From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 03:52:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p618q4fw053368 for ; Fri, 1 Jul 2011 03:52:05 -0500 X-ASG-Debug-ID: 1309510294-63c402e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DDE2645D33 for ; Fri, 1 Jul 2011 01:51:34 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 9JIUVOE5omitMPiD for ; Fri, 01 Jul 2011 01:51:34 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcZRm-0000Wy-3Z; Fri, 01 Jul 2011 08:51:34 +0000 Date: Fri, 1 Jul 2011 04:51:34 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701085134.GA30819@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701022248.GM561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309510294 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0189 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > > This piece of logic checks is the type of buffer has changed from the > previous buffer. This used to work just fine, but now "type" is > local to the __xfs_vm_writepage() function, while the imap life > span?? multiple calls to the __xfs_vm_writepage() function. Hence > type is reinitialised to IO_OVERWRITE on every page that written, > and so for delalloc we are invalidating the imap and looking it up > again on every page. Traces show this sort of behaviour: Ah crap. I actually had it that way initially, but it got lost during a rebase due to a minimal context change screwing most hunks of the patch. Thanks for tracking this down! From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:00:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p618xxcf053681 for ; Fri, 1 Jul 2011 04:00:00 -0500 X-ASG-Debug-ID: 1309510798-613a00020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 40EB9B29A4B for ; Fri, 1 Jul 2011 01:59:58 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Lw1Nzqtatncanr5Y for ; Fri, 01 Jul 2011 01:59:58 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcZZu-0001pg-D0; Fri, 01 Jul 2011 08:59:58 +0000 Date: Fri, 1 Jul 2011 04:59:58 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701085958.GB30819@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701041851.GN561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309510799 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2601 1.0000 -0.5273 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.43 X-Barracuda-Spam-Status: No, SCORE=-0.43 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > xfs: writepage context needs to handle discontiguous page ranges > > From: Dave Chinner > > If the pages sent down by write_cache_pages to the writepage > callback are discontiguous, we need to detect this and put each > discontiguous page range into individual ioends. This is needed to > ensure that the ioend accurately represents the range of the file > that it covers so that file size updates during IO completion set > the size correctly. Failure to take into account the discontiguous > ranges results in files being too small when writeback patterns are > non-sequential. Looks good. I still wonder why I haven't been able to hit this. Haven't seen any 180 failure for a long time, with both 4k and 512 byte filesystems and since yesterday 1k as well. I'll merge this, and to avoid bisect regressions it'll have to go into the main writepages patch. That probaby means folding the add_to_ioend cleanup into it as well to not make the calling convention too ugly. From david@fromorbit.com Fri Jul 1 04:03:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6193exr054576 for ; Fri, 1 Jul 2011 04:03:40 -0500 X-ASG-Debug-ID: 1309511017-614800370000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1459BB29A9A for ; Fri, 1 Jul 2011 02:03:38 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id XN7mHnGrNNqw01kZ for ; Fri, 01 Jul 2011 02:03:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EANWJDU55LCkB/2dsb2JhbABSp194iHnAbg6GJASidQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 01 Jul 2011 18:33:34 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QcZdM-0005eK-8t; Fri, 01 Jul 2011 19:03:32 +1000 Date: Fri, 1 Jul 2011 19:03:32 +1000 From: Dave Chinner To: Amit Sahrawat Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS and USB Hang on 2.6.35.13 Subject: Re: XFS and USB Hang on 2.6.35.13 Message-ID: <20110701090332.GO561@dastard> References: <20110630121918.GK561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309511019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0009 1.0000 -2.0149 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.51 X-Barracuda-Spam-Status: No, SCORE=-1.51 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67643 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE_7582B Custom Rule 7582B X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 10:00:54AM +0530, Amit Sahrawat wrote: > On Thu, Jun 30, 2011 at 5:49 PM, Dave Chinner wrote: > > On Thu, Jun 30, 2011 at 04:57:42PM +0530, Amit Sahrawat wrote: > > > Hi All, > > > I encountered a hang on XFS during unplug. > > > *Test Case:* > > > #!/bin/sh > > > index=0 > > > while [ "$?" == 0 ] > > > do > > >         index=$(($index+1)) > > >         sync > > >         cp /mnt/1KB.txt /tmp/"$index".test > > > done > > > Where /mnt - mount point for vfat and /tmp mount point for XFS, both can be > > > XFS also. > > > > > > During this operation, unplug the USB. I am getting HANG almost everytime I > > > unplug. > > > > Well, that's no surprise. The unplug appears to be losing IOs in > > progress. > > > > > *Kernel Version:* 2.6.35.13 (extremely sorry, I know next question will be > > > why am I not using TOT kernel - I tried but my PC does not boot up with the > > > latest one) ..... > > > *INFO: task khubd:*33 blocked for more than 120 seconds. > > > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > > > khubd         D c06c261c     0    33      2 0x00000000 > > > Backtrace: > > > [] (schedule+0x0/0x500) from [] > > > (_xfs_log_force+0x230/0x284) > > > > You need to turn off line wrapping for stuff you paste into email. > > The cleaned up (i.e. relevant part) trace is: > > > > [] (schedule+0x0/0x500) > > [] (_xfs_log_force+0x0/0x284) > > [] (xfs_log_force+0x0/0x38) > > [] (xfs_sync_data+0x0/0x58) > > [] (xfs_quiesce_data+0x0/0x80) > > [] (xfs_fs_sync_fs+0x0/0xe0) > > [] (__sync_filesystem+0x0/0xa0) > > [] (sync_filesystem+0x0/0x60) > > [] (fsync_bdev+0x0/0x44) > > [] (invalidate_partition+0x0/0x3c) > > [] (del_gendisk+0x0/0x140) > > [] (sd_remove+0x0/0x84) > > [] (__device_release_driver+0x0/0xac) > > [] (device_release_driver+0x0/0x30) > > [] (bus_remove_device+0x0/0x8c) > > [] (device_del+0x0/0x170) > > [] (__scsi_remove_device+0x0/0x90) > > [] (scsi_forget_host+0x0/0x6c) > > [] (scsi_remove_host+0x0/0x104) > > [] (quiesce_and_remove_host+0x0/0x9c) > > [] (usb_stor_disconnect+0x0/0x28) > > [] (usb_unbind_interface+0x0/0xdc) > > [] (__device_release_driver+0x0/0xac) > > [] (device_release_driver+0x0/0x30) > > [] (bus_remove_device+0x0/0x8c) > > [] (device_del+0x0/0x170) > > [] (usb_disable_device+0x0/0xf8) > > [] (usb_disconnect+0x0/0xf4) > > [] (hub_thread+0x0/0xd78) > > [] (kthread+0x0/0x8c) > > > > Well, that just looks utterly braindamaged to me. > > > > We just had the device containing the filesystem removed from the > > system, so the error handling routine ends up trying to sync the > > filesystem to the device that doesn't exist anymore. WTF? > > > > >>> This is what I think, why is syncing taking place when the Amit, you don't need to quote your own reply. That just confuses mail readers that understand the ">" quoting convention and highlight appropriately, and made me wonder if you'd even replied.... > This is what I think, why is syncing taking place when the > device doesn't exist anymore. What is the gain in doing so? I doubt the person who wrote the error handling even realised that it ended up in such a mess. > I > will try and propose this feature. Not sure what you mean by this.... .... > > AFAICT, this problem doesn't exist in TOT - the conversion of the > > Again I have a problem which seems fixed in TOT :) > > > xfslogd workqueue to CMWQ allows processing of other xfslogd > > workqueue events to continue even though this one has gone to sleep. > > > > You probably need to change the shutdown type to > > SHUTDOWN_LOG_IO_ERROR to prevent a log flush from occurring in this > > shutdown context. > > This will fix the error for this kernel version, I will give this a try. > Is this the patchwork for CMWQ: > http://patchwork.xfs.org/patch/2037/ (xfs: improve sync behaviour > in face of aggressive dirtying) ? Please let me know. No. 2.6.35 doesn't have the CMWQ infrastructure, it was introduced in 2.6.38 IIRC. IOWs, there isn't a fix you can just backport - you're going to need to write and test your own fix, and my suggestion for doing that is above. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 1 04:20:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619KShY055038 for ; Fri, 1 Jul 2011 04:20:29 -0500 X-ASG-Debug-ID: 1309512025-652200a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4DEA176761C for ; Fri, 1 Jul 2011 02:20:26 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id BDDvUY6Q6NBKM3nu for ; Fri, 01 Jul 2011 02:20:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EALmQDU55LCkB/2dsb2JhbAA0HqdeeIh5sy6NPA6DJIMABJpEiDE Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 01 Jul 2011 18:50:24 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QcZtd-0005fq-JJ; Fri, 01 Jul 2011 19:20:21 +1000 Date: Fri, 1 Jul 2011 19:20:21 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701092021.GP561@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701085958.GB30819@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701085958.GB30819@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309512027 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4045 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 04:59:58AM -0400, Christoph Hellwig wrote: > > xfs: writepage context needs to handle discontiguous page ranges > > > > From: Dave Chinner > > > > If the pages sent down by write_cache_pages to the writepage > > callback are discontiguous, we need to detect this and put each > > discontiguous page range into individual ioends. This is needed to > > ensure that the ioend accurately represents the range of the file > > that it covers so that file size updates during IO completion set > > the size correctly. Failure to take into account the discontiguous > > ranges results in files being too small when writeback patterns are > > non-sequential. > > Looks good. I still wonder why I haven't been able to hit this. > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > filesystems and since yesterday 1k as well. It requires the test to run the VM out of RAM and then force enough memory pressure for kswapd to start writeback from the LRU. The reproducer I have is a 1p, 1GB RAM VM with it's disk image on a 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. When kswapd starts doing writeback from the LRU, the iops rate goes through the roof (from ~300iops @~320k/io to ~7000iops @4k/io) and throughput drops from 100MB/s to ~30MB/s. BBWC is the only reason the IOPS stays as high as it does - maybe that is why I saw this and you haven't. As it is, the kswapd writeback behaviour is utterly atrocious and, ultimately, quite easy to provoke. I wish the MM folk would fix that goddamn problem already - we've only been complaining about it for the last 6 or 7 years. As such, I'm wondering if it's a bad idea to even consider removing the .writepage clustering... > I'll merge this, and to avoid bisect regressions it'll have to go into > the main writepages patch. That probaby means folding the add_to_ioend > cleanup into it as well to not make the calling convention too ugly. Yup, I figured you'd want to do that. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:33:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619XBEZ055590 for ; Fri, 1 Jul 2011 04:33:12 -0500 X-ASG-Debug-ID: 1309512790-6d2300640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB43E1D1E2AA for ; Fri, 1 Jul 2011 02:33:10 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id no5pCib0bXNxE1Qi for ; Fri, 01 Jul 2011 02:33:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qca5x-0007SB-C4; Fri, 01 Jul 2011 09:33:05 +0000 Date: Fri, 1 Jul 2011 05:33:05 -0400 From: Christoph Hellwig To: Mel Gorman , Johannes Weiner , Wu Fengguang Cc: Dave Chinner , xfs@oss.sgi.com, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701093305.GA28531@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701041851.GN561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309512790 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Johannes, Mel, Wu, Dave has been stressing some XFS patches of mine that remove the XFS internal writeback clustering in favour of using write_cache_pages. As part of investigating the behaviour he found out that we're still doing lots of I/O from the end of the LRU in kswapd. Not only is that pretty bad behaviour in general, but it also means we really can't just remove the writeback clustering in writepage given how much I/O is still done through that. Any chance we could the writeback vs kswap behaviour sorted out a bit better finally? Some excerpts from the previous discussion: On Fri, Jul 01, 2011 at 02:18:51PM +1000, Dave Chinner wrote: > I'm now only running test 180 on 100 files rather than the 1000 the > test normally runs on, because it's faster and still shows the > problem. That means the test is only using 1GB of disk space, and > I'm running on a VM with 1GB RAM. It appears to be related to the VM > triggering random page writeback from the LRU - 100x10MB files more > than fills memory, hence it being the smallest test case i could > reproduce the problem on. > > My triage notes are as follows, and the patch that fixes the bug is > attached below. > > --- 180.out 2010-04-28 15:00:22.000000000 +1000 > +++ 180.out.bad 2011-07-01 12:44:12.000000000 +1000 > @@ -1 +1,9 @@ > QA output created by 180 > +file /mnt/scratch/81 has incorrect size 10473472 - sync failed > +file /mnt/scratch/86 has incorrect size 10371072 - sync failed > +file /mnt/scratch/87 has incorrect size 10104832 - sync failed > +file /mnt/scratch/88 has incorrect size 10125312 - sync failed > +file /mnt/scratch/89 has incorrect size 10469376 - sync failed > +file /mnt/scratch/90 has incorrect size 10240000 - sync failed > +file /mnt/scratch/91 has incorrect size 10362880 - sync failed > +file /mnt/scratch/92 has incorrect size 10366976 - sync failed > > $ ls -li /mnt/scratch/ | awk '/rw/ { printf("0x%x %d %d\n", $1, $6, $10); }' > 0x244093 10473472 81 > 0x244098 10371072 86 > 0x244099 10104832 87 > 0x24409a 10125312 88 > 0x24409b 10469376 89 > 0x24409c 10240000 90 > 0x24409d 10362880 91 > 0x24409e 10366976 92 > > So looking at inode 0x244099 (/mnt/scratch/87), the last setfilesize > call in the trace (got a separate patch for that) is: > > <...>-393 [000] 696245.229559: xfs_ilock_nowait: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > <...>-393 [000] 696245.229560: xfs_setfilesize: dev 253:16 ino 0x244099 isize 0xa00000 disize 0x94e000 new_size 0x0 offset 0x600000 count 3813376 > <...>-393 [000] 696245.229561: xfs_iunlock: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > > For an IO that was from offset 0x600000 for just under 4MB. The end > of that IO is at byte 10104832, which is _exactly_ what the inode > size says it is. > > It is very clear that from the IO completions that we are getting a > *lot* of kswapd driven writeback directly through .writepage: > > $ grep "xfs_setfilesize:" t.t |grep "4096$" | wc -l > 801 > $ grep "xfs_setfilesize:" t.t |grep -v "4096$" | wc -l > 78 > > So there's ~900 IO completions that change the file size, and 90% of > them are single page updates. > > $ ps -ef |grep [k]swap > root 514 2 0 12:43 ? 00:00:00 [kswapd0] > $ grep "writepage:" t.t | grep "514 " |wc -l > 799 > > Oh, now that is too close to just be a co-incidence. We're getting > significant amounts of random page writeback from the the ends of > the LRUs done by the VM. > > On Fri, Jul 01, 2011 at 07:20:21PM +1000, Dave Chinner wrote: > > Looks good. I still wonder why I haven't been able to hit this. > > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > > filesystems and since yesterday 1k as well. > > It requires the test to run the VM out of RAM and then force enough > memory pressure for kswapd to start writeback from the LRU. The > reproducer I have is a 1p, 1GB RAM VM with it's disk image on a > 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. > > When kswapd starts doing writeback from the LRU, the iops rate goes > through the roof (from ~300iops @~320k/io to ~7000iops @4k/io) and > throughput drops from 100MB/s to ~30MB/s. BBWC is the only reason > the IOPS stays as high as it does - maybe that is why I saw this and > you haven't. > > As it is, the kswapd writeback behaviour is utterly atrocious and, > ultimately, quite easy to provoke. I wish the MM folk would fix that > goddamn problem already - we've only been complaining about it for > the last 6 or 7 years. As such, I'm wondering if it's a bad idea to > even consider removing the .writepage clustering... From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:37:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_15 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619b8uE055694 for ; Fri, 1 Jul 2011 04:37:08 -0500 X-ASG-Debug-ID: 1309513026-798b01df0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D0EC714FC7FD for ; Fri, 1 Jul 2011 02:37:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id kG9C2DM0u1FGJKkk for ; Fri, 01 Jul 2011 02:37:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qca9m-0008Lq-9U; Fri, 01 Jul 2011 09:37:02 +0000 Date: Fri, 1 Jul 2011 05:37:02 -0400 From: Christoph Hellwig To: P?draig Brady Cc: Christoph Hellwig , linux-kernel@vger.kernel.org, Josef Bacik , xfs@oss.sgi.com, viro@ZenIV.linux.org.uk, linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH] xfstests 255: add a seek_data/seek_hole tester Subject: Re: [PATCH] xfstests 255: add a seek_data/seek_hole tester Message-ID: <20110701093702.GA28684@infradead.org> References: <1309275199-10801-1-git-send-email-josef@redhat.com> <1309275199-10801-5-git-send-email-josef@redhat.com> <20110629065306.GC1026@dastard> <20110629074021.GA26086@infradead.org> <4E0B019E.8080800@draigBrady.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E0B019E.8080800@draigBrady.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513027 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jun 29, 2011 at 11:42:38AM +0100, P?draig Brady wrote: > There is the argument, that if this interface can distinguish > these dirty unwritten extents, then why can't the fiemap interface too? > The advantage of the fiemap interface is that it can distinguish > empty extents vs holes. Empty extents will become increasingly common > I think, given the fragmentation and space guarantee benefits they give. > It would be cool for cp for example to be able to efficiently copy > empty extents from source to dest. That brings us back to square one. FIEMAP is supposed to tell you about the physical layout on disk. Unwritten extents physically always are there, but whether they might have to be copied depends entirely on in-core state. Finding that incore state in addition is not all that easy compared to simply walking the extents. People might decide it's worth for an interface like SEEK_HOLE specificly asking for that, but grafting it into FIEMAP through the backdoor is a horrible idea. From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k3N5055976 for ; Fri, 1 Jul 2011 04:46:04 -0500 X-ASG-Debug-ID: 1309513562-6d1900b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 353631E56724 for ; Fri, 1 Jul 2011 02:46:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 3IgRdUdiHgi9Chpj for ; Fri, 01 Jul 2011 02:46:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIU-0001qN-GE for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:02 +0000 Message-Id: <20110701094602.465074143@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:23 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks Subject: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-writepage-repair-nolock-support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The non-blockig behaviour in xfs_map_blocks currently is conditional on having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. The latter used to be used by both pdflush, kswapd and a few other places in older kernels, but has been fading out starting with the introduction of the per-bdi flusher threads. Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back the behaviour we want. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2011-06-30 20:10:06.959596789 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2011-06-30 20:10:19.749596630 +0200 @@ -959,7 +959,7 @@ xfs_vm_writepage( offset = page_offset(page); type = IO_OVERWRITE; - if (wbc->sync_mode == WB_SYNC_NONE && wbc->nonblocking) + if (wbc->sync_mode == WB_SYNC_NONE) nonblocking = 1; do { From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k3b2055975 for ; Fri, 1 Jul 2011 04:46:04 -0500 X-ASG-Debug-ID: 1309513562-2b47001f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1C58216748B7 for ; Fri, 1 Jul 2011 02:46:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id dDe4apfgKn4GPDWQ for ; Fri, 01 Jul 2011 02:46:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIU-0001pH-4I for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:02 +0000 Message-Id: <20110701094321.936534538@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:21 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 00/27] patch queue for Linux 3.1, V2 Subject: [PATCH 00/27] patch queue for Linux 3.1, V2 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0206 1.0000 -1.8872 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.29 X-Barracuda-Spam-Status: No, SCORE=-1.29 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is my current patch queue for Linux 3.1. Compared to the last posting all review comments were incorporated and two additional trivial patches were added. The ->writepages implementation was dropped for now, given the bad situation of kswap-originating writeback, but I'll repost the fixed version separately to get feedback on the updated version. From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k3sd055977 for ; Fri, 1 Jul 2011 04:46:04 -0500 X-ASG-Debug-ID: 1309513562-6d2400a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C3F1178BD62 for ; Fri, 1 Jul 2011 02:46:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 3SG9XsiG8E7Hi5qh for ; Fri, 01 Jul 2011 02:46:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIU-0001qt-M6 for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:02 +0000 Message-Id: <20110701094602.647499467@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:24 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/27] xfs: work around bogus gcc warning in xfs_allocbt_init_cursor Subject: [PATCH 03/27] xfs: work around bogus gcc warning in xfs_allocbt_init_cursor References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-fix-xfs_allocbt_init_cursor-warning X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean GCC 4.6 complains about an array subscript is above array bounds when using the btree index to index into the agf_levels array. The only two indices passed in are 0 and 1, and we have an assert insuring that. Replace the trick of using the array index directly with using constants in the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-06-17 14:16:27.929065669 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-06-17 14:17:22.145729599 +0200 @@ -427,13 +427,16 @@ xfs_allocbt_init_cursor( cur->bc_tp = tp; cur->bc_mp = mp; - cur->bc_nlevels = be32_to_cpu(agf->agf_levels[btnum]); cur->bc_btnum = btnum; cur->bc_blocklog = mp->m_sb.sb_blocklog; - cur->bc_ops = &xfs_allocbt_ops; - if (btnum == XFS_BTNUM_CNT) + + if (btnum == XFS_BTNUM_CNT) { + cur->bc_nlevels = be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]); cur->bc_flags = XFS_BTREE_LASTREC_UPDATE; + } else { + cur->bc_nlevels = be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]); + } cur->bc_private.a.agbp = agbp; cur->bc_private.a.agno = agno; From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k5GB056022 for ; Fri, 1 Jul 2011 04:46:05 -0500 X-ASG-Debug-ID: 1309513563-63a803bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD6104669F for ; Fri, 1 Jul 2011 02:46:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id UAoshp3eIdyTmDvf for ; Fri, 01 Jul 2011 02:46:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIU-0001rP-S7 for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:02 +0000 Message-Id: <20110701094602.835186772@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:25 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/27] xfs: split xfs_setattr Subject: [PATCH 04/27] xfs: split xfs_setattr References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-split-setattr X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Split up xfs_setattr into two functions, one for the complex truncate handling, and one for the trivial attribute updates. Also move both new routines to xfs_iops.c as they are fairly Linux-specific. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-06-29 11:29:02.684972774 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-06-29 11:29:07.154948558 +0200 @@ -39,6 +39,7 @@ #include "xfs_buf_item.h" #include "xfs_utils.h" #include "xfs_vnodeops.h" +#include "xfs_inode_item.h" #include "xfs_trace.h" #include @@ -497,12 +498,449 @@ xfs_vn_getattr( return 0; } +int +xfs_setattr_nonsize( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + xfs_mount_t *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + xfs_trans_t *tp; + int error; + uid_t uid = 0, iuid = 0; + gid_t gid = 0, igid = 0; + struct xfs_dquot *udqp = NULL, *gdqp = NULL; + struct xfs_dquot *olddquot1 = NULL, *olddquot2 = NULL; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT((mask & ATTR_SIZE) == 0); + + /* + * If disk quotas is on, we make sure that the dquots do exist on disk, + * before we start any other transactions. Trying to do this later + * is messy. We don't care to take a readlock to look at the ids + * in inode here, because we can't hold it across the trans_reserve. + * If the IDs do change before we take the ilock, we're covered + * because the i_*dquot fields will get updated anyway. + */ + if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { + uint qflags = 0; + + if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { + uid = iattr->ia_uid; + qflags |= XFS_QMOPT_UQUOTA; + } else { + uid = ip->i_d.di_uid; + } + if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { + gid = iattr->ia_gid; + qflags |= XFS_QMOPT_GQUOTA; + } else { + gid = ip->i_d.di_gid; + } + + /* + * We take a reference when we initialize udqp and gdqp, + * so it is important that we never blindly double trip on + * the same variable. See xfs_create() for an example. + */ + ASSERT(udqp == NULL); + ASSERT(gdqp == NULL); + error = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), + qflags, &udqp, &gdqp); + if (error) + return error; + } + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (error) + goto out_dqrele; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * These IDs could have changed since we last looked at them. + * But, we're assured that if the ownership did change + * while we didn't have the inode locked, inode's dquot(s) + * would have changed also. + */ + iuid = ip->i_d.di_uid; + igid = ip->i_d.di_gid; + gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; + uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; + + /* + * Do a quota reservation only if uid/gid is actually + * going to change. + */ + if (XFS_IS_QUOTA_RUNNING(mp) && + ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || + (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { + ASSERT(tp); + error = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, + capable(CAP_FOWNER) ? + XFS_QMOPT_FORCE_RES : 0); + if (error) /* out of quota */ + goto out_trans_cancel; + } + } + + xfs_trans_ijoin(tp, ip); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * CAP_FSETID overrides the following restrictions: + * + * The set-user-ID and set-group-ID bits of a file will be + * cleared upon successful return from chown() + */ + if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && + !capable(CAP_FSETID)) + ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); + + /* + * Change the ownerships and register quota modifications + * in the transaction. + */ + if (iuid != uid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { + ASSERT(mask & ATTR_UID); + ASSERT(udqp); + olddquot1 = xfs_qm_vop_chown(tp, ip, + &ip->i_udquot, udqp); + } + ip->i_d.di_uid = uid; + inode->i_uid = uid; + } + if (igid != gid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { + ASSERT(!XFS_IS_PQUOTA_ON(mp)); + ASSERT(mask & ATTR_GID); + ASSERT(gdqp); + olddquot2 = xfs_qm_vop_chown(tp, ip, + &ip->i_gdquot, gdqp); + } + ip->i_d.di_gid = gid; + inode->i_gid = gid; + } + } + + /* + * Change file access modes. + */ + if (mask & ATTR_MODE) { + umode_t mode = iattr->ia_mode; + + if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) + mode &= ~S_ISGID; + + ip->i_d.di_mode &= S_IFMT; + ip->i_d.di_mode |= mode & ~S_IFMT; + + inode->i_mode &= S_IFMT; + inode->i_mode |= mode & ~S_IFMT; + } + + /* + * Change file access or modified times. + */ + if (mask & ATTR_ATIME) { + inode->i_atime = iattr->ia_atime; + ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; + ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + error = xfs_trans_commit(tp, 0); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + /* + * Release any dquot(s) the inode had kept before chown. + */ + xfs_qm_dqrele(olddquot1); + xfs_qm_dqrele(olddquot2); + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + + if (error) + return XFS_ERROR(error); + + /* + * XXX(hch): Updating the ACL entries is not atomic vs the i_mode + * update. We could avoid this with linked transactions + * and passing down the transaction pointer all the way + * to attr_set. No previous user of the generic + * Posix ACL code seems to care about this issue either. + */ + if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { + error = -xfs_acl_chmod(inode); + if (error) + return XFS_ERROR(error); + } + + return 0; + +out_trans_cancel: + xfs_trans_cancel(tp, 0); + xfs_iunlock(ip, XFS_ILOCK_EXCL); +out_dqrele: + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + return error; +} + +/* + * Truncate file. Must have write permission and not be a directory. + */ +int +xfs_setattr_size( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + struct xfs_mount *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + struct xfs_trans *tp; + int error; + uint lock_flags; + uint commit_flags = 0; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT(S_ISREG(ip->i_d.di_mode)); + ASSERT((mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| + ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID| + ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); + + lock_flags = XFS_ILOCK_EXCL; + if (!(flags & XFS_ATTR_NOLOCK)) + lock_flags |= XFS_IOLOCK_EXCL; + xfs_ilock(ip, lock_flags); + + /* + * Short circuit the truncate case for zero length files. + */ + if (iattr->ia_size == 0 && + ip->i_size == 0 && ip->i_d.di_nextents == 0) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; + if (mask & ATTR_CTIME) { + inode->i_mtime = inode->i_ctime = + current_fs_time(inode->i_sb); + xfs_mark_inode_dirty_sync(ip); + } + goto out_unlock; + } + + /* + * Make sure that the dquots are attached to the inode. + */ + error = xfs_qm_dqattach_locked(ip, 0); + if (error) + goto out_unlock; + + /* + * Now we can make the changes. Before we join the inode to the + * transaction, take care of the part of the truncation that must be + * done without the inode lock. This needs to be done before joining + * the inode to the transaction, because the inode cannot be unlocked + * once it is a part of the transaction. + */ + if (iattr->ia_size > ip->i_size) { + /* + * Do the first part of growing a file: zero any data in the + * last block that is beyond the old EOF. We need to do this + * before the inode is joined to the transaction to modify + * i_size. + */ + error = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); + if (error) + goto out_unlock; + } + xfs_iunlock(ip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; + + /* + * We are going to log the inode size change in this transaction so + * any previous writes that are beyond the on disk EOF and the new + * EOF that have not been written out need to be written here. If we + * do not write the data out, we expose ourselves to the null files + * problem. + * + * Only flush from the on disk size to the smaller of the in memory + * file size or the new size as that's the range we really care about + * here and prevents waiting for other data not within the range we + * care about here. + */ + if (ip->i_size != ip->i_d.di_size && iattr->ia_size > ip->i_d.di_size) { + error = xfs_flush_pages(ip, ip->i_d.di_size, iattr->ia_size, + XBF_ASYNC, FI_NONE); + if (error) + goto out_unlock; + } + + /* + * Wait for all I/O to complete. + */ + xfs_ioend_wait(ip); + + error = -block_truncate_page(inode->i_mapping, iattr->ia_size, + xfs_get_blocks); + if (error) + goto out_unlock; + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, + XFS_TRANS_PERM_LOG_RES, + XFS_ITRUNCATE_LOG_COUNT); + if (error) + goto out_trans_cancel; + + truncate_setsize(inode, iattr->ia_size); + + commit_flags = XFS_TRANS_RELEASE_LOG_RES; + lock_flags |= XFS_ILOCK_EXCL; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + xfs_trans_ijoin(tp, ip); + + /* + * Only change the c/mtime if we are changing the size or we are + * explicitly asked to change it. This handles the semantic difference + * between truncate() and ftruncate() as implemented in the VFS. + * + * The regular truncate() case without ATTR_CTIME and ATTR_MTIME is a + * special case where we need to update the times despite not having + * these flags set. For all other operations the VFS set these flags + * explicitly if it wants a timestamp update. + */ + if (iattr->ia_size != ip->i_size && + (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { + iattr->ia_ctime = iattr->ia_mtime = + current_fs_time(inode->i_sb); + mask |= ATTR_CTIME | ATTR_MTIME; + } + + if (iattr->ia_size > ip->i_size) { + ip->i_d.di_size = iattr->ia_size; + ip->i_size = iattr->ia_size; + } else if (iattr->ia_size <= ip->i_size || + (iattr->ia_size == 0 && ip->i_d.di_nextents)) { + /* + * Signal a sync transaction unless we are truncating an + * already unlinked file on a wsync filesystem. + */ + error = xfs_itruncate_finish(&tp, ip, iattr->ia_size, + XFS_DATA_FORK, + ((ip->i_d.di_nlink != 0 || + !(mp->m_flags & XFS_MOUNT_WSYNC)) + ? 1 : 0)); + if (error) + goto out_trans_abort; + + /* + * Truncated "down", so we're removing references to old data + * here - if we delay flushing for a long time, we expose + * ourselves unduly to the notorious NULL files problem. So, + * we mark this inode and flush it when the file is closed, + * and do not wait the usual (long) time for writeout. + */ + xfs_iflags_set(ip, XFS_ITRUNCATED); + } + + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + + error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); +out_unlock: + if (lock_flags) + xfs_iunlock(ip, lock_flags); + return error; + +out_trans_abort: + commit_flags |= XFS_TRANS_ABORT; +out_trans_cancel: + xfs_trans_cancel(tp, commit_flags); + goto out_unlock; +} + STATIC int xfs_vn_setattr( struct dentry *dentry, struct iattr *iattr) { - return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0); + if (iattr->ia_valid & ATTR_SIZE) + return -xfs_setattr_size(XFS_I(dentry->d_inode), iattr, 0); + return -xfs_setattr_nonsize(XFS_I(dentry->d_inode), iattr, 0); } #define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) Index: xfs/fs/xfs/linux-2.6/xfs_acl.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_acl.c 2011-06-29 11:29:02.698306035 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_acl.c 2011-06-29 11:29:07.154948558 +0200 @@ -264,7 +264,7 @@ xfs_set_mode(struct inode *inode, mode_t iattr.ia_mode = mode; iattr.ia_ctime = current_fs_time(inode->i_sb); - error = -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_NOACL); + error = -xfs_setattr_nonsize(XFS_I(inode), &iattr, XFS_ATTR_NOACL); } return error; Index: xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2011-06-29 11:29:02.711639297 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_file.c 2011-06-29 11:29:07.158281874 +0200 @@ -944,7 +944,7 @@ xfs_file_fallocate( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = new_size; - error = -xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); + error = -xfs_setattr_size(ip, &iattr, XFS_ATTR_NOLOCK); } out_unlock: Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:02.721639242 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:07.158281874 +0200 @@ -50,430 +50,6 @@ #include "xfs_vnodeops.h" #include "xfs_trace.h" -int -xfs_setattr( - struct xfs_inode *ip, - struct iattr *iattr, - int flags) -{ - xfs_mount_t *mp = ip->i_mount; - struct inode *inode = VFS_I(ip); - int mask = iattr->ia_valid; - xfs_trans_t *tp; - int code; - uint lock_flags; - uint commit_flags=0; - uid_t uid=0, iuid=0; - gid_t gid=0, igid=0; - struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; - int need_iolock = 1; - - trace_xfs_setattr(ip); - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return XFS_ERROR(EROFS); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - code = -inode_change_ok(inode, iattr); - if (code) - return code; - - olddquot1 = olddquot2 = NULL; - udqp = gdqp = NULL; - - /* - * If disk quotas is on, we make sure that the dquots do exist on disk, - * before we start any other transactions. Trying to do this later - * is messy. We don't care to take a readlock to look at the ids - * in inode here, because we can't hold it across the trans_reserve. - * If the IDs do change before we take the ilock, we're covered - * because the i_*dquot fields will get updated anyway. - */ - if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { - uint qflags = 0; - - if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { - uid = iattr->ia_uid; - qflags |= XFS_QMOPT_UQUOTA; - } else { - uid = ip->i_d.di_uid; - } - if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { - gid = iattr->ia_gid; - qflags |= XFS_QMOPT_GQUOTA; - } else { - gid = ip->i_d.di_gid; - } - - /* - * We take a reference when we initialize udqp and gdqp, - * so it is important that we never blindly double trip on - * the same variable. See xfs_create() for an example. - */ - ASSERT(udqp == NULL); - ASSERT(gdqp == NULL); - code = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), - qflags, &udqp, &gdqp); - if (code) - return code; - } - - /* - * For the other attributes, we acquire the inode lock and - * first do an error checking pass. - */ - tp = NULL; - lock_flags = XFS_ILOCK_EXCL; - if (flags & XFS_ATTR_NOLOCK) - need_iolock = 0; - if (!(mask & ATTR_SIZE)) { - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); - commit_flags = 0; - code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), - 0, 0, 0); - if (code) { - lock_flags = 0; - goto error_return; - } - } else { - if (need_iolock) - lock_flags |= XFS_IOLOCK_EXCL; - } - - xfs_ilock(ip, lock_flags); - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * These IDs could have changed since we last looked at them. - * But, we're assured that if the ownership did change - * while we didn't have the inode locked, inode's dquot(s) - * would have changed also. - */ - iuid = ip->i_d.di_uid; - igid = ip->i_d.di_gid; - gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; - uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; - - /* - * Do a quota reservation only if uid/gid is actually - * going to change. - */ - if (XFS_IS_QUOTA_RUNNING(mp) && - ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || - (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { - ASSERT(tp); - code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, - capable(CAP_FOWNER) ? - XFS_QMOPT_FORCE_RES : 0); - if (code) /* out of quota */ - goto error_return; - } - } - - /* - * Truncate file. Must have write permission and not be a directory. - */ - if (mask & ATTR_SIZE) { - /* Short circuit the truncate case for zero length files */ - if (iattr->ia_size == 0 && - ip->i_size == 0 && ip->i_d.di_nextents == 0) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - if (mask & ATTR_CTIME) { - inode->i_mtime = inode->i_ctime = - current_fs_time(inode->i_sb); - xfs_mark_inode_dirty_sync(ip); - } - code = 0; - goto error_return; - } - - if (S_ISDIR(ip->i_d.di_mode)) { - code = XFS_ERROR(EISDIR); - goto error_return; - } else if (!S_ISREG(ip->i_d.di_mode)) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - - /* - * Make sure that the dquots are attached to the inode. - */ - code = xfs_qm_dqattach_locked(ip, 0); - if (code) - goto error_return; - - /* - * Now we can make the changes. Before we join the inode - * to the transaction, if ATTR_SIZE is set then take care of - * the part of the truncation that must be done without the - * inode lock. This needs to be done before joining the inode - * to the transaction, because the inode cannot be unlocked - * once it is a part of the transaction. - */ - if (iattr->ia_size > ip->i_size) { - /* - * Do the first part of growing a file: zero any data - * in the last block that is beyond the old EOF. We - * need to do this before the inode is joined to the - * transaction to modify the i_size. - */ - code = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); - if (code) - goto error_return; - } - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - - /* - * We are going to log the inode size change in this - * transaction so any previous writes that are beyond the on - * disk EOF and the new EOF that have not been written out need - * to be written here. If we do not write the data out, we - * expose ourselves to the null files problem. - * - * Only flush from the on disk size to the smaller of the in - * memory file size or the new size as that's the range we - * really care about here and prevents waiting for other data - * not within the range we care about here. - */ - if (ip->i_size != ip->i_d.di_size && - iattr->ia_size > ip->i_d.di_size) { - code = xfs_flush_pages(ip, - ip->i_d.di_size, iattr->ia_size, - XBF_ASYNC, FI_NONE); - if (code) - goto error_return; - } - - /* wait for all I/O to complete */ - xfs_ioend_wait(ip); - - code = -block_truncate_page(inode->i_mapping, iattr->ia_size, - xfs_get_blocks); - if (code) - goto error_return; - - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); - code = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, - XFS_TRANS_PERM_LOG_RES, - XFS_ITRUNCATE_LOG_COUNT); - if (code) - goto error_return; - - truncate_setsize(inode, iattr->ia_size); - - commit_flags = XFS_TRANS_RELEASE_LOG_RES; - lock_flags |= XFS_ILOCK_EXCL; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - - /* - * Only change the c/mtime if we are changing the size - * or we are explicitly asked to change it. This handles - * the semantic difference between truncate() and ftruncate() - * as implemented in the VFS. - * - * The regular truncate() case without ATTR_CTIME and ATTR_MTIME - * is a special case where we need to update the times despite - * not having these flags set. For all other operations the - * VFS set these flags explicitly if it wants a timestamp - * update. - */ - if (iattr->ia_size != ip->i_size && - (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { - iattr->ia_ctime = iattr->ia_mtime = - current_fs_time(inode->i_sb); - mask |= ATTR_CTIME | ATTR_MTIME; - } - - if (iattr->ia_size > ip->i_size) { - ip->i_d.di_size = iattr->ia_size; - ip->i_size = iattr->ia_size; - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - } else if (iattr->ia_size <= ip->i_size || - (iattr->ia_size == 0 && ip->i_d.di_nextents)) { - /* - * signal a sync transaction unless - * we're truncating an already unlinked - * file on a wsync filesystem - */ - code = xfs_itruncate_finish(&tp, ip, iattr->ia_size, - XFS_DATA_FORK, - ((ip->i_d.di_nlink != 0 || - !(mp->m_flags & XFS_MOUNT_WSYNC)) - ? 1 : 0)); - if (code) - goto abort_return; - /* - * Truncated "down", so we're removing references - * to old data here - if we now delay flushing for - * a long time, we expose ourselves unduly to the - * notorious NULL files problem. So, we mark this - * vnode and flush it when the file is closed, and - * do not wait the usual (long) time for writeout. - */ - xfs_iflags_set(ip, XFS_ITRUNCATED); - } - } else if (tp) { - xfs_trans_ijoin(tp, ip); - } - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * CAP_FSETID overrides the following restrictions: - * - * The set-user-ID and set-group-ID bits of a file will be - * cleared upon successful return from chown() - */ - if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && - !capable(CAP_FSETID)) { - ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); - } - - /* - * Change the ownerships and register quota modifications - * in the transaction. - */ - if (iuid != uid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { - ASSERT(mask & ATTR_UID); - ASSERT(udqp); - olddquot1 = xfs_qm_vop_chown(tp, ip, - &ip->i_udquot, udqp); - } - ip->i_d.di_uid = uid; - inode->i_uid = uid; - } - if (igid != gid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { - ASSERT(!XFS_IS_PQUOTA_ON(mp)); - ASSERT(mask & ATTR_GID); - ASSERT(gdqp); - olddquot2 = xfs_qm_vop_chown(tp, ip, - &ip->i_gdquot, gdqp); - } - ip->i_d.di_gid = gid; - inode->i_gid = gid; - } - } - - /* - * Change file access modes. - */ - if (mask & ATTR_MODE) { - umode_t mode = iattr->ia_mode; - - if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) - mode &= ~S_ISGID; - - ip->i_d.di_mode &= S_IFMT; - ip->i_d.di_mode |= mode & ~S_IFMT; - - inode->i_mode &= S_IFMT; - inode->i_mode |= mode & ~S_IFMT; - } - - /* - * Change file access or modified times. - */ - if (mask & ATTR_ATIME) { - inode->i_atime = iattr->ia_atime; - ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; - ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_CTIME) { - inode->i_ctime = iattr->ia_ctime; - ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; - ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_MTIME) { - inode->i_mtime = iattr->ia_mtime; - ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; - ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; - ip->i_update_core = 1; - } - - /* - * And finally, log the inode core if any attribute in it - * has been changed. - */ - if (mask & (ATTR_UID|ATTR_GID|ATTR_MODE| - ATTR_ATIME|ATTR_CTIME|ATTR_MTIME)) - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - - XFS_STATS_INC(xs_ig_attrchg); - - /* - * If this is a synchronous mount, make sure that the - * transaction goes to disk before returning to the user. - * This is slightly sub-optimal in that truncates require - * two sync transactions instead of one for wsync filesystems. - * One for the truncate and one for the timestamps since we - * don't want to change the timestamps unless we're sure the - * truncate worked. Truncates are less than 1% of the laddis - * mix so this probably isn't worth the trouble to optimize. - */ - code = 0; - if (mp->m_flags & XFS_MOUNT_WSYNC) - xfs_trans_set_sync(tp); - - code = xfs_trans_commit(tp, commit_flags); - - xfs_iunlock(ip, lock_flags); - - /* - * Release any dquot(s) the inode had kept before chown. - */ - xfs_qm_dqrele(olddquot1); - xfs_qm_dqrele(olddquot2); - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - - if (code) - return code; - - /* - * XXX(hch): Updating the ACL entries is not atomic vs the i_mode - * update. We could avoid this with linked transactions - * and passing down the transaction pointer all the way - * to attr_set. No previous user of the generic - * Posix ACL code seems to care about this issue either. - */ - if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { - code = -xfs_acl_chmod(inode); - if (code) - return XFS_ERROR(code); - } - - return 0; - - abort_return: - commit_flags |= XFS_TRANS_ABORT; - error_return: - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - if (tp) { - xfs_trans_cancel(tp, commit_flags); - } - if (lock_flags != 0) { - xfs_iunlock(ip, lock_flags); - } - return code; -} - /* * The maximum pathlen is 1024 bytes. Since the minimum file system * blocksize is 512 bytes, we can get a max of 2 extents back from @@ -2784,7 +2360,7 @@ xfs_change_file_space( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = startoffset; - error = xfs_setattr(ip, &iattr, attr_flags); + error = xfs_setattr_size(ip, &iattr, attr_flags); if (error) return error; Index: xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.h 2011-06-29 11:29:02.734972504 +0200 +++ xfs/fs/xfs/xfs_vnodeops.h 2011-06-29 11:29:07.161615190 +0200 @@ -13,7 +13,8 @@ struct xfs_inode; struct xfs_iomap; -int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); +int xfs_setattr_nonsize(struct xfs_inode *ip, struct iattr *vap, int flags); +int xfs_setattr_size(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k57f056004 for ; Fri, 1 Jul 2011 04:46:05 -0500 X-ASG-Debug-ID: 1309513563-63a603ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F30E9466A1 for ; Fri, 1 Jul 2011 02:46:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id IgSUEFhJzv4h2R6L for ; Fri, 01 Jul 2011 02:46:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIV-0001sZ-9p for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:03 +0000 Message-Id: <20110701094603.254731796@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:27 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/27] xfs: kill xfs_itruncate_start Subject: [PATCH 06/27] xfs: kill xfs_itruncate_start References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_itruncate_start X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfs_itruncate_start is a rather length wrapper that evaluates to a call to xfs_ioend_wait and xfs_tosspages, and only has two callers. Instead of using the complicated checks left over from IRIX where we can to truncate the pagecache just call xfs_tosspages (aka truncate_inode_pages) directly as we want to get rid of all data after i_size, and truncate_inode_pages handles incorrect alignments and too large offsets just fine. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-06-29 11:29:02.494973804 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-06-29 11:29:11.888256249 +0200 @@ -1217,165 +1217,8 @@ xfs_isize_check( #endif /* DEBUG */ /* - * Calculate the last possible buffered byte in a file. This must - * include data that was buffered beyond the EOF by the write code. - * This also needs to deal with overflowing the xfs_fsize_t type - * which can happen for sizes near the limit. - * - * We also need to take into account any blocks beyond the EOF. It - * may be the case that they were buffered by a write which failed. - * In that case the pages will still be in memory, but the inode size - * will never have been updated. - */ -STATIC xfs_fsize_t -xfs_file_last_byte( - xfs_inode_t *ip) -{ - xfs_mount_t *mp; - xfs_fsize_t last_byte; - xfs_fileoff_t last_block; - xfs_fileoff_t size_last_block; - int error; - - ASSERT(xfs_isilocked(ip, XFS_IOLOCK_EXCL|XFS_IOLOCK_SHARED)); - - mp = ip->i_mount; - /* - * Only check for blocks beyond the EOF if the extents have - * been read in. This eliminates the need for the inode lock, - * and it also saves us from looking when it really isn't - * necessary. - */ - if (ip->i_df.if_flags & XFS_IFEXTENTS) { - xfs_ilock(ip, XFS_ILOCK_SHARED); - error = xfs_bmap_last_offset(NULL, ip, &last_block, - XFS_DATA_FORK); - xfs_iunlock(ip, XFS_ILOCK_SHARED); - if (error) { - last_block = 0; - } - } else { - last_block = 0; - } - size_last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)ip->i_size); - last_block = XFS_FILEOFF_MAX(last_block, size_last_block); - - last_byte = XFS_FSB_TO_B(mp, last_block); - if (last_byte < 0) { - return XFS_MAXIOFFSET(mp); - } - last_byte += (1 << mp->m_writeio_log); - if (last_byte < 0) { - return XFS_MAXIOFFSET(mp); - } - return last_byte; -} - -/* - * Start the truncation of the file to new_size. The new size - * must be smaller than the current size. This routine will - * clear the buffer and page caches of file data in the removed - * range, and xfs_itruncate_finish() will remove the underlying - * disk blocks. - * - * The inode must have its I/O lock locked EXCLUSIVELY, and it - * must NOT have the inode lock held at all. This is because we're - * calling into the buffer/page cache code and we can't hold the - * inode lock when we do so. - * - * We need to wait for any direct I/Os in flight to complete before we - * proceed with the truncate. This is needed to prevent the extents - * being read or written by the direct I/Os from being removed while the - * I/O is in flight as there is no other method of synchronising - * direct I/O with the truncate operation. Also, because we hold - * the IOLOCK in exclusive mode, we prevent new direct I/Os from being - * started until the truncate completes and drops the lock. Essentially, - * the xfs_ioend_wait() call forms an I/O barrier that provides strict - * ordering between direct I/Os and the truncate operation. - * - * The flags parameter can have either the value XFS_ITRUNC_DEFINITE - * or XFS_ITRUNC_MAYBE. The XFS_ITRUNC_MAYBE value should be used - * in the case that the caller is locking things out of order and - * may not be able to call xfs_itruncate_finish() with the inode lock - * held without dropping the I/O lock. If the caller must drop the - * I/O lock before calling xfs_itruncate_finish(), then xfs_itruncate_start() - * must be called again with all the same restrictions as the initial - * call. - */ -int -xfs_itruncate_start( - xfs_inode_t *ip, - uint flags, - xfs_fsize_t new_size) -{ - xfs_fsize_t last_byte; - xfs_off_t toss_start; - xfs_mount_t *mp; - int error = 0; - - ASSERT(xfs_isilocked(ip, XFS_IOLOCK_EXCL)); - ASSERT((new_size == 0) || (new_size <= ip->i_size)); - ASSERT((flags == XFS_ITRUNC_DEFINITE) || - (flags == XFS_ITRUNC_MAYBE)); - - mp = ip->i_mount; - - /* wait for the completion of any pending DIOs */ - if (new_size == 0 || new_size < ip->i_size) - xfs_ioend_wait(ip); - - /* - * Call toss_pages or flushinval_pages to get rid of pages - * overlapping the region being removed. We have to use - * the less efficient flushinval_pages in the case that the - * caller may not be able to finish the truncate without - * dropping the inode's I/O lock. Make sure - * to catch any pages brought in by buffers overlapping - * the EOF by searching out beyond the isize by our - * block size. We round new_size up to a block boundary - * so that we don't toss things on the same block as - * new_size but before it. - * - * Before calling toss_page or flushinval_pages, make sure to - * call remapf() over the same region if the file is mapped. - * This frees up mapped file references to the pages in the - * given range and for the flushinval_pages case it ensures - * that we get the latest mapped changes flushed out. - */ - toss_start = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); - toss_start = XFS_FSB_TO_B(mp, toss_start); - if (toss_start < 0) { - /* - * The place to start tossing is beyond our maximum - * file size, so there is no way that the data extended - * out there. - */ - return 0; - } - last_byte = xfs_file_last_byte(ip); - trace_xfs_itruncate_start(ip, new_size, flags, toss_start, last_byte); - if (last_byte > toss_start) { - if (flags & XFS_ITRUNC_DEFINITE) { - xfs_tosspages(ip, toss_start, - -1, FI_REMAPF_LOCKED); - } else { - error = xfs_flushinval_pages(ip, toss_start, - -1, FI_REMAPF_LOCKED); - } - } - -#ifdef DEBUG - if (new_size == 0) { - ASSERT(VN_CACHED(VFS_I(ip)) == 0); - } -#endif - return error; -} - -/* - * Shrink the file to the given new_size. The new size must be smaller than - * the current size. This will free up the underlying blocks in the removed - * range after a call to xfs_itruncate_start() or xfs_atruncate_start(). + * Free up the underlying blocks past new_size. The new size must be + * smaller than the current size. * * The transaction passed to this routine must have made a permanent log * reservation of at least XFS_ITRUNCATE_LOG_RES. This routine may commit the @@ -1387,7 +1230,7 @@ xfs_itruncate_start( * will be "held" within the returned transaction. This routine does NOT * require any disk space to be reserved for it within the transaction. * - * The fork parameter must be either xfs_attr_fork or xfs_data_fork, and it + * The fork parameter must be either XFS_ATTR_FORK or XFS_DATA_FORK, and it * indicates the fork which is to be truncated. For the attribute fork we only * support truncation to size 0. * Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:07.158281874 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:11.888256249 +0200 @@ -197,13 +197,6 @@ xfs_free_eofblocks( */ tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); - /* - * Do the xfs_itruncate_start() call before - * reserving any log space because - * itruncate_start will call into the buffer - * cache and we can't - * do that within a transaction. - */ if (flags & XFS_FREE_EOF_TRYLOCK) { if (!xfs_ilock_nowait(ip, XFS_IOLOCK_EXCL)) { xfs_trans_cancel(tp, 0); @@ -212,13 +205,6 @@ xfs_free_eofblocks( } else { xfs_ilock(ip, XFS_IOLOCK_EXCL); } - error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, - ip->i_size); - if (error) { - xfs_trans_cancel(tp, 0); - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return error; - } error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), @@ -660,20 +646,9 @@ xfs_inactive( tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); if (truncate) { - /* - * Do the xfs_itruncate_start() call before - * reserving any log space because itruncate_start - * will call into the buffer cache and we can't - * do that within a transaction. - */ xfs_ilock(ip, XFS_IOLOCK_EXCL); - error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 0); - if (error) { - xfs_trans_cancel(tp, 0); - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return VN_INACTIVE_CACHE; - } + xfs_ioend_wait(ip); error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:29:02.518307010 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:29:11.891589564 +0200 @@ -1029,40 +1029,6 @@ DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enos DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); - -TRACE_EVENT(xfs_itruncate_start, - TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size, int flag, - xfs_off_t toss_start, xfs_off_t toss_finish), - TP_ARGS(ip, new_size, flag, toss_start, toss_finish), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_fsize_t, new_size) - __field(xfs_off_t, toss_start) - __field(xfs_off_t, toss_finish) - __field(int, flag) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->new_size = new_size; - __entry->toss_start = toss_start; - __entry->toss_finish = toss_finish; - __entry->flag = flag; - ), - TP_printk("dev %d:%d ino 0x%llx %s size 0x%llx new_size 0x%llx " - "toss start 0x%llx toss finish 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->flag, "|", XFS_ITRUNC_FLAGS), - __entry->size, - __entry->new_size, - __entry->toss_start, - __entry->toss_finish) -); - DECLARE_EVENT_CLASS(xfs_itrunc_class, TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), TP_ARGS(ip, new_size), Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-06-29 11:29:02.531640272 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-06-29 11:29:11.891589564 +0200 @@ -458,16 +458,6 @@ static inline void xfs_ifunlock(xfs_inod extern struct lock_class_key xfs_iolock_reclaimable; /* - * Flags for xfs_itruncate_start(). - */ -#define XFS_ITRUNC_DEFINITE 0x1 -#define XFS_ITRUNC_MAYBE 0x2 - -#define XFS_ITRUNC_FLAGS \ - { XFS_ITRUNC_DEFINITE, "DEFINITE" }, \ - { XFS_ITRUNC_MAYBE, "MAYBE" } - -/* * For multiple groups support: if S_ISGID bit is set in the parent * directory, group of new file is set to that of the parent, and * new subdirectory gets S_ISGID bit from parent. @@ -501,7 +491,6 @@ uint xfs_ip2xflags(struct xfs_inode *); uint xfs_dic2xflags(struct xfs_dinode *); int xfs_ifree(struct xfs_trans *, xfs_inode_t *, struct xfs_bmap_free *); -int xfs_itruncate_start(xfs_inode_t *, uint, xfs_fsize_t); int xfs_itruncate_finish(struct xfs_trans **, xfs_inode_t *, xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k3rV055978 for ; Fri, 1 Jul 2011 04:46:04 -0500 X-ASG-Debug-ID: 1309513562-2b4c001b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E8B016748BA for ; Fri, 1 Jul 2011 02:46:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id QgEY7CYDxDVxrXc7 for ; Fri, 01 Jul 2011 02:46:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIU-0001pr-AD for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:02 +0000 Message-Id: <20110701094602.285184989@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:22 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/27] xfs: PF_FSTRANS should never be set in ->writepage Subject: [PATCH 01/27] xfs: PF_FSTRANS should never be set in ->writepage References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-writepage-simplify-fstrans-check X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that we reject direct reclaim in addition to always using GFP_NOFS allocation there's no chance we'll ever end up in ->writepage with PF_FSTRANS set. Add a WARN_ON if we hit this case, and stop checking if we'd actually need to start a transaction. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2011-06-30 14:50:35.206501640 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2011-06-30 15:34:59.156468543 +0200 @@ -894,11 +894,6 @@ out_invalidate: * For unwritten space on the page we need to start the conversion to * regular allocated space. * For any other dirty buffer heads on the page we should flush them. - * - * If we detect that a transaction would be required to flush the page, we - * have to check the process flags first, if we are already in a transaction - * or disk I/O during allocations is off, we need to fail the writepage and - * redirty the page. */ STATIC int xfs_vm_writepage( @@ -906,7 +901,6 @@ xfs_vm_writepage( struct writeback_control *wbc) { struct inode *inode = page->mapping->host; - int delalloc, unwritten; struct buffer_head *bh, *head; struct xfs_bmbt_irec imap; xfs_ioend_t *ioend = NULL, *iohead = NULL; @@ -938,15 +932,10 @@ xfs_vm_writepage( goto redirty; /* - * We need a transaction if there are delalloc or unwritten buffers - * on the page. - * - * If we need a transaction and the process flags say we are already - * in a transaction, or no IO is allowed then mark the page dirty - * again and leave the page as is. + * Given that we do not allow direct reclaim to call us, we should + * never be called while in a filesystem transaction. */ - xfs_count_page_state(page, &delalloc, &unwritten); - if ((current->flags & PF_FSTRANS) && (delalloc || unwritten)) + if (WARN_ON(current->flags & PF_FSTRANS)) goto redirty; /* Is this page beyond the end of the file? */ From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k5Ia056028 for ; Fri, 1 Jul 2011 04:46:05 -0500 X-ASG-Debug-ID: 1309513564-63c103c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3F189466A2 for ; Fri, 1 Jul 2011 02:46:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id RF6A8BiNq6UIIOFq for ; Fri, 01 Jul 2011 02:46:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIW-0001vB-Kp for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:04 +0000 Message-Id: <20110701094604.608829837@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:32 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 11/27] xfs: kill the unused struct xfs_sync_work Subject: [PATCH 11/27] xfs: kill the unused struct xfs_sync_work References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_sync_work X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_sync.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:30.203125879 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:39.093125768 +0200 @@ -21,14 +21,6 @@ struct xfs_mount; struct xfs_perag; -typedef struct xfs_sync_work { - struct list_head w_list; - struct xfs_mount *w_mount; - void *w_data; /* syncer routine argument */ - void (*w_syncer)(struct xfs_mount *, void *); - struct completion *w_completion; -} xfs_sync_work_t; - #define SYNC_WAIT 0x0001 /* wait for i/o to complete */ #define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k4Vh055996 for ; Fri, 1 Jul 2011 04:46:05 -0500 X-ASG-Debug-ID: 1309513563-2b44001f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1E1616748BA for ; Fri, 1 Jul 2011 02:46:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id DIsDFvSKbD3iDPzw for ; Fri, 01 Jul 2011 02:46:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIV-0001rw-2K for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:03 +0000 Message-Id: <20110701094603.034828069@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:26 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/27] xfs: always log timestamp updates in xfs_setattr_size Subject: [PATCH 05/27] xfs: always log timestamp updates in xfs_setattr_size References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-setattr X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513563 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Get rid of the special case where we use unlogged timestamp updates for a truncate to the current inode size, and just call xfs_setattr_nonsize for it to treat it like a utimes calls. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 00:11:54.876715732 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 09:02:46.606760906 +0200 @@ -773,14 +773,15 @@ xfs_setattr_size( */ if (iattr->ia_size == 0 && ip->i_size == 0 && ip->i_d.di_nextents == 0) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - if (mask & ATTR_CTIME) { - inode->i_mtime = inode->i_ctime = - current_fs_time(inode->i_sb); - xfs_mark_inode_dirty_sync(ip); - } - goto out_unlock; + if (!(mask & (ATTR_CTIME|ATTR_MTIME))) + goto out_unlock; + + /* + * Use the regular setattr path to update the timestamps. + */ + xfs_iunlock(ip, lock_flags); + iattr->ia_valid &= ~ATTR_SIZE; + return xfs_setattr_nonsize(ip, iattr, 0); } /* From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_38,J_CHICKENPOX_39,J_CHICKENPOX_65,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k6bO056051 for ; Fri, 1 Jul 2011 04:46:06 -0500 X-ASG-Debug-ID: 1309513565-63a403d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 75B414669F for ; Fri, 1 Jul 2011 02:46:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id d92S0RQuvgg2kpT1 for ; Fri, 01 Jul 2011 02:46:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIW-0001vh-Qt for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:04 +0000 Message-Id: <20110701094604.795668656@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:33 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 12/27] xfs: factor out xfs_dir2_leaf_find_entry Subject: [PATCH 12/27] xfs: factor out xfs_dir2_leaf_find_entry References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-factor-dir2-leaf-code X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code from xfs_dir2_leaf_addname xfs_dir2_leafn_add. Found by Eric Sandeen using an automated code duplication checker. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-29 19:45:24.846962285 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:29:24.446740960 +0200 @@ -152,6 +152,123 @@ xfs_dir2_block_to_leaf( return 0; } +struct xfs_dir2_leaf_entry * +xfs_dir2_leaf_find_entry( + xfs_dir2_leaf_t *leaf, /* leaf structure */ + int index, /* leaf table position */ + int compact, /* need to compact leaves */ + int lowstale, /* index of prev stale leaf */ + int highstale, /* index of next stale leaf */ + int *lfloglow, /* low leaf logging index */ + int *lfloghigh) /* high leaf logging index */ +{ + if (!leaf->hdr.stale) { + xfs_dir2_leaf_entry_t *lep; /* leaf entry table pointer */ + + /* + * Now we need to make room to insert the leaf entry. + * + * If there are no stale entries, just insert a hole at index. + */ + lep = &leaf->ents[index]; + if (index < be16_to_cpu(leaf->hdr.count)) + memmove(lep + 1, lep, + (be16_to_cpu(leaf->hdr.count) - index) * + sizeof(*lep)); + + /* + * Record low and high logging indices for the leaf. + */ + *lfloglow = index; + *lfloghigh = be16_to_cpu(leaf->hdr.count); + be16_add_cpu(&leaf->hdr.count, 1); + return lep; + } + + /* + * There are stale entries. + * + * We will use one of them for the new entry. It's probably not at + * the right location, so we'll have to shift some up or down first. + * + * If we didn't compact before, we need to find the nearest stale + * entries before and after our insertion point. + */ + if (compact == 0) { + /* + * Find the first stale entry before the insertion point, + * if any. + */ + for (lowstale = index - 1; + lowstale >= 0 && + be32_to_cpu(leaf->ents[lowstale].address) != + XFS_DIR2_NULL_DATAPTR; + lowstale--) + continue; + + /* + * Find the next stale entry at or after the insertion point, + * if any. Stop if we go so far that the lowstale entry + * would be better. + */ + for (highstale = index; + highstale < be16_to_cpu(leaf->hdr.count) && + be32_to_cpu(leaf->ents[highstale].address) != + XFS_DIR2_NULL_DATAPTR && + (lowstale < 0 || + index - lowstale - 1 >= highstale - index); + highstale++) + continue; + } + + /* + * If the low one is better, use it. + */ + if (lowstale >= 0 && + (highstale == be16_to_cpu(leaf->hdr.count) || + index - lowstale - 1 < highstale - index)) { + ASSERT(index - lowstale - 1 >= 0); + ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == + XFS_DIR2_NULL_DATAPTR); + + /* + * Copy entries up to cover the stale entry and make room + * for the new entry. + */ + if (index - lowstale - 1 > 0) { + memmove(&leaf->ents[lowstale], + &leaf->ents[lowstale + 1], + (index - lowstale - 1) * + sizeof(xfs_dir2_leaf_entry_t)); + } + *lfloglow = MIN(lowstale, *lfloglow); + *lfloghigh = MAX(index - 1, *lfloghigh); + be16_add_cpu(&leaf->hdr.stale, -1); + return &leaf->ents[index - 1]; + } + + /* + * The high one is better, so use that one. + */ + ASSERT(highstale - index >= 0); + ASSERT(be32_to_cpu(leaf->ents[highstale].address) == + XFS_DIR2_NULL_DATAPTR); + + /* + * Copy entries down to cover the stale entry and make room for the + * new entry. + */ + if (highstale - index > 0) { + memmove(&leaf->ents[index + 1], + &leaf->ents[index], + (highstale - index) * sizeof(xfs_dir2_leaf_entry_t)); + } + *lfloglow = MIN(index, *lfloglow); + *lfloghigh = MAX(highstale, *lfloghigh); + be16_add_cpu(&leaf->hdr.stale, -1); + return &leaf->ents[index]; +} + /* * Add an entry to a leaf form directory. */ @@ -430,102 +547,10 @@ xfs_dir2_leaf_addname( if (!grown) xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); } - /* - * Now we need to make room to insert the leaf entry. - * If there are no stale entries, we just insert a hole at index. - */ - if (!leaf->hdr.stale) { - /* - * lep is still good as the index leaf entry. - */ - if (index < be16_to_cpu(leaf->hdr.count)) - memmove(lep + 1, lep, - (be16_to_cpu(leaf->hdr.count) - index) * sizeof(*lep)); - /* - * Record low and high logging indices for the leaf. - */ - lfloglow = index; - lfloghigh = be16_to_cpu(leaf->hdr.count); - be16_add_cpu(&leaf->hdr.count, 1); - } - /* - * There are stale entries. - * We will use one of them for the new entry. - * It's probably not at the right location, so we'll have to - * shift some up or down first. - */ - else { - /* - * If we didn't compact before, we need to find the nearest - * stale entries before and after our insertion point. - */ - if (compact == 0) { - /* - * Find the first stale entry before the insertion - * point, if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != - XFS_DIR2_NULL_DATAPTR; - lowstale--) - continue; - /* - * Find the next stale entry at or after the insertion - * point, if any. Stop if we go so far that the - * lowstale entry would be better. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != - XFS_DIR2_NULL_DATAPTR && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } - /* - * If the low one is better, use it. - */ - if (lowstale >= 0 && - (highstale == be16_to_cpu(leaf->hdr.count) || - index - lowstale - 1 < highstale - index)) { - ASSERT(index - lowstale - 1 >= 0); - ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == - XFS_DIR2_NULL_DATAPTR); - /* - * Copy entries up to cover the stale entry - * and make room for the new entry. - */ - if (index - lowstale - 1 > 0) - memmove(&leaf->ents[lowstale], - &leaf->ents[lowstale + 1], - (index - lowstale - 1) * sizeof(*lep)); - lep = &leaf->ents[index - 1]; - lfloglow = MIN(lowstale, lfloglow); - lfloghigh = MAX(index - 1, lfloghigh); - } - /* - * The high one is better, so use that one. - */ - else { - ASSERT(highstale - index >= 0); - ASSERT(be32_to_cpu(leaf->ents[highstale].address) == - XFS_DIR2_NULL_DATAPTR); - /* - * Copy entries down to cover the stale entry - * and make room for the new entry. - */ - if (highstale - index > 0) - memmove(&leaf->ents[index + 1], - &leaf->ents[index], - (highstale - index) * sizeof(*lep)); - lep = &leaf->ents[index]; - lfloglow = MIN(index, lfloglow); - lfloghigh = MAX(highstale, lfloghigh); - } - be16_add_cpu(&leaf->hdr.stale, -1); - } + + lep = xfs_dir2_leaf_find_entry(leaf, index, compact, lowstale, + highstale, &lfloglow, &lfloghigh); + /* * Fill in the new leaf entry. */ Index: xfs/fs/xfs/xfs_dir2_leaf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-06-29 19:45:24.856962230 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:18:07.263416117 +0200 @@ -248,6 +248,9 @@ extern int xfs_dir2_leaf_search_hash(str struct xfs_dabuf *lbp); extern int xfs_dir2_leaf_trim_data(struct xfs_da_args *args, struct xfs_dabuf *lbp, xfs_dir2_db_t db); +extern xfs_dir2_leaf_entry_t *xfs_dir2_leaf_find_entry(xfs_dir2_leaf_t *, int, + int, int, int, + int *, int *); extern int xfs_dir2_node_to_leaf(struct xfs_da_state *state); #endif /* __XFS_DIR2_LEAF_H__ */ Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-06-29 19:45:24.870295493 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-06-30 09:27:19.103409194 +0200 @@ -244,89 +244,13 @@ xfs_dir2_leafn_add( lfloglow = be16_to_cpu(leaf->hdr.count); lfloghigh = -1; } - /* - * No stale entries, just insert a space for the new entry. - */ - if (!leaf->hdr.stale) { - lep = &leaf->ents[index]; - if (index < be16_to_cpu(leaf->hdr.count)) - memmove(lep + 1, lep, - (be16_to_cpu(leaf->hdr.count) - index) * sizeof(*lep)); - lfloglow = index; - lfloghigh = be16_to_cpu(leaf->hdr.count); - be16_add_cpu(&leaf->hdr.count, 1); - } - /* - * There are stale entries. We'll use one for the new entry. - */ - else { - /* - * If we didn't do a compact then we need to figure out - * which stale entry will be used. - */ - if (compact == 0) { - /* - * Find first stale entry before our insertion point. - */ - for (lowstale = index - 1; - lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != - XFS_DIR2_NULL_DATAPTR; - lowstale--) - continue; - /* - * Find next stale entry after insertion point. - * Stop looking if the answer would be worse than - * lowstale already found. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != - XFS_DIR2_NULL_DATAPTR && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } - /* - * Using the low stale entry. - * Shift entries up toward the stale slot. - */ - if (lowstale >= 0 && - (highstale == be16_to_cpu(leaf->hdr.count) || - index - lowstale - 1 < highstale - index)) { - ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == - XFS_DIR2_NULL_DATAPTR); - ASSERT(index - lowstale - 1 >= 0); - if (index - lowstale - 1 > 0) - memmove(&leaf->ents[lowstale], - &leaf->ents[lowstale + 1], - (index - lowstale - 1) * sizeof(*lep)); - lep = &leaf->ents[index - 1]; - lfloglow = MIN(lowstale, lfloglow); - lfloghigh = MAX(index - 1, lfloghigh); - } - /* - * Using the high stale entry. - * Shift entries down toward the stale slot. - */ - else { - ASSERT(be32_to_cpu(leaf->ents[highstale].address) == - XFS_DIR2_NULL_DATAPTR); - ASSERT(highstale - index >= 0); - if (highstale - index > 0) - memmove(&leaf->ents[index + 1], - &leaf->ents[index], - (highstale - index) * sizeof(*lep)); - lep = &leaf->ents[index]; - lfloglow = MIN(index, lfloglow); - lfloghigh = MAX(highstale, lfloghigh); - } - be16_add_cpu(&leaf->hdr.stale, -1); - } + /* * Insert the new entry, log everything. */ + lep = xfs_dir2_leaf_find_entry(leaf, index, compact, lowstale, + highstale, &lfloglow, &lfloghigh); + lep->hashval = cpu_to_be32(args->hashval); lep->address = cpu_to_be32(xfs_dir2_db_off_to_dataptr(mp, args->blkno, args->index)); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k5BB056031 for ; Fri, 1 Jul 2011 04:46:05 -0500 X-ASG-Debug-ID: 1309513564-6d2300af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB2B01EE3234 for ; Fri, 1 Jul 2011 02:46:04 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id cOPMbGSwYPLdQSmC for ; Fri, 01 Jul 2011 02:46:04 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIW-0001u9-86 for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:04 +0000 Message-Id: <20110701094604.200765470@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:30 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/27] xfs: fix filesystsem freeze race in xfs_trans_alloc Subject: [PATCH 09/27] xfs: fix filesystsem freeze race in xfs_trans_alloc References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-fix-freeze-race X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513564 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem freeze when it sleeps during the memory allocation. Fix this by moving the wait_for_freeze call after the memory allocation. This means moving the freeze into the low-level _xfs_trans_alloc helper, which thus grows a new argument. Also fix up some comments in that area while at it. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_fsops.c =================================================================== --- xfs.orig/fs/xfs/xfs_fsops.c 2011-06-18 17:50:43.477373715 +0200 +++ xfs/fs/xfs/xfs_fsops.c 2011-06-20 09:17:00.933518761 +0200 @@ -626,7 +626,7 @@ xfs_fs_log_dummy( xfs_trans_t *tp; int error; - tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP); + tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP, false); error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, XFS_DEFAULT_LOG_COUNT); if (error) { Index: xfs/fs/xfs/xfs_iomap.c =================================================================== --- xfs.orig/fs/xfs/xfs_iomap.c 2011-06-18 17:50:43.487373714 +0200 +++ xfs/fs/xfs/xfs_iomap.c 2011-06-20 09:17:00.933518761 +0200 @@ -688,8 +688,7 @@ xfs_iomap_write_unwritten( * the same inode that we complete here and might deadlock * on the iolock. */ - xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); - tp = _xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE, KM_NOFS); + tp = _xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE, KM_NOFS, true); tp->t_flags |= XFS_TRANS_RESERVE; error = xfs_trans_reserve(tp, resblks, XFS_WRITE_LOG_RES(mp), 0, Index: xfs/fs/xfs/xfs_trans.h =================================================================== --- xfs.orig/fs/xfs/xfs_trans.h 2011-06-18 17:50:43.497373713 +0200 +++ xfs/fs/xfs/xfs_trans.h 2011-06-21 10:57:04.908840421 +0200 @@ -447,8 +447,14 @@ typedef struct xfs_trans { /* * XFS transaction mechanism exported interfaces. */ -xfs_trans_t *xfs_trans_alloc(struct xfs_mount *, uint); -xfs_trans_t *_xfs_trans_alloc(struct xfs_mount *, uint, uint); +xfs_trans_t *_xfs_trans_alloc(struct xfs_mount *, uint, uint, bool); + +static inline struct xfs_trans * +xfs_trans_alloc(struct xfs_mount *mp, uint type) +{ + return _xfs_trans_alloc(mp, type, KM_SLEEP, true); +} + xfs_trans_t *xfs_trans_dup(xfs_trans_t *); int xfs_trans_reserve(xfs_trans_t *, uint, uint, uint, uint, uint); Index: xfs/fs/xfs/xfs_mount.c =================================================================== --- xfs.orig/fs/xfs/xfs_mount.c 2011-06-18 17:50:43.510707047 +0200 +++ xfs/fs/xfs/xfs_mount.c 2011-06-20 09:17:00.936852094 +0200 @@ -1566,15 +1566,9 @@ xfs_fs_writable(xfs_mount_t *mp) } /* - * xfs_log_sbcount - * * Called either periodically to keep the on disk superblock values * roughly up to date or from unmount to make sure the values are * correct on a clean unmount. - * - * Note this code can be called during the process of freezing, so - * we may need to use the transaction allocator which does not not - * block when the transaction subsystem is in its frozen state. */ int xfs_log_sbcount( @@ -1596,7 +1590,13 @@ xfs_log_sbcount( if (!xfs_sb_version_haslazysbcount(&mp->m_sb)) return 0; - tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP); + /* + * We can be called during the process of freezing, so make sure + * we go ahead even if the frozen for new transactions. We will + * always use a sync transaction in the freeze path to make sure + * the transaction has completed by the time we return. + */ + tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP, false); error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, XFS_DEFAULT_LOG_COUNT); if (error) { Index: xfs/fs/xfs/xfs_trans.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans.c 2011-06-18 17:50:43.524040379 +0200 +++ xfs/fs/xfs/xfs_trans.c 2011-06-21 10:56:25.305509042 +0200 @@ -566,31 +566,24 @@ xfs_trans_init( /* * This routine is called to allocate a transaction structure. + * * The type parameter indicates the type of the transaction. These * are enumerated in xfs_trans.h. - * - * Dynamically allocate the transaction structure from the transaction - * zone, initialize it, and return it to the caller. */ -xfs_trans_t * -xfs_trans_alloc( - xfs_mount_t *mp, - uint type) -{ - xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); - return _xfs_trans_alloc(mp, type, KM_SLEEP); -} - -xfs_trans_t * +struct xfs_trans * _xfs_trans_alloc( - xfs_mount_t *mp, - uint type, - uint memflags) + struct xfs_mount *mp, + uint type, + uint memflags, + bool wait_for_freeze) { - xfs_trans_t *tp; + struct xfs_trans *tp; atomic_inc(&mp->m_active_trans); + if (wait_for_freeze) + xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); + tp = kmem_zone_zalloc(xfs_trans_zone, memflags); tp->t_magic = XFS_TRANS_MAGIC; tp->t_type = type; From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k6uc056042 for ; Fri, 1 Jul 2011 04:46:06 -0500 X-ASG-Debug-ID: 1309513563-64f001440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3D5DA1E56724 for ; Fri, 1 Jul 2011 02:46:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 0vAHfFJVbzQOz6n1 for ; Fri, 01 Jul 2011 02:46:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIV-0001t5-KA for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:03 +0000 Message-Id: <20110701094603.580931463@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:28 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/27] xfs: split xfs_itruncate_finish Subject: [PATCH 07/27] xfs: split xfs_itruncate_finish References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-split-xfs_itruncate_finish X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513564 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Split the guts of xfs_itruncate_finish that loop over the existing extents and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs. Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish, which allows to simplify the latter a lot, by only letting it deal with the data fork. As a result xfs_itruncate_finish is renamed to xfs_itruncate_data to make its use case more obvious. Also remove the sync parameter from xfs_itruncate_data, which has been unessecary since the introduction of the busy extent list in 2002, and completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was made a no-op. I can't actually see why the xfs_attr_inactive needs to set the transaction sync, but let's keep this patch simple and without changes in behaviour. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 09:02:46.606760906 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 09:05:30.870092231 +0200 @@ -879,15 +879,7 @@ xfs_setattr_size( ip->i_size = iattr->ia_size; } else if (iattr->ia_size <= ip->i_size || (iattr->ia_size == 0 && ip->i_d.di_nextents)) { - /* - * Signal a sync transaction unless we are truncating an - * already unlinked file on a wsync filesystem. - */ - error = xfs_itruncate_finish(&tp, ip, iattr->ia_size, - XFS_DATA_FORK, - ((ip->i_d.di_nlink != 0 || - !(mp->m_flags & XFS_MOUNT_WSYNC)) - ? 1 : 0)); + error = xfs_itruncate_data(&tp, ip, iattr->ia_size); if (error) goto out_trans_abort; Index: xfs/fs/xfs/quota/xfs_qm_syscalls.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm_syscalls.c 2011-06-29 19:45:25.346959576 +0200 +++ xfs/fs/xfs/quota/xfs_qm_syscalls.c 2011-06-30 09:05:30.870092231 +0200 @@ -263,7 +263,7 @@ xfs_qm_scall_trunc_qfile( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - error = xfs_itruncate_finish(&tp, ip, 0, XFS_DATA_FORK, 1); + error = xfs_itruncate_data(&tp, ip, 0); if (error) { xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); Index: xfs/fs/xfs/xfs_attr.c =================================================================== --- xfs.orig/fs/xfs/xfs_attr.c 2011-06-29 19:45:25.360292838 +0200 +++ xfs/fs/xfs/xfs_attr.c 2011-06-30 09:05:30.873425550 +0200 @@ -822,17 +822,21 @@ xfs_attr_inactive(xfs_inode_t *dp) error = xfs_attr_root_inactive(&trans, dp); if (error) goto out; + /* - * signal synchronous inactive transactions unless this - * is a synchronous mount filesystem in which case we - * know that we're here because we've been called out of - * xfs_inactive which means that the last reference is gone - * and the unlink transaction has already hit the disk so - * async inactive transactions are safe. + * Signal synchronous inactive transactions unless this is a + * synchronous mount filesystem in which case we know that we're here + * because we've been called out of xfs_inactive which means that the + * last reference is gone and the unlink transaction has already hit + * the disk so async inactive transactions are safe. */ - if ((error = xfs_itruncate_finish(&trans, dp, 0LL, XFS_ATTR_FORK, - (!(mp->m_flags & XFS_MOUNT_WSYNC) - ? 1 : 0)))) + if (!(mp->m_flags & XFS_MOUNT_WSYNC)) { + if (dp->i_d.di_anextents > 0) + xfs_trans_set_sync(trans); + } + + error = xfs_itruncate_extents(&trans, dp, XFS_ATTR_FORK, 0); + if (error) goto out; /* Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-06-30 09:02:59.840094075 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-06-30 09:15:11.956751640 +0200 @@ -52,7 +52,7 @@ kmem_zone_t *xfs_ifork_zone; kmem_zone_t *xfs_inode_zone; /* - * Used in xfs_itruncate(). This is the maximum number of extents + * Used in xfs_itruncate_extents(). This is the maximum number of extents * freed from a file in a single transaction. */ #define XFS_ITRUNC_MAX_EXTENTS 2 @@ -1218,7 +1218,9 @@ xfs_isize_check( /* * Free up the underlying blocks past new_size. The new size must be - * smaller than the current size. + * smaller than the current size. This routine can be used both for + * the attribute and data fork, and does not modify the inode size, + * which is left to the caller. * * The transaction passed to this routine must have made a permanent log * reservation of at least XFS_ITRUNCATE_LOG_RES. This routine may commit the @@ -1230,31 +1232,6 @@ xfs_isize_check( * will be "held" within the returned transaction. This routine does NOT * require any disk space to be reserved for it within the transaction. * - * The fork parameter must be either XFS_ATTR_FORK or XFS_DATA_FORK, and it - * indicates the fork which is to be truncated. For the attribute fork we only - * support truncation to size 0. - * - * We use the sync parameter to indicate whether or not the first transaction - * we perform might have to be synchronous. For the attr fork, it needs to be - * so if the unlink of the inode is not yet known to be permanent in the log. - * This keeps us from freeing and reusing the blocks of the attribute fork - * before the unlink of the inode becomes permanent. - * - * For the data fork, we normally have to run synchronously if we're being - * called out of the inactive path or we're being called out of the create path - * where we're truncating an existing file. Either way, the truncate needs to - * be sync so blocks don't reappear in the file with altered data in case of a - * crash. wsync filesystems can run the first case async because anything that - * shrinks the inode has to run sync so by the time we're called here from - * inactive, the inode size is permanently set to 0. - * - * Calls from the truncate path always need to be sync unless we're in a wsync - * filesystem and the file has already been unlinked. - * - * The caller is responsible for correctly setting the sync parameter. It gets - * too hard for us to guess here which path we're being called out of just - * based on inode state. - * * If we get an error, we must return with the inode locked and linked into the * current transaction. This keeps things simple for the higher level code, * because it always knows that the inode is locked and held in the transaction @@ -1262,124 +1239,31 @@ xfs_isize_check( * dirty on error so that transactions can be easily aborted if possible. */ int -xfs_itruncate_finish( - xfs_trans_t **tp, - xfs_inode_t *ip, - xfs_fsize_t new_size, - int fork, - int sync) +xfs_itruncate_extents( + struct xfs_trans **tpp, + struct xfs_inode *ip, + int whichfork, + xfs_fsize_t new_size) { - xfs_fsblock_t first_block; - xfs_fileoff_t first_unmap_block; - xfs_fileoff_t last_block; - xfs_filblks_t unmap_len=0; - xfs_mount_t *mp; - xfs_trans_t *ntp; - int done; - int committed; - xfs_bmap_free_t free_list; - int error; + struct xfs_mount *mp = ip->i_mount; + struct xfs_trans *tp = *tpp; + struct xfs_trans *ntp; + xfs_bmap_free_t free_list; + xfs_fsblock_t first_block; + xfs_fileoff_t first_unmap_block; + xfs_fileoff_t last_block; + xfs_filblks_t unmap_len; + int committed; + int error = 0; + int done = 0; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); - ASSERT((new_size == 0) || (new_size <= ip->i_size)); - ASSERT(*tp != NULL); - ASSERT((*tp)->t_flags & XFS_TRANS_PERM_LOG_RES); - ASSERT(ip->i_transp == *tp); + ASSERT(new_size <= ip->i_size); + ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); + ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(ip->i_itemp->ili_lock_flags == 0); - - - ntp = *tp; - mp = (ntp)->t_mountp; - ASSERT(! XFS_NOT_DQATTACHED(mp, ip)); - - /* - * We only support truncating the entire attribute fork. - */ - if (fork == XFS_ATTR_FORK) { - new_size = 0LL; - } - first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); - trace_xfs_itruncate_finish_start(ip, new_size); - - /* - * The first thing we do is set the size to new_size permanently - * on disk. This way we don't have to worry about anyone ever - * being able to look at the data being freed even in the face - * of a crash. What we're getting around here is the case where - * we free a block, it is allocated to another file, it is written - * to, and then we crash. If the new data gets written to the - * file but the log buffers containing the free and reallocation - * don't, then we'd end up with garbage in the blocks being freed. - * As long as we make the new_size permanent before actually - * freeing any blocks it doesn't matter if they get written to. - * - * The callers must signal into us whether or not the size - * setting here must be synchronous. There are a few cases - * where it doesn't have to be synchronous. Those cases - * occur if the file is unlinked and we know the unlink is - * permanent or if the blocks being truncated are guaranteed - * to be beyond the inode eof (regardless of the link count) - * and the eof value is permanent. Both of these cases occur - * only on wsync-mounted filesystems. In those cases, we're - * guaranteed that no user will ever see the data in the blocks - * that are being truncated so the truncate can run async. - * In the free beyond eof case, the file may wind up with - * more blocks allocated to it than it needs if we crash - * and that won't get fixed until the next time the file - * is re-opened and closed but that's ok as that shouldn't - * be too many blocks. - * - * However, we can't just make all wsync xactions run async - * because there's one call out of the create path that needs - * to run sync where it's truncating an existing file to size - * 0 whose size is > 0. - * - * It's probably possible to come up with a test in this - * routine that would correctly distinguish all the above - * cases from the values of the function parameters and the - * inode state but for sanity's sake, I've decided to let the - * layers above just tell us. It's simpler to correctly figure - * out in the layer above exactly under what conditions we - * can run async and I think it's easier for others read and - * follow the logic in case something has to be changed. - * cscope is your friend -- rcc. - * - * The attribute fork is much simpler. - * - * For the attribute fork we allow the caller to tell us whether - * the unlink of the inode that led to this call is yet permanent - * in the on disk log. If it is not and we will be freeing extents - * in this inode then we make the first transaction synchronous - * to make sure that the unlink is permanent by the time we free - * the blocks. - */ - if (fork == XFS_DATA_FORK) { - if (ip->i_d.di_nextents > 0) { - /* - * If we are not changing the file size then do - * not update the on-disk file size - we may be - * called from xfs_inactive_free_eofblocks(). If we - * update the on-disk file size and then the system - * crashes before the contents of the file are - * flushed to disk then the files may be full of - * holes (ie NULL files bug). - */ - if (ip->i_size != new_size) { - ip->i_d.di_size = new_size; - ip->i_size = new_size; - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); - } - } - } else if (sync) { - ASSERT(!(mp->m_flags & XFS_MOUNT_WSYNC)); - if (ip->i_d.di_anextents > 0) - xfs_trans_set_sync(ntp); - } - ASSERT(fork == XFS_DATA_FORK || - (fork == XFS_ATTR_FORK && - ((sync && !(mp->m_flags & XFS_MOUNT_WSYNC)) || - (sync == 0 && (mp->m_flags & XFS_MOUNT_WSYNC))))); + ASSERT(!XFS_NOT_DQATTACHED(mp, ip)); /* * Since it is possible for space to become allocated beyond @@ -1390,128 +1274,143 @@ xfs_itruncate_finish( * beyond the maximum file size (ie it is the same as last_block), * then there is nothing to do. */ + first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); - ASSERT(first_unmap_block <= last_block); - done = 0; - if (last_block == first_unmap_block) { - done = 1; - } else { - unmap_len = last_block - first_unmap_block + 1; - } + if (first_unmap_block == last_block) + return 0; + + ASSERT(first_unmap_block < last_block); + unmap_len = last_block - first_unmap_block + 1; while (!done) { - /* - * Free up up to XFS_ITRUNC_MAX_EXTENTS. xfs_bunmapi() - * will tell us whether it freed the entire range or - * not. If this is a synchronous mount (wsync), - * then we can tell bunmapi to keep all the - * transactions asynchronous since the unlink - * transaction that made this inode inactive has - * already hit the disk. There's no danger of - * the freed blocks being reused, there being a - * crash, and the reused blocks suddenly reappearing - * in this file with garbage in them once recovery - * runs. - */ xfs_bmap_init(&free_list, &first_block); - error = xfs_bunmapi(ntp, ip, + error = xfs_bunmapi(tp, ip, first_unmap_block, unmap_len, - xfs_bmapi_aflag(fork), + xfs_bmapi_aflag(whichfork), XFS_ITRUNC_MAX_EXTENTS, &first_block, &free_list, &done); - if (error) { - /* - * If the bunmapi call encounters an error, - * return to the caller where the transaction - * can be properly aborted. We just need to - * make sure we're not holding any resources - * that we were not when we came in. - */ - xfs_bmap_cancel(&free_list); - return error; - } + if (error) + goto out_bmap_cancel; /* * Duplicate the transaction that has the permanent * reservation and commit the old transaction. */ - error = xfs_bmap_finish(tp, &free_list, &committed); - ntp = *tp; + error = xfs_bmap_finish(&tp, &free_list, &committed); if (committed) - xfs_trans_ijoin(ntp, ip); - - if (error) { - /* - * If the bmap finish call encounters an error, return - * to the caller where the transaction can be properly - * aborted. We just need to make sure we're not - * holding any resources that we were not when we came - * in. - * - * Aborting from this point might lose some blocks in - * the file system, but oh well. - */ - xfs_bmap_cancel(&free_list); - return error; - } + xfs_trans_ijoin(tp, ip); + if (error) + goto out_bmap_cancel; if (committed) { /* * Mark the inode dirty so it will be logged and * moved forward in the log as part of every commit. */ - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); } - ntp = xfs_trans_dup(ntp); - error = xfs_trans_commit(*tp, 0); - *tp = ntp; + ntp = xfs_trans_dup(tp); + error = xfs_trans_commit(tp, 0); + tp = ntp; - xfs_trans_ijoin(ntp, ip); + xfs_trans_ijoin(tp, ip); if (error) - return error; + goto out; + /* - * transaction commit worked ok so we can drop the extra ticket + * Transaction commit worked ok so we can drop the extra ticket * reference that we gained in xfs_trans_dup() */ - xfs_log_ticket_put(ntp->t_ticket); - error = xfs_trans_reserve(ntp, 0, + xfs_log_ticket_put(tp->t_ticket); + error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, XFS_TRANS_PERM_LOG_RES, XFS_ITRUNCATE_LOG_COUNT); if (error) - return error; + goto out; } + +out: + *tpp = tp; + return error; +out_bmap_cancel: + /* + * If the bunmapi call encounters an error, return to the caller where + * the transaction can be properly aborted. We just need to make sure + * we're not holding any resources that we were not when we came in. + */ + xfs_bmap_cancel(&free_list); + goto out; +} + +int +xfs_itruncate_data( + struct xfs_trans **tpp, + struct xfs_inode *ip, + xfs_fsize_t new_size) +{ + struct xfs_mount *mp = ip->i_mount; + int error; + + trace_xfs_itruncate_data_start(ip, new_size); + /* - * Only update the size in the case of the data fork, but - * always re-log the inode so that our permanent transaction - * can keep on rolling it forward in the log. + * The first thing we do is set the size to new_size permanently on + * disk. This way we don't have to worry about anyone ever being able + * to look at the data being freed even in the face of a crash. + * What we're getting around here is the case where we free a block, it + * is allocated to another file, it is written to, and then we crash. + * If the new data gets written to the file but the log buffers + * containing the free and reallocation don't, then we'd end up with + * garbage in the blocks being freed. As long as we make the new_size + * permanent before actually freeing any blocks it doesn't matter if + * they get written to. */ - if (fork == XFS_DATA_FORK) { - xfs_isize_check(mp, ip, new_size); + if (ip->i_d.di_nextents > 0) { /* - * If we are not changing the file size then do - * not update the on-disk file size - we may be - * called from xfs_inactive_free_eofblocks(). If we - * update the on-disk file size and then the system - * crashes before the contents of the file are - * flushed to disk then the files may be full of - * holes (ie NULL files bug). + * If we are not changing the file size then do not update + * the on-disk file size - we may be called from + * xfs_inactive_free_eofblocks(). If we update the on-disk + * file size and then the system crashes before the contents + * of the file are flushed to disk then the files may be + * full of holes (ie NULL files bug). */ if (ip->i_size != new_size) { ip->i_d.di_size = new_size; ip->i_size = new_size; + xfs_trans_log_inode(*tpp, ip, XFS_ILOG_CORE); } } - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); - ASSERT((new_size != 0) || - (fork == XFS_ATTR_FORK) || - (ip->i_delayed_blks == 0)); - ASSERT((new_size != 0) || - (fork == XFS_ATTR_FORK) || - (ip->i_d.di_nextents == 0)); - trace_xfs_itruncate_finish_end(ip, new_size); + + error = xfs_itruncate_extents(tpp, ip, XFS_DATA_FORK, new_size); + if (error) + return error; + + /* + * If we are not changing the file size then do not update the on-disk + * file size - we may be called from xfs_inactive_free_eofblocks(). + * If we update the on-disk file size and then the system crashes + * before the contents of the file are flushed to disk then the files + * may be full of holes (ie NULL files bug). + */ + xfs_isize_check(mp, ip, new_size); + if (ip->i_size != new_size) { + ip->i_d.di_size = new_size; + ip->i_size = new_size; + } + + ASSERT(new_size != 0 || ip->i_delayed_blks == 0); + ASSERT(new_size != 0 || ip->i_d.di_nextents == 0); + + /* + * Always re-log the inode so that our permanent transaction can keep + * on rolling it forward in the log. + */ + xfs_trans_log_inode(*tpp, ip, XFS_ILOG_CORE); + + trace_xfs_itruncate_data_end(ip, new_size); return 0; } Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-06-30 09:02:59.846760741 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-06-30 09:05:30.876758871 +0200 @@ -491,8 +491,10 @@ uint xfs_ip2xflags(struct xfs_inode *); uint xfs_dic2xflags(struct xfs_dinode *); int xfs_ifree(struct xfs_trans *, xfs_inode_t *, struct xfs_bmap_free *); -int xfs_itruncate_finish(struct xfs_trans **, xfs_inode_t *, - xfs_fsize_t, int, int); +int xfs_itruncate_extents(struct xfs_trans **, struct xfs_inode *, + int, xfs_fsize_t); +int xfs_itruncate_data(struct xfs_trans **, struct xfs_inode *, + xfs_fsize_t); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-30 09:02:59.843427408 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-30 09:05:30.876758871 +0200 @@ -220,15 +220,12 @@ xfs_free_eofblocks( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - error = xfs_itruncate_finish(&tp, ip, - ip->i_size, - XFS_DATA_FORK, - 0); - /* - * If we get an error at this point we - * simply don't bother truncating the file. - */ + error = xfs_itruncate_data(&tp, ip, ip->i_size); if (error) { + /* + * If we get an error at this point we simply don't + * bother truncating the file. + */ xfs_trans_cancel(tp, (XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT)); @@ -665,16 +662,7 @@ xfs_inactive( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - /* - * normally, we have to run xfs_itruncate_finish sync. - * But if filesystem is wsync and we're in the inactive - * path, then we know that nlink == 0, and that the - * xaction that made nlink == 0 is permanently committed - * since xfs_remove runs as a synchronous transaction. - */ - error = xfs_itruncate_finish(&tp, ip, 0, XFS_DATA_FORK, - (!(mp->m_flags & XFS_MOUNT_WSYNC) ? 1 : 0)); - + error = xfs_itruncate_data(&tp, ip, 0); if (error) { xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-06-30 09:02:59.846760741 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-06-30 09:05:30.880092189 +0200 @@ -1055,8 +1055,8 @@ DECLARE_EVENT_CLASS(xfs_itrunc_class, DEFINE_EVENT(xfs_itrunc_class, name, \ TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ TP_ARGS(ip, new_size)) -DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_start); -DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_end); +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_start); +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_end); TRACE_EVENT(xfs_pagecache_inval, TP_PROTO(struct xfs_inode *ip, xfs_off_t start, xfs_off_t finish), From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k6KL056071 for ; Fri, 1 Jul 2011 04:46:07 -0500 X-ASG-Debug-ID: 1309513565-2b4c001c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 456DF16748C3 for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 6bYGowgrj17BNOAq for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIX-0001xG-Eo for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:05 +0000 Message-Id: <20110701094605.415405585@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:36 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry Subject: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_sf_entry X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the inumber member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Based on this clean up the helpers to calculate the entry size. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:37:41.120068219 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:38:34.303400889 +0200 @@ -371,7 +371,7 @@ xfs_dir2_sf_addname( /* * Compute entry (and change in) size. */ - add_entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); + add_entsize = xfs_dir2_sf_entsize(sfp, args->namelen); incr_isize = add_entsize; objchange = 0; #if XFS_BIG_INUMS @@ -465,7 +465,7 @@ xfs_dir2_sf_addname_easy( /* * Grow the in-inode space. */ - xfs_idata_realloc(dp, xfs_dir2_sf_entsize_byname(sfp, args->namelen), + xfs_idata_realloc(dp, xfs_dir2_sf_entsize(sfp, args->namelen), XFS_DATA_FORK); /* * Need to set up again due to realloc of the inode data. @@ -1001,7 +1001,7 @@ xfs_dir2_sf_removename( * Calculate sizes. */ byteoff = (int)((char *)sfep - (char *)sfp); - entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); + entsize = xfs_dir2_sf_entsize(sfp, args->namelen); newsize = oldsize - entsize; /* * Copy the part if any after the removed entry, sliding it down. Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:35:55.813402859 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:38:34.303400889 +0200 @@ -76,10 +76,13 @@ typedef struct xfs_dir2_sf_hdr { } __arch_pack xfs_dir2_sf_hdr_t; typedef struct xfs_dir2_sf_entry { - __uint8_t namelen; /* actual name length */ + __u8 namelen; /* actual name length */ xfs_dir2_sf_off_t offset; /* saved offset */ - __uint8_t name[1]; /* name, variable size */ - xfs_dir2_inou_t inumber; /* inode number, var. offset */ + __u8 name[]; /* name, variable size */ + /* + * A xfs_dir2_ino8_t or xfs_dir2_ino4_t follows here, at a + * variable offset after the name. + */ } __arch_pack xfs_dir2_sf_entry_t; static inline int xfs_dir2_sf_hdr_size(int i8count) @@ -101,32 +104,27 @@ xfs_dir2_sf_put_offset(xfs_dir2_sf_entry INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); } -static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_hdr_t *sfp, int len) -{ - return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (len) - \ - ((sfp)->i8count == 0) * \ - ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); -} - static inline int -xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) +xfs_dir2_sf_entsize(xfs_dir2_sf_hdr_t *sfp, int len) { - return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (sfep)->namelen - \ - ((sfp)->i8count == 0) * \ - ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); + return sizeof(xfs_dir2_sf_entry_t) + /* namelen + offset */ + len + /* name */ + (sfp->i8count ? /* ino */ + sizeof(xfs_dir2_ino8_t) : + sizeof(xfs_dir2_ino4_t)); } static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_hdr_t *sfp) { - return ((xfs_dir2_sf_entry_t *) \ - ((char *)(sfp) + xfs_dir2_sf_hdr_size(sfp->i8count))); + return (xfs_dir2_sf_entry_t *) + ((char *)sfp + xfs_dir2_sf_hdr_size(sfp->i8count)); } static inline xfs_dir2_sf_entry_t * xfs_dir2_sf_nextentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) { - return ((xfs_dir2_sf_entry_t *) \ - ((char *)(sfep) + xfs_dir2_sf_entsize_byentry(sfp,sfep))); + return (xfs_dir2_sf_entry_t *) + ((char *)sfep + xfs_dir2_sf_entsize(sfp, sfep->namelen)); } /* From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k5Nh056038 for ; Fri, 1 Jul 2011 04:46:06 -0500 X-ASG-Debug-ID: 1309513564-63a503d90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E897466A1 for ; Fri, 1 Jul 2011 02:46:04 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id wh5RbfXRhvoVS5jR for ; Fri, 01 Jul 2011 02:46:04 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIW-0001uf-Eg for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:04 +0000 Message-Id: <20110701094604.425053359@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:31 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/27] xfs: remove i_transp Subject: [PATCH 10/27] xfs: remove i_transp References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-i_transp X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the transaction pointer in the inode. It's only used to avoid passing down an argument in the bmap code, and for a few asserts in the transaction code right now. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Index: xfs/fs/xfs/quota/xfs_trans_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_trans_dquot.c 2011-06-29 19:45:24.000000000 +0200 +++ xfs/fs/xfs/quota/xfs_trans_dquot.c 2011-06-30 09:16:44.710083825 +0200 @@ -59,7 +59,7 @@ xfs_trans_dqjoin( xfs_trans_add_item(tp, &dqp->q_logitem.qli_item); /* - * Initialize i_transp so we can later determine if this dquot is + * Initialize d_transp so we can later determine if this dquot is * associated with this transaction. */ dqp->q_transp = tp; Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-06-29 19:45:24.000000000 +0200 +++ xfs/fs/xfs/xfs_bmap.c 2011-06-30 09:16:44.713417161 +0200 @@ -94,6 +94,7 @@ xfs_bmap_add_attrfork_local( */ STATIC int /* error */ xfs_bmap_add_extent_delay_real( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -439,6 +440,7 @@ xfs_bmap_add_attrfork_local( */ STATIC int /* error */ xfs_bmap_add_extent( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -524,7 +526,7 @@ xfs_bmap_add_extent( if (cur) ASSERT(cur->bc_private.b.flags & XFS_BTCUR_BPRV_WASDEL); - error = xfs_bmap_add_extent_delay_real(ip, + error = xfs_bmap_add_extent_delay_real(tp, ip, idx, &cur, new, &da_new, first, flist, &logflags); } else { @@ -561,7 +563,7 @@ xfs_bmap_add_extent( int tmp_logflags; /* partial log flag return val */ ASSERT(cur == NULL); - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, first, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, da_old > 0, &tmp_logflags, whichfork); logflags |= tmp_logflags; if (error) @@ -604,6 +606,7 @@ done: */ STATIC int /* error */ xfs_bmap_add_extent_delay_real( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -901,7 +904,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -984,7 +987,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -1052,7 +1055,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -2871,8 +2874,8 @@ xfs_bmap_del_extent( len = del->br_blockcount; do_div(bno, mp->m_sb.sb_rextsize); do_div(len, mp->m_sb.sb_rextsize); - if ((error = xfs_rtfree_extent(ip->i_transp, bno, - (xfs_extlen_t)len))) + error = xfs_rtfree_extent(tp, bno, (xfs_extlen_t)len); + if (error) goto done; do_fx = 0; nblks = len * mp->m_sb.sb_rextsize; @@ -4662,7 +4665,7 @@ xfs_bmapi( if (!wasdelay && (flags & XFS_BMAPI_PREALLOC)) got.br_state = XFS_EXT_UNWRITTEN; } - error = xfs_bmap_add_extent(ip, &lastx, &cur, &got, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, &got, firstblock, flist, &tmp_logflags, whichfork); logflags |= tmp_logflags; @@ -4763,7 +4766,7 @@ xfs_bmapi( mval->br_state = (mval->br_state == XFS_EXT_UNWRITTEN) ? XFS_EXT_NORM : XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, mval, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, mval, firstblock, flist, &tmp_logflags, whichfork); logflags |= tmp_logflags; @@ -5117,7 +5120,7 @@ xfs_bunmapi( del.br_blockcount = mod; } del.br_state = XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, &del, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, &del, firstblock, flist, &logflags, XFS_DATA_FORK); if (error) @@ -5175,18 +5178,18 @@ xfs_bunmapi( } prev.br_state = XFS_EXT_UNWRITTEN; lastx--; - error = xfs_bmap_add_extent(ip, &lastx, &cur, - &prev, firstblock, flist, &logflags, - XFS_DATA_FORK); + error = xfs_bmap_add_extent(tp, ip, &lastx, + &cur, &prev, firstblock, flist, + &logflags, XFS_DATA_FORK); if (error) goto error0; goto nodelete; } else { ASSERT(del.br_state == XFS_EXT_NORM); del.br_state = XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, - &del, firstblock, flist, &logflags, - XFS_DATA_FORK); + error = xfs_bmap_add_extent(tp, ip, &lastx, + &cur, &del, firstblock, flist, + &logflags, XFS_DATA_FORK); if (error) goto error0; goto nodelete; Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-06-30 09:15:11.000000000 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-06-30 09:16:57.120083690 +0200 @@ -1260,7 +1260,6 @@ xfs_itruncate_extents( ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); ASSERT(new_size <= ip->i_size); ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); - ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(ip->i_itemp->ili_lock_flags == 0); ASSERT(!XFS_NOT_DQATTACHED(mp, ip)); @@ -1436,7 +1435,6 @@ xfs_iunlink( ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_mode != 0); - ASSERT(ip->i_transp == tp); mp = tp->t_mountp; @@ -1828,7 +1826,6 @@ xfs_ifree( xfs_buf_t *ibp; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_transp == tp); ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_nextents == 0); ASSERT(ip->i_d.di_anextents == 0); Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-06-30 09:05:30.000000000 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-06-30 09:16:44.720083829 +0200 @@ -241,7 +241,6 @@ typedef struct xfs_inode { xfs_ifork_t i_df; /* data fork */ /* Transaction and locking information. */ - struct xfs_trans *i_transp; /* ptr to owning transaction*/ struct xfs_inode_log_item *i_itemp; /* logging information */ mrlock_t i_lock; /* inode lock */ mrlock_t i_iolock; /* inode IO lock */ Index: xfs/fs/xfs/xfs_inode_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode_item.c 2011-06-29 19:45:24.960295005 +0200 +++ xfs/fs/xfs/xfs_inode_item.c 2011-06-30 09:16:44.723417161 +0200 @@ -636,11 +636,6 @@ xfs_inode_item_unlock( ASSERT(xfs_isilocked(iip->ili_inode, XFS_ILOCK_EXCL)); /* - * Clear the transaction pointer in the inode. - */ - ip->i_transp = NULL; - - /* * If the inode needed a separate buffer with which to log * its extents, then free it now. */ Index: xfs/fs/xfs/xfs_trans_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_inode.c 2011-06-29 19:45:24.973628266 +0200 +++ xfs/fs/xfs/xfs_trans_inode.c 2011-06-30 09:16:44.723417161 +0200 @@ -55,7 +55,6 @@ xfs_trans_ijoin( { xfs_inode_log_item_t *iip; - ASSERT(ip->i_transp == NULL); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); if (ip->i_itemp == NULL) xfs_inode_item_init(ip, ip->i_mount); @@ -68,12 +67,6 @@ xfs_trans_ijoin( xfs_trans_add_item(tp, &iip->ili_item); xfs_trans_inode_broot_debug(ip); - - /* - * Initialize i_transp so we can find it with xfs_inode_incore() - * in xfs_trans_iget() above. - */ - ip->i_transp = tp; } /* @@ -111,7 +104,6 @@ xfs_trans_ichgtime( ASSERT(tp); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_transp == tp); tv = current_fs_time(inode->i_sb); @@ -140,7 +132,6 @@ xfs_trans_log_inode( xfs_inode_t *ip, uint flags) { - ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k7LI056086 for ; Fri, 1 Jul 2011 04:46:07 -0500 X-ASG-Debug-ID: 1309513566-63c503bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 77FD74669F for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id APNiWPNBHQb2Azzo for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIX-0001yI-Rs for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:05 +0000 Message-Id: <20110701094605.827598983@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 17/27] xfs: kill struct xfs_dir2_block Subject: [PATCH 17/27] xfs: kill struct xfs_dir2_block References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_block_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the confusing xfs_dir2_block structure. It is supposed to describe an XFS dir2 block format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_block.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.h 2011-06-30 09:38:36.596734195 +0200 +++ xfs/fs/xfs/xfs_dir2_block.h 2011-06-30 09:38:38.116734176 +0200 @@ -19,10 +19,30 @@ #define __XFS_DIR2_BLOCK_H__ /* - * xfs_dir2_block.h - * Directory version 2, single block format structures + * Directory version 2, single block format structures. + * + * The single block format looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * | ... | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * +-------------------------------------------------+ + * | xfs_dir2_block_tail_t | + * +-------------------------------------------------+ + * + * As all the entries are variable sized structures the accessors in this + * file and xfs_dir2_data.h need to be used to iterate over them. */ - struct uio; struct xfs_dabuf; struct xfs_da_args; @@ -32,14 +52,6 @@ struct xfs_inode; struct xfs_mount; struct xfs_trans; -/* - * The single block format is as follows: - * xfs_dir2_data_hdr_t structure - * xfs_dir2_data_entry_t and xfs_dir2_data_unused_t structures - * xfs_dir2_leaf_entry_t structures - * xfs_dir2_block_tail_t structure - */ - #define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ typedef struct xfs_dir2_block_tail { @@ -48,16 +60,6 @@ typedef struct xfs_dir2_block_tail { } xfs_dir2_block_tail_t; /* - * Generic single-block structure, for xfs_db. - */ -typedef struct xfs_dir2_block { - xfs_dir2_data_hdr_t hdr; /* magic XFS_DIR2_BLOCK_MAGIC */ - xfs_dir2_data_union_t u[1]; - xfs_dir2_leaf_entry_t leaf[1]; - xfs_dir2_block_tail_t tail; -} xfs_dir2_block_t; - -/* * Pointer to the leaf header embedded in a data block (1-block format) */ static inline xfs_dir2_block_tail_t * Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:38:36.586734196 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:38:38.120067509 +0200 @@ -437,7 +437,6 @@ xfs_dir2_block_getdents( xfs_off_t *offset, filldir_t filldir) { - xfs_dir2_block_t *block; /* directory block structure */ xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -471,14 +470,13 @@ xfs_dir2_block_getdents( * We'll skip entries before this. */ wantoff = xfs_dir2_dataptr_to_off(mp, *offset); - block = bp->data; - hdr = &block->hdr; + hdr = bp->data; xfs_dir2_data_check(dp, bp); /* * Set up values for the loop. */ btp = xfs_dir2_block_tail_p(mp, hdr); - ptr = (char *)block->u; + ptr = (char *)(hdr + 1); endptr = (char *)xfs_dir2_block_leaf_p(btp); /* @@ -1020,7 +1018,6 @@ xfs_dir2_sf_to_block( xfs_da_args_t *args) /* operation arguments */ { xfs_dir2_db_t blkno; /* dir-relative block # (0) */ - xfs_dir2_block_t *block; /* block structure */ xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ @@ -1091,8 +1088,7 @@ xfs_dir2_sf_to_block( kmem_free(sfp); return error; } - block = bp->data; - hdr = &block->hdr; + hdr = bp->data; hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); /* * Compute size of block "tail" area. @@ -1103,7 +1099,7 @@ xfs_dir2_sf_to_block( * The whole thing is initialized to free by the init routine. * Say we're using the leaf and tail area. */ - dup = (xfs_dir2_data_unused_t *)block->u; + dup = (xfs_dir2_data_unused_t *)(hdr + 1); needlog = needscan = 0; xfs_dir2_data_use_free(tp, bp, dup, mp->m_dirblksize - i, i, &needlog, &needscan); Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:38:36.590067529 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:38:38.123400842 +0200 @@ -226,7 +226,7 @@ xfs_dir2_block_to_sf( int size, /* shortform directory size */ xfs_dir2_sf_hdr_t *sfhp) /* shortform directory hdr */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ xfs_dir2_data_entry_t *dep; /* data entry pointer */ xfs_inode_t *dp; /* incore directory inode */ @@ -248,8 +248,8 @@ xfs_dir2_block_to_sf( * Make a copy of the block data, so we can shrink the inode * and add local data. */ - block = kmem_alloc(mp->m_dirblksize, KM_SLEEP); - memcpy(block, bp->data, mp->m_dirblksize); + hdr = kmem_alloc(mp->m_dirblksize, KM_SLEEP); + memcpy(hdr, bp->data, mp->m_dirblksize); logflags = XFS_ILOG_CORE; if ((error = xfs_dir2_shrink_inode(args, mp->m_dirdatablk, bp))) { ASSERT(error != ENOSPC); @@ -277,8 +277,8 @@ xfs_dir2_block_to_sf( /* * Set up to loop over the block's entries. */ - btp = xfs_dir2_block_tail_p(mp, &block->hdr); - ptr = (char *)block->u; + btp = xfs_dir2_block_tail_p(mp, hdr); + ptr = (char *)(hdr + 1); endptr = (char *)xfs_dir2_block_leaf_p(btp); sfep = xfs_dir2_sf_firstentry(sfp); /* @@ -314,7 +314,7 @@ xfs_dir2_block_to_sf( sfep->namelen = dep->namelen; xfs_dir2_sf_put_offset(sfep, (xfs_dir2_data_aoff_t) - ((char *)dep - (char *)block)); + ((char *)dep - (char *)hdr)); memcpy(sfep->name, dep->name, dep->namelen); xfs_dir2_sfe_put_ino(sfp, sfep, be64_to_cpu(dep->inumber)); @@ -327,7 +327,7 @@ xfs_dir2_block_to_sf( xfs_dir2_sf_check(args); out: xfs_trans_log_inode(args->trans, dp, logflags); - kmem_free(block); + kmem_free(hdr); return error; } From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k5C3056039 for ; Fri, 1 Jul 2011 04:46:06 -0500 X-ASG-Debug-ID: 1309513564-798a02010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0ADBD16748BB for ; Fri, 1 Jul 2011 02:46:04 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id uqnslvBCHybFN30d for ; Fri, 01 Jul 2011 02:46:04 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIV-0001tb-Qv for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:04 +0000 Message-Id: <20110701094603.789209280@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:29 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying Subject: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-sync X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The following script from Wu Fengguang shows very bad behaviour in XFS when aggressively dirtying data during a sync on XFS, with sync times up to almost 10 times as long as ext4. A large part of the issue is that XFS writes data out itself two times in the ->sync_fs method, overriding the lifelock protection in the core writeback code, and another issue is the lock-less xfs_ioend_wait call, which doesn't prevent new ioend from beeing queue up while waiting for the count to reach zero. This patch removes the XFS-internal sync calls and relies on the VFS to do it's work just like all other filesystems do. Note that the i_iocount wait which is rather suboptimal is simply removed here. We already do it in ->write_inode, which keeps the current supoptimal behaviour. We'll eventually need to remove that as well, but that's material for a separate commit. ------------------------------ snip ------------------------------ #!/bin/sh umount /dev/sda7 mkfs.xfs -f /dev/sda7 # mkfs.ext4 /dev/sda7 # mkfs.btrfs /dev/sda7 mount /dev/sda7 /fs echo $((50<<20)) > /proc/sys/vm/dirty_bytes pid= for i in `seq 10` do dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 & pid="$pid $!" done sleep 1 tic=$(date +'%s') sync tac=$(date +'%s') echo echo sync time: $((tac-tic)) egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; } ------------------------------ snip ------------------------------ Signed-off-by: Christoph Hellwig Reported-by: Wu Fengguang Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_sync.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:26:14.109219361 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:37:20.642275110 +0200 @@ -359,14 +359,12 @@ xfs_quiesce_data( { int error, error2 = 0; - /* push non-blocking */ - xfs_sync_data(mp, 0); xfs_qm_sync(mp, SYNC_TRYLOCK); - - /* push and block till complete */ - xfs_sync_data(mp, SYNC_WAIT); xfs_qm_sync(mp, SYNC_WAIT); + /* force out the newly dirtied log buffers */ + xfs_log_force(mp, XFS_LOG_SYNC); + /* write superblock and hoover up shutdown errors */ error = xfs_sync_fsdata(mp); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k7q5056076 for ; Fri, 1 Jul 2011 04:46:07 -0500 X-ASG-Debug-ID: 1309513565-14fa00e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE92C16748BB for ; Fri, 1 Jul 2011 02:46:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id OE10Qoiygve6uQXW for ; Fri, 01 Jul 2011 02:46:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIX-0001wD-0T for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:05 +0000 Message-Id: <20110701094604.976400061@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:34 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 13/27] xfs: cleanup shortform directory inode number handling Subject: [PATCH 13/27] xfs: cleanup shortform directory inode number handling References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dir2_sf-cleanup-inum-handling X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513565 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Refactor the shortform directory helpers that deal with the 32-bit vs 64-bit wide inode numbers into more sensible helpers, and kill the xfs_intino_t typedef that is now superflous. Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:31:15.330073010 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:34:46.640070544 +0200 @@ -59,6 +59,79 @@ static void xfs_dir2_sf_toino4(xfs_da_ar static void xfs_dir2_sf_toino8(xfs_da_args_t *args); #endif /* XFS_BIG_INUMS */ + +/* + * Inode numbers in short-form directories can come in two versions, + * either 4 bytes or 8 bytes wide. These helpers deal with the + * two forms transparently by looking at the headers i8count field. + */ +static xfs_ino_t +xfs_dir2_sf_get_ino( + struct xfs_dir2_sf *sfp, + xfs_dir2_inou_t *from) +{ + if (sfp->hdr.i8count) + return XFS_GET_DIR_INO8(from->i8); + else + return XFS_GET_DIR_INO4(from->i4); +} + +static void +xfs_dir2_sf_put_ino( + struct xfs_dir2_sf *sfp, + xfs_dir2_inou_t *to, + xfs_ino_t ino) +{ + if (sfp->hdr.i8count) + XFS_PUT_DIR_INO8(ino, to->i8); + else + XFS_PUT_DIR_INO4(ino, to->i4); +} + +xfs_ino_t +xfs_dir2_sf_get_parent_ino( + struct xfs_dir2_sf *sfp) +{ + return xfs_dir2_sf_get_ino(sfp, &sfp->hdr.parent); +} + +static void +xfs_dir2_sf_put_parent_ino( + struct xfs_dir2_sf *sfp, + xfs_ino_t ino) +{ + xfs_dir2_sf_put_ino(sfp, &sfp->hdr.parent, ino); +} + +/* + * In short-form directory entries the inode numbers are stored at variable + * offset behind the entry name. The inode numbers may only be accessed + * through the helpers below. + */ +static xfs_dir2_inou_t * +xfs_dir2_sfe_inop( + struct xfs_dir2_sf_entry *sfep) +{ + return (xfs_dir2_inou_t *)&sfep->name[sfep->namelen]; +} + +xfs_ino_t +xfs_dir2_sfe_get_ino( + struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep) +{ + return xfs_dir2_sf_get_ino(sfp, xfs_dir2_sfe_inop(sfep)); +} + +static void +xfs_dir2_sfe_put_ino( + struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep, + xfs_ino_t ino) +{ + xfs_dir2_sf_put_ino(sfp, xfs_dir2_sfe_inop(sfep), ino); +} + /* * Given a block directory (dp/block), calculate its size as a shortform (sf) * directory and a header for the sf directory, if it will fit it the @@ -138,7 +211,7 @@ xfs_dir2_block_sfsize( */ sfhp->count = count; sfhp->i8count = i8count; - xfs_dir2_sf_put_inumber((xfs_dir2_sf_t *)sfhp, &parent, &sfhp->parent); + xfs_dir2_sf_put_parent_ino((xfs_dir2_sf_t *)sfhp, parent); return size; } @@ -165,7 +238,6 @@ xfs_dir2_block_to_sf( char *ptr; /* current data pointer */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ xfs_dir2_sf_t *sfp; /* shortform structure */ - xfs_ino_t temp; trace_xfs_dir2_block_to_sf(args); @@ -233,7 +305,7 @@ xfs_dir2_block_to_sf( else if (dep->namelen == 2 && dep->name[0] == '.' && dep->name[1] == '.') ASSERT(be64_to_cpu(dep->inumber) == - xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent)); + xfs_dir2_sf_get_parent_ino(sfp)); /* * Normal entry, copy it into shortform. */ @@ -243,9 +315,9 @@ xfs_dir2_block_to_sf( (xfs_dir2_data_aoff_t) ((char *)dep - (char *)block)); memcpy(sfep->name, dep->name, dep->namelen); - temp = be64_to_cpu(dep->inumber); - xfs_dir2_sf_put_inumber(sfp, &temp, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + be64_to_cpu(dep->inumber)); + sfep = xfs_dir2_sf_nextentry(sfp, sfep); } ptr += xfs_dir2_data_entsize(dep->namelen); @@ -406,8 +478,7 @@ xfs_dir2_sf_addname_easy( sfep->namelen = args->namelen; xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); /* * Update the header and inode. */ @@ -498,8 +569,7 @@ xfs_dir2_sf_addname_hard( sfep->namelen = args->namelen; xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); sfp->hdr.count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) @@ -618,14 +688,14 @@ xfs_dir2_sf_check( sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; offset = XFS_DIR2_DATA_FIRST_OFFSET; - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); i8count = ino > XFS_DIR2_MAX_SHORT_INUM; for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { ASSERT(xfs_dir2_sf_get_offset(sfep) >= offset); - ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); i8count += ino > XFS_DIR2_MAX_SHORT_INUM; offset = xfs_dir2_sf_get_offset(sfep) + @@ -686,7 +756,7 @@ xfs_dir2_sf_create( /* * Now can put in the inode number, since i8count is set. */ - xfs_dir2_sf_put_inumber(sfp, &pino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, pino); sfp->hdr.count = 0; dp->i_d.di_size = size; xfs_dir2_sf_check(args); @@ -759,7 +829,7 @@ xfs_dir2_sf_getdents( * Put .. entry unless we're starting past it. */ if (*offset <= dotdot_offset) { - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); if (filldir(dirent, "..", 2, dotdot_offset & 0x7fffffff, ino, DT_DIR)) { *offset = dotdot_offset & 0x7fffffff; return 0; @@ -779,7 +849,7 @@ xfs_dir2_sf_getdents( continue; } - ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); if (filldir(dirent, (char *)sfep->name, sfep->namelen, off & 0x7fffffff, ino, DT_UNKNOWN)) { *offset = off & 0x7fffffff; @@ -839,7 +909,7 @@ xfs_dir2_sf_lookup( */ if (args->namelen == 2 && args->name[0] == '.' && args->name[1] == '.') { - args->inumber = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + args->inumber = xfs_dir2_sf_get_parent_ino(sfp); args->cmpresult = XFS_CMP_EXACT; return XFS_ERROR(EEXIST); } @@ -858,8 +928,7 @@ xfs_dir2_sf_lookup( sfep->namelen); if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) { args->cmpresult = cmp; - args->inumber = xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)); + args->inumber = xfs_dir2_sfe_get_ino(sfp, sfep); if (cmp == XFS_CMP_EXACT) return XFS_ERROR(EEXIST); ci_sfep = sfep; @@ -918,9 +987,8 @@ xfs_dir2_sf_removename( i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { - ASSERT(xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)) == - args->inumber); + ASSERT(xfs_dir2_sfe_get_ino(sfp, sfep) == + args->inumber); break; } } @@ -1040,10 +1108,10 @@ xfs_dir2_sf_replace( if (args->namelen == 2 && args->name[0] == '.' && args->name[1] == '.') { #if XFS_BIG_INUMS || defined(DEBUG) - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); ASSERT(args->inumber != ino); #endif - xfs_dir2_sf_put_inumber(sfp, &args->inumber, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, args->inumber); } /* * Normal entry, look for the name. @@ -1055,12 +1123,10 @@ xfs_dir2_sf_replace( if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { #if XFS_BIG_INUMS || defined(DEBUG) - ino = xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); ASSERT(args->inumber != ino); #endif - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); break; } } @@ -1121,7 +1187,6 @@ xfs_dir2_sf_toino4( char *buf; /* old dir's buffer */ xfs_inode_t *dp; /* incore directory inode */ int i; /* entry index */ - xfs_ino_t ino; /* entry inode number */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ xfs_dir2_sf_t *oldsfp; /* old sf directory */ @@ -1162,8 +1227,7 @@ xfs_dir2_sf_toino4( */ sfp->hdr.count = oldsfp->hdr.count; sfp->hdr.i8count = 0; - ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); - xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ @@ -1175,9 +1239,8 @@ xfs_dir2_sf_toino4( sfep->namelen = oldsfep->namelen; sfep->offset = oldsfep->offset; memcpy(sfep->name, oldsfep->name, sfep->namelen); - ino = xfs_dir2_sf_get_inumber(oldsfp, - xfs_dir2_sf_inumberp(oldsfep)); - xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + xfs_dir2_sfe_get_ino(oldsfp, oldsfep)); } /* * Clean up the inode. @@ -1199,7 +1262,6 @@ xfs_dir2_sf_toino8( char *buf; /* old dir's buffer */ xfs_inode_t *dp; /* incore directory inode */ int i; /* entry index */ - xfs_ino_t ino; /* entry inode number */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ xfs_dir2_sf_t *oldsfp; /* old sf directory */ @@ -1240,8 +1302,7 @@ xfs_dir2_sf_toino8( */ sfp->hdr.count = oldsfp->hdr.count; sfp->hdr.i8count = 1; - ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); - xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ @@ -1253,9 +1314,8 @@ xfs_dir2_sf_toino8( sfep->namelen = oldsfep->namelen; sfep->offset = oldsfep->offset; memcpy(sfep->name, oldsfep->name, sfep->namelen); - ino = xfs_dir2_sf_get_inumber(oldsfp, - xfs_dir2_sf_inumberp(oldsfep)); - xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + xfs_dir2_sfe_get_ino(oldsfp, oldsfep)); } /* * Clean up the inode. Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:31:15.343406344 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:32:00.390072451 +0200 @@ -90,28 +90,6 @@ static inline int xfs_dir2_sf_hdr_size(i ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } -static inline xfs_dir2_inou_t *xfs_dir2_sf_inumberp(xfs_dir2_sf_entry_t *sfep) -{ - return (xfs_dir2_inou_t *)&(sfep)->name[(sfep)->namelen]; -} - -static inline xfs_intino_t -xfs_dir2_sf_get_inumber(xfs_dir2_sf_t *sfp, xfs_dir2_inou_t *from) -{ - return ((sfp)->hdr.i8count == 0 ? \ - (xfs_intino_t)XFS_GET_DIR_INO4((from)->i4) : \ - (xfs_intino_t)XFS_GET_DIR_INO8((from)->i8)); -} - -static inline void xfs_dir2_sf_put_inumber(xfs_dir2_sf_t *sfp, xfs_ino_t *from, - xfs_dir2_inou_t *to) -{ - if ((sfp)->hdr.i8count == 0) - XFS_PUT_DIR_INO4(*(from), (to)->i4); - else - XFS_PUT_DIR_INO8(*(from), (to)->i8); -} - static inline xfs_dir2_data_aoff_t xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) { @@ -155,6 +133,9 @@ xfs_dir2_sf_nextentry(xfs_dir2_sf_t *sfp /* * Functions. */ +extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf *sfp); +extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, struct xfs_dir2_block *block, xfs_dir2_sf_hdr_t *sfhp); Index: xfs/fs/xfs/xfs_inum.h =================================================================== --- xfs.orig/fs/xfs/xfs_inum.h 2011-06-30 09:31:15.353406344 +0200 +++ xfs/fs/xfs/xfs_inum.h 2011-06-30 09:32:00.390072451 +0200 @@ -28,17 +28,6 @@ typedef __uint32_t xfs_agino_t; /* within allocation grp inode number */ -/* - * Useful inode bits for this kernel. - * Used in some places where having 64-bits in the 32-bit kernels - * costs too much. - */ -#if XFS_BIG_INUMS -typedef xfs_ino_t xfs_intino_t; -#else -typedef __uint32_t xfs_intino_t; -#endif - #define NULLFSINO ((xfs_ino_t)-1) #define NULLAGINO ((xfs_agino_t)-1) Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:31:15.000000000 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:32:00.393405784 +0200 @@ -1146,7 +1146,7 @@ xfs_dir2_sf_to_block( */ dep = (xfs_dir2_data_entry_t *) ((char *)block + XFS_DIR2_DATA_DOTDOT_OFFSET); - dep->inumber = cpu_to_be64(xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent)); + dep->inumber = cpu_to_be64(xfs_dir2_sf_get_parent_ino(sfp)); dep->namelen = 2; dep->name[0] = dep->name[1] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); @@ -1195,8 +1195,7 @@ xfs_dir2_sf_to_block( * Copy a real entry. */ dep = (xfs_dir2_data_entry_t *)((char *)block + newoffset); - dep->inumber = cpu_to_be64(xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep))); + dep->inumber = cpu_to_be64(xfs_dir2_sfe_get_ino(sfp, sfep)); dep->namelen = sfep->namelen; memcpy(dep->name, sfep->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k7C6056102 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513566-14c800f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 24C3616748BB for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id TPL1GILr005EzEeD for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-0001zK-7n for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:06 +0000 Message-Id: <20110701094606.199361663@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:40 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 19/27] xfs: kill struct xfs_dir2_data Subject: [PATCH 19/27] xfs: kill struct xfs_dir2_data References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_data_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the confusing xfs_dir2_data structure. It is supposed to describe an XFS dir2 data btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:40.133400821 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:41.643400800 +0200 @@ -53,7 +53,6 @@ xfs_dir2_data_check( xfs_dir2_data_free_t *bf; /* bestfree table */ xfs_dir2_block_tail_t *btp=NULL; /* block tail */ int count; /* count of entries found */ - xfs_dir2_data_t *d; /* data block pointer */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_free_t *dfp; /* bestfree entry */ @@ -70,10 +69,9 @@ xfs_dir2_data_check( struct xfs_name name; mp = dp->i_mount; - d = bp->data; - hdr = &d->hdr; + hdr = bp->data; bf = hdr->bestfree; - p = (char *)d->u; + p = (char *)(hdr + 1); if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { btp = xfs_dir2_block_tail_p(mp, hdr); @@ -336,7 +334,6 @@ xfs_dir2_data_freescan( xfs_dir2_data_hdr_t *hdr, /* data block header */ int *loghead) /* out: log data header */ { - xfs_dir2_data_t *d = (xfs_dir2_data_t *)hdr; xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* active data entry */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -355,7 +352,7 @@ xfs_dir2_data_freescan( /* * Set up pointers. */ - p = (char *)d->u; + p = (char *)(hdr + 1); if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { btp = xfs_dir2_block_tail_p(mp, hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); @@ -398,7 +395,6 @@ xfs_dir2_data_init( xfs_dabuf_t **bpp) /* output block buffer */ { xfs_dabuf_t *bp; /* block buffer */ - xfs_dir2_data_t *d; /* pointer to block */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused entry pointer */ @@ -424,8 +420,7 @@ xfs_dir2_data_init( /* * Initialize the header. */ - d = bp->data; - hdr = &d->hdr; + hdr = bp->data; hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); hdr->bestfree[0].offset = cpu_to_be16(sizeof(*hdr)); for (i = 1; i < XFS_DIR2_DATA_FD_COUNT; i++) { @@ -436,7 +431,7 @@ xfs_dir2_data_init( /* * Set up an unused entry for the block's body. */ - dup = &d->u[0].unused; + dup = (xfs_dir2_data_unused_t *)(hdr + 1); dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); t = mp->m_dirblksize - (uint)sizeof(*hdr); Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-06-30 09:38:40.136734154 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-06-30 09:38:41.646734133 +0200 @@ -20,6 +20,22 @@ /* * Directory format 2, data block structures. + * + * A pure data block looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * + * As all the entries are variable sized structures the accessors in this + * file need to be used to iterate over them. */ struct xfs_dabuf; @@ -103,23 +119,6 @@ typedef struct xfs_dir2_data_unused { __be16 tag; /* starting offset of us */ } xfs_dir2_data_unused_t; -typedef union { - xfs_dir2_data_entry_t entry; - xfs_dir2_data_unused_t unused; -} xfs_dir2_data_union_t; - -/* - * Generic data block structure, for xfs_db. - */ -typedef struct xfs_dir2_data { - xfs_dir2_data_hdr_t hdr; /* magic XFS_DIR2_DATA_MAGIC */ - xfs_dir2_data_union_t u[1]; -} xfs_dir2_data_t; - -/* - * Macros. - */ - /* * Size of a data entry. */ Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:40.140067486 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:41.646734133 +0200 @@ -785,7 +785,6 @@ xfs_dir2_leaf_getdents( int byteoff; /* offset in current block */ xfs_dir2_db_t curdb; /* db for current block */ xfs_dir2_off_t curoff; /* current overall offset */ - xfs_dir2_data_t *data; /* data block structure */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ @@ -1044,13 +1043,12 @@ xfs_dir2_leaf_getdents( else if (curoff > newoff) ASSERT(xfs_dir2_byte_to_db(mp, curoff) == curdb); - data = bp->data; - hdr = &data->hdr; + hdr = bp->data; xfs_dir2_data_check(dp, bp); /* * Find our position in the block. */ - ptr = (char *)&data->u; + ptr = (char *)(hdr + 1); byteoff = xfs_dir2_byte_to_off(mp, curoff); /* * Skip past the header. From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k85F056113 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513566-63af03b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2E476466AD for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id VtmdswGvcGhv0E86 for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-00020M-Jr for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:06 +0000 Message-Id: <20110701094606.567693269@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:42 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 21/27] xfs: cleanup struct xfs_dir2_leaf Subject: [PATCH 21/27] xfs: cleanup struct xfs_dir2_leaf References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_leaf_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe an XFS dir2 leaf format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. Remove the members that are after the first variable sized array, given that they could only be used for sizeof expressions that can as well just use the underlying types directly, and make the ents array a real C99 variable sized array. Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf entry which already was convoluted somewhat readable after using the longer type names in the sizeof expressions. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:41.646734133 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:44.723400763 +0200 @@ -367,9 +367,12 @@ xfs_dir2_leaf_addname( /* * How many bytes do we need in the leaf block? */ - needbytes = - (leaf->hdr.stale ? 0 : (uint)sizeof(leaf->ents[0])) + - (use_block != -1 ? 0 : (uint)sizeof(leaf->bests[0])); + needbytes = 0; + if (!leaf->hdr.stale) + needbytes += sizeof(xfs_dir2_leaf_entry_t); + if (use_block == -1) + needbytes += sizeof(xfs_dir2_data_off_t); + /* * Now kill use_block if it refers to a missing block, so we * can use it as an indication of allocation needed. @@ -1763,6 +1766,20 @@ xfs_dir2_leaf_trim_data( return 0; } +static inline size_t +xfs_dir2_leaf_size( + struct xfs_dir2_leaf_hdr *hdr, + int counts) +{ + int entries; + + entries = be16_to_cpu(hdr->count) - be16_to_cpu(hdr->stale); + return sizeof(xfs_dir2_leaf_hdr_t) + + entries * sizeof(xfs_dir2_leaf_entry_t) + + counts * sizeof(xfs_dir2_data_off_t) + + sizeof(xfs_dir2_leaf_tail_t); +} + /* * Convert node form directory to leaf form directory. * The root of the node form dir needs to already be a LEAFN block. @@ -1844,18 +1861,17 @@ xfs_dir2_node_to_leaf( free = fbp->data; ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); ASSERT(!free->hdr.firstdb); + /* * Now see if the leafn and free data will fit in a leaf1. * If not, release the buffer and give up. */ - if ((uint)sizeof(leaf->hdr) + - (be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)) * (uint)sizeof(leaf->ents[0]) + - be32_to_cpu(free->hdr.nvalid) * (uint)sizeof(leaf->bests[0]) + - (uint)sizeof(leaf->tail) > - mp->m_dirblksize) { + if (xfs_dir2_leaf_size(&leaf->hdr, be32_to_cpu(free->hdr.nvalid)) > + mp->m_dirblksize) { xfs_da_brelse(tp, fbp); return 0; } + /* * If the leaf has any stale entries in it, compress them out. * The compact routine will log the header. @@ -1874,7 +1890,7 @@ xfs_dir2_node_to_leaf( * Set up the leaf bests table. */ memcpy(xfs_dir2_leaf_bests_p(ltp), free->bests, - be32_to_cpu(ltp->bestcount) * sizeof(leaf->bests[0])); + be32_to_cpu(ltp->bestcount) * sizeof(xfs_dir2_data_off_t)); xfs_dir2_leaf_log_bests(tp, lbp, 0, be32_to_cpu(ltp->bestcount) - 1); xfs_dir2_leaf_log_tail(tp, lbp); xfs_dir2_leaf_check(dp, lbp); Index: xfs/fs/xfs/xfs_dir2_leaf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:18:07.263416117 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:38:44.723400763 +0200 @@ -72,10 +72,7 @@ typedef struct xfs_dir2_leaf_tail { */ typedef struct xfs_dir2_leaf { xfs_dir2_leaf_hdr_t hdr; /* leaf header */ - xfs_dir2_leaf_entry_t ents[1]; /* entries */ - /* ... */ - xfs_dir2_data_off_t bests[1]; /* best free counts */ - xfs_dir2_leaf_tail_t tail; /* leaf tail */ + xfs_dir2_leaf_entry_t ents[]; /* entries */ } xfs_dir2_leaf_t; /* From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k7Kn056095 for ; Fri, 1 Jul 2011 04:46:07 -0500 X-ASG-Debug-ID: 1309513566-648d01380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 038AD1EE3239 for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id McSQU1jaGyuCo3WT for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-0001zq-Db for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:06 +0000 Message-Id: <20110701094606.386730624@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:41 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry Subject: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_data_entry X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0047 1.0000 -1.9903 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.39 X-Barracuda-Spam-Status: No, SCORE=-1.39 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the tag member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-06-29 13:42:35.521563513 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-06-29 13:43:03.284746440 +0200 @@ -98,14 +98,14 @@ typedef struct xfs_dir2_data_hdr { /* * Active entry in a data block. Aligned to 8 bytes. - * Tag appears as the last 2 bytes. + * + * After the variable length name field there is a 2 byte tag field, which + * can be accessed using xfs_dir2_data_entry_tag_p. */ typedef struct xfs_dir2_data_entry { __be64 inumber; /* inode number */ __u8 namelen; /* name length */ - __u8 name[1]; /* name bytes, no null */ - /* variable offset */ - __be16 tag; /* starting offset of us */ + __u8 name[]; /* name bytes, no null */ } xfs_dir2_data_entry_t; /* From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k8VR056145 for ; Fri, 1 Jul 2011 04:46:09 -0500 X-ASG-Debug-ID: 1309513567-798c02190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31D8716748CB for ; Fri, 1 Jul 2011 02:46:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id u6qdGFbdCSXLWPR6 for ; Fri, 01 Jul 2011 02:46:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIZ-00022S-Cg for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:07 +0000 Message-Id: <20110701094607.356791525@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:46 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 25/27] xfs: return the buffer locked from xfs_buf_get_uncached Subject: [PATCH 25/27] xfs: return the buffer locked from xfs_buf_get_uncached References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-buf_get_uncached-locked-buffer X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513568 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean All other xfs_buf_get/read-like helpers return the buffer locked, make sure xfs_buf_get_uncached isn't different for no reason. Half of the callers already lock it directly after, and the others probably should also keep it locked if only for consistency and beeing able to use xfs_buf_rele, but I'll leave that for later. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:15.596795734 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:32.243372220 +0200 @@ -679,7 +679,6 @@ xfs_buf_read_uncached( return NULL; /* set up the buffer for a read IO */ - xfs_buf_lock(bp); XFS_BUF_SET_ADDR(bp, daddr); XFS_BUF_READ(bp); XFS_BUF_BUSY(bp); @@ -814,8 +813,6 @@ xfs_buf_get_uncached( goto fail_free_mem; } - xfs_buf_unlock(bp); - trace_xfs_buf_get_uncached(bp, _RET_IP_); return bp; Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-06-29 13:53:33.954663139 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-06-29 13:57:32.243372220 +0200 @@ -1090,8 +1090,7 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog_size, 0); if (!bp) goto out_free_iclog; - if (!xfs_buf_trylock(bp)) - ASSERT(0); + XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); iclog->ic_bp = bp; Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-06-29 13:51:20.425386530 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-06-29 13:57:32.246705535 +0200 @@ -91,6 +91,8 @@ xlog_get_bp( xlog_t *log, int nbblks) { + struct xfs_buf *bp; + if (!xlog_buf_bbcount_valid(log, nbblks)) { xfs_warn(log->l_mp, "Invalid block length (0x%x) for buffer", nbblks); @@ -118,8 +120,10 @@ xlog_get_bp( nbblks += log->l_sectBBsize; nbblks = round_up(nbblks, log->l_sectBBsize); - return xfs_buf_get_uncached(log->l_mp->m_logdev_targp, - BBTOB(nbblks), 0); + bp = xfs_buf_get_uncached(log->l_mp->m_logdev_targp, BBTOB(nbblks), 0); + if (bp) + xfs_buf_unlock(bp); + return bp; } STATIC void Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:35:45.789455635 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 13:57:32.250038850 +0200 @@ -1969,6 +1969,8 @@ xfs_zero_remaining_bytes( if (!bp) return XFS_ERROR(ENOMEM); + xfs_buf_unlock(bp); + for (offset = startoff; offset <= endoff; offset = lastoffset + 1) { offset_fsb = XFS_B_TO_FSBT(mp, offset); nimap = 1; From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k8LK056132 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513567-6d2200a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7EB9D1EE323B for ; Fri, 1 Jul 2011 02:46:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id HZlNzx5tNwDPjDqJ for ; Fri, 01 Jul 2011 02:46:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-00020s-Pt for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:06 +0000 Message-Id: <20110701094606.763430916@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:43 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Subject: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dir2-use-generic-unaligned-byteswap-macros X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.82 X-Barracuda-Spam-Status: No, SCORE=-0.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Switch the shortform directory code over to use the generic get_unaligned_beXX helpers instead of reinventing them. As a result kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into xfs_linux.h. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2011-06-30 20:22:44.849587371 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_linux.h 2011-06-30 20:40:52.116240531 +0200 @@ -33,7 +33,6 @@ #endif #include -#include #include #include @@ -88,6 +87,12 @@ #include #include +#ifdef __BIG_ENDIAN +#define XFS_NATIVE_HOST 1 +#else +#undef XFS_NATIVE_HOST +#endif + /* * Feature macros (disable/enable) */ Index: xfs/fs/xfs/xfs_arch.h =================================================================== --- xfs.orig/fs/xfs/xfs_arch.h 2011-06-30 20:21:42.116254819 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_ARCH_H__ -#define __XFS_ARCH_H__ - -#ifndef XFS_BIG_INUMS -# error XFS_BIG_INUMS must be defined true or false -#endif - -#ifdef __KERNEL__ - -#include - -#ifdef __BIG_ENDIAN -#define XFS_NATIVE_HOST 1 -#else -#undef XFS_NATIVE_HOST -#endif - -#else /* __KERNEL__ */ - -#if __BYTE_ORDER == __BIG_ENDIAN -#define XFS_NATIVE_HOST 1 -#else -#undef XFS_NATIVE_HOST -#endif - -#ifdef XFS_NATIVE_HOST -#define cpu_to_be16(val) ((__force __be16)(__u16)(val)) -#define cpu_to_be32(val) ((__force __be32)(__u32)(val)) -#define cpu_to_be64(val) ((__force __be64)(__u64)(val)) -#define be16_to_cpu(val) ((__force __u16)(__be16)(val)) -#define be32_to_cpu(val) ((__force __u32)(__be32)(val)) -#define be64_to_cpu(val) ((__force __u64)(__be64)(val)) -#else -#define cpu_to_be16(val) ((__force __be16)__swab16((__u16)(val))) -#define cpu_to_be32(val) ((__force __be32)__swab32((__u32)(val))) -#define cpu_to_be64(val) ((__force __be64)__swab64((__u64)(val))) -#define be16_to_cpu(val) (__swab16((__force __u16)(__be16)(val))) -#define be32_to_cpu(val) (__swab32((__force __u32)(__be32)(val))) -#define be64_to_cpu(val) (__swab64((__force __u64)(__be64)(val))) -#endif - -static inline void be16_add_cpu(__be16 *a, __s16 b) -{ - *a = cpu_to_be16(be16_to_cpu(*a) + b); -} - -static inline void be32_add_cpu(__be32 *a, __s32 b) -{ - *a = cpu_to_be32(be32_to_cpu(*a) + b); -} - -static inline void be64_add_cpu(__be64 *a, __s64 b) -{ - *a = cpu_to_be64(be64_to_cpu(*a) + b); -} - -#endif /* __KERNEL__ */ - -/* - * get and set integers from potentially unaligned locations - */ - -#define INT_GET_UNALIGNED_16_BE(pointer) \ - ((__u16)((((__u8*)(pointer))[0] << 8) | (((__u8*)(pointer))[1]))) -#define INT_SET_UNALIGNED_16_BE(pointer,value) \ - { \ - ((__u8*)(pointer))[0] = (((value) >> 8) & 0xff); \ - ((__u8*)(pointer))[1] = (((value) ) & 0xff); \ - } - -/* - * In directories inode numbers are stored as unaligned arrays of unsigned - * 8bit integers on disk. - * - * For v1 directories or v2 directories that contain inode numbers that - * do not fit into 32bit the array has eight members, but the first member - * is always zero: - * - * |unused|48-55|40-47|32-39|24-31|16-23| 8-15| 0- 7| - * - * For v2 directories that only contain entries with inode numbers that fit - * into 32bits a four-member array is used: - * - * |24-31|16-23| 8-15| 0- 7| - */ - -#define XFS_GET_DIR_INO4(di) \ - (((__u32)(di).i[0] << 24) | ((di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) - -#define XFS_PUT_DIR_INO4(from, di) \ -do { \ - (di).i[0] = (((from) & 0xff000000ULL) >> 24); \ - (di).i[1] = (((from) & 0x00ff0000ULL) >> 16); \ - (di).i[2] = (((from) & 0x0000ff00ULL) >> 8); \ - (di).i[3] = ((from) & 0x000000ffULL); \ -} while (0) - -#define XFS_DI_HI(di) \ - (((__u32)(di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) -#define XFS_DI_LO(di) \ - (((__u32)(di).i[4] << 24) | ((di).i[5] << 16) | ((di).i[6] << 8) | ((di).i[7])) - -#define XFS_GET_DIR_INO8(di) \ - (((xfs_ino_t)XFS_DI_LO(di) & 0xffffffffULL) | \ - ((xfs_ino_t)XFS_DI_HI(di) << 32)) - -#define XFS_PUT_DIR_INO8(from, di) \ -do { \ - (di).i[0] = 0; \ - (di).i[1] = (((from) & 0x00ff000000000000ULL) >> 48); \ - (di).i[2] = (((from) & 0x0000ff0000000000ULL) >> 40); \ - (di).i[3] = (((from) & 0x000000ff00000000ULL) >> 32); \ - (di).i[4] = (((from) & 0x00000000ff000000ULL) >> 24); \ - (di).i[5] = (((from) & 0x0000000000ff0000ULL) >> 16); \ - (di).i[6] = (((from) & 0x000000000000ff00ULL) >> 8); \ - (di).i[7] = ((from) & 0x00000000000000ffULL); \ -} while (0) - -#endif /* __XFS_ARCH_H__ */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 20:24:26.516252776 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 20:46:45.366236141 +0200 @@ -59,11 +59,12 @@ static void xfs_dir2_sf_toino4(xfs_da_ar static void xfs_dir2_sf_toino8(xfs_da_args_t *args); #endif /* XFS_BIG_INUMS */ - /* * Inode numbers in short-form directories can come in two versions, * either 4 bytes or 8 bytes wide. These helpers deal with the * two forms transparently by looking at the headers i8count field. + * + * For 64-bit inode number the most significant byte must be zero. */ static xfs_ino_t xfs_dir2_sf_get_ino( @@ -71,9 +72,9 @@ xfs_dir2_sf_get_ino( xfs_dir2_inou_t *from) { if (hdr->i8count) - return XFS_GET_DIR_INO8(from->i8); + return get_unaligned_be64(&from->i8.i) & 0x00ffffffffffffffULL; else - return XFS_GET_DIR_INO4(from->i4); + return get_unaligned_be32(&from->i4.i); } static void @@ -82,10 +83,12 @@ xfs_dir2_sf_put_ino( xfs_dir2_inou_t *to, xfs_ino_t ino) { + ASSERT((ino & 0xff00000000000000ULL) == 0); + if (hdr->i8count) - XFS_PUT_DIR_INO8(ino, to->i8); + put_unaligned_be64(ino, &to->i8.i); else - XFS_PUT_DIR_INO4(ino, to->i4); + put_unaligned_be32(ino, &to->i4.i); } xfs_ino_t Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:24:08.732919663 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:38:37.019575543 +0200 @@ -95,13 +95,13 @@ static inline int xfs_dir2_sf_hdr_size(i static inline xfs_dir2_data_aoff_t xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) { - return INT_GET_UNALIGNED_16_BE(&(sfep)->offset.i); + return get_unaligned_be16(&sfep->offset.i); } static inline void xfs_dir2_sf_put_offset(xfs_dir2_sf_entry_t *sfep, xfs_dir2_data_aoff_t off) { - INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); + put_unaligned_be16(off, &sfep->offset.i); } static inline int From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k8bk056116 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513567-63c403ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F52B4669F for ; Fri, 1 Jul 2011 02:46:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id HM09kqnQxcgxdNRo for ; Fri, 01 Jul 2011 02:46:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-00021Q-Vy for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:07 +0000 Message-Id: <20110701094606.955329993@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:44 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 23/27] xfs: remove the unused xfs_bufhash structure Subject: [PATCH 23/27] xfs: remove the unused xfs_bufhash structure References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-remove-bufhash X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 11:26:14.542550346 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:50:40.648935352 +0200 @@ -91,11 +91,6 @@ typedef enum { XBT_FORCE_FLUSH = 1, } xfs_buftarg_flags_t; -typedef struct xfs_bufhash { - struct list_head bh_list; - spinlock_t bh_lock; -} xfs_bufhash_t; - typedef struct xfs_buftarg { dev_t bt_dev; struct block_device *bt_bdev; From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k8Y0056143 for ; Fri, 1 Jul 2011 04:46:09 -0500 X-ASG-Debug-ID: 1309513568-63b303c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 51B79466AD for ; Fri, 1 Jul 2011 02:46:08 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id qCMKJq5kqGlN4NqD for ; Fri, 01 Jul 2011 02:46:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIZ-00023Z-Qp for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:07 +0000 Message-Id: <20110701094607.799498339@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:48 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 27/27] xfs: avoid a few disk cache flushes Subject: [PATCH 27/27] xfs: avoid a few disk cache flushes References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-cache-flushes X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513568 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean There is no need for a pre-flush when doing writing the second part of a split log buffer, and if we are using an external log there is no need to do a full cache flush of the log device at all given that all writes to it use the FUA flag. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-01 11:35:50.874088428 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-01 11:35:51.287421756 +0200 @@ -1371,15 +1371,21 @@ xlog_sync(xlog_t *log, bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) { + bp->b_flags |= XBF_FUA; + /* - * If we have an external log device, flush the data device - * before flushing the log to make sure all meta data - * written back from the AIL actually made it to disk - * before writing out the new log tail LSN in the log buffer. + * Flush the data device before flushing the log to make + * sure all meta data written back from the AIL actually made + * it to disk before stamping the new log tail LSN into the + * log buffer. For an external log we need to issue the + * flush explicitly, and unfortunately synchronously here; + * for an internal log we can simply use the block layer + * state machine for preflushes. */ if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp) xfs_blkdev_issue_flush(log->l_mp->m_ddev_targp); - bp->b_flags |= XBF_FUA | XBF_FLUSH; + else + bp->b_flags |= XBF_FLUSH; } ASSERT(XFS_BUF_ADDR(bp) <= log->l_logBBsize-1); @@ -1414,7 +1420,7 @@ xlog_sync(xlog_t *log, XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) - bp->b_flags |= XBF_FUA | XBF_FLUSH; + bp->b_flags |= XBF_FUA; dptr = XFS_BUF_PTR(bp); /* * Bump the cycle numbers at the start of each block From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_63,J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k74M056103 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513565-63c003b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 13455466A1 for ; Fri, 1 Jul 2011 02:46:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id SncYendvCIOdR0FF for ; Fri, 01 Jul 2011 02:46:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIX-0001wj-7o for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:05 +0000 Message-Id: <20110701094605.197942925@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:35 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Subject: [PATCH 14/27] xfs: kill struct xfs_dir2_sf References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_sf_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The list field of it is never cactually used, so all uses can simply be replaced with the xfs_dir2_sf_hdr_t type that it has as first member. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2.c 2011-06-29 19:45:24.000000000 +0200 +++ xfs/fs/xfs/xfs_dir2.c 2011-06-30 09:35:55.806736193 +0200 @@ -122,15 +122,15 @@ int xfs_dir_isempty( xfs_inode_t *dp) { - xfs_dir2_sf_t *sfp; + xfs_dir2_sf_hdr_t *sfp; ASSERT((dp->i_d.di_mode & S_IFMT) == S_IFDIR); if (dp->i_d.di_size == 0) /* might happen during shutdown. */ return 1; if (dp->i_d.di_size > XFS_IFORK_DSIZE(dp)) return 0; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - return !sfp->hdr.count; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + return !sfp->count; } /* Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:32:00.000000000 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:35:55.810069526 +0200 @@ -1028,8 +1028,6 @@ xfs_dir2_sf_to_block( xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ - char *buf; /* sf buffer */ - int buf_len; xfs_dir2_data_entry_t *dep; /* data entry pointer */ xfs_inode_t *dp; /* incore directory inode */ int dummy; /* trash */ @@ -1043,7 +1041,8 @@ xfs_dir2_sf_to_block( int newoffset; /* offset from current entry */ int offset; /* target block offset */ xfs_dir2_sf_entry_t *sfep; /* sf entry pointer */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *oldsfp; /* old shortform header */ + xfs_dir2_sf_hdr_t *sfp; /* shortform header */ __be16 *tagp; /* end of data entry */ xfs_trans_t *tp; /* transaction pointer */ struct xfs_name name; @@ -1061,32 +1060,30 @@ xfs_dir2_sf_to_block( ASSERT(XFS_FORCED_SHUTDOWN(mp)); return XFS_ERROR(EIO); } + + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(oldsfp->i8count)); + /* - * Copy the directory into the stack buffer. + * Copy the directory into a temporary buffer. * Then pitch the incore inode data so we can make extents. */ + sfp = kmem_alloc(dp->i_df.if_bytes, KM_SLEEP); + memcpy(sfp, oldsfp, dp->i_df.if_bytes); - buf_len = dp->i_df.if_bytes; - buf = kmem_alloc(buf_len, KM_SLEEP); - - memcpy(buf, sfp, buf_len); - xfs_idata_realloc(dp, -buf_len, XFS_DATA_FORK); + xfs_idata_realloc(dp, -dp->i_df.if_bytes, XFS_DATA_FORK); dp->i_d.di_size = 0; xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); - /* - * Reset pointer - old sfp is gone. - */ - sfp = (xfs_dir2_sf_t *)buf; + /* * Add block 0 to the inode. */ error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE, &blkno); if (error) { - kmem_free(buf); + kmem_free(sfp); return error; } /* @@ -1094,7 +1091,7 @@ xfs_dir2_sf_to_block( */ error = xfs_dir2_data_init(args, blkno, &bp); if (error) { - kmem_free(buf); + kmem_free(sfp); return error; } block = bp->data; @@ -1103,7 +1100,7 @@ xfs_dir2_sf_to_block( * Compute size of block "tail" area. */ i = (uint)sizeof(*btp) + - (sfp->hdr.count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t); + (sfp->count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t); /* * The whole thing is initialized to free by the init routine. * Say we're using the leaf and tail area. @@ -1117,7 +1114,7 @@ xfs_dir2_sf_to_block( * Fill in the tail. */ btp = xfs_dir2_block_tail_p(mp, block); - btp->count = cpu_to_be32(sfp->hdr.count + 2); /* ., .. */ + btp->count = cpu_to_be32(sfp->count + 2); /* ., .. */ btp->stale = 0; blp = xfs_dir2_block_leaf_p(btp); endoffset = (uint)((char *)blp - (char *)block); @@ -1159,7 +1156,8 @@ xfs_dir2_sf_to_block( /* * Loop over existing entries, stuff them in. */ - if ((i = 0) == sfp->hdr.count) + i = 0; + if (!sfp->count) sfep = NULL; else sfep = xfs_dir2_sf_firstentry(sfp); @@ -1208,13 +1206,13 @@ xfs_dir2_sf_to_block( blp[2 + i].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, (char *)dep - (char *)block)); offset = (int)((char *)(tagp + 1) - (char *)block); - if (++i == sfp->hdr.count) + if (++i == sfp->count) sfep = NULL; else sfep = xfs_dir2_sf_nextentry(sfp, sfep); } /* Done with the temporary buffer */ - kmem_free(buf); + kmem_free(sfp); /* * Sort the leaf entries by hash value. */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:34:46.000000000 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:37:41.120068219 +0200 @@ -67,10 +67,10 @@ static void xfs_dir2_sf_toino8(xfs_da_ar */ static xfs_ino_t xfs_dir2_sf_get_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_dir2_inou_t *from) { - if (sfp->hdr.i8count) + if (hdr->i8count) return XFS_GET_DIR_INO8(from->i8); else return XFS_GET_DIR_INO4(from->i4); @@ -78,11 +78,11 @@ xfs_dir2_sf_get_ino( static void xfs_dir2_sf_put_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_dir2_inou_t *to, xfs_ino_t ino) { - if (sfp->hdr.i8count) + if (hdr->i8count) XFS_PUT_DIR_INO8(ino, to->i8); else XFS_PUT_DIR_INO4(ino, to->i4); @@ -90,17 +90,17 @@ xfs_dir2_sf_put_ino( xfs_ino_t xfs_dir2_sf_get_parent_ino( - struct xfs_dir2_sf *sfp) + struct xfs_dir2_sf_hdr *hdr) { - return xfs_dir2_sf_get_ino(sfp, &sfp->hdr.parent); + return xfs_dir2_sf_get_ino(hdr, &hdr->parent); } static void xfs_dir2_sf_put_parent_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_ino_t ino) { - xfs_dir2_sf_put_ino(sfp, &sfp->hdr.parent, ino); + xfs_dir2_sf_put_ino(hdr, &hdr->parent, ino); } /* @@ -117,19 +117,19 @@ xfs_dir2_sfe_inop( xfs_ino_t xfs_dir2_sfe_get_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, struct xfs_dir2_sf_entry *sfep) { - return xfs_dir2_sf_get_ino(sfp, xfs_dir2_sfe_inop(sfep)); + return xfs_dir2_sf_get_ino(hdr, xfs_dir2_sfe_inop(sfep)); } static void xfs_dir2_sfe_put_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, struct xfs_dir2_sf_entry *sfep, xfs_ino_t ino) { - xfs_dir2_sf_put_ino(sfp, xfs_dir2_sfe_inop(sfep), ino); + xfs_dir2_sf_put_ino(hdr, xfs_dir2_sfe_inop(sfep), ino); } /* @@ -211,7 +211,7 @@ xfs_dir2_block_sfsize( */ sfhp->count = count; sfhp->i8count = i8count; - xfs_dir2_sf_put_parent_ino((xfs_dir2_sf_t *)sfhp, parent); + xfs_dir2_sf_put_parent_ino(sfhp, parent); return size; } @@ -237,7 +237,7 @@ xfs_dir2_block_to_sf( xfs_mount_t *mp; /* filesystem mount point */ char *ptr; /* current data pointer */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ trace_xfs_dir2_block_to_sf(args); @@ -270,7 +270,7 @@ xfs_dir2_block_to_sf( /* * Copy the header into the newly allocate local space. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; memcpy(sfp, sfhp, xfs_dir2_sf_hdr_size(sfhp->i8count)); dp->i_d.di_size = size; /* @@ -349,7 +349,7 @@ xfs_dir2_sf_addname( xfs_dir2_data_aoff_t offset = 0; /* offset for new entry */ int old_isize; /* di_size before adding name */ int pick; /* which algorithm to use */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ xfs_dir2_sf_entry_t *sfep = NULL; /* shortform entry */ trace_xfs_dir2_sf_addname(args); @@ -366,8 +366,8 @@ xfs_dir2_sf_addname( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Compute entry (and change in) size. */ @@ -378,7 +378,7 @@ xfs_dir2_sf_addname( /* * Do we have to change to 8 byte inodes? */ - if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->hdr.i8count == 0) { + if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) { /* * Yes, adjust the entry size and the total size. */ @@ -386,7 +386,7 @@ xfs_dir2_sf_addname( (uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t); incr_isize += - (sfp->hdr.count + 2) * + (sfp->count + 2) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); objchange = 1; @@ -456,11 +456,11 @@ xfs_dir2_sf_addname_easy( { int byteoff; /* byte offset in sf dir */ xfs_inode_t *dp; /* incore directory inode */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; byteoff = (int)((char *)sfep - (char *)sfp); /* * Grow the in-inode space. @@ -470,7 +470,7 @@ xfs_dir2_sf_addname_easy( /* * Need to set up again due to realloc of the inode data. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; sfep = (xfs_dir2_sf_entry_t *)((char *)sfp + byteoff); /* * Fill in the new entry. @@ -482,10 +482,10 @@ xfs_dir2_sf_addname_easy( /* * Update the header and inode. */ - sfp->hdr.count++; + sfp->count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM) - sfp->hdr.i8count++; + sfp->i8count++; #endif dp->i_d.di_size = new_isize; xfs_dir2_sf_check(args); @@ -515,19 +515,19 @@ xfs_dir2_sf_addname_hard( xfs_dir2_data_aoff_t offset; /* current offset value */ int old_isize; /* previous di_size */ xfs_dir2_sf_entry_t *oldsfep; /* entry in original dir */ - xfs_dir2_sf_t *oldsfp; /* original shortform dir */ + xfs_dir2_sf_hdr_t *oldsfp; /* original shortform dir */ xfs_dir2_sf_entry_t *sfep; /* entry in new dir */ - xfs_dir2_sf_t *sfp; /* new shortform dir */ + xfs_dir2_sf_hdr_t *sfp; /* new shortform dir */ /* * Copy the old directory to the stack buffer. */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; old_isize = (int)dp->i_d.di_size; buf = kmem_alloc(old_isize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)buf; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; memcpy(oldsfp, sfp, old_isize); /* * Loop over the old directory finding the place we're going @@ -556,7 +556,7 @@ xfs_dir2_sf_addname_hard( /* * Reset the pointer since the buffer was reallocated. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Copy the first part of the directory, including the header. */ @@ -570,10 +570,10 @@ xfs_dir2_sf_addname_hard( xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); - sfp->hdr.count++; + sfp->count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) - sfp->hdr.i8count++; + sfp->i8count++; #endif /* * If there's more left to copy, do that. @@ -607,14 +607,14 @@ xfs_dir2_sf_addname_pick( xfs_mount_t *mp; /* filesystem mount point */ xfs_dir2_data_aoff_t offset; /* data block offset */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ int size; /* entry's data size */ int used; /* data bytes used */ dp = args->dp; mp = dp->i_mount; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; size = xfs_dir2_data_entsize(args->namelen); offset = XFS_DIR2_DATA_FIRST_OFFSET; sfep = xfs_dir2_sf_firstentry(sfp); @@ -624,7 +624,7 @@ xfs_dir2_sf_addname_pick( * Keep track of data offset and whether we've seen a place * to insert the new entry. */ - for (i = 0; i < sfp->hdr.count; i++) { + for (i = 0; i < sfp->count; i++) { if (!holefit) holefit = offset + size <= xfs_dir2_sf_get_offset(sfep); offset = xfs_dir2_sf_get_offset(sfep) + @@ -636,7 +636,7 @@ xfs_dir2_sf_addname_pick( * was a data block (block form directory). */ used = offset + - (sfp->hdr.count + 3) * (uint)sizeof(xfs_dir2_leaf_entry_t) + + (sfp->count + 3) * (uint)sizeof(xfs_dir2_leaf_entry_t) + (uint)sizeof(xfs_dir2_block_tail_t); /* * If it won't fit in a block form then we can't insert it, @@ -682,17 +682,17 @@ xfs_dir2_sf_check( xfs_ino_t ino; /* entry inode number */ int offset; /* data offset */ xfs_dir2_sf_entry_t *sfep; /* shortform dir entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; offset = XFS_DIR2_DATA_FIRST_OFFSET; ino = xfs_dir2_sf_get_parent_ino(sfp); i8count = ino > XFS_DIR2_MAX_SHORT_INUM; for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { ASSERT(xfs_dir2_sf_get_offset(sfep) >= offset); ino = xfs_dir2_sfe_get_ino(sfp, sfep); @@ -701,11 +701,11 @@ xfs_dir2_sf_check( xfs_dir2_sf_get_offset(sfep) + xfs_dir2_data_entsize(sfep->namelen); } - ASSERT(i8count == sfp->hdr.i8count); + ASSERT(i8count == sfp->i8count); ASSERT(XFS_BIG_INUMS || i8count == 0); ASSERT((char *)sfep - (char *)sfp == dp->i_d.di_size); ASSERT(offset + - (sfp->hdr.count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t) + + (sfp->count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t) + (uint)sizeof(xfs_dir2_block_tail_t) <= dp->i_mount->m_dirblksize); } @@ -721,7 +721,7 @@ xfs_dir2_sf_create( { xfs_inode_t *dp; /* incore directory inode */ int i8count; /* parent inode is an 8-byte number */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ int size; /* directory size */ trace_xfs_dir2_sf_create(args); @@ -751,13 +751,13 @@ xfs_dir2_sf_create( /* * Fill in the header, */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - sfp->hdr.i8count = i8count; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + sfp->i8count = i8count; /* * Now can put in the inode number, since i8count is set. */ xfs_dir2_sf_put_parent_ino(sfp, pino); - sfp->hdr.count = 0; + sfp->count = 0; dp->i_d.di_size = size; xfs_dir2_sf_check(args); xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); @@ -775,7 +775,7 @@ xfs_dir2_sf_getdents( xfs_mount_t *mp; /* filesystem mount point */ xfs_dir2_dataptr_t off; /* current entry's offset */ xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ xfs_dir2_dataptr_t dot_offset; xfs_dir2_dataptr_t dotdot_offset; xfs_ino_t ino; @@ -794,9 +794,9 @@ xfs_dir2_sf_getdents( ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * If the block number in the offset is out of range, we're done. @@ -840,7 +840,7 @@ xfs_dir2_sf_getdents( * Loop while there are more entries and put'ing works. */ sfep = xfs_dir2_sf_firstentry(sfp); - for (i = 0; i < sfp->hdr.count; i++) { + for (i = 0; i < sfp->count; i++) { off = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, xfs_dir2_sf_get_offset(sfep)); @@ -875,7 +875,7 @@ xfs_dir2_sf_lookup( int i; /* entry index */ int error; xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ enum xfs_dacmp cmp; /* comparison result */ xfs_dir2_sf_entry_t *ci_sfep; /* case-insens. entry */ @@ -894,8 +894,8 @@ xfs_dir2_sf_lookup( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Special case for . */ @@ -917,7 +917,7 @@ xfs_dir2_sf_lookup( * Loop over all the entries trying to match ours. */ ci_sfep = NULL; - for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; + for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { /* * Compare name and if it's an exact match, return the inode @@ -960,7 +960,7 @@ xfs_dir2_sf_removename( int newsize; /* new inode size */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ trace_xfs_dir2_sf_removename(args); @@ -977,13 +977,13 @@ xfs_dir2_sf_removename( } ASSERT(dp->i_df.if_bytes == oldsize); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsize >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsize >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Loop over the old directory entries. * Find the one we're deleting. */ - for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; + for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { @@ -995,7 +995,7 @@ xfs_dir2_sf_removename( /* * Didn't find it. */ - if (i == sfp->hdr.count) + if (i == sfp->count) return XFS_ERROR(ENOENT); /* * Calculate sizes. @@ -1012,22 +1012,22 @@ xfs_dir2_sf_removename( /* * Fix up the header and file size. */ - sfp->hdr.count--; + sfp->count--; dp->i_d.di_size = newsize; /* * Reallocate, making it smaller. */ xfs_idata_realloc(dp, newsize - oldsize, XFS_DATA_FORK); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; #if XFS_BIG_INUMS /* * Are we changing inode number size? */ if (args->inumber > XFS_DIR2_MAX_SHORT_INUM) { - if (sfp->hdr.i8count == 1) + if (sfp->i8count == 1) xfs_dir2_sf_toino4(args); else - sfp->hdr.i8count--; + sfp->i8count--; } #endif xfs_dir2_sf_check(args); @@ -1051,7 +1051,7 @@ xfs_dir2_sf_replace( int i8elevated; /* sf_toino8 set i8count=1 */ #endif xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ trace_xfs_dir2_sf_replace(args); @@ -1067,19 +1067,19 @@ xfs_dir2_sf_replace( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); #if XFS_BIG_INUMS /* * New inode number is large, and need to convert to 8-byte inodes. */ - if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->hdr.i8count == 0) { + if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) { int error; /* error return value */ int newsize; /* new inode size */ newsize = dp->i_df.if_bytes + - (sfp->hdr.count + 1) * + (sfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); /* @@ -1097,7 +1097,7 @@ xfs_dir2_sf_replace( */ xfs_dir2_sf_toino8(args); i8elevated = 1; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; } else i8elevated = 0; #endif @@ -1118,7 +1118,7 @@ xfs_dir2_sf_replace( */ else { for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { @@ -1133,7 +1133,7 @@ xfs_dir2_sf_replace( /* * Didn't find it. */ - if (i == sfp->hdr.count) { + if (i == sfp->count) { ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); #if XFS_BIG_INUMS if (i8elevated) @@ -1151,10 +1151,10 @@ xfs_dir2_sf_replace( /* * And the old count was one, so need to convert to small. */ - if (sfp->hdr.i8count == 1) + if (sfp->i8count == 1) xfs_dir2_sf_toino4(args); else - sfp->hdr.i8count--; + sfp->i8count--; } /* * See if the old number was small, the new number is large. @@ -1165,9 +1165,9 @@ xfs_dir2_sf_replace( * add to the i8count unless we just converted to 8-byte * inodes (which does an implied i8count = 1) */ - ASSERT(sfp->hdr.i8count != 0); + ASSERT(sfp->i8count != 0); if (!i8elevated) - sfp->hdr.i8count++; + sfp->i8count++; } #endif xfs_dir2_sf_check(args); @@ -1189,10 +1189,10 @@ xfs_dir2_sf_toino4( int i; /* entry index */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ - xfs_dir2_sf_t *oldsfp; /* old sf directory */ + xfs_dir2_sf_hdr_t *oldsfp; /* old sf directory */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* new sf entry */ - xfs_dir2_sf_t *sfp; /* new sf directory */ + xfs_dir2_sf_hdr_t *sfp; /* new sf directory */ trace_xfs_dir2_sf_toino4(args); @@ -1205,35 +1205,35 @@ xfs_dir2_sf_toino4( */ oldsize = dp->i_df.if_bytes; buf = kmem_alloc(oldsize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsfp->hdr.i8count == 1); + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsfp->i8count == 1); memcpy(buf, oldsfp, oldsize); /* * Compute the new inode size. */ newsize = oldsize - - (oldsfp->hdr.count + 1) * + (oldsfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); xfs_idata_realloc(dp, -oldsize, XFS_DATA_FORK); xfs_idata_realloc(dp, newsize, XFS_DATA_FORK); /* * Reset our pointers, the data has moved. */ - oldsfp = (xfs_dir2_sf_t *)buf; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Fill in the new header. */ - sfp->hdr.count = oldsfp->hdr.count; - sfp->hdr.i8count = 0; + sfp->count = oldsfp->count; + sfp->i8count = 0; xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), oldsfep = xfs_dir2_sf_firstentry(oldsfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { sfep->namelen = oldsfep->namelen; @@ -1264,10 +1264,10 @@ xfs_dir2_sf_toino8( int i; /* entry index */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ - xfs_dir2_sf_t *oldsfp; /* old sf directory */ + xfs_dir2_sf_hdr_t *oldsfp; /* old sf directory */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* new sf entry */ - xfs_dir2_sf_t *sfp; /* new sf directory */ + xfs_dir2_sf_hdr_t *sfp; /* new sf directory */ trace_xfs_dir2_sf_toino8(args); @@ -1280,35 +1280,35 @@ xfs_dir2_sf_toino8( */ oldsize = dp->i_df.if_bytes; buf = kmem_alloc(oldsize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsfp->hdr.i8count == 0); + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsfp->i8count == 0); memcpy(buf, oldsfp, oldsize); /* * Compute the new inode size. */ newsize = oldsize + - (oldsfp->hdr.count + 1) * + (oldsfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); xfs_idata_realloc(dp, -oldsize, XFS_DATA_FORK); xfs_idata_realloc(dp, newsize, XFS_DATA_FORK); /* * Reset our pointers, the data has moved. */ - oldsfp = (xfs_dir2_sf_t *)buf; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Fill in the new header. */ - sfp->hdr.count = oldsfp->hdr.count; - sfp->hdr.i8count = 1; + sfp->count = oldsfp->count; + sfp->i8count = 1; xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), oldsfep = xfs_dir2_sf_firstentry(oldsfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { sfep->namelen = oldsfep->namelen; Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:32:00.390072451 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:35:55.813402859 +0200 @@ -21,8 +21,12 @@ /* * Directory layout when stored internal to an inode. * - * Small directories are packed as tightly as possible so as to - * fit into the literal area of the inode. + * Small directories are packed as tightly as possible so as to fit into the + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header + * followed by zero or more xfs_dir2_sf_entry structures. Due the different + * inode number storage sized and the variable length name filed in + * the xfs_dir2_sf_entry all these structure are variable length, and the + * accessors in this file need to be used to iterate over them. */ struct uio; @@ -61,9 +65,9 @@ typedef struct { __uint8_t i[2]; } __arc * The parent directory has a dedicated field, and the self-pointer must * be calculated on the fly. * - * Entries are packed toward the top as tightly as possible. The header - * and the elements must be memcpy'd out into a work area to get correct - * alignment for the inode number fields. + * Entries are packed toward the top as tightly as possible, and thus may + * be misaligned. Care needs to be taken to access them through special + * helpers or copy them into aligned variables first. */ typedef struct xfs_dir2_sf_hdr { __uint8_t count; /* count of entries */ @@ -78,11 +82,6 @@ typedef struct xfs_dir2_sf_entry { xfs_dir2_inou_t inumber; /* inode number, var. offset */ } __arch_pack xfs_dir2_sf_entry_t; -typedef struct xfs_dir2_sf { - xfs_dir2_sf_hdr_t hdr; /* shortform header */ - xfs_dir2_sf_entry_t list[1]; /* shortform entries */ -} xfs_dir2_sf_t; - static inline int xfs_dir2_sf_hdr_size(int i8count) { return ((uint)sizeof(xfs_dir2_sf_hdr_t) - \ @@ -102,29 +101,29 @@ xfs_dir2_sf_put_offset(xfs_dir2_sf_entry INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); } -static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_t *sfp, int len) +static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_hdr_t *sfp, int len) { return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (len) - \ - ((sfp)->hdr.i8count == 0) * \ + ((sfp)->i8count == 0) * \ ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } static inline int -xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_t *sfp, xfs_dir2_sf_entry_t *sfep) +xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) { return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (sfep)->namelen - \ - ((sfp)->hdr.i8count == 0) * \ + ((sfp)->i8count == 0) * \ ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } -static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_t *sfp) +static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_hdr_t *sfp) { return ((xfs_dir2_sf_entry_t *) \ - ((char *)(sfp) + xfs_dir2_sf_hdr_size(sfp->hdr.i8count))); + ((char *)(sfp) + xfs_dir2_sf_hdr_size(sfp->i8count))); } static inline xfs_dir2_sf_entry_t * -xfs_dir2_sf_nextentry(xfs_dir2_sf_t *sfp, xfs_dir2_sf_entry_t *sfep) +xfs_dir2_sf_nextentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) { return ((xfs_dir2_sf_entry_t *) \ ((char *)(sfep) + xfs_dir2_sf_entsize_byentry(sfp,sfep))); @@ -133,8 +132,8 @@ xfs_dir2_sf_nextentry(xfs_dir2_sf_t *sfp /* * Functions. */ -extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf *sfp); -extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf *sfp, +extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf_hdr *sfp); +extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, struct xfs_dir2_block *block, From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k9t0056154 for ; Fri, 1 Jul 2011 04:46:09 -0500 X-ASG-Debug-ID: 1309513567-6d1800c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CAF3F1EE3239 for ; Fri, 1 Jul 2011 02:46:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id oFIQyawyde3wJ21C for ; Fri, 01 Jul 2011 02:46:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIZ-00021w-6F for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:07 +0000 Message-Id: <20110701094607.155544131@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:45 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 24/27] xfs: clean up buffer locking helpers Subject: [PATCH 24/27] xfs: clean up buffer locking helpers References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-buffer-locking X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513567 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Rename xfs_buf_cond_lock and reverse it's return value to fit most other trylock operations in the Kernel and XFS (with the exception of down_trylock, after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val with an xfs_buf_islocked for use in asserts, or and opencoded variant in tracing. remove the XFS_BUF_* wrappers for all the locking helpers. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 11:26:14.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:15.596795734 +0200 @@ -499,16 +499,14 @@ found: spin_unlock(&pag->pag_buf_lock); xfs_perag_put(pag); - if (xfs_buf_cond_lock(bp)) { - /* failed, so wait for the lock if requested. */ - if (!(flags & XBF_TRYLOCK)) { - xfs_buf_lock(bp); - XFS_STATS_INC(xb_get_locked_waited); - } else { + if (!xfs_buf_trylock(bp)) { + if (flags & XBF_TRYLOCK) { xfs_buf_rele(bp); XFS_STATS_INC(xb_busy_locked); return NULL; } + xfs_buf_lock(bp); + XFS_STATS_INC(xb_get_locked_waited); } /* @@ -896,8 +894,8 @@ xfs_buf_rele( * to push on stale inode buffers. */ int -xfs_buf_cond_lock( - xfs_buf_t *bp) +xfs_buf_trylock( + struct xfs_buf *bp) { int locked; @@ -907,15 +905,8 @@ xfs_buf_cond_lock( else if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) xfs_log_force(bp->b_target->bt_mount, 0); - trace_xfs_buf_cond_lock(bp, _RET_IP_); - return locked ? 0 : -EBUSY; -} - -int -xfs_buf_lock_value( - xfs_buf_t *bp) -{ - return bp->b_sema.count; + trace_xfs_buf_trylock(bp, _RET_IP_); + return locked; } /* @@ -929,7 +920,7 @@ xfs_buf_lock_value( */ void xfs_buf_lock( - xfs_buf_t *bp) + struct xfs_buf *bp) { trace_xfs_buf_lock(bp, _RET_IP_); @@ -950,7 +941,7 @@ xfs_buf_lock( */ void xfs_buf_unlock( - xfs_buf_t *bp) + struct xfs_buf *bp) { if ((bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q)) == XBF_DELWRI) { atomic_inc(&bp->b_hold); @@ -1694,7 +1685,7 @@ xfs_buf_delwri_split( list_for_each_entry_safe(bp, n, dwq, b_list) { ASSERT(bp->b_flags & XBF_DELWRI); - if (!XFS_BUF_ISPINNED(bp) && !xfs_buf_cond_lock(bp)) { + if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { if (!force && time_before(jiffies, bp->b_queuetime + age)) { xfs_buf_unlock(bp); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:50:40.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:54:35.250997736 +0200 @@ -187,10 +187,11 @@ extern void xfs_buf_free(xfs_buf_t *); extern void xfs_buf_rele(xfs_buf_t *); /* Locking and Unlocking Buffers */ -extern int xfs_buf_cond_lock(xfs_buf_t *); -extern int xfs_buf_lock_value(xfs_buf_t *); +extern int xfs_buf_trylock(xfs_buf_t *); extern void xfs_buf_lock(xfs_buf_t *); extern void xfs_buf_unlock(xfs_buf_t *); +#define xfs_buf_islocked(bp) \ + ((bp)->b_sema.count <= 0) /* Buffer Read and Write Routines */ extern int xfs_bwrite(struct xfs_mount *mp, struct xfs_buf *bp); @@ -308,10 +309,6 @@ xfs_buf_set_ref( #define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) -#define XFS_BUF_VALUSEMA(bp) xfs_buf_lock_value(bp) -#define XFS_BUF_CPSEMA(bp) (xfs_buf_cond_lock(bp) == 0) -#define XFS_BUF_VSEMA(bp) xfs_buf_unlock(bp) -#define XFS_BUF_PSEMA(bp,x) xfs_buf_lock(bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); #define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:35:45.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 13:54:32.974343403 +0200 @@ -293,7 +293,7 @@ DECLARE_EVENT_CLASS(xfs_buf_class, __entry->buffer_length = bp->b_buffer_length; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->flags = bp->b_flags; __entry->caller_ip = caller_ip; ), @@ -323,7 +323,7 @@ DEFINE_BUF_EVENT(xfs_buf_bawrite); DEFINE_BUF_EVENT(xfs_buf_bdwrite); DEFINE_BUF_EVENT(xfs_buf_lock); DEFINE_BUF_EVENT(xfs_buf_lock_done); -DEFINE_BUF_EVENT(xfs_buf_cond_lock); +DEFINE_BUF_EVENT(xfs_buf_trylock); DEFINE_BUF_EVENT(xfs_buf_unlock); DEFINE_BUF_EVENT(xfs_buf_iowait); DEFINE_BUF_EVENT(xfs_buf_iowait_done); @@ -366,7 +366,7 @@ DECLARE_EVENT_CLASS(xfs_buf_flags_class, __entry->flags = flags; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->caller_ip = caller_ip; ), TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " @@ -409,7 +409,7 @@ TRACE_EVENT(xfs_buf_ioerror, __entry->buffer_length = bp->b_buffer_length; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->error = error; __entry->flags = bp->b_flags; __entry->caller_ip = caller_ip; @@ -454,7 +454,7 @@ DECLARE_EVENT_CLASS(xfs_buf_item_class, __entry->buf_flags = bip->bli_buf->b_flags; __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); - __entry->buf_lockval = xfs_buf_lock_value(bip->bli_buf); + __entry->buf_lockval = bip->bli_buf->b_sema.count; __entry->li_desc = bip->bli_item.li_desc; __entry->li_flags = bip->bli_item.li_flags; ), Index: xfs/fs/xfs/quota/xfs_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_dquot.c 2011-05-11 08:41:56.000000000 +0200 +++ xfs/fs/xfs/quota/xfs_dquot.c 2011-06-29 13:53:07.801471491 +0200 @@ -318,7 +318,7 @@ xfs_qm_init_dquot_blk( ASSERT(tp); ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); @@ -534,7 +534,7 @@ xfs_qm_dqtobp( } ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); /* * calculate the location of the dquot inside the buffer. @@ -622,7 +622,7 @@ xfs_qm_dqread( * brelse it because we have the changes incore. */ ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); xfs_trans_brelse(tp, bp); return (error); Index: xfs/fs/xfs/xfs_buf_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_buf_item.c 2011-04-22 06:21:45.000000000 +0200 +++ xfs/fs/xfs/xfs_buf_item.c 2011-06-29 13:53:20.938066990 +0200 @@ -420,7 +420,7 @@ xfs_buf_item_unpin( if (freed && stale) { ASSERT(bip->bli_flags & XFS_BLI_STALE); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); ASSERT(!(XFS_BUF_ISDELAYWRITE(bp))); ASSERT(XFS_BUF_ISSTALE(bp)); ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); @@ -483,7 +483,7 @@ xfs_buf_item_trylock( if (XFS_BUF_ISPINNED(bp)) return XFS_ITEM_PINNED; - if (!XFS_BUF_CPSEMA(bp)) + if (!xfs_buf_trylock(bp)) return XFS_ITEM_LOCKED; /* take a reference to the buffer. */ @@ -905,7 +905,7 @@ xfs_buf_attach_iodone( xfs_log_item_t *head_lip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); lip->li_cb = cb; if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-06-17 14:07:57.000000000 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-06-29 13:53:33.954663139 +0200 @@ -1059,7 +1059,7 @@ xlog_alloc_log(xfs_mount_t *mp, XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; spin_lock_init(&log->l_icloglock); @@ -1090,7 +1090,7 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog_size, 0); if (!bp) goto out_free_iclog; - if (!XFS_BUF_CPSEMA(bp)) + if (!xfs_buf_trylock(bp)) ASSERT(0); XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); @@ -1118,7 +1118,7 @@ xlog_alloc_log(xfs_mount_t *mp, iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); - ASSERT(XFS_BUF_VALUSEMA(iclog->ic_bp) <= 0); + ASSERT(xfs_buf_islocked(iclog->ic_bp)); init_waitqueue_head(&iclog->ic_force_wait); init_waitqueue_head(&iclog->ic_write_wait); Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-05-20 15:25:52.000000000 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-06-29 13:51:20.425386530 +0200 @@ -264,7 +264,7 @@ xlog_bwrite( XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); - XFS_BUF_PSEMA(bp, PRIBIO); + xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); Index: xfs/fs/xfs/xfs_mount.c =================================================================== --- xfs.orig/fs/xfs/xfs_mount.c 2011-06-29 11:38:53.000000000 +0200 +++ xfs/fs/xfs/xfs_mount.c 2011-06-29 13:51:20.425386530 +0200 @@ -1941,22 +1941,19 @@ unwind: * the superblock buffer if it can be locked without sleeping. * If it can't then we'll return NULL. */ -xfs_buf_t * +struct xfs_buf * xfs_getsb( - xfs_mount_t *mp, - int flags) + struct xfs_mount *mp, + int flags) { - xfs_buf_t *bp; + struct xfs_buf *bp = mp->m_sb_bp; - ASSERT(mp->m_sb_bp != NULL); - bp = mp->m_sb_bp; - if (flags & XBF_TRYLOCK) { - if (!XFS_BUF_CPSEMA(bp)) { + if (!xfs_buf_trylock(bp)) { + if (flags & XBF_TRYLOCK) return NULL; - } - } else { - XFS_BUF_PSEMA(bp, PRIBIO); + xfs_buf_lock(bp); } + XFS_BUF_HOLD(bp); ASSERT(XFS_BUF_ISDONE(bp)); return bp; Index: xfs/fs/xfs/xfs_trans_buf.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_buf.c 2011-03-27 23:52:57.000000000 +0200 +++ xfs/fs/xfs/xfs_trans_buf.c 2011-06-29 13:53:47.084592005 +0200 @@ -160,7 +160,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, */ bp = xfs_trans_buf_item_match(tp, target_dev, blkno, len); if (bp != NULL) { - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); if (XFS_FORCED_SHUTDOWN(tp->t_mountp)) XFS_BUF_SUPER_STALE(bp); @@ -327,7 +327,7 @@ xfs_trans_read_buf( */ bp = xfs_trans_buf_item_match(tp, target, blkno, len); if (bp != NULL) { - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT((XFS_BUF_ISERROR(bp)) == 0); From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k9VA056155 for ; Fri, 1 Jul 2011 04:46:11 -0500 X-ASG-Debug-ID: 1309513567-63bd03ab0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 47DAA4669F for ; Fri, 1 Jul 2011 02:46:08 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id PGPrGktyynwMepfw for ; Fri, 01 Jul 2011 02:46:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIZ-00022z-Ie for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:07 +0000 Message-Id: <20110701094607.536262104@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:47 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Subject: [PATCH 26/27] xfs: cleanup I/O-related buffer flags References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-buf-cleanup-flags X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513568 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and XBF_FLUSH to allow more fine grained control over the bio flags. Also cleanup processing of the flags in _xfs_buf_ioapply to make more sense, and renumber the sparse flag number space to group flags by purpose. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 14:04:28.084452749 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 14:27:00.987123445 +0200 @@ -592,10 +592,8 @@ _xfs_buf_read( ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); - bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); - bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | XBF_READ_AHEAD); + bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); status = xfs_buf_iorequest(bp); if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) @@ -1211,23 +1209,21 @@ _xfs_buf_ioapply( total_nr_pages = bp->b_page_count; map_i = 0; - if (bp->b_flags & XBF_ORDERED) { - ASSERT(!(bp->b_flags & XBF_READ)); - rw = WRITE_FLUSH_FUA; - } else if (bp->b_flags & XBF_LOG_BUFFER) { - ASSERT(!(bp->b_flags & XBF_READ_AHEAD)); - bp->b_flags &= ~_XBF_RUN_QUEUES; - rw = (bp->b_flags & XBF_WRITE) ? WRITE_SYNC : READ_SYNC; - } else if (bp->b_flags & _XBF_RUN_QUEUES) { - ASSERT(!(bp->b_flags & XBF_READ_AHEAD)); - bp->b_flags &= ~_XBF_RUN_QUEUES; - rw = (bp->b_flags & XBF_WRITE) ? WRITE_META : READ_META; + if (bp->b_flags & XBF_WRITE) { + if (bp->b_flags & XBF_SYNCIO) + rw = WRITE_SYNC; + else + rw = WRITE; + if (bp->b_flags & XBF_FUA) + rw |= REQ_FUA; + if (bp->b_flags & XBF_FLUSH) + rw |= REQ_FLUSH; + } else if (bp->b_flags & XBF_READ_AHEAD) { + rw = READA; } else { - rw = (bp->b_flags & XBF_WRITE) ? WRITE : - (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; + rw = READ; } - next_chunk: atomic_inc(&bp->b_io_remaining); nr_pages = BIO_MAX_SECTORS >> (PAGE_SHIFT - BBSHIFT); @@ -1689,8 +1685,7 @@ xfs_buf_delwri_split( break; } - bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q| - _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); bp->b_flags |= XBF_WRITE; list_move_tail(&bp->b_list, list); trace_xfs_buf_delwri_split(bp, _RET_IP_); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 14:03:57.994615760 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 14:18:16.806629842 +0200 @@ -46,43 +46,46 @@ typedef enum { #define XBF_READ (1 << 0) /* buffer intended for reading from device */ #define XBF_WRITE (1 << 1) /* buffer intended for writing to device */ -#define XBF_MAPPED (1 << 2) /* buffer mapped (b_addr valid) */ +#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */ +#define XBF_MAPPED (1 << 3) /* buffer mapped (b_addr valid) */ #define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */ #define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */ #define XBF_DELWRI (1 << 6) /* buffer has dirty pages */ #define XBF_STALE (1 << 7) /* buffer has been staled, do not find it */ -#define XBF_ORDERED (1 << 11)/* use ordered writes */ -#define XBF_READ_AHEAD (1 << 12)/* asynchronous read-ahead */ -#define XBF_LOG_BUFFER (1 << 13)/* this is a buffer used for the log */ + +/* I/O hints for the BIO layer */ +#define XBF_SYNCIO (1 << 10)/* treat this buffer as synchronous I/O */ +#define XBF_FUA (1 << 11)/* force cache write through mode */ +#define XBF_FLUSH (1 << 12)/* flush the disk cache before a write */ /* flags used only as arguments to access routines */ -#define XBF_LOCK (1 << 14)/* lock requested */ -#define XBF_TRYLOCK (1 << 15)/* lock requested, but do not wait */ -#define XBF_DONT_BLOCK (1 << 16)/* do not block in current thread */ +#define XBF_LOCK (1 << 15)/* lock requested */ +#define XBF_TRYLOCK (1 << 16)/* lock requested, but do not wait */ +#define XBF_DONT_BLOCK (1 << 17)/* do not block in current thread */ /* flags used only internally */ -#define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ -#define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ -#define _XBF_KMEM (1 << 20)/* backed by heap memory */ -#define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ +#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ +#define _XBF_KMEM (1 << 21)/* backed by heap memory */ +#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ typedef unsigned int xfs_buf_flags_t; #define XFS_BUF_FLAGS \ { XBF_READ, "READ" }, \ { XBF_WRITE, "WRITE" }, \ + { XBF_READ_AHEAD, "READ_AHEAD" }, \ { XBF_MAPPED, "MAPPED" }, \ { XBF_ASYNC, "ASYNC" }, \ { XBF_DONE, "DONE" }, \ { XBF_DELWRI, "DELWRI" }, \ { XBF_STALE, "STALE" }, \ - { XBF_ORDERED, "ORDERED" }, \ - { XBF_READ_AHEAD, "READ_AHEAD" }, \ + { XBF_SYNCIO, "SYNCIO" }, \ + { XBF_FUA, "FUA" }, \ + { XBF_FLUSH, "FLUSH" }, \ { XBF_LOCK, "LOCK" }, /* should never be set */\ { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ { _XBF_PAGES, "PAGES" }, \ - { _XBF_RUN_QUEUES, "RUN_QUEUES" }, \ { _XBF_KMEM, "KMEM" }, \ { _XBF_DELWRI_Q, "DELWRI_Q" } @@ -230,8 +233,9 @@ extern void xfs_buf_terminate(void); #define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) -#define XFS_BUF_ZEROFLAGS(bp) ((bp)->b_flags &= \ - ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED)) +#define XFS_BUF_ZEROFLAGS(bp) \ + ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ + XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); @@ -263,10 +267,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) -#define XFS_BUF_ORDERED(bp) ((bp)->b_flags |= XBF_ORDERED) -#define XFS_BUF_UNORDERED(bp) ((bp)->b_flags &= ~XBF_ORDERED) -#define XFS_BUF_ISORDERED(bp) ((bp)->b_flags & XBF_ORDERED) - #define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) #define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) #define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-06-29 14:04:18.587837528 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-06-29 19:45:20.176987585 +0200 @@ -1268,7 +1268,6 @@ xlog_bdstrat( return 0; } - bp->b_flags |= _XBF_RUN_QUEUES; xfs_buf_iorequest(bp); return 0; } @@ -1369,7 +1368,7 @@ xlog_sync(xlog_t *log, XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); - bp->b_flags |= XBF_LOG_BUFFER; + bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) { /* @@ -1380,7 +1379,7 @@ xlog_sync(xlog_t *log, */ if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp) xfs_blkdev_issue_flush(log->l_mp->m_ddev_targp); - XFS_BUF_ORDERED(bp); + bp->b_flags |= XBF_FUA | XBF_FLUSH; } ASSERT(XFS_BUF_ADDR(bp) <= log->l_logBBsize-1); @@ -1413,9 +1412,9 @@ xlog_sync(xlog_t *log, XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); - bp->b_flags |= XBF_LOG_BUFFER; + bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) - XFS_BUF_ORDERED(bp); + bp->b_flags |= XBF_FUA | XBF_FLUSH; dptr = XFS_BUF_PTR(bp); /* * Bump the cycle numbers at the start of each block From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_62,J_CHICKENPOX_63,J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k8lK056125 for ; Fri, 1 Jul 2011 04:46:08 -0500 X-ASG-Debug-ID: 1309513565-6d2200a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 754C81EE3236 for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id h4qYdTLkaT1FboFB for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIX-0001xm-LL for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:05 +0000 Message-Id: <20110701094605.621819832@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block Subject: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-xfs_dir2_block_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_block instead of the full structure. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:35:55.810069526 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:38:36.586734196 +0200 @@ -67,7 +67,7 @@ xfs_dir2_block_addname( xfs_da_args_t *args) /* directory op arguments */ { xfs_dir2_data_free_t *bf; /* bestfree table in block */ - xfs_dir2_block_t *block; /* directory block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -105,13 +105,13 @@ xfs_dir2_block_addname( return error; } ASSERT(bp != NULL); - block = bp->data; + hdr = bp->data; /* * Check the magic number, corrupted if wrong. */ - if (unlikely(be32_to_cpu(block->hdr.magic) != XFS_DIR2_BLOCK_MAGIC)) { + if (unlikely(hdr->magic != cpu_to_be32(XFS_DIR2_BLOCK_MAGIC))) { XFS_CORRUPTION_ERROR("xfs_dir2_block_addname", - XFS_ERRLEVEL_LOW, mp, block); + XFS_ERRLEVEL_LOW, mp, hdr); xfs_da_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); } @@ -119,8 +119,8 @@ xfs_dir2_block_addname( /* * Set up pointers to parts of the block. */ - bf = block->hdr.bestfree; - btp = xfs_dir2_block_tail_p(mp, block); + bf = hdr->bestfree; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * No stale entries? Need space for entry and new leaf. @@ -133,7 +133,7 @@ xfs_dir2_block_addname( /* * Data object just before the first leaf entry. */ - enddup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + enddup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free then can't do this add without cleaning up: * the space before the first leaf entry needs to be free so it @@ -146,7 +146,7 @@ xfs_dir2_block_addname( */ else { dup = (xfs_dir2_data_unused_t *) - ((char *)block + be16_to_cpu(bf[0].offset)); + ((char *)hdr + be16_to_cpu(bf[0].offset)); if (dup == enddup) { /* * It is the biggest freespace, is it too small @@ -159,7 +159,7 @@ xfs_dir2_block_addname( */ if (be16_to_cpu(bf[1].length) >= len) dup = (xfs_dir2_data_unused_t *) - ((char *)block + + ((char *)hdr + be16_to_cpu(bf[1].offset)); else dup = NULL; @@ -182,7 +182,7 @@ xfs_dir2_block_addname( */ else if (be16_to_cpu(bf[0].length) >= len) { dup = (xfs_dir2_data_unused_t *) - ((char *)block + be16_to_cpu(bf[0].offset)); + ((char *)hdr + be16_to_cpu(bf[0].offset)); compact = 0; } /* @@ -196,7 +196,7 @@ xfs_dir2_block_addname( /* * Data object just before the first leaf entry. */ - dup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + dup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free then the data will go where the * leaf data starts now, if it works at all. @@ -272,7 +272,7 @@ xfs_dir2_block_addname( lfloghigh -= be32_to_cpu(btp->stale) - 1; be32_add_cpu(&btp->count, -(be32_to_cpu(btp->stale) - 1)); xfs_dir2_data_make_free(tp, bp, - (xfs_dir2_data_aoff_t)((char *)blp - (char *)block), + (xfs_dir2_data_aoff_t)((char *)blp - (char *)hdr), (xfs_dir2_data_aoff_t)((be32_to_cpu(btp->stale) - 1) * sizeof(*blp)), &needlog, &needscan); blp += be32_to_cpu(btp->stale) - 1; @@ -282,7 +282,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); needscan = 0; } } @@ -318,7 +318,7 @@ xfs_dir2_block_addname( */ xfs_dir2_data_use_free(tp, bp, enddup, (xfs_dir2_data_aoff_t) - ((char *)enddup - (char *)block + be16_to_cpu(enddup->length) - + ((char *)enddup - (char *)hdr + be16_to_cpu(enddup->length) - sizeof(*blp)), (xfs_dir2_data_aoff_t)sizeof(*blp), &needlog, &needscan); @@ -331,7 +331,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); needscan = 0; } @@ -397,13 +397,13 @@ xfs_dir2_block_addname( */ blp[mid].hashval = cpu_to_be32(args->hashval); blp[mid].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); xfs_dir2_block_log_leaf(tp, bp, lfloglow, lfloghigh); /* * Mark space for the data entry used. */ xfs_dir2_data_use_free(tp, bp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), (xfs_dir2_data_aoff_t)len, &needlog, &needscan); /* * Create the new data entry. @@ -412,12 +412,12 @@ xfs_dir2_block_addname( dep->namelen = args->namelen; memcpy(dep->name, args->name, args->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); /* * Clean up the bestfree array and log the header, tail, and entry. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_block_log_tail(tp, bp); @@ -438,6 +438,7 @@ xfs_dir2_block_getdents( filldir_t filldir) { xfs_dir2_block_t *block; /* directory block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* block data entry */ @@ -471,11 +472,12 @@ xfs_dir2_block_getdents( */ wantoff = xfs_dir2_dataptr_to_off(mp, *offset); block = bp->data; + hdr = &block->hdr; xfs_dir2_data_check(dp, bp); /* * Set up values for the loop. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); ptr = (char *)block->u; endptr = (char *)xfs_dir2_block_leaf_p(btp); @@ -502,11 +504,11 @@ xfs_dir2_block_getdents( /* * The entry is before the desired starting point, skip it. */ - if ((char *)dep - (char *)block < wantoff) + if ((char *)dep - (char *)hdr < wantoff) continue; cook = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, - (char *)dep - (char *)block); + (char *)dep - (char *)hdr); /* * If it didn't fit, set the final offset to here & return. @@ -540,17 +542,14 @@ xfs_dir2_block_log_leaf( int first, /* index of first logged leaf */ int last) /* index of last logged leaf */ { - xfs_dir2_block_t *block; /* directory block structure */ - xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ - xfs_dir2_block_tail_t *btp; /* block tail */ - xfs_mount_t *mp; /* filesystem mount point */ + xfs_dir2_data_hdr_t *hdr = bp->data; + xfs_dir2_leaf_entry_t *blp; + xfs_dir2_block_tail_t *btp; - mp = tp->t_mountp; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(tp->t_mountp, hdr); blp = xfs_dir2_block_leaf_p(btp); - xfs_da_log_buf(tp, bp, (uint)((char *)&blp[first] - (char *)block), - (uint)((char *)&blp[last + 1] - (char *)block - 1)); + xfs_da_log_buf(tp, bp, (uint)((char *)&blp[first] - (char *)hdr), + (uint)((char *)&blp[last + 1] - (char *)hdr - 1)); } /* @@ -561,15 +560,12 @@ xfs_dir2_block_log_tail( xfs_trans_t *tp, /* transaction structure */ xfs_dabuf_t *bp) /* block buffer */ { - xfs_dir2_block_t *block; /* directory block structure */ - xfs_dir2_block_tail_t *btp; /* block tail */ - xfs_mount_t *mp; /* filesystem mount point */ + xfs_dir2_data_hdr_t *hdr = bp->data; + xfs_dir2_block_tail_t *btp; - mp = tp->t_mountp; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); - xfs_da_log_buf(tp, bp, (uint)((char *)btp - (char *)block), - (uint)((char *)(btp + 1) - (char *)block - 1)); + btp = xfs_dir2_block_tail_p(tp->t_mountp, hdr); + xfs_da_log_buf(tp, bp, (uint)((char *)btp - (char *)hdr), + (uint)((char *)(btp + 1) - (char *)hdr - 1)); } /* @@ -580,7 +576,7 @@ int /* error */ xfs_dir2_block_lookup( xfs_da_args_t *args) /* dir lookup arguments */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -600,14 +596,14 @@ xfs_dir2_block_lookup( return error; dp = args->dp; mp = dp->i_mount; - block = bp->data; + hdr = bp->data; xfs_dir2_data_check(dp, bp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Get the offset from the leaf entry, to point to the data. */ - dep = (xfs_dir2_data_entry_t *)((char *)block + + dep = (xfs_dir2_data_entry_t *)((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); /* * Fill in inode number, CI name if appropriate, release the block. @@ -628,7 +624,7 @@ xfs_dir2_block_lookup_int( int *entno) /* returned entry number */ { xfs_dir2_dataptr_t addr; /* data entry address */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -654,9 +650,9 @@ xfs_dir2_block_lookup_int( return error; } ASSERT(bp != NULL); - block = bp->data; + hdr = bp->data; xfs_dir2_data_check(dp, bp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Loop doing a binary search for our hash value. @@ -694,7 +690,7 @@ xfs_dir2_block_lookup_int( * Get pointer to the entry from the leaf. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, addr)); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, addr)); /* * Compare name and if it's an exact match, return the index * and buffer. If it's the first case-insensitive match, store @@ -733,7 +729,7 @@ int /* error */ xfs_dir2_block_removename( xfs_da_args_t *args) /* directory operation args */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf pointer */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -760,20 +756,20 @@ xfs_dir2_block_removename( dp = args->dp; tp = args->trans; mp = dp->i_mount; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + hdr = bp->data; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Point to the data entry using the leaf entry. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); /* * Mark the data entry's space free. */ needlog = needscan = 0; xfs_dir2_data_make_free(tp, bp, - (xfs_dir2_data_aoff_t)((char *)dep - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dep - (char *)hdr), xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); /* * Fix up the block tail. @@ -789,15 +785,15 @@ xfs_dir2_block_removename( * Fix up bestfree, log the header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_data_check(dp, bp); /* * See if the size as a shortform is good enough. */ - if ((size = xfs_dir2_block_sfsize(dp, block, &sfh)) > - XFS_IFORK_DSIZE(dp)) { + size = xfs_dir2_block_sfsize(dp, hdr, &sfh); + if (size > XFS_IFORK_DSIZE(dp)) { xfs_da_buf_done(bp); return 0; } @@ -815,7 +811,7 @@ int /* error */ xfs_dir2_block_replace( xfs_da_args_t *args) /* directory operation args */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -836,14 +832,14 @@ xfs_dir2_block_replace( } dp = args->dp; mp = dp->i_mount; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + hdr = bp->data; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Point to the data entry we need to change. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); ASSERT(be64_to_cpu(dep->inumber) != args->inumber); /* * Change the inode number to the new value. @@ -882,7 +878,7 @@ xfs_dir2_leaf_to_block( xfs_dabuf_t *dbp) /* data buffer */ { __be16 *bestsp; /* leaf bests table */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_block_tail_t *btp; /* block tail */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -917,7 +913,7 @@ xfs_dir2_leaf_to_block( while (dp->i_d.di_size > mp->m_dirblksize) { bestsp = xfs_dir2_leaf_bests_p(ltp); if (be16_to_cpu(bestsp[be32_to_cpu(ltp->bestcount) - 1]) == - mp->m_dirblksize - (uint)sizeof(block->hdr)) { + mp->m_dirblksize - (uint)sizeof(*hdr)) { if ((error = xfs_dir2_leaf_trim_data(args, lbp, (xfs_dir2_db_t)(be32_to_cpu(ltp->bestcount) - 1)))) @@ -935,18 +931,18 @@ xfs_dir2_leaf_to_block( XFS_DATA_FORK))) { goto out; } - block = dbp->data; - ASSERT(be32_to_cpu(block->hdr.magic) == XFS_DIR2_DATA_MAGIC); + hdr = dbp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); /* * Size of the "leaf" area in the block. */ - size = (uint)sizeof(block->tail) + + size = (uint)sizeof(xfs_dir2_block_tail_t) + (uint)sizeof(*lep) * (be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)); /* * Look at the last data entry. */ - tagp = (__be16 *)((char *)block + mp->m_dirblksize) - 1; - dup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + tagp = (__be16 *)((char *)hdr + mp->m_dirblksize) - 1; + dup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free or is too short we can't do it. */ @@ -958,7 +954,7 @@ xfs_dir2_leaf_to_block( /* * Start converting it to block form. */ - block->hdr.magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); + hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); needlog = 1; needscan = 0; /* @@ -969,7 +965,7 @@ xfs_dir2_leaf_to_block( /* * Initialize the block tail. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); btp->count = cpu_to_be32(be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)); btp->stale = 0; xfs_dir2_block_log_tail(tp, dbp); @@ -988,7 +984,7 @@ xfs_dir2_leaf_to_block( * Scan the bestfree if we need it and log the data block header. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* @@ -1002,8 +998,8 @@ xfs_dir2_leaf_to_block( /* * Now see if the resulting block can be shrunken to shortform. */ - if ((size = xfs_dir2_block_sfsize(dp, block, &sfh)) > - XFS_IFORK_DSIZE(dp)) { + size = xfs_dir2_block_sfsize(dp, hdr, &sfh); + if (size > XFS_IFORK_DSIZE(dp)) { error = 0; goto out; } @@ -1025,6 +1021,7 @@ xfs_dir2_sf_to_block( { xfs_dir2_db_t blkno; /* dir-relative block # (0) */ xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ @@ -1095,7 +1092,8 @@ xfs_dir2_sf_to_block( return error; } block = bp->data; - block->hdr.magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); + hdr = &block->hdr; + hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); /* * Compute size of block "tail" area. */ @@ -1113,45 +1111,45 @@ xfs_dir2_sf_to_block( /* * Fill in the tail. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); btp->count = cpu_to_be32(sfp->count + 2); /* ., .. */ btp->stale = 0; blp = xfs_dir2_block_leaf_p(btp); - endoffset = (uint)((char *)blp - (char *)block); + endoffset = (uint)((char *)blp - (char *)hdr); /* * Remove the freespace, we'll manage it. */ xfs_dir2_data_use_free(tp, bp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), be16_to_cpu(dup->length), &needlog, &needscan); /* * Create entry for . */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + XFS_DIR2_DATA_DOT_OFFSET); + ((char *)hdr + XFS_DIR2_DATA_DOT_OFFSET); dep->inumber = cpu_to_be64(dp->i_ino); dep->namelen = 1; dep->name[0] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); blp[0].hashval = cpu_to_be32(xfs_dir_hash_dot); blp[0].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); /* * Create entry for .. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + XFS_DIR2_DATA_DOTDOT_OFFSET); + ((char *)hdr + XFS_DIR2_DATA_DOTDOT_OFFSET); dep->inumber = cpu_to_be64(xfs_dir2_sf_get_parent_ino(sfp)); dep->namelen = 2; dep->name[0] = dep->name[1] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); blp[1].hashval = cpu_to_be32(xfs_dir_hash_dotdot); blp[1].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); offset = XFS_DIR2_DATA_FIRST_OFFSET; /* * Loop over existing entries, stuff them in. @@ -1177,14 +1175,13 @@ xfs_dir2_sf_to_block( * There should be a hole here, make one. */ if (offset < newoffset) { - dup = (xfs_dir2_data_unused_t *) - ((char *)block + offset); + dup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); dup->length = cpu_to_be16(newoffset - offset); *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16( - ((char *)dup - (char *)block)); + ((char *)dup - (char *)hdr)); xfs_dir2_data_log_unused(tp, bp, dup); - (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)block, + (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)hdr, dup, &dummy); offset += be16_to_cpu(dup->length); continue; @@ -1192,20 +1189,20 @@ xfs_dir2_sf_to_block( /* * Copy a real entry. */ - dep = (xfs_dir2_data_entry_t *)((char *)block + newoffset); + dep = (xfs_dir2_data_entry_t *)((char *)hdr + newoffset); dep->inumber = cpu_to_be64(xfs_dir2_sfe_get_ino(sfp, sfep)); dep->namelen = sfep->namelen; memcpy(dep->name, sfep->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); name.name = sfep->name; name.len = sfep->namelen; blp[2 + i].hashval = cpu_to_be32(mp->m_dirnameops-> hashname(&name)); blp[2 + i].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); - offset = (int)((char *)(tagp + 1) - (char *)block); + (char *)dep - (char *)hdr)); + offset = (int)((char *)(tagp + 1) - (char *)hdr); if (++i == sfp->count) sfep = NULL; else Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-06-29 19:45:24.326965102 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:36.586734196 +0200 @@ -72,7 +72,7 @@ xfs_dir2_data_check( bf = d->hdr.bestfree; p = (char *)d->u; if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); lep = xfs_dir2_block_leaf_p(btp); endp = (char *)lep; } else @@ -348,7 +348,7 @@ xfs_dir2_data_freescan( */ p = (char *)d->u; if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); } else endp = (char *)d + mp->m_dirblksize; @@ -537,7 +537,7 @@ xfs_dir2_data_make_free( xfs_dir2_block_tail_t *btp; /* block tail */ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); endptr = (char *)xfs_dir2_block_leaf_p(btp); } /* Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:29:24.446740960 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:36.590067529 +0200 @@ -64,7 +64,7 @@ xfs_dir2_block_to_leaf( { __be16 *bestsp; /* leaf's bestsp entries */ xfs_dablk_t blkno; /* leaf block's bno */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block's leaf entries */ xfs_dir2_block_tail_t *btp; /* block's tail */ xfs_inode_t *dp; /* incore directory inode */ @@ -101,9 +101,9 @@ xfs_dir2_block_to_leaf( } ASSERT(lbp != NULL); leaf = lbp->data; - block = dbp->data; + hdr = dbp->data; xfs_dir2_data_check(dp, dbp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Set the counts in the leaf header. @@ -123,23 +123,23 @@ xfs_dir2_block_to_leaf( * tail be free. */ xfs_dir2_data_make_free(tp, dbp, - (xfs_dir2_data_aoff_t)((char *)blp - (char *)block), - (xfs_dir2_data_aoff_t)((char *)block + mp->m_dirblksize - + (xfs_dir2_data_aoff_t)((char *)blp - (char *)hdr), + (xfs_dir2_data_aoff_t)((char *)hdr + mp->m_dirblksize - (char *)blp), &needlog, &needscan); /* * Fix up the block header, make it a data block. */ - block->hdr.magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); + hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); /* * Set up leaf tail and bests table. */ ltp = xfs_dir2_leaf_tail_p(mp, leaf); ltp->bestcount = cpu_to_be32(1); bestsp = xfs_dir2_leaf_bests_p(ltp); - bestsp[0] = block->hdr.bestfree[0].length; + bestsp[0] = hdr->bestfree[0].length; /* * Log the data header and leaf bests table. */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:38:34.303400889 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:38:36.590067529 +0200 @@ -141,7 +141,7 @@ xfs_dir2_sfe_put_ino( int /* size for sf form */ xfs_dir2_block_sfsize( xfs_inode_t *dp, /* incore inode pointer */ - xfs_dir2_block_t *block, /* block directory data */ + xfs_dir2_data_hdr_t *hdr, /* block directory data */ xfs_dir2_sf_hdr_t *sfhp) /* output: header for sf form */ { xfs_dir2_dataptr_t addr; /* data entry address */ @@ -161,7 +161,7 @@ xfs_dir2_block_sfsize( mp = dp->i_mount; count = i8count = namelen = 0; - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* @@ -174,7 +174,7 @@ xfs_dir2_block_sfsize( * Calculate the pointer to the entry at hand. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, addr)); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, addr)); /* * Detect . and .., so we can special-case them. * . is not included in sf directories. @@ -255,6 +255,7 @@ xfs_dir2_block_to_sf( ASSERT(error != ENOSPC); goto out; } + /* * The buffer is now unconditionally gone, whether * xfs_dir2_shrink_inode worked or not. @@ -276,7 +277,7 @@ xfs_dir2_block_to_sf( /* * Set up to loop over the block's entries. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, &block->hdr); ptr = (char *)block->u; endptr = (char *)xfs_dir2_block_leaf_p(btp); sfep = xfs_dir2_sf_firstentry(sfp); Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:38:34.303400889 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:38:36.593400862 +0200 @@ -32,7 +32,7 @@ struct uio; struct xfs_dabuf; struct xfs_da_args; -struct xfs_dir2_block; +struct xfs_dir2_data_hdr; struct xfs_inode; struct xfs_mount; struct xfs_trans; @@ -134,7 +134,7 @@ extern xfs_ino_t xfs_dir2_sf_get_parent_ extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, - struct xfs_dir2_block *block, + struct xfs_dir2_data_hdr *block, xfs_dir2_sf_hdr_t *sfhp); extern int xfs_dir2_block_to_sf(struct xfs_da_args *args, struct xfs_dabuf *bp, int size, xfs_dir2_sf_hdr_t *sfhp); Index: xfs/fs/xfs/xfs_dir2_block.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.h 2011-06-29 19:45:24.376964832 +0200 +++ xfs/fs/xfs/xfs_dir2_block.h 2011-06-30 09:38:36.596734195 +0200 @@ -61,10 +61,9 @@ typedef struct xfs_dir2_block { * Pointer to the leaf header embedded in a data block (1-block format) */ static inline xfs_dir2_block_tail_t * -xfs_dir2_block_tail_p(struct xfs_mount *mp, xfs_dir2_block_t *block) +xfs_dir2_block_tail_p(struct xfs_mount *mp, xfs_dir2_data_hdr_t *hdr) { - return (((xfs_dir2_block_tail_t *) - ((char *)(block) + (mp)->m_dirblksize)) - 1); + return ((xfs_dir2_block_tail_t *)((char *)hdr + mp->m_dirblksize)) - 1; } /* From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 04:46:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_36, J_CHICKENPOX_43,J_CHICKENPOX_62,J_CHICKENPOX_63,J_CHICKENPOX_64, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p619k9OU056163 for ; Fri, 1 Jul 2011 04:46:11 -0500 X-ASG-Debug-ID: 1309513566-63ae03bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BB661466AC for ; Fri, 1 Jul 2011 02:46:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 4ybVjPdfBcRe3XZH for ; Fri, 01 Jul 2011 02:46:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcaIY-0001yo-1U for xfs@oss.sgi.com; Fri, 01 Jul 2011 09:46:06 +0000 Message-Id: <20110701094606.003170984@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Fri, 01 Jul 2011 05:43:39 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Subject: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data References: <20110701094321.936534538@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-xfs_dir2_data_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309513566 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67645 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_data instead of the full structure. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-06-29 19:45:24.010300152 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-06-30 09:38:40.126734150 +0200 @@ -2079,16 +2079,13 @@ xfs_da_do_buf( * For read_buf, check the magic number. */ if (caller == 1) { - xfs_dir2_data_t *data; - xfs_dir2_free_t *free; - xfs_da_blkinfo_t *info; + xfs_dir2_data_hdr_t *hdr = rbp->data; + xfs_dir2_free_t *free = rbp->data; + xfs_da_blkinfo_t *info = rbp->data; uint magic, magic1; - info = rbp->data; - data = rbp->data; - free = rbp->data; magic = be16_to_cpu(info->magic); - magic1 = be32_to_cpu(data->hdr.magic); + magic1 = be32_to_cpu(hdr->magic); if (unlikely( XFS_TEST_ERROR((magic != XFS_DA_NODE_MAGIC) && (magic != XFS_ATTR_LEAF_MAGIC) && Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:38:38.120067509 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:38:40.130067486 +0200 @@ -282,7 +282,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); needscan = 0; } } @@ -331,8 +331,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, - &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); needscan = 0; } /* @@ -417,7 +416,7 @@ xfs_dir2_block_addname( * Clean up the bestfree array and log the header, tail, and entry. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_block_log_tail(tp, bp); @@ -783,7 +782,7 @@ xfs_dir2_block_removename( * Fix up bestfree, log the header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_data_check(dp, bp); @@ -982,7 +981,7 @@ xfs_dir2_leaf_to_block( * Scan the bestfree if we need it and log the data block header. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* @@ -1177,8 +1176,7 @@ xfs_dir2_sf_to_block( *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16( ((char *)dup - (char *)hdr)); xfs_dir2_data_log_unused(tp, bp, dup); - (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)hdr, - dup, &dummy); + (void)xfs_dir2_data_freeinsert(hdr, dup, &dummy); offset += be16_to_cpu(dup->length); continue; } Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:36.586734196 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:40.133400821 +0200 @@ -35,6 +35,9 @@ #include "xfs_dir2_block.h" #include "xfs_error.h" +STATIC xfs_dir2_data_free_t * +xfs_dir2_data_freefind(xfs_dir2_data_hdr_t *hdr, xfs_dir2_data_unused_t *dup); + #ifdef DEBUG /* * Check the consistency of the data block. @@ -51,6 +54,7 @@ xfs_dir2_data_check( xfs_dir2_block_tail_t *btp=NULL; /* block tail */ int count; /* count of entries found */ xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_free_t *dfp; /* bestfree entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ @@ -67,16 +71,19 @@ xfs_dir2_data_check( mp = dp->i_mount; d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - bf = d->hdr.bestfree; + hdr = &d->hdr; + bf = hdr->bestfree; p = (char *)d->u; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { + btp = xfs_dir2_block_tail_p(mp, hdr); lep = xfs_dir2_block_leaf_p(btp); endp = (char *)lep; - } else - endp = (char *)d + mp->m_dirblksize; + } else { + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)); + endp = (char *)hdr + mp->m_dirblksize; + } + count = lastfree = freeseen = 0; /* * Account for zero bestfree entries. @@ -108,8 +115,8 @@ xfs_dir2_data_check( if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) { ASSERT(lastfree == 0); ASSERT(be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)) == - (char *)dup - (char *)d); - dfp = xfs_dir2_data_freefind(d, dup); + (char *)dup - (char *)hdr); + dfp = xfs_dir2_data_freefind(hdr, dup); if (dfp) { i = (int)(dfp - bf); ASSERT((freeseen & (1 << i)) == 0); @@ -132,13 +139,13 @@ xfs_dir2_data_check( ASSERT(dep->namelen != 0); ASSERT(xfs_dir_ino_validate(mp, be64_to_cpu(dep->inumber)) == 0); ASSERT(be16_to_cpu(*xfs_dir2_data_entry_tag_p(dep)) == - (char *)dep - (char *)d); + (char *)dep - (char *)hdr); count++; lastfree = 0; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { addr = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, (xfs_dir2_data_aoff_t) - ((char *)dep - (char *)d)); + ((char *)dep - (char *)hdr)); name.name = dep->name; name.len = dep->namelen; hash = mp->m_dirnameops->hashname(&name); @@ -155,7 +162,7 @@ xfs_dir2_data_check( * Need to have seen all the entries and all the bestfree slots. */ ASSERT(freeseen == 7); - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { for (i = stale = 0; i < be32_to_cpu(btp->count); i++) { if (be32_to_cpu(lep[i].address) == XFS_DIR2_NULL_DATAPTR) stale++; @@ -172,9 +179,9 @@ xfs_dir2_data_check( * Given a data block and an unused entry from that block, * return the bestfree entry if any that corresponds to it. */ -xfs_dir2_data_free_t * +STATIC xfs_dir2_data_free_t * xfs_dir2_data_freefind( - xfs_dir2_data_t *d, /* data block */ + xfs_dir2_data_hdr_t *hdr, /* data block */ xfs_dir2_data_unused_t *dup) /* data unused entry */ { xfs_dir2_data_free_t *dfp; /* bestfree entry */ @@ -184,17 +191,17 @@ xfs_dir2_data_freefind( int seenzero; /* saw a 0 bestfree entry */ #endif - off = (xfs_dir2_data_aoff_t)((char *)dup - (char *)d); + off = (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr); #if defined(DEBUG) && defined(__KERNEL__) /* * Validate some consistency in the bestfree table. * Check order, non-overlapping entries, and if we find the * one we're looking for it has to be exact. */ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - for (dfp = &d->hdr.bestfree[0], seenzero = matched = 0; - dfp < &d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT]; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + for (dfp = &hdr->bestfree[0], seenzero = matched = 0; + dfp < &hdr->bestfree[XFS_DIR2_DATA_FD_COUNT]; dfp++) { if (!dfp->offset) { ASSERT(!dfp->length); @@ -210,7 +217,7 @@ xfs_dir2_data_freefind( else ASSERT(be16_to_cpu(dfp->offset) + be16_to_cpu(dfp->length) <= off); ASSERT(matched || be16_to_cpu(dfp->length) >= be16_to_cpu(dup->length)); - if (dfp > &d->hdr.bestfree[0]) + if (dfp > &hdr->bestfree[0]) ASSERT(be16_to_cpu(dfp[-1].length) >= be16_to_cpu(dfp[0].length)); } #endif @@ -219,13 +226,13 @@ xfs_dir2_data_freefind( * it can't be there since they're sorted. */ if (be16_to_cpu(dup->length) < - be16_to_cpu(d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length)) + be16_to_cpu(hdr->bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length)) return NULL; /* * Look at the three bestfree entries for our guy. */ - for (dfp = &d->hdr.bestfree[0]; - dfp < &d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT]; + for (dfp = &hdr->bestfree[0]; + dfp < &hdr->bestfree[XFS_DIR2_DATA_FD_COUNT]; dfp++) { if (!dfp->offset) return NULL; @@ -243,7 +250,7 @@ xfs_dir2_data_freefind( */ xfs_dir2_data_free_t * /* entry inserted */ xfs_dir2_data_freeinsert( - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block pointer */ xfs_dir2_data_unused_t *dup, /* unused space */ int *loghead) /* log the data header (out) */ { @@ -251,12 +258,13 @@ xfs_dir2_data_freeinsert( xfs_dir2_data_free_t new; /* new bestfree entry */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); #endif - dfp = d->hdr.bestfree; + dfp = hdr->bestfree; new.length = dup->length; - new.offset = cpu_to_be16((char *)dup - (char *)d); + new.offset = cpu_to_be16((char *)dup - (char *)hdr); + /* * Insert at position 0, 1, or 2; or not at all. */ @@ -286,36 +294,36 @@ xfs_dir2_data_freeinsert( */ STATIC void xfs_dir2_data_freeremove( - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block header */ xfs_dir2_data_free_t *dfp, /* bestfree entry pointer */ int *loghead) /* out: log data header */ { #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); #endif /* * It's the first entry, slide the next 2 up. */ - if (dfp == &d->hdr.bestfree[0]) { - d->hdr.bestfree[0] = d->hdr.bestfree[1]; - d->hdr.bestfree[1] = d->hdr.bestfree[2]; + if (dfp == &hdr->bestfree[0]) { + hdr->bestfree[0] = hdr->bestfree[1]; + hdr->bestfree[1] = hdr->bestfree[2]; } /* * It's the second entry, slide the 3rd entry up. */ - else if (dfp == &d->hdr.bestfree[1]) - d->hdr.bestfree[1] = d->hdr.bestfree[2]; + else if (dfp == &hdr->bestfree[1]) + hdr->bestfree[1] = hdr->bestfree[2]; /* * Must be the last entry. */ else - ASSERT(dfp == &d->hdr.bestfree[2]); + ASSERT(dfp == &hdr->bestfree[2]); /* * Clear the 3rd entry, must be zero now. */ - d->hdr.bestfree[2].length = 0; - d->hdr.bestfree[2].offset = 0; + hdr->bestfree[2].length = 0; + hdr->bestfree[2].offset = 0; *loghead = 1; } @@ -325,9 +333,10 @@ xfs_dir2_data_freeremove( void xfs_dir2_data_freescan( xfs_mount_t *mp, /* filesystem mount point */ - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block header */ int *loghead) /* out: log data header */ { + xfs_dir2_data_t *d = (xfs_dir2_data_t *)hdr; xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* active data entry */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -335,23 +344,23 @@ xfs_dir2_data_freescan( char *p; /* current entry pointer */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); #endif /* * Start by clearing the table. */ - memset(d->hdr.bestfree, 0, sizeof(d->hdr.bestfree)); + memset(hdr->bestfree, 0, sizeof(hdr->bestfree)); *loghead = 1; /* * Set up pointers. */ p = (char *)d->u; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + btp = xfs_dir2_block_tail_p(mp, hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); } else - endp = (char *)d + mp->m_dirblksize; + endp = (char *)hdr + mp->m_dirblksize; /* * Loop over the block's entries. */ @@ -361,9 +370,9 @@ xfs_dir2_data_freescan( * If it's a free entry, insert it. */ if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) { - ASSERT((char *)dup - (char *)d == + ASSERT((char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); - xfs_dir2_data_freeinsert(d, dup, loghead); + xfs_dir2_data_freeinsert(hdr, dup, loghead); p += be16_to_cpu(dup->length); } /* @@ -371,7 +380,7 @@ xfs_dir2_data_freescan( */ else { dep = (xfs_dir2_data_entry_t *)p; - ASSERT((char *)dep - (char *)d == + ASSERT((char *)dep - (char *)hdr == be16_to_cpu(*xfs_dir2_data_entry_tag_p(dep))); p += xfs_dir2_data_entsize(dep->namelen); } @@ -390,6 +399,7 @@ xfs_dir2_data_init( { xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_data_t *d; /* pointer to block */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused entry pointer */ int error; /* error return value */ @@ -410,26 +420,29 @@ xfs_dir2_data_init( return error; } ASSERT(bp != NULL); + /* * Initialize the header. */ d = bp->data; - d->hdr.magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); - d->hdr.bestfree[0].offset = cpu_to_be16(sizeof(d->hdr)); + hdr = &d->hdr; + hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); + hdr->bestfree[0].offset = cpu_to_be16(sizeof(*hdr)); for (i = 1; i < XFS_DIR2_DATA_FD_COUNT; i++) { - d->hdr.bestfree[i].length = 0; - d->hdr.bestfree[i].offset = 0; + hdr->bestfree[i].length = 0; + hdr->bestfree[i].offset = 0; } + /* * Set up an unused entry for the block's body. */ dup = &d->u[0].unused; dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); - t=mp->m_dirblksize - (uint)sizeof(d->hdr); - d->hdr.bestfree[0].length = cpu_to_be16(t); + t = mp->m_dirblksize - (uint)sizeof(*hdr); + hdr->bestfree[0].length = cpu_to_be16(t); dup->length = cpu_to_be16(t); - *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16((char *)dup - (char *)d); + *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16((char *)dup - (char *)hdr); /* * Log it and return it. */ @@ -448,14 +461,14 @@ xfs_dir2_data_log_entry( xfs_dabuf_t *bp, /* block buffer */ xfs_dir2_data_entry_t *dep) /* data entry pointer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)d), + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); + + xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)hdr), (uint)((char *)(xfs_dir2_data_entry_tag_p(dep) + 1) - - (char *)d - 1)); + (char *)hdr - 1)); } /* @@ -466,13 +479,12 @@ xfs_dir2_data_log_header( xfs_trans_t *tp, /* transaction pointer */ xfs_dabuf_t *bp) /* block buffer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - xfs_da_log_buf(tp, bp, (uint)((char *)&d->hdr - (char *)d), - (uint)(sizeof(d->hdr) - 1)); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); + + xfs_da_log_buf(tp, bp, 0, sizeof(*hdr) - 1); } /* @@ -484,23 +496,23 @@ xfs_dir2_data_log_unused( xfs_dabuf_t *bp, /* block buffer */ xfs_dir2_data_unused_t *dup) /* data unused pointer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; + + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); /* * Log the first part of the unused entry. */ - xfs_da_log_buf(tp, bp, (uint)((char *)dup - (char *)d), + xfs_da_log_buf(tp, bp, (uint)((char *)dup - (char *)hdr), (uint)((char *)&dup->length + sizeof(dup->length) - - 1 - (char *)d)); + 1 - (char *)hdr)); /* * Log the end (tag) of the unused entry. */ xfs_da_log_buf(tp, bp, - (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)d), - (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)d + + (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)hdr), + (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)hdr + sizeof(xfs_dir2_data_off_t) - 1)); } @@ -517,7 +529,7 @@ xfs_dir2_data_make_free( int *needlogp, /* out: log header */ int *needscanp) /* out: regen bestfree */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr; /* data block pointer */ xfs_dir2_data_free_t *dfp; /* bestfree pointer */ char *endptr; /* end of data area */ xfs_mount_t *mp; /* filesystem mount point */ @@ -527,28 +539,29 @@ xfs_dir2_data_make_free( xfs_dir2_data_unused_t *prevdup; /* unused entry before us */ mp = tp->t_mountp; - d = bp->data; + hdr = bp->data; + /* * Figure out where the end of the data area is. */ - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC) - endptr = (char *)d + mp->m_dirblksize; + if (hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)) + endptr = (char *)hdr + mp->m_dirblksize; else { xfs_dir2_block_tail_t *btp; /* block tail */ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); + btp = xfs_dir2_block_tail_p(mp, hdr); endptr = (char *)xfs_dir2_block_leaf_p(btp); } /* * If this isn't the start of the block, then back up to * the previous entry and see if it's free. */ - if (offset > sizeof(d->hdr)) { + if (offset > sizeof(*hdr)) { __be16 *tagp; /* tag just before us */ - tagp = (__be16 *)((char *)d + offset) - 1; - prevdup = (xfs_dir2_data_unused_t *)((char *)d + be16_to_cpu(*tagp)); + tagp = (__be16 *)((char *)hdr + offset) - 1; + prevdup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); if (be16_to_cpu(prevdup->freetag) != XFS_DIR2_DATA_FREE_TAG) prevdup = NULL; } else @@ -557,9 +570,9 @@ xfs_dir2_data_make_free( * If this isn't the end of the block, see if the entry after * us is free. */ - if ((char *)d + offset + len < endptr) { + if ((char *)hdr + offset + len < endptr) { postdup = - (xfs_dir2_data_unused_t *)((char *)d + offset + len); + (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); if (be16_to_cpu(postdup->freetag) != XFS_DIR2_DATA_FREE_TAG) postdup = NULL; } else @@ -576,21 +589,21 @@ xfs_dir2_data_make_free( /* * See if prevdup and/or postdup are in bestfree table. */ - dfp = xfs_dir2_data_freefind(d, prevdup); - dfp2 = xfs_dir2_data_freefind(d, postdup); + dfp = xfs_dir2_data_freefind(hdr, prevdup); + dfp2 = xfs_dir2_data_freefind(hdr, postdup); /* * We need a rescan unless there are exactly 2 free entries * namely our two. Then we know what's happening, otherwise * since the third bestfree is there, there might be more * entries. */ - needscan = (d->hdr.bestfree[2].length != 0); + needscan = (hdr->bestfree[2].length != 0); /* * Fix up the new big freespace. */ be16_add_cpu(&prevdup->length, len + be16_to_cpu(postdup->length)); *xfs_dir2_data_unused_tag_p(prevdup) = - cpu_to_be16((char *)prevdup - (char *)d); + cpu_to_be16((char *)prevdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, prevdup); if (!needscan) { /* @@ -600,18 +613,18 @@ xfs_dir2_data_make_free( * Remove entry 1 first then entry 0. */ ASSERT(dfp && dfp2); - if (dfp == &d->hdr.bestfree[1]) { - dfp = &d->hdr.bestfree[0]; + if (dfp == &hdr->bestfree[1]) { + dfp = &hdr->bestfree[0]; ASSERT(dfp2 == dfp); - dfp2 = &d->hdr.bestfree[1]; + dfp2 = &hdr->bestfree[1]; } - xfs_dir2_data_freeremove(d, dfp2, needlogp); - xfs_dir2_data_freeremove(d, dfp, needlogp); + xfs_dir2_data_freeremove(hdr, dfp2, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); /* * Now insert the new entry. */ - dfp = xfs_dir2_data_freeinsert(d, prevdup, needlogp); - ASSERT(dfp == &d->hdr.bestfree[0]); + dfp = xfs_dir2_data_freeinsert(hdr, prevdup, needlogp); + ASSERT(dfp == &hdr->bestfree[0]); ASSERT(dfp->length == prevdup->length); ASSERT(!dfp[1].length); ASSERT(!dfp[2].length); @@ -621,10 +634,10 @@ xfs_dir2_data_make_free( * The entry before us is free, merge with it. */ else if (prevdup) { - dfp = xfs_dir2_data_freefind(d, prevdup); + dfp = xfs_dir2_data_freefind(hdr, prevdup); be16_add_cpu(&prevdup->length, len); *xfs_dir2_data_unused_tag_p(prevdup) = - cpu_to_be16((char *)prevdup - (char *)d); + cpu_to_be16((char *)prevdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, prevdup); /* * If the previous entry was in the table, the new entry @@ -632,27 +645,27 @@ xfs_dir2_data_make_free( * the old one and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, prevdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + (void)xfs_dir2_data_freeinsert(hdr, prevdup, needlogp); } /* * Otherwise we need a scan if the new entry is big enough. */ else { needscan = be16_to_cpu(prevdup->length) > - be16_to_cpu(d->hdr.bestfree[2].length); + be16_to_cpu(hdr->bestfree[2].length); } } /* * The following entry is free, merge with it. */ else if (postdup) { - dfp = xfs_dir2_data_freefind(d, postdup); - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset); + dfp = xfs_dir2_data_freefind(hdr, postdup); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(len + be16_to_cpu(postdup->length)); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If the following entry was in the table, the new entry @@ -660,28 +673,28 @@ xfs_dir2_data_make_free( * the old one and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + (void)xfs_dir2_data_freeinsert(hdr, newdup, needlogp); } /* * Otherwise we need a scan if the new entry is big enough. */ else { needscan = be16_to_cpu(newdup->length) > - be16_to_cpu(d->hdr.bestfree[2].length); + be16_to_cpu(hdr->bestfree[2].length); } } /* * Neither neighbor is free. Make a new entry. */ else { - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(len); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); - (void)xfs_dir2_data_freeinsert(d, newdup, needlogp); + (void)xfs_dir2_data_freeinsert(hdr, newdup, needlogp); } *needscanp = needscan; } @@ -699,7 +712,7 @@ xfs_dir2_data_use_free( int *needlogp, /* out: need to log header */ int *needscanp) /* out: need regen bestfree */ { - xfs_dir2_data_t *d; /* data block */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_free_t *dfp; /* bestfree pointer */ int matchback; /* matches end of freespace */ int matchfront; /* matches start of freespace */ @@ -708,24 +721,24 @@ xfs_dir2_data_use_free( xfs_dir2_data_unused_t *newdup2; /* another new unused entry */ int oldlen; /* old unused entry's length */ - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + hdr = bp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); ASSERT(be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG); - ASSERT(offset >= (char *)dup - (char *)d); - ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)d); - ASSERT((char *)dup - (char *)d == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); + ASSERT(offset >= (char *)dup - (char *)hdr); + ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)hdr); + ASSERT((char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); /* * Look up the entry in the bestfree table. */ - dfp = xfs_dir2_data_freefind(d, dup); + dfp = xfs_dir2_data_freefind(hdr, dup); oldlen = be16_to_cpu(dup->length); - ASSERT(dfp || oldlen <= be16_to_cpu(d->hdr.bestfree[2].length)); + ASSERT(dfp || oldlen <= be16_to_cpu(hdr->bestfree[2].length)); /* * Check for alignment with front and back of the entry. */ - matchfront = (char *)dup - (char *)d == offset; - matchback = (char *)dup + oldlen - (char *)d == offset + len; + matchfront = (char *)dup - (char *)hdr == offset; + matchback = (char *)dup + oldlen - (char *)hdr == offset + len; ASSERT(*needscanp == 0); needscan = 0; /* @@ -734,9 +747,9 @@ xfs_dir2_data_use_free( */ if (matchfront && matchback) { if (dfp) { - needscan = (d->hdr.bestfree[2].offset != 0); + needscan = (hdr->bestfree[2].offset != 0); if (!needscan) - xfs_dir2_data_freeremove(d, dfp, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); } } /* @@ -744,27 +757,27 @@ xfs_dir2_data_use_free( * Make a new entry with the remaining freespace. */ else if (matchfront) { - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset + len); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(oldlen - len); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If it was in the table, remove it and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + dfp = xfs_dir2_data_freeinsert(hdr, newdup, needlogp); ASSERT(dfp != NULL); ASSERT(dfp->length == newdup->length); - ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d); + ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)hdr); /* * If we got inserted at the last slot, * that means we don't know if there was a better * choice for the last slot, or not. Rescan. */ - needscan = dfp == &d->hdr.bestfree[2]; + needscan = dfp == &hdr->bestfree[2]; } } /* @@ -773,25 +786,25 @@ xfs_dir2_data_use_free( */ else if (matchback) { newdup = dup; - newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup); + newdup->length = cpu_to_be16(((char *)hdr + offset) - (char *)newdup); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If it was in the table, remove it and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + dfp = xfs_dir2_data_freeinsert(hdr, newdup, needlogp); ASSERT(dfp != NULL); ASSERT(dfp->length == newdup->length); - ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d); + ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)hdr); /* * If we got inserted at the last slot, * that means we don't know if there was a better * choice for the last slot, or not. Rescan. */ - needscan = dfp == &d->hdr.bestfree[2]; + needscan = dfp == &hdr->bestfree[2]; } } /* @@ -800,15 +813,15 @@ xfs_dir2_data_use_free( */ else { newdup = dup; - newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup); + newdup->length = cpu_to_be16(((char *)hdr + offset) - (char *)newdup); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); - newdup2 = (xfs_dir2_data_unused_t *)((char *)d + offset + len); + newdup2 = (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); newdup2->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup2->length = cpu_to_be16(oldlen - len - be16_to_cpu(newdup->length)); *xfs_dir2_data_unused_tag_p(newdup2) = - cpu_to_be16((char *)newdup2 - (char *)d); + cpu_to_be16((char *)newdup2 - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup2); /* * If the old entry was in the table, we need to scan @@ -819,12 +832,12 @@ xfs_dir2_data_use_free( * the 2 new will work. */ if (dfp) { - needscan = (d->hdr.bestfree[2].length != 0); + needscan = (hdr->bestfree[2].length != 0); if (!needscan) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup, + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + (void)xfs_dir2_data_freeinsert(hdr, newdup, needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup2, + (void)xfs_dir2_data_freeinsert(hdr, newdup2, needlogp); } } Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-06-29 19:45:24.043633305 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-06-30 09:38:40.136734154 +0200 @@ -157,12 +157,10 @@ extern void xfs_dir2_data_check(struct x #else #define xfs_dir2_data_check(dp,bp) #endif -extern xfs_dir2_data_free_t *xfs_dir2_data_freefind(xfs_dir2_data_t *d, - xfs_dir2_data_unused_t *dup); -extern xfs_dir2_data_free_t *xfs_dir2_data_freeinsert(xfs_dir2_data_t *d, +extern xfs_dir2_data_free_t *xfs_dir2_data_freeinsert(xfs_dir2_data_hdr_t *hdr, xfs_dir2_data_unused_t *dup, int *loghead); -extern void xfs_dir2_data_freescan(struct xfs_mount *mp, xfs_dir2_data_t *d, - int *loghead); +extern void xfs_dir2_data_freescan(struct xfs_mount *mp, + xfs_dir2_data_hdr_t *hdr, int *loghead); extern int xfs_dir2_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno, struct xfs_dabuf **bpp); extern void xfs_dir2_data_log_entry(struct xfs_trans *tp, struct xfs_dabuf *bp, Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:36.590067529 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:38:40.140067486 +0200 @@ -132,7 +132,7 @@ xfs_dir2_block_to_leaf( */ hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Set up leaf tail and bests table. */ @@ -278,7 +278,7 @@ xfs_dir2_leaf_addname( { __be16 *bestsp; /* freespace table in leaf */ int compact; /* need to compact leaves */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data block entry */ xfs_inode_t *dp; /* incore directory inode */ @@ -486,8 +486,8 @@ xfs_dir2_leaf_addname( */ else xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); - data = dbp->data; - bestsp[use_block] = data->hdr.bestfree[0].length; + hdr = dbp->data; + bestsp[use_block] = hdr->bestfree[0].length; grown = 1; } /* @@ -501,7 +501,7 @@ xfs_dir2_leaf_addname( xfs_da_brelse(tp, lbp); return error; } - data = dbp->data; + hdr = dbp->data; grown = 0; } xfs_dir2_data_check(dp, dbp); @@ -509,14 +509,14 @@ xfs_dir2_leaf_addname( * Point to the biggest freespace in our data block. */ dup = (xfs_dir2_data_unused_t *) - ((char *)data + be16_to_cpu(data->hdr.bestfree[0].offset)); + ((char *)hdr + be16_to_cpu(hdr->bestfree[0].offset)); ASSERT(be16_to_cpu(dup->length) >= length); needscan = needlog = 0; /* * Mark the initial part of our freespace in use for the new entry. */ xfs_dir2_data_use_free(tp, dbp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)data), length, + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), length, &needlog, &needscan); /* * Initialize our new entry (at last). @@ -526,12 +526,12 @@ xfs_dir2_leaf_addname( dep->namelen = args->namelen; memcpy(dep->name, args->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)data); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); /* * Need to scan fix up the bestfree table. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Need to log the data block's header. */ @@ -542,8 +542,8 @@ xfs_dir2_leaf_addname( * If the bests table needs to be changed, do it. * Log the change unless we've already done that. */ - if (be16_to_cpu(bestsp[use_block]) != be16_to_cpu(data->hdr.bestfree[0].length)) { - bestsp[use_block] = data->hdr.bestfree[0].length; + if (be16_to_cpu(bestsp[use_block]) != be16_to_cpu(hdr->bestfree[0].length)) { + bestsp[use_block] = hdr->bestfree[0].length; if (!grown) xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); } @@ -786,6 +786,7 @@ xfs_dir2_leaf_getdents( xfs_dir2_db_t curdb; /* db for current block */ xfs_dir2_off_t curoff; /* current overall offset */ xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ int error = 0; /* error return value */ @@ -1044,6 +1045,7 @@ xfs_dir2_leaf_getdents( ASSERT(xfs_dir2_byte_to_db(mp, curoff) == curdb); data = bp->data; + hdr = &data->hdr; xfs_dir2_data_check(dp, bp); /* * Find our position in the block. @@ -1054,12 +1056,12 @@ xfs_dir2_leaf_getdents( * Skip past the header. */ if (byteoff == 0) - curoff += (uint)sizeof(data->hdr); + curoff += (uint)sizeof(*hdr); /* * Skip past entries until we reach our offset. */ else { - while ((char *)ptr - (char *)data < byteoff) { + while ((char *)ptr - (char *)hdr < byteoff) { dup = (xfs_dir2_data_unused_t *)ptr; if (be16_to_cpu(dup->freetag) @@ -1080,8 +1082,8 @@ xfs_dir2_leaf_getdents( curoff = xfs_dir2_db_off_to_byte(mp, xfs_dir2_byte_to_db(mp, curoff), - (char *)ptr - (char *)data); - if (ptr >= (char *)data + mp->m_dirblksize) { + (char *)ptr - (char *)hdr); + if (ptr >= (char *)hdr + mp->m_dirblksize) { continue; } } @@ -1462,7 +1464,7 @@ xfs_dir2_leaf_removename( xfs_da_args_t *args) /* operation arguments */ { __be16 *bestsp; /* leaf block best freespace */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t db; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data entry structure */ @@ -1492,7 +1494,7 @@ xfs_dir2_leaf_removename( tp = args->trans; mp = dp->i_mount; leaf = lbp->data; - data = dbp->data; + hdr = dbp->data; xfs_dir2_data_check(dp, dbp); /* * Point to the leaf entry, use that to point to the data entry. @@ -1500,9 +1502,9 @@ xfs_dir2_leaf_removename( lep = &leaf->ents[index]; db = xfs_dir2_dataptr_to_db(mp, be32_to_cpu(lep->address)); dep = (xfs_dir2_data_entry_t *) - ((char *)data + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(lep->address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(lep->address))); needscan = needlog = 0; - oldbest = be16_to_cpu(data->hdr.bestfree[0].length); + oldbest = be16_to_cpu(hdr->bestfree[0].length); ltp = xfs_dir2_leaf_tail_p(mp, leaf); bestsp = xfs_dir2_leaf_bests_p(ltp); ASSERT(be16_to_cpu(bestsp[db]) == oldbest); @@ -1510,7 +1512,7 @@ xfs_dir2_leaf_removename( * Mark the former data entry unused. */ xfs_dir2_data_make_free(tp, dbp, - (xfs_dir2_data_aoff_t)((char *)dep - (char *)data), + (xfs_dir2_data_aoff_t)((char *)dep - (char *)hdr), xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); /* * We just mark the leaf entry stale by putting a null in it. @@ -1524,23 +1526,23 @@ xfs_dir2_leaf_removename( * log the data block header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* * If the longest freespace in the data block has changed, * put the new value in the bests table and log that. */ - if (be16_to_cpu(data->hdr.bestfree[0].length) != oldbest) { - bestsp[db] = data->hdr.bestfree[0].length; + if (be16_to_cpu(hdr->bestfree[0].length) != oldbest) { + bestsp[db] = hdr->bestfree[0].length; xfs_dir2_leaf_log_bests(tp, lbp, db, db); } xfs_dir2_data_check(dp, dbp); /* * If the data block is now empty then get rid of the data block. */ - if (be16_to_cpu(data->hdr.bestfree[0].length) == - mp->m_dirblksize - (uint)sizeof(data->hdr)) { + if (be16_to_cpu(hdr->bestfree[0].length) == + mp->m_dirblksize - (uint)sizeof(*hdr)) { ASSERT(db != mp->m_dirdatablk); if ((error = xfs_dir2_shrink_inode(args, db, dbp))) { /* @@ -1711,9 +1713,6 @@ xfs_dir2_leaf_trim_data( xfs_dir2_db_t db) /* data block number */ { __be16 *bestsp; /* leaf bests table */ -#ifdef DEBUG - xfs_dir2_data_t *data; /* data block structure */ -#endif xfs_dabuf_t *dbp; /* data block buffer */ xfs_inode_t *dp; /* incore directory inode */ int error; /* error return value */ @@ -1732,20 +1731,21 @@ xfs_dir2_leaf_trim_data( XFS_DATA_FORK))) { return error; } -#ifdef DEBUG - data = dbp->data; - ASSERT(be32_to_cpu(data->hdr.magic) == XFS_DIR2_DATA_MAGIC); -#endif - /* this seems to be an error - * data is only valid if DEBUG is defined? - * RMC 09/08/1999 - */ leaf = lbp->data; ltp = xfs_dir2_leaf_tail_p(mp, leaf); - ASSERT(be16_to_cpu(data->hdr.bestfree[0].length) == - mp->m_dirblksize - (uint)sizeof(data->hdr)); + +#ifdef DEBUG +{ + struct xfs_dir2_data_hdr *hdr = dbp->data; + + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); + ASSERT(be16_to_cpu(hdr->bestfree[0].length) == + mp->m_dirblksize - (uint)sizeof(*hdr)); ASSERT(db == be32_to_cpu(ltp->bestcount) - 1); +} +#endif + /* * Get rid of the data block. */ Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-06-30 09:27:19.103409194 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-06-30 09:38:40.143400818 +0200 @@ -842,7 +842,7 @@ xfs_dir2_leafn_remove( xfs_da_state_blk_t *dblk, /* data block */ int *rval) /* resulting block needs join */ { - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t db; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data block entry */ @@ -887,9 +887,9 @@ xfs_dir2_leafn_remove( * in the data block in case it changes. */ dbp = dblk->bp; - data = dbp->data; - dep = (xfs_dir2_data_entry_t *)((char *)data + off); - longest = be16_to_cpu(data->hdr.bestfree[0].length); + hdr = dbp->data; + dep = (xfs_dir2_data_entry_t *)((char *)hdr + off); + longest = be16_to_cpu(hdr->bestfree[0].length); needlog = needscan = 0; xfs_dir2_data_make_free(tp, dbp, off, xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); @@ -898,7 +898,7 @@ xfs_dir2_leafn_remove( * Log the data block header if needed. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); xfs_dir2_data_check(dp, dbp); @@ -906,7 +906,7 @@ xfs_dir2_leafn_remove( * If the longest data block freespace changes, need to update * the corresponding freeblock entry. */ - if (longest < be16_to_cpu(data->hdr.bestfree[0].length)) { + if (longest < be16_to_cpu(hdr->bestfree[0].length)) { int error; /* error return value */ xfs_dabuf_t *fbp; /* freeblock buffer */ xfs_dir2_db_t fdb; /* freeblock block number */ @@ -932,19 +932,19 @@ xfs_dir2_leafn_remove( * Calculate which entry we need to fix. */ findex = xfs_dir2_db_to_fdindex(mp, db); - longest = be16_to_cpu(data->hdr.bestfree[0].length); + longest = be16_to_cpu(hdr->bestfree[0].length); /* * If the data block is now empty we can get rid of it * (usually). */ - if (longest == mp->m_dirblksize - (uint)sizeof(data->hdr)) { + if (longest == mp->m_dirblksize - (uint)sizeof(*hdr)) { /* * Try to punch out the data block. */ error = xfs_dir2_shrink_inode(args, db, dbp); if (error == 0) { dblk->bp = NULL; - data = NULL; + hdr = NULL; } /* * We can get ENOSPC if there's no space reservation. @@ -960,7 +960,7 @@ xfs_dir2_leafn_remove( * If we got rid of the data block, we can eliminate that entry * in the free block. */ - if (data == NULL) { + if (hdr == NULL) { /* * One less used entry in the free table. */ @@ -1356,7 +1356,7 @@ xfs_dir2_node_addname_int( xfs_da_args_t *args, /* operation arguments */ xfs_da_state_blk_t *fblk) /* optional freespace block */ { - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t dbno; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data entry pointer */ @@ -1641,8 +1641,8 @@ xfs_dir2_node_addname_int( * We haven't allocated the data entry yet so this will * change again. */ - data = dbp->data; - free->bests[findex] = data->hdr.bestfree[0].length; + hdr = dbp->data; + free->bests[findex] = hdr->bestfree[0].length; logfree = 1; } /* @@ -1667,21 +1667,21 @@ xfs_dir2_node_addname_int( xfs_da_buf_done(fbp); return error; } - data = dbp->data; + hdr = dbp->data; logfree = 0; } - ASSERT(be16_to_cpu(data->hdr.bestfree[0].length) >= length); + ASSERT(be16_to_cpu(hdr->bestfree[0].length) >= length); /* * Point to the existing unused space. */ dup = (xfs_dir2_data_unused_t *) - ((char *)data + be16_to_cpu(data->hdr.bestfree[0].offset)); + ((char *)hdr + be16_to_cpu(hdr->bestfree[0].offset)); needscan = needlog = 0; /* * Mark the first part of the unused space, inuse for us. */ xfs_dir2_data_use_free(tp, dbp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)data), length, + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), length, &needlog, &needscan); /* * Fill in the new entry and log it. @@ -1691,13 +1691,13 @@ xfs_dir2_node_addname_int( dep->namelen = args->namelen; memcpy(dep->name, args->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)data); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, dbp, dep); /* * Rescan the block for bestfree if needed. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Log the data block header if needed. */ @@ -1706,8 +1706,8 @@ xfs_dir2_node_addname_int( /* * If the freespace entry is now wrong, update it. */ - if (be16_to_cpu(free->bests[findex]) != be16_to_cpu(data->hdr.bestfree[0].length)) { - free->bests[findex] = data->hdr.bestfree[0].length; + if (be16_to_cpu(free->bests[findex]) != be16_to_cpu(hdr->bestfree[0].length)) { + free->bests[findex] = hdr->bestfree[0].length; logfree = 1; } /* @@ -1857,7 +1857,7 @@ xfs_dir2_node_replace( xfs_da_args_t *args) /* operation arguments */ { xfs_da_state_blk_t *blk; /* leaf block */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry changed */ int error; /* error return value */ int i; /* btree level */ @@ -1901,10 +1901,10 @@ xfs_dir2_node_replace( /* * Point to the data entry. */ - data = state->extrablk.bp->data; - ASSERT(be32_to_cpu(data->hdr.magic) == XFS_DIR2_DATA_MAGIC); + hdr = state->extrablk.bp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); dep = (xfs_dir2_data_entry_t *) - ((char *)data + + ((char *)hdr + xfs_dir2_dataptr_to_off(state->mp, be32_to_cpu(lep->address))); ASSERT(inum != be64_to_cpu(dep->inumber)); /* From amit.sahrawat83@gmail.com Fri Jul 1 05:37:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61AbttB060858 for ; Fri, 1 Jul 2011 05:37:55 -0500 X-ASG-Debug-ID: 1309516672-3d64012c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ey0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E26CA46271 for ; Fri, 1 Jul 2011 03:37:52 -0700 (PDT) Received: from mail-ey0-f181.google.com (mail-ey0-f181.google.com [209.85.215.181]) by cuda.sgi.com with ESMTP id WDa1amEX8OeP2Lcl for ; Fri, 01 Jul 2011 03:37:52 -0700 (PDT) Received: by eyh5 with SMTP id 5so1106919eyh.26 for ; Fri, 01 Jul 2011 03:37:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=AffjASdlcpo/Bz1DJ3nm/6vcn3kWw1hPMK4x+RBFNV4=; b=TyGEnt9SzGcaPMGEdI4FUJsm5VK32KPRwA8UMi1kP0Go1jyU9rdm6PJJT8seOfULH0 VwZ4ta65pyEIp+vLVV3oNVfeWW8cPup1IMREdFWSmUE0o2/4MuTLovRGz+4L5vl5ywSD 8ad+S/yIjYCJnHitIRvAeIcbEvqGpd9RlE1pw= MIME-Version: 1.0 Received: by 10.14.42.76 with SMTP id i52mr31321eeb.174.1309516669430; Fri, 01 Jul 2011 03:37:49 -0700 (PDT) Received: by 10.14.37.15 with HTTP; Fri, 1 Jul 2011 03:37:49 -0700 (PDT) In-Reply-To: <20110701090332.GO561@dastard> References: <20110630121918.GK561@dastard> <20110701090332.GO561@dastard> Date: Fri, 1 Jul 2011 16:07:49 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS and USB Hang on 2.6.35.13 Subject: Re: XFS and USB Hang on 2.6.35.13 From: Amit Sahrawat To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-ey0-f181.google.com[209.85.215.181] X-Barracuda-Start-Time: 1309516673 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE_7582B, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67649 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 BSF_RULE_7582B Custom Rule 7582B X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 1, 2011 at 2:33 PM, Dave Chinner wrote: > On Fri, Jul 01, 2011 at 10:00:54AM +0530, Amit Sahrawat wrote: >> On Thu, Jun 30, 2011 at 5:49 PM, Dave Chinner wrot= e: >> > On Thu, Jun 30, 2011 at 04:57:42PM +0530, Amit Sahrawat wrote: >> > > Hi All, >> > > I encountered a hang on XFS during unplug. >> > > *Test Case:* >> > > #!/bin/sh >> > > index=3D0 >> > > while [ "$?" =3D=3D 0 ] >> > > do >> > > =A0 =A0 =A0 =A0 index=3D$(($index+1)) >> > > =A0 =A0 =A0 =A0 sync >> > > =A0 =A0 =A0 =A0 cp /mnt/1KB.txt /tmp/"$index".test >> > > done >> > > Where /mnt - mount point for vfat and /tmp mount point for XFS, both= can be >> > > XFS also. >> > > >> > > During this operation, unplug the USB. I am getting HANG almost ever= ytime I >> > > unplug. >> > >> > Well, that's no surprise. The unplug appears to be losing IOs in >> > progress. >> > >> > > *Kernel Version:* 2.6.35.13 (extremely sorry, I know next question w= ill be >> > > why am I not using TOT kernel - I tried but my PC does not boot up w= ith the >> > > latest one) > ..... >> > > *INFO: task khubd:*33 blocked for more than 120 seconds. >> > > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this mes= sage. >> > > khubd =A0 =A0 =A0 =A0 D c06c261c =A0 =A0 0 =A0 =A033 =A0 =A0 =A02 0x= 00000000 >> > > Backtrace: >> > > [] (schedule+0x0/0x500) from [] >> > > (_xfs_log_force+0x230/0x284) >> > >> > You need to turn off line wrapping for stuff you paste into email. >> > The cleaned up (i.e. relevant part) trace is: >> > >> > [] (schedule+0x0/0x500) >> > [] (_xfs_log_force+0x0/0x284) >> > [] (xfs_log_force+0x0/0x38) >> > [] (xfs_sync_data+0x0/0x58) >> > [] (xfs_quiesce_data+0x0/0x80) >> > [] (xfs_fs_sync_fs+0x0/0xe0) >> > [] (__sync_filesystem+0x0/0xa0) >> > [] (sync_filesystem+0x0/0x60) >> > [] (fsync_bdev+0x0/0x44) >> > [] (invalidate_partition+0x0/0x3c) >> > [] (del_gendisk+0x0/0x140) >> > [] (sd_remove+0x0/0x84) >> > [] (__device_release_driver+0x0/0xac) >> > [] (device_release_driver+0x0/0x30) >> > [] (bus_remove_device+0x0/0x8c) >> > [] (device_del+0x0/0x170) >> > [] (__scsi_remove_device+0x0/0x90) >> > [] (scsi_forget_host+0x0/0x6c) >> > [] (scsi_remove_host+0x0/0x104) >> > [] (quiesce_and_remove_host+0x0/0x9c) >> > [] (usb_stor_disconnect+0x0/0x28) >> > [] (usb_unbind_interface+0x0/0xdc) >> > [] (__device_release_driver+0x0/0xac) >> > [] (device_release_driver+0x0/0x30) >> > [] (bus_remove_device+0x0/0x8c) >> > [] (device_del+0x0/0x170) >> > [] (usb_disable_device+0x0/0xf8) >> > [] (usb_disconnect+0x0/0xf4) >> > [] (hub_thread+0x0/0xd78) >> > [] (kthread+0x0/0x8c) >> > >> > Well, that just looks utterly braindamaged to me. >> > >> > We just had the device containing the filesystem removed from the >> > system, so the error handling routine ends up trying to sync the >> > filesystem to the device that doesn't exist anymore. WTF? >> > >> >> >>> This is what I think, why is syncing taking place when the > > Amit, you don't need to quote your own reply. That just confuses > mail readers that understand the ">" quoting convention and > highlight appropriately, and made me wonder if you'd even > replied.... Ok will take care of this in future. > >> This is what I think, why is syncing taking place when the >> device doesn't exist anymore. What is the gain in doing so? > > I doubt the person who wrote the error handling even realised that > it ended up in such a mess. That means there is no review going on for that path. > >> I >> will try and propose this feature. > > Not sure what you mean by this.... I wanted to revise this error leg where-in sync is taking place. I can only propose the suggestion for these error condition at the moment. > > .... >> > AFAICT, this problem doesn't exist in TOT - the conversion of the >> >> Again I have a problem which seems fixed in TOT :) >> >> > xfslogd workqueue to CMWQ allows processing of other xfslogd >> > workqueue events to continue even though this one has gone to sleep. >> > >> > You probably need to change the shutdown type to >> > SHUTDOWN_LOG_IO_ERROR to prevent a log flush from occurring in this >> > shutdown context. >> >> This will fix the error for this kernel version, I will give this a try. >> Is this the patchwork for CMWQ: >> http://patchwork.xfs.org/patch/2037/ (xfs: improve sync behaviour >> in face of aggressive dirtying) ? Please let me know. > > No. 2.6.35 doesn't have the CMWQ infrastructure, it was introduced > in 2.6.38 IIRC. > > IOWs, there isn't a fix you can just backport - you're going to need > to write and test your own fix, and my suggestion for doing that is > above. Yes, I went through the lwn.net and the kernel patches survey, CMWQ is new infrastructure and cannot be adopted to 2.6.35. At first I thought changes might be related only to XFS, but it is not like that. Regarding your fix - I tried out the change by setting the flag(SHUTDOWN_LOG_IO_ERROR) in this condition and it is working fine. There is a comment also in the function : xfs_do_force_shutdown() which appropriately mentions the very same thing. But since in our case it was returning due to flag not set, we ended up putting xfslogd to infinite sleep. Thanks for your help. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > Regards, Amit Sahrawat From david@fromorbit.com Fri Jul 1 05:46:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61AkVCj061259 for ; Fri, 1 Jul 2011 05:46:31 -0500 X-ASG-Debug-ID: 1309517188-09de01360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 53E821D7ED74 for ; Fri, 1 Jul 2011 03:46:28 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id PUEutiEjENmDRqpo for ; Fri, 01 Jul 2011 03:46:28 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgMIADKiDU55LCkB/2dsb2JhbABSmG2OcXjJQw6GJASaRIgx Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 01 Jul 2011 20:16:27 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QcbEu-0005qL-Rn; Fri, 01 Jul 2011 20:46:24 +1000 Date: Fri, 1 Jul 2011 20:46:24 +1000 From: Dave Chinner To: kkeller@sonic.net Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize Message-ID: <20110701104624.GS561@dastard> References: <55283.1309476620@sonic.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55283.1309476620@sonic.net> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309517190 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0204 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67649 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jun 30, 2011 at 04:30:20PM -0700, kkeller@sonic.net wrote: > Hello again all, > > I apologize for following up my own post, but I found some new information. > > On Thu 30/06/11 2:42 PM , kkeller@sonic.net wrote: > > > http://oss.sgi.com/archives/xfs/2008-01/msg00085.html > > I found a newer thread in the archives which might be more relevant to my issue: > > http://oss.sgi.com/archives/xfs/2009-09/msg00206.html > > But I haven't yet done a umount, and don't really wish to. So, my followup questions are: > > ==Is there a simple way to figure out what xfs_growfs did, and whether it caused any problems? Apart from looking at what is on disk with xfs_db in the manner that is done in the first thread you quoted, no. > ==Will I be able to fix these problems, if any, without needing a umount? If you need to modify anything with xfs_db, then you have to unmount the filesystem first. And realistically, you need to unmount the filesystem to make sure what xfs-db is reporting is not being modified by the active filesystem. So either way, you will have to unmount the filesystem. > ==Assuming my filesystem is healthy, will a simple kernel update > (and reboot of course!) allow me to resize the filesystem in one > step, instead of 2TB increments? I'd upgrade both kernel and userspace. Cheers, Dave. -- Dave Chinner david@fromorbit.com From achender@linux.vnet.ibm.com Fri Jul 1 09:30:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61EUaoJ070191 for ; Fri, 1 Jul 2011 09:30:36 -0500 X-ASG-Debug-ID: 1309530634-1900007e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e35.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A9D6616759A6 for ; Fri, 1 Jul 2011 07:30:34 -0700 (PDT) Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by cuda.sgi.com with ESMTP id SuzeDQ580EmXKtBd for ; Fri, 01 Jul 2011 07:30:34 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e35.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p61EC5PE007828 for ; Fri, 1 Jul 2011 08:12:05 -0600 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p61EUKvB136742 for ; Fri, 1 Jul 2011 08:30:23 -0600 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p618UJ4c017207 for ; Fri, 1 Jul 2011 02:30:19 -0600 Received: from lc4eb0185863151.ibm.com (sig-9-65-52-4.mts.ibm.com [9.65.52.4]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p618UIe3017152; Fri, 1 Jul 2011 02:30:18 -0600 Message-ID: <4E0DD9FB.8090307@linux.vnet.ibm.com> Date: Fri, 01 Jul 2011 07:30:19 -0700 From: Allison Henderson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: Allison Henderson CC: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, Eric Sandeen X-ASG-Orig-Subj: Re: [PATCH 0/2v v7] XFS TESTS: ENOSPC Punch Hole Test Subject: Re: [PATCH 0/2v v7] XFS TESTS: ENOSPC Punch Hole Test References: <1309272301-5742-1-git-send-email-achender@linux.vnet.ibm.com> In-Reply-To: <1309272301-5742-1-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e35.co.us.ibm.com[32.97.110.153] X-Barracuda-Start-Time: 1309530635 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 06/28/2011 07:44 AM, Allison Henderson wrote: > Hi All, > > This is another set I sent out a while ago, but I didnt see it show up on the lists, > so I am resending this one too. The work in this patch is a continuation from a > previous patch set that has been partially accepted, so I thought I > should retain the v6. > > This patch set adds the ENOSPC test that was used for ext4 punch hole testing. > This test will verify that a hole can be punched even when the disk is full. > Reserved blocks should be used to complete the operation when there is not blocks > to further fragment the file. > > Because punching a hole does not always require extra blocks, there needs to > be serveal iterations of punching holes, and then filling the file system to 100% > usage before it is forced to grow the tree in order to handle the fragmentation. > The growing of the tree is what would cause ENOSPC if not for the use of reserved blocks. > > I could use some opinions on this patch set becuase I am not sure if other filesystems > handle their punch holes in the same way. Although xfs appears to pass the test, > should this test be an ext4 only test? Thx! > Hi All, I just wanted to poke this thread before too much time goes by. This patch was initially part of an earlier set that's already been picked up, and it seemed like people were generally interested in it, so I resubmitted it as it's own patch. Is there still an interest in this patch set? I have another set that now also needs to add a new test 255 (the fix 252 failure patch set). I am thinking that if people still want this test, I could put this patch in with the other set so that they stack properly. Thx! Allison Henderson From mgorman@suse.de Fri Jul 1 09:59:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61Exfgo071088 for ; Fri, 1 Jul 2011 09:59:41 -0500 X-ASG-Debug-ID: 1309532379-34e600370000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0DC74521D1A for ; Fri, 1 Jul 2011 07:59:39 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 1fkCOCditKJpnZgT for ; Fri, 01 Jul 2011 07:59:39 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 9253E8F3B5; Fri, 1 Jul 2011 16:59:38 +0200 (CEST) Date: Fri, 1 Jul 2011 15:59:35 +0100 From: Mel Gorman To: Christoph Hellwig Cc: Johannes Weiner , Wu Fengguang , Dave Chinner , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701145935.GB29530@suse.de> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110701093305.GA28531@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1309532380 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67667 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:33:05AM -0400, Christoph Hellwig wrote: > Johannes, Mel, Wu, Am adding Jan Kara as he has been working on writeback efficiency recently as well. > Dave has been stressing some XFS patches of mine that remove the XFS > internal writeback clustering in favour of using write_cache_pages. > Against what kernel? 2.6.38 was a disaster for reclaim I've been finding out this week. I don't know about 2.6.38.8. 2.6.39 was better. > As part of investigating the behaviour he found out that we're still > doing lots of I/O from the end of the LRU in kswapd. Not only is that > pretty bad behaviour in general, but it also means we really can't > just remove the writeback clustering in writepage given how much > I/O is still done through that. > > Any chance we could the writeback vs kswap behaviour sorted out a bit > better finally? > > Some excerpts from the previous discussion: > > On Fri, Jul 01, 2011 at 02:18:51PM +1000, Dave Chinner wrote: > > I'm now only running test 180 on 100 files rather than the 1000 the > > test normally runs on, because it's faster and still shows the > > problem. I had stopped looking at writeback problems while Wu and Jan were working on various writeback patchsets like io-less throttling. I don't know where they currently stand and while I submitted a number of reclaim patches since I last looked at this problem around 2.6.37, they were related to migration, kswapd reclaiming too much memory and kswapd using too much CPU - not writeback. At the time I stopped, the tests I was looking at were writing very few pages off the end of the LRU. Unfortunately I no longer have the results to see but for unrelated reasons, I've been other regression tests. Here is an example fsmark report over a number of kernels. The machine used is old but unfortunately it's the only one I have a full range of results at the moment. FS-Mark fsmark-2.6.32.42-mainline-fsmarkfsmark-2.6.34.10-mainline-fsmarkfsmark-2.6.37.6-mainline-fsmarkfsmark-2.6.38-mainline-fsmarkfsmark-2.6.39-mainline-fsmark 2.6.32.42-mainline2.6.34.10-mainline 2.6.37.6-mainline 2.6.38-mainline 2.6.39-mainline Files/s min 162.80 ( 0.00%) 156.20 (-4.23%) 155.60 (-4.63%) 157.80 (-3.17%) 151.10 (-7.74%) Files/s mean 173.77 ( 0.00%) 176.27 ( 1.42%) 168.19 (-3.32%) 172.98 (-0.45%) 172.05 (-1.00%) Files/s stddev 7.64 ( 0.00%) 12.54 (39.05%) 8.55 (10.57%) 8.39 ( 8.90%) 10.30 (25.77%) Files/s max 190.30 ( 0.00%) 206.80 ( 7.98%) 185.20 (-2.75%) 198.90 ( 4.32%) 201.00 ( 5.32%) Overhead min 1742851.00 ( 0.00%) 1612311.00 ( 8.10%) 1251552.00 (39.26%) 1239859.00 (40.57%) 1393047.00 (25.11%) Overhead mean 2443021.87 ( 0.00%) 2486525.60 (-1.75%) 2024365.53 (20.68%) 1849402.47 (32.10%) 1886692.53 (29.49%) Overhead stddev 744034.70 ( 0.00%) 359446.19 (106.99%) 335986.49 (121.45%) 375627.48 (98.08%) 320901.34 (131.86%) Overhead max 4744130.00 ( 0.00%) 3082235.00 (53.92%) 2561054.00 (85.24%) 2626346.00 (80.64%) 2559170.00 (85.38%) MMTests Statistics: duration User/Sys Time Running Test (seconds) 624.12 647.61 658.8 670.78 653.98 Total Elapsed Time (seconds) 5767.71 5742.30 5974.45 5852.32 5760.49 MMTests Statistics: vmstat Page Ins 3143712 3367600 3108596 3371952 3102548 Page Outs 104939296 105255268 105126820 105130540 105226620 Swap Ins 0 0 0 0 0 Swap Outs 0 0 0 0 0 Direct pages scanned 3521 131 7035 0 0 Kswapd pages scanned 23596104 23662641 23588211 23695015 23638226 Kswapd pages reclaimed 23594758 23661359 23587478 23693447 23637005 Direct pages reclaimed 3521 131 7031 0 0 Kswapd efficiency 99% 99% 99% 99% 99% Kswapd velocity 4091.070 4120.760 3948.181 4048.824 4103.510 Direct efficiency 100% 100% 99% 100% 100% Direct velocity 0.610 0.023 1.178 0.000 0.000 Percentage direct scans 0% 0% 0% 0% 0% Page writes by reclaim 75 32 37 252 44 Slabs scanned 1843200 1927168 2714112 2801280 2738816 Direct inode steals 0 0 0 0 0 Kswapd inode steals 1827970 1822770 1669879 1819583 1681155 Compaction stalls 0 0 0 0 0 Compaction success 0 0 0 0 0 Compaction failures 0 0 0 0 0 Compaction pages moved 0 0 0 228180 0 Compaction move failure 0 0 0 637776 0 The number of pages written from reclaim is exceptionally low (2.6.38 was a total disaster but that release was bad for a number of reasons, haven't tested 2.6.38.8 yet) but reduced by 2.6.37 as expected. Direct reclaim usage was reduced and efficiency (ratio of pages scanned to pages reclaimed) was high. As I look through the results I have at the moment, the number of pages written back was simply really low which is why the problem fell off my radar. > > That means the test is only using 1GB of disk space, and > > I'm running on a VM with 1GB RAM. It appears to be related to the VM > > triggering random page writeback from the LRU - 100x10MB files more > > than fills memory, hence it being the smallest test case i could > > reproduce the problem on. > > My tests were on a machine with 8G and ext3. I'm running some of the tests against ext4 and xfs to see if that makes a difference but it's possible the tests are simply not agressive enough so I want to reproduce Dave's test if possible. I'm assuming "test 180" is from xfstests which was not one of the tests I used previously. To run with 1000 files instead of 100, was the file "180" simply editted to make it look like this loop instead? # create files and sync them i=1; while [ $i -lt 100 ] do file=$SCRATCH_MNT/$i xfs_io -f -c "pwrite -b 64k -S 0xff 0 10m" $file > /dev/null if [ $? -ne 0 ] then echo error creating/writing file $file exit fi let i=$i+1 done > > My triage notes are as follows, and the patch that fixes the bug is > > attached below. > > > > > > > > <...>-393 [000] 696245.229559: xfs_ilock_nowait: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > > <...>-393 [000] 696245.229560: xfs_setfilesize: dev 253:16 ino 0x244099 isize 0xa00000 disize 0x94e000 new_size 0x0 offset 0x600000 count 3813376 > > <...>-393 [000] 696245.229561: xfs_iunlock: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > > > > For an IO that was from offset 0x600000 for just under 4MB. The end > > of that IO is at byte 10104832, which is _exactly_ what the inode > > size says it is. > > > > It is very clear that from the IO completions that we are getting a > > *lot* of kswapd driven writeback directly through .writepage: > > > > $ grep "xfs_setfilesize:" t.t |grep "4096$" | wc -l > > 801 > > $ grep "xfs_setfilesize:" t.t |grep -v "4096$" | wc -l > > 78 > > > > So there's ~900 IO completions that change the file size, and 90% of > > them are single page updates. > > > > $ ps -ef |grep [k]swap > > root 514 2 0 12:43 ? 00:00:00 [kswapd0] > > $ grep "writepage:" t.t | grep "514 " |wc -l > > 799 > > > > Oh, now that is too close to just be a co-incidence. We're getting > > significant amounts of random page writeback from the the ends of > > the LRUs done by the VM. > > > > Does the value for nr_vmscan_write in /proc/vmstat correlate? It must but lets me sure because I'm using that figure rather than ftrace to count writebacks at the moment. A more relevant question is this - how many pages were reclaimed by kswapd and what percentage is 799 pages of that? What do you consider an acceptable percentage? > On Fri, Jul 01, 2011 at 07:20:21PM +1000, Dave Chinner wrote: > > > Looks good. I still wonder why I haven't been able to hit this. > > > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > > > filesystems and since yesterday 1k as well. > > > > It requires the test to run the VM out of RAM and then force enough > > memory pressure for kswapd to start writeback from the LRU. The > > reproducer I have is a 1p, 1GB RAM VM with it's disk image on a > > 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. > > You say it's a 1G VM but you don't say what architecure. What is the size of the highest zone? If this is 32-bit x86 for example, the highest zone is HighMem and it would be really small. Unfortunately it would always be the first choice for allocating and reclaiming from which would drastically increase the number of pages written back from reclaim. -- Mel Gorman SUSE Labs From BATV+1dd5f1c206cd6a728cfd+2868+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 1 10:15:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61FFFo2071770 for ; Fri, 1 Jul 2011 10:15:15 -0500 X-ASG-Debug-ID: 1309533314-036c00ea0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFCFE1EE45BE for ; Fri, 1 Jul 2011 08:15:14 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id qDphks0vTcD947zq for ; Fri, 01 Jul 2011 08:15:14 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QcfQz-0001eY-DF; Fri, 01 Jul 2011 15:15:09 +0000 Date: Fri, 1 Jul 2011 11:15:09 -0400 From: Christoph Hellwig To: Mel Gorman Cc: Christoph Hellwig , Johannes Weiner , Wu Fengguang , Dave Chinner , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701151509.GA30620@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701145935.GB29530@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701145935.GB29530@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309533314 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0078 1.0000 -1.9703 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.87 X-Barracuda-Spam-Status: No, SCORE=-1.87 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67667 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 03:59:35PM +0100, Mel Gorman wrote: > On Fri, Jul 01, 2011 at 05:33:05AM -0400, Christoph Hellwig wrote: > > Johannes, Mel, Wu, > > Am adding Jan Kara as he has been working on writeback efficiency > recently as well. > > > Dave has been stressing some XFS patches of mine that remove the XFS > > internal writeback clustering in favour of using write_cache_pages. > > > > Against what kernel? 2.6.38 was a disaster for reclaim I've been > finding out this week. I don't know about 2.6.38.8. 2.6.39 was better. The patch series is against current 3.0-rc, I assume that's what Dave tested as well. > I'm assuming "test 180" is from xfstests which was not one of the tests > I used previously. To run with 1000 files instead of 100, was the file > "180" simply editted to make it look like this loop instead? Yes. to both questions. From fengguang.wu@intel.com Fri Jul 1 10:41:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61FfghL072839 for ; Fri, 1 Jul 2011 10:41:42 -0500 X-ASG-Debug-ID: 1309534899-033101450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mga03.intel.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A11BA1EE4890 for ; Fri, 1 Jul 2011 08:41:40 -0700 (PDT) Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by cuda.sgi.com with ESMTP id mjhsNZQQsptc3kfb for ; Fri, 01 Jul 2011 08:41:40 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga101.ch.intel.com with ESMTP; 01 Jul 2011 08:41:39 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.65,458,1304319600"; d="scan'208";a="21551370" Received: from gsingh1-mobl1.gar.corp.intel.com (HELO localhost.localdomain) ([10.255.20.217]) by azsmga001.ch.intel.com with ESMTP; 01 Jul 2011 08:41:38 -0700 Received: from wfg by localhost.localdomain with local (Exim 4.69) (envelope-from ) id 1Qcfqa-0004ez-S7; Fri, 01 Jul 2011 23:41:36 +0800 Date: Fri, 1 Jul 2011 23:41:36 +0800 From: Wu Fengguang To: Christoph Hellwig Cc: Mel Gorman , Johannes Weiner , Dave Chinner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110701154136.GA17881@localhost> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701093305.GA28531@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: mga03.intel.com[143.182.124.21] X-Barracuda-Start-Time: 1309534901 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph, On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > Johannes, Mel, Wu, > > Dave has been stressing some XFS patches of mine that remove the XFS > internal writeback clustering in favour of using write_cache_pages. > > As part of investigating the behaviour he found out that we're still > doing lots of I/O from the end of the LRU in kswapd. Not only is that > pretty bad behaviour in general, but it also means we really can't > just remove the writeback clustering in writepage given how much > I/O is still done through that. > > Any chance we could the writeback vs kswap behaviour sorted out a bit > better finally? I once tried this approach: http://www.spinics.net/lists/linux-mm/msg09202.html It used a list structure that is not linearly scalable, however that part should be independently improvable when necessary. The real problem was, it seem to not very effective in my test runs. I found many ->nr_pages works queued before the ->inode works, which effectively makes the flusher working on more dispersed pages rather than focusing on the dirty pages encountered in LRU reclaim. So for the patch to work efficiently, we'll need to first merge the ->nr_pages works and make them lower priority than the ->inode works. Thanks, Fengguang > Some excerpts from the previous discussion: > > On Fri, Jul 01, 2011 at 02:18:51PM +1000, Dave Chinner wrote: > > I'm now only running test 180 on 100 files rather than the 1000 the > > test normally runs on, because it's faster and still shows the > > problem. That means the test is only using 1GB of disk space, and > > I'm running on a VM with 1GB RAM. It appears to be related to the VM > > triggering random page writeback from the LRU - 100x10MB files more > > than fills memory, hence it being the smallest test case i could > > reproduce the problem on. > > > > My triage notes are as follows, and the patch that fixes the bug is > > attached below. > > > > --- 180.out 2010-04-28 15:00:22.000000000 +1000 > > +++ 180.out.bad 2011-07-01 12:44:12.000000000 +1000 > > @@ -1 +1,9 @@ > > QA output created by 180 > > +file /mnt/scratch/81 has incorrect size 10473472 - sync failed > > +file /mnt/scratch/86 has incorrect size 10371072 - sync failed > > +file /mnt/scratch/87 has incorrect size 10104832 - sync failed > > +file /mnt/scratch/88 has incorrect size 10125312 - sync failed > > +file /mnt/scratch/89 has incorrect size 10469376 - sync failed > > +file /mnt/scratch/90 has incorrect size 10240000 - sync failed > > +file /mnt/scratch/91 has incorrect size 10362880 - sync failed > > +file /mnt/scratch/92 has incorrect size 10366976 - sync failed > > > > $ ls -li /mnt/scratch/ | awk '/rw/ { printf("0x%x %d %d\n", $1, $6, $10); }' > > 0x244093 10473472 81 > > 0x244098 10371072 86 > > 0x244099 10104832 87 > > 0x24409a 10125312 88 > > 0x24409b 10469376 89 > > 0x24409c 10240000 90 > > 0x24409d 10362880 91 > > 0x24409e 10366976 92 > > > > So looking at inode 0x244099 (/mnt/scratch/87), the last setfilesize > > call in the trace (got a separate patch for that) is: > > > > <...>-393 [000] 696245.229559: xfs_ilock_nowait: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > > <...>-393 [000] 696245.229560: xfs_setfilesize: dev 253:16 ino 0x244099 isize 0xa00000 disize 0x94e000 new_size 0x0 offset 0x600000 count 3813376 > > <...>-393 [000] 696245.229561: xfs_iunlock: dev 253:16 ino 0x244099 flags ILOCK_EXCL caller xfs_setfilesize > > > > For an IO that was from offset 0x600000 for just under 4MB. The end > > of that IO is at byte 10104832, which is _exactly_ what the inode > > size says it is. > > > > It is very clear that from the IO completions that we are getting a > > *lot* of kswapd driven writeback directly through .writepage: > > > > $ grep "xfs_setfilesize:" t.t |grep "4096$" | wc -l > > 801 > > $ grep "xfs_setfilesize:" t.t |grep -v "4096$" | wc -l > > 78 > > > > So there's ~900 IO completions that change the file size, and 90% of > > them are single page updates. > > > > $ ps -ef |grep [k]swap > > root 514 2 0 12:43 ? 00:00:00 [kswapd0] > > $ grep "writepage:" t.t | grep "514 " |wc -l > > 799 > > > > Oh, now that is too close to just be a co-incidence. We're getting > > significant amounts of random page writeback from the the ends of > > the LRUs done by the VM. > > > > > > > On Fri, Jul 01, 2011 at 07:20:21PM +1000, Dave Chinner wrote: > > > Looks good. I still wonder why I haven't been able to hit this. > > > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > > > filesystems and since yesterday 1k as well. > > > > It requires the test to run the VM out of RAM and then force enough > > memory pressure for kswapd to start writeback from the LRU. The > > reproducer I have is a 1p, 1GB RAM VM with it's disk image on a > > 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. > > > > When kswapd starts doing writeback from the LRU, the iops rate goes > > through the roof (from ~300iops @~320k/io to ~7000iops @4k/io) and > > throughput drops from 100MB/s to ~30MB/s. BBWC is the only reason > > the IOPS stays as high as it does - maybe that is why I saw this and > > you haven't. > > > > As it is, the kswapd writeback behaviour is utterly atrocious and, > > ultimately, quite easy to provoke. I wish the MM folk would fix that > > goddamn problem already - we've only been complaining about it for > > the last 6 or 7 years. As such, I'm wondering if it's a bad idea to > > even consider removing the .writepage clustering... From kkeller@sonic.net Fri Jul 1 11:44:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61Gik6u081287 for ; Fri, 1 Jul 2011 11:44:46 -0500 X-ASG-Debug-ID: 1309538681-693602940000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 70EC81675FC5 for ; Fri, 1 Jul 2011 09:44:41 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id paKyhxtQSaRO6Zy0 for ; Fri, 01 Jul 2011 09:44:41 -0700 (PDT) Received: from webmail.sonic.net (b.webmail.sonic.net [69.12.208.80]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p61GifeR000730 for ; Fri, 1 Jul 2011 09:44:41 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Priority: Normal X-Mailer: AtMail PHP 5.62 Message-ID: <51043.1309538681@sonic.net> To: Reply-To: kkeller@sonic.net X-Origin: 75.101.60.64 X-Atmail-Account: kkeller@sonic.net Date: Fri, 01 Jul 2011 09:44:41 -0700 X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize From: kkeller@sonic.net X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1309538685 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67674 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks for the response, Dave! I have some additional questions inline. On Fri 01/07/11 3:46 AM , Dave Chinner wrote: > So either way, you will have to unmount the filesystem. Yikes! I am guessing that may put the filesystem at risk of not being able= to re-mount without xfs_db commands, as happened to the other posters I ci= ted. If I want to minimize the amount of downtime if umounting does cause = the fs not to be mountable, is there a way for me to look at the xfs_db out= put after I umount, and calculate any new parameters myself? Or is that co= nsidered generally unwise, and xfs_db needs an expert to look at the output= ? I want to minimize downtime, but I also want to minimize the risk of dat= a loss, so I wouldn't want to derive my own xfs_db commands unless it was v= ery safe. (Even with backups available, it's more work to switch over or r= estore if I do lose the filesystem; we're a small group so we don't have an= automatic failover server.) Are there any other docs concerning using xfs_db? I saw a post from last y= ear that said that there weren't, but I'm wondering if that's changed since= then. There is of course the man page, but that doesn't describe how to i= nterpret what's going on from its output (or what the correct steps to take= are if there's a problem). > > =3D=3DAssuming my filesystem is healthy, will a simple kernel update > > (and reboot of course!) allow me to resize the filesystem in one > > step, instead of 2TB increments? >=20 > I'd upgrade both kernel and userspace. Would you recommend upgrading userspace from source? CentOS 5 still calls = the version available (from their centosplus repo) 2.9.4, but I haven't inv= estigated what sort of patches they may have applied. --keith --=20 kkeller@sonic.net From akshaylal@google.com Fri Jul 1 15:53:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p61KrHY1101199 for ; Fri, 1 Jul 2011 15:53:17 -0500 X-ASG-Debug-ID: 1309553595-0f6603d50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-out.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8E0B1178D5EE for ; Fri, 1 Jul 2011 13:53:15 -0700 (PDT) Received: from smtp-out.google.com (smtp-out.google.com [74.125.121.67]) by cuda.sgi.com with ESMTP id fwqv20ckLcOOcYBZ for ; Fri, 01 Jul 2011 13:53:15 -0700 (PDT) Received: from wpaz1.hot.corp.google.com (wpaz1.hot.corp.google.com [172.24.198.65]) by smtp-out.google.com with ESMTP id p61KrE3G028338 for ; Fri, 1 Jul 2011 13:53:14 -0700 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=google.com; s=beta; t=1309553595; bh=/F4LpsdaHV1PPuU53Fuzt73xKJE=; h=MIME-Version:Reply-To:From:Date:Message-ID:Subject:To: Content-Type; b=ACUPzKVEIKTY83UkD8hwiyEB490o0pZqAIvCOo3+k3PJQa9KtjRnrr0RZHeAvC4Ub HjAEf5MZb0n2HM4+LikyA== DomainKey-Signature: a=rsa-sha1; s=beta; d=google.com; c=nofws; q=dns; h=dkim-signature:mime-version:reply-to:from:date:message-id: subject:to:content-type:x-system-of-record; b=mUYzY35ngJ4kjiZf68jk1unGwKXnI+3WXFUfp69sUlE1SzB2fzqWs5nmPHl5BVTAT 6rdubnHD6qaG/L7LdZUdg== Received: from gwaa12 (gwaa12.prod.google.com [10.200.27.12]) by wpaz1.hot.corp.google.com with ESMTP id p61KqgtM022250 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Fri, 1 Jul 2011 13:53:13 -0700 Received: by gwaa12 with SMTP id a12so1803119gwa.0 for ; Fri, 01 Jul 2011 13:53:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=beta; h=mime-version:reply-to:from:date:message-id:subject:to:content-type; bh=0TcFf1MrFBubdVmqL3V1/O/NsDf21Jr1jE5ZmStjQXc=; b=aPkCmRJsFWkpy0yDwsKzRssAbERQRLuw//mlMbzhohHa/k5vkQH2DMH6/EmGH01Z3G GTcSI7NKJNqCkmIDHusw== Received: by 10.101.213.23 with SMTP id p23mr3373018anq.126.1309553593126; Fri, 01 Jul 2011 13:53:13 -0700 (PDT) MIME-Version: 1.0 Received: by 10.100.145.3 with HTTP; Fri, 1 Jul 2011 13:52:43 -0700 (PDT) Reply-To: alal@google.com From: Akshay Lal Date: Fri, 1 Jul 2011 13:52:43 -0700 Message-ID: X-ASG-Orig-Subj: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Subject: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files To: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-System-Of-Record: true X-Barracuda-Connect: smtp-out.google.com[74.125.121.67] X-Barracuda-Start-Time: 1309553596 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2886 1.0000 -0.3975 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.40 X-Barracuda-Spam-Status: No, SCORE=-0.40 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67691 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Current the Makefile only builds the .c files and installs them in the $INSTALL path. However, the ltp directory contains a shell script, which doen't get copied over (installed) when a "make install"is invoked. This behaviour causes test 080 to fail since it requires rwtest.sh to be present in the ltp/ directory. Tested: Updated the Makefile and ran a static build script & test 080. Signed-off-by: Akshay Lal --- ltp/Makefile | 2 ++ 1 files changed, 2 insertions(+), 0 deletions(-) diff --git a/ltp/Makefile b/ltp/Makefile index 32cd380..d47247b 100644 --- a/ltp/Makefile +++ b/ltp/Makefile @@ -6,6 +6,7 @@ TOPDIR = .. include $(TOPDIR)/include/builddefs TARGETS = doio fsstress fsx growfiles iogen +SCRIPTS = rwtest.sh CFILES = $(TARGETS:=.c) HFILES = doio.h LDIRT = $(TARGETS) @@ -44,5 +45,6 @@ $(TARGETS): $(LIBTEST) install: default $(INSTALL) -m 755 -d $(PKG_LIB_DIR)/ltp $(INSTALL) -m 755 $(TARGETS) $(PKG_LIB_DIR)/ltp + $(INSTALL) -m 755 $(SCRIPTS) $(PKG_LIB_DIR)/ltp -include .dep -- 1.7.3.1 From david@fromorbit.com Fri Jul 1 21:42:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p622gQL5132836 for ; Fri, 1 Jul 2011 21:42:27 -0500 X-ASG-Debug-ID: 1309574543-3d34022d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 56922472E2 for ; Fri, 1 Jul 2011 19:42:23 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id DcNmT5ylsPp981Wo for ; Fri, 01 Jul 2011 19:42:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av8EANeCDk55LCkB/2dsb2JhbAA0HoRCoz54iHqxdIM1jQsOgR2CCYF1gQwEmkmIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 02 Jul 2011 12:12:21 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qcq9z-0007QZ-CB; Sat, 02 Jul 2011 12:42:19 +1000 Date: Sat, 2 Jul 2011 12:42:19 +1000 From: Dave Chinner To: Mel Gorman Cc: Christoph Hellwig , Johannes Weiner , Wu Fengguang , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110702024219.GT561@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701145935.GB29530@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110701145935.GB29530@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1309574545 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4969 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67712 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 03:59:35PM +0100, Mel Gorman wrote: > On Fri, Jul 01, 2011 at 05:33:05AM -0400, Christoph Hellwig wrote: > > Johannes, Mel, Wu, > > Am adding Jan Kara as he has been working on writeback efficiency > recently as well. Writeback looks to be working fine - it's kswapd screwing up the writeback patterns that appears to be the problem.... > > Dave has been stressing some XFS patches of mine that remove the XFS > > internal writeback clustering in favour of using write_cache_pages. > > Against what kernel? 2.6.38 was a disaster for reclaim I've been > finding out this week. I don't know about 2.6.38.8. 2.6.39 was better. 3.0-rc4 .... > The number of pages written from reclaim is exceptionally low (2.6.38 > was a total disaster but that release was bad for a number of reasons, > haven't tested 2.6.38.8 yet) but reduced by 2.6.37 as expected. Direct > reclaim usage was reduced and efficiency (ratio of pages scanned to > pages reclaimed) was high. And is that consistent across ext3/ext4/xfs/btrfs filesystems? I doubt it very much, as all have very different .writepage behaviours... BTW, called a workload "fsmark" tells us nothing about the workload being tested - fsmark can do a lot of interesting things. IOWs, you need to quote the command line for it to be meaningful to anyone... > As I look through the results I have at the moment, the number of > pages written back was simply really low which is why the problem fell > off my radar. It doesn't take many to completely screw up writeback IO patterns. Write a few random pages to a 10MB file well before writeback would get to the file, and instead of getting optimal sequential writeback patterns when writeback gets to it, we get multiple disjoint IOs that require multiple seeks to complete. Slower, less efficient writeback IO causes memory pressure to last longer and hence more likely to result in kswapd writeback, and it's just a downward spiral from there.... > > > That means the test is only using 1GB of disk space, and > > > I'm running on a VM with 1GB RAM. It appears to be related to the VM > > > triggering random page writeback from the LRU - 100x10MB files more > > > than fills memory, hence it being the smallest test case i could > > > reproduce the problem on. > > > > > My tests were on a machine with 8G and ext3. I'm running some of > the tests against ext4 and xfs to see if that makes a difference but > it's possible the tests are simply not agressive enough so I want to > reproduce Dave's test if possible. To tell the truth, I don't think anyone really cares how ext3 performs these days. XFS seems to be the filesystem that brings out all the bad behaviour in the mm subsystem.... FWIW, the mm subsystem works well enough when there is RAM available, so I'd suggest that your reclaim testing needs to focus on smaller memory configurations to really stress the reclaim algorithms. That's one of the reason why I regularly test on 1GB, 1p machines - they show problems that are hard to rep┌oduce on larger configs.... > I'm assuming "test 180" is from xfstests which was not one of the tests > I used previously. To run with 1000 files instead of 100, was the file > "180" simply editted to make it look like this loop instead? I reduced it to 100 files simply to speed up the testing process for the "bad file size" problem I was trying to find. If you want to reproduce the IO collapse in a big way, run it with 1000 files, and it happens about 2/3rds of the way through the test on my hardware. > > > It is very clear that from the IO completions that we are getting a > > > *lot* of kswapd driven writeback directly through .writepage: > > > > > > $ grep "xfs_setfilesize:" t.t |grep "4096$" | wc -l > > > 801 > > > $ grep "xfs_setfilesize:" t.t |grep -v "4096$" | wc -l > > > 78 > > > > > > So there's ~900 IO completions that change the file size, and 90% of > > > them are single page updates. > > > > > > $ ps -ef |grep [k]swap > > > root 514 2 0 12:43 ? 00:00:00 [kswapd0] > > > $ grep "writepage:" t.t | grep "514 " |wc -l > > > 799 > > > > > > Oh, now that is too close to just be a co-incidence. We're getting > > > significant amounts of random page writeback from the the ends of > > > the LRUs done by the VM. > > > > > > > > Does the value for nr_vmscan_write in /proc/vmstat correlate? It must > but lets me sure because I'm using that figure rather than ftrace to > count writebacks at the moment. The number in /proc/vmstat is higher. Much higher. I just ran the test at 1000 files (only collapsed to ~3000 iops this time because I ran it on a plain 3.0-rc4 kernel that still has the .writepage clustering in XFS), and I see: nr_vmscan_write 6723 after the test. The event trace only capture ~1400 writepage events from kswapd, but it tends to miss a lot of events as the system is quite unresponsive at times under this workload - it's not uncommon to have ssh sessions not echo a character for 10s... e.g: I started the workload ~11:08:22: $ while [ 1 ]; do date; sleep 1; done Sat Jul 2 11:08:15 EST 2011 Sat Jul 2 11:08:16 EST 2011 Sat Jul 2 11:08:17 EST 2011 Sat Jul 2 11:08:18 EST 2011 Sat Jul 2 11:08:19 EST 2011 Sat Jul 2 11:08:20 EST 2011 Sat Jul 2 11:08:21 EST 2011 Sat Jul 2 11:08:22 EST 2011 <<<<<<<< start test here Sat Jul 2 11:08:23 EST 2011 Sat Jul 2 11:08:24 EST 2011 Sat Jul 2 11:08:25 EST 2011 Sat Jul 2 11:08:26 EST 2011 <<<<<<<< Sat Jul 2 11:08:27 EST 2011 <<<<<<<< Sat Jul 2 11:08:30 EST 2011 <<<<<<<< Sat Jul 2 11:08:35 EST 2011 <<<<<<<< Sat Jul 2 11:08:36 EST 2011 Sat Jul 2 11:08:37 EST 2011 Sat Jul 2 11:08:38 EST 2011 <<<<<<<< Sat Jul 2 11:08:40 EST 2011 <<<<<<<< Sat Jul 2 11:08:41 EST 2011 Sat Jul 2 11:08:42 EST 2011 Sat Jul 2 11:08:43 EST 2011 And there are quite a few more multi-second holdoffs during the test, too. > A more relevant question is this - > how many pages were reclaimed by kswapd and what percentage is 799 > pages of that? What do you consider an acceptable percentage? I don't care what the percentage is or what the number is. kswapd is reclaiming pages most of the time without affect IO patterns, and when that happens I just don't care because it is working just fine. What I care about is what kswapd is doing when it finds dirty pages and it decides they need to be written back. It's not a problem that they are found or need to be written, the problem is the utterly crap way that memory reclaim is throwing the pages at the filesystem. I'm not sure how to get through to you guys that single, random page writeback is *BAD*. Using .writepage directly is considered harmful to IO throughput, and memory reclaim needs to stop doing that. We've got hacks in the filesystems to try to make the IO memory reclaim executes suck less, but ultimately the problem is the IO memory reclaim is doing. And now the memory reclaim IO patterns are getting in the way of further improving the writeback path in XFS because were finding the hacks we've been carrying for years are *still* the only thing that is making IO under memory pressure not suck completely. What I find extremely frustrating is that this is not a new issue. We (filesystem people) have been asking for a long time to have the memory reclaim subsystem either defer IO to the writeback threads or to use the .writepages interface. We're not asking this to be difficult, we're asking for this so that we can cluster IO in an optimal manner to avoid these IO collapses that memory reclaim currently triggers. We now have generic methods of handing off IO to flusher threads that also provide some level of throttling/ blocking while IO is submitted (e.g. writeback_inodes_sb_nr()), so this shouldn't be a difficult problem to solve for the memory reclaim subsystem. Hell, maybe memory reclaim should take a leaf from the IO-less throttle work we are doing - hit a bunch of dirty pages on the LRU, just back off and let the writeback subsystem clean a few more pages before starting another scan. Letting the writeback code clean pages is the fastest way to get pages cleaned in the system, so if we've already got a generic method for cleaning and/or waiting for pages to be cleaned, why not aim to use that? And while I'm ranting, when on earth is the issue-writeback-from- direct-reclaim problem going to be fixed so we can remove the hacks in the filesystem .writepage implementations to prevent this from occurring? I mean, when we combine the two issues, doesn't it imply that the memory reclaim subsystem needs to be redesigned around the fact it *can't clean pages directly*? This IO collapse issue shows that we really don't 't want kswapd issuing IO directly via .writepage, and we already reject IO from direct reclaim in .writepage in ext4, XFS and BTRFS because we'll overrun the stack on anything other than trivial storage configurations. That says to me in a big, flashing bright pink neon sign way that memory reclaim simply should not be issuing IO at all. Perhaps it's time to rethink the way memory reclaim deals with dirty pages to take into account the current reality? > > On Fri, Jul 01, 2011 at 07:20:21PM +1000, Dave Chinner wrote: > > > > Looks good. I still wonder why I haven't been able to hit this. > > > > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > > > > filesystems and since yesterday 1k as well. > > > > > > It requires the test to run the VM out of RAM and then force enough > > > memory pressure for kswapd to start writeback from the LRU. The > > > reproducer I have is a 1p, 1GB RAM VM with it's disk image on a > > > 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. > > > > > You say it's a 1G VM but you don't say what architecure. x86-64 for both the guest and the host. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Sun Jul 3 10:59:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p63Fx62m044157 for ; Sun, 3 Jul 2011 10:59:06 -0500 X-ASG-Debug-ID: 1309708744-19cd037e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 39E10498E8 for ; Sun, 3 Jul 2011 08:59:04 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id TsGEWKAXBTXHeEQi for ; Sun, 03 Jul 2011 08:59:04 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 4FF214964600; Sun, 3 Jul 2011 10:59:04 -0500 (CDT) Message-ID: <4E1091C7.5040906@sandeen.net> Date: Sun, 03 Jul 2011 10:59:03 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: kkeller@sonic.net CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <47455.1309470147@sonic.net> In-Reply-To: <47455.1309470147@sonic.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1309708745 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67862 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 6/30/11 4:42 PM, kkeller@sonic.net wrote: > # uname -a > Linux sahara.xxx 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux > > Yes, it's not a completely current kernel. This box is running CentOS 5 > with some yum updates. try # rpm -qa | grep xfs If you see anything with "kmod" you're running an exceptionally old xfs codebase. 2.6.18-138 and beyond should have a newer xfs backport built into the kernel rpm itself, as shipped from Red Hat. But the ancient xfs-kmod (or similar) provided xfs.ko will take precedence even if you update that kernel. * Fri Apr 03 2009 Don Zickus [2.6.18-138.el5] ... - [fs] xfs: update to 2.6.28.6 codebase (Eric Sandeen ) [470845] If at all possible I'd try an updated kernel, especially if your xfs.ko is provided by the very, very, very old centos xfs-kmod rpm. -Eric From sandeen@sandeen.net Sun Jul 3 11:01:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p63G1f5W044285 for ; Sun, 3 Jul 2011 11:01:41 -0500 X-ASG-Debug-ID: 1309708899-394001720000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8170F1EE6783 for ; Sun, 3 Jul 2011 09:01:40 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 63YxRNGGuQGQYlOb for ; Sun, 03 Jul 2011 09:01:40 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id AC6EA4964600; Sun, 3 Jul 2011 11:01:39 -0500 (CDT) Message-ID: <4E109263.3050803@sandeen.net> Date: Sun, 03 Jul 2011 11:01:39 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: kkeller@sonic.net CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <47455.1309470147@sonic.net> <4E1091C7.5040906@sandeen.net> In-Reply-To: <4E1091C7.5040906@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1309708900 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67862 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/3/11 10:59 AM, Eric Sandeen wrote: > On 6/30/11 4:42 PM, kkeller@sonic.net wrote: >> # uname -a >> Linux sahara.xxx 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux >> >> Yes, it's not a completely current kernel. This box is running CentOS 5 >> with some yum updates. > > try > > # rpm -qa | grep xfs > > If you see anything with "kmod" you're running an exceptionally old xfs codebase. > > 2.6.18-138 and beyond should have a newer xfs backport built into the kernel > rpm itself, as shipped from Red Hat. But the ancient xfs-kmod (or similar) > provided xfs.ko will take precedence even if you update that kernel. ... unless you uninstall the xfs-kmod package. (i'm not sure how to set precedence of found kernel modules, I guess) -Eric > * Fri Apr 03 2009 Don Zickus [2.6.18-138.el5] > ... > - [fs] xfs: update to 2.6.28.6 codebase (Eric Sandeen ) [470845] > > If at all possible I'd try an updated kernel, especially if your xfs.ko > is provided by the very, very, very old centos xfs-kmod rpm. > > -Eric From kkeller@sonic.net Sun Jul 3 14:43:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p63Jh1pe062956 for ; Sun, 3 Jul 2011 14:43:02 -0500 X-ASG-Debug-ID: 1309722179-088f00150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 404961EE6B15 for ; Sun, 3 Jul 2011 12:42:59 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id eIFmFHD9eE2IbiQG for ; Sun, 03 Jul 2011 12:42:59 -0700 (PDT) Received: from webmail.sonic.net (b.webmail.sonic.net [69.12.208.80]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p63Jgxs5001097; Sun, 3 Jul 2011 12:42:59 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Priority: Normal X-Mailer: AtMail PHP 5.62 Message-ID: <62289.1309722179@sonic.net> To: Reply-To: kkeller@sonic.net X-Origin: 75.101.60.64 X-Atmail-Account: kkeller@sonic.net Date: Sun, 03 Jul 2011 12:42:59 -0700 X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize From: kkeller@sonic.net Cc: "Eric Sandeen" X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1309722181 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67876 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 03, 2011 at 10:59:03AM -0500, Eric Sandeen wrote: > On 6/30/11 4:42 PM, kkeller@sonic.net wrote: > > # uname -a > > Linux sahara.xxx 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 = x86_64 x86_64 x86_64 GNU/Linux > >=20 > > Yes, it's not a completely current kernel. This box is running CentOS 5 > > with some yum updates. >=20 > try >=20 > # rpm -qa | grep xfs >=20 > If you see anything with "kmod" you're running an exceptionally old xfs c= odebase. Yes, I do have a kmod-xfs package, so clearly a kernel update is in order. So my goals are twofold: 1) verify the current filesystem's state--is it healthy, or does it need xfs_db voodoo? 2) once it's determined healthy, again attempt to grow the filesystem. Here is my current plan for reaching these goals: 0) get a nearer-term backup, just in case :) The filesystem still seems perfectly normal, but without knowing what my first xfs_growfs did I don't know if or how long this state will last. 1) umount the fs to run xfs_db 2) attempt a remount--is this safe, or is there risk of damaging the filesy= stem? 3) If a remount succeeds, then update the kernel and xfsprogs. If a remount doesn't work, then revert to the near-term backup I took in 0) and attempt to fix the issue (with the help of the list, I hope). 4) In either case, post my xfs_db output to the list and get your opinions on the health of the fs. 5) If the fs seems correct, attempt xfs_growfs again. Do all these steps seem reasonable? I am most concerned about step 2-- I really do want to be able to remount as quickly as possible, but I do not know how to tell whether it's okay from xfs_db's output. So if a remount attempt is reasonably nondestructive (i.e., it won't make worse an already unhealthy XFS fs) then I can try it and hope for the best. (From the other threads I've seen it seems like it's not a good idea to run xfs_repair.) Would it make more sense to update the kernel and xfsprogs before attempting a remount? If a remount fails under the original kernel, what do people think the odds are that a new kernel would be able to mount the original fs, or is that really unwise? Again, many thanks for all your help. --keith --=20 kkeller@sonic.net From jpiszcz@lucidpixels.com Sun Jul 3 16:24:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p63LOA1F071973 for ; Sun, 3 Jul 2011 16:24:10 -0500 X-ASG-Debug-ID: 1309728249-4e49009c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 298D91EE6D4A for ; Sun, 3 Jul 2011 14:24:09 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id FHFYSkwZ6CGWPVob for ; Sun, 03 Jul 2011 14:24:09 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id B6BAC64096B; Sun, 3 Jul 2011 17:24:09 -0400 (EDT) Date: Sun, 3 Jul 2011 17:24:09 -0400 (EDT) From: Justin Piszcz To: xfs@oss.sgi.com cc: Alan Piszcz X-ASG-Orig-Subj: 2.6.39.1: (2.6.35+ probably): delaylog bug Subject: 2.6.39.1: (2.6.35+ probably): delaylog bug Message-ID: User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1309728250 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67884 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello, I help to support a system (similar to mine) with a 3ware 9750-24i4e and when you rm -rf a directory with too many files, the system will act lagged, lock up for periods of time and drop connections (including samba shares) to and from the host. Its so bad it cannot even talk to the UPS for example (ups: communications lost, e.g. from nut). This is pretty bad and I've remounted my XFS FS w/out delaylog but for the xfstests package, it really needs to test with a few million files in a directory or two, and you should easily be able to reproduce the problem. When the delaylog option is removed, the files are removed slowly, but there are no errors, SSH/samba connections do NOT drop, etc, please look into this, thanks. Justin. From sandeen@sandeen.net Sun Jul 3 17:14:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_32, J_CHICKENPOX_63,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p63ME7ha076492 for ; Sun, 3 Jul 2011 17:14:08 -0500 X-ASG-Debug-ID: 1309731246-59f0002d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BCE6D523A65 for ; Sun, 3 Jul 2011 15:14:06 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 5JShEWb6IAswBFBX for ; Sun, 03 Jul 2011 15:14:06 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 119FC4964600; Sun, 3 Jul 2011 17:14:06 -0500 (CDT) Message-ID: <4E10E9AD.1020709@sandeen.net> Date: Sun, 03 Jul 2011 17:14:05 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Keith Keller CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <47455.1309470147@sonic.net> <4E1091C7.5040906@sandeen.net> <20110703193822.GA28632@wombat.san-francisco.ca.us> In-Reply-To: <20110703193822.GA28632@wombat.san-francisco.ca.us> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1309731246 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67886 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/3/11 2:38 PM, Keith Keller wrote: > On Sun, Jul 03, 2011 at 10:59:03AM -0500, Eric Sandeen wrote: >> On 6/30/11 4:42 PM, kkeller@sonic.net wrote: >>> # uname -a >>> Linux sahara.xxx 2.6.18-128.1.6.el5 #1 SMP Wed Apr 1 09:10:25 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux >>> >>> Yes, it's not a completely current kernel. This box is running CentOS 5 >>> with some yum updates. >> >> try >> >> # rpm -qa | grep xfs >> >> If you see anything with "kmod" you're running an exceptionally old xfs codebase. > > Yes, I do have a kmod-xfs package, so clearly a kernel update is in > order. So my goals are twofold: 1) verify the current filesystem's > state--is it healthy, or does it need xfs_db voodoo? 2) once it's > determined healthy, again attempt to grow the filesystem. Here is > my current plan for reaching these goals: > 0) get a nearer-term backup, just in case :) The filesystem still seems > perfectly normal, but without knowing what my first xfs_growfs did I > don't know if or how long this state will last. good idea. > 1) umount the fs to run xfs_db > > 2) attempt a remount--is this safe, or is there risk of damaging the > filesystem? I'm not sure. You probably hit this bug: http://oss.sgi.com/archives/xfs/2007-01/msg00053.html See also: http://oss.sgi.com/archives/xfs/2009-07/msg00087.html I can't remember how much damage the original bug did ... > 3) If a remount succeeds, then update the kernel and xfsprogs. If > a remount doesn't work, then revert to the near-term backup I took > in 0) and attempt to fix the issue (with the help of the list, I hope). One thing you might be able to do, though I don't remember for sure if this works, is to freeze the fs and create an xfs_metadump image of it. You can then point xfs_repair at that image, and see what it finds. But I'm not sure if metadump will work on a frozen fs... hm no. Only if it's mounted ro. Otherwise -maybe- xfs_repair -n -d might work after a mount -o remount,ro. (-n -d means operate in no-modify mode on an ro-mounted fs) So you'd need to mount readonly before you could either do xfs_repair -nd or xfs_metadump followed by repair of that image. Either one would give you an idea of the health of the fs. > 4) In either case, post my xfs_db output to the list and get your > opinions on the health of the fs. repair probably will tell you more as an initial step. > 5) If the fs seems correct, attempt xfs_growfs again. > > Do all these steps seem reasonable? I am most concerned about step 2-- > I really do want to be able to remount as quickly as possible, but I > do not know how to tell whether it's okay from xfs_db's output. So if a > remount attempt is reasonably nondestructive (i.e., it won't make worse > an already unhealthy XFS fs) then I can try it and hope for the best. > (From the other threads I've seen it seems like it's not a good idea to > run xfs_repair.) you can run it with -n to do no-modify. If it's clean, you're good; if it's a mess, you won't hurt anything, other than making you sad. :) > Would it make more sense to update the kernel and xfsprogs before > attempting a remount? If a remount fails under the original kernel, is it still mounted I guess? A newer up to date kernel certainly won't make anything -worse- You should uninstall that kmod rpm though so it doesn't get priority over the xfs.ko in the new kernel. If you need to revert to the old kernel, you could always reinstall it. > what do people think the odds are that a new kernel would be able to > mount the original fs, or is that really unwise? I don't think a newer kernel would do any further harm. > Again, many thanks for all your help. You're welcome but here's the obligatory plug in return - running RHEL5 proper would have gotten you up to date, fully supported xfs, and you wouldn't have run into this mess. Just sayin' ... ;) -Eric > --keith > > From david@fromorbit.com Sun Jul 3 19:47:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p640lW7B084974 for ; Sun, 3 Jul 2011 19:47:33 -0500 X-ASG-Debug-ID: 1309740449-3abd033b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9AF011EE7012 for ; Sun, 3 Jul 2011 17:47:30 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id nD3OvFWbZ1PZpvjB for ; Sun, 03 Jul 2011 17:47:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAIILEU55LCkB/2dsb2JhbABSp3t4iHrBfA6GKASifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 10:17:28 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QdXJv-0002a8-04; Mon, 04 Jul 2011 10:47:27 +1000 Date: Mon, 4 Jul 2011 10:47:26 +1000 From: Dave Chinner To: Justin Piszcz Cc: xfs@oss.sgi.com, Alan Piszcz X-ASG-Orig-Subj: Re: 2.6.39.1: (2.6.35+ probably): delaylog bug Subject: Re: 2.6.39.1: (2.6.35+ probably): delaylog bug Message-ID: <20110704004726.GU561@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309740451 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67896 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 03, 2011 at 05:24:09PM -0400, Justin Piszcz wrote: > Hello, > > I help to support a system (similar to mine) with a 3ware 9750-24i4e > and when you rm -rf a directory with too many files, the system will > act lagged, lock up for periods of time and drop connections > (including samba shares) to and from the host. Its so bad it cannot > even talk to the UPS for example (ups: communications lost, e.g. > from nut). This is pretty bad and I've remounted my XFS FS w/out > delaylog but for the xfstests package, it really needs to test with > a few million files in a directory or two, and you should easily be > able to reproduce the problem. http://oss.sgi.com/archives/xfs/2011-06/msg00259.html FYI, the problem is not easy to reproduce - it requires a specific set of conditions to exist with interrupt configuration (i.e. all on the same CPU that the log IO completions are running) to expose the workqueue priority inversion that the filesystem level issue triggers. > When the delaylog option is removed, the files are removed slowly, > but there are no errors, SSH/samba connections do NOT drop, etc, > please look into this, thanks. http://oss.sgi.com/archives/xfs/2011-06/msg00463.html http://oss.sgi.com/archives/xfs/2011-06/msg00473.html Cheers, Dave. -- Dave Chinner david@fromorbit.com From web.upgrade7@gmail.com Sun Jul 3 22:14:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.2 required=5.0 tests=BAYES_50,FREEMAIL_FROM, FREEMAIL_REPLYTO,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p643E4px103180 for ; Sun, 3 Jul 2011 22:14:04 -0500 X-ASG-Debug-ID: 1309749242-47b901860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-gy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6BD031EE72F1 for ; Sun, 3 Jul 2011 20:14:02 -0700 (PDT) Received: from mail-gy0-f181.google.com (mail-gy0-f181.google.com [209.85.160.181]) by cuda.sgi.com with ESMTP id YPvtAMBcsFPnwGXN for ; Sun, 03 Jul 2011 20:14:02 -0700 (PDT) Received: by gyg8 with SMTP id 8so2434599gyg.26 for ; Sun, 03 Jul 2011 20:14:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:reply-to:date:message-id:subject:from:to:content-type; bh=LndAh/GCh4CfJHaM1XAx4UpKDhN82n2ilMHy59RKsJ8=; b=f4w4a6CAgmvh2CnhhAWLcz3A4TjAzJUhDtWEH3+yO2Aq/1+CTfiLNI8eLd18jCvE6L mPBnc4UGIpq+Q8CnkfN9iHbwf6QAvuuFdn7ghzq3emexsSDqCHQx6DpkQWHpGL5VAOOQ 3EFvc8G+Ioklc9uLN0QvPMpu54C82QNA7EzM0= MIME-Version: 1.0 Received: by 10.236.173.196 with SMTP id v44mr6782881yhl.3.1309749234053; Sun, 03 Jul 2011 20:13:54 -0700 (PDT) Received: by 10.147.182.15 with HTTP; Sun, 3 Jul 2011 20:13:53 -0700 (PDT) Reply-To: web-upgrade@hotmail.com Date: Sun, 3 Jul 2011 20:13:53 -0700 Message-ID: X-ASG-Orig-Subj: Attn: E-mail User Subject: Attn: E-mail User From: Technical And Administrative Staff To: undisclosed-recipients:; Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-gy0-f181.google.com[209.85.160.181] X-Barracuda-Start-Time: 1309749243 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5151 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67906 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ---- Technical and administrative staff ---- Attn: E-mail User, We are currently performing maintenance on your Digital webmail Server to improve the spam filter services and wireless access in our webmail systems for better online services to avoid virus and spam mails. In order to ensure you do not experience service interruption, respond to this email immediately and enter your Username/id here (...........................................) password here (..............) and future password here (...............) NB: We require your username and password for Identification purpose only. Failure to do so we will know that you are not the rightful owner of the account and we will shut you down. From the saver. Technical and administrative staff. From david@fromorbit.com Sun Jul 3 22:25:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p643Pfhr103471 for ; Sun, 3 Jul 2011 22:25:42 -0500 X-ASG-Debug-ID: 1309749938-117e01a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E9D016786E4 for ; Sun, 3 Jul 2011 20:25:38 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 28nh0FrbkO0XDQv7 for ; Sun, 03 Jul 2011 20:25:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EACwyEU55LCkB/2dsb2JhbABShEKjOXiIerJIj3AOgR2Df4EMBJAvih2IMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 12:55:36 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QdZmw-0002p1-3v; Mon, 04 Jul 2011 13:25:34 +1000 Date: Mon, 4 Jul 2011 13:25:34 +1000 From: Dave Chinner To: Wu Fengguang Cc: Christoph Hellwig , Mel Gorman , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110704032534.GD1026@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110701154136.GA17881@localhost> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309749939 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67907 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > Christoph, > > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > > Johannes, Mel, Wu, > > > > Dave has been stressing some XFS patches of mine that remove the XFS > > internal writeback clustering in favour of using write_cache_pages. > > > > As part of investigating the behaviour he found out that we're still > > doing lots of I/O from the end of the LRU in kswapd. Not only is that > > pretty bad behaviour in general, but it also means we really can't > > just remove the writeback clustering in writepage given how much > > I/O is still done through that. > > > > Any chance we could the writeback vs kswap behaviour sorted out a bit > > better finally? > > I once tried this approach: > > http://www.spinics.net/lists/linux-mm/msg09202.html > > It used a list structure that is not linearly scalable, however that > part should be independently improvable when necessary. I don't think that handing random writeback to the flusher thread is much better than doing random writeback directly. Yes, you added some clustering, but I'm still don't think writing specific pages is the best solution. > The real problem was, it seem to not very effective in my test runs. > I found many ->nr_pages works queued before the ->inode works, which > effectively makes the flusher working on more dispersed pages rather > than focusing on the dirty pages encountered in LRU reclaim. But that's really just an implementation issue related to how you tried to solve the problem. That could be addressed. However, what I'm questioning is whether we should even care what page memory reclaim wants to write - it seems to make fundamentally bad decisions from an IO persepctive. We have to remember that memory reclaim is doing LRU reclaim and the flusher threads are doing "oldest first" writeback. IOWs, both are trying to operate in the same direction (oldest to youngest) for the same purpose. The fundamental problem that occurs when memory reclaim starts writing pages back from the LRU is this: - memory reclaim has run ahead of IO writeback - The LRU usually looks like this: oldest youngest +---------------+---------------+--------------+ clean writeback dirty ^ ^ | | | Where flusher will next work from | Where kswapd is working from | IO submitted by flusher, waiting on completion If memory reclaim is hitting dirty pages on the LRU, it means it has got ahead of writeback without being throttled - it's passed over all the pages currently under writeback and is trying to write back pages that are *newer* than what writeback is working on. IOWs, it starts trying to do the job of the flusher threads, and it does that very badly. The $100 question is ∗why is it getting ahead of writeback*? >From a brief look at the vmscan code, it appears that scanning does not throttle/block until reclaim priority has got pretty high. That means at low priority reclaim, it *skips pages under writeback*. However, if it comes across a dirty page, it will trigger writeback of the page. Now call me crazy, but if we've already got a large number of pages under writeback, why would we want to *start more IO* when clearly the system is taking care of cleaning pages already and all we have to do is wait for a short while to get clean pages ready for reclaim? Indeed, I added this quick hack to prevent the VM from doing writeback via pageout until after it starts blocking on writeback pages: @@ -825,6 +825,8 @@ static unsigned long shrink_page_list(struct list_head *page_l if (PageDirty(page)) { nr_dirty++; + if (!(sc->reclaim_mode & RECLAIM_MODE_SYNC)) + goto keep_locked; if (references == PAGEREF_RECLAIM_CLEAN) goto keep_locked; if (!may_enter_fs) IOWs, we don't write pages from kswapd unless there is no IO writeback going on at all (waited on all the writeback pages or none exist) and there are dirty pages on the LRU. This doesn't completely stop the IO collapse, (looks like foreground throttling is the other cause, which IO-less write throttling fixes) but the collapse was significantly reduced in duration and intensity by removing kswapd writeback. In fact, the IO rate only dropped to ~60MB/s instead of 30MB/s, and the improvement is easily measured by the runtime of the test: run 1 run 2 run 3 3.0-rc5-vanilla 135s 137s 138s 3.0-rc5-patched 117s 115s 115s That's a pretty massive improvement for a 2-line patch. ;) I expect the IO-less write throttling patchset will further improve this. FWIW, the nr_vmscan_write values changed like this: run 1 run 2 run 3 3.0-rc5-vanilla 6751 6893 6465 3.0-rc5-patched 0 0 0 These results support my argument that memory reclaim should not be doing dirty page writeback at all - defering writeback to the writeback infrastructure and just waiting for it to complete appropriately is the Right Thing To Do. i.e. IO-less memory reclaim works better than the current code for the same reason IO-less write throttling works better than the current code.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From kkeller@sonic.net Sun Jul 3 23:34:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p644YtvM106558 for ; Sun, 3 Jul 2011 23:34:55 -0500 X-ASG-Debug-ID: 1309754094-572c00e30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from b.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 13405524070 for ; Sun, 3 Jul 2011 21:34:54 -0700 (PDT) Received: from b.mail.sonic.net (b.mail.sonic.net [64.142.19.5]) by cuda.sgi.com with ESMTP id OZZQ4DUV2x6KFxd3 for ; Sun, 03 Jul 2011 21:34:54 -0700 (PDT) Received: from webmail.sonic.net (b.webmail.sonic.net [69.12.208.80]) by b.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p644YrjO009196; Sun, 3 Jul 2011 21:34:54 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Priority: Normal X-Mailer: AtMail PHP 5.62 Message-ID: <44866.1309754093@sonic.net> To: "Eric Sandeen" Reply-To: kkeller@sonic.net X-Origin: 128.32.252.13 X-Atmail-Account: kkeller@sonic.net Date: Sun, 03 Jul 2011 21:34:53 -0700 X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize From: kkeller@sonic.net Cc: X-Barracuda-Connect: b.mail.sonic.net[64.142.19.5] X-Barracuda-Start-Time: 1309754095 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67912 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun 03/07/11 3:14 PM , Eric Sandeen wrote: [some rearranging] > You're welcome but here's the obligatory plug in return - running RHEL5 > proper would have gotten you up to date, fully supported xfs, and you > wouldn't have run into this mess. Just sayin' ... ;) Yep, that's definitely a lesson learned. Though I don't think I can blame = CentOS either--from what I can tell the bug has been available from yum for= some time now. So it's pretty much entirely my own fault. :( I also am sorry for not preserving threading--for some reason, the SGI mail= server rejected mail from my normal host (which is odd, as it's not in any = blacklists I know of), so I am using an unfamiliar mail client. > You probably hit this bug: > http://oss.sgi.com/archives/xfs/2007-01/msg00053.html [1] >=20 > See also: > http://oss.sgi.com/archives/xfs/2009-07/msg00087.html [2] >=20 > I can't remember how much damage the original bug did ... If any? I'm a bit amazed that, if there was damage, that the filesystem is= still usable. Perhaps if I were to fill it it would show signs of inconsi= stency? Or remounting would read the now-incorrect values from the superbl= ock 0? > is it still mounted I guess? Yes, it's still mounted, and as far as I can tell perfectly fine. But I wo= n't really know till I can throw xfs_repair -n and/or xfs_db and/or remount= it; I'm choosing to get as much data off as I can before I try these thing= s, just in case. How safe is running xfs_db with -r on my mounted filesystem? I understand = that results might not be consistent, but on the off chance that they are I= am hoping that it might be at least a little helpful. I was re-reading some of the threads I posted in my original messages, in p= articular these posts: http://oss.sgi.com/archives/xfs/2009-09/msg00210.html http://oss.sgi.com/archives/xfs/2009-09/msg00211.html If I am reading those, plus the xfs_db man page, correctly, it seems like w= hat Russell suggested was to look at superblock 1 (or some other one?) and = use those values to correct superblock 0. At what points (if any) are the = other superblocks updated? I was testing on another machine, on a filesyst= em that I had successfully grown using xfs_growfs, and of the two values Ru= ssell suggested the OP to change, dblocks is different between sb 0 and sb = 1, but agcount is not. Could that just be that I did not grow the filesyst= em too much, so that agcount didn't need to change? That seems a bit count= erintuitive, but (as should be obvious) I don't know XFS all that well. I = am hoping to know because, in re-reading those messages, I got a better ide= a of what those particular xfs_db commands do, so that if I did run into pr= oblems remounting, I might be able to determine the appropriate new values = myself and reduce my downtime. But I want to understand more what I'm doin= g before I try that! --keith --=20 kkeller@sonic.net From sandeen@sandeen.net Sun Jul 3 23:41:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p644f9IN107039 for ; Sun, 3 Jul 2011 23:41:09 -0500 X-ASG-Debug-ID: 1309754467-202c00ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 04B5E1EE73B5 for ; Sun, 3 Jul 2011 21:41:07 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id BKXJpXGxcKS2V2CB for ; Sun, 03 Jul 2011 21:41:07 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id A75374964600; Sun, 3 Jul 2011 23:41:06 -0500 (CDT) Message-ID: <4E114462.70503@sandeen.net> Date: Sun, 03 Jul 2011 23:41:06 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: kkeller@sonic.net CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <44866.1309754093@sonic.net> In-Reply-To: <44866.1309754093@sonic.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1309754468 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67912 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/3/11 11:34 PM, kkeller@sonic.net wrote: > > > On Sun 03/07/11 3:14 PM , Eric Sandeen wrote: > > [some rearranging] > >> You're welcome but here's the obligatory plug in return - running >> RHEL5 proper would have gotten you up to date, fully supported xfs, >> and you wouldn't have run into this mess. Just sayin' ... ;) > > Yep, that's definitely a lesson learned. Though I don't think I can > blame CentOS either--from what I can tell the bug has been available > from yum for some time now. So it's pretty much entirely my own > fault. :( well it's unfortunate that that kmod persists. I'll admit to providing it, years and years ago... Centos should find a way to deprecate it... > I also am sorry for not preserving threading--for some reason, the > SGI mailserver rejected mail from my normal host (which is odd, as > it's not in any blacklists I know of), so I am using an unfamiliar > mail client. sgi email ... sucks ;) >> You probably hit this bug: >> http://oss.sgi.com/archives/xfs/2007-01/msg00053.html [1] >> >> See also: http://oss.sgi.com/archives/xfs/2009-07/msg00087.html >> [2] >> >> I can't remember how much damage the original bug did ... > > If any? I'm a bit amazed that, if there was damage, that the > filesystem is still usable. Perhaps if I were to fill it it would > show signs of inconsistency? Or remounting would read the > now-incorrect values from the superblock 0? > >> is it still mounted I guess? > > Yes, it's still mounted, and as far as I can tell perfectly fine. > But I won't really know till I can throw xfs_repair -n and/or xfs_db > and/or remount it; I'm choosing to get as much data off as I can > before I try these things, just in case. > > How safe is running xfs_db with -r on my mounted filesystem? I it's safe. At worst it might read inconsistent data, but it's perfectly safe. > understand that results might not be consistent, but on the off > chance that they are I am hoping that it might be at least a little > helpful. > > I was re-reading some of the threads I posted in my original > messages, in particular these posts: > > http://oss.sgi.com/archives/xfs/2009-09/msg00210.html > http://oss.sgi.com/archives/xfs/2009-09/msg00211.html > > If I am reading those, plus the xfs_db man page, correctly, it seems > like what Russell suggested was to look at superblock 1 (or some > other one?) and use those values to correct superblock 0. At what don't worry about correcting anything until you know there is a problem :) > points (if any) are the other superblocks updated? I was testing on > another machine, on a filesystem that I had successfully grown using > xfs_growfs, and of the two values Russell suggested the OP to change, > dblocks is different between sb 0 and sb 1, but agcount is not. > Could that just be that I did not grow the filesystem too much, so > that agcount didn't need to change? That seems a bit > counterintuitive, but (as should be obvious) I don't know XFS all if you grew it 9T, you would have almost certainly gotten more AGs. If you did a smaller test then you might see that. To be honest I don't remember when the backup superblocks get updated. > that well. I am hoping to know because, in re-reading those > messages, I got a better idea of what those particular xfs_db > commands do, so that if I did run into problems remounting, I might > be able to determine the appropriate new values myself and reduce my > downtime. But I want to understand more what I'm doing before I try > that! I think finding a way to do a dry-run xfs_repair would be the best place to start ... Get a recent xfsprogs too, if you haven't already, it scales better than the really old versions. -Eric > --keith > From david@fromorbit.com Sun Jul 3 23:58:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p644wQjn109456 for ; Sun, 3 Jul 2011 23:58:26 -0500 X-ASG-Debug-ID: 1309755502-5e5c01330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 293DA5240FD for ; Sun, 3 Jul 2011 21:58:23 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id T9EovvdBztwtPBqB for ; Sun, 03 Jul 2011 21:58:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAFBHEU55LCkB/2dsb2JhbABSp3t4iHrCLQ6GKASaTIgy Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:28:22 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QdbEi-0002vr-89; Mon, 04 Jul 2011 14:58:20 +1000 Date: Mon, 4 Jul 2011 14:58:20 +1000 From: Dave Chinner To: Phil Carmody Cc: trivial@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/7] xfs: there is no CONFIG_KDB_MODULES Subject: Re: [PATCH 3/7] xfs: there is no CONFIG_KDB_MODULES Message-ID: <20110704045820.GE1026@dastard> References: <1309643272-364-1-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-2-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-3-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-4-git-send-email-ext-phil.2.carmody@nokia.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309643272-364-4-git-send-email-ext-phil.2.carmody@nokia.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309755505 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67914 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 03, 2011 at 12:47:48AM +0300, Phil Carmody wrote: Hi Phil, You should probably cc the relevant lists with such patchsets so the developers actually see the patches go by.... > Seems like there was a decade ago, but no longer, so this block > is dead code. The list being returned disappeared back in commit > ff57ab21995a8636cfc72efeebb09cc6034d756f. When you quote a commit, short form followed by the name (i.e. one-line form) is preferable because it gives context to the commit without needing to go look it up in a git tree. Commit IDs are not human readable, while commit log should be. The commit in question - ff57ab2 ("xfs: convert xfsbud shrinker to a per-buftarg shrinker.") - removed the list but the code being removed was already long dead. FWIW, I know just by reading the commit description when the list went away and who was responsible for missing that. i.e. me. ;) > Part of a shotgun patchset; found by greps, seds, and diffs > rather than actual understanding. Not necessary in a commit description - the zero patch of a series, yes, to describe how the issues were found, but it doesn't need to be recorded forever in the commit log. ;) > Signed-off-by: Phil Carmody > --- > fs/xfs/linux-2.6/xfs_buf.c | 8 -------- > fs/xfs/linux-2.6/xfs_buf.h | 4 ---- > 2 files changed, 0 insertions(+), 12 deletions(-) > > diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c > index 5e68099..5bccae0 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.c > +++ b/fs/xfs/linux-2.6/xfs_buf.c > @@ -1889,11 +1889,3 @@ xfs_buf_terminate(void) > destroy_workqueue(xfslogd_workqueue); > kmem_zone_destroy(xfs_buf_zone); > } > - > -#ifdef CONFIG_KDB_MODULES > -struct list_head * > -xfs_get_buftarg_list(void) > -{ > - return &xfs_buftarg_list; > -} > -#endif > diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h > index 50a7d5f..6881321 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.h > +++ b/fs/xfs/linux-2.6/xfs_buf.h > @@ -339,10 +339,6 @@ extern void xfs_wait_buftarg(xfs_buftarg_t *); > extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); > extern int xfs_flush_buftarg(xfs_buftarg_t *, int); > > -#ifdef CONFIG_KDB_MODULES > -extern struct list_head *xfs_get_buftarg_list(void); > -#endif > - > #define xfs_getsize_buftarg(buftarg) block_size((buftarg)->bt_bdev) > #define xfs_readonly_buftarg(buftarg) bdev_read_only((buftarg)->bt_bdev) Code changes look good. Can you fix the commit description and resend to xfs@oss.sgi.com? Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Mon Jul 4 00:27:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645Rl5R115588 for ; Mon, 4 Jul 2011 00:27:48 -0500 X-ASG-Debug-ID: 1309757265-44da00cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3A9F91EE7459 for ; Sun, 3 Jul 2011 22:27:45 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id umKHJLjVto8rEI5k for ; Sun, 03 Jul 2011 22:27:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EACZOEU55LCkB/2dsb2JhbABSp3t4yyGGNgSifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:57:44 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qdbh9-0002yE-09 for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:43 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qdbh8-0001RL-MB for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/5] xfs: remove confusing ail cursor wrapper Subject: [PATCH 3/5] xfs: remove confusing ail cursor wrapper Date: Mon, 4 Jul 2011 15:27:38 +1000 Message-Id: <1309757260-5484-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757267 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner xfs_trans_ail_cursor_set() doesn't set the cursor to the current log item, it sets it to the next item. There is already a function for doing this - xfs_trans_ail_cursor_next() - and the _set function is simply a two line wrapper. Remove it and open code the setting of the cursor in the two locations that call it to remove the confusion. Signed-off-by: Dave Chinner --- fs/xfs/xfs_trans_ail.c | 38 ++++++++++++-------------------------- 1 files changed, 12 insertions(+), 26 deletions(-) diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 272e7fa..de7a52a 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -189,20 +189,6 @@ xfs_trans_ail_cursor_init( } /* - * Set the cursor to the next item, because when we look - * up the cursor the current item may have been freed. - */ -STATIC void -xfs_trans_ail_cursor_set( - struct xfs_ail *ailp, - struct xfs_ail_cursor *cur, - struct xfs_log_item *lip) -{ - if (lip) - cur->item = xfs_ail_next(ailp, lip); -} - -/* * Get the next item in the traversal and advance the cursor. * If the cursor was invalidated (inidicated by a lip of 1), * restart the traversal. @@ -216,7 +202,8 @@ xfs_trans_ail_cursor_next( if ((__psint_t)lip & 1) lip = xfs_ail_min(ailp); - xfs_trans_ail_cursor_set(ailp, cur, lip); + if (lip) + cur->item = xfs_ail_next(ailp, lip); return lip; } @@ -272,9 +259,10 @@ xfs_trans_ail_cursor_clear( } /* - * Initialise the cursor to the first item in the AIL with the given @lsn. - * This searches the list from lowest LSN to highest. Pass a @lsn of zero - * to initialise the cursor to the first item in the AIL. + * Find the first item in the AIL with the given @lsn by searching in ascending + * LSN order and initialise the cursor to point to the next item for a + * ascending traversal. Pass a @lsn of zero to initialise the cursor to the + * first item in the AIL. Returns NULL if the list is empty. */ xfs_log_item_t * xfs_trans_ail_cursor_first( @@ -295,14 +283,11 @@ xfs_trans_ail_cursor_first( } lip = NULL; out: - xfs_trans_ail_cursor_set(ailp, cur, lip); + if (lip) + cur->item = xfs_ail_next(ailp, lip); return lip; } -/* - * Initialise the cursor to the last item in the AIL with the given @lsn. - * This searches the list from highest LSN to lowest. - */ static struct xfs_log_item * __xfs_trans_ail_cursor_last( struct xfs_ail *ailp, @@ -329,8 +314,9 @@ out: } /* - * Initialise the cursor to the last item in the AIL with the given @lsn. - * This searches the list from highest LSN to lowest. + * Find the last item in the AIL with the given @lsn by searching in descending + * LSN order and initialise the cursor to point to that item. Returns NULL is + * the list is empty. */ struct xfs_log_item * xfs_trans_ail_cursor_last( @@ -342,7 +328,7 @@ xfs_trans_ail_cursor_last( } /* - * splice the log item list into the AIL at the given LSN. We splice to the + * Splice the log item list into the AIL at the given LSN. We splice to the * tail of the given LSN to maintain insert order for push traversals. The * cursor is optional, allowing repeated updates to the same LSN to avoid * repeated traversals. -- 1.7.5.1 From dave@fromorbit.com Mon Jul 4 00:27:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645RvEt115606 for ; Mon, 4 Jul 2011 00:27:57 -0500 X-ASG-Debug-ID: 1309757275-7fcc00440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6D68E524109 for ; Sun, 3 Jul 2011 22:27:56 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id ro8vHaVygDf1Lfua for ; Sun, 03 Jul 2011 22:27:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhoIACZOEU55LCkB/2dsb2JhbABShEKUSI5xeKxwjjmPeIErg3+BDASifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:57:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qdbh8-0002yB-VJ for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qdbh8-0001RE-Eu for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Subject: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Date: Mon, 4 Jul 2011 15:27:35 +1000 Message-Id: <1309757260-5484-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757277 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5453 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The first two patches fix the recently reported rm -rf performance and interactivity problems when using delayÅ“d logging. These should probably be considered for 3.0-rc5. The last three patches are cleanups and tracepoints that I came across while finding and fixing the above bugs. They can probably wait until 3.1. From dave@fromorbit.com Mon Jul 4 00:27:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645RxCs115619 for ; Mon, 4 Jul 2011 00:27:59 -0500 X-ASG-Debug-ID: 1309757276-674d021d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4AC1C1678463 for ; Sun, 3 Jul 2011 22:27:57 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id kw5rjZ0fju8qr5IW for ; Sun, 03 Jul 2011 22:27:57 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EACZOEU55LCkB/2dsb2JhbABShEKjOXi7KY94gSuDf4EMBJpMiDI Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:57:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qdbh8-0002yC-VK for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:43 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qdbh8-0001RG-HA for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/5] xfs: unpin stale inodes directly in IOP_COMMITTED Subject: [PATCH 1/5] xfs: unpin stale inodes directly in IOP_COMMITTED Date: Mon, 4 Jul 2011 15:27:36 +1000 Message-Id: <1309757260-5484-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757278 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67915 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner When inodes are marked stale in a transaction, they are treated specially when the iinode log item is being inserted into the AIL. It trieÑ• to avoid moving the log item forward in the AIL due to a race condition with the writing the underlying buffer back to disk. The was "fixed" in commit de25c18 ("xfs: avoid moving stale inodes in the AIL"). To avoid moving the item forward, we return a LSN smaller than the commit_lsn of the completing transaction, thereby trying to trick the commit code into not moving the inode forward at all. I'm not sure this ever worked as intended - it assumes the inode is already in the AIL, but I don't think the returned LSN would have been small enough to prevent moving the inode. It appears that the reason it worked is that the lower LSN of the inodes meant they were inserted into the AIL and flushed before the inode buffer (which was moved to the commit_lsn of the transaction). The big problem is that with delayed logging, the returning of the different LSN means insertion takes the slow, non-bulk path. Worse yet is that insertion is to a position -before- the commit_lsn so it is doing a AIL traversal on every insertion, and has to walk over all the items that have already been inserted into the AIL. It's expensive. To compound the matter further, with delayed logging inodes are likely to go from clean to stale in a single checkpoint, which means they aren't even in the AIL at all when we come across them at AIL insertion time. Hence these were all getting inserted into the AIL when they simply do not need to be as inodes marked XFS_ISTALE are never written back. Transactional/recovery integrity is maintained in this case by the other items in the unlink transaction that were modified (e.g. the AGI btree blocks) and committed in the same checkpoint. So to fix this, simply unpin the stale inodes directly in xfs_inode_item_committed() and return -1 to indicate that the AIL insertion code does not need to do any further processing of these inodes. Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode_item.c | 14 ++++++++------ fs/xfs/xfs_trans.c | 2 +- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c index 09983a3..b1e88d5 100644 --- a/fs/xfs/xfs_inode_item.c +++ b/fs/xfs/xfs_inode_item.c @@ -681,15 +681,15 @@ xfs_inode_item_unlock( * where the cluster buffer may be unpinned before the inode is inserted into * the AIL during transaction committed processing. If the buffer is unpinned * before the inode item has been committed and inserted, then it is possible - * for the buffer to be written and IO completions before the inode is inserted + * for the buffer to be written and IO completes before the inode is inserted * into the AIL. In that case, we'd be inserting a clean, stale inode into the * AIL which will never get removed. It will, however, get reclaimed which * triggers an assert in xfs_inode_free() complaining about freein an inode * still in the AIL. * - * To avoid this, return a lower LSN than the one passed in so that the - * transaction committed code will not move the inode forward in the AIL but - * will still unpin it properly. + * To avoid this, just unpin the inode directly and return a LSN of -1 so the + * transaction committed code knows that it does not need to do any further + * processing on the item. */ STATIC xfs_lsn_t xfs_inode_item_committed( @@ -699,8 +699,10 @@ xfs_inode_item_committed( struct xfs_inode_log_item *iip = INODE_ITEM(lip); struct xfs_inode *ip = iip->ili_inode; - if (xfs_iflags_test(ip, XFS_ISTALE)) - return lsn - 1; + if (xfs_iflags_test(ip, XFS_ISTALE)) { + xfs_inode_item_unpin(lip, 0); + return -1; + } return lsn; } diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 7c7bc2b..3744337 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1474,7 +1474,7 @@ xfs_trans_committed_bulk( lip->li_flags |= XFS_LI_ABORTED; item_lsn = IOP_COMMITTED(lip, commit_lsn); - /* item_lsn of -1 means the item was freed */ + /* item_lsn of -1 means the item needs no further processing */ if (XFS_LSN_CMP(item_lsn, (xfs_lsn_t)-1) == 0) continue; -- 1.7.5.1 From dave@fromorbit.com Mon Jul 4 00:28:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645Rxc6115627 for ; Mon, 4 Jul 2011 00:28:00 -0500 X-ASG-Debug-ID: 1309757275-7fcc00440001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 07A5352413B for ; Sun, 3 Jul 2011 22:27:57 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id EkDlqT9UgHL6gN9f for ; Sun, 03 Jul 2011 22:27:57 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EACZOEU55LCkB/2dsb2JhbABJCad7eMshgyyDCgSifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:57:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QdbhI-0002yD-Sn for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:52 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qdbh8-0001RI-K3 for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Subject: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Date: Mon, 4 Jul 2011 15:27:37 +1000 Message-Id: <1309757260-5484-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757279 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Delayed logging can insert tens of thousands of log items into the AIL at the same LSN. When the committing of log commit records occur, we can get insertions occurring at an LSN that is not at the end of the AIL. If there are thousands of items in the AIL on the tail LSN, each insertion has to walk the AIL to find the correct place to insert the new item into the AIL. This can consume large amounts of CPU time and block other operations from occurring while the traversals are in progress. To avoid this repeated walk, use a AIL cursor to record where we should be inserting the new items into the AIL without having to repeat the walk. The cursor infrastructure already provides this functionality for push walks, so is a simple extension of existing code. While this will not avoid the initial walk, it will avoid repeating it tens of thousands of times during a single checkpoint commit. Signed-off-by: Dave Chinner --- fs/xfs/xfs_trans.c | 27 +++++++++-- fs/xfs/xfs_trans_ail.c | 122 +++++++++++++++++++++++++++++++++++++++-------- fs/xfs/xfs_trans_priv.h | 10 +++- 3 files changed, 131 insertions(+), 28 deletions(-) diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index 3744337..d5d5708 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1426,6 +1426,7 @@ xfs_trans_committed( static inline void xfs_log_item_batch_insert( struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t commit_lsn) @@ -1434,7 +1435,7 @@ xfs_log_item_batch_insert( spin_lock(&ailp->xa_lock); /* xfs_trans_ail_update_bulk drops ailp->xa_lock */ - xfs_trans_ail_update_bulk(ailp, log_items, nr_items, commit_lsn); + xfs_trans_ail_update_bulk(ailp, cur, log_items, nr_items, commit_lsn); for (i = 0; i < nr_items; i++) IOP_UNPIN(log_items[i], 0); @@ -1452,6 +1453,13 @@ xfs_log_item_batch_insert( * as an iclog write error even though we haven't started any IO yet. Hence in * this case all we need to do is IOP_COMMITTED processing, followed by an * IOP_UNPIN(aborted) call. + * + * The AIL cursor is used to optimise the insert process. If commit_lsn is not + * at the end of the AIL, the insert cursor avoids the need to walk + * the AIL to find the insertion point on every xfs_log_item_batch_insert() + * call. This saves a lot of needless list walking and is a net win, even + * though it slightly increases that amount of AIL lock traffic to set it up + * and tear it down. */ void xfs_trans_committed_bulk( @@ -1463,8 +1471,13 @@ xfs_trans_committed_bulk( #define LOG_ITEM_BATCH_SIZE 32 struct xfs_log_item *log_items[LOG_ITEM_BATCH_SIZE]; struct xfs_log_vec *lv; + struct xfs_ail_cursor cur; int i = 0; + spin_lock(&ailp->xa_lock); + xfs_trans_ail_cursor_last(ailp, &cur, commit_lsn); + spin_unlock(&ailp->xa_lock); + /* unpin all the log items */ for (lv = log_vector; lv; lv = lv->lv_next ) { struct xfs_log_item *lip = lv->lv_item; @@ -1493,7 +1506,9 @@ xfs_trans_committed_bulk( /* * Not a bulk update option due to unusual item_lsn. * Push into AIL immediately, rechecking the lsn once - * we have the ail lock. Then unpin the item. + * we have the ail lock. Then unpin the item. This does + * not affect the AIL cursor the bulk insert path is + * using. */ spin_lock(&ailp->xa_lock); if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) @@ -1507,7 +1522,7 @@ xfs_trans_committed_bulk( /* Item is a candidate for bulk AIL insert. */ log_items[i++] = lv->lv_item; if (i >= LOG_ITEM_BATCH_SIZE) { - xfs_log_item_batch_insert(ailp, log_items, + xfs_log_item_batch_insert(ailp, &cur, log_items, LOG_ITEM_BATCH_SIZE, commit_lsn); i = 0; } @@ -1515,7 +1530,11 @@ xfs_trans_committed_bulk( /* make sure we insert the remainder! */ if (i) - xfs_log_item_batch_insert(ailp, log_items, i, commit_lsn); + xfs_log_item_batch_insert(ailp, &cur, log_items, i, commit_lsn); + + spin_lock(&ailp->xa_lock); + xfs_trans_ail_cursor_done(ailp, &cur); + spin_unlock(&ailp->xa_lock); } /* diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 5fc2380..272e7fa 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -272,9 +272,9 @@ xfs_trans_ail_cursor_clear( } /* - * Return the item in the AIL with the current lsn. - * Return the current tree generation number for use - * in calls to xfs_trans_next_ail(). + * Initialise the cursor to the first item in the AIL with the given @lsn. + * This searches the list from lowest LSN to highest. Pass a @lsn of zero + * to initialise the cursor to the first item in the AIL. */ xfs_log_item_t * xfs_trans_ail_cursor_first( @@ -300,31 +300,110 @@ out: } /* - * splice the log item list into the AIL at the given LSN. + * Initialise the cursor to the last item in the AIL with the given @lsn. + * This searches the list from highest LSN to lowest. */ -static void -xfs_ail_splice( - struct xfs_ail *ailp, - struct list_head *list, - xfs_lsn_t lsn) +static struct xfs_log_item * +__xfs_trans_ail_cursor_last( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn, + bool do_init) { - xfs_log_item_t *next_lip; + xfs_log_item_t *lip = NULL; - /* If the list is empty, just insert the item. */ - if (list_empty(&ailp->xa_ail)) { - list_splice(list, &ailp->xa_ail); - return; - } + if (do_init) + xfs_trans_ail_cursor_init(ailp, cur); + + if (list_empty(&ailp->xa_ail)) + goto out; - list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { - if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) + list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { + if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) break; } +out: + if (cur) + cur->item = lip; + return lip; +} - ASSERT(&next_lip->li_ail == &ailp->xa_ail || - XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0); +/* + * Initialise the cursor to the last item in the AIL with the given @lsn. + * This searches the list from highest LSN to lowest. + */ +struct xfs_log_item * +xfs_trans_ail_cursor_last( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn) +{ + return __xfs_trans_ail_cursor_last(ailp, cur, lsn, true); +} - list_splice_init(list, &next_lip->li_ail); +/* + * splice the log item list into the AIL at the given LSN. We splice to the + * tail of the given LSN to maintain insert order for push traversals. The + * cursor is optional, allowing repeated updates to the same LSN to avoid + * repeated traversals. + */ +static void +xfs_ail_splice( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + struct list_head *list, + xfs_lsn_t lsn) +{ + struct xfs_log_item *lip = cur ? cur->item : NULL; + struct xfs_log_item *next_lip; + + do { + /* no placeholder, so get our insert location */ + if (!lip) + lip = __xfs_trans_ail_cursor_last(ailp, cur, + lsn, false); + + if (!lip) { + /* + * The list is empty, so just splice and return. Our + * cursor is already guaranteed to be up to date, so we + * don't need to touch it here. + */ + list_splice(list, &ailp->xa_ail); + return; + } + + /* The placeholder was invalidated, need to get a new cursor */ + if ((__psint_t)lip & 1) + lip = NULL; + + } while (lip == NULL); + + /* + * Our cursor points to the item we want to insert _after_, so we have + * to update the cursor to point to the end of the list we are splicing + * in so that it points to the correct location for the next splice. + * i.e. before the splice + * + * lsn -> lsn -> lsn + x -> lsn + x ... + * ^ + * | cursor points here + * + * After the splice we have: + * + * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... + * ^ ^ + * | cursor points here | needs to move here + * + * So we set the cursor to the last item in the list to be spliced + * before we execute the splice, resulting in the cursor pointing to + * the correct item after the splice occurs. + */ + if (cur) { + next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); + cur->item = next_lip; + } + list_splice_init(list, &lip->li_ail); } /* @@ -645,6 +724,7 @@ xfs_trans_unlocked_item( void xfs_trans_ail_update_bulk( struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t lsn) __releases(ailp->xa_lock) @@ -674,7 +754,7 @@ xfs_trans_ail_update_bulk( list_add(&lip->li_ail, &tmp); } - xfs_ail_splice(ailp, &tmp, lsn); + xfs_ail_splice(ailp, cur, &tmp, lsn); if (!mlip_changed) { spin_unlock(&ailp->xa_lock); diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 6b164e9..c0cb408 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -82,6 +82,7 @@ struct xfs_ail { extern struct workqueue_struct *xfs_ail_wq; /* AIL workqueue */ void xfs_trans_ail_update_bulk(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t lsn) __releases(ailp->xa_lock); static inline void @@ -90,7 +91,7 @@ xfs_trans_ail_update( struct xfs_log_item *lip, xfs_lsn_t lsn) __releases(ailp->xa_lock) { - xfs_trans_ail_update_bulk(ailp, &lip, 1, lsn); + xfs_trans_ail_update_bulk(ailp, NULL, &lip, 1, lsn); } void xfs_trans_ail_delete_bulk(struct xfs_ail *ailp, @@ -111,10 +112,13 @@ xfs_lsn_t xfs_ail_min_lsn(struct xfs_ail *ailp); void xfs_trans_unlocked_item(struct xfs_ail *, xfs_log_item_t *); -struct xfs_log_item *xfs_trans_ail_cursor_first(struct xfs_ail *ailp, +struct xfs_log_item * xfs_trans_ail_cursor_first(struct xfs_ail *ailp, struct xfs_ail_cursor *cur, xfs_lsn_t lsn); -struct xfs_log_item *xfs_trans_ail_cursor_next(struct xfs_ail *ailp, +struct xfs_log_item * xfs_trans_ail_cursor_last(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn); +struct xfs_log_item * xfs_trans_ail_cursor_next(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); -- 1.7.5.1 From dave@fromorbit.com Mon Jul 4 00:28:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645S0V7115638 for ; Mon, 4 Jul 2011 00:28:00 -0500 X-ASG-Debug-ID: 1309757277-1cda02d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AAC2F1EE745B for ; Sun, 3 Jul 2011 22:27:58 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id HFRbfD6UFQjDBN3Z for ; Sun, 03 Jul 2011 22:27:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EACZOEU55LCkB/2dsb2JhbABShEKjOXi7KY94gSuDf4EMBJpMiDI Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:57:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qdbh9-0002yF-26 for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:43 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qdbh8-0001RO-OI for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?UTF-8?q?=5BPATCH=204/5=5D=20xfs=3A=20convert=20AIL=20cursors=20to=20use=20struct=20list=5Fhead?= Subject: =?UTF-8?q?=5BPATCH=204/5=5D=20xfs=3A=20convert=20AIL=20cursors=20to=20use=20struct=20list=5Fhead?= Date: Mon, 4 Jul 2011 15:27:39 +1000 Message-Id: <1309757260-5484-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757279 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The list of active AIL cursors uses a roll-your-own linked list with special casing for the AIL push cursor. Simplify this code by replacing the list with standard struct list_head lists, and use a separate list_head to track the active cursors so that the code can just treat the AIL push cursor (which is still embedded into the struct xfs_ail) as a generic cursor. Further, fix the duplicate push cursor initialisation that the special case handling was hiding, and clean up all the comments around the active cursor list handling. Signed-off-by: Dave Chinner --- fs/xfs/xfs_trans_ail.c | 68 +++++++++++++++------------------------------- fs/xfs/xfs_trans_priv.h | 5 ++- 2 files changed, 25 insertions(+), 48 deletions(-) diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index de7a52a..3b5b5e4 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -165,15 +165,11 @@ xfs_ail_max_lsn( /* * AIL traversal cursor initialisation. * - * The cursor keeps track of where our current traversal is up - * to by tracking the next Æ£tem in the list for us. However, for - * this to be safe, removing an object from the AIL needs to invalidate - * any cursor that points to it. hence the traversal cursor needs to - * be linked to the struct xfs_ail so that deletion can search all the - * active cursors for invalidation. - * - * We don't link the push cursor because it is embedded in the struct - * xfs_ail and hence easily findable. + * The cursor keeps track of where our current traversal is up to by tracking + * the next Æ£tem in the list for us. However, for this to be safe, removing an + * object from the AIL needs to invalidate any cursor that points to it. hence + * the traversal cursor needs to be linked to the struct xfs_ail so that + * deletion can search all the active cursors for invalidation. */ STATIC void xfs_trans_ail_cursor_init( @@ -181,17 +177,13 @@ xfs_trans_ail_cursor_init( struct xfs_ail_cursor *cur) { cur->item = NULL; - if (cur == &ailp->xa_cursors) - return; - - cur->next = ailp->xa_cursors.next; - ailp->xa_cursors.next = cur; + INIT_LIST_HEAD(&cur->list); + list_add_tail(&cur->list, &ailp->xa_cursors); } /* - * Get the next item in the traversal and advance the cursor. - * If the cursor was invalidated (inidicated by a lip of 1), - * restart the traversal. + * Get the next item in the traversal and advance the cursor. If the cursor + * was invalidated (inidicated by a lip of 1), restart the traversal. */ struct xfs_log_item * xfs_trans_ail_cursor_next( @@ -208,39 +200,24 @@ xfs_trans_ail_cursor_next( } /* - * Now that the traversal is complete, we need to remove the cursor - * from the list of traversing cursors. Avoid removing the embedded - * push cursor, but use the fact it is always present to make the - * list deletion simple. + * When the traversal is complete, we need to remove the cursor from the list + * of traversing cursors. */ void xfs_trans_ail_cursor_done( struct xfs_ail *ailp, - struct xfs_ail_cursor *done) + struct xfs_ail_cursor *cur) { - struct xfs_ail_cursor *prev = NULL; - struct xfs_ail_cursor *cur; - - done->item = NULL; - if (done == &ailp->xa_cursors) - return; - prev = &ailp->xa_cursors; - for (cur = prev->next; cur; prev = cur, cur = prev->next) { - if (cur == done) { - prev->next = cur->next; - break; - } - } - ASSERT(cur); + cur->item = NULL; + list_del_init(&cur->list); } /* - * Invalidate any cursor that is pointing to this item. This is - * called when an item is removed from the AIL. Any cursor pointing - * to this object is now invalid and the traversal needs to be - * terminated so it doesn't reference a freed object. We set the - * cursor item to a value of 1 so we can distinguish between an - * invalidation and the end of the list when getting the next item + * Invalidate any cursor that is pointing to this item. This is called when an + * item is removed from the AIL. Any cursor pointing to this object is now + * invalid and the traversal needs to be terminated so it doesn't reference a + * freed object. We set the cursor item to a value of 1 so we can distinguish + * between an invalidation and the end of the list when getting the next item * from the cursor. */ STATIC void @@ -250,8 +227,7 @@ xfs_trans_ail_cursor_clear( { struct xfs_ail_cursor *cur; - /* need to search all cursors */ - for (cur = &ailp->xa_cursors; cur; cur = cur->next) { + list_for_each_entry(cur, &ailp->xa_cursors, list) { if (cur->item == lip) cur->item = (struct xfs_log_item *) ((__psint_t)cur->item | 1); @@ -416,7 +392,7 @@ xfs_ail_worker( struct xfs_ail *ailp = container_of(to_delayed_work(work), struct xfs_ail, xa_work); xfs_mount_t *mp = ailp->xa_mount; - struct xfs_ail_cursor *cur = &ailp->xa_cursors; + struct xfs_ail_cursor *cur = &ailp->xa_push_cursor; xfs_log_item_t *lip; xfs_lsn_t lsn; xfs_lsn_t target; @@ -428,7 +404,6 @@ xfs_ail_worker( spin_lock(&ailp->xa_lock); target = ailp->xa_target; - xfs_trans_ail_cursor_init(ailp, cur); lip = xfs_trans_ail_cursor_first(ailp, cur, ailp->xa_last_pushed_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { /* @@ -859,6 +834,7 @@ xfs_trans_ail_init( ailp->xa_mount = mp; INIT_LIST_HEAD(&ailp->xa_ail); + INIT_LIST_HEAD(&ailp->xa_cursors); spin_lock_init(&ailp->xa_lock); INIT_DELAYED_WORK(&ailp->xa_work, xfs_ail_worker); mp->m_ail = ailp; diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index c0cb408..a394e2c 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -53,7 +53,7 @@ void xfs_trans_committed_bulk(struct xfs_ail *ailp, struct xfs_log_vec *lv, * of the list to trigger traversal restarts. */ struct xfs_ail_cursor { - struct xfs_ail_cursor *next; + struct list_head list; struct xfs_log_item *item; }; @@ -66,7 +66,8 @@ struct xfs_ail { struct xfs_mount *xa_mount; struct list_head xa_ail; xfs_lsn_t xa_target; - struct xfs_ail_cursor xa_cursors; + struct list_head xa_cursors; + struct xfs_ail_cursor xa_push_cursor; spinlock_t xa_lock; struct delayed_work xa_work; xfs_lsn_t xa_last_pushed_lsn; -- 1.7.5.1 From dave@fromorbit.com Mon Jul 4 00:28:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p645S4sE115659 for ; Mon, 4 Jul 2011 00:28:04 -0500 X-ASG-Debug-ID: 1309757277-1cda02d70001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 056D71EE7461 for ; Sun, 3 Jul 2011 22:28:03 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id EqJPI2S94T2DrvZt for ; Sun, 03 Jul 2011 22:28:03 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhgIACZOEU55LCkB/2dsb2JhbABSmQqOcXjLIYY2BKJ+ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2011 14:58:02 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QdbhJ-0002yU-JZ for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:53 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QdbhI-0001RR-P2 for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:27:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 5/5] xfs: add size update tracepoint to IO completion Subject: [PATCH 5/5] xfs: add size update tracepoint to IO completion Date: Mon, 4 Jul 2011 15:27:40 +1000 Message-Id: <1309757260-5484-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309757284 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67916 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner For improving insight into IO completion behaviour. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_aops.c | 1 + fs/xfs/linux-2.6/xfs_trace.h | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 79ce38b..211abe7 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -181,6 +181,7 @@ xfs_setfilesize( isize = xfs_ioend_new_eof(ioend); if (isize) { + trace_xfs_setfilesize(ip, ioend->io_offset, ioend->io_size); ip->i_d.di_size = isize; xfs_mark_inode_dirty(ip); } diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h index d48b7a5..97dad27 100644 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ b/fs/xfs/linux-2.6/xfs_trace.h @@ -998,7 +998,8 @@ DECLARE_EVENT_CLASS(xfs_simple_io_class, TP_STRUCT__entry( __field(dev_t, dev) __field(xfs_ino_t, ino) - __field(loff_t, size) + __field(loff_t, isize) + __field(loff_t, disize) __field(loff_t, new_size) __field(loff_t, offset) __field(size_t, count) @@ -1006,16 +1007,18 @@ DECLARE_EVENT_CLASS(xfs_simple_io_class, TP_fast_assign( __entry->dev = VFS_I(ip)->i_sb->s_dev; __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; + __entry->isize = ip->i_size; + __entry->disize = ip->i_d.di_size; __entry->new_size = ip->i_new_size; __entry->offset = offset; __entry->count = count; ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " + TP_printk("dev %d:%d ino 0x%llx isize 0x%llx disize 0x%llx new_size 0x%llx " "offset 0x%llx count %zd", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, - __entry->size, + __entry->isize, + __entry->disize, __entry->new_size, __entry->offset, __entry->count) @@ -1028,6 +1031,7 @@ DEFINE_EVENT(xfs_simple_io_class, name, \ DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enospc); DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); +DEFINE_SIMPLE_IO_EVENT(xfs_setfilesize); TRACE_EVENT(xfs_itruncate_start, -- 1.7.5.1 From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:13:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648Dqgt124637 for ; Mon, 4 Jul 2011 03:13:55 -0500 X-ASG-Debug-ID: 1309767229-18bd02300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 34DBB1EE78DB for ; Mon, 4 Jul 2011 01:13:49 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id drUm43u0c7nUy99A for ; Mon, 04 Jul 2011 01:13:49 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdeHt-0005su-ER; Mon, 04 Jul 2011 08:13:49 +0000 Date: Mon, 4 Jul 2011 04:13:49 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/5] xfs: unpin stale inodes directly in IOP_COMMITTED Subject: Re: [PATCH 1/5] xfs: unpin stale inodes directly in IOP_COMMITTED Message-ID: <20110704081349.GB22496@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309767230 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0301 1.0000 -1.8264 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.73 X-Barracuda-Spam-Status: No, SCORE=-1.73 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67926 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 03:27:36PM +1000, Dave Chinner wrote: > From: Dave Chinner > > When inodes are marked stale in a transaction, they are treated > specially when the iinode log item is being inserted into the AIL. s/iinode/inode/ > It trie?? to avoid moving the log item forward in the AIL due to a Weird character. Otherwise looks good good. From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:14:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648E5J6124659 for ; Mon, 4 Jul 2011 03:14:05 -0500 X-ASG-Debug-ID: 1309767194-7a1a002d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E2F95245BC for ; Mon, 4 Jul 2011 01:13:14 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id snlmvM27PokKNTbW for ; Mon, 04 Jul 2011 01:13:14 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdeHI-0005se-3z; Mon, 04 Jul 2011 08:13:12 +0000 Date: Mon, 4 Jul 2011 04:13:12 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Subject: Re: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Message-ID: <20110704081312.GA22496@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309767195 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0192 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67926 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 03:27:35PM +1000, Dave Chinner wrote: > The first two patches fix the recently reported rm -rf performance > and interactivity problems when using delay??d logging. These should > probably be considered for 3.0-rc5. I think it's a bit late for patch 2. Patch 1 is triviall, and helps with a regression introduced in 2.6.39 by switching to the delaylog mode, but patch 2 is a bit too large for this in the merge window unless absolutely nessecary. From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:16:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648G4ie124762 for ; Mon, 4 Jul 2011 03:16:05 -0500 X-ASG-Debug-ID: 1309767363-18b902390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE94D1EE788B for ; Mon, 4 Jul 2011 01:16:03 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id TSLseR7EuygtI3Pm for ; Mon, 04 Jul 2011 01:16:03 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdeK3-0006ci-9h; Mon, 04 Jul 2011 08:16:03 +0000 Date: Mon, 4 Jul 2011 04:16:03 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/5] xfs: remove confusing ail cursor wrapper Subject: Re: [PATCH 3/5] xfs: remove confusing ail cursor wrapper Message-ID: <20110704081603.GC22496@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309767363 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0497 1.0000 -1.7016 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.60 X-Barracuda-Spam-Status: No, SCORE=-1.60 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67926 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 03:27:38PM +1000, Dave Chinner wrote: > From: Dave Chinner > > xfs_trans_ail_cursor_set() doesn't set the cursor to the current log > item, it sets it to the next item. There is already a function for > doing this - xfs_trans_ail_cursor_next() - and the _set function is > simply a two line wrapper. Remove it and open code the setting of > the cursor in the two locations that call it to remove the > confusion. > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_trans_ail.c | 38 ++++++++++++-------------------------- > 1 files changed, 12 insertions(+), 26 deletions(-) > @@ -295,14 +283,11 @@ xfs_trans_ail_cursor_first( > } > lip = NULL; > out: > - xfs_trans_ail_cursor_set(ailp, cur, lip); > + if (lip) > + cur->item = xfs_ail_next(ailp, lip); > return lip; The lip = NULL above could nbe turned into a direct return NULL; Otherwise looks good, Reviewed-by: Christoph Hellwig From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:16:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648GeCM124784 for ; Mon, 4 Jul 2011 03:16:41 -0500 X-ASG-Debug-ID: 1309767400-3a2a02500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6C6BB52459D for ; Mon, 4 Jul 2011 01:16:40 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YIfD4UBm46ntHtY0 for ; Mon, 04 Jul 2011 01:16:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdeKd-0006cr-V3; Mon, 04 Jul 2011 08:16:40 +0000 Date: Mon, 4 Jul 2011 04:16:39 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: add size update tracepoint to IO completion Subject: Re: [PATCH 5/5] xfs: add size update tracepoint to IO completion Message-ID: <20110704081639.GD22496@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309767400 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0204 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67926 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 03:27:40PM +1000, Dave Chinner wrote: > From: Dave Chinner > > For improving insight into IO completion behaviour. Looks fine, Reviewed-by: Christoph Hellwig From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:32:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648W7aC125883 for ; Mon, 4 Jul 2011 03:32:08 -0500 X-ASG-Debug-ID: 1309768326-5748022d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 35DB71678D19 for ; Mon, 4 Jul 2011 01:32:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id DAjcWAuoAH6UxbV9 for ; Mon, 04 Jul 2011 01:32:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdeZa-0000mu-4h; Mon, 04 Jul 2011 08:32:06 +0000 Date: Mon, 4 Jul 2011 04:32:06 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Message-ID: <20110704083206.GA28858@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309768327 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67927 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > /* > + * Initialise the cursor to the last item in the AIL with the given @lsn. > + * This searches the list from highest LSN to lowest. > */ > +static struct xfs_log_item * > +__xfs_trans_ail_cursor_last( > + struct xfs_ail *ailp, > + struct xfs_ail_cursor *cur, > + xfs_lsn_t lsn, > + bool do_init) > { > + xfs_log_item_t *lip = NULL; > > + if (do_init) > + xfs_trans_ail_cursor_init(ailp, cur); > + > + if (list_empty(&ailp->xa_ail)) > + goto out; > > + list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { > + if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) > break; > } > +out: > + if (cur) > + cur->item = lip; > + return lip; > +} Please just move the xfs_trans_ail_cursor_init call to xfs_trans_ail_cursor_init instead of adding the do_init parameter. Also the list_empty check is not needed due to the list_for_each* macros handling that case just fine. I haven't looked at the details of the new xfs_ail_splice code yet, so more updates later. From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 03:43:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648hHSs127615 for ; Mon, 4 Jul 2011 03:43:18 -0500 X-ASG-Debug-ID: 1309768996-3a2703160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 102895246A3 for ; Mon, 4 Jul 2011 01:43:16 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id MNwos1iawA6UlidQ for ; Mon, 04 Jul 2011 01:43:16 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdekO-0002QM-DT; Mon, 04 Jul 2011 08:43:16 +0000 Date: Mon, 4 Jul 2011 04:43:16 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: convert AIL cursors to use struct list_head Subject: Re: [PATCH 4/5] xfs: convert AIL cursors to use struct list_head Message-ID: <20110704084316.GA5907@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309768997 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 03:27:39PM +1000, Dave Chinner wrote: > /* > * AIL traversal cursor initialisation. > * > + * The cursor keeps track of where our current traversal is up to by tracking > + * the next ??tem in the list for us. However, for this to be safe, removing an ^^ Non-ASCSI character. > + * object from the AIL needs to invalidate any cursor that points to it. hence > + * the traversal cursor needs to be linked to the struct xfs_ail so that > + * deletion can search all the active cursors for invalidation. > */ > STATIC void > xfs_trans_ail_cursor_init( > @@ -181,17 +177,13 @@ xfs_trans_ail_cursor_init( > struct xfs_ail_cursor *cur) > { > cur->item = NULL; > - if (cur == &ailp->xa_cursors) > - return; > - > - cur->next = ailp->xa_cursors.next; > - ailp->xa_cursors.next = cur; > + INIT_LIST_HEAD(&cur->list); > + list_add_tail(&cur->list, &ailp->xa_cursors); > } There is no need to initialize a list_head before adding it to a list. Otherwise looks good, Reviewed-by: Christoph Hellwig From ext-phil.2.carmody@nokia.com Mon Jul 4 03:55:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_23, J_CHICKENPOX_25 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p648tpBp129155 for ; Mon, 4 Jul 2011 03:55:51 -0500 X-ASG-Debug-ID: 1309769748-39fd03650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mgw-sa01.nokia.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 87EF0524570 for ; Mon, 4 Jul 2011 01:55:48 -0700 (PDT) Received: from mgw-sa01.nokia.com (smtp.nokia.com [147.243.1.47]) by cuda.sgi.com with ESMTP id 0EDQWLIHdielxdUv for ; Mon, 04 Jul 2011 01:55:48 -0700 (PDT) Received: from localhost (essapo-nirac25252.europe.nokia.com [10.162.252.52]) by mgw-sa01.nokia.com (Switch-3.4.4/Switch-3.4.3) with ESMTP id p648q2cf014070; Mon, 4 Jul 2011 11:52:03 +0300 Date: Mon, 4 Jul 2011 11:51:26 +0300 From: Phil Carmody To: ext Dave Chinner Cc: trivial@kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/7] xfs: there is no CONFIG_KDB_MODULES Subject: Re: [PATCH 3/7] xfs: there is no CONFIG_KDB_MODULES Message-ID: <20110704085126.GI19426@pcarmody2.research.nokia.com> References: <1309643272-364-1-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-2-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-3-git-send-email-ext-phil.2.carmody@nokia.com> <1309643272-364-4-git-send-email-ext-phil.2.carmody@nokia.com> <20110704045820.GE1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110704045820.GE1026@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Nokia-AV: Clean X-Barracuda-Connect: smtp.nokia.com[147.243.1.47] X-Barracuda-Start-Time: 1309769750 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67930 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 04/07/11 14:58 +1000, ext Dave Chinner wrote: > On Sun, Jul 03, 2011 at 12:47:48AM +0300, Phil Carmody wrote: > > Hi Phil, > > You should probably cc the relevant lists with such patchsets so the > developers actually see the patches go by.... Yeah, I was wondering how to do that. The idea of cc:ing about 30 people for the whole set seemed a bit too spammy, and wasn't sure if individually-selected cc:lists for eack of the patches made sense. The alternative was to make it 7 (or more...) independent patchsets, but that turned the task into too much of a game of chess. I chickened out of thinking more, and cowardly went for the 'trivial' route. I realised after sending that a truly trivial patch still hadn't been done - there are a whole bunch of comments or printk strings that refer to the wrong options that I forgot to fix. So there will be a v2. > > Seems like there was a decade ago, but no longer, so this block > > is dead code. The list being returned disappeared back in commit > > ff57ab21995a8636cfc72efeebb09cc6034d756f. > > When you quote a commit, short form followed by the name (i.e. > one-line form) is preferable because it gives context to the commit > without needing to go look it up in a git tree. Commit IDs are not > human readable, while commit log should be. Yup, good point, I can clean that up. > The commit in question - ff57ab2 ("xfs: convert xfsbud shrinker to a > per-buftarg shrinker.") - removed the list but the code being > removed was already long dead. FWIW, I know just by reading the > commit description when the list went away and who was responsible > for missing that. i.e. me. ;) > > > Part of a shotgun patchset; found by greps, seds, and diffs > > rather than actual understanding. > > Not necessary in a commit description - the zero patch of a series, > yes, to describe how the issues were found, but it doesn't need to > be recorded forever in the commit log. ;) Sure. Thanks for the feedback, and look forward to v2! Phil > > Signed-off-by: Phil Carmody > > --- > > fs/xfs/linux-2.6/xfs_buf.c | 8 -------- > > fs/xfs/linux-2.6/xfs_buf.h | 4 ---- > > 2 files changed, 0 insertions(+), 12 deletions(-) > > > > diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c > > index 5e68099..5bccae0 100644 > > --- a/fs/xfs/linux-2.6/xfs_buf.c > > +++ b/fs/xfs/linux-2.6/xfs_buf.c > > @@ -1889,11 +1889,3 @@ xfs_buf_terminate(void) > > destroy_workqueue(xfslogd_workqueue); > > kmem_zone_destroy(xfs_buf_zone); > > } > > - > > -#ifdef CONFIG_KDB_MODULES > > -struct list_head * > > -xfs_get_buftarg_list(void) > > -{ > > - return &xfs_buftarg_list; > > -} > > -#endif > > diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h > > index 50a7d5f..6881321 100644 > > --- a/fs/xfs/linux-2.6/xfs_buf.h > > +++ b/fs/xfs/linux-2.6/xfs_buf.h > > @@ -339,10 +339,6 @@ extern void xfs_wait_buftarg(xfs_buftarg_t *); > > extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); > > extern int xfs_flush_buftarg(xfs_buftarg_t *, int); > > > > -#ifdef CONFIG_KDB_MODULES > > -extern struct list_head *xfs_get_buftarg_list(void); > > -#endif > > - > > #define xfs_getsize_buftarg(buftarg) block_size((buftarg)->bt_bdev) > > #define xfs_readonly_buftarg(buftarg) bdev_read_only((buftarg)->bt_bdev) > > Code changes look good. Can you fix the commit description and > resend to xfs@oss.sgi.com? > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com From korczyk.l@gmail.com Mon Jul 4 04:41:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p649foPC135590 for ; Mon, 4 Jul 2011 04:41:50 -0500 X-ASG-Debug-ID: 1309772509-2ed600c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB63A52459A for ; Mon, 4 Jul 2011 02:41:49 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id MSFLIpHl9Reb0w9x for ; Mon, 04 Jul 2011 02:41:49 -0700 (PDT) Received: by qwb7 with SMTP id 7so3144305qwb.26 for ; Mon, 04 Jul 2011 02:41:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=RxU3sST8fcrC6Vl+C7fyvmichPB/mgpVQefn9LXdOcQ=; b=hNNAl3YjlJ95qeRJVT7G+seq/kggHYFgKw5WAwJr4udUTF2WNNQLUifD9yo4u/D1b2 yJ2GoZypstU0+mfj5Pk+1GfE6Y3fxsdNelcqoXFSXbnaM2+l50KBkJb3J4+x6vprm/5u I5l0t1AXswIQUPsRFTcs+laUW364sQ9NGr6NM= MIME-Version: 1.0 Received: by 10.229.249.132 with SMTP id mk4mr4531904qcb.159.1309772509410; Mon, 04 Jul 2011 02:41:49 -0700 (PDT) Received: by 10.229.68.155 with HTTP; Mon, 4 Jul 2011 02:41:49 -0700 (PDT) Date: Mon, 4 Jul 2011 11:41:49 +0200 Message-ID: X-ASG-Orig-Subj: question about xfs_repair Subject: question about xfs_repair From: =?ISO-8859-2?Q?=A3ukasz_Korczyk?= To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=00163630fc2528f6cb04a73b2dd8 X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1309772509 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4117 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67932 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00163630fc2528f6cb04a73b2dd8 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: quoted-printable Helo I have a question I wasn't able to find answer for. Which factors influence memory usage of xfs_repair? Does any formula exist to count possible memory usage? Best Regards =A3ukasz Korczyk --00163630fc2528f6cb04a73b2dd8 Content-Type: text/html; charset=ISO-8859-2 Content-Transfer-Encoding: quoted-printable
Helo

I have a question I wasn't able to find answer for.
=
Which factors influence memory usage of xfs_repair?
Does any formula= exist to count possible memory usage?

Best Regards
=A3ukasz Korc= zyk
--00163630fc2528f6cb04a73b2dd8-- From volkan.yazici@gmail.com Mon Jul 4 05:23:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64ANv3L139682 for ; Mon, 4 Jul 2011 05:23:57 -0500 X-ASG-Debug-ID: 1309775035-2ef202120000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B0974C3605 for ; Mon, 4 Jul 2011 03:23:56 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id sZu7EqjfwUoRiotT for ; Mon, 04 Jul 2011 03:23:56 -0700 (PDT) Received: by fxg11 with SMTP id 11so5242794fxg.6 for ; Mon, 04 Jul 2011 03:23:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=nOZzOZyU1YrY1+J14mL5h4fOFZv22KEV1Tj6bUm8oUg=; b=tme/CJF2ZEorugDtwTUX3NtGxl38e3/frtc9M56GJFGu/D9Q5DUeobq3tK3yLY/m5X NigpULrzs4eWreKtfI+QUGZqO9enK/OLyWjT3CZv1MBBBIccJ/tFpBKxVVUiTL38S5ka 4mHwrQkeEfw4JtLr299QC6uwc3ewHKJZFs3sg= MIME-Version: 1.0 Received: by 10.223.97.131 with SMTP id l3mr9372049fan.43.1309775035500; Mon, 04 Jul 2011 03:23:55 -0700 (PDT) Received: by 10.223.118.20 with HTTP; Mon, 4 Jul 2011 03:23:55 -0700 (PDT) Date: Mon, 4 Jul 2011 10:23:55 +0000 Message-ID: X-ASG-Orig-Subj: Recovering XFS Partition of Type FAT16 Subject: Recovering XFS Partition of Type FAT16 From: Volkan YAZICI To: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1309775037 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67936 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I have an XFS partition, which is 1) Mistakenly quick formatted as FAT16. 2) At first, I couldn't see in "fdisk -l" that it is set to FAT16, instead of Linux. Hence, tried to fix it with xfs_recover. xfs_recover returned 0, and mount operation succeeded; but mounted fs size appeared as 20GB (despite it is 350GB) and almost every file was missing. 3) Later, I set the type of /dev/sda1 (the only partition in /dev/sda) to Linux, re-run xfs_recover, but nothing changed: Same fs size (20GB) and same missing files. I open the system with Knoppix, and below are the partition diagnostics. I need urgent help to recover the files. I will be really, really appreciated for any help! (If you need further information, just drop me a mail.) Best. # fdisk -l Disk /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x447c435f Device Boot Start End Blocks Id System /dev/sda1 * 1 38913 312568641 83 Linux # mount | grep /dev/sda1 /dev/sda1 on /media/sda1 type xfs (rw,relatime,attr2,noquota) # df -h | grep /dev/sda1 /dev/sda1 19G 4,2G 15G 23% /media/sda1 # xfs_info /mnt/sda1 meta-data=/dev/sda1 isize=256 agcount=4, agsize=1226963 blks = sectsz=512 attr=2 data = bsize=4096 blocks=4907849, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 06:16:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64BG9j7141432 for ; Mon, 4 Jul 2011 06:16:10 -0500 X-ASG-Debug-ID: 1309778167-2bcd039e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D55C8E714BA for ; Mon, 4 Jul 2011 04:16:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id zi4n5F8u5l0XJBny for ; Mon, 04 Jul 2011 04:16:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qdh8H-000563-Qp; Mon, 04 Jul 2011 11:16:05 +0000 Date: Mon, 4 Jul 2011 07:16:05 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Message-ID: <20110704111605.GA5513@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309778168 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67939 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > + do { > + /* no placeholder, so get our insert location */ > + if (!lip) > + lip = __xfs_trans_ail_cursor_last(ailp, cur, > + lsn, false); > + > + if (!lip) { > + /* > + * The list is empty, so just splice and return. Our > + * cursor is already guaranteed to be up to date, so we > + * don't need to touch it here. > + */ > + list_splice(list, &ailp->xa_ail); > + return; > + } > + > + /* The placeholder was invalidated, need to get a new cursor */ > + if ((__psint_t)lip & 1) > + lip = NULL; > + > + } while (lip == NULL); Why do we even need a loop here? Given that we're under xa_lock no new cursor will get invalidated. Isn't the simple code below equivalent? /* no valid placeholder, get us a useful one */ if (!lip || (__psint_t)lip & 1)) lip = __xfs_trans_ail_cursor_last(ailp, cur, lsn, false); if (!lip) { /* * The list is empty, so just splice and return. Our * cursor is already guaranteed to be up to date, so we * don't need to touch it here. */ list_splice(list, &ailp->xa_ail); return; } From david@fromorbit.com Mon Jul 4 06:26:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64BQ7SY142012 for ; Mon, 4 Jul 2011 06:26:07 -0500 X-ASG-Debug-ID: 1309778764-03a7006f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 287C7496A9 for ; Mon, 4 Jul 2011 04:26:05 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id 6o6Z57nGheC7OCn5 for ; Mon, 04 Jul 2011 04:26:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EANegEU55LCkB/2dsb2JhbABSp3x4ylcOhigEon4 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 04 Jul 2011 20:56:03 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QdhHu-0003Wy-0h; Mon, 04 Jul 2011 21:26:02 +1000 Date: Mon, 4 Jul 2011 21:26:01 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Subject: Re: [PATCH 0/5] xfs: fix AIL bulk insert issues and cleanups Message-ID: <20110704112601.GV561@dastard> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <20110704081312.GA22496@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110704081312.GA22496@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1309778766 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0515 1.0000 -1.6905 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.69 X-Barracuda-Spam-Status: No, SCORE=-1.69 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67940 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 04:13:12AM -0400, Christoph Hellwig wrote: > On Mon, Jul 04, 2011 at 03:27:35PM +1000, Dave Chinner wrote: > > The first two patches fix the recently reported rm -rf performance > > and interactivity problems when using delay??d logging. These should > > probably be considered for 3.0-rc5. > > I think it's a bit late for patch 2. Patch 1 is triviall, and helps > with a regression introduced in 2.6.39 by switching to the delaylog > mode, but patch 2 is a bit too large for this in the merge window > unless absolutely nessecary. Yeah, that's fair enough. The first patch should prevent the majority of the problematic occurrences of out-of-order AIL insertion, so we can live without the second one for the moment. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 4 07:13:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64CDCh2143540 for ; Mon, 4 Jul 2011 07:13:12 -0500 X-ASG-Debug-ID: 1309781589-6c76025b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6285C1EE814A for ; Mon, 4 Jul 2011 05:13:10 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id LnolnAaA6Xq3413H for ; Mon, 04 Jul 2011 05:13:10 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAGOrEU55LCkB/2dsb2JhbABShEKjOni5d5AlDoEdg3+BDASaTIgy Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 04 Jul 2011 21:43:09 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qdi1U-0003bD-0K; Mon, 04 Jul 2011 22:13:08 +1000 Date: Mon, 4 Jul 2011 22:13:07 +1000 From: Dave Chinner To: =?utf-8?Q?=C5=81ukasz?= Korczyk Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: question about xfs_repair Subject: Re: question about xfs_repair Message-ID: <20110704121307.GX561@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1309781591 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0013 1.0000 -2.0126 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 11:41:49AM +0200, Åukasz Korczyk wrote: > Helo > > I have a question I wasn't able to find answer for. > > Which factors influence memory usage of xfs_repair? > Does any formula exist to count possible memory usage? # xfs_repair -n -vv -m 1 /dev/vda Phase 1 - find and verify superblock... - max_mem = 1024, icount = 64, imem = 0, dblock = 4294967296, dmem = 2097152 Required memory for repair is greater that the maximum specified with the -m option. Please increase it to at least 2096. So it's telling me I need at least 2096MB of RAM to repair my 16TB filesystem, of which 2097152KB is needed for tracking free space... I just added 50 million inodes to the filesystem (it now has 50M + 10 inodes in it), and the result is: # xfs_repair -vv -m 1 /dev/vda Phase 1 - find and verify superblock... - max_mem = 1024, icount = 50401792, imem = 196882, dblock = 4294967296, dmem = 2097152 Required memory for repair is greater that the maximum specified with the -m option. Please increase it to at least 2289. That is now needs at least another 200MB of RAM to run. It is worth noting that these numbers are the absolute minimum required and repair may require more RAM than this to complete successfully. If you only give it this much RAM, it will be slow; for best repair performance, the more RAM you can give it the better. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 4 07:49:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64CnBVM146898 for ; Mon, 4 Jul 2011 07:49:11 -0500 X-ASG-Debug-ID: 1309783749-21e902070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 619CD1678A95 for ; Mon, 4 Jul 2011 05:49:09 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id bxvROI2PhaEIi0ZN for ; Mon, 04 Jul 2011 05:49:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAPS1EU55LCkB/2dsb2JhbABSp3x4iHrBHw6GKASifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 04 Jul 2011 22:19:08 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QdiaI-0003eB-Ud; Mon, 04 Jul 2011 22:49:06 +1000 Date: Mon, 4 Jul 2011 22:49:06 +1000 From: Dave Chinner To: Volkan YAZICI Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Recovering XFS Partition of Type FAT16 Subject: Re: Recovering XFS Partition of Type FAT16 Message-ID: <20110704124906.GY561@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1309783750 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67945 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 10:23:55AM +0000, Volkan YAZICI wrote: > Hi, > > I have an XFS partition, which is > > 1) Mistakenly quick formatted as FAT16. > 2) At first, I couldn't see in "fdisk -l" that it is set to FAT16, > instead of Linux. Hence, tried to fix it with xfs_recover. xfs_recover > returned 0, and mount operation succeeded; but mounted fs size > appeared as 20GB (despite it is 350GB) and almost every file was > missing. > 3) Later, I set the type of /dev/sda1 (the only partition in /dev/sda) > to Linux, re-run xfs_recover, but nothing changed: Same fs size (20GB) > and same missing files. What is this xfs_recover tool you speak of? I've never heard of it, I can't find any direct links to it in google (only forum posts from years ago about how great it is) so I have no idea what you've done to your filesystem... > I open the system with Knoppix, and below are the partition > diagnostics. I need urgent help to recover the files. I will be > really, really appreciated for any help! (If you need further > information, just drop me a mail.) > > > Best. > > > # fdisk -l > > Disk /dev/sda: 320.1 GB, 320072933376 bytes > 255 heads, 63 sectors/track, 38913 cylinders > Units = cylinders of 16065 * 512 = 8225280 bytes > Sector size (logical/physical): 512 bytes / 512 bytes > I/O size (minimum/optimal): 512 bytes / 512 bytes > Disk identifier: 0x447c435f > > Device Boot Start End Blocks Id System > /dev/sda1 * 1 38913 312568641 83 Linux > > > # mount | grep /dev/sda1 > /dev/sda1 on /media/sda1 type xfs (rw,relatime,attr2,noquota) > > > # df -h | grep /dev/sda1 > /dev/sda1 19G 4,2G 15G 23% /media/sda1 > > # xfs_info /mnt/sda1 > meta-data=/dev/sda1 isize=256 agcount=4, agsize=1226963 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=4907849, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=2560, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 That looks like a newly made 20GB XFS filesystem, not the result of repairing a 350GB filesystem... If I were you, I'd be restoring from backups. You do have backups, right? Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 10:34:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64FYpQN162449 for ; Mon, 4 Jul 2011 10:34:52 -0500 X-ASG-Debug-ID: 1309793684-20b3034a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5623C1EE87E4 for ; Mon, 4 Jul 2011 08:34:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id oo6AeMUdGO55OGkd for ; Mon, 04 Jul 2011 08:34:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdlAZ-0005o8-N7 for xfs@oss.sgi.com; Mon, 04 Jul 2011 15:34:43 +0000 Date: Mon, 4 Jul 2011 11:34:43 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [RFC] remove filestreams support? Subject: [RFC] remove filestreams support? Message-ID: <20110704153443.GA21501@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309793684 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0674 1.0000 -1.5911 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.99 X-Barracuda-Spam-Status: No, SCORE=-0.99 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67956 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'd like to know if there are any people actively using the filestreams support in XFS (-o filestreams). It's pretty much a fringe feature, and I've not seen any user reports for it, while it never passes all its XFSQA tests reliably. It was added specificly for CXFS media streaming operations on one particular array model that hasn't been sold for a long time. The feature purely is an in-memory one so unlike for example the realtime device there are no issue about beeing able to read old filesystems. The filestreams specific files are around 1500 lines of code, not even counting the hooks in the core XFS codebase. If no serious users reply to this mail I'd like to add a deprecation warning to the mount option in the Linux 3.0 release cycle, with a goal to drop it 4 releases later. From BATV+e83e9d2711330749e835+2871+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 4 16:21:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p64LL1nE189650 for ; Mon, 4 Jul 2011 16:21:03 -0500 X-ASG-Debug-ID: 1309814458-445800df0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BD91A4A1C6 for ; Mon, 4 Jul 2011 14:20:58 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 01i5GnhtCZtHBQ3s for ; Mon, 04 Jul 2011 14:20:58 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QdqZc-00073n-1Z; Mon, 04 Jul 2011 21:20:56 +0000 Date: Mon, 4 Jul 2011 17:20:56 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Message-ID: <20110704212055.GA24500@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309757260-5484-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309814458 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67980 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean FYI: the following patch implementing my suggested cleanups survived a few rounds of xfsqa: Index: xfs/fs/xfs/xfs_trans_ail.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_ail.c 2011-07-04 16:04:08.932174424 +0200 +++ xfs/fs/xfs/xfs_trans_ail.c 2011-07-04 16:12:51.402677292 +0200 @@ -267,26 +267,14 @@ out: static struct xfs_log_item * __xfs_trans_ail_cursor_last( struct xfs_ail *ailp, - struct xfs_ail_cursor *cur, - xfs_lsn_t lsn, - bool do_init) + xfs_lsn_t lsn) { - xfs_log_item_t *lip = NULL; - - if (do_init) - xfs_trans_ail_cursor_init(ailp, cur); + struct xfs_log_item *lip; - if (list_empty(&ailp->xa_ail)) - goto out; - - list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { + list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) - break; - } -out: - if (cur) - cur->item = lip; - return lip; + return lip; + return NULL; } /* @@ -300,7 +288,9 @@ xfs_trans_ail_cursor_last( struct xfs_ail_cursor *cur, xfs_lsn_t lsn) { - return __xfs_trans_ail_cursor_last(ailp, cur, lsn, true); + xfs_trans_ail_cursor_init(ailp, cur); + cur->item = __xfs_trans_ail_cursor_last(ailp, lsn); + return cur->item; } /* @@ -319,27 +309,22 @@ xfs_ail_splice( struct xfs_log_item *lip = cur ? cur->item : NULL; struct xfs_log_item *next_lip; - do { - /* no placeholder, so get our insert location */ - if (!lip) - lip = __xfs_trans_ail_cursor_last(ailp, cur, - lsn, false); - + /* + * Get a new cursor if we do not have a placeholder or an + * invalidated one. + */ + if (!lip || (__psint_t)lip & 1) { + lip = __xfs_trans_ail_cursor_last(ailp, lsn); if (!lip) { /* - * The list is empty, so just splice and return. Our - * cursor is already guaranteed to be up to date, so we - * don't need to touch it here. + * The list is empty, so just splice and return. */ + if (cur) + cur->item = NULL; list_splice(list, &ailp->xa_ail); return; } - - /* The placeholder was invalidated, need to get a new cursor */ - if ((__psint_t)lip & 1) - lip = NULL; - - } while (lip == NULL); + } /* * Our cursor points to the item we want to insert _after_, so we have From stewart@flamingspork.com Mon Jul 4 20:17:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p651Hfba206627 for ; Mon, 4 Jul 2011 20:17:41 -0500 X-ASG-Debug-ID: 1309828660-217a03280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from kaylee.flamingspork.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CD4A923D5D for ; Mon, 4 Jul 2011 18:17:40 -0700 (PDT) Received: from kaylee.flamingspork.com (kaylee.flamingspork.com [74.207.245.61]) by cuda.sgi.com with ESMTP id dnKnaib0FIlITlNR for ; Mon, 04 Jul 2011 18:17:40 -0700 (PDT) Received: from willster (localhost [127.0.0.1]) by kaylee.flamingspork.com (Postfix) with ESMTPS id 1D88C60B2; Tue, 5 Jul 2011 01:16:01 +0000 (UTC) Received: by willster (Postfix, from userid 1000) id EFBDF3077FDF; Tue, 5 Jul 2011 11:17:46 +1000 (EST) From: Stewart Smith To: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC] remove filestreams support? Subject: Re: [RFC] remove filestreams support? In-Reply-To: <20110704153443.GA21501@infradead.org> References: <20110704153443.GA21501@infradead.org> User-Agent: Notmuch/0.5-215-g5143e5e (http://notmuchmail.org) Emacs/23.2.1 (x86_64-pc-linux-gnu) Date: Tue, 05 Jul 2011 11:17:46 +1000 Message-ID: <87sjqlbk5h.fsf@flamingspork.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: kaylee.flamingspork.com[74.207.245.61] X-Barracuda-Start-Time: 1309828660 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67994 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 4 Jul 2011 11:34:43 -0400, Christoph Hellwig wrote: > I'd like to know if there are any people actively using the filestreams > support in XFS (-o filestreams). It's pretty much a fringe feature, and > I've not seen any user reports for it, while it never passes all its > XFSQA tests reliably. It was added specificly for CXFS media streaming > operations on one particular array model that hasn't been sold for a > long time. The feature purely is an in-memory one so unlike for example > the realtime device there are no issue about beeing able to read old > filesystems. The filestreams specific files are around 1500 lines of > code, not even counting the hooks in the core XFS codebase. I used it a bit on MythTV box to help circumvent the stupid behaviour of it fsync()ing every second[1] leading to poor file layout on disk. I found that filestreams worked a bit better than just setting allocsize mount option... but I wouldn't be screaming too much if it went away.... [1] which was to work around ext3 taking locks for so long that you'd then miss part of your TV program -- Stewart Smith From gxwct@qq.com Mon Jul 4 20:50:12 2011 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p651oAHK211133 for ; Mon, 4 Jul 2011 20:50:11 -0500 X-ASG-Debug-ID: 1309830304-46e502640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtpbg52.qq.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 8F9414AFF6 for ; Mon, 4 Jul 2011 18:45:05 -0700 (PDT) Received: from smtpbg52.qq.com (smtpbg52.qq.com [64.71.138.43]) by cuda.sgi.com with SMTP id a77R3wA71g1gfP9D for ; Mon, 04 Jul 2011 18:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s0907; t=1309830293; bh=Cej6YwArcbuY6TeiHKEQxWNKLdBJgzOeYWRAayJq8hw=; h=X-QQ-SSF:X-QQ-BUSINESS-ORIGIN:X-Originating-IP:X-QQ-STYLE: X-QQ-mid:From:To:Subject:Mime-Version:Content-Type: Content-Transfer-Encoding:Date:X-Priority:Message-ID:X-QQ-MIME: X-Mailer:X-QQ-Mailer; b=DjrTYKto9wbbCe/4NOxJQPEI4CvjU11QaNigHujqK58HUOZrN/XaDjFi6dwqU5tAU Gl8x18bwmxfjuFIUY2BL84VXU+jew7ki6hMmHIG2gL/qH5x+szG+uGhM/M5PcyU X-QQ-SSF:00000000000000F0 X-QQ-BUSINESS-ORIGIN:2 X-Originating-IP: 112.94.22.132 X-QQ-STYLE: X-QQ-mid:webmail54t1309830288t1082205 From: "=?gbk?B?eHdnYW8=?=" To: "=?gbk?B?eGZz?=" X-ASG-Orig-Subj: About XFS write disk error Subject: About XFS write disk error Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_4E126C90_DECC7AC0_2512BD9E" Content-Transfer-Encoding: 8Bit Date: Tue, 5 Jul 2011 09:44:48 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x X-Barracuda-Connect: smtpbg52.qq.com[64.71.138.43] X-Barracuda-Start-Time: 1309830307 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: multipart/alternative; boundary="----=_NextPart_4E126C90_DECC7AC0_1BB50841"; ------=_NextPart_4E126C90_DECC7AC0_1BB50841 Content-Type: text/plain; charset="gbk" Content-Transfer-Encoding: base64 QXR0YWNoZWQgaXMgc3luY2hyb25pemVkIHdpdGggcnN5bmMgY29tbWFuZCB0byB3cml0ZSBk YXRhIHRvIHRoZSBjb3JyZXNwb25kaW5nIFhGUyBmaWxlIHN5c3RlbSBkaXNrIGVycm9yIG1l c3NhZ2UgcmVwb3J0ZWQgYnkgdGhl ------=_NextPart_4E126C90_DECC7AC0_1BB50841 Content-Type: text/html; charset="gbk" Content-Transfer-Encoding: base64 PGRpdj48aW5jbHVkZXRhaWw+PGRpdiBzdHlsZT0iZm9udDpWZXJkYW5hIG5vcm1hbCAxNHB4 O2NvbG9yOiMwMDA7Ij48c3BhbiBpZD0icmVzdWx0X2JveCIgY2xhc3M9IiIgbGFuZz0iZW4i PjxzcGFuIHRpdGxlPSK147v3v8nP1Mq+xuTL+7et0usiIGNsYXNzPSJocHMiPkF0dGFjaGVk IGlzPC9zcGFuPiA8c3BhbiB0aXRsZT0iteO797/Jz9TKvsbky/u3rdLrIiBjbGFzcz0iaHBz Ij5zeW5jaHJvbml6ZWQ8L3NwYW4+IDxzcGFuIHRpdGxlPSK147v3v8nP1Mq+xuTL+7et0usi IGNsYXNzPSJocHMiPndpdGggcnN5bmM8L3NwYW4+IDxzcGFuIHRpdGxlPSK147v3v8nP1Mq+ xuTL+7et0usiIGNsYXNzPSJocHMiPmNvbW1hbmQ8L3NwYW4+IDxzcGFuIHRpdGxlPSK147v3 v8nP1Mq+xuTL+7et0usiIGNsYXNzPSJocHMiPnRvIHdyaXRlIGRhdGE8L3NwYW4+IDxzcGFu IHRpdGxlPSK147v3v8nP1Mq+xuTL+7et0usiIGNsYXNzPSJocHMiPnRvIHRoZSBjb3JyZXNw b25kaW5nPC9zcGFuPiA8c3BhbiB0aXRsZT0iteO797/Jz9TKvsbky/u3rdLrIiBjbGFzcz0i aHBzIj5YRlMgZmlsZTwvc3Bhbj4gPHNwYW4gdGl0bGU9IrXju/e/yc/Uyr7G5Mv7t63S6yIg Y2xhc3M9ImhwcyI+c3lzdGVtPC9zcGFuPiA8c3BhbiB0aXRsZT0iteO797/Jz9TKvsbky/u3 rdLrIiBjbGFzcz0iaHBzIj5kaXNrPC9zcGFuPiA8c3BhbiB0aXRsZT0iteO797/Jz9TKvsbk y/u3rdLrIiBjbGFzcz0iaHBzIj5lcnJvciBtZXNzYWdlPC9zcGFuPiA8c3BhbiB0aXRsZT0i teO797/Jz9TKvsbky/u3rdLrIiBjbGFzcz0iaHBzIj5yZXBvcnRlZDwvc3Bhbj4gPHNwYW4g dGl0bGU9IrXju/e/yc/Uyr7G5Mv7t63S6yIgY2xhc3M9ImhwcyI+YnkgdGhlPC9zcGFuPjwv c3Bhbj48L2Rpdj48L2luY2x1ZGV0YWlsPjwvZGl2Pg== ------=_NextPart_4E126C90_DECC7AC0_1BB50841-- ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="=?gbk?B?NtTCMTbI1bGotO3M4cq+LmpwZWc=?=" Content-Disposition: attachment; filename="=?gbk?B?NtTCMTbI1bGotO3M4cq+LmpwZWc=?=" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAHgAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 m4uoLBDs1JXl2BZsk52N84wetebal8b9U1P9p/SviIdM00W2mWUGmWuizxCWCOxjTZ9myR82 QXwx5G6naz8WNIb4E+IfA/gvwdB4QsfEF7BLrkq3jXBnjgYvHEAyjaA20574rnjiKUasXduy 17bW79/I0nh8UqKgoWV01r/eV9PT1Ox+HPxPGr/GD4Q2Hifw7pWvapp2oWOmWWq3M0i3EUAn Xy1ADBSU4xxnA717ba22hWP7Rv7YXi29mNreaFqBEGoQWq3Mtms1yVkKRt8pY/KPoTXy78Pv iV4b8CWMGo2vgpL3x1ZrM1hrFzeb44JHUhJfJ24LJnIGevNU/A/xPHhz/hOLPxHY3PirQfFt h9m1yE3Gye4cP5kcok67g5yfUVGFqQjZye8tv19PLS1h4nL6ln7OFrR+9uSbt8k+256B418W eAPH8/wt0mzk1rWfE1vrYs9Z1G5sEtvtlpLMuxNqcbl3ON3YVufF34gXPhj9qX4qeBZ9I0jV fBVnd3WkWWmtbpEYI1G2JlkUbsoQD789M1454k8faLPY+ELLwR4Zg8K2mgXTahHcSN9ouri5 Mm8NJJxlBtUBMYGK9A1r4zeBdd8eeJvHU3gG4uPH2s20rTTXd0slil1LGFkmEOB0wSo7Guyv XbdRc1npdrr5Le/zt5nnYag7QjOnKUbytFvVN2s9LW0va2zPKPhvq3ibQ/jR4cu/CSi7117p YoLRRlbzf8rROOhVgSDwcde1bvxt0bw14e/aK8Q6f4YniNgNktzbRSCRLO5dN0lujjhlQkDI 45x2qLwD47s/h7pniTWLHThP40vLFbfQ9SdwE0zcSJZAOvmlThT2ryiabzLySSVpTkFixzuY k85z1z1z615TqU4xavfm/Cz39f0Pp6UZyxjk4WUVbrrfb7vzbPprUSq/8EhfDkke5gvxOukd kP3c2qnn256V8xowdMGYiEsTtBxk1714p+JXgq+/ZB0f4ZeEdG8RWa2fiNtYmvdSnjbzGeDy 2UBSeM8j04rwQum/ID++Ohp1q0JRpx3aWu/d9/0KyinL95OorKUm1fsfQ/wt0bSdR/Y7/aN1 G502yvNQ03SdMl024lXL2xe6IcqexIXB+uKk+NOi+H9Dn+DBtdMht7W78Aabe6glmAkty7yz CRsnI3MF6nPOK5j4U/EHQvDPhv4geDvFdpfSeFPFunxW97dacAbmBoZRJGVzxgknIqf4h/EX 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 ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzEuanBlZw==?=" Content-Disposition: attachment; filename="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzEuanBlZw==?=" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAFpAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzIuanBlZw==?=" Content-Disposition: attachment; filename="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzIuanBlZw==?=" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAGSAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 rPz3KNbmASGWTLudhOCzEc4xgkVo3ib+6lb/AIP+RbeJv7qVv+D/AJHmFxr2sz+Ixq0mpXaa kiIiXMUhjdFRAihSuMAKAOOwqL+29Xz/AMhXUujj/j6fo5y/f+I8n1PWqDK7yNtUsTzhRUkN hfXMNxJb2V3cR26b52jhZhEvq2BwPc122j2O7lj2Nc+KvEpvRcHxHr32gR+WJP7Ql3bM5253 ZxnnFVZNd1ifSfsE+r6nPY7932aS6dot2Sd20nGcknOOprHooUUugKKXQUnLE0lFFMoKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA6/wAc/wDJbfGX/Ycu/wD0 e9ei6lf6Tp3x707U/EVuL7SZdFtBYz4FxHbuLSJFmMWcSqjg5jJGSD1xg+deOj/xe/xl/wBh 27/9HvXbv4S0fVfjXY+HLUQaNaR6VbzusDM9zfSNbRyskYkbaZnZyFGVX2JwDz1rddrM5sQ4 397s/wBCo/jOyi+CNnoEVvpN1qEfiG4u7gtZMFmhKQ7HPIBLFXBGOFxwK6zUfihpM3xR+Jer W9tpzWup6XJbaQ7WThmYzRMARnK5UPnoPlX8eaGieEbb4DQavcC+TV7zX5rBnns2drRI0iba oEyKWAkJJZeTxhcZPYah4T+H1l8VviBp6wT/AGLwzpDyQwm0lYSyLLFGWkP2kFiPM/hKAk9B tweOXsNbp9fzX6nDL6vd3T6/mv1/Aw7H4iaTBL8JYprPTBBotyJdXH2Fzt/0tn3AZ+c+WQ3H 8Q/CqLfEG0fwL8Q7ZrXTRqOr6lbyWZFo+XiUy78tu4xlCAe5P4a9l4V8EXNt8KrSR7pZvEt9 m+uFtH3qn2tofLTM+1V+ULkqTyWz/DUB0jwMfC3xE1qO3O7S7yCysLf7HMI08wyjef8ASSxY mPGSxUYztOcBr2F9nf8A+2/z/ApfV+bZ/wBS/wA/wNC3+JuixfFrwpqT2mlppmn+GVtJStg/ 7u4+xshCru6CQgBh2J+tbPhb4m+DbH4RaZp3iCGO6mW9W4u7SG3k35F+kxVQQYmi8oE5YmTc AoOzis618H+AJPib4M0BmvJLWfw6uqXkhtHEl05tGnCsftGFQ4JwoBAAG453DQ8OfDLwZ4m+ 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 0ZPrTWDo83Nbt+DuUsDR5ua2un4aoU/fP1pKKK6jrCiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKAOt8df8AJcvGP/Ydu/8A0e9Y19qOoX4tft19eXnkQiKHz5mf y0HRVyeFHoOKKKz+3EiXxr5lDJ2Zyc4oyfU0UVtHdmq3GsT5nU0oJ3Hk0UUpbDW4ZOepoJPq fzoooXQXQNxwOT+dGTnqaKKQuoZPl9TTsnnk9aKKtDjuORmDKQSDnqDVnUtR1DUtT+06jfXm oXO0L5tzM0j7R0GWJOB6UUVg/jXoYv416FPJx1NCswlVgxDAggg8iiitDVfCzc1XXdb1S1ig 1PWdV1GFG3pHdXbyqrYxkBicHk8+9QjWNWXwu+ljVNRGmM2WtBcv5JOc52Zx1APSiiuNfw4+ pwr4I+pkZOepoJJPJJ/Giiuw72Lk+tKSfL6miitqfxf12E+v9dgLuVVS7FQOATwKbk88miio Xwf15EL4QUnaeTQCcryfzooql/X3loQ9DTKKKzYPcKKKKQgooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooA/9k= ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzMuanBlZw==?=" Content-Disposition: attachment; filename="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzMuanBlZw==?=" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAGHAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 pr6VFp9zEJ5Xk8uKW2aacBQC8rDA2gc4BPQEjgb+HxxpvhCW91HXtRt7CS+kVYJNUkJuZUlw 8iqCQcSA/McZIJGSDXQ2fhT4l63rls1vrN9c6nJBazI02rSCUSSh3tocsc+aV3Oqj7obORk1 m5VOW8qiXn939fMylOoo3lVS8/u/4P3k/hr4UJqw8NXd1rumS2Wp217cG3t7uNJsWyM+0FiQ C2OSR8nOQelTeJfhItguu6pomswXuhaZZQXVwJlkMyCaBJUQfuwHO5iM4XCgMwUGuE0Pw54x vvGtnaadbavY6sZC0MzmSExMUaXO/qCVVmGOWwcZrc17w18RtF0W61K9vNXuIYr2aC7a3u5Z jEzQxPI8pHCh0lRTuIJwVYDGKcvaqqv3q16fP/LQJe1VVfvlr0+f+Wh0+k+BfBl34t8KWF/J rOmXF7o1zqt7ZTzCfEaQvLAm5I1KlljLng/Ky4OTXKT/AA81C9+GmpeNNPWCPSo5Q1vahJA0 kTTiBWTdy2XOPwPOQRXnzanqP9ofbDf3v2vy/L88zt5m3Zs27s5xt+XHTHHStCw8UeINNhtI bLWdQhtbadZ4bXz2aBZFYOreUcocMAeR1rZ0qy1U+2/q7/p9x0exrxd1O+2/zv8Af+h7roHw i8M6v4j1DTrnU7m2/s+8s9JvZIrhQVu5o3aWQLsbcqupjCjGdrEso5rin+Emr/ZdCuotR06a y1cytayrFLxHDG0k0jDbkbQhwBkv1UEc15pBrmr2s99Na6tqFrJeAi7aC4ZDOCckPgjcCSet SDxFryOrprusK6ujqwvJMhkG1COeqjgHsOBURoYlSuqmnaxEaGJjJv2l16eR2ml+EtG1P4de Mr62vNRu9V0l7b7IywiK3kSWZIjuDfNnLH0AxnnPEnjrwVB4Q8GeH98rXGry6hf2uoOqOsQa 3aFdqbgMgFnG4cH8K4r/AISXxCba9hPiDW/KvDm7T7dJtuDjHzjPzcADnPFV9Q1vVtWSBdU1 TUdSWBdsIurl5fLHHC7icDgdPSt1Crzp82l/0sbezrc6fNpfb5W/PUyj1pKU9aStzpCiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9j/AGgv+T4fiz/2NV7/AOjmrPu/ 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 kkkHqea2v+F366NTuLkabp7CWzayaOWeeQeQ7tJKmS+cuzfezuUKAuO8TeK59IKxE3ilNWhF r1OdtPD3jO88OeH57LW92m3Vw1lZq+qNCls7IS6EOVCqVyG25HY8kAxR6b43Or+K9CfWtQtz pEUiapEb+QxMY3EAiG0kMSxVFGMfgKgg8ci38N6Zo6aTbvptpfpfGGW6mfzJUVguCW/dr8xJ CYycZ6Cp9Y8fDUrbXZbTTk0rUtY10apfTQSsy/LlkjTdkgCR5HOSf4f7taNVW9lb/g/5FtVr /Cv6Y7xV4G8d2ENrfa1Fe6xvLwGeOZ7owNCVV4nbnaVaRV9MnAJOawD4N1geCr7XCsCw2Vws F5bOWSeBy5QKysBzkdASR3FekzfHnxPL4ng1kWempfxPLKjFpXVZpgiySBS+MFU2hPurkkDO COXsPiPdaOtz/Y2mWdk0+ox3sgkmlnj3RziZFVJGIHzKoLcsQMZ5OZpzxXLaUVf+v0/EmnPF 8vvRV/X+uhwmoaTqelXf2fVLC80652hvJuoWifB6HDAHH+FZ1bet6na6rrtxfW9hHpvnEs8K TySjcSSTuclu/rWJXbG9tTui21qFFFFMoKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooA9i/aC/5Ph+LX/Y03n/o5q8doopR+FB1CiiimAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAH//Z ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzQuanBlZw==?=" Content-Disposition: attachment; filename="=?gbk?B?NtTCMTfI1bnK1c/M4cq+XzQuanBlZw==?=" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAEYAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 ayEN1Bc6reXUsKMqTSQutikgf5cABZMN8oMw3cA1peItL+Fes3utagl/p2k6ktpEtpDb6ggg uLkWw87cEQKqq3zBl2rI+5V4II82l8KaRF4O8EavFqOsagNaubm3uba0slMkcsXlYSIFvnyZ QMnHI4B762r/AA90bTh8RIYPENzdXfhu2gnjhW1UiQPJDHIkjhiA6NNtwuRlG5FOUaftFP2j T2/G35sco0/aKXtGnt/5Nb83b0Ov1a0+Fuq6V4TtNO1bRGjsLC9jEQ3WU1/KuwxNcyugCF28 w8nAGEBx81eAapHHFrd1HFFDDEspCJFcCZVHoHBIYe+eapFyCOTTCxK8mu+jQ9mrXv6+tz0q FD2atdv1G0UUVubhRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAaFgZhr lo0Cq9wJlMat0LZ4Bru9fn8Tw/HDWpLC1XT/ABFNLN9rt9Fna4AZg3nrkFsj724ZIAzXC6dK kOvWc8pIijnR3IHIAYZr0q88YWWmfEvx69k0GuaH4hecNPbNJbzKjyM67XZQy4JG5CCrAYOe CMKt+bSN9P1Oerzc10r6fqYdrp3jA6F4R1CG5dB9pMfhyEXKibf5/LRJnOPNJ56ZzVk6D4tU eLLQ6hZi0iaOTXpBqUfkGTzG2K75wz792AMnOa0LX4oa1bRfD1Bd6qyeGJS7IL9gLoee0gGP 4cIxj78e3FRH4na43h/xzZtfat5niG5ilD/2g/8Ao4R2Yr/tZUhO3C+nFZNVukVv+v8Alr6m N6/8q3/9u/y19SO30rx43iPwdcwXjjWru2jj0JPtyC4jg+cIcE/JHjfgnHFZf9i+IP8AhAtV Vb+zbw3Z3qNcMt8nkS3JjbaE5/ePsDfdzXWw/F/W4viH4O1uSfV3j0PTI7OS3OpP/pJVWVnz 23ZUkYP3Rz6c6PiFr5+El14ZbU9XaS41dL9rr7e/QIylCO+WIbOeo6d6a9tfWK6fn/kEfb31 iun5v8l+ZdbRvHreOTG16o1690hmuyb+MSRWYtgSJjn5F8jHB5xxVq2tfipF4a0pdOn1iTTI riJdONncqxz5ziJk2neYvND7WPybs45q4/xe1t/iZq/iJbjWFF3oTaakP9ot+6Y2qwiXPs4M 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 0BstzXCqjM0e5JGjAGwgsrsM8YyGAcVCyftW/wCl+JUVCyl7Vvt+HY8ckyJmB65plOf/AFhp teqeuFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAF7T2lX WrV4EEs6zKY0/vNkYFd7r2peIrH4069cWFpPoutXks4vrG0ukuxmTJljJXIYcnKnO3HPIrh9 NdIfEFnJKSkaTozHHQBga9QuvFen6N8U/H7wPFqmma69wsd/pspjuIUkdmXy3ZQVByA6EfMu RkdawqX5tI30/U5qt+bRX0OYto/Gn9h+EdQt2b7Pa3JTw8PNh8wyefuPlxk73HmnrgjPFTnS /GwHi3Tma2MUjRz68ft9t5W4SMUDSb9ofeW+QHOeMVu2vxR1C2T4bRGS/ePwzLvuFEi/6SPt DSALxxhDs5qI/EzVG8N+PbJp78yeILqGWB964hVJGLK3HOVKrx6Vjet/Kt/1/wAtTL99/It/ /bv8tfUz7aL4hf8ACQ+DNSt2kOqPbR2/h8ebB53kjeqYjJyE+/h3GPesr+zfFK+BdXsg9sfD 1nexzXbLfW5hNwY22bXDfvH2bvlQnvxXeQfGDUI/iT4K1uQai9vomlR2c9v5i5nYKyu6nHAO V4P92uaT4hawPg7eeGXu757ufWEvjc7127QjgoRjOSxDZ9qpOrzfCun5v8v1CPtr/Aun5v8A L9Qa1+Ib+OFnZv8AiealpDJJuuLcP9j+yqG8wZxEvkAcvtO3n3q9aXvxXsPDulLpw1YWFtPF DYXFpbxyFiszGJFlUFnj83dtG4oW6ZrXk+MGoN8VNY8QbtSWG78PtpsMPmLuic2iwiQnHQSA vj3rc8PfGqz0TwR4d02fRZ9Tk0+WFp1lZAHKzTPJIsv3/mWUqIz8it8w5rnqPEci/dJvTT+u 2xz1HiORfuk9tP67bHLfb/i79o1yxawvnaSyiW/tW0aBkFum941VPL2hOHfCDBILckZrJtIf iXC/h3Vba01aBbTT5U0mZrdViW2WOSaQAMNrKUMjEMCXBPWuzl+Kfh+XXBqR07VLfUdP0X+z NCuooIFFtuaUySmJSq7gspRACQo5OTW3b/HHT1s7WKPRJrFpbdFvngihYpKljLaLJHkZckyb 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 rjSb2DVNSuWmh1KMQma1AeMrEp2glWEe5zkHf93A3Bkq9dTs6enr/XzEq+I9pZ09O9zyO88K eI9Oj1FtQ0a/sDYQwzXi3MfltEkxAiYq2DhsjHHeufKkdRX0JB8VtCtPEdzdQxa/JHPoum2E skscDSO1m0ZbIYkbZQhBPVdx+938M1S5hvPEF9eW9tFZQTzvJHbxH5IQzEhB7DOPwrXD1Ksr 88bG2HqVZX542M2iiiug6QooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA9bsrK wvfAXw20u7a106y1XXbmPUb4RRrKEEkCBjKwyAodjgnbzyK2NG8I/DzXbq4ez1bWrdILyG1u ILu8toXiRmlD3gYjDxqqxkxgAguRuwASUV503JRk09m//SmjypSmoSkpNWb/APSmbOleC/h5 p3iPw5dalqy6tpj39irStqEKQagswJlHlgF4liIAYueRnlSRXWeEPC3w+0nwBeX/AIolstG8 68nWS2vrq3uZZokjA8tJNnIy2791tbLrzwASivNrSqSXLzvX+vQ4KsqkklzvW36nF6nY+Dtc u/CGg6ds020i8Mfb5oku7bzby62ufs5mMQKysepckAYAQHGeatfBnh+88A6jqEupnQNQt9RM Uiajeo0cEO+Ncr5cZM7gM5IGzheA1FFek3KPup/1c705R0Un0/Fs7m+sfAFn8TvDF1pcfhO4 8KReHmutVid/OlmEE0oGd4GJ5gIlwvI3E4wAS7w9afDrV/DGh3eq6PpGjS3Oo2kaw3Mqosrm 5Yzt5iyl/J8ogYZFC4X5iTklFc8qTUPienn6mDg+X4np5+p5v8WLTw5afEeyXwzBDa2L6XC8 sClN8cpLBhIIyUD8A4TAwV4BzXpFz8OvAOm2nhrUNI8QTatqTXlqbm0k1G0KlWBMhAKkAKRk hgRgEHrwUVOInUhGilJ9b+enUVepUhGklJ9b+enU5u78GeFCfEb6lrLQawdS1QWggubZLdY7 eATwtsUciUtsUKVA7dMVcfwZoepeJ/DFvq2o2/h3SJPDge5vBc2jGymSRxiQIFMxPy8f6z5x yQtFFU6lTl+Lp9w51alt+n3GXpWl2Eei+O9DvEtF02y1ezEFxKYZJYUe52M32iNGyCmM7cr3 Aqv8atN8D6X460628DPZvZ/ZpGuTbXBlXeZ5NoyVGMLgdTwB9SUVdFylib3/AMvhiaUXKWJT v/l8MTxmiiivWPYCiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA//2Q== ------=_NextPart_4E126C90_DECC7AC0_2512BD9E Content-Type: application/octet-stream; charset="gbk"; name="IMG_0107.jpeg" Content-Disposition: attachment; filename="IMG_0107.jpeg" Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQAAAQABAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABtbnRy UkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAA ABRyWFlaAAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRk AAACxAAAAIh2dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAA ACR0ZWNoAAAEMAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0 AAAAAENvcHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAA AAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQ WFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklF QyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA AC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAA AAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAA AAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0 aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRp dGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAA ABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAA AAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACB AIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwEN ARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJ AdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLB AssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglP CWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuw C8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5k Dn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFt EYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTO FPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiK GK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyj HMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEc IUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3 JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2 K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDb MRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1h PaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RH RIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuV W+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RA ZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4 d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEK gWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuW i/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaf lwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqIm opajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4t rqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1 uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/ yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO 1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj 4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/ 8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBD AAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4O CQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O Dg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAHgAoADASIAAhEBAxEB/8QAHwAAAQUB AQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIh MUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdI SUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKz tLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEB AQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZH 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 ------=_NextPart_4E126C90_DECC7AC0_2512BD9E-- From david@fromorbit.com Mon Jul 4 20:55:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p651t4P8211840 for ; Mon, 4 Jul 2011 20:55:04 -0500 X-ASG-Debug-ID: 1309830901-047c00170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 16644179402F for ; Mon, 4 Jul 2011 18:55:01 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id DkdRaauUW1RxKhuc for ; Mon, 04 Jul 2011 18:55:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAPhtEk55LCkB/2dsb2JhbABTp3x4y2oOhigEon4 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 05 Jul 2011 11:25:00 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qduqo-0004q3-Hg; Tue, 05 Jul 2011 11:54:58 +1000 Date: Tue, 5 Jul 2011 11:54:58 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC] remove filestreams support? Subject: Re: [RFC] remove filestreams support? Message-ID: <20110705015458.GZ561@dastard> References: <20110704153443.GA21501@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110704153443.GA21501@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1309830903 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0197 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.67998 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 11:34:43AM -0400, Christoph Hellwig wrote: > I'd like to know if there are any people actively using the filestreams > support in XFS (-o filestreams). It's pretty much a fringe feature, and > I've not seen any user reports for it, while it never passes all its > XFSQA tests reliably. It was added specificly for CXFS media streaming > operations on one particular array model that hasn't been sold for a > long time. The feature purely is an in-memory one so unlike for example > the realtime device there are no issue about beeing able to read old > filesystems. The filestreams specific files are around 1500 lines of > code, not even counting the hooks in the core XFS codebase. > > If no serious users reply to this mail I'd like to add a deprecation > warning to the mount option in the Linux 3.0 release cycle, with a goal > to drop it 4 releases later. I'm not so concerned about the actual filestreams allocator - it makes a fair bit of mess through the allocator logic that I've always disliked. However, there are bits of it that could be useful in future, and if done right we could retain the filestreams allocator functionality for those that need it. That is, the act of assigning an inode or group of inodes to an allocation group for the express purpose of providing locality of allocation is useful. I've been looking at using this functionality for cgroup-aware allocation. In that case, different cgroups would be assigned different AGs to keep them logically (and potentially physically) separate, and inodes that are dirtied by a process in a cgroups would then be associated with the assigned AG. In fact, I'd suggest that this makes a more sensible method of implementing a filestreams policy, because simply placing the competing stream writer processes into separate cgroups would have the same effect as the current "associate all the files in a directory our process group is about to create with the same AG" policy without needing on-disk flags or mount options to trigger that behaviour. The worst of the filestreams implementation is the code needed to handle the potential locking inversions of also having to get the parent directory inode during allocation to set up the association, and this would no longer be needed. It also gets around the problem of having to maintain and time out associations via reference counts as well (the whole mru cache thingy), because the cgroup association can be looked up from the inode whenever it is needed, including during writeback when doing delayed allocation (dependent on cgroup-aware flusher infrastructure, but that is in progress). This greatly simplfies the code that we'd need to maintain as well.... So rather than deprecating the functionality, perhaps we should look at implementing it through a simpler, more generic, better integrated interface? That will increase the usefulness of the functionality for a much wider audience than it has now, and also provide the virt/blk throttling folk with exactly the "don't cross the streams" functionality they suggest filesystems are unable to support easily..... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 4 21:49:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p652mxLm214199 for ; Mon, 4 Jul 2011 21:49:00 -0500 X-ASG-Debug-ID: 1309834137-0d73025a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 118F215E9BB4 for ; Mon, 4 Jul 2011 19:48:58 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id KgC52tZ742XPOOS9 for ; Mon, 04 Jul 2011 19:48:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtMGAOR4Ek55LCkB/2dsb2JhbABTmQmOc3itMp56DoYoBKJ+ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 05 Jul 2011 12:18:57 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qdvh1-0004v9-Oo for xfs@oss.sgi.com; Tue, 05 Jul 2011 12:48:55 +1000 Date: Tue, 5 Jul 2011 12:48:55 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Updated xfsprogs 2.6.38 merge Subject: Updated xfsprogs 2.6.38 merge Message-ID: <20110705024855.GA561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1309834139 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0162 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68001 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Folks, I pushed out an updated 2.6.38 kernel merge to xfsprogs patchset a couple of days ago. I've been doing quite a bit of testing on it, both 32 bit and 64 bit, with 512 byte, 1k and 4k block size filesystems and I haven't come across any regressions. The patchset can be found here: git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync It's pretty much unchanged from the last set of patches I sent, except for one minor fix to the radix tree code for an off by one in the path array size for item and tag deletes. I'm pretty much ready to commit this update so I can then move forward with updating it to the 3.0 kernel code base as a smaller incremental series. Cheers, Dave. -- Dave Chinner david@fromorbit.com From mw@dermichi.com Tue Jul 5 00:03:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p655300h223991 for ; Tue, 5 Jul 2011 00:03:01 -0500 X-ASG-Debug-ID: 1309842179-4c6c03610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B534E1794732 for ; Mon, 4 Jul 2011 22:02:59 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id F2CaqWPxdVL31OA1 for ; Mon, 04 Jul 2011 22:02:59 -0700 (PDT) Received: from speechless.lan.dermichi.com ([2001:470:26:2a9:4a5b:39ff:fe18:7163]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1Qdxmj-0002KV-6R for xfs@oss.sgi.com; Tue, 05 Jul 2011 07:02:57 +0200 Message-ID: <4E129B00.4020709@dermichi.com> Date: Tue, 05 Jul 2011 07:02:56 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfs_bmap Cannot allocate memory Subject: xfs_bmap Cannot allocate memory Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1309842179 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0011 1.0000 -2.0138 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68010 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi List! I've got a file here on which i cannot use xfs_bmap to determine it's fragments. All that i know is that it must have a really great number of them. It was the result of running a smbd without strict allocate. The machine itself has 8GiB of RAM and 10GiB of swap available, so that shouldn't be the problem. I guess this is some bug in xfs_bmap. Or is it a known limitation? # xfs_bmap /backup/tmp/cannot_allocate_memory.vhd xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 ["/backup/tmp/cannot_allocate_memory.vhd"]: Cannot allocate memory Another thing i noticed is that when i use the filefrag utility it reports a different fragment count when invoked with -v than without it, which i found pretty strange too. From that output i judge that the real count is 62715, which is also not in sync with 45487. # filefrag /backup/tmp/cannot_allocate_memory.vhd /backup/tmp/cannot_allocate_memory.vhd: 1364 extents found # filefrag -v /backup/tmp/cannot_allocate_memory.vhd | tail -n5 62711 43265805 57280748 57265654 17 62712 43266061 57265655 57280764 1 62713 43266317 57396971 57265655 17 62714 43266573 57265656 57396987 1 eof /backup/tmp/cannot_allocate_memory.vhd: 45487 extents found Other than that everything works perfectly well and xfs_repair doesn't report any problems with the filesystem. So it's only a "cosmetical" issue. Thanks for any hints, Michael From jeremy@kettlebellhit.com Tue Jul 5 00:48:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,SUBJ_FRIEND autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p655moCv230045 for ; Tue, 5 Jul 2011 00:48:51 -0500 X-ASG-Debug-ID: 1309844927-3294004e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from oproxy4-pub.bluehost.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B1A7A15E9F20 for ; Mon, 4 Jul 2011 22:48:47 -0700 (PDT) Received: from oproxy4-pub.bluehost.com (oproxy4-pub.bluehost.com [69.89.21.11]) by cuda.sgi.com with SMTP id pBxKmsnuPCpHkv31 for ; Mon, 04 Jul 2011 22:48:47 -0700 (PDT) Received: (qmail 31073 invoked by uid 0); 5 Jul 2011 05:48:47 -0000 Received: from unknown (HELO box679.bluehost.com) (66.147.244.179) by cpoproxy1.bluehost.com with SMTP; 5 Jul 2011 05:48:47 -0000 DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws; s=default; d=kettlebellhit.com; h=Received:To:Subject:X-PHP-Script:Date:From:Reply-to:Message-ID:X-Priority:X-Mailer:MIME-Version:Content-Transfer-Encoding:Content-Type:X-Identified-User; b=fA/XYWIARqiA/tKKnofc4yL7xe8mljN/UAj6oydqNXHEvpjAYabvehVWffOICuH6sEhS+bkSORCC9WcBJrY1puT8AxMqOI59FAEuUX1jRgVm2v3zWEds8MdCzUhG7Ato; Received: from localhost ([127.0.0.1] helo=box679.bluehost.com) by box679.bluehost.com with esmtp (Exim 4.69) (envelope-from ) id 1QdyV5-0003y2-Fq for xfs@oss.sgi.com; Mon, 04 Jul 2011 23:48:47 -0600 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Your friend resseller commission has recommended this great product from KettlebellHIT Store Subject: Your friend resseller commission has recommended this great product from KettlebellHIT Store X-PHP-Script: store.kettlebellhit.com/index.php for 112.201.233.47 Date: Mon, 4 Jul 2011 23:48:47 -0600 From: resseller commission Reply-To: resseller commission Message-ID: X-Priority: 3 X-Mailer: PHPMailer [version 1.73] via Zen Cart MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="iso-8859-1" X-Identified-User: {2363:box679.bluehost.com:kettleb2:kettlebellhit.com} {sentby:program running on server} X-Barracuda-Connect: oproxy4-pub.bluehost.com[69.89.21.11] X-Barracuda-Start-Time: 1309844928 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68012 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi marketer! Your friend, resseller commission, thought that you would be interested in Half Cage from KettlebellHIT Store. resseller commission sent a note saying: Hi- I hope you've got a good attorney. . . Because once you flick this switch on this NEW lethal traffic machine. . . The money starts rushing in so fast. . .you might think you broke some State or Federal laws. . . http://wowclick.co.cc/affdbm.php?e=xfs@oss.sgi.com But not to worry. It's actually COMPLETELY legal.. And yet it's probably the most powerful traffic generation system that's ever come across my desk. I'm not so sure you're ready for something QUITE this powerful? Or are you. . . http://wowclick.co.cc/affdbm.php?e=xfs@oss.sgi.com Let me know what you think. Mike Smith USA P.S. If that video doesn't get your heart racing. . .you might have to check your pulse for signs of life. . . click the link below to unsubscribe: http://wowclick.co.cc/un.php?e=xfs@oss.sgi.com . ---------------------------------------------------------------------------------------- To view the product, click on the link below or copy and paste the link into your web browser: http://store.kettlebellhit.com/index.php?main_page=product_info&products_id=4 Regards, KettlebellHIT Store http://store.kettlebellhit.com/ ----- IMPORTANT: For your protection and to prevent malicious use, all emails sent via this web site are logged and the contents recorded and available to the store owner. If you feel that you have received this email in error, please send an email to jeremy@kettlebellhit.com

If you have purchased kettlebells from us, you are entitled to two free lessons. To register for the classes, visit: http://kettlebellhit.com/?page_id=10

For latest updates on fitness and training methodology, join our Facebook Page: http://www.facebook.com/#!/pages/KettlebellHIT/154088017940341

.

This email address was given to us by you or by one of our customers. If you feel that you have received this email in error, please send an email to jeremy@kettlebellhit.com

This email is sent in accordance with the Singapore Advertising rules and regulations. Removal requests can be sent to this address and will be honored and respected. From edwintorok@gmail.com Tue Jul 5 01:03:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL,UPPERCASE_50_75 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6563SEt232145 for ; Tue, 5 Jul 2011 01:03:28 -0500 X-ASG-Debug-ID: 1309845803-080302060000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 532B24B522; Mon, 4 Jul 2011 23:03:23 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 7rPbOdz2b9Xzodc5; Mon, 04 Jul 2011 23:03:23 -0700 (PDT) Received: by fxg11 with SMTP id 11so5907865fxg.6 for ; Mon, 04 Jul 2011 23:03:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :x-enigmail-version:content-type:content-transfer-encoding; bh=mcrA0k76XUdL96r8PpPz7cQRsvc0Ig1ILUOT3aU5d9M=; b=ZF7bKOeUjh6Kk8nVMDSSIiQq8ocwat6vFBa26YznVTzACE8eD9+x+FicHG0hG7YV75 cX5/Ja8gZtrSsYdabuGFrqCEPn5wADfn3wf/v/l92N49Ov6bafYROHWHTw0EwDgdfAgv oM1cspDDGAuULK54UVua2wVYz8K0l1qhinPoo= Received: by 10.223.155.140 with SMTP id s12mr10566696faw.148.1309845803082; Mon, 04 Jul 2011 23:03:23 -0700 (PDT) Received: from [192.168.1.117] ([79.114.80.147]) by mx.google.com with ESMTPS id m26sm5034967fab.10.2011.07.04.23.03.20 (version=SSLv3 cipher=OTHER); Mon, 04 Jul 2011 23:03:21 -0700 (PDT) Message-ID: <4E12A927.9020102@gmail.com> Date: Tue, 05 Jul 2011 09:03:19 +0300 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Icedove/3.1.11 MIME-Version: 1.0 To: xfs-masters@oss.sgi.com, xfs@oss.sgi.com CC: Linux Kernel Mailing List X-ASG-Orig-Subj: XFS internal error (memory corruption) Subject: XFS internal error (memory corruption) X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1309845805 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.03 X-Barracuda-Spam-Status: No, SCORE=-1.03 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, FUZZY_VPILL, UPPERCASE_50_75, UPPERCASE_50_75_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68013 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam 0.00 UPPERCASE_50_75 message body is 50-75% uppercase 0.50 BSF_RULE7568M Custom Rule 7568M 0.49 UPPERCASE_50_75_2 message body is 50-75% uppercase X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, Yesterday when running 'shutdown -Pfh now', it hung using 99% CPU in sys [*] Looking at the console there was a message about XFS "Corruption of in-memory data detected", and about XFS_WANT_CORRUPTED_GOTO. Had to shutdown the machine via SysRQ u + o. Today when I booted I got this message: [ 9.786494] XFS (md1p2): Mounting Filesystem [ 9.927590] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) [ 10.385941] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1638 of file fs/xfs/xfs_alloc.c. Caller 0xffffffff8122b80e [ 10.385943] [ 10.386007] Pid: 1990, comm: mount Not tainted 3.0.0-rc5 #155 [ 10.386009] Call Trace: [ 10.386014] [] xfs_error_report+0x3a/0x40 [ 10.386017] [] ? xfs_free_extent+0xce/0x120 [ 10.386019] [] ? xfs_alloc_lookup_eq+0x16/0x20 [ 10.386021] [] xfs_free_ag_extent+0x6aa/0x780 [ 10.386023] [] xfs_free_extent+0xce/0x120 [ 10.386026] [] ? kmem_zone_alloc+0x5f/0xe0 [ 10.386029] [] xlog_recover_process_efi+0x15f/0x1a0 [ 10.386031] [] xlog_recover_process_efis.isra.4+0x76/0xc0 [ 10.386033] [] xlog_recover_finish+0x22/0xc0 [ 10.386035] [] xfs_log_mount_finish+0x24/0x30 [ 10.386038] [] xfs_mountfs+0x45b/0x720 [ 10.386040] [] xfs_fs_fill_super+0x1f1/0x2e0 [ 10.386042] [] mount_bdev+0x1aa/0x1f0 [ 10.386044] [] ? xfs_parseargs+0xb90/0xb90 [ 10.386046] [] xfs_fs_mount+0x10/0x20 [ 10.386048] [] mount_fs+0x3e/0x1b0 [ 10.386051] [] vfs_kern_mount+0x57/0xa0 [ 10.386052] [] do_kern_mount+0x4f/0x100 [ 10.386054] [] do_mount+0x19c/0x840 [ 10.386057] [] ? __get_free_pages+0x12/0x50 [ 10.386059] [] ? copy_mount_options+0x35/0x170 [ 10.386061] [] sys_mount+0x8b/0xe0 [ 10.386064] [] system_call_fastpath+0x16/0x1b [ 10.386071] XFS (md1p2): Failed to recover EFIs [ 10.386097] XFS (md1p2): log mount finish failed [ 10.428562] XFS (md1p3): Mounting Filesystem [ 10.609949] XFS (md1p3): Ending clean mount FWIW I got a message about EFIs yesterday too, but everything else worked: Jul 4 09:42:54 debian kernel: [ 11.439861] XFS (md1p2): Mounting Filesystem Jul 4 09:42:54 debian kernel: [ 11.599815] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) Jul 4 09:42:54 debian kernel: [ 11.787980] XFS (md1p2): I/O error occurred: meta-data dev md1p2 block 0x117925a8 ("xfs_trans_read_buf") error 5 buf c ount 4096 Jul 4 09:42:54 debian kernel: [ 11.788044] XFS (md1p2): Failed to recover EFIs Jul 4 09:42:54 debian kernel: [ 11.788065] XFS (md1p2): log mount finish failed Jul 4 09:42:54 debian kernel: [ 11.831077] XFS (md1p3): Mounting Filesystem Jul 4 09:42:54 debian kernel: [ 12.009647] XFS (md1p3): Ending clean mount the XFS filesystem is used for /var, and mounted like this: UUID=6f7c65b9-40b2-4b05-9157-522a67f65c4a /mnt/var_data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k,logdev=/dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5 0 2 I can't mount the FS anymore: mount: Structure needs cleaning So I used xfs_repair /dev/md1p2 -l /dev/sdi5 -L, and then I could mount the log. I did save the faulty log-file, let me know if you need it: -rw-r--r-- 1 edwin edwin 2.9M Jul 5 09:00 sdi5.xz This is on a 3.0-rc5 kernel, my .config is below: I've run perf top with the hung shutdown, and it showed me something like this: 1964.00 16.3% filemap_fdatawait_range /lib/modules/3.0.0-rc5/build/vmlinux 1831.00 15.2% _raw_spin_lock /lib/modules/3.0.0-rc5/build/vmlinux 1316.00 10.9% iput /lib/modules/3.0.0-rc5/build/vmlinux 1265.00 10.5% _atomic_dec_and_lock /lib/modules/3.0.0-rc5/build/vmlinux 998.00 8.3% _raw_spin_unlock /lib/modules/3.0.0-rc5/build/vmlinux 731.00 6.1% sync_inodes_sb /lib/modules/3.0.0-rc5/build/vmlinux 724.00 6.0% find_get_pages_tag /lib/modules/3.0.0-rc5/build/vmlinux 580.00 4.8% radix_tree_gang_lookup_tag_slot /lib/modules/3.0.0-rc5/build/vmlinux 525.00 4.3% __rcu_read_unlock /lib/modules/3.0.0-rc5/build/vmlinux # Automatically generated make config: don't edit # Linux/x86_64 3.0.0-rc4 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ZONE_DMA32=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" # CONFIG_KTIME_SCALAR is not set CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set CONFIG_KERNEL_LZO=y CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y # CONFIG_SPARSE_IRQ is not set # # RCU Subsystem # CONFIG_TREE_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=64 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_RCU_BOOST is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y CONFIG_RESOURCE_COUNTERS=y # CONFIG_CGROUP_MEM_RES_CTLR is not set # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EXPERT is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y # CONFIG_BLK_DEV_INTEGRITY is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLOCK_COMPAT=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y # CONFIG_INLINE_SPIN_TRYLOCK is not set # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK is not set # CONFIG_INLINE_SPIN_LOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set # CONFIG_INLINE_SPIN_UNLOCK is not set # CONFIG_INLINE_SPIN_UNLOCK_BH is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_READ_TRYLOCK is not set # CONFIG_INLINE_READ_LOCK is not set # CONFIG_INLINE_READ_LOCK_BH is not set # CONFIG_INLINE_READ_LOCK_IRQ is not set # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set # CONFIG_INLINE_READ_UNLOCK is not set # CONFIG_INLINE_READ_UNLOCK_BH is not set # CONFIG_INLINE_READ_UNLOCK_IRQ is not set # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_WRITE_TRYLOCK is not set # CONFIG_INLINE_WRITE_LOCK is not set # CONFIG_INLINE_WRITE_LOCK_BH is not set # CONFIG_INLINE_WRITE_LOCK_IRQ is not set # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set # CONFIG_INLINE_WRITE_UNLOCK is not set # CONFIG_INLINE_WRITE_UNLOCK_BH is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y # CONFIG_X86_MPPARSE is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_PARAVIRT_GUEST is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set CONFIG_MK8=y # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set # CONFIG_GENERIC_CPU is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_CMPXCHG_LOCAL=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_AMD_IOMMU=y # CONFIG_AMD_IOMMU_STATS is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y CONFIG_IOMMU_API=y # CONFIG_MAXSMP is not set CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set CONFIG_SCHED_MC=y # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set CONFIG_X86_MCE=y # CONFIG_X86_MCE_INTEL is not set CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y # CONFIG_X86_MCE_INJECT is not set # CONFIG_I8K is not set CONFIG_MICROCODE=m # CONFIG_MICROCODE_INTEL is not set CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=m CONFIG_X86_CPUID=m CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DIRECT_GBPAGES=y # CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y # CONFIG_MEMORY_HOTPLUG is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y # CONFIG_HWPOISON_INJECT is not set CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_CLEANCACHE=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y # CONFIG_EFI is not set CONFIG_SECCOMP=y # CONFIG_CC_STACKPROTECTOR is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y # CONFIG_COMPAT_VDSO is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=m # CONFIG_ACPI_CUSTOM_METHOD is not set CONFIG_ACPI_APEI=y CONFIG_ACPI_APEI_GHES=m CONFIG_ACPI_APEI_PCIEAER=y # CONFIG_ACPI_APEI_EINJ is not set # CONFIG_ACPI_APEI_ERST_DEBUG is not set # CONFIG_SFI is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=m CONFIG_CPU_FREQ_STAT=m # CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # x86 CPU frequency scaling drivers # # CONFIG_X86_PCC_CPUFREQ is not set CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K8=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set # # shared options # # CONFIG_X86_SPEEDSTEP_LIB is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_INTEL_IDLE is not set # # Memory power savings # # CONFIG_I7300_IDLE is not set # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_DMAR is not set # CONFIG_INTR_REMAP is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y CONFIG_PCI_IOV=y CONFIG_PCI_IOAPIC=y CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y # CONFIG_PCCARD is not set # CONFIG_HOTPLUG_PCI is not set # CONFIG_RAPIDIO is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y # CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=m CONFIG_IA32_EMULATION=y CONFIG_IA32_AOUT=m CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_KEYS_COMPAT=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=y # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=y # CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y # CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE_DEMUX is not set CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y # CONFIG_NETLABEL is not set # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMESTAMP is not set CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m # CONFIG_NF_CONNTRACK_SNMP is not set CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_TPROXY is not set CONFIG_NETFILTER_XTABLES=m # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m # # Xtables targets # # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m # CONFIG_NETFILTER_XT_TARGET_LED is not set CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # # Xtables matches # # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m # CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m # CONFIG_IP_SET is not set # CONFIG_IP_VS is not set # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PROTO_UDPLITE=m CONFIG_NF_NAT_PROTO_SCTP=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m # CONFIG_IP_NF_SECURITY is not set CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m # CONFIG_IP6_NF_SECURITY is not set # CONFIG_BRIDGE_NF_EBTABLES is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_L2TP is not set CONFIG_STP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y CONFIG_HAVE_BPF_JIT=y CONFIG_BPF_JIT=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set CONFIG_BT=m CONFIG_BT_L2CAP=y CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m # # Bluetooth device drivers # CONFIG_BT_HCIBTUSB=m # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set # CONFIG_BT_ATH3K is not set # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y # CONFIG_WIRELESS is not set # CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m # CONFIG_PARPORT_SERIAL is not set # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PNP=y CONFIG_PNP_DEBUG_MESSAGES=y # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m # # DRBD disabled because PROC_FS, INET or CONNECTOR not selected # CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 # CONFIG_BLK_DEV_XIP is not set CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_MISC_DEVICES is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_SCSI_PROC_FS is not set # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y # CONFIG_CHR_DEV_SG is not set # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_DH is not set # CONFIG_SCSI_OSD_INITIATOR is not set CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y # CONFIG_SATA_AHCI_PLATFORM is not set # CONFIG_SATA_INIC162X is not set # CONFIG_SATA_ACARD_AHCI is not set CONFIG_SATA_SIL24=y CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_SX4 is not set CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=m # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_SATA_PROMISE is not set CONFIG_SATA_SIL=y # CONFIG_SATA_SIS is not set # CONFIG_SATA_SVW is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # # PATA SFF controllers with BMDMA # # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARASAN_CF is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_ATP867X is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CS5536 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_IT821X is not set CONFIG_PATA_JMICRON=y # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NINJA32 is not set # CONFIG_PATA_NS87415 is not set # CONFIG_PATA_OLDPIIX is not set # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RDC is not set # CONFIG_PATA_SC1200 is not set # CONFIG_PATA_SCH is not set # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_TOSHIBA is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # # CONFIG_PATA_ACPI is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=y CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y CONFIG_MD_RAID10=y # CONFIG_MD_RAID456 is not set CONFIG_MD_MULTIPATH=y # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set # CONFIG_DM_CRYPT is not set CONFIG_DM_SNAPSHOT=y CONFIG_DM_MIRROR=y # CONFIG_DM_RAID is not set # CONFIG_DM_LOG_USERSPACE is not set CONFIG_DM_ZERO=y # CONFIG_DM_MULTIPATH is not set # CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y # CONFIG_DM_FLAKEY is not set # CONFIG_TARGET_CORE is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m # CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # CONFIG_VETH is not set # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set CONFIG_MII=y # CONFIG_PHYLIB is not set # CONFIG_NET_ETHERNET is not set CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set # CONFIG_E1000E is not set # CONFIG_IP1000 is not set # CONFIG_IGB is not set # CONFIG_IGBVF is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_R8169=y # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_CNIC is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_JME is not set # CONFIG_STMMAC_ETH is not set # CONFIG_PCH_GBE is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # CONFIG_WLAN is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET is not set # CONFIG_USB_IPHETH is not set # CONFIG_WAN is not set # # CAIF transport drivers # # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PLIP is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set CONFIG_PPP_FILTER=y # CONFIG_PPP_ASYNC is not set # CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set CONFIG_PPPOE=m # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_NET_FC is not set CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y # CONFIG_NETPOLL_TRAP is not set CONFIG_NET_POLL_CONTROLLER=y CONFIG_VIRTIO_NET=m # CONFIG_VMXNET3 is not set # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m # CONFIG_INPUT_SPARSEKMAP is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set CONFIG_KEYBOARD_LKKBD=m # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set CONFIG_KEYBOARD_NEWTON=m # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_XTKBD=m CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y # CONFIG_MOUSE_PS2_ELANTECH is not set # CONFIG_MOUSE_PS2_SENTELIC is not set # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_SERIAL=m # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_BCM5974 is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_MOUSE_SYNAPTICS_I2C is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set CONFIG_SERIO_PCIPS2=m CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_NOZOMI is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # # CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_PRINTER is not set # CONFIG_PPDEV is not set CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=m # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=m # CONFIG_HW_RANDOM_TIMERIOMEM is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m # CONFIG_HW_RANDOM_VIRTIO is not set CONFIG_NVRAM=m # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y CONFIG_RAMOOPS=m CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # # CONFIG_I2C_MUX_PCA9541 is not set CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # CONFIG_I2C_ALI1535=m CONFIG_I2C_ALI1563=m CONFIG_I2C_ALI15X3=m CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m # CONFIG_I2C_ISCH is not set CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m CONFIG_I2C_SIS5595=m CONFIG_I2C_SIS630=m CONFIG_I2C_SIS96X=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # ACPI drivers # CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_INTEL_MID is not set CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m CONFIG_I2C_XILINX=m # CONFIG_I2C_EG20T is not set # # External I2C/SMBus adapter drivers # # CONFIG_I2C_DIOLAN_U2C is not set CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m # # Other I2C/SMBus bus drivers # CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set # # PPS support # # CONFIG_PPS is not set # # PPS generators support # # # PTP clock support # # # Enable Device Drivers -> PPS to see the PTP clock options. # CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set # CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_BQ20Z75 is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m # CONFIG_SENSORS_FAM15H_POWER is not set CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m # CONFIG_SENSORS_DS620 is not set CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m # CONFIG_SENSORS_LINEAGE is not set CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m # CONFIG_SENSORS_LTC4151 is not set CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m # CONFIG_SENSORS_LTC4261 is not set CONFIG_SENSORS_LM95241=m # CONFIG_SENSORS_MAX16065 is not set CONFIG_SENSORS_MAX1619=m # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m # CONFIG_PMBUS is not set # CONFIG_SENSORS_SHT21 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m CONFIG_SENSORS_EMC2103=m # CONFIG_SENSORS_EMC6W201 is not set CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m # CONFIG_SENSORS_W83795 is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_SENSORS_APPLESMC=m # # ACPI drivers # # CONFIG_SENSORS_ACPI_POWER is not set CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=m # CONFIG_THERMAL_HWMON is not set # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y # CONFIG_SSB_B43_PCI_BRIDGE is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # # CONFIG_BCMA is not set # CONFIG_MFD_SUPPORT is not set # CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m # CONFIG_DVB_CORE is not set CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # # CONFIG_RC_CORE is not set # CONFIG_MEDIA_ATTACH is not set CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # # Audio decoders, processors and mixers # # # RDS decoders # # # Video decoders # # # Video and audio decoders # # # MPEG video encoders # # # Video encoders # # # Camera sensor devices # # # Video improvement chips # # # Miscelaneous helper chips # # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BWQCAM is not set # CONFIG_VIDEO_CQCAM is not set # CONFIG_VIDEO_W9966 is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_VIDEO_SR030PC30 is not set # CONFIG_VIDEO_NOON010PC30 is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m # CONFIG_USB_M5602 is not set # CONFIG_USB_STV06XX is not set # CONFIG_USB_GL860 is not set # CONFIG_USB_GSPCA_BENQ is not set # CONFIG_USB_GSPCA_CONEX is not set # CONFIG_USB_GSPCA_CPIA1 is not set # CONFIG_USB_GSPCA_ETOMS is not set # CONFIG_USB_GSPCA_FINEPIX is not set # CONFIG_USB_GSPCA_JEILINJ is not set # CONFIG_USB_GSPCA_KINECT is not set # CONFIG_USB_GSPCA_KONICA is not set # CONFIG_USB_GSPCA_MARS is not set # CONFIG_USB_GSPCA_MR97310A is not set # CONFIG_USB_GSPCA_NW80X is not set # CONFIG_USB_GSPCA_OV519 is not set # CONFIG_USB_GSPCA_OV534 is not set # CONFIG_USB_GSPCA_OV534_9 is not set # CONFIG_USB_GSPCA_PAC207 is not set # CONFIG_USB_GSPCA_PAC7302 is not set # CONFIG_USB_GSPCA_PAC7311 is not set # CONFIG_USB_GSPCA_SN9C2028 is not set # CONFIG_USB_GSPCA_SN9C20X is not set # CONFIG_USB_GSPCA_SONIXB is not set # CONFIG_USB_GSPCA_SONIXJ is not set # CONFIG_USB_GSPCA_SPCA500 is not set # CONFIG_USB_GSPCA_SPCA501 is not set # CONFIG_USB_GSPCA_SPCA505 is not set # CONFIG_USB_GSPCA_SPCA506 is not set # CONFIG_USB_GSPCA_SPCA508 is not set # CONFIG_USB_GSPCA_SPCA561 is not set # CONFIG_USB_GSPCA_SPCA1528 is not set # CONFIG_USB_GSPCA_SQ905 is not set # CONFIG_USB_GSPCA_SQ905C is not set # CONFIG_USB_GSPCA_SQ930X is not set # CONFIG_USB_GSPCA_STK014 is not set # CONFIG_USB_GSPCA_STV0680 is not set # CONFIG_USB_GSPCA_SUNPLUS is not set # CONFIG_USB_GSPCA_T613 is not set # CONFIG_USB_GSPCA_TV8532 is not set # CONFIG_USB_GSPCA_VC032X is not set # CONFIG_USB_GSPCA_VICAM is not set # CONFIG_USB_GSPCA_XIRLINK_CIT is not set CONFIG_USB_GSPCA_ZC3XX=m # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set # CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_I2C_SI4713 is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_TEF6862 is not set # CONFIG_RADIO_WL1273 is not set # # Texas Instruments WL128x FM driver (ST based) # # # Graphics support # # CONFIG_AGP is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=1 # CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m CONFIG_DRM_RADEON_KMS=y # CONFIG_DRM_MGA is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set # CONFIG_STUB_POULSBO is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=m CONFIG_FB_CFB_COPYAREA=m CONFIG_FB_CFB_IMAGEBLIT=m # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_SYS_FOPS is not set # CONFIG_FB_WMT_GE_ROPS is not set # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_VESA is not set # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y CONFIG_BACKLIGHT_PROGEAR=m # CONFIG_BACKLIGHT_APPLE is not set CONFIG_BACKLIGHT_SAHARA=m # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # # Display device support # CONFIG_DISPLAY_SUPPORT=m # # Display hardware drivers # # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_HRTIMER=m CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y # CONFIG_SND_RAWMIDI_SEQ is not set # CONFIG_SND_OPL3_LIB_SEQ is not set # CONFIG_SND_OPL4_LIB_SEQ is not set # CONFIG_SND_SBAWE_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_DRIVERS is not set CONFIG_SND_PCI=y # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ASIHPI is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_OXYGEN is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_CS5535AUDIO is not set # CONFIG_SND_CTXFI is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_INDIGOIOX is not set # CONFIG_SND_INDIGODJX is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=5 # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set # CONFIG_SND_INTEL8X0 is not set # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_LOLA is not set # CONFIG_SND_LX6464ES is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VIRTUOSO is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # CONFIG_SND_USB is not set CONFIG_SND_FIREWIRE=y # CONFIG_SND_FIREWIRE_SPEAKERS is not set # CONFIG_SND_ISIGHT is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set # # USB Input Devices # CONFIG_USB_HID=m # CONFIG_HID_PID is not set # CONFIG_USB_HIDDEV is not set # # Special HID drivers # CONFIG_HID_A4TECH=m # CONFIG_HID_ACRUX is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m # CONFIG_HID_PRODIKEYS is not set CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_ELECOM is not set CONFIG_HID_EZKEY=m # CONFIG_HID_KEYTOUCH is not set CONFIG_HID_KYE=m # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m # CONFIG_HID_LCPOWER is not set CONFIG_HID_LOGITECH=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWII_FF is not set # CONFIG_HID_MAGICMOUSE is not set CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m # CONFIG_HID_MULTITOUCH is not set CONFIG_HID_NTRIG=m CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m # CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m # CONFIG_HID_PICOLCD is not set # CONFIG_HID_QUANTA is not set # CONFIG_HID_ROCCAT is not set # CONFIG_HID_ROCCAT_ARVO is not set # CONFIG_HID_ROCCAT_KONE is not set # CONFIG_HID_ROCCAT_KONEPLUS is not set # CONFIG_HID_ROCCAT_KOVAPLUS is not set # CONFIG_HID_ROCCAT_PYRA is not set CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set # CONFIG_HID_WACOM is not set CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set # CONFIG_HID_ZYDACRON is not set CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=m # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set CONFIG_USB_MON=m # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set # CONFIG_USB_ISP1362_HCD is not set CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_HCD_SSB=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set # CONFIG_USB_HWA_HCD is not set # # Enable Host or Gadget support to see Inventra options # # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m # CONFIG_USB_WDM is not set # CONFIG_USB_TMC is not set # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_REALTEK is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_ISD200 is not set CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_ONETOUCH is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set # CONFIG_USB_STORAGE_ENE_UB6250 is not set # CONFIG_USB_UAS is not set CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB port drivers # # CONFIG_USB_USS720 is not set CONFIG_USB_SERIAL=m # CONFIG_USB_EZUSB is not set CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_ARK3116 is not set # CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_CH341 is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set # CONFIG_USB_SERIAL_CP210X is not set # CONFIG_USB_SERIAL_CYPRESS_M8 is not set # CONFIG_USB_SERIAL_EMPEG is not set # CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_FUNSOFT is not set # CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_EDGEPORT_TI is not set # CONFIG_USB_SERIAL_GARMIN is not set # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set # CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set # CONFIG_USB_SERIAL_MOS7720 is not set # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MOTOROLA is not set # CONFIG_USB_SERIAL_NAVMAN is not set # CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_OTI6858 is not set # CONFIG_USB_SERIAL_QCAUX is not set # CONFIG_USB_SERIAL_QUALCOMM is not set # CONFIG_USB_SERIAL_SPCP8X5 is not set # CONFIG_USB_SERIAL_HP4X is not set # CONFIG_USB_SERIAL_SAFE is not set # CONFIG_USB_SERIAL_SIEMENS_MPI is not set # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set # CONFIG_USB_SERIAL_SYMBOL is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set # CONFIG_USB_SERIAL_OPTICON is not set # CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set # CONFIG_USB_SERIAL_ZIO is not set # CONFIG_USB_SERIAL_SSU100 is not set # CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set # CONFIG_USB_SEVSEG is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set # CONFIG_USB_GADGET is not set # # OTG and related infrastructure # # CONFIG_NOP_USB_XCEIV is not set # CONFIG_UWB is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # # LED drivers # # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_ALIX2 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_INTEL_SS4200 is not set # CONFIG_LEDS_DELL_NETBOOKS is not set CONFIG_LEDS_TRIGGERS=y # # LED Triggers # CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # # CONFIG_NFC_DEVICES is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m # CONFIG_RTC_DRV_DS3232 is not set CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m # CONFIG_RTC_DRV_ISL12022 is not set CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m # CONFIG_RTC_DRV_M41T80_WDT is not set # CONFIG_RTC_DRV_BQ32K is not set CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set # # SPI RTC drivers # # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y # CONFIG_RTC_DRV_DS1286 is not set CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m # CONFIG_RTC_DRV_M48T35 is not set CONFIG_RTC_DRV_M48T59=m # CONFIG_RTC_DRV_MSM6242 is not set # CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_RP5C01 is not set CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # CONFIG_DMADEVICES is not set # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m # CONFIG_UIO_CIF is not set # CONFIG_UIO_PDRV is not set # CONFIG_UIO_PDRV_GENIRQ is not set # CONFIG_UIO_AEC is not set # CONFIG_UIO_SERCOS3 is not set # CONFIG_UIO_PCI_GENERIC is not set # CONFIG_UIO_NETX is not set # CONFIG_STAGING is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACER_WMI is not set # CONFIG_ACERHDF is not set # CONFIG_ASUS_LAPTOP is not set # CONFIG_DELL_WMI is not set # CONFIG_DELL_WMI_AIO is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_HP_ACCEL is not set # CONFIG_HP_WMI is not set # CONFIG_PANASONIC_LAPTOP is not set # CONFIG_THINKPAD_ACPI is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_MENLOW is not set CONFIG_ACPI_WMI=m # CONFIG_MSI_WMI is not set # CONFIG_ACPI_ASUS is not set # CONFIG_TOPSTAR_LAPTOP is not set # CONFIG_ACPI_TOSHIBA is not set # CONFIG_TOSHIBA_BT_RFKILL is not set # CONFIG_ACPI_CMPC is not set # CONFIG_INTEL_IPS is not set # CONFIG_IBM_RTL is not set # CONFIG_XO15_EBOOK is not set # CONFIG_MXM_WMI is not set # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y CONFIG_DMI_SYSFS=m # CONFIG_ISCSI_IBFT_FIND is not set # CONFIG_SIGMA is not set # CONFIG_GOOGLE_FIRMWARE is not set # # File systems # CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y # CONFIG_EXT2_FS_SECURITY is not set CONFIG_EXT2_FS_XIP=y # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y # CONFIG_EXT4_FS_POSIX_ACL is not set CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_FS_XIP=y CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_XFS_FS=y CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m # CONFIG_CUSE is not set CONFIG_GENERIC_ACL=y # # Caches # # CONFIG_FSCACHE is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m # CONFIG_MSDOS_FS is not set CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_LOGFS is not set CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_XATTR is not set # CONFIG_SQUASHFS_LZO is not set # CONFIG_SQUASHFS_XZ is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set # CONFIG_NFS_V4 is not set CONFIG_NFSD=m # CONFIG_NFSD_DEPRECATED is not set CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set # CONFIG_NFSD_V4 is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y CONFIG_ACORN_PARTITION=y # CONFIG_ACORN_PARTITION_CUMANA is not set # CONFIG_ACORN_PARTITION_EESOX is not set CONFIG_ACORN_PARTITION_ICS=y # CONFIG_ACORN_PARTITION_ADFS is not set # CONFIG_ACORN_PARTITION_POWERTEC is not set CONFIG_ACORN_PARTITION_RISCIX=y CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y CONFIG_ATARI_PARTITION=y CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y CONFIG_LDM_PARTITION=y # CONFIG_LDM_DEBUG is not set CONFIG_SGI_PARTITION=y CONFIG_ULTRIX_PARTITION=y CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set CONFIG_NLS_ISO8859_15=m # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=m # CONFIG_DLM is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y CONFIG_STRIP_ASM_SYMS=y CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_LOCKUP_DETECTOR=y CONFIG_HARDLOCKUP_DETECTOR=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_CPU_STALL_VERBOSE=y # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_LKDTM is not set # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set CONFIG_LATENCYTOP=y # CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_EVENT_POWER_TRACING_DEPRECATED=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y # CONFIG_FUNCTION_TRACER is not set # CONFIG_IRQSOFF_TRACER is not set # CONFIG_PREEMPT_TRACER is not set # CONFIG_SCHED_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_STACK_TRACER is not set CONFIG_BLK_DEV_IO_TRACE=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y # CONFIG_KMEMCHECK is not set # CONFIG_TEST_KSTRTOX is not set CONFIG_STRICT_DEVMEM=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_DEBUG_SET_MODULE_RONX=y # CONFIG_DEBUG_NX_TEST is not set # CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_DEBUG_BOOT_PARAMS is not set # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y # # Security options # CONFIG_KEYS=y # CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y # CONFIG_SECURITYFS is not set # CONFIG_SECURITY_NETWORK is not set # CONFIG_SECURITY_PATH is not set # CONFIG_SECURITY_TOMOYO is not set # CONFIG_SECURITY_APPARMOR is not set # CONFIG_IMA is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m # CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_SEQIV=m # # Block modes # CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_CTR=m CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m # # Hash modes # CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m # CONFIG_CRYPTO_VMAC is not set # # Digest # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set # # Ciphers # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_X86_64=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_X86_64=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m # # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_PADLOCK is not set CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=y # CONFIG_KVM_INTEL is not set CONFIG_KVM_AMD=y # CONFIG_KVM_MMU_AUDIT is not set CONFIG_VHOST_NET=y CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=y CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_NLATTR=y # CONFIG_AVERAGE is not set Best regards, --Edwin From david@fromorbit.com Tue Jul 5 05:32:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65AWNSq251398 for ; Tue, 5 Jul 2011 05:32:23 -0500 X-ASG-Debug-ID: 1309861940-59fc02360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7873593D1FE for ; Tue, 5 Jul 2011 03:32:21 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id dYBmrx2bOEnzFUFp for ; Tue, 05 Jul 2011 03:32:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAA7lEk55LCkB/2dsb2JhbABTp314yzEOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 05 Jul 2011 20:02:19 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qe2vR-0005Z2-Kr; Tue, 05 Jul 2011 20:32:17 +1000 Date: Tue, 5 Jul 2011 20:32:17 +1000 From: Dave Chinner To: Michael Weissenbacher Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory Message-ID: <20110705103217.GC561@dastard> References: <4E129B00.4020709@dermichi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E129B00.4020709@dermichi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309861942 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68030 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 07:02:56AM +0200, Michael Weissenbacher wrote: > Hi List! > I've got a file here on which i cannot use xfs_bmap to determine it's > fragments. All that i know is that it must have a really great number of > them. It was the result of running a smbd without strict allocate. The > machine itself has 8GiB of RAM and 10GiB of swap available, so that > shouldn't be the problem. I guess this is some bug in xfs_bmap. Or is it > a known limitation? Sounds like your memory is fragmented. IIRC, bmap tries to map all the extents in a single buffer, and that might cause problems for files with large numbers of extents. ENOMEM can occur if an internal buffer cannot be allocated to hold all the extents to be mapped in one call. Try using the "-n " option to reduce the number of extents gathered per ioctl call and see if that makes the issue go away. Cheers, Dave. -- Dave Chinner david@fromorbit.com From stan@hardwarefreak.com Tue Jul 5 05:35:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65AZYB5251482 for ; Tue, 5 Jul 2011 05:35:34 -0500 X-ASG-Debug-ID: 1309862133-024901af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 219351E58F75 for ; Tue, 5 Jul 2011 03:35:33 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id LTu1zR1Z2YdSNml4 for ; Tue, 05 Jul 2011 03:35:33 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 106D76C134 for ; Tue, 5 Jul 2011 05:35:33 -0500 (CDT) Message-ID: <4E12E8F3.4080704@hardwarefreak.com> Date: Tue, 05 Jul 2011 05:35:31 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory References: <4E129B00.4020709@dermichi.com> In-Reply-To: <4E129B00.4020709@dermichi.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1309862134 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1245 1.0000 -1.2476 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.65 X-Barracuda-Spam-Status: No, SCORE=-0.65 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68031 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/5/2011 12:02 AM, Michael Weissenbacher wrote: > xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 Googling the text above returns only 5 results, including your post today to this list. Thus I doubt your problem is the result of a bug in XFS or xfsprogs. Was the file being written to when you ran xfs_bmap? If not, did you flush caches before running xfs_bmap? Did you try unmounting and remounting the filesystem? These steps are sometimes needed to get actual extent usage due to extents in cache that have not yet been written to disk. What distro/kernel version? What xfsprogs version? What filefrag version? -- Stan From korczyk.l@gmail.com Tue Jul 5 05:43:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.1 required=5.0 tests=BAYES_50,FREEMAIL_FROM, HTML_MESSAGE,MIME_8BIT_HEADER,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65AhCOR251750 for ; Tue, 5 Jul 2011 05:43:13 -0500 X-ASG-Debug-ID: 1309862591-024e01cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AECD01E58FB3 for ; Tue, 5 Jul 2011 03:43:11 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id Qq8t3fGRBommJHxD for ; Tue, 05 Jul 2011 03:43:11 -0700 (PDT) Received: by qwb7 with SMTP id 7so3641862qwb.26 for ; Tue, 05 Jul 2011 03:43:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=xx3mX6QotQcC9Yht6fKybHFmRFVtZBbLqR3UhCEB5w4=; b=LrlRaEXHduYAgCiYCc6yJsDx+eNMiWEFimxJUtNgNT+WXlr5o5t8g5P5dE7YaPUFN4 ksASv529UwlS+YC4df6hPTcXDhY9j5uG+RbcaBsBkMNcrlAYsiBXJycAdpa9ZZnAvlxB LKA5Pa5jy6lbfKJUS/fn0VM6VWXLbfxbivLYA= MIME-Version: 1.0 Received: by 10.229.137.19 with SMTP id u19mr5213938qct.173.1309862590763; Tue, 05 Jul 2011 03:43:10 -0700 (PDT) Received: by 10.229.43.95 with HTTP; Tue, 5 Jul 2011 03:43:10 -0700 (PDT) In-Reply-To: <20110704121307.GX561@dastard> References: <20110704121307.GX561@dastard> Date: Tue, 5 Jul 2011 12:43:10 +0200 Message-ID: X-ASG-Orig-Subj: Re: question about xfs_repair Subject: Re: question about xfs_repair From: =?ISO-8859-2?Q?=A3ukasz_Korczyk?= To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=00235452ffec6d546604a7502600 X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1309862591 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.50 X-Barracuda-Spam-Status: No, SCORE=-1.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, MIME_BASE64_TEXT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68031 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.52 MIME_BASE64_TEXT RAW: Message text disguised using base64 encoding X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00235452ffec6d546604a7502600 Content-Type: text/plain; charset=ISO-8859-2 Content-Transfer-Encoding: quoted-printable I have found this pice of code in xfs_repair.c: /* * Adjust libxfs cache sizes based on system memory, * filesystem size and inode count. * * We'll set the cache size based on 3/4s the memory minus * space used by the inode AVL tree and block usage map. * * Inode AVL tree space is approximately 4 bytes per inode, * block usage map is currently 1 byte for 2 blocks. * * We assume most blocks will be inode clusters. * * Calculations are done in kilobyte units. */ if (!bhash_option_used || max_mem_specified) { unsigned long mem_used; unsigned long max_mem; struct rlimit rlim; libxfs_icache_purge(); libxfs_bcache_purge(); cache_destroy(libxfs_icache); cache_destroy(libxfs_bcache); mem_used =3D (mp->m_sb.sb_icount >> (10 - 2)) + (mp->m_sb.sb_dblocks >> (10 + 1)) + 50000; /* rough estimate of 50MB overhead */ max_mem =3D max_mem_specified ? max_mem_specified * 1024 : libxfs_physmem() * 3 / 4; if (getrlimit(RLIMIT_AS, &rlim) !=3D -1 && rlim.rlim_cur !=3D RLIM_INFINITY) { rlim.rlim_cur =3D rlim.rlim_max; setrlimit(RLIMIT_AS, &rlim); /* use approximately 80% of rlimit to avoid overrun */ max_mem =3D MIN(max_mem, rlim.rlim_cur / 1280); } else max_mem =3D MIN(max_mem, (LONG_MAX >> 10) + 1); if (verbose > 1) do_log(_(" - max_mem =3D %lu, icount =3D %ll= u, " "imem =3D %llu, dblock =3D %llu, dmem =3D %llu\n"), max_mem, mp->m_sb.sb_icount, mp->m_sb.sb_icount >> (10 - 2), mp->m_sb.sb_dblocks, mp->m_sb.sb_dblocks >> (10 + 1)); if (max_mem <=3D mem_used) { /* * Turn off prefetch and minimise libxfs cache if * physical memory is deemed insufficient */ if (max_mem_specified) { do_abort( _("Required memory for repair is greater that the maximum specified\n" "with the -m option. Please increase it to at least %lu.\n"), mem_used / 1024); } else { do_warn( _("Not enough RAM available for repair to enable prefetching.\n" "This will be _slow_.\n" "You need at least %luMB RAM to run with prefetching enabled.\n")= , mem_used * 1280 / (1024 * 1024)); } do_prefetch =3D 0; libxfs_bhash_size =3D 64; } else { max_mem -=3D mem_used; if (max_mem >=3D (1 << 30)) max_mem =3D 1 << 30; libxfs_bhash_size =3D max_mem / (HASH_CACHE_RATIO * (mp->m_inode_cluster_size >> 10)); if (libxfs_bhash_size < 512) libxfs_bhash_size =3D 512; } if (verbose) do_log(_(" - block cache size set to %d entries\n"), libxfs_bhash_size * HASH_CACHE_RATIO); if (!ihash_option_used) libxfs_ihash_size =3D libxfs_bhash_size; libxfs_icache =3D cache_init(libxfs_ihash_size, &libxfs_icache_operations); libxfs_bcache =3D cache_init(libxfs_bhash_size, &libxfs_bcache_operations); } I'm lack of programming skills to analyze the code and create formula which would allow me to predict memory usage of xfs_repair. Can some one explain how is it calculated, please? My goal is to be able, to specify minimal requirements. Cheers =A3ukasz Korczyk W dniu 4 lipca 2011 14:13 u=BFytkownik Dave Chinner na= pisa=B3: > On Mon, Jul 04, 2011 at 11:41:49AM +0200, =A3ukasz Korczyk wrote: > > Helo > > > > I have a question I wasn't able to find answer for. > > > > Which factors influence memory usage of xfs_repair? > > Does any formula exist to count possible memory usage? > > # xfs_repair -n -vv -m 1 /dev/vda > Phase 1 - find and verify superblock... > - max_mem =3D 1024, icount =3D 64, imem =3D 0, dblock =3D 42949672= 96, dmem =3D > 2097152 > Required memory for repair is greater that the maximum specified > with the -m option. Please increase it to at least 2096. > > So it's telling me I need at least 2096MB of RAM to repair my 16TB > filesystem, of which 2097152KB is needed for tracking free space... > > I just added 50 million inodes to the filesystem (it now has 50M + > 10 inodes in it), and the result is: > > # xfs_repair -vv -m 1 /dev/vda > Phase 1 - find and verify superblock... > - max_mem =3D 1024, icount =3D 50401792, imem =3D 196882, dblock = =3D > 4294967296, dmem =3D 2097152 > Required memory for repair is greater that the maximum specified > with the -m option. Please increase it to at least 2289. > > That is now needs at least another 200MB of RAM to run. > > It is worth noting that these numbers are the absolute minimum > required and repair may require more RAM than this to complete > successfully. If you only give it this much RAM, it will be slow; > for best repair performance, the more RAM you can give it the > better. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > --00235452ffec6d546604a7502600 Content-Type: text/html; charset=ISO-8859-2 Content-Transfer-Encoding: base64 SSBoYXZlIGZvdW5kIHRoaXMgcGljZSBvZiBjb2RlIGluIHhmc19yZXBhaXIuYzo8YnI+PGJyPi8q PGJyPqCgoKCgoKCgICogQWRqdXN0IGxpYnhmcyBjYWNoZSBzaXplcyBiYXNlZCBvbiBzeXN0ZW0g bWVtb3J5LDxicj6goKCgoKCgoCAqIGZpbGVzeXN0ZW0gc2l6ZSBhbmQgaW5vZGUgY291bnQuPGJy PqCgoKCgoKCgICo8YnI+oKCgoKCgoKAgKiBXZSYjMzk7bGwgc2V0IHRoZSBjYWNoZSBzaXplIGJh c2VkIG9uIDMvNHMgdGhlIG1lbW9yeSBtaW51czxicj4KoKCgoKCgoKAgKiBzcGFjZSB1c2VkIGJ5 IHRoZSBpbm9kZSBBVkwgdHJlZSBhbmQgYmxvY2sgdXNhZ2UgbWFwLjxicj6goKCgoKCgoCAqPGJy PqCgoKCgoKCgICogSW5vZGUgQVZMIHRyZWUgc3BhY2UgaXMgYXBwcm94aW1hdGVseSA0IGJ5dGVz IHBlciBpbm9kZSw8YnI+oKCgoKCgoKAgKiBibG9jayB1c2FnZSBtYXAgaXMgY3VycmVudGx5IDEg Ynl0ZSBmb3IgMiBibG9ja3MuPGJyPqCgoKCgoKCgICo8YnI+CqCgoKCgoKCgICogV2UgYXNzdW1l IG1vc3QgYmxvY2tzIHdpbGwgYmUgaW5vZGUgY2x1c3RlcnMuPGJyPqCgoKCgoKCgICo8YnI+oKCg oKCgoKAgKiBDYWxjdWxhdGlvbnMgYXJlIGRvbmUgaW4ga2lsb2J5dGUgdW5pdHMuPGJyPqCgoKCg oKCgICovPGJyPjxicj6goKCgoKCgIGlmICghYmhhc2hfb3B0aW9uX3VzZWQgfHwgbWF4X21lbV9z cGVjaWZpZWQpIHs8YnI+oKCgoKCgoKCgoKCgoKCgIHVuc2lnbmVkIGxvbmegoCBtZW1fdXNlZDs8 YnI+CqCgoKCgoKCgoKCgoKCgoCB1bnNpZ25lZCBsb25noKAgbWF4X21lbTs8YnI+oKCgoKCgoKCg oKCgoKCgIHN0cnVjdCBybGltaXSgoCBybGltOzxicj48YnI+oKCgoKCgoKCgoKCgoKCgIGxpYnhm c19pY2FjaGVfcHVyZ2UoKTs8YnI+oKCgoKCgoKCgoKCgoKCgIGxpYnhmc19iY2FjaGVfcHVyZ2Uo KTs8YnI+oKCgoKCgoKCgoKCgoKCgIGNhY2hlX2Rlc3Ryb3kobGlieGZzX2ljYWNoZSk7PGJyPgqg oKCgoKCgoKCgoKCgoKAgY2FjaGVfZGVzdHJveShsaWJ4ZnNfYmNhY2hlKTs8YnI+PGJyPqCgoKCg oKCgoKCgoKCgoCBtZW1fdXNlZCA9IChtcC0mZ3Q7bV9zYi5zYl9pY291bnQgJmd0OyZndDsgKDEw IC0gMikpICs8YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIChtcC0m Z3Q7bV9zYi5zYl9kYmxvY2tzICZndDsmZ3Q7ICgxMCArIDEpKSArPGJyPqCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCA1MDAwMDugIC8qIHJvdWdoIGVzdGltYXRlIG9mIDUw TUIgb3ZlcmhlYWQgKi88YnI+CqCgoKCgoKCgoKCgoKCgoCBtYXhfbWVtID0gbWF4X21lbV9zcGVj aWZpZWQgPyBtYXhfbWVtX3NwZWNpZmllZCAqIDEwMjQgOjxicj6goKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBsaWJ4ZnNfcGh5c21lbSgpICogMyAvIDQ7PGJy Pjxicj6goKCgoKCgoKCgoKCgoKAgaWYgKGdldHJsaW1pdChSTElNSVRfQVMsICZhbXA7cmxpbSkg IT0gLTEgJmFtcDsmYW1wOzxicj4KoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgIHJsaW0ucmxpbV9jdXIgIT0gUkxJTV9JTkZJTklUWSkgezxicj6goKCgoKCgoKCgoKCgoKCg oKCgoKCgoCBybGltLnJsaW1fY3VyID0gcmxpbS5ybGltX21heDs8YnI+oKCgoKCgoKCgoKCgoKCg oKCgoKCgoKAgc2V0cmxpbWl0KFJMSU1JVF9BUywgJmFtcDtybGltKTs8YnI+oKCgoKCgoKCgoKCg oKCgoKCgoKCgoKAgLyogdXNlIGFwcHJveGltYXRlbHkgODAlIG9mIHJsaW1pdCB0byBhdm9pZCBv dmVycnVuICovPGJyPgqgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBtYXhfbWVtID0gTUlOKG1heF9t ZW0sIHJsaW0ucmxpbV9jdXIgLyAxMjgwKTs8YnI+oKCgoKCgoKCgoKCgoKCgIH0gZWxzZTxicj6g oKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBtYXhfbWVtID0gTUlOKG1heF9tZW0sIChMT05HX01BWCAm Z3Q7Jmd0OyAxMCkgKyAxKTs8YnI+PGJyPqCgoKCgoKCgoKCgoKCgoCBpZiAodmVyYm9zZSAmZ3Q7 IDEpPGJyPgqgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBkb19sb2coXygmcXVvdDugoKCgoKCgIC0g bWF4X21lbSA9ICVsdSwgaWNvdW50ID0gJWxsdSwgJnF1b3Q7PGJyPqCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKAgJnF1b3Q7aW1lbSA9ICVsbHUsIGRibG9jayA9ICVsbHUsIGRtZW0gPSAl bGx1XG4mcXVvdDspLDxicj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIG1heF9tZW0s IG1wLSZndDttX3NiLnNiX2ljb3VudCw8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKAgbXAtJmd0O21fc2Iuc2JfaWNvdW50ICZndDsmZ3Q7ICgxMCAtIDIpLDxicj6goKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgIG1wLSZndDttX3NiLnNiX2RibG9ja3MsPGJyPqCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgbXAtJmd0O21fc2Iuc2JfZGJsb2NrcyAmZ3Q7Jmd0OyAo MTAgKyAxKSk7PGJyPjxicj6goKCgoKCgoKCgoKCgoKAgaWYgKG1heF9tZW0gJmx0Oz0gbWVtX3Vz ZWQpIHs8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIC8qPGJyPqCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoCAqIFR1cm4gb2ZmIHByZWZldGNoIGFuZCBtaW5pbWlzZSBsaWJ4ZnMgY2FjaGUgaWY8 YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICogcGh5c2ljYWwgbWVtb3J5IGlzIGRlZW1lZCBp bnN1ZmZpY2llbnQ8YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICovPGJyPqCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgIGlmIChtYXhfbWVtX3NwZWNpZmllZCkgezxicj4KoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoCBkb19hYm9ydCg8YnI+oKCgoKCgoCBfKCZxdW90O1JlcXVpcmVkIG1l bW9yeSBmb3IgcmVwYWlyIGlzIGdyZWF0ZXIgdGhhdCB0aGUgbWF4aW11bSBzcGVjaWZpZWRcbiZx dW90Ozxicj6goKCgoKCgoKAgJnF1b3Q7d2l0aCB0aGUgLW0gb3B0aW9uLiBQbGVhc2UgaW5jcmVh c2UgaXQgdG8gYXQgbGVhc3QgJWx1LlxuJnF1b3Q7KSw8YnI+CqCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoCBtZW1fdXNlZCAvIDEwMjQpOzxicj6goKCgoKCgoKCgoKCgoKCg oKCgoKCgoCB9IGVsc2Ugezxicj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGRvX3dh cm4oPGJyPqCgoKCgoKAgXygmcXVvdDtOb3QgZW5vdWdoIFJBTSBhdmFpbGFibGUgZm9yIHJlcGFp ciB0byBlbmFibGUgcHJlZmV0Y2hpbmcuXG4mcXVvdDs8YnI+CqCgoKCgoKCgoCAmcXVvdDtUaGlz IHdpbGwgYmUgX3Nsb3dfLlxuJnF1b3Q7PGJyPqCgoKCgoKCgoCAmcXVvdDtZb3UgbmVlZCBhdCBs ZWFzdCAlbHVNQiBSQU0gdG8gcnVuIHdpdGggcHJlZmV0Y2hpbmcgZW5hYmxlZC5cbiZxdW90Oyks PGJyPqCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBtZW1fdXNlZCAqIDEy ODAgLyAoMTAyNCAqIDEwMjQpKTs8YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgfTxicj4KoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKAgZG9fcHJlZmV0Y2ggPSAwOzxicj6goKCgoKCgoKCgoKCgoKCg oKCgoKCgoCBsaWJ4ZnNfYmhhc2hfc2l6ZSA9IDY0Ozxicj6goKCgoKCgoKCgoKCgoKAgfSBlbHNl IHs8YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgbWF4X21lbSAtPSBtZW1fdXNlZDs8YnI+oKCg oKCgoKCgoKCgoKCgoKCgoKCgoKAgaWYgKG1heF9tZW0gJmd0Oz0gKDEgJmx0OyZsdDsgMzApKTxi cj4KoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBtYXhfbWVtID0gMSAmbHQ7Jmx0OyAz MDs8YnI+oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgbGlieGZzX2JoYXNoX3NpemUgPSBtYXhfbWVt IC8gKEhBU0hfQ0FDSEVfUkFUSU8gKjxicj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKAgKG1wLSZndDttX2lub2RlX2NsdXN0ZXJfc2l6ZSAmZ3Q7Jmd0OyAxMCkpOzxicj4K oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKAgaWYgKGxpYnhmc19iaGFzaF9zaXplICZsdDsgNTEyKTxi cj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgIGxpYnhmc19iaGFzaF9zaXplID0gNTEy Ozxicj6goKCgoKCgoKCgoKCgoKAgfTxicj48YnI+oKCgoKCgoKCgoKCgoKCgIGlmICh2ZXJib3Nl KTxicj6goKCgoKCgoKCgoKCgoKCgoKCgoKCgoCBkb19sb2coXygmcXVvdDugoKCgoKCgIC0gYmxv Y2sgY2FjaGUgc2l6ZSBzZXQgdG8gJWQgZW50cmllc1xuJnF1b3Q7KSw8YnI+CqCgoKCgoKCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKAgbGlieGZzX2JoYXNoX3NpemUgKiBIQVNIX0NBQ0hFX1JBVElP KTs8YnI+PGJyPqCgoKCgoKCgoKCgoKCgoCBpZiAoIWloYXNoX29wdGlvbl91c2VkKTxicj6goKCg oKCgoKCgoKCgoKCgoKCgoKCgoCBsaWJ4ZnNfaWhhc2hfc2l6ZSA9IGxpYnhmc19iaGFzaF9zaXpl Ozxicj48YnI+oKCgoKCgoKCgoKCgoKCgIGxpYnhmc19pY2FjaGUgPSBjYWNoZV9pbml0KGxpYnhm c19paGFzaF9zaXplLDxicj4KoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCg oKCgoKCgoKAgJmFtcDtsaWJ4ZnNfaWNhY2hlX29wZXJhdGlvbnMpOzxicj6goKCgoKCgoKCgoKCg oKAgbGlieGZzX2JjYWNoZSA9IGNhY2hlX2luaXQobGlieGZzX2JoYXNoX3NpemUsPGJyPqCgoKCg oKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgICZhbXA7bGlieGZzX2Jj YWNoZV9vcGVyYXRpb25zKTs8YnI+CqCgoKCgoKAgfTxicj48YnI+SSYjMzk7bSBsYWNrIG9mIHBy b2dyYW1taW5nIHNraWxscyB0byBhbmFseXplIHRoZSBjb2RlIGFuZCBjcmVhdGUgZm9ybXVsYSB3 aGljaCB3b3VsZCBhbGxvdyBtZSB0byBwcmVkaWN0IG1lbW9yeSB1c2FnZSBvZiB4ZnNfcmVwYWly Ljxicj5DYW4gc29tZSBvbmUgZXhwbGFpbiBob3cgaXMgaXQgY2FsY3VsYXRlZCwgcGxlYXNlPzxi cj48YnI+TXkgZ29hbCBpcyB0byBiZSBhYmxlLCB0byBzcGVjaWZ5IG1pbmltYWwgcmVxdWlyZW1l bnRzLiA8YnI+Cjxicj5DaGVlcnMgPGJyPjxicj6jdWthc3ogS29yY3p5azxicj48YnI+PGJyPjxi cj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPlcgZG5pdSA0IGxpcGNhIDIwMTEgMTQ6MTMg db95dGtvd25payBEYXZlIENoaW5uZXIgPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWls dG86ZGF2aWRAZnJvbW9yYml0LmNvbSI+ZGF2aWRAZnJvbW9yYml0LmNvbTwvYT4mZ3Q7PC9zcGFu PiBuYXBpc2GzOjxicj4KPGJsb2NrcXVvdGUgY2xhc3M9ImdtYWlsX3F1b3RlIiBzdHlsZT0iYm9y ZGVyLWxlZnQ6IDFweCBzb2xpZCByZ2IoMjA0LCAyMDQsIDIwNCk7IG1hcmdpbjogMHB0IDBwdCAw cHQgMC44ZXg7IHBhZGRpbmctbGVmdDogMWV4OyI+PGRpdiBjbGFzcz0iaW0iPk9uIE1vbiwgSnVs IDA0LCAyMDExIGF0IDExOjQxOjQ5QU0gKzAyMDAsIKN1a2FzeiBLb3JjenlrIHdyb3RlOjxicj4K Jmd0OyBIZWxvPGJyPgomZ3Q7PGJyPgomZ3Q7IEkgaGF2ZSBhIHF1ZXN0aW9uIEkgd2FzbiYjMzk7 dCBhYmxlIHRvIGZpbmQgYW5zd2VyIGZvci48YnI+CiZndDs8YnI+CiZndDsgV2hpY2ggZmFjdG9y cyBpbmZsdWVuY2UgbWVtb3J5IHVzYWdlIG9mIHhmc19yZXBhaXI/PGJyPgomZ3Q7IERvZXMgYW55 IGZvcm11bGEgZXhpc3QgdG8gY291bnQgcG9zc2libGUgbWVtb3J5IHVzYWdlPzxicj4KPGJyPgo8 L2Rpdj4jIHhmc19yZXBhaXIgLW4gLXZ2IC1tIDEgL2Rldi92ZGE8YnI+ClBoYXNlIDEgLSBmaW5k IGFuZCB2ZXJpZnkgc3VwZXJibG9jay4uLjxicj4KIKAgoCCgIKAtIG1heF9tZW0gPSAxMDI0LCBp Y291bnQgPSA2NCwgaW1lbSA9IDAsIGRibG9jayA9IDQyOTQ5NjcyOTYsIGRtZW0gPSAyMDk3MTUy PGJyPgpSZXF1aXJlZCBtZW1vcnkgZm9yIHJlcGFpciBpcyBncmVhdGVyIHRoYXQgdGhlIG1heGlt dW0gc3BlY2lmaWVkPGJyPgp3aXRoIHRoZSAtbSBvcHRpb24uIFBsZWFzZSBpbmNyZWFzZSBpdCB0 byBhdCBsZWFzdCAyMDk2Ljxicj4KPGJyPgpTbyBpdCYjMzk7cyB0ZWxsaW5nIG1lIEkgbmVlZCBh dCBsZWFzdCAyMDk2TUIgb2YgUkFNIHRvIHJlcGFpciBteSAxNlRCPGJyPgpmaWxlc3lzdGVtLCBv ZiB3aGljaCAyMDk3MTUyS0IgaXMgbmVlZGVkIGZvciB0cmFja2luZyBmcmVlIHNwYWNlLi4uPGJy Pgo8YnI+CkkganVzdCBhZGRlZCA1MCBtaWxsaW9uIGlub2RlcyB0byB0aGUgZmlsZXN5c3RlbSAo aXQgbm93IGhhcyA1ME0gKzxicj4KMTAgaW5vZGVzIGluIGl0KSwgYW5kIHRoZSByZXN1bHQgaXM6 PGJyPgo8YnI+CiMgeGZzX3JlcGFpciAtdnYgLW0gMSAvZGV2L3ZkYTxicj4KUGhhc2UgMSAtIGZp bmQgYW5kIHZlcmlmeSBzdXBlcmJsb2NrLi4uPGJyPgogoCCgIKAgoC0gbWF4X21lbSA9IDEwMjQs IGljb3VudCA9IDUwNDAxNzkyLCBpbWVtID0gMTk2ODgyLCBkYmxvY2sgPSA0Mjk0OTY3Mjk2LCBk bWVtID0gMjA5NzE1Mjxicj4KUmVxdWlyZWQgbWVtb3J5IGZvciByZXBhaXIgaXMgZ3JlYXRlciB0 aGF0IHRoZSBtYXhpbXVtIHNwZWNpZmllZDxicj4Kd2l0aCB0aGUgLW0gb3B0aW9uLiBQbGVhc2Ug aW5jcmVhc2UgaXQgdG8gYXQgbGVhc3QgMjI4OS48YnI+Cjxicj4KVGhhdCBpcyBub3cgbmVlZHMg YXQgbGVhc3QgYW5vdGhlciAyMDBNQiBvZiBSQU0gdG8gcnVuLjxicj4KPGJyPgpJdCBpcyB3b3J0 aCBub3RpbmcgdGhhdCB0aGVzZSBudW1iZXJzIGFyZSB0aGUgYWJzb2x1dGUgbWluaW11bTxicj4K cmVxdWlyZWQgYW5kIHJlcGFpciBtYXkgcmVxdWlyZSBtb3JlIFJBTSB0aGFuIHRoaXMgdG8gY29t cGxldGU8YnI+CnN1Y2Nlc3NmdWxseS4gSWYgeW91IG9ubHkgZ2l2ZSBpdCB0aGlzIG11Y2ggUkFN LCBpdCB3aWxsIGJlIHNsb3c7PGJyPgpmb3IgYmVzdCByZXBhaXIgcGVyZm9ybWFuY2UsIHRoZSBt b3JlIFJBTSB5b3UgY2FuIGdpdmUgaXQgdGhlPGJyPgpiZXR0ZXIuPGJyPgo8YnI+CkNoZWVycyw8 YnI+Cjxicj4KRGF2ZS48YnI+Cjxmb250IGNvbG9yPSIjODg4ODg4Ij4tLTxicj4KRGF2ZSBDaGlu bmVyPGJyPgo8YSBocmVmPSJtYWlsdG86ZGF2aWRAZnJvbW9yYml0LmNvbSI+ZGF2aWRAZnJvbW9y Yml0LmNvbTwvYT48YnI+CjwvZm9udD48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPgo= --00235452ffec6d546604a7502600-- From mw@dermichi.com Tue Jul 5 05:44:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65Aie0q251801 for ; Tue, 5 Jul 2011 05:44:40 -0500 X-ASG-Debug-ID: 1309862679-024201e90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DDC591E58FEB for ; Tue, 5 Jul 2011 03:44:39 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id M6GV4oMRnddUnu0g for ; Tue, 05 Jul 2011 03:44:39 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1Qe37M-0005bh-Ap; Tue, 05 Jul 2011 12:44:36 +0200 Message-ID: <4E12EB13.50302@dermichi.com> Date: Tue, 05 Jul 2011 12:44:35 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory References: <4E129B00.4020709@dermichi.com> <20110705103217.GC561@dastard> In-Reply-To: <20110705103217.GC561@dastard> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1309862679 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0027 1.0000 -2.0035 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68031 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Dave! > > Sounds like your memory is fragmented. IIRC, bmap tries to map all > the extents in a single buffer, and that might cause problems for > files with large numbers of extents. ENOMEM can occur if an > internal buffer cannot be allocated to hold all the extents to be > mapped in one call. > > Try using the "-n " option to reduce the number of > extents gathered per ioctl call and see if that makes the > issue go away. > Thanks, i've tried that: # xfs_bmap -n 3 /backup/tmp/cannot_allocate_memory.vhd /backup/tmp/cannot_allocate_memory.vhd: 0: [0..134279]: 444610560..444744839 1: [134280..134399]: hole 2: [134400..206495]: 433472688..433544783 # xfs_bmap -n 70000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 69999: [244690864..244690871]: 1173913592..1173913599 # xfs_bmap -n 75000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 74999: [253425664..253425671]: 1284986768..1284986775 # xfs_bmap -n 80000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 79999: [262287488..262289015]: hole # xfs_bmap -n 85000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 84999: [272607184..272613335]: 1497107288..1497113439 # xfs_bmap -n 90000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 ["/backup/tmp/cannot_allocate_memory.vhd"]: Cannot allocate memory - Seems that xfs_bmap reads at maximum the number of extents that i specified with -n - Seems that the file has even more then 85000 extents xfsprogs version is 3.1.5, compiled from source cheers, Michael From BATV+0dcf96e0b450416121a0+2872+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 5 05:50:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65Ao2Me251981 for ; Tue, 5 Jul 2011 05:50:03 -0500 X-ASG-Debug-ID: 1309863000-083b01160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A70E1E6CC04 for ; Tue, 5 Jul 2011 03:50:00 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id NE09gjZtrc5PsdxS for ; Tue, 05 Jul 2011 03:50:00 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qe3CZ-0005S8-33; Tue, 05 Jul 2011 10:49:59 +0000 Date: Tue, 5 Jul 2011 06:49:59 -0400 From: Christoph Hellwig To: Michael Weissenbacher Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory Message-ID: <20110705104959.GA20919@infradead.org> References: <4E129B00.4020709@dermichi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E129B00.4020709@dermichi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309863000 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68032 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 07:02:56AM +0200, Michael Weissenbacher wrote: > Hi List! > I've got a file here on which i cannot use xfs_bmap to determine it's > fragments. All that i know is that it must have a really great number of > them. It was the result of running a smbd without strict allocate. The > machine itself has 8GiB of RAM and 10GiB of swap available, so that > shouldn't be the problem. I guess this is some bug in xfs_bmap. Or is it > a known limitation? > > # xfs_bmap /backup/tmp/cannot_allocate_memory.vhd > xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 > ["/backup/tmp/cannot_allocate_memory.vhd"]: Cannot allocate memory What version of xfsprogs do you use? xfsprogs 3.0.1 fixes a problem in the bmap command that looked pretty similar to what you see. From mw@dermichi.com Tue Jul 5 06:01:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65B156v252464 for ; Tue, 5 Jul 2011 06:01:05 -0500 X-ASG-Debug-ID: 1309863664-5a22033d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFCF2E761DE for ; Tue, 5 Jul 2011 04:01:04 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id KWKQTT7CpvQDwSso for ; Tue, 05 Jul 2011 04:01:04 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1Qe3NH-0006Nd-Jb; Tue, 05 Jul 2011 13:01:03 +0200 Message-ID: <4E12EEEE.5030106@dermichi.com> Date: Tue, 05 Jul 2011 13:01:02 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: Christoph Hellwig CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory References: <4E129B00.4020709@dermichi.com> <20110705104959.GA20919@infradead.org> In-Reply-To: <20110705104959.GA20919@infradead.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1309863664 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0232 1.0000 -1.8704 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.87 X-Barracuda-Spam-Status: No, SCORE=-1.87 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68032 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Christoph! > > What version of xfsprogs do you use? xfsprogs 3.0.1 fixes a problem > in the bmap command that looked pretty similar to what you see. > > Sorry, i forgot to mention that in my original post: # xfs_bmap -V xfs_bmap version 3.1.5 From BATV+0dcf96e0b450416121a0+2872+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 5 06:01:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65B1TvV252490 for ; Tue, 5 Jul 2011 06:01:30 -0500 X-ASG-Debug-ID: 1309863688-024e02440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 572601E58ECE for ; Tue, 5 Jul 2011 04:01:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id TknFJlndPSgJk1sB for ; Tue, 05 Jul 2011 04:01:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qe3Nf-0007lh-4b; Tue, 05 Jul 2011 11:01:27 +0000 Date: Tue, 5 Jul 2011 07:01:27 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [RFC] remove filestreams support? Subject: Re: [RFC] remove filestreams support? Message-ID: <20110705110127.GA27102@infradead.org> References: <20110704153443.GA21501@infradead.org> <20110705015458.GZ561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705015458.GZ561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309863689 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0381 1.0000 -1.7749 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.67 X-Barracuda-Spam-Status: No, SCORE=-1.67 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68033 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 11:54:58AM +1000, Dave Chinner wrote: > So rather than deprecating the functionality, perhaps we should look > at implementing it through a simpler, more generic, better > integrated interface? That will increase the usefulness of the > functionality for a much wider audience than it has now, and also > provide the virt/blk throttling folk with exactly the "don't cross > the streams" functionality they suggest filesystems are unable to > support easily..... That does indeed sound simpler, and also more useful. Do the users who have chimed in here (and off list) think such a scheme would be useful for them? From mw@dermichi.com Tue Jul 5 06:08:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65B8r4x252684 for ; Tue, 5 Jul 2011 06:08:54 -0500 X-ASG-Debug-ID: 1309864132-024e02840000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5FA691E58D93 for ; Tue, 5 Jul 2011 04:08:53 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id TNO7GZ7yXZCezgMu for ; Tue, 05 Jul 2011 04:08:53 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1Qe3Uq-0006Ys-Id for xfs@oss.sgi.com; Tue, 05 Jul 2011 13:08:52 +0200 Message-ID: <4E12F0C3.7080405@dermichi.com> Date: Tue, 05 Jul 2011 13:08:51 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory References: <4E129B00.4020709@dermichi.com> <4E12E8F3.4080704@hardwarefreak.com> In-Reply-To: <4E12E8F3.4080704@hardwarefreak.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1309864133 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0180 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68033 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue Jul 05 2011 12:35:31 GMT+0200 (CET), Stan Hoeppner wrote: > On 7/5/2011 12:02 AM, Michael Weissenbacher wrote: > >> xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 > > Googling the text above returns only 5 results, including your post > today to this list. Thus I doubt your problem is the result of a bug in > XFS or xfsprogs. > > Was the file being written to when you ran xfs_bmap? No, the file has last been written 4 days ago > If not, did you flush caches before running xfs_bmap? Did you try > unmounting and remounting the filesystem? These steps are sometimes > needed to get actual extent usage due to extents in cache that have not > yet been written to disk. Yes, i tried flushing the caches "echo 3 >/proc/sys/vm/drop_caches" which didn't change anything. I also did unmount, xfs_check (no errors reported), mount which didn't change anything. > What distro/kernel version? Ubuntu Lucid 10.04.2 LTS with vanilla kernel 2.6.39.2 > What xfsprogs version? Latest version 3.1.5, compiled from sources > What filefrag version? e2fsprogs 1.41.11-1ubuntu2.1 cheers, Michael From david@fromorbit.com Tue Jul 5 06:39:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65BdYBU253701 for ; Tue, 5 Jul 2011 06:39:35 -0500 X-ASG-Debug-ID: 1309865972-7a36020f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 80BAB524F43 for ; Tue, 5 Jul 2011 04:39:32 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id bCuyVOkUgsFVkizs for ; Tue, 05 Jul 2011 04:39:32 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAI/2Ek55LCkB/2dsb2JhbABTp354yzYOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 05 Jul 2011 21:09:31 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qe3yT-0005h8-Ir; Tue, 05 Jul 2011 21:39:29 +1000 Date: Tue, 5 Jul 2011 21:39:29 +1000 From: Dave Chinner To: Michael Weissenbacher Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory Message-ID: <20110705113929.GA21663@dastard> References: <4E129B00.4020709@dermichi.com> <20110705103217.GC561@dastard> <4E12EB13.50302@dermichi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E12EB13.50302@dermichi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309865973 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68034 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 12:44:35PM +0200, Michael Weissenbacher wrote: > Hi Dave! > > > > Sounds like your memory is fragmented. IIRC, bmap tries to map all > > the extents in a single buffer, and that might cause problems for > > files with large numbers of extents. ENOMEM can occur if an > > internal buffer cannot be allocated to hold all the extents to be > > mapped in one call. > > > > Try using the "-n " option to reduce the number of > > extents gathered per ioctl call and see if that makes the > > issue go away. > > > Thanks, i've tried that: > # xfs_bmap -n 3 /backup/tmp/cannot_allocate_memory.vhd > /backup/tmp/cannot_allocate_memory.vhd: > 0: [0..134279]: 444610560..444744839 > 1: [134280..134399]: hole > 2: [134400..206495]: 433472688..433544783 > # xfs_bmap -n 70000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 > 69999: [244690864..244690871]: 1173913592..1173913599 > # xfs_bmap -n 75000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 > 74999: [253425664..253425671]: 1284986768..1284986775 > # xfs_bmap -n 80000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 > 79999: [262287488..262289015]: hole > # xfs_bmap -n 85000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 > 84999: [272607184..272613335]: 1497107288..1497113439 > # xfs_bmap -n 90000 /backup/tmp/cannot_allocate_memory.vhd | tail -n1 > xfs_bmap: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 > ["/backup/tmp/cannot_allocate_memory.vhd"]: Cannot allocate memory > > - Seems that xfs_bmap reads at maximum the number of extents that i > specified with -n > - Seems that the file has even more then 85000 extents Ah, there's a mismatch betwenteh man page and the implementation, then. The man page implies that "-n " means query num extents at a time to map the entire file. It's implemented as "map the first extents", though. You could try this: # xfs_io -f -c "fiemap -v" Because fiemap loops doing getting a small number of extents at a time... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 08:09:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_34, MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65D9d9H260070 for ; Tue, 5 Jul 2011 08:09:40 -0500 X-ASG-Debug-ID: 1309871375-4fb000350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9854E1EE8E1E; Tue, 5 Jul 2011 06:09:36 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id NqvOwy4QOIlABjeK; Tue, 05 Jul 2011 06:09:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAKgLE055LCkB/2dsb2JhbABTp354iHrCUA6GKASifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 05 Jul 2011 22:39:34 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qe5Nc-0005rl-TW; Tue, 05 Jul 2011 23:09:32 +1000 Date: Tue, 5 Jul 2011 23:09:32 +1000 From: Dave Chinner To: =?iso-8859-1?B?VPZy9ms=?= Edwin Cc: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110705130932.GF1026@dastard> References: <4E12A927.9020102@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4E12A927.9020102@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309871378 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68041 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 09:03:19AM +0300, Török Edwin wrote: > Hi, > > Yesterday when running 'shutdown -Pfh now', it hung using 99% CPU in sys [*] > Looking at the console there was a message about XFS "Corruption of in-memory data detected", and about XFS_WANT_CORRUPTED_GOTO. So you had a btree corruption. > Had to shutdown the machine via SysRQ u + o. > > Today when I booted I got this message: > [ 9.786494] XFS (md1p2): Mounting Filesystem > [ 9.927590] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > [ 10.385941] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1638 of file fs/xfs/xfs_alloc.c. Caller 0xffffffff8122b80e > [ 10.385943] > [ 10.386007] Pid: 1990, comm: mount Not tainted 3.0.0-rc5 #155 > [ 10.386009] Call Trace: > [ 10.386014] [] xfs_error_report+0x3a/0x40 > [ 10.386017] [] ? xfs_free_extent+0xce/0x120 > [ 10.386019] [] ? xfs_alloc_lookup_eq+0x16/0x20 > [ 10.386021] [] xfs_free_ag_extent+0x6aa/0x780 > [ 10.386023] [] xfs_free_extent+0xce/0x120 > [ 10.386026] [] ? kmem_zone_alloc+0x5f/0xe0 > [ 10.386029] [] xlog_recover_process_efi+0x15f/0x1a0 > [ 10.386031] [] xlog_recover_process_efis.isra.4+0x76/0xc0 > [ 10.386033] [] xlog_recover_finish+0x22/0xc0 > [ 10.386035] [] xfs_log_mount_finish+0x24/0x30 > [ 10.386038] [] xfs_mountfs+0x45b/0x720 > [ 10.386040] [] xfs_fs_fill_super+0x1f1/0x2e0 > [ 10.386042] [] mount_bdev+0x1aa/0x1f0 > [ 10.386044] [] ? xfs_parseargs+0xb90/0xb90 > [ 10.386046] [] xfs_fs_mount+0x10/0x20 > [ 10.386048] [] mount_fs+0x3e/0x1b0 > [ 10.386051] [] vfs_kern_mount+0x57/0xa0 > [ 10.386052] [] do_kern_mount+0x4f/0x100 > [ 10.386054] [] do_mount+0x19c/0x840 > [ 10.386057] [] ? __get_free_pages+0x12/0x50 > [ 10.386059] [] ? copy_mount_options+0x35/0x170 > [ 10.386061] [] sys_mount+0x8b/0xe0 > [ 10.386064] [] system_call_fastpath+0x16/0x1b > [ 10.386071] XFS (md1p2): Failed to recover EFIs > [ 10.386097] XFS (md1p2): log mount finish failed > [ 10.428562] XFS (md1p3): Mounting Filesystem > [ 10.609949] XFS (md1p3): Ending clean mount > > FWIW I got a message about EFIs yesterday too, but everything else worked: > Jul 4 09:42:54 debian kernel: [ 11.439861] XFS (md1p2): Mounting Filesystem > Jul 4 09:42:54 debian kernel: [ 11.599815] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > Jul 4 09:42:54 debian kernel: [ 11.787980] XFS (md1p2): I/O error occurred: meta-data dev md1p2 block 0x117925a8 ("xfs_trans_read_buf") error 5 buf c > ount 4096 > Jul 4 09:42:54 debian kernel: [ 11.788044] XFS (md1p2): Failed to recover EFIs > Jul 4 09:42:54 debian kernel: [ 11.788065] XFS (md1p2): log mount finish failed > Jul 4 09:42:54 debian kernel: [ 11.831077] XFS (md1p3): Mounting Filesystem > Jul 4 09:42:54 debian kernel: [ 12.009647] XFS (md1p3): Ending clean mount Looks like you might have a dying disk. That's a IO error on read that has been reported back to XFS, and it warned that bad things happened. Maybe XFS should have shut down, though. > UUID=6f7c65b9-40b2-4b05-9157-522a67f65c4a /mnt/var_data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k,logdev=/dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5 0 2 > > I can't mount the FS anymore: > mount: Structure needs cleaning Obviously - you've got corrupted free space btrees thanks to the IO error during recovery and the later operations that were done on it. Now log recovery can't complete without hitting those corruptions. > So I used xfs_repair /dev/md1p2 -l /dev/sdi5 -L, and then I could mount the log. Did you replace the faulty disk? If not,this will just happen again... > I did save the faulty log-file, let me know if you need it: > -rw-r--r-- 1 edwin edwin 2.9M Jul 5 09:00 sdi5.xz > > This is on a 3.0-rc5 kernel, my .config is below: > > I've run perf top with the hung shutdown, and it showed me something like this: > 1964.00 16.3% filemap_fdatawait_range /lib/modules/3.0.0-rc5/build/vmlinux > 1831.00 15.2% _raw_spin_lock /lib/modules/3.0.0-rc5/build/vmlinux > 1316.00 10.9% iput /lib/modules/3.0.0-rc5/build/vmlinux > 1265.00 10.5% _atomic_dec_and_lock /lib/modules/3.0.0-rc5/build/vmlinux > 998.00 8.3% _raw_spin_unlock /lib/modules/3.0.0-rc5/build/vmlinux > 731.00 6.1% sync_inodes_sb /lib/modules/3.0.0-rc5/build/vmlinux > 724.00 6.0% find_get_pages_tag /lib/modules/3.0.0-rc5/build/vmlinux > 580.00 4.8% radix_tree_gang_lookup_tag_slot /lib/modules/3.0.0-rc5/build/vmlinux > 525.00 4.3% __rcu_read_unlock /lib/modules/3.0.0-rc5/build/vmlinux Looks like it is running around trying to write back data, stuck somewhere in the code outside XFS. I haven't seen anything like this before. Still, the root cause is likely a bad disk or driver, so finding and fixing that is probably the first thing you should do... Cheers, Dave. -- Dave Chinner david@fromorbit.com From mw@dermichi.com Tue Jul 5 08:19:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65DIx4K261876 for ; Tue, 5 Jul 2011 08:18:59 -0500 X-ASG-Debug-ID: 1309871937-7bea01cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 98CC01E58582 for ; Tue, 5 Jul 2011 06:18:58 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id i8VknEhdKblPpfZw for ; Tue, 05 Jul 2011 06:18:58 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1Qe5Wf-0002lO-Kp; Tue, 05 Jul 2011 15:18:53 +0200 Message-ID: <4E130F3C.3050207@dermichi.com> Date: Tue, 05 Jul 2011 15:18:52 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: xfs@oss.sgi.com CC: david@fromorbit.com X-ASG-Orig-Subj: Re: xfs_bmap Cannot allocate memory Subject: Re: xfs_bmap Cannot allocate memory References: <4E129B00.4020709@dermichi.com> <20110705103217.GC561@dastard> <4E12EB13.50302@dermichi.com> <20110705113929.GA21663@dastard> In-Reply-To: <20110705113929.GA21663@dastard> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1309871938 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0820 1.0000 -1.5016 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.50 X-Barracuda-Spam-Status: No, SCORE=-1.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68041 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Dave! > > Ah, there's a mismatch betwenteh man page and the implementation, > then. The man page implies that "-n " means query num extents > at a time to map the entire file. It's implemented as "map the first > extents", though. > > You could try this: > > # xfs_io -f -c "fiemap -v" > > Because fiemap loops doing getting a small number of extents at a > time... > Ok, after i found out that fiemap is bleeding-edge (xfsprogs 3.1.5 doesn't support it) i compiled the latest git version of xfsprogs. "fiemap -v" doesn't bail out on this file but continues to print extents forever. I stopped it after the redirected output had already reached 90GiB and printed negative numbers. I guess it must have run into an endless loop somewhere. xfs_bmap from the git version also throws "Cannot allocate memory" at me. # ./io/xfs_io -f -c "fiemap" /backup/tmp/cannot_allocate_memory.vhd > /tmp/fiemap_output.txt (Control-C) # ls -lh /tmp/fiemap_output.txt -rw-r--r-- 1 root root 90G 2011-07-05 15:06 /tmp/fiemap_output.txt # tail -n10 /tmp/fiemap_output.txt -1925931740: [599928..602239]: 399016..401327 -1925931739: [602240..603895]: hole -1925931738: [603896..603903]: 2480..2487 -1925931737: [603904..606199]: hole -1925931736: [606200..608127]: 366632..368559 -1925931735: [608128..1183]: hole -1925931734: [1184..134279]: 444611744..444744839 -1925931733: [134280..134399]: hole -1925931732: [134400..206495]: 433472688..433544783 -1925931731: [206496..210455]: hole # ./io/xfs_io -f -c "bmap" /backup/tmp/cannot_allocate_memory.vhd xfs_io: xfsctl(XFS_IOC_GETBMAPX) iflags=0x0 ["/backup/tmp/cannot_allocate_memory.vhd"]: Cannot allocate memory cheers, Michael From edwintorok@gmail.com Tue Jul 5 08:38:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_34,MIME_8BIT_HEADER,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65DcG5u003487 for ; Tue, 5 Jul 2011 08:38:17 -0500 X-ASG-Debug-ID: 1309873094-596903930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C95B1794726; Tue, 5 Jul 2011 06:38:14 -0700 (PDT) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) by cuda.sgi.com with ESMTP id Dt2QQ4PuHtrEHucp; Tue, 05 Jul 2011 06:38:14 -0700 (PDT) Received: by bwg12 with SMTP id 12so5537704bwg.26 for ; Tue, 05 Jul 2011 06:38:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type :content-transfer-encoding; bh=f1m7yoTfjmJfuh1V5oND7Nbvqz5RFDU54SEPmjxkoAE=; b=fjGLgQvHY7mQSQRmJJBHj9xPcmzIaad06oxU7yD5xvguTj+rHzpgyG0FLKXY0T9HRG kN0rRBAa0m8Imyrb/R6DGMUD081auPGMeTuyBhf0qgz317SVtws3dyi2RC7KQJqHHjeQ AwWesVX58OvWKOnHfuslH862bzdCfvWAkocFI= Received: by 10.204.40.136 with SMTP id k8mr7030222bke.15.1309873093430; Tue, 05 Jul 2011 06:38:13 -0700 (PDT) Received: from [192.168.1.117] ([79.114.37.197]) by mx.google.com with ESMTPS id ek1sm6557845bkb.9.2011.07.05.06.38.11 (version=SSLv3 cipher=OTHER); Tue, 05 Jul 2011 06:38:11 -0700 (PDT) Message-ID: <4E1313C1.6020309@gmail.com> Date: Tue, 05 Jul 2011 16:38:09 +0300 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Icedove/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> In-Reply-To: <20110705130932.GF1026@dastard> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail-bw0-f53.google.com[209.85.214.53] X-Barracuda-Start-Time: 1309873095 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/05/2011 04:09 PM, Dave Chinner wrote: > On Tue, Jul 05, 2011 at 09:03:19AM +0300, Török Edwin wrote: >> Hi, >> >> Yesterday when running 'shutdown -Pfh now', it hung using 99% CPU in sys [*] >> Looking at the console there was a message about XFS "Corruption of in-memory data detected", and about XFS_WANT_CORRUPTED_GOTO. > > So you had a btree corruption. > >> Had to shutdown the machine via SysRQ u + o. >> >> Today when I booted I got this message: >> [ 9.786494] XFS (md1p2): Mounting Filesystem >> [ 9.927590] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) >> [ 10.385941] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1638 of file fs/xfs/xfs_alloc.c. Caller 0xffffffff8122b80e >> [ 10.385943] >> [ 10.386007] Pid: 1990, comm: mount Not tainted 3.0.0-rc5 #155 >> [ 10.386009] Call Trace: >> [ 10.386014] [] xfs_error_report+0x3a/0x40 >> [ 10.386017] [] ? xfs_free_extent+0xce/0x120 >> [ 10.386019] [] ? xfs_alloc_lookup_eq+0x16/0x20 >> [ 10.386021] [] xfs_free_ag_extent+0x6aa/0x780 >> [ 10.386023] [] xfs_free_extent+0xce/0x120 >> [ 10.386026] [] ? kmem_zone_alloc+0x5f/0xe0 >> [ 10.386029] [] xlog_recover_process_efi+0x15f/0x1a0 >> [ 10.386031] [] xlog_recover_process_efis.isra.4+0x76/0xc0 >> [ 10.386033] [] xlog_recover_finish+0x22/0xc0 >> [ 10.386035] [] xfs_log_mount_finish+0x24/0x30 >> [ 10.386038] [] xfs_mountfs+0x45b/0x720 >> [ 10.386040] [] xfs_fs_fill_super+0x1f1/0x2e0 >> [ 10.386042] [] mount_bdev+0x1aa/0x1f0 >> [ 10.386044] [] ? xfs_parseargs+0xb90/0xb90 >> [ 10.386046] [] xfs_fs_mount+0x10/0x20 >> [ 10.386048] [] mount_fs+0x3e/0x1b0 >> [ 10.386051] [] vfs_kern_mount+0x57/0xa0 >> [ 10.386052] [] do_kern_mount+0x4f/0x100 >> [ 10.386054] [] do_mount+0x19c/0x840 >> [ 10.386057] [] ? __get_free_pages+0x12/0x50 >> [ 10.386059] [] ? copy_mount_options+0x35/0x170 >> [ 10.386061] [] sys_mount+0x8b/0xe0 >> [ 10.386064] [] system_call_fastpath+0x16/0x1b >> [ 10.386071] XFS (md1p2): Failed to recover EFIs >> [ 10.386097] XFS (md1p2): log mount finish failed >> [ 10.428562] XFS (md1p3): Mounting Filesystem >> [ 10.609949] XFS (md1p3): Ending clean mount >> >> FWIW I got a message about EFIs yesterday too, but everything else worked: >> Jul 4 09:42:54 debian kernel: [ 11.439861] XFS (md1p2): Mounting Filesystem >> Jul 4 09:42:54 debian kernel: [ 11.599815] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) >> Jul 4 09:42:54 debian kernel: [ 11.787980] XFS (md1p2): I/O error occurred: meta-data dev md1p2 block 0x117925a8 ("xfs_trans_read_buf") error 5 buf c >> ount 4096 >> Jul 4 09:42:54 debian kernel: [ 11.788044] XFS (md1p2): Failed to recover EFIs >> Jul 4 09:42:54 debian kernel: [ 11.788065] XFS (md1p2): log mount finish failed >> Jul 4 09:42:54 debian kernel: [ 11.831077] XFS (md1p3): Mounting Filesystem >> Jul 4 09:42:54 debian kernel: [ 12.009647] XFS (md1p3): Ending clean mount > > Looks like you might have a dying disk. That's a IO error on read > that has been reported back to XFS, and it warned that bad things > happened. Maybe XFS should have shut down, though. Ah I had /dev/sdd kicked out of the RAID array, and a lot of SATA EH resets. Those were apparently caused by a loose SATA cable: https://lkml.org/lkml/2011/7/5/22 Those errors were for /dev/sdd though, not /dev/sdi (the XFS log disk). Once I re-plugged all the SATA cables, and re-added /dev/sdd to the RAID array, all seemed well: Jul 4 09:59:22 debian kernel: [ 11.613073] XFS (md1p2): Mounting Filesystem Jul 4 09:59:22 debian kernel: [ 11.782051] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) Jul 4 09:59:22 debian kernel: [ 12.020766] XFS (md1p2): Ending recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) Jul 4 09:59:22 debian kernel: [ 12.031038] XFS (md1p3): Mounting Filesystem Jul 4 09:59:22 debian kernel: [ 12.196238] XFS (md1p3): Ending clean mount But when I shutdown the system later that day I got that log corruption error. Could it be that the log / some data on the disk was still corrupted (despite the successful mount, and RAID resync), which caused the log error later? The log is not on the RAID array though, it is on a separate disk, and that disk is indeed older than all the other disks. Still SMART doesn't show any errors, and I've run a SMART short self-test, and conveyance self-test, and those didn't log any errors either. >> UUID=6f7c65b9-40b2-4b05-9157-522a67f65c4a /mnt/var_data xfs defaults,noatime,nodiratime,logbufs=8,logbsize=256k,logdev=/dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5 0 2 >> >> I can't mount the FS anymore: >> mount: Structure needs cleaning > > Obviously - you've got corrupted free space btrees thanks to the IO > error during recovery and the later operations that were done on it. > Now log recovery can't complete without hitting those corruptions. Is the corruption in the log, or in the FS itself? The FS itself could've been damaged when kicked out of the RAID. > >> So I used xfs_repair /dev/md1p2 -l /dev/sdi5 -L, and then I could mount the log. > > Did you replace the faulty disk? If not,this will just happen > again... Not yet, as I'm not sure if the problem was with the SATA cables (and kicking out of sdd from the RAID), or the log disk itself. And SMART shows no errors on the disk. > >> I did save the faulty log-file, let me know if you need it: >> -rw-r--r-- 1 edwin edwin 2.9M Jul 5 09:00 sdi5.xz >> >> This is on a 3.0-rc5 kernel, my .config is below: >> >> I've run perf top with the hung shutdown, and it showed me something like this: >> 1964.00 16.3% filemap_fdatawait_range /lib/modules/3.0.0-rc5/build/vmlinux >> 1831.00 15.2% _raw_spin_lock /lib/modules/3.0.0-rc5/build/vmlinux >> 1316.00 10.9% iput /lib/modules/3.0.0-rc5/build/vmlinux >> 1265.00 10.5% _atomic_dec_and_lock /lib/modules/3.0.0-rc5/build/vmlinux >> 998.00 8.3% _raw_spin_unlock /lib/modules/3.0.0-rc5/build/vmlinux >> 731.00 6.1% sync_inodes_sb /lib/modules/3.0.0-rc5/build/vmlinux >> 724.00 6.0% find_get_pages_tag /lib/modules/3.0.0-rc5/build/vmlinux >> 580.00 4.8% radix_tree_gang_lookup_tag_slot /lib/modules/3.0.0-rc5/build/vmlinux >> 525.00 4.3% __rcu_read_unlock /lib/modules/3.0.0-rc5/build/vmlinux > > Looks like it is running around trying to write back data, stuck > somewhere in the code outside XFS. I haven't seen anything like this > before. > > Still, the root cause is likely a bad disk or driver, so finding and > fixing that is probably the first thing you should do... OK, I'll see if this happens again, and I'll replace the disk if it does. Although is there supposed to be a performance benefit from having a separate log disk with XFS? IIRC it has a disadvantage that you can't use barriers properly. But if I'd move the log to be stored with the FS (on the RAID10 array), will XFS be able to use barriers there, or RAID still prevents barriers from working? Thanks, --Edwin From mgorman@suse.de Tue Jul 5 09:10:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65EAPU7008254 for ; Tue, 5 Jul 2011 09:10:25 -0500 X-ASG-Debug-ID: 1309875022-516202d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8E7C9167A099 for ; Tue, 5 Jul 2011 07:10:22 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id Wvd5va4u3v3hpMp2 for ; Tue, 05 Jul 2011 07:10:22 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 0476E87567; Tue, 5 Jul 2011 16:10:20 +0200 (CEST) Date: Tue, 5 Jul 2011 15:10:16 +0100 From: Mel Gorman To: Dave Chinner Cc: Christoph Hellwig , Johannes Weiner , Wu Fengguang , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110705141016.GA15285@suse.de> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701145935.GB29530@suse.de> <20110702024219.GT561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110702024219.GT561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1309875023 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5000 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68046 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Jul 02, 2011 at 12:42:19PM +1000, Dave Chinner wrote: > On Fri, Jul 01, 2011 at 03:59:35PM +0100, Mel Gorman wrote: > > On Fri, Jul 01, 2011 at 05:33:05AM -0400, Christoph Hellwig wrote: > > > Johannes, Mel, Wu, > > > > Am adding Jan Kara as he has been working on writeback efficiency > > recently as well. > > Writeback looks to be working fine - it's kswapd screwing up the > writeback patterns that appears to be the problem.... > Not a new complaint. > > > Dave has been stressing some XFS patches of mine that remove the XFS > > > internal writeback clustering in favour of using write_cache_pages. > > > > Against what kernel? 2.6.38 was a disaster for reclaim I've been > > finding out this week. I don't know about 2.6.38.8. 2.6.39 was better. > > 3.0-rc4 > Ok. > .... > > The number of pages written from reclaim is exceptionally low (2.6.38 > > was a total disaster but that release was bad for a number of reasons, > > haven't tested 2.6.38.8 yet) but reduced by 2.6.37 as expected. Direct > > reclaim usage was reduced and efficiency (ratio of pages scanned to > > pages reclaimed) was high. > > And is that consistent across ext3/ext4/xfs/btrfs filesystems? I > doubt it very much, as all have very different .writepage > behaviours... > Some preliminary results are in and it looks like it is close to the same across filesystems which was a suprise to me. Sometimes the filesystem makes a difference to how many pages are written back but it's not consistent across all tests i.e. in comparing ext3, ext4 and xfs, there are big differences in performance but moderate differences in pages written back. This implies that for the configurations I was testing that pages are generally cleaned before reaching the end of the LRU. In all cases, the machines had ample memory. More on that later. > BTW, called a workload "fsmark" tells us nothing about the workload > being tested - fsmark can do a lot of interesting things. IOWs, you > need to quote the command line for it to be meaningful to anyone... > My bad. ./fs_mark -d /tmp/fsmark-14880 -D 225 -N 22500 -n 3125 -L 15 -t 16 -S0 -s 131072 > > As I look through the results I have at the moment, the number of > > pages written back was simply really low which is why the problem fell > > off my radar. > > It doesn't take many to completely screw up writeback IO patterns. > Write a few random pages to a 10MB file well before writeback would > get to the file, and instead of getting optimal sequential writeback > patterns when writeback gets to it, we get multiple disjoint IOs > that require multiple seeks to complete. > > Slower, less efficient writeback IO causes memory pressure to last > longer and hence more likely to result in kswapd writeback, and it's > just a downward spiral from there.... > Yes, I see the negative feedback loop. This has always been a struggle in that kswapd needs pages from a particular zone to be cleaned and freed but calling writepage can make things slower. There were prototypes in the past to give hints to the flusher threads on what inode and pages to be freed and they were never met with any degree of satisfaction. The consensus (amount VM people at least) was as long as that number was low, it wasn't much of a problem. I know you disagree. > > > > That means the test is only using 1GB of disk space, and > > > > I'm running on a VM with 1GB RAM. It appears to be related to the VM > > > > triggering random page writeback from the LRU - 100x10MB files more > > > > than fills memory, hence it being the smallest test case i could > > > > reproduce the problem on. > > > > > > > > My tests were on a machine with 8G and ext3. I'm running some of > > the tests against ext4 and xfs to see if that makes a difference but > > it's possible the tests are simply not agressive enough so I want to > > reproduce Dave's test if possible. > > To tell the truth, I don't think anyone really cares how ext3 > performs these days. I do but the reasoning is weak. I wanted to be able to compare kernels between 2.6.32 and today with few points of variability. ext3 changed relatively little between those times. > XFS seems to be the filesystem that brings out > all the bad behaviour in the mm subsystem.... > > FWIW, the mm subsystem works well enough when there is RAM > available, so I'd suggest that your reclaim testing needs to focus > on smaller memory configurations to really stress the reclaim > algorithms. That's one of the reason why I regularly test on 1GB, 1p > machines - they show problems that are hard to rep???oduce on larger > configs.... > Based on the results coming in, I fully agree. I'm going to let the tests run to completion so I'll have the data in the future. I'll then go back and test for 1G, 1P configurations and it should be reproducible. > > I'm assuming "test 180" is from xfstests which was not one of the tests > > I used previously. To run with 1000 files instead of 100, was the file > > "180" simply editted to make it look like this loop instead? > > I reduced it to 100 files simply to speed up the testing process for > the "bad file size" problem I was trying to find. If you want to > reproduce the IO collapse in a big way, run it with 1000 files, and > it happens about 2/3rds of the way through the test on my hardware. > Ok, I have a test prepared that will run this. At the rate tests are currently going though, it could be Thursday before I can run them though :( > > > > It is very clear that from the IO completions that we are getting a > > > > *lot* of kswapd driven writeback directly through .writepage: > > > > > > > > $ grep "xfs_setfilesize:" t.t |grep "4096$" | wc -l > > > > 801 > > > > $ grep "xfs_setfilesize:" t.t |grep -v "4096$" | wc -l > > > > 78 > > > > > > > > So there's ~900 IO completions that change the file size, and 90% of > > > > them are single page updates. > > > > > > > > $ ps -ef |grep [k]swap > > > > root 514 2 0 12:43 ? 00:00:00 [kswapd0] > > > > $ grep "writepage:" t.t | grep "514 " |wc -l > > > > 799 > > > > > > > > Oh, now that is too close to just be a co-incidence. We're getting > > > > significant amounts of random page writeback from the the ends of > > > > the LRUs done by the VM. > > > > > > > > > > > > Does the value for nr_vmscan_write in /proc/vmstat correlate? It must > > but lets me sure because I'm using that figure rather than ftrace to > > count writebacks at the moment. > > The number in /proc/vmstat is higher. Much higher. I just ran the > test at 1000 files (only collapsed to ~3000 iops this time because I > ran it on a plain 3.0-rc4 kernel that still has the .writepage > clustering in XFS), and I see: > > nr_vmscan_write 6723 > > after the test. The event trace only capture ~1400 writepage events > from kswapd, but it tends to miss a lot of events as the system is > quite unresponsive at times under this workload - it's not uncommon > to have ssh sessions not echo a character for 10s... e.g: I started > the workload ~11:08:22: > Ok, I'll be looking at nr_vmscan_write as the basis for "badness". > $ while [ 1 ]; do date; sleep 1; done > Sat Jul 2 11:08:15 EST 2011 > Sat Jul 2 11:08:16 EST 2011 > Sat Jul 2 11:08:17 EST 2011 > Sat Jul 2 11:08:18 EST 2011 > Sat Jul 2 11:08:19 EST 2011 > Sat Jul 2 11:08:20 EST 2011 > Sat Jul 2 11:08:21 EST 2011 > Sat Jul 2 11:08:22 EST 2011 <<<<<<<< start test here > Sat Jul 2 11:08:23 EST 2011 > Sat Jul 2 11:08:24 EST 2011 > Sat Jul 2 11:08:25 EST 2011 > Sat Jul 2 11:08:26 EST 2011 <<<<<<<< > Sat Jul 2 11:08:27 EST 2011 <<<<<<<< > Sat Jul 2 11:08:30 EST 2011 <<<<<<<< > Sat Jul 2 11:08:35 EST 2011 <<<<<<<< > Sat Jul 2 11:08:36 EST 2011 > Sat Jul 2 11:08:37 EST 2011 > Sat Jul 2 11:08:38 EST 2011 <<<<<<<< > Sat Jul 2 11:08:40 EST 2011 <<<<<<<< > Sat Jul 2 11:08:41 EST 2011 > Sat Jul 2 11:08:42 EST 2011 > Sat Jul 2 11:08:43 EST 2011 > > And there are quite a few more multi-second holdoffs during the > test, too. > > > A more relevant question is this - > > how many pages were reclaimed by kswapd and what percentage is 799 > > pages of that? What do you consider an acceptable percentage? > > I don't care what the percentage is or what the number is. kswapd is > reclaiming pages most of the time without affect IO patterns, and > when that happens I just don't care because it is working just fine. > I do care. I'm looking at some early XFS results here based on a laptop (4G). For fsmark with the command line above, the number of pages written back by kswapd was 0. The worst test by far was sysbench using a particularly large database. The number of writes was 48745 which is 0.27% of pages scanned or 0.28% of pages reclaimed. Ordinarily I would ignore that. If I run this at 1G and get a similar ratio, I will assume that I am not reproducing your problem at all unless I know what ratio you are seeing. So .... How many pages were reclaimed by kswapd and what percentage is 799 pages of that? You answered my second question. You consider 0% to be the acceptable percentage. > What I care about is what kswapd is doing when it finds dirty pages > and it decides they need to be written back. It's not a problem that > they are found or need to be written, the problem is the utterly > crap way that memory reclaim is throwing the pages at the filesystem. > > I'm not sure how to get through to you guys that single, random page > writeback is *BAD*. It got through. The feedback during discussions on the VM side was that as long as the percentage was sufficiently low it wasn't a problem because on occasion, the VM really needs pages from a particular zone. A solution that addressed both problems has never been agreed on and energy and time runs out before it gets fixed each time. > Using .writepage directly is considered harmful > to IO throughput, and memory reclaim needs to stop doing that. > We've got hacks in the filesystems to try to make the IO memory > reclaim executes suck less, but ultimately the problem is the IO > memory reclaim is doing. And now the memory reclaim IO patterns are > getting in the way of further improving the writeback path in XFS > because were finding the hacks we've been carrying for years are > *still* the only thing that is making IO under memory pressure not > suck completely. > > What I find extremely frustrating is that this is not a new issue. I know. > We (filesystem people) have been asking for a long time to have the > memory reclaim subsystem either defer IO to the writeback threads or > to use the .writepages interface. There was a prototypes along these lines. One of the criticisms was that it was fixing the wrong problem because dirty pages should be at the end of the LRU at all. Later work focused on fixing that and it was never revisited (at least not by me). There was a bucket of complains about the initial series at https://lkml.org/lkml/2010/6/8/82 . Despite the fact I wrote it, I will have to read back to see why I stopped working on it but I think it's because I focused on avoiding dirty pages reading the end of the LRU judging by https://lkml.org/lkml/2010/6/11/157 and eventually was satisified that the ratio of pages scanned to pages written was acceptable. > We're not asking this to be > difficult, we're asking for this so that we can cluster IO in an > optimal manner to avoid these IO collapses that memory reclaim > currently triggers. We now have generic methods of handing off IO > to flusher threads that also provide some level of throttling/ > blocking while IO is submitted (e.g. writeback_inodes_sb_nr()), so > this shouldn't be a difficult problem to solve for the memory > reclaim subsystem. > > Hell, maybe memory reclaim should take a leaf from the IO-less > throttle work we are doing - hit a bunch of dirty pages on the LRU, > just back off and let the writeback subsystem clean a few more pages > before starting another scan. Prototyped this before although I can't find it now. I think I concluded at the time that it didn't really help and another direction was taken. There was also the problem that the time to clean a page from a particular zone was potentially unbounded and a solution didn't present itself. > Letting the writeback code clean > pages is the fastest way to get pages cleaned in the system, so if > we've already got a generic method for cleaning and/or waiting for > pages to be cleaned, why not aim to use that? > > And while I'm ranting, when on earth is the issue-writeback-from- > direct-reclaim problem going to be fixed so we can remove the hacks > in the filesystem .writepage implementations to prevent this from > occurring? > Prototyped that too, same thread. Same type of problem, writeback from direct reclaim should happen so rarely that it should not be optimised for. See https://lkml.org/lkml/2010/6/11/32 > I mean, when we combine the two issues, doesn't it imply that the > memory reclaim subsystem needs to be redesigned around the fact it > *can't clean pages directly*? This IO collapse issue shows that we > really don't 't want kswapd issuing IO directly via .writepage, and > we already reject IO from direct reclaim in .writepage in ext4, XFS > and BTRFS because we'll overrun the stack on anything other than > trivial storage configurations. > > That says to me in a big, flashing bright pink neon sign way that > memory reclaim simply should not be issuing IO at all. Perhaps it's > time to rethink the way memory reclaim deals with dirty pages to > take into account the current reality? > > > At the risk of pissing you off, this isn't new information so I'll consider myself duly nudged into revisiting. > > > On Fri, Jul 01, 2011 at 07:20:21PM +1000, Dave Chinner wrote: > > > > > Looks good. I still wonder why I haven't been able to hit this. > > > > > Haven't seen any 180 failure for a long time, with both 4k and 512 byte > > > > > filesystems and since yesterday 1k as well. > > > > > > > > It requires the test to run the VM out of RAM and then force enough > > > > memory pressure for kswapd to start writeback from the LRU. The > > > > reproducer I have is a 1p, 1GB RAM VM with it's disk image on a > > > > 100MB/s HW RAID1 w/ 512MB BBWC disk subsystem. > > > > > > > > You say it's a 1G VM but you don't say what architecure. > > x86-64 for both the guest and the host. > Grand. -- Mel Gorman SUSE Labs From mgorman@suse.de Tue Jul 5 09:34:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65EYGbf008902 for ; Tue, 5 Jul 2011 09:34:16 -0500 X-ASG-Debug-ID: 1309876453-4fd8019b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 744F0179447A for ; Tue, 5 Jul 2011 07:34:13 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id fexFomtJfgvOIT4F for ; Tue, 05 Jul 2011 07:34:13 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id E70C789783; Tue, 5 Jul 2011 16:34:12 +0200 (CEST) Date: Tue, 5 Jul 2011 15:34:10 +0100 From: Mel Gorman To: Dave Chinner Cc: Wu Fengguang , Christoph Hellwig , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110705143409.GB15285@suse.de> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110704032534.GD1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1309876454 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68047 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 01:25:34PM +1000, Dave Chinner wrote: > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > Christoph, > > > > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > > > Johannes, Mel, Wu, > > > > > > Dave has been stressing some XFS patches of mine that remove the XFS > > > internal writeback clustering in favour of using write_cache_pages. > > > > > > As part of investigating the behaviour he found out that we're still > > > doing lots of I/O from the end of the LRU in kswapd. Not only is that > > > pretty bad behaviour in general, but it also means we really can't > > > just remove the writeback clustering in writepage given how much > > > I/O is still done through that. > > > > > > Any chance we could the writeback vs kswap behaviour sorted out a bit > > > better finally? > > > > I once tried this approach: > > > > http://www.spinics.net/lists/linux-mm/msg09202.html > > > > It used a list structure that is not linearly scalable, however that > > part should be independently improvable when necessary. > > I don't think that handing random writeback to the flusher thread is > much better than doing random writeback directly. Yes, you added > some clustering, but I'm still don't think writing specific pages is > the best solution. > > > The real problem was, it seem to not very effective in my test runs. > > I found many ->nr_pages works queued before the ->inode works, which > > effectively makes the flusher working on more dispersed pages rather > > than focusing on the dirty pages encountered in LRU reclaim. > > But that's really just an implementation issue related to how you > tried to solve the problem. That could be addressed. > > However, what I'm questioning is whether we should even care what > page memory reclaim wants to write - it seems to make fundamentally > bad decisions from an IO persepctive. > It sucks from an IO perspective but from the perspective of the VM that needs memory to be free in a particular zone or node, it's a reasonable request. > We have to remember that memory reclaim is doing LRU reclaim and the > flusher threads are doing "oldest first" writeback. IOWs, both are trying > to operate in the same direction (oldest to youngest) for the same > purpose. The fundamental problem that occurs when memory reclaim > starts writing pages back from the LRU is this: > > - memory reclaim has run ahead of IO writeback - > This reasoning was the basis for this patch http://www.gossamer-threads.com/lists/linux/kernel/1251235?do=post_view_threaded#1251235 i.e. if old pages are dirty then the flusher threads are either not awake or not doing enough work so wake them. It was flawed in a number of respects and never finished though. > The LRU usually looks like this: > > oldest youngest > +---------------+---------------+--------------+ > clean writeback dirty > ^ ^ > | | > | Where flusher will next work from > | Where kswapd is working from > | > IO submitted by flusher, waiting on completion > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > got ahead of writeback without being throttled - it's passed over > all the pages currently under writeback and is trying to write back > pages that are *newer* than what writeback is working on. IOWs, it > starts trying to do the job of the flusher threads, and it does that > very badly. > > The $100 question is ???why is it getting ahead of writeback*? > Allocating and dirtying memory faster than writeback. Large dd to USB stick would also trigger it. > From a brief look at the vmscan code, it appears that scanning does > not throttle/block until reclaim priority has got pretty high. That > means at low priority reclaim, it *skips pages under writeback*. > However, if it comes across a dirty page, it will trigger writeback > of the page. > > Now call me crazy, but if we've already got a large number of pages > under writeback, why would we want to *start more IO* when clearly > the system is taking care of cleaning pages already and all we have > to do is wait for a short while to get clean pages ready for > reclaim? > It doesnt' check how many pages are under writeback. Direct reclaim will check if the block device is congested but that is about it. Otherwise the expectation was the elevator would handle the merging of requests into a sensible patter. Also, while filesystem pages are getting cleaned by flushs, that does not cover anonymous pages being written to swap. > Indeed, I added this quick hack to prevent the VM from doing > writeback via pageout until after it starts blocking on writeback > pages: > > @@ -825,6 +825,8 @@ static unsigned long shrink_page_list(struct list_head *page_l > if (PageDirty(page)) { > nr_dirty++; > > + if (!(sc->reclaim_mode & RECLAIM_MODE_SYNC)) > + goto keep_locked; > if (references == PAGEREF_RECLAIM_CLEAN) > goto keep_locked; > if (!may_enter_fs) > > IOWs, we don't write pages from kswapd unless there is no IO > writeback going on at all (waited on all the writeback pages or none > exist) and there are dirty pages on the LRU. > A side effect of this patch is that kswapd is no longer writing anonymous pages to swap and possibly never will. RECLAIM_MODE_SYNC is only set for lumpy reclaim which if you have CONFIG_COMPACTION set, will never happen. I see your figures and know why you want this but it never was that straight-forward :/ -- Mel Gorman SUSE Labs From david@fromorbit.com Tue Jul 5 10:55:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65FtmAU011116 for ; Tue, 5 Jul 2011 10:55:48 -0500 X-ASG-Debug-ID: 1309881344-128b03db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0FCAE7749C for ; Tue, 5 Jul 2011 08:55:45 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id YAxd3BhuOIRCeaeM for ; Tue, 05 Jul 2011 08:55:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAFMyE055LCkB/2dsb2JhbABTqAZ4iHrCAA6GKASaTIgy Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 06 Jul 2011 01:25:43 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qe7yQ-0006Bp-4Q; Wed, 06 Jul 2011 01:55:42 +1000 Date: Wed, 6 Jul 2011 01:55:42 +1000 From: Dave Chinner To: Mel Gorman Cc: Christoph Hellwig , Johannes Weiner , Wu Fengguang , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110705155542.GG1026@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701145935.GB29530@suse.de> <20110702024219.GT561@dastard> <20110705141016.GA15285@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705141016.GA15285@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1309881346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0133 1.0000 -1.9346 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.93 X-Barracuda-Spam-Status: No, SCORE=-1.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68052 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 03:10:16PM +0100, Mel Gorman wrote: > On Sat, Jul 02, 2011 at 12:42:19PM +1000, Dave Chinner wrote: > > On Fri, Jul 01, 2011 at 03:59:35PM +0100, Mel Gorman wrote: > > BTW, called a workload "fsmark" tells us nothing about the workload > > being tested - fsmark can do a lot of interesting things. IOWs, you > > need to quote the command line for it to be meaningful to anyone... > > > > My bad. > > ./fs_mark -d /tmp/fsmark-14880 -D 225 -N 22500 -n 3125 -L 15 -t 16 -S0 -s 131072 Ok, so 16 threads, 3125 files per thread, 128k per file, all created in to the same directory which rolls over when it gets to 22500 files in the directory. Yeah, it generates a bit of memory pressure, but I think the file sizes are too small to really stress writeback much. You need to use files that are at least 10MB in size to really start to mix up the writeback lists and the way they juggle new and old inodes to try not to starve any particular inode of writeback bandwidth.... Also, I don't use the "-t " threading mechanism because all it does is bash on the directory mutex without really improving parallelism for creates. perf top on my system shows: samples pcnt function DSO _______ _____ __________________________________ __________________________________ 2799.00 9.3% mutex_spin_on_owner [kernel.kallsyms] 2049.00 6.8% copy_user_generic_string [kernel.kallsyms] 1912.00 6.3% _raw_spin_unlock_irqrestore [kernel.kallsyms] A contended mutex as the prime CPU consumer. That's more CPU than copying 750MB/s of data. Hence I normally drive parallelism with fsmark by using multiple "-d " options, which runs a thread per directory and a workload unit per directory and so you don't get directory mutex contention causing serialisation and interference with what you are really trying to measure.... > > > As I look through the results I have at the moment, the number of > > > pages written back was simply really low which is why the problem fell > > > off my radar. > > > > It doesn't take many to completely screw up writeback IO patterns. > > Write a few random pages to a 10MB file well before writeback would > > get to the file, and instead of getting optimal sequential writeback > > patterns when writeback gets to it, we get multiple disjoint IOs > > that require multiple seeks to complete. > > > > Slower, less efficient writeback IO causes memory pressure to last > > longer and hence more likely to result in kswapd writeback, and it's > > just a downward spiral from there.... > > > > Yes, I see the negative feedback loop. This has always been a struggle > in that kswapd needs pages from a particular zone to be cleaned and > freed but calling writepage can make things slower. There were > prototypes in the past to give hints to the flusher threads on what > inode and pages to be freed and they were never met with any degree of > satisfaction. > > The consensus (amount VM people at least) was as long as that number was > low, it wasn't much of a problem. Therein lies the problem. You've got storage people telling you there is an IO problem with memory reclaim, but the mm community then put their heads together somewhere private, decide it isn't a problem worth fixing and do nothing. Rinse, lather, repeat. I expect memory reclaim to play nicely with writeback that is already in progress. These subsystems do not work in isolation, yet memory reclaim treats it that way - as though it is the most important IO submitter and everything else can suffer while memory reclaim does it's stuff. Memory reclaim needs to co-ordinate with writeback effectively for the system as a whole to work well together. > I know you disagree. Right, that's because it doesn't have to be a very high number to be a problem. IO is orders of magnitude slower than the CPU time it takes to flush a page, so the cost of making a bad flush decision is very high. And single page writeback from the LRU is almost always a bad flush decision. > > > > > Oh, now that is too close to just be a co-incidence. We're getting > > > > > significant amounts of random page writeback from the the ends of > > > > > the LRUs done by the VM. > > > > > > > > > > > > > > > > Does the value for nr_vmscan_write in /proc/vmstat correlate? It must > > > but lets me sure because I'm using that figure rather than ftrace to > > > count writebacks at the moment. > > > > The number in /proc/vmstat is higher. Much higher. I just ran the > > test at 1000 files (only collapsed to ~3000 iops this time because I > > ran it on a plain 3.0-rc4 kernel that still has the .writepage > > clustering in XFS), and I see: > > > > nr_vmscan_write 6723 > > > > after the test. The event trace only capture ~1400 writepage events > > from kswapd, but it tends to miss a lot of events as the system is > > quite unresponsive at times under this workload - it's not uncommon > > to have ssh sessions not echo a character for 10s... e.g: I started > > the workload ~11:08:22: > > > > Ok, I'll be looking at nr_vmscan_write as the basis for "badness". Perhaps you should look at my other reply (and two line "fix") in the thread about stopping dirty page writeback until after waiting on pages under writeback..... > > > A more relevant question is this - > > > how many pages were reclaimed by kswapd and what percentage is 799 > > > pages of that? What do you consider an acceptable percentage? > > > > I don't care what the percentage is or what the number is. kswapd is > > reclaiming pages most of the time without affect IO patterns, and > > when that happens I just don't care because it is working just fine. > > > > I do care. I'm looking at some early XFS results here based on a laptop > (4G). For fsmark with the command line above, the number of pages > written back by kswapd was 0. The worst test by far was sysbench using a > particularly large database. The number of writes was 48745 which is > 0.27% of pages scanned or 0.28% of pages reclaimed. Ordinarily I would > ignore that. > > If I run this at 1G and get a similar ratio, I will assume that I > am not reproducing your problem at all unless I know what ratio you > are seeing. Single threaded writing of files should -never- cause writeback from the LRUs. If that is happening, then the memory reclaim throttling is broken. See my other email. > So .... How many pages were reclaimed by kswapd and what percentage > is 799 pages of that? No idea. That information is long gone.... > You answered my second question. You consider 0% to be the acceptable > percentage. No, I expect memory reclaim to behave nicely with writeback that is already in progress. This subsystems do not work in isolation - they need to co-ordinate > > What I care about is what kswapd is doing when it finds dirty pages > > and it decides they need to be written back. It's not a problem that > > they are found or need to be written, the problem is the utterly > > crap way that memory reclaim is throwing the pages at the filesystem. > > > > I'm not sure how to get through to you guys that single, random page > > writeback is *BAD*. > > It got through. The feedback during discussions on the VM side was > that as long as the percentage was sufficiently low it wasn't a problem > because on occasion, the VM really needs pages from a particular zone. > A solution that addressed both problems has never been agreed on and > energy and time runs out before it gets fixed each time. > > And while I'm ranting, when on earth is the issue-writeback-from- > > direct-reclaim problem going to be fixed so we can remove the hacks > > in the filesystem .writepage implementations to prevent this from > > occurring? > > > > Prototyped that too, same thread. Same type of problem, writeback > from direct reclaim should happen so rarely that it should not be > optimised for. See https://lkml.org/lkml/2010/6/11/32 Writeback from direct reclaim crashes systems by causing stack overruns - that's why we've disabled it. It's not an "optimisation" problem - it's a _memory corruption_ bug that needs to be fixed..... > At the risk of pissing you off, this isn't new information so I'll > consider myself duly nudged into revisiting. No, I've had a rant to express my displeasure at the lack of progress on this front. Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 17:35:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MZNPM044649 for ; Tue, 5 Jul 2011 17:35:23 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id A0F4D8F804B; Tue, 5 Jul 2011 15:35:20 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:35:20 -0500 Subject: Re: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094602.465074143@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094602.465074143@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:35:19 -0500 Message-ID: <1309905319.1950.48.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > The non-blockig behaviour in xfs_map_blocks currently is conditional on > having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. > The latter used to be used by both pdflush, kswapd and a few other places > in older kernels, but has been fading out starting with the introduction > of the per-bdi flusher threads. > > Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back > the behaviour we want. The subject line should refer to xfs_vm_writepage() (not xfs_map_blocks()). Unless I hear otherwise I will plan to change that for you. Other than that this looks OK to me. Signed-off-by: Alex Elder > Signed-off-by: Christoph Hellwig From aelder@sgi.com Tue Jul 5 17:36:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MaJjK044722 for ; Tue, 5 Jul 2011 17:36:19 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id CA6848F8035; Tue, 5 Jul 2011 15:36:18 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:18 -0500 Subject: Re: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094603.789209280@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.789209280@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:18 -0500 Message-ID: <1309905378.1950.50.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > The following script from Wu Fengguang shows very bad behaviour in XFS > when aggressively dirtying data during a sync on XFS, with sync times > up to almost 10 times as long as ext4. (Note that I skipped over patch 7 for the time being, trying to skip ahead to simpler changes to review.) I think the change looks fine but the description doesn't completely match it (unless I'm missing something). > A large part of the issue is that XFS writes data out itself two times > in the ->sync_fs method, overriding the lifelock protection in the core > writeback code, and another issue is the lock-less xfs_ioend_wait call, > which doesn't prevent new ioend from beeing queue up while waiting for > the count to reach zero. The change affects only the first thing you mention here, not the second. Also, if you plan to update the description--some typo's: - "in the face of" in the subject - "livelock protection" above - "beeing" -> "being" > This patch removes the XFS-internal sync calls and relies on the VFS > to do it's work just like all other filesystems do. Note that the > i_iocount wait which is rather suboptimal is simply removed here. > We already do it in ->write_inode, which keeps the current supoptimal > behaviour. We'll eventually need to remove that as well, but that's > material for a separate commit. The i_iocount wait is not affected by your patch. > ------------------------------ snip ------------------------------ > #!/bin/sh > > umount /dev/sda7 > mkfs.xfs -f /dev/sda7 > # mkfs.ext4 /dev/sda7 > # mkfs.btrfs /dev/sda7 > mount /dev/sda7 /fs > > echo $((50<<20)) > /proc/sys/vm/dirty_bytes > > pid= > for i in `seq 10` > do > dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 & > pid="$pid $!" > done > > sleep 1 > > tic=$(date +'%s') > sync > tac=$(date +'%s') > > echo > echo sync time: $((tac-tic)) > egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo > > pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; } > ------------------------------ snip ------------------------------ > Signed-off-by: Christoph Hellwig > Reported-by: Wu Fengguang > Reviewed-by: Dave Chinner I'm OK with the change, but really prefer to have the description not include stuff that just isn't there. If you want me to commit this as-is, just say so and I will. Otherwise, post an update and I'll use that. In any case, you can consider this reviewed by me. Reviewed-by: Alex Elder > Index: xfs/fs/xfs/linux-2.6/xfs_sync.c > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:26:14.109219361 +0200 > +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:37:20.642275110 +0200 > @@ -359,14 +359,12 @@ xfs_quiesce_data( > { > int error, error2 = 0; > > - /* push non-blocking */ > - xfs_sync_data(mp, 0); > xfs_qm_sync(mp, SYNC_TRYLOCK); > - > - /* push and block till complete */ > - xfs_sync_data(mp, SYNC_WAIT); > xfs_qm_sync(mp, SYNC_WAIT); > > + /* force out the newly dirtied log buffers */ > + xfs_log_force(mp, XFS_LOG_SYNC); > + > /* write superblock and hoover up shutdown errors */ > error = xfs_sync_fsdata(mp); > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Tue Jul 5 17:36:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MaUNQ044743 for ; Tue, 5 Jul 2011 17:36:30 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 948D8AC00A; Tue, 5 Jul 2011 15:36:26 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:26 -0500 Subject: Re: [PATCH 09/27] xfs: fix filesystsem freeze race in xfs_trans_alloc From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094604.200765470@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094604.200765470@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:25 -0500 Message-ID: <1309905385.1950.51.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem > freeze when it sleeps during the memory allocation. Fix this by moving the > wait_for_freeze call after the memory allocation. This means moving the > freeze into the low-level _xfs_trans_alloc helper, which thus grows a new > argument. Also fix up some comments in that area while at it. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Dave Chinner Looks good. The race has to do with the check of mp->m_active_trans in xfs_quiesce_attr(), which is called by the freeze_fs method, xfs_fs_freeze() Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 17:36:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MaYc3044758 for ; Tue, 5 Jul 2011 17:36:34 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 29426AC00C; Tue, 5 Jul 2011 15:36:34 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:33 -0500 Subject: Re: [PATCH 10/27] xfs: remove i_transp From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094604.425053359@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094604.425053359@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:33 -0500 Message-ID: <1309905393.1950.52.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the transaction pointer in the inode. It's only used to avoid > passing down an argument in the bmap code, and for a few asserts in > the transaction code right now. Looks OK to me. Reviewed-by: Alex Elder > Signed-off-by: Christoph Hellwig > Reviewed-by: Dave Chinner From aelder@sgi.com Tue Jul 5 17:36:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MadTZ044773 for ; Tue, 5 Jul 2011 17:36:39 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1BFD48F8035; Tue, 5 Jul 2011 15:36:39 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:38 -0500 Subject: Re: [PATCH 11/27] xfs: kill the unused struct xfs_sync_work From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094604.608829837@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094604.608829837@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:38 -0500 Message-ID: <1309905398.1950.53.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 17:36:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65MamQq044798 for ; Tue, 5 Jul 2011 17:36:48 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5866E30405F; Tue, 5 Jul 2011 15:36:45 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:45 -0500 Subject: Re: [PATCH 12/27] xfs: factor out xfs_dir2_leaf_find_entry From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094604.795668656@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094604.795668656@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:44 -0500 Message-ID: <1309905404.1950.54.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > plain text document attachment (xfs-factor-dir2-leaf-code) > Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code > from xfs_dir2_leaf_addname xfs_dir2_leafn_add. Found by Eric Sandeen using > an automated code duplication checker. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Dave Chinner Nice. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 17:36:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p65Mat6e044817 for ; Tue, 5 Jul 2011 17:36:55 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id A1F45AC007; Tue, 5 Jul 2011 15:36:54 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 17:36:54 -0500 Subject: Re: [PATCH 13/27] xfs: cleanup shortform directory inode number handling From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094604.976400061@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094604.976400061@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 17:36:53 -0500 Message-ID: <1309905413.1950.55.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Refactor the shortform directory helpers that deal with the 32-bit vs > 64-bit wide inode numbers into more sensible helpers, and kill the > xfs_intino_t typedef that is now superflous. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Dave Chinner Looking at XFS_{GET,PUT}_DIR_INO{4,8}(), they could maybe benefit from conversion to cpu_to_be32() and friends. They're only used in these few spots. Looks good though. Reviewed-by: Alex Elder From david@fromorbit.com Tue Jul 5 20:24:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p661O4I5055259 for ; Tue, 5 Jul 2011 20:24:04 -0500 X-ASG-Debug-ID: 1309915440-4e3601350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F1E0179A11B for ; Tue, 5 Jul 2011 18:24:01 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id tnZ9bZoMvFcdF5hL for ; Tue, 05 Jul 2011 18:24:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAMq4E055LCkB/2dsb2JhbABTqA14iHrDcQ6GKASQL4odiDI Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 10:53:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeGqL-000785-2N; Wed, 06 Jul 2011 11:23:57 +1000 Date: Wed, 6 Jul 2011 11:23:57 +1000 From: Dave Chinner To: Mel Gorman Cc: Wu Fengguang , Christoph Hellwig , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110706012356.GH1026@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110705143409.GB15285@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705143409.GB15285@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309915442 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0123 1.0000 -1.9409 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.94 X-Barracuda-Spam-Status: No, SCORE=-1.94 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68091 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 03:34:10PM +0100, Mel Gorman wrote: > On Mon, Jul 04, 2011 at 01:25:34PM +1000, Dave Chinner wrote: > > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > > Christoph, > > > > > > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > > > > Johannes, Mel, Wu, > > > > > > > > Dave has been stressing some XFS patches of mine that remove the XFS > > > > internal writeback clustering in favour of using write_cache_pages. > > > > > > > > As part of investigating the behaviour he found out that we're still > > > > doing lots of I/O from the end of the LRU in kswapd. Not only is that > > > > pretty bad behaviour in general, but it also means we really can't > > > > just remove the writeback clustering in writepage given how much > > > > I/O is still done through that. > > > > > > > > Any chance we could the writeback vs kswap behaviour sorted out a bit > > > > better finally? > > > > > > I once tried this approach: > > > > > > http://www.spinics.net/lists/linux-mm/msg09202.html > > > > > > It used a list structure that is not linearly scalable, however that > > > part should be independently improvable when necessary. > > > > I don't think that handing random writeback to the flusher thread is > > much better than doing random writeback directly. Yes, you added > > some clustering, but I'm still don't think writing specific pages is > > the best solution. > > > > > The real problem was, it seem to not very effective in my test runs. > > > I found many ->nr_pages works queued before the ->inode works, which > > > effectively makes the flusher working on more dispersed pages rather > > > than focusing on the dirty pages encountered in LRU reclaim. > > > > But that's really just an implementation issue related to how you > > tried to solve the problem. That could be addressed. > > > > However, what I'm questioning is whether we should even care what > > page memory reclaim wants to write - it seems to make fundamentally > > bad decisions from an IO persepctive. > > > > It sucks from an IO perspective but from the perspective of the VM that > needs memory to be free in a particular zone or node, it's a reasonable > request. Sure, I'm not suggesting there is anything wrong the requirement of being able to clean pages in a particular zone. My comments are aimed at the fact the implementation of this feature is about as friendly to the IO subsystem as a game of Roshambeau.... If someone comes to us complaining about an application that causes this sort of IO behaviour, our answer is always "fix the application" because it is not something we can fix in the filesystem. Same here - we need to have the "application" fixed to play well with others. > > We have to remember that memory reclaim is doing LRU reclaim and the > > flusher threads are doing "oldest first" writeback. IOWs, both are trying > > to operate in the same direction (oldest to youngest) for the same > > purpose. The fundamental problem that occurs when memory reclaim > > starts writing pages back from the LRU is this: > > > > - memory reclaim has run ahead of IO writeback - > > > > This reasoning was the basis for this patch > http://www.gossamer-threads.com/lists/linux/kernel/1251235?do=post_view_threaded#1251235 > > i.e. if old pages are dirty then the flusher threads are either not > awake or not doing enough work so wake them. It was flawed in a number > of respects and never finished though. But that's dealing with a different situation - you're assuming that the writeback threads are not running or are running inefficiently. What I'm seeing is bad behaviour when the IO subsystem is already running flat out with perfectly formed IO. No additional IO submission is going to make it clean pages faster than it already is. It is in this situation that memory reclaim should never, ever be trying to write dirty pages. IIRC, the situation was that there were about 15,000 dirty pages and ~20,000 pages under writeback when memory reclaim started pushing pages from the LRU. This is on a single node machine, with all IO being single threaded (so a single source of memory pressure) and writeback doing it's job. Memory reclaim should *never* get ahead of writeback under such a simple workload on such a simple configuration.... > > The LRU usually looks like this: > > > > oldest youngest > > +---------------+---------------+--------------+ > > clean writeback dirty > > ^ ^ > > | | > > | Where flusher will next work from > > | Where kswapd is working from > > | > > IO submitted by flusher, waiting on completion > > > > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > > got ahead of writeback without being throttled - it's passed over > > all the pages currently under writeback and is trying to write back > > pages that are *newer* than what writeback is working on. IOWs, it > > starts trying to do the job of the flusher threads, and it does that > > very badly. > > > > The $100 question is ???why is it getting ahead of writeback*? > > > > Allocating and dirtying memory faster than writeback. Large dd to USB > stick would also trigger it. Write throttling is supposed to prevent that situation from being problematic. It's entire purpose is to throttle the dirtying rate to match the writeback rate. If that's a problem, the memory reclaim subsystem is the wrong place to be trying to fix it. And as such, that is not the case here; foreground throttling is definitely occurring and works fine for 70-80s, then memory reclaim gets ahead of writeback and it all goes to shit. > > From a brief look at the vmscan code, it appears that scanning does > > not throttle/block until reclaim priority has got pretty high. That > > means at low priority reclaim, it *skips pages under writeback*. > > However, if it comes across a dirty page, it will trigger writeback > > of the page. > > > > Now call me crazy, but if we've already got a large number of pages > > under writeback, why would we want to *start more IO* when clearly > > the system is taking care of cleaning pages already and all we have > > to do is wait for a short while to get clean pages ready for > > reclaim? > > > > It doesnt' check how many pages are under writeback. Isn't that an indication of a design flaw? You want to clean pages, but you don't even bother to check on how many pages are currently being cleaned and will soon be reclaimable? > Direct reclaim > will check if the block device is congested but that is about > it. FWIW, we've removed all the congestion logic from the writeback subsystem because IO throttling never really worked well that way. Writeback IO throttling now works by foreground blocking during IO submission on request queue slots in the elevator. That's why we have flusher threads per-bdi - so writeback can block on a congested bdi and not block writeback to other bdis. It's simpler, more extensible and far more scalable than the old method. Anyway, it's a moot point because direct reclaim can't issue IO through xfs, ext4 or btrfs and as such I have doubts that the throttling logic in vmscan is completely robust. > Otherwise the expectation was the elevator would handle the > merging of requests into a sensible patter. Also, while filesystem > pages are getting cleaned by flushs, that does not cover anonymous > pages being written to swap. Anonymous pages written to swap are not the issue here - I couldn't care less what you do with them. It's writeback of dirty file pages that I care about... > > > Indeed, I added this quick hack to prevent the VM from doing > > writeback via pageout until after it starts blocking on writeback > > pages: > > > > @@ -825,6 +825,8 @@ static unsigned long shrink_page_list(struct list_head *page_l > > if (PageDirty(page)) { > > nr_dirty++; > > > > + if (!(sc->reclaim_mode & RECLAIM_MODE_SYNC)) > > + goto keep_locked; > > if (references == PAGEREF_RECLAIM_CLEAN) > > goto keep_locked; > > if (!may_enter_fs) > > > > IOWs, we don't write pages from kswapd unless there is no IO > > writeback going on at all (waited on all the writeback pages or none > > exist) and there are dirty pages on the LRU. > > > > A side effect of this patch is that kswapd is no longer writing > anonymous pages to swap and possibly never will. For dirty anon pages to still get written, all that needs to be done is pass the file parameter to shrink_page_list() and change the test to: + if (file && (sc->reclaim_mode & RECLAIM_MODE_SYNC)) + goto keep_locked; As it is, I haven't had any of my test systems (which run tests that deliberately cause OOM conditions) fail with this patch. While I agree it is just a hack, it's naivety has also demonstrated that a working system does not need to write back dirty file pages from memory reclaim -at all-. i.e. it makes my argument stronger, not weaker.... > RECLAIM_MODE_SYNC is > only set for lumpy reclaim which if you have CONFIG_COMPACTION set, will > never happen. Which means that memory reclaim does not throttle reliably on writeback in progress. Even when the priority has ratcheted right up and it is obvious that the zone in question has pages being cleaned and will soon be available for reclaim, memory reclaim won't wait for them directly. Once again this points to the throttling mechanism being sub-optimal - it relies on second order effects (congestion_wait) to try to block long enough for pages to be cleaned in the zone being reclaimed from before doing another scan to find those pages. It's a "wait and hope" approach to throttling, and that's one of the reasons it never worked well in the writeback subsystem. Instead, if memory reclaim waits directly on a page on the given LRU under writeback it guarantees that when you are woken that there was at least some progress made by the IO subsystem that would allow the memory reclaim subsystem to move forward. What it comes down to is the fact that you can scan tens of thousands of pages in the time it takes for IO on a single page to complete. If there are pages already under IO, then why start more IO when what ends up getting reclaimed is one of the pages that is already under IO when the new IO was issued? BTW: # CONFIG_COMPACTION is not set > I see your figures and know why you want this but it never was that > straight-forward :/ If the code is complex enough that implementing a basic policy such as "don't writeback pages if there are already pages under writeback" is difficult, then maybe the code needs to be simplified.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 20:57:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p661v9MS060141 for ; Tue, 5 Jul 2011 20:57:09 -0500 X-ASG-Debug-ID: 1309917427-48fa01490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 789AAE7DF3F for ; Tue, 5 Jul 2011 18:57:07 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 5yaWRgaEuIvnJ3DC for ; Tue, 05 Jul 2011 18:57:07 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EANa/E055LCkB/2dsb2JhbABTqA14iHrDdg6GKASaTIgy Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 11:27:07 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeHMP-0007Ak-7N; Wed, 06 Jul 2011 11:57:05 +1000 Date: Wed, 6 Jul 2011 11:57:05 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Subject: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Message-ID: <20110706015705.GI1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.197942925@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094605.197942925@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309917428 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68092 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:35AM -0400, Christoph Hellwig wrote: > The list field of it is never cactually used, so all uses can simply be > replaced with the xfs_dir2_sf_hdr_t type that it has as first member. > > Signed-off-by: Christoph Hellwig > > - * fit into the literal area of the inode. > + * Small directories are packed as tightly as possible so as to fit into the > + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header > + * followed by zero or more xfs_dir2_sf_entry structures. Due the different > + * inode number storage sized and the variable length name filed in size field > + * the xfs_dir2_sf_entry all these structure are variable length, and the structures > + * accessors in this file need to be used to iterate over them. should be > static inline int > -xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_t *sfp, xfs_dir2_sf_entry_t *sfep) > +xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) > { > return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (sfep)->namelen - \ > - ((sfp)->hdr.i8count == 0) * \ > + ((sfp)->i8count == 0) * \ > ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); > } > > -static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_t *sfp) > +static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_hdr_t *sfp) Probably should split this onto two lines. Otherwise looks good. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 21:00:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6620hb3060366 for ; Tue, 5 Jul 2011 21:00:44 -0500 X-ASG-Debug-ID: 1309917640-4e0c02f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0158A17999E9 for ; Tue, 5 Jul 2011 19:00:41 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 9XMwkUY7mQcNiy1u for ; Tue, 05 Jul 2011 19:00:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EANa/E055LCkB/2dsb2JhbABTqA14zHAOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 11:30:40 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeHPr-0007Bi-3L; Wed, 06 Jul 2011 12:00:39 +1000 Date: Wed, 6 Jul 2011 12:00:39 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry Subject: Re: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry Message-ID: <20110706020039.GJ1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.415405585@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094605.415405585@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309917643 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3725 1.0000 -0.0779 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.08 X-Barracuda-Spam-Status: No, SCORE=-0.08 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68093 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:36AM -0400, Christoph Hellwig wrote: > Remove the inumber member which is at a variable offset after the actual > name, and make name a real variable sized C99 array instead of the incorrect > one-sized array which confuses (not only) gcc. Based on this clean up > the helpers to calculate the entry size. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 21:19:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p662JeT9061151 for ; Tue, 5 Jul 2011 21:19:40 -0500 X-ASG-Debug-ID: 1309918777-2b77002d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6E7074E9BA for ; Tue, 5 Jul 2011 19:19:38 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id EsPT8HkouMcm4g4o for ; Tue, 05 Jul 2011 19:19:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAGTDE055LCkB/2dsb2JhbABTqA14zFkOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 11:49:37 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeHiB-0007DE-UA; Wed, 06 Jul 2011 12:19:35 +1000 Date: Wed, 6 Jul 2011 12:19:35 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block Subject: Re: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block Message-ID: <20110706021935.GK1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.621819832@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094605.621819832@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309918779 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0033 1.0000 -1.9997 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68093 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:37AM -0400, Christoph Hellwig wrote: > In most places we can simply pass around and use the struct xfs_dir2_data_hdr, > which is the first and most important member of struct xfs_dir2_block instead > of the full structure. > > Signed-off-by: Christoph Hellwig .... > @@ -105,13 +105,13 @@ xfs_dir2_block_addname( > return error; > } > ASSERT(bp != NULL); > - block = bp->data; > + hdr = bp->data; > /* > * Check the magic number, corrupted if wrong. > */ > - if (unlikely(be32_to_cpu(block->hdr.magic) != XFS_DIR2_BLOCK_MAGIC)) { > + if (unlikely(hdr->magic != cpu_to_be32(XFS_DIR2_BLOCK_MAGIC))) { Took me a moment to realise what this does - turns the byte swap into a compile-time operation rather than a runtime operation. Nice. Perhaps we should do that same optimisation in other magic number checks around the place? Looks good. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 21:32:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p662W2L1061628 for ; Tue, 5 Jul 2011 21:32:02 -0500 X-ASG-Debug-ID: 1309919519-0f4300cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE85A1799998 for ; Tue, 5 Jul 2011 19:31:59 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id RzPusTn45a7JV6k2 for ; Tue, 05 Jul 2011 19:31:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAOLGE055LCkB/2dsb2JhbABTqA14zFMOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 12:01:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeHu9-0007EJ-EI; Wed, 06 Jul 2011 12:31:57 +1000 Date: Wed, 6 Jul 2011 12:31:57 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block Subject: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block Message-ID: <20110706023157.GL1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.827598983@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094605.827598983@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309919520 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1452 1.0000 -1.1282 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.13 X-Barracuda-Spam-Status: No, SCORE=-1.13 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68095 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:38AM -0400, Christoph Hellwig wrote: > Remove the confusing xfs_dir2_block structure. It is supposed to describe > an XFS dir2 block format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. In addition to accessing the fixed offset header structure it was > only used to get a pointer to the first dir or unused entry after it, > which can be trivially replaced by pointer arithmetics on the header > pointer. For most users that is actually more natural anyway, as they > don't use a typed pointer but rather a character pointer for further > arithmetics. > > Signed-off-by: Christoph Hellwig ..... > @@ -471,14 +470,13 @@ xfs_dir2_block_getdents( > * We'll skip entries before this. > */ > wantoff = xfs_dir2_dataptr_to_off(mp, *offset); > - block = bp->data; > - hdr = &block->hdr; > + hdr = bp->data; > xfs_dir2_data_check(dp, bp); > /* > * Set up values for the loop. > */ > btp = xfs_dir2_block_tail_p(mp, hdr); > - ptr = (char *)block->u; > + ptr = (char *)(hdr + 1); > endptr = (char *)xfs_dir2_block_leaf_p(btp); That is slightly less obvious what it is doing. It's jumping over the entire header, but could easily be confused with jumping one byte in. Perhaps adding a wrapper e.g. xfs_dir2_block_data_p(hdr) to match the xfs_dir2_block_tail_p() and xfs_dir2_block_leaf_p() wrappers, and converting all the other cases to use this as well? > @@ -1103,7 +1099,7 @@ xfs_dir2_sf_to_block( > * The whole thing is initialized to free by the init routine. > * Say we're using the leaf and tail area. > */ > - dup = (xfs_dir2_data_unused_t *)block->u; > + dup = (xfs_dir2_data_unused_t *)(hdr + 1); and maybe a xfs_dir2_block_unused_p() wrapper just to avoid the cast here, though I'm not sure it's worth adding a wrapper just for this one use. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 22:02:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6632X28062660 for ; Tue, 5 Jul 2011 22:02:33 -0500 X-ASG-Debug-ID: 1309921351-231f008d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 21E36179ABCE for ; Tue, 5 Jul 2011 20:02:31 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id bfRqSZcsaJ5VXcWW for ; Tue, 05 Jul 2011 20:02:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAO/NE055LCkB/2dsb2JhbABTqA14iHrDWw6GKASaTIgy Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 12:32:30 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeINg-0007H5-SC; Wed, 06 Jul 2011 13:02:28 +1000 Date: Wed, 6 Jul 2011 13:02:28 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Subject: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Message-ID: <20110706030228.GM1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.003170984@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.003170984@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309921353 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0387 1.0000 -1.7714 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:39AM -0400, Christoph Hellwig wrote: > In most places we can simply pass around and use the struct xfs_dir2_data_hdr, > which is the first and most important member of struct xfs_dir2_data instead > of the full structure. > > Signed-off-by: Christoph Hellwig Only a couple of minor things. .... > @@ -251,12 +258,13 @@ xfs_dir2_data_freeinsert( > xfs_dir2_data_free_t new; /* new bestfree entry */ > > #ifdef __KERNEL__ > - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || > - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); > + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || > + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); > #endif You kill the ifdef __KERNEL__ there. > @@ -286,36 +294,36 @@ xfs_dir2_data_freeinsert( > */ > STATIC void > xfs_dir2_data_freeremove( > - xfs_dir2_data_t *d, /* data block pointer */ > + xfs_dir2_data_hdr_t *hdr, /* data block header */ > xfs_dir2_data_free_t *dfp, /* bestfree entry pointer */ > int *loghead) /* out: log data header */ > { > #ifdef __KERNEL__ > - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || > - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); > + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || > + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); > #endif And there. > @@ -335,23 +344,23 @@ xfs_dir2_data_freescan( > char *p; /* current entry pointer */ > > #ifdef __KERNEL__ > - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || > - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); > + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || > + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); > #endif I'll stop commenting on this now ;) However, I have noticed that you've converted some of the magic number compares to cpu_to_be32(XFS_DIR2_DATA_MAGIC) form and not others. I'm not so concerned about the ASSERT()s, but some of the real runtime checks are touched but not then not changed around. Anyway, this can probably be done later as a separate cleanup. > if (!needscan) { > - xfs_dir2_data_freeremove(d, dfp, needlogp); > - (void)xfs_dir2_data_freeinsert(d, newdup, > + xfs_dir2_data_freeremove(hdr, dfp, needlogp); > + (void)xfs_dir2_data_freeinsert(hdr, newdup, > needlogp); > - (void)xfs_dir2_data_freeinsert(d, newdup2, > + (void)xfs_dir2_data_freeinsert(hdr, newdup2, > needlogp); > } > } Kill the (void) casts? Otherwise looks good. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 22:05:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6635lb5062771 for ; Tue, 5 Jul 2011 22:05:47 -0500 X-ASG-Debug-ID: 1309921545-10fa02a00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8E6254B8CA for ; Tue, 5 Jul 2011 20:05:45 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id YCidzOOwqisk4JG3 for ; Tue, 05 Jul 2011 20:05:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAO/NE055LCkB/2dsb2JhbABTqA14zFUOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 12:35:44 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeIQp-0007HK-MH; Wed, 06 Jul 2011 13:05:43 +1000 Date: Wed, 6 Jul 2011 13:05:43 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 19/27] xfs: kill struct xfs_dir2_data Subject: Re: [PATCH 19/27] xfs: kill struct xfs_dir2_data Message-ID: <20110706030543.GN1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.199361663@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.199361663@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309921546 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1171 1.0000 -1.2908 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.29 X-Barracuda-Spam-Status: No, SCORE=-1.29 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:40AM -0400, Christoph Hellwig wrote: > Remove the confusing xfs_dir2_data structure. It is supposed to describe > an XFS dir2 data btree block, but due to the variable sized nature of > almost all elements in it it can't actuall do anything close to that > job. In addition to accessing the fixed offset header structure it was > only used to get a pointer to the first dir or unused entry after it, > which can be trivially replaced by pointer arithmetics on the header > pointer. For most users that is actually more natural anyway, as they > don't use a typed pointer but rather a character pointer for further > arithmetics. > > Signed-off-by: Christoph Hellwig > > @@ -70,10 +69,9 @@ xfs_dir2_data_check( > struct xfs_name name; > > mp = dp->i_mount; > - d = bp->data; > - hdr = &d->hdr; > + hdr = bp->data; > bf = hdr->bestfree; > - p = (char *)d->u; > + p = (char *)(hdr + 1); Same comment as the previous patch about using a wrapper for this. Otherwise looks fine. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 22:07:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66370cw062821 for ; Tue, 5 Jul 2011 22:07:01 -0500 X-ASG-Debug-ID: 1309921619-10f902a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E9734C292 for ; Tue, 5 Jul 2011 20:06:59 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id gQXiMccYx7M8cI4B for ; Tue, 05 Jul 2011 20:06:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAO/NE055LCkB/2dsb2JhbABTqA14zFUOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 12:36:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeIS1-0007Hl-Qc; Wed, 06 Jul 2011 13:06:57 +1000 Date: Wed, 6 Jul 2011 13:06:57 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry Subject: Re: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry Message-ID: <20110706030657.GO1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.386730624@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.386730624@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309921620 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0776 1.0000 -1.5282 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.53 X-Barracuda-Spam-Status: No, SCORE=-1.53 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:41AM -0400, Christoph Hellwig wrote: > Remove the tag member which is at a variable offset after the actual > name, and make name a real variable sized C99 array instead of the incorrect > one-sized array which confuses (not only) gcc. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 22:13:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663DcmH063022 for ; Tue, 5 Jul 2011 22:13:38 -0500 X-ASG-Debug-ID: 1309922014-230b00fb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A7F751BF6A64 for ; Tue, 5 Jul 2011 20:13:34 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id TJ5ay48IC6byHhY0 for ; Tue, 05 Jul 2011 20:13:34 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAGfRE055LCkB/2dsb2JhbABTqA14zGkOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 12:43:33 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeIYN-0007IN-P2; Wed, 06 Jul 2011 13:13:31 +1000 Date: Wed, 6 Jul 2011 13:13:31 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 21/27] xfs: cleanup struct xfs_dir2_leaf Subject: Re: [PATCH 21/27] xfs: cleanup struct xfs_dir2_leaf Message-ID: <20110706031331.GP1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.567693269@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.567693269@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309922017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0072 1.0000 -1.9741 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.97 X-Barracuda-Spam-Status: No, SCORE=-1.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68097 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:42AM -0400, Christoph Hellwig wrote: > Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe > an XFS dir2 leaf format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. Remove the members that are after the first variable sized array, > given that they could only be used for sizeof expressions that can as well > just use the underlying types directly, and make the ents array a real > C99 variable sized array. > > Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf > entry which already was convoluted somewhat readable after using the > longer type names in the sizeof expressions. > > Signed-off-by: Christoph Hellwig ..... > > Index: xfs/fs/xfs/xfs_dir2_leaf.h > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:18:07.263416117 +0200 > +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:38:44.723400763 +0200 > @@ -72,10 +72,7 @@ typedef struct xfs_dir2_leaf_tail { > */ > typedef struct xfs_dir2_leaf { > xfs_dir2_leaf_hdr_t hdr; /* leaf header */ > - xfs_dir2_leaf_entry_t ents[1]; /* entries */ > - /* ... */ > - xfs_dir2_data_off_t bests[1]; /* best free counts */ > - xfs_dir2_leaf_tail_t tail; /* leaf tail */ > + xfs_dir2_leaf_entry_t ents[]; /* entries */ > } xfs_dir2_leaf_t; This needs a coment describing the layout of the structure like you've done with the other structures that have been cleaned up. Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 22:24:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663ON2E063438 for ; Tue, 5 Jul 2011 22:24:24 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21.corp.sgi.com [137.38.102.196]) by relay3.corp.sgi.com (Postfix) with ESMTP id E9CDAAC007; Tue, 5 Jul 2011 20:24:19 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:24:19 -0500 Subject: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094605.197942925@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.197942925@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:24:18 -0500 Message-ID: <1309922658.3381.22.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > The list field of it is never cactually used, so all uses can simply be > replaced with the xfs_dir2_sf_hdr_t type that it has as first member. > > Signed-off-by: Christoph Hellwig Looks like a lot of places could be converted to use "struct xfs_dir2_sf_hdr" rather than the typedef, but it's not worth re-posting for that. (Plus I suspect such changes may be in forthcoming patches...) Another few dumb little suggestions below--mostly regarding a consistent naming scheme--but otherwise this looks good. Reviewed-by: Alex Elder . . . > Index: xfs/fs/xfs/xfs_dir2_block.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:32:00.000000000 +0200 > +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:35:55.810069526 +0200 . . . > @@ -1061,32 +1060,30 @@ xfs_dir2_sf_to_block( > ASSERT(XFS_FORCED_SHUTDOWN(mp)); > return XFS_ERROR(EIO); > } > + > + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; > + > ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); > ASSERT(dp->i_df.if_u1.if_data != NULL); ASSERT(oldsfp != NULL); > - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; > - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); > + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(oldsfp->i8count)); . . . > Index: xfs/fs/xfs/xfs_dir2_sf.c > =================================================================== . . . > @@ -67,10 +67,10 @@ static void xfs_dir2_sf_toino8(xfs_da_ar > */ > static xfs_ino_t > xfs_dir2_sf_get_ino( > - struct xfs_dir2_sf *sfp, > + struct xfs_dir2_sf_hdr *hdr, I think I like the name "hdr" better than "sfp"; was it just too widespread a change to do a similar rename elsewhere? (xfs_dir2_block_to_sf() uses "sfhp" already, though I like just "hdr".) > xfs_dir2_inou_t *from) > { > - if (sfp->hdr.i8count) > + if (hdr->i8count) > return XFS_GET_DIR_INO8(from->i8); > else > return XFS_GET_DIR_INO4(from->i4); . . . > @@ -237,7 +237,7 @@ xfs_dir2_block_to_sf( > xfs_mount_t *mp; /* filesystem mount point */ > char *ptr; /* current data pointer */ > xfs_dir2_sf_entry_t *sfep; /* shortform entry */ > - xfs_dir2_sf_t *sfp; /* shortform structure */ > + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ xfs_dir2_sf_hdr_t *hdr; /* shortform directory header */ > trace_xfs_dir2_block_to_sf(args); > . . . From aelder@sgi.com Tue Jul 5 22:33:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663XX78063676 for ; Tue, 5 Jul 2011 22:33:33 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21.corp.sgi.com [137.38.102.196]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4941EAC006; Tue, 5 Jul 2011 20:33:33 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:33:32 -0500 Subject: Re: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094605.415405585@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.415405585@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:33:31 -0500 Message-ID: <1309923211.3381.27.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the inumber member which is at a variable offset after the actual > name, and make name a real variable sized C99 array instead of the incorrect > one-sized array which confuses (not only) gcc. Based on this clean up > the helpers to calculate the entry size. > > Signed-off-by: Christoph Hellwig Why was the inode put after then name in the first place? Anyway, looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 22:36:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663av0k063779 for ; Tue, 5 Jul 2011 22:36:57 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id 641508F8039; Tue, 5 Jul 2011 20:36:54 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:36:54 -0500 Subject: Re: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094605.621819832@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.621819832@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:36:53 -0500 Message-ID: <1309923413.3381.31.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > In most places we can simply pass around and use the struct xfs_dir2_data_hdr, > which is the first and most important member of struct xfs_dir2_block instead > of the full structure. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 22:37:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663axKx063796 for ; Tue, 5 Jul 2011 22:37:00 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21.corp.sgi.com [137.38.102.196]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5F2E6AC006; Tue, 5 Jul 2011 20:36:59 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:36:58 -0500 Subject: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094605.827598983@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.827598983@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:36:54 -0500 Message-ID: <1309923414.3381.32.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the confusing xfs_dir2_block structure. It is supposed to describe > an XFS dir2 block format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. In addition to accessing the fixed offset header structure it was > only used to get a pointer to the first dir or unused entry after it, > which can be trivially replaced by pointer arithmetics on the header > pointer. For most users that is actually more natural anyway, as they > don't use a typed pointer but rather a character pointer for further > arithmetics. > > Signed-off-by: Christoph Hellwig Yes, I think this is an improvement. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 22:38:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663cOMD063845 for ; Tue, 5 Jul 2011 22:38:24 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21.corp.sgi.com [137.38.102.196]) by relay3.corp.sgi.com (Postfix) with ESMTP id BF3E3AC007; Tue, 5 Jul 2011 20:38:23 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:38:23 -0500 Subject: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.003170984@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.003170984@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:38:22 -0500 Message-ID: <1309923502.3381.35.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > In most places we can simply pass around and use the struct xfs_dir2_data_hdr, > which is the first and most important member of struct xfs_dir2_data instead > of the full structure. > > Signed-off-by: Christoph Hellwig In xfs_dir2_data_freescan() you get the address of the dir2_data_t by forcibly casting the address of the header to that type. We all know that's fine, but it's an unsavory practice. Why don't you pass the full dir2_data_t in that case where it's needed? Are you simply trying to avoid passing *any* pointers to variable-sized types? I'm not worried about this, but just wondered what you thought about this. (Update: I think you eliminate that line in the next patch anyway...) In any case: Reviewed-by: Alex Elder . . . } > Index: xfs/fs/xfs/xfs_dir2_data.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:36.586734196 +0200 > +++ xfs/fs/xfs/xfs_dir2_data.c 2011-06-30 09:38:40.133400821 +0200 . . . > @@ -325,9 +333,10 @@ xfs_dir2_data_freeremove( > void > xfs_dir2_data_freescan( > xfs_mount_t *mp, /* filesystem mount point */ > - xfs_dir2_data_t *d, /* data block pointer */ > + xfs_dir2_data_hdr_t *hdr, /* data block header */ > int *loghead) /* out: log data header */ > { > + xfs_dir2_data_t *d = (xfs_dir2_data_t *)hdr; > xfs_dir2_block_tail_t *btp; /* block tail */ > xfs_dir2_data_entry_t *dep; /* active data entry */ > xfs_dir2_data_unused_t *dup; /* unused data entry */ . . . From aelder@sgi.com Tue Jul 5 22:38:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663cdMU063868 for ; Tue, 5 Jul 2011 22:38:40 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay2.corp.sgi.com (Postfix) with ESMTP id D6E6C30405F; Tue, 5 Jul 2011 20:38:36 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:38:36 -0500 Subject: Re: [PATCH 19/27] xfs: kill struct xfs_dir2_data From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.199361663@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.199361663@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:38:35 -0500 Message-ID: <1309923515.3381.36.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the confusing xfs_dir2_data structure. It is supposed to describe > an XFS dir2 data btree block, but due to the variable sized nature of > almost all elements in it it can't actuall do anything close to that > job. In addition to accessing the fixed offset header structure it was > only used to get a pointer to the first dir or unused entry after it, > which can be trivially replaced by pointer arithmetics on the header > pointer. For most users that is actually more natural anyway, as they > don't use a typed pointer but rather a character pointer for further > arithmetics. > > Signed-off-by: Christoph Hellwig Looks good. I like the diagrams. Reviewed-by: Alex Elder From david@fromorbit.com Tue Jul 5 22:44:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_55 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663iRhk064052 for ; Tue, 5 Jul 2011 22:44:27 -0500 X-ASG-Debug-ID: 1309923864-230a01b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D4EBA1BF6C30 for ; Tue, 5 Jul 2011 20:44:24 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id iA5e0wwhCl84z1kr for ; Tue, 05 Jul 2011 20:44:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAH3YE055LCkB/2dsb2JhbABTqA14zDsOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:14:23 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJ2D-0007LH-Qh; Wed, 06 Jul 2011 13:44:21 +1000 Date: Wed, 6 Jul 2011 13:44:21 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Subject: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Message-ID: <20110706034421.GQ1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.763430916@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.763430916@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309923865 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68099 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:43AM -0400, Christoph Hellwig wrote: > Switch the shortform directory code over to use the generic > get_unaligned_beXX helpers instead of reinventing them. As a result > kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into > xfs_linux.h. > > Signed-off-by: Christoph Hellwig ..... > -/* > - * In directories inode numbers are stored as unaligned arrays of unsigned > - * 8bit integers on disk. > - * > - * For v1 directories or v2 directories that contain inode numbers that > - * do not fit into 32bit the array has eight members, but the first member > - * is always zero: > - * > - * |unused|48-55|40-47|32-39|24-31|16-23| 8-15| 0- 7| Well, I learnt something today. So we only support 56 bit inode numbers in shortform directories? AFAIK, Nothing else in the code enforces this limitation. I just found XFS_MAXINUMBER to define the maximum inode number to be 56 bits in size, but, well, it's not used anywhere relevant (like when initialising AGs)...... Hmmmm. I wonder if it is a hold-over from the days of 4GB AGs? That would have meant inode numbers used 6 bits for the chunk index, 2^22 - 2^6 for the agbno and 2^32 for the agno, which gives 54 bits maximum inode number and so XFS_MAXINUMBER @ 56 bits makes sense, as does the zero high byte in the dir2 inode number. Now we have 2^30 bits for the agbno+chunk index, and 32 bits for the agno, so inode numbers can reach 62 bits, which is outside the range of the 56-bit MAXINUMBER limit. So my questions are now this: - is there any other reason for a 56 bit inode number limit? - why isn't it enforced for the rest of the directory code? - did we lose that checking when we converted the rest of the directory code to use the generic byte swapping functions? - do we need to increase XFS_MAXINUMBER to reflect the current reality of 1TB AGs and simply ignore the zero high byte restriction? As it is, we need to update AG initialisation to disallow inode allocation in AGs above the XFS_MAXINUMBER if we don't allow them in the directory structure.... > +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 20:46:45.366236141 +0200 > @@ -59,11 +59,12 @@ static void xfs_dir2_sf_toino4(xfs_da_ar > static void xfs_dir2_sf_toino8(xfs_da_args_t *args); > #endif /* XFS_BIG_INUMS */ > > - > /* > * Inode numbers in short-form directories can come in two versions, > * either 4 bytes or 8 bytes wide. These helpers deal with the > * two forms transparently by looking at the headers i8count field. > + * > + * For 64-bit inode number the most significant byte must be zero. This comment is what lead me one that path.... > */ > static xfs_ino_t > xfs_dir2_sf_get_ino( > @@ -71,9 +72,9 @@ xfs_dir2_sf_get_ino( > xfs_dir2_inou_t *from) > { > if (hdr->i8count) > - return XFS_GET_DIR_INO8(from->i8); > + return get_unaligned_be64(&from->i8.i) & 0x00ffffffffffffffULL; > else > - return XFS_GET_DIR_INO4(from->i4); > + return get_unaligned_be32(&from->i4.i); > } > > static void > @@ -82,10 +83,12 @@ xfs_dir2_sf_put_ino( > xfs_dir2_inou_t *to, > xfs_ino_t ino) > { > + ASSERT((ino & 0xff00000000000000ULL) == 0); > + > if (hdr->i8count) > - XFS_PUT_DIR_INO8(ino, to->i8); > + put_unaligned_be64(ino, &to->i8.i); > else > - XFS_PUT_DIR_INO4(ino, to->i4); > + put_unaligned_be32(ino, &to->i4.i); > } > > xfs_ino_t > Index: xfs/fs/xfs/xfs_dir2_sf.h > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:24:08.732919663 +0200 > +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:38:37.019575543 +0200 > @@ -95,13 +95,13 @@ static inline int xfs_dir2_sf_hdr_size(i > static inline xfs_dir2_data_aoff_t > xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) > { > - return INT_GET_UNALIGNED_16_BE(&(sfep)->offset.i); > + return get_unaligned_be16(&sfep->offset.i); > } > > static inline void > xfs_dir2_sf_put_offset(xfs_dir2_sf_entry_t *sfep, xfs_dir2_data_aoff_t off) > { > - INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); > + put_unaligned_be16(off, &sfep->offset.i); > } > > static inline int As a straight translation this patch is fine, but I think I'd like to resolve some of the questions it raises first before anything else.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 22:44:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663iZFK064082 for ; Tue, 5 Jul 2011 22:44:35 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay2.corp.sgi.com (Postfix) with ESMTP id 75EC030405F; Tue, 5 Jul 2011 20:44:35 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:44:35 -0500 Subject: Re: [PATCH 21/27] xfs: cleanup struct xfs_dir2_leaf From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.567693269@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.567693269@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:44:33 -0500 Message-ID: <1309923873.3381.42.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe > an XFS dir2 leaf format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. Remove the members that are after the first variable sized array, > given that they could only be used for sizeof expressions that can as well > just use the underlying types directly, and make the ents array a real > C99 variable sized array. > > Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf > entry which already was convoluted somewhat readable after using the > longer type names in the sizeof expressions. > > Signed-off-by: Christoph Hellwig One comment below, otherwise looks good. Reviewed-by: Alex Elder . . . > Index: xfs/fs/xfs/xfs_dir2_leaf.h > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:18:07.263416117 +0200 > +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:38:44.723400763 +0200 > @@ -72,10 +72,7 @@ typedef struct xfs_dir2_leaf_tail { > */ A comment explaining the implied/variable-offset fields is needed here. > typedef struct xfs_dir2_leaf { > xfs_dir2_leaf_hdr_t hdr; /* leaf header */ > - xfs_dir2_leaf_entry_t ents[1]; /* entries */ > - /* ... */ > - xfs_dir2_data_off_t bests[1]; /* best free counts */ > - xfs_dir2_leaf_tail_t tail; /* leaf tail */ > + xfs_dir2_leaf_entry_t ents[]; /* entries */ > } xfs_dir2_leaf_t; > > /* > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Tue Jul 5 22:44:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663iXOp064072 for ; Tue, 5 Jul 2011 22:44:33 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5E1878F8039; Tue, 5 Jul 2011 20:44:33 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:44:33 -0500 Subject: Re: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.386730624@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.386730624@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:44:32 -0500 Message-ID: <1309923872.3381.41.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the tag member which is at a variable offset after the actual > name, and make name a real variable sized C99 array instead of the incorrect > one-sized array which confuses (not only) gcc. > > Signed-off-by: Christoph Hellwig One comment, but looks good. Oh, and also, fix spelling of "definition" in the subject line here and in other patches in this series. Reviewed-by: Alex Elder > Index: xfs/fs/xfs/xfs_dir2_data.h > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-06-29 13:42:35.521563513 +0200 > +++ xfs/fs/xfs/xfs_dir2_data.h 2011-06-29 13:43:03.284746440 +0200 > @@ -98,14 +98,14 @@ typedef struct xfs_dir2_data_hdr { > > /* > * Active entry in a data block. Aligned to 8 bytes. > - * Tag appears as the last 2 bytes. > + * > + * After the variable length name field there is a 2 byte tag field, which > + * can be accessed using xfs_dir2_data_entry_tag_p. > */ > typedef struct xfs_dir2_data_entry { > __be64 inumber; /* inode number */ > __u8 namelen; /* name length */ > - __u8 name[1]; /* name bytes, no null */ > - /* variable offset */ > - __be16 tag; /* starting offset of us */ > + __u8 name[]; /* name bytes, no null */ Maybe put the comment about the tag field here, as was done elsewhere. (But the pictures are even better...) > } xfs_dir2_data_entry_t; > > /* > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From david@fromorbit.com Tue Jul 5 22:44:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663iwLa064121 for ; Tue, 5 Jul 2011 22:44:58 -0500 X-ASG-Debug-ID: 1309923896-232101910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 934361BF6C3B for ; Tue, 5 Jul 2011 20:44:56 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 2Gd3aA90Bbt7KfC4 for ; Tue, 05 Jul 2011 20:44:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAH3YE055LCkB/2dsb2JhbABTqA14zDsOhigEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:14:55 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJ2k-0007LP-W1; Wed, 06 Jul 2011 13:44:55 +1000 Date: Wed, 6 Jul 2011 13:44:54 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 23/27] xfs: remove the unused xfs_bufhash structure Subject: Re: [PATCH 23/27] xfs: remove the unused xfs_bufhash structure Message-ID: <20110706034454.GR1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.955329993@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094606.955329993@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309923897 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3352 1.0000 -0.2067 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.21 X-Barracuda-Spam-Status: No, SCORE=-0.21 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68099 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:44AM -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig My Bad. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 22:47:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663liaC064249 for ; Tue, 5 Jul 2011 22:47:44 -0500 X-ASG-Debug-ID: 1309924062-0f4303030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 088B81BF6E0A for ; Tue, 5 Jul 2011 20:47:43 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id nBgLogXMnTCHldOr for ; Tue, 05 Jul 2011 20:47:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAH3YE055LCkB/2dsb2JhbABTqA14zDsOhigEon4 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:17:42 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJ5R-0007M7-9K; Wed, 06 Jul 2011 13:47:41 +1000 Date: Wed, 6 Jul 2011 13:47:41 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 24/27] xfs: clean up buffer locking helpers Subject: Re: [PATCH 24/27] xfs: clean up buffer locking helpers Message-ID: <20110706034741.GS1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.155544131@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094607.155544131@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309924064 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0300 1.0000 -1.8266 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.83 X-Barracuda-Spam-Status: No, SCORE=-1.83 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68099 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:45AM -0400, Christoph Hellwig wrote: > Rename xfs_buf_cond_lock and reverse it's return value to fit most other > trylock operations in the Kernel and XFS (with the exception of down_trylock, > after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val > with an xfs_buf_islocked for use in asserts, or and opencoded variant in > tracing. remove the XFS_BUF_* wrappers for all the locking helpers. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 22:47:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663lkoC064267 for ; Tue, 5 Jul 2011 22:47:46 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay2.corp.sgi.com (Postfix) with ESMTP id 998C6304059; Tue, 5 Jul 2011 20:47:46 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:47:46 -0500 Subject: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.763430916@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.763430916@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:47:45 -0500 Message-ID: <1309924065.3381.45.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Switch the shortform directory code over to use the generic > get_unaligned_beXX helpers instead of reinventing them. As a result > kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into > xfs_linux.h. > > Signed-off-by: Christoph Hellwig Huh, good thinking! (Just what I suggested in reviewing patch 13 in this series, but even better.) Reviewed-by: Alex Elder From david@fromorbit.com Tue Jul 5 22:48:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663mhVE064313 for ; Tue, 5 Jul 2011 22:48:43 -0500 X-ASG-Debug-ID: 1309924121-0f3a02dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 137E31BF6E0F for ; Tue, 5 Jul 2011 20:48:42 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id n5PFaUvNl2cOgKHd for ; Tue, 05 Jul 2011 20:48:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAH3YE055LCkB/2dsb2JhbABHDKgNeMw7DoMWgxIEmkyIMg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:18:41 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJ6O-0007MG-90; Wed, 06 Jul 2011 13:48:40 +1000 Date: Wed, 6 Jul 2011 13:48:40 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 25/27] xfs: return the buffer locked from xfs_buf_get_uncached Subject: Re: [PATCH 25/27] xfs: return the buffer locked from xfs_buf_get_uncached Message-ID: <20110706034840.GT1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.356791525@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094607.356791525@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309924123 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1132 1.0000 -1.3144 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.31 X-Barracuda-Spam-Status: No, SCORE=-1.31 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68099 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:46AM -0400, Christoph Hellwig wrote: > All other xfs_buf_get/read-like helpers return the buffer locked, make sure > xfs_buf_get_uncached isn't different for no reason. Half of the callers > already lock it directly after, and the others probably should also keep > it locked if only for consistency and beeing able to use xfs_buf_rele, > but I'll leave that for later. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 22:49:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663n2Cv064335 for ; Tue, 5 Jul 2011 22:49:02 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id B878E8F8050; Tue, 5 Jul 2011 20:49:01 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:49:01 -0500 Subject: Re: [PATCH 23/27] xfs: remove the unused xfs_bufhash structure From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094606.955329993@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.955329993@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:49:00 -0500 Message-ID: <1309924140.3381.46.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 22:57:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p663vRSS065009 for ; Tue, 5 Jul 2011 22:57:28 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21.corp.sgi.com [137.38.102.196]) by relay3.corp.sgi.com (Postfix) with ESMTP id 440E2AC007; Tue, 5 Jul 2011 20:57:27 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:57:26 -0500 Subject: Re: [PATCH 25/27] xfs: return the buffer locked from xfs_buf_get_uncached From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094607.356791525@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.356791525@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:57:25 -0500 Message-ID: <1309924645.3381.50.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > All other xfs_buf_get/read-like helpers return the buffer locked, make sure > xfs_buf_get_uncached isn't different for no reason. Half of the callers > already lock it directly after, and the others probably should also keep > it locked if only for consistency and beeing able to use xfs_buf_rele, > but I'll leave that for later. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 23:01:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6641Js7065392 for ; Tue, 5 Jul 2011 23:01:20 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id A42218F8054; Tue, 5 Jul 2011 20:55:07 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 22:55:07 -0500 Subject: Re: [PATCH 24/27] xfs: clean up buffer locking helpers From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094607.155544131@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.155544131@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 22:55:06 -0500 Message-ID: <1309924506.3381.48.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Rename xfs_buf_cond_lock and reverse it's return value to fit most other > trylock operations in the Kernel and XFS (with the exception of down_trylock, > after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val > with an xfs_buf_islocked for use in asserts, or and opencoded variant in > tracing. remove the XFS_BUF_* wrappers for all the locking helpers. > > Signed-off-by: Christoph Hellwig Nice change. More readable. Reviewed-by: Alex Elder From david@fromorbit.com Tue Jul 5 23:04:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6644AXv065524 for ; Tue, 5 Jul 2011 23:04:10 -0500 X-ASG-Debug-ID: 1309925046-2d75008a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 39F2E15EA868; Tue, 5 Jul 2011 21:04:06 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 5WSInZRP9s9X8EtB; Tue, 05 Jul 2011 21:04:06 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjsFAJPbE055LCkB/2dsb2JhbABTg31Fo0t4iHqyTpEFDoEdg3+BDASifg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:34:05 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJLH-0007Od-Ut; Wed, 06 Jul 2011 14:04:03 +1000 Date: Wed, 6 Jul 2011 14:04:03 +1000 From: Dave Chinner To: =?iso-8859-1?B?VPZy9ms=?= Edwin Cc: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110706040403.GW1026@dastard> References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4E1313C1.6020309@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309925049 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68100 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 04:38:09PM +0300, Török Edwin wrote: > On 07/05/2011 04:09 PM, Dave Chinner wrote: > > On Tue, Jul 05, 2011 at 09:03:19AM +0300, Török Edwin wrote: > >> Hi, > >> > >> Yesterday when running 'shutdown -Pfh now', it hung using 99% CPU in sys [*] > >> Looking at the console there was a message about XFS "Corruption of in-memory data detected", and about XFS_WANT_CORRUPTED_GOTO. > > > > So you had a btree corruption. > > > >> Had to shutdown the machine via SysRQ u + o. > >> > >> Today when I booted I got this message: > >> [ 9.786494] XFS (md1p2): Mounting Filesystem > >> [ 9.927590] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > >> [ 10.385941] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1638 of file fs/xfs/xfs_alloc.c. Caller 0xffffffff8122b80e > >> [ 10.385943] > >> [ 10.386007] Pid: 1990, comm: mount Not tainted 3.0.0-rc5 #155 > >> [ 10.386009] Call Trace: > >> [ 10.386014] [] xfs_error_report+0x3a/0x40 > >> [ 10.386017] [] ? xfs_free_extent+0xce/0x120 > >> [ 10.386019] [] ? xfs_alloc_lookup_eq+0x16/0x20 > >> [ 10.386021] [] xfs_free_ag_extent+0x6aa/0x780 > >> [ 10.386023] [] xfs_free_extent+0xce/0x120 > >> [ 10.386026] [] ? kmem_zone_alloc+0x5f/0xe0 > >> [ 10.386029] [] xlog_recover_process_efi+0x15f/0x1a0 > >> [ 10.386031] [] xlog_recover_process_efis.isra.4+0x76/0xc0 > >> [ 10.386033] [] xlog_recover_finish+0x22/0xc0 > >> [ 10.386035] [] xfs_log_mount_finish+0x24/0x30 > >> [ 10.386038] [] xfs_mountfs+0x45b/0x720 > >> [ 10.386040] [] xfs_fs_fill_super+0x1f1/0x2e0 > >> [ 10.386042] [] mount_bdev+0x1aa/0x1f0 > >> [ 10.386044] [] ? xfs_parseargs+0xb90/0xb90 > >> [ 10.386046] [] xfs_fs_mount+0x10/0x20 > >> [ 10.386048] [] mount_fs+0x3e/0x1b0 > >> [ 10.386051] [] vfs_kern_mount+0x57/0xa0 > >> [ 10.386052] [] do_kern_mount+0x4f/0x100 > >> [ 10.386054] [] do_mount+0x19c/0x840 > >> [ 10.386057] [] ? __get_free_pages+0x12/0x50 > >> [ 10.386059] [] ? copy_mount_options+0x35/0x170 > >> [ 10.386061] [] sys_mount+0x8b/0xe0 > >> [ 10.386064] [] system_call_fastpath+0x16/0x1b > >> [ 10.386071] XFS (md1p2): Failed to recover EFIs > >> [ 10.386097] XFS (md1p2): log mount finish failed > >> [ 10.428562] XFS (md1p3): Mounting Filesystem > >> [ 10.609949] XFS (md1p3): Ending clean mount > >> > >> FWIW I got a message about EFIs yesterday too, but everything else worked: > >> Jul 4 09:42:54 debian kernel: [ 11.439861] XFS (md1p2): Mounting Filesystem > >> Jul 4 09:42:54 debian kernel: [ 11.599815] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > >> Jul 4 09:42:54 debian kernel: [ 11.787980] XFS (md1p2): I/O error occurred: meta-data dev md1p2 block 0x117925a8 ("xfs_trans_read_buf") error 5 buf c > >> ount 4096 > >> Jul 4 09:42:54 debian kernel: [ 11.788044] XFS (md1p2): Failed to recover EFIs > >> Jul 4 09:42:54 debian kernel: [ 11.788065] XFS (md1p2): log mount finish failed > >> Jul 4 09:42:54 debian kernel: [ 11.831077] XFS (md1p3): Mounting Filesystem > >> Jul 4 09:42:54 debian kernel: [ 12.009647] XFS (md1p3): Ending clean mount > > > > Looks like you might have a dying disk. That's a IO error on read > > that has been reported back to XFS, and it warned that bad things > > happened. Maybe XFS should have shut down, though. > > Ah I had /dev/sdd kicked out of the RAID array, and a lot of SATA EH resets. > Those were apparently caused by a loose SATA cable: > https://lkml.org/lkml/2011/7/5/22 > Those errors were for /dev/sdd though, not /dev/sdi (the XFS log disk). Still, IO errors in the filesystem are important to report when you've got a corruption occurring. > Once I re-plugged all the SATA cables, and re-added /dev/sdd to the RAID array, all seemed well: > > Jul 4 09:59:22 debian kernel: [ 11.613073] XFS (md1p2): Mounting Filesystem > Jul 4 09:59:22 debian kernel: [ 11.782051] XFS (md1p2): Starting recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > Jul 4 09:59:22 debian kernel: [ 12.020766] XFS (md1p2): Ending recovery (logdev: /dev/disk/by-id/scsi-SATA_WDC_WD740ADFD-0_WD-WMARF1007797-part5) > Jul 4 09:59:22 debian kernel: [ 12.031038] XFS (md1p3): Mounting Filesystem > Jul 4 09:59:22 debian kernel: [ 12.196238] XFS (md1p3): Ending clean mount > > But when I shutdown the system later that day I got that log corruption error. > Could it be that the log / some data on the disk was still corrupted (despite the successful mount, and RAID resync), which caused the > log error later? Most likely the free space btree was corrupted by whatever RAID problem you had. i.e. it didn't recover cleanly. > The log is not on the RAID array though, it is on a separate disk, > and that disk is indeed older than all the other disks. Lose the log, corrupt your filesystem. i.e. the external log needs to have ãŸhe same redundancy as the rest of the filesystem... > Still > SMART doesn't show any errors, and I've run a SMART short > self-test, and conveyance self-test, and those didn't log any > errors either. SMART isn't very smart about reporting errors. And it can't report errors caused by bad cables.... > > Obviously - you've got corrupted free space btrees thanks to the IO > > error during recovery and the later operations that were done on it. > > Now log recovery can't complete without hitting those corruptions. > > Is the corruption in the log, or in the FS itself? > The FS itself could've been damaged when kicked out of the RAID. The FS itself. > Although is there supposed to be a performance benefit from having > a separate log disk with XFS? There used to be. Now everyone just uses delayed logging, which is far faster and more scalable that even using an external log. > IIRC it has a disadvantage that you can't use barriers properly. That mostly works now (recent kernels), but you take a hit in journal IO waiting synchronously for the data device caches to be flushed before writing to the log device. > But if I'd move the log to be stored with the FS (on the RAID10 > array), will XFS be able to use barriers there, or RAID still > prevents barriers from working? RAID does not prevent barriers from working any more. They are just really slow on software RAID5/6.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 23:09:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6649JuR065737 for ; Tue, 5 Jul 2011 23:09:20 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id C56C28F8049; Tue, 5 Jul 2011 21:09:16 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 23:09:16 -0500 Subject: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094607.536262104@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.536262104@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 23:09:15 -0500 Message-ID: <1309925355.3381.55.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER > to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and > XBF_FLUSH to allow more fine grained control over the bio flags. Also > cleanup processing of the flags in _xfs_buf_ioapply to make more sense, > and renumber the sparse flag number space to group flags by purpose. > > Signed-off-by: Christoph Hellwig Interesting that _XBF_RUN_QUEUES was never actually used. The new names are much more understandable. Looks like READ_META and WRITE_META are now effectively gone... Looks good. Reviewed-by: Alex Elder From david@fromorbit.com Tue Jul 5 23:10:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664A0X3065776 for ; Tue, 5 Jul 2011 23:10:00 -0500 X-ASG-Debug-ID: 1309924453-1c2602e00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CF05D4D8BC for ; Tue, 5 Jul 2011 20:54:14 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id yYeWkTwtZLIWJNiu for ; Tue, 05 Jul 2011 20:54:14 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAJPbE055LCkB/2dsb2JhbABTqA14zE0OhigEon4 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:24:13 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJBj-0007Mu-Ie; Wed, 06 Jul 2011 13:54:11 +1000 Date: Wed, 6 Jul 2011 13:54:11 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Subject: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Message-ID: <20110706035411.GU1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.536262104@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094607.536262104@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309924454 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0389 1.0000 -1.7699 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68101 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:47AM -0400, Christoph Hellwig wrote: > Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER > to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and > XBF_FLUSH to allow more fine grained control over the bio flags. Also > cleanup processing of the flags in _xfs_buf_ioapply to make more sense, > and renumber the sparse flag number space to group flags by purpose. > > Signed-off-by: Christoph Hellwig > > - bp->b_flags &= ~_XBF_RUN_QUEUES; > - rw = (bp->b_flags & XBF_WRITE) ? WRITE_SYNC : READ_SYNC; > - } else if (bp->b_flags & _XBF_RUN_QUEUES) { > - ASSERT(!(bp->b_flags & XBF_READ_AHEAD)); > - bp->b_flags &= ~_XBF_RUN_QUEUES; > - rw = (bp->b_flags & XBF_WRITE) ? WRITE_META : READ_META; > + if (bp->b_flags & XBF_WRITE) { > + if (bp->b_flags & XBF_SYNCIO) > + rw = WRITE_SYNC; > + else > + rw = WRITE; > + if (bp->b_flags & XBF_FUA) > + rw |= REQ_FUA; > + if (bp->b_flags & XBF_FLUSH) > + rw |= REQ_FLUSH; > + } else if (bp->b_flags & XBF_READ_AHEAD) { > + rw = READA; > } else { > - rw = (bp->b_flags & XBF_WRITE) ? WRITE : > - (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; > + rw = READ; > } Is it worthwhile tagging all these as READ_META and WRITE_META? Though that probably needs to be done as a separate commit... > /* flags used only internally */ > -#define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ > -#define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ > -#define _XBF_KMEM (1 << 20)/* backed by heap memory */ > -#define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ > +#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ > +#define _XBF_KMEM (1 << 21)/* backed by heap memory */ > +#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ Might be worthwhile cleaning up the stray tab before _XBF_KMEM there. Otherwise looks good. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 5 23:10:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664A0aK065775 for ; Tue, 5 Jul 2011 23:10:00 -0500 X-ASG-Debug-ID: 1309924569-2b79021f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A93934D8C6 for ; Tue, 5 Jul 2011 20:56:09 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id S5XnYs23sPUfu2zJ for ; Tue, 05 Jul 2011 20:56:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0EAJPbE055LCkB/2dsb2JhbABTqA14zE0OhigEon4 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 06 Jul 2011 13:26:08 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeJDR-0007N6-PD; Wed, 06 Jul 2011 13:55:57 +1000 Date: Wed, 6 Jul 2011 13:55:57 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 27/27] xfs: avoid a few disk cache flushes Subject: Re: [PATCH 27/27] xfs: avoid a few disk cache flushes Message-ID: <20110706035557.GV1026@dastard> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.799498339@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110701094607.799498339@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309924570 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0163 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68101 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 05:43:48AM -0400, Christoph Hellwig wrote: > There is no need for a pre-flush when doing writing the second part of a > split log buffer, and if we are using an external log there is no need > to do a full cache flush of the log device at all given that all writes > to it use the FUA flag. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Tue Jul 5 23:11:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664BPHL065933 for ; Tue, 5 Jul 2011 23:11:25 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4B7DC8F8039; Tue, 5 Jul 2011 21:11:25 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 23:11:25 -0500 Subject: Re: [PATCH 27/27] xfs: avoid a few disk cache flushes From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094607.799498339@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.799498339@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 23:11:24 -0500 Message-ID: <1309925484.3381.57.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > There is no need for a pre-flush when doing writing the second part of a > split log buffer, and if we are using an external log there is no need > to do a full cache flush of the log device at all given that all writes > to it use the FUA flag. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 5 23:35:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664ZxeI069791 for ; Tue, 5 Jul 2011 23:35:59 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8D85F8F8035; Tue, 5 Jul 2011 21:35:59 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 23:35:59 -0500 Subject: Re: [PATCH 07/27] xfs: split xfs_itruncate_finish From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094603.580931463@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.580931463@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 23:35:58 -0500 Message-ID: <1309926958.3381.61.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > plain text document attachment (xfs-split-xfs_itruncate_finish) > Split the guts of xfs_itruncate_finish that loop over the existing extents > and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs. > Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish, > which allows to simplify the latter a lot, by only letting it deal with > the data fork. As a result xfs_itruncate_finish is renamed to > xfs_itruncate_data to make its use case more obvious. > > Also remove the sync parameter from xfs_itruncate_data, which has been > unessecary since the introduction of the busy extent list in 2002, and > completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was > made a no-op. > > I can't actually see why the xfs_attr_inactive needs to set the transaction > sync, but let's keep this patch simple and without changes in behaviour. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Dave Chinner OK, finally got through this. Not with my usual rigor, but it looks like a pretty reasonable split-up of the function. I have one remark but that's it. Reviewed-by: Alex Elder . . . > @@ -1390,128 +1274,143 @@ xfs_itruncate_finish( > * beyond the maximum file size (ie it is the same as last_block), > * then there is nothing to do. > */ > + first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); > last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); > - ASSERT(first_unmap_block <= last_block); . . . > + if (error) > + goto out_bmap_cancel; > > /* > * Duplicate the transaction that has the permanent > * reservation and commit the old transaction. > */ > - error = xfs_bmap_finish(tp, &free_list, &committed); > - ntp = *tp; > + error = xfs_bmap_finish(&tp, &free_list, &committed); > if (committed) > - xfs_trans_ijoin(ntp, ip); > - > - if (error) { > - /* > - * If the bmap finish call encounters an error, return > - * to the caller where the transaction can be properly > - * aborted. We just need to make sure we're not > - * holding any resources that we were not when we came > - * in. > - * > - * Aborting from this point might lose some blocks in > - * the file system, but oh well. The above comment (if true--I haven't really checked) seems like something significant to preserve. > - */ > - xfs_bmap_cancel(&free_list); > - return error; > - } > + xfs_trans_ijoin(tp, ip); > + if (error) > + goto out_bmap_cancel; . . . > + > +out: > + *tpp = tp; > + return error; > +out_bmap_cancel: > + /* > + * If the bunmapi call encounters an error, return to the caller where > + * the transaction can be properly aborted. We just need to make sure > + * we're not holding any resources that we were not when we came in. > + */ > + xfs_bmap_cancel(&free_list); > + goto out; > +} > + . . . From aelder@sgi.com Tue Jul 5 23:40:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664eIiN070809 for ; Tue, 5 Jul 2011 23:40:18 -0500 Received: from cas.corp.sgi.com (pv-excas2-dc21-nlb.corp.sgi.com [137.38.102.197]) by relay1.corp.sgi.com (Postfix) with ESMTP id 60D9F8F8035; Tue, 5 Jul 2011 21:40:18 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 5 Jul 2011 23:40:18 -0500 Subject: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110701094321.936534538@bombadil.infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 5 Jul 2011 23:40:17 -0500 Message-ID: <1309927217.3381.65.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > This is my current patch queue for Linux 3.1. Compared to the last > posting all review comments were incorporated and two additional trivial > patches were added. The ->writepages implementation was dropped for now, > given the bad situation of kswap-originating writeback, but I'll repost > the fixed version separately to get feedback on the updated version. I mentioned a bunch of fairly minor issues with this series; I don't believe I found anything that was actually incorrect. Quite a few of them consist of small but good cleanups. I'll give you a chance to re-post them (or point me at a repository to pull from). At this point I trust you'll do the right thing so I'm ready to use what you give me. For now I'm testing overnight with this latest version of the patches. -Alex From nobody@server2.dtxhost.com Tue Jul 5 23:52:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99,FREEMAIL_FROM, T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p664qUL0073378 for ; Tue, 5 Jul 2011 23:52:30 -0500 X-ASG-Debug-ID: 1309927949-2b7803c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from server2.dtxhost.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BBB814EC06 for ; Tue, 5 Jul 2011 21:52:29 -0700 (PDT) Received: from server2.dtxhost.com (server2.dtxhost.com [207.210.126.170]) by cuda.sgi.com with ESMTP id BFLUHBE6HJtF8IDg for ; Tue, 05 Jul 2011 21:52:29 -0700 (PDT) Received: from nobody by server2.dtxhost.com with local (Exim 4.69) (envelope-from ) id 1QeK68-0000iG-Ff for xfs@oss.sgi.com; Wed, 06 Jul 2011 05:52:28 +0100 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Personal Assistant Position Subject: Personal Assistant Position From: Brittany Schick Reply-To: brittanschy@gmail.com MIME-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Date: Wed, 06 Jul 2011 05:52:28 +0100 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server2.dtxhost.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [99 99] / [47 12] X-AntiAbuse: Sender Address Domain - server2.dtxhost.com X-Barracuda-Connect: server2.dtxhost.com[207.210.126.170] X-Barracuda-Start-Time: 1309927949 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7128 1.0000 1.4674 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.47 X-Barracuda-Spam-Status: No, SCORE=1.47 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68105 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Would you like to work as a personal assistant ? If yes, contact us for more details now. Thank You From fengguang.wu@intel.com Wed Jul 6 00:10:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p665A44G078511 for ; Wed, 6 Jul 2011 00:10:04 -0500 X-ASG-Debug-ID: 1309927995-2d7302800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mga14.intel.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 470E0E792D1 for ; Tue, 5 Jul 2011 21:53:15 -0700 (PDT) Received: from mga14.intel.com (mga14.intel.com [143.182.124.37]) by cuda.sgi.com with ESMTP id LXOxLS5QzF3Ek26O for ; Tue, 05 Jul 2011 21:53:15 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from azsmga001.ch.intel.com ([10.2.17.19]) by azsmga102.ch.intel.com with ESMTP; 05 Jul 2011 21:53:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.65,484,1304319600"; d="scan'208";a="23043219" Received: from unknown (HELO localhost.localdomain) ([10.255.20.222]) by azsmga001.ch.intel.com with ESMTP; 05 Jul 2011 21:53:05 -0700 Received: from wfg by localhost.localdomain with local (Exim 4.69) (envelope-from ) id 1QeK6f-0005J3-68; Tue, 05 Jul 2011 21:53:01 -0700 Date: Tue, 5 Jul 2011 21:53:01 -0700 From: Wu Fengguang To: Dave Chinner Cc: Christoph Hellwig , Mel Gorman , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110706045301.GA11604@localhost> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110704032534.GD1026@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: mga14.intel.com[143.182.124.37] X-Barracuda-Start-Time: 1309927996 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 11:25:34AM +0800, Dave Chinner wrote: > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > Christoph, > > > > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > > > Johannes, Mel, Wu, > > > > > > Dave has been stressing some XFS patches of mine that remove the XFS > > > internal writeback clustering in favour of using write_cache_pages. > > > > > > As part of investigating the behaviour he found out that we're still > > > doing lots of I/O from the end of the LRU in kswapd. Not only is that > > > pretty bad behaviour in general, but it also means we really can't > > > just remove the writeback clustering in writepage given how much > > > I/O is still done through that. > > > > > > Any chance we could the writeback vs kswap behaviour sorted out a bit > > > better finally? > > > > I once tried this approach: > > > > http://www.spinics.net/lists/linux-mm/msg09202.html > > > > It used a list structure that is not linearly scalable, however that > > part should be independently improvable when necessary. > > I don't think that handing random writeback to the flusher thread is > much better than doing random writeback directly. Yes, you added > some clustering, but I'm still don't think writing specific pages is > the best solution. I agree that the VM should avoid writing specific pages as much as possible. Mostly often, it's indeed OK to just skip sporadically encountered dirty page and reclaim the clean pages presumably not far away in the LRU list. So your 2-liner patch is all good if constraining it to low scan pressure, which will look like if (priority == DEF_PRIORITY) tag PG_reclaim on encountered dirty pages and skip writing it However the VM in general does need the ability to write specific pages, such as when reclaiming from specific zone/memcg. So I'll still propose to do bdi_start_inode_writeback(). Below is the patch rebased to linux-next. It's good enough for testing purpose, and I guess even with the ->nr_pages work issue, it's complete enough to get roughly the same performance as your 2-liner patch. > > The real problem was, it seem to not very effective in my test runs. > > I found many ->nr_pages works queued before the ->inode works, which > > effectively makes the flusher working on more dispersed pages rather > > than focusing on the dirty pages encountered in LRU reclaim. > > But that's really just an implementation issue related to how you > tried to solve the problem. That could be addressed. > > However, what I'm questioning is whether we should even care what > page memory reclaim wants to write - it seems to make fundamentally > bad decisions from an IO persepctive. > > We have to remember that memory reclaim is doing LRU reclaim and the > flusher threads are doing "oldest first" writeback. IOWs, both are trying > to operate in the same direction (oldest to youngest) for the same > purpose. The fundamental problem that occurs when memory reclaim > starts writing pages back from the LRU is this: > > - memory reclaim has run ahead of IO writeback - > > The LRU usually looks like this: > > oldest youngest > +---------------+---------------+--------------+ > clean writeback dirty > ^ ^ > | | > | Where flusher will next work from > | Where kswapd is working from > | > IO submitted by flusher, waiting on completion > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > got ahead of writeback without being throttled - it's passed over > all the pages currently under writeback and is trying to write back > pages that are *newer* than what writeback is working on. IOWs, it > starts trying to do the job of the flusher threads, and it does that > very badly. > > The $100 question is ∗why is it getting ahead of writeback*? The most important case is: faster reader + relatively slow writer. Assume for every 10 pages read, 1 page is dirtied, and the dirty speed is fast enough to trigger the 20% dirty ratio and hence dirty balancing. That pattern is able to evenly distribute dirty pages all over the LRU list and hence trigger lots of pageout()s. The "skip reclaim writes on low pressure" approach can fix this case. Thanks, Fengguang --- Subject: writeback: introduce bdi_start_inode_writeback() Date: Thu Jul 29 14:41:19 CST 2010 This relays ASYNC file writeback IOs to the flusher threads. pageout() will continue to serve the SYNC file page writes for necessary throttling for preventing OOM, which may happen if the LRU list is small and/or the storage is slow, so that the flusher cannot clean enough pages before the LRU is full scanned. Only ASYNC pageout() is relayed to the flusher threads, the less frequent SYNC pageout()s will work as before as a last resort. This helps to avoid OOM when the LRU list is small and/or the storage is slow, and the flusher cannot clean enough pages before the LRU is full scanned. The flusher will piggy back more dirty pages for IO - it's more IO efficient - it helps clean more pages, a good number of them may sit in the same LRU list that is being scanned. To avoid memory allocations at page reclaim, a mempool is created. Background/periodic works will quit automatically (as done in another patch), so as to clean the pages under reclaim ASAP. However for now the sync work can still block us for long time. Jan Kara: limit the search scope. CC: Jan Kara CC: Rik van Riel CC: Mel Gorman CC: Minchan Kim Signed-off-by: Wu Fengguang --- fs/fs-writeback.c | 156 ++++++++++++++++++++++++++++- include/linux/backing-dev.h | 1 include/trace/events/writeback.h | 15 ++ mm/vmscan.c | 8 + 4 files changed, 174 insertions(+), 6 deletions(-) --- linux-next.orig/mm/vmscan.c 2011-06-29 20:43:10.000000000 -0700 +++ linux-next/mm/vmscan.c 2011-07-05 18:30:19.000000000 -0700 @@ -825,6 +825,14 @@ static unsigned long shrink_page_list(st if (PageDirty(page)) { nr_dirty++; + if (page_is_file_cache(page) && mapping && + sc->reclaim_mode != RECLAIM_MODE_SYNC) { + if (flush_inode_page(page, mapping) >= 0) { + SetPageReclaim(page); + goto keep_locked; + } + } + if (references == PAGEREF_RECLAIM_CLEAN) goto keep_locked; if (!may_enter_fs) --- linux-next.orig/fs/fs-writeback.c 2011-07-05 18:30:16.000000000 -0700 +++ linux-next/fs/fs-writeback.c 2011-07-05 18:30:52.000000000 -0700 @@ -30,12 +30,21 @@ #include "internal.h" /* + * When flushing an inode page (for page reclaim), try to piggy back up to + * 4MB nearby pages for IO efficiency. These pages will have good opportunity + * to be in the same LRU list. + */ +#define WRITE_AROUND_PAGES MIN_WRITEBACK_PAGES + +/* * Passed into wb_writeback(), essentially a subset of writeback_control */ struct wb_writeback_work { long nr_pages; struct super_block *sb; unsigned long *older_than_this; + struct inode *inode; + pgoff_t offset; enum writeback_sync_modes sync_mode; unsigned int tagged_writepages:1; unsigned int for_kupdate:1; @@ -59,6 +68,27 @@ struct wb_writeback_work { */ int nr_pdflush_threads; +static mempool_t *wb_work_mempool; + +static void *wb_work_alloc(gfp_t gfp_mask, void *pool_data) +{ + /* + * bdi_start_inode_writeback() may be called on page reclaim + */ + if (current->flags & PF_MEMALLOC) + return NULL; + + return kmalloc(sizeof(struct wb_writeback_work), gfp_mask); +} + +static __init int wb_work_init(void) +{ + wb_work_mempool = mempool_create(1024, + wb_work_alloc, mempool_kfree, NULL); + return wb_work_mempool ? 0 : -ENOMEM; +} +fs_initcall(wb_work_init); + /** * writeback_in_progress - determine whether there is writeback in progress * @bdi: the device's backing_dev_info structure. @@ -123,7 +153,7 @@ __bdi_start_writeback(struct backing_dev * This is WB_SYNC_NONE writeback, so if allocation fails just * wakeup the thread for old dirty data writeback */ - work = kzalloc(sizeof(*work), GFP_ATOMIC); + work = mempool_alloc(wb_work_mempool, GFP_NOWAIT); if (!work) { if (bdi->wb.task) { trace_writeback_nowork(bdi); @@ -132,6 +162,7 @@ __bdi_start_writeback(struct backing_dev return; } + memset(work, 0, sizeof(*work)); work->sync_mode = WB_SYNC_NONE; work->nr_pages = nr_pages; work->range_cyclic = range_cyclic; @@ -177,6 +208,107 @@ void bdi_start_background_writeback(stru spin_unlock_bh(&bdi->wb_lock); } +static bool extend_writeback_range(struct wb_writeback_work *work, + pgoff_t offset) +{ + pgoff_t end = work->offset + work->nr_pages; + + if (offset >= work->offset && offset < end) + return true; + + /* the unsigned comparison helps eliminate one compare */ + if (work->offset - offset < WRITE_AROUND_PAGES) { + work->nr_pages += WRITE_AROUND_PAGES; + work->offset -= WRITE_AROUND_PAGES; + return true; + } + + if (offset - end < WRITE_AROUND_PAGES) { + work->nr_pages += WRITE_AROUND_PAGES; + return true; + } + + return false; +} + +/* + * schedule writeback on a range of inode pages. + */ +static struct wb_writeback_work * +bdi_flush_inode_range(struct backing_dev_info *bdi, + struct inode *inode, + pgoff_t offset, + pgoff_t len) +{ + struct wb_writeback_work *work; + + if (!igrab(inode)) + return ERR_PTR(-ENOENT); + + work = mempool_alloc(wb_work_mempool, GFP_NOWAIT); + if (!work) + return ERR_PTR(-ENOMEM); + + memset(work, 0, sizeof(*work)); + work->sync_mode = WB_SYNC_NONE; + work->inode = inode; + work->offset = offset; + work->nr_pages = len; + + bdi_queue_work(bdi, work); + + return work; +} + +/* + * Called by page reclaim code to flush the dirty page ASAP. Do write-around to + * improve IO throughput. The nearby pages will have good chance to reside in + * the same LRU list that vmscan is working on, and even close to each other + * inside the LRU list in the common case of sequential read/write. + * + * ret > 0: success, found/reused a previous writeback work + * ret = 0: success, allocated/queued a new writeback work + * ret < 0: failed + */ +long flush_inode_page(struct page *page, struct address_space *mapping) +{ + struct backing_dev_info *bdi = mapping->backing_dev_info; + struct inode *inode = mapping->host; + pgoff_t offset = page->index; + pgoff_t len = 0; + struct wb_writeback_work *work; + long ret = -ENOENT; + + if (unlikely(!inode)) + goto out; + + len = 1; + spin_lock_bh(&bdi->wb_lock); + list_for_each_entry_reverse(work, &bdi->work_list, list) { + if (work->inode != inode) + continue; + if (extend_writeback_range(work, offset)) { + ret = len; + offset = work->offset; + len = work->nr_pages; + break; + } + if (len++ > 30) /* do limited search */ + break; + } + spin_unlock_bh(&bdi->wb_lock); + + if (ret > 0) + goto out; + + offset = round_down(offset, WRITE_AROUND_PAGES); + len = WRITE_AROUND_PAGES; + work = bdi_flush_inode_range(bdi, inode, offset, len); + ret = IS_ERR(work) ? PTR_ERR(work) : 0; +out: + return ret; +} + /* * Remove the inode from the writeback list it is on. */ @@ -830,6 +962,21 @@ static unsigned long get_nr_dirty_pages( get_nr_dirty_inodes(); } +static long wb_flush_inode(struct bdi_writeback *wb, + struct wb_writeback_work *work) +{ + loff_t start = work->offset; + loff_t end = work->offset + work->nr_pages - 1; + int wrote; + + wrote = __filemap_fdatawrite_range(work->inode->i_mapping, + start << PAGE_CACHE_SHIFT, + end << PAGE_CACHE_SHIFT, + WB_SYNC_NONE); + iput(work->inode); + return wrote; +} + static long wb_check_background_flush(struct bdi_writeback *wb) { if (over_bground_thresh()) { @@ -900,7 +1047,10 @@ long wb_do_writeback(struct bdi_writebac trace_writeback_exec(bdi, work); - wrote += wb_writeback(wb, work); + if (work->inode) + wrote += wb_flush_inode(wb, work); + else + wrote += wb_writeback(wb, work); /* * Notify the caller of completion if this is a synchronous @@ -909,7 +1059,7 @@ long wb_do_writeback(struct bdi_writebac if (work->done) complete(work->done); else - kfree(work); + mempool_free(work, wb_work_mempool); } /* --- linux-next.orig/include/linux/backing-dev.h 2011-07-03 20:03:37.000000000 -0700 +++ linux-next/include/linux/backing-dev.h 2011-07-05 18:30:19.000000000 -0700 @@ -109,6 +109,7 @@ void bdi_unregister(struct backing_dev_i int bdi_setup_and_register(struct backing_dev_info *, char *, unsigned int); void bdi_start_writeback(struct backing_dev_info *bdi, long nr_pages); void bdi_start_background_writeback(struct backing_dev_info *bdi); +long flush_inode_page(struct page *page, struct address_space *mapping); int bdi_writeback_thread(void *data); int bdi_has_dirty_io(struct backing_dev_info *bdi); void bdi_arm_supers_timer(void); --- linux-next.orig/include/trace/events/writeback.h 2011-07-05 18:30:16.000000000 -0700 +++ linux-next/include/trace/events/writeback.h 2011-07-05 18:30:19.000000000 -0700 @@ -28,31 +28,40 @@ DECLARE_EVENT_CLASS(writeback_work_class TP_ARGS(bdi, work), TP_STRUCT__entry( __array(char, name, 32) + __field(struct wb_writeback_work*, work) __field(long, nr_pages) __field(dev_t, sb_dev) __field(int, sync_mode) __field(int, for_kupdate) __field(int, range_cyclic) __field(int, for_background) + __field(unsigned long, ino) + __field(unsigned long, offset) ), TP_fast_assign( strncpy(__entry->name, dev_name(bdi->dev), 32); + __entry->work = work; __entry->nr_pages = work->nr_pages; __entry->sb_dev = work->sb ? work->sb->s_dev : 0; __entry->sync_mode = work->sync_mode; __entry->for_kupdate = work->for_kupdate; __entry->range_cyclic = work->range_cyclic; __entry->for_background = work->for_background; + __entry->ino = work->inode ? work->inode->i_ino : 0; + __entry->offset = work->offset; ), - TP_printk("bdi %s: sb_dev %d:%d nr_pages=%ld sync_mode=%d " - "kupdate=%d range_cyclic=%d background=%d", + TP_printk("bdi %s: sb_dev %d:%d %p nr_pages=%ld sync_mode=%d " + "kupdate=%d range_cyclic=%d background=%d ino=%lu offset=%lu", __entry->name, MAJOR(__entry->sb_dev), MINOR(__entry->sb_dev), + __entry->work, __entry->nr_pages, __entry->sync_mode, __entry->for_kupdate, __entry->range_cyclic, - __entry->for_background + __entry->for_background, + __entry->ino, + __entry->offset ) ); #define DEFINE_WRITEBACK_WORK_EVENT(name) \ From arekm@maven.pl Wed Jul 6 01:32:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p666W9dY087750 for ; Wed, 6 Jul 2011 01:32:10 -0500 X-ASG-Debug-ID: 1309933926-19c8032a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A34161EE90DF for ; Tue, 5 Jul 2011 23:32:06 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id BZtME59KGEceT4Fp for ; Tue, 05 Jul 2011 23:32:06 -0700 (PDT) Received: from [83.238.65.58] (port=33741 helo=t400.localnet ident=matrix157) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QeLeX-0000wl-Ez for xfs@oss.sgi.com; Wed, 06 Jul 2011 08:32:05 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com X-ASG-Orig-Subj: 2.6.38.8: quota check oops Subject: 2.6.38.8: quota check oops Date: Wed, 6 Jul 2011 08:32:03 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc6-dirty; KDE/4.6.5; x86_64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201107060832.03640.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1309933927 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68111 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean quota check code (mount with user+group quota) likes to oops for me (usually after system hang and hard reset).=20 This is on 2.6.38.8 on top of raid10 soft raid. Mount without quota succeeds without a problem. [ 73.348316] XFS mounting filesystem md3 [ 73.612588] Starting XFS recovery on filesystem: md3 (logdev: internal) [ 99.974344] device-mapper: uevent: version 1.0.3 [ 99.990186] device-mapper: ioctl: 4.19.1-ioctl (2011-01-07) initialised:= dm-devel@redhat.com [ 103.323836] BUG: unable to handle kernel NULL pointer dereference at 000= 0000000000020 [ 103.345648] IP: [] mutex_lock+0x1c/0x40 [ 103.353261] PGD 10a90d067 PUD 106ef8067 PMD 0 [ 103.353261] Oops: 0002 [#1] SMP [ 103.353261] last sysfs file: /sys/devices/system/cpu/online [ 103.353261] CPU 0 [ 103.353261] Modules linked in: dm_mod ipmi_watchdog ipmi_si ipmi_devintf= ipmi_msghandler xt_tcpudp nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_con= ntrack ipt_REJECT iptable_filter=20 xt_CLASSIFY iptable_mangle ip_tables x_tables sch_sfq forcedeth ext3 jbd mb= cache raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcp= y async_tx raid1 usbhid hid ohci_hcd=20 ssb mmc_core pcmcia pcmcia_core ehci_hcd usbcore xfs exportfs sd_mod crc_t1= 0dif sata_nv libata scsi_mod raid10 md_mod [last unloaded: scsi_wait_scan] [ 103.442036] [ 103.442036] Pid: 12308, xid: #0, comm: xfssyncd/md3 Not tainted 2.6.38.8= =2D1 #1 Supermicro H8DMU/H8DMU [ 103.442036] RIP: 0010:[] [] mutex_l= ock+0x1c/0x40 [ 103.442036] RSP: 0018:ffff88010d267dd0 EFLAGS: 00010246 [ 103.442036] RAX: 0000000000000000 RBX: 0000000000000020 RCX: 00000000000= 00017 [ 103.442036] RDX: ffff88010baf5bb8 RSI: 0000000000000002 RDI: 00000000000= 00020 [ 103.442036] RBP: ffff88010d267de0 R08: 0000000000000000 R09: ffff8801138= c8f88 [ 103.442036] R10: 0000000000000000 R11: 0000000000000001 R12: 00000000000= 00002 [ 103.442036] R13: 0000000000000010 R14: 0000000000000000 R15: 00000000000= 00020 [ 103.442036] FS: 00007f0013df1700(0000) GS:ffff8800dfc00000(0000) knlGS:= 0000000000000000 [ 103.442036] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [ 103.442036] CR2: 0000000000000020 CR3: 000000010aa25000 CR4: 00000000000= 006f0 [ 103.442036] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 00000000000= 00000 [ 103.442036] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 00000000000= 00400 [ 103.442036] Process xfssyncd/md3 (pid: 12308, threadinfo ffff88010baf5bb= 8, task ffff88010baf57c0) [ 103.442036] Stack: [ 103.442036] ffff88010c67f000 0000000000000002 ffff88010d267e40 ffffffff= a00d7727 [ 103.442036] ffffffffffffffff 000000000c67f000 ffff880100000002 ffff8801= 0c67f000 [ 103.442036] ffff88010d267e90 ffff88010c67f000 ffff88010c67f3a0 ffff8801= 0c67f3b0 [ 103.442036] Call Trace: [ 103.442036] [] xfs_qm_sync+0x57/0x1a0 [xfs] [ 103.442036] [] xfs_reclaim_inodes+0x65/0x130 [xfs] [ 103.442036] [] xfsaild_stop+0x31a/0xc80 [xfs] [ 103.442036] [] ? xfsaild_stop+0x1b0/0xc80 [xfs] [ 103.442036] [] kthread+0x96/0xa0 [ 103.442036] [] kernel_thread_helper+0x4/0x10 [ 103.442036] [] ? kthread+0x0/0xa0 [ 103.442036] [] ? kernel_thread_helper+0x0/0x10 [ 103.442036] Code: eb dc 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 55 48 89 = e5 48 83 ec 10 48 89 1c 24 48 89 fb 4c 89 64 24 08 e8 17 f1 ff ff 48 89 df = ff 0f 79 05 e8 6a fa ff ff 65 48 8b 04 25 c0 a5 00 00 4c 8b [ 103.442036] RIP [] mutex_lock+0x1c/0x40 [ 103.442036] RSP [ 103.442036] CR2: 0000000000000020 [ 104.180623] ---[ end trace dd9b675aa2dba8c5 ]--- =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 01:37:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p666b2Qp087902 for ; Wed, 6 Jul 2011 01:37:02 -0500 X-ASG-Debug-ID: 1309934221-11d503c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A99E51EE90F6; Tue, 5 Jul 2011 23:37:01 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id mgyzbcZ7VwOfhL3L; Tue, 05 Jul 2011 23:37:01 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeLjI-0002LM-9u; Wed, 06 Jul 2011 06:37:00 +0000 Date: Wed, 6 Jul 2011 02:37:00 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks Subject: Re: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks Message-ID: <20110706063700.GA4508@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094602.465074143@bombadil.infradead.org> <1309905319.1950.48.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309905319.1950.48.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309934221 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0925 1.0000 -1.4378 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.34 X-Barracuda-Spam-Status: No, SCORE=-1.34 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68111 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 05:35:19PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > The non-blockig behaviour in xfs_map_blocks currently is conditional on > > having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. > > The latter used to be used by both pdflush, kswapd and a few other places > > in older kernels, but has been fading out starting with the introduction > > of the per-bdi flusher threads. > > > > Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back > > the behaviour we want. > > The subject line should refer to xfs_vm_writepage() > (not xfs_map_blocks()). Unless I hear otherwise I > will plan to change that for you. Well, the actual xfs_ilock_nowait call is in xfs_map_blocks, the logic controlling it in xfs_vm_writepage, so either one is fine. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 01:42:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p666gB0q088083 for ; Wed, 6 Jul 2011 01:42:11 -0500 X-ASG-Debug-ID: 1309934530-61dc00710000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CC3E01EE924C; Tue, 5 Jul 2011 23:42:10 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id oOfOEY7xCy4QN1Yw; Tue, 05 Jul 2011 23:42:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeLoH-00035F-N5; Wed, 06 Jul 2011 06:42:09 +0000 Date: Wed, 6 Jul 2011 02:42:09 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 Subject: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 Message-ID: <20110706064209.GB4508@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <1309927217.3381.65.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309927217.3381.65.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309934530 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0380 1.0000 -1.7757 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.68 X-Barracuda-Spam-Status: No, SCORE=-1.68 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68111 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 11:40:17PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > This is my current patch queue for Linux 3.1. Compared to the last > > posting all review comments were incorporated and two additional trivial > > patches were added. The ->writepages implementation was dropped for now, > > given the bad situation of kswap-originating writeback, but I'll repost > > the fixed version separately to get feedback on the updated version. > > I mentioned a bunch of fairly minor issues with > this series; I don't believe I found anything > that was actually incorrect. Quite a few of > them consist of small but good cleanups. > > I'll give you a chance to re-post them (or > point me at a repository to pull from). At > this point I trust you'll do the right thing > so I'm ready to use what you give me. > > For now I'm testing overnight with this > latest version of the patches. I'll redo the series after going through your and Daves comments. From minchan.kim@gmail.com Wed Jul 6 01:47:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_52,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p666l7NL088268 for ; Wed, 6 Jul 2011 01:47:07 -0500 X-ASG-Debug-ID: 1309934823-5609037d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94462134E0A1 for ; Tue, 5 Jul 2011 23:47:03 -0700 (PDT) Received: from mail-qy0-f181.google.com (mail-qy0-f181.google.com [209.85.216.181]) by cuda.sgi.com with ESMTP id pvHQQ4ZpFMPbHJcz for ; Tue, 05 Jul 2011 23:47:03 -0700 (PDT) Received: by qyk9 with SMTP id 9so4476207qyk.5 for ; Tue, 05 Jul 2011 23:47:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=+oaCYSwpGoOZZUHxf5GeZviBX6wtHKa7OM85w1prfc0=; b=pjvqndzkRSJ2SDPTvvjMYCT9eTNiQJd90u7B1BwediRtdYw61q+3OTDfxMDLtstYwh OcjR3J0yniZlvZzf5rtn7uynG/SguTG03lt1bT0fqGrENazOo+dlDeupbuPOcVtQ8SjZ HdgS3YtmWI1hFVXMTTcuxCfm7hYsSy5yB1Qpk= MIME-Version: 1.0 Received: by 10.229.98.206 with SMTP id r14mr6302958qcn.18.1309934822830; Tue, 05 Jul 2011 23:47:02 -0700 (PDT) Received: by 10.229.216.4 with HTTP; Tue, 5 Jul 2011 23:47:02 -0700 (PDT) In-Reply-To: <20110706045301.GA11604@localhost> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706045301.GA11604@localhost> Date: Wed, 6 Jul 2011 15:47:02 +0900 Message-ID: X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering From: Minchan Kim To: Wu Fengguang Cc: Dave Chinner , Christoph Hellwig , Mel Gorman , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qy0-f181.google.com[209.85.216.181] X-Barracuda-Start-Time: 1309934825 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68112 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 6, 2011 at 1:53 PM, Wu Fengguang wrote= : > On Mon, Jul 04, 2011 at 11:25:34AM +0800, Dave Chinner wrote: >> On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: >> > Christoph, >> > >> > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: >> > > Johannes, Mel, Wu, >> > > >> > > Dave has been stressing some XFS patches of mine that remove the XFS >> > > internal writeback clustering in favour of using write_cache_pages. >> > > >> > > As part of investigating the behaviour he found out that we're still >> > > doing lots of I/O from the end of the LRU in kswapd. =C2=A0Not only = is that >> > > pretty bad behaviour in general, but it also means we really can't >> > > just remove the writeback clustering in writepage given how much >> > > I/O is still done through that. >> > > >> > > Any chance we could the writeback vs kswap behaviour sorted out a bi= t >> > > better finally? >> > >> > I once tried this approach: >> > >> > http://www.spinics.net/lists/linux-mm/msg09202.html >> > >> > It used a list structure that is not linearly scalable, however that >> > part should be independently improvable when necessary. >> >> I don't think that handing random writeback to the flusher thread is >> much better than doing random writeback directly. =C2=A0Yes, you added >> some clustering, but I'm still don't think writing specific pages is >> the best solution. > > I agree that the VM should avoid writing specific pages as much as > possible. Mostly often, it's indeed OK to just skip sporadically > encountered dirty page and reclaim the clean pages presumably not > far away in the LRU list. So your 2-liner patch is all good if > constraining it to low scan pressure, which will look like > > =C2=A0 =C2=A0 =C2=A0 =C2=A0if (priority =3D=3D DEF_PRIORITY) > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0tag PG_reclaim on = encountered dirty pages and > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0skip writing it > > However the VM in general does need the ability to write specific > pages, such as when reclaiming from specific zone/memcg. So I'll still > propose to do bdi_start_inode_writeback(). > > Below is the patch rebased to linux-next. It's good enough for testing > purpose, and I guess even with the ->nr_pages work issue, it's > complete enough to get roughly the same performance as your 2-liner > patch. > >> > The real problem was, it seem to not very effective in my test runs. >> > I found many ->nr_pages works queued before the ->inode works, which >> > effectively makes the flusher working on more dispersed pages rather >> > than focusing on the dirty pages encountered in LRU reclaim. >> >> But that's really just an implementation issue related to how you >> tried to solve the problem. That could be addressed. >> >> However, what I'm questioning is whether we should even care what >> page memory reclaim wants to write - it seems to make fundamentally >> bad decisions from an IO persepctive. >> >> We have to remember that memory reclaim is doing LRU reclaim and the >> flusher threads are doing "oldest first" writeback. IOWs, both are tryin= g >> to operate in the same direction (oldest to youngest) for the same >> purpose. =C2=A0The fundamental problem that occurs when memory reclaim >> starts writing pages back from the LRU is this: >> >> =C2=A0 =C2=A0 =C2=A0 - memory reclaim has run ahead of IO writeback - >> >> The LRU usually looks like this: >> >> =C2=A0 =C2=A0 =C2=A0 oldest =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0youngest >> =C2=A0 =C2=A0 =C2=A0 +---------------+---------------+--------------+ >> =C2=A0 =C2=A0 =C2=A0 clean =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 writeback = =C2=A0 =C2=A0 =C2=A0 dirty >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 ^ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 ^ >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 | >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Where flusher wil= l next work from >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Where kswapd is w= orking from >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 | >> =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 IO submitted by flusher, waiting on completion >> >> >> If memory reclaim is hitting dirty pages on the LRU, it means it has >> got ahead of writeback without being throttled - it's passed over >> all the pages currently under writeback and is trying to write back >> pages that are *newer* than what writeback is working on. IOWs, it >> starts trying to do the job of the flusher threads, and it does that >> very badly. >> >> The $100 question is =E2=88=97why is it getting ahead of writeback*? > > The most important case is: faster reader + relatively slow writer. > > Assume for every 10 pages read, 1 page is dirtied, and the dirty speed > is fast enough to trigger the 20% dirty ratio and hence dirty balancing. > > That pattern is able to evenly distribute dirty pages all over the LRU > list and hence trigger lots of pageout()s. The "skip reclaim writes on > low pressure" approach can fix this case. > > Thanks, > Fengguang > --- > Subject: writeback: introduce bdi_start_inode_writeback() > Date: Thu Jul 29 14:41:19 CST 2010 > > This relays ASYNC file writeback IOs to the flusher threads. > > pageout() will continue to serve the SYNC file page writes for necessary > throttling for preventing OOM, which may happen if the LRU list is small > and/or the storage is slow, so that the flusher cannot clean enough > pages before the LRU is full scanned. > > Only ASYNC pageout() is relayed to the flusher threads, the less > frequent SYNC pageout()s will work as before as a last resort. > This helps to avoid OOM when the LRU list is small and/or the storage is > slow, and the flusher cannot clean enough pages before the LRU is > full scanned. > > The flusher will piggy back more dirty pages for IO > - it's more IO efficient > - it helps clean more pages, a good number of them may sit in the same > =C2=A0LRU list that is being scanned. > > To avoid memory allocations at page reclaim, a mempool is created. > > Background/periodic works will quit automatically (as done in another > patch), so as to clean the pages under reclaim ASAP. However for now the > sync work can still block us for long time. > > Jan Kara: limit the search scope. > > CC: Jan Kara > CC: Rik van Riel > CC: Mel Gorman > CC: Minchan Kim > Signed-off-by: Wu Fengguang It seems to be enhanced version of old Mel's done. I support this approach :) but I have some questions. > --- > =C2=A0fs/fs-writeback.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0| =C2=A0156 ++++++++++++++++++++++++++++- > =C2=A0include/linux/backing-dev.h =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A01 > =C2=A0include/trace/events/writeback.h | =C2=A0 15 ++ > =C2=A0mm/vmscan.c =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0| =C2=A0 =C2=A08 + > =C2=A04 files changed, 174 insertions(+), 6 deletions(-) > > --- linux-next.orig/mm/vmscan.c 2011-06-29 20:43:10.000000000 -0700 > +++ linux-next/mm/vmscan.c =C2=A0 =C2=A0 =C2=A02011-07-05 18:30:19.000000= 000 -0700 > @@ -825,6 +825,14 @@ static unsigned long shrink_page_list(st > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0if (PageDirty(page= )) { > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0nr_dirty++; > > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 if (page_is_file_cache(page) && mapping && > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 sc->reclaim_mode !=3D RECLAIM_MODE_SYNC) { > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 if (flush_inode_page(page, mapping) >=3D= 0) { > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 SetPageRecla= im(page); > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 goto keep_lo= cked; keep_locked changes old behavior. Normally, in case of async mode, we does keep_lumpy(ie, we didn't reset reclaim_mode) but now you are always resetting reclaim_mode. so sync call of shrink_page_list never happen if flush_inode_page is successful. Is it your intention? > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 } > + =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 } > + If flush_inode_page fails(ie, the page isn't nearby of current work's writeback range), we still do pageout although it's async mode. Is it your intention? --=20 Kind regards, Minchan Kim From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 02:08:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66784WM089159 for ; Wed, 6 Jul 2011 02:08:05 -0500 X-ASG-Debug-ID: 1309936082-10de01d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF5D515EABC6; Wed, 6 Jul 2011 00:08:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 6ipyvDzYZzMjohQW; Wed, 06 Jul 2011 00:08:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeMDE-0007qj-4V; Wed, 06 Jul 2011 07:07:56 +0000 Date: Wed, 6 Jul 2011 03:07:56 -0400 From: Christoph Hellwig To: Dave Chinner Cc: T?r?k Edwin , xfs-masters@oss.sgi.com, Linux Kernel Mailing List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110706070756.GA25800@infradead.org> References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706040403.GW1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309936083 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68114 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 02:04:03PM +1000, Dave Chinner wrote: > > Although is there supposed to be a performance benefit from having > > a separate log disk with XFS? > > There used to be. Now everyone just uses delayed logging, which is > far faster and more scalable that even using an external log. Even with delayed logging external logs are a huge benefit if you hit the log hard, e.g. for fsync intensive workloads. E.g. when using fs_mark in fsync mode it gives speedups over 100% for the setups I've tested. You'll see similar speedups for NFS server loads that are log force heavy as well. > > > IIRC it has a disadvantage that you can't use barriers properly. > > That mostly works now (recent kernels), but you take a hit in > journal IO waiting synchronously for the data device caches to be > flushed before writing to the log device. For metadata-heavy workloads where an external log benefits you most you generally just want to disable the volatile write cache anyway. From david@fromorbit.com Wed Jul 6 02:17:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p667HerM089497 for ; Wed, 6 Jul 2011 02:17:40 -0500 X-ASG-Debug-ID: 1309936657-0c0f004c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 439131EE93CA for ; Wed, 6 Jul 2011 00:17:38 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id Ri57Y2bnGwA76r3g for ; Wed, 06 Jul 2011 00:17:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArwDACUKFE55LCkBgWdsb2JhbABThEKjRhUBARYmJYh6sn+RGA6BHYN/gQwEmlmINQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 06 Jul 2011 16:47:35 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeMMX-0007hL-PW; Wed, 06 Jul 2011 17:17:33 +1000 Date: Wed, 6 Jul 2011 17:17:33 +1000 From: Dave Chinner To: Wu Fengguang Cc: Christoph Hellwig , Mel Gorman , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110706071733.GY1026@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706045301.GA11604@localhost> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110706045301.GA11604@localhost> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309936659 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0100 1.0000 -1.9560 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.96 X-Barracuda-Spam-Status: No, SCORE=-1.96 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68113 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 09:53:01PM -0700, Wu Fengguang wrote: > On Mon, Jul 04, 2011 at 11:25:34AM +0800, Dave Chinner wrote: > > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > We have to remember that memory reclaim is doing LRU reclaim and the > > flusher threads are doing "oldest first" writeback. IOWs, both are trying > > to operate in the same direction (oldest to youngest) for the same > > purpose. The fundamental problem that occurs when memory reclaim > > starts writing pages back from the LRU is this: > > > > - memory reclaim has run ahead of IO writeback - > > > > The LRU usually looks like this: > > > > oldest youngest > > +---------------+---------------+--------------+ > > clean writeback dirty > > ^ ^ > > | | > > | Where flusher will next work from > > | Where kswapd is working from > > | > > IO submitted by flusher, waiting on completion > > > > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > > got ahead of writeback without being throttled - it's passed over > > all the pages currently under writeback and is trying to write back > > pages that are *newer* than what writeback is working on. IOWs, it > > starts trying to do the job of the flusher threads, and it does that > > very badly. > > > > The $100 question is ∗why is it getting ahead of writeback*? > > The most important case is: faster reader + relatively slow writer. Same thing I said to Mel: that is not the workload that is causing this problem I am seeing. > Assume for every 10 pages read, 1 page is dirtied, and the dirty speed > is fast enough to trigger the 20% dirty ratio and hence dirty balancing. > > That pattern is able to evenly distribute dirty pages all over the LRU > list and hence trigger lots of pageout()s. The "skip reclaim writes on > low pressure" approach can fix this case. Sure it can, but even better would be to simply skip the dirty pages and reclaim the interspersed clean pages which greatly outnumber the dirty pages. That then lets writeback deal with cleaning the dirty pages in the most optimal manner, and no writeback from memory reclaim is needed. IOWs, I don't think writeback from the LRU is the right solution to the problem you've described, either. > > Thanks, > Fengguang > --- > Subject: writeback: introduce bdi_start_inode_writeback() > Date: Thu Jul 29 14:41:19 CST 2010 > > This relays ASYNC file writeback IOs to the flusher threads. > > pageout() will continue to serve the SYNC file page writes for necessary > throttling for preventing OOM, which may happen if the LRU list is small > and/or the storage is slow, so that the flusher cannot clean enough > pages before the LRU is full scanned. > > Only ASYNC pageout() is relayed to the flusher threads, the less > frequent SYNC pageout()s will work as before as a last resort. > This helps to avoid OOM when the LRU list is small and/or the storage is > slow, and the flusher cannot clean enough pages before the LRU is > full scanned. Which ignores the fact that async pageout should not be happening in most cases. Let's try and fix the root cause of the problem, not paper over it again... > The flusher will piggy back more dirty pages for IO > - it's more IO efficient > - it helps clean more pages, a good number of them may sit in the same > LRU list that is being scanned. > > To avoid memory allocations at page reclaim, a mempool is created. > > Background/periodic works will quit automatically (as done in another > patch), so as to clean the pages under reclaim ASAP. However for now the > sync work can still block us for long time. > /* > + * When flushing an inode page (for page reclaim), try to piggy back up to > + * 4MB nearby pages for IO efficiency. These pages will have good opportunity > + * to be in the same LRU list. > + */ > +#define WRITE_AROUND_PAGES MIN_WRITEBACK_PAGES Regardless of the trigger, I think you're going too far in the other direction, here. If we have to do one IO to clean the page that the VM wants, then it has to be done with as little latency as possible but large enough to still maintain decent throughput. With the above patch, for every single dirty page the VM wants cleaned, we'll clean 4MB of pages around it. Ok, but once the VM has tripped over pages on 25 different inodes, we've now got 100MB of writeback work to chew through before we can get to the 26th page the VM wanted cleaned. At which point, we may as well just ignore what the VM wants and continue to clean pages via the existing mechanisms because the latency for cleaning a specific page will worse than if the VM just skipped it in the first place.... FWIW, XFS limited such clustering to 64 pages at a time to try to balance the bandwidth vs completion latency problem. > +/* > + * Called by page reclaim code to flush the dirty page ASAP. Do write-around to > + * improve IO throughput. The nearby pages will have good chance to reside in > + * the same LRU list that vmscan is working on, and even close to each other > + * inside the LRU list in the common case of sequential read/write. > + * > + * ret > 0: success, found/reused a previous writeback work > + * ret = 0: success, allocated/queued a new writeback work > + * ret < 0: failed > + */ > +long flush_inode_page(struct page *page, struct address_space *mapping) > +{ > + struct backing_dev_info *bdi = mapping->backing_dev_info; > + struct inode *inode = mapping->host; > + pgoff_t offset = page->index; > + pgoff_t len = 0; > + struct wb_writeback_work *work; > + long ret = -ENOENT; > + > + if (unlikely(!inode)) > + goto out; > + > + len = 1; > + spin_lock_bh(&bdi->wb_lock); > + list_for_each_entry_reverse(work, &bdi->work_list, list) { > + if (work->inode != inode) > + continue; > + if (extend_writeback_range(work, offset)) { > + ret = len; > + offset = work->offset; > + len = work->nr_pages; > + break; > + } > + if (len++ > 30) /* do limited search */ > + break; > + } > + spin_unlock_bh(&bdi->wb_lock); I dont think this is a necessary or scalable optimisation. It won't be useful when there are lots of dirty inodes and dirty pages are tripped over in their hundreds or thousands - it'll just burn CPU doing nothing, and serialise against other reclaim and writeback work. It looks like a case of premature optimisation to me.... Anyway, if there's a page flush near to an existing piece of work the IO elevator should merge them appropriately. > +static long wb_flush_inode(struct bdi_writeback *wb, > + struct wb_writeback_work *work) > +{ > + loff_t start = work->offset; > + loff_t end = work->offset + work->nr_pages - 1; > + int wrote; > + > + wrote = __filemap_fdatawrite_range(work->inode->i_mapping, > + start << PAGE_CACHE_SHIFT, > + end << PAGE_CACHE_SHIFT, > + WB_SYNC_NONE); > + iput(work->inode); > + return wrote; > +} Out of curiousity, before going down the complex route did you try just calling this directly and seeing if it solved the problem? i.e. igrab() get start/end unlock page __filemap_fdatawrite_range() iput() I mean, much as I dislike the idea of writeback from the LRU, if all we need to do is call through .writepages() to do get decent IO from reclaim (when it occurs), then why do we need to add this async complexity to the generic writeback code to acheive the same end? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 6 02:22:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p667MP22089676 for ; Wed, 6 Jul 2011 02:22:26 -0500 X-ASG-Debug-ID: 1309936943-633e024d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 698944EE06; Wed, 6 Jul 2011 00:22:23 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id v90PRlJhbB6m04qY; Wed, 06 Jul 2011 00:22:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArsDACUKFE55LCkBgWdsb2JhbABTqAgVAQEWJiXNEQ6GKASjDg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 06 Jul 2011 16:52:22 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QeMRB-0007hh-HQ; Wed, 06 Jul 2011 17:22:21 +1000 Date: Wed, 6 Jul 2011 17:22:21 +1000 From: Dave Chinner To: Christoph Hellwig Cc: T?r?k Edwin , xfs-masters@oss.sgi.com, Linux Kernel Mailing List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110706072221.GZ1026@dastard> References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> <20110706070756.GA25800@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706070756.GA25800@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1309936945 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0198 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68115 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 03:07:56AM -0400, Christoph Hellwig wrote: > On Wed, Jul 06, 2011 at 02:04:03PM +1000, Dave Chinner wrote: > > > Although is there supposed to be a performance benefit from having > > > a separate log disk with XFS? > > > > There used to be. Now everyone just uses delayed logging, which is > > far faster and more scalable that even using an external log. > > Even with delayed logging external logs are a huge benefit if you > hit the log hard, e.g. for fsync intensive workloads. E.g. when > using fs_mark in fsync mode it gives speedups over 100% for the > setups I've tested. You'll see similar speedups for NFS server > loads that are log force heavy as well. Unless you have a good sized chunk of BBWC in front of your disks, in which case internal logs are just as fast. In fact, internal logs can are often faster in this case because an internal log on a 12 disk RAID6 array can sink a whole log more bandwidth than an external log on a 2-disk RAID0 mirror..... At least, that's what my hardware tells me. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:05:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6685Axc091427 for ; Wed, 6 Jul 2011 03:05:11 -0500 X-ASG-Debug-ID: 1309939507-353f026c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 69F7815EAD67; Wed, 6 Jul 2011 01:05:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id AuyOGXuGImhW8uG5; Wed, 06 Jul 2011 01:05:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeN6X-0001J0-8i; Wed, 06 Jul 2011 08:05:05 +0000 Date: Wed, 6 Jul 2011 04:05:05 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , T?r?k Edwin , xfs-masters@oss.sgi.com, Linux Kernel Mailing List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110706080505.GA2354@infradead.org> References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> <20110706070756.GA25800@infradead.org> <20110706072221.GZ1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706072221.GZ1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309939508 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68116 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 05:22:21PM +1000, Dave Chinner wrote: > Unless you have a good sized chunk of BBWC in front of your disks, > in which case internal logs are just as fast. In fact, internal logs > can are often faster in this case because an internal log on a 12 > disk RAID6 array can sink a whole log more bandwidth than an external > log on a 2-disk RAID0 mirror..... > > At least, that's what my hardware tells me. ;) Sure, a nice BBWC setup will give you good results. But it's generally much more expensive than a simple setup with a raid5 or 6 and a mirror for the log device. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:11:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668BeRZ091603 for ; Wed, 6 Jul 2011 03:11:41 -0500 X-ASG-Debug-ID: 1309939899-498001c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 546F515EADC1; Wed, 6 Jul 2011 01:11:39 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id MDfJK56VIrjj0YMr; Wed, 06 Jul 2011 01:11:39 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNCs-0002Ba-RD; Wed, 06 Jul 2011 08:11:38 +0000 Date: Wed, 6 Jul 2011 04:11:38 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 07/27] xfs: split xfs_itruncate_finish Subject: Re: [PATCH 07/27] xfs: split xfs_itruncate_finish Message-ID: <20110706081138.GA5361@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.580931463@bombadil.infradead.org> <1309926958.3381.61.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309926958.3381.61.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309939900 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68118 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 11:35:58PM -0500, Alex Elder wrote: > The above comment (if true--I haven't really checked) seems > like something significant to preserve. The comment at the goto label already catches the important bits of it. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:15:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668FCJ0091864 for ; Wed, 6 Jul 2011 03:15:12 -0500 X-ASG-Debug-ID: 1309940111-72b702f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 37B4C4F5D2; Wed, 6 Jul 2011 01:15:11 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id moaD1DnEH3c7rFxG; Wed, 06 Jul 2011 01:15:11 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNGJ-0002z0-8a; Wed, 06 Jul 2011 08:15:11 +0000 Date: Wed, 6 Jul 2011 04:15:11 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying Subject: Re: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying Message-ID: <20110706081511.GB5361@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.789209280@bombadil.infradead.org> <1309905378.1950.50.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309905378.1950.50.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309940112 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0169 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68117 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 05:36:18PM -0500, Alex Elder wrote: > > A large part of the issue is that XFS writes data out itself two times > > in the ->sync_fs method, overriding the lifelock protection in the core > > writeback code, and another issue is the lock-less xfs_ioend_wait call, > > which doesn't prevent new ioend from beeing queue up while waiting for > > the count to reach zero. > > The change affects only the first thing you mention here, not > the second. It does. We're also removing the xfs_ioend_wait done from xfs_sync_data/xfs_sync_inode_data. We still have another one in ->write_inode, though. > The i_iocount wait is not affected by your patch. We're only removing one of the two we're doing per inode now. > I'm OK with the change, but really prefer to have > the description not include stuff that just isn't > there. If you want me to commit this as-is, just > say so and I will. Otherwise, post an update and > I'll use that. In any case, you can consider this > reviewed by me. If you have an idea how to reword the description send it my way. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:28:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668ScFK093208 for ; Wed, 6 Jul 2011 03:28:38 -0500 X-ASG-Debug-ID: 1309940917-4980024f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1778D15EB182 for ; Wed, 6 Jul 2011 01:28:37 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id uZB3WHmYEjsLwYNC for ; Wed, 06 Jul 2011 01:28:37 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNTH-0005Cv-5Z; Wed, 06 Jul 2011 08:28:35 +0000 Date: Wed, 6 Jul 2011 04:28:35 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Subject: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Message-ID: <20110706082835.GA19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.197942925@bombadil.infradead.org> <20110706015705.GI1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706015705.GI1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309940918 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68118 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 11:57:05AM +1000, Dave Chinner wrote: > > - * fit into the literal area of the inode. > > + * Small directories are packed as tightly as possible so as to fit into the > > + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header > > + * followed by zero or more xfs_dir2_sf_entry structures. Due the different > > + * inode number storage sized and the variable length name filed in > size field > > + * the xfs_dir2_sf_entry all these structure are variable length, and the > structures > > + * accessors in this file need to be used to iterate over them. > should be Thanks! > > -static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_t *sfp) > > +static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_hdr_t *sfp) > > Probably should split this onto two lines. I'll make sure it'll be fine in the end, not sure which patch it'll get folded into. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:33:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668Xl8k093757 for ; Wed, 6 Jul 2011 03:33:48 -0500 X-ASG-Debug-ID: 1309941226-54c900450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 276201EE9496; Wed, 6 Jul 2011 01:33:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 4EAB4VfVZ4j6DTIs; Wed, 06 Jul 2011 01:33:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNYH-0005zs-Ng; Wed, 06 Jul 2011 08:33:45 +0000 Date: Wed, 6 Jul 2011 04:33:45 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Subject: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf Message-ID: <20110706083345.GB19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.197942925@bombadil.infradead.org> <1309922658.3381.22.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309922658.3381.22.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941227 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0295 1.0000 -1.8298 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.73 X-Barracuda-Spam-Status: No, SCORE=-1.73 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68119 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 10:24:18PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > The list field of it is never cactually used, so all uses can simply be > > replaced with the xfs_dir2_sf_hdr_t type that it has as first member. > > > > Signed-off-by: Christoph Hellwig > > Looks like a lot of places could be converted to use > "struct xfs_dir2_sf_hdr" rather than the typedef, but > it's not worth re-posting for that. (Plus I suspect > such changes may be in forthcoming patches...) In general they should, but I try to avoid that where it means massive formatting changes, as that just clutters up the patch. > > + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; > > + > > ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); > > ASSERT(dp->i_df.if_u1.if_data != NULL); > > ASSERT(oldsfp != NULL); What for? We'll just dereference it later anyway. > > static xfs_ino_t > > xfs_dir2_sf_get_ino( > > - struct xfs_dir2_sf *sfp, > > + struct xfs_dir2_sf_hdr *hdr, > > I think I like the name "hdr" better than "sfp"; > was it just too widespread a change to do a > similar rename elsewhere? (xfs_dir2_block_to_sf() > uses "sfhp" already, though I like just "hdr".) Yeah, I tried to keep the change small in general. If people like it I can do a big sweep to convert stuff to struct types and common names as a follow-on. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:34:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668YTjB093796 for ; Wed, 6 Jul 2011 03:34:29 -0500 X-ASG-Debug-ID: 1309941268-1c0e01d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D9041EE94BE; Wed, 6 Jul 2011 01:34:28 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ltu4tyw3vwVsMtSZ; Wed, 06 Jul 2011 01:34:28 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNYx-00060d-Nt; Wed, 06 Jul 2011 08:34:27 +0000 Date: Wed, 6 Jul 2011 04:34:27 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry Subject: Re: [PATCH 15/27] xfs: cleanup the defintion of struct xfs_dir2_sf_entry Message-ID: <20110706083427.GC19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.415405585@bombadil.infradead.org> <1309923211.3381.27.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309923211.3381.27.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941268 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1549 1.0000 -1.0736 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.97 X-Barracuda-Spam-Status: No, SCORE=-0.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68119 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 10:33:31PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > Remove the inumber member which is at a variable offset after the actual > > name, and make name a real variable sized C99 array instead of the incorrect > > one-sized array which confuses (not only) gcc. Based on this clean up > > the helpers to calculate the entry size. > > > > Signed-off-by: Christoph Hellwig > > Why was the inode put after then name in the > first place? I've wondered that, too. But it's been long before my time. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:35:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668ZrhV094086 for ; Wed, 6 Jul 2011 03:35:53 -0500 X-ASG-Debug-ID: 1309941331-498c02850000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA41813207BC for ; Wed, 6 Jul 2011 01:35:31 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 2nCvtREdM6VbXqMB for ; Wed, 06 Jul 2011 01:35:31 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNZy-0006iH-Q7; Wed, 06 Jul 2011 08:35:30 +0000 Date: Wed, 6 Jul 2011 04:35:30 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block Subject: Re: [PATCH 16/27] xfs: avoid usage of struct xfs_dir2_block Message-ID: <20110706083530.GD19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.621819832@bombadil.infradead.org> <20110706021935.GK1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706021935.GK1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941331 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68120 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 12:19:35PM +1000, Dave Chinner wrote: > Took me a moment to realise what this does - turns the byte swap > into a compile-time operation rather than a runtime operation. > Nice. > > Perhaps we should do that same optimisation in other magic number > checks around the place? We should, and I should have been more consistant about it. In fact I probably should split it into a separate patch. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:37:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668bGZQ094307 for ; Wed, 6 Jul 2011 03:37:16 -0500 X-ASG-Debug-ID: 1309941435-762d00860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0014915B54D2 for ; Wed, 6 Jul 2011 01:37:15 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id mXswYsh5uCJ8RqIv for ; Wed, 06 Jul 2011 01:37:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNbe-0006k6-Rl; Wed, 06 Jul 2011 08:37:14 +0000 Date: Wed, 6 Jul 2011 04:37:14 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block Subject: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block Message-ID: <20110706083714.GE19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.827598983@bombadil.infradead.org> <20110706023157.GL1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706023157.GL1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941436 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0204 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68120 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 12:31:57PM +1000, Dave Chinner wrote: > > btp = xfs_dir2_block_tail_p(mp, hdr); > > - ptr = (char *)block->u; > > + ptr = (char *)(hdr + 1); > > endptr = (char *)xfs_dir2_block_leaf_p(btp); > > That is slightly less obvious what it is doing. It's jumping over > the entire header, but could easily be confused with jumping one > byte in. > > Perhaps adding a wrapper e.g. xfs_dir2_block_data_p(hdr) to match > the xfs_dir2_block_tail_p() and xfs_dir2_block_leaf_p() wrappers, > and converting all the other cases to use this as well? I had that in the initial version, but given that we usually use the result as char, and not one of the two types of the union just made the code very messy. I can try it again, maybe as a add-on patch at the end so that we can decide if it actually improves anything. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:43:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668hwmJ095181 for ; Wed, 6 Jul 2011 03:43:59 -0500 X-ASG-Debug-ID: 1309941838-0f1202320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 70F914E40F5 for ; Wed, 6 Jul 2011 01:43:58 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ANQp4boofJYPox1n for ; Wed, 06 Jul 2011 01:43:58 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNi9-0007ku-LT; Wed, 06 Jul 2011 08:43:57 +0000 Date: Wed, 6 Jul 2011 04:43:57 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Subject: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Message-ID: <20110706084357.GF19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.003170984@bombadil.infradead.org> <20110706030228.GM1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706030228.GM1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941838 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68119 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 01:02:28PM +1000, Dave Chinner wrote: > > @@ -251,12 +258,13 @@ xfs_dir2_data_freeinsert( > > xfs_dir2_data_free_t new; /* new bestfree entry */ > > > > #ifdef __KERNEL__ > > - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || > > - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); > > + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || > > + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); > > #endif > > You kill the ifdef __KERNEL__ there. If I do it I'd rather do it as a sepaarate patch, and after actually testing it with xfsprogs. > > if (!needscan) { > > - xfs_dir2_data_freeremove(d, dfp, needlogp); > > - (void)xfs_dir2_data_freeinsert(d, newdup, > > + xfs_dir2_data_freeremove(hdr, dfp, needlogp); > > + (void)xfs_dir2_data_freeinsert(hdr, newdup, > > needlogp); > > - (void)xfs_dir2_data_freeinsert(d, newdup2, > > + (void)xfs_dir2_data_freeinsert(hdr, newdup2, > > needlogp); > > } > > } > > Kill the (void) casts? > Sounds fine. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:45:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668jpuv095367 for ; Wed, 6 Jul 2011 03:45:51 -0500 X-ASG-Debug-ID: 1309941950-083900420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE20415EAEEC; Wed, 6 Jul 2011 01:45:50 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YoEi1wSj446MJdn0; Wed, 06 Jul 2011 01:45:50 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNjx-0008Vr-O6; Wed, 06 Jul 2011 08:45:49 +0000 Date: Wed, 6 Jul 2011 04:45:49 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Subject: Re: [PATCH 18/27] xfs: avoid usage of struct xfs_dir2_data Message-ID: <20110706084549.GG19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.003170984@bombadil.infradead.org> <1309923502.3381.35.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309923502.3381.35.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309941950 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0024 1.0000 -2.0052 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68120 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 10:38:22PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > In most places we can simply pass around and use the struct xfs_dir2_data_hdr, > > which is the first and most important member of struct xfs_dir2_data instead > > of the full structure. > > > > Signed-off-by: Christoph Hellwig > > In xfs_dir2_data_freescan() you get the address of the > dir2_data_t by forcibly casting the address of the > header to that type. We all know that's fine, but > it's an unsavory practice. Why don't you pass the > full dir2_data_t in that case where it's needed? > Are you simply trying to avoid passing *any* pointers > to variable-sized types? I'm restricting the dir2_data_t scope to where we needed it, to kill it (and thus the cast) off entirely in the next patch. > (Update: I think you eliminate that line in the next > patch anyway...) Exactly! From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 03:48:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p668mLrB095774 for ; Wed, 6 Jul 2011 03:48:21 -0500 X-ASG-Debug-ID: 1309942099-498e02cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8569915EB112; Wed, 6 Jul 2011 01:48:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id RhQFQyG7nKtzao7q; Wed, 06 Jul 2011 01:48:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeNmM-00006r-RQ; Wed, 06 Jul 2011 08:48:18 +0000 Date: Wed, 6 Jul 2011 04:48:18 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry Subject: Re: [PATCH 20/27] xfs: cleanup the defintion of struct xfs_dir2_data_entry Message-ID: <20110706084818.GH19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.386730624@bombadil.infradead.org> <1309923872.3381.41.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309923872.3381.41.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309942100 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0031 1.0000 -2.0010 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.90 X-Barracuda-Spam-Status: No, SCORE=-1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68120 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 10:44:32PM -0500, Alex Elder wrote: > Maybe put the comment about the tag field here, as > was done elsewhere. (But the pictures are even > better...) I'll see what I can do about it. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 04:07:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_55 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6697uK2098917 for ; Wed, 6 Jul 2011 04:07:57 -0500 X-ASG-Debug-ID: 1309943274-468e00da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 27A1B4F2D9 for ; Wed, 6 Jul 2011 02:07:54 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id DbeAsbAwgR0EhPIm for ; Wed, 06 Jul 2011 02:07:54 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeO5K-0003my-5R; Wed, 06 Jul 2011 09:07:54 +0000 Date: Wed, 6 Jul 2011 05:07:54 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Subject: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Message-ID: <20110706090754.GI19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.763430916@bombadil.infradead.org> <20110706034421.GQ1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706034421.GQ1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309943275 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 01:44:21PM +1000, Dave Chinner wrote: > Hmmmm. I wonder if it is a hold-over from the days of 4GB AGs? Probably. > That would have meant inode numbers used 6 bits for the chunk index, > 2^22 - 2^6 for the agbno and 2^32 for the agno, which gives 54 bits > maximum inode number and so XFS_MAXINUMBER @ 56 bits makes sense, as > does the zero high byte in the dir2 inode number. > > Now we have 2^30 bits for the agbno+chunk index, and 32 bits for the > agno, so inode numbers can reach 62 bits, which is outside the range > of the 56-bit MAXINUMBER limit. > > So my questions are now this: > - did we lose that checking when we converted the rest of > the directory code to use the generic byte swapping > functions? The history lesson tells us: Before my commit "Fix and streamline directory inode number handling" we didn't do any capping for them in Linux since the early days of adding byte swaping support. However my commit was modelled after the original IRIX code, which had the same behaviour as my code in the same XFS_DI_LO/HI helpers. Even back then XFS_GET_DIR_INO8/XFS_SET_DIR_INO8 were only used by the dir2_sf code, but the dirv1 used a similar XFS_GET_DIR_INO macro for all read accesses, which had the same limitation. Writes on the other hand were done using XFS_DIR_SF_PUT_DIRINO (even for non-shortform directories), which did not discard the most significant bytes. > - do we need to increase XFS_MAXINUMBER to reflect the > current reality of 1TB AGs and simply ignore the zero high > byte restriction? I think so. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 04:11:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p669BJXV099202 for ; Wed, 6 Jul 2011 04:11:20 -0500 X-ASG-Debug-ID: 1309943478-762d01600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5223415EB427 for ; Wed, 6 Jul 2011 02:11:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id lJD4dgr8HxF3TJQ4 for ; Wed, 06 Jul 2011 02:11:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeO8c-0004gy-Hr; Wed, 06 Jul 2011 09:11:18 +0000 Date: Wed, 6 Jul 2011 05:11:18 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Subject: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Message-ID: <20110706091118.GJ19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.536262104@bombadil.infradead.org> <20110706035411.GU1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706035411.GU1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309943479 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68122 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 01:54:11PM +1000, Dave Chinner wrote: > Is it worthwhile tagging all these as READ_META and WRITE_META? > Though that probably needs to be done as a separate commit... Right now they preempt synchronous writes, which is not something we want. There is a patch out on lkml removing that hack, at which point we should tag them as _META to make blktrace output more useful. > > /* flags used only internally */ > > -#define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ > > -#define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ > > -#define _XBF_KMEM (1 << 20)/* backed by heap memory */ > > -#define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ > > +#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ > > +#define _XBF_KMEM (1 << 21)/* backed by heap memory */ > > +#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ > > Might be worthwhile cleaning up the stray tab before _XBF_KMEM > there. done. From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 04:11:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p669Bt2I099386 for ; Wed, 6 Jul 2011 04:11:55 -0500 X-ASG-Debug-ID: 1309943514-54d500ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0849D179B345; Wed, 6 Jul 2011 02:11:54 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id uB15vVwrpy9SubjC; Wed, 06 Jul 2011 02:11:54 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeO9C-0004i8-9Q; Wed, 06 Jul 2011 09:11:54 +0000 Date: Wed, 6 Jul 2011 05:11:54 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Subject: Re: [PATCH 26/27] xfs: cleanup I/O-related buffer flags Message-ID: <20110706091154.GK19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094607.536262104@bombadil.infradead.org> <1309925355.3381.55.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309925355.3381.55.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309943515 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1557 1.0000 -1.0693 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.97 X-Barracuda-Spam-Status: No, SCORE=-0.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68121 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 11:09:15PM -0500, Alex Elder wrote: > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER > > to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and > > XBF_FLUSH to allow more fine grained control over the bio flags. Also > > cleanup processing of the flags in _xfs_buf_ioapply to make more sense, > > and renumber the sparse flag number space to group flags by purpose. > > > > Signed-off-by: Christoph Hellwig > > Interesting that _XBF_RUN_QUEUES was never actually used. > The new names are much more understandable. Looks like > READ_META and WRITE_META are now effectively gone... They have been gone for a while. From aelder@sgi.com Wed Jul 6 08:32:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66DWLDt121805 for ; Wed, 6 Jul 2011 08:32:21 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6C48F8F8039; Wed, 6 Jul 2011 06:32:18 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 08:32:18 -0500 Subject: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110706064209.GB4508@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <1309927217.3381.65.camel@doink> <20110706064209.GB4508@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 08:32:17 -0500 Message-ID: <1309959137.1931.1.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 02:42 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 11:40:17PM -0500, Alex Elder wrote: > > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > > This is my current patch queue for Linux 3.1. Compared to the last > > > posting all review comments were incorporated and two additional trivial > > > patches were added. The ->writepages implementation was dropped for now, > > > given the bad situation of kswap-originating writeback, but I'll repost > > > the fixed version separately to get feedback on the updated version. > > > > I mentioned a bunch of fairly minor issues with > > this series; I don't believe I found anything > > that was actually incorrect. Quite a few of > > them consist of small but good cleanups. > > > > I'll give you a chance to re-post them (or > > point me at a repository to pull from). At > > this point I trust you'll do the right thing > > so I'm ready to use what you give me. > > > > For now I'm testing overnight with this > > latest version of the patches. > > I'll redo the series after going through your and Daves comments. No unexpected errors overnight. I'm going to try to fit Dave's for-3.0 patch(es) in before committing these, but whenever you've got your updates done (today preferably) I'll take them. -Alex From aelder@sgi.com Wed Jul 6 08:36:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66Da5O2122225 for ; Wed, 6 Jul 2011 08:36:05 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3DC36AC002; Wed, 6 Jul 2011 06:36:02 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 08:36:01 -0500 Subject: Re: [PATCH 02/27] xfs: re-enable non-blocking behaviour in xfs_map_blocks From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110706063700.GA4508@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094602.465074143@bombadil.infradead.org> <1309905319.1950.48.camel@doink> <20110706063700.GA4508@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 08:36:01 -0500 Message-ID: <1309959361.1931.2.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 02:37 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 05:35:19PM -0500, Alex Elder wrote: > > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > > The non-blockig behaviour in xfs_map_blocks currently is conditional on > > > having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. > > > The latter used to be used by both pdflush, kswapd and a few other places > > > in older kernels, but has been fading out starting with the introduction > > > of the per-bdi flusher threads. > > > > > > Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back > > > the behaviour we want. > > > > The subject line should refer to xfs_vm_writepage() > > (not xfs_map_blocks()). Unless I hear otherwise I > > will plan to change that for you. > > Well, the actual xfs_ilock_nowait call is in xfs_map_blocks, the logic > controlling it in xfs_vm_writepage, so either one is fine. You're right. Nevermind. -Alex From BATV+2eef70df75a528eb7024+2873+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 6 08:43:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66Dhjj5123551 for ; Wed, 6 Jul 2011 08:43:45 -0500 X-ASG-Debug-ID: 1309959823-772803680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C66CD1EE94C3; Wed, 6 Jul 2011 06:43:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id xXSboT5VBboV15eg; Wed, 06 Jul 2011 06:43:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeSOF-00082G-Da; Wed, 06 Jul 2011 13:43:43 +0000 Date: Wed, 6 Jul 2011 09:43:43 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 Subject: Re: [PATCH 00/27] patch queue for Linux 3.1, V2 Message-ID: <20110706134343.GA27233@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <1309927217.3381.65.camel@doink> <20110706064209.GB4508@infradead.org> <1309959137.1931.1.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309959137.1931.1.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1309959824 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2865 1.0000 -0.4065 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.31 X-Barracuda-Spam-Status: No, SCORE=-0.31 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 08:32:17AM -0500, Alex Elder wrote: > No unexpected errors overnight. I'm going to try > to fit Dave's for-3.0 patch(es) in before committing > these, but whenever you've got your updates done (today > preferably) I'll take them. I fear you'll have to wait until tomorrow. While I've implemented most of the suggestions already I'll be out early today and haven't even started an xfsqa run yet. From aelder@sgi.com Wed Jul 6 09:05:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66E5SFj126834 for ; Wed, 6 Jul 2011 09:05:28 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 633F5AC00C; Wed, 6 Jul 2011 07:05:25 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 09:05:24 -0500 Subject: Re: [PATCH 07/27] xfs: split xfs_itruncate_finish From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110706081138.GA5361@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.580931463@bombadil.infradead.org> <1309926958.3381.61.camel@doink> <20110706081138.GA5361@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 09:05:24 -0500 Message-ID: <1309961124.1931.13.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 04:11 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 11:35:58PM -0500, Alex Elder wrote: > > The above comment (if true--I haven't really checked) seems > > like something significant to preserve. > > The comment at the goto label already catches the important bits of it. I was referring to this: Aborting from this point might lose some blocks in the file system, but oh well. I don't actually understand what the comment means, but if you feel it isn't important that's fine. -Alex From aelder@sgi.com Wed Jul 6 09:59:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66Exr7H128508 for ; Wed, 6 Jul 2011 09:59:53 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 167788F8052; Wed, 6 Jul 2011 07:59:50 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 09:59:49 -0500 Subject: Re: [PATCH 08/27] xfs: improve sync behaviour in the fact of aggressive dirtying From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110706081511.GB5361@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094603.789209280@bombadil.infradead.org> <1309905378.1950.50.camel@doink> <20110706081511.GB5361@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 09:59:49 -0500 Message-ID: <1309964389.1931.36.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 04:15 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 05:36:18PM -0500, Alex Elder wrote: > > > A large part of the issue is that XFS writes data out itself two times > > > in the ->sync_fs method, overriding the lifelock protection in the core > > > writeback code, and another issue is the lock-less xfs_ioend_wait call, > > > which doesn't prevent new ioend from beeing queue up while waiting for > > > the count to reach zero. > > > > The change affects only the first thing you mention here, not > > the second. > > It does. We're also removing the xfs_ioend_wait done from > xfs_sync_data/xfs_sync_inode_data. We still have another one in > ->write_inode, though. OK, now I see what you're talking about. I guess the way it was stated I expected that the code would now *prevent* new ioends from being queued while waiting. > > > The i_iocount wait is not affected by your patch. > > We're only removing one of the two we're doing per inode now. > > > I'm OK with the change, but really prefer to have > > the description not include stuff that just isn't > > there. If you want me to commit this as-is, just > > say so and I will. Otherwise, post an update and > > I'll use that. In any case, you can consider this > > reviewed by me. > > If you have an idea how to reword the description send it my way. Here's an attempt. (It also gives you a chance to correct my understanding...) A large part of the issue is that XFS writes data out itself two times in the ->sync_fs method, overriding the livelock protection in the core writeback code. This patch removes these XFS-internal sync calls and relies on the VFS to do it's work just like all other filesystems do. Another issue is the lock-less xfs_ioend_wait() call, which doesn't prevent new ioends from being queued up while waiting for the count to reach zero. Removing the second SYNC_WAIT call to xfs_sync_data() eliminates one place this is used unnecessarily by avoiding the wait request at the end of xfs_sync_inode_data(). In most cases there is no need to wait for ongoing writes to make it to disk, as long as those queued at the time of a sync request get flushed out. We still wait like this in ->write_inode, and we should remove that as well, but that's material for a separate commit. -Alex From aelder@sgi.com Wed Jul 6 10:05:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66F5cpC128753 for ; Wed, 6 Jul 2011 10:05:38 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6B5D78F8049; Wed, 6 Jul 2011 08:05:35 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 10:05:35 -0500 Subject: Re: [PATCH 14/27] xfs: kill struct xfs_dir2_sf From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110706083345.GB19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.197942925@bombadil.infradead.org> <1309922658.3381.22.camel@doink> <20110706083345.GB19861@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 10:05:34 -0500 Message-ID: <1309964734.1931.42.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 04:33 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 10:24:18PM -0500, Alex Elder wrote: > > On Fri, 2011-07-01 at 05:43 -0400, Christoph Hellwig wrote: > > > The list field of it is never cactually used, so all uses can simply be > > > replaced with the xfs_dir2_sf_hdr_t type that it has as first member. > > > > > > Signed-off-by: Christoph Hellwig > > > > Looks like a lot of places could be converted to use > > "struct xfs_dir2_sf_hdr" rather than the typedef, but > > it's not worth re-posting for that. (Plus I suspect > > such changes may be in forthcoming patches...) > > In general they should, but I try to avoid that where it means > massive formatting changes, as that just clutters up the patch. Understood. > > > + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; > > > + > > > ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); > > > ASSERT(dp->i_df.if_u1.if_data != NULL); > > > > ASSERT(oldsfp != NULL); > > What for? We'll just dereference it later anyway. It was simply because you already assigned oldsfp the value you were asserting was null. Your way states something about the source value though, so I guess it more directly states the condition you're assuming here. > > > static xfs_ino_t > > > xfs_dir2_sf_get_ino( > > > - struct xfs_dir2_sf *sfp, > > > + struct xfs_dir2_sf_hdr *hdr, > > > > I think I like the name "hdr" better than "sfp"; > > was it just too widespread a change to do a > > similar rename elsewhere? (xfs_dir2_block_to_sf() > > uses "sfhp" already, though I like just "hdr".) > > Yeah, I tried to keep the change small in general. If people like it > I can do a big sweep to convert stuff to struct types and common names > as a follow-on. No pressing need. If you're inspired to do it, fine, but it's readable despite the inconsistency. -Alex From aelder@sgi.com Wed Jul 6 10:11:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66FBpxp128958 for ; Wed, 6 Jul 2011 10:11:51 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 058258F804C; Wed, 6 Jul 2011 08:11:50 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 10:11:50 -0500 Subject: Re: [PATCH 17/27] xfs: kill struct xfs_dir2_block From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , In-Reply-To: <20110706083714.GE19861@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094605.827598983@bombadil.infradead.org> <20110706023157.GL1026@dastard> <20110706083714.GE19861@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 10:11:50 -0500 Message-ID: <1309965110.1931.44.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-06 at 04:37 -0400, Christoph Hellwig wrote: > On Wed, Jul 06, 2011 at 12:31:57PM +1000, Dave Chinner wrote: > > > btp = xfs_dir2_block_tail_p(mp, hdr); > > > - ptr = (char *)block->u; > > > + ptr = (char *)(hdr + 1); > > > endptr = (char *)xfs_dir2_block_leaf_p(btp); > > > > That is slightly less obvious what it is doing. It's jumping over > > the entire header, but could easily be confused with jumping one > > byte in. I actually have become pretty accustomed to this idiom and have a (small) preference for the way it is here rather than using a new macro that does the same thing. Either way is fine with me though. -Alex > > Perhaps adding a wrapper e.g. xfs_dir2_block_data_p(hdr) to match > > the xfs_dir2_block_tail_p() and xfs_dir2_block_leaf_p() wrappers, > > and converting all the other cases to use this as well? > > I had that in the initial version, but given that we usually use > the result as char, and not one of the two types of the union just > made the code very messy. > > I can try it again, maybe as a add-on patch at the end so that we can > decide if it actually improves anything. > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From jweiner@redhat.com Wed Jul 6 10:13:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66FDD5Y129008 for ; Wed, 6 Jul 2011 10:13:13 -0500 X-ASG-Debug-ID: 1309965192-240b01780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B59E1EE993D for ; Wed, 6 Jul 2011 08:13:12 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id pF5ASxA1syovPzPn for ; Wed, 06 Jul 2011 08:13:12 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p66FCWWk023785 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 6 Jul 2011 11:12:32 -0400 Received: from dexter.home.cmpxchg.org (ovpn-113-28.phx2.redhat.com [10.3.113.28]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p66FCT67031537 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 6 Jul 2011 11:12:31 -0400 Date: Wed, 6 Jul 2011 17:12:29 +0200 From: Johannes Weiner To: Dave Chinner Cc: Wu Fengguang , Christoph Hellwig , Mel Gorman , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110706151229.GA1998@redhat.com> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110704032534.GD1026@dastard> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1309965193 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 04, 2011 at 01:25:34PM +1000, Dave Chinner wrote: > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > Christoph, > > > > On Fri, Jul 01, 2011 at 05:33:05PM +0800, Christoph Hellwig wrote: > > > Johannes, Mel, Wu, > > > > > > Dave has been stressing some XFS patches of mine that remove the XFS > > > internal writeback clustering in favour of using write_cache_pages. > > > > > > As part of investigating the behaviour he found out that we're still > > > doing lots of I/O from the end of the LRU in kswapd. Not only is that > > > pretty bad behaviour in general, but it also means we really can't > > > just remove the writeback clustering in writepage given how much > > > I/O is still done through that. > > > > > > Any chance we could the writeback vs kswap behaviour sorted out a bit > > > better finally? > > > > I once tried this approach: > > > > http://www.spinics.net/lists/linux-mm/msg09202.html > > > > It used a list structure that is not linearly scalable, however that > > part should be independently improvable when necessary. > > I don't think that handing random writeback to the flusher thread is > much better than doing random writeback directly. Yes, you added > some clustering, but I'm still don't think writing specific pages is > the best solution. > > > The real problem was, it seem to not very effective in my test runs. > > I found many ->nr_pages works queued before the ->inode works, which > > effectively makes the flusher working on more dispersed pages rather > > than focusing on the dirty pages encountered in LRU reclaim. > > But that's really just an implementation issue related to how you > tried to solve the problem. That could be addressed. > > However, what I'm questioning is whether we should even care what > page memory reclaim wants to write - it seems to make fundamentally > bad decisions from an IO persepctive. > > We have to remember that memory reclaim is doing LRU reclaim and the > flusher threads are doing "oldest first" writeback. IOWs, both are trying > to operate in the same direction (oldest to youngest) for the same > purpose. The fundamental problem that occurs when memory reclaim > starts writing pages back from the LRU is this: > > - memory reclaim has run ahead of IO writeback - > > The LRU usually looks like this: > > oldest youngest > +---------------+---------------+--------------+ > clean writeback dirty > ^ ^ > | | > | Where flusher will next work from > | Where kswapd is working from > | > IO submitted by flusher, waiting on completion > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > got ahead of writeback without being throttled - it's passed over > all the pages currently under writeback and is trying to write back > pages that are *newer* than what writeback is working on. IOWs, it > starts trying to do the job of the flusher threads, and it does that > very badly. > > The $100 question is ∗why is it getting ahead of writeback*? Unless you have a purely sequential writer, the LRU order is - at least in theory - diverging away from the writeback order. According to the reasoning behind generational garbage collection, they should in fact be inverse to each other. The oldest pages still in use are the most likely to be still needed in the future. In practice we only make a generational distinction between used-once and used-many, which manifests in the inactive and the active list. But still, when reclaim starts off with a localized writer, the oldest pages are likely to be at the end of the active list. So pages from the inactive list are likely to be written in the right order, but at the same time active pages are even older, thus written before them. Memory reclaim starts with the inactive pages, and this is why it gets ahead. Then there is also the case where a fast writer pushes dirty pages to the end of the LRU list, of course, but you already said that this is not applicable to your workload. My point is that I don't think it's unexpected that dirty pages come off the inactive list in practice. It just sucks how we handle them. From stan@hardwarefreak.com Wed Jul 6 14:30:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66JUvSf147943 for ; Wed, 6 Jul 2011 14:30:57 -0500 X-ASG-Debug-ID: 1309980656-592701890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4095D50E69 for ; Wed, 6 Jul 2011 12:30:56 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id g971xFdksMgpqLJn for ; Wed, 06 Jul 2011 12:30:56 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 41CA26C119 for ; Wed, 6 Jul 2011 14:30:56 -0500 (CDT) Message-ID: <4E14B7EE.2060005@hardwarefreak.com> Date: Wed, 06 Jul 2011 14:30:54 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> <20110706070756.GA25800@infradead.org> <20110706072221.GZ1026@dastard> In-Reply-To: <20110706072221.GZ1026@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1309980657 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4980 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68163 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/6/2011 2:22 AM, Dave Chinner wrote: > log on a 2-disk RAID0 mirror..... Is that a typo Dave or a configuration I just hadn't heard of? Or did you intend a slash between RAID0/mirror meaning either/or? Just trying to prevent confusion of future Googlers. -- Stan From aelder@sgi.com Wed Jul 6 15:45:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66KjXcj159555 for ; Wed, 6 Jul 2011 15:45:33 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 122448F8049; Wed, 6 Jul 2011 13:45:30 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 6 Jul 2011 15:45:29 -0500 Subject: Re: [PATCH 1/5] xfs: unpin stale inodes directly in IOP_COMMITTED From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1309757260-5484-2-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-2-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 6 Jul 2011 15:45:29 -0500 Message-ID: <1309985129.1931.71.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 8bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > From: Dave Chinner > > When inodes are marked stale in a transaction, they are treated > specially when the iinode log item is being inserted into the AIL. > It trieÑ• to avoid moving the log item forward in the AIL due to a > race condition with the writing the underlying buffer back to disk. > The was "fixed" in commit de25c18 ("xfs: avoid moving stale inodes in > the AIL"). > > To avoid moving the item forward, we return a LSN smaller than the > commit_lsn of the completing transaction, thereby trying to trick > the commit code into not moving the inode forward at all. I'm not > sure this ever worked as intended - it assumes the inode is already > in the AIL, but I don't think the returned LSN would have been small > enough to prevent moving the inode. It appears that the reason it > worked is that the lower LSN of the inodes meant they were inserted > into the AIL and flushed before the inode buffer (which was moved to > the commit_lsn of the transaction). > > The big problem is that with delayed logging, the returning of the > different LSN means insertion takes the slow, non-bulk path. Worse > yet is that insertion is to a position -before- the commit_lsn so it > is doing a AIL traversal on every insertion, and has to walk over > all the items that have already been inserted into the AIL. It's > expensive. > > To compound the matter further, with delayed logging inodes are > likely to go from clean to stale in a single checkpoint, which means > they aren't even in the AIL at all when we come across them at AIL > insertion time. Hence these were all getting inserted into the AIL > when they simply do not need to be as inodes marked XFS_ISTALE are > never written back. > > Transactional/recovery integrity is maintained in this case by the > other items in the unlink transaction that were modified (e.g. the > AGI btree blocks) and committed in the same checkpoint. > > So to fix this, simply unpin the stale inodes directly in > xfs_inode_item_committed() and return -1 to indicate that the AIL > insertion code does not need to do any further processing of these > inodes. > > Signed-off-by: Dave Chinner I suggest one comment update, which I can do for you or it can be done at another time. But this looks good. I'll send it to Linus tomorrow. Reviewed-by: Alex Elder > --- > fs/xfs/xfs_inode_item.c | 14 ++++++++------ > fs/xfs/xfs_trans.c | 2 +- > 2 files changed, 9 insertions(+), 7 deletions(-) > > diff --git a/fs/xfs/xfs_inode_item.c b/fs/xfs/xfs_inode_item.c > index 09983a3..b1e88d5 100644 . . . > diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c > index 7c7bc2b..3744337 100644 > --- a/fs/xfs/xfs_trans.c > +++ b/fs/xfs/xfs_trans.c > @@ -1474,7 +1474,7 @@ xfs_trans_committed_bulk( > lip->li_flags |= XFS_LI_ABORTED; > item_lsn = IOP_COMMITTED(lip, commit_lsn); > > - /* item_lsn of -1 means the item was freed */ > + /* item_lsn of -1 means the item needs no further processing */ Probably should update the corresponding comment in xfs_trans_item_committed() too. I have done this in my local copy. > if (XFS_LSN_CMP(item_lsn, (xfs_lsn_t)-1) == 0) > continue; > From stan@hardwarefreak.com Wed Jul 6 17:04:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66M4kTV171399 for ; Wed, 6 Jul 2011 17:04:46 -0500 X-ASG-Debug-ID: 1309989884-56b503640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 98053179C4B7 for ; Wed, 6 Jul 2011 15:04:44 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id ZEZJ3cixhlRJkjtK for ; Wed, 06 Jul 2011 15:04:44 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 54C066C119 for ; Wed, 6 Jul 2011 17:04:44 -0500 (CDT) Message-ID: <4E14DBFA.3040302@hardwarefreak.com> Date: Wed, 06 Jul 2011 17:04:42 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> <20110706070756.GA25800@infradead.org> <20110706072221.GZ1026@dastard> <20110706080505.GA2354@infradead.org> In-Reply-To: <20110706080505.GA2354@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1309989885 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0780 1.0000 -1.5258 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.93 X-Barracuda-Spam-Status: No, SCORE=-0.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68169 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/6/2011 3:05 AM, Christoph Hellwig wrote: > On Wed, Jul 06, 2011 at 05:22:21PM +1000, Dave Chinner wrote: >> Unless you have a good sized chunk of BBWC in front of your disks, >> in which case internal logs are just as fast. In fact, internal logs >> can are often faster in this case because an internal log on a 12 >> disk RAID6 array can sink a whole log more bandwidth than an external >> log on a 2-disk RAID0 mirror..... >> >> At least, that's what my hardware tells me. ;) > > Sure, a nice BBWC setup will give you good results. But it's generally > much more expensive than a simple setup with a raid5 or 6 and a mirror for > the log device. If you're talking consumer grade gear, well, sure, as there is no such thing as a consumer hardware RAID card. In the world of branded OEM 'enterprise' gear, you can get a BBWC RAID card solution for little more than two drives. Are most XFS admins running consumer or enterprise grade gear? LSI 9260-4i w/512MB BBWC = $485 USD Intel RES2SV24024P expander = $280 USD Total = $765 USD 2 HP 146GB 10kRPM SAS drives = $520 USD. I threw in the expander as this LSI card is thoroughly limited with only 4 ports. It's also cheaper going this route than buying the sister card with 8 ports, yet with the same performance, and 12 more total ports. -- Stan From kkeller@sonic.net Wed Jul 6 17:51:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66MpYUv206505 for ; Wed, 6 Jul 2011 17:51:34 -0500 X-ASG-Debug-ID: 1309992693-313d03510000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A905E87A26 for ; Wed, 6 Jul 2011 15:51:33 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id uhQ4pgf2VziRicHc for ; Wed, 06 Jul 2011 15:51:33 -0700 (PDT) Received: from webmail.sonic.net (a.webmail.sonic.net [69.12.221.240]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p66MpWBP024638; Wed, 6 Jul 2011 15:51:32 -0700 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Priority: Normal X-Mailer: AtMail PHP 5.62 Message-ID: <49309.1309992692@sonic.net> To: "Eric Sandeen" Reply-To: kkeller@sonic.net X-Origin: 128.32.252.13 X-Atmail-Account: kkeller@sonic.net Date: Wed, 06 Jul 2011 15:51:32 -0700 X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize From: kkeller@sonic.net Cc: X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1309992693 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68172 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello again XFS folks, I have finally made the time to revisit this, after copying most of my data elsewhere. On Sun 03/07/11 9:41 PM , Eric Sandeen wrote: > On 7/3/11 11:34 PM, kkeller@sonic.net wrote: > > How safe is running xfs_db with -r on my mounted filesystem? I >=20 > it's safe. At worst it might read inconsistent data, but it's > perfectly safe. So, here is my xfs_db output. This is still on a mounted filesystem. # xfs_db -r -c 'sb 0' -c 'print' /dev/mapper/saharaVG-saharaLV magicnum =3D 0x58465342 blocksize =3D 4096 dblocks =3D 5371061248 rblocks =3D 0 rextents =3D 0 uuid =3D 1bffcb88-0d9d-4228-93af-83ec9e208e88 logstart =3D 2147483652 rootino =3D 128 rbmino =3D 129 rsumino =3D 130 rextsize =3D 1 agblocks =3D 91552192 agcount =3D 59 rbmblocks =3D 0 logblocks =3D 32768 versionnum =3D 0x30e4 sectsize =3D 512 inodesize =3D 256 inopblock =3D 16 fname =3D "\000\000\000\000\000\000\000\000\000\000\000\000" blocklog =3D 12 sectlog =3D 9 inodelog =3D 8 inopblog =3D 4 agblklog =3D 27 rextslog =3D 0 inprogress =3D 0 imax_pct =3D 25 icount =3D 19556544 ifree =3D 1036 fdblocks =3D 2634477046 frextents =3D 0 uquotino =3D 131 gquotino =3D 132 qflags =3D 0x7 flags =3D 0 shared_vn =3D 0 inoalignmt =3D 2 unit =3D 0 width =3D 0 dirblklog =3D 0 logsectlog =3D 0 logsectsize =3D 0 logsunit =3D 0 features2 =3D 0 # xfs_db -r -c 'sb 1' -c 'print' /dev/mapper/saharaVG-saharaLV magicnum =3D 0x58465342 blocksize =3D 4096 dblocks =3D 2929670144 rblocks =3D 0 rextents =3D 0 uuid =3D 1bffcb88-0d9d-4228-93af-83ec9e208e88 logstart =3D 2147483652 rootino =3D 128 rbmino =3D 129 rsumino =3D 130 rextsize =3D 1 agblocks =3D 91552192 agcount =3D 32 rbmblocks =3D 0 logblocks =3D 32768 versionnum =3D 0x30e4 sectsize =3D 512 inodesize =3D 256 inopblock =3D 16 fname =3D "\000\000\000\000\000\000\000\000\000\000\000\000" blocklog =3D 12 sectlog =3D 9 inodelog =3D 8 inopblog =3D 4 agblklog =3D 27 rextslog =3D 0 inprogress =3D 0 imax_pct =3D 25 icount =3D 19528640 ifree =3D 15932 fdblocks =3D 170285408 frextents =3D 0 uquotino =3D 131 gquotino =3D 132 qflags =3D 0x7 flags =3D 0 shared_vn =3D 0 inoalignmt =3D 2 unit =3D 0 width =3D 0 dirblklog =3D 0 logsectlog =3D 0 logsectsize =3D 0 logsunit =3D 0 features2 =3D 0 I can immediately see with a diff that dblocks and agcount are different. Some other variables are also different, namely icount, ifree, and fdblocks, which I am unclear how to interpret. But judging from the other threads I quoted, it seems that dblocks and agcount are using values for a 20TB filesystem, and that therefore on a umount the filesystem will become (at least temporarily) unmountable. I've seen two different routes for trying to correct this issue--either use xfs_db to manipulate the values directly, or using xfs_repair on a frozen ro-mounted filesystem with a dump from xfs_metadata. My worry about the latter is twofold--will I even be able to do a remount? And will I have space for a dump from xfs_metadata of an 11TB filesystem? I have also seen advice in some of the other threads that xfs_repair can actually make the damage worse (though presumably xfs_repair -n should be safe). If xfs_db is a better way to go, and if the values xfs_db returns on a umount don't change, would I simply do this? # xfs_db -x /dev/mapper/saharaVG-saharaLV sb 0 w dblocks =3D 2929670144 w agcount =3D 32 and then do an xfs_repair -n? A route I have used many ages ago, on ext2 filesystems, was to specify an alternate superblock when running e2fsck. Can xfs_repair do this? > Get a recent xfsprogs too, if you haven't already, it scales better > than the really old versions. I think I may have asked this in another post, but would you suggest compiling 3.0 from source? The version that CentOS distributes is marked as 2.9.4, but I don't know what patches they've applied (if any). Would 3= =2E0 be more likely to help recover the fs? Thanks all for your patience! --keith --=20 kkeller@sonic.net From david@fromorbit.com Wed Jul 6 18:52:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p66NqQ8K025210 for ; Wed, 6 Jul 2011 18:52:26 -0500 X-ASG-Debug-ID: 1309996340-606700a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4BC221E5C66B for ; Wed, 6 Jul 2011 16:52:21 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id yJoXBUZjjLYRFZIj for ; Wed, 06 Jul 2011 16:52:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: As0DALzxFE55LCkBgWdsb2JhbABTqAoVAQEWJiXLWA6GKQSjEA Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 07 Jul 2011 09:22:18 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QebtB-0000z9-Cy; Thu, 07 Jul 2011 09:52:17 +1000 Date: Thu, 7 Jul 2011 09:52:17 +1000 From: Dave Chinner To: Stan Hoeppner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error (memory corruption) Subject: Re: XFS internal error (memory corruption) Message-ID: <20110706235217.GA1026@dastard> References: <4E12A927.9020102@gmail.com> <20110705130932.GF1026@dastard> <4E1313C1.6020309@gmail.com> <20110706040403.GW1026@dastard> <20110706070756.GA25800@infradead.org> <20110706072221.GZ1026@dastard> <4E14B7EE.2060005@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E14B7EE.2060005@hardwarefreak.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1309996343 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4718 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68177 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 02:30:54PM -0500, Stan Hoeppner wrote: > On 7/6/2011 2:22 AM, Dave Chinner wrote: > > > log on a 2-disk RAID0 mirror..... > > Is that a typo Dave or a configuration I just hadn't heard of? Or did > you intend a slash between RAID0/mirror meaning either/or? typo - should say RAID1 mirror. -- Dave Chinner david@fromorbit.com From sbishop@cyber1.clickithost.com Thu Jul 7 00:49:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_60 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p675nPhH135652 for ; Thu, 7 Jul 2011 00:49:25 -0500 X-ASG-Debug-ID: 1310017763-2bbf022a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from cyber1.clickithost.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 89E04E89625 for ; Wed, 6 Jul 2011 22:49:23 -0700 (PDT) Received: from cyber1.clickithost.com (64-37-60-38.static.dimenoc.com [64.37.60.38]) by cuda.sgi.com with ESMTP id hlPAX9Sl2X8GpDfh for ; Wed, 06 Jul 2011 22:49:23 -0700 (PDT) Received: from sbishop by cyber1.clickithost.com with local (Exim 4.69) (envelope-from ) id 1QehS3-0008Ml-Dn for xfs@oss.sgi.com; Thu, 07 Jul 2011 01:48:39 -0400 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Would You Like To Get Paid For Personal Development? Subject: Would You Like To Get Paid For Personal Development? X-PHP-Script: 1kperdayfreedom.info/index-zipsender.php for 24.239.19.26 From: Freedom For Families Reply-To: Shellie@cyber1.clickithost.com MIME-Version: 1.0 X-Mailer: GMailer 1.2 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Sender: Date: Thu, 07 Jul 2011 01:48:39 -0400 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cyber1.clickithost.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [513 508] / [47 12] X-AntiAbuse: Sender Address Domain - cyber1.clickithost.com X-Barracuda-Connect: 64-37-60-38.static.dimenoc.com[64.37.60.38] X-Barracuda-Start-Time: 1310017763 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4988 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68200 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello, Good Day, > I found your name during an online search of someone > that may be interested in personal development opportunities. > I wanted to ask you a few questions to get started. > Are you currently in a personal development program and earning what you desire? Do you have the support you > need to be successful? > > I would like to know about you and what you are doing > and see if you are interested, introduce you to a program where you can earn and learn at the same time. > > Here's your free gift for responding. It's a Business > Building tool that works for any business and comes > with over $100 dollars in free tools. Hope you enjoy!! > Let me know if you need any help setting it up. > > Sincerely, > Shelly Free Tool http://www.mybwbsite.com/4592674/op1 > Personal Development Business Intro. http://www.1kperdayfreedom.com „« 1-706-623-3450 „« To Be Removed reply with (remove) In the subject line. > From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 03:00:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67809wW140787 for ; Thu, 7 Jul 2011 03:00:10 -0500 X-ASG-Debug-ID: 1310025608-742402100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 43AEF52501 for ; Thu, 7 Jul 2011 01:00:08 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BpXZPcd8ijVpYQ8V for ; Thu, 07 Jul 2011 01:00:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QejVG-0004XE-9O; Thu, 07 Jul 2011 08:00:06 +0000 Date: Thu, 7 Jul 2011 04:00:06 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Subject: Re: [PATCH 22/27] xfs: use generic get_unaligned_beXX helpers Message-ID: <20110707080006.GA14041@infradead.org> References: <20110701094321.936534538@bombadil.infradead.org> <20110701094606.763430916@bombadil.infradead.org> <20110706034421.GQ1026@dastard> <20110706090754.GI19861@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110706090754.GI19861@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310025609 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68209 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean One interestin caveat about inode numers is that the we use the XFS_DIR2_DATA_FREE_TAG magic number in the firt two bytes of struct xfs_dir2_data_unused to detect this free space header in all non-shortform directory formats. These two bytes overlap with the inode number in struct xfs_dir2_data_entry. From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hDS159851 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036801-372300ab0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 44AFF15ECD5A for ; Thu, 7 Jul 2011 04:06:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id CYDdpwUtqqoUxDIA for ; Thu, 07 Jul 2011 04:06:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPo-0003pY-Me for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:40 +0000 Message-Id: <20110707110640.660374016@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:36 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/28] xfs: PF_FSTRANS should never be set in ->writepage Subject: [PATCH 01/28] xfs: PF_FSTRANS should never be set in ->writepage References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-writepage-simplify-fstrans-check X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that we reject direct reclaim in addition to always using GFP_NOFS allocation there's no chance we'll ever end up in ->writepage with PF_FSTRANS set. Add a WARN_ON if we hit this case, and stop checking if we'd actually need to start a transaction. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2011-07-06 09:11:58.963268764 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2011-07-06 09:12:22.466600907 +0200 @@ -895,11 +895,6 @@ out_invalidate: * For unwritten space on the page we need to start the conversion to * regular allocated space. * For any other dirty buffer heads on the page we should flush them. - * - * If we detect that a transaction would be required to flush the page, we - * have to check the process flags first, if we are already in a transaction - * or disk I/O during allocations is off, we need to fail the writepage and - * redirty the page. */ STATIC int xfs_vm_writepage( @@ -907,7 +902,6 @@ xfs_vm_writepage( struct writeback_control *wbc) { struct inode *inode = page->mapping->host; - int delalloc, unwritten; struct buffer_head *bh, *head; struct xfs_bmbt_irec imap; xfs_ioend_t *ioend = NULL, *iohead = NULL; @@ -939,15 +933,10 @@ xfs_vm_writepage( goto redirty; /* - * We need a transaction if there are delalloc or unwritten buffers - * on the page. - * - * If we need a transaction and the process flags say we are already - * in a transaction, or no IO is allowed then mark the page dirty - * again and leave the page as is. + * Given that we do not allow direct reclaim to call us, we should + * never be called while in a filesystem transaction. */ - xfs_count_page_state(page, &delalloc, &unwritten); - if ((current->flags & PF_FSTRANS) && (delalloc || unwritten)) + if (WARN_ON(current->flags & PF_FSTRANS)) goto redirty; /* Is this page beyond the end of the file? */ From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hgS159859 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036802-2abf01330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E708115ECD91 for ; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JDEFC7z5QFGgVjvW for ; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPq-0003tG-4K for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:42 +0000 Message-Id: <20110707110642.097790385@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:43 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/28] xfs: improve sync behaviour in the face of aggressive dirtying Subject: [PATCH 08/28] xfs: improve sync behaviour in the face of aggressive dirtying References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-sync X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The following script from Wu Fengguang shows very bad behaviour in XFS when aggressively dirtying data during a sync on XFS, with sync times up to almost 10 times as long as ext4. A large part of the issue is that XFS writes data out itself two times in the ->sync_fs method, overriding the livelock protection in the core writeback code, and another issue is the lock-less xfs_ioend_wait call, which doesn't prevent new ioend from being queue up while waiting for the count to reach zero. This patch removes the XFS-internal sync calls and relies on the VFS to do it's work just like all other filesystems do. Note that the i_iocount wait which is rather suboptimal is simply removed here. We already do it in ->write_inode, which keeps the current supoptimal behaviour. We'll eventually need to remove that as well, but that's material for a separate commit. ------------------------------ snip ------------------------------ #!/bin/sh umount /dev/sda7 mkfs.xfs -f /dev/sda7 # mkfs.ext4 /dev/sda7 # mkfs.btrfs /dev/sda7 mount /dev/sda7 /fs echo $((50<<20)) > /proc/sys/vm/dirty_bytes pid= for i in `seq 10` do dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 & pid="$pid $!" done sleep 1 tic=$(date +'%s') sync tac=$(date +'%s') echo echo sync time: $((tac-tic)) egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; } ------------------------------ snip ------------------------------ Signed-off-by: Christoph Hellwig Reported-by: Wu Fengguang Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_sync.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:26:14.109219361 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.c 2011-06-29 11:37:20.642275110 +0200 @@ -359,14 +359,12 @@ xfs_quiesce_data( { int error, error2 = 0; - /* push non-blocking */ - xfs_sync_data(mp, 0); xfs_qm_sync(mp, SYNC_TRYLOCK); - - /* push and block till complete */ - xfs_sync_data(mp, SYNC_WAIT); xfs_qm_sync(mp, SYNC_WAIT); + /* force out the newly dirtied log buffers */ + xfs_log_force(mp, XFS_LOG_SYNC); + /* write superblock and hoover up shutdown errors */ error = xfs_sync_fsdata(mp); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hjE159855 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036801-1b1f01490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B2E852CE4 for ; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ZcJ2sDi59nMFskXO for ; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPp-0003sD-Np for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:41 +0000 Message-Id: <20110707110641.698878823@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:41 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/28] xfs: kill xfs_itruncate_start Subject: [PATCH 06/28] xfs: kill xfs_itruncate_start References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_itruncate_start X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfs_itruncate_start is a rather length wrapper that evaluates to a call to xfs_ioend_wait and xfs_tosspages, and only has two callers. Instead of using the complicated checks left over from IRIX where we can to truncate the pagecache just call xfs_tosspages (aka truncate_inode_pages) directly as we want to get rid of all data after i_size, and truncate_inode_pages handles incorrect alignments and too large offsets just fine. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-06-29 11:29:02.494973804 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-06-29 11:29:11.888256249 +0200 @@ -1217,165 +1217,8 @@ xfs_isize_check( #endif /* DEBUG */ /* - * Calculate the last possible buffered byte in a file. This must - * include data that was buffered beyond the EOF by the write code. - * This also needs to deal with overflowing the xfs_fsize_t type - * which can happen for sizes near the limit. - * - * We also need to take into account any blocks beyond the EOF. It - * may be the case that they were buffered by a write which failed. - * In that case the pages will still be in memory, but the inode size - * will never have been updated. - */ -STATIC xfs_fsize_t -xfs_file_last_byte( - xfs_inode_t *ip) -{ - xfs_mount_t *mp; - xfs_fsize_t last_byte; - xfs_fileoff_t last_block; - xfs_fileoff_t size_last_block; - int error; - - ASSERT(xfs_isilocked(ip, XFS_IOLOCK_EXCL|XFS_IOLOCK_SHARED)); - - mp = ip->i_mount; - /* - * Only check for blocks beyond the EOF if the extents have - * been read in. This eliminates the need for the inode lock, - * and it also saves us from looking when it really isn't - * necessary. - */ - if (ip->i_df.if_flags & XFS_IFEXTENTS) { - xfs_ilock(ip, XFS_ILOCK_SHARED); - error = xfs_bmap_last_offset(NULL, ip, &last_block, - XFS_DATA_FORK); - xfs_iunlock(ip, XFS_ILOCK_SHARED); - if (error) { - last_block = 0; - } - } else { - last_block = 0; - } - size_last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)ip->i_size); - last_block = XFS_FILEOFF_MAX(last_block, size_last_block); - - last_byte = XFS_FSB_TO_B(mp, last_block); - if (last_byte < 0) { - return XFS_MAXIOFFSET(mp); - } - last_byte += (1 << mp->m_writeio_log); - if (last_byte < 0) { - return XFS_MAXIOFFSET(mp); - } - return last_byte; -} - -/* - * Start the truncation of the file to new_size. The new size - * must be smaller than the current size. This routine will - * clear the buffer and page caches of file data in the removed - * range, and xfs_itruncate_finish() will remove the underlying - * disk blocks. - * - * The inode must have its I/O lock locked EXCLUSIVELY, and it - * must NOT have the inode lock held at all. This is because we're - * calling into the buffer/page cache code and we can't hold the - * inode lock when we do so. - * - * We need to wait for any direct I/Os in flight to complete before we - * proceed with the truncate. This is needed to prevent the extents - * being read or written by the direct I/Os from being removed while the - * I/O is in flight as there is no other method of synchronising - * direct I/O with the truncate operation. Also, because we hold - * the IOLOCK in exclusive mode, we prevent new direct I/Os from being - * started until the truncate completes and drops the lock. Essentially, - * the xfs_ioend_wait() call forms an I/O barrier that provides strict - * ordering between direct I/Os and the truncate operation. - * - * The flags parameter can have either the value XFS_ITRUNC_DEFINITE - * or XFS_ITRUNC_MAYBE. The XFS_ITRUNC_MAYBE value should be used - * in the case that the caller is locking things out of order and - * may not be able to call xfs_itruncate_finish() with the inode lock - * held without dropping the I/O lock. If the caller must drop the - * I/O lock before calling xfs_itruncate_finish(), then xfs_itruncate_start() - * must be called again with all the same restrictions as the initial - * call. - */ -int -xfs_itruncate_start( - xfs_inode_t *ip, - uint flags, - xfs_fsize_t new_size) -{ - xfs_fsize_t last_byte; - xfs_off_t toss_start; - xfs_mount_t *mp; - int error = 0; - - ASSERT(xfs_isilocked(ip, XFS_IOLOCK_EXCL)); - ASSERT((new_size == 0) || (new_size <= ip->i_size)); - ASSERT((flags == XFS_ITRUNC_DEFINITE) || - (flags == XFS_ITRUNC_MAYBE)); - - mp = ip->i_mount; - - /* wait for the completion of any pending DIOs */ - if (new_size == 0 || new_size < ip->i_size) - xfs_ioend_wait(ip); - - /* - * Call toss_pages or flushinval_pages to get rid of pages - * overlapping the region being removed. We have to use - * the less efficient flushinval_pages in the case that the - * caller may not be able to finish the truncate without - * dropping the inode's I/O lock. Make sure - * to catch any pages brought in by buffers overlapping - * the EOF by searching out beyond the isize by our - * block size. We round new_size up to a block boundary - * so that we don't toss things on the same block as - * new_size but before it. - * - * Before calling toss_page or flushinval_pages, make sure to - * call remapf() over the same region if the file is mapped. - * This frees up mapped file references to the pages in the - * given range and for the flushinval_pages case it ensures - * that we get the latest mapped changes flushed out. - */ - toss_start = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); - toss_start = XFS_FSB_TO_B(mp, toss_start); - if (toss_start < 0) { - /* - * The place to start tossing is beyond our maximum - * file size, so there is no way that the data extended - * out there. - */ - return 0; - } - last_byte = xfs_file_last_byte(ip); - trace_xfs_itruncate_start(ip, new_size, flags, toss_start, last_byte); - if (last_byte > toss_start) { - if (flags & XFS_ITRUNC_DEFINITE) { - xfs_tosspages(ip, toss_start, - -1, FI_REMAPF_LOCKED); - } else { - error = xfs_flushinval_pages(ip, toss_start, - -1, FI_REMAPF_LOCKED); - } - } - -#ifdef DEBUG - if (new_size == 0) { - ASSERT(VN_CACHED(VFS_I(ip)) == 0); - } -#endif - return error; -} - -/* - * Shrink the file to the given new_size. The new size must be smaller than - * the current size. This will free up the underlying blocks in the removed - * range after a call to xfs_itruncate_start() or xfs_atruncate_start(). + * Free up the underlying blocks past new_size. The new size must be + * smaller than the current size. * * The transaction passed to this routine must have made a permanent log * reservation of at least XFS_ITRUNCATE_LOG_RES. This routine may commit the @@ -1387,7 +1230,7 @@ xfs_itruncate_start( * will be "held" within the returned transaction. This routine does NOT * require any disk space to be reserved for it within the transaction. * - * The fork parameter must be either xfs_attr_fork or xfs_data_fork, and it + * The fork parameter must be either XFS_ATTR_FORK or XFS_DATA_FORK, and it * indicates the fork which is to be truncated. For the attribute fork we only * support truncation to size 0. * Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:07.158281874 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:11.888256249 +0200 @@ -197,13 +197,6 @@ xfs_free_eofblocks( */ tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); - /* - * Do the xfs_itruncate_start() call before - * reserving any log space because - * itruncate_start will call into the buffer - * cache and we can't - * do that within a transaction. - */ if (flags & XFS_FREE_EOF_TRYLOCK) { if (!xfs_ilock_nowait(ip, XFS_IOLOCK_EXCL)) { xfs_trans_cancel(tp, 0); @@ -212,13 +205,6 @@ xfs_free_eofblocks( } else { xfs_ilock(ip, XFS_IOLOCK_EXCL); } - error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, - ip->i_size); - if (error) { - xfs_trans_cancel(tp, 0); - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return error; - } error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), @@ -660,20 +646,9 @@ xfs_inactive( tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE); if (truncate) { - /* - * Do the xfs_itruncate_start() call before - * reserving any log space because itruncate_start - * will call into the buffer cache and we can't - * do that within a transaction. - */ xfs_ilock(ip, XFS_IOLOCK_EXCL); - error = xfs_itruncate_start(ip, XFS_ITRUNC_DEFINITE, 0); - if (error) { - xfs_trans_cancel(tp, 0); - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return VN_INACTIVE_CACHE; - } + xfs_ioend_wait(ip); error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:29:02.518307010 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:29:11.891589564 +0200 @@ -1029,40 +1029,6 @@ DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enos DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); - -TRACE_EVENT(xfs_itruncate_start, - TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size, int flag, - xfs_off_t toss_start, xfs_off_t toss_finish), - TP_ARGS(ip, new_size, flag, toss_start, toss_finish), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_fsize_t, new_size) - __field(xfs_off_t, toss_start) - __field(xfs_off_t, toss_finish) - __field(int, flag) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->new_size = new_size; - __entry->toss_start = toss_start; - __entry->toss_finish = toss_finish; - __entry->flag = flag; - ), - TP_printk("dev %d:%d ino 0x%llx %s size 0x%llx new_size 0x%llx " - "toss start 0x%llx toss finish 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->flag, "|", XFS_ITRUNC_FLAGS), - __entry->size, - __entry->new_size, - __entry->toss_start, - __entry->toss_finish) -); - DECLARE_EVENT_CLASS(xfs_itrunc_class, TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), TP_ARGS(ip, new_size), Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-06-29 11:29:02.531640272 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-06-29 11:29:11.891589564 +0200 @@ -458,16 +458,6 @@ static inline void xfs_ifunlock(xfs_inod extern struct lock_class_key xfs_iolock_reclaimable; /* - * Flags for xfs_itruncate_start(). - */ -#define XFS_ITRUNC_DEFINITE 0x1 -#define XFS_ITRUNC_MAYBE 0x2 - -#define XFS_ITRUNC_FLAGS \ - { XFS_ITRUNC_DEFINITE, "DEFINITE" }, \ - { XFS_ITRUNC_MAYBE, "MAYBE" } - -/* * For multiple groups support: if S_ISGID bit is set in the parent * directory, group of new file is set to that of the parent, and * new subdirectory gets S_ISGID bit from parent. @@ -501,7 +491,6 @@ uint xfs_ip2xflags(struct xfs_inode *); uint xfs_dic2xflags(struct xfs_dinode *); int xfs_ifree(struct xfs_trans *, xfs_inode_t *, struct xfs_bmap_free *); -int xfs_itruncate_start(xfs_inode_t *, uint, xfs_fsize_t); int xfs_itruncate_finish(struct xfs_trans **, xfs_inode_t *, xfs_fsize_t, int, int); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6iW7159899 for ; Thu, 7 Jul 2011 06:06:44 -0500 X-ASG-Debug-ID: 1310036802-21a901160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 52071176A7FA for ; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id hrZkjH2d2qdnDRAC for ; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPq-0003uK-Hi for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:42 +0000 Message-Id: <20110707110642.515845017@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:45 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/28] xfs: remove i_transp Subject: [PATCH 10/28] xfs: remove i_transp References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-i_transp X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036803 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the transaction pointer in the inode. It's only used to avoid passing down an argument in the bmap code, and for a few asserts in the transaction code right now. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/quota/xfs_trans_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_trans_dquot.c 2011-07-06 09:11:57.933268816 +0200 +++ xfs/fs/xfs/quota/xfs_trans_dquot.c 2011-07-06 10:10:36.749757324 +0200 @@ -59,7 +59,7 @@ xfs_trans_dqjoin( xfs_trans_add_item(tp, &dqp->q_logitem.qli_item); /* - * Initialize i_transp so we can later determine if this dquot is + * Initialize d_transp so we can later determine if this dquot is * associated with this transaction. */ dqp->q_transp = tp; Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-07-06 09:11:57.946602150 +0200 +++ xfs/fs/xfs/xfs_bmap.c 2011-07-06 10:10:36.753090661 +0200 @@ -94,6 +94,7 @@ xfs_bmap_add_attrfork_local( */ STATIC int /* error */ xfs_bmap_add_extent_delay_real( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -439,6 +440,7 @@ xfs_bmap_add_attrfork_local( */ STATIC int /* error */ xfs_bmap_add_extent( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -524,7 +526,7 @@ xfs_bmap_add_extent( if (cur) ASSERT(cur->bc_private.b.flags & XFS_BTCUR_BPRV_WASDEL); - error = xfs_bmap_add_extent_delay_real(ip, + error = xfs_bmap_add_extent_delay_real(tp, ip, idx, &cur, new, &da_new, first, flist, &logflags); } else { @@ -561,7 +563,7 @@ xfs_bmap_add_extent( int tmp_logflags; /* partial log flag return val */ ASSERT(cur == NULL); - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, first, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, da_old > 0, &tmp_logflags, whichfork); logflags |= tmp_logflags; if (error) @@ -604,6 +606,7 @@ done: */ STATIC int /* error */ xfs_bmap_add_extent_delay_real( + struct xfs_trans *tp, /* transaction pointer */ xfs_inode_t *ip, /* incore inode pointer */ xfs_extnum_t *idx, /* extent number to update/insert */ xfs_btree_cur_t **curp, /* if *curp is null, not a btree */ @@ -901,7 +904,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -984,7 +987,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -1052,7 +1055,7 @@ xfs_bmap_add_extent_delay_real( } if (ip->i_d.di_format == XFS_DINODE_FMT_EXTENTS && ip->i_d.di_nextents > ip->i_df.if_ext_max) { - error = xfs_bmap_extents_to_btree(ip->i_transp, ip, + error = xfs_bmap_extents_to_btree(tp, ip, first, flist, &cur, 1, &tmp_rval, XFS_DATA_FORK); rval |= tmp_rval; @@ -2871,8 +2874,8 @@ xfs_bmap_del_extent( len = del->br_blockcount; do_div(bno, mp->m_sb.sb_rextsize); do_div(len, mp->m_sb.sb_rextsize); - if ((error = xfs_rtfree_extent(ip->i_transp, bno, - (xfs_extlen_t)len))) + error = xfs_rtfree_extent(tp, bno, (xfs_extlen_t)len); + if (error) goto done; do_fx = 0; nblks = len * mp->m_sb.sb_rextsize; @@ -4662,7 +4665,7 @@ xfs_bmapi( if (!wasdelay && (flags & XFS_BMAPI_PREALLOC)) got.br_state = XFS_EXT_UNWRITTEN; } - error = xfs_bmap_add_extent(ip, &lastx, &cur, &got, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, &got, firstblock, flist, &tmp_logflags, whichfork); logflags |= tmp_logflags; @@ -4763,7 +4766,7 @@ xfs_bmapi( mval->br_state = (mval->br_state == XFS_EXT_UNWRITTEN) ? XFS_EXT_NORM : XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, mval, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, mval, firstblock, flist, &tmp_logflags, whichfork); logflags |= tmp_logflags; @@ -5117,7 +5120,7 @@ xfs_bunmapi( del.br_blockcount = mod; } del.br_state = XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, &del, + error = xfs_bmap_add_extent(tp, ip, &lastx, &cur, &del, firstblock, flist, &logflags, XFS_DATA_FORK); if (error) @@ -5175,18 +5178,18 @@ xfs_bunmapi( } prev.br_state = XFS_EXT_UNWRITTEN; lastx--; - error = xfs_bmap_add_extent(ip, &lastx, &cur, - &prev, firstblock, flist, &logflags, - XFS_DATA_FORK); + error = xfs_bmap_add_extent(tp, ip, &lastx, + &cur, &prev, firstblock, flist, + &logflags, XFS_DATA_FORK); if (error) goto error0; goto nodelete; } else { ASSERT(del.br_state == XFS_EXT_NORM); del.br_state = XFS_EXT_UNWRITTEN; - error = xfs_bmap_add_extent(ip, &lastx, &cur, - &del, firstblock, flist, &logflags, - XFS_DATA_FORK); + error = xfs_bmap_add_extent(tp, ip, &lastx, + &cur, &del, firstblock, flist, + &logflags, XFS_DATA_FORK); if (error) goto error0; goto nodelete; Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-06 10:05:37.323105820 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-06 10:10:36.756423995 +0200 @@ -1259,7 +1259,6 @@ xfs_itruncate_extents( ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); ASSERT(new_size <= ip->i_size); ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); - ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(ip->i_itemp->ili_lock_flags == 0); ASSERT(!XFS_NOT_DQATTACHED(mp, ip)); @@ -1435,7 +1434,6 @@ xfs_iunlink( ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_mode != 0); - ASSERT(ip->i_transp == tp); mp = tp->t_mountp; @@ -1827,7 +1825,6 @@ xfs_ifree( xfs_buf_t *ibp; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_transp == tp); ASSERT(ip->i_d.di_nlink == 0); ASSERT(ip->i_d.di_nextents == 0); ASSERT(ip->i_d.di_anextents == 0); Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-07-06 10:05:37.326439153 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-07-06 10:10:36.756423995 +0200 @@ -241,7 +241,6 @@ typedef struct xfs_inode { xfs_ifork_t i_df; /* data fork */ /* Transaction and locking information. */ - struct xfs_trans *i_transp; /* ptr to owning transaction*/ struct xfs_inode_log_item *i_itemp; /* logging information */ mrlock_t i_lock; /* inode lock */ mrlock_t i_iolock; /* inode IO lock */ Index: xfs/fs/xfs/xfs_inode_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode_item.c 2011-07-06 09:11:57.976602147 +0200 +++ xfs/fs/xfs/xfs_inode_item.c 2011-07-06 10:10:36.759757328 +0200 @@ -636,11 +636,6 @@ xfs_inode_item_unlock( ASSERT(xfs_isilocked(iip->ili_inode, XFS_ILOCK_EXCL)); /* - * Clear the transaction pointer in the inode. - */ - ip->i_transp = NULL; - - /* * If the inode needed a separate buffer with which to log * its extents, then free it now. */ Index: xfs/fs/xfs/xfs_trans_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_inode.c 2011-07-06 09:11:57.993268813 +0200 +++ xfs/fs/xfs/xfs_trans_inode.c 2011-07-06 10:10:36.763090660 +0200 @@ -55,7 +55,6 @@ xfs_trans_ijoin( { xfs_inode_log_item_t *iip; - ASSERT(ip->i_transp == NULL); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); if (ip->i_itemp == NULL) xfs_inode_item_init(ip, ip->i_mount); @@ -68,12 +67,6 @@ xfs_trans_ijoin( xfs_trans_add_item(tp, &iip->ili_item); xfs_trans_inode_broot_debug(ip); - - /* - * Initialize i_transp so we can find it with xfs_inode_incore() - * in xfs_trans_iget() above. - */ - ip->i_transp = tp; } /* @@ -111,7 +104,6 @@ xfs_trans_ichgtime( ASSERT(tp); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - ASSERT(ip->i_transp == tp); tv = current_fs_time(inode->i_sb); @@ -140,7 +132,6 @@ xfs_trans_log_inode( xfs_inode_t *ip, uint flags) { - ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hvk159850 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036801-2376017f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 598E015ECD79; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id cpzNMqvzdemx9tw5; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPo-0003q4-T4; Thu, 07 Jul 2011 11:06:40 +0000 Message-Id: <20110707110640.863389024@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:37 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: Alex Elder X-ASG-Orig-Subj: [PATCH 02/28] xfs: re-enable non-blocking behaviour in xfs_map_blocks Subject: [PATCH 02/28] xfs: re-enable non-blocking behaviour in xfs_map_blocks References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-writepage-repair-nolock-support X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The non-blockig behaviour in xfs_vm_writepage currently is conditional on having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. The latter used to be used by both pdflush, kswapd and a few other places in older kernels, but has been fading out starting with the introduction of the per-bdi flusher threads. Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back the behaviour we want. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder Index: xfs/fs/xfs/linux-2.6/xfs_aops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_aops.c 2011-07-06 09:12:22.466600907 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_aops.c 2011-07-06 09:12:26.069934110 +0200 @@ -960,7 +960,7 @@ xfs_vm_writepage( offset = page_offset(page); type = IO_OVERWRITE; - if (wbc->sync_mode == WB_SYNC_NONE && wbc->nonblocking) + if (wbc->sync_mode == WB_SYNC_NONE) nonblocking = 1; do { From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hCj159862 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036802-11e101e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E0AC452E1D for ; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ktkFDGr90KEVa3NB for ; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPq-0003to-Aa for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:42 +0000 Message-Id: <20110707110642.288994327@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:44 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/28] xfs: fix filesystsem freeze race in xfs_trans_alloc Subject: [PATCH 09/28] xfs: fix filesystsem freeze race in xfs_trans_alloc References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-fix-freeze-race X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem freeze when it sleeps during the memory allocation. Fix this by moving the wait_for_freeze call after the memory allocation. This means moving the freeze into the low-level _xfs_trans_alloc helper, which thus grows a new argument. Also fix up some comments in that area while at it. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_fsops.c =================================================================== --- xfs.orig/fs/xfs/xfs_fsops.c 2011-06-18 17:50:43.477373715 +0200 +++ xfs/fs/xfs/xfs_fsops.c 2011-06-20 09:17:00.933518761 +0200 @@ -626,7 +626,7 @@ xfs_fs_log_dummy( xfs_trans_t *tp; int error; - tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP); + tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP, false); error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, XFS_DEFAULT_LOG_COUNT); if (error) { Index: xfs/fs/xfs/xfs_iomap.c =================================================================== --- xfs.orig/fs/xfs/xfs_iomap.c 2011-06-18 17:50:43.487373714 +0200 +++ xfs/fs/xfs/xfs_iomap.c 2011-06-20 09:17:00.933518761 +0200 @@ -688,8 +688,7 @@ xfs_iomap_write_unwritten( * the same inode that we complete here and might deadlock * on the iolock. */ - xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); - tp = _xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE, KM_NOFS); + tp = _xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE, KM_NOFS, true); tp->t_flags |= XFS_TRANS_RESERVE; error = xfs_trans_reserve(tp, resblks, XFS_WRITE_LOG_RES(mp), 0, Index: xfs/fs/xfs/xfs_trans.h =================================================================== --- xfs.orig/fs/xfs/xfs_trans.h 2011-06-18 17:50:43.497373713 +0200 +++ xfs/fs/xfs/xfs_trans.h 2011-06-21 10:57:04.908840421 +0200 @@ -447,8 +447,14 @@ typedef struct xfs_trans { /* * XFS transaction mechanism exported interfaces. */ -xfs_trans_t *xfs_trans_alloc(struct xfs_mount *, uint); -xfs_trans_t *_xfs_trans_alloc(struct xfs_mount *, uint, uint); +xfs_trans_t *_xfs_trans_alloc(struct xfs_mount *, uint, uint, bool); + +static inline struct xfs_trans * +xfs_trans_alloc(struct xfs_mount *mp, uint type) +{ + return _xfs_trans_alloc(mp, type, KM_SLEEP, true); +} + xfs_trans_t *xfs_trans_dup(xfs_trans_t *); int xfs_trans_reserve(xfs_trans_t *, uint, uint, uint, uint, uint); Index: xfs/fs/xfs/xfs_mount.c =================================================================== --- xfs.orig/fs/xfs/xfs_mount.c 2011-06-18 17:50:43.510707047 +0200 +++ xfs/fs/xfs/xfs_mount.c 2011-06-20 09:17:00.936852094 +0200 @@ -1566,15 +1566,9 @@ xfs_fs_writable(xfs_mount_t *mp) } /* - * xfs_log_sbcount - * * Called either periodically to keep the on disk superblock values * roughly up to date or from unmount to make sure the values are * correct on a clean unmount. - * - * Note this code can be called during the process of freezing, so - * we may need to use the transaction allocator which does not not - * block when the transaction subsystem is in its frozen state. */ int xfs_log_sbcount( @@ -1596,7 +1590,13 @@ xfs_log_sbcount( if (!xfs_sb_version_haslazysbcount(&mp->m_sb)) return 0; - tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP); + /* + * We can be called during the process of freezing, so make sure + * we go ahead even if the frozen for new transactions. We will + * always use a sync transaction in the freeze path to make sure + * the transaction has completed by the time we return. + */ + tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP, false); error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, XFS_DEFAULT_LOG_COUNT); if (error) { Index: xfs/fs/xfs/xfs_trans.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans.c 2011-06-18 17:50:43.524040379 +0200 +++ xfs/fs/xfs/xfs_trans.c 2011-06-21 10:56:25.305509042 +0200 @@ -566,31 +566,24 @@ xfs_trans_init( /* * This routine is called to allocate a transaction structure. + * * The type parameter indicates the type of the transaction. These * are enumerated in xfs_trans.h. - * - * Dynamically allocate the transaction structure from the transaction - * zone, initialize it, and return it to the caller. */ -xfs_trans_t * -xfs_trans_alloc( - xfs_mount_t *mp, - uint type) -{ - xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); - return _xfs_trans_alloc(mp, type, KM_SLEEP); -} - -xfs_trans_t * +struct xfs_trans * _xfs_trans_alloc( - xfs_mount_t *mp, - uint type, - uint memflags) + struct xfs_mount *mp, + uint type, + uint memflags, + bool wait_for_freeze) { - xfs_trans_t *tp; + struct xfs_trans *tp; atomic_inc(&mp->m_active_trans); + if (wait_for_freeze) + xfs_wait_for_freeze(mp, SB_FREEZE_TRANS); + tp = kmem_zone_zalloc(xfs_trans_zone, memflags); tp->t_magic = XFS_TRANS_MAGIC; tp->t_type = type; From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6i9M159910 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036800-1b1701440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3686452CDE for ; Thu, 7 Jul 2011 04:06:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id NYLV8HE1sZhbzkMh for ; Thu, 07 Jul 2011 04:06:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPo-0003oy-Go for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:40 +0000 Message-Id: <20110707110535.205001532@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:35 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 00/28] patch queue for Linux 3.1, V3 Subject: [PATCH 00/28] patch queue for Linux 3.1, V3 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036801 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0663 1.0000 -1.5984 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.00 X-Barracuda-Spam-Status: No, SCORE=-1.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This version addresses the review comments. The biggest change is that the byteswaps of constants are now moved into a different patch and applied more broadly. From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,J_CHICKENPOX_35, J_CHICKENPOX_38,J_CHICKENPOX_39,J_CHICKENPOX_65,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6iIu159912 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036803-21aa01450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 74796176A7FC for ; Thu, 7 Jul 2011 04:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BgcuRIRghCqZnj0Y for ; Thu, 07 Jul 2011 04:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPq-0003vM-TD for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:42 +0000 Message-Id: <20110707110642.867001361@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:47 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 12/28] xfs: factor out xfs_dir2_leaf_find_entry Subject: [PATCH 12/28] xfs: factor out xfs_dir2_leaf_find_entry References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-factor-dir2-leaf-code X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036803 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code from xfs_dir2_leaf_addname xfs_dir2_leafn_add. Found by Eric Sandeen using an automated code duplication checker. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-06-29 19:45:24.846962285 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-06-30 09:29:24.446740960 +0200 @@ -152,6 +152,123 @@ xfs_dir2_block_to_leaf( return 0; } +struct xfs_dir2_leaf_entry * +xfs_dir2_leaf_find_entry( + xfs_dir2_leaf_t *leaf, /* leaf structure */ + int index, /* leaf table position */ + int compact, /* need to compact leaves */ + int lowstale, /* index of prev stale leaf */ + int highstale, /* index of next stale leaf */ + int *lfloglow, /* low leaf logging index */ + int *lfloghigh) /* high leaf logging index */ +{ + if (!leaf->hdr.stale) { + xfs_dir2_leaf_entry_t *lep; /* leaf entry table pointer */ + + /* + * Now we need to make room to insert the leaf entry. + * + * If there are no stale entries, just insert a hole at index. + */ + lep = &leaf->ents[index]; + if (index < be16_to_cpu(leaf->hdr.count)) + memmove(lep + 1, lep, + (be16_to_cpu(leaf->hdr.count) - index) * + sizeof(*lep)); + + /* + * Record low and high logging indices for the leaf. + */ + *lfloglow = index; + *lfloghigh = be16_to_cpu(leaf->hdr.count); + be16_add_cpu(&leaf->hdr.count, 1); + return lep; + } + + /* + * There are stale entries. + * + * We will use one of them for the new entry. It's probably not at + * the right location, so we'll have to shift some up or down first. + * + * If we didn't compact before, we need to find the nearest stale + * entries before and after our insertion point. + */ + if (compact == 0) { + /* + * Find the first stale entry before the insertion point, + * if any. + */ + for (lowstale = index - 1; + lowstale >= 0 && + be32_to_cpu(leaf->ents[lowstale].address) != + XFS_DIR2_NULL_DATAPTR; + lowstale--) + continue; + + /* + * Find the next stale entry at or after the insertion point, + * if any. Stop if we go so far that the lowstale entry + * would be better. + */ + for (highstale = index; + highstale < be16_to_cpu(leaf->hdr.count) && + be32_to_cpu(leaf->ents[highstale].address) != + XFS_DIR2_NULL_DATAPTR && + (lowstale < 0 || + index - lowstale - 1 >= highstale - index); + highstale++) + continue; + } + + /* + * If the low one is better, use it. + */ + if (lowstale >= 0 && + (highstale == be16_to_cpu(leaf->hdr.count) || + index - lowstale - 1 < highstale - index)) { + ASSERT(index - lowstale - 1 >= 0); + ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == + XFS_DIR2_NULL_DATAPTR); + + /* + * Copy entries up to cover the stale entry and make room + * for the new entry. + */ + if (index - lowstale - 1 > 0) { + memmove(&leaf->ents[lowstale], + &leaf->ents[lowstale + 1], + (index - lowstale - 1) * + sizeof(xfs_dir2_leaf_entry_t)); + } + *lfloglow = MIN(lowstale, *lfloglow); + *lfloghigh = MAX(index - 1, *lfloghigh); + be16_add_cpu(&leaf->hdr.stale, -1); + return &leaf->ents[index - 1]; + } + + /* + * The high one is better, so use that one. + */ + ASSERT(highstale - index >= 0); + ASSERT(be32_to_cpu(leaf->ents[highstale].address) == + XFS_DIR2_NULL_DATAPTR); + + /* + * Copy entries down to cover the stale entry and make room for the + * new entry. + */ + if (highstale - index > 0) { + memmove(&leaf->ents[index + 1], + &leaf->ents[index], + (highstale - index) * sizeof(xfs_dir2_leaf_entry_t)); + } + *lfloglow = MIN(index, *lfloglow); + *lfloghigh = MAX(highstale, *lfloghigh); + be16_add_cpu(&leaf->hdr.stale, -1); + return &leaf->ents[index]; +} + /* * Add an entry to a leaf form directory. */ @@ -430,102 +547,10 @@ xfs_dir2_leaf_addname( if (!grown) xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); } - /* - * Now we need to make room to insert the leaf entry. - * If there are no stale entries, we just insert a hole at index. - */ - if (!leaf->hdr.stale) { - /* - * lep is still good as the index leaf entry. - */ - if (index < be16_to_cpu(leaf->hdr.count)) - memmove(lep + 1, lep, - (be16_to_cpu(leaf->hdr.count) - index) * sizeof(*lep)); - /* - * Record low and high logging indices for the leaf. - */ - lfloglow = index; - lfloghigh = be16_to_cpu(leaf->hdr.count); - be16_add_cpu(&leaf->hdr.count, 1); - } - /* - * There are stale entries. - * We will use one of them for the new entry. - * It's probably not at the right location, so we'll have to - * shift some up or down first. - */ - else { - /* - * If we didn't compact before, we need to find the nearest - * stale entries before and after our insertion point. - */ - if (compact == 0) { - /* - * Find the first stale entry before the insertion - * point, if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != - XFS_DIR2_NULL_DATAPTR; - lowstale--) - continue; - /* - * Find the next stale entry at or after the insertion - * point, if any. Stop if we go so far that the - * lowstale entry would be better. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != - XFS_DIR2_NULL_DATAPTR && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } - /* - * If the low one is better, use it. - */ - if (lowstale >= 0 && - (highstale == be16_to_cpu(leaf->hdr.count) || - index - lowstale - 1 < highstale - index)) { - ASSERT(index - lowstale - 1 >= 0); - ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == - XFS_DIR2_NULL_DATAPTR); - /* - * Copy entries up to cover the stale entry - * and make room for the new entry. - */ - if (index - lowstale - 1 > 0) - memmove(&leaf->ents[lowstale], - &leaf->ents[lowstale + 1], - (index - lowstale - 1) * sizeof(*lep)); - lep = &leaf->ents[index - 1]; - lfloglow = MIN(lowstale, lfloglow); - lfloghigh = MAX(index - 1, lfloghigh); - } - /* - * The high one is better, so use that one. - */ - else { - ASSERT(highstale - index >= 0); - ASSERT(be32_to_cpu(leaf->ents[highstale].address) == - XFS_DIR2_NULL_DATAPTR); - /* - * Copy entries down to cover the stale entry - * and make room for the new entry. - */ - if (highstale - index > 0) - memmove(&leaf->ents[index + 1], - &leaf->ents[index], - (highstale - index) * sizeof(*lep)); - lep = &leaf->ents[index]; - lfloglow = MIN(index, lfloglow); - lfloghigh = MAX(highstale, lfloghigh); - } - be16_add_cpu(&leaf->hdr.stale, -1); - } + + lep = xfs_dir2_leaf_find_entry(leaf, index, compact, lowstale, + highstale, &lfloglow, &lfloghigh); + /* * Fill in the new leaf entry. */ Index: xfs/fs/xfs/xfs_dir2_leaf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-06-29 19:45:24.856962230 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-06-30 09:18:07.263416117 +0200 @@ -248,6 +248,9 @@ extern int xfs_dir2_leaf_search_hash(str struct xfs_dabuf *lbp); extern int xfs_dir2_leaf_trim_data(struct xfs_da_args *args, struct xfs_dabuf *lbp, xfs_dir2_db_t db); +extern xfs_dir2_leaf_entry_t *xfs_dir2_leaf_find_entry(xfs_dir2_leaf_t *, int, + int, int, int, + int *, int *); extern int xfs_dir2_node_to_leaf(struct xfs_da_state *state); #endif /* __XFS_DIR2_LEAF_H__ */ Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-06-29 19:45:24.870295493 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-06-30 09:27:19.103409194 +0200 @@ -244,89 +244,13 @@ xfs_dir2_leafn_add( lfloglow = be16_to_cpu(leaf->hdr.count); lfloghigh = -1; } - /* - * No stale entries, just insert a space for the new entry. - */ - if (!leaf->hdr.stale) { - lep = &leaf->ents[index]; - if (index < be16_to_cpu(leaf->hdr.count)) - memmove(lep + 1, lep, - (be16_to_cpu(leaf->hdr.count) - index) * sizeof(*lep)); - lfloglow = index; - lfloghigh = be16_to_cpu(leaf->hdr.count); - be16_add_cpu(&leaf->hdr.count, 1); - } - /* - * There are stale entries. We'll use one for the new entry. - */ - else { - /* - * If we didn't do a compact then we need to figure out - * which stale entry will be used. - */ - if (compact == 0) { - /* - * Find first stale entry before our insertion point. - */ - for (lowstale = index - 1; - lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != - XFS_DIR2_NULL_DATAPTR; - lowstale--) - continue; - /* - * Find next stale entry after insertion point. - * Stop looking if the answer would be worse than - * lowstale already found. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != - XFS_DIR2_NULL_DATAPTR && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } - /* - * Using the low stale entry. - * Shift entries up toward the stale slot. - */ - if (lowstale >= 0 && - (highstale == be16_to_cpu(leaf->hdr.count) || - index - lowstale - 1 < highstale - index)) { - ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == - XFS_DIR2_NULL_DATAPTR); - ASSERT(index - lowstale - 1 >= 0); - if (index - lowstale - 1 > 0) - memmove(&leaf->ents[lowstale], - &leaf->ents[lowstale + 1], - (index - lowstale - 1) * sizeof(*lep)); - lep = &leaf->ents[index - 1]; - lfloglow = MIN(lowstale, lfloglow); - lfloghigh = MAX(index - 1, lfloghigh); - } - /* - * Using the high stale entry. - * Shift entries down toward the stale slot. - */ - else { - ASSERT(be32_to_cpu(leaf->ents[highstale].address) == - XFS_DIR2_NULL_DATAPTR); - ASSERT(highstale - index >= 0); - if (highstale - index > 0) - memmove(&leaf->ents[index + 1], - &leaf->ents[index], - (highstale - index) * sizeof(*lep)); - lep = &leaf->ents[index]; - lfloglow = MIN(index, lfloglow); - lfloghigh = MAX(highstale, lfloghigh); - } - be16_add_cpu(&leaf->hdr.stale, -1); - } + /* * Insert the new entry, log everything. */ + lep = xfs_dir2_leaf_find_entry(leaf, index, compact, lowstale, + highstale, &lfloglow, &lfloghigh); + lep->hashval = cpu_to_be32(args->hashval); lep->address = cpu_to_be32(xfs_dir2_db_off_to_dataptr(mp, args->blkno, args->index)); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6ivj159908 for ; Thu, 7 Jul 2011 06:06:44 -0500 X-ASG-Debug-ID: 1310036803-1b1801400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AE52652E4F for ; Thu, 7 Jul 2011 04:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id rpdWTkp4NC7BlsSF for ; Thu, 07 Jul 2011 04:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPr-0003vu-3y for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:43 +0000 Message-Id: <20110707110643.081937786@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:48 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 13/28] xfs: cleanup shortform directory inode number handling Subject: [PATCH 13/28] xfs: cleanup shortform directory inode number handling References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dir2_sf-cleanup-inum-handling X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036803 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Refactor the shortform directory helpers that deal with the 32-bit vs 64-bit wide inode numbers into more sensible helpers, and kill the xfs_intino_t typedef that is now superflous. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:31:15.330073010 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 09:34:46.640070544 +0200 @@ -59,6 +59,79 @@ static void xfs_dir2_sf_toino4(xfs_da_ar static void xfs_dir2_sf_toino8(xfs_da_args_t *args); #endif /* XFS_BIG_INUMS */ + +/* + * Inode numbers in short-form directories can come in two versions, + * either 4 bytes or 8 bytes wide. These helpers deal with the + * two forms transparently by looking at the headers i8count field. + */ +static xfs_ino_t +xfs_dir2_sf_get_ino( + struct xfs_dir2_sf *sfp, + xfs_dir2_inou_t *from) +{ + if (sfp->hdr.i8count) + return XFS_GET_DIR_INO8(from->i8); + else + return XFS_GET_DIR_INO4(from->i4); +} + +static void +xfs_dir2_sf_put_ino( + struct xfs_dir2_sf *sfp, + xfs_dir2_inou_t *to, + xfs_ino_t ino) +{ + if (sfp->hdr.i8count) + XFS_PUT_DIR_INO8(ino, to->i8); + else + XFS_PUT_DIR_INO4(ino, to->i4); +} + +xfs_ino_t +xfs_dir2_sf_get_parent_ino( + struct xfs_dir2_sf *sfp) +{ + return xfs_dir2_sf_get_ino(sfp, &sfp->hdr.parent); +} + +static void +xfs_dir2_sf_put_parent_ino( + struct xfs_dir2_sf *sfp, + xfs_ino_t ino) +{ + xfs_dir2_sf_put_ino(sfp, &sfp->hdr.parent, ino); +} + +/* + * In short-form directory entries the inode numbers are stored at variable + * offset behind the entry name. The inode numbers may only be accessed + * through the helpers below. + */ +static xfs_dir2_inou_t * +xfs_dir2_sfe_inop( + struct xfs_dir2_sf_entry *sfep) +{ + return (xfs_dir2_inou_t *)&sfep->name[sfep->namelen]; +} + +xfs_ino_t +xfs_dir2_sfe_get_ino( + struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep) +{ + return xfs_dir2_sf_get_ino(sfp, xfs_dir2_sfe_inop(sfep)); +} + +static void +xfs_dir2_sfe_put_ino( + struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep, + xfs_ino_t ino) +{ + xfs_dir2_sf_put_ino(sfp, xfs_dir2_sfe_inop(sfep), ino); +} + /* * Given a block directory (dp/block), calculate its size as a shortform (sf) * directory and a header for the sf directory, if it will fit it the @@ -138,7 +211,7 @@ xfs_dir2_block_sfsize( */ sfhp->count = count; sfhp->i8count = i8count; - xfs_dir2_sf_put_inumber((xfs_dir2_sf_t *)sfhp, &parent, &sfhp->parent); + xfs_dir2_sf_put_parent_ino((xfs_dir2_sf_t *)sfhp, parent); return size; } @@ -165,7 +238,6 @@ xfs_dir2_block_to_sf( char *ptr; /* current data pointer */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ xfs_dir2_sf_t *sfp; /* shortform structure */ - xfs_ino_t temp; trace_xfs_dir2_block_to_sf(args); @@ -233,7 +305,7 @@ xfs_dir2_block_to_sf( else if (dep->namelen == 2 && dep->name[0] == '.' && dep->name[1] == '.') ASSERT(be64_to_cpu(dep->inumber) == - xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent)); + xfs_dir2_sf_get_parent_ino(sfp)); /* * Normal entry, copy it into shortform. */ @@ -243,9 +315,9 @@ xfs_dir2_block_to_sf( (xfs_dir2_data_aoff_t) ((char *)dep - (char *)block)); memcpy(sfep->name, dep->name, dep->namelen); - temp = be64_to_cpu(dep->inumber); - xfs_dir2_sf_put_inumber(sfp, &temp, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + be64_to_cpu(dep->inumber)); + sfep = xfs_dir2_sf_nextentry(sfp, sfep); } ptr += xfs_dir2_data_entsize(dep->namelen); @@ -406,8 +478,7 @@ xfs_dir2_sf_addname_easy( sfep->namelen = args->namelen; xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); /* * Update the header and inode. */ @@ -498,8 +569,7 @@ xfs_dir2_sf_addname_hard( sfep->namelen = args->namelen; xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); sfp->hdr.count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) @@ -618,14 +688,14 @@ xfs_dir2_sf_check( sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; offset = XFS_DIR2_DATA_FIRST_OFFSET; - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); i8count = ino > XFS_DIR2_MAX_SHORT_INUM; for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { ASSERT(xfs_dir2_sf_get_offset(sfep) >= offset); - ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); i8count += ino > XFS_DIR2_MAX_SHORT_INUM; offset = xfs_dir2_sf_get_offset(sfep) + @@ -686,7 +756,7 @@ xfs_dir2_sf_create( /* * Now can put in the inode number, since i8count is set. */ - xfs_dir2_sf_put_inumber(sfp, &pino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, pino); sfp->hdr.count = 0; dp->i_d.di_size = size; xfs_dir2_sf_check(args); @@ -759,7 +829,7 @@ xfs_dir2_sf_getdents( * Put .. entry unless we're starting past it. */ if (*offset <= dotdot_offset) { - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); if (filldir(dirent, "..", 2, dotdot_offset & 0x7fffffff, ino, DT_DIR)) { *offset = dotdot_offset & 0x7fffffff; return 0; @@ -779,7 +849,7 @@ xfs_dir2_sf_getdents( continue; } - ino = xfs_dir2_sf_get_inumber(sfp, xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); if (filldir(dirent, (char *)sfep->name, sfep->namelen, off & 0x7fffffff, ino, DT_UNKNOWN)) { *offset = off & 0x7fffffff; @@ -839,7 +909,7 @@ xfs_dir2_sf_lookup( */ if (args->namelen == 2 && args->name[0] == '.' && args->name[1] == '.') { - args->inumber = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + args->inumber = xfs_dir2_sf_get_parent_ino(sfp); args->cmpresult = XFS_CMP_EXACT; return XFS_ERROR(EEXIST); } @@ -858,8 +928,7 @@ xfs_dir2_sf_lookup( sfep->namelen); if (cmp != XFS_CMP_DIFFERENT && cmp != args->cmpresult) { args->cmpresult = cmp; - args->inumber = xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)); + args->inumber = xfs_dir2_sfe_get_ino(sfp, sfep); if (cmp == XFS_CMP_EXACT) return XFS_ERROR(EEXIST); ci_sfep = sfep; @@ -918,9 +987,8 @@ xfs_dir2_sf_removename( i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { - ASSERT(xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)) == - args->inumber); + ASSERT(xfs_dir2_sfe_get_ino(sfp, sfep) == + args->inumber); break; } } @@ -1040,10 +1108,10 @@ xfs_dir2_sf_replace( if (args->namelen == 2 && args->name[0] == '.' && args->name[1] == '.') { #if XFS_BIG_INUMS || defined(DEBUG) - ino = xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent); + ino = xfs_dir2_sf_get_parent_ino(sfp); ASSERT(args->inumber != ino); #endif - xfs_dir2_sf_put_inumber(sfp, &args->inumber, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, args->inumber); } /* * Normal entry, look for the name. @@ -1055,12 +1123,10 @@ xfs_dir2_sf_replace( if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { #if XFS_BIG_INUMS || defined(DEBUG) - ino = xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep)); + ino = xfs_dir2_sfe_get_ino(sfp, sfep); ASSERT(args->inumber != ino); #endif - xfs_dir2_sf_put_inumber(sfp, &args->inumber, - xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); break; } } @@ -1121,7 +1187,6 @@ xfs_dir2_sf_toino4( char *buf; /* old dir's buffer */ xfs_inode_t *dp; /* incore directory inode */ int i; /* entry index */ - xfs_ino_t ino; /* entry inode number */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ xfs_dir2_sf_t *oldsfp; /* old sf directory */ @@ -1162,8 +1227,7 @@ xfs_dir2_sf_toino4( */ sfp->hdr.count = oldsfp->hdr.count; sfp->hdr.i8count = 0; - ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); - xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ @@ -1175,9 +1239,8 @@ xfs_dir2_sf_toino4( sfep->namelen = oldsfep->namelen; sfep->offset = oldsfep->offset; memcpy(sfep->name, oldsfep->name, sfep->namelen); - ino = xfs_dir2_sf_get_inumber(oldsfp, - xfs_dir2_sf_inumberp(oldsfep)); - xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + xfs_dir2_sfe_get_ino(oldsfp, oldsfep)); } /* * Clean up the inode. @@ -1199,7 +1262,6 @@ xfs_dir2_sf_toino8( char *buf; /* old dir's buffer */ xfs_inode_t *dp; /* incore directory inode */ int i; /* entry index */ - xfs_ino_t ino; /* entry inode number */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ xfs_dir2_sf_t *oldsfp; /* old sf directory */ @@ -1240,8 +1302,7 @@ xfs_dir2_sf_toino8( */ sfp->hdr.count = oldsfp->hdr.count; sfp->hdr.i8count = 1; - ino = xfs_dir2_sf_get_inumber(oldsfp, &oldsfp->hdr.parent); - xfs_dir2_sf_put_inumber(sfp, &ino, &sfp->hdr.parent); + xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ @@ -1253,9 +1314,8 @@ xfs_dir2_sf_toino8( sfep->namelen = oldsfep->namelen; sfep->offset = oldsfep->offset; memcpy(sfep->name, oldsfep->name, sfep->namelen); - ino = xfs_dir2_sf_get_inumber(oldsfp, - xfs_dir2_sf_inumberp(oldsfep)); - xfs_dir2_sf_put_inumber(sfp, &ino, xfs_dir2_sf_inumberp(sfep)); + xfs_dir2_sfe_put_ino(sfp, sfep, + xfs_dir2_sfe_get_ino(oldsfp, oldsfep)); } /* * Clean up the inode. Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:31:15.343406344 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 09:32:00.390072451 +0200 @@ -90,28 +90,6 @@ static inline int xfs_dir2_sf_hdr_size(i ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } -static inline xfs_dir2_inou_t *xfs_dir2_sf_inumberp(xfs_dir2_sf_entry_t *sfep) -{ - return (xfs_dir2_inou_t *)&(sfep)->name[(sfep)->namelen]; -} - -static inline xfs_intino_t -xfs_dir2_sf_get_inumber(xfs_dir2_sf_t *sfp, xfs_dir2_inou_t *from) -{ - return ((sfp)->hdr.i8count == 0 ? \ - (xfs_intino_t)XFS_GET_DIR_INO4((from)->i4) : \ - (xfs_intino_t)XFS_GET_DIR_INO8((from)->i8)); -} - -static inline void xfs_dir2_sf_put_inumber(xfs_dir2_sf_t *sfp, xfs_ino_t *from, - xfs_dir2_inou_t *to) -{ - if ((sfp)->hdr.i8count == 0) - XFS_PUT_DIR_INO4(*(from), (to)->i4); - else - XFS_PUT_DIR_INO8(*(from), (to)->i8); -} - static inline xfs_dir2_data_aoff_t xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) { @@ -155,6 +133,9 @@ xfs_dir2_sf_nextentry(xfs_dir2_sf_t *sfp /* * Functions. */ +extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf *sfp); +extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, struct xfs_dir2_block *block, xfs_dir2_sf_hdr_t *sfhp); Index: xfs/fs/xfs/xfs_inum.h =================================================================== --- xfs.orig/fs/xfs/xfs_inum.h 2011-06-30 09:31:15.353406344 +0200 +++ xfs/fs/xfs/xfs_inum.h 2011-06-30 09:32:00.390072451 +0200 @@ -28,17 +28,6 @@ typedef __uint32_t xfs_agino_t; /* within allocation grp inode number */ -/* - * Useful inode bits for this kernel. - * Used in some places where having 64-bits in the 32-bit kernels - * costs too much. - */ -#if XFS_BIG_INUMS -typedef xfs_ino_t xfs_intino_t; -#else -typedef __uint32_t xfs_intino_t; -#endif - #define NULLFSINO ((xfs_ino_t)-1) #define NULLAGINO ((xfs_agino_t)-1) Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-06-30 09:31:15.000000000 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-06-30 09:32:00.393405784 +0200 @@ -1146,7 +1146,7 @@ xfs_dir2_sf_to_block( */ dep = (xfs_dir2_data_entry_t *) ((char *)block + XFS_DIR2_DATA_DOTDOT_OFFSET); - dep->inumber = cpu_to_be64(xfs_dir2_sf_get_inumber(sfp, &sfp->hdr.parent)); + dep->inumber = cpu_to_be64(xfs_dir2_sf_get_parent_ino(sfp)); dep->namelen = 2; dep->name[0] = dep->name[1] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); @@ -1195,8 +1195,7 @@ xfs_dir2_sf_to_block( * Copy a real entry. */ dep = (xfs_dir2_data_entry_t *)((char *)block + newoffset); - dep->inumber = cpu_to_be64(xfs_dir2_sf_get_inumber(sfp, - xfs_dir2_sf_inumberp(sfep))); + dep->inumber = cpu_to_be64(xfs_dir2_sfe_get_ino(sfp, sfep)); dep->namelen = sfep->namelen; memcpy(dep->name, sfep->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6hCa159871 for ; Thu, 7 Jul 2011 06:06:43 -0500 X-ASG-Debug-ID: 1310036802-1b1a015b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4724852E32 for ; Thu, 7 Jul 2011 04:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id QHz7EDilWPmiR6SX for ; Thu, 07 Jul 2011 04:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPq-0003uq-Ni for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:42 +0000 Message-Id: <20110707110642.697024790@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:46 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 11/28] xfs: kill the unused struct xfs_sync_work Subject: [PATCH 11/28] xfs: kill the unused struct xfs_sync_work References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_sync_work X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036803 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/linux-2.6/xfs_sync.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:30.203125879 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:39.093125768 +0200 @@ -21,14 +21,6 @@ struct xfs_mount; struct xfs_perag; -typedef struct xfs_sync_work { - struct list_head w_list; - struct xfs_mount *w_mount; - void *w_data; /* syncer routine argument */ - void (*w_syncer)(struct xfs_mount *, void *); - struct completion *w_completion; -} xfs_sync_work_t; - #define SYNC_WAIT 0x0001 /* wait for i/o to complete */ #define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6gjX159845 for ; Thu, 7 Jul 2011 06:06:42 -0500 X-ASG-Debug-ID: 1310036801-1b1501570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 92C4E52CE4 for ; Thu, 7 Jul 2011 04:06:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Aujr4he8WiUtTG1N for ; Thu, 07 Jul 2011 04:06:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPp-0003qa-3K for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:41 +0000 Message-Id: <20110707110641.054317848@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:38 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/28] xfs: work around bogus gcc warning in xfs_allocbt_init_cursor Subject: [PATCH 03/28] xfs: work around bogus gcc warning in xfs_allocbt_init_cursor References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-fix-xfs_allocbt_init_cursor-warning X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036801 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean GCC 4.6 complains about an array subscript is above array bounds when using the btree index to index into the agf_levels array. The only two indices passed in are 0 and 1, and we have an assert insuring that. Replace the trick of using the array index directly with using constants in the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-06-17 14:16:27.929065669 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-06-17 14:17:22.145729599 +0200 @@ -427,13 +427,16 @@ xfs_allocbt_init_cursor( cur->bc_tp = tp; cur->bc_mp = mp; - cur->bc_nlevels = be32_to_cpu(agf->agf_levels[btnum]); cur->bc_btnum = btnum; cur->bc_blocklog = mp->m_sb.sb_blocklog; - cur->bc_ops = &xfs_allocbt_ops; - if (btnum == XFS_BTNUM_CNT) + + if (btnum == XFS_BTNUM_CNT) { + cur->bc_nlevels = be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]); cur->bc_flags = XFS_BTREE_LASTREC_UPDATE; + } else { + cur->bc_nlevels = be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]); + } cur->bc_private.a.agbp = agbp; cur->bc_private.a.agno = agno; From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6jZP159941 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036804-123c019e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0AF1C52E0A for ; Thu, 7 Jul 2011 04:06:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id aazcZrIn38uTDLjg for ; Thu, 07 Jul 2011 04:06:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPs-0003zW-GI for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:44 +0000 Message-Id: <20110707110644.464527108@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:55 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 20/28] xfs: cleanup the definition of struct xfs_dir2_data_entry Subject: [PATCH 20/28] xfs: cleanup the definition of struct xfs_dir2_data_entry References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_data_entry X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036805 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the tag member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-07-06 15:46:31.185403579 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-07-07 09:55:02.398763553 +0200 @@ -98,14 +98,15 @@ typedef struct xfs_dir2_data_hdr { /* * Active entry in a data block. Aligned to 8 bytes. - * Tag appears as the last 2 bytes. + * + * After the variable length name field there is a 2 byte tag field, which + * can be accessed using xfs_dir2_data_entry_tag_p. */ typedef struct xfs_dir2_data_entry { __be64 inumber; /* inode number */ __u8 namelen; /* name length */ - __u8 name[1]; /* name bytes, no null */ - /* variable offset */ - __be16 tag; /* starting offset of us */ + __u8 name[]; /* name bytes, no null */ + /* __be16 tag; */ /* starting offset of us */ } xfs_dir2_data_entry_t; /* From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6jxn159923 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036803-219601240000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 20751176A800 for ; Thu, 7 Jul 2011 04:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 2XiiZtx6ouLQEr96 for ; Thu, 07 Jul 2011 04:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPr-0003ww-Ho for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:43 +0000 Message-Id: <20110707110643.501734294@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:50 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 15/28] xfs: cleanup the definition of struct xfs_dir2_sf_entry Subject: [PATCH 15/28] xfs: cleanup the definition of struct xfs_dir2_sf_entry References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_sf_entry X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the inumber member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Based on this clean up the helpers to calculate the entry size. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:36:36.195433702 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:36:40.328766826 +0200 @@ -371,7 +371,7 @@ xfs_dir2_sf_addname( /* * Compute entry (and change in) size. */ - add_entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); + add_entsize = xfs_dir2_sf_entsize(sfp, args->namelen); incr_isize = add_entsize; objchange = 0; #if XFS_BIG_INUMS @@ -465,7 +465,7 @@ xfs_dir2_sf_addname_easy( /* * Grow the in-inode space. */ - xfs_idata_realloc(dp, xfs_dir2_sf_entsize_byname(sfp, args->namelen), + xfs_idata_realloc(dp, xfs_dir2_sf_entsize(sfp, args->namelen), XFS_DATA_FORK); /* * Need to set up again due to realloc of the inode data. @@ -1001,7 +1001,7 @@ xfs_dir2_sf_removename( * Calculate sizes. */ byteoff = (int)((char *)sfep - (char *)sfp); - entsize = xfs_dir2_sf_entsize_byname(sfp, args->namelen); + entsize = xfs_dir2_sf_entsize(sfp, args->namelen); newsize = oldsize - entsize; /* * Copy the part if any after the removed entry, sliding it down. Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:36:36.208767034 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:37:15.648765034 +0200 @@ -76,10 +76,13 @@ typedef struct xfs_dir2_sf_hdr { } __arch_pack xfs_dir2_sf_hdr_t; typedef struct xfs_dir2_sf_entry { - __uint8_t namelen; /* actual name length */ + __u8 namelen; /* actual name length */ xfs_dir2_sf_off_t offset; /* saved offset */ - __uint8_t name[1]; /* name, variable size */ - xfs_dir2_inou_t inumber; /* inode number, var. offset */ + __u8 name[]; /* name, variable size */ + /* + * A xfs_dir2_ino8_t or xfs_dir2_ino4_t follows here, at a + * variable offset after the name. + */ } __arch_pack xfs_dir2_sf_entry_t; static inline int xfs_dir2_sf_hdr_size(int i8count) @@ -101,19 +104,14 @@ xfs_dir2_sf_put_offset(xfs_dir2_sf_entry INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); } -static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_hdr_t *sfp, int len) -{ - return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (len) - \ - ((sfp)->i8count == 0) * \ - ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); -} - static inline int -xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) +xfs_dir2_sf_entsize(struct xfs_dir2_sf_hdr *hdr, int len) { - return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (sfep)->namelen - \ - ((sfp)->i8count == 0) * \ - ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); + return sizeof(struct xfs_dir2_sf_entry) + /* namelen + offset */ + len + /* name */ + (hdr->i8count ? /* ino */ + sizeof(xfs_dir2_ino8_t) : + sizeof(xfs_dir2_ino4_t)); } static inline struct xfs_dir2_sf_entry * @@ -128,7 +126,7 @@ xfs_dir2_sf_nextentry(struct xfs_dir2_sf struct xfs_dir2_sf_entry *sfep) { return (struct xfs_dir2_sf_entry *) - ((char *)sfep + xfs_dir2_sf_entsize_byentry(hdr, sfep)); + ((char *)sfep + xfs_dir2_sf_entsize(hdr, sfep->namelen)); } /* From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6jKu159927 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036804-1245018b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 75A6252E32 for ; Thu, 7 Jul 2011 04:06:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 5uGNhIo0lV9k4Vf4 for ; Thu, 07 Jul 2011 04:06:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPr-0003xy-To for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:43 +0000 Message-Id: <20110707110643.885126908@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:52 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 17/28] xfs: kill struct xfs_dir2_block Subject: [PATCH 17/28] xfs: kill struct xfs_dir2_block References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_block_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the confusing xfs_dir2_block structure. It is supposed to describe an XFS dir2 block format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_dir2_block.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.h 2011-07-06 15:40:50.015420851 +0200 +++ xfs/fs/xfs/xfs_dir2_block.h 2011-07-06 15:41:36.695418483 +0200 @@ -19,10 +19,30 @@ #define __XFS_DIR2_BLOCK_H__ /* - * xfs_dir2_block.h - * Directory version 2, single block format structures + * Directory version 2, single block format structures. + * + * The single block format looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * | ... | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * +-------------------------------------------------+ + * | xfs_dir2_block_tail_t | + * +-------------------------------------------------+ + * + * As all the entries are variable size structures the accessors in this + * file and xfs_dir2_data.h should be used to iterate over them. */ - struct uio; struct xfs_dabuf; struct xfs_da_args; @@ -32,14 +52,6 @@ struct xfs_inode; struct xfs_mount; struct xfs_trans; -/* - * The single block format is as follows: - * xfs_dir2_data_hdr_t structure - * xfs_dir2_data_entry_t and xfs_dir2_data_unused_t structures - * xfs_dir2_leaf_entry_t structures - * xfs_dir2_block_tail_t structure - */ - #define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ typedef struct xfs_dir2_block_tail { @@ -48,16 +60,6 @@ typedef struct xfs_dir2_block_tail { } xfs_dir2_block_tail_t; /* - * Generic single-block structure, for xfs_db. - */ -typedef struct xfs_dir2_block { - xfs_dir2_data_hdr_t hdr; /* magic XFS_DIR2_BLOCK_MAGIC */ - xfs_dir2_data_union_t u[1]; - xfs_dir2_leaf_entry_t leaf[1]; - xfs_dir2_block_tail_t tail; -} xfs_dir2_block_t; - -/* * Pointer to the leaf header embedded in a data block (1-block format) */ static inline xfs_dir2_block_tail_t * Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-06 15:40:50.025420852 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-06 15:41:20.285419318 +0200 @@ -437,7 +437,6 @@ xfs_dir2_block_getdents( xfs_off_t *offset, filldir_t filldir) { - xfs_dir2_block_t *block; /* directory block structure */ xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -471,14 +470,13 @@ xfs_dir2_block_getdents( * We'll skip entries before this. */ wantoff = xfs_dir2_dataptr_to_off(mp, *offset); - block = bp->data; - hdr = &block->hdr; + hdr = bp->data; xfs_dir2_data_check(dp, bp); /* * Set up values for the loop. */ btp = xfs_dir2_block_tail_p(mp, hdr); - ptr = (char *)block->u; + ptr = (char *)(hdr + 1); endptr = (char *)xfs_dir2_block_leaf_p(btp); /* @@ -1020,7 +1018,6 @@ xfs_dir2_sf_to_block( xfs_da_args_t *args) /* operation arguments */ { xfs_dir2_db_t blkno; /* dir-relative block # (0) */ - xfs_dir2_block_t *block; /* block structure */ xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ @@ -1091,8 +1088,7 @@ xfs_dir2_sf_to_block( kmem_free(sfp); return error; } - block = bp->data; - hdr = &block->hdr; + hdr = bp->data; hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); /* * Compute size of block "tail" area. @@ -1103,7 +1099,7 @@ xfs_dir2_sf_to_block( * The whole thing is initialized to free by the init routine. * Say we're using the leaf and tail area. */ - dup = (xfs_dir2_data_unused_t *)block->u; + dup = (xfs_dir2_data_unused_t *)(hdr + 1); needlog = needscan = 0; xfs_dir2_data_use_free(tp, bp, dup, mp->m_dirblksize - i, i, &needlog, &needscan); Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:40:50.038754184 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:41:20.288752651 +0200 @@ -226,7 +226,7 @@ xfs_dir2_block_to_sf( int size, /* shortform directory size */ xfs_dir2_sf_hdr_t *sfhp) /* shortform directory hdr */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ xfs_dir2_data_entry_t *dep; /* data entry pointer */ xfs_inode_t *dp; /* incore directory inode */ @@ -248,8 +248,8 @@ xfs_dir2_block_to_sf( * Make a copy of the block data, so we can shrink the inode * and add local data. */ - block = kmem_alloc(mp->m_dirblksize, KM_SLEEP); - memcpy(block, bp->data, mp->m_dirblksize); + hdr = kmem_alloc(mp->m_dirblksize, KM_SLEEP); + memcpy(hdr, bp->data, mp->m_dirblksize); logflags = XFS_ILOG_CORE; if ((error = xfs_dir2_shrink_inode(args, mp->m_dirdatablk, bp))) { ASSERT(error != ENOSPC); @@ -277,8 +277,8 @@ xfs_dir2_block_to_sf( /* * Set up to loop over the block's entries. */ - btp = xfs_dir2_block_tail_p(mp, &block->hdr); - ptr = (char *)block->u; + btp = xfs_dir2_block_tail_p(mp, hdr); + ptr = (char *)(hdr + 1); endptr = (char *)xfs_dir2_block_leaf_p(btp); sfep = xfs_dir2_sf_firstentry(sfp); /* @@ -314,7 +314,7 @@ xfs_dir2_block_to_sf( sfep->namelen = dep->namelen; xfs_dir2_sf_put_offset(sfep, (xfs_dir2_data_aoff_t) - ((char *)dep - (char *)block)); + ((char *)dep - (char *)hdr)); memcpy(sfep->name, dep->name, dep->namelen); xfs_dir2_sfe_put_ino(sfp, sfep, be64_to_cpu(dep->inumber)); @@ -327,7 +327,7 @@ xfs_dir2_block_to_sf( xfs_dir2_sf_check(args); out: xfs_trans_log_inode(args->trans, dp, logflags); - kmem_free(block); + kmem_free(hdr); return error; } From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6jhO159945 for ; Thu, 7 Jul 2011 06:06:46 -0500 X-ASG-Debug-ID: 1310036801-15c5017e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F302352E06 for ; Thu, 7 Jul 2011 04:06:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id QmEFCcUpMABvUjgB for ; Thu, 07 Jul 2011 04:06:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPp-0003rA-9C for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:41 +0000 Message-Id: <20110707110641.244533949@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:39 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/28] xfs: split xfs_setattr Subject: [PATCH 04/28] xfs: split xfs_setattr References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-split-setattr X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036801 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Split up xfs_setattr into two functions, one for the complex truncate handling, and one for the trivial attribute updates. Also move both new routines to xfs_iops.c as they are fairly Linux-specific. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-06-29 11:29:02.684972774 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-06-29 11:29:07.154948558 +0200 @@ -39,6 +39,7 @@ #include "xfs_buf_item.h" #include "xfs_utils.h" #include "xfs_vnodeops.h" +#include "xfs_inode_item.h" #include "xfs_trace.h" #include @@ -497,12 +498,449 @@ xfs_vn_getattr( return 0; } +int +xfs_setattr_nonsize( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + xfs_mount_t *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + xfs_trans_t *tp; + int error; + uid_t uid = 0, iuid = 0; + gid_t gid = 0, igid = 0; + struct xfs_dquot *udqp = NULL, *gdqp = NULL; + struct xfs_dquot *olddquot1 = NULL, *olddquot2 = NULL; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT((mask & ATTR_SIZE) == 0); + + /* + * If disk quotas is on, we make sure that the dquots do exist on disk, + * before we start any other transactions. Trying to do this later + * is messy. We don't care to take a readlock to look at the ids + * in inode here, because we can't hold it across the trans_reserve. + * If the IDs do change before we take the ilock, we're covered + * because the i_*dquot fields will get updated anyway. + */ + if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { + uint qflags = 0; + + if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { + uid = iattr->ia_uid; + qflags |= XFS_QMOPT_UQUOTA; + } else { + uid = ip->i_d.di_uid; + } + if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { + gid = iattr->ia_gid; + qflags |= XFS_QMOPT_GQUOTA; + } else { + gid = ip->i_d.di_gid; + } + + /* + * We take a reference when we initialize udqp and gdqp, + * so it is important that we never blindly double trip on + * the same variable. See xfs_create() for an example. + */ + ASSERT(udqp == NULL); + ASSERT(gdqp == NULL); + error = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), + qflags, &udqp, &gdqp); + if (error) + return error; + } + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (error) + goto out_dqrele; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * These IDs could have changed since we last looked at them. + * But, we're assured that if the ownership did change + * while we didn't have the inode locked, inode's dquot(s) + * would have changed also. + */ + iuid = ip->i_d.di_uid; + igid = ip->i_d.di_gid; + gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; + uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; + + /* + * Do a quota reservation only if uid/gid is actually + * going to change. + */ + if (XFS_IS_QUOTA_RUNNING(mp) && + ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || + (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { + ASSERT(tp); + error = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, + capable(CAP_FOWNER) ? + XFS_QMOPT_FORCE_RES : 0); + if (error) /* out of quota */ + goto out_trans_cancel; + } + } + + xfs_trans_ijoin(tp, ip); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * CAP_FSETID overrides the following restrictions: + * + * The set-user-ID and set-group-ID bits of a file will be + * cleared upon successful return from chown() + */ + if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && + !capable(CAP_FSETID)) + ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); + + /* + * Change the ownerships and register quota modifications + * in the transaction. + */ + if (iuid != uid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { + ASSERT(mask & ATTR_UID); + ASSERT(udqp); + olddquot1 = xfs_qm_vop_chown(tp, ip, + &ip->i_udquot, udqp); + } + ip->i_d.di_uid = uid; + inode->i_uid = uid; + } + if (igid != gid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { + ASSERT(!XFS_IS_PQUOTA_ON(mp)); + ASSERT(mask & ATTR_GID); + ASSERT(gdqp); + olddquot2 = xfs_qm_vop_chown(tp, ip, + &ip->i_gdquot, gdqp); + } + ip->i_d.di_gid = gid; + inode->i_gid = gid; + } + } + + /* + * Change file access modes. + */ + if (mask & ATTR_MODE) { + umode_t mode = iattr->ia_mode; + + if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) + mode &= ~S_ISGID; + + ip->i_d.di_mode &= S_IFMT; + ip->i_d.di_mode |= mode & ~S_IFMT; + + inode->i_mode &= S_IFMT; + inode->i_mode |= mode & ~S_IFMT; + } + + /* + * Change file access or modified times. + */ + if (mask & ATTR_ATIME) { + inode->i_atime = iattr->ia_atime; + ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; + ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + error = xfs_trans_commit(tp, 0); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + /* + * Release any dquot(s) the inode had kept before chown. + */ + xfs_qm_dqrele(olddquot1); + xfs_qm_dqrele(olddquot2); + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + + if (error) + return XFS_ERROR(error); + + /* + * XXX(hch): Updating the ACL entries is not atomic vs the i_mode + * update. We could avoid this with linked transactions + * and passing down the transaction pointer all the way + * to attr_set. No previous user of the generic + * Posix ACL code seems to care about this issue either. + */ + if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { + error = -xfs_acl_chmod(inode); + if (error) + return XFS_ERROR(error); + } + + return 0; + +out_trans_cancel: + xfs_trans_cancel(tp, 0); + xfs_iunlock(ip, XFS_ILOCK_EXCL); +out_dqrele: + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + return error; +} + +/* + * Truncate file. Must have write permission and not be a directory. + */ +int +xfs_setattr_size( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + struct xfs_mount *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + struct xfs_trans *tp; + int error; + uint lock_flags; + uint commit_flags = 0; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT(S_ISREG(ip->i_d.di_mode)); + ASSERT((mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| + ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID| + ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); + + lock_flags = XFS_ILOCK_EXCL; + if (!(flags & XFS_ATTR_NOLOCK)) + lock_flags |= XFS_IOLOCK_EXCL; + xfs_ilock(ip, lock_flags); + + /* + * Short circuit the truncate case for zero length files. + */ + if (iattr->ia_size == 0 && + ip->i_size == 0 && ip->i_d.di_nextents == 0) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; + if (mask & ATTR_CTIME) { + inode->i_mtime = inode->i_ctime = + current_fs_time(inode->i_sb); + xfs_mark_inode_dirty_sync(ip); + } + goto out_unlock; + } + + /* + * Make sure that the dquots are attached to the inode. + */ + error = xfs_qm_dqattach_locked(ip, 0); + if (error) + goto out_unlock; + + /* + * Now we can make the changes. Before we join the inode to the + * transaction, take care of the part of the truncation that must be + * done without the inode lock. This needs to be done before joining + * the inode to the transaction, because the inode cannot be unlocked + * once it is a part of the transaction. + */ + if (iattr->ia_size > ip->i_size) { + /* + * Do the first part of growing a file: zero any data in the + * last block that is beyond the old EOF. We need to do this + * before the inode is joined to the transaction to modify + * i_size. + */ + error = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); + if (error) + goto out_unlock; + } + xfs_iunlock(ip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; + + /* + * We are going to log the inode size change in this transaction so + * any previous writes that are beyond the on disk EOF and the new + * EOF that have not been written out need to be written here. If we + * do not write the data out, we expose ourselves to the null files + * problem. + * + * Only flush from the on disk size to the smaller of the in memory + * file size or the new size as that's the range we really care about + * here and prevents waiting for other data not within the range we + * care about here. + */ + if (ip->i_size != ip->i_d.di_size && iattr->ia_size > ip->i_d.di_size) { + error = xfs_flush_pages(ip, ip->i_d.di_size, iattr->ia_size, + XBF_ASYNC, FI_NONE); + if (error) + goto out_unlock; + } + + /* + * Wait for all I/O to complete. + */ + xfs_ioend_wait(ip); + + error = -block_truncate_page(inode->i_mapping, iattr->ia_size, + xfs_get_blocks); + if (error) + goto out_unlock; + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, + XFS_TRANS_PERM_LOG_RES, + XFS_ITRUNCATE_LOG_COUNT); + if (error) + goto out_trans_cancel; + + truncate_setsize(inode, iattr->ia_size); + + commit_flags = XFS_TRANS_RELEASE_LOG_RES; + lock_flags |= XFS_ILOCK_EXCL; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + xfs_trans_ijoin(tp, ip); + + /* + * Only change the c/mtime if we are changing the size or we are + * explicitly asked to change it. This handles the semantic difference + * between truncate() and ftruncate() as implemented in the VFS. + * + * The regular truncate() case without ATTR_CTIME and ATTR_MTIME is a + * special case where we need to update the times despite not having + * these flags set. For all other operations the VFS set these flags + * explicitly if it wants a timestamp update. + */ + if (iattr->ia_size != ip->i_size && + (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { + iattr->ia_ctime = iattr->ia_mtime = + current_fs_time(inode->i_sb); + mask |= ATTR_CTIME | ATTR_MTIME; + } + + if (iattr->ia_size > ip->i_size) { + ip->i_d.di_size = iattr->ia_size; + ip->i_size = iattr->ia_size; + } else if (iattr->ia_size <= ip->i_size || + (iattr->ia_size == 0 && ip->i_d.di_nextents)) { + /* + * Signal a sync transaction unless we are truncating an + * already unlinked file on a wsync filesystem. + */ + error = xfs_itruncate_finish(&tp, ip, iattr->ia_size, + XFS_DATA_FORK, + ((ip->i_d.di_nlink != 0 || + !(mp->m_flags & XFS_MOUNT_WSYNC)) + ? 1 : 0)); + if (error) + goto out_trans_abort; + + /* + * Truncated "down", so we're removing references to old data + * here - if we delay flushing for a long time, we expose + * ourselves unduly to the notorious NULL files problem. So, + * we mark this inode and flush it when the file is closed, + * and do not wait the usual (long) time for writeout. + */ + xfs_iflags_set(ip, XFS_ITRUNCATED); + } + + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + + error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); +out_unlock: + if (lock_flags) + xfs_iunlock(ip, lock_flags); + return error; + +out_trans_abort: + commit_flags |= XFS_TRANS_ABORT; +out_trans_cancel: + xfs_trans_cancel(tp, commit_flags); + goto out_unlock; +} + STATIC int xfs_vn_setattr( struct dentry *dentry, struct iattr *iattr) { - return -xfs_setattr(XFS_I(dentry->d_inode), iattr, 0); + if (iattr->ia_valid & ATTR_SIZE) + return -xfs_setattr_size(XFS_I(dentry->d_inode), iattr, 0); + return -xfs_setattr_nonsize(XFS_I(dentry->d_inode), iattr, 0); } #define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) Index: xfs/fs/xfs/linux-2.6/xfs_acl.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_acl.c 2011-06-29 11:29:02.698306035 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_acl.c 2011-06-29 11:29:07.154948558 +0200 @@ -264,7 +264,7 @@ xfs_set_mode(struct inode *inode, mode_t iattr.ia_mode = mode; iattr.ia_ctime = current_fs_time(inode->i_sb); - error = -xfs_setattr(XFS_I(inode), &iattr, XFS_ATTR_NOACL); + error = -xfs_setattr_nonsize(XFS_I(inode), &iattr, XFS_ATTR_NOACL); } return error; Index: xfs/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_file.c 2011-06-29 11:29:02.711639297 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_file.c 2011-06-29 11:29:07.158281874 +0200 @@ -944,7 +944,7 @@ xfs_file_fallocate( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = new_size; - error = -xfs_setattr(ip, &iattr, XFS_ATTR_NOLOCK); + error = -xfs_setattr_size(ip, &iattr, XFS_ATTR_NOLOCK); } out_unlock: Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:02.721639242 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 11:29:07.158281874 +0200 @@ -50,430 +50,6 @@ #include "xfs_vnodeops.h" #include "xfs_trace.h" -int -xfs_setattr( - struct xfs_inode *ip, - struct iattr *iattr, - int flags) -{ - xfs_mount_t *mp = ip->i_mount; - struct inode *inode = VFS_I(ip); - int mask = iattr->ia_valid; - xfs_trans_t *tp; - int code; - uint lock_flags; - uint commit_flags=0; - uid_t uid=0, iuid=0; - gid_t gid=0, igid=0; - struct xfs_dquot *udqp, *gdqp, *olddquot1, *olddquot2; - int need_iolock = 1; - - trace_xfs_setattr(ip); - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return XFS_ERROR(EROFS); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - code = -inode_change_ok(inode, iattr); - if (code) - return code; - - olddquot1 = olddquot2 = NULL; - udqp = gdqp = NULL; - - /* - * If disk quotas is on, we make sure that the dquots do exist on disk, - * before we start any other transactions. Trying to do this later - * is messy. We don't care to take a readlock to look at the ids - * in inode here, because we can't hold it across the trans_reserve. - * If the IDs do change before we take the ilock, we're covered - * because the i_*dquot fields will get updated anyway. - */ - if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { - uint qflags = 0; - - if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { - uid = iattr->ia_uid; - qflags |= XFS_QMOPT_UQUOTA; - } else { - uid = ip->i_d.di_uid; - } - if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { - gid = iattr->ia_gid; - qflags |= XFS_QMOPT_GQUOTA; - } else { - gid = ip->i_d.di_gid; - } - - /* - * We take a reference when we initialize udqp and gdqp, - * so it is important that we never blindly double trip on - * the same variable. See xfs_create() for an example. - */ - ASSERT(udqp == NULL); - ASSERT(gdqp == NULL); - code = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), - qflags, &udqp, &gdqp); - if (code) - return code; - } - - /* - * For the other attributes, we acquire the inode lock and - * first do an error checking pass. - */ - tp = NULL; - lock_flags = XFS_ILOCK_EXCL; - if (flags & XFS_ATTR_NOLOCK) - need_iolock = 0; - if (!(mask & ATTR_SIZE)) { - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); - commit_flags = 0; - code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), - 0, 0, 0); - if (code) { - lock_flags = 0; - goto error_return; - } - } else { - if (need_iolock) - lock_flags |= XFS_IOLOCK_EXCL; - } - - xfs_ilock(ip, lock_flags); - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * These IDs could have changed since we last looked at them. - * But, we're assured that if the ownership did change - * while we didn't have the inode locked, inode's dquot(s) - * would have changed also. - */ - iuid = ip->i_d.di_uid; - igid = ip->i_d.di_gid; - gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; - uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; - - /* - * Do a quota reservation only if uid/gid is actually - * going to change. - */ - if (XFS_IS_QUOTA_RUNNING(mp) && - ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || - (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { - ASSERT(tp); - code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, - capable(CAP_FOWNER) ? - XFS_QMOPT_FORCE_RES : 0); - if (code) /* out of quota */ - goto error_return; - } - } - - /* - * Truncate file. Must have write permission and not be a directory. - */ - if (mask & ATTR_SIZE) { - /* Short circuit the truncate case for zero length files */ - if (iattr->ia_size == 0 && - ip->i_size == 0 && ip->i_d.di_nextents == 0) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - if (mask & ATTR_CTIME) { - inode->i_mtime = inode->i_ctime = - current_fs_time(inode->i_sb); - xfs_mark_inode_dirty_sync(ip); - } - code = 0; - goto error_return; - } - - if (S_ISDIR(ip->i_d.di_mode)) { - code = XFS_ERROR(EISDIR); - goto error_return; - } else if (!S_ISREG(ip->i_d.di_mode)) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - - /* - * Make sure that the dquots are attached to the inode. - */ - code = xfs_qm_dqattach_locked(ip, 0); - if (code) - goto error_return; - - /* - * Now we can make the changes. Before we join the inode - * to the transaction, if ATTR_SIZE is set then take care of - * the part of the truncation that must be done without the - * inode lock. This needs to be done before joining the inode - * to the transaction, because the inode cannot be unlocked - * once it is a part of the transaction. - */ - if (iattr->ia_size > ip->i_size) { - /* - * Do the first part of growing a file: zero any data - * in the last block that is beyond the old EOF. We - * need to do this before the inode is joined to the - * transaction to modify the i_size. - */ - code = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); - if (code) - goto error_return; - } - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - - /* - * We are going to log the inode size change in this - * transaction so any previous writes that are beyond the on - * disk EOF and the new EOF that have not been written out need - * to be written here. If we do not write the data out, we - * expose ourselves to the null files problem. - * - * Only flush from the on disk size to the smaller of the in - * memory file size or the new size as that's the range we - * really care about here and prevents waiting for other data - * not within the range we care about here. - */ - if (ip->i_size != ip->i_d.di_size && - iattr->ia_size > ip->i_d.di_size) { - code = xfs_flush_pages(ip, - ip->i_d.di_size, iattr->ia_size, - XBF_ASYNC, FI_NONE); - if (code) - goto error_return; - } - - /* wait for all I/O to complete */ - xfs_ioend_wait(ip); - - code = -block_truncate_page(inode->i_mapping, iattr->ia_size, - xfs_get_blocks); - if (code) - goto error_return; - - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); - code = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, - XFS_TRANS_PERM_LOG_RES, - XFS_ITRUNCATE_LOG_COUNT); - if (code) - goto error_return; - - truncate_setsize(inode, iattr->ia_size); - - commit_flags = XFS_TRANS_RELEASE_LOG_RES; - lock_flags |= XFS_ILOCK_EXCL; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - - /* - * Only change the c/mtime if we are changing the size - * or we are explicitly asked to change it. This handles - * the semantic difference between truncate() and ftruncate() - * as implemented in the VFS. - * - * The regular truncate() case without ATTR_CTIME and ATTR_MTIME - * is a special case where we need to update the times despite - * not having these flags set. For all other operations the - * VFS set these flags explicitly if it wants a timestamp - * update. - */ - if (iattr->ia_size != ip->i_size && - (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { - iattr->ia_ctime = iattr->ia_mtime = - current_fs_time(inode->i_sb); - mask |= ATTR_CTIME | ATTR_MTIME; - } - - if (iattr->ia_size > ip->i_size) { - ip->i_d.di_size = iattr->ia_size; - ip->i_size = iattr->ia_size; - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - } else if (iattr->ia_size <= ip->i_size || - (iattr->ia_size == 0 && ip->i_d.di_nextents)) { - /* - * signal a sync transaction unless - * we're truncating an already unlinked - * file on a wsync filesystem - */ - code = xfs_itruncate_finish(&tp, ip, iattr->ia_size, - XFS_DATA_FORK, - ((ip->i_d.di_nlink != 0 || - !(mp->m_flags & XFS_MOUNT_WSYNC)) - ? 1 : 0)); - if (code) - goto abort_return; - /* - * Truncated "down", so we're removing references - * to old data here - if we now delay flushing for - * a long time, we expose ourselves unduly to the - * notorious NULL files problem. So, we mark this - * vnode and flush it when the file is closed, and - * do not wait the usual (long) time for writeout. - */ - xfs_iflags_set(ip, XFS_ITRUNCATED); - } - } else if (tp) { - xfs_trans_ijoin(tp, ip); - } - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * CAP_FSETID overrides the following restrictions: - * - * The set-user-ID and set-group-ID bits of a file will be - * cleared upon successful return from chown() - */ - if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && - !capable(CAP_FSETID)) { - ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); - } - - /* - * Change the ownerships and register quota modifications - * in the transaction. - */ - if (iuid != uid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { - ASSERT(mask & ATTR_UID); - ASSERT(udqp); - olddquot1 = xfs_qm_vop_chown(tp, ip, - &ip->i_udquot, udqp); - } - ip->i_d.di_uid = uid; - inode->i_uid = uid; - } - if (igid != gid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { - ASSERT(!XFS_IS_PQUOTA_ON(mp)); - ASSERT(mask & ATTR_GID); - ASSERT(gdqp); - olddquot2 = xfs_qm_vop_chown(tp, ip, - &ip->i_gdquot, gdqp); - } - ip->i_d.di_gid = gid; - inode->i_gid = gid; - } - } - - /* - * Change file access modes. - */ - if (mask & ATTR_MODE) { - umode_t mode = iattr->ia_mode; - - if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) - mode &= ~S_ISGID; - - ip->i_d.di_mode &= S_IFMT; - ip->i_d.di_mode |= mode & ~S_IFMT; - - inode->i_mode &= S_IFMT; - inode->i_mode |= mode & ~S_IFMT; - } - - /* - * Change file access or modified times. - */ - if (mask & ATTR_ATIME) { - inode->i_atime = iattr->ia_atime; - ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; - ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_CTIME) { - inode->i_ctime = iattr->ia_ctime; - ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; - ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_MTIME) { - inode->i_mtime = iattr->ia_mtime; - ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; - ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; - ip->i_update_core = 1; - } - - /* - * And finally, log the inode core if any attribute in it - * has been changed. - */ - if (mask & (ATTR_UID|ATTR_GID|ATTR_MODE| - ATTR_ATIME|ATTR_CTIME|ATTR_MTIME)) - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - - XFS_STATS_INC(xs_ig_attrchg); - - /* - * If this is a synchronous mount, make sure that the - * transaction goes to disk before returning to the user. - * This is slightly sub-optimal in that truncates require - * two sync transactions instead of one for wsync filesystems. - * One for the truncate and one for the timestamps since we - * don't want to change the timestamps unless we're sure the - * truncate worked. Truncates are less than 1% of the laddis - * mix so this probably isn't worth the trouble to optimize. - */ - code = 0; - if (mp->m_flags & XFS_MOUNT_WSYNC) - xfs_trans_set_sync(tp); - - code = xfs_trans_commit(tp, commit_flags); - - xfs_iunlock(ip, lock_flags); - - /* - * Release any dquot(s) the inode had kept before chown. - */ - xfs_qm_dqrele(olddquot1); - xfs_qm_dqrele(olddquot2); - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - - if (code) - return code; - - /* - * XXX(hch): Updating the ACL entries is not atomic vs the i_mode - * update. We could avoid this with linked transactions - * and passing down the transaction pointer all the way - * to attr_set. No previous user of the generic - * Posix ACL code seems to care about this issue either. - */ - if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { - code = -xfs_acl_chmod(inode); - if (code) - return XFS_ERROR(code); - } - - return 0; - - abort_return: - commit_flags |= XFS_TRANS_ABORT; - error_return: - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - if (tp) { - xfs_trans_cancel(tp, commit_flags); - } - if (lock_flags != 0) { - xfs_iunlock(ip, lock_flags); - } - return code; -} - /* * The maximum pathlen is 1024 bytes. Since the minimum file system * blocksize is 512 bytes, we can get a max of 2 extents back from @@ -2784,7 +2360,7 @@ xfs_change_file_space( iattr.ia_valid = ATTR_SIZE; iattr.ia_size = startoffset; - error = xfs_setattr(ip, &iattr, attr_flags); + error = xfs_setattr_size(ip, &iattr, attr_flags); if (error) return error; Index: xfs/fs/xfs/xfs_vnodeops.h =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.h 2011-06-29 11:29:02.734972504 +0200 +++ xfs/fs/xfs/xfs_vnodeops.h 2011-06-29 11:29:07.161615190 +0200 @@ -13,7 +13,8 @@ struct xfs_inode; struct xfs_iomap; -int xfs_setattr(struct xfs_inode *ip, struct iattr *vap, int flags); +int xfs_setattr_nonsize(struct xfs_inode *ip, struct iattr *vap, int flags); +int xfs_setattr_size(struct xfs_inode *ip, struct iattr *vap, int flags); #define XFS_ATTR_DMI 0x01 /* invocation from a DMI function */ #define XFS_ATTR_NONBLOCK 0x02 /* return EAGAIN if operation would block */ #define XFS_ATTR_NOLOCK 0x04 /* Don't grab any conflicting locks */ From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6ib8159907 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036802-2ac901330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2406615ECD5A for ; Thu, 7 Jul 2011 04:06:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id dYC68yxAZDenLxLm for ; Thu, 07 Jul 2011 04:06:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPp-0003sj-U1 for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:41 +0000 Message-Id: <20110707110641.898390736@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:42 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/28] xfs: split xfs_itruncate_finish Subject: [PATCH 07/28] xfs: split xfs_itruncate_finish References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-split-xfs_itruncate_finish X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036803 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Split the guts of xfs_itruncate_finish that loop over the existing extents and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs. Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish, which allows to simplify the latter a lot, by only letting it deal with the data fork. As a result xfs_itruncate_finish is renamed to xfs_itruncate_data to make its use case more obvious. Also remove the sync parameter from xfs_itruncate_data, which has been unessecary since the introduction of the busy extent list in 2002, and completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was made a no-op. I can't actually see why the xfs_attr_inactive needs to set the transaction sync, but let's keep this patch simple and without changes in behaviour. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-07-05 13:36:54.099349132 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-07-05 13:36:57.105999510 +0200 @@ -879,15 +879,7 @@ xfs_setattr_size( ip->i_size = iattr->ia_size; } else if (iattr->ia_size <= ip->i_size || (iattr->ia_size == 0 && ip->i_d.di_nextents)) { - /* - * Signal a sync transaction unless we are truncating an - * already unlinked file on a wsync filesystem. - */ - error = xfs_itruncate_finish(&tp, ip, iattr->ia_size, - XFS_DATA_FORK, - ((ip->i_d.di_nlink != 0 || - !(mp->m_flags & XFS_MOUNT_WSYNC)) - ? 1 : 0)); + error = xfs_itruncate_data(&tp, ip, iattr->ia_size); if (error) goto out_trans_abort; Index: xfs/fs/xfs/quota/xfs_qm_syscalls.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm_syscalls.c 2011-07-05 13:36:47.676050597 +0200 +++ xfs/fs/xfs/quota/xfs_qm_syscalls.c 2011-07-05 13:36:57.109332826 +0200 @@ -263,7 +263,7 @@ xfs_qm_scall_trunc_qfile( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - error = xfs_itruncate_finish(&tp, ip, 0, XFS_DATA_FORK, 1); + error = xfs_itruncate_data(&tp, ip, 0); if (error) { xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); Index: xfs/fs/xfs/xfs_attr.c =================================================================== --- xfs.orig/fs/xfs/xfs_attr.c 2011-07-05 13:36:47.689383857 +0200 +++ xfs/fs/xfs/xfs_attr.c 2011-07-05 13:36:57.109332826 +0200 @@ -822,17 +822,21 @@ xfs_attr_inactive(xfs_inode_t *dp) error = xfs_attr_root_inactive(&trans, dp); if (error) goto out; + /* - * signal synchronous inactive transactions unless this - * is a synchronous mount filesystem in which case we - * know that we're here because we've been called out of - * xfs_inactive which means that the last reference is gone - * and the unlink transaction has already hit the disk so - * async inactive transactions are safe. + * Signal synchronous inactive transactions unless this is a + * synchronous mount filesystem in which case we know that we're here + * because we've been called out of xfs_inactive which means that the + * last reference is gone and the unlink transaction has already hit + * the disk so async inactive transactions are safe. */ - if ((error = xfs_itruncate_finish(&trans, dp, 0LL, XFS_ATTR_FORK, - (!(mp->m_flags & XFS_MOUNT_WSYNC) - ? 1 : 0)))) + if (!(mp->m_flags & XFS_MOUNT_WSYNC)) { + if (dp->i_d.di_anextents > 0) + xfs_trans_set_sync(trans); + } + + error = xfs_itruncate_extents(&trans, dp, XFS_ATTR_FORK, 0); + if (error) goto out; /* Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-05 13:36:54.586013161 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-05 13:38:16.342236914 +0200 @@ -52,7 +52,7 @@ kmem_zone_t *xfs_ifork_zone; kmem_zone_t *xfs_inode_zone; /* - * Used in xfs_itruncate(). This is the maximum number of extents + * Used in xfs_itruncate_extents(). This is the maximum number of extents * freed from a file in a single transaction. */ #define XFS_ITRUNC_MAX_EXTENTS 2 @@ -1217,8 +1217,9 @@ xfs_isize_check( #endif /* DEBUG */ /* - * Free up the underlying blocks past new_size. The new size must be - * smaller than the current size. + * Free up the underlying blocks past new_size. The new size must be smaller + * than the current size. This routine can be used both for the attribute and + * data fork, and does not modify the inode size, which is left to the caller. * * The transaction passed to this routine must have made a permanent log * reservation of at least XFS_ITRUNCATE_LOG_RES. This routine may commit the @@ -1230,31 +1231,6 @@ xfs_isize_check( * will be "held" within the returned transaction. This routine does NOT * require any disk space to be reserved for it within the transaction. * - * The fork parameter must be either XFS_ATTR_FORK or XFS_DATA_FORK, and it - * indicates the fork which is to be truncated. For the attribute fork we only - * support truncation to size 0. - * - * We use the sync parameter to indicate whether or not the first transaction - * we perform might have to be synchronous. For the attr fork, it needs to be - * so if the unlink of the inode is not yet known to be permanent in the log. - * This keeps us from freeing and reusing the blocks of the attribute fork - * before the unlink of the inode becomes permanent. - * - * For the data fork, we normally have to run synchronously if we're being - * called out of the inactive path or we're being called out of the create path - * where we're truncating an existing file. Either way, the truncate needs to - * be sync so blocks don't reappear in the file with altered data in case of a - * crash. wsync filesystems can run the first case async because anything that - * shrinks the inode has to run sync so by the time we're called here from - * inactive, the inode size is permanently set to 0. - * - * Calls from the truncate path always need to be sync unless we're in a wsync - * filesystem and the file has already been unlinked. - * - * The caller is responsible for correctly setting the sync parameter. It gets - * too hard for us to guess here which path we're being called out of just - * based on inode state. - * * If we get an error, we must return with the inode locked and linked into the * current transaction. This keeps things simple for the higher level code, * because it always knows that the inode is locked and held in the transaction @@ -1262,124 +1238,31 @@ xfs_isize_check( * dirty on error so that transactions can be easily aborted if possible. */ int -xfs_itruncate_finish( - xfs_trans_t **tp, - xfs_inode_t *ip, - xfs_fsize_t new_size, - int fork, - int sync) +xfs_itruncate_extents( + struct xfs_trans **tpp, + struct xfs_inode *ip, + int whichfork, + xfs_fsize_t new_size) { - xfs_fsblock_t first_block; - xfs_fileoff_t first_unmap_block; - xfs_fileoff_t last_block; - xfs_filblks_t unmap_len=0; - xfs_mount_t *mp; - xfs_trans_t *ntp; - int done; - int committed; - xfs_bmap_free_t free_list; - int error; + struct xfs_mount *mp = ip->i_mount; + struct xfs_trans *tp = *tpp; + struct xfs_trans *ntp; + xfs_bmap_free_t free_list; + xfs_fsblock_t first_block; + xfs_fileoff_t first_unmap_block; + xfs_fileoff_t last_block; + xfs_filblks_t unmap_len; + int committed; + int error = 0; + int done = 0; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); - ASSERT((new_size == 0) || (new_size <= ip->i_size)); - ASSERT(*tp != NULL); - ASSERT((*tp)->t_flags & XFS_TRANS_PERM_LOG_RES); - ASSERT(ip->i_transp == *tp); + ASSERT(new_size <= ip->i_size); + ASSERT(tp->t_flags & XFS_TRANS_PERM_LOG_RES); + ASSERT(ip->i_transp == tp); ASSERT(ip->i_itemp != NULL); ASSERT(ip->i_itemp->ili_lock_flags == 0); - - - ntp = *tp; - mp = (ntp)->t_mountp; - ASSERT(! XFS_NOT_DQATTACHED(mp, ip)); - - /* - * We only support truncating the entire attribute fork. - */ - if (fork == XFS_ATTR_FORK) { - new_size = 0LL; - } - first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); - trace_xfs_itruncate_finish_start(ip, new_size); - - /* - * The first thing we do is set the size to new_size permanently - * on disk. This way we don't have to worry about anyone ever - * being able to look at the data being freed even in the face - * of a crash. What we're getting around here is the case where - * we free a block, it is allocated to another file, it is written - * to, and then we crash. If the new data gets written to the - * file but the log buffers containing the free and reallocation - * don't, then we'd end up with garbage in the blocks being freed. - * As long as we make the new_size permanent before actually - * freeing any blocks it doesn't matter if they get written to. - * - * The callers must signal into us whether or not the size - * setting here must be synchronous. There are a few cases - * where it doesn't have to be synchronous. Those cases - * occur if the file is unlinked and we know the unlink is - * permanent or if the blocks being truncated are guaranteed - * to be beyond the inode eof (regardless of the link count) - * and the eof value is permanent. Both of these cases occur - * only on wsync-mounted filesystems. In those cases, we're - * guaranteed that no user will ever see the data in the blocks - * that are being truncated so the truncate can run async. - * In the free beyond eof case, the file may wind up with - * more blocks allocated to it than it needs if we crash - * and that won't get fixed until the next time the file - * is re-opened and closed but that's ok as that shouldn't - * be too many blocks. - * - * However, we can't just make all wsync xactions run async - * because there's one call out of the create path that needs - * to run sync where it's truncating an existing file to size - * 0 whose size is > 0. - * - * It's probably possible to come up with a test in this - * routine that would correctly distinguish all the above - * cases from the values of the function parameters and the - * inode state but for sanity's sake, I've decided to let the - * layers above just tell us. It's simpler to correctly figure - * out in the layer above exactly under what conditions we - * can run async and I think it's easier for others read and - * follow the logic in case something has to be changed. - * cscope is your friend -- rcc. - * - * The attribute fork is much simpler. - * - * For the attribute fork we allow the caller to tell us whether - * the unlink of the inode that led to this call is yet permanent - * in the on disk log. If it is not and we will be freeing extents - * in this inode then we make the first transaction synchronous - * to make sure that the unlink is permanent by the time we free - * the blocks. - */ - if (fork == XFS_DATA_FORK) { - if (ip->i_d.di_nextents > 0) { - /* - * If we are not changing the file size then do - * not update the on-disk file size - we may be - * called from xfs_inactive_free_eofblocks(). If we - * update the on-disk file size and then the system - * crashes before the contents of the file are - * flushed to disk then the files may be full of - * holes (ie NULL files bug). - */ - if (ip->i_size != new_size) { - ip->i_d.di_size = new_size; - ip->i_size = new_size; - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); - } - } - } else if (sync) { - ASSERT(!(mp->m_flags & XFS_MOUNT_WSYNC)); - if (ip->i_d.di_anextents > 0) - xfs_trans_set_sync(ntp); - } - ASSERT(fork == XFS_DATA_FORK || - (fork == XFS_ATTR_FORK && - ((sync && !(mp->m_flags & XFS_MOUNT_WSYNC)) || - (sync == 0 && (mp->m_flags & XFS_MOUNT_WSYNC))))); + ASSERT(!XFS_NOT_DQATTACHED(mp, ip)); /* * Since it is possible for space to become allocated beyond @@ -1390,128 +1273,143 @@ xfs_itruncate_finish( * beyond the maximum file size (ie it is the same as last_block), * then there is nothing to do. */ + first_unmap_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)new_size); last_block = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); - ASSERT(first_unmap_block <= last_block); - done = 0; - if (last_block == first_unmap_block) { - done = 1; - } else { - unmap_len = last_block - first_unmap_block + 1; - } + if (first_unmap_block == last_block) + return 0; + + ASSERT(first_unmap_block < last_block); + unmap_len = last_block - first_unmap_block + 1; while (!done) { - /* - * Free up up to XFS_ITRUNC_MAX_EXTENTS. xfs_bunmapi() - * will tell us whether it freed the entire range or - * not. If this is a synchronous mount (wsync), - * then we can tell bunmapi to keep all the - * transactions asynchronous since the unlink - * transaction that made this inode inactive has - * already hit the disk. There's no danger of - * the freed blocks being reused, there being a - * crash, and the reused blocks suddenly reappearing - * in this file with garbage in them once recovery - * runs. - */ xfs_bmap_init(&free_list, &first_block); - error = xfs_bunmapi(ntp, ip, + error = xfs_bunmapi(tp, ip, first_unmap_block, unmap_len, - xfs_bmapi_aflag(fork), + xfs_bmapi_aflag(whichfork), XFS_ITRUNC_MAX_EXTENTS, &first_block, &free_list, &done); - if (error) { - /* - * If the bunmapi call encounters an error, - * return to the caller where the transaction - * can be properly aborted. We just need to - * make sure we're not holding any resources - * that we were not when we came in. - */ - xfs_bmap_cancel(&free_list); - return error; - } + if (error) + goto out_bmap_cancel; /* * Duplicate the transaction that has the permanent * reservation and commit the old transaction. */ - error = xfs_bmap_finish(tp, &free_list, &committed); - ntp = *tp; + error = xfs_bmap_finish(&tp, &free_list, &committed); if (committed) - xfs_trans_ijoin(ntp, ip); - - if (error) { - /* - * If the bmap finish call encounters an error, return - * to the caller where the transaction can be properly - * aborted. We just need to make sure we're not - * holding any resources that we were not when we came - * in. - * - * Aborting from this point might lose some blocks in - * the file system, but oh well. - */ - xfs_bmap_cancel(&free_list); - return error; - } + xfs_trans_ijoin(tp, ip); + if (error) + goto out_bmap_cancel; if (committed) { /* * Mark the inode dirty so it will be logged and * moved forward in the log as part of every commit. */ - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); } - ntp = xfs_trans_dup(ntp); - error = xfs_trans_commit(*tp, 0); - *tp = ntp; + ntp = xfs_trans_dup(tp); + error = xfs_trans_commit(tp, 0); + tp = ntp; - xfs_trans_ijoin(ntp, ip); + xfs_trans_ijoin(tp, ip); if (error) - return error; + goto out; + /* - * transaction commit worked ok so we can drop the extra ticket + * Transaction commit worked ok so we can drop the extra ticket * reference that we gained in xfs_trans_dup() */ - xfs_log_ticket_put(ntp->t_ticket); - error = xfs_trans_reserve(ntp, 0, + xfs_log_ticket_put(tp->t_ticket); + error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, XFS_TRANS_PERM_LOG_RES, XFS_ITRUNCATE_LOG_COUNT); if (error) - return error; + goto out; } + +out: + *tpp = tp; + return error; +out_bmap_cancel: + /* + * If the bunmapi call encounters an error, return to the caller where + * the transaction can be properly aborted. We just need to make sure + * we're not holding any resources that we were not when we came in. + */ + xfs_bmap_cancel(&free_list); + goto out; +} + +int +xfs_itruncate_data( + struct xfs_trans **tpp, + struct xfs_inode *ip, + xfs_fsize_t new_size) +{ + struct xfs_mount *mp = ip->i_mount; + int error; + + trace_xfs_itruncate_data_start(ip, new_size); + /* - * Only update the size in the case of the data fork, but - * always re-log the inode so that our permanent transaction - * can keep on rolling it forward in the log. + * The first thing we do is set the size to new_size permanently on + * disk. This way we don't have to worry about anyone ever being able + * to look at the data being freed even in the face of a crash. + * What we're getting around here is the case where we free a block, it + * is allocated to another file, it is written to, and then we crash. + * If the new data gets written to the file but the log buffers + * containing the free and reallocation don't, then we'd end up with + * garbage in the blocks being freed. As long as we make the new_size + * permanent before actually freeing any blocks it doesn't matter if + * they get written to. */ - if (fork == XFS_DATA_FORK) { - xfs_isize_check(mp, ip, new_size); + if (ip->i_d.di_nextents > 0) { /* - * If we are not changing the file size then do - * not update the on-disk file size - we may be - * called from xfs_inactive_free_eofblocks(). If we - * update the on-disk file size and then the system - * crashes before the contents of the file are - * flushed to disk then the files may be full of - * holes (ie NULL files bug). + * If we are not changing the file size then do not update + * the on-disk file size - we may be called from + * xfs_inactive_free_eofblocks(). If we update the on-disk + * file size and then the system crashes before the contents + * of the file are flushed to disk then the files may be + * full of holes (ie NULL files bug). */ if (ip->i_size != new_size) { ip->i_d.di_size = new_size; ip->i_size = new_size; + xfs_trans_log_inode(*tpp, ip, XFS_ILOG_CORE); } } - xfs_trans_log_inode(ntp, ip, XFS_ILOG_CORE); - ASSERT((new_size != 0) || - (fork == XFS_ATTR_FORK) || - (ip->i_delayed_blks == 0)); - ASSERT((new_size != 0) || - (fork == XFS_ATTR_FORK) || - (ip->i_d.di_nextents == 0)); - trace_xfs_itruncate_finish_end(ip, new_size); + + error = xfs_itruncate_extents(tpp, ip, XFS_DATA_FORK, new_size); + if (error) + return error; + + /* + * If we are not changing the file size then do not update the on-disk + * file size - we may be called from xfs_inactive_free_eofblocks(). + * If we update the on-disk file size and then the system crashes + * before the contents of the file are flushed to disk then the files + * may be full of holes (ie NULL files bug). + */ + xfs_isize_check(mp, ip, new_size); + if (ip->i_size != new_size) { + ip->i_d.di_size = new_size; + ip->i_size = new_size; + } + + ASSERT(new_size != 0 || ip->i_delayed_blks == 0); + ASSERT(new_size != 0 || ip->i_d.di_nextents == 0); + + /* + * Always re-log the inode so that our permanent transaction can keep + * on rolling it forward in the log. + */ + xfs_trans_log_inode(*tpp, ip, XFS_ILOG_CORE); + + trace_xfs_itruncate_data_end(ip, new_size); return 0; } Index: xfs/fs/xfs/xfs_inode.h =================================================================== --- xfs.orig/fs/xfs/xfs_inode.h 2011-07-05 13:36:54.592679793 +0200 +++ xfs/fs/xfs/xfs_inode.h 2011-07-05 13:36:57.112666141 +0200 @@ -491,8 +491,10 @@ uint xfs_ip2xflags(struct xfs_inode *); uint xfs_dic2xflags(struct xfs_dinode *); int xfs_ifree(struct xfs_trans *, xfs_inode_t *, struct xfs_bmap_free *); -int xfs_itruncate_finish(struct xfs_trans **, xfs_inode_t *, - xfs_fsize_t, int, int); +int xfs_itruncate_extents(struct xfs_trans **, struct xfs_inode *, + int, xfs_fsize_t); +int xfs_itruncate_data(struct xfs_trans **, struct xfs_inode *, + xfs_fsize_t); int xfs_iunlink(struct xfs_trans *, xfs_inode_t *); void xfs_iext_realloc(xfs_inode_t *, int, int); Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-07-05 13:36:54.589346477 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-07-05 13:36:57.115999456 +0200 @@ -220,15 +220,12 @@ xfs_free_eofblocks( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - error = xfs_itruncate_finish(&tp, ip, - ip->i_size, - XFS_DATA_FORK, - 0); - /* - * If we get an error at this point we - * simply don't bother truncating the file. - */ + error = xfs_itruncate_data(&tp, ip, ip->i_size); if (error) { + /* + * If we get an error at this point we simply don't + * bother truncating the file. + */ xfs_trans_cancel(tp, (XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT)); @@ -665,16 +662,7 @@ xfs_inactive( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip); - /* - * normally, we have to run xfs_itruncate_finish sync. - * But if filesystem is wsync and we're in the inactive - * path, then we know that nlink == 0, and that the - * xaction that made nlink == 0 is permanently committed - * since xfs_remove runs as a synchronous transaction. - */ - error = xfs_itruncate_finish(&tp, ip, 0, XFS_DATA_FORK, - (!(mp->m_flags & XFS_MOUNT_WSYNC) ? 1 : 0)); - + error = xfs_itruncate_data(&tp, ip, 0); if (error) { xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-07-05 13:36:54.592679793 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-07-05 13:36:57.119332771 +0200 @@ -1059,8 +1059,8 @@ DECLARE_EVENT_CLASS(xfs_itrunc_class, DEFINE_EVENT(xfs_itrunc_class, name, \ TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ TP_ARGS(ip, new_size)) -DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_start); -DEFINE_ITRUNC_EVENT(xfs_itruncate_finish_end); +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_start); +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_end); TRACE_EVENT(xfs_pagecache_inval, TP_PROTO(struct xfs_inode *ip, xfs_off_t start, xfs_off_t finish), From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6kG9159993 for ; Thu, 7 Jul 2011 06:06:46 -0500 X-ASG-Debug-ID: 1310036805-2b57011f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1BE2015ECD5A for ; Thu, 7 Jul 2011 04:06:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 5G6BcNIBHQptOO5m for ; Thu, 07 Jul 2011 04:06:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPt-00041b-9E for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:45 +0000 Message-Id: <20110707110645.250743525@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:59 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 24/28] xfs: remove the unused xfs_bufhash structure Subject: [PATCH 24/28] xfs: remove the unused xfs_bufhash structure References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-remove-bufhash X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 11:26:14.542550346 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:50:40.648935352 +0200 @@ -91,11 +91,6 @@ typedef enum { XBT_FORCE_FLUSH = 1, } xfs_buftarg_flags_t; -typedef struct xfs_bufhash { - struct list_head bh_list; - spinlock_t bh_lock; -} xfs_bufhash_t; - typedef struct xfs_buftarg { dev_t bt_dev; struct block_device *bt_bdev; From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6inG159914 for ; Thu, 7 Jul 2011 06:06:45 -0500 X-ASG-Debug-ID: 1310036801-2cea00970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1170552E0A for ; Thu, 7 Jul 2011 04:06:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id j26DgzHfm81ivw9a for ; Thu, 07 Jul 2011 04:06:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPp-0003rg-GW for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:41 +0000 Message-Id: <20110707110641.469452136@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:40 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/28] xfs: always log timestamp updates in xfs_setattr_size Subject: [PATCH 05/28] xfs: always log timestamp updates in xfs_setattr_size References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-setattr X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036802 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Get rid of the special case where we use unlogged timestamp updates for a truncate to the current inode size, and just call xfs_setattr_nonsize for it to treat it like a utimes calls. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 00:11:54.876715732 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_iops.c 2011-06-30 09:02:46.606760906 +0200 @@ -773,14 +773,15 @@ xfs_setattr_size( */ if (iattr->ia_size == 0 && ip->i_size == 0 && ip->i_d.di_nextents == 0) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - if (mask & ATTR_CTIME) { - inode->i_mtime = inode->i_ctime = - current_fs_time(inode->i_sb); - xfs_mark_inode_dirty_sync(ip); - } - goto out_unlock; + if (!(mask & (ATTR_CTIME|ATTR_MTIME))) + goto out_unlock; + + /* + * Use the regular setattr path to update the timestamps. + */ + xfs_iunlock(ip, lock_flags); + iattr->ia_valid &= ~ATTR_SIZE; + return xfs_setattr_nonsize(ip, iattr, 0); } /* From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6kdT159989 for ; Thu, 7 Jul 2011 06:06:46 -0500 X-ASG-Debug-ID: 1310036805-2ae6012e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7CA4F15ECDA7 for ; Thu, 7 Jul 2011 04:06:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id KsRGYstyYb0VaFUX for ; Thu, 07 Jul 2011 04:06:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPs-000402-Mg for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:44 +0000 Message-Id: <20110707110644.667342204@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:56 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 21/28] xfs: cleanup struct xfs_dir2_leaf Subject: [PATCH 21/28] xfs: cleanup struct xfs_dir2_leaf References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_leaf_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036805 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe an XFS dir2 leaf format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. Remove the members that are after the first variable sized array, given that they could only be used for sizeof expressions that can as well just use the underlying types directly, and make the ents array a real C99 variable sized array. Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf entry which already was convoluted somewhat readable after using the longer type names in the sizeof expressions. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-07 10:06:54.418727503 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-07 10:10:13.968717400 +0200 @@ -367,9 +367,12 @@ xfs_dir2_leaf_addname( /* * How many bytes do we need in the leaf block? */ - needbytes = - (leaf->hdr.stale ? 0 : (uint)sizeof(leaf->ents[0])) + - (use_block != -1 ? 0 : (uint)sizeof(leaf->bests[0])); + needbytes = 0; + if (!leaf->hdr.stale) + needbytes += sizeof(xfs_dir2_leaf_entry_t); + if (use_block == -1) + needbytes += sizeof(xfs_dir2_data_off_t); + /* * Now kill use_block if it refers to a missing block, so we * can use it as an indication of allocation needed. @@ -1763,6 +1766,20 @@ xfs_dir2_leaf_trim_data( return 0; } +static inline size_t +xfs_dir2_leaf_size( + struct xfs_dir2_leaf_hdr *hdr, + int counts) +{ + int entries; + + entries = be16_to_cpu(hdr->count) - be16_to_cpu(hdr->stale); + return sizeof(xfs_dir2_leaf_hdr_t) + + entries * sizeof(xfs_dir2_leaf_entry_t) + + counts * sizeof(xfs_dir2_data_off_t) + + sizeof(xfs_dir2_leaf_tail_t); +} + /* * Convert node form directory to leaf form directory. * The root of the node form dir needs to already be a LEAFN block. @@ -1844,18 +1861,17 @@ xfs_dir2_node_to_leaf( free = fbp->data; ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); ASSERT(!free->hdr.firstdb); + /* * Now see if the leafn and free data will fit in a leaf1. * If not, release the buffer and give up. */ - if ((uint)sizeof(leaf->hdr) + - (be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)) * (uint)sizeof(leaf->ents[0]) + - be32_to_cpu(free->hdr.nvalid) * (uint)sizeof(leaf->bests[0]) + - (uint)sizeof(leaf->tail) > - mp->m_dirblksize) { + if (xfs_dir2_leaf_size(&leaf->hdr, be32_to_cpu(free->hdr.nvalid)) > + mp->m_dirblksize) { xfs_da_brelse(tp, fbp); return 0; } + /* * If the leaf has any stale entries in it, compress them out. * The compact routine will log the header. @@ -1874,7 +1890,7 @@ xfs_dir2_node_to_leaf( * Set up the leaf bests table. */ memcpy(xfs_dir2_leaf_bests_p(ltp), free->bests, - be32_to_cpu(ltp->bestcount) * sizeof(leaf->bests[0])); + be32_to_cpu(ltp->bestcount) * sizeof(xfs_dir2_data_off_t)); xfs_dir2_leaf_log_bests(tp, lbp, 0, be32_to_cpu(ltp->bestcount) - 1); xfs_dir2_leaf_log_tail(tp, lbp); xfs_dir2_leaf_check(dp, lbp); Index: xfs/fs/xfs/xfs_dir2_leaf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-07-07 10:06:54.432060837 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.h 2011-07-07 10:14:04.795372387 +0200 @@ -18,6 +18,36 @@ #ifndef __XFS_DIR2_LEAF_H__ #define __XFS_DIR2_LEAF_H__ +/* + * Directory format 2, leaf block structures. + * + * A pure data block looks like the following drawing on disk: + * + * +---------------------------+ + * | xfs_dir2_leaf_hdr_t | + * +---------------------------+ + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | ... | + * +---------------------------+ + * | xfs_dir2_data_off_t | + * | xfs_dir2_data_off_t | + * | xfs_dir2_data_off_t | + * | ... | + * +---------------------------+ + * | xfs_dir2_leaf_tail_t | + * +---------------------------+ + * + * The bests (xfs_dir2_data_off_t members) and tail are at the end of the + * block for single-leaf only (magic = XFS_DIR2_LEAF1_MAGIC not + * XFS_DIR2_LEAFN_MAGIC). + * + * As all the entries are variable size structures the accessors in this + * file should be used to iterate over them. + */ + struct uio; struct xfs_dabuf; struct xfs_da_args; @@ -67,15 +97,10 @@ typedef struct xfs_dir2_leaf_tail { /* * Leaf block. - * bests and tail are at the end of the block for single-leaf only - * (magic = XFS_DIR2_LEAF1_MAGIC not XFS_DIR2_LEAFN_MAGIC). */ typedef struct xfs_dir2_leaf { xfs_dir2_leaf_hdr_t hdr; /* leaf header */ - xfs_dir2_leaf_entry_t ents[1]; /* entries */ - /* ... */ - xfs_dir2_data_off_t bests[1]; /* best free counts */ - xfs_dir2_leaf_tail_t tail; /* leaf tail */ + xfs_dir2_leaf_entry_t ents[]; /* entries */ } xfs_dir2_leaf_t; /* From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_33, J_CHICKENPOX_63,J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6kct160005 for ; Thu, 7 Jul 2011 06:06:47 -0500 X-ASG-Debug-ID: 1310036803-2cb300a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1741E176A7FE for ; Thu, 7 Jul 2011 04:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id clAX9F3R0VVQDLSI for ; Thu, 07 Jul 2011 04:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPr-0003wQ-AM for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:43 +0000 Message-Id: <20110707110643.282136589@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:49 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 14/28] xfs: kill struct xfs_dir2_sf Subject: [PATCH 14/28] xfs: kill struct xfs_dir2_sf References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_sf_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The list field of it is never cactually used, so all uses can simply be replaced with the xfs_dir2_sf_hdr_t type that it has as first member. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2.c 2011-07-06 15:29:43.765454583 +0200 +++ xfs/fs/xfs/xfs_dir2.c 2011-07-06 15:29:52.432120812 +0200 @@ -122,15 +122,15 @@ int xfs_dir_isempty( xfs_inode_t *dp) { - xfs_dir2_sf_t *sfp; + xfs_dir2_sf_hdr_t *sfp; ASSERT((dp->i_d.di_mode & S_IFMT) == S_IFDIR); if (dp->i_d.di_size == 0) /* might happen during shutdown. */ return 1; if (dp->i_d.di_size > XFS_IFORK_DSIZE(dp)) return 0; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - return !sfp->hdr.count; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + return !sfp->count; } /* Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-06 15:29:51.568787522 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-06 15:29:52.435454145 +0200 @@ -1028,8 +1028,6 @@ xfs_dir2_sf_to_block( xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ - char *buf; /* sf buffer */ - int buf_len; xfs_dir2_data_entry_t *dep; /* data entry pointer */ xfs_inode_t *dp; /* incore directory inode */ int dummy; /* trash */ @@ -1043,7 +1041,8 @@ xfs_dir2_sf_to_block( int newoffset; /* offset from current entry */ int offset; /* target block offset */ xfs_dir2_sf_entry_t *sfep; /* sf entry pointer */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *oldsfp; /* old shortform header */ + xfs_dir2_sf_hdr_t *sfp; /* shortform header */ __be16 *tagp; /* end of data entry */ xfs_trans_t *tp; /* transaction pointer */ struct xfs_name name; @@ -1061,32 +1060,30 @@ xfs_dir2_sf_to_block( ASSERT(XFS_FORCED_SHUTDOWN(mp)); return XFS_ERROR(EIO); } + + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(oldsfp->i8count)); + /* - * Copy the directory into the stack buffer. + * Copy the directory into a temporary buffer. * Then pitch the incore inode data so we can make extents. */ + sfp = kmem_alloc(dp->i_df.if_bytes, KM_SLEEP); + memcpy(sfp, oldsfp, dp->i_df.if_bytes); - buf_len = dp->i_df.if_bytes; - buf = kmem_alloc(buf_len, KM_SLEEP); - - memcpy(buf, sfp, buf_len); - xfs_idata_realloc(dp, -buf_len, XFS_DATA_FORK); + xfs_idata_realloc(dp, -dp->i_df.if_bytes, XFS_DATA_FORK); dp->i_d.di_size = 0; xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); - /* - * Reset pointer - old sfp is gone. - */ - sfp = (xfs_dir2_sf_t *)buf; + /* * Add block 0 to the inode. */ error = xfs_dir2_grow_inode(args, XFS_DIR2_DATA_SPACE, &blkno); if (error) { - kmem_free(buf); + kmem_free(sfp); return error; } /* @@ -1094,7 +1091,7 @@ xfs_dir2_sf_to_block( */ error = xfs_dir2_data_init(args, blkno, &bp); if (error) { - kmem_free(buf); + kmem_free(sfp); return error; } block = bp->data; @@ -1103,7 +1100,7 @@ xfs_dir2_sf_to_block( * Compute size of block "tail" area. */ i = (uint)sizeof(*btp) + - (sfp->hdr.count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t); + (sfp->count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t); /* * The whole thing is initialized to free by the init routine. * Say we're using the leaf and tail area. @@ -1117,7 +1114,7 @@ xfs_dir2_sf_to_block( * Fill in the tail. */ btp = xfs_dir2_block_tail_p(mp, block); - btp->count = cpu_to_be32(sfp->hdr.count + 2); /* ., .. */ + btp->count = cpu_to_be32(sfp->count + 2); /* ., .. */ btp->stale = 0; blp = xfs_dir2_block_leaf_p(btp); endoffset = (uint)((char *)blp - (char *)block); @@ -1159,7 +1156,8 @@ xfs_dir2_sf_to_block( /* * Loop over existing entries, stuff them in. */ - if ((i = 0) == sfp->hdr.count) + i = 0; + if (!sfp->count) sfep = NULL; else sfep = xfs_dir2_sf_firstentry(sfp); @@ -1208,13 +1206,13 @@ xfs_dir2_sf_to_block( blp[2 + i].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, (char *)dep - (char *)block)); offset = (int)((char *)(tagp + 1) - (char *)block); - if (++i == sfp->hdr.count) + if (++i == sfp->count) sfep = NULL; else sfep = xfs_dir2_sf_nextentry(sfp, sfep); } /* Done with the temporary buffer */ - kmem_free(buf); + kmem_free(sfp); /* * Sort the leaf entries by hash value. */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:29:51.565454189 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:36:36.195433702 +0200 @@ -67,10 +67,10 @@ static void xfs_dir2_sf_toino8(xfs_da_ar */ static xfs_ino_t xfs_dir2_sf_get_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_dir2_inou_t *from) { - if (sfp->hdr.i8count) + if (hdr->i8count) return XFS_GET_DIR_INO8(from->i8); else return XFS_GET_DIR_INO4(from->i4); @@ -78,11 +78,11 @@ xfs_dir2_sf_get_ino( static void xfs_dir2_sf_put_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_dir2_inou_t *to, xfs_ino_t ino) { - if (sfp->hdr.i8count) + if (hdr->i8count) XFS_PUT_DIR_INO8(ino, to->i8); else XFS_PUT_DIR_INO4(ino, to->i4); @@ -90,17 +90,17 @@ xfs_dir2_sf_put_ino( xfs_ino_t xfs_dir2_sf_get_parent_ino( - struct xfs_dir2_sf *sfp) + struct xfs_dir2_sf_hdr *hdr) { - return xfs_dir2_sf_get_ino(sfp, &sfp->hdr.parent); + return xfs_dir2_sf_get_ino(hdr, &hdr->parent); } static void xfs_dir2_sf_put_parent_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, xfs_ino_t ino) { - xfs_dir2_sf_put_ino(sfp, &sfp->hdr.parent, ino); + xfs_dir2_sf_put_ino(hdr, &hdr->parent, ino); } /* @@ -117,19 +117,19 @@ xfs_dir2_sfe_inop( xfs_ino_t xfs_dir2_sfe_get_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, struct xfs_dir2_sf_entry *sfep) { - return xfs_dir2_sf_get_ino(sfp, xfs_dir2_sfe_inop(sfep)); + return xfs_dir2_sf_get_ino(hdr, xfs_dir2_sfe_inop(sfep)); } static void xfs_dir2_sfe_put_ino( - struct xfs_dir2_sf *sfp, + struct xfs_dir2_sf_hdr *hdr, struct xfs_dir2_sf_entry *sfep, xfs_ino_t ino) { - xfs_dir2_sf_put_ino(sfp, xfs_dir2_sfe_inop(sfep), ino); + xfs_dir2_sf_put_ino(hdr, xfs_dir2_sfe_inop(sfep), ino); } /* @@ -211,7 +211,7 @@ xfs_dir2_block_sfsize( */ sfhp->count = count; sfhp->i8count = i8count; - xfs_dir2_sf_put_parent_ino((xfs_dir2_sf_t *)sfhp, parent); + xfs_dir2_sf_put_parent_ino(sfhp, parent); return size; } @@ -237,7 +237,7 @@ xfs_dir2_block_to_sf( xfs_mount_t *mp; /* filesystem mount point */ char *ptr; /* current data pointer */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform directory header */ trace_xfs_dir2_block_to_sf(args); @@ -270,7 +270,7 @@ xfs_dir2_block_to_sf( /* * Copy the header into the newly allocate local space. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; memcpy(sfp, sfhp, xfs_dir2_sf_hdr_size(sfhp->i8count)); dp->i_d.di_size = size; /* @@ -349,7 +349,7 @@ xfs_dir2_sf_addname( xfs_dir2_data_aoff_t offset = 0; /* offset for new entry */ int old_isize; /* di_size before adding name */ int pick; /* which algorithm to use */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ xfs_dir2_sf_entry_t *sfep = NULL; /* shortform entry */ trace_xfs_dir2_sf_addname(args); @@ -366,8 +366,8 @@ xfs_dir2_sf_addname( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Compute entry (and change in) size. */ @@ -378,7 +378,7 @@ xfs_dir2_sf_addname( /* * Do we have to change to 8 byte inodes? */ - if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->hdr.i8count == 0) { + if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) { /* * Yes, adjust the entry size and the total size. */ @@ -386,7 +386,7 @@ xfs_dir2_sf_addname( (uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t); incr_isize += - (sfp->hdr.count + 2) * + (sfp->count + 2) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); objchange = 1; @@ -456,11 +456,11 @@ xfs_dir2_sf_addname_easy( { int byteoff; /* byte offset in sf dir */ xfs_inode_t *dp; /* incore directory inode */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; byteoff = (int)((char *)sfep - (char *)sfp); /* * Grow the in-inode space. @@ -470,7 +470,7 @@ xfs_dir2_sf_addname_easy( /* * Need to set up again due to realloc of the inode data. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; sfep = (xfs_dir2_sf_entry_t *)((char *)sfp + byteoff); /* * Fill in the new entry. @@ -482,10 +482,10 @@ xfs_dir2_sf_addname_easy( /* * Update the header and inode. */ - sfp->hdr.count++; + sfp->count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM) - sfp->hdr.i8count++; + sfp->i8count++; #endif dp->i_d.di_size = new_isize; xfs_dir2_sf_check(args); @@ -515,19 +515,19 @@ xfs_dir2_sf_addname_hard( xfs_dir2_data_aoff_t offset; /* current offset value */ int old_isize; /* previous di_size */ xfs_dir2_sf_entry_t *oldsfep; /* entry in original dir */ - xfs_dir2_sf_t *oldsfp; /* original shortform dir */ + xfs_dir2_sf_hdr_t *oldsfp; /* original shortform dir */ xfs_dir2_sf_entry_t *sfep; /* entry in new dir */ - xfs_dir2_sf_t *sfp; /* new shortform dir */ + xfs_dir2_sf_hdr_t *sfp; /* new shortform dir */ /* * Copy the old directory to the stack buffer. */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; old_isize = (int)dp->i_d.di_size; buf = kmem_alloc(old_isize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)buf; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; memcpy(oldsfp, sfp, old_isize); /* * Loop over the old directory finding the place we're going @@ -556,7 +556,7 @@ xfs_dir2_sf_addname_hard( /* * Reset the pointer since the buffer was reallocated. */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Copy the first part of the directory, including the header. */ @@ -570,10 +570,10 @@ xfs_dir2_sf_addname_hard( xfs_dir2_sf_put_offset(sfep, offset); memcpy(sfep->name, args->name, sfep->namelen); xfs_dir2_sfe_put_ino(sfp, sfep, args->inumber); - sfp->hdr.count++; + sfp->count++; #if XFS_BIG_INUMS if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && !objchange) - sfp->hdr.i8count++; + sfp->i8count++; #endif /* * If there's more left to copy, do that. @@ -607,14 +607,14 @@ xfs_dir2_sf_addname_pick( xfs_mount_t *mp; /* filesystem mount point */ xfs_dir2_data_aoff_t offset; /* data block offset */ xfs_dir2_sf_entry_t *sfep; /* shortform entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ int size; /* entry's data size */ int used; /* data bytes used */ dp = args->dp; mp = dp->i_mount; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; size = xfs_dir2_data_entsize(args->namelen); offset = XFS_DIR2_DATA_FIRST_OFFSET; sfep = xfs_dir2_sf_firstentry(sfp); @@ -624,7 +624,7 @@ xfs_dir2_sf_addname_pick( * Keep track of data offset and whether we've seen a place * to insert the new entry. */ - for (i = 0; i < sfp->hdr.count; i++) { + for (i = 0; i < sfp->count; i++) { if (!holefit) holefit = offset + size <= xfs_dir2_sf_get_offset(sfep); offset = xfs_dir2_sf_get_offset(sfep) + @@ -636,7 +636,7 @@ xfs_dir2_sf_addname_pick( * was a data block (block form directory). */ used = offset + - (sfp->hdr.count + 3) * (uint)sizeof(xfs_dir2_leaf_entry_t) + + (sfp->count + 3) * (uint)sizeof(xfs_dir2_leaf_entry_t) + (uint)sizeof(xfs_dir2_block_tail_t); /* * If it won't fit in a block form then we can't insert it, @@ -682,17 +682,17 @@ xfs_dir2_sf_check( xfs_ino_t ino; /* entry inode number */ int offset; /* data offset */ xfs_dir2_sf_entry_t *sfep; /* shortform dir entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ dp = args->dp; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; offset = XFS_DIR2_DATA_FIRST_OFFSET; ino = xfs_dir2_sf_get_parent_ino(sfp); i8count = ino > XFS_DIR2_MAX_SHORT_INUM; for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { ASSERT(xfs_dir2_sf_get_offset(sfep) >= offset); ino = xfs_dir2_sfe_get_ino(sfp, sfep); @@ -701,11 +701,11 @@ xfs_dir2_sf_check( xfs_dir2_sf_get_offset(sfep) + xfs_dir2_data_entsize(sfep->namelen); } - ASSERT(i8count == sfp->hdr.i8count); + ASSERT(i8count == sfp->i8count); ASSERT(XFS_BIG_INUMS || i8count == 0); ASSERT((char *)sfep - (char *)sfp == dp->i_d.di_size); ASSERT(offset + - (sfp->hdr.count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t) + + (sfp->count + 2) * (uint)sizeof(xfs_dir2_leaf_entry_t) + (uint)sizeof(xfs_dir2_block_tail_t) <= dp->i_mount->m_dirblksize); } @@ -721,7 +721,7 @@ xfs_dir2_sf_create( { xfs_inode_t *dp; /* incore directory inode */ int i8count; /* parent inode is an 8-byte number */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ int size; /* directory size */ trace_xfs_dir2_sf_create(args); @@ -751,13 +751,13 @@ xfs_dir2_sf_create( /* * Fill in the header, */ - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - sfp->hdr.i8count = i8count; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + sfp->i8count = i8count; /* * Now can put in the inode number, since i8count is set. */ xfs_dir2_sf_put_parent_ino(sfp, pino); - sfp->hdr.count = 0; + sfp->count = 0; dp->i_d.di_size = size; xfs_dir2_sf_check(args); xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE | XFS_ILOG_DDATA); @@ -775,7 +775,7 @@ xfs_dir2_sf_getdents( xfs_mount_t *mp; /* filesystem mount point */ xfs_dir2_dataptr_t off; /* current entry's offset */ xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ xfs_dir2_dataptr_t dot_offset; xfs_dir2_dataptr_t dotdot_offset; xfs_ino_t ino; @@ -794,9 +794,9 @@ xfs_dir2_sf_getdents( ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * If the block number in the offset is out of range, we're done. @@ -840,7 +840,7 @@ xfs_dir2_sf_getdents( * Loop while there are more entries and put'ing works. */ sfep = xfs_dir2_sf_firstentry(sfp); - for (i = 0; i < sfp->hdr.count; i++) { + for (i = 0; i < sfp->count; i++) { off = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, xfs_dir2_sf_get_offset(sfep)); @@ -875,7 +875,7 @@ xfs_dir2_sf_lookup( int i; /* entry index */ int error; xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ enum xfs_dacmp cmp; /* comparison result */ xfs_dir2_sf_entry_t *ci_sfep; /* case-insens. entry */ @@ -894,8 +894,8 @@ xfs_dir2_sf_lookup( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Special case for . */ @@ -917,7 +917,7 @@ xfs_dir2_sf_lookup( * Loop over all the entries trying to match ours. */ ci_sfep = NULL; - for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; + for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { /* * Compare name and if it's an exact match, return the inode @@ -960,7 +960,7 @@ xfs_dir2_sf_removename( int newsize; /* new inode size */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ trace_xfs_dir2_sf_removename(args); @@ -977,13 +977,13 @@ xfs_dir2_sf_removename( } ASSERT(dp->i_df.if_bytes == oldsize); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsize >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsize >= xfs_dir2_sf_hdr_size(sfp->i8count)); /* * Loop over the old directory entries. * Find the one we're deleting. */ - for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->hdr.count; + for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { @@ -995,7 +995,7 @@ xfs_dir2_sf_removename( /* * Didn't find it. */ - if (i == sfp->hdr.count) + if (i == sfp->count) return XFS_ERROR(ENOENT); /* * Calculate sizes. @@ -1012,22 +1012,22 @@ xfs_dir2_sf_removename( /* * Fix up the header and file size. */ - sfp->hdr.count--; + sfp->count--; dp->i_d.di_size = newsize; /* * Reallocate, making it smaller. */ xfs_idata_realloc(dp, newsize - oldsize, XFS_DATA_FORK); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; #if XFS_BIG_INUMS /* * Are we changing inode number size? */ if (args->inumber > XFS_DIR2_MAX_SHORT_INUM) { - if (sfp->hdr.i8count == 1) + if (sfp->i8count == 1) xfs_dir2_sf_toino4(args); else - sfp->hdr.i8count--; + sfp->i8count--; } #endif xfs_dir2_sf_check(args); @@ -1051,7 +1051,7 @@ xfs_dir2_sf_replace( int i8elevated; /* sf_toino8 set i8count=1 */ #endif xfs_dir2_sf_entry_t *sfep; /* shortform directory entry */ - xfs_dir2_sf_t *sfp; /* shortform structure */ + xfs_dir2_sf_hdr_t *sfp; /* shortform structure */ trace_xfs_dir2_sf_replace(args); @@ -1067,19 +1067,19 @@ xfs_dir2_sf_replace( } ASSERT(dp->i_df.if_bytes == dp->i_d.di_size); ASSERT(dp->i_df.if_u1.if_data != NULL); - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->hdr.i8count)); + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(dp->i_d.di_size >= xfs_dir2_sf_hdr_size(sfp->i8count)); #if XFS_BIG_INUMS /* * New inode number is large, and need to convert to 8-byte inodes. */ - if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->hdr.i8count == 0) { + if (args->inumber > XFS_DIR2_MAX_SHORT_INUM && sfp->i8count == 0) { int error; /* error return value */ int newsize; /* new inode size */ newsize = dp->i_df.if_bytes + - (sfp->hdr.count + 1) * + (sfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); /* @@ -1097,7 +1097,7 @@ xfs_dir2_sf_replace( */ xfs_dir2_sf_toino8(args); i8elevated = 1; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; } else i8elevated = 0; #endif @@ -1118,7 +1118,7 @@ xfs_dir2_sf_replace( */ else { for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep)) { if (xfs_da_compname(args, sfep->name, sfep->namelen) == XFS_CMP_EXACT) { @@ -1133,7 +1133,7 @@ xfs_dir2_sf_replace( /* * Didn't find it. */ - if (i == sfp->hdr.count) { + if (i == sfp->count) { ASSERT(args->op_flags & XFS_DA_OP_OKNOENT); #if XFS_BIG_INUMS if (i8elevated) @@ -1151,10 +1151,10 @@ xfs_dir2_sf_replace( /* * And the old count was one, so need to convert to small. */ - if (sfp->hdr.i8count == 1) + if (sfp->i8count == 1) xfs_dir2_sf_toino4(args); else - sfp->hdr.i8count--; + sfp->i8count--; } /* * See if the old number was small, the new number is large. @@ -1165,9 +1165,9 @@ xfs_dir2_sf_replace( * add to the i8count unless we just converted to 8-byte * inodes (which does an implied i8count = 1) */ - ASSERT(sfp->hdr.i8count != 0); + ASSERT(sfp->i8count != 0); if (!i8elevated) - sfp->hdr.i8count++; + sfp->i8count++; } #endif xfs_dir2_sf_check(args); @@ -1189,10 +1189,10 @@ xfs_dir2_sf_toino4( int i; /* entry index */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ - xfs_dir2_sf_t *oldsfp; /* old sf directory */ + xfs_dir2_sf_hdr_t *oldsfp; /* old sf directory */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* new sf entry */ - xfs_dir2_sf_t *sfp; /* new sf directory */ + xfs_dir2_sf_hdr_t *sfp; /* new sf directory */ trace_xfs_dir2_sf_toino4(args); @@ -1205,35 +1205,35 @@ xfs_dir2_sf_toino4( */ oldsize = dp->i_df.if_bytes; buf = kmem_alloc(oldsize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsfp->hdr.i8count == 1); + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsfp->i8count == 1); memcpy(buf, oldsfp, oldsize); /* * Compute the new inode size. */ newsize = oldsize - - (oldsfp->hdr.count + 1) * + (oldsfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); xfs_idata_realloc(dp, -oldsize, XFS_DATA_FORK); xfs_idata_realloc(dp, newsize, XFS_DATA_FORK); /* * Reset our pointers, the data has moved. */ - oldsfp = (xfs_dir2_sf_t *)buf; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Fill in the new header. */ - sfp->hdr.count = oldsfp->hdr.count; - sfp->hdr.i8count = 0; + sfp->count = oldsfp->count; + sfp->i8count = 0; xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), oldsfep = xfs_dir2_sf_firstentry(oldsfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { sfep->namelen = oldsfep->namelen; @@ -1264,10 +1264,10 @@ xfs_dir2_sf_toino8( int i; /* entry index */ int newsize; /* new inode size */ xfs_dir2_sf_entry_t *oldsfep; /* old sf entry */ - xfs_dir2_sf_t *oldsfp; /* old sf directory */ + xfs_dir2_sf_hdr_t *oldsfp; /* old sf directory */ int oldsize; /* old inode size */ xfs_dir2_sf_entry_t *sfep; /* new sf entry */ - xfs_dir2_sf_t *sfp; /* new sf directory */ + xfs_dir2_sf_hdr_t *sfp; /* new sf directory */ trace_xfs_dir2_sf_toino8(args); @@ -1280,35 +1280,35 @@ xfs_dir2_sf_toino8( */ oldsize = dp->i_df.if_bytes; buf = kmem_alloc(oldsize, KM_SLEEP); - oldsfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; - ASSERT(oldsfp->hdr.i8count == 0); + oldsfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; + ASSERT(oldsfp->i8count == 0); memcpy(buf, oldsfp, oldsize); /* * Compute the new inode size. */ newsize = oldsize + - (oldsfp->hdr.count + 1) * + (oldsfp->count + 1) * ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t)); xfs_idata_realloc(dp, -oldsize, XFS_DATA_FORK); xfs_idata_realloc(dp, newsize, XFS_DATA_FORK); /* * Reset our pointers, the data has moved. */ - oldsfp = (xfs_dir2_sf_t *)buf; - sfp = (xfs_dir2_sf_t *)dp->i_df.if_u1.if_data; + oldsfp = (xfs_dir2_sf_hdr_t *)buf; + sfp = (xfs_dir2_sf_hdr_t *)dp->i_df.if_u1.if_data; /* * Fill in the new header. */ - sfp->hdr.count = oldsfp->hdr.count; - sfp->hdr.i8count = 1; + sfp->count = oldsfp->count; + sfp->i8count = 1; xfs_dir2_sf_put_parent_ino(sfp, xfs_dir2_sf_get_parent_ino(oldsfp)); /* * Copy the entries field by field. */ for (i = 0, sfep = xfs_dir2_sf_firstentry(sfp), oldsfep = xfs_dir2_sf_firstentry(oldsfp); - i < sfp->hdr.count; + i < sfp->count; i++, sfep = xfs_dir2_sf_nextentry(sfp, sfep), oldsfep = xfs_dir2_sf_nextentry(oldsfp, oldsfep)) { sfep->namelen = oldsfep->namelen; Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:29:51.565454189 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:36:36.208767034 +0200 @@ -21,8 +21,12 @@ /* * Directory layout when stored internal to an inode. * - * Small directories are packed as tightly as possible so as to - * fit into the literal area of the inode. + * Small directories are packed as tightly as possible so as to fit into the + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header + * followed by zero or more xfs_dir2_sf_entry structures. Due the different + * inode number storage size and the variable length name field in + * the xfs_dir2_sf_entry all these structure are variable length, and the + * accessors in this file should be used to iterate over them. */ struct uio; @@ -61,9 +65,9 @@ typedef struct { __uint8_t i[2]; } __arc * The parent directory has a dedicated field, and the self-pointer must * be calculated on the fly. * - * Entries are packed toward the top as tightly as possible. The header - * and the elements must be memcpy'd out into a work area to get correct - * alignment for the inode number fields. + * Entries are packed toward the top as tightly as possible, and thus may + * be misaligned. Care needs to be taken to access them through special + * helpers or copy them into aligned variables first. */ typedef struct xfs_dir2_sf_hdr { __uint8_t count; /* count of entries */ @@ -78,11 +82,6 @@ typedef struct xfs_dir2_sf_entry { xfs_dir2_inou_t inumber; /* inode number, var. offset */ } __arch_pack xfs_dir2_sf_entry_t; -typedef struct xfs_dir2_sf { - xfs_dir2_sf_hdr_t hdr; /* shortform header */ - xfs_dir2_sf_entry_t list[1]; /* shortform entries */ -} xfs_dir2_sf_t; - static inline int xfs_dir2_sf_hdr_size(int i8count) { return ((uint)sizeof(xfs_dir2_sf_hdr_t) - \ @@ -102,39 +101,41 @@ xfs_dir2_sf_put_offset(xfs_dir2_sf_entry INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); } -static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_t *sfp, int len) +static inline int xfs_dir2_sf_entsize_byname(xfs_dir2_sf_hdr_t *sfp, int len) { return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (len) - \ - ((sfp)->hdr.i8count == 0) * \ + ((sfp)->i8count == 0) * \ ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } static inline int -xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_t *sfp, xfs_dir2_sf_entry_t *sfep) +xfs_dir2_sf_entsize_byentry(xfs_dir2_sf_hdr_t *sfp, xfs_dir2_sf_entry_t *sfep) { return ((uint)sizeof(xfs_dir2_sf_entry_t) - 1 + (sfep)->namelen - \ - ((sfp)->hdr.i8count == 0) * \ + ((sfp)->i8count == 0) * \ ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); } -static inline xfs_dir2_sf_entry_t *xfs_dir2_sf_firstentry(xfs_dir2_sf_t *sfp) +static inline struct xfs_dir2_sf_entry * +xfs_dir2_sf_firstentry(struct xfs_dir2_sf_hdr *hdr) { - return ((xfs_dir2_sf_entry_t *) \ - ((char *)(sfp) + xfs_dir2_sf_hdr_size(sfp->hdr.i8count))); + return (struct xfs_dir2_sf_entry *) + ((char *)hdr + xfs_dir2_sf_hdr_size(hdr->i8count)); } -static inline xfs_dir2_sf_entry_t * -xfs_dir2_sf_nextentry(xfs_dir2_sf_t *sfp, xfs_dir2_sf_entry_t *sfep) +static inline struct xfs_dir2_sf_entry * +xfs_dir2_sf_nextentry(struct xfs_dir2_sf_hdr *hdr, + struct xfs_dir2_sf_entry *sfep) { - return ((xfs_dir2_sf_entry_t *) \ - ((char *)(sfep) + xfs_dir2_sf_entsize_byentry(sfp,sfep))); + return (struct xfs_dir2_sf_entry *) + ((char *)sfep + xfs_dir2_sf_entsize_byentry(hdr, sfep)); } /* * Functions. */ -extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf *sfp); -extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf *sfp, +extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf_hdr *sfp); +extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, struct xfs_dir2_block *block, From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6lXB160012 for ; Thu, 7 Jul 2011 06:06:47 -0500 X-ASG-Debug-ID: 1310036806-2372019e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8518015ECE3A for ; Thu, 7 Jul 2011 04:06:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id S3CbDUOQB4WuZUVv for ; Thu, 07 Jul 2011 04:06:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPt-00042d-Nx for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:45 +0000 Message-Id: <20110707110645.707700878@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:06:01 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 26/28] xfs: return the buffer locked from xfs_buf_get_uncached Subject: [PATCH 26/28] xfs: return the buffer locked from xfs_buf_get_uncached References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-buf_get_uncached-locked-buffer X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean All other xfs_buf_get/read-like helpers return the buffer locked, make sure xfs_buf_get_uncached isn't different for no reason. Half of the callers already lock it directly after, and the others probably should also keep it locked if only for consistency and beeing able to use xfs_buf_rele, but I'll leave that for later. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:15.596795734 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:32.243372220 +0200 @@ -679,7 +679,6 @@ xfs_buf_read_uncached( return NULL; /* set up the buffer for a read IO */ - xfs_buf_lock(bp); XFS_BUF_SET_ADDR(bp, daddr); XFS_BUF_READ(bp); XFS_BUF_BUSY(bp); @@ -814,8 +813,6 @@ xfs_buf_get_uncached( goto fail_free_mem; } - xfs_buf_unlock(bp); - trace_xfs_buf_get_uncached(bp, _RET_IP_); return bp; Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-06-29 13:53:33.954663139 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-06-29 13:57:32.243372220 +0200 @@ -1090,8 +1090,7 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog_size, 0); if (!bp) goto out_free_iclog; - if (!xfs_buf_trylock(bp)) - ASSERT(0); + XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); iclog->ic_bp = bp; Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-06-29 13:51:20.425386530 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-06-29 13:57:32.246705535 +0200 @@ -91,6 +91,8 @@ xlog_get_bp( xlog_t *log, int nbblks) { + struct xfs_buf *bp; + if (!xlog_buf_bbcount_valid(log, nbblks)) { xfs_warn(log->l_mp, "Invalid block length (0x%x) for buffer", nbblks); @@ -118,8 +120,10 @@ xlog_get_bp( nbblks += log->l_sectBBsize; nbblks = round_up(nbblks, log->l_sectBBsize); - return xfs_buf_get_uncached(log->l_mp->m_logdev_targp, - BBTOB(nbblks), 0); + bp = xfs_buf_get_uncached(log->l_mp->m_logdev_targp, BBTOB(nbblks), 0); + if (bp) + xfs_buf_unlock(bp); + return bp; } STATIC void Index: xfs/fs/xfs/xfs_vnodeops.c =================================================================== --- xfs.orig/fs/xfs/xfs_vnodeops.c 2011-06-29 11:35:45.789455635 +0200 +++ xfs/fs/xfs/xfs_vnodeops.c 2011-06-29 13:57:32.250038850 +0200 @@ -1969,6 +1969,8 @@ xfs_zero_remaining_bytes( if (!bp) return XFS_ERROR(ENOMEM); + xfs_buf_unlock(bp); + for (offset = startoff; offset <= endoff; offset = lastoffset + 1) { offset_fsb = XFS_B_TO_FSBT(mp, offset); nimap = 1; From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6k6q159982 for ; Thu, 7 Jul 2011 06:06:46 -0500 X-ASG-Debug-ID: 1310036805-2cec00890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6F30852E56 for ; Thu, 7 Jul 2011 04:06:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id wzaFEuVZq7hzmREF for ; Thu, 07 Jul 2011 04:06:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPs-00040Z-SX for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:44 +0000 Message-Id: <20110707110644.847340796@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:57 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 22/28] xfs: use generic get_unaligned_beXX helpers Subject: [PATCH 22/28] xfs: use generic get_unaligned_beXX helpers References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dir2-use-generic-unaligned-byteswap-macros X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036805 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.82 X-Barracuda-Spam-Status: No, SCORE=-0.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Switch the shortform directory code over to use the generic get_unaligned_beXX helpers instead of reinventing them. As a result kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into xfs_linux.h. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Index: xfs/fs/xfs/linux-2.6/xfs_linux.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_linux.h 2011-06-30 20:22:44.849587371 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_linux.h 2011-06-30 20:40:52.116240531 +0200 @@ -33,7 +33,6 @@ #endif #include -#include #include #include @@ -88,6 +87,12 @@ #include #include +#ifdef __BIG_ENDIAN +#define XFS_NATIVE_HOST 1 +#else +#undef XFS_NATIVE_HOST +#endif + /* * Feature macros (disable/enable) */ Index: xfs/fs/xfs/xfs_arch.h =================================================================== --- xfs.orig/fs/xfs/xfs_arch.h 2011-06-30 20:21:42.116254819 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2000-2002,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_ARCH_H__ -#define __XFS_ARCH_H__ - -#ifndef XFS_BIG_INUMS -# error XFS_BIG_INUMS must be defined true or false -#endif - -#ifdef __KERNEL__ - -#include - -#ifdef __BIG_ENDIAN -#define XFS_NATIVE_HOST 1 -#else -#undef XFS_NATIVE_HOST -#endif - -#else /* __KERNEL__ */ - -#if __BYTE_ORDER == __BIG_ENDIAN -#define XFS_NATIVE_HOST 1 -#else -#undef XFS_NATIVE_HOST -#endif - -#ifdef XFS_NATIVE_HOST -#define cpu_to_be16(val) ((__force __be16)(__u16)(val)) -#define cpu_to_be32(val) ((__force __be32)(__u32)(val)) -#define cpu_to_be64(val) ((__force __be64)(__u64)(val)) -#define be16_to_cpu(val) ((__force __u16)(__be16)(val)) -#define be32_to_cpu(val) ((__force __u32)(__be32)(val)) -#define be64_to_cpu(val) ((__force __u64)(__be64)(val)) -#else -#define cpu_to_be16(val) ((__force __be16)__swab16((__u16)(val))) -#define cpu_to_be32(val) ((__force __be32)__swab32((__u32)(val))) -#define cpu_to_be64(val) ((__force __be64)__swab64((__u64)(val))) -#define be16_to_cpu(val) (__swab16((__force __u16)(__be16)(val))) -#define be32_to_cpu(val) (__swab32((__force __u32)(__be32)(val))) -#define be64_to_cpu(val) (__swab64((__force __u64)(__be64)(val))) -#endif - -static inline void be16_add_cpu(__be16 *a, __s16 b) -{ - *a = cpu_to_be16(be16_to_cpu(*a) + b); -} - -static inline void be32_add_cpu(__be32 *a, __s32 b) -{ - *a = cpu_to_be32(be32_to_cpu(*a) + b); -} - -static inline void be64_add_cpu(__be64 *a, __s64 b) -{ - *a = cpu_to_be64(be64_to_cpu(*a) + b); -} - -#endif /* __KERNEL__ */ - -/* - * get and set integers from potentially unaligned locations - */ - -#define INT_GET_UNALIGNED_16_BE(pointer) \ - ((__u16)((((__u8*)(pointer))[0] << 8) | (((__u8*)(pointer))[1]))) -#define INT_SET_UNALIGNED_16_BE(pointer,value) \ - { \ - ((__u8*)(pointer))[0] = (((value) >> 8) & 0xff); \ - ((__u8*)(pointer))[1] = (((value) ) & 0xff); \ - } - -/* - * In directories inode numbers are stored as unaligned arrays of unsigned - * 8bit integers on disk. - * - * For v1 directories or v2 directories that contain inode numbers that - * do not fit into 32bit the array has eight members, but the first member - * is always zero: - * - * |unused|48-55|40-47|32-39|24-31|16-23| 8-15| 0- 7| - * - * For v2 directories that only contain entries with inode numbers that fit - * into 32bits a four-member array is used: - * - * |24-31|16-23| 8-15| 0- 7| - */ - -#define XFS_GET_DIR_INO4(di) \ - (((__u32)(di).i[0] << 24) | ((di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) - -#define XFS_PUT_DIR_INO4(from, di) \ -do { \ - (di).i[0] = (((from) & 0xff000000ULL) >> 24); \ - (di).i[1] = (((from) & 0x00ff0000ULL) >> 16); \ - (di).i[2] = (((from) & 0x0000ff00ULL) >> 8); \ - (di).i[3] = ((from) & 0x000000ffULL); \ -} while (0) - -#define XFS_DI_HI(di) \ - (((__u32)(di).i[1] << 16) | ((di).i[2] << 8) | ((di).i[3])) -#define XFS_DI_LO(di) \ - (((__u32)(di).i[4] << 24) | ((di).i[5] << 16) | ((di).i[6] << 8) | ((di).i[7])) - -#define XFS_GET_DIR_INO8(di) \ - (((xfs_ino_t)XFS_DI_LO(di) & 0xffffffffULL) | \ - ((xfs_ino_t)XFS_DI_HI(di) << 32)) - -#define XFS_PUT_DIR_INO8(from, di) \ -do { \ - (di).i[0] = 0; \ - (di).i[1] = (((from) & 0x00ff000000000000ULL) >> 48); \ - (di).i[2] = (((from) & 0x0000ff0000000000ULL) >> 40); \ - (di).i[3] = (((from) & 0x000000ff00000000ULL) >> 32); \ - (di).i[4] = (((from) & 0x00000000ff000000ULL) >> 24); \ - (di).i[5] = (((from) & 0x0000000000ff0000ULL) >> 16); \ - (di).i[6] = (((from) & 0x000000000000ff00ULL) >> 8); \ - (di).i[7] = ((from) & 0x00000000000000ffULL); \ -} while (0) - -#endif /* __XFS_ARCH_H__ */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-06-30 20:24:26.516252776 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-06-30 20:46:45.366236141 +0200 @@ -59,11 +59,12 @@ static void xfs_dir2_sf_toino4(xfs_da_ar static void xfs_dir2_sf_toino8(xfs_da_args_t *args); #endif /* XFS_BIG_INUMS */ - /* * Inode numbers in short-form directories can come in two versions, * either 4 bytes or 8 bytes wide. These helpers deal with the * two forms transparently by looking at the headers i8count field. + * + * For 64-bit inode number the most significant byte must be zero. */ static xfs_ino_t xfs_dir2_sf_get_ino( @@ -71,9 +72,9 @@ xfs_dir2_sf_get_ino( xfs_dir2_inou_t *from) { if (hdr->i8count) - return XFS_GET_DIR_INO8(from->i8); + return get_unaligned_be64(&from->i8.i) & 0x00ffffffffffffffULL; else - return XFS_GET_DIR_INO4(from->i4); + return get_unaligned_be32(&from->i4.i); } static void @@ -82,10 +83,12 @@ xfs_dir2_sf_put_ino( xfs_dir2_inou_t *to, xfs_ino_t ino) { + ASSERT((ino & 0xff00000000000000ULL) == 0); + if (hdr->i8count) - XFS_PUT_DIR_INO8(ino, to->i8); + put_unaligned_be64(ino, &to->i8.i); else - XFS_PUT_DIR_INO4(ino, to->i4); + put_unaligned_be32(ino, &to->i4.i); } xfs_ino_t Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:24:08.732919663 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-06-30 20:38:37.019575543 +0200 @@ -95,13 +95,13 @@ static inline int xfs_dir2_sf_hdr_size(i static inline xfs_dir2_data_aoff_t xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) { - return INT_GET_UNALIGNED_16_BE(&(sfep)->offset.i); + return get_unaligned_be16(&sfep->offset.i); } static inline void xfs_dir2_sf_put_offset(xfs_dir2_sf_entry_t *sfep, xfs_dir2_data_aoff_t off) { - INT_SET_UNALIGNED_16_BE(&(sfep)->offset.i, off); + put_unaligned_be16(off, &sfep->offset.i); } static inline int From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6k9T159969 for ; Thu, 7 Jul 2011 06:06:46 -0500 X-ASG-Debug-ID: 1310036804-372300ac0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3A03515ECD5A for ; Thu, 7 Jul 2011 04:06:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YdxsDSdImvdrHZgA for ; Thu, 07 Jul 2011 04:06:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPs-0003z0-AL for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:44 +0000 Message-Id: <20110707110644.281723475@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:54 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 19/28] xfs: kill struct xfs_dir2_data Subject: [PATCH 19/28] xfs: kill struct xfs_dir2_data References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_dir2_data_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036805 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the confusing xfs_dir2_data structure. It is supposed to describe an XFS dir2 data btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-07-06 15:45:56.762071987 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-07-06 15:46:21.472070737 +0200 @@ -53,7 +53,6 @@ xfs_dir2_data_check( xfs_dir2_data_free_t *bf; /* bestfree table */ xfs_dir2_block_tail_t *btp=NULL; /* block tail */ int count; /* count of entries found */ - xfs_dir2_data_t *d; /* data block pointer */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_free_t *dfp; /* bestfree entry */ @@ -70,10 +69,9 @@ xfs_dir2_data_check( struct xfs_name name; mp = dp->i_mount; - d = bp->data; - hdr = &d->hdr; + hdr = bp->data; bf = hdr->bestfree; - p = (char *)d->u; + p = (char *)(hdr + 1); if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { btp = xfs_dir2_block_tail_p(mp, hdr); @@ -336,7 +334,6 @@ xfs_dir2_data_freescan( xfs_dir2_data_hdr_t *hdr, /* data block header */ int *loghead) /* out: log data header */ { - xfs_dir2_data_t *d = (xfs_dir2_data_t *)hdr; xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* active data entry */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -355,7 +352,7 @@ xfs_dir2_data_freescan( /* * Set up pointers. */ - p = (char *)d->u; + p = (char *)(hdr + 1); if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { btp = xfs_dir2_block_tail_p(mp, hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); @@ -398,7 +395,6 @@ xfs_dir2_data_init( xfs_dabuf_t **bpp) /* output block buffer */ { xfs_dabuf_t *bp; /* block buffer */ - xfs_dir2_data_t *d; /* pointer to block */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused entry pointer */ @@ -424,8 +420,7 @@ xfs_dir2_data_init( /* * Initialize the header. */ - d = bp->data; - hdr = &d->hdr; + hdr = bp->data; hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); hdr->bestfree[0].offset = cpu_to_be16(sizeof(*hdr)); for (i = 1; i < XFS_DIR2_DATA_FD_COUNT; i++) { @@ -436,7 +431,7 @@ xfs_dir2_data_init( /* * Set up an unused entry for the block's body. */ - dup = &d->u[0].unused; + dup = (xfs_dir2_data_unused_t *)(hdr + 1); dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); t = mp->m_dirblksize - (uint)sizeof(*hdr); Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-07-06 15:45:56.772071987 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-07-06 15:46:21.475404070 +0200 @@ -20,6 +20,22 @@ /* * Directory format 2, data block structures. + * + * A pure data block looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * + * As all the entries are variable size structures the accessors in this + * file should be used to iterate over them. */ struct xfs_dabuf; @@ -103,23 +119,6 @@ typedef struct xfs_dir2_data_unused { __be16 tag; /* starting offset of us */ } xfs_dir2_data_unused_t; -typedef union { - xfs_dir2_data_entry_t entry; - xfs_dir2_data_unused_t unused; -} xfs_dir2_data_union_t; - -/* - * Generic data block structure, for xfs_db. - */ -typedef struct xfs_dir2_data { - xfs_dir2_data_hdr_t hdr; /* magic XFS_DIR2_DATA_MAGIC */ - xfs_dir2_data_union_t u[1]; -} xfs_dir2_data_t; - -/* - * Macros. - */ - /* * Size of a data entry. */ Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:45:56.785405321 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:46:21.475404070 +0200 @@ -785,7 +785,6 @@ xfs_dir2_leaf_getdents( int byteoff; /* offset in current block */ xfs_dir2_db_t curdb; /* db for current block */ xfs_dir2_off_t curoff; /* current overall offset */ - xfs_dir2_data_t *data; /* data block structure */ xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ @@ -1044,13 +1043,12 @@ xfs_dir2_leaf_getdents( else if (curoff > newoff) ASSERT(xfs_dir2_byte_to_db(mp, curoff) == curdb); - data = bp->data; - hdr = &data->hdr; + hdr = bp->data; xfs_dir2_data_check(dp, bp); /* * Find our position in the block. */ - ptr = (char *)&data->u; + ptr = (char *)(hdr + 1); byteoff = xfs_dir2_byte_to_off(mp, curoff); /* * Skip past the header. From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6lTj160030 for ; Thu, 7 Jul 2011 06:06:48 -0500 X-ASG-Debug-ID: 1310036806-2377018c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E052615ECDB0 for ; Thu, 7 Jul 2011 04:06:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id vaANtCb4zlA1IrxG for ; Thu, 07 Jul 2011 04:06:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPu-00043f-34 for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:46 +0000 Message-Id: <20110707110646.058715551@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:06:03 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 28/28] xfs: avoid a few disk cache flushes Subject: [PATCH 28/28] xfs: avoid a few disk cache flushes References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-cache-flushes X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean There is no need for a pre-flush when doing writing the second part of a split log buffer, and if we are using an external log there is no need to do a full cache flush of the log device at all given that all writes to it use the FUA flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-01 11:35:50.874088428 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-01 11:35:51.287421756 +0200 @@ -1371,15 +1371,21 @@ xlog_sync(xlog_t *log, bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) { + bp->b_flags |= XBF_FUA; + /* - * If we have an external log device, flush the data device - * before flushing the log to make sure all meta data - * written back from the AIL actually made it to disk - * before writing out the new log tail LSN in the log buffer. + * Flush the data device before flushing the log to make + * sure all meta data written back from the AIL actually made + * it to disk before stamping the new log tail LSN into the + * log buffer. For an external log we need to issue the + * flush explicitly, and unfortunately synchronously here; + * for an internal log we can simply use the block layer + * state machine for preflushes. */ if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp) xfs_blkdev_issue_flush(log->l_mp->m_ddev_targp); - bp->b_flags |= XBF_FUA | XBF_FLUSH; + else + bp->b_flags |= XBF_FLUSH; } ASSERT(XFS_BUF_ADDR(bp) <= log->l_logBBsize-1); @@ -1414,7 +1420,7 @@ xlog_sync(xlog_t *log, XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) - bp->b_flags |= XBF_FUA | XBF_FLUSH; + bp->b_flags |= XBF_FUA; dptr = XFS_BUF_PTR(bp); /* * Bump the cycle numbers at the start of each block From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.5 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_62,J_CHICKENPOX_63,J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6lfu160007 for ; Thu, 7 Jul 2011 06:06:47 -0500 X-ASG-Debug-ID: 1310036803-218201440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D711176A802 for ; Thu, 7 Jul 2011 04:06:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id zvG0PHo7g58JrpGh for ; Thu, 07 Jul 2011 04:06:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPr-0003xS-Ni for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:43 +0000 Message-Id: <20110707110643.697692461@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:51 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 16/28] xfs: avoid usage of struct xfs_dir2_block Subject: [PATCH 16/28] xfs: avoid usage of struct xfs_dir2_block References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-xfs_dir2_block_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_block instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-06 15:39:13.778759057 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-06 15:40:38.122088119 +0200 @@ -67,7 +67,7 @@ xfs_dir2_block_addname( xfs_da_args_t *args) /* directory op arguments */ { xfs_dir2_data_free_t *bf; /* bestfree table in block */ - xfs_dir2_block_t *block; /* directory block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -105,13 +105,13 @@ xfs_dir2_block_addname( return error; } ASSERT(bp != NULL); - block = bp->data; + hdr = bp->data; /* * Check the magic number, corrupted if wrong. */ - if (unlikely(be32_to_cpu(block->hdr.magic) != XFS_DIR2_BLOCK_MAGIC)) { + if (unlikely(be32_to_cpu(hdr->magic) != XFS_DIR2_BLOCK_MAGIC)) { XFS_CORRUPTION_ERROR("xfs_dir2_block_addname", - XFS_ERRLEVEL_LOW, mp, block); + XFS_ERRLEVEL_LOW, mp, hdr); xfs_da_brelse(tp, bp); return XFS_ERROR(EFSCORRUPTED); } @@ -119,8 +119,8 @@ xfs_dir2_block_addname( /* * Set up pointers to parts of the block. */ - bf = block->hdr.bestfree; - btp = xfs_dir2_block_tail_p(mp, block); + bf = hdr->bestfree; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * No stale entries? Need space for entry and new leaf. @@ -133,7 +133,7 @@ xfs_dir2_block_addname( /* * Data object just before the first leaf entry. */ - enddup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + enddup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free then can't do this add without cleaning up: * the space before the first leaf entry needs to be free so it @@ -146,7 +146,7 @@ xfs_dir2_block_addname( */ else { dup = (xfs_dir2_data_unused_t *) - ((char *)block + be16_to_cpu(bf[0].offset)); + ((char *)hdr + be16_to_cpu(bf[0].offset)); if (dup == enddup) { /* * It is the biggest freespace, is it too small @@ -159,7 +159,7 @@ xfs_dir2_block_addname( */ if (be16_to_cpu(bf[1].length) >= len) dup = (xfs_dir2_data_unused_t *) - ((char *)block + + ((char *)hdr + be16_to_cpu(bf[1].offset)); else dup = NULL; @@ -182,7 +182,7 @@ xfs_dir2_block_addname( */ else if (be16_to_cpu(bf[0].length) >= len) { dup = (xfs_dir2_data_unused_t *) - ((char *)block + be16_to_cpu(bf[0].offset)); + ((char *)hdr + be16_to_cpu(bf[0].offset)); compact = 0; } /* @@ -196,7 +196,7 @@ xfs_dir2_block_addname( /* * Data object just before the first leaf entry. */ - dup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + dup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free then the data will go where the * leaf data starts now, if it works at all. @@ -272,7 +272,7 @@ xfs_dir2_block_addname( lfloghigh -= be32_to_cpu(btp->stale) - 1; be32_add_cpu(&btp->count, -(be32_to_cpu(btp->stale) - 1)); xfs_dir2_data_make_free(tp, bp, - (xfs_dir2_data_aoff_t)((char *)blp - (char *)block), + (xfs_dir2_data_aoff_t)((char *)blp - (char *)hdr), (xfs_dir2_data_aoff_t)((be32_to_cpu(btp->stale) - 1) * sizeof(*blp)), &needlog, &needscan); blp += be32_to_cpu(btp->stale) - 1; @@ -282,7 +282,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); needscan = 0; } } @@ -318,7 +318,7 @@ xfs_dir2_block_addname( */ xfs_dir2_data_use_free(tp, bp, enddup, (xfs_dir2_data_aoff_t) - ((char *)enddup - (char *)block + be16_to_cpu(enddup->length) - + ((char *)enddup - (char *)hdr + be16_to_cpu(enddup->length) - sizeof(*blp)), (xfs_dir2_data_aoff_t)sizeof(*blp), &needlog, &needscan); @@ -331,7 +331,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); needscan = 0; } @@ -397,13 +397,13 @@ xfs_dir2_block_addname( */ blp[mid].hashval = cpu_to_be32(args->hashval); blp[mid].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); xfs_dir2_block_log_leaf(tp, bp, lfloglow, lfloghigh); /* * Mark space for the data entry used. */ xfs_dir2_data_use_free(tp, bp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), (xfs_dir2_data_aoff_t)len, &needlog, &needscan); /* * Create the new data entry. @@ -412,12 +412,12 @@ xfs_dir2_block_addname( dep->namelen = args->namelen; memcpy(dep->name, args->name, args->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); /* * Clean up the bestfree array and log the header, tail, and entry. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_block_log_tail(tp, bp); @@ -438,6 +438,7 @@ xfs_dir2_block_getdents( filldir_t filldir) { xfs_dir2_block_t *block; /* directory block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dabuf_t *bp; /* buffer for block */ xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* block data entry */ @@ -471,11 +472,12 @@ xfs_dir2_block_getdents( */ wantoff = xfs_dir2_dataptr_to_off(mp, *offset); block = bp->data; + hdr = &block->hdr; xfs_dir2_data_check(dp, bp); /* * Set up values for the loop. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); ptr = (char *)block->u; endptr = (char *)xfs_dir2_block_leaf_p(btp); @@ -502,11 +504,11 @@ xfs_dir2_block_getdents( /* * The entry is before the desired starting point, skip it. */ - if ((char *)dep - (char *)block < wantoff) + if ((char *)dep - (char *)hdr < wantoff) continue; cook = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, - (char *)dep - (char *)block); + (char *)dep - (char *)hdr); /* * If it didn't fit, set the final offset to here & return. @@ -540,17 +542,14 @@ xfs_dir2_block_log_leaf( int first, /* index of first logged leaf */ int last) /* index of last logged leaf */ { - xfs_dir2_block_t *block; /* directory block structure */ - xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ - xfs_dir2_block_tail_t *btp; /* block tail */ - xfs_mount_t *mp; /* filesystem mount point */ + xfs_dir2_data_hdr_t *hdr = bp->data; + xfs_dir2_leaf_entry_t *blp; + xfs_dir2_block_tail_t *btp; - mp = tp->t_mountp; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(tp->t_mountp, hdr); blp = xfs_dir2_block_leaf_p(btp); - xfs_da_log_buf(tp, bp, (uint)((char *)&blp[first] - (char *)block), - (uint)((char *)&blp[last + 1] - (char *)block - 1)); + xfs_da_log_buf(tp, bp, (uint)((char *)&blp[first] - (char *)hdr), + (uint)((char *)&blp[last + 1] - (char *)hdr - 1)); } /* @@ -561,15 +560,12 @@ xfs_dir2_block_log_tail( xfs_trans_t *tp, /* transaction structure */ xfs_dabuf_t *bp) /* block buffer */ { - xfs_dir2_block_t *block; /* directory block structure */ - xfs_dir2_block_tail_t *btp; /* block tail */ - xfs_mount_t *mp; /* filesystem mount point */ + xfs_dir2_data_hdr_t *hdr = bp->data; + xfs_dir2_block_tail_t *btp; - mp = tp->t_mountp; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); - xfs_da_log_buf(tp, bp, (uint)((char *)btp - (char *)block), - (uint)((char *)(btp + 1) - (char *)block - 1)); + btp = xfs_dir2_block_tail_p(tp->t_mountp, hdr); + xfs_da_log_buf(tp, bp, (uint)((char *)btp - (char *)hdr), + (uint)((char *)(btp + 1) - (char *)hdr - 1)); } /* @@ -580,7 +576,7 @@ int /* error */ xfs_dir2_block_lookup( xfs_da_args_t *args) /* dir lookup arguments */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -600,14 +596,14 @@ xfs_dir2_block_lookup( return error; dp = args->dp; mp = dp->i_mount; - block = bp->data; + hdr = bp->data; xfs_dir2_data_check(dp, bp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Get the offset from the leaf entry, to point to the data. */ - dep = (xfs_dir2_data_entry_t *)((char *)block + + dep = (xfs_dir2_data_entry_t *)((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); /* * Fill in inode number, CI name if appropriate, release the block. @@ -628,7 +624,7 @@ xfs_dir2_block_lookup_int( int *entno) /* returned entry number */ { xfs_dir2_dataptr_t addr; /* data entry address */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -654,9 +650,9 @@ xfs_dir2_block_lookup_int( return error; } ASSERT(bp != NULL); - block = bp->data; + hdr = bp->data; xfs_dir2_data_check(dp, bp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Loop doing a binary search for our hash value. @@ -694,7 +690,7 @@ xfs_dir2_block_lookup_int( * Get pointer to the entry from the leaf. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, addr)); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, addr)); /* * Compare name and if it's an exact match, return the index * and buffer. If it's the first case-insensitive match, store @@ -733,7 +729,7 @@ int /* error */ xfs_dir2_block_removename( xfs_da_args_t *args) /* directory operation args */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf pointer */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -760,20 +756,20 @@ xfs_dir2_block_removename( dp = args->dp; tp = args->trans; mp = dp->i_mount; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + hdr = bp->data; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Point to the data entry using the leaf entry. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); /* * Mark the data entry's space free. */ needlog = needscan = 0; xfs_dir2_data_make_free(tp, bp, - (xfs_dir2_data_aoff_t)((char *)dep - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dep - (char *)hdr), xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); /* * Fix up the block tail. @@ -789,15 +785,15 @@ xfs_dir2_block_removename( * Fix up bestfree, log the header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_data_check(dp, bp); /* * See if the size as a shortform is good enough. */ - if ((size = xfs_dir2_block_sfsize(dp, block, &sfh)) > - XFS_IFORK_DSIZE(dp)) { + size = xfs_dir2_block_sfsize(dp, hdr, &sfh); + if (size > XFS_IFORK_DSIZE(dp)) { xfs_da_buf_done(bp); return 0; } @@ -815,7 +811,7 @@ int /* error */ xfs_dir2_block_replace( xfs_da_args_t *args) /* directory operation args */ { - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail */ @@ -836,14 +832,14 @@ xfs_dir2_block_replace( } dp = args->dp; mp = dp->i_mount; - block = bp->data; - btp = xfs_dir2_block_tail_p(mp, block); + hdr = bp->data; + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Point to the data entry we need to change. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(blp[ent].address))); ASSERT(be64_to_cpu(dep->inumber) != args->inumber); /* * Change the inode number to the new value. @@ -882,7 +878,7 @@ xfs_dir2_leaf_to_block( xfs_dabuf_t *dbp) /* data buffer */ { __be16 *bestsp; /* leaf bests table */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_block_tail_t *btp; /* block tail */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -917,7 +913,7 @@ xfs_dir2_leaf_to_block( while (dp->i_d.di_size > mp->m_dirblksize) { bestsp = xfs_dir2_leaf_bests_p(ltp); if (be16_to_cpu(bestsp[be32_to_cpu(ltp->bestcount) - 1]) == - mp->m_dirblksize - (uint)sizeof(block->hdr)) { + mp->m_dirblksize - (uint)sizeof(*hdr)) { if ((error = xfs_dir2_leaf_trim_data(args, lbp, (xfs_dir2_db_t)(be32_to_cpu(ltp->bestcount) - 1)))) @@ -935,18 +931,18 @@ xfs_dir2_leaf_to_block( XFS_DATA_FORK))) { goto out; } - block = dbp->data; - ASSERT(be32_to_cpu(block->hdr.magic) == XFS_DIR2_DATA_MAGIC); + hdr = dbp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); /* * Size of the "leaf" area in the block. */ - size = (uint)sizeof(block->tail) + + size = (uint)sizeof(xfs_dir2_block_tail_t) + (uint)sizeof(*lep) * (be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)); /* * Look at the last data entry. */ - tagp = (__be16 *)((char *)block + mp->m_dirblksize) - 1; - dup = (xfs_dir2_data_unused_t *)((char *)block + be16_to_cpu(*tagp)); + tagp = (__be16 *)((char *)hdr + mp->m_dirblksize) - 1; + dup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); /* * If it's not free or is too short we can't do it. */ @@ -958,7 +954,7 @@ xfs_dir2_leaf_to_block( /* * Start converting it to block form. */ - block->hdr.magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); + hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); needlog = 1; needscan = 0; /* @@ -969,7 +965,7 @@ xfs_dir2_leaf_to_block( /* * Initialize the block tail. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); btp->count = cpu_to_be32(be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale)); btp->stale = 0; xfs_dir2_block_log_tail(tp, dbp); @@ -988,7 +984,7 @@ xfs_dir2_leaf_to_block( * Scan the bestfree if we need it and log the data block header. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* @@ -1002,8 +998,8 @@ xfs_dir2_leaf_to_block( /* * Now see if the resulting block can be shrunken to shortform. */ - if ((size = xfs_dir2_block_sfsize(dp, block, &sfh)) > - XFS_IFORK_DSIZE(dp)) { + size = xfs_dir2_block_sfsize(dp, hdr, &sfh); + if (size > XFS_IFORK_DSIZE(dp)) { error = 0; goto out; } @@ -1025,6 +1021,7 @@ xfs_dir2_sf_to_block( { xfs_dir2_db_t blkno; /* dir-relative block # (0) */ xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block leaf entries */ xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_block_tail_t *btp; /* block tail pointer */ @@ -1095,7 +1092,8 @@ xfs_dir2_sf_to_block( return error; } block = bp->data; - block->hdr.magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); + hdr = &block->hdr; + hdr->magic = cpu_to_be32(XFS_DIR2_BLOCK_MAGIC); /* * Compute size of block "tail" area. */ @@ -1113,45 +1111,45 @@ xfs_dir2_sf_to_block( /* * Fill in the tail. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); btp->count = cpu_to_be32(sfp->count + 2); /* ., .. */ btp->stale = 0; blp = xfs_dir2_block_leaf_p(btp); - endoffset = (uint)((char *)blp - (char *)block); + endoffset = (uint)((char *)blp - (char *)hdr); /* * Remove the freespace, we'll manage it. */ xfs_dir2_data_use_free(tp, bp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)block), + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), be16_to_cpu(dup->length), &needlog, &needscan); /* * Create entry for . */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + XFS_DIR2_DATA_DOT_OFFSET); + ((char *)hdr + XFS_DIR2_DATA_DOT_OFFSET); dep->inumber = cpu_to_be64(dp->i_ino); dep->namelen = 1; dep->name[0] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); blp[0].hashval = cpu_to_be32(xfs_dir_hash_dot); blp[0].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); /* * Create entry for .. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + XFS_DIR2_DATA_DOTDOT_OFFSET); + ((char *)hdr + XFS_DIR2_DATA_DOTDOT_OFFSET); dep->inumber = cpu_to_be64(xfs_dir2_sf_get_parent_ino(sfp)); dep->namelen = 2; dep->name[0] = dep->name[1] = '.'; tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); blp[1].hashval = cpu_to_be32(xfs_dir_hash_dotdot); blp[1].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); + (char *)dep - (char *)hdr)); offset = XFS_DIR2_DATA_FIRST_OFFSET; /* * Loop over existing entries, stuff them in. @@ -1177,14 +1175,13 @@ xfs_dir2_sf_to_block( * There should be a hole here, make one. */ if (offset < newoffset) { - dup = (xfs_dir2_data_unused_t *) - ((char *)block + offset); + dup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); dup->length = cpu_to_be16(newoffset - offset); *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16( - ((char *)dup - (char *)block)); + ((char *)dup - (char *)hdr)); xfs_dir2_data_log_unused(tp, bp, dup); - (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)block, + (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)hdr, dup, &dummy); offset += be16_to_cpu(dup->length); continue; @@ -1192,20 +1189,20 @@ xfs_dir2_sf_to_block( /* * Copy a real entry. */ - dep = (xfs_dir2_data_entry_t *)((char *)block + newoffset); + dep = (xfs_dir2_data_entry_t *)((char *)hdr + newoffset); dep->inumber = cpu_to_be64(xfs_dir2_sfe_get_ino(sfp, sfep)); dep->namelen = sfep->namelen; memcpy(dep->name, sfep->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)block); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, bp, dep); name.name = sfep->name; name.len = sfep->namelen; blp[2 + i].hashval = cpu_to_be32(mp->m_dirnameops-> hashname(&name)); blp[2 + i].address = cpu_to_be32(xfs_dir2_byte_to_dataptr(mp, - (char *)dep - (char *)block)); - offset = (int)((char *)(tagp + 1) - (char *)block); + (char *)dep - (char *)hdr)); + offset = (int)((char *)(tagp + 1) - (char *)hdr); if (++i == sfp->count) sfep = NULL; else Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-07-06 15:39:13.788759056 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-07-06 15:39:53.158757064 +0200 @@ -72,7 +72,7 @@ xfs_dir2_data_check( bf = d->hdr.bestfree; p = (char *)d->u; if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); lep = xfs_dir2_block_leaf_p(btp); endp = (char *)lep; } else @@ -348,7 +348,7 @@ xfs_dir2_data_freescan( */ p = (char *)d->u; if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); } else endp = (char *)d + mp->m_dirblksize; @@ -537,7 +537,7 @@ xfs_dir2_data_make_free( xfs_dir2_block_tail_t *btp; /* block tail */ ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - btp = xfs_dir2_block_tail_p(mp, (xfs_dir2_block_t *)d); + btp = xfs_dir2_block_tail_p(mp, &d->hdr); endptr = (char *)xfs_dir2_block_leaf_p(btp); } /* Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:39:13.798759057 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:39:53.158757064 +0200 @@ -64,7 +64,7 @@ xfs_dir2_block_to_leaf( { __be16 *bestsp; /* leaf's bestsp entries */ xfs_dablk_t blkno; /* leaf block's bno */ - xfs_dir2_block_t *block; /* block structure */ + xfs_dir2_data_hdr_t *hdr; /* block header */ xfs_dir2_leaf_entry_t *blp; /* block's leaf entries */ xfs_dir2_block_tail_t *btp; /* block's tail */ xfs_inode_t *dp; /* incore directory inode */ @@ -101,9 +101,9 @@ xfs_dir2_block_to_leaf( } ASSERT(lbp != NULL); leaf = lbp->data; - block = dbp->data; + hdr = dbp->data; xfs_dir2_data_check(dp, dbp); - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* * Set the counts in the leaf header. @@ -123,23 +123,23 @@ xfs_dir2_block_to_leaf( * tail be free. */ xfs_dir2_data_make_free(tp, dbp, - (xfs_dir2_data_aoff_t)((char *)blp - (char *)block), - (xfs_dir2_data_aoff_t)((char *)block + mp->m_dirblksize - + (xfs_dir2_data_aoff_t)((char *)blp - (char *)hdr), + (xfs_dir2_data_aoff_t)((char *)hdr + mp->m_dirblksize - (char *)blp), &needlog, &needscan); /* * Fix up the block header, make it a data block. */ - block->hdr.magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); + hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)block, &needlog); + xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); /* * Set up leaf tail and bests table. */ ltp = xfs_dir2_leaf_tail_p(mp, leaf); ltp->bestcount = cpu_to_be32(1); bestsp = xfs_dir2_leaf_bests_p(ltp); - bestsp[0] = block->hdr.bestfree[0].length; + bestsp[0] = hdr->bestfree[0].length; /* * Log the data header and leaf bests table. */ Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:39:13.808759056 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-07-06 15:39:53.162090397 +0200 @@ -141,7 +141,7 @@ xfs_dir2_sfe_put_ino( int /* size for sf form */ xfs_dir2_block_sfsize( xfs_inode_t *dp, /* incore inode pointer */ - xfs_dir2_block_t *block, /* block directory data */ + xfs_dir2_data_hdr_t *hdr, /* block directory data */ xfs_dir2_sf_hdr_t *sfhp) /* output: header for sf form */ { xfs_dir2_dataptr_t addr; /* data entry address */ @@ -161,7 +161,7 @@ xfs_dir2_block_sfsize( mp = dp->i_mount; count = i8count = namelen = 0; - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, hdr); blp = xfs_dir2_block_leaf_p(btp); /* @@ -174,7 +174,7 @@ xfs_dir2_block_sfsize( * Calculate the pointer to the entry at hand. */ dep = (xfs_dir2_data_entry_t *) - ((char *)block + xfs_dir2_dataptr_to_off(mp, addr)); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, addr)); /* * Detect . and .., so we can special-case them. * . is not included in sf directories. @@ -255,6 +255,7 @@ xfs_dir2_block_to_sf( ASSERT(error != ENOSPC); goto out; } + /* * The buffer is now unconditionally gone, whether * xfs_dir2_shrink_inode worked or not. @@ -276,7 +277,7 @@ xfs_dir2_block_to_sf( /* * Set up to loop over the block's entries. */ - btp = xfs_dir2_block_tail_p(mp, block); + btp = xfs_dir2_block_tail_p(mp, &block->hdr); ptr = (char *)block->u; endptr = (char *)xfs_dir2_block_leaf_p(btp); sfep = xfs_dir2_sf_firstentry(sfp); Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:39:13.818759055 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.h 2011-07-06 15:39:53.165423730 +0200 @@ -32,7 +32,7 @@ struct uio; struct xfs_dabuf; struct xfs_da_args; -struct xfs_dir2_block; +struct xfs_dir2_data_hdr; struct xfs_inode; struct xfs_mount; struct xfs_trans; @@ -136,7 +136,7 @@ extern xfs_ino_t xfs_dir2_sf_get_parent_ extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, struct xfs_dir2_sf_entry *sfep); extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, - struct xfs_dir2_block *block, + struct xfs_dir2_data_hdr *block, xfs_dir2_sf_hdr_t *sfhp); extern int xfs_dir2_block_to_sf(struct xfs_da_args *args, struct xfs_dabuf *bp, int size, xfs_dir2_sf_hdr_t *sfhp); Index: xfs/fs/xfs/xfs_dir2_block.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.h 2011-07-06 15:39:13.832092387 +0200 +++ xfs/fs/xfs/xfs_dir2_block.h 2011-07-06 15:39:53.168757063 +0200 @@ -61,10 +61,9 @@ typedef struct xfs_dir2_block { * Pointer to the leaf header embedded in a data block (1-block format) */ static inline xfs_dir2_block_tail_t * -xfs_dir2_block_tail_p(struct xfs_mount *mp, xfs_dir2_block_t *block) +xfs_dir2_block_tail_p(struct xfs_mount *mp, xfs_dir2_data_hdr_t *hdr) { - return (((xfs_dir2_block_tail_t *) - ((char *)(block) + (mp)->m_dirblksize)) - 1); + return ((xfs_dir2_block_tail_t *)((char *)hdr + mp->m_dirblksize)) - 1; } /* From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6l7d160029 for ; Thu, 7 Jul 2011 06:06:47 -0500 X-ASG-Debug-ID: 1310036805-2170012e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1B880176A800 for ; Thu, 7 Jul 2011 04:06:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id G6hh6Q1vFjQQgphx for ; Thu, 07 Jul 2011 04:06:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPt-000427-Fu for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:45 +0000 Message-Id: <20110707110645.456074114@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:06:00 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 25/28] xfs: clean up buffer locking helpers Subject: [PATCH 25/28] xfs: clean up buffer locking helpers References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-buffer-locking X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Rename xfs_buf_cond_lock and reverse it's return value to fit most other trylock operations in the Kernel and XFS (with the exception of down_trylock, after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val with an xfs_buf_islocked for use in asserts, or and opencoded variant in tracing. remove the XFS_BUF_* wrappers for all the locking helpers. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 11:26:14.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-06-29 13:57:15.596795734 +0200 @@ -499,16 +499,14 @@ found: spin_unlock(&pag->pag_buf_lock); xfs_perag_put(pag); - if (xfs_buf_cond_lock(bp)) { - /* failed, so wait for the lock if requested. */ - if (!(flags & XBF_TRYLOCK)) { - xfs_buf_lock(bp); - XFS_STATS_INC(xb_get_locked_waited); - } else { + if (!xfs_buf_trylock(bp)) { + if (flags & XBF_TRYLOCK) { xfs_buf_rele(bp); XFS_STATS_INC(xb_busy_locked); return NULL; } + xfs_buf_lock(bp); + XFS_STATS_INC(xb_get_locked_waited); } /* @@ -896,8 +894,8 @@ xfs_buf_rele( * to push on stale inode buffers. */ int -xfs_buf_cond_lock( - xfs_buf_t *bp) +xfs_buf_trylock( + struct xfs_buf *bp) { int locked; @@ -907,15 +905,8 @@ xfs_buf_cond_lock( else if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) xfs_log_force(bp->b_target->bt_mount, 0); - trace_xfs_buf_cond_lock(bp, _RET_IP_); - return locked ? 0 : -EBUSY; -} - -int -xfs_buf_lock_value( - xfs_buf_t *bp) -{ - return bp->b_sema.count; + trace_xfs_buf_trylock(bp, _RET_IP_); + return locked; } /* @@ -929,7 +920,7 @@ xfs_buf_lock_value( */ void xfs_buf_lock( - xfs_buf_t *bp) + struct xfs_buf *bp) { trace_xfs_buf_lock(bp, _RET_IP_); @@ -950,7 +941,7 @@ xfs_buf_lock( */ void xfs_buf_unlock( - xfs_buf_t *bp) + struct xfs_buf *bp) { if ((bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q)) == XBF_DELWRI) { atomic_inc(&bp->b_hold); @@ -1694,7 +1685,7 @@ xfs_buf_delwri_split( list_for_each_entry_safe(bp, n, dwq, b_list) { ASSERT(bp->b_flags & XBF_DELWRI); - if (!XFS_BUF_ISPINNED(bp) && !xfs_buf_cond_lock(bp)) { + if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { if (!force && time_before(jiffies, bp->b_queuetime + age)) { xfs_buf_unlock(bp); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:50:40.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-06-29 13:54:35.250997736 +0200 @@ -187,10 +187,11 @@ extern void xfs_buf_free(xfs_buf_t *); extern void xfs_buf_rele(xfs_buf_t *); /* Locking and Unlocking Buffers */ -extern int xfs_buf_cond_lock(xfs_buf_t *); -extern int xfs_buf_lock_value(xfs_buf_t *); +extern int xfs_buf_trylock(xfs_buf_t *); extern void xfs_buf_lock(xfs_buf_t *); extern void xfs_buf_unlock(xfs_buf_t *); +#define xfs_buf_islocked(bp) \ + ((bp)->b_sema.count <= 0) /* Buffer Read and Write Routines */ extern int xfs_bwrite(struct xfs_mount *mp, struct xfs_buf *bp); @@ -308,10 +309,6 @@ xfs_buf_set_ref( #define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) -#define XFS_BUF_VALUSEMA(bp) xfs_buf_lock_value(bp) -#define XFS_BUF_CPSEMA(bp) (xfs_buf_cond_lock(bp) == 0) -#define XFS_BUF_VSEMA(bp) xfs_buf_unlock(bp) -#define XFS_BUF_PSEMA(bp,x) xfs_buf_lock(bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); #define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) Index: xfs/fs/xfs/linux-2.6/xfs_trace.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 11:35:45.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_trace.h 2011-06-29 13:54:32.974343403 +0200 @@ -293,7 +293,7 @@ DECLARE_EVENT_CLASS(xfs_buf_class, __entry->buffer_length = bp->b_buffer_length; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->flags = bp->b_flags; __entry->caller_ip = caller_ip; ), @@ -323,7 +323,7 @@ DEFINE_BUF_EVENT(xfs_buf_bawrite); DEFINE_BUF_EVENT(xfs_buf_bdwrite); DEFINE_BUF_EVENT(xfs_buf_lock); DEFINE_BUF_EVENT(xfs_buf_lock_done); -DEFINE_BUF_EVENT(xfs_buf_cond_lock); +DEFINE_BUF_EVENT(xfs_buf_trylock); DEFINE_BUF_EVENT(xfs_buf_unlock); DEFINE_BUF_EVENT(xfs_buf_iowait); DEFINE_BUF_EVENT(xfs_buf_iowait_done); @@ -366,7 +366,7 @@ DECLARE_EVENT_CLASS(xfs_buf_flags_class, __entry->flags = flags; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->caller_ip = caller_ip; ), TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " @@ -409,7 +409,7 @@ TRACE_EVENT(xfs_buf_ioerror, __entry->buffer_length = bp->b_buffer_length; __entry->hold = atomic_read(&bp->b_hold); __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = xfs_buf_lock_value(bp); + __entry->lockval = bp->b_sema.count; __entry->error = error; __entry->flags = bp->b_flags; __entry->caller_ip = caller_ip; @@ -454,7 +454,7 @@ DECLARE_EVENT_CLASS(xfs_buf_item_class, __entry->buf_flags = bip->bli_buf->b_flags; __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); - __entry->buf_lockval = xfs_buf_lock_value(bip->bli_buf); + __entry->buf_lockval = bip->bli_buf->b_sema.count; __entry->li_desc = bip->bli_item.li_desc; __entry->li_flags = bip->bli_item.li_flags; ), Index: xfs/fs/xfs/quota/xfs_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_dquot.c 2011-05-11 08:41:56.000000000 +0200 +++ xfs/fs/xfs/quota/xfs_dquot.c 2011-06-29 13:53:07.801471491 +0200 @@ -318,7 +318,7 @@ xfs_qm_init_dquot_blk( ASSERT(tp); ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); @@ -534,7 +534,7 @@ xfs_qm_dqtobp( } ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); /* * calculate the location of the dquot inside the buffer. @@ -622,7 +622,7 @@ xfs_qm_dqread( * brelse it because we have the changes incore. */ ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); xfs_trans_brelse(tp, bp); return (error); Index: xfs/fs/xfs/xfs_buf_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_buf_item.c 2011-04-22 06:21:45.000000000 +0200 +++ xfs/fs/xfs/xfs_buf_item.c 2011-06-29 13:53:20.938066990 +0200 @@ -420,7 +420,7 @@ xfs_buf_item_unpin( if (freed && stale) { ASSERT(bip->bli_flags & XFS_BLI_STALE); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); ASSERT(!(XFS_BUF_ISDELAYWRITE(bp))); ASSERT(XFS_BUF_ISSTALE(bp)); ASSERT(bip->bli_format.blf_flags & XFS_BLF_CANCEL); @@ -483,7 +483,7 @@ xfs_buf_item_trylock( if (XFS_BUF_ISPINNED(bp)) return XFS_ITEM_PINNED; - if (!XFS_BUF_CPSEMA(bp)) + if (!xfs_buf_trylock(bp)) return XFS_ITEM_LOCKED; /* take a reference to the buffer. */ @@ -905,7 +905,7 @@ xfs_buf_attach_iodone( xfs_log_item_t *head_lip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); lip->li_cb = cb; if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-06-17 14:07:57.000000000 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-06-29 13:53:33.954663139 +0200 @@ -1059,7 +1059,7 @@ xlog_alloc_log(xfs_mount_t *mp, XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; spin_lock_init(&log->l_icloglock); @@ -1090,7 +1090,7 @@ xlog_alloc_log(xfs_mount_t *mp, log->l_iclog_size, 0); if (!bp) goto out_free_iclog; - if (!XFS_BUF_CPSEMA(bp)) + if (!xfs_buf_trylock(bp)) ASSERT(0); XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); @@ -1118,7 +1118,7 @@ xlog_alloc_log(xfs_mount_t *mp, iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); - ASSERT(XFS_BUF_VALUSEMA(iclog->ic_bp) <= 0); + ASSERT(xfs_buf_islocked(iclog->ic_bp)); init_waitqueue_head(&iclog->ic_force_wait); init_waitqueue_head(&iclog->ic_write_wait); Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-05-20 15:25:52.000000000 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-06-29 13:51:20.425386530 +0200 @@ -264,7 +264,7 @@ xlog_bwrite( XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); - XFS_BUF_PSEMA(bp, PRIBIO); + xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); Index: xfs/fs/xfs/xfs_mount.c =================================================================== --- xfs.orig/fs/xfs/xfs_mount.c 2011-06-29 11:38:53.000000000 +0200 +++ xfs/fs/xfs/xfs_mount.c 2011-06-29 13:51:20.425386530 +0200 @@ -1941,22 +1941,19 @@ unwind: * the superblock buffer if it can be locked without sleeping. * If it can't then we'll return NULL. */ -xfs_buf_t * +struct xfs_buf * xfs_getsb( - xfs_mount_t *mp, - int flags) + struct xfs_mount *mp, + int flags) { - xfs_buf_t *bp; + struct xfs_buf *bp = mp->m_sb_bp; - ASSERT(mp->m_sb_bp != NULL); - bp = mp->m_sb_bp; - if (flags & XBF_TRYLOCK) { - if (!XFS_BUF_CPSEMA(bp)) { + if (!xfs_buf_trylock(bp)) { + if (flags & XBF_TRYLOCK) return NULL; - } - } else { - XFS_BUF_PSEMA(bp, PRIBIO); + xfs_buf_lock(bp); } + XFS_BUF_HOLD(bp); ASSERT(XFS_BUF_ISDONE(bp)); return bp; Index: xfs/fs/xfs/xfs_trans_buf.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_buf.c 2011-03-27 23:52:57.000000000 +0200 +++ xfs/fs/xfs/xfs_trans_buf.c 2011-06-29 13:53:47.084592005 +0200 @@ -160,7 +160,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, */ bp = xfs_trans_buf_item_match(tp, target_dev, blkno, len); if (bp != NULL) { - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); if (XFS_FORCED_SHUTDOWN(tp->t_mountp)) XFS_BUF_SUPER_STALE(bp); @@ -327,7 +327,7 @@ xfs_trans_read_buf( */ bp = xfs_trans_buf_item_match(tp, target, blkno, len); if (bp != NULL) { - ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); + ASSERT(xfs_buf_islocked(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT((XFS_BUF_ISERROR(bp)) == 0); From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6lBS160047 for ; Thu, 7 Jul 2011 06:06:47 -0500 X-ASG-Debug-ID: 1310036806-2174015c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 740CE176A80B for ; Thu, 7 Jul 2011 04:06:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id QY2utrqxuMWmcf6y for ; Thu, 07 Jul 2011 04:06:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPt-000439-Tc for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:45 +0000 Message-Id: <20110707110645.880386962@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:06:02 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 27/28] xfs: cleanup I/O-related buffer flags Subject: [PATCH 27/28] xfs: cleanup I/O-related buffer flags References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-buf-cleanup-flags X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and XBF_FLUSH to allow more fine grained control over the bio flags. Also cleanup processing of the flags in _xfs_buf_ioapply to make more sense, and renumber the sparse flag number space to group flags by purpose. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-07-06 11:04:09.576261329 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-07-06 11:05:29.006257308 +0200 @@ -592,10 +592,8 @@ _xfs_buf_read( ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); - bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); - bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | \ - XBF_READ_AHEAD | _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | XBF_READ_AHEAD); + bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); status = xfs_buf_iorequest(bp); if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) @@ -1211,23 +1209,21 @@ _xfs_buf_ioapply( total_nr_pages = bp->b_page_count; map_i = 0; - if (bp->b_flags & XBF_ORDERED) { - ASSERT(!(bp->b_flags & XBF_READ)); - rw = WRITE_FLUSH_FUA; - } else if (bp->b_flags & XBF_LOG_BUFFER) { - ASSERT(!(bp->b_flags & XBF_READ_AHEAD)); - bp->b_flags &= ~_XBF_RUN_QUEUES; - rw = (bp->b_flags & XBF_WRITE) ? WRITE_SYNC : READ_SYNC; - } else if (bp->b_flags & _XBF_RUN_QUEUES) { - ASSERT(!(bp->b_flags & XBF_READ_AHEAD)); - bp->b_flags &= ~_XBF_RUN_QUEUES; - rw = (bp->b_flags & XBF_WRITE) ? WRITE_META : READ_META; + if (bp->b_flags & XBF_WRITE) { + if (bp->b_flags & XBF_SYNCIO) + rw = WRITE_SYNC; + else + rw = WRITE; + if (bp->b_flags & XBF_FUA) + rw |= REQ_FUA; + if (bp->b_flags & XBF_FLUSH) + rw |= REQ_FLUSH; + } else if (bp->b_flags & XBF_READ_AHEAD) { + rw = READA; } else { - rw = (bp->b_flags & XBF_WRITE) ? WRITE : - (bp->b_flags & XBF_READ_AHEAD) ? READA : READ; + rw = READ; } - next_chunk: atomic_inc(&bp->b_io_remaining); nr_pages = BIO_MAX_SECTORS >> (PAGE_SHIFT - BBSHIFT); @@ -1689,8 +1685,7 @@ xfs_buf_delwri_split( break; } - bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q| - _XBF_RUN_QUEUES); + bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); bp->b_flags |= XBF_WRITE; list_move_tail(&bp->b_list, list); trace_xfs_buf_delwri_split(bp, _RET_IP_); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-07-06 11:03:48.826262375 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-07-06 11:05:48.826256301 +0200 @@ -46,43 +46,46 @@ typedef enum { #define XBF_READ (1 << 0) /* buffer intended for reading from device */ #define XBF_WRITE (1 << 1) /* buffer intended for writing to device */ -#define XBF_MAPPED (1 << 2) /* buffer mapped (b_addr valid) */ +#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */ +#define XBF_MAPPED (1 << 3) /* buffer mapped (b_addr valid) */ #define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */ #define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */ #define XBF_DELWRI (1 << 6) /* buffer has dirty pages */ #define XBF_STALE (1 << 7) /* buffer has been staled, do not find it */ -#define XBF_ORDERED (1 << 11)/* use ordered writes */ -#define XBF_READ_AHEAD (1 << 12)/* asynchronous read-ahead */ -#define XBF_LOG_BUFFER (1 << 13)/* this is a buffer used for the log */ + +/* I/O hints for the BIO layer */ +#define XBF_SYNCIO (1 << 10)/* treat this buffer as synchronous I/O */ +#define XBF_FUA (1 << 11)/* force cache write through mode */ +#define XBF_FLUSH (1 << 12)/* flush the disk cache before a write */ /* flags used only as arguments to access routines */ -#define XBF_LOCK (1 << 14)/* lock requested */ -#define XBF_TRYLOCK (1 << 15)/* lock requested, but do not wait */ -#define XBF_DONT_BLOCK (1 << 16)/* do not block in current thread */ +#define XBF_LOCK (1 << 15)/* lock requested */ +#define XBF_TRYLOCK (1 << 16)/* lock requested, but do not wait */ +#define XBF_DONT_BLOCK (1 << 17)/* do not block in current thread */ /* flags used only internally */ -#define _XBF_PAGES (1 << 18)/* backed by refcounted pages */ -#define _XBF_RUN_QUEUES (1 << 19)/* run block device task queue */ -#define _XBF_KMEM (1 << 20)/* backed by heap memory */ -#define _XBF_DELWRI_Q (1 << 21)/* buffer on delwri queue */ +#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ +#define _XBF_KMEM (1 << 21)/* backed by heap memory */ +#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ typedef unsigned int xfs_buf_flags_t; #define XFS_BUF_FLAGS \ { XBF_READ, "READ" }, \ { XBF_WRITE, "WRITE" }, \ + { XBF_READ_AHEAD, "READ_AHEAD" }, \ { XBF_MAPPED, "MAPPED" }, \ { XBF_ASYNC, "ASYNC" }, \ { XBF_DONE, "DONE" }, \ { XBF_DELWRI, "DELWRI" }, \ { XBF_STALE, "STALE" }, \ - { XBF_ORDERED, "ORDERED" }, \ - { XBF_READ_AHEAD, "READ_AHEAD" }, \ + { XBF_SYNCIO, "SYNCIO" }, \ + { XBF_FUA, "FUA" }, \ + { XBF_FLUSH, "FLUSH" }, \ { XBF_LOCK, "LOCK" }, /* should never be set */\ { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ { _XBF_PAGES, "PAGES" }, \ - { _XBF_RUN_QUEUES, "RUN_QUEUES" }, \ { _XBF_KMEM, "KMEM" }, \ { _XBF_DELWRI_Q, "DELWRI_Q" } @@ -230,8 +233,9 @@ extern void xfs_buf_terminate(void); #define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) -#define XFS_BUF_ZEROFLAGS(bp) ((bp)->b_flags &= \ - ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED)) +#define XFS_BUF_ZEROFLAGS(bp) \ + ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ + XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); @@ -263,10 +267,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) -#define XFS_BUF_ORDERED(bp) ((bp)->b_flags |= XBF_ORDERED) -#define XFS_BUF_UNORDERED(bp) ((bp)->b_flags &= ~XBF_ORDERED) -#define XFS_BUF_ISORDERED(bp) ((bp)->b_flags & XBF_ORDERED) - #define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) #define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) #define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-06 11:04:09.576261329 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-06 15:29:10.062122957 +0200 @@ -1268,7 +1268,6 @@ xlog_bdstrat( return 0; } - bp->b_flags |= _XBF_RUN_QUEUES; xfs_buf_iorequest(bp); return 0; } @@ -1369,7 +1368,7 @@ xlog_sync(xlog_t *log, XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); - bp->b_flags |= XBF_LOG_BUFFER; + bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) { /* @@ -1380,7 +1379,7 @@ xlog_sync(xlog_t *log, */ if (log->l_mp->m_logdev_targp != log->l_mp->m_ddev_targp) xfs_blkdev_issue_flush(log->l_mp->m_ddev_targp); - XFS_BUF_ORDERED(bp); + bp->b_flags |= XBF_FUA | XBF_FLUSH; } ASSERT(XFS_BUF_ADDR(bp) <= log->l_logBBsize-1); @@ -1413,9 +1412,9 @@ xlog_sync(xlog_t *log, XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); - bp->b_flags |= XBF_LOG_BUFFER; + bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) - XFS_BUF_ORDERED(bp); + bp->b_flags |= XBF_FUA | XBF_FLUSH; dptr = XFS_BUF_PTR(bp); /* * Bump the cycle numbers at the start of each block From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_36, J_CHICKENPOX_61,J_CHICKENPOX_62,J_CHICKENPOX_64,J_CHICKENPOX_65, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6n8n160082 for ; Thu, 7 Jul 2011 06:06:49 -0500 X-ASG-Debug-ID: 1310036805-2aca01390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 52ECD15ECDA7 for ; Thu, 7 Jul 2011 04:06:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id xJN6BbNqonAtQOet for ; Thu, 07 Jul 2011 04:06:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPt-000415-2k for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:45 +0000 Message-Id: <20110707110645.046387162@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:58 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 23/28] xfs: byteswap constants instead of variables Subject: [PATCH 23/28] xfs: byteswap constants instead of variables References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-byteswap-constants X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036806 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Micro-optimize various comparisms by always byteswapping the constant instead of the variable, which allows to do the swap at compile instead of runtime. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_attr.c =================================================================== --- xfs.orig/fs/xfs/xfs_attr.c 2011-07-07 10:06:52.798727585 +0200 +++ xfs/fs/xfs/xfs_attr.c 2011-07-07 10:14:09.008705501 +0200 @@ -1203,7 +1203,7 @@ xfs_attr_leaf_list(xfs_attr_list_context return XFS_ERROR(error); ASSERT(bp != NULL); leaf = bp->data; - if (unlikely(be16_to_cpu(leaf->hdr.info.magic) != XFS_ATTR_LEAF_MAGIC)) { + if (unlikely(leaf->hdr.info.magic != cpu_to_be16(XFS_ATTR_LEAF_MAGIC))) { XFS_CORRUPTION_ERROR("xfs_attr_leaf_list", XFS_ERRLEVEL_LOW, context->dp->i_mount, leaf); xfs_da_brelse(NULL, bp); @@ -1610,9 +1610,8 @@ xfs_attr_node_removename(xfs_da_args_t * XFS_ATTR_FORK); if (error) goto out; - ASSERT(be16_to_cpu(((xfs_attr_leafblock_t *) - bp->data)->hdr.info.magic) - == XFS_ATTR_LEAF_MAGIC); + ASSERT((((xfs_attr_leafblock_t *)bp->data)->hdr.info.magic) == + cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); if ((forkoff = xfs_attr_shortform_allfit(bp, dp))) { xfs_bmap_init(args->flist, args->firstblock); @@ -1877,11 +1876,11 @@ xfs_attr_node_list(xfs_attr_list_context return(XFS_ERROR(EFSCORRUPTED)); } node = bp->data; - if (be16_to_cpu(node->hdr.info.magic) - == XFS_ATTR_LEAF_MAGIC) + if (node->hdr.info.magic == + cpu_to_be16(XFS_ATTR_LEAF_MAGIC)) break; - if (unlikely(be16_to_cpu(node->hdr.info.magic) - != XFS_DA_NODE_MAGIC)) { + if (unlikely(node->hdr.info.magic != + cpu_to_be16(XFS_DA_NODE_MAGIC))) { XFS_CORRUPTION_ERROR("xfs_attr_node_list(3)", XFS_ERRLEVEL_LOW, context->dp->i_mount, @@ -1916,8 +1915,8 @@ xfs_attr_node_list(xfs_attr_list_context */ for (;;) { leaf = bp->data; - if (unlikely(be16_to_cpu(leaf->hdr.info.magic) - != XFS_ATTR_LEAF_MAGIC)) { + if (unlikely(leaf->hdr.info.magic != + cpu_to_be16(XFS_ATTR_LEAF_MAGIC))) { XFS_CORRUPTION_ERROR("xfs_attr_node_list(4)", XFS_ERRLEVEL_LOW, context->dp->i_mount, leaf); Index: xfs/fs/xfs/xfs_attr_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_attr_leaf.c 2011-07-07 10:06:52.808727584 +0200 +++ xfs/fs/xfs/xfs_attr_leaf.c 2011-07-07 10:14:09.008705501 +0200 @@ -731,7 +731,7 @@ xfs_attr_shortform_allfit(xfs_dabuf_t *b int bytes, i; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); entry = &leaf->entries[0]; bytes = sizeof(struct xfs_attr_sf_hdr); @@ -777,7 +777,7 @@ xfs_attr_leaf_to_shortform(xfs_dabuf_t * ASSERT(bp != NULL); memcpy(tmpbuffer, bp->data, XFS_LBSIZE(dp->i_mount)); leaf = (xfs_attr_leafblock_t *)tmpbuffer; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); memset(bp->data, 0, XFS_LBSIZE(dp->i_mount)); /* @@ -872,7 +872,7 @@ xfs_attr_leaf_to_node(xfs_da_args_t *arg goto out; node = bp1->data; leaf = bp2->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); /* both on-disk, don't endian-flip twice */ node->btree[0].hashval = leaf->entries[be16_to_cpu(leaf->hdr.count)-1 ].hashval; @@ -997,7 +997,7 @@ xfs_attr_leaf_add(xfs_dabuf_t *bp, xfs_d int tablesize, entsize, sum, tmp, i; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT((args->index >= 0) && (args->index <= be16_to_cpu(leaf->hdr.count))); hdr = &leaf->hdr; @@ -1070,7 +1070,7 @@ xfs_attr_leaf_add_work(xfs_dabuf_t *bp, int tmp, i; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); hdr = &leaf->hdr; ASSERT((mapindex >= 0) && (mapindex < XFS_ATTR_LEAF_MAPSIZE)); ASSERT((args->index >= 0) && (args->index <= be16_to_cpu(hdr->count))); @@ -1256,8 +1256,8 @@ xfs_attr_leaf_rebalance(xfs_da_state_t * ASSERT(blk2->magic == XFS_ATTR_LEAF_MAGIC); leaf1 = blk1->bp->data; leaf2 = blk2->bp->data; - ASSERT(be16_to_cpu(leaf1->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); - ASSERT(be16_to_cpu(leaf2->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf1->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); + ASSERT(leaf2->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); args = state->args; /* @@ -1533,7 +1533,7 @@ xfs_attr_leaf_toosmall(xfs_da_state_t *s */ blk = &state->path.blk[ state->path.active-1 ]; info = blk->bp->data; - ASSERT(be16_to_cpu(info->magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(info->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); leaf = (xfs_attr_leafblock_t *)info; count = be16_to_cpu(leaf->hdr.count); bytes = sizeof(xfs_attr_leaf_hdr_t) + @@ -1596,7 +1596,7 @@ xfs_attr_leaf_toosmall(xfs_da_state_t *s bytes = state->blocksize - (state->blocksize>>2); bytes -= be16_to_cpu(leaf->hdr.usedbytes); leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); count += be16_to_cpu(leaf->hdr.count); bytes -= be16_to_cpu(leaf->hdr.usedbytes); bytes -= count * sizeof(xfs_attr_leaf_entry_t); @@ -1650,7 +1650,7 @@ xfs_attr_leaf_remove(xfs_dabuf_t *bp, xf xfs_mount_t *mp; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); hdr = &leaf->hdr; mp = args->trans->t_mountp; ASSERT((be16_to_cpu(hdr->count) > 0) @@ -1813,8 +1813,8 @@ xfs_attr_leaf_unbalance(xfs_da_state_t * ASSERT(save_blk->magic == XFS_ATTR_LEAF_MAGIC); drop_leaf = drop_blk->bp->data; save_leaf = save_blk->bp->data; - ASSERT(be16_to_cpu(drop_leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); - ASSERT(be16_to_cpu(save_leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(drop_leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); + ASSERT(save_leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); drop_hdr = &drop_leaf->hdr; save_hdr = &save_leaf->hdr; @@ -1915,7 +1915,7 @@ xfs_attr_leaf_lookup_int(xfs_dabuf_t *bp xfs_dahash_t hashval; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(be16_to_cpu(leaf->hdr.count) < (XFS_LBSIZE(args->dp->i_mount)/8)); @@ -2019,7 +2019,7 @@ xfs_attr_leaf_getvalue(xfs_dabuf_t *bp, xfs_attr_leaf_name_remote_t *name_rmt; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(be16_to_cpu(leaf->hdr.count) < (XFS_LBSIZE(args->dp->i_mount)/8)); ASSERT(args->index < be16_to_cpu(leaf->hdr.count)); @@ -2087,8 +2087,8 @@ xfs_attr_leaf_moveents(xfs_attr_leafbloc /* * Set up environment. */ - ASSERT(be16_to_cpu(leaf_s->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); - ASSERT(be16_to_cpu(leaf_d->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf_s->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); + ASSERT(leaf_d->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); hdr_s = &leaf_s->hdr; hdr_d = &leaf_d->hdr; ASSERT((be16_to_cpu(hdr_s->count) > 0) && @@ -2222,8 +2222,8 @@ xfs_attr_leaf_order(xfs_dabuf_t *leaf1_b leaf1 = leaf1_bp->data; leaf2 = leaf2_bp->data; - ASSERT((be16_to_cpu(leaf1->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC) && - (be16_to_cpu(leaf2->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC)); + ASSERT((leaf1->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)) && + (leaf2->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC))); if ((be16_to_cpu(leaf1->hdr.count) > 0) && (be16_to_cpu(leaf2->hdr.count) > 0) && ((be32_to_cpu(leaf2->entries[0].hashval) < @@ -2246,7 +2246,7 @@ xfs_attr_leaf_lasthash(xfs_dabuf_t *bp, xfs_attr_leafblock_t *leaf; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); if (count) *count = be16_to_cpu(leaf->hdr.count); if (!leaf->hdr.count) @@ -2265,7 +2265,7 @@ xfs_attr_leaf_entsize(xfs_attr_leafblock xfs_attr_leaf_name_remote_t *name_rmt; int size; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); if (leaf->entries[index].flags & XFS_ATTR_LOCAL) { name_loc = xfs_attr_leaf_name_local(leaf, index); size = xfs_attr_leaf_entsize_local(name_loc->namelen, @@ -2451,7 +2451,7 @@ xfs_attr_leaf_clearflag(xfs_da_args_t *a ASSERT(bp != NULL); leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(args->index < be16_to_cpu(leaf->hdr.count)); ASSERT(args->index >= 0); entry = &leaf->entries[ args->index ]; @@ -2515,7 +2515,7 @@ xfs_attr_leaf_setflag(xfs_da_args_t *arg ASSERT(bp != NULL); leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(args->index < be16_to_cpu(leaf->hdr.count)); ASSERT(args->index >= 0); entry = &leaf->entries[ args->index ]; @@ -2585,13 +2585,13 @@ xfs_attr_leaf_flipflags(xfs_da_args_t *a } leaf1 = bp1->data; - ASSERT(be16_to_cpu(leaf1->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf1->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(args->index < be16_to_cpu(leaf1->hdr.count)); ASSERT(args->index >= 0); entry1 = &leaf1->entries[ args->index ]; leaf2 = bp2->data; - ASSERT(be16_to_cpu(leaf2->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf2->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); ASSERT(args->index2 < be16_to_cpu(leaf2->hdr.count)); ASSERT(args->index2 >= 0); entry2 = &leaf2->entries[ args->index2 ]; @@ -2689,9 +2689,9 @@ xfs_attr_root_inactive(xfs_trans_t **tra * This is a depth-first traversal! */ info = bp->data; - if (be16_to_cpu(info->magic) == XFS_DA_NODE_MAGIC) { + if (info->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)) { error = xfs_attr_node_inactive(trans, dp, bp, 1); - } else if (be16_to_cpu(info->magic) == XFS_ATTR_LEAF_MAGIC) { + } else if (info->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)) { error = xfs_attr_leaf_inactive(trans, dp, bp); } else { error = XFS_ERROR(EIO); @@ -2739,7 +2739,7 @@ xfs_attr_node_inactive(xfs_trans_t **tra } node = bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); parent_blkno = xfs_da_blkno(bp); /* save for re-read later */ count = be16_to_cpu(node->hdr.count); if (!count) { @@ -2773,10 +2773,10 @@ xfs_attr_node_inactive(xfs_trans_t **tra * Invalidate the subtree, however we have to. */ info = child_bp->data; - if (be16_to_cpu(info->magic) == XFS_DA_NODE_MAGIC) { + if (info->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)) { error = xfs_attr_node_inactive(trans, dp, child_bp, level+1); - } else if (be16_to_cpu(info->magic) == XFS_ATTR_LEAF_MAGIC) { + } else if (info->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)) { error = xfs_attr_leaf_inactive(trans, dp, child_bp); } else { @@ -2836,7 +2836,7 @@ xfs_attr_leaf_inactive(xfs_trans_t **tra int error, count, size, tmp, i; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); /* * Count the number of "remote" value extents. Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-07-07 10:06:52.822060918 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-07-07 10:14:09.012038834 +0200 @@ -321,11 +321,11 @@ xfs_da_root_split(xfs_da_state_t *state, ASSERT(bp != NULL); node = bp->data; oldroot = blk1->bp->data; - if (be16_to_cpu(oldroot->hdr.info.magic) == XFS_DA_NODE_MAGIC) { + if (oldroot->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)) { size = (int)((char *)&oldroot->btree[be16_to_cpu(oldroot->hdr.count)] - (char *)oldroot); } else { - ASSERT(be16_to_cpu(oldroot->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(oldroot->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); leaf = (xfs_dir2_leaf_t *)oldroot; size = (int)((char *)&leaf->ents[be16_to_cpu(leaf->hdr.count)] - (char *)leaf); @@ -352,7 +352,7 @@ xfs_da_root_split(xfs_da_state_t *state, node->hdr.count = cpu_to_be16(2); #ifdef DEBUG - if (be16_to_cpu(oldroot->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC) { + if (oldroot->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)) { ASSERT(blk1->blkno >= mp->m_dirleafblk && blk1->blkno < mp->m_dirfreeblk); ASSERT(blk2->blkno >= mp->m_dirleafblk && @@ -384,7 +384,7 @@ xfs_da_node_split(xfs_da_state_t *state, int useextra; node = oldblk->bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); /* * With V2 dirs the extra block is data or freespace. @@ -483,8 +483,8 @@ xfs_da_node_rebalance(xfs_da_state_t *st node1 = node2; node2 = tmpnode; } - ASSERT(be16_to_cpu(node1->hdr.info.magic) == XFS_DA_NODE_MAGIC); - ASSERT(be16_to_cpu(node2->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node1->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); + ASSERT(node2->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); count = (be16_to_cpu(node1->hdr.count) - be16_to_cpu(node2->hdr.count)) / 2; if (count == 0) return; @@ -578,7 +578,7 @@ xfs_da_node_add(xfs_da_state_t *state, x int tmp; node = oldblk->bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); ASSERT((oldblk->index >= 0) && (oldblk->index <= be16_to_cpu(node->hdr.count))); ASSERT(newblk->blkno != 0); if (state->args->whichfork == XFS_DATA_FORK) @@ -714,7 +714,7 @@ xfs_da_root_join(xfs_da_state_t *state, ASSERT(args != NULL); ASSERT(root_blk->magic == XFS_DA_NODE_MAGIC); oldroot = root_blk->bp->data; - ASSERT(be16_to_cpu(oldroot->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(oldroot->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); ASSERT(!oldroot->hdr.info.forw); ASSERT(!oldroot->hdr.info.back); @@ -737,10 +737,10 @@ xfs_da_root_join(xfs_da_state_t *state, ASSERT(bp != NULL); blkinfo = bp->data; if (be16_to_cpu(oldroot->hdr.level) == 1) { - ASSERT(be16_to_cpu(blkinfo->magic) == XFS_DIR2_LEAFN_MAGIC || - be16_to_cpu(blkinfo->magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(blkinfo->magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC) || + blkinfo->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); } else { - ASSERT(be16_to_cpu(blkinfo->magic) == XFS_DA_NODE_MAGIC); + ASSERT(blkinfo->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); } ASSERT(!blkinfo->forw); ASSERT(!blkinfo->back); @@ -776,7 +776,7 @@ xfs_da_node_toosmall(xfs_da_state_t *sta */ blk = &state->path.blk[ state->path.active-1 ]; info = blk->bp->data; - ASSERT(be16_to_cpu(info->magic) == XFS_DA_NODE_MAGIC); + ASSERT(info->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); node = (xfs_da_intnode_t *)info; count = be16_to_cpu(node->hdr.count); if (count > (state->node_ents >> 1)) { @@ -836,7 +836,7 @@ xfs_da_node_toosmall(xfs_da_state_t *sta count -= state->node_ents >> 2; count -= be16_to_cpu(node->hdr.count); node = bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); count -= be16_to_cpu(node->hdr.count); xfs_da_brelse(state->args->trans, bp); if (count >= 0) @@ -911,7 +911,7 @@ xfs_da_fixhashpath(xfs_da_state_t *state } for (blk--, level--; level >= 0; blk--, level--) { node = blk->bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); btree = &node->btree[ blk->index ]; if (be32_to_cpu(btree->hashval) == lasthash) break; @@ -979,8 +979,8 @@ xfs_da_node_unbalance(xfs_da_state_t *st drop_node = drop_blk->bp->data; save_node = save_blk->bp->data; - ASSERT(be16_to_cpu(drop_node->hdr.info.magic) == XFS_DA_NODE_MAGIC); - ASSERT(be16_to_cpu(save_node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(drop_node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); + ASSERT(save_node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); tp = state->args->trans; /* @@ -1278,8 +1278,8 @@ xfs_da_node_order(xfs_dabuf_t *node1_bp, node1 = node1_bp->data; node2 = node2_bp->data; - ASSERT((be16_to_cpu(node1->hdr.info.magic) == XFS_DA_NODE_MAGIC) && - (be16_to_cpu(node2->hdr.info.magic) == XFS_DA_NODE_MAGIC)); + ASSERT(node1->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC) && + node2->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); if ((be16_to_cpu(node1->hdr.count) > 0) && (be16_to_cpu(node2->hdr.count) > 0) && ((be32_to_cpu(node2->btree[0].hashval) < be32_to_cpu(node1->btree[0].hashval)) || @@ -1299,7 +1299,7 @@ xfs_da_node_lasthash(xfs_dabuf_t *bp, in xfs_da_intnode_t *node; node = bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); if (count) *count = be16_to_cpu(node->hdr.count); if (!node->hdr.count) @@ -1412,7 +1412,7 @@ xfs_da_path_shift(xfs_da_state_t *state, for (blk = &path->blk[level]; level >= 0; blk--, level--) { ASSERT(blk->bp != NULL); node = blk->bp->data; - ASSERT(be16_to_cpu(node->hdr.info.magic) == XFS_DA_NODE_MAGIC); + ASSERT(node->hdr.info.magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); if (forward && (blk->index < be16_to_cpu(node->hdr.count)-1)) { blk->index++; blkno = be32_to_cpu(node->btree[blk->index].before); @@ -1451,9 +1451,9 @@ xfs_da_path_shift(xfs_da_state_t *state, return(error); ASSERT(blk->bp != NULL); info = blk->bp->data; - ASSERT(be16_to_cpu(info->magic) == XFS_DA_NODE_MAGIC || - be16_to_cpu(info->magic) == XFS_DIR2_LEAFN_MAGIC || - be16_to_cpu(info->magic) == XFS_ATTR_LEAF_MAGIC); + ASSERT(info->magic == cpu_to_be16(XFS_DA_NODE_MAGIC) || + info->magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC) || + info->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); blk->magic = be16_to_cpu(info->magic); if (blk->magic == XFS_DA_NODE_MAGIC) { node = (xfs_da_intnode_t *)info; @@ -1704,12 +1704,12 @@ xfs_da_swap_lastblock(xfs_da_args_t *arg /* * Get values from the moved block. */ - if (be16_to_cpu(dead_info->magic) == XFS_DIR2_LEAFN_MAGIC) { + if (dead_info->magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)) { dead_leaf2 = (xfs_dir2_leaf_t *)dead_info; dead_level = 0; dead_hash = be32_to_cpu(dead_leaf2->ents[be16_to_cpu(dead_leaf2->hdr.count) - 1].hashval); } else { - ASSERT(be16_to_cpu(dead_info->magic) == XFS_DA_NODE_MAGIC); + ASSERT(dead_info->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); dead_node = (xfs_da_intnode_t *)dead_info; dead_level = be16_to_cpu(dead_node->hdr.level); dead_hash = be32_to_cpu(dead_node->btree[be16_to_cpu(dead_node->hdr.count) - 1].hashval); @@ -1768,8 +1768,8 @@ xfs_da_swap_lastblock(xfs_da_args_t *arg if ((error = xfs_da_read_buf(tp, ip, par_blkno, -1, &par_buf, w))) goto done; par_node = par_buf->data; - if (unlikely( - be16_to_cpu(par_node->hdr.info.magic) != XFS_DA_NODE_MAGIC || + if (unlikely(par_node->hdr.info.magic != + cpu_to_be16(XFS_DA_NODE_MAGIC) || (level >= 0 && level != be16_to_cpu(par_node->hdr.level) + 1))) { XFS_ERROR_REPORT("xfs_da_swap_lastblock(4)", XFS_ERRLEVEL_LOW, mp); @@ -1820,7 +1820,7 @@ xfs_da_swap_lastblock(xfs_da_args_t *arg par_node = par_buf->data; if (unlikely( be16_to_cpu(par_node->hdr.level) != level || - be16_to_cpu(par_node->hdr.info.magic) != XFS_DA_NODE_MAGIC)) { + par_node->hdr.info.magic != cpu_to_be16(XFS_DA_NODE_MAGIC))) { XFS_ERROR_REPORT("xfs_da_swap_lastblock(7)", XFS_ERRLEVEL_LOW, mp); error = XFS_ERROR(EFSCORRUPTED); @@ -2093,7 +2093,7 @@ xfs_da_do_buf( (magic != XFS_DIR2_LEAFN_MAGIC) && (magic1 != XFS_DIR2_BLOCK_MAGIC) && (magic1 != XFS_DIR2_DATA_MAGIC) && - (be32_to_cpu(free->hdr.magic) != XFS_DIR2_FREE_MAGIC), + (free->hdr.magic != cpu_to_be32(XFS_DIR2_FREE_MAGIC)), mp, XFS_ERRTAG_DA_READ_BUF, XFS_RANDOM_DA_READ_BUF))) { trace_xfs_da_btree_corrupt(rbp->bps[0], _RET_IP_); Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-07 10:06:52.832060917 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-07 10:14:09.012038834 +0200 @@ -109,7 +109,7 @@ xfs_dir2_block_addname( /* * Check the magic number, corrupted if wrong. */ - if (unlikely(be32_to_cpu(hdr->magic) != XFS_DIR2_BLOCK_MAGIC)) { + if (unlikely(hdr->magic != cpu_to_be32(XFS_DIR2_BLOCK_MAGIC))) { XFS_CORRUPTION_ERROR("xfs_dir2_block_addname", XFS_ERRLEVEL_LOW, mp, hdr); xfs_da_brelse(tp, bp); @@ -255,7 +255,8 @@ xfs_dir2_block_addname( highstale = lfloghigh = -1; fromidx >= 0; fromidx--) { - if (be32_to_cpu(blp[fromidx].address) == XFS_DIR2_NULL_DATAPTR) { + if (blp[fromidx].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) { if (highstale == -1) highstale = toidx; else { @@ -352,12 +353,14 @@ xfs_dir2_block_addname( else { for (lowstale = mid; lowstale >= 0 && - be32_to_cpu(blp[lowstale].address) != XFS_DIR2_NULL_DATAPTR; + blp[lowstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); lowstale--) continue; for (highstale = mid + 1; highstale < be32_to_cpu(btp->count) && - be32_to_cpu(blp[highstale].address) != XFS_DIR2_NULL_DATAPTR && + blp[highstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && (lowstale < 0 || mid - lowstale > highstale - mid); highstale++) continue; @@ -899,7 +902,7 @@ xfs_dir2_leaf_to_block( tp = args->trans; mp = dp->i_mount; leaf = lbp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC)); ltp = xfs_dir2_leaf_tail_p(mp, leaf); /* * If there are data blocks other than the first one, take this @@ -929,7 +932,7 @@ xfs_dir2_leaf_to_block( goto out; } hdr = dbp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)); /* * Size of the "leaf" area in the block. */ @@ -971,7 +974,8 @@ xfs_dir2_leaf_to_block( */ lep = xfs_dir2_block_leaf_p(btp); for (from = to = 0; from < be16_to_cpu(leaf->hdr.count); from++) { - if (be32_to_cpu(leaf->ents[from].address) == XFS_DIR2_NULL_DATAPTR) + if (leaf->ents[from].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) continue; lep[to++] = leaf->ents[from]; } Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-07 10:10:13.968717400 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-07 10:15:55.018700133 +0200 @@ -201,8 +201,8 @@ xfs_dir2_leaf_find_entry( */ for (lowstale = index - 1; lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != - XFS_DIR2_NULL_DATAPTR; + leaf->ents[lowstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); lowstale--) continue; @@ -213,8 +213,8 @@ xfs_dir2_leaf_find_entry( */ for (highstale = index; highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != - XFS_DIR2_NULL_DATAPTR && + leaf->ents[highstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && (lowstale < 0 || index - lowstale - 1 >= highstale - index); highstale++) @@ -228,8 +228,8 @@ xfs_dir2_leaf_find_entry( (highstale == be16_to_cpu(leaf->hdr.count) || index - lowstale - 1 < highstale - index)) { ASSERT(index - lowstale - 1 >= 0); - ASSERT(be32_to_cpu(leaf->ents[lowstale].address) == - XFS_DIR2_NULL_DATAPTR); + ASSERT(leaf->ents[lowstale].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)); /* * Copy entries up to cover the stale entry and make room @@ -251,8 +251,8 @@ xfs_dir2_leaf_find_entry( * The high one is better, so use that one. */ ASSERT(highstale - index >= 0); - ASSERT(be32_to_cpu(leaf->ents[highstale].address) == - XFS_DIR2_NULL_DATAPTR); + ASSERT(leaf->ents[highstale].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)); /* * Copy entries down to cover the stale entry and make room for the @@ -342,7 +342,7 @@ xfs_dir2_leaf_addname( continue; i = xfs_dir2_dataptr_to_db(mp, be32_to_cpu(lep->address)); ASSERT(i < be32_to_cpu(ltp->bestcount)); - ASSERT(be16_to_cpu(bestsp[i]) != NULLDATAOFF); + ASSERT(bestsp[i] != cpu_to_be16(NULLDATAOFF)); if (be16_to_cpu(bestsp[i]) >= length) { use_block = i; break; @@ -356,7 +356,8 @@ xfs_dir2_leaf_addname( /* * Remember a block we see that's missing. */ - if (be16_to_cpu(bestsp[i]) == NULLDATAOFF && use_block == -1) + if (bestsp[i] == cpu_to_be16(NULLDATAOFF) && + use_block == -1) use_block = i; else if (be16_to_cpu(bestsp[i]) >= length) { use_block = i; @@ -377,7 +378,7 @@ xfs_dir2_leaf_addname( * Now kill use_block if it refers to a missing block, so we * can use it as an indication of allocation needed. */ - if (use_block != -1 && be16_to_cpu(bestsp[use_block]) == NULLDATAOFF) + if (use_block != -1 && bestsp[use_block] == cpu_to_be16(NULLDATAOFF)) use_block = -1; /* * If we don't have enough free bytes but we can make enough @@ -590,7 +591,7 @@ xfs_dir2_leaf_check( leaf = bp->data; mp = dp->i_mount; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC)); /* * This value is not restrictive enough. * Should factor in the size of the bests table as well. @@ -610,7 +611,7 @@ xfs_dir2_leaf_check( if (i + 1 < be16_to_cpu(leaf->hdr.count)) ASSERT(be32_to_cpu(leaf->ents[i].hashval) <= be32_to_cpu(leaf->ents[i + 1].hashval)); - if (be32_to_cpu(leaf->ents[i].address) == XFS_DIR2_NULL_DATAPTR) + if (leaf->ents[i].address == cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) stale++; } ASSERT(be16_to_cpu(leaf->hdr.stale) == stale); @@ -639,7 +640,8 @@ xfs_dir2_leaf_compact( * Compress out the stale entries in place. */ for (from = to = 0, loglow = -1; from < be16_to_cpu(leaf->hdr.count); from++) { - if (be32_to_cpu(leaf->ents[from].address) == XFS_DIR2_NULL_DATAPTR) + if (leaf->ents[from].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) continue; /* * Only actually copy the entries that are different. @@ -696,7 +698,8 @@ xfs_dir2_leaf_compact_x1( */ for (lowstale = index - 1; lowstale >= 0 && - be32_to_cpu(leaf->ents[lowstale].address) != XFS_DIR2_NULL_DATAPTR; + leaf->ents[lowstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); lowstale--) continue; /* @@ -705,7 +708,8 @@ xfs_dir2_leaf_compact_x1( */ for (highstale = index; highstale < be16_to_cpu(leaf->hdr.count) && - be32_to_cpu(leaf->ents[highstale].address) != XFS_DIR2_NULL_DATAPTR && + leaf->ents[highstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && (lowstale < 0 || index - lowstale > highstale - index); highstale++) continue; @@ -729,7 +733,8 @@ xfs_dir2_leaf_compact_x1( if (index == from) newindex = to; if (from != keepstale && - be32_to_cpu(leaf->ents[from].address) == XFS_DIR2_NULL_DATAPTR) { + leaf->ents[from].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) { if (from == to) *lowlogp = to; continue; @@ -1207,7 +1212,7 @@ xfs_dir2_leaf_log_bests( xfs_dir2_leaf_tail_t *ltp; /* leaf tail structure */ leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC)); ltp = xfs_dir2_leaf_tail_p(tp->t_mountp, leaf); firstb = xfs_dir2_leaf_bests_p(ltp) + first; lastb = xfs_dir2_leaf_bests_p(ltp) + last; @@ -1230,8 +1235,8 @@ xfs_dir2_leaf_log_ents( xfs_dir2_leaf_t *leaf; /* leaf structure */ leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC || - be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC) || + leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); firstlep = &leaf->ents[first]; lastlep = &leaf->ents[last]; xfs_da_log_buf(tp, bp, (uint)((char *)firstlep - (char *)leaf), @@ -1249,8 +1254,8 @@ xfs_dir2_leaf_log_header( xfs_dir2_leaf_t *leaf; /* leaf structure */ leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC || - be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC) || + leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); xfs_da_log_buf(tp, bp, (uint)((char *)&leaf->hdr - (char *)leaf), (uint)(sizeof(leaf->hdr) - 1)); } @@ -1269,7 +1274,7 @@ xfs_dir2_leaf_log_tail( mp = tp->t_mountp; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAF1_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAF1_MAGIC)); ltp = xfs_dir2_leaf_tail_p(mp, leaf); xfs_da_log_buf(tp, bp, (uint)((char *)ltp - (char *)leaf), (uint)(mp->m_dirblksize - 1)); @@ -1570,7 +1575,7 @@ xfs_dir2_leaf_removename( * Look for the last active entry (i). */ for (i = db - 1; i > 0; i--) { - if (be16_to_cpu(bestsp[i]) != NULLDATAOFF) + if (bestsp[i] != cpu_to_be16(NULLDATAOFF)) break; } /* @@ -1740,7 +1745,7 @@ xfs_dir2_leaf_trim_data( { struct xfs_dir2_data_hdr *hdr = dbp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)); ASSERT(be16_to_cpu(hdr->bestfree[0].length) == mp->m_dirblksize - (uint)sizeof(*hdr)); ASSERT(db == be32_to_cpu(ltp->bestcount) - 1); @@ -1850,7 +1855,7 @@ xfs_dir2_node_to_leaf( return 0; lbp = state->path.blk[0].bp; leaf = lbp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); /* * Read the freespace block. */ @@ -1859,7 +1864,7 @@ xfs_dir2_node_to_leaf( return error; } free = fbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); ASSERT(!free->hdr.firstdb); /* Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-07-07 10:06:52.855394248 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-07-07 10:17:09.442029700 +0200 @@ -73,7 +73,7 @@ xfs_dir2_free_log_bests( xfs_dir2_free_t *free; /* freespace structure */ free = bp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); xfs_da_log_buf(tp, bp, (uint)((char *)&free->bests[first] - (char *)free), (uint)((char *)&free->bests[last] - (char *)free + @@ -91,7 +91,7 @@ xfs_dir2_free_log_header( xfs_dir2_free_t *free; /* freespace structure */ free = bp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); xfs_da_log_buf(tp, bp, (uint)((char *)&free->hdr - (char *)free), (uint)(sizeof(xfs_dir2_free_hdr_t) - 1)); } @@ -276,14 +276,14 @@ xfs_dir2_leafn_check( leaf = bp->data; mp = dp->i_mount; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); ASSERT(be16_to_cpu(leaf->hdr.count) <= xfs_dir2_max_leaf_ents(mp)); for (i = stale = 0; i < be16_to_cpu(leaf->hdr.count); i++) { if (i + 1 < be16_to_cpu(leaf->hdr.count)) { ASSERT(be32_to_cpu(leaf->ents[i].hashval) <= be32_to_cpu(leaf->ents[i + 1].hashval)); } - if (be32_to_cpu(leaf->ents[i].address) == XFS_DIR2_NULL_DATAPTR) + if (leaf->ents[i].address == cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) stale++; } ASSERT(be16_to_cpu(leaf->hdr.stale) == stale); @@ -302,7 +302,7 @@ xfs_dir2_leafn_lasthash( xfs_dir2_leaf_t *leaf; /* leaf structure */ leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); if (count) *count = be16_to_cpu(leaf->hdr.count); if (!leaf->hdr.count) @@ -341,7 +341,7 @@ xfs_dir2_leafn_lookup_for_addname( tp = args->trans; mp = dp->i_mount; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); #ifdef __KERNEL__ ASSERT(be16_to_cpu(leaf->hdr.count) > 0); #endif @@ -358,7 +358,7 @@ xfs_dir2_leafn_lookup_for_addname( curbp = state->extrablk.bp; curfdb = state->extrablk.blkno; free = curbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); } length = xfs_dir2_data_entsize(args->namelen); /* @@ -424,7 +424,8 @@ xfs_dir2_leafn_lookup_for_addname( /* * If it has room, return it. */ - if (unlikely(be16_to_cpu(free->bests[fi]) == NULLDATAOFF)) { + if (unlikely(free->bests[fi] == + cpu_to_be16(NULLDATAOFF))) { XFS_ERROR_REPORT("xfs_dir2_leafn_lookup_int", XFS_ERRLEVEL_LOW, mp); if (curfdb != newfdb) @@ -485,7 +486,7 @@ xfs_dir2_leafn_lookup_for_entry( tp = args->trans; mp = dp->i_mount; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); #ifdef __KERNEL__ ASSERT(be16_to_cpu(leaf->hdr.count) > 0); #endif @@ -666,7 +667,8 @@ xfs_dir2_leafn_moveents( int i; /* temp leaf index */ for (i = start_s, stale = 0; i < start_s + count; i++) { - if (be32_to_cpu(leaf_s->ents[i].address) == XFS_DIR2_NULL_DATAPTR) + if (leaf_s->ents[i].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) stale++; } } else @@ -713,8 +715,8 @@ xfs_dir2_leafn_order( leaf1 = leaf1_bp->data; leaf2 = leaf2_bp->data; - ASSERT(be16_to_cpu(leaf1->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); - ASSERT(be16_to_cpu(leaf2->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf1->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); + ASSERT(leaf2->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); if (be16_to_cpu(leaf1->hdr.count) > 0 && be16_to_cpu(leaf2->hdr.count) > 0 && (be32_to_cpu(leaf2->ents[0].hashval) < be32_to_cpu(leaf1->ents[0].hashval) || @@ -862,7 +864,7 @@ xfs_dir2_leafn_remove( tp = args->trans; mp = dp->i_mount; leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); /* * Point to the entry we're removing. */ @@ -924,7 +926,7 @@ xfs_dir2_leafn_remove( return error; } free = fbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); ASSERT(be32_to_cpu(free->hdr.firstdb) == XFS_DIR2_MAX_FREE_BESTS(mp) * (fdb - XFS_DIR2_FREE_FIRSTDB(mp))); @@ -976,7 +978,8 @@ xfs_dir2_leafn_remove( int i; /* free entry index */ for (i = findex - 1; - i >= 0 && be16_to_cpu(free->bests[i]) == NULLDATAOFF; + i >= 0 && + free->bests[i] == cpu_to_be16(NULLDATAOFF); i--) continue; free->hdr.nvalid = cpu_to_be32(i + 1); @@ -1133,7 +1136,7 @@ xfs_dir2_leafn_toosmall( */ blk = &state->path.blk[state->path.active - 1]; info = blk->bp->data; - ASSERT(be16_to_cpu(info->magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(info->magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); leaf = (xfs_dir2_leaf_t *)info; count = be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale); bytes = (uint)sizeof(leaf->hdr) + count * (uint)sizeof(leaf->ents[0]); @@ -1192,7 +1195,7 @@ xfs_dir2_leafn_toosmall( count = be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale); bytes = state->blocksize - (state->blocksize >> 2); leaf = bp->data; - ASSERT(be16_to_cpu(leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); count += be16_to_cpu(leaf->hdr.count) - be16_to_cpu(leaf->hdr.stale); bytes -= count * (uint)sizeof(leaf->ents[0]); /* @@ -1251,8 +1254,8 @@ xfs_dir2_leafn_unbalance( ASSERT(save_blk->magic == XFS_DIR2_LEAFN_MAGIC); drop_leaf = drop_blk->bp->data; save_leaf = save_blk->bp->data; - ASSERT(be16_to_cpu(drop_leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); - ASSERT(be16_to_cpu(save_leaf->hdr.info.magic) == XFS_DIR2_LEAFN_MAGIC); + ASSERT(drop_leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); + ASSERT(save_leaf->hdr.info.magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC)); /* * If there are any stale leaf entries, take this opportunity * to purge them. @@ -1393,7 +1396,7 @@ xfs_dir2_node_addname_int( */ ifbno = fblk->blkno; free = fbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); findex = fblk->index; /* * This means the free entry showed that the data block had @@ -1477,7 +1480,7 @@ xfs_dir2_node_addname_int( continue; } free = fbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); findex = 0; } /* @@ -1609,7 +1612,7 @@ xfs_dir2_node_addname_int( free->hdr.nused = 0; } else { free = fbp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); } /* @@ -1632,7 +1635,7 @@ xfs_dir2_node_addname_int( * If this entry was for an empty data block * (this should always be true) then update the header. */ - if (be16_to_cpu(free->bests[findex]) == NULLDATAOFF) { + if (free->bests[findex] == cpu_to_be16(NULLDATAOFF)) { be32_add_cpu(&free->hdr.nused, 1); xfs_dir2_free_log_header(tp, fbp); } @@ -1902,7 +1905,7 @@ xfs_dir2_node_replace( * Point to the data entry. */ hdr = state->extrablk.bp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)); dep = (xfs_dir2_data_entry_t *) ((char *)hdr + xfs_dir2_dataptr_to_off(state->mp, be32_to_cpu(lep->address))); @@ -1968,7 +1971,7 @@ xfs_dir2_node_trim_free( return 0; } free = bp->data; - ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); + ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); /* * If there are used entries, there's nothing to do. */ Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-07 10:06:52.865394250 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-07 10:19:01.592024021 +0200 @@ -167,7 +167,7 @@ xfs_imap_to_bp( dip = (xfs_dinode_t *)xfs_buf_offset(bp, (i << mp->m_sb.sb_inodelog)); - di_ok = be16_to_cpu(dip->di_magic) == XFS_DINODE_MAGIC && + di_ok = dip->di_magic == cpu_to_be16(XFS_DINODE_MAGIC) && XFS_DINODE_GOOD_VERSION(dip->di_version); if (unlikely(XFS_TEST_ERROR(!di_ok, mp, XFS_ERRTAG_ITOBP_INOTOBP, @@ -802,7 +802,7 @@ xfs_iread( * If we got something that isn't an inode it means someone * (nfs or dmi) has a stale handle. */ - if (be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC) { + if (dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC)) { #ifdef DEBUG xfs_alert(mp, "%s: dip->di_magic (0x%x) != XFS_DINODE_MAGIC (0x%x)", @@ -1456,7 +1456,7 @@ xfs_iunlink( ASSERT(agi->agi_unlinked[bucket_index]); ASSERT(be32_to_cpu(agi->agi_unlinked[bucket_index]) != agino); - if (be32_to_cpu(agi->agi_unlinked[bucket_index]) != NULLAGINO) { + if (agi->agi_unlinked[bucket_index] != cpu_to_be32(NULLAGINO)) { /* * There is already another inode in the bucket we need * to add ourselves to. Add us at the front of the list. @@ -1467,8 +1467,7 @@ xfs_iunlink( if (error) return error; - ASSERT(be32_to_cpu(dip->di_next_unlinked) == NULLAGINO); - /* both on-disk, don't endian flip twice */ + ASSERT(dip->di_next_unlinked == cpu_to_be32(NULLAGINO)); dip->di_next_unlinked = agi->agi_unlinked[bucket_index]; offset = ip->i_imap.im_boffset + offsetof(xfs_dinode_t, di_next_unlinked); @@ -1533,7 +1532,7 @@ xfs_iunlink_remove( agino = XFS_INO_TO_AGINO(mp, ip->i_ino); ASSERT(agino != 0); bucket_index = agino % XFS_AGI_UNLINKED_BUCKETS; - ASSERT(be32_to_cpu(agi->agi_unlinked[bucket_index]) != NULLAGINO); + ASSERT(agi->agi_unlinked[bucket_index] != cpu_to_be32(NULLAGINO)); ASSERT(agi->agi_unlinked[bucket_index]); if (be32_to_cpu(agi->agi_unlinked[bucket_index]) == agino) { @@ -2658,7 +2657,7 @@ xfs_iflush_int( */ xfs_synchronize_times(ip); - if (XFS_TEST_ERROR(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC, + if (XFS_TEST_ERROR(dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC), mp, XFS_ERRTAG_IFLUSH_1, XFS_RANDOM_IFLUSH_1)) { xfs_alert_tag(mp, XFS_PTAG_IFLUSH, "%s: Bad inode %Lu magic number 0x%x, ptr 0x%p", Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-07-07 10:06:52.875394249 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-07-07 10:14:09.025372166 +0200 @@ -300,14 +300,14 @@ xlog_header_check_recover( xfs_mount_t *mp, xlog_rec_header_t *head) { - ASSERT(be32_to_cpu(head->h_magicno) == XLOG_HEADER_MAGIC_NUM); + ASSERT(head->h_magicno == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)); /* * IRIX doesn't write the h_fmt field and leaves it zeroed * (XLOG_FMT_UNKNOWN). This stops us from trying to recover * a dirty log created in IRIX. */ - if (unlikely(be32_to_cpu(head->h_fmt) != XLOG_FMT)) { + if (unlikely(head->h_fmt != cpu_to_be32(XLOG_FMT))) { xfs_warn(mp, "dirty log written in incompatible format - can't recover"); xlog_header_check_dump(mp, head); @@ -333,7 +333,7 @@ xlog_header_check_mount( xfs_mount_t *mp, xlog_rec_header_t *head) { - ASSERT(be32_to_cpu(head->h_magicno) == XLOG_HEADER_MAGIC_NUM); + ASSERT(head->h_magicno == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)); if (uuid_is_nil(&head->h_fs_uuid)) { /* @@ -534,7 +534,7 @@ xlog_find_verify_log_record( head = (xlog_rec_header_t *)offset; - if (XLOG_HEADER_MAGIC_NUM == be32_to_cpu(head->h_magicno)) + if (head->h_magicno == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) break; if (!smallmem) @@ -916,7 +916,7 @@ xlog_find_tail( if (error) goto done; - if (XLOG_HEADER_MAGIC_NUM == be32_to_cpu(*(__be32 *)offset)) { + if (*(__be32 *)offset == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) { found = 1; break; } @@ -933,8 +933,8 @@ xlog_find_tail( if (error) goto done; - if (XLOG_HEADER_MAGIC_NUM == - be32_to_cpu(*(__be32 *)offset)) { + if (*(__be32 *)offset == + cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) { found = 2; break; } @@ -1947,7 +1947,7 @@ xfs_qm_dqcheck( * This is all fine; things are still consistent, and we haven't lost * any quota information. Just don't complain about bad dquot blks. */ - if (be16_to_cpu(ddq->d_magic) != XFS_DQUOT_MAGIC) { + if (ddq->d_magic != cpu_to_be16(XFS_DQUOT_MAGIC)) { if (flags & XFS_QMOPT_DOWARN) xfs_alert(mp, "%s : XFS dquot ID 0x%x, magic 0x%x != 0x%x", @@ -2238,7 +2238,7 @@ xlog_recover_inode_pass2( * Make sure the place we're flushing out to really looks * like an inode! */ - if (unlikely(be16_to_cpu(dip->di_magic) != XFS_DINODE_MAGIC)) { + if (unlikely(dip->di_magic != cpu_to_be16(XFS_DINODE_MAGIC))) { xfs_buf_relse(bp); xfs_alert(mp, "%s: Bad inode magic number, dip = 0x%p, dino bp = 0x%p, ino = %Ld", @@ -3295,7 +3295,7 @@ xlog_valid_rec_header( { int hlen; - if (unlikely(be32_to_cpu(rhead->h_magicno) != XLOG_HEADER_MAGIC_NUM)) { + if (unlikely(rhead->h_magicno != cpu_to_be32(XLOG_HEADER_MAGIC_NUM))) { XFS_ERROR_REPORT("xlog_valid_rec_header(1)", XFS_ERRLEVEL_LOW, log->l_mp); return XFS_ERROR(EFSCORRUPTED); Index: xfs/fs/xfs/xfs_alloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc.c 2011-07-07 10:06:52.885394248 +0200 +++ xfs/fs/xfs/xfs_alloc.c 2011-07-07 10:14:09.028705499 +0200 @@ -2127,7 +2127,7 @@ xfs_read_agf( * Validate the magic number of the agf block. */ agf_ok = - be32_to_cpu(agf->agf_magicnum) == XFS_AGF_MAGIC && + agf->agf_magicnum == cpu_to_be32(XFS_AGF_MAGIC) && XFS_AGF_GOOD_VERSION(be32_to_cpu(agf->agf_versionnum)) && be32_to_cpu(agf->agf_freeblks) <= be32_to_cpu(agf->agf_length) && be32_to_cpu(agf->agf_flfirst) < XFS_AGFL_SIZE(mp) && Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-07-07 10:06:52.895394247 +0200 +++ xfs/fs/xfs/xfs_bmap.c 2011-07-07 10:14:09.032038832 +0200 @@ -4083,7 +4083,7 @@ xfs_bmap_sanity_check( { struct xfs_btree_block *block = XFS_BUF_TO_BLOCK(bp); - if (be32_to_cpu(block->bb_magic) != XFS_BMAP_MAGIC || + if (block->bb_magic != cpu_to_be32(XFS_BMAP_MAGIC) || be16_to_cpu(block->bb_level) != level || be16_to_cpu(block->bb_numrecs) == 0 || be16_to_cpu(block->bb_numrecs) > mp->m_bmap_dmxr[level != 0]) Index: xfs/fs/xfs/xfs_bmap_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap_btree.c 2011-07-07 10:06:52.908727579 +0200 +++ xfs/fs/xfs/xfs_bmap_btree.c 2011-07-07 10:14:09.032038832 +0200 @@ -425,10 +425,10 @@ xfs_bmbt_to_bmdr( xfs_bmbt_key_t *tkp; __be64 *tpp; - ASSERT(be32_to_cpu(rblock->bb_magic) == XFS_BMAP_MAGIC); - ASSERT(be64_to_cpu(rblock->bb_u.l.bb_leftsib) == NULLDFSBNO); - ASSERT(be64_to_cpu(rblock->bb_u.l.bb_rightsib) == NULLDFSBNO); - ASSERT(be16_to_cpu(rblock->bb_level) > 0); + ASSERT(rblock->bb_magic == cpu_to_be32(XFS_BMAP_MAGIC)); + ASSERT(rblock->bb_u.l.bb_leftsib == cpu_to_be64(NULLDFSBNO)); + ASSERT(rblock->bb_u.l.bb_rightsib == cpu_to_be64(NULLDFSBNO)); + ASSERT(rblock->bb_level != 0); dblock->bb_level = rblock->bb_level; dblock->bb_numrecs = rblock->bb_numrecs; dmxr = xfs_bmdr_maxrecs(mp, dblocklen, 0); Index: xfs/fs/xfs/xfs_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_btree.c 2011-07-07 10:06:52.918727579 +0200 +++ xfs/fs/xfs/xfs_btree.c 2011-07-07 10:14:09.035372165 +0200 @@ -66,11 +66,11 @@ xfs_btree_check_lblock( be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && block->bb_u.l.bb_leftsib && - (be64_to_cpu(block->bb_u.l.bb_leftsib) == NULLDFSBNO || + (block->bb_u.l.bb_leftsib == cpu_to_be64(NULLDFSBNO) || XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_u.l.bb_leftsib))) && block->bb_u.l.bb_rightsib && - (be64_to_cpu(block->bb_u.l.bb_rightsib) == NULLDFSBNO || + (block->bb_u.l.bb_rightsib == cpu_to_be64(NULLDFSBNO) || XFS_FSB_SANITY_CHECK(mp, be64_to_cpu(block->bb_u.l.bb_rightsib))); if (unlikely(XFS_TEST_ERROR(!lblock_ok, mp, @@ -105,10 +105,10 @@ xfs_btree_check_sblock( be16_to_cpu(block->bb_level) == level && be16_to_cpu(block->bb_numrecs) <= cur->bc_ops->get_maxrecs(cur, level) && - (be32_to_cpu(block->bb_u.s.bb_leftsib) == NULLAGBLOCK || + (block->bb_u.s.bb_leftsib == cpu_to_be32(NULLAGBLOCK) || be32_to_cpu(block->bb_u.s.bb_leftsib) < agflen) && block->bb_u.s.bb_leftsib && - (be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK || + (block->bb_u.s.bb_rightsib == cpu_to_be32(NULLAGBLOCK) || be32_to_cpu(block->bb_u.s.bb_rightsib) < agflen) && block->bb_u.s.bb_rightsib; if (unlikely(XFS_TEST_ERROR(!sblock_ok, cur->bc_mp, @@ -511,9 +511,9 @@ xfs_btree_islastblock( block = xfs_btree_get_block(cur, level, &bp); xfs_btree_check_block(cur, block, level, bp); if (cur->bc_flags & XFS_BTREE_LONG_PTRS) - return be64_to_cpu(block->bb_u.l.bb_rightsib) == NULLDFSBNO; + return block->bb_u.l.bb_rightsib == cpu_to_be64(NULLDFSBNO); else - return be32_to_cpu(block->bb_u.s.bb_rightsib) == NULLAGBLOCK; + return block->bb_u.s.bb_rightsib == cpu_to_be32(NULLAGBLOCK); } /* @@ -777,14 +777,14 @@ xfs_btree_setbuf( b = XFS_BUF_TO_BLOCK(bp); if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { - if (be64_to_cpu(b->bb_u.l.bb_leftsib) == NULLDFSBNO) + if (b->bb_u.l.bb_leftsib == cpu_to_be64(NULLDFSBNO)) cur->bc_ra[lev] |= XFS_BTCUR_LEFTRA; - if (be64_to_cpu(b->bb_u.l.bb_rightsib) == NULLDFSBNO) + if (b->bb_u.l.bb_rightsib == cpu_to_be64(NULLDFSBNO)) cur->bc_ra[lev] |= XFS_BTCUR_RIGHTRA; } else { - if (be32_to_cpu(b->bb_u.s.bb_leftsib) == NULLAGBLOCK) + if (b->bb_u.s.bb_leftsib == cpu_to_be32(NULLAGBLOCK)) cur->bc_ra[lev] |= XFS_BTCUR_LEFTRA; - if (be32_to_cpu(b->bb_u.s.bb_rightsib) == NULLAGBLOCK) + if (b->bb_u.s.bb_rightsib == cpu_to_be32(NULLAGBLOCK)) cur->bc_ra[lev] |= XFS_BTCUR_RIGHTRA; } } @@ -795,9 +795,9 @@ xfs_btree_ptr_is_null( union xfs_btree_ptr *ptr) { if (cur->bc_flags & XFS_BTREE_LONG_PTRS) - return be64_to_cpu(ptr->l) == NULLDFSBNO; + return ptr->l == cpu_to_be64(NULLDFSBNO); else - return be32_to_cpu(ptr->s) == NULLAGBLOCK; + return ptr->s == cpu_to_be32(NULLAGBLOCK); } STATIC void @@ -923,12 +923,12 @@ xfs_btree_ptr_to_daddr( union xfs_btree_ptr *ptr) { if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { - ASSERT(be64_to_cpu(ptr->l) != NULLDFSBNO); + ASSERT(ptr->l != cpu_to_be64(NULLDFSBNO)); return XFS_FSB_TO_DADDR(cur->bc_mp, be64_to_cpu(ptr->l)); } else { ASSERT(cur->bc_private.a.agno != NULLAGNUMBER); - ASSERT(be32_to_cpu(ptr->s) != NULLAGBLOCK); + ASSERT(ptr->s != cpu_to_be32(NULLAGBLOCK)); return XFS_AGB_TO_DADDR(cur->bc_mp, cur->bc_private.a.agno, be32_to_cpu(ptr->s)); Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-07-07 10:06:52.928727580 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-07-07 10:14:09.035372165 +0200 @@ -73,7 +73,7 @@ xfs_dir2_data_check( bf = hdr->bestfree; p = (char *)(hdr + 1); - if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { btp = xfs_dir2_block_tail_p(mp, hdr); lep = xfs_dir2_block_leaf_p(btp); endp = (char *)lep; @@ -140,7 +140,7 @@ xfs_dir2_data_check( (char *)dep - (char *)hdr); count++; lastfree = 0; - if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { addr = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, (xfs_dir2_data_aoff_t) ((char *)dep - (char *)hdr)); @@ -160,9 +160,10 @@ xfs_dir2_data_check( * Need to have seen all the entries and all the bestfree slots. */ ASSERT(freeseen == 7); - if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { for (i = stale = 0; i < be32_to_cpu(btp->count); i++) { - if (be32_to_cpu(lep[i].address) == XFS_DIR2_NULL_DATAPTR) + if (lep[i].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) stale++; if (i > 0) ASSERT(be32_to_cpu(lep[i].hashval) >= be32_to_cpu(lep[i - 1].hashval)); @@ -196,8 +197,8 @@ xfs_dir2_data_freefind( * Check order, non-overlapping entries, and if we find the * one we're looking for it has to be exact. */ - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); for (dfp = &hdr->bestfree[0], seenzero = matched = 0; dfp < &hdr->bestfree[XFS_DIR2_DATA_FD_COUNT]; dfp++) { @@ -256,8 +257,8 @@ xfs_dir2_data_freeinsert( xfs_dir2_data_free_t new; /* new bestfree entry */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); #endif dfp = hdr->bestfree; new.length = dup->length; @@ -297,8 +298,8 @@ xfs_dir2_data_freeremove( int *loghead) /* out: log data header */ { #ifdef __KERNEL__ - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); #endif /* * It's the first entry, slide the next 2 up. @@ -341,8 +342,8 @@ xfs_dir2_data_freescan( char *p; /* current entry pointer */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); #endif /* * Start by clearing the table. @@ -353,7 +354,7 @@ xfs_dir2_data_freescan( * Set up pointers. */ p = (char *)(hdr + 1); - if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + if (hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)) { btp = xfs_dir2_block_tail_p(mp, hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); } else @@ -458,8 +459,8 @@ xfs_dir2_data_log_entry( { xfs_dir2_data_hdr_t *hdr = bp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)hdr), (uint)((char *)(xfs_dir2_data_entry_tag_p(dep) + 1) - @@ -476,8 +477,8 @@ xfs_dir2_data_log_header( { xfs_dir2_data_hdr_t *hdr = bp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); xfs_da_log_buf(tp, bp, 0, sizeof(*hdr) - 1); } @@ -493,8 +494,8 @@ xfs_dir2_data_log_unused( { xfs_dir2_data_hdr_t *hdr = bp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); /* * Log the first part of the unused entry. @@ -539,12 +540,12 @@ xfs_dir2_data_make_free( /* * Figure out where the end of the data area is. */ - if (be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC) + if (hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)) endptr = (char *)hdr + mp->m_dirblksize; else { xfs_dir2_block_tail_t *btp; /* block tail */ - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); btp = xfs_dir2_block_tail_p(mp, hdr); endptr = (char *)xfs_dir2_block_leaf_p(btp); } @@ -717,8 +718,8 @@ xfs_dir2_data_use_free( int oldlen; /* old unused entry's length */ hdr = bp->data; - ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC) || + hdr->magic == cpu_to_be32(XFS_DIR2_BLOCK_MAGIC)); ASSERT(be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG); ASSERT(offset >= (char *)dup - (char *)hdr); ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)hdr); Index: xfs/fs/xfs/xfs_ialloc.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc.c 2011-07-07 10:06:52.938727579 +0200 +++ xfs/fs/xfs/xfs_ialloc.c 2011-07-07 10:18:00.902026708 +0200 @@ -683,7 +683,7 @@ xfs_dialloc( return 0; } agi = XFS_BUF_TO_AGI(agbp); - ASSERT(be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); } else { /* * Continue where we left off before. In this case, we @@ -691,7 +691,7 @@ xfs_dialloc( */ agbp = *IO_agbp; agi = XFS_BUF_TO_AGI(agbp); - ASSERT(be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); ASSERT(be32_to_cpu(agi->agi_freecount) > 0); } mp = tp->t_mountp; @@ -775,7 +775,7 @@ nextag: if (error) goto nextag; agi = XFS_BUF_TO_AGI(agbp); - ASSERT(be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); } /* * Here with an allocation group that has a free inode. @@ -944,7 +944,7 @@ nextag: * See if the most recently allocated block has any free. */ newino: - if (be32_to_cpu(agi->agi_newino) != NULLAGINO) { + if (agi->agi_newino != cpu_to_be32(NULLAGINO)) { error = xfs_inobt_lookup(cur, be32_to_cpu(agi->agi_newino), XFS_LOOKUP_EQ, &i); if (error) @@ -1085,7 +1085,7 @@ xfs_difree( return error; } agi = XFS_BUF_TO_AGI(agbp); - ASSERT(be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); ASSERT(agbno < be32_to_cpu(agi->agi_length)); /* * Initialize the cursor. @@ -1438,7 +1438,7 @@ xfs_ialloc_log_agi( xfs_agi_t *agi; /* allocation group header */ agi = XFS_BUF_TO_AGI(bp); - ASSERT(be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC); + ASSERT(agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC)); #endif /* * Compute byte offsets for the first and last fields. @@ -1492,7 +1492,7 @@ xfs_read_agi( /* * Validate the magic number of the agi block. */ - agi_ok = be32_to_cpu(agi->agi_magicnum) == XFS_AGI_MAGIC && + agi_ok = agi->agi_magicnum == cpu_to_be32(XFS_AGI_MAGIC) && XFS_AGI_GOOD_VERSION(be32_to_cpu(agi->agi_versionnum)) && be32_to_cpu(agi->agi_seqno) == agno; if (unlikely(XFS_TEST_ERROR(!agi_ok, mp, XFS_ERRTAG_IALLOC_READ_AGI, Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-07 10:06:52.948727578 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-07 10:14:09.042038831 +0200 @@ -3521,13 +3521,13 @@ xlog_verify_iclog(xlog_t *log, spin_unlock(&log->l_icloglock); /* check log magic numbers */ - if (be32_to_cpu(iclog->ic_header.h_magicno) != XLOG_HEADER_MAGIC_NUM) + if (iclog->ic_header.h_magicno != cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) xfs_emerg(log->l_mp, "%s: invalid magic num", __func__); ptr = (xfs_caddr_t) &iclog->ic_header; for (ptr += BBSIZE; ptr < ((xfs_caddr_t)&iclog->ic_header) + count; ptr += BBSIZE) { - if (be32_to_cpu(*(__be32 *)ptr) == XLOG_HEADER_MAGIC_NUM) + if (*(__be32 *)ptr == cpu_to_be32(XLOG_HEADER_MAGIC_NUM)) xfs_emerg(log->l_mp, "%s: unexpected magic num", __func__); } From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 06:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_36, J_CHICKENPOX_43,J_CHICKENPOX_62,J_CHICKENPOX_63,J_CHICKENPOX_64, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67B6mIJ160054 for ; Thu, 7 Jul 2011 06:06:48 -0500 X-ASG-Debug-ID: 1310036804-21ac01340000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2C6C176A807 for ; Thu, 7 Jul 2011 04:06:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 2rcwo6qIeUq5K82A for ; Thu, 07 Jul 2011 04:06:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QemPs-0003yU-3P for xfs@oss.sgi.com; Thu, 07 Jul 2011 11:06:44 +0000 Message-Id: <20110707110644.065920820@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Thu, 07 Jul 2011 07:05:53 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 18/28] xfs: avoid usage of struct xfs_dir2_data Subject: [PATCH 18/28] xfs: avoid usage of struct xfs_dir2_data References: <20110707110535.205001532@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-avoid-xfs_dir2_data_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310036804 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_data instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-07-06 15:41:42.585418189 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-07-06 15:45:16.662074013 +0200 @@ -2079,16 +2079,13 @@ xfs_da_do_buf( * For read_buf, check the magic number. */ if (caller == 1) { - xfs_dir2_data_t *data; - xfs_dir2_free_t *free; - xfs_da_blkinfo_t *info; + xfs_dir2_data_hdr_t *hdr = rbp->data; + xfs_dir2_free_t *free = rbp->data; + xfs_da_blkinfo_t *info = rbp->data; uint magic, magic1; - info = rbp->data; - data = rbp->data; - free = rbp->data; magic = be16_to_cpu(info->magic); - magic1 = be32_to_cpu(data->hdr.magic); + magic1 = be32_to_cpu(hdr->magic); if (unlikely( XFS_TEST_ERROR((magic != XFS_DA_NODE_MAGIC) && (magic != XFS_ATTR_LEAF_MAGIC) && Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-06 15:41:42.595418190 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-06 15:45:16.665407337 +0200 @@ -282,7 +282,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); needscan = 0; } } @@ -331,8 +331,7 @@ xfs_dir2_block_addname( * This needs to happen before the next call to use_free. */ if (needscan) { - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, - &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); needscan = 0; } /* @@ -417,7 +416,7 @@ xfs_dir2_block_addname( * Clean up the bestfree array and log the header, tail, and entry. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_block_log_tail(tp, bp); @@ -783,7 +782,7 @@ xfs_dir2_block_removename( * Fix up bestfree, log the header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, bp); xfs_dir2_data_check(dp, bp); @@ -982,7 +981,7 @@ xfs_dir2_leaf_to_block( * Scan the bestfree if we need it and log the data block header. */ if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* @@ -1177,8 +1176,7 @@ xfs_dir2_sf_to_block( *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16( ((char *)dup - (char *)hdr)); xfs_dir2_data_log_unused(tp, bp, dup); - (void)xfs_dir2_data_freeinsert((xfs_dir2_data_t *)hdr, - dup, &dummy); + xfs_dir2_data_freeinsert(hdr, dup, &dummy); offset += be16_to_cpu(dup->length); continue; } Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-07-06 15:41:42.605418190 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-07-06 15:45:16.668740672 +0200 @@ -35,6 +35,9 @@ #include "xfs_dir2_block.h" #include "xfs_error.h" +STATIC xfs_dir2_data_free_t * +xfs_dir2_data_freefind(xfs_dir2_data_hdr_t *hdr, xfs_dir2_data_unused_t *dup); + #ifdef DEBUG /* * Check the consistency of the data block. @@ -51,6 +54,7 @@ xfs_dir2_data_check( xfs_dir2_block_tail_t *btp=NULL; /* block tail */ int count; /* count of entries found */ xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_free_t *dfp; /* bestfree entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ @@ -67,16 +71,19 @@ xfs_dir2_data_check( mp = dp->i_mount; d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - bf = d->hdr.bestfree; + hdr = &d->hdr; + bf = hdr->bestfree; p = (char *)d->u; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + + if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + btp = xfs_dir2_block_tail_p(mp, hdr); lep = xfs_dir2_block_leaf_p(btp); endp = (char *)lep; - } else - endp = (char *)d + mp->m_dirblksize; + } else { + ASSERT(hdr->magic == cpu_to_be32(XFS_DIR2_DATA_MAGIC)); + endp = (char *)hdr + mp->m_dirblksize; + } + count = lastfree = freeseen = 0; /* * Account for zero bestfree entries. @@ -108,8 +115,8 @@ xfs_dir2_data_check( if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) { ASSERT(lastfree == 0); ASSERT(be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)) == - (char *)dup - (char *)d); - dfp = xfs_dir2_data_freefind(d, dup); + (char *)dup - (char *)hdr); + dfp = xfs_dir2_data_freefind(hdr, dup); if (dfp) { i = (int)(dfp - bf); ASSERT((freeseen & (1 << i)) == 0); @@ -132,13 +139,13 @@ xfs_dir2_data_check( ASSERT(dep->namelen != 0); ASSERT(xfs_dir_ino_validate(mp, be64_to_cpu(dep->inumber)) == 0); ASSERT(be16_to_cpu(*xfs_dir2_data_entry_tag_p(dep)) == - (char *)dep - (char *)d); + (char *)dep - (char *)hdr); count++; lastfree = 0; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { + if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { addr = xfs_dir2_db_off_to_dataptr(mp, mp->m_dirdatablk, (xfs_dir2_data_aoff_t) - ((char *)dep - (char *)d)); + ((char *)dep - (char *)hdr)); name.name = dep->name; name.len = dep->namelen; hash = mp->m_dirnameops->hashname(&name); @@ -155,7 +162,7 @@ xfs_dir2_data_check( * Need to have seen all the entries and all the bestfree slots. */ ASSERT(freeseen == 7); - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { + if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { for (i = stale = 0; i < be32_to_cpu(btp->count); i++) { if (be32_to_cpu(lep[i].address) == XFS_DIR2_NULL_DATAPTR) stale++; @@ -172,9 +179,9 @@ xfs_dir2_data_check( * Given a data block and an unused entry from that block, * return the bestfree entry if any that corresponds to it. */ -xfs_dir2_data_free_t * +STATIC xfs_dir2_data_free_t * xfs_dir2_data_freefind( - xfs_dir2_data_t *d, /* data block */ + xfs_dir2_data_hdr_t *hdr, /* data block */ xfs_dir2_data_unused_t *dup) /* data unused entry */ { xfs_dir2_data_free_t *dfp; /* bestfree entry */ @@ -184,17 +191,17 @@ xfs_dir2_data_freefind( int seenzero; /* saw a 0 bestfree entry */ #endif - off = (xfs_dir2_data_aoff_t)((char *)dup - (char *)d); + off = (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr); #if defined(DEBUG) && defined(__KERNEL__) /* * Validate some consistency in the bestfree table. * Check order, non-overlapping entries, and if we find the * one we're looking for it has to be exact. */ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - for (dfp = &d->hdr.bestfree[0], seenzero = matched = 0; - dfp < &d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT]; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + for (dfp = &hdr->bestfree[0], seenzero = matched = 0; + dfp < &hdr->bestfree[XFS_DIR2_DATA_FD_COUNT]; dfp++) { if (!dfp->offset) { ASSERT(!dfp->length); @@ -210,7 +217,7 @@ xfs_dir2_data_freefind( else ASSERT(be16_to_cpu(dfp->offset) + be16_to_cpu(dfp->length) <= off); ASSERT(matched || be16_to_cpu(dfp->length) >= be16_to_cpu(dup->length)); - if (dfp > &d->hdr.bestfree[0]) + if (dfp > &hdr->bestfree[0]) ASSERT(be16_to_cpu(dfp[-1].length) >= be16_to_cpu(dfp[0].length)); } #endif @@ -219,13 +226,13 @@ xfs_dir2_data_freefind( * it can't be there since they're sorted. */ if (be16_to_cpu(dup->length) < - be16_to_cpu(d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length)) + be16_to_cpu(hdr->bestfree[XFS_DIR2_DATA_FD_COUNT - 1].length)) return NULL; /* * Look at the three bestfree entries for our guy. */ - for (dfp = &d->hdr.bestfree[0]; - dfp < &d->hdr.bestfree[XFS_DIR2_DATA_FD_COUNT]; + for (dfp = &hdr->bestfree[0]; + dfp < &hdr->bestfree[XFS_DIR2_DATA_FD_COUNT]; dfp++) { if (!dfp->offset) return NULL; @@ -243,7 +250,7 @@ xfs_dir2_data_freefind( */ xfs_dir2_data_free_t * /* entry inserted */ xfs_dir2_data_freeinsert( - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block pointer */ xfs_dir2_data_unused_t *dup, /* unused space */ int *loghead) /* log the data header (out) */ { @@ -251,12 +258,13 @@ xfs_dir2_data_freeinsert( xfs_dir2_data_free_t new; /* new bestfree entry */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); #endif - dfp = d->hdr.bestfree; + dfp = hdr->bestfree; new.length = dup->length; - new.offset = cpu_to_be16((char *)dup - (char *)d); + new.offset = cpu_to_be16((char *)dup - (char *)hdr); + /* * Insert at position 0, 1, or 2; or not at all. */ @@ -286,36 +294,36 @@ xfs_dir2_data_freeinsert( */ STATIC void xfs_dir2_data_freeremove( - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block header */ xfs_dir2_data_free_t *dfp, /* bestfree entry pointer */ int *loghead) /* out: log data header */ { #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); #endif /* * It's the first entry, slide the next 2 up. */ - if (dfp == &d->hdr.bestfree[0]) { - d->hdr.bestfree[0] = d->hdr.bestfree[1]; - d->hdr.bestfree[1] = d->hdr.bestfree[2]; + if (dfp == &hdr->bestfree[0]) { + hdr->bestfree[0] = hdr->bestfree[1]; + hdr->bestfree[1] = hdr->bestfree[2]; } /* * It's the second entry, slide the 3rd entry up. */ - else if (dfp == &d->hdr.bestfree[1]) - d->hdr.bestfree[1] = d->hdr.bestfree[2]; + else if (dfp == &hdr->bestfree[1]) + hdr->bestfree[1] = hdr->bestfree[2]; /* * Must be the last entry. */ else - ASSERT(dfp == &d->hdr.bestfree[2]); + ASSERT(dfp == &hdr->bestfree[2]); /* * Clear the 3rd entry, must be zero now. */ - d->hdr.bestfree[2].length = 0; - d->hdr.bestfree[2].offset = 0; + hdr->bestfree[2].length = 0; + hdr->bestfree[2].offset = 0; *loghead = 1; } @@ -325,9 +333,10 @@ xfs_dir2_data_freeremove( void xfs_dir2_data_freescan( xfs_mount_t *mp, /* filesystem mount point */ - xfs_dir2_data_t *d, /* data block pointer */ + xfs_dir2_data_hdr_t *hdr, /* data block header */ int *loghead) /* out: log data header */ { + xfs_dir2_data_t *d = (xfs_dir2_data_t *)hdr; xfs_dir2_block_tail_t *btp; /* block tail */ xfs_dir2_data_entry_t *dep; /* active data entry */ xfs_dir2_data_unused_t *dup; /* unused data entry */ @@ -335,23 +344,23 @@ xfs_dir2_data_freescan( char *p; /* current entry pointer */ #ifdef __KERNEL__ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); #endif /* * Start by clearing the table. */ - memset(d->hdr.bestfree, 0, sizeof(d->hdr.bestfree)); + memset(hdr->bestfree, 0, sizeof(hdr->bestfree)); *loghead = 1; /* * Set up pointers. */ p = (char *)d->u; - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC) { - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + if (be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC) { + btp = xfs_dir2_block_tail_p(mp, hdr); endp = (char *)xfs_dir2_block_leaf_p(btp); } else - endp = (char *)d + mp->m_dirblksize; + endp = (char *)hdr + mp->m_dirblksize; /* * Loop over the block's entries. */ @@ -361,9 +370,9 @@ xfs_dir2_data_freescan( * If it's a free entry, insert it. */ if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) { - ASSERT((char *)dup - (char *)d == + ASSERT((char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); - xfs_dir2_data_freeinsert(d, dup, loghead); + xfs_dir2_data_freeinsert(hdr, dup, loghead); p += be16_to_cpu(dup->length); } /* @@ -371,7 +380,7 @@ xfs_dir2_data_freescan( */ else { dep = (xfs_dir2_data_entry_t *)p; - ASSERT((char *)dep - (char *)d == + ASSERT((char *)dep - (char *)hdr == be16_to_cpu(*xfs_dir2_data_entry_tag_p(dep))); p += xfs_dir2_data_entsize(dep->namelen); } @@ -390,6 +399,7 @@ xfs_dir2_data_init( { xfs_dabuf_t *bp; /* block buffer */ xfs_dir2_data_t *d; /* pointer to block */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_inode_t *dp; /* incore directory inode */ xfs_dir2_data_unused_t *dup; /* unused entry pointer */ int error; /* error return value */ @@ -410,26 +420,29 @@ xfs_dir2_data_init( return error; } ASSERT(bp != NULL); + /* * Initialize the header. */ d = bp->data; - d->hdr.magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); - d->hdr.bestfree[0].offset = cpu_to_be16(sizeof(d->hdr)); + hdr = &d->hdr; + hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); + hdr->bestfree[0].offset = cpu_to_be16(sizeof(*hdr)); for (i = 1; i < XFS_DIR2_DATA_FD_COUNT; i++) { - d->hdr.bestfree[i].length = 0; - d->hdr.bestfree[i].offset = 0; + hdr->bestfree[i].length = 0; + hdr->bestfree[i].offset = 0; } + /* * Set up an unused entry for the block's body. */ dup = &d->u[0].unused; dup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); - t=mp->m_dirblksize - (uint)sizeof(d->hdr); - d->hdr.bestfree[0].length = cpu_to_be16(t); + t = mp->m_dirblksize - (uint)sizeof(*hdr); + hdr->bestfree[0].length = cpu_to_be16(t); dup->length = cpu_to_be16(t); - *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16((char *)dup - (char *)d); + *xfs_dir2_data_unused_tag_p(dup) = cpu_to_be16((char *)dup - (char *)hdr); /* * Log it and return it. */ @@ -448,14 +461,14 @@ xfs_dir2_data_log_entry( xfs_dabuf_t *bp, /* block buffer */ xfs_dir2_data_entry_t *dep) /* data entry pointer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)d), + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + + xfs_da_log_buf(tp, bp, (uint)((char *)dep - (char *)hdr), (uint)((char *)(xfs_dir2_data_entry_tag_p(dep) + 1) - - (char *)d - 1)); + (char *)hdr - 1)); } /* @@ -466,13 +479,12 @@ xfs_dir2_data_log_header( xfs_trans_t *tp, /* transaction pointer */ xfs_dabuf_t *bp) /* block buffer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - xfs_da_log_buf(tp, bp, (uint)((char *)&d->hdr - (char *)d), - (uint)(sizeof(d->hdr) - 1)); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + + xfs_da_log_buf(tp, bp, 0, sizeof(*hdr) - 1); } /* @@ -484,23 +496,23 @@ xfs_dir2_data_log_unused( xfs_dabuf_t *bp, /* block buffer */ xfs_dir2_data_unused_t *dup) /* data unused pointer */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr = bp->data; + + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); /* * Log the first part of the unused entry. */ - xfs_da_log_buf(tp, bp, (uint)((char *)dup - (char *)d), + xfs_da_log_buf(tp, bp, (uint)((char *)dup - (char *)hdr), (uint)((char *)&dup->length + sizeof(dup->length) - - 1 - (char *)d)); + 1 - (char *)hdr)); /* * Log the end (tag) of the unused entry. */ xfs_da_log_buf(tp, bp, - (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)d), - (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)d + + (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)hdr), + (uint)((char *)xfs_dir2_data_unused_tag_p(dup) - (char *)hdr + sizeof(xfs_dir2_data_off_t) - 1)); } @@ -517,7 +529,7 @@ xfs_dir2_data_make_free( int *needlogp, /* out: log header */ int *needscanp) /* out: regen bestfree */ { - xfs_dir2_data_t *d; /* data block pointer */ + xfs_dir2_data_hdr_t *hdr; /* data block pointer */ xfs_dir2_data_free_t *dfp; /* bestfree pointer */ char *endptr; /* end of data area */ xfs_mount_t *mp; /* filesystem mount point */ @@ -527,28 +539,29 @@ xfs_dir2_data_make_free( xfs_dir2_data_unused_t *prevdup; /* unused entry before us */ mp = tp->t_mountp; - d = bp->data; + hdr = bp->data; + /* * Figure out where the end of the data area is. */ - if (be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC) - endptr = (char *)d + mp->m_dirblksize; + if (be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC) + endptr = (char *)hdr + mp->m_dirblksize; else { xfs_dir2_block_tail_t *btp; /* block tail */ - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); - btp = xfs_dir2_block_tail_p(mp, &d->hdr); + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); + btp = xfs_dir2_block_tail_p(mp, hdr); endptr = (char *)xfs_dir2_block_leaf_p(btp); } /* * If this isn't the start of the block, then back up to * the previous entry and see if it's free. */ - if (offset > sizeof(d->hdr)) { + if (offset > sizeof(*hdr)) { __be16 *tagp; /* tag just before us */ - tagp = (__be16 *)((char *)d + offset) - 1; - prevdup = (xfs_dir2_data_unused_t *)((char *)d + be16_to_cpu(*tagp)); + tagp = (__be16 *)((char *)hdr + offset) - 1; + prevdup = (xfs_dir2_data_unused_t *)((char *)hdr + be16_to_cpu(*tagp)); if (be16_to_cpu(prevdup->freetag) != XFS_DIR2_DATA_FREE_TAG) prevdup = NULL; } else @@ -557,9 +570,9 @@ xfs_dir2_data_make_free( * If this isn't the end of the block, see if the entry after * us is free. */ - if ((char *)d + offset + len < endptr) { + if ((char *)hdr + offset + len < endptr) { postdup = - (xfs_dir2_data_unused_t *)((char *)d + offset + len); + (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); if (be16_to_cpu(postdup->freetag) != XFS_DIR2_DATA_FREE_TAG) postdup = NULL; } else @@ -576,21 +589,21 @@ xfs_dir2_data_make_free( /* * See if prevdup and/or postdup are in bestfree table. */ - dfp = xfs_dir2_data_freefind(d, prevdup); - dfp2 = xfs_dir2_data_freefind(d, postdup); + dfp = xfs_dir2_data_freefind(hdr, prevdup); + dfp2 = xfs_dir2_data_freefind(hdr, postdup); /* * We need a rescan unless there are exactly 2 free entries * namely our two. Then we know what's happening, otherwise * since the third bestfree is there, there might be more * entries. */ - needscan = (d->hdr.bestfree[2].length != 0); + needscan = (hdr->bestfree[2].length != 0); /* * Fix up the new big freespace. */ be16_add_cpu(&prevdup->length, len + be16_to_cpu(postdup->length)); *xfs_dir2_data_unused_tag_p(prevdup) = - cpu_to_be16((char *)prevdup - (char *)d); + cpu_to_be16((char *)prevdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, prevdup); if (!needscan) { /* @@ -600,18 +613,18 @@ xfs_dir2_data_make_free( * Remove entry 1 first then entry 0. */ ASSERT(dfp && dfp2); - if (dfp == &d->hdr.bestfree[1]) { - dfp = &d->hdr.bestfree[0]; + if (dfp == &hdr->bestfree[1]) { + dfp = &hdr->bestfree[0]; ASSERT(dfp2 == dfp); - dfp2 = &d->hdr.bestfree[1]; + dfp2 = &hdr->bestfree[1]; } - xfs_dir2_data_freeremove(d, dfp2, needlogp); - xfs_dir2_data_freeremove(d, dfp, needlogp); + xfs_dir2_data_freeremove(hdr, dfp2, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); /* * Now insert the new entry. */ - dfp = xfs_dir2_data_freeinsert(d, prevdup, needlogp); - ASSERT(dfp == &d->hdr.bestfree[0]); + dfp = xfs_dir2_data_freeinsert(hdr, prevdup, needlogp); + ASSERT(dfp == &hdr->bestfree[0]); ASSERT(dfp->length == prevdup->length); ASSERT(!dfp[1].length); ASSERT(!dfp[2].length); @@ -621,10 +634,10 @@ xfs_dir2_data_make_free( * The entry before us is free, merge with it. */ else if (prevdup) { - dfp = xfs_dir2_data_freefind(d, prevdup); + dfp = xfs_dir2_data_freefind(hdr, prevdup); be16_add_cpu(&prevdup->length, len); *xfs_dir2_data_unused_tag_p(prevdup) = - cpu_to_be16((char *)prevdup - (char *)d); + cpu_to_be16((char *)prevdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, prevdup); /* * If the previous entry was in the table, the new entry @@ -632,27 +645,27 @@ xfs_dir2_data_make_free( * the old one and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, prevdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + xfs_dir2_data_freeinsert(hdr, prevdup, needlogp); } /* * Otherwise we need a scan if the new entry is big enough. */ else { needscan = be16_to_cpu(prevdup->length) > - be16_to_cpu(d->hdr.bestfree[2].length); + be16_to_cpu(hdr->bestfree[2].length); } } /* * The following entry is free, merge with it. */ else if (postdup) { - dfp = xfs_dir2_data_freefind(d, postdup); - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset); + dfp = xfs_dir2_data_freefind(hdr, postdup); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(len + be16_to_cpu(postdup->length)); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If the following entry was in the table, the new entry @@ -660,28 +673,28 @@ xfs_dir2_data_make_free( * the old one and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + xfs_dir2_data_freeinsert(hdr, newdup, needlogp); } /* * Otherwise we need a scan if the new entry is big enough. */ else { needscan = be16_to_cpu(newdup->length) > - be16_to_cpu(d->hdr.bestfree[2].length); + be16_to_cpu(hdr->bestfree[2].length); } } /* * Neither neighbor is free. Make a new entry. */ else { - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(len); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); - (void)xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeinsert(hdr, newdup, needlogp); } *needscanp = needscan; } @@ -699,7 +712,7 @@ xfs_dir2_data_use_free( int *needlogp, /* out: need to log header */ int *needscanp) /* out: need regen bestfree */ { - xfs_dir2_data_t *d; /* data block */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_free_t *dfp; /* bestfree pointer */ int matchback; /* matches end of freespace */ int matchfront; /* matches start of freespace */ @@ -708,24 +721,24 @@ xfs_dir2_data_use_free( xfs_dir2_data_unused_t *newdup2; /* another new unused entry */ int oldlen; /* old unused entry's length */ - d = bp->data; - ASSERT(be32_to_cpu(d->hdr.magic) == XFS_DIR2_DATA_MAGIC || - be32_to_cpu(d->hdr.magic) == XFS_DIR2_BLOCK_MAGIC); + hdr = bp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC || + be32_to_cpu(hdr->magic) == XFS_DIR2_BLOCK_MAGIC); ASSERT(be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG); - ASSERT(offset >= (char *)dup - (char *)d); - ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)d); - ASSERT((char *)dup - (char *)d == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); + ASSERT(offset >= (char *)dup - (char *)hdr); + ASSERT(offset + len <= (char *)dup + be16_to_cpu(dup->length) - (char *)hdr); + ASSERT((char *)dup - (char *)hdr == be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup))); /* * Look up the entry in the bestfree table. */ - dfp = xfs_dir2_data_freefind(d, dup); + dfp = xfs_dir2_data_freefind(hdr, dup); oldlen = be16_to_cpu(dup->length); - ASSERT(dfp || oldlen <= be16_to_cpu(d->hdr.bestfree[2].length)); + ASSERT(dfp || oldlen <= be16_to_cpu(hdr->bestfree[2].length)); /* * Check for alignment with front and back of the entry. */ - matchfront = (char *)dup - (char *)d == offset; - matchback = (char *)dup + oldlen - (char *)d == offset + len; + matchfront = (char *)dup - (char *)hdr == offset; + matchback = (char *)dup + oldlen - (char *)hdr == offset + len; ASSERT(*needscanp == 0); needscan = 0; /* @@ -734,9 +747,9 @@ xfs_dir2_data_use_free( */ if (matchfront && matchback) { if (dfp) { - needscan = (d->hdr.bestfree[2].offset != 0); + needscan = (hdr->bestfree[2].offset != 0); if (!needscan) - xfs_dir2_data_freeremove(d, dfp, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); } } /* @@ -744,27 +757,27 @@ xfs_dir2_data_use_free( * Make a new entry with the remaining freespace. */ else if (matchfront) { - newdup = (xfs_dir2_data_unused_t *)((char *)d + offset + len); + newdup = (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); newdup->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup->length = cpu_to_be16(oldlen - len); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If it was in the table, remove it and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + dfp = xfs_dir2_data_freeinsert(hdr, newdup, needlogp); ASSERT(dfp != NULL); ASSERT(dfp->length == newdup->length); - ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d); + ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)hdr); /* * If we got inserted at the last slot, * that means we don't know if there was a better * choice for the last slot, or not. Rescan. */ - needscan = dfp == &d->hdr.bestfree[2]; + needscan = dfp == &hdr->bestfree[2]; } } /* @@ -773,25 +786,25 @@ xfs_dir2_data_use_free( */ else if (matchback) { newdup = dup; - newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup); + newdup->length = cpu_to_be16(((char *)hdr + offset) - (char *)newdup); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); /* * If it was in the table, remove it and add the new one. */ if (dfp) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - dfp = xfs_dir2_data_freeinsert(d, newdup, needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + dfp = xfs_dir2_data_freeinsert(hdr, newdup, needlogp); ASSERT(dfp != NULL); ASSERT(dfp->length == newdup->length); - ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)d); + ASSERT(be16_to_cpu(dfp->offset) == (char *)newdup - (char *)hdr); /* * If we got inserted at the last slot, * that means we don't know if there was a better * choice for the last slot, or not. Rescan. */ - needscan = dfp == &d->hdr.bestfree[2]; + needscan = dfp == &hdr->bestfree[2]; } } /* @@ -800,15 +813,15 @@ xfs_dir2_data_use_free( */ else { newdup = dup; - newdup->length = cpu_to_be16(((char *)d + offset) - (char *)newdup); + newdup->length = cpu_to_be16(((char *)hdr + offset) - (char *)newdup); *xfs_dir2_data_unused_tag_p(newdup) = - cpu_to_be16((char *)newdup - (char *)d); + cpu_to_be16((char *)newdup - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup); - newdup2 = (xfs_dir2_data_unused_t *)((char *)d + offset + len); + newdup2 = (xfs_dir2_data_unused_t *)((char *)hdr + offset + len); newdup2->freetag = cpu_to_be16(XFS_DIR2_DATA_FREE_TAG); newdup2->length = cpu_to_be16(oldlen - len - be16_to_cpu(newdup->length)); *xfs_dir2_data_unused_tag_p(newdup2) = - cpu_to_be16((char *)newdup2 - (char *)d); + cpu_to_be16((char *)newdup2 - (char *)hdr); xfs_dir2_data_log_unused(tp, bp, newdup2); /* * If the old entry was in the table, we need to scan @@ -819,13 +832,12 @@ xfs_dir2_data_use_free( * the 2 new will work. */ if (dfp) { - needscan = (d->hdr.bestfree[2].length != 0); + needscan = (hdr->bestfree[2].length != 0); if (!needscan) { - xfs_dir2_data_freeremove(d, dfp, needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup, - needlogp); - (void)xfs_dir2_data_freeinsert(d, newdup2, - needlogp); + xfs_dir2_data_freeremove(hdr, dfp, needlogp); + xfs_dir2_data_freeinsert(hdr, newdup, needlogp); + xfs_dir2_data_freeinsert(hdr, newdup2, + needlogp); } } } Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-07-06 15:41:42.618751522 +0200 +++ xfs/fs/xfs/xfs_dir2_data.h 2011-07-06 15:45:16.672074016 +0200 @@ -157,12 +157,10 @@ extern void xfs_dir2_data_check(struct x #else #define xfs_dir2_data_check(dp,bp) #endif -extern xfs_dir2_data_free_t *xfs_dir2_data_freefind(xfs_dir2_data_t *d, - xfs_dir2_data_unused_t *dup); -extern xfs_dir2_data_free_t *xfs_dir2_data_freeinsert(xfs_dir2_data_t *d, +extern xfs_dir2_data_free_t *xfs_dir2_data_freeinsert(xfs_dir2_data_hdr_t *hdr, xfs_dir2_data_unused_t *dup, int *loghead); -extern void xfs_dir2_data_freescan(struct xfs_mount *mp, xfs_dir2_data_t *d, - int *loghead); +extern void xfs_dir2_data_freescan(struct xfs_mount *mp, + xfs_dir2_data_hdr_t *hdr, int *loghead); extern int xfs_dir2_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno, struct xfs_dabuf **bpp); extern void xfs_dir2_data_log_entry(struct xfs_trans *tp, struct xfs_dabuf *bp, Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:41:42.628751521 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-06 15:45:16.675407356 +0200 @@ -132,7 +132,7 @@ xfs_dir2_block_to_leaf( */ hdr->magic = cpu_to_be32(XFS_DIR2_DATA_MAGIC); if (needscan) - xfs_dir2_data_freescan(mp, (xfs_dir2_data_t *)hdr, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Set up leaf tail and bests table. */ @@ -278,7 +278,7 @@ xfs_dir2_leaf_addname( { __be16 *bestsp; /* freespace table in leaf */ int compact; /* need to compact leaves */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data block entry */ xfs_inode_t *dp; /* incore directory inode */ @@ -486,8 +486,8 @@ xfs_dir2_leaf_addname( */ else xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); - data = dbp->data; - bestsp[use_block] = data->hdr.bestfree[0].length; + hdr = dbp->data; + bestsp[use_block] = hdr->bestfree[0].length; grown = 1; } /* @@ -501,7 +501,7 @@ xfs_dir2_leaf_addname( xfs_da_brelse(tp, lbp); return error; } - data = dbp->data; + hdr = dbp->data; grown = 0; } xfs_dir2_data_check(dp, dbp); @@ -509,14 +509,14 @@ xfs_dir2_leaf_addname( * Point to the biggest freespace in our data block. */ dup = (xfs_dir2_data_unused_t *) - ((char *)data + be16_to_cpu(data->hdr.bestfree[0].offset)); + ((char *)hdr + be16_to_cpu(hdr->bestfree[0].offset)); ASSERT(be16_to_cpu(dup->length) >= length); needscan = needlog = 0; /* * Mark the initial part of our freespace in use for the new entry. */ xfs_dir2_data_use_free(tp, dbp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)data), length, + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), length, &needlog, &needscan); /* * Initialize our new entry (at last). @@ -526,12 +526,12 @@ xfs_dir2_leaf_addname( dep->namelen = args->namelen; memcpy(dep->name, args->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)data); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); /* * Need to scan fix up the bestfree table. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Need to log the data block's header. */ @@ -542,8 +542,8 @@ xfs_dir2_leaf_addname( * If the bests table needs to be changed, do it. * Log the change unless we've already done that. */ - if (be16_to_cpu(bestsp[use_block]) != be16_to_cpu(data->hdr.bestfree[0].length)) { - bestsp[use_block] = data->hdr.bestfree[0].length; + if (be16_to_cpu(bestsp[use_block]) != be16_to_cpu(hdr->bestfree[0].length)) { + bestsp[use_block] = hdr->bestfree[0].length; if (!grown) xfs_dir2_leaf_log_bests(tp, lbp, use_block, use_block); } @@ -786,6 +786,7 @@ xfs_dir2_leaf_getdents( xfs_dir2_db_t curdb; /* db for current block */ xfs_dir2_off_t curoff; /* current overall offset */ xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry */ xfs_dir2_data_unused_t *dup; /* unused entry */ int error = 0; /* error return value */ @@ -1044,6 +1045,7 @@ xfs_dir2_leaf_getdents( ASSERT(xfs_dir2_byte_to_db(mp, curoff) == curdb); data = bp->data; + hdr = &data->hdr; xfs_dir2_data_check(dp, bp); /* * Find our position in the block. @@ -1054,12 +1056,12 @@ xfs_dir2_leaf_getdents( * Skip past the header. */ if (byteoff == 0) - curoff += (uint)sizeof(data->hdr); + curoff += (uint)sizeof(*hdr); /* * Skip past entries until we reach our offset. */ else { - while ((char *)ptr - (char *)data < byteoff) { + while ((char *)ptr - (char *)hdr < byteoff) { dup = (xfs_dir2_data_unused_t *)ptr; if (be16_to_cpu(dup->freetag) @@ -1080,8 +1082,8 @@ xfs_dir2_leaf_getdents( curoff = xfs_dir2_db_off_to_byte(mp, xfs_dir2_byte_to_db(mp, curoff), - (char *)ptr - (char *)data); - if (ptr >= (char *)data + mp->m_dirblksize) { + (char *)ptr - (char *)hdr); + if (ptr >= (char *)hdr + mp->m_dirblksize) { continue; } } @@ -1462,7 +1464,7 @@ xfs_dir2_leaf_removename( xfs_da_args_t *args) /* operation arguments */ { __be16 *bestsp; /* leaf block best freespace */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t db; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data entry structure */ @@ -1492,7 +1494,7 @@ xfs_dir2_leaf_removename( tp = args->trans; mp = dp->i_mount; leaf = lbp->data; - data = dbp->data; + hdr = dbp->data; xfs_dir2_data_check(dp, dbp); /* * Point to the leaf entry, use that to point to the data entry. @@ -1500,9 +1502,9 @@ xfs_dir2_leaf_removename( lep = &leaf->ents[index]; db = xfs_dir2_dataptr_to_db(mp, be32_to_cpu(lep->address)); dep = (xfs_dir2_data_entry_t *) - ((char *)data + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(lep->address))); + ((char *)hdr + xfs_dir2_dataptr_to_off(mp, be32_to_cpu(lep->address))); needscan = needlog = 0; - oldbest = be16_to_cpu(data->hdr.bestfree[0].length); + oldbest = be16_to_cpu(hdr->bestfree[0].length); ltp = xfs_dir2_leaf_tail_p(mp, leaf); bestsp = xfs_dir2_leaf_bests_p(ltp); ASSERT(be16_to_cpu(bestsp[db]) == oldbest); @@ -1510,7 +1512,7 @@ xfs_dir2_leaf_removename( * Mark the former data entry unused. */ xfs_dir2_data_make_free(tp, dbp, - (xfs_dir2_data_aoff_t)((char *)dep - (char *)data), + (xfs_dir2_data_aoff_t)((char *)dep - (char *)hdr), xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); /* * We just mark the leaf entry stale by putting a null in it. @@ -1524,23 +1526,23 @@ xfs_dir2_leaf_removename( * log the data block header if necessary. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); /* * If the longest freespace in the data block has changed, * put the new value in the bests table and log that. */ - if (be16_to_cpu(data->hdr.bestfree[0].length) != oldbest) { - bestsp[db] = data->hdr.bestfree[0].length; + if (be16_to_cpu(hdr->bestfree[0].length) != oldbest) { + bestsp[db] = hdr->bestfree[0].length; xfs_dir2_leaf_log_bests(tp, lbp, db, db); } xfs_dir2_data_check(dp, dbp); /* * If the data block is now empty then get rid of the data block. */ - if (be16_to_cpu(data->hdr.bestfree[0].length) == - mp->m_dirblksize - (uint)sizeof(data->hdr)) { + if (be16_to_cpu(hdr->bestfree[0].length) == + mp->m_dirblksize - (uint)sizeof(*hdr)) { ASSERT(db != mp->m_dirdatablk); if ((error = xfs_dir2_shrink_inode(args, db, dbp))) { /* @@ -1711,9 +1713,6 @@ xfs_dir2_leaf_trim_data( xfs_dir2_db_t db) /* data block number */ { __be16 *bestsp; /* leaf bests table */ -#ifdef DEBUG - xfs_dir2_data_t *data; /* data block structure */ -#endif xfs_dabuf_t *dbp; /* data block buffer */ xfs_inode_t *dp; /* incore directory inode */ int error; /* error return value */ @@ -1732,20 +1731,21 @@ xfs_dir2_leaf_trim_data( XFS_DATA_FORK))) { return error; } -#ifdef DEBUG - data = dbp->data; - ASSERT(be32_to_cpu(data->hdr.magic) == XFS_DIR2_DATA_MAGIC); -#endif - /* this seems to be an error - * data is only valid if DEBUG is defined? - * RMC 09/08/1999 - */ leaf = lbp->data; ltp = xfs_dir2_leaf_tail_p(mp, leaf); - ASSERT(be16_to_cpu(data->hdr.bestfree[0].length) == - mp->m_dirblksize - (uint)sizeof(data->hdr)); + +#ifdef DEBUG +{ + struct xfs_dir2_data_hdr *hdr = dbp->data; + + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); + ASSERT(be16_to_cpu(hdr->bestfree[0].length) == + mp->m_dirblksize - (uint)sizeof(*hdr)); ASSERT(db == be32_to_cpu(ltp->bestcount) - 1); +} +#endif + /* * Get rid of the data block. */ Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-07-06 15:41:42.642084853 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-07-06 15:45:16.678740691 +0200 @@ -842,7 +842,7 @@ xfs_dir2_leafn_remove( xfs_da_state_blk_t *dblk, /* data block */ int *rval) /* resulting block needs join */ { - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t db; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data block entry */ @@ -887,9 +887,9 @@ xfs_dir2_leafn_remove( * in the data block in case it changes. */ dbp = dblk->bp; - data = dbp->data; - dep = (xfs_dir2_data_entry_t *)((char *)data + off); - longest = be16_to_cpu(data->hdr.bestfree[0].length); + hdr = dbp->data; + dep = (xfs_dir2_data_entry_t *)((char *)hdr + off); + longest = be16_to_cpu(hdr->bestfree[0].length); needlog = needscan = 0; xfs_dir2_data_make_free(tp, dbp, off, xfs_dir2_data_entsize(dep->namelen), &needlog, &needscan); @@ -898,7 +898,7 @@ xfs_dir2_leafn_remove( * Log the data block header if needed. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); if (needlog) xfs_dir2_data_log_header(tp, dbp); xfs_dir2_data_check(dp, dbp); @@ -906,7 +906,7 @@ xfs_dir2_leafn_remove( * If the longest data block freespace changes, need to update * the corresponding freeblock entry. */ - if (longest < be16_to_cpu(data->hdr.bestfree[0].length)) { + if (longest < be16_to_cpu(hdr->bestfree[0].length)) { int error; /* error return value */ xfs_dabuf_t *fbp; /* freeblock buffer */ xfs_dir2_db_t fdb; /* freeblock block number */ @@ -932,19 +932,19 @@ xfs_dir2_leafn_remove( * Calculate which entry we need to fix. */ findex = xfs_dir2_db_to_fdindex(mp, db); - longest = be16_to_cpu(data->hdr.bestfree[0].length); + longest = be16_to_cpu(hdr->bestfree[0].length); /* * If the data block is now empty we can get rid of it * (usually). */ - if (longest == mp->m_dirblksize - (uint)sizeof(data->hdr)) { + if (longest == mp->m_dirblksize - (uint)sizeof(*hdr)) { /* * Try to punch out the data block. */ error = xfs_dir2_shrink_inode(args, db, dbp); if (error == 0) { dblk->bp = NULL; - data = NULL; + hdr = NULL; } /* * We can get ENOSPC if there's no space reservation. @@ -960,7 +960,7 @@ xfs_dir2_leafn_remove( * If we got rid of the data block, we can eliminate that entry * in the free block. */ - if (data == NULL) { + if (hdr == NULL) { /* * One less used entry in the free table. */ @@ -1356,7 +1356,7 @@ xfs_dir2_node_addname_int( xfs_da_args_t *args, /* operation arguments */ xfs_da_state_blk_t *fblk) /* optional freespace block */ { - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_db_t dbno; /* data block number */ xfs_dabuf_t *dbp; /* data block buffer */ xfs_dir2_data_entry_t *dep; /* data entry pointer */ @@ -1641,8 +1641,8 @@ xfs_dir2_node_addname_int( * We haven't allocated the data entry yet so this will * change again. */ - data = dbp->data; - free->bests[findex] = data->hdr.bestfree[0].length; + hdr = dbp->data; + free->bests[findex] = hdr->bestfree[0].length; logfree = 1; } /* @@ -1667,21 +1667,21 @@ xfs_dir2_node_addname_int( xfs_da_buf_done(fbp); return error; } - data = dbp->data; + hdr = dbp->data; logfree = 0; } - ASSERT(be16_to_cpu(data->hdr.bestfree[0].length) >= length); + ASSERT(be16_to_cpu(hdr->bestfree[0].length) >= length); /* * Point to the existing unused space. */ dup = (xfs_dir2_data_unused_t *) - ((char *)data + be16_to_cpu(data->hdr.bestfree[0].offset)); + ((char *)hdr + be16_to_cpu(hdr->bestfree[0].offset)); needscan = needlog = 0; /* * Mark the first part of the unused space, inuse for us. */ xfs_dir2_data_use_free(tp, dbp, dup, - (xfs_dir2_data_aoff_t)((char *)dup - (char *)data), length, + (xfs_dir2_data_aoff_t)((char *)dup - (char *)hdr), length, &needlog, &needscan); /* * Fill in the new entry and log it. @@ -1691,13 +1691,13 @@ xfs_dir2_node_addname_int( dep->namelen = args->namelen; memcpy(dep->name, args->name, dep->namelen); tagp = xfs_dir2_data_entry_tag_p(dep); - *tagp = cpu_to_be16((char *)dep - (char *)data); + *tagp = cpu_to_be16((char *)dep - (char *)hdr); xfs_dir2_data_log_entry(tp, dbp, dep); /* * Rescan the block for bestfree if needed. */ if (needscan) - xfs_dir2_data_freescan(mp, data, &needlog); + xfs_dir2_data_freescan(mp, hdr, &needlog); /* * Log the data block header if needed. */ @@ -1706,8 +1706,8 @@ xfs_dir2_node_addname_int( /* * If the freespace entry is now wrong, update it. */ - if (be16_to_cpu(free->bests[findex]) != be16_to_cpu(data->hdr.bestfree[0].length)) { - free->bests[findex] = data->hdr.bestfree[0].length; + if (be16_to_cpu(free->bests[findex]) != be16_to_cpu(hdr->bestfree[0].length)) { + free->bests[findex] = hdr->bestfree[0].length; logfree = 1; } /* @@ -1857,7 +1857,7 @@ xfs_dir2_node_replace( xfs_da_args_t *args) /* operation arguments */ { xfs_da_state_blk_t *blk; /* leaf block */ - xfs_dir2_data_t *data; /* data block structure */ + xfs_dir2_data_hdr_t *hdr; /* data block header */ xfs_dir2_data_entry_t *dep; /* data entry changed */ int error; /* error return value */ int i; /* btree level */ @@ -1901,10 +1901,10 @@ xfs_dir2_node_replace( /* * Point to the data entry. */ - data = state->extrablk.bp->data; - ASSERT(be32_to_cpu(data->hdr.magic) == XFS_DIR2_DATA_MAGIC); + hdr = state->extrablk.bp->data; + ASSERT(be32_to_cpu(hdr->magic) == XFS_DIR2_DATA_MAGIC); dep = (xfs_dir2_data_entry_t *) - ((char *)data + + ((char *)hdr + xfs_dir2_dataptr_to_off(state->mp, be32_to_cpu(lep->address))); ASSERT(inum != be64_to_cpu(dep->inumber)); /* From volkan.yazici@gmail.com Thu Jul 7 06:32:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67BWdWQ161541 for ; Thu, 7 Jul 2011 06:32:39 -0500 X-ASG-Debug-ID: 1310038358-2cb3014a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DC7B91BF7B44 for ; Thu, 7 Jul 2011 04:32:38 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id wNj02ucGSgbKGhHM for ; Thu, 07 Jul 2011 04:32:38 -0700 (PDT) Received: by fxg11 with SMTP id 11so1087747fxg.6 for ; Thu, 07 Jul 2011 04:32:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=uhq6LvzV09cxLMcaS9zCY7aBb6y0/nGDksiRDbw7SEc=; b=qdQHkXd5MvGv4jURl9hUK7+5OdnJAqnPjNOoP5NPZw+SBx/YNqVZmwLrbC2C+emyai kuHRRIy4kNPRYYSoVs8LAavqIQON2FAEZ7LZHNqZf5X75wZ5ZJQ+KFHKna6QW6z2jPCh 4B0RWTgonkS2XC9orsvgNN1/T+GOf18dfRH28= MIME-Version: 1.0 Received: by 10.223.145.144 with SMTP id d16mr1092428fav.100.1310038357688; Thu, 07 Jul 2011 04:32:37 -0700 (PDT) Received: by 10.223.118.20 with HTTP; Thu, 7 Jul 2011 04:32:37 -0700 (PDT) In-Reply-To: <20110704124906.GY561@dastard> References: <20110704124906.GY561@dastard> Date: Thu, 7 Jul 2011 14:32:37 +0300 Message-ID: X-ASG-Orig-Subj: Re: Recovering XFS Partition of Type FAT16 Subject: Re: Recovering XFS Partition of Type FAT16 From: Volkan YAZICI To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1310038358 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0186 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 4, 2011 at 3:49 PM, Dave Chinner wrote: > On Mon, Jul 04, 2011 at 10:23:55AM +0000, Volkan YAZICI wrote: >> I have an XFS partition, which is >> >> 1) Mistakenly quick formatted as FAT16. >> 2) At first, I couldn't see in "fdisk -l" that it is set to FAT16, >> instead of Linux. Hence, tried to fix it with xfs_recover. xfs_recover >> returned 0, and mount operation succeeded; but mounted fs size >> appeared as 20GB (despite it is 350GB) and almost every file was >> missing. >> 3) Later, I set the type of /dev/sda1 (the only partition in /dev/sda) >> to Linux, re-run xfs_recover, but nothing changed: Same fs size (20GB) >> and same missing files. > > What is this xfs_recover tool you speak of? I've never heard of it, > I can't find any direct links to it in google (only forum posts from > years ago about how great it is) so I have no idea what you've done to > your filesystem... Sorry, I was writing that mail from a friend's computer, and mistakenly typed xfs_recover, instead of xfs_repair. > That looks like a newly made 20GB XFS filesystem, not the result of > repairing a 350GB filesystem... Since I formatted it as FAT16 first, it truncated the fs to 20GB. Then calling xfs_repair caused the whole XFS partition appear as of size 20GB. > If I were you, I'd be restoring from backups. You do have backups, > right? I cannot understand why people are so tempted to ask this question. If I would have such a backup, do you think I still would be bugging you? But to answer your question, yes, I had a backup, but it suffered from a hardware failure just 2 days before the actual disk. Regards. From lcaron@lncsa.com Thu Jul 7 07:44:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67CiGQi166170 for ; Thu, 7 Jul 2011 07:44:16 -0500 X-ASG-Debug-ID: 1310042653-1b1f03140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lncsa.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DEC5253497 for ; Thu, 7 Jul 2011 05:44:13 -0700 (PDT) Received: from mail.lncsa.com (mail.lncsa.com [213.215.28.11]) by cuda.sgi.com with ESMTP id 1AjQ2zDZD7IcXVsj for ; Thu, 07 Jul 2011 05:44:13 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by sargon.lncsa.com (Postfix) with ESMTP id 0E7AD6F4221 for ; Thu, 7 Jul 2011 14:44:12 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at lncsa.com Received: from mail.lncsa.com ([127.0.0.1]) by localhost (sargon.lncsa.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id VSGXn8wstq8y for ; Thu, 7 Jul 2011 14:44:11 +0200 (CEST) Received: from [192.168.0.31] (donald.lncsa.com [192.168.0.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sargon.lncsa.com (Postfix) with ESMTPSA id 638806F4206 for ; Thu, 7 Jul 2011 14:44:10 +0200 (CEST) Message-ID: <4E15AA1A.3090802@lncsa.com> Date: Thu, 07 Jul 2011 14:44:10 +0200 From: Laurent CARON User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0a1) Gecko/20110704 Thunderbird/7.0a1 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Number of ACLs Subject: Number of ACLs Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail.lncsa.com[213.215.28.11] X-Barracuda-Start-Time: 1310042653 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1794 1.0000 -0.9380 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.94 X-Barracuda-Spam-Status: No, SCORE=-0.94 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68227 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Hi, I'd like to know if it is possible in a simple & safe way to increase the number of supported ACLs on an already existing FS. xfs_acl.h: #define XFS_ACL_MAX_ENTRIES 25 Changing XFS_ACL_MAX_ENTRIES to something higher should do the trick, but will it be safe: ie: will I risk corrupting the FS this way ? I understand it'll imply a performance penalty if I add too many ACLs. Thanks From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 08:11:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67DBoD2170219 for ; Thu, 7 Jul 2011 08:11:51 -0500 X-ASG-Debug-ID: 1310044309-1b1f03d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC8C65358F for ; Thu, 7 Jul 2011 06:11:49 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id CEFNutTJdnS4EXFP for ; Thu, 07 Jul 2011 06:11:49 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QeoMu-0008FP-31; Thu, 07 Jul 2011 13:11:48 +0000 Date: Thu, 7 Jul 2011 09:11:48 -0400 From: Christoph Hellwig To: Arkadiusz Miskiewicz Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.38.8: quota check oops Subject: Re: 2.6.38.8: quota check oops Message-ID: <20110707131148.GA21278@infradead.org> References: <201107060832.03640.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107060832.03640.arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310044309 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68229 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 08:32:03AM +0200, Arkadiusz Miskiewicz wrote: > > quota check code (mount with user+group quota) likes to oops > for me (usually after system hang and hard reset). > > This is on 2.6.38.8 on top of raid10 soft raid. Mount without > quota succeeds without a problem. Looking over the oops mutex_lock is dereferencing a member at offset 0x20 of a structure that unexpectly is a NULL pointer. The only mutex_lock calls in xfs_qm_sync are on qi_dqlist_lock, which happens to be exactly at the offset 0x20 that the oops is complaining about. So the quick patch below should prevent the OOPS for you and print a warnings instead, although I'll have to dig a bit deeper to figure out the root cause. Index: linux-2.6/fs/xfs/quota/xfs_qm.c =================================================================== --- linux-2.6.orig/fs/xfs/quota/xfs_qm.c 2011-07-07 15:02:25.206920700 +0200 +++ linux-2.6/fs/xfs/quota/xfs_qm.c 2011-07-07 15:03:59.576915891 +0200 @@ -939,6 +939,11 @@ xfs_qm_sync( restarts = 0; again: + if (!q) { + printk("XFS: %s called without valid quotainfo\n", __func__); + dump_stack(); + return 0; + } mutex_lock(&q->qi_dqlist_lock); /* * dqpurge_all() also takes the mplist lock and iterate thru all dquots @@ -1003,6 +1008,12 @@ xfs_qm_sync( else if (error) return error; + if (!q) { + printk("XFS: %s called without valid quotainfo (2)\n", + __func__); + dump_stack(); + return 0; + } mutex_lock(&q->qi_dqlist_lock); if (recl != q->qi_dqreclaims) { if (++restarts >= XFS_QM_SYNC_MAX_RESTARTS) From eflorac@intellique.com Thu Jul 7 08:21:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67DL62D172182 for ; Thu, 7 Jul 2011 08:21:06 -0500 X-ASG-Debug-ID: 1310044862-330e01110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 73FD115ED2E5 for ; Thu, 7 Jul 2011 06:21:03 -0700 (PDT) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id lPUtsTkA6Fz4ea8D for ; Thu, 07 Jul 2011 06:21:03 -0700 (PDT) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id 2E8894C8192; Thu, 7 Jul 2011 15:20:57 +0200 (CEST) Date: Thu, 7 Jul 2011 15:20:59 +0200 From: Emmanuel Florac To: Laurent CARON Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Number of ACLs Subject: Re: Number of ACLs Message-ID: <20110707152059.2e09f346@harpe.intellique.com> In-Reply-To: <4E15AA1A.3090802@lncsa.com> References: <4E15AA1A.3090802@lncsa.com> Organization: Intellique X-Mailer: Claws Mail 3.7.9 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1310044865 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68230 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Thu, 07 Jul 2011 14:44:10 +0200 Laurent CARON =E9crivait: > I'd like to know if it is possible in a simple & safe way to increase=20 > the number of supported ACLs on an already existing FS. >=20 > xfs_acl.h: > #define XFS_ACL_MAX_ENTRIES 25 >=20 > Changing XFS_ACL_MAX_ENTRIES to something higher should do the trick,=20 > but will it be safe: ie: will I risk corrupting the FS this way ? >=20 > I understand it'll imply a performance penalty if I add too many ACLs. I asked recently to the list if there was any evolution on this point, but unfortunately my question went ignored :(=20 Actually you can't simply change this entry and hope that it will work; from what I understood, at best your filesystem will become incompatible with any other kernel in the best case and you may need to recompile the xfs tools too; in the worst case, compilation will simply fail. If you really need a lot of ACLs, the best answer so far is to use JFS, which supports 1024 ACLs per file without tinkering and without pain. The main culprit with JFS lies in relatively poor ageing (compared to XFS), and no available tool to contain fragmentation. Imperfect world. --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From eflorac@intellique.com Thu Jul 7 08:26:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67DQMAi173218 for ; Thu, 7 Jul 2011 08:26:22 -0500 X-ASG-Debug-ID: 1310045178-547c00390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp4-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 38A9E15ED349 for ; Thu, 7 Jul 2011 06:26:20 -0700 (PDT) Received: from smtp4-g21.free.fr (smtp4-g21.free.fr [212.27.42.4]) by cuda.sgi.com with ESMTP id Wpo7HS0Q5G4NeeV4 for ; Thu, 07 Jul 2011 06:26:20 -0700 (PDT) Received: from harpe.intellique.com (unknown [82.225.196.72]) by smtp4-g21.free.fr (Postfix) with ESMTP id E71944C80DE; Thu, 7 Jul 2011 15:26:14 +0200 (CEST) Date: Thu, 7 Jul 2011 15:26:16 +0200 From: Emmanuel Florac To: Laurent CARON Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Number of ACLs Subject: Re: Number of ACLs Message-ID: <20110707152616.0e03b866@harpe.intellique.com> In-Reply-To: <4E15AA1A.3090802@lncsa.com> References: <4E15AA1A.3090802@lncsa.com> Organization: Intellique X-Mailer: Claws Mail 3.7.9 (GTK+ 2.16.6; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp4-g21.free.fr[212.27.42.4] X-Barracuda-Start-Time: 1310045182 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68230 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Thu, 07 Jul 2011 14:44:10 +0200 Laurent CARON =E9crivait: > I'd like to know if it is possible in a simple & safe way to increase=20 > the number of supported ACLs on an already existing FS. I just realised I missed that part : there is absolutely no way to change an existing filesystem after the fact.=20 My previous answer was about the fact that by installing a modified kernel module, there is a slight possibility that you can create a NEW filesystem with more ACLs (and beware, this is untested, unsupported, uncharted territory, "there be dragons" and al). Given that the modified xfs module actually works, given that the mkfs.xfs and other tools behave as expected (unlikely), and that the whole setup won't fall down in flames the first time you actually create 26 ACLs on a file, etc. --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From aelder@oss.sgi.com Thu Jul 7 10:35:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67FZ2b3180431 for ; Thu, 7 Jul 2011 10:35:02 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p67FZ0Z3180396; Thu, 7 Jul 2011 10:35:00 -0500 Date: Thu, 7 Jul 2011 10:35:00 -0500 Message-Id: <201107071535.p67FZ0Z3180396@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-18963-g1316d4d X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 4a33821236f2ef3af0081e8a5eec1301cbed3125 X-Git-Newrev: 1316d4da3f632d5843d5a446203e73067dc40f09 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 1316d4d xfs: unpin stale inodes directly in IOP_COMMITTED from 4a33821236f2ef3af0081e8a5eec1301cbed3125 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1316d4da3f632d5843d5a446203e73067dc40f09 Author: Dave Chinner Date: Mon Jul 4 05:27:36 2011 +0000 xfs: unpin stale inodes directly in IOP_COMMITTED When inodes are marked stale in a transaction, they are treated specially when the inode log item is being inserted into the AIL. It tries to avoid moving the log item forward in the AIL due to a race condition with the writing the underlying buffer back to disk. The was "fixed" in commit de25c18 ("xfs: avoid moving stale inodes in the AIL"). To avoid moving the item forward, we return a LSN smaller than the commit_lsn of the completing transaction, thereby trying to trick the commit code into not moving the inode forward at all. I'm not sure this ever worked as intended - it assumes the inode is already in the AIL, but I don't think the returned LSN would have been small enough to prevent moving the inode. It appears that the reason it worked is that the lower LSN of the inodes meant they were inserted into the AIL and flushed before the inode buffer (which was moved to the commit_lsn of the transaction). The big problem is that with delayed logging, the returning of the different LSN means insertion takes the slow, non-bulk path. Worse yet is that insertion is to a position -before- the commit_lsn so it is doing a AIL traversal on every insertion, and has to walk over all the items that have already been inserted into the AIL. It's expensive. To compound the matter further, with delayed logging inodes are likely to go from clean to stale in a single checkpoint, which means they aren't even in the AIL at all when we come across them at AIL insertion time. Hence these were all getting inserted into the AIL when they simply do not need to be as inodes marked XFS_ISTALE are never written back. Transactional/recovery integrity is maintained in this case by the other items in the unlink transaction that were modified (e.g. the AGI btree blocks) and committed in the same checkpoint. So to fix this, simply unpin the stale inodes directly in xfs_inode_item_committed() and return -1 to indicate that the AIL insertion code does not need to do any further processing of these inodes. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_inode_item.c | 14 ++++++++------ fs/xfs/xfs_trans.c | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Thu Jul 7 10:35:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67FZ8T3180524 for ; Thu, 7 Jul 2011 10:35:08 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p67FZ5Vs180493; Thu, 7 Jul 2011 10:35:05 -0500 Date: Thu, 7 Jul 2011 10:35:05 -0500 Message-Id: <201107071535.p67FZ5Vs180493@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.38-18963-g1316d4d X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 4a33821236f2ef3af0081e8a5eec1301cbed3125 X-Git-Newrev: 1316d4da3f632d5843d5a446203e73067dc40f09 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 1316d4d xfs: unpin stale inodes directly in IOP_COMMITTED from 4a33821236f2ef3af0081e8a5eec1301cbed3125 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1316d4da3f632d5843d5a446203e73067dc40f09 Author: Dave Chinner Date: Mon Jul 4 05:27:36 2011 +0000 xfs: unpin stale inodes directly in IOP_COMMITTED When inodes are marked stale in a transaction, they are treated specially when the inode log item is being inserted into the AIL. It tries to avoid moving the log item forward in the AIL due to a race condition with the writing the underlying buffer back to disk. The was "fixed" in commit de25c18 ("xfs: avoid moving stale inodes in the AIL"). To avoid moving the item forward, we return a LSN smaller than the commit_lsn of the completing transaction, thereby trying to trick the commit code into not moving the inode forward at all. I'm not sure this ever worked as intended - it assumes the inode is already in the AIL, but I don't think the returned LSN would have been small enough to prevent moving the inode. It appears that the reason it worked is that the lower LSN of the inodes meant they were inserted into the AIL and flushed before the inode buffer (which was moved to the commit_lsn of the transaction). The big problem is that with delayed logging, the returning of the different LSN means insertion takes the slow, non-bulk path. Worse yet is that insertion is to a position -before- the commit_lsn so it is doing a AIL traversal on every insertion, and has to walk over all the items that have already been inserted into the AIL. It's expensive. To compound the matter further, with delayed logging inodes are likely to go from clean to stale in a single checkpoint, which means they aren't even in the AIL at all when we come across them at AIL insertion time. Hence these were all getting inserted into the AIL when they simply do not need to be as inodes marked XFS_ISTALE are never written back. Transactional/recovery integrity is maintained in this case by the other items in the unlink transaction that were modified (e.g. the AGI btree blocks) and committed in the same checkpoint. So to fix this, simply unpin the stale inodes directly in xfs_inode_item_committed() and return -1 to indicate that the AIL insertion code does not need to do any further processing of these inodes. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_inode_item.c | 14 ++++++++------ fs/xfs/xfs_trans.c | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) hooks/post-receive -- XFS development tree From sandeen@sandeen.net Thu Jul 7 10:53:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67FrnX0181241 for ; Thu, 7 Jul 2011 10:53:50 -0500 X-ASG-Debug-ID: 1310054028-3e1200dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CA951E56371 for ; Thu, 7 Jul 2011 08:53:48 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id la4S9JVYIaYVx7G5 for ; Thu, 07 Jul 2011 08:53:48 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 5A4B34964600; Thu, 7 Jul 2011 10:53:48 -0500 (CDT) Message-ID: <4E15D68C.6060801@sandeen.net> Date: Thu, 07 Jul 2011 10:53:48 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Volkan YAZICI CC: Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Recovering XFS Partition of Type FAT16 Subject: Re: Recovering XFS Partition of Type FAT16 References: <20110704124906.GY561@dastard> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310054029 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68241 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/7/11 6:32 AM, Volkan YAZICI wrote: > On Mon, Jul 4, 2011 at 3:49 PM, Dave Chinner wrote: >> On Mon, Jul 04, 2011 at 10:23:55AM +0000, Volkan YAZICI wrote: >>> I have an XFS partition, which is >>> >>> 1) Mistakenly quick formatted as FAT16. >>> 2) At first, I couldn't see in "fdisk -l" that it is set to FAT16, >>> instead of Linux. Hence, tried to fix it with xfs_recover. xfs_recover >>> returned 0, and mount operation succeeded; but mounted fs size >>> appeared as 20GB (despite it is 350GB) and almost every file was >>> missing. >>> 3) Later, I set the type of /dev/sda1 (the only partition in /dev/sda) >>> to Linux, re-run xfs_recover, but nothing changed: Same fs size (20GB) >>> and same missing files. >> >> What is this xfs_recover tool you speak of? I've never heard of it, >> I can't find any direct links to it in google (only forum posts from >> years ago about how great it is) so I have no idea what you've done to >> your filesystem... > > Sorry, I was writing that mail from a friend's computer, and > mistakenly typed xfs_recover, instead of xfs_repair. > >> That looks like a newly made 20GB XFS filesystem, not the result of >> repairing a 350GB filesystem... > > Since I formatted it as FAT16 first, it truncated the fs to 20GB. Then > calling xfs_repair caused the whole XFS partition appear as of size > 20GB. It sounds like something changed your partition table as well as your filesystem. Putting the partition table back in place first probably would have been the better first step, in retrospect. I can't tell for sure, though, what you've done (did you reparition? mkfs? with which tools? what was the xfs_repair output?) so I'm not sure what to tell you at this point. -Eric From lcaron@lncsa.com Thu Jul 7 11:20:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67GKDPa182108 for ; Thu, 7 Jul 2011 11:20:15 -0500 X-ASG-Debug-ID: 1310055611-75ac020f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.lncsa.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6BFE153C3A for ; Thu, 7 Jul 2011 09:20:11 -0700 (PDT) Received: from mail.lncsa.com (mail.lncsa.com [213.215.28.11]) by cuda.sgi.com with ESMTP id wQW3uA7ZQkOFWQth for ; Thu, 07 Jul 2011 09:20:11 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by sargon.lncsa.com (Postfix) with ESMTP id 8224F6F427E; Thu, 7 Jul 2011 18:20:11 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: Debian amavisd-new at lncsa.com Received: from mail.lncsa.com ([127.0.0.1]) by localhost (sargon.lncsa.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id vMguRMIOybgy; Thu, 7 Jul 2011 18:20:11 +0200 (CEST) Received: from [192.168.0.31] (donald.lncsa.com [192.168.0.31]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by sargon.lncsa.com (Postfix) with ESMTPSA id 9AA096F42C3; Thu, 7 Jul 2011 18:20:08 +0200 (CEST) Message-ID: <4E15DCB8.202@lncsa.com> Date: Thu, 07 Jul 2011 18:20:08 +0200 From: Laurent CARON User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:7.0a1) Gecko/20110704 Thunderbird/7.0a1 MIME-Version: 1.0 To: xfs@oss.sgi.com CC: Emmanuel Florac X-ASG-Orig-Subj: Re: Number of ACLs Subject: Re: Number of ACLs References: <4E15AA1A.3090802@lncsa.com> <20110707152616.0e03b866@harpe.intellique.com> In-Reply-To: <20110707152616.0e03b866@harpe.intellique.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail.lncsa.com[213.215.28.11] X-Barracuda-Start-Time: 1310055612 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0032 1.0000 -2.0002 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.50 X-Barracuda-Spam-Status: No, SCORE=-1.50 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ3078 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68243 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_SC5_MJ3078 Custom Rule MJ3078 X-Virus-Status: Clean On 07/07/2011 15:26, Emmanuel Florac wrote: > Le Thu, 07 Jul 2011 14:44:10 +0200 > Laurent CARON écrivait: > >> I'd like to know if it is possible in a simple& safe way to increase >> the number of supported ACLs on an already existing FS. > > I just realised I missed that part : there is absolutely no way to > change an existing filesystem after the fact. > > My previous answer was about the fact that by installing a modified > kernel module, there is a slight possibility that you can create a > NEW filesystem with more ACLs (and beware, this is untested, > unsupported, uncharted territory, "there be dragons" and al). Given that > the modified xfs module actually works, given that the mkfs.xfs and > other tools behave as expected (unlikely), and that the whole setup > won't fall down in flames the first time you actually create 26 ACLs on > a file, etc. > Thanks. I'll cope with this limit for now and eventually will move to some other FS in the future if I still need to use more than 25 ACLs. From aelder@sgi.com Thu Jul 7 11:24:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67GOPwG182380 for ; Thu, 7 Jul 2011 11:24:25 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 084728F8092; Thu, 7 Jul 2011 09:24:21 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 11:24:21 -0500 Subject: Re: [PATCH 23/28] xfs: byteswap constants instead of variables From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110707110645.046387162@bombadil.infradead.org> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110645.046387162@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 11:24:20 -0500 Message-ID: <1310055860.1980.23.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-07 at 07:05 -0400, Christoph Hellwig wrote: > Micro-optimize various comparisms by always byteswapping the constant > instead of the variable, which allows to do the swap at compile instead > of runtime. > > Signed-off-by: Christoph Hellwig Ha!!! You missed one! File "fs/xfs/xfs_dir2_node.c" lines 412-413 (after applying this patch): ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); Also, xfs_magics[] in "fs/xfs/xfs_btree.c" could be initialized with the pre-byte-swapped versions of the constants (and the array should be given static scope as well). There are a few other things remaining which are compared against constant values and they could get the same treatment at some point. For example, "fs/xfs/xfs_dir2_block.c" line 142: if (be16_to_cpu(enddup->freetag) != XFS_DIR2_DATA_FREE_TAG) But I've glanced all of them below and they seem to have been done correctly. I scanned for matching bit counts and the appropriate change from using be.._to_cpu() on the left to cpu_to_be..() on the right. I notice that you dropped the byte conversion in a comparison with 0 in one case but not in all of them. To be clear, I do *not* expect you to re-post this one (and if you do, I'm not going to review it again)... Reviewed-by: Alex Elder From BATV+72a4eb5d51be214cc192+2874+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 7 11:28:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67GSSOd182580 for ; Thu, 7 Jul 2011 11:28:28 -0500 X-ASG-Debug-ID: 1310056104-3e1401ac0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7BF831BF9758; Thu, 7 Jul 2011 09:28:24 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 4edOokHspUBi2IUq; Thu, 07 Jul 2011 09:28:24 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QerRA-000242-4L; Thu, 07 Jul 2011 16:28:24 +0000 Date: Thu, 7 Jul 2011 12:28:24 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 23/28] xfs: byteswap constants instead of variables Subject: Re: [PATCH 23/28] xfs: byteswap constants instead of variables Message-ID: <20110707162824.GA7830@infradead.org> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110645.046387162@bombadil.infradead.org> <1310055860.1980.23.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310055860.1980.23.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310056105 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0341 1.0000 -1.8008 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.70 X-Barracuda-Spam-Status: No, SCORE=-1.70 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68243 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 11:24:20AM -0500, Alex Elder wrote: > On Thu, 2011-07-07 at 07:05 -0400, Christoph Hellwig wrote: > > Micro-optimize various comparisms by always byteswapping the constant > > instead of the variable, which allows to do the swap at compile instead > > of runtime. > > > > Signed-off-by: Christoph Hellwig > > Ha!!! You missed one! File "fs/xfs/xfs_dir2_node.c" > lines 412-413 (after applying this patch): > > ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); I left a few where we are doing the same byteswap a little later again, but this one doesn't seem to fall into the category. Oh, I see why now: my grep only found the _MAGIC and the byteswap on the same line. > Also, xfs_magics[] in "fs/xfs/xfs_btree.c" could be > initialized with the pre-byte-swapped versions of > the constants (and the array should be given static > scope as well). Yeah, but let's keep this patch simple for now. From kkeller@sonic.net Thu Jul 7 13:25:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.4 required=5.0 tests=BAYES_00,FAKE_REPLY_C autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67IPZIO187883 for ; Thu, 7 Jul 2011 13:25:35 -0500 X-ASG-Debug-ID: 1310063133-771b01a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A17F81E5C94A for ; Thu, 7 Jul 2011 11:25:34 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id UPR15KNvIx15XEaL for ; Thu, 07 Jul 2011 11:25:34 -0700 (PDT) Received: from localhost.localdomain (wombat.san-francisco.ca.us [75.101.60.64]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p67IPXx4032607 for ; Thu, 7 Jul 2011 11:25:33 -0700 Date: Thu, 7 Jul 2011 11:25:32 -0700 From: Keith Keller To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize Message-ID: <20110707182532.GA31319@sonic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <49309.1309992692@sonic.net> User-Agent: Mutt/1.4.2.3i User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1310063134 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0473 1.0000 -1.7167 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.72 X-Barracuda-Spam-Status: No, SCORE=-1.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68251 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi all, First, I hope that this message fixes my mail client breaking threading. I am sorry for following up my own post (again), but I realized this morning that there may be another possible risk I had not considered: On Wed, Jul 06, 2011 at 03:51:32PM -0700, kkeller@sonic.net wrote: > > So, here is my xfs_db output. This is still on a mounted filesystem. How safe/risky is it to leave this filesystem mounted and in use? I'm not too concerned about new data, since it won't be a huge amount, but I am wondering if data that's already been written may be at risk. Or, it it a reasonable guess that the kernel is still working completely with the old filesystem geometry, and so won't write anything beyond the old limits while it's still mounted? df certainly seems to use the old fs size, not the new one. Thanks again, --keith -- kkeller@sonic.net From american@ame.americanmediadist.com Thu Jul 7 14:02:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67J2IW2188926 for ; Thu, 7 Jul 2011 14:02:18 -0500 X-ASG-Debug-ID: 1310065336-235501a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ame.americanmediadist.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 286861E5CB57 for ; Thu, 7 Jul 2011 12:02:16 -0700 (PDT) Received: from ame.americanmediadist.com (d.3d.344a.static.theplanet.com [74.52.61.13]) by cuda.sgi.com with ESMTP id do3BANPgeGCaXKSj for ; Thu, 07 Jul 2011 12:02:16 -0700 (PDT) Received: from american by ame.americanmediadist.com with local (Exim 4.69) (envelope-from ) id 1Qetq3-0006Lm-RY for xfs@oss.sgi.com; Thu, 07 Jul 2011 14:02:15 -0500 To: xfs@oss.sgi.com X-ASG-Orig-Subj: RE: Attending Events for AMD Subject: RE: Attending Events for AMD X-PHP-Script: americanmediadist.com/phplist/admin/index.php for 70.112.144.127 Recieved: Date: Thu, 7 Jul 2011 14:02:15 -0500 From: Phil Williams Message-ID: X-Priority: 3 X-Mailer: PHPMailer [version 1.73] X-Mailer: phplist v2.10.12 X-MessageID: 1 X-ListMember: xfs@oss.sgi.com Precedence: bulk MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="UTF-8" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - ame.americanmediadist.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [503 500] / [47 12] X-AntiAbuse: Sender Address Domain - ame.americanmediadist.com X-Barracuda-Connect: d.3d.344a.static.theplanet.com[74.52.61.13] X-Barracuda-Start-Time: 1310065337 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5087 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.05 X-Barracuda-Spam-Status: No, SCORE=1.05 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=NO_OBLIGATION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68253 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.30 NO_OBLIGATION BODY: There is no obligation X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I would like to know if you would have any interest in covering some events for us in your area? There would be NO COST at all for admission, and it would not be necessary for you to be an experienced reporter. We are looking for members of the public to cover events such as Music Concerts, Sporting Events, Restaurant Openings, Movies, Gallery Openings, Shows, and others. Again, there is no cost for admission to any of the events, and no obligation is required. We will be accepting only a few people from your area so let us know if you are interested in obtaining any further information. Phil Williams AMD Event Coverage Coordinator SITE-American Media Distribution(.com) or americanmediadist.com Fax9542064295 Member in Good Standing of the Society of Professional Journalists -This e-mail and any accompanying attachments are confidential. This information is intended solely for the use of the individual to whom it is addressed. Any review, disclosure, copying, distribution, or use of this e-mail communication by others is strictly prohibited. THERE WILL BE NO FOLLOWING EMAILS SENT - If you are not the intended recipient, please notify us immediately by returning this message to the sender and delete all copies. Thank you for your cooperation. -Macafee Virus Checked - Virus Free- -- no more reporter/event updates reply w NO MORE in subject -- -- ,-- From sandeen@sandeen.net Thu Jul 7 14:34:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67JYEh7189893 for ; Thu, 7 Jul 2011 14:34:14 -0500 X-ASG-Debug-ID: 1310067252-5e7902a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8550554D03 for ; Thu, 7 Jul 2011 12:34:12 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id IjY5r0NrABqLFAHj for ; Thu, 07 Jul 2011 12:34:12 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 5C0214964600; Thu, 7 Jul 2011 14:34:12 -0500 (CDT) Message-ID: <4E160A34.20902@sandeen.net> Date: Thu, 07 Jul 2011 14:34:12 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Keith Keller CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <20110707182532.GA31319@sonic.net> In-Reply-To: <20110707182532.GA31319@sonic.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310067253 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68255 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/7/11 1:25 PM, Keith Keller wrote: > Hi all, > > First, I hope that this message fixes my mail client breaking threading. > > I am sorry for following up my own post (again), but I realized this > morning that there may be another possible risk I had not considered: > > On Wed, Jul 06, 2011 at 03:51:32PM -0700, kkeller@sonic.net wrote: >> >> So, here is my xfs_db output. This is still on a mounted filesystem. > > How safe/risky is it to leave this filesystem mounted and in use? > I'm not too concerned about new data, since it won't be a huge amount, > but I am wondering if data that's already been written may be at risk. > Or, it it a reasonable guess that the kernel is still working completely > with the old filesystem geometry, and so won't write anything beyond the > old limits while it's still mounted? df certainly seems to use the old > fs size, not the new one. I don't remember all the implications of this very old bug... It seems like you need an "exit strategy" - you probably cannot leave your fs mounted -forever- ... If it were me, if possible, I'd make backups of the fs as it's mounted now, then umount it and make an xfs_metadump of it, restore that metadump to a new sparse file, and point xfs_repair at that metadata image file, to see what repair might do with it. If repair eats it alive, then we can look into more xfs_db type surgery to fix things up more nicely... -Eric > Thanks again, > > > --keith > > From volkan.yazici@gmail.com Thu Jul 7 15:00:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67K0C8Z190781 for ; Thu, 7 Jul 2011 15:00:12 -0500 X-ASG-Debug-ID: 1310068810-5ce903780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1B7B5310C for ; Thu, 7 Jul 2011 13:00:11 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 9rJXihJ3am6umwL8 for ; Thu, 07 Jul 2011 13:00:11 -0700 (PDT) Received: by fxg11 with SMTP id 11so1604988fxg.6 for ; Thu, 07 Jul 2011 13:00:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=FGSFNbIMG/pL4HfXPoVgxCs/CEIm4YlJ5q0UkpsX7K0=; b=G/tyrSHrWcaMGBeF7lrRciGwlD6j+XR6R8ova1azhKcCiGAzvyQtDjaNBiICG48K5G dooeemWg/gcSaQeDy6qEYlVsFpADkqXCydGJq2i1MBb62HYpn79t4nyS7Ml+IA0MtgWR NWU8t6CWg1iQSaP5jMNAR2jQoohPKqA9rXUZM= MIME-Version: 1.0 Received: by 10.223.17.68 with SMTP id r4mr1788971faa.62.1310068642993; Thu, 07 Jul 2011 12:57:22 -0700 (PDT) Received: by 10.223.118.20 with HTTP; Thu, 7 Jul 2011 12:57:22 -0700 (PDT) In-Reply-To: <4E15D68C.6060801@sandeen.net> References: <20110704124906.GY561@dastard> <4E15D68C.6060801@sandeen.net> Date: Thu, 7 Jul 2011 22:57:22 +0300 Message-ID: X-ASG-Orig-Subj: Re: Recovering XFS Partition of Type FAT16 Subject: Re: Recovering XFS Partition of Type FAT16 From: Volkan YAZICI To: Eric Sandeen Cc: Dave Chinner , xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1310068811 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0116 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.60 X-Barracuda-Spam-Status: No, SCORE=-1.60 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68257 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 7, 2011 at 6:53 PM, Eric Sandeen wrote: > It sounds like something changed your partition table as well as your > filesystem. =A0Putting the partition table back in place first probably > would have been the better first step, in retrospect. > > I can't tell for sure, though, what you've done (did you reparition? > mkfs? =A0with which tools? =A0what was the xfs_repair output?) so I'm not > sure what to tell you at this point. I was struggling to boot an ISO image from a USB disk, hence I suspect that I had probably set the type of the host machine partition (/dev/sda1) to FAT16 with fdisk, instead of USB disk partition (/dev/sdb1). Then in the next boot, Linux doesn't come up and complained about XFS issues. Hence I rebooted the machine and repaired the fs with xfs_repair. This time partition is mounted properly but a significant portion of the disk content is missing. Then in the fdisk -l output I realized that /dev/sda1 is set to FAT16. (Isn't it strange that I can xfs_repair and mount a partition of type FAT16?) Later I set the type of /dev/sda1 to Linux, but nothing changed. I called xfs_repair again and tried mounting again, no luck: same fs size (20GB), same missing contents. For the xfs_repair output... Honestly, I don't remember and I don't think I can reproduce the situation. Best. From sandeen@sandeen.net Thu Jul 7 15:15:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67KFO46191287 for ; Thu, 7 Jul 2011 15:15:24 -0500 X-ASG-Debug-ID: 1310069723-77f9021f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ED08E55305 for ; Thu, 7 Jul 2011 13:15:23 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id jKqS3t7AJw0qvoHL for ; Thu, 07 Jul 2011 13:15:23 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 08BA04964600; Thu, 7 Jul 2011 15:15:23 -0500 (CDT) Message-ID: <4E1613DA.5020105@sandeen.net> Date: Thu, 07 Jul 2011 15:15:22 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Volkan YAZICI CC: Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Recovering XFS Partition of Type FAT16 Subject: Re: Recovering XFS Partition of Type FAT16 References: <20110704124906.GY561@dastard> <4E15D68C.6060801@sandeen.net> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310069723 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.61 X-Barracuda-Spam-Status: No, SCORE=-1.61 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=SUBJECT_FUZZY_TION X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68257 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.41 SUBJECT_FUZZY_TION Attempt to obfuscate words in Subject: X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/7/11 2:57 PM, Volkan YAZICI wrote: > On Thu, Jul 7, 2011 at 6:53 PM, Eric Sandeen wrote: >> It sounds like something changed your partition table as well as your >> filesystem. Putting the partition table back in place first probably >> would have been the better first step, in retrospect. >> >> I can't tell for sure, though, what you've done (did you reparition? >> mkfs? with which tools? what was the xfs_repair output?) so I'm not >> sure what to tell you at this point. > > I was struggling to boot an ISO image from a USB disk, hence I suspect > that I had probably set the type of the host machine partition > (/dev/sda1) to FAT16 with fdisk, instead of USB disk partition well, almost nothing cares about the partition type, really... not kernel, anyway, and not mount ... > (/dev/sdb1). Then in the next boot, Linux doesn't come up and > complained about XFS issues. Hence I rebooted the machine and repaired > the fs with xfs_repair. This time partition is mounted properly but a > significant portion of the disk content is missing. Then in the fdisk > -l output I realized that /dev/sda1 is set to FAT16. (Isn't it strange > that I can xfs_repair and mount a partition of type FAT16?) Later I no, not really, (almost) nothing cares about those couple bytes in the partition table... > set the type of /dev/sda1 to Linux, but nothing changed. I called > xfs_repair again and tried mounting again, no luck: same fs size > (20GB), same missing contents. > > For the xfs_repair output... Honestly, I don't remember and I don't > think I can reproduce the situation. And I'm afraid I can't really imagine how you got here; apparently your partition got shrunk, at least - and maybe mkfs'd as FAT? And I don't think repair will cope well with a truncated block device... perhaps your handy partitioning tool helpfully mkfs'd for you a few times, as well...? -Eric > > Best. > From aelder@sgi.com Thu Jul 7 15:29:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67KTihJ193912 for ; Thu, 7 Jul 2011 15:29:44 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 823EE8F8052; Thu, 7 Jul 2011 13:29:41 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 15:29:41 -0500 Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1309757260-5484-3-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 15:29:40 -0500 Message-ID: <1310070580.1980.64.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > From: Dave Chinner > > Delayed logging can insert tens of thousands of log items into the > AIL at the same LSN. When the committing of log commit records > occur, we can get insertions occurring at an LSN that is not at the > end of the AIL. If there are thousands of items in the AIL on the > tail LSN, each insertion has to walk the AIL to find the correct > place to insert the new item into the AIL. This can consume large > amounts of CPU time and block other operations from occurring while > the traversals are in progress. > > To avoid this repeated walk, use a AIL cursor to record > where we should be inserting the new items into the AIL without > having to repeat the walk. The cursor infrastructure already > provides this functionality for push walks, so is a simple extension > of existing code. While this will not avoid the initial walk, it > will avoid repeating it tens of thousands of times during a single > checkpoint commit. > > Signed-off-by: Dave Chinner I agree with Christoph's comments about both eliminating the do_init parameter in __xfs_trans_ail_cursor_last(), and that there's no need for a loop in xfs_ail_splice(). I have some thoughts below, one of which points out what may be a bug involving the use of list_for_each_entry_reverse(). Someone else should confirm it though. > --- > fs/xfs/xfs_trans.c | 27 +++++++++-- > fs/xfs/xfs_trans_ail.c | 122 +++++++++++++++++++++++++++++++++++++++-------- > fs/xfs/xfs_trans_priv.h | 10 +++- > 3 files changed, 131 insertions(+), 28 deletions(-) > . . . > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > index 5fc2380..272e7fa 100644 > --- a/fs/xfs/xfs_trans_ail.c > +++ b/fs/xfs/xfs_trans_ail.c . . . > @@ -300,31 +300,110 @@ out: > } > > /* > - * splice the log item list into the AIL at the given LSN. > + * Initialise the cursor to the last item in the AIL with the given @lsn. I think you should capture here that the cursor points to the last entry with an lsn lower than the given one if none with the given lsn is present in the list already. > + * This searches the list from highest LSN to lowest. > */ > -static void > -xfs_ail_splice( > - struct xfs_ail *ailp, > - struct list_head *list, > - xfs_lsn_t lsn) > +static struct xfs_log_item * > +__xfs_trans_ail_cursor_last( > + struct xfs_ail *ailp, > + struct xfs_ail_cursor *cur, > + xfs_lsn_t lsn, > + bool do_init) . . . > - list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { > - if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) > + list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { > + if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) > break; > } > +out: > + if (cur) > + cur->item = lip; I don't think it's safe to use the value of "lip" here. I think if list_for_each_entry_reverse() terminates because it has visited every entry on the list then its "pos" parameter (lip in this case) does not have a meaningful value. The problem case is if the lsn you are inserting is lower than any already in the AIL. Can you guarantee that cannot happen? If not, there doesn't seem to be a way to indicate to the caller that the new entry belongs at the beginning of the AIL--"after nothing." A null pointer means the list is empty, and maybe that is in some sense no different from this case, I don't know. I haven't looked closely at the new xfs_ail_splice() yet (below) so maybe this all "just works" but if it does it may be fragile. > + return lip; > +} > > - ASSERT(&next_lip->li_ail == &ailp->xa_ail || > - XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0); > +/* . . . > +/* > + * splice the log item list into the AIL at the given LSN. We splice to the > + * tail of the given LSN to maintain insert order for push traversals. The > + * cursor is optional, allowing repeated updates to the same LSN to avoid > + * repeated traversals. ... If supplied, the cursor must have been previously initialized. > + */ > +static void > +xfs_ail_splice( > + struct xfs_ail *ailp, > + struct xfs_ail_cursor *cur, > + struct list_head *list, > + xfs_lsn_t lsn) > +{ > + struct xfs_log_item *lip = cur ? cur->item : NULL; > + struct xfs_log_item *next_lip; > + > + do { > + /* no placeholder, so get our insert location */ > + if (!lip) > + lip = __xfs_trans_ail_cursor_last(ailp, cur, > + lsn, false); > + > + if (!lip) { > + /* > + * The list is empty, so just splice and return. Our > + * cursor is already guaranteed to be up to date, so we > + * don't need to touch it here. > + */ > + list_splice(list, &ailp->xa_ail); > + return; > + } > + > + /* The placeholder was invalidated, need to get a new cursor */ > + if ((__psint_t)lip & 1) > + lip = NULL; > + > + } while (lip == NULL); > + > + /* > + * Our cursor points to the item we want to insert _after_, so we have > + * to update the cursor to point to the end of the list we are splicing > + * in so that it points to the correct location for the next splice. > + * i.e. before the splice > + * > + * lsn -> lsn -> lsn + x -> lsn + x ... > + * ^ > + * | cursor points here > + * > + * After the splice we have: > + * > + * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... > + * ^ ^ > + * | cursor points here | needs to move here > + * > + * So we set the cursor to the last item in the list to be spliced > + * before we execute the splice, resulting in the cursor pointing to > + * the correct item after the splice occurs. > + */ > + if (cur) { > + next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); > + cur->item = next_lip; > + } > + list_splice_init(list, &lip->li_ail); I think simply list_splice() is sufficient here (and it was before as well). Either that or the empty list case above should also call list_splice_init(). > } > > /* . . . > @@ -111,10 +112,13 @@ xfs_lsn_t xfs_ail_min_lsn(struct xfs_ail *ailp); > void xfs_trans_unlocked_item(struct xfs_ail *, > xfs_log_item_t *); > > -struct xfs_log_item *xfs_trans_ail_cursor_first(struct xfs_ail *ailp, > +struct xfs_log_item * xfs_trans_ail_cursor_first(struct xfs_ail *ailp, > struct xfs_ail_cursor *cur, > xfs_lsn_t lsn); > -struct xfs_log_item *xfs_trans_ail_cursor_next(struct xfs_ail *ailp, > +struct xfs_log_item * xfs_trans_ail_cursor_last(struct xfs_ail *ailp, > + struct xfs_ail_cursor *cur, > + xfs_lsn_t lsn); > +struct xfs_log_item * xfs_trans_ail_cursor_next(struct xfs_ail *ailp, > struct xfs_ail_cursor *cur); > void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, > struct xfs_ail_cursor *cur); Curious about the formatting convention here. I actually toyed with doing exactly this years ago in my own code, but I seemed to be bucking convention too much so I went back to the K&R way (I think that's putting the star adjacent to the function/variable name comes from). From aelder@sgi.com Thu Jul 7 15:34:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67KY1BF194086 for ; Thu, 7 Jul 2011 15:34:01 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay2.corp.sgi.com (Postfix) with ESMTP id 68A2B304048; Thu, 7 Jul 2011 13:33:58 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 15:33:58 -0500 Subject: Re: [PATCH 3/5] xfs: remove confusing ail cursor wrapper From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1309757260-5484-4-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-4-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 15:33:56 -0500 Message-ID: <1310070836.1980.66.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > From: Dave Chinner > > xfs_trans_ail_cursor_set() doesn't set the cursor to the current log > item, it sets it to the next item. There is already a function for > doing this - xfs_trans_ail_cursor_next() - and the _set function is > simply a two line wrapper. Remove it and open code the setting of > the cursor in the two locations that call it to remove the > confusion. > > Signed-off-by: Dave Chinner Good idea. I also appreciate the comment improvement; the "returns NULL" is something I wanted to suggest while looking at the previous patch, but that section of the file wasn't in that patch. Reviewed-by: Alex Elder From phox@uvic.ca Thu Jul 7 15:46:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_48 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67KkPif194445 for ; Thu, 7 Jul 2011 15:46:26 -0500 X-ASG-Debug-ID: 1310071584-38d000020000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mole.comp.uvic.ca (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 19A5B1BF9C75 for ; Thu, 7 Jul 2011 13:46:24 -0700 (PDT) Received: from mole.comp.uvic.ca (mole.comp.uvic.ca [142.104.5.70]) by cuda.sgi.com with ESMTP id 6H5nHTspGeazwfLY for ; Thu, 07 Jul 2011 13:46:24 -0700 (PDT) Received: from frankenbrick.pcic.uvic.ca (frankenbrick.pcic.uvic.ca [142.104.194.114]) by mole.comp.uvic.ca (8.14.4/8.14.4) with ESMTP id p67KkLeE005474 for ; Thu, 7 Jul 2011 13:46:22 -0700 Message-ID: <4E161B1D.90301@uvic.ca> Date: Thu, 07 Jul 2011 13:46:21 -0700 From: Paul Nienaber User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.19pre) Gecko/20110706 Lanikai/3.1.12pre MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfs_quota: bug: traverses bind mountpoints Subject: xfs_quota: bug: traverses bind mountpoints Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-UVic-Virus-Scanned: OK - Passed virus scan by ClamAV (clamd) on mole X-UVic-Scan: mole.comp.uvic.ca filter_version 3.1.48 X-Scanned-By: MIMEDefang 2.67 on 142.104.5.72 X-Barracuda-Connect: mole.comp.uvic.ca[142.104.5.70] X-Barracuda-Start-Time: 1310071585 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68259 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean So, much like coreutils' du (which also shouldn't), xfs_quota traverses bind mountpoints both when doing 'project -s' and 'project -C', and probably also 'project -c' although I haven't tested it. Testcase and output follows. cheers ~Paul # dd if=/dev/zero of=./xfstestfs bs=1M count=512 512+0 records in 512+0 records out 536870912 bytes (537 MB) copied, 0.402579 s, 1.3 GB/s # mkfs.xfs xfstestfs meta-data=xfstestfs isize=256 agcount=4, agsize=32768 blks = sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=131072, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=1200, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # mkdir /mnt/xfstestfs # mount -t xfs -o loop,prjquota xfstestfs /mnt/xfstestfs/ # mkdir -p /mnt/xfstestfs/projects/foo/chroot/xfstestfs # mkdir -p /mnt/xfstestfs/projects/bar ****This is here so we get spew about where it's traversing later on: # ln -s /mnt/xfstestfs/projects/foo /mnt/xfstestfs/projects/bar/ # echo 12345:/mnt/xfstestfs/projects/foo >> /etc/projects # echo foo:12345 >> /etc/projid # mount -t none -o bind /mnt/xfstestfs /mnt/xfstestfs/projects/foo/chroot/xfstestfs # dd if=/dev/zero of=/mnt/xfstestfs/projects/foo/100M bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 MB) copied, 0.0815913 s, 1.3 GB/s # dd if=/dev/zero of=/mnt/xfstestfs/projects/bar/100M bs=1M count=100 100+0 records in 100+0 records out 104857600 bytes (105 MB) copied, 0.0806148 s, 1.3 GB/s # xfs_quota -x -c 'project -s foo' /mnt/xfstestfs Setting up project foo (path /mnt/xfstestfs/projects/foo)... ****Oops, why are we here: xfs_quota: skipping special file /mnt/xfstestfs/projects/foo/chroot/xfstestfs/projects/bar/foo Processed 1 (/etc/projects and cmdline) paths for project foo with recursion depth infinite (-1). # xfs_quota -x -c 'report -p -h' /mnt/xfstestfs Project quota on /mnt/xfstestfs (/dev/loop0) Blocks Project ID Used Soft Hard Warn/Grace ---------- --------------------------------- foo 200M 0 0 00 [------] From aelder@sgi.com Thu Jul 7 16:15:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67LFJHF195404 for ; Thu, 7 Jul 2011 16:15:19 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6D4C5304032; Thu, 7 Jul 2011 14:15:16 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 16:15:16 -0500 Subject: Re: [PATCH 4/5] xfs: convert AIL cursors to use struct list_head From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1309757260-5484-5-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-5-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 16:15:15 -0500 Message-ID: <1310073315.1980.79.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 8bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > From: Dave Chinner > > The list of active AIL cursors uses a roll-your-own linked list with > special casing for the AIL push cursor. Simplify this code by > replacing the list with standard struct list_head lists, and use a > separate list_head to track the active cursors so that the code can > just treat the AIL push cursor (which is still embedded into the > struct xfs_ail) as a generic cursor. > > Further, fix the duplicate push cursor initialisation that the > special case handling was hiding, and clean up all the comments > around the active cursor list handling. > > Signed-off-by: Dave Chinner I suggest a few comment changes below. I also have a question about why the push cursor isn't treated like any other cursors. I added a few bits of commentary as well--you addressed a few things I had been thinking about earlier. I guess I'm interested in your response before signing off. -Alex > --- > fs/xfs/xfs_trans_ail.c | 68 +++++++++++++++------------------------------- > fs/xfs/xfs_trans_priv.h | 5 ++- > 2 files changed, 25 insertions(+), 48 deletions(-) > > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > index de7a52a..3b5b5e4 100644 > --- a/fs/xfs/xfs_trans_ail.c > +++ b/fs/xfs/xfs_trans_ail.c > @@ -165,15 +165,11 @@ xfs_ail_max_lsn( > /* > * AIL traversal cursor initialisation. > * > - * The cursor keeps track of where our current traversal is up > - * to by tracking the next Æ£tem in the list for us. However, for > - * this to be safe, removing an object from the AIL needs to invalidate > - * any cursor that points to it. hence the traversal cursor needs to > - * be linked to the struct xfs_ail so that deletion can search all the > - * active cursors for invalidation. > - * > - * We don't link the push cursor because it is embedded in the struct > - * xfs_ail and hence easily findable. > + * The cursor keeps track of where our current traversal is up to by tracking > + * the next Æ£tem in the list for us. However, for this to be safe, removing an ^ What's up with the weird non-ASCII characters in your code? > + * object from the AIL needs to invalidate any cursor that points to it. hence > + * the traversal cursor needs to be linked to the struct xfs_ail so that > + * deletion can search all the active cursors for invalidation. > */ > STATIC void > xfs_trans_ail_cursor_init( > @@ -181,17 +177,13 @@ xfs_trans_ail_cursor_init( > struct xfs_ail_cursor *cur) > { > cur->item = NULL; > - if (cur == &ailp->xa_cursors) > - return; > - > - cur->next = ailp->xa_cursors.next; > - ailp->xa_cursors.next = cur; > + INIT_LIST_HEAD(&cur->list); > + list_add_tail(&cur->list, &ailp->xa_cursors); This is good. I was thinking as I looked at this earlier that it would be nicer if newer cursors were added to the end of the list. > } > > /* > - * Get the next item in the traversal and advance the cursor. > - * If the cursor was invalidated (inidicated by a lip of 1), > - * restart the traversal. > + * Get the next item in the traversal and advance the cursor. If the cursor > + * was invalidated (inidicated by a lip of 1), restart the traversal. indicated Actually, it's indicated by a low-order bit of 1. Why is it that you decided to just set the bit rather than overwrite the item pointer? Just for the benefit of debugging? (That is a good reason...) If not, I suggest defining an XFS_ITEM_INVALID constant pointer rather than just using 1. > */ > struct xfs_log_item * > xfs_trans_ail_cursor_next( > @@ -208,39 +200,24 @@ xfs_trans_ail_cursor_next( > } > > /* > - * Now that the traversal is complete, we need to remove the cursor > - * from the list of traversing cursors. Avoid removing the embedded > - * push cursor, but use the fact it is always present to make the > - * list deletion simple. > + * When the traversal is complete, we need to remove the cursor from the list > + * of traversing cursors. > */ > void > xfs_trans_ail_cursor_done( > struct xfs_ail *ailp, > - struct xfs_ail_cursor *done) > + struct xfs_ail_cursor *cur) > { > - struct xfs_ail_cursor *prev = NULL; > - struct xfs_ail_cursor *cur; > - > - done->item = NULL; This eliminates the curious situation where the end of the list was marked by a null *item* pointer rather than something having to do with the next pointer. > - if (done == &ailp->xa_cursors) > - return; > - prev = &ailp->xa_cursors; > - for (cur = prev->next; cur; prev = cur, cur = prev->next) { > - if (cur == done) { > - prev->next = cur->next; > - break; . . . > - * invalidation and the end of the list when getting the next item > + * Invalidate any cursor that is pointing to this item. This is called when an > + * item is removed from the AIL. Any cursor pointing to this object is now > + * invalid and the traversal needs to be terminated so it doesn't reference a > + * freed object. We set the cursor item to a value of 1 so we can distinguish Fix this comment to reflect the use of the low bit rather than just 1. > + * between an invalidation and the end of the list when getting the next item > * from the cursor. > */ > STATIC void . . . > nt_t)cur->item | 1); > @@ -416,7 +392,7 @@ xfs_ail_worker( > struct xfs_ail *ailp = container_of(to_delayed_work(work), > struct xfs_ail, xa_work); > xfs_mount_t *mp = ailp->xa_mount; > - struct xfs_ail_cursor *cur = &ailp->xa_cursors; > + struct xfs_ail_cursor *cur = &ailp->xa_push_cursor; Is the push cursor defined in the ail structure just so it's easier to find? > xfs_log_item_t *lip; > xfs_lsn_t lsn; > xfs_lsn_t target; > @@ -428,7 +404,6 @@ xfs_ail_worker( > > spin_lock(&ailp->xa_lock); > target = ailp->xa_target; > - xfs_trans_ail_cursor_init(ailp, cur); I don't see why the push cursor should be treated any differently from any others. If something gets invalidated the push cursor needs to be notified also, doesn't it? I must be missing something here... > lip = xfs_trans_ail_cursor_first(ailp, cur, ailp->xa_last_pushed_lsn); > if (!lip || XFS_FORCED_SHUTDOWN(mp)) { > /* . . . From aelder@sgi.com Thu Jul 7 16:18:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67LIJZX195504 for ; Thu, 7 Jul 2011 16:18:19 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3A53E8F8073; Thu, 7 Jul 2011 14:18:16 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 16:18:16 -0500 Subject: Re: [PATCH 5/5] xfs: add size update tracepoint to IO completion From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1309757260-5484-6-git-send-email-david@fromorbit.com> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-6-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 16:18:14 -0500 Message-ID: <1310073494.1980.80.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > From: Dave Chinner > > For improving insight into IO completion behaviour. > > Signed-off-by: Dave Chinner Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Thu Jul 7 16:26:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67LQIwW195863 for ; Thu, 7 Jul 2011 16:26:18 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay2.corp.sgi.com (Postfix) with ESMTP id 07BAB304043; Thu, 7 Jul 2011 14:26:18 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 7 Jul 2011 16:26:17 -0500 Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , In-Reply-To: <20110704212055.GA24500@infradead.org> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> <20110704212055.GA24500@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 7 Jul 2011 16:26:16 -0500 Message-ID: <1310073976.1980.84.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-04 at 17:20 -0400, Christoph Hellwig wrote: > FYI: the following patch implementing my suggested cleanups survived a > few rounds of xfsqa: It also eliminates the concern I had about using the value of "lip" after falling off the front of the list with a list_for_each_entry_reverse(). A null pointer signifies no entry has a lower lsn than the one provided, and that covers both the "empty list" and the "lower than all other lsn's in the list" cases. I think you should base your solution on Christoph's approach, Dave. -Alex From kkeller@sonic.net Thu Jul 7 17:23:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67MNrwC197729 for ; Thu, 7 Jul 2011 17:23:53 -0500 X-ASG-Debug-ID: 1310077431-176d027e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D086E8B5ED for ; Thu, 7 Jul 2011 15:23:51 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id oU7dR8ZfBdA8y7j4 for ; Thu, 07 Jul 2011 15:23:51 -0700 (PDT) Received: from localhost.localdomain (wombat.san-francisco.ca.us [75.101.60.64]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p67MNp30001615; Thu, 7 Jul 2011 15:23:51 -0700 Date: Thu, 7 Jul 2011 15:23:50 -0700 From: Keith Keller To: Eric Sandeen Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize Message-ID: <20110707222350.GA776@sonic.net> References: <20110707182532.GA31319@sonic.net> <4E160A34.20902@sandeen.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E160A34.20902@sandeen.net> User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1310077432 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68266 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 02:34:12PM -0500, Eric Sandeen wrote: > > It seems like you need an "exit strategy" - you probably cannot leave > your fs mounted -forever- ... Yes, of course. I didn't mean to imply that I'd leave it like this indefinitely. :) I will be on vacation next week, and it's not really reschedulable. So my plan was to ride the filesystem through next week, hope for the best, then fix it when I return, rather than attempt to start a fix now and risk ending up with a broken filesystem. Ideally I would preemptively switch to a warm backup before I leave, but that won't be ready in time. (I currently do have all the important data backed up, but it is to various different spaces where I had free disk space. The warm backup should be ready early next week if the filesystem does go belly-up before I return.) > If it were me, if possible, I'd make backups of the fs as it's mounted > now, then umount it and make an xfs_metadump of it, restore that metadump > to a new sparse file, and point xfs_repair at that metadata image file, > to see what repair might do with it. > > If repair eats it alive, then we can look into more xfs_db type surgery > to fix things up more nicely... This sounds like a reasonable plan. It looks like xfs_metadump needs a umounted or readonly filesystem in order to work properly; is there any way to estimate how long such a dump would take, and how large it would be from an almost-full 11TB fs with however many inodes it has (~19 million IIRC)? I want to plan downtime and usable disk space accordingly. Would xfs_metadump create the same dump from a filesystem remounted ro as from a filesystem not mounted? I think you suggested this idea in an earlier post. In a very optimistic scenario, I could imagine remounting the original filesystem ro, taking the metadump, then being able to remount rw so that I could put it back into service while I work with the metadump. Then, once I knew more about the metadump, I could do an actual umount and fix the filesystem using the information gathered from the metadump testing. If they will produce the same metadump, then it could be a win-win if it's able to successfully remount rw afterwards; and if it can't, it wasn't any additional effort or risk to try. Will xfsprogs 3.1.5 work with the older kernel, and will it make a better dump than 2.9.4? I have built xfsprogs from source, but if it might have problems working with the kmod-xfs kernel module I can use the 2.9.4 tools instead. (Again, in keeping with the hope-for-the-best scenario above, if avoiding a reboot won't be too harmful it'd be convenient.) I think you also mentioned that xfs_metadump can not dump frozen filesystems, but the man page for 3.1.5 says it can. FWIW xfs_metadump refused to work on a frozen filesystem on my test machine, which is version 2.9.4 (though from an older CentOS base). (xfs_freeze does look like a nice tool though!) --keith -- kkeller@sonic.net From sandeen@sandeen.net Thu Jul 7 17:30:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p67MUm5L197959 for ; Thu, 7 Jul 2011 17:30:48 -0500 X-ASG-Debug-ID: 1310077847-6ada02e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF29A558A5 for ; Thu, 7 Jul 2011 15:30:47 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id O8I6JMf92OA4nPEh for ; Thu, 07 Jul 2011 15:30:47 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id EC6594964600; Thu, 7 Jul 2011 17:30:46 -0500 (CDT) Message-ID: <4E163396.2010707@sandeen.net> Date: Thu, 07 Jul 2011 17:30:46 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Keith Keller CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize Subject: Re: xfs_growfs doesn't resize References: <20110707182532.GA31319@sonic.net> <4E160A34.20902@sandeen.net> <20110707222350.GA776@sonic.net> In-Reply-To: <20110707222350.GA776@sonic.net> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310077847 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68267 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/7/11 5:23 PM, Keith Keller wrote: > On Thu, Jul 07, 2011 at 02:34:12PM -0500, Eric Sandeen wrote: ... >> If it were me, if possible, I'd make backups of the fs as it's mounted >> now, then umount it and make an xfs_metadump of it, restore that metadump >> to a new sparse file, and point xfs_repair at that metadata image file, >> to see what repair might do with it. >> >> If repair eats it alive, then we can look into more xfs_db type surgery >> to fix things up more nicely... > > This sounds like a reasonable plan. It looks like xfs_metadump needs a > umounted or readonly filesystem in order to work properly; is there any > way to estimate how long such a dump would take, and how large it would > be from an almost-full 11TB fs with however many inodes it has (~19 million > IIRC)? I want to plan downtime and usable disk space accordingly. well, I'm looking at an image of a 4T fs right now, with 208k inodes, and the image itself took up 800M (a 4T sparse file when restored, of course, but only using 800M) > Would xfs_metadump create the same dump from a filesystem remounted ro > as from a filesystem not mounted? I think you suggested this idea in yes, looks like it works, with recent tools anyway. > an earlier post. In a very optimistic scenario, I could imagine > remounting the original filesystem ro, taking the metadump, then being > able to remount rw so that I could put it back into service while I > work with the metadump. Then, once I knew more about the metadump, I I think that should work. > could do an actual umount and fix the filesystem using the information > gathered from the metadump testing. If they will produce the same > metadump, then it could be a win-win if it's able to successfully > remount rw afterwards; and if it can't, it wasn't any additional effort > or risk to try. agreed. > Will xfsprogs 3.1.5 work with the older kernel, and will it make a > better dump than 2.9.4? I have built xfsprogs from source, but if it 2.9.4 won't have xfs_metadump ... and no problems with newer tools on older kernels. It's just reading the block device, in any case. No unique kernel interaction. > might have problems working with the kmod-xfs kernel module I can use > the 2.9.4 tools instead. (Again, in keeping with the hope-for-the-best > scenario above, if avoiding a reboot won't be too harmful it'd be > convenient.) I think you can. > I think you also mentioned that xfs_metadump can not dump frozen > filesystems, but the man page for 3.1.5 says it can. FWIW xfs_metadump > refused to work on a frozen filesystem on my test machine, which is > version 2.9.4 (though from an older CentOS base). (xfs_freeze does look > like a nice tool though!) it should(?) but: # xfs_metadump /dev/loop0 blah xfs_metadump: /dev/loop0 contains a mounted and writable filesystem fatal error -- couldn't initialize XFS library # xfs_freeze -f mnt/ # xfs_metadump /dev/loop0 blah xfs_metadump: /dev/loop0 contains a mounted and writable filesystem fatal error -- couldn't initialize XFS library # xfs_freeze -u mnt # mount -o remount,ro mnt # xfs_metadump /dev/loop0 blah I think we should make the tools work with freeze, but remount,ro works fine too. -Eric > --keith > > From dave@fromorbit.com Thu Jul 7 19:54:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p680s4Kl204468 for ; Thu, 7 Jul 2011 19:54:05 -0500 X-ASG-Debug-ID: 1310086442-7e7002580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AE736E8E8BA for ; Thu, 7 Jul 2011 17:54:02 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id gNEeCLUkzH384nm3 for ; Thu, 07 Jul 2011 17:54:02 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AssFAMdUFk55LCkBgWdsb2JhbABTmEyOcRUBARYmJa08jnaQIoY4BKMW Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:24:01 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QezKI-0003R6-4r for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:50 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QezKH-0007yL-3T for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:49 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/4, V2] xfstests: fsx is fallocate challenged Subject: [PATCH 0/4, V2] xfstests: fsx is fallocate challenged Date: Fri, 8 Jul 2011 10:53:42 +1000 Message-Id: <1310086426-30605-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310086443 X-Barracuda-Bayes: INNOCENT GLOBAL 0.6102 1.0000 0.7976 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.80 X-Barracuda-Spam-Status: No, SCORE=0.80 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68276 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a repost of the fsx fallocate/fpunch operation handling fixes along with additional tests added to 091 to cover the failing test cases that exposed the fallocate/fpunch operation handling problems. Version 2 fixes the review coments of the first version. The main change is to re-number all the operations and use those directly to generate the operations to execute. From dave@fromorbit.com Thu Jul 7 19:54:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_92 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p680s5K6204474 for ; Thu, 7 Jul 2011 19:54:06 -0500 X-ASG-Debug-ID: 1310086442-7e7002580001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E2D87E8E8BA for ; Thu, 7 Jul 2011 17:54:03 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id xsl0cPcCuRvvDYWb for ; Thu, 07 Jul 2011 17:54:03 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AssFAMdUFk55LCkBgWdsb2JhbABTmEyOcRUBARYmJcxUhjgEoxY Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:24:01 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QezKI-0003R7-4s for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:50 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QezKH-0007yN-6c for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:49 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/4] xfstests: fix fsx fpunch test to actually test for fpunch Subject: [PATCH 1/4] xfstests: fix fsx fpunch test to actually test for fpunch Date: Fri, 8 Jul 2011 10:53:43 +1000 Message-Id: <1310086426-30605-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310086426-30605-1-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310086444 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4053 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68276 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The operation flags parameter to fallocate is the second parameter, not the last. Hence the fpunch test is actually testing for falloc support, not fpunch. Somebody needs a brown paper bag. Also, add a ftruncate call whenthe fpunch succeeds just in case the file was not already zero sized. Failing to ensure we start with a zero length file can cause read ops to fail size checks if they occur before the file is written to be the main test loop. While there, observe the quiet flag the same as the falloc test does and have them both emit the warning at the same error level. Signed-off-by: Dave Chinner --- ltp/fsx.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ltp/fsx.c b/ltp/fsx.c index 0683853..a37e223 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -1243,7 +1243,7 @@ test_fallocate() if (!lite && fallocate_calls) { if (fallocate(fd, 0, 0, 1) && errno == EOPNOTSUPP) { if(!quiet) - prt("fsx: main: filesystem does not support fallocate, disabling\n"); + warn("main: filesystem does not support fallocate, disabling\n"); fallocate_calls = 0; } else { ftruncate(fd, 0); @@ -1260,13 +1260,13 @@ test_punch_hole() { #ifdef FALLOC_FL_PUNCH_HOLE if (!lite && punch_hole_calls) { - if (fallocate(fd, 0, 0, - FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE) && - errno == EOPNOTSUPP) { - - warn("main: filesystem does not support fallocate punch hole, disabling"); + if (fallocate(fd, FALLOC_FL_PUNCH_HOLE | FALLOC_FL_KEEP_SIZE, + 0, 1) && errno == EOPNOTSUPP) { + if(!quiet) + warn("main: filesystem does not support fallocate punch hole, disabling"); punch_hole_calls = 0; - } + } else + ftruncate(fd, 0); } #else /* ! PUNCH HOLE */ punch_hole_calls = 0; -- 1.7.5.1 From dave@fromorbit.com Thu Jul 7 19:54:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_14, J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p680s7Ng204493 for ; Thu, 7 Jul 2011 19:54:07 -0500 X-ASG-Debug-ID: 1310086444-3efa03490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7A11D559D0 for ; Thu, 7 Jul 2011 17:54:04 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id tFEim6YF7On5Eg8f for ; Thu, 07 Jul 2011 17:54:04 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcDAMdUFk55LCkBgWdsb2JhbABThEKiexUBARYmJbt5kFuBK4QAgQ0EoxY Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:24:01 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QezKR-0003R8-OD for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:59 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QezKH-0007yP-AI for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:49 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/4] xfstests: fsx fallocate support is b0rked Subject: [PATCH 2/4] xfstests: fsx fallocate support is b0rked Date: Fri, 8 Jul 2011 10:53:44 +1000 Message-Id: <1310086426-30605-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310086426-30605-1-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310086446 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0634 1.0000 -1.6159 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68277 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The recent fallocate/fpunch additions to fsx have not actually be executing fallocate/fpunch operations. The logic to select what operation to run is broken in such a way that fsx has been executing mapped writes and truncates instead of fallocate and fpunch operations. Remove all the (b0rken) smarty-pants selection logic from the test() function. Replace it with a clearly defined set of operations for each mode and use understandable fallback logic when various operation types have been disabled. Then use a simple switch statement to execute each of the different operations, removing the tortured nesting of if/else statements that only serve to obfuscate the code. As a result, fsx uses fallocate/fpunch appropriately during operations and uses/disableÑ• the operations as defined on the command line correctly. Signed-off-by: Dave Chinner --- ltp/fsx.c | 192 +++++++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 123 insertions(+), 69 deletions(-) diff --git a/ltp/fsx.c b/ltp/fsx.c index a37e223..41d7c20 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -58,18 +58,47 @@ int logptr = 0; /* current position in log */ int logcount = 0; /* total ops */ /* - * Define operations + * The operation matrix is complex due to conditional execution of different + * features. Hence when we come to deciding what operation to run, we need to + * be careful in how we select the different operations. The active operations + * are mapped to numbers as follows: + * + * lite !lite + * READ: 0 0 + * WRITE: 1 1 + * MAPREAD: 2 2 + * MAPWRITE: 3 3 + * TRUNCATE: - 4 + * FALLOCATE: - 5 + * PUNCH HOLE: - 6 + * + * When mapped read/writes are disabled, they are simply converted to normal + * reads and writes. When fallocate/fpunch calls are disabled, they are + * converted to OP_SKIPPED. Hence OP_SKIPPED needs to have a number higher than + * the operation selction matrix, as does the OP_CLOSEOPEN which is an + * operation modifier rather than an operation in itself. + * + * Because of the "lite" version, we also need to have different "maximum + * operation" defines to allow the ops to be selected correctly based on the + * mode being run. */ -#define OP_READ 1 -#define OP_WRITE 2 -#define OP_TRUNCATE 3 -#define OP_CLOSEOPEN 4 -#define OP_MAPREAD 5 -#define OP_MAPWRITE 6 -#define OP_SKIPPED 7 -#define OP_FALLOCATE 8 -#define OP_PUNCH_HOLE 9 +/* common operations */ +#define OP_READ 0 +#define OP_WRITE 1 +#define OP_MAPREAD 2 +#define OP_MAPWRITE 3 +#define OP_MAX_LITE 4 + +/* !lite operations */ +#define OP_TRUNCATE 4 +#define OP_FALLOCATE 5 +#define OP_PUNCH_HOLE 6 +#define OP_MAX_FULL 7 + +/* operation modifiers */ +#define OP_CLOSEOPEN 100 +#define OP_SKIPPED 101 #undef PAGE_SIZE #define PAGE_SIZE getpagesize() @@ -955,6 +984,15 @@ docloseopen(void) } } +#define TRIM_OFF_LEN(off, len, size) \ +do { \ + if (file_size) \ + offset %= size; \ + else \ + offset = 0; \ + if (offset + len > size) \ + len = size - offset; \ +} while (0) void test(void) @@ -962,11 +1000,7 @@ test(void) unsigned long offset; unsigned long size = maxoplen; unsigned long rv = random(); - unsigned long op = rv % (3 + !lite + mapped_writes + fallocate_calls + punch_hole_calls); - /* turn off the map read if necessary */ - - if (op == 2 && !mapped_reads) - op = 0; + unsigned long op; if (simulatedopcount > 0 && testcalls == simulatedopcount) writefileimage(); @@ -982,62 +1016,82 @@ test(void) if (!quiet && testcalls < simulatedopcount && testcalls % 100000 == 0) prt("%lu...\n", testcalls); - /* - * lite !lite - * READ: op = 0 0 - * WRITE: op = 1 1 - * MAPREAD: op = 2 2 - * TRUNCATE: op = - 3 - * MAPWRITE: op = 3 4 - * FALLOCATE: op = - 5 - * PUNCH HOLE: op = - 6 - */ - if (lite ? 0 : op == 3 && (style & 1) == 0) /* vanilla truncate? */ - dotruncate(random() % maxfilelen); - else { - if (randomoplen) - size = random() % (maxoplen+1); - - if (lite ? 0 : op == 3) { - /* truncate */ - dotruncate(size); - } else { - offset = random(); - if (op == 5) { - /* fallocate */ - offset %= maxfilelen; - if (offset + size > maxfilelen) - size = maxfilelen - offset; - do_preallocate(offset, size); - } else if (op == 6) { - offset %= maxfilelen; - if (offset + size > maxfilelen) - size = maxfilelen - offset; - do_punch_hole(offset, size); - } else if (op == 1 || op == (lite ? 3 : 4)) { - /* write / mapwrite */ - offset %= maxfilelen; - if (offset + size > maxfilelen) - size = maxfilelen - offset; - if (op != 1) - domapwrite(offset, size); - else - dowrite(offset, size); - } else { - /* read / mapread */ - if (file_size) - offset %= file_size; - else - offset = 0; - if (offset + size > file_size) - size = file_size - offset; - if (op != 0) - domapread(offset, size); - else - doread(offset, size); - } + offset = random(); + if (randomoplen) + size = random() % (maxoplen + 1); + + /* calculate appropriate op to run */ + if (lite) + op = rv % OP_MAX_LITE; + else + op = rv % OP_MAX_FULL; + + switch (op) { + case OP_MAPREAD: + if (!mapped_reads) + op = OP_READ; + break; + case OP_MAPWRITE: + if (!mapped_writes) + op = OP_WRITE; + break; + case OP_FALLOCATE: + if (!fallocate_calls) { + log4(OP_SKIPPED, OP_FALLOCATE, offset, size); + goto out; + } + break; + case OP_PUNCH_HOLE: + if (!punch_hole_calls) { + log4(OP_SKIPPED, OP_PUNCH_HOLE, offset, size); + goto out; } + break; } + + switch (op) { + case OP_READ: + TRIM_OFF_LEN(offset, size, file_size); + doread(offset, size); + break; + + case OP_WRITE: + TRIM_OFF_LEN(offset, size, maxfilelen); + dowrite(offset, size); + break; + + case OP_MAPREAD: + TRIM_OFF_LEN(offset, size, file_size); + domapread(offset, size); + break; + + case OP_MAPWRITE: + TRIM_OFF_LEN(offset, size, maxfilelen); + domapwrite(offset, size); + break; + + case OP_TRUNCATE: + if (!style) + size = random() % maxfilelen; + dotruncate(size); + break; + + case OP_FALLOCATE: + TRIM_OFF_LEN(offset, size, maxfilelen); + do_preallocate(offset, size); + break; + + case OP_PUNCH_HOLE: + TRIM_OFF_LEN(offset, size, maxfilelen); + do_punch_hole(offset, size); + break; + default: + prterr("test: unknown operation"); + report_failure(42); + break; + } + +out: if (sizechecks && testcalls > simulatedopcount) check_size(); if (closeopen) -- 1.7.5.1 From dave@fromorbit.com Thu Jul 7 19:54:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p680s6S5204487 for ; Thu, 7 Jul 2011 19:54:06 -0500 X-ASG-Debug-ID: 1310086442-7e7002580002-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2DD9E8E8BA for ; Thu, 7 Jul 2011 17:54:05 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id pgVdzSs6TTb91GGW for ; Thu, 07 Jul 2011 17:54:05 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvYDAMdUFk55LCkBgWdsb2JhbABTpz0VAQEWJiXMVIY4BKMW Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:24:01 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QezKR-0003RE-MT for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:59 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QezKH-0007yS-Di for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:49 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/4] xfstests: fix brain-o in fallocate log dump Subject: [PATCH 3/4] xfstests: fix brain-o in fallocate log dump Date: Fri, 8 Jul 2011 10:53:45 +1000 Message-Id: <1310086426-30605-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310086426-30605-1-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310086445 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0471 1.0000 -1.7181 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.22 X-Barracuda-Spam-Status: No, SCORE=-1.22 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68276 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner fsx segvs when dumping fallocate log entries. Fix magic string array index parameters to be zero based rather than one based. While touching log string related stuff, make the format consistent with read and write operations so the log dump is easier to look at with the human eye. Signed-off-by: Dave Chinner --- ltp/fsx.c | 28 +++++++++++++++------------- 1 files changed, 15 insertions(+), 13 deletions(-) diff --git a/ltp/fsx.c b/ltp/fsx.c index 41d7c20..62dea0b 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -252,14 +252,14 @@ logdump(void) int opnum; opnum = i+1 + (logcount/LOGSIZE)*LOGSIZE; - prt("%d(%d mod 256): ", opnum, opnum%256); + prt("%d(%3d mod 256): ", opnum, opnum%256); lp = &oplog[i]; if ((closeopen = lp->operation < 0)) lp->operation = ~ lp->operation; switch (lp->operation) { case OP_MAPREAD: - prt("MAPREAD\t0x%x thru 0x%x\t(0x%x bytes)", + prt("MAPREAD 0x%x thru 0x%x\t(0x%x bytes)", lp->args[0], lp->args[0] + lp->args[1] - 1, lp->args[1]); if (badoff >= lp->args[0] && badoff < @@ -275,7 +275,7 @@ logdump(void) prt("\t******WWWW"); break; case OP_READ: - prt("READ\t0x%x thru 0x%x\t(0x%x bytes)", + prt("READ 0x%x thru 0x%x\t(0x%x bytes)", lp->args[0], lp->args[0] + lp->args[1] - 1, lp->args[1]); if (badoff >= lp->args[0] && @@ -283,7 +283,7 @@ logdump(void) prt("\t***RRRR***"); break; case OP_WRITE: - prt("WRITE\t0x%x thru 0x%x\t(0x%x bytes)", + prt("WRITE 0x%x thru 0x%x\t(0x%x bytes)", lp->args[0], lp->args[0] + lp->args[1] - 1, lp->args[1]); if (lp->args[0] > lp->args[2]) @@ -304,14 +304,15 @@ logdump(void) break; case OP_FALLOCATE: /* 0: offset 1: length 2: where alloced */ - prt("FALLOCATE %s\tfrom 0x%x to 0x%x", - falloc_type[lp->args[2]], lp->args[0], lp->args[0] + lp->args[1]); + prt("FALLOC 0x%x thru 0x%x\t(0x%x bytes) %s", + lp->args[0], lp->args[0] + lp->args[1], + lp->args[1], falloc_type[lp->args[2]]); if (badoff >= lp->args[0] && badoff < lp->args[0] + lp->args[1]) prt("\t******FFFF"); break; case OP_PUNCH_HOLE: - prt("PUNCH HOLE\t0x%x thru 0x%x\t(0x%x bytes)", + prt("PUNCH 0x%x thru 0x%x\t(0x%x bytes)", lp->args[0], lp->args[0] + lp->args[1] - 1, lp->args[1]); if (badoff >= lp->args[0] && badoff < @@ -906,12 +907,12 @@ do_preallocate(unsigned offset, unsigned length) } /* - * last arg: - * 1: allocate past EOF - * 2: extending prealloc - * 3: interior prealloc + * last arg matches fallocate string array index in logdump: + * 0: allocate past EOF + * 1: extending prealloc + * 2: interior prealloc */ - log4(OP_FALLOCATE, offset, length, (end_offset > file_size) ? (keep_size ? 1 : 2) : 3); + log4(OP_FALLOCATE, offset, length, (end_offset > file_size) ? (keep_size ? 0 : 1) : 2); if (end_offset > file_size) { memset(good_buf + file_size, '\0', end_offset - file_size); @@ -924,7 +925,8 @@ do_preallocate(unsigned offset, unsigned length) if ((progressinterval && testcalls % progressinterval == 0) || (debug && (monitorstart == -1 || monitorend == -1 || end_offset <= monitorend))) - prt("%lu falloc\tfrom 0x%x to 0x%x\n", testcalls, offset, length); + prt("%lu falloc\tfrom 0x%x to 0x%x (0x%x bytes)\n", testcalls, + offset, offset + length, length); if (fallocate(fd, keep_size ? FALLOC_FL_KEEP_SIZE : 0, (loff_t)offset, (loff_t)length) == -1) { prt("fallocate: %x to %x\n", offset, length); prterr("do_preallocate: fallocate"); -- 1.7.5.1 From dave@fromorbit.com Thu Jul 7 19:54:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p680sD2g204531 for ; Thu, 7 Jul 2011 19:54:13 -0500 X-ASG-Debug-ID: 1310086451-560f03370000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 53510E8E8BF for ; Thu, 7 Jul 2011 17:54:11 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id mh3dIlxFcU1ZDI4r for ; Thu, 07 Jul 2011 17:54:11 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AssFAMdUFk55LCkBgWdsb2JhbABTmEyOcRUBARYmJcxUhjgEoxY Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:24:10 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1QezKb-0003RF-Qb for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:54:09 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1QezKH-0007yV-J9 for xfs@oss.sgi.com; Fri, 08 Jul 2011 10:53:49 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/4] xfstests: add mapped write fsx operations to 091 Subject: [PATCH 4/4] xfstests: add mapped write fsx operations to 091 Date: Fri, 8 Jul 2011 10:53:46 +1000 Message-Id: <1310086426-30605-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310086426-30605-1-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310086452 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3513 1.0000 -0.1483 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.15 X-Barracuda-Spam-Status: No, SCORE=-0.15 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68276 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The recent busted fsx updates caused fsx to execute fsx with direct IO and mmapped reads and writes on an XFS filesystem. The result uncovered a direct-IO write vs mmap read bug to do with EOF sub-block zeroing on the direct IO write. Hence whiel we do not recommend that pepole mix DIO with mmap on the same file, we should at least have tests that exercise it as they often show up other problems like this. Signed-off-by: Dave Chinner --- 091 | 3 +++ 091.out | 2 ++ 2 files changed, 5 insertions(+), 0 deletions(-) diff --git a/091 b/091 index a13d979..11b599e 100755 --- a/091 +++ b/091 @@ -88,6 +88,9 @@ kernel=`uname -r | sed -e 's/\(2\..\).*/\1/'` #run_fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t PSIZE -w PSIZE -Z -W run_fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W + run_fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z + run_fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z + # Commented out calls above are less likely to pick up issues, so # save time by commenting them out (leave 'em for manual testing). diff --git a/091.out b/091.out index 31bd25d..27ed1e3 100644 --- a/091.out +++ b/091.out @@ -5,3 +5,5 @@ fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W fsx -N 10000 -o 32768 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -R -W fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -W +fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z +fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z -- 1.7.5.1 From david@fromorbit.com Thu Jul 7 20:04:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6814P3p204820 for ; Thu, 7 Jul 2011 20:04:26 -0500 X-ASG-Debug-ID: 1310087063-1b70039f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 482CE17A23D9 for ; Thu, 7 Jul 2011 18:04:24 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id DvDA1bFdHhdf9Z0a for ; Thu, 07 Jul 2011 18:04:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvYDAMdUFk55LCkBgWdsb2JhbABTpz0VAQEWJiXMVA6GKgSjFg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 10:34:23 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QezUT-0003Sa-MH; Fri, 08 Jul 2011 11:04:21 +1000 Date: Fri, 8 Jul 2011 11:04:21 +1000 From: Dave Chinner To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 2/5] xfs: use a cursor for bulk AIL insertion Message-ID: <20110708010421.GD1026@dastard> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-3-git-send-email-david@fromorbit.com> <20110704212055.GA24500@infradead.org> <1310073976.1980.84.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310073976.1980.84.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310087065 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4132 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68277 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 04:26:16PM -0500, Alex Elder wrote: > On Mon, 2011-07-04 at 17:20 -0400, Christoph Hellwig wrote: > > FYI: the following patch implementing my suggested cleanups survived a > > few rounds of xfsqa: > > It also eliminates the concern I had about using the value > of "lip" after falling off the front of the list with a > list_for_each_entry_reverse(). A null pointer signifies > no entry has a lower lsn than the one provided, and > that covers both the "empty list" and the "lower than > all other lsn's in the list" cases. > > I think you should base your solution on Christoph's > approach, Dave. Already been updated to use hch's code ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 7 20:54:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p681sqKH206563 for ; Thu, 7 Jul 2011 20:54:52 -0500 X-ASG-Debug-ID: 1310090089-4f3000820000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C53CF17A24DA for ; Thu, 7 Jul 2011 18:54:49 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id vHnbacnJQTFEqZEh for ; Thu, 07 Jul 2011 18:54:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcDANtiFk55LCkBgWdsb2JhbABThEKiehUBARYmJYh7swiQYg6BHYQAgQ0EmmCINg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 11:24:48 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf0HG-0003XM-Js; Fri, 08 Jul 2011 11:54:46 +1000 Date: Fri, 8 Jul 2011 11:54:46 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: convert AIL cursors to use struct list_head Subject: Re: [PATCH 4/5] xfs: convert AIL cursors to use struct list_head Message-ID: <20110708015446.GE1026@dastard> References: <1309757260-5484-1-git-send-email-david@fromorbit.com> <1309757260-5484-5-git-send-email-david@fromorbit.com> <1310073315.1980.79.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1310073315.1980.79.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310090090 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68281 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 04:15:15PM -0500, Alex Elder wrote: > On Mon, 2011-07-04 at 15:27 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > The list of active AIL cursors uses a roll-your-own linked list with > > special casing for the AIL push cursor. Simplify this code by > > replacing the list with standard struct list_head lists, and use a > > separate list_head to track the active cursors so that the code can > > just treat the AIL push cursor (which is still embedded into the > > struct xfs_ail) as a generic cursor. > > > > Further, fix the duplicate push cursor initialisation that the > > special case handling was hiding, and clean up all the comments > > around the active cursor list handling. > > > > Signed-off-by: Dave Chinner > > I suggest a few comment changes below. I also have a > question about why the push cursor isn't treated > like any other cursors. I added a few bits of > commentary as well--you addressed a few things > I had been thinking about earlier. > > I guess I'm interested in your response before > signing off. > > -Alex > > > --- > > fs/xfs/xfs_trans_ail.c | 68 +++++++++++++++------------------------------- > > fs/xfs/xfs_trans_priv.h | 5 ++- > > 2 files changed, 25 insertions(+), 48 deletions(-) > > > > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > > index de7a52a..3b5b5e4 100644 > > --- a/fs/xfs/xfs_trans_ail.c > > +++ b/fs/xfs/xfs_trans_ail.c > > @@ -165,15 +165,11 @@ xfs_ail_max_lsn( > > /* > > * AIL traversal cursor initialisation. > > * > > - * The cursor keeps track of where our current traversal is up > > - * to by tracking the next Æ£tem in the list for us. However, for > > - * this to be safe, removing an object from the AIL needs to invalidate > > - * any cursor that points to it. hence the traversal cursor needs to > > - * be linked to the struct xfs_ail so that deletion can search all the > > - * active cursors for invalidation. > > - * > > - * We don't link the push cursor because it is embedded in the struct > > - * xfs_ail and hence easily findable. > > + * The cursor keeps track of where our current traversal is up to by tracking > > + * the next Æ£tem in the list for us. However, for this to be safe, removing an > ^ > What's up with the weird non-ASCII characters in your code? > > > + * object from the AIL needs to invalidate any cursor that points to it. hence > > + * the traversal cursor needs to be linked to the struct xfs_ail so that > > + * deletion can search all the active cursors for invalidation. > > */ > > STATIC void > > xfs_trans_ail_cursor_init( > > @@ -181,17 +177,13 @@ xfs_trans_ail_cursor_init( > > struct xfs_ail_cursor *cur) > > { > > cur->item = NULL; > > - if (cur == &ailp->xa_cursors) > > - return; > > - > > - cur->next = ailp->xa_cursors.next; > > - ailp->xa_cursors.next = cur; > > + INIT_LIST_HEAD(&cur->list); > > + list_add_tail(&cur->list, &ailp->xa_cursors); > > This is good. I was thinking as I looked at this earlier > that it would be nicer if newer cursors were added > to the end of the list. > > > } > > > > /* > > - * Get the next item in the traversal and advance the cursor. > > - * If the cursor was invalidated (inidicated by a lip of 1), > > - * restart the traversal. > > + * Get the next item in the traversal and advance the cursor. If the cursor > > + * was invalidated (inidicated by a lip of 1), restart the traversal. > indicated > > Actually, it's indicated by a low-order bit of 1. True. > Why is it > that you decided to just set the bit rather than overwrite > the item pointer? Just for the benefit of debugging? (That > is a good reason...) If not, I suggest defining an > XFS_ITEM_INVALID constant pointer rather than just using 1. Right, it was mainly for debugging. i.e. if we trip over the item we'll get a panic but we'll also be left with a corpse that has intact pointers which might aid finding the cause of the problem. > > - * invalidation and the end of the list when getting the next item > > + * Invalidate any cursor that is pointing to this item. This is called when an > > + * item is removed from the AIL. Any cursor pointing to this object is now > > + * invalid and the traversal needs to be terminated so it doesn't reference a > > + * freed object. We set the cursor item to a value of 1 so we can distinguish > > Fix this comment to reflect the use of the low bit rather than just 1. Will do. > > + * between an invalidation and the end of the list when getting the next item > > * from the cursor. > > */ > > STATIC void > > . . . > > > nt_t)cur->item | 1); > > @@ -416,7 +392,7 @@ xfs_ail_worker( > > struct xfs_ail *ailp = container_of(to_delayed_work(work), > > struct xfs_ail, xa_work); > > xfs_mount_t *mp = ailp->xa_mount; > > - struct xfs_ail_cursor *cur = &ailp->xa_cursors; > > + struct xfs_ail_cursor *cur = &ailp->xa_push_cursor; > > Is the push cursor defined in the ail structure just > so it's easier to find? The reason is that 99.9% of traversals are from the push code, so 99.9% of cursor lookups would be against that cursor. Embedding it like this avoided the need to add it to or remove it from a list, and meant that it would also always be cache hot when the ail structure was accessed. Realistically, that was probably a case of over-optimisation. > > > xfs_log_item_t *lip; > > xfs_lsn_t lsn; > > xfs_lsn_t target; > > @@ -428,7 +404,6 @@ xfs_ail_worker( > > > > spin_lock(&ailp->xa_lock); > > target = ailp->xa_target; > > - xfs_trans_ail_cursor_init(ailp, cur); > > I don't see why the push cursor should be treated > any differently from any others. If something gets > invalidated the push cursor needs to be notified > also, doesn't it? > > I must be missing something here... No, you are right. Now that the list is generic, there is no reason to keep the cursor in the AIL structure - each push goes back to the start of the AIL to begin again, so the only reason for keeping it in the AIL structure would be if it was cached across multiple push traversals. I don't think we gain anything by doing that, so we can just treat it like all other stack based cursors. I'll update the patch appropriately. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 7 22:23:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p683NvBr209140 for ; Thu, 7 Jul 2011 22:23:57 -0500 X-ASG-Debug-ID: 1310095434-586701d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E315517A2DBB for ; Thu, 7 Jul 2011 20:23:54 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id MCdBsAbk0sfjDbeB for ; Thu, 07 Jul 2011 20:23:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak0EAJF3Fk55LCkBgWdsb2JhbABTp0EVAQEWJiXNCg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 12:53:53 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf1fT-0003eM-RL; Fri, 08 Jul 2011 13:23:51 +1000 Date: Fri, 8 Jul 2011 13:23:51 +1000 From: Dave Chinner To: Paul Nienaber Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_quota: bug: traverses bind mountpoints Subject: Re: xfs_quota: bug: traverses bind mountpoints Message-ID: <20110708032351.GF1026@dastard> References: <4E161B1D.90301@uvic.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E161B1D.90301@uvic.ca> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310095435 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0137 1.0000 -1.9320 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.93 X-Barracuda-Spam-Status: No, SCORE=-1.93 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68287 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 01:46:21PM -0700, Paul Nienaber wrote: > So, much like coreutils' du (which also shouldn't), xfs_quota > traverses bind mountpoints both when doing 'project -s' and 'project > -C', and probably also 'project -c' although I haven't tested it. > Testcase and output follows. How is a userspace traversal supposed to detect the fact it crosses a bind mount when it enters a directory? If you bind a directory from the same filesystem, stat(2) on the file returns -identical- information regardless of whether you are inside or outside the bind mount. So the normal mechanisms (e.g. st_dev changes) for detecting such a mount point traversal simply don't work. So the first question is whether we should be trying to detect bind mounts within the same filesystem and handling them for project quotas? I don't know the answer to that. Indeed: $ find . . ./projects ./projects/foo ./projects/foo/chroot find: File system loop detected; `./projects/foo/chroot/scratch' is part of the same file system loop as `.'. ./projects/bar ./projects/bar/foo ./baz find has some way of detecting such cases, but it doesn't do it via any special syscalls, nor does the newfstatat(AT_SYMLINK_NOFOLLOW) call it does return an error. And it does it regardless of whether the -xdev option is specified or not. So it must have some form of internal logic for detecting such loopy filesystem constructs. However, operations such as "chmod -R" do *not* detect this situation: $ sudo chown -R -v dave:dave * ownership of `baz' retained as dave:dave changed ownership of `projects/foo/chroot/scratch/projects/foo/chroot/scratch' to dave:dave changed ownership of `projects/foo/chroot/scratch/projects/foo/chroot' to dave:dave changed ownership of `projects/foo/chroot/scratch/projects/foo' to dave:dave changed ownership of `projects/foo/chroot/scratch/projects/bar/foo' to dave:dave changed ownership of `projects/foo/chroot/scratch/projects/bar' to dave:dave changed ownership of `projects/foo/chroot/scratch/projects' to dave:dave ownership of `projects/foo/chroot/scratch/baz' retained as dave:dave changed ownership of `projects/foo/chroot/scratch' to dave:dave changed ownership of `projects/foo/chroot' to dave:dave changed ownership of `projects/foo' to dave:dave ownership of `projects/bar/foo' retained as dave:dave ownership of `projects/bar' retained as dave:dave changed ownership of `projects' to dave:dave It's totally unclear what the behaviour of xfs_quota should be, because operations that change user and group quotas are completely ignorant of bind mounts. So if we decide bind mounts are important to detect, the second question is how do we detect bind mount point traversals in a reliable manner that doesn't involve adding significant overhead to the directory traversal code? I don't know the answer to that, either, and if you care about this enough I guess you'll go and look up what find does and tell us about it ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 7 22:42:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p683gNd4209693 for ; Thu, 7 Jul 2011 22:42:23 -0500 X-ASG-Debug-ID: 1310096540-4c7501930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C628552D9 for ; Thu, 7 Jul 2011 20:42:21 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id wMnW7lyATfipFoNX for ; Thu, 07 Jul 2011 20:42:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak0EAHx7Fk55LCkBgWdsb2JhbABTp0EVAQEWJiXMfg6GKgSjIg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 08 Jul 2011 13:12:20 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf1xK-0003fl-W1; Fri, 08 Jul 2011 13:42:19 +1000 Date: Fri, 8 Jul 2011 13:42:18 +1000 From: Dave Chinner To: Laurent CARON Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Number of ACLs Subject: Re: Number of ACLs Message-ID: <20110708034218.GG1026@dastard> References: <4E15AA1A.3090802@lncsa.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E15AA1A.3090802@lncsa.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310096542 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68287 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 02:44:10PM +0200, Laurent CARON wrote: > Hi, > > I'd like to know if it is possible in a simple & safe way to > increase the number of supported ACLs on an already existing FS. > > xfs_acl.h: > #define XFS_ACL_MAX_ENTRIES 25 > > Changing XFS_ACL_MAX_ENTRIES to something higher should do the > trick, but will it be safe: ie: will I risk corrupting the FS this > way ? It's effectively an on-disk format change. If you add more than 25 ACLs and then downgrade kernel, you won't be able to access those ACLs. Hmmm, even worse, looking at the code it would probably cause a buffer overrun (memory corupting crash) as the old kernels only allocate an array large enough to hold 25 ACLs and the xfs_acl_from_disk() function implicitly trusts the number of ACLs in the xattr fits into the array.... So, that definitely means larger number of ACLs requires a feature bit in the superblock so that once you go over 25 ACLs you can't use that filesystem on a kernel that does not support >25 ACLs. i.e. it's a typical on-disk versioning change that requires a bunch of work in both kernel and userspace to support a new feature superblock feature bit. In this case, the feature bit would only need to be set by the kernel on existing filesystems when you first go over 25 ACLs on an inode, so most people wouldn't even care about the change.... An example for this dynamic setting of a feature bit is the code to dynamically indicate the filesystem has version 2 inodes in it. See xfs_bump_ino_vers2() and what it does to add a feature bit when that transition occurs... Cheers, Dave. -- Dave Chinner david@fromorbit.com From phox@phox.ca Thu Jul 7 23:48:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p684mSRc213656 for ; Thu, 7 Jul 2011 23:48:28 -0500 X-ASG-Debug-ID: 1310100506-01d800d50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E049E8E1E7 for ; Thu, 7 Jul 2011 21:48:26 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id HD8GgznFtGZU9Di5 for ; Thu, 07 Jul 2011 21:48:26 -0700 (PDT) Received: by iyf40 with SMTP id 40so1541173iyf.26 for ; Thu, 07 Jul 2011 21:48:26 -0700 (PDT) Received: by 10.42.161.198 with SMTP id u6mr1634860icx.115.1310100506174; Thu, 07 Jul 2011 21:48:26 -0700 (PDT) Received: from frankenbook.local (d50-92-223-199.bchsia.telus.net [50.92.223.199]) by mx.google.com with ESMTPS id w11sm5839004ibw.7.2011.07.07.21.48.24 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 07 Jul 2011 21:48:25 -0700 (PDT) Sender: Paul Nienaber Message-ID: <4E168C16.6000408@uvic.ca> Date: Thu, 07 Jul 2011 21:48:22 -0700 From: Paul Nienaber User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_quota: bug: traverses bind mountpoints Subject: Re: xfs_quota: bug: traverses bind mountpoints References: <4E161B1D.90301@uvic.ca> <20110708032351.GF1026@dastard> In-Reply-To: <20110708032351.GF1026@dastard> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1310100507 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68292 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I would definitely agree that this is perhaps perhaps quite nonsensical in the case of user/group quotas. However, a project quota is conceptually a quota for "files in a directory and its subdirectories on a particular filesystem", and I would argue that, regardless of bindmounts, / is never a subdirectory of /foo, and this is where I think the change in behaviour should be. There's also the somewhat-grey area of how 'project -C' should behave, and I suppose the simplest and most sensible answer there is "however 'project -s' and 'project -c' behave", as that's both at least somewhat sensible and the least likely to confuse people. I'd be happy to go digging at find at some point soon. cheers ~Paul On 11-07-07 8:23 PM, Dave Chinner wrote: > On Thu, Jul 07, 2011 at 01:46:21PM -0700, Paul Nienaber wrote: >> So, much like coreutils' du (which also shouldn't), xfs_quota >> traverses bind mountpoints both when doing 'project -s' and 'project >> -C', and probably also 'project -c' although I haven't tested it. >> Testcase and output follows. > How is a userspace traversal supposed to detect the fact it crosses > a bind mount when it enters a directory? If you bind a directory > from the same filesystem, stat(2) on the file returns -identical- > information regardless of whether you are inside or outside the bind > mount. So the normal mechanisms (e.g. st_dev changes) for detecting > such a mount point traversal simply don't work. > > So the first question is whether we should be trying to detect bind > mounts within the same filesystem and handling them for project > quotas? I don't know the answer to that. > > Indeed: > > $ find . > . > ./projects > ./projects/foo > ./projects/foo/chroot > find: File system loop detected; `./projects/foo/chroot/scratch' is > part of the same file system loop as `.'. > ./projects/bar > ./projects/bar/foo > ./baz > > find has some way of detecting such cases, but it doesn't do it via > any special syscalls, nor does the newfstatat(AT_SYMLINK_NOFOLLOW) > call it does return an error. And it does it regardless of whether > the -xdev option is specified or not. So it must have some form of > internal logic for detecting such loopy filesystem constructs. > > However, operations such as "chmod -R" do *not* detect this > situation: > > $ sudo chown -R -v dave:dave * > ownership of `baz' retained as dave:dave > changed ownership of `projects/foo/chroot/scratch/projects/foo/chroot/scratch' to dave:dave > changed ownership of `projects/foo/chroot/scratch/projects/foo/chroot' to dave:dave > changed ownership of `projects/foo/chroot/scratch/projects/foo' to dave:dave > changed ownership of `projects/foo/chroot/scratch/projects/bar/foo' to dave:dave > changed ownership of `projects/foo/chroot/scratch/projects/bar' to dave:dave > changed ownership of `projects/foo/chroot/scratch/projects' to dave:dave > ownership of `projects/foo/chroot/scratch/baz' retained as dave:dave > changed ownership of `projects/foo/chroot/scratch' to dave:dave > changed ownership of `projects/foo/chroot' to dave:dave > changed ownership of `projects/foo' to dave:dave > ownership of `projects/bar/foo' retained as dave:dave > ownership of `projects/bar' retained as dave:dave > changed ownership of `projects' to dave:dave > > It's totally unclear what the behaviour of xfs_quota should be, > because operations that change user and group quotas are completely > ignorant of bind mounts. > > So if we decide bind mounts are important to detect, the second > question is how do we detect bind mount point traversals in a > reliable manner that doesn't involve adding significant overhead to > the directory traversal code? I don't know the answer to that, > either, and if you care about this enough I guess you'll go and look > up what find does and tell us about it ;) > > Cheers, > > Dave. From david@fromorbit.com Fri Jul 8 03:01:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6881fwl225575 for ; Fri, 8 Jul 2011 03:01:41 -0500 X-ASG-Debug-ID: 1310112098-0c4800270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 232D61E5D6A4 for ; Fri, 8 Jul 2011 01:01:39 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id IHdsaXjZXRVPnbKV for ; Fri, 08 Jul 2011 01:01:39 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak0EALa3Fk55LCkBgWdsb2JhbABTp0IVAQEWJiWIe8M4DoMYgxIEmmyINg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 17:31:37 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf60F-0004B1-KF; Fri, 08 Jul 2011 18:01:35 +1000 Date: Fri, 8 Jul 2011 18:01:35 +1000 From: Dave Chinner To: Paul Nienaber Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_quota: bug: traverses bind mountpoints Subject: Re: xfs_quota: bug: traverses bind mountpoints Message-ID: <20110708080135.GH1026@dastard> References: <4E161B1D.90301@uvic.ca> <20110708032351.GF1026@dastard> <4E168C16.6000408@uvic.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E168C16.6000408@uvic.ca> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310112100 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68305 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 09:48:22PM -0700, Paul Nienaber wrote: > I would definitely agree that this is perhaps perhaps quite > nonsensical in the case of user/group quotas. However, a project > quota is conceptually a quota for "files in a directory and its > subdirectories on a particular filesystem", No, project quota works exactly like user and group quotas - every file in a project group has the same project ID stored in the inode, just like uid and gid are stored in the inode. They do not rely on directory structure at all, and you can add any file to a project anywhere in the filesystem simply by changing it's project ID. Project quotas can be used to -implement- directory tree quotas because there is another flag in the inode that tells directories that children should inherit the projid of the parent directory at creation time. That's the actual feature that allows project quotas to be used for directory tree quotas - it's entirely independent of the basic functionality of accounting and enforcing project quotas based on the projid in each inode. That's why it is not at all clear how bind mounts should be treated. On one hand they should be treated identically to user and group quotas, and on the other hand bind mounts can completely screw up directory tree quotas. > and I would argue that, > regardless of bindmounts, / is never a subdirectory of /foo, and > this is where I think the change in behaviour should be. You're attempting to cross recursive bind mounts with directory tree quota and worse, pointing the bind mount inside the directory tree to a parent directory outside the directory tree the quota applies to. IOWs, your directory structure disappears up it's own fundamental orifice in a manner that is very difficult to detect (did Oroborus know that it was eating it's own tail?). As such I don't think there is a sane set of semantics that we can apply consistently in the XFS code in both userspace and kernel code when it comes to directory tree quotas and bind mounts. The simple answer is: Just Don't Do It. > There's > also the somewhat-grey area of how 'project -C' should behave, and I > suppose the simplest and most sensible answer there is "however > 'project -s' and 'project -c' behave", as that's both at least > somewhat sensible and the least likely to confuse people. I'd be > happy to go digging at find at some point soon. Like I said above, there's also consistency with every other application that does traversal for accounting purposes (e.g. du). If you want to avoid traversals moving across bind mounts (especially recursive bind mounts), I think we need a syscall flag similar to AT_SYMLINK_NOFOLLOW for the kernel to detect and prevent such traversal in a consistent manner. As such, that's not a project quota problem - that's a generic, VFS behaviour issue. That's where I'd recommend trying to solve the bind mount traversal problem, not hack something into xfs_quota.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 04:55:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p689t2uC231696 for ; Fri, 8 Jul 2011 04:55:03 -0500 X-ASG-Debug-ID: 1310118899-186a01e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 51BB0E9433D for ; Fri, 8 Jul 2011 02:55:00 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id NZPog5wDupvYkE1x for ; Fri, 08 Jul 2011 02:55:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtsCAEfQFk55LCkBgWdsb2JhbABThEKjABUBARYmJYh7swSQaA6BHYQAgQ0EmmyINg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:24:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf7lw-0004M6-G6; Fri, 08 Jul 2011 19:54:56 +1000 Date: Fri, 8 Jul 2011 19:54:56 +1000 From: Dave Chinner To: Johannes Weiner Cc: Wu Fengguang , Christoph Hellwig , Mel Gorman , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110708095456.GI1026@dastard> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706151229.GA1998@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110706151229.GA1998@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310118901 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68312 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 06, 2011 at 05:12:29PM +0200, Johannes Weiner wrote: > On Mon, Jul 04, 2011 at 01:25:34PM +1000, Dave Chinner wrote: > > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > We have to remember that memory reclaim is doing LRU reclaim and the > > flusher threads are doing "oldest first" writeback. IOWs, both are trying > > to operate in the same direction (oldest to youngest) for the same > > purpose. The fundamental problem that occurs when memory reclaim > > starts writing pages back from the LRU is this: > > > > - memory reclaim has run ahead of IO writeback - > > > > The LRU usually looks like this: > > > > oldest youngest > > +---------------+---------------+--------------+ > > clean writeback dirty > > ^ ^ > > | | > > | Where flusher will next work from > > | Where kswapd is working from > > | > > IO submitted by flusher, waiting on completion > > > > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > > got ahead of writeback without being throttled - it's passed over > > all the pages currently under writeback and is trying to write back > > pages that are *newer* than what writeback is working on. IOWs, it > > starts trying to do the job of the flusher threads, and it does that > > very badly. > > > > The $100 question is ∗why is it getting ahead of writeback*? > > Unless you have a purely sequential writer, the LRU order is - at > least in theory - diverging away from the writeback order. Which is the root cause of the IO collapse that writeback from the LRU causes, yes? > According to the reasoning behind generational garbage collection, > they should in fact be inverse to each other. The oldest pages still > in use are the most likely to be still needed in the future. > > In practice we only make a generational distinction between used-once > and used-many, which manifests in the inactive and the active list. > But still, when reclaim starts off with a localized writer, the oldest > pages are likely to be at the end of the active list. Yet the file pages on the active list are unlikely to be dirty - overwrite-in-place cache hot workloads are pretty scarce in my experience. hence writeback of dirty pages from the active LRU is unlikely to be a problem. That leaves all the use-once pages cycling through the inactive list. The oldest pages on this list are the ones that get reclaimed, and if we are getting lots of dirty pages here it seems pretty clear that memory demand is mostly for pages being rapidly dirtied. In which case, trying to speed up the rate at which they are cleaned by issuing IO is only effective if there is no IO already in progress. Who knows if Io is already in progress? The writeback subsystem.... > So pages from the inactive list are likely to be written in the right > order, but at the same time active pages are even older, thus written > before them. Memory reclaim starts with the inactive pages, and this > is why it gets ahead. All right, if the design is such that you can't avoid having reclaim write back dirty pages as it encounters them on the inactive LRU, should the dirty pages even be on that LRU? That is, dirty pages cannot be reclaimed immediately but they are intertwined with pages that can be reclaimed immediately. We really want to reclaim pages that can be reclaimed quickly while not blocking on or continually having to skip over pages that cannot be reclaimed. So why not make a distinction between clean and dirty file pages on the inactive list? That is, consider dirty pages to still be "in use" and "owned" by the writeback subsystem. while pages are dirty they are kept on a separate "dirty file page LRU" that memory reclaim does not ever touch unless it runs out of clean pages on the inactive list to reclaim. And then when it runs out of clean pages, it can go find pages under writeback on the dirty list and block on them before going back to reclaiming off the clean list.... And given that cgroups have their own LRUs for reclaim now, this problem of dirty pages being written from the LRUs has a much larger scope. It's not just whether the global LRU reclaim is hitting dirty pages, it's a per-cgroup problem and they are much more likely to have low memory limits that lead to such problems. And concurrently at that, too. Writeback simply does't scale to having multiple sources of random page IO being despatched concurrently. > Then there is also the case where a fast writer pushes dirty pages to > the end of the LRU list, of course, but you already said that this is > not applicable to your workload. > > My point is that I don't think it's unexpected that dirty pages come > off the inactive list in practice. It just sucks how we handle them. Exactly what I've been saying. And what I'm also trying to say is the way to fix the "we do shitty IO on dirty pages" problem is *not to do IO*. That's -exactly- why the IO-less write throttling is a significant improvement: we've turned shitty IO into good IO by *waiting for IO* during throttling rather than submitting IO. Fundamentally, scaling to N IO waiters is far easier and more efficient than scaling to N IO submitters. All I'm asking is that you apply that same principle to memory reclaim, please. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:18:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AIqhX233327 for ; Fri, 8 Jul 2011 05:18:53 -0500 X-ASG-Debug-ID: 1310120330-0c5002a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3E1D81E5D6C1 for ; Fri, 8 Jul 2011 03:18:50 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id TUfwjFoMHvvQmhr7 for ; Fri, 08 Jul 2011 03:18:50 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtsCAFTXFk55LCkBgWdsb2JhbABThEKjABUBARYmJbtikGQOgR2EAIENBKMi Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:48:50 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf892-0004Ov-KG; Fri, 08 Jul 2011 20:18:48 +1000 Date: Fri, 8 Jul 2011 20:18:48 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/28] patch queue for Linux 3.1, V3 Subject: Re: [PATCH 00/28] patch queue for Linux 3.1, V3 Message-ID: <20110708101848.GJ1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110707110535.205001532@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120332 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0251 1.0000 -1.8583 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.86 X-Barracuda-Spam-Status: No, SCORE=-1.86 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:35AM -0400, Christoph Hellwig wrote: > This version addresses the review comments. The biggest change is that > the byteswaps of constants are now moved into a different patch and > applied more broadly. Not sure you've noticed these new warnings from the patchset (gcc 4.4.4-6 debian): fs/xfs/xfs_inode.c: In function ‘xfs_itruncate_data’: fs/xfs/xfs_inode.c:1352: warning: unused variable ‘mp’ fs/xfs/xfs_inode_item.c: In function ‘xfs_inode_item_unlock’: fs/xfs/xfs_inode_item.c:632: warning: unused variable ‘ip’ They were in the previous version, too, so they are not new to this iteration. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:19:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AJILw233357 for ; Fri, 8 Jul 2011 05:19:18 -0500 X-ASG-Debug-ID: 1310120356-0c4d02c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3926517A5260 for ; Fri, 8 Jul 2011 03:19:17 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id RSyIOR3AYd6YeL7p for ; Fri, 08 Jul 2011 03:19:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCAFTXFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMRg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:49:16 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf89T-0004P4-Dy; Fri, 08 Jul 2011 20:19:15 +1000 Date: Fri, 8 Jul 2011 20:19:15 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com, Alex Elder X-ASG-Orig-Subj: Re: [PATCH 02/28] xfs: re-enable non-blocking behaviour in xfs_map_blocks Subject: Re: [PATCH 02/28] xfs: re-enable non-blocking behaviour in xfs_map_blocks Message-ID: <20110708101915.GK1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110640.863389024@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110640.863389024@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120358 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4192 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:37AM -0400, Christoph Hellwig wrote: > The non-blockig behaviour in xfs_vm_writepage currently is conditional on > having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. > The latter used to be used by both pdflush, kswapd and a few other places > in older kernels, but has been fading out starting with the introduction > of the per-bdi flusher threads. > > Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back > the behaviour we want. > > Signed-off-by: Christoph Hellwig > Signed-off-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:20:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AK9AT233396 for ; Fri, 8 Jul 2011 05:20:09 -0500 X-ASG-Debug-ID: 1310120407-0c5702e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F96917A52D0 for ; Fri, 8 Jul 2011 03:20:08 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id XnpzOHSZJskQGOBG for ; Fri, 08 Jul 2011 03:20:08 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCAFTXFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMRg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:50:07 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf8AI-0004PC-6o; Fri, 08 Jul 2011 20:20:06 +1000 Date: Fri, 8 Jul 2011 20:20:06 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 11/28] xfs: kill the unused struct xfs_sync_work Subject: Re: [PATCH 11/28] xfs: kill the unused struct xfs_sync_work Message-ID: <20110708102006.GL1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110642.697024790@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110642.697024790@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120409 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0199 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68315 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:46AM -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig > Reviewed-by: Alex Elder > > Index: xfs/fs/xfs/linux-2.6/xfs_sync.h > =================================================================== > --- xfs.orig/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:30.203125879 +0200 > +++ xfs/fs/xfs/linux-2.6/xfs_sync.h 2011-06-30 15:47:39.093125768 +0200 > @@ -21,14 +21,6 @@ > struct xfs_mount; > struct xfs_perag; > > -typedef struct xfs_sync_work { > - struct list_head w_list; > - struct xfs_mount *w_mount; > - void *w_data; /* syncer routine argument */ > - void (*w_syncer)(struct xfs_mount *, void *); > - struct completion *w_completion; > -} xfs_sync_work_t; > - > #define SYNC_WAIT 0x0001 /* wait for i/o to complete */ > #define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ Oops, my fault! Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:20:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AKh6d233422 for ; Fri, 8 Jul 2011 05:20:43 -0500 X-ASG-Debug-ID: 1310120441-1c2d02320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 41C7914FFA7C for ; Fri, 8 Jul 2011 03:20:41 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id vrlDybB3aLFvFLpN for ; Fri, 08 Jul 2011 03:20:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCAFTXFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMRg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:50:40 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf8Ap-0004PJ-Jn; Fri, 08 Jul 2011 20:20:39 +1000 Date: Fri, 8 Jul 2011 20:20:39 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 17/28] xfs: kill struct xfs_dir2_block Subject: Re: [PATCH 17/28] xfs: kill struct xfs_dir2_block Message-ID: <20110708102039.GM1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110643.885126908@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110643.885126908@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120442 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0383 1.0000 -1.7740 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68314 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:52AM -0400, Christoph Hellwig wrote: > Remove the confusing xfs_dir2_block structure. It is supposed to describe > an XFS dir2 block format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. In addition to accessing the fixed offset header structure it was > only used to get a pointer to the first dir or unused entry after it, > which can be trivially replaced by pointer arithmetics on the header > pointer. For most users that is actually more natural anyway, as they > don't use a typed pointer but rather a character pointer for further > arithmetics. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:21:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68ALPRB233463 for ; Fri, 8 Jul 2011 05:21:25 -0500 X-ASG-Debug-ID: 1310120483-1ce802150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F26F714FFA84 for ; Fri, 8 Jul 2011 03:21:24 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id zXDYiPNxu88NiE8p for ; Fri, 08 Jul 2011 03:21:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCAFTXFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMRg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:51:23 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf8BW-0004PR-AQ; Fri, 08 Jul 2011 20:21:22 +1000 Date: Fri, 8 Jul 2011 20:21:22 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 21/28] xfs: cleanup struct xfs_dir2_leaf Subject: Re: [PATCH 21/28] xfs: cleanup struct xfs_dir2_leaf Message-ID: <20110708102122.GN1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110644.667342204@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110644.667342204@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120484 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0020 1.0000 -2.0078 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68314 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:56AM -0400, Christoph Hellwig wrote: > Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe > an XFS dir2 leaf format btree block, but due to the variable sized nature > of almost all elements in it it can't actuall do anything close to that > job. Remove the members that are after the first variable sized array, > given that they could only be used for sizeof expressions that can as well > just use the underlying types directly, and make the ents array a real > C99 variable sized array. > > Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf > entry which already was convoluted somewhat readable after using the > longer type names in the sizeof expressions. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Alex Elder Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:22:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AMMjf233499 for ; Fri, 8 Jul 2011 05:22:22 -0500 X-ASG-Debug-ID: 1310120540-1be0022f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5855F14FFA8F for ; Fri, 8 Jul 2011 03:22:20 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 8CBFCtz8GLN4AaEO for ; Fri, 08 Jul 2011 03:22:20 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCAFTXFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMRg6GKgSabIg2 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:52:20 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf8CR-0004Pw-2q; Fri, 08 Jul 2011 20:22:19 +1000 Date: Fri, 8 Jul 2011 20:22:19 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 22/28] xfs: use generic get_unaligned_beXX helpers Subject: Re: [PATCH 22/28] xfs: use generic get_unaligned_beXX helpers Message-ID: <20110708102218.GO1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110644.847340796@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110644.847340796@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120541 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0121 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.41 X-Barracuda-Spam-Status: No, SCORE=-1.41 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68314 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:57AM -0400, Christoph Hellwig wrote: > Switch the shortform directory code over to use the generic > get_unaligned_beXX helpers instead of reinventing them. As a result > kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into > xfs_linux.h. > > Signed-off-by: Christoph Hellwig > Reviewed-by: Alex Elder The issues with the masking can be deal with separately. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 8 05:26:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68AQXcY233984 for ; Fri, 8 Jul 2011 05:26:33 -0500 X-ASG-Debug-ID: 1310120791-438d01e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EAF5756882 for ; Fri, 8 Jul 2011 03:26:31 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id cpsH8DnR5yCJ3XzB for ; Fri, 08 Jul 2011 03:26:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtoCANraFk55LCkBgWdsb2JhbABTp0IVAQEWJiXMEg6GKgSjIg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 08 Jul 2011 19:56:30 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qf8GT-0004QB-Oq; Fri, 08 Jul 2011 20:26:29 +1000 Date: Fri, 8 Jul 2011 20:26:29 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 23/28] xfs: byteswap constants instead of variables Subject: Re: [PATCH 23/28] xfs: byteswap constants instead of variables Message-ID: <20110708102629.GP1026@dastard> References: <20110707110535.205001532@bombadil.infradead.org> <20110707110645.046387162@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110707110645.046387162@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310120792 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2100 1.0000 -0.7756 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.78 X-Barracuda-Spam-Status: No, SCORE=-0.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68315 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 07, 2011 at 07:05:58AM -0400, Christoph Hellwig wrote: > Micro-optimize various comparisms by always byteswapping the constant > instead of the variable, which allows to do the swap at compile instead > of runtime. > > Signed-off-by: Christoph Hellwig Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From BATV+03a5ceb243e9838f16e0+2875+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 8 07:28:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68CSu89242758 for ; Fri, 8 Jul 2011 07:28:56 -0500 X-ASG-Debug-ID: 1310128134-4373036b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0F00E52720D for ; Fri, 8 Jul 2011 05:28:54 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id PVv4bPRtuS6HTUzs for ; Fri, 08 Jul 2011 05:28:54 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QfAAu-0001qd-66; Fri, 08 Jul 2011 12:28:52 +0000 Date: Fri, 8 Jul 2011 08:28:52 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/28] patch queue for Linux 3.1, V3 Subject: Re: [PATCH 00/28] patch queue for Linux 3.1, V3 Message-ID: <20110708122852.GB3289@infradead.org> References: <20110707110535.205001532@bombadil.infradead.org> <20110708101848.GJ1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110708101848.GJ1026@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310128135 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68318 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 08, 2011 at 08:18:48PM +1000, Dave Chinner wrote: > On Thu, Jul 07, 2011 at 07:05:35AM -0400, Christoph Hellwig wrote: > > This version addresses the review comments. The biggest change is that > > the byteswaps of constants are now moved into a different patch and > > applied more broadly. > > Not sure you've noticed these new warnings from the patchset > (gcc 4.4.4-6 debian): > > fs/xfs/xfs_inode.c: In function ???xfs_itruncate_data???: > fs/xfs/xfs_inode.c:1352: warning: unused variable ???mp??? > fs/xfs/xfs_inode_item.c: In function ???xfs_inode_item_unlock???: > fs/xfs/xfs_inode_item.c:632: warning: unused variable ???ip??? > > They were in the previous version, too, so they are not new to this > iteration. Oh, it's both variables used only in DEBUG builds. I'll update the series to fix it up. From info@ung.org Fri Jul 8 09:10:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.0 required=5.0 tests=BAYES_99 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68EAj4C246975 for ; Fri, 8 Jul 2011 09:10:46 -0500 X-ASG-Debug-ID: 1310134243-75f5002d0000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.oa-bologna.inaf.it (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6968D1EEA947 for ; Fri, 8 Jul 2011 07:10:43 -0700 (PDT) Received: from mail.oa-bologna.inaf.it (hermes.bo.astro.it [137.204.65.4]) by cuda.sgi.com with ESMTP id 8E6uZFffkVMOlICZ for ; Fri, 08 Jul 2011 07:10:43 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by mail.oa-bologna.inaf.it (Postfix) with ESMTP id A4010889D8DA; Fri, 8 Jul 2011 16:07:01 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at oa-bologna.inaf.it Received: from mail.oa-bologna.inaf.it ([127.0.0.1]) by localhost (hermes.bo.astro.it [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uCBdmnFrBIQG; Fri, 8 Jul 2011 16:07:01 +0200 (CEST) Received: from mail.oabo.inaf.it (localhost [127.0.0.1]) by mail.oa-bologna.inaf.it (Postfix) with ESMTP id 74730889D8A3; Fri, 8 Jul 2011 16:07:00 +0200 (CEST) Received: from 74.115.6.20 (SquirrelMail authenticated user enrica.bellocchi) by mail.oabo.inaf.it with HTTP; Fri, 8 Jul 2011 16:07:00 +0200 Message-ID: <243d0a738345a6d61f8618e9d144362a.squirrel@mail.oabo.inaf.it> Date: Fri, 8 Jul 2011 16:07:00 +0200 X-ASG-Orig-Subj: PROPOSAL Subject: PROPOSAL From: "Brown, Jeanette" Reply-To: b.jeanette@blumail.org User-Agent: SquirrelMail/1.4.20 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal To: undisclosed-recipients:; X-Barracuda-Connect: hermes.bo.astro.it[137.204.65.4] X-Barracuda-Start-Time: 1310134244 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5463 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.45 X-Barracuda-Spam-Status: No, SCORE=1.45 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA620a, BSF_SC7_SA298e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68322 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_SC0_SA620a Custom Rule SA620a 0.20 BSF_SC7_SA298e Custom Rule SA298e X-Virus-Status: Clean I am Mrs. Jeanette Brown. I have a Business for you Contact me on b.jeanette@blumail.org From aelder@sgi.com Fri Jul 8 09:34:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68EYUEU248095 for ; Fri, 8 Jul 2011 09:34:31 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5C8D0AC004; Fri, 8 Jul 2011 07:34:27 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p68EYQbL020703; Fri, 8 Jul 2011 09:34:26 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p68EYQcs020701; Fri, 8 Jul 2011 09:34:26 -0500 From: Alex Elder Message-Id: <201107081434.p68EYQcs020701@stout.americas.sgi.com> Date: Fri, 08 Jul 2011 09:34:26 -0500 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update for 3.0-rc7 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Linus, please pull the following XFS fix in for 3.0-rc7 (or final). Previously, a dubious trick was used to avoid a race involving inodes in the active item list. This fix is pretty simple, and the result is a much cleaner and more direct (and reliable) solution to the problem. It looks like I missed the last -next build for a while. But I have done a merge of my branch with your current master branch (shown below). The result has no conflicts and builds and tests just fine. Thank you. -Alex The following changes since commit f1bb20a8365f6753e0f7b6e94981ca2b662bae13: Merge branch 'for-30-rc5/all-i2c' of git://git.fluff.org/bjdooks/linux (2011-07-07 16:29:29 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Dave Chinner (1): xfs: unpin stale inodes directly in IOP_COMMITTED fs/xfs/xfs_inode_item.c | 14 ++++++++------ fs/xfs/xfs_trans.c | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) From linux-mtd-bounces+jcl=develtech.com@lists.infradead.org Fri Jul 8 11:06:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=BAYES_00,DATE_IN_PAST_96_XX, J_CHICKENPOX_25,J_CHICKENPOX_26,J_CHICKENPOX_66,J_CHICKENPOX_73 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68G6JDL252208 for ; Fri, 8 Jul 2011 11:06:19 -0500 X-ASG-Debug-ID: 1310141174-760901f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailrelay004.isp.belgacom.be (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D35951EEACD3; Fri, 8 Jul 2011 09:06:15 -0700 (PDT) Received: from mailrelay004.isp.belgacom.be (mailrelay004.isp.belgacom.be [195.238.6.170]) by cuda.sgi.com with ESMTP id GbEzkDnzp0Aucr0I; Fri, 08 Jul 2011 09:06:15 -0700 (PDT) X-Belgacom-Dynamic: yes X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmsJALcpF05bsyHL/2dsb2JhbABSMKcXeIh9whaDNYMDBIdMiHaCCpBi Received: from 203.33-179-91.adsl-dyn.isp.belgacom.be (HELO exchange.develtech.com) ([91.179.33.203]) by relay.skynet.be with ESMTP; 08 Jul 2011 18:06:13 +0200 Delivered-To: jcl@develtech.com From: Eric Paris X-ASG-Orig-Subj: [PATCH] fs/vfs/security: pass last path component to LSM on inode creation Subject: [PATCH] fs/vfs/security: pass last path component to LSM on inode creation To: , , , , , , , , , , , Date: Wed, 8 Dec 2010 14:45:27 -0500 Message-ID: <20101208194527.13537.77202.stgit@paris.rdu.redhat.com> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-CRM114-Version: 20090807-BlameThorstenAndJenny ( TRE 0.7.6 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20101208_144727_266446_94D25006 X-CRM114-Status: GOOD ( 24.68 ) CC: , , , , , , , , , , , , , , , , , , , , , , , , , , X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: Errors-To: linux-mtd-bounces+jcl=develtech.com@lists.infradead.org X-Ovh-Tracer-Id: 16742131615414260027 X-Ovh-Remote: 134.117.69.58 (canuck.infradead.org) X-Ovh-Local: 213.186.33.32 (mx0.ovh.net) X-Barracuda-Connect: mailrelay004.isp.belgacom.be[195.238.6.170] X-Barracuda-Start-Time: 1310141176 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.56 X-Barracuda-Spam-Status: No, SCORE=0.56 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DATE_IN_PAST_96_XX, DATE_IN_PAST_96_XX_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date 0.50 BSF_RULE7568M Custom Rule 7568M 2.07 DATE_IN_PAST_96_XX_2 DATE_IN_PAST_96_XX_2 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean SELinux would like to implement a new labeling behavior of newly created inodes. We currently label new inodes based on the parent and the creating process. This new behavior would also take into account the name of the new object when deciding the new label. This is not the (supposed) full path, just the last component of the path. This is very useful because creating /etc/shadow is different than creating /etc/passwd but the kernel hooks are unable to differentiate these operations. We currently require that userspace realize it is doing some difficult operation like that and than userspace jumps through SELinux hoops to get things set up correctly. This patch does not implement new behavior, that is obviously contained in a seperate SELinux patch, but it does pass the needed name down to the correct LSM hook. If no such name exists it is fine to pass NULL. Signed-off-by: Eric Paris --- fs/btrfs/inode.c | 13 +++++++------ fs/btrfs/xattr.c | 6 ++++-- fs/btrfs/xattr.h | 3 ++- fs/ext2/ext2.h | 2 +- fs/ext2/ialloc.c | 5 +++-- fs/ext2/namei.c | 8 ++++---- fs/ext2/xattr.h | 6 ++++-- fs/ext2/xattr_security.c | 5 +++-- fs/ext3/ialloc.c | 5 +++-- fs/ext3/namei.c | 8 ++++---- fs/ext3/xattr.h | 4 ++-- fs/ext3/xattr_security.c | 5 +++-- fs/ext4/ialloc.c | 2 +- fs/ext4/xattr.h | 4 ++-- fs/ext4/xattr_security.c | 5 +++-- fs/gfs2/inode.c | 7 ++++--- fs/jffs2/dir.c | 9 ++++----- fs/jffs2/nodelist.h | 2 +- fs/jffs2/security.c | 5 +++-- fs/jffs2/write.c | 18 ++++++++++-------- fs/jffs2/xattr.h | 5 +++-- fs/jfs/jfs_xattr.h | 5 +++-- fs/jfs/namei.c | 8 ++++---- fs/jfs/xattr.c | 6 ++++-- fs/ocfs2/namei.c | 4 ++-- fs/ocfs2/refcounttree.c | 3 ++- fs/ocfs2/xattr.c | 10 ++++++---- fs/ocfs2/xattr.h | 4 +++- fs/reiserfs/namei.c | 9 +++++---- fs/reiserfs/xattr_security.c | 3 ++- fs/xfs/linux-2.6/xfs_iops.c | 9 +++++---- include/linux/ext3_fs.h | 3 ++- include/linux/reiserfs_xattr.h | 2 ++ include/linux/security.h | 9 +++++++-- mm/shmem.c | 9 +++++---- security/capability.c | 3 ++- security/security.c | 6 ++++-- security/selinux/hooks.c | 5 +++-- security/smack/smack_lsm.c | 5 ++++- 39 files changed, 136 insertions(+), 94 deletions(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 8039390..ffc6e15 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -90,13 +90,14 @@ static noinline int cow_file_range(struct inode *inode, unsigned long *nr_written, int unlock); static int btrfs_init_inode_security(struct btrfs_trans_handle *trans, - struct inode *inode, struct inode *dir) + struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int err; err = btrfs_init_acl(trans, inode, dir); if (!err) - err = btrfs_xattr_security_init(trans, inode, dir); + err = btrfs_xattr_security_init(trans, inode, dir, qstr); return err; } @@ -4675,7 +4676,7 @@ static int btrfs_mknod(struct inode *dir, struct dentry *dentry, if (IS_ERR(inode)) goto out_unlock; - err = btrfs_init_inode_security(trans, inode, dir); + err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); if (err) { drop_inode = 1; goto out_unlock; @@ -4736,7 +4737,7 @@ static int btrfs_create(struct inode *dir, struct dentry *dentry, if (IS_ERR(inode)) goto out_unlock; - err = btrfs_init_inode_security(trans, inode, dir); + err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); if (err) { drop_inode = 1; goto out_unlock; @@ -4864,7 +4865,7 @@ static int btrfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) drop_on_err = 1; - err = btrfs_init_inode_security(trans, inode, dir); + err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); if (err) goto out_fail; @@ -6940,7 +6941,7 @@ static int btrfs_symlink(struct inode *dir, struct dentry *dentry, if (IS_ERR(inode)) goto out_unlock; - err = btrfs_init_inode_security(trans, inode, dir); + err = btrfs_init_inode_security(trans, inode, dir, &dentry->d_name); if (err) { drop_inode = 1; goto out_unlock; diff --git a/fs/btrfs/xattr.c b/fs/btrfs/xattr.c index 698fdd2..3338a7e 100644 --- a/fs/btrfs/xattr.c +++ b/fs/btrfs/xattr.c @@ -352,7 +352,8 @@ int btrfs_removexattr(struct dentry *dentry, const char *name) } int btrfs_xattr_security_init(struct btrfs_trans_handle *trans, - struct inode *inode, struct inode *dir) + struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int err; size_t len; @@ -360,7 +361,8 @@ int btrfs_xattr_security_init(struct btrfs_trans_handle *trans, char *suffix; char *name; - err = security_inode_init_security(inode, dir, &suffix, &value, &len); + err = security_inode_init_security(inode, dir, qstr, &suffix, &value, + &len); if (err) { if (err == -EOPNOTSUPP) return 0; diff --git a/fs/btrfs/xattr.h b/fs/btrfs/xattr.h index 7a43fd6..b3cc803 100644 --- a/fs/btrfs/xattr.h +++ b/fs/btrfs/xattr.h @@ -37,6 +37,7 @@ extern int btrfs_setxattr(struct dentry *dentry, const char *name, extern int btrfs_removexattr(struct dentry *dentry, const char *name); extern int btrfs_xattr_security_init(struct btrfs_trans_handle *trans, - struct inode *inode, struct inode *dir); + struct inode *inode, struct inode *dir, + const struct qstr *qstr); #endif /* __XATTR__ */ diff --git a/fs/ext2/ext2.h b/fs/ext2/ext2.h index 6346a2a..1b48c33 100644 --- a/fs/ext2/ext2.h +++ b/fs/ext2/ext2.h @@ -110,7 +110,7 @@ extern struct ext2_dir_entry_2 * ext2_dotdot (struct inode *, struct page **); extern void ext2_set_link(struct inode *, struct ext2_dir_entry_2 *, struct page *, struct inode *, int); /* ialloc.c */ -extern struct inode * ext2_new_inode (struct inode *, int); +extern struct inode * ext2_new_inode (struct inode *, int, const struct qstr *); extern void ext2_free_inode (struct inode *); extern unsigned long ext2_count_free_inodes (struct super_block *); extern void ext2_check_inodes_bitmap (struct super_block *); diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c index ad70479..ee9ed31 100644 --- a/fs/ext2/ialloc.c +++ b/fs/ext2/ialloc.c @@ -429,7 +429,8 @@ found: return group; } -struct inode *ext2_new_inode(struct inode *dir, int mode) +struct inode *ext2_new_inode(struct inode *dir, int mode, + const struct qstr *qstr) { struct super_block *sb; struct buffer_head *bitmap_bh = NULL; @@ -585,7 +586,7 @@ got: if (err) goto fail_free_drop; - err = ext2_init_security(inode,dir); + err = ext2_init_security(inode, dir, qstr); if (err) goto fail_free_drop; diff --git a/fs/ext2/namei.c b/fs/ext2/namei.c index f8aecd2..368d704 100644 --- a/fs/ext2/namei.c +++ b/fs/ext2/namei.c @@ -104,7 +104,7 @@ static int ext2_create (struct inode * dir, struct dentry * dentry, int mode, st dquot_initialize(dir); - inode = ext2_new_inode(dir, mode); + inode = ext2_new_inode(dir, mode, &dentry->d_name); if (IS_ERR(inode)) return PTR_ERR(inode); @@ -133,7 +133,7 @@ static int ext2_mknod (struct inode * dir, struct dentry *dentry, int mode, dev_ dquot_initialize(dir); - inode = ext2_new_inode (dir, mode); + inode = ext2_new_inode (dir, mode, &dentry->d_name); err = PTR_ERR(inode); if (!IS_ERR(inode)) { init_special_inode(inode, inode->i_mode, rdev); @@ -159,7 +159,7 @@ static int ext2_symlink (struct inode * dir, struct dentry * dentry, dquot_initialize(dir); - inode = ext2_new_inode (dir, S_IFLNK | S_IRWXUGO); + inode = ext2_new_inode (dir, S_IFLNK | S_IRWXUGO, &dentry->d_name); err = PTR_ERR(inode); if (IS_ERR(inode)) goto out; @@ -230,7 +230,7 @@ static int ext2_mkdir(struct inode * dir, struct dentry * dentry, int mode) inode_inc_link_count(dir); - inode = ext2_new_inode (dir, S_IFDIR | mode); + inode = ext2_new_inode(dir, S_IFDIR | mode, &dentry->d_name); err = PTR_ERR(inode); if (IS_ERR(inode)) goto out_dir; diff --git a/fs/ext2/xattr.h b/fs/ext2/xattr.h index a1a1c21..5e41ccc 100644 --- a/fs/ext2/xattr.h +++ b/fs/ext2/xattr.h @@ -116,9 +116,11 @@ exit_ext2_xattr(void) # endif /* CONFIG_EXT2_FS_XATTR */ #ifdef CONFIG_EXT2_FS_SECURITY -extern int ext2_init_security(struct inode *inode, struct inode *dir); +extern int ext2_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr); #else -static inline int ext2_init_security(struct inode *inode, struct inode *dir) +static inline int ext2_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr) { return 0; } diff --git a/fs/ext2/xattr_security.c b/fs/ext2/xattr_security.c index 3004e15..5d979b4 100644 --- a/fs/ext2/xattr_security.c +++ b/fs/ext2/xattr_security.c @@ -47,14 +47,15 @@ ext2_xattr_security_set(struct dentry *dentry, const char *name, } int -ext2_init_security(struct inode *inode, struct inode *dir) +ext2_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int err; size_t len; void *value; char *name; - err = security_inode_init_security(inode, dir, &name, &value, &len); + err = security_inode_init_security(inode, dir, qstr, &name, &value, &len); if (err) { if (err == -EOPNOTSUPP) return 0; diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c index 9724aef..bfc2dc4 100644 --- a/fs/ext3/ialloc.c +++ b/fs/ext3/ialloc.c @@ -404,7 +404,8 @@ static int find_group_other(struct super_block *sb, struct inode *parent) * For other inodes, search forward from the parent directory's block * group to find a free inode. */ -struct inode *ext3_new_inode(handle_t *handle, struct inode * dir, int mode) +struct inode *ext3_new_inode(handle_t *handle, struct inode * dir, + const struct qstr *qstr, int mode) { struct super_block *sb; struct buffer_head *bitmap_bh = NULL; @@ -589,7 +590,7 @@ got: if (err) goto fail_free_drop; - err = ext3_init_security(handle,inode, dir); + err = ext3_init_security(handle, inode, dir, qstr); if (err) goto fail_free_drop; diff --git a/fs/ext3/namei.c b/fs/ext3/namei.c index bce9dce..a900033 100644 --- a/fs/ext3/namei.c +++ b/fs/ext3/namei.c @@ -1707,7 +1707,7 @@ retry: if (IS_DIRSYNC(dir)) handle->h_sync = 1; - inode = ext3_new_inode (handle, dir, mode); + inode = ext3_new_inode (handle, dir, &dentry->d_name, mode); err = PTR_ERR(inode); if (!IS_ERR(inode)) { inode->i_op = &ext3_file_inode_operations; @@ -1743,7 +1743,7 @@ retry: if (IS_DIRSYNC(dir)) handle->h_sync = 1; - inode = ext3_new_inode (handle, dir, mode); + inode = ext3_new_inode (handle, dir, &dentry->d_name, mode); err = PTR_ERR(inode); if (!IS_ERR(inode)) { init_special_inode(inode, inode->i_mode, rdev); @@ -1781,7 +1781,7 @@ retry: if (IS_DIRSYNC(dir)) handle->h_sync = 1; - inode = ext3_new_inode (handle, dir, S_IFDIR | mode); + inode = ext3_new_inode (handle, dir, &dentry->d_name, S_IFDIR | mode); err = PTR_ERR(inode); if (IS_ERR(inode)) goto out_stop; @@ -2195,7 +2195,7 @@ retry: if (IS_DIRSYNC(dir)) handle->h_sync = 1; - inode = ext3_new_inode (handle, dir, S_IFLNK|S_IRWXUGO); + inode = ext3_new_inode (handle, dir, &dentry->d_name, S_IFLNK|S_IRWXUGO); err = PTR_ERR(inode); if (IS_ERR(inode)) goto out_stop; diff --git a/fs/ext3/xattr.h b/fs/ext3/xattr.h index 377fe72..2be4f69 100644 --- a/fs/ext3/xattr.h +++ b/fs/ext3/xattr.h @@ -128,10 +128,10 @@ exit_ext3_xattr(void) #ifdef CONFIG_EXT3_FS_SECURITY extern int ext3_init_security(handle_t *handle, struct inode *inode, - struct inode *dir); + struct inode *dir, const struct qstr *qstr); #else static inline int ext3_init_security(handle_t *handle, struct inode *inode, - struct inode *dir) + struct inode *dir, const struct qstr *qstr) { return 0; } diff --git a/fs/ext3/xattr_security.c b/fs/ext3/xattr_security.c index 03a99bf..b8d9f83 100644 --- a/fs/ext3/xattr_security.c +++ b/fs/ext3/xattr_security.c @@ -49,14 +49,15 @@ ext3_xattr_security_set(struct dentry *dentry, const char *name, } int -ext3_init_security(handle_t *handle, struct inode *inode, struct inode *dir) +ext3_init_security(handle_t *handle, struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int err; size_t len; void *value; char *name; - err = security_inode_init_security(inode, dir, &name, &value, &len); + err = security_inode_init_security(inode, dir, qstr, &name, &value, &len); if (err) { if (err == -EOPNOTSUPP) return 0; diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 1ce240a..49b6cfd 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -1042,7 +1042,7 @@ got: if (err) goto fail_free_drop; - err = ext4_init_security(handle, inode, dir); + err = ext4_init_security(handle, inode, dir, qstr); if (err) goto fail_free_drop; diff --git a/fs/ext4/xattr.h b/fs/ext4/xattr.h index 1ef1652..25b7387 100644 --- a/fs/ext4/xattr.h +++ b/fs/ext4/xattr.h @@ -145,10 +145,10 @@ ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize, #ifdef CONFIG_EXT4_FS_SECURITY extern int ext4_init_security(handle_t *handle, struct inode *inode, - struct inode *dir); + struct inode *dir, const struct qstr *qstr); #else static inline int ext4_init_security(handle_t *handle, struct inode *inode, - struct inode *dir) + struct inode *dir, const struct qstr *qstr) { return 0; } diff --git a/fs/ext4/xattr_security.c b/fs/ext4/xattr_security.c index 9b21268..007c3bf 100644 --- a/fs/ext4/xattr_security.c +++ b/fs/ext4/xattr_security.c @@ -49,14 +49,15 @@ ext4_xattr_security_set(struct dentry *dentry, const char *name, } int -ext4_init_security(handle_t *handle, struct inode *inode, struct inode *dir) +ext4_init_security(handle_t *handle, struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int err; size_t len; void *value; char *name; - err = security_inode_init_security(inode, dir, &name, &value, &len); + err = security_inode_init_security(inode, dir, qstr, &name, &value, &len); if (err) { if (err == -EOPNOTSUPP) return 0; diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index e1213f7..52fd31e 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -791,14 +791,15 @@ fail: return error; } -static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip) +static int gfs2_security_init(struct gfs2_inode *dip, struct gfs2_inode *ip, + const struct qstr *qstr) { int err; size_t len; void *value; char *name; - err = security_inode_init_security(&ip->i_inode, &dip->i_inode, + err = security_inode_init_security(&ip->i_inode, &dip->i_inode, qstr, &name, &value, &len); if (err) { @@ -882,7 +883,7 @@ struct inode *gfs2_createi(struct gfs2_holder *ghs, const struct qstr *name, if (error) goto fail_gunlock2; - error = gfs2_security_init(dip, GFS2_I(inode)); + error = gfs2_security_init(dip, GFS2_I(inode), name); if (error) goto fail_gunlock2; diff --git a/fs/jffs2/dir.c b/fs/jffs2/dir.c index 9297865..82faddd 100644 --- a/fs/jffs2/dir.c +++ b/fs/jffs2/dir.c @@ -215,8 +215,7 @@ static int jffs2_create(struct inode *dir_i, struct dentry *dentry, int mode, no chance of AB-BA deadlock involving its f->sem). */ mutex_unlock(&f->sem); - ret = jffs2_do_create(c, dir_f, f, ri, - dentry->d_name.name, dentry->d_name.len); + ret = jffs2_do_create(c, dir_f, f, ri, &dentry->d_name); if (ret) goto fail; @@ -386,7 +385,7 @@ static int jffs2_symlink (struct inode *dir_i, struct dentry *dentry, const char jffs2_complete_reservation(c); - ret = jffs2_init_security(inode, dir_i); + ret = jffs2_init_security(inode, dir_i, &dentry->d_name); if (ret) goto fail; @@ -530,7 +529,7 @@ static int jffs2_mkdir (struct inode *dir_i, struct dentry *dentry, int mode) jffs2_complete_reservation(c); - ret = jffs2_init_security(inode, dir_i); + ret = jffs2_init_security(inode, dir_i, &dentry->d_name); if (ret) goto fail; @@ -703,7 +702,7 @@ static int jffs2_mknod (struct inode *dir_i, struct dentry *dentry, int mode, de jffs2_complete_reservation(c); - ret = jffs2_init_security(inode, dir_i); + ret = jffs2_init_security(inode, dir_i, &dentry->d_name); if (ret) goto fail; diff --git a/fs/jffs2/nodelist.h b/fs/jffs2/nodelist.h index 5a53d9b..e4619b0 100644 --- a/fs/jffs2/nodelist.h +++ b/fs/jffs2/nodelist.h @@ -401,7 +401,7 @@ int jffs2_write_inode_range(struct jffs2_sb_info *c, struct jffs2_inode_info *f, struct jffs2_raw_inode *ri, unsigned char *buf, uint32_t offset, uint32_t writelen, uint32_t *retlen); int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, struct jffs2_inode_info *f, - struct jffs2_raw_inode *ri, const char *name, int namelen); + struct jffs2_raw_inode *ri, const struct qstr *qstr); int jffs2_do_unlink(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, const char *name, int namelen, struct jffs2_inode_info *dead_f, uint32_t time); int jffs2_do_link(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, uint32_t ino, diff --git a/fs/jffs2/security.c b/fs/jffs2/security.c index 239f512..cfeb716 100644 --- a/fs/jffs2/security.c +++ b/fs/jffs2/security.c @@ -23,14 +23,15 @@ #include "nodelist.h" /* ---- Initial Security Label Attachment -------------- */ -int jffs2_init_security(struct inode *inode, struct inode *dir) +int jffs2_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int rc; size_t len; void *value; char *name; - rc = security_inode_init_security(inode, dir, &name, &value, &len); + rc = security_inode_init_security(inode, dir, qstr, &name, &value, &len); if (rc) { if (rc == -EOPNOTSUPP) return 0; diff --git a/fs/jffs2/write.c b/fs/jffs2/write.c index c819eb0..30d175b 100644 --- a/fs/jffs2/write.c +++ b/fs/jffs2/write.c @@ -424,7 +424,9 @@ int jffs2_write_inode_range(struct jffs2_sb_info *c, struct jffs2_inode_info *f, return ret; } -int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, struct jffs2_inode_info *f, struct jffs2_raw_inode *ri, const char *name, int namelen) +int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, + struct jffs2_inode_info *f, struct jffs2_raw_inode *ri, + const struct qstr *qstr) { struct jffs2_raw_dirent *rd; struct jffs2_full_dnode *fn; @@ -466,15 +468,15 @@ int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, str mutex_unlock(&f->sem); jffs2_complete_reservation(c); - ret = jffs2_init_security(&f->vfs_inode, &dir_f->vfs_inode); + ret = jffs2_init_security(&f->vfs_inode, &dir_f->vfs_inode, qstr); if (ret) return ret; ret = jffs2_init_acl_post(&f->vfs_inode); if (ret) return ret; - ret = jffs2_reserve_space(c, sizeof(*rd)+namelen, &alloclen, - ALLOC_NORMAL, JFFS2_SUMMARY_DIRENT_SIZE(namelen)); + ret = jffs2_reserve_space(c, sizeof(*rd)+qstr->len, &alloclen, + ALLOC_NORMAL, JFFS2_SUMMARY_DIRENT_SIZE(qstr->len)); if (ret) { /* Eep. */ @@ -493,19 +495,19 @@ int jffs2_do_create(struct jffs2_sb_info *c, struct jffs2_inode_info *dir_f, str rd->magic = cpu_to_je16(JFFS2_MAGIC_BITMASK); rd->nodetype = cpu_to_je16(JFFS2_NODETYPE_DIRENT); - rd->totlen = cpu_to_je32(sizeof(*rd) + namelen); + rd->totlen = cpu_to_je32(sizeof(*rd) + qstr->len); rd->hdr_crc = cpu_to_je32(crc32(0, rd, sizeof(struct jffs2_unknown_node)-4)); rd->pino = cpu_to_je32(dir_f->inocache->ino); rd->version = cpu_to_je32(++dir_f->highest_version); rd->ino = ri->ino; rd->mctime = ri->ctime; - rd->nsize = namelen; + rd->nsize = qstr->len; rd->type = DT_REG; rd->node_crc = cpu_to_je32(crc32(0, rd, sizeof(*rd)-8)); - rd->name_crc = cpu_to_je32(crc32(0, name, namelen)); + rd->name_crc = cpu_to_je32(crc32(0, qstr->name, qstr->len)); - fd = jffs2_write_dirent(c, dir_f, rd, name, namelen, ALLOC_NORMAL); + fd = jffs2_write_dirent(c, dir_f, rd, qstr->name, qstr->len, ALLOC_NORMAL); jffs2_free_raw_dirent(rd); diff --git a/fs/jffs2/xattr.h b/fs/jffs2/xattr.h index cf4f575..7be4beb 100644 --- a/fs/jffs2/xattr.h +++ b/fs/jffs2/xattr.h @@ -121,10 +121,11 @@ extern ssize_t jffs2_listxattr(struct dentry *, char *, size_t); #endif /* CONFIG_JFFS2_FS_XATTR */ #ifdef CONFIG_JFFS2_FS_SECURITY -extern int jffs2_init_security(struct inode *inode, struct inode *dir); +extern int jffs2_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr); extern const struct xattr_handler jffs2_security_xattr_handler; #else -#define jffs2_init_security(inode,dir) (0) +#define jffs2_init_security(inode,dir,qstr) (0) #endif /* CONFIG_JFFS2_FS_SECURITY */ #endif /* _JFFS2_FS_XATTR_H_ */ diff --git a/fs/jfs/jfs_xattr.h b/fs/jfs/jfs_xattr.h index 88b6cc5..e9e100f 100644 --- a/fs/jfs/jfs_xattr.h +++ b/fs/jfs/jfs_xattr.h @@ -62,10 +62,11 @@ extern ssize_t jfs_listxattr(struct dentry *, char *, size_t); extern int jfs_removexattr(struct dentry *, const char *); #ifdef CONFIG_JFS_SECURITY -extern int jfs_init_security(tid_t, struct inode *, struct inode *); +extern int jfs_init_security(tid_t, struct inode *, struct inode *, + const struct qstr *); #else static inline int jfs_init_security(tid_t tid, struct inode *inode, - struct inode *dir) + struct inode *dir, const struct qstr *qstr) { return 0; } diff --git a/fs/jfs/namei.c b/fs/jfs/namei.c index 231ca4a..ff0fda9 100644 --- a/fs/jfs/namei.c +++ b/fs/jfs/namei.c @@ -114,7 +114,7 @@ static int jfs_create(struct inode *dip, struct dentry *dentry, int mode, if (rc) goto out3; - rc = jfs_init_security(tid, ip, dip); + rc = jfs_init_security(tid, ip, dip, &dentry->d_name); if (rc) { txAbort(tid, 0); goto out3; @@ -252,7 +252,7 @@ static int jfs_mkdir(struct inode *dip, struct dentry *dentry, int mode) if (rc) goto out3; - rc = jfs_init_security(tid, ip, dip); + rc = jfs_init_security(tid, ip, dip, &dentry->d_name); if (rc) { txAbort(tid, 0); goto out3; @@ -931,7 +931,7 @@ static int jfs_symlink(struct inode *dip, struct dentry *dentry, mutex_lock_nested(&JFS_IP(dip)->commit_mutex, COMMIT_MUTEX_PARENT); mutex_lock_nested(&JFS_IP(ip)->commit_mutex, COMMIT_MUTEX_CHILD); - rc = jfs_init_security(tid, ip, dip); + rc = jfs_init_security(tid, ip, dip, &dentry->d_name); if (rc) goto out3; @@ -1394,7 +1394,7 @@ static int jfs_mknod(struct inode *dir, struct dentry *dentry, if (rc) goto out3; - rc = jfs_init_security(tid, ip, dir); + rc = jfs_init_security(tid, ip, dir, &dentry->d_name); if (rc) { txAbort(tid, 0); goto out3; diff --git a/fs/jfs/xattr.c b/fs/jfs/xattr.c index 2d7f165..3fa4c32 100644 --- a/fs/jfs/xattr.c +++ b/fs/jfs/xattr.c @@ -1091,7 +1091,8 @@ int jfs_removexattr(struct dentry *dentry, const char *name) } #ifdef CONFIG_JFS_SECURITY -int jfs_init_security(tid_t tid, struct inode *inode, struct inode *dir) +int jfs_init_security(tid_t tid, struct inode *inode, struct inode *dir, + const struct qstr *qstr) { int rc; size_t len; @@ -1099,7 +1100,8 @@ int jfs_init_security(tid_t tid, struct inode *inode, struct inode *dir) char *suffix; char *name; - rc = security_inode_init_security(inode, dir, &suffix, &value, &len); + rc = security_inode_init_security(inode, dir, qstr, &suffix, &value, + &len); if (rc) { if (rc == -EOPNOTSUPP) return 0; diff --git a/fs/ocfs2/namei.c b/fs/ocfs2/namei.c index ff5744e..7740bc0 100644 --- a/fs/ocfs2/namei.c +++ b/fs/ocfs2/namei.c @@ -294,7 +294,7 @@ static int ocfs2_mknod(struct inode *dir, } /* get security xattr */ - status = ocfs2_init_security_get(inode, dir, &si); + status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); if (status) { if (status == -EOPNOTSUPP) si.enable = 0; @@ -1665,7 +1665,7 @@ static int ocfs2_symlink(struct inode *dir, } /* get security xattr */ - status = ocfs2_init_security_get(inode, dir, &si); + status = ocfs2_init_security_get(inode, dir, &dentry->d_name, &si); if (status) { if (status == -EOPNOTSUPP) si.enable = 0; diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c index b5f9160..cd3f5b4 100644 --- a/fs/ocfs2/refcounttree.c +++ b/fs/ocfs2/refcounttree.c @@ -4325,7 +4325,8 @@ static int ocfs2_reflink(struct dentry *old_dentry, struct inode *dir, /* If the security isn't preserved, we need to re-initialize them. */ if (!preserve) { - error = ocfs2_init_security_and_acl(dir, new_orphan_inode); + error = ocfs2_init_security_and_acl(dir, new_orphan_inode, + &new_dentry->d_name); if (error) mlog_errno(error); } diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 67cd439..6bb6024 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c @@ -7185,7 +7185,8 @@ out: * must not hold any lock expect i_mutex. */ int ocfs2_init_security_and_acl(struct inode *dir, - struct inode *inode) + struct inode *inode, + const struct qstr *qstr) { int ret = 0; struct buffer_head *dir_bh = NULL; @@ -7193,7 +7194,7 @@ int ocfs2_init_security_and_acl(struct inode *dir, .enable = 1, }; - ret = ocfs2_init_security_get(inode, dir, &si); + ret = ocfs2_init_security_get(inode, dir, qstr, &si); if (!ret) { ret = ocfs2_xattr_set(inode, OCFS2_XATTR_INDEX_SECURITY, si.name, si.value, si.value_len, @@ -7261,13 +7262,14 @@ static int ocfs2_xattr_security_set(struct dentry *dentry, const char *name, int ocfs2_init_security_get(struct inode *inode, struct inode *dir, + const struct qstr *qstr, struct ocfs2_security_xattr_info *si) { /* check whether ocfs2 support feature xattr */ if (!ocfs2_supports_xattr(OCFS2_SB(dir->i_sb))) return -EOPNOTSUPP; - return security_inode_init_security(inode, dir, &si->name, &si->value, - &si->value_len); + return security_inode_init_security(inode, dir, qstr, &si->name, + &si->value, &si->value_len); } int ocfs2_init_security_set(handle_t *handle, diff --git a/fs/ocfs2/xattr.h b/fs/ocfs2/xattr.h index aa64bb3..d63cfb7 100644 --- a/fs/ocfs2/xattr.h +++ b/fs/ocfs2/xattr.h @@ -57,6 +57,7 @@ int ocfs2_has_inline_xattr_value_outside(struct inode *inode, struct ocfs2_dinode *di); int ocfs2_xattr_remove(struct inode *, struct buffer_head *); int ocfs2_init_security_get(struct inode *, struct inode *, + const struct qstr *, struct ocfs2_security_xattr_info *); int ocfs2_init_security_set(handle_t *, struct inode *, struct buffer_head *, @@ -94,5 +95,6 @@ int ocfs2_reflink_xattrs(struct inode *old_inode, struct buffer_head *new_bh, bool preserve_security); int ocfs2_init_security_and_acl(struct inode *dir, - struct inode *inode); + struct inode *inode, + const struct qstr *qstr); #endif /* OCFS2_XATTR_H */ diff --git a/fs/reiserfs/namei.c b/fs/reiserfs/namei.c index ba5f51e..d5b22ed 100644 --- a/fs/reiserfs/namei.c +++ b/fs/reiserfs/namei.c @@ -593,7 +593,7 @@ static int reiserfs_create(struct inode *dir, struct dentry *dentry, int mode, new_inode_init(inode, dir, mode); jbegin_count += reiserfs_cache_default_acl(dir); - retval = reiserfs_security_init(dir, inode, &security); + retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security); if (retval < 0) { drop_new_inode(inode); return retval; @@ -667,7 +667,7 @@ static int reiserfs_mknod(struct inode *dir, struct dentry *dentry, int mode, new_inode_init(inode, dir, mode); jbegin_count += reiserfs_cache_default_acl(dir); - retval = reiserfs_security_init(dir, inode, &security); + retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security); if (retval < 0) { drop_new_inode(inode); return retval; @@ -747,7 +747,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode) new_inode_init(inode, dir, mode); jbegin_count += reiserfs_cache_default_acl(dir); - retval = reiserfs_security_init(dir, inode, &security); + retval = reiserfs_security_init(dir, inode, &dentry->d_name, &security); if (retval < 0) { drop_new_inode(inode); return retval; @@ -1032,7 +1032,8 @@ static int reiserfs_symlink(struct inode *parent_dir, } new_inode_init(inode, parent_dir, mode); - retval = reiserfs_security_init(parent_dir, inode, &security); + retval = reiserfs_security_init(parent_dir, inode, &dentry->d_name, + &security); if (retval < 0) { drop_new_inode(inode); return retval; diff --git a/fs/reiserfs/xattr_security.c b/fs/reiserfs/xattr_security.c index 237c692..ef66c18 100644 --- a/fs/reiserfs/xattr_security.c +++ b/fs/reiserfs/xattr_security.c @@ -54,6 +54,7 @@ static size_t security_list(struct dentry *dentry, char *list, size_t list_len, * of blocks needed for the transaction. If successful, reiserfs_security * must be released using reiserfs_security_free when the caller is done. */ int reiserfs_security_init(struct inode *dir, struct inode *inode, + const struct qstr *qstr, struct reiserfs_security_handle *sec) { int blocks = 0; @@ -65,7 +66,7 @@ int reiserfs_security_init(struct inode *dir, struct inode *inode, if (IS_PRIVATE(dir)) return 0; - error = security_inode_init_security(inode, dir, &sec->name, + error = security_inode_init_security(inode, dir, qstr, &sec->name, &sec->value, &sec->length); if (error) { if (error == -EOPNOTSUPP) diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c index 94d5fd6..d9298cf 100644 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ b/fs/xfs/linux-2.6/xfs_iops.c @@ -103,7 +103,8 @@ xfs_mark_inode_dirty( STATIC int xfs_init_security( struct inode *inode, - struct inode *dir) + struct inode *dir, + const struct qstr *qstr) { struct xfs_inode *ip = XFS_I(inode); size_t length; @@ -111,7 +112,7 @@ xfs_init_security( unsigned char *name; int error; - error = security_inode_init_security(inode, dir, (char **)&name, + error = security_inode_init_security(inode, dir, qstr, (char **)&name, &value, &length); if (error) { if (error == -EOPNOTSUPP) @@ -195,7 +196,7 @@ xfs_vn_mknod( inode = VFS_I(ip); - error = xfs_init_security(inode, dir); + error = xfs_init_security(inode, dir, &dentry->d_name); if (unlikely(error)) goto out_cleanup_inode; @@ -368,7 +369,7 @@ xfs_vn_symlink( inode = VFS_I(cip); - error = xfs_init_security(inode, dir); + error = xfs_init_security(inode, dir, &dentry->d_name); if (unlikely(error)) goto out_cleanup_inode; diff --git a/include/linux/ext3_fs.h b/include/linux/ext3_fs.h index 6ce1bca..87312a8 100644 --- a/include/linux/ext3_fs.h +++ b/include/linux/ext3_fs.h @@ -874,7 +874,8 @@ extern int ext3fs_dirhash(const char *name, int len, struct dx_hash_info *hinfo); /* ialloc.c */ -extern struct inode * ext3_new_inode (handle_t *, struct inode *, int); +extern struct inode * ext3_new_inode (handle_t *, struct inode *, + const struct qstr *, int); extern void ext3_free_inode (handle_t *, struct inode *); extern struct inode * ext3_orphan_get (struct super_block *, unsigned long); extern unsigned long ext3_count_free_inodes (struct super_block *); diff --git a/include/linux/reiserfs_xattr.h b/include/linux/reiserfs_xattr.h index b2cf208..c2b7147 100644 --- a/include/linux/reiserfs_xattr.h +++ b/include/linux/reiserfs_xattr.h @@ -63,6 +63,7 @@ extern const struct xattr_handler reiserfs_xattr_trusted_handler; extern const struct xattr_handler reiserfs_xattr_security_handler; #ifdef CONFIG_REISERFS_FS_SECURITY int reiserfs_security_init(struct inode *dir, struct inode *inode, + const struct qstr *qstr, struct reiserfs_security_handle *sec); int reiserfs_security_write(struct reiserfs_transaction_handle *th, struct inode *inode, @@ -130,6 +131,7 @@ static inline void reiserfs_init_xattr_rwsem(struct inode *inode) #ifndef CONFIG_REISERFS_FS_SECURITY static inline int reiserfs_security_init(struct inode *dir, struct inode *inode, + const struct qstr *qstr, struct reiserfs_security_handle *sec) { return 0; diff --git a/include/linux/security.h b/include/linux/security.h index 4ab684e..02fcc0e 100644 --- a/include/linux/security.h +++ b/include/linux/security.h @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -315,6 +316,7 @@ static inline void security_free_mnt_opts(struct security_mnt_opts *opts) * then it should return -EOPNOTSUPP to skip this processing. * @inode contains the inode structure of the newly created inode. * @dir contains the inode structure of the parent directory. + * @qstr contains the last path component of the new object * @name will be set to the allocated name suffix (e.g. selinux). * @value will be set to the allocated attribute value. * @len will be set to the length of the value. @@ -1437,7 +1439,8 @@ struct security_operations { int (*inode_alloc_security) (struct inode *inode); void (*inode_free_security) (struct inode *inode); int (*inode_init_security) (struct inode *inode, struct inode *dir, - char **name, void **value, size_t *len); + const struct qstr *qstr, char **name, + void **value, size_t *len); int (*inode_create) (struct inode *dir, struct dentry *dentry, int mode); int (*inode_link) (struct dentry *old_dentry, @@ -1701,7 +1704,8 @@ int security_sb_parse_opts_str(char *options, struct security_mnt_opts *opts); int security_inode_alloc(struct inode *inode); void security_inode_free(struct inode *inode); int security_inode_init_security(struct inode *inode, struct inode *dir, - char **name, void **value, size_t *len); + const struct qstr *qstr, char **name, + void **value, size_t *len); int security_inode_create(struct inode *dir, struct dentry *dentry, int mode); int security_inode_link(struct dentry *old_dentry, struct inode *dir, struct dentry *new_dentry); @@ -2028,6 +2032,7 @@ static inline void security_inode_free(struct inode *inode) static inline int security_inode_init_security(struct inode *inode, struct inode *dir, + const struct qstr *qstr, char **name, void **value, size_t *len) diff --git a/mm/shmem.c b/mm/shmem.c index 47fdeeb..86cd21d 100644 --- a/mm/shmem.c +++ b/mm/shmem.c @@ -1843,8 +1843,9 @@ shmem_mknod(struct inode *dir, struct dentry *dentry, int mode, dev_t dev) inode = shmem_get_inode(dir->i_sb, dir, mode, dev, VM_NORESERVE); if (inode) { - error = security_inode_init_security(inode, dir, NULL, NULL, - NULL); + error = security_inode_init_security(inode, dir, + &dentry->d_name, NULL, + NULL, NULL); if (error) { if (error != -EOPNOTSUPP) { iput(inode); @@ -1983,8 +1984,8 @@ static int shmem_symlink(struct inode *dir, struct dentry *dentry, const char *s if (!inode) return -ENOSPC; - error = security_inode_init_security(inode, dir, NULL, NULL, - NULL); + error = security_inode_init_security(inode, dir, &dentry->d_name, NULL, + NULL, NULL); if (error) { if (error != -EOPNOTSUPP) { iput(inode); diff --git a/security/capability.c b/security/capability.c index 92a1bff..c3d796c 100644 --- a/security/capability.c +++ b/security/capability.c @@ -118,7 +118,8 @@ static void cap_inode_free_security(struct inode *inode) } static int cap_inode_init_security(struct inode *inode, struct inode *dir, - char **name, void **value, size_t *len) + const struct qstr *qstr, char **name, + void **value, size_t *len) { return -EOPNOTSUPP; } diff --git a/security/security.c b/security/security.c index 799239d..7ebeb86 100644 --- a/security/security.c +++ b/security/security.c @@ -336,11 +336,13 @@ void security_inode_free(struct inode *inode) } int security_inode_init_security(struct inode *inode, struct inode *dir, - char **name, void **value, size_t *len) + const struct qstr *qstr, char **name, + void **value, size_t *len) { if (unlikely(IS_PRIVATE(inode))) return -EOPNOTSUPP; - return security_ops->inode_init_security(inode, dir, name, value, len); + return security_ops->inode_init_security(inode, dir, qstr, name, value, + len); } EXPORT_SYMBOL(security_inode_init_security); diff --git a/security/selinux/hooks.c b/security/selinux/hooks.c index b8dcd05..7699e23 100644 --- a/security/selinux/hooks.c +++ b/security/selinux/hooks.c @@ -39,6 +39,7 @@ #include #include #include +#include #include #include #include @@ -2509,8 +2510,8 @@ static void selinux_inode_free_security(struct inode *inode) } static int selinux_inode_init_security(struct inode *inode, struct inode *dir, - char **name, void **value, - size_t *len) + const struct qstr *qstr, char **name, + void **value, size_t *len) { const struct task_security_struct *tsec = current_security(); struct inode_security_struct *dsec; diff --git a/security/smack/smack_lsm.c b/security/smack/smack_lsm.c index 489a85a..581b65e 100644 --- a/security/smack/smack_lsm.c +++ b/security/smack/smack_lsm.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "smack.h" #define task_security(task) (task_cred_xxx((task), security)) @@ -424,6 +425,7 @@ static void smack_inode_free_security(struct inode *inode) * smack_inode_init_security - copy out the smack from an inode * @inode: the inode * @dir: unused + * @qstr: unused * @name: where to put the attribute name * @value: where to put the attribute value * @len: where to put the length of the attribute @@ -431,7 +433,8 @@ static void smack_inode_free_security(struct inode *inode) * Returns 0 if it all works out, -ENOMEM if there's no memory */ static int smack_inode_init_security(struct inode *inode, struct inode *dir, - char **name, void **value, size_t *len) + const struct qstr *qstr, char **name, + void **value, size_t *len) { char *isp = smk_of_inode(inode); ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/ From viro@ftp.linux.org.uk Fri Jul 8 11:18:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68GI2UN253635 for ; Fri, 8 Jul 2011 11:18:02 -0500 X-ASG-Debug-ID: 1310141876-14c601980000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ZenIV.linux.org.uk (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EBD6D17A349A; Fri, 8 Jul 2011 09:17:56 -0700 (PDT) Received: from ZenIV.linux.org.uk (zeniv.linux.org.uk [195.92.253.2]) by cuda.sgi.com with ESMTP id yHgUgR4CDRMdu84Y; Fri, 08 Jul 2011 09:17:56 -0700 (PDT) Received: from viro by ZenIV.linux.org.uk with local (Exim 4.76 #1 (Red Hat Linux)) id 1QfDk2-0000Rh-3l; Fri, 08 Jul 2011 16:17:22 +0000 Date: Fri, 8 Jul 2011 17:17:22 +0100 From: Al Viro To: Eric Paris Cc: xfs-masters@oss.sgi.com, linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, linux-ext4@vger.kernel.org, cluster-devel@redhat.com, linux-mtd@lists.infradead.org, jfs-discussion@lists.sourceforge.net, ocfs2-devel@oss.oracle.com, reiserfs-devel@vger.kernel.org, xfs@oss.sgi.com, linux-mm@kvack.org, linux-security-module@vger.kernel.org, jack@suse.cz, penguin-kernel@I-love.SAKURA.ne.jp, jeffm@suse.com, jmorris@namei.org, dhowells@redhat.com, adilger.kernel@dilger.ca, shaggy@linux.vnet.ibm.com, shemminger@vyatta.com, hch@lst.de, hughd@google.com, joel.becker@oracle.com, chris.mason@oracle.com, aelder@sgi.com, kees.cook@canonical.com, sds@tycho.nsa.gov, paul.moore@hp.com, mfasheh@suse.com, dchinner@redhat.com, eparis@parisplace.org, swhiteho@redhat.com, tao.ma@oracle.com, tytso@mit.edu, casey@schaufler-ca.com, serue@us.ibm.com, akpm@linux-foundation.org, dwmw2@infradead.org X-ASG-Orig-Subj: Re: [PATCH] fs/vfs/security: pass last path component to LSM on inode creation Subject: Re: [PATCH] fs/vfs/security: pass last path component to LSM on inode creation Message-ID: <20110708161722.GG11013@ZenIV.linux.org.uk> References: <20101208194527.13537.77202.stgit@paris.rdu.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20101208194527.13537.77202.stgit@paris.rdu.redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: Al Viro X-Barracuda-Connect: zeniv.linux.org.uk[195.92.253.2] X-Barracuda-Start-Time: 1310141876 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Dec 08, 2010 at 02:45:27PM -0500, Eric Paris wrote: > SELinux would like to implement a new labeling behavior of newly created > inodes. We currently label new inodes based on the parent and the creating > process. This new behavior would also take into account the name of the > new object when deciding the new label. This is not the (supposed) full path, > just the last component of the path. > > This is very useful because creating /etc/shadow is different than creating > /etc/passwd but the kernel hooks are unable to differentiate these > operations. We currently require that userspace realize it is doing some > difficult operation like that and than userspace jumps through SELinux hoops > to get things set up correctly. This patch does not implement new > behavior, that is obviously contained in a seperate SELinux patch, but it > does pass the needed name down to the correct LSM hook. If no such name > exists it is fine to pass NULL. -ETOOFUCKINGUGLY... From aelder@sgi.com Fri Jul 8 12:56:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68HuHXm259261 for ; Fri, 8 Jul 2011 12:56:17 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 549C2AC005; Fri, 8 Jul 2011 10:56:13 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 8 Jul 2011 12:56:12 -0500 Subject: Re: [PATCH 1/4] xfstests: fix fsx fpunch test to actually test for fpunch From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310086426-30605-2-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> <1310086426-30605-2-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 8 Jul 2011 12:56:12 -0500 Message-ID: <1310147772.3024.22.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-08 at 10:53 +1000, Dave Chinner wrote: > From: Dave Chinner > > The operation flags parameter to fallocate is the second parameter, > not the last. Hence the fpunch test is actually testing for falloc > support, not fpunch. Somebody needs a brown paper bag. > > Also, add a ftruncate call whenthe fpunch succeeds just in case the > file was not already zero sized. Failing to ensure we start with a > zero length file can cause read ops to fail size checks if they > occur before the file is written to be the main test loop. > > While there, observe the quiet flag the same as the falloc test > does and have them both emit the warning at the same error level. > > Signed-off-by: Dave Chinner Looks good. Even if the arguments were in the right order, the length has to be greater than zero also. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 8 13:58:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_14, J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68IwuMq261889 for ; Fri, 8 Jul 2011 13:58:56 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 92DBE8F8040; Fri, 8 Jul 2011 11:58:52 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 8 Jul 2011 13:58:52 -0500 Subject: Re: [PATCH 2/4] xfstests: fsx fallocate support is b0rked From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310086426-30605-3-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> <1310086426-30605-3-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 8 Jul 2011 13:58:51 -0500 Message-ID: <1310151531.3024.37.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 8bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-08 at 10:53 +1000, Dave Chinner wrote: > From: Dave Chinner > > The recent fallocate/fpunch additions to fsx have not actually be > executing fallocate/fpunch operations. The logic to select what > operation to run is broken in such a way that fsx has been executing > mapped writes and truncates instead of fallocate and fpunch > operations. > > Remove all the (b0rken) smarty-pants selection logic from the test() > function. Replace it with a clearly defined set of operations for > each mode and use understandable fallback logic when various > operation types have been disabled. Then use a simple switch > statement to execute each of the different operations, removing the > tortured nesting of if/else statements that only serve to obfuscate > the code. > > As a result, fsx uses fallocate/fpunch appropriately during > operations and uses/disableÑ• the operations as defined on the > command line correctly. > > Signed-off-by: Dave Chinner I started trying to understand the logic of the original in order to make sure your new version preserved the logic. But then I concluded it was just plain broken, and understood exactly the point of this change... So I just looked at your new code. I have a few minor things but it otherwise looks good to me. The way "closeopen" is (still) computed is a bit funked up (and possibly just wrong), but I'm not going to complain--you've done a lot of good here. Reviewed-by: Alex Elder > --- > ltp/fsx.c | 192 +++++++++++++++++++++++++++++++++++++++---------------------- > 1 files changed, 123 insertions(+), 69 deletions(-) > > diff --git a/ltp/fsx.c b/ltp/fsx.c > index a37e223..41d7c20 100644 > --- a/ltp/fsx.c > +++ b/ltp/fsx.c > @@ -58,18 +58,47 @@ int logptr = 0; /* current position in log */ > int logcount = 0; /* total ops */ > > /* > - * Define operations > + * The operation matrix is complex due to conditional execution of different > + * features. Hence when we come to deciding what operation to run, we need to > + * be careful in how we select the different operations. The active operations > + * are mapped to numbers as follows: > + * > + * lite !lite > + * READ: 0 0 > + * WRITE: 1 1 > + * MAPREAD: 2 2 > + * MAPWRITE: 3 3 > + * TRUNCATE: - 4 > + * FALLOCATE: - 5 > + * PUNCH HOLE: - 6 > + * > + * When mapped read/writes are disabled, they are simply converted to normal > + * reads and writes. When fallocate/fpunch calls are disabled, they are > + * converted to OP_SKIPPED. Hence OP_SKIPPED needs to have a number higher than The "hence" is not obvious. The reason it needs to have a higher number is that the operation is selected at random among the number of operations available (either in "lite" or in "full" mode). > + * the operation selction matrix, as does the OP_CLOSEOPEN which is an selection > + * operation modifier rather than an operation in itself. > + * > + * Because of the "lite" version, we also need to have different "maximum > + * operation" defines to allow the ops to be selected correctly based on the > + * mode being run. > */ > > -#define OP_READ 1 > -#define OP_WRITE 2 > -#define OP_TRUNCATE 3 > -#define OP_CLOSEOPEN 4 > -#define OP_MAPREAD 5 > -#define OP_MAPWRITE 6 > -#define OP_SKIPPED 7 > -#define OP_FALLOCATE 8 > -#define OP_PUNCH_HOLE 9 > +/* common operations */ > +#define OP_READ 0 > +#define OP_WRITE 1 > +#define OP_MAPREAD 2 > +#define OP_MAPWRITE 3 > +#define OP_MAX_LITE 4 To me, "max" suggests that it is an included value in the range. So I'd rather see this be "OP_NUM_LITE" or (my preference) "OP_LITE_COUNT". Similarly for OP_MAX_FULL below. > + > +/* !lite operations */ > +#define OP_TRUNCATE 4 > +#define OP_FALLOCATE 5 > +#define OP_PUNCH_HOLE 6 > +#define OP_MAX_FULL 7 > + > +/* operation modifiers */ > +#define OP_CLOSEOPEN 100 > +#define OP_SKIPPED 101 > > #undef PAGE_SIZE > #define PAGE_SIZE getpagesize() > @@ -955,6 +984,15 @@ docloseopen(void) > } > } > > +#define TRIM_OFF_LEN(off, len, size) \ > +do { \ > + if (file_size) \ > + offset %= size; \ > + else \ > + offset = 0; \ > + if (offset + len > size) \ > + len = size - offset; \ > +} while (0) This macro is a very good idea. However it differs from the original behavior when used for OP_WRITE, OP_MAPWRITE, OP_FALLOCATE, and OP_PUNCH_HOLE in that if file_size is zero, offset will be set to zero. It seems like that behavior difference is significant, but I don't think it has a practical effect on the results of the test. I've left the code in question below for reference. > void > test(void) > @@ -962,11 +1000,7 @@ test(void) > unsigned long offset; > unsigned long size = maxoplen; > unsigned long rv = random(); > - unsigned long op = rv % (3 + !lite + mapped_writes + fallocate_calls + punch_hole_calls); > - /* turn off the map read if necessary */ > - > - if (op == 2 && !mapped_reads) > - op = 0; > + unsigned long op; > > if (simulatedopcount > 0 && testcalls == simulatedopcount) > writefileimage(); > @@ -982,62 +1016,82 @@ test(void) > if (!quiet && testcalls < simulatedopcount && testcalls % 100000 == 0) > prt("%lu...\n", testcalls); > > - /* > - * lite !lite > - * READ: op = 0 0 > - * WRITE: op = 1 1 > - * MAPREAD: op = 2 2 > - * TRUNCATE: op = - 3 > - * MAPWRITE: op = 3 4 > - * FALLOCATE: op = - 5 > - * PUNCH HOLE: op = - 6 > - */ > - if (lite ? 0 : op == 3 && (style & 1) == 0) /* vanilla truncate? */ > - dotruncate(random() % maxfilelen); > - else { > - if (randomoplen) > - size = random() % (maxoplen+1); > - > - if (lite ? 0 : op == 3) { > - /* truncate */ > - dotruncate(size); > - } else { > - offset = random(); > - if (op == 5) { > - /* fallocate */ > - offset %= maxfilelen; > - if (offset + size > maxfilelen) > - size = maxfilelen - offset; > - do_preallocate(offset, size); > - } else if (op == 6) { > - offset %= maxfilelen; > - if (offset + size > maxfilelen) > - size = maxfilelen - offset; > - do_punch_hole(offset, size); > - } else if (op == 1 || op == (lite ? 3 : 4)) { > - /* write / mapwrite */ > - offset %= maxfilelen; > - if (offset + size > maxfilelen) > - size = maxfilelen - offset; > - if (op != 1) > - domapwrite(offset, size); > - else > - dowrite(offset, size); > - } else { > - /* read / mapread */ > - if (file_size) > - offset %= file_size; > - else > - offset = 0; > - if (offset + size > file_size) > - size = file_size - offset; > - if (op != 0) > - domapread(offset, size); > - else > - doread(offset, size); > - } > + offset = random(); > + if (randomoplen) > + size = random() % (maxoplen + 1); > + > + /* calculate appropriate op to run */ > + if (lite) > + op = rv % OP_MAX_LITE; > + else > + op = rv % OP_MAX_FULL; > + > + switch (op) { > + case OP_MAPREAD: > + if (!mapped_reads) > + op = OP_READ; > + break; > + case OP_MAPWRITE: > + if (!mapped_writes) > + op = OP_WRITE; > + break; > + case OP_FALLOCATE: > + if (!fallocate_calls) { > + log4(OP_SKIPPED, OP_FALLOCATE, offset, size); > + goto out; > + } > + break; > + case OP_PUNCH_HOLE: > + if (!punch_hole_calls) { > + log4(OP_SKIPPED, OP_PUNCH_HOLE, offset, size); > + goto out; > } > + break; > } > + > + switch (op) { > + case OP_READ: > + TRIM_OFF_LEN(offset, size, file_size); > + doread(offset, size); > + break; > + > + case OP_WRITE: > + TRIM_OFF_LEN(offset, size, maxfilelen); > + dowrite(offset, size); > + break; > + > + case OP_MAPREAD: > + TRIM_OFF_LEN(offset, size, file_size); > + domapread(offset, size); > + break; > + > + case OP_MAPWRITE: > + TRIM_OFF_LEN(offset, size, maxfilelen); > + domapwrite(offset, size); > + break; > + > + case OP_TRUNCATE: > + if (!style) > + size = random() % maxfilelen; > + dotruncate(size); > + break; > + > + case OP_FALLOCATE: > + TRIM_OFF_LEN(offset, size, maxfilelen); > + do_preallocate(offset, size); > + break; > + > + case OP_PUNCH_HOLE: > + TRIM_OFF_LEN(offset, size, maxfilelen); > + do_punch_hole(offset, size); > + break; > + default: > + prterr("test: unknown operation"); prterr("test: unknown operation (%d)", op); > + report_failure(42); #define ULTIMATE_ANSWER report_failure(ULTIMATE_ANSWER); > + break; > + } > + > +out: > if (sizechecks && testcalls > simulatedopcount) > check_size(); > if (closeopen) From aelder@sgi.com Fri Jul 8 14:02:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68J2ujh262009 for ; Fri, 8 Jul 2011 14:02:56 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id E2F778F8040; Fri, 8 Jul 2011 12:02:52 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 8 Jul 2011 14:02:52 -0500 Subject: Re: [PATCH 3/4] xfstests: fix brain-o in fallocate log dump From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310086426-30605-4-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> <1310086426-30605-4-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 8 Jul 2011 14:02:52 -0500 Message-ID: <1310151772.3024.38.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-08 at 10:53 +1000, Dave Chinner wrote: > From: Dave Chinner > > fsx segvs when dumping fallocate log entries. Fix magic string > array index parameters to be zero based rather than one based. > > While touching log string related stuff, make the format consistent > with read and write operations so the log dump is easier to look at > with the human eye. > > Signed-off-by: Dave Chinner Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 8 14:04:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68J4HGu262067 for ; Fri, 8 Jul 2011 14:04:17 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id DCDDFAC008; Fri, 8 Jul 2011 12:04:13 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 8 Jul 2011 14:04:13 -0500 Subject: Re: [PATCH 4/4] xfstests: add mapped write fsx operations to 091 From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310086426-30605-5-git-send-email-david@fromorbit.com> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> <1310086426-30605-5-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 8 Jul 2011 14:04:12 -0500 Message-ID: <1310151852.3024.39.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-08 at 10:53 +1000, Dave Chinner wrote: > From: Dave Chinner > > The recent busted fsx updates caused fsx to execute fsx with direct > IO and mmapped reads and writes on an XFS filesystem. The result > uncovered a direct-IO write vs mmap read bug to do with EOF > sub-block zeroing on the direct IO write. > > Hence whiel we do not recommend that pepole mix DIO with mmap on the > same file, we should at least have tests that exercise it as they > often show up other problems like this. > > > Signed-off-by: Dave Chinner Good idea. Reviewed-by: Alex Elder From aelder@oss.sgi.com Fri Jul 8 14:26:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_43,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68JQcDN001344 for ; Fri, 8 Jul 2011 14:26:38 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p68JQZK6001170; Fri, 8 Jul 2011 14:26:35 -0500 Date: Fri, 8 Jul 2011 14:26:35 -0500 Message-Id: <201107081926.p68JQZK6001170@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-18993-g81463b1 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 1316d4da3f632d5843d5a446203e73067dc40f09 X-Git-Newrev: 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 81463b1 xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact() c0e090c xfs: consolidate & clarify mount sanity checks e163cbd xfs: avoid a few disk cache flushes 1d5ae5d xfs: cleanup I/O-related buffer flags c8da0fa xfs: return the buffer locked from xfs_buf_get_uncached 0c842ad xfs: clean up buffer locking helpers bbb4197 xfs: remove the unused xfs_bufhash structure 69ef921 xfs: byteswap constants instead of variables 218106a xfs: use generic get_unaligned_beXX helpers 2282396 xfs: cleanup struct xfs_dir2_leaf 3ed8638 xfs: cleanup the definition of struct xfs_dir2_data_entry 0ba9cd8 xfs: kill struct xfs_dir2_data c2066e2 xfs: avoid usage of struct xfs_dir2_data a64b041 xfs: kill struct xfs_dir2_block 4f6ae1a xfs: avoid usage of struct xfs_dir2_block 78f70cd xfs: cleanup the definition of struct xfs_dir2_sf_entry ac8ba50 xfs: kill struct xfs_dir2_sf 8bc3878 xfs: cleanup shortform directory inode number handling 4fb44c8 xfs: factor out xfs_dir2_leaf_find_entry 29d104a xfs: kill the unused struct xfs_sync_work f3ca873 xfs: remove i_transp 7a249cf xfs: fix filesystsem freeze race in xfs_trans_alloc 33b8f7c xfs: improve sync behaviour in the face of aggressive dirtying 8f04c47 xfs: split xfs_itruncate_finish 857b977 xfs: kill xfs_itruncate_start 681b120 xfs: always log timestamp updates in xfs_setattr_size c4ed424 xfs: split xfs_setattr dec58f1 xfs: work around bogus gcc warning in xfs_allocbt_init_cursor dbcdde3 xfs: re-enable non-blocking behaviour in xfs_map_blocks 680a647 xfs: PF_FSTRANS should never be set in ->writepage from 1316d4da3f632d5843d5a446203e73067dc40f09 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79 Author: Chandra Seetharaman Date: Thu Jun 9 16:47:49 2011 +0000 xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact() Remove two variables that serve no purpose in xfs_alloc_ag_vextent_exact(). Signed-off-by: Chandra Seetharaman Signed-off-by: Alex Elder commit c0e090ced259b85b854636c99dda95b7070a2785 Author: Eric Sandeen Date: Fri May 20 21:52:17 2011 +0000 xfs: consolidate & clarify mount sanity checks Pavol pointed out that there is one silent error case in the mount path, and that others are rather uninformative. I've taken Pavol's suggested patch and extended it a bit to also: * fix a message which says "turned off" but actually errors out * consolidate the vaguely differentiated "SB sanity check [12]" messages, and hexdump the superblock for analysis Original-patch-by: Pavol Gono Signed-off-by: Eric Sandeen Signed-off-by: Alex Elder commit e163cbde981c5988c3e80ca29589132336f18a72 Author: Christoph Hellwig Date: Fri Jul 8 14:36:36 2011 +0200 xfs: avoid a few disk cache flushes There is no need for a pre-flush when doing writing the second part of a split log buffer, and if we are using an external log there is no need to do a full cache flush of the log device at all given that all writes to it use the FUA flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 1d5ae5dfeee024d51fb2c0205035d7611a8f0c86 Author: Christoph Hellwig Date: Fri Jul 8 14:36:32 2011 +0200 xfs: cleanup I/O-related buffer flags Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and XBF_FLUSH to allow more fine grained control over the bio flags. Also cleanup processing of the flags in _xfs_buf_ioapply to make more sense, and renumber the sparse flag number space to group flags by purpose. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c8da0faf6b07623c473cab42967f943ad4ab7560 Author: Christoph Hellwig Date: Fri Jul 8 14:36:25 2011 +0200 xfs: return the buffer locked from xfs_buf_get_uncached All other xfs_buf_get/read-like helpers return the buffer locked, make sure xfs_buf_get_uncached isn't different for no reason. Half of the callers already lock it directly after, and the others probably should also keep it locked if only for consistency and beeing able to use xfs_buf_rele, but I'll leave that for later. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 0c842ad46a51891ac4420b7285613f4134a65ccd Author: Christoph Hellwig Date: Fri Jul 8 14:36:19 2011 +0200 xfs: clean up buffer locking helpers Rename xfs_buf_cond_lock and reverse it's return value to fit most other trylock operations in the Kernel and XFS (with the exception of down_trylock, after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val with an xfs_buf_islocked for use in asserts, or and opencoded variant in tracing. remove the XFS_BUF_* wrappers for all the locking helpers. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit bbb4197c73be356a052dac25cce5ed0c157c6c90 Author: Christoph Hellwig Date: Fri Jul 8 14:36:10 2011 +0200 xfs: remove the unused xfs_bufhash structure Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 69ef921b55cc3788d1d2a27b33b27d04acd0090a Author: Christoph Hellwig Date: Fri Jul 8 14:36:05 2011 +0200 xfs: byteswap constants instead of variables Micro-optimize various comparisms by always byteswapping the constant instead of the variable, which allows to do the swap at compile instead of runtime. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 218106a1104c598011e5df9d9aac7e0416be03e6 Author: Christoph Hellwig Date: Fri Jul 8 14:35:58 2011 +0200 xfs: use generic get_unaligned_beXX helpers Switch the shortform directory code over to use the generic get_unaligned_beXX helpers instead of reinventing them. As a result kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into xfs_linux.h. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 2282396d8157033503318fe4dee77ba82dc9d144 Author: Christoph Hellwig Date: Fri Jul 8 14:35:53 2011 +0200 xfs: cleanup struct xfs_dir2_leaf Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe an XFS dir2 leaf format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. Remove the members that are after the first variable sized array, given that they could only be used for sizeof expressions that can as well just use the underlying types directly, and make the ents array a real C99 variable sized array. Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf entry which already was convoluted somewhat readable after using the longer type names in the sizeof expressions. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 3ed8638f8867b4d0df1ec606231a087ff06c4a59 Author: Christoph Hellwig Date: Fri Jul 8 14:35:50 2011 +0200 xfs: cleanup the definition of struct xfs_dir2_data_entry Remove the tag member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 0ba9cd84ef2af58645333a86f9c901684ab1fef6 Author: Christoph Hellwig Date: Fri Jul 8 14:35:42 2011 +0200 xfs: kill struct xfs_dir2_data Remove the confusing xfs_dir2_data structure. It is supposed to describe an XFS dir2 data btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c2066e2662070e794f57a96a129c42575e77cfcb Author: Christoph Hellwig Date: Fri Jul 8 14:35:38 2011 +0200 xfs: avoid usage of struct xfs_dir2_data In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_data instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a64b04179735de6bfd9f00c130a68ed7f20d18ef Author: Christoph Hellwig Date: Fri Jul 8 14:35:32 2011 +0200 xfs: kill struct xfs_dir2_block Remove the confusing xfs_dir2_block structure. It is supposed to describe an XFS dir2 block format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 4f6ae1a49ed5c81501d6f7385416bb4e07289e99 Author: Christoph Hellwig Date: Fri Jul 8 14:35:27 2011 +0200 xfs: avoid usage of struct xfs_dir2_block In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_block instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 78f70cd7b7e8fd44dc89af4f72fb110d865338a1 Author: Christoph Hellwig Date: Fri Jul 8 14:35:19 2011 +0200 xfs: cleanup the definition of struct xfs_dir2_sf_entry Remove the inumber member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Based on this clean up the helpers to calculate the entry size. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit ac8ba50f6be4a3ab49a2ad2cb676422af4ebaf8a Author: Christoph Hellwig Date: Fri Jul 8 14:35:13 2011 +0200 xfs: kill struct xfs_dir2_sf The list field of it is never cactually used, so all uses can simply be replaced with the xfs_dir2_sf_hdr_t type that it has as first member. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 8bc387875870c87087f138741f456983cbc54660 Author: Christoph Hellwig Date: Fri Jul 8 14:35:03 2011 +0200 xfs: cleanup shortform directory inode number handling Refactor the shortform directory helpers that deal with the 32-bit vs 64-bit wide inode numbers into more sensible helpers, and kill the xfs_intino_t typedef that is now superflous. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 4fb44c8272a071290d2ad76164c532fa2902b604 Author: Christoph Hellwig Date: Fri Jul 8 14:34:59 2011 +0200 xfs: factor out xfs_dir2_leaf_find_entry Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code from xfs_dir2_leaf_addname xfs_dir2_leafn_add. Found by Eric Sandeen using an automated code duplication checker. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 29d104af0a92ba1eac74b636da7fcf88242e1180 Author: Christoph Hellwig Date: Fri Jul 8 14:34:51 2011 +0200 xfs: kill the unused struct xfs_sync_work Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit f3ca87389dbff0a3dc1a7cb2fa7c62e25421c66c Author: Christoph Hellwig Date: Fri Jul 8 14:34:47 2011 +0200 xfs: remove i_transp Remove the transaction pointer in the inode. It's only used to avoid passing down an argument in the bmap code, and for a few asserts in the transaction code right now. Also use the local variable ip in a few more places in xfs_inode_item_unlock, so that it isn't only used for debug builds after the above change. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 7a249cf83da1813cfa71cfe1e265b40045eceb47 Author: Christoph Hellwig Date: Fri Jul 8 14:34:42 2011 +0200 xfs: fix filesystsem freeze race in xfs_trans_alloc As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem freeze when it sleeps during the memory allocation. Fix this by moving the wait_for_freeze call after the memory allocation. This means moving the freeze into the low-level _xfs_trans_alloc helper, which thus grows a new argument. Also fix up some comments in that area while at it. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 33b8f7c2479dfcbc5c27174e44b5f659d9f33c70 Author: Christoph Hellwig Date: Fri Jul 8 14:34:39 2011 +0200 xfs: improve sync behaviour in the face of aggressive dirtying The following script from Wu Fengguang shows very bad behaviour in XFS when aggressively dirtying data during a sync on XFS, with sync times up to almost 10 times as long as ext4. A large part of the issue is that XFS writes data out itself two times in the ->sync_fs method, overriding the livelock protection in the core writeback code, and another issue is the lock-less xfs_ioend_wait call, which doesn't prevent new ioend from being queue up while waiting for the count to reach zero. This patch removes the XFS-internal sync calls and relies on the VFS to do it's work just like all other filesystems do. Note that the i_iocount wait which is rather suboptimal is simply removed here. We already do it in ->write_inode, which keeps the current supoptimal behaviour. We'll eventually need to remove that as well, but that's material for a separate commit. ------------------------------ snip ------------------------------ #!/bin/sh umount /dev/sda7 mkfs.xfs -f /dev/sda7 # mkfs.ext4 /dev/sda7 # mkfs.btrfs /dev/sda7 mount /dev/sda7 /fs echo $((50<<20)) > /proc/sys/vm/dirty_bytes pid= for i in `seq 10` do dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 & pid="$pid $!" done sleep 1 tic=$(date +'%s') sync tac=$(date +'%s') echo echo sync time: $((tac-tic)) egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; } ------------------------------ snip ------------------------------ Signed-off-by: Christoph Hellwig Reported-by: Wu Fengguang Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 8f04c47aa9712874af2c8816c2ca2a332cba80e4 Author: Christoph Hellwig Date: Fri Jul 8 14:34:34 2011 +0200 xfs: split xfs_itruncate_finish Split the guts of xfs_itruncate_finish that loop over the existing extents and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs. Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish, which allows to simplify the latter a lot, by only letting it deal with the data fork. As a result xfs_itruncate_finish is renamed to xfs_itruncate_data to make its use case more obvious. Also remove the sync parameter from xfs_itruncate_data, which has been unessecary since the introduction of the busy extent list in 2002, and completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was made a no-op. I can't actually see why the xfs_attr_inactive needs to set the transaction sync, but let's keep this patch simple and without changes in behaviour. Also avoid passing a useless argument to xfs_isize_check, and make it private to xfs_inode.c. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 857b9778d86ccba7d7b42c9d8aeecde794ec8a6b Author: Christoph Hellwig Date: Fri Jul 8 14:34:30 2011 +0200 xfs: kill xfs_itruncate_start xfs_itruncate_start is a rather length wrapper that evaluates to a call to xfs_ioend_wait and xfs_tosspages, and only has two callers. Instead of using the complicated checks left over from IRIX where we can to truncate the pagecache just call xfs_tosspages (aka truncate_inode_pages) directly as we want to get rid of all data after i_size, and truncate_inode_pages handles incorrect alignments and too large offsets just fine. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 681b120018e3c7e2680c93e8188c5ee34215df2f Author: Christoph Hellwig Date: Fri Jul 8 14:34:26 2011 +0200 xfs: always log timestamp updates in xfs_setattr_size Get rid of the special case where we use unlogged timestamp updates for a truncate to the current inode size, and just call xfs_setattr_nonsize for it to treat it like a utimes calls. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0 Author: Christoph Hellwig Date: Fri Jul 8 14:34:23 2011 +0200 xfs: split xfs_setattr Split up xfs_setattr into two functions, one for the complex truncate handling, and one for the trivial attribute updates. Also move both new routines to xfs_iops.c as they are fairly Linux-specific. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit dec58f1dfd30a3c3e9dadc808692f4e5cd922745 Author: Christoph Hellwig Date: Fri Jul 8 14:34:18 2011 +0200 xfs: work around bogus gcc warning in xfs_allocbt_init_cursor GCC 4.6 complains about an array subscript is above array bounds when using the btree index to index into the agf_levels array. The only two indices passed in are 0 and 1, and we have an assert insuring that. Replace the trick of using the array index directly with using constants in the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit dbcdde3e76f45d56c4a30ca6c5d69b6d473d3fd1 Author: Christoph Hellwig Date: Fri Jul 8 14:34:14 2011 +0200 xfs: re-enable non-blocking behaviour in xfs_map_blocks The non-blockig behaviour in xfs_vm_writepage currently is conditional on having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. The latter used to be used by both pdflush, kswapd and a few other places in older kernels, but has been fading out starting with the introduction of the per-bdi flusher threads. Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back the behaviour we want. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder Reviewed-by: Dave Chinner commit 680a647b49fa52de0b37b8bc58a3a8c4bc76b262 Author: Christoph Hellwig Date: Fri Jul 8 14:34:05 2011 +0200 xfs: PF_FSTRANS should never be set in ->writepage Now that we reject direct reclaim in addition to always using GFP_NOFS allocation there's no chance we'll ever end up in ->writepage with PF_FSTRANS set. Add a WARN_ON if we hit this case, and stop checking if we'd actually need to start a transaction. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_acl.c | 2 +- fs/xfs/linux-2.6/xfs_aops.c | 19 +-- fs/xfs/linux-2.6/xfs_buf.c | 69 ++---- fs/xfs/linux-2.6/xfs_buf.h | 54 ++--- fs/xfs/linux-2.6/xfs_file.c | 2 +- fs/xfs/linux-2.6/xfs_iops.c | 433 ++++++++++++++++++++++++++++++++- fs/xfs/linux-2.6/xfs_linux.h | 7 +- fs/xfs/linux-2.6/xfs_sync.c | 8 +- fs/xfs/linux-2.6/xfs_sync.h | 8 - fs/xfs/linux-2.6/xfs_trace.h | 48 +--- fs/xfs/quota/xfs_dquot.c | 6 +- fs/xfs/quota/xfs_qm_syscalls.c | 2 +- fs/xfs/quota/xfs_trans_dquot.c | 2 +- fs/xfs/xfs_alloc.c | 14 +- fs/xfs/xfs_alloc_btree.c | 9 +- fs/xfs/xfs_arch.h | 136 ---------- fs/xfs/xfs_attr.c | 41 ++-- fs/xfs/xfs_attr_leaf.c | 60 +++--- fs/xfs/xfs_bmap.c | 37 ++-- fs/xfs/xfs_bmap_btree.c | 8 +- fs/xfs/xfs_btree.c | 28 +- fs/xfs/xfs_buf_item.c | 6 +- fs/xfs/xfs_da_btree.c | 69 +++--- fs/xfs/xfs_dir2.c | 6 +- fs/xfs/xfs_dir2_block.c | 246 +++++++++---------- fs/xfs/xfs_dir2_block.h | 49 ++-- fs/xfs/xfs_dir2_data.c | 320 +++++++++++++------------ fs/xfs/xfs_dir2_data.h | 50 ++-- fs/xfs/xfs_dir2_leaf.c | 386 ++++++++++++++++------------- fs/xfs/xfs_dir2_leaf.h | 40 +++- fs/xfs/xfs_dir2_node.c | 185 +++++---------- fs/xfs/xfs_dir2_sf.c | 330 +++++++++++++++---------- fs/xfs/xfs_dir2_sf.h | 94 +++----- fs/xfs/xfs_fs.h | 5 + fs/xfs/xfs_fsops.c | 2 +- fs/xfs/xfs_ialloc.c | 14 +- fs/xfs/xfs_inode.c | 528 ++++++++++------------------------------ fs/xfs/xfs_inode.h | 25 +-- fs/xfs/xfs_inode_item.c | 13 +- fs/xfs/xfs_inum.h | 11 - fs/xfs/xfs_iomap.c | 3 +- fs/xfs/xfs_log.c | 34 ++-- fs/xfs/xfs_log_recover.c | 30 ++- fs/xfs/xfs_mount.c | 66 ++--- fs/xfs/xfs_trans.c | 27 +-- fs/xfs/xfs_trans.h | 10 +- fs/xfs/xfs_trans_buf.c | 4 +- fs/xfs/xfs_trans_inode.c | 9 - fs/xfs/xfs_vnodeops.c | 479 +----------------------------------- fs/xfs/xfs_vnodeops.h | 3 +- 50 files changed, 1770 insertions(+), 2267 deletions(-) delete mode 100644 fs/xfs/xfs_arch.h hooks/post-receive -- XFS development tree From aelder@sgi.com Fri Jul 8 16:07:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p68L7hJD006408 for ; Fri, 8 Jul 2011 16:07:43 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21-nlb.corp.sgi.com [137.38.102.126]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5FDAB8F804B; Fri, 8 Jul 2011 14:07:40 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 8 Jul 2011 16:07:40 -0500 Subject: Re: [RFC] remove filestreams support? From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , In-Reply-To: <20110705110127.GA27102@infradead.org> References: <20110704153443.GA21501@infradead.org> <20110705015458.GZ561@dastard> <20110705110127.GA27102@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 8 Jul 2011 16:07:39 -0500 Message-ID: <1310159259.3024.63.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-05 at 07:01 -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 11:54:58AM +1000, Dave Chinner wrote: > > So rather than deprecating the functionality, perhaps we should look > > at implementing it through a simpler, more generic, better > > integrated interface? That will increase the usefulness of the > > functionality for a much wider audience than it has now, and also > > provide the virt/blk throttling folk with exactly the "don't cross > > the streams" functionality they suggest filesystems are unable to > > support easily..... > > That does indeed sound simpler, and also more useful. Do the users > who have chimed in here (and off list) think such a scheme would be > useful for them? We have customers that make good use of filestreams. I don't think it matters whether they use CXFS or XFS, it's a very useful allocation strategy, and an important feature for certain applications. I like the idea of generalizing it and/or improving its interface though. -Alex From debbugs@busoni.debian.org Sat Jul 9 05:49:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p69Annv9047604 for ; Sat, 9 Jul 2011 05:49:49 -0500 X-ASG-Debug-ID: 1310208585-452601a90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from busoni.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 569D35A2FA for ; Sat, 9 Jul 2011 03:49:45 -0700 (PDT) Received: from busoni.debian.org (busoni.debian.org [140.211.15.34]) by cuda.sgi.com with ESMTP id J9PBpWnXKpOIvSLI for ; Sat, 09 Jul 2011 03:49:45 -0700 (PDT) Received: from debbugs by busoni.debian.org with local (Exim 4.72) (envelope-from ) id 1QfV5V-00056m-JD; Sat, 09 Jul 2011 10:48:42 +0000 Date: Sat, 09 Jul 2011 10:48:41 +0000 X-Loop: owner@bugs.debian.org From: owner@bugs.debian.org (Debian Bug Tracking System) To: Matthias Klose Cc: User Mode Linux Maintainers (uml-utilities for {553868}), Sam Hocevar (Debian packages) (rcalc for {553836}), Javier Fernandez-Sanguino Pen~a (honeyd for {553786}), "John G. Hasler" (bc for {553731}, units for {553869}), Debian GGZ Maintainers (ggz-txt-client for {553771}), Decklin Foster (rc for {553835}, yafc for {553874}), Michael Banck (maloc for {553808}), =?UTF-8?Q?Andr=C3=A9s_?= =?UTF-8?Q?Rold=C3=A1n?= (eresi for {553752}), Debian PhotoTools Maintainers (gphoto2 for {553775}), Debian LVM Team (lvm2 for {553807}), Marcin Owsiany (ekg for {553749}), =?UTF-8?Q?G=C3=BCrkan_?= =?UTF-8?Q?Seng=C3=BCn?= (lie for {553802}), XFS Development Team (xfsprogs for {553875}), Enrico Tassi (lua50 for {553806}), Martin Buck (apcalc for {553725}), Ben Wong (zssh for {553877}), Pedro Zorzenon Neto (tdl for {553863}), Marcin Wrochniak (aptsh for {553726}), Gerfried Fuchs (abook for {553712,553719}), Isaac Jones (hugs98 for {553783}), "Gustavo R. Montesino" (libgda3 for {553796}), Michael Koch (cyphesis-cpp for {553744}), Chris Taylor (socat for {553853}), Richard Atterer (udftools for {553867}), Tim Abbott (singular for {553854}), Branden Robinson (xtrs for {553884}), Luis Uribe (nwall for {553817}), Claudio Matsuoka (coldfire for {553740}), Daniele Sempione (wcalc for {553888}), Pawel Wiecek (mush for {553814}) X-ASG-Orig-Subj: Processed: libreadline5-dev not provided anymore: use either libreadline-dev or libreadline-gplv2-dev (see the reports for detail) Subject: Processed: libreadline5-dev not provided anymore: use either libreadline-dev or libreadline-gplv2-dev (see the reports for detail) In-Reply-To: <4E18313E.2080804@debian.org> References: <4E18313E.2080804@debian.org> Message-ID: Precedence: bulk X-Debian-PR-Package: X-Debian-PR-Message: transcript Sender: Debian BTS X-Barracuda-Connect: busoni.debian.org[140.211.15.34] X-Barracuda-Start-Time: 1310208586 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2997 1.0000 -0.3496 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.35 X-Barracuda-Spam-Status: No, SCORE=-0.35 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68411 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Processing commands for control@bugs.debian.org: > severity 553749 serious Bug #553749 [ekg] Remove obsolete libreadline5-dev dependency Severity set to 'serious' from 'important' > severity 553712 serious Bug #553712 [abook] replacing libreadline5-dev build dependency with libreadline-dev Bug #553719 [abook] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' Severity set to 'serious' from 'important' > severity 553725 serious Bug #553725 [apcalc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553726 serious Bug #553726 [aptsh] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553731 serious Bug #553731 [bc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553740 serious Bug #553740 [coldfire] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553752 serious Bug #553752 [eresi] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553771 serious Bug #553771 [ggz-txt-client] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553775 serious Bug #553775 [gphoto2] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553783 serious Bug #553783 [hugs98] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553786 serious Bug #553786 [honeyd] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553796 serious Bug #553796 [libgda3] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553802 serious Bug #553802 [lie] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553806 serious Bug #553806 [lua50] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553807 serious Bug #553807 [lvm2] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553808 serious Bug #553808 [maloc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553814 serious Bug #553814 [mush] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553817 serious Bug #553817 [nwall] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553835 serious Bug #553835 [rc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553836 serious Bug #553836 [rcalc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553854 serious Bug #553854 [singular] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553863 serious Bug #553863 [tdl] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553867 serious Bug #553867 [udftools] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553868 serious Bug #553868 [uml-utilities] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553869 serious Bug #553869 [units] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553874 serious Bug #553874 [yafc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553875 serious Bug #553875 [xfsprogs] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553877 serious Bug #553877 [zssh] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553884 serious Bug #553884 [xtrs] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553888 serious Bug #553888 [wcalc] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > severity 553853 serious Bug #553853 [socat] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'wishlist' > severity 553744 serious Bug #553744 [cyphesis-cpp] replacing libreadline5-dev build dependency with libreadline-dev Severity set to 'serious' from 'important' > tags 553749 + sid wheezy Bug #553749 [ekg] Remove obsolete libreadline5-dev dependency Added tag(s) sid and wheezy. > tags 553712 + sid wheezy Bug #553712 [abook] replacing libreadline5-dev build dependency with libreadline-dev Bug #553719 [abook] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. Added tag(s) sid and wheezy. > tags 553725 + sid wheezy Bug #553725 [apcalc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553726 + sid wheezy Bug #553726 [aptsh] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553731 + sid wheezy Bug #553731 [bc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553740 + sid wheezy Bug #553740 [coldfire] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553752 + sid wheezy Bug #553752 [eresi] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553771 + sid wheezy Bug #553771 [ggz-txt-client] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553775 + sid wheezy Bug #553775 [gphoto2] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553783 + sid wheezy Bug #553783 [hugs98] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553786 + sid wheezy Bug #553786 [honeyd] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553796 + sid wheezy Bug #553796 [libgda3] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553802 + sid wheezy Bug #553802 [lie] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553806 + sid wheezy Bug #553806 [lua50] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553807 + sid wheezy Bug #553807 [lvm2] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553808 + sid wheezy Bug #553808 [maloc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553814 + sid wheezy Bug #553814 [mush] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553817 + sid wheezy Bug #553817 [nwall] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553835 + sid wheezy Bug #553835 [rc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553836 + sid wheezy Bug #553836 [rcalc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553854 + sid wheezy Bug #553854 [singular] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553863 + sid wheezy Bug #553863 [tdl] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553867 + sid wheezy Bug #553867 [udftools] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553868 + sid wheezy Bug #553868 [uml-utilities] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553869 + sid wheezy Bug #553869 [units] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553874 + sid wheezy Bug #553874 [yafc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553875 + sid wheezy Bug #553875 [xfsprogs] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553877 + sid wheezy Bug #553877 [zssh] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553884 + sid wheezy Bug #553884 [xtrs] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553888 + sid wheezy Bug #553888 [wcalc] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553853 + sid wheezy Bug #553853 [socat] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > tags 553744 + sid wheezy Bug #553744 [cyphesis-cpp] replacing libreadline5-dev build dependency with libreadline-dev Added tag(s) sid and wheezy. > thanks Stopping processing here. Please contact me if you need assistance. -- 553744: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553744 553771: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553771 553783: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553783 553867: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553867 553740: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553740 553726: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553726 553749: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553749 553725: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553725 553808: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553808 553775: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553775 553802: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553802 553786: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553786 553874: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553874 553863: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553863 553752: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553752 553814: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553814 553796: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553796 553806: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553806 553836: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553836 553835: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553835 553817: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553817 553888: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553888 553807: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553807 553869: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553869 553853: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553853 553868: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553868 553712: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553712 553854: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553854 553875: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553875 553877: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553877 553884: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553884 553731: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=553731 Debian Bug Tracking System Contact owner@bugs.debian.org with problems From vindex+lists-xfs@apartia.org Sun Jul 10 10:54:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AFsiYq139595 for ; Sun, 10 Jul 2011 10:54:49 -0500 X-ASG-Debug-ID: 1310313281-247a00340000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from zenon.apartia.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8AE6D1D81D45 for ; Sun, 10 Jul 2011 08:54:41 -0700 (PDT) Received: from zenon.apartia.fr (zenon.apartia.fr [82.66.93.83]) by cuda.sgi.com with ESMTP id ALKfdUYtAKD8k8HB for ; Sun, 10 Jul 2011 08:54:41 -0700 (PDT) Received: by zenon.apartia.fr (Postfix, from userid 1000) id 13CDDA801206E; Sun, 10 Jul 2011 17:54:38 +0200 (CEST) Date: Sun, 10 Jul 2011 17:54:37 +0200 From: Louis-David Mitterrand To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfs_repair stuck? Subject: xfs_repair stuck? Message-ID: <20110710155437.GA19200@apartia.fr> Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: zenon.apartia.fr[82.66.93.83] X-Barracuda-Start-Time: 1310313282 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5067 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68529 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi, I've lauched xfs_repair on pretty damaged 300G partition and it has been stuck for a couple hours at this stage: bad magic # 0xdbe565b2 in inobt block 19/6115 expected level 1 got 34602 in inobt block 19/6115 agi_count 24064, counted 0 in ag 19 agi_freecount 1375, counted 0 in ag 19 agi unlinked bucket 0 is 44810432 in ag 19 (inode=2594947264) agi unlinked bucket 11 is 44722251 in ag 19 (inode=2594859083) agi unlinked bucket 24 is 44811800 in ag 19 (inode=2594948632) agi unlinked bucket 32 is 44722400 in ag 19 (inode=2594859232) agi unlinked bucket 47 is 65583 in ag 19 (inode=2550202415) agi unlinked bucket 48 is 44811056 in ag 19 (inode=2594947888) agi unlinked bucket 57 is 45920825 in ag 19 (inode=2596057657) I tried interrupting and re-launching but it always stops here. Any idea? Thanks, From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_63,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLkt153464 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331017-0f62007a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F6AF1793DB1 for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id vd9w2EpdMoFR5dCe for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xF-0002un-Gt for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:17 +0000 Message-Id: <20110710205017.485558926@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:20 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Subject: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-factor-da_grow_inode X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor the meat of those two functions into a new common helper. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-07-09 12:20:44.175127246 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-07-09 12:20:45.601793841 +0200 @@ -1543,79 +1543,62 @@ const struct xfs_nameops xfs_default_nam .compname = xfs_da_compname }; -/* - * Add a block to the btree ahead of the file. - * Return the new block number to the caller. - */ int -xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno) +xfs_da_grow_inode_int( + struct xfs_da_args *args, + xfs_fileoff_t *bno, + int count) { - xfs_fileoff_t bno, b; - xfs_bmbt_irec_t map; - xfs_bmbt_irec_t *mapp; - xfs_inode_t *dp; - int nmap, error, w, count, c, got, i, mapi; - xfs_trans_t *tp; - xfs_mount_t *mp; - xfs_drfsbno_t nblks; - - dp = args->dp; - mp = dp->i_mount; - w = args->whichfork; - tp = args->trans; - nblks = dp->i_d.di_nblocks; + struct xfs_trans *tp = args->trans; + struct xfs_inode *dp = args->dp; + int w = args->whichfork; + xfs_drfsbno_t nblks = dp->i_d.di_nblocks; + struct xfs_bmbt_irec map, *mapp; + int nmap, error, got, i, mapi; /* - * For new directories adjust the file offset and block count. - */ - if (w == XFS_DATA_FORK) { - bno = mp->m_dirleafblk; - count = mp->m_dirblkfsbs; - } else { - bno = 0; - count = 1; - } - /* * Find a spot in the file space to put the new block. */ - if ((error = xfs_bmap_first_unused(tp, dp, count, &bno, w))) + error = xfs_bmap_first_unused(tp, dp, count, bno, w); + if (error) return error; - if (w == XFS_DATA_FORK) - ASSERT(bno >= mp->m_dirleafblk && bno < mp->m_dirfreeblk); + /* * Try mapping it in one filesystem block. */ nmap = 1; ASSERT(args->firstblock != NULL); - if ((error = xfs_bmapi(tp, dp, bno, count, + error = xfs_bmapi(tp, dp, *bno, count, xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE|XFS_BMAPI_METADATA| XFS_BMAPI_CONTIG, args->firstblock, args->total, &map, &nmap, - args->flist))) { + args->flist); + if (error) return error; - } + ASSERT(nmap <= 1); if (nmap == 1) { mapp = ↦ mapi = 1; - } - /* - * If we didn't get it and the block might work if fragmented, - * try without the CONTIG flag. Loop until we get it all. - */ - else if (nmap == 0 && count > 1) { + } else if (nmap == 0 && count > 1) { + xfs_fileoff_t b; + int c; + + /* + * If we didn't get it and the block might work if fragmented, + * try without the CONTIG flag. Loop until we get it all. + */ mapp = kmem_alloc(sizeof(*mapp) * count, KM_SLEEP); - for (b = bno, mapi = 0; b < bno + count; ) { + for (b = *bno, mapi = 0; b < *bno + count; ) { nmap = MIN(XFS_BMAP_MAX_NMAP, count); - c = (int)(bno + count - b); - if ((error = xfs_bmapi(tp, dp, b, c, + c = (int)(*bno + count - b); + error = xfs_bmapi(tp, dp, b, c, xfs_bmapi_aflag(w)|XFS_BMAPI_WRITE| XFS_BMAPI_METADATA, args->firstblock, args->total, - &mapp[mapi], &nmap, args->flist))) { - kmem_free(mapp); - return error; - } + &mapp[mapi], &nmap, args->flist); + if (error) + goto out_free_map; if (nmap < 1) break; mapi += nmap; @@ -1626,24 +1609,53 @@ xfs_da_grow_inode(xfs_da_args_t *args, x mapi = 0; mapp = NULL; } + /* * Count the blocks we got, make sure it matches the total. */ for (i = 0, got = 0; i < mapi; i++) got += mapp[i].br_blockcount; - if (got != count || mapp[0].br_startoff != bno || + if (got != count || mapp[0].br_startoff != *bno || mapp[mapi - 1].br_startoff + mapp[mapi - 1].br_blockcount != - bno + count) { - if (mapp != &map) - kmem_free(mapp); - return XFS_ERROR(ENOSPC); + *bno + count) { + error = XFS_ERROR(ENOSPC); + goto out_free_map; } - if (mapp != &map) - kmem_free(mapp); + /* account for newly allocated blocks in reserved blocks total */ args->total -= dp->i_d.di_nblocks - nblks; - *new_blkno = (xfs_dablk_t)bno; - return 0; + +out_free_map: + if (mapp != &map) + kmem_free(mapp); + return error; +} + +/* + * Add a block to the btree ahead of the file. + * Return the new block number to the caller. + */ +int +xfs_da_grow_inode( + struct xfs_da_args *args, + xfs_dablk_t *new_blkno) +{ + xfs_fileoff_t bno; + int count; + int error; + + if (args->whichfork == XFS_DATA_FORK) { + bno = args->dp->i_mount->m_dirleafblk; + count = args->dp->i_mount->m_dirblkfsbs; + } else { + bno = 0; + count = 1; + } + + error = xfs_da_grow_inode_int(args, &bno, count); + if (!error) + *new_blkno = (xfs_dablk_t)bno; + return error; } /* Index: xfs/fs/xfs/xfs_da_btree.h =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.h 2011-07-09 12:20:26.615128136 +0200 +++ xfs/fs/xfs/xfs_da_btree.h 2011-07-09 12:20:45.605127174 +0200 @@ -248,6 +248,8 @@ int xfs_da_blk_link(xfs_da_state_t *stat * Utility routines. */ int xfs_da_grow_inode(xfs_da_args_t *args, xfs_dablk_t *new_blkno); +int xfs_da_grow_inode_int(struct xfs_da_args *args, xfs_fileoff_t *bno, + int count); int xfs_da_get_buf(struct xfs_trans *trans, struct xfs_inode *dp, xfs_dablk_t bno, xfs_daddr_t mappedbno, xfs_dabuf_t **bp, int whichfork); Index: xfs/fs/xfs/xfs_dir2.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2.c 2011-07-09 12:20:44.175127246 +0200 +++ xfs/fs/xfs/xfs_dir2.c 2011-07-09 12:20:45.608460507 +0200 @@ -497,129 +497,34 @@ xfs_dir_canenter( /* * Add a block to the directory. - * This routine is for data and free blocks, not leaf/node blocks - * which are handled by xfs_da_grow_inode. + * + * This routine is for data and free blocks, not leaf/node blocks which are + * handled by xfs_da_grow_inode. */ int xfs_dir2_grow_inode( - xfs_da_args_t *args, - int space, /* v2 dir's space XFS_DIR2_xxx_SPACE */ - xfs_dir2_db_t *dbp) /* out: block number added */ + struct xfs_da_args *args, + int space, /* v2 dir's space XFS_DIR2_xxx_SPACE */ + xfs_dir2_db_t *dbp) /* out: block number added */ { - xfs_fileoff_t bno; /* directory offset of new block */ - int count; /* count of filesystem blocks */ - xfs_inode_t *dp; /* incore directory inode */ - int error; - int got; /* blocks actually mapped */ - int i; - xfs_bmbt_irec_t map; /* single structure for bmap */ - int mapi; /* mapping index */ - xfs_bmbt_irec_t *mapp; /* bmap mapping structure(s) */ - xfs_mount_t *mp; - int nmap; /* number of bmap entries */ - xfs_trans_t *tp; - xfs_drfsbno_t nblks; + struct xfs_inode *dp = args->dp; + struct xfs_mount *mp = dp->i_mount; + xfs_fileoff_t bno; /* directory offset of new block */ + int count; /* count of filesystem blocks */ + int error; trace_xfs_dir2_grow_inode(args, space); - dp = args->dp; - tp = args->trans; - mp = dp->i_mount; - nblks = dp->i_d.di_nblocks; /* * Set lowest possible block in the space requested. */ bno = XFS_B_TO_FSBT(mp, space * XFS_DIR2_SPACE_SIZE); count = mp->m_dirblkfsbs; - /* - * Find the first hole for our block. - */ - if ((error = xfs_bmap_first_unused(tp, dp, count, &bno, XFS_DATA_FORK))) - return error; - nmap = 1; - ASSERT(args->firstblock != NULL); - /* - * Try mapping the new block contiguously (one extent). - */ - if ((error = xfs_bmapi(tp, dp, bno, count, - XFS_BMAPI_WRITE|XFS_BMAPI_METADATA|XFS_BMAPI_CONTIG, - args->firstblock, args->total, &map, &nmap, - args->flist))) - return error; - ASSERT(nmap <= 1); - if (nmap == 1) { - mapp = ↦ - mapi = 1; - } - /* - * Didn't work and this is a multiple-fsb directory block. - * Try again with contiguous flag turned on. - */ - else if (nmap == 0 && count > 1) { - xfs_fileoff_t b; /* current file offset */ - /* - * Space for maximum number of mappings. - */ - mapp = kmem_alloc(sizeof(*mapp) * count, KM_SLEEP); - /* - * Iterate until we get to the end of our block. - */ - for (b = bno, mapi = 0; b < bno + count; ) { - int c; /* current fsb count */ - - /* - * Can't map more than MAX_NMAP at once. - */ - nmap = MIN(XFS_BMAP_MAX_NMAP, count); - c = (int)(bno + count - b); - if ((error = xfs_bmapi(tp, dp, b, c, - XFS_BMAPI_WRITE|XFS_BMAPI_METADATA, - args->firstblock, args->total, - &mapp[mapi], &nmap, args->flist))) { - kmem_free(mapp); - return error; - } - if (nmap < 1) - break; - /* - * Add this bunch into our table, go to the next offset. - */ - mapi += nmap; - b = mapp[mapi - 1].br_startoff + - mapp[mapi - 1].br_blockcount; - } - } - /* - * Didn't work. - */ - else { - mapi = 0; - mapp = NULL; - } - /* - * See how many fsb's we got. - */ - for (i = 0, got = 0; i < mapi; i++) - got += mapp[i].br_blockcount; - /* - * Didn't get enough fsb's, or the first/last block's are wrong. - */ - if (got != count || mapp[0].br_startoff != bno || - mapp[mapi - 1].br_startoff + mapp[mapi - 1].br_blockcount != - bno + count) { - if (mapp != &map) - kmem_free(mapp); - return XFS_ERROR(ENOSPC); - } - /* - * Done with the temporary mapping table. - */ - if (mapp != &map) - kmem_free(mapp); + error = xfs_da_grow_inode_int(args, &bno, count); + if (error) + return error; - /* account for newly allocated blocks in reserved blocks total */ - args->total -= dp->i_d.di_nblocks - nblks; *dbp = xfs_dir2_da_to_db(mp, (xfs_dablk_t)bno); /* @@ -631,7 +536,7 @@ xfs_dir2_grow_inode( size = XFS_FSB_TO_B(mp, bno + count); if (size > dp->i_d.di_size) { dp->i_d.di_size = size; - xfs_trans_log_inode(tp, dp, XFS_ILOG_CORE); + xfs_trans_log_inode(args->trans, dp, XFS_ILOG_CORE); } } return 0; From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoK55153457 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331018-659600770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A710015EED16 for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JmjSVREy7hFRGJf4 for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xE-0002sd-OF for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:16 +0000 Message-Id: <20110710204916.856267100@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:16 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 00/11] a few more cleanups for Linux 3.1 Subject: [PATCH 00/11] a few more cleanups for Linux 3.1 X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A few more touchups for the directory code, including a rewamp of how the headers are structure. My pending pile of buf wrappers removals, given that others are looking into this are now, and some patches to remove long dead and not overly useful debug code. From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_65, J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoK5f153459 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331017-0f6700740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E128A178882C for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id EGAgVBysOV4HYDqi for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xF-0002tj-3g for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:17 +0000 Message-Id: <20110710205017.074624276@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:18 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 02/11] xfs: cleanup struct xfs_dir2_free Subject: [PATCH 02/11] xfs: cleanup struct xfs_dir2_free References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-cleanup-xfs_dir2_free_t X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Change the bests array to be a proper variable sized entry. This is done easily as no one relies on the size of the structure. Also change XFS_DIR2_MAX_FREE_BESTS to an inline function while we're at it. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_format.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_format.h 2011-07-09 13:29:33.488251514 +0200 +++ xfs/fs/xfs/xfs_dir2_format.h 2011-07-09 13:30:38.428248225 +0200 @@ -523,13 +523,15 @@ typedef struct xfs_dir2_free_hdr { typedef struct xfs_dir2_free { xfs_dir2_free_hdr_t hdr; /* block header */ - __be16 bests[1]; /* best free counts */ + __be16 bests[]; /* best free counts */ /* unused entries are -1 */ } xfs_dir2_free_t; -#define XFS_DIR2_MAX_FREE_BESTS(mp) \ - (((mp)->m_dirblksize - (uint)sizeof(struct xfs_dir2_free_hdr)) / \ - (uint)sizeof(xfs_dir2_data_off_t)) +static inline int xfs_dir2_free_max_bests(struct xfs_mount *mp) +{ + return (mp->m_dirblksize - sizeof(struct xfs_dir2_free_hdr)) / + sizeof(xfs_dir2_data_off_t); +} /* * Convert data space db to the corresponding free db. @@ -537,7 +539,7 @@ typedef struct xfs_dir2_free { static inline xfs_dir2_db_t xfs_dir2_db_to_fdb(struct xfs_mount *mp, xfs_dir2_db_t db) { - return XFS_DIR2_FREE_FIRSTDB(mp) + db / XFS_DIR2_MAX_FREE_BESTS(mp); + return XFS_DIR2_FREE_FIRSTDB(mp) + db / xfs_dir2_free_max_bests(mp); } /* @@ -546,7 +548,7 @@ xfs_dir2_db_to_fdb(struct xfs_mount *mp, static inline int xfs_dir2_db_to_fdindex(struct xfs_mount *mp, xfs_dir2_db_t db) { - return db % XFS_DIR2_MAX_FREE_BESTS(mp); + return db % xfs_dir2_free_max_bests(mp); } /* Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-07-09 13:29:20.448252173 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-07-09 13:30:38.428248225 +0200 @@ -408,7 +408,7 @@ xfs_dir2_leafn_lookup_for_addname( ASSERT(be32_to_cpu(free->hdr.magic) == XFS_DIR2_FREE_MAGIC); ASSERT((be32_to_cpu(free->hdr.firstdb) % - XFS_DIR2_MAX_FREE_BESTS(mp)) == 0); + xfs_dir2_free_max_bests(mp)) == 0); ASSERT(be32_to_cpu(free->hdr.firstdb) <= curdb); ASSERT(curdb < be32_to_cpu(free->hdr.firstdb) + be32_to_cpu(free->hdr.nvalid)); @@ -924,7 +924,7 @@ xfs_dir2_leafn_remove( free = fbp->data; ASSERT(free->hdr.magic == cpu_to_be32(XFS_DIR2_FREE_MAGIC)); ASSERT(be32_to_cpu(free->hdr.firstdb) == - XFS_DIR2_MAX_FREE_BESTS(mp) * + xfs_dir2_free_max_bests(mp) * (fdb - XFS_DIR2_FREE_FIRSTDB(mp))); /* * Calculate which entry we need to fix. @@ -1603,7 +1603,7 @@ xfs_dir2_node_addname_int( free->hdr.magic = cpu_to_be32(XFS_DIR2_FREE_MAGIC); free->hdr.firstdb = cpu_to_be32( (fbno - XFS_DIR2_FREE_FIRSTDB(mp)) * - XFS_DIR2_MAX_FREE_BESTS(mp)); + xfs_dir2_free_max_bests(mp)); free->hdr.nvalid = 0; free->hdr.nused = 0; } else { @@ -1620,7 +1620,7 @@ xfs_dir2_node_addname_int( * freespace block, extend that table. */ if (findex >= be32_to_cpu(free->hdr.nvalid)) { - ASSERT(findex < XFS_DIR2_MAX_FREE_BESTS(mp)); + ASSERT(findex < xfs_dir2_free_max_bests(mp)); free->hdr.nvalid = cpu_to_be32(findex + 1); /* * Tag new entry so nused will go up. From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_65, J_CHICKENPOX_66,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLTP153463 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331019-57f103500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7FFF65CCC4 for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YN3u3ST1QitzffOp for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xG-0002yQ-Ul for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:19 +0000 Message-Id: <20110710205018.915767211@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:27 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 11/11] xfs: kill the dead XFS_DABUF debug code Subject: [PATCH 11/11] xfs: kill the dead XFS_DABUF debug code References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-XFS_DABUF_DEBUG X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-07-09 12:26:07.098444231 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-07-09 12:26:44.665108995 +0200 @@ -86,7 +86,7 @@ STATIC void xfs_da_node_unbalance(xfs_da */ STATIC uint xfs_da_node_lasthash(xfs_dabuf_t *bp, int *count); STATIC int xfs_da_node_order(xfs_dabuf_t *node1_bp, xfs_dabuf_t *node2_bp); -STATIC xfs_dabuf_t *xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra); +STATIC xfs_dabuf_t *xfs_da_buf_make(int nbuf, xfs_buf_t **bps); STATIC int xfs_da_blk_unlink(xfs_da_state_t *state, xfs_da_state_blk_t *drop_blk, xfs_da_state_blk_t *save_blk); @@ -1939,8 +1939,7 @@ xfs_da_do_buf( xfs_daddr_t *mappedbnop, xfs_dabuf_t **bpp, int whichfork, - int caller, - inst_t *ra) + int caller) { xfs_buf_t *bp = NULL; xfs_buf_t **bplist; @@ -2079,9 +2078,9 @@ xfs_da_do_buf( * Build a dabuf structure. */ if (bplist) { - rbp = xfs_da_buf_make(nbplist, bplist, ra); + rbp = xfs_da_buf_make(nbplist, bplist); } else if (bp) - rbp = xfs_da_buf_make(1, &bp, ra); + rbp = xfs_da_buf_make(1, &bp); else rbp = NULL; /* @@ -2149,8 +2148,7 @@ xfs_da_get_buf( xfs_dabuf_t **bpp, int whichfork) { - return xfs_da_do_buf(trans, dp, bno, &mappedbno, bpp, whichfork, 0, - (inst_t *)__return_address); + return xfs_da_do_buf(trans, dp, bno, &mappedbno, bpp, whichfork, 0); } /* @@ -2165,8 +2163,7 @@ xfs_da_read_buf( xfs_dabuf_t **bpp, int whichfork) { - return xfs_da_do_buf(trans, dp, bno, &mappedbno, bpp, whichfork, 1, - (inst_t *)__return_address); + return xfs_da_do_buf(trans, dp, bno, &mappedbno, bpp, whichfork, 1); } /* @@ -2182,8 +2179,7 @@ xfs_da_reada_buf( xfs_daddr_t rval; rval = -1; - if (xfs_da_do_buf(trans, dp, bno, &rval, NULL, whichfork, 3, - (inst_t *)__return_address)) + if (xfs_da_do_buf(trans, dp, bno, &rval, NULL, whichfork, 3)) return -1; else return rval; @@ -2241,17 +2237,12 @@ xfs_da_state_free(xfs_da_state_t *state) kmem_zone_free(xfs_da_state_zone, state); } -#ifdef XFS_DABUF_DEBUG -xfs_dabuf_t *xfs_dabuf_global_list; -static DEFINE_SPINLOCK(xfs_dabuf_global_lock); -#endif - /* * Create a dabuf. */ /* ARGSUSED */ STATIC xfs_dabuf_t * -xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) +xfs_da_buf_make(int nbuf, xfs_buf_t **bps) { xfs_buf_t *bp; xfs_dabuf_t *dabuf; @@ -2263,11 +2254,6 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bp else dabuf = kmem_alloc(XFS_DA_BUF_SIZE(nbuf), KM_NOFS); dabuf->dirty = 0; -#ifdef XFS_DABUF_DEBUG - dabuf->ra = ra; - dabuf->target = XFS_BUF_TARGET(bps[0]); - dabuf->blkno = XFS_BUF_ADDR(bps[0]); -#endif if (nbuf == 1) { dabuf->nbuf = 1; bp = bps[0]; @@ -2287,23 +2273,6 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bp XFS_BUF_COUNT(bp)); } } -#ifdef XFS_DABUF_DEBUG - { - xfs_dabuf_t *p; - - spin_lock(&xfs_dabuf_global_lock); - for (p = xfs_dabuf_global_list; p; p = p->next) { - ASSERT(p->blkno != dabuf->blkno || - p->target != dabuf->target); - } - dabuf->prev = NULL; - if (xfs_dabuf_global_list) - xfs_dabuf_global_list->prev = dabuf; - dabuf->next = xfs_dabuf_global_list; - xfs_dabuf_global_list = dabuf; - spin_unlock(&xfs_dabuf_global_lock); - } -#endif return dabuf; } @@ -2339,25 +2308,12 @@ xfs_da_buf_done(xfs_dabuf_t *dabuf) ASSERT(dabuf->nbuf && dabuf->data && dabuf->bbcount && dabuf->bps[0]); if (dabuf->dirty) xfs_da_buf_clean(dabuf); - if (dabuf->nbuf > 1) + if (dabuf->nbuf > 1) { kmem_free(dabuf->data); -#ifdef XFS_DABUF_DEBUG - { - spin_lock(&xfs_dabuf_global_lock); - if (dabuf->prev) - dabuf->prev->next = dabuf->next; - else - xfs_dabuf_global_list = dabuf->next; - if (dabuf->next) - dabuf->next->prev = dabuf->prev; - spin_unlock(&xfs_dabuf_global_lock); - } - memset(dabuf, 0, XFS_DA_BUF_SIZE(dabuf->nbuf)); -#endif - if (dabuf->nbuf == 1) - kmem_zone_free(xfs_dabuf_zone, dabuf); - else kmem_free(dabuf); + } else { + kmem_zone_free(xfs_dabuf_zone, dabuf); + } } /* Index: xfs/fs/xfs/xfs_da_btree.h =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.h 2011-07-09 12:26:07.115110896 +0200 +++ xfs/fs/xfs/xfs_da_btree.h 2011-07-09 12:26:44.665108995 +0200 @@ -145,22 +145,11 @@ typedef struct xfs_dabuf { short dirty; /* data needs to be copied back */ short bbcount; /* how large is data in bbs */ void *data; /* pointer for buffers' data */ -#ifdef XFS_DABUF_DEBUG - inst_t *ra; /* return address of caller to make */ - struct xfs_dabuf *next; /* next in global chain */ - struct xfs_dabuf *prev; /* previous in global chain */ - struct xfs_buftarg *target; /* device for buffer */ - xfs_daddr_t blkno; /* daddr first in bps[0] */ -#endif struct xfs_buf *bps[1]; /* actually nbuf of these */ } xfs_dabuf_t; #define XFS_DA_BUF_SIZE(n) \ (sizeof(xfs_dabuf_t) + sizeof(struct xfs_buf *) * ((n) - 1)) -#ifdef XFS_DABUF_DEBUG -extern xfs_dabuf_t *xfs_dabuf_global_list; -#endif - /* * Storage for holding state during Btree searches and split/join ops. * From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLGL153467 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331018-659500620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2CCCE15EED40 for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id tZbA8fiqBfCEy4we for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xG-0002wr-BX for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:18 +0000 Message-Id: <20110710205018.325145774@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:24 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 08/11] xfs: remove the unused xfs_buf_delwri_sort function Subject: [PATCH 08/11] xfs: remove the unused xfs_buf_delwri_sort function References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-xfs_buf_delwri_sort X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-07-09 12:26:19.035110293 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-07-09 12:26:36.285109419 +0200 @@ -1721,14 +1721,6 @@ xfs_buf_cmp( return 0; } -void -xfs_buf_delwri_sort( - xfs_buftarg_t *target, - struct list_head *list) -{ - list_sort(NULL, list, xfs_buf_cmp); -} - STATIC int xfsbufd( void *data) From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLUE153473 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331017-0be000c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5324A179463C for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Drjh0okbBvFqQEju for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xF-0002vJ-Mj for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:17 +0000 Message-Id: <20110710205017.667546845@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:21 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 05/11] xfs: add a proper transaction pointer to struct xfs_buf Subject: [PATCH 05/11] xfs: add a proper transaction pointer to struct xfs_buf References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-add-b_trans X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Replace the typeless b_fspriv2 and the ugly macros around it with a properly typed transaction pointer. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-07-01 11:35:50.000000000 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-07-01 11:43:33.737416011 +0200 @@ -149,7 +149,7 @@ typedef struct xfs_buf { xfs_buf_iodone_t b_iodone; /* I/O completion function */ struct completion b_iowait; /* queue for I/O waiters */ void *b_fspriv; - void *b_fspriv2; + struct xfs_trans *b_transp; struct page **b_pages; /* array of page pointers */ struct page *b_page_array[XB_PAGES]; /* inline pages */ unsigned long b_queuetime; /* time buffer was queued */ @@ -282,8 +282,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_FSPRIVATE(bp, type) ((type)(bp)->b_fspriv) #define XFS_BUF_SET_FSPRIVATE(bp, val) ((bp)->b_fspriv = (void*)(val)) -#define XFS_BUF_FSPRIVATE2(bp, type) ((type)(bp)->b_fspriv2) -#define XFS_BUF_SET_FSPRIVATE2(bp, val) ((bp)->b_fspriv2 = (void*)(val)) #define XFS_BUF_SET_START(bp) do { } while (0) #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) Index: xfs/fs/xfs/xfs_buf_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_buf_item.c 2011-07-01 11:35:50.000000000 +0200 +++ xfs/fs/xfs/xfs_buf_item.c 2011-07-01 11:43:33.737416011 +0200 @@ -443,7 +443,7 @@ xfs_buf_item_unpin( * Since the transaction no longer refers to the buffer, * the buffer should no longer refer to the transaction. */ - XFS_BUF_SET_FSPRIVATE2(bp, NULL); + bp->b_transp = NULL; } /* @@ -525,7 +525,7 @@ xfs_buf_item_unlock( uint hold; /* Clear the buffer's association with this transaction. */ - XFS_BUF_SET_FSPRIVATE2(bp, NULL); + bp->b_transp = NULL; /* * If this is a transaction abort, don't return early. Instead, allow Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-01 11:35:51.000000000 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-01 11:43:33.740749344 +0200 @@ -876,8 +876,6 @@ xlog_iodone(xfs_buf_t *bp) int aborted; iclog = XFS_BUF_FSPRIVATE(bp, xlog_in_core_t *); - ASSERT(XFS_BUF_FSPRIVATE2(bp, unsigned long) == (unsigned long) 2); - XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); aborted = 0; l = iclog->ic_log; @@ -1057,7 +1055,6 @@ xlog_alloc_log(xfs_mount_t *mp, if (!bp) goto out_free_log; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); - XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; @@ -1092,7 +1089,6 @@ xlog_alloc_log(xfs_mount_t *mp, goto out_free_iclog; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); - XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); iclog->ic_bp = bp; iclog->ic_data = bp->b_addr; #ifdef DEBUG @@ -1349,8 +1345,6 @@ xlog_sync(xlog_t *log, } bp = iclog->ic_bp; - ASSERT(XFS_BUF_FSPRIVATE2(bp, unsigned long) == (unsigned long)1); - XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)2); XFS_BUF_SET_ADDR(bp, BLOCK_LSN(be64_to_cpu(iclog->ic_header.h_lsn))); XFS_STATS_ADD(xs_log_blocks, BTOBB(count)); @@ -1408,9 +1402,6 @@ xlog_sync(xlog_t *log, } if (split) { bp = iclog->ic_log->l_xbuf; - ASSERT(XFS_BUF_FSPRIVATE2(bp, unsigned long) == - (unsigned long)1); - XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)2); XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); Index: xfs/fs/xfs/xfs_trans_buf.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_buf.c 2011-07-01 11:35:50.000000000 +0200 +++ xfs/fs/xfs/xfs_trans_buf.c 2011-07-01 11:44:04.924082291 +0200 @@ -81,7 +81,7 @@ _xfs_trans_bjoin( struct xfs_buf_log_item *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, void *) == NULL); + ASSERT(bp->b_transp == NULL); /* * The xfs_buf_log_item pointer is stored in b_fsprivate. If @@ -110,7 +110,7 @@ _xfs_trans_bjoin( * Initialize b_fsprivate2 so we can find it with incore_match() * in xfs_trans_get_buf() and friends above. */ - XFS_BUF_SET_FSPRIVATE2(bp, tp); + bp->b_transp = tp; } @@ -172,7 +172,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, else if (XFS_BUF_ISSTALE(bp)) ASSERT(!XFS_BUF_ISDELAYWRITE(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -232,7 +232,7 @@ xfs_trans_getsb(xfs_trans_t *tp, * recursion count and return the buffer to the caller. */ bp = mp->m_sb_bp; - if (XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp) { + if (bp->b_transp == tp) { bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -328,7 +328,7 @@ xfs_trans_read_buf( bp = xfs_trans_buf_item_match(tp, target, blkno, len); if (bp != NULL) { ASSERT(xfs_buf_islocked(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT((XFS_BUF_ISERROR(bp)) == 0); if (!(XFS_BUF_ISDONE(bp))) { @@ -466,7 +466,7 @@ xfs_trans_brelse(xfs_trans_t *tp, * Default to a normal brelse() call if the tp is NULL. */ if (tp == NULL) { - ASSERT(XFS_BUF_FSPRIVATE2(bp, void *) == NULL); + ASSERT(bp->b_transp == NULL); /* * If there's a buf log item attached to the buffer, * then let the AIL know that the buffer is being @@ -484,7 +484,7 @@ xfs_trans_brelse(xfs_trans_t *tp, return; } - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); ASSERT(bip->bli_item.li_type == XFS_LI_BUF); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); @@ -556,7 +556,7 @@ xfs_trans_brelse(xfs_trans_t *tp, xfs_buf_item_relse(bp); bip = NULL; } - XFS_BUF_SET_FSPRIVATE2(bp, NULL); + bp->b_transp = NULL; /* * If we've still got a buf log item on the buffer, then @@ -584,7 +584,7 @@ xfs_trans_bhold(xfs_trans_t *tp, xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -606,7 +606,7 @@ xfs_trans_bhold_release(xfs_trans_t *tp, xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -637,7 +637,7 @@ xfs_trans_log_buf(xfs_trans_t *tp, xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); ASSERT((XFS_BUF_IODONE_FUNC(bp) == NULL) || @@ -709,7 +709,7 @@ xfs_trans_binval( xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -783,7 +783,7 @@ xfs_trans_inode_buf( xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -809,7 +809,7 @@ xfs_trans_stale_inode_buf( xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -836,7 +836,7 @@ xfs_trans_inode_alloc_buf( xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); @@ -866,7 +866,7 @@ xfs_trans_dquot_buf( xfs_buf_log_item_t *bip; ASSERT(XFS_BUF_ISBUSY(bp)); - ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); + ASSERT(bp->b_transp == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT(type == XFS_BLF_UDQUOT_BUF || type == XFS_BLF_PDQUOT_BUF || From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLbe153471 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331017-7a8302170000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFEBB5CCB5 for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JCGS8PBUM4eceEYG for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xF-0002uH-Ak for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:17 +0000 Message-Id: <20110710205017.293539533@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:19 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Subject: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-add-xfs_dir2_find_stale-helper X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:07:49.518499801 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:19:48.171796748 +0200 @@ -148,6 +148,36 @@ xfs_dir2_block_to_leaf( return 0; } +STATIC void +xfs_dir2_leaf_find_stale( + struct xfs_dir2_leaf *leaf, + int index, + int *lowstale, + int *highstale) +{ + /* + * Find the first stale entry before our index, if any. + */ + for (*lowstale = index - 1; + *lowstale >= 0 && + leaf->ents[*lowstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); + --*lowstale) + continue; + + /* + * Find the first stale entry at or after our index, if any. + * Stop if the answer would be worse than lowstale. + */ + for (*highstale = index; + *highstale < be16_to_cpu(leaf->hdr.count) && + leaf->ents[*highstale].address != + cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && + (*lowstale < 0 || index - *lowstale > *highstale - index); + ++*highstale) + continue; +} + struct xfs_dir2_leaf_entry * xfs_dir2_leaf_find_entry( xfs_dir2_leaf_t *leaf, /* leaf structure */ @@ -190,32 +220,8 @@ xfs_dir2_leaf_find_entry( * If we didn't compact before, we need to find the nearest stale * entries before and after our insertion point. */ - if (compact == 0) { - /* - * Find the first stale entry before the insertion point, - * if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - leaf->ents[lowstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR); - lowstale--) - continue; - - /* - * Find the next stale entry at or after the insertion point, - * if any. Stop if we go so far that the lowstale entry - * would be better. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - leaf->ents[highstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } + if (compact == 0) + xfs_dir2_leaf_find_stale(leaf, index, &lowstale, &highstale); /* * If the low one is better, use it. @@ -689,26 +695,9 @@ xfs_dir2_leaf_compact_x1( leaf = bp->data; ASSERT(be16_to_cpu(leaf->hdr.stale) > 1); index = *indexp; - /* - * Find the first stale entry before our index, if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - leaf->ents[lowstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR); - lowstale--) - continue; - /* - * Find the first stale entry at or after our index, if any. - * Stop if the answer would be worse than lowstale. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - leaf->ents[highstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && - (lowstale < 0 || index - lowstale > highstale - index); - highstale++) - continue; + + xfs_dir2_leaf_find_stale(leaf, index, &lowstale, &highstale); + /* * Pick the better of lowstale and highstale. */ From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLkp153466 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331018-0f6d00540000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEADA1797873 for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ws2wpJtqtTWe6nHg for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xG-0002wL-5d for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:18 +0000 Message-Id: <20110710205018.136515335@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:23 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 07/11] xfs: remove wrappers around b_iodone Subject: [PATCH 07/11] xfs: remove wrappers around b_iodone References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-XFS_BUF_SET_BRELSE_FUNC X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-07-09 09:16:00.995688385 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.c 2011-07-09 09:34:17.985632833 +0200 @@ -1107,7 +1107,7 @@ xfs_bioerror_relse( XFS_BUF_UNDELAYWRITE(bp); XFS_BUF_DONE(bp); XFS_BUF_STALE(bp); - XFS_BUF_CLR_IODONE_FUNC(bp); + bp->b_iodone = NULL; if (!(fl & XBF_ASYNC)) { /* * Mark b_error and B_ERROR _both_. Index: xfs/fs/xfs/xfs_buf_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_buf_item.c 2011-07-09 09:34:13.252299751 +0200 +++ xfs/fs/xfs/xfs_buf_item.c 2011-07-09 09:34:17.985632833 +0200 @@ -453,7 +453,7 @@ xfs_buf_item_unpin( if (bip->bli_flags & XFS_BLI_STALE_INODE) { xfs_buf_do_callbacks(bp); bp->b_fspriv = NULL; - XFS_BUF_CLR_IODONE_FUNC(bp); + bp->b_iodone = NULL; } else { spin_lock(&ailp->xa_lock); xfs_trans_ail_delete(ailp, (xfs_log_item_t *)bip); @@ -870,8 +870,8 @@ xfs_buf_item_relse( bip = bp->b_fspriv; bp->b_fspriv = bip->bli_item.li_bio_list; - if (bp->b_fspriv == NULL && XFS_BUF_IODONE_FUNC(bp) != NULL) - XFS_BUF_CLR_IODONE_FUNC(bp); + if (bp->b_fspriv == NULL) + bp->b_iodone = NULL; xfs_buf_rele(bp); xfs_buf_item_free(bip); @@ -907,9 +907,9 @@ xfs_buf_attach_iodone( bp->b_fspriv = lip; } - ASSERT((XFS_BUF_IODONE_FUNC(bp) == xfs_buf_iodone_callbacks) || - (XFS_BUF_IODONE_FUNC(bp) == NULL)); - XFS_BUF_SET_IODONE_FUNC(bp, xfs_buf_iodone_callbacks); + ASSERT(bp->b_iodone == NULL || + bp->b_iodone == xfs_buf_iodone_callbacks); + bp->b_iodone = xfs_buf_iodone_callbacks; } /* @@ -998,7 +998,7 @@ xfs_buf_iodone_callbacks( XFS_BUF_DONE(bp); XFS_BUF_SET_START(bp); } - ASSERT(XFS_BUF_IODONE_FUNC(bp)); + ASSERT(bp->b_iodone != NULL); trace_xfs_buf_item_iodone_async(bp, _RET_IP_); xfs_buf_relse(bp); return; @@ -1018,7 +1018,7 @@ xfs_buf_iodone_callbacks( do_callbacks: xfs_buf_do_callbacks(bp); bp->b_fspriv = NULL; - XFS_BUF_CLR_IODONE_FUNC(bp); + bp->b_iodone = NULL; xfs_buf_ioend(bp, 0); } Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-09 09:34:13.255633083 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-09 09:34:17.985632833 +0200 @@ -2471,7 +2471,7 @@ cluster_corrupt_out: * mark the buffer as an error and call them. Otherwise * mark it as stale and brelse. */ - if (XFS_BUF_IODONE_FUNC(bp)) { + if (bp->b_iodone) { XFS_BUF_UNDONE(bp); XFS_BUF_STALE(bp); XFS_BUF_ERROR(bp,EIO); @@ -2812,7 +2812,7 @@ xfs_iflush_int( xfs_buf_attach_iodone(bp, xfs_iflush_done, &iip->ili_item); ASSERT(bp->b_fspriv != NULL); - ASSERT(XFS_BUF_IODONE_FUNC(bp) != NULL); + ASSERT(bp->b_iodone != NULL); } else { /* * We're flushing an inode which is not in the AIL and has Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-09 09:34:13.258966416 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-09 09:34:17.992299515 +0200 @@ -1050,7 +1050,7 @@ xlog_alloc_log(xfs_mount_t *mp, bp = xfs_buf_get_empty(log->l_iclog_size, mp->m_logdev_targp); if (!bp) goto out_free_log; - XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); + bp->b_iodone = xlog_iodone; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; @@ -1084,7 +1084,7 @@ xlog_alloc_log(xfs_mount_t *mp, if (!bp) goto out_free_iclog; - XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); + bp->b_iodone = xlog_iodone; iclog->ic_bp = bp; iclog->ic_data = bp->b_addr; #ifdef DEBUG Index: xfs/fs/xfs/xfs_log_recover.c =================================================================== --- xfs.orig/fs/xfs/xfs_log_recover.c 2011-07-09 09:16:01.015688384 +0200 +++ xfs/fs/xfs/xfs_log_recover.c 2011-07-09 09:34:17.995632851 +0200 @@ -371,7 +371,7 @@ xlog_recover_iodone( xfs_force_shutdown(bp->b_target->bt_mount, SHUTDOWN_META_IO_ERROR); } - XFS_BUF_CLR_IODONE_FUNC(bp); + bp->b_iodone = NULL; xfs_buf_ioend(bp, 0); } @@ -2178,7 +2178,7 @@ xlog_recover_buffer_pass2( error = xfs_bwrite(mp, bp); } else { ASSERT(bp->b_target->bt_mount == mp); - XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); + bp->b_iodone = xlog_recover_iodone; xfs_bdwrite(mp, bp); } @@ -2438,7 +2438,7 @@ xlog_recover_inode_pass2( write_inode_buffer: ASSERT(bp->b_target->bt_mount == mp); - XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); + bp->b_iodone = xlog_recover_iodone; xfs_bdwrite(mp, bp); error: if (need_free) @@ -2560,7 +2560,7 @@ xlog_recover_dquot_pass2( ASSERT(dq_f->qlf_size == 2); ASSERT(bp->b_target->bt_mount == mp); - XFS_BUF_SET_IODONE_FUNC(bp, xlog_recover_iodone); + bp->b_iodone = xlog_recover_iodone; xfs_bdwrite(mp, bp); return (0); Index: xfs/fs/xfs/xfs_trans_buf.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_buf.c 2011-07-09 09:34:13.258966416 +0200 +++ xfs/fs/xfs/xfs_trans_buf.c 2011-07-09 09:34:17.995632851 +0200 @@ -635,8 +635,8 @@ xfs_trans_log_buf(xfs_trans_t *tp, ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); - ASSERT((XFS_BUF_IODONE_FUNC(bp) == NULL) || - (XFS_BUF_IODONE_FUNC(bp) == xfs_buf_iodone_callbacks)); + ASSERT(bp->b_iodone == NULL || + bp->b_iodone == xfs_buf_iodone_callbacks); /* * Mark the buffer as needing to be written out eventually, @@ -652,7 +652,7 @@ xfs_trans_log_buf(xfs_trans_t *tp, XFS_BUF_DONE(bp); ASSERT(atomic_read(&bip->bli_refcount) > 0); - XFS_BUF_SET_IODONE_FUNC(bp, xfs_buf_iodone_callbacks); + bp->b_iodone = xfs_buf_iodone_callbacks; bip->bli_item.li_cb = xfs_buf_iodone; trace_xfs_trans_log_buf(bip); Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-07-09 09:34:13.248966419 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-07-09 09:34:17.995632851 +0200 @@ -276,10 +276,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_IODONE_FUNC(bp) ((bp)->b_iodone) -#define XFS_BUF_SET_IODONE_FUNC(bp, func) ((bp)->b_iodone = (func)) -#define XFS_BUF_CLR_IODONE_FUNC(bp) ((bp)->b_iodone = NULL) - #define XFS_BUF_SET_START(bp) do { } while (0) #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLNb153487 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331019-57f503490000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D5535CCBD for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 7FGNH6aEyNnKG8Cy for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xG-0002xu-OQ for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:18 +0000 Message-Id: <20110710205018.724144355@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:26 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 10/11] xfs: remove leftovers of the old btree tracing code Subject: [PATCH 10/11] xfs: remove leftovers of the old btree tracing code References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-dead-btree-trace-code X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove various bits left over from the old kdb-only btree tracing code, but leave the actual trace point stubs in place to ease adding new event based btree tracing. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/Makefile =================================================================== --- xfs.orig/fs/xfs/Makefile 2011-07-09 13:29:17.081585678 +0200 +++ xfs/fs/xfs/Makefile 2011-07-09 14:02:30.378151424 +0200 @@ -88,8 +88,6 @@ xfs-y += xfs_alloc.o \ xfs_vnodeops.o \ xfs_rw.o -xfs-$(CONFIG_XFS_TRACE) += xfs_btree_trace.o - # Objects in linux/ xfs-y += $(addprefix $(XFS_LINUX)/, \ kmem.o \ Index: xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2011-07-09 13:29:17.091585678 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_super.c 2011-07-09 14:02:30.378151424 +0200 @@ -33,7 +33,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_ialloc.h" #include "xfs_bmap.h" #include "xfs_rtalloc.h" Index: xfs/fs/xfs/xfs_alloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_alloc_btree.c 2011-07-09 13:29:17.101585677 +0200 +++ xfs/fs/xfs/xfs_alloc_btree.c 2011-07-09 14:05:23.471475993 +0200 @@ -31,7 +31,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_alloc.h" #include "xfs_error.h" #include "xfs_trace.h" @@ -311,72 +310,6 @@ xfs_allocbt_recs_inorder( } #endif /* DEBUG */ -#ifdef XFS_BTREE_TRACE -ktrace_t *xfs_allocbt_trace_buf; - -STATIC void -xfs_allocbt_trace_enter( - struct xfs_btree_cur *cur, - const char *func, - char *s, - int type, - int line, - __psunsigned_t a0, - __psunsigned_t a1, - __psunsigned_t a2, - __psunsigned_t a3, - __psunsigned_t a4, - __psunsigned_t a5, - __psunsigned_t a6, - __psunsigned_t a7, - __psunsigned_t a8, - __psunsigned_t a9, - __psunsigned_t a10) -{ - ktrace_enter(xfs_allocbt_trace_buf, (void *)(__psint_t)type, - (void *)func, (void *)s, NULL, (void *)cur, - (void *)a0, (void *)a1, (void *)a2, (void *)a3, - (void *)a4, (void *)a5, (void *)a6, (void *)a7, - (void *)a8, (void *)a9, (void *)a10); -} - -STATIC void -xfs_allocbt_trace_cursor( - struct xfs_btree_cur *cur, - __uint32_t *s0, - __uint64_t *l0, - __uint64_t *l1) -{ - *s0 = cur->bc_private.a.agno; - *l0 = cur->bc_rec.a.ar_startblock; - *l1 = cur->bc_rec.a.ar_blockcount; -} - -STATIC void -xfs_allocbt_trace_key( - struct xfs_btree_cur *cur, - union xfs_btree_key *key, - __uint64_t *l0, - __uint64_t *l1) -{ - *l0 = be32_to_cpu(key->alloc.ar_startblock); - *l1 = be32_to_cpu(key->alloc.ar_blockcount); -} - -STATIC void -xfs_allocbt_trace_record( - struct xfs_btree_cur *cur, - union xfs_btree_rec *rec, - __uint64_t *l0, - __uint64_t *l1, - __uint64_t *l2) -{ - *l0 = be32_to_cpu(rec->alloc.ar_startblock); - *l1 = be32_to_cpu(rec->alloc.ar_blockcount); - *l2 = 0; -} -#endif /* XFS_BTREE_TRACE */ - static const struct xfs_btree_ops xfs_allocbt_ops = { .rec_len = sizeof(xfs_alloc_rec_t), .key_len = sizeof(xfs_alloc_key_t), @@ -393,18 +326,10 @@ static const struct xfs_btree_ops xfs_al .init_rec_from_cur = xfs_allocbt_init_rec_from_cur, .init_ptr_from_cur = xfs_allocbt_init_ptr_from_cur, .key_diff = xfs_allocbt_key_diff, - #ifdef DEBUG .keys_inorder = xfs_allocbt_keys_inorder, .recs_inorder = xfs_allocbt_recs_inorder, #endif - -#ifdef XFS_BTREE_TRACE - .trace_enter = xfs_allocbt_trace_enter, - .trace_cursor = xfs_allocbt_trace_cursor, - .trace_key = xfs_allocbt_trace_key, - .trace_record = xfs_allocbt_trace_record, -#endif }; /* Index: xfs/fs/xfs/xfs_bmap_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap_btree.c 2011-07-09 13:29:17.108252343 +0200 +++ xfs/fs/xfs/xfs_bmap_btree.c 2011-07-09 14:04:48.868144412 +0200 @@ -33,7 +33,6 @@ #include "xfs_inode_item.h" #include "xfs_alloc.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_itable.h" #include "xfs_bmap.h" #include "xfs_error.h" @@ -732,95 +731,6 @@ xfs_bmbt_recs_inorder( } #endif /* DEBUG */ -#ifdef XFS_BTREE_TRACE -ktrace_t *xfs_bmbt_trace_buf; - -STATIC void -xfs_bmbt_trace_enter( - struct xfs_btree_cur *cur, - const char *func, - char *s, - int type, - int line, - __psunsigned_t a0, - __psunsigned_t a1, - __psunsigned_t a2, - __psunsigned_t a3, - __psunsigned_t a4, - __psunsigned_t a5, - __psunsigned_t a6, - __psunsigned_t a7, - __psunsigned_t a8, - __psunsigned_t a9, - __psunsigned_t a10) -{ - struct xfs_inode *ip = cur->bc_private.b.ip; - int whichfork = cur->bc_private.b.whichfork; - - ktrace_enter(xfs_bmbt_trace_buf, - (void *)((__psint_t)type | (whichfork << 8) | (line << 16)), - (void *)func, (void *)s, (void *)ip, (void *)cur, - (void *)a0, (void *)a1, (void *)a2, (void *)a3, - (void *)a4, (void *)a5, (void *)a6, (void *)a7, - (void *)a8, (void *)a9, (void *)a10); -} - -STATIC void -xfs_bmbt_trace_cursor( - struct xfs_btree_cur *cur, - __uint32_t *s0, - __uint64_t *l0, - __uint64_t *l1) -{ - struct xfs_bmbt_rec_host r; - - xfs_bmbt_set_all(&r, &cur->bc_rec.b); - - *s0 = (cur->bc_nlevels << 24) | - (cur->bc_private.b.flags << 16) | - cur->bc_private.b.allocated; - *l0 = r.l0; - *l1 = r.l1; -} - -STATIC void -xfs_bmbt_trace_key( - struct xfs_btree_cur *cur, - union xfs_btree_key *key, - __uint64_t *l0, - __uint64_t *l1) -{ - *l0 = be64_to_cpu(key->bmbt.br_startoff); - *l1 = 0; -} - -/* Endian flipping versions of the bmbt extraction functions */ -STATIC void -xfs_bmbt_disk_get_all( - xfs_bmbt_rec_t *r, - xfs_bmbt_irec_t *s) -{ - __xfs_bmbt_get_all(get_unaligned_be64(&r->l0), - get_unaligned_be64(&r->l1), s); -} - -STATIC void -xfs_bmbt_trace_record( - struct xfs_btree_cur *cur, - union xfs_btree_rec *rec, - __uint64_t *l0, - __uint64_t *l1, - __uint64_t *l2) -{ - struct xfs_bmbt_irec irec; - - xfs_bmbt_disk_get_all(&rec->bmbt, &irec); - *l0 = irec.br_startoff; - *l1 = irec.br_startblock; - *l2 = irec.br_blockcount; -} -#endif /* XFS_BTREE_TRACE */ - static const struct xfs_btree_ops xfs_bmbt_ops = { .rec_len = sizeof(xfs_bmbt_rec_t), .key_len = sizeof(xfs_bmbt_key_t), @@ -837,18 +747,10 @@ static const struct xfs_btree_ops xfs_bm .init_rec_from_cur = xfs_bmbt_init_rec_from_cur, .init_ptr_from_cur = xfs_bmbt_init_ptr_from_cur, .key_diff = xfs_bmbt_key_diff, - #ifdef DEBUG .keys_inorder = xfs_bmbt_keys_inorder, .recs_inorder = xfs_bmbt_recs_inorder, #endif - -#ifdef XFS_BTREE_TRACE - .trace_enter = xfs_bmbt_trace_enter, - .trace_cursor = xfs_bmbt_trace_cursor, - .trace_key = xfs_bmbt_trace_key, - .trace_record = xfs_bmbt_trace_record, -#endif }; /* Index: xfs/fs/xfs/xfs_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_btree.c 2011-07-09 13:29:17.121585675 +0200 +++ xfs/fs/xfs/xfs_btree.c 2011-07-09 14:02:30.381484757 +0200 @@ -32,7 +32,6 @@ #include "xfs_inode.h" #include "xfs_inode_item.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_error.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_btree.h =================================================================== --- xfs.orig/fs/xfs/xfs_btree.h 2011-07-09 13:29:17.131585674 +0200 +++ xfs/fs/xfs/xfs_btree.h 2011-07-09 14:05:39.511475182 +0200 @@ -199,25 +199,6 @@ struct xfs_btree_ops { union xfs_btree_rec *r1, union xfs_btree_rec *r2); #endif - - /* btree tracing */ -#ifdef XFS_BTREE_TRACE - void (*trace_enter)(struct xfs_btree_cur *, const char *, - char *, int, int, __psunsigned_t, - __psunsigned_t, __psunsigned_t, - __psunsigned_t, __psunsigned_t, - __psunsigned_t, __psunsigned_t, - __psunsigned_t, __psunsigned_t, - __psunsigned_t, __psunsigned_t); - void (*trace_cursor)(struct xfs_btree_cur *, __uint32_t *, - __uint64_t *, __uint64_t *); - void (*trace_key)(struct xfs_btree_cur *, - union xfs_btree_key *, __uint64_t *, - __uint64_t *); - void (*trace_record)(struct xfs_btree_cur *, - union xfs_btree_rec *, __uint64_t *, - __uint64_t *, __uint64_t *); -#endif }; /* @@ -452,4 +433,23 @@ static inline int xfs_btree_get_level(st (XFS_FSB_TO_AGNO(mp, fsb) < mp->m_sb.sb_agcount && \ XFS_FSB_TO_AGBNO(mp, fsb) < mp->m_sb.sb_agblocks) +/* + * Trace hooks. Currently not implemented as they need to be ported + * over to the generic tracing functionality, which is some effort. + * + * i,j = integer (32 bit) + * b = btree block buffer (xfs_buf_t) + * p = btree ptr + * r = btree record + * k = btree key + */ +#define XFS_BTREE_TRACE_ARGBI(c, b, i) +#define XFS_BTREE_TRACE_ARGBII(c, b, i, j) +#define XFS_BTREE_TRACE_ARGI(c, i) +#define XFS_BTREE_TRACE_ARGIPK(c, i, p, s) +#define XFS_BTREE_TRACE_ARGIPR(c, i, p, r) +#define XFS_BTREE_TRACE_ARGIK(c, i, k) +#define XFS_BTREE_TRACE_ARGR(c, r) +#define XFS_BTREE_TRACE_CURSOR(c, t) + #endif /* __XFS_BTREE_H__ */ Index: xfs/fs/xfs/xfs_btree_trace.c =================================================================== --- xfs.orig/fs/xfs/xfs_btree_trace.c 2011-07-09 13:29:17.138252341 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,249 +0,0 @@ -/* - * Copyright (c) 2008 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_types.h" -#include "xfs_inum.h" -#include "xfs_bmap_btree.h" -#include "xfs_alloc_btree.h" -#include "xfs_ialloc_btree.h" -#include "xfs_inode.h" -#include "xfs_btree.h" -#include "xfs_btree_trace.h" - -STATIC void -xfs_btree_trace_ptr( - struct xfs_btree_cur *cur, - union xfs_btree_ptr ptr, - __psunsigned_t *high, - __psunsigned_t *low) -{ - if (cur->bc_flags & XFS_BTREE_LONG_PTRS) { - __u64 val = be64_to_cpu(ptr.l); - *high = val >> 32; - *low = (int)val; - } else { - *high = 0; - *low = be32_to_cpu(ptr.s); - } -} - -/* - * Add a trace buffer entry for arguments, for a buffer & 1 integer arg. - */ -void -xfs_btree_trace_argbi( - const char *func, - struct xfs_btree_cur *cur, - struct xfs_buf *b, - int i, - int line) -{ - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGBI, - line, (__psunsigned_t)b, i, 0, 0, 0, 0, 0, - 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for a buffer & 2 integer args. - */ -void -xfs_btree_trace_argbii( - const char *func, - struct xfs_btree_cur *cur, - struct xfs_buf *b, - int i0, - int i1, - int line) -{ - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGBII, - line, (__psunsigned_t)b, i0, i1, 0, 0, 0, 0, - 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for 3 block-length args - * and an integer arg. - */ -void -xfs_btree_trace_argfffi( - const char *func, - struct xfs_btree_cur *cur, - xfs_dfiloff_t o, - xfs_dfsbno_t b, - xfs_dfilblks_t i, - int j, - int line) -{ - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGFFFI, - line, - o >> 32, (int)o, - b >> 32, (int)b, - i >> 32, (int)i, - (int)j, 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for one integer arg. - */ -void -xfs_btree_trace_argi( - const char *func, - struct xfs_btree_cur *cur, - int i, - int line) -{ - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGI, - line, i, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for int, fsblock, key. - */ -void -xfs_btree_trace_argipk( - const char *func, - struct xfs_btree_cur *cur, - int i, - union xfs_btree_ptr ptr, - union xfs_btree_key *key, - int line) -{ - __psunsigned_t high, low; - __uint64_t l0, l1; - - xfs_btree_trace_ptr(cur, ptr, &high, &low); - cur->bc_ops->trace_key(cur, key, &l0, &l1); - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGIPK, - line, i, high, low, - l0 >> 32, (int)l0, - l1 >> 32, (int)l1, - 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for int, fsblock, rec. - */ -void -xfs_btree_trace_argipr( - const char *func, - struct xfs_btree_cur *cur, - int i, - union xfs_btree_ptr ptr, - union xfs_btree_rec *rec, - int line) -{ - __psunsigned_t high, low; - __uint64_t l0, l1, l2; - - xfs_btree_trace_ptr(cur, ptr, &high, &low); - cur->bc_ops->trace_record(cur, rec, &l0, &l1, &l2); - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGIPR, - line, i, - high, low, - l0 >> 32, (int)l0, - l1 >> 32, (int)l1, - l2 >> 32, (int)l2, - 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for int, key. - */ -void -xfs_btree_trace_argik( - const char *func, - struct xfs_btree_cur *cur, - int i, - union xfs_btree_key *key, - int line) -{ - __uint64_t l0, l1; - - cur->bc_ops->trace_key(cur, key, &l0, &l1); - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGIK, - line, i, - l0 >> 32, (int)l0, - l1 >> 32, (int)l1, - 0, 0, 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for arguments, for record. - */ -void -xfs_btree_trace_argr( - const char *func, - struct xfs_btree_cur *cur, - union xfs_btree_rec *rec, - int line) -{ - __uint64_t l0, l1, l2; - - cur->bc_ops->trace_record(cur, rec, &l0, &l1, &l2); - cur->bc_ops->trace_enter(cur, func, XBT_ARGS, XFS_BTREE_KTRACE_ARGR, - line, - l0 >> 32, (int)l0, - l1 >> 32, (int)l1, - l2 >> 32, (int)l2, - 0, 0, 0, 0, 0); -} - -/* - * Add a trace buffer entry for the cursor/operation. - */ -void -xfs_btree_trace_cursor( - const char *func, - struct xfs_btree_cur *cur, - int type, - int line) -{ - __uint32_t s0; - __uint64_t l0, l1; - char *s; - - switch (type) { - case XBT_ARGS: - s = "args"; - break; - case XBT_ENTRY: - s = "entry"; - break; - case XBT_ERROR: - s = "error"; - break; - case XBT_EXIT: - s = "exit"; - break; - default: - s = "unknown"; - break; - } - - cur->bc_ops->trace_cursor(cur, &s0, &l0, &l1); - cur->bc_ops->trace_enter(cur, func, s, XFS_BTREE_KTRACE_CUR, line, - s0, - l0 >> 32, (int)l0, - l1 >> 32, (int)l1, - (__psunsigned_t)cur->bc_bufs[0], - (__psunsigned_t)cur->bc_bufs[1], - (__psunsigned_t)cur->bc_bufs[2], - (__psunsigned_t)cur->bc_bufs[3], - (cur->bc_ptrs[0] << 16) | cur->bc_ptrs[1], - (cur->bc_ptrs[2] << 16) | cur->bc_ptrs[3]); -} Index: xfs/fs/xfs/xfs_btree_trace.h =================================================================== --- xfs.orig/fs/xfs/xfs_btree_trace.h 2011-07-09 13:29:17.148252342 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,99 +0,0 @@ -/* - * Copyright (c) 2008 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_BTREE_TRACE_H__ -#define __XFS_BTREE_TRACE_H__ - -struct xfs_btree_cur; -struct xfs_buf; - - -/* - * Trace hooks. - * i,j = integer (32 bit) - * b = btree block buffer (xfs_buf_t) - * p = btree ptr - * r = btree record - * k = btree key - */ - -#ifdef XFS_BTREE_TRACE - -/* - * Trace buffer entry types. - */ -#define XFS_BTREE_KTRACE_ARGBI 1 -#define XFS_BTREE_KTRACE_ARGBII 2 -#define XFS_BTREE_KTRACE_ARGFFFI 3 -#define XFS_BTREE_KTRACE_ARGI 4 -#define XFS_BTREE_KTRACE_ARGIPK 5 -#define XFS_BTREE_KTRACE_ARGIPR 6 -#define XFS_BTREE_KTRACE_ARGIK 7 -#define XFS_BTREE_KTRACE_ARGR 8 -#define XFS_BTREE_KTRACE_CUR 9 - -/* - * Sub-types for cursor traces. - */ -#define XBT_ARGS 0 -#define XBT_ENTRY 1 -#define XBT_ERROR 2 -#define XBT_EXIT 3 - -void xfs_btree_trace_argbi(const char *, struct xfs_btree_cur *, - struct xfs_buf *, int, int); -void xfs_btree_trace_argbii(const char *, struct xfs_btree_cur *, - struct xfs_buf *, int, int, int); -void xfs_btree_trace_argi(const char *, struct xfs_btree_cur *, int, int); -void xfs_btree_trace_argipk(const char *, struct xfs_btree_cur *, int, - union xfs_btree_ptr, union xfs_btree_key *, int); -void xfs_btree_trace_argipr(const char *, struct xfs_btree_cur *, int, - union xfs_btree_ptr, union xfs_btree_rec *, int); -void xfs_btree_trace_argik(const char *, struct xfs_btree_cur *, int, - union xfs_btree_key *, int); -void xfs_btree_trace_argr(const char *, struct xfs_btree_cur *, - union xfs_btree_rec *, int); -void xfs_btree_trace_cursor(const char *, struct xfs_btree_cur *, int, int); - -#define XFS_BTREE_TRACE_ARGBI(c, b, i) \ - xfs_btree_trace_argbi(__func__, c, b, i, __LINE__) -#define XFS_BTREE_TRACE_ARGBII(c, b, i, j) \ - xfs_btree_trace_argbii(__func__, c, b, i, j, __LINE__) -#define XFS_BTREE_TRACE_ARGI(c, i) \ - xfs_btree_trace_argi(__func__, c, i, __LINE__) -#define XFS_BTREE_TRACE_ARGIPK(c, i, p, k) \ - xfs_btree_trace_argipk(__func__, c, i, p, k, __LINE__) -#define XFS_BTREE_TRACE_ARGIPR(c, i, p, r) \ - xfs_btree_trace_argipr(__func__, c, i, p, r, __LINE__) -#define XFS_BTREE_TRACE_ARGIK(c, i, k) \ - xfs_btree_trace_argik(__func__, c, i, k, __LINE__) -#define XFS_BTREE_TRACE_ARGR(c, r) \ - xfs_btree_trace_argr(__func__, c, r, __LINE__) -#define XFS_BTREE_TRACE_CURSOR(c, t) \ - xfs_btree_trace_cursor(__func__, c, t, __LINE__) -#else -#define XFS_BTREE_TRACE_ARGBI(c, b, i) -#define XFS_BTREE_TRACE_ARGBII(c, b, i, j) -#define XFS_BTREE_TRACE_ARGI(c, i) -#define XFS_BTREE_TRACE_ARGIPK(c, i, p, s) -#define XFS_BTREE_TRACE_ARGIPR(c, i, p, r) -#define XFS_BTREE_TRACE_ARGIK(c, i, k) -#define XFS_BTREE_TRACE_ARGR(c, r) -#define XFS_BTREE_TRACE_CURSOR(c, t) -#endif /* XFS_BTREE_TRACE */ - -#endif /* __XFS_BTREE_TRACE_H__ */ Index: xfs/fs/xfs/xfs_ialloc_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_ialloc_btree.c 2011-07-09 13:29:17.154919008 +0200 +++ xfs/fs/xfs/xfs_ialloc_btree.c 2011-07-09 14:05:21.608142756 +0200 @@ -31,7 +31,6 @@ #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_ialloc.h" #include "xfs_alloc.h" #include "xfs_error.h" @@ -205,72 +204,6 @@ xfs_inobt_recs_inorder( } #endif /* DEBUG */ -#ifdef XFS_BTREE_TRACE -ktrace_t *xfs_inobt_trace_buf; - -STATIC void -xfs_inobt_trace_enter( - struct xfs_btree_cur *cur, - const char *func, - char *s, - int type, - int line, - __psunsigned_t a0, - __psunsigned_t a1, - __psunsigned_t a2, - __psunsigned_t a3, - __psunsigned_t a4, - __psunsigned_t a5, - __psunsigned_t a6, - __psunsigned_t a7, - __psunsigned_t a8, - __psunsigned_t a9, - __psunsigned_t a10) -{ - ktrace_enter(xfs_inobt_trace_buf, (void *)(__psint_t)type, - (void *)func, (void *)s, NULL, (void *)cur, - (void *)a0, (void *)a1, (void *)a2, (void *)a3, - (void *)a4, (void *)a5, (void *)a6, (void *)a7, - (void *)a8, (void *)a9, (void *)a10); -} - -STATIC void -xfs_inobt_trace_cursor( - struct xfs_btree_cur *cur, - __uint32_t *s0, - __uint64_t *l0, - __uint64_t *l1) -{ - *s0 = cur->bc_private.a.agno; - *l0 = cur->bc_rec.i.ir_startino; - *l1 = cur->bc_rec.i.ir_free; -} - -STATIC void -xfs_inobt_trace_key( - struct xfs_btree_cur *cur, - union xfs_btree_key *key, - __uint64_t *l0, - __uint64_t *l1) -{ - *l0 = be32_to_cpu(key->inobt.ir_startino); - *l1 = 0; -} - -STATIC void -xfs_inobt_trace_record( - struct xfs_btree_cur *cur, - union xfs_btree_rec *rec, - __uint64_t *l0, - __uint64_t *l1, - __uint64_t *l2) -{ - *l0 = be32_to_cpu(rec->inobt.ir_startino); - *l1 = be32_to_cpu(rec->inobt.ir_freecount); - *l2 = be64_to_cpu(rec->inobt.ir_free); -} -#endif /* XFS_BTREE_TRACE */ - static const struct xfs_btree_ops xfs_inobt_ops = { .rec_len = sizeof(xfs_inobt_rec_t), .key_len = sizeof(xfs_inobt_key_t), @@ -286,18 +219,10 @@ static const struct xfs_btree_ops xfs_in .init_rec_from_cur = xfs_inobt_init_rec_from_cur, .init_ptr_from_cur = xfs_inobt_init_ptr_from_cur, .key_diff = xfs_inobt_key_diff, - #ifdef DEBUG .keys_inorder = xfs_inobt_keys_inorder, .recs_inorder = xfs_inobt_recs_inorder, #endif - -#ifdef XFS_BTREE_TRACE - .trace_enter = xfs_inobt_trace_enter, - .trace_cursor = xfs_inobt_trace_cursor, - .trace_key = xfs_inobt_trace_key, - .trace_record = xfs_inobt_trace_record, -#endif }; /* Index: xfs/fs/xfs/xfs_iget.c =================================================================== --- xfs.orig/fs/xfs/xfs_iget.c 2011-07-09 13:29:17.164919007 +0200 +++ xfs/fs/xfs/xfs_iget.c 2011-07-09 14:02:30.388151423 +0200 @@ -38,7 +38,6 @@ #include "xfs_trans_priv.h" #include "xfs_inode_item.h" #include "xfs_bmap.h" -#include "xfs_btree_trace.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-09 14:00:08.094825294 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-09 14:02:30.391484756 +0200 @@ -37,7 +37,6 @@ #include "xfs_buf_item.h" #include "xfs_inode_item.h" #include "xfs_btree.h" -#include "xfs_btree_trace.h" #include "xfs_alloc.h" #include "xfs_ialloc.h" #include "xfs_bmap.h" From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_63, J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoLfQ153486 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331018-0f6900680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 89E2417955AE for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 3CXvc6ptoIfHa3bK for ; Sun, 10 Jul 2011 13:50:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xF-0002vp-T9 for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:17 +0000 Message-Id: <20110710205017.863949257@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:22 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 06/11] xfs: remove wrappers around b_fspriv Subject: [PATCH 06/11] xfs: remove wrappers around b_fspriv References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-simplify-b_fspriv X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_buf.h =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_buf.h 2011-07-09 09:34:12.288966468 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_buf.h 2011-07-09 09:34:13.248966419 +0200 @@ -280,8 +280,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_SET_IODONE_FUNC(bp, func) ((bp)->b_iodone = (func)) #define XFS_BUF_CLR_IODONE_FUNC(bp) ((bp)->b_iodone = NULL) -#define XFS_BUF_FSPRIVATE(bp, type) ((type)(bp)->b_fspriv) -#define XFS_BUF_SET_FSPRIVATE(bp, val) ((bp)->b_fspriv = (void*)(val)) #define XFS_BUF_SET_START(bp) do { } while (0) #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) Index: xfs/fs/xfs/xfs_buf_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_buf_item.c 2011-07-09 09:34:12.292299803 +0200 +++ xfs/fs/xfs/xfs_buf_item.c 2011-07-09 09:34:13.252299751 +0200 @@ -90,13 +90,11 @@ xfs_buf_item_flush_log_debug( uint first, uint last) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; uint nbytes; - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*); - if ((bip == NULL) || (bip->bli_item.li_type != XFS_LI_BUF)) { + if (bip == NULL || (bip->bli_item.li_type != XFS_LI_BUF)) return; - } ASSERT(bip->bli_logged != NULL); nbytes = last - first + 1; @@ -408,7 +406,7 @@ xfs_buf_item_unpin( int stale = bip->bli_flags & XFS_BLI_STALE; int freed; - ASSERT(XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *) == bip); + ASSERT(bp->b_fspriv == bip); ASSERT(atomic_read(&bip->bli_refcount) > 0); trace_xfs_buf_item_unpin(bip); @@ -454,13 +452,13 @@ xfs_buf_item_unpin( */ if (bip->bli_flags & XFS_BLI_STALE_INODE) { xfs_buf_do_callbacks(bp); - XFS_BUF_SET_FSPRIVATE(bp, NULL); + bp->b_fspriv = NULL; XFS_BUF_CLR_IODONE_FUNC(bp); } else { spin_lock(&ailp->xa_lock); xfs_trans_ail_delete(ailp, (xfs_log_item_t *)bip); xfs_buf_item_relse(bp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) == NULL); + ASSERT(bp->b_fspriv == NULL); } xfs_buf_relse(bp); } @@ -684,7 +682,7 @@ xfs_buf_item_init( xfs_buf_t *bp, xfs_mount_t *mp) { - xfs_log_item_t *lip; + xfs_log_item_t *lip = bp->b_fspriv; xfs_buf_log_item_t *bip; int chunks; int map_size; @@ -696,12 +694,8 @@ xfs_buf_item_init( * nothing to do here so return. */ ASSERT(bp->b_target->bt_mount == mp); - if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { - lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); - if (lip->li_type == XFS_LI_BUF) { - return; - } - } + if (lip != NULL && lip->li_type == XFS_LI_BUF) + return; /* * chunks is the number of XFS_BLF_CHUNK size pieces @@ -740,11 +734,9 @@ xfs_buf_item_init( * Put the buf item into the list of items attached to the * buffer at the front. */ - if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { - bip->bli_item.li_bio_list = - XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); - } - XFS_BUF_SET_FSPRIVATE(bp, bip); + if (bp->b_fspriv) + bip->bli_item.li_bio_list = bp->b_fspriv; + bp->b_fspriv = bip; } @@ -876,12 +868,11 @@ xfs_buf_item_relse( trace_xfs_buf_item_relse(bp, _RET_IP_); - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*); - XFS_BUF_SET_FSPRIVATE(bp, bip->bli_item.li_bio_list); - if ((XFS_BUF_FSPRIVATE(bp, void *) == NULL) && - (XFS_BUF_IODONE_FUNC(bp) != NULL)) { + bip = bp->b_fspriv; + bp->b_fspriv = bip->bli_item.li_bio_list; + if (bp->b_fspriv == NULL && XFS_BUF_IODONE_FUNC(bp) != NULL) XFS_BUF_CLR_IODONE_FUNC(bp); - } + xfs_buf_rele(bp); xfs_buf_item_free(bip); } @@ -908,12 +899,12 @@ xfs_buf_attach_iodone( ASSERT(xfs_buf_islocked(bp)); lip->li_cb = cb; - if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { - head_lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); + head_lip = bp->b_fspriv; + if (head_lip) { lip->li_bio_list = head_lip->li_bio_list; head_lip->li_bio_list = lip; } else { - XFS_BUF_SET_FSPRIVATE(bp, lip); + bp->b_fspriv = lip; } ASSERT((XFS_BUF_IODONE_FUNC(bp) == xfs_buf_iodone_callbacks) || @@ -939,8 +930,8 @@ xfs_buf_do_callbacks( { struct xfs_log_item *lip; - while ((lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *)) != NULL) { - XFS_BUF_SET_FSPRIVATE(bp, lip->li_bio_list); + while ((lip = bp->b_fspriv) != NULL) { + bp->b_fspriv = lip->li_bio_list; ASSERT(lip->li_cb != NULL); /* * Clear the next pointer so we don't have any @@ -1026,7 +1017,7 @@ xfs_buf_iodone_callbacks( do_callbacks: xfs_buf_do_callbacks(bp); - XFS_BUF_SET_FSPRIVATE(bp, NULL); + bp->b_fspriv = NULL; XFS_BUF_CLR_IODONE_FUNC(bp); xfs_buf_ioend(bp, 0); } Index: xfs/fs/xfs/xfs_inode.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode.c 2011-07-09 09:16:01.012355050 +0200 +++ xfs/fs/xfs/xfs_inode.c 2011-07-09 09:34:13.255633083 +0200 @@ -1698,7 +1698,7 @@ xfs_ifree_cluster( * stale first, we will not attempt to lock them in the loop * below as the XFS_ISTALE flag will be set. */ - lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); + lip = bp->b_fspriv; while (lip) { if (lip->li_type == XFS_LI_INODE) { iip = (xfs_inode_log_item_t *)lip; @@ -2811,7 +2811,7 @@ xfs_iflush_int( */ xfs_buf_attach_iodone(bp, xfs_iflush_done, &iip->ili_item); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); + ASSERT(bp->b_fspriv != NULL); ASSERT(XFS_BUF_IODONE_FUNC(bp) != NULL); } else { /* Index: xfs/fs/xfs/xfs_log.c =================================================================== --- xfs.orig/fs/xfs/xfs_log.c 2011-07-09 09:34:12.292299803 +0200 +++ xfs/fs/xfs/xfs_log.c 2011-07-09 09:34:13.258966416 +0200 @@ -871,13 +871,9 @@ xlog_space_left( void xlog_iodone(xfs_buf_t *bp) { - xlog_in_core_t *iclog; - xlog_t *l; - int aborted; - - iclog = XFS_BUF_FSPRIVATE(bp, xlog_in_core_t *); - aborted = 0; - l = iclog->ic_log; + xlog_in_core_t *iclog = bp->b_fspriv; + xlog_t *l = iclog->ic_log; + int aborted = 0; /* * Race to shutdown the filesystem if we see an error. @@ -1249,9 +1245,8 @@ STATIC int xlog_bdstrat( struct xfs_buf *bp) { - struct xlog_in_core *iclog; + struct xlog_in_core *iclog = bp->b_fspriv; - iclog = XFS_BUF_FSPRIVATE(bp, xlog_in_core_t *); if (iclog->ic_state & XLOG_STATE_IOERROR) { XFS_BUF_ERROR(bp, EIO); XFS_BUF_STALE(bp); @@ -1358,7 +1353,7 @@ xlog_sync(xlog_t *log, iclog->ic_bwritecnt = 1; } XFS_BUF_SET_COUNT(bp, count); - XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ + bp->b_fspriv = iclog; XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); @@ -1405,7 +1400,7 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); - XFS_BUF_SET_FSPRIVATE(bp, iclog); + bp->b_fspriv = iclog; XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); Index: xfs/fs/xfs/xfs_trans_buf.c =================================================================== --- xfs.orig/fs/xfs/xfs_trans_buf.c 2011-07-09 09:34:12.295633137 +0200 +++ xfs/fs/xfs/xfs_trans_buf.c 2011-07-09 09:34:13.258966416 +0200 @@ -89,7 +89,7 @@ _xfs_trans_bjoin( * The checks to see if one is there are in xfs_buf_item_init(). */ xfs_buf_item_init(bp, tp->t_mountp); - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + bip = bp->b_fspriv; ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); ASSERT(!(bip->bli_flags & XFS_BLI_LOGGED)); @@ -173,7 +173,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, ASSERT(!XFS_BUF_ISDELAYWRITE(bp)); ASSERT(bp->b_transp == tp); - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + bip = bp->b_fspriv; ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_recur++; @@ -233,7 +233,7 @@ xfs_trans_getsb(xfs_trans_t *tp, */ bp = mp->m_sb_bp; if (bp->b_transp == tp) { - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*); + bip = bp->b_fspriv; ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_recur++; @@ -329,7 +329,7 @@ xfs_trans_read_buf( if (bp != NULL) { ASSERT(xfs_buf_islocked(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); + ASSERT(bp->b_fspriv != NULL); ASSERT((XFS_BUF_ISERROR(bp)) == 0); if (!(XFS_BUF_ISDONE(bp))) { trace_xfs_trans_read_buf_io(bp, _RET_IP_); @@ -363,7 +363,7 @@ xfs_trans_read_buf( } - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t*); + bip = bp->b_fspriv; bip->bli_recur++; ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -460,32 +460,30 @@ xfs_trans_brelse(xfs_trans_t *tp, xfs_buf_t *bp) { xfs_buf_log_item_t *bip; - xfs_log_item_t *lip; /* * Default to a normal brelse() call if the tp is NULL. */ if (tp == NULL) { + struct xfs_log_item *lip = bp->b_fspriv; + ASSERT(bp->b_transp == NULL); + /* * If there's a buf log item attached to the buffer, * then let the AIL know that the buffer is being * unlocked. */ - if (XFS_BUF_FSPRIVATE(bp, void *) != NULL) { - lip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); - if (lip->li_type == XFS_LI_BUF) { - bip = XFS_BUF_FSPRIVATE(bp,xfs_buf_log_item_t*); - xfs_trans_unlocked_item(bip->bli_item.li_ailp, - lip); - } + if (lip != NULL && lip->li_type == XFS_LI_BUF) { + bip = bp->b_fspriv; + xfs_trans_unlocked_item(bip->bli_item.li_ailp, lip); } xfs_buf_relse(bp); return; } ASSERT(bp->b_transp == tp); - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + bip = bp->b_fspriv; ASSERT(bip->bli_item.li_type == XFS_LI_BUF); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); @@ -581,16 +579,15 @@ void xfs_trans_bhold(xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); ASSERT(atomic_read(&bip->bli_refcount) > 0); + bip->bli_flags |= XFS_BLI_HOLD; trace_xfs_trans_bhold(bip); } @@ -603,19 +600,17 @@ void xfs_trans_bhold_release(xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); ASSERT(!(bip->bli_format.blf_flags & XFS_BLF_CANCEL)); ASSERT(atomic_read(&bip->bli_refcount) > 0); ASSERT(bip->bli_flags & XFS_BLI_HOLD); - bip->bli_flags &= ~XFS_BLI_HOLD; + bip->bli_flags &= ~XFS_BLI_HOLD; trace_xfs_trans_bhold_release(bip); } @@ -634,11 +629,11 @@ xfs_trans_log_buf(xfs_trans_t *tp, uint first, uint last) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); + ASSERT(bip != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); ASSERT((XFS_BUF_IODONE_FUNC(bp) == NULL) || (XFS_BUF_IODONE_FUNC(bp) == xfs_buf_iodone_callbacks)); @@ -656,7 +651,6 @@ xfs_trans_log_buf(xfs_trans_t *tp, XFS_BUF_DELAYWRITE(bp); XFS_BUF_DONE(bp); - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); ASSERT(atomic_read(&bip->bli_refcount) > 0); XFS_BUF_SET_IODONE_FUNC(bp, xfs_buf_iodone_callbacks); bip->bli_item.li_cb = xfs_buf_iodone; @@ -706,13 +700,11 @@ xfs_trans_binval( xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); trace_xfs_trans_binval(bip); @@ -780,13 +772,11 @@ xfs_trans_inode_buf( xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_flags |= XFS_BLI_INODE_BUF; @@ -806,13 +796,11 @@ xfs_trans_stale_inode_buf( xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_flags |= XFS_BLI_STALE_INODE; @@ -833,13 +821,11 @@ xfs_trans_inode_alloc_buf( xfs_trans_t *tp, xfs_buf_t *bp) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); + ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_flags |= XFS_BLI_INODE_ALLOC_BUF; @@ -863,16 +849,14 @@ xfs_trans_dquot_buf( xfs_buf_t *bp, uint type) { - xfs_buf_log_item_t *bip; + xfs_buf_log_item_t *bip = bp->b_fspriv; ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); - ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); + ASSERT(bip != NULL); ASSERT(type == XFS_BLF_UDQUOT_BUF || type == XFS_BLF_PDQUOT_BUF || type == XFS_BLF_GDQUOT_BUF); - - bip = XFS_BUF_FSPRIVATE(bp, xfs_buf_log_item_t *); ASSERT(atomic_read(&bip->bli_refcount) > 0); bip->bli_format.blf_flags |= type; Index: xfs/fs/xfs/xfs_inode_item.c =================================================================== --- xfs.orig/fs/xfs/xfs_inode_item.c 2011-07-09 09:16:01.012355050 +0200 +++ xfs/fs/xfs/xfs_inode_item.c 2011-07-09 09:34:13.262299750 +0200 @@ -874,7 +874,7 @@ xfs_iflush_done( * Scan the buffer IO completions for other inodes being completed and * attach them to the current inode log item. */ - blip = XFS_BUF_FSPRIVATE(bp, xfs_log_item_t *); + blip = bp->b_fspriv; prev = NULL; while (blip != NULL) { if (lip->li_cb != xfs_iflush_done) { @@ -886,7 +886,7 @@ xfs_iflush_done( /* remove from list */ next = blip->li_bio_list; if (!prev) { - XFS_BUF_SET_FSPRIVATE(bp, next); + bp->b_fspriv = next; } else { prev->li_bio_list = next; } From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoM4Q153547 for ; Sun, 10 Jul 2011 15:50:23 -0500 X-ASG-Debug-ID: 1310331017-57f503480000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D6DA65CC9A for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id xWB7hBPQZI2Kobbk for ; Sun, 10 Jul 2011 13:50:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xE-0002tC-Tk for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:16 +0000 Message-Id: <20110710205016.890382263@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:17 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 01/11] xfs: reshuffle dir2 headers Subject: [PATCH 01/11] xfs: reshuffle dir2 headers References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-dir2-factor-headers X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68549 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Replace the current mess of dir2 headers with just three that have a clear purpose: - xfs_dir2_format.h for all format defintions, including the inline helpers to access our variable size structures - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code and no needed by anything outside of the directory code. For this purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part of the directory code. - xfs_dir2.h for the public interface to the directory code In addition to the reshuffle I have also update the comments to not only match the new file structure, but also to describe the directory format better. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/xfs_bmap.c =================================================================== --- xfs.orig/fs/xfs/xfs_bmap.c 2011-07-09 13:29:18.194918955 +0200 +++ xfs/fs/xfs/xfs_bmap.c 2011-07-09 13:29:20.434918841 +0200 @@ -29,15 +29,11 @@ #include "xfs_bmap_btree.h" #include "xfs_alloc_btree.h" #include "xfs_ialloc_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_btree.h" #include "xfs_mount.h" #include "xfs_itable.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" #include "xfs_inode_item.h" #include "xfs_extfree_item.h" #include "xfs_alloc.h" Index: xfs/fs/xfs/xfs_da_btree.c =================================================================== --- xfs.orig/fs/xfs/xfs_da_btree.c 2011-07-09 13:29:18.208252287 +0200 +++ xfs/fs/xfs/xfs_da_btree.c 2011-07-09 13:29:20.434918841 +0200 @@ -24,11 +24,12 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" +#include "xfs_dir2.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" @@ -36,10 +37,6 @@ #include "xfs_bmap.h" #include "xfs_attr.h" #include "xfs_attr_leaf.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" -#include "xfs_dir2_node.h" #include "xfs_error.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_dir2.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2.c 2011-07-09 13:29:18.218252286 +0200 +++ xfs/fs/xfs/xfs_dir2.c 2011-07-09 13:29:20.434918841 +0200 @@ -24,20 +24,17 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" #include "xfs_alloc_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" #include "xfs_bmap.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" -#include "xfs_dir2_node.h" +#include "xfs_dir2.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_error.h" #include "xfs_vnodeops.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_dir2_block.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.c 2011-07-09 13:29:18.231585620 +0200 +++ xfs/fs/xfs/xfs_dir2_block.c 2011-07-09 13:29:20.438252174 +0200 @@ -23,17 +23,14 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_error.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_dir2_data.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.c 2011-07-09 13:29:18.241585619 +0200 +++ xfs/fs/xfs/xfs_dir2_data.c 2011-07-09 13:29:20.441585507 +0200 @@ -23,16 +23,13 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_error.h" STATIC xfs_dir2_data_free_t * Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-09 13:29:18.251585618 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-09 13:29:20.444918840 +0200 @@ -24,18 +24,14 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_bmap.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" -#include "xfs_dir2_node.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_error.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_dir2_node.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.c 2011-07-09 13:29:18.261585617 +0200 +++ xfs/fs/xfs/xfs_dir2_node.c 2011-07-09 13:29:20.448252173 +0200 @@ -23,18 +23,14 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_bmap.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" -#include "xfs_dir2_node.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_error.h" #include "xfs_trace.h" Index: xfs/fs/xfs/xfs_dir2_sf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.c 2011-07-09 13:29:18.274918951 +0200 +++ xfs/fs/xfs/xfs_dir2_sf.c 2011-07-09 13:29:20.448252173 +0200 @@ -23,18 +23,16 @@ #include "xfs_trans.h" #include "xfs_sb.h" #include "xfs_ag.h" -#include "xfs_dir2.h" #include "xfs_mount.h" #include "xfs_da_btree.h" #include "xfs_bmap_btree.h" -#include "xfs_dir2_sf.h" #include "xfs_dinode.h" #include "xfs_inode.h" #include "xfs_inode_item.h" #include "xfs_error.h" -#include "xfs_dir2_data.h" -#include "xfs_dir2_leaf.h" -#include "xfs_dir2_block.h" +#include "xfs_dir2.h" +#include "xfs_dir2_format.h" +#include "xfs_dir2_priv.h" #include "xfs_trace.h" /* Index: xfs/fs/xfs/xfs_dir2.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2.h 2011-07-09 13:29:18.284918951 +0200 +++ xfs/fs/xfs/xfs_dir2.h 2011-07-09 13:29:29.221585064 +0200 @@ -16,49 +16,14 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef __XFS_DIR2_H__ -#define __XFS_DIR2_H__ +#define __XFS_DIR2_H__ -struct uio; -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_dir2_put_args; struct xfs_bmap_free; +struct xfs_da_args; struct xfs_inode; struct xfs_mount; struct xfs_trans; -/* - * Directory version 2. - * There are 4 possible formats: - * shortform - * single block - data with embedded leaf at the end - * multiple data blocks, single leaf+freeindex block - * data blocks, node&leaf blocks (btree), freeindex blocks - * - * The shortform format is in xfs_dir2_sf.h. - * The single block format is in xfs_dir2_block.h. - * The data block format is in xfs_dir2_data.h. - * The leaf and freeindex block formats are in xfs_dir2_leaf.h. - * Node blocks are the same as the other version, in xfs_da_btree.h. - */ - -/* - * Byte offset in data block and shortform entry. - */ -typedef __uint16_t xfs_dir2_data_off_t; -#define NULLDATAOFF 0xffffU -typedef uint xfs_dir2_data_aoff_t; /* argument form */ - -/* - * Directory block number (logical dirblk in file) - */ -typedef __uint32_t xfs_dir2_db_t; - -/* - * Byte offset in a directory. - */ -typedef xfs_off_t xfs_dir2_off_t; - extern struct xfs_name xfs_name_dotdot; /* @@ -86,21 +51,10 @@ extern int xfs_dir_replace(struct xfs_tr struct xfs_bmap_free *flist, xfs_extlen_t tot); extern int xfs_dir_canenter(struct xfs_trans *tp, struct xfs_inode *dp, struct xfs_name *name, uint resblks); -extern int xfs_dir_ino_validate(struct xfs_mount *mp, xfs_ino_t ino); /* - * Utility routines for v2 directories. + * Direct call from the bmap code, bypassing the generic directory layer. */ -extern int xfs_dir2_grow_inode(struct xfs_da_args *args, int space, - xfs_dir2_db_t *dbp); -extern int xfs_dir2_isblock(struct xfs_trans *tp, struct xfs_inode *dp, - int *vp); -extern int xfs_dir2_isleaf(struct xfs_trans *tp, struct xfs_inode *dp, - int *vp); -extern int xfs_dir2_shrink_inode(struct xfs_da_args *args, xfs_dir2_db_t db, - struct xfs_dabuf *bp); - -extern int xfs_dir_cilookup_result(struct xfs_da_args *args, - const unsigned char *name, int len); +extern int xfs_dir2_sf_to_block(struct xfs_da_args *args); #endif /* __XFS_DIR2_H__ */ Index: xfs/fs/xfs/xfs_dir2_block.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_block.h 2011-07-09 13:29:18.294918950 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,93 +0,0 @@ -/* - * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_DIR2_BLOCK_H__ -#define __XFS_DIR2_BLOCK_H__ - -/* - * Directory version 2, single block format structures. - * - * The single block format looks like the following drawing on disk: - * - * +-------------------------------------------------+ - * | xfs_dir2_data_hdr_t | - * +-------------------------------------------------+ - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | ... | - * +-------------------------------------------------+ - * | unused space | - * +-------------------------------------------------+ - * | ... | - * | xfs_dir2_leaf_entry_t | - * | xfs_dir2_leaf_entry_t | - * +-------------------------------------------------+ - * | xfs_dir2_block_tail_t | - * +-------------------------------------------------+ - * - * As all the entries are variable size structures the accessors in this - * file and xfs_dir2_data.h should be used to iterate over them. - */ -struct uio; -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_dir2_data_hdr; -struct xfs_dir2_leaf_entry; -struct xfs_inode; -struct xfs_mount; -struct xfs_trans; - -#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ - -typedef struct xfs_dir2_block_tail { - __be32 count; /* count of leaf entries */ - __be32 stale; /* count of stale lf entries */ -} xfs_dir2_block_tail_t; - -/* - * Pointer to the leaf header embedded in a data block (1-block format) - */ -static inline xfs_dir2_block_tail_t * -xfs_dir2_block_tail_p(struct xfs_mount *mp, xfs_dir2_data_hdr_t *hdr) -{ - return ((xfs_dir2_block_tail_t *)((char *)hdr + mp->m_dirblksize)) - 1; -} - -/* - * Pointer to the leaf entries embedded in a data block (1-block format) - */ -static inline struct xfs_dir2_leaf_entry * -xfs_dir2_block_leaf_p(xfs_dir2_block_tail_t *btp) -{ - return ((struct xfs_dir2_leaf_entry *)btp) - be32_to_cpu(btp->count); -} - -/* - * Function declarations. - */ -extern int xfs_dir2_block_addname(struct xfs_da_args *args); -extern int xfs_dir2_block_getdents(struct xfs_inode *dp, void *dirent, - xfs_off_t *offset, filldir_t filldir); -extern int xfs_dir2_block_lookup(struct xfs_da_args *args); -extern int xfs_dir2_block_removename(struct xfs_da_args *args); -extern int xfs_dir2_block_replace(struct xfs_da_args *args); -extern int xfs_dir2_leaf_to_block(struct xfs_da_args *args, - struct xfs_dabuf *lbp, struct xfs_dabuf *dbp); -extern int xfs_dir2_sf_to_block(struct xfs_da_args *args); - -#endif /* __XFS_DIR2_BLOCK_H__ */ Index: xfs/fs/xfs/xfs_dir2_data.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_data.h 2011-07-09 13:29:18.304918949 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,182 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_DIR2_DATA_H__ -#define __XFS_DIR2_DATA_H__ - -/* - * Directory format 2, data block structures. - * - * A pure data block looks like the following drawing on disk: - * - * +-------------------------------------------------+ - * | xfs_dir2_data_hdr_t | - * +-------------------------------------------------+ - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | - * | ... | - * +-------------------------------------------------+ - * | unused space | - * +-------------------------------------------------+ - * - * As all the entries are variable size structures the accessors in this - * file should be used to iterate over them. - */ - -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_inode; -struct xfs_trans; - -/* - * Constants. - */ -#define XFS_DIR2_DATA_MAGIC 0x58443244 /* XD2D: for multiblock dirs */ -#define XFS_DIR2_DATA_ALIGN_LOG 3 /* i.e., 8 bytes */ -#define XFS_DIR2_DATA_ALIGN (1 << XFS_DIR2_DATA_ALIGN_LOG) -#define XFS_DIR2_DATA_FREE_TAG 0xffff -#define XFS_DIR2_DATA_FD_COUNT 3 - -/* - * Directory address space divided into sections, - * spaces separated by 32GB. - */ -#define XFS_DIR2_SPACE_SIZE (1ULL << (32 + XFS_DIR2_DATA_ALIGN_LOG)) -#define XFS_DIR2_DATA_SPACE 0 -#define XFS_DIR2_DATA_OFFSET (XFS_DIR2_DATA_SPACE * XFS_DIR2_SPACE_SIZE) -#define XFS_DIR2_DATA_FIRSTDB(mp) \ - xfs_dir2_byte_to_db(mp, XFS_DIR2_DATA_OFFSET) - -/* - * Offsets of . and .. in data space (always block 0) - */ -#define XFS_DIR2_DATA_DOT_OFFSET \ - ((xfs_dir2_data_aoff_t)sizeof(xfs_dir2_data_hdr_t)) -#define XFS_DIR2_DATA_DOTDOT_OFFSET \ - (XFS_DIR2_DATA_DOT_OFFSET + xfs_dir2_data_entsize(1)) -#define XFS_DIR2_DATA_FIRST_OFFSET \ - (XFS_DIR2_DATA_DOTDOT_OFFSET + xfs_dir2_data_entsize(2)) - -/* - * Structures. - */ - -/* - * Describe a free area in the data block. - * The freespace will be formatted as a xfs_dir2_data_unused_t. - */ -typedef struct xfs_dir2_data_free { - __be16 offset; /* start of freespace */ - __be16 length; /* length of freespace */ -} xfs_dir2_data_free_t; - -/* - * Header for the data blocks. - * Always at the beginning of a directory-sized block. - * The code knows that XFS_DIR2_DATA_FD_COUNT is 3. - */ -typedef struct xfs_dir2_data_hdr { - __be32 magic; /* XFS_DIR2_DATA_MAGIC */ - /* or XFS_DIR2_BLOCK_MAGIC */ - xfs_dir2_data_free_t bestfree[XFS_DIR2_DATA_FD_COUNT]; -} xfs_dir2_data_hdr_t; - -/* - * Active entry in a data block. Aligned to 8 bytes. - * - * After the variable length name field there is a 2 byte tag field, which - * can be accessed using xfs_dir2_data_entry_tag_p. - */ -typedef struct xfs_dir2_data_entry { - __be64 inumber; /* inode number */ - __u8 namelen; /* name length */ - __u8 name[]; /* name bytes, no null */ - /* __be16 tag; */ /* starting offset of us */ -} xfs_dir2_data_entry_t; - -/* - * Unused entry in a data block. Aligned to 8 bytes. - * Tag appears as the last 2 bytes. - */ -typedef struct xfs_dir2_data_unused { - __be16 freetag; /* XFS_DIR2_DATA_FREE_TAG */ - __be16 length; /* total free length */ - /* variable offset */ - __be16 tag; /* starting offset of us */ -} xfs_dir2_data_unused_t; - -/* - * Size of a data entry. - */ -static inline int xfs_dir2_data_entsize(int n) -{ - return (int)roundup(offsetof(xfs_dir2_data_entry_t, name[0]) + (n) + \ - (uint)sizeof(xfs_dir2_data_off_t), XFS_DIR2_DATA_ALIGN); -} - -/* - * Pointer to an entry's tag word. - */ -static inline __be16 * -xfs_dir2_data_entry_tag_p(xfs_dir2_data_entry_t *dep) -{ - return (__be16 *)((char *)dep + - xfs_dir2_data_entsize(dep->namelen) - sizeof(__be16)); -} - -/* - * Pointer to a freespace's tag word. - */ -static inline __be16 * -xfs_dir2_data_unused_tag_p(xfs_dir2_data_unused_t *dup) -{ - return (__be16 *)((char *)dup + - be16_to_cpu(dup->length) - sizeof(__be16)); -} - -/* - * Function declarations. - */ -#ifdef DEBUG -extern void xfs_dir2_data_check(struct xfs_inode *dp, struct xfs_dabuf *bp); -#else -#define xfs_dir2_data_check(dp,bp) -#endif -extern xfs_dir2_data_free_t *xfs_dir2_data_freeinsert(xfs_dir2_data_hdr_t *hdr, - xfs_dir2_data_unused_t *dup, int *loghead); -extern void xfs_dir2_data_freescan(struct xfs_mount *mp, - xfs_dir2_data_hdr_t *hdr, int *loghead); -extern int xfs_dir2_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno, - struct xfs_dabuf **bpp); -extern void xfs_dir2_data_log_entry(struct xfs_trans *tp, struct xfs_dabuf *bp, - xfs_dir2_data_entry_t *dep); -extern void xfs_dir2_data_log_header(struct xfs_trans *tp, - struct xfs_dabuf *bp); -extern void xfs_dir2_data_log_unused(struct xfs_trans *tp, struct xfs_dabuf *bp, - xfs_dir2_data_unused_t *dup); -extern void xfs_dir2_data_make_free(struct xfs_trans *tp, struct xfs_dabuf *bp, - xfs_dir2_data_aoff_t offset, - xfs_dir2_data_aoff_t len, int *needlogp, - int *needscanp); -extern void xfs_dir2_data_use_free(struct xfs_trans *tp, struct xfs_dabuf *bp, - xfs_dir2_data_unused_t *dup, - xfs_dir2_data_aoff_t offset, - xfs_dir2_data_aoff_t len, int *needlogp, - int *needscanp); - -#endif /* __XFS_DIR2_DATA_H__ */ Index: xfs/fs/xfs/xfs_dir2_format.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfs/fs/xfs/xfs_dir2_format.h 2011-07-09 13:29:33.488251514 +0200 @@ -0,0 +1,602 @@ +/* + * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_DIR2_FORMAT_H__ +#define __XFS_DIR2_FORMAT_H__ + +/* + * Directory version 2. + * + * There are 4 possible formats: + * - shortform - embedded into the inode + * - single block - data with embedded leaf at the end + * - multiple data blocks, single leaf+freeindex block + * - data blocks, node and leaf blocks (btree), freeindex blocks + * + * Note: many node blocks structures and constants are shared with the attributes + * code and defined in xfs_da_btree.h. + */ + +#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ +#define XFS_DIR2_DATA_MAGIC 0x58443244 /* XD2D: for multiblock dirs */ +#define XFS_DIR2_FREE_MAGIC 0x58443246 /* XD2F */ + +/* + * Byte offset in data block and shortform entry. + */ +typedef __uint16_t xfs_dir2_data_off_t; +#define NULLDATAOFF 0xffffU +typedef uint xfs_dir2_data_aoff_t; /* argument form */ + +/* + * Normalized offset (in a data block) of the entry, really xfs_dir2_data_off_t. + * Only need 16 bits, this is the byte offset into the single block form. + */ +typedef struct { __uint8_t i[2]; } __arch_pack xfs_dir2_sf_off_t; + +/* + * Offset in data space of a data entry. + */ +typedef __uint32_t xfs_dir2_dataptr_t; +#define XFS_DIR2_MAX_DATAPTR ((xfs_dir2_dataptr_t)0xffffffff) +#define XFS_DIR2_NULL_DATAPTR ((xfs_dir2_dataptr_t)0) + +/* + * Byte offset in a directory. + */ +typedef xfs_off_t xfs_dir2_off_t; + +/* + * Directory block number (logical dirblk in file) + */ +typedef __uint32_t xfs_dir2_db_t; + +/* + * Inode number stored as 8 8-bit values. + */ +typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; + +/* + * Inode number stored as 4 8-bit values. + * Works a lot of the time, when all the inode numbers in a directory + * fit in 32 bits. + */ +typedef struct { __uint8_t i[4]; } xfs_dir2_ino4_t; + +typedef union { + xfs_dir2_ino8_t i8; + xfs_dir2_ino4_t i4; +} xfs_dir2_inou_t; +#define XFS_DIR2_MAX_SHORT_INUM ((xfs_ino_t)0xffffffffULL) + +/* + * Directory layout when stored internal to an inode. + * + * Small directories are packed as tightly as possible so as to fit into the + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header + * followed by zero or more xfs_dir2_sf_entry structures. Due the different + * inode number storage size and the variable length name field in + * the xfs_dir2_sf_entry all these structure are variable length, and the + * accessors in this file should be used to iterate over them. + * + * + * The parent directory has a dedicated field, and the self-pointer must + * be calculated on the fly. + * + * Entries are packed toward the top as tightly as possible, and thus may + * be misaligned. Care needs to be taken to access them through special + * helpers or copy them into aligned variables first. + */ +typedef struct xfs_dir2_sf_hdr { + __uint8_t count; /* count of entries */ + __uint8_t i8count; /* count of 8-byte inode #s */ + xfs_dir2_inou_t parent; /* parent dir inode number */ +} __arch_pack xfs_dir2_sf_hdr_t; + +typedef struct xfs_dir2_sf_entry { + __u8 namelen; /* actual name length */ + xfs_dir2_sf_off_t offset; /* saved offset */ + __u8 name[]; /* name, variable size */ + /* + * A xfs_dir2_ino8_t or xfs_dir2_ino4_t follows here, at a + * variable offset after the name. + */ +} __arch_pack xfs_dir2_sf_entry_t; + +static inline int xfs_dir2_sf_hdr_size(int i8count) +{ + return sizeof(struct xfs_dir2_sf_hdr) - + (i8count == 0) * + (sizeof(xfs_dir2_ino8_t) - sizeof(xfs_dir2_ino4_t)); +} + +static inline xfs_dir2_data_aoff_t +xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) +{ + return get_unaligned_be16(&sfep->offset.i); +} + +static inline void +xfs_dir2_sf_put_offset(xfs_dir2_sf_entry_t *sfep, xfs_dir2_data_aoff_t off) +{ + put_unaligned_be16(off, &sfep->offset.i); +} + +static inline int +xfs_dir2_sf_entsize(struct xfs_dir2_sf_hdr *hdr, int len) +{ + return sizeof(struct xfs_dir2_sf_entry) + /* namelen + offset */ + len + /* name */ + (hdr->i8count ? /* ino */ + sizeof(xfs_dir2_ino8_t) : + sizeof(xfs_dir2_ino4_t)); +} + +static inline struct xfs_dir2_sf_entry * +xfs_dir2_sf_firstentry(struct xfs_dir2_sf_hdr *hdr) +{ + return (struct xfs_dir2_sf_entry *) + ((char *)hdr + xfs_dir2_sf_hdr_size(hdr->i8count)); +} + +static inline struct xfs_dir2_sf_entry * +xfs_dir2_sf_nextentry(struct xfs_dir2_sf_hdr *hdr, + struct xfs_dir2_sf_entry *sfep) +{ + return (struct xfs_dir2_sf_entry *) + ((char *)sfep + xfs_dir2_sf_entsize(hdr, sfep->namelen)); +} + + +/* + * Data block structures. + * + * A pure data block looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * + * As all the entries are variable size structures the accessors below should + * be used to iterate over them. + * + * In addition to the pure data blocks for the data and node formats it, + * most structures are also used for the combined data/freespace "block" + * format below. + */ + +#define XFS_DIR2_DATA_ALIGN_LOG 3 /* i.e., 8 bytes */ +#define XFS_DIR2_DATA_ALIGN (1 << XFS_DIR2_DATA_ALIGN_LOG) +#define XFS_DIR2_DATA_FREE_TAG 0xffff +#define XFS_DIR2_DATA_FD_COUNT 3 + +/* + * Directory address space divided into sections, + * spaces separated by 32GB. + */ +#define XFS_DIR2_SPACE_SIZE (1ULL << (32 + XFS_DIR2_DATA_ALIGN_LOG)) +#define XFS_DIR2_DATA_SPACE 0 +#define XFS_DIR2_DATA_OFFSET (XFS_DIR2_DATA_SPACE * XFS_DIR2_SPACE_SIZE) +#define XFS_DIR2_DATA_FIRSTDB(mp) \ + xfs_dir2_byte_to_db(mp, XFS_DIR2_DATA_OFFSET) + +/* + * Offsets of . and .. in data space (always block 0) + */ +#define XFS_DIR2_DATA_DOT_OFFSET \ + ((xfs_dir2_data_aoff_t)sizeof(struct xfs_dir2_data_hdr)) +#define XFS_DIR2_DATA_DOTDOT_OFFSET \ + (XFS_DIR2_DATA_DOT_OFFSET + xfs_dir2_data_entsize(1)) +#define XFS_DIR2_DATA_FIRST_OFFSET \ + (XFS_DIR2_DATA_DOTDOT_OFFSET + xfs_dir2_data_entsize(2)) + +/* + * Describe a free area in the data block. + * + * The freespace will be formatted as a xfs_dir2_data_unused_t. + */ +typedef struct xfs_dir2_data_free { + __be16 offset; /* start of freespace */ + __be16 length; /* length of freespace */ +} xfs_dir2_data_free_t; + +/* + * Header for the data blocks. + * + * The code knows that XFS_DIR2_DATA_FD_COUNT is 3. + */ +typedef struct xfs_dir2_data_hdr { + __be32 magic; /* XFS_DIR2_DATA_MAGIC or */ + /* XFS_DIR2_BLOCK_MAGIC */ + xfs_dir2_data_free_t bestfree[XFS_DIR2_DATA_FD_COUNT]; +} xfs_dir2_data_hdr_t; + +/* + * Active entry in a data block. + * + * Aligned to 8 bytes. After the variable length name field there is a + * 2 byte tag field, which can be accessed using xfs_dir2_data_entry_tag_p. + */ +typedef struct xfs_dir2_data_entry { + __be64 inumber; /* inode number */ + __u8 namelen; /* name length */ + __u8 name[]; /* name bytes, no null */ + /* __be16 tag; */ /* starting offset of us */ +} xfs_dir2_data_entry_t; + +/* + * Unused entry in a data block. + * + * Aligned to 8 bytes. Tag appears as the last 2 bytes and must be accessed + * using xfs_dir2_data_unused_tag_p. + */ +typedef struct xfs_dir2_data_unused { + __be16 freetag; /* XFS_DIR2_DATA_FREE_TAG */ + __be16 length; /* total free length */ + /* variable offset */ + __be16 tag; /* starting offset of us */ +} xfs_dir2_data_unused_t; + +/* + * Size of a data entry. + */ +static inline int xfs_dir2_data_entsize(int n) +{ + return (int)roundup(offsetof(struct xfs_dir2_data_entry, name[0]) + n + + (uint)sizeof(xfs_dir2_data_off_t), XFS_DIR2_DATA_ALIGN); +} + +/* + * Pointer to an entry's tag word. + */ +static inline __be16 * +xfs_dir2_data_entry_tag_p(struct xfs_dir2_data_entry *dep) +{ + return (__be16 *)((char *)dep + + xfs_dir2_data_entsize(dep->namelen) - sizeof(__be16)); +} + +/* + * Pointer to a freespace's tag word. + */ +static inline __be16 * +xfs_dir2_data_unused_tag_p(struct xfs_dir2_data_unused *dup) +{ + return (__be16 *)((char *)dup + + be16_to_cpu(dup->length) - sizeof(__be16)); +} + +/* + * Leaf block structures. + * + * A pure leaf block looks like the following drawing on disk: + * + * +---------------------------+ + * | xfs_dir2_leaf_hdr_t | + * +---------------------------+ + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * | ... | + * +---------------------------+ + * | xfs_dir2_data_off_t | + * | xfs_dir2_data_off_t | + * | xfs_dir2_data_off_t | + * | ... | + * +---------------------------+ + * | xfs_dir2_leaf_tail_t | + * +---------------------------+ + * + * The xfs_dir2_data_off_t members (bests) and tail are at the end of the block + * for single-leaf (magic = XFS_DIR2_LEAF1_MAGIC) blocks only, but not present + * for directories with separate leaf nodes and free space blocks + * (magic = XFS_DIR2_LEAFN_MAGIC). + * + * As all the entries are variable size structures the accessors below should + * be used to iterate over them. + */ + +/* + * Offset of the leaf/node space. First block in this space + * is the btree root. + */ +#define XFS_DIR2_LEAF_SPACE 1 +#define XFS_DIR2_LEAF_OFFSET (XFS_DIR2_LEAF_SPACE * XFS_DIR2_SPACE_SIZE) +#define XFS_DIR2_LEAF_FIRSTDB(mp) \ + xfs_dir2_byte_to_db(mp, XFS_DIR2_LEAF_OFFSET) + +/* + * Leaf block header. + */ +typedef struct xfs_dir2_leaf_hdr { + xfs_da_blkinfo_t info; /* header for da routines */ + __be16 count; /* count of entries */ + __be16 stale; /* count of stale entries */ +} xfs_dir2_leaf_hdr_t; + +/* + * Leaf block entry. + */ +typedef struct xfs_dir2_leaf_entry { + __be32 hashval; /* hash value of name */ + __be32 address; /* address of data entry */ +} xfs_dir2_leaf_entry_t; + +/* + * Leaf block tail. + */ +typedef struct xfs_dir2_leaf_tail { + __be32 bestcount; +} xfs_dir2_leaf_tail_t; + +/* + * Leaf block. + */ +typedef struct xfs_dir2_leaf { + xfs_dir2_leaf_hdr_t hdr; /* leaf header */ + xfs_dir2_leaf_entry_t ents[]; /* entries */ +} xfs_dir2_leaf_t; + +/* + * DB blocks here are logical directory block numbers, not filesystem blocks. + */ + +static inline int xfs_dir2_max_leaf_ents(struct xfs_mount *mp) +{ + return (mp->m_dirblksize - (uint)sizeof(struct xfs_dir2_leaf_hdr)) / + (uint)sizeof(struct xfs_dir2_leaf_entry); +} + +/* + * Get address of the bestcount field in the single-leaf block. + */ +static inline struct xfs_dir2_leaf_tail * +xfs_dir2_leaf_tail_p(struct xfs_mount *mp, struct xfs_dir2_leaf *lp) +{ + return (struct xfs_dir2_leaf_tail *) + ((char *)lp + mp->m_dirblksize - + sizeof(struct xfs_dir2_leaf_tail)); +} + +/* + * Get address of the bests array in the single-leaf block. + */ +static inline __be16 * +xfs_dir2_leaf_bests_p(struct xfs_dir2_leaf_tail *ltp) +{ + return (__be16 *)ltp - be32_to_cpu(ltp->bestcount); +} + +/* + * Convert dataptr to byte in file space + */ +static inline xfs_dir2_off_t +xfs_dir2_dataptr_to_byte(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) +{ + return (xfs_dir2_off_t)dp << XFS_DIR2_DATA_ALIGN_LOG; +} + +/* + * Convert byte in file space to dataptr. It had better be aligned. + */ +static inline xfs_dir2_dataptr_t +xfs_dir2_byte_to_dataptr(struct xfs_mount *mp, xfs_dir2_off_t by) +{ + return (xfs_dir2_dataptr_t)(by >> XFS_DIR2_DATA_ALIGN_LOG); +} + +/* + * Convert byte in space to (DB) block + */ +static inline xfs_dir2_db_t +xfs_dir2_byte_to_db(struct xfs_mount *mp, xfs_dir2_off_t by) +{ + return (xfs_dir2_db_t) + (by >> (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)); +} + +/* + * Convert dataptr to a block number + */ +static inline xfs_dir2_db_t +xfs_dir2_dataptr_to_db(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) +{ + return xfs_dir2_byte_to_db(mp, xfs_dir2_dataptr_to_byte(mp, dp)); +} + +/* + * Convert byte in space to offset in a block + */ +static inline xfs_dir2_data_aoff_t +xfs_dir2_byte_to_off(struct xfs_mount *mp, xfs_dir2_off_t by) +{ + return (xfs_dir2_data_aoff_t)(by & + ((1 << (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) - 1)); +} + +/* + * Convert dataptr to a byte offset in a block + */ +static inline xfs_dir2_data_aoff_t +xfs_dir2_dataptr_to_off(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) +{ + return xfs_dir2_byte_to_off(mp, xfs_dir2_dataptr_to_byte(mp, dp)); +} + +/* + * Convert block and offset to byte in space + */ +static inline xfs_dir2_off_t +xfs_dir2_db_off_to_byte(struct xfs_mount *mp, xfs_dir2_db_t db, + xfs_dir2_data_aoff_t o) +{ + return ((xfs_dir2_off_t)db << + (mp->m_sb.sb_blocklog + mp->m_sb.sb_dirblklog)) + o; +} + +/* + * Convert block (DB) to block (dablk) + */ +static inline xfs_dablk_t +xfs_dir2_db_to_da(struct xfs_mount *mp, xfs_dir2_db_t db) +{ + return (xfs_dablk_t)(db << mp->m_sb.sb_dirblklog); +} + +/* + * Convert byte in space to (DA) block + */ +static inline xfs_dablk_t +xfs_dir2_byte_to_da(struct xfs_mount *mp, xfs_dir2_off_t by) +{ + return xfs_dir2_db_to_da(mp, xfs_dir2_byte_to_db(mp, by)); +} + +/* + * Convert block and offset to dataptr + */ +static inline xfs_dir2_dataptr_t +xfs_dir2_db_off_to_dataptr(struct xfs_mount *mp, xfs_dir2_db_t db, + xfs_dir2_data_aoff_t o) +{ + return xfs_dir2_byte_to_dataptr(mp, xfs_dir2_db_off_to_byte(mp, db, o)); +} + +/* + * Convert block (dablk) to block (DB) + */ +static inline xfs_dir2_db_t +xfs_dir2_da_to_db(struct xfs_mount *mp, xfs_dablk_t da) +{ + return (xfs_dir2_db_t)(da >> mp->m_sb.sb_dirblklog); +} + +/* + * Convert block (dablk) to byte offset in space + */ +static inline xfs_dir2_off_t +xfs_dir2_da_to_byte(struct xfs_mount *mp, xfs_dablk_t da) +{ + return xfs_dir2_db_off_to_byte(mp, xfs_dir2_da_to_db(mp, da), 0); +} + +/* + * Free space block defintions for the node format. + */ + +/* + * Offset of the freespace index. + */ +#define XFS_DIR2_FREE_SPACE 2 +#define XFS_DIR2_FREE_OFFSET (XFS_DIR2_FREE_SPACE * XFS_DIR2_SPACE_SIZE) +#define XFS_DIR2_FREE_FIRSTDB(mp) \ + xfs_dir2_byte_to_db(mp, XFS_DIR2_FREE_OFFSET) + +typedef struct xfs_dir2_free_hdr { + __be32 magic; /* XFS_DIR2_FREE_MAGIC */ + __be32 firstdb; /* db of first entry */ + __be32 nvalid; /* count of valid entries */ + __be32 nused; /* count of used entries */ +} xfs_dir2_free_hdr_t; + +typedef struct xfs_dir2_free { + xfs_dir2_free_hdr_t hdr; /* block header */ + __be16 bests[1]; /* best free counts */ + /* unused entries are -1 */ +} xfs_dir2_free_t; + +#define XFS_DIR2_MAX_FREE_BESTS(mp) \ + (((mp)->m_dirblksize - (uint)sizeof(struct xfs_dir2_free_hdr)) / \ + (uint)sizeof(xfs_dir2_data_off_t)) + +/* + * Convert data space db to the corresponding free db. + */ +static inline xfs_dir2_db_t +xfs_dir2_db_to_fdb(struct xfs_mount *mp, xfs_dir2_db_t db) +{ + return XFS_DIR2_FREE_FIRSTDB(mp) + db / XFS_DIR2_MAX_FREE_BESTS(mp); +} + +/* + * Convert data space db to the corresponding index in a free db. + */ +static inline int +xfs_dir2_db_to_fdindex(struct xfs_mount *mp, xfs_dir2_db_t db) +{ + return db % XFS_DIR2_MAX_FREE_BESTS(mp); +} + +/* + * Single block format. + * + * The single block format looks like the following drawing on disk: + * + * +-------------------------------------------------+ + * | xfs_dir2_data_hdr_t | + * +-------------------------------------------------+ + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t : + * | ... | + * +-------------------------------------------------+ + * | unused space | + * +-------------------------------------------------+ + * | ... | + * | xfs_dir2_leaf_entry_t | + * | xfs_dir2_leaf_entry_t | + * +-------------------------------------------------+ + * | xfs_dir2_block_tail_t | + * +-------------------------------------------------+ + * + * As all the entries are variable size structures the accessors below should + * be used to iterate over them. + */ + +typedef struct xfs_dir2_block_tail { + __be32 count; /* count of leaf entries */ + __be32 stale; /* count of stale lf entries */ +} xfs_dir2_block_tail_t; + +/* + * Pointer to the leaf header embedded in a data block (1-block format) + */ +static inline struct xfs_dir2_block_tail * +xfs_dir2_block_tail_p(struct xfs_mount *mp, struct xfs_dir2_data_hdr *hdr) +{ + return ((struct xfs_dir2_block_tail *) + ((char *)hdr + mp->m_dirblksize)) - 1; +} + +/* + * Pointer to the leaf entries embedded in a data block (1-block format) + */ +static inline struct xfs_dir2_leaf_entry * +xfs_dir2_block_leaf_p(struct xfs_dir2_block_tail *btp) +{ + return ((struct xfs_dir2_leaf_entry *)btp) - be32_to_cpu(btp->count); +} + +#endif /* __XFS_DIR2_FORMAT_H__ */ Index: xfs/fs/xfs/xfs_dir2_leaf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.h 2011-07-09 13:29:18.321585614 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,281 +0,0 @@ -/* - * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_DIR2_LEAF_H__ -#define __XFS_DIR2_LEAF_H__ - -/* - * Directory format 2, leaf block structures. - * - * A pure data block looks like the following drawing on disk: - * - * +---------------------------+ - * | xfs_dir2_leaf_hdr_t | - * +---------------------------+ - * | xfs_dir2_leaf_entry_t | - * | xfs_dir2_leaf_entry_t | - * | xfs_dir2_leaf_entry_t | - * | xfs_dir2_leaf_entry_t | - * | ... | - * +---------------------------+ - * | xfs_dir2_data_off_t | - * | xfs_dir2_data_off_t | - * | xfs_dir2_data_off_t | - * | ... | - * +---------------------------+ - * | xfs_dir2_leaf_tail_t | - * +---------------------------+ - * - * The bests (xfs_dir2_data_off_t members) and tail are at the end of the - * block for single-leaf only (magic = XFS_DIR2_LEAF1_MAGIC not - * XFS_DIR2_LEAFN_MAGIC). - * - * As all the entries are variable size structures the accessors in this - * file should be used to iterate over them. - */ - -struct uio; -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_inode; -struct xfs_mount; -struct xfs_trans; - -/* - * Offset of the leaf/node space. First block in this space - * is the btree root. - */ -#define XFS_DIR2_LEAF_SPACE 1 -#define XFS_DIR2_LEAF_OFFSET (XFS_DIR2_LEAF_SPACE * XFS_DIR2_SPACE_SIZE) -#define XFS_DIR2_LEAF_FIRSTDB(mp) \ - xfs_dir2_byte_to_db(mp, XFS_DIR2_LEAF_OFFSET) - -/* - * Offset in data space of a data entry. - */ -typedef __uint32_t xfs_dir2_dataptr_t; -#define XFS_DIR2_MAX_DATAPTR ((xfs_dir2_dataptr_t)0xffffffff) -#define XFS_DIR2_NULL_DATAPTR ((xfs_dir2_dataptr_t)0) - -/* - * Leaf block header. - */ -typedef struct xfs_dir2_leaf_hdr { - xfs_da_blkinfo_t info; /* header for da routines */ - __be16 count; /* count of entries */ - __be16 stale; /* count of stale entries */ -} xfs_dir2_leaf_hdr_t; - -/* - * Leaf block entry. - */ -typedef struct xfs_dir2_leaf_entry { - __be32 hashval; /* hash value of name */ - __be32 address; /* address of data entry */ -} xfs_dir2_leaf_entry_t; - -/* - * Leaf block tail. - */ -typedef struct xfs_dir2_leaf_tail { - __be32 bestcount; -} xfs_dir2_leaf_tail_t; - -/* - * Leaf block. - */ -typedef struct xfs_dir2_leaf { - xfs_dir2_leaf_hdr_t hdr; /* leaf header */ - xfs_dir2_leaf_entry_t ents[]; /* entries */ -} xfs_dir2_leaf_t; - -/* - * DB blocks here are logical directory block numbers, not filesystem blocks. - */ - -static inline int xfs_dir2_max_leaf_ents(struct xfs_mount *mp) -{ - return (int)(((mp)->m_dirblksize - (uint)sizeof(xfs_dir2_leaf_hdr_t)) / - (uint)sizeof(xfs_dir2_leaf_entry_t)); -} - -/* - * Get address of the bestcount field in the single-leaf block. - */ -static inline xfs_dir2_leaf_tail_t * -xfs_dir2_leaf_tail_p(struct xfs_mount *mp, xfs_dir2_leaf_t *lp) -{ - return (xfs_dir2_leaf_tail_t *) - ((char *)(lp) + (mp)->m_dirblksize - - (uint)sizeof(xfs_dir2_leaf_tail_t)); -} - -/* - * Get address of the bests array in the single-leaf block. - */ -static inline __be16 * -xfs_dir2_leaf_bests_p(xfs_dir2_leaf_tail_t *ltp) -{ - return (__be16 *)ltp - be32_to_cpu(ltp->bestcount); -} - -/* - * Convert dataptr to byte in file space - */ -static inline xfs_dir2_off_t -xfs_dir2_dataptr_to_byte(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) -{ - return (xfs_dir2_off_t)(dp) << XFS_DIR2_DATA_ALIGN_LOG; -} - -/* - * Convert byte in file space to dataptr. It had better be aligned. - */ -static inline xfs_dir2_dataptr_t -xfs_dir2_byte_to_dataptr(struct xfs_mount *mp, xfs_dir2_off_t by) -{ - return (xfs_dir2_dataptr_t)((by) >> XFS_DIR2_DATA_ALIGN_LOG); -} - -/* - * Convert byte in space to (DB) block - */ -static inline xfs_dir2_db_t -xfs_dir2_byte_to_db(struct xfs_mount *mp, xfs_dir2_off_t by) -{ - return (xfs_dir2_db_t)((by) >> \ - ((mp)->m_sb.sb_blocklog + (mp)->m_sb.sb_dirblklog)); -} - -/* - * Convert dataptr to a block number - */ -static inline xfs_dir2_db_t -xfs_dir2_dataptr_to_db(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) -{ - return xfs_dir2_byte_to_db(mp, xfs_dir2_dataptr_to_byte(mp, dp)); -} - -/* - * Convert byte in space to offset in a block - */ -static inline xfs_dir2_data_aoff_t -xfs_dir2_byte_to_off(struct xfs_mount *mp, xfs_dir2_off_t by) -{ - return (xfs_dir2_data_aoff_t)((by) & \ - ((1 << ((mp)->m_sb.sb_blocklog + (mp)->m_sb.sb_dirblklog)) - 1)); -} - -/* - * Convert dataptr to a byte offset in a block - */ -static inline xfs_dir2_data_aoff_t -xfs_dir2_dataptr_to_off(struct xfs_mount *mp, xfs_dir2_dataptr_t dp) -{ - return xfs_dir2_byte_to_off(mp, xfs_dir2_dataptr_to_byte(mp, dp)); -} - -/* - * Convert block and offset to byte in space - */ -static inline xfs_dir2_off_t -xfs_dir2_db_off_to_byte(struct xfs_mount *mp, xfs_dir2_db_t db, - xfs_dir2_data_aoff_t o) -{ - return ((xfs_dir2_off_t)(db) << \ - ((mp)->m_sb.sb_blocklog + (mp)->m_sb.sb_dirblklog)) + (o); -} - -/* - * Convert block (DB) to block (dablk) - */ -static inline xfs_dablk_t -xfs_dir2_db_to_da(struct xfs_mount *mp, xfs_dir2_db_t db) -{ - return (xfs_dablk_t)((db) << (mp)->m_sb.sb_dirblklog); -} - -/* - * Convert byte in space to (DA) block - */ -static inline xfs_dablk_t -xfs_dir2_byte_to_da(struct xfs_mount *mp, xfs_dir2_off_t by) -{ - return xfs_dir2_db_to_da(mp, xfs_dir2_byte_to_db(mp, by)); -} - -/* - * Convert block and offset to dataptr - */ -static inline xfs_dir2_dataptr_t -xfs_dir2_db_off_to_dataptr(struct xfs_mount *mp, xfs_dir2_db_t db, - xfs_dir2_data_aoff_t o) -{ - return xfs_dir2_byte_to_dataptr(mp, xfs_dir2_db_off_to_byte(mp, db, o)); -} - -/* - * Convert block (dablk) to block (DB) - */ -static inline xfs_dir2_db_t -xfs_dir2_da_to_db(struct xfs_mount *mp, xfs_dablk_t da) -{ - return (xfs_dir2_db_t)((da) >> (mp)->m_sb.sb_dirblklog); -} - -/* - * Convert block (dablk) to byte offset in space - */ -static inline xfs_dir2_off_t -xfs_dir2_da_to_byte(struct xfs_mount *mp, xfs_dablk_t da) -{ - return xfs_dir2_db_off_to_byte(mp, xfs_dir2_da_to_db(mp, da), 0); -} - -/* - * Function declarations. - */ -extern int xfs_dir2_block_to_leaf(struct xfs_da_args *args, - struct xfs_dabuf *dbp); -extern int xfs_dir2_leaf_addname(struct xfs_da_args *args); -extern void xfs_dir2_leaf_compact(struct xfs_da_args *args, - struct xfs_dabuf *bp); -extern void xfs_dir2_leaf_compact_x1(struct xfs_dabuf *bp, int *indexp, - int *lowstalep, int *highstalep, - int *lowlogp, int *highlogp); -extern int xfs_dir2_leaf_getdents(struct xfs_inode *dp, void *dirent, - size_t bufsize, xfs_off_t *offset, - filldir_t filldir); -extern int xfs_dir2_leaf_init(struct xfs_da_args *args, xfs_dir2_db_t bno, - struct xfs_dabuf **bpp, int magic); -extern void xfs_dir2_leaf_log_ents(struct xfs_trans *tp, struct xfs_dabuf *bp, - int first, int last); -extern void xfs_dir2_leaf_log_header(struct xfs_trans *tp, - struct xfs_dabuf *bp); -extern int xfs_dir2_leaf_lookup(struct xfs_da_args *args); -extern int xfs_dir2_leaf_removename(struct xfs_da_args *args); -extern int xfs_dir2_leaf_replace(struct xfs_da_args *args); -extern int xfs_dir2_leaf_search_hash(struct xfs_da_args *args, - struct xfs_dabuf *lbp); -extern int xfs_dir2_leaf_trim_data(struct xfs_da_args *args, - struct xfs_dabuf *lbp, xfs_dir2_db_t db); -extern xfs_dir2_leaf_entry_t *xfs_dir2_leaf_find_entry(xfs_dir2_leaf_t *, int, - int, int, int, - int *, int *); -extern int xfs_dir2_node_to_leaf(struct xfs_da_state *state); - -#endif /* __XFS_DIR2_LEAF_H__ */ Index: xfs/fs/xfs/xfs_dir2_node.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_node.h 2011-07-09 13:29:18.331585614 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,100 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_DIR2_NODE_H__ -#define __XFS_DIR2_NODE_H__ - -/* - * Directory version 2, btree node format structures - */ - -struct uio; -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_da_state; -struct xfs_da_state_blk; -struct xfs_inode; -struct xfs_trans; - -/* - * Offset of the freespace index. - */ -#define XFS_DIR2_FREE_SPACE 2 -#define XFS_DIR2_FREE_OFFSET (XFS_DIR2_FREE_SPACE * XFS_DIR2_SPACE_SIZE) -#define XFS_DIR2_FREE_FIRSTDB(mp) \ - xfs_dir2_byte_to_db(mp, XFS_DIR2_FREE_OFFSET) - -#define XFS_DIR2_FREE_MAGIC 0x58443246 /* XD2F */ - -typedef struct xfs_dir2_free_hdr { - __be32 magic; /* XFS_DIR2_FREE_MAGIC */ - __be32 firstdb; /* db of first entry */ - __be32 nvalid; /* count of valid entries */ - __be32 nused; /* count of used entries */ -} xfs_dir2_free_hdr_t; - -typedef struct xfs_dir2_free { - xfs_dir2_free_hdr_t hdr; /* block header */ - __be16 bests[1]; /* best free counts */ - /* unused entries are -1 */ -} xfs_dir2_free_t; - -#define XFS_DIR2_MAX_FREE_BESTS(mp) \ - (((mp)->m_dirblksize - (uint)sizeof(xfs_dir2_free_hdr_t)) / \ - (uint)sizeof(xfs_dir2_data_off_t)) - -/* - * Convert data space db to the corresponding free db. - */ -static inline xfs_dir2_db_t -xfs_dir2_db_to_fdb(struct xfs_mount *mp, xfs_dir2_db_t db) -{ - return (XFS_DIR2_FREE_FIRSTDB(mp) + (db) / XFS_DIR2_MAX_FREE_BESTS(mp)); -} - -/* - * Convert data space db to the corresponding index in a free db. - */ -static inline int -xfs_dir2_db_to_fdindex(struct xfs_mount *mp, xfs_dir2_db_t db) -{ - return ((db) % XFS_DIR2_MAX_FREE_BESTS(mp)); -} - -extern int xfs_dir2_leaf_to_node(struct xfs_da_args *args, - struct xfs_dabuf *lbp); -extern xfs_dahash_t xfs_dir2_leafn_lasthash(struct xfs_dabuf *bp, int *count); -extern int xfs_dir2_leafn_lookup_int(struct xfs_dabuf *bp, - struct xfs_da_args *args, int *indexp, - struct xfs_da_state *state); -extern int xfs_dir2_leafn_order(struct xfs_dabuf *leaf1_bp, - struct xfs_dabuf *leaf2_bp); -extern int xfs_dir2_leafn_split(struct xfs_da_state *state, - struct xfs_da_state_blk *oldblk, - struct xfs_da_state_blk *newblk); -extern int xfs_dir2_leafn_toosmall(struct xfs_da_state *state, int *action); -extern void xfs_dir2_leafn_unbalance(struct xfs_da_state *state, - struct xfs_da_state_blk *drop_blk, - struct xfs_da_state_blk *save_blk); -extern int xfs_dir2_node_addname(struct xfs_da_args *args); -extern int xfs_dir2_node_lookup(struct xfs_da_args *args); -extern int xfs_dir2_node_removename(struct xfs_da_args *args); -extern int xfs_dir2_node_replace(struct xfs_da_args *args); -extern int xfs_dir2_node_trim_free(struct xfs_da_args *args, xfs_fileoff_t fo, - int *rvalp); - -#endif /* __XFS_DIR2_NODE_H__ */ Index: xfs/fs/xfs/xfs_dir2_priv.h =================================================================== --- /dev/null 1970-01-01 00:00:00.000000000 +0000 +++ xfs/fs/xfs/xfs_dir2_priv.h 2011-07-09 13:29:40.948251135 +0200 @@ -0,0 +1,135 @@ +/* + * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_DIR2_PRIV_H__ +#define __XFS_DIR2_PRIV_H__ + +/* xfs_dir2.c */ +extern int xfs_dir_ino_validate(struct xfs_mount *mp, xfs_ino_t ino); +extern int xfs_dir2_isblock(struct xfs_trans *tp, struct xfs_inode *dp, int *r); +extern int xfs_dir2_isleaf(struct xfs_trans *tp, struct xfs_inode *dp, int *r); +extern int xfs_dir2_grow_inode(struct xfs_da_args *args, int space, + xfs_dir2_db_t *dbp); +extern int xfs_dir2_shrink_inode(struct xfs_da_args *args, xfs_dir2_db_t db, + struct xfs_dabuf *bp); +extern int xfs_dir_cilookup_result(struct xfs_da_args *args, + const unsigned char *name, int len); + +/* xfs_dir2_block.c */ +extern int xfs_dir2_block_addname(struct xfs_da_args *args); +extern int xfs_dir2_block_getdents(struct xfs_inode *dp, void *dirent, + xfs_off_t *offset, filldir_t filldir); +extern int xfs_dir2_block_lookup(struct xfs_da_args *args); +extern int xfs_dir2_block_removename(struct xfs_da_args *args); +extern int xfs_dir2_block_replace(struct xfs_da_args *args); +extern int xfs_dir2_leaf_to_block(struct xfs_da_args *args, + struct xfs_dabuf *lbp, struct xfs_dabuf *dbp); + +/* xfs_dir2_data.c */ +#ifdef DEBUG +extern void xfs_dir2_data_check(struct xfs_inode *dp, struct xfs_dabuf *bp); +#else +#define xfs_dir2_data_check(dp,bp) +#endif +extern struct xfs_dir2_data_free * +xfs_dir2_data_freeinsert(struct xfs_dir2_data_hdr *hdr, + struct xfs_dir2_data_unused *dup, int *loghead); +extern void xfs_dir2_data_freescan(struct xfs_mount *mp, + struct xfs_dir2_data_hdr *hdr, int *loghead); +extern int xfs_dir2_data_init(struct xfs_da_args *args, xfs_dir2_db_t blkno, + struct xfs_dabuf **bpp); +extern void xfs_dir2_data_log_entry(struct xfs_trans *tp, struct xfs_dabuf *bp, + struct xfs_dir2_data_entry *dep); +extern void xfs_dir2_data_log_header(struct xfs_trans *tp, + struct xfs_dabuf *bp); +extern void xfs_dir2_data_log_unused(struct xfs_trans *tp, struct xfs_dabuf *bp, + struct xfs_dir2_data_unused *dup); +extern void xfs_dir2_data_make_free(struct xfs_trans *tp, struct xfs_dabuf *bp, + xfs_dir2_data_aoff_t offset, xfs_dir2_data_aoff_t len, + int *needlogp, int *needscanp); +extern void xfs_dir2_data_use_free(struct xfs_trans *tp, struct xfs_dabuf *bp, + struct xfs_dir2_data_unused *dup, xfs_dir2_data_aoff_t offset, + xfs_dir2_data_aoff_t len, int *needlogp, int *needscanp); + +/* xfs_dir2_leaf.c */ +extern int xfs_dir2_block_to_leaf(struct xfs_da_args *args, + struct xfs_dabuf *dbp); +extern int xfs_dir2_leaf_addname(struct xfs_da_args *args); +extern void xfs_dir2_leaf_compact(struct xfs_da_args *args, + struct xfs_dabuf *bp); +extern void xfs_dir2_leaf_compact_x1(struct xfs_dabuf *bp, int *indexp, + int *lowstalep, int *highstalep, int *lowlogp, int *highlogp); +extern int xfs_dir2_leaf_getdents(struct xfs_inode *dp, void *dirent, + size_t bufsize, xfs_off_t *offset, filldir_t filldir); +extern int xfs_dir2_leaf_init(struct xfs_da_args *args, xfs_dir2_db_t bno, + struct xfs_dabuf **bpp, int magic); +extern void xfs_dir2_leaf_log_ents(struct xfs_trans *tp, struct xfs_dabuf *bp, + int first, int last); +extern void xfs_dir2_leaf_log_header(struct xfs_trans *tp, + struct xfs_dabuf *bp); +extern int xfs_dir2_leaf_lookup(struct xfs_da_args *args); +extern int xfs_dir2_leaf_removename(struct xfs_da_args *args); +extern int xfs_dir2_leaf_replace(struct xfs_da_args *args); +extern int xfs_dir2_leaf_search_hash(struct xfs_da_args *args, + struct xfs_dabuf *lbp); +extern int xfs_dir2_leaf_trim_data(struct xfs_da_args *args, + struct xfs_dabuf *lbp, xfs_dir2_db_t db); +extern struct xfs_dir2_leaf_entry * +xfs_dir2_leaf_find_entry(struct xfs_dir2_leaf *leaf, int index, int compact, + int lowstale, int highstale, + int *lfloglow, int *lfloghigh); +extern int xfs_dir2_node_to_leaf(struct xfs_da_state *state); + +/* xfs_dir2_node.c */ +extern int xfs_dir2_leaf_to_node(struct xfs_da_args *args, + struct xfs_dabuf *lbp); +extern xfs_dahash_t xfs_dir2_leafn_lasthash(struct xfs_dabuf *bp, int *count); +extern int xfs_dir2_leafn_lookup_int(struct xfs_dabuf *bp, + struct xfs_da_args *args, int *indexp, + struct xfs_da_state *state); +extern int xfs_dir2_leafn_order(struct xfs_dabuf *leaf1_bp, + struct xfs_dabuf *leaf2_bp); +extern int xfs_dir2_leafn_split(struct xfs_da_state *state, + struct xfs_da_state_blk *oldblk, struct xfs_da_state_blk *newblk); +extern int xfs_dir2_leafn_toosmall(struct xfs_da_state *state, int *action); +extern void xfs_dir2_leafn_unbalance(struct xfs_da_state *state, + struct xfs_da_state_blk *drop_blk, + struct xfs_da_state_blk *save_blk); +extern int xfs_dir2_node_addname(struct xfs_da_args *args); +extern int xfs_dir2_node_lookup(struct xfs_da_args *args); +extern int xfs_dir2_node_removename(struct xfs_da_args *args); +extern int xfs_dir2_node_replace(struct xfs_da_args *args); +extern int xfs_dir2_node_trim_free(struct xfs_da_args *args, xfs_fileoff_t fo, + int *rvalp); + +/* xfs_dir2_sf.c */ +extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf_hdr *sfp); +extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, + struct xfs_dir2_sf_entry *sfep); +extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, + struct xfs_dir2_data_hdr *block, struct xfs_dir2_sf_hdr *sfhp); +extern int xfs_dir2_block_to_sf(struct xfs_da_args *args, struct xfs_dabuf *bp, + int size, xfs_dir2_sf_hdr_t *sfhp); +extern int xfs_dir2_sf_addname(struct xfs_da_args *args); +extern int xfs_dir2_sf_create(struct xfs_da_args *args, xfs_ino_t pino); +extern int xfs_dir2_sf_getdents(struct xfs_inode *dp, void *dirent, + xfs_off_t *offset, filldir_t filldir); +extern int xfs_dir2_sf_lookup(struct xfs_da_args *args); +extern int xfs_dir2_sf_removename(struct xfs_da_args *args); +extern int xfs_dir2_sf_replace(struct xfs_da_args *args); + +#endif /* __XFS_DIR2_PRIV_H__ */ Index: xfs/fs/xfs/xfs_dir2_sf.h =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_sf.h 2011-07-09 13:29:18.351585613 +0200 +++ /dev/null 1970-01-01 00:00:00.000000000 +0000 @@ -1,151 +0,0 @@ -/* - * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_DIR2_SF_H__ -#define __XFS_DIR2_SF_H__ - -/* - * Directory layout when stored internal to an inode. - * - * Small directories are packed as tightly as possible so as to fit into the - * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header - * followed by zero or more xfs_dir2_sf_entry structures. Due the different - * inode number storage size and the variable length name field in - * the xfs_dir2_sf_entry all these structure are variable length, and the - * accessors in this file should be used to iterate over them. - */ - -struct uio; -struct xfs_dabuf; -struct xfs_da_args; -struct xfs_dir2_data_hdr; -struct xfs_inode; -struct xfs_mount; -struct xfs_trans; - -/* - * Inode number stored as 8 8-bit values. - */ -typedef struct { __uint8_t i[8]; } xfs_dir2_ino8_t; - -/* - * Inode number stored as 4 8-bit values. - * Works a lot of the time, when all the inode numbers in a directory - * fit in 32 bits. - */ -typedef struct { __uint8_t i[4]; } xfs_dir2_ino4_t; - -typedef union { - xfs_dir2_ino8_t i8; - xfs_dir2_ino4_t i4; -} xfs_dir2_inou_t; -#define XFS_DIR2_MAX_SHORT_INUM ((xfs_ino_t)0xffffffffULL) - -/* - * Normalized offset (in a data block) of the entry, really xfs_dir2_data_off_t. - * Only need 16 bits, this is the byte offset into the single block form. - */ -typedef struct { __uint8_t i[2]; } __arch_pack xfs_dir2_sf_off_t; - -/* - * The parent directory has a dedicated field, and the self-pointer must - * be calculated on the fly. - * - * Entries are packed toward the top as tightly as possible, and thus may - * be misaligned. Care needs to be taken to access them through special - * helpers or copy them into aligned variables first. - */ -typedef struct xfs_dir2_sf_hdr { - __uint8_t count; /* count of entries */ - __uint8_t i8count; /* count of 8-byte inode #s */ - xfs_dir2_inou_t parent; /* parent dir inode number */ -} __arch_pack xfs_dir2_sf_hdr_t; - -typedef struct xfs_dir2_sf_entry { - __u8 namelen; /* actual name length */ - xfs_dir2_sf_off_t offset; /* saved offset */ - __u8 name[]; /* name, variable size */ - /* - * A xfs_dir2_ino8_t or xfs_dir2_ino4_t follows here, at a - * variable offset after the name. - */ -} __arch_pack xfs_dir2_sf_entry_t; - -static inline int xfs_dir2_sf_hdr_size(int i8count) -{ - return ((uint)sizeof(xfs_dir2_sf_hdr_t) - \ - ((i8count) == 0) * \ - ((uint)sizeof(xfs_dir2_ino8_t) - (uint)sizeof(xfs_dir2_ino4_t))); -} - -static inline xfs_dir2_data_aoff_t -xfs_dir2_sf_get_offset(xfs_dir2_sf_entry_t *sfep) -{ - return get_unaligned_be16(&sfep->offset.i); -} - -static inline void -xfs_dir2_sf_put_offset(xfs_dir2_sf_entry_t *sfep, xfs_dir2_data_aoff_t off) -{ - put_unaligned_be16(off, &sfep->offset.i); -} - -static inline int -xfs_dir2_sf_entsize(struct xfs_dir2_sf_hdr *hdr, int len) -{ - return sizeof(struct xfs_dir2_sf_entry) + /* namelen + offset */ - len + /* name */ - (hdr->i8count ? /* ino */ - sizeof(xfs_dir2_ino8_t) : - sizeof(xfs_dir2_ino4_t)); -} - -static inline struct xfs_dir2_sf_entry * -xfs_dir2_sf_firstentry(struct xfs_dir2_sf_hdr *hdr) -{ - return (struct xfs_dir2_sf_entry *) - ((char *)hdr + xfs_dir2_sf_hdr_size(hdr->i8count)); -} - -static inline struct xfs_dir2_sf_entry * -xfs_dir2_sf_nextentry(struct xfs_dir2_sf_hdr *hdr, - struct xfs_dir2_sf_entry *sfep) -{ - return (struct xfs_dir2_sf_entry *) - ((char *)sfep + xfs_dir2_sf_entsize(hdr, sfep->namelen)); -} - -/* - * Functions. - */ -extern xfs_ino_t xfs_dir2_sf_get_parent_ino(struct xfs_dir2_sf_hdr *sfp); -extern xfs_ino_t xfs_dir2_sfe_get_ino(struct xfs_dir2_sf_hdr *sfp, - struct xfs_dir2_sf_entry *sfep); -extern int xfs_dir2_block_sfsize(struct xfs_inode *dp, - struct xfs_dir2_data_hdr *block, - xfs_dir2_sf_hdr_t *sfhp); -extern int xfs_dir2_block_to_sf(struct xfs_da_args *args, struct xfs_dabuf *bp, - int size, xfs_dir2_sf_hdr_t *sfhp); -extern int xfs_dir2_sf_addname(struct xfs_da_args *args); -extern int xfs_dir2_sf_create(struct xfs_da_args *args, xfs_ino_t pino); -extern int xfs_dir2_sf_getdents(struct xfs_inode *dp, void *dirent, - xfs_off_t *offset, filldir_t filldir); -extern int xfs_dir2_sf_lookup(struct xfs_da_args *args); -extern int xfs_dir2_sf_removename(struct xfs_da_args *args); -extern int xfs_dir2_sf_replace(struct xfs_da_args *args); - -#endif /* __XFS_DIR2_SF_H__ */ From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 15:50:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AKoKkE153461 for ; Sun, 10 Jul 2011 15:50:21 -0500 X-ASG-Debug-ID: 1310331018-659800660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9036715EED4F for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id E2sZ4AiTugr8yZF7 for ; Sun, 10 Jul 2011 13:50:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg0xG-0002xO-IC for xfs@oss.sgi.com; Sun, 10 Jul 2011 20:50:18 +0000 Message-Id: <20110710205018.525481665@bombadil.infradead.org> User-Agent: quilt/0.48-1 Date: Sun, 10 Jul 2011 16:49:25 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 09/11] xfs: remove the dead QUOTADEBUG debug Subject: [PATCH 09/11] xfs: remove the dead QUOTADEBUG debug References: <20110710204916.856267100@bombadil.infradead.org> Content-Disposition: inline; filename=xfs-kill-QUOTADEBUG X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the dead hash table test rid which has been rotting away under QUOTADEBUG, including some code that was compiled for normal debug builds, but not actually called without QUOTADEBUG, and enable a few cheap debug checks that were hidden under QUOTADEBUG for normal debug builds. Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/quota/xfs_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_dquot.c 2011-07-09 09:16:00.999021718 +0200 +++ xfs/fs/xfs/quota/xfs_dquot.c 2011-07-09 09:34:20.332299394 +0200 @@ -220,7 +220,7 @@ xfs_qm_adjust_dqtimers( { ASSERT(d->d_id); -#ifdef QUOTADEBUG +#ifdef DEBUG if (d->d_blk_hardlimit) ASSERT(be64_to_cpu(d->d_blk_softlimit) <= be64_to_cpu(d->d_blk_hardlimit)); @@ -231,6 +231,7 @@ xfs_qm_adjust_dqtimers( ASSERT(be64_to_cpu(d->d_rtb_softlimit) <= be64_to_cpu(d->d_rtb_hardlimit)); #endif + if (!d->d_btimer) { if ((d->d_blk_softlimit && (be64_to_cpu(d->d_bcount) >= @@ -1423,45 +1424,6 @@ xfs_qm_dqpurge( } -#ifdef QUOTADEBUG -void -xfs_qm_dqprint(xfs_dquot_t *dqp) -{ - struct xfs_mount *mp = dqp->q_mount; - - xfs_debug(mp, "-----------KERNEL DQUOT----------------"); - xfs_debug(mp, "---- dquotID = %d", - (int)be32_to_cpu(dqp->q_core.d_id)); - xfs_debug(mp, "---- type = %s", DQFLAGTO_TYPESTR(dqp)); - xfs_debug(mp, "---- fs = 0x%p", dqp->q_mount); - xfs_debug(mp, "---- blkno = 0x%x", (int) dqp->q_blkno); - xfs_debug(mp, "---- boffset = 0x%x", (int) dqp->q_bufoffset); - xfs_debug(mp, "---- blkhlimit = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_blk_hardlimit), - (int)be64_to_cpu(dqp->q_core.d_blk_hardlimit)); - xfs_debug(mp, "---- blkslimit = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_blk_softlimit), - (int)be64_to_cpu(dqp->q_core.d_blk_softlimit)); - xfs_debug(mp, "---- inohlimit = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_ino_hardlimit), - (int)be64_to_cpu(dqp->q_core.d_ino_hardlimit)); - xfs_debug(mp, "---- inoslimit = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_ino_softlimit), - (int)be64_to_cpu(dqp->q_core.d_ino_softlimit)); - xfs_debug(mp, "---- bcount = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_bcount), - (int)be64_to_cpu(dqp->q_core.d_bcount)); - xfs_debug(mp, "---- icount = %Lu (0x%x)", - be64_to_cpu(dqp->q_core.d_icount), - (int)be64_to_cpu(dqp->q_core.d_icount)); - xfs_debug(mp, "---- btimer = %d", - (int)be32_to_cpu(dqp->q_core.d_btimer)); - xfs_debug(mp, "---- itimer = %d", - (int)be32_to_cpu(dqp->q_core.d_itimer)); - xfs_debug(mp, "---------------------------"); -} -#endif - /* * Give the buffer a little push if it is incore and * wait on the flush lock. Index: xfs/fs/xfs/quota/xfs_dquot.h =================================================================== --- xfs.orig/fs/xfs/quota/xfs_dquot.h 2011-07-01 09:55:06.090830194 +0200 +++ xfs/fs/xfs/quota/xfs_dquot.h 2011-07-09 09:34:20.332299394 +0200 @@ -116,12 +116,6 @@ static inline void xfs_dqfunlock(xfs_dqu (XFS_IS_UQUOTA_ON((d)->q_mount)) : \ (XFS_IS_OQUOTA_ON((d)->q_mount)))) -#ifdef QUOTADEBUG -extern void xfs_qm_dqprint(xfs_dquot_t *); -#else -#define xfs_qm_dqprint(a) -#endif - extern void xfs_qm_dqdestroy(xfs_dquot_t *); extern int xfs_qm_dqflush(xfs_dquot_t *, uint); extern int xfs_qm_dqpurge(xfs_dquot_t *); Index: xfs/fs/xfs/quota/xfs_qm.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm.c 2011-07-08 14:21:56.765799266 +0200 +++ xfs/fs/xfs/quota/xfs_qm.c 2011-07-09 09:34:20.335632727 +0200 @@ -67,32 +67,6 @@ static struct shrinker xfs_qm_shaker = { .seeks = DEFAULT_SEEKS, }; -#ifdef DEBUG -extern struct mutex qcheck_lock; -#endif - -#ifdef QUOTADEBUG -static void -xfs_qm_dquot_list_print( - struct xfs_mount *mp) -{ - xfs_dquot_t *dqp; - int i = 0; - - list_for_each_entry(dqp, &mp->m_quotainfo->qi_dqlist_lock, qi_mplist) { - xfs_debug(mp, " %d. \"%d (%s)\" " - "bcnt = %lld, icnt = %lld, refs = %d", - i++, be32_to_cpu(dqp->q_core.d_id), - DQFLAGTO_TYPESTR(dqp), - (long long)be64_to_cpu(dqp->q_core.d_bcount), - (long long)be64_to_cpu(dqp->q_core.d_icount), - dqp->q_nrefs); - } -} -#else -static void xfs_qm_dquot_list_print(struct xfs_mount *mp) { } -#endif - /* * Initialize the XQM structure. * Note that there is not one quota manager per file system. @@ -165,9 +139,6 @@ xfs_Gqm_init(void) atomic_set(&xqm->qm_totaldquots, 0); xqm->qm_dqfree_ratio = XFS_QM_DQFREE_RATIO; xqm->qm_nrefs = 0; -#ifdef DEBUG - mutex_init(&qcheck_lock); -#endif return xqm; out_free_udqhash: @@ -204,9 +175,6 @@ xfs_qm_destroy( mutex_lock(&xqm->qm_dqfrlist_lock); list_for_each_entry_safe(dqp, n, &xqm->qm_dqfrlist, q_freelist) { xfs_dqlock(dqp); -#ifdef QUOTADEBUG - xfs_debug(dqp->q_mount, "FREELIST destroy 0x%p", dqp); -#endif list_del_init(&dqp->q_freelist); xfs_Gqm->qm_dqfrlist_cnt--; xfs_dqunlock(dqp); @@ -214,9 +182,6 @@ xfs_qm_destroy( } mutex_unlock(&xqm->qm_dqfrlist_lock); mutex_destroy(&xqm->qm_dqfrlist_lock); -#ifdef DEBUG - mutex_destroy(&qcheck_lock); -#endif kmem_free(xqm); } @@ -409,11 +374,6 @@ xfs_qm_mount_quotas( xfs_warn(mp, "Failed to initialize disk quotas."); return; } - -#ifdef QUOTADEBUG - if (XFS_IS_QUOTA_ON(mp)) - xfs_qm_internalqcheck(mp); -#endif } /* @@ -866,8 +826,8 @@ xfs_qm_dqattach_locked( } done: -#ifdef QUOTADEBUG - if (! error) { +#ifdef DEBUG + if (!error) { if (XFS_IS_UQUOTA_ON(mp)) ASSERT(ip->i_udquot); if (XFS_IS_OQUOTA_ON(mp)) @@ -1733,8 +1693,6 @@ xfs_qm_quotacheck( mp->m_qflags &= ~(XFS_OQUOTA_CHKD | XFS_UQUOTA_CHKD); mp->m_qflags |= flags; - xfs_qm_dquot_list_print(mp); - error_return: if (error) { xfs_warn(mp, @@ -2096,9 +2054,6 @@ xfs_qm_write_sb_changes( xfs_trans_t *tp; int error; -#ifdef QUOTADEBUG - xfs_notice(mp, "Writing superblock quota changes"); -#endif tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE); if ((error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, Index: xfs/fs/xfs/quota/xfs_qm_syscalls.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm_syscalls.c 2011-07-09 09:16:00.999021718 +0200 +++ xfs/fs/xfs/quota/xfs_qm_syscalls.c 2011-07-09 09:34:20.338966060 +0200 @@ -622,7 +622,6 @@ xfs_qm_scall_setqlim( xfs_trans_log_dquot(tp, dqp); error = xfs_trans_commit(tp, 0); - xfs_qm_dqprint(dqp); xfs_qm_dqrele(dqp); out_unlock: @@ -657,7 +656,6 @@ xfs_qm_scall_getquota( xfs_qm_dqput(dqp); return XFS_ERROR(ENOENT); } - /* xfs_qm_dqprint(dqp); */ /* * Convert the disk dquot to the exportable format */ @@ -906,354 +904,3 @@ xfs_qm_dqrele_all_inodes( ASSERT(mp->m_quotainfo); xfs_inode_ag_iterator(mp, xfs_dqrele_inode, flags); } - -/*------------------------------------------------------------------------*/ -#ifdef DEBUG -/* - * This contains all the test functions for XFS disk quotas. - * Currently it does a quota accounting check. ie. it walks through - * all inodes in the file system, calculating the dquot accounting fields, - * and prints out any inconsistencies. - */ -xfs_dqhash_t *qmtest_udqtab; -xfs_dqhash_t *qmtest_gdqtab; -int qmtest_hashmask; -int qmtest_nfails; -struct mutex qcheck_lock; - -#define DQTEST_HASHVAL(mp, id) (((__psunsigned_t)(mp) + \ - (__psunsigned_t)(id)) & \ - (qmtest_hashmask - 1)) - -#define DQTEST_HASH(mp, id, type) ((type & XFS_DQ_USER) ? \ - (qmtest_udqtab + \ - DQTEST_HASHVAL(mp, id)) : \ - (qmtest_gdqtab + \ - DQTEST_HASHVAL(mp, id))) - -#define DQTEST_LIST_PRINT(l, NXT, title) \ -{ \ - xfs_dqtest_t *dqp; int i = 0;\ - xfs_debug(NULL, "%s (#%d)", title, (int) (l)->qh_nelems); \ - for (dqp = (xfs_dqtest_t *)(l)->qh_next; dqp != NULL; \ - dqp = (xfs_dqtest_t *)dqp->NXT) { \ - xfs_debug(dqp->q_mount, \ - " %d. \"%d (%s)\" bcnt = %d, icnt = %d", \ - ++i, dqp->d_id, DQFLAGTO_TYPESTR(dqp), \ - dqp->d_bcount, dqp->d_icount); } \ -} - -typedef struct dqtest { - uint dq_flags; /* various flags (XFS_DQ_*) */ - struct list_head q_hashlist; - xfs_dqhash_t *q_hash; /* the hashchain header */ - xfs_mount_t *q_mount; /* filesystem this relates to */ - xfs_dqid_t d_id; /* user id or group id */ - xfs_qcnt_t d_bcount; /* # disk blocks owned by the user */ - xfs_qcnt_t d_icount; /* # inodes owned by the user */ -} xfs_dqtest_t; - -STATIC void -xfs_qm_hashinsert(xfs_dqhash_t *h, xfs_dqtest_t *dqp) -{ - list_add(&dqp->q_hashlist, &h->qh_list); - h->qh_version++; - h->qh_nelems++; -} -STATIC void -xfs_qm_dqtest_print( - struct xfs_mount *mp, - struct dqtest *d) -{ - xfs_debug(mp, "-----------DQTEST DQUOT----------------"); - xfs_debug(mp, "---- dquot ID = %d", d->d_id); - xfs_debug(mp, "---- fs = 0x%p", d->q_mount); - xfs_debug(mp, "---- bcount = %Lu (0x%x)", - d->d_bcount, (int)d->d_bcount); - xfs_debug(mp, "---- icount = %Lu (0x%x)", - d->d_icount, (int)d->d_icount); - xfs_debug(mp, "---------------------------"); -} - -STATIC void -xfs_qm_dqtest_failed( - xfs_dqtest_t *d, - xfs_dquot_t *dqp, - char *reason, - xfs_qcnt_t a, - xfs_qcnt_t b, - int error) -{ - qmtest_nfails++; - if (error) - xfs_debug(dqp->q_mount, - "quotacheck failed id=%d, err=%d\nreason: %s", - d->d_id, error, reason); - else - xfs_debug(dqp->q_mount, - "quotacheck failed id=%d (%s) [%d != %d]", - d->d_id, reason, (int)a, (int)b); - xfs_qm_dqtest_print(dqp->q_mount, d); - if (dqp) - xfs_qm_dqprint(dqp); -} - -STATIC int -xfs_dqtest_cmp2( - xfs_dqtest_t *d, - xfs_dquot_t *dqp) -{ - int err = 0; - if (be64_to_cpu(dqp->q_core.d_icount) != d->d_icount) { - xfs_qm_dqtest_failed(d, dqp, "icount mismatch", - be64_to_cpu(dqp->q_core.d_icount), - d->d_icount, 0); - err++; - } - if (be64_to_cpu(dqp->q_core.d_bcount) != d->d_bcount) { - xfs_qm_dqtest_failed(d, dqp, "bcount mismatch", - be64_to_cpu(dqp->q_core.d_bcount), - d->d_bcount, 0); - err++; - } - if (dqp->q_core.d_blk_softlimit && - be64_to_cpu(dqp->q_core.d_bcount) >= - be64_to_cpu(dqp->q_core.d_blk_softlimit)) { - if (!dqp->q_core.d_btimer && dqp->q_core.d_id) { - xfs_debug(dqp->q_mount, - "%d [%s] BLK TIMER NOT STARTED", - d->d_id, DQFLAGTO_TYPESTR(d)); - err++; - } - } - if (dqp->q_core.d_ino_softlimit && - be64_to_cpu(dqp->q_core.d_icount) >= - be64_to_cpu(dqp->q_core.d_ino_softlimit)) { - if (!dqp->q_core.d_itimer && dqp->q_core.d_id) { - xfs_debug(dqp->q_mount, - "%d [%s] INO TIMER NOT STARTED", - d->d_id, DQFLAGTO_TYPESTR(d)); - err++; - } - } -#ifdef QUOTADEBUG - if (!err) { - xfs_debug(dqp->q_mount, "%d [%s] qchecked", - d->d_id, DQFLAGTO_TYPESTR(d)); - } -#endif - return (err); -} - -STATIC void -xfs_dqtest_cmp( - xfs_dqtest_t *d) -{ - xfs_dquot_t *dqp; - int error; - - /* xfs_qm_dqtest_print(d); */ - if ((error = xfs_qm_dqget(d->q_mount, NULL, d->d_id, d->dq_flags, 0, - &dqp))) { - xfs_qm_dqtest_failed(d, NULL, "dqget failed", 0, 0, error); - return; - } - xfs_dqtest_cmp2(d, dqp); - xfs_qm_dqput(dqp); -} - -STATIC int -xfs_qm_internalqcheck_dqget( - xfs_mount_t *mp, - xfs_dqid_t id, - uint type, - xfs_dqtest_t **O_dq) -{ - xfs_dqtest_t *d; - xfs_dqhash_t *h; - - h = DQTEST_HASH(mp, id, type); - list_for_each_entry(d, &h->qh_list, q_hashlist) { - if (d->d_id == id && mp == d->q_mount) { - *O_dq = d; - return (0); - } - } - d = kmem_zalloc(sizeof(xfs_dqtest_t), KM_SLEEP); - d->dq_flags = type; - d->d_id = id; - d->q_mount = mp; - d->q_hash = h; - INIT_LIST_HEAD(&d->q_hashlist); - xfs_qm_hashinsert(h, d); - *O_dq = d; - return (0); -} - -STATIC void -xfs_qm_internalqcheck_get_dquots( - xfs_mount_t *mp, - xfs_dqid_t uid, - xfs_dqid_t projid, - xfs_dqid_t gid, - xfs_dqtest_t **ud, - xfs_dqtest_t **gd) -{ - if (XFS_IS_UQUOTA_ON(mp)) - xfs_qm_internalqcheck_dqget(mp, uid, XFS_DQ_USER, ud); - if (XFS_IS_GQUOTA_ON(mp)) - xfs_qm_internalqcheck_dqget(mp, gid, XFS_DQ_GROUP, gd); - else if (XFS_IS_PQUOTA_ON(mp)) - xfs_qm_internalqcheck_dqget(mp, projid, XFS_DQ_PROJ, gd); -} - - -STATIC void -xfs_qm_internalqcheck_dqadjust( - xfs_inode_t *ip, - xfs_dqtest_t *d) -{ - d->d_icount++; - d->d_bcount += (xfs_qcnt_t)ip->i_d.di_nblocks; -} - -STATIC int -xfs_qm_internalqcheck_adjust( - xfs_mount_t *mp, /* mount point for filesystem */ - xfs_ino_t ino, /* inode number to get data for */ - void __user *buffer, /* not used */ - int ubsize, /* not used */ - int *ubused, /* not used */ - int *res) /* bulkstat result code */ -{ - xfs_inode_t *ip; - xfs_dqtest_t *ud, *gd; - uint lock_flags; - boolean_t ipreleased; - int error; - - ASSERT(XFS_IS_QUOTA_RUNNING(mp)); - - if (ino == mp->m_sb.sb_uquotino || ino == mp->m_sb.sb_gquotino) { - *res = BULKSTAT_RV_NOTHING; - xfs_debug(mp, "%s: ino=%llu, uqino=%llu, gqino=%llu\n", - __func__, (unsigned long long) ino, - (unsigned long long) mp->m_sb.sb_uquotino, - (unsigned long long) mp->m_sb.sb_gquotino); - return XFS_ERROR(EINVAL); - } - ipreleased = B_FALSE; - again: - lock_flags = XFS_ILOCK_SHARED; - if ((error = xfs_iget(mp, NULL, ino, 0, lock_flags, &ip))) { - *res = BULKSTAT_RV_NOTHING; - return (error); - } - - /* - * This inode can have blocks after eof which can get released - * when we send it to inactive. Since we don't check the dquot - * until the after all our calculations are done, we must get rid - * of those now. - */ - if (! ipreleased) { - xfs_iunlock(ip, lock_flags); - IRELE(ip); - ipreleased = B_TRUE; - goto again; - } - xfs_qm_internalqcheck_get_dquots(mp, - (xfs_dqid_t) ip->i_d.di_uid, - (xfs_dqid_t) xfs_get_projid(ip), - (xfs_dqid_t) ip->i_d.di_gid, - &ud, &gd); - if (XFS_IS_UQUOTA_ON(mp)) { - ASSERT(ud); - xfs_qm_internalqcheck_dqadjust(ip, ud); - } - if (XFS_IS_OQUOTA_ON(mp)) { - ASSERT(gd); - xfs_qm_internalqcheck_dqadjust(ip, gd); - } - xfs_iunlock(ip, lock_flags); - IRELE(ip); - *res = BULKSTAT_RV_DIDONE; - return (0); -} - - -/* PRIVATE, debugging */ -int -xfs_qm_internalqcheck( - xfs_mount_t *mp) -{ - xfs_ino_t lastino; - int done, count; - int i; - int error; - - lastino = 0; - qmtest_hashmask = 32; - count = 5; - done = 0; - qmtest_nfails = 0; - - if (! XFS_IS_QUOTA_ON(mp)) - return XFS_ERROR(ESRCH); - - xfs_log_force(mp, XFS_LOG_SYNC); - XFS_bflush(mp->m_ddev_targp); - xfs_log_force(mp, XFS_LOG_SYNC); - XFS_bflush(mp->m_ddev_targp); - - mutex_lock(&qcheck_lock); - /* There should be absolutely no quota activity while this - is going on. */ - qmtest_udqtab = kmem_zalloc(qmtest_hashmask * - sizeof(xfs_dqhash_t), KM_SLEEP); - qmtest_gdqtab = kmem_zalloc(qmtest_hashmask * - sizeof(xfs_dqhash_t), KM_SLEEP); - do { - /* - * Iterate thru all the inodes in the file system, - * adjusting the corresponding dquot counters - */ - error = xfs_bulkstat(mp, &lastino, &count, - xfs_qm_internalqcheck_adjust, - 0, NULL, &done); - if (error) { - xfs_debug(mp, "Bulkstat returned error 0x%x", error); - break; - } - } while (!done); - - xfs_debug(mp, "Checking results against system dquots"); - for (i = 0; i < qmtest_hashmask; i++) { - xfs_dqtest_t *d, *n; - xfs_dqhash_t *h; - - h = &qmtest_udqtab[i]; - list_for_each_entry_safe(d, n, &h->qh_list, q_hashlist) { - xfs_dqtest_cmp(d); - kmem_free(d); - } - h = &qmtest_gdqtab[i]; - list_for_each_entry_safe(d, n, &h->qh_list, q_hashlist) { - xfs_dqtest_cmp(d); - kmem_free(d); - } - } - - if (qmtest_nfails) { - xfs_debug(mp, "******** quotacheck failed ********"); - xfs_debug(mp, "failures = %d", qmtest_nfails); - } else { - xfs_debug(mp, "******** quotacheck successful! ********"); - } - kmem_free(qmtest_udqtab); - kmem_free(qmtest_gdqtab); - mutex_unlock(&qcheck_lock); - return (qmtest_nfails); -} - -#endif /* DEBUG */ Index: xfs/fs/xfs/quota/xfs_trans_dquot.c =================================================================== --- xfs.orig/fs/xfs/quota/xfs_trans_dquot.c 2011-07-09 09:16:01.002355051 +0200 +++ xfs/fs/xfs/quota/xfs_trans_dquot.c 2011-07-09 09:34:20.338966060 +0200 @@ -387,18 +387,18 @@ xfs_trans_apply_dquot_deltas( qtrx->qt_delbcnt_delta; totalrtbdelta = qtrx->qt_rtbcount_delta + qtrx->qt_delrtb_delta; -#ifdef QUOTADEBUG +#ifdef DEBUG if (totalbdelta < 0) ASSERT(be64_to_cpu(d->d_bcount) >= - (xfs_qcnt_t) -totalbdelta); + -totalbdelta); if (totalrtbdelta < 0) ASSERT(be64_to_cpu(d->d_rtbcount) >= - (xfs_qcnt_t) -totalrtbdelta); + -totalrtbdelta); if (qtrx->qt_icount_delta < 0) ASSERT(be64_to_cpu(d->d_icount) >= - (xfs_qcnt_t) -qtrx->qt_icount_delta); + -qtrx->qt_icount_delta); #endif if (totalbdelta) be64_add_cpu(&d->d_bcount, (xfs_qcnt_t)totalbdelta); @@ -642,11 +642,6 @@ xfs_trans_dqresv( ((XFS_IS_UQUOTA_ENFORCED(dqp->q_mount) && XFS_QM_ISUDQ(dqp)) || (XFS_IS_OQUOTA_ENFORCED(dqp->q_mount) && (XFS_QM_ISPDQ(dqp) || XFS_QM_ISGDQ(dqp))))) { -#ifdef QUOTADEBUG - xfs_debug(mp, - "BLK Res: nblks=%ld + resbcount=%Ld > hardlimit=%Ld?", - nblks, *resbcountp, hardlimit); -#endif if (nblks > 0) { /* * dquot is locked already. See if we'd go over the Index: xfs/fs/xfs/xfs.h =================================================================== --- xfs.orig/fs/xfs/xfs.h 2011-07-01 09:55:06.147496859 +0200 +++ xfs/fs/xfs/xfs.h 2011-07-09 09:34:20.342299393 +0200 @@ -22,7 +22,6 @@ #define STATIC #define DEBUG 1 #define XFS_BUF_LOCK_TRACKING 1 -/* #define QUOTADEBUG 1 */ #endif #include Index: xfs/fs/xfs/xfs_mount.c =================================================================== --- xfs.orig/fs/xfs/xfs_mount.c 2011-07-09 09:16:01.015688384 +0200 +++ xfs/fs/xfs/xfs_mount.c 2011-07-09 09:34:20.342299393 +0200 @@ -1089,10 +1089,6 @@ xfs_mount_reset_sbqflags( if (mp->m_flags & XFS_MOUNT_RDONLY) return 0; -#ifdef QUOTADEBUG - xfs_notice(mp, "Writing superblock quota changes"); -#endif - tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE); error = xfs_trans_reserve(tp, 0, mp->m_sb.sb_sectsize + 128, 0, 0, XFS_DEFAULT_LOG_COUNT); Index: xfs/fs/xfs/quota/xfs_qm.h =================================================================== --- xfs.orig/fs/xfs/quota/xfs_qm.h 2011-07-01 09:55:06.134163527 +0200 +++ xfs/fs/xfs/quota/xfs_qm.h 2011-07-09 09:34:20.342299393 +0200 @@ -163,10 +163,4 @@ extern int xfs_qm_scall_getqstat(xfs_mo extern int xfs_qm_scall_quotaon(xfs_mount_t *, uint); extern int xfs_qm_scall_quotaoff(xfs_mount_t *, uint); -#ifdef DEBUG -extern int xfs_qm_internalqcheck(xfs_mount_t *); -#else -#define xfs_qm_internalqcheck(mp) (0) -#endif - #endif /* __XFS_QM_H__ */ From BATV+379c1eddd92b7052d5a6+2877+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 10 16:01:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6AL1GGd154438 for ; Sun, 10 Jul 2011 16:01:16 -0500 X-ASG-Debug-ID: 1310331675-629a01450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EC65E15EEE04 for ; Sun, 10 Jul 2011 14:01:15 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id nLbQDL8bpMVDtjZ4 for ; Sun, 10 Jul 2011 14:01:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg17p-0004VS-Ge; Sun, 10 Jul 2011 21:01:13 +0000 Date: Sun, 10 Jul 2011 17:01:13 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Updated xfsprogs 2.6.38 merge Subject: Re: Updated xfsprogs 2.6.38 merge Message-ID: <20110710210113.GA14527@infradead.org> References: <20110705024855.GA561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705024855.GA561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310331675 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 12:48:55PM +1000, Dave Chinner wrote: > Folks, > > I pushed out an updated 2.6.38 kernel merge to xfsprogs patchset a > couple of days ago. I've been doing quite a bit of testing on it, > both 32 bit and 64 bit, with 512 byte, 1k and 4k block size > filesystems and I haven't come across any regressions. The patchset > can be found here: > > git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync > > It's pretty much unchanged from the last set of patches I sent, > except for one minor fix to the radix tree code for an off by one in > the path array size for item and tag deletes. > > I'm pretty much ready to commit this update so I can then move > forward with updating it to the 3.0 kernel code base as a smaller > incremental series. It's still missing the fix for the xfs_imap.h removal I pointed out last round: Index: xfsprogs-dev/include/Makefile =================================================================== --- xfsprogs-dev.orig/include/Makefile 2011-07-10 20:51:24.000000000 +0000 +++ xfsprogs-dev/include/Makefile 2011-07-10 20:51:31.000000000 +0000 @@ -27,7 +27,7 @@ QAHFILES = libxfs.h libxlog.h \ xfs_dir2.h xfs_dir2_block.h xfs_dir2_data.h xfs_dir2_leaf.h \ xfs_dir2_node.h xfs_dir2_sf.h xfs_dir_leaf.h xfs_dir_sf.h \ xfs_extfree_item.h xfs_ialloc.h xfs_ialloc_btree.h \ - xfs_imap.h xfs_inode.h xfs_inode_item.h xfs_inum.h \ + xfs_inode.h xfs_inode_item.h xfs_inum.h \ xfs_log.h xfs_log_priv.h xfs_log_recover.h xfs_metadump.h \ xfs_mount.h xfs_quota.h xfs_rtalloc.h xfs_sb.h xfs_trace.h \ xfs_trans.h xfs_trans_space.h xfs_types.h xfs_dfrag.h But even after that a simple mkfs crashed for me on 32-bit x86. Here is the gdb backtrace: Program received signal SIGSEGV, Segmentation fault. 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 82 return 1 & (((const __uint32_t *)node->tags[tag])[offset >> 5] >> (offset & 31)); (gdb) bt #0 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 #1 radix_tree_delete (root=0xffffda5c, index=0) at radix-tree.c:726 #2 0x08054ee7 in libxfs_umount (mp=0xffffd8f8) at init.c:822 #3 0x0805277c in main (argc=3, argv=0xffffdd94) at xfs_mkfs.c:2683 From david@fromorbit.com Sun Jul 10 19:01:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B01fRn161352 for ; Sun, 10 Jul 2011 19:01:42 -0500 X-ASG-Debug-ID: 1310342498-2c3000010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 486D417B09DD for ; Sun, 10 Jul 2011 17:01:39 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id RrpG6chC9zOMo9oI for ; Sun, 10 Jul 2011 17:01:39 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiMEALI5Gk55LCkBgWdsb2JhbABTpzwVAQEWJiWIer8kDoVNXwSjLQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 11 Jul 2011 09:31:37 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qg3wN-0001DG-RC; Mon, 11 Jul 2011 10:01:35 +1000 Date: Mon, 11 Jul 2011 10:01:35 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Updated xfsprogs 2.6.38 merge Subject: Re: Updated xfsprogs 2.6.38 merge Message-ID: <20110711000135.GA23038@dastard> References: <20110705024855.GA561@dastard> <20110710210113.GA14527@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110710210113.GA14527@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310342500 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68561 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 10, 2011 at 05:01:13PM -0400, Christoph Hellwig wrote: > On Tue, Jul 05, 2011 at 12:48:55PM +1000, Dave Chinner wrote: > > Folks, > > > > I pushed out an updated 2.6.38 kernel merge to xfsprogs patchset a > > couple of days ago. I've been doing quite a bit of testing on it, > > both 32 bit and 64 bit, with 512 byte, 1k and 4k block size > > filesystems and I haven't come across any regressions. The patchset > > can be found here: > > > > git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync > > > > It's pretty much unchanged from the last set of patches I sent, > > except for one minor fix to the radix tree code for an off by one in > > the path array size for item and tag deletes. > > > > I'm pretty much ready to commit this update so I can then move > > forward with updating it to the 3.0 kernel code base as a smaller > > incremental series. > > It's still missing the fix for the xfs_imap.h removal I pointed out last > round: > > Index: xfsprogs-dev/include/Makefile > =================================================================== > --- xfsprogs-dev.orig/include/Makefile 2011-07-10 20:51:24.000000000 +0000 > +++ xfsprogs-dev/include/Makefile 2011-07-10 20:51:31.000000000 +0000 > @@ -27,7 +27,7 @@ QAHFILES = libxfs.h libxlog.h \ > xfs_dir2.h xfs_dir2_block.h xfs_dir2_data.h xfs_dir2_leaf.h \ > xfs_dir2_node.h xfs_dir2_sf.h xfs_dir_leaf.h xfs_dir_sf.h \ > xfs_extfree_item.h xfs_ialloc.h xfs_ialloc_btree.h \ > - xfs_imap.h xfs_inode.h xfs_inode_item.h xfs_inum.h \ > + xfs_inode.h xfs_inode_item.h xfs_inum.h \ > xfs_log.h xfs_log_priv.h xfs_log_recover.h xfs_metadump.h \ > xfs_mount.h xfs_quota.h xfs_rtalloc.h xfs_sb.h xfs_trace.h \ > xfs_trans.h xfs_trans_space.h xfs_types.h xfs_dfrag.h Strangely enough I don't see that failure. Fixed, anyway. > But even after that a simple mkfs crashed for me on 32-bit x86. Here is > the gdb backtrace: > > Program received signal SIGSEGV, Segmentation fault. > 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 > 82 return 1 & (((const __uint32_t *)node->tags[tag])[offset >> 5] >> (offset & 31)); > (gdb) bt > #0 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 > #1 radix_tree_delete (root=0xffffda5c, index=0) at radix-tree.c:726 > #2 0x08054ee7 in libxfs_umount (mp=0xffffd8f8) at init.c:822 > #3 0x0805277c in main (argc=3, argv=0xffffdd94) at xfs_mkfs.c:2683 What size block device? It's not failing here... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 10 19:20:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B0KJa0162214 for ; Sun, 10 Jul 2011 19:20:19 -0500 X-ASG-Debug-ID: 1310343616-701b006b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7BF61E9DB37 for ; Sun, 10 Jul 2011 17:20:17 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id Q54k2nz5iWDjizkx for ; Sun, 10 Jul 2011 17:20:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvUFAKBAGk55LCkBgWdsb2JhbABTmEqOchUBARYmJcgoDoVNXwSadog3 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 11 Jul 2011 09:50:15 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qg4EQ-0001Ey-Qx for xfs@oss.sgi.com; Mon, 11 Jul 2011 10:20:14 +1000 Date: Mon, 11 Jul 2011 10:20:14 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_repair stuck? Subject: Re: xfs_repair stuck? Message-ID: <20110711002014.GB23038@dastard> References: <20110710155437.GA19200@apartia.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110710155437.GA19200@apartia.fr> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310343618 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1530 1.0000 -1.0844 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.08 X-Barracuda-Spam-Status: No, SCORE=-1.08 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68562 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 10, 2011 at 05:54:37PM +0200, Louis-David Mitterrand wrote: > Hi, > > I've lauched xfs_repair on pretty damaged 300G partition and it has been > stuck for a couple hours at this stage: > > bad magic # 0xdbe565b2 in inobt block 19/6115 > expected level 1 got 34602 in inobt block 19/6115 > agi_count 24064, counted 0 in ag 19 > agi_freecount 1375, counted 0 in ag 19 > agi unlinked bucket 0 is 44810432 in ag 19 (inode=2594947264) > agi unlinked bucket 11 is 44722251 in ag 19 (inode=2594859083) > agi unlinked bucket 24 is 44811800 in ag 19 (inode=2594948632) > agi unlinked bucket 32 is 44722400 in ag 19 (inode=2594859232) > agi unlinked bucket 47 is 65583 in ag 19 (inode=2550202415) > agi unlinked bucket 48 is 44811056 in ag 19 (inode=2594947888) > agi unlinked bucket 57 is 45920825 in ag 19 (inode=2596057657) > > I tried interrupting and re-launching but it always stops here. man xfs_repair: -P Disable prefetching of inode and directory blocks. Use this option if you find xfs_repair gets stuck and stops proceeding. Interrupting a stuck xfs_repair is safe. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 10 19:37:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B0blbg163836 for ; Sun, 10 Jul 2011 19:37:47 -0500 X-ASG-Debug-ID: 1310344665-390300900000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 24A7217B0AB9 for ; Sun, 10 Jul 2011 17:37:46 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id nv0oA06dYT2Z9UsG for ; Sun, 10 Jul 2011 17:37:46 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiMEACJEGk55LCkBgWdsb2JhbABTpzwVAQEWJiXIHQ6FTV8EmnaINw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 11 Jul 2011 10:07:45 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qg4VL-0001GY-Tk; Mon, 11 Jul 2011 10:37:43 +1000 Date: Mon, 11 Jul 2011 10:37:43 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Subject: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Message-ID: <20110711003743.GC23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.485558926@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110710205017.485558926@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310344667 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0186 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68563 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 10, 2011 at 04:49:20PM -0400, Christoph Hellwig wrote: > xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor > the meat of those two functions into a new common helper. Hmmmm. I'm in the process of splitting xfs_dir2_grow_inode() into data space vs free space variants so I can play speculative preallocation tricks in the directory data space to reduce dataspace fragmentation for large directories. Combined with a rework of the readir readahead code, it significantly reduces IO count and seeks for readdir calls... I'll probably just rebase on top of this patch, though, because I did notice that the two functions were very similar to begin with. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 10 20:04:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B1429w164785 for ; Sun, 10 Jul 2011 20:04:02 -0500 X-ASG-Debug-ID: 1310346239-202802c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3B0717AC82F for ; Sun, 10 Jul 2011 18:03:59 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id Nfer2aAZE7bWgFi2 for ; Sun, 10 Jul 2011 18:03:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiMEAE5LGk55LCkBgWdsb2JhbABTpzwVAQEWJiXIFA6FTV8Eoy0 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 11 Jul 2011 10:33:59 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qg4uj-0001In-GX; Mon, 11 Jul 2011 11:03:57 +1000 Date: Mon, 11 Jul 2011 11:03:57 +1000 From: Dave Chinner To: hch@lst.de Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: [regression, 3.0-rc] xfs: freeze hang in 068 Subject: [regression, 3.0-rc] xfs: freeze hang in 068 Message-ID: <20110711010357.GD23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310346240 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68565 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Christoph, The recent changes to the active transaction accounting to close a race on freeze can hang the freeze process and hence the filesystem. SysRq : Show Blocked State task PC stack pid father xfs_io D ffff88005b7a0f00 5592 32539 32535 0x00020000 ffff88005bc9dd88 0000000000000082 ffff88005bc9dd28 0000000000000296 ffff88005bc9c010 ffff88005bff4fe0 0000000000010f80 ffff88005bc9dfd8 ffff88005bc9dfd8 0000000000010f80 ffff88005cd1dfc0 ffff88005bff4fe0 Call Trace: [] schedule_timeout+0x97/0xbb [] ? lock_timer_base+0x4d/0x4d [] schedule_timeout_uninterruptible+0x19/0x1b [] xfs_quiesce_attr+0x1d/0x7f [] xfs_fs_freeze+0x20/0x2e [] freeze_super+0x8b/0xca [] do_vfs_ioctl+0x1d0/0x45c [] ? do_raw_spin_unlock+0x8f/0x98 [] ? virt_to_head_page+0x9/0x2c [] compat_sys_ioctl+0x33c/0x368 [] ? do_sys_open+0xee/0x100 [] sysenter_dispatch+0x7/0x2e This is waiting for mp->m_active_trans to reach zero. fsstress D 0000000000000000 5376 32541 32540 0x00020000 ffff88005b68dd48 0000000000000086 ffff88005b68dce8 ffffffff812a97b7 ffff88005b68c010 ffff88005cf8d7d0 0000000000010f80 ffff88005b68dfd8 ffff88005b68dfd8 0000000000010f80 ffffffff81a0b020 ffff88005cf8d7d0 Call Trace: [] ? do_raw_spin_unlock+0x8f/0x98 [] ? prepare_to_wait+0x71/0x7c [] xfs_file_aio_write+0x10a/0x245 [] ? wake_up_bit+0x25/0x25 [] do_sync_write+0xc6/0x103 [] ? handle_mm_fault+0xff/0x111 [] vfs_write+0xa9/0x105 [] ? vfs_llseek+0x2e/0x30 [] sys_write+0x45/0x6c [] sysenter_dispatch+0x7/0x2e This is waiting for the filesystem to unfreeze. fsstress D 0000000000000000 5040 32542 32540 0x00020000 ffff88005b62fc78 0000000000000082 ffff88005b62fc18 ffffffff812a97b7 ffff88005b62e010 ffff88005be9c000 0000000000010f80 ffff88005b62ffd8 ffff88005b62ffd8 0000000000010f80 ffff88005cf8efa0 ffff88005be9c000 Call Trace: [] ? do_raw_spin_unlock+0x8f/0x98 [] ? prepare_to_wait+0x71/0x7c [] _xfs_trans_alloc+0x89/0xee [] ? wake_up_bit+0x25/0x25 [] xfs_trans_alloc+0x13/0x15 [] xfs_change_file_space+0x1f9/0x2f0 [] ? mntput+0x21/0x23 [] ? path_put+0x1d/0x21 [] xfs_ioc_space+0xc2/0xd3 [] xfs_file_compat_ioctl+0x2e1/0x49b [] ? mntput_no_expire+0x50/0x141 [] ? mntput+0x21/0x23 [] ? vfs_fstat+0x3b/0x45 [] compat_sys_ioctl+0x1a1/0x368 [] sysenter_dispatch+0x7/0x2e This has an active transaction reference (i.e. keeping mp->m_active_trans > 0) and is waiting for the freeze to complete. Basically the problem is this: thread 1 freeze SB_FREEZE_WRITE sync_filesystem() SB_FREEZE_TRANS ->freeze xfs_trans_alloc atomic_inc(mp->m_active_trans) wait on (SB_FREEZE_TRANS) xfs_quiese_attr() while (mp->m_active_trans > 0) delay(1); So effective we cannot sleep waiting for SB_FREEZE_TRANS to go away while holding an active transaction reference because the freeze process does not set and check SB_FREEZE_TRANS/mp->m_active_trans atomically. I haven't put any thought into how to solve this problem yet, so I'd suggest that at this late stage we need to revert 315fdfa (xfs: fix filesystsem freeze race in xfs_trans_alloc) because the race it fixes is far less critical (i.e. doesn't hang the filesystem) and harder to hit than the regression introduced here. I've reproduced this a coupe lof times now on a 1p/1.5GB x86_64 kernel/i686 userspace VM. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sgi-linux-xfs@lo.gmane.org Sun Jul 10 23:03:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B43D4N172460 for ; Sun, 10 Jul 2011 23:03:17 -0500 X-ASG-Debug-ID: 1310356992-637400740000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4605517AA7F0 for ; Sun, 10 Jul 2011 21:03:12 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id 3qwZQNtfCFSuuHn0 for ; Sun, 10 Jul 2011 21:03:12 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1Qg7iA-00067v-OV for linux-xfs@oss.sgi.com; Mon, 11 Jul 2011 06:03:11 +0200 Received: from c-71-194-192-160.hsd1.il.comcast.net ([71.194.192.160]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 11 Jul 2011 06:03:10 +0200 Received: from brianmduncan by c-71-194-192-160.hsd1.il.comcast.net with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Mon, 11 Jul 2011 06:03:10 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Brian Duncan X-ASG-Orig-Subj: Re: xfssyncd and disk spin down Subject: Re: xfssyncd and disk spin down Date: Mon, 11 Jul 2011 04:02:59 +0000 (UTC) Lines: 14 Message-ID: References: <20101227140750.GB24828@dastard> <20101227171939.GA7759@pandora.simplex.ro> <20101231001323.GD15179@dastard> <20110120100143.GA2007@peter.simplex.ro> <20110120234310.GV16267@dastard> <20110210204254.GA10451@peter.simplex.ro> <20110210221851.GG2559@dastard> <4DE5064D.1010203@dermichi.com> <20110601233702.GJ561@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: sea.gmane.org User-Agent: Loom/3.14 (http://gmane.org/) X-Loom-IP: 71.194.192.160 (Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.18) Gecko/20110614 Firefox/3.6.18) X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1310356993 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks Dave for the confirmation that this was patched. Can anyone confirm that this patch is working within 2.6.39? The post above Dave's last says the bug is still present in 2.6.39 from their own testing.. but I see in the changelog for 2.6.39 that Dave's patch/commit ID is listed as being part of that Kernel update. http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39 Thanks From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 00:24:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B5OCIe178317 for ; Mon, 11 Jul 2011 00:24:14 -0500 X-ASG-Debug-ID: 1310361848-1a9900e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C07315D6DC for ; Sun, 10 Jul 2011 22:24:08 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id i3laVFZMapadAPQf for ; Sun, 10 Jul 2011 22:24:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg8yU-0003ZH-Ff; Mon, 11 Jul 2011 05:24:06 +0000 Date: Mon, 11 Jul 2011 01:24:06 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Subject: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Message-ID: <20110711052406.GA13266@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.485558926@bombadil.infradead.org> <20110711003743.GC23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711003743.GC23038@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310361848 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68583 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 10:37:43AM +1000, Dave Chinner wrote: > On Sun, Jul 10, 2011 at 04:49:20PM -0400, Christoph Hellwig wrote: > > xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor > > the meat of those two functions into a new common helper. > > Hmmmm. I'm in the process of splitting xfs_dir2_grow_inode() into > data space vs free space variants so I can play speculative > preallocation tricks in the directory data space to reduce dataspace > fragmentation for large directories. Combined with a rework of the > readir readahead code, it significantly reduces IO count and seeks > for readdir calls... > > I'll probably just rebase on top of this patch, though, because I did > notice that the two functions were very similar to begin with. ;) Are you two variants still sharing the core code? If yes rebasing sounds like the better idea. If the two dir2 variants are different enough from the da variant I'm fine with postponing this one for now. From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 00:27:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B5RkeY178484 for ; Mon, 11 Jul 2011 00:27:46 -0500 X-ASG-Debug-ID: 1310362064-729b01960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7B8E317B1A03 for ; Sun, 10 Jul 2011 22:27:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id dXeLDTxNgljcFWLo for ; Sun, 10 Jul 2011 22:27:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qg920-0004P8-DJ; Mon, 11 Jul 2011 05:27:44 +0000 Date: Mon, 11 Jul 2011 01:27:44 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Updated xfsprogs 2.6.38 merge Subject: Re: Updated xfsprogs 2.6.38 merge Message-ID: <20110711052744.GB13266@infradead.org> References: <20110705024855.GA561@dastard> <20110710210113.GA14527@infradead.org> <20110711000135.GA23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711000135.GA23038@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310362065 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0421 1.0000 -1.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.65 X-Barracuda-Spam-Status: No, SCORE=-1.65 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68583 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 10:01:35AM +1000, Dave Chinner wrote: > > But even after that a simple mkfs crashed for me on 32-bit x86. Here is > > the gdb backtrace: > > > > Program received signal SIGSEGV, Segmentation fault. > > 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 > > 82 return 1 & (((const __uint32_t *)node->tags[tag])[offset >> 5] >> (offset & 31)); > > (gdb) bt > > #0 0x0805736b in tag_get (root=0xffffda5c, index=0) at radix-tree.c:82 > > #1 radix_tree_delete (root=0xffffda5c, index=0) at radix-tree.c:726 > > #2 0x08054ee7 in libxfs_umount (mp=0xffffd8f8) at init.c:822 > > #3 0x0805277c in main (argc=3, argv=0xffffdd94) at xfs_mkfs.c:2683 > > What size block device? It's not failing here... That was on a 40GB one, but I can also reproduce it on a 10GB one. From david@fromorbit.com Mon Jul 11 01:15:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_14 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B6F5Jw181264 for ; Mon, 11 Jul 2011 01:15:05 -0500 X-ASG-Debug-ID: 1310364901-29e001b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5349A15EF665 for ; Sun, 10 Jul 2011 23:15:01 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id deGjiVC68UgatdAv for ; Sun, 10 Jul 2011 23:15:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUDAJeTGk55LCkBgWdsb2JhbABThESieRUBARYmJbcDkCUOgR2EADBfBKMt Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2011 15:45:00 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qg9li-0001jG-HV; Mon, 11 Jul 2011 16:14:58 +1000 Date: Mon, 11 Jul 2011 16:14:58 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/4] xfstests: fsx fallocate support is b0rked Subject: Re: [PATCH 2/4] xfstests: fsx fallocate support is b0rked Message-ID: <20110711061458.GF23038@dastard> References: <1310086426-30605-1-git-send-email-david@fromorbit.com> <1310086426-30605-3-git-send-email-david@fromorbit.com> <1310151531.3024.37.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1310151531.3024.37.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310364904 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68585 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 08, 2011 at 01:58:51PM -0500, Alex Elder wrote: > On Fri, 2011-07-08 at 10:53 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > The recent fallocate/fpunch additions to fsx have not actually be > > executing fallocate/fpunch operations. The logic to select what > > operation to run is broken in such a way that fsx has been executing > > mapped writes and truncates instead of fallocate and fpunch > > operations. > > > > Remove all the (b0rken) smarty-pants selection logic from the test() > > function. Replace it with a clearly defined set of operations for > > each mode and use understandable fallback logic when various > > operation types have been disabled. Then use a simple switch > > statement to execute each of the different operations, removing the > > tortured nesting of if/else statements that only serve to obfuscate > > the code. > > > > As a result, fsx uses fallocate/fpunch appropriately during > > operations and uses/disableÑ• the operations as defined on the > > command line correctly. > > > > Signed-off-by: Dave Chinner > > I started trying to understand the logic of the original in order > to make sure your new version preserved the logic. But then I > concluded it was just plain broken, and understood exactly the > point of this change... > > So I just looked at your new code. I have a few minor things > but it otherwise looks good to me. The way "closeopen" is > (still) computed is a bit funked up (and possibly just wrong), > but I'm not going to complain--you've done a lot of good here. > > Reviewed-by: Alex Elder > > > --- > > ltp/fsx.c | 192 +++++++++++++++++++++++++++++++++++++++---------------------- > > 1 files changed, 123 insertions(+), 69 deletions(-) > > > > diff --git a/ltp/fsx.c b/ltp/fsx.c > > index a37e223..41d7c20 100644 > > --- a/ltp/fsx.c > > +++ b/ltp/fsx.c > > @@ -58,18 +58,47 @@ int logptr = 0; /* current position in log */ > > int logcount = 0; /* total ops */ > > > > /* > > - * Define operations > > + * The operation matrix is complex due to conditional execution of different > > + * features. Hence when we come to deciding what operation to run, we need to > > + * be careful in how we select the different operations. The active operations > > + * are mapped to numbers as follows: > > + * > > + * lite !lite > > + * READ: 0 0 > > + * WRITE: 1 1 > > + * MAPREAD: 2 2 > > + * MAPWRITE: 3 3 > > + * TRUNCATE: - 4 > > + * FALLOCATE: - 5 > > + * PUNCH HOLE: - 6 > > + * > > + * When mapped read/writes are disabled, they are simply converted to normal > > + * reads and writes. When fallocate/fpunch calls are disabled, they are > > + * converted to OP_SKIPPED. Hence OP_SKIPPED needs to have a number higher than > > The "hence" is not obvious. The reason it needs to have a > higher number is that the operation is selected at random > among the number of operations available (either in "lite" > or in "full" mode). I'll reword it so it is obvious ;) > > > + * the operation selction matrix, as does the OP_CLOSEOPEN which is an > > selection > > > + * operation modifier rather than an operation in itself. > > + * > > + * Because of the "lite" version, we also need to have different "maximum > > + * operation" defines to allow the ops to be selected correctly based on the > > + * mode being run. > > */ > > > > -#define OP_READ 1 > > -#define OP_WRITE 2 > > -#define OP_TRUNCATE 3 > > -#define OP_CLOSEOPEN 4 > > -#define OP_MAPREAD 5 > > -#define OP_MAPWRITE 6 > > -#define OP_SKIPPED 7 > > -#define OP_FALLOCATE 8 > > -#define OP_PUNCH_HOLE 9 > > +/* common operations */ > > +#define OP_READ 0 > > +#define OP_WRITE 1 > > +#define OP_MAPREAD 2 > > +#define OP_MAPWRITE 3 > > +#define OP_MAX_LITE 4 > > To me, "max" suggests that it is an included value > in the range. So I'd rather see this be "OP_NUM_LITE" > or (my preference) "OP_LITE_COUNT". Similarly for > OP_MAX_FULL below. Ok, makes sense. > > > + > > +/* !lite operations */ > > +#define OP_TRUNCATE 4 > > +#define OP_FALLOCATE 5 > > +#define OP_PUNCH_HOLE 6 > > +#define OP_MAX_FULL 7 > > + > > +/* operation modifiers */ > > +#define OP_CLOSEOPEN 100 > > +#define OP_SKIPPED 101 > > > > #undef PAGE_SIZE > > #define PAGE_SIZE getpagesize() > > @@ -955,6 +984,15 @@ docloseopen(void) > > } > > } > > > > +#define TRIM_OFF_LEN(off, len, size) \ > > +do { \ > > + if (file_size) \ > > + offset %= size; \ > > + else \ > > + offset = 0; \ > > + if (offset + len > size) \ > > + len = size - offset; \ > > +} while (0) > > This macro is a very good idea. However it differs > from the original behavior when used for OP_WRITE, > OP_MAPWRITE, OP_FALLOCATE, and OP_PUNCH_HOLE in > that if file_size is zero, offset will be set to > zero. It seems like that behavior difference is > significant, but I don't think it has a practical > effect on the results of the test. I've left the > code in question below for reference. True, it is a slight change in behaviour for OP_WRITE and OP_FALLOCATE. I'll modify the macro to do the same thing. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 04:51:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6B9prgD206828 for ; Mon, 11 Jul 2011 04:51:54 -0500 X-ASG-Debug-ID: 1310377912-0a3600210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DCFF7167D1E1 for ; Mon, 11 Jul 2011 02:51:52 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 9zfICtccWvbmHq7u for ; Mon, 11 Jul 2011 02:51:52 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgD9X-00059y-Ui; Mon, 11 Jul 2011 09:51:47 +0000 Date: Mon, 11 Jul 2011 05:51:47 -0400 From: Christoph Hellwig To: Dave Chinner Cc: hch@lst.de, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [regression, 3.0-rc] xfs: freeze hang in 068 Subject: Re: [regression, 3.0-rc] xfs: freeze hang in 068 Message-ID: <20110711095147.GA19354@infradead.org> References: <20110711010357.GD23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711010357.GD23038@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310377912 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68599 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 11:03:57AM +1000, Dave Chinner wrote: > Christoph, > > The recent changes to the active transaction accounting to close a > race on freeze can hang the freeze process and hence the filesystem. That commit isn't in 3.0-rc, but I guess it's just the subject line that is incorrect. > So effective we cannot sleep waiting for SB_FREEZE_TRANS to go away > while holding an active transaction reference because the freeze > process does not set and check SB_FREEZE_TRANS/mp->m_active_trans > atomically. > > I haven't put any thought into how to solve this problem yet, so I'd > suggest that at this late stage we need to revert 315fdfa (xfs: fix > filesystsem freeze race in xfs_trans_alloc) because the race it > fixes is far less critical (i.e. doesn't hang the filesystem) and > harder to hit than the regression introduced here. Yes, I guess we need to revert it for now. From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 05:26:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BAQHnX210033 for ; Mon, 11 Jul 2011 05:26:17 -0500 X-ASG-Debug-ID: 1310379976-3efe03560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C34A61D82B58 for ; Mon, 11 Jul 2011 03:26:16 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id MHNZ2Q0NE30HpZk0 for ; Mon, 11 Jul 2011 03:26:16 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgDgn-0003V1-65; Mon, 11 Jul 2011 10:26:09 +0000 Date: Mon, 11 Jul 2011 06:26:09 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Mel Gorman , Christoph Hellwig , Johannes Weiner , Wu Fengguang , xfs@oss.sgi.com, jack@suse.cz, linux-mm@kvack.org X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110711102609.GA5953@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701145935.GB29530@suse.de> <20110702024219.GT561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110702024219.GT561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310379976 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68602 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Jul 02, 2011 at 12:42:19PM +1000, Dave Chinner wrote: > To tell the truth, I don't think anyone really cares how ext3 > performs these days. XFS seems to be the filesystem that brings out > all the bad behaviour in the mm subsystem.... Maybe that's because XFS actually plays by the rules? btrfs simply rejects all attempts from kswapd to write back, as it has the following check: if (current->flags & PF_MEMALLOC) { redirty_page_for_writepage(wbc, page); unlock_page(page); return 0; } while XFS tries to play nice and allow writeback from kswapd: if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) goto redirty; ext4 can't perform delalloc conversions from writepage: if (walk_page_buffers(NULL, page_bufs, 0, len, NULL, ext4_bh_delay_or_unwritten)) { /* * We don't want to do block allocation, so redirty * the page and return. We may reach here when we do * a journal commit via journal_submit_inode_data_buffers. * We can also reach here via shrink_page_list */ goto redirty_pages; } so any normal worklaods that don't involve overwrites will every get any writeback from kswapd. This should tell us that the VM can live just fine without doing writeback from kswapd, as otherwise all systems using btrfs or ext4 would have completely fallen over. It also suggested we should have standardized helpers in the VFS to work around the braindead VM behaviour. From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 06:10:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BBAksp217520 for ; Mon, 11 Jul 2011 06:10:46 -0500 X-ASG-Debug-ID: 1310382645-09ef01b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9CB75527DA4 for ; Mon, 11 Jul 2011 04:10:45 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id TohOV8WcA0E8Ef36 for ; Mon, 11 Jul 2011 04:10:45 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgENr-0002OH-V3; Mon, 11 Jul 2011 11:10:40 +0000 Date: Mon, 11 Jul 2011 07:10:39 -0400 From: Christoph Hellwig To: Mel Gorman Cc: Dave Chinner , Wu Fengguang , Christoph Hellwig , Johannes Weiner , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110711111039.GA3139@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110705143409.GB15285@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705143409.GB15285@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310382645 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68604 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 03:34:10PM +0100, Mel Gorman wrote: > > However, what I'm questioning is whether we should even care what > > page memory reclaim wants to write - it seems to make fundamentally > > bad decisions from an IO persepctive. > > > > It sucks from an IO perspective but from the perspective of the VM that > needs memory to be free in a particular zone or node, it's a reasonable > request. It might appear reasonable, but it's not. What the VM wants underneath is generally (1): - free N pages in zone Z and it then goes own to free the pages one one by one though kswapd, which leads to freeing those N pages, but unless they already were clean it will take very long to get there and bog down the whole system. So we need a better way to actually perform that underlying request. Dave's suggestion of keeping different lists for clean vs dirty pages in the VM and preferably reclaiming for the clean ones when having zone pressure is one first step. The second one will be to tell the writeback threads to preferably reclaim from a zone. I'm actually not sure how do that yet, as we could have memory from different zones on a single inode. Taking an inode that has memory from the right zone and the writing that out will probably work fine for different zones in a 64-bit NUMA systems where zones more or less equal nodes. It probably won't work very well if we need to free up memory in the various low memory zones, as those will be spread over random inodes. > It doesnt' check how many pages are under writeback. Direct reclaim > will check if the block device is congested but that is about > it. Otherwise the expectation was the elevator would handle the > merging of requests into a sensible patter. It can't. The elevator has a relatively small window it can operate on, and can never fix up a bad large scale writeback pattern. > Also, while filesystem > pages are getting cleaned by flushs, that does not cover anonymous > pages being written to swap. At least for now we will have to keep kswapd writeback for swap. It is just as inefficient a on a filesystem, but given that people don't rely on swap performance we can probably live with it. Note that we can't simply use background flushing for swap, as that would mean we'd need backing space allocated for all main memory, which isn't very practical with todays memory sized. The whole concept of demand paging anonymous memory leads to pretty bad I/O patterns. If you're actually making heavy use of it the old-school unix full process paging would be a lot faster. (1) moulo things like compaction From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 09:00:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BDxx1Q226052 for ; Mon, 11 Jul 2011 09:00:00 -0500 X-ASG-Debug-ID: 1310392798-68c601e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4601A17B3107 for ; Mon, 11 Jul 2011 06:59:58 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id LyLKIFoSUDv2MaLC for ; Mon, 11 Jul 2011 06:59:58 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgH1h-0006Bo-Os; Mon, 11 Jul 2011 13:59:57 +0000 Date: Mon, 11 Jul 2011 09:59:57 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: arekm@maven.pl X-ASG-Orig-Subj: [PATCH] xfs: start periodic workers later Subject: [PATCH] xfs: start periodic workers later Message-ID: <20110711135957.GA23737@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310392799 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68616 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Start the periodic sync workers only after we have finished xfs_mountfs and thus fully set up the filesystem structures. Without this we can call into xfs_qm_sync before the quotainfo strucute is set up if the mount takes unusually long, and probably hit other incomplete states as well. Also clean up the xfs_fs_fill_super error path by using consistent label names, and removing an impossible to reach case. Reported-by: Arkadiusz Miskiewicz Signed-off-by: Christoph Hellwig Index: xfs/fs/xfs/linux-2.6/xfs_super.c =================================================================== --- xfs.orig/fs/xfs/linux-2.6/xfs_super.c 2011-07-11 12:02:56.762758869 +0200 +++ xfs/fs/xfs/linux-2.6/xfs_super.c 2011-07-11 12:09:20.817344934 +0200 @@ -1411,37 +1411,35 @@ xfs_fs_fill_super( sb->s_time_gran = 1; set_posix_acl_flag(sb); - error = xfs_syncd_init(mp); - if (error) - goto out_filestream_unmount; - xfs_inode_shrinker_register(mp); error = xfs_mountfs(mp); if (error) - goto out_syncd_stop; + goto out_filestream_unmount; + + error = xfs_syncd_init(mp); + if (error) + goto out_unmount; root = igrab(VFS_I(mp->m_rootip)); if (!root) { error = ENOENT; - goto fail_unmount; + goto out_syncd_stop; } if (is_bad_inode(root)) { error = EINVAL; - goto fail_vnrele; + goto out_syncd_stop; } sb->s_root = d_alloc_root(root); if (!sb->s_root) { error = ENOMEM; - goto fail_vnrele; + goto out_iput; } return 0; - out_syncd_stop: - xfs_inode_shrinker_unregister(mp); - xfs_syncd_stop(mp); out_filestream_unmount: + xfs_inode_shrinker_unregister(mp); xfs_filestream_unmount(mp); out_free_sb: xfs_freesb(mp); @@ -1455,17 +1453,12 @@ xfs_fs_fill_super( out: return -error; - fail_vnrele: - if (sb->s_root) { - dput(sb->s_root); - sb->s_root = NULL; - } else { - iput(root); - } - - fail_unmount: - xfs_inode_shrinker_unregister(mp); + out_iput: + iput(root); + out_syncd_stop: xfs_syncd_stop(mp); + out_unmount: + xfs_inode_shrinker_unregister(mp); /* * Blow away any referenced inode in the filestreams cache. From mw@dermichi.com Mon Jul 11 09:34:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BEYR25227639 for ; Mon, 11 Jul 2011 09:34:27 -0500 X-ASG-Debug-ID: 1310394865-5994012d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from firestarter.dermichi.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3A0B95D2D3 for ; Mon, 11 Jul 2011 07:34:25 -0700 (PDT) Received: from firestarter.dermichi.com (firestarter.dermichi.com [78.41.115.230]) by cuda.sgi.com with ESMTP id AQPaj13AVEZTxnIl for ; Mon, 11 Jul 2011 07:34:25 -0700 (PDT) Received: from dermichi-2-pt.tunnel.tserv23.zrh1.ipv6.he.net ([2001:470:25:4f4::2]) by firestarter.dermichi.com with esmtpsa (TLSv1:CAMELLIA256-SHA:256) (Exim 4.76) (envelope-from ) id 1QgHZ2-0006ov-Hk for xfs@oss.sgi.com; Mon, 11 Jul 2011 16:34:24 +0200 Message-ID: <4E1B09EF.4010308@dermichi.com> Date: Mon, 11 Jul 2011 16:34:23 +0200 From: Michael Weissenbacher User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfssyncd and disk spin down Subject: Re: xfssyncd and disk spin down References: <20101227140750.GB24828@dastard> <20101227171939.GA7759@pandora.simplex.ro> <20101231001323.GD15179@dastard> <20110120100143.GA2007@peter.simplex.ro> <20110120234310.GV16267@dastard> <20110210204254.GA10451@peter.simplex.ro> <20110210221851.GG2559@dastard> <4DE5064D.1010203@dermichi.com> <20110601233702.GJ561@dastard> In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: firestarter.dermichi.com[78.41.115.230] X-Barracuda-Start-Time: 1310394866 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4858 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68618 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Brian! > Thanks Dave for the confirmation that this was patched. > > Can anyone confirm that this patch is working within 2.6.39? > > The post above Dave's last says the bug is still present in 2.6.39 from their > own testing.. but I see in the changelog for 2.6.39 that Dave's patch/commit ID > is listed as being part of that Kernel update. > > http://www.kernel.org/pub/linux/kernel/v2.6/ChangeLog-2.6.39 > I can confirm that it works without problems on 2.6.39 - you can dismiss my previous post. hth, Michael From jweiner@redhat.com Mon Jul 11 12:21:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BHLduh235218 for ; Mon, 11 Jul 2011 12:21:40 -0500 X-ASG-Debug-ID: 1310404898-7ec701b80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CA16917B5704 for ; Mon, 11 Jul 2011 10:21:38 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 54UcHRVUPQ2UTHP0 for ; Mon, 11 Jul 2011 10:21:38 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6BHKrnQ000974 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 11 Jul 2011 13:20:53 -0400 Received: from dexter.home.cmpxchg.org (ovpn-113-93.phx2.redhat.com [10.3.113.93]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6BHKpOd023284 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Mon, 11 Jul 2011 13:20:52 -0400 Date: Mon, 11 Jul 2011 19:20:50 +0200 From: Johannes Weiner To: Dave Chinner Cc: Wu Fengguang , Christoph Hellwig , Mel Gorman , Rik van Riel , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110711172050.GA2849@redhat.com> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706151229.GA1998@redhat.com> <20110708095456.GI1026@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20110708095456.GI1026@dastard> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1310404898 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 08, 2011 at 07:54:56PM +1000, Dave Chinner wrote: > On Wed, Jul 06, 2011 at 05:12:29PM +0200, Johannes Weiner wrote: > > On Mon, Jul 04, 2011 at 01:25:34PM +1000, Dave Chinner wrote: > > > On Fri, Jul 01, 2011 at 11:41:36PM +0800, Wu Fengguang wrote: > > > We have to remember that memory reclaim is doing LRU reclaim and the > > > flusher threads are doing "oldest first" writeback. IOWs, both are trying > > > to operate in the same direction (oldest to youngest) for the same > > > purpose. The fundamental problem that occurs when memory reclaim > > > starts writing pages back from the LRU is this: > > > > > > - memory reclaim has run ahead of IO writeback - > > > > > > The LRU usually looks like this: > > > > > > oldest youngest > > > +---------------+---------------+--------------+ > > > clean writeback dirty > > > ^ ^ > > > | | > > > | Where flusher will next work from > > > | Where kswapd is working from > > > | > > > IO submitted by flusher, waiting on completion > > > > > > > > > If memory reclaim is hitting dirty pages on the LRU, it means it has > > > got ahead of writeback without being throttled - it's passed over > > > all the pages currently under writeback and is trying to write back > > > pages that are *newer* than what writeback is working on. IOWs, it > > > starts trying to do the job of the flusher threads, and it does that > > > very badly. > > > > > > The $100 question is ∗why is it getting ahead of writeback*? > > > > Unless you have a purely sequential writer, the LRU order is - at > > least in theory - diverging away from the writeback order. > > Which is the root cause of the IO collapse that writeback from the > LRU causes, yes? > > > According to the reasoning behind generational garbage collection, > > they should in fact be inverse to each other. The oldest pages still > > in use are the most likely to be still needed in the future. > > > > In practice we only make a generational distinction between used-once > > and used-many, which manifests in the inactive and the active list. > > But still, when reclaim starts off with a localized writer, the oldest > > pages are likely to be at the end of the active list. > > Yet the file pages on the active list are unlikely to be dirty - > overwrite-in-place cache hot workloads are pretty scarce in my > experience. hence writeback of dirty pages from the active LRU is > unlikely to be a problem. Just to clarify, I looked at this too much from the reclaim POV, where use-once applies to full pages, not bytes. Even if you do not overwrite the same bytes over and over again, issuing two subsequent write()s that end up against the same page will have it activated. Are your workloads writing in perfectly page-aligned chunks? This effect may build up slowly, but every page that is written from the active list makes room for a dirty page on the inactive list wrt the dirty limit. I.e. without the active pages, you have 10-20% dirty pages at the head of the inactive list (default dirty ratio), or a 80-90% clean tail, and for every page cleaned, a new dirty page can appear at the inactive head. But taking the active list into account, some of these clean pages are taken away from the headstart the flusher has over the reclaimer, they sit on the active list. For every page cleaned, a new dirty page can appear at the inactive head, plus a few deactivated clean pages. Now, the active list is not scanned anymore until it is bigger than the inactive list, giving the flushers plenty of time to clean the pages on it and let them accumulate even while memory pressure is already occurring. For every page cleaned, a new dirty page can appear at the inactive head, plus a LOT of deactivated clean pages. So when memory needs to be reclaimed, the LRU lists in those three scenarios look like this: inactive-only: [CCCCCCCCDD][] active-small: [CCCCCCDD][CC] active-huge: [CCCDD][CCCCC] where the third scenario is the most likely for the reclaimer to run into dirty pages. I CC'd Rik for reclaim-wizardry. But if I am not completly off with this there is a chance that the change that let the active list grow unscanned may actually have contributed to this single-page writing problem becoming worse? commit 56e49d218890f49b0057710a4b6fef31f5ffbfec Author: Rik van Riel Date: Tue Jun 16 15:32:28 2009 -0700 vmscan: evict use-once pages first When the file LRU lists are dominated by streaming IO pages, evict those pages first, before considering evicting other pages. This should be safe from deadlocks or performance problems because only three things can happen to an inactive file page: 1) referenced twice and promoted to the active list 2) evicted by the pageout code 3) under IO, after which it will get evicted or promoted The pages freed in this way can either be reused for streaming IO, or allocated for something else. If the pages are used for streaming IO, this pageout pattern continues. Otherwise, we will fall back to the normal pageout pattern. Signed-off-by: Rik van Riel Reported-by: Elladan Cc: KOSAKI Motohiro Cc: Peter Zijlstra Cc: Lee Schermerhorn Acked-by: Johannes Weiner Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds From BATV+94d2461b9b43b672e96e+2878+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 11 12:24:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BHOvrG235544 for ; Mon, 11 Jul 2011 12:24:58 -0500 X-ASG-Debug-ID: 1310405096-7e8a01cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE64717B5A3A for ; Mon, 11 Jul 2011 10:24:56 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id kF57UuGUjKGbS5S4 for ; Mon, 11 Jul 2011 10:24:56 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgKDs-0001kx-TB; Mon, 11 Jul 2011 17:24:44 +0000 Date: Mon, 11 Jul 2011 13:24:44 -0400 From: Christoph Hellwig To: Johannes Weiner Cc: Dave Chinner , Wu Fengguang , Christoph Hellwig , Mel Gorman , Rik van Riel , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Message-ID: <20110711172444.GA6657@infradead.org> References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706151229.GA1998@redhat.com> <20110708095456.GI1026@dastard> <20110711172050.GA2849@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711172050.GA2849@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310405096 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68630 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 07:20:50PM +0200, Johannes Weiner wrote: > > Yet the file pages on the active list are unlikely to be dirty - > > overwrite-in-place cache hot workloads are pretty scarce in my > > experience. hence writeback of dirty pages from the active LRU is > > unlikely to be a problem. > > Just to clarify, I looked at this too much from the reclaim POV, where > use-once applies to full pages, not bytes. > > Even if you do not overwrite the same bytes over and over again, > issuing two subsequent write()s that end up against the same page will > have it activated. > > Are your workloads writing in perfectly page-aligned chunks? Many workloads do, given that we already tell them our preferred I/O size through struct stat, which alway is the page size or larger. That won't help with workloads having to write in small chunksizes. The performance critical ones using small chunksizes usually use O_(D)SYNC, so pages will be clean after the write returned to userspace. From riel@redhat.com Mon Jul 11 14:09:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BJ9jOE240879 for ; Mon, 11 Jul 2011 14:09:45 -0500 X-ASG-Debug-ID: 1310411384-44e001360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 03974605B0 for ; Mon, 11 Jul 2011 12:09:44 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id bsbjvMCAxoJ6RLqS for ; Mon, 11 Jul 2011 12:09:44 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6BJ9TWk008714 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 11 Jul 2011 15:09:30 -0400 Received: from annuminas.surriel.com (ovpn-113-83.phx2.redhat.com [10.3.113.83]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6BJ9ONm027752 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO); Mon, 11 Jul 2011 15:09:27 -0400 Message-ID: <4E1B4A64.6040403@redhat.com> Date: Mon, 11 Jul 2011 15:09:24 -0400 From: Rik van Riel User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Lightning/1.0b3pre Thunderbird/3.1.10 MIME-Version: 1.0 To: Johannes Weiner CC: Dave Chinner , Wu Fengguang , Christoph Hellwig , Mel Gorman , "xfs@oss.sgi.com" , "linux-mm@kvack.org" X-ASG-Orig-Subj: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering Subject: Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering References: <20110629140109.003209430@bombadil.infradead.org> <20110629140336.950805096@bombadil.infradead.org> <20110701022248.GM561@dastard> <20110701041851.GN561@dastard> <20110701093305.GA28531@infradead.org> <20110701154136.GA17881@localhost> <20110704032534.GD1026@dastard> <20110706151229.GA1998@redhat.com> <20110708095456.GI1026@dastard> <20110711172050.GA2849@redhat.com> In-Reply-To: <20110711172050.GA2849@redhat.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1310411385 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/11/2011 01:20 PM, Johannes Weiner wrote: > I CC'd Rik for reclaim-wizardry. But if I am not completly off with > this there is a chance that the change that let the active list grow > unscanned may actually have contributed to this single-page writing > problem becoming worse? Yes, the patch probably contributed. However, the patch does help protect the working set in the page cache from streaming IO, so on balance I believe we need to keep this change. What it changes is that the size of the inactive file list can no longer grow unbounded, keeping it a little smaller than it could have grown in the past. > commit 56e49d218890f49b0057710a4b6fef31f5ffbfec > Author: Rik van Riel > Date: Tue Jun 16 15:32:28 2009 -0700 > > vmscan: evict use-once pages first > > When the file LRU lists are dominated by streaming IO pages, evict those > pages first, before considering evicting other pages. > > This should be safe from deadlocks or performance problems > because only three things can happen to an inactive file page: > > 1) referenced twice and promoted to the active list > 2) evicted by the pageout code > 3) under IO, after which it will get evicted or promoted > > The pages freed in this way can either be reused for streaming IO, or > allocated for something else. If the pages are used for streaming IO, > this pageout pattern continues. Otherwise, we will fall back to the > normal pageout pattern. > > Signed-off-by: Rik van Riel > Reported-by: Elladan > Cc: KOSAKI Motohiro > Cc: Peter Zijlstra > Cc: Lee Schermerhorn > Acked-by: Johannes Weiner > Signed-off-by: Andrew Morton > Signed-off-by: Linus Torvalds -- All rights reversed From aelder@sgi.com Mon Jul 11 17:32:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMWjs5256170 for ; Mon, 11 Jul 2011 17:32:45 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id ACEA8AC003; Mon, 11 Jul 2011 15:32:41 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:32:41 -0500 Subject: Re: [PATCH 01/11] xfs: reshuffle dir2 headers From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205016.890382263@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205016.890382263@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:32:40 -0500 Message-ID: <1310423560.7019.53.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Replace the current mess of dir2 headers with just three that have a clear > purpose: > > - xfs_dir2_format.h for all format defintions, including the inline helpers definitions > to access our variable size structures > - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code > and no needed by anything outside of the directory code. For this not > purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part > of the directory code. > - xfs_dir2.h for the public interface to the directory code > > In addition to the reshuffle I have also update the comments to not only > match the new file structure, but also to describe the directory format > better. > > Signed-off-by: Christoph Hellwig OK, I looked over this probably more closely than necessary. In any case, it all looks good, but I'll mention just a few things, but really they're mostly curiosity and observations rather than anything all that pressing. - It looks like the three files are: - external interface (just function prototypes) - internal interface (just function prototypes) - structures and accessors, other types, and constants Did it just happen to turn out that that the two interface files had nothing but prototypes? Or was that what you intended to do? - The contents of "xfs_dir2_format.h" comprise more than just the on-disk format, it really seems to capture all substantive data types and definitions related to directory structures in XFS. - None of the dir2 header files themselves #included anything else. The same is true for your (new) three header files. However, the internal interface file (xfs_dir2_priv.h) seems to *always* require the data types file (xfs_dir2_format.h) to be included first. What are your thoughts about just putting the #include of "xfs_dir2_format.h" into "xfs_dir2_priv.h". I realize that's really a philosophical question, broader than this particular case. A few other details, below. I'll look for whatever your response is, but I found no real problems and I trust you'll do what you think is best with my suggestions here. Reviewed-by: Alex Elder . . . > Index: xfs/fs/xfs/xfs_dir2_format.h > =================================================================== > --- /dev/null 1970-01-01 00:00:00.000000000 +0000 > +++ xfs/fs/xfs/xfs_dir2_format.h 2011-07-09 13:29:33.488251514 +0200 > @@ -0,0 +1,602 @@ > +/* > + * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc. . . . > + * Directory version 2. > + * > + * There are 4 possible formats: > + * - shortform - embedded into the inode > + * - single block - data with embedded leaf at the end > + * - multiple data blocks, single leaf+freeindex block > + * - data blocks, node and leaf blocks (btree), freeindex blocks > + * > + * Note: many node blocks structures and constants are shared with the attributes > + * code and defined in xfs_da_btree.h. > + */ > + > +#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ /* XD2B: for single block dirs */ > +#define XFS_DIR2_DATA_MAGIC 0x58443244 /* XD2D: for multiblock dirs */ > +#define XFS_DIR2_FREE_MAGIC 0x58443246 /* XD2F */ /* XD2F: for free index blocks */ > + > +/* > + * Byte offset in data block and shortform entry. > + */ > +typedef __uint16_t xfs_dir2_data_off_t; . . . > + > +typedef union { > + xfs_dir2_ino8_t i8; > + xfs_dir2_ino4_t i4; > +} xfs_dir2_inou_t; > +#define XFS_DIR2_MAX_SHORT_INUM ((xfs_ino_t)0xffffffffULL) I know this is historical, but I don't like the use of "SHORT" here to mean "4-byte," since "short" in the context of directories has a very different meaning (i.e., shortform). > + > +/* > + * Directory layout when stored internal to an inode. > + * > + * Small directories are packed as tightly as possible so as to fit into the > + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header ...of the inode. These "shortform" directories consist... > + * followed by zero or more xfs_dir2_sf_entry structures. Due the different > + * inode number storage size and the variable length name field in > + * the xfs_dir2_sf_entry all these structure are variable length, and the > + * accessors in this file should be used to iterate over them. > + * > + * > + * The parent directory has a dedicated field, and the self-pointer must > + * be calculated on the fly. This sentence is not very meaningful standing by itself here. I think it either needs a bit more context, or maybe it can just be removed. > + * > + * Entries are packed toward the top as tightly as possible, and thus may > + * be misaligned. Care needs to be taken to access them through special > + * helpers or copy them into aligned variables first. Can this last sentence just be deleted, since above you now say that the accessors here should be used? > + */ > +typedef struct xfs_dir2_sf_hdr { > + __uint8_t count; /* count of entries */ > + __uint8_t i8count; /* count of 8-byte inode #s */ > + xfs_dir2_inou_t parent; /* parent dir inode number */ > +} __arch_pack xfs_dir2_sf_hdr_t; . . . > + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | > + * | xfs_dir2_data_entry_t OR xfs_dir2_data_unused_t | > + * | ... | > + * +-------------------------------------------------+ > + * | unused space | > + * +-------------------------------------------------+ > + * > + * As all the entries are variable size structures the accessors below should > + * be used to iterate over them. > + * > + * In addition to the pure data blocks for the data and node formats it, and node formats, > + * most structures are also used for the combined data/freespace "block" . . . > + * +---------------------------+ > + * | xfs_dir2_leaf_tail_t | > + * +---------------------------+ > + * > + * The xfs_dir2_data_off_t members (bests) and tail are at the end of the block > + * for single-leaf (magic = XFS_DIR2_LEAF1_MAGIC) blocks only, but not present > + * for directories with separate leaf nodes and free space blocks > + * (magic = XFS_DIR2_LEAFN_MAGIC). This was nicely reworded. Not a lot different, but better. . . . > + * Leaf block. > + */ > +typedef struct xfs_dir2_leaf { > + xfs_dir2_leaf_hdr_t hdr; /* leaf header */ > + xfs_dir2_leaf_entry_t ents[]; /* entries */ ^^^ insert a tab here > +} xfs_dir2_leaf_t; > + . . . That's it. From aelder@sgi.com Mon Jul 11 17:32:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMWnn6256188 for ; Mon, 11 Jul 2011 17:32:49 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id B577430404E; Mon, 11 Jul 2011 15:32:46 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:32:46 -0500 Subject: Re: [PATCH 02/11] xfs: cleanup struct xfs_dir2_free From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205017.074624276@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.074624276@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:32:45 -0500 Message-ID: <1310423565.7019.54.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Change the bests array to be a proper variable sized entry. This is done > easily as no one relies on the size of the structure. Also change > XFS_DIR2_MAX_FREE_BESTS to an inline function while we're at it. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:32:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMWtki256209 for ; Mon, 11 Jul 2011 17:32:55 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0B0D3AC003; Mon, 11 Jul 2011 15:32:54 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:32:54 -0500 Subject: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205017.293539533@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.293539533@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:32:53 -0500 Message-ID: <1310423573.7019.55.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig OK, I guess this is fine. I have a suggestion below but I see nothing truly wrong with what you have. Reviewed-by: Alex Elder > Index: xfs/fs/xfs/xfs_dir2_leaf.c > =================================================================== > --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:07:49.518499801 +0200 > +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:19:48.171796748 +0200 > @@ -148,6 +148,36 @@ xfs_dir2_block_to_leaf( > return 0; > } > > +STATIC void > +xfs_dir2_leaf_find_stale( > + struct xfs_dir2_leaf *leaf, > + int index, > + int *lowstale, > + int *highstale) > +{ > + /* > + * Find the first stale entry before our index, if any. > + */ > + for (*lowstale = index - 1; > + *lowstale >= 0 && > + leaf->ents[*lowstale].address != > + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); > + --*lowstale) > + continue; > + > + /* > + * Find the first stale entry at or after our index, if any. > + * Stop if the answer would be worse than lowstale. Stop if the result would require moving more entries than using lowstale. (I realize you didn't change this comment, you just moved it into this helper function.) Actually it seems like this searching of the stale entries and moving things around among them could be broken into a few even finer-grained utility routines. It just seems like what this code is doing is simpler than what the code complexity suggests (though I haven't really looked at this stuff much before). > + */ > + for (*highstale = index; > + *highstale < be16_to_cpu(leaf->hdr.count) && > + leaf->ents[*highstale].address != > + cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && > + (*lowstale < 0 || index - *lowstale > *highstale - index); > + ++*highstale) > + continue; > +} > + > struct xfs_dir2_leaf_entry * > xfs_dir2_leaf_find_entry( > xfs_dir2_leaf_t *leaf, /* leaf structure */ . . . From aelder@sgi.com Mon Jul 11 17:33:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMX2ZQ256235 for ; Mon, 11 Jul 2011 17:33:02 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 038028F808F; Mon, 11 Jul 2011 15:32:58 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:32:58 -0500 Subject: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205017.485558926@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.485558926@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:32:58 -0500 Message-ID: <1310423578.7019.56.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor > the meat of those two functions into a new common helper. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:33:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMX5jX256251 for ; Mon, 11 Jul 2011 17:33:05 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 698CF304053; Mon, 11 Jul 2011 15:33:05 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:33:05 -0500 Subject: Re: [PATCH 05/11] xfs: add a proper transaction pointer to struct xfs_buf From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205017.667546845@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.667546845@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:04 -0500 Message-ID: <1310423584.7019.57.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Replace the typeless b_fspriv2 and the ugly macros around it with a properly > typed transaction pointer. > > Signed-off-by: Christoph Hellwig So it looks like you do two things. - make it a real pointer (which it should be), when it's used to keep track of the transaction a buffer is associated with; and - eliminate the use of this field storing cast 1's and 2's for verifying the way log buffers are used. I don't see much value in the second one, and the first is the way it should be, so this looks good to me. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:34:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMYaaO256338 for ; Mon, 11 Jul 2011 17:34:36 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id DF4A5304043; Mon, 11 Jul 2011 15:34:35 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:34:35 -0500 Subject: Re: [PATCH 06/11] xfs: remove wrappers around b_fspriv From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205017.863949257@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.863949257@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:09 -0500 Message-ID: <1310423589.7019.59.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig I never did understand exactly why these things were macro-ized, but figured it must have hidden some sort of conditional debug or development aid long ago. In any case, good riddance. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:34:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMYaqZ256346 for ; Mon, 11 Jul 2011 17:34:36 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id C47E130404E; Mon, 11 Jul 2011 15:34:36 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:34:36 -0500 Subject: Re: [PATCH 07/11] xfs: remove wrappers around b_iodone From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205018.136515335@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.136515335@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:13 -0500 Message-ID: <1310423593.7019.60.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:34:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMYc5R256354 for ; Mon, 11 Jul 2011 17:34:38 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id D69098F8065; Mon, 11 Jul 2011 15:34:37 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:34:37 -0500 Subject: Re: [PATCH 08/11] xfs: remove the unused xfs_buf_delwri_sort function From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205018.325145774@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.325145774@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:17 -0500 Message-ID: <1310423597.7019.61.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:34:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMYdVa256371 for ; Mon, 11 Jul 2011 17:34:39 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8EEF6304043; Mon, 11 Jul 2011 15:34:39 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:34:39 -0500 Subject: Re: [PATCH 09/11] xfs: remove the dead QUOTADEBUG debug From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205018.525481665@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.525481665@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:22 -0500 Message-ID: <1310423602.7019.62.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Remove the dead hash table test rid which has been rotting away under > QUOTADEBUG, including some code that was compiled for normal debug > builds, but not actually called without QUOTADEBUG, and enable a few > cheap debug checks that were hidden under QUOTADEBUG for normal > debug builds. > > Signed-off-by: Christoph Hellwig I've never used it and I don't suppose anyone else has been (or will any time soon). So I guess it might as well go. Reviewed-by: Alex Elder From aelder@sgi.com Mon Jul 11 17:34:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMYfpM256390 for ; Mon, 11 Jul 2011 17:34:41 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5AF1B304043; Mon, 11 Jul 2011 15:34:41 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:34:41 -0500 Subject: Re: [PATCH 11/11] xfs: kill the dead XFS_DABUF debug code From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205018.915767211@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.915767211@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:33:27 -0500 Message-ID: <1310423607.7019.63.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@oss.sgi.com Mon Jul 11 17:35:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMZSME256539 for ; Mon, 11 Jul 2011 17:35:28 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6BMZQtQ256511; Mon, 11 Jul 2011 17:35:26 -0500 Date: Mon, 11 Jul 2011 17:35:26 -0500 Message-Id: <201107112235.p6BMZQtQ256511@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-18994-gb2ce397 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79 X-Git-Newrev: b2ce39740066604288876c752d8170b3b17a21aa This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated b2ce397 Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc" from 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit b2ce39740066604288876c752d8170b3b17a21aa Author: Alex Elder Date: Mon Jul 11 09:51:44 2011 -0500 Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc" This reverts commit 7a249cf83da1813cfa71cfe1e265b40045eceb47. That commit created a situation that could lead to a filesystem hang. As Dave Chinner pointed out, xfs_trans_alloc() could hold a reference to m_active_trans (i.e., keep it non-zero) and then wait for SB_FREEZE_TRANS to complete. Meanwhile a filesystem freeze request could set SB_FREEZE_TRANS and then wait for m_active_trans to drop to zero. Nobody benefits from this sequence of events... Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/xfs_fsops.c | 2 +- fs/xfs/xfs_iomap.c | 3 ++- fs/xfs/xfs_mount.c | 14 +++++++------- fs/xfs/xfs_trans.c | 27 +++++++++++++++++---------- fs/xfs/xfs_trans.h | 10 ++-------- 5 files changed, 29 insertions(+), 27 deletions(-) hooks/post-receive -- XFS development tree From aelder@sgi.com Mon Jul 11 17:46:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6BMkMmG257012 for ; Mon, 11 Jul 2011 17:46:22 -0500 Received: from cas.corp.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id AD749AC006; Mon, 11 Jul 2011 15:46:21 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 17:46:21 -0500 Subject: Re: [PATCH] xfs: start periodic workers later From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110711135957.GA23737@infradead.org> References: <20110711135957.GA23737@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 17:34:35 -0500 Message-ID: <1310423675.7019.64.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-11 at 09:59 -0400, Christoph Hellwig wrote: > Start the periodic sync workers only after we have finished xfs_mountfs > and thus fully set up the filesystem structures. Without this we can > call into xfs_qm_sync before the quotainfo strucute is set up if the > mount takes unusually long, and probably hit other incomplete states > as well. > > Also clean up the xfs_fs_fill_super error path by using consistent > label names, and removing an impossible to reach case. > > Reported-by: Arkadiusz Miskiewicz > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From david@fromorbit.com Mon Jul 11 19:47:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C0kxRT000650 for ; Mon, 11 Jul 2011 19:47:00 -0500 X-ASG-Debug-ID: 1310431618-6cff02800000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55443EA2AB8 for ; Mon, 11 Jul 2011 17:46:58 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id c3YEVSAFezNBLLr1 for ; Mon, 11 Jul 2011 17:46:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgcEAESXG055LCkBgWdsb2JhbABTpyUVAQEWJiXKEw6GLASjLw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 12 Jul 2011 10:16:56 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgR7n-0003bG-Gw; Tue, 12 Jul 2011 10:46:55 +1000 Date: Tue, 12 Jul 2011 10:46:55 +1000 From: Dave Chinner To: Christoph Hellwig Cc: hch@lst.de, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [regression, 3.0-rc] xfs: freeze hang in 068 Subject: Re: [regression, 3.0-rc] xfs: freeze hang in 068 Message-ID: <20110712004655.GI23038@dastard> References: <20110711010357.GD23038@dastard> <20110711095147.GA19354@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711095147.GA19354@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310431619 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0022 1.0000 -2.0065 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68658 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:51:47AM -0400, Christoph Hellwig wrote: > On Mon, Jul 11, 2011 at 11:03:57AM +1000, Dave Chinner wrote: > > Christoph, > > > > The recent changes to the active transaction accounting to close a > > race on freeze can hang the freeze process and hence the filesystem. > > That commit isn't in 3.0-rc, but I guess it's just the subject line > that is incorrect. Ah, yes. I'd merged everything into a common test tree based on 3.0-rc6, and then forgot I'd merged all the pending 3.1 stuff when I'd tracked down the bug and wrote the email.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 11 19:55:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C0tdgo001187 for ; Mon, 11 Jul 2011 19:55:39 -0500 X-ASG-Debug-ID: 1310432137-7ada02c70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B091017B706B for ; Mon, 11 Jul 2011 17:55:37 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id GIr1TI43WQ8TbpTO for ; Mon, 11 Jul 2011 17:55:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgcEANeaG055LCkBgWdsb2JhbABTpyUVAQEWJiWIesEnDoYsBJp4iDc Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 12 Jul 2011 10:25:36 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgRGB-0003cI-5Z; Tue, 12 Jul 2011 10:55:35 +1000 Date: Tue, 12 Jul 2011 10:55:35 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Subject: Re: [PATCH 04/11] xfs: factor out xfs_da_grow_inode_int Message-ID: <20110712005535.GJ23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.485558926@bombadil.infradead.org> <20110711003743.GC23038@dastard> <20110711052406.GA13266@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110711052406.GA13266@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310432138 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68659 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 01:24:06AM -0400, Christoph Hellwig wrote: > On Mon, Jul 11, 2011 at 10:37:43AM +1000, Dave Chinner wrote: > > On Sun, Jul 10, 2011 at 04:49:20PM -0400, Christoph Hellwig wrote: > > > xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor > > > the meat of those two functions into a new common helper. > > > > Hmmmm. I'm in the process of splitting xfs_dir2_grow_inode() into > > data space vs free space variants so I can play speculative > > preallocation tricks in the directory data space to reduce dataspace > > fragmentation for large directories. Combined with a rework of the > > readir readahead code, it significantly reduces IO count and seeks > > for readdir calls... > > > > I'll probably just rebase on top of this patch, though, because I did > > notice that the two functions were very similar to begin with. ;) > > Are you two variants still sharing the core code? Sort of - there's an extra allocation failure case added (multiple directory block size allocation failure), but otherwise is the same. > If yes rebasing sounds > like the better idea. If the two dir2 variants are different enough > from the da variant I'm fine with postponing this one for now. I'll rebase anyway - the code won't be ready for 3.1 because I haven't yet started on the readahead optimisations that better allocation allows. I also need to add dataspace truncation during inactivation so that we don't leave blocks in the data space "beyond EOF" that repair complains about on clean unmounts. And FWIW, I think I now know enough about how this all works to be able to implement online directory data space defragmentation now... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 11 19:59:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C0xVL8001351 for ; Mon, 11 Jul 2011 19:59:31 -0500 X-ASG-Debug-ID: 1310432369-772302e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5E40717B61F9 for ; Mon, 11 Jul 2011 17:59:29 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id R5KymjfjNQGy00NM for ; Mon, 11 Jul 2011 17:59:29 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgcEANeaG055LCkBgWdsb2JhbABTpyUVAQEWJiXKIQ6GLASjLw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 12 Jul 2011 10:29:28 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgRJv-0003cj-JU; Tue, 12 Jul 2011 10:59:27 +1000 Date: Tue, 12 Jul 2011 10:59:27 +1000 From: Dave Chinner To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 09/11] xfs: remove the dead QUOTADEBUG debug Subject: Re: [PATCH 09/11] xfs: remove the dead QUOTADEBUG debug Message-ID: <20110712005927.GK23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.525481665@bombadil.infradead.org> <1310423602.7019.62.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423602.7019.62.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310432370 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0084 1.0000 -1.9662 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.97 X-Barracuda-Spam-Status: No, SCORE=-1.97 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68659 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:33:22PM -0500, Alex Elder wrote: > On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > > Remove the dead hash table test rid which has been rotting away under > > QUOTADEBUG, including some code that was compiled for normal debug > > builds, but not actually called without QUOTADEBUG, and enable a few > > cheap debug checks that were hidden under QUOTADEBUG for normal > > debug builds. > > > > Signed-off-by: Christoph Hellwig > > I've never used it and I don't suppose anyone else has > been (or will any time soon). So I guess it might as > well go. I have actually used it in the past year or so, but that was only because I changed locking and needed to verify that the QUOTADEBUG code still worked. But if it wasn't there, i wouldn't have had to do that, so I'm happy to see it go. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 11 20:03:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C130c4001537 for ; Mon, 11 Jul 2011 20:03:01 -0500 X-ASG-Debug-ID: 1310432578-6cfa02ea0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DB6C812EBBFA for ; Mon, 11 Jul 2011 18:02:59 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id oskGasFef1Z9vqlI for ; Mon, 11 Jul 2011 18:02:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgcEANeaG055LCkBgWdsb2JhbABTpyUVAQEWJiXKIQ6GLASaeIg3 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 12 Jul 2011 10:32:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgRNJ-0003dJ-C0; Tue, 12 Jul 2011 11:02:57 +1000 Date: Tue, 12 Jul 2011 11:02:57 +1000 From: Dave Chinner To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 06/11] xfs: remove wrappers around b_fspriv Subject: Re: [PATCH 06/11] xfs: remove wrappers around b_fspriv Message-ID: <20110712010257.GL23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.863949257@bombadil.infradead.org> <1310423589.7019.59.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423589.7019.59.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310432579 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0013 1.0000 -2.0125 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68658 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:33:09PM -0500, Alex Elder wrote: > On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > > Signed-off-by: Christoph Hellwig > > I never did understand exactly why these things > were macro-ized, but figured it must have hidden > some sort of conditional debug or development aid > long ago. In any case, good riddance. It was part of the original Linux port. Both the Irix and Linux XFS code was converted to use these XFS_BUF macros. Hence the core XFS code was identical on both platforms and easy to move changes from Irix to Linux because the macros hid the differences in buffer cache implementations. IOWs, we really don't need them anymore :) Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Mon Jul 11 21:52:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C2q6rW006715 for ; Mon, 11 Jul 2011 21:52:06 -0500 Received: from cas.corp.sgi.com (pv-excas1-dc21.corp.sgi.com [137.38.102.116]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5CD52AC003; Mon, 11 Jul 2011 19:52:03 -0700 (PDT) Received: from [127.0.0.1] (198.149.20.12) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 11 Jul 2011 21:52:02 -0500 Subject: Re: [PATCH 10/11] xfs: remove leftovers of the old btree tracing code From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110710205018.724144355@bombadil.infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205018.724144355@bombadil.infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 11 Jul 2011 21:52:02 -0500 Message-ID: <1310439122.3044.3.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [198.149.20.12] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > Remove various bits left over from the old kdb-only btree tracing code, but > leave the actual trace point stubs in place to ease adding new event based > btree tracing. > > Signed-off-by: Christoph Hellwig It doesn't look like I signed off on this, but I thought I had. I haven't been using these so it's fine with me that they go. It's good that you're leaving the stubs as placeholders--they should be populated at some point. Reviewed-by: Alex Elder From BATV+946b2dbdef29c058abbf+2879+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 12 04:06:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C96Ee6023631 for ; Tue, 12 Jul 2011 04:06:17 -0500 X-ASG-Debug-ID: 1310461571-051800f10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C47A515F16DD; Tue, 12 Jul 2011 02:06:11 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id EiMj5mxFOvBlMQCG; Tue, 12 Jul 2011 02:06:11 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgYuv-0003li-NU; Tue, 12 Jul 2011 09:06:09 +0000 Date: Tue, 12 Jul 2011 05:06:09 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 01/11] xfs: reshuffle dir2 headers Subject: Re: [PATCH 01/11] xfs: reshuffle dir2 headers Message-ID: <20110712090609.GA8364@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205016.890382263@bombadil.infradead.org> <1310423560.7019.53.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423560.7019.53.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310461573 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68691 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:32:40PM -0500, Alex Elder wrote: > - It looks like the three files are: > - external interface (just function prototypes) > - internal interface (just function prototypes) > - structures and accessors, other types, and constants > Did it just happen to turn out that that the two interface > files had nothing but prototypes? Or was that what you > intended to do? It's more or less intentional. If actually had non-opaque data types that weren't part of the disk format we might have them here, but the dir2 code doesn't have any of those. > - The contents of "xfs_dir2_format.h" comprise more than > just the on-disk format, it really seems to capture all > substantive data types and definitions related to directory > structures in XFS. The only type not part of the disk format is xfs_dir2_data_aoff_t, which is a type that we probably should get rid of anyway. > - None of the dir2 header files themselves #included > anything else. The same is true for your (new) three > header files. However, the internal interface file > (xfs_dir2_priv.h) seems to *always* require the data > types file (xfs_dir2_format.h) to be included first. > What are your thoughts about just putting the #include > of "xfs_dir2_format.h" into "xfs_dir2_priv.h". I > realize that's really a philosophical question, broader > than this particular case. We haven't done that for any of the XFS headers, so I don't plan to change it with this patch. > > +#define XFS_DIR2_BLOCK_MAGIC 0x58443242 /* XD2B: for one block dirs */ > /* XD2B: for single block dirs */ > > > +#define XFS_DIR2_DATA_MAGIC 0x58443244 /* XD2D: for multiblock dirs */ > > +#define XFS_DIR2_FREE_MAGIC 0x58443246 /* XD2F */ > /* XD2F: for free index blocks */ These lines were taken as-is from the old headers, but your variants are beter, I'll change it. > > +typedef union { > > + xfs_dir2_ino8_t i8; > > + xfs_dir2_ino4_t i4; > > +} xfs_dir2_inou_t; > > +#define XFS_DIR2_MAX_SHORT_INUM ((xfs_ino_t)0xffffffffULL) > > I know this is historical, but I don't like the use of > "SHORT" here to mean "4-byte," since "short" in the > context of directories has a very different meaning > (i.e., shortform). We can fix this up later, but I don't want to change identifiers in addition to the header consolidation. > > > + > > +/* > > + * Directory layout when stored internal to an inode. > > + * > > + * Small directories are packed as tightly as possible so as to fit into the > > + * literal area of the inode. They consist of a single xfs_dir2_sf_hdr header > ...of the inode. These "shortform" directories consist... Ok. > > + * followed by zero or more xfs_dir2_sf_entry structures. Due the different > > + * inode number storage size and the variable length name field in > > + * the xfs_dir2_sf_entry all these structure are variable length, and the > > + * accessors in this file should be used to iterate over them. > > + * > > + * > > + * The parent directory has a dedicated field, and the self-pointer must > > + * be calculated on the fly. > > This sentence is not very meaningful standing by itself here. > I think it either needs a bit more context, or maybe it can > just be removed. It doesn't seem overly useful, so I'll remove it. > > > + * > > + * Entries are packed toward the top as tightly as possible, and thus may > > + * be misaligned. Care needs to be taken to access them through special > > + * helpers or copy them into aligned variables first. > > Can this last sentence just be deleted, since above you > now say that the accessors here should be used? I'll remove it. From BATV+946b2dbdef29c058abbf+2879+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 12 04:09:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C99uDK023736 for ; Tue, 12 Jul 2011 04:09:57 -0500 X-ASG-Debug-ID: 1310461794-5ddf01c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1A1515F1F32; Tue, 12 Jul 2011 02:09:55 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 8TFCpJqyExjDZPHF; Tue, 12 Jul 2011 02:09:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgYyY-0003oe-Gq; Tue, 12 Jul 2011 09:09:54 +0000 Date: Tue, 12 Jul 2011 05:09:54 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Subject: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Message-ID: <20110712090954.GB8364@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.293539533@bombadil.infradead.org> <1310423573.7019.55.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423573.7019.55.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310461795 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68691 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:32:53PM -0500, Alex Elder wrote: > > + continue; > > + > > + /* > > + * Find the first stale entry at or after our index, if any. > > + * Stop if the answer would be worse than lowstale. > > Stop if the result would require moving more > entries than using lowstale. > > (I realize you didn't change this comment, you just moved > it into this helper function.) I'll change it. > Actually it seems like this searching of the stale > entries and moving things around among them could > be broken into a few even finer-grained utility > routines. It just seems like what this code is > doing is simpler than what the code complexity > suggests (though I haven't really looked at this > stuff much before). Some of this code could use some refactoring, but it's going to be more complex than this patch. Additionally a lot of the logic is duplicate in the block format code, but that format has the freespace "header" at the end in struct xfs_dir2_block_tail, which for the fun of it uses 32-bit count and stale fields instead of the 16-bit values in struct xfs_dir2_leaf_hdr. From BATV+946b2dbdef29c058abbf+2879+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 12 04:12:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C9CEs9023807 for ; Tue, 12 Jul 2011 04:12:14 -0500 X-ASG-Debug-ID: 1310461933-3bcd00d10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F0C451E5F411; Tue, 12 Jul 2011 02:12:13 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id diP4TyiEQ6707xoo; Tue, 12 Jul 2011 02:12:13 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgZ0n-0004bG-0j; Tue, 12 Jul 2011 09:12:13 +0000 Date: Tue, 12 Jul 2011 05:12:12 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 05/11] xfs: add a proper transaction pointer to struct xfs_buf Subject: Re: [PATCH 05/11] xfs: add a proper transaction pointer to struct xfs_buf Message-ID: <20110712091212.GC8364@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.667546845@bombadil.infradead.org> <1310423584.7019.57.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423584.7019.57.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310461933 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0180 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68690 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:33:04PM -0500, Alex Elder wrote: > On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > > Replace the typeless b_fspriv2 and the ugly macros around it with a properly > > typed transaction pointer. > > > > Signed-off-by: Christoph Hellwig > > So it looks like you do two things. > - make it a real pointer (which it should be), when it's > used to keep track of the transaction a buffer is > associated with; and > - eliminate the use of this field storing cast 1's and 2's > for verifying the way log buffers are used. > > I don't see much value in the second one, and the first > is the way it should be, so this looks good to me. I should have mentioned that it also drops those pointless debug checks in the log code. I'll add it to the patch description. From BATV+946b2dbdef29c058abbf+2879+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 12 04:15:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6C9FDIa023906 for ; Tue, 12 Jul 2011 04:15:13 -0500 X-ASG-Debug-ID: 1310462111-5df301b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 42E7D15F1F6D; Tue, 12 Jul 2011 02:15:11 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YL2K2jjHouoltyBv; Tue, 12 Jul 2011 02:15:11 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgZ3d-0005Mj-7h; Tue, 12 Jul 2011 09:15:09 +0000 Date: Tue, 12 Jul 2011 05:15:09 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Alex Elder , Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 06/11] xfs: remove wrappers around b_fspriv Subject: Re: [PATCH 06/11] xfs: remove wrappers around b_fspriv Message-ID: <20110712091509.GD8364@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.863949257@bombadil.infradead.org> <1310423589.7019.59.camel@doink> <20110712010257.GL23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110712010257.GL23038@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310462112 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68691 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 12, 2011 at 11:02:57AM +1000, Dave Chinner wrote: > On Mon, Jul 11, 2011 at 05:33:09PM -0500, Alex Elder wrote: > > On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > > > Signed-off-by: Christoph Hellwig > > > > I never did understand exactly why these things > > were macro-ized, but figured it must have hidden > > some sort of conditional debug or development aid > > long ago. In any case, good riddance. > > It was part of the original Linux port. Both the Irix and Linux XFS > code was converted to use these XFS_BUF macros. Hence the core XFS > code was identical on both platforms and easy to move changes from > Irix to Linux because the macros hid the differences in buffer cache > implementations. That was the theory, but these portability changes never got merged back to IRIX. On the other hand XFS/Linux actually had two different buffer implementations in it's early days and the macros allowed switching between them. Back then the area was an even bigger mess, as the buffer cache implementation that survived was called pagebuf, and used page_buf_/pb_/PB_/ prefixes, which not only got mapped to various different and often duplicate xfs_buf or similar names. From vietnamshippinggazette@gmail.com Tue Jul 12 05:36:38 2011 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6CAaclX027644 for ; Tue, 12 Jul 2011 05:36:38 -0500 X-ASG-Debug-ID: 1310466996-451401e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1C235621EB for ; Tue, 12 Jul 2011 03:36:36 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id dJ09MHplY7qaYgc5 for ; Tue, 12 Jul 2011 03:36:36 -0700 (PDT) Received: by iyf40 with SMTP id 40so4726943iyf.26 for ; Tue, 12 Jul 2011 03:36:36 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=aSbED6CPodDIffJebdzQQaVGYMUhMGU3exHJsojiJBY=; b=DmWnrgXKeCdD3rHhJ1LxqavN+meErMELpd8lS1lrR13jNzpJRkBvDDkZ563BedUOET WtSW15I645kRHbJtlJnxXHBkN7CRIvi4V6v+DZ495AGKw4ISPC6icUdxWb0yqJuuzq0I z8zrzDgZBwB9fs0BK48jFi4UMQXNYi8adj/Ak= MIME-Version: 1.0 Received: by 10.42.246.131 with SMTP id ly3mr7272261icb.495.1310466970442; Tue, 12 Jul 2011 03:36:10 -0700 (PDT) Received: by 10.42.175.3 with HTTP; Tue, 12 Jul 2011 03:36:10 -0700 (PDT) Date: Tue, 12 Jul 2011 17:36:10 +0700 Message-ID: X-ASG-Orig-Subj: =?UTF-8?B?Q8agIEjhu5hJIFbDgE5HIMSQ4bqmVSBUxq8gQuG6pFQgxJDhu5hORyBT4bqiTiAyMDExIA==?= =?UTF-8?B?Q+G7pkEgQuG6oE4u?= Subject: =?UTF-8?B?Q8agIEjhu5hJIFbDgE5HIMSQ4bqmVSBUxq8gQuG6pFQgxJDhu5hORyBT4bqiTiAyMDExIA==?= =?UTF-8?B?Q+G7pkEgQuG6oE4u?= From: vietnamshippinggazette vietnamshippinggazette To: thiennguyen26@gmail.com Content-Type: multipart/mixed; boundary=90e6ba6e871043704e04a7dcde64 X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1310466997 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --90e6ba6e871043704e04a7dcde64 Content-Type: multipart/alternative; boundary=90e6ba6e871043704804a7dcde62 --90e6ba6e871043704804a7dcde62 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 KioqTeG7mXQgZOG7sSDDoW4gdHLhu41uZyDEkWnhu4NtIHbhu4EgZHUgbOG7i2NoIGPhu6dhIFF1 4buRYyBHaWEuKgoKKiAqCgoqKipN4buZdCDEkeG7i2EgxJFp4buDbSBkdSBs4buLY2ggbWFuZyB0 4bqnbSBj4buhIFF14buRYyAqCgoqICBU4bq/IG5oxrBuZyBs4bqhaSDhu58gbmdheSDEkeG7i2Eg YsOgbiB0cm9uZyBuxrDhu5tjLioKCgoKCgpLaHUgcGjhu6ljIGjhu6NwIGdp4bqjaSB0csOtICpI YXBweSoqIExhbmQqIChY4bupCgpz4bufIGjhuqFuaCBwaMO6YykgduG7m2kgc+G7kSB24buRbiDE keG6p3UgdMawICoyIHThu7cgVVNEKgoKxJHGsOG7o2MgxJHDoW5oIGdpw6EgbMOgIGtodSB2dWkg Y2jGoWkgZ2nhuqNpIHRyw60gKmzhu5tuICoKCipuaOG6pXQgxJDDtG5nIE5hbSDDgS4qCgoKClbh u5tpIMaw4bubYyB0w61uaCDEkcOzbiAqMTQgdHJp4buHdSogbMaw4bujdCBraMOhY2ggbeG7l2kK Cm7Eg20gY8O5bmcgduG7m2kgbmh1IGPhuqd1IG5ow6Ag4bufLCBwaMOybmcgY2hvIHRodcOqCgpj aG8gaMahbiAqMTAuMDAwIENCIENOViogbMOgbSB2aeG7h2MgdHJvbmcga2h1CgpwaOG7qWMgaOG7 o3AgZ2nhuqNpIHRyw60gKkhhcHB5KiogTGFuZCoqLioKCgoKKsSQw6J5IHPhur0gbMOgIGPGoSBo 4buZaSBjaG8gbmjhu69uZyBuaMOgIMSR4bqndSB0xrAgYmnhur90ICoKCipu4bqvbSBi4bqvdCwg cXV54bq/dCDEkW/DoW4gdsOgIMSR4bqndSB0xrAgYuG6pXQgxJHhu5luZyBz4bqjbiAqCgoqZ+G6 p24ga2h1IGdp4bqjaSB0csOtIEhhcHB5IExhbmQgTG9uZyBBbiBuw6B5LiAqKgoKKipWw6AgY8Wp bmcgbMOgIGPGoSBo4buZaSBjaG8gbmjhu69uZyBkb2FuaCBuZ2hp4buHcCwKdOG7lSBjaOG7qWMs IGPDoSBuaMOibiDEkcOzbiDEkeG6p3UgbMOgbiBzw7NuZyBt4bubaSBjaG8Kdmnhu4djIGtpbmgg ZG9hbmggY+G7p2EgbcOsbmggdGjDoG5oIGPDtG5nLCB0aOG7i25oKgoKKnbGsOG7o25nIGjGoW7i gKYqCgoqICoKCipIaeG7h24gY2jDum5nIHTDtGkgxJFhbmcgcGjDom4gcGjhu5FpIMSR4bqldCBu 4buBbiAqCgoqxJHhu5FpIGRp4buHbiB2w6AgbMOibiBj4bqtbiBIYXBweSBMYW5kOgoKLSBHacOh IGjhu6NwIGzDvQotIEPDsyBuaGnhu4F1IHbhu4sgdHLDrQotIMSQ4bqneSB0aeG7gW0gbsSDbmcu Li4KLSBEaeG7h24gVMOtY2g6IHThu6sgODAtMjAwbTIuCgpUaeG7h24ga2luaCBkb2FuaCDEg24g deG7kW5nLCBuaMOgIGjDoG5nLCBraMOhY2ggc+G6oW4uLi4qCgoqQ2xpY2sgxJHhu4MgdMOsbSBo aeG7g3UgdGjDqm0uIDxodHRwOi8vdGlubXVhYmFubmhhZGF0LmJsb2dzcG90LmNvbS8+KgoKKiAq CgoKClRyw6JuIHRy4buNbmchCgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqSE9UTElORToqKiAwOTgzLjEw LjU3LjM3KgoKCgpDw7RuZyBUeSBD4buVIFBo4bqnbiBC4bqldCDEkOG7mW5nIFPhuqNuIEFuIEdp YSBMYW5kClPhu5EgMTE0IMSRxrDhu51uZyBz4buRIDcsIEtEQyBUcnVuZyBTxqFuLCBUUC5IQ00K ClRlbDogKDg0LjgpIDIyMzcgNDE2MCAgLSAgRmF4OiAoODQuOCkgNTQzMSA5Mzg5Cg== --90e6ba6e871043704804a7dcde62 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

**M=E1=BB=99t d=E1=BB=B1 =C3=A1n tr=E1=BB=8Dng =C4=91i= =E1=BB=83m v=E1=BB=81 du l=E1=BB=8Bch c=E1=BB=A7a Qu=E1=BB=91c Gia.

=C2=A0

**M=E1=BB=99t =C4=91=E1=BB=8Ba =C4=91i=E1=BB=83m du l= =E1=BB=8Bch mang=C2=A0t=E1=BA=A7m c=E1=BB=A1 Qu=E1=BB=91c

=C2=A0 T=E1=BA=BF nh=C6=B0ng l=E1=BA=A1i =E1=BB=9F=C2= =A0ngay =C4=91=E1=BB=8Ba b=C3=A0n trong n=C6=B0=E1=BB=9Bc.

=C2=A0

=C2=A0

Khu ph=E1=BB=A9c h=E1=BB=A3p gi=E1=BA=A3i tr=C3=AD=C2=A0Happy=C2=A0Land=C2=A0(X=E1=BB=A9=C2=A0

s=E1=BB=9F h=E1=BA=A1nh ph=C3=BAc) v=E1=BB=9Bi s= =E1=BB=91 v=E1=BB=91n =C4=91=E1=BA=A7u t=C6=B0=C2=A02 t=E1=BB=B7 USD=C2=A0

=C4=91=C6=B0=E1=BB=A3c =C4=91=C3=A1nh gi=C3=A1 l= =C3=A0 khu vui ch=C6=A1i gi=E1=BA=A3i tr=C3=AD=C2=A0l=E1=BB=9Bn=C2=A0

nh=E1=BA=A5t =C4=90=C3=B4ng Nam =C3=81.=

=C2=A0

V=E1=BB=9Bi =C6=B0=E1=BB=9Bc t=C3=ADnh =C4=91=C3= =B3n=C2=A014 tri=E1=BB=87u=C2=A0l=C6=B0=E1=BB=A3t kh=C3=A1ch m=E1=BB=97i=C2=A0

n=C4=83m c=C3=B9ng v=E1=BB=9Bi nhu c=E1=BA=A7u nh= =C3=A0 =E1=BB=9F, ph=C3=B2ng cho thu=C3=AA=C2=A0

cho h=C6=A1n=C2=A010.000 CB CNV=C2=A0l=C3=A0m vi=E1=BB=87c trong khu=C2=A0

ph=E1=BB=A9c h=E1=BB=A3p gi=E1=BA=A3i tr=C3=AD=C2= =A0Happy=C2=A0Land.

=C2=A0

=C4=90=C3=A2y s=E1=BA=BD l=C3=A0 c= =C6=A1 h=E1=BB=99i cho nh=E1=BB=AFng nh=C3=A0 =C4=91=E1=BA=A7u t=C6=B0 bi=E1=BA=BFt=C2=A0

n=E1=BA=AFm b=E1=BA=AFt, quy=E1=BA= =BFt =C4=91o=C3=A1n v=C3=A0 =C4=91=E1=BA=A7u t=C6=B0 b=E1=BA=A5t =C4=91=E1=BB=99ng s=E1=BA=A3n=C2=A0

g=E1=BA=A7n khu gi=E1=BA=A3i tr=C3= =AD Happy Land Long An n=C3=A0y.=C2=A0

V=C3=A0 c=C5=A9ng l=C3=A0 c=C6=A1 h=E1=BB=99i cho nh=E1=BB=AFng doanh nghi=E1=BB=87= p,=C2=A0
t=E1=BB=95 ch=E1=BB=A9c, c=C3=A1 nh=C3=A2n =C4=91=C3=B3n =C4=91=E1=BA=A7u l= =C3=A0n s=C3=B3ng m=E1=BB=9Bi cho
vi=E1=BB=87c kinh doanh c=E1=BB=A7a m=C3=ACnh th=C3=A0nh c=C3=B4ng, th=E1= =BB=8Bnh

v=C6=B0=E1=BB=A3ng h=C6=A1n=E2=80= =A6

=C2=A0

Hi=E1=BB=87n ch=C3=BAng t=C3=B4i =C4=91ang ph=C3=A2n ph=E1= =BB=91i =C4=91=E1=BA=A5t n=E1=BB=81n

=C4=91=E1=BB=91i di=E1=BB=87n v=C3=A0 l= =C3=A2n c=E1=BA=ADn Happy Land:

- Gi=C3=A1 h=E1=BB=A3p l=C3=BD
- C=C3=B3 nhi=E1=BB=81u v=E1=BB=8B tr=C3=AD
- =C4=90=E1=BA=A7y ti=E1=BB=81m n=C4=83ng...
- Di=E1=BB=87n T=C3=ADch: t=E1=BB=AB 80-200m2.

Ti=E1=BB=87n kinh doanh =C4=83n u=E1=BB=91ng, nh=C3=A0 h=C3=A0ng, kh=C3=A1c= h s=E1=BA=A1n...

Click = =C4=91=E1=BB=83 t=C3=ACm hi=E1=BB=83u th=C3=AAm.

=C2=A0

=C2=A0

Tr=C3=A2n tr=E1=BB=8Dng!

-----------------------------= --------------------------------------------

HOTLINE:=C2=A00983= .10.57.37

=C2=A0

C=C3=B4ng Ty C=E1=BB=95 Ph=E1=BA=A7n B=E1=BA=A5t = =C4=90=E1=BB=99ng S=E1=BA=A3n An Gia Land
S=E1=BB=91 114 =C4=91=C6=B0=E1=BB=9Dng s=E1=BB=91 7, KDC Trung S=C6=A1n, TP= .HCM

Tel: (84.8) 2237 4160=C2=A0 -=C2=A0 Fax: (84.8) 5431 9389

=C2=A0

--90e6ba6e871043704804a7dcde62-- --90e6ba6e871043704e04a7dcde64 Content-Type: image/jpeg; name="Mo hinh Happyland.jpg" Content-Disposition: attachment; filename="Mo hinh Happyland.jpg" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq0q6ajc0 /9j/4AAQSkZJRgABAgEASABIAAD/4STKRXhpZgAATU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUA AAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAAcAAAAcgEyAAIAAAAUAAAAjodp AAQAAAABAAAApAAAANAACvyAAAAnEAAK/IAAACcQQWRvYmUgUGhvdG9zaG9wIENTMiBXaW5kb3dz ADIwMTE6MDY6MDUgMDE6MTA6MjAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAACA6ADAAQAAAAB AAABjgAAAAAAAAAGAQMAAwAAAAEABgAAARoABQAAAAEAAAEeARsABQAAAAEAAAEmASgAAwAAAAEA AgAAAgEABAAAAAEAAAEuAgIABAAAAAEAACOUAAAAAAAAAEgAAAABAAAASAAAAAH/2P/gABBKRklG AAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBEL CgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsN Dg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwM/8AAEQgAfACgAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYH CAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQh EjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXi ZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIE BAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKy gwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dX Z3eHl6e3x//aAAwDAQACEQMRAD8A2j1vFYZNjxMQyyuxpn+vL2f+Bon/ADgw4hzbd0RLYI8vpeg/ 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 tw9uvRVf1WKXFfqu/FR5lZvU+h05rhk0OONnM1ZkM7x+bYB/1S0h+Kjd6+z9X2bv5c/ht/78nnbX VAeadkV2E9M67S2u6ZZaTtY88Nsrsb/MX/u21eyz/CovqZ/TCTk78vDY0kZDW7r62D/uRVXu+0VN /wBIz/wNE6n9o0/aMbPdt3+n6fHuj+wsf6u/avt5/Y3qfsbf+k9T+b9T8/8AZc/pvV/8C/7lf4JV DIkmoGMf63DV/wCDJeL6h6LE61Rl4P2jpobkiYgEiD+66v8AnG2/8C/6f+C9RZ+Rm5WW3ddZtrB+ jq1odP0Qz6Tn/wCe9Zmf9i/aI/5u7/23LvtX2fb9m2fn/bvU/Vdu/wCl/gv+urZzPs22v9ox9s9M R6e+N3nv932Xdu2+v+sKLmRlMAZGQj+7+j9eH/1Ktl4P/9n/7SmEUGhvdG9zaG9wIDMuMAA4QklN BAQAAAAAAAccAgAAAgACADhCSU0EJQAAAAAAEEYM8okmuFbasJwBobCnkHc4QklNA+0AAAAAABAA SAAAAAEAAQBIAAAAAQABOEJJTQQmAAAAAAAOAAAAAAAAAAAAAD+AAAA4QklNBA0AAAAAAAQAAAB4 OEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAAAAEAADhCSU0n EAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEAL2ZmAAEAoZma AAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklNA/gAAAAAAHAA AP////////////////////////////8D6AAAAAD/////////////////////////////A+gAAAAA /////////////////////////////wPoAAAAAP////////////////////////////8D6AAAOEJJ TQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoAAAAAA1EAAAAG AAAAAAAAAAAAAAGOAAACAwAAAA4AaABhAHAAcAB5ACAAbABhAG4AZAAgAG4AaABvAAAAAQAAAAAA AAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAIDAAABjgAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAA AAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3Qx AAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABjgAAAABS Z2h0bG9uZwAAAgMAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdz bGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNl T3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcg AAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRs b25nAAAAAAAAAABCdG9tbG9uZwAAAY4AAAAAUmdodGxvbmcAAAIDAAAAA3VybFRFWFQAAAABAAAA AAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAA AA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25l bnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNs aWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29s b3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAA AAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAA AAAMAAAAAT/wAAAAAAAAOEJJTQQUAAAAAAAEAAAAAzhCSU0EDAAAAAAjsAAAAAEAAACgAAAAfAAA AeAAAOiAAAAjlAAYAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2Jl AGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwM 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 AAAAAQEA/+E6sWh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLv u78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJh ZG9iZTpuczptZXRhLyIgeDp4bXB0az0iMy4xLjEtMTExIj4KICAgPHJkZjpSREYgeG1sbnM6cmRm PSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJk ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9w dXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9qcGVn PC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0 aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5j b20veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBD UzIgV2luZG93czwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOkNyZWF0ZURhdGU+MjAx MS0wNi0wNFQwOTo1ODoxOSswNzowMDwveGFwOkNyZWF0ZURhdGU+CiAgICAgICAgIDx4YXA6TW9k aWZ5RGF0ZT4yMDExLTA2LTA1VDAxOjEwOjIwLTA3OjAwPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAg ICAgPHhhcDpNZXRhZGF0YURhdGU+MjAxMS0wNi0wNVQwMToxMDoyMC0wNzowMDwveGFwOk1ldGFk YXRhRGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29t L3hhcC8xLjAvbW0vIgogICAgICAgICAgICB4bWxuczpzdFJlZj0iaHR0cDovL25zLmFkb2JlLmNv bS94YXAvMS4wL3NUeXBlL1Jlc291cmNlUmVmIyI+CiAgICAgICAgIDx4YXBNTTpEb2N1bWVudElE PnV1aWQ6MEZFQzk4NDY1NThFRTAxMUI1ODBGQUZGMkVFN0VCNkY8L3hhcE1NOkRvY3VtZW50SUQ+ CiAgICAgICAgIDx4YXBNTTpJbnN0YW5jZUlEPnV1aWQ6NkQwRDVGMzg0QjhGRTAxMUEwMjlFMTNF M0E3NTgwOTg8L3hhcE1NOkluc3RhbmNlSUQ+CiAgICAgICAgIDx4YXBNTTpEZXJpdmVkRnJvbSBy ZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSI+CiAgICAgICAgICAgIDxzdFJlZjppbnN0YW5jZUlEPnV1 aWQ6QjAxMzg4RjY1NDhFRTAxMUI1ODBGQUZGMkVFN0VCNkY8L3N0UmVmOmluc3RhbmNlSUQ+CiAg ICAgICAgICAgIDxzdFJlZjpkb2N1bWVudElEPnV1aWQ6QjAxMzg4RjY1NDhFRTAxMUI1ODBGQUZG MkVFN0VCNkY8L3N0UmVmOmRvY3VtZW50SUQ+CiAgICAgICAgIDwveGFwTU06RGVyaXZlZEZyb20+ CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91 dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4w LyI+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAg ICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpYUmVzb2x1dGlvbj4KICAg ICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOllSZXNvbHV0aW9uPgog ICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29sdXRpb25Vbml0PgogICAg ICAgICA8dGlmZjpOYXRpdmVEaWdlc3Q+MjU2LDI1NywyNTgsMjU5LDI2MiwyNzQsMjc3LDI4NCw1 MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2LDI3MCwyNzEsMjcyLDMw NSwzMTUsMzM0MzI7N0YyQ0U3OTNCMzA5NTUwNDBFMkUzQjcwQ0RGQ0E1OEM8L3RpZmY6TmF0aXZl RGlnZXN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiBy ZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9l eGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTE1PC9leGlmOlBpeGVs WERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjM5ODwvZXhpZjpQaXhl bFlEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpDb2xvclNwYWNl PgogICAgICAgICA8ZXhpZjpOYXRpdmVEaWdlc3Q+MzY4NjQsNDA5NjAsNDA5NjEsMzcxMjEsMzcx MjIsNDA5NjIsNDA5NjMsMzc1MTAsNDA5NjQsMzY4NjcsMzY4NjgsMzM0MzQsMzM0MzcsMzQ4NTAs MzQ4NTIsMzQ4NTUsMzQ4NTYsMzczNzcsMzczNzgsMzczNzksMzczODAsMzczODEsMzczODIsMzcz ODMsMzczODQsMzczODUsMzczODYsMzczOTYsNDE0ODMsNDE0ODQsNDE0ODYsNDE0ODcsNDE0ODgs NDE0OTIsNDE0OTMsNDE0OTUsNDE3MjgsNDE3MjksNDE3MzAsNDE5ODUsNDE5ODYsNDE5ODcsNDE5 ODgsNDE5ODksNDE5OTAsNDE5OTEsNDE5OTIsNDE5OTMsNDE5OTQsNDE5OTUsNDE5OTYsNDIwMTYs MCwyLDQsNSw2LDcsOCw5LDEwLDExLDEyLDEzLDE0LDE1LDE2LDE3LDE4LDIwLDIyLDIzLDI0LDI1 LDI2LDI3LDI4LDMwO0QzOUMwMTNGODI3QTQ2QzBFRjRGOTI2OTY0OEQ3OTg3PC9leGlmOk5hdGl2 ZURpZ2VzdD4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24g cmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2Jl LmNvbS9waG90b3Nob3AvMS4wLyI+CiAgICAgICAgIDxwaG90b3Nob3A6Q29sb3JNb2RlPjM8L3Bo b3Rvc2hvcDpDb2xvck1vZGU+CiAgICAgICAgIDxwaG90b3Nob3A6SUNDUHJvZmlsZT5zUkdCIElF QzYxOTY2LTIuMTwvcGhvdG9zaG9wOklDQ1Byb2ZpbGU+CiAgICAgICAgIDxwaG90b3Nob3A6SGlz dG9yeS8+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRh PgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAo8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IMWElDQ19QUk9GSUxF AAEBAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS R0IAAAAAAAAAAAAAAAEAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAU YmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQA AABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAA BAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4 dAAAAABDb3B5cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAA AAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQAB AAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAAAABi mQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p ZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZh dWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAA AAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNpZyAAAAAA Q1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAARQBKAE8AVABZAF4A YwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDw APYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakB sQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKs ArYCwQLLAtUC4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD +QQGBBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EH dAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJjwmk CboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvIC+EL+QwSDCoM QwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8l D0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQS hBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYm FkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioa URp3Gp4axRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+ HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5Qj wiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYuTC6CLrcu 7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4M/E0KzRlNJ402DUT NU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o7 6DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3 QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1K xEsMS1NLmkviTCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLH UxNTX1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSU ZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25bhJu a27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2+HdWd7N4EXhu eMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSD V4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45m js6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfya aJrVm0Kbr5wcnImc951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaL pv2nbqfgqFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCsziz rrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDs wWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF3IrdEN2W 3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp0Opb6uXrcOv77Ibt Ee2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY /Sn9uv5L/tz/bf///+4ADkFkb2JlAGRAAAAAAf/bAIQAAgICAgICAgICAgMCAgIDBAMCAgMEBQQE BAQEBQYFBQUFBQUGBgcHCAcHBgkJCgoJCQwMDAwMDAwMDAwMDAwMDAEDAwMFBAUJBgYJDQoJCg0P Dg4ODg8PDAwMDAwPDwwMDAwMDA8MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgBjgID AwERAAIRAQMRAf/dAAQAQf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEB AQEAAAAAAAAAAQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEU MpGhBxWxQiPBUtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0 VtNVKBry4/PE1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +Ck5SVlpeYmZqbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEF URNhIgZxgZEyobHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidk dFU38qOzwygp0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhY aHiImKi4yNjo+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A95NrN6ss sMNtMBUsZGOx+WbrhFWx4ir2mv6hNKIiHhalSpOROMKJpsl6fVRpp3XfdQTkeHuZ2jYNSsRMJL15 AOkI8fnkDA9EgjqiLuZGvIXtRJEsg+Ji1a/LAOW6T5LpNQEAlEvKSQbq53qPDAI3yY2k0upMZKqj kd6GhGWiC25dVQBk4uzihAf3wcG62vN3bh1mSlvMvVt9/ux4TyXZa0sE8haYqwp0DHrjRA2Xa0RB Y6PIatOwLnYliRU+HbImUu5IiCmAgs7QqBMOPY0ByPESmgHST28TivExFRV69SfbHcqaS25utNKS Rmz9VZPhZlrUV7jJAStjslkWm2ZctDbgqNviqTlhkUCIQJ0+yivTOp9KQ7FATTb2yXESKRwi7TZr GyvojHLLxkA+Ag0bIcUgWVApBDYy2FwrW1/LFHHUvA/xBvpJy0ysbsBHdOPXPMOkjBz9rsMjTJZP EbtCy3oilG6kNQ4Aa6IItLIo9TRuM9wzxAn4w1AR265I0gAppbrFI1JJDEW+y5NT89sidmVC2X2k clta8opI7qIHev2hlEjZbByanhS8tzdWE7QODSaJiACfbESo7oO+4QSSXMVvy9T1nqQ8QPLJbEo6 IeeSB03E0UnVv2AMMbVQOsizQRmdmWvbc/ScPBaBKkE/mZVfisbMD/LU0w+GjiQD+atRa49MEfVl FOLAhq/PD4UaRxklBXHmJ7hpEkEuxpUj4a5MYwGJyKP6SdVSKOZow4oQigkjxrjS3ScQWqyBZZro PGFqeTnnX/V/tyJPkzAUWtFu5P3coNRQGlGp867YmVI4bU5fL0sCpI9+8sLb+mzcj92IyAnkjw3S WJSJOFuHWQ0LMTUfPfHiSQg0gntZXjF8qI1GWMkimSKAKTNoLHUI1+sXEbMn2iHoDkeIx5JIBU00 TT7UrJbtVFIPAE/1x8Qy5oEAOTTafC7PJVW5ePUd8PEnhC5rXTZEVTA7NXryIofHB61oKUNrHHcE xO6Db4Q3w7e2S3KiIBZAlvHMoH1csUHxcSfiHzGU8XmyAUJbLTJAv1d5LOUH41LGlRkhI9VMQoFL mOKTjSRhsgJO/wBOGwULbK+voqi4ItqGigtt+OJiCoKfR3ocGORPUY1oy7qRlZCbQAcFzRGABpxF adcnSEV9XWYFVX4iNwDuMjxEJpA0aFzHcXBicH4Q1QafPJ89wEJXrmlsA0iXBmkYcqRnent2yWOb GcUh0y7lgqR6vANwm9U0PjX3GTkGMWZxWUmpW0c1jdMjAV6bHKTOjRbKtfplxfRXkD3sjrFGxV4x WhHQHGQBGyYmiy+7s/0kiTxR+jLFskqfHyUeINKZTGfC2cNhJpZ3smZ2ZmQbPCV3U9K1rkh6msq9 zJdR2sdxC6ty3JHWmCNE0U70oCLVJ0jd1IR6mPgaEj3yRMQvCSjIY7kKFeFgBseRqTkSQkR2TVpY 2RI/RIcDY132yNM+a1fVpWQbHZTXphWu9WezoEm9YEMAStOmR4l4Qgbq4pQLIw8d6V+nJBEl8JWY BTKajoCaH78BKjcK09vOq1TZu7dQR9GIIKmKV+lP/IeXLl3+14/dkmNP/9D3YtrqTx3sem3ASS7R xZX7OsoilIPFvTK/FQ9s0WP2ukdp4h7wf0H9bqvz0hzpitto35x27Fg3lnzIyfa5erZO3sGBK1Py y8e0eLJ/HOB8wCz/ADYPUhG/pzzrpEZbXfym1navOXRLy11COg7lTxcV+nLB2nkyH93qMZ/rDh/Y yGoN7SCyL80/y5jTj5gl1ry3MhpJFquk3MKo3WhlVGQ/fkxq+0+cRjmPI3+kJObN0ALP9J83fl9r kYGi+ctJv/5FN5HG4B6fA/Fsw8nbPaGL68NfA/rYnV5h/Cnk49GIGy+r3CPQh2kQrTv8VafjmJL2 ozjnCI+YX+UJj+EMQ1G5m5O/+gJxrQLcKDT33AGTj7W5Rzxx+ZQdfLpEMTv9UuIirRm1k5D4wbpD Sn07ZP8A0Xz/ANSHzP6l/PH+awnUfzQt9EWZ7xbWX0qk2yXau5p4AKckfbMD/Jfao13k8yvf+cmd FhnZk8uX1zGDRpYpUAAHtxJ+/L4e18DzxH5hB7QHcrWv/OSGjXyqIPL+q2ZY15s8Tjf22OTPthgj zxy+Y/WyGuEuQLKLb86fLd9cBrltVVl6NSP0/egVyfox/wBGelr+7kPkz/Nx6gszsfzd8nSsFZr+ IOf714ajb/ZV/DB/oy0h24ZfIfrZjWw82f2uu6PqkUcmn6pHIJaUWm/0jtl8PazRnpL5ftU62Hn8 k0QXABKX8C7fCocAn78t/wBE+iP875KNbDzQs8c3xSyXVskZ+y7zItD8ycn/AKJdD/OPySdVDzSi fVbO0R57nVLW2SIfEwlVwRT/ACScl/ol0H+qfYWX5iHew+T8zvKkXP1NZtVB+H16SEA9ifh2ByUf aXs4/wCVHyLH83j70GPzT8qFyE806cXrQJycH8Rlse3tBL/Kj7f1I/NQ/nBO7P8AMXy4gPqavp0h 6n4xXfwyw9s6GXLNH5shqYd6NTz75WuyYpNWt/iJ4qsg3GWDtTR1/fQ/0wZePA9UzPmHy/dNFHBq Vn6lKRKJ0Le1AD1yUe0dLLllgf8AODPxI94UH8wAI8I161iETFUX1o+Ne9TUU+nLPzemvecfmFMx 3o3/ABHdQ2yrb6tp7yL8VBcRdO5pyyUc2CRvij8wjxduYVoPNNy8fGS5tWmc0dkmj38P2skTiPKQ +YZifeQnMV99bRVmmQ7fsspr9NcbiORHzCeK1SOK0WUyBPUegADbjCCT1Ts3cOokR7W3S1I+3xSp c+NT0yUYnruqV3FzObirQvKpX4VEZ6/dkhAhG9rH0q81ECaWJoIenCnUjvg4uFeG0YmgWEYSKYtF X9qhJB+YyHiFeAMht/LocQLDPHMgXehIP01pkDlbODZHfoRUlHJ1hjiO1DsaeJyvxUiC82MJmCye koUEqy7kDBx7J4WpbC0kjMUXISMTVmUgbdN8ImRupAYzd6LdskcP1VrmMk85VoAPDrvlwyBrMCxq 98h30zN6LLCjmrpUggZbHUgNUsBKGj0/XNHliWMNqNohCMv8o9yckZxmO4qAY+5n1rdwgI08D+iR 8dADwr1OYpgejcCnDWOmyiP0peJmNVYqB0yHFIMqBQt1oysxCISdqlDxJGEZSgwSkNc2Nz6UUhAW gKv+qpyzaYRuFU6ldXDGF4Y5ZA1GXiNxXHgAWymdxaQrGj+k0VTv6Y2r75ESZEIcWUd4in60rLGa UI3+kHHi4ejGrVobUhyhdY0r8B7bYCUgb0un0u5VSTx4CjfCev04iYtTEqcVrNGjSxoQy7bnfCSo CyfSptQVmljBlYDj8XTET4fcpBKGj0i4t1YySboPs0qD2yfiDojhKA1TT1lhV2DRnejpSh9iMMJb sZBE6NNBYW9vHDIVdqhw29ffBkBksTQ2ZHL6Y4M0dUNCzU238cqtnyTbTr+ykLRLKIynQKev0ZGQ IZxkCnLWtnMrH0VkL1JJHWvjkbZ0ClUmjwRozIHhKfZQtVN+u2S4ywMNkG+otZwFHCvxbjGQOgwi IKLoKdvfPMvOaRqV+wAKAD6MTEDkoKya9tjIK1Br9rDEFBkF4uVkUsDVF+z4nFPEh2vkUmMkivz7 ++PDbG0LJMhUhlVzX4RWu+EMbU4gzcjPHx4EFRXCfJKKgurtpq+sY4gdlHQ+GAgMrNpv9Yj/AN+j w+nIcLLif//ROo/OP5s20koja+toEJkjhWONg3E0ADEjPJSR0k88Yz6qx/N/8yrL47yUIiGklr8C yrTqeJ/Xjxk8pLZjzCyP86vOl5N6UWqPZty/eGixbdQSVB/WcTx1uUHKSn1v+an5gyxyW95qM1xA 4BiZ2R1ZQd6823A9xkRmnHeMiC2REj0YtqHmT9LF49UsdMFwrnm72UJdlPShji2+dczcXbOtxj05 ZfP9bMZZR60lcV1DahDa3V1YgNR/qclzCGqelAQozMh7Rar/ACghk/rRH3jdP5r4/BHS3+qlAYde 1JOeyiaWGSg6blmB/HJDtbSZf73TD3xJH2MvExnnFjUupam8rk6w0kkY6PyjBI/ykJGTMeysvKWT H7xxD8fFhxYpd4bjklQFX06O8lkA5lWimFG+Ko50INNtsgexsGQ/udTA/wBa4s444DlK/evj1GC2 CxyaZJZ0ozr6ZUGnTkwVvuyvJ7OawC41Mf0ZAr4c+4H3IiPXoZjIJZrZoWBVUEUQceH2gvTNfl7N 1OL68ch8Cw9d7hTeWGJmEepP1B4RQBAQRvQgkbd8w5RrmGFjqU7jit3tnmt49Qu6H45IWReNOu3U /PItvBCu9X07VIoSr2EF6C/2v9IK7r4gChOAypA4RyCeTeZdYnipcySBVUqA0tEJ8WWorh8cnkiZ A6Ma1PVLyVAsktvcAgqAjuT7VHLDGZPe1yn7kBp97b2yML2siPUMfjcbb7KckRZ2YifCN0wjl0qc MbKIStHV50aPgeJ6D42A29sBsLEg8go/WIVM4OnrCLbaaWP0Q1PDcNWvth3ZiYPSkHc6tAVEZ5qG 6llUj334LTBwWgzA71AXEDjkrOvEUB47beFDkeFSbGzK4NdfQ9BvtSsrb1zLG6rGaepsgJYMQVJ6 0BWmejdhw0+PTwIxjiIsnYn7nYYMVxEu9JLrX7zWYLK4u4I45DboGcALIwpsJGjohp4hRmh9pzGW WExEAkG/OjtbTqY8MgB3INJjIxpbWkfMdW4qadOvXOYqu9o37gqSOpiZPWhNdxRyT4bHegw3uxmb 7m7WCS4G15IqofspyI9zUkH8Mkcko8iUQxk9U/tYp4AoLyepT7Ww79KhsI1GUcpS+Zb44yPNNU1D UYC31e8ulH++kuJAvzIU4TrdQP45f6Ys7IClJqHmNtjr2pwrX4V+tTEbeBBFMI7S1EeWSX+mLTkn PkSR82rnWPMtvbM9v5j1mQxxlkgjuHJYgfZCluuW4+19XdeLL5lfFlX1G19l5x82SWUV1c+eb23k NONot06cCOzB/iY+PbMg9sa6J9OWfzZxzzMbMqRM35meedP9OKH8wNVmeVfg9K4BC+5qlB8sMe3O 0P8AVZfNEtVkHKZLn/Nr8x4wyf4p1i4mXYiRIXTfpUmM5ZHt/X/6qUfm8o24jbUf5x/mzF+8XXpX bcHnZW7EjwFYv15aPaPW/wCqfco1eb+d9ieWn5ufmzOYJr/zXDawDdofqNs8u/Y/ugoxPtRrRsJ3 8B+puhqsvWf2Mlh/Ov8AMaEv6XmGynrQM8ljAQPbZVwD2p1w/iH+lDaNXP8AnfYv/wCV7fmMpaR7 nSJilQedgvbYfZlU/hlsfarW9eE/BmdXPyKS3v8AzkR5wtba5uI7bSbq8+EfV2tikZZzQtRZi1FG 5zKx+1ersWI17i1T104ixRTGx/5yG12GG3a9i0Q3Ey8pYFWYLT2AZjkz7X6q9sca+P60w1xAF1aa Tf8AOR14xSSLR9OuWj+zwaSMKPE1yQ9sNQOeOP2rLtDuAQUf/OT2tm4Lw+V7J44tmke7ZQzV/Z+E 7DLR7X5OuIfM/qY/ylK9o/ai5f8AnIXUdSiWaTyfZwhjxa5GoEip/lBi33ywe2ko/wCR/wBl+xsG uMv4a+Kv/wBDFG2S2j/wbDdXGyq8F+ASAerkw0GSHtpfPD/sv2JlriOUQfinMX/OSscJkgu/Jd16 hp8CXsLUB3r8QGEe2OM88RHx/YyHaHfEodf+cjdEEjsfLl9GerJHNC5p375cPbHB1xy+xfz0e5FJ +f8A5WuIDI2haxbyDenO3LCnehcbZYPbLTf6nOvgv56HcVlp/wA5FaDGkwTTdZltw3EM0dudx4Vl GWn2u0R5wmD7ljr49xr4J3p//OR/kSeMpdwapEzsQAsCsQfFuLHr2wn2r0d8pfJlHtDGR1Ri/nn+ X/FnTVr+3H8stm44gHuQTTJj2s0B58X+lZDWY+/7Efbf85D/AJaSKrzatNIrD4ZEtXY7bHbCfaXQ 8uKQ/wA0shr8Xfay5/PX8rpLkKmuNwdAPitpQAx7HbbL4e0Wh/1T7CxOtxd6Hk/ND8tdQS4hPmK0 sbq3UufWEkR4jpSooa+AzIj7Q6Gx+9HyP6l/NYj/ABJ7Z/m75Ae0Tn5q09koFbmZB7dkxPbegv8A voj5/qZjV46+oIufz9+WojE1v500ixmNG+Kahp9I8cnHtvRy28WJT+YxVfEE1s/zV8nwcY7fzjpV 3IAGZBcLv375Ido6SX+Vj82UdTAfxBncP5g+SNRghf8AxPpEUsgHKB7uINX3BIyP57Tf6rD5hv8A Hxy6j5uk1fyev+kR67pc/LdkW6ibp7BssjrcMuWSPzCCYc7DHLrX7EyS/Vru3SFuj+tEoA8d2zJj lxV9cfmGs5AqaZd216rPJc27INg6yxsfwbJSnDoR80xIlumUt1bW8dI5EmDfZYEH7qYg31HzZWAg C4k4l0civ7K1r92T+LAI6Kzhm4v6bxqexUgjASWYCJaxtVjdjydF3cmpI+jrgsk8k8IS+XhCyiLk VpX6PeuEBiaQ1B1rL15/T0yVo4S//9ITcT+ZUM9vY2N5JKWJWW4ChSSdwoDggnsM8f4Y3ZLp6kdh zY3N/iC6uE+saRKZUfi5a3BJPcAhm+/phAiBsWmUZXuLV5vLWpTTm4u7G6hSlS8MKhlA7qD198Ec lCgmWLyLQ0TXLB0jsYbi8tJ/jKqFJoehKt9gnuMkSJc+bHglHkvGmXNnE8s0cltMDyaFmqWPiKbf RkTLdgYDqd0qF9NcTrH9VuW4PxRFc0Yn9k7UGS4RV2ir6MkGh3SmIXOhX1tHMNpTV137bb5CpNoh C9wqy2traEBtOnMlAFBidixHYAjAYy6ttQA2UX1fTrOouvL19HGNjKQka1HzH68RAy6heKA5gqFx 5v8AK1hykudOltiRTh65qfbimxyeOGUH0H5bMhkx1dMfu/zA8p3Rdv0c1yq15IIydz35Mtdvnm2w a7tDF9OWQ95v70T1IjysJamt+UriITwW97ZsOrQMytX/AFfiAzO/lvV8ssMeT3x/SxGqhIb/AHNi 8hosllqd3GGB2uIkZxTpUGhGA67Q5dsumo98JUvHj7qTi3bV5OMto8GpCRfjCxSQyAgdPhDD6cql h7InynkxnzAkPsZRMJcrC+W51y2gKz6DOEnB5OqpMQDtXYVH04B2LgyH91qccvfcSpwSrY/NEeXF S/vk0+ae4sII1JluJVERVTuFDEGpqdgN8uh7MavJKhwV3g8Q+xgMM4muney//DF1eXogTVor9pvh hM0kjhyfsghuAH6sM/ZXWR5GJ+NMjiMuX3sbvbG5t2u7SdLGCW2cxyWr2zK23fcMO3Y5zuSEsUzG diQLTRBrb5JQ0NkxiimmiZzvEtuH2oOykhh92R4iCpINBlmleX9a1Ixxn/RbSOEcLrUY47aD0l3q JZ2QH/Y1J6UzMw9l6nPvjxn38g3RjKX7Wrizi03U5dOkYXkkHxJe20oS2aoDDg8gQtsRsFzOz+zu pw4TlmYAAXV7shhI5rr4NNomoRiIqVMnIMwZlrGv7Q2zfdjSH5fH7v0l2GIVAMW06S3m0+2OpOze lGBGVKryGwqSTQ+++ar2iO+P/O+9xNYImQJTxZ/LYRaW91MXIDemymm/UgbUzmqLijwx0TRhbW80 X1bT/rsb/ab0GBQdt2ABP05Ee9O3QI031/ulvpH1WOOhbjMi7+4J+nGgz3HRLL291AcWfQVmVRUs zhwW/mpH0ByQrlaJcVbhj8mqXXOnoR6dyoeEfP7qMfxyXCOjR4pB5UiP09qLrwW+NASI6FU9vA12 yPhjuZePPoVFfWu5TJcSzuo3DqeQ270BAx2HJhGJlzRbWejSBGuJW9RByqyHj8xvsceIjk2eHEdU RAunivo6vAgpUK8LL/wyj+OAg9yaAG0gmM5FvA08ep2kqMQOXqDqfAMev0ZAC+jOVxFggpYb953M ar9aKgF1SFifkABvkxBjHKDzCYRXKx/DLaXPiaQS0Xx2C9sBi2Ax7j8lCTVndTbwadMhlNFvrlX4 0HYxxKzAfPJCA72Bn0A+KYW9vo80R/SXm76u/ThZwCCjduTTitB8hkhADojhHf8AoQQ0W1aS4l0/ VLHXook5PHdoZXUVoSODBep8MSa25MfC7ils0MEheWT9GWLwEK8KNHbsw9lNK4ASWMo3vyQkt4LS omWWCBQC0pSNVp0HEyChrXCASxOyq2u3wdIoxC8QH7sTRxAkU70oOmDhT4h5UoTao14v1d/qKRtT mwVEHLwLGnGhG+GjzSMh5bMh026ijiSGdYEaoKvbxesjlu1Y1YAj3yshujMcqRsxvST6ARgfss0c aE18BufwwBn7khubG49U+uYYXIqGAc+37KjDxU0ygeZ+xuOzV2HO/eQqCKUodvnvkeI9zKonY2oS W0Np8Nwsl2JZAIZIbhUEfgGTeo33ycZcTGuHbdFz2tvC/GCC55oAsqo1AxO5oRWoHvgEtt2XAOlp TJDdLLzhnm9INXhMQ3EjtsBXLBIVuHHljnex2QcckMNx662scLwmjNEoHNjsTIHY1qPADJHcc0Xw nZFpf3EgeOO1haGQHlAaDvQhQAdsgYgdWzisbAIKRxbysIbSOICnqKyg7DwElaU+eHn1U0OiZ2ll e3MTPZvDddjGkaDgT1DKV22yEpi90xwn+HdaNF1K0dGubQxwfsXDJRVLbUYkU+Rx8SJ5Mhile4RU 2iXbUJ4jltswB26dBXAJAKcJtCzrqVvTn6cscq8RcsQoJXqCT3wiMSsoSpDpPqsi8IvQcCh/vAR+ JyQhC2o8dbUib+K+1PTJ2e7tzC9Y3goVKBftAEk1rjGokGmYMpbWEr8qXEdrGLSb4zG7AemTViNq EgbDauWZzZtdOeG4lls+r6XE6gy3auASwikfY9lNDlceIci3HNC6pVt/MVmqllvdQjPQulxIor2p Rss8TLHlIj4oGeNdUoutd1+8vZ5NK1jVhbRsEEiXUrUKqNj8ff2y6GrzQG85fMsJSnM3Eml1vqvn 2OR3j1/XYytGRlu5wAPpbLD2lnr+9l/pj+tgBnvr9qLPm78wreXhJ5w11RQ8glxMWNCOxr2yQ7W1 Q5ZZfMtsTl6k/ar/APKwPzM6f4r8xdfT/wB6W+x18Pw/HJ/yvq/9Vl82PiZu8v8A/9PpOo+areCN Lu38vG5s5mKRXMiOBzqQVViFBNO9c8fvydPKZvyS+fz5PBbIbvQY9IgRaW8VxaXDNK3Yhl2APvkg Ae5jLLIc7XWX5gaG9yyzajb6cOIZTLBJIUY+BWop9OEQLEZWVaUtjq0hvIfPNneLNs9o0RhianQU qDXDwC+abM+rMbPy95asit9caDaX1wPjWX12apB2KpWmXRgGMoVuz221zyzbxhrjTbVCKF1WGMjx puoyXEArD/MfnrywiMbM3EUg+EG3C0r4kMKZE5I8kcXkXj+q6lrGpu81ndTS21PhF1FE45dQRRh+ rMaR4vNPiUkSeXdV1RRDqME9+kh+KKIxiFvDYqflhED3Ujc9Vsn5M2jWzfo/QZluAfiWQFh4jetM sMpnqnYcnk2pfkX+ZVxdyXCaaYrMfCqtJGgC+PDkMyseQRjy3a5AyQZ/KrzVpamS5sAFUCjC4Ce5 JoDTIS1DEYQN080PRpopSdW05vqsFFk/0gFnruOHwivTclh9OZvZOjxavOI5JVECzXM+QbseHjlV Mvt5NEupntraXUbF7U8ZljmVz8Xag50+7Oon7MdnS5TI+IcsY5x6FinmzXbjylqktlaayuuWLKGt 2jlWKXiQK+qgXahqOu9K5yfaXZENPlMAbHQ+Xn5tGaeSBolV8i61L5jvr6B7NoFt4lleRnLlm5Uq STTtmx7DBxSmAegcjQnikbHRnflL61AmoSSTNNPb3KPAzqlY+UigcaFqU986IZ5/zi7Iwj3PJfOv mXy7oUzarqCXutasdStbO80+aSRYWa4JK0lSX4QFUjiykV9syJygQRljGfdcRY+PVxzi4ib5FmUn 5s6pYXw0vy3odrpVqrCOQxQW0RFOhqU5vWlcphi0+MejFEH3BiMEQwjUPNHmO+17zM0+p3Sxx2tt LbNE3pgElmY8FABO534nIxyS4q4nLMAIg0lekag8E91KrzXYMZlJZ2dywbfYkU6V2UZDVYTmxygD RkKs8vi05RcCHqOg3i3+n3LGHiJBMzRMpFPhA6Fq9cxdDp56eMcU6sXyN+fMMMIIxAFS0nVbTR0E d1aRTNLGrqZ6VTjWvEEVJPhmn9osU58Bje12w1MxCjVsjTzFpt7DCTFZwytXkjuI2oPZU2+/OW4D 3uINRCW1BLbmfmhaya0QLRnZJjJQdtifwOSEa5tM5g8tkpnvtSiVvVgcLKKpM1EViehBA3pkxEFo lklFJYpL+4nJS4LjgS6xyoKAdfhqMsqPLqwEpE3bOIvIPmbUrRdUjsWuLd4vUhZrqNpJY+gCovI/ fTNti7A1s4GQx0B30HI8GctzbDiLfTyyTQxJOhpwevJR1+zWprmnIkdt2FxxmpImPVL+7lSOzRvT WnFWAQEfJhWnzweGIjdkMxJqLJI7HUnDyNPbxgqRWOEyEn251G3yyGzcOInohZvLsbkTtymcbBi/ pIajqFjpQ/TiMhDXLCq2dvFp3IDTIpXk29WglZQu4oTyIPviZE9UxiY/wpnJrs8RBZLhS46EUpT6 BkeEFt8QR6IVvM95wIJMcZqG5mpNfpFceAMZaiVUAo/puQ/vpGQGoC/BQsB136n6cO7V4sxupXOs 210qJdfWCqNzRUAAJ9+QpTGizOax6glk+qWMlOGjG5dwVMrygsoPXjxX9RyYh5tRzDpG0ua2eZ40 WwWLnQGVoyenQkmmG9l3PMUjE0n6rICPRkZaconjDhq+xr+GATtBhXVOHt9NkhRJ7OONCCQVAG/s acqZHil0ZEAsdha0tZ/WhvYlYGgWWMSKR1o4IIJp7ZZv3NFxBq04h1qytyzNqiXMzdYuLLQ+C0oK ZHw5dzbxwA+qyjk1yMusMcc8lSeDxwkfTyY4ODa22OW1U33rgq8cjoakFk3B/wAkg0ysgBmcoAS/ 1Z3cxpPK6MPsstCAP2SaAY0B0a7J5FRe15qzS1DuOMaUB+f6sI8msglTTSJJkZfrIjQdB6jArUbB QTSmS42YxykNyiE0E0DTbBaVnZ2oT0+WEzKY4fND3ugwxfvo7ZJQVHIxMS4HjxNa+/fCMh72MsIj vVpfHaQqpaLTbp2r8Eg5hSR4UXDZLWYjoCyC3EjRFP0PMjIaM06FwB13YrlZsNsLrYboqNr1Tytb YW7kFUnihoaHr8Q6/TkSe9kDMbAUmcMPmB7aS2ktZblJuplmA2NagA/Dv75G4t0RlIqigJW1PSoC ktrCStBDFNKGl70+IGpG2GNSLImcI8vmkNxfajcclkjtxFItGhXiU+e+9a5YAA4spzI3CTLpt6IG J+IO1PV+GqnttkzMW1iB7k5g0GV7SGSO6t5ZFBM/qGRUP+TyGR4xbPwzTDopV03X5I3oiuB6iqyl SN1LbDrvWuXkcWNqEhHI9Gv49EsEtY7i2MNxcAcg0XMN4mgYEVHfMePEXJmMcOYaeDyx8KpcWsVK EgEsPvrXGin90e5iNxpgf1pbHV1iDOWWBFaNSlft8q0qfCmTE+8NZjzo0EL9T1WoWPVGICioEp2/ HJCceoR6uklttHcvfzQrezTskZIkYsGappQAk4yIobMomV1ab/VZev16SlOPU9OlPnXtlN+TP/Of /9SNx+Y39d2hiCwRyP8AV7m6JKqd/wC7o1RTam2eSyxU88Mu/wCtJ2u7vUbxUudTkaBn/ezXDSNE nyUksa/L6MNCIYAGZZ5pOgaXcxtJd6hLJBGnwyxQcBudgSQa/KmY5yG+5vGEHmUruhPpEj+nSOMn 93IvxM4PQkA1G3tkgOJq+g0CndrrWo3Fv6jzUhUUWT1uO/gylqA5CQrk5AybckGdbjllEcvpzgGj kuxoO+4P44eEhrMhJkdhqvluH4p1tJHFDHRi7V8T2yV+TMAdPvZfb6/p8SDjolrdRybiUSBh93w/ dh8aPczOIjmU00/z+LX0vS0CNCp4qUUca133JOHx6Nhr4WeaX+ZFxM1LuNYhIKW8MRDs3hsAMshm MkiFozW/MitGJ9TjNnGtGb1biG2d9qqAkrB2qP5VObHFoNTm+jHI/Yk4JHps8Z8w+bLNZGijsFAN R6jShwa0YHqexGYOrwZcBEckaKZY5x2Ip5jeT0nFyyvbyyBhFUvx3B2oTTwzN7BkfzQHkW7Sf3nL olOjejH5k1hEWIyOvJ2XZjyoan42r9r+UZ2Ua5u1kEj89aLFLqltJInEtbL8daGgduv35zfbWQxy xPeP0us1mEGY9zIvyqijtNR1qNan1NOYDvTie2U9k5CchHk2aONSLOvLsrtJq8MkhkEbJx3KkceR pQyN0p4DOihO6dgQ+XPzyhaPSri6hhKTp5i0mUzL+2nIrVht0rvmXNrG7KtXdbLUUvJJlispkjZ3 PBVZiB+2zKNgf5Gy2O3PZLCh5jitNb165lk+sWdxpNq8C/CsatDs4UOCp5HcVGRjCIlYG9b9xbKP BvytLrHzR5glv7K8s/KWqXtlKdj9TufRkJPw+pIAiqjCvJo6GnQ5HPw5IyiaFghj4RIobvovQ9M8 461Pqlxoq6LYae0NJdBtJHtxEeAqIvr1ZWHIbsXbc9c1ekh4EYxI5fFsjppCPQV+OryzXdVsvK+s yaL5+unS+lSN9LttJWC+t40c8ebyu6ItDtQCpyc9ZmhIcHp79gbHu3cXIAZcPXp3fNMLXzP+T9vG 0eo+ZNWsrihb1bH0WoFFCDE7AGrdaNjl10Zx9eMTPnED7i40sJBqRhSa/l9pvmz8ybvzJb/l/Zv5 vj8rhH1G6tGiZBDKaIxWYxPUbBvA981uX8gQOPDKJ/oy/XbXj00cpIiL9xr73p3lbSNX0u9ku/M1 hLHNYSlG0eRT0RgHLBuccg9htmZoey+z5nxJcZHQSFfHZjHSAHYcuha82edvLmpS6vodvottcqsq Q215bR/VZoGLAhuQCgKdwVVdx+1m4nj08eHhhG47jbk5EcEdtkkHmfV9PttC0eG4WHT4PWihjCkt HVXaqMSxUk+4yzHrJkfFtMBaEOoxXVJGuZpr2cgXV1MqSHkgC0JB5E+Fc877QxzGecpA/Ue91eXh s9PeqWt9axXL/pC8IjjBaPlEV+HoBXidz4ZhmJI2aBQO5T+21cSCtvaXLokfK39B+QfboVBBHzIy HDTkRn3BuC8lvE5s8FpLuFjuzIjV8PhVj+GDYFkJX3BKn1O79Z4UW3jKGjXBjmEYau4JalRTvTJl gSb3CCudUvkLn1o3YUUGNq1r22UYiILXxk80H+kLsBJHdak7Ar4HpVuhw8AvZhxnvRZn1u4AldEM K9SqqBuNt+nTHhiy4pS6LoZry0hErKm7/ZCqWb6aHrgNHkoJAVpdSvVIins5QZACho4IB70r2x8P zUyPcvi064ug15JLMqkU9JOVRXoODHkfmBiTWzKOMne0I0c1p8QDiQ19IuWTlQ9q+GO5Yyjw8+ab 2NzFJHW6nVJeZAQKa7Duw6H6MTaAb5o+JdFdmjFupViDLK46nx5UrkSTe5ZxETt96NSzsCAEgiKE UPGhrT/K6jImTPwx0TCK300UWUMwG4Rwx2HviTbMY4Vs1NL5fVnia4SEilNyRWvT4cFIlGHIrFfR pi8dtYXN2EA5TRhgi03qSSNvlhAJ2G6BCJ5BCz6L9biMttBPAGH7sFXeNiN9m/ZzJx6LPMXGEvkn wT3FKo7PUrepnmSxA+Dg80JLqdiQC5J+7Lv5J1B/h+ZA/SscWQeXyS/UoprZk4anYJC4Jf6zchRX sDEvLr45LH2dI7SlEf5wRPHKPUfFC8bJlRjrunQO4ooiMrAdiFPA19sP8n1/lIfM/qYGAreQR1qD YyIU12OZODK0fKdFAbaoohB2PcZE6OH+qw+39SgRj/EEzgg0ZzE1zeSSChFyIprhig8RyIB+RGD8 tiGxzR+R/U2iMOd/e1HPoajjYai8RSQq/qCRkUDudzT32pidJi65R8iyjOMerS6zZSMxi18SoTxa NVkZaHo1D06eGRlpMA2OT/YlsjlB34tks1d9OnitL2fXlYhv9Glii9Rqj/I51FBXrhGDBEkcZ/0r VKUZfxfYjLbVNMulilj1i5SMLRVnsVZZSO6Mm9PY4Th0w5yl8v2oGSJ6n5I4XUEkUn+l6gjEkKsd ssYr4qG5/cTkOHSDrP5D9bZcT1N+5AyixSK3QX+oStvJJDxRWVgSKMrHjU+K5KtGOs/kGqZhyJLG NaXy5DewSSW1/IxUhBH6CgkivM1HU9KdsuxHTUQOP7GjKMWx3+xkNlcaPqVjtY3EzRvtNNOiSKSN 0WgpTK5HSxPKfzDkcWOceRXTaVoa+k0LyxtIByS4mEYRqV/Ziev0YfG0v8yXzCODH5/NabHSXRLa 3hs3aIAeodRdXck1qeUHf5ZHxdMDfBL/AEw/Ug+Hyr7W59GNs8aSabaeq+0QfUWoada0QZHxtN0g f9N+xaiOn2q9ldaPbSPFLZzzXiHi/wBQZ5kUDtzqCd8fFw/6l/sizEo8q+1T/SthWn6Hk4fWeHWT 7FK+P97y7Y+Nh/1If6Yo8SP81//Vh50jW476ZdPsZntPrBe2ikiB4iuyknYinic8klOB5nd58QmD sNmUWt7rFxI8UCwWkyD97FDZVNfBDyI2yiQiPP4uRHLM8tvguvtK8wXXAjVdSui5HK1hjkTiO6kR ooH30yUJR7gxnHIeZKXS+TtUiknjeaexV3pMZ2apr0oygg/fhOYd1tZwGuoY1qGg6haTyRpG06wK fj9PmpPg2woPHLoZQeezTLGY8tw3a/pPTbSG5u9La5RqiSNl9RVptRNwVFB2OGXDI7FlHjiLEVaX UI4uLm2s7cSksoRPTLA9a03p88gIXtZSchG5ARUPmmRm4Q2dpK3Boh6imX4GH+UTutPhI3GPg1zS M18giYtblt0f1LYohUEyKmxCinYVqcqOK+rOOS+abQebNVt9Me502aK2hJEL2vBWVko20wIAZqGv U52XYMuDCBQuzvQv5udpoxkLDxHVH1S+1iSW9viii4b92qqqvxPwE1Krt0FFOdFPNIjm7CMA9eu5 7aMW73F99UleFH5emX5VUVNQB0OcV29G5wIF7OJrQOIWaSg6kn1iA/pFp42kRaEEAqzBTWrb9dsx uxvTqQa6Fp0kf3g3tF2ms6NpiS6tf6Ne3d9Kq8mXVkghdABxVIpImAai1J5Z3OOEaolzJZJE0AFK /wDOPkbzbc2jz2fmHRpbWL6uY7d7K+SrNVSSeGxJzA1vZGLVEHxCKHc05YymdxyZh5WtPK2i3lzf QecvrpNjP9csZdPmgmijQBq1DSK436j32zB0/Y508zITBHLuZYImErPKk60/VfJ1nqOo+r5601Uv eclqoh1JVIJcBDztyAyk/EaU9828NJkNVXzciWeHn8nlXnPybq3mXUrqy0+40vX9EvRbvKbHUYUm JUcmKwTiFpGBUUH0ZkywTHTdjDNEFE+YfyR0S10tNf8APPmy98t2N0ywWFndrFaSD4fhUQwG79Rm A6Ka+IGYeSeSJ+inLHhGN8TDvy7i/Lz8t7bUJLe3vvzQudavSul3XmT6vE1qAv8AdRGnIq4+yCoN cOQZc1DkB3MfzGPDG6u+9jnmfQIrvWrySdG0Q3bxzWWk3F2nEwuCrspvXh6MDQICvatcE8xxw9A4 j3uLOc57gfAdzIfJ/kvyrY69Yi7822tnLcwEavqFpfQuljav/fSSvaNKECEfFzoN6saZTnnlywuE efft8mMeK/U9d1X8vvLP5h/mXoVvqPmDRYNA0y1S/t/JGmLHA19oTVKSWjhz9Yu7hkIb02NOxPTN VnvGCY8V/wBLkzlh8bJseQ5fjmUa2v8A/OOuk3HmOPyR+SvlyHUPKyS/XbXzLIDfmZQZI4ooLlvV lZVADEIKsaVByERM1xEmzy5c+XqbJ+GLEIxBHeyHzj5y83Ta7+XWm/lNpWhaBpP5jWES6T5QlrZW 95NND9Z9W4ubUJHFORJwjDhwCBQ8q5m+DizZYYoQOOQ9NXxb/wBYuPknPTkTyESEu4UB8Ev8v+Tv zA8jXd7p/wCYXlGTyrf6hO8+myT6idRN7EFAkcOVXgEeo40HWuZ+TS5dP/ecyU4MkclmLxZzINa1 KQcirOjDru1QSf2R+vLj+hjE/eyjVUVm0gUoRcSfa33FRUdetfDK8Z2ZyHqSq4t/KFzBd3rXI0O5 s2cX5bU4JlLRv6fMhAxh5OQCj/ZqK9dsKepziZAmaB5EAj7UjFCUbuviEm0vUfK2qzG20fz5OLyO S5gFjcohNbRecrlxyXgUoVk+yTlUskZn95ihId9cJPxDT4GKfXv6IgapbC21C8tfMttNNpfpi8sr hFt5izVDej6ckhkA2PIAChrtlGbSaKt8co/1ZWPtceejxiPED9qinnXkVS4kmDrQhw7Hku245bEC ozAl2ZpJbwzEf1on9FuMYD+cfiE7g83wScKXvqU+OL1lDcV9q7Zjy7Gn/BOEvdIA/I0kQl3g/jzZ Ba+YNOa5F01la3KcArwQuQWan2mryqfbMfJ2TqsY3hKu/mPmGREhzi1cXdhO4nCTwLF1SHg9GHaj U8cw+Ax2I+duPKvNJrW6uoZblWkia2LbG4qjkHpxKjb55MgEDvYA/JFs2pFuc8NpdWwk5qySo7Ab D4QF6++R9PQlnum6XuoenE1vp8kUUBLO5VnL+zvuB92Q2bBfS3Lql04Vru7MMnL+6UFwo7VG1R7Z I7sPEIPNbcardTsrXVzNcxgk26kniPHirVAFO2DgKJZyerSzQyKx5rHJToacj8qHIkEIvi97ubcW cRuzK2x3q30UrhrzRxUNwq2f6Vu3EFkjmatfTRWanhU9B9OW4sEssuGAJPkyhxy9I5stg0O9sY1m 1zzAtlEzhvq6MpZ6dhWn3AZuYdhxxx49RMQHdzLlx0pAvJKmr/WbVlf9FaAL6cEK2oajEscbUNAS 54g/flU9XosG2LHxecjf2NkpxA9Mb8yxnzJ5p846DZQ3MWnJK87+mmlWZIIVRVmiCx/GR2HfffbI 4+0cuYkRkIDyiB9vNq8bIOvyed3vmLzHqkeqSz6dYQ3sQjfT59Tv7j6rOCPiRkjT4XClX4fympxP ESDLJMjr3/2NYue5v4rzfwqyo1xb2UjRAXCQHiFYij1RQHPtQ5Xp+ztRqf7vHKQv8bnZr4ZS+lSg sLi8alhY3uoV+HmIZCGqOoB33983GL2W10+cYx95F/ZbLwJp3aeQvN9y6yWnlq8Wqiiyx8OnQ/Ea 5tIexuaQ9WQfAFj+V33kGYQflt+Zj1poSRNQCZJZFHLl09vu3y+PsJE/Vkl8AP1tscQj/EjI/wAl /wAxbiaNDDZ20jgsaTfCPnTYe3jmZD2I04+qUj8gkxjz4iiR+R/n2YL61xp0QqT6Vak8evbenzy6 PsVpB/O/037EmOM87KJj/IDzo6wsb6xQSisTFJAoqagVpTfrlo9i9L3S+bEQxCwvH/OPXnVZfU+u 2MciVq6gqafzHfcU6UyX+g3S1XDL5o8PF5qkf5D+f7UlbW/to+QaUlFkC9at0rTxyEvYrSy5xl8/ 2MhHGF0n5OfmerRouqQyu6gx/FKqAH9qpFKZUfYfSd0vn+xIjDvKgn5OfmbbkBJbNmZPhZpeYYD3 ZSfvyMvYfSn+cPigQhfMpfP+Rv5itWWSxtppLZuXL1mpWlevGlPltg/0E4BylJgcOOXMkqdv+Un5 kQq/o6VaQ+oeZ/e/F+O30ZTP2HxS/jl9ixxQjyKqfyq/M5yyvoUMzQ8WLCUArStCaEHbwyo+wUOm SXyDZwxP8TR8k/meVMX+HbdzLsgDRlnoaUBLfrplf+gKH+qy+Q/WpgDzl9irL5L/ADRhktzc+WFD oCIFMimgAof2jy298gfYKI5ZZf6UIlAH+JBXPkvz2k6XZ8oyQ3Eoo3o3HBX49fhDCo337ZD/AECy AoZjX9UfrSMUbu0L/grzxWn+EJ6+r/v/AP3ZStfteGP+gaf+q/7FfDHe/wD/1uvLBp1rE0XB9RUs Qz3jBuW+5zxaUoklwhEgKJ9FFVIbGG2ijNQibU9xtkCQUgkdFZLj92o5nj+yoAFTX51xsWyJkQoP qoCel9cTmQf3c7/D4GnjTJ0x4unVLJr2yMiqZLOacgAjkCV9q79OwwhZStbOmkXaNFd8BGoJBJ2L H5ceIx40gXzSz6j5MsV9ZbNJm+zsvN69BsK/fh4j3oIgEpup/LUC3UP6C+qzsf3aycFeUEbMpRnK n50y2pDq40zDlTHG1gQL9UXy9FaxcjxilmeYknavxCgG3YnJc9+JruuUUnvNY097Zobx7bTZ3ZWS 3B4KaGhI3AHXOs7Aj+5PX1ObpySOVbvMNR1DSoby6c3Ma839Xi/JvmAsfDbb9pznR8UQ7CMSd0z1 TVze6ZaanFptwtuaRQzBHInZqBUjXj3I7E5zXbGPiMa83G1uImiwrXdU1iz0fUdSSzFkNGWKS9S9 P1eR+bAIYI5Ckj/F14qQANzmHo9PKM+IAtekiRkBIoBnjXZ1DytoVxDALo3trBcMI0Lv8SUNKK5I qfDOsjcgPc3SNEnzYtDbD61FJLYrGFnQ8ZolBJSRDUExRkUptgIUSZncyXH6ShW2Us89o3qIhqfT SMNIf26gKCT7ffibH481FGJSPU25z/VSJCqmcemjOoozOSSBGw74RH3o4k98rS3LajHZNeSyWhDh LOZkoale/BCaVwEyqrUh6Bead5a8yS6Xp3mbUfqggWGTS4g6epesskKtp9vyJIeXlUEMAKZi6nJK FVuSep/GzZEAgCXJQ8zeUf8AnH+28wTW99favFqmmSlbjypLc+gYbhTSSOZQAC7UAYerQDpjDTZY YxORMr6R/a1HLjjKoiv6z3byL5r/ACr89XmkaVDpGnz23lW2ttO+qahpTSLYW3qbQC5dJHcAuW3b vUbZfpMGHLcMYMD0kd9yd9kSyzx0ZEEdw/W8Y8+2nkW3Nvav5S0/RrbQ7+f6vNpt1d2X1mskiOs5 glHqKwjFQ1VPhmRGGHGSJcR8ybYSEsgBFBgS6X+SuuJcwXnl+70+KBpLrS4bDW5rVtMmaUcn015R K0PJhuoJWhJp3yRjppjckJMZph5q8v8AkSbyJrNx5pttel13RIw/lfzhcNa3Gq2kKgBVe4RU+sIp IB9YV41pvmpy6SMDxQJ4f5v45MjluNTFnv6oaXU/rGieTdVsJ4/LV3FaJB6cMaakktv6CGGT6rE8 pjYt8S8qEMa07DEjjJvfrfm5gnxRH9r0by55t17zPZaO2s6vd67Hp6yLZX17JI0hLlVlUmViynkl SvQdtjmdAmq4id+pJr5saHQPLWieLXNbkjib07dU9VxuDyJFSaDwp1OZIPRxYD70/lZrk6REqq5l uXICnenGo+kfI5Di4YW2SHqtj9j5Jv7q81HzJpv5Z3nmrynbXFzD5v1vT9O53cU8v2FiM0zpIA4B NEHXpuMxBp8uTjljsgHc9x7mnjxQod/P3psuh+WvN+mSS3+jWnk3UrS/Uaf5h1XTItPihijVQlvL HMsUckjH4WpSqmtKjK8mc8VDu5dPP5uRjhGca+0/ckOl3UGvMJ9OFjpvluzZ473X/q0enwyCEsG9 BbyQeoA7EAhG5A/LK5y4fTsyiCeRAA60hbXzz5Z0CUxW11feZ79ZVmnDxB9OmoyFklDR25KKY1J9 NlWo2rlcpDmOXwtqlnhE3d/KlJvzb8raEmtJ+iJfNFn5lQ+noV+Ingt2oS0kHBPrKvViQfVI6YMv h5gNtx1pqnq8chXBd+TyjS7vVXtLlNHSS6ma3jKzXH7lgzGvJC/VqbdMxvEGI/UY+4lwhEgUDTOd EbXoWiGpnnGiVklilAdmO45KVYbDvXGfbGXoRL+sAftZiR6m2Tx3d2DQOzINlDb7V/HIfyhpZj97 p433xJij0nmEfDq1xDMJJIElA+zxZo6ECgApXCMfZeUc8mM/CQY+Hj6WE1t/NN0kcsS3Wo2kcwpI sc7Mpof2k5Cv3YR2Lgy/3WogfKVxP6lOH+korrFoytE08Yoa/wCkRlWev8zbdPbBP2c1sd4xEv6s gWqWnlVUCEfZ39wHRre6jeisEgR1KKhP8rAgZq8+izYvrhIe8Fo4Zw5hh+p/mR5c0HWZ9KufrVzq ts6fXLCK3DkK3xFq9CoG547jpksWhy5Y2OTZDTzluHqvlfzH+XnmH6/Kt8iyaXKkctm4nhYsy8yI 1lo0g3+Ki/Cds2en7KwQhx6ifwH43+DmDTwgOLIWZy+YQjPHpVnAtuqhTdRyxE79CwFKficGftqG KPBpYCI7yPx9rL8yAKxjZBLZ6hqN68qS2tsZU5IzRT3FSv2qTGMgV6gdM0GXNLNLiySJPm0mU5ck uuW1OGRjPptpcy8iRcNFKEI7kVAIP0ZXsx9XUPn3z3rq3nmttTsNQXSLnTEGj+XLiJWeF9QCk3Ua 25NJCC6FWIJFDTpnQw0vgYxjkLsCUxyoHlv97EyvkgfIflHTfNfmbR/KlzqLx6DYasE1q2Ysv6P1 RqjksxbkzOQUoxoFYUGbHs0jJqsQyVHjIFnlKPd3b7fFjGZHN+jPl/8AJvyXoCNb2ujQy3KDjHfz 0lfkOpPIHevv0z1mGmhHYDk2HMT5B6Db6LaaeggSO3WSJV5+miJsTtyqKAfT0y4QprMzzR4tH5Sq 5TgkfqRxrQjY+I3oe4p8slSLb5/WYF9IrbSBa+nHXj4fEp3267741aHm/wCafnWTyNpemLp0UL3+ rXHom4mi9QRQwqGeUIdmoWAGc37UdrZuzdOJ4QOKUqs8htfLv7kW+bLzzp+al2PVfzhM0U28Itbm 3gXj2pxCmlO1ds8yy+1HaGQm80h7tvuZCEjugodd84SXEn1rV7l4VIMqNduQzDt8L7qfuzV5O0tT Pnlmf84/rbRAkolZtdeea4S9vHVqMyfWZCm/QKOdFzG/PZ+uSX+ml+tt8IA2jW1PzFHInDV78M5q 8S3EvEL17Se22Tjr9RHlln/pj+tMoAm6UP8AEGvM7wf4k1ORp/sulzKGBFTsS1cuHa2sjyzT/wBM f1sRAHktGu+bCvpJ5v1xAF6tOSFA6bHfL49v6+PLNL5sTgCKTzd54ELQt5y1V5n6uCJOQNBWoFOn bLP9EvaX+rz+bOOKICrL5y/MuGvoeedQCECMpJbwvxA6b+n9OWw9q+0h/lpfZ+pjLF1CTXf5l/mx pYMjecbl0FA0rQRDlXqSDH1oO+ZOP2r7QP8AlT9jj5YyhuhbT86fzQeQpH5j5RLyMZezt2HiT/d7 GvhmSfa3tGA/vB8g48TOZoMhsfzr/M+S5SOS+h1L1AEhsXtYUJL7Eh+IpTIn2z7S6ZB/pQ3wxSHN 6nYfmP56eLncpZRSTbSxS26My+K1A2r1OR/0cdpj+KJ/zQ5XghMP8c/mBy/uNL/3or/vMtePH9f8 MP8Ao67S/of6Vl+Xf//X7bJpF1O5+rQSXofkYhbL6m1a9v7M8f1Giy4JcOSJH3ONIGPNQl0v6v8A DeLcW06rQRSgqxB/1h45SYxa+KXkgZI1BDKfWCg0/YHyPUk+FMrMQQgTrmLYrccfrEbTT3yBSSbP 92Y232H71WoPGmTGwajvvRW3+q2sESR/UUiJH2lNFqTuTwp+OI3ZeNQqmO3U1lcToPRNwnCpYyOl CP2dg1fmcIDUdzv96ZaL5Tj82JrK6Vo5nGiafLqurhpADDaxMkbycpHQMeTqFUVYk7A5kYcOTJfC L4RZ9yRES2pC+Zfy61nydFK+q6HqOiRCZIJri4jdAtw8K3CwsakK5idX4neh6ZZm0+bF9cSP11df JkcVPFfNvn+Ly9YzQ3N/BbLCtVW5ovMU+EpT4ie5AyzTaOWU7An3IMS8otPzY8va7FawSeXb6+lR ylxqMAeOMoT1ZgeNQDSp7Z1mljHS4xE0O/zcjFMQFck98vebPJeh6pZ3/mm0t2RwRcTSSM0or8UQ DUZQANmoRXMsamGUVBy4akB6bqv5taFrIitfK3ndPI9q/wAELWtjbzyA1YEm6eQyKaCtV49cvhgx xrxI8XvP6A2HWHpQYFaeR/LuvXa6x5g/M9dUsOLNc36wyXN+Rx5siid6Co6kmnsczvzcYxqEfgdg wjMSNyKfaja3Jia00DV7HVNIsWEdkl/LGjG3i+BGZeKhW3FaHvlXHxC9ra5CN7cmP2Gm+Z7YM0uh x3ILMUks7plUHkSDtOKjqaUyNy7gkAIu883+Y/LnmXS5beD6m7215bz3DKQTb3MLWsiglmADoxUk AnwwzgDQ6JjtaWaz5kgW/EepabdIXUMs8VnFPFQ823MkYYH4R0bDURzDHh7k78t+ZtLXVbRoLhJZ EZlWH6vLA3GgYkUunTsOq4PTLYfcjhL1Ty3Yab5+v9V0tESLV9Esvruk3N7N9Ut4LnkFV3kHMkAg EjjvSlRmFqRw113c3T4xPn0YFaaN53k1y/8ALk+i3moXGlSG5vrR9L/Stq4chjWR1WJomHxDjISN gRlk4yxwBjKh79/knaRNxt63p3+NfPt1Y2/mnz9pn5ZeVdJthpsmktf2liJIAOUZhtrOSNmcMNxI 1B0yiecgbAk96Py4mK5BinmiJooo7K2l+vWtoxjjvQ1PVVJHUMP3x+0N/tH6cyBZHm4Z2PuYL9Uv 7hvhhuFjCSAxMJJa8at1MLjenjjKBQCHr01jeavDaaXpd9Fpup30scFnqE4BihkJBDOKAFRShrtk SQBvuERiZSAHO3knmv8AJaz0uSOSfX5/Lus20Mg1JvLum6jdabc3DMCJIfRi4xHqW4FkJ+yozCyY hM7XXnWzdPQHiu691ph+UllY6MnmCzm84fpGUNBCljf295YSW7UbjxW84M/MbkotK4fDOMcurPHi 4BV2U31G6t9OuvMsqzxzLcWbTGEMtWaFSwJ41YKD1JangMzMcdh3tAG6S6V5gvP8MaBrFzPplhca tGt1olmLhpJJYySnMqp41Yo3FX+eWeFeMj71nMCXVDax5087xJAbLV3nggnaS4jjLW8TxSr6cSkI 0SmSMHqVJFBQ5rc0ZC4gAA7/AFD7Q1S1PcHj2uahJ9YW71m1kma6f1Zr55mug0kfsSwQ1FCe56HM PJjzgbkfAj9DjSySlzSz9NTXEkx+sSvLcThpCo5AoOIZAKELxBpmMYEBronqybTvK11cgm5u57CJ Q6R2sEoPONjWjsalSP8AJzFnquHkLURAZpaaFp1sE9G1jQKF4tSpBAp1OYUs0jzLO00WFUAQKFA2 BA/ptkCSquAFGx2I2X2ODmrRkFSOnjv2xpVxkIFOgHQ98aVa0y7jYsQNj+uuPCqRT+Z7SK11q6tn /SB8vIjarFbMrmIyV4Ak0XenbpmdptLqCQYXEHrdM44pHk8Z1zz1pU9/5f1u+sP0gbhJI7jSbO6k jlslYlPWkkhA5yAVKoRtXrnR6fNnh9eSUiO9yIgR2JtIvMP5pNfa/Y3ugWEmk6V5dBj8uQmUtdVp xM1xL1Mjjckkntv1yU5SMuIfj9aDIjlsy3yl5v1SbXIL240qwsL/AFmdBLr91byJFD6z1M00iLyK 160FT75SNPi1E/DnEb8vUY18N2jIRLmLfXtj5ZuNf0oa95c13Rdb0KKFJrnV5nk0+2jatGBnuP3Z CnwYn2y7J7J4jvDIQO8gV87DgekGtx9rBIvzUuNH1COz0dtUv5YZispsZg8BReQMiqzAuPh7Dcb9 M0v+h6ZkY45Rmfk5EcUzuJPQdO/MrUde0nVNYF2bM2sBjjTU7c2xlu5ABHBFK9ELFmUMakLyBO2+ ZPZnszlyZ7zjhxx3/rH+aP0olKcSAXgmqeWxPBrnmm0ivD9T1BbS98rOpmujeXL8nurFIzzeGJt3 uIuSlGqG2zscnZunkTMx3Gx33P64j5MqgyHypoVxoHmG4tdUSGVNK09Y7bzha+pdWd76vHkqskhj mkgJMcjfaVh1zk/aXRw0sYxhfqN9K239PuYS4Y7gvtf8sfzatrtbXyx5rvAl0qiPSdckCxpcIDRY 7gnZW6AN37750Psx7VjIBptWakNoyPXyl5+fVrJAfRHpwCCnBeLAjg3Tfdalt6e2+egIsrmjhiCo pjgQfC8gWjFmP89eJ+VMVK6TmTUx7M3ptxBLO1djtsDQb/dk1i8g/OnyVfeZvLlo+kui61oMrXOl LKTwl+EqYJCaikiihPjTNZ2t2fDXac4Z8jy8j0LZjomi+M7G5ivWuYJbf9GahZSMmoaZMOMkMi9V KMKMPA54n2n2Tn7Pnw5BY6S6H9qDcdj82Q2DxJKv7kLd/aik5FY9hWm7UQn7vlmqkzhkiE2udQ1i KFpUs47huhijn5GnWnw7ZWIg7EtxzGuVsWbXNQunKx842I+CBg23+SCwyzwuFrlqCVJbjW2dZ1nd F5UdD099q/xw+hiJTJ2Tdr7V25u2j/Wlt1BnmVqABtgWBYE1pkBAd7Pj8rS9/M84cqulqiV+AAuG LAbdGHTJjBfVgdUB0UH8162JUeL1FBajrwVmC96cga/TkhhjyQdXK9l935iub11hkWXULJH5y20s CwNUdCeLuD9++Dwojlsv5gk78k00rzBpttMyvp88D3BAAjTlsB8RahoBXv1yJxmrtmM0DyVNW1/S LyCa0hhvJmLL6jQxty4g1ID7AbYxxyG+yJZInbdh980jaiP0NPfrppYGhLtIoWgLGldvemXxkK3q 3FMST6bpOv03dVp+kX/l5c38K16de3j7ZV4fk2ccu9//0DKLUfzX8h37ziFPzF0yJwY9R0nhpevp GSa1tGb6vdAUH2GVj/LmomLFSFgtfqHmPtZnpn5v6L+YMrWL68za1bEtd6FewG01G14fCyTWFwqP serISM02q7DwZ98Z4D9jEQhLlsU8l04agsrRSMvGhc26luI/4siarp86Ee+c1q+yc+mPqjY7xu1z hIe5INQ0F7ZRNdSyywKduE1Q9egPEbZrLauAXuUmW60e2Dsqpzbd1uFJNRsKA9QMWI4QdkNc6hYh A/CxVt+ZABP3CgByQB6pNF9E+T/MV1+Vf/ONP5s/nRZaJY6z5kCwzeU9Hv39KCSHTb62t2vHKhuS Q3VyHKfttCF2rXOy7C08cWmnlkN5EV12iRv/AKY/Y3Y9oksbvvLU35nfkHbflh5pbVYPz1RfLGta t52huZYks/MP5h6rbyC0eFZAJpYdOC+q0iHhGrMnE1zbnSYZQ8Mx4pDe5fzpnr518gzMARXV8Zfm v+Sv5MeSvLa+f/LVhrfnK58zecNY0zyBaajqMV2LzQ9EK20uoSNIsdTLdEqh6UVhQ9RrNUZiPplw RMiBQ/hHX4lx5wAfTPnDS9Csvys/MT8jNK/J+2svzH/LHyH5b1Wz896ZDE99N5w8wajbxtoikQ1m HqX8cCBmIqHWikLx2MNDp5Q8KVSlGrPKVnz+PJt4ARw1uHhnn3/nCjzFpH5P/l5pfmHTdLn/ADp8 8+drLS4fNsfmc35N1di9ik0FNOjhitk9BYY5pJfUkKsr/vFSq5kSwDBADHGyTWyDjIjXV8n/AJsf kpP/AM44+YNP8qfmN5L1S+826pYR6lp0NxdQCylt5ZHiVkaylmDHnGylS3IHqNxmDPFq5GpEQHlu f1NUgYnd7D51/wCcLfO+lflb5n8733nzyfonn7yVosXmjzb+RFhJ/ua0nRJArLLdurF1mRXVmjdA oH+7OVFOdi0XhRviuXm2+Ga5vjLy75c/M3zFpWvaz5Vtdb1fSPLRtj5ivLP1JYLX67IYrf1yNlEr gqtepwSyCMTImgGANB6pJ+Vv546Anl9dXXUre+8yeX5fNPlvQ7JZdRv7rR4FkeS8WO15hIVWJ2Yu 3QV6ZVxykQIRNEXfIV8dym5d7DNb87ea9CvoLDU9Au9K1S1gibjrMDrcGKdFlikW3lVOKurB0NCK EEGmGMJwNmVpE5R6pjB+b3m+wnjj1OS4tX9GKWCK5RkYwzxLJE1GAJDoysp6FSCNjkuOcfNHjS8m d6N+ZusXqid9NUhpFpPLGgjUkH4S7JtXtvvkZa+MD6kjMe57L5L/ADO0TQfQnvtP0/WNUuHa5nkv 7XnDDzf7EbKQtAO5HyyMtXiyd4+xvhqxD9ofRqfn75F806cdI8zaHBd6dOVSWyWT1YGI/mSvQU6Z VwQ5xk5o7QjIVICvIvNda0X/AJxr1C946F+S0Gt6mjJJxtDLawNyHKj+jI1R2YUAyz94BfF8t2Yy YcnKLENXe8ltlayudOs1Qy00a7dXSLiNouEikD0+g8Mv49g4coi2MtN5pgmlEehaNdovqAvavHE/ IhwByUx9sNnyRQZY2veY5rqKztpBaSxD12uQIi0SIQPUUys6bFtqg702wkXsxiQDfcnV7591BrIQ 3XmeLSraCguLuxigjvnNAQZLxI4gBTr6cf04AMWIb+r3nb5N89XLldfe8o1HznFNrpure0fXXkiM LaveAtLI0oJEgldTI4oopUA77ZhZtdGI9Jv+iOTiS1YquZ72O3fmS/v7qZ5LmB0mtzGzW6NHEI1+ H0i5qSG75rsmsmTxRuLjyzykui1FNT07y95flvLaS00GWVLGxZU/dG4+KQRuFVo1rRiK8a1OxY5R LUZI+okkfj5sROdUDyTo2mqWJngsrGZpVYmO5TUyY2XsGHEiu3QVHicxfzIluSK7jEJ8SXUoS90m 9mtw0mnQAyD97Co9aSrU6sqqKd67Yx1W9X+hBN82PSabd25R49JESsfgkSJlKAGg5Kyg7igrU5eN QD1+1jwqkhuYeCMtxayCMkSopMPJP8pWPGgNOlMfEjLzZUg5NT1K0l/0i8u7JDtyKSGgYBlVTTj0 6EmgyQjjkOV/JSFc61rkEBkj10tIQHhSUIyyCtDRiBQ/qyIxYpHeKEZb+ZPNBaKMz2Uxk5KQByqw 6br23+ZyMtNh9yLCaweadX9L1rmCzRaH7Unpsta7nmVBApTY5H8jCXI/ayEbTq2167u7O4uobe2C wXMNoJmkc25eWhKB40dpGVfiooPucrHZ5MgBYHeWyOElIfN/mzyxpNrdWWs2+qyeYfin0C0i/wBF g4nZPriyENy2qF8O1c2Wm0WPECSLP2NoxxxjfcvBL/zTrOqO0Ftevp9jPaR29xpthSCGR4alnZUo Kk7nMsy2SZk+TGoNPkE61mOmxmaMNM4YBYyaM7MAahRuQBU4bBq2Eq3eqSeW/KuktENC8zaRr17J DJO2oSeq0EO/wIsTxoDJsT8XQbnwwZfQRZv3NIEjzBAZlp35h6V5N025hvEh1/WJDEqPVri3dJwz +oHdVPLorJULTpUZLHjxiRnKpSP4+zqiWLj5bBi1/wDmF+Y3n241DTr7VjoXl2Cf1OEltIljp1vG Fb0/ShicRKONV+GpbvmUZzzkRvb30AyjhjGiBZ+9LvLnm7yZaea49C0WwHmK8RbsDzP5g1GLRoLu SCu9o8lxBHwZRRFkPN9tu2ZkNDiGwAl5/sZCEwbiyjV/zmg81+VofL/lCGDSPK6lP0jpOqw2pV6u kYKrI7sULAq8iEEDqQM2c5yOIY8Q2DSMdSJlummj/nPquiJptpp2g6Lc3PlWN4tA14ySjUryGWI2 0lvLLzlAgWElFTiF+ywBOYui02uxbyok955dPSR39xcjJLBMHhiRXL9rKofza0PULbTYnTUtIvFZ 21DTbG2jXT7e6mCCWWGM0HGQorNSg5VYUBy7VaCOpH7/ABCVDajRHeB03a8WOB2lso6l+Yl/peoG xhlj1Aoo9e2uoGhlSrAUK1p0NaDfOO1Oi7PkaiJw3o3vRcqWigZCIIJq9j+Pk+7f+cavzLuPNun6 jpeuazpd7JpghbSLSO4Z75D8Qkj4SqjFU2oKEivhne+zOaMcfg+N4lfSD9QHd5hxNVo5YRdGuv4/ W+qTMC10GAb0wremQWoSa7r0+VBnUc3DWIZZRKjSM6ISXARg7BhuCreI22GHqgq0jRpCWkBdTxWG 2FCd+gUGh67YnkoeIfmB+TuiecjLqXryaP5mUEx6vE27PWnBkHUfQcwdTpIZ4mMwCD38m2M62O4f KPmHQ/NfkO4a3816W81iKpFr9mheBt9vUIBCn6c897W9jSLlpj/mn9B/QWM9Pe8Pkp2V6IQLjT7i N4pRVlB5xPXxHb6M4PPgnjkY5IkEd+zjxMoGuSaJqMbfup7iOzkk2iVzWL2+M0Ir8sx/Cvk5Mc9b HZ0uqahbor+rG60AimK1Qb0NeNQR71wcI5N/jHrVKMWo6xK5aNROeQVWDADxpv1wmI70eITyFqku q6olwgn03mkUge5R446mPoQCK/TTfAIDvYznLkYrpvMmnOqtFpy/D0HBVIP+tTpkhil1YeNj7kBF qOlMgF5pkp5lmZk4lSa18RXEwkORQMmM8wi4dS8tLJEDZvHEwPLkvIA9geJrgMZpEsSLn1HQ7WK6 bT0DXG1Yi08QkBG4+Hbp44IiZ5sjLFEGmLSajbSANDavYKSFkSP1KMG7mmXeGQ4xmDyGyI9LS+VP ro+3x5cJvs8a8unTt44+tHp83//R5FF5d/M38t3dvIPmAeaNBgllZ/J2rlpRGCT/AHLMaEHtwZP9 XOH0vb8CayDhPf0/Y4EMko8kUv5vflr5xuIvL35reVf8K67bUFrNqqSBYZT/ALst9QThPbivQH4f 8rN9DLDKOKNV3hyBljP6g9bgsfOOkw2+oeUvM0PnjQpCv1TTNanX1mhPa21mCquSegmU/wCtlvqj 1tsqQ5Gx+Oqa6V+b+h22pQaN5tt5fKOt3b8YNL8wj6ubk9OFve7284bxDE/5Oa3V9k6bVbkcMu8M LiTuKLM9RsNHvvWkitba3kZVb0pT6Z3FQFqWDfMHfwzndV2Blw74/WPLmxngJ35vKtc0qC3kdZLQ 2U1a+mSRUdiPDNMRKBqWxDjSgIpD5s/N38w7Ly+3lezsdI13y9ceXo/LVxol/as9qdPS+GokcIJI SZHmHxOTyIJ3rvm+0HaUobSqgOGvK7+9nCdJl5Z/5y285aR5w0/zZ5h8iWWqH/Ht7528y2sMkkRu 2udMl0q3s4i4k4JYwzyNByLUahPSubfF2mIz4tjcuI/Kq+HRsGTdiF7+d3kT8w/z8/Ka9u/It75I /KL8tINKsLHyLZFb1oLTT5Wu5Y+TmES+vcOQ7sQzJuatthz6nHKcchFQjWyTIWD0fUWj/wDOUf5H yfn1Z6LoUmpeTvKevatqXmTz3+YnmECa9utcksbxNM5RQ81itbKa4LRL09QqxC8ORycGpxcfFCxG RJJPMmjXwHRIkL2YzJ5x/Lr8v9O0nTvyx/NOx89XP5P+TtW1Hypr0ksdpfax5+883Q0tbqOzuJGf /cfaFpSKkx1HqNUkm3xIYhUDdDn3ylt9ibA5Ma05NA89f85x/kt5G1J7DzT5S/KW00jyjp+sysk4 vbvy9aS3ckxkNVcSakZKDcMKDvTIjIDqIQ4jtQ586/aigZBHeV/+cVfzBtf+ckdF/MD8z9LTTrzU tX1rzRrehWOptNqOuR6Kx1CX1LeJ5DJbXd0kcYVq8wfs0yGn/NYpjxTZNmtr2329/JjGJB3SD819 A82a6Pyz/wCcW/rl3pfnb81dZj86/nCbBUt5pdd8zX011FBf/u/UCWFpIJGjLceTFiCVWjPJk4oY +EXLeV87PL5BZC6He+zPPPknyl5ouvKXmLRpI9G8t+bfKkP5L+UXWReEHlix1fUbrzFdBiRwH6D0 lkD9B6tO9G2gyiYEgNjsPdZs/INlA7/B8t/n5+Qv5Jfnn570j8/T5z1f8sfy617QIPMX5lXuoQi6 1C4F3fyaXoVvptrzkET3cNlLwADLHFGrlPtZVmyYyPEO0asnr5bebCcAd3mX/ORvkXyh5e/PzTPJ mmasfP8ArmkaDoOjPr+rQxG9UQWscFjFO6KqyyLaehzl4BmYmoFKZou15ZPE4RIkbfj5U1ZYm30f 5z/JXyde+bfzTitvLVhE+savd+Vvyf0GaZ7G1jk0O1WfW9akMQjAhs0iK1oYzM/Fl2wZNADPIYjm TGA5Db6pfCvdbI49z9j588v/APOKDecPLHkjzL/hzUdYuvON8t1a+SdFKrdy+XYwBNqklwJWW2Ek lYovVjAY/FXahow6XUiMZCyZHlQvh776dwtgMZ2eG/n5+Tdx+VnnTzJp35e6J5n826BpUCanNdW2 n3rwaLZ3kK6hDbapO0KiG5itJonmQ/YDAnrmzOgycRuuHoetefn3rLHRYZ/zj7+VX52f85C6x5q0 r8sL62tb7QdPW61RbnUX08Nb3UnpelC6bkuAa1oOIO9aA5GLSE/SsISP0l5v+YH5beY/y18w2fl7 zlp8GhaxrFrFqmmJbXyXf1mxuHlhinV7K4losxiZk5AErxenFlJjlM4D1DkxPGOaG0zTNW9UrFrl xDIyVZZppdhQg8eZ3JBNOWYktYADsoyyZ5pltfllhg8w/WLma3cQlPtmppWu567kZRk10gLGzE5J nqyC28qahFEUmNtfXRjDC/naVquzVZWWgYgAU+1TwzW5dd4hsk/j8dygDqmqeXNUWZ7hb60UPJ6n 1OGF4YY6gABQHLGlO7ZSdTHuKKATSw8vBIfT1ORNS5BlMfpCOEAnYrGO4ApuTleXUk/TslN7bTra 0qLa2it+RqfRRUFQKdBSmUSyGXMqjAnxdas3QDwyKrqBTyWlG3KkdQMVcwWoJqK7sQfvxYt+mpNT Wp79cbZKbwQOrLKiSIf7xZFDA19mBw8RHJUpvNP8uW0JnvLGyghj3LlAoHEV240yyOXLI0CVFlJE fy/LPa2dvB9US8WVbTUWSRwZYwOAjtlJlkFTSqigzPw6XLP6jQbo4ZHmwE3+kQ6Vqllr+pS3OuPK Bp+gfU1e2Chd2IqHEZJUjm1a7gUzYwxY8e9bhuEYw96VRXPm7zTfWmn6JNPqF/HI8kVvbCVpIi3S ZZE4KigDgOPEAd8IMp1sfgjiMj+pnlp+VFkNUtF88a3da75iXmbbyPpDG+uw5LKRNNVkjoVoa9u+ ZMQYjhJs9w/Sy9538not1+W+in0op/LFl5a4cvW0mOJdQlKn7B1C7SWMRmnRVPz8MtMMmQ78Puqz +hB32pDR/lb5estPgupQbK6v0b6vo/rXMTSIp+3DBNHONjvXiF+eDLpJUBKrHd/axMB1ecaj+S99 xu9Yub57Py1JQw3bRJevEeiANBKoFa0IC++RyYDEAkEH5j9f2IMPgwCfyDr+n3s0mnCK+W3lS3je xdLqcvOtFrauFkSveq1HY5WMPEKsHy5f2p397DNaOpWQOjXFrNZXgQfXLWaSV2YnoTA5O9TQEjDu DRv3LdPPdf8AIWo6VBFLqOmXlkbqMyaamoQcWPOpLRmTqNxv0zPjlmDuK72dS6p7oHlq90my0q8h kCahcym1RIHScxoyBlNeT05knanWubfSajgjZN2fwEeFY83qEMNjJYaZf6hdR28zRzyXaxwfV+Qt mCrXcIzMDT4QOneuDJ2li4jRKjFQFsktbvy3PdWwil9R5ow9xArEx2695LhgKqB33ynJ2lCFAk2V EEbqmiaBJqt7rX6WvNYurWszXDLIy6gEUEPbyFQ0gHQV/hnH5cuQyMDRs8+bX4Ur2UYrqHnL5k8u Rz2t1YQx3Ju2leJ435kMKx0YtGR8x45SYTxSEZGiDtXMeY7ncaftCjWUAyO19D/W732z+Wv/ADll fWugrD520u48wXEKKtvq1s0cdyygfZuC1FYgDZx1HUd86nQ+2WTBHg1EfEI5SBokefn5ss/YMNR6 8J4L5g70fJ7d5R/5yc/L/XLxrTV7a88ozSygWUt4Vmt2U03aaMUTfswp750Wg9qcOeVZMc8dnawZ D4mtvxu6nU9jZMQuMoyA7j+h9DxKs0ME/retZTAS29WDxUO6lWIBNRuN86ardS00K+iDQSW8jerM JBXh4ce/Xc4Ec0Bfada6jAtleW0d3FIhWaGQhkKNszFSvE7bD+GCUQeaYGnyf51/I250m6m1j8up oYvVHOTy87EwTMa1EQNeBNNvizQ9q9h4NfGpjfoRzDfxCf1fN4vBdR3k93pWo6f9S1S1JF5o9wpS aFhszLX7X0Z5X2t2Jn7OlZ3h0l+g9zj5cZhz3CZWZOnO0SwR3tlMQ9xp8pAPTZhXow7GmaWQ4utF qhLg5iwpXUsM5eXTrRYoYW+KPm6mP3ZT0+Y2yABH1MzR3hsh+M0wVniDsp2b1Sxp4fE1KEd6Ybrk mMT13+KFYekplM0cbQ7GEjidz1rSm3ffJDconAAX17laxjhvLxYbuaK3g5Ue4FGDV6AeDUwSsDZE IiRo0yiHSfKwk9KbVKCpATkvIf6xYDp4DKhKR3IcsY47IqTy/oIuLaGw1xxOamnwpwXu7MT4dAOu HiKDjHRPbfy1YW00bRauXWnEBiXqepP2jSuA7sxEUmH6Ch5c/wBKb158uPfjw8fDbBRZUH//0pFP DYTyyovVGbkzCgahodlpUfPPGDYLgcUSkXmHyR5Q82QGx1yDTruEqCDeFlkQgbekV+ND4Gv0Zkaf U5cJuEiFmY3QeE3f5V+d/wAvZJ9V/J7ztLp1oWPreXdQuhNBcV34IhRkYGn7aA/5WdFpPaDplHxH 6QkEw3Bas/z7s5kfyb+fXkGXQ4Zi0YuvqwvdMk9QULtayB3jDHvGzU6/DnRYs+LMOKMgW6OcEVJ6 RonlVYbCPW/yO/MGO20MgNN5W1Rn1vy+zdAAhf65Z96UYgHooy4E9N20R/mn9SaD8ytS0MRWH5v+ VrjyvATWLzFGP0t5duFTuL6AetbVBFPVVadKnMfUabDqBWSIPw3TIj+IMnk8saF5hs4dT8t6rG1t cisUxdLi1dmHIBLmItSo7Mu3jmi1Hs+eeGV+R/W0ywA7xYDq/lO70qXhqGnS2/NeUMzRgxOG3HGU EoflWuaLNiy4TU4kOPOBidwxJ9EsoZmuEt4xOesgH44BmJFXswKSHyxpAvJLs2aG6kqHlK7798s/ MTqr2TxFjh/LnR/rkt8nJJJSeSnoCcv/AD8+GmXGU70Py6NC1GLU7K6khurNle0uYWMcsUiHkroy 0KspAII3ByE9VKQ7kGS/R9b/ADg8vfmHP+YOi/mBqsPmIiQDXp7h7m6ZJUMbq7XBk5qVYijV+/Nj DtLhqVnjHVmMnXqifK/nz83LL829W/NrWtYGq+cbuG6i/wAQ3cSNKGubQ2JljVAio6QHghA+HsNs nl7S/jifWevwpJyderJtZ/5yC/MuHyFY+R49CsZLHR/LGveUfL+owmZJreDzHcxS392yl3V52hja 3RgFCxu9BUknJ03aQjjGPagCPmyjk2p675f/AOcqfynmstT0n82/yX1XVfJltrPljUvJPlvS75Zh plr5c09NNgt7h2NkLlI0VpQhUJI7urBVII2GLtDFO4zjtYoe4UzEweb508iea7H8wP8AnIqP82fN N1JZWGs+cItb8y3MiSSrbW0t8s0oSOMF3WGLZVUVoABmt1Go/eA5NgZAn3WwlLfd9paP+aHk389f zt/P211D8wdK/KfS77ydceVfyyv9bdbe3h0/VNSWTWLlfWaKP61dK8kjBpA5MpFSqErs8WeGolKX EIggiN9xO/xP6WwESt7RL5s0O50Xyl+YXkv8ytI8ifk9+X35gXSefHS+SK+v9J8kRW9noOi2UaUa 6S9SFpfRLAVn5gEkDMwEUJxlUQd/MR2A/Hey83mSfmR5l/LjyN+Y7ssVnZz+QtY/MH80tNQI/wBc 83/mZdCDQNPuS6l+VrY+m7AHcK1dgOMPHlCJ3/hs++f0j4Iuh+Or53/5xm/KjTNY/KrzJd2OmP5e 8zfnrrlj+VukajayyxzQaQ0sOo6/cRkk/u/SiiRiB05Dxpg6fLliK4rM5CI25DnI/KmqMa+Oz6f/ ADEt/wAlfzL8veXPza8xeRtP8oeSPJMWuXV5rWjpA2r615a0W5tfL3ly2lunjDK19dfDCGLBEjcK 4ryzM1UceqgJyFRFnbmQNh8y2SAkLS7zJ+Uf/OM2s+ZIb658pat5K8o6Z5K0LXfN2l2E8k+oR6z5 vlih0fSkW49Q+rwSSVgaE13oBRcGehxGYmAYx4QSAbPFKqG7Hw43bI7P/nH/APKfyx5S/Onyrp3m a38v3Grapq48lT3lrDcXc2m+SomudQHqqEESLesY5ZKrX0gKVNMf5NjwZIGXMnhsWahuft+5fCFE Pnn/AJxz8t+VPMOleePzR88+Vr7zZ+XnkHRmuNT0vT/WEk91cyJEih4XjZRFE0kzNyAQKGYgb5qN DpI8U55YmUIDkOpP4tqhDmTyDOPNH5PaBpX5y3tnoegatr35dS67Y6V5f0GzuIo9RvNRvdGt9ZGm M906SRIiXCerKQ5jRlr8Zy/UdljHnsRJxkigOZJF1vy8z0DKWOpeTyDzx+XOr+XNc85foWzvdf8A KXlHU/0Ze+cbSznOmR3Q4rJb/WSGQmKVjESWqSKkDlTNZq9DPDKRAJiDV1t+OjXKBHueblamu+9K H+OYLXS0UqaCikDvk0rePaoKrQg0998VVCq9eVQNw36srVRluIbdGknljiVPid5GCqgO1SSfxyYi TsFpINQ1yFE1S1hvLezvbCJBFLd19Np5a8IgqgsTx+KtKeJ3zYafQSmblsPtbo4CeezzC71DSriC /l8zre30lhFINNgaUCSW4mA+NljYLCsdQUBZq71ObLHDHjPpG7kxEYjZi1mnm3zbJpuh+WLa71I6 e7f6RbIyyg3BrIHlqKD5MqjL8cTIVVnoxJJ2eqeW/wApdH027gtvM+vXXmLzDOkbw+UNBHrShSlU W5ul+CLrvuPnkpRj1FnuC0Bz59we223lW7t7JdP1C5i8k6WAw/wt5ZkX6y6vy5Lfaiw+EEHcKfpz JjAkVVeQSTQrl5BlmkaXpugaa8Gk28HlzTZQQ8apIzXLS7h2l/3onf5UH+VmRHHGH1beQ5qBwjuR mnwxcnbTYVdYNrm+uWVSg6EqT+6iIpX9tsuFgfzI/akfIJVqeqaFoUc2rapO2o8gDfXMiyyQkdBS MAyyg9i1E9sqlljjFxG384oB7mL6p5p8p22n23mGbVE1uaIhNH03SmUOJG3WIcV9OFiD9lFLU6tk TqsY5esrW/eWBeaPMmtXFnPbebTZafLq9oLnRdEgg4X1sgKlbhpaqzTAHiCz078Scoy543eTn02u v1JltzW2lvaw+WdQ83D9Garpt7VdH0LVrZZ9TneFvhWI8CzPU1NW6dBjix5ZYDKUhRsRidyf1NQk eReb6h+WHmr8xtNs/MVz5n0uI6fHxXy16ciT20ZcO5VZG4jsNzuBtluKQw4BLFEyPX3/AB7mZB6P K7LyfrL34stNRLe9VmEJWWNZARU+ooXl23NK0rlWPWSmRAgne66+4IMuE+dM+0fyf5ju7n6zDe6f f39nyE4nuVNFABKpG44bnoKdcw9RrTG4HkfKz83YabR5NQCYVt3mmc6BpvnrRpr+HXPI6Xeoalaw 3qadqRS2iayY0WQ+iwLEtGAAtN/tZZg1mGMamBKN1fUd4DM9l6qyOCiB1Rthd655m+uWT6Rpmizu kyxsRJbRxNbg8o7ppmYMoHYEMaCla5nZMuIQPh8NbVysfrao6HPsTE2y6H8v7q2021fRri01W+fS 3fUrq7uoobZOEgeYQCX01TcUWlSa0JGYuoww1MBchxteXR5huYn5PJD5Y1vT4pLlJngu4yVmg4BR zPxFGb4kYj/JHTpmnz4uH6hY7+l93vcrT6uWCQhMmHcf13083t35Wa7+XUF+ujfmBpkctvdMpt9c R6/VC/a5iHxNFX9obr4Uzo+wPaIYQMGpJ4eQl3eUvLz6OT2n2X4l5MNcVWY9/mPxu/UqzFitpZej cCS3kih/R7xtzjeMKAnAiqleIG4z0yJBAI68njDd7hf6kUpLCNiyho1lVaJzU0oCO/4YbVViUzOH kSoijKlGIPIjoyqNvxw2i1ELbzwIY6JCw5iZAPjUitSFoaeGDYhaIeR/mJ+UGkedoGlWMaXrFqvq 2HmKEcXVv2QdjyQ71HUZjZ9NDNExkAQed8m2OToXxtrGk695X1ltE82Qiz1CtLTVOP8Ao92nQFXO wY55d2/7My0oOXACYdR1j7u8fawnireO4Q8lhd/HNbXk0TrVJuLD4geqntv8s47iHUOPXc1b6b9Y sjcLdSPc24Zp4G4k0JoCgC7075GUgDVbNsBxDYoBY53gpIyzJVvTC/a8dqMfDwyfGLYnCa5oyO3u IIRG1maSUPrMxBJ6itARt4jAaJu2vj4dqXmCzQtJc2i+oKyerK0jxmnQMdxucG/QsvFiiYb5rtZZ tUjkiua/BdIhmTgBTahB2HQUwHGBsCzGcjmGbaLrflLT7OO3a+lMh3lnuLdubt/MwCkD78rljkTy boZ4gc/sTj/FHlzlT9Ij7fHl6LUpxr/J9nt88r8GXcz8ePe//9OYX1zfpI/CF7YMxJaNUqwJ33rX PFzHfd1ptjV5pbupdrYOsrUZwQxLbbUFanCCQwMaTC38q6g/CRp/qiRnkHp++BHQKAAB9OSBPcmI J5lF6h5P02+tJLHUtKh1K3u/iukvVW4Mh/yi3T2pkoZJwPFE0R3bN2wHvfNnmP8AJ3TPLWoya1+X PnKX8vvMKrU2pnc27134M0dWAP8AK3Ie2dBpO3Mo2yR4h3jmjjEd7pD6b+fPm7yYRpH5taFBfadP yjfzTpHp/vI26iSDeCUHuvwE/wAudLg1mLOPSb8urZDVdDuz7y7on5ZedPrOu/k15xbyZq7+nJqs HlpgISxB3vdDnojivVkUD/KzKruLkDhluCySPzb+YXlC1mj8+eXF816DbcjJ5q8pxm5BVRQG+0iY mVRQVJj5qMhMRmOGYBB714pDmLCf6S/5e/mFYTX/AJU1ezmiiPGe40x/UEMtK8ZrOTjLF36ge1c0 uo7BxZN8R4T3dGBxxnySzVPI97ZLJNGgvbOMAvd2xEoAPd1qHQD3WnvnPans/Pp/qjt3jk0zwEMJ uNMALGPm+9FNPD2zDE2khLpbV4yQ6tRd22pTJCVopQEbbVrUbk+GTtFNcTspG5P39cCVNo1ooZFd KfaI23xtUPLp9pOrJNbxsGFCpG/zyfGQditrLPS7LTlZLO3SD1ftBRSuM8kp8ypNpfN5d052u5PS AlvFKzSfPpkxnkK8k8TAZvypskilW3unSR35K56j5ZmjtKV7hn4ify+X/Miabc6WPMuo3Gn6h9Wf UrKS6laG5ks09K2aWMtxcwoSsZYHiNloMf5QJsHkvG9E03z1+ZPlHQPLekeWtcNunlm01ez0ZfQg b6mmuxNFfvESlRJIrkCQnkuwUgDDh7QkJg3sLry4uaie71H8qPz1846DbecD5k0zyTqugeXfy60/ RNK8neY7J5rTURoF4sun2sMCuedw8tzLM7NtWr0HEZuNJ2kN7IoRAo9a5fFtjkYtpf8AzlvPr3my 38z+a/y3eev5iH8wvM/1W8I+vXOm6f8AUvL9gqvEOEGnsoY8mfn4LQZfLXgSuW9y4vs2HwZcan5p /wCciND1vQ/P9tZWmrQeYtS/L7T/ACB5WnuIouJTU7xtR836ldMkpCTX07uq8ORKyfERQgstdExJ HOgB/vj8V43qH5MecfyR/Lf/AJxastP85fmJq31248x3mu+bPyy0iG7in11VjFraaPcXTosC2sqJ 6kpqwIfqJEUBw5sMoUZG7sxF79AD0pAIrm9U8x/mBoMv5S6V/wA5Hnz/AKBd+ZrXytr8ul+T7G4/ 3JW3nLztfGyuLh4eXIR6dYoIIeQ3WKo2A5ZeWYOLxbF0aHXilt9gZk7WxX/nKi8/Ov8AJ+C98s6F 5h0O2/JbXdK07yr+XfkkXCTTahY2ltbXdxq8VtDzCObrlznkZWJNAGVlJxu0IyxQMCQMZAAHeNt/ n1Yz2FdHyLo895dafE98vp3X+7NqCtPHOOygCW3JxSmpKkLWrcRWvz8MqQg7u/tbJrZbmX0zdzrb 2y0rzkb7KgDfvluPHLIaiLWMTI7JLc66VGpBY1sV0qdrS+lu1blFKVrFK0S0PpEk1YkU+RzY4ezC d5mm+Onvm828y6/o4W0vLa+kvNStryQm6ossc1uSBHCGoIwh3NCrNuK75soY8eIVAb97cOGPLmxN 38weY9Umt/LlpMwuHYFbOspWKb4iJp3NQvL9ksPlko3PekeqT0VPy78qeT7mMeatWm8y+YUUFPKO hOJEUsK/vbhqKtDsyqQfDJzEMY9ZBKDwx5n5MkbWPM0iz6aNGt/K/lGP0y+haBMIbi6DPUrJdcQ1 BtyYUO3fMSXaUdhHl8mBzWNk80v8wbryZZ6ho2leXbKxllkddGtdPkClmAEhN0zgl5H6CpFcsw9o 7bCvP8c2UcgHIJUn5i+dbixGpRLCPME049VrmKKW0gCMTIVjFVU7hQxPIUyw9pyiSAV8SiXtmjX3 mjzFNFe3XlmTXbi4ESWNlayRWxkUx14OpbnJzNSBsPbMvBqs864MJkT1sfYx/MgbkMF/MDzD560n UNKgfQr3yokk5jGg6r9XMRWN6uYlWhACggMAeOHUDUQlc4EeRI3QMomw5/OYmh1nSNQ1BdT0fWkW e0snLW92hA5c5JkVWdFH2anfrXtmDLXZTYnEkfL5NnjUOTGF/Mt9NsHtNG0vT4tVnmlMOtvEWWOD jTjGOIbk1PiIFK98TqZgUKA+1HikFKdOn8ua00Wu+aoZbq/MymSRZSY2BanxM9aGg402ocox5OCR 4gZfjdgch5BARX+uSarHoui21rJ6U80mi6bDcM0oEhHVq/GxG3SlctnmM4gCwAdh72Y6eb3DzlFZ 6N5a0XQLqFr3zFrI9TWbW3dDxt1QKIp7ihkCqwBIXdumZuP9xpyMsyTI7b/j4tg9Ao8yk9v+X0IO jzad5m0qymjnmaZbNTGS8ShnCvIgaqjsaKO5yuGHHHc5ZX08vx3sTh25vnefzF5k0vWdR1610Ajy 9aXBDsXhP1eEjgT8DAFiwJBpTsDks+mxRkAMnHIDn/Y7TRceOHHw3AbE2OfzfZPkLUHPkOW/17RU tNRiQNbawIv9MghncJFJeScSKMT9ljvtnN6jBxZOG/T9nwe30+aH5e5DeveR72AP52/M2+9IW2g6 TC0ReVbmW6SBJoYZXiQuoVqh6DtU5uMWlxcMDGR2Hd97x+btOYMhXMlDLP8Am7eXsOmzaTpEl0GF 3axTSyl5Y5KyLH6ZjUFqbUwflIRyggyNeQ9/f9jXLtbKRwcPxtjd1q2rXkWqQazfDSm0OdJha2on 4wSMvAtNUEkqWCgEUNaZCJx7443Xntv37u80+I58Mc0+Ek9+9D9bGYLS3hVNXtlJv4Y1iuoagLcF izMUkI2DdSDTw65i5Yk+gumjqDpM5E40eld36i+uPyI/Pg+VBD5T813TTeUJpDBa368nk0eZj8Sg 0qYancD7PUd86T2d9ojoyNPn/uzyJ/g/479zPtTsuGrj4+GuPqByl+19kL+dX5RxxEt+YuiRA7PG 10tTXsFFaV9s9DHael/1QPK/kNR/MKQR/wDORf5NSeZ9M8o2nm2GbUdSeK3tb2FeVhzlDFI3udgh JXjQgfEQO+Ufy1pfFGMS3l16fNtHZmfwzOuXTr8nsEN2vN7KRhJqFvwe9gU1ZUmqY6dKVC7VzZ30 PRwK69Cj5ASsR4OzOaFOXxIKVJAB37d8NpYL568o6L5z0aXS9d0157V1LRyCgnV+gMZFQGHzyrLj E47ssczE7PhvzF5d1v8ALLU/0ZrSyXGi3zEaH5iZAKgGno3ANQGHY55t7R+zJiTmwD3x/SP1Mp4R O5Q59R+pASQ87hbhUkhkRT6TKaGtK+Pb8c4G6BDiUVk1va3UKPHBHbawv20JCw3Kn9odKP7dDgBI PkyHqFdUhnuJIXeUSg+nvxH2lYGhohJy2IvZrMR1CvBczTNya6IieVUaWVuKoG6kqKmi9SQMSEDE CeWyb3OnwxwySR+Y9KmS3q8aK8hMpr0AaMV8dyMgCe5tliA6pTcWsJMN3+kIUklIMIV9xX2UkivS hGSiSNqQRE8iiPqE9P8AjqNw+1y9Yf3dev8AwW1euQ4vJt8Pzf/UkotNVR5BcWUkqBmRGWTkVWp3 UADf5543KJJ2dbG+uyOjvJrJeNtpc0spXiZX2PjuaUwDZQEbaapqE3+9Fk1vEDRmPJj91Afxw2sU 1lWK8tmRnm+rvQMycoyT33U1A8cIDKrDGZPKGgBnCW0ZklH2pHd6N34kk74eOuqDiBSa7/K3y5cR yrfsxjbZ7XmrIwPZlZSCKZKGolE7FAxDmdnkHmf/AJxj/L+WeDV/Kt3d+RdegYNY6pZTNwMoNeQj V1dDX+Rh8s2+l7ez49p+ofb82ygEibz/APnV+UvGHz1pf/KwfLEL/u/NVsxjvY0/ZP1hFG//ABmS p6cs6TR9q4dRtE79x5tscxHN6TFo35U/nJbp510h2stehZBeeatDl/RPmCwmYAKLkR7MO1ZQ8b9m zYgAjbZuBjPcJdP5r/Mn8o5VbzqP+Vg+RICF/wCVi6RbGDVtN50/46drH8LKBtySgbs1fhwcVbEL coc9x3vXLeXyx5306y1uzvLW7sL9R9V8xaWQeTAVKyIOIdhtyVlWQd81ms7Hw6kcURwy8v1IMY5B bENT8majZyMfRjvLMj9xqEMytC4boPEN4q24zj9XpMullUx7j0LjzxEMKvdLe1kMEzMZQKmMHlxH ixH4ZQJ20EJPJbhH+InpttllopR48Qeg3+jFK3vuacup6jFWqHt9v36U8MVbFQKbV3B26f5+OKuq VI6EU28d8VbatQCOO1aDtirQ6EE0p7/diqlPCJonirQSrStOmGJrdUDY6VZ2cHoCJWAPxFh1OWTy mRtJKm+j6fKzytaJVx8VB4nJjLIdVtA6t5a0/VrKOxuUIt4zyCLt17++Tx6iWOXEOaRKmO6r+XOl X1nb2tqzWv1cgl1O5plmLXziSTvaRMoW58k35v8ATrqDU5ONpEkBLsWJjjHFVWp2AAoB2y786DEi QtPGzOXVLWw42Ik+t6oEPoaZADLcSlRy4rGoJqQDmJiwTzECIu2EYGXJSivNReWzi1U6f5Oi1C2M ttNql0jyeqVYqBboysw+E1NRvtmyx9lRB/eSpyI6cD6i8y1/zlo89zrVtYvJrsEzQTaNqShoBbXM UdHltjUuqczUgUJ7nM8Rx4gREAD8dWwVDYBj6Dzb5xt5onu7jVwx5andyBLe15IBWWec7MaDYFjS mIE5HZAJlJ6vp35X6FpdzdaVrUt95w1mRIJo9F0iNodMVzHyUzXrhQykbVBArtTJRxgb7yI7m+Gn 37yj9R8r/nM+i38kHkW/8v8AlXS43n1Ky8u2TRrIFjUSTLLGJGmjMQrIymg6jrgzSyAVXCwlCZ6V TyY39pbW5khivYNPvRMlvctKiJG70CsZSaliu1CNvHMPgvmRYcMC9q3cnnryvG8tsumveslklmkN xcfu1EB5EleJ5c33r+vMiHZwmATOiTbkRwitzSUz+Zr5IHvodOhiQ8pY7lbfkd6ozM71LE9N/ozY HTafHsQ3jwxtsXouhrrl1pzazceRrjTvKkMsKXfmX9GyS6dE3EJDHI/FkIZ2rw3qcoPZY4rE/d8f i1jBxSu/sS78y/y38y+RvN8dr501jSdR86ajb22oWVppay/XbD1+NzZymQqkMA9JgeC8hSuwJzcd nYpYokcPCBy3v5Ncb5ISK/1HX9Vu9P1LzEuhalaFhDrt6PrUcZu09V2dTyKiRx8RHQiuXavTjUcP Eao715p8Ph5Mt0f8r/zJ85+c7P8AL2w8z6B+lntwdE1jUAsT38dvD680ayzBUDRp8TxOA/EjiDUV 1uq0uHBciSR3A7b9WfhCe4Hw5MI8zW3mjy9c6MNQ80eX59O1q3kmsdXtNPiFs8FvVZeD+nUryqtC la5V/J8Ry+fM/LvcnS48Pi/vY2B+LTaz0LVb+e70ywh0fzI0nKV7a2lSFF3IZSPhDMSpogAJptmF LSZY+qQr5fgMNTpROcpYY1EdL+33MMR9V0rVY9XttOn8tR6dJHNBcMhjlURkVc1RtjXoxp3yEe67 PNxBk4RXVmJ80v5jv1TzLaWl/bJfPfr9R9O0cS3IHHk68OZFeQINcnGsko8XP8WieYjchPNGvvKt zONQv/MqaPqJiCSWuq6gkaFowCUKSzu3ClK/DVmIxhppziKuj8Q3xHELehaJb+XK3Olw6gt1o2v3 dvdanp0tss1lPG+8TNbu0CKsRSoK0OwqczYYp4gY8QAIPTa+Q/tcvDjBr37+5hWs+bNT8t382mSa fp/mJdQaSPT4NMvoJ4/SgbgWMcMrnmwHwqygg7UOafH2JnhEizuOf2u4n2tA9Nu5iUnn7ybp4Ntc +XdW8sX6PG04CyxGb0915KQvSlQNgfDLPyOfHEXufspw56vTykeg6bJpa/mHpNhp11JZear+CCWZ ZbK71NTLKEZW4xRyAlo1Vjy8QaYJeKJ1G9mjHLBK4WL5/wBh6MT07TtK8yPpVnp/mCyj1lWK6zdx iQT3vry8i8nP7XpkmpO9N/bJznkmSZja/wAbp8OOIcUZ7gb9yb6EJ5NYutLuiuoazZRXNtbGCZVD i3I4qsbAIKKee/bxymUeOI4eu+/4tzcE458HFliDXWv0qOhW91HO9xc6lFcWlyoiRIm+BJixYxg9 GNO/fMLU1XLdj2NqAZmJNbbB7l+U2kaXrnmyz8qagUsrfzGxjs75I4Vkt7qMNIpRihJ9TcEV65vf ZrW8WcaafKWwPUHm5HbGDhxnNHmOfmH0B5h/5xjsJfMHlXVIb27upYNStzeFkEkRELCZSeHH068P tHau3U53WfsiMpxPUH7nm8XaMhEjpT7QayltLozWEsggneeSW0WhjeWaQSGRiwLVABAAIXfpnQcN Gw6bisbouAiMVLIFqSygHZjXYM3bJAUxtZ6tubw6fISJxF9YWBQ3Epy4159Kg9ga5Enelra2LeZ/ KOi+aLK503WrQ3tpdRmOS2B5AM3WSIkHiR1qO+QnjEtizjMjk+F/MnlnVPy01pdC1bldeXLx3Xy5 rsoFQOW0Mzb7joCTnmntN7NmN58A947/ADHmzyQExxR59UsuLNJz6iKF4g+pGeop9OcCDWxcMjqE 2sdF0bzIq/pInTtStiFP1aRIjcBRUMwapG3U4OOUOW4cjHGOUUdl/wCgPJyySq2oyzMpHqv6w41P 2d1Wh998HiS7mfgwurbTRfKEZJaQSHcGMSsflxwHJJkMMFL9EeXvrNj6ayvFJOsU00b8ZIUI/vaN yDAdD33wjKd7RLBHoE1+o6T6nD61P6P6R+repzjr9S9Pn6tOP2vU+Hj0pvkOIJr3v//V682mFnm5 zekAx5irVBrtxzxwxouFRlybazFueJX1ujcgaip6E74k7J6rklt+TJcu4LGrRsjdANulfnlcpoIH VZx04LN6t29GJbnKRQbdK7ACnTIGRYRqPNKHvo2kK2VvNeA0UzovCPbuHeg+7DyZX0CIluImhKtb uA32kMnI17ncfdkOK2y9uS1ZLRkQJay/WGU0lJDfIdqVwXJJjHuSy5guStDWWEoVltyoaORT1DK2 x+RycT8EAF8recvyq8yeXtZ/xr+Tl0+g6/Z1kl0FHASZW3ZYA1UYNvWJ6qe1M6fs3tzhqOc/536/ 1sAKNxZ3+VX57ad5yu18t+ZoIvJPn2hs5tIukMVjfk7MsJmJEbkDeCbY/sMeg62M45BzBDkY8oOx 5r/MH5U615V1S884fkVcWvl7WrpyfMP5Z35c6Hq5T4mWBHI+rSk/sMw3+w69MQDHrszMK3jt5Mu/ LL86dK863l/5alspvKHnu2QxeZPy51pD9YLxD4mh9QILhPDjSVR2PXHLihnjwzAIUSB2KO8z+UdT cXOseUm+vyynnf6HK4+tVX7RtS1PWRf5ftj3zltZ2EcW+Pcdzj5NOecd3lbm5eoniKSlv3yOnAof Ag9we2aIijTjkUoMrBq1rTYdt8IKFOlaE9eo/piq0jqSa1PXwririTQjpU0+j54qtr0oKg0offFX DcnjWoG1d6V64qu5LSp3p0GKtVYkg/Kor92+SpXArQciKHcMfEbVxpWqivSpG4fIq2afCD1Pjiqh Yy/pfUJNL0QJqeqRRmV7GN1BCA0JZiQqiu252zKw6TLlIEQWUccpcgwW71y7uPrFtPqljolyjS2l 5psjvG0cisQXS8CstQgrTiB2rmzxdn44fUbIcgYAObE7r8y7fRI5ofy/02TRL71GXU7ucxXAuCar zaZgZDsaih2PXwzYxycIHDts2mdcmD6H5b8zfmBqepx6cs2sXUFF1XUbiWJRbF2qHeWQ0CHqKVPX bIRF8mPCZbc2dX/kzyx5MkRf8S2PnvWbKKV9U0iwSVrSKdGB4rd04z/CDXqK9sEyI80nhiQCbL1D yjcP5mgS4vtCi0iSxiM9tppBZJrRCx9GZlKvyUNUsE6U64wvNI1vEbbbbuVoxDITxdGZeX/zNn8u 32jTt+Vllrvlmwc29tN9duRqVokcq1ujJFKiOdyY+cZptUZsY4+CJqxex8nKOQ2OEDZOdb883v8A jfyB51/LXVdQ0GPSuTS6df3Cm49ZZC7uYonKlJ4zxdHSjeGXYwZRlhnuOnl+OiZTFjJdd/mwzzP5 S03WPMWsax5c8kW+gw6oxl1LSXuUeytrpj6ki2kMzlrdJVbl6W5U1oaUAoHZupxgyxmMqrat/m6f U+HxegkILy3+W1uLiN7j8urNo55mme+muUt44o+VPjloyqAPh38ctx4dVROTFE7/AM6vt7mnjsEc 1XRPP3lvyVeRahpfkXy7rettrJ0670/XIUv7VrJmAMscn7khk4sQRQjY96ZOeAZSeInvF9Pd3+92 OLGIUSLKefmX/wA5Ay+YE8weTbTSJYvJVz6MaaHb6jysiYQGiniRQp9Uk0+MuOv0Y058EQCbPu+x unmhd19r5/8ANmr+YtcJ1q3tLi8jtLCKG31CdTNLBaRxLEBRlYJxIACn54BrZn6DX2/BxZiMuXxX Xetat5w8o+TdBh0KSw80xuuh+ZbCHTLe3trp7dxJZ331mPk7l1lKyseIqK0zOyag54gQNjrX6WqA gCTa/SfLfmGWz0HSNbsb2BrLznfWNlcwMxlN1PaJHJ6fGrOlAtHFdhTYdMHJGXicMx6OH7bdxptJ HLgJ5nnXk8t1XyzbWl7cafb2OoXLabdT2CeojGB1glZSyB+gJU9zQ7E4/mpCRBlGnVyyEE70Ge+Q vN+t+XtQGlflheXSeZvMloun3OnskBS99BzOBKbkGMFCGYEdaEd8YZJylcjUQwhKcpUDVvQofOdv 5jku7TzT5Sk88aha3qT6hqWhatpNkbyD0F/cvFcFXHpspo61UgkFMrwaXHk9ciATff8AoTHGJA8Q 3tHaj5l/LfzlruhW3l/8ktd/LXTIrxH/AEz9c/Sk0syKTxaRz9TiBCllG5/a6bZstNocI2MtzyoN Or4eAgR6I/Tv+cMPJP5n6tqOpeW/zS16/jnsze/6R5Zhv9Re4FOVu1vYXpkdY6gNMkfCpUDLNNjl CIhYAH2ff96ZyMBtuen9v7Hq/kr/AJx28ieWvJnmbQNa/Ljzlr3mby88FnrtqYbW2uNQeWR1nljB SYWAiSgUSvJyNNxuMnmlUox6He65bt2O64jse6+ez52b/nFzVdOa18z6BaecPNYW8V7G31O1bSLq JhzdU4zuLebgygB0uV5MQAgzKz6XJOB9YohxxmFmJFdyG1Lzh+Yui2kNpqmk+er3RdVJg1Bzb2oe C25cfScSQ3oQHfi1R/rUzX4dBDGATO6586bATH8c/gmum6p5ds9SuNN1D8tLa60OO1Ii1O6s0SWK 62ESTPbiNJPWBJNPiqK79Mtw6XSamd2SAD3jf9TTlnIQ3iAbpkvl7yXLrulz+evKWmaXoVo00kV3 5fvLyBLqxRSFD3V08cQkZxyKiMbChIIBzRans6G8DkJI5A7X7i3nFYNMVvPL9pHq9zqCeXo31e3Y S3ukX108rSnYJIk8YRWQjcBdj0LZgZMscJEDEgDbc/qYSyyiOE3XvXarrOhaf5Uu/LEemwaZqIX6 xHMYHN0s6kyRhJeTKAOm21Nsq8aWSRPBHhP3fFGPJKEgR80Xo+oXenXWk6vaycL+wlt721kWopNE VkA26VIpmDizSwZBkjzibHwfQOEZsdS5SH3h+uvl3V9J80aJofmOFI/S1e0ivooyT8LyKGK18UYk E57npc8dRihlHKQB+b5nqMcsM5QPQ0ywSJ6gQhn4ggMa9TuAx2zLaFkYB9QOp9MjjvQg1JNQCPuq MNi2C1JWHpDmJTyMfNVqqsCahqE8SOhwAsq717EeqB6LV2aOVv7tmPZTXw9sLFivmvyjo/m7y/f6 RrKNf2V2G4AIOcTD7BjrT4lPeuVTxicaLZCZibfBGoaNqvk7XJ/KWvB3kjj9fRdSYUFzaE03O/xJ 0IzyX2q7D/Kz8fHtGR3Hce/4sssR9Q+KDeG5jZZ7UqJbcgo5rtQ1pWp65x9hoopdc2Au/rV3pFvx DSB9QsKgvEzftIADVevyywGqElHqvhDHop7t5liSznL9I2lSnHj1qegyfBHvCQZ9xRU94WgdI3m5 R1QoY6PyNBTxwDHR6IOWVdVtY+vF6U9P7Un2+lOnjg4fNPje/k//1uxSTKWmLOzCpBr8QqSd6gZ4 5KQtwhCwgbi9s7OP1Lu5SEKP71jxr7V7U9q5HiJ5MT6eaSz+aVmDwaXdi3dwCNQuk4wDfsCAXPhX AY97EZAfJGafb2UcVxPNcJr1/Ka/W55FCqw34xqDxUU8BlBJOw5N0OAc90JefpgFWBZWD0SKKQIi qfAftZKMQspHmjbZZo1Euo3jPxB/dIuw+bAVJxoDkys9UVCFZ2f1WAcgBAgJp7174LRFFTW0qxE8 YVRRvvvxPU8fHEXbKUtktZLZXB5xk1orKP67fdgCAaeR/mV+U/lb8xImuL1RpmuotLXX4UCk8eiz qP7xffqO2bTQdp5NIQB6o936u5jIiReW6D+anmz8rb6LyT+bFvc6rozAR6Z5yTlcTRRA0UvId7qJ R2b94g2FRtncaLXw1EOKBsfaEwzGO0ntPnTyD5E/N3SdJ1K4vBcXIVZfK35laDKDd2zxGienN8LT RgU/dScXQ1pxOZhjYsfJySBIfpeeW/5i+a/ynvbby/8AnXANT0OaRYPLX5yaUhe2nZNlOoIo5JIB SrUWTxD9cYy6ENfFKJ9XLve/snl/zdDp99rVtHc2uoRiS0806eySNLEwqrs8VVmX/L+0Oh32zG1G ix5RvEH8d7YYxlzfOPnjzBofkvWG0rX/AC5rel20nx6bq8Ye6s7uHcCSKeKF0NabqaMO4zRZezMY /hI90h9xcXJCMTRBYaPzG/LWU0Pmaayalf8ASrcgfeeByr+SQeRkPeL+4sOCJ6pza655Qvk52fnn Q5jIaiKWcxP4fFUFfxyqXZUxykPtH6EeH3EJpbw/W05WV1Y6mg2LWl7bydP8nmD+GUy7Mzx/h+0I 8GXciZNOv4KNNp9xEj/t+mzA/IqCMxp6bLHnE/JiYSHRLy6RsRKWjY0orgqafI5WQQhyzrWgYHwP cVxpV0gXt9ldq/PAFUiVAZmpGoNORoBt9NMkqa6fomt6xC82i6bLqMYA9N0ZUidjsKSMQOvWmZGD RZc/0x+LKGMyOzzrzLfWv1SDRfMMd/5f1Byl1fSqrfV5oY5P3kNvJQHcD7bbHtXNpi0MMJ9e5cmO ER5ljjfmnrel6nPf+WNL0rRLMF47atqhmmiJISV3cAs5VangAD3zKOokPp29zKWShsw3T9B8z+bP ruuS6Lfa/AHMt3cLF6Vqodq8noQGbcCgJI70GRMJkXH5sKlLknXlvQ/Lenas8fmTSv8AEd+yp+jv LdjNxVXLKCt1PXgEBNCOZ365OFx6WWfAOfNkbX/mbyLq1r5rtbXTPLtj5rGp209rDaK1oqWc3oyW 0ocVdAW+JSpBqNqZDJI5LhVHbntX7UnLIR267PP5vNTS6pc84tNtLe4IMZgtfSWKNlpW1ihCJE3h QUrucAxACubjCApDr5nfSBcW+m6FCXqoh1u+PrXojZShlVyQKdCVpSvfLoZYx5E1z+Ldj4Rvu+p/ yVsvK/mDyab3z3eaBaf4YiuAukyx3Ueqa1I7I1oLc2roWX4SGZieI+KhG2QGolkyDiF9/OgO89/u c3ghO+En9LMfLfnbR/KXl7y9551j8u9Lh1HU5by4/Lhb9TfJeLFdPwaYT0RoYUYByR6hooBrUYY5 xinlPUyBA+FObh051EYAbACj96ld/nx+l/MPqa35Y8nXMWv3VhaXSW2nQ2QhaFwR6IVgvqTVKktU kGnYEDHr8o3mL76/HRyMvZWE/SaPcX0po35beVfMnnLzd+Xl95XvtB1XR7ddVi0660v9IGWO8jWW ksS6k6RKoPKEbM25O4odoMkB6ZSIuuZP4DoTjMTQAvq+aPzk0DyF+W3nWPy9q/kjy3q9zDo8F3PZ 6ZYTWSw30heMpPf/AFqVlM/wyfDVo+la7ZGWqsnjlfd5IMuA86+23zDd6f5QuFurKO4ka8a7huNM uZbiOe0qtS0LQlEZjEKLWprQk75iGYmDwnp+B+pEcnEdyHpvlHyf5F1W98uRfmD+bdr5Z0rzGIIP MGmQ2zW0dqsZIR1dYDEg9MVLbksa9cxYxhMiV1XP9qCbvk/TPUv+cU4fJPkq6sfIOoaCmmeYoVt4 bs6ektzFb3EgkjuF1q6d5yxAqBHTrsAM6HR4pzxGMKN8+nyYYuHT5IzyG67hs+TLC08h/lpd+YfJ vnDza2s6jdTXGqXEE5X0Ib67CpxiuI0b03mYAxqBRTUnqcxMhGORhLmPxTscnaPi1KIp6J+XPl/R vOPlWy1HzZ5N0bUrhbi8m0r8ur+KXUdTuLaIIbycXsrRJZt6aiYvI5V2qQC2Y4xwIEpCjZ26uDqc ktTMb0a6DZR/Pr8rvy003S9P8ueR9Dh8030whuU1KK00uBrElZUjtf0haTWryTRMPiLhzT7QJJxO OF8eKJka3Hv5iu/7mAwSjLY8n52+ZPLnn3yhrYjvtBXSf0HH6SWFzptqZJbWcr6hjMapK5DD7Rbk B9k9RlcdbCMga4TVAb7e++bKRIFEJ35d0X8xb7UNHt9Xt7nQdCt7251Xy7pZnWRJgLcrISqTS8VA FQGpQVAHXHJqhhnHez150OuzPJCfBXDtIMDUaFoVlqF15bstRl8wXlw8a+ZrO7vY2giDBmiUwMmz HehrluHtMiPBKER13Pqtxpkmd2dugez+V/zKtLjQL3SfOl7rianFbenp+txXlz9auLqMh3S7EjUl 5JKeNdkKqctlqdxxSNb8vsbZEAnb3H72G3uv6r+ZVz+X/krzC2qXGjLqFvp3nHUrfVbponSSRIFu vqk7lUaGMiRlUgOVrsTlcdZHGLMto8vP30zM4yJva+v6fJNvzC8v63+Q/mu98h+VfMOr2Gq+VdXa y13zBFe3jW+s29wAY4VgLKrW/phXKEtUnrgn2t+ZJjOIEe4H7bZxrEaO5HVhmoa/rfm7X9U8yeXf L1TfWLWWrWFy1wunxvGpjDWqyOrCqiqDkAGqRkxrMeD6pmz82WScJi4i76MM07QPN9hZXGlSagum 2N0y3c+iCSSa1kdAUUMhbiXVCfi3oDSuYGXWYpg1Z8zzazOx5Pc/J+t6n5x1nyP5VisNLGpaJbXs T3srsPX020tpLh9PlcVJlVYmaJnPwdKkZDGPFkIT3H6Px1RAme0kV+Y2kppOraN9URpotSc21sZl rIgZ1528xZRUjxA3G4ynU6E6W97idwWqUOElJmcRvMsY4qrlFRemxPT6M0pFvfaQnwYXz4Q/TP8A ID1pPyn8kyvzb0oruMGoqsYuJONAQT02z2T2Ys9nYr7j95eF7aIGryfD7nt/AF42LMHj3VCR3/mq D9Gb8OmXH1CUYkcAW5Ag1DdumSVoIiAAFOcrMQFWhNd2I49/fAGXNdI/AIjoCwq0RcVqRvU+G2St itk5+ogCo8TVKzEmtT24jrXArwr8+vLCan5Xj1+NBJqPlS8ju9qCT6pJ+6nUdiKNWntml7f0n5jR ZYdeEke+O7O7iR3vkoBFMiL8AajUPU54Wd3HBC+OddPmS8i5QsPhkIBXkh2Ze/IHAQZbM4mt+Saa q/lwzwzW2oyW9veKv7qJeaCQ9RybfbwysA9znDJGuaqdO0lFiup9Xlhil4hJ3t6B2HUA8R2wA+TK 496/6p5Y6/Wv2/W6ftdK9P7cPEWNQ8n/15lb2fmVWuIJVjt4fVZoZrgBzQk1UIlBX3JOeMSEbt18 MuQ7Vsp2nliG0une5um1K5mfn69ywaaNupCKKBFHagwyyWNggYxe6byaWx5rGqTPuEQts3evQ/jl QIZ8JqghrfTog/G6t7ZZofiKKKtvsK7UHXvkiNmBx0PPuRgWaFi4UXTR7CNECL36EjoPoxkAeTOz WylHesjFprFwGHE/GAoNew41w0Tsokeqax3ESuRFatKTu7Fh9FadsEbSduqtWFw6yW3E8qgs7bj6 O2GQJYAjuUruCBYwzwuSGZQIJeZJG9AAMiIG0Gq5bJW1ublVAEtux+xK5JqdqcwB1+nJCEQe9sJJ eY/mZZ6frWmxeU7+Fb2K7ZSYnFfRX7Pqq6/GrVPwkGuZOkySwy44bV+KaM+SgBb52Xy15+/IKa41 nyhff4t8jzuJPMOjXMbtFTxnjX4kZRss8ZqP2vDOu7N7YhqPSfTLu6H3fqbcczDluH0l5O/MLyh+ bOj6hb6TaRava38HHzX5H1VUndIgKl5IwAJowfszRgFf8k5vdp+9zIZIzH6Hl135D8+/lBPqOu/k jDJ5m8htKbvX/wAmtQneWaEE/vJ9KmHxNt/L+8A+0sgwWY814DHePJ61+Xv5peSfzP0q5j0WVrsK ynzN5K1Eenc2jpsWliShIU9Joh8+PTI58GPPHhmLSJCYQms/lol+9xP5agF7apykn0y94m5hAqfg IDCZNtmUV8RnMarsfLjkPCOx8+XxaZ6cneLwPzdZ/ld5e1H9Ca5Yrr2vLGJbjQtG0qO4ni5iqiV+ J4FutDvTemX49DkxRueUj3H9Ja5YhH6juwmfS/LV2FfSfyLKMx2uNTv1sjSoI2jPIf8AAjJfmsWP /KH58X6EccB0+1ZZaP5gs5DJo3lC20At9lbbzNqygV8VRyv4ZcO2McdrJ+CRmA5BmGmav+ZOnUVr OzvYH3eOfV7q45e1bmCQZGXa2mmKlEn4Bl+Y7wyODXr5pDJq3lK3t7dQXmkjuraaNQO5Vo7Z6f7P KfzOgnzj9n6iviYydwi9O1Wy8xRR3HlbyxPrsf1n6tNLH6tnbwyKwDVd3lDbH4SPhJFKjJS7PwZN 4QNHzZ+DA8kD5o8s+V28wafJ/jyGz01zNBd2ly3qm3njgLPE0cb8VbegLVoeta5b+T0+Lrt582fh wip675ssY/I9p5K8g+bUaS2REuWu55bC8Vfhqto3BI2+KpNGUAZlcUZR4YTA96Jy29JYHH+XH5ka /J+kru3PmRorduOuXGpI1rAIlUBVZWIJQdFofHKzo8k94yiR5b21iEpc1aDyv5emlvtL1+C91XzR bepbHUzMsGmRxihjmiehLio8GJ9sx5jHpxwy2l5sgIxHCd3p3lfy15t87Qx20em3fnO30e/NnbP6 62eixBYCz8LeFEluOMag8XI5fs77Zm4hLINvV7ujI5Ija2G+a9G8s6I9qbbTrvSNXsY0trltZtJb G1jKy8/SitJlXYgVUlvp75AZ8eKXAfV3nu8gs5cPQ/jyZI35v/l75q8r6j5F83+StNXWNHvF1Lyl q8cbWjW9xM6xmac8pUuBOn20JHKg7qDl50kc8jOEqv8AFU35IXiuO993Ngep+QLPV9OiPlyI3ms2 dwF1qLToWm+rfvWXnLDVjCrFfcU3rvmJqMAxyqW3nRr4McGjz5R6ImV9ySXPkmXyqiW+vM1je6ha 3M9nfTpOiRRxoWfgRHxYdQORA9sqjGNWdx3/AHbM9R2dqcIucCPt+dcmFRearu8i0uLylq7xGSBI X1Zw63CTRmqJGCQERkUBUoQNz7Zk5dMYAGr766+TiURuz+bzb57833FhcecGi1GxnVbG3tbpo7e2 C28fJYgodCqp9tmCjlWpJzG8Xh2G47j1ScsibieSUaRfeaLGeLzN5c1LTNH1QSyNbQ6ctzc3FksC kPJ6KW/FaDieQc0BU4RXFYBvyGzbxSJ4r36sv0e5/MHT/M1p5j1681rV/OGrrELXUrZ59Uv9TVmp Gk/7z1TVdhyXsdu+J4uMVuWvircnZ+gX5Z/84Zfmv5y8rvdecdbv/wAtIdRma6stLtrpLm4nSY+o jarbTsUCKwBVBWQf5OXDs3USjcTYP87av7XLlPBOAEYmJ77u/gXqWt/84e3Md55J8tWv5X+V/PHl i6iVvOfnyK9bSb/1VjY8ImjcyJAXAP7sMxruc2mn7MiR+9AB8tx7/e404DhqIFs+8o+UP+ca/wAu 7D9B+Y9J8qnT9K1S4sLu09e5vOOq2DK139cjvJSLhYTKiofSbjuuZOTHp8ABERtz/Qx08MsgRXyY p+av56TapqfmXyna29zPbadG83kGy0CzW5haKGNFaLVPtJHTiWjMZ2DDplMtWYn03w+Xu8k5Yi94 2fn8X5feaNR87+b/ADJawW/knWpbq1b17O80jTpI2uXd2NeIB5Be1BSo+nNBl1GfLHjmaF7bcmkR kdgPsQnmWX83PLsWiz+ZPOmveTL6TSbhIfL1xLcSaoNKhf0YIL2GR0TjOalE5EcNyNxmOD4Z4zuT 1ttEpwkL2LFx5x1/yxBo+paTrema15i1mZra4sJNKUXdsrDi6SQiaWNZJeX7t6Dxpmy0efGZSlIc Pn+1ysQxyNyoG32pcR/mFZXPl/yr+Yvl2x8qWtlZRX+g3uqGG4L2cycG9Z5PUmoCNhG/GvLkNszc 3aePFGMgOLcAkbkD3dzZj0c9RI3W113H3ozUNP8Ay21+z1jT7L8ptO82WcN+LG013S7q4kmZZuR5 QmB4zGN96sQUr2IyzNr8GTeVR3223IPkWn8tnwSAnEy25cx9jJ7v8i/K/m7yFrHm3X/Io8lDyr9Z sNNdLloYtda0hZY44zCxeCReCqlAVBUq1SagHR4shlsAb2vqiAE5VLGf83p7/LvfOuk/lpoF/oJf WbU+StBgmkvJP0jL6kjQyACRhdAm8CHjWoQhT865hazFARiRC6O9Cth+voyzacXUSAOYs/YPcxa1 /KryhpVr5e1CPzTd/pTzrDPeeUNI2WzgsR+7WfU7gLJOWJ3CJGrEAfFvmGdOM86xwIB3FkfJxzpz EAyP6kbrf/OPfnTRNHk8xav53sPM+nXRhi03V9MvheF7jif3V3FKizwDgCF5JSg69syI9lGZqQjG R5b7c+pcfNiz8IljHFvzPKurHk8o67PfWdloX17W/qOos2qKES3jj9GJpES7VwTJy4hiimij/WzB xaCWTJLFGIPCavp8HKjwxAF3RJYtP+Vl8+p8vNGs3VqJYlmkgtEM84WQLJJykf01iQOfhNBtt0Fc zM2mxaaoZT6qsCI3372qWUy5Jt5A0/yp5bn1D9GP62p6yraffaoeNxDaWhUrdQ2JjZ2uLiYLRpFH EKWjSvJmzX3KUhC/V5dB+vpSASdhzVfNs31zzQzQ6euh6RoUIubXRYyGdriYELNcULBZGFPhB2HX fMntnPIwiJdeXfTlY8XjZY4x1P2MURGmaKFavK5CxKf2nc0Ap8850Czs9ztEeQfrH+XGgny/5H8p 6L6YU2mnx/WCQSSz/G+5O3InPcuyNN+X0mPH3RH63zLXZzlzTn3ln0nJeNOVJK1r1QnbboQO43zZ OKqIqOfTjIdVPxFTX4hQnoa/RgCr46IpCcRIxZmC779jv44QwWqSrAv6iPGvxt1WjdADt0wq3R35 ASUSlAOp2O5r8sidk8mNedbGS78oearaaIOZtMuuLLy5ELGSo3r8WwyrPDixyHeD9xQ/PWV3KoWh Yc+sgIZtvDZRnz0I1tbUULd3AW25u6CFFO5FSu3TbrT2yYj0YyJqhyUdN0+81fS52MljHBphW6kI imEz8th8XIDY+1MZmMZdWePiMd0JHpjXkhilv1ggkoWnCXDqtf8AJQmtPbBxgMuAkpz/AIbtaf8A KU2/D0eHL0Lyv1ev26ca15bcftU36ZHjHd9zPgn3v//Q7cYYbWV1kkSVHLOwDciWrXpvQ54yQbcD kd1pjhkEIiAaVzsy0JLEVqKiuIBCymOiukHpktNGsf8AI7LyUsRQBu1SeuAi0xmEI9jcIrL6scRL clLA7j57bDERsrzU7hre39MzX8QqvIvy38DRSKkYeGlN87WJqdhRlSS3deJ4NI27N0qN674mJUSH RB+hOyVkMK0WpKnsPsgAAk5MU0mEubhBLLIitOjQAVmU/tU6U5VI+/IE82IiTsSjI9NiWMhZZIn5 cyBvT5D374k03gitkk1t9O0q3ub+7v5JGVeBRWNXkOwXiNqn2GC75LLcEgsJsLOBeeoalaSNe3gr LC7D92gHwKCxHbrWmCU5chyahhJlZ2Tm4a1ltlKR28+nLHxNlK2wUCnFlFCeXhU4IzIO/NMsY6Pn Dzn+T4u9RsvOv5V6iPIXmCzuVddPt2e3T1Sw5SwSAExUBqU3VxttnVdkdp5ZzGKY4vMcx7/1t2PH xfSd3u95+ZPkXR9Q0rQfNfm630HzZeLDwllcxw3E4AUSXEkYC2byPuKkKa9hvnWRN7FyzMRNE7sR /MT8ldF86anF5w0DU5Py6/NXSSJLTz3pfKNZpKD0/wBIwx/bVhQCZO32g4yPDw8twylHi35FJPK3 5u+ZPL+u23kf88tOXyR5tH/HF84w8E0fVKEBZo54xwhZuvqKfTr9pUx8QS9zDj4TUnsHmDyho/mW a9v7mRND8xyqJbjXookEd1sPTe8SGnLkKATL26gjNXr+yxn9UTuuTEJ78i8V1XQdW0a4FnqttweQ FoJ1POKdK/aicCjKfbOUz4ZYZcMhRcKUDE0WP3c8OnW8t3eSLaWsA5SzvsoHieuVxBkaHNhVpx5U sD5u1I2Ng5itRbC7GqyqfRaMtxpEKgu1evTNhpuy8uY77DzbY4JHyV/zU0bTvKemafAYNL1WyvZB HrsWsXLwyOhr/cpAwKKKVNRvtm1OixaWq3Pnz+A6OQMcYbvD/O35jLqUWk6X5X0+XSdH0LmNOhgm VI2cOGDtHEASQANiSNqnrksuo46A9ICyyg8mEjTb7zA/6TuLy2e/uy5QS/3jTMwoGjB3I6nY++Yc svDdg+bUZeb0by95NePUorvWZZPMd3E9fqcKPzoKFhQFutKAAZinPxERhE1s1Xb6n1iXQ9f8tS6R puor5SEES3UkMsaRSRKmzLJCaso23Yj33zrfy+SGMDD6D07vc5pFxobPm3/GutX2om3v7DQNV8tn kYbm/nkgui9OCTRPFEgUECqgA9a0OZI0JyYQM8bl1NMBUhRIZh5a8s+dJHXzT+Snn/X9D8wRXDQL 5bvGbUbe5mUU4ERI6OGWtCyggdaZix0s9Max1R6cmEtP1CV/mX+aP5tefbOx0P8AMrSLaxTy2J4d a0y2mkubJpYasbl0KyCExrtQyEeFOmYGqBgKAPy6luyZzk2kN3hV3q35L/o1tS0ma+i1GOBX1XSo 7qUwXjuQiGIPFWHgp5BebA06dsysOlnQJNHy6frczFoxKvtN38k78xadoOiSJqflDzbqOtSwWsV4 1zE8+nXDFqErE6OyOITUEinI78chx6iyJEmA67E/JxjxYpbE/Onpdp/zk1+cPljTbny95o8t6dqW n29ujK1/AZH4zFeHquxuUkEoPtWv0ZdL8tl2ui5mHNHHPjPED1YRD508kee5b3T7X8n5dJ1uW5gu zqXk/TI49Qe4jB5IsjqYkjY/aXgMGUwxR+sG+Vnk2Y4afLMmU+Eddtyej0Pyn+XXmHWtcspNc0C+ 0rTNVC25HmO48vaZKscJqGi9S8otBXkxiO3vmPkyQyRO4BrmGvJg0ovhyEn3U+1bn8tv+cedN0fz b55tdd07TF0Wzm1Gw8t6f53054S6RFktYmjtzK1SKEB6708BkMOszHhhW7iiETvdfF4t+X//ADmK PJOmC+8qeRkXzXOIo59Xvp01mKOKNCix2vqgXMZNR/uzju3wnYZsIQ8KZlxyo7bgJjiB6gvXPJn/ ADlr+U+uXXmW+/NTRvMWg3msQerBJpFzql088wkkkaGV5JEVAoARRwoTU8gMypZuMmIlV7cvwPfb VLRgx+mz732F+T/5weVPM/5Ia/qXkiz/AOVe6XZ3c+k6LDf3M13cqp4n6zNFH608VEYtTtudgK5q NZrcuPKRxcQrp+Nm6OEiO4ovH2138uptM8u6d53g0jzx5R0K5mtZ/raxLqxtZvsarNqAJYws4VTy lLNtzNRmVgyHUYxLHYHS6PzP3W36fDOUSLG/d19weTaprf8Azj9+nNXN55Aubefy3NbyaNb6baap faZem1H7lLeKC6himXf4g8nF+uaiePUiVDPtZr0i7POyOnc7X+TpjFthkNue9e/l9iQaL+Z35n+a PN0un/lv5z0zyfHdQz3lzc/UIBZW8cTUlVQkTMjr2iRzyIPxVrmRPQZJxNzMpbbdD+pwJ6XLiAkP SD38nhP5ieSvzL1JLvVfMvmn/lYkZ1wadf65I3oi2ubkGS1iit7gCeON+DFgw4ig6Zj6jS5IwhLh 35V+twsxmDUt9/h8C8tsbf8ARskvmCzMWlWZ9Ty/qs96EEfroGUhSBI7L8B4ORVf5jTMKcJ0TWwP 4DimxG2aaBBqf1PS9Yv7651Ty7qf1jTvK01yomreRLX0DPdPD+5DyBQ32a9DmVpZZo/SLA6OZgln N8B2exX/AJr886CdHsrbS1g0t0h+NLROSXbwL61TaXSciZCI1HHpvypmMdDCR4iJgjuntz5bguxw 6vU1/Dy7uvzS7z5rXkv8yIPyh8neXfNUmia35chu7HzZ5c13VI7G0e8ll+tXVuRRAJJHYhGkeoFA vid3p8UcmIyySq7AF2eXwa8ZzRBkYmjz6ftqlTzt5H8nJLp6zfmN5O0HU44LlLHQX1a51mfS7BSv 7ma4tYJkfup3anTxzJ0ccGmlxS9Qo0L538+TgauUc4EeXLdKfLf5w+VtDurXUfMWo3fnePQoVs9H 0iCQpphZWVFEF03ErCUhPFXhpy7HrmFLWTjOIw0AT6r6DydlpZaTgkNREkgemtx8eReM/mJ+Z35a eZr3UNS0ny1c+X7a8uZJ20a71G4umEhIfmZrWOCOMNKSpjKMOG47ZmjUwyGjE2epNOLl1+QYvDia j3fs/ayLyn+Yfma8t30vR/M2jeRrUFU07SII3n9VJiRO5nuGd5AE2DEgnagzJxaPPGo48gjH58/P rt1dPCxHcF6Cn5A/m/5z8vy695k/Nbyuvkiw53VubjXLW3u5lKH0fXjdeQrQKI3p4iuazNoJ8ZlK Yl/Svf3BujhMuYoN/lLb+RbPUIIfMGqaP5f0yzinhvNUnmkstQuDGzfWZbW5kjnt41UkeirmrEEL QHM3szQwyEAyjAHqTvtsT8HD1erlhBGONkPA71Y9L/SUUN7LrMd/qlzcpqAf15LmFpWEMhkovKq0 qaD2zkNceLUTANgEgF6PsPGeI5ZA7AD4nmzL8nPLt75u/MHRbE2E8tnb3X13UW5KVhjhI4GnXi7U +WZnYuj/ADOrxw50bPwdl2jqpYdPKRBF7e73P1bgb0Vht7ajxwkRqCQPTXjU0rUkjPZxsKfPyCea KjEYPD1GcxuH5k1YfPJDdSFVVSMUViCtWoAAQSakE/TgVUarAKyliN6E0+LwqOg+eSNKtIDEEOY6 mrSVPEn3HffGqYhchkIjaZwsigllj3BPfbJISvXoOej6tIyklLO4YAuaUMZBWngcrmBwn3H7kk0H 50mWF1aEVYn4ixU7f7LPncxNk+bRYqnehZGBUQKXl5Ul4/COQNORI6D2wEyJ3ZxAiPSjdBge2i1k qgv7dLNhKiseD0IHQCv45HJKyG3BAgnqGOSeZ3iItrfQRYqN0mtpbgqGG1DGzMOuW+CJC73YSyyi dhslP6VuK8vVm/vfU40f7dOPpfLv45LwR5MfHk//0erSvqJaQteWyOC9X9MswqaVBrT8M8cIdaDX JAx2mrCQTTa8zg9vTjAApQcQg+HAbQIk7qP1fWlLKPMtxEpbmCyIB4A1OHzUggc2CjWPOd5qdxZa Tqq3dvBSN7lghBam9BQ9PEGmWXEC+rUDO9qpHNp2tSUe9f1pKH1OW5AHcsKAV9sq4jZ2buEnmr2W lyRXKPFGxuozUyyLzRRStY1J47jucBJTwEdWXQpNGONzcI55eoXIRAv+SKAVxSbJq0x9C2QrIQlB sG3J33PtTI2WRiFGSNbwArczAU4gxHgQT70OAhhwWEgl0ZGmjnXUnMUT7x3Ki4IfsU5A5KNgMRi7 irahYHkL83lqzuN4pIVhFabcuP8ADJYsWTMagCfcyGORNjdhusatoukxM18BdXDr/o1tBFPcO7Cn ILFGjM1Pegze6T2eyT9WU8I7huf1ByI4f5zAodT8za+yx/o+68iaBJsdWuVifVZVJ6W9sX4w1/mk qR2WubmQ/Jw4NNjuXf8ArJ5p4pAVGNfes83fk9+Vfm/SvqK2o0vUkDG118SCW5aVhu920js1wHP2 i5r4UzVafJ2jiycUomQPMbfZ3NXhTJ5MH8i67+aX5W3f+E9Y0K7/ADD8l2C+lYXOlstxPaRncNZy k8igHWCTYfs0zqcGfjAlRHkebZHxIGiLD6a13RNH84eV4NP1/S4tc8uamvq2kF4jxyW7SqCWjrSW 0ulAow796jL5RExY5uSQJCjyfONzF+ZH/OO/LUrNLv8ANz8lUot3bbDXfL0bEBiqbkJv2rEw6hDv kInp1YcJhy3D6A8oecvJ/wCZfltb3y9c2vmvyvcbyWEzCGazlI+xMo/e2sw7FfhbxOQ1WkjlHDki y2kKO4YRrOnfle0Mdt6s2pvbsZOTq8lxbTxt0eoET8TWhAI8RkdH2JjgCTEgDre7hZ80MG0a4j3/ AKaeJap5j1HyTd6hqflw3Istcmk+ta0zCWYBy3pBuCoqIoP2SOtOOavUQy4SeAjhP8QN38ehXHqx liasV3vGLlNe1d9UlmeXW9Su5RIs90XMjlxyEiQ1YxCnXmR45jGceIEmvx1PX4IBo2j/AC15B1nz JdiKzs31MI6pPb2DtIYWIpSaX4IwDXcgk+22ESJ2gCT7vx9tJAJsU+4fy4/5w58ySaXHq3nq/svI HlaWLlK1xI1v61SOUnqt/pUrNToige+ZePs6WQ3kP47q5U3RwE7yL6V0W0/J78u4Fs/I3lZvO+sx /BDrWsRtb2HMUAMdmhM09SNvVbfwzZ4tNjw/SG+MRHkG9fk1vVIb8eb/ANE6Jb6mitcafFplnbXk ydOKRW8QmUAbVkdfpy/iPyS+Y/Pbfk95W0aGw8qflOPMvnC3vEksns9VuU9VVbmBc2Rle0Kk0BCq TTtjLtmMJcEsm/l6i4+Twx0ssV8r+fv+cjtT0D9B6l5g0r8pvL9086TR6Dp6Q65fRySMy273ER9V UQfDxiCKR1ByjLPJqbEAQD1KAZnYbBk8+ga3p9pNaS+Y21ue/VIv0bfQJO7wUPMzEqWZWI2BIAPX K4wGP+OV/A+78Wzox2uywS8/KDyRqaXV75x8pxzXl7cgQ3+nr9UumES8RtayLGiqu++2XYYT4TxE beVbebOFx35Hy2eaaz/zj/5Ykmurvy5p3mvRpoiG05LC4jv4ZGJICkTcX3b7RrQeOUjVZASIgnn3 U2x1Uyep9+6C8sadc6Nbxn8wptb161guYIYvLqRJEJArSLNHc3kg5IkezD0j7g5g6jPOYsjh+H6W 46uR57Pon8r4/wAodA8oa3rfmPWvKthJa2N5F5e0LUtHm1lLeab1Alz9ZQ/WHb7I4MaCpYnYZotV jzxlx4+GVkXuL91FOL8uSeKgfxuof8rC/Kq188WfmC6/I+01UXfl5rTUvK9rHGlreTW8CA6hpazK 4hjYsS3qOKgfZqcc2g1WSNR9JJva/tbIZMOOV8Np9oo8jeapdcn8+/k9pOjaRr91Y/4f+qRqU8va fawFeYSzj5zzSCUPupFRu1NxZLQazDjAhua3P4PJEZYJTJlGge7uZRcf84q+QfME09zF5h8lebIL 3yjbvBqkk1n5ck0u8uZvTtLq4tLHg0zsmyCWlX6iuYce1c+H6hLYnluPtbzo8Ux6ZCjX42VZv+cB 7W8Fjb+UvzQtLG0s5mtdZ1KW6naKSZbqONo5LcMyqyKWHGtf2mO9Mv0/b85XxkRvv+/kxn2dwgcB JPkjdC/ML84PyB81/wDKuvOOveWZvJcGl3sflT9FWdrayI8zPBb3bXFmEuFLbOVkfk67nrm2wcWe HEDfKj0P9jjxjOM+GZ6PLfLXm7zPYgXZ1PyPceY/NF1MnmXXrrTvVl+rl3cRRWvIxcGPxANsp7Vq czQJxiIx2Hk3wEgBR3G/9ncy1dR1TXfMH1+9vfIOl2mjWXqaZa6ZBcWi3JuZeEpvkDPHO0KEhFZA orXtldyOxFj4fe7DHq9XEEDJsduZTPRDqmhaUbnSvzZ8n+U9d/SVhp9zLpFl6NtPpKznnE/Kg2DM ananU5EY5D6YbNOSeQwqUwTX2PP/AMzPzJay816nD5I1oXUFnr8N/B5kjFqDfInKcsziNiSGmkQg /Cy0BrkNR2kRLhNgg/i3TajUShLguwOSXD8zF/MO7tIdZGkapqsHmC7utctbaxsZhJpjj10guljt xKnxMeDB2psopQZOEvzUOA3GF92587XHLigZbXypi/nXX9L1wy2n5h/mVcarqVvIzWaRMtrLZ1tw kcJto4VoiBAENBxO/fMnwfCHDGZA9zZiymd8Rrb3POvMs/krVNEhs/J2pXd3rEOnxrqF9dXt1cEK 1A6zpcARuVckhxxKjahIrlOeBiBQJv5eaM/CI+k2eVeTzeD8t9b1COe9m856Za3tvdiKae6itwsz RAAKQCzSAcd2AIPcnIxnO68Oh5kBo/MZKo0yOw8l3F1cWbeYPzUlh0wymO7i06xmgjMDNVq+iIjw LE0P4UzN02I6mZxxlCJrv4i4WbN4Yvm+k9O/5xJW20ZPPXlbUtN/M3yzFHFJe6Hp1yJ7uhdUkWFf jAb4qKripINaDfJZ+xp4h9ZkOtDhaI6/j2OzM9X/AC//AChtvKS63+XnmKaTzcnIQflLqGktPqk8 vqoGinRQaJCnIPKg4EigbLY9mYMsScIHGBfrPKveyx6iUZAZI7XzD6v8u/8AOGvm3VNN8v3vmnzr pWnznjeXXlpNGhu4rAyqpMEVwzRSuyeJNFPQEZy+PtrNiy8UK2+Xy5fF6Q4sRhwkF+eX516H5r8g /ml5u0Dy9aW2v2d1qEdjo/mP0liEj+mnqlbZXkEYEj+mPiFSOXfNlp+0hlh4s5VxnaIHW+n3uxzd nwxYsfGN5cgTfIXZ9zEbjyFNAtuvmq0fVtYnuVludN06Ai6hhTdp7+S2k4UJNEAUtTxOZkoTERKc L7vL48/e6LOIGR4A+1NM/wCcUbrzN5e0rXdO0e3WG4trMreadcR3kRUkiWLjJMgRowPjBXkK9zko dl6eXqIA+1OPVZcUeCBIHPZ6H5Z/Jzyx5TltrW+07V/JWv3CSpBdQCNLmVENRJ9WQAXCVANI3rT9 kHM7BpcWGV45VLv5BqyZ8mQVMkp55afz1pnmO90DzjJaatpK2I1Dyz5wsFYWl9b+pwPFmUMrDo6N 8Skb7Z03ZWTU1KOolEkd3P4/rdZngALHV6Qjgo00DiVJSAnAgKF7kMOtfnm5BcYiua9SnplzVQWa poOo8fnTHokrbadpkjuGhkt/VRX9GQAOgI+y9CfiHQ0OPRjW6IDjkxAZqbbbq3j92IK00Kt6jhga CiEmgqOtRX3xOylJ/MMMkuj6jGxUCSzuBxc16xNSgANQfA4kcQo9UB+cw4iRSXZQVA2AIJHhXpnz vL6iPM/e0mItz3CRh/WUhlI4rQECvfJRHcg+lG6Dro03TfMrygyie2EMIYck5FzRWB2r3yqcDY83 L0+YAG2Fy3dsCGqVDkMkQNTy8CKUGWCBazMDkdl3rQV+1/uzxX+8p06dffI0Wz4v/9LtMoRvUlkW MqzORU140NNwAKDfPGZSoutut2Na1rVxolvHLBp0l/zAKekjCKnTnyI6Dx3rhjMSPciWXhBoMKl8 xaXqLrdave3MjgMVs4o/QiIrTj2Zqe5plgB5Bqjk4iDJl2mNZzWyzWEMduCoESRsA9Ad1JBanyyJ 827cbhF/X9Os5J0vrtYJHpVAeRG21SBthtnxBQt77T7yQ28E6vLuY1jblyAP2vh3wEE8mETZRct5 osE0LTXkJlQBXQgO6HuKCvH6d8hR6szIKU2uaJbRvIdTt5FY8RbVDMSTU1YjYDDwsa82j5g0u3li jmvGVpEZ4reNPtUFeQI2Iy3T6WeonwYxuWzGLlTHrrzLJNdQ6fAotKxG9nRHUSLaK/D1KndmZyFA Ue5oOvV6XsXTYpiMj4k/Pl+Pe5MYxBrq8188+dPM2i3kGleV/Jkmu38sa3N9rN7J6NpbrNvGgnIZ pJCvxEIKL065n5tXg0o4LAPcB+gMcufw9gGEafbfnj5quLia1vtM05bdy06WdnPcIiNtR5JpFBXt 9nNLqO1od8z8eH7nG/MylyTu18jefLX1f0n5zu7eVxSa30vTdPhQL7l4nP3HNfLtKB5Qv3ykf0o8 QndEweTtZsYhNP8AmLr1ZXPpK0Ni5V69ATBUbZAdoAcsUPt/Wx3Y75h0DzPqthfadbfmVNqDCKr6 bJptmZA3RKTwrG6sD0YHrmXptaeOJGI35GX3KAenN5Zptt/zkF5J0u41yw1zVb+1aMPe6XflrqQ2 5qCJLacO37J3ViVHhnW4BLLKieH8crcyMZxHO2aflL+Z+v695ij07Q7q2j1K/mkun8tX93JJO8Tx kzSWk8nJ5FVV3hPw79DlcsOfBOpUQTv+OjbE2yzzT+Wnl7TPO2jeevy31G88jeZryf8A52fQNIEa 6bqUUmzK8B+GIyMaNHQqx3AXrm2hKcoereI6sJUDtzQH5b+fvIlz5iuPIXm/Qrr8uPzT028aOx0v Wn9Bbh2JED2krcYg5VhSKQFWO6McrOaUr7ixEY3uN3pGqflZp0q3d/H6qebmIt7mTgPqdzEWLCO+ glZUjI7uq0J/ZzXZ8BEuPEQO8fwnyScQ5jm8lvvKkWn3OqwXMK2rWlxx1PSYGoYJNlDfWI3LTRse jctqhT2zR9o6WWERywHpPfvw+Xu7i4+aBizz8sPOnlT8t7m4vHlOk6608d/pHpQtIZfq1WKpHT0y UO/FhvXxy/srVQhCXHzBbsMxW760i/PrRvP81lqf5m+a9RvtIaEOnl+0kg0+XlsRHKhA4gnqdz4Z uvz2A7ymPm2+JHvSHzf+e/lQypYfln5R/QF0/My/o6aWe5n+EAVuZF5oAFNREByqanMTN2ri5Yhx ny5fNrlnHIbvDL+bzPr8gg1TUms0mJkfQdLrLdFWZl5TEGgBpu0jUyqOm1Oq3yy4I9w2YmM589k3 0fTdH0KCd7SyWHVbYMFvreVLi5jEijkZbl19KOpQhgtQuZWHDhwbY42WUYxhy5qulvbSyPLBMdPs 3kVm1C3ZmLlGDcJb6arOx3HFCVPtmRIZCLma8mR357K9/fQXV3Fe3l0lzbSsI7dXJtbMgkFRwQ+t cVDePGvbDHKSP3cfiV4iTswr8yNVvLG+8qeXrLTrG71nUHYHVZkBW2tDVCyWiNxUqCKF9ielcx8+ QgCN2UmN893jmreZGtZ9I0TyV5s1jWdY095v0hrZuxwMsgP7r0mokgSmxaiqPfMc5jKhEjbv2CZG hskmuXvnzV9Zh0jUr+G7vNa42sXl/R7mO7IWNSATJEfSjruWLVpvTfMTUYc0peokk/AfJoInM7s9 0j8t9O8m2L6j53vjfwalxjsfKkCtKY7plBjVZSQWFGIIoKnLPyIjHjmCSP5o+9mccYblUv8AXdd1 bV7fRNA8t2OlIFkXStMgQCZYvhIEzmIpGoZKkEig3yueo1E6EIygPd89z5MDlkdgKZbaeXbrRpbf WNf1W61Ge7t5Lpo9EvfQsLccgokuZXoCpI3kAArQAHM7Hpss4erIeV8wE0epTG7TQvruq76zLIZL SOadpEMXqU5qyJIhedhSqA1r1plx0Vgbk/EMxKu9AG+06K30+e01nzBZRyPeXpaFIxPPO4EbySBE UIXDUdm6DYkUys6AEk1/ufwWQzEDmUgn8keTNX1W8PmDWb3VX02OAXMuowq9qixxgiC24kDiimgj QVY71pmTHTyoAbDath80cybJea6D+XPkW51m9fWbq50tpXlFhpU9lGrS2wP97GgbnGoBqzv07bZT j08pSMQSDv3fj5MiPNk1t+T35cImrWh1ki6kdGtnmhWSO1tpF9SOjsw5FlB40ryycdDOA5n7EUO9 GaH+Tn5XzxWU1xrbtbSQPJE936MErcGVSzBiOQYkgkinhjLSyjte49zLztN9O/LLyJo99r0iXo1X RVjF3d+WeKSJJErNGkoMfBlJkBCqppt0yEdHYEjuO/8Aauwbh8wWnk5NG1/8sp7jytqZglnXVtOc Wt3HwoEjm+rBQ0R47q9RX4uuZOGURvHkAyxkSFh6p5De+lvLvzp/zkzoc35i+T9Xso1vfOVrqci6 vBdegxs2EUMsAuAVUKI5KBachvWtk54J7SJ4ufD+O5nLFK96rvS3yv8A8qI1CbTdM83aS+j+XIJN RGn/AJ1avBPca1qNpHIUSC90m0aWIVYFFb7VFDH7RzEzRxZJb8vj9zWYRG32sg1W2/JGKOeXy5ex 6r5ekuHt9L1xbC40+dzGAWjEbjkAlaVHwnMPPptHGPrAAPXcNU8eMDd4L598gabrd+fMPkTXmea3 t1S70KUSJNHClayQkj94u9WVwQOtRmMDgxRMsErrehz946tE4RI9O/k8P0DXvzQ/L3V2n8oeZL2z v6BucMn1S/4kkKpFRHcIenxKRv0zYDtyeSAuVeY/S40cGOR3HR9R/lZ/zl7+anlb8wvL975+isJL eWO753N7p2nWjyGC3Yogu4FEqiNiDxWgNKd8r1etOo0044TeQ0LA6E/qcnQ6fH48eL6RZ59XsFn/ AM5t/md5i86aPqNt5qFp5aeynsLbR7S1t5oNVmltnSG6kBCyQsZqMvBuIqK1GV4ewMGLCYZiTI8z E/YP1uznqzxCWMCr6/pfF+pX93eyXf5jW1xdaPrevXX6TuobljMFvZpyX4gmgCOD9kUzS5cctNlG E7jH9Ndw5fYo12YZZGZviv5eT2/TPzQsEuoz5o02XyZeWkqO3mK0Am07UGIU1njWhDMRt1I8R0zb Yu0Y5REykRId24+I/SmOGGc3hl8Dsf2stiefWb2ObyR57uNEjiNzMml6dc+hbRTXJDTsptJUHOWg 5c1r75uNNqNJl2nG/MH9rRm0+WO0gR+O9lOlfkt50v8AV9L1rW/NeoXM1jOksFyLiWWaKrBi8cjM xU132750WLsnACJDGN+/f73XnIA+nrfyxr8iW9tefmJ5qOnW6Sr+iJbm2ltphMTzZ4mtiCxqamvf 3zYY9BCEjMEgkUd+bCWpNVQLKPLug6T5Y0m30PQbOHTtJsqiG0gThGrk8nYKuwLEkmm2ZuOAxgRj sHGnOU5GRNlN0gAlmZZayXAQyozFloq8RxHQVG598spFqhqgjjI5EsVU0qAQCRuBUfTjaFXmII3l cJFGtWlcMQKUqWY/RuTgSFJR6iepQl2WqRluS0psRTbfFjxKU8ck9jdQSJwa5gkiWKopuCNmWh3B ycPqCLfmzbqjrNEVIMDPGxZTxLxsUNG3r0658/dp6eWn1OTGekj97Da6Q1xbP0eRKlFKl/tCp3rW h+WYsZNMom912o2toug6ZPJcSxte3UvCzKVSQg0EgJNaAClcEZHiLknHcQxaWTSZ4YF4i3k9VmMs CtVgDuCSSB7ZaDIMfDFbqnqeVq09O85c/s0P9/StPu3xrL5I4Yeb/9PpsfmW9naVJYLE2zzOpR/3 clVPXiGc026HPFZVbrBls1SW6vq1lDKpe4lkDf3dnApc77VKgUI+YwC5MiYR5c2FanNq1yTBaabH Ij/E8ZVC4FOqj7IJ8MtxwHO2ucj1DErazeFpxcWLWjhmCIk8kMpI3FSeQAy+Zrk0iJJSu+1GQc4r OSaVuA9RFZJnFPFx4+GWY8Y5ya8suE1H9aoNS1zTbdQF9NmAYkyekSrCu6gCppjwQkebWcsxsEyX 9J3EazrYXKM68xII5FWQkV5LxDE/PK+CPe3Ry5K3DL9G1bTtLiButJiSRIy31qZyJie49J1Y0rlc gb2boSI5sd1ySfW72x1nQ1a0v9E9WlvcuXtruOdeMkbpHV4zsCjgbHqKZsuzNZ+TyEkWD822Gcxl bBdVntdR8x6V5ps9Sfyp5v0K0bT2XU4ml0+9sXblLbSmM8WUt0dGBG21QM67Dq8GbeEhZ+BcoTjI 3E0XrOh+Z7mSK3XUtF9RY24p+j7uK9T023qHXi4UV6OlR45ja/szHqtz6ZVzHL4s5QE9yN2WnXXh jmfTn/RaPRZJUZ1fl23Ucdv8oZz+bsLND6ZRP2fe0nT77MF82+f5PLmkDUNSvo3ubt/q+mmNHuJ7 mY9mAbj1pXw60yj+SswIsCj1Bahp8hPR5r5i1X8wNTj8pzSRehNds41W2iZEtAk9QBcN9qX4QWHC h7UzY4eyOHnyPzDkY9Pw82Sfk/8Al/rX+KbnTfy50fU/PesTow1C809GbSrGWJX/AHV1qDyIoqzV KtyIHbNvCcdOaG5Lkxif4X2HB/zhJ+cereWWn13z/ZQ65dS849E09Uigs4qMwi9ZkYzMGcgsSg9j 1xODV5RV8I9/4pM4WKt88+bf+fYn5l3t7a63pWrWtnqqSiW5exKwUZaESRGKfkklRWq7e2WY8Orx AxNS7t7LUMP9JgfmvStf/JvU9Ol/NzWtHEU+r/UV1G0upby+imMYS3l1NOPwx/C1XXfkalT1zLx6 ucgYGNcvd7gzlj4KkVH8wvLPk/8AOXQbXRNW8q3WvTRRkeWfOFs8drPZrWvqWd9ICLmEkf3ZVh7q d8yoQrfiAvpztEiDtTyKbS/zf/LW307y3+Znma8178prlvqVn+Yugzg6hbwPt9XuTKOTcRt6UprS vpscv00vUaAJHQtcxIc+T6k8rab5Rk8uWb6WB540D0Xi0WR7ii0lSkkcTqEWGVgBySRQa9u+UZ4H ISJCr5jvZiIqjuHn2oflz5miitdS0fSG1CwnZkeOOSN57JWJCJdldht+2tVOcjqeycmOfDD1AuLL BIctwxvSvK3mW+8wX2j38Rl06zjgkjm0qRTVy9JI5p3BRAADypvvtmbpuwwDeXZmNOOr1668uR6H pq3noQWtqkkMMlhZXAtlZH+Em4vJv3kvGpNF416Uzd48UMQ4cUd20R4RsEhF/JcXC6PHay28EkD3 BvBBJa6PCFQM4eSglmrXlvTfvlc/qrKT8E1YUZNV0STTBq7axBNp8g5Wl9dKBb+seaD6rp8e7sWp TmSGB65IZxQMKjEmrRfdyTONZrWa2TWNQWDULxCdNtZeE9/IDRh9Ws0IigHw1XlyIOMvBxy9R4pI Pmg9S1/SPLl99VEqxanPC78lYXmpTCIDkZZj+7twR8LgUIPQYZZJ5CI3w3yCd/c+XPzH8z3/AJg1 IX06totyljHpcVgsn1mR0Ylj6soI5HcHYbHbNPqsg4+EXY57sTLp3Mx/Lb8shb+Xr/zD5jtvQ0aG F2ksA787l03oSPsqdq0Fe2V48Pjnj/gj17/x3sYwMzfRiHk/zAWnvI9BitdLvtSLwNfqBE9tbO5W OzsozyqD9oileRyGbUnHH03ZWczHaL6G0X8rLPRobG61nW9WXzHcAyRSxTF5gFWtHYqwAA2NOIHT c5ttDizQBnOVEjle0f1lMcZG5O7K7C/isLV30knTbGSJNQtoZLF2dY0Pp3BkJqXllPQVzMnKU95W dvx82VpLcvbJcoB9QUm5ktmiktZxR7xOdurdAxXq1RxGQs+fy6H9SAfxXehLeGSeKMWj6Y108cdz bHjcAtJZuVvZAVAY0GwYb02XbD+OXd+OS7fjyZ5D5ds3t4pW0qCGzuPUq31p1C2zjlyZCo2P8nQH cmuTPBV9K7mzhiRy2eNebfzYt7EjS/Idsr28Jb6z5yuURo+cXwlbUy0MstBQHr/LmGdR4gkYmojm f0RQZgcnl9pf3mkKvmTzZYx6bY69cCKLWNVv+N7dyMAODI7huLjbpuDTMTBjEskZm9j5/iu+9mOP ecTLZ9D2SfmvqNh5V8r/AJWeUvLN/pWj3E2raPbpZC+1O+hluSyRXs1yJXlgiNY/g4pT4Tvm6/wW RlkyxsnbdzfCzbCFV8N/m+sfyX/Ne3sPNvnXS/8AnJHy75Y0izt7dBY2Y0iz+qaNeWBCXVjbQxWn qGMgq5LSNxYf5WUZ9BhyiMse19aJv4IjKQ2JeNeftQ/KDzX+bOt+edJ8nrq35dWEdtNdeULeRdPX VJmaRGkeiEwcpGV0CkbA1G9MysOE4sYwncH7mOQDJv3DdZf/AJsfkBpHl9/Lel/84zWj6ndgwaXc ar5g+tzh7k8VHLgJX48jxUNtthho8eHoQOf1NcZUKj9zwvQ9J1X80fMFz5DXVJ/KOn3GptFJdtJ/ oSXNlGJj9ZO6II1YUYj2HWmZECB6xHiJv5e9ZXZieTyHz/8AmM35WXmjeXtO1O+0eXW7F7m8sLa1 Uzy3kFx9TkLjiSrFAxAHamYMsYjvwj9SRPw9nrGl/mjqP5madIdc0NNNutE0y6tIZjZmyn1GKEKt u0kYcoWiA58lRW6g1zn9QYEyjE8Q4SaG+/l7ubDUZ45um4v9iS6NdwWeq6ZezSzW8VrcJJLLGObh Aami1FajYjwzUabJHHljK6APc6+BAINsb806Bql5qF/capDa2Fixe60MWbiZJIZObJN6pVCoAoCB utNt8yz4eDNRvhlvt3HlXeykOEs11H8u9Cm/K7y7r+o6VZpdzzi21HWbiNpEkhKl1W0MrNxV5CoJ PEtQ52+j0uHDpeOMas8+89EwProPFdK8updXMOn3eozz2r3qJpljGgi9GOA84lRl40VWUMaUPbK4 xyRHDPdywITujz/HJnNzZS6ld6np95FIttaXTXVkAiiP41WaUbfECrktSlDSvjmn7VwceIZIC5R2 Nc6/H2JzCgJHnX7P2n3sH1l3bzVp+nRzS3EFjYcrpZGLg824qzV2JB75zUR+5MupLkdjD/CIn3/c mEMMdlRrSJbekyuhRaEsXBJqO5ykSJkCTyp7MxABD9jLNQbe2ZZFeP0Imq3Gm6KwFBQ7Z71EbD3P lpFFM4A4/etM0nqGqk/s7dvY9MIYFdQqABKQKk1UVqD0B9/lkl5qyKCxegSRvhNB8TAdN+opWuC0 NqYwQpapU047cvvJwq3L6ciTBlSZWUpLESCjKdiHHSlOoOHmKQDRX8lVFUKBHSsQBKhabUDbdu2P RG5LTuvp15mqkK60atCaHYEdcC8T88/zD0BvLXn/AF7R5Q0Fjqcz6rokuzERTmsigDeqtXY55t7a dncMxqYjY7S/Qf0LlxggS68iw+9ui4SOzD84B8UjAFnIrQEncGgzghHvcfkRSbeetUu5IdLieCC3 ub3SVZZ1hR57dzsoDEqAo60pgwxje3IFzsk9qrmHmdvYwpNdy6hqc91LqCrSFwv7mRQKuAjfZYe2 ZE8l1wiqa8UYkVNX+qz1ryk/vuf2D/d0py69fbrlfH+PNt8KHf8AZ0f/1Di517zNxP1ew0W0toaq WFmjyx06/veBap9ic8cMocnTASO/JjNrDf3kV3d6lb3lxdsWpcWY4enGNwGZh8CnxJ2wmgduS3Yq R+THreaa3lVEa7tBLIVWa4b10hiP2iBFu2/yGWmjvY+DVEjpfxZJJpOly2sdpq1/PIzN+5uSeNua 9ijCoNMgJkHZsML5lG2WmaRP6dk3mLT9MsYV5Q34jWeQhRUhgtO/tjZvcMTjQVnLp1hqay2GpHWB HJxj1RYUMNdiSUmAOw7AYZQPXZjDJw8t3pE36D9ObUpfNEOo6qsSrb6a0JNwiqPikKKwjRd6KCSa 9sgcdBsOUS6hgaLpMtwmqz6utzO5J4zI0wiZTQg1BFQPE0wb8lG3VDajoM2pD6/a3UMFsGDBynCW Qk0qFU1K+9AMYZOHzTKBmdkfpPkeX1nt7y8trWOUGRriXeh7UIalPvwmXH5MhjMObzjzhqGheWdY tdJsbSDWHvmRV1L6w0UErM5EikEE8l4k1pQjoc2GmhlltGZHucjFjMt7r3MXs9Z1HzLqereWje33 lS0EhlsruJZAkkS8UMRnY1UEk9Kdts3mmx5SOHJOXxc2ECOZJenaRp35l/mZfxeSvyk8lXUljo01 vBF571BqwioDTIbydShb+bhyYDwy7JrJDaAAA+J/Y2xhKX0vrjyR/wA+7tG1HRNQf8xfPk+s67q7 PNLo2l3LR2NpITsVdSZJGVdgxpSvTI4NPLLfEa695+LKWIR52fseleXfy5/5yK8gafa+U/KWg2Uv lrSl9DSYLy4t5jFGop/fqYWYGlfiFc2uLQwjHmT8Gcc5iKpDS+e/zY/La+m1HXfzH8valqyWnpy+ QrDT/rNvG7MGPqXMEo4ulKfE3yXMbNkOE/uxuOt3s3AeJzYH+YH/ADkH5/8AN2nm2uNTTRdMmjCz adpQa3EpHX1JSxlYH+WoXIjUTyx3P6GyGEA7Pgz81NC1jz7pcGl6TpN5eGzv4bwXtvFzgikjJosh 6HnU9KnxzD1Wvhp9trPTybMugzZo+iJlv0Dw5PMPnT8ktU06985+QdXvNAWq6WGd/TRJXrMbKWNq QyVG6kcW7gjNnotTpNRAcG0o+f42cDPpM+n3yQIB6kbfN9teUvMvl/zv5b/TXlu6Or6PewIvmLRr +3CSQJMp422pWcnJa9Qrj4T1BrmRGpmwdx1DUJPNr38u/MHka9ufNX5KXUhF4Cde/LC/Y3FtdQR0 b/RGkIEwFNlJEin7DHpmwhqIz9Ob4S/X3fc18HWLI/K3n/TPzKs5dP0nVLryT5uiBF/5fV+F9GUH 7wQGQL9Yj2oUNHHcHDkwyxGyAQolbL38mSXMMJ8ua5c+Xdfbik1vJLTTb1gficLv6EjHcqBwPama TVabMZcWKfD79wiUDXpNFMl/Kf8AM4TrqV5rOg6hNCgWFbsmWNCCacQqgK3+V1zaYOxu0JQBGXGQ fIuJ48omjzY95qg/M/RYY5NZ0CObT7iNg+o6VIbgFSQGjIKSAVHivyzG1mm12j3liGSPfEn7Q2R1 NpJo08NlpiWlp+WupLCrwtI6WrTl2Dqx5PInLpWm/tmFj1OXNEDwJ0O4bMxqIg7hK7jWfL15qcV/ 5msb6yu7OExQ6ZDaNb+mobiqtctwlcEVqooPnksutxYZAzhKJ75R3T40erynzZ5x8vafpU2keStJ ktpIrlry6eZHdHdpCx40NDuQTyemYkO0OH+7jV3ua29wYzziqDy7yxpcus3s/mLU2vJaOJBJM4CM 6kkMEXsKdDms1WbgHBtZ/S4/Eb973bzX5nt9f8qPpnleec6Tp+nxtL6QKNK7UVifUpQciad/ozpI iGLRGUe6nLkajQ6PAfJWjW+n+ZdEfXLn9G2+j3v12Q2wD3jgBifTLgj4QN80ePPATBN19zDlKzyf TMvmn8rvNWpXOsW8l9Hd3VubC5e3Zomlg50ZmH7EZGztTl4Zt/H0x3lICx1tsOSB3t0w8jz+X7bR R5k1y1s7WFkjtFnkjVwvE+meNG4ct1BPJj1OE5NMRQyD5o4onql2ua5pyeZdAubXzBrl1Kl3HaoQ 0H1a3V4KfWDbU4PQChVth1w+LjMhUr+O39ixkD1YJ5i1u/OhQaWfPdzq0supXdpfat6JtFgKMZEj ijgVXkUgbsTxG/tlMs0QKMr+LLa+bP8AWrsLIJ7vzDf+YtMvLSGKHyxaToFvHjrH6jqxX0ENFB2q fDKcglqI3fo7gd5fqH2sZmxf4Lze/wDLmn6dpSN5mn/QvmCS4I0CG+YW9lZ2VA7/AFP1KryB2Ymt f2aE5ZpcMs0JxMZRIFgb1+CwsHm+zPJX/ORXmey8q6ToWpwaFcWegW4g02+utNsbqcxxfCGMt0jc iBShoKjN/ptPOWOJ5bDo3eLGOxHRMW/5yh/NhHl+peZ9MsIpbUwW01ppen28sULlmZIporeoFaEU pvv1zNjpjfPl5MTqBT5l8zeZr3UZpWkn53kt1fXd7qAfk07TCBn9TmKH4lqTSrFjXCI/vbNf2MZz 9DEk1YJpPmaASGaLXntHCL8TowB5RRgbLVl5bCuU58QMxK9rZY5HgPmlXkrWdC0LzZbajrWsx2Gn wySK/Mn1LaUIjKxUgn4gpAA7+FcxO0cUpYjGAslt0kgJ3LZ9C/kFN5C1nUZ5vP2t3Hl3ytq17rdy fMkSNWIQXbrbs/EM1JVFPsmhplumyxwxuYvb5Ms0eLYGnu/53/lf+Tn5raf5MsP+cbV0vz5+ZWjX V1c6vIZ5Dq09g8Y9eYy3gjUhZQlVBFCfhHXNL2tp5aojwTv1jdBqyxMo11D5I8xflv8Amp+VXmLy paeZvIN9p2oeZLg2+ipLLEC9ySI4uDx+sleTbhyoI6kZrtH2TmgZZMkSOEemq3LRjxb77F6Ef+cY P+cjUkAH5V6mEVv3zNLZgdSSVpcb1+7NfPsrURiZSgR8R+vZqGCR6MF/PDyd+ZHkLRfKunan5Zn0 C/ltza2unXphluJoi/K4mBhkdAgZqAk/Rl8sMJQhKRHDAVzF3z6dGWXGYgWPJ4FqNjc6hd6boq6t dWa/UxFplussixpO8haaQx19NzSgWuy75laLUSEJCQ+oirPp+TQqeT/K+oi8vNIvdXvL2QBzFq9v LwKAlgphZyKMvGpFKb5mCZyZoji5g3exAb4n12+qLHyjay6XdaZY6pJ/iFNBuCLe3ISU3NuRNEry SkBlmDEPRqVPXN4NGMglijL1GPTY2OXzHNlkzDhMfN8bWtxf3HmJLvUo2M91Z8JplQrHG0bMAhIN D4Ab5wuogIQMRtRdp2HEeMD5FmqpE0lus7kW5kiM7AVIQOCxHuBXMDGRxC+QIewldGu5+kdt/wA5 B/k4oKLr00KqiqA9lOK8VA32PYZ63H2r7OP8ZH+aXgZdh63nw/aHonlDz95T882t9eeVdUN/BpjL FeOYpIhE0g5KD6gFdhm10Haem1wkcEuIR57EVfvcHVaLLpSBkFEsveZY4kkoZ1YijKOYYn/V3GZ7 i0q8uQVQN2PQmvTt/tYoXOVQHkDG7j4JDUgfPocTyVeVU83Rak/aYChYDehC9cVU6K6GNl5AtzAk rseopU7U7YqvjcyBHB5A1bkS2wp70PXFXhH54eQT5l8vnUNKRF1vQK3tpzDFnUD95HyYk0ZRWlcx NbpIanFLHLkRTOBBFHkXxlbS2s1stxH6oVz/AKRGQAY5B8NOXeh7Z4f2ho8mkzSwz5g7eY73GnAQ ky/zVp02qQWWsxQtd2draKXmgl2hKDclVIrv3pmuxkxNHq5M4iYsPM5LiC4gZlginl5AzSyRcTw7 sWAqdxTMkRILUJXsFb1IOP8AxzrP+75/b/Z5demD4ln6/J//1Zjca35asIjaokmoXskrROt05gSN m35IFHSvjnjBgeK6cCUoRjR3KXDV4bSK5hkMM1veURCrOp5L3FKhh7HBwlhcY7UkkclxMgaScJaS PxMk8Crs3QRqN+XhvQZLkwlEJc9lpdndyX11JKE40iDkeq8nQBF3qT4jJiRkKDXKAvdklvaWBW1n JtuU5BhgeEGQEjZWVF5EeNTvkLSBQqKGTTNBm1CGOcR3+p3twY0eJfq8S067FQqKK7knfJcciNtg xnGA57pj5s8pfoO+gsUudDMl5F6ss1rLHdSQIafbYbJSuwBLHJAkczfx2axV0BX3sf07yxbTzus9 xPbW8jfvtQVXAHEU5CPioHtXInJTdHEav7WBeYNeuo9SPl/8v9Tvtf1y3dWvJVjZbK0g5MshkkkY BmFKHjt882mj7OyZtzHYt+LCSbvZCXUWgfpSe41HzXeeZdW0yVWnsYXPo212qt+6acjjRqbK6mvb NrDQYsI9R4j3AbfNzIYQBR3eieRdB89fnHq1hqHkb8uvV0y3ikgivriLjberA9JCkoT96FLBSqA8 Sd2UZkjVk0IQvbYV+NnIhHbYfqfd3lD/AJwd0jVtOe7/ADX1SbU9S1GIi70KzkaGxhDIqhAkDpUr QmvNt++ZMNFmyniySryH601Ghe/2BX8vf847/ml+VS33l38qRZ6Z5MkuGns9NfUnuYYyTT1At+JJ Iy6gFlViOW+Z2LSivVz+DZHJwCo7BKddk89eUr62v9X/ADmb/E+mCd49H8uw291bROUZQlyHhjQG jUPJmp1C9DmLmmIH0V7+79DaJGQ3Ylf/AJ3fmJ5w0a1sNX8wv6J5R3EFhGLVrk1pSQwnk/yFAe+Y cdbKYPEf0MpYuE7Bfpf5Kfmb5t0+8bTNGt9Ejlt3+pX+us1pas7LWMlADKVJ6lVPzy0YzlFcgep2 YifD5qV9+Ufl78v4bz/lY3mayv7zRwBPHDG1tYySceYWNJHMkpNfhUnfOf1GqyDIdPilXCSCa5/H oHoNBj8PGNRlxccTy9QA+R5vL9H1PQPMaK5/M1Ut7G4LLb2tqLeSCJV+G24CNwpr9viK9gRleo0o xdImx3k35uXD2m05NTMo13AbeTK7qbyB5oj0r8t2sW8w3Hmi6j07Tba5j9C2uLmUlUaVqVAUtWtN qbb5h6XR5smX0bH3tup9ptFOHhgGd94ofj4Ppj8nP+cGvyg/KrULzXbiC781a3dswhN5M62lpAw3 to4oyvqoDWpm5E7bZ6Li05GOMZmyBvXpBP3vEZZxlMyiOEXsOdMy/Nb/AJxs8v8AmmCXVvJNraeX fMCIp+oIgisboxiijigpC9OjoKH9oHrl3DQ2/H4/FMOb8yvzQ/J3TvMN5Pa+aLK58l/mBojBY/NM ERSeOQUERvooyPVioKrMh5DqCcli1EsOw3j1B/R+pjKIlz597zzTvP3mTyJq1n5a/OW1kVZgBon5 iWifWrW9h6crgAUmUilXWkqftqcyDhhmHFhPwYcRjtJ9K+X/ADRLp4tRGya1pN0oksnWZbhTCxBU 20gJDjwr+GVafNk00uLGa7x0K5MccgqW70KK6s9Ylt7/AE/UHdY1ZbhElIMMjj4VKn7H2elN86PT a+GpI/hl3H9He4GTBLH5jvTKIXn6MjdZWWQSoWVWJZvT7ciT1pvmdxS4Wk83yj/zkZc6tqGvWHl7 UpZE8tLaQXcNkqgLeTkktJLJQMwQgAKDTxrnn/tjr9RDNHEBUKu65n3+SYig8FlsrWW3a0eEeg44 tAKqOPgCDUD6c4QZCJcQO7NYsFraQ/V4Y0ihH93bxClK9aDriZGRsqwvR5b3StV1/TtNUu2pWbxt YxspkkjIJD26/YDqT8RapI6DOr0GXjx/zhylHv8ANzIETFInyzoOiSSacuuvJrtqDIbqGGR4rmZC eB5OQJFq37NAG8MwTmhptRc4ccO7l+CO5oncdn3H5I/J7yNow+t2/ky14zW6SmO7irISUHFZ0IpU E9Ogz0fS9n4CBI4xyv1DcX5dGkkl57+eZTyZoum3tv8Alr5Y1FLgCG2kWSeK8WYDlI621vwMgQU+ 03fNT274emETLDj4DsL+q+vwTAWeb4F1bzdr9rf3l29tDpzNIkxgiZpIUV9o0fmzOvXpXtnHnBjy kmIoHoNq93k2iIQ8mp61qrQaimpPprwM6SARswBkH7MCFldh0+Lpg4IY/TV/jvZY+r0zz/PcaPpe k3On2iXkjaTBcXepy8m+smSokkKqNgh24huOWjBCBhwiozHnz7uaeEAimD6f5hTz1Z6H5e8xrNrt 3DbNY6U82pNAVgldpTGodWChmb7RYU6Z2WjgcMBA77NxAkAX0BfH865NM0vTtG/LG102w0TTo7FZ JLrThIkMCJHV5WQsxKxgs7jl18TgnpM87Pgmj/S2+9RqTHa+XkEs0/yb+bOqWt6dLihm0nVyzXM1 rdoI5GAVHVmeBAB/L6e1PDL4dmEkenb3nb7WH52Rv9QUrr8kvPVzocGmXOjwrDZSC5TlfSSyl0b1 AefLkWqPHfMo6DJbAZ75jdS07yf5/wBPEtxbaclrqsSyahDM11MLh5VUkUYvzWTiNht4DKTopEUR sAdu9l+au6597yi+h/T0sWs6zZWFw+rOlw2qTCSad5KBV9R5GB5ClCN6UyvHCJiPDG3u/ayOU85k b+b6L0q9TyzoOkwGy4XOlpMmoadJ6oeOa7l9f0pl2YEclJA2AI7Zr9ROP1Dlu5X8BHWk+/KpIfN/ nE2lxqGoaVNfw3n1+WyumiCGORnKxigIBIG3TIdnYvGz8MiaNlxTkMLI5hlX5teXbfyXqnl7TLfX tW1aLWNO1G4uV1G9adoHVeCyR03RlDcge5A3zN7R0mPAY8B5892WnzSndvFo/NXm60uw8fnjWZo4 5f3cTSySRuvHfkpYhgafR2zRSy8QohmNRIF6h5Z8+fl1eNeP+b3lvWvPV1WM+WptMv8A9GfU4ZYw 88b8kkMnKQggk7UpTMQ6TDliBkvbuIF+9lkyDL9deT588/6h5YsfPV5H5X03UdI0m5cXunWt7INQ uFimVWiiZwV5rH8RZlFCNiK1zCnjlika3iDtfd5/c4c4AE0wiTUtMjW3vDc6xqFoZWe711UaON2T qDHxFfCgyMp5J8wL7rtEQSU/d9R1LSdcuZlutbtr5E/0q3nlaQJQAqsT8mjZQRUfZ61y3BPimBUj 7v1sTYSjU7Oew0/QtageeWbTykc0b7F4GFDVT049BXMOUDxShKNX5Ob2dnOLLxD8DqyiGaC4hE8T iVJF5RupDDxO475rSCDu9zGccsLibsbPSdM/K7zTrVhbavpOntfaddjlb3COCKVpQiuxB2zudD7O aTV4Y5YGVSHf16jk8vPtzPEmJAsPsb/nHDyrrPlLy15og1mzawuL/U4mjt3rV40hp9Aqc6rsXsuG ghOMLqRB3dN2jrJaqUTKrAp9HLtQg8AgqCCBT2p4ZvHXtooDTSRL+/moWDFqNxFOhJH3DFV4EpMZ 9RfToeaUoa9t69MWNLlbipLHko+IEAsaeBHfFCqZCRUFglN2qBx9qHfCSqwUCPVl+EirEVqT0riV UXAkjLSRsTQLQE0NfCmwyNLyfBv51eSZ/JHmGbU7JPT8r+aJ/VliI+G3uBuwoKUDE/50zkfajsb8 1i8WA/eQuvMdR+psnHxI11DHImstR8ux39nCbOfRHYXFoqxkmF2JMiA7EVO+2eSEGMqO9sYH0e5D p+gZUtribTvWmjUlTyWJaMN6iMAdOxGJ4twC1nNjiN4/apen5Z/6scfSnH1Pw6fTj+870fmsX837 X//Wa15PaaZNFe6XeJNJ6ji49KJAeTHYO4JbahrQZ49LgMtiHS8Uq3C3TZLOLTXk1Ozlk0+5Pq22 nr+7nLEAc3YHck9Au2AkXV8mYB5gKmqa3+nRDFYIlmmmOqTvdzrFy24isjpWvyOEQ7+rV4pO6QRW NubwLc3VrKltJx9GOX1UrTkCGA3A8ckbAY8N7koW61+KS/s9It/qWhRUcPq06BHmiBoSFArv2oMn DDtxbnyWeW9tgzjS/NGg6XpstrNqGlsZDwaK5jM5uOtD9YdKLQ9ADlXhSJumYyRqqasLCLVpJdR0 XTLiIq3GO+vuMcVT9poyFDMAOlF+nNlpeyc+oGwqPeWzFhlM3EUPNFeZPLscHl+7N55hjF7Kr+lq OoytBbxEAv8Au4lZQzCmwJ+eb3F2JhwQJ5y7z0c6OlhHeW5fOVv+bmraZ5djsIrsed9aL+mms/Un t4LVObD6vIUHx70aq7b75adSccasW2nNGOzzOTR/N/nHzMNEsLVSwtzLOwP1WztQSTWZ6BSGY0Ff iOY+GMtTGo9/LZq4jN+sH/OLf5ceXbDybZt5r/NDT9GvtEEsd1pel3pt7xjUyLx5Ovw7/CFVuXtm yGnOGAjOQofEubiFDZ9QaZ5j0eNUh0H/AJyEOnO6GW2svNVqIqRg03a4NsT865lDBHpIj4kfrZcR 7nq0flDXPOPl5rbXvzDbUbe5qI7ny8qQW0sZp/eNylL/ACDAZHJpJyFGZr5/NMcgHQPDfMX/ADjH 5g9K4fy/5lsb4qrGC0vIXtmY0NBzQyLUnvxzXZezsv8ADIH7G0Zx1Cj+UfkbzL+Rfkq5vPOPkWDz j+YtxJLcT61og5WKIzn0YI2l5yQ+mhAdgnxtU7CgFeGX5PIePFKr+raQ+xskZZo/UL7uT5o1780f +cgdNvJbLyL5btfNT61qN5cSw3cUl22n+oxl9GMCRGZAWNAwJAGZ+GOnyj93IE/I/awlOcBuKew6 P/zj3q35o+VJfOP59m10LzHc3CSfo2SCOOxkhjVRE88JYuj1BAAYGlNswNb2dwE5cchjPWxYP492 7LDLFLIDliZjuBp4zd/l/q/5g2vnHTPyNhsta1ryPdtZXvrR/V7Jp5WZoljmPESBVRlPSh+WaHSa LUTmJZIEg77c67/K+jkdr6XTgR/Lkdb7/dfl1eN63+X/AOdyeYPLlvdeTfNH5feafKV6ms20SWL6 jpl9dWZWWCe01O15xM0TAn0ZQvPoGrm5hpRpJHIYyoj4x+DpY4gd+RHTn+Pc/Qv/AJx6/PL87POu tL5O/NP8lNX0O4tI5Xm/MWGE22kyJGpKFkl/bkIoFQ1Fd1Aqc3Wn1ByxBANd9EV72cZ30p9i3N1a 2cEt1eXEdpbQLymuJnEcaL4szEAD55lmQA3ZPgb/AJyh/OX8mL7ylq9ytwdW1fym9sD5osYBIlrH cXCxPGspKmZSftKtR3G+Y+TUQ4oxsbk7nYcuTZwHhJL5FK6F5j0ZtOv7Oz80eWddH1i2gZvUsbmn WW1uFIMUy17UYdCMtiTE3HYtRGzwmfy55y/KT9I635DWTzf+XXP6xrXkq9YyX1kK0MoEVGFB0niG w+2p3zOjmhnqOQcM+/ofx3MOEx5bh7J5G/MbQfN9sde8oaoXv7NVl1bR5Qv1y3QACk8Y2mjr/uxR Q9+JzHzYDA+r4FMZW990HzdZXfo2FyUsri5FbUoeNvMKjeJ+ld+hNc2ej7XMPRm3H879f63Hy6W9 4fJBecvO35Z2Am0fzXeWmpSxD/StFMJupo6itGUL8FR0NRl/aHbXZ2EcGaYl5AcThVIPhXzP5j8i XWsajP5XdtK0UTLFb2V3KGkWRgKqAakAkigqaeOeWdp+DlzmWnxmEDyH6fL3M+CTz3XLC50++XV7 OGSe1mcfX7eP42FB9oLQlh3oWC5XgyRnHgPPoqMaDT9a9C5iuWSa0kVo7i2kAdSuxAdQeQ7UTYdK 5HHlyac7bfj8c0xkQzWI6NqcdrHrltPp97ZGLjrdi1HZY3d4orpBU0UkGq9PDNpDX4tQOHNtL+d+ OTkxzCQqT2X8uPzb812/mSHSfP2u2mp6VDZS3H6RMFJLq3C1BhMVS0itRWQ1IHXtnUdl9q6oamMM sxLHXUb+VEc/i1z0/WLzj8zdfv8AX76+lsPONte+Vxeu2iy6xdmCNAw3WNDGOTLWgX7VNs1fbGl1 WfPImZOK/SCfxTEYz1p8/HydLfprGoaKsuqzREC4N2sn1ZyaB/QRI+XQVG+YMNLMVxygB5Gz8U8J LNLXyw2k2WjS+YRHBLfxi4hAkCSvCaheMUKuY+K1qGNTkdbp8OGjxcRIvrX3bsxARG/VT8za5o8W uReVNB8uarPbahptv/pvqJcNP9YoXkhRgY4o+JALUqvffbMyGE4RGMDtsd9zv9zYBwjbk9w8kf8A OOE/kPylpv5z3f5eWySx3pl8s+VL/VWk1XWbUzB0hiSOMxSHhCwEabsKlhTN7gzQmKnIxkeV9f0J ETH1AW+z/KH5paH/AM5JaL5p8h+avytsvys1CDT11TyVftNbRQahNDVTaSKrh5GoQQhBBG/VczY5 /DPrlsdvxbGQGUEdXqH5ceTfyj81eVL+wm8yXer+cfJemLN5gt2k/Ri2ka8nCFFiMSoKEMwDFa70 O2ZUdfKE+AUAPL7WGPFGULPNKNQ8qfk55d1XyfpXnbz0LPUfzBvWtvLq6FKlxplsTEZo4ri+lD8S 6AlXk4hyPhGRzdtCGQQHXr+vuZx0wqy+Mv8AnKCz8ufkx+ZCaV5UmtvMUC2q6vM8E1tcXloF4+qb xv8AddWf4NhVTkx2hCI4iY8Q5tMsBEtuT4kt9Wsr/wAya8k8Gn+XtLvr55dL0rUHaa5s7i9pIZI/ SUVTlVq0PHlvmqhrY485jxARkbr3/obJ4ROPDIWsW/vfL2k6/cXfmWPXLPzFOYdOENtcy3MNxCVD NN6wVuDigDk9vDIzzY4xJJ4gTsAOX7G0WNq2pmfkPzD5o8m2Vt5qEmkWms3P1qGO8+ss1zFDKplE iWyJIrgU4kmi70r3zGnny4wJY5iO17C6P7W04gYkVv70itfzk0Lzf5t1fWvM2sWOm6ssJiuNUlSO 2W5eQmNnAqVk4hQDQUzE0+bPlvJmoylXSvnSNLCIsE0x2w/OMancRfWfMqWqtdGOV5oLNIligjkk SriFRTmtFXxPcZMRgDQj9pcqOcSO5r4BF6Z/zkC9rZx6tFqsM8t3MWu4pLW1duKolCQIQQPiK0AF KZGePEDw8H2lH5kgXt8g9K1f8xtI833flbX7XR49CQWVvosPl+WA31nemBmdp45wE9MMzUYAkIBu 2YWXFKM+MASJ5CQsBo1MBkIlHuYnrV5pV/eLrOo2d3ey2UqQ6TpuiTQxW0X7xQwZXVkfoaHw64B2 lCch40aI7th8nDxnm+pvLejWfk43/nj8vNEv/NOn+dLuHTda0uylVEs4pIjI84bjWJ42qXoBy9s6 zSHHjgc2nHFGexrp5+Rapni2Ly7zr+Xdn5f0y+e31e0fRtVjm1jUbaeVGuJpnkYMyM0hK8VI+Fa1 IzX9r9n3iuEhy4hv17mzFlPTmC8c8r6FqYtvqFnpTmV2cw2sJLchSqlK/wAw3oPozh8uKeWRlEEg Padm5cZxDh2vp5vqn/nHLz+mga43kPX4xBaa5Kw0drlSht73YGJgwBUSAbe9M6X2T7W/L5fy+Q+m fLyl+3l73S+0HZ5ifHhy/i/W+8Y4Ehj9KBAixVMcNe7Gpp9OenVTyu/NEIWJI6MDxYkUIPcVOFSs EYjmnnBl5TLEkgJJUCLlTio2Unkanvt4YK3TbexfilWqpZiEJ2r3YbbYWKoCFKs6lV2o/Yj37Ys2 2LGgUcyxFSo7da7npgLGlevEbNyBIBWhKgH2wseJT+H4iqjjyBJBLAEbexFMASxPzj5Xs/Nuh33l /UUaW21CJhFcEcxAy7iQAnqD2wTjxCmUDw7vz3az1XyL5luvLeuQiSSzJjioWIuLZj1FOppQjPK/ avsPwJHPjHplz8j3+4/eswInjHLqmGvm2tmXU1to/qEjGlypKOSo6SJuKjOKxcR9ILTlhD6iGFf4 gir9nf8Ave3Sny6075meEXDuP2v/1ymOb8yNT9UT2ayQLNR1m/dqqg7sWknGwHYDPOZ9qRHOMS6q GXLL+HZFzaH5yvgkzXNs/pf3LerKAFr8AoCwA+nKZdrYv9SiGVTI+kfaj7fRddiaZYfMGn2d04D3 Vusfqgt0qxeKQ8u2xyv+UsI+rBFIxjqAsvvLtxqkK2WozWNzbl+UjLEy8mP85VENPauH8/phv4Ve 4qADtwhPrTy3p1zHZ2uoWCagllSCCWGV4WghXYcgdmA+dczez5aXV5OAYZb9b2Hv3bI4Mc9qfQn5 d/8AOLWoebbY6tZaDZaJp20llq2tLI73TV2McZDPxA6MQB4Z0WLs3TwNxjy7y3w0eOHIMz13/nG7 83NOj/3DaXo/mOgIVV1D6rxA2AAlj6EfdmVllkAHDDi9xGzkS25bvhz8z/8AnHf874Neg178zvIF 5caLLcehp8Wl3drcQWtE6x/GSxO+zqK703yWDDh1BIywnA11PP3U4eXHOW6Htv8AnHPVNctLlLbT 9b0droD1qJFDOw+HiahqAAMDRad/DIy7I0IIJnLb3EIGHLI3TJtL/wCcUfzP8v25uLe1vL63uIQS 80cXwr8TfszNUjjvTxXxyrDodJjyGUMp325N8MGaO/D9qBv/AMnvzC0e0We5sFVI3YuzAmRDsfsr Uj782WPRwl9OQfJByTjziUmTU/P+ixRi21O5ube2POOCOdpVUVrtG9RQfLLJ9m5I70D7lhqonyTD QfztvNHvJZzbLYakzlpb7SZ59AvVkJqWEuntFGST9r1InBGxGYYBG1t9vqv8v/8AnLzzPAY7b/GV nrhYArpHnqJLN3av91b63pkfp1PY3NsB4sMmZd/6/wBv2ru+zvJn/ORXk7zBqFj5c812l5+Wfm/U V5abouvtELbUFPRtN1KF3tLtT29OTl4qDkzGhxA7d/T9nxQJWa6vWtY8meWtbYy32lRLeU+DUrf9 xcofFZo+LV+nMLNocObeUd+8bH5t8M04ci8D/Mj8rPzJ1Wew/QnmSTzHpsUipFb6jP6c9qK/3hIA SSlBVqczmp1+gzmPpJyD37/qbsWWF2RTzLzb5I138nNJ1Lzf5T0iPyjpswW7843+mXK26vPzCiWS IMOXJ3JNPHpmLEayGOPijhEdgRQO/wDOrmmHhgyrrvu80g/5yY87Wglmi82idIhSRp44ZUQdatVC Ppy2Gszx5TO3xbhixnoGF6v/AM5g+ebe61EXFtpmsvFMwt3dp4FCbcQFiYrT5DNhEHNESkTZa5ej YDZ5d5g/5yC81/mbGdM197ax0y1eN7PSbESlXmkqv7xnZmfYbDpXtXI6kwwwB82WKJnIAjmlVj+W OjmLX287aXexj8wFstG0xA5M9tJI6vHO0cjemqrSoUgs3TbOfl2jAZIzxkSMTZvceY/a5mt0U9NG pwI4q3eIar5L/NH/AJx38z39ppLp508m3N0qskdTYXMm5ETQoS8Nyq/tKOX+sNs63Q6zBqomUpcM ttj0Pl3h0OQGBfSXlnTfzL1W1vvOH/Ks/MvlbylpojWLXr2Mx3CSSKrF/TKqzwLWhkA4kdab5CGY 5CQR6e9mAebyrzd+UsWvaoPMvky/g8iefrRzLbajZM1rp+oM3xfvOFDbyP8AzAcHr8QzY4tUYDhm OKH2j9bAwB3GxQXln81pItWbyN+beljyT5ytwEj1GRVi0++b7Ku9AUhZ67Sx/um78TlmTTAx48e4 YCe9Hm9S81tYavY2tt5g8vahrLxAQ22qaXHGdQs43+xIHLBbmE1GxLbdDmn1PZuPUjpE9E5ICY3Y Ro35Jw+abS8C+ZIbU/WPqx9SxaKcjkvFo/UIqDv0GxByWk9lsWWNeN6u6v2uFOJxpNefkP5ytbQa Jo3mKxmZIIJrS+mY+s0EpC0ZHQ1+I0JJ27ZVl9ksnjECcSKvexfy5UwEgTu818w/lX5v8r3+orfR afpktqqem0N/G0lx3AEZDGIVNSEG4zX6vsnJpInx5wFdL3PuA5+VqQK2LHLXXgLgWF9H6d/bBC7K vGIEghnjViCwFN2IAzRywWOKPI/P8eSEdpr3Vl5u0nXoHilsdOZlubNiGElV+LgCGUsB34gVzK0m r8GgeVt+LJwh9aa9oWk6tobWh9Kz06WRL63binpQXDUKXRUg8T8XxkblSfAZ1mbhy4pY8kjwS5+X dL4de8NubECOIc2P6IL6Py5eeWHa0svMOnPPFJa3qOyPAhLCcIvEulG+FgcxtHhOnh4OYUY2PeOk h3gjqnDK4U8W/M7y5Y6p5DvNWtYxrXmGK2e1a8+sNZx2/wAK8xAF6oxBIQbmu9MJOCUeI8h8fcyO 8Hy/ovmknRNOs/Meix3F15dEdrYXVtHMzT2ypRSzo6tyqaFdhTeld8EdTjEhfX70+JcACNx9z03Q /wA77x/L+k+X9Ms9TTTfKd9cajZaa0LypbOYyplti0jCKQVCnken0ZmZMXHZJHTnTOOTGa5+bAH1 46jcy3ieTtROpWyG9iZbdopRO5LRsskTFiefHcCowZyJxEchFX1tpjkAlyZBZebvzTvY5pra1vdM 1O/tXZ0S+mMzLK3FzICQzRncuzb1zBy58cZcIntdA0a/tZfmLPvQPl6Xz/pQbQoNDmv29UTRQyzh oWdeVWUbkKK+HyyeHUYtOKlI7HfYsDk4SWJ+YNa8w6XqFydW8sRQ6w/KO4a4kuFlmTZaknnyVStB XbLZzhknYiWXFwhjtz581iJBdJoem+ulH5TvJKVY8vh5NwO1KbbZPHj4r9NV3qcmyXy/mH5tvxcQ KNOi9eNlLxxyu6FqnYcivc0qMtIAG5CDnspZBrfmYRSFtSaVfSa1mjW0+CJJF4lQ3AUanTJiOMRu 7+75sfzEmP3HljQVjX6vd3VzIAF9Ka1kjG22zEMMkTi6S+1qM7eo+Sfym8ueaLcS32vQeWkiB+LV 5GjiunNQBB6cbMeBALVHyOE6jRYz6pb/AI7kj1B7H+Xv5GflTb3N7c+evPXl/UreNHj/AEXp812Y 1f4eLzzKiGnxbKD8zmNqNdpdhD5m22EBe5en/mBpv5T+XdM0tPIfm5PL9lBbm2q0M90sCyRlZ44e cQLeoe4H7Q3qK5qIGBzCeOdm9wSapZcMeReQ6ZZR6fZWEGn3kdzpcKP+jY5SLZ7dA+xuOagO5B2p sMtzdmwzSMschKzz/Q2Q0kj5A96ra+aZ9He5sNNvpYhdTiWa3gvxKXelDIyxVOwJ3O/tlOp7Olhx 8QkfMDa2GTSmIvmlKXC69fys2hC8htJFie9W8Cx1SvIyeooPFdyfHMExjijuSCfn/a4+wS+6813O p6qqaVcGeyjkMdiUkMUaiNiOddqdOv3ZfHRHPAnLkGOMeh5/tel02cDFARFmnpNymu2qaTe6nq8O oaldQxXEGqW9yt0ysh/dhpV3Dx0AIO+ajLHgnYN9xd5GAy4uGXUUX6R/lp+bHlzzP5R0u/1TWbXT dcij+r63b3UwVhcoN3Wu9HA5DPWuxO2IazTRlKQEhsfeOvxfPtXoMmHJKFEgH7Gbt+YHkUuhm82a TWNWElZ0I6jevt75tRrMH88fNo/LZf5pYN5f/PryB5k89H8u9Lu549eea/tre8KBrOeWxKmkMoJV zIhLKNjscw8HbGDNqDp4k8X2fDvcrL2blx4fFly+17RLcxQmAXMsUfrv6cPJgpkkIJCpU7mgJoOw zZkgc3XgXdK6FgSwK1c7dtqfPfJsWiSyuqsLaZxRWArxII6KTQ9MVXD4FSikhiSW3FK9uvjiq8EA LXlVRs/QU+QqD9OPRNqb8yocqSytVkVtiD0qOm/tii62eFfnP+XcvnfR/wBIaZbg+YNJQyWMqUWV ghJaMkGhH8veuYuq08c0DCQsEUW2BA2PJ8veV7231PSrzy9qCi01DmYzC5pxlQd1O3xb9c8S7c7K ydnanh5wO8T5d3vCTjAFMX/wpff3f1O/r9a+o/3a15f3nh0p+10pmv8AFPk0eF5P/9CU3Vwrys8t hDLDE59RvWKita9dgT9GeK8O5olw+I8qCjbXmlTAxxrcW0ZQrJEjc1cE1PEV2P05ExLMzACKtILF LlzbGb05VJVJ1AZT48RWoyRN0DzaSd9hsnkWktIFa5u5eCsaINiV7fF2H450PZ/YM8tSy+mPd/Ef 1NsMHFz2e/8A5Cy/lzB5xtdM85WC3E18yL5Wurtudmt0CR6c0bCjO9RwZyQCKUqRnXafDiwAQhEC P4597kxAhsH2H5p0r80rvUrx7PzVLo+gq5XTrLQ7KBp/SoAPWmufVbl/qIAMlPLmgTt8nKhCB5l5 1rl1N5Y0O8vvN3njzDZaNpsZkv8AVNQv2teCk0q0kMcbbk0AG/YZiRnPJKhuT03/AFt/hwiL6Pn/ AEf8xvKPmSyll8qXd9e6NY3Utrp36WuLm7nmkJ5yStLdyzTx8mPw1/ZpQDpm6x6OcYC6EutOFLIL scmSWfmPy9pc63+oeX9Q1hioKRrPA8ZdmA4/vjETUkipG1CfCsDhzVUQEjJj62xzzH+Z2o68zyfo 6++r2rcbPTZZLa1SIfEqQj6r6gCigr8/bJY9NlA3EQiWaHmqeSbrW/N2q6Tb2vldtS0uGdW1q5uJ XSws49+byzMwBoBsGNa/s4MoGCMjfqQJcZG2z4w8y6fq35c6ze2+r39t5h8mXOoXKaD53sZ1vLdB 9YdBFLcpUOiueAc7o3wyAbHNpoNaM0aPMbOBqMBgbHJLdb8qaR5ijY3MDQXRFU1C3+GQeBJ6OPnm Xm00Mv1Dfv6tMMpx8nh/mPy35t8oGS7jgk1fREPJ761Uu0S+MsP2h81rmnz6LLi3HqH2uZj1MZeR ek/lb+fvmby/BY2Gk66G0q0vU1C0026jivLWO5jqPUjiuFcRsQSG40r8wM15Il+Pv73JEqfoRa/8 50eZLnTrZYPJWkvqHphbi9e6m9GSQDcrCq8lHsWyXi99KSh5P+c1PzDP2PLvl2MjsFu3+jdxlJzT vYj5ftSCO5X/ADe/Njz3+aX/ADjdqd1pvlVdT1jX0NtfWelzGBbNI7jh68frEtIaqKivjTOc7R1Z OqEZHaPTpydjpahASoHvt+W/l3TvM/8AjSx8n695q1Dynb6pqEdjqcl/aNcGwVxVi1rQM1B+zscz MGOMx5Fy54seOEjzD9IdD/5wG0/zNodtrOi/nw+t2t7HztdVi0mL05Cvw0IEwIpShHUZtcej4aqe w6UadWc4sUKA82HQf84SfnZ5VvdYmtda0O8ie0ZdL1/TomnvLeaKVZIZIrS54BZGoQTyPEE0qc1f a2kzTh6YmYvkD+jm7Xs/NgJPFPgJ5Ei6PSl+tfld5ouPM+h2vmXyrrXmO60i5jmbzFPfNYwz3Sps Vt2KCLgfiICtyPU5ywxGUTXoO44a5fpek1eq08TCWaXHW4IN38H3/wDkRptrB5f1WyvvJ8GiaxpW qypc6mLEw/pAPSWO59d0X1XAYqzA7EZ2HY+GIwC4+oda5+63i+0MkMmaU8Y4YyN13f2vfmRJFZHU OjgqyMKgg7EEHrm48+rgvk/8zv8AnGPStaW91nyC0Wiau7es3l+YD9HTtuXWOgrAXr2qtf2RgMTW 3yV+fPn/AMgWurep5N/MjRZUksgyIsqcdS0x+oNnc71XoQpJR/fI4sk8RJhse7ofeso3sXg8tx+Y 35CRW41Ey/mj+TUb+nY6nDyS40r1DstW5G2cf77asLHpQ5sInHqeXpn1H45tRuHmHt3lDzJ5b157 fzz5TuYNVESeiupSRgzWxbf6vfW9S0JP81KHqrEZizE8Zo7ddv0MhRepJq0WsWF5ZvbSG4ksfQh0 clQ2z1cQzULGqj4R17ZsMXah4TDPvtVjr73GyaUHeHy/U+evzY83eQb/AFF47fyvqGq3llBHb6nq ttcCxmgSCNU9E200TNKykblgPnTOd7Y7V7Nz5KOIzMQAJWYH3fDzceMTyLw2907ytr0mnzX+qXfl bSbhHAkvW53aMXjVEMdtG0bB0J3bp3HTNfo8WizSoS4O+zde40zAA8yzDSvy30K3lvR5S8zNrek2 pnnkSO1Y3zgEUDqzRgk7gHMjP2Xo8speHmMgO7n5eW7IROT3vUNK88+UvMWk3Vld6g3lKO2iS01G TUovV+qxyD04yVSqu0mwVetTvmbp/B1A4ckuCPInnX63JySqOyTea7/zzpc+n3ktnrUFvFb/AFHS dQnsvrIa2UVUtLFCViRl3oTsOuDXaPtCco8ERGEBQJ9RMfl9gcSMyDsQHjnnWx88mTT9TuYpNXsb +I+nd2hR9OgJH2pJuaty2I8K9s005Txj99GJj32d/kzlxDcvPV8naZFDFf3k2tvqkxVETSTbMvF1 H+651FSPEN+rK46vT5PSY8I7+f7UEgijaL8w3k3loaY31CGbTJGMUwnCRhiRQM8dQSxOxO4rhjos YBlK5A8iNj8A5uHT46Aldn7EHZ+a9EOrW9t9RtNNtJeMX16N0HCvT1OCAhK9BXMf8tMwFSlxk/SQ RXxTl0AhZjMFlU2sW9vqNppWjGG4a8E1ubuBwkXCOoXgaAsHfoKb5Zi0ucEeLMxB5buNDTzEgDy8 i9Y0D8tZrm5n0HX/ADDfaB5ljhjvZNPs7b1buSAguHR3LRsHIKhVq1dqZuezeyfGkRqMkoyHKF9K 2N+fk0y4qvd896v5S0ma/W/vNNv/ADDqEkrrOl9dfVjGkbUAljelAhJ5DrmkOpzY5Sxk8FbVVn+1 jzCHn/JvyGfIXmDzpP5mFrf6bcra6RoLXArclmq/ABTIBGD4b+ObfENR4RyTIiQRsecu88+jZ4My arokXl/zBpmhaSo0PSIZLmJonuzbW8jr6ZrzYzOObMBtUilemarNgyZslyJMR51/Y3YdMDL13Xkm 9l52uzptzplppkWm6WZppHN56QmeSvM+sW/ecgx6sem2biefIMIhQEBtR3+52Hh6eEbAu+9Pl0z8 yb/TtNkM1vYJdTcLm7ht+UnpFA6SIm1Kgjua19s00NNpyduIn8bOPm7Onih4hieFgHmnWvLdrp9h pen+ZbnVPMtlJJFrM19AsbW3IFZBEwbYlqitK0y6Om4SZcJI7uX9rTjjCzZef6Xc2dkLhoLw3hvI xFdcm5fATyO7bVPHrTLZEi+ONdwp2UcOKf0nk+g/y7l8xJHaW+m+XLbX2uXWbT5FuSxsbYKUm+vP NGFiJ5ckX4jXcZl4uzsXHHKZChuRV2T+pw8uGFbDe+fkwG28p6d5m8y3nly98wM0yTy+jGIZZbf9 0GdgZCFO3TkVp45GEI4ZCUBQvr59KbRkzGHPZK/LzaXps80lymo2Gn31uEW60wRMIpeZVJisgoyn bkGZf8nKtTknO5na+7u7nYY8tYfDyQBB34uu/f096jJrcr+XtT0y0jTUdXniWP8ASUzek1VZix4C oJauw+85igXljKZPCOjzub692Kabo2vaXcabbaTpt3qDajbr+4u4ntmSUH4lUMN61r1rmbmwY9VY MgK8+bl6XWSxXQu3rfly3u4LYS6i1vFc33+lG0hbl6aj4AGPc7b06HbNBq8QxSAF13vTdl6iWWMr AHxZbpVnokusQy6vpVvdwXDKjvNyAViOIJ4kVBr94GX9m6uOnyDjHFDqPLvHuR2rinweJj5jmO8f rD2+D8ib6Zop4PKPld7bUT6ljM00/F4ZZRSnNQG+AVHH9rbPRodn45ASjCJBFjzDzn54kfUXndj+ U/mzyj+bvkNHsodIjudd03UQLIu8MRhuQXCS/AV5x1Ukj8MxpdmCGoxzHpMSNh728a7ixSjzBvm/ WGWCCa5ikkhiY2c7TWMkiB3ikoyc0H7J4sQGG9DnYEAnd5oS22WW9wbq4voVtLuP9HzLF60kX7uc siuWgYkBlFeJPjUYiVkjuZEUBuN0TUlaBW4nZfiBHvXjUj6ckrSuOTrUlvt0UUanfY9cVbIpx9Qt wFTTkTt4HuMd2HVUZGrHxDRxpuAPiHH5jBzVRcxFZSob7YMlG+BnPTkB/HCu75B/O/8ALSXS7pvz B8tW44gga9YIoC/F1kFKCh7+++aXtnsnHrsJhL4HuP4+xvjISHCXgf8AjJuNP0jc8fqnoct68OVf T8eVdqeHtnk/+hvU3XCL4+D41d/1a3trvJ9tftf/0VL1bSSVw+oIZzIyvEilTt0BJNKHPGd75Osy EHmUysdIupR6MDqWKVpyDiP3JXb798ydLosurnw4x7z0HxZwjLlHdm+m6Lb6fSXkbi7CgGd6kjfe grnZ6DsfFpvV9Uu/u9363NjCvN5X+a/5vaf+X2kPcWFvHrep+r9XdQ4FvbOw+F7ih5UrsAOp7jMs 6vGcnhg3JhkzxjsNy+P/AMuvzq8+335mwpqD6h5zbzpcQ2KaFYQvLPGwY+idPt4qkGMsSVXqNyai uE2XFEpSNv6avyeT8wovIejwfmYsK+Y4FKK6yc53txT0Td0HETU2biT7/FXMuAkABL8e92MeW6V/ mB+YEMVhqGk+WvKUP5l3yt6Go6RLdQ2lgFJpJHLdTpIhcD9hVY+NMrlmjGW5b44pEW/NLz1+Wv54 XXmjU/MnkjyNaeTtLuVRLfyfpws7yCMDdmM7TozuTudgOwAzMw6zEI1KRJ+Iap6ad7DZh36O/wCc mLVfTvfKl/AsdAvHRZ7hdjWoNvdOux3zIGow/wA/7Q1HDlHRkXkLzf5m8o+Z7Kb80/yuvfN3le6u Ej1WmmX9rPZxkmtxFGGdJuHVo33I6GuQyyjIXGZ26XsUxjIfVFr83pPKz6wE8o/mjf8AmTyNeSO9 j5W1B7u0OmOTUwNbyxwq0Y/YcgtT4WPc2aOOG/UN++uf7WrUQyHluO5PvLml/lV5W/Ij8yvN+peZ rHzF5h1+1J078sra6ieO2uUl9CK7+pKS7TSKayBRRoqKQTuKe0MwGUShGzysdR5+QZYMR8M8XL7n xL+XWlee7CbV5PNFlqnlvQNWeSTybf63BPbwzWsLkcIuZAXjyAoK7ZZjvVEAZDEj72kfuwSY3byj z9+bH5ieT9UNlrXl+byy8bGOLUQ8lxazrWoeGQgRuG/Vglp8mPYzl80HKJcoh5BJr+q6nqlx5r0u 5hM9+w+u2cQEdtIyDgTxXZTtWoyo6XijxRO/W2cZHm9S0H817rTdMvtM1i2vmWaRlt5LdY0KRsKE CVnUFj+yRmpyQy1uKtv8Qdybxfma0+mweXbXStWIuCkNtfSX8QuCT4TV6lt6npgyaSeOI4jVqMl7 APqv8t/zZ89eXYPLv5eap5dvJvIUUNxJ5mDwW2pfWoWlDD0rj1E9QAkqwFd6MCemaLXaCUpnJRJ6 D4U5UdTIQ4a26s68wW3/ADixp1hqmvafr1/5U8xW8Elxo2mavcz2sc93+xEiyhuZJ24hsOm1ms4o wkNuu29NUhi58iy78sv+cs9V/KXSLPytp2nadqdrrd/PerPNHcTsGkC1Z5IZVREouxpvm9Gcw2B5 +TEHZ75J/wA54vpt3p+nax5Y01r/AFNuNjDbzXA57ElvsSAAU3NdsuOqIIBr5H9a2Fa//wCc8bG1 1KDSrnyVYS6w0ZntbNr9vUKDYspMB6d6YZ6sXRiCQoKpp/8Azn7ot9qzaQ3k6NLq0dP0pCl+Xkgi ZgGcL6I5bEkAHemY+TtGQ24AfiWQol6fb/8AOdf/ADj5eXV/Z2es6vdT6Ypa9WPS56IB1qSAMu/P Y5cr+VMUni/5z2/Ja9sb3UtI0/zJqtlYu8cs0dlHFydOqxiWZC58KZL82DGwP0frXZ8/fmt/zmD+ VP5i+U5NQ/5Vfrs91bow0nVTNb2uowtuUX0+EpZWPWNtj7dcqyaq42I/amw8X8qeZtP82+X7XzX5 Z1m21PR9XD2l2sQWS2d6UltLy3epVhuGjce67ZkCpAWKP2hjbyHzN+UOuaNqsvnT8iNS/wAK+bgj i48nbfU7rkTVbNXokkbD7UEn+xOZsdVceHLuO/8AX+tgYdYoj8vfzstfNVwPLfnTRo/In5g2kptr rTJJDFp95MtFItZZqNbSlukMv+wY5DJinEXzCxnfveheb9JufNepW+m6nokdg9qvpt5yYhb63MZH 7i5tlIaZaHqdx1BIzWavs3FnHEeazxifP5vOU/KrX7LU5JvNWt6fZeU1cR2Fzp0nqNdgGq8rh+Kw 8x1Tds1eHsiNeo9Wkafv5PTpYv0ToRtPI9vYz3KME9BJEkbpUts1WcDf4jTNlLFLDirTxBP438y2 kcMfSEm8rfmBY+V9Fg0Tzf5JkeYajHfW+rJFGJJmjkVyWMgHLjx6q3EjamT0PtANJiGLU4j6TfEB 9/m4eTi4rL6o8peb9N876PJr2j2V1DbxTSWqLcokVZFUFuNGKkCo3B2ztuy+0sXaGPxcYMQDW4r7 mg7Pm/z09npeveYV0/TNY0zTBDJeX9z9VW70iW5FTMiW8oXk5ZSfgPEneuavX6XBGcjwyA5kgbHv 2+9uxTkB+h5HZHTtWsb6by1fWNhqeqRNYHWYQ6mzuJl5wpd2cpJtnb9grJxrTlttnMT0mGIOTFyO 221Hpfdfe3ihtVEvkjzbpX5h6FIfL3mTTbzURaPJeQXLo8skLSvUPNcuArtSv2RQdsxePiFXwG+R 26dA5GHUiO2QXXzSjTrvRI4UttV+vJpmpMbqbTDHKXnkjB5MCpWRVUEnlUe3fHEchlU94juI5+bd PNgMfTdlC/pawF491olhqmq2OmzEWDQRTxSxPt+9DAsSRv1apG+XZMswOE8Ioekyr7QnHkwRAJu+ rI21PznqN7pnmC+bzNZyTMsWnanfyyxoiK1I5FZzyojb1p18TlOfNllITyygTW3f7x+hlLLgMSBd Hp0Z9rOj6Zdyapr9zrJ84JFLdXWs+q9y9yUEYCTTyBgCrGppQU774J5RmHiYwZZOt9B/O83XGQHR 5fb2B8yahbHy7ZafbSRoztG7yBaEVcvIpbioGwXMbNmIH70m+8c2zFqTjs1bMfLvla0lKy3epKgs bxJL2fTEKKxDA8I5J9ue1K0zEz5BAigbraz9tBuOukJCtgedfovq+jtesf8AnFn8vINE8w+ZNJn8 yeYdRna69LVIGiu4klqfrD28ZEclJN+T/a7VyWKWuzDckCvm9p2b2f2Z4UctnISf4tiPeOWxR2le YtL122j1LRNRi1Gydw0VxbmoUsehXYqR4U2zYmAIouwMjbznz7bflpceYYm8y6HP5j8w6uVmvtP0 2H1bqKEEK97NHEpPEGgruT1ANMMOKI4jIiI63Xwt0naHY2HOTOPpmd6HI+ZHT3h6v5X/AOcSPLH5 htozeWtMsbJddt+fl3Wbd7i9t1SNirzrUwq7qykEsuxFKbZvdJocWaNxzWL5fxe73PJ6vSZtOanA +/p8+T23TP8AnCnz35HsL1NM9TXriWJ4ZbqfULlXmrsZFULIidOlNsnLsKMiTCfD7tvwXFGThL47 178k/wA3PKF3qWpu91aeYZJZXtprWyneOGFqib054VlLNxFByUUqScwsvYZhkEoCRPvu/NyvzuQ4 uC9vx1YB5f8Ay01ya0lvvMMcuq20F16RtrZzLaxtTmTOqUo6dQGG3XNLrpZcFiIIHUtE8kzzOyYz +SNHvbKRIIIrS9ilpb6r6SySoY2B5An4SR75qxrZwlZNju6NEpKd7oKvc2thc6xc3tyyhdPQK31h JeB/eIy1G5IqSMOLIZeqI6/gNkJ1yD1zzP5B1AeUbKTTtNgufMlne8Te6bCsKvGJD6ouX2Lmg6Dq ad83mo0cp4fUBxeTtdLmlinY23eXKahlNRseQNRQ1/XnLkUXsdiPezLyp5z876DrNpq+h3U2t6jo kE6WOkX8ztpq27RShkeMugLVcsvxChrQHOi7E7Sy4ckYx3PICUvSPh9zodfpsMI8EiIRPIAeo/F9 w/k3+ZPl78xYJra68w+XNe896SrPrtj5dW4e1t4Y5eMTKbmNTsTQ0PXpnp2jzxy8yDLy5PLarTyx GwCInvfQAZmAqDTrQ9jTp265sLcAhbRSSODgpvUmoB8N8LEc1VedSRQlukfavgTvi2NB92V42idf iBCkfMg+BxV3uEqw3opIP3jl+OLENrxIUhWloKsB8QFOxA3xQ7iASeDcqABTUb9anxxSUFe2cN3B NBeWqy2syMl1buBKjoRTcEd8iRaXzV/yofy19Yrx/cfp/wCvcqGv6O+r09D7fX1dvGmU+GOfn+xv 4z3v/9KQD8sfKLNBNbafe2xikaS4FxcczJXYKACSoA8d84XQ9j5cnrzmgeg5/HudfDRCRs7D7Wap DpukWYhtkjtLOAUSGMeHcAbtnQSyYdJjuVQiPx8S5w4cY7g8u84eYNevIvq+nejp1s/L1Y2dfVmU inxEbqp9s5jV9uSzXCFxj9v7HAz58k/ooD7VL8qv+cdPOX50PeaPYaTDd6FK31fWvNWpxg2NtER8 UcbhQ0r/AOStSNqkZjaPBm1OS8W1cz0Hv/V1a8OmnLc/N+nX5G/84ufkd/ziZ5duda0+CO78xLC5 1r8xtZCPqEiAM5htgBSFKVAjiFW/aLnfO4jUBZ59/wCofgu1xYRHYKuq/nv5V85NLa23muHy9oJq v1WT1be9vF6fvXKD0Yz/ACqeR/aIG2YeXLI7RGznY8QHPmiLHzH5PaCGLT9f0kW8Y4wxR3MKKB7K WGYnCRzb07hvNPuBSC7trgHflFKjfdxY40VRwQgAgMPAiv68CrWlkB2kcexJw0qAu/q7RSSXvom2 iUvLLcBCiKBuxLggDCJHorGdJ/Le3/MaWOe20Cx0DylyrL5lawgS/v1B3WxDJWJDT++YVP7A75kY hkP8RA/HJpyziOgt4/8Anj/ziLr2vQyJ5ZdvM/lyMs+m+X7m6db3TuTFitrJMxVlqSeoJ7g5tdLn GMAVXudflgZmybfnB558v+dvys0zUI9W1m0u9EshJTy/5gt0kdvSBLxxMPUjYrTqCAM2EdVCQsG/ c4pwkHdk35K/84sfmd+eGk2nnTT/AMn/ACv5R8na46Np+q6osumvdxn7VxHbW5EnpdeL8fi/ZqN8 hLV48RO32IjgmfJ6l+aX/OM35bflB5i07ypZ291rtxPpUV9qrXt0Z7cXErMp+rw+nGyD4CRV2oMp 7OxHUSnPJuOg6NmqlwACNsQ0v8sPLN68Wk6R5WspNQ1KQQafCVqpuJfgj3Yn9o7k9MztVpcMccpc IsRO9OJHJOUgL6vddE/5wV/O92jmPmjy35WkCiNi8lzeMsdfipHEiox8ASBnD6TFlBHGdvf9jtwC OrwX/nLT/nBj8yvKmi6Br2heZI/zKjuWMOrz3irYSWl4d0WFWZ09ORQQKsDUb9Rmx1OtxafH+8FC R2IHI+bTnFh8b+VPNPmT8prA+VfOPlDWYry2upLiGhQj0XHEJHyejKDU7EjBixS1EePFUh5fpa8e UQFFm4/Pvy2ZbWafR9ZtZrfmFke0DFUdaMqlGPXauWHS5RziWXjRWSfnZ5InuIrk296rgyNIz6e/ Lm1PirQmu2D8vLqD8l8aKhF+cPkWO5aeNLyJioVGTT5A1aknele+P5e+h+S+NFG2/wCdPka2kuJI otTZ7go0gjsJFLMo4kmtO2EaSXQH5L4oWn88/LNvFJHaeXtanRpnmEa20ca1kblX43ABqa5bHR5e XCUHNFOfLHmPzT+YPKDy75G1A2Sr6NxrF9NBBAtQRsatyIHYZDNhnjFmO/dbITvkHlUWhfmF/wA4 462+qaNq1g9nq07JeRW7C4gukJ5fVr+05AAjqGpUfssMxTKdWTR6i0DiBt9a/ll+b3lb814DpEF9 DpfnCxXnqHk+ZgLo0G82nSMQJ07lD+8XwI3zYR2HMG+5lGQKafmH+Wfln80tK+oeZ7iXRdcVSmn+ ftOjBuogNhHdoKevHX+b4h+yRluKU8P07x/m/qTICXveNr57/Mj/AJx8utL8pfmraXnn/wDLlYhD oH5haeBc30EQPwssjU+tQr3hkPrINlJ2yyQjl9WP4hjZjzfUuia7pXmTy9Fe6Fe6d5p8oa+jD1E/ fafdrQH0pIiOcE691cB1OYeTEJ2JBnzHeHjut/kLGL7UPMf5YapqWmySRCS+8rtKZLmNl3LwSM3K dVpsoo3zzT6rBmwi8e4HS6+X7XHnhI3gUBofnLzNpPq22tXa+aAzBLxdShEcgCbcBSvAqOxB365g w7bn9OSIlHu6tQzyHPd6n5Y8z6fKZ7fynrNz5I1S9Pqz6YeDW0zjcMIXrE/T9ijU7Zt9BrI0fymQ 4yecf+Onb4hnwY8nLYqmufmf540e2vl8xaFY+Ybe+s3srfWIg1vHKrE/bgVSB17gDMvL7Q63TxrN jjPpxbgV500yxGDxHSbv8vSl3HruoX/lIaxrMN1ql5CzzQXUQ/vQzxws0Yr4jhTtlfZ/aGl1HpyE 45E2d9jfPer+ezKUieW+z17UbbyDqb21j5R84aTrWmx8EXS7y6aeGK5nNI5I5IyJUY14hN19hm21 PZuj1YAxzFcqP4sfcgZDVSFpHqH5JygPftDp9lMJTbtdyXZmct0I/wB5ySSTQAmgzBl7JECuKh70 HJAd6/Tfyi12GO0nm0WSY3yI+lLDdWTQKGYqHKNIpcuNh6iinhmJj9lclncSPwZCUBzKc61/ziz5 t81+UL/zz5gF7Fa6fPHb6TZXd7BGZZBIqcpHQkBasQqD6N8uj7OZYmuP1Hvrl+hZTB3ssC0H8rj+ XN5qUd2kcYu4rmHU7IXsS2ZgnUpKk/wuQqruAaU69cx/BPZ2ccUwTIUa39J76527bRdk5dXilkiN hyva/cvtfyVMAN7pun+W9M0maAScIr24ZWiILRVeKP4g9QSa79s2uX2bxCIlKdjvJPV1YPFPgjEk 3y62mWh6Z5F04+pqPmOxhuLRgsVhoVo95MslKsfWlWbc1oeIBHTbMX8p2bgJ457juH6Tezs8XZGs y1wY6975R/O2TRLv8yNRitTfXWjm3tVja+eVbhJDAjyEesSQPUYmhHHfoMq1GoxZJ8WIeno9f2do 8uDDHHl2kLLzvSb648nXlle6fe3dqLuMymS3Xkvpns8NSGA70rmNLF4m8ObfDNUjGQ5F6Fc+ZT5h i+sW/mvS7GW8Ppalc2lmwvHXjUxBlVaAg06kjoKZhQ9O84mR6d3vLlZZ8I2kI3+Nn2N/zgz+ZS+T /wAzNA/LeDzDe+Zj5vlltvLI1a0RbTR5YopJmJvSRO6yJGUSOrLyIpQ5kYpZ55RLAIwJ5nej8P1U 4GsGCeAx1EpzEdxVA934O79SLX/nJXypN5o1fyYl9pI17TJXglVneOCadGYSRwzNRHZCNxX5Vzos OvxE+HOY4u8fT8LeS1HZmaMPFhjlwHv+qu8gdGRRfmNCpkF35dsbmNpJDK0UhD1dhUr6gIoR75tv DmOZdNxw7krTV/yW+s6hqGpaLbeW7i4jis9S1CSGFog0lAscrx8gGYkU5CpzDzCHOdHof2so8J5G nx/+Y/kPS9M8yzv5E1XQPMfljUVee304xvbTWbJOIJIjIUaJiZTRQaE++YI0UM86gY33Hb7eTI5h DmLfP0667qWo3+j2Xk25hvbiWG1mtlISSCO4PorxES8/UlEZpWgXrmNPGcG0ogfED8d7IagHkCkU 0/5g6K1vDp3kD9O+XLC1l1WQaVO3qafZwfFzufW+Iu61YU+0AeO+TmRIAgg3+Ph8XP0cIZom7BH4 5cz8GW2H/OJH5pfmpo2mfmV+XkPl258r+crUalYW41FonDsSsikPCvE8w1V7MDnO6jsbNnmckIgX 0vr1dzpteMEfDzc4929h87/mN+WvnP8AK3W5fK/m+OysNXKUljsby3vk9NqVWQQuSh36OAe4zUZ9 NPTTqfPyLm8eLWRsUTE3uORSzyf5/wBf8kaFqGkeTZrXy9b3tyZ767t7OFbolUZCnrOpbhuWoRSu 4zYaftvV6bGccJVZu+Z919zHN2fg1E+OQutq6fJ6R5N/5yZ85eV7EWGoRw+a/rNwFtNQvbgwzAEx oqx/CEZIkRq1O5Nc6Xsz2h1MIiGSPEe+RI+W1Om1nZGCZ4omvIPu/wAmfmBoH5g6PJrXl++S8hs5 3s78IeRhuoqCWNTX4lVjQOBRqVG2d5p88c0eIPL5sMsMqLLnhiuLaeCSrxTRvDMiHiSrqVNGWjA0 PUbg5aRbUDRDYUQ2yRxIxFqqqkTPViirxCl2atfEnAq7nU0D0K0O7MGA+agE/SMlxKuJVCGKOGA+ 0XPHfw40/HClsgb0iiWtPskCvy8DkGPPmtDlkLV+AEqQGCgGu9aEEn55NJoKf7qvUfZ5ct+lOvT6 K4ot/9Poev8AmaHTGmhsfSvdSfkI4iQ0YatBzVTy29hT3zl+0O2cWm9MfVP7B7/1NU8oGw3LyqO6 8x319am/vZZZ7yX0ltbaL1XldjRYoYlBbc0AAGchqdVLUy4shs9P2BxDxzO77w/Kf/nEaXzAth5h /NSxOkaaAslv5Pjol5OOo+vSrvED3jU8uxI6Zuuz+wZSqeewP5vU+/u+9yMeDrJ9kah5k8v+SrWL yn5T0m3kvdPhWO20OyVYbSyQ/Za4dBxjB68RV28O+dIZY8EeEAADoOX4+1z8eIy9zyvWNLh80MZ/ OCQeZpieUdvdRK1pb+At7dqqlP5jVj3OYZzzMuIGnLEIgUxS5/Kr8urtuUvlKzRjX4oWmhO//GOR cPjz6m08ASGf8i/y0uDUaTf2zbkNBqV0oFfZnYZL8zPuHyC+EPP5pbL+QflHrY61r+nMDs0dzHJT /kZEcP5nviPtR4fmVEfknd2/+8H5n67D7SwQOfb4o2Q4+NDrD7V4Zd/2Nn8tPzFtCTpf5qsR2W7t pzX/AIGbETw9YkfFSJd4RVpoH5v6bdQy6jc+VvP1tbuJbbTdTmvbSH1VNQzoiOJKdleorvTJCWDu Pxr9CJRme571+XX5oea9futaj83eXdI0XRdAhY3nmTTL557CKROsJkmjiBYDqErx79sv8aJ3HIcz yrycaWOve+cvz5/5yC1rzLbah5H/ACvuZbE6hG1ousxxu1zcSyDiqxonxqhJ6D429hml1faw4hCA sfaf1INQ25yLF/8AnH7/AJw08x3ttoWv/wDOS17Z+aYvLVx9Y8k+QY7ZIYIwQvGfVqE+s/wgiEkq P2+R2G6xXVyFE9P1tYsDc2X6USPa2Nqzu0VnZWURLMSscUUUa7knYKqqPkBk53NL8fPzs882X5gf mVr/AJh0mR30gmKz0uVwQZILZAnMA9Fd+TDvQ50eh03gY6PM7n8e51eoycctuQa/Jy3bUfzO8h2T AcX1m2duI3Kxt6n0Ci5DtIkaedcyK+bHT/3gfsWM5PGHbl5t+ctrDeflZ56jnVZFi0iedAwrR4R6 iMPcFcHaYB0mS+g/SGEhYfhZ+fPklfOWj+X2OrSaTJpd7N6c0ShmdZYhVTUigBUHOT7O7SnoyeH+ Lzrk4UxQt4/5L/5xtXzMt/Nd+f8AUraGxkSMRx20bcjIpbcsT4Z1vZ3a2XUxMiSKPenFDxAd2eQ/ 84k6aJVaf8xtZe3FOcKW1ush8VDHkAad6ZszrJnkS2DB5ptB/wA4peU47qSS485eYLi2YUhsh9XQ g+JkCVNB7ZE6nNX1m18HzRll/wA4ueRbVrg3mt69qiSmsJkuEgCD/nmtTX3yMs+Y1U5BPgjvY35i /ILyt5WtoJ9Jl1PWLi8ncendF5nijYVXgUUpt/lipzXdoavWYAJ4shO/KmnLi4dw9Q8s6lpnlbyx pukXOh6jp0lqv1aYLBKEaIne4MzDigo1TUih9sy9LPJrIccxwy6g7b+TfCXp32eCeYNJtpZZo4Hj 1XTZi0kN/tJbGMmvxNvzkpsd85bWaTJpMtSuidj3uNvCT5w84/lFf2s1rrvla5kjuLWVZ2FoGhuo W6rJbOprVaeNcz9F2sB6Z/A9PiyE930L+UX/ADkvNfQPoX5qXkcU+lSra235gPGFEinYLrFuo+Ei lPXjFT1dT1zdjUiwCObkRm+vp7CCWwaxn+ra15a1qFZ7vQJ2jvLKeGcfDLbyAsGDDdJENR2Ncvqz xDY97Ze1Pn29/KnzV+VeqXvnj8jr641LRZxy8z+RLkfWZWjFSwe3O11Eo6SLSZMyYZY5PTk9Mu/o fx3MDEx3jyesfl7+aflz8wjENJjk0jzNbp6l75VknAugyD4nsJW4mdRX7J/eL3BG+V58MsfPcd6Y yBZf5h0TSPOgV9W42GvhQsHmi3QrzFSAl/AB8ZB6sPiGaLW9mQzbjY/j5/exyYo5PIvnTzt+X+oa TeWNr5jt5UhVzPpV/aTMLS5K9JIpo6BuPgSCO4znJQzaOXd5/qcKcJYzupeVNV81Ra4dEu5bvzHo t1AxhNzKj3EsgAAto3lJrsCQGAB33rnU9mdp49XDwstCf2Eefm3YshOxZrP5H8vre2d95oGpeWPJ 18zCe1gCz3FvMK0WcjkCjkbEE0GYmTs/S4NSJZSfCPOuh6f5v2sMkOHcL/Nvl38p7bRrG28jS6Lp VzFqcM7XFzBNetLCY1QLxeNSrhiz1BCjbY5s55+zwBHDkgK52CSfffRjGcuI2ejNPL3mRtD/ACjm 1nWIJtRk0q6mPqS3cUksnfk04birMykqrBfhNOubbB2gBpDkJ4qPeD9q1cqD37yutl5nt9J8yTWs 1tbzabBPp1oo4yRXJJLNKXUKUC0pxrU7g5u9POWWEJwoA877vJqmCNvN9Y+bi7f849X8mpabGlpb paNYRwIfVf0504yfFWjFhUEZRKJlnI77+5yImIgCe8Px5/MW5vLyHWI9AsL3zH5e1G7EZKSxzXhV QHmF9AxVo2DAsQAQR40Ocbn7KzY8nFA3fdzt9B0vaeDJi4J+mgOewryTr8vYotR8n6ra+Yvzbk/L b0LWceV9FhtTfi63AjCNEFMa13cKPg375hfnJGHhznPh6xr7N2Ot0vh5I5MWEGVWJA/bsu/LLyD5 g83XOp+W9J/Pyw8uzWLGXT7WWwisZdT5yqjubxkJ5ty5bfFTcgZVkw6aUuIgnu4uXuIceXaHaenx iyIxvuFvmf8APbycvkT8wtRs5PNKefdOaKAT+dbO4e+t3uTEnqoZjXZHBA7UAzbjTHHjBMOGPlyb 9HrpagAynxT6h4zr4VH8sSRtslnzSRSeIZu4OQjEi7ZYpXOXfbKtHhug9zct6aOJBxdY0V2PFwTW m5PEVIys5ATu36mBFUibvW9V0FI9d04S/pC1uxJAyTOjPu4I5oQQPlguxtzRhqEpGXIfLo9L0Xzr a+ctPa2tp7+PWZY3a6sY2X1V9OgYG4kHEK1aV2bMEng2A+fTzdiCMm5Ox6gvq/8AIjWvNGt3K6V5 /vr6XQT6FlBdfXxqR+pwMXjhuHJR92Kq5Tk1KAHMmfbGTERAS47G9g3Q7gOjpdX7O4tVCWQR8OQ8 xR/rE9X6Bflz+XXlTXb65gtPNGn3XmHT9PF75itbeUXyfpCdqFjE7hpFgCrGBPD8BOxJza4Jy1O/ F0vlXz238njs2i/L/UK6c7H6noGof84+fl+up211dWF9en6zAljDavJALV4BJdViUEL+8lZmJk5U NKUzJGhA762aCIXyY3qnl3WPJjafF5P/ACrvtVbTpJrrTNQvLuKWaKZx+7POZp3/AHalhWu5boMu /JGQHEbr4rxxiNg881jQfzNGr6p550n8l4rK/vNPNnqmh298LWyvI4YWMZmMtURY+IRgqUb9mlTl 0sRx4+GIBA5Dl82In6rFgvn381fzi/Nf8v8ATYPImkapoflPT/8ADkVrqX5aaCVWHRZ7t5GlBvJF luJmCyciEUBge22aPU6mOIVLIBYIMQfp+822ZM8jLc79784b3SdQsbuzu2uI+dxRLm65uWnkUfEX 5E1bjShY18d85GUxOJ5mncaDUnNMUeGQ59xH3K7Xuiz6i2nPLDPfNCPVsqsrNG1dw6U3A8DlYjkj Hirbvd3njDNLgEzGXl+N0x8p2+mW95baR5vvRbeRnuRJdzzWsVyLUMCtajlMAoP2qbdaZ2PZnbUc 5jizEAd/9v6HTZ9EYEnGJcQ7xsfcX6k/lT5G8t+RPJmj6R5PvbzWNCmhS7sb25uZJvUEqg84QVAS N/tBegz0DSYYY8YEDYO9vL6nNPLMmYo8no6qteQiYuftsGVRXp4A5e49Wu4E1VAvxbgsdxXrUCoy a33tyrWpePjJQB2X4uvcqw3+jFG/RahWoQGOp3aNmC1HgCwNMFptshAQeLFn2YD4h7b7j7sKC3Ru SgAKeoVN6+5BB/XiyK2vvtyr0HXw6ePbIMaf/9SJ3Wo3aTTO88wbkyCsZUVr1oABXPIjAgmwXW2X pH5PfmPqnkbzHPq2kC0fV0tF9Ke8t4rmSKIvR2jEm61qAWWnhXN92DjBySlW45Hub8E6Jt9oap/z lZ5m1Xypd6Xb6dBpPmK7CRweYrOQ8I05D1G+ryBjyK7AhtuudRxk7HbzDmidb0peUb/82tatAPJ+ p+T/ADQqVeSwhnhjveTfaaaKRo5SxPUnc5EabHM7E/j4t41Eu5k01/8An9ptfr/5VLfU6tZMZCfk IpH/AFYDoo9JfYWQ1Pkg5vPv5jWCq2p/k3rcAPUoJf1NEcgdHvXEGQ1I7igT+d0FrKItW8keYdNc 7MGhDU+QYJgGjmeW6fzEVVPz+8g+q0M8t7ayoSskUkSMUYbENxkahGV/lpkWBsz8SLILD84Py8vz SDzEisduMkbqR86AgZA4ZjmGYkDyKfp578nSglPM+nADqrTBT9INDkOA9zLZFXKw3WlHXvNV3P5V 8jn+4tN4tT1qgqEiWoaGJv8AgmH8q75GZEI8UzQ+0+79bXLJe0ebErCw80fnlNZ6ZpMR8j/lRpUn pWSWyBUkWPYpbrQCaTY1kPwITtybMMHLriK9OPpX6O898jycUz58O56lf+bvm7yP/wA4/QaPoXkr yvDL59Omyny7f3UbSWtgk7FHvJHf+/ndl3APJqblV2O+0PZfFICEQOHrzq/vl59HGy5Y4w+Yof8A nKL/AJyNtXjaTznoN6iEco7jQo1DCnRjHMpH0Zvz2ZDpI/Yf0OJ+cPcEx88f85J/mJ+YPkpfKWua fp2jvcT/AO5i+0mSUDULZQpRGjk3iBapdQx5UA6VyWm7PGKXETfdtTHLqTMUBTwEFR32328Pn4nw GbEuKyHQfP8AH+WWr6P5wk1WHSJNOu1S0vbhA8Kyzo6BZQdqMpIPhlObEMsTE/it2cJmBsP0t/Lf /nJnyX5xisrTXLiDy3qt2q/Vp2lD2FzWlGin/Z5dg/3nNFl7Olj3G4dhj1MZ7HYvf9a0jT/Muial ol/yl0zWbSS1ujC/FmhmXi3B16VB2IzW58QyQMJciKLk83yr+YP/ADjt+VGiaRpOoRaFdahew69p MGn213fTvEz3d9BA/NAw5gRsxodqjfbNdh7D00sgFH5sDjjXJ8JaJYpb+bPzWihjW2itfNV1FBGg ChUWaYKqKBRaDYbZV2RQ8Sv55asHOXvZWsZTdhVjVQOvvQeHuc3LaV3Aip41G1FJ7fPwyQQpdGqK 1O9WO21dyD+GS4VUXWqOEdkV1ozKaMKilR7jth4enVXk/nLyLrep6dP+gfMGpfWI4+a2NxeurSSd VIloQKnqCCM12bT6iMxPDkO3QtM8cuhefeWfN2nwc/IX5g6XDb6pacIW9O3dLSFEUBXlkNGD1O7C u57DJZNXjzjhzx4b/ndfd3MRkFcM0frX5cSgNN5bvo9fSdfVW2V1Dqh6Mriq8ewrQn3zUansaYHF iNx/HXqxlg/m8nzL5/8Ay4s9XkukjhOheY5Y6G6aMxrIUNQsoAANenIbjKtNq8mmPDkBodD09zWC RdvFfK3nrz9+UGqQ6LqUl/Fpysbf6rFIPgtOQlc2Ly8o15Hl2pU70zfwMM/7zHLc/jcN8JW/Tn8v PP3l/wDMPy9F5o8l6+dRhtSovZNor6ynI2jv7ZTWFuwdaoexzOEARR3b4y7ki8+flHonnyddU06d fKfnz1ElTXbb91aXMvVGuUjoY3LU/fR7/wAwOXY9RLCDxeqH2j9YUxEuXNjOkfmr5m8maxJ5C/PT TZ9L12yrHB5xkSpZE+FDdqgpcoaEeqnxj9oHLhijmiJ4CCDuK6+5jZialze+22oW93pUMDWtr5h8 vaxH69vAXW4sbqIgUms51qFf3BBHhXNbnwQygiQZmiKO4eXa3+XN1bs+veQ3n1CzsnF3LoUhrqNm YyGHEf7vQU+0NwOoOc5n7OnppjJj3o3X45uLPAYnijuEbrFzrHmbybrWo3Mmjx6bPG0mlK0zxrHw NQLpmAVXjccStM6LLix6rFwwv1D7W2Xri+Y9N106rPJDIjW93Zyqk7xxs8atQ1S2b7MhNPt9KdM4 7PpTgJB+R/T3ODyZ7p+u3+iadewwGP0NQR0ubG5gS4icEFQXWQEVAPUYdJrs2nkfDNCXMEWD8Ejn b6j/ACH/ADZs/N+qnylH5btbBNIjEmpT2rNFz9Dio5wSszNyGwIO3hTO/wDZ3tbJqpeGcYAA5g7D /N8/JE4Ebl+kGqQ3n5k6HfWl3dJ5f8pWUag8IWZWpsqx1Kh2FPHaozbY5HHl9IuRbZkGB4toh+eP 5pfl1+Tf5a+atL1yHzLb6xfx/WLi/wDLeszHTpXMTB6Ws1sXHqEsaI4+LxzW9taXXSA8Gok3yo/f +h3XYOs0UuLxgZAUN+Q+T5u816Xe+ffM82p+QNC/Sfl+Biui3Mth9XntJJkUTpztwRIpYhSx+1QE 75y2n0mr4SckSZSO/Pd7LUa3SxIjGQAiNgOiW+VPyN/N7zbeyWN1o93o1szMhubiy4I8YNJArSMD 0PQDfMyPZ+XnIUHXajtTTGJj9V9Eu/Mr8t/Mv5bX+n6RqelfXLLUIxBZrEtAZASvB1b2HvnRz1Hh 4xIgGNfi3kxI+JUQbvbveNeY/wAr7vUJI5tJT9E6hpiGIaVMlLeZa1qpFePgCM12LDh1QMsBqXWL voarJpJcGoBN8pfjmlml6RrluvoXGkPazeo3rLI4CmgkrxHce+ayenyxkbhXvND8fB2Wq1+AgAZA eVVze0flb+XXlLzZ5n0m0/MbXI/LXk+2L3fmC6jmEc7QrHMRFbMAf3jMVCinfMXNOeIjeNf0TZ/U 0yyRzQnGEZkyHdQvbvez+W/+cNrLzLqmrXdhqv8Ahr8u5ZIrnTfPGrSRWsD2sjA/VXmLhmnhVhsY wGIOwzJxyOeH0gAj6vxydBDNqMMzCJkOE8mEW0cH5QfmHrGk+T7jSrg+Xz6Vt+YVjbRx/Wgkgcjj M0igbhlYGhIqKZiYs+TBcBLjj0BH6Q9MNF+axxnl9J/onn7wer7R/wCcPvzq8v3f5keaNH1fU7WX VtW0YuNR09EdbcQy+pNLeelURq3KvqPtXYnNxoe0ZzPBkG3ShydV2p2Tjww8TF8bPN+g9zp2t30M 2pab53bULAFp7b6pLATI0aECNHBCbnbc08c3olEjYPNnjfjL+df/ADkb/wA5X/4113yzon5oW1nd +U9RnsrLS/LjWtsbiIlAPWkkRxI6sApNeIavY1znJa3OdTKNioHfu/sHVlAcdgHd83n/AJyz/wCc zvKvm+70DVfzIvodRvlbS9d0LzY1vcWtrFM/H60vCiAKQR6kbUG6nOhEozwmXXy/b+lxyMkZ8Jv4 vLvM3nr8xNY1K71jVfza8jfpK/lM+pSK0RZ2KciaryJbbjQDr3znZaDTZJmc4Ek98v1NpxDrJit5 rGopNb30/wCYmh+bXs19ezsbaEmGFlLLLyRgtar8QY1rkJabDGJjCAhfPcm+7dztJqoaaJAIN945 +S06npmpalp2pSXZtpLWKOCC8gjrVi1GRgNum1abZpfCnjiY1d70UabW+JMeIaI2BH6Wdad5h0vW bk2JhD3UKFntZgTHJEDvXj2anffMKWCeEcV7F3/j49aDjBMZDqH3b/zjd55060+s+WtW806mq3LI nl/R9QnSSytWO5ihdkEiMx+zycqRsKZ2/sx29E1p88qPKJ/hPl5H7C8n2lgyYp8OQC+/+c+zK/5b K6A867ig6k7Vzu3VrwzNxIIWA/7spUe3euK1stBTlwYDkN/iB+imEIKoZWIKjgfCNTxU+FNjTfAl atVKLXkH3YAgVPh2O3yyaCv5KAzJGkY7+m5r2/ZO9RimlvKL+Zutf2en3dcgu7//1eb+a/P35lWN rcN5WlXVtQkdkEN96DwotTv6cqfEfAVGcFpe1pyn++kOH+qHB8eT461XzZ5us9em1PzPDqGna9dO S+qozwSuK1opUgFR2Cmg8M63Ta/T5I1wRI/oseKzb1Xyn+fnmvTCkMuoW/mixrR7K/HpXSj/ACJk FSdv2lPzzKOlxZt8cvgWcchD6H8tfnv5O1WWAz3tx5T1UN+5W+JjUEHYpdRniN+lWGYmTS5IfUNm 8ZBb7J8k/wDOT35leWYbcHVofOOj8V9ODUz9Y5IKbx3cZ9QbdOXMe2R3ZDK+t/Jn/OWX5c+YRDbe YFufJ2oSFUJuh69ozH+W4iBoK/zquR4vg2DIC838+fnynmPV76wi8uazqv5e2k5gtL3Sow1vqxT7 TzSEBjEG2EYpWlWqKDI5MeSQoEV7/vcjHkgNyLY1J+bX5W3v7vVvLLwNShS602B+Psdq5SNPnjyv 5t5z4zzULe6/IPzXeQaZZ+TbDVNZv2KWGmQ6RwuJ5AK8EaNRT5k0HfEz1GPckhP7uXc948lfkr5B /Ly2vPOXmnStL8vwwcbo6U8hksrL0/7t5nmZvUlBO1PhB+yCd8slKR9WU8vx8/JolIcoBjtrr+jf 85Ied5tHtNISPyL5QjjuNV1aaPje3xZyIbdX6wxSFSSo+IqDWlaZrJQjrZnb0x5nqe4X0Hl3JnHh hRPNn/56SfmRonk220v8pPL7SRzo9vqd5poQXNjaRqAiWkFV3apFV+yBsKmubzTYMYlUjUfxsO4O JllIR9I3fmGPNX5j+UI5PLcut3jaeh/e+S/Oln+lLLbeghvh68dfGNxm7/JYZ7w2/qn8BwfHmNpb +8KWo6z5XufL+pa7rHkt/JN/AVXTr7R9Qa50S8dWCzj6reK1xD6QYE8ZGWvw+NGE8sMggZCQ67bh JjCUeIAg/Yxv1CxDlgy9S432psQd+o6ZsHEV4gSP1d/u98il6z+U2geSPNfmmHyr5/ghl0HzFbyW UMkyQyRw3ZKtCzC4SRDzoU3H7XbNf2ljnLD6SRRvZydNMRnv1ey6p/zg/J5Z+sS/l3qrW9makaNC 5+rueu9ldMyJ4H0Zk/1T0zT4tbnhsDxDuPP5jr83OyafHMcq9yU6Zf8A/OQP5OvFb6ZqButPhb99 5b1JXa3JH7ECXXpnf/imXMkanTZv7wGB+z7P0hp8HLj+k8QZkn/OUJ81+YPyy8ied/J83lbX9T86 aUrXIfjakws8w5R3HCRKsq/zD3ywaCI/eQkDEb80xzknhIILybS/LGh6j5z/ADNsPK3mc6jrsvmm 7S48vavANPuzPzcsLeQF4ZVYmqklWI6jOU7NhGJyCJv1nm24ojf3oPVdL1TQrs2OuaVd6RfI3Fbe 7jaJmAJB4FhRhUdVJzakEc2RSolhWpq71BVaHftT2wjZCkx34Ab0oKU6jv8AIZO1UyPhqvWnfp4c q4RL5qoigWlehNGPb3Y+/bJXuqB1PStP1i0lstTtY7iCRWG4o6hh1WQUZW8CDlOTDDKOGYB96JRB 5h4drn5P6zo6rc/lV5lvPLt07s+o6bc3byR3KtT4DKwZqmn7X3jKo6U4yZQkR3Do1HFX0mkuvvM/ mXypby2HnHyLJ5j09Qv1vWI7dUSNmWtHkLOpWik7UpmKMmbLE+Pi2Hd+phxyA9UUgn8kflb+bOnp DaSSaXdXEayQ21yCsnqMDxFqJNgBU1KMa+GQxYMHFennwyHT9YSIwl9Jp8k+ZPyp/N3/AJx48xr5 48l3Fy1jZ8gvmLTFMsZg/ag1G1IIaMj7XNSh9jm0xzlVS5qBKL64/Jn/AJyM8r/mebPRNbgt/Knn ulJNFLiOw1Q0/wClbO5pG5O/oyGtdkY5bxNsJgvoXzJo+m+fpbbSvP8Abi90uaJLS+mZDFe2skI4 x3KsQWjuEACsRs6gch3yjTYvygPg/TZNdBfOvLy6dG6UuPm+ZfNvkr81f+cXbjUNY8mSD8w/yqu3 GpX+glme3lhbZpeKVa1mVRQzQ/DWgcUNMzxlhqBfKf3tBBh7ntP5Z/m75J/NOyTWvIup3I1LTU9X WvK10Qmt6atKs8kS7zRL/v6KqfzAZj5IkbSDZE9z0S5On6hcS3Xo2tnqOovW7uRGBpmpMgADXSAE RSgUAkUb/tgjKRj8M2OSaDB9W8i+U7rVr1dR0Z7LzZdRkwxz3MkZeiUDWzRv6cqAECsdelCMqzYc Wp2mL+9rljjI7jd4lpPkHVPIPn3SfMPnDQpPOnki1uI5bqODUpv95wwaa2m5gHi6jiKrQdmGYutx YNNjMox4ok7xrf32PvYRnLCCKuJ5vU9U/NPyDHa+cF8gfkh5c8pt5iSW3h16SeaS/trSROPpxSQe keJrzHx/a3zUT7SjEVjhw35n5MTmGwAZ/wCRfzg/PZ9T8o6db+dNP0LyBoWmmG30K5a09CcIWCeo 91O88khZ92Z9+4zc9l/mDOEp5Iwhz+sfr5+9hPNcfUAQn/nWLW/zH03y9b/mh+XXl78wL271X0oN R0R5NIh9I3LQRwyzq8iszABtkoR0cZ0c8msjj9X7wWO7h37uvx5McRhEnhHC+/8ARLz8tvJ3l7S9 K0jypPo8NrpUFqYba3EiwFQtauCS3Ej7XfLrmBy+1uPCd5SRmh/mb+U2saxPa2XmaNJ4ixniuozG iCTkiEuQU3ZSBv2yfDLlRtBxgdR8993j35o6t+Tn5uSa55C8u6/bal+YWiJdy6ZbQx85EkhjaY+m 46owWmxrmo1sYZwccT6+52PZ2tGmygy3H3Px9vfMfl2580Xl8t1qMmsRRfo24jEN2sNtGD8UfGUR xKQ3xE7muaLT6jU6agKiT3j73p+08+hJrLImxtX6GHX/ANb06e1vbSzsri30q6S8XTdRvnE8wiPP 01aKM+ifvHUUzOzaPIY8WTIBY26uDg7Q0ejqMYki+Z/FvQofzN/MbUlZdN0ryT5XjuByittP0y81 a4RW3ADyFI2J7fD9GY+L2ehLeWQn4/oDsZe1G3oxivd+t6f5P8sfml58s5h531TVhe2x9eKeH0rW 3Fq5+ALBYoPRZifsu/LxGZXZ3YmnJIMa32snc/1fc6rUe1OpmbBiL25C2Kav+TPmqTzU+jXHk/RN Q02aRLsX960s10X3HOWNpSzAAVpuM2f5A4p8AxDg6d/3uBHtXPlPHLIXqGh/lvZeUb3UJtX842vl LRL2xcan5QMcemxXNsrkQgzWpEsp25lOJTlStd8ongjjmfGnGEK2HIn9P3uBqdZOe0pGXxv7Hjvm b80/zW8keT7by1+Q/nvzBrOn2ccv6R0a3isVNlDKxCR2ImQzmgJbkFBIqR9nD2bqMZPhxkZQ3HEe /uHX4uMccpxMh06fpfE0kvm7WvMcNzdWrnXnDfpK51G6ls7i2ljUtynPwbkVod1b3zKzaPT4cfFj BFfza379zbXjjPio7HzZd5e8sNea7pmm+ePOGnLp1gLiur2Uv6ZvLVGPEr6MTIWRy24JoOuDBmre MT5gkfock4uKNSk9L0/8uvJWianZzeTfMmnedNPnt7iTVIm01bJ7YxNSjxXLsxLbFeFc0XbmW8Xp iBR6Gj9+7XkwRjGxLd84eaPzDm8vea9eg8t6DpeiCyvniE7WqzSz8FCOTzJCKx/ZUDtmy7O7Gx59 NE5zKRIvnQrpyccjzY/pGp65a+YDb+Y7Q2x1G2a7t7ZoQhrIAyyICejDqBlnaXZ+GOHixcwQOakE PcfLGo29s0ULWyreX8ge8Dc45kWnwGRGFTQDY+GcbrMRO97Dl+x3fZvaUcJEJDn1epw3Hoyetbz0 eMlS6/EK91Yb/wBc1YHQvS58GLVwMDuPLoX21+Tn5+LdRW3lrz1dEMvGGw1yd2Pp0oES4aoqnSkn bo3jnedge1PDWDVHblGf6Jfr+bw3aHZuTSy33HQvrevMoxZADuX5cdiKggH7QOxGeg3YddZXmhBr IsfEgMjlhT3+y3X2wIPNw2BRkIBOxBB+RDFdhirYYjjHSokPNo3PI/ME7fSDirYJJoGViSfTBFAR 70G2Krf3n+/I/Doftff+OTWn/9blNwGaaVjvR2oO438M8n6urKV3mnafqS8NQsra+VPsi4jSXgG6 8eQNK+2Thklj+kke5LzDXvyc8vaizTaRPJoF1SqrGfVhZj4qx5L/ALE5s8HbGWH1ji+wrbyzVPJ/ nzy1zZ7Qa7pqCpubasw4jY8l/vF+4jOl0ftAJbcXwl+tkDSj5d/MHUtAkJ0fWLzy9Ou0lujc7ckH flC9U+fwg++bgZ9Pm+ocJ+xkJvojy9/zkBcxpHH5n0VL6EhR+l9JYK/+UXhc0P8AsWwT0MgLieIN om+k/wAvvzn9C5N35A8+S2N6CrS2ME7W0x8BLayUDj/WQjMGeOjUubOMz0fXXlT/AJy01aDhaeff J2lebYTs+oxRR2t23u6srwv9HHIfT5/e3RyEp/f/APOZfkHy0J7zy5+UAtdXdCq3HqWVqCtakPJD Gz09stMuLkPmviAPmT8xf+cjvNX5p6fb6n5glh0zT4ZZBZ+XLAv9WRkYgN8XxSyH+ZunYDNN2hn4 SeI7Dk5EJiI4jyeuf8++/wA5NA8webvzU8gJdRvqbLYanayqaq7RrLFNbq/7TIqhyB/lZk9j45+H OZFAkV7mk6jxJdw6MH87+b/zj/Lv81fP6+XfzG1zy5KuvXly+jXjjUdNaOeQywlbW65BFdCCPTI2 zp8OhxZcYPI1zGzhT1E4TIe5/lL+enmj829dh8j/AJw/lf5b8z6IthdXeq+fLEBLfToIIy3rXsF2 G9IORxDRyfaOwzC1WkOmHGJ/r+xvxZhm9JH6nkP5r6j+RX5sWvl6H8sPNsGiyeVbK80KT8qNZRtK F5a3ExlNxafXAgklL7g+oS6mg+LYyxHLiuWQGzRv9dJkIy2j0fG8nlD8xfIrSJ5YmHmnQY3PpaFe tS6t1PVI2alQD0ofozawzghwpQpQtvzft9PuRZ+afLt/5eueQVy6HitfBHCsd/CuZIkC1mJD1PRf O3lvVyj6ZrdrNLswi5+lKo9keh2PfJsCH3x+Vf8Azk9caZbWWiedkk1SyjVYrbWIyDcoq0ADgn96 AO9Q3zzU6ns4S3ht5OTi1hjtJ9kaR5l8m+ebJhpmo6fr1q4HrWb8HYVHSSGQch9IzUZcU8Z4ZB2E MgkLBYH5v/IXyB5tgMcmnCwlWQTwcFWeGOUGodIZgwjI7GIoR45SICP02PcfvbOLv3QVh5Z82+S2 uni0i381WU8X1eS60x0t9V4BQqylrqpd0XYUm+jMaGPLiJMCN/LdmZRlzFPLdR0rS59afTdQ8yeY tQ0rU4Zk1Xyx5oT1pYmMTiM2/wBYKTLIj8WWSEtWhG4wHVShvkiQyjhEhQI9z5k1zyrqnl4NJeTW N5bqyRpeWtzHJ8TVIV4WKTIxp+0gpmTjkJi47tE4GBoseVKlWr8Tfap39qe2WMFxAXdQfiFQO1fD boBiqgYqp0JctsD4gdflje6rCDQUpVqlSx67/aPyyY2VoLQEs1B+r3P05LdXNGeKg7qRRloCAvf7 8VeV+f8AR/J8cNvJqdzBoGpXrFdPueNI5XH2UcCigk/tVBzX6nsmGpPFD0zHUfpaMsI8+RSDQfMG p6bC9jq0keu6fx9NAHDTqtKGMs1RIhH8wr7nM3SaDPGFZZAnpX6WqGoI2lu+YPzi/IbSNcjvPNX5 Z6fLpmtRkz3/AJPVQIrihqZLEqfgkHXgNj+zQ5fLS5Ogv3JlOB3BpCflX/zk/r/lCe18l/npZ6pN pScLbTvON1byjVNMRfhVLpJFDXUK+P8AeKOhbpkKlHmKbYZH33ovmG1udMsLzSby18w6Hfp6mlXV rKJrK8hb7ZtpxVan9uNqeDCuQlDi3GxbwXjev/8AONUPmjzCnnP8lDF5b85WglnstHV3shPcrWQQ WsyMptppACFFfSc/D1amZGHUX6MothOHWKV+U/8AnIfy+ZJPLX52Kn5beabOf9Ht5zeF0064uQGr Hq9sik2srEU9aJfTP7Sjrhy4DAcUN4lEZXseb6Hra6jp0dpqcFp5l8sXYWbTnjnjnifb+/0+8gZl 5gbgo3zGYOXDHIPP8fJsNHYvE/N2m/mV5anm1XyVrEnnfyDxRbzTbuJZNR0sKCT9ZVvjmQDo0fLf 7QzGOTJp4+r1138/saZicNxuGPaf5n8keaIWOseWrvy0qI31jVmrZx3NyAGESGRQTzqKEqa5RHR4 dYfoIlXT8U1+ifMUlLeQPMes2fmH09XstEvba4NvpkIqbkIrj4pVIXjVSu9KHtmFHsIjcGwD1XwB exeuaPrv5z+U9I0jy1Alhq8Xl4pwvIoop2iChvT5cihJIaoBWubIa/tTTYxjgImEfp2BLWcMrL17 yl+d+r+VNG8xS/mzf6lc6ilqtxp+lXOmG3iWAIXThcwIwcTAilRt75foO2ZDFLx5E5CdgYnh+cf0 tU4zG1PNLX/nJ/yzqej6h/g/yro+jeebuRFsrLVJPq+lysqiadrmWICRCvP4KrSvuczD7QwFjhrl ueXxr7FEQDts+dNI/P3zb5I82/4mh/I/Rx5u8sXZkh1zQ7+4Yh7hmYkOQ3rJKsnEjfYfPMSXaOmM hL03Zog/NnGdEHmxG1XW9Wml1XzNa/ULzUruSZrF7g3DH1C0jK+wUcSegrmFn7bwZCfRxbbnk5R1 OOXOPRP5LKxFjNaXkAuPVdXiuVqs0VCNkeppXv3OYku2hqKhKHpF1uxOaEgI8O3vVNT1DVNGXTrv RNTs7KP0vqaae1frJUMGeZuSlCSBxHGh65PHrzKAlj2I2rmUZc5MQImg9y8vfm/+aFlo2mCy0uAW epTO2mWzWRk5SysEVV4OfjYgUWlfbLz7R9oYKoRrv4XGkDKiQwXzf+cX5iGfU/0rqB0G7cfUZ7RI WtZfXhZlMcgC+pGQagrUGvXMXUdua3U3Ezrv4Rw7LvyfPms6l+Yd/wCYdOudNs7l31a2Fvb6dewG aK7+sPxMwaQ8mou4au2VaYYOEjNuTve9u87NOKFjJEGwee/4PcXmdn5W/MO81C+1rSzp8Mlyl8z3 frTBWjtKtIgjdlTkeOyjevTOi0+u00IDw8cjVfj4OEdLLiPDLa6B8lFvJ/5qeYFudQ1WCyhnGnWw sLllil+s2kknpwqW9WvEAk9CV6GmbOOsABAx7Hdj+V4yOKfkx3SPJuoXy3cGpaovl7UtO1OPT9X0 qW0tUmgRvheU1BrxbalehDdMjqM2TEAYY4GJHO+vc0wxRkTEk2O97/8Ald+TvmXUNP8ANVxbfnj5 H8keX9MumjkuPM+r6dY3EqKnPnbx8WlaqHog+1t1zTa0yzTHFhgZAd9D7ebstJnjpoECIlxd9Gvm CXzg+laTa/mHCJ9SsvM1vbmeeHW4ZvXhnRIwYWkLD7YauxzY482THDw7FeXIeQasmSGYiVAEdA+k vJnkO4/NOWZtH816XoGoaAw5TX8JuBJHOvHjWMhlHJPHrTMXPj8TGR0G7TkgclCIs+T7K/L/APID QtGs9W/xmnlvzkuqy27p68EqSxhYjE6w3KKJEIry5B8xNJiEMRjljYvbY8v0NEv3P94D7iP0sN85 f84javBaa95p/KbW7fVNM06GW58weVdX1O0t7m1hC1M1vcO8ayRooJPJVbbrleq7HE48eE2B0PP5 9XM0msEL4DseYfMOitJb2trBJqImvCpdXEnNjvuykE1U9vEZy2WuI7bPT4IQyYRjyESsfin2V+TX 54z6P9W8s+bJ2uNGPw2t2zkvZ7/aBNS0XiOq9tts6n2f9pZaQjDns4jyPWH64/c8n2n2XLSysbxP I/oL7biMU0MFzbziSGdA8M6N6sbowqrIy1BBHSuenRkJASibBdRaryAI+JTXdqig9tjhWlPt8ZdA e0YBWp6dthih3JACgHLnuvKu3/AneuKd0H++9f0vqg9D1vS+s80+z6Hq8+PWnq/uqdf2umHiK1+P x83/1+UzECeX4j/eNxBNR13zyeTrFLmGA3J3+IU2NO+NKp8V32oteRA227YVXAipI3X9kr19zX6c VYrr/kry15lWU6npMZumrx1GL93OCBQHmtK0965k4Nblw/TLbu6It41qv5N6xpx9XyxrIua9bS5H ovUDoGFUb6QM3ul7e4TvcfduPkyEnnd/Lreh3C2/mXR5rWdDyiuuLRspH7SOu30qc6TB2pDPH1VI eXNlxPTfK/5w+arAR29hr663DWg07VVMrjsFSQESD7zmSNPgzfRKj3FmMlPao5vzk8wQJqOoeS7b y1o7oGOpOJZZHQ7ho7c8W37Fts0+vzS0oNR4j5cvizuQF08A/Mv8wbyJ5vKWgXsix2jOmraiGpI0 jf3kUZH2R/MR8s1mk08s58fNuTyHQNRmZc2Yf84ma9faB5u1y70rUJdN1S1t7W90+7gbjKkkMpAd flyoQeoO+dR2cAeMeTGUjzD9Z9Y86eSfzx06zl87XNt5E/M6xhFtbecghGk6oi0AhvglTA1SOL0I Xft8OZmMywnYWO78dWZlHKKlsVH81Ld/yo8maP8Alr5fSSW082QR6p5389QAta6zMf7uztrkfCYI e61BPcbnI4YnU5uOfKPIefQ+4fffkzyHwocMevMvmG7srK+hNvf2kN9bOPiguEEikeA5A0+YzbOE lSaLcWHJvLmuXuhsKcbQv9aswB29CatPoIyqWCB3ptGSQ6rrzXfMS2b2XmbyvYeb9Op+8kslX1OP 8xtZ/wDjVspOmI+ktgzA8w88/Nj8kb+1s/JXmbydZ22iWHnLRF1qzsOTcZ7eaQiN+J5ei68SrIcp hqJCRieYZyxA0e95DFrv5q+SOP1mfULe0iPGjqLm1Kgbb/EAPuzJjqAWs4nrHlP/AJyW1zTZLV7+ 35SwOjLeafIYJENeqrX4foIy6xIbiw08FHZ93flb/wA5ravdtDZrrseukH49L1ZKXJAFCEcFWIHj ybMPJ2finy2LbHU5InfcPtXyn/zk35E15Yo9WWfy9cyHiXf9/b1/4yIAw38V+nNfl7OyR+ndyoau Euez25JvKvnLTyiSab5l02QVKfurmPwrT4qH8cwpQlHYhyYyB3BedeYfyR8qawpazL6fKq8YIJlW 9tUFKECKerKD/kuPbMc4o3cdie5s4zyO7598z/8AOOet6eJLjSrc3Uaj4pNMk9UkV6/VLkq4+SSt 8siJZI/0vv8Ax8EERPk8K1HytrGl3MtlJB/pcdVeyKtDcL4AwTBH39gckM0euyDjPTdjssEkXKGV BDIvwyREMrj/ACaHLRIc2ulP02PVQa0FAep7D+uS4lably+MEgEdAKlj2+WIOytBQWYqPsn6C3Tx x4qV4J+fWotpumeX5RbRz2801zFeGaMSJQqgXkhpUcq7e2ZGADclhJ8rjzHrNt6Vve6nDpFrcN6d rqlvC7hoyNijA1qp24k1Hvmxhjjzi407OxREX5p6pa3K6faebhqjxqsU8Oqab6Zdxs3FgyNU7e+W 8O1018MS9Wh/NfQpLVtI84+WJfM1lMqpxSCK6VWOzKYbhue23Q5bjzCqnuPNrliI5Mr8heZ/yc0m 7mtPJF/B5Sn8wFTc+U7hZbO2uJ22SYWk/wC6Eu1A8ZBPTfGWm0+TpR8kjJlg9ij1K80qZbiK5Vbu BlEM0b+m4APL4vtAkMK5jZezInkfm3Q1kuoeQfnd+WGkf85C2J8xRXS6J5yug63FzJGv1fWZbZyo WR1ZVim5g/FWjV3zX8ZwE48m8b5jo5VDIOIPhO70v88P+cbJG/Rkl/oWkPNXUNML/XtHeYbFbiE8 og3+UtD/AJWZGeEIgS4bB6tIyGJp9pfkZ/zkz5b/ADJvbDR71ovJf5jlVjttNklAtdScAf7xTMQC zdfRkNfAtmvlEEeTfGYL3Xz9Z6r5pXTxo1v+iNXVpIr6QTx29pIVoGVkmRikh70YA9xmJmxZDA+H k4SPK79/61yCUvp2L5Y8x+T7/T9b1Gz8wQ3mna9eLHLd3sszSSPCjfAYWJKMD/MBQfPOb1Gr1WOo 5CSB06e9wpmQO/NF6PPL5btni0/Vr63X4pZbprl+ZNSxZ3qAaDvTpmL+fz3YkR5Dl8mInIci938t +dpprDTtL1e4k13Q2tV/RTLMvqwJOC4MEzJIpXkS/Fgy79Bndxx+LAEmpUPxTkYspqnni/lBfQ+a r3zhoHmDTdbm1W5aaO012zSwjtygCwxj0EnhkWMVJJ4lttvhyn8iJn9507uvvDMxsghk/nfy35+0 Cy0dfKOg2Wq30oeXWdQ0OS0mrKPs8g5V223A4/hmHqsEozHhQoe77EZBIfSxrTZfz0t7W81PV/Ky Myx+lp1oljHcSBAOKpyG4L0q1Nyd8w8msziQhHHY63FjxZO5jXkGDzj5r80X0/njQrW30yNG4Wd6 YIXWSMtT0KPH8e/7Vd8zJaQmvEx7S61ScY45bh6Hef8AOO/mO9vzqtnqttbaFdXKmO1umMs4kBoF iESyFlFaUrvTc5hZOy5DbEPn0WWm32fd35Df84qRaXeaPretalc3I0W6XUNIa5niBt5FG0lpYQyT CGQEmks0jMvVY1O4ztFps2ngQSTfyHu6t+PGIDc2zTzp/wA4Gflx5i+uXeg+Ztc0LVrq6ur57i+e PVoDPdOXblFOqnipJ4gPtmRlw8cfTUTVcgf1FkYB+efm/wD5xL/5y/8AyKuvMI8h6PoP5oeT9euI z9c0yM+vagK3OeSykKzxkAkERPIKHbMfwY4YXKHEBfIX+1iTON8PUPknzF+Xn5see9fhttQubPR9 RthKi6Np+m3FoQZDykllibhVlrQN2FBmNg7Q/MTGLBiJkByG2wcaeaVm7SvVP+cZfzMtLSS8uNUv by1tokZyGaBEHIKgBZzvXNpPTayMDKWOq87REgncvMJNN129vPqPmCB4/M1tILGa/uHETXlswqY7 xJKAsFNEk5A/PJaftKMPRkB4TzHcWzJA5I/0gp+Z/wAsLjSDBp8egNZ6jFEtwzw3MdwHV4zIiySc mSMkKaDrUUx49KJGshl5VyYDT5TzA+anof5Wecbw6jNb6DptxbaXaT3l491qdsEK24SqofhoxMih a9ctjm02OpGyCa3+9I08pXuOVvTfydfXdE86f4e1Xy9+gr/UbZZBozIokLkK8D8uZUhkJXrVSdxm fMaacOLGQe+u5u7PMsOYWOf6H2Po3nXVbKwa2USSBJXt4opjVvUB4kDfenQdslp8cQLjddHqsuHB qY+KN7vdHX/mqO/0fzBo6QKutXmmyWttdKP3SPMnGr0BIqK1I65neNERMaJJHR0w7DkfpkL7u5L/ AMwfIn5W+dYDfaRpUvlrziq2cFneacqWdqYoowJ5LlQ1JixXiAoVt+VdqZxR7BzeJVgQo+e/Sh08 2+PZmbGQR07i8V8xeVtU8n3VnbX08EkssZltby3k5BuJ4mtQCp9iM53W6DLo5iOUfVuPc77hhmgY TF99voL8iPzil0kQ+XvMgJ8v3MoWxvLlCiWkkh+0jGh9Jj9ofsncZ0Ps728dFMafMbxS5H+Yf1H7 Hge0dNDFkMYGx9o8n3IAqFmVVKgco2Q8gARX4XIPXPT7twOjQKkMGVmqOzgH6KjfFfc2PgHF1KKP f26164ryLXBf99RdeX2Px+1+OK0X/9DlMq0mm3qWdi3355PJ1iiNyATQGtB8sIKuNCwFKfzV616V OR6K4JUdDQbAjJWq5d9z3HxDpUe2LFrjQDYkE/F/ZgLJTliini4TRJLF+1G6hlNfZq4Ykg7bKg49 K0u3flBptpCwJIkSFFI+RC5M5py5yPzVlFh5n8xeX4n/AEVqUrCKN/R065JngJ4kgBX3Tf8AkYZn 6XtXPiIBPFHz/W2QzSj1fBNxqek6o80uq2hgvJpGeW7WpLOzEseXXqe+egjU6bMKnHhPeGPvTLy8 dR8qa3Z+ZPLl1HeyWrH1rSQ8RNC+zxMV2+Ifcd8nDRyxnjwyEh3LT7m8leedM8y20NzZyNFIFH1/ TJTSeB+pDr+0AejDY5mgce/LyLEi3rvl3zxrnlyzlstM1qWPS7xS19o0oWexmLghVltZg8Te9Rlc sI51ukSlHYMhfXPI+tSD9L+XZvKt1dD4dU8tENarT9p9MuX4gHr+5lQeC9sRkyQ68XvW4y5ivcvk 8hXl9FJceTtTsfO9mKcI9PYw34BAYBtPuPTnJp/vsOPfLo6yHKXpP2fNfCJ+nf7/AJMBv45bT63D cxyW1xao/wBbtplMcqMoNQ0bgMtKdCMywQdw1l+pkP8Azj35H89/lx+WdvraXtjqug+VNMsLXUbK URsqfV0kZXidWjYc2J3WvvnJZtTOOaXV3MYjhAfOnnP/AJw2846ass/lXUrLzVbb/wCiyj6ndU/1 XLRN/wAEPlmTi1gP1BqniPR8VeffyMj0y7ez82eT59B1NyeErwtayPx7xypRXHyJzYY81i4lolDv D531/wDKrUNGf63oV/LcegeaQS/BMpBqCkiUqfuOZMM/SWzXLH3PaPyn85atrel3drrPq/pTQ5Ut 5Lrf1JkcEpyp+0KEN49cyomw4shRZhrf5+3P5eX0C6FDqeq64g9Zf0ezwwwpyoS92vwhgRuNz45j anJjqpDiTCExuNnuH5O/85vfnt5j17TPLVl5D0zzx9fmSOLTzfvLqIj5UcrLbxP0BqTKvEd2A3zV ZNPGVyoj8d7n4sk+R3fY2pfnf+YWnTzr5lvfyw/LdIq+pYa15g+u30YP2BJDaNUEj/JpmvMD1lEf b+Pk5Yl5PPNV/PjyTrkMth5o/PDydqY/3ZbW/l6e7hG9aRTSIpNPEYJcBHqn8gF4u4MPuvOH5G6p YNp9x+b9vbW5kRxdwaDcNJHxdWYBpnPFWAIJHbKAMEJXxS+VBTMkUaXJov5J6g9vDo/55WkktzH6 lusunMy8T+2DG5NPfMocEuUmFN+Y/wAt9J0XTRrVp+aXlfVNOC/BH6kkd058EgVZSfmSMlwd0gpe QmZGrRqKRxoOw/WK5XaHx3/zljNNHL5FjjkYVh1AhFr+yYqGnc5n6QWJH3NOQ1IPlvQ/MyvbnTdW iW6srkhJ4HJ4/wCutejA9CMujcNwjaWxXeY/LMAgjngne70+IB4r+M8rqzH7AnQbtHUbN2zMhlEu XNolDhSvSPMl3LdHTdauBM8AJi1NKkkJQAuRSv68rzmtwyxmzRfUX5b6M2smLVNRgEthYEekzhXj nmUhkZKg/Cp3+eXaaPH6ixyyrYM6/MLzY3lvRHNofV1vVCbfR7dficuftS8d9kG/zpmVlnwjzccB if5Tfnr5OtZF/KXza48o67pzR21lrd7LTT9VeQ+qBdSP/vLccmoGPwMKbqc5zNfGXPwz9ID67nfT dV0//DXnPRI/MGiv/wAed3GHliRtyVr9tabrua9jjhzywm47g84nkf1FtljjPn83xh+b3/OF3lq+ tJvMv5ay3EloeTvp1oOP1ZxVkI5uT91CDmxx4cOpHFi9Muse79jinixHfl3sa/K785vOfkiS28l/ mpcXXm7y5bstrb6/IrpremKNlFzHISt3CoHiJQOhI+HMbJoyOXNvjlsbvt22ufLfmrQoUlaDzl5W vKjTtUtGDvCe7W0wHON1rvG1CO4zU6nRRyx4ZBskIyG+4fFv/OSf5cfmN5f0WXU/KUEvmL8tB/x2 dY08Fr61LVIi1C2QckjFN3UFT+1xzX6Ts2GCZJNy6X0caenMdxuHzf5E/MzXfLS6Fa2GqS32j2V0 zT6ZMxIMRX4vSAVm+Hqqg0r2zO8bJCW/INfW36DflF5ntfzCvbC00fzRZ6Zd3/xafbalcpaQTTNt 6fOWsaO3YMQD0rmXi1Yr1Xf45uVA8XJ9Pa/+Uf5o+VbL9L655Rmg060ZWmvrf0rpE4kkM3pM9FNd yRx8cuyEy2Bo9/7WyIrmHr35Z/mH+Sl69noP5k/l75a0W/nKR23miKwijsp5GooFygH7hz3b7H+r 0zFlOYNTJ99lnUTyfSnmb8rPJ+h+WL/Wfyw/KnyjqXmMIs+mw/VLeJZ0cgyPFMqEeoUJKNuOVK1y 2OWUiOI2PPf9LHhA5Dd+deueVUsrm4fXLDXtOvWd3mtPMenXj3R+I1YTRLNFLv3Q/wCxHTN3i1UC OQHupwMmGRPO/eg9N8vW1tcW2r2urzeUZoyVtNbtkvNPulJ+L/R2f6uGbao+KleuHJnx/wA21hin 30+8bD/nKf8AJfyb5a0Ky89fmtpj6/bWES6lKZlurh3RQvO4NqhiEr9WCEitaE9c1R0ebLIkR4XN 8WMRuWG6x/zn/wDkRY1GiDzB5tkVuJXS9OdgRStVaRlBG+H8jKO8pCPxDA6mDzDWP+c4vK3mWC6R PyA1nXRIrJCupRRxs6moHIvCaDYVAbK5HS4pCRzxEh5i/s3YSzgjk+atb/M/zJqmq3F9o/5UXmmW EskUsOiXOqWstrEVIZlHqxiYLUCi89u1Mge29NjlvqTId3Df2007HengHna58vTa1FrnnD/nH+d9 Q1aIWxvornWJba9+qn4aGyDxSsh69SMvl+W1YGYEkHqBQ+3q2QycOwCUW+jQy2840H/nFu4ltLtT QnQPMt2jFwQzMTbUY0O2/wAshHT6Y8rPybDknVUirLyJ5wNxb3mnf84oz29zbEmO7i8n6yHZSKUJ lVK/Tlgx6aIrhNMCZdAnC+QvzSg4Xv8A0LrqXlyKxJuZfMMfli4tDZqlWknM7v8ACtPtE7UyuI0m M8UI1LvtnGWSxf3Jddaz6NzILho1kLukaKpjYsSOcqoPiA38N65s8Q9I83cjPKUBQ4QPtSCG4dLl ptPuyx5tzQIyAKdv2jQHbucuONr0+pj4nHDme9Mry/uAYZUaS4mcr66wTqnBAK8yW2NDtTISiTzd nHVynR35/gsa1LV4NZsHuDCZryy1GayfU5HlaR40jV/RPxGMhWNQVWvic5T2qxYvDxTBvISQd+UQ Ntm3Sao5c+SP8MQAt0e9eGc2khDRXSn0YmNQsg3IWv8AOAfp+ecXKNh1/b2jEoeNEbjY+592/kV5 /fVLFfJ2rXJl1PS4i2ku5LNPaL1j325RfeV+Wek+yPbPj4/yuQ+uI9PnHu94+54+QHN9DfDUD4XR j1I6HwI3pnaoPJWj+rGVfUJWNa1p1JpsKhiACfbFHPcqHE0+z2r1Hj9n7H44psdz/9HlcuzyrQU9 RuLfTnk55usQ4JJYE1Cj7VNx44WK5aFm7jqd9x7H3xZLakmoND128B164q4OTuD3otRQVPyxpVwc 1PQb/wCYpgpVhLbKRQ9RQ12w0Fbr4kCg3J6b4qtLMVqaHgNhTbx7d8FMXzR+ZP5cXNleXPmLQrY3 Gl3TGbULKMVe3kO7MqDrG3Xb7PyzpOzu0YziMczUhyPf+372VvFYpJbdvUt5GjPihpm8hklA3E0m 2Rad5s1TT5orgSOJoaBLmBzFKN+xG2bLF2nMbTF/em3unlr8870GG31ZI9SjU/G+0FyOw6/A1M2W LWY8uwPz2SHvnl/8yPLmvelFb6glvdvEsf1K7HoyAhuXwlvhb6Dl8sYPJiQ9HtLwq3ql2haJGlt5 V2YcQQtCKEbHtlEsPexo9Gcr561S6tF0rzXDZ+dNLMTRmDWUMs4DgALDfIUuo/hO1JCP8nMcafh3 iTE+X6mzxT/Fu/Sr8s/+ci/IHmLRtFtNdv7Tydrc0Xp/o64Zks14OY0SK6kAU/Co+0Qc5nxIeLOF 7iVfJ2kCZwEu99IQyxXESTW8qTwyDlHNGwZWB7hhUHMrgNJSfX/LeheadPm0jzDpNtq+mzgiS1uo w4FdqqTup8CpBGRJMTsjm/LP/nIv8jk/LDUbfUtJL3nlLXpHj095qtLaTqORtpG/aBWpRupAIO4r mz0uqGUUeYcbJj4dxyfJltdaTo+m+bxa3lnpeuXELNHJcSpDykaFhAylyN9iK+ObbDKsZ33cLN9Q fmZdectXNy/PVriSCKdnhtJJWki5K1aNGTxIJ6+OUcVcmZB5MsuP+cgfzE/RcWg2XmZ/LmipvNp/ l+OPSROpYFxcvaCOSetNhI5UdhlWYiQN/aziSPckL/mjOJXksLG5kkYlvWnlWrE9yfiP35oxiI6u SZhen5secj9j0ol7LVmP37YDiieZYHK94/L27/MO+eHWNenFhpkin6vYFWE84cUDMGPwIQe+5zR9 o6rEInHDcnY939rVPMSKeuJJwZnjAjkoSWGzVO1QRvvXNHGUoGwSHHukfb6jqltIstvqV7A1aP6V zKuwp1HIj8MyI67PHlMsxkkOrMLLz55ui/drqrXRlqkazQxyuNtiCFVifnXMqHa+oG2xPuZDPIeb yH897jzM9v5OuvM7uwuPrkemi4VI2P8AdluSoARXalc6fsQ6nMJSy7Dav7GRMrBk+Y5uIbgBR2ap SnU+/wDXN8aiEsn0nUby3kjvI5azW6iKhNQ0fZHHcGvQ7HKDkVP47bR7+T67p/HSZCOWs6YVDqqC nKe0P2iAKloydu22W+Lxij0XlZD6Y0b8yfy50fSrOws9Wa1sbOJUQSW0gBHdiQCKsd8zo6nGAA4t EsD1jWv0rqV1r17PFbxToyaLZxsrzLBGaUKqSULnc8qVyGS5lkFnmj/nHTy5+Y/llPNHl65m03zd qiG5Y3rh7S54/AInUA+kSF2ZSRXrnEa3tOWDWThLeAPxDbHYPOvy9/Ov8w/yZ1OPyH+aWl6prPln SmEdsrktqukr0WSxnYkTwd/TYkU+wR0zZ480MseKBsFvhl6F+h3k/wA12Wq6bYebfJ2s2+q6TqDc U1S0P7qRwfihurc/FDKD1VgD4ZYCbsbEderfYI7whPPX5YeVfzYjuL6ztodM82yqBcCJI1dyrGks cjOOZpsR+GbjD2hHJ6M+x5CXf7+5xp4DHeHyfIMMn5h/kLr91ZtbvY297Ivr2dyrSWN/GtSpkjVw oah2dTyU9Dl2o0gI9Q9xWGTufU35d/mbpXnREOh3p0fXQh+veWppY3uiONJGhWoF1Camq05gdR3z TajSyh9XLv8AxyciGS+Tyz8yf+cU/KHny5n1zyDcW/kLztLKzyaWvwaNfuwNTClP9GlkJ2/Y8QMw cgkBuLH45sMmIS+nYvh3XNJ/Mj8r9VuNP1Ly3f6RqGmv6U0BjPokIxFSUBR+RFeSkg+OVjBXqJq+ vf8AFxqMTvsz/Tv+coPzR0eAxQeYtf0hpAifury5jVI2AHAKHAKn3HTISxSIIBFNvjS6Fk+n/wDO RrT3Nva6nLcfVpLhY9RmDeoqxEnk6jct8ssOWdC2QyjufXHkT/nLH8zPI/li/wBL8kebYLzRZYw+ jC5SO8SB6n4bcyEiNTX4lG22wBy7BiEiT9nRsllI5PnLzR/zmB/zkt5016XQtR87anI00ywQ6Rp8 5gSd2YiP0kt1A3J/lzIxZuDJETiPva5knkWH6re/m/pOr2mpfmB5Kn1zRpGeTUbC5vLv68kbb+vG ruFcVrUcaZvYaiNgRqmiWM1vze1+Tbv8u/M9oLny1aWcc8FPWtjCkd7buvTkrVbY991OZMoxyxMT yLjkEc3sOma1HbhbbUFSBdlh1GIBIzU0AlVdkPuPh+WcF2x7N5MV5MJM49Qd5D9Y+1tjO30B5G/J j8wfzC9O40bSDa6O5Fde1FmgtiDvWKoLy/7AEe+c9p9Dmz7xjt3nYOTGEi+h7b/nGz8tfI1hFqv5 qeew3EcpLWOVLG3c/wAiA8ppPktCc20OzMGm9WomD5ch/wAV8mfhAcymV5/zkR+Tvk62ttM8naBq eq21gvp2a2oNnbIFFBxaVg+/c8d+ubGXtNDFDw8UbiBsKAH2glp8HEDe9+94f52/5yR1bzLPNPb6 bqPl+F04ILXzJqNsqgClfTtWhSvjvmnn2xnzS9MR7qtuGY8gHz3dfnHZWF7BBq+o6v5gu72Tjb20 msatNM9TQhBFOWIHjT5nNvptfqYi8sMYj5jf72qQl1kQy384PPH5WP5Ul0vyHqV5Pr99C8WvPe6l qMhsUMf7wejLKY33qGDV27Z1uHFgzwEoYxEVdkcP2Fu0WnyyleSRroL+/wDU+Cr+7MF/Fdac1Z50 jtW1UsriMKKoIglCoau47ZYPqsOz1OSQHCeXSujLI7qwWOJNXlM0/Hm725URlj3HWtaCtTmQKA3a BmBIFJXNdSLFqJ017Zmij5PZsFSjMCyglu+3UdO+RnIRZHOYlk/nKOzt/Jfku1s1Um3PpyXSx+mk 03oqZmUUBI51q2eTdo3LPOUjZJPwHT+xy+w7OTIfIfe89tmH1u0AYGQTRgRnY1qOn8MwQDRdv2lK I08wT0L07RdavfL+safremu0N9pc6zQHsSu7Ix7hhVT88lpdTPTZY5YH1RNh8+5v0o0nV7XXNK03 WrPj9U1O3juYWSi7SKCVIG+xqDnuem1EdRijlhykAQ10mVTUosin+VFNdvHehGXsRut5L1969D9r pTpiyov/0uUTDlcPShJdxx/VTPKC6xZtTipIAO5psAOtMVaVlFKLv7bffirXwsGG3Sqj+BxVbuRt RKHehpWnTfFVrKSDVh8VAo7jucVXEUNAOW+2KtgEdSoB7HrixWbchxH2gfhFTviq6hpuOTj3xTbz fzN+V3lrzC8l1AjaPqMlC9zaBRGx61eI7EnuRQ5sdN2plxbH1Dz/AFrbw3Xvyo81aKZJ7e2Gs2aE kz2pJcKBWrRH4h9Fc3eDtTDl2vhPn+tkC82lTizRSRGORRR4nUhgR2IO+bAb7oRFvqV7a8RHKXjG 3pS/Eu3gDuMysWry4+R27iyt6b5W/N3zJobJDa3rCPZPqV23r25Hgof4l+g5mS7XMY/RZZPfNA/P nQrt47PX7WbS56c1u7blNAxHQkfbSn0jMnT9o4s0hGqJH4DHhZbefnv5LsNVbQn1FxZJHE8OuRqZ LKRpU5OpcV4sp2IIzlsmkyxz5cko7Gcq917fN2OLNEYxDk93/L788PNXlYW9/wCRfOc0NiWEgtLe cXFlID2e2ctHQ96AHMrGfgVvufavkP8A5zbZvq9n+YXltZgRSTW9FNHqO7WkpH08X+jLZAnp+hkJ BE/85KfnL+Xfnv8ALDTNP8r65b6rc6hq0M00LAxT2aWqM7GWGQB1LFwo2od/DJaQCGSyapjl3jQ6 vxT/AD0Mdj5h0K+5evb3luY5AATwMTn4uncNmzOQZI1DenCyxIp8RQafqWtXk1vpllPeu0rARwRs 5+1XenT6cxtRrBDrXvZCgHrHlL8gfP8A5ou4rW10yGzdhzklvJwgjSu7OFDmgr0pXNZHX48suGJ4 j+OqY+o0H0Gv/OJWn6FYC+8z+e44lVqehZWLMWan2YwzhmPhtmRLUYcMeLJ99M5Y63kUmm/JvQLR 2Gk6hcMIz8Nze28aHboQkbtQ/wCyzCl7SaeP04bccyj0VZfInmeH/eTzIs3Co/ePcRECleoL9crH tFpj9Wnj9n6mPEmflvQPNo1O1g1zzE2g6MSBc6sj/XlRQevpMA30nYdTl38odlagcMsIEj5V9qxo mjs+x4fy18senbgzX13yjWlwZwBLsCZPhAHxddtsxD2PpzKxYHdbl/l4sfbzt5W8sSTQeVvLwurq 3dopNRuDwHIHiTyPJ3FfAKMo/OaXSbY43Lv/AGsDkhD6Q+dPzp846rr6aENUERSKWdba3iQIkYPC vWpY+NTm07F7RnmOTiAramqWUyIt85XM8MkypI3F4ySrUp+PcZveISDcmFhcQtIbMuGndDLFTdeK nev39MHhbWCqLjAFygLLLUMOIpvUEUAwCFdUGJpFJePHJDHCjqQalTTivQVI3AFD4YK83GHN6vY6 HC3JrmR7l5VoI46olfdqVO3hTNgZG2XJ9V+TvTtPLOjW8e6wQcQqjf7RotN655r20b1uQ+f6GceT 9A4P+cLfy8/Mz8mIvL35n6Q1t5y1oHUrTzTacV1LRZXSkEUEpBqiLvJG1VYlqjoRsuzMXg47POW/ u7v1lyxhHDvzfip+a/5Jf85A/wDOCXnz9LwSjVPKOrymGz8ypC8+g63AWNLbUIDtDOVH2WIZTvG7 DNrGfQtdSxnyfRH5U/nf5V/N1Ft9FV9F84QwGTVfIc8oFzEw6y6ZOxH1qNQK0pzXowPXLPtDdGVv d7ibSPNVsNF882NtrmmNGY9P1Vox61tyPEsy0LKwpQkZnaXXT044T6od3d7v1NeTEJbjYvkj8zvy D1ryUy6x5RGoXunSOs9teWzl0UK1UZJlAcOCKip+nNxDw88OLHuO5x7lE1LZNfIH5+iVU0X8y2Au YAIbXzaIyC7KeIXUYgKkjvMvxD9pT1zWajREbw+TfGfe+ttP1uzvrWGz1Wxs/Nej38INsJ0huTJC d62sjBlmj36VrmuxznhNw+MTyLbKImKPzYr5g/5x8/LLzzYTLplvNotvqa8b2G2mBgrWoVreQOVK 06AimZuPQ6LWSBjHw8g7jXy73CyYjDzD4G/OT/nFPzd+VjXHmfywia/5TRH+s3MZIezB/YkR96Hx BIzG1/Zs9PC5nijfPkfK/wBbVGYOz5q0jVtT0y1v4YX4R38iTO6MR6ZQEAADZajr45rpzNcMTTkw 8070nXbvTL+HW9PuGk1CBkkSSpjmBU8o3WRPiXg24I3zGNnaW4bYmi+/fK//ADm9fa15b0zyj+dn k6D82/L9uFih8wXLG08waUhPEzQ3qr+/CVrxfizACrHLceonjBMav8V/YWccglsU78/fkl+Wfmm1 sfP35JfmLa6t9ekI06SyP1PX7aYAu0N7ph4vJQD7aDf9e203bECRGRon4f2fd5sJ4LFjcPIbf8xd Y8nsbH8y7DjaorLB5psIzLBLx2ImjUVDeO1fEZv4ZxJwZYyHtv5Zf8/BdS8lRQ+SPKusXOtaVqzC z0iPWICw0otT95ayO5YIFBpG4Kg/ZA6Zr+0dJxYycZ4Ze6/s73IwTnyLItD89+YPzf8AOqafFfS6 pql4sk+qa5dmW9eC2i3eRgNgq1A4igqQM5eHYEcpMpzlLvLlR05m9M1Dyh5Q8uTadH5s836/qNxq 9wbfTdM0GwUyTSLSq8UEjqpJA5VAqQOuZmLsXSR5i/e5H5WGMDiTPzF+Uf5cg2Uus6trfkoRQnUt S8vXur2Z1O409GIYJHJ6ogkboFdw56hMzsfZ8b/dwqPeGRxY62sPm/VPzF8o6Hq2qr+WPleDSYFB gFxq076hLLEaxxzuJKmKVxuQDxJ7ZvNN2LjI/fV3+5GPFQ/S8E8yeZ9T1Ca+l1OCzFlbwv8AWLoR mM2pdgRVFNDU7bfdmZrMlADYgfP9rdI1vVgMLB+vRQxC4CSQOf3zCnEH4n4nbdfE5q+HiOwcPnLc 0C9etdLtrjT7NI7yQWpUK18nB0mY0ryWtB8q5nxAAq2RyUOZ25K2j6a8/wCYXlzyVqFvpNzovnbV odPsNYuHFqLG2Skkt3O+wKwhC1Cd+ma7tTJOOGRBrbY1Za4k5D5or82vMelax5uvdO8u3rat5d8t 3E1jpurPH6BvCpAluBCGbijMKIK14ip60zzHU4RhlwXZ5k+Zd92Ng8OMpd5r5MP0uf0J2WWf07cg sxIFSw260rt1zCrZHbGiOYA44cU+/wAmXxyCWKOSN/Vidaxuo7HvkCN3jpxMJGJ2IfcH5B6o1/5C W1kVpG0W+mtbWRdmSOSkyj5AsaZ6t7G5zk0PCf4JEfpapPaQ70blWRurh9z7HvnVoKv9an61j+36 3ROvSvy9vwxpPA//0+U3HEXEh7l2IPzOeUF1iz9o1Y06gDI9GLieXwggECoJP6skyU6gfsj2xVs8 QadiaEdKg4q0QCadO3InxxtVwVSTQfCD37U9vHFVm9alSd/p67HEK3Xc0WqncDYfhiQq3j1HIKx2 oN+vjixaKcqgMQQNxv122xtk7cfMdATTffCVSLWfKmg+Yk46vpkNwxFFu0XhOtf5ZFowy7Dq8uE+ gn9HyV4n5h/JGUGSby5qiuKVFhfbNX+VZlFD/sgM3On7aHLJH4hQXj1z5J82W2ox6VJoN4L+ZuMK qnJHp3Eq1Wg6k1zbR1eGUeLiFMrZZL+WnmvQRBcRWrapM0Ja7WBqpAveNdwzH3ApmF/KGHNYvh3+ adkgu49a06Sez1HQpEEKI8phUytD6x2EjLUBzUfCd8zsWpkSJxyX5Hka8u5PEFXSTd2apq3lzULj S5TXnLZuYgaHq0dSpHzGXYc+MyMctg9COXu/UmM6ex6B+cnm/SuFvrunReYbaP4RcW1IbnbqeJ+B /opmRGUeEyjISA59CPgzGY+96i/54eR7ixjlfWJdNuIyVnsLmJ1nXYEfDQ1HuCcjl+RbRli8N8++ d7fztq+i2flNLrVZo0likQRMD8ZBDValFFNz2yeDVQ04Mpmg1ZZg8nvflrybql1bR2+laTHArIhu J0VYYDIFHJi9By38K5xgw5dTIyFkb7lhHHKfJn2gav5Y8h6g1tqXmW1uNS1q0meCO1/e26iyYmRD KuwetQAadM2mkxx0l8cgSe7o34wMfM81upfmH5D85aRGl9qc+iX9vwnSCaIu4km4qQAu0ijmORB2 +g5LVSxamHCTwkLOUZjc0ipvy08yhfUthbXkVf3dxE5VWBHYMN65rT2Rm5iiPe1HTSHJav5a+byS TYRLuKhpl+7bEdkag9B80fl5pnbeQtP05/X81eYLO3hXd9OjlCFv8guxB37gDMrF2OI75ZCvx1LO Onr6imWs/mZpdlbSWugRm+nRBDHOyGO2hVQAOPKhenQACnvmZqe1MeIVA8UvsDZPMI7Dd41cmGws bjzB5hu/0XocbF7vUJR8czsa+nAnWSRjWgA9853FinnnwwFkuKI3uXzD5487P5q1ATaVYNpeh6WS 9rbbzS8CwBluX33bbpQDpnYdm6QaMG/UTz/YghgP1qe9v47e1ja7uLx1jtoI1qzSMdgOn39s24lC 3IBvkzibTrny5fo2o2aCULwS5jYklO/E9Dv1GZEYituXcpCcXWiXsl9aXFna8PXZSiLWknMbFSac Tv0yEowETK+S8J5dWQWfk7VubfWrKG1CxEyymfkfh3+ypGYf53DyNktkdFk8h8WTeW4da81aha6U 1w8NvdyfvBbj00SJN5Ham5NB3PXNnOYgHDA4jT95fyO/Jf8ALvXvys/JvWrzQkGpeV7RHtLmM8Wu BBNIY47vY+soajfFvXvTOH12OOTUGUhvfz97tY440PJ9ig+OZEZ2zpj3mvyn5Z88eXtU8q+b9Ds/ MnlzWojb6po9/Es0E0Z7MrdwdwRuDuN8yY5GJFv5hf8AnMj/AJxjsPyL/ODWbT8qb29uPK+mLaan prrK76ho08oLmETLR3WIgFXryANGrSphDtDEMpxXv+Nve4eT93Kk9/KP/nK6C/e08s/nTeG01VzH b6b+ZcSUt56DiiavDH9kmv8AvQg/1x3zYxlfJnHJb7ksdWNg6WUgt9W06aL6xFZSOtxa3MT0KyWs q1RgRupUmuTx5JQlxwNH8c2wgEUXlH5kfkj5e/MLT7vzJ5CuFs9dtYGabQ5Y/ilZei8V4kEmu5r7 Zu8GthqPTL05O7pL3FxJ45YuW8XwdpX5rfnf+Q+tnTvMXl/695Web1dU8n3cZSIqpo0lrOtXtpB/ ONj+0CM1mpjk4v3keE+5nDJ3P0I/K/8AN7yv+ZOmjzF+XurvLc6dHXVtEugianp/LYi6twW9SLfa WOqHvxOYhj3uRGQKafmhpVx+YWgJZ/pT0LOGP17/AMsXkgTTb4p8ZkjmJHx9+Mnw+GYHaUtXniAM hodO8958/wAbNGTTg7x2L88dXi0/TtYl0meWCeLUeC2+lQwKscQLcme4pVuCr+PTNXCGQD1AxMed 8/g0xlW5U9a8mQ6jFDe6W66fPbqgu5QhCyQAmgaJRQO1ahew65Xh1ZhcZbg/f72cZeqnmWrad5j0 K7vNIEbXVpLH9dOqcXKxRODTm3Gimo+zXM7EcWUCfI8q80AAlF+WvOureTNYsfMOnXM+m3vludJ9 G1yyYw3Ns6qQxidW5I4r0GSOHj27+YZ8RjKwWWedfz41/wDM19em1bU0ubnXbdkvbloo4i8pUKJ3 jjVFrt8R41J3zPxZZ4JAD6R+OaJTsm2Kfl9+UWt675t8saVoGqr528wapIJtL0fRVklYOi8mjnj4 hoyAaHnQDNpk1wnwgGuL4172UODazw31PJ+hnnT8p/zy/wCccjpmrabr935JnlsAbjWNBila3KTc Xa2nuSgGzD40YkVza4Bjy4vQeR+PvboylLeI9IPN5Lf/AJ5fnB5j/Sej+efM9pLpOr29hb3+mw2g sbrUVspmurZzOEUhXYhmKNR6CoNBl2l0sDkskGtt/wAftcgylIjdF/4vfXbG3vb29mt7ueVhcLfu WkRUBVR6zVI26A/dm4jjjiGw+XJs8Ph5sXg0a7OsarrF1YXGlxxwGeDVRKvo3Vv+zGsiihoegI79 8hkmB6nIJBjxE0841rzpHGbuMcfrMrRStCtArKG3qCKfa3O3bNFll4krLgSyGUiRsCxq21TU45Gn hhhBlm5RcIhI7F+p+Dah6mowwsbtfLm9H0TzFc6aEhWSICfe6t2ASJwO6h9lPXemZBhszMJUCWGe dfMlp5g1n6tYO+mtpCpbyRy0aN/WNJyGB2alAp6fLOc7VzmMPI7IxgEgHayybQG0+2b9GafJLNBC pkV5G5ryJowDtud+tc4HU8cvXLq9NotRiMjix3QF3082THiroXHMIwYx9jv0NO3jmOJOdlx8cTGy L7uaOmu7tpQyyOshpwRPhBI+yqgfdgiLcT8lpdPi9URwx5k8/m+9/wDnG6GWHyZqUl4xKT6jWZ6V JEcSBgDvuTXPUvY/TyxaSUiK45WPdVfa8FqJCUzICgTy8nv68XJWJxL/ACEfDQeO5FfmM6xoKt6c fXk3j1Hyr9vp79PfBSbD/9Tk05BuZeHw8XYAeIr0+/PKS6xZXpUkk0BNKV9gMDFaaE8h9kGgpQU/ 28WTn4g0p1pQLvU7dfvxCuUhaBd+w+R8cSq5twK0+KhqO5xVsK3Q7cfsoTvv3wEsWmJqCG9uVKmv bphZNBgBUmjg70Hh29hTFip0DfCANjUdjT2xZLqLWlK16H8MSrQNDy+0RQEdzirYkrtQKK7KNyPb FW/gqSSCK1K+HsMWK1y7gbjiwp32+dMIZKbRg/FUEE1LDuRjasd1jy/p+r/V0vkeS3tn9V7NXMcU jilGlCir8e1TmRh1E8f08z17vcoLzXUPyktfUubix1W6jFykjz26cFZ+6orgAKK9yM2EO1DsJRGy beJa9ban5Rmh0579NR4UiupAjenbzCjGJZGpzZVpXNvhMNQDICr+3zTzZd5W8uW3nnU9K0qBmcal cxQc4oTczASGh9ONDyZh1oDmVHtY4vRqADHlZ2r4/pZQuUhHvffHkj8oPI/l26by3oGifpLVYOXr TySGe5uJU3kXiCQx2+wopsds5uXbWlzayUclDGK4Sb4eIc/gehL0k+w5RwRmBchzHl+vvecfmp5i 82ax5jufys8lwpBKLdrbzDNNGYjbPsTGx2MaopFaCpO2bLU6yAGx9A7uvu6OkzSkDwVTz+6/IW20 vTjPcy6p5s8xXCyPHHbypa2kTIOTcgaDiWNdzybNcO0ZE1ECI91lpjAdUb5Y/LHyfe6jp2nya7c6 fr8Fp6mp6LbuZ42evxM0shPFF+zQBan2ORyauZibF77HuScb2Yflz6Jpa63cW9OnHmlP+AcZjR1W WPKZ+bGpd7cn5fXExHreYbmRQOjmVx77NIcJ1mY85n5rUu9VT8vNK5IZ7q4uHFByAVT8q7nKZTMu ZteC0g82675C/LWya+vIorrUyCthpius11M49mJCKO7EfjmRpdHk1EqGw7zyT6Q+JPO3nTXvPepf pLWLgGKKqadp8NRb2yV+yi9z4sdznXaTS49PHhh8T1LWZWhPJWuf4X1dr+ezjv7O6ge01GycA+pD KRzADbEig65kmVJgQC9t8seU/IWl3F55402/rpksJFnHORwsC1fVBJ3BpsK7jMnHR3DfCIG7BPL+ nXX5n+ebnzFKJYvKGgH07KE1CzmtUQjoeR+N/DYZOEjI2mJ4i9q1yFNP0u8vYIlaezUSwKdviUj3 GCYsEdC2gkb9zG4/MPq6Rc3NzB9WESleMoZGeSQUH7uhKimwNM00sFTAG9ufDNcLIet6DeaZpIim s9Ehtri4hVDJE71C0BoA1QKnc5uzjs83VxAB5P2S/I/8wtA0H8oPyOsbu5VtQ87vJpmi2iuvN3SS eS4kP+TEiVY9iQO+cdq4TOrlXKPN2GPeIeyp+anllpJEKXfFGKrKIgysAaVFGrQ5KEz3N500gjn/ ADC8tzQSrBqL2tzJGwhklt5GCMRRWYAbgHtXLxP4Nfgyfn1+Yv8Azi5rvnnzFLr9n+bPl64lu4VS 9fUre6ikeXkzO3wBxQ8umaeXZspyJ4xfuLj6nSyyz4hts+OPzT/59k/mJqUN7rHkbzL5Lv8AVgjS PokWoPbJeGhPGL1UpHI3QVIU96dc3GhlnxjhyGJHfe4+dW4w02QPh7yf+ZP5vf8AONeq3Hk/z75P 1W68nW17La6p5N1iKW2ms5kcCZ9Lu2HFJBxrRWaJ+tN65uYSjMWCkEx2Ip+hvkb8wfLPnvSY/Ofk HXjqunWwEV2wRY9Q0+Qiog1G3+0hHTmao/7JxlE9fx7m0HuebeeV1O7uPMF756hsvMulXSRfV7Kx t0fUbZZah5rORlLlkNPhY8SDtvkYdpZ9NKpnxMZ5g8/gfJx54L3jsXyd5n8hN+X+u2/mjQ7vU/Ju o2MySWWsj/cbqEDv8SpNbtRTXuCOLe4zMhm0mp2xyo9x2Py/U1iRBrkX0d5Q/M3yp5/0638q/mm9 tpurNKn1bWAXtdM1JiKB5whItJWJ3Kn0z/k5I4cmE8Ud28TB2LI9Q/I+z1CQ+XtRsbbSPLdhJLPo Wpwu82rxTTLHxl9agEkLFa8GJWvxDKM/DmFy3kg4wdujDvPf5daz5HtLaa7lgk8nkqi+bbeX1LYs 25FwT8SStWgV6VPQ9M5DLpMmKRlXF3bfo6NE8csZtJrnRrm68oT+bJbL615fRzaXENC4tY5UIFxd rGTwVl+kbdzluPsjU+F40RYBo1zvmHDOoiJ8F9L8mCab5M8vX9xHqFzbS3iSwiK1sriLhBHGlApW PitWPU1rmLm1WSNxuje56uScho082uPyv0uHW1slt5JrNjJLdX9uGLULUKDiAopWlOmZse05mHF9 jMUY2i9G1e8/Kfz9Z+dLSyTS102aS28pWtk8fqC5MfFNQmPcR/a4sal6bbZnaLUY5De5GrPTfoEi QHMWm1t/zlb+eOkGXStG/OrzHPFbRAzaHq6Q39k8bEkgJcLIrA99hm0xThjxiUbEidwG3T5pYQeH a/tY3+YH57+bfzR/RsnnrQtB13UtOt4rS11HTkl0x/RQkIDHG3prTkRUAZs9PrTH92Kle/d9rf8A mZS2IBQnljzpothd21jc3XmGzs55QpKPBqaQSkU9Mc/SkINKHc5tcXaMY8uXvumwamWOqo+T3ibz Zo+s6DFofl38x9L0tLAvLe2ep+vp5lqNkKTKFop7AnfplmfURy7RkB32PwGOo1fHQEa73zHHqGpR 6/LAt3Zaqkchj+vwN8JjdlV6RSFi1FJNSBmGNt9pBqEu9m1nq1mogQ2zRzTFXmeIhmCn1Cx4qRSg VR06t7ZbHVGPTZt8XuFJ5BFPqTFbS39S6hRHRZ6qCsnD4QSB0L7198kdfDhN8w2eNA7087802Eug +Yo9IvbiO81aX0r2GO22asyBo4ixNGI61IpQ5yvaebxSSOX63HkJZSIxHX73pnk/RdT0xZLnVbiN 7qbnwtohVEDmvxOd2b5bZyGs1EMm0RsOr1HZ3Z35YWdyzyo5ogXnNIR6ECbtIRTZQPA9cwoxJc7N nx4YcUzQZfoehX9/qFrawQm51m6PG3t4wXW35bciV6kDqfuzo+w+wzqyMkwRi+2fkPJ43tDtKerP CNoDp3+9+lPkPyyPKPlfS9HhWs1rGJLp6lWeV93PGoqQTnqmHH4cQA6acuIsxBeR+L8w5qw5JWnE E7MAT2y0sQs9aHrW16+p269K/ZxY7v8A/9Xk0wP1mSo2LsF69j1PhnlBdYomlAKHkRSpPTFi5ggU bcSfD9fjje7JoUUABd2rVj19/bFWxT6K/EKd8VXFlrsaDovsf8ziq3xOxNN6GvTpjyVoAsATUcaE g9z4YquoKnka9gelARuBgLFZtXap471PgOp/DCyXGtSxNa7mv2vop44q1t8TMaEinXp88Nqu4sKU FAKCpFK/0wK2QoA9z8VPfwxYrRsSQTWlOJ/z3xVaxIoalRSgHavfFVAyb7Ekr1HUge5w0yefXvnq 3t9aj08xR/VI0aS/uVYyNGqVrsCFFKDauZkNITG+vRs8MVbBpb+282T67LxtfqzgXVpcX8Bngiji FDN6ZIHML4bHvmZGMtPw8+4gGj7mMRT2Xzb/AM5UeTY5IIPIX5baJ+WOhW9osMw8tQxfpCTk/pyL 9ZKxyKrKa8a+NSa5qdN7OajJL9/mlMk/xXXLnXK3q8Pa2LDEcGMAkeV3fKwFvk/8wNH1nSL/AMwX /mF/LVraB57C4u1CysFk4IvwE1k5AHip+WSl2CPzn5beXu91uz/lM/l/F6sj8sf85mfmrf8AlXzL o14dO8yaYNOkh1fU9Rs+d7aWsgeFyt4BzVjyXgXqVNN9sx8/spp8GcEcQPFtR2JG42++nR6rtMZQ TwjiodPnf6Ew8i+cdV1Lybq2uanbzaoi3Ui6X6HFppYZKBUoeC/uyaVO1My8uEwyCI273SR82Eza hbto0Nl5hWH8v76/jaCJbGBZby4ThJ6KyVrVpG+Ko5Up1GZAjUrj6q+TbT3fRbaTy15ait5fV1D9 GwlkkBaS4ugfiDNyqebk7itK5jyPFJqI3QHkzXte17U9Q0vWNMTTtQF0YdH0lfivJUqoBkVSy8vj AopwnHZAh6idvj3BZAAWjPzr8tfmV5Y0u90GyeDR9cmiRjLAwlLK61a2jm29OQgihI61G3XO7Pso NPhx5ZeqVeruvu+DjwzCZIDxnyF5/wDyJ03Q5P8AFvkaw8v+btM5RanaTWUt9Jdyxjd4nn9QqzEb qxFD3IzptBrdBDH64CMh5Xfu/a4uTHkvYvmPzPqvmH8z/Nmp6hYaUpuJopH03RLKNUjtLK3BKRIi BV2HU9WY5otRqDqcpmRXkOgcnHCtgxPSdIY2Et/f8hFKJA7moMXpGjV22YEdDmw0+kxywynPr9n7 VMqOy/y1D5u1qSHSfLwlZL2+himUAGNtyVMiGoKgbt7ZrceGVGUboNolvQfbem+W7PyzpttplhFF BBBUyJEvFWlbd3Aqacm3pmXEUHK5JD5mkeDSNQljUF4Y/UVT0PEg77jIzjxAhkJUb7nhNj5z01or v/EVjc313cMUtFRYvRVSfhDCqsabdK5rsuknY8MgDrztux6zGb4wS+nfJ2h3nnTW9B8raFIkup65 MsEcqMOMESrWaeQ9kjQFiT0+WbDUZRhgZy5BxscOI0+nfywvn/Nr84Lzz1olwtn+Uf5NWKeTvyis IH4JePAGW71DhXrO7NIT1IKDtnP6mHhYhA/XP1S8r6Ox0wMpmXQbB9l26TD/AHU3HbcA5gAOZKSa xM21ainUHJkqjY3ocsiWIRyyAUFAa9+uSDJ5d+Yv/ONPlb/nLHypr+g+bbq80i38uTel5C8x2hJe z1QIfrE/pMQk0e4jZG6itCDvl+A+o/j8bOHq4iQAPN+CX5t/kb+fP/OGH5kQyzSXOh3MjOugectN Dy6Prdsu7RsHXg4II9SCUcl7dmzPjlv0y/HuddvA7ve/yx/5yE8tfmLYXOjeZFg8o+cL1AmrabOx XTtQjUcpJbKVqekxC8RA3j8LHfIZuGMSSdqbIzD6cuNL8o+eNAtLXU0/TegT2pj0i/VAbm0XosRM gPqxjuhPyocws2khqAJR2PQhZwjPm+aNT/5xe1fTTrt1oWoRXHlqNEuNLndma2UksHjWoaSPYCqE HiehINc3HYc80zPFmr0gEHv8nFkJYzvuEl/L/wDNzzL+XDx+XPMUc2v+U4CyxaZI1Lqwqwq1jM4q F23jaqHtxObDUaMS3Gx+xtjkfUbedV1i2aw8uh57XWVT9I/XYaJ6EihhHd2sgYIyEgsTUDsTtmPh 00YHjzdPx+A1amUpxMcfVi3mfQNS0jS9PFnqHqD6yFu/LZtQ6XCyCpltylVNKfFyFSOmDNr54x/g sIgjffez9gsuul2bklAxlKxVUBTzxrWDULi4tI4m0PV7EyQcJkKQlyRXlG1Gj49j0+jfOVlpcXaB l4URjzczDpLvruPk5GHGYx4ZGywvSbTXLaaeDXATcRGRRLxCnaSpHADYb7Hvmk1ERjJjRBHMNsqq gwfzh+Wlr5jubeW3neyJmDalK8jy/uzUfuUOwavjtmTpO0PBG4vbb9qmZAAeb6j+QKy6gz2evGKw MR4yzoXuDIN+HFOIK+9fozPh22OH1R38uSidPNtUstX0aa2tNVtXt5PQUxLKoRmXmVLMnbYdDmfA QyAmBsN0Zg8wkGpXvAxGFiYCDzgQBEKeKkUrQ+OXYoHcFkTslFxrtzAvIBrpI+FImpVg37LEAVA7 1zNjkyEgk8uTPib4BxHMtuIpWVd7d3j4PXkzoQTQgbUIwfmTxEn7Nvc1GSPOpva8VW/lM8bRgyPL U+nGSTEaAHqQak5M6mUsfDvZSCSGXwedPMmoaZL5c0gQRX+otHbrqAI9X6sI+DxDkfiZyRuOgG2Q 8fw8dS6dfJnjq6ldPXvLnknS9Kuf0pcXVx5g1uONIJNTv3MksPpoECKG3XiBQE9BnJaztDLn9J9M e7v+L1+j02KMRKBvzel6fbTXRf6tHyU/C91JX0k8ad3I9vvzCx4JTkIgEk8gOZadb2vi09xHql3d 3vLPvLnl291K7jsdEtpL29mISfUGWtK9dwKKPYZ2fZnswBU9Tv3QHL/O73lNTqcmolxZD7h0D7i/ LL8qtP8AJ9rHf3Srea3cJWe5YGsZYUop2A9vDO5w4RGvu6BwpzPIPZwgoIlEasAKcqkgDbqA2ZIa vNGWzypOHS6NnVHVrq36sGHHiB8PXoa9sBShvXuv+Ww9KcvT/a8P4eOFFeT/AP/W5RPUyyUYj43q /wBPQZ5QebrFIcWB40L9OtPuxVa3ImhAooFNu/TFW1p9ltkH2T1JB8emLFYpXcmihq96k+1BiVXU BG61JA4L7eOJTSxSD9mgKmhI3A2+jFKoQxVQSfhO4psf1Yqu/wBVK7027Yqpio3Pc7Hxr1FMSqoe LfEvwsBUt88WK0bn4gFJ6Iffqdq4smw3xLVjxHZutaV2+WNMVOgADBQKEk098WTS8qEchU9AOgr9 2JYtM7GtDyHUFen4+OIVCzuQFKgEU+A1p07DJBk8T8836R6kNPt4YllvJYfrXP4i4ToAooBue53p mz0sfTZJboxuO7DNLXTtSu77R7a2uhZpJ6UjwxvIiRSgJwkc13J6ivyzNyxyRiMhr9rXwvTvKH5J QebPy4ujPpGpafFpOoPc6X5ggsYX9YRTBZo7p5JwUZohXmtQCAvA1qEarNHVRyQHFE0D6th8K6ft dtHJjlpuHlK+79L6S0T/AJx6/LPTrf6tNYXmtIU5H69du0Y5bhlij4Ip7/ZzpZagmfGAAe+t/m19 KvZhOl23lH8pvOmqeWtO0e+n0zX5RA2kWzxNLcx3SenJFzmR3LOrbEhkFN175xnbUMuoyylYBgbB 3269P7W7RaoYuPGQTxcgK/Sx6S8utDlNyomtnhk9O30uMfvOSMQsbx0ozClCCOIzDjvy+bp+R7ku h8zxTi8vfM+l2Wl+YLq89PStTmQSMi/HGz/B0bi2wQ0rmRw9ImxW7kiX3PbPImmalpem3gvNZfWk nZza6jyLLGIyyrHHHvRVG43Ncx8shI7ClkbOyUflDrT+U/zkudTeJrXWdTtBBot3rLC6v5ZPSbk8 KLVYeH2qtTjWlOmdp7KaaEtTjlkqt+Ed5/Z3lo1Z9FB9Q6gkWsJdpqq/X1vuX1ppTyZ2fq3I7g+B z1mUBIURs6kEjk+M/wA5vyXd/U1mwKi4rxg1E7LKoHwQ3R7NTZZPv9uN7W7JlhvJj+l2GLMMux5o j8ovIdt5c8qxalcRctb19RNfyt9qKNGIjgU/5PUkdTmtwQEY2OblQjQST8xfygi8yvLdaFeLo19f zRtrMRqLa5ANPWZR0kXqSPtDrvhmJCJETseYTLFaSfl3L5B/Lj69pnm3zBpuheb7FmtprCeZmCow DfWEk40InFGXuF2OZMcl4oxAodfMsYxEDvzehS+c/I+o1+pecNGuC3QLdxL0/wBcrkRFtEgkmqxQ 6zp17YWGpWwe8iaKO7hkjn4Fx14q++NAMjuKfJer+WPM9lczQRwvKtvIUDpGycwrfaHJab9viOSG OLi8BBfcKreeW/y+0vSPKFup/Nj/AJyQVvL3k1IBxk07yrE3o6lqDOKFPrTq0Kn+QSZqtTkGTL6v oxbnzn0Hw5uwxx9IA+qX3Ps/R/8AnHT8rLPy/wCWdEudCNzceWtMh06PVre5ns5ZuBLvI/1eRAS7 sxqd6UHbNMdXklKUr5l2YxRiAB0ZJafkd5YtCr6R5k846K4Hwra6/d8B8lkLjD48uoB+C8DII/yz 1+BQth+cHnK3K/ZWee2uwPn6kIJ+/HxQf4Qnh80xh8o/mdaEG2/N17xQKenqWiWstd+7JIp/DJcU f5v2rR70zj0783I5EV/NXlu9tiQJeWmzW8vE7MVKOwDDtiTGuRtQC+svy91HQLfTbDyppQmSfS7P 1ZhMgBkq9JZiQSCXkYk/PDA1QcXNEg2Wvzc/Kvyl+c/kDXvy986aZFqOj61CwjaRQZLW6UEwXUDH 7EkT0ZSPl0Jy6cTKNDb9B/HNx5RBG7+ULzp+VEmh6nq8dlHfJa2Gp3Nj9Wmhb1w1pKyFtvtqxQkU rQZgYO0eKoyonvHJwoAg0Xq35T/85E2nlfWLbRvzAurtvKdzb/V4NXs4RNLZOjlEaSL7UkY40bj8 QFKVAzY6fHLHy5NwyDq+/LHUWbTo7jQfMEZ0fzHEDYa7p8yy2d5CRusMwDAMQeJ/aQnffMgyuiCQ R1HNt5jyL571ryro7C6fTeeo3elzz3ct7rMitLbO0pqqOCBOFJqBx28M2GjGfDjquPiO36ST0cTI AJenk+UPPP5r/mR+X/m2O78swy6QLNWj0zUbussd/GxDTGeI0SX1G+0rV27DIZO0cWoMowoiJpEJ 0dn1X+S//OSvlH80TFoGvG18gef2KhNHmkI03VHFN9OuJD+7lJ/3RIf9RmzHIoWNw5MZ2zb81dQ1 q7n00DRxb3+jFH1LzxN+4FlbREtJFfltnjI2JYclJFOuV49Ni4xlG0x9Nc7/AB0KMseKtt+9isSW /mnSbPW9Ntp30+/SSPytrkkbRx3SxNR7cFt+JcH0ifYdOg7b7Px6wE4yPFjzHf5HzHRoyYydwwWE O4kklYmT1CkkYr+6MZoY/mp2b3zhJjhNdzjFCz3EaqSP3rghfQVqtzbotB44YxJUB5f+Ymk2OqaL Obh4Bq2nRfWo7oGgoXFIlA3fmdgPpzZ9n55Y5ir4Tt+1sjKnzQmketHYG5dowqsbq3IKsFDMdjXv 8s6CWfmB82Rk050XSiZQfUmKhKE8um+w98A48mx2CYwnPYC2MX2rTTSSNaJ6MTVC7b70BI+7LYYw Bvu5uPREfUkywOzFpDybvXxywyc2GMR5PSPy68nXvmPzDaMLI3Vhp8i3F8NlBVd1BJIoCwFTmJq8 pjDhj9UtgBuU/mMWKQMzt3dX2dbaEJ5v9N/0+5eipZQKfTNOgY9Xp77e2V9n+zOfJRyfu4/OR+HK P3uJq+1suaxH0RPQcz7y988kfk5r/mRkuNSibS9Ij4g/DSvbiBt09s7LQ9mYdKKwxrvPMn4ursB9 geVfI2l+VLaCHTIo09E1eYKoklrSpJ6j2G+beGLhLVKds79Lg7wuQQFIRufNST0IYHanyyxhdc1h EiIzV5pE3xTIO/YGm4+7FV7k1FFPLqrUqQffFapUpNw578OHPlz7c+H83821MbXd/9fk0/ISTnry kPL2FegGeUHm6pSahWta9asuLJwatK1YrsQOvzpixa/aNAVAPb37YsnBRUggUrVaAdCfwpixaHiK FtwD44smyTzqdqCr17U/DEK23TYV3+EfrOIYuqGHSlTWtdsVa5g1CsaA1LD9nwrgpWuR4/FUU2+d e+JVazAEdSd9++3bJc1Xh3Na167gf24KVoHlWlSNx8+/3YqpUavjTbwp9OLJRldVC1ZYw2wqwA8O 579MkN1Si41O35+hbuk90CAUBD8T4Gnfx7DvlscR5nYIp4Zqk1xL5k1sW91LqF0ZY0tn9RCsbItW VOo4r9GbWgMcLFCm6FVu9DdNS0D8stZ0prq3tNH1S8ty1qjxx3FxdxkNJNIqlmoimqs3FfCpzO08 Y5NLPJIWRIUykfSfeyj8rPMTWlpd2E9he6hHqFpdWPK0ggmVmnj+CizV9T4wpbkvwjdGDAZz2q00 p5ImHOxtZvn5fjvc/R6nFjwTxyG8uW1v1V/LL8hdM87+TdD8yXHme5tJby3UXdjFboxhnjHCRC7N VqEeGaXtb/ggZtHqZ4I4Y+iRFknfzp2p7PhCMbJPEAe7mHz7/wA5Rf8AOMVx+WFsfzm8kTTa8bWL 0PN8moOFNnBxVY7pFjQhohSkiEeBrSuVdm+02TtXMcGpiI8f0cI2l5bnn3NMsY0svGxAkgbi/t5d O5+cFzr2tQavf/W7qTXr/VX+sTcRLSNJPiVQ7gsqlR41O2dYMMBAUOEB0uT99PiPMp4E0+ZBqV8l vDqEW9vHdPwaNqEJxANI0FetKk9cq9X0xv4fjcsKI91PSfyjvdUa61WK71f6xp16XuLC4jJSCKMc WcRI9SDITXl27DK9QIxoAbhNggAIHVPNcX5efmRouqy6IdD8s3sv1fUfMEw+sX8yLOXlnSLeRVkr xYMN1FV6Z03szro6bIDI7Eiz/NDHNjM4bc32TZa9oupRxy6drNhfxTKGie3uYnDK24I4tXv889fj mhMXGQPxDpzEh5r+dvn1vJHki5jtLQ6lrnmFWsdItzEZo0BH724kABFIwdq/tEZre2NeNNhIFGUt h+tswYzI30D41/Lf81tU8ooNC14PeaI7gwPNy9WzJ60ruUPcdu2cJDIYG3ZwnXN9Mf4j0u7gR4tQ t+EqiSP4xQq24NenTNhGcT1cg8n5/wD573EE35j69KjLKGSzKMCGG1ug6jMrGfS4+Q+p4oWU7Mik jqaD7skxAWRTtC/ON2jC7koxWg+YxLY9r0Hy75yW0ttQNvetHexrc2areSKwhP2WCFgQD7jIccLr qnhJfd3/ADjJdeVvy91xvzF/OfU9Yt/MV9pEenfl9FexTX4t9JDMHnVizNGjtVYgBTjyI65pe0In MTDFVA7/ANZz9LUN5XZ5e596WX/OQP5I3PBYvPcEZbp69rdQ0+ZaKgzV/k8o6Ob40O9nWm/mh+V1 +Faz/MPy/Ly2Ae+ihP3TFKZHwMnWJZeJDvZlZeY/LV5QWfmPSruu49C9t5Nv9jIcfDI6FkCO9k8E RnXnDSVT0aOjjf3FRiyRIgYD41K7bkjwxVnP5RaU9wdX85XHLjq7fUdEQ9BZWzEFwOn72QFvkMni Fm/x5uJnlvT1DzLrlv5e0S+1S4dUMCMIA37UhB4j+PyyeqzeDiMuvIe8/i2nHHilT+cLXta0/W9e 1NLa/W7QajfS3N1ES3FvUkLDmBQdSCa+w3zkIYpYwSRuXUy5y/HV4f56/Ka28xxy6roirpOq/EyW bLwhmQdCQB8Dt1+nfNrou1DiPBPcd/d+xRJgH5ceefM/5N2PmqK912a0025SS2P5fvSRprugIuQr 1EBA6SJTlXuM6zTzxzAnzHRujM1QfZvkDX/J/wCaOj+WLryYdRktazS+ZrO7gpe2k9txeeF3T4JE HVXX9k771zYwy5I4pyl12DIxBIAeuedfInlL8z9PubXzFbxWmp3CE2+rrGPQmoAqi5RKcTttIlD4 1zmc+gPF4mM8Mvxz72zJiE9+Rfmn+bn/ADj15o/L69mIs5rvTx++jZP3kiJ1WSN02lTuGXcftAZL T6/1cGUcMvsPucYkxNSY2fzs856noVn5P876/f6zoNgv+iajUyXyogAjiuJDvcQx02VyWHvtm80m WGOVkNkpEirfoX5B0DzJ5t8u+Xtd1LzvYXHk24ggNhoPlFgmm3LQKKR3c28kcq0HKNeJBrlWSeOM ycY9X84/qbo2Rvy7mZ+evy/fVbKbzD5Lt2u9UtYaap5XJrczuvSW3OyyGmzb1NK9a5zXaehlkyeI BuefcfP3+TVmwXvF8CecNftLK/a6upprPVo1eLVdPkdkWGRfgIERoyuKV33GVabBMjgrb3OKASwn 9N6p5qn0ux022mvFUt6ErERRIYx8RdzuaClT8hmV4UNODKRr7XO0/Z2bKaAq+9gHm231/Q9T/R+p SRwyTwi44W7cwEkJ+EtQbinbM3S5MeWHFEbct3OPZwwmp7liPpmQ/ECznqf9vMqyG4AAdzLND8ke YvMDIum6XLJE3/Hwy8IwK93ai5Zjw5Mp9Iv7nHyauENuZ8nufln8h945tbvjKxofqtqooD4GRx+o ZtMPZJO+Q/L9bgZNXOWw2D6l8nflTa2lg0thbRadYuaERAmWcqOrM25+k0zN/c6baI3/AB1ccRvd 9OflZ5L0SUfWU0+G6ES1PMFpHBFWJqtAVP8AKfnmXgPi7kLl9JfScEMMNvFFABbxxCkSKBRV8KED M4CuTi3fNEemxRPjBcfC1AKdRShBFPfwwryXNz+JPQKkdASFND4E9fvxVdE7KRWb4jtxQbge5PXC pWlwQqM7ALWgjSu3erEYFdSHxk+x7/f0/wA/HG02X//Q5HOR68zU4ku1d69SRtnlJdY1VB/kmtaU pX5YFdUhSaH4+h8D3GLFonbiAu1CpPQf1xZLVUkbderNv1+nG1XVG/Wp36dB/DFVo418K7Dc/f8A dixXbgD4uNK7UwUq0r4VIA2HhXvX5Y2rS/DTkKeI7n+GEq6nKik7CvI70+mntirYqxAApQ05U+nH kq0DiGqabgrU7b7YqsJIoABWpqRSg2wslzivwBTSlAfEd6/TiCrFvNOk3Otac9jDdLZhm/fzmlOI /wAkjc/SMydLlGOfERase0rTLXyxo1va3E0d5qdvbMss3M8SKsKhRuKjbufDL8uWWfISBQJUPEND 1CyTU4lhslMeoXsiWljbcmZWKkVflvT5nNnnhIg8R5DmW8R2sPYfzDbQG8teWbG0tFXX1vLuXzJf LXmyMI0tYWqSPhCMdtt8v0/iR0IN+mUjQ9zCRBArmh4POy+X/wAqfNselTzaFqss9sNF8x2lRMiG ROcbtuyE0JFNiDQ5PsmWMZ+Gf1H8fYzxzqJHV+w//ODfnK9178uDpV3fEvYabp9/FdT0d5PVhKTz SEkD4pE5Z4x7Y6Tw9ZKY3uUvsOz25IlgxEi6AH2f2vpLT/zG0HzD5ivfy7dU1tZ4ZYp9U9H6xYzB UUTxyIqFACWIoWp4nNdg008eMZCeE3tfMd1db7uTPJpTCPiURXMcj835L/8AOUf/ADjZ5o/I7X7v znpN3P5l/LDVi07Gzs63WkTcgZFuo4gFENWURydFGzAfaPpnZ3auPtCoSoZvkJdNvPvHV5XV6OQJ yQHpv5fsfHOsadpD6Tc6zJazyLJGUkoZJPXY14qWPEkcmqSKD59c22GU4zEQRduAZbbobRfMd7oe nxaoLaRLifnHZW8LALbcAY3B6/EADvXYkUw5sHFMi/j3squqY95h1mLzQwudSuZrjUxEsVt1Z0gj FRIzk/EeoOW4IyxchtbccVbX0eYzSBXl+qSEMrUofgfkNzQbHNyM0q3Dh1ujF1vUIolcajeMFWq0 uJKD2ALbVIy8ai+fRjR6KsPmnUmEQfVLlJJFNInkL149R8Va5ZEgsrkOqu3m7X4gEj1R1A2CsqEV 9hQAZYZcIssozkdgXnGv3t/rN7Pe3lPrknFOblV5hfhBoNhSlMnj1hgK6dGzw+LcsdaJqgE7A70F R78fGmZA13p5brwb+SP0sK88cEgX0vVjaRZj8LVYAKf475TqMokeMHcJgK2fSGga/qlhqln5jkst OFzaXNvMdPuHlNgYVb4kFsDxdSBVgXA9s008hBMhIgnubwK3e7+afO2u/mF58uvOmtxWVzpOqQ+s 1gkiWaIlsiwQxW5QN6cEaD4Y6DLcOc44it4/iyyJJNttd+SLw3tlp8VxLqUcS+ilrKJGDSCisoJA YKetaDLR2gJDYI5vK7zVJtOtLmz1G4uW1mQSFPqscUkMXxUQP3A47mhrXpmOdbPh5m/gk7Ml0TU4 Vs9RiNzNNLpqKNPuJrb0BeSELWFUJZ1K7/Eeu2XYtdQo7lBepeR9YOoWEN2usX2g3TlnbTi11B6a hioBZWCsdt+OZEc8ZjegWQlXR9K/l1ceZNa8zaDoln+YdxZWt9eRLqUtzqkkUKWwYGYuZn404V27 9MqywHCTs3Qy79X7R6Nd+XbawsdO0jUrF7OygjgtI4biNwI41Cr9ljXYZHHGNDcUwkSS+Cf+czvz Z1Dy0bxdNinvNN8qaekLQWnxtcaprB4qgAND6NvGzHwDHNN2pIzyiAIEYjn04j+KWc/Dxk9S/IjS NI1YTTXcT2Ol2V4q3RhhiaQySMTvIr8aFa19z1zU5MsKo2SNt3U3bM3QuDvyYjiSOtadSPHMQbML fKvnbyppMXn+2svMGptFpmsWTyyao/GP0pFV1TtxorKBQ9c6fRamR0xOOO8TyZgsQvfNPmnyn5N8 qweTZNQ8tR6JrNxqOnedrORoTeTqzBX4gfCp5bo9VYeOdBj10ZQGKvUNyLvm3Ql6rfVPkr/nLc6v Zx6J+Yegw6N+YVIxY30Si30zWWkA4tKBtayvsfhBRug4nJYoxyH0nb7nIGTZ9A2Plrzr5kvvrHni RrSztVIHlIOpmto3YM4sqkpEDTdiXdv8nBqsODLDg4Qb/F/2UpjxfU+Y/wA0/wDnEvUrOC68weTr +PVtARJZ7+/vHP15J3fl6d1Ai8IkFaCRag9wM1U9RLTfUCY30HIfpajhlE+nd8ueUfP/AOYf5A+Z WvNBnks1uwv6Y8s3yerpepwjtLGDxO3SRCHXse2bDBqIZo3Eghyhps0DUhw+9+mf5O/n/wCQvzog gh0Yny953to1a98h3kv+kqy7vNps+wuo6jptIvcEb5ZONDfkiqZr5/8Ayw/Lz8zLqLWPMulQQebL eMx6Z5+ghUuJEFFi1K3FFlAGwJHIeOYOp00pwIjIj3OTp8/hS4jEF8Z+aPy0X8v/ADfPFrAOoazJ F6tubeb17dreQ/C0XDiqiorR6GvXxzUR0WtzAY4QuPeOvxLuPzmlh6zLfu6/J53rP5dar531uPUd Tmi0myt4hb2tnbD1rhowa1kfZAxJ7VpnTdmdgTwQ4Zy57l0+s7U8WVxjXveqeV/yP0+xCXEHl+a9 mjUt9buY2uD7kKBxH3Z0GHszHDpZ83UZNSZ/UbeoDy7b6fbI4bk6sENu0fDgD4IadPlmWYiAYjfZ PNLsPrE4teKP64CxkEgqRuSKCvTfpmPOZplGF8ntSItvbRRR0K20fGEqN+I6lgfE5gygTzcng6M9 /LZk0+c2RrPa6izzfpAOQIrpQKx8VI4kjYHufHNjpPTt3/e4ueN8nuChdwyuGp8UnI8uncMD9+bF xV4Yno68RsKITUdwxXFNtxln5GKrFVqYUPEkV248iK/IY2hUCckDhoI2FRwkBWRT4jenXFFqQrWp lDmpPNeQr41DAjCkt0f/AH5L1/kXp9/9mBFv/9Hk06r68ppUhm40+Zzyg83VlT4gKxIqRSvIbbbd MbS2F3A4gSUr1rSu+C2LiDvx6Hoa/fhVaOVK+H2gfv8Apwc0hs8mNPsrUVPWgHbClqpVvhAB/aNK 1HbFWwBVTIdzvy8PnjfcxWcSCDXZupB39h9OLJdRa1atK/aHUbbfLFV5LFaA1DdARiilhNaDkCAa V6EAe4xQ06gANT4a0oNjXEFktahoCtKDka+B7V/hiCxWVoK9fh3qfHxI8MWST61a3l3p11a2ZUT3 KiMysQVTltyJI+nYVy7DKMZAnkEB45Bb2flSz1fTr/Vy3mOs9zp7RRvMBE9KS8SBXj86Zt5SlnlG UY+nYHpul57o31uPUdLFsqX6yzmaNKhJWdzUvKse/HuRucyM/DISvavxs5ca4d3rWveXPzJ17RdB trTRH1x2gvdSs7i0iS3jOnwyyG5kMrhWf0CCG5ElagU3GX4ccDgj6qr+E+fUInjJqh0VYfyf/MDz d+SnmfzhomjRS6NYyJe3B9aNHjW2ZWbnG5DAlTypTplejwzOqgYi+lsBilXFT9Hv+cSdcOg+ZdC0 9rI3v+IvKS2y6ahQCeX0EuFiHMhPiMZFTtTPN/a3D4kshJrhyHfu3p7vBEHBEXW0Tfd+A++9ZtH1 DQ9ZsfLV0sek6lJPY6jPbQfWJrad5I7d7a1ijRU4KQ7SEnY1O++cPjFTBmLI79geu559zZilUgcn MCxv9p8+5jGh6hrXklv8H6jBP5w8t3NxNFr3nbUk5RBrt/TS1MdX+sV5cNjStVIGbSGbiPFGoSPK I8uvSvmnLghqI8XI1YG3L8eT5N/Of/nCDRtettVsfyl87NbeYxFJcy+Srxol9QcqlYLhQogUlgqq 44/5YAzpuzPaPwpDx43vV7/b+t5vV9lmQOSA4QTfk/NuT8svNvkWWXyZ+YXlC48v6xBHLEdHvSyv 6TO379JEqkqOCCJEcjsM7LUamMpccJXyNukyxlCgUJceVdLvEjiht0toYlCXN1bfAZFROKxoRU0X v/HK/wAzMHc2T0buIiY/qh8pebNNbS/M+q2U3KRbS44qzn4mjIDLvt2Izp9LPjwxI6hx5Gzahznu rWNI5UgWWp4laBFBKhQ3Wm2JiIGzuzMeICgg1uER/SljV2t2KRKN3YruRy8MJieY6shEUpahefBH DMG9e4cAlvtAAgUNAMvxi40gipoOAiYNIyo8UJPFH3OxoOuQkKbIoqPi04aKIM8gZFQGpUDcjptT IE7bprdVtbdmvQ0FsI5SR6hcBo2XqR8XiOuS4gB6js18jsze01XUJIG+rzpHYWTqq2amsdE+w/Fq 8gp2p0zHyRiCCeZbeI2m8vmO9ktBpl5G7yS/HcXZcpKjMRvH0Cheu33ZGOOEeR2R4lJtp35hfoL0 I7XSvrIui4vb6Tgs4MahVJYdRX6TjHBuR+N2QmALUn82pD69xplvIb28b1pY7heVsiVKMsahmO9S fnkDp65/FIkEV5c88W2malBfMTHphB9dUZ2nmlckAqZNx2qBtTvlccRgfNbp6T5R/MG2iv3sdV1y KeKZqW0skgRYYRViWJHFiOhOxPbLI8cZUeS8Qe4WfmfyzdKvo6/ptwOw9WI7/Imv4ZfZHNHEyu21 O3Va289saCqvC/E+26MMiZBeJPfzH89jV/LnknyZbSA2/l+CXUdXn5F2uL26oqhmJqfSiUAV7sc5 jXZOLKR3Fo1WS6j3B4Xd61ZQJeSyTq72ABukWjMhcVVSB3YdBmPHETXm4nNjd3530+3tbK6RZbiT UUElvAylKLyAbmdwpWpNMvjpZEkdySHlH5mS2nmHUdOtrZBJLpscqu4AJf1QHIoTvXt75tOzjLFE 9AUx3Yfc+e9Ih0vT9GKRSaRpsMUT2CoZSzryVi5IpUk7DscyBopmZndSJ5t0MGSfIFiGu+VPM3mC wk1Wx8tyCySAraQXUim4eItyDRL9o160oNsycOrw4ZcJnve9cvi7TF2Tm4eIvSvyQ/5yt8yflutr 5P8AzEs7nzf5EtZPStZCaaxonRSbWV95YlHWCQ0/lKnN1UZcms4jF+oXlrzJo3mDRdP84eSPMFtr eg6igFprViwZCT1t7qJt4pF6NFIBkZQEtpBgCQdnlP5pfkZ5Q/Mexun0uxt9O8wTVmby87CKzupH NK2U7UFtKSfsn4D7Zpsuglin4mA8J69x94dph14nHgzCx39X5wXP5KahoGvTQzyaxpWr6Pd1hs44 mtr21ljNUZp6gKwI2ZNj2OdPptHIxEpSBv8Am7h1ubPCyIjbzfb3lT84vO7eWpdGvLKDVfNVvAlv pnm+5lUzPtx/0+ALxncfsuOJr9quXHRYxIWaHc43HIg0Hj2o6P590S5l1DXNB1WWS/c3FxPcwSuk zMatIHCkV+XTpTNhEwG0SBTjknmXuP5V+cvI9zObPzTDDpV2OK2ElxCEirX/AHazfZPgSOPvmbp8 kCalsfscfLGdbPprUbW3S3a202e2VjH60USF4WeIfEPTeIkHr2GZ0wAKDRC7svMPMMayraPGUEvJ YLiBm4yFVqxEhYfGQ2wf8Mwsu4+xz8Aq0P5Z0xpbmXUQgQIzJbID8YJG7HetAMwMoPIObigSzxuK KjMqlxWqlqrt1P0ZVRHJsMWeeRGjsLi+hvZIYJ51iktILhWo6EVJDKCAOJ7jvXMvTbc6cPUQvk9m gMTKZYnqsj8vQD8/TJHTapoaVoRmeC4JRAJHVhTfjJECpI9wRXFC41fiHj+sg9DIvFhv41FPoxWn FiZE5xxRcQqOiUVyBsKgVBPvivVzEHgtZA/Gm6EA7neg2J7YrbfFevqP9mn2W+VP7MCaf//S5ROE 9aWoB+NmFOtK55QbdYs4ry+KtRTbqPn8sVa6KaqOJ38TWuDqrRGxJqG/a4moG2++Fi5qitDxr0HU f2YAyaFAAD8QY167f5nE82LRX4gaFuVaLUilN/xwhk2QOLEbD6K0+jFWwRQdASKg9TX5VxKqQLUo rhgOtdydq/LFWwWY1BFT+z4GnTGqYtAsAAzKBSrCpqfb3xZNJyPUg17DsP8AbxYtEqQoNaLsgP37 4aZLaFq1ICA1Le9a0AwKluozwxQhLi5WzSY+jFJJQqWcdBUgfftlkIknYWryO+0rSvKOl61r+m2k 2uXF2xSLUOAkMAIK/uq1ARdyWIp2GbaGWeonGEiIgdO9PNg+hQ3F3d6Vb2tuLj6pDW9Z0UggnnTk pUnLM5EeInazs5QIEGc/m75j8xzNoHluG+uoND0vT4o0hMnCL/SAtxLJEQFPHmdyWNT7ZlY8YhCF jerY5Zch3BAeXNQvrzRdV0KK4ufR1hblL2NndBGvolauF+EmpH2swc1wmJ3yr47tNkP08/5wy8tX tvr35QNrE31nVdO8qtJOqj93EqW7RxKvUluLgsxO/sM4L2hzjLPNGI24/id93vhAx0kSefCH6eyw xtqlw+mzSW99YrbjUUeKVoWtnLyGOFSUiMjkbsKkbV7ZygwHh35OKJ+kCQsG69/Kz1oJRaSIktdK aK2ltUtv075YkkQpp8UgkndhFbq37+Qt1JIbMfURA+r4Hv6fJukL+rfnUh/EeXXoGK6NpOn+XrW7 1ryno0cY1WOJms7iMW93YLJ6s0lzdPMzysKnkIyKgbDvhlmnKQjM3XXmCe4dPi5E5nIRCZrz5iXk HgPmn8vZL3ykPMH5jy6N+Zen6xIp02TUoLiG00uzdGm+GS3RJow0g3IYbkCmbnB2kY5RDCJQ4R0N 8R+5tyafFqZSxSjy35D7Hlep/wDOGnlX8wfL0PmP8mPMF/5diQSRjy/r1vKLOVlXb0JCDOkdacSx kB8ds3Wl7ezQyGGeHGRVmO5HwAr7nmNZ2UMc7B4T3PzC/wCcnv8AnHD83vy1vrbzH5j8i6hFoi2q 22qeZrFPrumpJDsjvPCD6YZe8gXO+7A7Uw6iBhGW97A7GnUZdNkx8x8XyDBIPV04byRxsS8f7J5E kex2zoSLDCEtxSCuZlRhJCoRmmYsEBDUNNx4A4RHainiAQl5KzXzNIzNBEQ6ilTWm4r13OShHhGz OcvUnGni1EyO8XwCNnWNPtH4QeRG/jmPkEqpmPJMbaIc/rDzLJCpEbIjhZk5pUEmgI2+g5CfKup+ S3uyTSdNu5YJbiKymuLS5le0hSKjFpmUBFdBU7hh4V7ZVmB2JO/P4IsXT0E/lL5v0w2ti0+mvcT2 /wBYns4JSUgQkLWV6FRQtvvt8yMxvzeKY4t9jX9ik01qH5V+fdPsodXubO3FqgEUtw11FzA5enwV HozEnoOuSx6vBMnGD9hYfxMW1jyR5q0uNrjUNCktoI+XK5R43jYKftAhzUDpUZmYdRiO0ZWxJKQS QTNDaILK79NY2EjCCQoxLsw+IKQeo+nLvEh3j5oEqQUl8qSOy2kimFTH6LJQhlUfs02riIiveyMu qvFFd3E5teEVrM6LKXasgoS1Bt1rt8srOWMY3za5SsIeDTNTeQx30U1nLUhLb0zG5FNnBpWnh44J 6iNemiwtEaTBBZ3dL/VGRH5ozRuwcAV2IrtXapOVZZymNgjnsHp95+YgaytrGCVTb2QjnlCqaxxQ 8XQyuNgNu9KnNZDQkyMjzP2+5ujpcs+QUX1rU9SksrrRfLd9OusvI93LKTDFKB0eVj0ALCgHWlBh 8PHCxOY9Pzc7F2PmnXmrXvlTzLfa5AZdRjg0aCCIFkqSZQtGEMZ6UoN2+7IR1uKGM1G5Wfwf2O0x 9gxEqJsMg0zyDotjefpe5lutSvgVYXF64ZBIDy9T0wAoJ99hmLl7RyTHANh5O0wdnYcJsBMbLQdB 0+7uLqysxcPfTm6kjRfUj9Qd1RBwHXv9GZOPT63VREYwkQBV1+krLNp8JuUh+PJkEhu5efGzENfs Fm+I/wCxStM2Wn9ktTLfJIR+1wsvbuGP0Ay+x59rf5Y6X5jvhqup6ZGbhBWaRGMAdR3kAPJqU67H Op0XY0NNHhMjL38nSantE55XwgMv/LvVJfys1dD5JvbXS49Ramq6THGZbK+QfsXasSGr2P2h2YZm 5MOIxqvlzcUSkTb7y8u6pb+a9LjutIgmjZiH1Xyrc8leGRti9nM4DSgdh1HvmpniMNzy7/1ttqHm fypoHnnT10zzNJdzC3Vk0zzHApXULHY0Q1NJUU9Ub6KHIY8k8P0cu7okgS5vjbzV+XPnz8ob8ai8 cep6NfVTTvNFshnsrhSR8ElQfSfxR+/SubXTamOYbc+oPMNU4kPX/JH54X1lFFpOr2c0thcukdzN qNwZ4OVKLR4xzRgK8WAr2JI2zNzYceoFSFHpL9HucaJljNjfyfQRt9J1W1TUrazg1iynjLJ+7jku rdKbl1cHmlPtUHzAzSajTZdOalyPXoXKx5Yz5MiE1jqtvYwal6No0SEWGuWyj6tJSiqkka7xlaUq tMnpO0sum2Prh3dR7mOXTxny2LAvNXl7VdPNwstuWe4YNGrMrxzFn/dyQOTuDXcVqDnQY9Rj1EOP GbH3NUImEhGTen6U1jFDaUWJkXlcMFPJ2bdiepFD7ZhSNkuzA9O3JMvRhlIMvwQ1NDwqSPGpNCDj EdVESD3s68t3YiSqXEnGynUuWRXiSHj+2tK15bDcCnyzKxS+xwM8N+XN6paQLHNJdJOsn1yOMeot QWpWjHqOh6g75mxG9uDInkjgaFVVxUmlFBAJ+Y3rkmPNxKgFSVctv8QJB+VRWoxWl5dwpIICqfsB q02oaEbjFiQuUzcFILNE1QCDyqwFSqmhFQN6YLZUqfuafbk5+jy/um/v69OvTj36+2O60//T5PKD 60/wmoduDe1ffptnlBdYphuIoKAr2b8TWmKrmorha1XiPiPgPxFR0wBXdiDsCNge/c42xUyVDGoo WFakdO5FMIZO+yW40of2a7/rwFi2QRU0PIVqRvt4b4QqnU/DV6EDYeP098VWkqoI5fZNSynx/HFV 4Kig4kEdKU7f2Y0qwMOxof2SNvvxpW0LHciu9D4exOFW+gBII2oQO/8An44GSxgxYUoGBrxNOpwq 23EgggDxI8flgYvPvPtgtxp011dX18tnAgVdKs2jj9RyftMz9vEVzYaGZE6AF95SHkt/5p1Kfypd Rw/V0dWjS3hMw4iNHoaA/bkJoCengKZtI6WIyjn57fjZnHYteQ0hh1C+tUSaSK8i9ae5aqDkyikQ G9eLMR+O2UayRMQe5yMg9L6d/NTy35N82/mRqnlo+a7PyFYeRtKs59W8walCJI7y5itoedrbR/CC ymgWtO5JObL8zhlijGd8URQrr+llMAyq62Q35TflFD5m8r+Zbqz846TpepaZErXmhXhf1XRlZUaK QGkjNToBsT1zTZB4lzsDgBPvA3XBpjmmIg7kgfa/S7/nGOxgg/MW7TZYfL/ltYVoP7veKJVNK7kE kDvnmuXLEwE8hoEk2fO30DtMcOPgj5D5PtfzJcRRabPrDae19LoUU19p1mpIlknjibiqUrRnqVGx O+aDLrPFyCEfTEmr6/sdTp4ni4QeexfM35G/mF5h/M+x813epGGLzToOpSXmjx2/KCy43kDxQx3I joZ47fcDkeR67kAjZdp6LFpsQMQa5HfevK+tux1GOOMj+aRR6nbfbzK780/zfbyLcTaJp1hLB56S a1udWv4oY47K/C2wHqSMxeUxctgmx+GnLjua+zOyzqfXI/u9wN9xv8rRHCDEEmwQaHduy78v9atP P/lFvNGnJFe6q7sfzA8rTqLl7+a3t/SSK3SZxHCkho4IFOx7nMrWdkeFEygdofAxBP1WB6h39Qwl mMZCMtgdokbcPffezmw1g2T6hqejTtdw2MvDzL5bBM09g1vaKY9P06CBRGWLsOW5U77+Gqw5JYJg g8Muh77P8Xk0zwmQAkOfI9D5kn7HQ/oXSTrGrxWGt+Z9Q1QQ2+r+XbiUX31QXI9aSAQDmISVk+JW AVqCrU3zaw12EcJIMZi/KN/zoy5/A/a1nFLIKMoiPyutvi/F/wD5yT/5xEj03Xbz8wtO8uP5C0Dz XqEt7b2dgvrW+nyTuzJbXlsQgt3b7ShDwp8IJpnc9ie1RyQGOR4zHbfYn3Hq4mfsnFklcDR8uR/H k+I9W/IfzPbAtp19p+roK/CGa3lPhQSAqT/ss6nF23hl9QMfudXk7GzQ5EF5xrPkjzVo9W1Dy7e2 8YA/erGZU2FPtx8hmwxazDk+mYLhZdLmx/VEpFamKO+RGopNuVctUFaRkmv05k9GETRryTby5aRa lqUMUsM9zYj0VnMMZZ6rTkKjwFfoyvJMQF2Aolzt7RH5j0a21WBdHtb/ANa0ikt7i7vJI47W0Vla NGVYgCGRela79c1pjKUPVW/QcygmpIyLzBaeXoXutPgN3eXEIu/SeV2cuj8h8JYruQGCHpWp3yif HlNSNDly/HzY8dfNj9z5o89earaFta1UTRzxme3tAu0RDhpC6IFALHZf6ZLw8OGXpHvXjFsIv4rm WIXOslSu50+waV+EPHYK7DiTSlT2B6VzJxzF1D4nvQZ3ycnm289VUbW2qjrO7RMKRvEdmNK7KOg7 /PE6WNfSzGGc+QXx+bDJJHdR2l3dW8twwE6x8JJpZUIYJUVJCjfsMB0+1Ei6+TfHQ5Zb1Vsxt4vN eoXIs7Dyzb6NYvEpOoXq14FuLVjFQzfCKUHQnrXMOc8OOPEZmR7g5+HsScjUjScWXkK6j1qfVL3X JpbNURI4oRxlk+Gh5OahFUnYL26nMefaI8PhjEA/j5u0xdh4oHfcJta+QfKNqJhHpi3E9wyGd7mR 5pHKmoPxHudyBscol2hnn12Hc52PQ4cYoRDObXypJHbyfUvLrRW0zc7k+gsUbt4yF+Kmm1AcxxLJ lkBZkenVsnkxYhvQCOTTmA/eXkEUi0pCGM77disXwj/gs2un9n9ZmN8FeZ2/b9jhZe2MGPbmiV0O a4ZRbtcOtPiYxrES3sfiNM6XReyeKIvOeI9wND4upzdu5JH92AB8yyzSfyw1zVWU22lSSg9Z56kb +8hAA+Qzf6fs3S4P7uAHws/Musza3Pl+qR+b1rRP+cf9YuUjl1CVbC3P7IUyPQeCLTam+2bAQNcn EMx3vR9K/I7y9B6ZkkGo0NZGljkhJr0AUU/HDwHvYmQDKbv8pvLV5YjTreKXTBIhSWeEKpdT2ZiC fp60yyGMDbdrMid3xP5//IvXvL9zqBs9PuJorMcra9BiWGVATU7MGBpvWnjXMfJpv5rfDP3sQ8me ftV8mTstxc3031MtwhkkSRYmAIX00fp70PypmPXPvbeb7U8q+e9G8/BBNqWn/pJ4VnW6glKSLxQc orqBlBkNa0aMkjuDmBm0m9w+X6mwTrn82SSxmyFxot7YQ3lpqSFL3RroCWyvI3607GtdmBBBzXSi Sb5ENo5Pmbz/APkSYDqGpflqLiSCIerf+R5W9S+tQR8TWjMP38YO4FeYHSubDT6+vTk2Pf0P6mue O9w8w8g/mRq/lbUIrG+v7u20pCVmmt1V7q3ZWG5ErAGh6jZhm3jluPCdwehcaWMXfUPtHy55j8se bbSO807UFa+kLPPLJCYFmpsWkjQFEY/tFKjxUdc02fRVZx2R3df2uRHIeUmWWmoXmm+tp2oWUd/Y OA50u5VT6Vd0khfehFNiDTMGNwPFA8J+/wB4bTvzRtxpVneW7XulXR1COJQbq19EtPAT9oMoZTQe I28c2Wm1sMh4cm0vsPuU8Q2HJLFsZKFVgWOJV/v1WQu4rvsAepPQZsxAs5ZInr8O5k2k2ipLJNNc rZyNULZrGBBLtQQvtsD4kHL8Yo9zh5ZE8tx3s9sjJHCqtH6cQ+FFR91AFSrbkDj08MyoinDkd0ej ckUpIpNeqAMw8DWoH3ZJgvD3UX70SKTFUlX6gGtaA1FaYptEX1nJZXs0Nu0N/DCEeO8hjK1Dorgl W32rQ5GErFpIASfUtWsdGspr/U7hbCwiA9aYtWtTsAoBLE0oAN8p1Wrw6WBnlkIjvP6GDz//AJXh 5P8AWr+hpPT/AEnz/uj/AHHo05U9T7PP/ddeXevbOR/0a6K/pnXFX+bX1/Pau5lxHuf/1OTXB/fT VJFXanepqc8pdYplt6qOR2BqOhO9MDFx3Apu3iOv9uAK6pLGqgFQeIGxwslvIVJPepRqe+564KYu K8Qe7Ebn2+eFk5uoavE0+yDWnf5YAWK0sDUgmtNzToPY/wBmSpktA+H4k4kGtPfFi19ggxgDnu1c HNkuLA7/AGhUinj9HfFi10HE1oSeX+e/3Ysm1NKVBFKjp19h4YWLgK1qQCB8Hap6fRtgJVbRuNH3 UCvc0I2wsnkv5quG0WO1MbTI0olubWMD1CAKKw5A7Vzadl7ZL+SA8Y1jQb3T9H0aLUpjdv63pRWc MqmCzFC3EqnV+tffbNvjzxlORiK259ZfsbXo2hXcujaauo2VncXupz3NvbQWCJUQkkHlLWg4hVqz E9M1ssYyZBGRAjzvvZfVSC886nqvma/hmQQabHcSSqv1VC6XDq7yM4XeSVpGclt+nEdBmbOQGSXE OXTlQTI2bfX3/OKf5B+Y/wAxdTSfXNUi8uJpwttRvUKxTXkcbMVhZYWqFDlG4sw6jYd84j2m7Xxa WHDjHFdi+Q8/l5O87H0JOQaiewjuB1l+oefyftV5Q8oaD5E0pNJ8v2Jhh/vby6IMtzdTcaevPcPT kxHc9OgoM8xz6jJnlcj7q5D3O7zZJZjcj+O6k4k1S1U0SBp5Bt6kjjY7/ZbcdcxTkETtzbI6aZ5m h5B8v2PlbyN/zj5aaz59Otahfa3qkU9vbWZmEUdx6r847dLZRTjGabsWIArXN0Nbqu1ZDBAcMdr6 7DvcycTl2kBQ/G3v/tfCvnHzXq/mTVdS8wX9ybjUdVmae5nTfieioCpBAVQFAp0GdrhwRwwjjjyH 4v4t2LHfl3B6F/zjb+YGpeT/AMx4LzVXtLfQ9Rga01C5ndYVERPIvNPNyKItKlYxychVy+ExjkCR Y5SBujE8wa3rya9fpxPEQOfMP1kn8raXqFzpWsxQM62SSTacavFw+tRgN6kQpVip/bFR881faHsX nxGUtOeLDMAi/qj1ETz/ALHnMevkAYk79fgkd/5Sa2uH1bQa2Wox/Wbk6ej/AFe11C7kh9KNr5lR 2cLQUNNuu9BmlPY2aFxl1236Dy6ByI6wSFS3G2/UDyfKv/OTOrW/lzyHe6NPqVjb+cfOwtT5m0W0 UTSXIiRV9QvIeUUEXp/AeALdB+1mT2Roc0dR64kRhyJ6e6tjbm4JxmbA2Gw/Hf3vzeOmwXAMjRgK Nqr8LBx3NM6/iNOQQEC2kJHIUQTc5ZBGipy5MXNF4Ku5JPYdcHimvJqlEPRtW/5xBtrjy5aeZPzP s9O0Rb5z9X8uzM8WtPbcQTOFtmWYMRXim5P7VOhie3M+lycGO7+weRvk4h02HU2CL8/2vILz/nEv z1ool8z+W9Gfy5+WIWO4sbTzDqUNnqF5p0siq7QycRzl4fEQyq9NgCczf5fxzFZd8hFggXGx5d1u pPYt5fQbjYBvoHmesf8AOOnnbUrjzFqXlTywmqeV7S+MtvcN6gSe4u6SCNP3bF3ViRUAj4euX4Pa HAIxGWZEyPlX6GWp7AznNMwrhvZDWn/OMX5z3GvWPlw6Nbabqc6xxx2NwbpCrXC84Q5W2ZVLg8lJ NKDem2XS9oNEIGfESB5d3Pq0x7AzHmR8/vZzq/8Azg1/zkB5X0i+80+YLjRdP0mJ4LeSW1lu9QNx zieQmKOGE8UhCHm0nFQe5xh7Q6TKBGMZHu2AYx7GlxcJlG/i+YfzJ/LGTy2LWB/N+n+dbq9jhe3j 8vevNaJKy8jBczukQ9VAaHhyXwJzb6HtCGXlEx77q/gO5mOzc+CY2BHeFDyT+SnnfXb6Kx8veQdd 15pHB1DUrOzlf0iqFmjilRGVQ/IA8t8dX2phxxMpZIxrlZ+92OPTkGq/Hk918r/848fmDpzIPM2j eX/y70zQZuaSeZNXhsrmUSEspeEGWZuIO6qlT38M1ebtHHmB8Ezyyl0hEy+XT7W+JjirioAd5ehS eWvImnmQ6n+Yj6xeRsaW/lrSp7yMj9qlxetaL9PA5PT9i9o5t44eEd85CP2CyjL2xhhyNny3XvL5 NESRaF5Cv9SlqCt7r2pM5c/8wtjHEm/hv882+n9lcgN588R5Rj9lyJ+YDgZe25H6I/NlejeWfzD1 mSmkaLb+XouHwtYafHaDj2Hrygv365utN7P6HGfplkP9Ikj9Addm7RzT5yAZ/Y/kJrmov6/mPUZJ 7k8WkhZ2vJd+tWZggp9OdBhweCOHHjEB5D9Tr55OLcyt6VpH5F+WNNMbXRluG2/dkFFI+S9fvzKG mmfqmfgK+bWckegej6d5D8s2LyNa6VEksRHGUJUmgFQFP68ux6eEWEpyLLktYiH9MIpagROG6Ebb DamZAiGu7RYT00K+oGLbRsVAJ9yKn9eFTshTFJGQ3qB2UFeD+Hy6YjzRyXtDWIcvsA1Cih6+I64C o3SXVdE0nUozFeQRS/AeXNatQAkfEd1p49sHDW4Tdvjz81/yEjZ7nzDosBhiu1CziJllto3pRZnN PUVT0JG3fKsmAT3Gx+xnDIY7HcPlVm8z+R9TMAuWspo6M0cUiyRTL1X4kJDA/PMGcCNi5EJAiw+q fIv5vabr9j+jtWd52YUuNHu0PqJIq0ra3CM0nXcVU+DZjajTxyb3R76+9nGRjyezy6VMLWHUbdpr 2xKpJa6oKwXdswAAEg60FNiNvfNXlxSx+mY/UW6MgeTz7z1+WHlf8xEE916Plnzk6gReZYUCWt21 fh/SES92/wB+J8X+tjhzzwbfVH7R7kyiJe98n6jY+cvyi8zLp2saUmnXcA9VKmQ2l7GNucU8TASA jupqO9M3GPNHLESiQQ0kGJfS/wCXv5waX5oittD1R7azueISGw9d/Vh67wyy71JPTceNcoz6eM99 ge/9bOOweswySxcNQ02/5x2pCrrVo/72BhsEu40+yPfofHNXlw8J4Zj8eTYCymyvbbU62mqSQ6ff u6c72GQrbTtSqEshqhNew3y7BrZ4NpeqP2hlQO42LJbPThZFlkt3UylBLEW9RaGhWQMaVFDsa50O nyQyR4oGw4mWUro8wzCyR4i0Ly1MQr6jAkEtXgKqG69MzeWzhEg7r2DAsJEidyf7um9D1pQCv3ZK 2KhqN7Bolst3qjw2FjKoaO4lb92w3oQvf5DMfU6rFpoceWQhHvJZc3j2v/nFbeldW3lu0WSeOoGp Xi+nbqvdkh2Z/atPlnEdpe3GONw0seI/zjy+A6/FJhQfO/mXzhq2oStdX162pXrvxt46KyLyoaR0 +BB7UzhNTqs2vyeJnmZHz6e4dPg4k80ocxdpf9c1yn+8EdfR9Tj6P+7K/Z6fapvmFww73I8U93Tu f//V5HMQLiVQwUeoxPtv455SXWKfMgVNQnbcgHt9OCmKx61ZhVmXevSm2Kr1biQtGJO4FeoFemEs nF924n7QoXFaV+jBTFsfC1OVAo/X2xVylfmdtx+o74qtJUkOu5BO3T8cVcwI4uV3Y1JHsKd8U21Q DiBsAN/eh6YgpXBSVr0Pf5dcbYup8J47EijE9CfE/hirdSB8I+M0JoNh9+KuC1Ap8SHcD5e+LJSY Emv2WHRl22xV5p+YVlPq2nfU7W+trRV5GZZWReTqDRQQedT4AZstBIY5cRBKh5NrcN7YN5csJLCV UEaym5koIJLhI+PGMADlx7E19s2UOGcZyB/XVqz22XW7iw0aKymjhtry8gh8wag7F2ipIqpbwRKC ZCxNCDWvTbKNIcQzx4+hFD9JZRNmn0N57/LP/Ad75TGt3ER1fzTYXNxPeRiO3eJTOysI6F0RlBFe Nd6DtTKu0gcWT+dHnt13cwYOLJGBNcXV9Vf84carpvkHzX5j0mW6iittY08fWNY1Obi9xcW8qCMy StXciQgV2HTOA9qYnVYhOMao8hyAP4+L2UdOODh3269e59nec/zo8o2F4+g3XmHT7aeG2ae5UzBo nkCs6QmYfBy4qW41qRnHYuzNROAmIkgmv2052kwYsR4pSo9L2/BeJTf85DeWbzzJqPk3QtUTzB5l stMttWstMsJI7hry2akt0yMjEKVjFAGoa9s2WPsHLHEMuQGMSSLO1H+H7XOGqwHIccN5Ve2+37Hz f+Y/ny482eYWaa6N/p2nCWOwvIudHhlkaVTLGRWKRAwRqj9nOp7O0I0+LYUTz/Ye7ucXUZeKdDkH kd3eaRR5DIgJqCGUNUjvUMMzRjkUDLSh5ZW91DzJpqeX9VsNLv4p0ni1C4mt7dYeDAiQSXTMoYU+ HYmvQYcgEI+oHfyTxCXm/Zr8tPM76XoemabcMzxO3E3lybgyXMpAeaSKS6VLnUJpWJLSLGsY7fCM 3PZHahxYhAnb3befnOcuQ6B5rV6fimSB+PPpEeXN6d5s81WXljyr5h803Vs0yeXNPn1C8sUYFwIY y4jYioUnavgN82OozYp7mHqHqMeoHIA+/ax0G7g48RMgL57W/Bf8y/P+p69f3Pn7zbdV1LzDe0uZ gGYCB+Rit0UElUijACjw+eafDjEpEDp9/wCNnoQPDiAGEQ/mZ5fRw1vb3V+ZUJ4pHwoQKUHMjrjL S+YDIZLfQn5Qf85Kfl9+WV5HrV3+V8nmXzLLURa1qGoW0K2i9ktInRyGP7Tnc9BQdatMZYM3GYiY A5V9t9/wYajAc0aEq/T+x7le/wDOeH5f32r2XmDVPymsodb0tZI7LUr3XrJJIkkB5hAy1PJetBks 2gxZfVDDISJu99/fXP4uH4BxjhOWNdzGvPv566p/zkRdeWdI8q+Xbu5stGl/SNzpnl4Taibp1ZDH 6k6RRpGsY3DV6mua3L2fDCTOdQNVZoGvd1+TlaeWPDdS4re8Xn5o/npaRRxXuleRPy20lzEsF7r9 7b2jwGVQ4LQevOTsa14jr0zVjTaWZuPFMn+aOL7aayIizRPPma5PAfOH58LMrNqv/OVYF5B6M/1L yRoouZgxcpLCJ+MYBRByBIObzSdg6rPRho5Gus6jXcfNxzrMWM0TEA9BZ/S+fvMf5p/lxqc91d30 f5k/mZOyTLHd+bPML2UErhqW7m1teLUC7shNCdumdBp/ZLtI1xzxYfcOI113LXLtfHH6Ik8ulMWg /NPzA9zx/Lv8s/KXky2jdys9npA1O8jR4+Hp/WL0yUA3YEgnkeXhTaYvZHSxN6jNky+V8I+xxMna maYoADz5p5Ppv57+c0nGq+d9cjtGEaTW36R+pwOFSiD0rNUBouwrm70nY/Z2L+608bHUjiPzLg5N TmlvKZ+5E6J+Q7NNHPd67DeXTMBcsn72dOXxEmSYtU0Hhm6x48pFQ4YjuHT5ONKcetl6Ppf5PeW4 rlRcGTUEjAYyNzYyeAIKpGPfbDHSSmfXIn3MTmA5CnvGi+T/AC/pAjNlo1tbOp2CIh4mnUHod82O HQYse4jv57tEsspdWSpBw58XUA7g9iem4zLESNmsqqoI1UFDRTu6sBX3A7ZIIvdcQnqPR0aRxsaj kR2B+WHhC8i4c1AM68D2ck7fSKdsKCrM8jKp3WIiinbj8qjf78HJbWAUqCSqNuVUhuvXp0xKgKQl iPGPmSwAJDivTbqRTbDzQupwqGZVA+yTsTX59cDJvgHqaIx4kOpBoQeoHXriRaApiEGL0HijSFR8 EXHkhC9AKdPkcIpk8F/M78k9K86Rm6t3ngvo1P1e2tBGsSsdxIFYbCv2gCK5CUBPYqJGO4fCvmv8 vPMPky7uIbq3tbxIHLR6lFOUnBA6gcgRStSCDmHkwygehDfDIJM8/LL86de8nX0Wna1x1W0ZQnqJ LxljWlCedeJJXrWoPcZiyhY4SOId36m3bnyL6u0+/wBC8x26XGk3SWuoXIDfoi4pAkwf4gICSeLG uy1Ibtmrz6c4947x+0e/9bbCd7HmsvrfT9e0y78q+ZtGXWNKhb4tKn+C8tJBUepZuavE4odhUfMZ ixuEuOBo/Yfe2ncUXx9+YP5L6j5SE/mXypdy+ZvJ6Hm2pxLxv9OJNQl3Gm68f9+p8PjTNjp9WMnp Ppl3d/uapQ4d+ir5A/NvWdGnht9S1CeW3QfBcEpQCu/Ild+Q2Nag98yZQBFEWO79Sb4uu7650rWd I8z2lneadNZ211eqrmxRgIWfqVQklYz7FivhTNdl0xgOKO4+0J4t6LLtM8w3OlmSxvoHubS3YILK aq3MHUtxr09gR8jmNjnPFLjxGj9h96ZREhUmY3XmXSdN0afXrVbm+s7VfSnt7WIzugbq0yH7A/yu 2bSftDiw4jPLGXEOg3/AcLNgMNxuHiXmP84dauIjDoccGi2Lg8p/SNxPuOoJqFJ9hnG63221OYmO CIxjv5y/UHDMj0eNXeu6ndXyXmoS3WoO55fXJ3eWJh4Kp3Bzlc+TJqJcWSZkfM2UCdjluh7uazdJ pZ2lS7kdWaOMFlRewMbA7/TlAvkiUiLJKElm1b6kY/StFtTKKvBF+9413YrXbbwGSjGHFe9tOTJM +YRP6Puftehc9PU5c3+x9n1f4VyPEz3+x//W5LOf3j02VpGBYjvU0zygjd1ikFJJJqOpAPUff4Yl i0RyUGtKCtQBiycw7Df4gaVPj/ntiq0HflxKkVq1O/QmmEq23wj4QORBo9e3Wm/TEKvNaChBQ1FC cDFYQT9kEnbYGh374snbsSu9APteI6djixX0b4qjrQCtevy8cVd0AANdviPivhiq2hAPE15igAGx 26fLFk5QzKqliSBtQ7Cm2KtE8qlAGXwJ2rXFXMBt8Xw1A3PSnXFXkHmC3t9D12DV7TQ7vXdRt6vJ OJCI1e4PGjxhGFADUAb5ttPI5cfAZCIP6FYR+Yk+t2urWt/f29uLOAJDb6jWpldhzKIpNVVT4gfT mXoYY54zGJN86UInTrnVLjy5qFs129iHYyWj28Yb1ZiytVnI+EjqKfPKJwiMordsgQC+iNS1vQvN Hk38ufNen6u0/mvS7rUdO1HQtTu5rzT9OtVVPSuLeFipFQSfic/F12x1GSIiYkb9R91OZHURFS6g rfJ9lHpSG285+cdX03Q1hubHWtS01xFJdJcxvDxjIDP6Sqd1UV67980mqJP93AGWxAPSqPut6XT4 iARORr7/ANjEPN3mLyd5e/N06z5VtT5y8iWGoQXOl2l/cXMEXpi3VAq287lxLD8VHY7nvQ5bpseX No+DIeDIQQaAPXvG1HuZSjjjlEgLF3VmuX3vq7QdY/I+7GreafyyvdMsU+qwvd+TJG/R+rLfcHVG tnjPqlleRTX4k2PxUzn8mHtAcOPURkdz6x6ocPWxy/S7uB0wvJiIG3LkbYNNHdSNLcX0krTzyMXm njaQvJXnIRLCeRFdqnNsK5Do4Vnmeala6TP5ku7XTLB4WvLngV53IjRFckF5Glj+FVruSfvOQyEY omUuQbIxMzQfWX5e+QrLyjbxx22q2rajMQZmj1P1GadTRwP0dpxulDdUCyjb55z+p1Ussrrb3dPj KvscqUOCNc/t/A73155a0W705oXtbS6ijMdbq8toJNOR0Jq/ranqkk18wNK8Fpv3GHT6siqO/IVV 8uW2w9zp81G7I+fF9g2+LzD83P8AnMD/AJx7/J/RdW0fzZ5tsPOerm0ML/lf5SC6lNP9ZJh43UwJ RSx2ZppFPejHOy7M7P1GpA4omMP9KPiTuSHWyq9ufeefyfhd5/uvzL/MXzFdS6HZ2vkXyZDPONDt r+4EssNuzBo1kd1+NgDTkFFadhm4w4NNgBjUskutA82WfPlmdiIjzKTWv5Xw8Q/mb807q64EM1rp MMjdt15KADU+AzMhh1Eh+6023fKg4hmL9eX5Mhs/I/5S6citNoevearrj+8uNRufq6vXeoAeo+7L z2b2lPnKGIdw3axkwDpKR7yXreg+ZNM0JoY/Iv5QeVdGnCw/V9RuLKTWLz1ozUyKZQEBc0BHEigp 41qPszHIf8I1WSflH0j3Gu5n+f4foxxj9rPI7r/nI/zHFLaR+YtY0nT7l7ic2dh6GkW5a5asx4Q8 W+M0FPoFAKZlab2b7NxkGGHjIr6iZHy6tWTXZjzlQ8tklk/IrzDcI2o6/q63rGVI7n6y817PzYfD tKxB6U65u8GLgj+6gIjlsKpxZz4j6iSfeyOz/KvQNPYQXFxf3Fwiq0sUUQiQHqVotD2plnBOXMy+ THiA5UzvQPJvl+JVa00aOsqMt1eXUfqGNQakxCWu5GxPbLMelB7/AH/sYTy1ze4eV9J0zT9N+u/o +CzjkklilQKgLlXIVHRaBSBv/DNhg02OAug488kpGrZuzRzLJFDDG8fFVlqONOWxVh06dKZliq5N e6DttHiimaX0+MZH7tRwAFdz9hFO3ucjHCAUmRKK+pKkSyvKWPSMueKJToSo6/fk+DbZFpokccsX G2bpStu/tTdGHjlgGzG1dGSnGSN437gtVfoA98kEW23qJzHprG53DKCKj6cbUhyuwCh1EyEU5sg/ Gm/04Vt1XrwRRJyPwIKrT5dcbQ2JBtVEjZtlZnPX2FfH2wWnkvpK2zq6vTkJI05Iyj+Za7UxW3Nx kq68o9qkE9foJ6YgJ5uWhAk9Z4zQ14hXBHvXCxWpFShR15UqGA48fc77/LFNUv4PIABKnOn73lWh 8CAu2KeiwCimkiyEEBxy49duhB/VgQGA+a/y68sebLaaPUNKhju2TgdTjRPUA7VPEg/djwjuWz0f Af5n/lJP5Ma4vLLS7g2EMzgTer9ZjMf7JDoAwHzFRuDmHlwgCxycjHkvYsJ8oeb9T8kXEd9Fpw1D R5qR6jaSNyFP+Ky3Lgy9qjMeurbd7PsHyv8AmJ5X8+QKXubyCaMqLTVnVFuLZgtRE7IxMgU7/EBt 9k9s1+bSCRuGx7uh9zZGZjz3Z0YLjTJorpSY5Zarb6vCK292hHxoyEUPIdVNDTtmsyQvY824S6h4 751/JTRPNtxNqfktrXyv5jl5G68vTgDTbxdyWtmYH0ZSf2fsn/Jy6OunhgeIcdcuh+P62E4XvHn3 PkTz/N+dv5Nm5ttOii0/SwwY6iYBNJay7ElkOyGvf4lOYOD2gGeRhXBMdDzcT8wRsRRQn5Z/85d+ atEuxYfm9cTecNFuZC1l5ntY4otW012NQwjjRIriBT/utgCo+y3bMgz4jfVux5b2fod5Y8yW+s2d l5t8r+YrfULHUFpYeaNObnYzllo0Vwn2o5OoZXAIyEgJCi5APcp635S03zRG0mlx2+g+Z3V6Wxcp YXbj+VhvC57dQfDNDruxoTPHDY/Yff3fc4mo0Yybw2L571DT9d0W6u9K1LTjZa1bzKvoXpdWWnVo 6bSKexGxzns2E45VIEOmMZ4zwyDKre01fVZYVh9CzgCA3EpiCgquzMGkIzCAAHK/i2GZNUQp6hrv lrQLpLOylbU9VRQ0eoceVtH48RQ1yyGCcok8mqWUCVIL/HPmGvL14vtetx9D9mnHx6d6YPADf4kH /9flEtPUlC9Q7bgVoak/TnlEubrEOSSTxqQpHTtX374sVlKGj7gjYEnb3XFXFTQnj/CvtiyXAsDy JYbUUH6OuJYqhqabcq7tU9afMYqt4odjRqDklMUhbvQFRXlTam4rt4++KHNv8NKN0BNSK13rtiq4 MdtuHIHr1riq3ueVWDdP7B+GKt79qrx6V6EduvhirVUPKrVYdTtuR4+BxVzMtSpY7jYbg0r3ONJK 0E0AVt1Fd9xt/ZihDEgUatQNlUH/AD3+eFNPLfzB8va3rq6Za6JpltcBWYXOsXJA+qioNEFa796A k9M2mgz48XEZkjyHVIeR38HmfS9dTR/qtzJZWKpLcv8AFxuAtaTGNagV34rSpGbTF4M4cVgWfl5N gICd3mrQ6Zoz6Fq0zwXuoOJpNOeMRv6c32BIoJCh6dK1p1zFjhlOfHDcDr7lDEvMfnS/Il0+fV6a dZuLaB3H2oiByWMiu4OxpmRi0MOITrfn8XO/O5eDgvaqecQ63qd7NdG0S8uJpaRhoYHkbgrUU7Aj YHNnHRWK4bavFnxcV7ozRND8/wAuoWepXXlfVbiSzMq2uoIFtp0SYcSavQHbpm0w6OcRUY7Fu/NE /U9iQ/m1o1rbN5e8/asvqfuW07UnBaBJXALFgZUKqNyBQgeOV6jsXFPeWMfL9TlaftAx6l6BoP53 f85TeQ1uLfy9510txfgR3d9DpNpeO6wn4R68kSsqeApSuajU+ymhzH95iuvMj9Ll4u1s0OUq+AZG f+crP+cz9XuLqGb8w7zSrdGjcy2WnWlo8rcQA9fSIqoUVzHh7GdmxO2C/eSf0sp9pSkBZHLuDznz JqX54fmGsn+MvzU8z6q0kitc2t9qtw9rMBseVtE6oQVJH2fnm603YWLF/d4ox86FtB14ibslEaR5 K0nQYleNFimRqhlCgKdviIGxIpm8x6SOPc7l12TUyybDb72e6PpcmtXUcMd489w5pG3H1GY1/ZG5 rQ1PgMpjnkZUKixOKhZ3fQGifkQ9zBFc3xuL9m4mUxt8CgitQpoenfJnDmn3kd7HjgPJ6jpv5M+V 7F4IG04RXbowjNyBNI7HfdfsA06bHJfkRLYyIPT8cmP5iuQsPWdC8paZosMRhs4o5pkX1paV4GnE 8QAACMz8GihjFVZPUtE80pJreWEARAbR5d19KWgLRkHZwF3A8e2W5MUa3H4+DWJFJNbsvXsbZwFk Mb8o5iwCesvTipFGqBTcin04JxuI6pGxeZ3vr20lxNb2ckJmofr0gIZV2qo7DfvWtOmY0wRy2bIn vTixga4exW8le6dYTS0tkb1GIPJzKfh2oakV3yyI5WWJekWEMUliiTEp9WlAgsUAUvL4Oyiknbcd uuZEardrKfWjXs0c31+NILyQn91GQyRUC8Y2JpyO9TlsSSN2JTBizKkZ2kNNxXjUdf8AM5Mqtjkj jjCF+DMOUbUqpoe4G9fbB0VXiCsrD1FNTyJiBYksak0O43ybG7aEsZYn4nam5FeVPu/XjaFeN5FD vEtfTX4qPt7koa0PywUhR9VE2Myoq9ftCh8acRthZclQXSNH8bkR02aJaipPUEDAVDZ4gLJGIyj1 HMbl19iO+C6Xm0scQAeOaZOQ+yd6bb9SKjCVDRoxCuWmZQOJJ4lfxIwBJ35LwUYChq9eNPtD22OF ebRiQupo4PU9l+ZG9MUUu9NBSkkqsOg+FkPuN9sbTwrmmcigjWdR24VNB406YpumuKSA/FIK/wB5 GlAAfc9dvfFHN5/5m1Dy9aqIr/XYLEcHElpGUdmDH7LRKrEkjbkM1es7X0uj3yZRE9139gU1yIfF XnbyP5O1nVJJdIu5YlVfTW6aFY2ajVBdeIFQDSvfOV1/tlp/8hjMj3n0j9Z+xEc/Ds8f85/l1530 i1k1H8sPMF5b3KRcL6wtH9O6mA6tE6gVI/lP+xzUaf2qnllWWoA8iP0/rbhlJD59/L38+/zV/J7X 9QuzqV35t0PVZx/ivyd5jmluIrl4zQuryFpLedRsJE+TAjN9HKJ7k35t+PLWz9N/y6/M7yL+cmiT a35Avpbi5sI1l8xeT7yi6vpTttWRAf30IP2ZEqD3p0yZsc3J5vQNQXS/MOiHSvNNr+kNNHKO11ZA slzaBh0k/wB+Ie4bNVrezYagWNpDkRzHu/UieOOQVL5vz+/Oj/nF690y6k1bydbxXVhqDl9OFsQb K5UitIj1gk8UbavTNfj1mTSHg1G8f5363Dljlj57vm7yT5r/ADQ/JDzJc3fl6eXTZXb0fMPlTUQW tLxQd47q2alTT7Lj4h1U5vMeWMwCDYPVlHIQX6YflH+ePkn84ohpellfLXnZY+d/5EvpQZJAv25N NuJCPrKjsm0ijseuXAuUJW9xaWx1SGDTfNdgmqWdkSbO5Yf6ZZ0ND6TtRjTup+7MLV6LHnjRH49/ RGTFHKKmPj1eU/mL5c8xacjaxodtBq3lk8aXNuSwjAFOFzDQ8GPttnJajss4CSSTH3bj3/r5Om1e lniFx3j3vEFlv2aH13htUcs0MQVeMR6AJxLEfSNsoIj03dXDiB3OyZfojzTx/wB45OX1fly5Dpy/ vunSm2V8ePv6/gORfk//0OXTW8PNyt/DTk1VAmPc7A+mM8t4B/OH2/qdUom2iLGuoW4NBxostPbp Gd8HBH+cPt/Uyba2ir8WowU47njPSlO1I8IhH+cPt/UrmtoO+ow7KaDjNQ/8k8HD/S+9VwtYh11K Bht1SWv/ACbx4I/zh9v6laa1h/6uMPp1+Giz8ffpHjwR/nD7f1K0baHkeWoW+xHABZd/+Sf68eCP 84fb+pVQWtvT4dSt6DqeE2/y/d48A/nD7f1IK420W4XUbcCu7BZvx/d/rx4B/OH2/qSs+qwUNdSh 4Emnwzbf8k+lceAfzh9v6la+rQhv+OhbsNuFFmGx/wCefb3x4I/zh9v6lbFrDv8A7krYfNJeh/55 9seCP84fb+pVotbeq01K3JPUhZdt96/u8eGP87/dIDpLW3JH+5OALXccJadd+sePAP5w+39SGhaw 8hTU7YHl/JPX6P3fTJeHH+cPx8GSi8EA+1e2zCu20wHXb/deZmHSaeX1ZxH/ADZH9CNlA26dr626 mvITdf8AkXmfj0PZv8WpPwhL9SdkA1ra/W2/3I2xumSsVFl+Fe4j/d9fxzPhp+xhHfLIj3SH+9ZC nnCW35eLr2oi41CxfXqObo6mLznT9oJ68QX/AIHtm+wfyX4ceGuHp9X4+adk90+x8jM/+g615ajk q3SIl613pyjrWvWmbfB+Vv0cPwpnfkypdP04KeGvWznuIIZQP+FiOZo4eiBaAuLfS1ajX0MmxPKQ Tj6KekMiSe5NeaVvDZgMourBk5Al/wB4DxruKNGfpyJMu5IEb5oRbWwJ21OBSUNQEuCo+L2j49Md 0qv1Wwq1dRtftGpZZ68Kb9Y8irri2VUHp6jayEjf4ZgAPoj8MiTLuZgRvmkuoWUJiU3GsWwHKqgR 3FK+BpFmGeO93JHDWz6J/IrTPKa6xbMPMlvL5hKFrSOK3lDhGT41jaSKlV7kCpHTJaaAOT6q+DDK Tw7B9wJHF6FvymTgChAUMK7/AAjdTtyzedzrAvMdkLssZ7ZrniPgIIevsePXI+ni6WkXW3J0UbBW MtwWDP8AuwqyKqpXvUEE18MkL6sJIkRjjtcDlToA1af8DXJnmxYxrERmmiW5uRaJ6TiKRA7DgCN2 BRlqdvfMfLZ57NwYWZLFpHF9bWsXBvjZ5GPNgp48fh4gkeGUA77hmb6J5pixiOaOB7drW4KmK4Gz wVr6gRSOTAH+auTj5MT5p/p9v6MlqL2+W7XhIbRnRkarKPUC/CPsr9JyyPTiQyD05lh52MyvGFHp wSA1PT9plBH05de3JircWdVVmEMhXaQF2Ir05DjQgHJsEU6D93yljqoIPINRie/TqMDJRVIyqqZo lIPwSEEyE12qFFcG6Nl9WaMrMixtX4HDOd6+FDj1YqY9IzIIlVLqgqyMxHvX4emSSiEA5kwlA+4K sT07FSRTIhJ5qsYviSQ3Fq7qKkfSQMku6Fb6lyl5+gJannxJrX6BivRbGrKn7l1dKVSlQ3yNRihX 4Kw/eSoiE/Dy3IP0rioWyLQgO8RFKkrWnsGoKZBkObSglHq0ap+yByP/AAO2TX3rpSyRO0Sxyyrv GkfAciOgY7DfKpyrlGz8F3YVf6n56lYrpflmztVG0ss92kqEdzxQqoP05z+s1naxsYdPEecpA/ZY Y2f4g8r8xQ/mDLFcHUbua1tqV42ys0PyPoqy5xPa0O2qvUylw90fp/2A+9jK78nkotUYSctTijlq TIQkxfbqD+7rvnKcEL+ofb+ph6lN7eHkrLfw0UU9PjPVj3NfTw8H9Ifb+pTXVDz287oWtb+GJV2E SpKzt71C1Bwxhj6yH2/qWQlexfL35yaP+V2oTsms+bbTQfNiw8lmjtrucmg+FbpYYH69ixDD5Z0X ZP5iI9Pqh8vlf9jdHi6Pl3yZpGvHzxog/K/zVMvn0Tf7hG0SC/8ArZNd/sW9PTp9rn8FPtbZ1cbr ycvHxdH67+Qrzzxq+n3cP5m6PZeU/wAwNJb07u90qdLrS9WTiOcpig9VbeT+ccuBP2adMIHcXKBN cmf6cqCDUZrZ4DYKv+5y1uOX1NkB2q0i8QSffMXVDDwnxCK63+lJOxsbPDfz90//AJx8v9Ns4PNu uw6F5iuQTpt7wup762+E0BSG3eR4a9BJ/sWzm9LjMJcWjmJY73iQQPgSA4cuH+F+Y2s6RoyaxDFp Pmu3nv4rxV0O7sLfUVu5ZA1IXgVIPVVyaEAb51GLiPPZkOJ+oX5Q3X52ejYeX/zn0u2+tLZpNofn 8TRDUaBaxQaxZCsjSN0DsiSD9sHrllDvcmJPUPctHTWHu7qXRpVgvoVI1C2jEjWsygfvC5ccFBFa 1PyyvKIbcRDME77bJJrC/lxereBn0rR/OEbE3bWJ9UO4pswhSQUP0UzkO08OnO+PJRHSpcJ+yh9z p9SNOd4mj3MC9LXK09d6epwrW5p6VK8/7v7Ndvn2zS+FH+ePkf1OPv8Ajuf/2Q== --90e6ba6e871043704e04a7dcde64 Content-Type: image/jpeg; name="Cong Happyland.jpg" Content-Disposition: attachment; filename="Cong Happyland.jpg" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq0q6ajf1 /9j/4AAQSkZJRgABAgEASABIAAD/4SohRXhpZgAATU0AKgAAAAgADQEPAAIAAAAJAAAAqgEQAAIA AAAOAAAAswESAAMAAAABAAEAAAEaAAUAAAABAAAAwQEbAAUAAAABAAAAyQEoAAMAAAABAAIAAAEx AAIAAAAcAAAA0QEyAAIAAAAUAAAA7QITAAMAAAABAAIAAIKYAAIAAAAHAAABAcSlAAcAAAAcAAAB COocAAcAAAgMAAABJIdpAAQAAAABAAAJMAAAE4xGVUpJRklMTQBGaW5lUGl4IEpWMTAwAAAK/IAA ACcQAAr8gAAAJxBBZG9iZSBQaG90b3Nob3AgQ1MyIFdpbmRvd3MAMjAxMTowNjoyNSAwOTowMDo1 MwAKCQkJCQkAUHJpbnRJTQAwMjUwAAACAAIAAQAAAAEBAAAAABzqAAAACAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACaCmgAFAAAAAQAA Cv6CnQAFAAAAAQAACwaIIgADAAAAAQACAACIJwADAAAAAQBkAACQAAAHAAAABDAyMjCQAwACAAAA FAAACw6QBAACAAAAFAAACyKRAQAHAAAABAECAwCRAgAFAAAAAQAACzaSAQAFAAAAAQAACz6SAgAF AAAAAQAAC0aSAwAFAAAAAQAAC06SBAAFAAAAAQAAC1aSBQAFAAAAAQAAC16SBwADAAAAAQAFAACS CAADAAAAAQAAAACSCQADAAAAAQAJAACSCgAFAAAAAQAAC2aSkQACAAAAAzAwAACSkgACAAAAAzAw AACgAAAHAAAABDAxMDCgAQADAAAAAQABAACgAgAEAAAAAQAAAyCgAwAEAAAAAQAAAcKiDgAFAAAA AQAAC26iDwAFAAAAAQAAC3aiEAADAAAAAQADAACiFwADAAAAAQACAACjAAAHAAAAAQMAAACjAQAH AAAAAQEAAACkAQADAAAAAQAAAACkAgADAAAAAQAAAACkAwADAAAAAQAAAACkBgADAAAAAQAAAACk CgADAAAAAQAAAACkDAADAAAAAQAAAADqHAAHAAAIDAAAC37qHQAJAAAAAQAAEEQAAAAAAAAACgAA KvgAAAGuAAAAZDIwMTE6MDQ6MjUgMjI6NTc6NDUAMjAxMTowNDoyNSAyMjo1Nzo0NQAAAAAoAAAA CgAAA/IAAABkAAABpQAAAGQAAAOiAAAAZAAAAAAAAABkAAABUAAAAGQAAAKUAAAAZAAAG7MAAAAB AAAbswAAAAEc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAYBAwADAAAAAQAGAAABGgAFAAAAAQAAE9oBGwAFAAAAAQAAE+IB KAADAAAAAQACAAACAQAEAAAAAQAAE+oCAgAEAAAAAQAAFi8AAAAAAAAASAAAAAEAAABIAAAAAf/Y /+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgI CQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAz/wAARCABaAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAAAAAA AwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYIBQMM MwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkSTVGRF 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 AAAAAAQAAAAeOEJJTQQZAAAAAAAEAAAAHjhCSU0D8wAAAAAACQAAAAAAAAAAAQA4QklNBAoAAAAA AAEAADhCSU0nEAAAAAAACgABAAAAAAAAAAI4QklNA/UAAAAAAEgAL2ZmAAEAbGZmAAYAAAAAAAEA L2ZmAAEAoZmaAAYAAAAAAAEAMgAAAAEAWgAAAAYAAAAAAAEANQAAAAEALQAAAAYAAAAAAAE4QklN A/gAAAAAAHAAAP////////////////////////////8D6AAAAAD///////////////////////// ////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////// //8D6AAAOEJJTQQIAAAAAAAQAAAAAQAAAkAAAAJAAAAAADhCSU0EHgAAAAAABAAAAAA4QklNBBoA AAAAAzsAAAAGAAAAAAAAAAAAAAHCAAADIAAAAAMAMwAtADIAAAABAAAAAAAAAAAAAAAAAAAAAAAA AAEAAAAAAAAAAAAAAyAAAAHCAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAEAAA AAEAAAAAAABudWxsAAAAAgAAAAZib3VuZHNPYmpjAAAAAQAAAAAAAFJjdDEAAAAEAAAAAFRvcCBs b25nAAAAAAAAAABMZWZ0bG9uZwAAAAAAAAAAQnRvbWxvbmcAAAHCAAAAAFJnaHRsb25nAAADIAAA AAZzbGljZXNWbExzAAAAAU9iamMAAAABAAAAAAAFc2xpY2UAAAASAAAAB3NsaWNlSURsb25nAAAA AAAAAAdncm91cElEbG9uZwAAAAAAAAAGb3JpZ2luZW51bQAAAAxFU2xpY2VPcmlnaW4AAAANYXV0 b0dlbmVyYXRlZAAAAABUeXBlZW51bQAAAApFU2xpY2VUeXBlAAAAAEltZyAAAAAGYm91bmRzT2Jq YwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0 b21sb25nAAABwgAAAABSZ2h0bG9uZwAAAyAAAAADdXJsVEVYVAAAAAEAAAAAAABudWxsVEVYVAAA AAEAAAAAAABNc2dlVEVYVAAAAAEAAAAAAAZhbHRUYWdURVhUAAAAAQAAAAAADmNlbGxUZXh0SXNI VE1MYm9vbAEAAAAIY2VsbFRleHRURVhUAAAAAQAAAAAACWhvcnpBbGlnbmVudW0AAAAPRVNsaWNl SG9yekFsaWduAAAAB2RlZmF1bHQAAAAJdmVydEFsaWduZW51bQAAAA9FU2xpY2VWZXJ0QWxpZ24A AAAHZGVmYXVsdAAAAAtiZ0NvbG9yVHlwZWVudW0AAAARRVNsaWNlQkdDb2xvclR5cGUAAAAATm9u ZQAAAAl0b3BPdXRzZXRsb25nAAAAAAAAAApsZWZ0T3V0c2V0bG9uZwAAAAAAAAAMYm90dG9tT3V0 c2V0bG9uZwAAAAAAAAALcmlnaHRPdXRzZXRsb25nAAAAAAA4QklNBCgAAAAAAAwAAAABP/AAAAAA AAA4QklNBBQAAAAAAAQAAAABOEJJTQQMAAAAABZLAAAAAQAAAKAAAABaAAAB4AAAqMAAABYvABgA Af/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFkb2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAM CAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwMDBERDAwMDAwMEQwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDAwMDAz/wAARCABaAKADASIAAhEBAxEB/90ABAAK/8QBPwAAAQUBAQEBAQEAAAAA AAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUGBwgJCgsQAAEEAQMCBAIFBwYI BQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwclklPw4fFjczUWorKDJkST VGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG1ub2N0dXZ3eHl6e3 x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR8DMkYuFygpJD UxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV5fVWZnaG lqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwD03cBqU8g8Kr6sBOL2/u6p/CjiDYMJi4BB +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 9IFLGVsx3FrGGsB5Lmlhj2Pr+g9vtb/OINuJksZ6Tay2ndv9IMG0Ojbv27drXbBtXV7mP+iJ/quB /ikWtg6ub4yP7lEeXH78kmJeNBzWnbt4M6t/vCmMu6se9oAOsgaLrDWx4jeCJnU/7HJ/sTXHcYk+ HCH3ftkP2IEZDqftf//U6ctgANrbuPAaxv8AAKW0tB3OG7nbKk/6B+l/Y+H5yqHvz2+jyqzaTvvD WQ0zI150Qqqscy70WPfyTtDj/wBNDPP9n87lGxOXcfxRVqv6NLHe+pjd3B2tPH9lQuxmuhzQKy3S Ghp/h7U/Z3H9rnvyn/wTvlz/AASQs1toENcwEcNjQ/j7VXyTZS71L6q2u/Nd7Wkx3/lK9Xx2/tcc f9Uuf6t/Sv8ACc/2f7H8lJLO/PdYYcXciQAO38pW+nPDiX+6DzIPP3vWPT2/78uk6X/QT/Nf2fj+ ckpe1rSNwknwI3f9U5AbkFpgtc3wB4/zWq076P5vy/1+isfM/pbfnxz/AGkEun9oaRoGuPeOf+lt QLcktEvb7R4g/wAVCv8Am/zeRx9P+ying/S4/O5/toIQHMpc2XUOI7uaNPwURlYRECx9RPZ4JH/f k47/AM1/Z5VXJ+kfl9Hntyips7a36C2q347QT+RRNZB9rW/9bcqTOO3f6fCaz+z8vpfL+UkpuyeC 57T5w7/ovDk4P8phPm3aT82FqrM/mx/P/wAEU8Dnj5/2kUP/2QA4QklNBCEAAAAAAFUAAAABAQAA AA8AQQBkAG8AYgBlACAAUABoAG8AdABvAHMAaABvAHAAAAATAEEAZABvAGIAZQAgAFAAaABvAHQA bwBzAGgAbwBwACAAQwBTADIAAAABADhCSU0EBgAAAAAABwAIAAAAAQEA/+FD12h0dHA6Ly9ucy5h ZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpy ZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0 az0iMy4xLjEtMTExIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8x OTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJv dXQ9IiIKICAgICAgICAgICAgeG1sbnM6eGFwPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv Ij4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMTEtMDQtMjVUMjI6NTc6NDU8L3hhcDpDcmVh dGVEYXRlPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIFBob3Rvc2hvcCBDUzIgV2lu ZG93czwveGFwOkNyZWF0b3JUb29sPgogICAgICAgICA8eGFwOk1vZGlmeURhdGU+MjAxMS0wNi0y NVQwOTowMDo1MyswNzowMDwveGFwOk1vZGlmeURhdGU+CiAgICAgICAgIDx4YXA6TWV0YWRhdGFE YXRlPjIwMTEtMDYtMjVUMDk6MDA6NTMrMDc6MDA8L3hhcDpNZXRhZGF0YURhdGU+CiAgICAgIDwv cmRmOkRlc2NyaXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAg ICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAg ICAgICA8ZGM6cmlnaHRzPgogICAgICAgICAgICA8cmRmOkFsdD4KICAgICAgICAgICAgICAgPHJk ZjpsaSB4bWw6bGFuZz0ieC1kZWZhdWx0Ij4mI3hBOyYjeDk7JiN4OTsmI3g5OyYjeDk7JiN4OTs8 L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnJpZ2h0cz4KICAg ICAgICAgPGRjOmZvcm1hdD5pbWFnZS9qcGVnPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2Ny aXB0aW9uPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4 bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyI+CiAgICAgICAgIDx0aWZm Ok9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOllDYkNyUG9z aXRpb25pbmc+MjwvdGlmZjpZQ2JDclBvc2l0aW9uaW5nPgogICAgICAgICA8dGlmZjpNYWtlPkZV SklGSUxNPC90aWZmOk1ha2U+CiAgICAgICAgIDx0aWZmOk1vZGVsPkZpbmVQaXggSlYxMDA8L3Rp ZmY6TW9kZWw+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjcyMDAwMC8xMDAwMDwvdGlmZjpY UmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZm OllSZXNvbHV0aW9uPgogICAgICAgICA8dGlmZjpSZXNvbHV0aW9uVW5pdD4yPC90aWZmOlJlc29s dXRpb25Vbml0PgogICAgICAgICA8dGlmZjpOYXRpdmVEaWdlc3Q+MjU2LDI1NywyNTgsMjU5LDI2 MiwyNzQsMjc3LDI4NCw1MzAsNTMxLDI4MiwyODMsMjk2LDMwMSwzMTgsMzE5LDUyOSw1MzIsMzA2 LDI3MCwyNzEsMjcyLDMwNSwzMTUsMzM0MzI7MjQwQ0EzM0VCRkQ1ODM2QUY0ODMyNDVDN0EyQjRC QUU8L3RpZmY6TmF0aXZlRGlnZXN0PgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJk ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDov L25zLmFkb2JlLmNvbS9leGlmLzEuMC8iPgogICAgICAgICA8ZXhpZjpFeGlmVmVyc2lvbj4wMjIw PC9leGlmOkV4aWZWZXJzaW9uPgogICAgICAgICA8ZXhpZjpGbGFzaHBpeFZlcnNpb24+MDEwMDwv ZXhpZjpGbGFzaHBpeFZlcnNpb24+CiAgICAgICAgIDxleGlmOkNvbG9yU3BhY2U+MTwvZXhpZjpD b2xvclNwYWNlPgogICAgICAgICA8ZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgICAg ICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MTwvcmRmOmxpPgogICAgICAg ICAgICAgICA8cmRmOmxpPjI8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT4zPC9yZGY6 bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpT ZXE+CiAgICAgICAgIDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgICAgICAgPGV4 aWY6Q29tcHJlc3NlZEJpdHNQZXJQaXhlbD40MC8xMDwvZXhpZjpDb21wcmVzc2VkQml0c1BlclBp eGVsPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+ODAwPC9leGlmOlBpeGVsWERpbWVu c2lvbj4KICAgICAgICAgPGV4aWY6UGl4ZWxZRGltZW5zaW9uPjQ1MDwvZXhpZjpQaXhlbFlEaW1l bnNpb24+CiAgICAgICAgIDxleGlmOkRhdGVUaW1lT3JpZ2luYWw+MjAxMS0wNC0yNVQyMjo1Nzo0 NSswNzowMDwvZXhpZjpEYXRlVGltZU9yaWdpbmFsPgogICAgICAgICA8ZXhpZjpEYXRlVGltZURp Z2l0aXplZD4yMDExLTA0LTI1VDIyOjU3OjQ1KzA3OjAwPC9leGlmOkRhdGVUaW1lRGlnaXRpemVk PgogICAgICAgICA8ZXhpZjpFeHBvc3VyZVRpbWU+MTAvMTEwMDA8L2V4aWY6RXhwb3N1cmVUaW1l PgogICAgICAgICA8ZXhpZjpGTnVtYmVyPjQzMC8xMDA8L2V4aWY6Rk51bWJlcj4KICAgICAgICAg PGV4aWY6RXhwb3N1cmVQcm9ncmFtPjI8L2V4aWY6RXhwb3N1cmVQcm9ncmFtPgogICAgICAgICA8 ZXhpZjpJU09TcGVlZFJhdGluZ3M+CiAgICAgICAgICAgIDxyZGY6U2VxPgogICAgICAgICAgICAg ICA8cmRmOmxpPjEwMDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwv ZXhpZjpJU09TcGVlZFJhdGluZ3M+CiAgICAgICAgIDxleGlmOlNodXR0ZXJTcGVlZFZhbHVlPjEw MTAvMTAwPC9leGlmOlNodXR0ZXJTcGVlZFZhbHVlPgogICAgICAgICA8ZXhpZjpBcGVydHVyZVZh bHVlPjQyMS8xMDA8L2V4aWY6QXBlcnR1cmVWYWx1ZT4KICAgICAgICAgPGV4aWY6QnJpZ2h0bmVz c1ZhbHVlPjkzMC8xMDA8L2V4aWY6QnJpZ2h0bmVzc1ZhbHVlPgogICAgICAgICA8ZXhpZjpFeHBv c3VyZUJpYXNWYWx1ZT4wLzEwMDwvZXhpZjpFeHBvc3VyZUJpYXNWYWx1ZT4KICAgICAgICAgPGV4 aWY6TWF4QXBlcnR1cmVWYWx1ZT4zMzYvMTAwPC9leGlmOk1heEFwZXJ0dXJlVmFsdWU+CiAgICAg ICAgIDxleGlmOk1ldGVyaW5nTW9kZT41PC9leGlmOk1ldGVyaW5nTW9kZT4KICAgICAgICAgPGV4 aWY6TGlnaHRTb3VyY2U+MDwvZXhpZjpMaWdodFNvdXJjZT4KICAgICAgICAgPGV4aWY6Rmxhc2gg cmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICA8ZXhpZjpGaXJlZD5UcnVlPC9l eGlmOkZpcmVkPgogICAgICAgICAgICA8ZXhpZjpSZXR1cm4+MDwvZXhpZjpSZXR1cm4+CiAgICAg ICAgICAgIDxleGlmOk1vZGU+MTwvZXhpZjpNb2RlPgogICAgICAgICAgICA8ZXhpZjpGdW5jdGlv bj5GYWxzZTwvZXhpZjpGdW5jdGlvbj4KICAgICAgICAgICAgPGV4aWY6UmVkRXllTW9kZT5GYWxz ZTwvZXhpZjpSZWRFeWVNb2RlPgogICAgICAgICA8L2V4aWY6Rmxhc2g+CiAgICAgICAgIDxleGlm OkZvY2FsTGVuZ3RoPjY2MC8xMDA8L2V4aWY6Rm9jYWxMZW5ndGg+CiAgICAgICAgIDxleGlmOkZv Y2FsUGxhbmVYUmVzb2x1dGlvbj43MDkxLzE8L2V4aWY6Rm9jYWxQbGFuZVhSZXNvbHV0aW9uPgog ICAgICAgICA8ZXhpZjpGb2NhbFBsYW5lWVJlc29sdXRpb24+NzA5MS8xPC9leGlmOkZvY2FsUGxh bmVZUmVzb2x1dGlvbj4KICAgICAgICAgPGV4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0PjM8 L2V4aWY6Rm9jYWxQbGFuZVJlc29sdXRpb25Vbml0PgogICAgICAgICA8ZXhpZjpTZW5zaW5nTWV0 aG9kPjI8L2V4aWY6U2Vuc2luZ01ldGhvZD4KICAgICAgICAgPGV4aWY6RmlsZVNvdXJjZT4zPC9l eGlmOkZpbGVTb3VyY2U+CiAgICAgICAgIDxleGlmOlNjZW5lVHlwZT4xPC9leGlmOlNjZW5lVHlw ZT4KICAgICAgICAgPGV4aWY6Q3VzdG9tUmVuZGVyZWQ+MDwvZXhpZjpDdXN0b21SZW5kZXJlZD4K ICAgICAgICAgPGV4aWY6RXhwb3N1cmVNb2RlPjA8L2V4aWY6RXhwb3N1cmVNb2RlPgogICAgICAg ICA8ZXhpZjpXaGl0ZUJhbGFuY2U+MDwvZXhpZjpXaGl0ZUJhbGFuY2U+CiAgICAgICAgIDxleGlm OlNjZW5lQ2FwdHVyZVR5cGU+MDwvZXhpZjpTY2VuZUNhcHR1cmVUeXBlPgogICAgICAgICA8ZXhp ZjpTaGFycG5lc3M+MDwvZXhpZjpTaGFycG5lc3M+CiAgICAgICAgIDxleGlmOlN1YmplY3REaXN0 YW5jZVJhbmdlPjA8L2V4aWY6U3ViamVjdERpc3RhbmNlUmFuZ2U+CiAgICAgICAgIDxleGlmOk5h dGl2ZURpZ2VzdD4zNjg2NCw0MDk2MCw0MDk2MSwzNzEyMSwzNzEyMiw0MDk2Miw0MDk2MywzNzUx MCw0MDk2NCwzNjg2NywzNjg2OCwzMzQzNCwzMzQzNywzNDg1MCwzNDg1MiwzNDg1NSwzNDg1Niwz NzM3NywzNzM3OCwzNzM3OSwzNzM4MCwzNzM4MSwzNzM4MiwzNzM4MywzNzM4NCwzNzM4NSwzNzM4 NiwzNzM5Niw0MTQ4Myw0MTQ4NCw0MTQ4Niw0MTQ4Nyw0MTQ4OCw0MTQ5Miw0MTQ5Myw0MTQ5NSw0 MTcyOCw0MTcyOSw0MTczMCw0MTk4NSw0MTk4Niw0MTk4Nyw0MTk4OCw0MTk4OSw0MTk5MCw0MTk5 MSw0MTk5Miw0MTk5Myw0MTk5NCw0MTk5NSw0MTk5Niw0MjAxNiwwLDIsNCw1LDYsNyw4LDksMTAs MTEsMTIsMTMsMTQsMTUsMTYsMTcsMTgsMjAsMjIsMjMsMjQsMjUsMjYsMjcsMjgsMzA7MDJBMUUz QjREQkY3MzQzQTAxQ0ZFM0YyMjRFOTIwMzU8L2V4aWY6TmF0aXZlRGlnZXN0PgogICAgICA8L3Jk ZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAg ICAgICAgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iPgogICAg ICAgICA8eGFwTU06RG9jdW1lbnRJRD51dWlkOjEwOTVFQTc1ODQ4RUUwMTFCNTgwRkFGRjJFRTdF QjZGPC94YXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eGFwTU06SW5zdGFuY2VJRD51dWlkOjcy QzkxOEQyQ0U5RUUwMTFCQUNDQkMxOTNBQTUwQzY5PC94YXBNTTpJbnN0YW5jZUlEPgogICAgICA8 L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAg ICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8x LjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpDb2xvck1vZGU+MzwvcGhvdG9zaG9wOkNvbG9yTW9k ZT4KICAgICAgICAgPHBob3Rvc2hvcDpJQ0NQcm9maWxlPnNSR0IgSUVDNjE5NjYtMi4xPC9waG90 b3Nob3A6SUNDUHJvZmlsZT4KICAgICAgICAgPHBob3Rvc2hvcDpIaXN0b3J5Lz4KICAgICAgPC9y ZGY6RGVzY3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz7/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAABt bnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA 9tYAAQAAAADTLUhQICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAABFjcHJ0AAABUAAAADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFla AAACGAAAABRnWFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2 dWVkAAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHlyaWdodCAo YykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAASc1JHQiBJRUM2MTk2 Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAA AAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAA AAAAJKAAAA+EAAC2z2Rlc2MAAAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAA FklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz cGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz cGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZp ZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3 aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZp ZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVh cwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQA AAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYA iwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEf ASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLgAusC9QMA AwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYEEwQgBC0EOwRIBFUE YwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3BYYFlgWmBbUFxQXVBeUF9gYG BhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gI CwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpU CmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMN DQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJ ECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MT gxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdB F2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2Mb ihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAV IEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQkl OCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqb Ks8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGww pDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbp NyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE9 4D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpN Ak1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21Uo VXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114Xcle Gl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9 Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBx OnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtj e8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6G cobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5Go khGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3nWSd 0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjEqTepqaoc qo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5tvC3 aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTO xUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHT RNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM 4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXx cvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////7gAO QWRvYmUAZEAAAAAB/9sAhAABAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAgICAgICAgICAgIDAwMDAwMDAwMDAQEBAQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMD AwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwP/wAARCAHCAyADAREAAhEBAxEB/90ABABk /8QBogAAAAYCAwEAAAAAAAAAAAAABwgGBQQJAwoCAQALAQAABgMBAQEAAAAAAAAAAAAGBQQDBwII AQkACgsQAAIBAwQBAwMCAwMDAgYJdQECAwQRBRIGIQcTIgAIMRRBMiMVCVFCFmEkMxdScYEYYpEl Q6Gx8CY0cgoZwdE1J+FTNoLxkqJEVHNFRjdHYyhVVlcassLS4vJkg3SThGWjs8PT4yk4ZvN1Kjk6 SElKWFlaZ2hpanZ3eHl6hYaHiImKlJWWl5iZmqSlpqeoqaq0tba3uLm6xMXGx8jJytTV1tfY2drk 5ebn6Onq9PX29/j5+hEAAgEDAgQEAwUEBAQGBgVtAQIDEQQhEgUxBgAiE0FRBzJhFHEIQoEjkRVS oWIWMwmxJMHRQ3LwF+GCNCWSUxhjRPGisiY1GVQ2RWQnCnODk0Z0wtLi8lVldVY3hIWjs8PT4/Mp GpSktMTU5PSVpbXF1eX1KEdXZjh2hpamtsbW5vZnd4eXp7fH1+f3SFhoeIiYqLjI2Oj4OUlZaXmJ mam5ydnp+So6SlpqeoqaqrrK2ur6/9oADAMBAAIRAxEAPwDek8KoCUYO9jcC1gF51cn6n/iPZv8A lnp0ADPWJw3pW72v6dSixt+j829XPv3VCSSOuayOhOk+k3uT6eTflNP1J9uMvmOHXgCfLHXF5GNr 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 OksRQ4p6das742gydRamrWcTOqhAtpIwCPEfUt/GCvPHsMeAsKakWrf6vn1iNEsdxerRyEYnHn8O Py/Lh1xXbUEkkkRqCjDQCvpI8gB1qvKjj3vx0iq1KV/1fw9PiykWRAZ6oOJC54fb69Yots0jMiLk Y4kJCgDTIPXrEYtqYeYiO/4Ht1S1pbBrKMjRxH2kDzr1SFYXt1uLm8UMxxg+tPI8fl8urt/5JXbt T1J8lMp1yna21erIO8tpna+L3Bu/aVJurA5/emCyi5jaO2ZjNuLb0GAyOXirMhFRVD1eioqvHTge SaIA22G9haWMJHR3pXJ8vtHqT6dTr7LbzDttxPt09NM9dJ9SM07a0NCaZzwPp1tO7l+OXbm5t57j 3huztnrfOYrcfUr9Sbl2ruT48Q5La2V2sdy1m5p1zWNyXZbUU1OZ6uQOZZLCNvxpBAydPCEjXFyS jUzSnl6DrJMvawoyTW2pyKcT/g4efWo78vOguleyvl5tH45fCbCdf773Xksum29ybo6r27ujZXXf 97aqZ48hhaOjqezN74DObd2bRqtXkcnTU9OsNQjxU80pSUeyF/BvbpLaC6YKK5oSRip7Wp6U4/P0 6xv5lg2/mjf4OWOVLFPDdv8AGZVJCY0sO0lK+GctooakBSTqHV23xp/l6ZfD9c/N34Nt3JgqfrIb x6zw258tF1DBkt0ZnObj6C6vzrb8xM2T3zHQ7c3BSVsMJi001RE9TTmq0IZHiBnHas0clu09TQeX z4cf8vU9nZbFdgtNtmgrD4RUnUanghODhvs889ATXf8ACc7bxrn+w+T1V/CnmjLNkes1iy8kYjj8 hkXHbo/hj1MxF9SeNFvwPbZ2mGKSqXFR/pD/ANB9RYfZTk+8d5mtGWSv+/JcH8pQM/Z9vQYfIT4f dM/ye9vf7MZsfu+PsT5EbkXHbf6A2P270p1nv7Hbbz+I1f3p33tmnqZ6eu2xQY6gr1+/y8wraqKX 7SkpnV5WDp7ya02e28O3iAuieILAnhxqWXHkKDiaV8nt3flf2y2iNdt2tV3SYERq0jyEsooG79fa oPeVIqCFNSVB1u947w3BvvdG4t770zeT3RurdmeyO5tzbiy9QarK5nO5uulyeUyldKyoaqprqqUy MVCqF/zaIi6PZHAUaXWI6FuBqDwrX/UeHkOsQ7m8vLvcZ9wlf/G5GLEkA1J/LSOPoBU+pFDufy5u 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 --90e6ba6e871043704e04a7dcde64-- From sgi-linux-xfs@lo.gmane.org Tue Jul 12 08:40:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6CDeGjD035345 for ; Tue, 12 Jul 2011 08:40:18 -0500 X-ASG-Debug-ID: 1310478013-7e6c03960000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lo.gmane.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DF011167E5AC for ; Tue, 12 Jul 2011 06:40:13 -0700 (PDT) Received: from lo.gmane.org (lo.gmane.org [80.91.229.12]) by cuda.sgi.com with ESMTP id EGl3Jig9oHpA6fLJ for ; Tue, 12 Jul 2011 06:40:13 -0700 (PDT) Received: from list by lo.gmane.org with local (Exim 4.69) (envelope-from ) id 1QgdC2-0008MN-Uo for linux-xfs@oss.sgi.com; Tue, 12 Jul 2011 15:40:06 +0200 Received: from xpc1.ast.cam.ac.uk ([131.111.68.219]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 12 Jul 2011 15:40:06 +0200 Received: from jeremy by xpc1.ast.cam.ac.uk with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Tue, 12 Jul 2011 15:40:06 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: linux-xfs@oss.sgi.com From: Jeremy Sanders X-ASG-Orig-Subj: kernel bug on 2.6.38.8 Subject: kernel bug on 2.6.38.8 Followup-To: gmane.comp.file-systems.xfs.general Date: Tue, 12 Jul 2011 14:37:27 +0100 Lines: 95 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet@dough.gmane.org X-Gmane-NNTP-Posting-Host: xpc1.ast.cam.ac.uk User-Agent: KNode/4.4.11 X-Barracuda-Connect: lo.gmane.org[80.91.229.12] X-Barracuda-Start-Time: 1310478014 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68709 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi - I built the fedora kernel kernel-2.6.38.8-35.fc15.src.rpm on Fedora 14, and have hit this bug while trying to copy files from an XFS partition: [74755.600382] kernel BUG at fs/xfs/linux-2.6/xfs_aops.c:85! [74755.600545] invalid opcode: 0000 [#1] SMP [74755.600707] last sysfs file: /sys/devices/system/cpu/cpu1/cache/index2/shared_cpu_map [74755.601020] CPU 0 [74755.601020] Modules linked in: btrfs nfs fscache nfsd lockd nfs_acl auth_rpcgss hwmon_vid sunrpc ipv6 zlib_deflate libcrc32c xfs exportfs uinput ppdev microcode k8temp edac_core edac_mce_amd forcedeth snd_intel8x0 snd_ac97_codec ac97_bus snd_seq snd_seq_device snd_pcm snd_timer snd soundcore snd_page_alloc nv_tco i2c_nforce2 i2c_core raid456 async_raid6_recov async_pq raid6_pq async_xor xor async_memcpy async_tx linear parport_pc parport firewire_ohci firewire_core crc_itu_t sata_nv pata_acpi ata_generic pata_amd 3w_9xxx [last unloaded: btrfs] [74755.601020] [74755.601020] Pid: 11102, comm: flush-9:0 Not tainted 2.6.38.8-35.fc14.x86_64 #1 WinFast C51GM03/C51MCP51 [74755.601020] RIP: 0010:[] [] xfs_count_page_state+0x1d/0x55 [xfs] [74755.601020] RSP: 0018:ffff8800007f39b0 EFLAGS: 00010246 [74755.601020] RAX: 002000000002002d RBX: ffffea0001318b88 RCX: 0000000000000010 [74755.601020] RDX: ffff8800007f3a38 RSI: ffff8800007f3a3c RDI: ffffea0001318b88 [74755.601020] RBP: ffff8800007f39b0 R08: 0000000000000000 R09: 0000000000000008 [74755.601020] R10: 00000000000169dc R11: 0000000000016990 R12: ffff88001d6dcd90 [74755.601020] R13: ffff88005b804590 R14: ffffffffffffffff R15: 0000000000000000 [74755.601020] FS: 00007fe8f530b720(0000) GS:ffff88005fc00000(0000) knlGS:0000000000000000 [74755.601020] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [74755.601020] CR2: 00007fc91f391000 CR3: 00000000589c1000 CR4: 00000000000006f0 [74755.601020] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [74755.601020] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [74755.601020] Process flush-9:0 (pid: 11102, threadinfo ffff8800007f2000, task ffff88005b804590) [74755.601020] Stack: [74755.601020] ffff8800007f3a70 ffffffffa0255822 ffff8800007f3a10 ffffffff8123ff80 [74755.601020] 000000000003ffff 0000000000018001 0000000000040000 ffff8800007f3b10 [74755.601020] ffff8800007f3d40 0000000000000000 000000000000000e ffff88001d6dcee0 [74755.601020] Call Trace: [74755.601020] [] xfs_vm_writepage+0x8a/0x404 [xfs] [74755.601020] [] ? radix_tree_gang_lookup_tag_slot+0x81/0xa2 [74755.601020] [] ? find_get_pages_tag+0x6f/0xd5 [74755.601020] [] __writepage+0x17/0x30 [74755.601020] [] write_cache_pages+0x243/0x36a [74755.601020] [] ? _raw_spin_unlock_irqrestore+0x17/0x19 [74755.601020] [] ? __writepage+0x0/0x30 [74755.601020] [] ? xfs_bdwrite+0x5f/0x67 [xfs] [74755.601020] [] ? xfs_iflush+0x181/0x1c1 [xfs] [74755.608512] [] ? xfs_bdwrite+0x5f/0x67 [xfs] [74755.608512] [] generic_writepages+0x24/0x26 [74755.608512] [] xfs_vm_writepages+0x4d/0x56 [xfs] [74755.608512] [] do_writepages+0x21/0x2a [74755.608512] [] writeback_single_inode+0x9c/0x19b [74755.608512] [] writeback_sb_inodes+0xa1/0x12b [74755.608512] [] writeback_inodes_wb+0x163/0x175 [74755.608512] [] wb_writeback+0x24f/0x368 [74755.608512] [] wb_do_writeback+0x183/0x19e [74755.608512] [] bdi_writeback_thread+0x88/0x205 [74755.608512] [] ? bdi_writeback_thread+0x0/0x205 [74755.608512] [] kthread+0x82/0x8a [74755.608512] [] kernel_thread_helper+0x4/0x10 [74755.608512] [] ? kthread+0x0/0x8a [74755.608512] [] ? kernel_thread_helper+0x0/0x10 [74755.608512] Code: e1 e1 e0 48 83 c4 38 5b 41 5c 41 5d c9 c3 55 48 89 e5 66 66 66 66 90 c7 02 00 00 00 00 c7 06 00 00 00 00 48 8b 07 f6 c4 08 75 02 <0f> 0b 48 8b 4f 10 48 89 c8 48 8b 38 f7 c7 00 10 00 00 74 08 c7 [74755.608512] RIP [] xfs_count_page_state+0x1d/0x55 [xfs] [74755.608512] RSP [74755.616787] ---[ end trace 0f1bab8cfc7bd97a ]--- This happened a second time and now the machine has locked up. The machine is x86-64 with 1.5GB or RAM. I'm currently trying out btrfs, so it was a suprise to get an xfs crash (copying from xfs to btrfs). Is this problem fixed or is it new? If I go back to 2.6.35 will I avoid it? Thanks Jeremy From cr2005@u-club.de Tue Jul 12 11:05:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6CG56E8040700 for ; Tue, 12 Jul 2011 11:05:06 -0500 X-ASG-Debug-ID: 1310486704-517703880000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.uscreen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31AE563C0D for ; Tue, 12 Jul 2011 09:05:04 -0700 (PDT) Received: from mail.uscreen.net (mail.uscreen.net [62.67.233.10]) by cuda.sgi.com with ESMTP id 8ku77L4dLgmcGG3D for ; Tue, 12 Jul 2011 09:05:04 -0700 (PDT) Received: from mail.uscreen.net (unknown [127.0.0.1]) by mail.uscreen.net (Postfix) with ESMTP id 9903D137C0D3 for ; Tue, 12 Jul 2011 18:05:03 +0200 (CEST) Received: from [192.168.23.88] (unknown [78.94.64.127]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.uscreen.net (Postfix) with ESMTP id 4A7C7137C0D1 for ; Tue, 12 Jul 2011 18:05:03 +0200 (CEST) Message-ID: <4E1C70AD.1010101@u-club.de> Date: Tue, 12 Jul 2011 18:05:01 +0200 From: Christoph User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.16) Gecko/20110702 Icedove/3.0.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: ClamAV using ClamSMTP X-Barracuda-Connect: mail.uscreen.net[62.67.233.10] X-Barracuda-Start-Time: 1310486705 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68718 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Status: Clean Hi! I'd like you to have a look into this issue: pm-hibernate locks up when using xfs while "Preallocating image memory". https://bugzilla.kernel.org/show_bug.cgi?id=33622 I got at least this backtrace (2.6.39.3) tia chris SysRq : Show Blocked State pm-hibernate D 0000000000000000 0 3638 3637 0x00000000 ffff8800017bf918 0000000000000082 ffff8800017be010 ffff880000000000 ffff8800017be010 ffff88000b8a6170 0000000000013900 ffff8800017bffd8 ffff8800017bffd8 0000000000013900 ffffffff8148b020 ffff88000b8a6170 Call Trace: [] schedule_timeout+0x22/0xbb [] wait_for_common+0xcb/0x148 [] ? try_to_wake_up+0x18c/0x18c [] ? down_write+0x2d/0x31 [] wait_for_completion+0x18/0x1a [] xfs_reclaim_inode+0x74/0x258 [xfs] [] xfs_reclaim_inodes_ag+0x195/0x264 [xfs] [] xfs_reclaim_inode_shrink+0x52/0x90 [xfs] [] shrink_slab+0xdb/0x151 [] do_try_to_free_pages+0x204/0x39a [] ? apic_timer_interrupt+0xe/0x20 [] shrink_all_memory+0x8f/0xa8 [] ? next_online_pgdat+0x20/0x41 [] hibernate_preallocate_memory+0x1c4/0x30f [] ? kobject_put+0x47/0x4b [] hibernation_snapshot+0x45/0x281 [] hibernate+0xd1/0x1b8 [] state_store+0x57/0xce [] kobj_attr_store+0x17/0x19 [] sysfs_write_file+0xfc/0x138 [] vfs_write+0xa9/0x105 [] sys_write+0x45/0x6c [] system_call_fastpath+0x16/0x1b kworker/0:2 D 0000000000000000 0 379 2 0x00000000 ffff88000ea99b90 0000000000000046 ffff88000b8ff840 0000000000000000 ffff88000ea98010 ffff88000c319ac0 0000000000013900 ffff88000ea99fd8 ffff88000ea99fd8 0000000000013900 ffffffff8148b020 ffff88000c319ac0 Call Trace: [] __mutex_lock_common+0x12e/0x195 [] __mutex_lock_slowpath+0x14/0x16 [] mutex_lock+0x1e/0x38 [] xfs_reclaim_inodes_ag+0x7a/0x264 [xfs] [] ? xfs_reclaim_inodes+0x1a/0x1a [xfs] [] xfs_reclaim_inodes+0x18/0x1a [xfs] [] xfs_reclaim_worker+0x1d/0x29 [xfs] [] process_one_work+0x1de/0x2ec [] worker_thread+0x13d/0x262 [] ? manage_workers+0x194/0x194 [] kthread+0x7d/0x85 [] kernel_thread_helper+0x4/0x10 [] ? kthread_worker_fn+0x148/0x148 [] ? gs_change+0x13/0x13 From sandeen@redhat.com Tue Jul 12 17:03:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6CM3gFc052669 for ; Tue, 12 Jul 2011 17:03:42 -0500 X-ASG-Debug-ID: 1310508220-594002b50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0D82F65428 for ; Tue, 12 Jul 2011 15:03:40 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id YN98fLSudLFgWC7s for ; Tue, 12 Jul 2011 15:03:40 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6CM3eT1017492 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 12 Jul 2011 18:03:40 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6CM3cli031641 (version=TLSv1/SSLv3 cipher=DHE-RSA-CAMELLIA256-SHA bits=256 verify=NO) for ; Tue, 12 Jul 2011 18:03:40 -0400 Message-ID: <4E1CC4BA.1010107@redhat.com> Date: Tue, 12 Jul 2011 17:03:38 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: [PATCH] stable: restart busy extent search after node removal Subject: [PATCH] stable: restart busy extent search after node removal Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1310508222 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Sending this for review prior to stable submission... A user on #xfs reported that a log replay was oopsing in __rb_rotate_left() with a null pointer deref. I traced this down to the fact that in xfs_alloc_busy_insert(), we erased a node with rb_erase() when the new node overlapped, but left it specified as the parent node for the new insertion. So when we try to insert a new node with an erased node as its parent, obviously things go very wrong. Upstream, 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking actually fixed this, but as part of a much larger change. Here's the relevant bit: * We also need to restart the busy extent search from the * tree root, because erasing the node can rearrange the * tree topology. */ rb_erase(&busyp->rb_node, &pag->pagb_tree); busyp->length = 0; return false; We can do essentially the same thing to older codebases by restarting the search after the erase. This should apply to .35 through .39, and was tested on .39 with the oopsing replay reproducer. Signed-off-by: Eric Sandeen --- Index: linux-2.6/fs/xfs/xfs_alloc.c =================================================================== --- linux-2.6.orig/fs/xfs/xfs_alloc.c +++ linux-2.6/fs/xfs/xfs_alloc.c @@ -2664,6 +2664,12 @@ restart: new->bno + new->length) - min(busyp->bno, new->bno); new->bno = min(busyp->bno, new->bno); + /* + * Start the search over from the tree root, because + * erasing the node can rearrange the tree topology. + */ + spin_unlock(&pag->pagb_lock); + goto restart; } else busyp = NULL; From david@fromorbit.com Tue Jul 12 19:03:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D03dJq056629 for ; Tue, 12 Jul 2011 19:03:40 -0500 X-ASG-Debug-ID: 1310515415-19f402f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F1C3A1BA1C4C for ; Tue, 12 Jul 2011 17:03:36 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id aG1QENxtJNhrRAgL for ; Tue, 12 Jul 2011 17:03:36 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgsDAB3gHE55LCkBgWdsb2JhbABTpzMVAQEWJiXLOw6GLASbBYg5 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 13 Jul 2011 09:33:34 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgmvM-0005jc-4m; Wed, 13 Jul 2011 10:03:32 +1000 Date: Wed, 13 Jul 2011 10:03:32 +1000 From: Dave Chinner To: Christoph Cc: xfs@oss.sgi.com, rjw@sisk.pl X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Message-ID: <20110713000332.GM23038@dastard> References: <4E1C70AD.1010101@u-club.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E1C70AD.1010101@u-club.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310515418 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68750 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 12, 2011 at 06:05:01PM +0200, Christoph wrote: > Hi! > > I'd like you to have a look into this issue: > > pm-hibernate locks up when using xfs while "Preallocating image memory". > > https://bugzilla.kernel.org/show_bug.cgi?id=33622 > > I got at least this backtrace (2.6.39.3) > > tia > > chris > > > > SysRq : Show Blocked State > > pm-hibernate D 0000000000000000 0 3638 3637 0x00000000 > ffff8800017bf918 0000000000000082 ffff8800017be010 ffff880000000000 > ffff8800017be010 ffff88000b8a6170 0000000000013900 ffff8800017bffd8 > ffff8800017bffd8 0000000000013900 ffffffff8148b020 ffff88000b8a6170 > Call Trace: > [] schedule_timeout+0x22/0xbb > [] wait_for_common+0xcb/0x148 > [] ? try_to_wake_up+0x18c/0x18c > [] ? down_write+0x2d/0x31 > [] wait_for_completion+0x18/0x1a > [] xfs_reclaim_inode+0x74/0x258 [xfs] > [] xfs_reclaim_inodes_ag+0x195/0x264 [xfs] > [] xfs_reclaim_inode_shrink+0x52/0x90 [xfs] > [] shrink_slab+0xdb/0x151 > [] do_try_to_free_pages+0x204/0x39a > [] ? apic_timer_interrupt+0xe/0x20 > [] shrink_all_memory+0x8f/0xa8 > [] ? next_online_pgdat+0x20/0x41 > [] hibernate_preallocate_memory+0x1c4/0x30f > [] ? kobject_put+0x47/0x4b > [] hibernation_snapshot+0x45/0x281 > [] hibernate+0xd1/0x1b8 > [] state_store+0x57/0xce > [] kobj_attr_store+0x17/0x19 > [] sysfs_write_file+0xfc/0x138 > [] vfs_write+0xa9/0x105 > [] sys_write+0x45/0x6c > [] system_call_fastpath+0x16/0x1b It's waiting for IO completion, and holding an AG scan lock. And IO completion requires a workqueue to run. Just FYI, this process of inode reclaim can dirty the filesystem, long after hibernate have assumed that it is clean due to the sys_sync() call you do after freezing the processes. I pointed out this flaw in using sync to write dirty data prior to hibernate a couple of years ago. Anyway, it's a good thing that XFS doesn't use freezable work queues, otherwise it would hang on every hibernate. Perhaps I should do that to force hibernate to do things properly in filesystems land. However, it is entirely possible that something else that XFS relies on for IO completion has been put to sleep by this point. /me finds the smoking cannon: [ 648.794455] xfsbufd/sda3 D 0000000000000000 0 192 2 0x00000000 [ 648.794455] ffff88003720be00 0000000000000046 ffff88003720bd90 ffffffff00000000 [ 648.794455] ffff88003720a010 ffff880056bc3580 0000000000013900 ffff88003720bfd8 [ 648.794455] ffff88003720bfd8 0000000000013900 ffffffff8148b020 ffff880056bc3580 [ 648.794455] Call Trace: [ 648.794455] [] refrigerator+0xbd/0xd3 [ 648.794455] [] xfsbufd+0x93/0x14d [xfs] [ 648.794455] [] ? xfs_free_buftarg+0x4c/0x4c [xfs] [ 648.794455] [] kthread+0x7d/0x85 [ 648.794455] [] kernel_thread_helper+0x4/0x10 [ 648.794455] [] ? kthread_worker_fn+0x148/0x148 [ 648.794455] [] ? gs_change+0x13/0x13 The xfsbufd, responsible for pushing out dirty metadata, has been been frozen. sys_sync() does not push out dirty metadata because it is already on stable storage in the journal. If the flush lock is already held on the inode, then inode reclaim will wait for the xfsbufd to flush the backing buffer because reclaim can't do it directly. And hibernate has already frozen the xfsbufd. IOWs, what hibernate does is: freeze_processes() sys_sync() allocate a large amount of memory Freezing the processes causes parts of filesystems to be put in the fridge, which means there is no guarantee that sys_sync() actually does what it is supposed to. As it is, sys_sync() really only guarantees file data is clean in memory - metadata does not need to be clean as long s it has been journalled and the journal is safe on disk. Further, allocating memory can cause memory reclaim to enter the filesystem and try to free memory held by the filesystem. In XFS (at least) this can cause the filesystem to issue tranactions and metadata IO to clean the dirty metadata to enable it to be reclaimed. So hibernate is effectively guaranteed to dirty the filesystem after it has frozen all the worker threads the filesystem might rely on. Also, by this point kswapd has already been frozen, so hibernate is relying totally on direct memory reclaim to free up the memory it requires. I'm not sure that's a good idea. IOWs, hibernate is still broken by design - and broken in exactly the way that was pointed out a couple of years ago by myself and others in the filesystem world: sys_sync() does not quiesce or guarantee a clean filesystem in memory after it completes. There is a solution to this, and it already exists - it's called freezing the filesystem. Effectively hibernate needs to allocate memory before it freezes kernel/filesystem worker threads: freeze_userspace_processes() // just to clean the page cache quickly sys_sync() // optionally to free page/inode/dentry caches: iterate_supers(drop_pagecache_sb, NULL); drop_slab() allocate a large amount of memory // Now quiesce the filesystems and clean remaining metadata iterate_supers(freeze_super, NULL); freeze_remaining_processes() This guarantees that filesystems are still working when memory reclaim comes along to free memory for the hibernate image, and that once it is allocated that filesystems will not be changed until thawed on the hibernate wakeup. So, like I said a couple of years ago: fix hibernate to quiesce filesystems properly, and the hibernate will be much more reliable and robust and less likely to break randomly in the future. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 12 19:12:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D0CtBh056845 for ; Tue, 12 Jul 2011 19:12:56 -0500 X-ASG-Debug-ID: 1310515973-769100d60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2E24212C1C3A for ; Tue, 12 Jul 2011 17:12:53 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id KxbrGFjqIojAsfrf for ; Tue, 12 Jul 2011 17:12:53 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgsDAL7hHE55LCkBgWdsb2JhbABTpzMVAQEWJiXLRA6GLASjPg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 13 Jul 2011 09:42:52 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qgn46-0005kU-II; Wed, 13 Jul 2011 10:12:34 +1000 Date: Wed, 13 Jul 2011 10:12:34 +1000 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] stable: restart busy extent search after node removal Subject: Re: [PATCH] stable: restart busy extent search after node removal Message-ID: <20110713001234.GN23038@dastard> References: <4E1CC4BA.1010107@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E1CC4BA.1010107@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310515975 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68751 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 12, 2011 at 05:03:38PM -0500, Eric Sandeen wrote: > Sending this for review prior to stable submission... > > A user on #xfs reported that a log replay was oopsing in > __rb_rotate_left() with a null pointer deref. > > I traced this down to the fact that in xfs_alloc_busy_insert(), > we erased a node with rb_erase() when the new node overlapped, > but left it specified as the parent node for the new insertion. > > So when we try to insert a new node with an erased node as > its parent, obviously things go very wrong. > > Upstream, > 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking > actually fixed this, but as part of a much larger change. Here's > the relevant bit: > > * We also need to restart the busy extent search from the > * tree root, because erasing the node can rearrange the > * tree topology. > */ > rb_erase(&busyp->rb_node, &pag->pagb_tree); > busyp->length = 0; > return false; > > We can do essentially the same thing to older codebases by restarting > the search after the erase. > > This should apply to .35 through .39, and was tested on .39 > with the oopsing replay reproducer. > > Signed-off-by: Eric Sandeen > --- > > Index: linux-2.6/fs/xfs/xfs_alloc.c > =================================================================== > --- linux-2.6.orig/fs/xfs/xfs_alloc.c > +++ linux-2.6/fs/xfs/xfs_alloc.c > @@ -2664,6 +2664,12 @@ restart: > new->bno + new->length) - > min(busyp->bno, new->bno); > new->bno = min(busyp->bno, new->bno); > + /* > + * Start the search over from the tree root, because > + * erasing the node can rearrange the tree topology. > + */ > + spin_unlock(&pag->pagb_lock); > + goto restart; > } else > busyp = NULL; Looks good. I'm guessing that the only case I was able to hit during testing of this code originally was the "overlap with exact start block match", otherwise I would have seen this. I'm not sure that there really is much we can do to improve the test coverage of this code, though. Hell, just measuring our test coverage so we know what we aren't testing would probably be a good start. :/ Reviewed-by: Dave Chinner Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@redhat.com Tue Jul 12 19:14:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D0Ebha056897 for ; Tue, 12 Jul 2011 19:14:37 -0500 X-ASG-Debug-ID: 1310516076-28bf03ab0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 71EBE68386 for ; Tue, 12 Jul 2011 17:14:36 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Ng1fZsubZACP5MXZ for ; Tue, 12 Jul 2011 17:14:36 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6D0EK4K015909 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Tue, 12 Jul 2011 20:14:20 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p6D0EJER022493 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 12 Jul 2011 20:14:20 -0400 Message-ID: <4E1CE35B.4010404@redhat.com> Date: Tue, 12 Jul 2011 19:14:19 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] stable: restart busy extent search after node removal Subject: Re: [PATCH] stable: restart busy extent search after node removal References: <4E1CC4BA.1010107@redhat.com> <20110713001234.GN23038@dastard> In-Reply-To: <20110713001234.GN23038@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1310516077 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/12/11 7:12 PM, Dave Chinner wrote: > On Tue, Jul 12, 2011 at 05:03:38PM -0500, Eric Sandeen wrote: >> Sending this for review prior to stable submission... >> >> A user on #xfs reported that a log replay was oopsing in >> __rb_rotate_left() with a null pointer deref. >> >> I traced this down to the fact that in xfs_alloc_busy_insert(), >> we erased a node with rb_erase() when the new node overlapped, >> but left it specified as the parent node for the new insertion. >> >> So when we try to insert a new node with an erased node as >> its parent, obviously things go very wrong. >> >> Upstream, >> 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking >> actually fixed this, but as part of a much larger change. Here's >> the relevant bit: >> >> * We also need to restart the busy extent search from the >> * tree root, because erasing the node can rearrange the >> * tree topology. >> */ >> rb_erase(&busyp->rb_node, &pag->pagb_tree); >> busyp->length = 0; >> return false; >> >> We can do essentially the same thing to older codebases by restarting >> the search after the erase. >> >> This should apply to .35 through .39, and was tested on .39 >> with the oopsing replay reproducer. >> >> Signed-off-by: Eric Sandeen >> --- >> >> Index: linux-2.6/fs/xfs/xfs_alloc.c >> =================================================================== >> --- linux-2.6.orig/fs/xfs/xfs_alloc.c >> +++ linux-2.6/fs/xfs/xfs_alloc.c >> @@ -2664,6 +2664,12 @@ restart: >> new->bno + new->length) - >> min(busyp->bno, new->bno); >> new->bno = min(busyp->bno, new->bno); >> + /* >> + * Start the search over from the tree root, because >> + * erasing the node can rearrange the tree topology. >> + */ >> + spin_unlock(&pag->pagb_lock); >> + goto restart; >> } else >> busyp = NULL; > > Looks good. > > I'm guessing that the only case I was able to hit during testing of > this code originally was the "overlap with exact start block match", > otherwise I would have seen this. I'm not sure that there really is > much we can do to improve the test coverage of this code, though. > Hell, just measuring our test coverage so we know what we aren't > testing would probably be a good start. :/ Apparently the original oops, and the subsequent replay oopses, were on a filesystem VERY busy with torrents. Might be a testcase ;) > Reviewed-by: Dave Chinner Thanks, -Eric > > Cheers, > > Dave. From david@fromorbit.com Tue Jul 12 19:20:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D0KQDS057065 for ; Tue, 12 Jul 2011 19:20:26 -0500 X-ASG-Debug-ID: 1310516424-19eb03660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CF20D17BB838 for ; Tue, 12 Jul 2011 17:20:24 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id sphdx5tYgsRGtgqp for ; Tue, 12 Jul 2011 17:20:24 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgsDAL7hHE55LCkBgWdsb2JhbABTpzMVAQEWJiXLRA6GLASjPg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 13 Jul 2011 09:50:24 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgnBe-0005l8-JM; Wed, 13 Jul 2011 10:20:22 +1000 Date: Wed, 13 Jul 2011 10:20:22 +1000 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss X-ASG-Orig-Subj: Re: [PATCH] stable: restart busy extent search after node removal Subject: Re: [PATCH] stable: restart busy extent search after node removal Message-ID: <20110713002022.GO23038@dastard> References: <4E1CC4BA.1010107@redhat.com> <20110713001234.GN23038@dastard> <4E1CE35B.4010404@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E1CE35B.4010404@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310516425 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68752 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 12, 2011 at 07:14:19PM -0500, Eric Sandeen wrote: > On 7/12/11 7:12 PM, Dave Chinner wrote: > > On Tue, Jul 12, 2011 at 05:03:38PM -0500, Eric Sandeen wrote: > >> Sending this for review prior to stable submission... > >> > >> A user on #xfs reported that a log replay was oopsing in > >> __rb_rotate_left() with a null pointer deref. > >> > >> I traced this down to the fact that in xfs_alloc_busy_insert(), > >> we erased a node with rb_erase() when the new node overlapped, > >> but left it specified as the parent node for the new insertion. > >> > >> So when we try to insert a new node with an erased node as > >> its parent, obviously things go very wrong. > >> > >> Upstream, > >> 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking > >> actually fixed this, but as part of a much larger change. Here's > >> the relevant bit: > >> > >> * We also need to restart the busy extent search from the > >> * tree root, because erasing the node can rearrange the > >> * tree topology. > >> */ > >> rb_erase(&busyp->rb_node, &pag->pagb_tree); > >> busyp->length = 0; > >> return false; > >> > >> We can do essentially the same thing to older codebases by restarting > >> the search after the erase. > >> > >> This should apply to .35 through .39, and was tested on .39 > >> with the oopsing replay reproducer. > >> > >> Signed-off-by: Eric Sandeen > >> --- > >> > >> Index: linux-2.6/fs/xfs/xfs_alloc.c > >> =================================================================== > >> --- linux-2.6.orig/fs/xfs/xfs_alloc.c > >> +++ linux-2.6/fs/xfs/xfs_alloc.c > >> @@ -2664,6 +2664,12 @@ restart: > >> new->bno + new->length) - > >> min(busyp->bno, new->bno); > >> new->bno = min(busyp->bno, new->bno); > >> + /* > >> + * Start the search over from the tree root, because > >> + * erasing the node can rearrange the tree topology. > >> + */ > >> + spin_unlock(&pag->pagb_lock); > >> + goto restart; > >> } else > >> busyp = NULL; > > > > Looks good. > > > > I'm guessing that the only case I was able to hit during testing of > > this code originally was the "overlap with exact start block match", > > otherwise I would have seen this. I'm not sure that there really is > > much we can do to improve the test coverage of this code, though. > > Hell, just measuring our test coverage so we know what we aren't > > testing would probably be a good start. :/ > > Apparently the original oops, and the subsequent replay oopses, > were on a filesystem VERY busy with torrents. > > Might be a testcase ;) That just means large files. And fragmentation levels are effectively dependent on whether the torrent client uses preallocation or not. Just creating a set of large fragmented file using preallocation, shutting the filesystem down in the middle of it and then doing log replay might do the trick... Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Tue Jul 12 20:27:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D1RRSh059264 for ; Tue, 12 Jul 2011 20:27:27 -0500 X-ASG-Debug-ID: 1310520445-426a01cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 668EB1E6006D for ; Tue, 12 Jul 2011 18:27:26 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 3TY5WOxZQvA8Or66 for ; Tue, 12 Jul 2011 18:27:26 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 801944964600; Tue, 12 Jul 2011 20:27:25 -0500 (CDT) Message-ID: <4E1CF47D.7080909@sandeen.net> Date: Tue, 12 Jul 2011 20:27:25 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: Eric Sandeen , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] stable: restart busy extent search after node removal Subject: Re: [PATCH] stable: restart busy extent search after node removal References: <4E1CC4BA.1010107@redhat.com> <20110713001234.GN23038@dastard> <4E1CE35B.4010404@redhat.com> <20110713002022.GO23038@dastard> In-Reply-To: <20110713002022.GO23038@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310520446 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68756 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/12/11 7:20 PM, Dave Chinner wrote: > On Tue, Jul 12, 2011 at 07:14:19PM -0500, Eric Sandeen wrote: >> On 7/12/11 7:12 PM, Dave Chinner wrote: >>> On Tue, Jul 12, 2011 at 05:03:38PM -0500, Eric Sandeen wrote: >>>> Sending this for review prior to stable submission... >>>> >>>> A user on #xfs reported that a log replay was oopsing in >>>> __rb_rotate_left() with a null pointer deref. >>>> >>>> I traced this down to the fact that in xfs_alloc_busy_insert(), >>>> we erased a node with rb_erase() when the new node overlapped, >>>> but left it specified as the parent node for the new insertion. >>>> >>>> So when we try to insert a new node with an erased node as >>>> its parent, obviously things go very wrong. >>>> >>>> Upstream, >>>> 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking >>>> actually fixed this, but as part of a much larger change. Here's >>>> the relevant bit: >>>> >>>> * We also need to restart the busy extent search from the >>>> * tree root, because erasing the node can rearrange the >>>> * tree topology. >>>> */ >>>> rb_erase(&busyp->rb_node, &pag->pagb_tree); >>>> busyp->length = 0; >>>> return false; >>>> >>>> We can do essentially the same thing to older codebases by restarting >>>> the search after the erase. >>>> >>>> This should apply to .35 through .39, and was tested on .39 >>>> with the oopsing replay reproducer. >>>> >>>> Signed-off-by: Eric Sandeen >>>> --- >>>> >>>> Index: linux-2.6/fs/xfs/xfs_alloc.c >>>> =================================================================== >>>> --- linux-2.6.orig/fs/xfs/xfs_alloc.c >>>> +++ linux-2.6/fs/xfs/xfs_alloc.c >>>> @@ -2664,6 +2664,12 @@ restart: >>>> new->bno + new->length) - >>>> min(busyp->bno, new->bno); >>>> new->bno = min(busyp->bno, new->bno); >>>> + /* >>>> + * Start the search over from the tree root, because >>>> + * erasing the node can rearrange the tree topology. >>>> + */ >>>> + spin_unlock(&pag->pagb_lock); >>>> + goto restart; >>>> } else >>>> busyp = NULL; >>> >>> Looks good. >>> >>> I'm guessing that the only case I was able to hit during testing of >>> this code originally was the "overlap with exact start block match", >>> otherwise I would have seen this. I'm not sure that there really is >>> much we can do to improve the test coverage of this code, though. >>> Hell, just measuring our test coverage so we know what we aren't >>> testing would probably be a good start. :/ >> >> Apparently the original oops, and the subsequent replay oopses, >> were on a filesystem VERY busy with torrents. >> >> Might be a testcase ;) > > That just means large files. And fragmentation levels are > effectively dependent on whether the torrent client uses > preallocation or not. Just creating a set of large fragmented file > using preallocation, shutting the filesystem down in the middle > of it and then doing log replay might do the trick... well yeah, my point was, it was in fact badly fragmented. To quote my favorite meaningless xfs_db statistic, actual 29700140, ideal 185230, fragmentation factor 99.38% I guess that's "only" 160 extents per file. But one of the 2.2G files had 44,000 extents, as an example. I am guessing the client did not preallocate. :) -Eric > Cheers, > > Dave. From david@fromorbit.com Wed Jul 13 01:49:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D6nf6B070880 for ; Wed, 13 Jul 2011 01:49:42 -0500 X-ASG-Debug-ID: 1310539779-7e3701450000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D659CEB1B23 for ; Tue, 12 Jul 2011 23:49:39 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id FPiQDmHQUBJGSxRy for ; Tue, 12 Jul 2011 23:49:39 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AowDAGw8HU55LCkBgWdsb2JhbABTpzgVAQEWJiXLfQ6GLASbBog5 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 13 Jul 2011 16:19:37 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgtGK-0006JA-4W; Wed, 13 Jul 2011 16:49:36 +1000 Date: Wed, 13 Jul 2011 16:49:36 +1000 From: Dave Chinner To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Subject: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Message-ID: <20110713064936.GP23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.293539533@bombadil.infradead.org> <1310423573.7019.55.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310423573.7019.55.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1310539780 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68777 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 11, 2011 at 05:32:53PM -0500, Alex Elder wrote: > On Sun, 2011-07-10 at 16:49 -0400, Christoph Hellwig wrote: > > Signed-off-by: Christoph Hellwig > > OK, I guess this is fine. I have a suggestion below > but I see nothing truly wrong with what you have. > > Reviewed-by: Alex Elder > > > Index: xfs/fs/xfs/xfs_dir2_leaf.c > > =================================================================== > > --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:07:49.518499801 +0200 > > +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-09 12:19:48.171796748 +0200 > > @@ -148,6 +148,36 @@ xfs_dir2_block_to_leaf( > > return 0; > > } > > > > +STATIC void > > +xfs_dir2_leaf_find_stale( > > + struct xfs_dir2_leaf *leaf, > > + int index, > > + int *lowstale, > > + int *highstale) > > +{ > > + /* > > + * Find the first stale entry before our index, if any. > > + */ > > + for (*lowstale = index - 1; > > + *lowstale >= 0 && > > + leaf->ents[*lowstale].address != > > + cpu_to_be32(XFS_DIR2_NULL_DATAPTR); > > + --*lowstale) > > + continue; Only thing I was conerned about was the indenting on these loops. Something like this: for (*lowstale = index - 1; *lowstale >= 0 && leaf->ents[*lowstale].address != cpu_to_be32(XFS_DIR2_NULL_DATAPTR); --*lowstale) continue; means that at a glance it is easy to separate the loop control statements from the body of the loop just by indentation. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 01:51:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D6pPP0070953 for ; Wed, 13 Jul 2011 01:51:25 -0500 X-ASG-Debug-ID: 1310539883-749801ff0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C308DEB1B31 for ; Tue, 12 Jul 2011 23:51:23 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id GvBrV1pFwTIV9gkB for ; Tue, 12 Jul 2011 23:51:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AowDAAxAHU55LCkBgWdsb2JhbABTpzgVAQEWJiXMCA6GLASjPw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 13 Jul 2011 16:21:11 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QgtHq-0006JK-6O; Wed, 13 Jul 2011 16:51:10 +1000 Date: Wed, 13 Jul 2011 16:51:10 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/11] a few more cleanups for Linux 3.1 Subject: Re: [PATCH 00/11] a few more cleanups for Linux 3.1 Message-ID: <20110713065110.GQ23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110710204916.856267100@bombadil.infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1310539884 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0180 1.0000 -1.9040 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.90 X-Barracuda-Spam-Status: No, SCORE=-1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68777 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 10, 2011 at 04:49:16PM -0400, Christoph Hellwig wrote: > A few more touchups for the directory code, including a rewamp of how > the headers are structure. My pending pile of buf wrappers removals, > given that others are looking into this are now, and some patches to > remove long dead and not overly useful debug code. Yeah can add my Reviewed-by: Dave Chinner To the entire series. It's run through QA fine for the past couple of days, and there's nothing that I think needs fixing that Alex hasn't already commented on. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+1c4b9cbdced2d2853fe8+2880+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 13 02:16:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D7GvdM071972 for ; Wed, 13 Jul 2011 02:16:57 -0500 X-ASG-Debug-ID: 1310541415-01cf03050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94B58686D6; Wed, 13 Jul 2011 00:16:55 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 8SCpBIxvcbRx15g6; Wed, 13 Jul 2011 00:16:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qgtgl-0007UN-0F; Wed, 13 Jul 2011 07:16:55 +0000 Date: Wed, 13 Jul 2011 03:16:54 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Alex Elder , Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Subject: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Message-ID: <20110713071654.GA21252@infradead.org> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.293539533@bombadil.infradead.org> <1310423573.7019.55.camel@doink> <20110713064936.GP23038@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110713064936.GP23038@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310541416 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68778 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 04:49:36PM +1000, Dave Chinner wrote: > > > + --*lowstale) > > > + continue; > > Only thing I was conerned about was the indenting on these loops. > Something like this: > > for (*lowstale = index - 1; > *lowstale >= 0 && > leaf->ents[*lowstale].address != > cpu_to_be32(XFS_DIR2_NULL_DATAPTR); > --*lowstale) > continue; > > means that at a glance it is easy to separate the loop control > statements from the body of the loop just by indentation. I tried to avoid changing anything here, but now that other people like me hate these uglies I think I have to ite the bullet and actually untangle those loops. The version below is what I'm submitting to testing now: From: Christoph Hellwig Subject: xfs: factor out xfs_dir2_leaf_find_stale Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner Index: xfs/fs/xfs/xfs_dir2_leaf.c =================================================================== --- xfs.orig/fs/xfs/xfs_dir2_leaf.c 2011-07-13 09:00:10.333246566 +0200 +++ xfs/fs/xfs/xfs_dir2_leaf.c 2011-07-13 09:08:52.217085945 +0200 @@ -148,6 +148,38 @@ xfs_dir2_block_to_leaf( return 0; } +STATIC void +xfs_dir2_leaf_find_stale( + struct xfs_dir2_leaf *leaf, + int index, + int *lowstale, + int *highstale) +{ + /* + * Find the first stale entry before our index, if any. + */ + for (*lowstale = index - 1; *lowstale >= 0; --*lowstale) { + if (leaf->ents[*lowstale].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) + break; + } + + /* + * Find the first stale entry at or after our index, if any. + * Stop if the result would require moving more entries than using + * lowstale. + */ + for (*highstale = index; + *highstale < be16_to_cpu(leaf->hdr.count); + ++*highstale) { + if (leaf->ents[*highstale].address == + cpu_to_be32(XFS_DIR2_NULL_DATAPTR)) + break; + if (*lowstale >= 0 && index - *lowstale <= *highstale - index) + break; + } +} + struct xfs_dir2_leaf_entry * xfs_dir2_leaf_find_entry( xfs_dir2_leaf_t *leaf, /* leaf structure */ @@ -190,32 +222,8 @@ xfs_dir2_leaf_find_entry( * If we didn't compact before, we need to find the nearest stale * entries before and after our insertion point. */ - if (compact == 0) { - /* - * Find the first stale entry before the insertion point, - * if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - leaf->ents[lowstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR); - lowstale--) - continue; - - /* - * Find the next stale entry at or after the insertion point, - * if any. Stop if we go so far that the lowstale entry - * would be better. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - leaf->ents[highstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && - (lowstale < 0 || - index - lowstale - 1 >= highstale - index); - highstale++) - continue; - } + if (compact == 0) + xfs_dir2_leaf_find_stale(leaf, index, &lowstale, &highstale); /* * If the low one is better, use it. @@ -689,26 +697,9 @@ xfs_dir2_leaf_compact_x1( leaf = bp->data; ASSERT(be16_to_cpu(leaf->hdr.stale) > 1); index = *indexp; - /* - * Find the first stale entry before our index, if any. - */ - for (lowstale = index - 1; - lowstale >= 0 && - leaf->ents[lowstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR); - lowstale--) - continue; - /* - * Find the first stale entry at or after our index, if any. - * Stop if the answer would be worse than lowstale. - */ - for (highstale = index; - highstale < be16_to_cpu(leaf->hdr.count) && - leaf->ents[highstale].address != - cpu_to_be32(XFS_DIR2_NULL_DATAPTR) && - (lowstale < 0 || index - lowstale > highstale - index); - highstale++) - continue; + + xfs_dir2_leaf_find_stale(leaf, index, &lowstale, &highstale); + /* * Pick the better of lowstale and highstale. */ From chongthamnhungchongbannuoc2521@gmail.com Wed Jul 13 02:35:50 2011 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6D7ZinR072508 for ; Wed, 13 Jul 2011 02:35:44 -0500 X-ASG-Debug-ID: 1310542364-0dc601060000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-ew0-f65.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E30B81D84864; Wed, 13 Jul 2011 00:32:44 -0700 (PDT) Received: from mail-ew0-f65.google.com (mail-ew0-f65.google.com [209.85.215.65]) by cuda.sgi.com with ESMTP id cggf7GsBfwVU41FQ; Wed, 13 Jul 2011 00:32:44 -0700 (PDT) Received: by ewy21 with SMTP id 21so718173ewy.8 for ; Wed, 13 Jul 2011 00:32:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=Pw/o467xBIR2D9sgLKIFxfV8kUzeqjm7N6tEoMLnf28=; b=LW51IFPPo/ARWyZLJoefVFZrJqnPqyZodspDUzjyi0kgcPejnD53i/mZ4WKqxZ4nnt hxdRarkm1d1gcXYjB5TnI4n0LtyAOFuXTtNIV3J9gJ7QI3OYh21x52qnH4hV20b6YAFA durVwykoRhliaAC3BGWwR7Q5bGgndB/oQSlS8= MIME-Version: 1.0 Received: by 10.213.20.144 with SMTP id f16mr589048ebb.2.1310536526621; Tue, 12 Jul 2011 22:55:26 -0700 (PDT) Received: by 10.213.10.77 with HTTP; Tue, 12 Jul 2011 22:55:25 -0700 (PDT) Date: Wed, 13 Jul 2011 07:55:25 +0200 Message-ID: X-ASG-Orig-Subj: The mankind supports ASEAN-Vietnam peace, democracy and development (gggg.yyyy.gggg) Subject: The mankind supports ASEAN-Vietnam peace, democracy and development (gggg.yyyy.gggg) From: chongthamnhungchongbannuoc2521 To: levanthan2003@yahoo.com, levanthan_ly25spqn@yahoo.com, levantho1009@yahoo.com, levantrung2003@vol.vnn.vn, levantu1110@yahoo.com, levietdung@hcm.vnn.vn, levinh05@gmail.com, levinhkhuong@yahoo.com, levinsona@amc.org, levucompany@yahoo.com, levulam2001@yahoo.com, levultd@hcm.vnn.vn, lewechi_echi@yahoo.com, lewing@clear.net.nz, lexie.mcclymont@nre.vic.gov.au, lexim@fpt.vn, lexim@hn.vnn.vn, lexuanvtu@hcm.fpt.vn, leya008@aol.com, lfay@fpt.vn, lfb-iwarp@hn.vnn.vn, lg282@columbia.edu, lg@dng.vnn.vn, lgiangson@hotmail.com, lgkloft@usgs.gov, lgminhtam@yahoo.com, lgr@cowi.dk, lh_anh925@yahoo.com, lha1@ifc.org, lhdanh@hcm.vnn.vn, lhgia@yahoo.com, lhgiang20022002@yahoo.com, lhgsn@yahoo.com, lhhkhkt@vnn.vn, lhhuyhoang@hcm.vnn.vn, lhlam72@yahoo.com, lhlam@vol.vnn.vn, lhoang@pdq.net, lhoangcuong@yahoo.com, lhoangkhanh83@yahoo.com, lhoezee@indiana.edu, lhongphuong@yahoo.com, lhongtruong@yahoo.com, lhphuong@usa.com, lhqdung@yahoo.com, lhquanht@yahoo.com, lhthao@hcm.fpt.vn, lhtuong@msn.com, lhvdung2002@yahoo.com, li-genping@263.net, liberty2@libertyhotels.com.vn, liberty3@libertyhotels.com.vn, liberty4@libertyhotels.com.vn, liberty@libertyhotels.com.vn, lid@hot.ee, lidalong@lidalong.com, lide_life@yahoo.com, liem041080@yahoo.com, liemdh15@yahoo.com, liemhc@yahoo.com, liemli@yahoo.com, liemnhkc@yahoo.com, liemonline@yahoo.com, liemphong02@yahoo.com, liemqd@yahoo.com, lien-hang.nguyen@yale.edu, lienascom@yahoo.com, lienbangtravel@hcm.vnn.vn, lienchi0207@yahoo.co, lienchi0207@yahoo.com, liendai@hcm.vnn.vn, lienhiepkl@hcm.vnn.vn, lienhoanson@yahoo.com.vn, lienhung@hcm.vnn.vn, liennr1@yahoo.de, lienphuongdn2002@yahoo.com, lienson@hcm.vnn.vn, lienthanh.bt@hcm.fpt.vn, lientt.ckl@mard.gov.vn, lientt.kl@mard.gov.vn, lieudao_louis@hotmail.com, lieuquangtri@yahoo.com, lieuthuocchotraitim2002cc@yahoo.com, lifanjili2@hn.vnn.vn, liferesort-quynhon@dng.vnn.vn, light_river2t@yahoo.com, lightsun1984@yahoo.com, ligin1217@yahoo.com.tw, lihoaqb@yahoo.com, like-a_girl555@yahoo.com, likeplaygame2003@yahoo.com, likeyounow2003@yahoo.com, likhach3033@heartmail.com, likhach@vol.vnn.vn, likom83@netcenter-vn.net, lilamaecc69-3@hn.vnn.vn, lilamahq@hn.vnn.vn, lilla020@yahoo.com, lily.hoang@bently.com, lily@fpt.vn, lily_w@trans-link.com.hk, lim_kimheng@yahoo.com, linbaoer@yahoo.com, linda000@yahoo.com, linda@fpt.vn, linda@lscs.uk.com, lindac@midgaard.net, lindamosley@yahoo.com, lindawalsh@virgilio.it, line@nhanvietcorp.com, ling@haithanh.com.vn, linglu@134.68.81.83.com, linh-linhvna@com.vn, linh.hoang@berlin.de, linh0350635066@yahoo.com, linh95mcn@yahoo.com, linh9736@hopthu.com, linh@wildcard.vnnic.net.vn, linh_822001@yahoo.com, linh_842001@yahoo.co, linh_842001@yahoo.com, linh_tlc@yahoo.com, linh_tlehn@fpt.vn, linh_vnn@yahoo.com, linhangel84@hotmail.com, linhbmt2003@yahoo.com, linhbom2002@yahoo.com, linhbtexga@vnn.vn, linhchautu@yahoo.com, linhct1@yahoo.com, linhfcthainguyen@yahoo.com, linhlc@hcm.vnn.vn, linhleduong78@yahoo.co.uk, linhlephu@yahoo.com, linhlinhdantruong1@yahoo.com, linhndv@gmail.com, linhnguyen54@yahoo.com, linhnham2882@yahoo.com, linhtdtto@yahoo.com, linhthan@gotmail.com, linhtho@hcm.tcb.com.vn, linhtran@saigonnet.vn, linhtruong1986@yahoo.com, linhtv@hotmail.com, linhvh@vnu.edu.vn, link.viethoteltravel@gmail.com, linkinpark_vn2003@yahoo.co.uk, links@housingvietnam.com, links@passionvietnam.com, links@vietnamluxurytravel.com, links@vp-shops.com, linnanmj@state.gov, lint@vcci.com.vn, linux-sh-admin@m17n.org, linux-xfs-bounce@oss.sgi.com, linux-xfs-outgoing@oss.sgi.com, linux-xfs@oss.sgi.com, linux4michelle@freenet.de, linwei@public.netchina.com.cn, lisa.ionescu@ifcc.org, lisasaigon@hcm.fpt.vn, lisbeth.pembele@helvetas.ch, list@dfwcfug.org, listmaster@lists.debian.org, lists@mathworks.com, litaelizabeth@yahoo.com, lithapha@hcm.vnn.vn, little@saigonnet.vn, littleboyson@yahoo.com, littlemouse12a7@yahoo.com, liushaobao@caexpo.org, liushenchuan@yahoo.com, livecamaccess.12@gmail.com, livecamaccess.54@gmail.com, livecamaccess.82@gmail.com, livecamaccess@gmail.com, lives_vn@yahoo.com, liveson8@yahoo.com, livevnn@yahoo.com, livinggiving@bdvn.vnd.net, lixco@hcm.fpt.vn, lixco@hcm.vnn.vn, lixing@caexpo.org, liz224345@hotmail.com, liz224345@yahoo.com.au, lizard@hsph.harvard.edu, lizwill@phc.igs.net, lj_vo@yahoo.com, ljh-12@163.net, lkao@yeah.net, lkaptan@pro-link.net, lkatz@falcon.tamucc.edu, lkbluong@hcm.vnn.vn, lkindesign@yahoo.com, lkouba@assumptionabbey.com, lkqmt@yahoo.com, lkthuy1@hcm.vnn.vn, lky5154@korea.com, lleanhdung@yahoo.com, lleary@sccoast.net, llephivnus@yahoo.com, llevankhanh@yahoo.com, llimas@spss.com, lll____@mail.ru, lllamhoangvu@yahoo.com, llltri@hcm.vnn.vn, lltruonggiang@gmail.com, llu@copymill.com, lm_hoang99@yahoo.com, lmarsh1220@aol.com, lmc-zdh.prog@fpt.vn, lmchau@hcm.vnn.vn, lmhung1@yahoo.com, lmissyoumuch@yahoo.com, lmkhanh2002@yahoo.com, lmman@yahoo.com, lmoon63@aol.com, lmthanh@hueuni.edu.vn, lmthuyvn@yahoo.com, lmtriet179@yahoo.com, lmtuannt@yahoo.com, lmv18111982@yahoo.com, lmv962002@yahoo.com, ln-consulting@fpt.vn, ln-consulting@hcm.fpt.vn, lnb-iwarp@hn.vnn.vn, lnduc82bk@yahoo.com, lnfoodserv@hotmail.com, lngquy411@yahoo.com, lnhut@bdvn.vnd.net, lnk@saigonnet.vn, lnkhanh2002@yahoo.com, lnpham@duke-energy.com, lnphu2002@yahoo.com, lnphuongkhanh_vn@mail.com, lnq1773@yahoo.com, lnsc910@hcm.vnn.vn, lnvien@gmail.com, loanusman@yahoo.com.sg, lobeo2002@yahoo.com, loc.le@smartnus.com, loc.ntn@hcm.vnn.vn, loc0804@yahoo.com, loc12cong@yahoo.com, loc1881@yahoo.com, loc20042002@yahoo.com, loc24@gotmail.com, loc@saigonnet.vn, loc_david@yahoo.com, loc_diepkim@yahoo.com, loc_tgc@yahoo.com, locak2001@yahoo.com, locchantinh@yahoo.com, lockelaton@yahoo.com, lockevn@yahoo.com, lockiemtv@yahoo.com, locloveyou2003@yahoo.com, locmartin2002@yahoo.com, locngocdung@heartmail.com, loctruong2003@yahoo.com, locxoay-tinhyeu191@yahoo.com, lofwyr@paulbunyan.net, logistics@wildcard.vnnic.net.vn, loi-vicco@hotmail.com, loi_levan@yahoo.com, loi_mn@yahoo.com, loi_nguyen29@yahoo.com, loi_nguyentan2002@yahoo.com, loi_traitim_muonnoi000@yahoo.com, loianhbui@gmail.com, loibinhkien@dng.vnn.vn, loichaotunuocphap@yahoo.fr, loicongh@yahoo.com, loicuoitinhbuon@yahoo.com, loihoa2002@yahoo.com, loimast2002@yahoo.com, loinaochota@yahoo.com, loiquocma@yahoo.com, loirutrongdem@yahoo.com, lois@deas.harvard.edu, loitotinhdethuong_nt@yahoo.com, lolem676@yahoo.com, lon_lon_to_to@yahoo.com, london@eiu.com.ph, lonely2005_vn@yahoo.com, lonely_star24@yahoo.com, lonelyboy_tran15@yahoo.com, lonelyheart168@yahoo.com, lonelystaronthesky@yahoo.com, long-aladdin@vnn.vn, long-nguyen@web.de, long.ng@vnn.vn, long.nguyen@isispc.com.au, long08@hcmpt.vnn.vn, long11277@yahoo.com, long1_bpc@hcm.vnn.vn, long2000@saigonnet.vn, long21@yahoo.com, long2cz@yahoo.com, long6668@yahoo.com, long82@gotmal.com, long9ca@yahoo.com, long@fpt.vn, long@yahoo.com, long_daica2009@yahoo.com, long_river985@yahoo.com, longac2002@yahoo.com, longanbd@yahoo.com, longanh2702@yahoo.com, longanuy@yahoo.com, longbinh@fpt.vn, longceramic@hn.vnn.vn, longd10sb@yahoo.com, longdkt78@yahoo.com, longgia@yeuviet.com, longhai-30@yahoo.com, longhailk2002@yahoo.com, longhang@yline.com, longhoang12200@yahoo.com, longhoangphuong@yahoo.com, longhuynh9064@yahoo.com, longkg@hcm.vnn.vn, longkhanh_39@hopthu.com, longlon2005us@yahoo.com, longlovely12345@yahoo.com, longlovely83@yahoo.com, longmrf@yahoo.com, longn@hn.vnn.vn, longnam_us@yahoo.com, longnguyen15@hotmail.com, longnguyenmt@yahoo.com, longnh@tiachopviet.com, longnk@fpt.vn, longoton@hotmail.com, longp2001@yahoo.com, longphungfood@hcm.vnn.vn, longphutourist@dng.vnn.vn, longpt@wildcard.vnnic.net.vn, longrom2002@yeuviet.com, longtall172@hotmail.com, longtd@saigonnet.vn, longthanh1078@yahoo.com, longthole2002@yahuu.com, longtram88880@yahoo.com, longtrungtt@yahoo.com, longttcd@yahoo.com, longtttn@yahoo.com, longvanguyen@yahoo.com, longviet_pt@yahoo.com, longview_vn@yahoo.com, longvn031@yahoo.com, longvugiang@yahoo.com, longvuht@yahoo.com, lonibp@yahoo.com, lonleyinside@hotmail.com, lonny_killer@yahoo.com, lonto@web.de, lookatthis@aol.com, lookforccd@yahoo.com, looney@fptnet.com, loquynhnhu@yahoo.com, lordnbg@hcm.vnn.vn, lords_org@yahoo.com, lordtung2000@yahoo.com, lorinfla@earthlink.net, lorwilk@dfn.com, losmandy@palo12.pacific.net.sg, lotan9999@yahoo.com, loteco.epz@hcm.vnn.vn, lotenatl@virgilio.it, lottenattle@virgilio.it, lottolotto10@virgilio.it, lottolotto11@virgilio.it, lotus1@freenet.de, lotus_action@yahoo.com, lotusport@tlnet.com.vn, lotusportvn@hcm.vnn.vn, lotusron1@yahoo.com, louianhtuan@yahoo.com, louisbeck2002@yahoo.com, louisnhan@yahoo.com, lovaboyz225@aol.com, love.style@yahoo.com, love_for_you855@yahoo.com, love_romantic@mail2lovely.com, love_viva@onebox.com, loveannie134@sohu.com, lovebabydatinh@heartmail.com, loveblue1682003@yahoo.com, lovedesert_june23th@yahoo.com, lovedream852002@yahoo.com, loveduong2000@yahoo.com, loveemnhieu1982@yahoo.com, lovefordinner@yahoo.ca, lovely184vn@yahoo.com, lovely_boy1080@yahoo.com, lovely_doll@movemail.com, lovelyboyvn@hotmail.com, lovelymanvnn@yahoo.com, lovelytin2000.@yahoo.com, lovelyviet2004@yahoo.com, lovemail19862002@yahoo.com, lovemailhieu@yahoo.com, lovemenot888@yahoo.com.au, lovenight9@hotmail.com, loveplanet@hn.vnn.vn, loverpt15@hotmail.com, loverthanh@yahoo.com, lovesickman123@yahoo.com, lovethuan2003@yahoo.com, lovetolove22101984@yahoo.com, loveyou404119@yahoo.com, loveyou_onlyone@yahoo.co.uk, loveyouforever@yahoo.com, loveyouquyen@yahoo.com, loveyouxxxx2003@yahoo.com, lovson@hotmail.com, loyal_friendship2003@yahoo.com, loyeu0918186@yahoo.com, loyeuemroi0101@yahoo.com, lpdesign@lpdesigncorp.com, lph3tam@yahoo.com, lphudat@fptnet.com.vn, lpskeen@living-tree.net, lpthu@yahoo.com, lpthuyen@yahoo.com, lqb@fptnet.com, lqgnuh100483@yahoo.com, lqh_1@hcm.vnn.vn, lqhanh@gmail.com, lqthai80@yahoo.com, lqtoancm@yahoo.com, lsalvatore@mac.com, lsavatore@mac.com, lsbaninh@dng.vnn.vn, lsc@dng.vnn.vn, lscdanang@yahoo.com, lsctp@ms33.hinet.net, lsnguyennguyen@yahoo.com, lspeirs@pacifier.com, lswkhoo@pacific.net.sg, lsyshow@yahoo.com.tw, lt.ttc@hn.vnn.vn, lt@yahoo.com, lt_huy@yahoo.com, lta269@yahoo.com, ltan0@yahoo.com, ltanh75@yahoo.com, ltanh88@yahoo.com, ltcompro@zapo.net, ltcraft@hcm.fpt.vn, ltcraft@hcm.vnn.vn, ltdkimquocvn@yahoo.com, ltdung10@yahoo.com, ltdung@hotmail.com, lth3@hsph.edu.vn, lth5783@hotmail.com, lthanhlam2002@yahoo.com, ltho@vghtpe.gov.tw, lthongnga@saigonnet.vn, lthungts@wildcard.vnnic.net.vn, ltienkhai@yahoo.com, ltk125@yahoo.com, ltk20032002@yahoo.com, ltmdrak@hotmail.com, ltnam78@yahoo.com, ltnamnung@hotmail.com, ltp@oss.sgi.com, ltq2003vn@yahoo.com, ltsy.vtc@hn.vnn.vn, ltt1701@yahoo.com, ltthang@hn.vnn.vn, ltthong@hcm.vnn.vn, ltthuy@td-in.com, lttinh999@hotmail.com, lttu@netnam.vn, ltu@netnam.org.vn, ltuanhuy@yahoo.com, ltv_ngocphuoc@yahoo.com, ltvpvn@yahoo.com, luan@fpt.vnn.com, luan@yahoo.com, luan_valentino@yahoo.com, luancifer@yahoo.com, luanct1@yahoo.com, luandan@yahoo.com, luanhd2000@yahoo.com, luannguyen24tg@yahoo.com, luannguyen@batour.com, luanquangcao@yahoo.com, luantran30@yahoo.com, luantran@detectiveconan.com, luantrongmt178@yahoo.com, luatexe@yahoo.com Content-Type: multipart/mixed; boundary=0015174c3fd622a1eb04a7ed1093 X-Barracuda-Connect: mail-ew0-f65.google.com[209.85.215.65] X-Barracuda-Start-Time: 1310542380 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0015174c3fd622a1eb04a7ed1093 Content-Type: multipart/alternative; boundary=0015174c3fd622a1e004a7ed1091 --0015174c3fd622a1e004a7ed1091 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Trung Quoc co the tan cong Truong Sa - Viet Nam vao cuoi thang Ba, dau than= g Tu? (yyy-ggg-yyy) http://www1.vietinfo.eu/chuyen-phiem/trung-quoc-tan-cong-truong-sa-viet-nam= -vao-ngay-014.htmlHB 08-03-2011 00:08 () Trung Quoc tan cong Truong Sa - Viet Nam vao cuoi thang Ba, dau thang Tu? Theo tin tinh bao va tu su phan tich, tong hop cac hien tuong, dien bien kh= u vuc va quoc te gan day thi co kha nang rat cao Trung Quoc se tan cong xam luoc Truong S= a cua Viet Nam vao cuoi thang Ba, dau thang Tu nam nay. Truoc het, diem lai lich su thoi diem Trung Quoc gay chien tranh xam chiem Viet Nam thuong vao dau nam, thuong vao cac thang Mot, Hai va Ba. Ke tu khi ra doi nuoc Trung Quoc Cong san, ngoai vo van cac vu xam canh, xam cu, muon dat chon nguoi, v.v. len lut o doc bien gioi phia Bac thi Trung Quoc da lien tuc thuc hien nhung cuo= c tan cong tu quy mo vua cho den quy mo cuc lon, chiem dong lanh tho cua Viet Nam mot cac= h trang tron, bat chap luat phap, du luan quoc te. Ngay 20 rang sang 21 thang Hai, nam 1956 Trung Quoc bi mat cho do quan chie= m dong trai phep cac dao phia Dong quan dao Hoang Sa, ma sau hiep dinh Gio-ne-ver 1954 thuoc quyen quan ly cua chinh quyen VNCH. Trong cac ngay 17, 18 va 19/ 1/ 1974 Trung Quoc gay chien va chiem not toan bo khu vuc phia Tay quan dao Hoang Sa tu tay chinh quyen VNCH. (Anh: Tau chien Trung Quoc) Ngay 17 cung thang Hai 1979 Trung Quoc xua 60 van quan tran qua bien gioi phia Bac sang tan pha, bat giet dan lanh Viet Nam. Du sau do da bi quan dan Viet Nam duoi danh, nhung nhieu khu vuc theo du luan Trung Quoc van chiem giu cho den nay, va Hiep dinh bien gioi 1999 da phan nao hop phap hoa nhung khu vuc ho chiem khong chiu tra lai nhu nua Thac Ban Gioc, Ai Nam Quan, Nui Lao Son (Nui Dat- diem cao 1509) v.v. Gan day nhat, 14/3/1988 Trung Quoc da tan cong 3 bai ngam thuoc quan dao Truong Sa cua Viet Nam la Gac Ma, Dao lin va Co Lin. Cuoi cung Trung Quoc chiem duoc bai Gac Ma sau khi sat hai 64 chien si hai quan tay khong co vu khi, va ban chim 3 tau van tai Viet Nam. Nhu vay, xet ve mat thoi gian, nay dang thang Ba - phu hop voi thoi diem "truyen thong" phat dong chien tranh xam chiem Viet Nam cua Trung Quoc. Gan day Hai quan cua Trung Quoc tap tran o Bien Dong lien tuc ma Viet Nam chi len tieng khi truyen thong Trung Quoc loan tin ve cuoc tap tran nao do da xay ra, va thuong Viet Nam phan doi rat muon- mat vai tuan (vi thieu nguoi dich tin chang?). Duoc biet, cac cuoc tap tran cua Trung Quoc chu yeu la tap do bo chiem dao va bat giu ngu dan, nhung ho lap liem noi nguoc la tap tran chong do bo len dao va chong cuop bien. Hai quan Trung quoc hien tai manh hon Viet Nam rat nhieu. At chu bai cua Ha= i quan Viet Nam la tau ngam kilo chua kip nhap ve. Hon nua Viet Nam chua co Hiep uoc quan su voi bat cu cuong quoc nao, nen kha nang Viet Nam it co ai hop tac, bao v= e nhu Nhat Ban, Dai Loan... Van de Truong Sa, Trung Quoc may ngay nay dung ke "duong Dong kich Tay" cho tau chien, ngu dan, may bay,...xam nhap vao lanh hai, khong phan cua Nhat Ban, Han Quoc nham danh lac huong su chu y. Hon nua, may ngay qua tau chien Trun= g Quoc tang cuong dot bien, hoat dong o vung bien phia Dong quan dao Truong Sa. Trung quoc cho tau chien gay han voi tau tham do cua Philippines ngay 2/3 nhu la thuoc thu kha nang phan ung, tinh doan ket cua khoi ASEAN. Nen nho, doi voi su kien nay khong mot nuoc nao thuoc ASEAN, trong nhom cac nuoc dang hien dien quan doi o Truong Sa len tieng phan doi Trung Quoc ngoai Philippines. Dieu nay khien Trung Quoc se tien them buoc moi manh bao hon. Viet Nam vua Dai hoi Dang xong, dang trong qua trinh sap xep, phan bo vi tr= i nhan su- day la thoi diem nhay cam de Trung Quoc se thu "nan gan", hoac gian tiep xe= p dat nhan su than Trung Quoc qua viec tang bau khong khi chien tranh o Truong Sa. De y nhung ngay dau thang Ba nay, bao chi Viet Nam khong phai ngau nhien ma dua ra mot loat bai viet co tinh ke toi Trung Quoc, khoi day tinh than dan toc qua= t cuong chong giac ngoai xam. Day la hien tuong nhat quyet khong binh thuong! Han rang, Viet Nam da du doan duoc van de! Trong so nhung bai bao thoi bung ngon lua yeu nuoc cua thanh nien Viet Nam truoc da tam tham doc cua Trung Quoc phai ke den bai "Toan tinh cua Trung Quoc o Bien Dong" dang tren VN Net va "Lang Son, nhung ngay thang Hai= " tren trang Thanh Nien. Mot su kien khac cung co them cho gia thuyet Trung Quoc se tan cong Truong Sa sap toi, boi lan dau tien, nam ngoai Trung Quoc cong bo chinh thuc ban do "luoi bo" 9 vach. Day la viec lam mang tinh chuan bi du luan quoc te va kich dong tinh than Dai Han. Neu khong chiem duoc cac dao o Truong Sa thi cai "luoi bo" nay khong co diem tua, vo nghia va "vo duyen"! Bang moi gia khong som thi muon Trung Quoc se tan cong Truong Sa. Do la su that buon ma bat cu nguoi Viet Nam nao cung nen y thuc, khong duoc mo ho. Boi canh the gioi hom nay, nhat la cach mang hoa nhai dang lan toa o Trung Dong va Bac Phi khien Trung Quoc lo so lan song bieu tinh trong nuoc bung phat. De ngan chan cac phong trao bieu tinh doi dan chu co the xay ra, Trung Quoc se su dung k= e "vay Nguy cuu Trieu"- tuc la gay chien o Truong Sa de dap tat phong trao dan chu tron= g nuoc. Viec lien quan Anh- My kieu gi cung se can thiep quan su vao Libya neu Dai ta Kaddafi khong ra di, se la co hoi tot cho Trung Quoc. Them mot chi tiet khac cung co cho nhan dinh Trung Quoc co the tan cong Truong Sa vao dau thang Tu, moi nghe thi cho la vo van nhung ngam ra thay can nghiem tuc dieu tra. So la chuyen Cu Rua an thit meo chet. Da co ai dat ra cau hoi, lam sao ma lai co con meo den to the chet duoi ho Guom? Meo den rat quy, thit an chua benh, xuong de nau cao, ai nguoi Viet Nam chang biet ma dai dot vut xuong ho. Chac chan co ban tay "la" nem meo den xuong cho Cu Rua nha guom than ra de dop xac meo chet. Nhu vay la Cu Rua mat de cao canh giac, tham an tuc uong, quen nhiem vu giu guom bau chon= g giac ngoai xam. Cu Rua da thoai hoa, bien chat! Ngay xua chi noi len trao guom v= a doi guom, nay thi bat cu su kien nao, co ti mau la noi len chao mung, that mat tu cach. Ngoai ra, viec gian diep lam noi ung quang meo den xuong ho Guom dau nam Mao nham loi keo nhan dan do xo chen chuc xem man ruot, da meo noi lenh benh ma quen di su hien dien cua Trung Quoc o Bien Dong; quen di 6 ngu dan Quang Ngai gan 3 thang nay va= n biet tam vo tich ke tu lan cuoi cung duoc thay dang nhat rong gan quan dao Hoang Sa, dieu ma dang ra moi ngay bao chi hay truyen hinh it nhat phai nhac lai mot lan. ----- Cu tri kien nghi: Bo chinh tri kien quyet chong tham nhung, kiem tra, kiem diem, cach chuc cac ong Nguyen Phu Trong, Truong Tan Sang, Nguyen Tan Dung, Le Thanh Hai, To Huy Rua, Pham Quang Nghi, Le Hong Anh, Phung Quang Thanh, Nguyen Ba Thanh, Hoang Kong Tu, Nguyen Duc Nhanh, Nguyen Thien Nhan, Nguyen Sinh Hung tham nhung, thoi nat, hai nuoc, hai dan () Phan 1: Cu tri kien nghi: Bo chinh tri kien quyet chong tham nhung, kiem tra, kiem diem, cach chuc ong Truong Tan Sang tham nhung, hiep dam http://www.vietbao.com/?ppid=3D45&pid=3D4&nid=3D55429 10/31/2000, 12:00:00 = AM () Cuu Bi thu Thanh uy Sai Gon - Truong Tan Sang - bi to hiep 1 nu Giam doc Bi thu Quan 3 - Tam Thanh, dan dung dang phu nu cho Truong Tan Sang Loi gioi thieu: Cach day it lau Thong Diep Xanh co nhan duoc mot so tai lie= u tu trong nuoc gui ra, trong do co hai van ban duoi day. Sau khi duoc biet hai van ba= n to cao dich danh ong Truong Tan Sang, nguyen Bi thu thanh uy thanh pho Ho Chi Minh= , lot ra tu co quan nhan don, khong tru ca Van phong Tong bi thu Dang Cong san Viet Nam, da duoc gui den tay nhieu nguoi va nhung nguoi biet vu viec da xac nhan chuyen co that, Thong Diep Xanh quyet dinh dua chung len dien dan cong khai. "De cho moi nguoi deu biet xa hoi Viet Nam da bi bang hoai den muc nao, khi trong gioi cam quyen hom nay nhung ke nhu Tu Sang, Pham The Duyet... sau khi pham toi van nhon nho chuyen tu ghe lanh dao nay qua ghe lanh dao khac", nhu nguoi gui nhan nhu. Ong ket luan: "Khi mot xa hoi khong co doi trong de can bang quyen luc thi quyen luc duy nhat se pha tan xa hoi do, lam cho no tro thanh ban cung va vo luan. Quyen luc phai duo= c giam sat thuong xuyen va bi chan dung ngay lap tuc khi no co bieu hien long hanh. Ca= n phai dap tan moi thu quyen luc doc ton de nguoi dan truoc het co duoc quyen lam nguoi". *** Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc lap - Tu do - Hanh phuc ----------- Don to cao v/v tu cach, dao duc cua bi thu thanh uy Truong Tan Sang Kinh gui d/c Tong bi thu Le Kha Phieu, Toi ten la Vo Thi Thu Hong, ngu tai 51/84 Cao Thang, phuong 3, quan 3, than= h pho Ho Chi Minh, xin to cao mot su that cay dang doi voi ca nhan toi nhu sau: Khoang nam 1993, mot hom ong Huynh Van Thanh (Tam Thanh, luc do la bi thu quan uy quan 3) yeu cau toi cung di voi ong ay den khach san Hoa Binh (so 57, duong quoc lo 15 Bien Hoa - Dong Nai) de tiep va lam viec voi ong Tu Sang (Truong Tan Sang, luc do la chu tich Uy ban Nhan dan thanh pho Ho Chi Minh). Luc dau toi de nghi tu di xe rieng de tim cach khong den. Nhung sau do, khi hai ong (Tam Thanh va Tu Sang) da den khach san, thi lien tuc goi dien thoai goi toi den. Va sau do ong ay cho xe den don to= i di. Khong con cach nao de tu choi, buoc long toi phai theo xe den khach san theo yeu cau cua ong ay. Khi den noi, toi khong thay ong Tam Thanh dau ma chi thay ong Tu Sang dang ngoi cho o khach san. Ong co ve gian, trach toi "cham chap", roi dan toi vao mot phong trong khach san. Sau khi keu ruou, nuoc uong va chot cua lai, ong Tu Sang hoi vai cau xa giao, roi bat dau trach toi. Ong noi: "Sao em dai qua vay, anh de y, theo doi va thuong em lau roi, em khong biet sao? Tam Thanh co noi truoc cho em biet khong? Hom nay em co tinh tranh ne anh phai khong?" Roi ong ay om hon toi va buoc toi phai "chiu" ong ay. Luc bay gio toi khong con cach chong do nao khac, danh phai "chiu dung" va khoc. Ong Tu Sang do danh, va hua hen se lo lang, giup do toi trong cong viec..., va cho xe dua toi ve (ong Tu Sang con o lai do). (Ro rang toi phai ngu voi ong Tu Sang vi bi bat buoc va khong con cach khang cu nao khac). Hom sau, ong Tu Sang co goi dien thoai tham hoi toi va hen tuan sau di choi nua. Toi khong noi gi. Den tuan sau ong lai ru di Suoi Tien, toi lay co benh - xin loi khong di. Sau do cu mot hoac hai tuan mot lan ong deu dien thoai hen gap va ru di choi. Lan nao toi cung lay ly do benh - (dau bung, nhuc dau, cum...) de tu choi. Khoang hon mot thang sau do, ong Tu Sang yeu cau toi sap xep cong viec de di Singapore voi ong ay. Lien luc do, ong Tam Thanh keu toi qua van phong bao toi phai sap xep cong viec de di Singapore voi ong Tu Sang. Ong Tam Thanh con noi "Anh Tu Sang quan tam den co ma co khong biet dieu, se khong co loi cho cong viec dau..., toi thuong co toi moi chi ve". Biet rang neu tu choi thang thung thi se mat long thu truong roi khong biet viec gi se xay ra, toi ben dem 5.000USD (nam ngan do la My - tien rieng cua chong toi la giam doc mot cong ty tu nhan) den nha ong Tu Sang, dua tan tay ong ay va nan ni ong ay di mot minh vi toi qua ban. (Toi con nu= a dua nua that noi: anh qua ben do thieu gi nguoi dep san sang chiu chuong anh, em co la cai dinh gi dau). Ong ay to ve khong vui, nhung toi loi dung luc ong ay co khach de ra ve. Sau do, do viec dung cham voi ong Huynh Van Thanh (nhu da trinh bay trong don truoc), khong thay ong Tu Sang dien thoai tham hoi va ru re toi nhu truoc nua. Toi biet co le ong Tam Than= h da noi xau gi toi voi ong Tu Sang, va vi toi cu ne tranh hoai nen ong ay gian. Luc do, toi cam thay mung vi khong bi "quay roi" nua. Toi da khong luong truoc duoc nhung su tru dap va hau qua ma toi phai chiu dung hom nay do khong "chiu" y thu truong. (Neu toi thoa man moi yeu cau cua ong Tu Sang va ong Tam Thanh thi co le to= i da duoc giup do va duoc "cat nhac", chu khong phai chiu tu day, kho so nhu gan 3 nam qua). Kinh thua dong chi tong bi thu, Tren day la toan bo su that cay dang va nhuc nha ma toi khong dam he moi th= o lo cung ai. Sau mot thoi gian dai dan do, suy nghi, nay nhan dip Chinh don Dang, la mot dang vien (du da bi tru dap khai tru Dang), toi manh dan noi len toan bo su that nhu tren voi mong muon duoc dong chi tong bi thu biet het su that v= e cac can bo, dang vien cua minh. Va voi cuong vi la lanh dao cao nhat cua Dang, dong chi lua chon va cu nhung nguoi xung dang dam trach nhung nhiem vu cao de dem lai long tin noi nhan dan vao Dang. Ben canh noi cay dang va nhuc nha nhu tren, hien nay toi dang bi oan uc vi bi bat giam vo co hon 10 thang, bi qui toi "bao cao sai va co y lam trai trong quan ly kinh te". That ra, theo suy ngh= i cua toi, do la do toi khong dap ung cac yeu cau rieng cua thu truong truc tiep ma phai mang toi. Kinh mong dong chi tong bi thu som co quyet dinh dut khoat, lam ro noi vu nay, giup cho toi som duoc giai oan, de toi co dieu kien dong gop suc luc va tri tue con lai cua minh vao su nghiep xay dung dat nuoc. Dong thoi de cha me toi - nhung nguoi da suot doi theo Dang qua hai cuoc khang chien duoc yen long nham mat. Toi xin hoan toan chiu trach nhiem ve cac su viec da neu trong don. Vo cung cam on dong chi Tong bi thu Le Kha Phieu. Kinh chuc dong chi luon vui khoe. TPHCM, 16/10/1999 Kinh don (ky ten) Vo Thi Thu Hong *** Cong Hoa Xa Hoi Chu Nghia Viet Nam Doc lap - Tu do - Hanh phuc Don to cao khan cap Kinh gui: Ban lanh dao cac cap Toi ten la Nguyen Canh Sinh. Sinh nam 1953 tai Binh Chanh. So Chung minh Nhan dan: 030072913. Hien thuong tru tai 51/84 duong Cao Thang Phuong 3, Quan 3. Nguyen la giam doc doanh nghiep tu nhan theu Cao Thang (nay da giai the). La chong cua Vo Thi Thu Hong, sanh nam 1955, ngu tai 51/84 duong Cao Thang Phuong 3, Quan 3, nguyen la giam doc xi nghiep may xuat khau Quan 3, da bi ong Huynh Van Thanh (bi danh Tam Thanh), nguyen la bi thu, chu tich Uy ban Nhan dan Q3 da chi dao cho cong an Quan 3 bat ham oan vo toi tai nha vao ngay 31/05/1997, luc do toi khong co o nha va cung khong thay mot quyet dinh nao, ly do vi sao bi bat. Sau nay, toi biet them la co su chi dao cua ong Truong Tan Sang, bi thu thanh uy thanh pho Ho Chi Minh. Kinh thua Ban lanh dao, Ong Huynh Van Thanh va ong Truong Tan Sang rat than thien gan bo voi nhau k= e tu khi ong Tu Sang len lam chu tich UBNDTP Ho Chi Minh. Hai ong thuong xuyen di danh tennis tai san T78, san Ho Xuan Huong, va cung thuong xuyen di nhau nhet, an choi voi nhau. Suot qua trinh lanh dao cua ong Tam Thanh, ong Tu Sang ta= i Quan 3, Thanh pho Ho Chi Minh da lam cho tinh hinh kinh te ngay cang bi dat, cuc ky kho khan, tinh hinh cac doanh nghiep tu nhan tro nen toi te, nhat la tai Quan 3. Su yeu kem ve nang luc lanh dao, trinh do van hoa, su an choi sa do= a cua cac ong da khong the nao che mat duoc dan chung. Su quan lieu chuc quyen lam chuyen doi bai, khong con du tu cach va co nhieu nguoi biet den nhung vi so bi tra thu, tru dap nen khong dam to cao, nen long uat uc. Va cu the la truong hop cua vo toi bi ong tru dap thang tay, nham che day su that ve con nguoi xau xa cua cac ong ay, khong xung dang la dang vien Dang cong san Viet Nam. - Trong UBND Quan 3 khong ai khong biet ong Tam Thanh la da co vo, van quan he nhu vo chong voi ba Dao Thi Nga tai khach san Ban Co (ba Nga nguyen la giam doc khach san Ban Co). - Cung chinh ong Tam Thanh da quan he voi vo toi nhu vo chong suot thoi gia= n dai tu khi vo toi con lam pho phong ke hoach Quan 3, roi qua lam giam doc xi nghiep may xuat khau Qua= n 3. Viec nay lam toi vo cung dau don, can rang chiu dung truoc du luan vi biet minh dang chiu ap luc cua cac ong trong lam an kinh te, nhieu luc vo chong toi to tieng cai va doi ly di. Co lan toi tuc gian di den van phon= g quan uy Quan 3 de bao voi to chuc quan uy ve viec nay, nhung vo toi chay theo can khong cho toi vao quan uy. Viec nay cang lam toi tuc gian, nghi ngo va thay rang vo minh da bi ong Tam Thanh loi dung chuc quyen, chie= m doat va tro thanh nan nhan cua ong chu tich Quan 3 khong khac gi ba Dao Thi Nga. Co lan toi theo doi vao buoi chieu thay vi di hoc Anh van ngoai gio vo toi co den khach san Ban Co, nhung khoang hon mot tien= g dong ho thi vo toi di ra, quay ve tiep tuc di hoc. Toi tu thac mac: tai sao di hoc lai vao khach san de lam gi? Khi tim hieu va tra khao vo, toi biet them la vo toi bi ong Tam Thanh ga ga= m cho ong Tu Sang. Ong Tam Thanh o rieng mot phong voi mot co, con vo toi voi ong Tu Sang o chung mot phong, khi ve di chung voi ong Tu Sang mot xe. - Ong Tam Thanh va ong Tu Sang thuong hay duoc Nguyen Ngoc Chau, giam doc Cong ty vat tu Quan 3, chieu dai an nhau, thinh thoang co di len khach san so 57 Hoa Binh tai Bien Hoa, trong do co v= o toi va 2 co cung di theo nhung khong biet ro ten. - Ong Tam Thanh trong thoi gian lam bi thu chu tich thuong hay to chuc danh bai tai nha cung cac can bo doanh nghiep than can, den noi cac can bo huu tri deu biet. Nhu loi ong Tin, giam doc xi nghiep thuoc la Hoa Cuc (da nghi huu) noi voi toi:"Nay, biet khong, chieu nao o nha thang cha Tam Thanh cung nhu song bac Dai The Gioi thu nho". - Nam 1993, co lan toi len chuc tet o UBND Quan 3 thi ong Tam Thanh goi y keu toi bao ong di Singapore. Nhung toi im lang va khong dam hua vi cung da hieu y ong muon gi, con toi thi khong du kha nang thoa man y ong. Sau do ong ep vo toi lo 100 trieu de cho hai ong Tam Thanh va ong Tu Sang d= i Singapore. - Ong Nam Khoa (pho chu tich UBND Quan 3) co lan noi voi toi: "Ong Tam Than= h noi chong con Thu Hong la chong Tay cho khong phai chong ta". Phai chang loi noi do the hien ong Tam Thanh ghen tuc khi thay vo toi trong lam an kinh te phai tiep xuc nguoi nuoc ngoai, khong con chieu chuong hau ha ong nhu truoc day va ra tay tru dap khong thuong tiec? - Vi vo toi khong thoa man nhu cau cho ong Tu Sang di nuoc ngoai, va vo toi khong den voi ong Tu Sang nua nen ong Tam Thanh da tim moi cach gay kho khan cho Xi nghiep may xuat khau Quan 3? Cac de xuat va giai phap thao go kho khan cho xi nghiep deu bi ong Tam Thanh va Tu Sang phot lo khong gia= i quyet de bat vo toi mot cach oan uc. Toi xin kinh mong Ban lanh dao cac cap nghien cuu xem xet de minh oan cho v= o toi duoc sang to nham tro lai phuc vu cach mang, gop phan khac phuc hau qua hien nay. Toi xin cam doan nhung loi trinh bay tren day la su that, neu co gi sai tra= i toi xin chiu trach nhiem hoan toan. Ngay 3 thang 10 nam 1999 (ky ten) Nguyen Canh Sinh http://www.thegioinguoiviet.net/showthread.php?p=3D36071 Trung Dien 3/7/201= 0 03:05 PM La bai Truong Tan Sang Truong Tan Sang den nha gap tuong Nguyen Trong Vinh Du luan trong va ngoai nuoc dang quan tam ve viec ong Truong Tan Sang den gap cuu Tuong ve huu Nguyen Trong Vinh tai nha rieng vao ngay 13 thang 6 vua qua. S= u kien nay xay ra sau khi la thu cua mot so can bo ve huu gui cho Bo chinh tri va Ban bi thu hom 22 thang 4, 2010 de cap ve kha nang va tu cach dao duc cua bon nhan vat cao cap nhat trong dang Cong san Viet Nam la Nong Duc Manh, Nguyen Tan Dung, Nguyen Phu Trong va To Huy Rua. Theo cuu Tuong Nguyen Trong Vinh thi buoi gap go voi Truong Tan Sang dien r= a "than mat" va Sang to thai do le phep va tu ton. Truong Tan Sang co dat van de vo= i Tuong Vinh ve viec tai sao la thu gop y voi lanh dao lai de lot ra ngoai thi Tuon= g Vinh noi la ong khong biet, ong chi gui cho Bo chinh tri, Ban bi thu va cac Uy vien Trung uong dang ma thoi. Truong Tan Sang co yeu cau la neu co kien nghi gi thi nen gui tung nguoi den cho ong ta va khong nen ky gui tap the. Tuong Vinh noi rang ky ten ca nhan va gui di nhu Tuong Giap ma khong mot ai tra loi thi danh phai ky tap the may ra lanh dao tra loi. Tuong Vinh con noi rang ong da hoi Truong Tan Sang hai dieu: 1/ Khi Tuong Giap chet co lam quoc tang theo nhu yeu cau cua ong va Tuong Dong Si Nguyen hay khong= ; 2/ Dai hoi dang XI can thuc hien dan chu, Nguyen Chi Vinh toi loi day minh khong the dua vao Trung uong dang. Tuong Vinh cho biet la Truong Tan Sang noi co the lam quoc tang doi voi Tuong Giap nhung im lang khong tra loi ve vu Nguyen Chi Vinh. Voi noi dung cuoc trao doi giua Truong Tan Sang va tuong Vinh noi tren, khong can thiet de ong Sang phai den tan nha gap mat; nhung ong Sang da khong nhung b= o thoi gio ma con ha minh den gap Tuong Vinh cho thay la ong Sang co nhung toan tinh trong cuoc chay dua ghe Tong bi thu trong dai hoi dang ky XI sap toi. Tai sao? Nguoi ta chua biet la van de "Trung Quoc" se bung no co nao ngay trong dai hoi XI vao thang 1 nam 2011; nhung khong khi chong Trung Quoc va lan song phe phan han= g ngu lanh dao qua yeu hen doi voi Trung Quoc dang noi len manh me trong noi bo dang Cong san Viet Nam. Tai dai hoi dang ky IX vao nam 2001, ong Le Kha Phieu da mat ghe Tong bi thu chi vi da chi thi cho Bo ngoai giao ky Hiep uoc bien gioi phia Bac voi Trung Quoc nam 1999 va Hiep dinh phan ranh Vinh Bac bo voi Trung Quoc nam 2000. Ong Phieu da bi to la "phan quoc" vi da de cho Viet Nam mat qua nhieu dat va bien khi ky hai hiep dinh noi tren, nen da bi ep phai rut lui cuoc dua ghe tong bi thu, mac du luc do Trung Quoc da cu Ho Cam Dao (dang la Pho Chu tich nuoc) dan mot phai doan tren 15= 0 can bo cao cap sang tham quan va du dai hoi IX nham hau thuan cho Le Kha Phieu. Trong thoi gian qua, cac ong Nong Duc Manh, Nguyen Tan Dung, Nguyen Phu Trong, To Huy Rua, Pham Quang Nghi da bi to la dang phuc vu cho quyen loi cua Trun= g Quoc tai Viet Nam. Nhung bai viet cua Tuong Dong Sy Nguyen, Tuong Nguyen Trong Vinh va mot so can bo ve huu da phe phan nhung chinh sach sai lam, lam loi cho Bac Kinh cua mot so lanh dao; nhung nguoi ta lai it thay nhac den ten ong Truong Tan Sang, hien la Thuong truc Ban bi thu. Ong Sang duoc coi la nhan vat sang gia nhat trong sau nguoi (Truong Tan Sang, Ho Duc Viet, Pham Quang Nghi, Phung Quang Thanh, Nguyen Tan Dung, To Huy Rua) dang chay dua ghe Tong bi thu. Ong Sang hien duoc phe ong Nong Duc Manh hau thuan va xuat hien hau nhu thuong xuyen tai Hoi nghi dang bo cac cap va nhung ban nganh chuyen mon trong thoi gian gan day. Nhung dien bien noi tren cho thay la ong Sang dang nam nhieu uu the de chie= m vi tri so mot cua dang Cong san Viet Nam trong 5 nam toi, nhung ong Sang va phe nhom cua ong ta van con so hai dieu: Mot la so bi to la dong loa voi Nong Duc Manh, Nguyen Tan Dung, To Huy Rua trong Bo chinh tri, thong qua nhung chinh sach lam loi cho Trung Quoc tai Viet Nam; hai la so bi nhung can bo ve huu viet thu cong khai phe phan kha nang va tu cach dao duc cua minh trong qua khu, roi pho bien trong du luan, chac chan se anh huong xau den cuoc chay dua cua ong Sang. Truong Tan Sang sinh nam 1949 con goi la Tu Sang, tham gia dang Cong san Viet Nam vao nam 1970 luc dang hoat dong du kich tai Long An, mien Nam Viet Nam. Nam 1990, Tu Sang duoc dua len lam chu tich Uy ban nhan dan thanh pho Sai Gon va tro thanh Uy vien Trung uong dang nam 1991 (dai hoi dang ky VII). Nam 1997, Truong Tan Sang tro thanh Bi thu Thanh uy Sai Gon va duoc dua vao Bo chinh tri nam 1997 (dai ho= i dang ky VIII). Nhung den nam 1999, ong Sang bi trieu hoi ra Ha Noi giu chuc Truong ban kinh te trung uong, giao chuc Bi thu Thanh uy lai cho Vo Tran Chi. Tu nguoi nam quyen sinh sat Thanh uy Sai Gon =96 thu do tai chanh cua Viet = Nam dang trong con loc dau tu kinh te manh me nhat ca nuoc =96 tro thanh nhan vat ng= oi choi xoi nuoc tai van phong trung uong dang la mot su "that sung" cua Truong Tan Sang. Luc do, nhieu du luan cho la cuoc doi chinh tri cua ong Sang da het va viec trieu hoi ra Ha Noi giu ghe Truong ban kinh te chi la mua thoi gian nham che dau su dau da noi bo. Ong Sang bi cach chuc Thanh uy Sai gon vi hai ly do: 1/ Bi to cao la dinh vao duong day toi ac cua Nam Cam (mot vu an tham nhung lon nhat nuoc vao dau nam 2000); 2/ Bi to cao la bao che nguoi Hoa co nhung quyen loi kinh te lon tai Sai Gon. Nhung khi ra Ha Noi, Truong Tan Sang da duoc phe nhom Nong Duc Manh bao che nen Sang da chi bi bien phap ky luat la "khien trach" cua Trung uong vi thieu trach nhiem trong vu Nam Cam. Truong Tan Sang rat lo so nhung qua khu cua ong ta bi phanh phui trong du luan, nhat la vao luc ma viec chuan bi nhan su cua dai hoi dang ky XI dang o vao cao diem tu day cho den cuoi nam 2011. Do do, viec Truong Tan Sang den nha tuong ve huu Nguyen Trong Vinh la de nham vuot ve thanh phan cuu chien binh, thanh phan can bo ve huu voi hai chu dich: Thu nhat la khong tan cong Truong Tan Sang tren mat bao ve viec Sang nam trong nhom than Trung Quoc hay chay theo Trung Quoc. Kem che duoc viec nay la dieu toi quan trong doi voi Sang khi dai hoi XI bung no nhung tranh cai ve "Trung Quoc". Thu hai la muon chung to su thanh khan lang nghe y kien cua cac dang vien, nhat la lay long thanh phan dang vien dang co xu huong chong Trung Quoc va chong nhom lanh dao hien nay de giup Sang co tu the vuot troi hon cac nhan vat khac trong cuoc dua ghe Tong bi thu. Truong Tan Sang da tung thoat hiem o dai hoi VIII vao nam 2001 sau khi bi giang chuc Bi thu Thanh uy Sai gon cho ngoi choi xoi nuoc tai van phong Trung uong voi chuc Truong ban kinh te vao nam 1999 vi nho biet dua vao phe Nong Duc Manh o thuong tang. Lan nay, Truong Tan Sang thay dua vao phe Nong Duc Manh khong con tot nua vi ong Manh dang bi to cao di dem voi Bac Kinh. Do do, viec Truong Tan Sang di gap Tuong ve huu Nguyen Trong Vinh khong gi khac hon la dang di tim mot the dua moi tu ha tang dang vien, dac biet la tu khoi dang vien dang chong Trung Quoc quay quanh tuong Vo Nguyen Giap. Dieu nay cho chung ta thay la Bo chinh tri va ca Truong Tan Sang dang o vao the cung quan truoc su suy thoai trong noi bo dang ngay tro nen nghiem trong. Tom lai, Truong Tan Sang di gap Tuong Nguyen Trong Vinh la nham thu phuc "nhan tam" ve cho minh trong luc su bat tin, bat phuc va bat man lanh dao dang dang cao trong noi bo dang vi su yeu hen cua lanh dao doi voi Trung Quoc. Nhung qua noi dung cua cuoc gap go, nguoi ta thay rang Sang chi la tay thu doan, co hoi, chi quan tam den cai ghe quyen luc cua minh ma thoi. http://www.nguoi-viet.com/absolutenm/anmviewer.asp?a=3D124553 16/12/2010 Tin nhan su Dai hoi Dang khoa XI (du kien khai mac ngay 11/1/2011): TP HCM: Ong Truong Tan Sang se len lam Chu tich nuoc - bieu tuong danh du cua quoc gia - la nguoi dai dien cho dat nuoc trong doi noi va doi ngoai http://www.thongluan.org/vn/modules.php?name=3DNews&file=3Darticle&sid=3D34= 47 Bui Tin 10/01/2009 TP HCM: Ca Sai Gon deu biet ong Truong Tan Sang song buong tha, bua bai ra sao, voi danh hieu "cong tu Bac Lieu", tung cuong hiep nu nhan vien, tung co con rieng, phai dua ra Ha Noi tranh du luan che trach. (Cu tri quan tam: Can tim hieu ve tinh canh cua nguoi phu nu co con rieng voi ong Truong Tan Sang, ai la nguoi giup do de cho chi va cham soc dua tre khi moi ra doi, nhung ai biet chuyen nay va tu thoi gian do den nay cuoc song cua ho ra sao, co ai bi ham hai khong?) http://boxitvn.blogspot.com/2010/06/ong-chi-truong-tan-sang-en-tham-toi.htm= lNguyen Trong Vinh 25/06/2010 08:28 Ong Truong Tan Sang tuyen bo voi tuong Nguyen Trong Vinh: "Se thuc hien dan chu" http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (trich dan noi dung) TP HCM: Chinh ong Truong Tan Sang "lam ngo", "bao ke" cho "bang dang xa hoi den Nam Cam" long hanh trong thoi gian dai, gay nhieu toi ac, lam ma= t an ninh trat tu nghiem trong; gay bat binh, phan no, mat long tin trong nha= n dan. http://www.talawas.de/ Tham nhung chinh tri http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (trich dan noi dung) TP HCM: Ong Truong Tan Sang co nhieu sai pham, ca trong cong tac can bo, va= n ung dung len chuc Truong Ban Kinh Te Trung uong http://danluanvn.blogspot.com/2010/11/phe-nguyen-tan-dung-phan-cong.html13/= 11/2010 4:35 PM Mot so vi Lao thanh to cao Truong Tan Sang Truong Tan Sang da ket noi voi Nguyen Huu Hien mot phan tu tha hoa nay bi khai tru khoi dang va bon phan dong Tran Huynh Duy Thuc. Truong Tan Sang da yeu cau bang van ban dua Nguyen Huu Hien lam Cuc truong Bo Buu Chinh Vien Thong de phu trach cac de an lon cua ngan hang the gioi. http://blog1nguoiviet.blogspot.com/2010/10/ang-csvn-trong-tinh-trang-hiem-n= gheo.htmlNghiem Van Thach 20/10/2010 Truong Tan Sang, Nguyen Tan Dung canh tranh ngay cang nhieu be boi (trich) Trong su canh tranh voi ong Dung, theo mot thong tin rat chinh xac, ong San= g da lam mot sai lam lon la vu Dang Dan chu. Qua Nguyen Sy Binh, ong Sang muon muon tay Le Cong Dinh, Tran Huynh Duy Thuc, Nguyen Tien Trung, lam dung cu de danh pha ong Dung trong danh nghia doi lap dan chu. Tran Huynh Duy Thuc duoc trao nhung tai lieu de to giac Nguyen Tan Dung tham nhung tren cac blog cua minh. Nhung ong San= g da dung nhung nguoi qua kem. Phe ong Dung phat giac duoc va bat ca bon. Truoc nhung chung co khong the choi cai, tat ca da nhanh chong nhan toi va xin khoan hong. Truoc do ho to ra manh bao bao nhieu vi cay co o du ong Sang thi sau do ho khiep nhuoc bay nhieu vi thay ong Dung da thang. Bien ban nhan toi cua ho trong do co su lien he voi phe Truong Tan Sang duoc gui len Bo Chinh tri, khien ong Sang phai "nhan khuyet diem la da thieu canh giac". Sau vu nay, van de ong Sang lam Tong bi thu hau nhu khong con dat ra nua. Nhung nhu the co ve qua chu quan, coi thuong muu meo cua ong Sang v= a vay canh ma ong da tao ra trong hon muoi nam giu vai tro ban phat on hue trong chuc vu Truong ban Kinh te Trung uong va Thuong truc Ban bi thu. Ong Sang da chuyen sang lien ket voi cac ong Nguyen Phu Trong va Ho Duc Viet, va dan dan tranh thu duoc khoi dang vien lo ngai ban tinh anh chi va dung tung tham nhung cua ong Dung. http://www.tin247.com/nhieu_can_bo_tham_nhung%2C_tieu_cuc_trong_linh_vuc_nh= a_dat-6-21314888.html17/08/2006 - 05:57 - Nguon: vnExpress.net TP HCM: Nhieu can bo tham nhung, tieu cuc trong linh vuc nha dat - Chu yeu tap trung o viec thanh ly, ban nha dat thuoc so huu nha nuoc; loi dung danh nghia lap du an nha cho nguoi co thu nhap thap hoac cho can bo, cong nhan vien nhung sau do phan lo, ban nen khong dung doi tuong... - Vi pham pho bien tren linh vuc tai chinh la viec mua sam vat tu trang thiet bi voi gia tri lon khong qua dau thau hoac quan ly dau thau khong chat che, lam phat sinh nhieu tieu cuc, gay that thoat, thiet hai lon. http://vietnamnet.vn/bandocviet/2003/6/15020/ 07:48' 10/06/2003 (GMT+7) TP.HCM: Vu an Nam Cam http://www.vietnamreview.com/modules.php?name=3DNews&file=3Darticle&sid=3D6= 97131/7/2008 00:47 TP HCM: Khi xay ra chuyen bang dang Nam Cam long hanh o Sai Gon, Truong Tan Sang la Bi thu thanh uy, Tuong Cong An Bui Quoc Huy la giam doc So Cong An thanh pho (HCM), Tran Mai Hanh la tong bien tap to "Nha Bao Va Cong Luan". Chuyen vo lo tu mot bai bao to cao Tran Mai Hanh an tien cua Nam Cam de tay nay ra tu som. Cuoc dieu tra bat dac di lam noi len mot he thong chang chit tu cong an, vien chuc tu phap, vien chuc thanh pho, dinh liu "ch= e du" cho bang dang xa hoi den lam an. Cuoi cung, nam 2003, Nam Cam bi an tu hinh, Tran Mai Hanh (da len toi chuc Giam doc Dai Phat Thanh Quoc Gia), Bui Quoc Huy (da len toi thu truong Bo Cong An) va Pham Sy Chien (pho vien truong Vien Kiem Sat Nhan Dan Toi Cao) chi bi an tu tuong trung. Truong Tan Sang tuy mat chuc (bi thu) thanh uy lai ra Ha Noi lam Truong Ban Kinh Te Trung uong, nay van la uy vien Bo Chinh Tri. (Y kien cu tri: Ong Truong Tan Sang ro rang thieu nang luc, thieu guong mau= , bi ky luat ma sao van duoc gioi thieu vao Trung uong va Bo chinh tri? Trong vu PMU18, ong Truong Tan Sang tiep tuc boc lo su cham tre xu ly ky luat ong Nguyen Viet Tien, giam tac dung ren de, giao duc phong chong tham nhung). http://vietbao.vn/Xa-hoi/Hoi-nghi-Trung-uong-7-ky-luat-khien-trach-uy-vien-= Bo-Chinh-tri-Truong-Tan-Sang/10804935/157/22/11/2003, 08:15 GMT+7 (Theo TTXVN) Ban Chap hanh Trung uong thi hanh ky luat Ong Truong Tan Sang, uy vien Bo Chinh tri, Truong ban Kinh te Trung uong bang hinh thuc khien trach vi trong thoi ky lam Bi thu Thanh uy TP HCM (khoa VI) chua lam tron trach nhiem trong viec chi dao dieu tra, ngan chan nhung hoat dong toi pham cua Truong Van Cam cung dong bon va co nhung khuyet diem trong cong tac can bo. http://vietbao.vn/An-ninh-Phap-luat/Ket-luan-dieu-tra-chuyen-an-Nam-Cam-pha= n-61-Ly-lich-Tran-Mai-Hanh-Pham-Si-Chien-va-con-gai-Nam-Cam/10807177/218/Tr= an Mai Hanh, Pham Si Chien va con gai Nam Cam 15/12/2003 14:56 GMT+7 Tran Mai Hanh (nguyen pho chu tich kiem Tong thu ky hoi nha bao VN) da cho dang bao noi dung kien nghi huy bo quyet dinh tap trung giao duc cai tao doi voi Nam Cam. Pham Si Chien (nguyen pho vien truong VKSND Toi cao) chi dao soan thao va ky kien nghi tren. Ve viec nay, ong Chien duoc "lot tay" khoang 44 trieu dong, ong Hanh hon 93 trieu. http://vietbao.vn/An-ninh-Phap-luat/Ket-luan-dieu-tra-chuyen-an-Nam-Cam-pha= n-62-Ly-lich-ong-Bui-Quoc-Huy-va-Duong-Minh-Ngoc/10807236/218/17/12/2003 07:34 GMT+7 TP HCM: Khi lam Giam doc Cong an TP HCM, ong Bui Quoc Huy biet Nam Cam co nhieu hoat dong bang nhom theo kieu xa hoi den, nhung khong chi dao triet pha co hieu qua. Duong Minh Ngoc (nguyen truong phong canh sat hinh su Cong an TP HCM) bi Nam Cam loi keo, mua chuoc, bien thanh binh phong bao che hanh vi pham toi trong thoi gian dai. http://www.baomoi.com/Home/DoiNoi-DoiNgoai/voh.com.vn/Dong-chi-Truong-Tan-S= ang-Tiep-tuc-dam-bao-dan-chu-ky-cuong-trong-Dang-doi-moi-phuong-thuc-lanh-d= ao/4376143.epi6/8/2010 Ong Truong Tan Sang reu rao: Tiep tuc dam bao dan chu, doi moi phuong thuc lanh dao http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (trich dan noi dung) TP HCM: Ong Truong Tan Sang co nhieu sai pham nghiem trong van tiep tuc duo= c bo tri vao Bo chinh tri va Ban Bi thu khoa X http://vietbao.vn/Chinh-Tri/Ong-Truong-Tan-Sang-duoc-phan-cong-lam-Thuong-t= ruc-Ban-Bi-thu/65052746/96/09/5/2006, 08:33 GMT+7 TP HCM: Ong Truong Tan Sang duoc phan cong giu chuc Thuong truc Ban Bi thu Trung uong Dang. http://vietnamnet.vn/xahoi/2006/05/569845/ 14:00' 12/05/2006 (GMT+7) TP HCM: Nhieu kho bai Nha nuoc bi 'an tuoi nuot song' http://bee.net.vn/channel/2981/201004/Uy-tin-cua-Lien-hiep-hoi-ngay-cang-du= oc-nang-cao-1751771/ Ong Truong Tan Sang rao giang: can tao moi truong hoat dong dan chu, ton trong tu do sang tao trong nghien cuu, trao doi hoc thuat http://vnexpress.net/GL/Xa-hoi/2008/10/3BA07348/ Kien Cuong 7/10/2008, 21:0= 7 GMT+7 'TP HCM da buong long quan ly moi truong trong 15 nam qua' - Ong Truong Tan Sang phai chiu trach nhiem Nuoc song kenh rach den ngom, hoi thoi do cac KCN "vo tu" xa thai truc tiep, o nhiem khong khi dang o muc bao dong vi khong ai "kiem soat", nhieu chi tieu moi truong vuot qua tieu chuan... http://danlambao.wordpress.com/2010/12/04/da-n%E1%BA%B5ng-khong-tham-nhung-= va-c%E1%BA%A5m-c%E1%BB%ADa-sinh-vien-h%E1%BB%87-t%E1%BA%A1i-ch%E1%BB%A9c/04= /12/2010 Ong Truong Tan Sang co bang tai chuc luat http://worldcup.nld.com.vn/90220p0c1002/ai-da-xa-xeo-1500-ha-dat-nong-truon= g-.htm Cam Lan 08/01/2004 22:23 Vu xa xeo 1500 ha dat nong truong o TP HCM - Ong Truong Tan Sang phai chiu trach nhiem *635 ha dat bi xa xeo da duoc lam thu tuc "hop thuc hoa"? UBND TP da giao 10.159 ha dat cho 6 nong truong (NT) gom NT Le Minh Xuan, N= T Pham Van Hai, NT Pham Van Coi, Cong ty Bo sua (thuoc Tong Cong ty Nong nghiep Sai Gon - NNSG), NT Lang Le (thuoc huyen Binh Chanh) va NT Tam Tan (thuoc huyen Cu Chi). The nhung, tu nam 1989 den nay, mot so dat thuoc cac NT tren da bi lan chiem, su dung sai muc dich. Thi nhau chiem dat Tu quy II den quy IV/2003, Doan Kiem tra So Nong nghiep va Phat trien nong thon (NN & PTNT) TP va So Tai nguyen - Moi truong (TN - MT) TP da tien hanh ra soat, kiem tra viec quan ly, su dung dat nong nghiep tai 6 NT tren. Ket qua bao cao that kho tin: Dien tich chi con 8.686/10.159 ha dat duoc giao; so dat bi "mat", xam pham gan 1.500 ha. Cac thanh vien trong doan kiem tra cung het suc bat ngo khi biet nguyen nha= n chinh lam mat ca ngan ha dat la NT bi "buoc" phai cat chia dat neu muon yen on trong cong tac canh tac, trong trot. "Loi dung uy the cua minh, cac lanh dao tien nhiem cua dia phuong (TP HCM) hoac cua co quan chu quan (Tong Cong ty NNSG TP) da goi y lanh dao NT phai tu nguyen chuyen giao vai mau dat giup dia phuong lo cho o cho nguoi dan di kinh te moi va nguoi dan so tai. Doi lai, dia phuong se nham mat lam ngo nhung sai pham cua NT...", ba Nguyen Thi Du, Chanh Thanh tra So TN - MT TP, nhan dinh. Theo Pho Giam doc Thuong truc So NN & PTNT TP Pham Thuyet, tong dien tich dat cua 6 NT da chuyen giao cho dia phuong, don vi khac la 635 ha; cu the: - Tu nam 1989 NT Tam Tan da chuyen quyen quan ly 282 ha cho 4 xa huyen Cu Chi, bien dat trong trot thanh dat tho cu danh de "gian dan", dong thoi "dua" ga= n 45 ha lam bai chon lap rac so 1 nam 2002; - NT Le Minh Xuan nam 1997 da chuyen giao 40 ha cho huyen Binh Chanh lap kh= u cong nghiep. - NT Pham Van Hai (TP HCM) cung buoc phai giao 32 ha cho huyen Duc Hoa (Lon= g An) vao nam 1991; (ong Truong Tan Sang - que o huyen Duc Hoa - tinh Long An= , nguyen la giam doc NT nay, nguyen Giam doc So Nong Nghiep TP HCM den nam 1992 thi lam Chu tich UBND TP= , phai chiu trach nhiem) - NT Pham Van Coi chuyen 176,7 ha gom: 126,77 ha cho Cong ty FoSaCo nam 199= 1 va 2001 de trong cay Pachira xuat khau, 25 ha cho Xi nghiep Chan nuoi heo Dong Hiep nam 2001 va gan 25 ha cho Xi nghiep Chan nuoi heo Phuoc Long nam 2002... Tat ca deu duoc thuc hien theo chi dao mieng hoac giay tay. 14 nam troi qua, 635 ha dat bi xa xeo tren da duoc "hoan chinh cac thu tuc phap ly" theo quy dinh. Con hon 838 ha dat chuyen giao theo lenh chua hoan chinh thu tuc; trong do NT Pham Van Coi la 632 ha, Cong ty Bo sua 108 ha, NT Pham Van Hai 26,8 ha..= . thi bi doan kiem tra phat hien giu lai. Khong chi co cac ca nhan, don vi Nha nuoc chiem dung, nhung ho dan giap ran= h voi dat NT cung tranh thu xam canh ca chuc ngan met vuong, nhu gia dinh cua ba Pham Thi Hanh va ong Dang Ba Dong o ap 6, xa Pham Van Hai da chiem dung 15000 m2 dat NT Pham Van Hai trong bach dan tu nam 1989 den nay. Loi nong truong, dia phuong hay co quan chu quan? Pho Giam doc So TN-MT TP Nguyen Thanh Nhan cho rang de hien tuong chiem dung, xam canh ca ngan ha dat NT trong mot thoi gian lau nhu vay, So NN & PTNT TP va Tong Cong ty NNSG TP phai chiu trach nhiem hoan toan. (Ong Truong Tan Sang = - Uy vien Bo Chinh Tri, nguyen la Giam doc so Nong Nghiep TP HCM, den nam 1992 thi lam Chu tich UBND TP HCM, phai chiu trach nhiem.) Ngoai nhung nguyen nhan do: chuyen dan dien tich tho cu cap cho cac ho gian dan ve dia phuong quan ly, chuyen giao cho don vi khac trong qua trinh thuc hien quy hoach chung cua TP..., "So NN & PTNT TP va Tong Cong ty NNSG khong the do trach nhiem rang dat chua xac dinh ranh cam moc cu the nen viec quan ly, su dung dat cua cac NT con nhieu kho khan, ton tai va vuong mac" - ong Nhan noi thang. Theo ong, So NN & PTNT TP phai xac dinh that cu the ve thoi diem va hien trang, phoi hop voi dia phuong tien hanh do lai dien tich ranh dat hien co truoc nam 2004 va nhanh chong goi bao cao trinh len UBND TP xem xet. Ong Nhan cung nhan manh neu khong co su kien quyet kiem tra thi chac chan dien tich dat NT bi lan chiem, su dung sai muc dich khong dung lai con so 1500 ha. Ngoai ra, cung can phai truy cuu trach nhiem cua nhung ca nhan, don vi tung loi dung chuc quyen buoc NT phai chia cat dat san xuat vi truc loi ca nhan. (Y kien cu tri: Ong Truong Tan Sang nguyen la giam doc NT Pham Van Hai, nguyen Giam doc So Nong Nghiep TP HCM, den nam 1992 lam Chu tich UBND TP, phai chiu trach nhiem ve nhung sai pham trong vu viec nay; tiep theo la cac ong Nguyen Minh Triet va Le Thanh Hai lan luot lam Bi thu Thanh uy hoac chu tich UBND TP cung phai chiu trach nhiem; gan 1500 hecta dat bi chiem dung trai phap luat, truc loi ca nhan... trong rat nhieu nam; viec chia tach, sap nhap hay phan chia lai dat dai giua cac tinh la thuoc tham quyen cua Quoc Hoi, chu khong phai tham quyen cua cac Nong truong hay so Nong Nghiep, TP HCM hay tinh Long An.) ----- Phan 2: Cu tri kien nghi: Bo chinh tri kiem tra, kiem diem, cach chuc cac ong Nguyen Tan Dung, Le Thanh Hai tham nhung, thoi nat http://vietnamnet.vn/chinhtri/2008/10/807412/ Vinh Giang 05:59, 08/10/2008 (GMT+7) () Thu tuong: Vu tham nhung o Thu Thiem (TP HCM), Thu tuong co lam ngo, co bao che khong? Cu tri mong muon Thanh tra chinh phu nhap cuoc vu Thu Thiem - Tai buoi tiep xuc cu tri dai bieu Quoc hoi quan 2 (TP.HCM) cua Chu tich nuoc Nguyen Minh Triet chieu 7/10, nhieu cu tri da phan anh buc xuc ve van de tai dinh cu, den bu giai toa tai khu do thi moi Thu Thiem. Khong tin tuong Thanh tra thanh pho Nhieu cu tri khong dong tinh ve ket luan thanh tra cua Thanh tra TP.HCM ve du an khu do thi moi Thu Thiem va de nghi Thanh tra Chinh phu vao cuoc. (Anh: Chu tich nuoc Nguyen Minh Triet gap go cu tri quan 2. Anh: TH) "Chung toi khong hai long ve ket qua thanh tra, de nghi thanh lap thanh tra Chinh phu xu ly nhung ca nhan, to chuc, tuy theo muc do vi pham", cu tri Nguyen Mai Linh= , phuong An Loi Dong, len tieng. Theo cu tri Le Hong Hanh, de Thanh tra TP thuc hien thanh tra dat dai tai Thu Thiem chang khac nao vua da bong vua thoi coi, dan den tinh trang day trach nhiem xuong cap duoi. Mot so cu tri cho rang ket luan thanh tra vua qua khong thoa dang. Khu dat 160 ha trong khu do thi moi Thu Thiem duoc Chinh phu phe duyet de tai dinh cu cho dan chua duoc giai thich thoa dang ve muc dich su dung hien nay. Ngoai ra, gia boi thuong dat theo cac quyet dinh 135/2002 va 123/2006 cua UBND TP qua thap so voi gia thi truong. Mot so cu tri con to ra ban khoan ve van de truoc khi thanh tra, du luan phan anh co 28 du an bi phan lo ban nen, sau khi thanh tra, lai len den 42 du an. "Ket luan thanh tra khong giai toa duoc buc xuc cua chung toi, ma nguoc lai cang lam buc xuc tang len", cu tri Vu Mai Linh, phuong An Loi Dong, noi. Cu tri Dinh Kim Tuan, phuong An Khanh, chia se y kien: "Ket luan thanh tra lai do loi cho cac so, nganh va quan, trong khi truoc do quan lai giai thich chi thuc hien su chi dao cua TP. Nhu vay la do trach nhiem cho nhau". http://danluan.org/node/6595 Dan Den 08/10/2010 Le Thanh Hai, Nguyen Tan Dung va vu cuop 15 ty USD tai khu do thi moi Thu Thiem quan 2 TPHCM Thu doan cuop dat va vu Vinasin 2 Khu do thi moi Thu Thiem - Quan 2 - TPHCM la manh dat rong 930ha nam ngay ben bo con song Sai Gon, doi dien khu trung tam sam uat sang trong so 1 thanh pho. Do co vi tri tuyet dep nhu vay nen Thu Thiem tat yeu da tro thanh mieng moi thom hap dan cac dai gia bat dong san va mot so quan chuc bien chat cua TP Ho Chi Minh va Trung Uong. Tu 2002, lanh dao thanh pho ma luc do ong Le Thanh Hai la chu tich thanh ph= o da voi va ra lenh thu hoi dat khi chua thuc hien nhung quy dinh bat buoc cua phap luat. Su vo trach nhiem thay rat ro khi du an khu do thi moi Thu Thiem duoc goi mot cach mia mai la du an BON KHONG: "khong du an dau tu, khong quy hoach chi tiet, khong phuong a= n boi thuong, khong nha tai dinh cu". Khong dung lai o do, voi da tam 'thu hoi da= t voi chi phi thap nhat', Le Thanh Hai da chi dao dan em lay gia dat tu nam 1995 (theo quyet dinh 05 ngay 4/1/1995) de boi thuong cho dan tu nam 2002 den gio bat chap cac quy dinh cua Quoc hoi va Chinh phu boi thuong sat gia thi truong. Su bat hop li o day la chenh lech gia boi thuong va gia thi truong vuot qua suc tuong tuong cua moi nguoi, theo quyet dinh 135/QD-UB ngay 21/11/2002 cua UBND TPHCM, gia boi thuong dat o la khoang 2 trieu dong mot met vuong, dat nong nghiep 200.000 dong mot met vuong, con gia thi truong thi cao vot, dat o trong du an 70 trieu dong, dat nong nghiep bang 40% khoang 28 trieu dong. Trong luc Quoc hoi va Chinh phu trinh trong thong cao voi quoc dan rang tu nam 2003 se boi thuong day du nhung thiet hai ma nha nuoc gay ra khi thu hoi dat cua dan, boi thuong sat gia thi truong, thi o Sai Gon, Le Thanh Hai lai bat chap het tat ca quy dinh cua cap tren de neo gia boi thuong hon chuc nam qua vo ly lam hai dan den. Chenh lech gia boi thuong len den hang chuc tham chi hang tram lan chac chan phai lam dem den nhung quyen loi khong lo nhung hoa= n toan phi phap cho Le Thanh Hai va e kip. Tinh so so moi met vuong dat cac quan lam 'venh' ra duoc 30 trieu dong thi tong so tien dan Thu Thiem bi 'nang' mat se la mo= t con so voi vo so nhung so 0 dang sau: 270.000 ty dong tuong duong (lon gap 3 lan so tien thiet hai cua vu an Vinasin. Khong con nghi ngo gi nua, vu 'cuop dat' o Thu Thiem va vu Vinasin la 2 vu an tham nhung lon nhat trong lich su cach mang Viet Nam. Nam 2008, sau khi lam song phan no cua nguoi dan Thu Thiem ve cac quy dinh boi thuong qua vo li 'no tung' tren cac to bao uy tin cua ca nuoc, thanh pho va quan 2 da tim cach 'xoa diu' nhan dan va mot ban du thao sua doi bo sung chinh sach boi thuong duoc dua ra trung cau y kien cu tri cho co ve dan chu. Cu tri, trong do co nhieu cuu chien binh va dang vien trung kien, da thang thung bac bo du thao nay vi ly do du thao khong boi thuong sat gia thi truong theo luat Dat Dai 2003 va nghi dinh 197 cua Chinh Phu ma ho tro theo kieu bo thi cho them chut dinh khong dang ke. Cho du nhan dan da bac phuong an sua doi bo sung nhung 'chinh quyen cua dan do dan vi dan' quan 2 ma dung dau la Bi thu quan Tat Thanh Phong va Chu tich quan Le Trong Sang (deu la nhung de tu than tin cua Le Thanh Hai) van cu de trinh thanh pho va thanh pho van cu ngang nhien phe duyet mot quyet dinh vua trai quy dinh cua tren vua trai y cu tri (quyet dinh 06 ngay 21/1/2009). Dung nghi dau oc lanh dao ta 'dau phu' ma lam to, de dam bao an toan cho minh, truoc khi lieu minh dat but ky vao mot quyet dinh trai luat cua UBND, Nguyen Thanh Tai - Pho CT UBND TPHCM da yeu cau Le Thanh Hai chu tri cuoc hop cua tap the Thuong truc thanh uy vao thang 12/2008 de thong qua chu truong khong thuc hien theo luat Dat Dai 2003 va cac nghi dinh cua Chinh Phu, chi ho tro them cho dan Thu Thiem. The la tap the thanh uy TPHCM da quyet, ma co quyet sai di chang nua thi cung chang the nao xu duoc ca tap the thanh uy. Phuong thuc 'pham toi co to chuc= ' theo luat hinh su la tinh tiet tang nang nhung theo luat cua Dang thi chinh la mot tinh tiet giam nhe (tham chi nhe nhu khong), vi vay phuong thuc nay duoc dem ra van dung thuon= g xuyen. Noi tom lai la nhung gi ma lanh dao TPHCM da quyet thi se mai mai khong tha= y doi mac rang luat va nghi dinh co thay doi the nao va bao nhieu lan di nua. Cu yen tam vay di! Nho on chinh sach moi cua ong Hai gia dinh toi hon 8 tram met vuong dat cac= h duong Dong Khoi mac nhat Sai Gon hon 200 met se chi mua duoc hon 2 met vuong dat = o duong Dong Khoi. Qua la cuoc song cua toi con tui nhuc re rung hon kiep no le? 'Ra hang' Sau khi da thu gom duoc mot dien tich dat kha lon, buoc tiep theo phai tinh la 'ra hang' hay noi theo giong cua gioi kinh doanh la 'hien thuc hoa loi nhuan'. Lanh dao thanh pho da chon mat Dang Thanh Tam de goi vang, ma Dang Thanh Tam la ai, la nha tu ban giau so mot VN, la chu tich hoac giam doc cua cac cong ty kech su nhu Sai Gon Invest, Kinh Bac, Tap doan Tan Tao (ba Hai Tam chi ruot cua thu Tuong Nguyen Tan Dung la= m chu tich), Dang Thanh tam da xin duoc bon cac du an nho vao nhung moi quan he 'te nhi' voi cac vi lanh dao dat nuoc trong do co nhan vat chinh cua vu Vinasin-Thu Tuong Nguyen Tan Dung. Theo tiet lo cua bao chi, trong luc gia dat thi truong qua= n 2 lien tuc sot nong thi lanh dao thanh pho lai tinh cho Cong vien Phan mem cua Dang Thanh Tam mot cai gia khong the 'lanh' hon: 10 trieu dong mot met vuong (1.500 ty cho dien tich 15,9ha). Cung theo bao chi, Dang Thanh Tam da dem dat nay di gop von phap dinh voi doi tac nuoc ngoai duoc 1.500USD mot met vuong. Ly ky hon nua la thang 07 nam 2009 (mot nam sau khi mua dat va tien hanh du an), chu dau tu du an Cong vien phan mem van chua dong mot xu tien dat cho nha nuoc. Se con rat nhieu du an nua duoc giao dat va tien dat cua dan se tiep tuc un un chay ra khoi tui dan vo tui cac tu ban than huu va cac quan chuc tham nhung. Dong tien khong lo kiem duoc tu vu ap phe Thu Thiem s= e dong vai tro the nao trong vu chay ghe trong cac dai hoi sap mo man thoi gian toi? Co nhan co noi 'Cuop dem la giac, cuop ngay la quan'. Van biet quan thi pha= i 'cuop' moi la quan nhung cuop voi muc do chong mat nhu vay thi dan co ma cap dat m= a an. Lo dien o du: Nguyen Tan Dung Tinh hinh cuop boc dang xuon xe thi nam 2006 ong Nguyen Minh Triet trung cu chuc Chu tich nuoc va bat dau sinh hoat to dai bieu Quoc hoi tai quan 2. Tu khi sinh hoat tai day ong Triet khong co duoc mot ngay tan huong cuoc doi Chu tich nuoc ma suot ngay phai 'lanh du' nhung buc xuc cua cu tri Phuong Thu Thiem vi bi boc lot mot cach qua tan bao boi 'ban tay sat' cua chinh quyen. Khong chiu noi su trach moc cua dan, trong buoi sinh hoat voi cu tri Thu Thiem thang 11/2007, ong Triet gio nam dam lo= n tieng tuyen bo: toi se ve yeu cau Thu tuong dua doan thanh tra Chinh phu lien nghanh vao thanh tra toan dien khu do thi moi Thu Thiem. Hay doi day! (Coi bo nhu ong ta moi xem phim hoat hinh cua Nga!). Biet truoc tinh hinh bat on vi dan kien quyet dau tranh chong tham nhung, L= e Thanh Hai da cau cuu o du cua minh la Nguyen Tan Dung va mot kich ban thuong gap da dien ra: thanh pho xin duoc nghiem khac tu thanh tra va ong Dung da 'vui ve nhan loi= ' (khong cho Thanh tra Chinh phu vo thanh tra thanh pho vi li do Thanh tra... ban). Chac la Thanh tra Chinh phu chi chuyen lam nhung vu an 'chuot nhat', khong lam 'chuot cong'. Trong lich su cach mang cua dat nuoc, Nguyen Tan Dung cung da co quyet dinh tuong tu la can tro thanh tra Chinh phu vo thanh tra con cung Vinasin, ket cuc la Vinasin da chim ngay khi chuan bi ra khoi keo theo gan 5 ty USD tien thue cua dan. Tiep noi hanh dong bao che cho tap doan tham nhung Le Thanh Hai, ca nhan Th= u tuong Dung da qua mat tap the (khong dung tham quyen) chinh phu ngang nhien hop thuc hoa cho sai pham cua TPHCM bang cong van 977/VPCP-KNTN ngay 3/10/2008 cho phep TPHCM thu hoi dat khu do thi moi Thu Thiem ma khong can lam phuong an boi thuong nhu nghi dinh cua Chinh phu da qui dinh. Bat duoc tin hieu tot tu ngai Thu tuong, duoc nhan nhung dong tien hau hinh ma chinh quyen goi la 'tien du an', can bo quan 2 thi nhau dan ap ep dan ket hop voi lua phinh de dan nhe da ki chap nhan chinh sach boi thuong bat luong. Quoc hoi thi nhu d= a bit mat, bit tai truoc vu an lon nhat lich su dat nuoc. Dan den chung toi muon Quoc hoi phai chung to su dung cam ma moi dai bieu deu co trong trai tim minh to chuc thanh tra 2 vu an sieu nghiem trong la vu Vinasin va khu do thi moi Thu Thiem. Con nhieu chi tiet chan dong nua, neu Quoc hoi muon biet chan to ke toc vu tieu cuc nay xin cu hoi dong chi Chu tich Triet la biet het. Chung toi mong nhan duoc thong tin dia chi noi o cua cac lanh dao thanh pho va quan 2 co dinh liu den vu Thu Thiem va gia dinh de co dip se vieng tham va van dong thuyet phuc cac 'dong chi' tro ve dung con duong ma dang da chon. Cau troi khan phat phu ho cho ke thu cua nhan dan la Le Thanh Hai, Nguyen Tan Dung, Nguyen Trung Tinh,Tat Thanh Phong, Le Trong Sang va nhung ke bao che, tong pham, dot nhien co liem si va tu nguyen khong ung cu trong dai hoi dang thanh pho va trung uong toi day. http://my.opera.com/ThanhNienQuocNoi/blog/show.dml/18961532 11/10/2010, 10:02:10 Ba Hai Tam chi ruot cua Thu Tuong Nguyen Tan Dung lam Chu tich Tap doan Tan Tao http://www.kiengiangsouvenirs.com/Doc/KhieuKien/LanDatKG.htm Thanh Quang, phong vien RFA - 2010-08-02 Thu tuong: Du an lan bien lai lan dat cua dan (du an cua tap doan Tan Tao) Mot trong nhung rac roi ve dat dai dai dang va gay nhieu chu y trong nuoc c= o le la vu o Rach Gia =96 tai noi goi la "khu lan bien" Kien Giang. (Anh: Mot Khu do thi moi dang xay dung tai Khu lan bien Rach Gia, Kien Giang. Photo courtesy of danlentieng.net) Thuc chat cua du an lan bien Kien Giang ra sao? Nguoi dan bi anh huong phan ung nhu the nao? Thanh Quang tim hieu van de nay, moi quy vi theo doi sau day: Lan nguoc vo dat canh tac Du an ma chinh phu cho phep chinh quyen Kien Giang lan ra bien tren dien tich 420 hecta de mo rong dat sinh song cho cu dan dia phuong, nhat la giup nhung ho ngheo co dat cu tru, han la dieu tot dep tren ly thuyet. Nhung du an ay da gay phan ung dang ke cung nhieu noi uat uc cua cu dan o Phuong An Hoa va Phuong Vinh Bao thuoc T= P Rach Gia trong 12 nam nay, khi cong trinh "lan bien" tro thanh lan nguoc vo dat canh tac va sinh song lau nam cua nguoi dan. Cach nay it lau, tap chi Phap Ly cua Hoi Luat Gia Viet Nam phai ket luan rang voi "quyet dinh cua chinh phu cho Kien Giang lan bien 420 ha, viec UBND tinh Kien Giang thu hoi 45 hecta dat cua dan la do Ban Quan ly Cong trinh lan bien "che ra" va duoc UB tinh "OK". Moi day, bao Phap Luat cung ket luan rang "Kien Giang loi dung lan bien de lan dat dan". Chua co quyet dinh cuoi cung cua chinh phu thi tai sao chinh quyen Kien Giang lai ra quyet dinh cuong che dat cua dan va cho do la dung duoc? Cu dan Kien Giang Hanh dong cua gioi cam quyen Kien Giang gay phan no nguoi dan dia phuong, nhu mot cu dan nhan xet: "Dang va Nha nuoc chu truong lan bien mo rong do thi Rach Gia thi chu truon= g do bi tinh Kien Giang va Ban Quan ly Du an Lan bien loi dung lan them 45 hecta da= t cua dan. Muc dich cua ho la nham boi thuong gia re, re hon kinh phi bo ra de lan bien. Ho dung tu la "chinh trang do thi" va loi dung viec lan bien de lay dat cua dan. Hien nay chung toi dang thua kien viec chinh quyen tinh Kien Giang ho tro, bao che cho Ban Qua= n ly Du an Lan bien lay dat cua dan nham boi thuong voi gia re mat trong khi khong ra quy dinh thu hoi dat. Vu nay 12 nam roi, hien la 2010, ho tinh gia dat nam 1998 voi gia la 13.200 dong. Khi chung toi thua len chinh phu thi chinh phu chi dao xuong, yeu cau Kien Giang giai quyet dut diem, giai quyet tinh theo gia vang truot gia, tien mat gia va tinh lai cho chung toi. Nhung lay gia moc co so ban dau tinh tien truot gia va mat gia cung bang nghia voi dong tien Viet Nam mat gia hien nay la 12 nam. Co nghia la hoi do anh giao mieng dat nay va mua duoc 1 luong vang thi ngay hom nay anh cung chi mua duoc 1 luong vang thoi. Con nha dau tu lay dat, ho ban voi gia hien hanh la tu 2 trieu toi 6 trieu dong/1 m2." (Anh chup: Tap doan Tan Tao - ITA GROUP dau tu Khu do thi moi tai Khu lan bien Rach Gia, Kien Giang. Quan dao nhan tao Hai Au- An Hoa. Photo courtesy of danlentieng.net) Mot dan oan khac o dia phuong nay cho biet them: "Chung toi goi don thua len chinh phu, thi doan Thanh tra chinh phu xuong noi viec nay la viec cua chinh phu, va chi co chinh phu moi tra loi la chinh quyen Kien Giang dung hay dan thua kien la dung. Cho toi gio phut nay, chua co quyet dinh cuoi cung noi rang Kien Giang la dung. Chua co quyet dinh cuoi cung cua chinh phu thi tai sao chinh quyen Kien Giang lai ra quyet dinh cuong che dat cua dan va cho do la dung duoc? = O day quan toa la chinh phu. Ma chinh phu chua co quyet dinh sau cung nao het. Chung toi la cong dan cua dat nuoc co chinh quyen, co doan the, co dang lanh dao, thi chung toi chi biet thua kien may ong do chu biet thua kien ai bay gio. Bao chi cho toi gi= o phut nay van dong tinh voi chung toi la chinh quyen Kien Giang lam sai." Du bi cu dan dia phuong va ca bao chi gan nhu dong loat phan doi, nhung gio= i cam quyen dia phuong xem chung nhu "cau gio" de tiep tuc hanh dong bien du an "lan bien" thanh "lan dat dan", nhu mot cu dan khac mo ta: "Dan hoan nghenh nhung bai bao ay. Ho len tieng ung ho cac bai bao va cho U= y ban tinh sua sai. Nhung ma tinh va Ban Quan ly Cong trinh Lan bien loi dung cu keo dai thoi gian roi thay em em thi bat dau lam tiep, chu khong sua doi." Thu hoi hay cuop dat? Phuong tien cua viec cuong che dat dai trong nuoc, ke ca vu "lan bien Kien Giang" luon la vo luc, nhu mot dan oan vua roi mo ta: Tham chi co nguoi dan phat bieu la "may ong an cuop dat cua toi chu khong phai thu hoi dat cua toi. 500 m2 ma toi chi mua lai duoc co 5 m2 thi la an cuop dat cua toi cho con gi nua?" Cu dan Kien Giang "Chinh quyen dung bien phap cuong che chung toi. Ho rat dong, toi cuong che co may chuc ho dan thi lam sao chung toi do duoc. Chung toi thua luc luong cong an ve viec hom roi ho cuong che, loi nguoi ta ra khi nguoi ta dung tren dat cua minh v= a chi yeu cau ngung thi cong thoi. Ma yeu cau nay la hop ly, vi nguoi ta chua nhan tien boi thuong, dang trong vong thua kien thi lam sao chinh quyen cho thi cong tren dat nguoi ta duoc. Chung toi chi chong do bang van ban, bang thua kien, bang bao chi. Nhung ho van cu lam, ho lam bua, lam can - toi cho la lam can. Tham chi co nguoi dan phat bieu la "may ong an cuop dat cua toi chu khong phai thu hoi dat cua toi. 500 m2 ma toi chi mua lai duoc co 5 m2 thi la an cuop dat cua toi cho con gi nua?". Hien nay, khi hop dan lai, thi ho noi ro rang tien boi thuong 1 m2 khong du mua 1 kg ca linh cho con chau an." Hau qua luon la su thua thiet trong su chiu dung cua nguoi dan: "Nguoi ta cam quyen thi minh khong tra loi duoc. Ho cam quyen thi khi ho hanh dong nhu vay co the la ho biet do, nhung nguoi ta cam quyen thi nguoi ta cu lam. Minh khong the nao cuong lai duoc." (Anh: Mot Khu do thi moi dang xay dung tai mot phan Khu lan bien Rach Gia, Kien Giang. Photo courtesy of danlentieng.net) Su tung hoanh trang tron va tuy tien do cua gioi cam quyen dia phuong tuon= g phan voi loi hua tot dep cua gioi lanh dao Viet Nam danh cho nguoi dan phai di doi cho o. Mot cu dan vua len tieng giai thich them: "45 hecta dat do thi cua 252 ho dan bi cho la trong quy hoach. Roi ho liet ke trong van ban la dat nong nghiep loai 4, co nghia la dinh gia dat do thi cua chung to= i nhu gia dat o ngoai ruong, o dau xa xoi lam. Ma toi nghi bay gio dat o hang cung ngo hem nao cung khong co cai gia nay nua. Trong khi do, Rach Gia duoc nha nuoc cong nhan la dat do thi loai 3. Ma hien nhien dat cua toi - o ngay TP Rach Gia =96 cung phai la dat= do thi loai 3, cho lam gi co dat nong nghiep loai 4. Bay gio chung toi yeu cau ho lay dat cua chung toi thi phai co quyet dinh thu hoi dat, va lay dat de lam gi thi phai ghi ro. Neu dung thi cu lay. Con tien thi chinh phu da quy dinh, dat dai phai den bu theo gia thi truong. Ma gia thi truong o day bao nhieu thi anh mua phai tra cho chung toi nhu vay de chung toi dung so tien do di cho khac mua duoc mieng dat cung bang va tham chi tot dep hon dat cu =96 theo y cua ong Tong Bi thu= . Ong ay da noi rang nguoi bi thu hoi dat phai co noi o moi bang va tot hon noi o cu. Nhung bay gio mieng dat cua toi toi 5 ngan m2, roi sau khi nhan tien boi thuong toi di mu= a lai dat moi chua duoc 500 m2, thi lam sao bang va tot hon dat cu duoc ? Dieu nay dau co dung voi chu truong cua dang va nha nuoc hua ho tro cho nhung nguoi bi thu hoi dat duoc dep hon, tot hon, giau co hon. Ma chinh quyen Kien Giang nay la ai ? Chinh quye= n nay cung la mot bo phan cua dang, cua nha nuoc cho ai ? Cau phat bieu "may ong an cuop dat cua toi chu khong phai la thu hoi dat cua toi", thi toi cho la an cuop. Su that la nhu vay. Van theo dan oan nay, thi hanh dong cuong che dat dai tiep dien gay su phan no cho tat ca cu dan o khu vuc nay: Cu dan Kien Giang "Gia dinh toi va mot so ho xung quanh cung bi lay dat nhu vay, toi noi that= , nhieu nguoi khong biet phai noi cach nao day. Ho noi luat phap cua Viet Nam sao ky cuc qua. Sao ma noi mot dang, lam mot nga. That la ky cuc. Ma luat thi noi ro rang rang lay dat cua dan phai ra quyet dinh thu hoi dat. Khong co quyet dinh thu hoi dat ma dem cong an den cuong che nguoi ta, loi nguoi ta ra khoi dat cua minh. Toi bi tuoc doat quyen quan ly dat cua minh 28 nam nay roi. Mieng dat nay toi bo tien ra mua 28 nam roi. Chung ay thoi gian biet bao nhieu thay doi, ma tai sao dat dai cua toi, toi khong duoc la= m giay to, khong duoc cap so do. Tai sao dat cua toi quy hoach toi 28 nam ma chua cho tui to= i lam giay? Bat cu nguoi nao o trong khu vuc bi lay dat nay deu phan no nhu vay." Thua quy vi, truoc tinh canh cua dan oan nhu vay, cau tra loi cua quan chuc dia phuong van thuong la tranh ne, nhu mot vien chuc thi xa Rach Gia cho biet: Vien chuc Rach Gia:"Cai nay toi khong biet, cai nay toi khong ranh" (cup may). Trong khi cu dan o cac phuong An Hoa va Vinh Bao, TP Rach Gia phai chiu dun= g hanh dong cuong chiem dat dai cua gioi cam quyen dia phuong, thi dan oan khap nuoc duoc biet cung lam canh tuong tu, khien co lan MS Nguyen Hong Quang o Sai Gon phai thot len rang tinh trang nay "da len thau troi xanh" roi. http://danlambao.wordpress.com/2010/12/04/da-n%E1%BA%B5ng-khong-tham-nhung-= va-c%E1%BA%A5m-c%E1%BB%ADa-sinh-vien-h%E1%BB%87-t%E1%BA%A1i-ch%E1%BB%A9c/04= /12/2010 Ong Nguyen Tan Dung co bang tai chuc luat http://vietbao.vn/Xa-hoi/Kien-Giang-Xem-xet-vu-kien-Khu-lan-bien-TP-Rach-Gi= a/70097315/157/(Theo_Tien_Phong) Hong Linh 13/9/2007, 09:19 GMT+7 Thu tuong: Vu kien Khu lan bien TP Rach Gia =96 Nhan dan moi mon cho Ket lu= an cua Thu Tuong Doan Thanh tra cua thanh tra Chinh phu da xem xet vu 47 ho dan khieu nai viec chinh quyen thu hoi, giai toa dat tai Du an (DA) Khu do thi moi lan bien TP. Rach Gia, Kien Giang. (Anh: Mot goc khu lan bien TP. Rach Gia) Thuc hien y kien chi dao cua Pho Thu tuong Truong Vinh Trong, Doan Thanh tr= a cua thanh tra Chinh phu do ong Bui Thanh Minh, thanh tra vien Vu 5 lam truong doan da ve lam viec tai tinh Kien Giang xung quanh vu 47 ho dan khieu nai viec chinh quyen thu hoi, giai toa dat tai Du an (DA) Khu do thi moi lan bien TP. Rach Gia, Kien Giang. Khi tiep xuc voi doan Thanh tra Chinh phu, dai dien 47 ho dan buc xuc: Tinh Kien Giang da thuc hien du an lan bien sai voi tinh than chi dao cua Chinh phu tai cac QD 1178 va 394. Theo do, cac QD nay chi noi DA lan ra bien 420 ha chu khong noi lay dat cua dan va chi lay 500m tu de quoc phong ra phia bien Tay nhung tinh lai lay ca dat cua da= n phia trong de quoc phong. Chinh quyen con co cac sai pham nghiem trong khac nhu: Khong co quyet dinh thu hoi dat cua dan nhung tuy tien den nha dan cam moc "hu" se cuong che, giai toa; Gia den bu chi 5.000d/m2, nhung phan lo ban lai cho nguoi khac tu 500 ngan =96 1 trieu dong/m2 la khong thoa dang. Ngoai ra, qua trinh thuc hien du an (da 10 nam) nhung tinh khong co phuong an bao ve hoa mau cho dan, gay ngap ung, hoa mau chet, doi song nguoi dan vung du an lao dao, ai chiu trach nhiem? Cung theo nguoi dan, sai pham lon nhat la viec chua thu hoi, boi thuong dat cua dan xong nhung chinh quyen va nganh chuc nang da phan lo ban nen. Ngay ca nhung nguoi duoc cap so do cung khieu nai, vi nhieu nam qua dat cua ho van nam tren giay, no ngan hang mua dat van phai tra, muon xay cai nha de o cung khong duoc. Hien co 294 lo dat voi chung do cai so do (chu yeu cua can bo, cong chuc) chong len dat cua ca= c ho dan dang khieu nai noi tren. Pho Chu tich UBND tinh Kien Giang ong Van Ha Phong cho rang: Tinh da nhieu lan kiem tra va nhan thay khong co sai sot nao trong qua trinh thuc hien DA Khu do thi moi lan bien TP.Rach Gia theo cac QD cua Thu tuong. Tuy nhien ong Phong cung thua nhan co sai trong cach lam, truyen dat, trien khai, vi nhu khong giao QD thu hoi dat den tung ho dan. Con ong Bui Thanh Minh =96 Thanh tra Chinh phu lai cho rang: QD 1178 cua Ch= inh phu co co nhieu diem chua duoc ro rang, de nhan den hieu nham. De co can cu trinh Chinh phu, doan Thanh tra se cung voi nganh chuc nang va nguoi dan do dac lai thuc te dat trong vung du an de xem xet, ket luan. Va chi co Chinh phu moi ket luan duoc UBND tinh Kien Giang lam dung hay sai? (DA lan bien duoc nguyen Pho Thu tuong Ngo Xuan Loc ky phe duyet tai QD 1178, ngay 30/12/1997, dien tich 420 ha. Den 2015 bo tri khoang 5 van dan. Khu vuc nay dang qui hoach Khu hanh chinh tap trung 16 tang, Tru so UBND tinh 20 ha, benh vien, truong hoc, sieu thi, nha hang, khach san cao tang...) http://tintuc.xalo.vn/00-2043814397/Co_dan_chu_khach_quan_moi_chon_duoc_ngu= oi_co_tam_co_tai.html(theo laodong, 3 nam truoc) Ong Nguyen Tan Dung reu rao: "Co dan chu, khach quan moi chon duoc nguoi co tam, co tai" "phai that su cong tam, khach quan va dac biet la phai that su dan chu; phai tao moi dieu kien thuan loi va cong khai minh bach de moi can bo dang vien, moi nguoi cong dan thuc su duoc dan chu lua chon. Thuc hien tot dieu nay chac chan chung ta se chon duoc nguoi co tam, co tai phuc vu dat nuoc. Chinh phu khoa toi, toi tin chac la phai lam nhu vay." "De thu hut, de dua duoc nguoi co tam, co tai vao co quan cua Dang, bo may nha nuoc de nang cao tri tue va nang luc lanh dao cua Dang va quan ly cua Nha nuoc, co rat nhieu viec phai lam, nhung theo toi giai phap quan trong nhat, chu yeu nhat van phai la thuc su dan chu, phai duoc lua chon mot cach cong khai va dan chu nhat. Quan chung nhan dan se rat sang suot lua chon nguoi lanh dao cua minh va se lua chon dung nguoi co tam, co tai neu nhu chung ta thuc su dan chu, khong dan chu hinh thuc." http://ttngbt.wordpress.com/2010/07/17/s%E1%BB%91ng-chung-v%E1%BB%9Bi-thong= -tin-da-chi%E1%BB%81u/P.L.T. 7-2010 Thu tuong: Viec dieu dong, bo nhiem ong Truong Chi Trung vao chuc vu Thu truong Tai Chinh la vi pham luat cong chuc - Ong Truong Chi Trung moi bi ky luat ve Dang tren cuong vi uy vien ban can su dang; trong khi do ong lai vi pham ky luat tren cuong vi chinh quyen (la thu truong bo Tai chinh). Ve nguyen tac khi mot can bo, cong chuc da bi ky luat ve dang thi phai bi ky luat chi it tuong duong ve mat chinh quyen! Khong ro Bo truong Tai chinh da ban hanh quyet dinh ky luat nay chua? Neu chua, co vi pham luat cong chuc khong? Vi dieu le dang qui dinh: dang khong lam thay nha nuoc! - Theo tin cua Bao Dien tu Chinh phu ngay 3/7/2010, Thu tuong Nguyen Tan Dung vua ky cac quyet dinh bo nhiem, bo nhiem lai co thoi han 5 Thu truong cac Bo: Giao duc va Dao tao, Tai chinh, Noi vu, Tu phap va Y te. Ong Truong Chi Trung, Pho Bi thu Tinh uy, Chu tich UBND tinh Bac Kan, duoc bo nhiem giu chuc Thu truong Bo Tai chinh. Viec bo nhiem nay, mot dang "an com truoc keng " da vi pham Muc 2, Dieu 82 cua Luat Cong chuc va Muc 2, Muc 3 cua Dieu 27 - Cac quy dinh lien quan den can bo, cong chuc bi ky luat cua Nghi dinh 35/2005/ND-CP ve viec xu ly can bo cong chuc. Muc 2 cua Dieu 27 quy dinh: "Can bo cong chuc bi ky luat bang mot trong cac hinh thuc tu khien trach den cach chuc thi khong duoc nang ngach hoac bo nhiem vao ca= c chuc vu cao hon trong thoi han it nhat la mot nam, ke tu khi co quyet dinh ky luat"= . Muc 3 cua Dieu 27 quy dinh: "Can bo, cong chuc bi xu ly ky luat bang mot trong cac hinh thuc khien trach, canh cao, ha bac luong, ha ngach thi tuy theo tinh chat, muc do vi pham co the duoc bo tri cong tac cu hoac chuyen cong tac khac..." Muc 2 cua Dieu 82 cua Luat Cong chuc 2008 ban hanh cac quy dinh khac lien quan den can bo, cong chuc bi ky luat: "Can bo, cong chuc bi ky luat tu khien trach den cach chuc thi khong thuc hien viec nang ngach, quy hoach, dao tao, bo nhiem trong tho= i han 12 thang, ke tu ngay quyet dinh ky luat co hieu luc..." Theo tin cua Vietnamnet dua ngay 1/9/2009: "Sang nay (1/9/2009), lanh dao U= y ban Kiem tra Trung uong lam viec voi Ban Thuong vu Tinh uy Bac Kan de cong bo quyet dinh khien trach Pho Bi thu Tinh uy, Chu tich UBND tinh Truong Chi Trung. Theo Quyet dinh so 1634 =96 QD/UBKTTW ngay 7/8/2009, tu thang 4/2002 den th= ang 3/2008, tren cuong vi Uy vien Ban can su Dang, Thu truong Bo Tai chinh, ong Truong Chi Trung da co khuyet diem, vi pham trong viec chi dao ap ma hang hoa doi voi mat hang dau thu truyen hinh ky thuat so; cho hoan thue nhap khau doi voi cac doanh nghiep nhap khau hang hoa de kinh doanh, sau do xuat vao khu che xuat va xu ly ket qua thanh tra doi voi Cong ty co phan Tan Tao. Ong Trung cung ky ban hanh Cong van so 8842/BTC-TCT huong dan dang ky lai thoi gian bat dau huong uu dai mien, giam the thu nhap doanh nghiep; thieu chi dao, kiem tra viec Tong cuc Thue xoa no cho mot so doanh nghiep va dong y trong viec xoa no cho Nha may thuoc la Cuu Long; cham huong dan thuc hien chinh sach uu dai theo Luat Thue thu nhap doanh nghiep sua doi co hieu luc tu 1/1/2004, dan den mot so doanh nghiep loi dung lam trai, vi pham phap luat bi khoi to vu an, khoi to bi can, trong do co can bo cua Bo Tai chinh. Nhung khuyet diem, vi pham neu tren lam that thu ngan sach Nha nuoc voi so tien lon, anh huong den uy tin cua Bo Tai chinh..." Nhu vay, thoi hieu thu ly ky luat cua ong Truong Chi Trung tu 1/9/2009 den nay chua toi 1 nam nhung da duoc bo nhiem cuong vi Thu truong Bo Tai chinh la vi pham Nghi dinh 35/2005/ND-CP va Luat Cong chuc nam 2008! Boi vi: Khi duoc bo nhiem chuc vu Chu tich tinh Bac Kan ong Truong Chi Trung duoc huong phu cap chuc vu la 1,25; nhu vay khi ong Truong Chi Trung duoc bo nhiem Thu truong Bo Tai chinh, he so phu cap trach nhiem duoc nang len 1,3...; (QD 1002/QD-TTg dieu dong, bo nhiem ong Truong Chi Trung - chu tich UBND tinh Bac Kan, giu chuc Thu truong bo Tai chinh do ong Nguyen Tan Dung ky ngay 30/06/2010, hieu luc ke tu ngay ky). Thu 2, viec bo nhiem ong Truong Chi Trung vao chuc vu Thu truong Bo tai chinh noi ma ong Truong Chi Trung da vi pham va bi ky luat; xet theo tinh chat vi pham la nghiem trong: "lam that thu ngan sach Nha nuoc voi so tien lon, anh huong den uy tin cua Bo Tai chinh" - ly ra ong Truong Chi Trung phai duoc dieu chuyen sang cong tac kha= c moi dung voi cac quy dinh cua Nghi dinh 35 va Luat Cong chuc. http://boxitvn.wordpress.com/2010/11/03/ton-van-pht-bi%e1%bb%83u-c%e1%bb%a7= a-hai-d%e1%ba%a1i-bi%e1%bb%83u-l-van-cung-thanh-ho-v-ph%e1%ba%a1m-th%e1%bb%= 8b-loan-tp-h-n%e1%bb%99i-t/Dang boi bvnpost on 03/11/2010 () Toan van phat bieu cua dai bieu Pham Thi Loan (Ha Noi) tai Quoc hoi sang ngay 1/11/2010 Kinh thua Quoc hoi, Ve tinh hinh kinh te =96 xa hoi nam 2010 va nhiem vu kinh te =96 xa hoi nam= 2011 toi co ban tan thanh voi Bao cao cua Chinh phu. Toi xin dong gop mot so y kien sau: Mot, tinh hinh kinh te vi mo. Theo Bao cao cua Chinh phu thi tang truong GD= P nam 2010 khoang 6,7% cao hon du kien cua Quoc hoi dua ra. Tuy nhien cu tri con nghi ngo ve cac so lieu bao cao tang truong nay, vi neu theo doi cac bao cao Dai hoi Dang cua cac tinh thi con so cac tinh bao cao tang truong cua cac tinh tu 12 =96 15%. Cu tri lo lang ve tinh trang chay dua tang truong ve so ma thieu quan tam tang truong ve chat va tinh ben vung cua su phat trien. Thuc te cho thay viec nhap sieu nam 2009 la 12,92 ty, du kien nam 2010 tham hut mau dich khoang 13 ty dola, gia vang tang trong nam khoang 20 den 25%, ty gia hoi doai chenh lech ty gia dang la noi buc xuc cua doanh nghiep. Lai suat ngan hang dung vao hang cao nhat tren the gioi, lam phat cao, chi so gia tieu dung cao, ICO va= n chua duoc cai thien, nhap sieu tu Trung Quoc rat cao, chiem 90% nhap sieu cua ca nuoc= , nhung Chinh phu van chua co bien phap de can doi, trong khi do van dang mo rong cua cho hang hoa va nhung du an EPC ma trong nuoc co du kha nang lam danh cho cac doanh nghiep cua Trung Quoc thuc hien. Viec han che quotar nhap khau vang va de gia vang tang cao, de cho thi truong tu do than nhien thao tung nhap lau vang qua bien gioi gay tac dong xau den ty gia ngoai te. Su khan hiem ngoai te anh huong den c= a thi truong bat dong san, thi truong chung khoan. Nhung trong ke hoach nam 2011 va ke ca dinh huong chien luoc nhung nam tiep theo chung toi chua thay dua ra duoc bien phap thuc su huu hieu nao. Vay Chinh phu se lam gi cho xa hoi va kinh te Viet Nam can bang v= a phat trien ben vung? Van de thu hai la van de quan ly Nha nuoc va trach nhiem cuoi cung cua ai trong viec quan ly kinh te Nha nuoc. Vua qua theo Bao cao cua Chinh phu va thong bao cua Uy ban Kiem tra Trung uong Dang ai cung thay duoc su that ve Vinashin, do la san pham cua viec thi diem tap doan kinh te Nha nuoc. Van de toi muon neu ra o day la ai se la nguoi chiu trach nhiem cuoi cung trong viec de Vinashin roi vao tinh trang nhu vay. Trach nhiem cua Thu tuong, cua Chinh phu va cac Bo, nganh, ca nhan lien quan nhu the nao? Theo toi khong the noi mot cach don gian la do cac can bo lanh dao cua Tap doan Vinashin, mot minh Vinashin khong the lam sai luat duoc. Chung toi tu hoi a= i da cho phep Vinashin phat hanh trai phieu voi luong tien lon nhu vay? Ai da cho phep Vinashin vay vuot han muc quy dinh cua mot khach hang theo quy dinh cua luat la 15% von dieu le cua ngan hang. Ai da de Vinashin dau tu tran lan nhu vay? Va dac biet la tai sao da co 11 doan vao kiem tra, giam sat nhung van khong phat hien ra sai pham? Va ta= i sao Quoc hoi da co quyet dinh dua Vinashin vao danh sach giam sat tu nam 2009 nhung Chinh phu van de nghi de hoan lai, cho Thanh tra Chinh phu lam viec truoc va cho den bay gio Kiem toan Nha nuoc cua Quoc hoi van chua vao kiem toan duoc. Vay tai sao Thanh tra Chinh phu van khong phat hien ra dieu gi. Vay tat ca nhung viec do la xuat phat tu muc dich gi? Trach nhiem thuoc ve ai? Trong Diem c, Khoan 1, Dieu 168, Luat doanh nghiep qui dinh tach viec chuc nang thuc hien cac quyen chu so huu voi chuc nang quan ly hanh chinh Nha nuoc. Nhung trong thuc te Bo truong Bo Tai chinh lam Chu tich Hoi dong quan tri Cong ty SCIC. Thu truong Bo Cong thuong lam Chu tich tap doan TKV va Thu tuong thi dang truc tiep quan ly 19 tap doan Tong cong ty Nha nuoc 90 =96 91. Theo toi duoc biet voi viec Thu tuong dang truc tiep quan ly 19 tap doan Tong cong ty Nha nuoc nhu vay, cac tap doan Tong cong ty Nha nuoc nay lam an thua lo thi trach nhiem cua Thu tuong nhu the nao? Tai sao Thu tuong van tram cong nghin viec dieu hanh chung dat nuoc ma lai con truc tiep quan ly, dieu hanh cac tap doan Tong cong ty nay. Tai sao khong ban hanh co che dieu hanh chung de ho hoat dong theo pha= p luat. Dac biet tai Khoan 3, Dieu 168, Luat doanh nghiep qui dinh: dinh ky hang nam Chinh phu trinh Quoc hoi bao cao tong hop ve thuc trang kinh doanh von chu so huu Nha nuoc. Thuc trang bao toan va phat trien gia tri von dau tu va tai san so huu Nha nuoc tai doanh nghiep, nhung nhieu nam nay Quoc hoi chua nhin thay co ban bao cao nao trin= h Quoc Hoi tu phia Chinh phu theo nhu qui dinh neu tren. Vay viec khong tuan thu phap luat de gay hau qua nghiem trong nhu vu Vinashin thi trach nhiem cuoi cung se thuoc ve ai? Toi dong tinh voi cac y kien truoc toi ve viec phai qui trach nhiem den cun= g va dac biet Quoc hoi, Dang can phai lam ro trach nhiem cua nhung nguoi quan ly Nha nuoc= . Theo toi nghi nhung nguoi lam sai cung can phai co mot loi xin loi voi nhan dan va co le la cung nen nghi den van hoa tu chuc de nhan dan con co long tin voi lanh dao Nha nuoc va voi Dang. Van de thu ba la van de chien luoc ve nang luong cua Chinh phu nhu the nao. Vua qua khap noi nhan dan keu thieu dien, cat dien tuy tien khong dung Luat Dien luc, EVN keu thieu von, thuy dien thieu nguon nuoc de phat dien, EVN keu lo von trong na= m hon 6.000 ty Viet Nam dong, gia mua dien cao hon gia ban, cac nha dau tu dien ngoai EVN keu kho ky hop dong ban dien cho EVN, co hop dong ban roi thi co duoc phep len luoi hay khong, lai phai xin =96 cho. Trong khi do cac nha may nhiet dien lon do Trung Quoc lam EPC chay khong on dinh, ton nhieu than, cong nghe su dung than khong ph= u hop voi loai than trong nuoc san xuat duoc. Ve thuy dien thi cac nha thau EPC tu Trung Quoc chiem den 90% cac du an EPC ve dien va ta dang phai phu thuoc ho ve van de hau mai, phu tung, phu kien trong va= n hanh. Mat khac Trung Quoc dang kiem soat nguon nuoc thuong nguon, luc kho ho co the giu nuoc, luc lu lut ho co the xa nuoc gay nguy co cho ta. Gan day ho dang chuan bi xay nha may dien hat nhan gan bien gioi cua ta voi muc tieu se ban dien cho ta va thuc te hien nay ta dang phai mua dien cua ho voi gia cao hon gia mua dien trong nuoc. Vay ro rang dang co nguy co ta se bi phu thuoc vao nguon dien cua Trung Quoc va neu vay thi an ninh nang luong co nguy co bi he luy vi su phu thuoc nay. Toi xin co y kien ve 3 van de neu tren, xin cam on Quoc hoi. http://www.danchimviet.info/archives/20453 Tac gia: Au Duong The 12:00 am 30/10/10 TT Nguyen Tan Dung phai nhan trach nhiem va tu chuc Cuoi thang 7 vua qua Bo chinh tri da dua ra "Ket luan cua Bo chinh tri" ve Tap doan Cong nghiep Tau thuy VN (Vinashin), mot tap doan kinh te nha nuoc. Theo do Vinashin da lam an thua lo va dang gay ra mot so no khong lo tu truoc toi nay la 86.000 ti dong (4,5 ti USD). Day la con so do Bo chinh tri xac nhan. Trong nhung ngay vua qua Chu nhiem Uy ban Quoc phong va an ninh cua Quoc ho= i Le Quang Binh da tiet lo, theo cac so lieu ong duoc biet thi so no cua Vinashi= n khong phai chi la 86.000 ti dong ma co the len toi 120.000 ti dong (6,3 ti USD), tuc l= a gap gan 1,5 lan so voi con so cua Bo chinh tri da dua ra. So no khong lo nay cac uy vien Bo chinh tri khong phai tra, Thu tuong cung khong va cac Bo truong cung khong. Nhung nhan dan VN phai cong lung tra so no khong lo nay qua tien dong thue! Neu so no cua tap doan nha nuoc Vinashin la 120.000 ti dong thi tinh do dong moi nguoi dan VN, tu so sinh toi cao tuoi, phai tra 1,5 trieu dong de bu cho su lam an thua lo cua Vinashin. Doi voi dai da so khoang 60 trieu nong dan VN ngheo kho thi day la ganh nang rat lon! Viec phai to chuc lai Vinashin cho thay tap doan nay tren thuc te da pha san. TS Nguyen Duc Kien, uy vien Uy ban Kinh te Quoc hoi xac nhan: "Chung ta tien hanh tai co cau lai Vinashin thi ve mat khoa hoc coi nhu chung ta da chap nhan cho Vinashin pha san, chi co van de la minh tuyen bo hay khong tuyen b= o pha san ma thoi". Ong Kien goi day la "pha san theo kieu Viet Nam". Co le "pha san theo kieu VN" cho nen toi nay trong vu Vinashin moi chi co nguoi dung dau Vinashin la Pham Thanh Binh va mot so nguoi duoi quyen bi cach chuc va bat giam. Vi the du luan rong rai trong xa hoi rat buc xuc, vi lam sao chi mot minh Pham Thanh Binh ma noi trong hon 4 nam da gay ra mot mon no that khung khiep cho ngan sach quoc gia nhu vay? Lam the nao ma ca 11 lan thanh tra, kiem tra cua nhieu co quan nhung van khong tim thay nhung sai pham va kinh doanh thua lo khong lo cua Vinashin? Da the, tai sao trong ky hop thu 8 hien nay cua Quoc hoi van de buc xuc nhu vay van khong duoc dua ra thao luan chuyen de? Cho toi nay nhung nguoi chiu trach nhiem thuc su van con lan tranh, van cho= m tre rung dui, ho to, het lon. Su nghiem minh ky cuong cua xa hoi la nhu the sao? Ai chiu trach nhiem chinh tri? Ai co trach nhiem tinh than? Bao cao Chinh phu da noi gi ve vu pha san cua Vinashin? Trong Bao cao dai 18 trang cua Chinh phu goi Quoc hoi ngay 19.10.10 (mot ngay truoc khi QH hop) do Van phong Chinh phu thuc hien theo lenh cua Thu tuong Nguyen Tan Dung da danh khoang 1/3 noi ve su hinh thanh va cac hoat dong cua Vinashin. Phan noi ve nguyen nhan cac do vo hien nay cua Vinashin Nguyen Tan Dung do cho nguye= n nhan khach quan do cuoc khung hoang kinh te tai chinh the gioi tu 2008 va do toi cho nguoi dung dau tap doan nay la Pham Thanh Binh. Nghia la trong Bao cao goi Quoc hoi ngay 19.10 Nguyen Tan Dung chi lap lai nhung gi ma "Thong bao cua Van phong Chin= h phu" da cong bo ngay 4.8 ma thoi. Trong phan do toi cho Pham Thanh Binh, Bao cao cua Chinh phu da buoc toi: "Nguoi nay nhung nam gan day tro nen doc doan, gia truong" va "bao cao khong trung thuc" Ban Bao cao Chinh phu con noi rang: "Nhieu nam lien Vinashin bao cao khong trung thuc ve su dung von, ve dau tu va tinh hinh hoat dong san xuat kinh doanh. Nam 2009 lo 1.600 ty dong nhung lai bao cao lai 750 ty dong, quy 1 nam 2010 thua lo van bao cao lai gan 100 ty dong." Khong nhung the, trong Bao cao nay Nguyen Tan Dung lai con do thua cho cac bo phai chiu trach nhiem: "Cac bo chuc nang duoc giao trach nhiem da khong phat hie= n duoc viec tap doan bao cao khong trung thuc". Neu so sanh so no cua Vinashin voi so thu cua ngan sach quoc gia nam 2009 thi gan bang 1/6. Day la con so cuc ki lon! Chi noi trong hon 4 nam 2006-2010 Vinashin da lam an thua lo dua den so no khung khiep nhu vay. Chinh trong thoi gian nay Nguyen Tan Dung lam Thu tuong (TT). Ong Dung da tung tang boc Vinashin la mot "qua dam thep= " trong he thong tap doan kinh te nha nuoc. Co le chua co mot cong ty nao tren the gioi lai gay ra mot so no cao nhu vay trong mot thoi gian tuong doi ngan. Duoi thoi Nguyen Tan Dung lam Thu tuong thi Pham Thanh Binh cung luc giu bo= n chuc vu then chot nhat trong Vinashin la Bi thu Dang uy, Chu tich Hoi dong Quan tri, Chu tich Tap doan, Tong giam doc. Nho bao bien cac chuc vu then chot nay nen Pham Thanh Binh toan quyen tu do quyet dinh, da dua con trai, em trai va em vo vao nam giu cac chuc vu then chot trong Vinashin. Nghia la loi dung su uu dai cua Nguyen Tan Dung nen Pham Thanh Binh chi trong hon 4 nam da bien Vinashin tu mot tap doan kinh te nha nuoc tro thanh nhu cong ty gia dinh. Khong nhung the da lap cac bao cao sai ve tai chinh, coi thuong cac cuoc thanh tra, kiem sat cua cac co quan. (Anh: "Cap doi" Nguyen Tan Dung- Pham Thanh Binh. Nguon On the net) Ca Ngan hang The gioi va bao Wall Street cung thay ro su dung tung Vinashin cua Nguyen Tan Dung. Moi day trong phan bao cao ve tinh hinh kinh te VN Ngan hang The gioi da nhan dinh: "Tap doan Vinashin da su dung cac nguon tien lay tu bao lanh chinh phu de dau tu vao nhung hoat dong khong dinh dang gi den nhiem vu chinh, da the lai con gia mao cac bao cao tai chinh va nay dang nam ben bo vuc pha san". Hai tac gia tuong thuat tren to Wall Street ngay 22.9 con di sau hon va noi ro nhan vat nao dung dang sau do dau cho Vinashin: "Thu tuong Dung de nhieu tap doan lon nhat duoi su chi dao truc tiep cua minh thay vi de cac bo giam sat cac tap doan nay nhu Viet Nam lam truoc day. Ong Dung hy vong nhanh chong bien cac doanh nghiep thanh nhung tap doan quoc te." Nghia la tac gia bai bao nay biet rat ro tinh thich no va cai gi cung muon nhat cua Nguyen Tan Dung. Cac tac gia bai bao con nhan xet ve con nguoi ma ong Dung da giao cho dung dau Vinashin: "Nhung nguoi biet ong Binh, cuu Chu tich Vinashin, noi ong la nguoi de cheo keo duoc khach hang nuoc ngoai va cung gioi lo lot o trong nuoc." Ngay bao chi theo "le phai" trong nuoc cung da cho biet, Pham Thanh Binh da mo rong lanh vuc hoat dong cua Vinashin tu dong tau moi thanh mua tau cu cua nuoc ngoai, chi trong vong hai nam 2006-07 ki quyet dinh cho mua toi 10 tau ngoai quoc cu voi tong so la tren 3.000 ti dong. Trong so nay co nhung tau cu den noi da phai bo ra hang tram ti dong de tu sua va canh tan tro thanh "khach san 3 sao" tren bien cho khach Bac-Nam, nhu tau Hoa sen tri gia 60 trieu Euro nhung chi dung duoc vai lan da phai buoc neo o hai cang Nha trang. Hay tau Bach Dang giang tri gia tren 168 ti dong, sau nhieu lan tu sua va nang cap thanh "khach san 4 sao". Nhung sau thoi gian dai de phoi nang phoi suong, cuoi cung phai ban thanh ly phan than vo tau sat vun de thu duoc 66 ti 190 trieu dong. Chi rieng hai viec nay ngan sach Nha nuoc, tuc thue cua nhan dan, da mat hang tram ti dong... So di Pham Thanh Binh da co the chi tien rong rai nhu the la vi Nguyen Tan Dung da ra lenh cho bo Tai chinh va Ngan hang Nha nuoc uu dai dac biet ve tai chinh cho Vinashin. Khong nhung the Vinashin da duoc Chinh phu dung bao lanh de vay nuoc ngoai 750 trieu USD. Chi tinh rieng tu 9.2006 den 4.2007, Vinashin da phat hanh 6 dot trai phieu trong nuoc voi tong so tien huy dong len den 8.300 ti dong va ca= c khoan vay khac tong gia tri len toi 13.672 ti dong... Ngay ca nam 2009 Chinh phu Nguyen Tan Dung lai van cho Vinashin phat hanh them 3.000 ti dong trai phieu. Noi tom lai, dung ve phuong dien quan tri tai chinh cong va phat trien kinh te thi cac hoat dong cua Vinashin trong bon nam qua ro rang da pha hoai tai san cua nhan dan, lung doan tai chinh cong va lam tan nat kinh te VN! Nhung trong Bao cao Chinh phu goi Quoc hoi ngay 19.10 Nguyen Tan Dung da do loi tat ca cho Pham Thanh Binh! Trong khi ay, Nguyen Tan Dung hoan toan im lang ve chinh cac sai lam vo cun= g nghiem trong cua chinh ong trong tu cach lam Thu tuong suot tu 2006. Trong phan trach nhiem, Nguyen Tan Dung chi dua ra nhan dinh rat chung chung la "chinh phu chiu trach nhiem". Thai do tron tranh trach nhiem cua minh cung duoc chinh Nguyen Tan Dung tru= c tiep trinh bay trong dien van truoc Quoc hoi ngay 20.10: "Tinh trang nghiem trong hien nay cua Vinashin chu yeu la do su yeu kem trong quan ly, thieu tinh than trach nhiem, co y lam trai, bao cao khong trung thuc cua lanh dao Tap doan." Tuy nhan "Thuc trang nay co trach nhiem cua Chinh phu, cua cac Bo lien quan trong viec quan ly nha nuoc va quan ly cua chu so huu". Va con len giong "Chinh phu da nghiem tuc kiem diem, xac dinh nguyen nhan va de ra ke hoach cu the de xu ly, chan chinh cac hoat dong cua Tap doan." Nhung ai trong chinh phu, nguoi dung dau nao phai chiu trach nhiem va xu ly trach nhiem nhu the nao thi Nguyen Tan Dung khong noi toi! Nghia la Nguyen Tan Dung tim moi cach phu nhan trach nhiem ca nhan, coi day la trach nhiem tap the. Nghi= a la tim cach xi xoa, hue ca lang! Nhieu nguoi dung dau cac bo va co quan da phan phao lai Nguyen Tan Dung. Vu no khong lo lam thiet hai ngan qui quoc gia nhu the nhung van khong duoc dua vao thao luan chuyen de tai ky hop thu 8 cua Quoc hoi tu ngay 20.10. Tuy nhien trong khi thao luan ve tinh hinh kinh te-xa hoi nhieu dai bieu da dat thang vu nay vo= i nhieu bo truong, Tong Thanh tra Chinh phu, Tong Kiem toan Nha nuoc... Cung trong cac dip nay mot so nguoi dung dau cac bo va co quan da de cho bao chi phong van. Ho da phan bua la khong co quyen hanh gi doi voi Vinashin, tuc la to nguoc Nguyen Tan Dung= . Bo truong Giao thong van tai Ho Nghia Dung trong cuoc phong van cua bao Tie= n phong ngay 25.10 da cho biet, tu 2006 khi Vinashin tro thanh Tap doan kinh te thi bo Giao thong van tai khong con la chu quan nua: "Co quan nha nuoc cham dut tinh trang can thiep vao hoat dong san xuat, kin= h doanh cua tap doan. Phan ro quyen quan ly nha nuoc va quyen chu dong san xuat kinh doanh." Van theo loi ong Ho Nghia Dung, khi ay cac bo lien he nhu Giao thong van tai, Ke hoach va dau tu, Bo Cong thuong... chi dong vai tro tham muu ma thoi: "Chung toi chi co y kien con viec tiep thu hay khong la quyen cua tap doan. Ke ca ve quy hoach phat trien, cong tac can bo, neu khong duoc hoi y kien thi bo cung chiu." Ong Ho Nghia Dung da noi dung, vi trong thuc te tu khi lam Thu tuong vao giua nam 2006 Nguyen Tan Dung da truc tiep dieu khien cac Tap doan Nha nuoc, trong d= o co Vinashin. Dieu nay da duoc ngay ca cac to chuc quoc te xac nhan nhu trinh bay o phan tren. Thu tuong bo nhiem cac Tong giam doc dieu hanh va Chu tich hoi dong quan tr= i cac tap doan nay, trong do co Vinashin. Chinh vi the, trai voi nguyen tac phan quye= n giua cac co quan chinh cua mot tap doan kinh doanh, Nguyen Tan Dung da giao cho Pham Thanh Binh cung luc bao thau nam giu 4 chuc vu la Bi thu Dang uy, Chu tich Hoi dong Quan tri, Chu tich Tap doan va Tong giam doc. Day la nguyen nhan chinh da khien cho Pham Thanh Binh dam lap cac bao cao sai lam, coi thuong cac co quan thanh tra, kiem toan va dam dua ca than nhan vao giu cac chuc vu then chot trong Vinashin. Quan diem tren day cua Bo truong Giao thong van tai Ho Nghia Dung cung duoc Bo truong Ke hoach va dau tu va Dau tu Vo Hong Phuc chia se rat ro rang: "Nam 2008, khi Chinh phu (o day am chi la Thu tuong, ghi chu cua nguoi viet= ) chi dinh chung toi kiem tra cac tap doan kinh te, vao cac tap doan ho khong tiep vi ho noi bo khong con chuc nang nua. Chung toi phai noi day la lam theo chi thi dot xua= t (ve chong lam phat) chu khong phai theo luat. Tuy nhien, kiem tra dot xuat ho chi bao tong dau tu cac du an, con du an nao cu the thi khong duoc lam, ma cai do la quyen cua Bo Tai chinh, cua Bo Giao thong van tai..." Vi duoc nguoi dung dau chinh phu do dau nen Pham Thanh Binh da coi thuong c= a cac hoat dong va ket qua thanh tra tai Vinashin. Chinh dieu nay da duoc Tong thanh tra Chinh phu Tran Van Truyen gian tiep xac nhan ngay 21.10 tai hanh lang Quoc hoi: "Tu nam 2005 den nay da co 13-14 cuoc thanh, kiem tra, giam sat tai don vi nay." va "phat hien rat nhieu sai pham va da kien nghi" Ong Truyen cho biet them: "Nhung dang tiec la Vinashin chang nhung khong nghiem tuc thuc hien ket luan, kien nghi cua cac co quan thanh, kiem tra ma con tim cach bao cao khong dung su that, gian doi de lap liem viec lam cua minh." Nhung dua vao nhan vat nao ma Pham Thanh Binh da dam ca gan lam nhu vay? Go= i y cho cau tra loi ve viec nay ong Truyen da cho biet: "Ngay ca khi co ket luan cua Thu tuong thi cung co ai phuc tra dau? Ma da khong phuc tra thi co chap hanh nghiem hay khong, cung khong ai biet". Trong khi ay truoc mot thang cua Ky hop thu 8 cua Quoc hoi, Tong kiem toan Nha nuoc Vuong Dinh Hue da viet thu tra loi cho mot dai bieu Quoc hoi noi ly do tai sao da khong kiem toan so sach cua Vinashin. Tuy khong neu dich danh mot nhan vat nao trong chinh phu, nhung ong Hue da to Nguyen Tan Dung, Pho Thu tuong Nguyen Sinh Hung, U= y ban Thuong vu Quoc hoi va Truong ban thanh tra Chinh phu Tran Van Truyen da tim nhieu manh loi khac nhau ngan can Tong kiem toan Nha nuoc thi hanh nhiem vu kiem toan tai Vinashin. Ong dua ra cac dan chung: "Cu the, nam 2008, Kiem toan Nha nuoc da len ke hoach kiem toan bao cao tai chinh cua tap doan, nhung do Thanh tra Chinh phu da dua Tap doan Vinashin vao ke hoach thanh tra nam 2009 =96 nhung roi lai hoan =96 nen theo quy che phoi hop va de tra= nh trung lap, Kiem toan Nha nuoc da dua ra ngoai ke hoach va lui sang nam 2010. Tuy nhien= , ke hoach nay lai tiep tuc bi "tri hoan" boi khong duoc phe duyet." Ong Hue con xac nhan mot tin dong troi ma toi nay Nguyen Tan Dung van co tinh im lang, do la khong phai chi de Tong thanh tra Chinh phu lay co de tim cach khong cho Tong kiem toan Nha nuoc thi hanh nhiem vu tai Vinashin ma sau do cung da ca= m ca Tong thanh tra Chinh phu khong duoc thanh tra Vinashin voi ly do vien dan trong luc khung hoang kinh te tai chinh the gioi vao thoi diem 2008-09: "Nhung roi, chinh Thanh tra Chinh phu cung khong duoc Thu tuong chap nhan k= e hoach thanh tra Vinashin voi ly do "de doanh nghiep tap trung phat trien san xuat= , chong suy giam kinh te, Thu tuong de nghi dieu chinh sang ke hoach thanh tra nam 2010?. Trong khi tim cach ngan can cac co quan thanh tra va kiem toan nhu the, nhung trong Bao cao Chinh phu goi Quoc hoi ngay 19.10 Nguyen Tan Dung lai tri tra noi doi ca Quoc hoi lam nhu ong ta rat quan tam va van nam sat duoc cac hoat dong cua Vinashin: "Tu 2008 den nay khi tap doan boc lo kho khan, Thu tuong lien tuc yeu cau theo sat chi dao va ngan chan sai pham". Tong kiem toan Nha nuoc Vuong Dinh Hue cung con cho biet, phu hoa voi Nguye= n Tan Dung, Uy vien Bo chinh tri kiem Pho thu tuong thuong truc Nguyen Sinh Hung, thay vi thuc day tinh doc lap va canh tranh giua Tong kiem toan Nha nuoc va Tong thanh tra Chinh phu trong viec giu sach bo may nha nuoc, da vien co "tranh trung hop" de can Tong kiem toan Nha nuoc kiem tra so sach Vinashin: "Pho Thu tuong Nguyen Sinh Hung bo sung: "Kiem toan Nha nuoc nen phoi hop voi Thanh tra Chinh phu de nang cao hieu qua hoat dong kiem toan va hoat dong Thanh tra, tranh trung lap, tao dieu kien cho doanh nghiep hoan thanh tot ca nhiem vu phuc vu kiem toan, thanh tra theo quy dinh, cung nhu tap trung thoi gian chuyen mon va san xuat". Nguoi ta duoc biet, tu dau thang 8.2010 sau khi Bo chinh tri dua ra "Ket luan" ve Vinashin thi Nguyen Sinh Hung duoc cu lam Truong ban Chi dao tai co cau Tap doan Cong nghiep Tau thuy Viet Nam (Vinashin). Van theo loi ong Vuong Dinh Hue thi ca Uy ban Thuong vu Quoc hoi, dung dau la Uy vien Bo chinh tri kiem Chu tich Quoc hoi Nguyen Phu Trong, cung da ve hua voi Nguyen Tan Dung, Nguyen Sinh Hung va ra lenh ngan can Tong kiem toan Nha nuoc thi hanh cong vu tai Vinashin: "Ngay ca Uy ban Thuong vu Quoc hoi cung cho rang: "Nen xem xet, can nhac chua dua vao ke hoach kiem toan nam 2010 cac tap doan, tong cong ty ma Thanh tra Chinh phu, Thanh tra Bo Tai chinh da co quyet dinh thanh tra nam 2009 nhung tam dung thanh tra theo chi dao cua Thu tuong". Ngoai ra, cung trong thu tren ong Vuong Dinh Hue da noi toac ra la, ngay ca Tong thanh tra Chinh phu Tran Van Truyen cung da lay ly do tranh "su trung lap" de tim cach ngan khong cho Tong kiem toan Nha nuoc toi xet so sach chi thu cua Vinashin: "Thanh tra Chinh phu thay co su trung lap ve mot so linh vuc va doi tuong kiem toan". Viec nay Tran Van Truyen da bien bach "tranh chong cheo" de bao ve cho cac don vi duoc ho bao che. "Thu hai, tranh chong cheo. Vi doanh nghiep cu keu la thanh tra day dac. Ne= n he cu co kiem toan thi thanh tra khong lam. Ma he thanh tra lam thi kiem toan khong lam." La co quan Tong thanh tra Chinh phu tat nhien phai duoi quyen Thu tuong, phai lam theo y muon cua nguoi dung dau chinh phu la Nguyen Tan Dung, nen khi duoc lenh can cac co quan thanh tra hay kiem toan nao thi ong Truyen da lat leo dua ra nhieu vien co khac nhau! Nhung loi giai thich tren day cua Tong kiem toan Nha nuoc Vuong Dinh Hue va mot so nguoi dung dau cac bo da chung to ro rang: Nguyen Tan Dung, Nguyen Sinh Hun= g da la hai nhan vat truc tiep tim cach can tro cac hoat dong cua cac co quan hu= u quan trong viec thanh tra, kiem toan so sach va hoat dong cua Vinashin trong nhieu nam qua. Vi cac tap doan nha nuoc dat duoi quyen cua chinh phu va trong thuc te Thu tuong truc tiep dieu khien. Chang nhung the trong danh nghia Thu tuong, Nguyen Tan Dung con tim cach vo hieu hoa nhung ket luan thanh tra cua cac co quan huu quan va co tinh bao che cac viec lam sai trai cua Pham Thanh Binh trong Vinashin khien da dua toi tinh trang la chi noi trong hon 4 nam Vinashin da gay ra mot mon no rat lon la 120.000 ti dong cho dat nuoc! Tinh hinh da xay ra o Vinashin trong cac nam qua cung da duoc Ngan hang The gioi va bao chi quoc te xac nhan, nhu da noi o tren. Trong nhung ngay qua nhieu dai bieu Quoc hoi va nhieu chuyen vien, nhan si trong nuoc da to ra rat bat binh truoc thai do tron tranh trach nhiem cua Nguyen Tan Dung, Nguyen Sinh Hung. Vi ngay Uy ban Tu phap Quoc hoi da xac nhan co bao che trong vu Vinashin: Viec phat hien vi pham co dau hieu toi pham nhung khong duoc xu ly, ngan chan kip thoi, dien hinh nhu vu Vinashin qua 11 lan thanh tra, kiem toan nhung sai pham nhu dau tu dan trai, tran lan tren nhieu linh vuc khong lien quan den chuc nang cua tap doan, kem hieu qua, thua lo nang ne; tinh hinh tai chinh dung truoc bo vuc pha san; san xuat kinh doanh dinh tre; tinh hinh noi bo dien bien phuc tap: 1,7 van cong nhan bo v= a chuyen viec, tren 5.000 cong nhan mat viec lam, no luong... ma Chinh phu va cac co quan chuc nang khong biet, khong ai chiu trach nhiem. Qua do xa hoi va cu tri rat buc xuc cho rang co su bao che cho nhung viec lam sai trai, vi pham phap luat cua Vinashin lam thiet hai lon den tien va tai san cua Nha nuoc., Xet cong va toi cua mot chinh khach phai can cu tren cac su kien ro rang: quyen hanh duoc giao pho toi muc do nao, trach nhiem theo doi cong viec ra lam sao, thanh qua dat duoc nhu the nao va thai do cua chinh khach dung truoc thanh cong cung nhu that bai. Dua tren cac co so khach quan nay de xet ve trach nhiem cua Nguyen Tan Dung trong vu Vinsahin: - Theo qui dinh ve to chuc va dieu hanh cua hai loai doanh nghiep nha nuoc lon nhat la Tap doan va Tong cong ty 91 thi Thu tuong co quyen bo nhiem cac chuc Tong giam doc va Chu tich Hoi dong quan tri. Mac dau trai voi nguyen tac phan quyen, nhung tu nam 2006 trong tu cach la Thu tuong, ong Dung da giao cho Pham Thanh Binh, nguoi dong huong Ca Mau voi minh, ca = 4 chuc vu chu chot trong tap doan Vinashin: Bi thu Dang uy, Chu tich Hoi dong Quan tri, Chu tich Tap doan va Tong giam doc. - Cung trong thoi gian hon 4 nam nay, trong tu cach la Thu tuong, Nguyen Tan Dung da ra lenh cho cac bo Tai chinh, Ngan hang Nha nuoc rot tien rat lon cho Vinashin. Ngoai ra ong Dung con cho phep Vinashin, duoi du bao lanh cua chinh phu, duoc quyen phat hanh trai phieu ca Dollar lan tien dong tri gia len hang chuc ngan ti dong de Pham Thanh Binh thuc hien viec mo rong rat lon va rat nhanh nhung hoat dong cua Vinashin ca nhung lanh vuc khong dinh dap gi toi dong tau va sua chua tau. - Cung trong thoi gian hon 4 nam nay Nguyen Tan Dung trong tu cach la Thu tuong, nhung da khong luu y toi cac loi canh bao va cac de nghi cua nhieu bo lien he voi Vinashin, ke cac chuyen vien doc lap. Tuy cac co quan thanh tra, kiem tra d= a toi kiem soat 9 lan va da kham pha ra nhung sai lam nghiem trong cua Vinashin. Ong Dung da duoc thong bao, nhung Nguyen Tan Dung van de Pham Thanh Binh tiep tuc tu do hanh dong. Khong nhung the, Nguyen Tan Dung con dung uy quyen va ca manh loi de ngan can khong cho Tong kiem toan Nha nuoc duoc quyen kiem toan so sach chi thu cua Vinashin. - Tu 2008-09 khi cuoc khung hoang kinh te-tai chinh the gioi bung no thi kinh te VN cung roi vao khung hoang tram trong, khien cho so no da qua lon cua Vinashi= n khong the con dau kin duoc nua thi Nguyen Tan Dung da tim cach, mot mat do thua do nguyen nhan khach quan tu cuoc khung hoang kinh te-tai chinh the gioi va mat khac con trut tat ca toi len Pham Thanh Binh va do loi cho mot so bo va co quan chinh phu. Trong cac bao cao trinh bay tai Bo chinh tri cuoi thang 7 cung nhu goi Quoc hoi giua than= g 10 vua qua Nguyen Tan Dung van tim cach che dau nhung sai lam do chinh minh gay ra, ch= i bao do la "chinh phu chiu trach nhiem", tuc la trach nhiem tap the va phu nhan trach nhiem ca nhan cua chinh ong Dung. Cac su kien dan chung tren day da cho thay, trong tu cach la Thu tuong nhun= g Nguyen Tan Dung da di vao nhieu sai lam nghiem trong trong viec giao pho, dieu hanh, kiem soat, thong tin va muc do y thuc trach nhiem trong vu Vinashin. Vi the, duo= i quyen chi dao cua Nguyen Tan Dung chi trong vong hon 4 nam Vinashin da gay thiet hai cho ngan qui quoc gia len toi 120.000 ti dong, bang khoang gan 1/6 tong thu cua ngan sach nha nuoc nam 2009 do tien thue cua nhan dan! Nhung gi da xay ra tai Vinashin trong hon 4 nam qua chung to ro rang la, Nguyen Tan Dung da giao cong viec cho nguoi khong dung kha nang, trao quyen rong rai nhung lai khong co kiem soat chat che, toi khi xay ra nhung thiet hai lon cho ngan sach quoc gia thi lai khong dam cong khai nhin nhan trach nhiem ca nhan, lai do thua cho nhun= g nguoi duoi quyen va vien dan cac ly do khach quan. Nhu the ong Dung da tu danh ma= t long tu trong va tinh than trach nhiem, lam mat uy tin cua Chinh phu. Vi vay xet ve mat trach nhiem chinh tri, trong tu cach dung dau chinh phu ong Dung phai la nguoi chiu trach nhiem chinh tri dau tien ve su pha san va mon no that khung khiep cua Vinsahin tu 2006-2010. Xet ve mat tu cach va kha nang lanh dao, ong Dun= g da tu chung to bat tai va thieu tu cach. Do do dung ra Nguyen Tan Dung phai tu chuc Thu tuong ngay. Vi ngay sau khi Nguyen Tan Dung nhan chuc Thu tuong, ong da co Quyet dinh ro rang la, bat cu co quan nao trong chinh phu de xay ra nhung sai tra= i thi nguoi dung dau co quan do phai chiu trach nhiem! Nhung hanh vi nay la vi pham ki luat va da dan toi gay thiet hai cong qui rat lon. Nhung cac viec lam hien nay cua Nguyen Tan Dung da cho thay, ong Dung da khong du can dam nhin nhan trach nhiem cua nguoi dung dau chinh phu, ma lai do rieng cho Pham Thanh Binh, cac bo va co quan khac trong chinh phu. Thai do nay lai chung t= o Nguyen Tan Dung khong chi co tac phong tron tranh trach nhiem ma con mat ca tu cac= h va dao duc nua. Mot chinh khach ma khong biet chon nguoi, khong co y thuc trach nhiem va danh mat ca tu cach dao duc, nhu the la da tu danh mat uy tin va khong xung dang o vai tro lanh dao tiep tuc. Ghi chu: Cac trich dan trong bai lay tu Thanh Nien, Tuan VN, Bao cao chinh phu gui Quoc hoi, RFI, Nhan Dan, VietNamNet, Tien Phong, Lao Dong, Tuoi tre. (Xin xem them chi tiet o tep tin dinh kem. Xin cam on.) --0015174c3fd622a1e004a7ed1091 Content-Type: text/html; charset=windows-1252 Content-Transfer-Encoding: quoted-printable

Trung Quoc co the tan cong Truong Sa - Viet Nam vao cuoi thang Ba, dau t= hang Tu? (yyy-ggg-yyy)

http://www1.vietinfo.eu= /chuyen-phiem/trung-quoc-tan-cong-truong-sa-viet-nam-vao-ngay-014.html = HB 08-03-2011 00:08 ()

Trung Quoc tan cong Truong Sa - Viet Nam vao cuoi thang Ba, dau thang Tu= ?

Theo tin tinh bao va tu su phan tich, tong hop cac hien tuong, dien bien= khu vuc va quoc
te gan day thi co kha nang rat cao Trung Quoc se tan c= ong xam luoc Truong Sa cua Viet
Nam vao cuoi thang Ba, dau thang Tu nam= nay.

Truoc het, diem lai lich su thoi diem Trung Quoc gay chien tranh xam chi= em Viet Nam
thuong vao dau nam, thuong vao cac thang Mot, Hai va Ba. Ke= tu khi ra doi nuoc Trung
Quoc Cong san, ngoai vo van cac vu xam canh, = xam cu, muon dat chon nguoi, v.v. len
lut o doc bien gioi phia Bac thi Trung Quoc da lien tuc thuc hien nhung cuo= c tan cong tu
quy mo vua cho den quy mo cuc lon, chiem dong lanh tho cu= a Viet Nam mot cach trang
tron, bat chap luat phap, du luan quoc te. Ngay 20 rang sang 21 thang Hai, nam 1956 Trung Quoc bi mat cho do quan chie= m dong
trai phep cac dao phia Dong quan dao Hoang Sa, ma sau hiep dinh = Gio-ne-ver 1954 thuoc
quyen quan ly cua chinh quyen VNCH.
Trong cac = ngay 17, 18 va 19/ 1/ 1974 Trung Quoc gay chien va chiem not toan bo khu vuc phia Tay quan dao Hoang Sa tu tay chinh quyen VNCH.

(Anh: Tau chien Trung Quoc)

Ngay 17 cung thang Hai 1979 Trung Quoc xua 60 van quan tran qua bien gio= i phia Bac
sang tan pha, bat giet dan lanh Viet Nam. Du sau do da bi qu= an dan Viet Nam duoi danh,
nhung nhieu khu vuc theo du luan Trung Quoc = van chiem giu cho den nay, va Hiep dinh
bien gioi 1999 da phan nao hop phap hoa nhung khu vuc ho chiem khong chiu t= ra lai nhu
nua Thac Ban Gioc, Ai Nam Quan, Nui Lao Son (Nui Dat- diem c= ao 1509) v.v.

Gan day nhat, 14/3/1988 Trung Quoc da tan cong 3 bai ngam thuoc quan dao= Truong Sa
cua Viet Nam la Gac Ma, Dao lin va Co Lin. Cuoi cung Trung Q= uoc chiem duoc bai Gac
Ma sau khi sat hai 64 chien si hai quan tay khon= g co vu khi, va ban chim 3 tau van tai
Viet Nam.

Nhu vay, xet ve mat thoi gian, nay dang thang Ba - phu hop voi thoi diem= "truyen thong"
phat dong chien tranh xam chiem Viet Nam cua = Trung Quoc.

Gan day Hai quan cua Trung Quoc tap tran o Bien Dong lien tuc ma Viet Na= m chi len
tieng khi truyen thong Trung Quoc loan tin ve cuoc tap tran n= ao do da xay ra, va thuong
Viet Nam phan doi rat muon- mat vai tuan (vi= thieu nguoi dich tin chang?). Duoc biet,
cac cuoc tap tran cua Trung Quoc chu yeu la tap do bo chiem dao va bat giu = ngu dan,
nhung ho lap liem noi nguoc la tap tran chong do bo len dao va= chong cuop bien.

Hai quan Trung quoc hien tai manh hon Viet Nam rat nhieu. At chu bai cua= Hai quan
Viet Nam la tau ngam kilo chua kip nhap ve. Hon nua Viet Nam = chua co Hiep uoc quan
su voi bat cu cuong quoc nao, nen kha nang Viet N= am it co ai hop tac, bao ve nhu Nhat Ban, Dai Loan...

Van de Truong Sa, Trung Quoc may ngay nay dung ke "duong Dong kich = Tay"
cho tau chien, ngu dan, may bay,...xam nhap vao lanh hai, kho= ng phan cua Nhat Ban,
Han Quoc nham danh lac huong su chu y. Hon nua, m= ay ngay qua tau chien Trung Quoc
tang cuong dot bien, hoat dong o vung bien phia Dong quan dao Truong Sa. Tr= ung quoc
cho tau chien gay han voi tau tham do cua Philippines ngay 2/3= nhu la thuoc thu kha
nang phan ung, tinh doan ket cua khoi ASEAN. Nen = nho, doi voi su kien nay khong mot
nuoc nao thuoc ASEAN, trong nhom cac nuoc dang hien dien quan doi o Truong = Sa len
tieng phan doi Trung Quoc ngoai Philippines. Dieu nay khien Trun= g Quoc se tien them
buoc moi manh bao hon.

Viet Nam vua Dai hoi Dang xong, dang trong qua trinh sap xep, phan bo vi= tri nhan su-
day la thoi diem nhay cam de Trung Quoc se thu "nan = gan", hoac gian tiep xep dat nhan
su than Trung Quoc qua viec tang= bau khong khi chien tranh o Truong Sa.

De y nhung ngay dau thang Ba nay, bao chi Viet Nam khong phai ngau nhien= ma dua ra
mot loat bai viet co tinh ke toi Trung Quoc, khoi day tinh t= han dan toc quat cuong chong
giac ngoai xam. Day la hien tuong nhat quy= et khong binh thuong! Han rang, Viet Nam
da du doan duoc van de! Trong so nhung bai bao thoi bung ngon lua yeu nuoc = cua thanh
nien Viet Nam truoc da tam tham doc cua Trung Quoc phai ke de= n bai "Toan tinh cua
Trung Quoc o Bien Dong" dang tren VN Net= va "Lang Son, nhung ngay thang Hai" tren
trang Thanh Nien.

Mot su kien khac cung co them cho gia thuyet Trung Quoc se tan cong Truo= ng Sa sap
toi, boi lan dau tien, nam ngoai Trung Quoc cong bo chinh thu= c ban do "luoi bo" 9 vach.
Day la viec lam mang tinh chuan bi= du luan quoc te va kich dong tinh than Dai Han. Neu
khong chiem duoc cac dao o Truong Sa thi cai "luoi bo" nay khong = co diem tua, vo
nghia va "vo duyen"! Bang moi gia khong som t= hi muon Trung Quoc se tan cong Truong
Sa. Do la su that buon ma bat cu = nguoi Viet Nam nao cung nen y thuc, khong duoc mo ho.

Boi canh the gioi hom nay, nhat la cach mang hoa nhai dang lan toa o Tru= ng Dong va
Bac Phi khien Trung Quoc lo so lan song bieu tinh trong nuoc= bung phat. De ngan chan
cac phong trao bieu tinh doi dan chu co the xa= y ra, Trung Quoc se su dung ke "vay Nguy
cuu Trieu"- tuc la gay chien o Truong Sa de dap tat phong trao dan chu= trong nuoc.

Viec lien quan Anh- My kieu gi cung se can thiep quan su vao Libya neu D= ai ta Kaddafi
khong ra di, se la co hoi tot cho Trung Quoc.

Them mot chi tiet khac cung co cho nhan dinh Trung Quoc co the tan cong = Truong Sa
vao dau thang Tu, moi nghe thi cho la vo van nhung ngam ra th= ay can nghiem tuc dieu
tra. So la chuyen Cu Rua an thit meo chet. Da co= ai dat ra cau hoi, lam sao ma lai co con
meo den to the chet duoi ho Guom? Meo den rat quy, thit an chua benh, xuong= de nau
cao, ai nguoi Viet Nam chang biet ma dai dot vut xuong ho. Chac= chan co ban tay "la"
nem meo den xuong cho Cu Rua nha guom t= han ra de dop xac meo chet. Nhu vay la Cu
Rua mat de cao canh giac, tham an tuc uong, quen nhiem vu giu guom bau chon= g giac
ngoai xam. Cu Rua da thoai hoa, bien chat! Ngay xua chi noi len = trao guom va doi guom,
nay thi bat cu su kien nao, co ti mau la noi len= chao mung, that mat tu cach. Ngoai ra,
viec gian diep lam noi ung quang meo den xuong ho Guom dau nam Mao nham loi= keo
nhan dan do xo chen chuc xem man ruot, da meo noi lenh benh ma que= n di su hien dien
cua Trung Quoc o Bien Dong; quen di 6 ngu dan Quang N= gai gan 3 thang nay van biet tam
vo tich ke tu lan cuoi cung duoc thay dang nhat rong gan quan dao Hoang Sa,= dieu ma
dang ra moi ngay bao chi hay truyen hinh it nhat phai nhac lai= mot lan.

-----
Cu tri kien nghi: Bo chinh tri kien quyet chong tham nhung, kie= m tra, kiem diem, cach chuc cac ong Nguyen Phu Trong, Truong Tan Sang, Nguy= en Tan Dung, Le Thanh Hai, To Huy Rua, Pham Quang Nghi, Le Hong Anh, Phung = Quang Thanh, Nguyen Ba Thanh, Hoang Kong Tu, Nguyen Duc Nhanh, Nguyen Thien= Nhan, Nguyen Sinh Hung tham nhung, thoi nat, hai nuoc, hai dan ()

Phan 1: Cu tri kien nghi: Bo chinh tri kien quyet chong tham nhung, kiem= tra, kiem diem, cach chuc ong Truong Tan Sang tham nhung, hiep dam

http://www.vietbao.com/?ppid=3D45&pid=3D4&nid= =3D55429 10/31/2000, 12:00:00 AM ()

Cuu Bi thu Thanh uy Sai Gon - Truong Tan Sang - bi to hiep 1 nu Giam doc= =A0=A0
=A0
Bi thu Quan 3 - Tam Thanh, dan dung dang phu nu cho Truon= g Tan Sang

Loi gioi thieu: Cach day it lau Thong Diep Xanh co nhan duoc mot so tai = lieu tu trong
nuoc gui ra, trong do co hai van ban duoi day. Sau khi du= oc biet hai van ban to cao
dich danh ong Truong Tan Sang, nguyen Bi thu= thanh uy thanh pho Ho Chi Minh, lot ra
tu co quan nhan don, khong tru ca Van phong Tong bi thu Dang Cong san Viet = Nam, da
duoc gui den tay nhieu nguoi va nhung nguoi biet vu viec da xac= nhan chuyen co that,
Thong Diep Xanh quyet dinh dua chung len dien dan= cong khai.


"De cho moi nguoi deu biet xa hoi Viet Nam da bi bang hoai den = muc nao, khi trong gioi
cam quyen hom nay nhung ke nhu Tu Sang, Pham Th= e Duyet... sau khi pham toi van nhon nho
chuyen tu ghe lanh dao nay qua= ghe lanh dao khac", nhu nguoi gui nhan nhu. Ong ket luan:
"Khi mot xa hoi khong co doi trong de can bang quyen luc thi quyen luc= duy nhat se pha
tan xa hoi do, lam cho no tro thanh ban cung va vo lua= n. Quyen luc phai duoc giam sat
thuong xuyen va bi chan dung ngay lap t= uc khi no co bieu hien long hanh. Can phai dap
tan moi thu quyen luc doc ton de nguoi dan truoc het co duoc quyen lam nguo= i".

***

Cong Hoa Xa Hoi Chu Nghia Viet Nam
Doc lap - Tu do - Hanh phuc
---= --------

Don to cao
v/v tu cach, dao duc cua bi thu thanh uy Truong Tan Sang<= /p>

Kinh gui d/c Tong bi thu Le Kha Phieu,

Toi ten la Vo Thi Thu Hong, ngu tai 51/84 Cao Thang, phuong 3, quan 3, t= hanh pho Ho Chi Minh, xin to cao mot su that cay dang
doi voi ca nhan t= oi nhu sau:

Khoang nam 1993, mot hom ong Huynh Van Thanh (Tam Thanh, luc do la bi th= u quan uy quan 3) yeu cau toi cung di
voi ong ay den khach san Hoa Binh= (so 57, duong quoc lo 15 Bien Hoa - Dong Nai) de tiep va lam viec voi
ong Tu Sang (Truong Tan Sang, luc do la chu tich Uy ban Nhan dan thanh pho = Ho Chi Minh). Luc dau toi de nghi
tu di xe rieng de tim cach khong den.= Nhung sau do, khi hai ong (Tam Thanh va Tu Sang) da den khach san,
thi lien tuc goi dien thoai goi toi den. Va sau do ong ay cho xe den don to= i di. Khong con cach nao de tu choi,
buoc long toi phai theo xe den kha= ch san theo yeu cau cua ong ay. Khi den noi, toi khong thay ong Tam Thanh d= au ma
chi thay ong Tu Sang dang ngoi cho o khach san. Ong co ve gian, trach toi &= quot;cham chap", roi dan toi vao mot phong
trong khach san.
Sau= khi keu ruou, nuoc uong va chot cua lai, ong Tu Sang hoi vai cau xa giao, = roi bat dau trach toi. Ong noi:
"Sao em dai qua vay, anh de y, theo doi va thuong em lau roi, em khong= biet sao? Tam Thanh co noi truoc cho em biet khong?
Hom nay em co tinh = tranh ne anh phai khong?" Roi ong ay om hon toi va buoc toi phai "= ;chiu" ong ay.
Luc bay gio toi khong con cach chong do nao khac, danh phai "chiu dung= " va khoc. Ong Tu Sang do danh, va hua hen se
lo lang, giup do toi= trong cong viec..., va cho xe dua toi ve (ong Tu Sang con o lai do). (Ro r= ang toi phai ngu voi
ong Tu Sang vi bi bat buoc va khong con cach khang cu nao khac).

Hom sau, ong Tu Sang co goi dien thoai tham hoi toi va hen tuan sau di c= hoi nua. Toi khong noi gi. Den tuan sau ong
lai ru di Suoi Tien, toi la= y co benh - xin loi khong di. Sau do cu mot hoac hai tuan mot lan ong deu d= ien thoai hen
gap va ru di choi. Lan nao toi cung lay ly do benh - (dau bung, nhuc dau, c= um...) de tu choi. Khoang hon mot thang
sau do, ong Tu Sang yeu cau toi= sap xep cong viec de di Singapore voi ong ay. Lien luc do, ong Tam Thanh k= eu toi qua
van phong bao toi phai sap xep cong viec de di Singapore voi ong Tu Sang. O= ng Tam Thanh con noi "Anh Tu Sang quan tam
den co ma co khong biet= dieu, se khong co loi cho cong viec dau..., toi thuong co toi moi chi ve&q= uot;.

Biet rang neu tu choi thang thung thi se mat long thu truong roi khong b= iet viec gi se xay ra, toi ben dem
5.000USD (nam ngan do la My - tien r= ieng cua chong toi la giam doc mot cong ty tu nhan) den nha ong Tu Sang, dua tan tay ong ay va nan ni ong ay di mot minh vi toi qua ban. (Toi con nu= a dua nua that noi: anh qua ben do
thieu gi nguoi dep san sang chiu chu= ong anh, em co la cai dinh gi dau). Ong ay to ve khong vui, nhung toi
loi dung luc ong ay co khach de ra ve.
Sau do, do viec dung cham voi on= g Huynh Van Thanh (nhu da trinh bay trong don truoc), khong thay ong Tu San= g
dien thoai tham hoi va ru re toi nhu truoc nua. Toi biet co le ong Ta= m Thanh da noi xau gi toi voi ong Tu Sang,
va vi toi cu ne tranh hoai nen ong ay gian. Luc do, toi cam thay mung vi kh= ong bi "quay roi" nua. Toi da khong
luong truoc duoc nhung su= tru dap va hau qua ma toi phai chiu dung hom nay do khong "chiu"= y thu truong.
(Neu toi thoa man moi yeu cau cua ong Tu Sang va ong Tam Thanh thi co le to= i da duoc giup do va duoc "cat nhac",
chu khong phai chiu tu = day, kho so nhu gan 3 nam qua).

Kinh thua dong chi tong bi thu,

Tren day la toan bo su that cay dang va nhuc nha ma toi khong dam he moi= tho lo cung ai. Sau mot thoi gian dai dan do,
suy nghi, nay nhan dip C= hinh don Dang, la mot dang vien (du da bi tru dap khai tru Dang), toi manh = dan noi len toan bo
su that nhu tren voi mong muon duoc dong chi tong bi thu biet het su that v= e cac can bo, dang vien cua minh. Va voi cuong
vi la lanh dao cao nhat = cua Dang, dong chi lua chon va cu nhung nguoi xung dang dam trach nhung nhi= em vu cao de dem lai
long tin noi nhan dan vao Dang.
Ben canh noi cay dang va nhuc nha nhu t= ren, hien nay toi dang bi oan uc vi bi bat giam vo co hon 10 thang, bi qui = toi
"bao cao sai va co y lam trai trong quan ly kinh te". Tha= t ra, theo suy nghi cua toi, do la do toi khong dap ung cac
yeu cau rieng cua thu truong truc tiep ma phai mang toi.

Kinh mong dong chi tong bi thu som co quyet dinh dut khoat, lam ro noi v= u nay, giup cho toi som duoc giai oan, de toi
co dieu kien dong gop suc= luc va tri tue con lai cua minh vao su nghiep xay dung dat nuoc. Dong thoi= de cha me toi -
nhung nguoi da suot doi theo Dang qua hai cuoc khang chien duoc yen long nh= am mat.

Toi xin hoan toan chiu trach nhiem ve cac su viec da neu trong don.

Vo cung cam on dong chi Tong bi thu Le Kha Phieu. Kinh chuc dong chi luo= n vui khoe.

TPHCM, 16/10/1999
Kinh don
(ky ten)
Vo Thi Thu Hong

***

Cong Hoa Xa Hoi Chu Nghia Viet Nam
Doc lap - Tu do - Hanh phuc

Don to cao khan cap

Kinh gui: Ban lanh dao cac cap

Toi ten la Nguyen Canh Sinh. Sinh nam 1953 tai Binh Chanh. So Chung minh= Nhan dan: 030072913. Hien thuong tru
tai 51/84 duong Cao Thang Phuong = 3, Quan 3. Nguyen la giam doc doanh nghiep tu nhan theu Cao Thang (nay da g= iai the).
La chong cua Vo Thi Thu Hong, sanh nam 1955, ngu tai 51/84 duong Cao Thang = Phuong 3, Quan 3, nguyen la giam doc
xi nghiep may xuat khau Quan 3, da= bi ong Huynh Van Thanh (bi danh Tam Thanh), nguyen la bi thu, chu tich Uy = ban Nhan dan Q3
da chi dao cho cong an Quan 3 bat ham oan vo toi tai nha vao ngay 31/05/199= 7, luc do toi khong co o nha va cung
khong thay mot quyet dinh nao, ly = do vi sao bi bat. Sau nay, toi biet them la co su chi dao cua ong Truong Ta= n Sang,
bi thu thanh uy thanh pho Ho Chi Minh.

Kinh thua Ban lanh dao,

Ong Huynh Van Thanh va ong Truong Tan Sang rat than thien gan bo voi nha= u ke tu khi ong Tu Sang len lam chu tich
UBNDTP Ho Chi Minh. Hai ong th= uong xuyen di danh tennis tai san T78, san Ho Xuan Huong, va cung thuong xu= yen di nhau nhet,
an choi voi nhau. Suot qua trinh lanh dao cua ong Tam Thanh, ong Tu Sang ta= i Quan 3, Thanh pho Ho Chi Minh da lam cho
tinh hinh kinh te ngay cang = bi dat, cuc ky kho khan, tinh hinh cac doanh nghiep tu nhan tro nen toi te,= nhat la tai
Quan 3. Su yeu kem ve nang luc lanh dao, trinh do van hoa, su an choi sa do= a cua cac ong da khong the nao che mat
duoc dan chung. Su quan lieu chu= c quyen lam chuyen doi bai, khong con du tu cach va co nhieu nguoi biet den= nhung
vi so bi tra thu, tru dap nen khong dam to cao, nen long uat uc. Va cu the = la truong hop cua vo toi bi ong tru dap
thang tay, nham che day su that= ve con nguoi xau xa cua cac ong ay, khong xung dang la dang vien Dang cong= san Viet Nam.

- Trong UBND Quan 3 khong ai khong biet ong Tam Thanh la da co vo, van q= uan he nhu vo chong voi ba Dao Thi Nga tai
khach san Ban Co (ba Nga ngu= yen la giam doc khach san Ban Co).

- Cung chinh ong Tam Thanh da quan he voi vo toi nhu vo chong suot thoi = gian dai tu khi vo toi con lam
pho phong ke hoach Quan 3, roi qua lam g= iam doc xi nghiep may xuat khau Quan 3. Viec nay lam toi vo cung dau don, <= br> can rang chiu dung truoc du luan vi biet minh dang chiu ap luc cua cac ong = trong lam an kinh te, nhieu luc
vo chong toi to tieng cai va doi ly di.= Co lan toi tuc gian di den van phong quan uy Quan 3 de bao voi
to chuc= quan uy ve viec nay, nhung vo toi chay theo can khong cho toi vao quan uy.= Viec nay cang lam toi tuc gian,
nghi ngo va thay rang vo minh da bi ong Tam Thanh loi dung chuc quyen, chie= m doat va tro thanh nan nhan
cua ong chu tich Quan 3 khong khac gi ba D= ao Thi Nga. Co lan toi theo doi vao buoi chieu thay vi di hoc
Anh van n= goai gio vo toi co den khach san Ban Co, nhung khoang hon mot tieng dong ho= thi vo toi di ra,
quay ve tiep tuc di hoc. Toi tu thac mac: tai sao di hoc lai vao khach san = de lam gi?
Khi tim hieu va tra khao vo, toi biet them la vo toi bi ong T= am Thanh ga gam cho ong Tu Sang. Ong Tam Thanh
o rieng mot phong voi mo= t co, con vo toi voi ong Tu Sang o chung mot phong, khi ve di chung voi ong= Tu Sang mot xe.

- Ong Tam Thanh va ong Tu Sang thuong hay duoc Nguyen Ngoc Chau, giam do= c Cong ty vat tu Quan 3, chieu dai an nhau,
thinh thoang co di len khac= h san so 57 Hoa Binh tai Bien Hoa, trong do co vo toi va 2 co cung di theo = nhung
khong biet ro ten.

- Ong Tam Thanh trong thoi gian lam bi thu chu tich thuong hay to chuc d= anh bai tai nha cung cac can bo doanh nghiep
than can, den noi cac can = bo huu tri deu biet. Nhu loi ong Tin, giam doc xi nghiep thuoc la Hoa Cuc (= da nghi huu)
noi voi toi:"Nay, biet khong, chieu nao o nha thang cha Tam Thanh cung= nhu song bac Dai The Gioi thu nho".

- Nam 1993, co lan toi len chuc tet o UBND Quan 3 thi ong Tam Thanh goi = y keu toi bao ong di Singapore.
Nhung toi im lang va khong dam hua vi c= ung da hieu y ong muon gi, con toi thi khong du kha nang thoa man y ong. Sau do ong ep vo toi lo 100 trieu de cho hai ong Tam Thanh va ong Tu Sang d= i Singapore.

- Ong Nam Khoa (pho chu tich UBND Quan 3) co lan noi voi toi: "Ong = Tam Thanh noi chong con Thu Hong la chong Tay
cho khong phai chong ta&q= uot;. Phai chang loi noi do the hien ong Tam Thanh ghen tuc khi thay vo toi= trong lam an kinh te
phai tiep xuc nguoi nuoc ngoai, khong con chieu chuong hau ha ong nhu truoc= day va ra tay tru dap khong thuong tiec?

- Vi vo toi khong thoa man nhu cau cho ong Tu Sang di nuoc ngoai, va vo = toi khong den voi ong Tu Sang nua nen
ong Tam Thanh da tim moi cach gay= kho khan cho Xi nghiep may xuat khau Quan 3? Cac de xuat va giai phap thao=
go kho khan cho xi nghiep deu bi ong Tam Thanh va Tu Sang phot lo khong gia= i quyet de bat vo toi mot cach oan uc.

Toi xin kinh mong Ban lanh dao cac cap nghien cuu xem xet de minh oan ch= o vo toi duoc sang to nham tro lai
phuc vu cach mang, gop phan khac phu= c hau qua hien nay.

Toi xin cam doan nhung loi trinh bay tren day la su that, neu co gi sai = trai toi xin chiu trach nhiem hoan toan.

Ngay 3 thang 10 nam 1999

(ky ten)
Nguyen Canh Sinh

http://www.thegioinguoiviet.net/showthread.php?p=3D36071= Trung Dien 3/7/2010=A0 03:05 PM

La bai Truong Tan Sang

Truong Tan Sang den nha gap tuong Nguyen Trong Vinh
=A0
Du luan t= rong va ngoai nuoc dang quan tam ve viec ong Truong Tan Sang den gap cuu Tuong ve huu Nguyen Trong Vinh tai nha rieng vao ngay 13 thang 6 vua qua.= Su kien
nay xay ra sau khi la thu cua mot so can bo ve huu gui cho Bo chinh tri va = Ban bi thu
hom 22 thang 4, 2010 de cap ve kha nang va tu cach dao duc c= ua bon nhan vat cao cap
nhat trong dang Cong san Viet Nam la Nong Duc M= anh, Nguyen Tan Dung, Nguyen Phu
Trong va To Huy Rua.

Theo cuu Tuong Nguyen Trong Vinh thi buoi gap go voi Truong Tan Sang die= n ra "than
mat" va Sang to thai do le phep va tu ton. Truong = Tan Sang co dat van de voi Tuong
Vinh ve viec tai sao la thu gop y voi = lanh dao lai de lot ra ngoai thi Tuong Vinh noi la
ong khong biet, ong chi gui cho Bo chinh tri, Ban bi thu va cac Uy vien Tru= ng uong dang
ma thoi. Truong Tan Sang co yeu cau la neu co kien nghi gi= thi nen gui tung nguoi den
cho ong ta va khong nen ky gui tap the. Tuo= ng Vinh noi rang ky ten ca nhan va gui di
nhu Tuong Giap ma khong mot ai tra loi thi danh phai ky tap the may ra lanh= dao tra loi.

Tuong Vinh con noi rang ong da hoi Truong Tan Sang hai dieu: 1/ Khi Tuon= g Giap chet
co lam quoc tang theo nhu yeu cau cua ong va Tuong Dong Si = Nguyen hay khong; 2/ Dai
hoi dang XI can thuc hien dan chu, Nguyen Chi = Vinh toi loi day minh khong the dua vao
Trung uong dang. Tuong Vinh cho biet la Truong Tan Sang noi co the lam quoc= tang doi
voi Tuong Giap nhung im lang khong tra loi ve vu Nguyen Chi V= inh.

Voi noi dung cuoc trao doi giua Truong Tan Sang va tuong Vinh noi tren, = khong can
thiet de ong Sang phai den tan nha gap mat; nhung ong Sang da= khong nhung bo thoi gio
ma con ha minh den gap Tuong Vinh cho thay la = ong Sang co nhung toan tinh trong cuoc
chay dua ghe Tong bi thu trong dai hoi dang ky XI sap toi. Tai sao?
Nguo= i ta chua biet la van de "Trung Quoc" se bung no co nao ngay tron= g dai hoi XI vao
thang 1 nam 2011; nhung khong khi chong Trung Quoc va = lan song phe phan hang ngu
lanh dao qua yeu hen doi voi Trung Quoc dang noi len manh me trong noi bo d= ang Cong
san Viet Nam. Tai dai hoi dang ky IX vao nam 2001, ong Le Kha = Phieu da mat ghe Tong
bi thu chi vi da chi thi cho Bo ngoai giao ky Hie= p uoc bien gioi phia Bac voi Trung Quoc
nam 1999 va Hiep dinh phan ranh Vinh Bac bo voi Trung Quoc nam 2000. Ong Ph= ieu da
bi to la "phan quoc" vi da de cho Viet Nam mat qua nhi= eu dat va bien khi ky hai hiep
dinh noi tren, nen da bi ep phai rut lui= cuoc dua ghe tong bi thu, mac du luc do Trung
Quoc da cu Ho Cam Dao (dang la Pho Chu tich nuoc) dan mot phai doan tren 15= 0 can bo
cao cap sang tham quan va du dai hoi IX nham hau thuan cho Le = Kha Phieu.

Trong thoi gian qua, cac ong Nong Duc Manh, Nguyen Tan Dung, Nguyen Phu = Trong,
To Huy Rua, Pham Quang Nghi da bi to la dang phuc vu cho quyen l= oi cua Trung Quoc
tai Viet Nam. Nhung bai viet cua Tuong Dong Sy Nguyen= , Tuong Nguyen Trong Vinh
va mot so can bo ve huu da phe phan nhung chinh sach sai lam, lam loi cho B= ac Kinh cua
mot so lanh dao; nhung nguoi ta lai it thay nhac den ten on= g Truong Tan Sang, hien la
Thuong truc Ban bi thu. Ong Sang duoc coi la= nhan vat sang gia nhat trong sau nguoi
(Truong Tan Sang, Ho Duc Viet, Pham Quang Nghi, Phung Quang Thanh, Nguyen T= an
Dung, To Huy Rua) dang chay dua ghe Tong bi thu. Ong Sang hien duoc = phe ong Nong
Duc Manh hau thuan va xuat hien hau nhu thuong xuyen tai H= oi nghi dang bo cac cap va
nhung ban nganh chuyen mon trong thoi gian gan day.

Nhung dien bien noi tren cho thay la ong Sang dang nam nhieu uu the de c= hiem vi tri so
mot cua dang Cong san Viet Nam trong 5 nam toi, nhung on= g Sang va phe nhom cua ong
ta van con so hai dieu: Mot la so bi to la d= ong loa voi Nong Duc Manh, Nguyen Tan
Dung, To Huy Rua trong Bo chinh tri, thong qua nhung chinh sach lam loi cho= Trung
Quoc tai Viet Nam; hai la so bi nhung can bo ve huu viet thu con= g khai phe phan kha
nang va tu cach dao duc cua minh trong qua khu, roi= pho bien trong du luan, chac chan
se anh huong xau den cuoc chay dua cua ong Sang.

Truong Tan Sang sinh nam 1949 con goi la Tu Sang, tham gia dang Cong san= Viet Nam
vao nam 1970 luc dang hoat dong du kich tai Long An, mien Nam= Viet Nam. Nam 1990,
Tu Sang duoc dua len lam chu tich Uy ban nhan dan = thanh pho Sai Gon va tro thanh Uy
vien Trung uong dang nam 1991 (dai hoi dang ky VII). Nam 1997, Truong Tan S= ang tro
thanh Bi thu Thanh uy Sai Gon va duoc dua vao Bo chinh tri nam = 1997 (dai hoi dang ky
VIII). Nhung den nam 1999, ong Sang bi trieu hoi = ra Ha Noi giu chuc Truong ban kinh
te trung uong, giao chuc Bi thu Thanh uy lai cho Vo Tran Chi.

Tu nguoi nam quyen sinh sat Thanh uy Sai Gon =96 thu do tai chanh cua Vi= et Nam dang
trong con loc dau tu kinh te manh me nhat ca nuoc =96 tro t= hanh nhan vat ngoi choi xoi
nuoc tai van phong trung uong dang la mot s= u "that sung" cua Truong Tan Sang. Luc do,
nhieu du luan cho la cuoc doi chinh tri cua ong Sang da het va viec trieu h= oi ra Ha Noi
giu ghe Truong ban kinh te chi la mua thoi gian nham che d= au su dau da noi bo. Ong
Sang bi cach chuc Thanh uy Sai gon vi hai ly d= o: 1/ Bi to cao la dinh vao duong day toi
ac cua Nam Cam (mot vu an tham nhung lon nhat nuoc vao dau nam 2000); 2/ Bi= to cao
la bao che nguoi Hoa co nhung quyen loi kinh te lon tai Sai Gon= . Nhung khi ra Ha Noi,
Truong Tan Sang da duoc phe nhom Nong Duc Manh b= ao che nen Sang da chi bi bien
phap ky luat la "khien trach" cua Trung uong vi thieu trach nhiem= trong vu Nam Cam.

Truong Tan Sang rat lo so nhung qua khu cua ong ta bi phanh phui trong d= u luan, nhat la
vao luc ma viec chuan bi nhan su cua dai hoi dang ky XI= dang o vao cao diem tu day cho
den cuoi nam 2011. Do do, viec Truong T= an Sang den nha tuong ve huu Nguyen Trong
Vinh la de nham vuot ve thanh phan cuu chien binh, thanh phan can bo ve huu= voi hai
chu dich:
Thu nhat la khong tan cong Truong Tan Sang tren m= at bao ve viec Sang nam trong nhom
than Trung Quoc hay chay theo Trung = Quoc. Kem che duoc viec nay la dieu toi quan
trong doi voi Sang khi dai hoi XI bung no nhung tranh cai ve "Trung Qu= oc".
Thu hai la muon chung to su thanh khan lang nghe y kien cua ca= c dang vien, nhat la lay
long thanh phan dang vien dang co xu huong cho= ng Trung Quoc va chong nhom lanh dao
hien nay de giup Sang co tu the vuot troi hon cac nhan vat khac trong cuoc = dua ghe Tong
bi thu.
Truong Tan Sang da tung thoat hiem o dai hoi VI= II vao nam 2001 sau khi bi giang chuc
Bi thu Thanh uy Sai gon cho ngoi = choi xoi nuoc tai van phong Trung uong voi chuc
Truong ban kinh te vao nam 1999 vi nho biet dua vao phe Nong Duc Manh o thu= ong
tang. Lan nay, Truong Tan Sang thay dua vao phe Nong Duc Manh khong= con tot nua vi
ong Manh dang bi to cao di dem voi Bac Kinh. Do do, vie= c Truong Tan Sang di gap
Tuong ve huu Nguyen Trong Vinh khong gi khac hon la dang di tim mot the dua= moi tu
ha tang dang vien, dac biet la tu khoi dang vien dang chong Tru= ng Quoc quay quanh
tuong Vo Nguyen Giap. Dieu nay cho chung ta thay la = Bo chinh tri va ca Truong Tan
Sang dang o vao the cung quan truoc su suy thoai trong noi bo dang ngay tro= nen nghiem trong.
Tom lai, Truong Tan Sang di gap Tuong Nguyen Trong Vi= nh la nham thu phuc "nhan
tam" ve cho minh trong luc su bat t= in, bat phuc va bat man lanh dao dang dang cao trong
noi bo dang vi su yeu hen cua lanh dao doi voi Trung Quoc. Nhung qua noi du= ng cua
cuoc gap go, nguoi ta thay rang Sang chi la tay thu doan, co hoi= , chi quan tam den cai ghe quyen luc cua minh ma thoi.

http://www.nguoi-viet.com/absolutenm/anmviewer.asp?a=3D= 124553 16/12/2010
Tin nhan su Dai hoi Dang khoa XI (du kien khai ma= c ngay 11/1/2011):=A0

TP HCM: Ong Truong Tan Sang se len lam Chu tich nuoc - bieu tuong danh d= u cua quoc gia - la nguoi dai dien cho dat nuoc trong doi noi va doi ngoai =

http://www.thongluan.org/vn/mo= dules.php?name=3DNews&file=3Darticle&sid=3D3447 Bui Tin 10/01/2= 009

TP HCM: Ca Sai Gon deu biet ong Truong Tan Sang song buong tha, bua bai = ra sao,
voi danh hieu "cong tu Bac Lieu", tung cuong hiep nu = nhan vien, tung co con rieng, phai dua ra Ha Noi tranh du luan che trach. <= /p>

(Cu tri quan tam: Can tim hieu ve tinh canh cua nguoi phu nu co con rien= g voi ong Truong Tan Sang,
ai la nguoi giup do de cho chi va cham soc d= ua tre khi moi ra doi, nhung ai biet chuyen nay va tu
thoi gian do den = nay cuoc song cua ho ra sao, co ai bi ham hai khong?)=A0

http://boxitvn.blogspot.com/2010/06/ong-= chi-truong-tan-sang-en-tham-toi.html Nguyen Trong Vinh 25/06/2010 08:28=

Ong Truong Tan Sang tuyen bo voi tuong Nguyen Trong Vinh: "Se thuc = hien dan chu"

http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (tric= h dan noi dung)

TP HCM: Chinh ong Truong Tan Sang "lam ngo", "bao ke"= ; cho "bang dang
xa hoi den Nam Cam" long hanh trong thoi gia= n dai, gay nhieu toi ac, lam mat
an ninh trat tu nghiem trong; gay bat = binh, phan no, mat long tin trong nhan dan.

http://www.talawas.= de/

Tham nhung chinh tri

http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (tric= h dan noi dung)

TP HCM: Ong Truong Tan Sang co nhieu sai pham, ca trong cong tac can bo,= van ung dung len chuc Truong Ban Kinh Te Trung uong=A0

http://danluanvn.blogspot.com/2010/11/phe-ng= uyen-tan-dung-phan-cong.html 13/11/2010 4:35 PM

Mot so vi Lao thanh to cao Truong Tan Sang

Truong Tan Sang da ket noi voi Nguyen Huu Hien mot phan tu tha hoa nay b= i khai tru khoi dang va bon phan dong Tran Huynh Duy Thuc.
Truong Tan S= ang da yeu cau bang van ban dua Nguyen Huu Hien lam Cuc truong Bo Buu Chinh= Vien Thong de phu trach cac de an lon cua ngan hang the gioi.

http://blog1nguoiviet.blogspot.c= om/2010/10/ang-csvn-trong-tinh-trang-hiem-ngheo.html Nghiem Van Thach 2= 0/10/2010

Truong Tan Sang, Nguyen Tan Dung canh tranh ngay cang nhieu be boi (tric= h)

Trong su canh tranh voi ong Dung, theo mot thong tin rat chinh xac, ong = Sang da lam
mot sai lam lon la vu Dang Dan chu. Qua Nguyen Sy Binh, ong= Sang muon muon tay Le
Cong Dinh, Tran Huynh Duy Thuc, Nguyen Tien Trun= g, lam dung cu de danh pha ong
Dung trong danh nghia doi lap dan chu. Tran Huynh Duy Thuc duoc trao nhung = tai lieu
de to giac Nguyen Tan Dung tham nhung tren cac blog cua minh. = Nhung ong Sang da
dung nhung nguoi qua kem. Phe ong Dung phat giac duoc= va bat ca bon. Truoc nhung
chung co khong the choi cai, tat ca da nhanh chong nhan toi va xin khoan ho= ng. Truoc do
ho to ra manh bao bao nhieu vi cay co o du ong Sang thi sa= u do ho khiep nhuoc bay
nhieu vi thay ong Dung da thang. Bien ban nhan = toi cua ho trong do co su lien he voi phe
Truong Tan Sang duoc gui len Bo Chinh tri, khien ong Sang phai "nhan k= huyet diem la
da thieu canh giac". Sau vu nay, van de ong Sang lam= Tong bi thu hau nhu khong con dat
ra nua. Nhung nhu the co ve qua chu = quan, coi thuong muu meo cua ong Sang va vay
canh ma ong da tao ra trong hon muoi nam giu vai tro ban phat on hue trong = chuc vu
Truong ban Kinh te Trung uong va Thuong truc Ban bi thu. Ong Sa= ng da chuyen sang lien
ket voi cac ong Nguyen Phu Trong va Ho Duc Viet,= va dan dan tranh thu duoc khoi dang
vien lo ngai ban tinh anh chi va dung tung tham nhung cua ong Dung.

http://www.tin247.co= m/nhieu_can_bo_tham_nhung%2C_tieu_cuc_trong_linh_vuc_nha_dat-6-21314888.htm= l 17/08/2006 - 05:57 - Nguon: vnExpress.net

TP HCM: Nhieu can bo tham nhung, tieu cuc trong linh vuc nha dat

- Chu yeu tap trung o viec thanh ly, ban nha dat thuoc so huu nha nuoc; =
loi dung danh nghia lap du an nha cho nguoi co thu nhap thap hoac cho c= an bo,
cong nhan vien nhung sau do phan lo, ban nen khong dung doi tuon= g...

- Vi pham pho bien tren linh vuc tai chinh la viec mua sam vat tu trang = thiet bi voi gia tri
lon khong qua dau thau hoac quan ly dau thau khong= chat che, lam phat sinh nhieu tieu cuc, gay that thoat, thiet hai lon.

http://vietnamnet.vn/bandocviet/2003/6/15020/ 07:48' 10/06/2003= (GMT+7)

TP.HCM: Vu an Nam Cam

http://www.vietnamreview.com/m= odules.php?name=3DNews&file=3Darticle&sid=3D6971 31/7/2008 00:4= 7

TP HCM: Khi xay ra chuyen bang dang Nam Cam long hanh o Sai Gon,
Tru= ong Tan Sang la Bi thu thanh uy, Tuong Cong An Bui Quoc Huy
la giam doc= So Cong An thanh pho (HCM), Tran Mai Hanh la tong bien tap to "Nha Ba= o Va Cong Luan".

Chuyen vo lo tu mot bai bao to cao Tran Mai Hanh an tien cua Nam Cam de tay nay ra tu som. Cuoc dieu tra bat dac di lam noi len mot he thong chang chit tu cong an, vien chuc tu phap, vien chuc thanh pho, dinh liu &= quot;che du" cho bang dang xa hoi den lam an.

Cuoi cung, nam 2003, Nam Cam bi an tu hinh, Tran Mai Hanh (da len toi chuc Giam doc Dai Phat Thanh Quoc Gia),=A0 Bui Quoc Huy (da len toi thu <= br>truong Bo Cong An) va Pham Sy Chien (pho vien truong Vien Kiem Sat Nhan = Dan Toi Cao) chi bi an tu tuong trung.

Truong Tan Sang tuy mat chuc (bi thu) thanh uy lai ra Ha Noi lam Truong = Ban Kinh Te Trung uong, nay van la uy vien Bo Chinh Tri.=A0

(Y kien cu tri: Ong Truong Tan Sang ro rang thieu nang luc, thieu guong = mau,
bi ky luat ma sao van duoc gioi thieu vao Trung uong va Bo chinh t= ri?
Trong vu PMU18, ong Truong Tan Sang tiep tuc boc lo su cham tre xu l= y
ky luat ong Nguyen Viet Tien, giam tac dung ren de, giao duc phong chong th= am nhung).

http://vietbao.vn/Xa-hoi/Hoi-nghi-Trung-uong-7-ky-luat-khien-trach-uy-vien= -Bo-Chinh-tri-Truong-Tan-Sang/10804935/157/ 22/11/2003, 08:15 GMT+7 (Th= eo TTXVN)

Ban Chap hanh Trung uong thi hanh ky luat Ong Truong Tan Sang, uy vien <= br>Bo Chinh tri, Truong ban Kinh te Trung uong bang hinh thuc khien trach v= i
trong thoi ky lam Bi thu Thanh uy TP HCM (khoa VI) chua lam tron trac= h
nhiem trong viec chi dao dieu tra, ngan chan nhung hoat dong toi pham cua <= br>Truong Van Cam cung dong bon va co nhung khuyet diem trong cong tac can = bo.

http://vietbao.vn/An-ninh-Phap-luat/Ket-lua= n-dieu-tra-chuyen-an-Nam-Cam-phan-61-Ly-lich-Tran-Mai-Hanh-Pham-Si-Chien-va= -con-gai-Nam-Cam/10807177/218/ Tran Mai Hanh, Pham Si Chien va con gai = Nam Cam 15/12/2003 14:56 GMT+7

Tran Mai Hanh (nguyen pho chu tich kiem Tong thu ky hoi nha bao VN)
= da cho dang bao noi dung kien nghi huy bo quyet dinh tap trung giao duc cai tao doi voi Nam Cam. Pham Si Chien (nguyen pho vien truong
VKSND T= oi cao) chi dao soan thao va ky kien nghi tren. Ve viec nay,
ong Chien duoc "lot tay" khoang 44 trieu dong, ong Hanh hon 93 tr= ieu.

http://vietbao.vn/An-ninh-Phap-luat/Ket-luan-dieu-tra-= chuyen-an-Nam-Cam-phan-62-Ly-lich-ong-Bui-Quoc-Huy-va-Duong-Minh-Ngoc/10807= 236/218/ 17/12/2003 07:34 GMT+7

TP HCM: Khi lam Giam doc Cong an TP HCM, ong Bui Quoc Huy biet
Nam C= am co nhieu hoat dong bang nhom theo kieu xa hoi den, nhung
khong chi d= ao triet pha co hieu qua. Duong Minh Ngoc (nguyen truong
phong canh sat= hinh su Cong an TP HCM) bi Nam Cam loi keo, mua chuoc,
bien thanh binh phong bao che hanh vi pham toi trong thoi gian dai.

http://www.baomoi.com/Home/= DoiNoi-DoiNgoai/voh.com.vn/Dong-chi-Truong-Tan-Sang-Tiep-tuc-dam-bao-dan-ch= u-ky-cuong-trong-Dang-doi-moi-phuong-thuc-lanh-dao/4376143.epi 6/8/2010=

Ong Truong Tan Sang reu rao: Tiep tuc dam bao dan chu, doi moi phuong th= uc lanh dao

http://vnexpress.net/Vietnam/Xa-hoi/2003/01/3B9C4847/ (tric= h dan noi dung)

TP HCM: Ong Truong Tan Sang co nhieu sai pham nghiem trong van tiep tuc = duoc bo tri vao Bo chinh tri va Ban Bi thu khoa X=A0
=A0
http://vietbao.vn/Chinh-Tri/= Ong-Truong-Tan-Sang-duoc-phan-cong-lam-Thuong-truc-Ban-Bi-thu/65052746/96/<= /a> 09/5/2006, 08:33 GMT+7

TP HCM: Ong Truong Tan Sang duoc phan cong giu chuc Thuong truc Ban Bi t= hu Trung uong Dang.

http://vietnamnet.vn/xahoi/2006/05/569845/ 14:00' 12/05/2006 (GMT+= 7)

TP HCM: Nhieu kho bai Nha nuoc bi 'an tuoi nuot song'

http://bee.net.vn/cha= nnel/2981/201004/Uy-tin-cua-Lien-hiep-hoi-ngay-cang-duoc-nang-cao-1751771/<= /a>

Ong Truong Tan Sang rao giang: can tao moi truong hoat dong dan chu, ton= trong tu do sang tao trong nghien cuu, trao doi hoc thuat

http://vnexpress.net/GL/Xa-hoi/2008/10/3BA07348/ Kien Cuong 7/10= /2008, 21:07 GMT+7

'TP HCM da buong long quan ly moi truong trong 15 nam qua' - Ong= Truong Tan Sang phai chiu trach nhiem

Nuoc song kenh rach den ngom, hoi thoi do cac KCN "vo tu" xa t= hai
truc tiep, o nhiem khong khi dang o muc bao dong vi khong ai "= kiem soat",
nhieu chi tieu moi truong vuot qua tieu chuan...

http://danlambao.wordpress.com/2010/12/04/d= a-n%E1%BA%B5ng-khong-tham-nhung-va-c%E1%BA%A5m-c%E1%BB%ADa-sinh-vien-h%E1%B= B%87-t%E1%BA%A1i-ch%E1%BB%A9c/ 04/12/2010

Ong Truong Tan Sang co bang tai chuc luat

http://worldcup.nld.com.vn/90220p0c= 1002/ai-da-xa-xeo-1500-ha-dat-nong-truong-.htm=A0 Cam Lan 08/01/2004 22= :23

Vu xa xeo 1500 ha dat nong truong o TP HCM - Ong Truong Tan Sang phai ch= iu trach nhiem

*635 ha dat bi xa xeo da duoc lam thu tuc "hop thuc hoa"?

UBND TP da giao 10.159 ha dat cho 6 nong truong (NT) gom NT Le Minh Xuan= , NT
Pham Van Hai, NT Pham Van Coi, Cong ty Bo sua (thuoc Tong Cong ty = Nong nghiep
Sai Gon - NNSG), NT Lang Le (thuoc huyen Binh Chanh) va NT = Tam Tan (thuoc huyen
Cu Chi). The nhung, tu nam 1989 den nay, mot so dat thuoc cac NT tren da bi= lan chiem, su dung sai muc dich.

Thi nhau chiem dat

Tu quy II den quy IV/2003, Doan Kiem tra So Nong nghiep va Phat trien no= ng thon (NN
& PTNT) TP va So Tai nguyen - Moi truong (TN - MT) TP d= a tien hanh ra soat, kiem tra
viec quan ly, su dung dat nong nghiep tai= 6 NT tren. Ket qua bao cao that kho tin: Dien
tich chi con 8.686/10.159 ha dat duoc giao; so dat bi "mat", xam = pham gan 1.500 ha.

Cac thanh vien trong doan kiem tra cung het suc bat ngo khi biet nguyen = nhan chinh lam
mat ca ngan ha dat la NT bi "buoc" phai cat ch= ia dat neu muon yen on trong cong tac canh tac, trong trot.

"Loi dung uy the cua minh, cac lanh dao tien nhiem cua dia phuong (= TP HCM) hoac cua
co quan chu quan (Tong Cong ty NNSG TP) da goi y lanh = dao NT phai tu nguyen chuyen giao
vai mau dat giup dia phuong lo cho o = cho nguoi dan di kinh te moi va nguoi dan so
tai. Doi lai, dia phuong se nham mat lam ngo nhung sai pham cua NT..."= , ba Nguyen Thi Du, Chanh Thanh tra So TN - MT TP, nhan dinh.

Theo Pho Giam doc Thuong truc So NN & PTNT TP Pham Thuyet, tong dien= tich dat
cua 6 NT da chuyen giao cho dia phuong, don vi khac la 635 ha= ; cu the:

- Tu nam 1989 NT Tam Tan da chuyen quyen quan ly 282 ha cho 4 xa huyen C= u Chi,
bien dat trong trot thanh dat tho cu danh de "gian dan"= ;, dong thoi "dua" gan 45 ha lam
bai chon lap rac so 1 nam 20= 02;
=A0
- NT Le Minh Xuan nam 1997 da chuyen giao 40 ha cho huyen Binh Chanh= lap khu cong nghiep.

- NT Pham Van Hai (TP HCM) cung buoc phai giao 32 ha cho huyen Duc Hoa (= Long
An) vao nam 1991; (ong Truong Tan Sang - que o huyen Duc Hoa - tin= h Long An, nguyen la giam doc NT nay,
nguyen Giam doc So Nong Nghiep TP= HCM den nam 1992 thi lam Chu tich UBND TP, phai chiu trach nhiem)=A0

- NT Pham Van Coi chuyen 176,7 ha gom: 126,77 ha cho Cong ty FoSaCo nam = 1991 va
2001 de trong cay Pachira xuat khau, 25 ha cho Xi nghiep Chan n= uoi heo Dong Hiep nam
2001 va gan 25 ha cho Xi nghiep Chan nuoi heo Phu= oc Long nam 2002...

Tat ca deu duoc thuc hien theo chi dao mieng hoac giay tay.

14 nam troi qua, 635 ha dat bi xa xeo tren da duoc "hoan chinh cac = thu tuc phap ly" theo
quy dinh. Con hon 838 ha dat chuyen giao the= o lenh chua hoan chinh thu tuc; trong do
NT Pham Van Coi la 632 ha, Con= g ty Bo sua 108 ha, NT Pham Van Hai 26,8 ha... thi bi doan kiem tra phat hi= en giu lai.

Khong chi co cac ca nhan, don vi Nha nuoc chiem dung, nhung ho dan giap = ranh voi dat
NT cung tranh thu xam canh ca chuc ngan met vuong, nhu gia= dinh cua ba Pham Thi
Hanh va ong Dang Ba Dong o ap 6, xa Pham Van Hai = da chiem dung 15000 m2 dat NT
Pham Van Hai trong bach dan tu nam 1989 den nay.

Loi nong truong, dia phuong hay co quan chu quan?

Pho Giam doc So TN-MT TP Nguyen Thanh Nhan cho rang de hien tuong chiem = dung,
xam canh ca ngan ha dat NT trong mot thoi gian lau nhu vay, So NN= & PTNT TP va
Tong Cong ty NNSG TP phai chiu trach nhiem hoan toan.= (Ong Truong Tan Sang - Uy
vien Bo Chinh Tri, nguyen la Giam doc so Nong Nghiep TP HCM, den nam 1992 t= hi lam
Chu tich UBND TP HCM, phai chiu trach nhiem.)

Ngoai nhung nguyen nhan do: chuyen dan dien tich tho cu cap cho cac ho g= ian dan ve dia
phuong quan ly, chuyen giao cho don vi khac trong qua tr= inh thuc hien quy hoach chung
cua TP..., "So NN & PTNT TP va T= ong Cong ty NNSG=A0 khong the do trach nhiem rang=A0
dat chua xac dinh ranh cam moc cu the nen viec quan ly, su dung dat cua cac= NT con
nhieu kho khan, ton tai va vuong mac" - ong Nhan noi thang= .
Theo ong, So NN & PTNT TP phai xac dinh that cu the ve thoi diem = va hien trang, phoi
hop voi dia phuong tien hanh do lai dien tich ranh dat hien co truoc nam 20= 04 va nhanh
chong goi bao cao trinh len UBND TP xem xet.
Ong Nhan c= ung nhan manh neu khong co su kien quyet kiem tra thi chac chan dien tich <= br> dat NT bi lan chiem,=A0 su dung sai muc dich khong dung lai con so 1500 ha.=

Ngoai ra, cung can phai truy cuu trach nhiem cua nhung ca nhan, don vi t= ung loi dung
chuc quyen buoc NT phai chia cat dat san xuat vi truc loi = ca nhan.

(Y kien cu tri: Ong Truong Tan Sang nguyen la giam doc NT Pham Van Hai, = nguyen Giam doc So Nong Nghiep TP HCM,
den nam 1992 lam Chu tich UBND T= P, phai chiu trach nhiem ve nhung sai pham trong vu viec nay;
tiep theo= la cac ong Nguyen Minh Triet va Le Thanh Hai lan luot lam Bi thu Thanh uy = hoac
chu tich UBND TP cung phai chiu trach nhiem; gan 1500 hecta dat bi chiem du= ng trai phap luat,
truc loi ca nhan... trong rat nhieu nam; viec chia t= ach, sap nhap hay phan chia lai
dat dai giua cac tinh la thuoc tham quy= en cua Quoc Hoi, chu khong phai tham quyen cua cac Nong truong hay=A0
so Nong Nghiep, TP HCM hay tinh Long An.)

-----
Phan 2: Cu tri kien nghi: Bo chinh tri kiem tra, kiem diem, ca= ch chuc cac ong Nguyen Tan Dung, Le Thanh Hai tham nhung, thoi nat

http://vietnamnet.vn/chinhtri/2008/10/807412/ Vinh Giang 05:59, 08/= 10/2008 (GMT+7) ()

Thu tuong: Vu tham nhung o Thu Thiem (TP HCM), Thu tuong co lam ngo, co = bao che khong?=A0

Cu tri mong muon Thanh tra chinh phu nhap cuoc vu Thu Thiem

- Tai buoi tiep xuc cu tri dai bieu Quoc hoi quan 2 (TP.HCM) cua Chu tic= h nuoc Nguyen
Minh Triet chieu 7/10, nhieu cu tri da phan anh buc xuc v= e van de tai dinh cu, den bu giai
toa tai khu do thi moi Thu Thiem.

Khong tin tuong Thanh tra thanh pho

Nhieu cu tri khong dong tinh ve ket luan thanh tra cua Thanh tra TP.HCM = ve du an khu
do thi moi Thu Thiem va de nghi Thanh tra Chinh phu vao cu= oc.

(Anh: Chu tich nuoc Nguyen Minh Triet gap go cu tri quan 2. Anh: TH)

"Chung toi khong hai long ve ket qua thanh tra, de nghi thanh lap t= hanh tra Chinh phu xu
ly nhung ca nhan, to chuc, tuy theo muc do vi pha= m", cu tri Nguyen Mai Linh, phuong
An Loi Dong, len tieng.=A0

Theo cu tri Le Hong Hanh, de Thanh tra TP thuc hien thanh tra dat dai ta= i Thu Thiem
chang khac nao vua da bong vua thoi coi, dan den tinh trang= day trach nhiem xuong cap
duoi.

Mot so cu tri cho rang ket luan thanh tra vua qua khong thoa dang. Khu d= at 160 ha trong
khu do thi moi Thu Thiem duoc Chinh phu phe duyet de ta= i dinh cu cho dan chua duoc
giai thich thoa dang ve muc dich su dung hi= en nay. Ngoai ra, gia boi thuong dat theo cac
quyet dinh 135/2002 va 123/2006 cua UBND TP qua thap so voi gia thi truong.=

Mot so cu tri con to ra ban khoan ve van de truoc khi thanh tra, du luan= phan anh co 28
du an bi phan lo ban nen, sau khi thanh tra, lai len de= n 42 du an.

"Ket luan thanh tra khong giai toa duoc buc xuc cua chung toi, ma n= guoc lai cang lam
buc xuc tang len", cu tri Vu Mai Linh, phuong An= Loi Dong, noi.

Cu tri Dinh Kim Tuan, phuong An Khanh, chia se y kien: "Ket luan th= anh tra lai do loi
cho cac so, nganh va quan, trong khi truoc do quan l= ai giai thich chi thuc hien su chi dao
cua TP. Nhu vay la do trach nhie= m cho nhau".

http://danlua= n.org/node/6595 Dan Den 08/10/2010

Le Thanh Hai, Nguyen Tan Dung va vu cuop 15 ty USD tai khu do thi moi Th= u Thiem quan 2 TPHCM

Thu doan cuop dat va vu Vinasin 2

Khu do thi moi Thu Thiem - Quan 2 - TPHCM la manh dat rong 930ha nam nga= y ben
bo con song Sai Gon, doi dien khu trung tam sam uat sang trong so= 1 thanh pho. Do co vi
tri tuyet dep nhu vay nen Thu Thiem tat yeu da t= ro thanh mieng moi thom hap dan cac
dai gia bat dong san va mot so quan chuc bien chat cua TP Ho Chi Minh va Tr= ung Uong.

Tu 2002, lanh dao thanh pho ma luc do ong Le Thanh Hai la chu tich thanh= pho da voi va
ra lenh thu hoi dat khi chua thuc hien nhung quy dinh ba= t buoc cua phap luat. Su vo trach
nhiem thay rat ro khi du an khu do th= i moi Thu Thiem duoc goi mot cach mia mai la du
an BON KHONG: "khong du an dau tu, khong quy hoach chi tiet, khong phu= ong an boi
thuong, khong nha tai dinh cu". Khong dung lai o do, vo= i da tam 'thu hoi dat voi chi phi
thap nhat', Le Thanh Hai da c= hi dao dan em lay gia dat tu nam 1995 (theo quyet dinh 05
ngay 4/1/1995) de boi thuong cho dan tu nam 2002 den gio bat chap cac quy d= inh cua
Quoc hoi va Chinh phu boi thuong sat gia thi truong.

Su bat hop li o day la chenh lech gia boi thuong va gia thi truong vuot = qua suc tuong
tuong cua moi nguoi, theo quyet dinh 135/QD-UB ngay 21/11= /2002 cua UBND TPHCM,
gia boi thuong dat o la khoang 2 trieu dong mot m= et vuong, dat nong nghiep 200.000
dong mot met vuong, con gia thi truong thi cao vot, dat o trong du an 70 tr= ieu dong, dat
nong nghiep bang 40% khoang 28 trieu dong. Trong luc Quoc= hoi va Chinh phu trinh
trong thong cao voi quoc dan rang tu nam 2003 s= e boi thuong day du nhung thiet hai ma
nha nuoc gay ra khi thu hoi dat cua dan, boi thuong sat gia thi truong, thi= o Sai Gon, Le
Thanh Hai lai bat chap het tat ca quy dinh cua cap tren = de neo gia boi thuong hon chuc
nam qua vo ly lam hai dan den. Chenh lec= h gia boi thuong len den hang chuc tham chi
hang tram lan chac chan phai lam dem den nhung quyen loi khong lo nhung hoa= n toan
phi phap cho Le Thanh Hai va e kip. Tinh so so moi met vuong dat= cac quan lam 'venh'
ra duoc 30 trieu dong thi tong so tien dan= Thu Thiem bi 'nang' mat se la mot con so voi
vo so nhung so 0 dang sau: 270.000 ty dong tuong duong (lon gap 3 lan so ti= en
thiet hai cua vu an Vinasin. Khong con nghi ngo gi nua, vu 'cuop= dat' o Thu Thiem va
vu Vinasin la 2 vu an tham nhung lon nhat tron= g lich su cach mang Viet Nam.

Nam 2008, sau khi lam song phan no cua nguoi dan Thu Thiem ve cac quy di= nh boi
thuong qua vo li 'no tung' tren cac to bao uy tin cua ca= nuoc, thanh pho va quan 2 da tim
cach 'xoa diu' nhan dan va mo= t ban du thao sua doi bo sung chinh sach boi thuong duoc
dua ra trung cau y kien cu tri cho co ve dan chu. Cu tri, trong do co nhieu= cuu chien binh
va dang vien trung kien, da thang thung bac bo du thao = nay vi ly do du thao khong boi
thuong sat gia thi truong theo luat Dat = Dai 2003 va nghi dinh 197 cua Chinh Phu ma ho
tro theo kieu bo thi cho them chut dinh khong dang ke. Cho du nhan dan da b= ac phuong
an sua doi bo sung nhung 'chinh quyen cua dan do dan vi d= an' quan 2 ma dung dau la Bi
thu quan Tat Thanh Phong va Chu tich q= uan Le Trong Sang (deu la nhung de tu than tin
cua Le Thanh Hai) van cu de trinh thanh pho va thanh pho van cu ngang nhien= phe duyet
mot quyet dinh vua trai quy dinh cua tren vua trai y cu tri = (quyet dinh 06 ngay
21/1/2009). Dung nghi dau oc lanh dao ta 'dau p= hu' ma lam to, de dam bao an toan cho
minh, truoc khi lieu minh dat but ky vao mot quyet dinh trai luat cua UBND,= Nguyen
Thanh Tai - Pho CT UBND TPHCM da yeu cau Le Thanh Hai chu tri c= uoc hop cua tap
the Thuong truc thanh uy vao thang 12/2008 de thong qua= chu truong khong thuc hien
theo luat Dat Dai 2003 va cac nghi dinh cua Chinh Phu, chi ho tro them cho = dan Thu
Thiem. The la tap the thanh uy TPHCM da quyet, ma co quyet sai = di chang nua thi cung
chang the nao xu duoc ca tap the thanh uy. Phuong= thuc 'pham toi co to chuc' theo luat
hinh su la tinh tiet tang nang nhung theo luat cua Dang thi chinh la mot ti= nh tiet giam nhe
(tham chi nhe nhu khong), vi vay phuong thuc nay duoc = dem ra van dung thuong xuyen.

Noi tom lai la nhung gi ma lanh dao TPHCM da quyet thi se mai mai khong = thay doi mac
rang luat va nghi dinh co thay doi the nao va bao nhieu la= n di nua. Cu yen tam vay di!

Nho on chinh sach moi cua ong Hai gia dinh toi hon 8 tram met vuong dat = cach duong
Dong Khoi mac nhat Sai Gon hon 200 met se chi mua duoc hon 2= met vuong dat o
duong Dong Khoi. Qua la cuoc song cua toi con tui nhuc= re rung hon kiep no le?

'Ra hang'

Sau khi da thu gom duoc mot dien tich dat kha lon, buoc tiep theo phai t= inh la 'ra hang'
hay noi theo giong cua gioi kinh doanh la '= ;hien thuc hoa loi nhuan'. Lanh dao thanh pho
da chon mat Dang Than= h Tam de goi vang, ma Dang Thanh Tam la ai, la nha tu ban giau
so mot VN, la chu tich hoac giam doc cua cac cong ty kech su nhu Sai Gon In= vest, Kinh
Bac, Tap doan Tan Tao (ba Hai Tam chi ruot cua thu Tuong Ngu= yen Tan Dung lam chu
tich), Dang Thanh tam da xin duoc bon cac du an nh= o vao nhung moi quan he 'te nhi'
voi cac vi lanh dao dat nuoc trong do co nhan vat chinh cua vu Vinasin-Thu = Tuong
Nguyen Tan Dung. Theo tiet lo cua bao chi, trong luc gia dat thi = truong quan 2 lien tuc
sot nong thi lanh dao thanh pho lai tinh cho Con= g vien Phan mem cua Dang Thanh Tam
mot cai gia khong the 'lanh' hon: 10 trieu dong mot met vuong (1.50= 0 ty cho dien tich
15,9ha). Cung theo bao chi, Dang Thanh Tam da dem da= t nay di gop von phap dinh voi
doi tac nuoc ngoai duoc 1.500USD mot met= vuong. Ly ky hon nua la thang 07 nam 2009
(mot nam sau khi mua dat va tien hanh du an), chu dau tu du an Cong vien ph= an mem
van chua dong mot xu tien dat cho nha nuoc. Se con rat nhieu du = an nua duoc giao dat va
tien dat cua dan se tiep tuc un un chay ra khoi= tui dan vo tui cac tu ban than huu va cac
quan chuc tham nhung. Dong tien khong lo kiem duoc tu vu ap phe Thu Thiem s= e dong
vai tro the nao trong vu chay ghe trong cac dai hoi sap mo man t= hoi gian toi?

Co nhan co noi 'Cuop dem la giac, cuop ngay la quan'. Van biet q= uan thi phai 'cuop'
moi la quan nhung cuop voi muc do chong mat= nhu vay thi dan co ma cap dat ma an.

Lo dien o du: Nguyen Tan Dung

Tinh hinh cuop boc dang xuon xe thi nam 2006 ong Nguyen Minh Triet trung= cu chuc
Chu tich nuoc va bat dau sinh hoat to dai bieu Quoc hoi tai qu= an 2. Tu khi sinh hoat tai
day ong Triet khong co duoc mot ngay tan huo= ng cuoc doi Chu tich nuoc ma suot ngay
phai 'lanh du' nhung buc xuc cua cu tri Phuong Thu Thiem vi bi boc = lot mot cach qua
tan bao boi 'ban tay sat' cua chinh quyen. Kho= ng chiu noi su trach moc cua dan, trong
buoi sinh hoat voi cu tri Thu T= hiem thang 11/2007, ong Triet gio nam dam lon tieng
tuyen bo: toi se ve yeu cau Thu tuong dua doan thanh tra Chinh phu lien ngh= anh
vao thanh tra toan dien khu do thi moi Thu Thiem. Hay doi day! (Coi= bo nhu ong ta
=A0moi xem phim hoat hinh cua Nga!).

Biet truoc tinh hinh bat on vi dan kien quyet dau tranh chong tham nhung= , Le Thanh Hai
da cau cuu o du cua minh la Nguyen Tan Dung va mot kich = ban thuong gap da dien ra:
thanh pho xin duoc nghiem khac tu thanh tra = va ong Dung da 'vui ve nhan loi'
(khong cho Thanh tra Chinh phu vo thanh tra thanh pho vi li do Thanh tra...= ban).
Chac la Thanh tra Chinh phu chi chuyen lam nhung vu an 'chuo= t nhat', khong lam 'chuot
cong'. Trong lich su cach mang cu= a dat nuoc, Nguyen Tan Dung cung da co quyet dinh
tuong tu la can tro thanh tra Chinh phu vo thanh tra con cung Vinasin, ket = cuc la Vinasin
da chim ngay khi chuan bi ra khoi keo theo gan 5 ty USD = tien thue cua dan.

Tiep noi hanh dong bao che cho tap doan tham nhung Le Thanh Hai, ca nhan= Thu tuong
Dung da qua mat tap the (khong dung tham quyen) chinh phu ng= ang nhien hop thuc hoa
cho sai pham cua TPHCM bang cong van 977/VPCP-KN= TN ngay 3/10/2008 cho phep
TPHCM thu hoi dat khu do thi moi Thu Thiem ma khong can lam phuong an boi t= huong
nhu nghi dinh cua Chinh phu da qui dinh.

Bat duoc tin hieu tot tu ngai Thu tuong, duoc nhan nhung dong tien hau h= inh ma chinh
quyen goi la 'tien du an', can bo quan 2 thi nhau = dan ap ep dan ket hop voi lua phinh de
dan nhe da ki chap nhan chinh sa= ch boi thuong bat luong. Quoc hoi thi nhu da bit mat,
bit tai truoc vu an lon nhat lich su dat nuoc.

Dan den chung toi muon Quoc hoi phai chung to su dung cam ma moi dai bie= u deu co
trong trai tim minh to chuc thanh tra 2 vu an sieu nghiem tron= g la vu Vinasin va khu do
thi moi Thu Thiem. Con nhieu chi tiet chan do= ng nua, neu Quoc hoi muon biet chan to ke
toc vu tieu cuc nay xin cu hoi dong chi Chu tich Triet la biet het. Chung t= oi mong nhan
duoc thong tin dia chi noi o cua cac lanh dao thanh pho va= quan 2 co dinh liu den vu Thu
Thiem va gia dinh de co dip se vieng tha= m va van dong thuyet phuc cac 'dong chi' tro ve
dung con duong ma dang da chon. Cau troi khan phat phu ho cho ke thu cua nh= an dan la
Le Thanh Hai, Nguyen Tan Dung, Nguyen Trung Tinh,Tat Thanh Ph= ong, Le Trong Sang va
nhung ke bao che, tong pham, dot nhien co liem si= va tu nguyen khong ung cu trong
dai hoi dang thanh pho va trung uong toi day.

http://my.opera.com/ThanhNienQuocNoi/blog/show.dml/189615= 32=A0 11/10/2010, 10:02:10

Ba Hai Tam chi ruot cua Thu Tuong Nguyen Tan Dung lam Chu tich Tap doan = Tan Tao=A0

http://www.kiengiangsouvenirs.com/Doc/KhieuKien/LanDatKG= .htm Thanh Quang, phong vien RFA -=A0 2010-08-02

Thu tuong: Du an lan bien lai lan dat cua dan (du an cua tap doan Tan Ta= o)=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 =

Mot trong nhung rac roi ve dat dai dai dang va gay nhieu chu y trong nuo= c co le
la vu o Rach Gia =96 tai noi goi la "khu lan bien" Ki= en Giang.

(Anh: Mot Khu do thi moi dang xay dung tai Khu lan=A0 bien Rach Gia, Kie= n Giang. Photo courtesy of danlentieng.net)

Thuc chat cua du an lan bien Kien Giang ra sao? Nguoi dan bi anh huong p= han ung nhu
the nao? Thanh Quang tim hieu van de nay, moi quy vi theo d= oi sau day:

Lan nguoc vo dat canh tac

Du an ma chinh phu cho phep chinh quyen Kien Giang lan ra bien tren dien= tich 420
hecta de mo rong dat sinh song cho cu dan dia phuong, nhat la= giup nhung ho ngheo co
dat cu tru, han la dieu tot dep tren ly thuyet.= Nhung du an ay da gay phan ung dang ke
cung nhieu noi uat uc cua cu dan o Phuong An Hoa va Phuong Vinh Bao thuoc T= P Rach
Gia trong 12 nam nay, khi cong trinh "lan bien"=A0 tro= thanh lan nguoc vo dat canh tac va
sinh song lau nam cua nguoi dan.

Cach nay it lau, tap chi Phap Ly cua Hoi Luat Gia Viet Nam phai ket luan= rang voi
"quyet dinh cua chinh phu cho Kien Giang lan bien 420 ha= , viec UBND tinh Kien Giang
thu hoi 45 hecta dat cua dan la do Ban Quan= ly Cong trinh lan bien "che ra" va duoc UB
tinh "OK". Moi day, bao Phap Luat cung ket luan rang "Kien G= iang loi dung lan bien de
lan dat dan".

Chua co quyet dinh cuoi cung cua chinh phu thi tai sao chinh quyen Kien = Giang lai
ra quyet dinh cuong che dat cua dan va cho do la dung duoc?= =A0=A0

Cu dan Kien Giang

Hanh dong cua gioi cam quyen Kien Giang gay phan no nguoi dan dia phuong= , nhu mot
cu dan nhan xet:
"Dang va Nha nuoc chu truong lan bie= n mo rong do thi Rach Gia thi chu truong do bi
tinh Kien Giang va Ban Q= uan ly Du an Lan bien loi dung lan them 45 hecta dat cua dan.
Muc dich cua ho la nham boi thuong gia re, re hon kinh phi bo ra de lan bie= n. Ho dung tu
la "chinh trang do thi" va loi dung viec lan bi= en de lay dat cua dan. Hien nay chung toi
dang thua kien viec chinh quy= en tinh Kien Giang ho tro, bao che cho Ban Quan ly Du an
Lan bien lay dat cua dan nham boi thuong voi gia re mat trong khi khong ra = quy dinh thu
hoi dat. Vu nay 12 nam roi, hien la 2010, ho tinh gia dat = nam 1998 voi gia la 13.200
dong.

Khi chung toi thua len chinh phu thi chinh phu chi dao xuong, yeu cau Ki= en Giang giai
quyet dut diem, giai quyet tinh theo gia vang truot gia, = tien mat gia va tinh lai cho chung
toi. Nhung lay gia moc co so ban dau= tinh tien truot gia va mat gia cung bang nghia voi
dong tien Viet Nam mat gia hien nay la 12 nam. Co nghia la hoi do anh giao = mieng dat
nay va mua duoc 1 luong vang thi ngay hom nay anh cung chi mu= a duoc 1 luong vang
thoi. Con nha dau tu lay dat, ho ban voi gia hien h= anh la tu 2 trieu toi 6 trieu dong/1 m2."

(Anh chup: Tap doan Tan Tao - ITA GROUP dau tu Khu do thi moi tai Khu la= n bien Rach Gia,
Kien Giang. Quan dao nhan tao Hai Au- An Hoa. Photo co= urtesy of danlentieng= .net)
=A0
Mot dan oan khac o dia phuong nay cho biet them:
=A0"Chung t= oi goi don thua len chinh phu, thi doan Thanh tra chinh phu xuong noi viec = nay
la viec cua chinh phu, va chi co chinh phu moi tra loi la chinh quy= en Kien Giang dung
hay dan thua kien la dung. Cho toi gio phut nay, chua co quyet dinh cuoi cu= ng noi rang
Kien Giang la dung. Chua co quyet dinh cuoi cung cua chinh = phu thi tai sao chinh quyen
Kien Giang lai ra quyet dinh cuong che dat = cua dan va cho do la dung duoc? O day quan
toa la chinh phu. Ma chinh phu chua co quyet dinh sau cung nao het. Chung t= oi la cong
dan cua dat nuoc co chinh quyen, co doan the, co dang lanh d= ao, thi chung toi chi
biet thua kien may ong do chu biet thua kien ai ba= y gio. Bao chi cho toi gio phut nay van
dong tinh voi chung toi la chinh quyen Kien Giang lam sai."

Du bi cu dan dia phuong va ca bao chi gan nhu dong loat phan doi, nhung = gioi cam
quyen dia phuong xem chung nhu "cau gio" de tiep tuc= hanh dong bien du an "lan bien"
thanh "lan dat dan"= ;, nhu mot cu dan khac mo ta:
"Dan hoan nghenh nhung bai bao ay. Ho len tieng ung ho cac bai bao va = cho Uy ban tinh
sua sai. Nhung ma tinh va Ban Quan ly Cong trinh Lan bi= en loi dung cu keo dai thoi gian
roi thay em em thi bat dau lam tiep, c= hu khong sua doi."

Thu hoi hay cuop dat?

Phuong tien cua viec cuong che dat dai trong nuoc, ke ca vu "lan bi= en Kien Giang" luon
la vo luc, nhu mot dan oan vua roi mo ta:
T= ham chi co nguoi dan phat bieu la "may ong an cuop dat cua toi chu kho= ng phai thu hoi
dat cua toi. 500 m2 ma toi chi mua lai duoc co 5 m2 thi la an cuop dat cua = toi cho con gi
nua?"

Cu dan Kien Giang

"Chinh quyen dung bien phap cuong che chung toi. Ho rat dong, toi c= uong che co may
chuc ho dan thi lam sao chung toi do duoc. Chung toi th= ua luc luong cong an ve viec
hom roi ho cuong che, loi nguoi ta ra khi = nguoi ta dung tren dat cua minh va chi yeu cau
ngung thi cong thoi. Ma yeu cau nay la hop ly, vi nguoi ta chua nhan tien b= oi thuong,
dang trong vong thua kien thi lam sao chinh quyen cho thi co= ng tren dat nguoi ta duoc.
Chung toi chi chong do bang van ban, bang th= ua kien, bang bao chi. Nhung ho van cu
lam, ho lam bua, lam can - toi cho la lam can. Tham chi co nguoi dan phat b= ieu la "may
ong an cuop dat cua toi chu khong phai thu hoi dat cua= toi. 500 m2 ma toi chi mua lai
duoc co 5 m2 thi la an cuop dat cua toi= cho con gi nua?". Hien nay, khi hop dan lai, thi
ho noi ro rang tien boi thuong 1 m2 khong du mua 1 kg ca linh cho con chau = an."

Hau qua luon la su thua thiet trong su chiu dung cua nguoi dan:
"= ;Nguoi ta cam quyen thi minh khong tra loi duoc. Ho cam quyen thi khi ho ha= nh dong
nhu vay co the la ho biet do, nhung nguoi ta cam quyen thi nguo= i ta cu lam. Minh khong
the nao cuong lai duoc."

(Anh: Mot Khu do thi moi dang xay dung tai mot phan Khu lan bien Rach Gi= a, Kien Giang. Photo courtesy of danlentieng.net)

Su tung hoanh trang tron va tuy tien do cua gioi cam quyen dia phuong=A0= tuong phan voi
loi hua tot dep cua gioi lanh dao Viet Nam danh cho ngu= oi dan phai di doi cho o. Mot cu
dan vua len tieng giai thich them: "45 hecta dat do thi cua 252 ho dan bi cho la trong quy hoach. Roi ho = liet ke trong van
ban la dat nong nghiep loai 4, co nghia la dinh gia d= at do thi cua chung toi nhu gia dat o
ngoai ruong, o dau xa xoi lam. Ma= toi nghi bay gio dat o hang cung ngo hem nao cung
khong co cai gia nay nua. Trong khi do, Rach Gia duoc nha nuoc cong nhan la= dat do thi
loai 3. Ma hien nhien dat cua toi - o ngay TP Rach Gia =96 = cung phai la dat do thi loai 3,
cho lam gi co dat nong nghiep loai 4. <= br> Bay gio chung toi yeu cau ho lay dat cua chung toi thi phai co quyet dinh t= hu hoi dat, va
lay dat de lam gi thi phai ghi ro. Neu dung thi cu lay. = Con tien thi chinh phu da quy dinh,
dat dai phai den bu theo gia thi tr= uong. Ma gia thi truong o day bao nhieu thi anh mua
phai tra cho chung toi nhu vay de chung toi dung so tien do di cho khac mua= duoc mieng
dat cung bang va tham chi tot dep hon dat cu =96 theo y cua= ong Tong Bi thu. Ong ay da
noi rang nguoi bi thu hoi dat phai co noi o= moi bang va tot hon noi o cu. Nhung bay gio
mieng dat cua toi toi 5 ngan m2, roi sau khi nhan tien boi thuong toi di mu= a lai dat moi
chua duoc 500 m2, thi lam sao bang va tot hon dat cu duoc= ? Dieu nay dau co dung voi
chu truong cua dang va nha nuoc hua ho tro = cho nhung nguoi bi thu hoi dat duoc dep
hon, tot hon, giau co hon. Ma chinh quyen Kien Giang nay la ai ? Chinh quye= n nay cung
la mot bo phan cua dang, cua nha nuoc cho ai ? Cau phat bieu= "may ong an cuop dat cua
toi chu khong phai la thu hoi dat cua toi= ", thi toi cho la an cuop. Su that la nhu vay.

Van theo dan oan nay, thi hanh dong cuong che dat dai tiep dien gay su p= han no cho tat
ca cu dan o khu vuc nay:

Cu dan Kien Giang
"Gia dinh toi va mot so ho xung quanh cung bi = lay dat nhu vay, toi noi that, nhieu nguoi
khong biet phai noi cach nao= day. Ho noi luat phap cua Viet Nam sao ky cuc qua. Sao ma
noi mot dang= , lam mot nga. That la ky cuc. Ma luat thi noi ro rang rang lay dat cua dan=
phai ra quyet dinh thu hoi dat. Khong co quyet dinh thu hoi dat ma dem cong= an den
cuong che nguoi ta, loi nguoi ta ra khoi dat cua minh. Toi bi t= uoc doat quyen quan ly
dat cua minh 28 nam nay roi. Mieng dat nay toi b= o tien ra mua 28 nam roi. Chung ay thoi
gian biet bao nhieu thay doi, ma tai sao dat dai cua toi, toi khong duoc la= m giay to, khong
duoc cap so do. Tai sao dat cua toi quy hoach toi 28 n= am ma chua cho tui toi lam giay?
Bat cu nguoi nao o trong khu vuc bi la= y dat nay deu phan no nhu vay."

Thua quy vi, truoc tinh canh cua dan oan nhu vay, cau tra loi cua quan c= huc dia phuong
van thuong la tranh ne, nhu mot vien chuc thi xa Rach Gi= a cho biet:

Vien chuc Rach Gia:"Cai nay toi khong biet, cai nay toi khong ranh&= quot; (cup may).

Trong khi cu dan o cac phuong An Hoa va Vinh Bao, TP Rach Gia phai chiu = dung hanh
dong cuong chiem dat dai cua gioi cam quyen dia phuong, thi d= an oan khap nuoc duoc
biet cung lam canh tuong tu, khien co lan MS Nguy= en Hong Quang o Sai Gon phai thot
len rang tinh trang nay "da len thau troi xanh" roi.

http://danlambao.wordpress.com/2010/12/04/d= a-n%E1%BA%B5ng-khong-tham-nhung-va-c%E1%BA%A5m-c%E1%BB%ADa-sinh-vien-h%E1%B= B%87-t%E1%BA%A1i-ch%E1%BB%A9c/ 04/12/2010

Ong Nguyen Tan Dung co bang tai chuc luat

http://vietbao.vn/Xa-hoi/K= ien-Giang-Xem-xet-vu-kien-Khu-lan-bien-TP-Rach-Gia/70097315/157/ (Theo_= Tien_Phong) Hong Linh 13/9/2007, 09:19 GMT+7

Thu tuong: Vu kien Khu lan bien TP Rach Gia =96 Nhan dan moi mon cho Ket= luan cua Thu Tuong

Doan Thanh tra cua thanh tra Chinh phu da xem xet vu 47 ho dan khieu nai= viec chinh
quyen thu hoi, giai toa dat tai Du an (DA) Khu do thi moi l= an bien TP. Rach Gia, Kien
Giang.

(Anh: Mot goc khu lan bien TP. Rach Gia)

Thuc hien y kien chi dao cua Pho Thu tuong Truong Vinh Trong, Doan Thanh= tra cua
thanh tra Chinh phu do ong Bui Thanh Minh, thanh tra vien Vu 5= lam truong doan da ve
lam viec tai tinh Kien Giang xung quanh vu 47 ho= dan khieu nai viec chinh quyen thu
hoi, giai toa dat tai Du an (DA) Khu do thi moi lan bien TP. Rach Gia, Kien= Giang.

Khi tiep xuc voi doan Thanh tra Chinh phu, dai dien 47 ho dan buc xuc: T= inh Kien Giang
da thuc hien du an lan bien sai voi tinh than chi dao cu= a Chinh phu tai cac QD 1178 va
394.

Theo do, cac QD nay chi noi DA lan ra bien 420 ha chu khong noi lay dat = cua dan va chi
lay 500m tu de quoc phong ra phia bien Tay nhung tinh la= i lay ca dat cua dan phia trong de quoc phong.

Chinh quyen con co cac sai pham nghiem trong khac nhu: Khong co quyet di= nh thu hoi
dat cua dan nhung tuy tien den nha dan cam moc "hu"= ; se cuong che, giai toa; Gia den bu
chi 5.000d/m2, nhung phan lo ban l= ai cho nguoi khac tu 500 ngan =96 1 trieu dong/m2 la khong thoa dang.

Ngoai ra, qua trinh thuc hien du an (da 10 nam) nhung tinh khong co phuo= ng an bao ve
hoa mau cho dan, gay ngap ung, hoa mau chet, doi song nguo= i dan vung du an lao dao, ai chiu trach nhiem?

Cung theo nguoi dan, sai pham lon nhat la viec chua thu hoi, boi thuong = dat cua dan
xong nhung chinh quyen va nganh chuc nang da phan lo ban ne= n. Ngay ca nhung nguoi
duoc cap so do cung khieu nai, vi nhieu nam qua = dat cua ho van nam tren giay, no ngan
hang mua dat van phai tra, muon xay cai nha de o cung khong duoc. Hien co 2= 94 lo dat
voi chung do cai so do (chu yeu cua can bo, cong chuc) chong = len dat cua cac ho dan
dang khieu nai noi tren.

Pho Chu tich UBND tinh Kien Giang ong Van Ha Phong cho rang: Tinh da nhi= eu lan
kiem tra va nhan thay khong co sai sot nao trong qua trinh thuc = hien DA Khu do thi moi
lan bien TP.Rach Gia theo cac QD cua Thu tuong. = Tuy nhien ong Phong cung thua nhan
co sai trong cach lam, truyen dat, trien khai, vi nhu khong giao QD thu hoi= dat den tung
ho dan.

Con ong Bui Thanh Minh =96 Thanh tra Chinh phu lai cho rang: QD 1178 cua= Chinh phu
co co nhieu diem chua duoc ro rang, de nhan den hieu nham.

De co can cu trinh Chinh phu, doan Thanh tra se cung voi nganh chuc nang= va nguoi dan
do dac lai thuc te dat trong vung du an de xem xet, ket l= uan. Va chi co Chinh phu moi ket
luan duoc UBND tinh Kien Giang lam dun= g hay sai?

(DA lan bien duoc nguyen Pho Thu tuong Ngo Xuan Loc ky phe duyet tai QD = 1178, ngay
30/12/1997, dien tich 420 ha. Den 2015 bo tri khoang 5 van d= an. Khu vuc nay dang qui
hoach Khu hanh chinh tap trung 16 tang, Tru so= UBND tinh 20 ha, benh vien, truong
hoc, sieu thi, nha hang, khach san cao tang...)

http://tintuc.xalo.v= n/00-2043814397/Co_dan_chu_khach_quan_moi_chon_duoc_nguoi_co_tam_co_tai.htm= l (theo laodong, 3 nam truoc)

Ong Nguyen Tan Dung reu rao: "Co dan chu, khach quan moi chon duoc = nguoi co tam, co tai"

"phai that su cong tam, khach quan va dac biet la phai=A0 that su d= an chu; phai tao moi dieu
kien thuan loi va cong khai minh bach de moi = can bo dang vien, moi nguoi cong dan thuc
su duoc dan chu lua chon. Thu= c hien tot dieu nay chac chan chung ta se chon duoc nguoi
co tam, co tai phuc vu dat nuoc. Chinh phu khoa toi, toi tin chac la phai l= am nhu vay."

"De thu hut, de dua duoc nguoi co tam, co tai vao co quan cua Dang,= bo may nha nuoc
de nang cao tri tue va nang luc lanh dao cua Dang va q= uan ly cua Nha nuoc, co rat nhieu
viec phai lam, nhung theo toi giai ph= ap quan trong nhat, chu yeu nhat van phai la thuc su
dan chu, phai duoc lua chon mot cach cong khai va dan chu nhat. Quan chung = nhan dan
se rat sang suot lua chon nguoi lanh dao cua minh va se lua ch= on dung nguoi co tam, co
tai neu nhu chung ta thuc su dan chu, khong da= n chu hinh thuc."

http://ttngbt.wordp= ress.com/2010/07/17/s%E1%BB%91ng-chung-v%E1%BB%9Bi-thong-tin-da-chi%E1%BB%8= 1u/ P.L.T. 7-2010

Thu tuong: Viec dieu dong, bo nhiem ong Truong Chi Trung vao chuc vu Thu= truong Tai Chinh la vi pham luat cong chuc

- Ong Truong Chi Trung moi bi ky luat ve Dang tren cuong vi uy vien ban = can su dang; trong khi do ong lai vi pham ky luat tren cuong vi chinh quyen= (la thu truong bo Tai chinh). Ve nguyen tac khi mot can bo, cong chuc da b= i ky luat ve dang thi phai bi ky luat chi it tuong duong ve mat chinh quyen= ! Khong ro Bo truong Tai chinh da ban hanh quyet dinh ky luat nay chua? Neu= chua, co vi pham luat cong chuc khong? Vi dieu le dang qui dinh: dang khon= g lam thay nha nuoc!

- Theo tin cua Bao Dien tu Chinh phu ngay 3/7/2010, Thu tuong Nguyen Tan= Dung vua
ky cac quyet dinh bo nhiem, bo nhiem lai co thoi han 5 Thu tr= uong cac Bo: Giao duc va
Dao tao, Tai chinh, Noi vu, Tu phap va Y te. Ong Truong Chi Trung, Pho Bi thu Tinh uy, Chu tich UBND tinh Bac Kan, duoc = bo
nhiem giu chuc Thu truong Bo Tai chinh.
Viec bo nhiem nay, mot da= ng "an com truoc keng " da vi pham Muc 2, Dieu 82 cua Luat
Cong chuc va Muc 2, Muc 3 cua Dieu 27 - Cac quy dinh lien quan den can bo, = cong chuc
bi ky luat cua=A0 Nghi dinh 35/2005/ND-CP ve viec xu ly can b= o cong chuc.

Muc 2 cua Dieu 27 quy dinh: "Can bo cong chuc bi ky luat bang mot t= rong cac hinh thuc
tu khien trach den cach chuc thi khong duoc nang nga= ch hoac bo nhiem vao cac chuc vu
cao hon trong thoi han it nhat la mot = nam, ke tu khi co quyet dinh ky luat".

Muc 3 cua Dieu 27 quy dinh: "Can bo, cong chuc bi xu ly ky luat ban= g mot trong cac
hinh thuc khien trach, canh cao, ha bac luong, ha ngach= thi tuy theo tinh chat, muc do vi
pham co the duoc bo tri cong tac cu = hoac chuyen cong tac khac..."

Muc 2 cua Dieu 82 cua Luat Cong chuc 2008 ban hanh cac quy dinh khac lie= n quan den
can bo, cong chuc bi ky luat: "Can bo, cong chuc bi ky = luat tu khien trach den cach chuc
thi khong thuc hien viec nang ngach, = quy hoach, dao tao, bo nhiem trong thoi han 12
thang, ke tu ngay quyet dinh ky luat co hieu luc..."

Theo tin cua Vietnamnet dua ngay 1/9/2009: "Sang nay (1/9/2009), la= nh dao Uy ban
Kiem tra Trung uong lam viec voi Ban Thuong vu Tinh uy Ba= c Kan de cong bo quyet
dinh khien trach Pho Bi thu Tinh uy, Chu tich UB= ND tinh Truong Chi Trung.
Theo Quyet dinh so 1634 =96 QD/UBKTTW ngay 7/8/2009, tu thang 4/2002 den th= ang
3/2008, tren cuong vi Uy vien Ban can su Dang, Thu truong Bo Tai ch= inh, ong Truong
Chi Trung da co khuyet diem, vi pham trong viec chi dao= ap ma hang hoa doi voi mat
hang dau thu truyen hinh ky thuat so; cho hoan thue nhap khau doi voi cac d= oanh nghiep
nhap khau hang hoa de kinh doanh, sau do xuat vao khu che x= uat va xu ly ket qua thanh
tra doi voi Cong ty co phan Tan Tao.

Ong Trung cung ky ban hanh Cong van so 8842/BTC-TCT huong dan dang ky la= i thoi
gian bat dau huong uu dai mien, giam the thu nhap doanh nghiep; = thieu chi dao, kiem tra
viec Tong cuc Thue xoa no cho mot so doanh nghi= ep va dong y trong viec xoa no cho
Nha may thuoc la Cuu Long; cham huong dan thuc hien chinh sach uu dai theo = Luat
Thue thu nhap doanh nghiep sua doi co hieu luc tu 1/1/2004, dan de= n mot so doanh
nghiep loi dung lam trai, vi pham phap luat bi khoi to v= u an, khoi to bi can, trong do co
can bo cua Bo Tai chinh.
Nhung khuyet diem, vi pham neu tren lam that th= u ngan sach Nha nuoc voi so tien lon,
anh huong den uy tin cua Bo Tai c= hinh..."

Nhu vay, thoi hieu thu ly ky luat cua ong Truong Chi Trung tu 1/9/2009 d= en nay chua toi
1 nam nhung da duoc bo nhiem cuong vi Thu truong Bo Tai= chinh la vi pham Nghi dinh
35/2005/ND-CP va Luat Cong chuc nam 2008! B= oi vi: Khi duoc bo nhiem chuc vu Chu
tich tinh Bac Kan ong Truong Chi Trung duoc huong phu cap chuc vu la 1,25; = nhu vay
khi ong Truong Chi Trung duoc bo nhiem Thu truong Bo Tai chinh,= he so phu cap trach
nhiem duoc nang len 1,3...; (QD 1002/QD-TTg dieu d= ong, bo nhiem ong Truong Chi Trung - chu tich UBND tinh Bac Kan, giu chuc T= hu truong bo Tai chinh do
ong Nguyen Tan Dung ky ngay 30/06/2010, hieu luc ke tu ngay ky).=A0

Thu 2, viec bo nhiem=A0 ong Truong Chi Trung vao chuc vu Thu truong Bo t= ai chinh noi
ma ong Truong Chi Trung=A0 da vi pham va bi ky luat; xet t= heo tinh chat vi pham la nghiem
trong: "lam that thu ngan sach Nha= nuoc voi so tien lon, anh huong den uy tin cua Bo Tai
chinh" - ly ra ong Truong Chi Trung phai duoc dieu chuyen sang cong ta= c khac moi dung
voi cac quy dinh cua Nghi dinh 35 va Luat Cong chuc.

http://boxitvn= .wordpress.com/2010/11/03/ton-van-pht-bi%e1%bb%83u-c%e1%bb%a7a-hai-d%e1%ba%= a1i-bi%e1%bb%83u-l-van-cung-thanh-ho-v-ph%e1%ba%a1m-th%e1%bb%8b-loan-tp-h-n= %e1%bb%99i-t/ Dang boi bvnpost on 03/11/2010 ()

Toan van phat bieu cua dai bieu Pham Thi Loan (Ha Noi) tai Quoc hoi sang= ngay 1/11/2010

Kinh thua Quoc hoi,

Ve tinh hinh kinh te =96 xa hoi nam 2010 va nhiem vu kinh te =96 xa hoi = nam 2011 toi co ban
tan thanh voi Bao cao cua Chinh phu. Toi xin dong g= op mot so y kien sau:

Mot, tinh hinh kinh te vi mo. Theo Bao cao cua Chinh phu thi tang truong= GDP nam
2010 khoang 6,7% cao hon du kien cua Quoc hoi dua ra. Tuy nhie= n cu tri con nghi ngo
ve cac so lieu bao cao tang truong nay, vi neu th= eo doi cac bao cao Dai hoi Dang cua cac
tinh thi con so cac tinh bao cao tang truong cua cac tinh tu 12 =96 15%. Cu= tri lo lang ve
tinh trang chay dua tang truong ve so ma thieu quan tam= tang truong ve chat va tinh ben vung cua su phat trien.

Thuc te cho thay viec nhap sieu nam 2009 la 12,92 ty, du kien nam 2010 t= ham hut mau
dich khoang 13 ty dola, gia vang tang trong nam khoang 20 d= en 25%, ty gia hoi doai
chenh lech ty gia dang la noi buc xuc cua doanh= nghiep. Lai suat ngan hang dung vao
hang cao nhat tren the gioi, lam phat cao, chi so gia tieu dung cao, ICO va= n chua duoc
cai thien, nhap sieu tu Trung Quoc rat cao, chiem 90% nhap = sieu cua ca nuoc, nhung
Chinh phu van chua co bien phap de can doi, tro= ng khi do van dang mo rong cua cho
hang hoa va nhung du an EPC ma trong nuoc co du kha nang lam danh cho cac d= oanh
nghiep cua Trung Quoc thuc hien. Viec han che quotar nhap khau van= g va de gia vang
tang cao, de cho thi truong tu do than nhien thao tung= nhap lau vang qua bien gioi
gay tac dong xau den ty gia ngoai te. Su khan hiem ngoai te anh huong den c= a thi truong bat
dong san, thi truong chung khoan. Nhung trong ke hoach= nam 2011 va ke ca dinh huong
chien luoc nhung nam tiep theo chung toi = chua thay dua ra duoc bien phap thuc su huu
hieu nao. Vay Chinh phu se lam gi cho xa hoi va kinh te Viet Nam can bang v= a phat trien
ben vung?

Van de thu hai la van de quan ly Nha nuoc va trach nhiem cuoi cung cua a= i trong viec
quan ly kinh te Nha nuoc. Vua qua theo Bao cao cua Chinh p= hu va thong bao cua Uy ban
Kiem tra Trung uong Dang ai cung thay duoc s= u that ve Vinashin, do la san pham cua
viec thi diem tap doan kinh te Nha nuoc. Van de toi muon neu ra o day la ai= se la nguoi
chiu trach nhiem cuoi cung trong viec de Vinashin roi vao = tinh trang nhu vay. Trach
nhiem cua Thu tuong, cua Chinh phu va cac Bo,= nganh, ca nhan lien quan nhu the nao?

Theo toi khong the noi mot cach don gian la do cac can bo lanh dao cua T= ap doan
Vinashin, mot minh Vinashin khong the lam sai luat duoc. Chung = toi tu hoi ai da cho
phep Vinashin phat hanh trai phieu voi luong tien = lon nhu vay? Ai da cho phep Vinashin
vay vuot han muc quy dinh cua mot khach hang theo quy dinh cua luat la 15% = von dieu
le cua ngan hang. Ai da de Vinashin dau tu tran lan nhu vay? V= a dac biet la tai sao da co
11 doan vao kiem tra, giam sat nhung van kh= ong phat hien ra sai pham? Va tai sao Quoc
hoi da co quyet dinh dua Vinashin vao danh sach giam sat tu nam 2009 nhung = Chinh phu
van de nghi de hoan lai, cho Thanh tra Chinh phu lam viec tru= oc va cho den bay gio
Kiem toan Nha nuoc cua Quoc hoi van chua vao kiem= toan duoc. Vay tai sao Thanh tra
Chinh phu van khong phat hien ra dieu gi. Vay tat ca nhung viec do la xuat = phat tu muc
dich gi? Trach nhiem thuoc ve ai?

Trong Diem c, Khoan 1, Dieu 168, Luat doanh nghiep qui dinh tach viec ch= uc nang thuc
hien cac quyen chu so huu voi chuc nang quan ly hanh chinh= Nha nuoc. Nhung trong
thuc te Bo truong Bo Tai chinh lam Chu tich Hoi = dong quan tri Cong ty SCIC. Thu
truong Bo Cong thuong lam Chu tich tap doan TKV va Thu tuong thi dang truc = tiep quan
ly 19 tap doan Tong cong ty Nha nuoc 90 =96 91.

Theo toi duoc biet voi viec Thu tuong dang truc tiep quan ly 19 tap doan= Tong cong ty
Nha nuoc nhu vay, cac tap doan Tong cong ty Nha nuoc nay = lam an thua lo thi trach
nhiem cua Thu tuong nhu the nao? Tai sao Thu t= uong van tram cong nghin viec dieu
hanh chung dat nuoc ma lai con truc tiep quan ly, dieu hanh cac tap doan To= ng cong ty
nay. Tai sao khong ban hanh co che dieu hanh chung de ho hoa= t dong theo phap luat. Dac
biet tai Khoan 3, Dieu 168, Luat doanh nghie= p qui dinh: dinh ky hang nam Chinh phu
trinh Quoc hoi bao cao tong hop ve thuc trang kinh doanh von chu so huu Nha= nuoc.

Thuc trang bao toan va phat trien gia tri von dau tu va tai san so huu N= ha nuoc tai doanh
nghiep, nhung nhieu nam nay Quoc hoi chua nhin thay c= o ban bao cao nao trinh Quoc Hoi
tu phia Chinh phu theo nhu qui dinh ne= u tren. Vay viec khong tuan thu phap luat de
gay hau qua nghiem trong nhu vu Vinashin thi trach nhiem cuoi cung se thuoc= ve ai?

Toi dong tinh voi cac y kien truoc toi ve viec phai qui trach nhiem den = cung va dac biet
Quoc hoi, Dang can phai lam ro trach nhiem cua nhung n= guoi quan ly Nha nuoc. Theo
toi nghi nhung nguoi lam sai cung can phai = co mot loi xin loi voi nhan dan va co le la
cung nen nghi den van hoa tu chuc de nhan dan con co long tin voi lanh dao = Nha nuoc va
voi Dang.

Van de thu ba la van de chien luoc ve nang luong cua Chinh phu nhu the n= ao. Vua qua
khap noi nhan dan keu thieu dien, cat dien tuy tien khong d= ung Luat Dien luc, EVN keu
thieu von, thuy dien thieu nguon nuoc de pha= t dien, EVN keu lo von trong nam hon
6.000 ty Viet Nam dong, gia mua dien cao hon gia ban, cac nha dau tu dien n= goai EVN
keu kho ky hop dong ban dien cho EVN, co hop dong ban roi thi = co duoc phep len luoi
hay khong, lai phai xin =96 cho. Trong khi do cac= nha may nhiet dien lon do Trung Quoc
lam EPC chay khong on dinh, ton nhieu than, cong nghe su dung than khong ph= u hop voi
loai than trong nuoc san xuat duoc.

Ve thuy dien thi cac nha thau EPC tu Trung Quoc chiem den 90% cac du an = EPC ve dien
va ta dang phai phu thuoc ho ve van de hau mai, phu tung, p= hu kien trong van hanh. Mat
khac Trung Quoc dang kiem soat nguon nuoc t= huong nguon, luc kho ho co the giu nuoc,
luc lu lut ho co the xa nuoc gay nguy co cho ta. Gan day ho dang chuan bi x= ay nha may
dien hat nhan gan bien gioi cua ta voi muc tieu se ban dien = cho ta va thuc te hien nay ta
dang phai mua dien cua ho voi gia cao hon= gia mua dien trong nuoc. Vay ro rang dang co
nguy co ta se bi phu thuoc vao nguon dien cua Trung Quoc va neu vay thi an = ninh nang
luong co nguy co bi he luy vi su phu thuoc nay.

Toi xin co y kien ve 3 van de neu tren, xin cam on Quoc hoi.

http://www.danchimviet.info/archives/20453 Tac gia: Au Duong The 12:00= am 30/10/10

TT Nguyen Tan Dung phai nhan trach nhiem va tu chuc

Cuoi thang 7 vua qua Bo chinh tri da dua ra "Ket luan cua Bo chinh = tri" ve Tap doan
Cong nghiep Tau thuy VN (Vinashin), mot tap doan = kinh te nha nuoc. Theo do Vinashin
da lam an thua lo va dang gay ra mot= so no khong lo tu truoc toi nay la 86.000 ti dong
(4,5 ti USD). Day la con so do Bo chinh tri xac nhan.

Trong nhung ngay vua qua Chu nhiem Uy ban Quoc phong va an ninh cua Quoc= hoi Le
Quang Binh da tiet lo, theo cac so lieu ong duoc biet thi so no= cua Vinashin khong phai
chi la 86.000 ti dong ma co the len toi 120.00= 0 ti dong (6,3 ti USD), tuc la gap gan 1,5
lan so voi con so cua Bo chinh tri da dua ra.

So no khong lo nay cac uy vien Bo chinh tri khong phai tra, Thu tuong cu= ng khong va
cac Bo truong cung khong. Nhung nhan dan VN phai cong lung = tra so no khong lo nay
qua tien dong thue! Neu so no cua=A0 tap doan nh= a nuoc Vinashin la 120.000 ti dong thi
tinh do dong moi nguoi dan VN, tu so sinh toi cao tuoi, phai tra 1,5 trieu = dong de bu cho
su lam an thua lo cua Vinashin. Doi voi dai da so khoang= 60 trieu nong dan VN ngheo
kho thi day la ganh nang rat lon!

Viec phai to chuc lai Vinashin cho thay tap doan nay tren thuc te da pha= san. TS Nguyen
Duc Kien, uy vien Uy ban Kinh te Quoc hoi xac nhan:

"Chung ta tien hanh tai co cau lai Vinashin thi ve mat khoa hoc coi= nhu chung ta da chap
nhan cho Vinashin pha san, chi co van de la minh = tuyen bo hay khong tuyen bo pha san
ma thoi". Ong Kien goi day la = "pha san theo kieu Viet Nam".

Co le "pha san theo kieu VN" cho nen toi nay trong vu Vinashin= moi chi co nguoi dung
dau Vinashin la Pham Thanh Binh va mot so nguoi = duoi quyen bi cach chuc va bat
giam.=A0 Vi the du luan rong rai trong x= a hoi rat buc xuc, vi lam sao chi mot minh Pham
Thanh Binh ma noi trong hon 4 nam da gay ra mot mon no that khung khiep cho= ngan
sach quoc gia nhu vay? Lam the nao ma ca 11 lan thanh tra, kiem t= ra cua nhieu co quan
nhung van khong tim thay nhung sai pham va kinh do= anh thua lo khong lo cua Vinashin?
Da the, tai sao trong ky hop thu 8 hien nay cua Quoc hoi van de buc xuc nhu= vay van
khong duoc dua ra thao luan chuyen de?

Cho toi nay nhung nguoi chiu trach nhiem thuc su van con lan tranh, van = chom tre rung dui, ho to, het lon. Su nghiem minh ky cuong cua xa hoi la nh= u the sao? Ai chiu trach nhiem chinh tri? Ai co trach nhiem tinh than?

Bao cao Chinh phu da noi gi ve vu pha san cua Vinashin?

Trong Bao cao dai 18 trang=A0 cua Chinh phu goi Quoc hoi ngay 19.10.10 (= mot ngay truoc
khi QH hop) do Van phong Chinh phu thuc hien theo lenh c= ua Thu tuong Nguyen Tan
Dung da danh khoang 1/3 noi ve su hinh thanh va= cac hoat dong cua Vinashin. Phan noi
ve nguyen nhan cac do vo hien nay cua Vinashin Nguyen Tan Dung do cho nguye= n nhan
khach quan do cuoc khung hoang kinh te tai chinh the gioi tu 200= 8 va do toi cho nguoi
dung dau tap doan nay la Pham Thanh Binh. Nghia l= a trong Bao cao goi Quoc hoi ngay
19.10 Nguyen Tan Dung chi lap lai nhung gi ma "Thong bao cua Van phong= Chinh phu"
da cong bo ngay 4.8 ma thoi.

Trong phan do toi cho Pham Thanh Binh, Bao cao cua Chinh phu da buoc toi= : "Nguoi
nay nhung nam gan day tro nen doc doan, gia truong" = va "bao cao khong trung thuc"
Ban Bao cao Chinh phu con noi ra= ng:
"Nhieu nam lien Vinashin bao cao khong trung thuc ve su dung von, ve d= au tu va tinh
hinh hoat dong san xuat kinh doanh. Nam 2009 lo 1.600 ty = dong nhung lai bao cao lai
750 ty dong, quy 1 nam 2010 thua lo van bao = cao lai gan 100 ty dong."
Khong nhung the, trong Bao cao nay Nguyen Tan Dung lai con do thua cho cac = bo phai
chiu trach nhiem: "Cac bo chuc nang duoc giao trach nhiem = da khong phat hien duoc
viec tap doan bao cao khong trung thuc". <= /p>

Neu so sanh so no cua Vinashin voi so thu cua ngan sach quoc gia nam 200= 9 thi gan bang
1/6.=A0 Day la con so cuc ki lon! Chi noi trong hon 4 na= m 2006-2010 Vinashin da lam an
thua lo dua den so no khung khiep nhu va= y. Chinh trong thoi gian nay Nguyen Tan Dung
lam Thu tuong (TT). Ong Dung da tung tang boc Vinashin la mot "qua dam= thep" trong
he thong tap doan kinh te nha nuoc. Co le chua co mot= cong ty nao tren the gioi lai
gay ra mot so no cao nhu vay trong mot t= hoi gian tuong doi ngan.

Duoi thoi Nguyen Tan Dung lam Thu tuong thi Pham Thanh Binh cung luc giu= bon chuc
vu then chot nhat trong Vinashin la Bi thu Dang uy, Chu tich = Hoi dong Quan tri, Chu tich
Tap doan, Tong giam doc. Nho bao bien cac c= huc vu then chot nay nen Pham Thanh
Binh toan quyen tu do quyet dinh, da dua con trai, em trai va em vo vao nam= giu cac
chuc vu then chot trong Vinashin.=A0 Nghia la loi dung su uu d= ai cua Nguyen Tan Dung
nen Pham Thanh Binh=A0 chi trong hon 4 nam da bi= en Vinashin tu=A0 mot tap doan kinh te
nha nuoc tro thanh nhu cong ty gia dinh. Khong nhung the da lap cac bao cao= sai ve tai
chinh, coi thuong cac cuoc thanh tra, kiem sat cua cac co q= uan.

(Anh: "Cap doi" Nguyen Tan Dung- Pham Thanh Binh. Nguon On the= net)

Ca Ngan hang The gioi va bao Wall Street cung thay ro su dung tung Vinas= hin cua
Nguyen Tan Dung. Moi day trong phan bao cao ve tinh hinh kinh t= e VN Ngan hang The
gioi da nhan dinh:
"Tap doan Vinashin da su = dung cac nguon tien lay tu bao lanh chinh phu de dau tu vao
nhung hoat dong khong dinh dang gi den nhiem vu chinh, da the lai con gia m= ao cac bao
cao tai chinh va nay dang nam ben bo vuc pha san".

Hai tac gia tuong thuat tren to Wall Street ngay 22.9 con di sau hon va = noi ro nhan vat
nao dung dang sau do dau cho Vinashin:
"Thu tuo= ng Dung de nhieu tap doan lon nhat duoi su chi dao truc tiep cua minh thay = vi
de cac bo giam sat cac tap doan nay nhu Viet Nam lam truoc day. Ong Dung hy= vong
nhanh chong bien cac doanh nghiep thanh nhung tap doan quoc te.&q= uot;
Nghia la tac gia bai bao nay biet rat ro tinh thich no va cai gi c= ung muon nhat cua Nguyen
Tan Dung. Cac tac gia bai bao con nhan xet ve con nguoi ma ong Dung da giao= cho dung
dau Vinashin:
"Nhung nguoi biet ong Binh, cuu Chu tic= h Vinashin, noi ong la nguoi de cheo keo duoc
khach hang nuoc ngoai va = cung gioi lo lot o trong nuoc."

Ngay bao chi theo "le phai" trong nuoc cung da cho biet, Pham = Thanh Binh da mo rong
lanh vuc hoat dong cua Vinashin tu dong tau moi t= hanh mua tau cu cua nuoc ngoai, chi
trong vong hai nam 2006-07 ki quyet= dinh cho mua toi 10 tau ngoai quoc cu voi tong so
la tren 3.000 ti dong. Trong so nay co nhung tau cu den noi da phai bo ra h= ang tram ti
dong de tu sua va canh tan tro thanh "khach san 3 sao&= quot; tren bien cho khach Bac-Nam,
nhu tau Hoa sen tri gia 60 trieu Eur= o nhung chi dung duoc vai lan da phai buoc neo o hai
cang Nha trang. Hay tau Bach Dang giang tri gia tren 168 ti dong, sau nhieu= lan tu sua va
nang cap thanh "khach san 4 sao". Nhung sau th= oi gian dai de phoi nang phoi suong,
cuoi cung phai ban thanh ly phan t= han vo tau sat vun de thu duoc 66 ti 190 trieu dong.
Chi rieng hai viec nay ngan sach Nha nuoc, tuc thue cua nhan dan, da mat ha= ng tram ti
dong... So di Pham Thanh Binh da co the chi tien rong rai nh= u the la vi Nguyen Tan
Dung da ra lenh cho bo Tai chinh va Ngan hang Nh= a nuoc uu dai dac biet ve tai chinh
cho Vinashin. Khong nhung the Vinashin da duoc Chinh phu dung bao lanh de v= ay nuoc
ngoai 750 trieu USD. Chi tinh rieng tu 9.2006 den=A0 4.2007, Vi= nashin da phat hanh 6 dot
trai phieu trong nuoc voi tong so tien huy do= ng len den 8.300 ti dong va cac khoan vay
khac tong gia tri len toi 13.672 ti dong... Ngay ca nam 2009 Chinh phu=A0 N= guyen Tan
Dung lai van cho Vinashin phat hanh them 3.000 ti dong trai p= hieu.

Noi tom lai, dung ve phuong dien quan tri tai chinh cong va phat trien k= inh te thi cac
hoat dong cua Vinashin trong bon nam qua ro rang da pha = hoai tai san cua nhan dan,
lung doan tai chinh cong va lam tan nat kinh= te VN! Nhung trong Bao cao Chinh phu goi
Quoc hoi ngay 19.10 Nguyen Tan Dung da do loi tat ca cho Pham Thanh Binh!

Trong khi ay, Nguyen Tan Dung hoan toan im lang ve chinh cac sai lam vo = cung nghiem
trong cua chinh ong trong tu cach lam Thu tuong suot tu 200= 6. Trong phan trach nhiem,
Nguyen Tan Dung chi dua ra nhan dinh rat chu= ng chung la "chinh phu chiu trach nhiem".
Thai do tron tranh trach nhiem cua minh cung duoc chinh Nguyen Tan Dung tru= c tiep
trinh bay trong dien van truoc Quoc hoi ngay 20.10:
"Tin= h trang nghiem trong hien nay cua Vinashin chu yeu la do su yeu kem trong q= uan ly,
thieu tinh than trach nhiem, co y lam trai, bao cao khong trung thuc cua la= nh dao Tap doan."
Tuy nhan "Thuc trang nay co trach nhiem cua = Chinh phu, cua cac Bo lien quan trong
viec quan ly nha nuoc va quan ly = cua chu so huu". Va con len giong "Chinh phu da
nghiem tuc kiem diem, xac dinh nguyen nhan va de ra ke hoach cu the de xu l= y, chan
chinh cac hoat dong cua Tap doan."

Nhung ai trong chinh phu, nguoi dung dau nao phai chiu trach nhiem va xu= ly trach
nhiem nhu the nao thi Nguyen Tan Dung khong noi toi! Nghia la= Nguyen Tan Dung tim
moi cach phu nhan trach nhiem ca nhan, coi day la = trach nhiem tap the. Nghia la tim cach xi xoa, hue ca lang!

Nhieu nguoi dung dau cac bo va co quan da phan phao lai Nguyen Tan Dung.=
=A0
Vu no khong lo lam thiet hai ngan qui quoc gia nhu the nhung va= n khong duoc dua vao
thao luan chuyen de tai ky hop thu 8 cua Quoc hoi = tu ngay 20.10. Tuy nhien trong khi
thao luan ve tinh hinh kinh te-xa hoi nhieu dai bieu da dat thang vu nay vo= i nhieu bo
truong, Tong Thanh tra Chinh phu, Tong Kiem toan Nha nuoc...= Cung trong cac dip nay
mot so nguoi dung dau cac bo va co quan da de c= ho bao chi phong van. Ho da phan bua
la khong co quyen hanh gi doi voi Vinashin, tuc la to nguoc Nguyen Tan Dung= .

Bo truong Giao thong van tai Ho Nghia Dung trong cuoc phong van cua bao = Tien phong
ngay 25.10 da cho biet, tu 2006 khi Vinashin tro thanh Tap d= oan kinh te thi bo Giao
thong van tai khong con la chu quan nua:
"Co quan nha nuoc cham dut tinh trang can thiep vao hoat dong san xuat= , kinh doanh cua
tap doan. Phan ro quyen quan ly nha nuoc va quyen chu = dong san xuat kinh doanh."

Van theo loi ong Ho Nghia Dung, khi ay cac bo lien he nhu Giao thong van= tai, Ke hoach
va dau tu, Bo Cong thuong... chi dong vai tro tham muu m= a thoi:
"Chung toi chi co y kien con viec tiep thu hay khong la quy= en cua tap doan. Ke ca ve quy
hoach phat trien, cong tac can bo, neu khong duoc hoi y kien thi bo cung ch= iu."

Ong Ho Nghia Dung da noi dung, vi trong thuc te tu khi lam Thu tuong vao= giua nam
2006 Nguyen Tan Dung da truc tiep dieu khien cac Tap doan Nha= nuoc, trong do co
Vinashin. Dieu nay da duoc ngay ca cac to chuc quoc = te xac nhan nhu trinh bay o phan
tren.
Thu tuong bo nhiem cac Tong giam doc dieu hanh va Chu tich hoi do= ng quan tri cac tap
doan nay, trong do co Vinashin. Chinh vi the, trai = voi nguyen tac phan quyen giua cac
co quan chinh cua mot tap doan kinh = doanh, Nguyen Tan Dung da giao cho Pham
Thanh Binh cung luc bao thau nam giu 4 chuc vu la Bi thu Dang uy, Chu tich = Hoi dong
Quan tri, Chu tich Tap doan va Tong giam doc. Day la nguyen nh= an chinh da khien cho
Pham Thanh Binh dam lap cac bao cao sai lam, coi = thuong cac co quan thanh tra, kiem
toan va dam dua ca than nhan vao giu cac chuc vu then chot trong Vinashin.<= /p>

Quan diem tren day cua Bo truong Giao thong van tai Ho Nghia Dung cung d= uoc Bo
truong Ke hoach va dau tu va Dau tu Vo Hong Phuc chia se rat ro = rang:
"Nam 2008, khi Chinh phu (o day am chi la Thu tuong, ghi chu = cua nguoi viet) chi dinh
chung toi kiem tra cac tap doan kinh te, vao cac tap doan ho khong tiep vi = ho noi bo
khong con chuc nang nua. Chung toi phai noi day la lam theo c= hi thi dot xuat (ve chong
lam phat) chu khong phai theo luat. Tuy nhien= , kiem tra dot xuat ho chi bao tong dau tu
cac du an, con du an nao cu the thi khong duoc lam, ma cai do la quyen cua = Bo Tai chinh,
cua Bo Giao thong van tai..."
Vi duoc nguoi dung= dau chinh phu do dau nen Pham Thanh Binh da coi thuong ca cac
hoat don= g va ket qua thanh tra tai Vinashin. Chinh dieu nay da duoc Tong thanh tra =
Chinh phu Tran Van Truyen gian tiep xac nhan ngay 21.10 tai hanh lang Quoc = hoi:
"Tu nam 2005 den nay da co 13-14 cuoc thanh, kiem tra, giam sa= t tai don vi nay."=A0 va
"phat hien rat nhieu sai pham va da = kien nghi"
Ong Truyen cho biet them:
"Nhung dang tiec la Vinashin chang nhung = khong nghiem tuc thuc hien ket luan, kien
nghi cua cac co quan thanh, k= iem tra ma con tim cach bao cao khong dung su that, gian
doi de lap lie= m viec lam cua minh."
Nhung dua vao nhan vat nao ma Pham Thanh Binh da dam ca gan lam nhu vay? Go= i y
cho cau tra loi ve viec nay ong Truyen da cho biet:
"Ngay c= a khi co ket luan cua Thu tuong thi cung co ai phuc tra dau? Ma da khong ph= uc
tra thi co chap hanh nghiem hay khong, cung khong ai biet".

Trong khi ay truoc mot thang cua Ky hop thu 8 cua Quoc hoi, Tong kiem to= an Nha nuoc
Vuong Dinh Hue da viet thu tra loi cho mot dai bieu Quoc ho= i noi ly do tai sao da khong
kiem toan so sach cua Vinashin. Tuy khong = neu dich danh mot nhan vat nao trong chinh
phu, nhung ong Hue da to Nguyen Tan Dung, Pho Thu tuong Nguyen Sinh Hung, U= y
ban Thuong vu Quoc hoi va Truong ban thanh tra Chinh phu Tran Van Tru= yen da tim
nhieu manh loi khac nhau ngan can Tong kiem toan Nha nuoc th= i hanh nhiem vu kiem
toan tai Vinashin. Ong dua ra cac dan chung:
"Cu the, nam 2008, Kie= m toan Nha nuoc da len ke hoach kiem toan bao cao tai chinh cua
=A0tap = doan, nhung do Thanh tra Chinh phu da dua Tap doan Vinashin vao ke hoach th= anh
tra nam 2009 =96 nhung roi lai hoan =96 nen theo quy che phoi hop va de tra= nh trung lap,
Kiem toan Nha nuoc da dua ra ngoai ke hoach va lui sang n= am 2010. Tuy nhien, ke
hoach nay lai tiep tuc bi "tri hoan" b= oi khong duoc phe duyet."

Ong Hue con xac nhan mot tin dong troi ma toi nay Nguyen Tan Dung van co= tinh im
lang, do la khong phai chi de Tong thanh tra Chinh phu lay co = de tim cach khong cho
Tong kiem toan Nha nuoc thi hanh nhiem vu tai Vin= ashin ma sau do cung da cam ca
Tong thanh tra Chinh phu khong duoc thanh tra Vinashin voi ly do vien dan t= rong luc
khung hoang kinh te tai chinh the gioi vao thoi diem 2008-09:<= br>"Nhung roi, chinh Thanh tra Chinh phu cung khong duoc Thu tuong cha= p nhan ke hoach
thanh tra Vinashin voi ly do "de doanh nghiep tap trung phat trien san= xuat, chong suy
giam kinh te, Thu tuong de nghi dieu chinh sang ke hoa= ch thanh tra nam 2010?.

Trong khi tim cach ngan can cac co quan thanh tra va kiem toan nhu the, = nhung trong
Bao cao Chinh phu goi Quoc hoi ngay 19.10 Nguyen Tan Dung l= ai tri tra noi doi ca
Quoc hoi lam nhu ong ta rat quan tam va van nam s= at duoc cac hoat dong cua Vinashin:
"Tu 2008 den nay khi tap doan boc lo kho khan, Thu tuong lien tuc yeu = cau theo sat chi
dao va ngan chan sai pham".

Tong kiem toan Nha nuoc Vuong Dinh Hue cung con cho biet, phu hoa voi Ng= uyen Tan
Dung, Uy vien Bo chinh tri kiem Pho thu tuong thuong truc Nguy= en Sinh Hung, thay vi
thuc day tinh doc lap va canh tranh giua Tong kie= m toan Nha nuoc va Tong thanh tra
Chinh phu trong viec giu sach bo may nha nuoc, da vien co "tranh trung= hop" de can
Tong kiem toan Nha nuoc kiem tra so sach Vinashin:"Pho Thu tuong Nguyen Sinh Hung bo sung: "Kiem toan Nha nuoc nen= phoi hop voi
Thanh tra Chinh phu de nang cao hieu qua hoat dong kiem toan va hoat dong T= hanh tra,
tranh trung lap, tao dieu kien cho doanh nghiep hoan thanh to= t ca nhiem vu phuc vu kiem
toan, thanh tra theo quy dinh, cung nhu tap = trung thoi gian chuyen mon va san xuat".

Nguoi ta duoc biet, tu dau thang 8.2010 sau khi Bo chinh tri dua ra &quo= t;Ket luan" ve
Vinashin thi Nguyen Sinh Hung duoc cu lam Truong ba= n Chi dao tai co cau Tap doan
Cong nghiep Tau thuy Viet Nam (Vinashin).=
Van theo loi ong Vuong Dinh Hue thi ca Uy ban Thuong vu Quoc hoi, dung dau = la Uy
vien Bo chinh tri kiem Chu tich Quoc hoi Nguyen Phu Trong, cung d= a ve hua voi
Nguyen Tan Dung, Nguyen Sinh Hung va ra lenh ngan can Tong= kiem toan Nha nuoc
thi hanh cong vu tai Vinashin:
"Ngay ca Uy ban Thuong vu Quoc hoi c= ung cho rang: "Nen xem xet, can nhac chua
dua vao ke hoach kiem to= an nam 2010 cac tap doan, tong cong ty ma Thanh tra Chinh
phu, Thanh tr= a Bo Tai chinh da co quyet dinh thanh tra nam 2009 nhung tam dung thanh tra theo chi dao cua Thu tuong".
Ngoai ra, cung trong thu tren ong = Vuong Dinh Hue da noi toac ra la, ngay ca Tong thanh
tra Chinh phu Tran= Van Truyen cung da lay ly do tranh "su trung lap" de tim cach ng= an
khong cho Tong kiem toan Nha nuoc toi xet so sach chi thu cua Vinashin:
= "Thanh tra Chinh phu thay co su trung lap ve mot so linh vuc va doi tu= ong kiem toan".
Viec nay Tran Van Truyen da bien bach "tranh c= hong cheo" de bao ve cho cac don vi
duoc ho bao che.
"Thu hai, tranh chong cheo. Vi doanh nghiep cu keu= la thanh tra day dac. Nen he cu co
kiem toan thi thanh tra khong lam. = Ma he thanh tra lam thi kiem toan khong lam."

La co quan Tong thanh tra Chinh phu tat nhien phai duoi quyen Thu tuong,= phai lam theo
y muon cua nguoi dung dau chinh phu la Nguyen Tan Dung, = nen khi duoc lenh can cac
co quan thanh tra hay kiem toan nao thi ong T= ruyen da lat leo dua ra nhieu vien co khac nhau!
Nhung loi giai thich tren day cua Tong kiem toan Nha nuoc Vuong Dinh Hue va= mot so
nguoi dung dau cac bo da chung to ro rang: Nguyen Tan Dung, Ngu= yen Sinh Hung da=A0
la hai nhan vat truc tiep tim cach can tro cac hoat= dong cua cac co quan huu quan trong
viec thanh tra, kiem toan so sach va hoat dong cua Vinashin trong nhieu nam= qua. Vi cac
tap doan nha nuoc dat duoi quyen cua chinh phu va trong th= uc te Thu tuong truc tiep
dieu khien. Chang nhung the trong danh nghia = Thu tuong, Nguyen Tan Dung con tim
cach vo hieu hoa nhung ket luan thanh tra cua cac co quan huu quan va co ti= nh bao che
cac viec lam sai trai cua Pham Thanh Binh trong Vinashin khi= en da dua toi tinh trang la
chi noi trong hon 4 nam Vinashin da gay ra = mot mon no rat lon la 120.000 ti dong cho dat
nuoc! Tinh hinh da xay ra o Vinashin trong cac nam qua cung da duoc Ngan ha= ng The
gioi va bao chi quoc te xac nhan, nhu da noi o tren.

Trong nhung ngay qua nhieu dai bieu Quoc hoi va nhieu chuyen vien, nhan = si trong nuoc
da to ra rat bat binh truoc thai do tron tranh trach nhie= m cua Nguyen Tan Dung, Nguyen
Sinh Hung. Vi ngay Uy ban Tu phap Quoc ho= i da xac nhan co bao che trong vu Vinashin:
Viec phat hien vi pham co dau hieu toi pham nhung khong duoc xu ly, ngan ch= an kip
thoi, dien hinh nhu vu Vinashin qua 11 lan thanh tra, kiem toan = nhung sai pham nhu dau
tu dan trai, tran lan tren nhieu linh vuc khong = lien quan den chuc nang cua tap doan, kem
hieu qua, thua lo nang ne; tinh hinh tai chinh dung truoc bo vuc pha san; s= an xuat kinh
doanh dinh tre; tinh hinh noi bo dien bien phuc tap: 1,7 v= an cong nhan bo va chuyen viec,
tren 5.000 cong nhan mat viec lam, no l= uong... ma Chinh phu va cac co quan chuc nang
khong biet, khong ai chiu trach nhiem. Qua do xa hoi va cu tri rat buc xuc = cho rang co su
bao che cho nhung viec lam sai trai, vi pham phap luat c= ua Vinashin lam thiet hai lon den
tien va tai san cua Nha nuoc.,

Xet cong va toi cua mot chinh khach phai can cu tren cac su kien ro rang= : quyen hanh
duoc giao pho toi muc do nao, trach nhiem theo doi cong vi= ec ra lam sao, thanh qua dat
duoc nhu the nao va thai do cua chinh khac= h dung truoc thanh cong cung nhu that bai.
Dua tren cac co so khach quan nay de xet ve trach nhiem cua Nguyen Tan Dung= trong vu=A0 Vinsahin:
-=A0 Theo qui dinh ve to chuc va dieu hanh cua h= ai loai doanh nghiep nha nuoc lon nhat la
Tap doan va Tong cong ty 91 t= hi Thu tuong co quyen bo nhiem cac chuc Tong giam doc
va Chu tich Hoi dong quan tri.
Mac dau trai voi nguyen tac phan quyen, = nhung tu nam 2006 trong tu cach la Thu tuong,
ong Dung da giao cho Pham= Thanh Binh, nguoi dong huong Ca Mau voi minh, ca 4 chuc
vu chu chot tr= ong tap doan Vinashin: Bi thu Dang uy, Chu tich Hoi dong Quan tri, Chu
tich Tap doan va Tong giam doc.

-=A0 Cung trong thoi gian hon 4 nam nay, trong tu cach la Thu tuong, Ngu= yen Tan Dung da
ra lenh cho cac bo Tai chinh, Ngan hang Nha nuoc rot ti= en rat lon cho Vinashin. Ngoai
ra ong Dung con cho phep Vinashin, duoi = du bao lanh cua chinh phu, duoc quyen phat
hanh trai phieu ca Dollar lan tien dong tri gia len hang chuc ngan ti dong = de Pham Thanh
Binh thuc hien viec mo rong rat lon va rat nhanh nhung ho= at dong cua Vinashin ca
nhung lanh vuc khong dinh dap gi toi dong tau v= a sua chua tau.

- Cung trong thoi gian hon 4 nam nay Nguyen Tan Dung trong tu cach la Th= u tuong,
nhung da khong luu y toi cac loi canh bao va cac de nghi cua n= hieu bo lien he voi
Vinashin, ke cac chuyen vien doc lap. Tuy cac co qu= an thanh tra, kiem tra da toi kiem
soat 9 lan va da kham pha ra nhung sai lam nghiem trong cua Vinashin. Ong D= ung da
duoc thong bao, nhung Nguyen Tan Dung van de Pham Thanh Binh tie= p tuc tu do hanh
dong. Khong nhung the, Nguyen Tan Dung con dung uy quy= en va ca manh loi de ngan
can khong cho Tong kiem toan Nha nuoc duoc quyen kiem toan so sach chi thu = cua
Vinashin.

- Tu 2008-09 khi cuoc khung hoang kinh te-tai chinh the gioi bung no thi= kinh te VN
cung roi vao khung hoang tram trong, khien cho so no da qua= lon cua Vinashin khong the
con dau kin duoc nua thi Nguyen Tan Dung da= tim cach, mot mat do thua do nguyen
nhan khach quan tu cuoc khung hoang kinh te-tai chinh the gioi va mat khac = con trut tat
ca toi len Pham Thanh Binh va do loi cho mot so bo va co q= uan chinh phu. Trong cac bao
cao trinh bay tai Bo chinh tri cuoi thang = 7 cung nhu goi Quoc hoi giua thang 10 vua qua
Nguyen Tan Dung van tim cach che dau nhung sai lam do chinh minh gay ra, ch= i bao do
la "chinh phu chiu trach nhiem", tuc la trach nhiem = tap the va phu nhan trach nhiem ca
nhan cua chinh ong Dung.

Cac su kien dan chung tren day da cho thay, trong tu cach la Thu tuong n= hung Nguyen
Tan Dung da di vao nhieu sai lam nghiem trong trong viec gi= ao pho, dieu hanh, kiem
soat, thong tin va muc do y thuc trach nhiem tr= ong vu Vinashin. Vi the, duoi quyen chi
dao cua Nguyen Tan Dung chi trong vong hon 4 nam Vinashin da gay thiet hai = cho ngan
qui quoc gia len toi 120.000 ti dong, bang khoang gan 1/6 tong= thu cua ngan sach nha
nuoc nam 2009 do tien thue cua nhan dan!

Nhung gi da xay ra tai Vinashin trong hon 4 nam qua chung to ro rang la,= Nguyen Tan
Dung da giao cong viec cho nguoi khong dung kha nang, trao = quyen rong rai nhung lai
khong co kiem soat chat che, toi khi xay ra nh= ung thiet hai lon cho ngan sach quoc gia thi
lai khong dam cong khai nhin nhan trach nhiem ca nhan, lai do thua cho nhun= g nguoi
duoi quyen va vien dan cac ly do khach quan. Nhu the ong Dung d= a tu danh mat long tu
trong va tinh than trach nhiem, lam mat uy tin cu= a Chinh phu.

Vi vay xet ve mat trach nhiem chinh tri, trong tu cach dung dau chinh ph= u ong Dung phai
la nguoi chiu trach nhiem chinh tri dau tien ve su pha = san va mon no that khung khiep
cua Vinsahin tu 2006-2010. Xet ve mat tu= cach va kha nang lanh dao, ong Dung da tu
chung to bat tai va thieu tu cach. Do do dung ra Nguyen Tan Dung phai tu ch= uc Thu
tuong ngay. Vi ngay sau khi Nguyen Tan Dung nhan chuc Thu tuong,= ong da co Quyet
dinh ro rang la, bat cu co quan nao trong chinh phu de= xay ra nhung sai trai thi nguoi
dung dau co quan do phai chiu trach nhiem!
Nhung hanh vi nay la vi pham = ki luat va da dan toi gay thiet hai cong qui rat lon. Nhung
cac viec la= m hien nay cua Nguyen Tan Dung da cho thay, ong Dung da khong du can
dam nhin nhan trach nhiem cua nguoi dung dau chinh phu, ma lai do rieng cho= Pham
Thanh Binh, cac bo va co quan khac trong chinh phu. Thai do nay l= ai chung to Nguyen
Tan Dung khong chi co tac phong tron tranh trach nhi= em ma con mat ca tu cach va dao
duc nua. Mot chinh khach ma khong biet chon nguoi, khong co y thuc trach nh= iem va
danh mat ca tu cach dao duc, nhu the la da tu danh mat uy tin va= khong xung dang o vai
tro lanh dao tiep tuc.

Ghi chu: Cac trich dan trong bai lay tu Thanh Nien, Tuan VN, Bao cao chi= nh phu gui
Quoc hoi, RFI, Nhan Dan, VietNamNet, Tien Phong, Lao Dong, T= uoi tre.

(Xin xem them chi tiet o tep tin dinh kem. Xin cam on.)

--0015174c3fd622a1e004a7ed1091-- --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; charset=windows-1252; name="Cu tri kien nghi kiem tra, kiem diem, ky luat cac ong Truong Tan Sang, Nguyen Tan Dung, Le Thanh Hai, Le Hong Anh, Phun" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat cac ong Truong Tan Sang, Nguyen Tan Dung, Le Thanh Hai, Le Hong Anh, " Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vbgah0 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW4gcXV5ZXQgY2hvbmcgdGhhbSBuaHVu Zywga2llbSB0cmEsIGtpZW0gZGllbSwgY2FjaCBjaHVjIGNhYyBvbmcgVHJ1b25nIFRhbiBTYW5n LCBOZ3V5ZW4gVGFuIER1bmcsIExlIFRoYW5oIEhhaSwgTGUgSG9uZyBBbmgsIFBodW5nIFF1YW5n IFRoYW5oLCBOZ3V5ZW4gQmEgVGhhbmgsIEhvYW5nIEtvbmcgVHUsIE5ndXllbiBEdWMgTmhhbmgg dGhhbSBuaHVuZywgdGhvaSBuYXQsIGhhaSBudW9jLCBoYWkgZGFuIA0KDQpQaGFuIDE6IEN1IHRy aSBraWVuIG5naGk6IEJvIGNoaW5oIHRyaSBraWVuIHF1eWV0IGNob25nIHRoYW0gbmh1bmcsIGtp ZW0gdHJhLCBraWVtIGRpZW0sIGNhY2ggY2h1YyBvbmcgVHJ1b25nIFRhbiBTYW5nIHRoYW0gbmh1 bmcsIGhpZXAgZGFtIA0KIA0KaHR0cDovL3d3dy52aWV0YmFvLmNvbS8/cHBpZD00NSZwaWQ9NCZu aWQ9NTU0MjkgMTAvMzEvMjAwMCwgMTI6MDA6MDAgQU0gDQoNCkN1dSBCaSB0aHUgVGhhbmggdXkg U2FpIEdvbiAtIFRydW9uZyBUYW4gU2FuZyAtIGJpIHRvIGhpZXAgMSBudSBHaWFtIGRvYyAgIA0K DQpCaSB0aHUgUXVhbiAzIC0gVGFtIFRoYW5oLCBkYW4gZHVuZyBkYW5nIHBodSBudSBjaG8gVHJ1 b25nIFRhbiBTYW5nIA0KDQpMb2kgZ2lvaSB0aGlldTogQ2FjaCBkYXkgaXQgbGF1IFRob25nIERp ZXAgWGFuaCBjbyBuaGFuIGR1b2MgbW90IHNvIHRhaSBsaWV1IHR1IHRyb25nIA0KbnVvYyBndWkg cmEsIHRyb25nIGRvIGNvIGhhaSB2YW4gYmFuIGR1b2kgZGF5LiBTYXUga2hpIGR1b2MgYmlldCBo YWkgdmFuIGJhbiB0byBjYW8gDQpkaWNoIGRhbmggb25nIFRydW9uZyBUYW4gU2FuZywgbmd1eWVu IEJpIHRodSB0aGFuaCB1eSB0aGFuaCBwaG8gSG8gQ2hpIE1pbmgsIGxvdCByYSANCnR1IGNvIHF1 YW4gbmhhbiBkb24sIGtob25nIHRydSBjYSBWYW4gcGhvbmcgVG9uZyBiaSB0aHUgRGFuZyBDb25n IHNhbiBWaWV0IE5hbSwgZGEgDQpkdW9jIGd1aSBkZW4gdGF5IG5oaWV1IG5ndW9pIHZhIG5odW5n IG5ndW9pIGJpZXQgdnUgdmllYyBkYSB4YWMgbmhhbiBjaHV5ZW4gY28gdGhhdCwgDQpUaG9uZyBE aWVwIFhhbmggcXV5ZXQgZGluaCBkdWEgY2h1bmcgbGVuIGRpZW4gZGFuIGNvbmcga2hhaS4gDQoN CiJEZSBjaG8gbW9pIG5ndW9pIGRldSBiaWV0IHhhIGhvaSBWaWV0IE5hbSBkYSBiaSBiYW5nIGhv YWkgZGVuIG11YyBuYW8sIGtoaSB0cm9uZyBnaW9pIA0KY2FtIHF1eWVuIGhvbSBuYXkgbmh1bmcg a2Ugbmh1IFR1IFNhbmcsIFBoYW0gVGhlIER1eWV0Li4uIHNhdSBraGkgcGhhbSB0b2kgdmFuIG5o b24gbmhvIA0KY2h1eWVuIHR1IGdoZSBsYW5oIGRhbyBuYXkgcXVhIGdoZSBsYW5oIGRhbyBraGFj Iiwgbmh1IG5ndW9pIGd1aSBuaGFuIG5odS4gT25nIGtldCBsdWFuOiANCiJLaGkgbW90IHhhIGhv aSBraG9uZyBjbyBkb2kgdHJvbmcgZGUgY2FuIGJhbmcgcXV5ZW4gbHVjIHRoaSBxdXllbiBsdWMg ZHV5IG5oYXQgc2UgcGhhIA0KdGFuIHhhIGhvaSBkbywgbGFtIGNobyBubyB0cm8gdGhhbmggYmFu IGN1bmcgdmEgdm8gbHVhbi4gUXV5ZW4gbHVjIHBoYWkgZHVvYyBnaWFtIHNhdCANCnRodW9uZyB4 dXllbiB2YSBiaSBjaGFuIGR1bmcgbmdheSBsYXAgdHVjIGtoaSBubyBjbyBiaWV1IGhpZW4gbG9u ZyBoYW5oLiBDYW4gcGhhaSBkYXAgDQp0YW4gbW9pIHRodSBxdXllbiBsdWMgZG9jIHRvbiBkZSBu Z3VvaSBkYW4gdHJ1b2MgaGV0IGNvIGR1b2MgcXV5ZW4gbGFtIG5ndW9pIi4gDQoNCioqKg0KDQpD b25nIEhvYSBYYSBIb2kgQ2h1IE5naGlhIFZpZXQgTmFtDQpEb2MgbGFwIC0gVHUgZG8gLSBIYW5o IHBodWMNCi0tLS0tLS0tLS0tDQoNCkRvbiB0byBjYW8gDQp2L3YgdHUgY2FjaCwgZGFvIGR1YyBj dWEgYmkgdGh1IHRoYW5oIHV5IFRydW9uZyBUYW4gU2FuZw0KDQpLaW5oIGd1aSBkL2MgVG9uZyBi aSB0aHUgTGUgS2hhIFBoaWV1LCANCg0KVG9pIHRlbiBsYSBWbyBUaGkgVGh1IEhvbmcsIG5ndSB0 YWkgNTEvODQgQ2FvIFRoYW5nLCBwaHVvbmcgMywgcXVhbiAzLCB0aGFuaCBwaG8gSG8gQ2hpIE1p bmgsIHhpbiB0byBjYW8gbW90IHN1IHRoYXQgY2F5IGRhbmcgDQpkb2kgdm9pIGNhIG5oYW4gdG9p IG5odSBzYXU6IA0KDQpLaG9hbmcgbmFtIDE5OTMsIG1vdCBob20gb25nIEh1eW5oIFZhbiBUaGFu aCAoVGFtIFRoYW5oLCBsdWMgZG8gbGEgYmkgdGh1IHF1YW4gdXkgcXVhbiAzKSB5ZXUgY2F1IHRv aSBjdW5nIGRpIA0Kdm9pIG9uZyBheSBkZW4ga2hhY2ggc2FuIEhvYSBCaW5oIChzbyA1NywgZHVv bmcgcXVvYyBsbyAxNSBCaWVuIEhvYSAtIERvbmcgTmFpKSBkZSB0aWVwIHZhIGxhbSB2aWVjIHZv aSANCm9uZyBUdSBTYW5nIChUcnVvbmcgVGFuIFNhbmcsIGx1YyBkbyBsYSBjaHUgdGljaCBVeSBi YW4gTmhhbiBkYW4gdGhhbmggcGhvIEhvIENoaSBNaW5oKS4gTHVjIGRhdSB0b2kgZGUgbmdoaSAN CnR1IGRpIHhlIHJpZW5nIGRlIHRpbSBjYWNoIGtob25nIGRlbi4gTmh1bmcgc2F1IGRvLCBraGkg aGFpIG9uZyAoVGFtIFRoYW5oIHZhIFR1IFNhbmcpIGRhIGRlbiBraGFjaCBzYW4sIA0KdGhpIGxp ZW4gdHVjIGdvaSBkaWVuIHRob2FpIGdvaSB0b2kgZGVuLiBWYSBzYXUgZG8gb25nIGF5IGNobyB4 ZSBkZW4gZG9uIHRvaSBkaS4gS2hvbmcgY29uIGNhY2ggbmFvIGRlIHR1IGNob2ksIA0KYnVvYyBs b25nIHRvaSBwaGFpIHRoZW8geGUgZGVuIGtoYWNoIHNhbiB0aGVvIHlldSBjYXUgY3VhIG9uZyBh eS4gS2hpIGRlbiBub2ksIHRvaSBraG9uZyB0aGF5IG9uZyBUYW0gVGhhbmggZGF1IG1hIA0KY2hp IHRoYXkgb25nIFR1IFNhbmcgZGFuZyBuZ29pIGNobyBvIGtoYWNoIHNhbi4gT25nIGNvIHZlIGdp YW4sIHRyYWNoIHRvaSAiY2hhbSBjaGFwIiwgcm9pIGRhbiB0b2kgdmFvIG1vdCBwaG9uZyANCnRy b25nIGtoYWNoIHNhbi4NClNhdSBraGkga2V1IHJ1b3UsIG51b2MgdW9uZyB2YSBjaG90IGN1YSBs YWksIG9uZyBUdSBTYW5nIGhvaSB2YWkgY2F1IHhhIGdpYW8sIHJvaSBiYXQgZGF1IHRyYWNoIHRv aS4gT25nIG5vaTogDQoiU2FvIGVtIGRhaSBxdWEgdmF5LCBhbmggZGUgeSwgdGhlbyBkb2kgdmEg dGh1b25nIGVtIGxhdSByb2ksIGVtIGtob25nIGJpZXQgc2FvPyBUYW0gVGhhbmggY28gbm9pIHRy dW9jIGNobyBlbSBiaWV0IGtob25nPw0KSG9tIG5heSBlbSBjbyB0aW5oIHRyYW5oIG5lIGFuaCBw aGFpIGtob25nPyIgUm9pIG9uZyBheSBvbSBob24gdG9pIHZhIGJ1b2MgdG9pIHBoYWkgImNoaXUi IG9uZyBheS4gDQpMdWMgYmF5IGdpbyB0b2kga2hvbmcgY29uIGNhY2ggY2hvbmcgZG8gbmFvIGto YWMsIGRhbmggcGhhaSAiY2hpdSBkdW5nIiB2YSBraG9jLiBPbmcgVHUgU2FuZyBkbyBkYW5oLCB2 YSBodWEgaGVuIHNlIA0KbG8gbGFuZywgZ2l1cCBkbyB0b2kgdHJvbmcgY29uZyB2aWVjLi4uLCB2 YSBjaG8geGUgZHVhIHRvaSB2ZSAob25nIFR1IFNhbmcgY29uIG8gbGFpIGRvKS4gKFJvIHJhbmcg dG9pIHBoYWkgbmd1IHZvaSANCm9uZyBUdSBTYW5nIHZpIGJpIGJhdCBidW9jIHZhIGtob25nIGNv biBjYWNoIGtoYW5nIGN1IG5hbyBraGFjKS4NCg0KSG9tIHNhdSwgb25nIFR1IFNhbmcgY28gZ29p IGRpZW4gdGhvYWkgdGhhbSBob2kgdG9pIHZhIGhlbiB0dWFuIHNhdSBkaSBjaG9pIG51YS4gVG9p IGtob25nIG5vaSBnaS4gRGVuIHR1YW4gc2F1IG9uZyANCmxhaSBydSBkaSBTdW9pIFRpZW4sIHRv aSBsYXkgY28gYmVuaCAtIHhpbiBsb2kga2hvbmcgZGkuIFNhdSBkbyBjdSBtb3QgaG9hYyBoYWkg dHVhbiBtb3QgbGFuIG9uZyBkZXUgZGllbiB0aG9haSBoZW4gDQpnYXAgdmEgcnUgZGkgY2hvaS4g TGFuIG5hbyB0b2kgY3VuZyBsYXkgbHkgZG8gYmVuaCAtIChkYXUgYnVuZywgbmh1YyBkYXUsIGN1 bS4uLikgZGUgdHUgY2hvaS4gS2hvYW5nIGhvbiBtb3QgdGhhbmcgDQpzYXUgZG8sIG9uZyBUdSBT YW5nIHlldSBjYXUgdG9pIHNhcCB4ZXAgY29uZyB2aWVjIGRlIGRpIFNpbmdhcG9yZSB2b2kgb25n IGF5LiBMaWVuIGx1YyBkbywgb25nIFRhbSBUaGFuaCBrZXUgdG9pIHF1YSANCnZhbiBwaG9uZyBi YW8gdG9pIHBoYWkgc2FwIHhlcCBjb25nIHZpZWMgZGUgZGkgU2luZ2Fwb3JlIHZvaSBvbmcgVHUg U2FuZy4gT25nIFRhbSBUaGFuaCBjb24gbm9pICJBbmggVHUgU2FuZyBxdWFuIHRhbSANCmRlbiBj byBtYSBjbyBraG9uZyBiaWV0IGRpZXUsIHNlIGtob25nIGNvIGxvaSBjaG8gY29uZyB2aWVjIGRh dS4uLiwgdG9pIHRodW9uZyBjbyB0b2kgbW9pIGNoaSB2ZSIuIA0KDQpCaWV0IHJhbmcgbmV1IHR1 IGNob2kgdGhhbmcgdGh1bmcgdGhpIHNlIG1hdCBsb25nIHRodSB0cnVvbmcgcm9pIGtob25nIGJp ZXQgdmllYyBnaSBzZSB4YXkgcmEsIHRvaSBiZW4gZGVtIA0KNS4wMDBVU0QgKG5hbSBuZ2FuIGRv IGxhIE15IC0gdGllbiByaWVuZyBjdWEgY2hvbmcgdG9pIGxhIGdpYW0gZG9jIG1vdCBjb25nIHR5 IHR1IG5oYW4pIGRlbiBuaGEgb25nIFR1IFNhbmcsIA0KZHVhIHRhbiB0YXkgb25nIGF5IHZhIG5h biBuaSBvbmcgYXkgZGkgbW90IG1pbmggdmkgdG9pIHF1YSBiYW4uIChUb2kgY29uIG51YSBkdWEg bnVhIHRoYXQgbm9pOiBhbmggcXVhIGJlbiBkbyANCnRoaWV1IGdpIG5ndW9pIGRlcCBzYW4gc2Fu ZyBjaGl1IGNodW9uZyBhbmgsIGVtIGNvIGxhIGNhaSBkaW5oIGdpIGRhdSkuIE9uZyBheSB0byB2 ZSBraG9uZyB2dWksIG5odW5nIHRvaSANCmxvaSBkdW5nIGx1YyBvbmcgYXkgY28ga2hhY2ggZGUg cmEgdmUuIA0KU2F1IGRvLCBkbyB2aWVjIGR1bmcgY2hhbSB2b2kgb25nIEh1eW5oIFZhbiBUaGFu aCAobmh1IGRhIHRyaW5oIGJheSB0cm9uZyBkb24gdHJ1b2MpLCBraG9uZyB0aGF5IG9uZyBUdSBT YW5nIA0KZGllbiB0aG9haSB0aGFtIGhvaSB2YSBydSByZSB0b2kgbmh1IHRydW9jIG51YS4gVG9p IGJpZXQgY28gbGUgb25nIFRhbSBUaGFuaCBkYSBub2kgeGF1IGdpIHRvaSB2b2kgb25nIFR1IFNh bmcsIA0KdmEgdmkgdG9pIGN1IG5lIHRyYW5oIGhvYWkgbmVuIG9uZyBheSBnaWFuLiBMdWMgZG8s IHRvaSBjYW0gdGhheSBtdW5nIHZpIGtob25nIGJpICJxdWF5IHJvaSIgbnVhLiBUb2kgZGEga2hv bmcgDQpsdW9uZyB0cnVvYyBkdW9jIG5odW5nIHN1IHRydSBkYXAgdmEgaGF1IHF1YSBtYSB0b2kg cGhhaSBjaGl1IGR1bmcgaG9tIG5heSBkbyBraG9uZyAiY2hpdSIgeSB0aHUgdHJ1b25nLiANCihO ZXUgdG9pIHRob2EgbWFuIG1vaSB5ZXUgY2F1IGN1YSBvbmcgVHUgU2FuZyB2YSBvbmcgVGFtIFRo YW5oIHRoaSBjbyBsZSB0b2kgZGEgZHVvYyBnaXVwIGRvIHZhIGR1b2MgImNhdCBuaGFjIiwgDQpj aHUga2hvbmcgcGhhaSBjaGl1IHR1IGRheSwga2hvIHNvIG5odSBnYW4gMyBuYW0gcXVhKS4gDQoN CktpbmggdGh1YSBkb25nIGNoaSB0b25nIGJpIHRodSwgDQoNClRyZW4gZGF5IGxhIHRvYW4gYm8g c3UgdGhhdCBjYXkgZGFuZyB2YSBuaHVjIG5oYSBtYSB0b2kga2hvbmcgZGFtIGhlIG1vaSB0aG8g bG8gY3VuZyBhaS4gU2F1IG1vdCB0aG9pIGdpYW4gZGFpIGRhbiBkbywgDQpzdXkgbmdoaSwgbmF5 IG5oYW4gZGlwIENoaW5oIGRvbiBEYW5nLCBsYSBtb3QgZGFuZyB2aWVuIChkdSBkYSBiaSB0cnUg ZGFwIGtoYWkgdHJ1IERhbmcpLCB0b2kgbWFuaCBkYW4gbm9pIGxlbiB0b2FuIGJvIA0Kc3UgdGhh dCBuaHUgdHJlbiB2b2kgbW9uZyBtdW9uIGR1b2MgZG9uZyBjaGkgdG9uZyBiaSB0aHUgYmlldCBo ZXQgc3UgdGhhdCB2ZSBjYWMgY2FuIGJvLCBkYW5nIHZpZW4gY3VhIG1pbmguIFZhIHZvaSBjdW9u ZyANCnZpIGxhIGxhbmggZGFvIGNhbyBuaGF0IGN1YSBEYW5nLCBkb25nIGNoaSBsdWEgY2hvbiB2 YSBjdSBuaHVuZyBuZ3VvaSB4dW5nIGRhbmcgZGFtIHRyYWNoIG5odW5nIG5oaWVtIHZ1IGNhbyBk ZSBkZW0gbGFpIA0KbG9uZyB0aW4gbm9pIG5oYW4gZGFuIHZhbyBEYW5nLiANCkJlbiBjYW5oIG5v aSBjYXkgZGFuZyB2YSBuaHVjIG5oYSBuaHUgdHJlbiwgaGllbiBuYXkgdG9pIGRhbmcgYmkgb2Fu IHVjIHZpIGJpIGJhdCBnaWFtIHZvIGNvIGhvbiAxMCB0aGFuZywgYmkgcXVpIHRvaSANCiJiYW8g Y2FvIHNhaSB2YSBjbyB5IGxhbSB0cmFpIHRyb25nIHF1YW4gbHkga2luaCB0ZSIuIFRoYXQgcmEs IHRoZW8gc3V5IG5naGkgY3VhIHRvaSwgZG8gbGEgZG8gdG9pIGtob25nIGRhcCB1bmcgY2FjIA0K eWV1IGNhdSByaWVuZyBjdWEgdGh1IHRydW9uZyB0cnVjIHRpZXAgbWEgcGhhaSBtYW5nIHRvaS4g DQoNCktpbmggbW9uZyBkb25nIGNoaSB0b25nIGJpIHRodSBzb20gY28gcXV5ZXQgZGluaCBkdXQg a2hvYXQsIGxhbSBybyBub2kgdnUgbmF5LCBnaXVwIGNobyB0b2kgc29tIGR1b2MgZ2lhaSBvYW4s IGRlIHRvaSANCmNvIGRpZXUga2llbiBkb25nIGdvcCBzdWMgbHVjIHZhIHRyaSB0dWUgY29uIGxh aSBjdWEgbWluaCB2YW8gc3UgbmdoaWVwIHhheSBkdW5nIGRhdCBudW9jLiBEb25nIHRob2kgZGUg Y2hhIG1lIHRvaSAtIA0Kbmh1bmcgbmd1b2kgZGEgc3VvdCBkb2kgdGhlbyBEYW5nIHF1YSBoYWkg Y3VvYyBraGFuZyBjaGllbiBkdW9jIHllbiBsb25nIG5oYW0gbWF0LiANCg0KVG9pIHhpbiBob2Fu IHRvYW4gY2hpdSB0cmFjaCBuaGllbSB2ZSBjYWMgc3UgdmllYyBkYSBuZXUgdHJvbmcgZG9uLiAN Cg0KVm8gY3VuZyBjYW0gb24gZG9uZyBjaGkgVG9uZyBiaSB0aHUgTGUgS2hhIFBoaWV1LiBLaW5o IGNodWMgZG9uZyBjaGkgbHVvbiB2dWkga2hvZS4gDQoNClRQSENNLCAxNi8xMC8xOTk5IA0KS2lu aCBkb24gDQooa3kgdGVuKSANClZvIFRoaSBUaHUgSG9uZyANCg0KKioqDQoNCkNvbmcgSG9hIFhh IEhvaSBDaHUgTmdoaWEgVmlldCBOYW0gDQpEb2MgbGFwIC0gVHUgZG8gLSBIYW5oIHBodWMNCg0K RG9uIHRvIGNhbyBraGFuIGNhcA0KDQpLaW5oIGd1aTogQmFuIGxhbmggZGFvIGNhYyBjYXANCg0K VG9pIHRlbiBsYSBOZ3V5ZW4gQ2FuaCBTaW5oLiBTaW5oIG5hbSAxOTUzIHRhaSBCaW5oIENoYW5o LiBTbyBDaHVuZyBtaW5oIE5oYW4gZGFuOiAwMzAwNzI5MTMuIEhpZW4gdGh1b25nIHRydSANCnRh aSA1MS84NCBkdW9uZyBDYW8gVGhhbmcgUGh1b25nIDMsIFF1YW4gMy4gTmd1eWVuIGxhIGdpYW0g ZG9jIGRvYW5oIG5naGllcCB0dSBuaGFuIHRoZXUgQ2FvIFRoYW5nIChuYXkgZGEgZ2lhaSB0aGUp LiANCkxhIGNob25nIGN1YSBWbyBUaGkgVGh1IEhvbmcsIHNhbmggbmFtIDE5NTUsIG5ndSB0YWkg NTEvODQgZHVvbmcgQ2FvIFRoYW5nIFBodW9uZyAzLCBRdWFuIDMsIG5ndXllbiBsYSBnaWFtIGRv YyANCnhpIG5naGllcCBtYXkgeHVhdCBraGF1IFF1YW4gMywgZGEgYmkgb25nIEh1eW5oIFZhbiBU aGFuaCAoYmkgZGFuaCBUYW0gVGhhbmgpLCBuZ3V5ZW4gbGEgYmkgdGh1LCBjaHUgdGljaCBVeSBi YW4gTmhhbiBkYW4gUTMgDQpkYSBjaGkgZGFvIGNobyBjb25nIGFuIFF1YW4gMyBiYXQgaGFtIG9h biB2byB0b2kgdGFpIG5oYSB2YW8gbmdheSAzMS8wNS8xOTk3LCBsdWMgZG8gdG9pIGtob25nIGNv IG8gbmhhIHZhIGN1bmcgDQpraG9uZyB0aGF5IG1vdCBxdXlldCBkaW5oIG5hbywgbHkgZG8gdmkg c2FvIGJpIGJhdC4gU2F1IG5heSwgdG9pIGJpZXQgdGhlbSBsYSBjbyBzdSBjaGkgZGFvIGN1YSBv bmcgVHJ1b25nIFRhbiBTYW5nLCANCmJpIHRodSB0aGFuaCB1eSB0aGFuaCBwaG8gSG8gQ2hpIE1p bmguIA0KDQpLaW5oIHRodWEgQmFuIGxhbmggZGFvLA0KDQpPbmcgSHV5bmggVmFuIFRoYW5oIHZh IG9uZyBUcnVvbmcgVGFuIFNhbmcgcmF0IHRoYW4gdGhpZW4gZ2FuIGJvIHZvaSBuaGF1IGtlIHR1 IGtoaSBvbmcgVHUgU2FuZyBsZW4gbGFtIGNodSB0aWNoIA0KVUJORFRQIEhvIENoaSBNaW5oLiBI YWkgb25nIHRodW9uZyB4dXllbiBkaSBkYW5oIHRlbm5pcyB0YWkgc2FuIFQ3OCwgc2FuIEhvIFh1 YW4gSHVvbmcsIHZhIGN1bmcgdGh1b25nIHh1eWVuIGRpIG5oYXUgbmhldCwgDQphbiBjaG9pIHZv aSBuaGF1LiBTdW90IHF1YSB0cmluaCBsYW5oIGRhbyBjdWEgb25nIFRhbSBUaGFuaCwgb25nIFR1 IFNhbmcgdGFpIFF1YW4gMywgVGhhbmggcGhvIEhvIENoaSBNaW5oIGRhIGxhbSBjaG8gDQp0aW5o IGhpbmgga2luaCB0ZSBuZ2F5IGNhbmcgYmkgZGF0LCBjdWMga3kga2hvIGtoYW4sIHRpbmggaGlu aCBjYWMgZG9hbmggbmdoaWVwIHR1IG5oYW4gdHJvIG5lbiB0b2kgdGUsIG5oYXQgbGEgdGFpIA0K UXVhbiAzLiBTdSB5ZXUga2VtIHZlIG5hbmcgbHVjIGxhbmggZGFvLCB0cmluaCBkbyB2YW4gaG9h LCBzdSBhbiBjaG9pIHNhIGRvYSBjdWEgY2FjIG9uZyBkYSBraG9uZyB0aGUgbmFvIGNoZSBtYXQg DQpkdW9jIGRhbiBjaHVuZy4gU3UgcXVhbiBsaWV1IGNodWMgcXV5ZW4gbGFtIGNodXllbiBkb2kg YmFpLCBraG9uZyBjb24gZHUgdHUgY2FjaCB2YSBjbyBuaGlldSBuZ3VvaSBiaWV0IGRlbiBuaHVu ZyANCnZpIHNvIGJpIHRyYSB0aHUsIHRydSBkYXAgbmVuIGtob25nIGRhbSB0byBjYW8sIG5lbiBs b25nIHVhdCB1Yy4gVmEgY3UgdGhlIGxhIHRydW9uZyBob3AgY3VhIHZvIHRvaSBiaSBvbmcgdHJ1 IGRhcCANCnRoYW5nIHRheSwgbmhhbSBjaGUgZGF5IHN1IHRoYXQgdmUgY29uIG5ndW9pIHhhdSB4 YSBjdWEgY2FjIG9uZyBheSwga2hvbmcgeHVuZyBkYW5nIGxhIGRhbmcgdmllbiBEYW5nIGNvbmcg c2FuIFZpZXQgTmFtLiANCg0KLSBUcm9uZyBVQk5EIFF1YW4gMyBraG9uZyBhaSBraG9uZyBiaWV0 IG9uZyBUYW0gVGhhbmggbGEgZGEgY28gdm8sIHZhbiBxdWFuIGhlIG5odSB2byBjaG9uZyB2b2kg YmEgRGFvIFRoaSBOZ2EgdGFpIA0Ka2hhY2ggc2FuIEJhbiBDbyAoYmEgTmdhIG5ndXllbiBsYSBn aWFtIGRvYyBraGFjaCBzYW4gQmFuIENvKS4gDQoNCi0gQ3VuZyBjaGluaCBvbmcgVGFtIFRoYW5o IGRhIHF1YW4gaGUgdm9pIHZvIHRvaSBuaHUgdm8gY2hvbmcgc3VvdCB0aG9pIGdpYW4gZGFpIHR1 IGtoaSB2byB0b2kgY29uIGxhbSANCnBobyBwaG9uZyBrZSBob2FjaCBRdWFuIDMsIHJvaSBxdWEg bGFtIGdpYW0gZG9jIHhpIG5naGllcCBtYXkgeHVhdCBraGF1IFF1YW4gMy4gVmllYyBuYXkgbGFt IHRvaSB2byBjdW5nIGRhdSBkb24sIA0KY2FuIHJhbmcgY2hpdSBkdW5nIHRydW9jIGR1IGx1YW4g dmkgYmlldCBtaW5oIGRhbmcgY2hpdSBhcCBsdWMgY3VhIGNhYyBvbmcgdHJvbmcgbGFtIGFuIGtp bmggdGUsIG5oaWV1IGx1YyANCnZvIGNob25nIHRvaSB0byB0aWVuZyBjYWkgdmEgZG9pIGx5IGRp LiBDbyBsYW4gdG9pIHR1YyBnaWFuIGRpIGRlbiB2YW4gcGhvbmcgcXVhbiB1eSBRdWFuIDMgZGUg YmFvIHZvaSANCnRvIGNodWMgcXVhbiB1eSB2ZSB2aWVjIG5heSwgbmh1bmcgdm8gdG9pIGNoYXkg dGhlbyBjYW4ga2hvbmcgY2hvIHRvaSB2YW8gcXVhbiB1eS4gVmllYyBuYXkgY2FuZyBsYW0gdG9p IHR1YyBnaWFuLCANCm5naGkgbmdvIHZhIHRoYXkgcmFuZyB2byBtaW5oIGRhIGJpIG9uZyBUYW0g VGhhbmggbG9pIGR1bmcgY2h1YyBxdXllbiwgY2hpZW0gZG9hdCB2YSB0cm8gdGhhbmggbmFuIG5o YW4gDQpjdWEgb25nIGNodSB0aWNoIFF1YW4gMyBraG9uZyBraGFjIGdpIGJhIERhbyBUaGkgTmdh LiBDbyBsYW4gdG9pIHRoZW8gZG9pIHZhbyBidW9pIGNoaWV1IHRoYXkgdmkgZGkgaG9jIA0KQW5o IHZhbiBuZ29haSBnaW8gdm8gdG9pIGNvIGRlbiBraGFjaCBzYW4gQmFuIENvLCBuaHVuZyBraG9h bmcgaG9uIG1vdCB0aWVuZyBkb25nIGhvIHRoaSB2byB0b2kgZGkgcmEsIA0KcXVheSB2ZSB0aWVw IHR1YyBkaSBob2MuIFRvaSB0dSB0aGFjIG1hYzogdGFpIHNhbyBkaSBob2MgbGFpIHZhbyBraGFj aCBzYW4gZGUgbGFtIGdpPw0KS2hpIHRpbSBoaWV1IHZhIHRyYSBraGFvIHZvLCB0b2kgYmlldCB0 aGVtIGxhIHZvIHRvaSBiaSBvbmcgVGFtIFRoYW5oIGdhIGdhbSBjaG8gb25nIFR1IFNhbmcuIE9u ZyBUYW0gVGhhbmggDQpvIHJpZW5nIG1vdCBwaG9uZyB2b2kgbW90IGNvLCBjb24gdm8gdG9pIHZv aSBvbmcgVHUgU2FuZyBvIGNodW5nIG1vdCBwaG9uZywga2hpIHZlIGRpIGNodW5nIHZvaSBvbmcg VHUgU2FuZyBtb3QgeGUuIA0KDQotIE9uZyBUYW0gVGhhbmggdmEgb25nIFR1IFNhbmcgdGh1b25n IGhheSBkdW9jIE5ndXllbiBOZ29jIENoYXUsIGdpYW0gZG9jIENvbmcgdHkgdmF0IHR1IFF1YW4g MywgY2hpZXUgZGFpIGFuIG5oYXUsIA0KdGhpbmggdGhvYW5nIGNvIGRpIGxlbiBraGFjaCBzYW4g c28gNTcgSG9hIEJpbmggdGFpIEJpZW4gSG9hLCB0cm9uZyBkbyBjbyB2byB0b2kgdmEgMiBjbyBj dW5nIGRpIHRoZW8gbmh1bmcgDQpraG9uZyBiaWV0IHJvIHRlbi4gDQoNCi0gT25nIFRhbSBUaGFu aCB0cm9uZyB0aG9pIGdpYW4gbGFtIGJpIHRodSBjaHUgdGljaCB0aHVvbmcgaGF5IHRvIGNodWMg ZGFuaCBiYWkgdGFpIG5oYSBjdW5nIGNhYyBjYW4gYm8gZG9hbmggbmdoaWVwIA0KdGhhbiBjYW4s IGRlbiBub2kgY2FjIGNhbiBibyBodXUgdHJpIGRldSBiaWV0LiBOaHUgbG9pIG9uZyBUaW4sIGdp YW0gZG9jIHhpIG5naGllcCB0aHVvYyBsYSBIb2EgQ3VjIChkYSBuZ2hpIGh1dSkgDQpub2kgdm9p IHRvaToiTmF5LCBiaWV0IGtob25nLCBjaGlldSBuYW8gbyBuaGEgdGhhbmcgY2hhIFRhbSBUaGFu aCBjdW5nIG5odSBzb25nIGJhYyBEYWkgVGhlIEdpb2kgdGh1IG5obyIuIA0KDQotIE5hbSAxOTkz LCBjbyBsYW4gdG9pIGxlbiBjaHVjIHRldCBvIFVCTkQgUXVhbiAzIHRoaSBvbmcgVGFtIFRoYW5o IGdvaSB5IGtldSB0b2kgYmFvIG9uZyBkaSBTaW5nYXBvcmUuIA0KTmh1bmcgdG9pIGltIGxhbmcg dmEga2hvbmcgZGFtIGh1YSB2aSBjdW5nIGRhIGhpZXUgeSBvbmcgbXVvbiBnaSwgY29uIHRvaSB0 aGkga2hvbmcgZHUga2hhIG5hbmcgdGhvYSBtYW4geSBvbmcuIA0KU2F1IGRvIG9uZyBlcCB2byB0 b2kgbG8gMTAwIHRyaWV1IGRlIGNobyBoYWkgb25nIFRhbSBUaGFuaCB2YSBvbmcgVHUgU2FuZyBk aSBTaW5nYXBvcmUuIA0KDQotIE9uZyBOYW0gS2hvYSAocGhvIGNodSB0aWNoIFVCTkQgUXVhbiAz KSBjbyBsYW4gbm9pIHZvaSB0b2k6ICJPbmcgVGFtIFRoYW5oIG5vaSBjaG9uZyBjb24gVGh1IEhv bmcgbGEgY2hvbmcgVGF5IA0KY2hvIGtob25nIHBoYWkgY2hvbmcgdGEiLiBQaGFpIGNoYW5nIGxv aSBub2kgZG8gdGhlIGhpZW4gb25nIFRhbSBUaGFuaCBnaGVuIHR1YyBraGkgdGhheSB2byB0b2kg dHJvbmcgbGFtIGFuIGtpbmggdGUgDQpwaGFpIHRpZXAgeHVjIG5ndW9pIG51b2MgbmdvYWksIGto b25nIGNvbiBjaGlldSBjaHVvbmcgaGF1IGhhIG9uZyBuaHUgdHJ1b2MgZGF5IHZhIHJhIHRheSB0 cnUgZGFwIGtob25nIHRodW9uZyB0aWVjPyANCg0KLSBWaSB2byB0b2kga2hvbmcgdGhvYSBtYW4g bmh1IGNhdSBjaG8gb25nIFR1IFNhbmcgZGkgbnVvYyBuZ29haSwgdmEgdm8gdG9pIGtob25nIGRl biB2b2kgb25nIFR1IFNhbmcgbnVhIG5lbiANCm9uZyBUYW0gVGhhbmggZGEgdGltIG1vaSBjYWNo IGdheSBraG8ga2hhbiBjaG8gWGkgbmdoaWVwIG1heSB4dWF0IGtoYXUgUXVhbiAzPyBDYWMgZGUg eHVhdCB2YSBnaWFpIHBoYXAgdGhhbyANCmdvIGtobyBraGFuIGNobyB4aSBuZ2hpZXAgZGV1IGJp IG9uZyBUYW0gVGhhbmggdmEgVHUgU2FuZyBwaG90IGxvIGtob25nIGdpYWkgcXV5ZXQgZGUgYmF0 IHZvIHRvaSBtb3QgY2FjaCBvYW4gdWMuIA0KDQpUb2kgeGluIGtpbmggbW9uZyBCYW4gbGFuaCBk YW8gY2FjIGNhcCBuZ2hpZW4gY3V1IHhlbSB4ZXQgZGUgbWluaCBvYW4gY2hvIHZvIHRvaSBkdW9j IHNhbmcgdG8gbmhhbSB0cm8gbGFpIA0KcGh1YyB2dSBjYWNoIG1hbmcsIGdvcCBwaGFuIGtoYWMg cGh1YyBoYXUgcXVhIGhpZW4gbmF5LiANCg0KVG9pIHhpbiBjYW0gZG9hbiBuaHVuZyBsb2kgdHJp bmggYmF5IHRyZW4gZGF5IGxhIHN1IHRoYXQsIG5ldSBjbyBnaSBzYWkgdHJhaSB0b2kgeGluIGNo aXUgdHJhY2ggbmhpZW0gaG9hbiB0b2FuLiANCg0KTmdheSAzIHRoYW5nIDEwIG5hbSAxOTk5IA0K DQooa3kgdGVuKSANCk5ndXllbiBDYW5oIFNpbmggDQoNCmh0dHA6Ly93b3JsZGN1cC5ubGQuY29t LnZuLzkwMjIwcDBjMTAwMi9haS1kYS14YS14ZW8tMTUwMC1oYS1kYXQtbm9uZy10cnVvbmctLmh0 bSAgQ2FtIExhbiAwOC8wMS8yMDA0IDIyOjIzIA0KDQpWdSB4YSB4ZW8gMTUwMCBoYSBkYXQgbm9u ZyB0cnVvbmcgbyBUUCBIQ00gLSBPbmcgVHJ1b25nIFRhbiBTYW5nIHBoYWkgY2hpdSB0cmFjaCBu aGllbSANCg0KKjYzNSBoYSBkYXQgYmkgeGEgeGVvIGRhIGR1b2MgbGFtIHRodSB0dWMgImhvcCB0 aHVjIGhvYSI/DQoNClVCTkQgVFAgZGEgZ2lhbyAxMC4xNTkgaGEgZGF0IGNobyA2IG5vbmcgdHJ1 b25nIChOVCkgZ29tIE5UIExlIE1pbmggWHVhbiwgTlQgDQpQaGFtIFZhbiBIYWksIE5UIFBoYW0g VmFuIENvaSwgQ29uZyB0eSBCbyBzdWEgKHRodW9jIFRvbmcgQ29uZyB0eSBOb25nIG5naGllcCAN ClNhaSBHb24gLSBOTlNHKSwgTlQgTGFuZyBMZSAodGh1b2MgaHV5ZW4gQmluaCBDaGFuaCkgdmEg TlQgVGFtIFRhbiAodGh1b2MgaHV5ZW4gDQpDdSBDaGkpLiBUaGUgbmh1bmcsIHR1IG5hbSAxOTg5 IGRlbiBuYXksIG1vdCBzbyBkYXQgdGh1b2MgY2FjIE5UIHRyZW4gZGEgYmkgbGFuIGNoaWVtLCBz dSBkdW5nIHNhaSBtdWMgZGljaC4NCg0KVGhpIG5oYXUgY2hpZW0gZGF0DQoNClR1IHF1eSBJSSBk ZW4gcXV5IElWLzIwMDMsIERvYW4gS2llbSB0cmEgU28gTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmll biBub25nIHRob24gKE5OIA0KJiBQVE5UKSBUUCB2YSBTbyBUYWkgbmd1eWVuIC0gTW9pIHRydW9u ZyAoVE4gLSBNVCkgVFAgZGEgdGllbiBoYW5oIHJhIHNvYXQsIGtpZW0gdHJhIA0KdmllYyBxdWFu IGx5LCBzdSBkdW5nIGRhdCBub25nIG5naGllcCB0YWkgNiBOVCB0cmVuLiBLZXQgcXVhIGJhbyBj YW8gdGhhdCBraG8gdGluOiBEaWVuIA0KdGljaCBjaGkgY29uIDguNjg2LzEwLjE1OSBoYSBkYXQg ZHVvYyBnaWFvOyBzbyBkYXQgYmkgIm1hdCIsIHhhbSBwaGFtIGdhbiAxLjUwMCBoYS4gDQoNCkNh YyB0aGFuaCB2aWVuIHRyb25nIGRvYW4ga2llbSB0cmEgY3VuZyBoZXQgc3VjIGJhdCBuZ28ga2hp IGJpZXQgbmd1eWVuIG5oYW4gY2hpbmggbGFtIA0KbWF0IGNhIG5nYW4gaGEgZGF0IGxhIE5UIGJp ICJidW9jIiBwaGFpIGNhdCBjaGlhIGRhdCBuZXUgbXVvbiB5ZW4gb24gdHJvbmcgY29uZyB0YWMg Y2FuaCB0YWMsIHRyb25nIHRyb3QuIA0KDQoiTG9pIGR1bmcgdXkgdGhlIGN1YSBtaW5oLCBjYWMg bGFuaCBkYW8gdGllbiBuaGllbSBjdWEgZGlhIHBodW9uZyAoVFAgSENNKSBob2FjIGN1YSANCmNv IHF1YW4gY2h1IHF1YW4gKFRvbmcgQ29uZyB0eSBOTlNHIFRQKSBkYSBnb2kgeSBsYW5oIGRhbyBO VCBwaGFpIHR1IG5ndXllbiBjaHV5ZW4gZ2lhbyANCnZhaSBtYXUgZGF0IGdpdXAgZGlhIHBodW9u ZyBsbyBjaG8gbyBjaG8gbmd1b2kgZGFuIGRpIGtpbmggdGUgbW9pIHZhIG5ndW9pIGRhbiBzbyAN CnRhaS4gRG9pIGxhaSwgZGlhIHBodW9uZyBzZSBuaGFtIG1hdCBsYW0gbmdvIG5odW5nIHNhaSBw aGFtIGN1YSBOVC4uLiIsIGJhIE5ndXllbiBUaGkgRHUsIENoYW5oIFRoYW5oIHRyYSBTbyBUTiAt IE1UIFRQLCBuaGFuIGRpbmguIA0KDQpUaGVvIFBobyBHaWFtIGRvYyBUaHVvbmcgdHJ1YyBTbyBO TiAmIFBUTlQgVFAgUGhhbSBUaHV5ZXQsIHRvbmcgZGllbiB0aWNoIGRhdCANCmN1YSA2IE5UIGRh IGNodXllbiBnaWFvIGNobyBkaWEgcGh1b25nLCBkb24gdmkga2hhYyBsYSA2MzUgaGE7IGN1IHRo ZToNCg0KLSBUdSBuYW0gMTk4OSBOVCBUYW0gVGFuIGRhIGNodXllbiBxdXllbiBxdWFuIGx5IDI4 MiBoYSBjaG8gNCB4YSBodXllbiBDdSBDaGksIA0KYmllbiBkYXQgdHJvbmcgdHJvdCB0aGFuaCBk YXQgdGhvIGN1IGRhbmggZGUgImdpYW4gZGFuIiwgZG9uZyB0aG9pICJkdWEiIGdhbiA0NSBoYSBs YW0gDQpiYWkgY2hvbiBsYXAgcmFjIHNvIDEgbmFtIDIwMDI7IChvbmcgTGUgVGhhbmggSGFpIC0g Q2h1IHRpY2ggVUJORCBUUCBIQ00sIHR1IDIwMDEtMjAwNiwgcGhhaSBjaGl1IHRyYWNoIG5oaWVt LikNCiANCi0gTlQgTGUgTWluaCBYdWFuIG5hbSAxOTk3IGRhIGNodXllbiBnaWFvIDQwIGhhIGNo byBodXllbiBCaW5oIENoYW5oIGxhcCBraHUgY29uZyBuZ2hpZXAuIA0KDQotIE5UIFBoYW0gVmFu IEhhaSAoVFAgSENNKSBjdW5nIGJ1b2MgcGhhaSBnaWFvIDMyIGhhIGNobyBodXllbiBEdWMgSG9h IChMb25nIA0KQW4pIHZhbyBuYW0gMTk5MTsgKG9uZyBUcnVvbmcgVGFuIFNhbmcgLSBxdWUgbyBo dXllbiBEdWMgSG9hIC0gdGluaCBMb25nIEFuLCBuZ3V5ZW4gbGEgZ2lhbSBkb2MgTlQgbmF5LCAN Cm5ndXllbiBHaWFtIGRvYyBTbyBOb25nIE5naGllcCBUUCBIQ00gZGVuIG5hbSAxOTkyIHRoaSBs YW0gQ2h1IHRpY2ggVUJORCBUUCwgcGhhaSBjaGl1IHRyYWNoIG5oaWVtKSAgDQoNCi0gTlQgUGhh bSBWYW4gQ29pIGNodXllbiAxNzYsNyBoYSBnb206IDEyNiw3NyBoYSBjaG8gQ29uZyB0eSBGb1Nh Q28gbmFtIDE5OTEgdmEgDQoyMDAxIGRlIHRyb25nIGNheSBQYWNoaXJhIHh1YXQga2hhdSwgMjUg aGEgY2hvIFhpIG5naGllcCBDaGFuIG51b2kgaGVvIERvbmcgSGllcCBuYW0gDQoyMDAxIHZhIGdh biAyNSBoYSBjaG8gWGkgbmdoaWVwIENoYW4gbnVvaSBoZW8gUGh1b2MgTG9uZyBuYW0gMjAwMi4u LiAob25nIE5ndXllbiBNaW5oIFRyaWV0IC0gDQpCaSB0aHUgVGhhbmggdXkgVFAgSENNLCB0dSAy MDAwIC0gMjAwNiwgcGhhaSBjaGl1IHRyYWNoIG5oaWVtKQ0KDQpUYXQgY2EgZGV1IGR1b2MgdGh1 YyBoaWVuIHRoZW8gY2hpIGRhbyBtaWVuZyBob2FjIGdpYXkgdGF5LiANCg0KMTQgbmFtIHRyb2kg cXVhLCA2MzUgaGEgZGF0IGJpIHhhIHhlbyB0cmVuIGRhIGR1b2MgImhvYW4gY2hpbmggY2FjIHRo dSB0dWMgcGhhcCBseSIgdGhlbyANCnF1eSBkaW5oLiBDb24gaG9uIDgzOCBoYSBkYXQgY2h1eWVu IGdpYW8gdGhlbyBsZW5oIGNodWEgaG9hbiBjaGluaCB0aHUgdHVjOyB0cm9uZyBkbyANCk5UIFBo YW0gVmFuIENvaSBsYSA2MzIgaGEsIENvbmcgdHkgQm8gc3VhIDEwOCBoYSwgTlQgUGhhbSBWYW4g SGFpIDI2LDggaGEuLi4gdGhpIGJpIGRvYW4ga2llbSB0cmEgcGhhdCBoaWVuIGdpdSBsYWkuIA0K DQpLaG9uZyBjaGkgY28gY2FjIGNhIG5oYW4sIGRvbiB2aSBOaGEgbnVvYyBjaGllbSBkdW5nLCBu aHVuZyBobyBkYW4gZ2lhcCByYW5oIHZvaSBkYXQgDQpOVCBjdW5nIHRyYW5oIHRodSB4YW0gY2Fu aCBjYSBjaHVjIG5nYW4gbWV0IHZ1b25nLCBuaHUgZ2lhIGRpbmggY3VhIGJhIFBoYW0gVGhpIA0K SGFuaCB2YSBvbmcgRGFuZyBCYSBEb25nIG8gYXAgNiwgeGEgUGhhbSBWYW4gSGFpIGRhIGNoaWVt IGR1bmcgMTUwMDAgbTIgZGF0IE5UIA0KUGhhbSBWYW4gSGFpIHRyb25nIGJhY2ggZGFuIHR1IG5h bSAxOTg5IGRlbiBuYXkuIA0KDQpMb2kgbm9uZyB0cnVvbmcsIGRpYSBwaHVvbmcgaGF5IGNvIHF1 YW4gY2h1IHF1YW4/IA0KDQpQaG8gR2lhbSBkb2MgU28gVE4tTVQgVFAgTmd1eWVuIFRoYW5oIE5o YW4gY2hvIHJhbmcgZGUgaGllbiB0dW9uZyBjaGllbSBkdW5nLCANCnhhbSBjYW5oIGNhIG5nYW4g aGEgZGF0IE5UIHRyb25nIG1vdCB0aG9pIGdpYW4gbGF1IG5odSB2YXksIFNvIE5OICYgUFROVCBU UCB2YSANClRvbmcgQ29uZyB0eSBOTlNHIFRQIHBoYWkgY2hpdSB0cmFjaCBuaGllbSBob2FuIHRv YW4uIChPbmcgVHJ1b25nIFRhbiBTYW5nIC0gVXkgDQp2aWVuIEJvIENoaW5oIFRyaSwgbmd1eWVu IGxhIEdpYW0gZG9jIHNvIE5vbmcgTmdoaWVwIFRQIEhDTSwgZGVuIG5hbSAxOTkyIHRoaSBsYW0g DQpDaHUgdGljaCBVQk5EIFRQIEhDTSwgcGhhaSBjaGl1IHRyYWNoIG5oaWVtLikNCg0KTmdvYWkg bmh1bmcgbmd1eWVuIG5oYW4gZG86IGNodXllbiBkYW4gZGllbiB0aWNoIHRobyBjdSBjYXAgY2hv IGNhYyBobyBnaWFuIGRhbiB2ZSBkaWEgDQpwaHVvbmcgcXVhbiBseSwgY2h1eWVuIGdpYW8gY2hv IGRvbiB2aSBraGFjIHRyb25nIHF1YSB0cmluaCB0aHVjIGhpZW4gcXV5IGhvYWNoIGNodW5nIA0K Y3VhIFRQLi4uLCAiU28gTk4gJiBQVE5UIFRQIHZhIFRvbmcgQ29uZyB0eSBOTlNHICBraG9uZyB0 aGUgZG8gdHJhY2ggbmhpZW0gcmFuZyAgDQpkYXQgY2h1YSB4YWMgZGluaCByYW5oIGNhbSBtb2Mg Y3UgdGhlIG5lbiB2aWVjIHF1YW4gbHksIHN1IGR1bmcgZGF0IGN1YSBjYWMgTlQgY29uIA0Kbmhp ZXUga2hvIGtoYW4sIHRvbiB0YWkgdmEgdnVvbmcgbWFjIiAtIG9uZyBOaGFuIG5vaSB0aGFuZy4g DQpUaGVvIG9uZywgU28gTk4gJiBQVE5UIFRQIHBoYWkgeGFjIGRpbmggdGhhdCBjdSB0aGUgdmUg dGhvaSBkaWVtIHZhIGhpZW4gdHJhbmcsIHBob2kgDQpob3Agdm9pIGRpYSBwaHVvbmcgdGllbiBo YW5oIGRvIGxhaSBkaWVuIHRpY2ggcmFuaCBkYXQgaGllbiBjbyB0cnVvYyBuYW0gMjAwNCB2YSBu aGFuaCANCmNob25nIGdvaSBiYW8gY2FvIHRyaW5oIGxlbiBVQk5EIFRQIHhlbSB4ZXQuIA0KT25n IE5oYW4gY3VuZyBuaGFuIG1hbmggbmV1IGtob25nIGNvIHN1IGtpZW4gcXV5ZXQga2llbSB0cmEg dGhpIGNoYWMgY2hhbiBkaWVuIHRpY2ggDQpkYXQgTlQgYmkgbGFuIGNoaWVtLCAgc3UgZHVuZyBz YWkgbXVjIGRpY2gga2hvbmcgZHVuZyBsYWkgY29uIHNvIDE1MDAgaGEuIA0KDQpOZ29haSByYSwg Y3VuZyBjYW4gcGhhaSB0cnV5IGN1dSB0cmFjaCBuaGllbSBjdWEgbmh1bmcgY2EgbmhhbiwgZG9u IHZpIHR1bmcgbG9pIGR1bmcgDQpjaHVjIHF1eWVuIGJ1b2MgTlQgcGhhaSBjaGlhIGNhdCBkYXQg c2FuIHh1YXQgdmkgdHJ1YyBsb2kgY2Egbmhhbi4NCg0KKFkga2llbiBjdSB0cmk6IE9uZyBUcnVv bmcgVGFuIFNhbmcgbmd1eWVuIGxhIGdpYW0gZG9jIE5UIFBoYW0gVmFuIEhhaSwgbmd1eWVuIEdp YW0gZG9jIFNvIE5vbmcgTmdoaWVwIFRQIEhDTSwgDQpkZW4gbmFtIDE5OTIgbGFtIENodSB0aWNo IFVCTkQgVFAsIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB2ZSBuaHVuZyBzYWkgcGhhbSB0cm9uZyB2 dSB2aWVjIG5heTsgDQp0aWVwIHRoZW8gbGEgY2FjIG9uZyBOZ3V5ZW4gTWluaCBUcmlldCB2YSBM ZSBUaGFuaCBIYWkgbGFuIGx1b3QgbGFtIEJpIHRodSBUaGFuaCB1eSBob2FjIA0KY2h1IHRpY2gg VUJORCBUUCBjdW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbTsgZ2FuIDE1MDAgaGVjdGEgZGF0IGJp IGNoaWVtIGR1bmcgdHJhaSBwaGFwIGx1YXQsIA0KdHJ1YyBsb2kgY2Egbmhhbi4uLiB0cm9uZyBy YXQgbmhpZXUgbmFtOyB2aWVjIGNoaWEgdGFjaCwgc2FwIG5oYXAgaGF5IHBoYW4gY2hpYSBsYWkg DQpkYXQgZGFpIGdpdWEgY2FjIHRpbmggbGEgdGh1b2MgdGhhbSBxdXllbiBjdWEgUXVvYyBIb2ks IGNodSBraG9uZyBwaGFpIHRoYW0gcXV5ZW4gY3VhIGNhYyBOb25nIHRydW9uZyBoYXkgIA0Kc28g Tm9uZyBOZ2hpZXAsIFRQIEhDTSBoYXkgdGluaCBMb25nIEFuLikgDQoNCmh0dHA6Ly93d3cudGhl Z2lvaW5ndW9pdmlldC5uZXQvc2hvd3RocmVhZC5waHA/cD0zNjA3MSBUcnVuZyBEaWVuIDMvNy8y MDEwICAwMzowNSBQTSANCg0KTGEgYmFpIFRydW9uZyBUYW4gU2FuZyANCg0KVHJ1b25nIFRhbiBT YW5nIGRlbiBuaGEgZ2FwIHR1b25nIE5ndXllbiBUcm9uZyBWaW5oIA0KIA0KRHUgbHVhbiB0cm9u ZyB2YSBuZ29haSBudW9jIGRhbmcgcXVhbiB0YW0gdmUgdmllYyBvbmcgVHJ1b25nIFRhbiBTYW5n IGRlbiBnYXAgY3V1IA0KVHVvbmcgdmUgaHV1IE5ndXllbiBUcm9uZyBWaW5oIHRhaSBuaGEgcmll bmcgdmFvIG5nYXkgMTMgdGhhbmcgNiB2dWEgcXVhLiBTdSBraWVuIA0KbmF5IHhheSByYSBzYXUg a2hpIGxhIHRodSBjdWEgbW90IHNvIGNhbiBibyB2ZSBodXUgZ3VpIGNobyBCbyBjaGluaCB0cmkg dmEgQmFuIGJpIHRodSANCmhvbSAyMiB0aGFuZyA0LCAyMDEwIGRlIGNhcCB2ZSBraGEgbmFuZyB2 YSB0dSBjYWNoIGRhbyBkdWMgY3VhIGJvbiBuaGFuIHZhdCBjYW8gY2FwIA0KbmhhdCB0cm9uZyBk YW5nIENvbmcgc2FuIFZpZXQgTmFtIGxhIE5vbmcgRHVjIE1hbmgsIE5ndXllbiBUYW4gRHVuZywg Tmd1eWVuIFBodSANClRyb25nIHZhIFRvIEh1eSBSdWEuDQoNClRoZW8gY3V1IFR1b25nIE5ndXll biBUcm9uZyBWaW5oIHRoaSBidW9pIGdhcCBnbyB2b2kgVHJ1b25nIFRhbiBTYW5nIGRpZW4gcmEg InRoYW4gDQptYXQiIHZhIFNhbmcgdG8gdGhhaSBkbyBsZSBwaGVwIHZhIHR1IHRvbi4gVHJ1b25n IFRhbiBTYW5nIGNvIGRhdCB2YW4gZGUgdm9pIFR1b25nIA0KVmluaCB2ZSB2aWVjIHRhaSBzYW8g bGEgdGh1IGdvcCB5IHZvaSBsYW5oIGRhbyBsYWkgZGUgbG90IHJhIG5nb2FpIHRoaSBUdW9uZyBW aW5oIG5vaSBsYSANCm9uZyBraG9uZyBiaWV0LCBvbmcgY2hpIGd1aSBjaG8gQm8gY2hpbmggdHJp LCBCYW4gYmkgdGh1IHZhIGNhYyBVeSB2aWVuIFRydW5nIHVvbmcgZGFuZyANCm1hIHRob2kuIFRy dW9uZyBUYW4gU2FuZyBjbyB5ZXUgY2F1IGxhIG5ldSBjbyBraWVuIG5naGkgZ2kgdGhpIG5lbiBn dWkgdHVuZyBuZ3VvaSBkZW4gDQpjaG8gb25nIHRhIHZhIGtob25nIG5lbiBreSBndWkgdGFwIHRo ZS4gVHVvbmcgVmluaCBub2kgcmFuZyBreSB0ZW4gY2EgbmhhbiB2YSBndWkgZGkgDQpuaHUgVHVv bmcgR2lhcCBtYSBraG9uZyBtb3QgYWkgdHJhIGxvaSB0aGkgZGFuaCBwaGFpIGt5IHRhcCB0aGUg bWF5IHJhIGxhbmggZGFvIHRyYSBsb2kuIA0KDQpUdW9uZyBWaW5oIGNvbiBub2kgcmFuZyBvbmcg ZGEgaG9pIFRydW9uZyBUYW4gU2FuZyBoYWkgZGlldTogMS8gS2hpIFR1b25nIEdpYXAgY2hldCAN CmNvIGxhbSBxdW9jIHRhbmcgdGhlbyBuaHUgeWV1IGNhdSBjdWEgb25nIHZhIFR1b25nIERvbmcg U2kgTmd1eWVuIGhheSBraG9uZzsgMi8gRGFpIA0KaG9pIGRhbmcgWEkgY2FuIHRodWMgaGllbiBk YW4gY2h1LCBOZ3V5ZW4gQ2hpIFZpbmggdG9pIGxvaSBkYXkgbWluaCBraG9uZyB0aGUgZHVhIHZh byANClRydW5nIHVvbmcgZGFuZy4gVHVvbmcgVmluaCBjaG8gYmlldCBsYSBUcnVvbmcgVGFuIFNh bmcgbm9pIGNvIHRoZSBsYW0gcXVvYyB0YW5nIGRvaSANCnZvaSBUdW9uZyBHaWFwIG5odW5nIGlt IGxhbmcga2hvbmcgdHJhIGxvaSB2ZSB2dSBOZ3V5ZW4gQ2hpIFZpbmguDQoNClZvaSBub2kgZHVu ZyBjdW9jIHRyYW8gZG9pIGdpdWEgVHJ1b25nIFRhbiBTYW5nIHZhIHR1b25nIFZpbmggbm9pIHRy ZW4sIGtob25nIGNhbiANCnRoaWV0IGRlIG9uZyBTYW5nIHBoYWkgZGVuIHRhbiBuaGEgZ2FwIG1h dDsgbmh1bmcgb25nIFNhbmcgZGEga2hvbmcgbmh1bmcgYm8gdGhvaSBnaW8gDQptYSBjb24gaGEg bWluaCBkZW4gZ2FwIFR1b25nIFZpbmggY2hvIHRoYXkgbGEgb25nIFNhbmcgY28gbmh1bmcgdG9h biB0aW5oIHRyb25nIGN1b2MgDQpjaGF5IGR1YSBnaGUgVG9uZyBiaSB0aHUgdHJvbmcgZGFpIGhv aSBkYW5nIGt5IFhJIHNhcCB0b2kuIFRhaSBzYW8/DQpOZ3VvaSB0YSBjaHVhIGJpZXQgbGEgdmFu IGRlICJUcnVuZyBRdW9jIiBzZSBidW5nIG5vIGNvIG5hbyBuZ2F5IHRyb25nIGRhaSBob2kgWEkg dmFvIA0KdGhhbmcgMSBuYW0gMjAxMTsgbmh1bmcga2hvbmcga2hpIGNob25nIFRydW5nIFF1b2Mg dmEgbGFuIHNvbmcgcGhlIHBoYW4gaGFuZyBuZ3UgDQpsYW5oIGRhbyBxdWEgeWV1IGhlbiBkb2kg dm9pIFRydW5nIFF1b2MgZGFuZyBub2kgbGVuIG1hbmggbWUgdHJvbmcgbm9pIGJvIGRhbmcgQ29u ZyANCnNhbiBWaWV0IE5hbS4gVGFpIGRhaSBob2kgZGFuZyBreSBJWCB2YW8gbmFtIDIwMDEsIG9u ZyBMZSBLaGEgUGhpZXUgZGEgbWF0IGdoZSBUb25nIA0KYmkgdGh1IGNoaSB2aSBkYSBjaGkgdGhp IGNobyBCbyBuZ29haSBnaWFvIGt5IEhpZXAgdW9jIGJpZW4gZ2lvaSBwaGlhIEJhYyB2b2kgVHJ1 bmcgUXVvYyANCm5hbSAxOTk5IHZhIEhpZXAgZGluaCBwaGFuIHJhbmggVmluaCBCYWMgYm8gdm9p IFRydW5nIFF1b2MgbmFtIDIwMDAuIE9uZyBQaGlldSBkYSANCmJpIHRvIGxhICJwaGFuIHF1b2Mi IHZpIGRhIGRlIGNobyBWaWV0IE5hbSBtYXQgcXVhIG5oaWV1IGRhdCB2YSBiaWVuIGtoaSBreSBo YWkgaGllcCANCmRpbmggbm9pIHRyZW4sIG5lbiBkYSBiaSBlcCBwaGFpIHJ1dCBsdWkgY3VvYyBk dWEgZ2hlIHRvbmcgYmkgdGh1LCBtYWMgZHUgbHVjIGRvIFRydW5nIA0KUXVvYyBkYSBjdSBIbyBD YW0gRGFvIChkYW5nIGxhIFBobyBDaHUgdGljaCBudW9jKSBkYW4gbW90IHBoYWkgZG9hbiB0cmVu IDE1MCBjYW4gYm8gDQpjYW8gY2FwIHNhbmcgdGhhbSBxdWFuIHZhIGR1IGRhaSBob2kgSVggbmhh bSBoYXUgdGh1YW4gY2hvIExlIEtoYSBQaGlldS4NCg0KVHJvbmcgdGhvaSBnaWFuIHF1YSwgY2Fj IG9uZyBOb25nIER1YyBNYW5oLCBOZ3V5ZW4gVGFuIER1bmcsIE5ndXllbiBQaHUgVHJvbmcsIA0K VG8gSHV5IFJ1YSwgUGhhbSBRdWFuZyBOZ2hpIGRhIGJpIHRvIGxhIGRhbmcgcGh1YyB2dSBjaG8g cXV5ZW4gbG9pIGN1YSBUcnVuZyBRdW9jIA0KdGFpIFZpZXQgTmFtLiBOaHVuZyBiYWkgdmlldCBj dWEgVHVvbmcgRG9uZyBTeSBOZ3V5ZW4sIFR1b25nIE5ndXllbiBUcm9uZyBWaW5oIA0KdmEgbW90 IHNvIGNhbiBibyB2ZSBodXUgZGEgcGhlIHBoYW4gbmh1bmcgY2hpbmggc2FjaCBzYWkgbGFtLCBs YW0gbG9pIGNobyBCYWMgS2luaCBjdWEgDQptb3Qgc28gbGFuaCBkYW87IG5odW5nIG5ndW9pIHRh IGxhaSBpdCB0aGF5IG5oYWMgZGVuIHRlbiBvbmcgVHJ1b25nIFRhbiBTYW5nLCBoaWVuIGxhIA0K VGh1b25nIHRydWMgQmFuIGJpIHRodS4gT25nIFNhbmcgZHVvYyBjb2kgbGEgbmhhbiB2YXQgc2Fu ZyBnaWEgbmhhdCB0cm9uZyBzYXUgbmd1b2kgDQooVHJ1b25nIFRhbiBTYW5nLCBIbyBEdWMgVmll dCwgUGhhbSBRdWFuZyBOZ2hpLCBQaHVuZyBRdWFuZyBUaGFuaCwgTmd1eWVuIFRhbiANCkR1bmcs IFRvIEh1eSBSdWEpIGRhbmcgY2hheSBkdWEgZ2hlIFRvbmcgYmkgdGh1LiBPbmcgU2FuZyBoaWVu IGR1b2MgcGhlIG9uZyBOb25nIA0KRHVjIE1hbmggaGF1IHRodWFuIHZhIHh1YXQgaGllbiBoYXUg bmh1IHRodW9uZyB4dXllbiB0YWkgSG9pIG5naGkgZGFuZyBibyBjYWMgY2FwIHZhIA0Kbmh1bmcg YmFuIG5nYW5oIGNodXllbiBtb24gdHJvbmcgdGhvaSBnaWFuIGdhbiBkYXkuDQoNCk5odW5nIGRp ZW4gYmllbiBub2kgdHJlbiBjaG8gdGhheSBsYSBvbmcgU2FuZyBkYW5nIG5hbSBuaGlldSB1dSB0 aGUgZGUgY2hpZW0gdmkgdHJpIHNvIA0KbW90IGN1YSBkYW5nIENvbmcgc2FuIFZpZXQgTmFtIHRy b25nIDUgbmFtIHRvaSwgbmh1bmcgb25nIFNhbmcgdmEgcGhlIG5ob20gY3VhIG9uZyANCnRhIHZh biBjb24gc28gaGFpIGRpZXU6IE1vdCBsYSBzbyBiaSB0byBsYSBkb25nIGxvYSB2b2kgTm9uZyBE dWMgTWFuaCwgTmd1eWVuIFRhbiANCkR1bmcsIFRvIEh1eSBSdWEgdHJvbmcgQm8gY2hpbmggdHJp LCB0aG9uZyBxdWEgbmh1bmcgY2hpbmggc2FjaCBsYW0gbG9pIGNobyBUcnVuZyANClF1b2MgdGFp IFZpZXQgTmFtOyBoYWkgbGEgc28gYmkgbmh1bmcgY2FuIGJvIHZlIGh1dSB2aWV0IHRodSBjb25n IGtoYWkgcGhlIHBoYW4ga2hhIA0KbmFuZyB2YSB0dSBjYWNoIGRhbyBkdWMgY3VhIG1pbmggdHJv bmcgcXVhIGtodSwgcm9pIHBobyBiaWVuIHRyb25nIGR1IGx1YW4sIGNoYWMgY2hhbiANCnNlIGFu aCBodW9uZyB4YXUgZGVuIGN1b2MgY2hheSBkdWEgY3VhIG9uZyBTYW5nLg0KDQpUcnVvbmcgVGFu IFNhbmcgc2luaCBuYW0gMTk0OSBjb24gZ29pIGxhIFR1IFNhbmcsIHRoYW0gZ2lhIGRhbmcgQ29u ZyBzYW4gVmlldCBOYW0gDQp2YW8gbmFtIDE5NzAgbHVjIGRhbmcgaG9hdCBkb25nIGR1IGtpY2gg dGFpIExvbmcgQW4sIG1pZW4gTmFtIFZpZXQgTmFtLiBOYW0gMTk5MCwgDQpUdSBTYW5nIGR1b2Mg ZHVhIGxlbiBsYW0gY2h1IHRpY2ggVXkgYmFuIG5oYW4gZGFuIHRoYW5oIHBobyBTYWkgR29uIHZh IHRybyB0aGFuaCBVeSANCnZpZW4gVHJ1bmcgdW9uZyBkYW5nIG5hbSAxOTkxIChkYWkgaG9pIGRh bmcga3kgVklJKS4gTmFtIDE5OTcsIFRydW9uZyBUYW4gU2FuZyB0cm8gDQp0aGFuaCBCaSB0aHUg VGhhbmggdXkgU2FpIEdvbiB2YSBkdW9jIGR1YSB2YW8gQm8gY2hpbmggdHJpIG5hbSAxOTk3IChk YWkgaG9pIGRhbmcga3kgDQpWSUlJKS4gTmh1bmcgZGVuIG5hbSAxOTk5LCBvbmcgU2FuZyBiaSB0 cmlldSBob2kgcmEgSGEgTm9pIGdpdSBjaHVjIFRydW9uZyBiYW4ga2luaCANCnRlIHRydW5nIHVv bmcsIGdpYW8gY2h1YyBCaSB0aHUgVGhhbmggdXkgbGFpIGNobyBWbyBUcmFuIENoaS4gDQoNClR1 IG5ndW9pIG5hbSBxdXllbiBzaW5oIHNhdCBUaGFuaCB1eSBTYWkgR29uIJYgdGh1IGRvIHRhaSBj aGFuaCBjdWEgVmlldCBOYW0gZGFuZyANCnRyb25nIGNvbiBsb2MgZGF1IHR1IGtpbmggdGUgbWFu aCBtZSBuaGF0IGNhIG51b2MgliB0cm8gdGhhbmggbmhhbiB2YXQgbmdvaSBjaG9pIHhvaSANCm51 b2MgdGFpIHZhbiBwaG9uZyB0cnVuZyB1b25nIGRhbmcgbGEgbW90IHN1ICJ0aGF0IHN1bmciIGN1 YSBUcnVvbmcgVGFuIFNhbmcuIEx1YyBkbywgDQpuaGlldSBkdSBsdWFuIGNobyBsYSBjdW9jIGRv aSBjaGluaCB0cmkgY3VhIG9uZyBTYW5nIGRhIGhldCB2YSB2aWVjIHRyaWV1IGhvaSByYSBIYSBO b2kgDQpnaXUgZ2hlIFRydW9uZyBiYW4ga2luaCB0ZSBjaGkgbGEgbXVhIHRob2kgZ2lhbiBuaGFt IGNoZSBkYXUgc3UgZGF1IGRhIG5vaSBiby4gT25nIA0KU2FuZyBiaSBjYWNoIGNodWMgVGhhbmgg dXkgU2FpIGdvbiB2aSBoYWkgbHkgZG86IDEvIEJpIHRvIGNhbyBsYSBkaW5oIHZhbyBkdW9uZyBk YXkgdG9pIA0KYWMgY3VhIE5hbSBDYW0gKG1vdCB2dSBhbiB0aGFtIG5odW5nIGxvbiBuaGF0IG51 b2MgdmFvIGRhdSBuYW0gMjAwMCk7IDIvIEJpIHRvIGNhbyANCmxhIGJhbyBjaGUgbmd1b2kgSG9h IGNvIG5odW5nIHF1eWVuIGxvaSBraW5oIHRlIGxvbiB0YWkgU2FpIEdvbi4gTmh1bmcga2hpIHJh IEhhIE5vaSwgDQpUcnVvbmcgVGFuIFNhbmcgZGEgZHVvYyBwaGUgbmhvbSBOb25nIER1YyBNYW5o IGJhbyBjaGUgbmVuIFNhbmcgZGEgY2hpIGJpIGJpZW4gDQpwaGFwIGt5IGx1YXQgbGEgImtoaWVu IHRyYWNoIiBjdWEgVHJ1bmcgdW9uZyB2aSB0aGlldSB0cmFjaCBuaGllbSB0cm9uZyB2dSBOYW0g Q2FtLg0KDQpUcnVvbmcgVGFuIFNhbmcgcmF0IGxvIHNvIG5odW5nIHF1YSBraHUgY3VhIG9uZyB0 YSBiaSBwaGFuaCBwaHVpIHRyb25nIGR1IGx1YW4sIG5oYXQgbGEgDQp2YW8gbHVjIG1hIHZpZWMg Y2h1YW4gYmkgbmhhbiBzdSBjdWEgZGFpIGhvaSBkYW5nIGt5IFhJIGRhbmcgbyB2YW8gY2FvIGRp ZW0gdHUgZGF5IGNobyANCmRlbiBjdW9pIG5hbSAyMDExLiBEbyBkbywgdmllYyBUcnVvbmcgVGFu IFNhbmcgZGVuIG5oYSB0dW9uZyB2ZSBodXUgTmd1eWVuIFRyb25nIA0KVmluaCBsYSBkZSBuaGFt IHZ1b3QgdmUgdGhhbmggcGhhbiBjdXUgY2hpZW4gYmluaCwgdGhhbmggcGhhbiBjYW4gYm8gdmUg aHV1IHZvaSBoYWkgDQpjaHUgZGljaDoNClRodSBuaGF0IGxhIGtob25nIHRhbiBjb25nIFRydW9u ZyBUYW4gU2FuZyB0cmVuIG1hdCBiYW8gdmUgdmllYyBTYW5nIG5hbSB0cm9uZyBuaG9tIA0KdGhh biBUcnVuZyBRdW9jIGhheSBjaGF5IHRoZW8gVHJ1bmcgUXVvYy4gS2VtIGNoZSBkdW9jIHZpZWMg bmF5IGxhIGRpZXUgdG9pIHF1YW4gDQp0cm9uZyBkb2kgdm9pIFNhbmcga2hpIGRhaSBob2kgWEkg YnVuZyBubyBuaHVuZyB0cmFuaCBjYWkgdmUgIlRydW5nIFF1b2MiLg0KVGh1IGhhaSBsYSBtdW9u IGNodW5nIHRvIHN1IHRoYW5oIGtoYW4gbGFuZyBuZ2hlIHkga2llbiBjdWEgY2FjIGRhbmcgdmll biwgbmhhdCBsYSBsYXkgDQpsb25nIHRoYW5oIHBoYW4gZGFuZyB2aWVuIGRhbmcgY28geHUgaHVv bmcgY2hvbmcgVHJ1bmcgUXVvYyB2YSBjaG9uZyBuaG9tIGxhbmggZGFvIA0KaGllbiBuYXkgZGUg Z2l1cCBTYW5nIGNvIHR1IHRoZSB2dW90IHRyb2kgaG9uIGNhYyBuaGFuIHZhdCBraGFjIHRyb25n IGN1b2MgZHVhIGdoZSBUb25nIA0KYmkgdGh1Lg0KVHJ1b25nIFRhbiBTYW5nIGRhIHR1bmcgdGhv YXQgaGllbSBvIGRhaSBob2kgVklJSSB2YW8gbmFtIDIwMDEgc2F1IGtoaSBiaSBnaWFuZyBjaHVj IA0KQmkgdGh1IFRoYW5oIHV5IFNhaSBnb24gY2hvIG5nb2kgY2hvaSB4b2kgbnVvYyB0YWkgdmFu IHBob25nIFRydW5nIHVvbmcgdm9pIGNodWMgDQpUcnVvbmcgYmFuIGtpbmggdGUgdmFvIG5hbSAx OTk5IHZpIG5obyBiaWV0IGR1YSB2YW8gcGhlIE5vbmcgRHVjIE1hbmggbyB0aHVvbmcgDQp0YW5n LiBMYW4gbmF5LCBUcnVvbmcgVGFuIFNhbmcgdGhheSBkdWEgdmFvIHBoZSBOb25nIER1YyBNYW5o IGtob25nIGNvbiB0b3QgbnVhIHZpIA0Kb25nIE1hbmggZGFuZyBiaSB0byBjYW8gZGkgZGVtIHZv aSBCYWMgS2luaC4gRG8gZG8sIHZpZWMgVHJ1b25nIFRhbiBTYW5nIGRpIGdhcCANClR1b25nIHZl IGh1dSBOZ3V5ZW4gVHJvbmcgVmluaCBraG9uZyBnaSBraGFjIGhvbiBsYSBkYW5nIGRpIHRpbSBt b3QgdGhlIGR1YSBtb2kgdHUgDQpoYSB0YW5nIGRhbmcgdmllbiwgZGFjIGJpZXQgbGEgdHUga2hv aSBkYW5nIHZpZW4gZGFuZyBjaG9uZyBUcnVuZyBRdW9jIHF1YXkgcXVhbmggDQp0dW9uZyBWbyBO Z3V5ZW4gR2lhcC4gRGlldSBuYXkgY2hvIGNodW5nIHRhIHRoYXkgbGEgQm8gY2hpbmggdHJpIHZh IGNhIFRydW9uZyBUYW4gDQpTYW5nIGRhbmcgbyB2YW8gdGhlIGN1bmcgcXVhbiB0cnVvYyBzdSBz dXkgdGhvYWkgdHJvbmcgbm9pIGJvIGRhbmcgbmdheSB0cm8gbmVuIG5naGllbSB0cm9uZy4NClRv bSBsYWksIFRydW9uZyBUYW4gU2FuZyBkaSBnYXAgVHVvbmcgTmd1eWVuIFRyb25nIFZpbmggbGEg bmhhbSB0aHUgcGh1YyAibmhhbiANCnRhbSIgdmUgY2hvIG1pbmggdHJvbmcgbHVjIHN1IGJhdCB0 aW4sIGJhdCBwaHVjIHZhIGJhdCBtYW4gbGFuaCBkYW8gZGFuZyBkYW5nIGNhbyB0cm9uZyANCm5v aSBibyBkYW5nIHZpIHN1IHlldSBoZW4gY3VhIGxhbmggZGFvIGRvaSB2b2kgVHJ1bmcgUXVvYy4g Tmh1bmcgcXVhIG5vaSBkdW5nIGN1YSANCmN1b2MgZ2FwIGdvLCBuZ3VvaSB0YSB0aGF5IHJhbmcg U2FuZyBjaGkgbGEgdGF5IHRodSBkb2FuLCBjbyBob2ksIGNoaSBxdWFuIHRhbSBkZW4gY2FpIGdo ZSBxdXllbiBsdWMgY3VhIG1pbmggbWEgdGhvaS4gDQoNCmh0dHA6Ly9ib3hpdHZuLmJsb2dzcG90 LmNvbS8yMDEwLzA2L29uZy1jaGktdHJ1b25nLXRhbi1zYW5nLWVuLXRoYW0tdG9pLmh0bWwgTmd1 eWVuIFRyb25nIFZpbmggMjUvMDYvMjAxMCAwODoyOCANCkRvbmcgY2hpIFRydW9uZyBUYW4gU2Fu ZyBkZW4gdGhhbSB0b2kgDQoNCkxvaSBnaW9pIHRoaWV1OiBHYW4gZGF5LCB0cmVuIG1vdCBzbyB0 cmFuZyBtYW5nIGNvIGxhbiB0cnV5ZW4gYmFuIEtpZW4gbmdoaSANCmN1YSAxNyB2aSBsYW8gdGhh bmggY2FjaCBtYW5nIGd1aSBCbyBjaGluaCB0cmkgbmdheSAyMi00LTIwMTAgdmUgbW90IHNvIHZp ZWMgDQpjYXAgYmFjaCBjYW4gbGFtLCBuaGFtIGNodWFuIGJpIGNobyBEYWkgaG9pIERhbmcgc2Fw IHRvaSwgdHJvbmcgZG8gY28gdmllYyANCmdvcCB5IHZvaSA0IHZpLCBnb206IFRCVCBOb25nIER1 YyBNYW5oLCBDaHUgdGljaCBRSCBOZ3V5ZW4gUGh1IFRyb25nLCBUVCBOZ3V5ZW4gVGFuIER1bmcg dmEgVHJ1b25nIGJhbiBUdXllbiBnaWFvIFRvIEh1eSBSdWEuIA0KQmFuIEtpZW4gTmdoaSBkdW9j IGRhbmcgdHJlbiBtb3Qgc28gdHJhbmcgbWFuZyB2YSBjbyBtb3QgZG9hbiB0b20gdGF0IGN1b2Mg DQpnYXAgZ2l1YSBvbmcgVHJ1b25nIFRhbiBTYW5nIHZvaSBUaGlldSB0dW9uZyBOZ3V5ZW4gVHJv bmcgVmluaCB0YWkgbmhhIHJpZW5nIA0KY3VhIFRoaWV1IHR1b25nIHZlIGJhbiBLaWVuIE5naGku IERlIG1pbmggZGluaCBub2kgZHVuZyBkaWNoIHRodWMgY3VhIGN1b2MgDQpnYXAgbmF5LCBUaGll dSB0dW9uZyBOZ3V5ZW4gVHJvbmcgVmluaCBjbyBndWkgZGVuIGNodW5nIHRvaSBiYWkgdmlldCBk dW9pIGRheSwgDQpkZSBuZ2hpIGRhbmcgbGVuIG5oYW0gZ2l1cCBiYW4gZG9jIGhpZXUgcm8gbW9p IGNodXllbi4gDQoNCkJWTiB0cmFuIHRyb25nIGdpb2kgdGhpZXUgY3VuZyBiYW4gZG9jLiANCkJh dXhpdGUgVmlldCBOYW0NCiogKiAqDQoNCkRvbmcgY2hpIFRydW9uZyBUYW4gU2FuZyBkZW4gdGhh bSB0b2kgDQoNClNhbmcgbmdheSAxMyB0aGFuZyAwNiBuYW0gMjAxMCwgZG9uZyBjaGkgVHJ1b25n IFRhbiBTYW5nIGRlbiB0aGFtIHRvaSB0YWkgbmhhIHJpZW5nIA0KbyBwaHVvbmcgS2ltIExpZW4u IFRvaSBjaGkgbm9pIGNobyBkb25nIGNoaSBEb25nIFN5IE5ndXllbiBiaWV0IHZhIGNoaW5oIGRv bmcgY2hpIA0KVHJ1b25nIFRhbiBTYW5nIGN1bmcgdGhvbmcgYmFvIGNobyBkb25nIGNoaSBEb25n IFN5IE5ndXllbiB2ZSBjdW9jIGdhcCBnaXVhIGRvbmcgDQpjaGkgYXkgdm9pIHRvaS4gS2hvbmcg YmlldCBuZ3VvaSB0YSBsYXkgdGluIHR1IGRhdSBtYSBkdWEgbGVuIG1hbmcga2hvbmcgZHVuZyB2 b2kgdGluaCANCnRoYW4gdmEgbm9pIGR1bmcgY3VvYyBub2kgY2h1eWVuIGhvbSBheSwgbmVuIHRv aSBwaGFpIG5vaSBsYWkgY2hvIGR1bmc6IA0KDQpEb25nIGNoaSBUcnVvbmcgVGFuIFNhbmcgY28g aG9pIHRvaSBbbW90IHNvIGRpZXVdIHZlIDQgdmkgbWEgbGFvIHRoYW5oIGNhY2ggbWFuZyANCmNo dW5nIHRvaSBkZSBuZ2hpIGtpZW0gZGllbSB0cm9uZyBiYW4gS2llbiBuZ2hpIG5nYXkgMjIvMDQv MjAxMCB2YSBkZSBuZ2hpIHZvaSB0b2kgMiANCmRpZXUuIFRoYWkgZG8gZG9uZyBjaGkgVHUgU2Fu ZyByYXQgbmhhIG5oYW4gdHUgdG9uIGNodSBraG9uZyBjbyB2ZSBnaSBsYSBjYXAgdHJlbiBjaGF0 IA0KdmFuIERhbmcgdmllbiAiVGFpIHNhbz8uLi4gVGFpIHNhbz8iIE5odSBiYWkgdHJlbiBtYW5n IG1hIGFpIGRvIGR1YSB0aW4uDQoNClZlIFRvbmcgQmkgdGh1IE5vbmcgRHVjIE1hbmggdmEgY2Fj IFV5IHZpZW4gQm8gY2hpbmggdHJpIE5ndXllbiBQaHUgVHJvbmcsIA0KTmd1eWVuIFRhbiBEdW5n LCBUbyBIdXkgUnVhLCB0b2kgZGEgbmV1IGxhaSBuaHVuZyBzYWkgc290IHZhIGJhdCBjYXAgbmh1 IHRyb25nIGJhbiANCmtpZW4gbmdoaS4gVGF0IGNhIGRldSBsYSBzdSB0aGF0IG1hIG5odW5nIG5n dW9pIHF1YW4gdGFtIHRoZW8gZG9pIGFpIGN1bmcgYmlldC4gDQpEb25nIGNoaSBUcnVvbmcgVGFu IFNhbmcgbm9pOiAiSG9hbiBuZ2hlbmggY2FjIGJhYyBjbyB5IGtpZW4gZ2kgZG9uZyBnb3AgdGhp IGd1aSBjaG8gDQpjaHVuZyB0b2ksIGR1bmcgbGFuIHRydXllbiByb25nIG5odSB0aW5oIHBoYW4g YW5oIGxlbiBjaG8gY2h1bmcgdG9pIi4NClRvaSBub2kgY2h1bmcgdG9pIGd1aSBCbyBjaGluaCB0 cmksIEJhbiBCaSB0aHUgdmEgY2FjIFV5IHZpZW4gVHJ1bmcgdW9uZyBsYSBjYWMgdGhhbmggDQp2 aWVuIHRyb25nIGJhbiBsYW5oIGRhbyBEYW5nIGNodSBraG9uZyBndWkgcmEgbmdvYWksIGNvbiBy byByaSB0dSBkYXUgdG9pIGRhdSBjbyBiaWV0LiBEb25nIGNoaSBUdSBTYW5nIGRlIG5naGkgdm9p IHRvaTogIkNvIHkga2llbiBnaSBtb2kgYmFjIGN1IGd1aSBjaG8gY2h1bmcgdG9pLCBraG9uZyBu ZW4gDQpreSB0YXAgdGhlIi4gVG9pIG5vaTogIlR1bmcgY2EgbmhhbiBndWkhIERlbiBuaHUgRGFp IHR1b25nIFZvIE5ndXllbiBHaWFwIGd1aSBiYW8gbmhpZXUga2llbiBuZ2hpIGNhIG5oYW4gbWEg Y2FjIHZpIGxhbmggZGFvIGNvbiBraG9uZyBjaHUgeSBkZW4sIGtob25nIGhvaSBhbSwgDQptb2kg Y2h1bmcgdG9pIGd1aSByaWVuZyBsZSB0aGkgY28gbmdoaWEgbHkgZ2kuIENodW5nIHRvaSBidWMg eHVjLCBwaGFpIGt5IHRhcCB0aGUgbWF5IHJhIGNhYyB2aSANCmNvbiBjaHUgeSBkZW4iLiBEb25n IGNoaSBUdSBTYW5nIGtob25nIG5vaSBnaS4NCk5oYW4gZGlwIHRvaSBob2kgZG9uZyBjaGkgVHJ1 b25nIFRhbiBTYW5nIHZlIGJhbiBLaWVuIG5naGkgbWEgZG9uZyBjaGkgRG9uZyBTeSANCk5ndXll biB2YSB0b2kgZ3VpIEJDVCBsYSBraGkgRGFpIHR1b25nIFtWbyBOZ3V5ZW4gR2lhcF0gcXVhIGRv aSBwaGFpIGxhbSBRdW9jIHRhbmcgDQpkb2kgdm9pIGRvbmcgY2hpIGF5LCBraG9uZyBiaWV0IEJD VCBjbyBiYW4ga2hvbmc/IERvbmcgY2hpIFR1IFNhbmcgbm9pOiAiTmd1b2kgaGF5IA0KY29uIHNv bmcgYmFuIGtob25nIHRpZW4sIGN1bmcgY28gdGhlIHRpZW4gaGFuaCBRdW9jIHRhbmcgZG9pIHZv aSBtb3Qgdmkga2hhaSBxdW9jIGNvbmcgDQp0aGFuIi4gVG9pIGN1bmcgbmV1LCBsYXUgbmF5IG1h dCBkYW4gY2h1LCBkZSBuZ2hpIHF1YSB0cmluaCBjaHVhbiBiaSB2YSB0aWVuIGhhbmggRGFpIGhv aSBYSSBjYW4gdGh1YyBoaWVuIGRhbiBjaHUuIERvbmcgY2hpIG5vaSBzZSB0aHVjIGhpZW4gZGFu IGNodS4gTmd1eWVuIENoaSBWaW5oIGxvbmcgDQpoYW5oLCBtaW5oIGRheSB0b2kgbG9pLCBkYXQg ZGFpLCBuaGEgY3VhIHF1YSBuaGlldSBraG9uZyB0aGUgZHVhIHZhbyBUcnVuZyB1b25nIGR1b2Mu IA0KTmV1IGR1YSB2YW8gbGEgdGFpIGhhaSBjaG8gZGF0IG51b2MgdmEga2hvbmcgY29uIGdpIGxh IERhbmcgQ29uZyBzYW4gbnVhLiBEb25nIGNoaSBUdSBTYW5nIGtob25nIG5vaSBnaS4gDQpUb2kg dGllbiBkb25nIGNoaSBheSByYSB2ZSwgZG9uZyBjaGkgY3VpIGNoYW8gcmF0IGxlIGRvLi8uDQpO VFYgDQoNCmh0dHA6Ly9kYW5sdWFudm4uYmxvZ3Nwb3QuY29tLzIwMTAvMTEvcGhlLW5ndXllbi10 YW4tZHVuZy1waGFuLWNvbmcuaHRtbCAxMy8xMS8yMDEwIDQ6MzUgUE0gDQoNClRvbmcgYmkgdGh1 OiBNb3Qgc28gdmkgTGFvIHRoYW5oIHRvIGNhbyBUcnVvbmcgVGFuIFNhbmcgDQoNCkxUUzogVGhv aSBnaWFuIGdhbiBkYXkgdXkgdGluIGN1YSBvbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBn aWFtIHN1dCBuaGFuaCANCmNob25nLCBiYW8gY2hpIGxpZW4gdHVjIGR1YSByYSBuaHVuZyB2dSB0 aGFtIG5odW5nLCBtb2MgbmdvYWMsIHZpIHBoYW0gZGFvIGR1YyBob2FjIA0Kdm8gdHJhY2ggbmhp ZW0gdHJvbmcgZG8gb25nIE5ndXllbiBUYW4gRHVuZyBpdCBuaGlldSBjbyB0cmFjaCBuaGllbS4g RGllbiBoaW5oIGxhIHZ1IA0KY2hvIFRydW5nIFF1b2Mga2hhaSB0aGFjIGJvLXhpdCBUYXkgTmd1 eWVuLCBtYSBiYXQgY2hhcCBzdSBwaGFuIGRvaSBkb25nIHRoYW5oIGN1YSANCmNhIG51b2MsIG9u ZyBOZ3V5ZW4gVGFuIER1bmcgdmFuIHRpZXAgdHVjIGNobyB4dWMgdGllbiB2YSBjb24gbmhhbiBt YW5oIHJhbmcgZG8gbGEgDQptb3QgdHJvbmcgbmh1bmcgY2h1IHRydW9uZyBsb24gY3VhIGRhbmcg dmEgbmhhIG51b2M7IHZ1IHRvIGhvcCBWaW5hc2hpbiBsYW0gdG9uIHRoYXQgDQogaGFuZyBjaHVj IG5nYW4gdHkgZG9uZyB0cm9uZyBkbyBybyByYW5nIGxhIG9uZyBOZ3V5ZW4gVGFuIER1bmcgYmFv IGNoZTsgdnUgRHVvbmcgDQpTYXQgQ2FvIFRvYyB0cm9uZyBkbyBvbmcgTmd1eWVuIFRhbiBEdW5n IHZhIGNoaW5oIHBodSBjdWEgb25nIGNodW5nIHRvIHN1IGNhdSB0aGEgDQpjdW5nIGN1YyBraGkg ZHVhIHJhIFF1b2MgSG9pIGJpZXUgcXV5ZXQgbW90IGR1IGFuIHZvaSBraW5oIHBoaSBnYW4gNjAg dHkgVVNELCB0dW9uZyANCmR1b25nIHZvaSAyLzMgdG9uZyBzYW4gbHVvbmcgcXVvYyBnaWEsIG1h IGtob25nIGNvIG1vdCBuZ2hpZW4gY3V1IG5naGllbSBjaGluaCBuYW8uIA0KDQpUaW5oIGhpbmgg bmd1eSBraWNoIGNobyBvbmcgTmd1eWVuIFRhbiBEdW5nIGRlbiBub2kgdHUgdGhhbmcgOSB2dWEg cXVhIGNoaW5oIG9uZyBMZSANCkR1YyBBbmgsIGR1IGRhIG5nb2FpIDkwIHR1b2ksIHBoYWkgZGlj aCB0aGFuIHZhbiBkb25nIGNhYyBkYW5nIHZpZW4gY28gdXkgdGluIGRlIGhvIHVuZyANCmhvIG9u ZyBOZ3V5ZW4gVGFuIER1bmcuIFR1eSBuaGllbiBvbmcgTGUgRHVjIEFuaCBjdW5nIGRhIGtob25n IHRoZSBkYW8gbmd1b2MgDQpkdW9jIHRpbmggdGhlIHZpIGJhbyBjaGkgdHJvbmcgbnVvYyB0aWVw IHR1YyBkdWEgcmEgbmh1bmcgc3Uga2llbiBiYXQgbG9pIGNobyBvbmcgTmd1eWVuIA0KVGFuIER1 bmcsIG1hdCBraGFjIHRyZW4gY2FjIHRyYW5nIGJhbyBkaWVuIHR1IGRvYyBsYXAgdmEgY2FjIGJs b2cgY2EgbmhhbiBuaHVuZyB0byBnaWFjIA0KdmEgbGVuIGFuIG9uZyBOZ3V5ZW4gVGFuIER1bmcg Y3VuZyBnaWEgdGFuZy4gTmd1b2kgdGEgdHUgaG9pOiAiTGlldSBjb24gYWkgYmVuaCB2dWMgDQpO Z3V5ZW4gVGFuIER1bmcgbnVhIGtob25nPyINCg0KQ28sIG5odSBiYSB0aHUgbmdvIHNhdSBkYXkg Y2h1bmcgdG8uIA0KDQpWYSBuaHVuZyBuZ3VvaSB1bmcgaG8gb25nIER1bmcgcGhhbiBjb25nIGJh bmcgbmh1bmcgdGh1IHRvIGdpYWMgY2FjIGRvaSB0aHUgY3VhIG9uZyANCk5ndXllbiBUYW4gRHVu ZywgbmhhdCBsYSBvbmcgVHJ1b25nIFRhbiBTYW5nIHZhIG9uZyBOZ3V5ZW4gUGh1IFRyb25nLiBD YWMgdGh1IG5heSANCmR1b2MgcGhvIGJpZW4gYmFuZyBjYWNoIHRydXllbiB0YXkgdHJvbmcgbm9p IGJvIGRhbmcuIFBoZSBvbmcgTmd1eWVuIFRhbiBEdW5nIGNvIGxlIA0KY2hvIHJhbmcgc3UgdGhh bmcgYmFpIGR1b2MgcXV5ZXQgZGluaCBjaHUgeWV1IHRyb25nIG5vaSBibyBkYW5nIGNodSBraG9u ZyBwaGFpIHF1YSBkdSBsdWFuLg0KDQotIFRodSB0aHUgbmhhdCBsYSB0aHUgY3VhIG9uZyBUcmFu IER1YyBRdWUgZ3VpIEJvIENoaW5oIFRyaSwgQmFuIEJpIFRodSB2YSBCYW4gQ2hhcCANCkhhbmgg VHJ1bmcgVW9uZyBEYW5nLiBPbmcgVHJhbiBEdWMgUXVlIHR1IGdpb2kgdGhpZXUgbmh1IG1vdCBk YW5nIHZpZW4gZ2lhIGR1IGRhIA0KdmUgaHV1LCBuaHVuZyB2YW4gY29uIHV1IHR1IHRvaSBzdSBz b25nIGNvbiBjdWEgZGFuZy4gT25nIHRvIGdpYWMgb25nIE5vbmcgRHVjIE1hbmggDQpsYSB0aGFt IG5odW5nLCBvbmcgVHJ1b25nIFRhbiBTYW5nIHRodSBkb2FuLCBvbmcgSG8gRHVjIFZpZXQgYW4g Y2hvaSB0cmFjIHRhbmcsIG9uZyANCk5ndXllbiBQaHUgVHJvbmcgYW0gbXV1IGR1bmcgUXVvYyBI b2kgZGUgY2hvbmcgZGFuZy4gRGlldSBkYWMgc2FjIG1hIHRodSBuYXkgdm8gDQp0aW5oIG5vaSBs ZW4gbGEgcXVhbiBoZSBtYXQgdGhpZXQgZ2l1YSBjYWMgbGFuaCB0dSBjb25nIHNhbiB2YSBkYW0g bWFmaWEgdHUgc2FuIGRvLiBPbmcgDQpOb25nIER1YyBNYW5oIGR1bmcgbmh1bmcgdGF5IHR1IHNh biBkbyBUaGFuZyBNdW90LCBUdW5nIFNhIExvbmcgbGFtIHRheSBjaGFuLCANCm9uZyBUcnVvbmcg VGFuIFNhbmcgZHVuZyBUYW0gVGFuIFRhbywgbW90IHR1IHNhbiBkbyBraGFjLCB2YW4gZG9uZyBn aXVwIG1pbmggdHJhbmggDQpjaHVjIFRvbmcgQmkgdGh1LiBIaW5oIG5odSBjaGkgY28gb25nIE5n dXllbiBUYW4gRHVuZyBsYSBuZ3VvaSB4dW5nIGRhbmcuIA0KDQotIFRodSB0aHUgaGFpIGxhIHRo dSBjdWEgb25nIFRyYW4gTWluaCBIbyBndWkgVG9uZyBCaSB0aHUgTm9uZyBEdWMgTWFuaCwgQm8g Q2hpbmggDQpUcmkgdmEgImNhYyBkL2MgbGFvIHRoYW5oIHRydSBjb3QiPyBDaGFjIGNoaW5oIG9u ZyBUcmFuIE1pbmggSG8gY3VuZyBsYSBtb3QgImQvYyBsYW8gDQp0aGFuaCB0cnUgY290IiB2aSBk YSB0dW5nICJuZ29pIG5vaSBjaHV5ZW4gdm9pIG5oYXUiIHZvaSBUb25nIEJpIHRodS4gT25nIFRy YW4gTWluaCBIbyANCm5oYWMgbGFpIG5odW5nIHNhaSBwaGFtIGN1YSBvbmcgVHJ1b25nIFRhbiBT YW5nIHRyb25nIHF1YSBraHUga2hpIGNvbiBjb25nIHRhYyB0YWkgDQpTYWlnb246IGNhdSBrZXQg dm9pIHRydW0gYmFuZyBkYW5nIE5hbSBDYW0sIGFuIHRpZW4gZGUgYmFvIGNoZSBuZ3VvaSBIb2Es IGVwIGRhbSB2LnYuIA0KTmdoaWVtIHRyb25nIGhvbiBsYSBkYW5nIGRhbmggcGhhIGNoaW5oIHBo dSB2YSBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIGJhbmcgDQpjYWNoIGR1bmcgdGh1IGhhIE5n dXllbiBIdXUgSGllbiwgY2F1IGtldCB2b2kgImJvbiBwaGFuIGRvbmcsIHRyaSB0aHVjIGJhdCBt YW4sIGNvbmcgDQpsdWFuLCBjb25nIGN1IGN1YSBkYW5nIiBkZSAiZGFuaCBUaHUgdHVvbmciLiBO Z29haSByYSBvbmcgVHJ1b25nIFRhbiBTYW5nIGNvbiBiaSBjYW8gDQpidW9jIGRhIGR1YSByYSB2 dSBiZSBib2kgVmluYXNoaW4gdmEgZGlldSBkb25nIGJhbyBjaGkgdHJpZXQgaGEgb25nIE5ndXll biBUYW4gRHVuZyANCnRydW9jIG5nYXkgZGFpIGhvaTsgZHVuZyBib24gdHUgc2FuIHhhIGhvaSBk ZW4gVGhhbmcgTXVvdCAodHVuZyBiaSB0dSB2ZSB0b2kgZ2lhbiBsYW4sIA0KaGllcCBkYW0pLCBI dW5nIEtlbiwgVGFtIFRhbiBUYW8gZGUgdmFuIGRvbmcgY2hvIG1pbmggbGFtIFRvbmcgQmkgdGh1 LiBPbmcgDQpUcnVvbmcgVGFuIFNhbmcgYmkgbW8gdGEgbmh1IGxhIG5ndW9pICJyYXQgZGUgdGll biwgY28gaG9pIHZhIGhlbiBtb24iLiBPbmcgTmd1eWVuIA0KVmFuIENoaSwgVXkgVmllbiBCbyBD aGluaCBUcmksIFRydW9uZyBiYW4gS2llbSBUcmEgVHJ1bmcgVW9uZyBiaSB0byBnaWFjIGxhIGNh dSBrZXQgDQp2b2kgb25nIFRydW9uZyBUYW4gU2FuZyBkZSAiU2FuZyBsZW4sIENoaSBvIGxhaSB0 aGVtIGtob2EgbnVhIi4NCg0KLSBUaHUgdGh1IGJhIGxhIHRodSBjdWEgb25nIExlIFZhbiBMeSwg Y3VuZyBtb3QgZGFuZyB2aWVuIGxhbyB0aGFuaCwgZ3VpIEJvIENoaW5oIFRyaSwgDQpCYW4gQ2hh cCBIYW5oIFRydW5nIFVvbmcsIHZhIGNhYyB2aSBsYW8gdGhhbmggY3VhIHRydW5nIHVvbmcgZGFu Zy4gT25nIExlIFZhbiBMeSANCmRhIGtpY2ggaGFpIGRvaSB0aHUgY3VhIG9uZyBOZ3V5ZW4gVGFu IER1bmcgdHJvbmcgY3VvYyB0cmFuaCBnaWFuaCBjaHVjIFRvbmcgQmkgdGh1OiANCk5ndXllbiBQ aHUgVHJvbmcgdmEgVHJ1b25nIFRhbiBTYW5nLiBIYWkgb25nIFRyb25nIHZhIFNhbmcgYmkgdG8g Z2lhYyBsYSBjYXUga2V0IHZvaSANCm5oYXUgZGUgdmFuIGRvbmcgUXVvYyBIb2kgYmFjIGJvIGR1 IGFuIER1b25nIFNhdCBDYW8gVG9jIG1hIGRhbmcgdmEgY2hpbmggcGh1IGRhIA0KdGhvbmcgcXVh LiBOaHUgdGhlLCB0aGVvIG9uZyBMZSBWYW4gTHkgbGEgInZvIG1hdCBkYW5nIi4gT25nIE5ndXll biBQaHUgVHJvbmcgYmkgY29pIA0KbGEgY28gdHJhY2ggbmhpZW0gbG9uIG5oYXQgdHJvbmcgdnUg bmF5LiBOZ29haSByYSBvbmcgTmd1eWVuIFBodSBUcm9uZyBjb24gYmkgcGhlIHBoYW4gDQpsYSBu Z3VvaSAibHkgbHVhbiBsb2kgdGhvaSBraG9uZyBwaHUgaG9wIHZvaSBraW5oIHRlIHRyaSB0aHVj IHZhIGNvIGNoZSBraW5oIHRlIHRoaSB0cnVvbmciLCANCm5oYW4gdGh1YyBub25nIGNhbi4NCg0K VGh1IGN1YSBvbmcgTGUgVmFuIEx5IGNodSB5ZXUgbmhhbSB0YW4gY29uZyBvbmcgVHJ1b25nIFRh biBTYW5nLiBPbmcgTGUgVmFuIEx5IA0KY3VuZyBuaGFjIGxhaSBuaHVuZyBjaHV5ZW4gYmUgYm9p IHRyb25nIHF1YSBraHUgY3VhIG9uZyBUcnVvbmcgVGFuIFNhbmcgbmh1IHRyb25nIA0KaGFpIHRo dSBjdWEgY2FjIG9uZyBUcmFuIER1YyBRdWUgdmEgVHJhbiBNaW5oIEhvLiBPbmcgVHJ1b25nIFRh biBTYW5nIGN1bmcgYmkgdG8gDQpnaWFjIGRhIGR1bmcgdnUgVmluYXNoaW4gZGUgdmFuIGRvbmcg YmFvIGNoaSB0YW4gY29uZyBvbmcgTmd1eWVuIFRhbiBEdW5nLiBOZ29haSByYSANCnZlIG1hdCBj aGluaCB0cmkgb25nIFRydW9uZyBUYW4gU2FuZyBjb24gYmkgYnVvYyBtb3QgdG9pIGtoYWM6IGto dXllbiBraGljaCBuaHVuZyANCnBoYW4gdHUgInBoYW4gZG9uZyBjaG9uZyBkYW5nIiBkZSBsYW0g bW90ICJCb3JpcyBZZWx0c2luIFZpZXQgTmFtIi4gDQoNClF1YSBuaHVuZyB0aHUgbmF5IG5odW5n IG5ndW9pIGJlbmggdnVjIG9uZyBOZ3V5ZW4gVGFuIER1bmcgdm8gdGluaCBtbyB0YSBvbmcgDQpE dW5nIG5odSBtb3Qgbmd1b2kgYmFvIHRodS4gUGhhaSBjaGFuZyBjaGluaCB2aSBuaHVuZyBiZW5o IHZ1YyBuaHUgdmF5IG1hIHV5IHRpbiBjdWEgDQpvbmcgTmd1eWVuIFRhbiBEdW5nIG5nYXkgY2Fu ZyBzdXQgZ2lhbT8gTmd1b2kgdGEgY3VuZyBraG9uZyBraG9pIG5nYWMgbmhpZW4ga2hpIA0KY28g dGFjIGdpYSBjb2kgdmllYyBsYW0gcm8gdnUgYmUgYm9pIFZpbmFzaGluIHRydW9jIGNvbmcgbHVh biBsYSBtb3QgdG9pIGRvaSB2b2kgZGFuZy4gDQoNCk1vdCBjaGkgdGlldDogY28gaGFpIHRhYyBn aWEgbmhhYyBsYWkgdnUgYmEgSG9uZyB2b2kgY3VuZyBtb3QgY2FjaCB0aHVhdCB0aGVvIGRvIG9u ZyANClRydW9uZyBUYW4gU2FuZyBkYSBlcCBkYW0gYmEgSG9uZyB2YSB2aSBiaSB0dSBraHVvYyBk YSBibyB0dSBiYSBuYXkuIFRoZW8gbW90IGhvIHNvIA0KZGlldSB0cmEgdHJpbmggbGVuIFRvbmcg QmkgdGh1IChzYXUgZG9uIHRvIGdpYWMgY3VhIGNob25nIGJhIEhvbmcpIG1hIGNodW5nIHRvaSBj byBkdW9jIA0KdGhpIHN1IHZpZWMgbGFpIGtoYWM6IHRyb25nIGJ1b2kgbGllbiBob2FuIGRvLCBi YSBIb25nIHRodWFuIHRpbmggbmh1bmcgb25nIFRydW9uZyBUYW4gDQpTYW5nIChsdWMgZG8gbGEg QmkgdGh1IFRoYW5oIHV5IFNhaSBHb24pIGNoZSBiYSBIb25nIGdpYSwgdmEgZ29pIGRpZW4gdGhv YWkgYmF0IENvbmcgdHkgDQpWaWV0bmFtIEFpcmxpbmVzIGR1YSBzYW5nIGNobyBvbmcgbW90IHRp ZXAgdmllbiBoYW5nIGtob25nIHRyZSBkZXAuIA0KDQoqKioNCkxhIHRodSB0aHUgbmhhdCANClRy YW4gRHVjIFF1ZQ0KDQpDT05HIEhPQSBYQSBIT0kgQ0hVIE5HSElBIFZJRVQgTkFNDQpEb2MgbGFw IC0gVHUgZG8gLSBIYW5oIHBodWMNCg0KSGEgTm9pLCBuZ2F5IDI1IHRoYW5nIDA2IG5hbSAyMDEw DQoNCktpbmggZ3VpOiANCi0gQm8gQ2hpbmggVHJpIA0KLSBCYW4gQmkgVGh1IFRydW5nIFVvbmcg RGFuZw0KLSBDYWMgVXkgVmllbiBCYW4gQ2hhcCBIYW5oIFRydW5nIFVvbmcgS2hvYSAxMA0KDQpO aHUgdGh1IGd1aSBCbyBDaGluaCBUcmkgLSBCYW4gQmkgVGh1IFRydW5nIFVvbmcgRGFuZyB2YSBj YWMgVXkgVmllbiBUcnVuZyBVb25nIA0KS2hvYSAxMCBuZ2F5IDIyIHRoYW5nIDQgbmFtIDIwMTAs IGR1IGxhIGNhbiBibyBkYSBuZ2hpIGNhYyBjaHVjIGRhbmggY29uZyB0YWMgdHJvbmcgDQpiaWVu IGNoZSBuaGEgbnVvYywgbmhhbiB0aHVjIHJvLCBkYXkgZHUgdHJhY2ggbmhpZW0gdmEgbmdoaWEg dnUgbmd1b2kgZGFuZyB2aWVuIGdoaSANCnRyb25nIGRpZXUgbGUgRGFuZywgbmVuIHRvaSBkYSB0 aGFtIGdpYSBkb25nIGdvcCBtb3Qgc28geSBraWVuIHZlIGNvbmcgdGFjIG5oYW4gc3UgRGFpIA0K SG9pIERhaSBCaWV1IFRvYW4gUXVvYyBjdWEgRGFuZyBzYXAgZGVuIChEYWkgSG9pIDExKS4gRGVu IG5heSwgdHJvbmcga2hpIGNodWEgbmhhbiANCmR1b2MgaG9pIGFtIHR1IGNhYyBkb25nIGNoaSwg bGFpIGNvIG5odW5nIGNodXllbiB0b2kgZHVvYyBuZ2hlIGtlIGxhaSB2YSB0cnVjIHRpZXAgZHVv YyANCm5naGUsIGtoaWVuIGNodW5nIHRvaSB0aHVjIHN1IGJhbiBraG9hbiBsbyBsYW5nLg0KDQpW dWEgcXVhLCB0cm9uZyBtb3QgYnVvaSBsaWVuIGhvYW4gY2FjIGNoYXUgdHJvbmcgbmhhIHRvIGNo dWMsIHRvaSB2byB0aW5oIGR1b2MgYmlldCBtb3QgDQphbmggY28gdGVuIGxhIFRoYW5nIE11b3Qg dHJvbmcgYnVvaSBhbiB1b25nIGtob2UgbGEgbmd1b2kgdGhhbiB0aW4gbmhhdCBjdWEgZG9uZyBj aGkgDQpUb25nIEJpIHRodSBOb25nIER1YyBNYW5oIG5lbiBiYXQgY3UgdmllYyBnaSBhbmggdGEg Y3VuZyBsYW0gZHVvYyBoZXQuIE5nb2FpIHRydSANCmRvbmcgY2hpIE5vbmcgRHVjIE1hbmgsIGNh biBibyBjYW8gY2FwIG5hbyBjdWEgRGFuZywgbmhhIG51b2MsIGJvLCBuZ2FuaCwgZGlhIA0KcGh1 b25nLCBhbmggdGEgZGV1IGdvaSBiYW5nIHRoYW5nLCB0aGF0IGtobyBuZ2hlLiBUaGFuZyBNdW90 IG5oYWMgZGVuIGRvbmcgY2hpIER1bmcsIA0KQmkgdGh1IFZpbmggUGh1YyBkYSBkdW9jIFRoYW5n IHNhcCB4ZXAgbm9pIHZvaSAiQ3UiIHR1YyBsYSBkb25nIGNoaSBUb25nIEJpIHRodSBOb25nIA0K RHVjIE1hbmguIERvbmcgY2hpIER1YyBEYW0sIEJpIHRodSBRdWFuZyBOaW5oIGN1bmcgZHVvYyBU aGFuZyBNdW90IHNhcCB4ZXAsIA0KIkN1IiBkb25nIHkgc2FwIHRvaSBjaG8gbGFtIEJvIHRydW9u ZyBLaG9hIGhvYyB2YSBDb25nIG5naGUuIFRoYW5nIE11b3QgY29uIGJhIGhvYSANCmtlIHRlbiBu aGlldSBuZ3VvaSBvIG1vdCBzbyBibywgbmdhbmgsIGRpYSBwaHVvbmcgbmhvIFRoYW5nIGNoYXks IG1vaSBsYW4gdHUgbWF5IGNodWMgDQpuZ2hpbiBkZW4gaGFuZyB0cmFtIG5naGluIGRvIGxhIGRl IFRoYW5nIE11b3Qgc2FwIHhlcCBub2kgdm9pICJDdSIuIFRodWMgdGluaCwgYmFuIA0KZGF1IHRv aSBraG9uZyBuZ2hpIGxhIGFuaCB0YSBub2kgdGhhdCwgbmh1bmcga2hpIG5naGUgdGVuLCBjaHVj IHZ1IG5odW5nIHRlbiBuZ3VvaSBkdW9jIA0KYW5oIHRhIGtob2UgbGEgZGEgc2FwIHhlcCwga2hv ZSBydSBuZ3VvaSBuYXkgbmd1b2kga2hhYyBkaSB2b2kgIkN1IiB0YW8gbW8gdmEgaG9pIHRoYW5n IA0KY2hhdSB0b2kgbm9pIGRvIGxhIFRoYW5nIG1hIGJhbiBiZSBhbmggdGEgdGh1b25nIGdvaSBs YSBUaGFuZyBEYXUgTXVvdCwgR2lhbSBkb2MgDQpDb25nIHR5IFROSEggWGF5IER1bmcgSGFpIERh bmcgbyBIYSBOb2ksIG5ndW9pIGNvIHJhdCBuaGlldSBkYXQgZGFpLCB0YWkgc2FuIG8gSGEgDQpO b2kgdmEgY2FjIHRpbmgga2hhYywgdHVuZyBjbyB0b2kgZ2lhbiBsYW4sIGhpZXAgZGFtLCBiaSBk dWEgZGkgdHUgbyBRdWFuZyBOaW5oLCBzYXUgZHVvYyANCnZlIGxhbSBvIFBodSBUaG8sIGR1b2Mg bmd1b2kgcXVlbiBnaW9pIHRoaWV1IHZvaSBkb25nIGNoaSBOb25nIER1YyBNYW5oIGtoaSBjb24g bGFtIA0KQ2h1IHRpY2ggUXVvYyBIb2ksIHRoYW4gdGhpZXQgdm9pIGRvbmcgY2hpIE5vbmcgRHVj IE1hbmggdHJvbmcgbmhpZXUgbmFtIG5heSwgcmF0IGNvIA0KdGhlIGx1YywgbmVuIGhheSBsb2kg ZHVuZyBsYW0gdGllbiwgbmV1IHF1YSBkb25nIGNoaSBUb25nIEJpIHRodSBOb25nIER1YyBNYW5o IHF1YW4gDQpoZSBuaHUgdmF5IHRoaSBuZ3V5IHF1YSwgbGFpIG1vdCBjYXUgY2h1eWVuIGdpb25n IGNodXllbiBwaG8gbWEgUE1VMTggcXVhLiBDaGkgbW90IA0KYnVvaSBuZ2hlIFRoYW5nIE11b3Qg a2hvZSBraG9hbmcgZGEgdGhheSBuaHUgdmF5LCBuZXUgY29uIHRoZW0gYnVvaSBuYW8gbnVhLCBj aGFjIA0KY29uIGtob25nIGl0IGNodXllbi4NCg0KS2hpIGtlIHZpZWMgbmF5IGNobyBtb3Qgc28g ZG9uZyBjaGksIHRvaSBjb24gZHVvYyBjYWMgZG9uZyBjaGkgZG8gbm9pIGxhaSBraG9uZyBpdCBu Z3VvaSANCmxhICJkYWkgZ2lhIiBraG9lIGtob2FuZyBraWV1IGFuaCBUaGFuZyBNdW90LCBuaHUg YW5oIFR1bmcgU2EgTG9uZyBxdWFuIGhlIHZvaSBkb25nIA0KY2hpIE5vbmcgRHVjIE1hbmgsIGFu aCBEYW5nIFRoYW5oIFRhbSwgY29uIGdvaSBsYSBUYW0gVGFuIFRhbywgbW90IHRyb25nIG5odW5n IA0Kbmd1b2kgZ2lhdSBuaGF0IG8gbnVvYyB0YSBoaWVuIG5heSB0aHVvbmcga2hvZSBraG9hbmcg cmF0IGdhbiBndWkgdm9pIGRvbmcgY2hpIFRodW9uZyANCnRydWMgQmFuIEJpIFRodSBUcnVvbmcg VGFuIFNhbmcsIGR1b2MgYW5oIFR1IFNhbmcgZ2lhbyBjb25nIHZpZWMgdmFuIGRvbmcgY2FjIA0K ZG9hbmggbmdoaWVwIHVuZyBobyBhbmggVHUgU2FuZyBsYW0gVG9uZyBCaSB0aHUuIE5oaWV1IGR1 IGx1YW4gZ2lvaSBkb2FuaCBuZ2hpZXAgbyANCkhhIE5vaSBjdW5nIG5vaSBkb25nIGNoaSBIbyBE dWMgVmlldCBkaSBkYXUgY3VuZyBzYXkgc3VhLCBuaGF1IG5oZXQsIHRpZW4gYmFjLCBlbSB1dCwg DQp2byBjb24gY2hpIHBob2kgY3VuZyBraGFuIGRlIGxlbiBjaHVjLCBsZW4gcXV5ZW4uIEN1bmcg Y28ga2hhIG5oaWV1IGR1IGx1YW4gY2FjIGRvbmcgDQpjaGkgbGFvIHRoYW5oLCBodXUgdHJpLCBj dXUgY2hpZW4gYmluaCBiaW5oIGx1YW4sIGxvIGxhbmcsIGRhdCBjYXUgaG9pIHZlIGRvbmcgY2hp IENodSB0aWNoIA0KUXVvYyBIb2kgTmd1eWVuIFBodSBUcm9uZyBjbyBwaGFpIGdpYW8gZGlldSBo YXkga2hvbmcsIGRpZXUga2hpZW4gUXVvYyBIb2kgbHVuZyANCnR1bmcga2hhYyB4YSB0aG9pIGRv bmcgY2hpIE5ndXllbiBWYW4gQW4gbGFtIENodSB0aWNoIFF1b2MgSG9pLCBjbyBwaGFpIGRpbmgg ZG9jIGxhcCANCnZvaSBEYW5nIGRlIHRoZSBoaWVuIHZhaSB0cm8gdGltIGtpZW0gdmkgdHJpIFRv bmcgQmkgdGh1IGhheSBraG9uZy4gVG9pIGNvbiB0aGF5IGRvbmcgDQpjaGkgTmd1eWVuIFRyb25n IFZpbmggZGEgbmV1IG5oaWV1IHZlIE5ndXllbiBDaGkgVmluaCwgY2h1bmcgdG9pIGxvIGxhbSwg bGFtIHNhbyBsYWkgDQpuaHUgdGhlLg0KDQpEYXkgbGEgbmh1bmcgY2h1eWVuIHRvaSBjaGkgZHVv YyBuZ2hlLCBjYWMgZG9uZyBjaGkgY2hhYyBjdW5nIGtob25nIGNhbiBwaGFpIGhvaSB0b2ksIA0K YW5oIE5vbmcgRHVjIE1hbmggY2hpIGNhbiBjaG8gdG8gY2h1YywgY29uZyBhbiBob2kgbyBIYSBO b2kgY28gVGhhbmcgTXVvdCBoYXkgDQpraG9uZywgaG9pIGFuaCBUdSBTYW5nIGNvIGRhbiBUYW0g VGFuIFRhbyB0aW0gY2FjaCBub2kgeGF1IGNoaW5oIHBodSwgdGltIHhlbSBjaGluaCANCnBodSBj byBnaSBzYWkgZGUgZGFuaCwgZHVuZyBkYW5nIHNhdSBiYW8gY2hpIGRlIGRhbmggaGF5IGtob25n IHRoaSBjYWMgZG9uZyBjaGkgc2UgY28gDQpjYXUgdHJhIGxvaSBkYXkgZHUuDQoNCkN1b2kgY3Vu ZywgeGluIGd1aSBkZW4gQm8gQ2hpbmggVHJpIC0gQmFuIEJpIFRodSBUcnVuZyBVb25nIGxvaSBj aGFvIGtpbmggdHJvbmcgdmEgDQpjaHVjIGNhYyBkb25nIGNoaSBjdW5nIEJDSC1UVSBjaHVhbiBi aSB0b3QgbmhhdCBkZSBEYWkgaG9pIGRhaSBiaWV1IHRvYW4gcXVvYyBjdWEgDQpEYW5nIHRoYW5o IGNvbmcgdG90IGRlcC4gDQpUcmFuIER1YyBRdWUgDQoNCioqKg0KTGEgdGh1IHRodSBoYWkNClRy YW4gTWluaCBIbw0KDQpIYSBOb2ksIG5nYXkgMiAvOS8yMDEwDQoNCktpbmggZ3VpOiANCi0gRC9j IFRvbmcgQmkgdGh1IE5vbmcgRHVjIE1hbmggDQotIENhYyBkL2MgVXkgVmllbiBCbyBDaGluaCBU cmkgDQotIENhYyBkL2MgbGFvIHRoYW5oIHRydSBjb3QNCg0KVG9pIGxhIG1vdCBjYW4gYm8gZGEg bmdoaSBodXUgY28gdHVvaSBkb2ksIHR1b2kgZGFuZyB2YSB0dW9pIGNhY2ggbWFuZyBuaGlldSBo b24gZC9jLCBkYSANCm5oaWV1IGxhbiB0cmFvIGRvaSB2b2kgZC9jIG5odW5nIGNvIG5odW5nIGRp ZXUga2hvbmcgbm9pIGR1b2Mga2hpIG5nb2kgdm9pIG5oYXUgbmVuIA0KcGhhaSBjbyB0aHUgbmF5 LiBUb2kgbXVvbiB0aGFvIGx1YW4gdm9pIGQvYyB2ZSB2aWVjIHZpIHNhbyBkL2MgYmFvIGNoZSwg bmFuZyBkbyBUcnVvbmcgDQpUYW4gU2FuZz8NCg0KVG9pIGJpZXQgZC9jIHNlIG5vaSByYW5nIGQv YyBUcnVvbmcgVGFuIFNhbmcgbGEgbmd1b2kgdHJvbmcgc2FjaCwgZGFvIGR1YyBjbyBwaGFpIHZh eSANCmtob25nPw0KDQpOaHVuZyBkaWV1IHRvaSBub2kgcmEgZGF5IGxhIGNoYXQgbG9jIHR1IG5o aWV1IGQvYywgY28gZC9jIGRhIG8gdmkgdHJpIHR1IHRydSB0cmlldSBkaW5oLCBjbyANCmQvYyBu Z3V5ZW4gbGEgQm8gQ2hpbmggVHJpLCBuZ3V5ZW4gVXkgVmllbiBUcnVuZyBVb25nLCB0dW9uZyBs aW5oIHZhIGxhbyB0aGFuaCBjYWNoIA0KbWFuZy4uLg0KDQpWZSBUcnVvbmcgVGFuIFNhbmc6IGQv YyBuaG8gcmFuZyBhbmggU2FuZyBsYW0gQmkgdGh1IFRoYW5oIHV5IFRwLiBIbyBDaGkgTWluaCAN CigxOTk3LTE5OTkpIGNoaSBtb2kgMiBuYW0gbmh1bmcgc2FpIHBoYW0gbmhpZXUgdmllYywgYmkg dG8gY2FvIGN1IHRoZSBuZW4gVHJ1bmcgVW9uZyANCnBoYWkgcnV0IHJhIEhhIE5vaSBkZSBraWVt IGRpZW0sIG1hIGxvbiBuaGF0IGxhIGxpZW4gcXVhbiBkZW4gdnUgTmFtIENhbSBkYXkgdG9pIGFj IHZhIA0KdnUgYmFvIGNoZSBjaG8gbmd1b2kgSG9hIChraGkgYW5oIFNhbmcgbGFtIENodSB0aWNo IHRoYW5oIHBobykgZGUgbmhhbiB0aWVuIHZhbmcuIEFuaCANClNhbmcgbHVvbiB0byByYSB0cm9u ZyBzYWNoLCBraG9uZyBuaGFuIG5oYSBsb24sIG8gbW90IGNhbiBuaGEgbmhvLCBuaHVuZyB0aWVu IHZhbmcgdGhpIA0KbmhpZXUgaGV0IGNobyBub2ksIGJpIG1hdCBjaHVjIEJpIHRodSBkdWEgcmEg SGEgTm9pIG1vaSBuZ3VvaSBuZ2hpIHJhbmcgVHJ1b25nIFRhbiANClNhbmcgc2UgYmkga3kgbHVh dCwgZHVhIHJhIGtob2kgQm8gQ2hpbmggVHJpIG5odW5nIHJvaSBkL2MgVG9uZyBCaSB0aHUgYmFv IGNoZSwgZC9jIGNvbiANCnZhbiBkb25nIGNhIFRydW5nIFF1b2MgYmFvIGNoZSBjaG8gVHJ1b25n IFRhbiBTYW5nIG5lbiBjaGkgYmkga2hpZW4gdHJhY2ggcm9pIHNhdSBkbyANCmxlbiBjaHVjLg0K DQpEL2MgY3VuZyBkYSBuaGFuIGR1b2MgdG8gY2FvIGN1YSB2byBjaG9uZyBjaGkgSG9uZyAtIEdp YW0gZG9jIENvbmcgdHkgWHVhdCBOaGFwIA0KS2hhdSBRdWFuIDMgdG8gY2FvIGhhbmggdmkgdGhp ZXUgZGFvIGR1YyBjdWEgVHJ1b25nIFRhbiBTYW5nLCBtb3QgQmkgdGh1IFRoYW5oIHV5IGVwIA0K bW90IGdpYW0gZG9jIG51IHBoYWkgbmd1IHZvaSBtaW5oLCBkaSBTaW5nYXBvcmUgZGUgY3VuZyBw aHVuZyB2YSBsYW0gZ2FpIGJhbyBxdWEgZGVtIA0KY2hvIG1pbmgsIG5ndW9pIHRhIGtob25nIGNo aXUgdGhpIHJhIGxlbmggY29uZyBhbiBiYXQgYm8gdHUuIFZpIHBoYW0gZGFvIGR1YyBuaHUgdmF5 IA0KbWEgZC9jIHZhbiBiYW8gdmUgbGEgY2FpIGxlIGdpPw0KDQpEbyBjaGkgbGEgdmFpIGNodXll biBraG9uZyB0aGUgbmFvIHF1ZW4ga2hpIFRydW9uZyBUYW4gU2FuZyBjb24gbyB0aGFuaCBwaG8u DQoNCkNvbiBiYXkgZ2lvIHRoaSBzYW8/IFRydW9uZyBUYW4gU2FuZyBsdW9uIGNvIGJvIG1heSBi YW8gdmF5IGNoaW5oIHBodS4gRGlldSBuYXkgZGEgDQpjbyB0dSB0aG9pIGQvYyBQaGFuIFZhbiBL aGFpIGxhbSBUaHUgdHVvbmcsIGNhbmcgdmUgc2F1IGNhbmcgcm8gaG9uLiBEYWMgYmlldCBoYWkg bmFtIA0KMjAwOSB2YSAyMDEwIG5heSBzYXAgdG9pIGRhaSBob2kgbmVuIFRydW9uZyBUYW4gU2Fu ZyBjaGkgZGFvIHRhbiBjb25nIHRvYW4gZGllbi4gVG9pIA0KZHVuZyBjaHUgdG9hbiBkaWVuIG8g ZGF5IGRlIG5vaSByYW5nIHZpZWMgdGFuIGNvbmcgVGh1IHR1b25nIGxhIGNvIGtlIGhvYWNoLCBj byBtdXUgDQptbywgY28gdG8gY2h1Yy4gQW5oIFNhbmcgZHVuZyBjYSBiYW4gdGF5IGRpY2gsIGNh IGxvYWkgdHJpIHRodWMgYmF0IG1hbiwgZHVuZyBjYSBjb25nIA0KbHVhbiB2YSBjb25nIGN1IGN1 YSBkYW5nIGRlIGRhbmggVGh1IHR1b25nLiBEZSBsYW0gZ2k/IFJvIHJhbmcgbGEgZGUgbGF0IGRv IHZhIGdpYW5oIA0KZ2hlLiBDbyBkdW5nIGtob25nIGQvYyBUb25nIEJpIHRodT8gTmd1eWVuIEh1 dSBIaWVuIG1vdCBwaGFuIHR1IHRoYSBob2EgbmF5IGJpIGtoYWkgDQp0cnUga2hvaSBkYW5nIGRh IGtldCBub2kgVHJ1b25nIFRhbiBTYW5nIHZvaSBib24gcGhhbiBkb25nIFRyYW4gSHV5bmggRHV5 IFRodWMuIA0KVHJ1b25nIFRhbiBTYW5nIGRhIHlldSBjYXUgYmFuZyB2YW4gYmFuIGR1YSBOZ3V5 ZW4gSHV1IEhpZW4gbGFtIEN1YyB0cnVvbmcgQm8gDQpCdXUgQ2hpbmggVmllbiBUaG9uZyBkZSBw aHUgdHJhY2ggY2FjIGRlIGFuIGxvbiBjdWEgbmdhbiBoYW5nIHRoZSBnaW9pIChXQikuIFRydW9u ZyANClRhbiBTYW5nIGNvIHkgZG8gZ2kgdmEgdHJhY2ggbmhpZW0gbmh1IHRoZSBuYW8gdHJ1b2Mg dmllYyBsYW0gbmF5PyBOZ3V5ZW4gSHV1IEhpZW4gDQp0dW5nIG5vaTogIlRydW9uZyBUYW4gU2Fu ZyBsYSBCb3JpcyBZZWx0c2luIGN1YSBWaWV0IE5hbSIsICJsYSBtaW5oIGNodSBjdWEgdGhvaSBk YWkiLCANCmNvIHBoYWkgdmF5IGtob25nIGQvYyBUb25nIEJpIHRodT8NCg0KTW90IHZpZWMgbW9p IG5oYXQgdHJvbmcgaGFuZyBsb2F0IHZpZWMgVHJ1b25nIFRhbiBTYW5nIGxhcCByYSBkZSBkYW5o IFRodSB0dW9uZywgZGFuaCANCmNoaW5oIHBodSBsYSB2dSBWaW5hc2hpbi4gRC9jIG5naGkgbGFp IHhlbSB2aSBzYW8gbGFpIGNobyBraWVtIHRyYSBWaW5hc2hpbiBraGkgY2hpIGNvIDYgDQp0aGFu ZyBudWEgbGEgZGFpIGhvaSBkYW5nIHRvYW4gcXVvYy4gVmEgbG8gYmljaCB0aGF5IFV5IEJhbiBL aWVtIFRyYSB2dWEgbGFtIHhvbmcgDQpjaHVhIGJhbyBjYW8gQm8gQ2hpbmggVHJpLCBjaHVhIGNv IGtldCBsdWFuIGN1b2kgY3VuZyB0aGkgVHJ1b25nIFRhbiBTYW5nIGRhIGNobyBIYWkgDQoodGh1 IGt5IGN1YSBhbmggU2FuZykgZ29pIG5nYXkgdGhvbmcgdGluIGNobyB0b25nIGJpZW4gdGFwIGNh YyBiYW8gbG9uLCByb2kgdHJ1YyB0aWVwIGdvaSANCmRpZW4gdGhvYWkgY2hvIGhvIHlldSBjYXUg cGhhaSBkdWEgbGVuIGJhbyB0cnVvYyBuZ2F5IDEzLzcvMjAxMCBuaGFtIGdheSBhcCBsdWMgdHJ1 b2MgDQpjdW9jIGhvcCBCbyBDaGluaCBUcmkgbmdoZSBVeSBCYW4gS2llbSBUcmEgYmFvIGNhby4g VG9pIHRpbSBoaWV1IGR1b2MgYmlldCBUcnVvbmcgDQpUYW4gU2FuZyBkYSBrZXQgdm9pIGNodSBu aGllbSBVeSBCYW4gS2llbSBUcmEgTmd1eWVuIFZhbiBDaGkgZGUgInRoYW4gdG9jIiBkdW5nIA0K VmluYXNoaW4gZGFuaCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nLiBIbyB0aG9hIHRodWFuIG5o YXUgIlNhbmcgbGVuLCBDaGkgbyBsYWkgDQp0aGVtIGtob2EgbnVhIi4gTmdheSAzMS83LzIwMTAg Qm8gQ2hpbmggVHJpIGRhIGhvcCB2YSBjbyBrZXQgbHVhbiB2ZSB2dSBWaW5hc2hpbiByYXQgDQpy byByYW5nIHZhIGhvYW4gdG9hbiBraGFjIHZvaSBub2kgaGFtIGNhYyBiYWkgYmFvIG1hIFRydW9u ZyBUYW4gU2FuZyBkYSBjaGkgZGFvLg0KDQpEL2MgVG9uZyBCaSB0aHUgeGVtIG5odSB2YXkgY28g dmkgcGhhbSBuZ3V5ZW4gdGFjIGRhbmcga2hvbmc/IENvIHBoYWkgY2FjaCBoYW5oIHh1IA0KY3Vh IGRhbmcgdGEga2hvbmc/IFZhIFRydW9uZyBUYW4gU2FuZyBjbyBiaWVuIGNvbmcgY3UgY3VhIGRh bmcsIGJpZW4gY29uZyBsdWFuIHRoYW5oIA0KY29uZyBjdSByaWVuZyBjdWEgbWluaCBraG9uZz8N Cg0KR2FuIGRheSB0b2kgY28gZG9jIGR1b2MgdGh1IGN1YSBvbmcgVHJhbiBEdWMgUXVlLCBtb3Qg Y2FuIGJvIHRoYW0gZ2lhIHR1IGtoYW5nIGNoaWVuIA0KY2hvbmcgdGh1YyBkYW4gUGhhcDogTmV1 IHZpZWMgRGFuZyBUaGFuaCBUYW0gKFRhbiBUYW8pIGR1bmcgdGllbiBkaSB2YW4gZG9uZyANClRy dW9uZyBUYW4gU2FuZyBsYW0gVG9uZyBCaSB0aHUgdmEgZHUgbHVhbiBIYSBOb2kgY2FuZyB4b24g eGFvIHZvaSBuaHVuZyBjYWkgdGVuIA0Kbmh1IEh1bmcgS2VuLCBUaGFuZyBNdW90LCBuaHVuZyBk b2FuaCBuZ2hpZXAgZ2lhdSBjbyBuaHVuZyByYXQgeGEgaG9pIGRlbiBsYSBkZSB0dSANCmN1YSBU b25nIEJpIHRodSwgY3VhIFRydW9uZyBUYW4gU2FuZyBkYW5nIHR1bmcgdGllbiBkZSBjaGF5IGdo ZSBjaG8gVHJ1b25nIFRhbiBTYW5nLg0KDQpDaHV5ZW4gdmUgVHJ1b25nIFRhbiBTYW5nIGRhbmgg Y2hpbmggcGh1IGNvbiBkYWkgZGFpLCBuaHVuZyBjaGkgY2FuIHhlbSBuaHUgdmF5IA0KY3VuZyBk YSBybyByb2kuIFRvaSBraG9uZyBwaGFpIGxhIGhvYSBzaSBuaHVuZyBuaHVuZyBnaSBkYSBuZXUg Y28gdGhlIGxhIG1vdCBidWMgdHJhbmggDQpwaGFjIGhvYSBzYWMgbmV0IHZlIFRydW9uZyBUYW4g U2FuZywgdm9pIHRhdCBjYSBiYW4gY2hhdCByYXQgZGUgdGllbiwgY28gaG9pIHZhIGhlbiBtb24u IA0KTW90IGNvbiBuZ3VvaSBuaHUgdmF5IGNvIHRoZSBsYSBkYW5nIHZpZW4gY29uZyBzYW4ga2hv bmc/IFRvaSBkZSBuZ2hpIGQvYyBUb25nIEJpIHRodSANCnBoYWkgdGhhdCBuZ2hpZW0gdHVjLCBj b24gbW90IG5nYXkgZ2l1IGNodWMgVG9uZyBCaSB0aHUsIGQvYyBjb24gcGhhaSBuZ2hpZW0gdHVj IGRlIA0KeGVtIHhldCB2YSBjbyBiaWVuIHBoYXAgeHUgbHkgdmkgc3UgdG9uIHZpbmggY3VhIGRh bmcgdmEgY3VhIGRhbiB0b2MuIEQvYyBsYW0gZHVvYyB0aGkgDQpraGkgZC9jIG5naGkgY2h1bmcg dG9pIGNvbiBuaG8gZC9jLCBuZXUgZC9jIGxhbSBuZ28gdGhpIHNhdSBuYXkgZHVuZyBuZW4gZ2Fw IGxvcCB0aWVuIGJvaSANCmNodW5nIHRvaS4gDQoNCkNoYW8gZC9jLA0KVHJhbiBNaW5oIEhvDQoo SGEgTm9pKQ0KDQoqKioqDQpMYSB0aHUgdGh1IGJhDQpMZSBWYW4gTHkNCg0KSGEgTm9pLCBuZ2F5 IDI3IHRoYW5nIDkgbmFtIDIwMTANCktpbmggZ3VpOiANCi0gQ2FjIGQvYyBCbyBjaGluaCB0cmkg DQotIENhYyBkL2MgVXkgVmllbiBUcnVuZyBVb25nIA0KLSBDYWMgZC9jIGxhbyB0aGFuaCBjdWEg VHJ1bmcgVW9uZyBEYW5nDQoNClRodWEgY2FjIGQvYywNCg0KU2FwIGRlbiBuZ2F5IEhvaSBuZ2hp IFRydW5nIHVvbmcgZGUgY2hvbiBuaGFuIHN1IGdpb2kgdGhpZXUgRGFpIGhvaSB0b2FuIHF1b2Mu IFRvaSANCnRyYW4gdHJvIG5oaWV1IGRlbSBraG9uZyBuZ3UsIG5ndW9pIGNhbSBsYWkgcXVhbiB0 cm9uZyBsYW0sIGxhaSBjaGVjaCBodW9uZyB0YXUgZGkgDQpkdW9uZyBraGFjLiBMaWVuIFhvIHN1 cCBkbyBjdW5nIGxhIHZheSwgbGEgY29uIG5ndW9pLiANCg0KVG9pIG11b24gY2FjIGQvYyBzYW5n IHN1b3QgeGVtIHhldCBreS4gVnVhIHJvaSB0b2kgY28gZHVvYyBkb2MgdmFpIGxhIHRodSBraG9u ZyBjaGluaCANCnRodWMsIGNvIGNhaSBreSB0YXAgdGhlIG5odW5nIG5vaSBraG9uZyBjaGluaCB4 YWMuIFJpZW5nIGhhaSBsYSB0aHUgY3VhIGhhaSBkL2MgVHJhbiANCk1pbmggSG8gdmEgVHJhbiBE dWMgUXVlIHRvaSBjaG8gbGEgcmF0IG5oaWV1IGx5IGxlIHZhIGNodW5nIGN1IHJvIHJhbmcgY2Fu IGR1b2MgeGVtIA0KeGV0LiBUb2kgbXVvbiBub2kgdGhlbSB2b2kgY2FjIGQvYyB2ZSBoYWkgZC9j IFRydW9uZyBUYW4gU2FuZyB2YSBOZ3V5ZW4gUGh1IFRyb25nLiANCk5naGUgbm9pIGQvYyBOb25n IER1YyBNYW5oIGdpb2kgdGhpZXUgZC9jIE5ndXllbiBQaHUgVHJvbmcgbGFtIFRvbmcgQmkgdGh1 LiBUb2kgDQp0aGF5IGtob25nIG5lbiB2aSBkL2MgVHJvbmcgY2hpIGxhIG5ndW9pIGx5IGx1YW4g bG9pIHRob2kga2hvbmcgcGh1IGhvcCB2b2kga2luaCB0ZSB0cmkgDQp0aHVjIHZhIGNvIGNoZSBr aW5oIHRlIHRoaSB0cnVvbmcuIFRyb25nIHRob2kgZGFpIG5heSBkYW5nIGNhbiBuZ3VvaSBoYW5o IGRvbmcsIGRhbSBsYW0gDQpkYW0gY2hpdSwgYmlldCB2aSBkYW4sIGxvIGNobyBkYW4gdmEgbGFt IGNobyBkYW4uIEQvYyBUcm9uZyBraG9uZyB0aGUgbGFtIGR1b2MsIHZpIGQvYyANCmNvIG5odW5n IHNhaSBsYW0gbmdoaWVtIHRyb25nLiBEb24gY3UgaGFpIHZpZWMgZGUgY2FjIGQvYyBjaGllbSBu Z2hpZW0uDQoNClZpIHNhbyBkL2MgTmd1eWVuIFBodSBUcm9uZyBkdWEgdmFuIGRlIGR1b25nIHNh dCBjYW8gdG9jIHJhIFF1b2MgSG9pIG1vdCBjYWNoIHhvIGJvIA0KdmEgInR1IGRvIiBkZW4gbmh1 IHZheS4gQ2hhIG5oZSBtb3QgdmFuIGRlIGxvbiBuaHUgdmF5IG1hIERhbmcgZG9hbiBRdW9jIGhv aSB2YSBCYW4gDQpDYW4gU3UgRGFuZywgQ2hpbmggcGh1IHZhIEJhbiBCaSBUaHUga2hvbmcgdHJh byBkb2kgdm9pIG5oYXUgZGUgeGVtIHhldCBjbyBuZW4gZHVhIA0KcmEgUXVvYyBIb2kgaGF5IGto b25nLCBkdWEgY2FpIGdpLCBraG9uZyBkdWEgY2FpIGdpLiBOZ2hlIG5vaSBkL2MgVHJ1b25nIFRh biBTYW5nIHZhIA0KZC9jIE5ndXllbiBQaHUgVHJvbmcgYmFuIG5oYXUgZGUgc3VwIGJheSBjaGlu aCBwaHUgY28gcGhhaSBraG9uZz8gQ2FjIHRoZSBsdWMgdGh1IA0KZGljaCBiZW4gbmdvYWkgbm9p IHJhbmc6IENodWEgYmFvIGdpbyB4YSBob2kgZGFuIHN1IGR1b2MgdGhhbmcgbG9pIG8gZGllbiBk YW4gUXVvYyBIb2kgDQpuaHUgbGFuIG5heS4gQ2h1YSBiYW8gZ2lvIENoaW5oIHBodSBjdWEgRGFu ZyBDU1ZOIGJpIHZvIG1hdCBvIFF1b2MgSG9pIG5odSBsYW4gDQpuYXkuIEFpIHZvIG1hdCBhaT8g Q28gcGhhaSBoYWkgZC9jIFRydW9uZyBUYW4gU2FuZywgTmd1eWVuIFBodSBUcm9uZyAobWEgcXV5 ZXQgZGluaCANCmxhIGQvYyBUcm9uZykgZGEgdm8gbWF0IGRhbmcgdGEga2hvbmc/IENvIGNoZWNo IGh1b25nIGtob25nPyBSbyByYW5nIGxhIGQvYyBUcm9uZyBkYSANCnNhaSBwaGFtIG5naGllbSB0 cm9uZy4NCg0KTW90IGRhbiBjaHVuZyBraGFjLCB0YWkgSG9pIG5naGkgQm8gUXVvYyBQaG9uZyBk L2MgTmd1eWVuIFBodSBUcm9uZyB0dW5nIHR1eWVuIGJvOg0KICJDYWMgZC9jIGR1bmcgY29pIGRp ZW4gYmllbiBuYXkgZGllbiBiaWVuIG5vLCAoeSBjaGkgZGllbiBiaWVuIGhvYSBiaW5oKSBsYSBx dWFuIHRyb25nLCANCm5vIGtob25nIHRoZSBsYW0gZHVvYyBnaSB0YS4gVmkgY2h1bmcgdGEgY28g cXVhbiBkb2kgaHVuZyBtYW5oIGRhIGRhbmggdGhhbmcgbmh1bmcgZGUgDQpxdW9jIHRvIi4gQ28g cGhhaSB2YXkga2hvbmc/IEhvbmcgcXVhbiBMaWVuIFhvIGtob25nIGh1bmcgY3Vvbmcgc2FvLCBr aG9uZyB0aW5oIA0Kbmh1ZSBzYW8sIG1hIHZhbiBkaWVuIGJpZW4gZHVvYz8hIEJhaSBob2MgTGll biBYbyBzdXAgZG8gY29uIHNvIHNvIHJhIGRvLiBWb2kgc3V5IG5naGksIA0KYmllbiBjaHVuZyB2 YSBjYWNoIGxhbSBuaHUgdmF5IGtob25nIHRoZSBsYSBUb25nIEJpIHRodSBkdW9jIHZhIG5vaSB0 aGF0IGNhYyBkL2MgbmVuIA0KaG9hbiBuZ2hlbmggdmEgZGUgZC9jIE5ndXllbiBQaHUgVHJvbmcg dmUgbmdoaSwgY2hvbiBtb3QgZC9jIGtoYWMsIHRyZSwga2hvZSwgdGhvbmcgDQptaW5oIHRhaSB0 cmkgaG9uIGRlIGxhbS4NCg0KQmF5IGdpbyB0b2kgbm9pIHZlIGQvYyBUcnVvbmcgVGFuIFNhbmc6 DQoNClRodSBkL2MgVHJhbiBNaW5oIEhvIHZhIFRyYW4gRHVjIFF1ZSBkYSBwaGFuIGFuaCBraGEg cm8uIE5odW5nIGNodXllbiBuaHUgdmF5IHZvaSANCmQvYyBTYW5nIGNvbiBuaGlldS4gVGh1IGhv aSB0dSBuZ2F5IHZhbyBCbyBDaGluaCBUcmkgZGVuIGdpbyBkL2MgU2FuZyBjbyBjaHUgdHJ1b25n IA0KbmFvLCBkZSB4dWF0IG5hbywgY29uZyB2aWVjIG5hbyBkZSBkb25nIGdvcCB2b2kgRGFuZyB4 dW5nIHRhbSBUaHVvbmcgdHJ1YyBCYW4gQmkgDQpUaHUga2hvbmc/IE5ndW9jIGxhaSBkaSB0YW8g dmF5IGNhbmggZGUgZGFuaCBkYW5nLCBkYW5oIGQvYyBtaW5oLiBEdW5nIGRhbmggbmdoaWEgDQpU aHVvbmcgdHJ1YyBCYW4gQmkgVGh1IGNoaSB0aGkgY2FjIGJhbyBkYW5oIGRlIGhhIHV5IHRpbiBj dWEgZGFuZywgaGEgdXkgdGluIGQvYyBtaW5oLiANCkNodW5nIHRhIGhheSB0aHUgaGUgdGhvbmcg bGFpIHZlIGQvYyBTYW5nOg0KDQotIFZlIGRhbyBkdWM6IFJhdCB0b2kgdGUsIGRhIHR1bmcgZGlu aCBkYW5nIGRlbiB2dSBhbiBOYW0gQ2FtIHhhIGhvaSBkZW4gbm9pIHRpZW5nLCBkYSANCnR1bmcg YW4gY3VhIG5ndW9pIEhvYSBDaG8gbG9uIHBoYWkgbWF0IGNodWMgQmkgdGh1IFRoYW5oIHV5IHZh IG5oYW4gYW4ga3kgbHVhdC4gU2EgDQpkb2EgaG9uIGRhIGVwIGNoaSBIb25nIC0gR2lhbSBkb2Mg Q29uZyBUeSBYdWF0IE5oYXAgS2hhdSBRdWFuIDMgYW4gbmd1IHZvaSBtaW5oLCANCmN1bmcgcGh1 bmcgbWluaCwgSG9uZyBraG9uZyBkYXAgdW5nIGR1IGxpZW4gYmkgY2hvIHZhbyB0dSBtYXkgbmFt LiBSYSB0dSB2byBjaG9uZyANCkhvbmcgcGhhdCBkb24ga2llbiwgVG9uZyBCaSB0aHUgKGQvYyBN YW5oKSBraG9uZyB4dSwgY2hvIG5ndW9pIHZhbyB2YW4gZG9uZyB2byANCmNob25nIEhvbmcgcnV0 IGRvbi4gU2EgZG9hIHZhIHRoYSBob2Egbmh1IHZheSBjaGkgY28ga2hhaSB0cnUgRGFuZyBtb2kg ZGFuZywgc2FvIGxhaSANCmxlbiBjaHVjPyBNb2kgZGF5IFRydW9uZyBUYW4gU2FuZyBjb24gZHVu ZyBnaWFtIGRvYyBjYWMgZG9hbmggbmdoaWVwIG5odSBUYW0gVGFuIA0KVGFvLCBIdW5nIEtlbiwg VGhhbmcgTXVvdCBkaSB2YW4gZG9uZyBkZSBtaW5oIGxhbSBUb25nIEJpIHRodSwgdGhhdCBsYSBx dWEgeGF1LiANCg0KLSBWZSBsYXAgdHJ1b25nIGNoaW5oIHRyaTogTW90IGNvbiBuZ3VvaSBuaHUg Tmd1eWVuIEh1dSBIaWVuIChHaWFtIGRvYyBtb3QgQ29uZyB0eSANCnZpZW4gdGhvbmcgbyBUcC4g SG8gQ2hpIE1pbmgpIGR1b2MgZC9jIFNhbmcgZGF1IG1vaSBjdWEgYm9uIHBoYW4gZG9uZyBjaG9u ZyBEYW5nIA0KbWEgbGFpIGxhIGNobyB0aGFuIHRpbiBkdW9jIFRydW9uZyBUYW4gU2FuZyBnaW9p IHRoaWV1IGxhbSBDdWMgdHJ1b25nIEJvIEJ1dSBjaGluaCANClZpZW4gdGhvbmcuIEJvbiBIaWVu IChkYSBiaSBkdWEgcmEga2hvaSBkYW5nKSB2YW4gY29pIFRydW9uZyBUYW4gU2FuZyBsYSBCb3Jp cyBZZWx0c2luIA0KVmlldCBOYW0sIGxhIG5ndW9pICJkb2kgbW9pIiBjaG8gRGFuZyBDU1ZOICg/ Pz8pLg0KDQpUcnVvbmcgVGFuIFNhbmcgZGEgbm9pIGdpIHZvaSBIaWVuPyBDYWMgdGhvbmcgdGlu IG1hIGJvbiBUcmFuIEh1eW5oIER1eSBUaHVjIGR1YSANCmxlbiBtYW5nIGNhIG1heSBjaHVjIGJh aSBjaG9uZyBEYW5nIGxhIHRob25nIHRpbiB0dSBIaWVuIGN1bmcgY28gbmdoaWEgSGllbiBsYXkg dHUgDQpUcnVvbmcgVGFuIFNhbmcuIFJvIHJhbmcgVHJ1b25nIFRhbiBTYW5nIGRhIGhvcCB0YWMg dm9pIGtlIGNob25nIGRhbmcuDQoNClRvaSBjaGkgbmV1IDIgaGllbiB0dW9uZyB0cmVuIGNodW5n IHRhIGNvIHRoZSB0aGF5IHJvIHF1YW4gZGllbSBsYXAgdHJ1b25nIGN1YSBUcnVvbmcgDQpUYW4g U2FuZyBuaHUgdGhlIG5hbz8gTGFwIHRydW9uZyBkbyBjbyB0aGUgZHVvYyBjYWMgZC9jIHRpbiBu aGllbSBraG9uZz8NCg0KVmkgc2FvIFRydW9uZyBUYW4gU2FuZyBkZW4gdGFuIG5oYSB0aGFtIFRo aWV1IHR1b25nIE5ndXllbiBUcm9uZyBWaW5oPyBDaGkgdmkgDQptdW9uIHZ1b3QgdmUgbGF5IHRo ZW0gInV5IHRpbiIuIENhY2ggZGkgY3VhIGQvYyBTYW5nIGxhIG5odSB2YXksIGtob25nIHBoYWkg ZHVvbmcgZGF1LA0Ka2hvbmcgbGFvIHZhbyBjdW9jIGRlIGtobyB0aGFuLCBjdSBkZSBtb2kgbmd1 b2kgbGFtIHZhIHRhIGh1b25nIGJhbmcgc3UgdnVvdCB2ZSwgbGF5IA0KbG9uZy4NCg0KVG9pIGdp YXQgbWluaCBraGkgZHVvYyB0aG9uZyB0aW4gbmdheSAzMS8wNy8yMDEwIEJvIENoaW5oIFRyaSBt b2kgaG9wIG5naGUgYmFvIGNhbyB2ZSANCnZ1IFZpbmFzaGluIHRoaSBkYXUgdGhhbmcgNyBkL2Mg U2FuZyBkYSBjaG8gdGh1IGt5IChkL2MgSGFpKSBjdW5nIGNhcCB0aG9uZyB0aW4gdmEgDQoiY2hp IHRoaSB5IGtpZW4gYW5oIFR1IiBsYSBwaGFpIGRhbmcgdHJ1b2MgbmdheSAxMy83LzIwMTAgZGUg Z2F5IHN1YyBlcC4gS2V0IGx1YW4gcm8gcmFuZyBjdWEgDQpCbyBDaGluaCBUcmkgZGEgbG90IHRy YW4gc3UgZ2lhbiB4YW8gY3VhIFRydW9uZyBUYW4gU2FuZy4gVG9uZyBiaWVuIHRhcCBjYWMgYmFv IGNvIHV5IA0KdGluIGJpIHNhcCBiYXkgVHJ1b25nIFRhbiBTYW5nIHZvIGN1bmcgYnVjIHh1Yy4g RC9jIE5ndXllbiBWYW4gQ2hpIENodSBuaGllbSBVeSANCkJhbiBLaWVtIFRyYSBjaGFjIGN1bmcg dGhheSBtaW5oIGJpIGRheSBjYXkgYm9pIFRydW9uZyBUYW4gU2FuZyB2YSBob2kgaGFuIHBoYWkg DQpraG9uZz8NCg0KVG9pIHBoYW4gdGljaCBuaHUgdmF5LCBtb25nIGNhYyBkL2MgdGluaCB0YW8g c3V5IG5naGksIHBoYWkgY2hvbiBtb3QgZC9jIFRvbmcgQmkgdGh1IGNvIA0KdGFtLCBjbyB0YW0s IGRhbSBsYW0sIGRhbSBjaGl1LiBDYWMgZC9jIGx1dSB5IHJhbmcgbmd1b2kgaGFuaCBkb25nIHNl IGNvIG5odW5nIGtodXlldCANCmRpZW0sIG5oaW4gdGhheSBzdWEgc2UgdG90IGhvbiwgZHVuZyB2 aSB2YXkgbWEgY2hpIGNob24gbmd1b2kgaGllbiwgbHVjIG5heSBjaG9uIG5ndW9pIA0KaGllbiB0 aGVvIGtpZXUgdHJvbiB0cmluaCB0cm9uIHRydSBzZSBob2EgcmEgY2hvbiBrZSBuZ3UgZG90LiAN Cg0KS2luaCBtb25nIGNhYyBkL2Mgc2FuZyBzdW90LiANClRoYW4gYWksDQpMZSBWYW4gTHkNCihI YSBOb2kpIA0KDQpodHRwOi8vd3d3LmRibmQuaG9jaGltaW5oY2l0eS5nb3Yudm4vZ2lvaS10aGll dS9kb2FuLWRhaS1iaWV1L3RpZXVfc3UgDQoNCk9uZyBUcnVvbmcgVGFuIFNhbmcgLSBuZ3V5ZW4g RGFpIGJpZXUgUXVvYyBob2kga2hvYSA5LCAxMCwgMTEsIGRvYW4gVFAuSG8gQ2hpIE1pbmggDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9QYWdlcy9kZWZhdWx0LmFzcHggMDkvMDMvMjAw OSAwOjIyIA0KDQpUUCBIQ006IENvbmcgbGFtIHhvbmcsIGR1b25nIHZhbiBuZ2FwISANCg0KaHR0 cDovL2RhbnRyaS5jb20udm4vU3VraWVuL0tldC14ZS1vLVRQSENNLUNhbmctdGhvbmctY2FuZy10 YWMvMjAwNy8xMS8yMDQ0NjQudmlwICAwNi8xMS8yMDA3IC0gMzowMCBQTQ0KDQpUUCBIQ006IEtl dCB4ZSBjYW5nIHRob25nIGNhbmcgdGFjISANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQ LUhDTS1LaG9uZy1raGktYmktby1uaGllbS1uZ2F5LWNhbmctdHJhbS10cm9uZy80NTIzODAwMy8x NTcvIDExLzUvMjAwNywgMjM6MjggR01UKzcNCg0KVFAuSENNOiBLaG9uZyBraGkgYmkgbyBuaGll bSBuZ2F5IGNhbmcgdHJhbSB0cm9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9p LzIwMDkvMDMvODM0Njc0Lw0KDQpUUCBIQ006IE11YSB0cmFpIG11YSAtIFRQLkhDTSBjaGltIHRy b25nIGJpZW4gbnVvYw0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDEvSGFuZy1u Z2FuLWhvLWRhbi1kaWV1LWR1bmctc29uZy1jaHVuZy12b2ktbnVvYy1jb25nLTg5MDMwNy8gMDk6 NDIsIDE5LTAxLTIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006IEhhbmcgbmdhbiBobyBkYW4gZGlldSBk dW5nIHNvbmcgY2h1bmcgdm9pIG51b2MgY29uZyANCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52 bi9Ib21lL0R1b25nLXRhYy1kaWVuLWdpYXQtbmd1b2ktY2hldC8yMDA5NC8xMzQwODIubGFvZG9u ZyA3OjU5IEFNLCAxNC8wNC8yMDA5DQoNClRQIEhDTTogRHVvbmcgdGFjLCBkaWVuIGdpYXQsIG5n dW9pIGNoZXQNCg0KU2FuZyAxMy40LCBjb24gbXVhIGxvbiBrZW8gZGFpIGhvbiAyIGdpbyBsYW0g bmdhcCBuYW5nIGhhbmcgbG9hdCB0dXllbiBkdW9uZyBvIFRQSENNLiBDdW5nIGx1YyBkbyBkYSB4 YXkgcmEgc3UgY28gDQpkYXkgZGllbiBkdXQgcm9pIHh1b25nIGR1b25nLCBsYW0gbW90IG5ndW9p IGNoZXQsIG1vdCBzbyBuZ3VvaSBiaSB0aHVvbmcuDQoNCkR1b25nIHBobyBjaGltIG5nYXAgdHJv bmcgYmllbiBudW9jDQoNCmh0dHA6Ly90aWVudG9pZGFpaG9pZGFuZy52bi9yZWFkLmFzcD91aWQ9 OCZuZXdzX2lkPTM0Ng0KDQpPbmcgVHJ1b25nIFRhbiBTYW5nIC0gbmd1eWVuIEdpYW0gZG9jIFNv IE5vbmcgbmdoaWVwIFRQIEhDTSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3Mv UGFnZXMvMjAxMDI4LzIwMTAwNzA1MDIzMDUxLmFzcHggMDUvMDcvMjAxMCAyOjMwIA0KDQpUUCBI Q006IEhhaSBodW5nICJjb25nIG5naGUiIHRyb25nIHJhdSBtdW9uZyAtIHN1IGR1bmcgdGh1b2Mg Y2FtIC0gdmllbiAiZG9jIiB2YSB0aHVvYyAibW8iIGxhbSByYXUgbW9pIG5nYXkgY2FvIDEwIGNt IA0KIA0KUmF1IG11b25nIGxhIGxvYWkgcmF1IHBobyBiaWVuIHRyb25nIGJ1YSBhbiBoYW5nIG5n YXkuIE5odW5nIGl0IGFpIG5nbyBtbyByYXUgbm9uIG1vbiwgYmF0IG1hdCBsYWkgZHVvYyANCmto b25nIGl0IG5ndW9pIHRyb25nIHJhdSBvIFRQLkhDTSBzdSBkdW5nIG5odW5nIHRodW9jIGNhbSwg dGh1b2Mga2ljaCB0aGljaCB0YW5nIHRydW9uZy4uLiwgdGhhbSBjaGkgY2EgDQpuaG90IHRoYWkg ZGUgbWF1IHRodSBob2FjaC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDI5LzIwMTAwNzE1MDE0NjU2LmFzcHggIDE1LzA3LzIwMTAgMTo0NiANCg0KVFAgSENN OiBDaGF0IGx1b25nIHJhdSBkYW5nIGJpIHRoYSBub2khIFJhdSAia3kgc2luaCIgdHJlbiBrZW5o IG51b2MgZGVuIA0KICANCkNvIHF1YW4gY2h1YyBuYW5nIGJvIHRheSEgQ2h1YSBjbyBjbyBzbyBz YW4geHVhdCByYXUgdHJvbmcgImNodW9pIHRodWMgcGhhbSBhbiB0b2FuIg0KDQpodHRwOi8vdmll dGJhby52bi9YYS1ob2kvR2FuLTE1MDBoYS1kYXQtbm9uZy10cnVvbmctZHVvYy1naWFvLXRodWUt bXVvbi10cmFpLXBoZXAvNDAwMTI4NzEvMTU3LyAxNy8xMi8gMjAwMywgMDk6MTAgR01UKzcgDQoN ClRQIEhDTTogR2FuIDE1MDBoYSBkYXQgbm9uZyB0cnVvbmcgZHVvYyBnaWFvLCB0aHVlLCBtdW9u IHRyYWkgcGhlcCANCg0KaHR0cDovL3RpbnRoaXRydW9uZy5iYXRkb25nc2FuLmNvbS52bi90cC1o by1jaGktbWluaC1kYXQtcXVvYy1waG9uZy1jb25nLXZpZW4tY2F5LXhhbmgtdGhhbmgtbmhhLTdC clJpaFBadW9RMS5odG1sIFRoZW8gVGllbiBQaG9uZyAxMS8wNy8yMDA4LCAxNjoyMyBHTVQrNyAN Cg0KVFAgSENNOiBEYXQgY2F5IHhhbmggdGhhbmggbmhhIG8hIA0KDQpEbyBsYSBrZXQgcXVhIGdp YW0gc2F0IGNvbmcgdGFjIHF1YW4gbHkgbmhhIG51b2MgdmUgc3UgZHVuZyBkYXQgdHJlbiBkaWEg YmFuIGRvIEJhbiANCktpbmggdGUgliBOZ2FuIHNhY2ggKEtUTlMpIEhvaSBkb25nIG5oYW4gZGFu IFRQSENNIHRodWMgaGllbiB2YSB2dWEgY29uZyBiby4gDQoNClRoZW8gQmFuIEtUTlMsIHF1eSBo b2FjaCB0YWkgbmhpZXUgcXVhbiBodXllbiBuZ29haSB0aGFuaCwgdnVuZyB2ZW4gZGFuZyBiaSAi YmFtIiANCm5hdCBib2kgdGluaCB0cmFuZyBidW9uZyBsb25nIHF1YW4gbHkgZGF0IGRhaSBjdWEg Y2hpbmggcXV5ZW4gZGlhIHBodW9uZyB2YSBjYWMgc28gDQpuZ2FuaCBjaHVjIG5hbmcuDQoNClRh aSBwaHVvbmcgVGFuIFRob2kgSGllcCAocXVhbiAxMiksIGtldCBxdWEga2llbSB0cmEgY2hvIHRo YXkgY28gcmF0IG5oaWV1IHRydW9uZyBob3AgDQp4YXkgZHVuZyB2aSBwaGFtIHF1eSBob2FjaCBj b25nIHZpZW4gY2F5IHhhbmgsIHF1eSBob2FjaCBjb25nIHRyaW5oIGNvbmcgY29uZyBob2FjIA0K eGF5IGR1bmcgZHVuZyBxdXkgaG9hY2ggbmh1bmcgY2h1YSBjaHV5ZW4gbXVjIGRpY2ggc3UgZHVu ZyBkYXQsIHhheSBkdW5nIHZpIHBoYW0gDQpoYW5oIGxhbmcgYW4gdG9hbiBsdW9pIGRpZW4uDQoN ClRyb25nIGtoaSBkbywgdmllYyBkaWV1IGNoaW5oIHF1eSBob2FjaCBjaGkgdGlldCB4YXkgZHVu ZyAxLzIwMDAga2h1IGRhbiBjdSBwaHVvbmcgDQpUYW4gVGhvaSBIaWVwIHZhbiBjaHVhIGR1b2Mg dGhhbSBkaW5oLCBwaGUgZHV5ZXQuDQoNClRhaSB4YSBEb25nIFRoYW5oIChodXllbiBIb2MgTW9u KSwgdGllbiBkbyBjYXAgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHNvIGh1dSBuaGEgbyANCm1vaSBk YXQgMyUuIENvbmcgdGFjIHF1YW4gbHkgZGF0IGNvbmcsIGRhdCBxdW9jIHBob25nIGN1YSBkaWEg cGh1b25nIHRoaWV1IGNoYXQgY2hlIA0KZGFuIGRlbiB0aW5oIHRyYW5nIGJpIGNoaWVtIGR1bmcg eGF5IG5oYSBvIG5odSBraHUgMjYyIGNhbiBobyB2YSBraHUgZGF0IGNvbmcgYXAgNyB2b2kgDQox OTIgY2FuIGhvIHRyZW4gdG9uZyBkaWVuIHRpY2ggNyw3IGhhLCBraHUgc3UgMzE3IHBob25nIGto b25nIGtob25nIHF1YW4gdm9pIGRpZW4gdGljaCANCjUsMyBoYS4NCg0KVGFpIGh1eWVuIEhvYyBN b24sIHZpZWMgcXVhbiBseSBkYXQgZGFpIHRoaWV1IGNoYXQgY2hlLCBkYXQgbm9uZyBuZ2hpZXAg Ym8gaG9hbmcgZG8gDQpzYW5nIG5odW9uZyBob2FjIGNvIGNodSB0cnVvbmcgdGh1IGhvaSwgY2h1 eWVuIG11YyBkaWNoIHN1IGR1bmcuIFZpZWMgc3UgZHVuZyBkYXQgc2FpIA0KbXVjIGRpY2ggY29u IHBobyBiaWVuLCB0aWVuIGRvIHRodWMgaGllbiBjYWMgZHUgYW4gY2hhbSBkbyBkYXUgdHUgY28g c28gaGEgdGFuZyBjaHVhIA0KZG9uZyBiby4NCg0KVmllYyBxdWFuIGx5IGNhYyBkdSBhbiBwaGFu IGxvIGhvIGxlIHRydW9jIGRheSB0YWkgY2FjIHhhIEJhIERpZW0sIFh1YW4gVGhvaSBUaHVvbmcs IA0KVGhvaSBUYW0gVGhvbiwgVGFuIFh1YW4gdGhlbyBjaHUgdHJ1b25nIHRydW9jIGtpYSBjdWEg VUJORCB0aGFuaCBwaG8gKGNobyBwaGVwIHRoaSANCmRpZW0gc3UgZHVuZyBkYXQgeGF5IGR1bmcg bmhhIG8gcmllbmcgbGUpIGxvbmcgbGVvIGRhbiBkZW4gY2FjIGNodSBkYXUgdHUgdGh1YyBoaWVu IGR1IA0KYW4gc2FpIHF1eSBob2FjaCBkdW9jIGR1eWV0Lg0KDQpCZW4gY2FuaCBkbywgY28gc28g aGEgdGFuZyB4YSBob2kgdGFpIGNhYyBraHUgdnVjIHRyZW4gY2h1YSBob2FuIHRoaWVuIGRvIHF1 eSBkaW5oIHBoYXAgDQpsdWF0IGNobyBwaGVwIG5ndW9pIGRhbiBjaHV5ZW4gbmh1b25nIHF1eWVu IHN1IGR1bmcgZGF0IG5vbmcgbmdoaWVwIG1hIGtob25nIGdpb2kgDQpoYW4gZGllbiB0aWNoIG5l biBwaGF0IHNpbmggdGluaCB0cmFuZyBjaHV5ZW4gbmh1b25nIGRhdCBuaG8gbGUgbWEgdGh1YyBj aGF0IGxhIGNodXllbiANCm11YyBkaWNoIHN1IGR1bmcgdGhhbmggZGF0IG8gbW90IGNhY2ggdHJh aSBwaGVwLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI0 LzIwMTAwNjA3MDAyOTU5LmFzcHggMDcvMDYvMjAxMCAwOjI5IA0KDQpUUCBIQ006IFBoYW4gbG8g YmFuIGRhdCBjb25nIHZpZW4gIA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9pbl9k ZXB0aC9XaHktaG8tY2hpLW1pbmgtY2l0eS1pcy1zdGlsbC1mbG9vZGVkLWFmdGVyLXRoZS1yYWlu LXFuaHUtMDYxMzIwMTAxNTA5MjMuaHRtbCAyMDEwLTA2LTEzIFF1eW5oIE5odSwgcGhvbmcgdmll biBSRkENCg0KVFAgSENNOiBOZ3V5ZW4gbmhhbiB2YW4gY29uIHRyb25nIHRpbmggdHJhbmcgdHJv aSBtdWEgbmdhcCBudW9jIGxhIGRvIHRoaWV1IHF1eSBob2FjaCBwaGF0IHRyaWVuIGRvbmcgYm8h IA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL1RyJUM2JUIwJUM2JUExbmdfVCVFMSVC QSVBNW5fU2FuZw0KDQpPbmcgVHJ1b25nIFRhbiBTYW5nIGxlbiBjaHVjIENodSB0aWNoIFVCTkQg dGhhbmggcGhvIEhDTSANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RpZW4tbmhhLW51b2Mt bWFuaC1haS1uYXktdGlhLzQwMTg1NzAxLzE1Ny8gVGh1IGhhaSwgMDUgVGhhbmcgaGFpIDIwMDcs IDA3OjAyIEdNVCs3IA0KDQpUUCBIQ006IFRpZW4gbmhhIG51b2MsIG1hbmggYWkgbmF5ICJ0aWEi IA0KDQpodHRwOi8vd3d3LmNhbmQuY29tLnZuL3ZpLVZOL3BoYXBsdWF0LzIwMDkvOS8xMTk2NTIu Y2FuZCAxNjozNzowMCAxOC8wOS8yMDA5DQoNClRQIEhDTTogRGFuIGNhbmggaGllcCBkYW0gYmFu IA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9UUC1IQ00tdGlldS1jdWMt dGhhbS1uaHVuZy12YW4tY29uLXBoby1iaWVuLXZhLW5naGllbS10cm9uZy80MDExOTU4OS8yMTgv IDIwLzExLzIwMDYsIDA4OjIwIEdNVCs3DQoNClRQLkhDTTogVGlldSBjdWMsIHRoYW0gbmh1bmcg cGhvIGJpZW4gdmEgbmdoaWVtIHRyb25nISANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1Q aGFwLWx1YXQvU2FpLXBoYW0tbmdoaWVtLXRyb25nLXRyb25nLXF1YW4tbHktZGF0LWRhaS1vLUhv Yy1Nb24tVFAtSENNLzQ1MjM0NTc4LzIxOC8gTmhvbSBQViBYYSBIb2kgMTUgVGhhbmcgdHUgMjAw NywgMjM6NDggR01UKzcNCg0KVFAuSENNOiBTYWkgcGhhbSBuZ2hpZW0gdHJvbmcgdHJvbmcgcXVh biBseSBkYXQgZGFpIG8gSG9jIE1vbiAgDQoNCkhhbmcgdHJhbSBoYSBkYXQsIHZvaSBzdSB0aWVw IHRheSBjdWEgbW90IHNvIGNhbiBibyBxdWFuIGx5IHRyZW4gZGlhIGJhbiwgZGEgYmkgY2FjIGRh dSANCm5hdSwgY2FjIGNvbmcgdHkgdHUgbmhhbiBwaGEgdm8gcXV5IGhvYWNoOyBrZW8gdGhlbyBk byBsYSBkb2kgc29uZyBoYW5nIG5nYW4gaG8gZGFuIGJpIA0KYW5oIGh1b25nIHZhIGhhbmcgY2h1 YyB0aSBkb25nIGN1YSBOaGEgbnVvYyBiaSBtYXQgdHJhbmcuIENodXllbiB4YXkgcmEgbyBodXll biBIb2MgDQpNb24sIFRQLkhDTSBuaGlldSBuYW0gbGllbiwgZ2F5IGJ1YyB4dWMgdHJvbmcgZHUg bHVhbi4gTmh1bmcgZGlldSBsYSBsYSBuaHVuZyBjYW4gDQpibyB0aWVwIHRheSBjaG8gbmh1bmcg c2FpIHBoYW0gdmFuIGRhbmcgdW5nIGR1bmcgdGFpIGNodWMsIHRoYW0gY2hpIGNvbi4uLiBsZW4g Y2h1YyENCg0KQmFpIDE6IFRpZXAgdGF5IGNobyBkb2FuaCBuZ2hpZXAgY2hpZW0gZG9hdCA1LjAw MCBsdW9uZyB2YW5nDQoNCk1vdCBkdSBhbiBraHUgZGFuIGN1IC0gY29uZyBuZ2hpZXAgc2FjaCBo b24gMTggaGEgZHVvYyBnaWFvIGNobyBtb3QgY29uZyB0eSBUTkhIIA0Ka2hvbmcgY28gbmFuZyBs dWMgdGFpIGNoaW5oLCBkZSByb2kgc2F1IG5odW5nIHRybyAicGh1IHBoZXAiIHZhIGdpdXAgc3Vj IGN1YSBtb3QgbG9hdCANCmNhbiBibyB4YSwgaHV5ZW4gbyBIb2MgTW9uLCBnaWFtIGRvYyBjb25n IHR5IG5heSBkZW0gZHUgYW4gdGhlIGNoYXAgdmF5IHZvbiBuZ2FuIA0KaGFuZyA1LjAwMCBsdW9u ZyB2YW5nIGRlLi4uIGRhbmggYmFjLg0KDQpCbyB2byBkdWEsIGxheSB2by4uLiBkdWENCg0KTmFt IDIwMDIsIHNhdSB2YWkgYnVvaSBsYW0gdmllYyB2b2kgQ29uZyB0eSBUTkhIIFRoaWVuIExvbmcg VmFuLCBVQk5EIGh1eWVuIA0KSG9jIE1vbiBjbyB2YW4gYmFuIGRlIG5naGkgdGhhbmggcGhvIGdp YW8gNDUgaGEgZGF0IHRyZW4gZGlhIGJhbiBjaG8gY29uZyB0eSBuYXkgZGUgDQpsYW0ga2h1IGNv bmcgbmdoaWVwIChLQ04pIHZhIGRhbiBjdSB4YSBEb25nIFRoYW5oLiBEZSBuZ2hpIG5heSBkdW9j IHRoYW5oIHBobyANCmNoYXAgdGh1YW4gdmUgY2h1IHRydW9uZyB2YSBnaWFvIGNobyBjYWMgc28g bmdhbmggdGhhbSBkaW5oIHZlIHF1eSBob2FjaCwgbW9pIA0KdHJ1b25nLi4uIE5odW5nIGhvbiAx IG5hbSB0cm9pIHF1YSwgZHUgYW4gdmFuIGNoYW5nIG5odWMgbmhpY2ggZ2kga2hpZW4gY2EgdHJh bSBobyBkYW4gDQp0cm9uZyBraHUgcXV5IGhvYWNoIGJ1YyB4dWMuIFRodWMgdGUsIGNvbmcgdHkg bmF5IGtob25nIGNvIG5hbmcgbHVjIHRhaSBjaGluaCBkZSB0aHVjIA0KaGllbiBkdSBhbiwgZHUg ZGEgZG9pIHRlbiBUaGllbiBMb25nIFZhbiB0aGFuaCBUYW4gSGEgUGhhdCwgbmh1bmcgcm90IGN1 YyBjdW5nIGNoYW5nIA0KInBoYXQiIHRoZW0gZHVvYyBnaS4NCg0KVGhheSBjYSBkb25nIHZhbmcg ZGUgaG9hbmcgY2hvIGNvIG1vYywgdHUgZ2l1YSBuYW0gMjAwMyBDb25nIHR5IFROSEggeGF5IGR1 bmcgliANCnRodW9uZyBtYWkga2luaCBkb2FuaCBuaGEgVGhhbmggUGhhdCAodHJ1IHNvIHRhaSBz byAxMCBkdW9uZyBIaWVwIFRoYW5oIDI1LCBQLkhpZXAgDQpUaGFuaCwgUS4xMikgbGllbiB4aW4g ZHVvYyBkYXUgdHUgbW90IHBoYW4gdHJvbmcga2h1IGRhdCA0NSBoYS4gS2hvbmcgY2FuIHRoYW0g ZGluaCANCm5hbmcgbHVjIGN1YSBUaGFuaCBQaGF0LCB0aGFuZyA3LjIwMDMsIFRydW9uZyBwaG9u ZyBUYWkgY2hpbmggLSBLZSBob2FjaCB2YSBEYXUgdHUgDQpodXllbiBIb2MgTW9uIER1b25nIE1p bmggVHJ1bmcgY28gbmdheSB0byB0cmluaCBkZSBuZ2hpIFVCTkQgaHV5ZW4gdHJpbmggdGhhbmgg DQpwaG8gZ2lhbyBkYXQgY2hvIFRoYW5oIFBoYXQuIEN1bmcgY2hhbmcgY2FuIGRvaSBVQk5EIGh1 eWVuIGNvIGRvbmcgeSBoYXkga2hvbmcsIA0KbmdheSAyMC44LjIwMDMgVHJ1bmcgZGEgY2hvIG1v aSBkYWkgZGllbiBUYW4gSGEgUGhhdCBkZW4gInRob2EgdGh1YW4iIGdpYW8gY2hvIFRoYW5oIA0K UGhhdCBob24gMTggaGEgbGEgbmh1bmcgdmkgdHJpICJuYWMiIG5oYXQgdHJvbmcgZHUgYW4gKG5h bSBvIGdpdWEga2h1IGRhdCA0NSBoYSkuIE5nYXkgDQoyNy44LjIwMDMsIFVCTkQgaHV5ZW4gY28g dG8gdHJpbmggNTk2L0NWLVVCIGRlIG5naGkgVUJORCBUUCwgU28gS2UgaG9hY2ggdmEgRGF1IHR1 LCBTbyBRdXkgaG9hY2ggLSBLaWVuIHRydWMgdGh1YW4gY2h1IHRydW9uZyBjaG8gcGhlcCBDb25n IHR5IFRoYW5oIFBoYXQgZHVvYyANCnRoYW0gZ2lhIHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQg aG9uIDE4IGhhIHRyb25nIHRvbmcgc28gNDUgaGEuDQoNCihBbmg6IEtodSBkYXQgbGFtIGR1IGFu IGNvIGRhaSBtb2MgZGF5KQ0KDQpUcm9uZyB0byB0cmluaCA1OTYvQ1YtVUIsIFVCTkQgaHV5ZW4g SG9jIE1vbiBsYXkgbHkgZG8gY2h1eWVuIGhvbiAxOCBoYSBjaG8gDQpUaGFuaCBQaGF0IGxhICJ0 cmVuIHRodWMgdGUgQ29uZyB0eSBUaGllbiBMb25nIFZhbiBraG9uZyBkdSBuYW5nIGx1YyB2ZSB0 YWkgY2hpbmggY3VuZyANCm5odSB0cmluaCBkbyBjaHV5ZW4gbW9uIHRyb25nIHZpZWMgdGh1YyBo aWVuIGR1IGFuLi4uIi4gRG9jIHZhbiBiYW4gbmF5LCBuaGlldSBuZ3VvaSANCnRoYXkgbXVuZyB2 aSBkdW9uZyBuaHUgVUJORCBodXllbiBIb2MgTW9uIGRhIHRpbmggdGFvIG5oYW4gcmEgbW90IGRv YW5oIG5naGllcCANCnlldSBrZW0gZGUgdGhheSB0aGUgYmFuZyBtb3QgZG9hbmggbmdoaWVwIGNv IG5hbmcgbHVjIGhvbiwgbmh1bmcgdGh1YyB0ZSBraG9uZyBwaGFpIA0KdmF5LiBDb25nIHR5IFRo YW5oIFBoYXQgdGhhbmggbGFwIHZhbyBuZ2F5IDIyLjcuMjAwMiB2b2kgc28gdm9uIGRpZXUgbGUg NSB0aSBkb25nLCBkbyANClRyYW4gVGhpIEhhIChHaWFtIGRvYykgZ29wIDgwJSB2YSBOZ3V5ZW4g VGhpZW4gSG9hIChQaG8gZ2lhbSBkb2MpIGdvcCAyMCUuIFR1IA0Ka2hpIHRoYW5oIGxhcCBkZW4g bHVjIGR1b2MgSG9jIE1vbiBkb25nIHkgZ2lhbyBkaWEgZGllbSBsYW0gZHUgYW4sIFRoYW5oIFBo YXQgaGF1IA0Kbmh1IGNoYW5nIGxhbSBnaS4gQ2h1YSBoZXQsIG1vdCB0cm9uZyAyIHRoYW5oIHZp ZW4gZ29wIHZvbiB0aGFuaCBsYXAgVGhhbmggUGhhdCB0dW5nIA0KY28gdGllbiBhbiB2ZSB0b2kg bHVhIGRhbywgdnVhIG1hbiBoYW4gOSBuYW0gdHUsIG5ndW9pIGNvbiBsYWkgbGEgInBob25nIG5o aSIgY3VhIHkuIFZhLCANCmNoaW5oIHR1IGRheSwgbW90IGhhbmggdHJpbmggbHVhIGRhbyBtb2kg bGFpIGR1b2MgdGhpZXQgbGFwIHZvaSBzdSB0cm8gZ2l1cCBkYWMgbHVjIGN1YSANCm5odW5nIGNh biBibyBuaGEgbnVvYy4uLiANCg0KQ28geSBsYW0gc2FpIGxlY2ggaG8gc28gZHUgYW4NCg0KUGhh biBob24gMTggaGEgZ2lhbyBjaG8gVGhhbmggUGhhdCBsYSBraHUgY2h1YSBjbyBxdXkgaG9hY2gg Y2hpIHRpZXQgc3UgZHVuZyBkYXQgDQoxLzIuMDAwLCB2aSB0aGUgdHJvbmcgdG8gdHJpbmggNTk2 L0NWLVVCLCBVQk5EIGh1eWVuIEhvYyBNb24gY2hpIGRlIG5naGkgdGhhbmggcGhvIA0KY2hvIHBo ZXAgVGhhbmggUGhhdCBkdW9jIHVuZyB2b24gbGFwIHF1eSBob2FjaCBjaGkgdGlldCBoYSB0YW5n IGt5IHRodWF0IDEvMi4wMDAsIHNhdSANCmRvIG1vaSBsYXAgZHUgYW4gZGF1IHR1LiBUaGUgbmh1 bmcsIGN1bmcgY2h1YSBjYW4gYmlldCB0aGFuaCBwaG8gY28gZG9uZyB5IGNodSB0cnVvbmcgDQpj aG8gVGhhbmggUGhhdCBsYW0gZHUgYW4gaGF5IGtob25nLCBjb25nIHR5IG5heSBkYSB0aWVuIGhh bmggdGhvYSB0aHVhbiBkZW4gYnUgdm9pIA0Kbmd1b2kgZGFuLiBEZW4gbmdheSAxNi45LjIwMDMs IFRoYW5oIFBoYXQgY28gdmFuIGJhbiBkZSBuZ2hpIFVCTkQgeGEgRG9uZyBUaGFuaCANCiJ4YWMg bmhhbiBjaG8gY29uZyB0eSBzbyBkYXQgZGEgYm9pIGhvYW4iIGhvbiAxMiwyIGhhLCBrZW0gdGhl byBoYW5nIGxvYXQgaG8gc28gY2h1eWVuIA0Kbmh1b25nLCBkZW4gYnUuLi4gZ2lhLCB2aSB0aHVj IHRlIGRlbiB0aG9pIGRpZW0gbmF5IFRoYW5oIFBoYXQgY2hpIHRob2EgdGh1YW4gZGVuIGJ1IA0K ZHVvYyBjaG8gdmFpIGhvIHZvaSBkaWVuIHRpY2gga2hvbmcgZGFuZyBrZS4gVGhlIG5odW5nLCBi byBobyBzbyBuYXkgdmFuIGR1b2MgQ2h1IHRpY2ggDQp4YSBEb25nIFRoYW5oIFRyYW4gVmFuIFRl IHhhYyBuaGFuLiBDaHVhIGhldCwgY3VuZyBjaGluaCBvbmcgVHJhbiBWYW4gVGUgc2F1IG5heSwg DQp2YW8gY3VvaSBuYW0gMjAwNCB2YSBkYXUgbmFtIDIwMDUgY29uIHhhYyBuaGFuIGtob25nIGNo byBUaGFuaCBQaGF0IGRhIGRlbiBidSBnaWFpIA0KdG9hIHhvbmcgcGhhbiBkaWVuIHRpY2ggaG9u IDE4IGhhLCBsYSBjaHVuZyBjdSBxdWFuIHRyb25nIGRlIGNvbmcgdHkgbmF5IGhvYW4gdGF0IGhv IHNvIHZheSBuZ2FuIGhhbmcgbGF5IDUuMDAwIGx1b25nIHZhbmcuDQoNCkxpZW4gcXVhbiBkZW4g ZHUgYW4gY3VhIENvbmcgdHkgVGhhbmggUGhhdCwgdmFvIG5nYXkgMTUuMTIuMjAwNiwgVUJORCBU UC5IQ00gZGEgDQpyYSBxdXlldCBkaW5oIHRodSBob2ksIGh1eSBibyBjYWMgcXV5ZXQgZGluaCBn aWFvIGRhdCBjaG8gY29uZyB0eSBuYXkuIFF1eWV0IGRpbmggbmV1IHJvOiANCiJMeSBkbyB0aHUg aG9pOiBDb25nIHR5IFRoYW5oIFBoYXQgdmEgbW90IHNvIGNhbiBibyBjb25nIGNodWMsIHZpZW4g Y2h1YyBjbyB0cmFjaCANCm5oaWVtIHRhaSBodXllbiBIb2MgTW9uIHZhIHhhIERvbmcgVGhhbmgg ZGEgbGFtIHNhaSBsZWNoIG5vaSBkdW5nIHBoYXAgbHkgaG8gc28sIHhhYyANCm5oYW4gYm9pIHRo dW9uZywgY2h1eWVuIG5odW9uZyBxdXllbiBzdSBkdW5nIGRhdCBraG9uZyBkdW5nIi4gUXV5ZXQg ZGluaCBjdW5nIGdpYW8gDQpVQk5EIGh1eWVuIEhvYyBNb24gdGh1IGhvaSBiYW4gY2hpbmggY2Fj IHF1eWV0IGRpbmggZ2lhbyBkYXQgY3VhIFVCTkQgVFAgbm9wIHZlIA0KY2hvIFNvIFRhaSBuZ3V5 ZW4gdmEgTW9pIHRydW9uZzsga2llbSBkaWVtIHZhIHh1IGx5IG5naGllbSBraGFjIG5odW5nIG5n dW9pIHZpIA0KcGhhbS4gVGhlIG5odW5nLCB0aGVvIHRpbSBoaWV1IGN1YSBjaHVuZyB0b2ksIGRl biBuYXkgY2FjIGJhbiBjaGluaCBxdXlldCBkaW5oIGN1YSANClVCTkQgVFAgdmFuIGNodWEgdGhl IHRodSBob2kgZG8gQ29uZyB0eSBUaGFuaCBQaGF0IGRhIGRlbS4uLiBjYW0gbmdhbiBoYW5nLiBD b24gDQp2aWVjIGtpZW0gZGllbSwgeHUgbHkgY2FjIGNhIG5oYW4gc2FpIHBoYW0gY3VuZyBjaHVh IHRoYXkgY29uZyBibywgdGhhbSBjaGkgbmd1b2kgdHJ1YyANCnRpZXAgc2FpIHBoYW0gbmh1IG9u ZyBUcmFuIFZhbiBUZSB0aGkgdHJvIHRoYW5oIEJpIHRodSB4YSBEb25nIFRoYW5oLCBvbmcgRHVv bmcgTWluaCBUcnVuZyB2YSBjYWMgY2EgbmhhbiBzYWkgcGhhbSBraGFjIHZhbi4uLiB0YWkgY2h1 YyBtb3QgY2FjaCBraG8gaGlldS4NCg0KQ28gZHVvYyBiYW4geGFjIG5oYW4gZGVuIGJ1IGdpYWkg dG9hIHhvbmcsIFRoYW5oIFBoYXQgbmhhbmggY2hvbmcgaG9hbiB0YXQgaG8gc28gZGUgDQp4aW4g Z2lhbyBkYXQuIFRoZW8geWV1IGNhdSBjdWEgU28gVGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nLCB0 cm9uZyBobyBzbyB4aW4gZ2lhbyBkYXQgDQpwaGFpIGNvIGdpYXkgY2h1bmcgbmhhbiBxdXllbiBz dSBkdW5nIGRhdCAoYmFuIHBob3RvIGNvIGNodW5nIHRodWMgc2FvIHkgYmFuIGNoaW5oIA0KY3Vh IGh1eWVuKS4gTmh1bmcgdmkgY2h1YSBkZW4gYnUgY2hvIGRhbiBuZW4gVGhhbmggUGhhdCBraG9u ZyB0aGUgY28gZHVvYyAic28gZG8iIA0KZGVtIHBob3RvLCBzYW8geSBjaHVuZyB0aHVjLiBOZ3V5 ZW4gVGhpZW4gSG9hIChsdWMgbmF5IGRhIGxhbSBnaWFtIGRvYyBjb25nIHR5KSBsaWVuIA0Kbmdo aSByYSAiZG9jIGNoaWV1IiwgZ3VpIHRoYW5nIHZhbiBiYW4gY2hvIENoYW5oIHZhbiBwaG9uZywg VHJ1b25nIHBob25nIFR1IHBoYXAgDQpodXllbiwgZGUgbmdoaSBnaXVwIGNodW5nIHRodWMgc2Fv IHkgMjcgInNvIGRvIiB0cmVuIGJhbiBwaG90byBjbyBjaHVuZyB0aHVjIGN1YSANClVCTkQgeGEg RG9uZyBUaGFuaC4gVmF5IG5odW5nLCBkZSBuZ2hpIHRheSB0cm9pIG5heSBjdW5nIGR1b2MgVmFu IHBob25nIHZhIFBob25nIA0KVHUgcGhhcCBodXllbiBIb2MgTW9uIGNoYXAgdGh1YW4hIA0KDQpL aG9uZyBjaGkgeGFjIG5oYW4ga2hvbmcgYmFuZyB2YW4gYmFuLCB0cm9uZyBjYWMgY3VvYyBob3Ag VG8gY29uZyB0YWMgbGllbiBuZ2FuaCANCihkdW9jIHRoYW5oIGxhcCBkZSBnaWFpIHF1eWV0IGhv IHNvIHhpbiBnaWFvIGRhdCBjdWEgQ29uZyB0eSBUaGFuaCBQaGF0KSwgZGFpIGRpZW4gDQpVQk5E IGh1eWVuIEhvYyBNb24gbGEgb25nIER1b25nIE1pbmggVHJ1bmcgdmEgZGFpIGRpZW4gVUJORCB4 YSBEb25nIFRoYW5oIA0KY29uIHF1YSBxdXlldCB4YWMgbmhhbiBUaGFuaCBQaGF0IGRhIGhvYW4g dGhhbmggdmllYyBkZW4gYnUgZ2lhaSB0b2EgdmEgZGUgbmdoaSBjYWMgDQpuZ2FuaCBjaHVjIG5h bmcgeGVtIHhldCB0cmluaCBVQk5EIFRQIGdpYW8gZGF0IGNobyBUaGFuaCBQaGF0LiBUaW4gdmFv IGh1eWVuIHZhIHhhLCANCmNhYyB0aGFuaCB2aWVuIHRyb25nIFRvIGxpZW4gbmdhbmggZGV1ICJn YXQiLCB0aHVhbiBnaWFpIHF1eWV0IGhvIHNvLiBLZXQgcXVhIHNhdSBkbywgdmFvIA0KY3VvaSBu YW0gMjAwNCB2YSBkYXUgbmFtIDIwMDUsIFVCTkQgVFAgZGEgY28gY2FjIHF1eWV0IGRpbmggZ2lh byBkYXQgY2hvIFRoYW5oIA0KUGhhdCB0aHVjIGhpZW4gZHUgYW4gaG9uIDE4IGhhLg0KDQpMbyBt YXQgbHVhIGRhbw0KDQpUaGVvIHRyaW5oIHR1LCBzYXUga2hpIGR1b2MgZ2lhbyBkYXQsIFRoYW5o IFBoYXQgcGhhaSBraGFuIHRydW9uZyB0cmllbiBraGFpIGNhYyBidW9jIA0KcXV5IGhvYWNoLCBk YXUgdHUgaGEgdGFuZyB0aWVwIHRoZW8uIE5odW5nIG5odSBkYSBub2kgbyB0cmVuLCBkbyBraG9u ZyBjbyBuYW5nIGx1YyB0YWkgDQpjaGluaCwgZG9uZyB0aG9pIHZpZWMgInhpbiIgZHUgYW4ga2hv bmcgcGhhaSBkZSBkYXUgdHUgaGEgdGFuZywgbmVuIHRodWMgdGUgY2hhbmcgY28gaG9hdCANCmRv bmcgZGF1IHR1IHhheSBkdW5nIG5hbyBvIGRheS4gVmFvIHRoYW5nIDkuMjAwNSwgTmd1eWVuIFRo aWVuIEhvYSBtYW5nIHRvYW4gYm8gaG8gDQpzbyBkdSBhbiBkZW4gdGhlIGNoYXAgZGUgdmF5IDUu MDAwIGx1b25nIHZhbmcgdGFpIE5nYW4gaGFuZyBOLiwgY2hpIG5oYW5oIENobyBMb24sIA0Kdm9p IGhpbmggdGh1YyB2YXkgbGFtIGR1IGFuLiBDbyB0aWVuIHRyb25nIHRheSwgSGEgLSBIb2EgY2hp IG1vdCBwaGFuIG5obyBkZSBkZW4gYnUgZ2lhaSANCnRvYSB2YSBkdXkgdHJpIGhvYXQgZG9uZyBu aG8gZ2lvdCBjdWEgZHUgYW47IGR1YSBEdW9uZyBNaW5oIFRydW5nIHZhIG1vdCBzbyBjYW4gYm8g DQpodXllbiBIb2MgTW9uICJtdW9uIiBuaGlldSB0aSBkb25nIGRlICJsYW0gYW4iLi4uIFNvIGNv biBsYWksIEhvYSBkZW0gc2FtIHhlIGhvaSBkb2kgDQptb2ksIHRyYSBubyB2YS4uLiBudW9uZyB2 YW8gc29uZyBiYWMhIERhdSB0aGFuZyAyLjIwMDcsIENvbmcgYW4gVFAuSENNIGJhdCBuZ28gYXAg DQp2YW8gY2FuIG5oYSAzNy80WCBOZ3V5ZW4gVmFuIEx1b25nLCBRLkdvIFZhcCwgVFAuSENNLCBi YXQgcXVhIHRhbmcgbW90IHNvbmcgYmFjIA0KbG9uLCB0aGkgcGhhdCBoaWVuIG9uZyBHaWFtIGRv YyBDb25nIHR5IFRoYW5oIFBoYXQga2hvbmcgY2hpIGxhIG1vdCB0YXkgY28gYmFjIGtoZXQgDQp0 aWVuZyBtYSBjb24gbGEga2UgY2FtIGRhdSB0byBjaHVjIHNvbmcgYmFjIG5heS4NCg0KVHJvbmcg bHVjICJjaG9uZyIgeG8ga2hhbSwgYmVuIG5nb2FpIFRyYW4gVGhpIEhhIG9tIGx1b24gY29uIGRh dSBjdW5nIHRpZW4gYmFjIGN1YSANClRoYW5oIFBoYXQgYm8gdHJvbiwgZGUgbWFjIGtodSBkYXQg ZHUgYW4gY28gZGFpIG1vYyBkYXkgY3VuZyBuaHVuZyAiZG9uZyBtaW5oIiBtb3QgDQp0aG9pIGRh bmcgaG9hbmcgbWFuZyB2aSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgZGEgdmFvIGN1b2MgbGFtIHJv IHZ1IHZpZWMuDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMC0xNzU3ODA5ODk3L1NhaV9waGFt X25naGllbV90cm9uZ190cm9uZ19xdWFuX2x5X2RhdF9kYWlfb19Ib2NfTW9uX1RQSENNbmJzcC5o dG1sIE5ob20gUFYgWGEgSG9pIA0KDQpUUC5IQ006IFNhaSBwaGFtIG5naGllbSB0cm9uZyB0cm9u ZyBxdWFuIGx5IGRhdCBkYWkgbyBIb2MgTW9uLCBUUC5IQ00gLSBCYWkgMjogTGFuaCBkYW8gaHV5 ZW4gSG9jIE1vbiBjbyBiaSAiYml0IG1hdCI/IA0KDQooQW5oOiBDb24gZHVvbmcgb25nIEtob2Ug dHVuZyBjaG8gZGljaCBjaHV5ZW4gMyBtZXQgZGUgIm5lIiBjdWEgeHVvbmcgbWF5KQ0KDQpWdSBn aXVwIENvbmcgdHkgVGhhbmggUGhhdCBjbyBob2kgY2hpZW0gZHVuZyBoYW5nIG5nYW4gbHVvbmcg dmFuZyBjdWEgTmhhIG51b2MgY2hpIA0KbGEgbW90IGRpZW4gaGluaCB0cm9uZyBjaHVvaSBuaHVu ZyBzYWkgcGhhbSB2ZSBxdWFuIGx5IGRhdCBkYWkgbyBIb2MgTW9uIC4gVGhlbyB0aW0gDQpoaWV1 IGN1YSBUaGFuaCBOaWVuLCBuaHVuZyBzYWkgcGhhbSB0cm9uZyBoYW5nIGxvYXQgZHUgYW4gZGFu ZyBkdW9jIGNhYyBjbyBxdWFuIGNodWMgDQpuYW5nIHRpZXAgdHVjIGxhbSBybyBkZSBkdWEgcmEg eHUgbHkgdHJ1b2MgcGhhcCBsdWF0LiANCg0KVXUgYWkgY2hvICJjbyIgcnV0IHRpZW4gTmhhIG51 b2MhIA0KDQpUdSBuYW0gMjAwMywgVUJORCBUUC5IQ00gY2hhcCB0aHVhbiB2YSBnaGkgdm9uIHhh eSBkdW5nIGNvIGJhbiBjaG8gSG9jIE1vbiANCmRhdSB0dSB4YXkgZHVuZyAzIHRydW9uZyBUSFBU IHRyZW4gZGlhIGJhbiwgZGFwIHVuZyBuaHUgY2F1IGhvYyBoYW5oIGN1YSBjb24gZW0gDQpuZ3Vv aSBkYW4gZGlhIHBodW9uZy4gDQoNCktob25nIGNoaSBnaGkgdm9uLCB0aGFuaCBwaG8gY29uIGNv IGNodSB0cnVvbmcgY2hvIGh1eWVuIG11b24gaGFuZyBjaHVjIHRpIGRvbmcgZGUgDQpuaGFuaCBj aG9uZyB0aW0gZGF0LCBnaWFpIHRvYSBkZW4gYnUgcGh1YyB2dSB2aWVjIHhheSB0cnVvbmcsIHRy YW5oIHRpbmggdHJhbmcgZ2lhIGRhdCBiaSANCmRheSBsZW4gY2FvIGdheSB0aGF0IHRob2F0IG5n YW4gc2FjaC4gVGhlIG5odW5nLCBraG9uZyBoaWV1IHNhbyBzdW90IG5oaWV1IG5hbSBsaWVuLCAN CkhvYyBNb24ga2hvbmcgdGhlIHRpbSBkdW9jIGRpYSBkaWVtIGRhdSB0dSB0cnVvbmcgaG9jLCB2 b2kgbHkgZG86ICJLaG9uZyB0aGUgdGhvYSANCnRodWFuIGR1b2Mgdm9pIG5ndW9pIGRhbiBnaWEg ZGVuIGJ1IHR1IDM2MC4wMDAgLSAzNzAuMDAwIGRvbmcvbTIiLCBjaG8gZHUgZGF0IHRyb25nIHRy ZW4gZGlhIGJhbiBraG9uZyBwaGFpIGl0LiANCg0KTHkgZG8gdHJlbiBjYW5nIGtob25nIHRoZSBo aWV1IGR1b2Mga2hpIHZhbyB0aGFuZyA4LjIwMDUsIHR1YyBob24gMiBuYW0gc2F1IGtoaSBkdW9j IA0KdGhhbmggcGhvIGdoaSB2b24gZGF1IHR1LCB0byBjb25nIHRhYyBjdW5nIGRvIGNoaW5oIFVC TkQgaHV5ZW4gSG9jIE1vbiBsYXAgKGdvbSANClBob25nIFRhaSBjaGluaCAtIEtlIGhvYWNoLCBC YW4gUXVhbiBseSBkdSBhbiB4YXkgZHVuZyB0cnVvbmcgaG9jLCBQaG9uZyBUYWkgbmd1eWVuIA0K LSBNb2kgdHJ1b25nLCBQaG9uZyBHaWFvIGR1Yy4uLikgbGFpIHRpbSBkdW9jIG1vdCBraHUgZGF0 IDQsMSBoYSB0aHVvYyB4YSBUYW4gSGllcCwgY28gDQp2aSB0cmkgdGh1YW4gbG9pIGRlIGxhbSB0 cnVvbmcgdmEgcXVhbiB0cm9uZyBsYSBuZ3VvaSBkYW4gZG9uZyB5IGNodXllbiBuaHVvbmcgdm9p IGdpYSANCnJlLCBraG9hbmcgMzYwLjAwMCBkb25nL20yLiANCg0KTmdheSAyNi44LjIwMDUsIG9u ZyBEdW9uZyBNaW5oIFRydW5nIHRoYXkgbWF0IHRvIGNvbmcgdGFjIGNvIHRvIHRyaW5oIGd1aSBV Qk5EIA0KaHV5ZW4gZGllbiBnaWFpIG11YyBnaWEgMzYwLjAwMCBkb25nIHZhIHhpbiBkdW9jIHRh bSB1bmcgODAlIG11YyBnaWEgbmF5IGNobyBvbmcgDQpOLlYuSywgbmd1b2kgY28gMTMuNDQzbTIg ZGF0IHRyb25nIHRvbmcgc28gNCwxIGhhLCB0b25nIHNvIHRpZW4gMyw4NyB0aSBkb25nLiBOZ2F5 IGhvbSANCnNhdSwgMjcuOC4yMDA1LCB0byB0cmluaCBjdWEgb25nIFRydW5nIGRhIGNvIGNodSBr eSBwaGUgZHV5ZXQgY3VhIENodSB0aWNoIFVCTkQgaHV5ZW4gDQpOZ3V5ZW4gVmFuIEtob2UuIFR1 b25nIHR1LCBvbmcgVHJ1bmcgdHJpbmggdmEgb25nIEtob2UgZHV5ZXQgZGEgdGFtIHVuZyBjaG8g MiBobyANCmRhbiBraGFjIGNvIGRhdCB0cm9uZyBraHUgNCwxIGhhLiBUb25nIHNvIHRpZW4gdGFt IHVuZyBjaG8gMyBobyBkYSBsZW4gZGVuIGhvbiA3LDcgdGkgDQpkb25nLiANCg0KU2Uga2hvbmcg Y28gZ2kgZGFuZyBub2kgbmV1IHRodWMgc3UgVUJORCBodXllbiBzYXUgbmhpZXUgbmFtIHZhdCB2 YSBkYSB0aW0gZHVvYyBnaWEgDQpkYXQgcmUsIG5lbiBwaGFpIG5oYW5oIGNob25nIHRhbSB1bmcg dGllbiBkZSAiZ2l1IGRhdCIgc2F1IGtoaSB0aG9hIHRodWFuIGR1b2Mgdm9pIG5ndW9pIA0KZGFu LiBUaHVjIHRlLCB0aGVvIHRpbSBoaWV1IGN1YSBjaHVuZyB0b2ksIHRvYW4gYm8gZGllbiB0aWNo IGhvbiAxLDM0IGhhIG9uZyBOLlYuSyBjbyANCmR1b2MgbGEgZG8gdnVhIGNodXllbiBuaHVvbmcg dHUgYmEgUC5ULkggbyBhcCBUaG9pIFRheSAxLCB4YSBUYW4gSGllcCB2YW8gZGF1IHRoYW5nIA0K Ny4yMDA1LCB2b2kgZ2lhIG1vaSBtMiB0aGFwIGhvbiAzNjAuMDAwIGRvbmcgcmF0IG5oaWV1LiBI YXUgaGV0IHRyb25nIHNvIGRhdCBuYXkgbGEgZGF0IHRyb25nIGx1YSBudW9jLiANCg0KVGhlbyBx dXkgZGluaCBjdWEgdGhhbmggcGhvLCBkYXQgY2h1eWVuIHRyb25nIGx1YSBudW9jIGNoaSBkdW9j IHBoZXAgY2h1eWVuIG5odW9uZyANCmNobyBuZ3VvaSBjdW5nIHF1YW4sIGh1eWVuLiBUcm9uZyBr aGkgZG8sIG9uZyBLLiBvIFEuMTIsIG5odW5nIGtob25nIGhpZXUgc2FvIHZhbiANCmNodXllbiBu aHVvbmcgZHVvYyBtb3QgZGllbiB0aWNoIGRhdCB0cm9uZyBsdWEgbG9uIG5odSB2YXkuIENodWEg aGV0LCBjaHV5ZW4gbmh1b25nIA0KZHVvYyAzIHR1YW4gdGhpIG9uZyBLLiBjbyBkdW9jIHNvIGRv IHRvYW4gYm8ga2h1IGRhdCBuYXksIG1vdCB0b2MgZG8gbGFtIHNvIGRvIGN1bmcgdmFvIA0KaGFu ZyAia3kgbHVjIiAocXV5IGRpbmggbGEgMzAgbmdheSkuIFRoZW8gZHUgbHVhbiB0YWkgZGlhIHBo dW9uZywgdHJvbmcgcGhpIHZ1IG5heSBvbmcgDQpOLlYuSyBkYSBsYWkga2hvYW5nIGdhbiAyIHRp IGRvbmcgdHJvbmcgdm9uZyBjaHVhIGRheSAxIHRoYW5nISBMeSBnaWFpIHZlIHN1IGxhbSBhbiBn YXAgDQp0aG9pIGN1YSBvbmcgSy4sIG5oaWV1IG5ndW9pIGRhbiBvIEhvYyBNb24gY2hvIGJpZXQg dmkgb25nIEsuIGxhIG1vdCAiY28iIGRhdCBjbyB0aWVuZyANCnZhIGNvIG1vaSBxdWFuIGhlIHRo YW0gdGluaCB2b2kgbmhpZXUgY2FuIGJvIG8gSG9jIE1vbi4gDQoNCihBbmg6IER1b25nIHZhbyBr aHUgZGFuIGN1ICBEYWkgSGFpKSANCg0KQ3VuZyB2b2kga2lldSAidHVuZy1odW5nIiBuaHUgdHJl biBsYSBwaGkgdnUgZGVuIGJ1IDEgaGEgZGF0IG8gYXAgMywgeGEgRG9uZyBUaGFuaCB0cmEgDQpj aG8gSG9pIG5ndW9pIEhvYSBkZSBsYW0gbmdoaWEgdHJhbmcuIE5nYXkgMjkuMTEuMjAwNCwgaHV5 ZW4gSG9jIE1vbiBtb2kga3kgcXV5ZXQgDQpkaW5oIHRoYW5oIGxhcCBIb2kgZG9uZyBjaHV5ZW4g bmh1b25nIHF1eWVuIHN1IGR1bmcgZGF0IHZhIHNhbiBsYXAgMSBoYSBkYXQgdHJhIGNobyANCkhv aSBuZ3VvaSBIb2EsIG5odW5nIHRydW9jIGRvIG5nYXkgMi4xMSBDaHUgdGljaCB4YSBEb25nIFRo YW5oIFRyYW4gVmFuIFRlIGN1bmcgDQpjYW4gYm8gZGlhIGNoaW5oIHhhIE5ndXllbiBWYW4gRG8g ZGEgdnVvdCBxdXllbiBjaHUgdGljaCBodXllbiB2YSBxdWEgbWF0IGx1b24gaG9pIA0KZG9uZywg dGhvYSB0aHVhbiBnaWEgY2h1eWVuIG5odW9uZyBnYW4gNS4wMDBtMiBkYXQgY3VhIG9uZyBELlYu VCwgbyBEb25nIFRoYW5oIA0KKGN1bmcgbGEgbW90ICJkYXUgbmF1IiBkYXQgY28gdGllbmcgdGFp IEhvYyBNb24pIHZvaSBnaWEgMzIwLjAwMCBkb25nL20yLCB0b25nIHNvIHRpZW4gDQpsZW4gZGVu IGhvbiAxLDU3NyB0aSBkb25nLiANCg0KR2lhIG5heSBzYXUgZG8gZHVvYyB0cmluaCBsZW4gY2hv IER1b25nIE1pbmggVHJ1bmcgdmEgVHJ1bmcgbGFpIGNvIHRvIHRyaW5oIGNodSB0aWNoIA0KaHV5 ZW4gZHV5ZXQgdGFtIHVuZyBraW5oIHBoaSB0dSBuZ3VvbiB2b24gbmdhbiBzYWNoIGh1eWVuLiBU byB0cmluaCBuZ2F5IDMuMi4yMDA1IHRoaSANCm5nYXkgdHJvbmcgbmdheSBkYSBkdW9jIGNodSB0 aWNoIGh1eWVuIGNobyBwaGVwIHRhbSB1bmcgaG9uIDczOCB0cmlldSBkb25nISBMYWkgbW90IA0K a3kgbHVjIHZlIHRodSB0dWMgaGFuaCBjaGluaCBkdW9jIHhhYyBsYXAsIG5odW5nIGRpZXUgZGFu ZyBub2kgbGEgdGhlbyBuaGlldSBuZ3VvaSBkYW4gDQpkaWEgcGh1b25nLCBnaWEgZGF0IHRhaSBr aHUgMSBoYSBuYXkgdmFvIHRob2kgZGllbSBjdW9pIG5hbSAyMDA0IGNoaSBraG9hbmcgdHJlbiAN CjEwMC4wMDAgZG9uZy9tMiwgYmFuZyAxLzMgZ2lhIG9uZyBULiBkdW9jIGRlbiBidSEgDQoNCk9u ZyBjaHUgdGljaCBodXllbiBjbyBiaSAiYml0IG1hdCI/DQoNCkhhbiBiYW4gZG9jIEJhbyBUaGFu aCBOaWVuIGNvbiBuaG8gdnUgMS4wMDAgY2FuIG5oYSB4YXkgdHJhaSBwaGVwIG8geGEgVGhvaSBU YW0gDQpUaG9uLCBodXllbiBIb2MgTW9uLCBwaGEgdm8gcXV5IGhvYWNoIGhhbmcgY2h1YyBoYSwg ZGVuIG5heSB2YW4gY2h1YSBnaWFpIHF1eWV0IGhldCANCmhhdSBxdWEsIGhhbmcgbmdhbiBobyBk YW4gdmFuIGRhbmcgcGhhaSBzb25nIHRyb25nIG5vaSB0aGFwIHRob20gc28gYmkgZ2lhaSB0b2Eu IFZhbyANCnRoYW5nIDExLjIwMDUsIHNhdSBraGkgVGhhbmggTmllbiBjbyBsb2F0IGJhaSBwaGFu aCBwaHVpIHZ1IHZpZWMsIHRyYSBsb2kgQmFvIFRoYW5oIA0KTmllbiB2ZSB0cmFjaCBuaGllbSBj dWEgY2hpbmggcXV5ZW4gaHV5ZW4gdHJvbmcgdnUgdmllYyBuYXksIENodSB0aWNoIFVCTkQgaHV5 ZW4gDQpIb2MgTW9uIE5ndXllbiBWYW4gS2hvZSBkYSBjbyBjYXUgbm9pICJub2kgdGllbmciOiAi Tm8gdGhhbmggY2FpIGNobyB0cm9pIG8gZHVvaSBtYSANCm1pbmggdHJlbiBuYXkga2hvbmcgYmll dCIuIFRyb25nIHZ1IHZpZWMgbmF5LCBvbmcgS2hvZSBjaG8gcmFuZyBtaW5oIGRhIHF1YSB0aW4g dmFvIA0KY2FwIGR1b2kgdmEgYmkgY2FwIGR1b2kgcXVhIG1hdC4gUmF0IG5oaWV1IGJhbiBkb2Mg c2F1IGRvIGd1aSB0aG9uZyBkaWVwIGRlbiBiYW8gdG8gdGhhaSANCmRvIGtob25nIGhhaSBsb25n IHZvaSBjYWNoIHRyYSBsb2kgY3VhIG9uZyBLaG9lLiANCg0KTmh1bmcgZG8gbGEgY2h1eWVuIGN1 LiBDaHV5ZW4gbW9pLCB2dSB2aWVjIENvbmcgdHkgVGhhbmggUGhhdCwgdGhlbyB0aG9uZyB0aW4g Y3VhIA0KY2h1bmcgdG9pIG9uZyBLaG9lIGN1bmcgY2hvIHJhbmcgbWluaCBiaSBxdWEgbWF0IHZh IGRvIHZheSBoZXQgdHJhY2ggbmhpZW0gY2hvIGNhcCANCmR1b2kgY3VuZyBuaHUgVG8gY29uZyB0 YWMgbGllbiBuZ2FuaCBkbyBTbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcgZHVuZyBkYXUuIFR1 eSANCm5oaWVuLCBjbyBuaHVuZyBiYW5nIGNodW5nIGNobyB0aGF5IG9uZyBjaHUgdGljaCBodXll biBraG9uZyB0aGUgY2hvaSBibyB0cmFjaCBuaGllbS4gDQoNCkN1IHRoZSwgY3VvYyBob3AgVG8g bGllbiBuZ2FuaCBuZ2F5IDI1LjEuMjAwNSwgYmEgTmd1eWVuIFRoaSBDYW0gVmFuLCB1eSB2aWVu IA0KdGh1b25nIHRydWMgVG8gY29uZyB0YWMgbGllbiBuZ2FuaCBkYSBjbyB5IGtpZW46ICJUcm9u ZyB0cnVvbmcgaG9wIGh1eWVuIEhvYyBNb24gDQpuaGFuIHRoYXkgY28gdGhlIGdpYW8gZGF0IHRy dW9jLCBzYXUgZG8gaHV5ZW4gc2UgY28gdHJhY2ggbmhpZW0ga2hhbiB0cnVvbmcgbGFwIGhvYW4g DQpjaGluaCAxLzIuMDAwIHZhIHRyaW5oIGR1eWV0IHRoZW8gcXV5IGRpbmggdGhpIGh1eWVuIHNl IGNvIHZhbiBiYW4gZGUgbmdoaSBjaGluaCB0aHVjLCANClNvIHNlIHRyaW5oIFVCTkQgVFAgZ2lh byBkYXQiLiANCg0KS2V0IHRodWMgY3VvYyBob3AsIGNhYyB0aGFuaCB2aWVuIGN1bmcgdGhvbmcg bmhhdCBkZSB4dWF0OiAiVGh1YW4gdHJpbmggVUJORCBUUCBzYXUgDQpraGkgaHV5ZW4gY28gdmFu IGJhbiBkZSBuZ2hpIHRodWMgaGllbiB0aGVvIG5vaSBkdW5nIHRyZW4iLiBOb2kgZHVuZyBuYXkg Y2hvIHRoYXkgdmllYyANCmNvIHRyaW5oIFRQIGdpYW8gZGF0IHRydW9jIGtoaSBjbyBxdXkgaG9h Y2ggMS8yLjAwMCBjaG8gVGhhbmggUGhhdCBoYXkga2hvbmcgY2h1IHlldSANCmR1YSB2YW8gVUJO RCBodXllbiBIb2MgTW9uLiBWYSBuZ2F5IDEuMi4yMDA1LCBvbmcgS2hvZSBkYSBjbyB2YW4gYmFu IHNvIDgyL1VCIA0KZ3VpIFNvIFRhaSBOZ3V5ZW4gdmEgTW9pIHRydW9uZywgdm9pIG5vaSBkdW5n OiAiVXkgYmFuIGh1eWVuIEhvYyBNb24geGV0IHRoYXkgZHUgYW4gDQpuZXUgdHJlbiBjdWEgQ29u ZyB0eSBUaGFuaCBQaGF0IGNvIHRoZSBnaWFvIGRhdCB0cnVvYywga2hvbmcgZ2F5IGFuaCBodW9u ZyBnaSBkZW4gcXV5IA0KaG9hY2ggc3UgZHVuZyBkYXQuLi4iLiBVeSBiYW4gaHV5ZW4gZGEgInhl dCIgdGhpIGtob25nIHRoZSBub2kgYmkgInF1YSBtYXQiLiANCg0KS2hvbmcgY2hpIHRyb25nIHZ1 IFRoYW5oIFBoYXQsIGNvbiBuaGlldSBiYW5nIGNodW5nIGtoYWMgY2hvIHRoYXkgb25nIGNodSB0 aWNoIGh1eWVuIA0KZGEgIm51b25nIHRheSIgY2hvIG5oaWV1IHNhaSBwaGFtIHZlIGRhdCBkYWkg dHJlbiBkaWEgYmFuLiBWYSBtb3QgdHJvbmcgbmh1bmcgdnUgdmllYyANCmRhIHRybyB0aGFuaCAi Z2lhaSB0aG9haSIga2hpIG9uZyBjaG8gZG9hbmggbmdoaWVwIGRpY2ggY2h1eWVuIGNhIG1vdCBj b24gZHVvbmcgY2hpIHZpIA0KIm1lIHRpbiBkaSBkb2FuIi4gDQoNClZhbyBuaHVuZyBuYW0gY3Vv aSB0aGFwIG5pZW4gOTAsIEROVE4gRGFpIEhhaSBkbyBiYSBOLlQuRyBsYW0gZ2lhbSBkb2MgdGh1 YyBoaWVuIA0KZHUgYW4ga2h1IG5oYSBvIHRhaSB4YSBYdWFuIFRob2kgVGh1b25nLCBodXllbiBI b2MgTW9uLiBEdSBhbiBzYXUgbmF5IGR1b2MgdGhhbmggDQp0cmEga2V0IGx1YW4gY28gcmF0IG5o aWV1IG5odW5nIHNhaSBwaGFtLCBuaHUga2hvbmcgdGh1YyBoaWVuIGRheSBkdSBjYWMgaGFuZyBt dWMgDQpkdW9uZyBnaWFvIHRob25nLCBkaWVuLCBudW9jLCB2aWEgaGUsIGNvbmcgdmllbjsgdHUg eSBwaGEgdm8gcXV5IGhvYWNoLCB4YXkgbmhhIGxhbiBsZW4gDQpkYXQgY29uZyB2aWVuLCBjaG8g eGF5IGR1bmcgaG9uIDEyMCBjYW4gbmhhIGtob25nIHBoZXAuLi4gRGFjIGJpZXQsIHRoZW8gY2Fj IGNoaSB0aWV1IA0KcXV5IGhvYWNoIGR1b2MgZHV5ZXQsIHRyb25nIGR1IGFuIGtob25nIGhlIGNv IGRhdCBzYW4geHVhdCwgbmh1bmcgdmFuIG1vYyBsZW4gbW90IA0KeHVvbmcgbWF5LiANCg0KS2hv aSBoYWkgaG9uLCB2YW8gbmdheSA4LjguMjAwMCwgR2lhbSBkb2MgRGFpIEhhaSBjbyBkb24geGlu IGNoaW5oIGR1b25nIHZvaSBub2kgDQpkdW5nOiAiS2luaCB0aHVhIHV5IGJhbiBoaWVuIG5heSBE TlROIERhaSBIYWkgZGFuZyBxdXkgaG9hY2gga2h1IGRhbiBjdSB0YWkgeGEgDQpYdWFuIFRob2kg VGh1b25nIGh1eWVuIEhvYyBNb24uIENvbiBkdW9uZyBuYW0gdHJvbmcga2h1IHF1eSBob2FjaCBt byByb25nIDEgaGEgDQpkYXQgdGhhbmcgdmFvIHh1b25nIG1heSBwaGFwLiBWaSBxdWFuIHRhbSB2 YSBwaHVjIHZ1IGtoYWNoIGhhbmcuIEhvIHRoYWMgbWFjIGxhIA0Ka2hvbmcgZHVvYyBkYXQgZHVv bmcgbmhpbiB0aGFuZyB2YW8gZ2l1YSB4dW9uZyBjdWEgaG8sIG5lbiB0b2kgbGFtIGRvbiBuYXkg ZGUgbmdoaSB1eSANCmJhbiBnaXVwIGRvIGhvIGNobyBjaG8gRE4gRGFpIEhhaSB4aW4gZGljaCBj b24gZHVvbmcgdmUgcGhpYSB0YXkgYmFjIDNtLiBEZSB0cmFuaCBzdSANCmJ1b24gcGhpZW4gY3Vh IHh1b25nIG1heSBuYW0gdHJvbmcga2h1IERhaSBIYWksIGdpdXAgcGhhbiBvbiBkaW5oIHR1IHR1 b25nIGN1YSANCnh1b25nIHllbiB0YW0gc2FuIHh1YXQiICh0cmljaCBuZ3V5ZW4gdmFuKS4gQmF0 IGNoYXAgbm9pIGR1bmcgZG9uIGRheSB0aW5oICJtZSB0aW4gZGkgDQpkb2FuIiB2YSB0aGVvIHF1 eSBob2FjaCBkdW9jIGR1eWV0IHRyb25nIGtodSBkYW4gY3Uga2hvbmcgY28geHVvbmcgc2FuIHh1 YXQsIG5nYXkgDQp0cm9uZyBuZ2F5IDguOC4yMDA1LCBvbmcgTmd1eWVuIFZhbiBLaG9lIGx1YyBu YXkgbGEgUGhvIGNodSB0aWNoIGh1eWVuIGRhIHBoZSAiRG9uZyANCnkgY2hvIGRpY2ggY29uIGR1 b25nIGRhaSBwaGFuIGNhY2ggbm9pIGJvIHZlIHBoaWEuLi4gbGEgMDNtIChiYSkuLi4iLiANCg0K aHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vZGVmYXVsdC5hc3B4P0NUPU5XJk5JRD0zMzMy MyBUaHUgc2F1LCAxOC8xMi8yMDA5DQoNClRQIEhDTTogVGhhbSBuaHVuZyBraWV1Li4uIE5ndXll biBWYW4gS2hvZQ0KDQpIYWkgY2h1IGt5ICJUSFVBTiBESUEgRElFTSIgZ2lhIC4uLiBib24gdHJh bSB0cmlldSBkb25nIQ0KDQpDaHVhIGhvYyBoZXQgY2FwIGhhaSBuaHVuZyBraGVvIGFuIG5vaSwg Tmd1eWVuIFZhbiBLaG9lIGR1b2MgbmhhbiB2YW8gbGFtIG5oYW4gdmllbiB2YW4gaG9hIA0KdGhv bmcgdGluIHhhIEFuIFBodSBEb25nLCBodXllbiBIb2MgTW9uLCBzYXUgZG8gbGVvIGxlbiBnaGUg Q2h1IHRpY2ggeGEuIERlIHRyZW8gY2FvLCBjaHVpIHNhdSwgDQpLaG9lIHRpbSBjYWNoICJ0b3Qg bmdoaWVwIGRhaSBob2MiLCAiYW0iIGx1b24gYmFuZyAidGhhYyBzaSBraW5oIHRlIi4gDQoNClRo YW5nIHRpZW4gdmUgaHV5ZW4gSG9jIE1vbiwgS2hvZSBnaXUgY2h1YyBUcnVvbmcgcGhvbmcgS2lu aCB0ZSB0dSBuYW0gMTk5NSwgUGhvIGNodSB0aWNoIG5hbSAxOTk3IA0Kcm9pIGNoaWVtIGNoZSBu Z29pIHZhbyBnaGUgQ2h1IHRpY2ggVUJORCBodXllbiBuYW0gMjAwMC4gQmVuIGNhbmggbmhvbSBj YW4gYm8gZHVvaSB0cnVvbmcgZHVvYyBzYW5nIA0KdHV5ZW4sIEtob2Uga2V0IGdpYW8gdm9pIG5o aWV1ICJjaGllbiBodXUiIGxhICBkYXUgbmF1LCAiY28iIGRhdCwgY2h1IGRvYW5oIG5naGllcC4u LiBoaW5oIHRoYW5oIA0KZHVvbmcgZGF5IGNodXllbiB0aHUgZ29tLCBkYXUgY28gZGF0LCBjaGF5 IGR1IGFuLCBiYW8ga2Ugc2FuIGxhcCwgeGF5IGR1bmcgbGF1LiANCg0KU28gdm9pIGR1b25nIGRh eSB0aWV1IGN1YyBkYXQgZGFpIG8gR28gVmFwIGN1YSBuZ3V5ZW4gQ2h1IHRpY2ggVUJORCBxdWFu IFRyYW4gS2ltIExvbmcgdGhpIGR1b25nIGRheSANCmN1YSBLaG9lIGdoZSBnb20gaG9uIG5oaWV1 Li4uDQoNCmh0dHA6Ly92aS53aWtpcGVkaWEub3JnL3dpa2kvVHIlQzYlQjAlQzYlQTFuZ19UJUUx JUJBJUE1bl9TYW5nDQoNClRydW9uZyBUYW4gU2FuZyBsZW4gY2h1YyBVeSB2aWVuIEJvIGNoaW5o IHRyaSAtIEJpIHRodSBUaGFuaCB1eSBUcCBIQ00gDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS90 cF9oY21fYmF0X2toYW5fY2FwX2tlX2hpZXBfZGFtX2NoYXVfYmVfOF90dW9pLTYtMjEyNTE3MTMu aHRtbCBDYXAgbmhhdDogMzAvMTEvMjAwNyAtIDA1OjM2IC0gTmd1b246IHZuTWVkaWEudm4NCg0K VFAgSENNOiBUaGVtIDEgY2hhdSBiZSAoOCB0dW9pKSBiaSBoaWVwIGRhbSANCg0KaHR0cDovL3Zu ZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYvMTAvM0I5RUZBREQvIDI1LzEwLzIwMDYsIDEwOjM5 IEdNVCs3DQoNClRQIEhDTTogU3VjIGNoaWVuIGRhdSBjdWEgdG8gY2h1YyBEYW5nIHJhdCB5ZXUs IHRoYW0gY2hpIG5oaWV1IG5vaSBtYXQgbHVvbiBzdWMgY2hpZW4gZGF1IA0KDQpodHRwOi8vdm5l eHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8xMC8zQjlFRkFERC8gMjUvMTAvMjAwNiwgMTA6Mzkg R01UKzcNCg0KVFAgSENNOiBUbyBjaHVjIERhbmcgaXQgcGhhdCBoaWVuIHRpZXUgY3VjLCBsYW5n IHBoaSB0YWkgZG9uIHZpIG1pbmgsIGhheSBkdW5nIGhvbiBsYSB0aGFtIG5odW5nIGJpIHRvIGNo dWMgRGFuZyBwaGF0IGhpZW4gbGEgZGFjIGJpZXQgaGllbS4gDQoNCmh0dHA6Ly92bmV4cHJlc3Mu bmV0L0dML1hhLWhvaS8yMDA2LzEwLzNCOUVGQURELyAyNS8xMC8yMDA2LCAxMDozOSBHTVQrNw0K DQpUUCBIQ006IE5oaWV1IHRvIGNodWMsIGtoaSBjbyBjYSBuaGFuIHNhaSBwaGFtLCB0aHVvbmcg ZHVhIHJhIG5odW5nIGhpbmggdGh1YyBreSBsdWF0IHJhdCBuaGUsIGtob25nIHRodXlldCBwaHVj IG1vaSBuZ3VvaS4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMDkvMDkv ODY3MTY1LyAxODozMiwgMDYvMDkvMjAwOSAoR01UKzcpDQoNClRQIEhDTTogQ28gZGVuIDUwJSB0 b25nIGRpZW4gdGljaCBraG8gYmFpIGhpZW4gbmF5IHRyZW4gZGlhIGJhbiBUUCBjb24gYm8gdHJv bmcsIHN1IGR1bmcgc2FpIG11YyBkaWNoLCBsYW5nIHBoaS4gDQoNCmh0dHA6Ly93d3cuYmFvbW9p LmNvbS9JbmZvL1RQSENNLVlldS1yYXUteGFuaC1oaWVwLWRhbS1iZS1nYWktMTItdHVvaS8xMDQv NDY3ODAxMS5lcGkgMyB0aGFuZyB0cnVvYyAgR2lhZGluaC5uZXQgDQoNClRQSENNOiAiWWV1IHJh dSB4YW5oIiBoaWVwIGRhbSBiZSBnYWkgMTIgdHVvaSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL2NoaW5odHJpLzIwMDkvMDkvODY3MTY1LyAxODozMiwgMDYvMDkvMjAwOSAoR01UKzcpDQoN ClRQLkhDTSBsYW5nIHBoaSAxMDAgdHJpZXUgbTIgZGF0IGNvbmcgIA0KDQpodHRwOi8vd3d3LmJh bnRpbm5oYWRhdC52bi9sYW5nLXBoaS1tYXQtYmFuZy10YWktdHBoY20tNDg5Lmh0bWwgVGhlbyBE YXUgVHUgMDcvMDEvMjAxMA0KDQpMYW5nIHBoaSBtYXQgYmFuZyB0YWkgVFAuSENNIA0KDQpDYWMg a2h1IGRhdCBkbyBjYWMgZG9hbmggbmdoaWVwIG5oYSBudW9jIHF1YW4gbHkgdGFpIFRQLkhDTSB0 aHVvbmcgY28gdHkgbGUgc3UgZHVuZyANCmRhdCBjaHVhIGRlbiA1MCUuIENhYyBrZSBob2FjaCB0 aHUgaG9pIGN1bmcgYmF0IGRhdSB0dSBuYW0gMjAwMCwgbmh1bmcgZGVuIG5heSwgaGlldSANCnF1 YSB2YW4gY29uIHJhdCBoYW4gY2hlLg0KDQpPbmcgVHJhbiBOYW0gVHJhbmcsIFBobyBnaWFtIGRv YyBTbyBUYWkgY2hpbmggVFAuSENNIGNobyBiaWV0LCBuYW0gMjAwOSwgVFAgdGh1IA0KaG9pICA0 OSBkaWEgY2hpIG5oYSBkYXQgKHZvaSBkaWVuIHRpY2ggdHJlbiAxMTYuMDAwIG0yKSBjbyBoaWV1 IHF1YSBzdSBkdW5nIHRoYXAuDQoNCkNvbiBzbyBuYXkgbGEga2V0IHF1YSBsb24gbmhhdCB0cm9u ZyBjb25nIHRhYyB0cmVuIGtlIHR1IG5hbSAyMDAwIHZhIGNoaWVtIGRlbiAzNiUgdHJlbiANCnRv bmcgc28gZGlhIGNoaSBkYSB0aHUgaG9pLg0KDQpOaHUgdmF5LCB0aW5oIGRlbiB0aG9pIGRpZW0g bmF5LCBUUCBkYSB0aHUgaG9pIGR1b2MgMTc3IGRpYSBjaGkgbmhhIGRhdCwgdm9pIGRpZW4gdGlj aCANCnRyZW4gMzk1LjI4OCBtMi4gRGEgcGhhbiwgbmh1bmcga2h1IGRhdCBkYSB0aHUgaG9pIHNl IGR1b2MgYm8gdHJpIHhheSBkdW5nIGNhYyBjb25nIA0KdHJpbmggY29uZyBjb25nICh0cnVvbmcg aG9jLCBiZW5oIHZpZW4uLi4pLiBOZ29haSByYSwgVFAgY3VuZyBkYSB0byBjaHVjIGRhdSBnaWEg dmEgDQpjaHV5ZW4gbmh1b25nIHF1eWVuIHN1IGR1bmcgZGF0IGN1YSAxOSBkaWEgY2hpIGRhdCBk ZSB0YW8gbmd1b24gdGh1IG5nYW4gc2FjaC4NCg0KKFRpbmggZGVuIHRob2kgZGllbSBuYXksIFRQ LkhDTSBkYSB0aHUgaG9pIGR1b2MgdHJlbiAzOTUuMjg4IG0yLiBBbmggbWluaCBob2EuKQ0KDQpN b3QgdGhvbmcga2Uga2hhYyBkdW9jIHBoYW4gYW5oIHRyb25nIGNodW9uZyB0cmluaCAiTm9pIHZh IExhbSIgY3VhIERhaSBUcnV5ZW4gaGluaCANClRQLkhDTSB2ZSB2YW4gZGUgdHJlbiBjaG8gdGhh eSwgZGVuIGN1b2kgbmFtIDIwMDgsIFRQIGNvIDQxMCBraHUgZGF0IGRvIGNhYyBkb2FuaCANCm5n aGllcCBuaGEgbnVvYyBkYW5nIHN1IGR1bmcgaG9hYyBxdWFuIGx5LCB2b2kgZGllbiB0aWNoIGdh biA2IHRyaWV1IG0yLg0KDQpUcm9uZyBkbywgZGllbiB0aWNoIGRhdCBzdSBkdW5nIGR1bmcgbXVj IGRpY2ggbyB2YW8ga2hvYW5nIDIuNTAzLjAwMCBtMiwgdmEgZGllbiB0aWNoIA0KY2hvIHRodWUg dHJhaSBxdXkgZGluaCBsYSAyNC41MzQgbTIuIFRyb25nIGtoaSBkbywgdGhlbyBvbmcgTmd1eWVu IFZhbiBIb25nLCBUcnVvbmcgDQpwaG9uZyBraW5oIHRlIGRhdCwgU28gVGFpIG5ndXllbiBNb2kg dHJ1b25nIFRQLkhDTSwgc28gbWF0IGJhbmcsIGtobyBiYWkgbGFuZyBwaGkgDQp0aW5oIGRlbiB0 aGFuZyAxMC8yMDA5IGxhIDIyMCBoYS4NCg0KTyB2YWkgdHJvIGdpYW0gc2F0LCBvbmcgTmd1eWVu IE1pbmggSG9hbmcsIG5ndXllbiBUcnVvbmcgYmFuIEtpbmggdGUgTmdhbiBzYWNoIA0KSERORCBU UCBjaG8gcmFuZywgQmluaCBUYW4sIHF1YW4gOCwgQ29uZyB0eSBMdW9uZyB0aHVjLCBDb25nIHR5 IEtobyBiYWkgbGEgbmh1bmcgDQoiZGlhIGNoaSIgbGFuZyBwaGkgbWF0IGJhbmcgY2FvLCB2b2kg dGkgbGUgc3UgZHVuZyBkYXQgZHVvaSA1MCUuIFRoYW0gY2hpLCBjb24gc28gbmF5IHRhaSANClRv bmcgY29uZyB0eSBMdW9uZyB0aHVjIG1pZW4gTmFtIGNodWEgZGVuIDMwJS4gVGhlbyBkbywgZG9u IHZpIG5heSBkYW5nIHNvIGh1dSANCjMwNyBtYXQgYmFuZywgdm9pIGRpZW4gdGljaCB0cmVuIDMw MC4wMDAgbTIgbmh1bmcgZGllbiB0aWNoIHN1IGR1bmcgY2hvIDE5NSBraG8gYmFpIGxhaSANCmNo dWEgdG9pIDEwMC4wMDBtMi4NCg0KU3UgbGFuZyBwaGkgZGF0IGRvIHRoaSBsYSBraG9uZyBuaG8s IG5odW5nIHF1YSB0cmluaCB0aHUgaG9pIGxhaSBkaWVuIHJhIHF1YSBjaGFtLiBWZSB2YW4gDQpk ZSBuYXksIFRTLiBUcmFuIER1IExpY2gsIChuZ3V5ZW4gVmllbiB0cnVvbmcgVmllbiBLaW5oIHRl IFRQLkhDTSkgY2hvIHJhbmcsIHRydW9jIA0KaGV0LCBkYXQgY29uZyBkbyBjYWMgZG9hbmggbmdo aWVwIG5oYSBudW9jIHF1YW4gbHkgdGh1b25nIGNvIHlldSB0byBsaWNoIHN1LCBob24gbnVhLCAN CnRyb25nIHF1YSB0cmluaCBjbyBwaGFuIGhvYSwgZG9hbmggbmdoaWVwIGRhIHR1IGNodXllbiBk b2kgY2h1YyBuYW5nIHZhIGhvcCB0aHVjIGhvYSANCmNhYyBraHUgZGF0IHZhbyB0YWkgc2FuIGNv IGRpbmggY3VhIGRvYW5oIG5naGllcC4NCg0KTWF0IGtoYWMsIEJvIFRhaSBjaGluaCB2YW4gY2h1 YSBjbyBjbyBjaGUgcm8gcmFuZyBjaG8gdmllYyB0aHUgaG9pIGRhdCB2YSB0YWkgc2FuIHRyZW4g DQpkYXQuIERvIGRvLCBuaGlldSBkb2FuaCBuZ2hpZXAgZGEga2VvIGRhaSB0aG9pIGhhbiBnaWFv IHRyYSBkZSBodW9uZyBjaGVuaCBsZWNoIGdpYSBraGkgDQpjaG8gdGh1ZSBtYXQgYmFuZy4gTmdv YWkgcmEsIHZpZWMgbmhpZXUgZHUgYW4gY3VhIGNhYyBkb2FuaCBuZ2hpZXAgdHUgbmhhbiAidHJl byIgaGFuZyANCmNodWMgbmFtIHNhdSBraGkgZHVvYyBjYXAgcGhlcCBkYSB0YW8gc3VjIGNhbiBs b24gZG9pIHZvaSB2aWVjIHRodSBob2kgZGF0IHN1IGR1bmcga2VtIA0KaGlldSBxdWEgdGFpIGNh YyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgdHJlbiBkaWEgYmFuIFRQLkhDTS4gIA0KDQpodHRwOi8v d3d3LnZpZXRuYW1uaGFkYXQudm4vbmV3cy9sb2FkL2lkLTI3MzAgKFRoZW8gRGF0IFZpZXQpIDAx LzEyLzIwMTAgOToxMyBBTQ0KDQpUcC5IQ006IExhbmcgcGhpIGhhbmcgdHJhbSBoYSBkYXQgDQoN ClRyb25nIGtoaSB0cnVvbmcgaG9jLCBuaGEgbyB4YSBob2ksIGNhbiBobyB0YWkgZGluaCBjdS4u LiBraG9uZyB0aW0gcmEgZGF0IGRlIHhheSwgdGhpIGhhbmcgDQp0cmFtIGhhIGRhdCBvIG5odW5n IHZpIHRyaSAidmFuZyIgcXV5IGhvYWNoIGxhbSBzYW4gZ29sZiBkYW5nIGJpIGxhbmcgcGhpIG5o aWV1IG5hbSBxdWEuDQoNClhpbiBzYW4gZ29sZiBkZSB4YXkuLi4gYmlldCB0aHUNCg0KVGhlbyBi YW8gY2FvIGN1YSBCbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcsIGhpZW4gY2EgbnVvYyBjbyAx OSBzYW4gZ29sZiBob2F0IGRvbmcsIA0KNzAgZHUgYW4ga2hhYyBkYW5nIGR1b2MgcXV5IGhvYWNo IHhheSBkdW5nLiBUcm9uZyBkbywgVHAuSENNIGNvIDYgZHUgYW4gc2FuIGdvbGYgZGEgDQpkdW9j IGNhcCBwaGVwLCBuaHVuZyB0aHVjIHRlIGNoaSBjbyBtb3QgZHUgYW4gZGkgdmFvIGhvYXQgZG9u ZyB0dSBuYW0gMTk5NTsgYm9uIGR1IGFuIA0KZGFuZyBob2FuIHRhdCBjb25nIHRhYyBib2kgdGh1 b25nLCBnaWFpIHBob25nIG1hdCBiYW5nOyBtb3QgZHUgYW4gZGEgIGJpICBjaGFtIGR1dCBob2F0 IA0KZG9uZyB0cnVvYyB0aG9pIGhhbiB2YSBkYSB0aHUgaG9pIGdpYXkgcGhlcCBkYXUgdHUuDQoN CkRpZXUgZGFuZyBjaHUgeSBsYSBjYWMgZHUgYW4gc2FuIGdvbGYgbmF5IGRldSBjbyBxdXkgbW8g c3UgZHVuZyBoYW5nIHRyYW0gaGEgZGF0IG5odSANCmR1IGFuIHNhbiBnb2xmIExhbSBWaWVuIHRh aSBwaHVvbmcgTG9uZyBCaW5oIHZhIExvbmcgVGhhbmggTXkgKHF1YW4gOSkgY28gcXV5IG1vIA0K c3UgZHVuZyAzMDAgaGE7IGR1IGFuIHNhbiBnb2xmIHRhaSBwaHVvbmcgQW4gUGh1LCBxdWFuIDIg c3UgZHVuZyBob24gMTMyIGhhOyBkdSBhbiBzYW4gDQpnb2xmIEdTIHRhaSB4YSBUYW4gVGhvbmcg SG9pLCBodXllbiBDdSBDaGkgKHRodW9jIEtodSBkbyB0aGkgdGF5IGJhYyBUcC5IQ00pIHN1IA0K ZHVuZyAyMDAgaGE7IGR1IGFuIHNhbiBnb2xmIFRhbiBTb24gTmhhdCAocXVhbiBUYW4gQmluaCkg c3UgZHVuZyBob24gMTU3IGhhIGRhdDsgZHUgDQphbiBzYW4gZ29sZiBTaW5nIFZpZXQgdGFpIHhh IExlIE1pbmggWHVhbiAoaHV5ZW4gQmluaCBDaGFuaCkgY28gcXV5IG1vIHN1IGR1bmcgMzAwIA0K aGEuDQoNCkJhbyBjYW8gY3VhIFVCTkQgVHAuSENNIHZlIHRpbmggaGluaCBzdSBkdW5nIHNhbiBn b2xmIHRyZW4gZGlhIGJhbiBjaG8gdGhheSwgdmllYyANCnRodWMgaGllbiBxdWEgbmhpZXUgZHUg YW4gc2FuIGdvbGYgY2hpZW0gZGllbiB0aWNoIGRhdCBub25nIG5naGllcCByYXQgbG9uOyBob24g bnVhIGNob2kgDQpnb2xmIGtob25nIHBoYWkgbGEgYm8gbW9uIHRoZSB0aGFvIHF1YW4gY2h1bmcs IHRyb25nIGtoaSBjYWMgY29uZyB0cmluaCBjb25nIGNvbmcgdmEgDQpwaHVjIGxvaSB4YSBob2kg ZGFuZyB0aGlldSBjYSBkaWEgZGllbSB2YSBxdXkgbW8uDQoNCk1hdCBraGFjLCB2aWVjIGRlbiBi dSBnaWFpIHRvYSBrZW8gZGFpLCBjaGFtIHRyaWVuIGtoYWkgZHUgYW4gYW5oIGh1b25nIHRvaSBk b2kgc29uZyBjdWEgDQpuZ3VvaSBkYW4gYmkgdGh1IGhvaSBkYXQuIE1vdCBzbyBkdSBhbiBjbyBt b3QgcGhhbiBkaWVuIHRpY2ggZGF0IGR1b2Mgc3UgZHVuZyBjaG8gbXVjIA0KZGljaCBraG9uZyBw aGFpIHNhbiBnb2xmIG5odTogbmhhIGhhbmcsIHRydW5nIHRhbSB0aHVvbmcgbWFpLCBraHUgdnVp IGNob2kgZ2lhaSB0cmkgliANCnRoZSBkdWMgdGhlIHRoYW8sIG5oYSBvIJYgYmlldCB0aHUgZGUg YmFuIHZhIGNobyB0aHVlLCBraHUgbmdoaSBkdW9uZy4NCg0KIlRyZW8iIDgwMCBoYSBkYXQgbm9u ZyBuZ2hpZXANCg0KVGhlbyBTbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcgVHAuSENNLCBkaWVu IHRpY2ggZGF0IG5vbmcgbmdoaWVwIGRhbmcgZ2lhbSANCm5oYW5oLCB0cm9uZyB2b25nIDE1IG5h bSBxdWEsIGRhIGdpYW0ga2hvYW5nIDE4LjAwMCBoYSAodHJ1bmcgYmluaCwgbW9pIG5hbSBnaWFt IGRlbiANCjEuNDAwIGhhKS4gTmd1eWVuIG5oYW4gcGhvIGJpZW4geHVhdCBwaGF0IHR1IHRpbmgg dHJhbmcgZGF0IG5vbmcgbmdoaWVwIGJpIGJvIGhvYW5nIGRvIA0KcXV5IGhvYWNoICJ0cmVvIi4g R29wIHBoYW4gdmFvIHN1IGxhbmcgcGhpIG5heSBwaGFpIGtlIGRlbiBjYWMgZHUgYW4gc2FuIGdv bGYgZGFuZyANCiJ0cmVvIiA4MDAgaGEgZGF0IG5vbmcgbmdoaWVwLg0KDQpNb3QgdHJvbmcgbmh1 bmcgbmd1eWVuIG5oYW4gZ2F5IGJ1YyB4dWMgZHUgbHVhbiBsYSBjYWMgZHUgYW4gc2FuIGdvbGYg bGF5IGRhdCBub25nIA0KbmdoaWVwIGRlbiBidSB2b2kgZ2lhIHJlIG1hdC4gU2F1IGRvLCBiYW5n IG5oaWV1IGJpZW4gcGhhcCBjaHUgZGF1IHR1IHhpbiBjaHV5ZW4gZG9pIA0KY29uZyBuYW5nIGhv YWMgeGluICJ0aGVtIiBkaWVuIHRpY2ggZGF0IGRlIHhheSBkdW5nIGNhYyBraHUgZG8gdGhpLCB0 aHVvbmcgbWFpLCBraGFjaCANCnNhbiBraW5oIGRvYW5oIHZvaSBnaWEgY2FvLiBEdSBhbiBzYW4g Z29sZiBBbiBQaHUgbGEgZGllbiBoaW5oIG5oYXQuIER1IGNvIHZpIHRyaSAidmFuZyIgDQp0YWkg a2h1IHZ1YyBxdWFuIDIgbmh1bmcgcXVhIGdhbiA5IG5hbSBjYXAgcGhlcCwgZHUgYW4gdmFuIGkg YWNoIHRyaWVuIGtoYWkgZG8gdnVvbmcgDQpkZW4gYnUgZ2lhaSB0b2EgdmkgZ2lhIGRlbiBidSBx dWEgdGhhcCB2YSBjdW5nIG5oYWMgdHJvbmcgYXAgZHVuZy4gR2lhIGRhdCBub25nIG5naGllcCAN CmR1b2MgImFwIiB0YWkgZHUgYW4gbmF5IGxhIDE1MC4wMDAgliAyMDAuMDAwIGRvbmcgbW90IG0y ICh0aGVvIHBodW9uZyBhbiBwaGUgZHV5ZXQgDQpuYW0gMjAwMykuIFNhdSBuaGlldSBsYW4ga2hp ZXUgbmFpLCBjaHUgZGF1IHR1IGxhIENvbmcgdHkgQ1AgZGF1IHR1IHZhIHBoYXQgdHJpZW4gU2Fp IA0KR29uIChDb25nIHR5IFNESSkgbmFuZyBnaWEgZGVuIGJ1IGxlbiA4NzAuMDAwIGRvbmcgbW90 IG0yLiBUdXkgbmhpZW4sIG11YyBnaWEgbmF5IA0KdmFuIHRoYXAgaG9uIG5oaWV1IGtoaSBkb2kg Y2hpZXUgdm9pIGdpYSBib2kgdGh1b25nIGR1IGFuIGNvbmcgaWNoIChsYW0gZHVvbmcpIHRhaSBr aHUgDQp2dWMgcXVhbiAyIGhpZW4gbmF5IGRhIGxlbiB0b2kgMSw1IHRyaWV1IGRvbmcgbW90IG0y IGRhdCBub25nIG5naGllcC4gQ29uIG1hdCB0aWVuIA0KZHVvbmcgRG8gWHVhbiBIb3AgZGFvIGRv bmcgdHUgMTUgLSAyMCB0cmlldSBkb25nLg0KDQpLaG9uZyBuaHVuZyB0aGUsIHRyb25nIHRvIHRy aW5oIHhpbiBwaGUgZHV5ZXQgcXV5IGhvYWNoIGNoaSB0aWV0IGR1IGFuIGN1YSBjaHUgZGF1IHR1 LCANCmNhYyBoYW5nIG11YyB4YXkgZHVuZyBkaWEgb2MgY3VuZyBuYW0gdHJvbmcgInRvcCIgZGF1 IGRhbmggc2FjaDogRGF0IHhheSBkdW5nIGJpZXQgDQp0aHUgMTQ3LjYwMCBtMjsgZGF0IHhheSBk dW5nIG5oYSBsaWVuIGtlIGNvIHNhbiB2dW9uIDUuODAwIG0yOyBjYW4gaG8gY2FvIGNhcCAxNSB0 YW5nIA0KNi42NTAgbTI7IGtoYWNoIHNhbiAxMiB0YW5nIDIuNjAwIG0yLi4uIA0KDQpodHRwOi8v d3d3LmRhbmdjb25nc2FuLnZuL2Nwdi9Nb2R1bGVzL05ld3MvTmV3c0RldGFpbC5hc3B4P2NvX2lk PTMwMjg3JmNuX2lkPTQzODYzMCAoVGhlbyBiYW8gVGhhbmggdHJhKSAwODo0MCAxNS8xMi8yMDEw IA0KDQpUUCBIQ006IDE5MSBkb24gdmkgc2FpIHBoYW0gdm9pIHNvIHRpZW4gMTE1LDY5NyB0eSBk b25nLCAxLjAwNy42NTdtMiBkYXQgLi4uICANCg0KTmFtIDIwMTAsIG5nYW5oIFRoYW5oIHRyYSBU UCBIbyBDaGkgTWluaCB0aHVjIGhpZW4gMjE1IGN1b2MgdGhhbmggdHJhIHRyZW4gY2FjIGxpbmgg DQp2dWMgcXVhbiBseSBkYXQgZGFpLCB4YXkgZHVuZyBjbyBiYW4sIHRhaSBjaGluaCBkb2FuaCBu Z2hpZXAsIHRodSwgcXVhbiBseSwgc3UgZHVuZyBxdXkgDQpiYW8gaGllbSB4YSBob2kuLi4gDQoN ClF1YSBkbywgcGhhdCBoaWVuIDE5MSBkb24gdmkgc2FpIHBoYW0gdm9pIHNvIHRpZW4gMTE1LDY5 NyB0eSBkb25nLCAxOS41ODAgVVNELCANCjEuMDA3LjY1N20yIGRhdC4uLiBUb2FuIG5nYW5oIGtp ZW4gbmdoaSB0aHUgaG9pIDcsOTI1IHR5IGRvbmcsIDk5Ljg0MW0yIGRhdDsga2llbiBuZ2hpIA0K Y28gcXVhbiBraGFjIHh1IGx5IDI2LDMzMyB0eSBkb25nLCAxOS41ODAgVVNEOyB4dSBreSBreSBs dWF0IGhhbmggY2hpbmggNjUgdGFwIHRoZSwgDQoyODkgY2EgbmhhbiBzYWkgcGhhbS4gQ28gcXVh biB0aGFuaCBjdW5nIGRhIGJhbiBoYW5oIDQwNyBraWVuIG5naGkgY2hhbiBjaGluaCBjb25nIA0K dGFjIHF1YW4gbHksIGRpZXUgaGFuaCwgY2h1eWVuIGNvIHF1YW4gZGlldSB0cmEgNiB2dSBjbyBk YXUgaGlldSB2aSBwaGFtIHBoYXAgbHVhdC4vLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9p L1RQLUhDTS1OaGlldS1kdS1hbi1jaG9uZy1uZ2FwLWRhbS1jaGFuLXRhaS1jaG8vNDUyNDY3MDQv MTU3LyBOZ3V5ZW4gRGluaCBNdW9pIDE3LzcvMjAwNywgMDA6MTEgR01UKzcgDQoNClRQLkhDTTog TmhpZXUgZHUgYW4gY2hvbmcgbmdhcCAiZGFtIGNoYW4gdGFpIGNobyIgDQoNCkNoaWV1IDE2Ljcs IHRhaSBidW9pIGhvcCBiYW8gZG8gU28gR2lhbyB0aG9uZyAtIENvbmcgY2hpbmggdG8gY2h1Yywg b25nIFRoYWkgTWluaCBIb2EsIA0KUGhvIGdpYW0gZG9jIENvbmcgdHkgdGhvYXQgbnVvYyBkbyB0 aGksIGNobyBiaWV0IHZpZWMgdHJpZW4ga2hhaSBjYWMgZHUgYW4gdGhvYXQgbnVvYyANCmNob25n IG5nYXAgdHJlbiBkaWEgYmFuIFRQIGRhbmcgZ2FwIHJhdCBuaGlldSB2dW9uZyBtYWMuIA0KDQpE aWVuIGhpbmg6IGR1IGFuIGtpZW0gc29hdCB0cmlldSBjYXUgQm9uZywgQmluaCBUcmlldSwgQmlu aCBMb2ksIFJhY2ggTGFuZywgUS5CaW5oIA0KVGhhbmggKGR1b2MgVUJORCBUUCBwaGUgZHV5ZXQg bmdheSAxOC42LjIwMDIsIHRvbmcgbXVjIGRhdSB0dSAxOTIuMTg0LjAwMC4wMDAgDQpkb25nKSBu aGlldSBnb2kgdGhhdSBkYSBiaSB0YW0gbmd1bmcgdGhpIGNvbmcgZG8gdnVvbmcgZ2lhaSBwaG9u ZyBtYXQgYmFuZyB2YSBobyBzbyANCnRoaWV0IGtlIGt5IHRodWF0LiBEdSBhbiBuYW8gdmV0IG11 b25nIE5oYXQgQmFuIChRLlRhbiBCaW5oLCBRLlBodSBOaHVhbikgZHVvYyBwaGUgDQpkdXlldCBu Z2F5IDIuNi4yMDA0IHZvaSB0b25nIG11YyBkYXUgdHUgOTYuMzczLjAwMC4wMDAgZG9uZywgdG9h biBibyBnb2kgdGhhdSBzbyAxIGN1YSANCmR1IGFuIGRlbiBuYXkgdmFuIGNodWEgdGhpIGNvbmcg ZG8gUS5UYW4gQmluaCBjaHVhIGdpYWkgcGhvbmcgbWF0IGJhbmcgY3VhIDQ1IGhvIGRhbiwgDQpn b2kgdGhhdSBzbyAyIGN1bmcgYmkgbmd1bmcgdHJlIHR1IHRoYW5nIDEuMjAwNyBkbyBjaHVhIGJh biBnaWFvIG1hdCBiYW5nIDE1NSw1bSBkb2FuIA0KY3VvaSBjb25nIHRyaW5oLg0KDQpEdSBhbiBj YWkgdGFvIGhlIHRob25nIHRob2F0IG51b2MgVG8gSGllbiBUaGFuaCAtICBjb25nIEJhIFhlcCAo US4zLCBRLjEwKSBjbyB0b25nIA0KbXVjIGRhdSB0dSA3NC44NTUuMDAwLjAwMCBkb25nLCBkdW9j IFVCTkQgVFAgcGhlIGR1eWV0IG5nYXkgMjYuMTAuMjAwMSwgY3VuZyANCmRhbmcgZ2FwIGtobyBr aGFuIHRhaSBnb2kgdGhhdSB4YXkgbGFwIHNvIDIuIFRoZW8gZG8sIGR1b25nIFRyYW4gVmFuIERh bmcgZG9hbiB0dSANCkNhY2ggTWFuZyBUaGFuZyA4IGRlbiBkb2FuIGR1b25nIHNhdCBkYW4gdmFv IE5oYSBtYXkgdG9hIHhlIFNhaSBHb24gaGllbiBraG9uZyB0aGUgDQp0cmllbiBraGFpIGxhcCBk YXQgY29uZyBob3AgZG8gY2h1YSB0aGUgZGkgZG9pIGx1b2kgZGllbiB0cnVuZyB0aGUgdmEgdHJh bSBiaWVuIGFwLCB2dW9uZyANCm5oYSBkYW4uLi4gVGhlbyBTbyBHVENDLCBoYXUgaGV0IGNhYyBk dSBhbiBjaG9uZyBuZ2FwICJkYW0gY2hhbiB0YWkgY2hvIiBkbyBUUC5IQ00gDQpoaWVuIHRoaWV1 IHF1eSBuaGEgdGFpIGRpbmggY3UgY2hvIG5ndW9pIGRhbiBiaSBnaWFpIHRvYSB0YWkgY2FjIGR1 IGFuLCB0cm9uZyBraGkgY2h1b25nIA0KdHJpbmggeGF5IGR1bmcgMTAuMDAwIGNhbiBuaGEgcGh1 YyB2dSBnaWFpIHRvYSBrZW5oIHJhY2ggZGVuIG5heSB2YW4gY2h1YSBjby4gIA0KDQpodHRwOi8v dmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDA4LzExLzgxMTM5Mi8gVGFuIFRodWFuICAxNzoxOSwg MDEvMTEvMjAwOCAoR01UKzcpDQoNClRQLkhDTTogTGFuZyBwaGkga2hvIGJhaSBuaHVuZyB0aGll dSBkYXQgeGF5IHRydW9uZywgbmhhIHRhaSBkaW5oIGN1IC0gT25nIFRydW9uZyBUYW4gU2FuZyBw aGFpIGNoaXUgdHJhY2ggbmhpZW0gDQoNCi0gUmF0IG5oaWV1IGtobyBiYWkgYmkgYm8gaG9hbmcg aG9hYyBjaG8gdGh1ZSBsYWkgc2FpIG11YyBkaWNoLCBuaHVuZyBkYXQgZGUgDQp4YXkgdHJ1b25n LCBuaGEgdGFpIGRpbmggY3UsIGNvbmcgdHJpbmggeGEgaG9pIGxhaSBraG9uZyBjby4gVHJvbmcg a2hpIGRvLCB2aWVjIHRodSBob2kgY2FjIA0Ka2hvIGJhaSBuYXkgZGFuZyBnYXAgbmhpZXUgdHJh YyB0cm8uDQoNClNhbmcgMzEvMTAsIEJhbiBLaW5oIHRlIHZhIE5nYW4gc2FjaCBIRE5EIHRoYW5o IHBobyBIbyBDaGkgTWluaCBjbyBidW9pIGxhbSB2aWVjIA0Kdm9pIHF1YW4gOCB2ZSB0aW5oIGhp bmggc3UgZHVuZyBraG8gYmFpIHRyZW4gZGlhIGJhbiB0aG9pIGdpYW4gcXVhLiBRdWFuIDggbGEg cXVhbiBuZ2hlbyANCm5oYXQgbmhpIHRyb25nIHZ1bmcgbm9pIHRoYW5oIGN1YSB0aGFuaCBwaG8g dm9pIHR5IGxlIGhvIG5naGVvIGNoaWVtIDEsNCUuIA0KDQpUb25nIHNvIGhvIGRhbmcgc29uZyB0 cmVuIGtlbmggcmFjaCBsYSAyMyBuZ2hpbiBobyBjYW4gZ2lhaSB0b2EgZGVuIGJ1IHRhaSBkaW5o IGN1IG5oYW0gDQpjaGluaCB0cmFuZyBkbyB0aGkuIFRoZSBuaHVuZywgbW90IG5naGljaCBseSBt YSBjYWMgZGFpIGJpZXUgdGhhbSBkdSBkYXQgcmEgbGEgdHJvbmcga2hpIA0KZGlhIHBodW9uZyBr aG9uZyBjbyBkYXQgZGUgeGF5IGR1bmcgY2h1bmcgY3UgcGh1YyB2dSB0YWkgZGluaCBjdSB2YSBj YWMgY29uZyB0cmluaCANCnBodWMgbG9pIGtoYWMgdGhpIGNvIGhhbmcgdHJhbSBuZ2hpbiBtZXQg dnVvbmcgZGF0IHN1IGR1bmcgbGFuZyBwaGksIHNhaSBtdWMgZGljaC4NCg0KQmFvIGNhbyBjdWEg cXVhbiA4IGNobyBiaWV0LCBoaWVuIHRvYW4gcXVhbiBjbyAxNTkga2hvIGJhaSB2b2kgdG9uZyBk aWVuIHRpY2ggNDM1LDQgDQpuZ2hpbiBtMi4gVHJvbmcgc28gbmF5IGNvIDc3IGtobyBiYWkgZGFu ZyBkdW9jIHF1YW4ga2llbiBuZ2hpIHRodSBob2ksIGNodXllbiBkb2kgDQpjb25nIG5hbmcgZGUg cGh1YyB2dSBjaHVvbmcgdHJpbmggdGFpIGRpbmggY3UgdmEgeGF5IGR1bmcgY2FjIGNvbmcgdHJp bmggcGh1YyBsb2kgDQp4YSBob2kuIFBoYW4gbG9uIGNhYyBjb25nIHRyaW5oIG5heSB0YXAgdHJ1 bmcgbyBCZW4gQmluaCBEb25nLCBQaGFtIFRoZSBIaWVuLi4uDQoNClRoZW8gVUJORCBxdWFuIDgs IGNoaSBjbyA1Ny8xNTkga2hvLCBiYWkgdm9pIGRpZW4gdGljaCBzdSBkdW5nIDE3NC42ODltMiBs YSBkdW9jIHN1IA0KZHVuZyBkdW5nIG11YyBkaWNoLCBzbyBjb24gbGFpIGhhdSBuaHUgZGFuZyBi aSBibyB0cm9uZyBob2FjIGNobyB0aHVlIGxhaSBzYWkgbXVjIGRpY2guIA0KRG8gdmllYyB0aHUg aG9pIG5odW5nIGtodSBkYXQgdHJlbiBraG8ga2hhbiAoZGFjIGJpZXQgbGEgbmh1bmcga2h1IGRh dCBkbyBUcnVuZyB1b25nIA0KcXVhbiBseSksIGxhbmggZGFvIFVCTkQgUS44IHZ1YSBkZSBuZ2hp IHZvaSBsYW5oIGRhbyBVQk5EIFRQIGNhbiBjbyBuaHVuZyBiaWVuIA0KcGhhcCBtYW5oIHRheSBo b24gdHJvbmcgdmllYyB0aHUgaG9pIGRhdCBjb25nLCBuaGFtIHRyYW5oIHN1IGxhbmcgcGhpIG5o dSBoaWVuIG5heS4gDQoNCihBbmg6IEhhbmcgY2h1YyBuZ2hpbiBjYW4gbmhhIHRyZW4gZGlhIGJh biBxdWFuIDggcGhhaSBnaWFpIHRvYSBkZSBjaGluaCB0cmFuZyBkbyB0aGkgDQpuaHVuZyBxdXkg ZGF0IHRhaSBkaW5oIGN1IGxhaSBjaHVhIGNvLCB0cm9uZyBraGkgZG8sIGtobyBiYWkgdG9hIGxh YyB0YWkgZGlhIHBodW9uZyBuYXkgDQpkYW5nIGJpIGxhbmcgcGhpLiBBbmg6IFQuVGh1YW4uKSAN Cg0KSGFuZyB0cmFtIG5nYW4gbWV0IHZ1b25nIGtobyBiYWkgZGEgZHVvYyBVQk5EIFRQIGdpYW8g bGFpIGNobyBxdWFuIDggbGFtIHRydW9uZyANCmhvYyBuaHVuZyBkb24gdmkgcXVhbiBseSBkYXkg ZHVhIGtob25nIGNoaXUgYmFuIGdpYW8gaG9hYyBkb2kgdGllbiBib2kgdGh1b25nIGtob25nIA0K ZHVuZyBxdXkgZGluaC4gVGluaCBoaW5oIG5heSBsYW0ga2UgaG9hY2ggY2hpbmggdHJhbmcgZG8g dGhpLCBuYW5nIGNhbyBoaWV1IHF1YSBzdSBkdW5nIA0KZGF0IGN1YSBxdWFuIDggZ2FwIGtobyBr aGFuLg0KDQpPbmcgTmd1eWVuIFRoYW5oIENodW5nLCBDaHUgdGljaCBVQk5EIHF1YW4gOCBjaG8g YmlldCwgcGhhaSBtYXQgZGVuIDMgbmFtIGxhcCBobyANCnNvIHBoYXAgbHkgcXVhbiBtb2kgZHVv YyBVQk5EIFRQIHJhIHF1eWV0IGRpbmggdGh1IGhvaSBraG8gYmFpIDEzNSBMdW9uZyBOZ29jIA0K UXV5ZW4gZGUgeGF5IHRydW9uZyBtYW0gbm9uLiBTb25nIGhpZW4gbmF5LCBkdSBkb24gdmkgdGh1 ZSBraG8gYmFpIG5heSBraG9uZyBjaGl1IA0KYmFuIGdpYW8gZGF0IG5odW5nIHF1YW4gdmFuIGto b25nIHRoZSB0aWVuIGhhbmggY3VvbmcgY2hlIGR1b2MgdmkgZG9uIHZpIGNodSBxdWFuIA0KY3Vh IGtodSBkYXQgbmF5IGxhIENvbmcgdHkgS2hvIGJhaSBUUC4NCg0KQ2h1b25nIHRyaW5oIHRhaSBk aW5oIGN1IG1hIHF1YW4gOCB2YWNoIHJhIHR1IG5heSBkZW4gbmFtIDIwMTUgbGEgY2FuIHBoYWkg Y28gdHJlbiAxMCANCm5naGluIGNhbiBuaGEgZGUgcGh1YyB2dSB0YWkgZGluaCBjdS4gVHJvbmcg bmFtIDIwMDkgc2UgeGF5IDEuMDAwIGNhbiB2YSBkZW4gMjAxMCB4YXkgDQp0aGVtIDYuMDAwIGNh bi4gU28gY29uIGxhaSBzZSB0aWVuIGhhbmggdGllcCB0cm9uZyB0aG9pIGdpYW4gY29uIGxhaS4g VGhlIG5odW5nLCBxdXkgZGF0IA0KZGUgeGF5IG5oYSB0YWkgZGluaCBjdSBsYWkga2hvbmcgYmll dCB0aW0gZGF1Lg0KDQpDYXUgY2h1eWVuIHBoYXAgbHkgdmUgdmllYyB0aHUgaG9pIGtobyA0ODEg QmVuIEJhIERpbmgsIHBodW9uZyA5LCBxdWFuIDggZGFuZyBsYW0gDQpkYXUgZGF1IGNhYyBjbyBx dWFuIHF1YW4gbHkgbmhhIG51b2MuIEtobyA0ODEgQmVuIEJhIERpbmggZG8gQ29uZyB0eSBLaG8g YmFpIFRQICh0aHVvYyANClRvbmcgQ29uZyB0eSBEaWEgb2MgU2FpIEdvbikgcXVhbiBseS4gQ29u ZyB0eSBuYXkgY2hvIENvbmcgdHkgY28gcGhhbiBIb2EgDQpjaGF0IHZhdCBsaWV1IGRpZW4gdGh1 ZSBtYXQgYmFuZyB0cmVuIHR1IG5hbSAxOTg1IGRlbiBuYXksIGhvcCBkb25nIGR1b2Mga3kgbGFp IGhhbmcgDQpuYW0uIE5nYXkgMzEvMTIvMjAwNyBsYSB0aG9pIGhhbiB0aHVlIGNoYW0gZHV0Lg0K DQpDdW9pIG5hbSAyMDA3LCBDb25nIHR5IEtobyBiYWkgVFAgZG9pIGJlbiB0aHVlIHRyYSBsYWkg bWF0IGJhbmcgdHJvbmcgdGhhbmcgMS8yMDA4IGRlIA0KZ2lhbyBjaG8gVUJORCBxdWFuIDggdGh1 YyBoaWVuIGR1IGFuIGRhdSB0dSB4YXkgZHVuZyB0cnVvbmcgY28gc28gY2h1YW4gcXVvYyBnaWEg DQpuaHVuZyBiZW4gdGh1ZSBraG9uZyBjaGl1IHRyYSwgY2FuIHRybyB2aWVjIGtoYW8gc2F0LCBk byB2ZSBoaWVuIHRyYW5nIGtodSBkYXQuIEtob25nIGNoaSANCnRoZSwgdHJvbmcgcXVhIHRyaW5o IHRodWUga2hvIGJhaSwgY29uZyB0eSBkYSBsYXkgaG9uIDIuMDAwbTIgZGF0IHBoYW4gbmVuIGNo byAyNCBjYW4gYm8sIA0KY29uZyBuaGFuIHZpZW4geGF5IG5oYSBvLg0KDQpEZSB0aHUgaG9pIGto byB0cmVuLCBiYSBjbyBxdWFuIGxhIFRvbmcgQ29uZyB0eSBEaWEgb2MgU2FpIEdvbiwgVUJORCBx dWFuIDggdmEgU28gDQpYYXkgZHVuZyBsYWkgZHVhIHJhIG5odW5nIGh1b25nIGdpYWkgcXV5ZXQg a2hhYyBuaGF1LiBDb25nIHR5IEtobyBiYWkgVFAgZGUgbmdoaSBraG9pIA0Ka2llbiBiZW4gdGh1 ZSByYSB0b2EgZGUgZG9pIGxhaSBraG8gdmEgdGllbiB0aHVlLiBVQk5EIHF1YW4gOCB0aGkgY2hv IHJhbmcgbmVuIHRhY2ggaGFpIA0Kc3UgdmllYyBuYXkgcmEuIE1vdCBtYXQgZGUgY2hvIHF1YW4g Y3VvbmcgY2hlIHRodSBob2kgcGhhbiBkaWVuIHRpY2ggaG9uIDEwIG5naGluIG0yIA0Ka2hvIGJh aSBkbyBiZW4gdGh1ZSBkYW5nIHN1IGR1bmcuDQoNClBoYW4gZGllbiB0aWNoIGJlbiB0aHVlIGRh IHBoYW4gbmVuIGJvIHRyaSBjaG8gY2FuIGJvLCBjb25nIG5oYW4gdmllbiB4YXkgbmhhIHRoaSBz ZSANCmtoYW8gc2F0LCB0aHUgdGhhcCBwaGFwIGx5LCBsYXAgcGh1b25nIGFuIGJvaSB0aHVvbmcs IGdpYWkgcGhvbmcgbWF0IGJhbmcgdGhlbyBxdXkgZGluaCANCmhpZW4gaGFuaC4gQ29uIHZpZWMg Z2lhaSBxdXlldCB0aGFuaCBseSBob3AgZG9uZyB0aHVlIGtobyBiYWkgZ2l1YSBDb25nIHR5IEto byBiYWkgVFAgDQp2YSBiZW4gdGh1ZSBsYSBtb3QgdnUga2llbiBkb2MgbGFwIGdpdWEgaGFpIGJl biBkbyB0b2EgYW4gZ2lhaSBxdXlldC4gU28gWGF5IGR1bmcgbGFpIGNobyANCnJhbmcgbXVvbiBu aGFuaCBjaG9uZyB0aHUgaG9pIG1hdCBiYW5nIFVCTkQgVFAgbmVuIGR1bmcgcXV5ZXQgZGluaCBj dW9uZyBjaGUgaGFuaCBjaGluaC4NCg0KT25nIE5ndXllbiBNaW5oIEhvYW5nIC0gVHJ1b25nIGJh biBLaW5oIHRlIHZhIE5nYW4gc2FjaCBIRE5EIFRQIGNobyByYW5nIGRvIA0KbGFtIGtob25nIGtp ZW4gcXV5ZXQgY2h1IHRodWUgY28gdGhvaSBoYW4sIGtob25nIHBoYWkgbGEgbXVvbiBrZW8gZGFp IGJhbyBuaGlldSBjdW5nIGR1b2MuIA0KS2hvbmcgY28gY2h1eWVuIGFuaCBjdSBkZSBob2FuZyBr aG8gYmFpLCBraG9uZyBjbyBjaHV5ZW4gYW5oIGxhbSBhbiBraG9uZyANCmR1b2MgbWEga2hpIGJh biBhbmggbGFpIGR1b2MgbmhhbiA1MCUgc28gdGllbiBkby4NCg0KQ29uIHRoZW8gb25nIEhvaSBk b25nIERhbmcgVmFuIEtob2E6ICJWaWVjIHN1IGR1bmcgbGFuZyBwaGkga2hvIGJhaSBuYXkgZGFu ZyBsYSB0ZSANCnRyYW5nIHRvbiB0YWkgZGFpIGRhbmcgdmEgY2FuIHNvbSBkdW9jIGdpYWkgcXV5 ZXQgZHV0IGRpZW0uIENvIHJhdCBuaGlldSBraG8gYmFpLCBuaHVuZyANCnN1IGR1bmcga2hvbmcg aGlldSBxdWEgbGEga2hvbmcgY28gZ2kgbW9pIHZhIGtob25nIHJpZW5nIGdpIG8gcXVhbiA4IG1h IG8gdHJlbiBkaWEgYmFuIA0KdGhhbmggcGhvIGN1bmcgbmh1IGNhIG51b2Mgbm9pIGNodW5nLiBU ZSB0cmFuZyBuYXkgc2UgY29uIHRvbiB0YWkgZGVuIGJhbyBnaW8/IEtoaSBtYSANCmNhY2ggZGF5 IGhvbiAxIHRoYXAgbmllbiwgRGFuZywgTmhhIG51b2MgZGEgZGF0IHJhIG5odW5nIGtob25nIGxh bSBkdW9jIi4NCg0KS2V0IHRodWMgYnVvaSBsYW0gdmllYywgb25nIEhvYW5nIG5oYW4gbWFuaCwg cXVhbiBwaGFpIGxhbSBkdXQga2hvYXQsIHRodSBob2kgbmh1bmcgDQpraG8gYmFpIHN1IGR1bmcg c2FpIG11YyBkaWNoLCBjYSBraG8gYmFpIFRydW5nIHVvbmcgcXVhbiBseSBsYW4ga2hvIGJhaSB0 aGFuaCBwaG8uIERvbiANCnZpIG5hbyBraG9uZyBjaGFwIGhhbmggcGhhaSB0aWVuIGhhbmggY3Vv bmcgY2hlLiBLaG9uZyBjbyBseSBkbyBnaSBkZSBraG8gYmFpIGJvIHRyb25nLCANCmhheSBjaHV5 ZW4gZG9pIG11YyBkaWNoLCBjaG8gdGh1ZSBsYWksIHRyb25nIGtoaSBiaWV0IGJhbyBjb25nIHRy aW5oIGNhbiBkdW9jIHhheSBkdW5nIA0Kbmh1IHRydW9uZyBob2MsIGJlbmggdmllbiwgYmVuIHhl LCBjYWMgY29uZyB0cmluaCBwaHVjIGxvaSB4YSBob2kgY2FuIHhheSBkdW5nIG5odW5nIGtob25n IGNvIGRhdC4gDQoNCmh0dHA6Ly9uaGFuZGFuLm9yZy52bi9jbWxpbmsvbmhhbi1kYW4taS1uLXQv dGgtaS1zL2NoaW5oLXRyL2ktaC1pLW5nLXhpL2wtbHUtbi12YS10aC1jLXRpLW4vYi1vLW0tbmdh eS1jYW5nLXQtdC1oLW4tYW4tc2luaC14LWgtaS12YS1waHVjLWwtaS14LWgtaS0xLjI2MjYwOSNP RXIyTEpwbUVyWnUgDQoNCih0cmljaCBkYW4pIER1IHRoYW8gdmFuIGtpZW4gRGFpIGhvaSBYSTog DQoNCkhlIHRob25nIGFuIHNpbmggeGEgaG9pLCBiYW8gdmUgbXVjIHNvbmcgdG9pIHRoaWV1IGN1 YSBuZ3VvaSBkYW4gbGEgdGh1b2MgZG8gdHJpbmggZG8gcGhhdCB0cmllbiB4YSBob2kgIA0KDQpo dHRwOi8vdGludHVjLnhhbG8udm4vMDAtMTAzNzQ0ODkwNy9jaGlfdHJhX3Ryb19jYXBfYmFvX2hp ZW1fdGhhdF9uZ2hpZXBfbmd1b2lfbGFvX2RvbmdfYmlfaGFuaC5odG1sDQoNClRQIEhDTTogQ2hp IHRyYSB0cm8gY2FwIGJhbyBoaWVtIHRoYXQgbmdoaWVwLCBuZ3VvaSBsYW8gZG9uZyBiaSBoYW5o IC0gcXV5IHRyaW5oIHRodWMgDQpoaWVuIGNoaW5oIHNhY2ggbmF5IGNodWEga2hvYSBob2MsIGRv bmcgYm8sIGNodWEgc2F0IHZvaSB0aHVjIHRlLCBraGllbiBjaG8gY2FjIGRvbiB2aSANCnRodWMg dGhpIGNoaW5oIHNhY2ggbHVuZyB0dW5nLCBjb24gbmd1b2kgbGFvIGRvbmcgdGhpIGJpIHRoaWV0 IHRob2kgcXV5ZW4gbG9pLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFn ZXMvMjAxMDQ4LzIwMTAxMTI4MTcxMDE3LmFzcHggTmh1IExpY2ggMjkvMTEvMjAxMCAwOjEwIA0K DQpUUCBIQ006IEdpYWkgcXV5ZXQgdHJvIGNhcCB0aGF0IG5naGllcCBuaHUgYmFuIG9uIJYgYmF0 IGVwIGRhbiBsYW0gdGhlIEFUTSBEb25nIEEgDQogIA0KKEFuaDogTmd1b2kgbGFvIGRvbmcgZGFu ZyBreSB0aGF0IG5naGllcCB0YWkgVHJ1bmcgdGFtIEdpb2kgdGhpZXUgdmllYyBsYW0gVFAuSENN IJYgQW5oOiBOaHUgTGljaCkgDQoNClNhdSBnYW4gMTEgdGhhbmcgdHJpZW4ga2hhaSBjaGluaCBz YWNoIHRybyBjYXAgdGhhdCBuZ2hpZXAsIHZhbiBjb24gbmh1bmcgdGh1IHR1YyBydW9tIA0KcmEg bGFtIHBoaWVuIGhhIG5ndW9pIGxhbyBkb25nLiANCg0KVHJ1bmcgdGFtIEdpb2kgdGhpZXUgdmll YyBsYW0gVFAuSENNIChzbyAxNTMgWG8gVmlldCBOZ2hlIFRpbmgsIFAuMTcsIFEuQmluaCANClRo YW5oKSBsYSBtb3QgdHJvbmcgbmh1bmcgbm9pIGRhdSB0aWVuIHZhIGxhIGRpZW0gbG9uIG5oYXQg dGllcCBuaGFuIGRhbmcga3kgdHJvIGNhcCB0aGF0IA0KbmdoaWVwIHRhaSBUUC5IQ00gKHRhcCB0 cnVuZyBnaWFpIHF1eWV0IGNobyBuZ3VvaSBsYW8gZG9uZyBvIDExIHF1YW46IDEsIDIsIDMsIDQs IDUsIDgsIA0KMTAsIEJpbmggVGhhbmgsIFBodSBOaHVhbiwgR28gVmFwLCBUYW4gQmluaCkuIE5n b2FpIHRydW5nIHRhbSBuYXksIGNvbiBjbyA1IGRpZW0gDQpraGFjIHBoYW4gYm8gdGhlbyBjdW0g ZGUgbmd1b2kgbGFvIGRvbmcgdGFpIFRQLkhDTSBtYXQgdmllYyBsYW0gY28gdGhlIGRhbmcga3kg dGhhdCANCm5naGllcC4NCg0KRHVvYyBiaWV0LCB0dSBuZ2F5IDQuMSBkZW4gMTIuMTEuMjAxMCwg ZGEgY28gNTQuMDIwIG5ndW9pIGRlbiBkYW5nIGt5IHRoYXQgbmdoaWVwIHRhaSANCnRydW5nIHRh bSB0cmVuLiBUcm9uZyBkbywgc28gY28gcXV5ZXQgZGluaCBodW9uZyB0cm8gY2FwIHRoYXQgbmdo aWVwIGxhIDQ1LjQ1NSBuZ3VvaS4gDQpUdXkgbmhpZW4sIGNobyBkZW4gbmF5LCB0aGFpIGRvLCBj YWNoIGdpYWkgcXV5ZXQgaG8gc28gZGFuZyBreSB0aGF0IG5naGllcCB0YWkgdHJ1bmcgdGFtIA0K bmF5IHZhbiBjb24gdG9uIHRhaSBtb3Qgc28gZGllbSBiYXQgY2FwLiBUcnVvYyBoZXQsIGNhYyBx dWF5IGdpYW8gZGljaCBkdW9jIHNhcCB4ZXAgdGhlbyANCnRodSB0dSBuZ3VvYyAodHUgNyBkZW4g MSkgdmEgdGhpZXUgY2hhdCBjaGUsIGxhbSBtYXQgdGhvaSBnaWFuIGN1YSBuZ3VvaSBsYW8gZG9u Zy4gS2hvbmcgDQpoZSBjbyBiYW4gaHVvbmcgZGFuIGN1bmcgbmh1IHNvIGRvIGNoaSBkYW4uIFF1 YXkgNyAocXVheSBkYXUgdGllbikga2hvbmcgZHVvYyBnaGkgY2h1IA0KbGEgcXVheSBnaS4gTmhp ZXUgbmd1b2kgbW9pIGRlbiBsdW5nIHR1bmcga2hvbmcgYmlldCBiYXQgZGF1IHR1IGRhdSENCg0K U2FuZyAxOS4xMSwgY2hpIFRyYW4gVGhpIFRoYW5oIFRhbSAocXVlIFZpbmggUGh1YyksIG5ndSBL UDMsIFAuVHJ1bmcgTXkgVGF5LCBRLjEyIA0KLSB2b24gbGEgY29uZyBuaGFuIFhpIG5naGllcCBs ZW4gVmlzaW9uIC0gZGVuIG8gc28gNyBob2k6ICJDaGkgb2ksIGxheSBzbyBvIGRhdT8iLiBOaGFu IA0KdmllbiBxdWF5IGJhdCBiZTogIkNoaSBnaGkgZ2kgY2h1YSBtYSBsYXkgc28/Ii4gQ2hpIFRh bSBub2kgdG86ICJUb2kgY2h1YSBiaWV0IG5lbiBtb2kgaG9pIGNoaSIuIA0KDQoiSGFpIGxhbiB0 b2kgZGVuIGRheSwgbGFuIG5hbyBjdW5nIGJ1YyB4dWMgdmUgY2FjaCBub2kgY2h1eWVuIHF1YXQg dGhhbywgbGFtIHZpZWMgbGUgbWUgDQpjdWEgbW90IHNvIG5oYW4gdmllbi4gVGhhaSBkbyBjdWEg aG8gbmh1IGJhbiBvbi4uLiIgQ2hpIFRoLkQgLSBuZ3UgUS41LCBUUC5IQ00NCg0KQ2hpIFRoLkQg LSBuZ3UgUS41IC0gcGhhbiBhbmg6ICJIYWkgbGFuIHRvaSBkZW4gZGF5LCBsYW4gbmFvIGN1bmcg YnVjIHh1YyB2ZSBjYWNoIG5vaSANCmNodXllbiBxdWF0IHRoYW8sIGxhbSB2aWVjIGxlIG1lIGN1 YSBtb3Qgc28gbmhhbiB2aWVuLiBTYW8gaG8ga2hvbmcgcGhhdCBtb3QgbGFuIGNhIG1vIGdpYXkg dG8gbWEgYmFvIGNodW5nIHRvaSBwaGFpIGRpZW4gdG9pIGRpZW4gbHVpLCBub3AgcXVhIHJhdCBu aGlldSBjdWEuIFRoYWkgZG8gY3VhIGhvIG5odSANCmJhbiBvbi4uLiIuDQoNCkN1bmcgdGFpIHRy dW5nIHRhbSBuYXksIGNvbiBzbyBkaWVuIHR1IGNvIG5odW5nIGx1YyBuaGF5IHJhdCBjaGFtLiBU cnVuZyB0YW0gYm8gdHJpIGRlbiANCjcgcXVheSBsYW0gdmllYyBuaHVuZyBraG9uZyBwaGFpIGto aSBuYW8gY2EgNyBxdWF5IGN1bmcgaG9hdCBkb25nLiBEb24gY3Ugc2FuZyAxOS4xMSwgDQpxdWF5 IDIgKGRhbmcga3kgdGhhdCBuZ2hpZXApIHZhIDMgKG5vcCBobyBzbykga2hvbmcgdGllcCBraGFj aC4gRGFjIGJpZXQsIGJhbyBjYXAgbWF0IG5vbiBub25nIG5oaW4gdmFvIHF1YXkgc28gNSAtIHF1 YXkgdHJhIGtldCBxdWEgZHV5IG5oYXQgbyBkYXkuIEFuaCBOZ3V5ZW4gTWluaCBUdWFuIC0gDQpu Z3UgbyBRLjggLSByYXUgcmk6ICJUb2kgbGF5IHNvIDMxMDIgbHVjIDkgZ2lvIDQ1IHBodXQgNDkg Z2lheS4gSG9uIG51YSB0aWVuZyB0cm9pIHF1YSwgaG8gDQpjaGkgZ2lhaSBxdXlldCBkdW9jIDMg a2hhY2ggaGFuZywgc2F1IGRvIGN1ICJkdW5nIiBob2FpIG8gc28gMzA0OC4gS2lldSBuYXkgY2hh YyBkZW4gDQpjaGlldSBtb2kgdG9pIGx1b3QgdG9pIi4gS2hvbmcgdGhlIGtpZW4gbmhhbiBob24s IG5oaWV1IG5ndW9pIG5nb2kgY2hvIGxlbiB0aWVuZyBwaGFuIA0KZG9pOiAiTGFtIGFuIGdpIGxl IG1lIHF1YSEiOyAiQmFvIG5oaWV1IG5ndW9pIGNoaSBjaG8gY28gbW90IG5ndW9pIGxhIHNhbz8i LiBNb3QgY2hpIA0KY2h1YSBjaGF0OiAiVHVpIG1pbmggdGhhdCBuZ2hpZXAgZGVuIDMgdGhhbmcg bmVuIHBoYWkgY2hvIG5ndW9pIHRhIGxhIGR1bmcgcm9pISIuLi4gQ28gDQpuaGFuIHZpZW4gbmdv aSBiZW4gdHJvbmcgcXVheSBzbyA1IHBoYW4gdHJhbjogIlRvaSBjaGkgbGFtIHRoYXkgdGhvaSBt YSIuIE5naGUgdmF5LCBtb3QgDQpuYW0ga2hhY2ggaGFuZyBub2k6ICJEbyBsYSBjaHV5ZW4gbm9p IGJvIGN1YSBjYWMgYW5oIGNoaS4gQ2FjIGFuaCBjaGkgcGhhaSBsYW0gc2FvIA0KbmhhbmggbGVu LCBjaHUgMyB0aWVuZyBkb25nIGhvIHRyb2kgcXVhIG1hIG1vaSB0cmEga2V0IHF1YSBjaG8gNDgg bmd1b2kgbGEgcXVhIGNoYW0iLiANClNhdSBraGkgYmkga2V1IGNhLCB0aWVuIGRvIG1vaSBkdW9j IGRheSBuaGFuaCBob24uDQoNClRydW9jIGRvLCBzYW5nIDE2LjExLCBtb3Qgc28ga2hhY2ggaGFu ZyBwaGFpIG1vbiBtb2kgY2hvIGRlbiBnYW4gMTIgZ2lvIHRydWEgbW9pIA0KZHVvYyB0cmEga2V0 IHF1YSBuaGFuIHRybyBjYXAgdGhhdCBuZ2hpZXAuIE1hIGNvIHF1YSB0YWkgZ2kgY2hvIGNhbSEg Q29uIHNvICJjaG90IiBsYWkgDQp0cmVuIGJhbmcgZGllbiB0dSBxdWF5IHNvIDUgbGEgMzA3NSAt IG5naGlhIGxhIHRyb25nIHN1b3QgYnVvaSBzYW5nIGhvbSBkbywgY2hpIGNvIGtob2FuZyANCjc1 IG5ndW9pIGR1b2MgdHJhIGtldCBxdWEhICAgDQoNCkNoaSBOZ29jIFRyYW5nICh0YW0gdHJ1IHRh aSBRLjIsIFRQLkhDTSkgbm9pOiAiQ3UgdHVvbmcgbm9wIHF1eWV0IGRpbmggdGhvaSB2aWVjIHZh IA0Kc28gYmFvIGhpZW0geGEgaG9pIGxhIGR1LCBkZSBkYXUgaG8geWV1IGNhdSBwaGFpIG5vcCB0 aGVtIDEgdGFtIGhpbmggZGUgbGFtIHRoZSBBVE0gDQpEb25nIEEuIE1pbmggZGEgY28gdGhlIEFU TSBjdWEgbmdhbiBoYW5nIGtoYWMgbmh1bmcgbmd1b2kgdGEga2hvbmcgY2hhcCBuaGFuIi4gDQoN CkNodW5nIHRvaSBjaHVuZyBraWVuIGtob25nIGl0IG5ndW9pIGxhbyBkb25nIHBoYWkgbmdhbSBu Z3VpIHJhIHZlIHZpIGtob25nIGR1b2MgZ2lhaSANCnF1eWV0IHRybyBjYXAgdGhhdCBuZ2hpZXAu IFRyb25nIGRvIGNvIG5odW5nIHRydW9uZyBob3AgZG8gbG9pIGN1YSBuZ3VvaSBsYW8gZG9uZyBk YSANCmtob25nIGRlbiBkYW5nIGt5IHRoYXQgbmdoaWVwIHRyb25nIHRob2kgaGFuIDcgbmdheSBs YW0gdmllYyBrZSB0dSBuZ2F5IGNvIHF1eWV0IGRpbmggDQp0aG9pIHZpZWMuIE5oaWV1IHRydW9u ZyBob3Aga2hhYyBsYSBkbyBzdSB0cmUgbmFpIGN1YSBjaHUgZG9hbmggbmdoaWVwIHRyb25nIHZp ZWMgZG9uZyANCmJhbyBoaWVtIHhhIGhvaSwga2hpZW4gbmd1b2kgbGFvIGRvbmcga2hvbmcgdGhl IG5vcCBzbyBiYW8gaGllbSBkdW5nIGhhbi4gIA0KIA0KaHR0cDovL3d3dy5kb25nYWJhbmsuY29t LnZuL3NlcnZpY2UvNjMuaHRtbCANCg0KVFAgSENNOiBWYW4gcGhvbmcgVGhhbmggdXkgVFAuSENN IGR1bmcgdGllbiB0aHVlIGN1YSBkYW4gZ29wIGNvIHBoYW4gdmFvIG5nYW4gaGFuZyBEb25nIEEs IGtpZW0gbG9pIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS9waGFwbHVhdC8yMDEwMDcv TmFuLW5oYW4ta2luaC1ob2FuZy1rZS1jaHV5ZW4tYmktYmFvLXZlLW5nYW4taGFuZy1iYW4tOTI0 NDk3LyBEYW0gRGUgMjI6MDksIDI0LzA3LzIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006IEJhbyB2ZSBO Z2FuIGhhbmcgRG9uZyBBIGJhbiBkb2kgdGFjIGtoYWNoIGhhbmcgLSAxIG5ndW9pIGJpIHRodW9u ZyANCg0KTmFuIG5oYW4gY2hvIGJpZXQgYmkgaGFpIGJhbyB2ZSBkdW5nIHN1bmcgdXkgaGllcCB2 YSA0IC0gNSBwaGF0IHN1bmcgZGEgbm8uIDQgdm8gZGFuIGRhIGR1b2MgdGltIHRoYXkgdGFpIGhp ZW4gdHJ1b25nLiAgDQoNCkJhIExlIFF1eW5oIFRodSwgUGhvIEdpYW0gZG9jIE1ha2V0dGluZyBr aWVtIHBoYXQgbmdvbiB2aWVuIGN1YSBOZ2FuIGhhbmcgRG9uZyBBIA0Ka2hhbmcgZGluaCBjaGkg Y28gMSBwaGF0IHN1bmcgbm8gdmEgbm9pOiAiRGVuIHRob2kgZGllbSBuYXkgY2h1bmcgdG9pIGNo aSB4YWMgZGluaCANCmtoYXUgc3VuZyBwaGF0IG5vIGxhIGtoYXUgc3VuZyBjbyBnaWF5IHBoZXAu IENvbiB2ZSBraGF1IHN1bmcga2hvbmcgY28gZ2lheSBwaGVwLCANCmNodW5nIHRvaSBkYW5nIGNo byBrZXQgbHVhbiBjaGluaCB0aHVjLi4uIiANCg0KaHR0cDovL3ZpZXRiYW8udm4vS2luaC10ZS9I YW5nLWxvYXQtQVRNLXJvLWRpZW4tVHJhY2gtbmhpZW0tbmdhbi1oYW5nLWRlbi1kYXUvNjUxOTE2 NzYvOTEvIEtob25nIE5odW5nIDA4LzQvIDIwMTAsIDE2OjMzIEdNVCs3DQoNCk1heSBBVE0gY3Vh IG5nYW4gaGFuZyBEb25nIEEgYmkgcm8gZGllbg0KDQpodHRwOi8vZm9ydW0uaGl2LmNvbS52bi9k ZWZhdWx0LmFzcHg/Zz1wb3N0cyZtPTE5OTgxMyAwODoyNzowMCAyMC8wNS8yMDEwDQoNCktoYWNo IGhhbmcgbGFpIGJpIGRpZW4gZ2lhdCB0YWkgY290IEFUTSBOZ2FuIGhhbmcgRG9uZyBBDQoNClRo ZW8gcGhhbiBhbmggY3VhIG5ndW9pIGRhbiBkZW4gQmFvIENBTkQsIHZhbyBsdWMgMTloIG5nYXkg MTgvNS8yMDEwLCBjaGkgTi5ULiBjbyANCnZhbyBnaWFvIGRpY2ggdGFpIGNvdCBBVE0gY3VhIE5n YW4gaGFuZyAoTkgpIERvbmcgQSBkYXQgdHJ1b2MgY3VhIFVCTkQgcGh1b25nIA0KWHVhbiBMYSAo cXVhbiBUYXkgSG8sIEhhIE5vaSkuIEtoaSBjYW0gdmFvIHRheSBuYW0gY3VhIGN1YSBjb3QsIGNo aSBOLlQuIGRhIGJpIGRpZW4gDQpnaWF0IG1hbmgsIHRlIGJhaSBjYW5oIHRheSB0cmFpLiBEdSBn aWF0IHZvaSBkdW9jIHRheSByYSwgbmh1bmcgc3UgdmllYyB0cmVuIGRhIGtoaWVuIGNoaSBULiAN CmhldCBzdWMgaG9hbmcgc28uIA0KDQpCdWMgeHVjIHRydW9jIHRpbmggdHJhbmcgbmF5LCBjaGkg Ti5ULiBkYSBuZ2F5IGxhcCB0dWMgZ29pIGRpZW4gcGhhbiBhbmggbGFpIHZvaSBUcnVuZyANCnRh bSBUaGUgY3VhIG5nYW4gaGFuZy4gRHVvYyBiaWV0LCBtYWMgZHUgdHJ1b2MgZG8gSGEgTm9pIGNv IG11YSwgbmh1bmcgdmkgdHJpIGNvdCANCkFUTSB0cmVuIHZpYSBoZSBraGEga2hvIHJhby4NCg0K U2FuZyAxOS81LCBQViBCYW8gQ0FORCBkYSBsaWVuIGhlIHZvaSBiYSBOZ3V5ZW4gVGhpIEtpbSBE dW9uZywgR2lhbSBkb2MgTmdhbiANCmhhbmcgRG9uZyBBLCBjaGkgbmhhbmggSGEgTm9pIGRlIGJp ZXQgdGhlbSB0aG9uZyB0aW4uIEJhIER1b25nIGRhIHhhYyBuaGFuIHN1IGNvIHZhIA0KY2hvIGJp ZXQgZGllbiBybyB0dSBiYW5nIGRlbiBjdWEgY290LiAiS2hpIHRyb2kgbXVhLCB0aGluaCB0aG9h bmcgaGllbiB0dW9uZyBuYXkgdmFuIHhheSByYSIuIA0KRGlldSBkYW5nIG5vaSBsYSBobyBkaWVu IGJhbmcgZGVuIGN1bmcgbGEgbW90IHRyb25nIG5odW5nIHN1IGNvIGRhIGdhcCBwaGFpIHRydW9j IGRheSwgDQptYSBjYWMgTkggZGV1IGRhIHR1eWVuIGJvIHJhIHNvYXQsIHN1YSBjaHVhLCBkYW0g YmFvIGFuIHRvYW4gY2hvIGtoYWNoIGhhbmcgZ2lhbyBkaWNoOyANCihzb25nIGRlbiBuYXkgdmFu IHhheSByYSB0YWkgQVRNIE5nYW4gaGFuZyBEb25nIEEpLiANCg0KaHR0cDovL2JveGl0dm4uYmxv Z3Nwb3QuY29tLzIwMTAvMDYvb25nLWNoaS10cnVvbmctdGFuLXNhbmctZW4tdGhhbS10b2kuaHRt bCBOZ3V5ZW4gVHJvbmcgVmluaCAyNS8wNi8yMDEwIDA4OjI4IA0KDQpPbmcgVHJ1b25nIFRhbiBT YW5nIHR1eWVuIGJvIHZvaSB0dW9uZyBOZ3V5ZW4gVHJvbmcgVmluaDogIlNlIHRodWMgaGllbiBk YW4gY2h1IiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvVmlldG5hbS9YYS1ob2kvMjAwMy8wMS8z QjlDNDg0Ny8gKHRyaWNoIGRhbiBub2kgZHVuZykgDQoNClRQIEhDTTogQ2hpbmggb25nIFRydW9u ZyBUYW4gU2FuZyAibGFtIG5nbyIsICJiYW8ga2UiIGNobyAiYmFuZyBkYW5nIHhhIGhvaSBkZW4g TmFtIENhbSIgbG9uZyBoYW5oIHRyb25nIHRob2kgZ2lhbiBkYWksIA0KZ2F5IG5oaWV1IHRvaSBh YywgbGFtIG1hdCBhbiBuaW5oIHRyYXQgdHUgbmdoaWVtIHRyb25nOyBnYXkgYmF0IGJpbmgsIHBo YW4gbm8sIG1hdCBsb25nIHRpbiB0cm9uZyBuaGFuIGRhbi4NCiAgDQpodHRwOi8vd3d3LnRhbGF3 YXMuZGUvDQoNClRoYW0gbmh1bmcgY2hpbmggdHJpDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L1Zp ZXRuYW0vWGEtaG9pLzIwMDMvMDEvM0I5QzQ4NDcvICh0cmljaCBkYW4gbm9pIGR1bmcpIA0KDQpU UCBIQ006IE9uZyBUcnVvbmcgVGFuIFNhbmcgY28gbmhpZXUgc2FpIHBoYW0sIGNhIHRyb25nIGNv bmcgdGFjIGNhbiBibywgdmFuIHVuZyBkdW5nIGxlbiBjaHVjIFRydW9uZyBCYW4gS2luaCBUZSBU cnVuZyB1b25nICANCg0KaHR0cDovL2Rhbmx1YW52bi5ibG9nc3BvdC5jb20vMjAxMC8xMS9waGUt bmd1eWVuLXRhbi1kdW5nLXBoYW4tY29uZy5odG1sIDEzLzExLzIwMTAgNDozNSBQTSANCg0KTW90 IHNvIHZpIExhbyB0aGFuaCB0byBjYW8gVHJ1b25nIFRhbiBTYW5nIA0KDQpUcnVvbmcgVGFuIFNh bmcgZGEga2V0IG5vaSB2b2kgTmd1eWVuIEh1dSBIaWVuIG1vdCBwaGFuIHR1IHRoYSBob2EgbmF5 IGJpIGtoYWkgdHJ1IGtob2kgZGFuZyB2YSBib24gcGhhbiBkb25nIFRyYW4gSHV5bmggRHV5IFRo dWMuIA0KVHJ1b25nIFRhbiBTYW5nIGRhIHlldSBjYXUgYmFuZyB2YW4gYmFuIGR1YSBOZ3V5ZW4g SHV1IEhpZW4gbGFtIEN1YyB0cnVvbmcgQm8gQnV1IENoaW5oIFZpZW4gVGhvbmcgZGUgcGh1IHRy YWNoIGNhYyBkZSBhbiBsb24gY3VhIG5nYW4gaGFuZyB0aGUgZ2lvaS4gDQoNCmh0dHA6Ly93d3cu dGluMjQ3LmNvbS9uaGlldV9jYW5fYm9fdGhhbV9uaHVuZyUyQ190aWV1X2N1Y190cm9uZ19saW5o X3Z1Y19uaGFfZGF0LTYtMjEzMTQ4ODguaHRtbCAxNy8wOC8yMDA2IC0gMDU6NTcgLSBOZ3Vvbjog dm5FeHByZXNzLm5ldA0KDQpUUCBIQ006IE5oaWV1IGNhbiBibyB0aGFtIG5odW5nLCB0aWV1IGN1 YyB0cm9uZyBsaW5oIHZ1YyBuaGEgZGF0IA0KDQotIENodSB5ZXUgdGFwIHRydW5nIG8gdmllYyB0 aGFuaCBseSwgYmFuIG5oYSBkYXQgdGh1b2Mgc28gaHV1IG5oYSBudW9jOyANCmxvaSBkdW5nIGRh bmggbmdoaWEgbGFwIGR1IGFuIG5oYSBjaG8gbmd1b2kgY28gdGh1IG5oYXAgdGhhcCBob2FjIGNo byBjYW4gYm8sIA0KY29uZyBuaGFuIHZpZW4gbmh1bmcgc2F1IGRvIHBoYW4gbG8sIGJhbiBuZW4g a2hvbmcgZHVuZyBkb2kgdHVvbmcuLi4NCg0KLSBWaSBwaGFtIHBobyBiaWVuIHRyZW4gbGluaCB2 dWMgdGFpIGNoaW5oIGxhIHZpZWMgbXVhIHNhbSB2YXQgdHUgdHJhbmcgdGhpZXQgYmkgdm9pIGdp YSB0cmkgDQpsb24ga2hvbmcgcXVhIGRhdSB0aGF1IGhvYWMgcXVhbiBseSBkYXUgdGhhdSBraG9u ZyBjaGF0IGNoZSwgbGFtIHBoYXQgc2luaCBuaGlldSB0aWV1IGN1YywgZ2F5IHRoYXQgdGhvYXQs IHRoaWV0IGhhaSBsb24uDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2JhbmRvY3ZpZXQvMjAwMy82 LzE1MDIwLyAwNzo0OCcgMTAvMDYvMjAwMyAoR01UKzcpDQoNClRQLkhDTTogVnUgYW4gTmFtIENh bQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1yZXZpZXcuY29tL21vZHVsZXMucGhwP25hbWU9TmV3cyZm aWxlPWFydGljbGUmc2lkPTY5NzEgMzEvNy8yMDA4IDAwOjQ3DQoNClRQIEhDTTogS2hpIHhheSBy YSBjaHV5ZW4gYmFuZyBkYW5nIE5hbSBDYW0gbG9uZyBoYW5oIG8gU2FpIEdvbiwgVHJ1b25nIFRh biBTYW5nIGxhIEJpIHRodSB0aGFuaCB1eSwgVHVvbmcgQ29uZyBBbiBCdWkgUXVvYyBIdXkgDQps YSBnaWFtIGRvYyBTbyBDb25nIEFuIHRoYW5oIHBobyAoSENNKSwgVHJhbiBNYWkgSGFuaCBsYSB0 b25nIGJpZW4gdGFwIHRvICJOaGEgQmFvIFZhIENvbmcgTHVhbiIuDQoNCkNodXllbiB2byBsbyB0 dSBtb3QgYmFpIGJhbyB0byBjYW8gVHJhbiBNYWkgSGFuaCBhbiB0aWVuIGN1YSBOYW0gQ2FtIGRl IHRheSBuYXkgcmEgdHUgc29tLiBDdW9jIGRpZXUgdHJhIGJhdCBkYWMgZGkgDQpsYW0gbm9pIGxl biBtb3QgaGUgdGhvbmcgY2hhbmcgY2hpdCB0dSBjb25nIGFuLCB2aWVuIGNodWMgdHUgcGhhcCwg dmllbiBjaHVjIHRoYW5oIHBobywgZGluaCBsaXUgImNoZSBkdSIgY2hvIGJhbmcgDQpkYW5nIHhh IGhvaSBkZW4gbGFtIGFuLg0KDQpDdW9pIGN1bmcsIG5hbSAyMDAzLCBOYW0gQ2FtIGJpIGFuIHR1 IGhpbmgsIFRyYW4gTWFpIEhhbmggKGRhIGxlbiB0b2kgY2h1YyBHaWFtIGRvYyBEYWkgUGhhdCBU aGFuaCBRdW9jIEdpYSksIA0KQnVpIFF1b2MgSHV5IChkYSBsZW4gdG9pIHRodSB0cnVvbmcgQm8g Q29uZyBBbikgdmEgUGhhbSBTeSBDaGllbiAocGhvIHZpZW4gdHJ1b25nIFZpZW4gS2llbSBTYXQg TmhhbiBEYW4gVG9pIENhbykgY2hpIGJpIGFuIHR1IHR1b25nIHRydW5nLg0KDQpUcnVvbmcgVGFu IFNhbmcgdHV5IG1hdCBjaHVjIChiaSB0aHUpIHRoYW5oIHV5IGxhaSByYSBIYSBOb2kgbGFtIFRy dW9uZyBCYW4gS2luaCBUZSBUcnVuZyB1b25nLCBuYXkgdmFuIGxhIHV5IHZpZW4gQm8gQ2hpbmgg VHJpLiAgDQoNCihZIGtpZW4gY3UgdHJpOiBPbmcgVHJ1b25nIFRhbiBTYW5nIHJvIHJhbmcgdGhp ZXUgbmFuZyBsdWMsIHRoaWV1IGd1b25nIG1hdSwgYmkga3kgbHVhdCBtYSBzYW8gdmFuIGR1b2Mg DQpnaW9pIHRoaWV1IHZhbyBUcnVuZyB1b25nIHZhIEJvIGNoaW5oIHRyaT8NClRyb25nIHZ1IFBN VTE4LCBvbmcgVHJ1b25nIFRhbiBTYW5nIHRpZXAgdHVjIGJvYyBsbyBzdSBjaGFtIHRyZSB4dSBs eSBreSBsdWF0IG9uZyBOZ3V5ZW4gVmlldCBUaWVuLCANCmdpYW0gdGFjIGR1bmcgcmVuIGRlLCBn aWFvIGR1YyBwaG9uZyBjaG9uZyB0aGFtIG5odW5nKS4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEt aG9pL0hvaS1uZ2hpLVRydW5nLXVvbmctNy1reS1sdWF0LWtoaWVuLXRyYWNoLXV5LXZpZW4tQm8t Q2hpbmgtdHJpLVRydW9uZy1UYW4tU2FuZy8xMDgwNDkzNS8xNTcvIDIyLzExLzIwMDMsIDA4OjE1 IEdNVCs3IChUaGVvIFRUWFZOKQ0KDQpCYW4gQ2hhcCBoYW5oIFRydW5nIHVvbmcgdGhpIGhhbmgg a3kgbHVhdCBPbmcgVHJ1b25nIFRhbiBTYW5nLCB1eSB2aWVuIEJvIENoaW5oIHRyaSwgVHJ1b25n IGJhbiBLaW5oIHRlIFRydW5nIHVvbmcgDQpiYW5nIGhpbmggdGh1YyBraGllbiB0cmFjaCB2aSB0 cm9uZyB0aG9pIGt5IGxhbSBCaSB0aHUgVGhhbmggdXkgVFAgSENNIChraG9hIFZJKSBjaHVhIGxh bSB0cm9uIHRyYWNoIG5oaWVtIHRyb25nIA0KdmllYyBjaGkgZGFvIGRpZXUgdHJhLCBuZ2FuIGNo YW4gbmh1bmcgaG9hdCBkb25nIHRvaSBwaGFtIGN1YSBUcnVvbmcgVmFuIENhbSBjdW5nIGRvbmcg Ym9uIHZhIGNvIG5odW5nIGtodXlldCBkaWVtIA0KdHJvbmcgY29uZyB0YWMgY2FuIGJvLg0KDQpo dHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9LZXQtbHVhbi1kaWV1LXRyYS1jaHV5 ZW4tYW4tTmFtLUNhbS1waGFuLTYxLUx5LWxpY2gtVHJhbi1NYWktSGFuaC1QaGFtLVNpLUNoaWVu LXZhLWNvbi1nYWktTmFtLUNhbS8xMDgwNzE3Ny8yMTgvIFRyYW4gTWFpIEhhbmgsIFBoYW0gU2kg Q2hpZW4gdmEgY29uIGdhaSBOYW0gQ2FtIDE1LzEyLzIwMDMgMTQ6NTYgR01UKzcgDQoNClRyYW4g TWFpIEhhbmggKG5ndXllbiBwaG8gY2h1IHRpY2gga2llbSBUb25nIHRodSBreSBob2kgbmhhIGJh byBWTikgZGEgY2hvIGRhbmcgYmFvIG5vaSBkdW5nIGtpZW4gbmdoaSBodXkgYm8gDQpxdXlldCBk aW5oIHRhcCB0cnVuZyBnaWFvIGR1YyBjYWkgdGFvIGRvaSB2b2kgTmFtIENhbS4gUGhhbSBTaSBD aGllbiAobmd1eWVuIHBobyB2aWVuIHRydW9uZyBWS1NORCBUb2kgY2FvKSANCmNoaSBkYW8gc29h biB0aGFvIHZhIGt5IGtpZW4gbmdoaSB0cmVuLiBWZSB2aWVjIG5heSwgb25nIENoaWVuIGR1b2Mg ImxvdCB0YXkiIGtob2FuZyA0NCB0cmlldSBkb25nLCBvbmcgSGFuaCBob24gOTMgdHJpZXUuDQoN Cmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L0tldC1sdWFuLWRpZXUtdHJhLWNo dXllbi1hbi1OYW0tQ2FtLXBoYW4tNjItTHktbGljaC1vbmctQnVpLVF1b2MtSHV5LXZhLUR1b25n LU1pbmgtTmdvYy8xMDgwNzIzNi8yMTgvIDE3LzEyLzIwMDMgMDc6MzQgR01UKzcgDQoNClRQIEhD TTogS2hpIGxhbSBHaWFtIGRvYyBDb25nIGFuIFRQIEhDTSwgb25nIEJ1aSBRdW9jIEh1eSBiaWV0 IE5hbSBDYW0gY28gbmhpZXUgaG9hdCBkb25nIGJhbmcgbmhvbSB0aGVvIGtpZXUgeGEgaG9pIGRl biwgDQpuaHVuZyBraG9uZyBjaGkgZGFvIHRyaWV0IHBoYSBjbyBoaWV1IHF1YS4gRHVvbmcgTWlu aCBOZ29jIChuZ3V5ZW4gdHJ1b25nIHBob25nIGNhbmggc2F0IGhpbmggc3UgQ29uZyBhbiBUUCBI Q00pIA0KYmkgTmFtIENhbSBsb2kga2VvLCBtdWEgY2h1b2MsIGJpZW4gdGhhbmggYmluaCBwaG9u ZyBiYW8gY2hlIGhhbmggdmkgcGhhbSB0b2kgdHJvbmcgdGhvaSBnaWFuIGRhaS4gDQoNCmh0dHA6 Ly93d3cuYmFvbW9pLmNvbS9Ib21lL0RvaU5vaS1Eb2lOZ29haS92b2guY29tLnZuL0RvbmctY2hp LVRydW9uZy1UYW4tU2FuZy1UaWVwLXR1Yy1kYW0tYmFvLWRhbi1jaHUta3ktY3VvbmctdHJvbmct RGFuZy1kb2ktbW9pLXBodW9uZy10aHVjLWxhbmgtZGFvLzQzNzYxNDMuZXBpIDYvOC8yMDEwIA0K DQpPbmcgVHJ1b25nIFRhbiBTYW5nIHJldSByYW86IFRpZXAgdHVjIGRhbSBiYW8gZGFuIGNodSwg ZG9pIG1vaSBwaHVvbmcgdGh1YyBsYW5oIGRhbyANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvVmll dG5hbS9YYS1ob2kvMjAwMy8wMS8zQjlDNDg0Ny8gKHRyaWNoIGRhbiBub2kgZHVuZykgDQoNClRQ IEhDTTogT25nIFRydW9uZyBUYW4gU2FuZyBjbyBuaGlldSBzYWkgcGhhbSBuZ2hpZW0gdHJvbmcg dmFuIHRpZXAgdHVjIGR1b2MgYm8gdHJpIHZhbyBCbyBjaGluaCB0cmkgdmEgQmFuIEJpIHRodSBr aG9hIFggIA0KIA0KaHR0cDovL3ZpZXRiYW8udm4vQ2hpbmgtVHJpL09uZy1UcnVvbmctVGFuLVNh bmctZHVvYy1waGFuLWNvbmctbGFtLVRodW9uZy10cnVjLUJhbi1CaS10aHUvNjUwNTI3NDYvOTYv IDA5LzUvMjAwNiwgMDg6MzMgR01UKzcgDQoNClRQIEhDTTogT25nIFRydW9uZyBUYW4gU2FuZyBk dW9jIHBoYW4gY29uZyBnaXUgY2h1YyBUaHVvbmcgdHJ1YyBCYW4gQmkgdGh1IFRydW5nIHVvbmcg RGFuZy4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDYvMDUvNTY5ODQ1LyAxNDow MCcgMTIvMDUvMjAwNiAoR01UKzcpIA0KDQpUUEhDTTogTmhpZXUga2hvIGJhaSBOaGEgbnVvYyBi aSAnYW4gdHVvaSBudW90IHNvbmcnIA0KDQpodHRwOi8vdGlubW9pLnZuL01hdC1ob24tMjg1MC10 eS1kb25nLXZpLWNoYW0tdGllbi1kby0wNzM5MDEzLmh0bWwgQmFpIHZpZXQgY2FwIG5oYXQgbHVj OiAwODoyMSBuZ2F5IDA0LzA3LzIwMDkgDQoNClRQIEhDTTogTWF0IGhvbiAyLjg1MCB0eSBkb25n IHZpIGNhYyBkdSBhbiBjaGFtIHRpZW4gZG8gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4v SG9tZS9DYWMtZHUtYW4tbmhhLW8tVFBIQ00tS2llbS10cmEtbGEtcmEtc2FpLXBoYW0vMjAxMDYv MTg5MzU1Lmxhb2RvbmcgOTowMCBBTSwgMjMvMDYvMjAxMA0KDQpUUCBIQ006IENhYyBkdSBhbiBu aGEgbyBUUEhDTSAtIEtpZW0gdHJhIGxhIHJhIHNhaSBwaGFtIQ0KDQpNYWMgZHUgbW9pIGNoaSBr aWVtIHRyYSBjbyAyMC8yMzAgZHUgYW4gbmhhIG8sIG5odW5nIGRvYW4ga2llbSB0cmEgZGEgcGhh dCBoaWVuIGhhdSBoZXQgY2FjIGR1IGFuIGRldSBjbyBpdCBuaGlldSB2aSBwaGFtIGNhYyBxdXkg ZGluaC4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAwNi8xMC82MjAzNzAvICAx MjoyNCcgMDkvMTAvMjAwNiAoR01UKzcpIA0KDQpIb2kgbmdoaSB0b2FuIHF1b2MgdmUgcGhvbmcg Y2hvbmcgdGhhbSBuaHVuZywgbGFuZyBwaGkNCg0KT25nIFRydW9uZyBUYW4gU2FuZyAtIFV5IHZp ZW4gQm8gQ2hpbmggdHJpLCBUaHVvbmcgdHJ1YyBCYW4gQmkgdGh1LCBjaGkgZGFvOiBwaGFpIGtp ZW4gcXV5ZXQga2hhYyBwaHVjIA0KdGluaCB0cmFuZyAiZGkgaG9hIHZpIHF1eSIsIG5lIG5hbmcs IG5lIHRyYW5oLCBsYW0gdGUgbGlldCBzdWMgY2hpZW4gZGF1IHRydW9jIGNhYyBoaWVuIHR1b25n IHRoYW0gbmh1bmcsIA0KbGFuZyBwaGk7IGNoaSB0aGF5IHRoYW0gbmh1bmcsIGxhbmcgcGhpIG8g Y2FjIG5nYW5oLCBkaWEgcGh1b25nLCBkb24gdmkga2hhYyBtYSBraG9uZyB0aGF5LCBraG9uZyBk YW0gZGF1IA0KdHJhbmggdm9pIHRlIHRoYW0gbmh1bmcsIGxhbmcgcGhpIG5nYXkgdHJvbmcgbmdh bmgsIGRpYSBwaHVvbmcsIGRvbiB2aSBjdWEgY2hpbmggbWluaC4NCg0KaHR0cDovL3ZuZXhwcmVz cy5uZXQvR0wvWGEtaG9pLzIwMDYvMTAvM0I5RUZBREQvIDI1LzEwLzIwMDYsIDEwOjM5IEdNVCs3 DQoNClRQIEhDTTogTmhhIGRhdCB0aHVvYyBzbyBodXUgTmhhIG51b2Mgc3UgZHVuZyBraG9uZyBo aWV1IHF1YSAoY2EgdGhvaSBreSBvbmcgVHJ1b25nIFRhbiBTYW5nIGxhbSBDaHUgdGljaCBUUCBI Q00pDQoNCmh0dHA6Ly9raWVudHJ1Yy52bi90aW5fdHJvbmdfbnVvYy82MS1uaGEtZGF0LWNvbmct Ymktc3UtZHVuZy1zYWktbXVjLWRpY2gtdGFpLXRwLWhjbS8xMDE1Ni5odG1sIDAwOjQ5DQoNClRQ IEhDTTogNjElIG5oYSwgZGF0IGNvbmcgYmkgc3UgZHVuZyBzYWkgbXVjIGRpY2ggDQoNCmh0dHA6 Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMDYvMTAvNjIwMzcwLyAgMTI6MjQnIDA5LzEwLzIw MDYgKEdNVCs3KSANCg0KT25nIFRydW9uZyBUYW4gU2FuZyBodWFuIHRoaTogY2FuICJwaGF0IGhp ZW4gdmEgeHUgbHkga2lwIHRob2ksIG5naGllbSBtaW5oIHRoZW8ga3kgbHVhdCBEYW5nLCANCnBo YXAgbHVhdCBjdWEgTmhhIG51b2Mgdm9pIG1vaSBoYW5oIHZpIHRoYW0gbmh1bmcsIGxhbmcgcGhp OyB0YXAgdHJ1bmcgeHUgbHkgZHV0IGRpZW0gbmh1bmcgdnUgdmllYyANCmRhIGR1b2MgcGhhdCBo aWVuOyBraWVuIHF1eWV0IGtob25nIGRlIGNvICJ2dW5nIGNhbSIsICJ2dW5nIGFuIHRvYW4iLCBk dSBuZ3VvaSBkbyBsYSBhaSwgZ2l1IGNodWMgdnUgZ2ksIA0KZGFuZyBjb25nIHRhYyBoYXkgZGEg bmdoaSBodXUiLiANCg0KT25nIFRydW9uZyBUYW4gU2FuZyBub2k6ICJEb2kgdm9pIG5odW5nIGRh bmcgdmllbiBjbyBkYXUgaGlldSB0aGFtIG5odW5nIGxhbmcgcGhpLCB1eSB0aW4gZ2lhbSBzdXQg dGhpIA0KZHUgY28gcXVhbiBjaHVjIG5hbmcgY2h1YSBrZXQgbHVhbiBkdW9jLCBjYXAgdXkgdmFu IHBoYWkgeGVtIHhldCwgYm8gdHJpIGNvbmcgdmllYyBraGFjIGNobyBwaHUgaG9wLiANClhlbSB4 ZXQsIHh1IGx5IG5naGllbSB0cmFjaCBuaGllbSBjdWEgbmd1b2kgZHVuZyBkYXUgY28gcXVhbiB2 ZSBuaHVuZyB2dSB2aWVjIHRoYW0gbmh1bmcsIGxhbmcgcGhpIA0KZG8gY2FuIGJvLCBkYW5nIHZp ZW4gZHVvaSBxdXllbiBxdWFuIGx5IHRydWMgdGllcCBnYXkgcmE7IHZhIGNhIHZpZWMga2hvbmcg bmFtIGR1b2MgdGluaCBoaW5oLCANCmtob25nIHF1YW4gbHkgZHVvYyBkb24gdmksIGtob25nIHBo YXQgaGllbiBkdW9jIG5odW5nIHZ1IHZpZWMgdGhhbSBuaHVuZywgbGFuZyBwaGkgbmdoaWVtIHRy b25nIHhheSByYSANCm8gZG9uIHZpIG1pbmggdHJ1b2Mga2hpIG5oYW4gZGFuLCBjYWMgY28gcXVh biBjaHVjIG5hbmcgaGF5IGJhbyBjaGkgcGhhdCBoaWVuIg0KDQpodHRwOi8vdm5leHByZXNzLm5l dC9HTC9YYS1ob2kvMjAwNi8xMC8zQjlFRkFERC8gMjUvMTAvMjAwNiwgMTA6MzkgR01UKzcNCg0K VFAgSENNOiBDaGluaCBvbmcgVHJ1b25nIFRhbiBTYW5nIGNvIGtodXlldCBkaWVtIGtlbyBkYWks IHRoaWV1IG5hbmcgbHVjIGNvbmcgdGFjIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZzsgdGFpIHNh biBjb25nIGJpIGNoaWVtIGR1bmcsIA0Kc3UgZHVuZyBsYW5nIHBoaSwgdGhhdCB0aG9hdCByYXQg bG9uOyBnYXkgYnVjIHh1YywgbWF0IGxvbmcgdGluIHRyb25nIG5oYW4gZGFuOyAibGFtIG5nbyIs IG1vYyBuZ29hYywgYmFvIGNoZSwgYmUgcGhhaTsgDQpsdW5nIGRvYW4gY2hpbmggdHJpOyB2YW4g dW5nIGR1bmcgbGVuIGNodWMuIA0KDQpodHRwOi8vd3d3Lm5ndW9pLXZpZXQuY29tL2Fic29sdXRl bm0vYW5tdmlld2VyLmFzcD9hPTEyNDU1MyAxNi8xMi8yMDEwIA0KVGluIG5oYW4gc3UgRGFpIGhv aSBEYW5nIGtob2EgWEkgKGR1IGtpZW4ga2hhaSBtYWMgbmdheSAxMS8xLzIwMTEpOiAgDQoNClRQ IEhDTTogT25nIFRydW9uZyBUYW4gU2FuZyBzZSBsZW4gbGFtIENodSB0aWNoIG51b2MgLSBiaWV1 IHR1b25nIGRhbmggZHUgY3VhIHF1b2MgZ2lhIC0gbGEgbmd1b2kgZGFpIGRpZW4gY2hvIGRhdCBu dW9jIHRyb25nIGRvaSBub2kgdmEgZG9pIG5nb2FpIA0KDQpodHRwOi8vd3d3LnRob25nbHVhbi5v cmcvdm4vbW9kdWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9MzQ0NyBCdWkgVGlu IDEwLzAxLzIwMDkgDQoNClRQIEhDTTogQ2EgU2FpIEdvbiBkZXUgYmlldCBvbmcgVHJ1b25nIFRh biBTYW5nIHNvbmcgYnVvbmcgdGhhLCBidWEgYmFpIHJhIHNhbywgDQp2b2kgZGFuaCBoaWV1ICJj b25nIHR1IEJhYyBMaWV1IiwgdHVuZyBjdW9uZyBoaWVwIG51IG5oYW4gdmllbiwgdHVuZyBjbyBj b24gcmllbmcsIHBoYWkgZHVhIHJhIEhhIE5vaSB0cmFuaCBkdSBsdWFuIGNoZSB0cmFjaC4gDQoN CihDdSB0cmkgcXVhbiB0YW06IENhbiB0aW0gaGlldSB2ZSB0aW5oIGNhbmggY3VhIG5ndW9pIHBo dSBudSBjbyBjb24gcmllbmcgdm9pIG9uZyBUcnVvbmcgVGFuIFNhbmcsIA0KYWkgbGEgbmd1b2kg Z2l1cCBkbyBkZSBjaG8gY2hpIHZhIGNoYW0gc29jIGR1YSB0cmUga2hpIG1vaSByYSBkb2ksIG5o dW5nIGFpIGJpZXQgY2h1eWVuIG5heSB2YSB0dSANCnRob2kgZ2lhbiBkbyBkZW4gbmF5IGN1b2Mg c29uZyBjdWEgaG8gcmEgc2FvLCBjbyBhaSBiaSBoYW0gaGFpIGtob25nPykgIA0KDQpodHRwOi8v d3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzE2MDUxOS9OaHVjLW5ob2ktbmFuLXRyZS1iaS1iby1y b2kuaHRtbCBMZSBOZ3V5ZW4gMDc6NTMgMTIvMDUvMjAwOSANCg0KVFAgSENNOiBOaHVjIG5ob2kg bmFuIHRyZSBiaSBibyByb2kNCg0KVFAgLSBZZXUgcGhhaSBobyBTbyBkZSByb2kgbW90IG1pbmgg ZGVuIGJlbmggdmllbiBzaW5oIGNvbiB2YSBibyBsdW9uIGNvbiBvIGJlbmggdmllbi4gDQpUaGF5 IGNvbiBkaSB0YXQsIG5ndW9pIG1lIHRyb24gdmllbiBtb3QgbWluaC4gQ28gdHJ1b25nIGhvcCBs YSBzaW5oIHZpZW4gZGVuIGJlbmggdmllbiANCnNpbmggbm8geG9uZyByb2kgIGJvIGNvbi4uLg0K RG8gbGEgbW90IHNvIG5odW5nIG5ndXllbiBuaGFuIGtoaWVuIGNobyBzbyB0cmUgc28gc2luaCBi aSBjaGEgbWUgYm8gcm9pIG8gY2FjIGJlbmggDQp2aWVuIHBodSBzYW4gdGFpIFRQSENNIGRhbmcg bmdheSBjYW5nIHRhbmcuDQoNCktob2EgQ2hhbSBzb2MgVmF0IGx5IFRyaSBsaWV1LCBCZW5oIHZp ZW4gKEJWKSBQaHUgc2FuIFR1IER1IFRQSENNLCBsdW9uIHRhcCBuYXAgYm8gDQptZSBib25nIGJl IG5odW5nIGR1YSBjb24gdGF0IG5ndXllbiBob2FjIHN1YyBraG9lIHlldSBjaG8gZG9pIGRlIGR1 b2MgYmFjIHNpIHRyaSBsaWV1LiANCkNhbmggZG8sIEtob2EgRHVvbmcgbmhpIFNvIHNpbmggbGFp IGxhIG5vaSB0aWVwIG5oYW4gbmh1bmcgZHVhIHRyZSBiaSBjaGEgbWUgYm8gcm9pIA0KZGFuZyBw aGFpIGNoYW0gc29jIGRhYyBiaWV0LiANCg0KKEFuaDogQ2hhbSBzb2MgdHJlIGJpIGJvIHJvaSBv IGtob2EgRHVvbmcgbmhpIHNvIHNpbmgsIEJlbmggdmllbiBUdSBEdS4gQW5oOiBMZSBOZ3V5ZW4p IA0KDQpIb24gMjAgbmFtIGdhbiBibyBvIEJWIFR1IER1LCBUaWVuIHNpIE5nbyBNaW5oIFh1YW4t IFRydW9uZyBraG9hIER1b25nIG5oaSBTbyANCnNpbmgsIGNobyBiaWV0LCB0aW5oIHRyYW5nIHRy ZSBzaW5oIHJhIGJpIGJvIG1lIGJvIHJvaSBuZ2F5IG1vdCBuaGlldS4gDQoNCiJOYW0gMjAwNSBr aG9hIGNoaSBjbyBraG9hbmcgMTAwIHRydW9uZyBob3AgdHJlIGJpIGJvIHJvaSB0aGkgbmFtIDIw MDYgdGFuZyBsZW4gMTk2IA0KdHJ1b25nIGhvcCwgbmFtIDIwMDcgbGEgMTIwIHZhIG5hbSAyMDA4 IGxhIDExNiB0cnVvbmcgaG9wLiBDaHVhIGRheSBiYSB0aGFuZyBkYXUgDQpuYW0gMjAwOSBub2kg ZGF5IGNvIDQwIHRyZSBiaSBibyByb2kgLSBiYWMgc2kgWHVhbiBub2kuIA0KDQpUYWkgQlYgUGh1 IHNhbiBIdW5nIFZ1b25nIChUUEhDTSkgIHZhIEtob2EgU2FuIGN1YSBCViBEYWkgaG9jIFkgRHVv YyBUUEhDTSwgDQp0aW5oIHRyYW5nIHRyZSBiaSBibyByb2kgY3VuZyB0YW5nIGNob25nIG1hdC4g TmFtIDIwMDgsIHRhaSBCViBIdW5nIFZ1b25nIGNvIDQyIA0KdHJ1b25nIGhvcCB0cmUgYmkgdm8g dGh1YSBuaGFuLiBCb24gdGhhbmcgZGF1IG5hbSBuYXksIGNvIGhvbiAyMCB0cmUuIFRhaSBCViBE YWkgaG9jIFkgDQpEdW9jIFRQSENNIG5hbSAyMDA3IGNvIDIwIHRyZSBiaSBibyByb2ksIGRlbiBu YW0gMjAwOCBjbyAzMCB0cmUuIA0KDQpLaG9uZyBjaGkgbyBjYWMgQlYgc2FuIG1vaSBjbyB0aW5o IHRyYW5nIHNpbmggY29uIHhvbmcgbGEgZ3VpIG5obyBCViBudW9pIG1hIGNvbiBvIA0KY2FjIHBo b25nIGtoYW0gc2FuLCBobyBzaW5oIHR1IG5oYW4gbyBjYWMga2h1IGNvbmcgbmdoaWVwIHRhaSBC aW5oIER1b25nIHZhIFRQSENNLiANClkgdGEgdGVuIExpZW4tIHBob25nIGtoYW0gc2FuIHRyZW4g ZHVvbmcgSHV5bmggVGFuIFBoYXQsIHF1YW4gNywgY2hvIGJpZXQgdHUgZGF1IG5hbSANCmRlbiBu YXkgY28gaGFpIGNhIGxhIGNvbmcgbmhhbiBvIEtodSBDaGUgeHVhdCBUYW4gVGh1YW4gc2luaCB4 b25nIGJvIGNvbiBsYWkuIFNhdSBraGkgDQpjaGFtIHNvYyBkdW9jIGR1IHRoYW5nLCBub2kgZGF5 IGxhbSB0aHUgdHVjIG5obyBTbyBMYW8gZG9uZyAtIFRodW9uZyBiaW5oICYgWGEgaG9pIA0KVFBI Q00gZ2l1cCBkbyBkdWEgdmFvIGNhYyB0cmFpIG1vIGNvaS4gDQoNClF1YW5oIEtodSBDb25nIG5n aGllcCBTb25nIFRoYW4gMS0yLCBEb25nIEFuIG8gQmluaCBEdW9uZywgY2FjIHBob25nIGtoYW0g c2FuIA0KZGV1IGFuIG5lbiBsYW0gcmEgdmkga2hhY2ggdmFvIHJhIGdpYWkgcXV5ZXQgaGF1IHF1 YSBraGEgbmhpZXUuIE5oaWV1IHRydW9uZyBob3AgYnVvYyANCnBoYWkgc2luaCBkYSBibyBjb24g bGFpIG8gcGhvbmcgaG8gc2luaCB0dSBob2FjIGRlIG8gbmhpZXUgbm9pIGNvbmcgY29uZy4NCg0K MS4wMDEgbHkgZG8gDQoNClRoZW8gVGllbiBzaSBYdWFuLCBtYWMgZHUgTmhhIG51b2MgY28gY2hp bmggc2FjaCBiYW8gdHJvIHZhIG51b2kgZHVvbmcgY2hvIHRyZSBtbyANCmNvaSwgbXVjIHRybyBj YXAgY29uIHJhdCBoYW4gY2hlIGRvaSB2b2kgY2EgdHJlIHZhIG5ndW9pIGNoYW0gc29jIHRyZS4g DQoNCkhpZW4gdHJlIHNvIHNpbmggZHVvYyB0cm8gY2FwIDIxMC4wMDAgZG9uZy90aGFuZy90cmUs IHRyZSBsb24gMTg1LjAwMCBkb25nL3RoYW5nL3RyZS4gDQpNdW9uIGNoYW0gc29jIHRyZSB0b3Qs IGNhYyB0cnVuZyB0YW0gYmFvIHRybyB0cmUgdGFuIHRhdCBtbyBjb2kgdmFuIHBoYWkgZHVhIGNo dSB5ZXUgdmFvIA0Kc3UgZG9uZyBnb3AgY3VhIG5ndW9pIGhhbyB0YW0uIA0KDQpCZW4gdHJvbmcg bG9uZyBhcCBvIEtob2EgRHVvbmcgbmhpIFNvIHNpbmggbGEgbmh1bmcgc2luaCBsaW5oIGtob25n IHRlbiB0dW9pIHJhIGRvaSBraGkgDQpjb24gY2h1YSBkdSBuZ2F5LCBkdSB0aGFuZy4gVGF0IGNh IGRldSBkdW9jIGdhbiB0aGVtIGhhaSBjaHUgdm8gZGFuaCB2aSBibyBtZSBkYSB0dSANCmNob2ku IEJlbiBjaGllYyBnaXVvbmcgY2FjIGJlIGJpIGJvIHJvaSBuYW0gY3VuZyBjaGkgY28gbW90IHRv IGdpYXkgZ2hpIGNvbiBjdWEgYmEgQSANCmhheSBjb24gYmEgQiwgc2luaCBuZ2F5LCB0aGFuZywg bmFtIG1hIHRob2kuIA0KDQpUaWVuIHNpIE5nbyBNaW5oIFh1YW4ga2UgbGFpIGNodXllbiBzYW4g cGh1IFRyYW4gVGhpIFkgc2F1IGtoaSBzaW5oIGRvaSB0YWkgQlYgVHUgRHUgDQpkYSBkZSBsYWkg ZHVhIGNvbiBuaGUgY2FuIGJpIHZpZW0gZ2FuIHNpZXUgdmkgQiB2YSAgc3V5IGhvIGhhcCBuYW5n LiANCg0KVHJ1b25nIGhvcCBjb24gY3VhIHNhbiBwaHUgUGh1b25nLCAzNCB0dW9pLCBvIEJpbmgg RHVvbmcgc2luaCByYSBiaSBuYW8gdW5nIHRodXksIGJhIA0KbWUgbm9wIGRvbiBuaG8ga2hvYSBu dW9pIGdpdW0gZ2FuIGJvbiAgdGhhbmcgbmF5IG1lIGNoYXUga2hvbmcgZGVuIHRoYW0uDQoNCk51 IGhvIHNpbmggUGhhbSBUaGkgTG9hbiBjb25nIHRhYyBvIEJWIFR1IER1IGhvbiAyNSBuYW0gbmF5 IGtlIGxhaSBjaHV5ZW4gY2FjIHNhbiANCnBodSB2aSB0aGFuaCBuaWVuLCBsYW0gbWUga2hpIGNv biBjYXAgc2FjaCBkZW4gdHJ1b25nLCBtb2kgMTMtMTQgdHVvaSwgdmkgbG8gZGFpIHJvaSBibyAN CmNvbiBsYWkgY2hvIEJWIGxhIGNodXllbiB0aHVvbmcgbmdheS4NCg0KIk5oaWV1IGJhIG1lIG5o aSBzaW5oIGNvbiB4b25nIGxhIGJpZW4gbWF0IGtob2kgQlYgY2hpIGl0IGdpbyBzYXUgZG8gY2hv IGR1IGNodWEgdGhheSANCm1hdCBjb24uIE5oaWV1IHRydW9uZyBob3Agc2luaCB4b25nIGRlbiBr aGkgeHVhdCB2aWVuIGxhaSBiZSBjb24gYm8gbmdvYWkgZHVvbmcsIHRydW9jIA0KY29uZyBCViIt IGNoaSBMb2FuIGtlLiANCg0KQmFjIHNpIE5ndXllbiBUaGkgVGhhbmggSGEtIFRydW9uZyBraG9h IFBodSBzYW4gQlYgRGFpIGhvYyBZIGR1b2MgVFBIQ00gY2hvIA0KYmlldCwgbW9pIGRheSBraG9h IGNodW5nIGtpZW4gbW90IHNhbiBwaHUsIDI2IHR1b2kgdmFvIEJWIHNpbmgga2hvbmcgY28gbW90 IGRvbmcgbGFuIGx1bmcuIA0KTmhhbiB2aWVuIHkgdGUgdGFpIGtob2EgcGhhaSBjaGFtIHNvYyBj YSBoYWkgbWUgY29uLiAiTW9pIHNpbmggZHVvYyBoYWkgbmdheSANCm5ndW9pIG5heSB0cm9uIHZp ZW4iLSBiYWMgc2kgSGEgY2hvIGJpZXQuIA0KDQpCZW5oIHZpZW4gbGFuaCBkdQ0KDQooQW5oOiBU cmUgYmkgYm8gcm9pIGR1b2Mgbmh1bmcgZGlldSBkdW9uZyBiZW5oIHZpZW4gY2hhbSBzb2MuIEFu aDogTGUgTmd1eWVuKSANCg0KTnUgaG8gc2luaCBQaGFtIFRoaSBMb2FuIGNobyBiaWV0LCBjbyBu aHVuZyB0cmUgYmkgYm8gcm9pIGJpIGJlbmggbmFuZyBwaGFpIGNhbiBzdSANCmNoYW0gc29jIHRp Y2ggY3VjLiBOZXUgdHJlIHNpbmggbm9uIG1hYyBjaHVuZyBiZW5oIHZvbmcgbWFjIHBoYWkgbW8g dGhpIGNoaSBwaGkgY28ga2hpIA0KdmFpIGNodWMgdHJpZXUgZG9uZy9jYSBuZW4gQlYgcGhhaSBn b25nIGdhbmggZGUgY2hpIHRyYS4gDQoNCkNhYyBudSBobyBzaW5oIGNobyBiaWV0IGtob25nIGl0 IGxhbiBobyBwaGFpIGJvIHRpZW4gdHVpIHJhIG5vcCB0aWVuIHhldCBuZ2hpZW0gY2hvIGNhYyBi ZSANCmJpIGJvIHJvaS4gQ2FjIGRpZXUgZHVvbmcgbyBLaG9hIEIxIEJWIFBoYW0gTmdvYyBUaGFj aCBUUEhDTSBwaGFpIGRvaSBtYXQgdm9pIA0Kbmd1eSBjbyBsYXkgbmhpZW0gY2FvIGtoaSBjYWMg dHJlIGJpIGJvIHJvaSBub2kgZGF5IGRldSBuaGllbSBISVYgdmEgbGFvIHJhdCBuYW5nLiANCg0K VGhlbyBUaWVuIHNpIFh1YW4sIEtob2EgRHVvbmcgbmhpIFNvIHNpbmggbmFuZyBjYXAgbGllbiB0 dWMgc28gZ2l1b25nIHZhIGxvbmcgYXAgYm9pIA0KcXVhIHRhaSBiZW5oIG5oaSB2YW8gZGF5LiAN Cg0KSGllbiBraG9hIGNvIDE2MCBnaXVvbmcgbmh1bmcgY2h1YSBkZW4gMzI3IGR1YSB0cmUsIHRy b25nIGRvIGNvIGhvbiAzMCB0cmUgYmkgYm8gcm9pLiANClNvIGx1b25nIHRyZSB0YW5nIG5oYW5o IG5odW5nIG5oYW4gbHVjIHRyb25nIGtob2EgbW9uZyBuZW4gbW9pIG5ndW9pIHBoYWkgcGh1IHRy YWNoIA0KZ2FuIGNodWMgZW0uIA0KDQpUaWVuIHNpIFh1YW4gY2hvIGJpZXQsIG5odW5nIHRyZSBi aSBibyByb2kgdGFpIEJWIFR1IER1IHNhdSAzMCBuZ2F5IGR1b2MgY2hhbSBzb2MgdGFpIA0KQlYs IG5ldSBjbyBzdWMga2hvZSBiaW5oIHRodW9uZywgZGF0IGNhbiBuYW5nIHR1IDIsNSBrZyB0cm8g bGVuIHNlIGR1b2MgY2h1eWVuIGRhbmggDQpzYWNoIHNhbmcgU28gTGFvIGRvbmctVGh1b25nIGJp bmggJiBYYSBob2kgVFBIQ00uIA0KDQpTbyBjYW4gY3UgdmFvIHRpbmggdHJhbmcgY2FjIHRyZSBk ZSBsYXAgZGFuaCBzYWNoIGR1YSBjYWMgY2hhdSB2YW8gbW90IHRyb25nIGJvbiBjbyBzbyANCm51 b2kgZHVvbmcgdHJlIG1vIGNvaSBkbyBTbyBkYW5nIHF1YW4gbHkgZ29tIFRydW5nIHRhbSBCYW8g dHJvIFRyZSBUYW4gdGF0IE1vIGNvaSANClRoaSBOZ2hlLCBUcnVuZyB0YW0gQmFvIHRybyBUcmUg TW8gY29pIFRhbSBCaW5oLCBDbyBzbyBudW9pIGRheSBUcmUgTW8gY29pIDQ1IC1OZ3V5ZW4gVmFu IEJhbywgR28gVmFwIHZhIExhbmcgSG9hIEJpbmggSUkgdGFpIEJWIFR1IER1LiAgICAgICAgICAg DQoNCmh0dHA6Ly90aW50dWNvbmxpbmUudmlldG5hbW5ldC52bi92bi90aHVvbmduaGF0LzIxNDQ2 Ny9pbmRleC5odG1sIDI1LzAzLzIwMDkgMTU6MjMgKEdNVCArNykNCg0KVFAgSENNOiAiQ3VvcCIg ZGF0IGtobyBiYWkgY29uZywgbyBhdCAiYmllbiIgdGhhbmggbmhhIHJpZW5nIA0KDQpodHRwOi8v ZGFubGFtYmFvLndvcmRwcmVzcy5jb20vMjAxMC8xMi8wNC9kYS1uJUUxJUJBJUI1bmcta2hvbmct dGhhbS1uaHVuZy12YS1jJUUxJUJBJUE1bS1jJUUxJUJCJUFEYS1zaW5oLXZpZW4taCVFMSVCQiU4 Ny10JUUxJUJBJUExaS1jaCVFMSVCQiVBOWMvIDA0LzEyLzIwMTAgDQoNCk9uZyBUcnVvbmcgVGFu IFNhbmcgY28gYmFuZyB0YWkgY2h1YyBsdWF0IA0KDQpodHRwOi8vd29ybGRjdXAubmxkLmNvbS52 bi85MDIyMHAwYzEwMDIvYWktZGEteGEteGVvLTE1MDAtaGEtZGF0LW5vbmctdHJ1b25nLS5odG0g IENhbSBMYW4gMDgvMDEvMjAwNCAyMjoyMyANCg0KVFAgSENNOiBYYSB4ZW8gMTUwMCBoYSBkYXQg bm9uZyB0cnVvbmcgLSBUaGkgbmhhdSBjaGllbSBkYXQgKG9uZyBUcnVvbmcgVGFuIFNhbmcgcGhh aSBjaGl1IHRyYWNoIG5oaWVtKSANCg0KKjYzNSBoYSBkYXQgYmkgeGEgeGVvIGRhIGR1b2MgbGFt IHRodSB0dWMgImhvcCB0aHVjIGhvYSI/DQoNClVCTkQgVFAgZGEgZ2lhbyAxMC4xNTkgaGEgZGF0 IGNobyA2IG5vbmcgdHJ1b25nIChOVCkgZ29tIE5UIExlIE1pbmggWHVhbiwgTlQgDQpQaGFtIFZh biBIYWksIE5UIFBoYW0gVmFuIENvaSwgQ29uZyB0eSBCbyBzdWEgKHRodW9jIFRvbmcgQ29uZyB0 eSBOb25nIG5naGllcCANClNhaSBHb24gLSBOTlNHKSwgTlQgTGFuZyBMZSAodGh1b2MgaHV5ZW4g QmluaCBDaGFuaCkgdmEgTlQgVGFtIFRhbiAodGh1b2MgaHV5ZW4gDQpDdSBDaGkpLiBUaGUgbmh1 bmcsIHR1IG5hbSAxOTg5IGRlbiBuYXksIG1vdCBzbyBkYXQgdGh1b2MgY2FjIE5UIHRyZW4gZGEg YmkgbGFuIGNoaWVtLCBzdSBkdW5nIHNhaSBtdWMgZGljaC4NCg0KVGhpIG5oYXUgY2hpZW0gZGF0 DQoNClR1IHF1eSBJSSBkZW4gcXV5IElWLzIwMDMsIERvYW4gS2llbSB0cmEgU28gTm9uZyBuZ2hp ZXAgdmEgUGhhdCB0cmllbiBub25nIHRob24gKE5OIA0KJiBQVE5UKSBUUCB2YSBTbyBUYWkgbmd1 eWVuIC0gTW9pIHRydW9uZyAoVE4gLSBNVCkgVFAgZGEgdGllbiBoYW5oIHJhIHNvYXQsIGtpZW0g dHJhIA0KdmllYyBxdWFuIGx5LCBzdSBkdW5nIGRhdCBub25nIG5naGllcCB0YWkgNiBOVCB0cmVu LiBLZXQgcXVhIGJhbyBjYW8gdGhhdCBraG8gdGluOiBEaWVuIA0KdGljaCBjaGkgY29uIDguNjg2 LzEwLjE1OSBoYSBkYXQgZHVvYyBnaWFvOyBzbyBkYXQgYmkgIm1hdCIsIHhhbSBwaGFtIGdhbiAx LjUwMCBoYS4gDQoNCkNhYyB0aGFuaCB2aWVuIHRyb25nIGRvYW4ga2llbSB0cmEgY3VuZyBoZXQg c3VjIGJhdCBuZ28ga2hpIGJpZXQgbmd1eWVuIG5oYW4gY2hpbmggbGFtIA0KbWF0IGNhIG5nYW4g aGEgZGF0IGxhIE5UIGJpICJidW9jIiBwaGFpIGNhdCBjaGlhIGRhdCBuZXUgbXVvbiB5ZW4gb24g dHJvbmcgY29uZyB0YWMgY2FuaCB0YWMsIHRyb25nIHRyb3QuIA0KDQoiTG9pIGR1bmcgdXkgdGhl IGN1YSBtaW5oLCBjYWMgbGFuaCBkYW8gdGllbiBuaGllbSBjdWEgZGlhIHBodW9uZyAoVFAgSENN KSBob2FjIGN1YSANCmNvIHF1YW4gY2h1IHF1YW4gKFRvbmcgQ29uZyB0eSBOTlNHIFRQKSBkYSBn b2kgeSBsYW5oIGRhbyBOVCBwaGFpIHR1IG5ndXllbiBjaHV5ZW4gZ2lhbyANCnZhaSBtYXUgZGF0 IGdpdXAgZGlhIHBodW9uZyBsbyBjaG8gbyBjaG8gbmd1b2kgZGFuIGRpIGtpbmggdGUgbW9pIHZh IG5ndW9pIGRhbiBzbyANCnRhaS4gRG9pIGxhaSwgZGlhIHBodW9uZyBzZSBuaGFtIG1hdCBsYW0g bmdvIG5odW5nIHNhaSBwaGFtIGN1YSBOVC4uLiIsIGJhIE5ndXllbiBUaGkgRHUsIENoYW5oIFRo YW5oIHRyYSBTbyBUTiAtIE1UIFRQLCBuaGFuIGRpbmguIA0KDQpUaGVvIFBobyBHaWFtIGRvYyBU aHVvbmcgdHJ1YyBTbyBOTiAmIFBUTlQgVFAgUGhhbSBUaHV5ZXQsIHRvbmcgZGllbiB0aWNoIGRh dCANCmN1YSA2IE5UIGRhIGNodXllbiBnaWFvIGNobyBkaWEgcGh1b25nLCBkb24gdmkga2hhYyBs YSA2MzUgaGE7IGN1IHRoZToNCg0KLSBUdSBuYW0gMTk4OSBOVCBUYW0gVGFuIGRhIGNodXllbiBx dXllbiBxdWFuIGx5IDI4MiBoYSBjaG8gNCB4YSBodXllbiBDdSBDaGksIA0KYmllbiBkYXQgdHJv bmcgdHJvdCB0aGFuaCBkYXQgdGhvIGN1IGRhbmggZGUgImdpYW4gZGFuIiwgZG9uZyB0aG9pICJk dWEiIGdhbiA0NSBoYSBsYW0gDQpiYWkgY2hvbiBsYXAgcmFjIHNvIDEgbmFtIDIwMDI7IChvbmcg TGUgVGhhbmggSGFpIC0gQ2h1IHRpY2ggVUJORCBUUCBIQ00sIHR1IDIwMDEtMjAwNiwgcGhhaSBj aGl1IHRyYWNoIG5oaWVtLikNCiANCi0gTlQgTGUgTWluaCBYdWFuIG5hbSAxOTk3IGRhIGNodXll biBnaWFvIDQwIGhhIGNobyBodXllbiBCaW5oIENoYW5oIGxhcCBraHUgY29uZyBuZ2hpZXAuIA0K DQotIE5UIFBoYW0gVmFuIEhhaSAoVFAgSENNKSBjdW5nIGJ1b2MgcGhhaSBnaWFvIDMyIGhhIGNo byBodXllbiBEdWMgSG9hIChMb25nIA0KQW4pIHZhbyBuYW0gMTk5MTsgKG9uZyBUcnVvbmcgVGFu IFNhbmcgLSBxdWUgbyBodXllbiBEdWMgSG9hIC0gdGluaCBMb25nIEFuLCBuZ3V5ZW4gbGEgZ2lh bSBkb2MgTlQgbmF5LCANCm5ndXllbiBHaWFtIGRvYyBTbyBOb25nIE5naGllcCBUUCBIQ00gZGVu IG5hbSAxOTkyIHRoaSBsYW0gQ2h1IHRpY2ggVUJORCBUUCwgcGhhaSBjaGl1IHRyYWNoIG5oaWVt KSAgDQoNCi0gTlQgUGhhbSBWYW4gQ29pIGNodXllbiAxNzYsNyBoYSBnb206IDEyNiw3NyBoYSBj aG8gQ29uZyB0eSBGb1NhQ28gbmFtIDE5OTEgdmEgDQoyMDAxIGRlIHRyb25nIGNheSBQYWNoaXJh IHh1YXQga2hhdSwgMjUgaGEgY2hvIFhpIG5naGllcCBDaGFuIG51b2kgaGVvIERvbmcgSGllcCBu YW0gDQoyMDAxIHZhIGdhbiAyNSBoYSBjaG8gWGkgbmdoaWVwIENoYW4gbnVvaSBoZW8gUGh1b2Mg TG9uZyBuYW0gMjAwMi4uLiAob25nIE5ndXllbiBNaW5oIFRyaWV0IC0gDQpCaSB0aHUgVGhhbmgg dXkgVFAgSENNLCB0dSAyMDAwIC0gMjAwNiwgcGhhaSBjaGl1IHRyYWNoIG5oaWVtKQ0KDQpUYXQg Y2EgZGV1IGR1b2MgdGh1YyBoaWVuIHRoZW8gY2hpIGRhbyBtaWVuZyBob2FjIGdpYXkgdGF5LiAN Cg0KMTQgbmFtIHRyb2kgcXVhLCA2MzUgaGEgZGF0IGJpIHhhIHhlbyB0cmVuIGRhIGR1b2MgImhv YW4gY2hpbmggY2FjIHRodSB0dWMgcGhhcCBseSIgdGhlbyANCnF1eSBkaW5oLiBDb24gaG9uIDgz OCBoYSBkYXQgY2h1eWVuIGdpYW8gdGhlbyBsZW5oIGNodWEgaG9hbiBjaGluaCB0aHUgdHVjOyB0 cm9uZyBkbyANCk5UIFBoYW0gVmFuIENvaSBsYSA2MzIgaGEsIENvbmcgdHkgQm8gc3VhIDEwOCBo YSwgTlQgUGhhbSBWYW4gSGFpIDI2LDggaGEuLi4gdGhpIGJpIGRvYW4ga2llbSB0cmEgcGhhdCBo aWVuIGdpdSBsYWkuIA0KDQpLaG9uZyBjaGkgY28gY2FjIGNhIG5oYW4sIGRvbiB2aSBOaGEgbnVv YyBjaGllbSBkdW5nLCBuaHVuZyBobyBkYW4gZ2lhcCByYW5oIHZvaSBkYXQgDQpOVCBjdW5nIHRy YW5oIHRodSB4YW0gY2FuaCBjYSBjaHVjIG5nYW4gbWV0IHZ1b25nLCBuaHUgZ2lhIGRpbmggY3Vh IGJhIFBoYW0gVGhpIA0KSGFuaCB2YSBvbmcgRGFuZyBCYSBEb25nIG8gYXAgNiwgeGEgUGhhbSBW YW4gSGFpIGRhIGNoaWVtIGR1bmcgMTUwMDAgbTIgZGF0IE5UIA0KUGhhbSBWYW4gSGFpIHRyb25n IGJhY2ggZGFuIHR1IG5hbSAxOTg5IGRlbiBuYXkuIA0KDQpMb2kgbm9uZyB0cnVvbmcsIGRpYSBw aHVvbmcgaGF5IGNvIHF1YW4gY2h1IHF1YW4/IA0KDQpQaG8gR2lhbSBkb2MgU28gVE4tTVQgVFAg Tmd1eWVuIFRoYW5oIE5oYW4gY2hvIHJhbmcgZGUgaGllbiB0dW9uZyBjaGllbSBkdW5nLCANCnhh bSBjYW5oIGNhIG5nYW4gaGEgZGF0IE5UIHRyb25nIG1vdCB0aG9pIGdpYW4gbGF1IG5odSB2YXks IFNvIE5OICYgUFROVCBUUCB2YSANClRvbmcgQ29uZyB0eSBOTlNHIFRQIHBoYWkgY2hpdSB0cmFj aCBuaGllbSBob2FuIHRvYW4uIChPbmcgVHJ1b25nIFRhbiBTYW5nIC0gVXkgDQp2aWVuIEJvIENo aW5oIFRyaSwgbmd1eWVuIGxhIEdpYW0gZG9jIHNvIE5vbmcgTmdoaWVwIFRQIEhDTSwgZGVuIG5h bSAxOTkyIHRoaSBsYW0gDQpDaHUgdGljaCBVQk5EIFRQIEhDTSwgcGhhaSBjaGl1IHRyYWNoIG5o aWVtLikNCg0KTmdvYWkgbmh1bmcgbmd1eWVuIG5oYW4gZG86IGNodXllbiBkYW4gZGllbiB0aWNo IHRobyBjdSBjYXAgY2hvIGNhYyBobyBnaWFuIGRhbiB2ZSBkaWEgDQpwaHVvbmcgcXVhbiBseSwg Y2h1eWVuIGdpYW8gY2hvIGRvbiB2aSBraGFjIHRyb25nIHF1YSB0cmluaCB0aHVjIGhpZW4gcXV5 IGhvYWNoIGNodW5nIA0KY3VhIFRQLi4uLCAiU28gTk4gJiBQVE5UIFRQIHZhIFRvbmcgQ29uZyB0 eSBOTlNHICBraG9uZyB0aGUgZG8gdHJhY2ggbmhpZW0gcmFuZyAgDQpkYXQgY2h1YSB4YWMgZGlu aCByYW5oIGNhbSBtb2MgY3UgdGhlIG5lbiB2aWVjIHF1YW4gbHksIHN1IGR1bmcgZGF0IGN1YSBj YWMgTlQgY29uIA0KbmhpZXUga2hvIGtoYW4sIHRvbiB0YWkgdmEgdnVvbmcgbWFjIiAtIG9uZyBO aGFuIG5vaSB0aGFuZy4gDQpUaGVvIG9uZywgU28gTk4gJiBQVE5UIFRQIHBoYWkgeGFjIGRpbmgg dGhhdCBjdSB0aGUgdmUgdGhvaSBkaWVtIHZhIGhpZW4gdHJhbmcsIHBob2kgDQpob3Agdm9pIGRp YSBwaHVvbmcgdGllbiBoYW5oIGRvIGxhaSBkaWVuIHRpY2ggcmFuaCBkYXQgaGllbiBjbyB0cnVv YyBuYW0gMjAwNCB2YSBuaGFuaCANCmNob25nIGdvaSBiYW8gY2FvIHRyaW5oIGxlbiBVQk5EIFRQ IHhlbSB4ZXQuIA0KT25nIE5oYW4gY3VuZyBuaGFuIG1hbmggbmV1IGtob25nIGNvIHN1IGtpZW4g cXV5ZXQga2llbSB0cmEgdGhpIGNoYWMgY2hhbiBkaWVuIHRpY2ggDQpkYXQgTlQgYmkgbGFuIGNo aWVtLCAgc3UgZHVuZyBzYWkgbXVjIGRpY2gga2hvbmcgZHVuZyBsYWkgY29uIHNvIDE1MDAgaGEu IA0KDQpOZ29haSByYSwgY3VuZyBjYW4gcGhhaSB0cnV5IGN1dSB0cmFjaCBuaGllbSBjdWEgbmh1 bmcgY2EgbmhhbiwgZG9uIHZpIHR1bmcgbG9pIGR1bmcgDQpjaHVjIHF1eWVuIGJ1b2MgTlQgcGhh aSBjaGlhIGNhdCBkYXQgc2FuIHh1YXQgdmkgdHJ1YyBsb2kgY2Egbmhhbi4NCg0KKFkga2llbiBj dSB0cmk6IE9uZyBUcnVvbmcgVGFuIFNhbmcgLSBVeSB2aWVuIEJvIENoaW5oIFRyaSwgcXVlIG8g aHV5ZW4gRHVjIEhvYSAtIA0KdGluaCBMb25nIEFuLCBuZ3V5ZW4gbGEgZ2lhbSBkb2MgTlQgUGhh bSBWYW4gSGFpLCBuZ3V5ZW4gR2lhbSBkb2MgU28gTm9uZyBOZ2hpZXAgVFAgDQpIQ00sIGRlbiBu YW0gMTk5MiB0aGkgbGFtIENodSB0aWNoIFVCTkQgVFAsIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB2 ZSBuaHVuZyBzYWkgIA0KcGhhbSB0cm9uZyB2dSB2aWVjIG5heTsgdGllcCB0aGVvIGxhIGNhYyBv bmcgTmd1eWVuIE1pbmggdHJpZXQgdmEgTGUgVGhhbmggSGFpIGxhbiBsdW90IGxhbQ0KQmkgdGh1 IFRoYW5oIFV5IGhvYWMgY2h1IHRpY2ggVUJORCBUUCBjdW5nIHBoYWkgY2hpdSB0cmFjaCBuaGll bTsgZ2FuIDE1MDAgaGVjdGEgZGF0IGJpIGNoaWVtIGR1bmcgDQp0cmFpIHBoYXAgbHVhdCwgdHJ1 YyBsb2kgY2Egbmhhbi4uLiB0cm9uZyByYXQgbmhpZXUgbmFtOyB2aWVjIGNoaWEgdGFjaCwgc2Fw IG5oYXAgaGF5IHBoYW4gY2hpYSBsYWkgDQpkYXQgZGFpIGdpdWEgY2FjIHRpbmggbGEgdGh1b2Mg dGhhbSBxdXllbiBjdWEgUXVvYyBIb2kgY2h1IGtob25nIHBoYWkgY3VhIGNhYyBOb25nIHRydW9u ZyBoYXkgc28gTm9uZyBOZ2hpZXAsIA0KaGF5IFRQIEhDTSB2YSB0aW5oIExvbmcgQW4uLi4pIA0K DQpodHRwOi8vd3d3LnRhbGF3YXMuZGUvDQoNClRoYW0gbmh1bmcgY2hpbmggdHJpDQoNCk11b24g Y2hvbmcgdGhhbSBuaHVuZyB0YWkgVmlldCBOYW0gbW90IGNhY2ggaGlldSBxdWEgdGhpIHF1YSB0 aGF0IGtob25nIGRlIGRhbmcgY2h1dCBuYW8uIA0KDQpOaHVuZyBjaGFuZyBsZSBuZ3VvaSBkYW4g VmlldCBOYW0gcGhhaSBjaGl1IGR1bmcgdGluaCB0cmFuZyAibWFjIGhvbmciIG5odSB0aGUgbWFp IHNhbz8NCg0KaHR0cDovL3d3dy5tb2ZhLmdvdi52bi92aS9ucjA0MDgwNzEwNDE0My9ucjA0MDgw NzEwNTAwMS9uczA3MDkwNjE0NDgzNSA0LzgvMjAwNyANCg0KT25nIFRydW9uZyBUYW4gU2FuZyBk YW4gZG9hbiBkYWkgYmlldSBWaWV0IE5hbSB0aGFtIHZhIGxhbSB2aWVjIHRhaSBUcnVuZyBRdW9j IA0KDQpPbmcgVHJ1b25nIFRhbiBTYW5nIGJheSB0byBkYWMgYmlldCBwaGFuIGtob2kgZHVvYyBk ZW4gdGhhbSBsYWkgVHJ1bmcgUXVvYyBsYW4gbmF5IGR1bmcgdmFvIGRpcCB0b2FuIERhbmcsIA0K dG9hbiBkYW4gVHJ1bmcgUXVvYyBkYW5nIGNodWFuIGJpIGNobyBzdSBraWVuIHRyb25nIGRhaSBs YSBEYWkgaG9pIGxhbiB0aHUgMTcgY3VhIERhbmcgQ29uZyBzYW4gVHJ1bmcgUXVvYywgDQptb3Qg bGFuIG51YSBkdW9jIGNodW5nIGtpZW4gbmh1bmcgdGhheSBkb2kgdG8gbG9uIGN1YSBUcnVuZyBR dW9jIHRyb25nIGNvbmcgY3VvYyBjYWkgY2FjaCBtbyBjdWEgdmEgeGF5IGR1bmcgDQpjaHUgbmdo aWEgeGEgaG9pIGRhYyBzYWMgVHJ1bmcgUXVvYy4NCg0KT25nIFRydW9uZyBUYW4gU2FuZyBraGFu ZyBkaW5oIHF1eWV0IHRhbSBjdWEgRGFuZywgTmhhIG51b2MgdmEgbmhhbiBkYW4gVmlldCBOYW0g cGhhbiBkYXUgaGV0IHN1YyBtaW5oIHhheSBkdW5nIA0KbW9pIHF1YW4gaGUgaHV1IG5naGksIHRy dXllbiB0aG9uZyBnaXVhIFZpZXQgTmFtIHZhIFRydW5nIFF1b2MgdHJvbmcgdGhlIGt5IG1vaSB0 aGVvIHBodW9uZyBjaGFtIDE2IGNodSB2YSANCnRpbmggdGhhbiA0IHRvdCBtYSBsYW5oIGRhbyBj YXAgY2FvIGhhaSBiZW4gZGEgeGFjIGRpbmguIA0KDQpodHRwOi8vd3d3LmN5dmVlLmNvbS9Nb2R1 bGVzL05ld3MvVmlldy5hc3B4P25ld3NJZD02NTQzIDE3LTEyLTIwMDcNCg0KVHJ1bmcgUXVvYyB0 aGFuaCBsYXAgdGhhbmggcGhvIFRhbSBTYSBxdWFuIGx5IGNhIHZ1bmcgYmllbiBUcnVvbmcgU2Eg dmEgSG9hbmcgU2EgY3VhIFZpZXQgTmFtICANCg0KUXV5ZXQgZGluaCB0aGFuaCBsYXAgdGhhbmgg cGhvIFRhbSBTYSBsYW4gbmF5IGN1YSBUcnVuZyBRdW9jIGxhIG1vdCBidW9jIHRpZW4gZGFpIHZh IG5ndXkgaGllbS4NCg0KSG8gQ2FtIERhbyBjaG8gZGVuIHNhdSBkYWkgaG9pIDE3IGN1YSBtaW5o LCBtYSB0cnVvYyBkbyB2b24gdHV5ZW4gYm8gVFEgbXVvbiBsYSBtb3QgbnVvYyB0b24gdHJvbmcg DQpsdWF0IHBoYXAgcXVvYyB0ZSB2YSBxdXkgdGFjIGhvYSBiaW5oLCBkYSBxdXlldCBkaW5oIG1v IHJvbmcgbGFuaCB0aG8gdGhlbSAyLDQgdHIga20yIChUb2FuIGJvIHBoYW4gDQpkaWVuIHRpY2gg Y2FjIHZ1bmcgYmllbiBkYW8gSG9hbmcgU2EsIFRydW9uZyBTYSB2YSBEb25nIFNhIG1hIFRRIGRv biBwaHVvbmcgdHV5ZW4gYm8gY2h1IHF1eWVuKSwgDQp0dW9uZyBkdW9uZyB2b2kgMS80IGRpZW4g dGljaCBUUS4NCg0KTGFuIG5heSB0aGkgbmdheSBjYSBuaHVuZyBrZSBuZ2F5IHRobyBuaGF0LCBu Z2F5IGNhIG5odW5nIG5ndW9pIG11b24gdGltIGNhY2ggZHVhIGRhbSB2YW8gVFEgbmhhdCANCmRl IGJhbyB0b2FuIHF1eWVuIGxvaSBjYSBuaGFuLCBjdW5nIHBoYWkgbmdhIG5ndWEgbmd1b2kuDQoN ClR1IG5oaWV1IG5hbSBxdWEgVHJ1bmcgUXVvYyBkYSB0aWVuIGhhbmggbW90IGN1b2MgY2hpZW4g eGFtIGx1b2MgdHUgdHUgdmUgbW9pIG1hdCwgdHUgdHV5ZW4gdHJ1eWVuLCANCm5nb2FpIGdpYW8s IGdpYW8gZHVjIGNobyBkZW4gcXVhbiBzdSANCg0KKEN1IHRyaSBxdWFuIHRhbTogTmh1IHZheSBu Z2F5IHNhdSBjaHV5ZW4gdGhhbSBUcnVuZyBRdW9jIGN1YSBvbmcgVHJ1b25nIFRhbiBTYW5nLCAN CkJhYyBLaW5oIGRhIHRoYW5oIGxhcCB0aGFuaCBwaG8gVGFtIFNhIHF1YW4gbHkgY2EgdnVuZyBi aWVuIFRydW9uZyBTYSB2YSBIb2FuZyBTYSANCmN1YSBWaWV0IE5hbS4gRG8gZG8sIGNhbiBjYW5o IGdpYWMga2hhIG5hbmcgVHJ1b25nIFRhbiBTYW5nIGRpIGRlbSB2b2kgQmFjIEtpbmguKSANCg0K aHR0cDovL3d3dy5kYW5jaGltdmlldC5jb20vcGhwL21vZHVsZXMucGhwP25hbWU9TmV3cyZmaWxl PXByaW50JnNpZD03NTkgMDMvMTEvMjAwNSBEZSB0YWk6IFF1YW4gaGUgVmlldCAtIFRydW5nDQoN CkRhaSBSRkEgcGhvbmcgdmFuIHRpZW4gc2kgTmd1eWVuIFRoYW5oIEdpYW5nDQoNClZpZXQgSHVu ZzogRGFuaCBnaWEgdmEgYmluaCBsdWFuIHZlIGNodXllbiBkaSBjdWEgb25nIEhvIENhbSBEYW8s IG5odW5nIG5ndW9pIA0KdGhlbyBkb2kgdGhvaSBjdW9jIHRoaSBjaG8gcmFuZyBjaHV5ZW4gZGkg Y3VhIG9uZyBIbyBDYW0gRGFvIGRlbiBWaWV0IE5hbSANCnRyb25nIGJvaSBjYW5oIGNoaW5oIHRy aSBtYSBWaWV0IE5hbSBkYW5nIGNhbiByYXQgbmhpZXUgdHJvbmcgc3UgaG9pIG5oYXAuIA0KUGhh aSBjaGFuZyByYW5nIHZpZWMgb25nIG9uZyBIbyBDYW0gRGFvIGRlbiBwaGFuIG5hbyBkYSBub2kg ZHVvYyBkaWV1IGRvIGhheSBjaHVhIGE/DQoNClRTIE5ndXllbiBUaGFuaCBHaWFuZzogQ2FuIGx1 dSB5IHRob2kgZGllbSBvbmcgSG8gQ2FtIERhbyBzYW5nIGRheSBsYWkgbGEgDQp0aG9pIGRpZW0g c2FwIGRpZW4gcmEgZGFpIGhvaSAxMC4gTmV1IG9uZyB0YSBzYW5nIHZvaSBtdWMgZGljaCBkZSBk aWV1IGtoaWVuIA0KY2h1bmcgdGEsIGRlIGNhbiB0aGllcCB2YW8gdmllYyBzYXAgeGVwIG5oYW4g c3UgY3VhIGNodW5nIHRhIHRoaSBkYXkgbGEgc3UgDQpjYW4gdGhpZXAgdGhvIGJhbyB2YW8gbm9p IGJvIG51b2MgdGEga2hvbmcgY2hhcCBuaGFuIGR1b2MuIEtob25nIGR1b2MgZGUgDQpjaG8gSG8g Q2FtIERhbywga2hvbmcgZHVvYyBkZSBjaG8gYmF0IGN1IG1vdCBuZ3VvaSBsYW5oIGRhbyBUcnVu ZyBRdW9jIA0KbmFvIHNhbmcgZGF5IGRlIGNoaSBodXkgY2h1bmcgdGEgdmllYyBzYXAgeGVwIG5o YW4gc3UgY2hvIGRhaSBob2kgMTAhIA0KDQpodHRwOi8vdm4uYW5zd2Vycy55YWhvby5jb20vcXVl c3Rpb24vaW5kZXg/cWlkPTIwMDgwNjE3MDIwNTEyQUFHZlZPeA0KDQpOZ2F5IHh1YSBjb24gYmUg eGVtICJuZ2hldSAtIHNvIC0gb2MgLSBoZW4iIG1vaSBoaWV1IGR1b2MgdGhlIG5hbyBsYSAiY3Vv cCBkZW0gbGEgZ2lhYywgY3VvcCBuZ2F5IGxhIHF1YW4iLg0KDQpCYXkgZ2lvIG1vaSB0aGF5IHF1 YW4gdHJvbmcgIm5naGV1IHNvIG9jIGhlbiIgc28gdm9pIHF1YW4gYmF5IGdpbyBjaGkgbGEgImNv biB0ZXAgdHJlbiBtZXAgY29uIG1lbyIgbWEgdGhvaSENCg0KUXV5ZW4gbHVjIGNvbiBjaHVhIGR1 YSB2ZSB0YXkgbmhhbiBkYW4gdGhpIHF1YW4gY2FuZyBuZ2F5IGNhbmcgdG8sIGNhbmcga2hvbmcg dGhlIGtob25nIGNoZSBkdW9jLg0KDQotDQoNClR1IFNhbmcgcXVlIG8gTG9uZyBBbg0KVmVuaCB2 YW5nIHRyZW4gZ2hlIHRydW9uZyBxdWFuIFNhaSBHb24gDQpEYW4gdGEga2hvIHNvLCBoZW8gbW9u IA0KTWFpIGRhbSwgbWEgdHV5LCBkbyBkZW4gdHVuZyBob2FuaCANCkR1b25nIGR1b25nIHF1YW4g Y2h1YyBEbyB0aGFuaCANCkRpIGRlbSBtb2MgbmdvYWMgdm9pIGJheSBsdXUgbWFuaCANCktlIGNo YXkgdG9pLCBkdWEgaGFvIGRhbmggDQpOaGlldSBuaHVvbmcgdm8ga2UsIG9hbiBraGllbiByYW5o IHJhbmggDQpNYXkgc2FvIGNvIFR1b25nIFZpZXQgVGhhbmggDQpEaWVtIGJpbmggY28gZG9uZyBD YW4gVGhvIHRpZW4gdmUgDQpRdWFuIHRoYW0gbW90IGx1IGUgY2hlIA0KTHV1IG1hbmggbW90IGRh bSB0b25nIHZlIHRyYWkgZ2lhbSANCkRvaSBkb25nIGNhdSBjaHV5ZW4gbnVvYyBOYW0gDQpRdWFu IHRoYW0sIHRlIG5hbiBuZ29uIG5nYW5nIFNhaSBHb24gDQoNCi0NCmh0dHA6Ly93d3cudGluMjQ3 LmNvbS90cGhjbV90aHVfaG9pX3Nhbl9nb2xmX2xhbmdfcGhpLTMtMjEzODg3MzQuaHRtbCB2bk1l ZGlhLnZuIDI4LzAyLzIwMDkgMjI6MjcNCg0KVFAuSENNOiBEdSBhbiBzYW4gZ29sZiBnYXkgbGFu ZyBwaGkgbG9uIA0KDQpodHRwOi8vd3d3LnRoZWdpb2lnb2xmLmNvbS9pbmRleC5waHAvMjAxMDAx MTM3OTYvc2FuLWdvbGYtYW4tcGh1LXRwLWhjbS1kdS1hbi1oYW5nLXRpLWRvbmctbXVvaS1uYW0t dmFuLWRhbS1jaGFuLXRhaS1jaG8uaHRtbCAodGhlbyBza2RzKSAxMy8xLzEwMTAgMTQ6NTEgDQoN ClRQIEhDTTogU2FuIGdvbGYgQW4gUGh1IC0gZHUgYW4gaGFuZyBuZ2hpbiB0eSBkb25nOiBNdW9p IG5hbSB2YW4gZ2lhbSBjaGFuIHRhaSBjaG8gDQoNCk5ndW9pIGRhbiBwaGFpIGNoaXUgcXVhIG5o aWV1IHRoaWV0IHRob2ksIHBoaWVuIGhhLCBiYXQgaG9wIGx5ICAgIA0KDQpHYW4gMTAgbmFtIHF1 YSwgRHUgYW4gS2h1IGxpZW4gaG9wIHNhbiBnb2xmIC0gVGhlIGR1YyB0aGUgdGhhbyB2YSBuaGEg byBBbiBQaHUsIHF1YW4gDQoyLCBUUC4gSENNIGxhIGNhaSB0ZW4gZHVvYyB0aHVvbmcgeHV5ZW4g bmhhYyBkZW4gdHJlbiBoYW5nIGxvYXQgdmFuIGJhbiBjdWEgY2FjIGNvIA0KcXVhbiBjaHVjIG5h bmcgdmUgc3UgY2hhbSB0cmUgdHJvbmcgZGVuIGJ1IGdpYWkgdG9hLCBhbmggaHVvbmcgZGVuIHF1 eWVuIGxvaSBjdWEgbmd1b2kgDQpkYW4uIEhlIHF1YSBsYSBob24gMTM3aGEgZGF0IHZhbiBkYW5n IG5hbSBwaG9pIG11YSBuYW5nLCBjb24gaGFuZyB0cmFtIGhvIGRhbiBiaSB0aHUgDQpob2kgZGF0 IHZhbiB0aGFwIHRob20ga2hpIHBoYWkgc29uZyBjaHVuZyB2b2kgZHUgYW4gdHJlby4gVHJvbmcg a2hpIGRvLCBjaHUgZGF1IHR1IGR1IGFuIA0KbGEgQ29uZyB0eSBjbyBwaGFuIERhdSB0dSB2YSBQ aGF0IHRyaWVuIFNhaSBHb24gdmFuIGxvYXkgaG9heSB0aW0gY2FjaCB0YW5nIHRoZW0gc28gDQps dW9uZyBiaWV0IHRodSB0cmVuIHBoYW4gZGF0IHZ1YSBkdW9jIHRodSBob2kgY3VhIG5ndW9pIGRh biB2b2kgbXVjIGdpYSBiYXQgaG9wIGx5Lg0KDQpMYSBtb3QgZHUgYW4ga2luaCBkb2FuaCB2b2kg dGhvaSBkaWVtIGR1b2MgZ2lhbyBkYXQgdHUgdGhhbmcgMS8yMDAxLCBuaHVuZyBwaHVvbmcgYW4g DQpkZW4gYnUgZGF0IGNobyBEdSBhbiBLaHUgbGllbiBob3Agc2FuIGdvbGYgLSBUaGUgZHVjIHRo ZSB0aGFvIHZhIG5oYSBvIEFuIFBodSAoZ29pIHRhdCANCmxhIHNhbiBnb2xmIEFuIFBodSkgZHVv YyBIb2kgZG9uZyBkZW4gYnUgZ2lhaSBwaG9uZyBtYXQgYmFuZyBxdWFuIDIgY29uZyBibyBsYWkg Y2FuIGN1IA0KdmFvIG11YyBnaWEgZGF0IG5hbSAxOTk1IGNhbiBjdSB0aGVvIE5naGkgZGluaCAy Mi8xOTk4L05ELUNQLg0KDQpEZSB0aHVjIGhpZW4gZHUgYW4geGF5IGR1bmcgc2FuIGdvbGYgQW4g UGh1LCBDb25nIHR5IGNvIHBoYW4gRGF1IHR1IHZhIFBoYXQgdHJpZW4gU2FpIA0KR29uIChTREkp IGR1b2MgZ2lhbyAxMzcsNGhhIGRhdCB0aHVvYyBkaWEgYmFuIHBodW9uZyBBbiBQaHUsIHF1YW4g MiwgVFAuIEhvIENoaSANCk1pbmguIFZlIGhpZW4gdHJhbmcsIGRheSBsYSBkYXQgbm9uZyBuZ2hp ZXAgeGVuIGtlIGtlbmggcmFjaC4gU28gbGlldSBjdWEgSG9pIGRvbmcgZGVuIA0KYnUgZ2lhaSBw aG9uZyBtYXQgYmFuZyBxdWFuIDIgY29uZyBibyB0aGFuZyAzLzIwMDMgdHJvbmcgcGh1b25nIGFu IGJvaSB0aHVvbmcgaG8gdHJvIA0KdmEgdGFpIGRpbmggY3UgY2hvIGJpZXQsIGNvIDI4OCBobyBk YW4gY28gbmhhIGRhdCB0aHVvYyBkaWVuIHBoYWkgdGh1IGhvaSBkZSB0aHVjIGhpZW4gZHUgYW4u DQoNCkRhdSBuYW0gMjAwNywgbmd1b2kgZGFuIG5oYW4gZHVvYyB0aG9uZyBiYW8gdmUgbXVjIGdp YSBkZW4gYnUgZGF0IG1hdCB0aWVuIGR1b25nIERvIA0KWHVhbiBIb3AgbGEgMTUwLjAwMCBkb25n L20yIHRyb25nIGtoaSBnaWEgdGh1YyB0ZSBsYSAyNS4wMDAuMDAwIGRvbmcvbTI7IGNvbiBwaGFu IGRhdCANCnBoaWEgdHJvbmcgbGFpIGNvIG11YyBnaWEgNzYuMDAwIGRvbmcvbTIuIEtob25nIGRv bmcgeSB2b2kgbXVjIGdpYSBuYXksIG5ndW9pIGRhbiBkYSANCmxpZW4gdHVjIGtoaWV1IG5haSB2 YSBraG9uZyBjaGl1IGdpYW8gZGF0IGNobyBjaHUgZGF1IHR1IHRodWMgaGllbiBkdSBhbi4NCiAN ClNhdSBnYW4gMTAgbmFtLCBEdSBhbiBzYW4gZ29sZiBBbiBQaHUgdmFuIG5nb24gbmdhbmcuDQoN Ck1vdCBuZ2F5IGdpdWEgdGhhbmcgMTIvMjAwOSwgY28gbWF0IHRhaSBraHUgZGF0IGR1b2MgcXV5 IGhvYWNoIHhheSBkdW5nIGR1IGFuLCBjaHVuZyANCnRvaSBjaHVuZyBraWVuIGNhbmggImxvYW5n IGxvIGRhIGJlbyIgY3VhIHNhbiBnb2xmIEFuIFBodS4gVHV5IGNodWEgZGVuIGJ1IGRhdCB4b25n LCANCm5odW5nIHRvYW4gYm8gZGllbiB0aWNoIGR1IGFuIGRhIGR1b2MgY2h1IGRhdSB0dSBjaG8g cXVheSByYW8gYmFvIHZlLiBEdSBkYSBjb25nIGJvIA0KaG9hbiB0aGFuaCB4b25nIHBoYW4gc2Fu IGxhcCBtYXQgYmFuZyBuaHVuZyB0aHVjIHRlLCBoaWVuIHRyYW5nIGNvbiBraGEgbmdvbiBuZ2Fu Zy4gDQpPbmcgTGUgVmFuIFRvLCBuZ3UgdGFpIHNvIG5oYSAxNDdGLCBEbyBYdWFuIEhvcCwgcGh1 b25nIEFuIFBodSBidWMgeHVjOiBRdXkgaG9hY2ggDQpzYW4gZ29sZiBBbiBQaHUgcGhhaSB0aHVj IHRoaSB2YSBwaGFpIGxhbSBuZ2F5IGRlIGNobyBuZ3VvaSBkYW4gY2h1bmcgdG9pIGR1b2Mgbmhv LiANClRyZW4gbWFuaCBkYXQgbmF5LCBjaHVuZyB0b2kgZGEgYm8gYmFvIG5oaWV1IGNvbmcgc3Vj IGRlbiBidSwga2hhaSBwaGEgdmEgZHVvYyBjYXAgc28gDQpkbyBuZW4gcGhhaSBuaGFuIGR1b2Mg bXVjIGRlbiBidSB4dW5nIGRhbmcuIFZvaSBtdWMgZ2lhIDc2LjAwMCBkb25nL20yIGxhaSBraG9u ZyB0aGF5IA0KZG9pIHRyb25nIGdhbiAxMCBuYW0gbGEgZGlldSBraG9uZyB0aGUgY2hhcCBuaGFu IGR1b2MuIE5vaSB0aGFuZyB2ZSBuaHVuZyBiYXQgY2FwIA0KdHJvbmcgY2hpbmggc2FjaCBkZW4g YnUgZ2lhaSB0b2EsIGFuaCBEbyBWYW4gRGF1LCBtb3QgaG8gZGFuIGJpIHRodSBob2kgZGF0IGNo byBiaWV0OiANCkdpYSBkaW5oIHRvaSBjbyBob24gMS4wMDBtMiBkYXQgbWF0IHRpZW4gZHVvbmcg RG8gWHVhbiBIb3AuIFRyb25nIGtoaSBkYXQgY3VhIGNhYyBobyBkYW4gDQpiZW4ga2lhIGR1b25n IGRhbmcgcmFvIGJhbiBnaWEgaGFuZyBjaHVjIHRyaWV1IGRvbmcgbW90IG1ldCwgdGhpIGN1YSB0 b2kgbGFpIGJpIHRodSBob2kgZGUgDQpwaHVjIHZ1IGxvaSBpY2gga2luaCBkb2FuaCBjaG8gZG9h bmggbmdoaWVwIHR1IG5oYW4gdmEgY2hpIGR1b2MgZGVuIGJ1IGNvIDE1MC4wMDAgZG9uZy9tMi4g DQpLaG9uZyBoaWV1IGNhbiBjdSB2YW8gcXV5IGRpbmggbmFvLCBIb2kgZG9uZyBkZW4gYnUgZ2lh aSBwaG9uZyBtYXQgYmFuZyANCnF1YW4gMiBkYSB4YXkgZHVuZyBtb3QgInBodW9uZyBhbiBkZW4g YnUgZGF0IGdpYSBiZW8iIHNhdSBraGkgY2hpIHRvIGNodWMgbW90IGN1b2MgDQpob3AgZGUgdGhv bmcgYmFvIGNobyBuZ3VvaSBkYW4gYmlldC4gTGEgaG9uIG51YSwgZHUgRHUgYW4gc2FuIGdvbGYg QW4gUGh1IGR1b2MgeGFjIA0KZGluaCBybyBsYSBwaHVjIHZ1IG11YyB0aWV1IGtpbmggZG9hbmgg dm9pIHZvbiBkYXUgdHUgMTQ3IHR5IGRvbmcgZGUgeGF5IGR1bmcgY2FjIGhhbmcgDQptdWMgY2hp bmggbmh1IGtodSBzYW4gZ29sZiAxOCBsbywga2h1IHRoZSBkdWMgdGhlIHRoYW8gLSB2dWkgY2hv aSBnaWFpIHRyaTsga2h1IG5oYSBvIGJpZXQgDQp0aHUgNTAgY2FuLCBwaGFuIGxvIGJhbiBjaG8g Y2FjIGRvaSB0dW9uZyBjbyBuaHUgY2F1LCBuaHVuZyBsYWkgZHVvYyBhcCBkdW5nIGdpYSBkZW4g YnUgDQp0aGVvIE5naGkgZGluaCAyMi8xOTk4L05ELUNQLiBEYXkgbGEgZGlldSBraG9uZyBob3Ag bHkgdmkgbmdoaSBkaW5oIG5heSBjaGkgYXAgZHVuZyANCnRyb25nIHZpZWMgZGVuIGJ1IGRhdCBj YWMgZHUgYW4gY29uZyBpY2gsIGFuIG5pbmggcXVvYyBwaG9uZy4NCg0KQ29uIG9uZyBOZ3V5ZW4g VmFuIEx1YW4gbGEgaG8gZGFuIGRhdSB0aWVuIGJpIHRodSBob2kgZGF0IGxhaSBiYXQgYmluaCB2 b2kgdmllYyBjYWMgY28gDQpxdWFuIGNodWMgbmFuZyBsYWkgYm8gdHJpIG1vdCBzYW4gZ29sZiB0 YWkgcXVhbiB0cnVuZyB0YW0gbmh1IHF1YW4gMi4gVmkgc2FvIGtob25nIHRodSANCmhvaSBkdSBh biBzYW4gZ29sZiBkZSBibyB0cmkgZGllbiB0aWNoIGRhdCBuYXkgY2hvIG5odW5nIGNvbmcgdHJp bmggY29uZyBjb25nIG5odSBiZW5oIA0KdmllbiwgdHJ1b25nIGhvYyBkZSBkYXAgdW5nIG5odSBj YXUgY3VhIG5ndW9pIGRhbi4gU2F1IG5oaWV1IG5hbSB0aW0gaGlldSBkdSBhbiBuYXksIA0Kbmd1 b2kgZGFuIGRhIHBoYXQgaGllbiByYSBkdSBhbiBuYXkgdHJlbiBkYW5oIG5naGlhIGxhIHhheSBk dW5nIHNhbiBnb2xmIHZhIGNhYyBoYW5nIA0KbXVjIHRoZSBkdWMgdGhlIHRoYW8gbmh1bmcgdGhl byBiYW4gdmUgbGEgeGF5IGJpZXQgdGh1LCBraGFjaCBzYW4sIG5oYSBoYW5nIGRlIGtpbmggDQpk b2FuaC4gTWEgZGEgbGEgZHUgYW4ga2luaCBkb2FuaCB0aGkgcGhhaSB0aG9hIHRodWFuIG11YyBn aWEgZGVuIGJ1IGRhdCB2b2kgbmh1bmcgDQpuZ3VvaSBkYW4gY28gc28gZG8uDQoNCkN1b2kgbmFt IDIwMDgsIG9uZyBUaGFpIFZhbiBSZSwgR2lhbSBkb2MgU28gS2UgaG9hY2ggdmEgRGF1IHR1IFRQ LiBIbyBDaGkgTWluaCBkYQ0KIGNvIGJhbyBjYW8gY2hvIHJhbmc6IDcgbmFtIHF1YSwgY2h1IGRh dSB0dSBEdSBhbiBzYW4gZ29sZiBBbiBQaHUgY2hpIG1vaSBkdW9jIGJvaSANCnRodW9uZyBraG9h bmcgMTBoYS4gRHUgYW4gdHJpZW4ga2hhaSBxdWEgY2hhbSwgZGFuIGRlbiB0aWVuIGRlbiBidSB0 YW5nIGNhbywgdHUgcXV5IG1vIA0Kdm9uIGRhdSB0dSBjaGkgMTQ3IHR5IGRvbmcsIG5heSByaWVu ZyB0aWVuIGRlbiBidSBkYSBsYSAzLjAwMCB0eSBkb25nLiBUdXkgbmhpZW4gZGVuIHRob2kgDQpk aWVtIGhpZW4gdGFpLCBraG9hbiB0aWVuIGRlbiBidSBraG9uZyBsbyBuYXkgdmFuIGtob25nIGJp ZXQgZGFuZyBvIGRhdS4gQ2hpIGJpZXQgcmFuZywgDQpnaWEgZGVuIGJ1IGRhdCBtYSBjYWMgaG8g ZGFuIG5oYW4gZHVvYyBjaGkgdHUgNzYuMDAwLTE1MC4wMDAgZG9uZy9tMiB0dXkgdmkgdHJpLiBW b2kgDQptdWMgZ2lhIG5heSB0aGkgbW9pIG1ldCB2dW9uZyAgZGF0LCBuaHVuZyBuZ3VvaSBkYW4g YmkgYW5oIGh1b25nIGJvaSBkdSBhbiB4YXkgZHVuZyANCnNhbiBnb2xmIEFuIFBodSBzZSB0dW9u ZyBkdW9uZyB2b2kgZ2lhIGJhbiBudWEgY29uIGdhIGhvYWMgZ2FuIDEgY29uIGdhIHR1eSB0aGVv IHRob2kgZGllbS4gDQoNCmh0dHA6Ly93d3cubmhhYmFuLmNvbS9uZXdzL2R1LWFuLzczNjYtY2Fj LWR1LWFuLXNhbi1nb2xmLXRhaS10cGhjbS1sYW5nLXBoaS1uaGFuLWRvaS5odG1sIFBoYW0gTmd1 eWVuICAoVGhlbyBiYW8gRERETikgMTgtMTAtMjAxMCAxMTozNTozMg0KDQpUUCBIQ006IENhYyBk dSBhbiBzYW4gR29sZiB0YWkgVFAuSENNOiBMYW5nIHBoaSBuaGFuIGRvaQ0KDQpWb2kgNiBkdSBh biwgY2FjIHNhbiBnb2xmIGN1YSBUUCBIQ00gaGllbiBjaGllbSBob24gMS4yNDEgaGEgZGF0IG5v bmcgbmdoaWVwLiBEYXkgDQpkdW9jIGNvaSBsYSBzdSBsYW5nIHBoaSBkYXQgZGFpIHJhdCBsb24u IFR1eSBuaGllbiwgY2FuZyBsYW5nIHBoaSBob24ga2hpIHRyb25nIDYgZHUgYW4gc2FuIA0KZ29s ZiwgaGllbiBjaGkgY28gMSBzYW4gZ29sZCBkYSBob2F0IGRvbmcuDQoNCkNoaSBjbyAxIHRyb25n IDYgZHUgYW4gc2FuIGdvbGQgY3VhIFRQIEhDTSBkdW9jIGNhcCBwaGVwIGRhIGRpIHZhbyBob2F0 IGRvbmcNCiANCk5ldSBraG9uZyB0aW5oIHNhbiBnb2xmIExhbSBWaWVuIChxdWFuIDkpIHJvbmcg MzAwIGhhIGRhIGhvYXQgZG9uZyBuYW0gMTk5NSwgdmEgc2FuIA0KZ29sZiBWYW4gUGh1YyAocXVh biBUaHUgRHVjKSByb25nIDE2MiBoYSBuaHVuZyBuaGFuZyBob24gMyBuYW0gdGhpIGNoYW0gZHV0 LCA0IHNhbiANCmdvbGYgY29uIGxhaSBjdWEgVFAgSENNIGN1bmcgY2hpZW0gZGllbiB0aWNoIGto b2FuZyA5MDAgaGEgZGFuZyB4YXkgZHVuZyBkYW5nIGRvIA0Ka2hvbmcgYmlldCBkZW4gYmFvIGdp byBtb2kgaG9hdCBkb25nIHRoZW8gZHVuZyBuZ2hpYSAic2FuIGdvbGYgc2luaCBsb2kgbmhvIGJh biB0aGUgDQpnb2xmLCBiYW4gY2FjIGRpY2ggdnUga2VtIHRoZW8iLg0KDQpDbyB0aGUgbmV1IHZh aSB2aSBkdTogU2FuIGdvbGYgQW4gUGh1IHF1YW4gMiBjbyB0b25nIGRpZW4gdGljaCAxMzIgaGEs IHBoYW4gc2FuIGdvbGYgDQpraG9hbmcgMTAwIGhhIGNodWEgeGF5IGR1bmcgeG9uZywgY2h1YSBu b3AgdGllbiBzdSBkdW5nIGRhdCBuaHVuZyBwaGFuIG5oYSBvIGJpZXQgdGh1IA0KZGEga2hhIGhv YW4gY2hpbmgsIHZhIGRhIG5vcCB0aWVuIHN1IGR1bmcgZGF0LiBTYW4gZ29sZiBHUyBDdSBDaGkg cm9uZyBkZW4gMjAwIGhhIHZhbiANCmNvbiB2dW9uZyB2ZSBnaWFpIHBob25nIG1hdCBiYW5nIChH UE1CKSwgaGllbiBjdW5nIG1vaSBkYW8gZGFwIHRhbyBtYXQgYmFuZy4NCg0KVnVvbmcgbmFuZyBu aGF0IGNvIGxlIGxhIHNhbiBnb2xmIFNpbmcgVmlldCB0aHVvYyBkdSBhbiBraHUgZG8gdGhpIFNp bmcgVmlldCB0YWkgaHV5ZW4gDQpCaW5oIENoYW5oLiBEdSBhbiBkdW9jIGNhcCBnaWF5IHBoZXAg ZGF1IHR1IHR1IDIwMDcsIDEwMCUgdm9uIG51b2MgbmdvYWkgdmEgcm9uZyANCmRlbiAzMDAgaGEg dm9pIG5oaWV1IGhhbmcgbXVjLCB0cm9uZyBkbyBjbyBzYW4gZ29sZiAxOCBsbyByb25nIDcwIGhh LiBUdXkgbmhpZW4gY2hvIGRlbiANCm5heSBtb2kgR1BNQiBkdW9jIDUwJSBkYXQga2hvbmcgbGll biBrZSwga2hvbmcgdHJvbiBvIHF1eSBob2FjaCBuZW4gY2h1YSBiaWV0IGtoaSANCm5hbyBob2Fu IHRoYW5oLg0KDQpDdW9pIHRoYW5nIDkgdnVhIHF1YSwgbmdhbmggY2h1YyBuYW5nIGN1YSBVQk5E IFRQIEhDTSBkYSBjbyBjdW9jIGtoYW8gc2F0IGNhYyBkdSANCmFuIHNhbiBnb2xmIHZhIGNvIGtl dCBsdWFuIGxhIGNhYyBzYW4gZ29sZiBjbyB0aWVuIGRvIGNoYW0gdHJlLCB2dW9uZyBsb24gbmhh dCBkbyBHUE1CIA0KY2h1YSBjbyBzdSBkb25nIHRodWFuIGdpdWEgY2h1IGR1IGFuIC0gQmFuIGJv aSB0aHVvbmcgR1BNQiB2b2kgbmd1b2kgZGFuLg0KDQpDdSB0aGUsIHNhbiBnb2xmIEFuIFBodSB2 dW9uZyAzMzAgaG8gZGFuLiBEdSBwaGFuIGxvbiBkaWVuIHRpY2ggZGF0IGtodSB2dWMgbmF5IG5o aWVtIA0KcGhlbiBuYW5nLCBob2FuZyBob2EgdHJvbmcgbmhpZXUgbmFtIG5odW5nIGdpYSB0cmkg dGFuZyB2b3Qga2hpIGNvIGR1IGFuIHNhbiBnb2xmLiBEdSANCmNodSBkYXUgdHUgYmFvIGNhbyBk YSB0aHVjIGhpZW4gYm9pIHRodW9uZyBkdW9jIDEwOSwzMzcwIGhhLzEzOSw3ODgzIGhhLCBkYXQg OTQlIGRpZW4gDQp0aWNoIG5odW5nIGhpZW4gdHJvbmcgZGF0IGR1IGFuIGNvIDI0IGNhbiBuaGEg Z29tIDYgY2FuIG5oYSBjYXAgNCB2YSAxOCBjYW4gbmhhIHRhbTsgDQpjaGkgY28gMjggaG8gZGFu ZyBreSBtdWEgY2FuIGhvIHRhaSBkaW5oIGN1IHRyb25nIDEwOSBobyBkdSBkaWV1IGtpZW4gZHVv YyBtdWE7IDk5IGhvIA0KZGFuZyBreSBob2FuIGRvaSBuZW4gdHJvbmcgMTE3IGhvIGR1IGRpZXUg a2llbiBob2FuIGRvaSBuZW4gZGF0LiBDb24gZHUgYW4gc2FuIGdvbGYgR1MgDQpDdSBDaGkgZHUg aG9uIDkwJSBkaWVuIHRpY2ggbGEgZGF0IHRyb25nIHRyYW0gbmh1bmcgZHUgYW4gY2hpIGRhbmcg ZGFvLCBkYXAgdGFvIGhpbmggDQp0cmVuIG1vdCBwaGFuIGRpZW4gdGljaCBkbyBjaHVhIEdQTUIg eG9uZzsgZHUgYW4ga2h1IGRvIHRoaSBTaW5nIFZpZXQgMzAwIGhhIGJpIHZ1b25nIA0KZGVuIDUw JSBkaWVuIHRpY2ggbGEgZG8gY28gZGVuIDU1OCBobyBkYW4gYmkgYW5oIGh1b25nLCB0cm9uZyBk byBjbyA1NDUgaG8gYmkgZ2lhaSB0b2EgDQp0b2FuIGJvLg0KDQpOaGlldSBETiBjaG8gcmFuZywg bW90IHRyb25nIGNhYyBnaWFpIHBoYXAgZ2l1cCBHUE1CIG5oYW5oIGxhIGNhYyB0aHUgdHVjIGhh bmggY2hpbmggDQpwaGFpIG5oYW5oLiBWYW4gYmlldCBjYWMgcXV5IGRpbmggdmUgZGF1IHR1IHhh eSBkdW5nIGhpZW4gY29uIHJ1b20gcmEsIGNob25nIGNoZW8gDQpuaHVuZyBuYW4gcXVhbiBsaWV1 IG5odW5nIG5oaWV1IGN1YSBtb3Qgc28gY2FuIGJvIGRhIGxhbSB0aG9pIGdpYW4gaG9hbiB0aGFu aCBobyBzbyANCmRhaSB0aGVtLiBUaHVjIHRlIGhpZW4gbmF5IGxhIG1vdCBkdSBhbiB0dSBuZ2F5 IGR1b2MgY2FwIGdpYXkgcGhlcCBjaG8gZGVuIGtoaSB0aHVjIHN1IA0KeGF5IGR1bmcgdG9pIHRo aWV1IHBoYWkgbWF0IDIgZGVuIDMgbmFtLiBWaWVjIHRyaWVuIGtoYWkgZHUgYW4gY2hhbSBuZ2F5 IG5hbyBsYSBraG8gDQpHUE1CIG5nYXkgZG8gdmkgZ2lhIGRhdCB0YW5nIHR1bmcgbmdheSwgIG5o YXQgbGEgc28gc2FuaCBnaXVhIHRob2kgZGllbSB0cnVvYyB2YSBzYXUga2hpIA0KY28gZHUgYW4u DQoNCkN1bmcgY2FuIHBoYWkgZ2lhaSBxdXlldCBtYXUgdGh1YW4gY28gYmFuIG5oYXQgdHJvbmcg R1BNQiBoaWVuIG5heSBsYSB0cm9uZyBraGkgcGhpYSANCmJvaSB0aHVvbmcgdGhpIGNobyByYW5n IGRhdCBuaGllbSBwaGVuLCBkYXQgeGF1IGNvIGdpYSB0cmkgdGhhcCB2YSBkZW4gYnUgdGhhcCB0 aGkgbmd1b2kgDQpkYW4gbGFpIG5naGkgbmd1b2MgbGFpLiBEYXQgeGF1IGNvIGdpYSB0cmkgdGhh cCB0cm9uZyBub25nIG5naGllcCwgbmh1bmcga2hpIGNvIGR1IGFuIHRyZW4gDQpkYXQgZG8gdGhp IHRybyBuZW4gY28gZ2lhIHRyaSBjYW8gdmEgcmF0IGNhbyB2ZSB0aHVvbmcgbWFpIHZhIGJhdCBk b25nIHNhbi4gVGh1YyB0ZSBsYSBraGkgDQpkdSBhbiBob2FuIHRoYW5oLCBtb2kgbWV0IHZ1b25n IGR1b2MgdGluaCBiYW5nIGRvbiB2aSBuZ2FuIFVTRC4NCg0KVGhlbyBjYWMgY2h1eWVuIGdpYSwg VFAgSENNIGNhbiBraWVuIHF1eWV0IGhvbiBudWEgZGF5IG5oYW5oIHRpZW4gZG8gdGh1YyBoaWVu IGNhYyANCmR1IGFuIHNhbiBnb2xmLCBjbyBiaWVuIHBoYXAgbWFuaCBjdSB0aGUgbmh1IGNoYW0g ZHV0IGR1IGFuIG5ldSB2aSBwaGFtIHRpZW4gZG8sIHZpIA0KcGhhbSBtdWMgZGljaCBkdSBhbi4u LiBCZW4gY2FuaCBkbywgY3VuZyBjYW4gY2hhbiBjaGluaCB0aW5oIHRyYW5nIGNodXllbiBkb2kg bXVjIA0KZGljaCBzdSBkdW5nIGRhdCB0dSBnaWFpIHRyaSB0aGUgZHVjIHRoZSB0aGFvIHNhbmcg a2luaCBkb2FuaCBiYXQgZG9uZyBzYW4uDQogDQoxLiBkdSBhbiBzYW4gZ29sZiBMYW0gVmllbiBx dWFuIDkuIERUIDMwMCBoYS4gR1BEVCAzNTIvR1AgZG8gVUJOTiB2ZSBIb3AgdGFjIHZhIA0KRGF1 IHR1IGNhcCBuZ2F5IDIyLzQvMTk5Mi4NCiANCjIuIGR1IGFuIHNhbiBnb2xmIHRhaSBxdWFuIDIu IERUIDEzMiw0NDA1IGhhLiBRdXlldCBkaW5oIDU3L1FELVRUZyBuZ2F5IDEyLzEvMjAwMSANCmNo byBDdHkgQ1AgRFQgdmEgcGhhdCB0cmllbiBTYWkgR29uIHN1IGR1bmcgZGUgeGF5IGR1bmcga2h1 IGxpZW4gaG9wIHNhbiBnb2xmIC0gdGhlIA0KZHVjLCB0aGUgdGhhbyB2YSBuaGEgby4NCiANCjMu IGR1IGFuIHNhbiBnb2xmIEdTIGh1eWVuIEN1IENoaS4gRFQgMjAwIGhhLiBHaWF5IENORFQgc28g NDExMDQzMDAwMTE3IGRvIFVCTkQgDQpUUCBIQ00gY2FwIG5nYXkgMjAvMy8yMDA3DQogDQo0LiBk dSBhbiBzYW4gZ29sZiBUYW4gU29uIE5oYXQsIHF1YW4gVGFuIEJpbmguIERUIDE1NywyOTEzIGhh LiBWYW4gYmFuIHNvIA0KMzU2Ny9WUENQLVFUVFYgbmdheSAyOC82LzIwMDUgY3VhIENQIGNoYXAg dGh1YW4gY2hvIEJvIFFQIHN1IGR1bmcgZGUgeGF5IGR1bmcgDQpzYW4gZ29sZg0KIA0KNS4gZHUg YW4gc2FuIGdvbGYgU2luZyBWaWV0IGh1eWVuIEJpbmggQ2hhbmguIEdpYXkgQ05EVCBzbyA0MTEw MjMwMDAxNDQgZG8gVUJORCANClRQIEhDTSBjYXAgMTAvMy8yMDA4ICh0cnVvYyBkYXkgZHVvYyBC byBLSERUIGNhcCBHaWF5IHBoZXAgZGF1IHR1IHNvIDIxNDUvR1AgDQpuZ2F5IDA2LzEyLzE5OTkp LiBEVCAzMDAgaGEsIGdvbSBraHUgbmhhIG8gdmEga2h1IGxpZW4gaG9wIFREVFQgKHNhbiBnb2xm IDE4IGxvLCBjYXUgDQpsYWMgYm8sIHNhbiB0YXAgdmEgdHJ1b25nIGR1YSBuZ3VhLCBkdWEgeGUp Lg0KDQogNi4gZHUgYW4gc2FuIGdvbGYgWW9ud29vIC0gVmFuIFBodWMgcXVhbiBUaHUgRHVjLiBH aWF5IENORFQgc28gNDExMDIyMDAwMTE5IGRvIA0KVUJORFRQIEhDTSBjYXAgbmdheSAyNi8xMC8y MDA3LiBOZ2F5IDIxLzEwLzIwMDksIFVCTkQgVFAgSENNIGJhbiBoYW5oIFFEIA0KNDg0NS9RRC1V Qk5EIHZlIGNoYW0gZHV0IHRydW9jIHRob2kgaGFuIGN1YSBkdSBhbiB2YSB0aHUgaG9pIEdpYXkg Y2h1bmcgbmhhbiBkYXUgDQp0dSB0YWkgUXV5ZXQgZGluaCBzbyA0ODU5L1FELVVCTkQgbmdheTIy LzEwLzIwMDkuIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVUJORC1UUEhDTS1iaS1jYXAt ZHVvaS15ZXUtY2F1LXJ1dC1raW5oLW5naGllbS8yMDc3MTI5MS8xNTcvIDAyLzMvMjAwOCwgMDQ6 MTUgR01UKzcNCg0KVFAgSENNOiBVQk5EIFRQIGtob25nIHh1IGx5IGNvbmcgdmllYyBraXAgdGhv aSAtIE9uZyBUcnVvbmcgVGFuIFNhbmcgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIA0KDQotIENodWEg Y2hpIGRhbyB4dSBseSBraXAgdGhvaSB2aWVjIGdpYW8gZGF0IGtoaSBjaHVhIGNvIHF1eWV0IGRp bmggdGh1IGhvaSBkYXQ7IA0KDQotIE5hbSAxOTk1LCB0aGFuaCB0cmEgVFAga2llbiBuZ2hpIFVC TkQuVFAgSENNOiB0aHUgaG9pIHRvYW4gYm8gY2FjIGtodSBkYXQgbWEgU28gTGFvIGRvbmcgJiBU aHVvbmcgYmluaCB4YSBob2kgDQpraG9uZyBzdSBkdW5nOyB0aHUgaG9pIGNhYyBxdXlldCBkaW5o IG1hIFVCTkQgbW90IHNvIEh1eWVuIGNvbmcgbmhhbiBxdXllbiBzdSBkdW5nIGRhdCB2dW90IHRo YW0gcXV5ZW4sIHZpIHBoYW0gDQpsdWF0IGRhdCBkYWk7IHh1IGx5IG1vdCBzbyB0cnVvbmcgaG9w IHNhbmcgbmh1b25nIHRyYWkgcGhlcCBraGFjLi4uIA0KTmh1bmcsIDEzIG5hbSBxdWEsIGtldCBs dWFuIGtpZW0gdHJhIHZhIGtpZW4gbmdoaSBjdWEgVGhhbmggdHJhIFRQSENNIGRhIGJpIFVCTkQg VFAgSENNIHZhIGNhYyBjbyBxdWFuIGNodWMgbmFuZyANCiJibyBxdWVuIiBtb3QgY2FjaCBraG8g aGlldS4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDcvMTEvNzU3MTcyLyAxMjox MicgMjgvMTEvMjAwNyAoR01UKzcpIA0KDQpUUC5IQ006IEJvIGhvYW5nIGhhbmcgdHJpZXUgbTIg ZGF0IGNvbmcuIER1b2MgZ2lhbyBkYXQgZGUuLi4gbmdhbSB2YSBjaG8gdGh1ZSENCg0KRGllbiBo aW5oIGxhIFNvIFkgdGUgVFAuSENNLCB0cm9uZyBzbyBob24gMiB0cmlldSBtMiBkYXQgYm8gaG9h bmcgdGhpIGRvbiB2aSBuYXkgY2hpZW0gaG9uIG51YSBkaWVuIHRpY2gsIGtob2FuZyAxLjA0MC4w MDAgbTIuDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9Ib21lL0xhb0Rvbmcvdm5lY29ub215LnZu L1RwSENNLXZhLUhhLU5vaS10cm9uZy1Ub3AtMjAtdGhhbmgtcGhvLWNvLW1vaS10cnVvbmctbGFt LXZpZWMta2VtLW5oYXQvMjU0ODIxOC5lcGkNCg0KVHAuSENNOiB0cm9uZyBUb3AgMjAgdGhhbmgg cGhvIGNvIG1vaSB0cnVvbmcgbGFtIHZpZWMga2VtIG5oYXQgDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMy8yMDEwMDgxNTAwMjQxMy5hc3B4IE0uVm9uZyAg MTUvMDgvMjAxMCAwOjI0IA0KDQpUUCBIQ006IE5odW5nIGN1YSBuZ28gInNpZXUgdW4gdGFjIiAg DQogIA0KWGUgcXVhIG5oaWV1LCB0YWkgbmFuLCByYW8gY2hhbiwgbmdhcCBudW9jLi4uIGxhIG5o dW5nIG5ndXllbiBuaGFuIGdheSBuZW4gdGluaCB0cmFuZyB1biANCnRhYyBnaWFvIHRob25nIG5n aGllbSB0cm9uZyB0cmVuIGNhYyB0dXllbiBkdW9uZyBodXlldCBtYWNoIGN1YSBUUC5IQ00sIG5o dTogUUwxMywgDQp4YSBsbyBIYSBOb2kgdmEgTGllbiB0aW5oIGxvIDI1Qi4gTmhpZXUgdGFpIHhl IG5nYW8gbmdhbiBnb2kgdGluaCB0cmFuZyBuYXkgbGEgInNpZXUgdW4gdGFjIiANCg0KaHR0cDov L3d3dy52bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA1LzA3LzNCOUUwNjdDLyAyMy83LzIwMDUs IDAzOjEzIEdNVCs3DQoNClRQIEhDTTogJ1NhaSBwaGFtIGN1YSBDb25nIHR5IERpZW4gbHVjIFRQ IEhDTSByYXQgbG9uJw0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDUv MDYvM0I5REZBNDkvIDMwLzYvMjAwNSwgMDk6NTAgR01UKzcNCg0KVFAuSENNOiBMYXAgZGF0IDI2 MC4wMDAgZGllbiBrZSBkaWVuIHR1LCBnYXkgdGhpZXQgaGFpIGxvbiBjaG8gbmd1b2kgc3UgZHVu ZyBkaWVuIG8gVFAgSENNIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdl cy8yMDExMDEvMjAxMTAxMDIyMjEzMTEuYXNweCBIb2FuZyBWaWV0IFRoYW5oIFF1b2MgMDIvMDEv MjAxMSAyMjoxMyANCg0KQnVvbiBsYXUgbXVhIGdpYXAgdGV0IC0gQW8gYXQgdnVvdCBiaWVuIC0g QmF0IGl0LCB4dSBseSBuaGUhIA0KDQpUaG9pIGRpZW0gY2FuIFRldCBOZ3V5ZW4gZGFuIGhhbmcg bmFtIGxhIG11YSBsYW0gYW4gc29pIGRvbmcgdmEgZHVvYyBjaG8gZG9pIG5oYXQgDQpjdWEgZGFu IGJ1b24gbGF1LiBOaHVuZyBtYXQgaGFuZyBwaHVjIHZ1IHRldCBkdW9jIGdpb2kgYnVvbiBsYXUg dGFwIHRydW5nIGtoYWkgdGhhYyBtYW5oLiAgDQoNClh1YXQgcGhhdCB0dSBjYWMgY2hvLCBkaWVt IHRhcCBrZXQgYmVuIGtpYSBiaWVuIGdpb2ksIHRodW9jIGxhIG5nb2FpIGR1b2MgZGFpIGNodXll biBkdW9pIA0KdGh1eSwgdHJlbiBibyB2ZSBub2kgZGlhIHJvaSB0aWVwIHR1YyB0b2EgZGkga2hh cCBjYWMgdGluaCBEQlNDTCB2YSBUUC5IQ00gdGlldSB0aHUuIA0KDQooQW5oOiBOaHVuZyAicm8t Ym90IiBibyBraW4gdGh1b2MgbGEgdHJvbmcgbmd1b2kgLSBBbmg6IFRoYW5oIFF1b2MpIA0KDQpB byBhdCB2dW90IGJpZW4gDQoNCk5odW5nIG5nYXkgY3VvaSBuYW0sIGNodW5nIHRvaSBjbyBtYXQg dGFpIGNobyBHbyBUYSBNYXUgKGdvaSB0YXQgbGEgY2hvIEdvLCB0aHVvYyB0aW5oIA0KVGEgS2Vv LCBDYW1wdWNoaWEpLCBub2kgZ2lhcCByYW5oIHZvaSB4YSBWaW5oIE5ndW9uLCB0aGkgeGEgQ2hh dSBEb2MsIEFuIEdpYW5nLiANClRoZW8gbG9pIGN1YSBtb3QgInRobyBkaWEiIHRoaSBxdWFuaCBu YW0sIGhhdSBuaHUgbmdheSBuYW8gY3VuZyBjbyBtb3QgbHVvbmcgbG9uIA0KdGh1b2MgbGEgbmdv YWkgZHUgbmhhbiBoaWV1IHR1IGNhbyBjYXAgZGVuIGJpbmggZGFuIGR1b2MgY2FjIG1vaSBoYW5n IGxvbiBvIFBobm9tIA0KUGVuaCwgS29uZ3BvbmcgQ2hhbSBjaHV5ZW4gZGVuICJuaGFwIGtobyIg byBkYXksIHNhdSBkbyB0dW9uIHZhbyBWaWV0IE5hbSBiYW5nIGNhIA0KZHVvbmcgdGh1eSB2YSBk dW9uZyBiby4gTmh1bmcgbmdheSBjYW4gVGV0IE5ndXllbiBkYW4sIGx1b25nIHRodW9jIGxhIG5n b2FpIGNodXllbiANCmRlbiBjaG8gR28gY2FuZyBkb24gZGFwIGhvbi4gDQoNClRyb25nIHZhaSBr aGFjaCB0aW0gbXVhIGhhbmcgaG9hLCBjaHVuZyB0b2kgcmFvIGtoYXAgY2FjIGdpYW4gaGFuZyB0 cm9uZyBjaG8uIE8gZGF5IA0KaGF1IGhldCBjYWMgY3VhIGhhbmcgZGV1IGxhIG5oYSBnbyBjbyBz YW4gcmF0IGNhbywgYmVuIHRyZW4gYmFuIGhhbmcgImJhY2ggaG9hIHRvbmcgDQpob3AiLCBkaWVu IHRob2FpIGRpIGRvbmcsIGhhbmcgZGllbiB0dS4uLiBjaG8ga2hhY2ggdGhhbSBxdWFuLCBjb24g YmVuIGR1b2kgc2FuIGR1bmcgDQpsYW0gbmhhIGtobyBjaHVhIGRheSBhcCBoYW5nIGhvYS4gQ2hv YyBjaG9jIGxhaSB0aGF5IG1vdCB0b2FuIHRoYW5oIG5pZW4gbHVjIGx1b25nIHZhbyANCmNhYyBr aG8gaGFuZyByb2kgdHJvIHJhIHZvaSBuaHVuZyBraWVuIHRodW9jIGxhIGNoYXQgdHJlbiBsdW5n IGNhbyBsZW4gZGVuIGtob2kgZGF1LiBUdSANCmRheSwgdGh1b2MgbGEgbmdvYWkgc2UgZHVvYyBk YWkgKGNvbmcpIGRlbiBraHUgdnVjIGJpZW4gZ2lvaSwgZG9pIHRob2kgZGllbSB0aHVhbiBsb2kg c2UgDQpkdW9jICJuaGFwIiB2YW8gbm9pIGRpYS4gDQoNCkNhbmggZG9uZyBiaWVuIGdpb2kgVmlu aCBOZ3VvbiB0aG9pIGRpZW0gbmF5IGtob25nIGNvbiBudW9jIGx1LCBsdWEgbW9pIHNhIGNhbyBj aHVhIA0KdG9pIGdhbmcgdGF5IG5lbiByYXQgdGh1YW4gdGllbiBjaG8gZG9pIHF1YW4gZGFpIGhv YXQgZG9uZy4gVHJlbiBkdW9uZyB0dSBjaG8gR28gdHJvIHZlLCANCmNob2MgY2hvYyBjaHVuZyB0 b2kgbGFpIHBoYWkgYnVvYyBjaGFuIHh1b25nIHJ1b25nIGRlIG5odW9uZyBjb24gZGUgbmhvIGNo byBjYW5oIGRhaSANCmhhbmcuIER1IGNodW5nIHRvaSBsYSBuZ3VvaSBsYSBuaHVuZyBkbyBjbyBk YW4gZGlhIHBodW9uZyBkYW4gZHVvbmcgbmVuIG5odW5nIG5ndW9pIA0KZGFpIGhhbmcga2hvbmcg Y2FuIGRvIHhldCwgZSBkZS4gIkRhbyBuYXkgdm8gbXVhIHRldCBuaHUgY2F1IHRpZXUgdGh1IHRo dW9jIGxhIHRhbmcgDQptYW5oLCBuaG9tIGFuaCBlbSB0b2kgcGhhaSBkYWkgdmFjIGNhIGJhbiBk ZW0gbW9pIGtpcC4gQmluaCBxdWFuIG1vaSBuZ2F5IGFuaCBlbSANCmNodW5nIHRvaSBkYWkgbXVv biBraG9hbmcgdHJlbiA1MDAga2llbiAobW9pIGtpZW4gNjAgY2F5IHRodW9jIGxhKSBxdWEgYmll biBnaW9pIiwgbW90IA0KZGFuIGRhaSBjaG8gYmlldC4gVHV5IG5oaWVuLCB0aGVvIGxvaSBuZ3Vv aSBkYW4gZHVvbmcsIHNvIGRpIHRodW9jIGxhIG5nb2FpIGNvIHRoZSBuZ2FuZyANCm5oaWVuIHZh biBjaHV5ZW4gZ2l1YSBiYW4gbmdheSBuaGFwIGxhdSBxdWEgYmllbiBnaW9pIG5odSB0aGUgbGEg ZG8gZGEgY28gIm5ndW9pIGxvbiIgDQpsbyBkdW9uZyBzYS4NCg0KQ29uIHRhaSBWaW5oIFh1b25n LCBjaHVuZyB0b2kgY28gYmFtIHRoZW8gZG9hbiB4ZSBtYXkgY2hvIHRodW9jIGxhIGxhdSB2ZSB0 aGkgeGEgVGFuIA0KQ2hhdSAoQW4gR2lhbmcpLCB0aGVvIHRpbmggbG8gOTUyLiBOaHVuZyBjbyBs ZSBkbyBwaGF0IGhpZW4gY28gImR1b2kiIG5lbiBkb2FuIHhlIHRyZW4gDQpiYXQgbmdvIHJlIHZh byBtb3QgY29uIGR1b25nIG5obyByb2kgbWF0IGh1dC4gTmd1b2kgZGFuIGRpYSBwaHVvbmcgY2hv IGJpZXQgY28gbW90IA0KZGllbSB0YXAga2V0IGhhbmcgZ2FuIGJlbiBwaGEgVGFuIEFuLiBUdSBk YXksIHRodW9jIGxhIGxhdSBkdW9jIGR1YSB4dW9uZyB4dW9uZyBkZSANCnZ1b3Qgc29uZyB2ZSB0 YXAga2V0IHRhaSBUYW4gQ2hhdS4gDQoNCk5odW5nIGNodXllbi4uLiAgInhlIGJheSIgDQoNCkto aSB0aHVvYyBsYSBsYXUgZGEgZHVvYyBjaHV5ZW4gdmFvIG5vaSBkaWEsIGRhdSBuYXUgc2UgdG8g Y2h1YyBjYWMgcGhpIGRvaSAieGUgYmF5IiBkZSANCnZhbiBjaHV5ZW4gdGh1b2MgdGhlbyBuaHUg Y2F1IGN1YSBraGFjaCBoYW5nLiBNb2kgInhlIGJheSIgY2hvIHR1IDEyMCBjYXkgdGh1b2MgbGEg dHJvIA0KbGVuLCBwaGlhIHRydW9jIGR1b2MgY2hhdCBjYW8gZGVuIG11aSB2YSBwaGlhIHNhdSBj YW8gZGVuIGtob2kgZGF1IG5ndW9pIGRpZXUga2hpZW4uIFNhdSANCmtoaSAiYW4gaGFuZyIsIG5o dW5nIGNoaWVjIHhlIGRhIGR1b2MgImRvbiBkZW4sIHhvYXkgbm9uZyIgbmF5IGJhdCBkYXUgZ2Ft IHJ1IGluaCBvaSANCnJvaS4uLiAiYmF5IiB2dXQgdHJlbiB0dXllbiBxdW9jIGxvIDkxIHZlIFRQ IExvbmcgWHV5ZW4sIGtoaWVuIGNhYyBwaHVvbmcgdGllbiBnaWFvIA0KdGhvbmcgdHJlbiBkdW9u ZyBkZXUgcGhhaSBuZXAgdmFvIGxlIG5lIHRyYW5oLiANCg0KKEFuaDogWGUgY2hvIHRodW9jIGxh IGxhdSBwaG9uZyBuaHUgImJheSIgdHJlbiBxdW9jIGxvIDkxIHRodW9jIHRpbmggQW4gR2lhbmcg LSBBbmg6IA0KVGhhbmggUXVvYykgDQoNCkNodW5nIHRvaSBiYW0gdGhlbyBoYWkgeGUgImJheSIg Y2hvIGRheSB0aHVvYyBsYSBsYXUgeHVhdCBwaGF0IHR1IG1vdCB0cnVuZyB0YW0gdGh1b25nIA0K bWFpIG8gdGhpIHhhIENoYXUgRG9jLiBTYXUga2hpIG5oYW4gZHVvYyBkaWVuIHRob2FpIHR1IG5o dW5nIG5ndW9pIGNhbmggZHVvbmcsIHR1bmcgDQp0b3AgMiB4ZSBjaG8gdGh1b2MgbGEgbGF1IGJh dCBkYXUgcm9pIGtob2kgbm9pIGFuIG5hcCwgbGFvIHJhIHF1b2MgbG8gOTEuIEtob25nIGNodXQg ZG8gDQpkdSwgMiB4ZSBuYXkgcm8gZ2EgdGFuZyB0b2MsIGNoZSBnaXVhIGNhYyB4ZSBraGFjIGRh bmcgbHV1IHRob25nIHRyZW4gZHVvbmcuIEtob25nIGNoaSANCnBob25nIHZ1dCwgbGFuZyBsYWNo IG1hIGNhYyAicXVhaSB4ZSIgY29uIGxpZW4gdHVjIG5naGUgZGllbiB0aG9haSBiYW8gZHVvbmcu IA0KDQpDaHVuZyB0b2kgbGFvIHRoZW8gZGUgY28gY2h1cCBjaG8gZHVvYyBuaHVuZyBoaW5oIGFu aCBzb25nIGRvbmcgbmhhdC4gR2lvIHJpdCBtYW5oIA0KZGVuIHJhdCBtYXQgbmh1bmcgdGF5IGNo dW5nIHRvaSB1b3Qgc3VuZyBtbyBob2kgdmkuLi4gaG9pIGhvcCB2YSBub20gbm9wIGxvIHRhaSBu YW4uIEJvaSANCmNoaSBjYW4gbW90IHZhIGNoYW0gZHUgcmF0IG5oZSBoYXkgY28gbW90IGNodW9u ZyBuZ2FpIHZhdCBuYW8gYmF0IG5nbyB0cmVuIGR1b25nIGN1bmcgDQpzZSBraGllbiBjYSBuZ3Vv aSB2YSB4ZSBkbyBhbS4uLiBDaGkgaG9uIG51YSBnaW8gc2F1LCBjaHVuZyB0b2kgZGEgZGVuIGN1 b2kgZGlhIHBoYW4gDQpodXllbiBDaGF1IFBodSwgbm9pIGdpYXAgcmFuaCB2b2kgeGEgQW4gSG9h IChILkNoYXUgVGhhbmgsIEFuIEdpYW5nKS4gTHVjIG5heSwgMiANCmNoaWVjICJ4ZSBiYXkiIGJh dCBuZ28gZ2lhbSB0b2MgZG8gdmEgbnVwIHZhbyBtb3QgY2F5IHhhbmcuIENhYyB4ZSBkaSBzYXUg Y3VuZyBsYW4gbHVvdCANCnRhcCB2YW8uIENhYyB0YWkgeGUgInhlIGJheSIgbGllbiB0dWMgZHVu ZyBkaWVuIHRob2FpICJ0aG9uZyBiYW8gdGluaCBoaW5oIiB2b2kgY2FjIHhlIA0Ka2hhYy4gTW90 IGx1YyBzYXUsIGxhaSBsYW4gbHVvdCB0dW5nIHRvcCAyIHhlIGxhbyBkaSB0aGVvIGh1b25nIFRQ IExvbmcgWHV5ZW4uIERpZW0gDQpjdW9pIGN1YSBwaGkgZG9pICJ4ZSBiYXkiIG5heSBsYSBraHUg dnVjIG5nYSBiYSBsbyB0ZSBSYWNoIEdpYSAodGh1b2MgeGEgVGhvaSBUaHVhbiwgDQpRLlRob3Qg Tm90LCBUUCBDYW4gVGhvKS4gS2hpIHhlIGRlbiBkYXkgbGFwIHR1YyBjbyBuZ3VvaSBkb24gbmhh biBoYW5nIGNodXllbiBsZW4gDQpjYWMgeGUgY2hvIGtoYWNoIGRpIHRpZXAgdmUgQ2FuIFRobywg UmFjaCBHaWEuLi4gDQoNCiJSby1ib3QiIHRyZW4geGUga2hhY2gNCg0KIkRhbyBuYXkgdm8gbXVh IHRldCBuaHUgY2F1IHRpZXUgdGh1IHRodW9jIGxhIHRhbmcgbWFuaCwgbmhvbSBhbmggZW0gdG9p IHBoYWkgZGFpIHZhYyANCmNhIGRlbSBtb2kga2lwLiBCaW5oIHF1YW4gbW9pIG5nYXkgYW5oIGVt IGNodW5nIHRvaSBkYWkgbXVvbiBraG9hbmcgdHJlbiA1MDAga2llbiANCihtb2kga2llbiA2MCBj YXkgdGh1b2MgbGEpIHF1YSBiaWVuIGdpb2kiIC0gIE1vdCBkYW4gZGFpIGNobyBiaWV0DQoNClRo ZW8gbG9pIG5ndW9pIGRhbiBkaWEgcGh1b25nLCBjYWMgeGUga2hhY2ggdHUgdGhpIHhhIENoYXUg RG9jIGRpIFRQIENhbiBUaG8gY3VuZyANCnRodW9uZyBjaG8gdGh1b2MgbGEgbGF1LiBTYXUga2hp IHh1YXQgYmVuLCBjaGllYyB4ZSBzZSBjaGF5IGxvbmcgdm9uZyB0cmVuIGR1b25nLCB2YW8gDQpj YWMga2h1IHRodW9uZyBtYWkgdnVhICJhbiBoYW5nIiwgdnVhIGRvbiBraGFjaC4gQ29uIGJ1b24g Y28ga2hpIGxhIGJhbiBoYW5nIGNodXllbiANCm5naGllcCBkaSB4ZSwgY28ga2hpIGxhIGNhbmgg bmhhIHhlIHZhIGxvIHhlLiBTb25nIHRodSBwaGFwIGNodW5nIG1hICJyYW4gaG8iICh0dSBuZ3Ug DQpkYW4gdHJvbmcgbmdoZSBidW9uIGxhdSBjaGkgY29uIGJ1b24gdGh1b2MgbGEgLSBOVikgc3Ug ZHVuZyBsYSBtYWMgbmh1bmcgYm8gZG8gcm9uZyANCnRodW5nIHRoaW5oIGJlbiBuZ29haSBkZSBj aGUga2h1YXQgaGFuZyB0cmFtIGdvaSB0aHVvYyBsYSBkdW9jIGJvIGtoYXAgbmd1b2ksIGtlIGNh IA0KY2hhbiwgdGF5LiBOaGluIGhvIGNoYW5nIGtoYWMgZ2kgbmh1bmcgInJvLWJvdCIgZHVvYyBs YW0gYmFuZy4uLiB0aHVvYyBsYS4gQ2FjIGxvIHhlIGRvIA0KYm8gZGF5IHRodW9jIGxhIG5odSB0 aGUgbmVuIGNoYW5nIGtoaSBuYW8gYnVvYyByYSBraG9pIHhlIG1hIHRodW9uZyBuZ29pIG5hcCB0 aGFuIA0KbWluaCAiYmUgdmUiIGJlbiBjYW5oIGN1YSwgY2hpIHRobyBkYXUgcmEgbmdvYWkgYmF0 IGtoYWNoLiANCg0KRGVuIGRpYSBwaGFuIHF1YW4gTyBNb24sIGNhYyAicm8tYm90IiBiYXQgZGF1 Li4uIHRoYXkgaGluaCBkb2kgZGFuZyEgSG8gY29pIGJvIG1vIHF1YW4gDQphbyBwaG9uZyBwaGFu aCB2YSBiYXQgZGF1IGdvIG5odW5nIGRheSB0aHVvYyBsYSBibyBzYXQgdHJlbiBuZ3VvaSwgY2hv IHRodW9jIHZhbyBuaHVuZyANCnR1aSBuaHVhIG1hdSBkZW4uIENvbmcgdmllYyBuYXkgaG9hbiB0 YXQgdHJ1b2Mga2hpIHhlIHZhbyBkaWEgcGhhbiBRLkJpbmggVGh1eSAoVFAgDQpDYW4gVGhvKS4g UXVhIGNhdSBCaW5oIFRodXksIGNoaWVjIHhlIGJhdCBkYXUgZ2lhbSB0b2MgZG8sIHJlIHJlIGRl IHRpbSAiZG9pIHRhYyIgbGEgDQpjYW5oIHhlIG9tLiBNb3QgY2FuaCB0YXkgZ2lvIGxlbiwgY2hp ZWMgeGUga2hhY2ggbGllbiBhcCBzYXQgdmFvIGxlLCBxdWFuZyBxdWEgY3VhIHNvIGhhaSANCnR1 aSBuaHVhIG1hdSBkZW4gYmVuIHRyb25nIGRheSB0aHVvYyBsYSBsYXUuIEN1IG5odSB2YXksIGto aSBkZW4gYmVuIHhlIENhbiBUaG8gdGhpIA0KdG9hbiBibyBoYW5nIGhvYSBkYSBkdW9jIHRhdSB0 YW4sIGRlbiBub2kgY2FuIGRlbiByb2kgbGFpIHRvYSBkaSBjYWMgbm9pIGtoYWMgdGlldSB0aHUu DQoNCkJhdCBpdCwgeHUgbHkgbmhlISANCg0KVHJvbmcgbmFtIDIwMTAsIERvaSBRdWFuIGx5IHRo aSB0cnVvbmcgKFFMVFQpIDVCIChDaGkgY3VjIFFMVFQgVFAuSENNKSBkYSBwaGF0IA0KaGllbiA2 OCB2dSB2YW4gY2h1eWVuLCBraW5oIGRvYW5oIHRodW9jIGxhIGxhdSAoZ2lhbSAyOCB2dSBzbyB2 b2kgbmFtIDIwMDkpLiBEb2kgdGljaCANCnRodSA0OC42OTYgZ29pIHRodW9jIGxhIGxhdSAoZ2lh bSA0LjEwMCBnb2kgc28gdm9pIG5hbSAyMDA5KS4gU28gdm9pIG5odW5nIG5hbSB0cnVvYywgDQpz byB2dSB2YSB0YW5nIHZhdCB0aHVvYyBsYSBsYXUgYmkgbHVjIGx1b25nIFFMVFQgVFAgcGhhdCBo aWVuIHRyb25nIG5hbSAyMDEwIGdpYW0gZGkgDQpyYXQgbmhpZXUuIERpZXUgbmF5IGtob25nIGNv IG5naGlhIGxhIHNvIHRodW9jIGxhIGxhdSBkdWEgdmFvIFRQLkhDTSBnaWFtIGRpLiANCg0KVGhl byBDaGkgY3VjIFFMVFQgVFA6ICJUaW5oIGhpbmggdmFuIGNodXllbiB0aHVvYyBsYSBsYXUgdGFp IGNhYyBodXllbiBUUCBnaWFwIHJhbmggDQp2b2kgdGluaCBUYXkgTmluaCwgTG9uZyBBbiB2YW4g ZGllbiBiaWVuIHBodWMgdGFwLCBnaWEgdGFuZyBjYSB2ZSBxdXkgbW8gdmEgcGh1b25nIA0KdGh1 YyBob2F0IGRvbmcgc28gdm9pIG5hbSB0cnVvYy4gRG9pIHR1b25nIGJ1b24gbGF1IHN1IGR1bmcg Z2hlIG1heSB2YW4gY2h1eWVuIDEwIA0KY2h1eWVuIHRodW9jIGxhIGxhdS9uZ2F5IChtb2kgY2h1 eWVuIGtob2FuZyA2LjAwMCBnb2kgdGh1b2MgbGEsIHR1b25nIGR1b25nIDYwLjAwMCANCmdvaS9u Z2F5KSIuIA0KDQpNb3Qgc28gdnUgdmkgcGhhbSBsb24gYmkgcGhhdCBoaWVuOiBOZ2F5IDI4Ljku MjAxMCwgRG9pIFFMVFQgNUIgYmF0IHF1YSB0YW5nIDUgZG9pIA0KdHVvbmcgdmFuIGNodXllbiAx OCB0aHVuZyB0aHVvYyBsYSBuZ29haSBuaGFwIGxhdSB0YWkgbmdhIHR1IFRhIFV5ZW4gLSBQaGFt IEh1dSBDaGkgDQooUC4xNSwgUS41KS4gVHV5IG5oaWVuLCBkb2kgdHVvbmcgbmhhbmggY2hhbiBi byB0cm9uLCBsdWMgbHVvbmcgUUxUVCBjaGkgdGh1IGdpdSB0YW5nIA0KdmF0IGxhIDguODkwIGdv aSB0aHVvYyBsYSBoaWV1IDU1NSBuaGFwIGxhdS4gDQoNClRydW9jIGRvLCBEb2kgNUIgY3VuZyBk YSBwaGF0IGhpZW4gdmEgYmF0IHF1YSB0YW5nIDIgeGUgQlM6IDYyTC0zMTM2IEJTIDYyTC01NDIw IA0KdmFuIGNodXllbiA1Ljc1MCBnb2kgdGh1b2MgbGEgSmV0LCB0cmkgZ2lhIGtob2FuZyA1Nyw1 IHRyaWV1IGRvbmcsIHR1IExvbmcgQW4gdmUgUS41LCANClRQLkhDTSBnaWFvIGhhbmcuIA0KDQpL aG8ga2hhbiBkYW5nIG5hbSBvIHZpZWMgeHUgbHkgY2FjIHZ1IHZpIHBoYW0gbmF5IGhhdSBuaHUg Y2hpIGR1bmcgbGFpIG8gbXVjIHh1IHBoYXQgDQpoYW5oIGNoaW5oLCBraG9uZyBkdSBzdWMgcmFu IGRlLiBUaHVvbmcgdGEgTmd1eWVuIENodW5nIC0gRG9pIHBobyBQaG9uZyBDU0tUIFEuNiAtIA0K Y2hvIGJpZXQ6ICJUaGVvIE5naGkgZGluaCA3NiwgdnUgdmFuIGNodXllbiB0aHVvYyBsYSBuZ29h aSBuaGFwIGxhdSBuZXUgdHJlbiBsYSBkdSB5ZXUgDQp0byB0cnV5IHRvIHRyYWNoIG5oaWVtIGhp bmggc3UgZG9pIHR1b25nIHZhbiBjaHV5ZW4uIFR1eSBuaGllbiwgZG9pIHR1b25nIGRhICJjaGUi IG5obyANCmhhbmcgeHVvbmcgZHVvaSBraHVuZyAxLjUwMCBnb2kvY2h1eWVuIGRlIGxhY2ggbHVh dCIuIE5nYXkgY2EgdnUgdmFuIGNodXllbiBoYW5nIA0KY2FtIGRpbmggZGFtIG5oYXQgbmFtIDIw MTAgbGllbiBxdWFuIGRlbiAyIHhlIGJ1eXQgdmFuIGNodXllbiB0aHVvYyBsYSBsYXUgYmkgRG9p IA0KUUxUVCA1QiBiYXQgcXVhIHRhbmcsIGNodXllbiBobyBzbyBzYW5nIGNvIHF1YW4gZGlldSB0 cmEsIGN1b2kgY3VuZyBkb2kgdHVvbmcgY3VuZyBjaGkgDQpiaSB4dSBwaGF0IGhhbmggY2hpbmgu IERvaSBkYSBwaGF0IHRvbmcgY29uZyAyOTUgdHJpZXUgZG9uZyBkb2kgdm9pIDUgZG9pIHR1b25n IHZpIHBoYW0gDQpuaHVuZyBkZW4gbmF5IGNhYyBkdW9uZyBzdSB2YW4gY2h1YSBjaGFwIGhhbmgg bm9wIHBoYXQuIA0KDQpUaW5oIHR1IG5nYXkgTmdoaSBkaW5oIDc2IGN1YSBDaGluaCBwaHUgKGJv IHN1bmcgTmdoaSBkaW5oIDA2IHZlIHh1IHBoYXQgaGFuaCBjaGluaCANCnRyb25nIGxpbmggdnVj IHNhbiB4dWF0LCBraW5oIGRvYW5oIHJ1b3UgdGh1b2MgbGEpIGNvIGhpZXUgbHVjIGRlbiBuYXkg ZGEgaG9uIDQgdGhhbmcgDQpuaHVuZyB0YWkgVFAuSENNIHZhbiBjaHVhIGNvIHZ1IHZpIHBoYW0g a2luaCBkb2FuaCwgdmFuIGNodXllbiB0aHVvYyBsYSBsYXUgbmFvIGJpIGtob2kgdG8uIA0KDQpo dHRwOi8vdm5lY29ub215LnZuLzIwMDgwOTA4MTE0MjQ2OTk3UDBDMTkvdHBoY20tcGhhdC1oaWVu LWhhbmctbG9hdC10cnUtYm9tLXhhbmctZ2lhbi1sYW4uaHRtICBDb25nIEh1eWVuIDExOjU1IChH TVQrNykgLSA4LzkvMjAwOCANCg0KVHAuSENNOiBIYW5nIGxvYXQgdHJ1IGJvbSB4YW5nIGdpYW4g bGFuIA0KIA0KKEhpbmggdGh1YyBnaWFuIGxhbiBwaG8gYmllbiBuaGF0IGxhIGRvbmcgdGhpZXUs IGtpbmggZG9hbmggeGFuZyBrZW0gY2hhdCBsdW9uZyBzbyB2b2kgY29uZyBibyAtIEFuaCBtaW5o IGhvYS4pDQoyMCUgdG9uZyBzbyB0cnUgZG8geGFuZyBkYXUgZHVvYyBraWVtIHRyYSB0YWkgVHAu SENNIGJpIHBoYXQgaGllbiBnaWFuIGxhbiANCg0KVGluIHR1IFNvIEtob2EgaG9jIENvbmcgbmdo ZSBUcC5IQ00gY2hvIGJpZXQsIHR1IGRhdSB0aGFuZyA5LCB0aGFuaCB0cmEgY3VhIFNvIA0KZGEg dGllbiBoYW5oIGtpZW0gdHJhIDIwMSB0cnUgZG8geGFuZyBkYXUgdGFpIDMxIGN1YSBoYW5nIGtp bmggZG9hbmggeGFuZyBkYXUgdHJlbiBkaWEgYmFuIFRwLkhDTS4gDQoNClF1YSBkb3Qga2llbSB0 cmEsIGNvIGRlbiA0NSB0cnUgZG8geGFuZyBkYXUgLSBjaGllbSB0aSBsZSBob24gMjAlIHRyb25n IHRvbmcgc28gDQp0cnUgZG8gZHVvYyBraWVtIHRyYSAtIGN1YSA4IGN1YSBoYW5nIGJpIHBoYXQg aGllbiBnaWFuIGxhbi4gSGluaCB0aHVjIGdpYW4gbGFuIA0KcGhvIGJpZW4gbmhhdCBsYSBkb25n IHRoaWV1LCBraW5oIGRvYW5oIHhhbmcga2VtIGNoYXQgbHVvbmcgc28gdm9pIGNvbmcgYm8uDQoN Ck1hYyBkdSBjb25nIGJvIHZvaSBraGFjaCBoYW5nIGNoaSBzbyB4YW5nIGxhIE05MiBuaHVuZyBr aGkgcGhhbiB0aWNoIHRoaSBjaGkgc28gDQpvY3RhbiBjaGkgZGF0IDkwLDggLSA5MSwzLiBUdW9u ZyB0dSwgbW90IHNvIG1hdSB4YW5nIE05NSBuaHVuZyBrZXQgcXVhIGtpZW0gdHJhIA0KY2hpIGRh dCA5My4gTmhpZXUgdHJ1b25nIGhvcCBtdWMgZG8gZG9uZyB0aGlldSBjdWEgY2FjIHRydSBkbyB0 dSA1LTclIHNhaSBzbyBkdW9uZy4gDQoNCkRhYyBiaWV0LCB0YWkgY3VhIGhhbmcgc28gQTQvMjcg cXVvYyBsbyAxQSwgcGh1b25nIFRhbiBUYW8gQSwgcXVhbiBCaW5oIFRhbiBjbyBtdWMgDQpkb25n IHRoaWV1IGNhbyBuaGF0IGxhIDcgLSAxMCw1JSwgdHVvbmcgZHVvbmcgZG9uZyAxMCBsaXQgdGhp ZXUga2hvYW5nIDEgbGl0LiANCg0KTmdvYWkgcmEsIGNvbiBjbyB0cnVvbmcgaG9wIGN1YSBoYW5n IHhhbmcgZGF1IHNvIDIgKHRvIDExLCBhcCAxIHhhIEJpbmggQ2hhbmgsIGh1eWVuIEJpbmggQ2hh bmgpIA0KY29uIGdhbiBjaGlwIGRpZW4gdHUgdmFvIHRydSBib20geGFuZyBkYXUgZGUgZGlldSBr aGllbiBnaWFuIGxhbiBsdW9uZyB4YW5nIGRhdSBuaHUgeSBtdW9uLiBUdXkgdmF5LCBtdWMgeHUg cGhhdCBjaHVhIGR1IHJhbiBkZSBjYWMgY3VhIGhhbmcuIA0KDQpodHRwOi8vd3d3LmRhbmdjb25n c2FuLnZuL2Nwdi9Nb2R1bGVzL05ld3MvTmV3c0RldGFpbC5hc3B4P2NvX2lkPTMwMjg3JmNuX2lk PTQzNzI2NyAoVGhlbyBWT1YpIDEwOjA1IDA2LzEyLzIwMTAgIA0KDQpUUC5IQ006IFZpZWMgYnVv biBiYW4gaGFuZyBuaGFwIGxhdSwgbGFtIHZhIGJ1b24gYmFuIGhhbmcgZ2lhIGNodWEgZ2lhbSB2 YSB0aWVwIHR1YyBkaWVuIGJpZW4gcGh1YyB0YXAgIA0KDQpUdSBkYXUgbmFtIGRlbiBuYXksIENo aSBjdWMgUXVhbiBseSB0aGkgdHJ1b25nIFRQIEhDTSBkYSBraWVtIHRyYSB2YSBsYXAgYmllbiBi YW4gdmkgDQpwaGFtIDE1LjE0OSB2dSBsaWVuIHF1YW4gZGVuIGhhbmcgZ2lhbiwgaGFuZyBnaWEs IGhhbmcgY2FtLCBoYW5nIG5oYXAgbGF1OyB4dSBwaGF0IGdhbiANCjEwLjMwMCB2dSB2b2kgdG9u ZyBzbyB0aWVuIGhvbiA3MCB0eSBkb25nLCB0YW5nIGhvbiAzMyUgc28gdm9pIGN1bmcga3kgbmFt IDIwMDkuIA0KDQpOYW0gbmF5LCBjb25nIHRhYyBraWVtIHRyYSwgZ2lhbSBzYXQgdGhpIHRydW9u ZyBkYSBkdW9jIHRhbmcgY3VvbmcsIHNvIHZ1IHZpIHBoYW0gcGhhdCANCmhpZW4gdHV5IGNvIG5o aWV1IGhvbiBuYW0gdHJ1b2Mgbmh1bmcgdmFuIGNodWEgcGhhbiBhbmggZHVuZyB0aW5oIHRyYW5n IGJ1b24gYmFuLCANCm11YyBkbyBsdXUgdGhvbmcgY3VhIGhhbmcgbmhhcCBsYXUsIGhhbmcgZ2lh IHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8uDQoNClZpZWMgYnVvbiBiYW4gaGFuZyBuaGFwIGxhdSwg bGFtIHZhIGJ1b24gYmFuIGhhbmcgZ2lhIGNodWEgZ2lhbSB2YSB0aWVwIHR1YyBkaWVuIGJpZW4g DQpwaHVjIHRhcC4gTmd1eWVuIG5oYW4gY2h1IHlldSBkbyBsdWMgbHVvbmcgcXVhbiBseSB0aGkg dHJ1b25nIG1vbmcsIHZpZWMgcGhhdCBoaWVuIHZpIA0KcGhhbSB0aG9uZyBxdWEgbmFtIHRpbmgg aGluaCBob2F0IGRvbmcgY3VhIGNhYyBkb2kgdHVvbmcgdHJlbiBkaWEgYmFuIGNvbiBoYW4gY2hl Lg0KVHUgbmF5IGRlbiBUZXQgVGFuIE1hbywgbHVjIGx1b25nIHF1YW4gbHkgdGhpIHRydW9uZyBU UCBIQ00gc2UgZG9uZyBsb2F0IHJhIHF1YW4gDQpraWVtIHRyYSwga2llbSBzb2F0IGhhbmcgaG9h Lg0KDQpPbmcgRGFuZyBEaW5oIER1YywgQ2hpIEN1YyB0cnVvbmcgQ2hpIEN1YyBRdWFuIGx5IHRo aSB0cnVvbmcgVFAgSENNIGNobyBiaWV0OiBDdWMgDQpxdWFuIGx5IHRoaSB0cnVvbmcgdGhhbmgg cGhvIGNhbiBjdSB0aW5oIGhpbmggdGh1YyB0ZSwgbGVuIGtlIGhvYWNoIHRhbmcgY3Vvbmcga2ll bSB0cmEgDQp0aW5oIGhpbmggdHJvbmcgZGlwIHRydW9jLCB0cm9uZyB2YSBzYXUgVGV0IFRhbiBN YW8uIFRoZW8gZG8gdHVuZyBkb2kgdGFuZyBjdW9uZyBjb25nIA0KdGFjIGtpZW0gdHJhLCBraWVt IHNvYXQgaGFuZyBsYXUsIGhhbmcgZ2lhLCBoYW5nIHZpIHBoYW0gdmUgdmUgc2luaCBhbiB0b2Fu IHRodWMgcGhhbSwgDQp0cm9uZyBkbyBjaHUgeSBraWVtIHRyYSB2aWVjIGJpbmggb24gZ2lhIGN1 YSBjYWMgbWF0IGhhbmcuLy4gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDIxMDMyOTg1Nzkv VG9uZ19Db25nX3R5X2NhcF9udW9jX1NhaV9Hb25fTXVhX3BoYWlfZG9uZ19ob19udW9jX2RvbS5o dG1sIDE1LzEyLzIwMTAsIDAxOjE3IENoaWV1IA0KDQpUUCBIQ006IFRDdHkgY2FwIG51b2MgU2Fp IEdvbiBtdWEgZG9uZyBobyBudW9jICJkb20iIC0gTGFuZyBwaGkgaGFuZyB0eSBkb25nIA0KDQpU aGVvIHRob25nIHRpbiBjdWEgY2h1bmcgdG9pLCBkYXUgbmFtIDIwMDQsIENvbmcgdHkgQ2FwIG51 b2MgKG5heSBsYSBUb25nIENvbmcgdHkgDQpDYXAgbnVvYyBTYWkgR29uKSBkYSB0byBjaHVjIGRh dSB0aGF1IG11YSBkb25nIGhvIHRvbmcgKGdvbSBoYWkgbG9haSBBcXVhbWFzdGVyIHZhIA0KQXF1 YXByb2JlKSBsYXAgZGF0IHRhaSA2IGNoaSBuaGFuaC4gVHUgdGhhbmcgMyAtIDYvMjAwNCwgdmll YyBsYXAgZGF0IGNhYyBkb25nIGhvIHRvbmcgZGEgDQpob2FuIHRhdC4gU2F1IGtoaSBsYXAgZGF0 IGtob2FuZyBoYWkgdGhhbmcgdGhpICJzdSBjbyIgYmF0IGRhdSB4YXkgcmEuIA0KDQpNb3Qgc28g ZG9uZyBobyBuZ3VuZyBob2F0IGRvbmcgaGFuLCBtb3Qgc28gZG9uZyBobyBraGFjIGNvIG51b2Mg Y2hheSBxdWEgbmh1bmcgDQpraG9uZyBkbyBkZW0gZHVvYywga2hvYSB2YW4gbnVvYyBkb25nIGhv IHZhbiBob2F0IGRvbmcgaG9hYyBkb25nIGhvIGtob25nIHhhYyBkaW5oIA0KZHVvYyBjaGlldSBk b25nIGNoYXkuLi4gVHJ1b2Mgbmh1bmcgYmlldSBoaWVuIGJhdCB0aHVvbmcgdHJlbiwgQ29uZyB0 eSBDYXAgbnVvYyBkYSANCnBoYW4gYW5oIHZvaSBDb25nIHR5IFdhY28gdmEgZGUgbmdoaSBuaGEg c2FuIHh1YXQgQUJCIGRlbiBUcC4gSG8gQ2hpIE1pbmggdGltIGhpZXUgDQp2dSB2aWVjLiANCg0K VGhhbmcgMy8yMDA1LCBxdWEga2llbSB0cmEgdGh1YyB0ZSB0YWkgbmhpZXUga2h1IHZ1YyBsYXAg ZGF0IGRvbmcgaG8gdG9uZywgZGFpIGRpZW4gaGFuZyANCkFCQiBuaGFuIGRpbmgsIGNhYyBkb25n IGhvIGh1IGhvbmcgbyBjYWMgZGF1IHNlbnNvciBkdW9jIG5oYW4gdGhheSBxdWEgY2FjIGxvcCB0 cmF5IA0KeHVvYyB2YSBrZXQgbHVhbjogIkNhYyBuZ3V5ZW4gbmhhbiBodSBob25nIG5heSBsYSBs b2kgbGFwIGRhdCB2YSBjYWMgcGh1IGtpZW4gbGFwIGRhdCANCmtob25nIGRhbSBiYW8geWV1IGNh dSBreSB0aHVhdCIuIA0KDQpUdXkgbmhpZW4sIHRyZW4gdGh1YyB0ZSBraG9uZyBjaGkgY28gQXF1 YXByb2JlIGJpIHRyYXkgeHVvYyBtb2kgaHUgaG9uZyBtYSBjbyBuaGlldSANCkFxdWFwcm9iZSBr aG9uZyBiaSB0cmF5IHh1b2MgdmFuIGNoYXkgc2FpIGxlY2guIE9uZyBQaGFtIFRyYSAtIFRvbmcg R2lhbSBkb2MgQ29uZyANCnR5IFdhY28gY2hvIHJhbmc6IEFCQiBsYSBtb3QgaGFuZyBjdW5nIGNh cCBkb25nIGhvIG51b2MgbG9uIG5oYXQgdGhlIGdpb2kuIE5ldSBzbyANCmx1b25nIEFxdWFwcm9i ZSBiaSBodSBob25nIGl0IHRoaSBjbyB0aGUgbGEgZG8gbGFwIGRhdC4gVHV5IG5oaWVuLCBzbyBs dW9uZyBBcXVhcHJvYmUgYmkgDQpodSBob25nIHF1YSBuaGlldSB0aGkgY3VuZyBwaGFpIHhlbSBs YWkgY2hhdCBsdW9uZyBkb25nIGhvIG51b2MgY2h1IGtob25nIHRoZSBkbyBsb2kgDQpjaG8gcXVh IHRyaW5oIGxhcCByYXAuIA0KDQpUaGVvIGhvcCBkb25nIHRoaSBDb25nIHR5IFdhY28gY2hpdSB0 cmFjaCBuaGllbSB2aWVjIGh1b25nIGRhbiBsYXAgZGF0IG1hdSBkb25nIGhvLiANClR1eSBuaGll biwgVG9uZyBDb25nIHR5IENhcCBudW9jIFNhaSBHb24gY3VuZyBraGFuZyBkaW5oOiBDbyBtb3Qg c28gQXF1YXByb2JlIGRvIA0KZGFpIGRpZW4gQ29uZyB0eSBXYWNvIHRydWMgdGllcCBsYXAgZGF0 LCBtb3Qgc28gZG9uZyBobyBraGFjIGtoaSBDb25nIHR5IENhcCBudW9jIHRoaSANCmNvbmcgZGV1 IGNvIHN1IGdpYW0gc2F0IGN1YSBXYWNvLCBjbyBiaWVuIGJhbiBuZ2hpZW0gdGh1IHR1IHBoaWEg V2FjbyB4YWMgbmhhbiB2aWVjIA0KbGFwIGRhdCBsYSBkdW5nIHlldSBjYXUga3kgdGh1YXQuIA0K DQpDdW5nIGRlIHhhYyBkaW5oIG5ndXllbiBuaGFuIGh1IGhvbmcgQXF1YXByb2JlIGRlIGNvIGh1 b25nIHh1IGx5LCBUb25nIENvbmcgdHkgDQpDYXAgbnVvYyBTYWkgR29uIGRhIGxpZW4gaGUgdmEg cGhhbiBhbmggdm9pIGhhbmcgc2FuIHh1YXQgQUJCLiBIYW5nIEFCQiBkZSBuZ2hpIA0KVG9uZyBD b25nIHR5IENhcCBudW9jIFNhaSBHb24gZ3VpIDMgbWF1IEFxdWFwcm9iZSBkZSBoYW5nIEFCQiBr aWVtIHRyYS4gVHV5IA0KbmhpZW4sIHRyb25nIHZ1IG5heSBjaHVhIGNvIGtldCBsdWFuIGN1b2kg Y3VuZyBkZSBxdXkgdHJhY2ggbmhpZW0gdGh1b2MgdmUgYWkuIE5odW5nIA0KdHJhY2ggbmhpZW0g dmEgaGF1IHF1YSB0cnVvYyBtYXQgdGhpIGhpZW4gQ29uZyB0eSBDYXAgbnVvYyBkYW5nLi4uIGxh bmggZHUuIA0KDQpOZ29haSBzbyB0YWkgc2FuIHRyaSBnaWEgOCB0eSBkb25nIGRhbmcgImRhcCBj aGlldSIsIFRvbmcgQ29uZyB0eSBDYXAgbnVvYyBTYWkgR29uIA0KY3VuZyBkYSBoYW8gdG9uIHJh dCBuaGlldSB0aG9pIGdpYW4sIGNvbmcgc3VjICh0dSBuYW0gMjAwNCBkZW4gbmF5KSBkZSBsbyBn aWFpIHF1eWV0IHZ1IA0KdmllYyBuYXkuLi4gRGFjIGJpZXQgbGEgdmllYyBraWVtIHNvYXQgbmd1 b24gbnVvYyBwaGFuIGJvIGRpIGNhYyB2dW5nIGtob25nIHRoZSBraWVtIHNvYXQgZHVvYyANCg0K aHR0cDovL25ld3Muc29jYmF5LmNvbS9oYWlfcXVhbl9oYV9ub2lfdmFfdHBoY21fc2FpX3BoYW1f dmVfdGh1ZV9oYW5nX25naGluX3RpX2RvbmctNjAxNTI2Mjg3LTUwMzk3MTg0Lmh0bWwgRHV5IFRo YW5oIC0gIDA4OjUwIDAzLTAzLTIwMDgNCg0KVFAgSENNOiBIYWkgcXVhbiBUUEhDTSB2YSBIYSBO b2kgLSBTYWkgcGhhbSB2ZSB0aHVlIGhhbmcgbmdoaW4gdGkgZG9uZyANCg0KKExEKSAtIENvIHF1 YSBuaGlldSB0b24gdGFpLCBzYWkgcGhhbSwgdGhhbSBjaGkgc2FpIHBoYW0gbmdoaWVtIHRyb25n IHRyb25nIGNvbmcgdGFjIA0KcXVhbiBseSwgdGh1IHRodWUgWE5LIHhheSByYSB0YWkgQ3VjIEhh aSBxdWFuIEhhIE5vaSB2YSBUUC5IbyBDaGkgTWluaC4gVGhhbmggdHJhIA0KQ2hpbmggcGh1IChU VENQKSBkYSBwaGFuIHRpY2ggdmEga2UgcmEgaGFuZyBsb2F0IG5odW5nIHRvbiB0YWksIHNhaSBw aGFtIHZvaSBjb24gc28gbGVuIA0KZGVuIGhhbmcgbmdoaW4gdGkgZG9uZy4gDQoNCk5vIHRodWUg dHJhbiBsYW4uLi4gZGVuIGhhbmcgbmdoaW4gdGkgZG9uZyANCg0KS2V0IGx1YW4gdGhhbmggdHJh IGNobyB0aGF5IGRhIHRvbiB0YWkgbmh1bmcga2hvYW4gInRoaWV1IHNvdCIgbWEgaGF1IHF1YSBs YSB0b25nIHNvIHRodWUgDQpiaSBjaGllbSBkb2F0LCBiaSBkYXkgZHVhIG5vIGRvbmcga2hvLCB0 aGFtIGNoaSBraG9uZyBjbyBraGEgbmFuZyB0aHUgaG9pIGNobyBuZ2FuIA0Kc2FjaCBsZW4gZGVu IGhhbmcgbmdoaW4gdGkgZG9uZy4gDQoNClRpbmggZGVuIG5nYXkgMzEuMTIuMjAwNiwgdGFpIEN1 YyBIUSBUUEhDTSwgbm8gcXVhIGhhbiB0aHVlIGNodXllbiB0aHUgbGEgODI0LDEgdGkgDQpkb25n LCBubyBxdWEgaGFuIHRodWUgdGFtIHRodSBsYSB0cmVuIDEgbmdoaW4gdGkgZG9uZywgdHJvbmcg ZG8gY28gdG9pIDc2NiB0aSBkb25nIHRodW9jIA0KZGllbiBraG8gdGh1IGhvaSB2ZSBjaG8gbmdh biBzYWNoIG5oYSBudW9jLiANCg0KVGFpIEN1YyBIUSBITiwgdGluaCB0cmFuZyB0cmVuIGN1bmcg a2hvbmcga2hhIGhvbjogVG9uZyBubyB0aHVlIHF1YSBoYW4gKGdvbSBjYSANCmNodXllbiB0aHUg dmEgdGFtIHRodSkgbGEgdHJlbiA3MTQgdGkgZG9uZywgdHJvbmcgZG8gY28gNTE5LDQgdGkgZG9u ZyB0aHVvYyBkaWVuIGtobyBjbyANCmtoYSBuYW5nIHRodSBob2kgdmEgNSw3IHRpIGRvbmcgbGEg a2hvbmcgdGhlIHRodSBob2kuLi4gDQoNClRoZW8ga2V0IGx1YW4gY3VhIFRUQ1AgdGhpIHZpZWMg ZGUgeGF5IHJhIG5vIHRodWUgcXVhIGhhbiB0cmVuIGtob25nIGNoaSBnYXkga2hhIG5hbmcgDQp0 aGF0IHRodSBjaG8gbmdhbiBzYWNoLCBtYSBjb24gdmkgcGhhbSBuZ2hpZW0gdHJvbmcgTHVhdCBU aHVlIHh1YXQgbmhhcCBraGF1LiBUaGVvIA0KVFRDUCB0cmFjaCBuaGllbSBjaGluaCB2YW4gdGh1 b2MgQ3VjIEhRIEhOLCBUUEhDTSB2YSBUb25nIGN1YyBIUS4gDQoNCk1vaSBjaGkga2llbSB0cmEg bmdhdSBuaGllbiAxNiBkb2FuaCBuZ2hpZXAgbm8gMzUsOCB0aSB0aWVuIHRodWUga2hvIGNvIGto YSBuYW5nIHRodSBob2kgDQp0YWkgVFBIQ00sIFRUQ1AgZGEgcGhhdCBoaWVuIGNvIHRvaSAyMiw1 IHRpIGRvbmcgKGNoaWVtIDYzJSkgbGEgZG8gQ3VjIEhRIGNvIHRpbmggDQpsYW0gdHJhaSBxdXkg ZGluaCBjdWEgTHVhdCBUaHVlIHh1YXQga2hhdSwgdGh1ZSBuaGFwIGtoYXUuIA0KDQpDdSB0aGUg Y2FjIGRvYW5oIG5naGllcCBuYXkgZGV1IGRhbmcgbm8gdGh1ZSBxdWEgaGFuIHBoYWkgY3Vvbmcg Y2hlLCBuaHVuZyBoYWkgcXVhbiANCnZhbiB0aGFuIG5oaWVuIGNobyBobyBkYW5nIGt5IG1vIHRv IGtoYWkgaGFpIHF1YW4gbW9pLiBOZ29haSByYSwgdmllYyB0aGVvIGRvaSBxdWFuIGx5IA0KdGh1 ZSB0YW0gdGh1IHRhaSBoYWkgZG9uIHZpIHRyZW4gY28gYmlldSBoaWVuIGtob25nIGNoYXAgaGFu aCBuZ2hpZW0gdHVjIGNhYyBxdXkgZGluaCB2ZSANCnRob2kgZ2lhbiBhbiBodWUgdGh1ZS4gDQoN ClRhaSBIYSBOb2kgY2FjIGNvIHF1YW4gSFEgdGhhbSBjaGkgZGEgcXV5ZXQgZGluaCBtaWVuIHBo YXQgY2hhbSBub3AgdGh1ZSBzYWkgcXV5IA0KZGluaCBkb2kgdm9pIDMgQ3R5IGxhIEN0eSBUTkhI IHhlIHZhIG1heSBGLk0uQzsgQ3R5IFROSEggdGh1b25nIG1haSBIb2FuZyANCkNodW5nOyBDdHkg VE5ISCBWaWV0IE5hbSAtIE1hbGF5c2lhIGdheSB0aGlldCBoYWkgY2hvIG5nYW4gc2FjaCB0cmVu IDUgdGkgZG9uZy4gDQoNCkFwIG1hIGhhbmcgc2FpIGdheSB0aGF0IHRodSBuZ2FuIHNhY2ggZ2Fu IDMwMCB0aSBkb25nIA0KDQpWaWVjIGFwIG1hIGhhbmcgaG9hIHRhaSBoYWkgZG9uIHZpIHRyZW4g Y3VuZyBkdW9jIHRpZW4gaGFuaCB0aGlldSB0aG9uZyBuaGF0LCB0dXkgdGllbiANCmRhbiBkZW4g dGhhdCB0aHUgY2hvIG5nYW4gc2FjaCBuaGEgbnVvYyBtb3Qga2hvYW4gdGllbiBkYWMgYmlldCBs b24uIEJhbyBjYW8gY3VhIEhRIA0KVFBIQ00gdmEgbW90IHNvIGNvIHF1YW4gY2h1YyBuYW5nIGNo byB0aGF5IHR1IG5nYXkgMS45LjIwMDMgZGVuIDMxLjMuMjAwNywgVEN0eSANCkNvbmcgbmdoaWVw IFNhaSBHb247IEN0eSBYTksgdGh1b2MgbGE7IFRDdHkgS2hhbmggVmlldCBkYSBuaGFwIGxvIGhh bmcgInZvIHR1dCwgdm8gDQpiYW8gdGh1b2MgbGEiIHZvaSB0b25nIGdpYSB0cmkgaGFuZyBuaGFw IGtoYXUgbGEgOTcuNTk3LjY4OFVTRC4gDQogIA0KVGhlbyBrZXQgbHVhbiBjdWEgVFRDUCB0aGkg bWF0IGhhbmcgbmhhcCBraGF1IHRyZW4gcGhhaSBwaGFuIGxvYWkgdmFvIG1hIDQ4MTkuMjAxMCAN CihjbyB0aHVlIHN1YXQgdXUgZGFpIDMwJSksIG5odW5nIEN1YyBIUSBUUEhDTSB2YSBLaGFuaCBI b2EgbGFpIGNobyBwaGFuIGxvYWkgdmFvIA0KbWEgNDgxMS45MDEwICh0aHVlIHN1YXQgdXUgZGFp IDEwJSkgbGEgc2FpIHF1eSBkaW5oLCBnYXkgdGhhdCB0aHUgY2hvIG5nYW4gc2FjaCBuaGEgbnVv YyAyOTIsNiB0aSBkb25nLiANCg0KTmdvYWkgcmEsIEN1YyBIUSBUUEhDTSBjb24gcmF0IHR1eSB0 aWVuIHRyb25nIHZpZWMgc3UgZHVuZyBrZXQgcXVhIGdpYW0gZGluaCBjdWEgbW90IA0KZG9uIHZp IGtob25nIGNvIGNodWMgbmFuZyB0aGVvIHF1eSBkaW5oIGRlIGFwIG1hIHNvIGhhbmcgaG9hIGNo byBsbyBoYW5nIGRhdSBjbyBjdWEgDQpDdHkgVm9jYXJpbWV4LiBUaGVvIFRUQ1AgdGhpIGxvIGhh bmcgdHJlbiBwaGFpIGFwIG1hIGhhbmcgY28gdGh1ZSBzdWF0IHV1IGRhaSBsYSAzMCUgDQpuaHVu ZyBIUSBhcCBtYSBzYWkgeHVvbmcgY29uIDUlIGdheSB0aGF0IHRodSBjaG8gbmdhbiBzYWNoIHRy ZW4gMzEsNiB0aSBkb25nLiANCg0KVGFpIEhRIEhhIE5vaSwgdmllYyBhcCBtYSBoYW5nIGhvYSBj dW5nIGNvIG5oaWV1IHNhaSBwaGFtIG5naGllbSB0cm9uZy4gS2hvbmcgaGlldSANCnZpIGx5IGRv IGdpIGN1bmcgbW90IGxvYWkgaGFuZyBob2EgbGEgcGh1IHR1bmcsIGxpbmgga2llbiBvdG8sIHhl IG1heSwgbmh1bmcgSFEgSGEgTm9pIA0KbGFpIGFwIHZhbyBuaGlldSBtYSBraGFjIG5oYXUgZ2F5 IHRoYXQgdGh1IGNobyBuZ2FuIHNhY2ggbmhhIG51b2MgbGVuIDEyLDUgdGkgZG9uZy4gVmllYyAN CmFwIG1hIGhhbmcgdGh1YyBwaGFtIGN1bmcgbyB0cm9uZyB0aW5oIHRyYW5nIHR1b25nIHR1LiBU b25nIGNvbmcgdmllYyBIUSBIYSBOb2kgYXAgDQptYSBoYW5nIGhvYSBzYWkgZGEgZ2F5IHRoYXQg dGh1IGNobyBuZ2FuIHNhY2ggdHJlbiA0MCw4IHRpIGRvbmcuIA0KDQpNYXQgdGllbiB0aSB2aSBo b2FuIHRodWUgY2hvIGhhbmcgY28gQy9PIG1hdSBFIGdpYSANCg0KQy9PIG1hdSBFIGRvIFRydW5n IFF1b2MgY2FwIGxhIGdpYXkgY2h1bmcgbmhhbiB4dWF0IHh1IGhhbmcgaG9hIGRlIGR1b2MgaHVv bmcgdGh1ZSANCnN1YXQgbmhhcCBraGF1IHRoYXAgaG9uIHRodWUgc3VhdCB1dSBkYWkgYmluaCB0 aHVvbmcgdmEgdGh1ZSBzdWF0IHRob25nIHRodW9uZyBkb2kgdm9pIA0KaGFuZyBuaGFwIGtoYXUu IA0KDQpUaGVvIGNvbmcgdmFuIHNvIDE3MTYgbmdheSAyNy4zLjIwMDcgY3VhIEJvIFRodW9uZyBt YWkgZ3VpIFRvbmcgY3VjIEhRIHRoaSAidGluaCANCmRlbiBjdW9pIG5hbSAyMDA2LCBjYWMgY28g cXVhbiBjbyB0aGFtIHF1eWVuIGNhcCBDL08gY3VhIFRydW5nIFF1b2MgY2h1YSBjYXAgQy9PIA0K bWF1IEUgbmFvIGNobyBoYW5nIGhvYSB4dWF0IHNhbmcgVmlldCBOYW0gZGUgZHVvYyBodW9uZyB1 dSBkYWkgdGh1ZSBxdWFuLi4uIi4gDQoNClR1eSBuaGllbiwgZGlldSBkYW5nIG5nYWMgbmhpZW4g bGEgdHUgbmdheSAxLjEuMjAwNiBkZW4gMzEuNS4yMDA3LCB0YWkgOCBjaGkgY3VjIEhRIA0KdGh1 b2MgSFFITiBjbyAzNzIgYm8gQy9PIG1hdSBFIGN1YSAzOSBkb2FuaCBuZ2hpZXAuIEtldCBxdWEg dHJ1bmcgY2F1IGdpYW0gZGluaCANCnRhaSBWaWVuIEtob2EgaG9jIGhpbmggc3UgQm8gQ29uZyBh biBjaG8gdGhheSwgY28gMjg4IGJvIGNvIGNvbiBkYXUgQy9PIHNvIHZvaSBtYXUgDQpkYXUgbHV1 IHRhaSBUb25nIGN1YyBIYWkgcXVhbiBsYSBraG9uZyBjdW5nIG1vdCBjb24gZGF1IGRvbmcgcmEu IENvIDg0IGJvIGxhIGRhdSBnaWEgDQpkdW9jIGluIGJhbmcgcGh1b25nIHBoYXAgaW4gbHVvaS4g DQoNClRUQ1Aga2V0IGx1YW4gdG9hbiBibyBzbyBDL08gbWF1IEUgdHJlbiBsYSBnaWEgdmEgY2Fj IGRvYW5oIG5naGllcCBuYXkgY2hpZW0gZG9hdCANCmR1b2MgdHJlbiA1LDEgdGkgZG9uZy4gWGV0 IHRpbmggY2hhdCBuZ2hpZW0gdHJvbmcgY3VhIHZ1IHZpZWMsIFRUQ1AgZGEgcXV5ZXQgZGluaCAN CmNodXllbiBobyBzbyB2dSB2aWVjIHRyZW4gc2FuZyBDbyBxdWFuIENhbmggc2F0IGRpZXUgdHJh IEJvIENvbmcgYW4gZGUgZGF1IHRyYW5oIGxhbSByby4gDQoNClRhaSBUUEhDTSwgdGluaCB0cmFu ZyB0cmVuIGN1bmcgZGllbiBiaWVuIG5naGllbSB0cm9uZy4gUGhhdCBoaWVuIGN1YSB0aGFuaCB0 cmEgY2hvIA0KdGhheSBjaGkgcmllbmcgbmFtIDIwMDYgLSBuYW0gbWEgcGhpYSBUcnVuZyBRdW9j IGNodWEgY2FwIEMvTyBtYXUgRSB0aGkgdGFpIEN1YyBIUSANClRQSENNIGNvIDMzMSB0cnVvbmcg aG9wIG5vcCBobyBzbyBDL08gbWF1IEU7IG5hbSAyMDA3IHRpbmggZGVuIHRob2kgZGllbSB0aGFu aCB0cmEgZGEgY28gdGhlbSAzMDggdHJ1b25nIGhvcC4gDQoNCmh0dHA6Ly93d3cuZGllbmRhbi5l dmEudm4vY2hpLWN1Yy10aHVlLXF1YW4tNy1sYW0tdGh1LXRyZW4tMTAwLXR5LWRvbmctdDE3OTA0 NC5odG1sIHRoZW8gRGF0IFZpZXQgMjEtMDctMjAxMCAwOToyNCBBTSANCg0KVFAgSENNOiBDaGkg Y3VjIHRodWUgcXVhbiA3IGxhbSB0aGF0IHRodSB0cmVuIDEwMCB0eSBkb25nIA0KDQpLZXQgcXVh IGtpZW0gdG9hbiBOaGEgbnVvYyB0YWkgVFAgSENNIGRhIHBoYXQgaGllbiBuaGlldSBzYWkgcGhh bSB0cm9uZyBjb25nIHRhYyANCnF1YW4gbHkgdGh1IHRodWUgY3VhIENoaSBjdWMgdGh1ZSBxdWFu IDcuIFRvbmcgc28gdGllbiBtYSBraWVtIHRvYW4gZGUgbmdoaSBDaGkgY3VjIA0KdGh1ZSBxdWFu IDcgcGhhaSB0cnV5IHRodSBkbyB0aW5oIHNhaSBsZW4gZGVuIDEzNSw4IHR5IGRvbmcuIA0KDQpT YWkgcGhhbSBuZ2hpZW0gdHJvbmcgbmhhdCBsYSB2aWVjIENoaSBjdWMgdGh1ZSBxdWFuIDcgZGEg InRpbmggc2FpIiBzbyB0aWVuIHN1IGR1bmcgZGF0IA0KcGhhaSBub3AgY3VhIG1vdCBzbyBjb25n IHR5IHRodWMgaGllbiBjYWMgZHUgYW4gdmUgbmhhIG8gdHJlbiBkaWEgYmFuIHF1YW4uIFRvIGtp ZW0gdG9hbiANCmRhIGRlIG5naGkgQ2hpIGN1YyB0aHVlIHF1YW4gNyB0cnV5IHRodSB0aWVuIHN1 IGR1bmcgZGF0IGN1YSBDb25nIHR5IFROSEggVGFuIFRydW9uZyANCmxhIDEwNCB0eSBkb25nOyBD b25nIHR5IFROSEggWEQgS0QgbmhhIE5hbSBMb25nIGxhIDIwLDggdHkgZG9uZy4uLg0KDQpUaW5o IHNhaSBnYXAgMTAgbGFuDQoNCk5nYXkgMjYvMTIvMjAwMywgVUJORCBUUCBIQ00gY28gcXV5ZXQg ZGluaCBnaWFvIGNobyBDb25nIHR5IE5hbSBMb25nIHN1IGR1bmcgDQpraHUgZGF0IGRpZW4gdGlj aCAzNC42MzIgbTIgdGFpIHBodW9uZyBUYW4gVGh1YW4gRG9uZywgcXVhbiA3LCBUUCBIQ00gZGUg ZGF1IHR1IHhheSANCmR1bmcga2h1IG5oYSBvIHBodWMgdnUgY2hvIGNhYyBkb2kgdHVvbmcgY28g dGh1IG5oYXAgdGhhcCB2YSB0YWkgZGluaCBjdSBjaG8gZHUgYW4gY2F1IA0KVGFuIFRodWFuIDIg dmEgbW90IHNvIGR1IGFuIGtoYWMgdHJlbiBkaWEgYmFuIHF1YW4gNy4gQ29uZyB0eSBOYW0gTG9u ZyBkdW9jIHBoZXAgDQp4YXkgZHVuZyBjaHVuZyBjdSBjYW8gdGFuZyBjaG8gcGhhbiBkaWVuIHRp Y2ggbGEgOC45NTYsMiBtMi4gVHV5IG5oaWVuLCBraGkgaG9hbiB0aGFuaCANCmR1IGFuLCBDb25n IHR5IGNoaSBiYW4gdmEgYmFuIGdpYW8gY2hvIFVCTkQgcXVhbiA3IGhhaSBsbyBjaHVuZyBjdSB2 b2kgZGllbiB0aWNoIDEuOTAyIA0KbTIgZGUgc3UgZHVuZyBjaG8gdmllYyB0YWkgZGluaCBjdS4g UGhhbiB4YXkgZHVuZyBjaHVuZyBjdSBjb24gbGFpIGNvIGRpZW4gdGljaCA3LjA1NCw0IA0KbTIs IENvbmcgdHkgZHVuZyBkZSBraW5oIGRvYW5oIGJhbiB0aGVvIGdpYSB0aGkgdHJ1b25nIHZhbyBu YW0gMjAwOC4gDQoNClZvaSBwaGFuIGRpZW4gdGljaCBkYXQgeGF5IGR1bmcgY2h1bmcgY3UgZGUg a2luaCBkb2FuaCB0cmVuLCBVQk5EIFRQIEhDTSB5ZXUgY2F1IA0KcGhhaSB0cnV5IHRodSB0aWVu IHRodWUgc3UgZHVuZyBkYXQgY3VhIENvbmcgdHkgTmFtIExvbmcuIFRodWMgaGllbiB5IGtpZW4g Y2hpIGRhbyBjdWEgDQpVQk5EIHRoYW5oIHBobywgQ2hpIGN1YyB0aHVlIHF1YW4gNyB2YSBTbyBU YWkgY2hpbmggeGFjIGRpbmggc28gdGllbiB0aHVlIHN1IGR1bmcgZGF0IA0KbWEgQ29uZyB0eSBO YW0gTG9uZyBwaGFpIG5vcCBsYSBraG9hbmcgaG9uIGJhIHR5IGRvbmcgdmEgZGEgZHVvYyBVQk5E IFRQIEhDTSANCmNoYXAgdGh1YW4uDQoNClR1eSBuaGllbiwgdGhlbyBrZXQgcXVhIGtpZW0gdG9h biBDaGkgY3VjIHRodWUgcXVhbiA3IGN1YSB0byBLaWVtIHRvYW4gc28gMiAoS2llbSB0b2FuIA0K bmhhIG51b2MgVFAgSENNKSwgc28gdGllbiBtYSBDb25nIHR5IE5hbSBMb25nIHBoYWkgZG9uZyBk ZSBkdW9jIGNodXllbiA3LjA1NCw0IA0KbTIgZGF0IHhheSBkdW5nIGNodW5nIGN1IHRhaSBkaW5o IGN1IHNhbmcga2luaCBkb2FuaCBuaGEgbyB2YW8gbmFtIDIwMDggcGhhaSBnYXAgMTAgDQpsYW4g c28gdGllbiBtYSBDaGkgY3VjIHRodWUgcXVhbiA3IHZhIFNvIFRhaSBjaGluaCBkYSB4YWMgZGlu aC4gQ3UgdGhlIGdpYSBkYXQgcGhhaSBub3AgDQpsYSAzLjQwMC4wMDAgZG9uZyBtb3QgbTIgdmEg dG9uZyBzbyB0aWVuIHRodWUgc3UgZHVuZyBkYXQgbWEgQ29uZyB0eSBOYW0gTG9uZyBwaGFpIA0K bm9wIDIzLCA5IHR5IGRvbmcuIA0KDQpUdW9uZyB0dSwgQ29uZyB0eSBUTkhIIFRhbiBUcnVvbmcg ZHVvYyBnaWFvIGhvbiA4NS4wMDAgbTIgZGF0IHRhaSBraHUgdnVjIEdvIE8gDQpNb2kgKHBodW9u ZyBQaHUgVGh1YW4sIHF1YW4gNykgZGUgZGF1IHR1LCB4YXkgZHVuZyB2YSBraW5oIGRvYW5oIGto dSBuaGEgby4gTWF0IGR1IA0Ka2h1IGRhdCBjbyB2aSB0cmkgbWF0IHRpZW4gZHVvbmcgbmh1bmcg a2hpIGFwIGdpYSBkYXQgZGUgdGluaCB0aWVuIHN1IGR1bmcgZGF0LCBDaGkgY3VjIA0KdGh1ZSBx dWFuIDcgbGFpIGFwIGdpYSBsYSBkYXQgaGVtIG5lbiBnYXkgdGhhdCB0aHUgY2hvIG5nYW4gc2Fj aCBOaGEgbnVvYyBob24gMTAwIHR5IA0KZG9uZy4uLg0KDQooQW5oOiBDb25nIHR5IE5hbSBMb25n IHhlIGRhdCBjb25nIHZpZW4gbGFtIGNhdSBsYWMgYm8uIEFuaDogRC5Tb24pIA0KDQpDbyB0aW5o IGhpZXUgc2FpIHF1eSBkaW5oPw0KDQpUaGVvIENoaSBjdWMgdGh1ZSBxdWFuIDcsIGNvIHNvIGRl IHRpbmggdGllbiB0aHVlIGRhdCAidXUgYWkiIGNobyBDb25nIHR5IE5hbSBMb25nIGhvbiANCjIz IHR5IGRvbmcgbGEgZG8gZG9uIHZpIG5heSBkdW9jIG1pZW4gdGllbiB0aHVlIHN1IGR1bmcgZGF0 IGRvaSB2b2kgdG9hbiBibyBkaWVuIHRpY2ggZGF0IA0KeGF5IGR1bmcgY2h1bmcgY3UgY2FvIHRh bmcuIFRoZSBuaHVuZywgdGFpIGNhYyBxdXkgZGluaCBtYSBDdWMgdGh1ZSBxdWFuIDcgZGFuIGNo aWV1IA0KZGUgdGluaCB0aHVlIHRoaSBDb25nIHR5IE5hbSBMb25nIGxhaSBraG9uZyBkdSBkaWV1 IGtpZW4gZGUgZHVvYyBtaWVuIHRodWUuDQoNCkN1IHRoZSwgVGhvbmcgdHUgc28gMTE3LzIwMDQv VFQtQlRDIG5nYXkgNy8xMi8yMDA0IGN1YSBCbyBUYWkgY2hpbmggcXV5IGRpbmg6ICJUbyANCmNo dWMgc3UgZHVuZyBkYXQgZGEgZHVvYyBtaWVuIGdpYW0gdGllbiBzdSBkdW5nIGRhdCB0aGVvIHF1 eSBkaW5oIHRhaSBraG9hbiAxLCAyLCAzLCA0IA0KRGlldSAxMjsga2hvYW4gMSwgMyBEaWV1IDEz IE5naGkgZGluaCBzbyAxOTgvMjAwNC9ORC1DUCwgbmh1bmcgc2F1IGRvIGNodXllbiANCm5odW9u ZyBxdXllbiBzdSBkdW5nIGRhdCB0aGkgcGhhaSBub3AgZHUgdGllbiBzdSBkdW5nIGRhdCBkYSBk dW9jIG1pZW4gaG9hYyBnaWFtIHZhbyANCm5nYW4gc2FjaCBuaGEgbnVvYyB0aGVvIGdpYSBkYXQg dGFpIHRob2kgZGllbSBjaHV5ZW4gbmh1b25nIHF1eWVuIHN1IGR1bmcgZGF0Ii4gDQoNCk1hdCBr aGFjLCB0YWkgQ2hpIHRoaSBzbyA3LzIwMDMvQ1QtVUIgbmdheSAyMy80LzIwMDMgY3VhIFVCTkQg VFAgSENNIGRhIG5ldSBybzogDQoiQ2FjIGR1IGFuIHBoYXQgdHJpZW4gY2FjIGtodSBuaGEgbyBt b2kgcGhhaSBjbyBjbyBjYXUgc3UgZHVuZyB0dSA2MCUgdG9uZyBkaWVuIHRpY2ggDQpkYXQgbyB0 cm8gbGVuIGRlIHhheSBkdW5nIGNodW5nIGN1IGNhbyB0YW5nIHZhIGRhbmggMTUlIHF1eSBuaGEg Y2hvIGRpZW4gYmFuIHRyYSBnb3AsIA0KY2hvIHRodWUgdGhlbyBnaWEgYmFvIHRvYW4gdm9uIHRo aSBtb2kgZHVvYyBodW9uZyBjYWMgZGlldSBraWVuIHV1IGRhaSIuIA0KDQpUdW9uZyB0dSwgZG9p IHZvaSBDb25nIHR5IHRhbiBUcnVvbmcsIENoaSBjdWMgdGh1ZSBxdWFuIDcgY3VuZyBhcCBnaWEg dGluaCB0aHVlIHNhaTogdHUgDQpkYXQgbWF0IHRpZW4gdGhhbmggZGF0IHRyb25nIGhlbTsgdHUg dmllYyBwaGFpIG5vcCBob24gMTE2IHR5IGRvbmcgdGhpIGNvbmcgdHkgVGFuIA0KVHJ1b25nIGNo aSBub3AgdGh1ZSBkYXQgY28gaG9uIDE2IHR5LCBsYW0gbmdhbiBzYWNoIHRoYXQgdGh1IGhvbiAx MDAgdHkgZG9uZy4NCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDA2 LzEyLzNCOUYxNjE5Lw0KDQpUUCBIQ006IERvYW5oIG5naGllcCBjaGkgdGllbiBjaG8gYmkgdGh1 IHF1YW4gZGkgJ3F1YSBkZW0nIA0KDQpodHRwOi8vd3d3LmRpYW9jb25saW5lLnZuL3RpbmNoaXRp ZXQvMTYvMTU5NTYvbGFuZy1waGktbG9uLS0vIDAxLzA5LzIwMDkgMDg6NDANCg0KVFAgSENNOiBU dXkgdGllbiB0aGF5IGRvaSBodW9uZyBkdW9uZyBkdSBhbiBUYW4gU29uIE5oYXQgLSBCaW5oIExv aSAtIFZhbmggZGFpIG5nb2FpOiBMYW5nIHBoaSBsb24hIA0KDQpodHRwOi8vdm5leHByZXNzLm5l dC9HTC9LaW5oLWRvYW5oLzIwMTAvMDEvM0JBMTdFMzcvIDE5LzEvMjAxMCwgMTA6MzkgR01UKzcN Cg0KVFAgSENNOiBMYW5nIHBoaSBuaGlldSBkYXQgZ2l1YSB0cnVuZyB0YW0gU2FpIEdvbiANCg0K aHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMTIvM0JBMjREQjgvIFZpbmggUGh1 IDMxLzEyLzIwMTAsIDExOjE1IEdNVCs3IA0KDQpUUCBIQ006IEhhbSBjaHVpIDYwIHR5IGRvbmcg dGhhbmggbm9pIGRhIGJvbmcgDQoNClJhYywgbnVvYyBuZ2FwIGxlbmggbGFuZywgdGhhbmggbmll biBkYSBib25nIG5nYXkgdHJvbmcgaGFtLi4uIGxhIG5odW5nIGhpbmggYW5oIG8gaGFtIA0KY2h1 aSBMaW5oIFh1YW4gKHF1YW4gVGh1IER1YywgVFAgSENNKSAtIGNvbmcgdHJpbmggZHVvYyBkYXUg dHUgaG9uIDYwIHR5IGRvbmcgbmhhbSANCmdpYWkgcXV5ZXQga2V0IHhlIHZhIHRhaSBuYW4uDQoN ClJhYywgbnVvYyBuZ2FwIGxlbmggbGFuZywgdGhhbmggbmllbiBkYSBib25nIG5nYXkgdHJvbmcg aGFtLi4uIGxhIG5odW5nIGhpbmggYW5oIG8gaGFtIA0KY2h1aSBMaW5oIFh1YW4gKHF1YW4gVGh1 IER1YywgVFAgSENNKSAtIGNvbmcgdHJpbmggZHVvYyBkYXUgdHUgaG9uIDYwIHR5IGRvbmcgbmhh bSANCmdpYWkgcXV5ZXQga2V0IHhlIHZhIHRhaSBuYW4uDQoNCihBbmg6IEhhbSBjaHVpIExpbmgg WHVhbiBub2kgcGh1b25nIExpbmggWHVhbiB2b2kgcGh1b25nIExpbmggVHJ1bmcgKFRodSBEdWMp IA0KdnVhIHRob25nIHhlIG5nYXkgMjYvMTIuIENvbmcgdHJpbmggZHVvYyBkYXUgdHUgaG9uIDYw IHR5IGRvbmcgbmhhbSBnaWFpIHRvYSBkaWVtIGRlbiANCnZlIGtldCB4ZSB2YSB0YWkgbmFuIGdp YW8gdGhvbmcgdHJ1b2MgS2h1IGNoZSB4dWF0IExpbmggVHJ1bmcuKQ0KDQooQW5oOiBIYW0gZGFp IDM4IG1ldCwgcm9uZyBnYW4gMzAgbWV0IHZvaSBoYWkgY2hpZXUgZGkgZGFuaCBjaG8geGUgbWF5 LCBvdG8gbmhvIHZhIG5ndW9pIGRpIGJvIG5odW5nIGhhdSBuaHUgdmFuZyBib25nIG5ndW9pIHF1 YSBsYWkuKSANCg0KKEFuaDogUGhhbiBkdW9uZyBkYW4gaHVvbmcgdHUgS2h1IGNoZSB4dWF0IExp bmggVHJ1bmcgcm9uZyB0aGVuaCB0aGFuZy4uLikNCg0KKEFuaDouLi4gbmVuIGNoaWV1IHRvaSwg bm9pIGRheSB0aHVvbmcgdHJvIHRoYW5oIGJhaSBkYXUgbHkgdHVvbmcgY3VhIG1vdCBzbyB4ZSB0 YXhpLikNCg0KKEFuaDogVHJvbmcga2hpIGRvLCB0cmVuIHF1b2MgbG8gMUEgcGhpYSB0cnVvYyBL aHUgY2hlIHh1YXQgTGluaCBUcnVuZyBsdW9uIHRhcCBuYXAgeGUgY28uIFZhbyBnaW8gdGFuIHRh bSBoYW5nIG5naGluIGNvbmcgbmhhbiB1YSByYSBjdW5nIGx1YyBraGllbiBudXQgZ2lhbyB0aG9u ZyBuYXkgdHJvIG5lbiBxdWEgdGFpLikNCg0KKEFuaDogQ29uIG8gcGhpYSBkdW9pIGhhbSBjaHVp LCBkbyB2YW5nIG5ndW9pIHF1YSBsYWkgbmVuIGNhYyBraHUgdnVjIHRyb25nIHZhIG5nb2FpIGhh bSBkYSB0cm8gdGhhbmggbm9pIGRhIGJvbmcsIGRhIGNhdSwgdnVpIGNob2kgY3VhIG5oaWV1IHRo YW5oIHRoaWV1IG5pZW4uLi4pDQoNCihBbmg6Li4uIHZhIHJhYyB0aGFpIGJpIHZ1dCBsYWkgdHJl biB2aWEgaGUuKQ0KDQooQW5oOiBDaGF0IGx1b25nIGNvbmcgdHJpbmggdHJpIGdpYSBob24gNjAg dHkgZG9uZyBuYXkgY3VuZyBsYSBkaWV1IGRhbmcgYmFuLikNCg0KKEFuaDogQ2hpIGNhbiBtb3Qg Y29uIG11YSBuaG8gY3VuZyBraGllbiBudW9jIG5nYXAgbGVuaCBsYW5nIGJlbiB0cm9uZyBoYW0s IHNhdSBuaGlldSBnaW8gbW9pIHJ1dCBoZXQuKQ0KDQooQW5oOiBWYSBub2kgZGF5IGhpZW4gdHJv IHRoYW5oIGNobyBob3AgY2hvIGN1YSBuaHVuZyBuZ3VvaSBidW9uIGJhbiB0cmFpIGNheS4pIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDgvMjAxMDExMjIw MTAxMzUuYXNweCBOLlRyYW4gVGFtIDIyLzExLzIwMTAgMTowMSANCg0KVFAgSENNOiBMYW5nIHBo aSB2aSBjYWNoIGxhbSB2aWVjIHRoaWV1IGtob2EgaG9jDQogIA0KTmFtIDIwMDkgVFAuSENNIGNo aSBnYW4gMiw3IHRpIGRvbmcgdHJpZW4ga2hhaSBjaHVvbmcgdHJpbmggYmluaCBjaG9uIDEwMCBk aWV1IHRodSB2aSANCnZhIGtldCBxdWEgZHVvYyBjb25nIGJvIGhvaSBkYXUgbmFtIG5heS4gVHV5 IG5oaWVuIGtlIHR1IGRvLCBjaHVvbmcgdHJpbmggImFuIGJpbmggYmF0IA0KZG9uZyIsIHRyb25n IGtoaSBtdW9uIGhpZXUgcXVhIHRoaSBwaGFpIHRpZXAgdHVjIHF1YW5nIGJhLiANCg0KVFAuSENN IC0gMTAwIGRpZXUgdGh1IHZpIGR1b2MgdG8gY2h1YyBiaW5oIGNob24gdmFvIHRoYW5nIDEwLjIw MDkgZGUgdGltIHJhIDEwIGtoYWNoIA0Kc2FuLCAxMCBuaGEgaGFuZywgMTAgaGFuZyB2YW4gY2h1 eWVuLCAxMCBtb24gYW4gVmlldCwgMTAgZGFjIHNhbiwgMTAgZGllbSB0aGFtIHF1YW4sIA0KMTAg ZGllbSBtdWEgc2FtLCAxMCBjaHVvbmcgdHJpbmggdG91ciwgMTAgZGllbSBnaWFpIHRyaSwgMTAg c3Uga2llbiB2YW4gaG9hIHRoZSB0aGFvIC0gZHUgDQpsaWNoIGRhaSBraGFpIGxhIHRpZXUgYmll dSwgdGh1IHZpLCBkYWMgc2FjLi4uIGRvaSB2b2kga2hhY2ggbm9pIGRpYSB2YSBxdW9jIHRlLg0K DQpUaG9pIGRpZW0gZG8sIG5oaWV1IGhhbmcgbHUgaGFuaCBraG9uZyBtYW4gbWEgdGhhbSBnaWEg Y2h1b25nIHRyaW5oLCB2aSB0aGVvIGhvLCBjYWNoIA0KdGh1YyBiaW5oIGNob24ga2hvbmcga2hv YSBob2MuIENoYW5nIGhhbiwgZHUga2hhY2ggcXVvYyB0ZSBkZW4gVFAuSENNIHRodW9uZyBsdXUg DQpsYWkgdHJvbmcgaGFpIGRlbSwgeG9uZyBzZSBkaSBjaHV5ZW4gZGVuIGNhYyBkaWVtIHRoYW0g cXVhbiBraGFjIGhvYWMgcXVhIENhbXB1Y2hpYSwgDQpuZW4gaG8ga2hvbmcgY28gZHUgdGhvaSBn aWFuIGNobyBzdSB0cmFpIG5naGllbSBkZSBkYW5oIGdpYSBkYXUgbGEgaGFuZyB2YW4gY2h1eWVu IHRvdCANCm5oYXQsIGRhdSBsYSBraGFjaCBzYW4gdG90IG5oYXQuLi4gQ2hvIG5lbiwgaG8gc2Ug YmF1IGNob24gY2hvIGtoYWNoIHNhbiBobyBkYW5nIG8sIG5oYSANCmhhbmcgaG8gZGFuZyBhbiwg aGFuZyB2YW4gY2h1eWVuIGhvIGRhbmcgZGksIGNodW9uZyB0cmluaCB0b3VyIGhvIGRhbmcgdGh1 b25nIHRodWMuIFZpIA0KdGhlLCBraG9uZyBjbyBzdSBraGFjaCBxdWFuLg0KDQpUdXkgbmhpZW4s IGJhbiB0byBjaHVjIHZhbiB0cmllbiBraGFpIGNodW9uZyB0cmluaCB2YSBjb25nIGJvIGtldCBx dWEgYmluaCBjaG9uIHZhbyANCnRoYW5nIDIuMjAxMC4gQ3VuZyBjYW4gbmhhYyBsYWkgcmFuZywg a2luaCBwaGkgdGh1YyBoaWVuIGNodW9uZyB0cmluaCAxMDAgZGlldSB0aHUgdmkgbGEgDQoyLDcg dGkgZG9uZyBkdW9jIHRyaWNoIHR1IG5ndW9uIGRhbmggY2hvIHh1YyB0aWVuIHF1YW5nIGJhIGR1 IGxpY2ggdmEgbmdhbiBzYWNoIGN1YSANClRQLkhDTSBjb25nIHZvaSB4YSBob2kgaG9hLg0KDQpL ZSBob2FjaCBkdW9jIGJhbiB0byBjaHVjIGR1YSByYSBkZSBxdWFuZyBiYSBjaG8gMTAwIGRpZXUg dGh1IHZpIGxhIGhvcCB0YWMgdm9pIGNhYyANCmhhbmcgaGFuZyBraG9uZyBxdW9jIHRlIGNvIGR1 b25nIGJheSBkZW4gVFAuSENNIGNoaWV1IG5odW5nIGRvYW4gcGhpbSAxMDAgZGlldSANCnRodSB2 aTsgY2hpZXUgaGluaCBhbmggdHJlbiBjYWMgbWFuIGhpbmggY28gZGluaCBvIHNhbiBiYXkgVGFu IFNvbiBOaGF0IHZhIG5oaWV1IGRpZW0gDQp0aGFtIHF1YW4gdHJvbmcgdGhhbmggcGhvOyBxdWFu ZyBiYSAxMDAgZGlldSB0aHUgdmkgdHJlbiBhcC1waGljaCwgdG8gcm9pLCBidXUgdGhpZXAsIA0K dHJhbmcgd2ViLCBzYWNoIGh1b25nIGRhbjsgY2hlcCBub2kgZHVuZyAxMDAgZGlldSB0aHUgdmkg dmFvIDIuMDAwIFVTQiBndWkgZGVuIGNhYyANCmhhbmcgbHUgaGFuaCBvIG5odW5nIHRoaSB0cnVv bmcgbnVvYyBuZ29haSB0cm9uZyBkaWVtIGN1YSBkdSBsaWNoIFZpZXQgTmFtLi4uDQoNCk5odW5n IGtlIHR1IGtoaSBjb25nIGJvIGRlbiBuYXksIDEwMCBkaWV1IHRodSB2aSByb2kgdmFvIHF1ZW4g bGFuZy4gVmllYyBjaGlldSB2aWRlbyANCmNsaXAgMyw1IHBodXQgZ2lvaSB0aGlldSAxMDAgZGll dSB0aHUgdmkgdHJlbiBjYWMgY2h1eWVuIGJheSBxdW9jIHRlIHRvaSBUUC5IQ00gLSB0aGVvIA0K ZGFpIGRpZW4gY2FjIGhhbmcgaGFuZyBraG9uZyBxdW9jIHRlIG8gVk4gLSByYXQga2hvIHRodWMg aGllbiB2aSBobyBwaHUgdGh1b2MgcmF0IG5oaWV1IA0KdmFvIGNvbmcgdHkgbWUgbyBudW9jIG5n b2FpLiBUaGFtIGNoaSwgbmdheSBjYSBob3AgdGFjIHZvaSBWaWV0bmFtIEFpcmxpbmVzIGN1bmcg DQpraG9uZyB0aGFuaCBjb25nLiBDb24gd2Vic2l0ZSBjdWEgY2h1b25nIHRyaW5oICh3d3cuaGNt YzEwMGUuaW5mbykgY2hvIHRvaSBuYXkgdmFuIHJhdCBzbyBzYWkuDQoNCkR1IGxpY2ggdGhlIGdp b2kgcGh1YyBob2kgbWFuaCBtZSBzYXUga2h1bmcgaG9hbmcsIGNvIHRoZSB0aGF5IHZvaSBjYWNo IGxhbSBuaHUgdmF5LCANCmNodW5nIHRhIGRhIGxhbmcgcGhpIGNvIGhvaS4gU28gdGllbiAyLDcg dGkgZG9uZyBjdWEgTmhhIG51b2MgdmEgbW90IGtob2FuIGxvbiBraW5oIHBoaSANCnhhIGhvaSBo b2EgY3VhIGRvYW5oIG5naGllcCBraG9uZyBkdW9jIHN1IGR1bmcgZHVuZyBtdWMgZGljaCB2YSBr aG9uZyBtYW5nIGxhaSBoaWV1IHF1YSBsYSBsYW5nIHBoaSB0aHUgaGFpLiANCg0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL3hhaG9pL3BoYXBsdWF0LzIwMDkvMDgvODY1MTQ2LyAyMToyNiwgMjQv MDgvMjAwOSAoR01UKzcpDQoNClRQLkhDTTogTW90IGNhbmggc2F0IGJpIGJhdCBraGkuLi4gY3Vv cCBnaWF0IHRyZW4gcGhvDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2Vz LzIwMTA0Ni8yMDEwMTExMjAxMzI1Ny5hc3B4IEIuVGhhbmggMTIvMTEvMjAxMCAxOjMyIA0KDQpU UCBIQ006IDE4IHF1YW4sIGh1eWVuIGNhbiB4YXkgZHVuZyB2YSBjYWkgdGFvIGxhaSB0cnVvbmcg bWFtIG5vbiwgOTQgdHJ1b25nIG1hbSBub24gZGEgYmkgeHVvbmcgY2FwLiANCg0KaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9Ib21lL3BoYXBsdWF0LzIwMDcvMTEvNjM5NzAubGFvZG9uZyA4OjM0 QU0sIDEyLzExLzIwMDcNCg0KVFAuSENNOiBEaSBsYW0gY2h1bmcgY29uZyBhbiBkYW5oIGRhbiwg bmhhIGJhbyBiaSBoYW5oIGh1bmcgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9DaHUtdGlj aC1udW9jLU5ndXllbi1NaW5oLVRyaWV0LXRpZXAteHVjLWN1LXRyaS1DaGluaC10b2ktY29uLWJp LXRodS10dWMtaGFuaC80MDIzMDc3NC8xNTcvIExFIEFOSCBEVSAyNC8xMS8yMDA3LCAwNzozNyBH TVQrNw0KDQpUUCBIQ006IFRodSB0dWMgaGFuaCBjaGluaCBjb24gcXVhIG5oaWV1IGJhdCBob3Ag bHksIGxhbSBuZ3VvaSBraG8gZGFuIA0KDQpPbmcgQ2h1IHRpY2ggbnVvYyBOZ3V5ZW4gTWluaCBU cmlldCB0aWVwIHh1YyBjdSB0cmk6IA0KDQorIERlIG5naGkgdGhhbmggdHJhIHRvYW4gZGllbiBk dSBhbiBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0NCg0KVHJ1b2Mgbmh1bmcgYnVjIHh1YyBjdWEg bmhpZXUgbmd1b2kgZGFuIHF1YW4gMiB0YWkgYnVvaSB0aWVwIHh1YyBkYWkgYmlldSBRdW9jIGhv aSBjaGlldSAyMy0xMSwgDQpDaHUgdGljaCBudW9jIE5ndXllbiBNaW5oIFRyaWV0IHF1YSBxdXll dDoNCg0KIlRvaSBzZSB0cnVjIHRpZXAgcGhhbiBhbmggdmEgZGUgbmdoaSBUaHUgdHVvbmcgQ2hp bmggcGh1IGNobyBsYXAgZG9hbiB0aGFuaCB0cmEgdG9uZyANCmhvcCBkdSBtYW5oIHZhbyB0aGFu aCB0cmEgdG9hbiBkaWVuIGR1IGFuIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSB0dSBxdWkgaG9h Y2gsIHF1YW4gDQpseSwgc3UgZHVuZyBkYXQuLi4gZGVuIDE2MGhhIGRhdCB0YWkgZGluaCBjdSBt YSBjdSB0cmkgcXVhbiAyIGRhbmcgdGhhYyBtYWMiLg0KDQpUcnVvYyBkbywgbW90IGxhbmggZGFv IFRoYW5oIHRyYSBDaGluaCBwaHUgY3VuZyBjaG8gYmlldCBzZSBkZSBuZ2hpIFRodSB0dW9uZyBj aG8gDQp0aGFuaCB0cmEgdG9hbiBkaWVuIHZpZWMgcXVhbiBseSwgc3UgZHVuZyBkYXQgdHJlbiBk aWEgYmFuIHF1YW4gMiwgdHJvbmcgZG8gY28gZHUgYW4ga2h1IA0KZG8gdGhpIG1vaSBUaHUgVGhp ZW0uICJWaWVjIG5hbyBkdW5nIGNhbiBwaGFpIGR1b2Mga2V0IGx1YW4sIHVuZyBobyBUUCB0aWVw IHR1YyBsYW0sIA0KY2hvIG5hbyBzYWkgY3VuZyBjYW4gcGhhaSBraGFuZyBkaW5oIGRlIGNoYW4g Y2hpbmgsIGtoYWMgcGh1YyIgLSB2aSBsYW5oIGRhbyBuYXkgbm9pLg0KDQpUcm9uZyBsdWMgY2hv IHN1IGdpYWkgcXV5ZXQgY3VhIGNhYyBjbyBxdWFuIGNodWMgbmFuZywgQ2h1IHRpY2ggbnVvYyBk ZSBuZ2hpIG5ndW9pIGRhbiANCmJpIGFuaCBodW9uZyBjdWEgZHUgYW4gVGh1IFRoaWVtIGNhbiBo ZXQgc3VjIGJpbmggdGluaC4gU3UgdW5nIGhvIGN1YSBDaHUgdGljaCBudW9jIA0KZHVvYyBjdSB0 cmkgcXVhbiAyIG5oaWV0IGxpZXQgZG9uZyB0aW5oLiBUdXkgbmhpZW4sIHRoZW8gY3UgdHJpLCBk b2FuIHRoYW5oIHRyYSBuZXUgdmFvLCBjYW4gDQp0aGlldCBwaGFpIHRpZXAgeHVjIHZvaSBuZ3Vv aSBkYW4gZGUgbmFtIHRob25nIHRpbiBkdW9jIGRheSBkdSBob24uIFRydW9jIGRvLCBraGkgbmV1 IHkgDQpraWVuLCBjdSB0cmkga2hvbmcgZG9uZyB0aW5oIHZvaSBjYWNoIGdpYWkgdGhpY2ggY3Vh IFVCTkQgVFAgdGFpIHZhbiBiYW4gNzM5MyBuZ2F5IDMxLQ0KMTAtMjAwNyBndWkgVGh1IHR1b25n IENoaW5oIHBodSBiYW8gY2FvIHZpZWMgdGh1YyBoaWVuIHF1aSBob2FjaCBkYXUgdHUga2h1IGRv IHRoaSANCm1vaSBUaHUgVGhpZW0uDQoNCkN1IHRyaSBjaG8gcmFuZyBjb24gbmhpZXUgZGlldSBr aHVhdCB0YXQgcGhpYSBzYXUgZHUgYW4gbmF5IGNhbiBwaGFpIGR1b2MgbGFtIHJvLiBDdSB0cmkg DQpjdW5nIGtob25nIGJhbmcgbG9uZyB2b2kgY2hpIGRhbyBtb2kgZGF5IGN1YSBiaSB0aHUgVGhh bmggdXkgVFAuSENNIHJhbmcgImtoYW4gDQp0cnVvbmcgY2h1YW4gYmkgZGF5IGR1IHF1aSBkYXQg dGFpIGRpbmggY3UgdHJvbmcgcGhhbSB2aSBuYW0gcGh1b25nIGRlIHhheSBkdW5nIA0KMTIuNTU1 IGNhbiBobyBjaHVuZyBjdSBkYXAgdW5nIHlldSBjYXUgdGFpIGRpbmggY3UgY2hvIG5ndW9pIGRh biB0cm9uZyBkdSBhbiIsIHZpIHRoZW8gDQpjdSB0cmksIGtob25nIHRoZSBkb24gcXVhIG5oaWV1 IG5ndW9pIHZhbyBjaHVuZyBjdS4NCg0KU2FuZyBjdW5nIG5nYXksIGN1IHRyaSBxdWFuIDEgbW90 IGxhbiBudWEgYnVjIHh1YyB0cnVvYyB0aW5oIHRyYW5nIHF1aSBob2FjaCAidHJlbyIgZGFuIA0K ZGVuICJ0cmVvIiBjYSBjdW9jIHNvbmcgbmd1b2kgZGFuLiAiS2hpIG5hbyBjbyBuZ3VvaSB5ZXUg dGhpIGhheSB0aW5oIGRlbiBjaHV5ZW4gY3VvaSANCnZvIiwgY3UgdHJpIHZpIHZvbiBuaHUgdmF5 IGRlIGRlIG5naGkgY2hpbmggcXV5ZW4ga2hpIG5hbyBjbyB0aWVuLCBraGkgbmFvIHRpbSBkdW9j IGRvaSANCnRhYyB4YXkgZHVuZyB0aGkgaGF5IHF1aSBob2FjaCBnaWFpIHRvYSwgY2h1IGR1bmcg a2hvYW5oIHZ1bmcgZGUgZG8gcmF0IGtobyBjaG8gZGFuLiANCiJRdWkgaG9hY2ggdHJlbyBoaWVu IG5heSBnaW9uZyBuaHUgYmF0IG5ndW9pIHRhIG5ob3QgdmFvIHRodW5nIHBodXksIGxhdSBsYXUg ZGkgbmdhbmcgDQpnbyBtYXkgY2FpIiAtIGN1IHRyaSBzbyBzYW5oLg0KDQpMaWVuIHF1YW4gZGVu IHRodSB0dWMgaGFuaCBjaGluaCwgbW90IGN1IHRyaSBjaG8gYmlldDogIkNvIGN1IGJhIGhvbiA3 MCB0dW9pLCBzYXUga2hpIA0KY2hvbmcgY2hldCBkdW9jIG1vdCBuYW0gdGhpIG1vaSB0aWVuIGhh bmggbGFtIGdpYXkgdG8gbmhhIGRhdC4gTGVuIHF1YW4sIGNhbiBibyB5ZXUgDQpjYXUgcGhhaSBi byB0dWMgZ2lheSBjaHVuZyB0dS4gU2F1IGtoaSBub3AgZ2lheSBjaHVuZyB0dSB0aGkgY2FuIGJv IHlldSBjYXUgYm8gc3VuZyBnaWF5IA0KeGFjIG5oYW4gZG9jIHRoYW4iLiBDYSBob2kgdHJ1b25n IGtob25nIGFpIG5pbiBkdW9jIGN1b2kuIENodSB0aWNoIG51b2MgY2hpYSBzZTogIlRodSANCnR1 YyBjb24gbGFtIG5oaWV1IGtoZSwgY2hpbmggdG9pIGNvbiBiaSB0aHUgdHVjIGhhbmgiLiBUaGVv IENodSB0aWNoIG51b2MsIGNvbiBxdWEgbmhpZXUgDQpxdWkgZGluaCBiYXQgaG9wIGx5LCB0dW9u ZyByYW5nIHF1aSBkaW5oIGNoaSB0aWV0IHRoaSBiYW8gdmUgY2hvIG5ndW9pIGRhbiBuaHVuZyB0 aHVjIGNoYXQgbGEgbGFtIGtobyBuZ3VvaSBkYW4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vbmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMTgwMTEzMTAuYXNweCBUaGFuaCBUdW5nIDE4 LzEwLzIwMTAgMToxMyANCg0KVFAgSENNOiBEdW9uZyBkYXkgbGF5IHhhYyBvIGJlbmggdmllbj8g LSBUaHUgdHVjICJoYW5oIGNoaW5oIiAgDQogIA0KR2lhIGRpbmggbW90IFZpZXQga2lldSBDYW5h ZGEgcmF0IGJ1YyB4dWMgY2hvIHJhbmcgaG8gYmkgZ29pIHkgY2hpIDYuNTAwIFVTRCBkZSBsYXkg DQp4YWMgbmd1b2kgdGhhbiB0dSB2b25nIHRhaSBiZW5oIHZpZW4sIGtoaSBraG9uZyBkYXAgdW5n IHRoaSBiaSBsYW0ga2hvLi4uIA0KDQpHb2kgeSB0cmFuZyB0cm9uIQ0KDQpEZW0gOC45LCBvbmcg SC5ULk4gKHNpbmggbmFtIDE5NTMsIFZpZXQga2lldSBDYW5hZGEsIHRhbSB0cnUgUS40LCBUUC5I Q00pIGxlbiBjb24gDQpuaG9pIG1hdSBjbyB0aW0sIGR1b2MgZHVhIHZhbyBjYXAgY3V1IG8gbW90 IGJlbmggdmllbiAoQlYpIHRhaSBRLjIuIEJhYyBzaSB4YWMgZGluaCANCm9uZyBILlQuTiB0dSB2 b25nIHRydW9jIGtoaSB2YW8gdmllbi4gDQoNClRoZW8gcGhhbiBhbmggY3VhIGdpYSBkaW5oIG9u ZyBOLiwgbmdheSBzYXUga2hpIG9uZyBOLiB0dSB2b25nLCBjbyBtb3QgY2FuIGJvIENvbmcgYW4g DQpRLjIsIHRlbiBELiwgdmFvIGxhbSB2aWVjIHZvaSBCViB2YSBjbyBob2kgcXVhIGdpYSBkaW5o IHZlIHRpZW4gc3UgYmVuaCBjdWEgb25nIE4uIE9uZyANCkQuIGJhbyB2b2kgbmd1b2kgbmhhIG9u ZyBOLiBjaG8gY2hvIHhhYyBxdWEgQlYgUS43LCBxdWEgZG8gc2UgY28gbmd1b2kgaHVvbmcgZGFu IGRheSANCmR1IHZlIHRodSB0dWMgdHJpbmggYmFvIHZhIGxhbSBjYWMgYnVvYyB0aWVwIHRoZW8g ZG9pIHZvaSBuZ3VvaSBudW9jIG5nb2FpIG1hdCB0YWkgVk4uLi4NCg0KU2F1IGRvLCBtb3QgY2hp ZWMgeGUgZHVvYyBkaWV1IHRvaSB0dSBiZW4gbmdvYWkgKGtob25nIHBoYWkgeGUgQlYpIGRlIGNo byB4YWMgb25nIE4uIA0KZGVuIEJWIFEuNywgZGkgdGhlbyB4ZSBjb24gY28gaGFpIG5ndW9pIGRh biBvbmcuIEhhaSBuZ3VvaSBuYXkgZGF0IHZhbiBkZSB2ZSB2aWVjIGxhbSANCnRodSB0dWMgdHJv biBnb2kgZGUgbGF5IHhhYyBvbmcgTi4gcmEgdm9pIDMgbXVjIGdpYTogNC41MDAgLSA1LjUwMCAt IDYuNTAwIFVTRCAoa2hvbmcgDQpiYW8gZ29tIHRpZW4gZGF0IG1vKSB2YSBraGFuZyBkaW5oICJ0 cm9uZyBtb3QgbmdheSBsYSB4b25nIHRhdCIuLi4NCg0KQmFuIGRhdSwgY29uIGdhaSBvbmcgTi4g byBudW9jIG5nb2FpIGdvaSB2ZSBkb25nIHkgdm9pIGdpYSA2LjUwMCBVU0QsIG5odW5nIHNhdSBk byANCnBoaWEgZ2lhIGRpbmggb25nIGJhbiBiYWMgdmEga2hvbmcgY2hhcCBuaGFuIHZpZWMgbG8g ZGljaCB2dSB2b2kgbW90IGNhaSBnaWEgcXVhIGNhbyANCm5odSB0aGUuICJDbyBsZSB2aSBjaHVu ZyB0b2kga2hvbmcgY2hhcCB0aHVhbiBkaWNoIHZ1IGxheSB4YWMgZHVvYyB0aW5oIGJhbmcgVVNE IGNhbyANCmNob3Qgdm90IGRvLCBuZW4gc2F1IGRvIGRhIGJpIGdheSBraG8ga2hhbiwga2VvIGRh aSB0aG9pIGdpYW4gZHVvYyBuaGFuIHhhYyIsIG5ndW9pIHRoYW4gDQpvbmcgTi4gdHJpbmggYmF5 IHZvaSBUaGFuaCBOaWVuLg0KDQpCaSBsYW0ga2hvPw0KDQpUaGVvIG5oaWV1IGJhYyBzaSBsYW0g bGF1IG5hbSBvIGtob2EgY2FwIGN1dSBjYWMgQlYsIHZvaSBuaHVuZyB0cnVvbmcgaG9wIHR1IHZv bmcgDQpraG9uZyBybyBuZ3V5ZW4gbmhhbiwgY28gbmdoaSBuZ28sIHRoaSBjbyBxdWFuIGNvbmcg YW4gc2UgdGh1IGx5LCBsYW0gcm8uIFR1eSBuaGllbiwgDQp0aHVvbmcgbGEgZ2lhaSBxdXlldCBu Z2F5IHRyb25nIG5nYXkgKGtlIGNhIGNvIGdpYWkgcGhhdSB0dSB0aGkpLCBjaHUga2hvbmcgZGUg a2VvIGRhaS4uLiANCg0KR2lhIGRpbmggb25nIE4uIGNobyByYW5nIG9uZyBELiBraG9uZyB0YW4g dGluaCBodW9uZyBkYW4gcm8gcmFuZyB2ZSB0aHUgdHVjIGRlIG5oYW4gDQp4YWMsIG1hIGNvIHRp bmggbGFtIGtlbyBkYWkgdGhvaSBnaWFuLCBkYW4gZGVuICB2aWVjIG9uZyBOLiBtYXQgbmdheSA4 Ljkgbmh1bmcgbWFpIGRlbiANCmRlbSAxMy45IGdpYSBkaW5oIG1vaSBkdWEgZHVvYyB4YWMgb25n IHZlIGRlIG1haSB0YW5nLiANCg0KIlNhdSBraGkgY2h1bmcgdG9pIGtob25nIGRvbmcgeSBsYW0g ZGljaCB2dSA2LjUwMCBVU0QsIG9uZyBELiBjbyBoZW4gZ2lhIGRpbmggZGF1IGdpbyANCmNoaWV1 IDkuOSBsZW4gVUJORCBQLlRoYW8gRGllbiAoUS4yKSwgY29uIG9uZyBELiBkZW4gQ29uZyBhbiBQ LlRoYW8gRGllbiBsYXkgY2FjIA0KZ2lheSB0byBsaWVuIHF1YW4sIHJvaSBoYWkgYmVuIGdhcCBu aGF1IG8gVUJORCBwaHVvbmcgZGUgbGFtIGJhbyB0dS4gTmh1bmcgZGVuIDE0IA0KZ2lvIG5nYXkg OS45LCBjaHVuZyB0b2kgZ29pIGRpZW4gdGhpIGRpZW4gdGhvYWkgb25nIEQuIHRhdCBtYXkuIEx1 YyAxNCBnaW8gMzAgZ29pIGR1b2MgdGhpIA0Kb25nIEQuIGxhaSBiYW8gZ2lhIGRpbmggY3UgbGVu IENvbmcgYW4gUC5UaGFvIERpZW4geGluIGJvIGhvIHNvIHBob3RvIHJvaSBjYW0gdGhhbmcgbGVu IA0KVUJORCBwaHVvbmcuIE9uZyBELiBjbyBub2k6ICJDdSBsYW0gdGh1IGRpLCBjb2kgY28gZHVv YyBraG9uZz8iLCBtYSBzYXUgbmF5IGNodW5nIA0KdG9pIG1vaSBoaWV1IGR1b2Mgbmd1IHkgY3Vh IGNhdSBub2kgbmF5LiBMdWMgZG8sIG5naGUgdGhlbyBsb2kgb25nIEQuLCBjaHVuZyB0b2kgbGVu IA0KQ29uZyBhbiBQLlRoYW8gRGllbiB4aW4gYm8gaG8gc28gcGhvdG8gdGhpIGNvbmcgYW4gcGh1 b25nIGJhbyBraG9uZyBkdW9jIHZpIHRoZW8gcXV5IA0KZGluaCBwaGFpIGRpY2ggdGhhbiBvbmcg RC4gbGEgbmd1b2kgdHJ1YyB0aWVwIHRodSBseSB2dSB2aWVjIG1vaSBsYXkgZHVvYy4gVmkgY2Fu IGJvIGNvbmcgDQphbiBwaHVvbmcgc2F1IGtoaSBnaWFpIHRoaWNoIGN1bmcgbGF5IGxhbSBsYSB2 ZSBjYWNoIGh1b25nIGRhbiBjdWEgb25nIEQuIENodW5nIHRvaSBnb2kgDQpsYWkgY2hvIG9uZyBE LiB0aGkgbmhhbiBkdW9jIGNhdSB0cmEgbG9pICJzYW5nIG1haSBsZW4gQ29uZyBhbiBRLjIhIi4g U2FuZyBjaGlldSBob20gDQpzYXUgKDEwLjksIHR1YyB0aHUgc2F1KSwgY2h1bmcgdG9pIGxlbiBM YW5oIHN1IHF1YW4gQ2FuYWRhIGxhbSB0aHUgdHVjLCBuaHVuZyByb2kgdmFvIA0KY3VvaSB0dWFu LCBjbyBxdWFuIG5heSBuZ2hpLCBkZW4gdGh1IGhhaSBuZ2F5IDEzLjEwIG1vaSBsYW0gdmllYyBs YWkiLCBuZ3VvaSBuaGEgb25nIE4uIA0KdGh1YXQgbGFpLg0KDQpWYSBrZSB0aWVwOiAiRGVuIG5n YXkgMTIuOSwgcXVhIGRpZW4gdGhvYWksIGNodW5nIHRvaSBjbyBub2kgdm9pIG9uZyBELiByYW5n IG5nYXkgbWFpIA0KMTMuOSBjaHVuZyB0b2kgZGVtIGRlbiBjYWMgZ2lheSB0byBsaWVuIHF1YW4g ZGUgZHVhIHhhYyB2ZS4gTmh1bmcgb25nIEQuIHRyYSBsb2kgbW90IA0KY2F1IHRoYXQgbGFuaCBs dW5nOiBOZ2F5IG1haSBraG9uZyBsYXkgeGFjIGR1b2MsIHZpIHRvaSBuZ2hpIGR1YSB2byBkaSBr aGFtIGJlbmguIEhvbSANCm5heSBsYSBuZ2F5IHRydWMgY3VhIHRvaSwgbWFpIDEzLjkgdG9pIG5n aGkuIE5naGUgY2F1IG5vaSBkbywgY2h1bmcgdG9pIGtob25nIGtpbSBuZW4gDQpkdW9jIGJ1YyB4 dWMsIHZhIHBoYW4gdW5nIGxhaTogTmV1IGFuaCBuZ2hpIHRoaSBjb25nIGFuIHF1YW4gcGhhaSBj byBuZ3VvaSBraGFjIHRoYXkgDQphbmggZ2lhaSBxdXlldCBjb25nIHZpZWMsIHRhaSBzYW8gY2h1 bmcgdG9pIHBoYWkgcGh1IHRodW9jIHZhbyBhbmg/IERlbiAxNSBnaW8gY2hpZXUgDQoxMy45LCBj aHVuZyB0b2kgZGVtIGNhYyBnaWF5IHRvIGxpZW4gcXVhbiBkZW4gZHVhIGNobyBvbmcgRC4gZGUg bGFtIHRodSB0dWMgbGF5IHhhYyB2YSANCmtlbSB0aGVvIGxvaSB4aW4ga2hvbmcgbGFtIGdpYWkg cGhhdSB0dSB0aGksIGNvIGNhIGNvbmcgaGFtIGN1YSBMYW5oIHN1IHF1YW4gQ2FuYWRhIA0KY3Vu ZyBnaGkgbmd1eWVuIHZvbmcgY3VhIGdpYSBkaW5oIHhpbiBraG9uZyBnaWFpIHBoYXUgdHUgdGhp LCBuaHVuZyBvbmcgRC4gbm9pIGRheSBsYSANCnlldSBjYXUsIGNodSBraG9uZyBwaGFpIG1lbmgg bGVuaCwgdmEgYmFvIGdpYSBkaW5oIG5nb2kgY2hvIGRlIG9uZyBkaSB0cmluaCBjYXAgdHJlbi4g DQoNCkNobyBkZW4gaG9uIDE3IGdpbyBraG9uZyB0aGF5IGdpLCBjaHVuZyB0b2kgZ29pIGNobyBv bmcgRC4gdGhpIG9uZyBub2kgIjE5IGdpbyBnaWEgZGluaCANCnF1YSBCViBRLjcgZGUgZ2lhaSBx dXlldCBsYXkgeGFjIHJhLi4uIi4gU2F1IGRvLCBvbmcgRC4gY3VuZyB2YWkgbmd1b2kgbnVhIGRp IHhlIG1heSBkZW4gDQpCViBRLjcuIEx1YyBuYXksIGhhaSBuZ3VvaSBkYW4gb25nIGRhdCB2YW4g ZGUgbG8gZGljaCB2dSBub2kgdHJlbiBjdW5nIGNvIG1hdCIuIFF1YSANCmtoZSBjdWEgbmhhIHhh Yywgbmh1bmcgbmd1b2kgdGhhbiBvbmcgTi4gdGhheSBtb3Qgc28gbmd1b2kgY3VhIHNvLCBsb25n IG5ndWMsIHBoYW4gDQpidW5nIGN1YSBvbmcgbmVuIHRhIGhvYSBkaWVuIHRob2FpIHZhbyB0cm9u ZyBjaG8gb25nIEQuIGRlIHBoYW4gdW5nIHZlIHZpZWMgdGFpIHNhbyBnaWFpIA0KcGhhdSB0dSB0 aGkgbWEga2hvbmcgY28gbW90IGxvaSB0aG9uZyBiYW8gbmFvIGNobyBnaWEgZGluaD8gTmh1bmcg cm9pIHhhYyBvbmcgTi4gdmFuIA0KZHVvYyBnaWFpIHBoYXUgY2hvbmcgdmFuaC4gRG8gdmF5LCB0 cm9uZyBiaWVuIGJhbiBnaWFvIG5oYW4geGFjLCBnaWEgZGluaCBvbmcgTi4gY28gZ2hpIA0KeSBr aWVuIGxhICJYYWMgZGEgZHVvYyBnaWFpIHBoYXUga2hpIGtob25nIGNvIHN1IHRob25nIGJhbyBj dWEgZGFpIGRpZW4gY29uZyBhbiwgcGhhcCANCnkiLg0KDQpEdW9uZyBkYXk/DQoNCktob25nIGNo aSBidWMgeHVjIHZlIHRoYWkgZG8gY3VhIG9uZyBELiwgZ2lhIGRpbmggb25nIE4uIGNvbiBkYXQg bmdoaSBuZ28gZ2l1YSBvbmcgRC4gDQp2YSBoYWkgbmd1b2kgZGFuIG9uZyB0aGVvIGdvaSB5ICJs byBsYXkgeGFjIHRyb24gZ29pIiBjbyAiZGF5IG1vIiBsaWVuIHF1YW4gZGVuIG5oYXUuIA0KIlRh aSBzYW8gb25nIEQuIGxhaSB5ZXUgY2F1IGR1YSB4YWMgbmd1b2kgbmhhIGNodW5nIHRvaSBxdWEg bmhhIHhhYyBCViBRLjcsIHRyb25nIGtoaSANCmdpYSBkaW5oIG11b24gZHVhIHF1YSBCViBGViAo Y28gZGUgZGF0IHRydWMgdGllcCB2b2kgb25nIEQuLCBuaHVuZyBvbmcgRC4ga2h1eWVuIGxhIA0K Z2lvIG5heSBjaGFjIGJlbiBGViBjaGF0IGNobyk/IFZpIHNhbyBraGkgeGUgZHVvYyBkaWV1IGRl biBkZSBkdWEgeGFjIGRpIHRoaSBjbyBjYSBoYWkgDQpuZ3VvaSBkYW4gb25nIG5vaSB0cmVuIGRp IHRoZW8gZ29pIHkgdmUgZGljaCB2dSB0cm9uIGdvaT8gT25nIEQuIG5vaSB2b2kgZ2lhIGRpbmg6 ICJRdWEgDQpCViBRLjcgc2UgY28gbmd1b2kgaHVvbmcgZGFuIGRheSBkdSB2ZSB0aHUgdHVjIiwg bmh1bmcga2hpIHNhbmcgbmhhIHhhYyBCViBRLjcgdGhpIA0KY2hpbmggaGFpIG5ndW9pIGRhbiBv bmcgbGFtIGRpY2ggdnUgbm9pIHRyZW4gZ2FwIGNodW5nIHRvaSwgY2h1IGtob25nIGNvIGFpIGto YWMgaHVvbmcgDQpkYW4/IFZpIHNhbyBkZW0gMTEuOSAobHVjIGRhIG5nb2FpIDIyIGdpbyksIG1v dCBuZ3VvaSB0cm9uZyBnaWEgZGluaCBjaHVuZyB0b2kgY28gY3VvYyANCmdvaSBuaG8gdHUgZGll biB0aG9haSBvbmcgRC4sIHRoaSBuZ2F5IHRpZXAgc2F1IGRvIGhhaSBuZ3VvaSBkYW4gb25nIGdv aSB5IGxhbSBkaWNoIHZ1IG5vaSANCnRyZW4gY3VuZyBnb2kgdmFvIG1heSBjaGluaCBuZ3VvaSB0 aGFuIG5heSBkZSB0aWVwIHR1YyBob2kgdmUgdnUgdmllYy4gS2hpIGRvLCBnaWEgZGluaCANCmRh IHBoYW4gdW5nIG1hbmggdm9pIGhhaSBuZ3VvaSBkYW4gb25nOiBNYXkgYW5oIG11b24gZ2l1IHhh YyBkZW4gYmFvIGdpbyB0aGkgZ2l1IGRpLi4uIA0KdmEgcXVhIHNhbmcgaG9tIHNhdSAxMi45LCBn aWEgZGluaCBsaWVuIG5oYW4gZHVvYyBzdSBsYW5oIGx1bmcgdHUgb25nIEQuIiwgZGFpIGRpZW4g Z2lhIA0KZGluaCBvbmcgTi4gbmV1IGhhbmcgbG9hdCBuZ2hpIHZhbi4gDQoNCkNodW5nIHRvaSBk ZW0gbmh1bmcgYnVjIHh1YyBjdWEgbmd1b2kgdGhhbiBvbmcgTi4gZGVuIGxhbSB2aWVjIHZvaSBD b25nIGFuIFEuMi4gT25nIA0KTmd1eWVuIFZhbiBUdWUsIERvaSB0cnVvbmcgRG9pIGRpZXUgdHJh IHRvbmcgaG9wIENvbmcgYW4gUS4yLCBub2k6ICJRdWEgZG9uIHBoYW4gDQphbmggY2hvIHRoYXkg Z2lhIGRpbmggb25nIE4uIHJhdCBidWMgeHVjLiBWb2kgdHJ1b25nIGhvcCBjdWEgb25nIEguVC5O LCB2ZSBuZ3V5ZW4gdGFjIA0KY2FuIGdpYWkgcGhhdSB0dSB0aGkgZGUgbGFtIHJvIG5ndXllbiBu aGFuIGNhaSBjaGV0LCB2aSBvbmcgY2hldCBjaHVhIHJvIG5ndXllbiBuaGFuLiANCk5odW5nIG5l dSBkdW5nIG5odSBuaHVuZyBnaSBnaWEgZGluaCBvbmcgTi4gcGhhbiBhbmggdmUgdGhhaSBkbyBs YW0gdmllYyBjdWEgY2FuIGJvIA0KY29uZyBhbiBsaWVuIHF1YW4gdGhpIGtob25nIHRoZSBkdW9j LiBDaHVuZyB0b2kgeGluIHBob3RvIGxhaSBkb24gcGhhbiBhbmgsIHZpIHRoZW8gdG9pLCANCnZ1 IHZpZWMgbmF5IGNhbiBwaGFpIGJhbyBjYW8gY2FwIHRyZW4gZGUgbGFtIHJvIi4gDQoNClZlIG5n dXllbiB0YWMgZ2lhaSBxdXlldCBsYXkgeGFjLCBvbmcgVHVlIG5vaTogIlZvaSBuaHVuZyB0cnVv bmcgaG9wIG5odSB0aGUgbmF5LCANCmNodW5nIHRvaSBnaWFpIHF1eWV0IHRyZW4gdGluaCB0aGFu IG5oYW5oIG5oYXQsIHNvbSBuaGF0LCB2aSB0YW0gbHkgZ2lhIGRpbmggbmd1b2kgY2hldCBsdWMg DQpuYXkgcmF0IG11b24gZHVvYyBkdWEgeGFjIG5ndW9pIHRoYW4gdmUgbmhhLCBkZSBsbyBhbiB0 YW5nLCBjaG9uIGNhdCIuIA0KDQpWZSB2aWVjIG9uZyBjb25nIGFuIEQuIHlldSBjYXUgbmd1b2kg bmhhIG9uZyBOLiB0dSBkZW4gQ29uZyBhbiBQLlRoYW8gRGllbiBsYXkgZ2lheSANCnRvLCBjYSBj YW4gYm8gY29uZyBhbiBwaHVvbmcgbmF5IHZhIG9uZyBUdWUgZGV1IGtoYW5nIGRpbmggdGhlbyBx dXkgZGluaCBuZ3VvaSBuaGEgDQpuYW4gbmhhbiBraG9uZyB0aGUgdHUgZGkgbGF5IGR1b2MuIA0K DQpodHRwOi8vY2h1eWVudHJhbmcudHVvaXRyZS52bi9WaWVjbGFtL0luZGV4LmFzcHg/QXJ0aWNs ZUlEPTM5NzEwNiZDaGFubmVsSUQ9MjY5IDI1LzA4LzIwMTAsIDExOjIxIChHTVQrNykNCg0KVFAg SENNOiBkdW5nIGRhdSBjYSBudW9jIHZlIHRhaSBuYW4gbGFvIGRvbmcgDQoNCmh0dHA6Ly93d3cu bGFvZG9uZy5jb20udm4vSG9tZS8xMy1uYW0tLTYwMC10aS1kb25nLS10YW4tbmF0LzIwMDkzLzEy OTk0My5sYW9kb25nIDEwOjMwIFBNLCAxMi8wMy8yMDA5DQoNClRQIEhDTTogZHVvbmcgTmd1eWVu IEh1dSBDYW5oIC0gMTMgbmFtICsgNjAwIHRpIGRvbmcgPSB0YW4gbmF0IQ0KDQpTdW90IDUgbmFt IHhheSBkdW5nLCA4IG5hbSBkdWEgdmFvIGtoYWkgdGhhYywgZHVvbmcgTmd1eWVuIEh1dSBDYW5o IGNodWEgbW90IG5nYXkgbGFuaCBsYW4sIA0KcGhhbmcgcGhpdS4gQ3VuZyBuZ2FuIGF5IHRob2kg Z2lhbiwgbmdhbiBzYWNoIHRoYW5oIHBobyBkYSB0b24gdmFvIGNvbiBkdW9uZyBuYXkga2hvYW5n IDYwMCB0aSANCmRvbmcgbmh1bmcgcm90IGN1b2MgZGVuIG5heSwgbm8gdmFuIHRhbiBuYXQhIA0K DQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVGhhdC10aG9hdC1oYW5nLWNodWMtdGktZG9uZy10 cm9uZy0xMS1kdS1hbi1uaGEtby10YS1pLVRQLUhDTS80MDA3OTY3NS8xNTcvIDIxLTUtMjAwNSwg MTM6MTIgR01UKzcgDQoNClRQLkhDTSA6IFRoYXQgdGhvYXQgaGFuZyBjaHVjIHRpIGRvbmcgdHJv bmcgMTEgZHUgYW4gbmhhIG8gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pL3BoYXBsdWF0 LzIwMDUvMDYvNDQ1MjUzLyAwNzo0OCcgMDMvMDYvMjAwNSAoR01UKzcpDQoNClRQLkhDTTogUGhh dCBoaWVuIHRoZW0gMSAiZG9uZyBsYWMiIGxvbg0KDQpodHRwOi8vbmhhY3ZpZXRwbHVzLnZpZXRu YW1uZXQudm4vdm4vcGhhdGhpZW4vMjI4MTQvaW5kZXguYXNweCA3LzQvMjAwOSwgMDk6MzkgR01U KzcgDQoNClRQIEhDTTogRGFwIGNoYW4gODEgbmhhYyBjdSB0cmkgZ2lhIGdhbiA1MCB0aSBkb25n IChjbyBuZ3V5IGNvIGtob25nIGR1b2Mgc3UgZHVuZykNCg0KaHR0cDovL3d3dy5uZWEuZ292LnZu L3Rob25ndGlubXQvbm9pZHVuZy9wbl8yM182XzAzLmh0bSAoUGh1IG51IFZpZXQgTmFtLCBzbyA0 NCwgbmdheSAyMy82LzIwMDMsIHRyLiAxMSkNCg0KVFAgSENNOiBPIG5oaWVtIG1vaSB0cnVvbmcg byB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggLSBUaWVwIHR1YyBiYW8gZG9uZyBkbw0KDQpSYWMgc2lu aCBob2F0LCBjaHVvdCBjaGV0LCB0aHVjIGFuIHRodWEgZGV1IGJpIHZ1dCByYSBkdW9uZyByYXQg dm8gdHUhDQoNClhlIGNvIG5oaWV1IGdheSBuZW4ga2hvaSBidWkgbWl0IG11IHR1IHNhbmcgZGVu IHRvaSBtaXQsIHRpbmggdHJhbmcgZGFvIGJvaSBkdW9uZyBzYSwgDQpjb2kgbm9pIG5oYSBjdWEg dHVtIGx1bSBkYSBiaWVuIGNhIHRoYW5oIHBobyBjdSBuaHUgbW90IGNvbmcgdHJ1b25nIGtob25n IGxvIGRhbmcgdGhpIGNvbmcuDQoNCkNoaW5oIHRpbmggdHJhbmcgdHUgZGFvIGJvaSwgeGF5IGNh dCB2byB0byBjaHVjIGRhIGdheSBuZW4gdGluaCB0cmFuZyBjaG9uIGxhcCBjYWMgDQpzb25nIHJh Y2gsIGxhbSB0YWMgbmdoZW4gaGUgdGhvbmcgdGhvYXQgbnVvYyBzaW5oIGhvYXQgY3VhIHRoYW5o IHBobyBkYW4gZGVuIHVuZyBuZ2FwIG1vaSBraGkgdHJvaSBkbyBtdWEuDQoNCk1vaSBraGkgbnVv YyBkYW5nIGNhbyBiaWVuIGR1b25nIHRoYW5oIHBobyB0aGFuaCBzb25nIHN1b2ksIGhhbmcgdHJh bSB0aHUgcmFjIHZhIA0KbnVvYyBiYW4gdHJvaSBib25nIGJlbmggdmFvIGNhIG5oYSBkYW4uIFJh YyBiYW4ga2hvbmcgY2hpIGxhbSBtYXQgdmUgc2luaCBuZ2F5IG5heSANCnF1YSB0aGFuZyBubyBt YSBubyBjb24gbGEgdGFjIG5oYW4gZ2F5IGRpY2ggYmVuaCBjaG8gY29uIG5ndW9pLiANCg0KaHR0 cDovL3d3dy5uaGFuZGFuLmNvbS52bi90aW5iYWkvP3RvcD0zOSZzdWI9NjImYXJ0aWNsZT0xMjI5 MDIgQ2FwIG5oYXQgIDE1OjE4IG5nYXkgMjctMDUtMjAwOA0KDQpUUCBIQ006IE8gbmhpZW0gdHUg Y2FjIGdpZW5nIGtob2FuDQoNCk5ELSBLaG9hbiBnaWVuZyB0cmFuIGxhbiBkYSB2YSBkYW5nIGRh biBkZW4gbmd1eSBjbyBnYXkgbyBuaGllbSB2YSBwaGEgaHV5IG5ndW9uIHRhaSBuZ3V5ZW4gbnVv YyBuZ2FtIG8gVFAgSG8gQ2hpIE1pbmguIERvIGtoYWkgdGhhYyBidWEgYmFpLCByYXQgbmhpZXUg bG8ga2hvYW4ga2hvbmcgZHVvYyBsYXAgbGFpIGtoaWVuIGNhYyBuZ3VvbiBudW9jIG5nYW0gYmkg eGFtIGhhaSwgdGFvIG5lbiBoaWVuIHR1b25nIHRob25nIHRhbmcsIG1vdCB0cm9uZyBuaHVuZyBu Z3V5ZW4gbmhhbiBjaGluaCBsYW0gbmhpZW0gYmFuIG5ndW9uIG51b2Mgc2FjaCBkb25nIHRob2kg Z2F5IG5lbiBoaWVuIHR1b25nIHN1cCBsdW4gY2F1IHRydWMgZGlhIHRhbmcuIEhpZW4gdGluaCB0 cmFuZyBuYXkgZGEgZGVuIG11YyBiYW8gZG9uZyBjYSB2ZSBxdWFuIGx5IHZhIHF1eSBob2FjaC4N Cg0KaHR0cDovL3d3dy5ubGQuY29tLnZuL3RpbnR1Yy9raG9hLWhvYy8yMDUxOTAuYXNwIDE4LTEw LTIwMDcgMDE6MDI6MzAgR01UICs3DQoNClRQIEhDTTogTkdBVCBUSE8gVkkgTyBOSElFTQ0KDQpP IG5oaWVtIHRhbmcgY2FvLCByYSBkdW9uZyBhaSBjdW5nIGJpdCBraGF1IHRyYW5nDQoNClNhdSA1 IG5hbSB0aHVjIGhpZW4gY2h1b25nIHRyaW5oIGdpYW0gdGhpZXUgbyBuaGllbSBraG9uZyBraGks IGNhYyBjaGkgdGlldSB2ZSBjaGF0IGx1b25nIGtob25nIGtoaSBuaHUgbXVjIHRpZXUgZGF0IHJh IHR1IG5hbSAyMDAyIHZhbiBraG9uZyBkYXQgZHVvYy4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEt aG9pL1RQSENNLU8tbmhpZW0tbmd1b24tbnVvYy1vLW11Yy1iYW8tZG9uZy83MDAyNTI1NS8xNTcv IERhbmcgR2lvaSAoVGhlb19UaWVuX1Bob25nKSAyOC85LzIwMDUsIDExOjM4IEdNVCs3IA0KDQpU UEhDTTogTyBuaGllbSBuZ3VvbiBudW9jIG8gbXVjIGJhbyBkb25nIA0KDQpIaWVuIG5heSBtb2kg bmdheSB0aGFuaCBwaG8gY28gNjAwLjAwMG0zIG51b2MgdGhhaSBuaHVuZyBjaGkgY28ga2hvYW5n IDYwJSBsdW9uZyANCm51b2MgbmF5IGR1b2MgeHUgbHkgc28gYm8gdmFvIGhlIHRob25nIGNodW5n IG5lbiB0aW5oIHRyYW5nIG8gbmhpZW0gbmd1b24gbnVvYyBuZ2F5IGNhbmcgdGFuZy4NCg0KKEFu aDogTmhhIG1heSB0aHVvYyBsYSBnYXkgbyBuaGllbSB2YW4gZGFuZyBob2F0IGRvbmcgdHJvbmcg bm9pIHRoYW5oIFRQIEhvIENoaSANCk1pbmgpIA0KDQpTbyBkaSBjbyB0aW5oIHRyYW5nIG5heSBs YSBkbyB0cnVvYyBkYXkgbmhpZXUgY28gc28gc2FuIHh1YXQgY2h1YSBxdWFuIHRhbSBkdW5nIG11 YyBkZW4gDQp2YW4gZGUgbnVvYyB0aGFpLCBraGkgdGhhaS4NCg0KVHJvbmcgc28gNyBoZSB0aG9u ZyBrZW5oIHJhY2ggdGlldSB0aG9hdCBudW9jIHRoYWkgc2luaCBob2F0IGN1YSB0aGFuaCBwaG8g dmFuIGNvbiBuaGlldSANCmtlbmggaG8gdmEgY3VhIHhhIHF1YSBjdSwgdGhhbSBjaGkgYmkgaHUg aGFpIG5hbmcgdmEgbmFuZyBsdWMgdGhvYXQgY2hpIGRhdCA1MCUgbmh1IGNhdS4NCg0KSG9uIHRo ZSBudWEsIHRyZW4gbmhpZXUgZG9hbiBrZW5oIHJhY2ggY29uIGNvIGtob2FuZyAxOC4wMDAgaG8g ZGFuIGxhbSBuaGEgbGFuIGNoaWVtIA0KcmEga2VuaCByYWNoIHZhIHhhIHJhYyB4dW9uZyBrZW5o IGtoaWVuIGRvbmcgY2hheSB2b24gbmhvIGxhaSBjYW5nIGFjaCB0YWMuDQoNCkRheSBjdW5nIGxh IG5ndXllbiBuaGFuIHRhbyBuZW4gc3UgbmdhcCB1bmcgY3VjIGJvIG8gOTAgZGllbSByYWkgcmFj IHRyb25nIGNhYyBraHUgZGFuIA0KY3UgbyBxdWFuIDYsIEJpbmggQ2hhbmgsIEJpbmggVGhhbmgu Li4NCg0KSGllbiBuYXksIHRpbmggdHJhbmcgbyBuaGllbSBtb2kgdHJ1b25nIHRhaSBjYWMga2h1 IGNvbmcgbmdoaWVwIGRhbmcgdHJvbmcgdGluaCB0cmFuZyANCmJhbyBkb25nLiBOaGlldSBraHUg Y2hlIHh1YXQsIGtodSBjb25nIG5naGllcCBjdW5nIGRhbmcgcXVhIHRhaSB2YSBvIG5oaWVtIGRv IHRpbmggDQp0b2FuIGhlIHRob25nIG51b2MgdGhhaSBraG9uZyB0aGVvIGtpcCB0aHVjIHRlLg0K DQpHYW4gNzAgY28gc28gc2FuIHh1YXQgZGkgZG9pIHR1IG5vaSB0aGFuaCByYSBjdW5nIGRhbmcg Z2F5IG8gbmhpZW0gY2hvIGtodSB2dWMga2VuaCBBbiANCkhhIJYgVGhheSBDYWkgbyBIb2MgTW9u IHZhIEN1IENoaTsga2h1IHZ1YyBzb25nIG5nb2kgTmhhIEJlIGN1bmcgYmkgbyBuaGllbSB0dSBr aHUgDQpjb25nIG5naGllcCBIaWVwIFBodW9jLg0KDQpUaGVvIHRob25nIGtlLCBUUCBIQ00gaGll biBjbyAzMS4xMDAgY28gc28gc2FuIHh1YXQgY29uZyBuZ2hpZXAgdmEgdGlldSB0aHUgY29uZyAN Cm5naGllcCBoYXUgaGV0IGNodWEgY28gaGUgdGhvbmcgbnVvYyB0aGFpLi4uIA0KDQpodHRwOi8v d3d3LnRpbjI0Ny5jb20vMSUyQzVfdHJpZXVfZGFuX2R1bmdfbnVvY190dV9zb25nX3NhaV9nb25f b19uaGllbS0xLTc2ODE1Lmh0bWwgVGllblBob25nLnZuICh0aGVvIE1haSBWb25nIC0gVGhhbmgg bmllbikgMTMvMDEvMjAwOCAtIDIwOjEyICANCg0KVFAgSENNOiAxLDUgdHJpZXUgZGFuIGR1bmcg bnVvYyB0dSBzb25nIFNhaSBHb24gbyBuaGllbSANCg0KQ28gcXVhbiBjaHVjIG5hbmcgZGV1IGJp ZXQgcm8gY2hhdCBsdW9uZyBudW9jIHNvbmcgU2FpIEdvbiBuZ2F5IGNhbmcgc3V5IGdpYW0sIG5o dW5nIA0KdG9pIG5heSBjdW5nIGNodWEgY28gZ2lhaSBwaGFwIG5hbyBjdSB0aGUgZGUgYmFvIHZl IG5ndW9uIG51b2MgZGFuZyBjdW5nIGNhcCBjaG8gaG9uIA0KMSw1IHRyaWV1IG5ndW9pIGRhbiBU UC5IQ00uDQoNCihBbmg6IE51b2MgbWF5IGJpIGR1YywgcGhhaSB4YSBibykgDQoNCkhlIHRob25n IHh1IGx5IG51b2MgcGhhaSBob2F0IGRvbmcgaGV0IGNvbmcgc3VhdCANCg0KTW90IGNhbiBibyBr eSB0aHVhdCBvIFRvbmcgY29uZyB0eSBjYXAgbnVvYyBTYWkgR29uIChTYXdhY28pIHRvIHJhIGJ1 YyB4dWMgdmkgZGEgY2hvIA0KZG9pIHF1YSBsYXUgbWEgY2FjIGNvIHF1YW4gYmFvIHZlIG1vaSB0 cnVvbmcgdGhhbmggcGhvIHZhbiBjaHVhIGNvIGdpYWkgcGhhcCBiYW8gdmUgDQptb2kgdHJ1b25n IG51b2Mgc29uZyBTYWkgR29uLCB0cm9uZyBraGkgU2F3YWNvIGhpZW4gbmF5IHBoYWkgdGhlbyBk b2kgZGllbiBiaWVuIGNoYXQgDQpsdW9uZyBudW9jIGNvbiBzb25nIG5heSBoYW5nIGdpby4gDQoN CkdpYW0gZG9jIE5oYSBtYXkgbnVvYyBUYW4gSGllcCwgb25nIEJ1aSBUaGFuaCBHaWFuZyBjaG8g YmlldCwgdHUgbmFtIDIwMDQgZGVuIG5heSwgDQpjaGF0IGx1b25nIG5ndW9uIG51b2Mgc29uZyBz dXkgZ2lhbSByYXQgbmhhbmggcXVhIHR1bmcgbmFtLiBEYWMgYmlldCBhbW9uaWFjIHRhbmcgcmF0 IA0KY2FvLCBuZXUgdHJ1b2MgZGF5IHRhbmcgdGhlbyBtdWEsIHRoZW8gdGh1eSB0cmlldSwgdGhp IG5heSB0aW5oIHRyYW5nIG8gbmhpZW0gbmF5IGdhbiBuaHUgDQp0YW5nIGdpYW0gdGh1b25nIHh1 eWVuIHRyb25nIG5nYXkuIA0KRGlldSBuYXkgZGFuIGRlbiBjb25nIHN1YXQgaGUgdGhvbmcgY2hh bSBob2EgY2hhdCBkZSB4dSBseSBudW9jIHBoYWkgaG9hdCBkb25nIG8gbXVjIA0Kc2F0IHRhaSB0 aGlldCBrZSwgY28gbHVjIHF1YSB0YWkgKGhlIHRob25nIGNoYW0gY2xvcikuIEx1b25nIGhvYSBj aGF0IHN1IGR1bmcgdGFuZyBjYW8gZGFuIA0KcXVhIGNhYyBuYW0gMjAwNS0yMDA3LiANCg0KT25n IEJ1aSBUaGFuaCBHaWFuZyBjdW5nIGNobyBiaWV0LCBOaGEgbWF5IG51b2MgVGFuIEhpZXAga2hv bmcgY28ga2hhIG5hbmcgeHUgbHkgDQpuZXUgY28gY2FjIGNoYXQgZG9jIGhhaSB4dWF0IGhpZW4g dHJvbmcgbnVvYyBzb25nLiANCg0KTnVvYyBzb25nIGJpIG5oaWVtIG5odW5nIGNoYXQgZ2k/IA0K DQpUcmFtIGJvbSBudW9jIHRobyBjdWEgTmhhIG1heSBudW9jIFRhbiBIaWVwIHRhaSB4YSBIb2Eg UGh1LCBodXllbiBDdSBDaGkgZGFuZyBiaSBvIA0KbmhpZW0gImJhbyB2YXkiIHR1IHBoaWEgdGh1 b25nIG5ndW9uIGxhbiBoYSBuZ3Vvbi4gT25nIEJ1aSBUaGFuaCBHaWFuZyBjaG8gYmlldCwgDQpw aGlhIHRodW9uZyBuZ3VvbiB0aGkgbyBuaGllbSBudW9jIHNpbmggaG9hdCB2YSBjb25nIG5naGll cCB0dSBCaW5oIER1b25nIHRoZW8gbmhhbmggDQpzb25nIFRoaSBUaW5oIGRvIHJhIHNvbmcgU2Fp IEdvbiwgY3VuZyB2b2kgY2FjIGNvbmcgeGEsIGtlbmggcmFjaCB0dSBjYWMga2h1IGRhbiBjdSAN CihraG9uZyBsb2FpIHRydSBjaGF0IHRoYWkgY29uZyBuZ2hpZXApIG8gbGFuIGNhbiB0cmFtIGJv bTsgY29uIHBoaWEgaGEgbmd1b24gY28gbnVvYyANCnRoYWkgdHUgS2h1IGNvbmcgbmdoaWVwIFRh biBRdXksIFRhbiBQaHUgVHJ1bmcgY2hheSB0dSByYWNoIEJhIEJlcCBkbyByYSBzb25nIFNhaSBH b24uICANCg0KTmh1bmcgbmFtIHF1YSwgU2F3YWNvIHZhIG5oaWV1IGhvIGRhbiBvIFRQLkhDTSBk YSB0dW5nIHBoYWkgeGEgYm8gbnVvYyBkdWMgZG8gDQpuZ3VvbiBudW9jIHNvbmcgU2FpIEdvbiBi aSBuaGllbSBtYW5nYW4gKE1uKSB2YSBzYXQuIE5ob20gbmdoaWVuIGN1dSB0aHVvYyBraG9hIA0K TW9pIHRydW9uZywgdHJ1b25nIERhaSBob2MgQmFjaCBraG9hIFRQLkhDTSB2YSBraG9hIEt5IHRo dWF0IGRvIHRoaSwgdHJ1b25nIERhaSBob2MgDQpUb2t5byAoTmhhdCBCYW4pIG1vaSBkYXkgY28g a2hhbyBzYXQsIGRhbmggZ2lhIHZlIG8gbmhpZW0gZG8gTW4sIHNhdCB2YSBjb2xpZm9ybXMgdHJl biANCnNvbmcgU2FpIEdvbiwgdm9pIGtldCBsdWFuIG5vbmcgZG8gTW4gdG9uZyB2YSBzYXQgdG9u ZyB0cmVuIHNvbmcgU2FpIEdvbiBkYSB2dW90IHRpZXUgDQpjaHVhbiBjaGF0IGx1b25nIG51b2Mg bWF0IGxvYWkgQSAoZHVuZyBjaG8gc2FuIHh1YXQgbnVvYyB1b25nKSB2YSBkYW5nIGxhIG5ndXkg Y28gYW5oIA0KaHVvbmcgZGVuIGNoYXQgbHVvbmcgbnVvYyBjYXAuIEtoYW8gc2F0IGRvYyB0aGVv IHNvbmcgU2FpIEdvbiBjaG8gdGhheSwgcEggY2hpIGRhdCANCnRpZXUgY2h1YW4gbnVvYyBtYXQg bG9haSBCICg1LDUtOSksIERPIHJhdCB0aGFwLCB2aSBzaW5oIGNhbyB2dW90IHRpZXUgY2h1YW4g Y2hhdCBsdW9uZyANCm51b2MgbWF0IHN1IGR1bmcgbGFtIG51b2MgY2FwLiANCg0KVHUgdGhhbmcg MSAtIDUgaGFuZyBuYW0sIHNvbmcgU2FpIEdvbiBjb24gYmkgbmhpZW0gbWFuIHZhIFNhd2FjbyBw aGFpIHRvbiBraG9hbmcgMy0NCjQgdGkgZG9uZyBtb2kgbmFtIGRlIENvbmcgdHkga2hhaSB0aGFj IHRodXkgbG9pIERhdSBUaWVuZyB4YSBudW9jIGhvLCBkYXkgbWFuIHRyZW4gDQpzb25nIFNhaSBH b24sIG5ldSBraG9uZywgaG9uIDEsNSB0cmlldSBuZ3VvaSBkYW4gU2FpIEdvbiBzZSBwaGFpIHVv bmcgbnVvYyBiaSBuaGllbSANCm1hbi4gDQoNCkJhbyB2ZSBtb2kgdHJ1b25nIG51b2MgLSB2aWVj IGNhcCBiYWNoIA0KDQpHUy5UUyBMYW0gTWluaCBUcmlldCwgVmllbiB0cnVvbmcgVmllbiBOdW9j IHZhIGNvbmcgbmdoZSBtb2kgdHJ1b25nIC0gbm9pIHZlIG5odW5nIA0KbW9pIGRlIGRvYSB0dSBj aHV5ZW4gbyBuaGllbSBkb25nIHNvbmcgU2FpIEdvbjogIkNodWEgYmFvIGdpbyBzb25nIFNhaSBH b24gZHVvYyANCnF1YW4gdGFtIG5oaWV1IG5odSBoaWVuIG5heSBib2kgbmh1bmcgZGllbiBiaWVu IG5nYXkgY2FuZyB4YXUgdmUgY2hhdCBsdW9uZyBudW9jIGN1YSANCmRvbmcgc29uZyBkZSBkb2Eg bmdoaWVtIHRyb25nIGRlbiBkb2kgc29uZyB4YSBob2k7IHRydW9jIGhldCBkZSBkb2EgdHJ1YyB0 aWVwIGRlbiBuaHUgDQpjYXUgY2FwIG51b2MgY2hvIHRoYW5oIHBobyB2YSBkZSBkb2EgbmdoaWVt IHRyb25nIGNobyBzdSBwaGF0IHRyaWVuIGtpbmggdGUgLSB4YSBob2kgYmVuIA0KdnVuZyBjdWEg VFAuSENNLCBUYXkgTmluaCB2YSBCaW5oIER1b25nIHRyZW4gbHV1IHZ1YyBzb25nIFNhaSBHb24i LiANCg0KR1MuVFMgTGFtIE1pbmggVHJpZXQgY2hvIHJhbmcsIGRlbiBsdWMgY2FuIHBoYWkgdGh1 YyBoaWVuIG1vdCBjaHVvbmcgdHJpbmggbmdoaWVuIA0KY3V1IGJhaSBiYW4gdmEgdGh1YyBzdSBu Z2hpZW0gdHVjLCBjbyBjbyBzbyBraG9hIGhvYyB2YSB0aHVjIHRpZW4geGFjIGRpbmggY2hpbmgg eGFjIA0KZHVvYyBjYWMgbmd1eWVuIG5oYW4gZ2F5IG8gbmhpZW0sIG5oYW0gZGUgeHVhdCBjYWMg Z2lhaSBwaGFwIGJhbyB2ZSBuZ3VvbiBudW9jIHNvbmcgDQpTYWkgR29uLiANCg0KIkNodW5nIHRh IHNlIGNvIGxvaSByYXQgdG8gbG9uIHZvaSBuaGFuIGRhbiB0cmVuIGx1dSB2dWMgc29uZyB2YSB0 aGUgaGUgbWFpIHNhdSBuZXUgY2h1bmcgDQp0YSBraG9uZyBnaW4gZ2l1LCBraG9uZyBiYW8gdmUg ZHVvYyBuZ3VvbiBudW9jIHNvbmcgU2FpIEdvbiIgLSBHUy5UUyBMYW0gTWluaCBUcmlldCBub2ku IA0KDQpCYW8gY2hpIGRhIHRvbiBuaGlldSBnaWF5IG11YyBsZW4gdGllbmcgYmFvIGRvbmcgdmUg dGluaCB0cmFuZyBvIG5oaWVtIHRyZW4gc29uZyBTYWkgDQpHb24uIEN1b2kgbmFtIDIwMDcsIG9u ZyBOZ3V5ZW4gVmFuIFBodW9jLCBQaG8gZ2lhbSBkb2MgU28gVGFpIG5ndXllbiB2YSBNb2kgDQp0 cnVvbmcgdGhhbmggcGhvIGRhIGdpYW8gY2hvIENoaSBjdWMgQmFvIHZlIG1vaSB0cnVvbmcgVFAu SENNLCBQaG9uZyBRdWFuIGx5IG1vaSANCnRydW9uZyBjdWEgU28gcGhvaSBob3AgY3VuZyB2b2kg VmllbiBOdW9jIHZhIGNvbmcgbmdoZSBtb2kgdHJ1b25nIHRyb25nIHF1eSAxLzIwMDggDQpwaGFp IHhheSBkdW5nIHhvbmcga2UgaG9hY2ggYmFvIHZlIG5ndW9uIG51b2Mgc29uZyBTYWkgR29uLCB0 cnVvYyBtYXQgY2hvIGtodSB2dWMgDQpsYXkgbnVvYyB0aG8gY3VhIE5oYSBtYXkgbnVvYyBUYW4g SGllcCAobyB4YSBIb2EgUGh1LCBodXllbiBDdSBDaGkpLiANCg0KTmdoaWEgbGEgY29uIHBoYWkg ZG9pIHhvbmcga2UgaG9hY2gsIGJhbiB0cmllbiBraGFpLCB0byBjaHVjIHRodWMgaGllbiB2YSBj b24gbmhpZXUgYnVvYyANCm51YSAtIHRyb25nIGtoaSBudW9jIHNvbmcgU2FpIEdvbiBuZ2F5IGNh bmcgbyBuaGllbSBob24uIA0KDQpodHRwOi8vYmVlLm5ldC52bi9jaGFubmVsLzI5ODEvMjAxMDA0 L1V5LXRpbi1jdWEtTGllbi1oaWVwLWhvaS1uZ2F5LWNhbmctZHVvYy1uYW5nLWNhby0xNzUxNzcx Lw0KDQpPbmcgVHJ1b25nIFRhbiBTYW5nIHJhbyBnaWFuZzogY2FuIHRhbyBtb2kgdHJ1b25nIGhv YXQgZG9uZyBkYW4gY2h1LCB0b24gdHJvbmcgdHUgZG8gc2FuZyB0YW8gdHJvbmcgbmdoaWVuIGN1 dSwgdHJhbyBkb2kgaG9jIHRodWF0IA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kv MjAwOC8xMC8zQkEwNzM0OC8gS2llbiBDdW9uZyA3LzEwLzIwMDgsIDIxOjA3IEdNVCs3DQoNCidU UCBIQ00gZGEgYnVvbmcgbG9uZyBxdWFuIGx5IG1vaSB0cnVvbmcgdHJvbmcgMTUgbmFtIHF1YScg LSBPbmcgVHJ1b25nIFRhbiBTYW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbSANCg0KTnVvYyBzb25n IGtlbmggcmFjaCBkZW4gbmdvbSwgaG9pIHRob2kgZG8gY2FjIEtDTiAidm8gdHUiIHhhIHRoYWkg dHJ1YyB0aWVwLCBvIG5oaWVtIA0Ka2hvbmcga2hpIGRhbmcgbyBtdWMgYmFvIGRvbmcgdmkga2hv bmcgYWkgImtpZW0gc29hdCIsIG5oaWV1IGNoaSB0aWV1IG1vaSB0cnVvbmcgdnVvdCANCnF1YSB0 aWV1IGNodWFuLi4uIE1haSBsbyBwaGF0IHRyaWVuLCB0aGFuaCBwaG8gZGEgeGVtIG5oZSBtb2kg dHJ1b25nIGN1YSBjaGluaCBtaW5oLg0KDQoiSGllbiB0YWkgbW9pIHRydW9uZyBiaSBvIG5oaWVt IHJhdCBuYW5nIHZhIGRhbmcgbyBtdWMgYmFvIGRvbmcgYW5oIGh1b25nIG5naGllbSANCnRyb25n IGRlbiBzdWMga2hvZSBuZ3VvaSBkYW4sIGNvIHJhdCBuaGlldSBuZ3V5ZW4gbmhhbiBraGFjaCBx dWFuIHZhIGNodSBxdWFuIG5odW5nIA0KdHJlbiBoZXQgbGEgc3UgdHV0IGhhdSB2ZSBxdWFuIGx5 IGJhbyB2ZSBtb2kgdHJ1b25nLCBjbyBraGkgbGEgYmF0IGx1YyB0cnVvYyBoaWVuIHRyYW5nIiwg DQpvbmcgVHJ1b25nIFRyb25nIE5naGlhLCBkYWkgYmlldSBIb2kgZG9uZyBuaGFuIGRhbiAoSERO RCkgVFAgSENNIGNobyBiaWV0Lg0KDQpQaGF0IGJpZXUgdGFpIEhvaSBuZ2hpIGNodXllbiBkZSB2 ZSBtb2kgdHJ1b25nIHNhbmcgbmF5IHRhaSBVQk5EIFRQIEhDTSwgZGFpIGJpZXUgDQpIRE5EIERh bmcgVmFuIEtob2EgZG9uZyBxdWFuIGRpZW06ICJUaW5oIGhpbmggZGllbiBiaWVuIG5nYXkgY2Fu ZyB4YXUgdmkgY2hpbmggDQpxdXllbiBidW9uZyBsb25nIHF1YW4gbHkgbmhhIG51b2MgaXQgbmhh dCB0cm9uZyAxNSBuYW0uIEx1YXQgbW9pIHRydW9uZyBkYSBjbyB0dSBuYW0gDQoxOTkzLCBkYSBx dXkgZGluaCBybyBtb2kgY28gc28ga2luaCBkb2FuaCBwaGFpIHh1IGx5IGNoYXQgdGhhaSBkYXQg dGlldSBjaHVhbiB0cnVvYyBraGkgDQpkdWEgcmEgbW9pIHRydW9uZy4gTmV1IHRodWMgdGhpIHRv dCB0dSAxOTkzIHRoaSB0aGFuaCBwaG8gZGEga2hvbmcgcGhhaSBkb2kgbWF0IHZvaSBvIA0Kbmhp ZW0gbW9pIHRydW9uZyBuYW5nIG5lIG5odSBoaWVuIG5heSIuDQoNCihBbmg6IFRhaSBUUCBIQ00g aGllbiBuYXkgZGF5IHJheSBuaHVuZyBjb24gc29uZyBkZW4gbmdvbSwgZHUgdGh1IHJhYyBiYW4u IEFuaDogS2llbiBDdW9uZykgDQoNCkhpZW4gbmF5LCB0YWkgVFAgSENNIG8gbmhpZW0gbW9pIHRy dW9uZyBkYW5nIHRyZW4gZGEgdGFuZyB0cnVvbmcgdHkgbGUgdGh1YW4gdm9pIHRpZW4gDQp0cmlu aCBjb25nIG5naGllcCBob2EgLSBoaWVuIGRhaSBob2EsIHZhIHRoZW8gbmhpZXUgY2h1eWVuIGdp YSBkYW5oIGdpYSBkYXkgY2hpbmggbGEgaGUgDQpsdXkgY3VhIHF1YSB0cmluaCBkbyB0aGkgaG9h Lg0KDQpEYWkgYmlldSBIRE5EIFBoYW0gTWluaCBUcmkgZ2lhaSB0aGljaDogIkR1bmcgdmUgbWF0 IGRpZXUgaGFuaCwgdGhhbmggcGhvIGNodWEgY29pIA0KdHJvbmcgZHVuZyBtdWMgdmFuIGRlIG1v aSB0cnVvbmcsIHRoaWVuIHZpIGNobyB0YW5nIHRydW9uZyBHRFAgdmEgY2hhbiBjaGFjIGRheSAN Cmtob25nIHBoYWkgbGEgbXVjIHRpZXUgcGhhdCB0cmllbiBiZW4gdnVuZyIuDQoNCkNodWEgaGV0 LCBvbmcgTmdoaWEgY29uIGR1YSByYSBjYW5oIGJhbyB2ZSBoaWVuIHR1b25nICJkaSB0YW4gbW9p IHRydW9uZyIsIHR1YyBuaGlldSANCm5ndW9pIGRhbiBkYSBtdWEgZGF0IHRhaSBuaHVuZyBraHUg dnVjIG5nb2FpIHRoYW5oIGl0IG8gbmhpZW0gaG9uIHRydW5nIHRhbS4gDQoNCkNoaW5oIFBobyBj aHUgdGljaCBVQk5EIFRQIEhDTSBOZ3V5ZW4gVHJ1bmcgVGluIGN1bmcgdGh1YSBuaGFuLCB2YW4g ZGUgbW9pIA0KdHJ1b25nIGNodWEgbGFtIGtpZW4gcXV5ZXQgbGEgZG8gcXV5IGhvYWNoLCB4dSBs eSBuZSBuYW5nLCBwaGF0IHRyaWVuIGtpbmggdGUgZGkgdHJ1b2MgDQpiYW8gdmUgbW9pIHRydW9u ZywgcXV5ZW4gaGFuIGN1YSBjYWMgcXVhbiBodXllbiBjb24geWV1IHZhIGR1b25nIG5oaWVuIGto b25nIHRyYW5oIA0Ka2hvaSBoaWVuIHR1b25nICJ0aGEiIHRyb25nIHBob2kgaG9wIHh1IGx5LiAN Cg0KQmFvIGNhbyBjdWEgQmFuIGtpbmggdGUgbmdhbiBzYWNoIEhvaSBkb25nIG5oYW4gZGFuIFRQ IEhDTSBnaW9uZyBsZW4gbW90IGhvaSANCmNodW9uZyBiYW8gZG9uZywgbmd1b24gbnVvYyBzb25n IFNhaSBHb24sIFRoaSBWYWksIERvbmcgTmFpIG5nYXkgY2FuZyBvIG5oaWVtIA0KbmFuZywgY28g bmd1eSBjbyBhbmggaHVvbmcgZGVuIG5ndW9uIG51b2MgbmhhIG1heSBUaHUgRHVjIHZhIFRhbiBI aWVwLCB0aW5oIHRyYW5nIA0KbyBuaGllbSBrZW5oIHJhY2ggZGFuZyBvIGRpZW4gcm9uZyBraGFw IHRoYW5oIHBoby4NCg0KIktlbmggVGhheSBDYWksIEFuIEhhIChodXllbiBDdSBDaGkpOyBrZW5o IEIsIEMgKGh1eWVuIEJpbmggQ2hhbmgpOyBCYSBCdXAsIFRyYW4gDQpRdWFuZyBDbyAoSG9jIE1v bikgbnVvYyBkYSBjaHV5ZW4gc2FuZyBtYXUgbmF1IGRlbiwgaG9pIHRob2kgbm9uZyBuYWMuIFJp ZW5nIGh1eWVuIA0KQmluaCBDaGFuaCAzMC81NSB0dXllbiBzb25nIHJhY2ggYmkgbmhpZW0gYmFu IHJhdCBuYW5nIGFuaCBodW9uZyBsb24gZGVuIHNpbmggaG9hdCANCmN1YSBuZ3VvaSBkYW4iLCBv bmcgTmd1eWVuIE1pbmggSG9hbmcsIFRydW9uZyBCYW4ga2luaCB0ZSBuZ2FuIHNhY2ggSERORCBj aG8gYmlldC4NCg0KQ3VuZyB0aGVvIGJhbyBjYW8gY3VhIEJhbiBraW5oIHRlIG5nYW4gc2FjaCwg Y28gNjUsNDYlIGJlbmggdmllbiAoODEgdHJlbiAxMzkgYmVuaCANCnZpZW4pIGNvIGhlIHRob25n IHh1IGx5IG51b2MgdGhhaSBraG9uZyBkYXQgaG9hYyBraG9uZyBjbyBoZSB0aG9uZyB4dSBseS4g TmdvYWkgcmEsIGhhaSANCmtodSB4dSBseSByYWMgdGFpIERhIFBodW9jIChodXllbiBCaW5oIENo YW5oICkgdmEgUGh1b2MgSGllcCAoQ3UgQ2hpKSBjdW5nIGdheSBvIA0KbmhpZW0gbmFuZyBuZSB2 b2kgbW9pIHRydW9uZyB4dW5nIHF1YW5oLiANCg0KTmhpZXUgbmFtIG5heSwgbmd1b2kgZGFuIFRQ IEhDTSBkYSBxdWEgcXVlbiB2b2kgImRpZXAga2h1YyIgbmh1bmcgY29uIHNvbmcsIGtlbmggDQpy YWNoIGRhbiBiaSBidWMgdHUgYm9pIG51b2MgdGhhaSB0dSBjYWMgS0NOLCBLQ1gsIGNvIHNvIHNh biB4dWF0IGNodWEgcXVhIHh1IGx5LiBOb2kgDQp0aWVuZyBuaGF0IHRyb25nIHNvIGRvIGxhIEtD TiBMZSBNaW5oIFh1YW4gKGh1eWVuIEJpbmggQ2hhbmgpIGtoaSBjaGkgdHJvbmcgdm9uZyANCmNo dWEgZGF5IDEwIG5hbSBxdWEgZGEgYmllbiBtb2kgdHJ1b25nIHh1bmcgcXVhbmggdGhhbmggbW90 IGtodSAiZGF0IGNoZXQiLCBudW9jIJYgDQpkYXQgLSBraG9uZyBraGkgbyBkYXkgcGhhaSB2YXQg bG9uIHZvaSBLQ04gZGUgdG9uIHRhaS4gDQoNClRoZW8gc28gbGlldSB1b2MgdGluaCB0dSBuYW0g MjAwNSwgdG9uZyB0YWkgbHVvbmcgYnVpIGhhdCBTTzIsIE5PMiwgQ08sIFZPQyBwaGF0IHJhIHR1 IA0KY2FjIG5ndW9uIG5odSBwaHVvbmcgdGllbiBnaWFvIHRob25nLCBraGkgdGhhaSBjb25nIG5n aGllcCwga2hpIGRvdCBuaGllbiBsaWV1IHNpbmggaG9hdCANCmtob2FuZyA2MC4wMDAgdGFuIG1v dCBuYW0gKHRyb25nIGRvIGdhbiA5MCUgbGEga2hpIHRoYWkgZ2lhbyB0aG9uZykuIA0KDQpodHRw Oi8vdmlldGJhby52bi9YYS1ob2kvU2FwLWhldC1kdW9uZy1jaG8teGUtY2hheS8zMDE5NjY4OS8x NTcvDQoNClRQIEhDTTogU2FwIGhldCBkdW9uZyBjaG8geGUgY2hheSEgS2hvbmcgY29uIGR1b25n IGRlIGRpDQoNCk8gVFBIQ00sIHRhaSB0dXllbiBkdW9uZyBObyBUcmFuZyBMb25nIChxdWFuIEJp bmggVGhhbmgpLCB2YW8gZ2lvIGNhbyBkaWVtIGdhbiBuaHUga2hvbmcgY28gbG9pIHRob2F0Lg0K DQpodHRwOi8vdGludHVjdmluYS5jb20vP25ld3M9MTEzMDI5IDIwLzA3LzIwMDkNCg0KVFAgSENN OiBDaGFtIHRpZW4gZG8gaGFpIG5hbSwgZG9pIHRoZW0gMi43MDAgdHkgZG9uZw0KDQpOZXUgY2hv biBkaWVuIGhpbmggdmUgc3UgbGFuZyBwaGkgZG8gdGhpIGNvbmcgInJ1YSBibyIgdGhpIGR1IGFu IHZlIHNpbmggbW9pIHRydW9uZyANClRQSENNIGx1dSB2dWMgTmhpZXUgTG9jIC0gVGhpIE5naGUg KE5MVE4pIGRhbmcgZHVvYyB4ZXAgc28gMS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94 YWhvaS9kb3RoaS8yMDA5LzA5Lzg2NzM1My8gMjE6MDAsIDA3LzA5LzIwMDkgKEdNVCs3KQ0KDQpU UC5IQ006ICJUaHUgcGhhbSIgZ2F5IG5nYXAgY2h1YSBkdW9jIHh1IGx5DQoNCk5oaWV1IGNvbmcg dHJpbmggZGFuZyB0aGkgY29uZyB0YWkgVFAuSENNIGJpdCBjdWEgeGEgbGFtIGNobyBtb3Qgc28g a2h1IHZ1YyBuZ2FwIG51b2MgdHJhbSB0cm9uZy4gVFAuSENNIGhpZW4gY28gMTAwIHZpIHRyaSBn YXkgbmdhcCBjaHVhIGR1b2MgeHUgbHkuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9u ZXdzL1BhZ2VzLzIwMTAyOC8yMDEwMDcwOTAxMDE1NC5hc3B4IERhbSBIdXkgMDkvMDcvMjAxMCAx OjAxIA0KDQpUUCBIQ006IEJvbiBjdW9wIHR1IEhhaSBQaG9uZyB2YW8gVFAuSENNIGdheSBhbiBk ZSAibGFwIG5naGllcCIgDQoNCkNodW5nIG5naGUgY2FjICJkYW4gYW5oIGdpYW5nIGhvIiBvIEhh aSBQaG9uZyB2YW8gVFAuSENNIGhvYXQgZG9uZyBjbyBjdW9jIHNvbmcgc3VuZyB0dWMgbmVuIHJ1 IG5oYXUgdmFvIFRQLkhDTSANCmRpIGN1b3AgZGUgImxhcCBuZ2hpZXAiLiANCg0KaHR0cDovL3Rp bnR1Y3NvLm5ldC92MjY4NzMtY3VvcC10YWktc2FuLXJvaS1oaWVwLWRhbS5odG1sIDI2LzA3LzIw MTAgLSAxMDozMA0KDQpUUC4gSENNOiBDdW9wIHRhaSBzYW4gcm9pIGhpZXAgZGFtIA0KDQpodHRw Oi8vdXMuMjRoLmNvbS52bi9hbi1uaW5oLWhpbmgtc3UvZ2lhbmctaG8tZGF0LWNhbmctZGFpLW5h by1zYWktdGhhbmgtYzUxYTMxNzM0Ni5odG1sIFRodSBCYXksIG5nYXkgMTQvMDgvMjAxMCwgMTA6 MzUNCg0KVFAgSENNOiBHaWFuZyBobyBkYXQgQ2FuZyAiZGFpIG5hbyIgU2FpIFRoYW5oDQoNCk5h bSB0aWVuIGRlIGxheSAic28gbWEiIA0KDQpTYXUga2hpIER1bmcgSGEgYmkgZGFuIGVtIE5hbSBD YW0gYmFuIGNoZXQsIGdpYW5nIGhvIGRhdCBDYW5nIG5oYW8gbmhhYyBuaHUgcmFuIA0Ka2hvbmcg ZGF1LCBsYW5nIGJhdCBuaGlldSB0aW5oIGRlIGhhbmggbmdoZSBiYW8ga2UsIGRhbSB0aHVlIGNo ZW0gbXVvbi4gVHJvbmcgc28gZG8gDQpkYW4gZW0gRHVuZyBIYSBjbyBMdWFuICJjb24iICh0ZW4g dGhhdCBsYSBWdSBWYW4gTHVhbiwgU04gMTk2NSwgSGFpIFBob25nIGJpIGNvbmcgDQphbiBUUC5I Q00gYmF0IHZlIGhhbmggdmkgZ2lldCBuZ3VvaSkgY3VuZyBraG9hbmcgMTAgZG9pIHR1b25nIGto YWMgTmFtIHRpZW4gdmFvIA0KVFAuSENNIGRlIGxheSBsYWkgc28gbWEgdHJlbiBnaWFuZyBoby4N Cg0KS2hpIEx1YW4gImNvbiIgdmFvIFRQLkhDTSwgYmVuIGNhbmggTHVhbiBsdW9uIGNvIGtob2Fu ZyA1IGRhbiBlbSB0aGFuIHRpbiBsYW0gZGF1IA0KbW9pIGtldCBuYXAgbmh1bmcgZG9pIHR1b25n IG1hdSBtYXQgbGFwIHRoYW5oIGJhbmcgbmhvbS4gVHJvbmcgc28gZGFuIGVtIHRoYW4gdGluIA0K Y3VhIEx1YW4gImNvbiIgY28gTmd1eWVuIFZhbiBIdW5nIChIdW5nICJ0cmFuZyIpIGxhIGRvaSB0 dW9uZyBiaSBjb25nIGFuIEhhaSBQaG9uZyANCnRydXkgYmF0IHZlIGhhbmggdmkgZ2lldCBuZ3Vv aSB0aHVlLiBTYXUga2hpIGRvbmcgYm9uIGJpIGJhdCwgSHVuZyAidHJhbmciIG5oYW5oIGNoYW4g DQpjaGF5IHRyb24gdmFvIFRQLkhDTS4NCg0KTmFtIDIwMDcsIEh1bmcgInRyYW5nIiB0YXAgaG9w IGRhbiBlbSBuZ3VvaSBnb2MgSGFpIFBob25nIGRlIHRoYW5oIGxhcCBtb3QgYmFuZyANCm5ob20g Y2h1eWVuIGRvaSBubyB0aHVlLCBiYW8ga2UgdGh1IHRpZW4gdGhhbmcgY2FjIG5oYSBoYW5nLCBx dWFuIGNhIHBoZSBvIGtodSB2dWMgDQpuZ29haSB0aGFuaCBxdWFuIDEyLCBodXllbiBIb2MgTW9u LCBDdSBDaGksIFRodSBEdWMgKFRQLkhDTSkuIEJhbmcgbmhvbSBkb2kgdGh1ZSANCmN1YSBIdW5n ICJ0cmFuZyIgbHVvbiBjbyBraG9hbmcgaG9uIDIwIHRlbiwgbWEgaGF1IGhldCBkZXUgbGEgY2Fj IGNvbiBuZ2hpZW4gY28gYmUgZGF5IA0KdGllbiBhbiwgdGllbiBzdSB2ZSB0b2kgZGFuaCBuZ3Vv aSwgbXVhIGJhbiBzdSBkdW5nIG1hIHR1eSwgc3UgZHVuZyBzdW5nLg0KDQpCYW5nIG5ob20gZG8g SHVuZyAidHJhbmciIGNoaSBzYW4gc2FuZyBkYW0gY2hlbSBuZ3VvaSB0aGVvIGRvbiBkYXQgaGFu Zy4gVHJvbmcgZ2FuIA0KMiBuYW0gaG9hbmggaGFuaCBvIHZ1bmcgdmVuIG5nb2FpIHRoYW5oLCBk YW4gZ2lhbmcgaG8gbmdoZSB0aGF5IGRhbmggSHVuZyAidHJhbmciIA0KZGV1IGhldCB2aWEuIEJh bmcgbmhvbSBuYXkgcmF0IG1hbmggZG9uZywgbHVvbiBzYXQgY2FuaCB2b2kgSHVuZyAidHJhbmci IGxhIG5odW5nIHRlbiANCnNhdCB0aHUgZ2lhbmcgaG8gSGFpIFBob25nIG5odTogS2llbiAiY29u IiwgSHVuZyAibGFjIiwgSHVuZyAiY29uIiwgU29uLCBUYW0gImNob2MiLCANClR1YW4gIm8gdG8i LCBWaW5oICJjb24iLi4uDQoNCkJhdCBjb2MsIGRvaSBubyB0aGVvIGRvbiBkYXQgaGFuZw0KDQpL aG9hbmcgdGhhbmcgNi8yMDEwLCB0aG9uZyBxdWEgbW90IGRvaSB0dW9uZyB0ZW4gbGEgVmFuIChu Z3UgdGFpIHF1YW4gMTIsIFRQIEhDTSksIA0KTGUgVHJvbmcgTmFtIGdhcCBkYW4gZW0gSHVuZyAi dHJhbmciIGxhIE5ndXllbiBWYW4gRGFuaCAoZG9pIHR1b25nIHR1bmcgY28gdGllbiBhbiANCnZl IHRvaSBnaWV0IG5ndW9pKSB0YWkgbW90IHF1YW4gY2EgcGhlIHRodW9jIHF1YW4gQmluaCBUaGFu aCAoVFAuSENNKSBkZSB0aHVlIGRvaSBuby4gDQpUaGF5IGNvIG1vaSBsYW0gYW4sIHRlbiBEYW5o IGdvaSBkaWVuIGNobyBEaW5oIFh1YW4gU29uIChxdWUgSGFpIFBob25nKSBkZW4gZGUgY3VuZyAN CmJhbiBiYWMuDQoNCk5nYXkgMjYvNiwgdm8gY2hvbmcgb25nIE5hbSBsYW0gZ2lheSB1eSBxdXll biBiYW4gc28gdGllbiBtYSBvbmcgTi4gbm8gNSwgNSB0eSBkb25nIA0KKGNvbmcgY2EgZ29jIGxh biBsYWkpIGNobyBEYW5oIHZhIFNvbiBkaSBkZW4gZ2FwIG9uZyBILlYuTi4gZGUgZG9pIG5vLiBU aGVvIHRob2EgdGh1YW4sIA0KbmV1IERhbmgsIFNvbiBsYXkgZHVvYyAxIHRpIHRpZW4gY3VhIGNv biBubyB0aGkgdm8gY2hvbmcgTmFtIHNlIHRyYSAyMDAgdHJpZXUgZG9uZy4NCg0KU2F1IGtoaSBj byBnaWF5IHV5IHF1eWVuIGRvaSBubyB0cm9uZyB0YXksIG5nYXkgOS83LCBMZSBUcm9uZyBOYW0g Y3VuZyBWYW4sIERhbmggdmEgDQpTb24gaGVuIGdhcCBjb24gbm8gbGEgb25nIEguVi5OLiB0YWkg bW90IHF1YW4gY2EgcGhlIG8gcXVhbiAyIChUUCBIQ00pIGRlIGJhbiBiYWMuIA0KS2hpICJjb24g bm8iIHh1YXQgaGllbiwgY2EgYmEgZXAgbGVuIHhlIGR1YSB2ZSBuaGEgVmFuIG5ob3QgdmFvIHRy b25nIGJ1b25nIGtpbiB0cmEgdGFuIA0KdGhlbyBraWV1IGRhbiBtYXQuIFRlbiBEYW5oIGR1bmcg cm9pIGRpZW4gZGkgdmFvIG5ndW9pIG9uZyBOLiwgY29uIFNvbiBkYW0gZGEgdHVpIGJ1aS4gDQpE ZW4gc2FuZyAxMC83LCBuaG9tIERhbmggbW9pIGRlIG9uZyBOIHZlIHZhIGtob25nIHF1ZW4gcmEg aGVuIG5nYXkgdHJhIG5vLg0KDQpEZW4gdHJ1YSAxMC83LCBEYW5oLCBTb24gZ29pIHRoZW0gZG9u ZyBib24gbGEgdGVuIFBoYW0gVmFuIEJhbiAoQmluaCkgY3VuZyBOYW0sIA0KVmFuIG1vdCBsYW4g bnVhIGRlbiBiYXQgb25nIE4uIGR1YSBkZW4gbW90IGtoYWNoIHNhbiBvIEJpbmggVGhhbmggZGUg ZG9hLiBTYW5nIDExLzcsIA0KbmhvbSBEYW5oIGR1YSBvbmcgTi4gbGVuIHhlIG90byBjaG8gZGkg bG9uZyB2b25nIHR1IFRQLiBIQ00gcm9pIGNoYXkgZGVuIHRpbmggQmluaCANCkR1b25nIGRlIGRv YSBzZSBnaWV0IHZ1dCB4YWMgb25nIE4uIG5ldSBraG9uZyB0cmEgdGllbi4gU2F1IGRvIGJvbiBj aHVuZyB0aGEgb25nIE4uLCB2ZSANCm5oYS4NCg0KVHJhbmggZ2lhbmggbGFuaCBkaWENCg0KVGhh eSBjYW5oIGRhbiBlbSBsYW0gdmllYyBraG9uZyBjbyBoaWV1IHF1YSwgSHVuZyAidHJhbmciIHF1 eWV0IGRpbmggcmEgdGF5IGRlIGdpYWkgDQpxdXlldCB2aWVjIGRvaSBubyBkdW9jIG5oYW5oIGNo b25nLiBOZ2F5IDE1LzcsIEh1bmcgInRyYW5nIiBjdW5nIGRhbiBlbSBkaSB4ZSBvdG8gZGVuIA0K ZHVvbmcgTm8gVHJhbmcgTG9uZyAocXVhbiBCaW5oIFRoYW5oLCBUUC5IQ00pIGtob25nIGNoZSBi YXQgTi4gZHVhIGRlbiBxdWFuIE5oYSANClNhbiAoZHVvbmcgTmd1eWVuIGFuaCBUaHVhbiAxMiwg VFAgSENNKSAuIFRhaSBkYXksIEh1bmcgInRyYW5nIiB0dXllbiBibyB2b2kgb25nIA0KTi4gbmV1 IGtob25nIHRyYSBoZXQgdGllbiB0aGkgc2UgbWF0IG1hbmcuDQoNCktoaSBwaGF0IGhpZW4gbmhv bSBIdW5nICJ0cmFuZyIgdmEgRGFuaCwgU29uIG5odW5nIG5oYW5nIHRyb25nIHZpZWMgZG9pIG5v IGRlIGtpZW0gDQp0aWVuIHRoZW8ga2lldSBoYWkgbWFuZywgTGUgVHJvbmcgTmFtIGRhIG5obyBt b3QgbmhvbSBjb24gZG8ga2hhYyBkb2kgdGllcCBuby4gTmhvbSANCmRvaSBubyB0aHVlIG5heSBk byB0ZW4gTmhhdCBjYW0gZGF1LiBOZ2F5IHNhdSBkbywgdGVuIE5oYXQgZ29pIGRpZW4gY2hvIG5o b20gY3VhIEh1bmcgDQoidHJhbmciIHlldSBjYXUgZHVhIGdpYXkgdXkgcXV5ZW4gZGUgZGkgZG9p IG5vLg0KDQpIdW5nICJ0cmFuZyIgcmEgdGF5IHJhdCBuaGlldSB2dSB2YSB2dSBuYW8gY3VuZyB0 aGFuaCBjb25nLiBWYXkgbWEgdHUgbmhpZW4gbmhvbSANCkh1bmcgInRyYW5nIiBiaSBjYXQgaG9w IGRvbmcgZ2l1YSBjaHVuZyB2YSBiaSBuaG9tIGN1YSBOaGF0IG5oYW8gYmFuZywgZG9pIGdpYXkg dXkgDQpxdXllbiBkb2kgbm8uIENoaW5oIHZpIG11b24gbGF5IHRoZW0gInNvIG1hIiB0YWkgVFAu SENNIG5lbiBIdW5nICJ0cmFuZyIgaHV5IGRvbmcgZGFuIA0KZW0gY2h1YW4gYmkgaHV5ZXQgY2hp ZW4gdm9pIG5ob20gY3VhIE5oYXQuDQoNCk5nYXkgMTgvNywgU29uLCBEYW5oLCBIdW5nICJsYWMi LCBEbyBYdWFuIEtpZW4ga2VvIHRoZW8gMTAgZGFuIGVtIGRlbiBkaWVtIGhlbiBkZSANCnh1IHZv aSBuaG9tIGN1YSBOaGF0LiBUYWkgZGF5LCBkbyB0aGF5IHlldSB0aGUgbmVuIG5ob20gY3VhIE5o YXQgeGluIHRodWEgdmEgdGhlbyBTb24sIA0KS2llbiwgSHVuZyAibGFjIiBkZW4gcXVhbiBNYWkg VmFuZyAocXVhbiAxMiwgVFAuSENNKSBkZSBIdW5nICJ0cmFuZyIgeGVtIHhldCB2YSANCnRoYSB0 b2kuDQoNCk5nYXkgc2F1IGRvLCBIdW5nICJ0cmFuZyIgY2hpIGRhbyBTb24sIEtpZW4sIERhbmgg YmF0IHZhIGVwIG9uZyBOLiwgdmlldCBnaWF5IG5vIHZvaSBzbyANCnRpZW4gNSwgNCB0eSBkb25n LCBoZW4gdHJhIHRoYW5oIDMgZG90LiBEZW4gaGVuLCBkbyBraG9uZyBjbyB0aWVuIHRyYSBuZW4g b25nIE4uIGxhbiB0cm9uLiANCkh1bmcgInRyYW5nIiByYSBsZW5oIGNobyBTb24sIEtpZW4gYmFu ZyBtb2kgY2FjaCBwaGFpIHRydXkgdGltIGJhbmcgZHVvYyBjb24gbm8gZHVhIA0KdmUgcXVhbiBO aGEgU2FuIGRlIGdhcCBIdW5nICJ0cmFuZyIuDQoNClRhaSBkYXksIEh1bmcgInRyYW5nIiB2YSBk YW0gZGFuIGVtIGRhbmggZGFwLCBkaSBzdW5nIHZhbyBkYXUgb25nIE4uIGRvYSBiYW4uIFNhdSBk bywgDQpIdW5nICJ0cmFuZyIgcmEgZGlldSBraWVuIGNobyBvbmcgTi4gcGhhaSB0cmEgdHJ1b2Mg NDAwIHRyaWV1IGRvbmcgdmFvIG5nYXkgMjcvNy4gb25nIE4uIA0KeGluIHRyYSAxMDAgdHJpZXUg dHJ1b2MgdmEgZHVvYyBIdW5nICJ0cmFuZyIgZG9uZyB5LiBDaGF5IHZheSBraGFwIG5vaSwgb25n IE4uIGNodXllbiANCnZhbyB0YWkga2hvYW4gY3VhIFNvbiA1MCB0cmlldSBkb25nLiBUcm9uZyBk byBIdW5nICJ0cmFuZyIgMjEgdHJpZXUgZG9uZywgS2llbiA2IHRyaWV1IA0KZG9uZywgRGFuaCA4 IHRyaWV1IGRvbmcsIGNvbiBsYWkgMTUgdHJpZXUgZG9uZyBTb24gZ2l1IGxhaSB0aWV1IHhhaS4N Cg0KQmkgY2FjIGJhbmcgZG9pIG5vIHRodWUgdGhlbyBraWV1IHhhIGhvaSBkZW4sIGRhbmggZGFw LCBkZSBkb2Egb25nIE4uIHRyaW5oIGJhbyBjbyBxdWFuIA0KZGlldSB0cmEgQm8gQ29uZyBhbi4g UXVhIHRydXkgeGV0LCBDNDVCIGRhIGxhbiBsdW90IGJhdCBraGFuIGNhcCBOZ3V5ZW4gVmFuIERh bmg7IA0KRGluaCBYdWFuIFNvbjsgRG8gWHVhbiBLaWVuOyBOZ3V5ZW4gVmFuIEh1bmcgKEh1bmcg InRyYW5nIikgdmEgTGUgVHJvbmcgTmFtLiANCktoYW0geGV0IG5ndW9pLCBub2kgbyBjYWMgZG9p IHR1b25nLCBsdWMgbHVvbmcgbGFtIG5oaWVtIHZ1IHRodSBnaXUgbW90IGtoYXUgc3VuZyANCm5n YW4sIDcgdmllbiBkYW4sIHJvaSBkaWVuLCBiaW5oIGhpdCBtYSB0dXkuLi4gDQoNCmh0dHA6Ly92 aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDgvQmF0LWNvYy1kYWktZ2lhLXhhbmctZGF1LWRvaS0zNC10 eS1kb25nLWNodW9jLW1hbmctOTI3Mjk3LyBRdW9jIFF1YW5nIDIwOjQ3LCAwNi8wOC8yMDEwIChH TVQrNykNCg0KVFAuSENNOiBCYXQgY29jIGRhaSBnaWEgeGFuZyBkYXUgZG9pIDMsNCB0eSBkb25n IGNodW9jIG1hbmcNCg0KU2F1IGtoaSBkdWEgbmFuIG5oYW4gbGVuIG1vdCB4ZSBvIHRvIGR1IGxp Y2gsIG5ob20gYmF0IGNvYyByYSB5ZXUgc2FjaCBuZXUga2hvbmcgdHJhIDMsNCANCnR5IGRvbmcg c2Uga2hvIGJhbyB0b2FuIHRpbmggbWFuZy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxNDAxMDEyMy5hc3B4IE5ob20gUFYgMTQvMDcvMjAx MCAxOjAxIA0KDQpUUCBIQ006IFJhdSAia3kgc2luaCIgdHJlbiBrZW5oIG51b2MgZGVuICAtIEJh byBkb25nIG5ndXkgY28gbmdvIGRvYyAgDQogIA0KQ2FjIGNvIHF1YW4gY2h1YyBuYW5nIGRldSBi aWV0IHJhdSBtdW9uZyB0cm9uZyB0cmVuIGtlbmggbnVvYyBkZW4gY28gdGhlIGdheSBkb2MgY2hv IA0Kbmd1b2kgdGlldSBkdW5nLCAgbmh1bmcgdGh1YyB0ZSAicmF1IGRvYyIgdmFuIHRvbiB0YWkg dHJhbiBsYW4uIA0KDQpIaWVuIDEwMCUgcmF1IG11b25nIG51b2MgZHVvYyB0cm9uZyBvIG5odW5n IHZ1bmcgZGF0IHRydW5nIG5nYXAgbnVvYyB2YSBoYXUgaGV0IHN1IA0KZHVuZyBuZ3VvbiBudW9j IGtlbmggcmFjaC4gRGllbiB0aWNoIHN1IGR1bmcgbmd1b24gbnVvYyBrZW5oIHJhY2ggYmkgbyBu aGllbSBjaGllbSANCjQ3LDM0JSAoUC5UaGFuaCBYdWFuLCBRLjEyIHRodW9jIGtlbmggVGhhbSBM dW9uZzsgUC5UYW0gUGh1LCBRLlRodSBEdWMsIHJhY2ggDQpDYXUgTG9uIHZhIHJhY2ggTmdoZSB0 aHVvYyBuaGFuaCBzb25nIFNhaSBHb24pLiBEYXkgbGEgbmh1bmcgdnVuZyBkYSBkdW9jIGRlIG5n aGkgDQpjaHV5ZW4gZG9pIG5odW5nIHRpZW4gZG8gY29uIGNoYW0uIA0KDQpEYWMgYmlldCB2YW4g Y29uIDMwJSBub25nIGRhbiBzdSBkdW5nIGRhdSBuaG90IGRlIHBob25nIHRydSByYXkgbWVtIG8g Z2lhaSBkb2FuIDItMyANCm5nYXkgdHJ1b2MgdGh1IGhvYWNoIHRyZW4gcmF1IG11b25nIG51b2Mu IA0KDQpOZ3V5IGNvICANCg0KIkRvIG51b2Mga2VuaCBCYSBCbyBiaSBvIG5oaWVtIG5lbiBjaGF0 IGx1b25nIHJhdSBtdW9uZyBvIGRpYSBwaHVvbmcgY3VuZyBiaSBhbmggDQpodW9uZy4gUmF1IG11 b25nIHRyb25nIG8gZGF5IGJhbiBvIGRhdSBjaHUgbmhpZXUgbmd1b2kgZGFuIHZhIG5nYXkgY2Eg dHVpIGN1bmcga2hvbmcgDQpkYW0gYW4iLi0gQmEgTmd1eWVuIEtpbSBPYW5oLCBDaHUgdGljaCBI b2kgTm9uZyBkYW4gUC5CaW5oIENoaWV1IChRLlRodSBEdWMpLCBjaG8gYmlldC4NCg0KQmFjIHNp IFRyYW4gVmFuIEt5LCBIb2kgS2hvYSBob2Mga3kgdGh1YXQgYW4gdG9hbiB0aHVjIHBoYW0gVk4s IHBodSB0cmFjaCBBVFZTVFAgDQpwaGlhIE5hbSwgY2FuaCBiYW86ICJSYXUgbXVvbmcgY28gdG8g Y2h1YyBsb25nIGxlbyAodGhhbiByb25nLCB4b3ApIG5lbiBodXQgbnVvYyByYXQgDQpuaGlldSwg ZG8gdmF5IG5ldSB0cm9uZyB0cm9uZyBtb2kgdHJ1b25nIG8gbmhpZW0gbmFuZyB0aGkgY2h1bmcg c2UgaHV0IG5odW5nIGRvYyBjaGF0LCANCmNhYyBraW0gbG9haSBuYW5nLiBOZ3VvaSB0aWV1IGR1 bmcga2hpIHN1IGR1bmcgY28gbmd1eSBjbyBuZ28gZG9jIGNhcCB0aW5oIHZhIG1hbiB0aW5oLiAN CkNhcCB0aW5oIHRoaSBjbyB0aGUgbmhpbiB0aGF5IGR1b2MgZ2lvbmcgbmh1IHF1YSBjYWMgdnUg bmdvIGRvYyB0aHVjIHBoYW0gdmFuIHRodW9uZyANCnh1eWVuIHhheSByYS4gQ29uIG5nbyBkb2Mg bWFuIHRpbmggdGhpIGtob25nIGhpZW4gaGluaCBuZ2F5LCBtYSB2ZSBsYXUgZGFpIHF1YSBzdSBk dW5nIA0Kc2FuIHBoYW0gcmF1IHRyb25nIHRyb25nIG1vaSB0cnVvbmcgbyBuaGllbSBuaHUgdGhl LCBjbyB0aGUgc2UgdGljaCB0dSBkYW4gbmh1bmcgZG9jIA0KY2hhdCwgY2FjIGtpbSBsb2FpIG5h bmcgbmh1IGNoaSwgdGh1eSBuZ2FuLCBhc2VuLi4uIHNlIGdheSBoYWkgY2hvIHN1YyBraG9lIG5o dTogdW5nIHRodSwgDQphbmggaHVvbmcgbGVuIGNodWMgbmFuZyBzaW5oIHNhbiAoaGllbSBtdW9u LCB2byBzaW5oKS4uLiIuDQoNCkFuaCBjaHVwOiBDYWMgY2FuaCBkb25nIHJhdSBtdW9uZyBvIFAu QmluaCBDaGlldSAoUS5UaHUgRHVjKSBkZXUgc3UgZHVuZyBuZ3VvbiBudW9jIGNoaW5oIA0KdHUg a2VuaCBCYSBCbyBkYW5nIGJpIG8gbmhpZW0ga2ltIGxvYWkgdHJhbSB0cm9uZyAtIEFuaDogTS5O DQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9oY20vMjAxMDEwL0toaS10dS10aGFuLWxhbWll bmctY29uZy1sby10aGllbi05NDE1MzUvIDE3OjU3LCAxMS8xMC8yMDEwIChHTVQrNykNCg0KVFAg SENNOiBOaHVuZyBtaWVuZyBjb25nIGxvIHRoaWVuIHR1IHRoYW4gDQoNCk5oaWV1IG1pZW5nIGNv bmcgbG8gdGhpZW4gdHJvIHRoYW5oIGNhaSBiYXkgdHJlbiBkdW9uZywgZGFuIGRlbiBuaHVuZyBj YWkgY2hldCB0aHVvbmcgdGFtICBvIFRQIEhDTS4gDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5o LXRyaS1YYS1ob2kvNDA3MDc5L0xhaS1zdXAtImJheS1kdW9uZyIteGUtdGFpLWNob25nLXZvLmh0 bWwgU09OIEJJTkggMjIvMTAvMjAxMCwgMDc6NDUgKEdNVCs3KSANCg0KVFAgSENNOiBMYWkgc3Vw ICJiYXkgZHVvbmciLCB4ZSB0YWkgY2hvbmcgdm8NCg0KVFRPIC0gVHJvbmcgY29uIG11YSBuaGUg a2hvYW5nIDIwZzMwIG5nYXkgMjEtMTAsIHhlIHRhaSBiaWVuIHNvIDc3SC05ODE5IGRvIHRhaSB4 ZSANCk5ndXllbiBUYW4gSG9hIChxdWUgQmluaCBEaW5oKSBkaWV1IGtoaWVuIHRyZW4gZHVvbmcg Q2FjaCBNYW5nIGRlbiBuZ2EgYmEgQ2FjaCANCk1hbmcgLSBMdXkgQmFuIEJpY2ggKFAuVGFuIFRo YW5oLCBRLlRhbiBQaHUsIFRQLkhDTSkgdGhpIGJpICJzdXAgYmF5IiwgbmdhIGNob25nIA0Kdm8g bmFtIGdpdWEgZHVvbmcuIA0KDQooQW5oOiBIaWVuIHRydW9uZyBjaGllYyB4ZSB0YWkgYmkgInN1 cCBiYXkiIG5hbSBjaG9uZyB2byBnaXVhIGR1b25nIC0gQW5oOiBTb24gQmluaCkgDQoNClRhaSBo aWVuIHRydW9uZywgY2hpZWMgeGUgdGFpIGJpIG5hbiBjaGFuIGxvaSBob24gbW90IG51YSBuZ2Eg YmEsIHhlIHJhIHZhbyBiaSBjYW4gdHJvLiANCk1vdCBjaGllYyB4ZSB0YWkga2hhYyBkdW9jIGRp ZXUgZG9uZyBkZW4gZGUgdHJ1bmcgY2h1eWVuIGhhbmcgaG9hLiBYZSBiaSBuYW4gY2hvIHhlIGNh dSBkdWEgcmEga2hvaSBoaWVuIHRydW9uZy4gDQpWdSB0YWkgbmFuIGNoaSBsYW0gdGFpIHhlIEhv YSBiaSB4YXkgeGF0IG5oZS4gDQoNClRoZW8gbmd1b2kgZGFuLCBub2kgeGUgdGFpIGxhdCBuZ2Fu ZyB0aHVvbmcgbmdheSBsYSBxdWFuIGh1IHRpZXUgcmF0IGRvbmcga2hhY2ggbmh1bmcgZG8gdHJv aSBtdWEgbmVuIGRpIGNodXllbiBkaSBub2kga2hhYy4gDQpDaG8geGUgdGFpIHN1cCBobyBkdW9j IHNhbiBsYXAgbWF0IGR1b25nIGtob25nIGxhdSBzYXUga2hpIGRhbyB4b2kgbGFwIGRhdCBoZSB0 aG9uZyBjYXAgdGhvYXQgbnVvYy4gDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwvMTk4Ny8y MDEwMDcvQmFuZy1uaG9tLXR1b2ktdGVlbi10aHVjLWhpZW4taGFuZy1jaHVjLXZ1LWhpZXAtZGFt LTE3NTg3MDEvIDExLzA3LzIwMTAgMjA6MTE6MzkgDQoNClRQIEhDTTogQmFuZyBuaG9tIHR1b2kg dGVlbiB0aHVjIGhpZW4gaGFuZyBjaHVjIHZ1IGhpZXAgZGFtIA0KDQpodHRwOi8vbmV3cy5uZHRo dWFuLmNvbS92aWV0LW5hbS9naWEtZGFuaC1kYW4tcGhvbmctaGllcC1kYW0tdGFwLXRoZS0xNjMz MzUvIG5sZC5jb20udm4gLSAxNzowNyAoMjkvMDcvMjAxMCkNCg0KVFBIQ006IEdpYSBkYW5oIGRh biBwaG9uZyBoaWVwIGRhbSB0YXAgdGhlIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vdHBoY21f bGFpX25ob19naWFuZ19ob19jaGVtX25ndW9pX3RyYV90aHUtNi0xMDA5My5odG1sIFRoYW5oTmll bi5jb20udm4gICAyMi8wNC8yMDA4IC0gMTc6NTggDQoNClRQLkhDTTogTGFpIG5obyAiZ2lhbmcg aG8iIGNoZW0gbmd1b2kgdHJhIHRodSANCg0KaHR0cDovL3Zubi52aWV0bmFtbmV0LnZuL3hhaG9p LzIwMDgvMDQvNzc3MDM5LyBQaGFuIENvbmcgMTU6MzcsIDA2LzA0LzIwMDggKEdNVCs3KSANCg0K VFAuSENNOiBDb24gZG8gbmdheSBjYW5nIGxvbmcgaGFuaCANCg0KIC0gTmhpZXUgdnUgY3VvcCB0 YW8gdG9uIGxpZW4gdHVjIHhheSByYS4gVGhhbSBjaGkga2UgY3VvcCBoYW5oIGh1bmcgY2EgbmFu IG5oYW4ga2hpIA0KY3VvcCBnaWF0IGtob25nIHRoYW5oLCBob2FjIGNoZW0gbmd1b2kgdHJ1eSBk dW9pLiBUaW5oIHRyYW5nIGNvbiBkbyBsb25nIGhhbmggdGFpIA0KVFAuSENNIGRhbmcgZ2F5IGJh dCBhbiBjaG8gbmd1b2kgZGFuLCBkYSBkZW4gbXVjIGJhbyBkb25nLg0KIA0KKiBLZSBjdW9wIHRy YSB0aHUgY2hlbSB0cm9uZyB0aHVvbmcgMyBuZ3VvaSB0cnV5IGR1b2kNCiANClZ1IDIgdGhhbmgg bmllbiB0cnV5IGR1b2kgY3VvcCBiaSBrZSBwaGFtIHRvaSBxdWF5IGxhaSBjaGVtIHRyb25nIHRo dW9uZywgeGF5IHJhIGhvbSANCjIvNCwgdGFpIHF1YW4gVGFuIEJpbmgsIG5odSBWaWV0TmFtTmV0 IGRhIGR1YSB0aW4sIGRhbmcgZ2F5IGJ1YyB4dWMgbWFuaCBtZSB0cm9uZyANCm5ndW9pIGRhbi4g VnUgdmllYyBuYXkgY28gYW5oIGh1b25nIG5naGllbSB0cm9uZyBkZW4gdGluaCB0aGFuIHRvIGdp YWMsIGRhdSB0cmFuaCB2b2kgDQp0b2kgcGhhbSBkYW5nIGR1b2MgdmFuIGRvbmcgdHJvbmcgcXVh biBjaHVuZy4gSGllbiwgY28gcXVhbiBDU0RULCBDb25nIGFuIHF1YW4gVGFuIA0KQmluaCBkYW5n IHRpZW4gaGFuaCBjYWMgdGh1IHR1YyB0byB0dW5nLCBraG9pIHRvIHZ1IGFuLCBraGFuIHRydW9u ZyB0cnV5IGJhdCBodW5nIHRodS4NCiANClR1eSBuaGllbiwgdnUgYW4gdHJlbiBraG9uZyBwaGFp IGxhIGNhIGJpZXQuIFRob2kgZ2lhbiBxdWEsIG5oaWV1IG5ndW9pIGRhbiBzb25nIHRhaSANClRQ LkhDTSBkYSBwaGFpIGRvaSBtYXQgdm9pIG5odW5nIHRpbmggaHVvbmcgbmd1eSBoaWVtLCBiaSBk ZSBkb2EgZGVuIHRpbmggbWFuZyB2YSANCnRhaSBzYW4gYm9pIG5odW5nIHRlbiBjb24gZG8gdGFv IHRvbi4NCiANCkN1b3Aga2hvbmcgdGhhbmgsIGRhbmggbHVvbiBraG8gY2h1DQogDQpBbmggVC5O LlEgKHF1ZSBRdWFuZyBOYW0sIG5ndSBxdWFuIDEyLCBUUC5IQ00pIHZhIGdpYSBkaW5oIHZhbiBj aHVhIGhldCBraW5oIA0KaG9hbmcga2hpIG5oYWMgbGFpIGNhdSBjaHV5ZW4gYmkgY3VvcCB4ZSBo dXQsIHZhbyBkZW0gZGF1IHRoYW5nIDMgdnVhIHF1YS4gVmFvIGtob2FuZyANCjIyaDMwLCBkdW9u ZyBRdW9jIGxvIDFBLCBkaSBxdWEgQ29uZyB2aWVuIHBoYW4gbWVtIFF1YW5nIFRydW5nLCBwaHVv bmcgVGFuIA0KQ2hhbmggSGllcCwgcXVhbiAxMiBjb24ga2hhIG5ob24gbmhpcCwgZGVuIGR1b25n IHNhbmcgY2hvYW5nLiBBbmggVC5OLlEgdW5nIGR1bmcgDQpjaGF5IHhlIGJvbiBib24gdmUgbmhh Lg0KIA0KQmF0IG5nbywgbW90IHRpZW5nIHF1YXQgbG9uIGJhbyBhbmggZHVuZyB4ZSBsYWkuIEJh IHRoYW5oIG5pZW4gbGEsIGRpIHRyZW4gaGFpIHhlIG1heSB0dSANCmRhdSBjaGF5IGRlbiwga2Vw IHNhdCB4ZSBhbmgsIGJhdCBkdW5nIHhlLiBOZ2hpIGNodXllbiBraG9uZyBsYW5oLCBhbmggVC5O LlEgbmhhbmggdGF5IA0KcnV0IGNoaWEga2hvYSB4ZSwgcm9pIHZ1dCBkaSwgc2F1IGtoaSBiaSBi YSBuZ3VvaSBsYSBtYXQgZXAgeGUgdmFvIGxlLg0KIA0KS2hvbmcgY2hlIGR1b2MgYW5oIFQuTi5R LCBtb3QgdHJvbmcgYmEgdGhhbmggbmllbiBsYSBkdW5nIHhlIGN1YSBhbmggVC5OLlEgbGVuLCAN Cm5odW5nIGtob25nIHRoZSBraG9pIGRvbmcgdmkga2hvbmcgY28gY2hpYSBraG9hLiBUcm9uZyBr aGkgZG8sIGFuaCBULk4uUSB2dWEga2V1IGN1dSANCnZ1YSB0cmkgaG8gImN1b3AsIGN1b3AsIGN1 b3AuLi4iLCBuaHVuZyBuaHVuZyB0YWkgeGUgeGUgb20gZHVuZyBnYW4gZG8ga2hvbmcgZGFtIGNh biANCnRoaWVwLg0KDQpLaG9uZyBsYXkgZHVvYyB4ZSBtYXkgY3VhIGFuaCBULk4uUSwgYmEga2Ug bGEgaGllbiBuZ3V5ZW4gaGluaCB0ZW4gY3VvcCwgcXVheSBsYWkgDQpkYW5oIHRvaSB0YXAgdmFv IG5ndW9pIGFuaCwga2hpZW4ga2luaCB2bywgZGFtIHZhbyBtYXQsIG5ndW9pIGJlIGJldCBtYXUu IFRoYXkgYW5oIA0KVC5OLlEgbmdhIGd1YywgY2h1bmcgYm8gZGksIGtob25nIHF1ZW4gcXVhbmcg bGFpIG1heSBjYXUgY2h1aSB0aGUgdmEgaGFtIGRvYS4NCiANClRoYXkgYmEgdGVuIGN1b3AgYm8g ZGksIGNhbmggdGFpIHhlIHhlIG9tIG1vaSBkYW0gdGllbiBkZW4gZ2l1cCBhbmggVC5OLlEgZHVu ZyBkYXkgdmEgDQpkZSBuZ2hpIGR1YSBkaSBjYXAgY3V1LiBOaHVuZyBxdWEgc28gaGFpLCBhbmgg a2hvbmcgZGFtIG5obyBhaSBudWEsIG5lbiB0dSB0aW0ga2hvYSB4ZSANCnZhIGNoYXkgdmUgbmhh LCBuaG8gbmd1b2kgdGhhbiBkdWEgdmFvIGJlbmggdmllbiBjYXAgY3V1Lg0KIA0KQ2FuaCB0YWkg eGUgeGUgb20gY2h1bmcga2llbiBub2ksIGR1IGJpZXQgbmFuIG5oYW4gYmkgY3VvcCwgYmkgZGFu aCwgbmh1bmcga2hvbmcgZGFtIA0KY2FuIHRoaWVwIHZpIGNvbiBsYW0gYW4sIGhhbmggbmdoZSB0 YWkgZGF5LiBOZXUgYmkgYm9uIGNodW5nIHRyYSB0aHUgdGhpIGNvIGtoaSBtYXQgbWFuZyANCmNo dSBjaHVhIG5vaSBjaHV5ZW4gbWF0IGNobyBsYW0gYW4uDQogDQpOaHVuZyBjYXUgY2h1eWVuIGto byB0aW4gdHVvbmcgY2h1bmcgbmh1IGtob25nIGNvbiBvIFRQLkhDTSB0aGFwIG5pZW4gbmF5IG5o dSANCm5hbiBuaGFuIGJpIGdpYXQgZGF5IGNodXllbiBuaHVuZyBjaGkgdmkgZG8gbGEgdmFuZyBn aWEgbmVuIGtoaSBrZSBjdW9wIHBoYXQgaGllbiByYSBkYSANCnF1YXkgbGFpIGRhbmguLi4gbmF5 IGxhaSB0YWkgZGllbiB2YSBtdWMgZG8gbmd1eSBoaWVtLCB0cmFuZyB0cm9uIGNvbiBkYW5nIGJh byBkb25nIGhvbi4NCiANCkRhbmggbmd1b2kgZHVvaSBjdW9wDQogDQpOaHVuZyB0dW9uZywgc2F1 IGtoaSBiYW5nIG5ob20geGEgaG9pIGRlbiBOYW0gQ2FtIGJpIHRyaWV0IHBoYSwgbmh1bmcgaGFu aCBkb25nIGNvbiANCmRvIHNlIGRhbiBjaGkgY29uIGxhICJsaWNoIHN1Iiwgbmh1bmcgdm9pIG11 YyBkbyBnYXkgYW4gbGllbiB0dWMgdmEgdGFvIHRvbiBuaHUgaGllbiBuYXksIA0KY2hvIHRoYXks IHRodWMgdHJhbmcgY29uIGRvIGxvbmcgaGFuaCBkYSBkZW4gbXVjIGJhbyBkb25nIHZhIGNhbiBj byBiaWVuIHBoYXAgbWFuaCANCm1lIGhvbiB0dSBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQuDQog DQpOZ3VvbiB0aW4gY3VhIFZpZXROYW1OZXQgdHUgUGhvbmcgQ1NEVCB0b2kgcGhhbSB2ZSBUVFhI LCBDb25nIGFuIFRQLkhDTSBjaG8gDQpiaWV0LCBuaHVuZyBiYW5nIG5ob20gY3VvcCBnaWF0IHRy ZW4gZHVvbmcgcGhvIHRodW9uZyBkaSB0aGFuaCBtb3QgdG9wLCB2YSBjaGlhIHJhIHRyZW4gDQoz IJYgNCB4ZSBtYXkuIFNhdSBraGkgZ2F5IGFuLCBib24gY2h1bmcgbHVvbiBibyB0cmkgZG9uZyBi b24gY2hheSAiYm9jIGhhdSIuIE5ldSBwaGF0IA0KaGllbiBjbyBuZ3VvaSB0cnV5IGR1b2ksIG5o dW5nIHRlbiAiYm9jIGhhdSIgY28gbmhpZW0gdnUgZHVuZyB0aHUgZG9hbiwgdGhhbSBjaGkgZ2F5 IA0KdGFpIG5hbiwgZGUgY2hhbiBkdW9uZyB0cnV5IGR1b2kgaG9hYyBnaWEgdm8gZ2F5IG1hdSB0 aHVhbiB2YSBoYW5oIGh1bmcgbmd1b2kgdHJ1eSANCmR1b2kuIA0KDQpNb3Qga2hpIGJvbiBjdW9w IHJvaSB2YW8gdGluaCB0cmFuZyBiaSBwaGF0IGhpZW4sIGhvYWMgc2FwIGJpIGJhdCwgY2h1bmcg a2hvbmcgdHUgbW90IHRodSANCmRvYW4gbmd1eSBoaWVtIG5hbyBkZSBkb2kgcGhvLCBuZW4gdGh1 b25nIGNhYyBjdW9jIHRydXkgZHVvaSBjdWEgbmd1b2kgZGFuIGNhbiBjbyBzdSANCmhvIHRybyBu aGlldSBuZ3VvaSB2YSBiYW8gY2hvIGNhbmggc2F0IGNoYW4gYmF0Lg0KIA0KS2hvbmcgaXQgdHJ1 b25nIGhvcCwgbmd1b2kgZGFuIGR1b2kgY3VvcCBiaSBkb25nIGJvbiBjdWEga2UgcGhhbSB0b2kg ZGFuaCBuZ2F5IHRyZW4gDQpkdW9uZyBkdW9pIGN1b3AuIFRoYW0gY2hpLCBzYXUga2hpIGN1b3Ag Z2lhdCBraG9uZyB0aGFuaCwgYmFuZyBjdW9wIGNvbiBxdWF5IGxhaSBoaWVuIA0KdHJ1b25nIGRl IHRpbSByYSBuZ3VvaSBkdW9pIGJhdCBkZSBkYW5oLCBjaGVtLCBtYSB0cnVvbmcgaG9wIGN1YSBh bmggVHJpbmggWHVhbiBUYW0gDQooU04gMTk2MikgdmEgYW5oIFRyYW4gVmFuIFRoYW5oIChTTiAx OTU4KSBjdW5nIG5ndSB0cmVuIGR1b25nIENvbmcgSG9hLCBxdWFuIFRhbiANCkJpbmggbGEgbW90 IHRyb25nIG5odW5nIHZ1IHZpZWMgZHVvYyBjaHUgeS4NCiANClRydW9jIHRpbmggdHJhbmcgdHJl biwgQ29uZyBhbiBUUC5IQ00gZGEgdGhhbmggbGFwIGx1YyBsdW9uZyBDYW5oIHNhdCBoaW5oIHN1 IGRhYyANCm5oaWVtLCBsaWVuIHR1YyB0byBjaHVjIHR1YW4gdHJhLCBkZSBwaGF0IGhpZW4gdmEg Y2hhbiBkdW5nIG5odW5nIGhhbmggZG9uZyB0b2kgcGhhbSBkby4gDQpOaHVuZyB0cnVvYyB0aHVj IHRlLCB2b2kgZGlhIGJhbiBxdWEgcm9uZywgbHVjIGx1b25nIGNvbiBtb25nIG5odSBoaWVuIG5h eSwgdGhpIGNvIHF1YW4gDQpiYW8gdmUgcGhhcCBsdWF0IGNhbiBjbyBiaWVuIHBoYXAgbWFuaCBt ZSBob24gbnVhLCBkZSBiYW8gdmUgc3UgYW4gdG9hbiBjaG8gbmd1b2kgZGFuLCANCmRhYyBiaWV0 IHZvaSBuaHVuZyBuZ3VvaSBjbyB0aW5oIHRoYW4gZGF1IHRyYW5oIGNob25nIHRvaSBwaGFtIGNh by4gDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL1BoYXAtTHVhdC81MDE3NTAvVFBIQ00tQ29u LWRvLWRhaS1uYW8tYmVuLXhlLUFuLVN1b25nLmh0bWwgS2hvaSBOZ3V5ZW4gMDk6MzMgMzAvMDUv MjAxMCANCg0KVFBIQ006IENvbiBkbyBsYW0gbG9hbiBiZW4geGUgQW4gU3VvbmcNCg0KVFAgLSBD aHV5ZW4gY29uIGRvIHF1YXkgbyBiZW4geGUgQW4gU3VvbmcgKFRQSENNKSBkYSB4dWF0IGhpZW4g dHUgbGF1IG5odW5nIGdhbiANCmRheSwgY2h1bmcgY29uZyBraGFpIGNvaSB0aHVvbmcgbHVhdCBw aGFwLiANCg0KKEFuaDogTW90IHNvIG5ndW9pIGRhbmcgaGFtIGRvYSB0YWkgeGUgdmEgaGFuaCBr aGFjaCBjdWEgQ29uZyB0eSBUTkhIIERvbmcgUGh1b2MuIA0KQW5oIGRvIGJhbiBkb2MgY3VuZyBj YXApLiANCg0KTG9hbiANCg0KTmdheSAyMi01LCBkdW9jIHN1IGNoYXAgdGh1YW4gY3VhIFNvIEdp YW8gdGhvbmcgVmFuIHRhaSAoR1QtVlQpIFRQSENNLCBDdHkgVE5ISCANCkRvbmcgUGh1b2Mga2hh aSB0cnVvbmcgZG9pIHhlIDE2IGNobyBjaGF0IGx1b25nIGNhbyBkaSB0dXllbiBUUEhDTSAtIFRh eSBOaW5oLiBUdXkgDQpuaGllbiwgYmEgY2h1eWVuIHhlIGRhdSB0aWVuIGN1YSBDdHkgRG9uZyBQ aHVvYyB4dWF0IGJlbiBBbiBTdW9uZyBkYSBiaSBkYXUgZ2F1IG5nYW4gDQpjYW4uIEhhbmcgY2h1 YyBkb2kgdHVvbmcgYnVhIHZheSBwaG9uZyB2ZSwgbmdhbiBjaGFuIGhhbmgga2hhY2ggbXVhIHZl IHZhIGhhbmggaHVuZyANCm5oYW4gdmllbi4gTW90IHNvIGhhbmgga2hhY2ggbXVhIGR1b2MgdmUg dGhpIGJpIG5ob20gbmF5IGhhbSBkb2EgYmF0IHRyYSBsYWkuIENvbiANCm5nb2FpIGJhaSB4ZSwg bW90IHNvIG5ndW9pIGR1bmcgdmF0IGN1bmcgZGFwIHZhbyB0aHVuZyB4ZSBjdWEgQ3R5IERvbmcg UGh1b2Mga2hpZW4gDQpuaGlldSB0YWkgeGUga2hvbmcgZGFtIGxlbiB4ZSB0aHVjIGhpZW4gbG8g dHJpbmguIA0KDQpPbmcgTi5BLlQgLSBoYW5oIGtoYWNoIGRpIHR1eWVuIHhlIGN1YSBDdHkgRG9u ZyBQaHVvYyBrZTogS2hvYW5nIDE4IGdpbyBuZ2F5IDIyLTUsIA0KeGUgNzBLLTQ2Li4uIGNodWFu IGJpIGxhbiBiYW5oIHJvaSBiZW4gQW4gU3VvbmcgdGhpIG1vdCB0aGFuaCBuaWVuIGRpZXUga2hp ZW4geGUgZ2FuIA0KbWF5IGNobyBtb3QgcGh1IG51IGxhbyBkZW4gY2hhbiBuZ2FuZyBkYXUgeGUu IEhhaSBuZ3VvaSBsaWVuIHR1YyBjaHVpIGJvaSwgdGhvYSBtYSANCm5odW5nIGxvaSB0dWMgdGl1 LiBUYWkgeGUgcGhhaSBkb25nIGtpbiBjdWEga2luaCB4ZSB2YSBiYW8gdmUgYmVuIHhlIGN1bmcg cmEgbmdhbiBjYW4gDQpuaHVuZyBoYWkgZG9pIHR1b25nIHRyZW4gZGEgZHVuZyB4ZSBtYXkgY2hh biB0cnVvYyBkYXUgeGUgdmEgZG9hIHRhaSB4ZSBuZXUgY2hvIHhlIHJvaSANCmtob2kgYmVuIHhl IHNlIHh1IG5nYXkuIEN1bmcgbHVjIGRvLCBuaGlldSBkb2kgdHVvbmcga2hhYyBjdW5nIHh1YXQg aGllbiwgZHVuZyB0cnVvYyANCmRhdSB4ZSBraGllbiB0YWkgeGUgcGhhaSBsdWkgeGUgbGFpIHZh IG1vIGN1YSB4ZSBjaGF5IHZhbyB0cm9uZy4NCg0KQ2h1YSBkdW5nIGxhaSBkbywga2hpIHhlIGN1 YSBDdHkgRG9uZyBQaHVvYyB0dSBUYXkgTmluaCBrZXQgdGh1YyBsbyB0cmluaCB2YW8gYmVuIEFu IA0KU3VvbmcgdHJhIGtoYWNoLCA0IGRvaSB0dW9uZyB4dWF0IGhpZW4gdmEgZGFuaCB0YWkgeGUg Z3VjIHRyZW4gdm8gbGFuZy4gSGFuaCBraGFjaCB0cmVuIA0KeGUgaG9hbmcgaG90IGJvIGNoYXkg Y3VuZyBiaSBuaG9tIGdpYW5nIGhvIG5heSBydW90IGR1b2kuIFN1IHZpZWMgdHVvbmcgdHUgY3Vu ZyBkaWVuIA0KcmEgbyBiZW4geGUgdGluaCBUYXkgTmluaC4gDQoNCkFuIGtob25nIGR1b2MsIGRh cCBkbz8NCg0KVmllYyBraGFpIHRoYWMgdHV5ZW4geGUgdGhpIGRpZW0gZGEgZHVvYyBTbyBHVC1W VCB2YSBCYW4gcXVhbiBseSBiZW4geGUgQW4gU3VvbmcgDQpjaHUgdHJ1b25nLCBraHV5ZW4ga2hp Y2ggY2FjIGNodSBkYXUgdHUgdHUga2hvYW5nIGhhaSBuYW0gdHJ1b2MuIFNvbmcsIGtob25nIG1v dCANCmRvYW5oIG5naGllcCBuYW8gZGFtIG1hbmggZGFuIGRhdSB0dSBib2kgYmkgbW90IHNvIG5o YSB4ZSBkYW5nIGtoYWkgdGhhYyB0dXllbiANClRQSENNIJYgVGF5IE5pbmggYmFuIHRpZW5nIHNl IHh1LiBDaG8gZGVuIGtoaSBDdHkgRG9uZyBQaHVvYyBibyByYSBob24gNyB0eSBkb25nIA0KZGUg ZGF1IHR1IGtpbmggZG9hbmggdHV5ZW4geGUgbmF5IHRoaSBsb2kgZG9hIHRyZW4gZGEgdGhhbmgg aGllbiB0aHVjLiANCg0KVHJ1b2MgdnUgdmllYyBuYXksIG5nYXkgMjgtNSwgbW90IGN1b2MgaG9w IGtoYW4gZ2l1YSBjb25nIGFuLCBjaGluaCBxdXllbiwgbmhhIHF1YW4gbHkgDQpkYSBkaWVuIHJh IHRhaSBiZW4geGUgQW4gU3VvbmcuIEhhbmggdmkgY3VhIGRhbSBjb24gZG8gZHVvYyB4ZW0gbGEg bmdhbmcgbmhpZW4ga2hpIA0KYmllbiBiYW4gY3VhIENBIHhhIEJhIERpZW0gKGh1eWVuIEhvYyBN b24pIGdoaSBuaGFuIG5odSBzYXU6IGhhbmggdmkgY2FjIGRvaSB0dW9uZyANCnF1YSBodW5nIGhh biBraGllbiBDQSB4YSBCYSBEaWVtIHBoYWkgY3UgbHVjIGx1b25nICJobyB0b25nIiBkb2FuIHhl IGN1YSBDdHkgRG9uZyANClBodW9jIHh1YXQgYmVuLiANCg0KVHV5IG5oaWVuIG1vdCBzbyB4ZSBr aGFjaCBjdWEgQ3R5IG5heSB0cmVuIGR1b25nIHZlIGJlbiB4ZSBBbiBTdW9uZyBjdW5nIGJpIGNo YW4gdmEgDQpuaG9tIGNvbiBkbyBkYSB0YW4gY29uZyB0YWkgeGUsIGtoaWVuIGhvIHBoYWkgYm8g Y2hheS4gVGFpIHhlIEIgZGlldSBraGllbiB4ZSBiaWVuIHNvIA0KNzBLLTQ2OS4uLiBjaG8gYmll dCwgb25nIGJvIGNoYXkgdmFvIG5oYSBkYW4gdmVuIGR1b25nIG5odW5nIG5ob20gZG9pIHR1b25n IG5heSB2YW4gDQpkdW9pIHRoZW8gaGFuaCBodW5nLiBNb3QgZG9pIHR1b25nIHRyb25nIG5ob20g Y29uIGRvIGNvbiBub2k6ICJUdWkgbWF5IHR1b25nIHR1aSB0YW8gDQpibyByYSBzYXUsIGJheSB0 cmFtIHRyaWV1IG11YSB4ZSBkZSBjaG8gdHVpIG1heSBjdW9wIGNvbSBhISIuIA0KDQpPbmcgTmd1 eWVuIFRhbiBMb2MtIEdpYW0gZG9jIGJlbiB4ZSBBbiBTdW9uZyB4YWMgbmhhbiwgdmllYyBuaG9t IGNvbiBkbyBoYW5oIA0KaHVuZyB0YWkgeGUsIG5oYW4gdmllbiB2YSBoYW5oIGtoYWNoIHRhaSBi ZW4geGUgQW4gU3VvbmcgbGEgY28gdGhhdC4gQmFuIGNoYXQgY3VhIHZhbiBkZSANCmxhIGNhbmgg dHJhbmgga2hvbmcgbGFuaCBtYW5oIGdpdWEgQ3R5IGtpbmggZG9hbmggeGUgY2hhdCBsdW9uZyBj YW8gdmEgY2FjIG5oYSB4ZSBjdS4gDQoNClNhdSB2dSB2aWVjLCBkb2kgbmd1IGJhbyB2ZSBjdWEg YmVuIHhlIEFuIFN1b25nIGRhIGR1b2MgY2hhbiBjaGluaCBsYWkuIE5nb2FpIHJhLCBtb3QgDQp0 byBiYW8gdmUgY2h1eWVuIHRyYWNoIGRhIGR1b2MgdGhhbmggbGFwIGRlIHh1IGx5IG5oYW5oIHN1 IGNvIGtoaSBjbyB5ZXUgY2F1LiAiVGh1YyB0ZSwgDQpsdWMgbHVvbmcgYmFvIHZlIGNodXllbiB0 cmFjaCBjaGkgY28gdGhlIGdpYWkgcXV5ZXQgdGluaCB0cmFuZyB0cm9uZyBiZW4gdmEgZGVuIG5n YSB0dSANClRydW5nIENoYW5oIGxhIGhldC4gTmdvYWkgcGhhbSB2aSBuYXkgY29pIG5odSBjaHVu ZyB0b2kgZGFuaCBjaGl1IiAtIG9uZyBMb2Mgbm9pLiANCg0KQ0EgeGEgQmEgRGllbSBjaG8gaGF5 LCBkYSBjaG8gZ29pIG1vdCBzbyBkb2kgdHVvbmcgdGhhbSBnaWEgaGFuaCBodW5nIHRhaSB4ZSwg aGFuaCANCmtoYWNoIHZhIG5oYW4gdmllbiBDdHkgRG9uZyBQaHVvYy4gTW90IHZhaSBuZ3VvaSBu YXkgZHVvYyBuaGFuIGRpZW4gbGEgZG9pIHR1b25nIA0KaGluaCBzdSBuaHU6IEN1b25nICJjbyIg KG5oYSBkb2kgZGllbiB2b2kgYmVuIHhlIEFuIFN1b25nKSwgY2h1eWVuIGN1IGRhbiBlbSBkdW5n IA0KZG9jIHR1IGNhdSB2dW90IEFuIFN1b25nIGRlbiBraHUgdnVjIGJlbiB4ZSBkZSBvIGVwLCBi dW9jIGhhbmgga2hhY2ggcGhhaSBkaSB4ZSANCmN1YSBjaHVuZzsgQ3UgImRlbiIsIFR1YW4uLi4g U29uZywgbmh1bmcgbmd1b2kgbmF5IHRodWEgbmhhbiBsYSBjaGkgImhhbSBkb2EiIGNodSANCmto b25nIGhhbmggaHVuZyBuaHUgdHVvbmcgdHJpbmggY3VhIGNhYyBuYW4gbmhhbi4gDQoNCmh0dHA6 Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS14YS1ob2kvUGhhcC1sdWF0LzM2NDYzNy9WdS1jaGF5LWFu LW8tVGh1LUR1Yy1UUEhDTS1DYWMtZHVvbmctc3Utbm9wLWxhaS0zMC10cmlldS1kb25nLmh0bWwg UEhBTSBNSU5IIERVQyAyMi8wMi8yMDEwLCAwODoyNCAoR01UKzcpIA0KDQpUUCBIQ006IENoYXkg YW4gbyBUaHUgRHVjIC0gQ2FjIGR1b25nIHN1IG5vcCBsYWkgMzAgdHJpZXUgZG9uZw0KDQpUVCAt IENoaWV1IDIxLTIsIG5ndW9uIHRpbiB0dSBDdWMgUGhvbmcgY2hvbmcgdG9pIHBoYW0gdmUgdHJh dCB0dSB4YSBob2kgKEMxNEIpIEJvIA0KQ29uZyBhbiBjaG8gYmlldCB0aHVvbmcgc2kgTi5ULkEu IChkb2kgY2FuaCBzYXQgZGlldSB0cmEgdG9pIHBoYW0gdmUgdHJhdCB0dSB4YSBob2kgQ29uZyAN CmFuIFEuVGh1IER1YykgY3VuZyBoYWkga2llbSBzYXQgdmllbiBWaWVuIEtTTkQgUS5UaHUgRHVj IGRhIG5vcCBsYWkgY2hvIGNvIHF1YW4gDQpkaWV1IHRyYSAzMCB0cmlldSBkb25nIG5oYW4gY3Vh IGdpYSBkaW5oIGR1b25nIHN1IGRlIGNoYXkgYW4uDQoNCk5ndW9uIHRpbiBjaG8gYmlldCBzYXUg a2hpIGJpIEMxNEIgbW9pIHZlIHRydSBzbyBsYW0gdmllYywgdGh1b25nIHNpIE4uVC5BLiB2YSBo YWkga2llbSANCnNhdCB2aWVuIGN1YSBWaWVuIEtTTkQgUS5UaHUgRHVjIGNvIGxpZW4gcXVhbiB0 b2kgdnUgY2hheSBhbiBkYSB0aHVhIG5oYW4gdmllYyBuaGFuIA0KdGllbiBjdWEgZ2lhIGRpbmgg ZHVvbmcgc3UuIEdpYSBkaW5oIGR1b25nIHN1IGN1bmcgbm9wIGNhYyBnaWF5IHRvIGxpZW4gcXVh biB0b2kgdmllYyANCmdpYW8gbmhhbiB0aWVuIHZhIHRob2EgdGh1YW4gY2hheSBhbi4gSG8gc28g dnUgdmllYyBkYSBkdW9jIEMxNEIgY2h1eWVuIGNobyBDb25nIGFuIA0KVFAuSENNIHRodSBseSBk aWV1IHRyYS4NCg0KVHJ1b2MgZG8sIG1vdCBkb2kgdHVvbmcgY28gaGFuaCB2aSB0cm9tIGNhcCB0 YWkgc2FuIGJpIENvbmcgYW4gSC5CaW5oIENoYW5oIGJhdCBnaXUgdmEgDQpjaHV5ZW4gZ2lhbyBj aG8gQ29uZyBhbiBRLlRodSBEdWMgdGh1IGx5LiBLaGkgbmd1b2kgbmhhIGR1b25nIHN1IHRvaSB0 aGFtIG51b2ksIA0KdGh1b25nIHNpIE4uVC5BLiBkYSB0aWVwIGNhbiwgbm9pIGNvIHRoZSBnaXVw IGR1b25nIHN1IGR1b2MgdGFpIG5nb2FpLCB4dSBseSBoYW5oIGNoaW5oLCANCmtob25nIGtob2kg dG8gdnUgYW4gdmEgcmEgZ2lhIDYwIHRyaWV1IGRvbmcuIEhhaSBiZW4gdGhvYSB0aHVhbiB2YSBn aWFvIG5oYW4gMzAgdHJpZXUgZG9uZyB0cnVvYy4NCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wv UGhhcC1sdWF0LzIwMDEvMDgvM0I5QjQwMDAvIExhbyBEb25nIDMwLzgvMjAwMSwgMDk6MzQgR01U KzcNCg0KVFAgSENNOiAzMCBjYW4gYm8ga2hvaSBwaGFwIGx1YXQgVFAgSENNIGNvIGxpZW4gcXVh biBkZW4gY2hheSBhbg0KDQpDbyBxdWFuIERpZXUgdHJhIFRvbmcgY3VjIENhbmggc2F0IChwaGlh IE5hbSkgdnVhIGJhdCwgdGFtIGdpYW0gYmkgY2FuIE5ndXllbiBWYW4gDQpDdSwgbmd1eWVuIGRh aSB1eSB0aHVvYyBQaG9uZyBDYW5oIHNhdCBkaWV1IHRyYSBDb25nIGFuIFRQIEhDTSwgdmkgY28g bGllbiBxdWFuIGRlbiANCm1vdCBkdW9uZyBkYXkgImNoYXkiIGFuIG1hIHR1eSBsb24uIA0KDQpU cnVvYyBkbywgQ28gcXVhbiBEaWV1IHRyYSBkYSBraG9pIHRvIE5ndXllbiBWYW4gUXVhbmcsIG5n dXllbiBkaWV1IHRyYSB2aWVuIENvbmcgYW4gDQpxdWFuIDEsIGRhIGJpIHRhbSBnaWFtLCB2aSBj byBoYW5oIHZpIG5oYW4gaG9pIGxvIDcwIHRyaWV1IGRvbmcgZGUgImNoYXkiIGFuIGNobyBtb3Qg YmkgDQpjYW4gY28gbGllbiBxdWFuIGRlbiBtYSB0dXkuIA0KTGFuaCBkYW8gQm8gQ29uZyBhbiBj dW5nIGNobyBiaWV0LCBjbyB0b2kgaG9uIDMwIGNhbiBibyB0aHVvYyBraG9pIHBoYXAgbHVhdCBv IFRQIA0KSENNIGxpZW4gcXVhbiBkZW4gZHVvbmcgZGF5ICJjaGF5IiBhbiBtYSB0dXkgbmF5LiAN Cg0KaHR0cDovL3d3dy50aW4yNDcuY29tL3RwX2hjbV9jb25fZG9fbGFpX3Zhb19uaGFfY2hlbV9u Z3VvaS02LTIwNjUwLmh0bWwgdm5NZWRpYS52biAgMTYvMDUvMjAwOCAtIDA4OjAxIA0KDQpUUCBI Q006IENvbiBkbyBsYWkgdmFvIG5oYSBjaGVtIG5ndW9pIA0KDQpOaG9tIGNvbiBkbyBuYXkga2hv bmcgY2FuIGRlbyBraGF1IHRyYW5nIGdpYXUgbWF0IHZhIGx1bmcgdGh1bmcgZGkgYm8uIFNhdSBr aGkgeHVvbmcgDQp0YXkgY2hlbSBuZ3VvaSBkYSBtYW4sIGNhIG5ob20gY2FtIGh1bmcga2hpIGR1 bmcgZGluaCBkaSB2YW8gaGVtIHJvaSBiaWVuIG1hdCANCg0KaHR0cDovL3RpbnR1Y3Ryb25nbmdh eS52bi90aW4taGluaC1zdS10aW4tdHVjLXN1LWtpZW4tdHJvbmctbmdheS92dS1hbi1uYW0tY2Ft LXhhYy00LXR1LXR1LWR1b2MtbGF5LXRyb20tdm9pLWdpYS0yMjUtdHJpZXUtZG9uZyBOZ3V5ZW4g SGFpIDEzLTA4LTIwMTAgDQoNClRQIEhDTTogVnUgYW4gTmFtIENhbSAtIFhhYyA0IHR1IHR1IGR1 b2MgbGF5IHRyb20gdm9pIGdpYSAyMjUgdHJpZXUgZG9uZyANCg0KVGhlbyBuZ3VvbiB0aW4gcmll bmcgY3VhIFZuRXhwcmVzcywgQ29uZyBhbiBUUCBIQ00gZGEgdmFvIGN1b2MgZGUgZGlldSB0cmEg dmUgDQpkdW9uZyBkYXkgdHJvbSB4YWMgdHUgdG9pIHRhaSBwaGFwIHRydW9uZyBMb25nIEJpbmgs IHF1YW4gOSwgVFAgSENNLiBOaHVuZyB0aG9uZyANCnRpbiBiYW4gZGF1IGNobyB0aGF5IHhhYyA0 IHR1IHRvaSB0cm9uZyB2dSBhbiBOYW0gQ2FtIGR1b2MgdHJvbSB2b2kgZ2lhIDI1NSB0cmlldSBk b25nLg0KDQo1aDMwIHNhbmcgbmdheSAzLzYsIEhvaSBkb25nIHRoaSBoYW5oIGFuIFRQIEhDTSB0 aWVuIGhhbmggeHUgYmFuIDUgdHUgdHUgdHJvbmcgdnUgYW4gDQpOYW0gQ2FtIHZhIGRvbmcgcGhh bSB0YWkgdHJ1b25nIGJhbiBUaHUgRHVjLCBxdWFuIDkuIENoaSBzYXUgdmFpIHRpZW5nLCBtb3Qg bmd1b2kgDQpkYW4gb25nIGRlbiBtb2kgbmh1bmcgdGhhbiBuaGFuIHR1IHRvaSB0aGFtIGdpYSB2 YW8gImRpY2ggdnUgZGFjIGJpZXQiIHZvaSBjaGkgcGhpICJjYXQgY28iLiANCkRlbiBraG9hbmcg OGggc2FuZyBjdW5nIG5nYXksIGNoaSBOZ3V5ZW4gVGhhbmggVGhpZW4gKGNvbiBkYXUgTmFtIENh bSksIA0KVHJ1b25nIEhpZW4gVnUgKGNvbiB0cmFpIE5hbSBDYW0pIGRlbiB0aGFwIG5oYW5nIHRy dW9jIG1vIGNoYSB2YSBtbyBOZ3V5ZW4gSHV1IA0KVGhpbmggdGhpIG1vdCB0aGFuaCBuaWVuIHR1 IHh1bmcgbGEgVHkgZGVuIGhvaSBjaHV5ZW4sIGRlIG5naGkgZGUgaG8gZ2l1cCB0cm9tIHhhYy4g RG8gDQpkYW5nIGRhdSBidW9uIHZhIGNodWEgYmFuIGJhYyBuZW4gY2hpIFRoaWVuIGtob25nIGRv bmcgeS4NCg0KMyBuZ2F5IHNhdSwga2hpIG5odW5nIHRoYW4gbmhhbiBjdWEgTmFtIENhbSBkZW4g cGhhcCB0cnVvbmcgZGUgbW8gY3VhIG1hIHRoaSB0aGF5IA0KbW8gY3VhIENoYXUgUGhhdCBMYWkg RW0gZGEgZHVvYyBkb24gYmFuZyBwaGFuZy4gRGFuZyBob3QgaG9hbmcgdGhpIG5ndW9pIGRhbiBv bmcgDQpob20gdHJ1b2MgbGFpIGRlbiBnYXAsIHRob25nIGJhbyBjaG8gZ2lhIGRpbmggYmlldCB4 YWMgY3VhIExhaSBFbSBkYSBkdW9jIGRvbiBkaSwgZG9uZyANCnRob2kgbmdvIHkgdGllcCB0dWMg ZHVhIHhhYyBjdWEgTmFtIENhbSB2YSBIdXUgVGhpbmggZGkgdGhpZXUgdGFpIERvbmcgTmFpLiBH aWEgdHJvbiANCmdvaSBsYSAxNDAgdHJpZXUgYmFvIGdvbSBjYSBob20gdmEgY2hpIHBoaSBkZW0g eGFjIGRpIGNob24gbm9pIGtoYWMuIFZpIG11b24gbmh1bmcgDQpuZ3VvaSBkYSBtYXQgZHVvYyB5 ZW4gbmdoaSBuZW4gY29uIGdhaSBOYW0gQ2FtIGRvbmcgeS4gRGVtIDYvNiwgbmhvbSBkYW8geGFj IGRhIGJpIA0KbWF0IGRhbyBtbyBsYXkgeGFjIE5hbSBDYW0gdmEgSHV1IFRoaW5oLCBkZW4gc2Fu ZyBob20gc2F1IHRoaSBkZW0gdGhpZXUgdGFpIEJpZW4gSG9hLCBEb25nIE5haS4NCg0KRG9pIHZv aSB4YWMgY3VhIFBoYW0gVmFuIE1pbmggKHR1YyBNaW5oICJCdSIpIGN1bmcgZHVvYyBnYSBkYW4g b25nIHRlbiBUeSBkZW4gDQoiY2hhbyBoYW5nIi4gTmdheSBzYW5nIDMvNiwga2hpIGNhIGdpYSBk aW5oIE1pbmggY29uIGRhbmcgbnVjIG5vIHRydW9jIGNhaSBjaGV0IGN1YSANCm5ndW9pIHRoYW4g dGhpIHh1YXQgaGllbiBoYWkgdGhhbmggbmllbiBkZW4gdHJ1b2MgbW8gdHUgZ2lvaSB0aGlldSBs YSBUaGFuaCB2YSBUeSBuZ28geSANCmdpdXAgZ2lhIGRpbmggZHVhIHhhYyBuZ3VvaSB0aGFuIHJh IGtob2kgcGhhcCB0cnVvbmcuIEhvIGNobyBiaWV0IHNlIGxvIHRvYW4gYm8gdm9pIA0KZ2lhIHR1 IDgwIGRlbiA5MCB0cmlldSBkb25nLiBHaWEgZGluaCBNaW5oIHRoYXkgc28gdGllbiBxdWEgbG9u IG5lbiB0aHVvbmcgbHVvbmcgZ2lhbSBib3QgdGllbi4gDQpTYXUgbmhpZXUgbGFuIG1hYyBjYSwg VGhhbmggdmEgVHkgZG9uZyB5IGxheSB4YWMgdm9pIGdpYSA2MCB0cmlldSB2YSBoZW4ga2hvYW5n IDExaCANCmRlbSA1LzYgdGhpIGRlbSB0aWVuIGxlbiBkZSBjaHVuZyB0aWVuIGhhbmggbGF5IHhh Yy4gRGVuIG5nYXkgaGVuLCBuaHVuZyBnaWEgZGluaCBNaW5oIA0KY2hpIGNoYXkgdmF5IGR1b2Mg NTUgdHJpZXUgZG9uZyBuZW4gZGVtIGhvbSBkbyBwaGFpIG5hbiBuaSBtYWkgY2h1bmcgbW9pIGRv bmcgeSBkZW0gDQp4YWMgTWluaCAiQnUiIHZlIGNob24gY2F0IHRhaSBuZ2hpYSB0cmFuZyBnYW4g Y2h1YSB0cm9uZyBraHUgdnVjIHRydW9uZyBiYW4uDQoNCkN1bmcgdHJvbmcgbmdheSAzLzYsIGto aSBjaGkgZ2FpIGN1bmcgdm8gY3VhIENoYXUgUGhhdCBMYWkgRW0gZGVuIHBoYXAgdHJ1b25nIHRo YXAgDQpuaGFuZyBjaG8gbmd1b2kgdGhhbiB0aGkgdGVuIFR5IGxhbiBsYSBkZW4gbGFtIHF1ZW4g dmEgbmdvIHkgZ2l1cCBnaWEgZGluaCBsYXkgeGFjIHZvaSANCmdpYSA2MCB0cmlldSBkb25nLiBB bmggdGEgc2UgbG8gdG9hbiBibyBkaWNoIHZ1LCBsYXkgeGFjIGJvIGxlbiBob20gdmEgY2hvIGRp IGNob24gdGhlbyANCnlldSBjYXUgY3VhIG5hbiBuaGFuLiBWaSB0aHVvbmcgeG90IGVtIHRyYWkg bmVuIGRlbSBob20gZG8sIGNoaSBnYWkgTGFpIEVtIGRhIG1vdCANCm1pbmggbGFuIGxvaSBkZW4g cGhhcCB0cnVvbmcgZGVtIHRoZW8gNjAgdHJpZXUgZG9uZyBkdWEgY2hvIGdhIGRhbiBvbmcgYnVv aSBzYW5nIGRlIA0KbGF5IHhhYyBMYWkgRW0gdmEgZGVtIHZlIG5naGlhIHRyYW5nIEdvIER1YSBj aG9uIGNhdC4gTGFpIEVtIHRybyB0aGFuaCB0dSB0b2kgZGF1IHRpZW4gDQp0cm9uZyA0IHR1IHRv aSBiaSB4dSBiYW4gdHJvbmcgdnUgYW4gTmFtIENhbSBkdW9jIGR1YSByYSBraG9pIHBoYXAgdHJ1 b25nLiBDaGkgdm9pIDQgeGFjIA0KdHUgdG9pIHRyb25nIHZ1IGFuIE5hbSBDYW0sIGR1b25nIGRh eSB0cm9tIHhhYyBuYXkgZGEgImFtIiBnb24gMjU1IHRyaWV1IGRvbmcuDQoNCktob25nIGNoaSBk dW5nIHJhIGxhbSBkaWNoIHZ1IGRhYyBiaWV0IHZvaSBnaWEgImNhdCBjbyIsIGR1b25nIGRheSB0 cm9tIHhhYyBjb24gbmdhbmcgDQpuaGllbiBkZSBkb2Egbmh1bmcgdGhhbiBuaGFuIHR1IHRvaSBu ZXUga2hvbmcgY2hvIGNodW5nIGxhbSBhbi4gU2FuZyBuZ2F5IDkvNywgZ2lhIGRpbmggDQogdHUg dG9pIERvIFRyb25nIE5naGlhICh0dSBOZ2hpYSAiTXVvaSBEZW4iKSBjdW5nIGR1b2MgbW90IG5o b20gdGhhbmggbmllbiBkYXQgDQp2YW4gZGUgZ2l1cCBnaWEgZGluaCBkdWEgeGFjIE5naGlhIGxl biB0YW0gcnVhLCB0aGF5IHF1YW4gYW8gcm9pIGNob24gbGFpIHZvaSBnaWEgDQo2IHRyaWV1IGRv bmcuIERvIG11b24gY29uIG1pbmggZHVvYyB0aGFuaCB0aG9hdCwgZ2lhIGRpbmggZGEgZG9uZyB5 IGdpYW8gdGllbiBjaG8gYm9uIGNodW5nIA0KZGUgdGh1YyBoaWVuLiBOZ2F5IHNhdSBkbywgY2h1 bmcgbGFpIG5nbyB5IGdpdXAgZ2lhIGRpbmggZHVhIHhhYyBOZ2hpYSByYSBjaG9uIG5vaSBraGFj IA0Kdm9pIGdpYSA2MCB0cmlldS4NCg0KR2lhIGRpbmggTmdoaWEgbmFuIG5pIHZhIGR1b2MgZ2lh bSBnaWEgY29uIDUwIHRyaWV1IGRvbmcsIG5odW5nIHBoYWkgbG8gY28gcXVhbiB0YWkgdGFpIA0K bW90IHRyYWkgaG9tIHZvaSBnaWEgMTAgdHJpZXUgZG9uZy4gWGFjIGN1YSBOZ2hpYSBkdW9jIGRl bSBjaG9uIHRhaSBuZ2hpYSB0cmFuZyBnYW4gDQp0cnVvbmcgYmFuLiBLaGkgZ2lhIGRpbmggZGFu ZyB0aW5oIHZpZWMgeGF5IG1vIGNobyBOZ2hpYSB0aGkgdGVuIFR5IHZhIFRoYW5oIGRlbiBkZSAN Cm5naGkgZGUgY2h1bmcgeGF5IGdpdXAga2VtIHRoZW8ga2lldSBkZSBkb2EgImN1IHR1IHhheSBy b2kga2hpIGxlbiBjdW5nIGR1bmcgdHJhY2ggbGEgdGFpIA0Kc2FvIG5nb2kgbW8gYmkgZGFwIHBo YSIuIERvIGxvIHNvLCBnaWEgZGluaCBOZ2hpYSBwaGFpIGRvbmcgeSB2b2kgeWV1IGNhdSB4YXkg dGhlbyBsb2kgDQpraWVuIHRydWMgY3VhIG5nb2kgbW8ga2UgYmVuLCBjbyBrZW0gdGhlbyBoYW5n IHJhbyBiYW8gcXVhbmgsIGdpYSBjYSBoYWkgYmVuIGN1bmcgdGhvbmcgDQpuaGF0IGxhIDEwLDUg dHJpZXUuIENodW5nIGhlbiAxMCBuZ2F5IHNhdSBzZSBob2FuIHRhdCwgYnVvYyBnaWEgZGluaCBO Z2hpYSBwaGFpIGR1YSB0cnVvYyANCjcgdHJpZXUuDQoNCkNoaSAzIG5nYXkgc2F1LCBuaG9tIHRy b20geGFjIGRpZW4gdGhvYWkgY2hvIGJpZXQgZGEgeGF5IHhvbmcgbW8gdmEgZG9pIGxheSBzbyB0 aWVuIGNvbiANCmxhaS4gTmh1bmcga2hpIHRvaSBub2ksIGdpYSBkaW5oIE5naGlhIGNoaSB0aGF5 IG1vdCBjaGllYyBraW0gdGluaCB4YXkgc2FuIGR1b2MgdXAgbGVuIA0KbW8gdmEga2hvbmcgY28g dHVvbmcgcmFvIG5odSBkYSB0aG9hIHRodWFuLiBLaGkgdnVhIHRoYWMgbWFjIHRoaSBuZ2F5IGxh cCB0dWMgbmhvbSANCnRyb20geGFjIGdpbyBnaW9uZyBodSBkb2EgbmVuIGdpYSBkaW5oIGJ1b2Mg cGhhaSB0cmEgMyw1IHRyaWV1IGRvbmcsIGRvbmcgdGhvaSBkdWEgdGhlbSANCjYgdHJpZXUgZGUg Y2h1bmcgeGF5IG1haSBjaGUgdmEgbGFtIGhhbmcgcmFvIGJhbyBxdWFuaCBuZ29pIG1vLiBUb25n IGNvbmcsIHRoYW4gbmhhbiANCmN1YSB0dSB0b2kgRG8gVHJvbmcgTmdoaWEgcGhhaSBkdWEgY2hv IG5ob20gdHJvbSB4YWMgODIsNSB0cmlldSBkb25nLg0KDQpUaGVvIGRpZXUgdHJhIGN1YSBjb25n IGFuLCBkdW9uZyBkYXkgdHJvbSB4YWMgdGFpIHBoYXAgdHJ1b25nIGdvbSA5IHRlbiBkZXUgbGEg InRobyANCmRpYSIgY3VhIHBodW9uZyBMb25nIEJpbmgsIHF1YW4gOS4gSGFpIGtlIGNhbSBkYXUg bGEgUGhhbSBRdW9jIFRoYW5oICh0dSBUaGFuaCANCiJNYXAiLCBzaW5oIG5hbSAxOTY2KSB2YSBM ZSBIb2FuZyBQaHVvYyAodHUgVHksIHNpbmggbmFtIDE5NzMpLiBDbyA3IGRlIHR1IGR1b2kgdHJ1 b25nIA0KY2h1bmcgZ29tOiBMdSBQaHVuZyBTb24gKHR1IEJhICJTb24iLCBzaW5oIDE5NTUpOyBO Z3V5ZW4gVmFuIFRpZW5nICh0dSBUaWVuLCBzaW5oIG5hbSANCjE5NzApOyBQaGFtIFF1b2MgVGhh bmggKHR1IFBoYW0gSHV1IFRoYW5oLCBzaW5oIG5hbSAxOTcxKTsgRHVvbmcgVmFuIA0KVGFtIChz aW5oIG5hbSAxOTc4KTsgVHJhbiBWYW4gUGh1YyAoc2luaCBuYW0gMTk3Myk7IEJ1aSBUaGFuaCBI b2EgKHNpbmggbmFtIDE5ODEpIA0KdmEgSG8gVmFuIENhdCAoVHUgRGF0LCBzaW5oIG5hbSAxOTY5 KS4gVGF0IGNhIGRldSBraG9uZyBjbyBjb25nIGFuIHZpZWMgbGFtIG9uIGRpbmggDQpuZW4ga2hp ICJjbyB2aWVjIiBkZXUgc2FuIHNhbmcgdGFwIGhvcCBkb25nIGR1IGRlIG5oYW4gbmhpZW0gdnUg Y3VhICJkYWkgY2EiLiBMb2FpIGhpbmggDQpraW5oIGRvYW5oIGRhYyBiaWV0IG5heSBkYSBkZW0g bGFpIGNobyBjaHVuZyBuaHVuZyBuZ3VvbiB0aHUgZGFuZyBrZS4gDQotDQpodHRwOi8vdmkud2lr aXBlZGlhLm9yZw0KDQpUcnVvbmcgVGFuIFNhbmcgcXVlIG8gTG9uZyBBbg0KDQpodHRwOi8vd3d3 LnNndHQuY29tLnZuL2RldGFpbDI5LmFzcHg/bmV3c2lkPTYwNzk2JmZsZD1IVE1HLzIwMDkvMTIx Ny82MDc5NiBOZ2F5IDE5LjEyLjIwMDkgR2lvIDExOjE3DQoNCkxvbmcgQW46IFJ1dCBydW90IHJ1 b25nIGRvbmcgbGFtIGtodSBjb25nIG5naGllcA0KDQpodHRwOi8vdmlldGJ1aWxkLnZuL3RpbnR1 Yy1zdWtpZW4tMTY2Lmh0bWwNCg0KTG9uZyBBbjogU2FpIHBoYW0gbmdoaWVtIHRyb25nIG8gY29u ZyB0cmluaCBTVkQgTG9uZyBBbg0KDQpCbyBxdWEgcXV5IGNoZSBkYXUgdGhhdSwgVUJORCB0aW5o IExvbmcgQW4gZGEgInV1IGFpIiBnaWFvIGNobyBjb25nIHR5IFROSEggVGhlIA0KdGhhbyBUaGFu aCBMYW0gdGhpIGNvbmcgZHUgYW4gZHVvbmcgY2hheSBkaWVuIGtpbmggc2FuIHZhbiBkb25nIExv bmcgQW4sIGR1IGJpZXQgDQpETiBuYXkgY28gcXVhIG5oaWV1ICJ0YWkgdGllbmciIHRyb25nIHRo aSBjb25nIGNhYyBjb25nIHRyaW5oIFNWRC4gDQoNCk5odW5nIHNhaSBzb3QgYmFuIGRhdSwgY28g dGluaCBuZ2hpZW0gdHJvbmcgbmF5IGRhIGR1b2MgY2hpbmggVUJORCB0aW5oIExvbmcgQW4gcGhh aSANCnRodWEgbmhhbiB0cnVvYyBUaHUgdHVvbmcgQ2hpbmggcGh1IHRhaSBiYW8gY2FvIHNvIDI3 MjAvQ1YtVUIgbmdheSA2LzcvMjAwMzogIlZpZWMgDQpjaGkgZGluaCB0aGF1IHRoaSBjb25nIGNv bmcgdHJpbmggY28gZ2lhIHRyaSBsb24gbGEgc2FpIHF1eSBkaW5oIGN1YSBDaGluaCBwaHUgdmUg UXV5IGNoZSANCnF1YW4gbHkgZGF1IHR1LCB4YXkgZHVuZyB2YSBRdXkgY2hlIGRhdSB0aGF1Ii4g DQoNCihBbmggY2h1cDogTW90IGR1b25nIGNoYXkgYmkgeHVvbmcgY2FwIGRvIGNvbmcgdHkgVGhh bmggTGFtIHRoaSBjb25nISkNCg0KVGluaCBMb25nIEFuIGhpZW4gZHVuZyB0cnVvYyBuZ3V5IGNv IG1hdCB0cmFuZyA5LDUgdHkgZG9uZyB0YWkgbW90IGNvbmcgdHJpbmgga2VtIGNoYXQgDQpsdW9u ZyB2YSBkdW9uZyBuaGllbiBjb24geGEgbW9pIGRhdCAidGlldSBjaHVhbiBxdW9jIHRlIiBuaHUg bXVjIGRpY2ggYmFuIGRhdSBjdWEgDQpjb25nIHRyaW5oIGR1b2MgZGUgcmENCg0KaHR0cDovL3d3 dy50b3F1b2MuZ292LnZuL1Rob25ndGluL0dpby1UaHUtMjUvTG9uZy1Bbi1IYW5nLUxvYXQtU2Fp LVBoYW0tVHJvbmctUXV5LUhvYWNoLVN1LUR1bmctRGF0Lmh0bWwgKFRoZW8gTmd1b2kgbGFvIGRv bmcpIDIwLzcvMjAwOQ0KDQpMb25nIEFuOiBIYW5nIGxvYXQgc2FpIHBoYW0gdHJvbmcgcXV5IGhv YWNoLCBzdSBkdW5nIGRhdCANCg0KVUJORCB0aW5oIExvbmcgQW4gZGEga2hvbmcgdHVhbiB0aHUg ZHVuZyB0aGVvIHF1eSBob2FjaCB0b25nIHRoZSBwaGF0IHRyaWVuIGtpbmggdGUtDQp4YSBob2kg ZHVvYyBDaGluaCBwaHUgcGhlIGR1eWV0OyBjbyBkYXUgaGlldSBjaGF5IHRoZW8gbmh1IGNhdSBz dSBkdW5nIGRhdCBjdWEgbW90IHNvIA0KbmhhIGRhdSB0dSBxdWEgdmllYyBjaGFwIG5oYW4gY2hv IG5oYSBkYXUgdHUgbyBuaHVuZyB2aSB0cmkgY2h1YSBkdW9jIHF1eSBob2FjaC4gRG9pIA0Kdm9p IGNhYyBkdSBhbiBraHUgZGFuIGN1IGRldSB0cmllbiBraGFpIGNoYW0sIGNvIGJpZXUgaGllbiBt b3Qgc28gbmhhIGRhdSB0dSB4aW4gZHUgYW4gDQpuaGFtIG11YyBkaWNoIGdoaW0gZGF0DQoNClNh dSB0aG9pIGdpYW4ga2llbSB0cmEsIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25nIERhbmcgdnVh IGNvIGtldCBsdWFuIHZlIG5odW5nIHNhaSANCnBoYW0gdHJvbmcgdGh1YyBoaWVuIHF1eSBob2Fj aCwgc3UgZHVuZyBkYXQgdHJlbiBkaWEgYmFuIHRpbmggTG9uZyBBbiwgZ2F5IGxhbmcgcGhpIGxv bi4gDQpWYW4gZGUgbmF5IGRhIGdheSBidWMgeHVjIGxvbiB0cm9uZyBkdSBsdWFuIHRob2kgZ2lh biBxdWEuIA0KDQoiWGUgcmFvIiBnaWFvIGRhdCB0cmFuIGxhbg0KDQpUaGVvIGtldCBxdWEga2ll bSB0cmEgY3VhIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25nIERhbmcsIHRpbmggTG9uZyBBbiBo aWVuIGNvIDE2IA0KS0NOIHZvaSB0b25nIGRpZW4gdGljaCA2LjkwNyBoYS4gVHJvbmcgc28gbmF5 IGNoaSBjbyAxMCBLQ04gZHVvYyBUaHUgdHVvbmcgQ2hpbmggDQpwaHUgY2hvIHBoZXAgdGhhbmgg bGFwIHZvaSBkaWVuIHRpY2ggMi4zODUgaGEsIDYgS0NOIGNvbiBsYWkgKGRpZW4gdGljaCAyLjUy MiBoYSkgY2h1YSANCmR1b2MgQ2hpbmggcGh1IGNobyBwaGVwIHRoYW5oIGxhcCwgdHJvbmcgZG8g Y28gNCBLQ04ga2hvbmcgZHVuZyB2b2kgcXV5IGhvYWNoLCBrZSANCmhvYWNoIHN1IGR1bmcgZGF0 IGRvIENoaW5oIHBodSBwaGUgZHV5ZXQuDQoNCk5nb2FpIHJhLCB0aW5oIExvbmcgQW4gY29uIGNh cCBjaHVuZyBuaGFuIGRhdSB0dSBob2FjIGNoYXAgdGh1YW4gZGF1IHR1IDQ2IGN1bSBjb25nIA0K bmdoaWVwIChDQ04pIHZvaSB0b25nIGRpZW4gdGljaCA2Ljk1OSBoYS4gVHJvbmcgc28gbmF5IGNv IHRvaSAxMiBDQ04gIGtob25nIHBodSBob3AgDQp2b2kgcXV5IGhvYWNoIHZlIGRhdCBjb25nIG5n aGllcCBtYSBUaHUgdHVvbmcgQ2hpbmggcGh1IHBoZSBkdXlldC4gVHV5IGRpZW4gdGljaCANCkND TiBkdW9jIG1vIHRyYW4gbGFuIG5odSB2YXksIG5odW5nIGRlbiBuYXkgY2hpIGNvIDYwOCBoYSBk dW9jIHRyaWVuIGtoYWkgZGF1IHR1IGhhIA0KdGFuZyAoZGF0IDgsNyUgZGllbiB0aWNoIENDTiku DQoNCkNodWEgaGV0LCB0cmVuIGRpYSBiYW4gdGluaCBMb25nIEFuIGhpZW4gY28gZGVuIDU4IGR1 IGFuIGtodSBkYW4gY3Ugdm9pIHRvbmcgZGllbiB0aWNoIA0KMy44NDcgaGEsIHRyb25nIGRvIGNv IDggZHUgYW4gKDEuMzE2IGhhKSBraG9uZyBwaHUgaG9wIHF1eSBob2FjaC4gTmdvYWkgcmEsIHRp bmggTG9uZyANCkFuIGNvbiBjaGFwIHRodWFuIHZvaSBuaGEgZGF1IHR1IDM4IGR1IGFuIHRhaSBk aW5oIGN1ICg4MzAgaGEpLCB0cm9uZyBkbyBjbyAxNSBkdSBhbiANCmtob25nIHBodSBob3AgcXV5 IGhvYWNoLiBEZW4gY3VvaSBuYW0gMjAwNywgdGluaCBMb25nIEFuIGRhIGNhcCBjaHVuZyBuaGFu IHZhIHRob2EgDQp0aHVhbiBkaWEgZGllbSAxMyBkdSBhbiBraHUgZG8gdGhpIHBodWMgaG9wIHRy b25nIGRvIGNvIHNhbiBnb2xmIHZvaSBkaWVuIHRpY2ggNy4zOTcsNyANCmhhLCB2dW90IDUuMTMw IGhhIHNvIHZvaSBrZSBob2FjaCBzdSBkdW5nIGRhdCBkZW4gbmFtIDIwMTAgZHVvYyBDaGluaCBw aHUgcGhlIGR1eWV0Li4uDQoNClR1IHN1ICJ4ZSByYW8iIHRyZW4sIFV5IGJhbiBLaWVtIHRyYSBU cnVuZyB1b25nIERhbmcga2V0IGx1YW46IFVCTkQgdGluaCBMb25nIEFuIGRhIA0Ka2hvbmcgdHVh biB0aHUgZHVuZyB0aGVvIHF1eSBob2FjaCB0b25nIHRoZSBwaGF0IHRyaWVuIGtpbmggdGUteGEg aG9pIGR1b2MgQ2hpbmggcGh1IA0KcGhlIGR1eWV0OyBjbyBkYXUgaGlldSBjaGF5IHRoZW8gbmh1 IGNhdSBzdSBkdW5nIGRhdCBjdWEgbW90IHNvIG5oYSBkYXUgdHUgcXVhIHZpZWMgDQpjaGFwIG5o YW4gY2hvIG5oYSBkYXUgdHUgbyBuaHVuZyB2aSB0cmkgY2h1YSBkdW9jIHF1eSBob2FjaC4gVHJv bmcgYmFvIGNhbyB0cmluaCBUaHUgDQp0dW9uZyBDaGluaCBwaHUgeGluIGJvIHN1bmcgcXV5IGhv YWNoIHN1IGR1bmcgZGF0IGRlbiBuYW0gMjAxMCwgdGluaCBMb25nIEFuIGRhIGJhbyANCmNhbyBz YWkgdGh1YyB0ZSB2ZSBkaWVuIHRpY2ggZGEgY2hvIHRodWUgbyBjYWMgS0NOLCBDQ04uIERvaSB2 b2kgY2FjIGR1IGFuIGtodSBkYW4gY3UgDQpkZXUgdHJpZW4ga2hhaSBjaGFtLCBjbyBiaWV1IGhp ZW4gbW90IHNvIG5oYSBkYXUgdHUgeGluIGR1IGFuIG5oYW0gbXVjIGRpY2ggZ2hpbSBkYXQuDQoN ClRoYW0gbXV1IHNhaSwgZ2l1cCBuaGEgZGF1IHR1IHRydWMgbG9pDQoNCkN1bmcgdGhlbyBrZXQg bHVhbiBjdWEgVXkgYmFuIEtpZW0gdHJhIFRydW5nIHVvbmcgRGFuZywgY28gbmh1bmcgZHUgYW4g InRyZW8iIHR1IDcgDQpkZW4gOCBuYW0sIG5odW5nIFVCTkQgdGluaCBMb25nIEFuIGNoYW5nIG5o dW5nIGtob25nIHRodSBob2kgbWEgY29uIGhvcCB0aHVjIGhvYSANCmNobyBjaHUgZGF1IHR1IGJh biBkdSBhbiB0aHUgbG9pIGhhbmcgY2h1YyB0aSBkb25nLiBUcm9uZyBkbywgZHUgYW4ga2hvIFNv YWkgUmFwIA0KKHhhIFRhbiBUYXAsIGh1eWVuIENhbiBHaXVvYykgZG8gQ29uZyB0eSBEb25nIER1 b25nIGxhbSBjaHUgZGF1IHR1IGxhIG1vdCBkaWVuIGhpbmggc2FpIA0KcGhhbSB0dSBuaHVuZyB0 aGFtIG11dSBzYWkgbGVjaCBjdWEgY2FjIG5nYW5oIGNodWMgbmFuZy4gDQoNCk5hbSAxOTk4LCBV Qk5EIHRpbmggTG9uZyBBbiBwaGUgZHV5ZXQgY2hvIENvbmcgdHkgRG9uZyBEdW9uZyB0aHVjIGhp ZW4gZHUgYW4gDQooMjAwLjEwNyBtMiksIG1haSBkZW4gbmFtIDIwMDYgY29uZyB0eSBuYXkgdmFu IGNodWEgdHJpZW4ga2hhaS4gRGEgdmF5LCB2YW8gdGhvaSBkaWVtIA0KbmF5LCBDb25nIHR5IERv bmcgRHVvbmcgY28geSBkaW5oIGtob25nIHRodWMgaGllbiBkdSBhbiwgeGluIGNodXllbiBnaWFv IGR1IGFuIGNobyANCkNvbmcgdHkgSmFjY2FyIG1vIHJvbmcgeHVvbmcgZG9uZyB0YXUuIFRoYXkg dmkgbGFtIHRoYW0gbXV1IHRodSBob2kgZHUgYW4sIG5odW5nIFNvIA0KS2UgaG9hY2gtRGF1IHR1 IHRpbmggbGFpIGNvIHZhbiBiYW4gZGUgeHVhdCBVQk5EIHRpbmggY2hhcCB0aHVhbiBjaG8gQ29u ZyB0eSBEb25nIA0KRHVvbmcgdGllcCB0dWMgZGF1IHR1IGR1IGFuIGtobyBTb2FpIFJhcC4gDQoN ClNhdSBkbyBkb2FuaCBuZ2hpZXAgbmF5IGdvaSBkb24geGluIHZhbyBLQ04gTmFtIFRhbiBUYXAg ZGUgaHVvbmcgY2hpbmggc2FjaCB1dSBkYWkgDQp2ZSBkYXUgdHUuIFRhdCBjYSBuaHVuZyBkZSBu Z2hpIG5heSBkZXUgZHVvYyBVQk5EIHRpbmggTG9uZyBBbiByYSB2YW4gYmFuIGNoYXAgDQp0aHVh bi4gTmdheSBraGkgZHVvYyBwaGVwIHZhbyBLQ04gTmFtIFRhbiBUYXAsIENvbmcgdHkgRG9uZyBE dW9uZyBkYSBjaHV5ZW4gZHUgDQphbiBjaG8gQ29uZyB0eSBQaHUgTXksIGdpYSBjaHV5ZW4gbmh1 b25nIGxhIDI1IHRpIGRvbmcgZGUgY29uZyB0eSBuYXkgeGF5IGR1bmcgbmhhIA0KbWF5IHhpIG1h bmcsIHRoYXkgdmkgcGhhaSB0aWVwIHR1YyBkdSBhbiBraG8gU29haSBSYXAuIA0KDQpEb2FuIGtp ZW0gdHJhIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25nIERhbmcgY29uIHBoYXQgaGllbiBVQk5E IHRpbmggTG9uZyBBbiANCmNoYXAgdGh1YW4gbWllbiBkaWV1IHRpZXQgOCUgcXV5IGRhdCBjaG8g MTcgZG9hbmggbmdoaWVwLCBsYW0gdGhhdCB0aHUgbG9uIG5nYW4gc2FjaCB0aW5oLiANCg0KVnUg Q29uZyB0eSBDbyBraGkgTG9uZyBBbiB0cmFuaCBjaGFwIGhvcCBkb25nIGRhdSB0dSBLQ04gTG9u ZyBDYW5nLUxvbmcgRGluaCANCihodXllbiBDYW4gRHVvYykgdm9pIENvbmcgdHkgVGFuIExvaSBM b2kgdmEgTmFtIFNhbywgU28gVGFpIG5ndXllbi1Nb2kgdHJ1b25nIA0KdGhhbSBtdXUgVUJORCB0 aW5oIGNoaWEgZHUgYW4sIGRvbmcgdGhvaSBsdWkgdGhvaSBnaWFuIGRlIHRpbmggdGh1ZSBjaHV5 ZW4gcXV5ZW4gc3UgZHVuZyBkYXQgZ2F5IHRoYXQgdGh1IG5nYW4gc2FjaC4gDQoNCmh0dHA6Ly90 aW5uaGFuaHZpZXRuYW0ubmV0L3N1Yy1raG9lL2hhaS1uYW0tdmFuLWNodWEtZGF1LXRoYXUtdGh1 b2MuaHRtbCAwNzoyODozMyAwOS0xMC0yMDA3DQoNCkxvbmcgQW46IEhhaSBuYW0gdmFuIGNodWEg ZGF1IHRoYXUgdGh1b2MgLSBEb2FuaCBuZ2hpZXAgdGhhbSBnaWEgZGF1IHRoYXUgbm9pIA0Kbmd1 eWVuIG5oYW4gY2hpbmggbGEgZG8gaG8gc28gbW9pIHRoYXUgY28gbmhpZXUgInZhbiBkZSIsIGJ1 b2MgcGhhaSBkaWV1IGNoaW5oIGxhaS4NCg0KaHR0cDovL25ndW9pY2FvdHVvaS5vcmcudm4vU3Rv cnkuYXNweD9sYW5nPXZuJnpvbmVwYXJlbnQ9MCZ6b25lPTcmSUQ9MzQxIDA0LzA5LzIwMDgtMjo1 OCBQTQ0KDQpIdXllbiBEdWMgSG9hLCBMb25nIEFuOiBraGlldSBraWVuIGtlbyBkYWkgS2hpIGh1 eWVuIHNhaSwgYWkgY2hpdSBzdWEgbG9pLi4uPyBIYW5nIGxvYXQgdmFuIGJhbiBjaG9uZyBjaGVv IG5oYXUNCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS85NDEwOC9LaWVtLXRy YS10aHVjLWhpZW4tTHVhdC1kYXQtZGFpLUdpYWktdG9hLW5oaWV1LXRhaS1kaW5oLWN1LWl0Lmh0 bWwgMTgvMDgvMjAwNSwgMDc6NTIgKEdNVCs3KSANCg0KTG9uZyBBbjogZGFuIGtldSB2ZSBjaHV5 ZW4gdGFpIGRpbmggY3UgLSBkdSBhbiBnaWFpIHRvYSBuaGlldSBuaHVuZyBkZW4gYnUgaXQsIGto dSB0YWkgZGluaCBjdSBraG9uZyBjbyBiYW8gbmhpZXUuLi4NCg0KaHR0cDovL25sZC5jb20udm4v MjAxMDA4MjExMTExMzQ1NzZQMEMxMDE3L2hvYy1naWEtYmFuZy10aGF0Lmh0bSAyMi8wOC8yMDEw IDAwOjExR01UKzcNCg0KTG9uZyBBbjogMTExIGNhbiBibyBzdSBkdW5nIHZhbiBiYW5nLCBnaWF5 IGNodW5nIG5oYW4gdG90IG5naGllcCBUSFBUIGJhdCBob3AgbGUgLSBiYW5nIHRoYXQgbmh1bmcg aG9jIGdpYQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDA4L0xvbmct QW4tQmktdGh1LUh1eWVuLXV5LWJhbi1kYXQtY29uZy05Mjg1MDUvIE5nb2MgVHJhbiAodG9uZyBo b3AgdGhlbyBOTEQsIERhbnZpZXQpIDEwOjE5LCAxMi8wOC8yMDEwIChHTVQrNykNCg0KTG9uZyBB bjogQmkgdGh1IEh1eWVuIHV5IGJhbiBkYXQgY29uZw0KDQotIEJpIHRodSBodXllbiB1eSwgcGhv IGNodSB0aWNoIGh1eWVuLC4uLiBodXllbiBUYW4gSHVuZywgTG9uZyBBbiBkYSBkZW0gZGF0IGto b2FuIHJhIA0KImJhbiIgdm9pIGdpYSA3MC05MCB0cmlldSBkb25nIGNobyBuZ3VvaSBraGFjLiAN Cg0KRGFuaCBzYWNoIGNhbiBibyBodXllbiBUYW4gSHVuZyBuaGFuICJraG9hbiBkYXQiIGNvOg0K DQotIG9uZyBOZ3V5ZW4gSHV1IE5naGlhICg0IGhhKSwgbmd1eWVuIGJpIHRodSBIdXllbiB1eSwg bmF5IGxhIGJpIHRodSBIdXllbiB1eSBodXllbiBWaW5oIEh1bmc7IA0KLSBvbmcgTGUgVGhhbmgg TmdoaWVtLCBwaG8gY2h1IHRpY2ggVUJORCBodXllbiBUYW4gSHVuZyAoMyBoYSksIG5heSBsYSBi aSB0aHUgSHV5ZW4gdXkgVGFuIEh1bmc7IA0KLSBvbmcgSG8gVmFuIERhbiwgcGhvIGNodSB0aWNo IFVCTkQgaHV5ZW4gVGFuIEh1bmcgKHZvIGR1bmcgdGVuIDIgaGEpOyANCi0gb25nIFBoYW0gSGFp IE5ndSwgcGhvIHRydW9uZyBDb25nIGFuIGh1eWVuIFRhbiBIdW5nICgxLDcgaGEpLi4uIA0KLSBS aWVuZyBvbmcgVW9uZyBTaSBCYW4sIHBobyBjaGkgY3VjIHRydW9uZyBDaGkgY3VjIFRodWUgaHV5 ZW4gVGFuIEh1bmcsIGR1b2MgbmhhbiAia2hvYW4iIHRvaSA2IGhhLiANCi0gR2lhIGRpbmggb25n IGdpYW0gZG9jIENvbmcgdHkgRG9uZyBUaGFwIDEgVnUgTmdvYyBCYW4gKHZvLCBjb24sIGVtKSBk dW9jIG9uZyBnaWFvICJraG9hbiIgOSBoYS4uLg0KDQpEYXQgY29uZyBuYXksIG5oaWV1IGNhbiBi byBkdW9jICJraG9hbiIgZGEgZGVtICJraG9hbiBsYWkiIGNobyBub25nIGRhbiB2b2kgZ2lhIGNh by4gVGhhbSBjaGksIG5oaWV1IGNhbiBibyBjb24gYmFuIGhhbiBsYWkgY2hvIG5ndW9pIGtoYWMu IA0KDQpDbyBxdWFuIGNodWMgbmFuZyBtb2kgZGF5IGRhIHBoYXQgaGllbiByYSB2dSB2aWVjIGNh biBibyBodXllbiBUYW4gSHVuZyBzdSBkdW5nIGhhbmcgDQp0cmFtIGhlY3RhIGRhdCBjb25nIHNh aSBtdWMgZGljaC4gQnVvYyBkYXUgdGltIGhpZXUgY2hvIHRoYXksIGtodSBkYXQgZG8gdm9uIGR1 b2MgDQpVQk5EIHRpbmggTG9uZyBBbiBnaWFvIGNobyBDb25nIHR5IERvbmcgVGhhcCAxIHF1YW4g bHkgdmEgc2FuIHh1YXQgbmFtIDE5OTggdm9pIA0KaG9uIDEuMDAwIGhhLg0KVHV5IG5oaWVuLCBD b25nIHR5IG5heSBjaGkgZ2lhbyBob24gODAwIGhhIGRhdCBvIHhhIEh1bmcgRGllbiBjaG8gdHJl biA1MDAgaG8gZGFuIGRpYSANCnBodW9uZyB0aHVlIGR1b2kgZGFuaCBuZ2hpYSBnaWFvICJraG9h biIuIFBoYW4gMjAwIGhhIG8geGEgSHVuZyBUaGFuaCwgQ29uZyB0eSBkZW0gDQpjaGlhIGNobyBu aHVuZyBjYW4gYm8gY2h1IGNob3QgY3VhIGh1eWVuIFRhbiBIdW5nIGx1YyBiYXkgZ2lvIGN1bmcg dm9pIGhpbmggdGh1YyBnaWFvIA0KImtob2FuIi4gDQoNClR1eSBuaGllbiwgbmh1bmcgY2FuIGJv IG5heSBkZXUga2hvbmcgdHJ1YyB0aWVwIHNhbiB4dWF0IG1hIGRlbSBjaG8gZGFuIG5naGVvIGRp YSBwaHVvbmcgdGh1ZSBkdW9pIGRhbmggbmdoaWEgImtob2FuIGxhaSIgdm9pIGdpYSB0dSA1LTcg dHJpZXUgZG9uZy9oYS9uYW0uDQoNCk9uZyBVb25nIFNpIEJhbiBjb24gZGFuZyByYW8gYmFuIDYg aGEgdm9pIGdpYSAxMjAgdHJpZXUgZG9uZy9oYS4gDQpPbmcgTmd1eWVuIEh1dSBOZ2hpYSBjdW5n IHRodWEgbmhhbiBuYW0gMjAwOSBkYSBiYW4gbGFpIDQgaGEgZGF0ICJraG9hbiIgbyB4YSBIdW5n IA0KVGhhbmggY2hvIG5ndW9pIGtoYWMgdm9pIGdpYSA3NSB0cmlldSBkb25nL2hhLiANCg0KT25n IExlIFRoYW5oIE5naGllbSBjdW5nIHRodWEgbmhhbiBjbyBuaGFuIGRhdCAia2hvYW4iIHJvaSBk ZW0gImtob2FuIGxhaSIgdG9hbiBibyBkaWVuIHRpY2ggY2hvIG5ndW9pIGtoYWMuLi4NCg0KTmhp ZXUgbmd1b2kgZGFuIG8geGEgSHVuZyBUaGFuaCB4YWMgbmhhbiBkYSBtdWEgbGFpIGRhdCBuaGFu ICJraG9hbiIgY3VhIGNhbiBibyBkaWEgDQpwaHVvbmcgdm9pIGdpYSB0dSA3MC05MCB0cmlldSBk b25nL2hhIHRyb25nIHZhaSBuYW0gZ2FuIGRheS4gSG8gbXVhIHZpIG5naGkgcmFuZywgc2F1IA0K a2hpIG5oYW4ga2hvYW4gc2UgZHVvYyBjYW5oIHRhYyBsYXUgZGFpIG5lbiBkYSBnb20gZ29wIHZv biBsaWVuZyBkZSAibXVhIiBsYWkgcXV5ZW4gDQpuaGFuIGtob2FuLiBUcm9uZyBraGksIHRodWMg dGUgbmh1bmcgbmd1b2kgbXVhIGxhaSBuYXkgY2hpIGxhIG5ndW9pIG5oYW4ga2hvYW4gbGFpIGN1 YSBuZ3VvaSBraGFjLg0KDQotDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRu YW0vc3RvcnkvMjAwNy8wOS8wNzA5MDVfY2hpbmF2aWV0bmFtcmVsYXRpb25zLnNodG1sIDA1Lzkv MjAwNyAtIDE0aDI4IEdNVA0KDQpPbmcgVHJ1b25nIFRhbiBTYW5nIHRoYW0gVHJ1b25nIFF1b2Mg IA0KDQpPbmcgUGhvIENodSB0aWNoIFRydW5nIFF1b2MgVGFuZyBLaGFuaCBIb25nIGhvaSBkYW0g dm9pIG9uZyBUcnVvbmcgVGFuIFNhbmcgbyANCkJhYyBLaW5oLCB2YSB0dXllbiBibyBoYWkgYmVu IHNlIHRhbmcgY3VvbmcgImhvcCB0YWMgdG9hbiBkaWVuIi4gDQoNClRoZW8gZGFpIFBoYXQgdGhh bmggUXVvYyB0ZSBUcnVuZyBRdW9jLCBvbmcgVHJ1b25nIFRhbiBTYW5nLCBUaHVvbmcgdHJ1YyBC YW4gQmkgdGh1IA0KVFcgRENTVk4gZGEgbm9pOiAicGhhdCB0cmllbiB0aW5oIGh1dSBuZ2hpIFZp ZXQgTmFtLVRydW5nIFF1b2MgbGEgcGh1b25nIGNoYW0gdHJ1b25nIGt5IGN1YSBEYW5nIHZhIENo aW5oIHBodSBWaWV0IE5hbSIuIA0KDQpodHRwOi8vYmllbmRhb3ZpZXRuYW0uY29tL2luZGV4LnBo cD9vcHRpb249Y29tX2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTEwMTpzLXRodC12LXF1YW4taC12 aXQtdHJ1bmctdHJvbmctMzAtbm0tcXVhLXAxMiZjYXRpZD0zOnQtbGl1LWxjaC1zJkl0ZW1pZD01 DQoNClZpZXQgTmFtIHRyb25nIGNoaW5oIHNhY2ggRG9uZyBOYW0gQSBjdWEgVHJ1bmcgUXVvYyAN CihUcmljaCAtICJTdSB0aGF0IHZlIHF1YW4gaGUgVmlldCBOYW0tVHJ1bmcgUXVvYyB0cm9uZyAz MCBuYW0gcXVhIiAtIE5YQiBTdSBUaGF0KQ0KDQpDaGluaCBzYWNoIG5nYXkgbmF5IGN1YSBuaHVu ZyBuZ3VvaSBsYW5oIGRhbyBUcnVuZyBRdW9jIGRvaSB2b2kgVmlldCBOYW0sIG1hYyBkdSANCmR1 b2Mgbmd1eSB0cmFuZyBraGVvIGxlbyBuaHUgdGhlIG5hbywgdmFuIGNoaSBsYSBjaGluaCBzYWNo IGN1YSBuaHVuZyBob2FuZyBkZSAidGhpZW4gDQp0cmlldSIgdHJvbmcgbWF5IG5naGluIG5hbSBx dWEsIG5oYW0gdGhvbiB0aW5oIFZpZXQgTmFtLCBiaWVuIFZpZXQgTmFtIHRoYW5oIG1vdCBjaHUg aGF1IGN1YSBUcnVuZyBRdW9jLiANCg0KaHR0cDovL3d3dzUzLnZpZXRuYW1uZXQudm4vdm4vY2hp bmgtdHJpLzEyNDQvdmlldC0tLXRydW5nLWRvaS10aG9haS1jaGllbi1sdW9jLXZlLXF1b2MtcGhv bmctLS1hbi1uaW5oLmh0bWwgVGhlbyBUVFhWTiAyNy8xMS8yMDEwIDEwOjQyOjE2IFBNIChHTVQr NykgDQoNCkhvaSBkYW0gVmlldCAtIFRydW5nIChUcnVvbmcgVGFuIFNhbmcsIE5ndXllbiBDaGkg VmluaCAtIE1hIEhpZXUgTmhpZW4pICANCg0KKEFuaCBjaHVwOiBUcnVvbmcgVGFuIFNhbmcgLSBN YSBIaWV1IE5oaWVuIHRhaSBIYSBOb2kuIEFuaDogVFRYVk4pIA0KDQpOZ2F5IDI3LzExLCB0YWkg SGEgTm9pLCBWaWV0IE5hbSB2YSBUcnVuZyBRdW9jIHRpZW4gaGFuaCB0aWVuIGhhbmggZG9pIHRo b2FpIGNoaWVuIA0KbHVvYyB2ZSBxdW9jIHBob25nIC0gYW4gbmluaCBjYXAgdGh1IHRydW9uZyBs YW4gdGh1IG5oYXQuIA0KICANCkRvYW4gVmlldCBOYW0gZG8gb25nIE5ndXllbiBDaGkgVmluaCwg VGh1IHRydW9uZyBRdW9jIHBob25nIGxhbSB0cnVvbmcgZG9hbiBkYSANCnRpZW4gaGFuaCBkb2kg dGhvYWkgdm9pIGRvYW4gVHJ1bmcgUXVvYyBkbyBvbmcgVGh1b25nIHR1b25nIE1hIEhpZXUgVGhp ZW4sIFBobyANClRvbmcgVGhhbSBtdXUgdHJ1b25nIHF1YW4gZG9pIFRydW5nIFF1b2MgbGFtIHRy dW9uZyBkb2FuLiANCg0KT25nIFZpbmgga2hhbmcgZGluaCB2aWVjIFZpZXQgTmFtIHZhIFRydW5n IFF1b2MgZG9pIHRob2FpIGNoaWVuIGx1b2MgdmUgcXVvYyBwaG9uZyANCi0gYW4gbmluaCBtb3Qg bGFuIG51YSBtaW5oIGNodW5nIGNobyBtb2kgcXVhbiBoZSBob3AgdGFjIGh1dSBuZ2hpLCB0cnV5 ZW4gdGhvbmcgdG90IA0KZGVwIGdpdWEgcXVhbiBkb2kgaGFpIG51b2MgdGllcCB0dWMga2hvbmcg bmd1bmcgZHVvYyBjdW5nIGNvLCBwaGF0IHRyaWVuLiANCg0KVGFpIGJ1b2kgZG9pIHRob2FpLCBo YWkgYmVuIHRob25nIGJhbyBjaG8gbmhhdSB2ZSB0aGFuaCB0dXUgeGF5IGR1bmcgcGhhdCB0cmll biBraW5oIHRlIC0gDQp4YSBob2ksIGN1bmcgY28gcXVvYyBwaG9uZyAtIGFuIG5pbmggY3VhIG1v aSBudW9jIHRyb25nIG5odW5nIG5hbSBxdWE7IGRvbmcgdGhvaSBiYXkgDQp0byBxdWFuIGRpZW0g dmUgY2hpbmggc2FjaCBxdW9jIHBob25nLCB0aW5oIGhpbmggYW4gbmluaCBjaGluaCB0cmkgdHJv bmcga2h1IHZ1YyB2YSB0cmVuIA0KdGhlIGdpb2kuDQoNCkhhaSBiZW4gbmhhdCB0cmkgY2FvIHZl IG1vaSBxdWFuIGhlIGhvcCB0YWMgcXVhbiBzdSwgcXVvYyBwaG9uZyBnaXVhIHF1YW4gZG9pIGhh aSBudW9jIA0KdGhvaSBnaWFuIHF1YSB2YSBraGFuZyBkaW5oIERvaSB0aG9haSBjaGllbiBsdW9j IHZlIHF1b2MgcGhvbmctYW4gbmluaCBnaXVhIHF1YW4gZG9pIA0KaGFpIG51b2MgbGEgY28gY2hl IGhvcCB0YWMgcXVhbiB0cm9uZywgZ29wIHBoYW4gdmFvIHRhbmcgY3VvbmcgaGlldSBiaWV0LCB0 aW4gY2F5IGNhbyANCmhvbiB2ZSBjaGluaCB0cmkgdHJvbmcgcXVhbiBoZSBkb2kgdGFjLCBob3Ag dGFjIGNoaWVuIGx1b2MgdG9hbiBkaWVuLiANCg0KVHJlbiB0aW5oIHRoYW4gZG8sIHRob2kgZ2lh biB0b2ksIHF1YW4gZG9pIGhhaSBudW9jIHRob25nIG5oYXQgdGllcCB0dWMgZGF5IG1hbmggZ2lh byBsdXUsIA0KdHJhbyBkb2kgZG9hbiwgdGFuZyBjdW9uZyBob3AgdGFjIHRyZW4gY2FjIGxpbmgg dnVjIG5naGllbiBjdXUga2hvYSBob2MgcXVhbiBzdSwgZGFvIA0KdGFvLCBob3AgdGFjIGhhaSBx dWFuLCBiaWVuIHBob25nLCB0aGlldCBsYXAgZHVvbmcgZGF5IG5vbmcgZ2l1YSBoYWkgQm8gUXVv YyBwaG9uZywgZ29wIA0KcGhhbiBjdSB0aGUgaG9hIGNhYyB0aG9hIHRodWFuIG1hIGxhbmggZGFv IERhbmcsIE5oYSBudW9jIHZhIHF1YW4gZG9pIGhhaSBudW9jIGRhIHhhYyANCmRpbmgsIHZpIG11 YyB0aWV1IGhvYSBiaW5oLCBvbiBkaW5oLCBwaGF0IHRyaWVuIHRoaW5oIHZ1b25nIHRyb25nIGto dSB2dWMgdmEgdHJlbiB0aGUgZ2lvaS4NCg0KQ3VuZyBuZ2F5LCBvbmcgVHJ1b25nIFRhbiBTYW5n IHRodW9uZyB0cnVjIEJhbiBiaSB0aHUgZGEgdGllcCB0aGFuIG1hdCBkb2FuIGRhaSBiaWV1IFF1 YW4gDQpHaWFpIHBob25nIE5oYW4gZGFuIFRydW5nIFF1b2MgZG8gb25nIE1hIEhpZXUgVGhpZW4s IFBobyBUb25nIFRoYW0gbXV1IHRydW9uZyBkYW4gZGF1Lg0KDQpPbmcgU2FuZyBuaGFuIG1hbmgg aG9wIHRhYyBxdW9jIHBob25nIGxhIG1vdCBub2kgZHVuZyBxdWFuIHRyb25nIHRyb25nIHF1YW4g aGUgaG9wIA0KdGFjIGNoaWVuIGx1b2MgdG9hbiBkaWVuIGdpdWEgaGFpIG51b2M7IG1vbmcgbXVv biBCbyBRdW9jIHBob25nIHZhIHF1YW4gZG9pIGhhaSBudW9jIA0KZGF5IG1hbmggZ2lhbyBsdXUs IGhvcCB0YWMgdGhpZXQgdGh1YywgdGh1YyBoaWVuIHRvdCBjYWMgdGhvYSB0aHVhbiBkYSBkYXQg ZHVvYywgZHVhIHF1YW4gDQpoZSBob3AgdGFjIHF1b2MgcGhvbmcgZ2l1YSBoYWkgbnVvYyBkaSB2 YW8gY2hpZXUgc2F1LCBnb3AgcGhhbiB0aHVjIGRheSBxdWFuIGhlIGhvcCB0YWMgDQpodXUgbmdo aSBWaWV0LVRydW5nIHBoYXQgdHJpZW4gdG9hbiBkaWVuIGxlbiB0YW0gY2FvIG1vaSwgZG9uZyBn b3AgdGljaCBjdWMgY2hvIGhvYSANCmJpbmgsIG9uIGRpbmgsIGhvcCB0YWMgdmEgcGhhdCB0cmll biBvIGtodSB2dWMgdmEgdHJlbiB0aGUgZ2lvaS4NCg0KT25nIFNhbmcga2hhbmcgZGluaCBEYW5n LCBOaGEgbnVvYyB2YSBxdWFuIGRvaSBWaWV0IE5hbSBsdW9uIGNvaSB0cm9uZyBwaGF0IHRyaWVu IA0KcXVhbiBoZSBkb2kgdGFjIGhvcCB0YWMgY2hpZW4gbHVvYyB0b2FuIGRpZW4gdm9pIFRydW5n IFF1b2MgdmEgbGEgbW90IHRyb25nIG5odW5nIHV1IA0KdGllbiBoYW5nIGRhdSB0cm9uZyBjaGlu aCBzYWNoIGRvaSBuZ29haSBjdWEgVmlldCBOYW0uIA0KDQpPbmcgTWEgSGlldSBUaGllbiBjdW5n IGtoYW5nIGRpbmggbW9uZyBtdW9uIHRyb25nIHRob2kgZ2lhbiB0b2ksIGhhaSBiZW4gdGllcCB0 dWMgZGF5IA0KbWFuaCBnaWFvIGx1dSwgdHJhbyBkb2kgZG9hbiB2YSBob3AgdGFjIHRyZW4gY2Fj IGxpbmggdnVjIHF1b2MgcGhvbmcgLSBhbiBuaW5oIGxpZW4gcXVhbiwgDQpxdWEgZG8gdGFuZyBj dW9uZyB0aHVjIGNoYXQgcXVhbiBoZSBkb2kgdGFjIGhvcCB0YWMgY2hpZW4gbHVvYyB0b2FuIGRp ZW4gVHJ1bmcgUXVvYyAtIFZpZXQgTmFtLiANCg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1u ZXQudm4vMjAxMC0xMS0wMy1uYW5nLWJpZW4tZG9uZy10aGFuaC1sb2ktaWNoLWNvdC1sb2ktdHJ1 bmctcXVvYy1kYWktZG90LSBUYWMgZ2lhOiBMaWVuIGhvcCBUYW8gYmFvDQoNCkJhbiBiaSB0aHU6 ICJEb25nIGNoaSB0b3QiIGxhIHRoZSBuYXkgdT8gDQoNClRydW5nIFF1b2MgbmFuZyBCaWVuIERv bmcgdGhhbmggbG9pIGljaCBjb3QgbG9pIChnaW9uZyBuaHUgdm9pIFRheSBUYW5nIHZhIERhaSBM b2FuKSANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvU3BlY2lhbFRvcGljL1NwcmF0 bHlQYXJhY2Vscw0KDQpCYW4gYmkgdGh1OiBUcnVuZyBRdW9jIHRoaWV0IGxhcCBkb24gdmkgaGFu aCBjaGluaCBkZSBxdWFuIHRyaSBoYWkgcXVhbiBkYW8gSG9hbmcgU2EgdmEgVHJ1b25nIFNhIA0K DQpodHRwOi8vdmlldGluZm8uZXUvMTI3Lzg1NzYwL3RhdS1jYS1sYWktYmktYmF0LWdpdS10YXUt ZG9pLXRpZW4tY2h1b2MuaHRtIDI2LTAzLTIwMTAgMTI6MDQNCg0KQmFuIGJpIHRodTogVGF1IGNh IFZOIGJpIFRydW5nIFF1b2MgYmF0IGdpdSwgZG9pIHRpZW4gY2h1b2MgDQoNCk1vdCB0YXUgZGFu aCBiYXQgY3VhIG5ndSBkYW4geGEgQmluaCBDaGF1LCBodXllbiBCaW5oIFNvbiwgUXVhbmcgTmdh aSB0YWkgdnVuZyBiaWVuIA0KSG9hbmcgU2EgdGh1b2MgY2h1IHF1eWVuIGN1YSBWaWV0IE5hbSBs YWkgYmkgVHJ1bmcgUXVvYyBiYXQgZ2l1IGRvaSB0aWVuIGNodW9jIDE1MCB0cmlldSBkb25nLi4u DQoNClRvYW4gYm8gMTIgdGh1eWVuIHZpZW4sIHRodXllbiB0cnVvbmcgdmEgdGF1IGJpIGJhdCBn aXUgZHVhIHZlIGRhbyBQaHUgTGFtLiANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVz ZS92aWV0bmFtL3N0b3J5LzIwMDcvMDcvMDcwNzE5X3N0aW1lc19zcHJhdGx5cy5zaHRtbCAxOS83 LzIwMDcgMTloMjUgR01UIEJhaSBjdWEgUm9nZXIgTWl0dG9uIGRhbmcgdHJlbiBiYW8gVGhlIFN0 cmFpdHMgVGltZXMsIFNpbmdhcG9yZSANCg0KQmFuIGJpIHRodTogRGllbiBiaWVuIG1vaSB0YWkg VHJ1b25nIFNhIA0KDQpDYW5nIHRoYW5nIGRhbmcgZGFuZyBsZW4gZ2l1YSBUcnVuZyBRdW9jIHZh IFZpZXQgTmFtIHh1bmcgcXVhbmggcXV5ZW4ga2llbSANCnNvYXQgcXVhbiBkYW8gVHJ1b25nIFNh IChTcHJhdGx5cykgc2F1IGtoaSBsYWkgeGF5IHJhIG1vdCB2dSBkdW5nIGRvIGJhbyBsdWMgbnVh IA0KdHJvbmcga2h1IHZ1YyBuZ29haSBraG9pIGdpYXUgZGF1IGx1YSBuYXkuDQoNClRhdSBoYWkg cXVhbiBUcnVuZyBRdW9jIGhvbSA5LzcgZGEgbmEgc3VuZyB2YW8gbW90IHNvIHRodXllbiBkYW5o IGNhIGN1YSBuZ3UgDQpkYW4gVmlldCBOYW0gdHJvbmcgdnVuZyBiaWVuIGdhbiBUcnVvbmcgU2Es IGNhY2ggVFAgSG8gQ2hpIE1pbmggMzUwa20uDQpDYWMgbmd1b24gdGluIHF1YW4gc3Ugbm9pIG5n YXkgOS83IGhhaSB0YXUgY2hpZW4gY28gZG9uZyBCUFMtNTAwIGN1YSBWaWV0IE5hbSANCmRvIE5n YSB0aGlldCBrZSBkYSB2b2kgdmEgZGVuIGhpZW4gdHJ1b25nIG5odW5nIHBoYWkgZHVuZyB0dSB4 YSB2aSBob2EgbHVjIHF1YSBtYW5oIHR1IHRhdSBUcnVuZyBRdW9jLg0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTIwNDIzMDguYXNweCAxMi8w Ny8yMDEwIDQ6MjMgDQoNCkJhbiBiaSB0aHU6IFRydW5nIFF1b2MgdGhvbmcgcXVhICJDdW9uZyB5 ZXUgcXV5IGhvYWNoIHhheSBkdW5nIHZhIHBoYXQgdHJpZW4gZGFvIGR1IGxpY2ggcXVvYyB0ZSAN CkhhaSBOYW0gMjAxMC0yMDIwIiAtIGR1YSBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgdmFvIHF1eSBo b2FjaCB4YXkgZHVuZyB2YSBwaGF0IHRyaWVuIA0KZGFvIGR1IGxpY2ggcXVvYyB0ZSBIYWkgTmFt OyB2aSBwaGFtIG5naGllbSB0cm9uZyBjaHUgcXV5ZW4gY3VhIFZOIA0KDQpodHRwOi8vd3d3LmJi Yy5jby51ay92aWV0bmFtZXNlL3dvcmxkbmV3cy9zdG9yeS8yMDA3LzEwLzA3MTAyM19wYXJhY2Vs dG91cmlzbS5zaHRtbCAyMy8xMC8yMDA3IC0gMTRoNTYgR01UDQoNCkJhbiBiaSB0aHU6IFRydW5n IFF1b2MgbW8gcm9uZyBkdSBsaWNoIEhvYW5nIFNhIA0KDQpDdWMgRHUgbGljaCB0aW5oIEhhaSBO YW0gKFRydW5nIFF1b2MpIG1vaSB0aG9uZyBxdWEgbW90IGR1IGFuIHBoYXQgdHJpZW4gZHUgbGlj aCANCm8ga2h1IHZ1YyBiaWVuIGRvbmcsIHRyb25nIGRvIGNvIHF1YW4gZGFvIEhvYW5nIFNhLg0K DQpUcmVuIHRodWMgdGUsIFRydW5nIFF1b2MgYmF0IGRhdSB0aWVuIGhhbmggY2FjIHRvdXIgdGhh bSBxdWFuIHRhaSBkbyBtb3QgdmFpIA0KbmFtIHRydW9jIHZhIHN1IGR1bmcgdGF1IHRodXllbiBx dWFuIHN1IGRlIHZhbiBjaHV5ZW4gZHUga2hhY2guDQoNClRvIE5oYXQgYmFvIExhbyBkb25nIGN1 bmcgdHJpY2ggbG9pIG1vdCBxdWFuIGNodWMgY2hpbmggcGh1IFRydW5nIFF1b2Mgbm9pIA0KcmFu ZyBkdSBsaWNoIHNlIG1hbmcgbGFpIG5odW5nIGxvaSBpY2gga2luaCB0ZSBsb24gY2hvIEhvYW5n IFNhIGN1bmcgbmh1IA0KY3VuZyBjbyBjaHUgcXV5ZW4gY3VhIFRydW5nIFF1b2MgZG9pIHZvaSBx dWFuIGRhbyBuYXkuLiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvVGhlLWdpb2kvMjAxMC8w NC8zQkExQjMzNC8gMjYvNC8yMDEwLCAwOToyMCBHTVQrNw0KDQpCYW4gYmkgdGh1OiBUcnVuZyBR dW9jIHR1YW4gdHJhIHRodW9uZyB4dXllbiBvIFRydW9uZyBTYQ0KDQpDbyBxdWFuIHF1YW4gbHkg bmd1IG5naGllcCBUcnVuZyBRdW9jIGhvbSBxdWEgY2hvIGJpZXQgZGEgYmF0IGRhdSB2aWVjIHR1 YW4gdHJhIA0KdGh1b25nIHh1eWVuIG8ga2h1IHZ1YyBxdWFuIGRhbyBUcnVvbmcgU2EgY3VhIFZp ZXQgTmFtLg0KDQpXdSBaaHVhbmcsIGdpYW0gZG9jIGN1YyBxdWFuIGx5IG5naGUgY2EgbyBCaWVu IERvbmcsIHRodW9jIEJvIE5vbmcgbmdoaWVwIFRydW5nIA0KUXVvYywgY2hvIGJpZXQgaG8gdnVh IGR1YSBoYWkgdGF1IE5ndSBjaGluaCAzMDEgdmEgMzAyIGRlbiB0aGF5IHRoZSBjaG8gaGFpIHRh dSBzbyBoaWV1IA0KMzExIHZhIDIwMi4gQ2FjIGN1b2MgdHVhbiB0cmEgdGh1b25nIHh1eWVuIGRh IGJhdCBkYXUgdHUgZGF1IHRoYW5nIDQsIHRhaSBraHUgdnVjIHF1YW4gDQpkYW8gVHJ1b25nIFNh LCBXdSBub2kuIA0KDQpXdSBub2kgY2FjIHRhdSBuYXkgZHVvYyBkaWV1IGRpIGRlIGhvIHRvbmcg dGF1IHRodXllbiBkYW5oIGNhIGN1YSBuZ3UgZGFuIFRydW5nIFF1b2MgDQp0cmVuIEJpZW4gRG9u ZywgdmEgImtoYW5nIGRpbmggcXV5ZW4gZGFuaCBiYXQgdHJlbiB2dW5nIGJpZW4iIHF1YW5oIFRy dW9uZyBTYS4gDQoNCihBbmg6IFRhdSBuZ3UgY2hpbmggMzExIGN1YSBUcnVuZyBRdW9jIGNvIHRh aSB0cm9uZyA0LjUwMCB0YW4sIHR1bmcgbGEgbW90IHRhdSBjaGllbiEpICAgDQoNCmh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDUvVGF1LWNhLVZpZXQtTmFtLWxhaS1iaS10YXUt VHJ1bmctUXVvYy1iYXQtZ2l1LTkwODI2MC8xNDo1MywgMDYvMDUvMjAxMCAoR01UKzcpDQoNCkJh biBiaSB0aHU6IFRhdSBjYSBWaWV0IE5hbSBsYWkgYmkgdGF1IFRydW5nIFF1b2MgYmF0IGdpdSAN Cg0KVHJlbiB0YXUsIG5nb2FpIHRodXllbiB0cnVvbmcgRGFuZyBUYW0gY29uIGNvIDExIHRodXll biB2aWVuIGRldSB0cnUgdGFpIGNhYyB4YSBjdWEgDQpodXllbiBCaW5oIFNvbiwgUXVhbmcgTmdh aS4gS2hpIHRhdSBvbmcgVGFtIGJpIGJhdCBnaXUsIHRvYW4gYm8gc28gaGFpIHNhbiBkYW5oIGR1 b2MgDQpjdW5nIHBodW9uZyB0aWVuIG1heSBtb2MgYmkgY3VvcCBzYWNoLiANCg0KaHR0cDovL3Zp dGluZm8uY29tLnZuL01NdWN0aW4vUXVhbnN1L1RIU0svTEE3NzEyMS9kZWZhdWx0Lmh0bWwgMjcv MDUvMjAxMCwgMjI6NDcoR01UKzcpIENhbyBQaG9uZyAodGhlbyBUSFgpDQoNCkJhbiBiaSB0aHU6 IFRydW5nIFF1b2MgdHUgeSBsYXAgZGF0IHRyYW0gZGllbiB0aG9haSBkaSBkb25nIHRyZW4gZGFv IENodSBUaGFwIGN1YSBWaWV0IE5hbSANCg0KVmllYyBUcnVuZyBRdW9jIHR1IHkgbGFwIGRhdCB0 aGlldCBiaSB2aWVuIHRob25nIHRyZW4gZGFvIENodSBUaGFwIA0KdGh1b2MgY2h1IHF1eWVuIGxh bmggaGFpIFZpZXQgTmFtIGxhIG1vdCBoYW5oIGRvbmcgc2FpIHRyYWksIHZpIHBoYW0gDQpuZ2hp ZW0gdHJvbmcgY2h1IHF1eWVuIHRyZW4gYmllbiBjdWEgVmlldCBOYW0uDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMi8yMDEwMDgwNjAwMTgxMi5hc3B4IDA2 LzA4LzIwMTAgMDoxOCANCg0KQmFuIGJpIHRodTogVHJ1bmcgUXVvYyB0aWVuIGhhbmgga2hhbyBz YXQgZGlhIGNoYW4gdGFpIGtodSB2dWMgZGFvIFRyaSBUb24gKHRodW9jIHF1YW4gZGFvIEhvYW5n IA0KU2EpLCBzYW4gbGFwLCBtbyByb25nIGRhbyBUcmkgVG9uIA0KDQpUdSBjdW9pIHRoYW5nIDUu MjAxMCBkZW4gbmF5LCBwaGlhIFRRIGRhIHN1IGR1bmcgdGF1IGtoYW8gc2F0IE0vViBXZXN0ZXJu IFNwaXJpdCBjdW5nIA0KbmhpZXUgdGF1IGJhbyB2ZSB0aWVuIGhhbmgga2hhbyBzYXQgZGlhIGNo YW4gdGFpIGtodSB2dWMgZGFvIFRyaSBUb24sIHF1YW4gZGFvIEhvYW5nIFNhIA0KdmEgdGFpIGNh YyBsbyBkYXUga2hpIDE0MSwgMTQyIHZhIDE0MyB0cmVuIHRoZW0gbHVjIGRpYSBWTiwgY2FjaCBk YW8gTHkgU29uLCB0aW5oIFF1YW5nIA0KTmdhaSBraG9hbmcgOTAtMTE2IGhhaSBseS4NCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ1LzIwMTAxMTA0MDAxNDMw LmFzcHggVHJvbmcgS2hhIDA0LzExLzIwMTAgNjoyMCANCg0KVHJ1bmcgUXVvYyB0YXAgdHJhbiB0 cmVuIGJpZW4gRG9uZyAgDQogIA0KU2F1IGN1b2MgdGFwIHRyYW4gZHVvYyBkdWEgdGluIGdhbiBk YXkgbmhhdCBob2kgdGhhbmcgNywgVHJ1bmcgUXVvYyBsYWkgdnVhIHRodWMgaGllbiANCmRpZW4g dGFwIGxvbiB0cmVuIGJpZW4gRG9uZyAoa2hvbmcgcGhhaSBiaWVuIEhvYSBEb25nIC0gTlYpLiAN Cg0KUXVhbiBkb2kgZ2lhaSBwaG9uZyBuaGFuIGRhbiBUcnVuZyBRdW9jIChQTEEpIGRhIHRodWMg aGllbiBtb3QgY3VvYyB0YXAgdHJhbiBiYW4gZGFuIA0KdGhhdCBxdXkgbW8gbG9uIG1hbmcgdGVu IEdpYW8gTG9uZyAyMDEwIG8gYmllbiBEb25nIGhvbSAyLjExLCBuaHVuZyBkZW4gaG9tIHF1YSAN CnRydXllbiB0aG9uZyBudW9jIG5heSBtb2kgZHVhIHRpbi4gVGhlbyB0byBHbG9iYWwgVGltZXMs IGN1b2MgdGFwIHRyYW4gZGllbiByYSB0cmVuIGJpZW4gDQpsYW4gdHJlbiBibyB2b2kgc3UgdGhh bSBnaWEgY3VhIGtob2FuZyAxLjgwMCBiaW5oIHNpIGN1bmcgaXQgbmhhdCAxMDAgdGF1IGNoaWVu LCB0YXUgZG8gDQpibywgdGF1IG5nYW0gdmEgbWF5IGJheS4gVHJ1eWVuIHRob25nIFRydW5nIFF1 b2Mga2hvbmcgZHVhIHJvIHZpIHRyaSBjaGluaCB4YWMgY3VhIA0KY3VvYyB0YXAgdHJhbiBuaHVu ZyB0aGVvIEFQLCBsdWMgbHVvbmcgbGluaCB0aHV5IGRhbmggYm8gY3VhIFBMQSBkYSBkaWVuIHRh cCBkb2MgYm8gDQpiaWVuIGN1YSBkYW8gSGFpIE5hbS4gVGhlbyBHbG9iYWwgVGltZXMsIHF1YW4g c2F0IGRvdCBkaWVuIHRhcCBuZ29haSBjYWMgcXVhbiBjaHVjIA0KY3VhIEJvIFF1b2MgcGhvbmcg VHJ1bmcgUXVvYywgY29uIGNvIDIwMCBkdSBob2Mgc2luaCB0dSA0MCBudW9jIGtoYWMgbmhhdSBk YW5nIGhvYyANCnRhaSBjYWMgdHJ1b25nIHF1YW4gc3UgbyBudW9jIG5heS4NCg0KKFRhdSBjaGll biBUcnVuZyBRdW9jIHRhcCB0cmFuIHRyZW4gYmllbiBEb25nIC0gQW5oOiBjaGluYW5ld3MuY29t KQ0KDQpHbG9iYWwgVGltZXMgZGFuIGxvaSBtb3Qgc2kgcXVhbiBnaWF1IHRlbiBjaG8gYmlldCBj dW9jIHRhcCB0cmFuIG5oYW0gcGhvIHRydW9uZyBraGEgDQpuYW5nIGN1YSBsdWMgbHVvbmcgbGlu aCB0aHV5IGRhbmggYm8gY3VhIFBMQSwgZG9uZyB0aG9pIGhvYyB0YXAga2luaCBuZ2hpZW0gdHUg Y2FjIA0KbnVvYyBraGFjLiBUdXkgbmhpZW4sIGdpb2kgcXVhbiBzYXQgY28gbmh1bmcgcGhhbiB0 aWNoIHRyYWkgbmd1b2MgdmUgbXVjIGRpY2ggdGhhdCBzdSANCmN1YSBzdSBraWVuIG5heS4gVGhl byBtb3Qgc28gbmhhIHBoYW4gdGljaCwgY3VuZyBuaHUgY3VvYyB0YXAgdHJhbiBob2kgdGhhbmcg NywgZG90IA0KZGllbiB0YXAgbGFuIG5heSBuaGFtIHBoYW4gdW5nIHN1IGhpZW4gZGllbiBjdWEg TXkgdHJvbmcga2h1IHZ1Yy4gQmFjIEtpbmggdmFuIGx1b24gDQpwaGFuIGRvaSBraWNoIGxpZXQg bmh1bmcgdHV5ZW4gYm8gY3VhIE5nb2FpIHRydW9uZyBNeSBIaWxsYXJ5IENsaW50b24gdmUgdmFu IGRlIA0KdHJhbmggY2hhcCB0YWkgYmllbiBEb25nIGN1bmcgbmh1IGNhbmcgdGhhbmcgZ2FuIGRh eSBnaXVhIFRydW5nIFF1b2MgdmEgTmhhdCBCYW4uIA0KDQoiRGF5IGxhIG1vdCBjdW9jIHRhcCB0 cmFuIGJpbmggdGh1b25nIG5odW5nIG5vIGN1bmcgZHVhIHRyZW4gdGluaCBoaW5oIGdhbiBkYXkg dHJvbmcgDQpraHUgdnVjIiwgR2xvYmFsIFRpbWVzIGRhbiBsb2kgY2h1eWVuIGdpYSB2ZSBoYWkg cXVhbiBMeSBUaWV0IHRhaSBCYWMgS2luaCBub2ksICJUcnVuZyANClF1b2MgbXVvbiBjaG8gdGhh eSBzdWMgbWFuaCBjdWEgaGFpIHF1YW4iLiBUcm9uZyBraGkgZG8sIG9uZyBUb25nIFRpZXUgUXVh biwgbW90IA0KbmhhIGJpbmggbHVhbiAiY2hpbmggdGhvbmciIHRodW9uZyB4dWF0IGhpZW4gdHJl biB0cnV5ZW4gaGluaCBxdW9jIGdpYSBUcnVuZyBRdW9jLCBiYWMgDQpibyBuaHVuZyBuaGFuIGRp bmggdHJlbi4gIkRheSBjaGkgbGEgZG9uZyB0aGFpIGJpbmggdGh1b25nIG5oYW0ga2llbSB0cmEg a2hpIHRhaSBxdWFuIA0Kc3UgdmEgbmFuZyBsdWMgY2hpZW4gZGF1Iiwgb25nIFRvbiBub2kgdm9p IHRvIFRoZSBOZXcgWW9yayBUaW1lcy4NCg0KVHJvbmcga2hpIGRvLCB0YWkgSG9pIG5naGkgQ2Fw IGNhbyBBU0VBTiAxNyB2YSBIb2kgbmdoaSBDYXAgY2FvIERvbmcgQSB2dWEgZGllbiByYSANCnRh aSBIYSBOb2ksIGNhYyBiZW4gbGllbiBxdWFuIGRldSBjYW0ga2V0IGdpYWkgcXV5ZXQgdHJhbmgg Y2hhcCBvIGJpZW4gRG9uZyBiYW5nIA0KYmllbiBwaGFwIGhvYSBiaW5oIGR1YSB0cmVuIGx1YXQg cGhhcCBxdW9jIHRlLCBkYWMgYmlldCBsYSBDb25nIHVvYyBMSFEgdmUgTHVhdCBCaWVuIA0KbmFt IDE5ODIuIENhYyBudW9jIGtoYW5nIGRpbmggdG9uIHRyb25nIFR1eWVuIGJvIHZlIGNhY2ggdW5n IHh1IGN1YSBjYWMgYmVuIG8gYmllbiBEb25nIA0KdmEgeHVjIHRpZW4gaGluaCB0aGFuaCBCbyBx dXkgdGFjIHVuZyB4dSBvIGJpZW4gRG9uZy4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9j aGluaHRyaS8yMDEwMTEvVFEtdnVhLW5vaS12YWktdHJvLXRpY2gtY3VjLXZ1YS10YXAtdHJhbi1C aWVuLWRvbmctOTQ2MDYyLyBUaGFpIEFuIChUaGVvIFRIWCwgQVApICAxMDo1MiwgMDUvMTEvMjAx MCAoR01UKzcpDQoNCkJhbiBiaSB0aHU6IFRRIHZ1YSBub2kgInZhaSB0cm8gdGljaCBjdWMiIHZ1 YSB0YXAgdHJhbiBCaWVuIERvbmcNCg0KQmFvIGNoaSBUcnVuZyBRdW9jIGR1YSB0aW4sIG51b2Mg bmF5IHZhbiBkdXkgdHJpIGNhbSBrZXQgdGh1YyBoaWVuICJtb3QgdmFpIHRybyB0aWNoIA0KY3Vj IiB0cm9uZyB2aWVjIGdpYWkgcXV5ZXQgY2FjIHZhbiBkZSBxdWFuIHRyb25nIGN1YSBraHUgdnVj IHZhIHF1b2MgdGUuIFZhIHZhbyBuZ2F5IA0KMi8xMSwgbnVvYyBuYXkgZGEgdGllbiBoYW5oIG1v dCBjdW9jIHRhcCB0cmFuIGJhbiBkYW4gdGhhdCB0YWkgQmllbiBEb25nLg0KDQooQW5oOiBUYXUg Y2hpZW4gVHJ1bmcgUXVvYyB0YXAgdHJhbiBvIEJpZW4gRG9uZyBBbmggQ2hpbmFuZXdzKQ0KDQpE YW4gbG9pIHF1YW4gY2h1YyBuZ29haSBnaWFvIFRydW5nIFF1b2MsIGJhbyBjaGkgbnVvYyBuYXkg bmhhbiBtYW5oLCBCYWMgS2luaCB0aW0gDQpraWVtIHZpZWMgZ2lhaSBxdXlldCBjYWMgdHJhbmgg Y2hhcCBsYW5oIHRobyB2YSBxdXllbiBoYW5nIGhhaSB0aG9uZyBxdWEgZGFtIHBoYW4gdGhhbiAN CnRoaWVuIHZvaSBjYWMgYmVuIGxpZW4gcXVhbi4gDQoNClRybyBseSBuZ29haSB0cnVvbmcgSG8g Q2hpbmggTmd1eWV0IGtoYW5nIGRpbmgsIFRydW5nIFF1b2MgZGFuZyBubyBsdWMgZGUgdGhpZXQg bGFwIA0KY2FpIGdvaSBsYSBraGFpIG5pZW0gYW4gbmluaCBtb2kgdGFwIHRydW5nIHZhbyBob3Ag dGFjLCBjb25nIGJhbmcsIGN1bmcgdGluIHR1b25nIHZhIA0KY3VuZyBjbyBsb2kuIA0KDQpPbmcg SG8gQ2hpbmggTmd1eWV0IGtldSBnb2kgY2FjIGJlbiBsaWVuIHF1YW4gdHJhbmggbGFtIHhhdSBk aSB0aW5oIGhpbmggbyBCaWVuIERvbmcsIA0KdHJhbmggdGFvIHJhIGNhbmcgdGhhbmcgdmEgcGhh dCBzaW5oIGNobyBnaWFpIHBoYXAgY3VvaSBjdW5nIGN1YSB2YW4gZGUsIHZhIHJhbmcgdmllYyBu YXkgDQpjbyBsb2kgaWNoIGNobyBtb2kgbnVvYyBsaWVuIHF1YW4gdHJvbmcgZG8gY28gVHJ1bmcg UXVvYy4NCg0KVGhlbyB0cm8gbHkgbmdvYWkgdHJ1b25nIFRydW5nIFF1b2MsIHZpZWMgdHUgZG8g cXVhIGxhaSB0cmVuIEJpZW4gRG9uZyAtIG1vdCB0cm9uZyANCm5odW5nIHR1eWVuIGhhbmcgaGFp IG5ob24gbmhpcCBuaGF0IHRoZSBnaW9pIC0gY2h1YSBiYW8gZ2lvIGxhIHZhbiBkZSB2aSByYW5n IFRydW5nIA0KUXVvYyBsdW9uIHkgdGh1YyB0YW0gcXVhbiB0cm9uZyBjdWEgdmllYyBkdXkgdHJp IHR1IGRvIHF1YSBsYWkgdHJlbiB2dW5nIGJpZW4gbmF5LCB2YSBzZSANCmhvcCB0YWMgdGljaCBj dWMgdHJvbmcgcXVhbiBoZSBob3AgdGFjIGRhbSBiYW8gYW4gbmluaCBoYW5nIGhhaSBraHUgdnVj Lg0KDQpWZSB0aW5oIGhpbmggYmFuIGRhbyBUcmlldSBUaWVuLCBvbmcgSG8gQ2hpbmggTmd1eWV0 IG5vaSByYW5nLCBCYWMgS2luaCB2YW4gdGhlbyBkb2kgDQpzYXQgc2FvIHRpZW4gdHJpZW4gY3Vh IHRpbmggaGluaCwgdmEgc2UgbGFtIHZpZWMgbm8gbHVjIGRlIGNhaSB0aGllbiBxdWFuIGhlIHZh IGhvcCB0YWMgZ2l1YSANCmNhYyBiZW4gbGllbiBxdWFuIGRlIGR1eSB0cmkgaG9hIGJpbmggdmEg b24gZGluaCB0YWkga2h1IHZ1YyBEb25nIEJhYyBBLg0KDQpUcm9uZyBraGkgZG8sIHZhbyBuZ2F5 IDIvMTEsIHF1YW4gZG9pIFRydW5nIFF1b2MgZGEgdGllbiBoYW5oIGN1b2MgdGFwIHRyYW4gYmFu IGRhbiANCnRoYXQgdGFpIEJpZW4gRG9uZyBnaXVhIGx1YyBjYW5nIHRoYW5nIHRyb25nIGtodSB2 dWMgZ2lhIHRhbmcgeHVuZyBxdWFuaCB2aWVjIFRydW5nIA0KUXVvYyB0dXllbiBibyBjaHUgcXV5 ZW4gdm9pIGtodSB2dWMgbmF5Lg0KDQpDdW9jIHRhcCB0cmFuIHRhcCB0cnVuZyB2YW8gbW90IGN1 b2MgdGFuIGNvbmcgYm8gYmllbiBnaWEgZGluaCwgY28gc3UgdGhhbSBnaWEgY3VhIHRhdSBkbyAN CmJvLCB4ZSB0YW5nIGxvaSBudW9jLCB0YXUgdGFuIGNvbmcgbmhhbmguIERpZW4gdGFwIGJhdCBk YXUgdHUgdGh1IEJhIHZvaSBjYWMgaG9hdCBkb25nIA0KY3VhIHRhdSBzYW4gbmdhbSB2YSBkbyBt aW4gbyBibyBiaWVuLCB0cm9uZyBraGkgdHJ1YyB0aGFuZyB0YW4gY29uZyB0aGFtIGdpYSBobyB0 cm8gZG8gYm8uIA0KDQpUb25nIGNvbmcgMS44MDAgbGluaCB0aGFtIGdpYSBkaWVuIHRhcCBjdW5n IHZvaSBpdCBuaGF0IDEwMCB0YXUgY2hpZW4uIEN1b2MgdGFwIHRyYW4gZGllbg0KcmEgZG9jIGJv IGJpZW4gSGFpIE5hbSwgaG9uIGRhbyBuYW0gbyBnb2MgdGF5IGJhYyBjdWEgQmllbiBEb25nLg0K DQpCYW8gY2hpIFRydW5nIFF1b2MgZHVhIHRpbiwgY3VvYyBkaWVuIHRhcCBtYW5nIHRlbiAiR2lh byBMb25nIiBkdW9jIHRpZW4gaGFuaCB2YW8gZGlwIA0KY3VvaSBuYW0gaGFuZyBuYW0uIFR1eSBu aGllbiwgY2FjIG5oYSB0byBjaHVjIHRhcCB0cmFuIGxhbiBuYXkgZGEgcXV5ZXQgZGluaCBtb2kg MjAwIA0KaG9jIHZpZW4gcXVhbiBzYXQgZGllbiB0YXAuIENhYyBob2MgdmllbiBkZW4gdHUgaG9u IDQwIHF1b2MgZ2lhIGtoYWMgbmhhdSBkYW5nIHRoZW8gaG9jIA0KdGFpIERhaSBob2MgUXVvYyBw aG9uZywgY3VuZyBuaHUgY2FjIHRydW9uZyBoYWkgcXVhbiwga2hvbmcgcXVhbiBjdWEgVHJ1bmcg UXVvYy4NCg0KVHJvbmcga2hpIGRvLCB0YWkgSG9pIG5naGkgQ2FwIGNhbyBBU0VBTiAxNyB2YSBI b2kgbmdoaSBDYXAgY2FvIERvbmcgQSB2dWEgZGllbiByYSANCnRhaSBIYSBOb2ksIGNhYyBiZW4g bGllbiBxdWFuIGRldSBjYW0ga2V0IGdpYWkgcXV5ZXQgdHJhbmggY2hhcCBvIGJpZW4gRG9uZyBi YW5nIGJpZW4gDQpwaGFwIGhvYSBiaW5oIGR1YSB0cmVuIGx1YXQgcGhhcCBxdW9jIHRlLCBkYWMg YmlldCBsYSBDb25nIHVvYyBMSFEgdmUgTHVhdCBCaWVuIG5hbSANCjE5ODIuIENhYyBudW9jIGto YW5nIGRpbmggdG9uIHRyb25nIFR1eWVuIGJvIHZlIGNhY2ggdW5nIHh1IGN1YSBjYWMgYmVuIG8g YmllbiBEb25nIA0KdmEgeHVjIHRpZW4gaGluaCB0aGFuaCBCbyBxdXkgdGFjIHVuZyB4dSBvIGJp ZW4gRG9uZy4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9UcnVuZy1R dW9jLWdheS1ob2FpLW5naGktdmUtdHV5ZW4tYm8tcGhhdC10cmllbi1ob2EtYmluaC05Mjc0MDgv IDExOjM1LCAwNy8wOC8yMDEwIChHTVQrNykNCg0KQmFuIGJpIHRodTogVHJ1bmcgUXVvYyBnYXkg aG9haSBuZ2hpIHZlIHR1eWVuIGJvIHBoYXQgdHJpZW4gaG9hIGJpbmgNCg0KQ2hpbmggc2FjaCAi YmVuIG1pZW5nIGhvIGNoaWVuIHRyYW5oIiBkYSB0YW8gcmEgbW90IG11YSBoZSBub25nIGJvbmcg dGFpIERvbmcgQS4gDQpUcm9uZyB2YWkgbmFtIGdhbiBkYXksIFRydW5nIFF1b2MgZGEgeGF5IGR1 bmcgdmEgdGFuZyBjdW9uZyB0cmFuZyBiaSBjaG8gY2FjIGhhbSBkb2kgDQpoYWkgcXVhbiwgY2hv IHBoZXAgbHVjIGx1b25nIG5heSBkdXkgdHJpIHN1IGtpZW0gc29hdCB2b2kgY2FjIGxvIHRyaW5o IHRodW9uZyBtYWkuIA0KDQpHaW8gZGF5LCBjYWMgaG9hdCBkb25nIGN1YSBoYWkgcXVhbiBUcnVu ZyBRdW9jIGRhbmcga2hpZW4gbmhpZXUgcXVvYyBnaWEgbGFuZyBnaWVuZyANCnF1YW4gbmdhaS4g S2hvbmcgaXQgbnVvYyBkYSBubyBsdWMga2llbSBjaGUgc3UgbG9uIG1hbmggdHJ1b2Mga2hpIFRy dW5nIFF1b2MgY28gdGhlIA0KYnVvYyB2YW8gbW90IGdpYWkgZG9hbiBtb2kuDQoNCiJEaWVtIGhv YSIgY2h1IGNob3QgY2hpbmggbGEgQmllbiBEb25nLiBEYXkgbGEgdnVuZyBiaWVuIGNvIG5odW5n IGhvbiBkYW8gZ2lhdSB0YWkgDQpuZ3V5ZW4gdmEgeGF5IHJhIHRpbmggdHJhbmcgY2FuaCB0cmFu aCBsb24gdHJvbmcgdHV5ZW4gYm8gY2h1IHF1eWVuIHR1IHJhdCBuaGlldSBudW9jIA0Kbmh1IFRy dW5nIFF1b2MsIEJydW5laSwgTWFsYXlzaWEsIFBoaWxpcHBpbmVzLi4uLiBUdXkgbmhpZW4sIGNh YyBuaGEgcGhhbiB0aWNoIGNobyByYW5nLCANClRydW5nIFF1b2MgZGFuZyBoYW5oIGRvbmcgaXQg aG9wIHRhYyBuaGF0LiANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvaW5fZGVwdGgv QXJtZWQtZm9yY2VzLW9mLUNoaW5hLW1hc3NhY3JlZC05LVZpZXRuYW0tZmlzaGVybWVucy1pbi1K YW4tMjAwNS1UclZhbi0wMTE4MjAxMDE1NDc0Mi5odG1sIFRyYW4gVmFuLCBwaG9uZyB2aWVuIFJG QSAyMDEwLTAxLTE4IA0KDQpCYW4gYmkgdGh1OiBRdWFuIGhlIFZpZXQgVHJ1bmcgdGhlIGt5IDIx IGRheSBiYXQgdHJhYyAgICANCg0KVHJvbmcgdGhhcCBuaWVuIGRhdSBjdWEgdGhlIGt5IDIxLCBz dSBraWVuIGRhbmcgY2h1IHkgbmhhdCB0cm9uZyBxdWFuIGhlIFZpZXQgLSBUcnVuZyBsYSANCnN1 IGtpZW4gOSBuZ3UgZGFuIFRoYW5oIEhvYSBiaSBsdWMgbHVvbmcgdnUgdHJhbmcgVHJ1bmcgUXVv YyB0aGFtIHNhdCB0YWkga2h1IHZ1YyB2aW5oIEJhYyBiby4gDQoNClRoYW5nIDQgbmFtIG5nb2Fp LCBUaHUgdHVvbmcgVmlldCBOYW0gdmEgVGh1IHR1b25nIFRydW5nIFF1b2MgZGEgcXV5ZXQgZGlu aCBjaG9uIG5hbSBuYXkgbGFtICJOYW0gaHV1IG5naGkgVmlldCAtIFRydW5nIi4NCg0KUXVhbiBo ZSBWaWV0IC0gVHJ1bmcgZHVvYyB4YWMgbGFwIG5hbSAxOTUwIHZhIHRyb25nIHNhdSB0aGFwIG5p ZW4gdnVhIHF1YSBsaWVuIHR1YyB0aGFuZyAtIHRyYW0uIA0KDQpOZXUgeGV0IHJpZW5nIHRoYXAg bmllbiBkYXUgdGllbiBjdWEgdGhlIGt5IDIxIHRoaSBzdSBraWVuIG5hbyBkYW5nIGNodSB5IHZh IHRpZXUgYmlldSANCm5oYXQgdHJvbmcgcXVhbiBoZSBWaWV0IC0gVHJ1bmc/IENodW5nIHRvaSBj aG9uIHN1IGtpZW4gOSBuZ3UgZGFuIFRoYW5oIEhvYSBiaSBsdWMgDQpsdW9uZyB2dSB0cmFuZyBU cnVuZyBRdW9jIHRoYW0gc2F0IHRhaSBraHUgdnVjIHZpbmggQmFjIGJvLiANCg0KTmh1bmcgbXkg dHUgDQoNClF1YW4gaGUgbmdvYWkgZ2lhbyBnaXVhIFZpZXQgTmFtIHZhIFRydW5nIFF1b2MgZHVv YyB0aGlldCBsYXAgdmFvIG5hbSAxOTUwLiBUdSBkbywgDQpUcnVuZyBRdW9jIGhvIHRybyBWaWV0 IE5hbSB2ZSBuaGlldSBtYXQgdmEgY2EgaGFpIGdvaSBuaGF1IGxhICJhbmggZW0iLiBUaGVvIGdp b2kgDQpuZ2hpZW4gY3V1IGxpY2ggc3UgdmEgbmdoaWVuIGN1dSBiYW5nIGdpYW8gcXVvYyB0ZSwg a2UgdHUgbmFtIDE5NjgsIHF1YW4gaGUgVmlldCAtIA0KVHJ1bmcgYmF0IGRhdSByYW4gbnV0IHZp IFZpZXQgTmFtIHR1IGNob2kgZHVuZyB2ZSBwaGlhIFRydW5nIFF1b2MsIGNob25nIExpZW4gWG8s IA0Kdm9uIGN1bmcgZHVvYyBWaWV0IE5hbSB4ZW0gbGEgImFuaCBlbSIgYm9pIGN1bmcgZGVvIGR1 b2kgdmllYyB4YXkgZHVuZyBjaHUgbmdoaWEgeGEgaG9pLiANCk5hbSAxOTc4LCBzYXUga2hpIFZp ZXQgTmFtIGt5IEhpZXAgdW9jIGh1dSBuZ2hpIHZhIGhvcCB0YWMgdm9pIExpZW4gWG8sIHF1YW4g aGUgIA0KVmlldCAtIFRydW5nIGNodXllbiB0dSByYW4gbnV0IHNhbmcgZG8gdm8uIFRydW5nIFF1 b2MgdGFuZyBjdW9uZyBobyB0cm8gY2hvIEtoJ21lciANCmRvIHF1YXkgcm9pIFZpZXQgTmFtLiBU aGFuZyAxMiBuYW0gMTk3OCwgVmlldCBOYW0gdGFuIGNvbmcgS2gnbWVyIGRvIGdpYWkgcGhvbmcg DQpDYW1wdWNoaWEuIFRoYW5nIDIgbmFtIDE5NzksIDEyMC4wMDAgcXVhbiBUcnVuZyBRdW9jIHRy YW4gc2FuZyBWaWV0IE5hbSwgImRheSBjaG8gDQpWaWV0IE5hbSBtb3QgYmFpIGhvYyIuDQoNCkdp YW8gdHJhbmggdHJvbmcga2h1IHZ1YyBiaWVuIGdpb2kgVmlldCAtIFRydW5nIGtlbyBkYWkgdHUg MTk3OSBkZW4gMTk4OC4gQ3VvaSB0aGFwIA0KbmllbiAxOTgwLCBkYXUgdGhhcCBuaWVuIDE5OTAs IGhhaSBiZW4gbW9pIGJhdCBkYXUgYmFuIGJhYyB2aWVjICJiaW5oIHRodW9uZyBob2EgcXVhbiAN CmhlIi4gUXVhbiBoZSBWaWV0IC0gVHJ1bmcgY2hpbmggdGh1YyAiYmluaCB0aHVvbmcgaG9hIiB2 YW8gbmFtIDE5OTIuICAgDQoNCkRhdSBuYW0gMTk5OSwgb25nIEdpYW5nIFRyYWNoIERhbiwgVG9u ZyBCaSB0aHUgRGFuZyBDb25nIHNhbiBUcnVuZyBRdW9jIGRlIHJhIA0KInBodW9uZyBjaGFtIDE2 IGNodSIsIG9uZyBMZSBLaGEgUGhpZXUsIGx1YyBkbyBsYSBUb25nIEJpIHRodSBEYW5nIENvbmcg c2FuIFZpZXQgDQpOYW0gdGFuIHRoYW5oICJwaHVvbmcgY2hhbSAxNiBjaHUiIG5heSB2YSAibGFu ZyBnaWVuZyBodXUgbmdoaSwgaG9wIHRhYyB0b2FuIGRpZW4sIG9uIA0KZGluaCBsYXUgZGFpLCBo dW9uZyB0b2kgdHVvbmcgbGFpIiBkdW9jIGNhIGhhaSBiZW4geGFjIGRpbmggbGEgInR1IHR1b25n IGNoaSBkYW8sIGtodW5nIA0KdG9uZyB0aGUgcGhhdCB0cmllbiBxdWFuIGhlIFZpZXQgVHJ1bmcg dHJvbmcgdGhlIGt5IG1vaSwgZGFuaCBkYXUgcXVhbiBoZSBWaWV0IC0gVHJ1bmcgDQpidW9jIHZh byBnaWFpIGRvYW4gcGhhdCB0cmllbiBtb2kiLg0KDQooQW5oIGNodXA6IE9uZyBOZ3V5ZW4gTWlu aCBUcmlldCAodHJhaSkgdmEgb25nIEhvIENhbSBEYW8gdGFpIEJhYyBLaW5oIGhvbSAxOC01LTIw MDcuIEFGUCBQSE9UTykgDQoNCkRlbiBuYW0gMjAwMCwgcXVhICJUdXllbiBibyBjaHVuZyB2ZSBo b3AgdGFjIHRvYW4gZGllbiB0cm9uZyB0aGUga3kgbW9pIGdpdWEgVmlldCANCk5hbSB2YSBUcnVu ZyBRdW9jIiwgVmlldCBOYW0gdmEgVHJ1bmcgUXVvYyBjaG8gYmlldCwgY3VuZyB2b2kgInBodW9u ZyBjaGFtIDE2IA0KY2h1IiwgaGFpIGJlbiBzZSBwaGFuIGRhdSB0aHVjIGRheSBxdWFuIGhlIHNv bmcgcGh1b25nIHRyZW4gInRpbmggdGhhbiA0IHRvdCIgbGE6ICJsYW5nIA0KZ2llbmcgdG90LCBi YW4gYmUgdG90LCBkb25nIGNoaSB0b3QsIGRvaSB0YWMgdG90Ii4gSGFpIGJlbiBraGFuZyBkaW5o LCBjdW5nIHZvaSANCiJwaHVvbmcgY2hhbSAxNiBjaHUiLCAidGluaCB0aGFuIDQgdG90IiBsYSBk aW5oIGh1b25nIGNoaSBkYW8gY2hvIGNhIGhhaSB0cm9uZyB2aWVjIHRodWMgZGF5IHF1YW4gDQpo ZSBzb25nIHBodW9uZyBvIHRoZSBreSAyMSB2aTogDQoNCiJWaWV0IE5hbSwgVHJ1bmcgUXVvYyB2 dWEgbGEgbGFuZyBnaWVuZyBjaHVuZyBiaWVuIGdpb2ksIHZ1YSBsYSBiYW4gYmUgdHJ1eWVuIHRo b25nIA0KdHVuZyBobyB0cm8sIGdpdXAgZG8gbGFuIG5oYXUgdHJvbmcgcXVhIGtodSwgbGFpIGxh IGRvbmcgY2hpIGNoaWEgc2UgZGluaCBodW9uZyBwaGF0IHRyaWVuIA0KeGEgaG9pIGNodSBuZ2hp YSwgZHVvaSBzdSBsYW5oIGRhbyBjdWEgRGFuZyBDb25nIHNhbiB2YSBsYSBkb2kgdGFjIHRyb25n IHZpZWMgeGF5IGR1bmcgDQp2YSBwaGF0IHRyaWVuIGN1YSBtb2kgbnVvYyIuDQoNClR1eSBxdWFu IGhlIFZpZXQgLSBUcnVuZyBkYSBjbyAicGh1b25nIGNoYW0gMTYgY2h1IiB2YSAidGluaCB0aGFu IDQgdG90IiBsYW0ga2ltIGNoaSANCm5hbSBjaG8gdmllYyBob3AgdGFjIHNvbmcgcGh1b25nLCB0 aGUgbmh1bmcgc3VvdCB0aGFwIG5pZW4gdnVhIHF1YSwgIHF1YW4gaGUgVmlldCAtIA0KVHJ1bmcg dmFuIGNvIHJhdCBuaGlldSBkYXUgaGlldSBiYXQgb24sIGRhYyBiaWV0IGxhIHRhaSBiaWVuIERv bmcuIA0KDQpCaWVuIERvbmcgLSBkYW0gbWF1IHZhIG51b2MgbWF0IA0KDQpTdW90IHRoYXAgbmll biB2dWEgcXVhLCBUcnVuZyBRdW9jIGRvbiBwaHVvbmcgdGh1YyBoaWVuIG5oaWV1IGRvbmcgdGFj IG5oYW0geGFjIGRpbmggDQpjaHUgcXV5ZW4gY3VhIGhvIGdhbiBuaHUgdHJlbiB0b2FuIGJvIGxh bmggaGFpIFZpZXQgTmFtLiANCg0KQ2hhbmcgaGFuIG5odSB0dXllbiBibyB0aGFuaCBsYXAgY2Fj IGRvbiB2aSBoYW5oIGNoaW5oIGJhbyBnb20gY2EgaGFpIHF1YW4gZGFvIEhvYW5nIA0KU2EgdmEg VHJ1b25nIFNhIGN1YSBWaWV0IE5hbS4gR2F5IHN1YyBlcCBkZSBjYWMgdGFwIGRvYW4gZGF1IGto aSBudW9jIG5nb2FpIHBoYWkgZG9uIA0KcGh1b25nIGNoYW0gZHV0IGNhYyBob3AgZG9uZyBjdW5n IFZpZXQgTmFtIHRoYW0gZG8gZGF1IGtoaSwgdHJvbmcgdnVuZyBiaWVuIHRodW9jIA0KY2h1IHF1 eWVuIGN1YSBWaWV0IE5hbSwgY2FtIG5ndSBkYW4gVmlldCBOYW0gZGFuaCBjYSB0cm9uZyB2dW5n IGJpZW4gdGh1b2MgY2h1IA0KcXV5ZW4gY3VhIFZpZXQgTmFtLiANCg0KRGFjIGJpZXQgbGEgY2Fj IGx1YyBsdW9uZyB2dSB0cmFuZyBjdWEgVHJ1bmcgUXVvYyBsaWVuIHR1YyBiYW4sIGRhbSBjaGlt LCBydW90IGR1b2kgY2FjIA0KdGF1IGRhbmggY2EgY3VhIFZpZXQgTmFtLCBiYXQgZ2lhbSwgY3Vv bmcgZG9hdCB0YWkgc2FuLCBidW9jIG5ndSBkYW4gVmlldCBOYW0gbm9wIHRpZW4gDQpjaHVvYywu Li4NCg0KU3Uga2llbiBjbyB0aGUgZHVvYyB4ZW0gbGEgdGlldSBiaWV1IG5oYXQgY2hvIHF1YW4g aGUgVmlldCAtIFRydW5nIHRyb25nIHRoYXAgbmllbiB2dWEgDQpxdWEsIHNhdSBraGkgaGFpIGJl biB4YWMgbGFwICJwaHVvbmcgY2hhbSAxNiBjaHUiIHZhIGNhbSBrZXQgdGh1YyB0aGkgInRpbmgg dGhhbiA0IHRvdCIgDQpsYSB2dSB0aGFtIHNhdCBuZ3UgZGFuIFZpZXQgTmFtIGhvaSBkYXUgdGhh bmcgMSBuYW0gMjAwNS4NCg0KSG9tIDggdGhhbmcgMSBuYW0gMjAwNSwgdHJvbmcga2hpIGRhbmcg ZGFuaCBjYSB0YWkga2h1IHZ1YyBWaW5oIEJhYyBibywgbW90IHRhdSBkYW5oIA0KY2EgY3VhIG5n dSBkYW4geGEgSG9hIExvYywgaHV5ZW4gSGF1IExvYywgdGluaCBUaGFuaCBIb2EsIFZpZXQgTmFt LCB0aHVvYyBIb3AgdGFjIA0KeGEgSHVuZyBDdW9uZywgZG8gb25nIExlIFZhbiBYdXllbiBsYW0g dGh1eWVuIHRydW9uZywgZGEgYmkgY2FuaCBzYXQgYmllbiBjdWEgVHJ1bmcgDQpRdW9jIGJhbi4g Q28gOCB0cm9uZyAxNiBuZ3UgZGFuIHRyZW4gY29uIHRhdSBuYXkgY2hldCB0YWkgY2hvLCA4IG5n dW9pIGNvbiBsYWkgYmkgYmF0LCB0cm9uZyBkbyBjbyAyIGJpIHRyb25nIHRodW9uZy4NCg0KVHJ1 b2MgZG8sIGtoaSBiaSBjYW5oIHNhdCBiaWVuIGN1YSBUcnVuZyBRdW9jIHJ1b3QgZHVvaSwgdGh1 eWVuIHRydW9uZyBMZSBWYW4gWHV5ZW4gDQpkYSBwaGF0IHRpbiBoaWV1IGNhcCBjdXUuIE5oYW4g ZHVvYyB0aW4gaGlldSBuYXksIG1vdCB0YXUgZGFuaCBjYSBjdW5nIGN1YSBIb3AgdGFjIHhhIA0K SHVuZyBDdW9uZywgZG8gb25nIE5ndXllbiBWYW4gSG9hbiBsYW0gdGh1eWVuIHRydW9uZyBkYSB0 aW0gZGVuIGN1dS4gDQoNClRhdSBjdWEgb25nIE5ndXllbiBWYW4gSG9hbiBjdW5nIGJpIGNhbmgg c2F0IGJpZW4gVHJ1bmcgUXVvYyBiYW4uIFZ1IHRhbiBjb25nIHRodSANCmhhaSBsYW0gdGhpZXQg bWFuZyB0aGVtIDEgbmd1IGRhbiB2YSB0aGVtIDUgbmd1b2kga2hhYyBiaSB0aHVvbmcgbmh1bmcg b25nIE5ndXllbiANClZhbiBIb2FuIGtpcCBxdWF5IHRhdSB0YXUgdGhvYXQuIEtoaSB2YW8gZHVv YyBkZW4gYm8sIG5ndW9pIHRhIGRlbSBkdW9jIHRyZW4gdGhhbiBjb24gDQp0YXUgZGFuaCBjYSBj dWEgb25nIE5ndXllbiBWYW4gSG9hbiBjbyBraG9hbmcgNDAwIHZldCBkYW4uIA0KDQpOYW0gbmdh eSBzYXUgdnUgdGhhbSBzYXQgbmd1IGRhbiBWaWV0IE5hbSB0cmVuIGJpZW4gRG9uZywgQm8gTmdv YWkgZ2lhbyBWaWV0IE5hbSANCm1vaSBsZW4gdGllbmcsIHlldSBjYXUgVHJ1bmcgUXVvYyBkaWV1 IHRyYSB2YSB4dSBseSBuZ2hpZW0gbmh1bmcga2UgZ2lldCBuZ3VvaS4NCkNvbiBCbyBOZ29haSBn aWFvIFRydW5nIFF1b2MgdGhpIHR1eWVuIGJvLCBsdWMgbHVvbmcgdHVhbiBkdXllbiBUcnVuZyBR dW9jIGNoaSBiYW4gDQpoYSB2YSBiYXQgbmh1bmcgImhhaSB0YWMiIHhhbSBwaGFtIHZ1bmcgYmll biB0aHVvYyBjaHUgcXV5ZW4gY3VhIFRydW5nIFF1b2MsIGRpbmggY3VvcCB0YXUgZGFuaCBjYSBj dWEgbmd1IGRhbiBUcnVuZyBRdW9jLg0KDQooQW5oIGNodXA6IFRhdSBjb25nIGFuIGJpZW4gVHJ1 bmcgUXVvYy4gQUZQIFBob3RvLikgDQoNCkJvIGNoaSBodXkgQm8gZG9pIEJpZW4gcGhvbmcgdGlu aCBUaGFuaCBIb2EgY29uZyBibyBsb2kga2hhaSB2YSBjYWMgY2h1bmcgY3UgY2hvIHRoYXkgDQpj YWMgdGF1IGRhbmggY2EgVmlldCBOYW0gYmkgdGFuIGNvbmcga2hpIGRhbmcgZGFuaCBjYSB0cm9u ZyBsYW5oIGhhaSBWaWV0IE5hbSB2YSBjb24gY2FjaCBkdW9uZyBwaGFuIGRpbmggdG9pIDEwIGhh aSBseS4gDQoNCk5odW5nIHN1IGtpZW4gbmh1IHN1IGtpZW4gOCB0aGFuZyAxIG5hbSAyMDA1IGNo aSBvbiBhbyB0cm9uZyBtb3QgdGhvaSBnaWFuIG5nYW4gcm9pIGxhbmcgeHVvbmcuIA0KDQpCYXQg a2Ugbmh1bmcgc3Uga2llbiBkbywgZ2lvaSBsYW5oIGRhbyBWaWV0IE5hbSB2YW4gdGllcCB0dWMg ZHVhIHJhIG5odW5nIHR1eWVuIGJvIGtpZXUgDQpuaHUgdHV5ZW4gYm8gY3VhIG9uZyBOZ3V5ZW4g TWluaCBUcmlldCwgQ2h1IHRpY2ggTmhhIG51b2MgVmlldCBOYW0sIGtoaSBvbmcgZGVuIA0KdGhh bSBIYSBHaWFuZyAtIG1vdCB0cm9uZyBuaHVuZyB0aW5oIHR1bmcgYmkgcXVhbiBkb2kgVHJ1bmcg UXVvYyBzYW4gYmFuZyB0cm9uZyBjdW9jIA0KY2hpZW4gVmlldCAtIFRydW5nIGNhY2ggbmF5IGJh IHRoYXAgbmllbjogIlRpbmggaHV1IG5naGkgVmlldCBOYW0gLSBUcnVuZyBIb2EgbGEgc28gbW90 ISBQaGFpIGxhbSBzYW8gZ2l1IG1haSwgdHJhbiB0cm9uZy4iIA0KDQpCYXQga2UgY2Egbmh1bmcg ZGUgbmdoaSBuaHUgZGUgbmdoaSBjdWEgb25nIER1b25nIERhbmggRHksIGN1dSBCaSB0aHUgdGh1 IG5oYXQgRGFpIA0Kc3UgcXVhbiBWaWV0IE5hbSB0YWkgVHJ1bmcgUXVvYywgY3V1IFRvbmcgbGFu aCBzdSBWaWV0IE5hbSB0YWkgUXVhbmcgQ2hhdSwgVHJ1bmcgDQpRdW9jOiANClRvaSBsYW0gdmll YyB2b2kgVHJ1bmcgUXVvYyBzdW90IHR1IG5hbSAxOTYyLCBkZW4gbmFtIG5heSB2ZSBodXUgcm9p IG5odW5nIG1hIHZhbiANCmN1IHRpZXAgeHVjLCB2YW4gcGhhaSBsYW0gdm9pIFRydW5nIFF1b2Mg LSBhbmggbGFuZyBnaWVuZyB0bywga2hvZSwgbGFpIHRoYW0sIHhhdSB0aW5oLiANCk1ldCBsYW0h IEx1YyBodXUgbmdoaSBtaW5oIHR1b25nIG5vIGdpdXAgbWluaCBoZXQgc3VjIG5odW5nIG1hIG5v IGx1b24gbHVvbiB0aW0gDQpjYWNoIHRob2MgZ2F5LiANCk5nYXkgdHJvbmcgbmh1bmcgbHVjIGhv IGdpdXAgZG8gbWluaCB0byBsb24gbmhhdCwgaG8gdmFuIGNvIHkgZG8uIEx1YyBkYXUgbWluaCBr aG9uZyANCmRlIHkuIENobyBuZW4gdHJvbmcgbW90IGJ1b2kgcGhhdCBiaWV1IGdhbiBkYXkgdG9p IGNvIG5vaSB0aGUgbmF5OiAiTWF0IHRvaSBkYSB0dW5nIHRoYXkgDQp0aGUgaGUgY2hhIGFuaCBi aSBUcnVuZyBRdW9jIG1hbmcgbG9uZyB0aW4gcmEgZGUgZGFuaCBsdWEsIHRoZSBoZSB0b2kgY3Vu ZyBjbyBsdWMgYmkgDQpUcnVuZyBRdW9jIG1hbmcgbG9uZyB0aW4gcmEgZGUgZGFuaCBsdWEuIFRv aSBoeSB2b25nIHZhIG1vbmcgcmFuZyB0aGUgaGUgc2F1IHRvaSBraG9uZyBtYWMgbmh1bmcgY2Fp IG5odW9jIGRpZW0gZG8iLiANCg0KaHR0cDovL3d3dy52aWV0LnJmaS5mci92aWV0LW5hbS8yMDEw MTEwMy10cnVuZy1xdW9jLXRhcC10cmFuLWJhbi1kYW4tdGhhdC10YWktYmllbi1kb25nLWRlLXRo aS11eS12b2ktbGFuZy1naWVuZyBUcm9uZyBOZ2hpYSAwMy8xMS8yMDEwIA0KDQpCYW4gYmkgdGh1 OiBUcnVuZyBRdW9jIHRhcCB0cmFuIGJhbiBkYW4gdGhhdCB0YWkgQmllbiBEb25nIGRlIHRoaSB1 eSB2b2kgbGFuZyBnaWVuZyANCg0KUXVhbiBkb2kgVHJ1bmcgUXVvYyB2dWEgdG8gY2h1YyBtb3Qg Y3VvYyB0aGFvIGRpZW4gcXVhbiBzdSBkb2MgYm8gYmllbiBkYW8gSGFpIE5hbSwgDQpodXkgZG9u ZyBnYW4gMjAwMCBsaW5oIHRodXkgcXVhbiBsdWMgY2hpZW4uIEN1b2MgdGFwIHRyYW4gZHVvYyB0 cmluaCBiYXkgbmh1IG1vdCBob2F0IA0KZG9uZyBiaW5oIHRodW9uZyBjdWEgcXVhbiBkb2kgVHJ1 bmcgUXVvYywgbmh1bmcgQmFjIEtpbmgga2hvbmcgY2hlIGdpYXUgbXVjIHRpZXUgDQp0aGkgdXkg dm9pIGNhYyBudW9jIERvbmcgTmFtIEEgZGFuZyB0cmFuaCBjaGFwIGNodSBxdXllbiB2b2kgaG8g dGFpIHZ1bmcgVHJ1b25nIFNhIHZhIEhvYW5nIFNhLg0KDQooQW5oOiBIYWkgcXVhbiBUcnVuZyBR dW9jIHRhcCB0cmFuIHRyZW4gQmllbiBEb25nIGN1b2kgdGhhbmcgNi8yMDEwLiBBbmg6IEFGUCAv IFAuWWVvbmctRGFlKQ0KDQpUaGVvIHRvIEdsb2JhbCBUaW1lcyAoSG9hbiBjYXUgVGhvaSBiYW8p IHNvIHJhIGhvbSBuYXkgKDAzLzExLzIwMTApIGR1b2MgQUZQIHRyaWNoIA0KZGFuLCBjdW9jIHRh cCB0cmFuIG1hbmcgdGVuIEdpYW8gTG9uZyAyMDEwIGtob2kgc3UgdHUgaG9tIHF1YSwgZG8gYmlu aCBjaHVuZyBUaHV5IA0KcXVhbiBsdWMgY2hpZW4gVHJ1bmcgUXVvYyB0aHVjIGhpZW4uIEh1eSBk b25nIG1vdCBsdWMgbHVvbmcgYmFvIGdvbSBpdCBuaGF0IDEwMCBjaGllbiANCmhhbSwgdGF1IG5n YW0sIHBoaSBjbyBjYWMgbG9haSB2YSBraG9hbmcgMTgwMCBxdWFuIG5oYW4uIA0KDQpOb2kgZHVu ZyBjYWMgYmFpIHRhcCBiYW8gZ29tIGNoaWVuIGRpY2ggdGFuIGNvbmcgbGVuIGJhaSBiaWVuLCBr ZXQgaG9wIG1heSBiYXkgY2h1eWVuIA0KcXVhbiwgdGF1IGRvIGJvLCB4ZSB0YW5nIGxvaSBudW9j LCB2YSB0YXUgdGFuIGNvbmcgbmhhbmguIEx1YyBsdW9uZyBkbyBibyBkdW9jIHRydWMgDQp0aGFu ZyBjaGllbiBkYXUgaG8gdHJvLCB0cm9uZyBraGkgbyBuZ29haSBraG9pLCB0YXUgcmEgbWluIHZh IHRhdSBzYW4gdGF1IG5nYW0gY3VuZyB0aGFtIA0KZ2lhIGRpZW4gdGFwLiANCg0KTm9pIGNob24g ZGUgdG8gY2h1YyB0YXAgdHJhbiBraG9uZyBwaGFpIGxhIGtob25nIGNvIGNodSBkaWNoLiBDdW9j IGRpZW4gdGFwIGRvIGJvIGR1b2MgDQp0byBjaHVjIGRvYyB0aGVvIGJvIGJpZW4gY3VhIGRhbyBI YWkgTmFtLCBzYXQgVmluaCBCYWMgQm8gY3VhIFZpZXQgTmFtIHZhIG5hbSBvIGdvYyANClRheSBC YWMgQmllbiBEb25nIG1hIFRydW5nIFF1b2MgZG9pIGNodSBxdXllbiB0cmVuIDgwJSBkaWVuIHRp Y2gsIGJhdCBjaGFwIHZpZWMgVmlldCANCk5hbSB2YSBuaGlldSBxdW9jIGdpYSBraGFjIGN1bmcg a2llbSBzb2F0IGNhYyBkYW8gdmEgdHV5ZW4gYm8gY2h1IHF1eWVuIGN1YSBtaW5oLiANCg0KTXVj IHRpZXUgcGhvIHRydW9uZyB1eSBsdWMgcXVhIGN1b2MgdGFwIHRyYW4gbmF5IGRhIGR1b2MgZ2lv aSBjaHVjIHF1YW4gc3UgVHJ1bmcgUXVvYyANCnhhYyBuaGFuLiBNb3Qgc2kgcXVhbiBjaGkgaHV5 IGN1b2MgdGhhbyBkaWVuIHhpbiBnaWF1IHRlbiBkYSBjaG8gcmFuZyBjdW9jIHRoYW8gZGllbiAN CnF1YW4gc3UgbmF5IG5oYW0gbmV1IGJhdCB0cnVvYyB0aGUgZ2lvaSBtb3QgYmluaCBjaHVuZyBU aHV5IHF1YW4gbHVjIGNoaWVuIFRydW5nIA0KUXVvYyBoaWVuIGRhaS4gDQoNCkx5IEtpZXQgKExp IEppZSksIG1vdCBjaHV5ZW4gZ2lhIFRydW5nIFF1b2MgdmUgaGFpIHF1YW4gZHVvYyB0byBHbG9i YWwgVGltZXMgdHJpY2ggZGFuIA0KbmhhbiBkaW5oIDogIlZlIGNhbiBiYW4sIGRheSBsYSBtb3Qg Y3VvYyB0YXAgdHJhbiB0aG9uZyB0aHVvbmcsIG5odW5nIG5vIGN1bmcgZHVhIHRyZW4gDQp0aHVj IHRlIGNoaWVuIHRydW9uZyB0cm9uZyB2dW5nIEJpZW4gRG9uZy4gQ3VvYyB0YXAgdHJhbiBraG9u ZyBwaGFpIGxhIG1vdCB0aW4gaGlldSBkYWMgDQpiaWV0LCBuaHVuZyBjaHVuZyB0b2kgY2hvbiBk aWEgZGllbSBkbyBkZSBuZXUgYmF0IG5hbmcgbHVjIGN1bmcgbmh1IHN1YyBtYW5oIGN1YSBoYWkg DQpxdWFuIFRydW5nIFF1b2MiLiBUaGVvIGNodXllbiBnaWEgbmF5IDogIiBUcm9uZyBuaHVuZyBu YW0gZ2FuIGRheSwgZGEgY28gbW90IHNvIA0KbnVvYyBjYW4gdGhpZXAgdmFvIGJpZW4gRG9uZywg Y3VuZyB0YXAgdHJhbiB2b2kgY2FjIG51b2MgbGFuZyBnaWVuZyBjdWEgY2h1bmcgdG9pLCBkbyBk byANCmJheSBnaW8gZGVuIGx1YyBjaHVuZyB0b2kgcGhhaSBkb2kgcGhvIHZvaSBuaHVuZyBoYW5o IGRvbmcgY2FuIHRoaWVwIGRvIGJhbmcgcXV5ZW4gbHVjIA0KY2hpbmggdHJpLiIgDQoNClhpbiBu aGFjIGxhaSBsYSB4dW5nIGRvdCB2dSB0cmFuZyBkYSB0dW5nIHhheSByYSBnaXVhIGhhaSBxdWFu IFRydW5nIFF1b2Mgdm9pIGhhaSBxdWFuIA0KVmlldCBOYW0gdmFvIG5hbSAxOTg4LCBraGkgQmFj IEtpbmggdHVuZyBsdWMgbHVvbmcgZGFuaCBjaGllbSBtb3Qgc28gZGFvIGRvIFZpZXQgDQpOYW0g a2llbSBzb2F0IHRhaSB2dW5nIHF1YW4gZGFvIFRydW9uZyBTYSwgYmFuIGNoaW0gbW90IHNvIHRh dSBWaWV0IE5hbSBsYW0gY2hvIGhvbiANCjcwIHRodXkgdGh1IHRoaWV0IG1hbmcuIFRyb25nIG5o dW5nIG5hbSBnYW4gZGF5LCBUcnVuZyBRdW9jIGxhaSBjbyB0aGFpIGRvIGxhbiBsdW90IHRybyAN CmxhaSwga2hhbmcgZGluaCBtYW5oIG1lIGhvbiBkb2kgaG9pIGNodSBxdXllbiwgdmEgdGh1b25n IHh1eWVuIGJhdCBnaXUgdGF1IGRhbmggY2EgY3VhIA0KVmlldCBOYW0gYmkgaG8gY2hvIGxhIGRh IHhhbSBuaGFwIHZ1bmcgYmllbiBjdWEgVHJ1bmcgUXVvYy4NCg0KVHUgbmhpZXUgdGhhbmcgbmF5 LCBCYWMgS2luaCBuZ2F5IGNhbmcgbG8gbmdhaSB2ZSBkb25nIHRoYWkgY3VhIFZpZXQgTmFtIHZh IGNhYyBudW9jIA0KRG9uZyBOYW0gQSBkYW5nIHRhbmcgY3VvbmcgcXVhbiBoZSB2b2kgSG9hIEt5 LCBkYWMgYmlldCBsYSB2ZSBwaHVvbmcgZGllbiBxdW9jIA0KcGhvbmcuIFRoZW8gaGFuZyB0aW4g QVAsIFRydW5nIFF1b2MgcmF0IHBoYW4gbm8gdHJ1b2Mgc3Uga2llbiBIb2EgS3kgZ2FuIGRheSBk YSBjb25nIA0Ka2hhaSBjYW4gdGhpZXAgdmFvIGhvIHNvIEJpZW4gRG9uZy4gDQoNClkga2llbiBi YW4gZG9jOg0KTlYgNC8xMS8yMDEwOiANClRydW5nIFF1b2MgdGFwIHRyYW4gc2F0IFZpbmggQmFj IEJvIGN1YSBWaWV0IE5hbSwgbyBnb2MgVGF5IEJhYyBCaWVuIERvbmcgdHVjIGxhIG8gDQpuZ29h aSBraG9pIGNhYyB0aW5oIFF1YW5nIEJpbmggdmEgUXVhbmcgVHJpIGN1YSBWaWV0IE5hbS4gICAN Cg0KaHR0cDovL3d3dy5iYW9kYXR2aWV0LnZuL0hvbWUvdGhlZ2lvaXNvMS9UcnVuZy1RdW9jLWRp ZXUtZG9uZy10YXUtbmdhbS14dW9uZy1jYW4tY3UtSGFpLU5hbS8yMDEwMTAvMTE2MjQ4LmRhdHZp ZXQgUXVvYyBWaWV0ICh0aGVvIEt5b2RvKSA1OjEwIFBNLCAyNS8xMC8yMDEwDQoNCkJhbiBiaSB0 aHU6IFRydW5nIFF1b2MgZGlldSBkb25nIHRhdSBuZ2FtIHh1b25nIGNhbiBjdSBIYWkgTmFtIA0K DQpJdCBuaGF0IG1vdCB0YXUgbmdhbSBoYXQgbmhhbiBUeXBlLTA5MyBkYSBkdW9jIGRpZXUgZG9u ZyB4dW9uZyBsYW0gbmhpZW0gdnUgdGFpIGNhbiANCmN1IHRhdSBuZ2FtIG8gZGFvIEhhaSBOYW0g VHJ1bmcgUXVvYy4NCg0KVHJ1b2MgZG8gdmFvIG5hbSAyMDA2LCBoYWkgcXVhbiBUcnVuZyBRdW9j IGN1bmcgZGEgeGFjIG5oYW4gdmllYyBkaWV1IGRvbmcgdGF1IG5nYW0gDQpoYXQgbmhhbiBsb3Ag U2hhbmcgKFRodW9uZykgeHVvbmcgY2FuIGN1IEhhaSBOYW0uIA0KDQpOZ29haSByYSBuaGlldSB0 aG9uZyB0aW4gY2hvIGhheSBpdCBuaGF0IG1vdCB0YXUgbmdhbSBtb2kgbmhhdCBjdWEgVHJ1bmcg UXVvYyBUeXBlLQ0KMDk0IGN1bmcgZGEgZHVvYyBkaWV1IGRvbmcgeHVvbmcgZGF5IHZhbyBuYW0g MjAwOC4gVHV5IG5oaWVuIFBMQU4gIGtob25nIGNvbmcgYm8gDQpjaGkgdGlldCB2ZSB2aWVjIGRp ZXUgZG9uZyBuYXkuDQoNCihBbmggY2h1cCB0YXUgbmdhbSBsb3AgU2hhbmcgY28gbWF0IHRhaSBk YW8gSGFpIE5hbS4pIA0KDQpOaHUgdmF5LCBIYWkgcXVhbiBUcnVuZyBRdW9jIFBMQU4gZGEgc2Fu IHNhbmcgY2hvIHZpZWMgdHJpZW4ga2hhaSBob2F0IGRvbmcgdGFpIEFuIA0KRG8gRHVvbmcgdmEg YmllbiBEb25nLiBQaG9pIGhvcCB2b2kgdGF1IHNhbiBiYXkgZGFuZyBkdW9jIGRvbmcgdGFvIHRo YW5oIG1vdCBoYW0gDQpkb2kgbWFuaCBtZSwgbW8gcm9uZyBwaGFtIHZpIGFuaCBodW9uZyB0YWkg YmllbiBIb2EgRG9uZyBiYW8gZ29tIHZ1bmcgYmllbiB4dW5nIA0KcXVhbmggcXVhbiBkYW8gbWEg VHJ1bmcgUXVvYyBkYW5nIHRyYW5oIGNoYXAgdm9pIG5oaWV1IG51b2Mga2hhYy4uDQoNClRhdSBu Z2FtIGhhdCBuaGFuIFR5cGUtMDkzIGNvIGNoaWV1IGRhaSBraG9hbmcgMTEwIG1ldCwgZHVvYyBk YW5oIGdpYSBuZ2FuZyBoYW5nIA0Kdm9pIHRhdSBuZ2FtIGxvcCBWaWN0b3ItSUlJIGN1YSBIYWkg cXVhbiBOZ2EgdmUga2hhIG5hbmcgaG9hdCBkb25nIHZhIHRpZW5nIG9uLg0KDQpIYWkgTmFtIGxh IGNhbiBjdSBjaG8gdGF1IG5nYW0gbG9uIG5oYXQga2h1IHZ1YyB2b2kgZGF5IGR1IGhhIHRhbmcg Y2hvIHZpZWMgbmVvIGRhdSB2YSANCnRpZW4gaGFuaCBjYWMgaG9hdCBkb25nIGJhbyBkdW9uZy4g TW90IGJ1YyBhbmggY2h1cCB0dSB2ZSB0aW5oIGdhbiBkYXkgZGEgeGFjIGRpbmg6IGhlIA0KdGhv bmcga2h1IHR1IGNobyB0YXUgbmdhbSB2YSB0YXUgbm9pIGRhIGR1b2MgeGF5IGR1bmcuIA0KDQpO Z29haSByYSwgbW90IGNhbiBjdSB0YXUgbmdhbSB0cm9uZyBsb25nIGRhdCBjdW5nIGRhIGR1b2Mg eGF5IGR1bmcgbyBkYXkuIE5oaWV1IA0KY2h1eWVuIGdpYSBxdWFuIHN1IGNobyByYW5nOiBDYWMg Y28gc28gdHJvbmcgbG9uZyBkYXQgbmF5IGxhIGRpZW0gbmhhbiBjaGllbiBsdW9jIGNobyANCmhh bSBkb2kgdGF1IHNhbiBiYXkgY3VhIGhvIHRyb25nIHR1b25nIGxhaS4gDQoNCmh0dHA6Ly93d3cu c2Vhc2ZvdW5kYXRpb24ub3JnL25ld3MtYWJvdXQtc291dGgtZWFzdC1hc2lhLXNlYS9hY3Rpb25z LWZyb20tY2hpbmEvMzE0LXRydW5nLXF1Yy1hLWhuLTEwMDAtcXVhbi10aS1xdW4tby1ob2FuZy1z YS10cm5nLXNhLWNhLXZpdC1uYW0tLWRpbi10cC10bi1jb25nIFRodSBoYWksIDE5IFRoYW5nIDQg MjAxMCAxMDozNyANCg0KQmFuIGJpIHRodTogVHJ1bmcgUXVvYyBkdWEgaG9uIDEwMDAgcXVhbiB0 b2kgcXVhbiBkYW8gSG9hbmcgU2EsIFRydW9uZyBTYSBkZSBkaWVuIHRhcCB0YW4gY29uZyANCg0K VklUIC0gVHJvbmcgdm9uZyAxOSBuZ2F5IGtlIHR1IDIzLzMsIGhhbSBkb2kgQmFjIEhhaSB0aHVv YyBsdWMgbHVvbmcgaGFpIHF1YW4gVHJ1bmcgDQpRdW9jLCB0aWVuIGhhbmggZGllbiB0YXAga2ll bSB0cmEgc2F0IGhhY2ggY2FjIGtob2EgbXVjIGh1YW4gbHV5ZW4gdGFpIHZ1bmcgYmllbiB0aHVv YyANCmhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgY3VhIFZpZXQgTmFtLiANCg0K VGhlbyBuaHUga2UgaG9hY2ggaHVhbiBsdXllbiBoYW5nIG5hbSwgY3UgdmFvIHRoYW5nIDMgdmEg dGhhbmcgOSwgSGFtIGRvaSBCYWMgSGFpIA0KdGh1b2MgbHVjIGx1b25nIGhhaSBxdWFuIFRydW5n IFF1b2Mgc2UgdGllbiBoYW5oIGRpZW4gdGFwIGtpZW0gdHJhIHNhdCBoYWNoIGNhYyBraG9hIA0K bXVjIGh1YW4gbHV5ZW4uIFRoZW8gZG8gdmFvIGN1b2kgdGhhbmcgMyBkYXUgdGhhbmcgNCB2dWEg cXVhLCBoYW0gZG9pIG5heSBkYSB4dW9uZyANCmhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVv bmcgU2EgY3VhIFZpZXQgTmFtIGRpZW4gdGFwLg0KDQpUaGVvIG5odSBrZSBob2FjaCwgaGFtIGRv aSBuYXkgYmF0IGRhdSBjYWMga2hvYSBtdWMgaHV5ZW4gbHV5ZW4gZGllbiB0YXAgdHUgbmdheSAy MyANCnRoYW5nIDMgdmEga2VvIGRhaSB0cm9uZyB2b25nIDE5IG5nYXkgdHJlbiBoYWkga2h1IHZ1 YyBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgDQpjdWEgVmlldCBOYW0uIFRyb25nIGRv IGhhaSBraG9hIG11YyBkdW9jIHRhcCB0cnVuZyBkaWVuIHRhcCBuaGF0IGRvIGxhIGhhbmggdHJp bmggdmllbiANCmR1b25nIHRyZW4gYmllbiB2YSBoYW5oIHRyaW5oIHZ1b3QgZGFpIGNoYXUuIER1 b2MgYmlldCB0aGFtIGdpYSBsYW4gZGllbiB0YXAgZGFpIG5nYXkgDQp0cmVuIGJpZW4gbmF5IGNv IGhvbiAxMDAwIGJpbmggc3ksIHN5IHF1YW4gY2hpIGh1eSBjYWMgYmllbiBkb2kgdGF1IHRodW9j IEhhbSBkb2kgQmFjIA0KSGFpLg0KDQpMYW4gZGllbiB0YXAgbmF5IGR1b2MgY2hvIGxhIGxhbiBk aWVuIHRhcCB0cmVuIGJpZW4gcXV5IG1vIGxvbiBkYXUgdGllbiBjdWEgaGFtIGRvaSBuYXkgDQpr ZSB0dSBraGkgZHVvYyB0aGFuaCBsYXAuDQoNClRoZW8gb25nIFpoYW5nUGluZ0p1biAtIHBobyBj aGkgaHV5IGhhbSBkb2ksIGRheSBsYSBkb3QgZGllbiB0YXAgcXVhbiB0cm9uZyBkdW9jIA0KdGll biBoYW5oIHRoZW8ga2UgaG9hY2ggaHVhbiBsdXllbiB0cm9uZyBuYW0uIFRyb25nIGxhbiB0aGFt IGdpYSBkaWVuIHRhcCBuYXkgY28gY2FjIA0KdGF1IG5odTogaG8gdmUgdGVuIGx1YSA1MzUsIDUz NywgMTE1Li4uSGFtIGRvaSBuYXkgZGEgdnVvdCBxdWEgcXVhbmcgZHVvbmcgaG9uIDYwMDAgDQpo YWkgbHkgdHJvbmcgMTkgbmdheSwgZG9uZyB0aG9pIGNhYyBiaWVuIGRvaSBkYSB0aHVjIGhpZW4g NCBnaWFpIGRvYW4gaHVhbiBsdXllbiBraGFjIA0KbmhhdSwgdG8gY2h1YyAzIGxhbiBob3AgY2hp IGh1eSB2YSAxMSBsYW4gdHJ1YyBiYW4gdGFjIGNoaWVuLiANCg0KQ2FjIGtob2EgbXVjIGR1b2Mg dG8gY2h1YyBkaWVuIHRhcCBuaHU6IGhvcCBkb25nIGRvdCBraWNoLCBkbyBibyBkdW9uZyBraG9u ZywgY2hvbmcgDQpkbyBibyBkdW9uZyBraG9uZy4uLi5xdWEgZG8gaG9hbiB0aGFuaCB0b3QgY2Fj IG11YyB0aWV1LCB5ZXUgY2F1IGN1YSBuaGllbSB2dSBodWFuIA0KbHV5ZW4gZGUgcmEuDQoNCkJl biBjYW5oIGRvLCBoYW0gZG9pIG5heSBjb24gdGllbiBoYW5oIHZhbyB0aGFtIG1vdCBzbyBkYW8g dGh1b2MgcXVhbiBkYW8gVHJ1b25nIFNhIA0KZG8gbnVvYyBuYXkgY2hpZW0gZG9uZyBuaHUgZGFv IENodSBUaGFwLCBCdWJpLi4uLCB0aHVvYyBjaHUgcXV5ZW4gY3VhIFZpZXQgTmFtLiANCg0KaHR0 cDovL2JpZW5kYW92aWV0bmFtLmNvbS8yMDEwLzA4LzIwL2hhaS1xdWFuLXRydW5nLXF1b2MtbGFp LXRvLWNodWMtZGllbi10YXAtdGFpLWhvYW5nLXNhLyAyMCBBdWcgMjAxMCANCiANCkJhbiBiaSB0 aHU6IEhhaSBxdWFuIFRydW5nIFF1b2MgbGFpIHRvIGNodWMgZGllbiB0YXAgdGFpIEhvYW5nIFNh IA0KDQpCYXQgY2hhcCBuaHVuZyBwaGFuIHVuZyB2YSB0dXllbiBibyBjaHUgcXV5ZW4ga2hvbmcg dGhlIHRyYW5oIGNhaSBjdWEgVmlldCBOYW0gZG9pIA0Kdm9pIHF1YW4gZGFvIEhvYW5nIFNhLCBU cnVuZyBRdW9jIHZhbiB0aWVwIHR1YyBuZ2FuZyBuaGllbiBjaG8gdG8gY2h1YyBob2F0IGRvbmcg ZGllbiANCnRhcCBxdWFuIHN1IGN1YSBoYWkgcXVhbiB0YWkga2h1IHZ1YyBuYXkuIA0KDQpNb3Qg c28gYmFvIGNoaSBIb25nIEtvbmcgZHVhIHRpbiwgdnVhIHF1YSBUcnVuZyBRdW9jIGRhIGNobyBo YW5nIHRyYW0geGUgYm9jIHRoZXAgDQpsdW9uZyBjdSwgcGhhbyB0dSBoYW5oLCB4ZSBjaG8gcXVh biB2b2kgaGFuZyBuZ2FuIGJpbmggbGluaCByYSBxdWFuIGRhbyBIb2FuZyBTYSB0aWVuIA0KaGFu aCBkaWVuIHRhcCB0aHVjIGJpbmguDQpUaGVvIGRvLCBub2kgZHVuZyBjaHUgeWV1IGN1YSBjdW9j IGRpZW4gdGFwIGxhbiBuYXkgZG8gbGEgZGllbiB0YXAgdGFuIGNvbmcgdmEgcGhvbmcgDQpuZ3Ug ZG9pIHZvaSBjYWMgY3VtIGRhbyBtYSBUcnVuZyBRdW9jIGRhIGNoaWVtIGRvbmcgY3VhIFZpZXQg TmFtIHRhaSBxdWFuIGRhbyBuYXkuDQpUcm9uZyBkbywgYmFvIGNoaSBUcnVuZyBRdW9jIG5oYW4g bWFuaCwgZGlldSBkYWMgYmlldCBkYW5nIGNodSB5IHRyb25nIGxhbiBkaWVuIHRhcCANCm5heSBk byBjaGluaCBsYSBsYW4gZGF1IHRpZW4gaGFpIHF1YW4gbnVvYyBuYXkgZHVhIHZhbyBzdSBkdW5n IHRhYyBjaGllbiB0cmVuIGRhbyBtb3QgDQpraG9pIGx1b25nIGxvbiBjYWMgdHJhbmcgdGhpZXQg YmkgdnUga2hpIG1vaSBtYSB0cnVvYyBuYXkgVHJ1bmcgUXVvYyBjaHVhIHR1bmcgY2hvIHZhbyAN CnRoYW0gZ2lhIGNhYyBjdW9jIGRpZW4gdGFwIHRydW9jIGRvLiBCZW4gY2FuaCBkbywgY2FjIHhl IHRoaWV0IGdpYXAgY2hvIHF1YW4gbHVvbmcgY3UgDQp0aGFtIGdpYSBkaWVuIHRhcCBuYXkgY3Vu ZyBob2FuIHRvYW4gZHVvYyB0cmFuZyBiaSBtb2kuDQoNCkN1bmcgdGhlbyB0byBiYW8gbmF5LCBt dWMgZGljaCBjdWEgY3VvYyBkaWVuIHRhcCBuYXkgY3VhIGhhaSBxdWFuIFRydW5nIFF1b2MgZG8g bGEgDQpuaGFtICJkb2kga2hhbmciIHZvaSBjdW9jIGRpZW4gdGFwIHRyZW4gYmllbiBEb25nIHNh cCB0b2kgdm9pIHN1IHRoYW0gZ2lhIGN1YSBNeSB2YSANCk5oYXQsIGJlbiBjYW5oIGRvIGRheSBj b24gbGEgbW90ICJsb2kgY2FuaCBiYW8ga2hvbmcgbG9pIiBjdWEgQmFjIEtpbmguDQoNCk5nb2Fp IHJhLCBjdW9jIGRpZW4gdGFwIGxhbiBuYXkgY29uIGh1eSBkb25nIHN1IHRoYW0gZ2lhIGN1YSBt b3Qgc3UgZG9hbiBwaG9uZyBraG9uZyANClRydW5nIFF1b2MgZG9uZyB0YWkgcXVhbiBraHUgUXVh bmcgQ2hhdS4gVGhlbyBkbywgbm9pIGR1bmcgbWEgcXVhbiBraHUgbmF5IHRoYW0gDQpnaWEgZGll biB0YXAgYmFvIGdvbSBraG9hIG11YyB0aWVwIGRhdSB0cmVuIGtob25nLCB0YW4gY29uZyBkYW5o IGNoaWVtIGRhbywgZGllbiB0YXAgDQpwaG9uZyBraG9uZy4uLg0KDQpWaWVjIFRydW5nIFF1b2Mg dG8gY2h1YyBkaWVuIHRhcCB0aHVjIGJpbmggdGFpIHF1YW4gZGFvIEhvYW5nIFNhIGN1YSBWaWV0 IE5hbSBsYSBoYW5oIA0KZG9uZyB2aSBwaGFtIG5naGllbSB0cm9uZyBjaHUgcXV5ZW4gdHJlbiBi aWVuIGN1YSBWaWV0IE5hbS4gVHJ1bmcgUXVvYyBjYW4gcGhhaSB0b24gDQp0cm9uZyBDb25nIHVv YyB2ZSBsdWF0IGJpZW4gbmFtIDE5ODIgY3VhIExpZW4gSG9wIFF1b2MgdmEgVHV5ZW4gYm8gY2h1 bmcgdW5nIHh1IA0KZ2l1YSBjYWMgYmVuIHRyb25nIHZhbiBkZSBiaWVuIERvbmcgbmFtIDIwMDIu IA0KDQotDQpodHRwOi8vdHJhbmRvbmdjaGFuLmJsb2dzcG90LmNvbS8yMDA4LzEyL2F1LW5vaS1i by1hbmgtYmEtdmEtYW5oLXR1Lmh0bWwgRHVvYyBkYW5nIGJvaSBUcmEgVHUgRG8gdmFvIGx1YyAw MTo1OCANCg0KRGF1IGRhIG5vaSBibyBhbmggQmEgdmEgYW5oIFR1ICAgDQoNCkJhIER1bmcgdHVj IFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgdmEgVHUgU2FuZyB0dWMgVGh1b25nIHRydWMgQmFu IGJpIHRodSANClRydW9uZyBUYW4gU2FuZyBjdW5nIHR1b2kgbmhhdSAodHVvaSBTdXUgMTk0OSk7 IGN1bmcgbGEgZGFuIG1pZW4gTmFtOyBjdW5nIHZhbyBCbyANCkNoaW5oIHRyaSAoQkNUKSBtb3Qg bmFtOyBjdW5nIGtlIHZhaSBzYXQgY2FuaCB0cm9uZyAiY3VvYyBjaGllbiIgRGFpIGhvaSBYIChk YXUgbmFtIA0KMjAwNikgZGUgbmFuZyBjYW5oIG1pZW4gTmFtIGxlbiB0aGFuaCB0aGUgbHVjIG1h bmggbmhhdCB0cm9uZyBEYW5nLiBOaHVuZyBiYXkgZ2lvIA0KdGhpIGN1bmcgdHVvbmcgbmhhdSB0 YW4gdGFjLCBzdXQgZGF1IG1lIHRyYW4uIA0KDQpTdSB2aWVjIGJhdCBkYXUgY28gdHUgc2F1IERh aSBob2kgWCwgYW5oIDMgbGVuIG5odSBkaWV1LCB1eSB0aW4gdHJhbiB0cmUsIHRoYW8gdHVuZyB0 YXQgY2EgDQptb2kgbHVjIGx1b25nIHR1IGtpbmggdGUgZGVuIGFuIG5pbmguIEhpbmggYW5oIGFu aCAzIGx1YyBkbyB0aGF0IGxhICJzYW5nIG5nb2kiLCBhaSBjdW5nIA0KYmFvIHJhbmcgYW5oIDMg c2UgdHJvIHRoYW5oIG1vdCAibmdvaSBzYW8gc2FuZyIgZHVhIGRhdCBudW9jIGxlbiBtb3QgdGFt IGNhbyBtb2ksIHRyb25nIA0KbnVvYyBuZ29haSBudW9jIGNhIGhldCBsb2ksIGxlbiB0YW4gbWF5 IHhhbmggbGFtIGFuaCAzIGN1bmcgdHVvbmcgbWluaCB0aGUgdGhhdC4gDQpUcm9uZyBraGkgZG8g YW5oIDQgcmF0IGFtIHVjLCBuZ2hpIHJhbmcgbWluaCBkYSBobyB0cm8gaGV0IG1pbmggY2hvICJi YW4iIDMsIG5odW5nIGdpbyANCmJhbiAzIGtob25nIGJpZXQgbmd1b2kgYmlldCB0YSwgbXVvbiBs YW4gbHVvdCBjYSBtaW5oLiBUdSBkbyBhbmggNCBiYXQgZGF1IHRoZSBoaWVuIHRoZSANCmx1YyBj dWEgbWluaC4gQW5oIDQga2hlbyBsZW8gZHVuZyBkYW5oIG5naGlhIFRvbmcgQmkgdGh1IGRlIGhh bmggc3UsIG1hIFRodW9uZyANCnRydWMgQmFuIEJpIHRodSB0aGkgY3VuZyB0aGF5IG1hdCBUQlQg ZGUgZ2lhaSBxdXlldCBuaGlldSB2aWVjIGN1YSBCYW4gQmkgdGh1IGR1b2MgcXVhIA0KZGkgY2h1 LiBBbmggNCAicXVhbiB4dXllbiIgZ2FuIGhldCBtb2kgdmllYywgZGVuIG11YyBuZ3V5ZW4gQ2h1 IHRpY2ggUXVvYyBob2kgDQpOZ3V5ZW4gVmFuIEFuIGNoYW8gYW5oIDQgbGEgImNoYW8gUGhvIFRv bmcgQmkgdGh1Ii4gDQpWYSB0dSB0aW5oIGhpbmggZG8gZGEgaGluaCB0aGFuaCAyIHBoZTogYmVu IEJhbiBiaSB0aHUgKGFuaCA0KSB2YSBiZW4gQ2hpbmggcGh1IChhbmggMykgDQpkYXUgbmhhdSBx dXlldCBsaWV0LiBYaW4ga2UgbmdoZSB2YWkgY2h1eWVuLg0KDQpUaHUgbmhhdCBsYSB2dSBuaGEg bWF5IHRoZXAgUG9zY28gbyB2aW5oIFZhbiBQaG9uZy4gRHUgYW4gbmF5IGRhdSB0aWVuIGxhIGFu aCAzIGt5IA0KZG9uZyB5IGNodSB0cnVvbmcsIGR1IHJhbmcsIHRydW9jIGRvIGFuaCAzIGN1bmcg ZG9uZyB5IG1vdCBjaHUgdHJ1b25nIGtoYWMuIEJhbyBjaGkgDQpsZW4gdGllbmcgdmUga2hhIG5h bmcgbyBuaGllbSBtb2kgdHJ1b25nLiBBbmggNCBsYXkgY28gbmF5IHBoYW4gY29uZywgeWV1IGNh dSBwaGFpIA0KeGVtIHhldCBjYW4gdGhhbi4gS2hvbmcgaGlldSB2byB0aW5oIGhheSBjbyB5IG1h IG5nYXkgc2F1IGRvIHZhaSB0dWFuLCB2YW8gZ2l1YSB0aGFuZyA1IA0KdnVhIHJvaSwgYmVuIEhh biBRdW9jIGJhdCBuZ28gbW9pIGFuaCA0IGRpIHRoYW0gbnVvYyBoby4gVGhpIHJhIHF1YSBkbyBQ b3NjbyB0aWVwIGRvbiANCmFuaCA0IG5odW5nIG1vdCBvbmcgaG9hbmcsIGR1YSBhbmggNCBkaSBi YW5nIG1heSBiYXkgdHJ1YyB0aGFuZyBkZSB0cnVjIHRpZXAgeGVtIHN1IA0KcXVpIG1vIHZhIGto b25nIG8gbmhpZW0gY3VhIFBvc2NvIHRyb25nIHZpZWMgc2FuIHh1YXQgdGhlcC4gVmUgbnVvYywg YW5oIDQgdG8gdGhhaSBkbyANCm11b24gbmdoaWVuIGN1dSBreSBkZSBhbiBQb3NjbyBWYW4gUGhv bmcsIHRoaSBkdW5nIG1vdCBjYWkgYW5oIDMgdGhheSBkb2kuIEdpbyB0aGkgYWkgDQpjdW5nIGJp ZXQgZGUgYW4gbmF5IGRhIGJpIGFuaCAzIGt5IGxvYWkgdmkgLi4uIGtob25nIGRhbSBiYW8gbW9p IHRydW9uZy4NCg0KVHJ1b2MgZG8gdmFpIHRoYW5nIGNvIHZ1IGN1bmcgbGllbiBxdWFuIGRlbiBI YW4gUXVvYyBkYXUgdHUgcGhhdCB0cmllbiBzb25nIEhvbmcgDQpnaW9uZyBuaHUgc29uZyBIYW4g Y3VhIGFuaCAzIHVuZyBobyB0aGkgbGFpIGJpIGFuaCA0IHBoYW4gZG9pIHF1eWV0IGxpZXQsIGR1 YSByYSBCQ1QgDQpxdXlldCBkaW5oIGxhbSBhbmggMyB0aHVhIHZhIHJhdCBjYXkgY3UuDQoNCk5o dW5nIGNhaSBkYXUgbmhhdCBjdWEgYW5oIDMgbGEgaGllbiBuYXkgcXV5ZW4gZGlldSBoYW5oIGtp bmggdGUgZGEga2hvbmcgY29uIGR1b2MgInR1IA0KdHVuZyB0dSB0YWMiIG5odSB0cnVvYyB0aG9p IGt5IGxhbSBwaGF0IHBoaSBtYSBudWEuIEN1b2kgdGhhbmcgMy8yMDA4IGxhbSBwaGF0IHRhbmcg dm90LCANCmFuaCAzIGhvYW5nIGhvdCByYSA4IG5ob20gZ2lhaSBwaGFwIHZhIHRodSBjaG8gZG9u ZyBiYW8gY2EgbnVvYywgdmFpIG5nYXkgbmdheSBzYXUgZG8gDQphbmggNCBkdWEgcmEgQkNUIHRo b25nIHF1YSBtb3Qga2V0IGx1YW4gdmUgdGluaCBoaW5oIGxhbSBwaGF0IHRyb25nIGRvIGNvIHkg Y2hpIHRyaWNoIHN1IA0KeWV1IGtlbSBjdWEgYW5oIDMgdmEgY28gbW90IHNvIGRpZW0ga2hvbmcg ZG9uZyBuaGF0IHZvaSA4IG5ob20gZ2lhaSBwaGFwLiBEZW4gaG9pIA0KbmdoaSBUcnVuZyB1b25n IDcgKGdpdWEgdGhhbmcgNykgdGhpIHJhIG5naGkgcXV5ZXQgZ2lhbyBjaG8gQkNUIGNoaSBkYW8g dmUga2luaCB0ZSwgY28gDQpuZ2hpYSByYW5nIHF1eWVuIGhhbiB2b24gY28gY3VhIGFuaCAzIHZl IHZpZWMgbmF5IGJpIGhhbiBjaGUuIEJDVCB0aGkgZ2lhbyBjaG8gYW5oIDQgDQp0aGVvIGRvaSB2 YSBiYW8gY2FvIGRlIHh1YXQgY2hvIEJDVC4gUm9pIGRlbiBkYXUgdGhhbmcgMTAgKHR1YyBsYSBj aHVhIGRheSAyLDUgdGhhbmcgDQpzYXUpIFRydW5nIHVvbmcgbGFpIGhvcCBkZSBiYW4gZGFjIGJp ZXQgdmUga2luaCB0ZS4gS2V0IHF1YSBsYSBhbmggMyBiaSB5ZXUgdGhlLiBUcm9uZyBsdWMgDQpk byB0aGkgYW5oIDQgeHVhdCBoaWVuIHRhaSBjYWMgYm8gVGFpIGNoaW5oIHZhIGJvIEtlIGhvYWNo IERhdSB0dSBkZSBjaGkgZGFvIG1vdCBjYWNoIA0KImRhbmggY2hpbmggbmdvbiB0aHVhbiIgdGhh eSBtYXQgY2hvIEJDVC4NCg0KVGluaCBoaW5oIGtobyBraGFuIGNhcCBiYWNoIHRoZSBuYXksIG5n dW9pIGRhIGtob25nIGdpb2kgbWEgY29uIGRhdSBuaGF1IG5odSB0aGUgbmF5IA0KdGhpIGtldCBx dWEgbGFtIGNoaSBtYSB0b3QgZHVvYy4NCg0KVGluIG1vaSBuaGF0IGxhIEJDVCBzZSBob3Aga2hh biB2YW8gY3VvaSB0dWFuIG5heSBkZSBiYW4gdmUgdmllYyBOaGF0IGNhdCB2aWVuIHRyby4gVmFu IA0KZGUgbmF5IHRodWMgcmEgZGEgZHVvYyBkZSBjYXAgZGVuIG1vdCBsYW4gdHJ1b2MgZGF5LCB2 YW8gdGhhbmcgNiB2dWEgcm9pLiBOaHVuZyBob20gDQpuYXkgbW9pIHRoYXQgbGEgY2hvYW5nIGto aSBuZ2hlIHRpbiBOaGF0IGR1bmcgdGF0IGNhIGNhYyBraG9hbiBPREEgY2EgbW9pIGxhbiBkYW5n IA0KdGh1YyBoaWVuIHRoaSBtb2kgYmlldCByYW5nIGhldCB0aHVvYyBjaHVhIHJvaS4gRGUgcm9p IHhlbSwgc2FwIHRvaSBsYSBIYW4gUXVvYyByb2kgRGFpIExvYW4uLi4gc2UgcmEgY2hpZXUgZG9j LiANCg0KaHR0cDovL2Jsb2cxbmd1b2l2aWV0LmJsb2dzcG90LmNvbS8yMDEwLzEwL2FuZy1jc3Zu LXRyb25nLXRpbmgtdHJhbmctaGllbS1uZ2hlby5odG1sIE5naGllbSBWYW4gVGhhY2ggMjAvMTAv MjAxMCANCg0KVHJ1b25nIFRhbiBTYW5nLCBOZ3V5ZW4gVGFuIER1bmcgY2FuaCB0cmFuaCBuZ2F5 IGNhbmcgbmhpZXUgYmUgYm9pICANCg0KVHJvbmcgc3UgY2FuaCB0cmFuaCB2b2kgb25nIER1bmcs IHRoZW8gbW90IHRob25nIHRpbiByYXQgY2hpbmggeGFjLCBvbmcgU2FuZyBkYSBsYW0gDQptb3Qg c2FpIGxhbSBsb24gbGEgdnUgRGFuZyBEYW4gY2h1LiBRdWEgTmd1eWVuIFN5IEJpbmgsIG9uZyBT YW5nIG11b24gbXVvbiB0YXkgTGUgDQpDb25nIERpbmgsIFRyYW4gSHV5bmggRHV5IFRodWMsIE5n dXllbiBUaWVuIFRydW5nLCBsYW0gZHVuZyBjdSBkZSBkYW5oIHBoYSBvbmcgDQpEdW5nIHRyb25n IGRhbmggbmdoaWEgZG9pIGxhcCBkYW4gY2h1LiBUcmFuIEh1eW5oIER1eSBUaHVjIGR1b2MgdHJh byBuaHVuZyB0YWkgbGlldSANCmRlIHRvIGdpYWMgTmd1eWVuIFRhbiBEdW5nIHRoYW0gbmh1bmcg dHJlbiBjYWMgYmxvZyBjdWEgbWluaC4gTmh1bmcgb25nIFNhbmcgZGEgDQpkdW5nIG5odW5nIG5n dW9pIHF1YSBrZW0uIFBoZSBvbmcgRHVuZyBwaGF0IGdpYWMgZHVvYyB2YSBiYXQgY2EgYm9uLiBU cnVvYyBuaHVuZyANCmNodW5nIGNvIGtob25nIHRoZSBjaG9pIGNhaSwgdGF0IGNhIGRhIG5oYW5o IGNob25nIG5oYW4gdG9pIHZhIHhpbiBraG9hbiBob25nLiBUcnVvYyBkbyANCmhvIHRvIHJhIG1h bmggYmFvIGJhbyBuaGlldSB2aSBjYXkgY28gbyBkdSBvbmcgU2FuZyB0aGkgc2F1IGRvIGhvIGto aWVwIG5odW9jIGJheSANCm5oaWV1IHZpIHRoYXkgb25nIER1bmcgZGEgdGhhbmcuIEJpZW4gYmFu IG5oYW4gdG9pIGN1YSBobyB0cm9uZyBkbyBjbyBzdSBsaWVuIGhlIHZvaSBwaGUgDQpUcnVvbmcg VGFuIFNhbmcgZHVvYyBndWkgbGVuIEJvIENoaW5oIHRyaSwga2hpZW4gb25nIFNhbmcgcGhhaSAi bmhhbiBraHV5ZXQgZGllbSBsYSANCmRhIHRoaWV1IGNhbmggZ2lhYyIuIFNhdSB2dSBuYXksIHZh biBkZSBvbmcgU2FuZyBsYW0gVG9uZyBiaSB0aHUgaGF1IG5odSBraG9uZyBjb24gZGF0IA0KcmEg bnVhLiBOaHVuZyBuaHUgdGhlIGNvIHZlIHF1YSBjaHUgcXVhbiwgY29pIHRodW9uZyBtdXUgbWVv IGN1YSBvbmcgU2FuZyB2YSB2YXkgDQpjYW5oIG1hIG9uZyBkYSB0YW8gcmEgdHJvbmcgaG9uIG11 b2kgbmFtIGdpdSB2YWkgdHJvIGJhbiBwaGF0IG9uIGh1ZSB0cm9uZyBjaHVjIHZ1IA0KVHJ1b25n IGJhbiBLaW5oIHRlIFRydW5nIHVvbmcgdmEgVGh1b25nIHRydWMgQmFuIGJpIHRodS4gT25nIFNh bmcgZGEgY2h1eWVuIHNhbmcgbGllbiANCmtldCB2b2kgY2FjIG9uZyBOZ3V5ZW4gUGh1IFRyb25n IHZhIEhvIER1YyBWaWV0LCB2YSBkYW4gZGFuIHRyYW5oIHRodSBkdW9jIGtob2kgZGFuZyANCnZp ZW4gbG8gbmdhaSBiYW4gdGluaCBhbmggY2hpIHZhIGR1bmcgdHVuZyB0aGFtIG5odW5nIGN1YSBv bmcgRHVuZy4gDQoNCmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDgvMTIvY3Vv Yy1jaGllbi1jdWEtYW5oLWJhLWFuaC10dS10aWVwLWRpZW4uaHRtbCBEdW9jIGRhbmcgYm9pIFRy YSBUdSBEbyB2YW8gbHVjIDIyOjI5IA0KDQpDdW9jIGNoaWVuIGN1YSBhbmggQmEgYW5oIFR1IHRp ZXAgZGllbiBxdXlldCBsaWV0IC0gYmF0IGNoYXAgZHVuZyBoYXkgc2FpIA0KDQpDdW9jIGRhdSBk YSBnaXVhIGFuaCAzIER1bmcgdmEgYW5oIDQgU2FuZyBkYSBkZW4gaG9pIHF1eWV0IGxpZXQgbmhh dCwgbm8gY2FuZyB0aGFuZyANCmRlbiBtdWMgbWEgbmhpZXUgbmd1b2kgdGluIHJhbmcgc2UgbGEg bW90IG1hdCBtb3QgY29uIGNodSBraG9uZyB0aGUgZHVuZyBsYWkgbyBtdWMgDQp0aG9hIGhpZXAg dGh1b25nIHRoYXkgZ2l1YSBjYWMgcGhlIGNhbmggdHJvbmcgRGFuZyB0cnVvYyBkYXkuDQoNCkJh eSBnaW8gYW5oIDQga2llbiBxdXlldCBjaGFuIHRhdCBjYSBuaHVuZyBnaSBhbmggMyBsYW0gYmF0 IGNoYXAgbGEgbm8gZHVuZyBoYXkgc2FpLCB0b3QgDQpoYXkgeGF1LiBWaSBkdSBuaHUgcXV5ZXQg ZGluaCBkdW5nIDEgdHkgVVNEIGtpY2ggY2F1IGJhbmcgY2FjaCBidSBsYWkgc3VhdCBkYSBiaSBV eSANCmJhbiBUaHVvbmcgdnUgUXVvYyBIb2kgeWV1IGNhdSBkdW5nIGxhaSB2aSBkdW5nIGRlbiBu Z2FuIHNhY2ggbWEga2hvbmcgY28gcGhlIA0KY2h1YW4gY3VhIFF1b2MgSG9pLiBDYWkgbmF5IHRo aSB0b3QsIHVuZyBobyBhbmggNCB2aSBhaSBjdW5nIGJpZXQgcmFuZyBraWNoIGNhdSBuaHUgdGhl IA0KY2hhbmcgcXVhIGRlIGN1dSBjYWMgZGFpIGdpYSBkYW5nIG5vIG5nYW4gaGFuZyBiaSBkYXQu IE5odW5nIGNhaSBkZSB4dWF0IGN1YSBhbmggMyB2ZSANCnZpZWMgdGFtIGR1bmcgaGF5IGhvYW4g bm9wIHRodWUgVE5DTiBiaSBhbmggNCBjYW4gdGhpIGxhIGNodXllbiB4YXUuIENoYW5nIGJpZXQg YW5oIDMgDQpjbyB0aHVjIHN1IG5naGkgY2hvIGRhbiBraG9uZyBraGkgZGUgbmdoaSBob2FuLCBk dW5nIHRoaSBoYW5oIGx1YXQgdGh1ZSBUTkNOLCBuaGlldSANCm5ndW9pIGJhbyByYW5nIG5ldSBj byB0aGkgdGFpIHNhbyBraG9uZyBkZSBuZ2hpIHR1IHNvbSBraGkgY28gcmF0IG5oaWV1IG5ndW9p IGxlbiB0aWVuZyANCmNhbmggYmFvIHZhIGtldSBnb2kgZGlldSBuYXkgbWEgZGUgdG9pIGdpbyBj aG90LCBuaHVuZyBybyByYW5nIGxhIGNhaSBuYXkgcmF0IGNhbiB0aGlldCBkZSANCmRhbiBkbyBr aG8uIFVCVFZRSCBkYSB0dSBjaG9pIGRlIG5naGkgbmF5IGN1YSBDaGluaCBwaHUgdmkgdmllbiBk YW4gZHUgdGh1IGRpZXUgbHVhdCwgDQpwaGFpIGNoaSBjYWkgZ2kgaG8gY3VuZyB0b24gdHJvbmcg bHVhdCBwaGFwIG5odSB0aGUgdGhpIGRhbiBkbyBraG8gYmlldCBtYXkuDQoNCkdpb2kgYW0gaGll dSBjaGluaCB0cnVvbmcgbmhhbiBkaW5oIHJhbmcgYW5oIDQgbGFtIHRoZSBsYSBkdW5nIHZpIG5l dSBkZSBhbmggMyBkdW5nIA0KdGllbiBraWNoIGNhdSB4YWkgY2hvIGRhaSBnaWEgdGhpIHRpbmgg dHJhbmcgYm9uZyBib25nIG5nYW4gaGFuZyB2YSB0eSBnaWEgY28gdGhlIGtlbyBkYWkgDQp0aGVt IGR1b2MgMyBkZW4gNCB0aGFuZyBudWE7IG5ldSBkZSBhbmggMyBsYXkgZGllbSB2b2kgZGFuIHZl IHZpZWMgZHVuZywgaG9hbiBkb25nIA0KdGh1ZSBUTkNOIHRoaSB0aW5oIGhpbmggc2UgbGF5IGxh dCB0aGVtIGR1b2MgdmFpIHRoYW5nIG51YS4gVHJvbmcga2hpIGRvIGhvaSBuZ2hpIFRydW5nIA0K dW9uZyBnaXVhIG5oaWVtIGt5IHRoaSBjaGFtIG5oYXQgdGhhbmcgMi4yMDA5IHBoYWkgdG8gY2h1 Yywga2hvbmcgdGhlIGNoYW0gaG9uLiBBbmggDQo0IG11b24gbW9pIG5ndW9pIG5oaW4gdGhheSBj YWkgc3UgYmkgZGF0IHRoYXQgc3UgY3VhIGhpZW4gdHJhbmcga2luaCB0ZSB4YSBob2kuIE1vdCB0 aGFuIA0KY2FuIGN1YSBhbmggNCBub2kgdnVpIHJhbmcgImRlIG51b2MgY2FuIHRoaSBiaWV0IHRo YW5nIG5hbyBtYWMgcXVhbiwgdGhhbmcgbmFvIGtob25nIi4gDQpIb20gcXVhIG5ldSB4ZW0gVFYg bW9pIG5ndW9pIHNlIHRoYXkgYW5oIDQgZGVuIFRvbmcgQ29uZyB0eSBTQ0lDIGNoaSBkYW8sIG5n aGUgDQpiYW8gcmFuZyBhbmggNCByYW4gZGUgZ2hlIGxhbSwgbHVjIGx1b25nIG5heSBwaGFpIG5h bSBpbS4gQW5oIDMgZGFuZyBoZXQgc3VjIHR1YyBnaWFuIA0Kbmh1bmcgY2h1YSBjbyBjYWNoIG5h byBkZSBwaGFuIGNvbmcsIG5odW5nIGFuaCAzIHZvbiBub2kgdGllbmcgbGEgdGFvIGJhbyB2YSBs aWV1IGxpbmggDQpuZW4gY2h1YSBiaWV0IGR1b2MgZ2lvIGNob3Qgc2UgdHVuZyByYSBjaGlldSBn aSBiYXQgbmdvIGhheSBraG9uZy4gDQoNCkNvbiBjYWMgZGFpIGdpYSBiYXkgZ2lvIGN1bmcga2hv bmcgY29uIGR1IHN1YyBkZSBidW5nIHRpZW4gcmEga2hpIGNhbiB0aGlldCB0aGVvIGxlbmggY3Vh IA0KcXVhbiB0aGF5IG5odSB0cnVvYyBkYXkgbnVhLCBjYWMgZHVvbmcga2luaCB0YWkgZGEgYmkg Yml0LiBUcm9uZyB0dWFuIHRvaSBzZSBwaGFpIGNvIHF1eWV0IA0KZGluaCB2ZSBuZ2F5IHRvIGNo dWMgaG9pIG5naGkgVHJ1bmcgdW9uZywga2hpIGRvIHNlIGJpZXQgZHVvYyBjYW4gY2FuIGRhdSBk YSBzZSBuZ2hpZW5nIHZlIGJlbiBuYW8uIA0KDQotDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vbmV3cy9QYWdlcy8yMDEwMzkvMjAxMDA5MjYwMDA0NTMuYXNweCBOLlAgLSBILlQgLSBILlR1 YW4gLSBUVFhWTiAyNi8wOS8yMDEwIDA6MDQgDQoNCkJhbiBiaSB0aHU6IEJhbiBUbyBjaHVjIFQu VSB2dWEgY29uZyBibyBxdXlldCBkaW5oIGN1YSBCYW4gQmkgdGh1IHZlIHZpZWMgZGlldSBkb25n LCANCmJvIG5oaWVtIGRvaSB2b2kgb25nIFRydW9uZyBRdWFuZyBOZ2hpYSAtIFBobyBiaSB0aHUg VGhhbmggdXkgRGEgTmFuZy4gVGhlbyBkbywgDQpvbmcgTmdoaWEgZHVvYyBjaGkgZGluaCB0aGFt IGdpYSBCYW4gQ2hhcCBoYW5oLCBCYW4gVGh1b25nIHZ1LCBnaXUgY2h1YyBQaG8gYmkgDQp0aHUg RGFuZyB1eSBLaG9pIGRvYW5oIG5naGllcCBULlUsIG5oaWVtIGt5IDIwMDctMjAxMC4gDQoNCk9u ZyBOZ2hpYSBkdW9jIGRpZXUgdmUgRGEgTmFuZyBsYW0gcGhvIEJpIHRodSBuYW0gMjAwODsgdHJ1 b2MgZG8gZ2l1IGNodWMgVG9uZyBHaWFtIA0KZG9jIFRvbmcgQ29uZyB0eSBDUCBYdWF0IG5oYXAg a2hhdSB2YSBYYXkgZHVuZyBWaWV0IE5hbSBWSU5BQ09ORVguIA0KDQpodHRwOi8vd3d3LnRpbjI0 Ny5jb20vdGh1X2hvaV90dV92aW5hY29uZXhfOTAwX3RpX2Rvbmdfc2FpX3BoYW0tNi0yMTQ2MTAz My5odG1sIDMxLzA3LzIwMDkgLSAwODozOSAtIHZuTWVkaWEudm4NCg0KVmluYWNvbmV4IHNhaSBw aGFtIDkwMCB0aSBkb25nICh0aGVvIGtldCBsdWFuIHRoYW5oIHRyYSBjdWEgQ1ApIA0KDQpodHRw Oi8vd3d3LmJhb21vaS5jb20vSG9tZS9UdXllbkR1bmcvc3RvY2tiaXoudm4vQ2hpLWJhbmctbWF5 LXZhbi1iYW4tVmluYWNvbmV4LWRhLXRodS01MTAtdHktZG9uZy8zMDcyMTQwLmVwaSBOb25nIG5n aGllcCBWaWV0IE5hbSAtIDE2LzA3LzIwMDkgMzowMDowMCBDSCBUcmFuIERpbmggQmENCiANClZJ TkFDT05FWDogQ2hpIGJhbmcgbWF5IHZhbiBiYW4gVmluYWNvbmV4IGRhIHRodSA1MTAgdHkgZG9u ZyANCiAgICAgIA0KTmdheSAyNi8xLzIwMDUsIFBobyB2YW4gcGhvbmcgSERORCB2YSBVQk5EIFRQ IEhvIENoaSBNaW5oIC0gSHV5bmggS2ltIFBoYXQga3kgDQp2YW4gYmFuIHNvIDY4L1RCLVZQICJU aG9uZyBiYW8gbm9pIGR1bmcga2V0IGx1YW4gY3VhIFBobyBjaHUgdGljaCBVQk5EIFRQIA0KTmd1 eWVuIFZhbiBEdWEgdmUgY2hhcCB0aHVhbiBjaG8gVEN0eSBWaW5hY29uZXggbGFtIGNodSBkYXUg dHUgZHUgYW4gbmhhIGNhbyANCnRhbmcga2V0IGhvcCB0aHVvbmcgbWFpIGRpY2ggdnUgVmluYWNv bmV4IC0gVGhhbyBEaWVuIHRhaSBraHUgZGFuIGN1IEFuIFBodSAzIA0KdGh1b2MgcGh1b25nIFRo YW8gRGllbiwgcXVhbiAyLCBUUCBIbyBDaGkgTWluaC4uLiIuDQoNCkRpZXUgMSBjdWEgdmFuIGJh biBuYXkgZ2hpOiAiVGh1YW4gY2h1IHRydW9uZyBjaG8gVEN0eSBYTksgeGF5IGR1bmcgVmlldCBO YW0gDQooVmluYWNvbmV4KSBsYW0gY2h1IGRhdSB0dSB4YXkgZHVuZyBkdSBhbiBuaGEgbyBjYW8g dGFuZyBxdXkgbW8gZGllbiB0aWNoIA0Ka2hvYW5nIDggaGEgdGFpIGtodSBkYW4gY3UgQW4gUGh1 IDMgdGh1b2MgcGh1b25nIFRoYW8gRGllbiwgcXVhbiAyIi4NCg0KR2FuIDEwIHRoYW5nIHNhdSBr aGkgY28gdGhvbmcgYmFvIG5heSwgbmdheSAxNC8xMC8yMDA1LCBUaHUgdHVvbmcgQ2hpbmggcGh1 IA0KY28gcXV5ZXQgZGluaCBzbyAxNTg5IFRUZy1DTiB2ZSB2aWVjOiBEYXUgdHUgeGF5IGR1bmcg ZHUgYW4ga2h1IG5oYSBvIGNhbyB0YW5nIA0Ka2V0IGhvcCB0aHVvbmcgbWFpIGRpY2ggdnUgdGFp IHBodW9uZyBUaGFvIERpZW4sIHF1YW4gMiwgVFBIQ00uIERpZXUgMiBxdXlldCANCmRpbmggbmF5 IGdoaTogR2lhbyBCbyBYYXkgZHVuZyBjaGkgZGFvIGRhdSB0dSAoVEN0eSBYTksgeGF5IGR1bmcg VmlldCBOYW0pIA0KdGh1YyBoaWVuIGR1IGFuIHRoZW8gZHVuZyBjYWMgcXV5IGRpbmggaGllbiBo YW5oLg0KDQpOaHUgdmF5LCBiYW5nIDIgdmFuIGJhbiBuYXkgVmluYWNvbmV4IGRhIGNvIHRyb25n IHRheSA4IGhhIGRhdCBkZSB4YXkgZHVuZyBraHUgDQpuaGEgbyBjYW8gdGFuZyBrZXQgaG9wIHZv aSB0aHVvbmcgbWFpIGRpY2ggdnUuIFF1eWV0IGRpbmggY3VhIFRodSB0dW9uZyBDaGluaCANCnBo dSBjb24gcXV5IGRpbmggcm8gY2h1IGRhdSB0dSBjdWEgREEgbmF5IGxhIFRDdHkgWE5LIHhheSBk dW5nIFZpZXQgTmFtLg0KDQpTYXUga2hpIGNvIHF1eWV0IGRpbmggY3VhIFRodSB0dW9uZyBDaGlu aCBwaHUsIGNodSBkYXUgdHUgVmluYWNvbmV4IGNvIHRodWMgaGllbiANCmR1IGFuIHRoZW8gZHVu ZyBjYWMgcXV5IGRpbmggaGllbiBoYW5oIGhheSBraG9uZz8gSGF5IGhvIGNoaSBjYW4gY2FjIHZh biBiYW4gZG8gDQpkZSBob3AgcGhhcCBob2EgOCBoYSBkYXQgZGUgIm11YSBiYW4gdHJhbyB0YXki IGtpZW0gbG9pIHBoaSBwaGFwPyBEaWV1IGRhYyBiaWV0IA0KZGFuZyB0aWVjIGxhIGNoaW5oIG1v dCB2aSBxdWFuIGNodWMgbG9uIGN1YSBUUENITSBsYWkgcmEgcXV5ZXQgZGluaCBkZSBWaW5hY29u ZXggDQp0aHVjIGhpZW4gZHVvYyBoYW5oIHZpIGN1YSBoby4gRG8gY2hpbmggbGEgdmFuIGJhbiBz byA0NDIvVEItVlAgY3VhIFZhbiBwaG9uZyBESE5EIA0KdmEgVUJORCBUUEhDTSBkbyBQaG8gdmFu IHBob25nIEh1eW5oIEtpbSBQaGF0IGt5IG5nYXkgMjcvNi8yMDA3OiAiVGhvbmcgYmFvIG5vaSAN CmR1bmcga2V0IGx1YW4gY3VhIFBobyBjaHUgdGljaCBVQk5EIFRQIE5ndXllbiBIdXUgVGluIHZl IGR1IGFuIGN1YSBUQ3R5IGNvIHBoYW4gDQpYTksgeGF5IGR1bmcgVmluYWNvbmV4IHRhaSBwaHVv bmcgVGhhbyBEaWVuLCBxdWFuIDIiLiBUcm9uZyB2YW4gYmFuIG5heSBjbyBkb2FuIA0KdmlldDog IlBobyBjaHUgdGljaCBVQk5EIFRQIE5ndXllbiBIdXUgVGluIGRhIGNvIHkga2llbiBrZXQgbHVh biBuaHUgc2F1OiBWZSBUQ3R5IA0KVmluYWNvbmV4IGNodXllbiBnaWFvIGR1IGFuIGNobyBDdHkg Y28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuIHRydWMgdGllcCBsYW0gY2h1IGRhdSANCnR1Li4uIEN0 eSBDbyBwaGFuIGRhdSB0dSBUaGFvIERpZW4gdGh1YyBoaWVuIGR1IGFuLCBraG9uZyBkdW9jIGNo dXllbiBuaHVvbmcgREEiLg0KDQpOaHVuZyB0dW9uZyB2b2kgdmFuIGJhbiA0NDIvVEItVlAgbmF5 IERBIDggaGEgZGF0IHRhaSBwaHVvbmcgVGhhbyBEaWVuLCBxdWFuIDIgc2UgDQpkdW9jIEN0eSBj byBwaGFuIGRhdSB0dSBUaGFvIERpZW4gKHRoZW8gZ2lhaSB0cmluaCBsYSBtb3QgQ3R5ICJjb24i IGN1YSBWaW5hY29uZXgpIA0Kc2UgZHVvYyBoYWkgIm1lIC0gY29uIiBuaGEgVmluYWNvbmV4IGhv cCBzdWMgdGh1YyB0aGkgdHJvbiB2ZW4uIE5odW5nIGtob25nLCBkYXkgDQp2YW4gY2hpIGxhIG1v dCB0cm8gYW8gdGh1YXQgY3VhIFZpbmFjb25leC4gVHJvIGFvIHRodWF0IGN1YSAibWUtY29uIiBu aGEgVmluYWNvbmV4IA0KZHVvYyBib2MgbG8gcm8sIGtoaSBraG9uZyBkZW4gbW90IHRoYW5nIHNh dSB2YW4gYmFuIHNvIDQ0MiBjdWEgVUJORCBUUEhDTSBkdW9jIFBobyANCmNodSB0aWNoIFVCTkQg VFAgTmd1eWVuIEh1dSBUaW4gY2h1YW4geSBjaHV5ZW4gY2h1IGRhdSB0dSBkdSBhbiB0dSBWaW5h Y29uZXggc2FuZyANCnRheSBDdHkgY28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuLCB4dWF0IGhpZW4g bW90IHZhbiBiYW4gbW9pIGdvaSBsYSAidGhvYSB0aHVhbiIsIA0KdHJhbmcgZGF1IGN1YSB2YW4g YmFuIG5heSB2aWV0Og0KDQpUaG9hIHRodWFuIHZlIHZpZWM6IENodXllbiBnaWFvIGNobyBDdHkg Y28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuIGxhbSBjaHUgZGF1IHR1IA0KdHJ1YyB0aWVwIGR1IGFu IGtodSBuaGEgbyBjYW8gdGFuZyBrZXQgaG9wIHRodW9uZyBtYWkgZGljaCB2dSBWaW5hY29uZXgt VGhhbyBEaWVuIA0KdGFpIHBodW9uZyBUaGFvIERpZW4sIHF1YW4gMiwgVFBIQ00uIEdpdWEgVEN0 eSBjbyBwaGFuIFhOSyB4YXkgZHVuZyBWaWV0IE5hbSB2YSANCkN0eSBjbyBwaGFuIGRhdSB0dSAt IHRodW9uZyBtYWkgQ2hpIFRoYW5oIHZhIEN0eSBjbyBwaGFuIGRhdSB0dSBUaGFvIERpZW4uDQoN ClRpZXUgZGUgY3VhIGJhbiAidGhvYSB0aHVhbiIgbGEgbmh1IHZheSBuaHVuZyBub2kgZHVuZyAi dGhvYSB0aHVhbiIgbGFpIGhvYW4gdG9hbiANCmtoYWMuIE5ndXllbiB2YW4gdHJhbmcgMSBjdWEg dmFuIGJhbiBuYXkgdmlldCBuaHUgc2F1OiAiVGhvYSB0aHVhbiIgbmF5IChzYXUgZGF5IA0KZ29p IGxhICJ0aG9hIHRodWFuIikgZHVvYyBsYXAgdmFvIG5nYXkgMjUvNy8yMDA3IHRhaSBUUEhDTS4g R2l1YSBUQ3R5IGNvIHBoYW4gWE5LIA0KeGF5IGR1bmcgVmlldCBOYW0gdmEgQ3R5IGNvIHBoYW4g ZGF1IHR1IC0gdGh1b25nIG1haSBDaGkgVGhhbmggdmEgQ3R5IGNvIHBoYW4gZGF1IHR1IFRoYW8g RGllbi4NCg0KKFNhdSBkYXkgZ29pIHJpZW5nIGxhICJiZW4iIHZhIGdvaSBjaHVuZyBsYSAiY2Fj IGJlbiIpLg0KDQpNdWMgQSBjdWEgdmFuIGJhbiBnb2kgbGEgInRob2EgdGh1YW4iIHZpZXQ6ICJW aW5hY29uZXggdmEgQ2hpIFRoYW5oIHZhIG1vdCBjYSBuaGFuIA0KZG8gQ2hpIFRoYW5oIGNoaSBk aW5oIHNlIHRoYW5oIGxhcCBtb3QgQ3R5IGNvIHBoYW4gZGUgaG9wIHRhYyBkYXUgdHUgeGF5IGR1 bmcgdmEgDQpraW5oIGRvYW5oIGR1IGFuIGtodSBuaGEgbyBjYW8gdGFuZyBrZXQgaG9wIHRodW9u ZyBtYWkgZGljaCB2dSB0YWkgcGh1b25nIFRoYW8gRGllbiwgDQpxdWFuIDIsIFRQQ0hNIChzYXUg ZGF5IGdvaSB0YXQgbGEgImR1IGFuIikgdHJlbiBraHUgZGF0IGNvIGRpZW4gdGljaCBraG9hbmcg ODAuMDAwbTIgKHNhdSBkYXkgZ29pIHRhdCBsYSAia2h1IGRhdCIpLg0KDQpNdWMgQiB2aWV0OiAi TmdheSA5LzIvMjAwNywgVGhhbyBEaWVuIGRhIGR1b2MgdGhhbmggbGFwIHRoZW8gZ2lheSBjaHVu ZyBuaGFuIGRhbmcgDQpreSBraW5oIGRvYW5oIHNvIDQxMDMwMDYwNzYgZG8gU28gS2UgaG9hY2gg dmEgRGF1IHR1IFRQSENNIGNhcCBuZ2F5IDkvMi8yMDA3IHZvaSANCnRvbmcgc28gdm9uIGRpZXUg bGUgOTAwIHR5IGRvbmcgKHNhdSBkYXkgZ29pIGxhICJ2b24gZGlldSBsZSIpLiBUcm9uZyBkbyBW aW5hY29uZXggDQpnb3AgMzAlLCBDaGkgVGhhbmggZ29wIDY5JSB2YSBvbmcgVHJpbmggVGhhbmgg UGhvbmcgZ29wIDElIHZvbiBkaWV1IGxlIGN1YSBUaGFvIERpZW4iLg0KDQpNdWMgQyB2aWV0OiAi VUJORCBUUEhDTSBjbyB2YW4gYmFuIHNvIDQ0Mi9UQi9WUCBuZ2F5IDI3LzYvMjAwNyB2ZSB2aWVj OiBDaGFwIHRodWFuIA0KY2h1eWVuIGdpYW8gZHUgYW4gY2hvIFRoYW8gRGllbiBsYW0gY2h1IGRh dSB0dSIuDQoNCkRvYyBreSBNdWMgQSwgTXVjIEIsIE11YyBDIGN1YSBjYWkgZ29pIGxhICJ0aG9h IHRodWFuIiBuYXksIGNodW5nIHRhIGRhIHRoYXkgcm8gDQpjaGFuIHR1b25nIGN1YSBWaW5hY29u ZXggdmEgbmh1bmcgbmd1b2kgdHJvbmcgY3VvYyB2ZSBtdXUgZG8gIm11YSBiYW4gc2FuZyB0YXki IA0KZHUgYW4gOCBoYSBkYXQgdGFpIFRoYW8gRGllbiBkYSBkdW9jIGhvIGJheSBkYXQgdHUgdHJ1 b2MuIENodW5nIHRhIGNhbmcgdGhheSBybyANCmhvbiBuaHVuZyBtdXUgbWEgY2h1b2MgcXV5IGRl IGhvcCBwaGFwIGhvYSBjYWMgdGh1IHR1YyBoYW5oIGNoaW5oIHRyb25nIHBoaSB2dSANCmxhbSBh biBuYXkuIERvIGxhIEN0eSBjbyBwaGFuIGRhdSB0dSBUaGFvIERpZW4sIGdvaSBsYSBDdHkgImNv biIgY3VhIFZpbmFjb25leCAtIA0KZG9uIHZpIGR1b2MgY2h1eWVuIGdpYW8gZHUgYW4gdHUgQ3R5 ICJtZSIgVmluYWNvbmV4IGNoaSBkdW9jIHRoYW5oIGxhcCBzYXUgZ2FuIDIgDQpuYW0ga2hpIEN0 eSAibWUiIFZpbmFjb25leCBkdW9jIFRodSB0dW9uZyBDaGluaCBwaHUgdmEgVUJORCBUUEhDTSBj byBxdXlldCBkaW5oIA0KZ2lhbyA4IGhhIGRhdCB0YWkgVGhhbyBEaWVuIGNobyBWaW5hY29uZXgg bGFtIGNodSBkYXUgdHUuIFRodWMgY2hhdCB2aWVjIHJhIGRvaSANCmNhaSBnb2kgbGEgQ3R5IGNv IHBoYW4gZGF1IHR1IFRoYW8gRGllbiB2YSB2aWVjIGNodXllbiBnaWFvIGR1IGFuIGNobyBDdHkg bmF5IGN1bmcgY2hpIGxhIG1vdCB0cm8gYmlwIGJvbS4NCg0KVmkgbmh1IHRyb25nIE11YyBBIGN1 YSBiYW4gInRob2EgdGh1YW4iIGRhIGtoYW5nIGRpbmggcm8gdHJ1b2Mga2hpIEN0eSBDbyBwaGFu IA0KRGF1IHR1IFRoYW8gRGllbiByYSBkb2kgZHVuZyBtb3QgdGhhbmcsIFZpbmFjb25leCB2YSBD aGkgVGhhbmggZGEga3kgaG9wIGRvbmcgaG9wIA0KdGFjIGRhdSB0dSBkdW5nIHZhbyBraHUgZGF0 IG1hIHRydW9jIGRvIGdhbiAyIG5hbSBWaW5hY29uZXggZHVvYyBjYXAuIFRodWMgY2hhdCANCkN0 eSBjbyBwaGFuIGRhdSB0dSBUaGFvIERpZW4gY2hpIGxhIGR1YSBjb24gZG8gY2hpbmggQ3R5IGNv IHBoYW4gZGF1IHR1IC0gdGh1b25nIA0KbWFpIENoaSBUaGFuaCBjdW5nIFZpbmFjb25leCBkZSBy YSwgZG8gQ3R5IGRhdSB0dSAtIHRodW9uZyBtYWkgQ2hpIFRoYW5oIG5hbSBxdXllbiANCmNoaSBw aG9pIHZpIGhvIG5hbSB0b2kgNjklIHZvbiBkaWV1IGxlLiBWYSBjaGluaCBobyBkYSBraG9uZyBj YW4gZ2lhdSBnaWVtIGRpZXUgZG8sIA0Ka2hpIHRyb25nIE11YyBBIGJhbiAidGhvYSB0aHVhbiIg dmlldCBybzogIi4uLiBUaGVvIGRvIFZpbmFjb25leCwgQ2hpIFRoYW5oIHZhIG1vdCANCmNhIG5o YW4gZG8gQ2hpbmggVGhhbmggY2hpIGRpbmggc2UgdGhhbmggbGFwIG1vdCBDdHkgY28gcGhhbiBk ZSBob3AgdGFjIGRhdSB0dSB4YXkgDQpkdW5nIHZhIGtpbmggZG9hbmggZHUgYW4iLi4uDQoNClNh dSBuaHVuZyB0cm8gbHVvbiBsZW8gbWEgZ2lhbyBrZSB0cmVuLCBWaW5hY29uZXggZGEgY28gbmh1 bmcgdmFuIGJhbiBwaGFwIGx5IA0KY3VhIGNhYyBjbyBxdWFuIGNvbmcgcXV5ZW4gZGUgdGh1YyBo aWVuIHZpZWMgImJhbiB0cmFvIHRheSIgZHUgYW4ga2h1IG5oYSBvIA0KY2FvIHRhbmcga2V0IGhv cCB0aHVvbmcgbWFpIHZhIGRpY2ggdnUgdm9pIGRpZW4gdGljaCA4MC4wMDBtMiB0YWkgcGh1b25n IFRoYW8gDQpEaWVuLCBxdWFuIDIsIFRQSENNIGNobyBDdHkgQ2hpbmggVGhhbmggdm9pIGdpYSA0 NyB0cmlldSBVU0QgKGtob2FuZyA3NTAgdHkgDQpkb25nIFZpZXQgTmFtKS4gQ2FuIGx1dSB5IGxh IGRlbiBuZ2F5IDMwLzQvMjAwOCwgdG9uZyBjaGkgcGhpIG1hIFZpbmFjb25leCBkYSANCmNoaSBj aG8gZHUgYW4gbmF5IGxhIDI0MCB0aSBkb25nIGNoaSBiYW5nIG1vdCB2YW4gYmFuIGNvIHRlbiAi VGhvYSB0aHVhbiIga3kgDQpuZ2F5IDI1LzcvMjAwNyB2b2kgZGF5IGR1IGNvbiBkYXUgdmEgY2h1 IGt5IGN1YSBjYSBiYSBiZW46IFRDdHkgWE5LIHhheSBkdW5nIA0KVmlldCBOYW0gZG8gVHJ1b25n IFF1YW5nIE5naGlhIGt5LCBDdHkgY28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuIGRvIE5naGllbSBC YWNoIA0KSHVvbmcga3ksIEN0eSBjbyBwaGFuIGRhdSB0dSB0aHVvbmcgbWFpIENoaSBUaGFuaCBk byBUcmluaCBUaGFuaCBIdXkga3kuDQoNCkNodW5nIHRhIGNvIHRoZSBraGFuZyBkaW5oIHJhbmcg ZGF5IGxhIG1vdCB2dSBsdWEgZGFvIGJhbmcgZHUgYW4gZGF1IHR1IGRlIG11YSANCmJhbiBjb25n IHRobyBxdW9jIGdpYSBoZXQgc3VjIHRyYW5nIHRyb24gdmEgbmdoaWVtIHRyb25nLiBOZ2hpZW0g dHJvbmcgbyBjaG8gDQpobyBkYW0gbHVhIGNhIFRodSB0dW9uZyBDaGluaCBwaHUuIE5naGllbSB0 cm9uZyB2aSBzbyB0aWVuIGhvIHRodSBkdW9jIHRyb25nIA0KdnUgdmllYyBuYXkgbGVuIHRvaSA0 NyB0cmlldSBVU0QuIFRyb25nIGx1YyB0b2FuIERhbmcsIHRvYW4gZGFuLCB0b2FuIHhhIGhvaSAN CmRhbmcgdHVuZyBnaW8sIHR1bmcgcGh1dCB0dXllbiBjaGllbiB2b2kgdGUgbmFuIHRoYW0gbmh1 bmcsIGNoYW5nIGxlIHZ1IHZpZWMgDQpuZ2hpZW0gdHJvbmcgbmF5LCB2b2kgY2FjIGJhbmcgY2h1 bmcgcGhhcCBseSBkYSBybyBtdW9pIG11b2kgbGFpIGxvdCBsdW9pIHBoYXAgbHVhdD8NCg0KaHR0 cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDA3LzA0LzNCOUY1NDhDLyAyMS80 LzIwMDcsIDEwOjE2IEdNVCs3DQoNClZJTkFDT05FWDogTmd1eWVuIGdpYW0gZG9jIFZpbmFjb25l eCAxMCBjaHV5ZW4gJ2FuIHRpZW4nIHRoYXUgcGh1DQoNCmh0dHA6Ly93d3cudGhhbmh0cmEuY29t LnZuL0RlZmF1bHQuYXNweD90YWJpZD02NSZuZXdzaWQ9MTM5ODYgUFYgMDYvMDEvMDkNCg0KVklO QUNPTkVYOiBTYWkgcGhhbSBuZ2hpZW0gdHJvbmcgdHJvbmcgY28gcGhhbiBob2EgVmluYWNvbmV4 IA0KDQpDYWMgY29uZyB0eSB0aGFuaCB2aWVuIC0gRGV1IHNhaSBwaGFtIA0KDQpDaHUgdGljaCBI b2kgZG9uZyBxdWFuIHRyaSAoSERRVCkgdmEgVG9uZyBHaWFtIGRvYyBUb25nIEN0eSAodHJ1b2Mg dGhhbmcgNy8yMDA1KSANCnRoYW0gZ2lhIHZhIGdpdSBjaHVjIENodSB0aWNoIEhEUVQgY3VhIG5o aWV1IEN0eSBjbyBwaGFuLg0KDQpPbmcgUGhpIFRoYWkgQmluaCwgQ2h1IHRpY2ggSERRVCBUb25n IEN0eSBraWVtIGdpdSBjaHVjIHZ1IENodSB0aWNoIEhEUVQgOSBDdHkgY28gcGhhbiB0aGFuaCB2 aWVuIHZhIDIgQ3R5IGNvIGdvcCB2b24uDQoNCk9uZyBOZ3V5ZW4gVmFuIFR1YW4sIFRvbmcgR2lh bSBkb2MgVG9uZyBDdHkga2llbSBDaHUgdGljaCBIRFFUIDMgQ3R5IGNvIHBoYW4gdGhhbmggdmll bi4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMDgvMDUvNzg0NDU4LyAx OTozNiwgMjIvMDUvMjAwOCAoR01UKzcpDQoNCkJhbiBCaSB0aHU6IEJvIG5oaWVtIGNhbiBibyAt ICdDb24gdm9pIHZhbiBjaHVpIGxvdCBsbyBraW0nDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhv aS9IYS1Ob2ktRGEtYmF1LTItcGhvLWNodS10aWNoLW1vaS80NTIwMjE0My8xNTcvIDIyLzcvMjAw NiwgMjM6NTMgR01UKzcgDQoNCk9uZyBQaGkgVGhhaSBCaW5oLCBDaHUgdGljaCBIb2kgZG9uZyBR dWFuIHRyaSBWaW5hY29uZXggZHVvYyBsYW0gUGhvIGNodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhh IG5vaSANCg0KaHR0cDovL2Jhb2RhaWRvYW5rZXQubmV0L2Rkay9tZE5ld3MuZGRrP2lkPTE0ODMw IDIzLzAzLzIwMDkgQW5oIERhby1Ib25nIFNvbg0KDQpTYWkgcGhhbSB0YWkgVG9uZyBjb25nIHR5 IFh1YXQgbmhhcCBraGF1IFhheSBkdW5nIFZpZXQgTmFtIFZpbmFjb25leA0KDQo0IHRoYW5nIHNh dSBrZXQgbHVhbiBjdWEgVGhhbmggdHJhIENoaW5oIHBodSB2ZSBuaHVuZyBzYWkgcGhhbSB0YWkg VG9uZyBjb25nIHR5IA0KWHVhdCBuaGFwIGtoYXUgWGF5IGR1bmcgVmlldCBOYW0gKFZpbmFjb25l eCksIHRyb25nIGRvIGNvIGtpZW4gbmdoaSB0aHUgaG9pIHNvIA0KdGllbiBob24gMS40MDAgdHkg ZG9uZywgdmFuIGNodWEgY28gbW90IGRvbmcgbmFvIGR1b2Mgbm9wIHZhbyBraG8gYmFjIG1hYyBk dSBuaHVuZyANCnNhaSBwaGFtIHRhaSBWaW5hY29uZXggdmEgbW90IHNvIGNvbmcgdHkgY29uIGR1 b2MgZGFuaCBnaWEgbGEgcmF0IG5naGllbSB0cm9uZzogDQpDbyB5IGxhbSB0cmFpLCBsYXAgY2h1 bmcgdHUga2hvbmcsIGNoaWVtIGRvYXQgdGllbiwgdGFpIHNhbiBjdWEgTmhhIG51b2Mgdm9pIHRv bmcgZ2lhIHRyaSBnYW4gOSB0eSBkb25nLg0KDQpYYXkgZHVuZyBzYWkgcXV5IGhvYWNoIHBoYSB2 byBjYW5oIHF1YW4sIGtob25nIGdpYW4ga2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9hIC0gTmhhbiBD aGluaCANCg0KSG9uIDUuNTAwIG0yIHZpIHBoYW0gcXV5IGhvYWNoDQoNClRoZW8ga2V0IGx1YW4s IGdpYSB0cmkgcXV5ZW4gc3UgZHVuZyBkYXQgZG9pIHZvaSBjYWMgZGllbiB0aWNoIFZpbmFjb25l eCB4YXkgZHVuZyB2aSANCnBoYW0gcXVpIGhvYWNoIGxhIDg0IHR5IGRvbmcgbmV1IGFwIHRoZW8g a2h1bmcgZ2lhIGRhdCBjdWEgVGhhbmggcGhvIEhhIE5vaS4gTmdvYWkgcmEsIA0KSERRVCBWaW5h Y29uZXggY29uIGR1eWV0IGJhbiwgY2hvIHRodWUgdGFuZyAxIGNhYyB0b2EgbmhhIGNodW5nIGN1 IGNhbyB0YW5nLCB2YW4gcGhvbmcsIA0KY3VhIGhhbmcgbWEga2hvbmcgcXVhIGJhbiBkYXUgZ2lh LiBWaW5hY29uZXggZGEga3kgaG9wIGRvbmcga2hvbmcgZHVuZyB0aGFtIHF1eWVuLCANCmNodXll biBuaHVvbmcgY2hvIGNhYyBjYSBuaGFuLCB0byBjaHVjIHRvbmcgZGllbiB0aWNoIGhvbiAxMi4w MDBtMiwgdGh1IDIzMCB0eSBkb25nLg0KDQpWaWVjIGtob25nIHRpbmggZ2lhIHRyaSBxdXllbiBz dSBkdW5nIGRhdCB2YW8gZ2lhIHRyaSBkb2FuaCBuZ2hpZXAgdGhlbyBUaGFuaCB0cmEgDQpDaGlu aCBwaHUgKFRUQ1ApIGxhIGtob25nIHBodSBob3Agdm9pIGNhYyBxdWkgZGluaCBjdWEgQ2hpbmgg cGh1LCBCbyBUYWkgY2hpbmguDQoNCkN1bmcgdHJvbmcgdGhvaSBkaWVtIGNvIHBoYW4gaG9hLCBW aW5hY29uZXggZGEgYmFuIDExIHRyaWV1IGNvIHBoYW4gY2hvIDcgbmhhIGRhdSB0dSANCmNoaWVu IGx1b2Mgdm9pIGdpYSB1dSBkYWkgZ2lhbSAyMCUgdHJlbiBtb3QgY28gcGhhbiBzbyB2b2kgZ2lh IGRhdSBnaWEgYmluaCBxdWFuLCANCmdheSB0aGF0IHRodSB0aWVuIGNobyBOaGEgbnVvYyBob24g NTMgdHkgZG9uZy4gVGhlbyBUVENQLCB0cmFjaCBuaGllbSB0aHVvYyB2ZSBDaHUgdGljaCANCkhE UVQgUGhpIFRoYWkgQmluaCB2YSBUb25nIGdpYW0gZG9jIE5ndXllbiBWYW4gVHVhbi4NCg0KTGFt IHRyYWksIGxhcCBraG9uZyBjaHVuZyB0dSwgY2hpZW0gZG9hdCBob24gOSB0eSBkb25nDQoNClZl IHZhbiBkZSBWaW5hY29uZXggdGh1YyBoaWVuIGtldCBsdWFuIGN1YSBUVENQLCBUb25nIFRoYW5o IHRyYSBDaGluaCBwaHUgVHJhbiBWYW4gVHJ1eWVuIA0KY2hvIGJpZXQgVmluYWNvbmV4IGNvIHBo YW4gdW5nIHRydW9jIGtldCBsdWFuIG5vcCBob24gMS40MDAgdHkgZG9uZyBzYWkgcGhhbSB0YWkg ZG9uIHZpIG5heS4gDQpUdXkgbmhpZW4sIG9uZyBUcnV5ZW4ga2hhbmcgZGluaDogIlRpbmggZ29w IHRhdCBjYSBjYWMgbWF0IGtoYWMgdGhpIGNvbiBzbyBuYXkgY29uIGhvbiBudWEiLiANCg0KLQ0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDgvSG9uLWNoaWVuLXRyZW4tZHVvbmct cGhvLVNhaS1Hb24tMi1uZ3VvaS1iaS1kYW0tY2hldC05MjczMTUvIFF1b2MgUXVhbmcgMjI6Mzks IDA2LzA4LzIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006IEhvbiBjaGllbiB0cmVuIGR1b25nIHBobyBT YWkgR29uLCAyIG5ndW9pIGJpIGRhbSBjaGV0DQoNCktob2FuZyAxOWgxNScgbmdheSA2LzgvMjAx MCwgbW90IHZ1IGFuIG1hbmcgZGFjIGJpZXQgbmdoaWVtIHRyb25nIHhheSByYSBuZ2F5IHRydW9j IA0KdG9hIG5oYSBzbyAyNDggZHVvbmcgQ29uZyBRdXluaCwgcGh1b25nIFBoYW0gTmd1IExhbywg cXVhbiAxLg0KDQozIHRoYW5oIG5pZW4gZGkgdHJlbiBoYWkgeGUgU0ggYmkgZGFtIGd1YyB0YWkg Y2hvLiAyIHRyb25nIHNvIG5heSBkYSBjaGV0LCBuZ3VvaSBjb24gbGFpIGN1bmcgdHJvbmcgdGlu aCB0cmFuZyBuZ3V5IGtpY2ggDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi92bi94YS1ob2kv NzUxNy92YS1jaGFtLWdpYW8tdGhvbmctLWRhbS1jaGV0LW5ndW9pLWdpdWEtcGhvLmh0bWwgUXVv YyBRdWFuZyAyNi8wMS8yMDExIDA5OjA3OjUxIEFNIChHTVQrNykgDQoNClRQIEhDTTogVmEgY2hh bSBnaWFvIHRob25nLCBkYW0gY2hldCBuZ3VvaSBnaXVhIHBobyANCg0KliBTYXUgdnUgdmEgcXVl dCB0cmVuIGR1b25nLCBtb3QgbmhvbSB0aGFuaCBuaWVuIGRhIGRhbSBjaGV0IGRvaSB0aHUgdmEg Y3VvcCB4ZSB0YXUgdGhvYXQuDQoNCk5nYXkgMjUvMSwgbmd1b24gdGluIHR1IENvIHF1YW4gY2Fu aCBzYXQgZGlldSB0cmEgQ29uZyBhbiBxdWFuIEdvIFZhcCwgVFAuSENNIGNobyANCmhheSwgZGFu ZyB0cnV5IHhldCB2dSBnaWV0IG5ndW9pLCBjdW9wIHRhaSBzYW4gZGFjIGJpZXQgbmdoaWVtIHRy b25nIHhheSByYSB0cmVuIGR1b25nIA0KUGhhbiBWYW4gVHJpLg0KDQpUaGVvIHRob25nIHRpbiBi YW4gZGF1LCBraG9hbmcgMDBoMzAnIG5nYXkgMjQvMSwgdGFpIHRydW9jIG5oYSBzbyA0MjFBLCBQ aGFuIFZhbiBUcmksIA0KcGh1b25nIDEsIHF1YW4gR28gVmFwIChUUC5IbyBDaGkgTWluaCksIGFu aCBIdXluaCBUYW4gUGhhdCBzaW5oIHZpZW4gdHJ1b25nIERhaSANCmhvYyBDb25nIG5naGllcCA0 IHZhIFBodW5nIFF1b2MgUGh1b25nLCAyMiB0dW9pLCB0cnUgcXVhbiBHbyBWYXAsIGJpIDMgdGhh bmggbmllbiANCihjaHVhIHJvIGxhaSBsaWNoKSBkYW5oIHZhIGRhbSBQaGF0IHRyb25nIHRodW9u Zy4gRHUgZGEgZHVvYyBuZ3VvaSBkYW4gZHVhIGRpIGNhcCBjdXUgDQpuaHVuZyBQaGF0IGRhIGNo ZXQgdGFpIGJlbmggdmllbi4gDQoNClF1YSBkaWV1IHRyYSwgY29uZyBhbiBxdWFuIEdvIFZhcCB4 YWMgZGluaCB0cnVvYyBraGkgeGF5IHJhIHZ1IGFuIG1hbmcgUGh1b25nIHZhIFBoYXQgDQpkYSBu aGF1IGNodW5nLiBTYXUgZG8sIGNhIDIgY2hheSB4ZSBOb3V2byBiaWVuIHNvOiA1MUgzIC0gMzM0 NSBkZW4gZGllbSB0cmVuIHRoaSB4YXkgcmEgDQp2YSBxdWV0IHZvaSB4ZSBiaWVuIHNvIDUzU0Eg LSA2OTU0IGRvIDMgdGhhbmggbmllbiBkaWV1IGtoaWVuLiANCg0KUGhhdCB2YSBQaHVvbmcgYmkg MyB0aGFuaCBuaWVuIHRyZW4geG9uZyB2YW8gZGFuaCB0dWkgYnVpIG5lbiBibyBjaGF5IGRlIGxh aSB4ZS4gU2F1IGRvIA0KUGhhdCwgUGh1b25nIGdvaSB0aGVtIDIgbmd1b2kgYmFuIHF1YXkgbGFp IG5vaSB2YSBxdWV0IGRlIGFuIHRodWEgZHUgdm9pIDMgdGhhbmggbmllbiANCmtpYS4gVHJvbmcg bHVjIGhvbiBjaGllbiwgUGhhdCBiaSBtb3Qgbmd1b2kgdHJvbmcgbmhvbSBkb2kgcGh1b25nIHJ1 dCBkYW8gZGFtIGd1YyB4dW9uZy4NCg0KU2F1IGtoaSBnYXkgYW4sIDMgdGhhbmggbmllbiB0cmVu IGRhIGxheSB4ZSBOb3V2byBjdWEgUGhhdCBibyBjaGF5IHZhIGJvIGxhaSB4ZSBiaWVuIHNvIA0K NTNTQSAtIDY5NTQuIEhpZW4gY28gcXVhbiBDU0RUIGRhIHRodSBnaXUgMSBjb24gZGFvIGJhbmcg c2F0LCAxIHRoYW5oIHRyZSBkYWkgMSwybS4gDQoNClF1YSB4YWMgbWluaCBkdW9jIGJpZXQgY2hp ZWMgeGUgTm92byBiaWVuIHNvIDUxSDMgLSAzMzQ1IGRhbmcgZHVvYyBDb25nIGFuIHBodW9uZyAN CjExLCBxdWFuIEJpbmggVGhhbmggZGFuZyB0YW0gZ2l1IGRvIGRvaSB0dW9uZyBibyBsYWkgbyBi YWkgcmFjLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvcGhhcGx1YXQvMjAxMDAzL051 LXNpbmgtZ2lldC1uZ3VvaS10cnVvYy1jb25nLXRydW9uZy04OTk2NzMvIDE1OjU2LCAgMTkvMDMv MjAxMCAoR01UKzcpDQoNClRQLkhDTTogTnUgc2luaCBnaWV0IG5ndW9pIHRydW9jIGNvbmcgdHJ1 b25nDQoNCmh0dHA6Ly90aW50dWMudGltbmhhbmguY29tL3BoYXBfbHVhdC8yMDA3MDUyOS8zNUE1 RkI2RC8gMjkvMDUvMjAwNyAxMDozNTo1OCANCg0KVFAgSENNOiBEYW4gZW0gTmFtIENhbSB0YWkg eHVhdCBnaWFuZyBobyANCg0KVHJvbmcgZHVvbmcgZGF5IGRhbmggYmFjIG51cCBkdW9pIGRhbmgg bmdoaWEgY2F1IGxhYyBibyBnaWFpIHRyaSBjbyB0aHVvbmcgdHJvbmcga2hhY2ggc2FuIGhhbmcg c2FvIHRhaSBUUCBIbyBDaGkgTWluaCB2YSB0aW5oIEJhIFJpYS1WdW5nIFRhdSBjbyBraG9uZyBp dCBuaHVuZyBkZSB0dSB0cnVvYyBkYXkgY3VhIGFuaCAiTmFtIi4gVGhhbSBjaGkgY28gbmd1b2kg dnVhIG1vaSBjaGkgdnVhIGR1b2MgYW4geGEgcmEgdHUuLi4gDQoNCmh0dHA6Ly92aWV0YmFvLnZu L0FuLW5pbmgtUGhhcC1sdWF0L05oaWV1LW5ob20tZ2lhbmctaG8taG9hbmgtaGFuaC10YWktVFBI Q00vMzAwNTg5OTMvMjE4LyAgMDcvNi8gMjAwNSwgMTM6MTYgR01UKzcgDQoNClRQIEhDTTogTmhp ZXUgbmhvbSBnaWFuZyBobyBob2FuaCBoYW5oIA0KDQpodHRwOi8vd3d3Lml0YWV4cHJlc3MuY29t LnZuL3Rpbl9pdGEvZF9pX3NfbmcvcGhhcF9sdV90L3RwX2hjbV9tX3Rfdl9naV90X25nX2lfZGFf bWFuX2dpX2FfYmFuX25nYXkgQnVpIE5odW5nIDE5LzExLzIwMDcgNDo0NiBwbSANCg0KVFAuSENN OiBHaWV0IG5ndW9pIGRhIG1hbiBnaXVhIGJhbiBuZ2F5ICh0YWkgcXVhbiBUYW4gQmluaCkgDQoN CkNoaWV1IDE3LzExLCBuaGFuIHZpZW4gc2hvcCBxdWFuIGFvIEJsdWUtRXhjaGFuZ2UgdGFpIHNv IDQxMiBUcnVvbmcgQ2hpbmggKHBodW9uZyANCjEzLCBxdWFuIFRhbiBCaW5oLCBUUC5IQ00pIHBo YXQgaGllbiBjaGkgTmd1eWVuIEhvYW5nIEFuaCBUaHUgKG5oYW4gdmllbiBjdWEgDQpoYW5nLCAx OSB0dW9pLCBxdWUgQW4gR2lhbmcpIG5hbSBjaGV0IHRyZW4gdnVuZyBtYXUgbmdheSB0cm9uZyBj dWEgaGFuZy4gS2UgdGh1IGFjIGRhIA0KZHVuZyBkYW8gZGFtIG5oaWV1IG5oYXQgdmFvIGJ1bmcg dmEgY28gbmFuIG5oYW4ga2hpZW4gbmFuIG5oYW4gdHUgdm9uZyB0YWkgY2hvLiANCg0KaHR0cDov L3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvRGllbi1iaWVuLXZ1LWFuLVBoYW4tTGUtU29u LXZhLXN1LWNhbi10aGllcC1jdWEtTmFtLUNhbS8xMDc4Nzk2My8yMTgvIDE5LTktMjAwMiAxNjow NyBHTVQrNyAoVGhlbyBUaWVuIFBob25nKQ0KDQpUUCBIQ006IERpZW4gYmllbiB2dSBhbiBQaGFu IExlIFNvbiB2YSBzdSBjYW4gdGhpZXAgY3VhIE5hbSBDYW0NCg0KS2V0IHF1YSBkaWV1IHRyYSB2 dSBhbiBtYW5nIHBodWMgdGFwIG5heSBjaG8gdGhheSBodW5nIHRodSBjaGluaCBsYSBOZ3V5ZW4g SHV1IFRoaW5oLCBUaG8gImRhaSB1eSIgKGJvIFRoaW5oKSB2YSANCk1pbmggYnUgKGNob25nIG51 IHF1YWkgSGEgdHJlKS4gIk9uZyB0cnVtIiBkYSB0b24gZ2FuIDEwMC4wMDAgVVNEIGRlIGNhbiB0 aGllcCwgInBob2kgaG9wIiB2b2kgY2FuIGJvIGRpZXUgdHJhIFRQIEhDTSANCmJ1b2MgQmF5IFZp ZXQgbmhhbiB0b2kgdGhheSBkb25nIGJvbi4NCg0KRGVtIDI2LTEtMjAwMCwgY2FuaCBzYXQgUGhh biBMZSBTb24gY3VuZyBIbyBQaHVvYyBIdW5nIHZhIDcgbmd1b2kgYmFuIGtoYWMgZGVuIHF1YW4g Q2FtIENoaSwgZHVvbmcgSGFpIFRyaWV1LCBxdWFuIDEsIFRQIEhDTSANCmFuIHRvaS4gRGFuZyB2 dWkgdmUsIG1vdCBjaGllYyBTcGFjeSBsYW8gdG9pIHJvaSBkZW4gdmFvIG1hdCBTb24ga2hpZXUg a2hpY2guIFNvbiBwaGFuIHVuZzogIlNhbyBiYXQgbGljaCBzdSBxdWEgdmF5PyIuIA0KSGFpIHRo YW5oIG5pZW4gZGkgdHJlbiB4ZSB4b25nIHRvaSBhdSBkYS4gSGFpIHRlbiBiaSBkYW5oIGRhdSBi byBkaSwgZGUgbGFpIGxvaSBoYW0gZG9hOiAiTWF5IGNvIGdpb2kgdGhpIG5nb2kgZGF5LCANCmJv biB0YW8gdHJvIGxhaSBiYXkgZ2lvIi4gTmFuZywgZW0gcnVvdCBEdW5nICJjaHVhIiwgc2F0IHRo dSBjbyB0aWVuZyBvIFNhaSBHb24sIGNhbmggYmFvIGNobyBuaG9tIFNvbjogIk9uZyBjb2kgY2h1 bmcuIA0KVGhhbmcgdnVhIG5vaSBsYSBjaGF1IE5hbSBDYW0gZGF5Ii4gVHUgYWksIFBoYW4gTGUg U29uIGN1bmcgNCBuZ3VvaSBiYW4gbyBsYWkuDQoNCk5ndXllbiBIdXUgVGhpbmggbGEgbW90IHRy b25nIGhhaSB0ZW4gZGkgeGUgU3BhY3ksIGdvaSBkaWVuIGNobyBCdWkgQW5oIFZpZXQgKEJheSBW aWV0KSwgcGh1IHRyYWNoIGJhaSBnaXUgeGUgDQpuaGEgaGFuZyBSYSBLaG9pLCB0aG9uZyBiYW8g dmllYyBtaW5oIGJpIGRhbmguIFRobyAiZGFpIHV5IiAoY2hhdSBnb2kgTmFtIENhbSBiYW5nIGNh dSBydW90LCBibyBjdWEgVGhpbmgpIA0KbmdvaSBjYW5oIG5naGUgdGluIGNvbiBiaSBkYW5oIGxp ZW4gdGhheSBub25nIG1hdC4gTWluaCAiYnUiIChjaG9uZyBjdWEgbnUgdHVvbmcgSGEgdHJlKSBj byBtYXQgdGFpIGRvIA0Kbm9pIG1hdSBnaWFuZyBobywgaG8gaGFvIGRpIGhvaSB0b2kga2UgZGFt ICJwaGFtIHRodW9uZyIuIEJheSBWaWV0IHBob25nIHhlIGRpIHRydW9jLCB0aW0ga2hvbmcgdGhh eSBUaGluaCANCm5lbiBibyB2ZSBiYXIgSG9hbmcgSG9uIGN1YSBLaW0gQW5oLg0KDQpUaG8gImRh aSB1eSIgY3VuZyBkYW4gZW0gdG9pIHF1YW4gQ2FtIENoaSBnYXAgZHVvYyBUaGluaCwgaG9pOiAi VGhhbmcgbmFvIGRhbmggbWF5PyIgVGhpbmggdnVhIGNoaSwgdnVhIHJ1dCANCmRhbyBUaGFpIExh biBsb2FpIHRvIGJhbiBkYW0gbW90IG5oYXQgdmFvIGJ1bmcgZHVvaSBIbyBQaHVvYyBIdW5nLiBC aSBkYW0gY3UgY2hpIHR1LCBIdW5nIGNoaSBjaGF5IGR1b2MgdmFpIA0KYnVvYyByYSBuZ29haSBy b2kgZG8gZ3VjIHh1b25nIGdvYyBjYXkgdHJ1b2MgY3VhIHF1YW4uIFRyb25nIGx1YyBkbywgUGhh biBMZSBTb24gcmEgc3VjIGNob25nIGN1IGNhYyBjdSBwaGFuZyANCmdoZSB2YSB2byBjaGFpIGN1 YSBib24gZGFuIGVtIFRobyAiZGFpIHV5Ii4gVGhpbmggbGFvIHRvaSwgZGFtIFNvbiBtb3Qgbmhh dC4NCg0KVHUgYmFyIEhvYW5nIEhvbiwgQmF5IFZpZXQgbmdoZSB0aW4gYmFvLCBxdWF5IHRybyBs YWkgY3VuZyBIYWkgTG9pLiBNYXQgbmhhbSBtYXQgbW8sIEhhaSBMb2kgcnV0IGRhbyBiYW0gZGFt IA0KbW90IG5oYXQgdmFvIGx1bmcgVGhvICJkYWkgdXkiLiBWYW4gQ29uZyBUaWVuLCBiYW4gY3Vh IFRoaW5oLCB0aGF5IHZheSBkaWVuIHRpZXQgZHVvaSBkYW5oIEhhaSBMb2kuIEJheSBWaWV0IA0K dm9pIGtlbyB0ZW4gbmF5IGxlbiB4ZSBibyBjaGF5LiBUcm9uZyBsdWMgcm9pIGxvYW4sIFBoYW4g TGUgU29uIHRpbSBjYWNoIHRob2F0IHRoYW4sIG5odW5nIHZhcCBnaGUgYmkgbmdhLiANCk1pbmgg ImJ1IiB2dW5nIGRhbyBjaGVtIHRvaSB0YXAgdmFvIG5ndW9pIFNvbi4gVGhpbmggY3VuZyBkdW5n IGRhbyBkYW0gbW90IG5oYXQgdmFvIGJ1bmcgdHJhaSBhbmguDQoNCk5nYXkgc2F1IGtoaSBnYXkg YW4sIE5nb2MgImNvbSBuaWV1IiAoZW0ga2V0IG5naGlhIGN1YSBOYW0gQ2FtKSBjdW5nIGRvbmcg Ym9uIGR1YSBUaG8gY2FwIGN1dS4gVGFpIGJlbmggdmllbiwgDQpjYSBib24gbmdoZSB0aW4gY2Eg UGhhbiBMZSBTb24gdmEgSG8gUGh1b2MgSHVuZyBkYSBjaGV0LiBDaHVuZyB2b2kgYm8gdHJvbi4N Cg0KRGVtIHZ1IGFuIHhheSByYSwgTmFtIENhbSBkYW5nICJ2dWkgdmUiIHZvaSBtb3QgdGhpZXUg bnUgdHUgeHVuZyBsYSBob2MgdmllbiB0cnVvbmcgbXVhLCBvIEhhIE5vaS4gUGhhaSA5aCBzYW5n IGhvbSBzYXUsIA0KeSBtb2kgbmhhbiBkdW9jIGxvaSBuaGFuIGN1YSBIaWVwICJwaG8gbWEiOiAi QmEgdmUgbmdheSwgbyBuaGEgY28gY2h1eWVuIGdhcCIuIE5oYW4gdGluIFRobyAiZGFpIHV5IiBi aSBkYW0gZGFuZyBuYW0gDQpiZW5oIHZpZW4sIGNvbiBUaGluaCBiaSBjb25nIGFuIHRpbSBraWVt LCBOYW0gQ2FtIHZvaSBiYXkgdmFvLiBZIGxhcCB0dWMgbGVuIGtlIGhvYWNoIGNoYXkgdG9pIGNo byBkb25nIGJvbiwgdHJ1b2MgaGV0IA0KbGEgImxvYW4gdGluIHZpYSBoZSIgcmFuZyBjb25nIGFu IGRhbmcgdHJ1eSBiYXQgQmF5IFZpZXQuIEJheSBWaWV0IGhvYW5nIG1hbmcgYmVuIHRpbSBkZW4g S2ltIEFuaCBkZSBwaGFuIHRyYW4gdmEgbmhvIA0KbGFtIGNodW5nIHJhbmcgbWluaCBsYSBrZSBk ZW4gc2F1IGtoaSBhbiBtYW5nIHhheSByYS4NCg0KSGllcCAicGhvIG1hIiBkZW4gdGltLCBkdWEg QmF5IFZpZXQgMTAwIFVTRCAoY3VhIFBoYW4gVGhpIFRydWMsIHZvIE5hbSBDYW0pIHZhIHRodXll dCBwaHVjIHRlbiBuYXkgdHJvbi4gSGllcCBjdW5nIGJhbyANCnZvaSBUaG8gY2hpIDIwLjAwMCBV U0QgY2hvIEJheSBWaWV0LiBUaG8gImRhaSB1eSIgY2hhcCBuaGFuIGNoaSB0aWVuIGRlIGRvIHRv aSBjaG8ga2UgYm8gdHJvbiwgbmh1bmcgSGllcCBjaGkgZHVhIGNobyANCkJheSBWaWV0IDEuMDAw IFVTRCwgY29uIGxhaSBkZSB0cmEgbm8gcmllbmcgdHJvbmcgdmllYyBtdWEgeGUgb3RvIGxhdS4g QmF5IFZpZXQgc2F1IGRvIGR1b2MgZHVhIHNhbmcgVGhhaSBMYW4sIG5odW5nIGJpIA0KYmllbiBw aG9uZyBudW9jIG5heSBjaGFuIGxhaSwgdHJ1YyB4dWF0IHZlIFBobm9tIFBlbmguIE1pbmggImJ1 IiBjdW5nIGR1b2MgZHVhIHRoZW8gY29uIGR1b25nIG5heS4NCg0KU2F1IGtoaSBOYW0gQ2FtIGRl biB0cmFvIGRvaSwgY2FjIGNoaWVuIGh1dSBjdWEgeSB0YWkgQ29uZyBhbiBUUCBIQ00gY2hvIHJh bmcgY2FuICJkYW8gZGllbiIgbGFpIHZ1IGdpZXQgbmd1b2kgY2hvIA0KdG9hbiB2ZW4gaG9uLiBN dWMgZGljaCBsYSBUaG8gImRhaSB1eSIgdGhvYXQgbmFuLCBjb24gcGhpYSBjb25nIGFuIGN1bmcg Y28gdGhhbmggdGljaC4gSG8geWV1IGNhdSBOYW0gQ2FtIGR1YSBCYXkgVmlldCANCnZlIGdhbmgg dG9pLiBUcnVvYyBkbywgIm9uZyB0cnVtIiBkYSBkaW5oIHRodSB0aWV1IEJheSBWaWV0IHRyZW4g ZGF0IGtoYWNoLCBuaHVuZyBrZSBob2FjaCB0aGF5IGRvaSwgbmVuIGxhaSBkbyBuZ290IGNobyB0 ZW4gbmF5IHRybyB2ZSBkYXUgdGh1Lg0KDQpUaGlldSB0YSBEYW5nIEhhaSBUdW9uZywgbHVjIGRv IGxhIGRpZXUgdHJhIHZpZW4gRG9pIFRyb25nIGFuLCB0aHVvYyBQaG9uZyBDYW5oIHNhdCBkaWV1 IHRyYSB0aGFuaCBwaG8gKGR1b2kgcXV5ZW4gDQpOZ3V5ZW4gTWFuaCBUcnVuZyksIGR1b2MgZ2lh byB0aHUgbHkgdnUgbmF5LiBCYW4gZGF1LCBvbmcgVHVvbmcgZGkgZHVuZyBodW9uZywgeGFjIGRp bmggZHVvYyBrZSB0aHUgYWMgY3VuZyBuaHVuZyANCmRvaSB0dW9uZyBsaWVuIHF1YW4uIE5odW5n IGJhdCBuZ28sIE5ndXllbiBNYW5oIFRydW5nIG5odW5nIHRheSB2YW8gdmllYyBkaWV1IHRyYS4g TmdheSBzYXUgZG8sIHRoYWkgZG8gVHVvbmcgdGhheSBkb2kuIA0KT25nIHRhIGRhbiBtYXQgQmF5 IFZpZXQ6ICJNYXkgaGV0IHRob2kgcm9pIG1vaSBkaSBraGFpIGNobyBjb24gY2hhdSBOYW0gQ2Ft LiBCaWV0IE5hbSBDYW0gbGEgYWkga2hvbmciLiBPYW4gdWMsIA0KQmF5IFZpZXQgbW90IG11YyBn aXUgbG9pIGtoYWkgYmFuIGRhdSB0aGVvIHN1IHRoYXQgdnUgYW4uIFRyb25nIGx1YyBkbywgTmFt IENhbSBjdW5nICJtYXQgYmFvIiBoYW5oIHR1bmcgY3VhIE1pbmggImJ1IiANCmRlIER1b25nIE1p bmggTmdvYyBkaWV1IHF1YW4gZGkgYmF0Lg0KDQpCYW5nIGNhYyB0aHUgdGh1YXQgbmdoaWVwIHZ1 LCBjYWMgY2FuIGJvIGRpZXUgdHJhIHZ1IGFuIG5heSBkYSBsYXAgZHVvYyBiYW4ga2V0IGx1YW4g ZGlldSB0cmEgdGhlbyBkdW5nIGtpY2ggYmFuIGN1YSANCk5ndXllbiBNYW5oIFRydW5nLiBTYXUg ZG8gVktTTkQgVFAgSENNIGNoYXAgbmhhbiwgcmEgY2FvIHRyYW5nIGJpZW4gQmF5IFZpZXQgdGhh bmggaHVuZyB0aHUgY2hpbmggdHJvbmcgdnUgc2F0IGhhaSANClBoYW4gTGUgU29uLiBOZ29haSBy YSwgTmFtIENhbSBjb24gZ2F5IGFwIGx1YywgYnVvYyBIb2FuZyAiY2FuZyBjYXkiIHRodXlldCBw aHVjIGNvbiBtaW5oIGxhIEhhaSBMb2kgbmhhbiB0b2kgZGFtIA0KSG8gUGh1b2MgSHVuZy4NCg0K S2V0IHRodWMgdnUgbmF5LCBOYW0gQ2FtIGR1b2MgY29pIGxhIGtlIGNvIGNvbmcgdmkgImtodXll biBiYW8gZHVvYyBjYWMgaHVuZyB0aHUgcmEgZGF1IHRodSIuIEhhbiBkdW9jIGRhaSB0YSANClZv IFZhbiBNYW5nLCBsdWMgZG8gbGEgcGhvIGdpYW0gZG9jIENvbmcgYW4gdGhhbmggcGhvLCBraWVt IHRodSB0cnVvbmcgQ28gcXVhbiBDYW5oIHNhdCBkaWV1IHRyYSBnb2kgbGVuIGRlIA0KInRoYW0g Z2lhIHBoYSBhbiIuICJPbmcgdHJ1bSIgY2hvIGJpZXQsIHRyb25nIHZ1IG5heSwgeSB0b24gbWF0 IGdhbiAxMDAuMDAwIFVTRC4gVm9pIER1b25nIE1pbmggTmdvYywgdm9uIGxhIA0KY2hpZW4gaHV1 IHR1IGxhdSwgdGllbiBiYWMgc2Uga2hvbmcgZGFuZyBrZS4gQ29uIE5ndXllbiBNYW5oIFRydW5n IHRoaSBkYSBiaSBLaW0gQW5oIHRyb2kgY2hhdCB0cm9uZyBjYWMgY3VvYyANCmNob2kgdGluaCBh aS4gVG9uIGtlbSBuaGF0IGNvIGxlIGxhIGNhYyBxdWFuIGNodWMgY2FwIHRyZW4gY3VhIFRydW5n IHZhIE5nb2MsIG5odSBvbmcgVm8gVmFuIE1hbmcsIG5ndW9pIHR1bmcgDQpsYW0gdHJ1b25nIENv bmcgYW4gcXVhbiA0LCBub2kgY2FjIHNvbmcgYmFjIGN1YSBOYW0gQ2FtIGhvYW5oIGhhbmguIA0K DQpodHRwOi8vd3d3LmNhbmQuY29tLnZuL3ZpLVZOL3Bob25nc3UvMjAxMC84LzEzNDk4MC5jYW5k IE5ob20gUFYgMTE6NTQ6MDAgMDYvMDgvMjAxMCANCg0KTmh1bmcgc3UgdGhhdCB2ZSB0cnVtIGdp YW5nIGhvIEhhaSAiQmFuaCI6IA0KDQpNb2kgbHVvbmcgZHV5ZW4gSGFpICJCYW5oIi1OYW0gQ2Ft LUR1bmcgIkhhIg0KDQpOYW0gQ2FtIHh1b25nIEhhaSBQaG9uZyBkZSBnYXAgRHVuZyAiSGEiLiBE dW5nICJIYSIgY2hvIEt5ICJob2FjIiBtb3QgZGFuIGVtIA0KdGluIGNhbiBtYW5nIHhlIE1hemRh IDkyOSBsZW4gSGEgTm9pIGRvbi4gTmFtIENhbSBkZSBwaG9uZyBEdW5nICJIYSIgY2hvaSB4YXUg DQpuZW4ga2hvbmcgZGkgdm9pIEt5ICJob2FjIiBtYSBuaGF5IHNhbmcgbmdvaSB4ZSBjdWEgSGFp ICJCYW5oIiB2YSBIYWkgImJ1aSIuIFhlIGNoYXkgDQp0aGFuZyB2ZSBzaWV1IHRoaSBjdWEgRHVu ZyAiSGEiIHRyZW4gZHVvbmcgRGllbiBCaWVuIFBodSwgSGFpIFBob25nLiBUYWkgZGF5LCBOYW0g DQpDYW0gdm8gaGEgZ2lvbmcgeGluIGxvaSBEdW5nICJIYSIgdmEgeGluIGR1b2MgcmEgbW8gdGhh cCBodW9uZyBjaG8gYm8gRHVuZyAiSGEiLiANCg0KU2F1IHZ1IEtoYW5oICJUcmFuZyIgeG8ga2hh bSBvIEhhIE5vaSwgdGluaCBoaW5oIGFuIG5pbmggdHJhdCB0dSB0YW0geWVuIG9uIHRyb25nIG1v dCANCnRob2kgZ2lhbiBuZ2FuLiBLaGkgY28gY2hlIHRoaSB0cnVvbmcgYmF0IGRhdSBwaGF0IHRy aWVuLCBjYWMgZGljaCB2dSB0aHVvbmcgbWFpIGJ1b24gYmFuIA0KZ2l1YSBjYWMgdGluaCB0aGFu aCBwaG8gdmEgZHVvbmcgYmllbiAgZ2lvaSBnaXVhIFZpZXQgTmFtIHZvaSBjYWMgbnVvYyBsYW5n IGdpZW5nIG1vIA0KY3VhLCBjYWMgZGljaCB2dSB2dWkgY2hvaSBnaWFpIHRyaSBjYW8gY2FwIGN1 bmcgZHVhIG5oYXUgcGhhdCB0cmllbiB0aGkgY2FjIGJhbmcgbmhvbSB0b2kgDQpwaGFtIGhvYXQg ZG9uZyB0aGVvIGtpZXUgInhhIGhvaSBkZW4iIGN1bmcgYmF0IGRhdSBsZW4gdGhlbyB2YSB0aG9j IGJhbiB0YXkgbmhhcCBuaHVhIA0KY3VhIGNodW5nIHZhbyB0YXQgY2Egbmh1bmcgbGluaCB2dWMg ZGUga2llbSB0aWVuLg0KDQpDdW5nIHBoYWkgdGh1YSBuaGFuIHJhbmc6IGNvIG1vdCB0aG9pIGRp ZW0sIGNodW5nIHRhIGNodWEgbWFuaCB0YXkgdHJhbiBhcCBsb2FpIHRvaSANCnBoYW0gbmF5LCBu ZW4gbm8gY28gZGlldSBraWVuIHBoYXQgdHJpZW4ga2hhIHBodWMgdGFwLCBiYW4gY2hhdCByYXQg eGFvIHF1eWV0IHZhIGRhYyBiaWV0IA0KbGEgcmF0IG1hbmggZG9uZyB2YSB0YW4gYmFvIGN1YSBi b24gZ2lhbmcgaG8gY28gc28gbWEgY28gZGF0IGRlIHBoYXQgdHJpZW4uIE5odW5nIHRlbiANCnR1 b2kgZGFuIGFuaCwgZGFuIGNoaSBnYW4gbGllbiB2b2kgbmh1bmcgYmFuZyBuaG9tIHRvaSBwaGFt IG5odSBTb24gIkJhY2ggdGFuZyIsIA0KVGhhbmcgIlRhaSBEYXUiLCBIYWkgIkJhbmgiLCBEdW5n ICJIYSIsIE1pbmggIlN1dCIsIE5hbSBDYW0sIEhhbmggU3UuLi4gQ2FjIGRpY2ggDQp2dSBiYW8g a2UgYmVuIGJhaSwgc29uZyBiYWMsIG5oYSBoYW5nLCBraGFjaCBzYW4sIHZ1IHRydW9uZywgYnVv biBiYW4gbWEgdHV5IGRlbiBjYWMgDQpkaWNoIHZ1IGRvaSBubywgZGFtIHRodWUgY2hlbSBtdW9u LCBob2F0IGRvbmcgdHJhbmcgdHJvbiwgbmh1bmcgdnUgdGhhbmggdG9hbiBuaGF1IA0KZGFtIG1h dSBnaXVhIGNhYyBiYW5nIGRhbmcgZ2lhbmcgaG8gZGUgdHJhbmggZ2lhbmggbGFuaCBkaWEsIHRy YW5oIGdpYW5oICJxdXllbiBsdWMgDQpkZW4iIGxpZW4gdHVjIHhheSByYSBvIG5oaWV1IGRpYSBw aHVvbmcgZGV1IGRvIGNhYyBiYW5nIGRhbmcgbmF5IGdheSByYS4NCg0KRGFjIGJpZXQgbyBUUCBI Q00sIHRoYW5nIDEwLzE5OTcsIHNhdSBtb3QgdGhvaSBnaWFuIHRhcCB0cnVuZyBjYWkgdGFvIGR1 b2MgdGhhIHZlLCANClRydW9uZyBWYW4gQ2FtIChOYW0gQ2FtKSB2b2kgdGhhbSB2b25nIHRybyB0 aGFuaCB0aG9uZyBsaW5oIGNhYyBiYW5nIG5ob20gdG9pIA0KcGhhbSwgaGFuIGRhIHhhbyBxdXll dCBkZSByYSBzYWNoIGx1b2MgIlRpZW4gLSBDaGluaCBxdXllbiAtIHRoZSBsdWMgZGVuIiBuaGFt IHBodWMgdnUgDQphbSBtdXUgZGVuIHRvaSBjdWEgaGFuLiBIYW4gZGEgY2hvIHBodWMgaG9pLCBz YXAgeGVwIGxhaSB0byBjaHVjLCBwaGFuIGNoaWEgZGlhIGJhbiBkZSANCmhpbmggdGhhbmggY2Fj IHNvbmcgYmFjIHZvaSBxdXkgbW8gbG9uLiBTYXUgZG8gZHVuZyBuaHVuZyBkb25nIHRpZW4gYmF0 IGNoaW5oIHR1IGNhYyANCnNvbmcgYmFjIGRlIGRhdSB0dSBraW5oIGRvYW5oIG5oYSBoYW5nLCB2 dSB0cnVvbmcgZGUgdnVhIHJ1YSB0aWVuLCB2dWEgbmd1eSB0YW8gbGEgbGFtIA0KYW4gbHVvbmcg dGhpZW4sIGNoZSBkYXkgY2FjIGhvYXQgZG9uZyB0b2kgcGhhbSBjdWEgY2h1bmcuDQoNCk5oYW0g aGllbSBob24sIE5hbSBDYW0gY29uIHRvIGNodWMgdGhhIGhvYSwgbXVhIGNodW9jIG1vdCBzbyBj YW4gYm8gdHJvbmcgY2FjIGNvIA0KcXVhbiBwaG9uZyBjaG9uZyB0b2kgcGhhbSBvIFRQIEhDTSBk ZSBuaHVuZyBuZ3VvaSBuYXkgYmFvIGNoZSBjaG8gY2FjIGhvYXQgZG9uZyANCnBoYW0gdG9pIGN1 YSBjaHVuZy4gQ3VuZyB0aG9pIGRpZW0gbmF5LCB0YWkgSGEgTm9pIHZhIGNhYyB0aW5oIHBoaWEg QmFjLCBsdWMgbHVvbmcgDQpDb25nIGFuIHRodW9uZyB4dXllbiB0byBjaHVjIGNhYyBkb3QgdHJ1 eSBxdWV0IHRvaSBwaGFtIGhpbmggc3UuIERhbSBnaWFuZyBobyAidHJhIA0KQmFjIiBjb20gY2Fu IG5odSBDdW9uZyAiaGlwIiwgVGhhbmggImNoYW4iLCBUaGFuZyAiY2hhcCI7IEhhaSAiQmFuaCIs IER1bmcgImR1aSIsIA0KRHVuZyAiQmFjIGNhbiIsIE5nb2MgImRvaSIuLi4gTW9pIHRheSBnaWFu ZyBobyBjb20gY2FuIG5heSBrZW8gdGhlbyBoYW5nIGNodWMgZGFuIGVtIA0KbWF1IGxhbmggbnVh IGNoYXkgdmFvIFRQIEhDTSB0aW0gZGF0IG51b25nIHRoYW4uDQoNCk5oaWV1IHRlbiBnaWFuZyBo byAidHJhIEJhYyIgY3VuZyBiYW5nIG5oaWV1IGNhY2ggZGUgdGllcCBjYW4gdm9pIHRydW0gZ2lh bmcgaG8gTmFtIA0KQ2FtIG5oYW0gdGltIGNobyBtaW5oIHZhIGRhbSBkYW4gZW0gbW90IGNobyBk dWEuIENoaW5oIHZpZWMgZG8gZGEgaGluaCB0aGFuaCB0cm9uZyANCmRhdSBOYW0gQ2FtIGFvIHZv bmcgdGhvbiB0aW5oIHRvYW4gIGJvIGdpb2kgZ2lhbmcgaG8gY2EgbnVvYyB2ZSBtb3QgbW9pIHZh IGhhbiANCm5naGllbSBuaGllbiB0cm8gdGhhbmggIm9uZyB0cnVtIi4NCg0KTGFpIG5vaSB2ZSB0 aG9pIGdpYW4gTmFtIENhbSBiaSBjYWkgdGFvIG8gbWllbiBCYWMsIGJhbmcgbmh1bmcgbW9pIHF1 YW4gaGUgY3VhIGRhbSANCmdpYW5nIGhvICJ0cmEgQmFjIiwgSGllcCAicGhvIG1hIiwgY29uIHJl IE5hbSBDYW0gZGEgdGllcCBjYW4gZHVvYyB2b2kgVGhhbmcgIlRhaSANCkRhdSIgdmEgVGh1eWV0 ICJidW9uIHZ1YSIgY3VuZyBtb3Qgc28gcXVhbiBjaHVjIGtoYWMgZGUgY3V1IE5hbSBDYW0gcmEg a2hvaSB0cmFpIA0Kc29tLg0KDQpTYXUgbmh1bmcgcGhpIHZ1IFRoYW5nICJUYWkgRGF1IiBoZXQg bWluaCBjdW5nIFRodXlldCAiYnVvbiB2dWEiIGN1dSByYSBraG9pIHRyYWksIA0KTmFtIENhbSB2 YSBUaGFuZyAiVGFpIERhdSIgdG8gcmEga2hhbmcga2hpdCBob24uIFRob25nIHF1YSBUaGFuZyAi VGFpIERhdSIsIE5hbSANCkNhbSBiaWV0IHRpZW5nIHZhIGJhdCBxdWVuIHZvaSAgRHVuZyAiSGEi LiBPIEhhaSBQaG9uZyBuaHVuZyBEdW5nICJIYSIgbGEgbW90IHRydW0gDQpnaWFuZyBobyBjb20g Y2FuIG5oYXQgdmEgbHVvbiBjbyBzdSB0aGFjaCB0aHVjIHZvaSBOYW0gQ2FtIHRhbiB0cm9uZyBU UCBIQ00uIFR1eSANCm5oaWVuLCBsdWMgbmF5IER1bmcgIkhhIiBkYW5nIGNhbiBoaW5oIGJvbmcg Y3VhIE5hbSBDYW0gZGUgZGFuaCBib25nIGNobyB0ZW4gdHVvaSANCmN1YSBtaW5oIHRyb25nIGdp b2kgZ2lhbmcgaG8uIFZpIHRoZSBraGkgYmEgWGFtLCBjaGkgcnVvdCBOYW0gQ2FtIGNoZXQsIER1 bmcgIkhhIiANCmxpZW4gZGlldSBnYW4gMjAgdGVuIGRhbiBlbSBjbyBzbyBtYSwgYmF5IHR1IEhh aSBQaG9uZyB2YW8gVFAgSENNIGRlIHZpZW5nIGRhbSB0YW5nIA0KYmEgWGFtLg0KDQpJdCBidWEg c2F1LCBibyBEdW5nICJIYSIgcXVhIGRvaSwgTmFtIENhbSB0byByYSBjb2kgdGh1b25nIHZhIGNo aSBuaG8gVGhhbmcgIlRhaSANCkRhdSIgY2hvIG1vdCBkZSB0dSB0dSBIYSBOb2kgdmFjIG1vdCB2 b25nIGhvYSB4dW9uZyBIYWkgUGhvbmcgdmllbmcuIFZ1IGNvaSB0aHVvbmcgDQpuYXkgZGEgbGFt IGNobyBEdW5nICJIYSIgZ2lhbiBzb2kgbWF1IHZhIG1hdCBtYXQgdm9pIGRhbSBkYW4gZW0uIFZ1 YSBsbyB4b25nIGRhbSANCnRhbmcgYm8gbWluaCwgRHVuZyAiSGEiIGRhIHNhaSBkYW0gZGFuIGVt IG8gVFAgSENNIGRlbiBjYWMgc29uZyBiYWMgY3VhIE5hbSBDYW0gDQpiYW8ga2UgcXVheSB0dW5n IGJ1bmcuIE5hbSBDYW0gaG9hbmcgc28gdHJ1b2Mgbmh1bmcgY2hpZXUgIHF1YXkgcm9pIGN1YSBE dW5nICJIYSIgDQpuaHVuZyBjdW5nIGNodWEgdGhlIHRpbSByYSBjYWNoIGdvLg0KDQpUaGFuZyAx MS8xOTk4LCB2dWEgbWFuIGhhbiB0dSwgSGFpICJCYW5oIiB0aWVwIHR1YyB0dSB0YXAgZGFuIGVt IHZhIHRvIGNodWMgYmFvIGtlIGNhYyAgDQpuaGEgaGFuZywgdnUgdHJ1b25nIG8gSGEgTm9pLCBu aHVuZyBkbyBDb25nIGFuIEhhIE5vaSB0cnV5IHF1ZXQgZ2F0IG5lbiBIYWkgIkJhbmgiIA0KdmEg ZGFtIGRhbiBlbSB0aWVwIHR1YyBsYW5oIG1hdCB2YW8gVFAgSENNLiBUaG9pIGdpYW4gbmF5IEhh aSAiQmFuaCIgcmF0ICJ2YSIsIGhhbiANCnRodW9uZyBraG9uZyBjbyB0aWVuIHRpZXUgeGFpIGNo dSBkdW5nIG5vaSBkZW4gY2h1eWVuIG51b2kgbW90IGRhbSBkYW4gZW0gZHUgdGh1IGR1IA0KdGh1 Yy4NCg0KRGFuZyB0cm9uZyBjb24gYmkgY3VjIHRoaSAgdGhhbmcgMTAgbmFtIGF5LCBEdW5nICJI YSIgbmdvIGxvaSB2b2kgTmFtIENhbSBkZSBIYWkgDQoiQmFuaCIgdmUgbGFtIGRhbiBlbSBjaG8g TmFtIENhbS4gTHVjIG5heSwgTmFtIENhbSB0aHVhIGJpZXQgc28gbWEgY3VhIEhhaSANCiJCYW5o IiB2YSBuaHVuZyB0YXkgZ2lhbmcgaG8gInRyYSBCYWMiIHRodW9uZyBkdSBtYXUgbGFuaCwgaGFu IHRoYW0gbmdoaSB0cm9uZyBidW5nLCANCnJvaSBjbyBuZ2F5IGN1bmcgY2FuIGRlbiBuaHVuZyB0 ZW4gIG5heSBkYXkuICBMdWMgbmF5IGR1b2kgdGF5IE5hbSBDYW0gY28gY2EgdHJhbSB0ZW4gDQpk YW4gZW0gdmFvIGRpZW4gY29tIGNhbiB0aHVvYyBkdSBsb2FpIHR1IGRhbSB0aHVlIGNoZW0gbXVv biBkZW4gYmFvIGtlIHNvbmcgYmFjLCBuaGEgDQpoYW5nLCB2dSB0cnVvbmcgbmVuIGJlIG5nb2Fp ICBOYW0gQ2FtIGtob25nIHRvIHJhIHZvbiB2YS4gVHV5IG5oaWVuIHRlbiB0cnVtIGdpYW5nIGhv IA0KdmFuIHRvIHJhIGJpZXQgZHVuZyBuZ3VvaSBuZW4gTmFtIENhbSB2YW4gY29pIEhhaSAiQmFu aCIgbmh1IGRhbiBlbSB2YSBuaG8gbmh1bmcgDQpraG9hbiB0aWVuIG5obywgZHUgZGUgSGFpICJC YW5oIiB0aWV1IHhhaSB2YSBsbyBjaG8gZGFtIGRhbiBlbS4gU2F1IG5heSwgbW9pIHF1YW4gaGUg DQpIYWkgIkJhbmgiIHZvaSBOYW0gQ2FtIG5nYXkgY2FuZyB0aGFuIHRoaWV0Lg0KDQpEYXUgbmFt IDE5OTksIGRlIHRyYSBvbiBUaGFuZyAiVGFpIERhdSIsIE5hbSBDYW0gZGEgbW9pIFRoYW5nICJU YWkgRGF1IiB2YW8gVFAgDQpIQ00gY2hvaS4gTmFtIENhbSBtbyB0aWVjIGtob2FuIGRhaSBUaGFu ZyAiVGFpIERhdSIgdHUgcnVvdSBuZ29uIGRlbiBnYWkgZGVwLiANCkN1bmcgdHJvbmcgbmh1bmcg bmdheSBvIFRQIEhDTSwgVGhhbmcgIlRhaSBEYXUiIHZhIE5hbSBDYW0gZGEgdGhvbmcgbmhhdCB2 b2kgDQpuaGF1IHZpZWMgbW8gcm9uZyBsaW5oIHZ1YyBjYSBkbyBib25nIGRhIHJhIGNhYyB0aW5o IHBoaWEgQmFjLCB0aWVuIHRvaSBob3AgbmhhdCBnaW9pIA0KZ2lhbmcgaG8gY2EgbnVvYy4NCg0K THVjIG5heSBuZ29haSBraWEgdGhhbmggdGhlIGN1YSBEdW5nICJIYSIgcmF0IG1hbmguIE5hbSBD YW0gdG9hbiB0aW5oIHBoYWkgdGltIG1vaSANCmNhY2ggZGUgZGFuIGhvYSB2b2kgRHVuZyAiSGEi IHRoaSB2aWVjIGxvbiBtb2kgdGhhbmguIFZpIHRoZSBtdWEgZG9uZyBuYW0gMTk5OSwgbmhhbiAN CmRhbSBjdW9pIGNvbiBnYWkgSG9pICJjb24iLCBjaGF1IFRoYW5nICJUYWkgRGF1IiwgSGFpICJC YW5oIiB2YSBjaHV5ZW4gZ2lhIGNvIGJhYyBUYSANCkRhYyBMdW5nIChMeSBkb2kpIGRhIHRoYXAg dHVuZyBkdWEgTmFtIENhbSBiYXkgcmEgSGEgTm9pLg0KDQpUYWkgZGF5LCBUaGFuZyAiVGFpIERh dSIgdG8gY2h1YyBtb3QgbHVjIGx1b25nIGh1bmcgaGF1IGRpIHRyZW4gMTAgeGUgb3RvIGNvbiBy YSB0YW4gDQpzYW4gYmF5IGRvbiBOYW0gQ2FtLiBUdSBzYW4gYmF5LCBkb2FuIHhlIGNoYXkgdGhh bmcgdmUgcGhvIEx1b25nIFN1IEEgZGUgTmFtIA0KQ2FtIGdoZSB0aGFtIHNvbmcgYmFjIGN1YSBU aGFuZyAiVGFpIERhdSIsIHNhdSBkbyBjYSBkb2FuIGtlbyBuaGF1IHZlIG5naGkgdGFpIGtoYWNo IA0Kc2FuIExhc3ZlZ2FzIGN1YSBMb25nICJ2YW5nIi4NCg0KRHVvYyBkaXAgdHJhIGxlLCBUaGFu ZyAiVGFpIERhdSIgdG8gY2h1YyBraG9hbiBkYWkgbGFpIE5hbSBDYW0uIFR1eSBuaGllbiBjaG8g ZGVuIGx1YyANCm5heSwgVGhhbmcgIlRhaSBEYXUiIHZhbiBjaGkgbGEgdGVuIHRyb2MgcGh1IG1v aSBwaGF0LiBDYWkgc3UgaHVvbmcgdGh1IGxvbiBuaGF0IGN1YSANClRoYW5nIGxhIGNodWkgdmFv IG1heSB0aWVtIGhvdCB0b2MgdGhhbmggbnUgY2hvIG1heSBlbS4uLiBnYWkgZGF1LiBWaSB0aGUg ZW0gdXQgbWEgDQpUaGFuZyBsbyBjaG8gTmFtIENhbSB0b2FuIGJpIE5hbSBDYW0gY2hlLi4uDQoN CkhhaSBuZ2F5IHNhdSwgTmFtIENhbSB4dW9uZyBIYWkgUGhvbmcgZGUgZ2FwIER1bmcgIkhhIi4g RHVuZyAiSGEiIGNobyBLeSAiaG9hYyIgDQptb3QgZGFuIGVtIHRpbiBjYW4gbWFuZyB4ZSBNYXpk YSA5MjkgbGVuIEhhIE5vaSBkb24uIE5hbSBDYW0gZGUgcGhvbmcgRHVuZyAiSGEiIA0KY2hvaSB4 YXUgbmVuIGtob25nIGRpIHZvaSBLeSAiaG9hYyIgbWEgbmhheSBzYW5nIG5nb2kgeGUgY3VhIEhh aSAiQmFuaCIgdmEgSGFpICJidWkiLiANClhlIGNoYXkgdGhhbmcgdmUgc2lldSB0aGkgY3VhIER1 bmcgIkhhIiB0cmVuIGR1b25nIERpZW4gQmllbiBQaHUsIEhhaSBQaG9uZy4gVGFpIGRheSwgDQpO YW0gQ2FtIHZvIGhhIGdpb25nIHhpbiBsb2kgRHVuZyAiSGEiIHZhIHhpbiBkdW9jIHJhIG1vIHRo YXAgaHVvbmcgY2hvIGJvIER1bmcgDQoiSGEiLg0KDQpPIG5naGlhIHRyYW5nIGdhbiBuZ29pIG1v IGJvIER1bmcgIkhhIiBsdWMgYXkgY28gbWF5IGNhaSBodXlldCBkYSBkdW9jIGRhbyBzYW4sIER1 bmcgDQoiSGEiIGtldSBIYWkgIkJhbmgiIHRvaSBub2kgZ286IFRyZW4gY29pIGRvaSBuYXkgbmd1 b2kgZ2lldCB0YW8gY2hpIGNvIG1heSEgTmV1IHRhbyBjaGV0IA0KZHVuZyBibyBjaGlldSBtYSBo YXkgaG9tIHZhbiBkYW5nIGhvYW5nIHZhIGR1YSB0YW8gdmUgbmFtIGNobyBjYWkgaHV5ZXQgbmF5 IG5oZS4NCg0KLSBFbSBkdW5nIG5vaSBnbyBuaHUgdmF5ISAtIE5hbSBDYW0gbmdoZSB0aGF5IGNo YW4gbGFpLg0KDQotIFRvaSBjaGV0IGNvbiBjbyBjaG8gY2hvbiwgY29uIGFuaCBjaGV0IGtob25n IGJpZXQgY2hvbiBvIGNobyBuYW8gZGF1PyAtIER1bmcgIkhhIiB0aHVhIGNvIGRvcCBsYWkuDQoN Cktob25nIG5nbywgY2F1IG5vaSBnbyBjdWEgRHVuZyAiSGEiIHNhdSBuYXkgbGFpIHRybyB0aGFu aCBzdSB0aGF0Lg0KDQpTYXUgZG8gY2EgaGFpIGRhbiBob2EsIER1bmcgIkhhIiB0aGFuaCB0aGF0 OiAiU2FwIHRvaSBlbSB2YW8gU2FpIEdvbiBzb25nLCBjbyBnaSBhbmggDQpOYW0gZ2l1cCBkbyBu aGUhIi4gTmFtIENhbSBuaGFuIGxvaSB2YSBodWEgZ2l1cCBkby4gU2F1IGRvIGNhIGRvYW4ga2Vv IG5oYXUgcmEgRG8gDQpTb24gbmdoaS4gVHJvbmcgMiBuZ2F5IE5hbSBDYW0gdmEgYmF1IGRvYW4g byBEbyBTb24sIER1bmcgIkhhIiBjb24gZGlldSBoYW4gaG9uIA0KY2h1YyBnYWkgZGllbSBoYW5n IHNhbmcgdHUgSGFpIFBob25nIHh1b25nIGRlIHBodWMgdnUgTmFtIENhbSB2YSBkb25nIGJvbi4N Cg0KVGhhbmcgOC8yMDAwLCB0aGF5IEhhaSAiQmFuaCIgZHVvYyB2aWVjIG5lbiBOYW0gQ2FtIG5h bmcgZG8gYmFuZyBjYWNoIGNobyBuaGlldSANCnRpZW4gYmFjLiBOYW0gQ2FtIGNvbiBoYW8gcGhv bmcgY2hvIEhhaSAiQmFuaCIgdGhhbSBnaWEgY28gcGhhbiAiYmFvIGtlIiB2dSB0cnVvbmcgDQpQ aGkgVGh1eWVuIHNvIDM0IGR1b25nIFRvbiBEdWMgVGhhbmcsIHF1YW4gMSwgVFAgSENNLiBNb2kg dGhhbmcgTmFtIENhbSBjaGlhIA0KY2hvIEhhaSBCYW5oIDEwIHRyaWV1IGRvbmcuIE5hbSBDYW0g Y29uIGNobyBIYWkgIkJhbmgiIHRpZW4gZGUgdGh1ZSBjYW4gbmhhIHNvIDIxIA0KZHVvbmcgVGh1 IEtob2EgSHVhbiBwaHVvbmcgQmVuIFRoYW5oLCBxdWFuIDEsIGRlIG1vICB0aWVtIGNhdCB0b2Mg dGhhbmggbnUgDQoiVmFuJ3MiLiBUb2FuIGJvIGxvaSBuaHVhbiB0dSBxdWFuIGNhdCB0b2MgbmF5 IE5hbSBDYW0gY2hvIEhhaSAiQmFuaCIgaGV0IGRlIG51b2kgDQpkYW0gZGFuIGVtLg0KDQpUaG9p IGRpZW0gbmF5IGxhIHRob2kgZGllbSBodXkgaG9hbmcgbmhhdCBjdWEgSGFpICJCYW5oIiwgbHVj IG5hbyB0aWVuIGN1bmcgZGF5IHR1aSwgY28gDQpuYW5nIHRyaXUgc29pIGRheSB4aWNoIGJhbmcg dmFuZyAyNEssIGFuIG1hYyB0aGkgdG9hbiBoYW5nIGhpZXUgdmEgdHJlbiB0YXkgbHVjIG5hbyBj dW5nIA0KbG9uZyBsYW5oIGNoaWVjIG5oYW4ga2ltIGN1b25nIGdhbiAxMCBjYXJhLg0KDQpDdW5n IHRob2kgZGllbSBuYXkgdGhpIGNvbmcgdGFjIHRydXkgcXVldCB0b2kgcGhhbSBvIEhhaSBQaG9u ZyB2YSBIYSBOb2kgY3VhIGx1YyBsdW9uZyANCkNvbmcgYW4gbGFtIHF1YSBtYW5oLCBEdW5nICJI YSIgY3VuZyBkYW0gZGFuIGVtIHR1IEhhaSBQaG9uZyBoZXQgZGF0IGxhbSBhbiBuZW4gDQpibyB2 YW8gVFAgSENNLiBMdWMgbmF5IGR1bmcgZGFuZyBzYXUgRHVuZyAiSGEiIGxhIE1pbmggIlN1dCIs IG1vdCB0ZW4gdHJ1bSBidW9uIA0KbGF1IG1hIHR1eSBjdW5nIG11b24gbG9pIGR1bmcgc28gbWEg Y3VhIER1bmcgIkhhIiBkZSB4dW5nIGh1bmcgeHVuZyBiYSB2YSBwaHVjIHZ1IA0KY2hvIHZpZWMg a2luaCBkb2FuaCBjYWkgY2hldCB0cmFuZyBjdWEgaGFuLiBWaSB0aGUgTWluaCAiU3V0IiBsdW9u IGR1bmcgZGFuZyBzYXUga2ljaCANCmRvbmcgRHVuZyAiSGEiIHJhIG1hdCB0cmFuaCBjaGFwIGxh bmggZGlhIHZvaSB0cnVtIE5hbSBDYW0uIA0KDQpEdW5nICJIYSIgbmdoZSB0aW4gSGFpICJCYW5o IiBkdW9jIE5hbSBDYW0gZG8gZGF1IHRybyBsZW4gZ2lhdSBjbyB0aGkgaGV0IHN1YyB0dWMgDQp0 b2kuIE1vdCBob20sIER1bmcgIkhhIiBnYXAgSGFpICJCYW5oIiB2YSBsZW4gZ2lvbmcgZGFuIGNo aTogIkhpZW4gc28gZGFuIGVtIGN1YSBjaGkgDQp2YW8gZGF5IGtoYSBkb25nLCBjaHUgaHVvbmcg bG9jIG8gUGhpIFRodXllbiBsYSBkdSByb2ksIHRhdCBjYSBsb2kgbmh1YW4gdGh1IGR1b2MgdHUg DQp0aWVtIGNhdCB0b2MgdGhhbmcgZW0gcGhhaSBub3AgY2hvIGNoaSBkZSBudW9pIGNodW5nIG5v LCBuZXUga2hvbmcgY2hpIHNlIGNobyBkYW4gZW0gZGkgDQpxdWF5IHBoYSB2YSB0aHUgdGllbiBi YW8ga2UgbyBjYWMgbmhhIGhhbmcsIHZ1IHRydW9uZywgYmF0IGtlIGxhIGN1YSBhaS4uLiIuDQoN CkR1bmcgIkhhIiBjb24gcmEgeWV1IHNhY2ggY2hvIEhhaSAiQmFuaCIgcGhhaSBkYW4gRHVuZyAi SGEiIGRpIGdhcCBjaHUgdnUgdHJ1b25nIA0KUGhpIFRodXllbiBkZSB0aG9uZyBjYW8gY2FjIGRp ZXUga2llbjogVGh1IG5oYXQsIGNobyBEdW5nICJIYSIgZG9uZyBnb3AgY28gcGhhbiAxIA0KdHJp ZXUgZG9uZyBuaHVuZyBsb2kgbmh1YW4gdGhpIHBoYWkgY2hpYSBiYW5nIGNvIGRvbmcgY2FvIG5o YXQuIFRodSBoYWkgbGEsIGNodSB2dSANCnRydW9uZyBQaGkgVGh1eWVuIHBoYWkgbXVhIGx1b24g Y2FuIG5oYSBzbyAyMSBUaHUgS2hvYSBIdWFuIGNobyBIYWkgIkJhbmgiIHZhIA0KRHVuZyAiSGEi LiBUaHUgYmEsIEhhaSAiQmFuaCIgYm8gTmFtIENhbSB2ZSBwaHUgRHVuZyAiSGEiIG1vIHNvbmcg YmFjLCBtb2kgbmdheSANCmhvYXQgZG9uZyBiYSBjYSB2YSBuaHVvbmcgY2hvIEhhaSAiQmFuaCIg cGh1IHRyb25nIGNvaSBtb3QgY2EsIGJhbmcga2hvbmcgRHVuZyAiSGEiIA0Kc2UgcXVheSBjaG8g Y2EgdGhheSBsYW4gdG8gaGV0IGR1b25nIGxhbSBhbi4NCg0KVGF0IGNhIG5odW5nIHlldSBzYWNo IGN1YSBEdW5nICJIYSIgIEhhaSAiQmFuaCIgZGV1IGJhbyBjYW8gbGFpIGNoaSB0aWV0IHZvaSAg TmFtIA0KQ2FtLiBUaGVvIGxlbmggY3VhIE5hbSBDYW0sIEhhaSAiQmFuaCIgdHJhIGxvaSB0aGFu ZyB0dW5nIHZvaSBEdW5nICJIYSIgcmFuZywgY2h1IA0KdnUgdHJ1b25nIFBoaSBUaHV5ZW4ga2hv bmcgY2hhcCBuaGFuIHlldSBzYWNoIHRyZW4uDQoNCkRlIGNodW5nIG1pbmggbG9pIG5vaSBjdWEg bWluaCBraG9uZyBwaGFpIGNoaSBkZSBnaW8gYmF5LCBnaXVhIHRoYW5nIDkvMjAwMCwgRHVuZyAN CiJIYSIgY2hvIGRhbiBlbSBtYW5nIHRvaSB0aWVtIGNhdCB0b2MgY3VhIEhhaSAiQmFuaCIgMiB4 byBwaGFuIG5ndW9pIHZhIHR1b2kga2hhcCANCm5oYSwgRHVuZyAiSGEiIGNvbiBidW9jIEhhaSAi QmFuaCIgcGhhaSBnbyBtYXkgbGFuaCAgbyB0aWVtIGNhdCB0b2M6ICJDaG8gY2hpIG11b24gDQpk byB2aSBjaGkga2hvIGtoYW4gcXVhLCBjaHVhIHNhbSBkdW9jIi4NCg0KQ2h1YSBkdW5nIG8gZG8s IER1bmcgIkhhIiBjaG8gZGFuIGVtIHRvaSBxdWF5IHBoYSB2dSB0cnVvbmcgTW9uYWNvIGN1YSBO YW0gQ2FtLCANCnRvIGNodWMgY2hlbSBuaGF1IHRhaSBtb3Qgc29uZyBiYWMgbyBjYXUgSGFuZywg RG9uZyBOYWkgIHZhIG5odW5nIHNvbmcgYmFjIGtoYWMgZG8gDQpOYW0gQ2FtIGJhbyBrZS4gRGVt IDI5LzkvMjAwMCwgRHVuZyAiSGEiIHRpZXAgdHVjICJkYWkgbmFvIiB2dSB0cnVvbmcgUGhpIFRo dXllbiANCmJhbmcgY2FjaCB0byBjaHVjIG1vdCB0aWVjIHNpbmggbmhhdCBnaWEgZGUgY2hvIGto b2FuZyAyMCBkYW4gZW0gdmFvIHZ1IHRydW9uZyBuYXkgDQpxdWF5IHBoYSBuZW0gbWFtIHRvbSwg Y2h1b3QgY2hldCwgcGhhbiBuZ3VvaSwgcmFuIHJldCB4dW9uZyBzYW4gbmhheS4gRGVtIGhvbSBh eSwgDQpob24gMjAwIHRodWMga2hhY2ggZGFuZyBuaGF5IG5ob3QgbyB2dSB0cnVvbmcgUGhpIFRo dXllbiBiaSBtb3QgcGhlbiBob24gdmlhIGxlbiANCm1heSwgbWFuaCBhaSBuYXkgdGltIGR1b25n IHRob2F0IGtob2kgdnUgdHJ1b25nLiBTYXUgZG8gRHVuZyAiSGEiIHRpZXAgdHVjIGJhdCBIYWkg DQoiQmFuaCIgcGhhaSBidW9jIGNodSBQaGkgVGh1eWVuIHRodWMgaGllbiB5ZXUgc2FjaCBkYSBk ZSByYSwgbmV1IGtob25nIER1bmcgIkhhIiBzZSANCnRpZXAgdHVjIHF1YXkgbmF0IHZ1IHRydW9u Zy4uLiAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NS8y MDEwMTEwNjE4NDc1Mi5hc3B4IE1pbmggTmFtICh0aHVjIGhpZW4pIDA2LzExLzIwMTAgMTg6NDcg DQoNClRQIEhDTTogTXVhIGxvbiBnYXkgbmdhcCBuaGlldSBub2kgLSBvbmcgVHJ1b25nIFRhbiBT YW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbSANCiAgDQooVE5PKSBDb24gbXVhIGxvbiB2YW8gY2hp ZXUgbmF5ICg2LjExKSBkYSBiaWVuIG5oaWV1IHR1eWVuIGR1b25nIHRhaSBUUC5IQ00gdGhhbmgg c29uZy4gDQpOaGlldSB0dXllbiBkdW9uZyB0aHVvYyBjYWMgcXVhbiAyLCA3LCA4LCAxMiwgVGh1 IER1YywgQmluaCBUaGFuaCwgR28gVmFwLCBUYW4gDQpCaW5oLi4uIG5nYXAgc2F1IHRyb25nIG51 b2MuIE5nYXkgY2EgbmhpZXUgdHV5ZW4gZHVvbmcgbyB0cnVuZyB0YW0gUS4xIG5odSBDbyBCYWMs IA0KTmd1eWVuIEtoYWMgTmh1LCBEZSBUaGFtLi4uIGN1bmcgYmkgYmllbiB0aGFuaCBzb25nLCBr aGllbiBjYWMgcGh1b25nIHRpZW4gZ2lhbyANCnRob25nIGRpIGxhaSBraG8ga2hhbi4gDQoNCkR1 b2kgY29uIG11YSB0YW0gdGEsIGR1b25nIE5ndXllbiBIdXUgQ2FuaCwgUS5CaW5oIFRoYW5oIG5o YW5oIGNob25nIHRoYW5oIGJpZW4gDQpudW9jIG1lbmggbW9uZy4gTmhpZXUgY2hvIG5nYXAgc2F1 IGRlbiAwLDhtLiBSYXQgbmhpZXUgb3RvLCB4ZSBtYXkga2hpIGRpIHF1YSBkb2FuIA0KZHVvbmcg bmF5IGRhIGJpIGNoZXQgbWF5IGdpdWEgZHVvbmcuDQoNCktobyBzbyBraG9uZyBrZW0gbmd1b2kg ZGkgZHVvbmcgbGEgY2FjIGhvIGRhbiBzb25nIGRvYyBoYWkgYmVuIGR1b25nIG5heSwga2hpIGx1 b25nIA0Kb3RvIGRpIHF1YSB0YW8gbmVuIHNvbmcgbnVvYyB0cmFuIHZhbyBuaGEsIGtoaWVuIG5n dW9pIGRhbiBkdW5nIG1vaSB0aHUgY28gdGhlIGRlIGNoZSBjaGFuIHZhIGR1YSBuaGF1IHRhdCBu dW9jLg0KDQpUcm9pIGNhbmcgdG9pLCBkdW9uZyBuZ2FwIG5hbmcga2hpZW4gY2FjIHhlIG90bywg eGUgZ2FuIG1heSBiaSBjaGV0IG1heSBsYSBsaWV0LiBOaGlldSANCmRvYW4gdHJlbiBkdW9uZyBO Z3V5ZW4gSHV1IENhbmggYmkgbmdhcCBuYW5nLCB4ZSBnYW4gbWF5IGtob25nIHRoZSBkaSBkdW9j IHBoYWkgDQpxdWF5IGRhdSwgdGFvIG5lbiBzdSBob24gbG9hbiB2ZSBnaWFvIHRob25nIG8ga2h1 IHZ1YyBuYXkuDQoNCihBbmg6IE51b2MgbmdhcCB0cmFuIHZhbyBuaGEsIG5ndW9pIG5oYSBtb3Qg aG8gZGFuIG1hdCB0aWVuIGR1b25nIE5ndXllbiBIdXUgQ2FuaC0gDQpRLkJpbmggVGhhbmgsIGR1 YSBuaGF1IHRhdCBudW9jKQ0KDQooQW5oOiBOaGlldSB4ZSBnYW4gbWF5IGJpIGNoZXQgbWF5IGRv IG5ndW9pIGRpZXUga2hpZW4gbGlldSBsaW5oIHZ1b3QgcXVhIG11YyBudW9jIA0KbmdhcCBzYXUg cGhhaSB0cmEgZ2lhIGNobyBtb3QgbGFuIGNodWkgYnVnaSBsYSAyMC4wMDAgZG9uZykgDQoNCihB bmg6IER1b25nIE5ndXllbiBIdXUgQ2FuaCBiaWVuIHRoYW5oIGJpZW4gbnVvYyBtZW5oIG1vbmcp IA0KDQooQW5oOiBOaGlldSBwaHVvbmcgdGllbiBnaWFvIHRob25nIGxpZXUgbGluaCB2dW90IHF1 YSBkb2FuIG51b2MgbmdhcCBzYXUgbmh1bmcgY3VvaSBjdW5nIGN1bmcgZGFuaCBjaGFvIHRodWEp DQoNCihBbmg6IEtodW5nIGNhbmggaG9uIGxvYW4gZG8geGUgY2hldCBtYXkgYmkgZG9uIHUsIGto aWVuIGNhYyB0aG8gY2h1aSBidWdpIGxhbSB2aWVjIGtob25nIG5naGkgdGF5KQ0KDQooQW5oOiBE dW9uZyBMZSBWYW4gU3kgKFEuMykgdnVhIGR1b2MgdHJhbmcgbmh1YSB2YWkgbmdheSBjdW5nIGRh IGNoaW0gdHJvbmcgYmllbiBudW9jKQ0KDQooQW5oOiBUdXllbiBkdW9uZyBEZSBUaGFtIG8ga2h1 IHZ1YyB0cnVuZyB0YW0gVFAgY3VuZyBiaSBuZ2FwIHNhdSB0cm9uZyBudW9jKQ0KDQooQW5oOiBO dW9jIG5nYXAgdHJhbiB2YW8gY2FjIGhvIGtpbmggZG9hbmggbWF0IHRpZW4gZHVvbmcgTGUgVmFu IFN5IC0gUS4zKSANCg0KRGVuIDE4IGdpbywgdGluaCBoaW5oIG5nYXAgbnVvYyB2YSBnaWFvIHRo b25nIHRhaSBraHUgdnVjIGR1b25nIE5ndXllbiBIdXUgQ2FuaCB2YW4gY2h1YSBkdW9jIGNhaSB0 aGllbi4NCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS80MDcwNjQvTGFpLXZv LW9uZy1udW9jLXN1cC1tYXQtZHVvbmcuaHRtbCBOLlRSSUVVIDIyLzEwLzIwMTAsIDA4OjA4IChH TVQrNykgDQoNClRQIEhDTTogTGFpIHZvIG9uZyBudW9jLCBzdXAgbWF0IGR1b25nDQoNClRUIC0g S2hvYW5nIDdnMzAgbmdheSAyMS0xMCwgbWF0IGR1b25nIEhvYW5nIFZhbiBUaHUgc2F0IGdpYW8g bG8gdm9pIGR1b25nIExlIA0KQmluaCwgUC40LCBRLlRhbiBCaW5oLCBUUC5IQ00gYmF0IG5nbyB2 byByYSB2YSBudW9jIHR1IGJlbiBkdW9pIHBodW4gbGVuIHR1bmcgdG9lIA0Ka2hpZW4gbWF0IGR1 b25nIGJpIGtob2V0IHRoYW5oIGhvIHJvbmcga2hvYW5nIDEsMm0sIHNhdSBob24gMW0uIA0KDQoo QW5oOiBIaWVuIHRydW9uZyB2dSB2byBvbmcgbnVvYyBsYW0gc3VwIG1hdCBkdW9uZyB0cmVuIGR1 b25nIEhvYW5nIFZhbiBUaHUgc2FuZyANCjIxLTEwIC0gQW5oOiBOLlRyaWV1KSANCg0KTmd1eWVu IG5oYW4gbGEgb25nIGNhcCBudW9jIHBoaSAyMDAgY2FwIG51b2MgY2hvIHRydSBjdXUgaG9hIGJp IGJlLCBudW9jIHRyb25nIG9uZyANCnRyYW4gcmEgY3VvbiB0aGVvIGRhdCBkYSBjaGF5IHZhbyBr aGUgaG8gY3VhIGR1b25nIG9uZyB0aG9hdCBudW9jIHBoaSAxMDAwIG5hbSBnYW4gZG8gDQp2YSB0 YW8gbmVuIGxvIGhvbmcgZ2F5IHN1cCBtYXQgZHVvbmcuIA0KDQpTYXUga2hpIHhheSByYSBzdSBj bywgQ2hpIG5oYW5oIGNhcCBudW9jIEhvYSBUYW4gZGEgdHJpZW4ga2hhaSBraGFjIHBodWMgdHJh IGxhaSBtYXQgZHVvbmcgbmdheSB0cm9uZyBuZ2F5LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL25ld3MvUGFnZXMvMjAxMDI4LzIwMTAwNzA3MDAxODQyLmFzcHggTWluaCBOYW0gLSBO Z29jIEtob2kgMDcvMDcvMjAxMCAwOjE4IA0KDQpUUCBIQ006IENhYyBkdSBhbiBPREEgZGV1IGJp ICJkb2kiIHZvbiANCiAgDQpDYWMgZHUgYW4gT0RBIGRldSBiaSBkb2kgdm9uIGRhdSB0dSBuaHUg ZGFpIGxvIERvbmcgVGF5LCBtb2kgdHJ1b25nIG51b2MgZG9pIHRoYW5oIA0KMy42MDAgdGkgZG9u ZywgdHV5ZW4gbWV0cm8gc28gMSBjaHVhIGtob2kgY29uZyBjdW5nIGRhIHRhbmcgdHUgMSwxIHRp IFVTRCBsZW4gMiwzIA0KdGkgVVNELCBkdSBhbiB2ZSBzaW5oIG1vaSB0cnVvbmcgdGFuZyB0dSAy MDAgdHJpZXUgbGVuIDM1NCB0cmlldSBVU0QiIA0KDQotIFNvIHRpZW4gMTQyIHRpIGRvbmcgbmdh biBzYWNoIFRQIGRhIHVuZyB0cnVvYyBkZSBraGFjIHBodWMgc3VhIGNodWEgY2F1IFZhbiBUaGFu aCAyIA0KaGllbiBjaHVhIHRodSBob2kgbGFpIGR1b2MgdHUgY2FjIGRvbiB2aSwgY2EgbmhhbiBz YWkgcGhhbSANCi0gQ2h1YSB4YWMgZGluaCBkdW9jIGFpIHNlIHRpZXAgdHVjIGNoaSBoYW5nIHRy YW0gdGkgZG9uZyBzdWEgY2h1YSBkdW9uZyBOZ3V5ZW4gSHV1IA0KQ2FuaCBoYXkgbGFpIG5nYW4g c2FjaCBUUC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0 MC8yMDEwMTAwMzAwMTUzMC5hc3B4IDAzLzEwLzIwMTAgMDoxNSANCg0KVFAuSENNOiBuaGlldSB0 dXllbiBkdW9uZyBuZ2FwIG5hbmcgc2F1IG11YSAgIA0KDQpOaGlldSB0dXllbiBkdW9uZyB0aHVv YyBjYWMgcXVhbiAxLCAzLCA1LCAxMC4uLiAoVFAuSENNKSBiaSBuZ2FwIHJhdCBzYXUgc2F1IHRy YW4gbXVhIGxvbiBrZW8gZGFpIHR1IDgtMTAgZ2lvIHNhbmcgcXVhLiANCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQxLzIwMTAxMDA2MTUwNTA2LmFzcHggMDYv MTAvMjAxMCAxNTowNSANCg0KVFAgSENNOiBHYW4gbW90IG51YSBzbyBwaHVvbmcsIHhhIFRQLkhD TSBsYSBvIGRpY2ggU1hIICANCg0KVHJlIGJpIHNvdCB4dWF0IGh1eWV0IGRhbmcgZGlldSB0cmkg byBCZW5oIHZpZW4gTmhpIGRvbmcgMiAtIEFuaDogVGhhbmggVHVuZw0KDQpUYWkgVFAuSENNLCBz b3QgeHVhdCBodXlldCAoU1hIKSBkYSB0YW5nIGxpZW4gdHVjIHRyb25nIGJhIHRoYW5nICh0aGFu ZyA3LCA4LCA5KSB2YSBkdSBraWVuIHZhbiB0aWVwIHR1YyB0YW5nIHRyb25nIHRoYW5nIDEwLiBI aWVuIG5heSwgZ2FuIG1vdCBudWEgc28gcGh1b25nLCB4YSBjdWEgVFAuSENNICgxNjYvMzIyIHBo dW9uZywgeGEpIGR1b2MgeGFjIGRpbmggbGEgbyBkaWNoIFNYSCwgdHJvbmcgZG8gMzUgZGllbSBs YSBvIGRpY2gga2VvIGRhaSAoc3VvdCAzIHRoYW5nKS4gDQogDQpodHRwOi8vdmlldGJhby52bi9L aG9hLWhvYy9IYS1Ob2ktVFBIQ00tVG9wLTYtdGhhbmgtcGhvLW8tbmhpZW0tYnVpLW5oYXQtdGhl LWdpb2kvNzAxMDE2MzcvMTg4LyAyNi8xMC8gMjAwNywgMjE6MzEgR01UKzcgDQoNClRQSENNOiBU cm9uZyB0b3AgNiB0aGFuaCBwaG8gbyBuaGllbSBidWkgbmhhdCB0aGUgZ2lvaSANCg0KaHR0cDov L3ZpZXRuYW1uZXQudm4vaGNtLzIwMTAxMC9MYWktY2hvYW5nLXZvaS1udS1zaW5oLXRhbS10aWVu LWNoby1iYW4tcXVheS1waGltLTk0MTcwNS8gTmd1eWVuIFRpZW4gIDEzOjExLCAxMi8xMC8yMDEw IChHTVQrNykNCg0KVFAuSENNOiBDaG9hbmcgdm9pIG51IHNpbmggInRhbSIgY2hvIGJhbiBxdWF5 IHBoaW0NCg0KLSBDdSBkYW4gbWFuZyBiaSBjaG9hbmcgdm9pIGNsaXAgZGFpIGhvbiA2IHBodXQg cXVheSBjYW5oIG1vdCAibnUgc2luaCB2aWVuIiB2dWEgdGFtIA0KdnVhIHZvIHR1IGxhbSBkYW5n LCBhbiBub2kgdHVjIHRpdSBkZSBjaG8gYmFuIHF1YXkgcGhpbSB0dSBBIC0gWi4gDQoNCkNsaXAg ZGFpIGhvbiA2IHBodXQgbmF5LCBkdW9jIG1vdCB0aGFuaCB2aWVuIGN1YSBtb3QgdHJhbmcgd2Vi IGNoaWEgc2UgdmlkZW8gdHJ1YyB0dXllbiANCmR1YSBsZW4gdmFvIG5nYXkgMjMvOC8yMDEwLCB2 YSBjaGkgaG9uIDEgdGhhbmcgc2F1IGtoaSBkb2FuIGNsaXAgZHVvYyBkYW5nIHRhaSBkYSBjbyAN CmhhbmcgY2h1YyBuZ2FuIGx1b3Qgbmd1b2kgdHJ1eSBjYXAuIA0KDQpUaGVvIGN1b25nYnN0biAt IHRoYW5oIHZpZW4gZGEgdHVuZyBkb2FuIHZpZGVvIGxlbiB0cmFuZyB3ZWIgdHJlbiwgY2EgNCBj byBnYWkgeHVhdCBoaWVuIA0KdHJvbmcgY2xpcCBkZXUgbGEgc2luaCB2aWVuIGN1YSBtb3QgdHJ1 b25nIGRhaSBob2MgcGhpYSBCYWMuIA0KDQooQW5oIGR1b2MgY2h1cCB0dSBkb2FuIGNsaXAuKQ0K DQpEb2FuIHZpZGVvIGdoaSBsYWkgY2FuaCBtb3QgIm51IHNpbmggdmllbiIgdGVuIExpZW4gKHF1 ZSBIdW5nIFllbiwgdGhlbyBuaHUgbG9pIHRob2FpIA0KY3VhIG5ndW9pIGNhbSBkaWVuIHRob2Fp IHF1YXkpLCBkYW5nIHRhbSB0cm9uZyB0dSB0aGUga2hvbmcgbWFuaCB2YWkgY2hlIHRoYW4uIFRo ZSANCm5odW5nIGNvIGdhaSBuYXkga2hvbmcgaGUgbmdhaSBuZ3VuZyBtYSBjb24gdG8gcmEgdmUg dGhpY2ggdGh1LCBsaWVuIHR1YyBsYW0gbmh1bmcgDQpkb25nIHRhYyBoZXQgc3VjIHR1YyB0aXUg ZGUgY2hvIGJhbiBtaW5oIGdoaSBsYWkuIA0KDQpDYSA0IGNvIGdhaSB4dWF0IGhpZW4gdHJvbmcg ZG9hbiBjbGlwIGxpZW4gdHVjIGNvIG5odW5nIGxvaSBub2kgbmdoZSBwaGFpIGdpYXQgbWluaCBu aHU6DQogIlR1bmcgbGVuIG1hbmcgcXVhIG5heSBkdW9jIGRheSBuaGk/IjsgIktoZW8gbGFpIG5v aSB0aWVuZyEiLi4uIHZhIGNvbiBuaGlldSBjYXUgdGhvYWkgDQpraG9uZyB0aWVuIG5vaSByYS4g DQoNCkJlbiBjYW5oIG5odW5nIGNhdSBub2kgImhldCBob24iIGRvLCBuaG9tIDQgY28gZ2FpIG5h eSBjb24gc28gc2FuaCBuZXUgY2xpcCBuYXkgdHVuZyANCmxlbiBtYW5nIHRoaSBraG9uZyBiaWV0 IGNvIG5oaWV1IG5ndW9pIHhlbSwgdmEgY28gdGhlIG5vaSB0aWVuZyBuaHUgWVYsIFZBIC0gKGhh aSBuaGFuIA0KdmF0IGRhIHR1bmcgZ2F5IGRpbmggZGFtIHZlIG5odW5nIGNsaXAgZGEgdHVuZyBs ZW4gbWFuZykga2hvbmcgbmhpPyANCg0KS2hpIG5naGUgbmh1bmcgY2F1IHRob2FpIHRyZW4gY2Fj IGN1IGRhbiBtYW5nIGtob25nIGtob2kgaG90IGhvYW5nIHZlIG1vdCBzbyBibyBwaGFuIA0KZ2lv aSB0cmUsIGRhYyBiaWV0IGxhIHNpbmggdmllbiBkYW5nIGNvIG1vdCAieG8gaGFuZyIgaGllbiBu YXkuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMS8yMDEw MDcyODIyNTYwOS5hc3B4IFRoYW5oIFRvbmcgMjgvMDcvMjAxMCAyMjo1NiANCg0KVFAgSENNOiBE dSBhbiBuaGEgeGEgaG9pIHRyZW4gZ2lheSB0aGkgbmhpZXUsIGR1IGFuIGhvYW4gdGhhbmggcXVh IGl0LiBDb24gZHVvbmcgZGUgbmd1b2kgdGh1IGh1b25nIA0KZGVuIGR1b2Mgdm9pIG5oYSB4YSBo b2kgeGVtIHJhIGNvbiByYXQgeGEuIA0KDQpodHRwOi8vbmV3cy5uZHRodWFuLmNvbS92aWV0LW5h bS8yMDEwLzA3LzEwLzE0MjEwMi1ob2MtbW9uLWdpYW8tZGF0LWR1LWFuLW8tbXVjLWtob25nLWJp bmgtdGh1b25nLnNodG1sIHR1b2l0cmUudm4gMDg6MDAgMTAvMDcvMjAxMA0KDQpUUCBIQ006IEdp YW8gZGF0LCBkdSBhbiBvIG11YyAia2hvbmcgYmluaCB0aHVvbmciIC0gQnVvbmcgbG9uZyBxdWFu IGx5DQoNClF1YSB0aGFuaCB0cmEgY2hvIHRoYXkgc2FpIHBoYW0gY3VhIENvbmcgdHkgSG9hbmcg SGFpIHRhaSBodXllbiBIb2MgTW9uIChUUC5IQ00pIGxhIHJhdCBuZ2hpZW0gdHJvbmcsIA0KZ2F5 IHRoaWV0IGhhaSBjaG8gTmhhIG51b2MNCg0KU3UgYnVvbmcgbG9uZyBxdWFuIGx5IHRyb25nIHRo b2kgZ2lhbiBkYWkgZGEgdGFvIGRpZXUga2llbiBjaG8gQ29uZyB0eSBIb2FuZyBIYWkgdGh1YyAN CmhpZW4gbmhpZXUgZHUgYW4gcXV5IG1vIGxvbiBuaHVuZyBkZW4gbmF5IHRhdCBjYSBkZXUgY2h1 YSB0aHVjIGhpZW4geG9uZywgaGUgdGhvbmcgaGEgDQp0YW5nIGt5IHRodWF0IGNodWEgaG9hbiBj aGluaC4uLiBUYWkgY2FjIGR1IGFuIGNvIHF1eWV0IGRpbmggZ2lhbyBkYXQsIGtlIGNhIGNhYyBr aHUgZGF0IA0Kbm9uZyBuZ2hpZXAgY2hpIG1vaSBkdW9jIHRob2EgdGh1YW4gZGlhIGRpZW0sIGNo dWEgZHVvYyBkdXlldCBxdXkgaG9hY2ggbmh1bmcgY2h1IA0KZGF1IHR1IGRhIHR1IHkgcGhhbiBs byBiYW4gbmVuIHRyb25nIG1vdCB0aG9pIGdpYW4gZGFpLg0KQ3UgdGhlLCBjbyBkZW4gMjMwIHRy dW9uZyBob3AgdmkgcGhhbSBxdXkgaG9hY2ggeGF5IGR1bmcsIHRyb25nIGRvIHZpIHBoYW0gdGFp IGJhIGR1IA0KYW4gdm9pIHRpIGxlIHZpIHBoYW0geGF5IGR1bmcgZGVuIDUxJSwgY2h1IHlldSBz YWkgdGhpZXQga2UsIHNhaSBxdXkgaG9hY2ggZHVvYyBkdXlldC4uLiANCk5naGllbSB0cm9uZyBo b24sIGNvIGRlbiA5MyBjb25nIHRyaW5oIGdvbSBuaGEgbywgbmhhIHh1b25nIHhheSBkdW5nIHRy ZW4gZGF0IG5vbmcgDQpuZ2hpZXAgbmh1bmcga2hvbmcgZHVvYyBwaGF0IGhpZW4NCg0KVHJvbmcg Y3VuZyBtb3QgdGhvaSBkaWVtICgyMDAxLTIwMDMpLCBsYW5oIGRhbyBVQk5EIGh1eWVuIGRhIGNo YXAgdGh1YW4gZGlhIGRpZW0gDQpjaG8gQ29uZyB0eSBIb2FuZyBIYWkgKHRoYW5oIGxhcCB0aGFu ZyA3LTIwMDApIHRodWMgaGllbiAxMSBkdSBhbiB2b2kgdG9uZyBkaWVuIHRpY2ggDQpkYXQgbGVu IGRlbiAxMDBoYSwgdHJvbmcga2hpIHZvbiBkaWV1IGxlIGN1YSBjb25nIHR5IGNoaSAyNSB0aSBk b25nLiBUcm9uZyBzbyBuYXkgZ29tIA0KYm9uIGR1IGFuIHBoYW4gbG8gaG8gbGUsIGJhIGR1IGFu IGtodSBuaGEgbyB2YSBib24ga2h1IGRhdCBub25nIG5naGllcC4gDQoNCmh0dHA6Ly93d3cuYmFv bW9pLmNvbS9JbmZvL0NhaS10YW8tdmlhLWhlLW8tVFBIQ00tLVRoaWV1LXRhbS1uaGluLWxhbmct cGhpLWxvbi8xNDgvNDM5MjIzOC5lcGkgU0dHUCANCiANClRQIEhDTTogQ2FpIHRhbyB2aWEgaGUg dGhpZXUgdGFtIG5oaW4sIGxhbmcgcGhpIGxvbiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzEyMjMyMjQzLmFzcHggTWluaCBOYW0tIEhvYWkg TmFtIDEyLzA3LzIwMTAgMjM6MjIgDQoNClRQIEhDTTogUmF1ICJreSBzaW5oIiB0cmVuIGtlbmgg bnVvYyBkZW4gLSBuZ3V5IGhpZW0gZG9pIHZvaSBzdWMga2hvZSBuZ3VvaSB0aWV1IHRodS4gDQoN Cmh0dHA6Ly93d3cudGh1dmllbnBoYXBsdWF0LnZuLz9DVD1OVyZOSUQ9MzYzOSAyMS8wOS8yMDA3 DQoNClRQIEhDTTogRHUgYW4ga2h1IG5oYSBvIERhaSBob2MgcXVvYyBnaWEgVFAuSENNIC0gSGFu ZyBsb2F0IGJlIGJvaSB4dW5nIHF1YW5oIGNodXllbiBtdWEgYmFuIGRhdCAtIE1vdCBkaWVuIGhp bmggdmUgdmkgcGhhbSBMdWF0IERhdCBkYWkNCg0KU2FuZyAyMC45LCBob24gMTUwIG5ndW9pIG11 YSBkYXQgdGFpIGR1IGFuIGtodSBuaGEgbyBEYWkgaG9jIFF1b2MgZ2lhIFRQLkhDTSANCihESFFH KSBkYSB0YXAgdHJ1bmcgdGFpIGhvaSB0cnVvbmcgREhRRyBkZSBkdWEga2llbiBuZ2hpLiBUaGVv IGRvLCBkdSBkYSBtdWEgZGF0IHRhaSANCmR1IGFuIG5heSA2IG5hbSBxdWEgbmh1bmcgbmF5IGhv IGxhaSBkdW9jIHRob25nIGJhbyB0aHUgaG9pIGxhaSBkYXQuIEhvbiA2MDAgbmd1b2kgZGEgDQpt dWEgZGF0IG8gZHUgYW4gREhRRyBiaSBsYW0gdmFvIGNhbmggbmdvIG5heS4gDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMi8yMDEwMDgwNjIyMzUxNS5hc3B4 IFRoYW5oIFRvbmcgMDcvMDgvMjAxMCA3OjU1IA0KDQpUUCBIQ006IEFtIGRhbSBkYXQgbmVuIGR1 IGFuIC0gSGF1IG5odSBraG9uZyBjbyBzYW4gcGhhbSBtb2kgDQoNCk1hYyBjaG8gZ2lhIHRoaSB0 cnVvbmcgeHVvbmcgdGhhcCBuaGF0IHNhdSBuaGlldSBuYW0gYmllbiBkb25nLCBtYWkgbHVjIHRy ZW4gdGhpIHBoYW4gDQpkYXQgbmVuIGR1IGFuIHZhbiB0aWVwIHR1YyB0cmEgdmUgc28gMC4gDQoN CkdpYSBnaWFtIHZhbiBlIC0gU2FuIHBoYW0gImNoaW5oIGNodSIgcXVhIGl0DQoNClRoZW8gbmh1 bmcgbmd1b2kgbW9pIGdpb2kgdGFpIGtodSB2dWMgcXVhbiAyLCA5LCA3LCBraGFjaCBoYW5nIHF1 YW4gdGFtIHZhIGJvIHZvbiBkYXUgDQp0dSBjaHUgeWV1IGxhIG5odW5nIGRhdCBuZW4gZG8gY2hp bmggY2h1IGRhdSB0dSBkdW5nIHJhIHNhbmcgbmh1b25nLiBDb24gbmh1bmcgZHUgYW4gDQpsYXUg ZG9pIHRoaSByYXQgaXQgbmd1b2kgcXVhbiB0YW0uIFR1eSBuaGllbiwgc2FuIHBoYW0gImNoaW5o IGNodSIgaGllbiBjb24gcmF0IGl0IHRyZW4gdGhpIA0KdHJ1b25nLiANCg0KTHkgZ2lhaSB2ZSBt dWMgdHV0IGdpYW0gY3VhIG1haSBsdWMgdGhpIHRydW9uZyB0cmVuIHRoaSBwaGFuIGRhdCBuZW4g ZHUgYW4sIG9uZyBUcmFuIA0KRGFuZyBLaG9hLCBHaWFtIGRvYyBzYW4gZ2lhbyBkaWNoIERhaSBQ aHVjIGNobyByYW5nLCB0dSBuYW0gMjAwNyB0b2kgbmF5LCB0aGkgdHJ1b25nIA0KZGF0IG5lbiBo YXUgbmh1IGtob25nIGNvIHNhbiBwaGFtIG1vaS4gU2FuIHBoYW0gY3UgdGhpIGR1b2MgbXVhIGRp IGJhbiBsYWkgbmhpZXUgbGFuIA0KbmVuIGdpYSBkYSBkb2kgbGVuIHF1YSBjYW8sIGRvIHZheSBr aG9uZyB0aHUgaHV0IGtoYWNoIGhhbmcgZGF1IHR1IHZhby4gDQoNCmh0dHA6Ly93d3cudGh1dmll bnBoYXBsdWF0LnZuLz9DVD1OVyZOSUQ9MzU4NSAxOS8wOS8yMDA3DQoNClRQIEhDTTogTXVhIGRh dCB0cm9uZyBkdSBhbiBuaGEgbyBjdWEgRGFpIGhvYyBRdW9jIGdpYSBUUEhDTSBnYW4gMS41MDAg a2hhY2ggaGFuZyAibmdvaSB0cmVuIGx1YSINCg0KVGF0IGNhIGtoYWNoIGhhbmcgdGhvbmcgbmhh dCBzZSBjbyB2YW4gYmFuIGtpZW4gbmdoaSBVQk5EIFRQSENNIHZhIGRlIG5naGkgZHVvYyBkb2kg dGhvYWkgdm9pIGxhbmggZGFvIFRQIG5oYW0gbGFtIHJvIG5odW5nIGtodWF0IHRhdCBjdWEgZHUg YW4gDQoNCkNodW5nIHRvaSBjbyBjYW0gZ2lhYyBtaW5oIGRhIGJpIGx1YSBraGkgbXVhIG5lbiBk YXQgdHJvbmcgZHUgYW4gZGF1IHR1IHhheSBkdW5nIGtodSANCm5oYSBvIGNhbiBibywgZ2lhbmcg dmllbiBEYWkgaG9jIFF1b2MgZ2lhIChESFFHKSBUUEhDTSB0YWkgcGh1b25nIFBodSBIdXUgcXVh biA5IA0KLSBUUEhDTSIsIGRvIGxhIHN1IHRoYXQgdm9uZyBjdWEgaGF1IGhldCBraGFjaCBoYW5n IHRhaSBjdW9jIGhvcCB2b2kgQmFuIFF1YW4gbHkgZHUgDQphbiBkZSB0aG9uZyBiYW8gdGluaCBo aW5oIHRyaWVuIGtoYWkgZHUgYW4gdHJlbiB2YW8gY2hpZXUgMTgtOS4gDQoNCjYgbmFtICJhbiIg YmFuaCB2ZSAtIER1IGFuIG5oYSBvIERIIFF1b2MgZ2lhIFRQSENNIHNhdSA2IG5hbSB2YW4gY29u IHRyZW4gZ2lheSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAx MDQwLzIwMTAwOTMwMDAxMzUyLmFzcHggTWFpIFZvbmcgMzAvMDkvMjAxMCAwOjEzIA0KDQpUUCBI Q006IEJhdCBsdWMsIGtob25nIHF1YW4gbHkgZHVvYywgcXVheSBxdWEgY2FtIHRyZSBlbSB2dWkg Y2hvaSEgDQogIA0KKEFuaCBjaHVwOiBEb25nIGN1YSBraHUgdHJvIGNob2kgdHJlbiBjYXQsIENv bmcgdmllbiBUYW8gRGFuIGtob25nIGNvbiBjaG8gdnVpIGNob2kgY2hvIHRyZSBlbSAtIEFuaDog RGllcCBEdWMgTWluaCkNCg0KQ2hpZXUgMjQuOSwga2h1IHRybyBjaG9pIHRyZW4gY2F0IGRhbmgg Y2hvIHRoaWV1IG5oaSB0YWkgQ29uZyB2aWVuIFRhbyBEYW4gKFEuMSwgDQpUUC5IQ00pIGRvdCBu Z290IG5ndW5nIGhvYXQgZG9uZyBtYSBseSBkbyB0YW0gbmd1bmcgbGEgdmkgbm9pIGRheSBraG9u ZyBkYW0gYmFvIHZlIA0KYW4gbmluaCB0cmF0IHR1ICghPykuIA0KDQpUaGVvIENvbmcgdHkgY29u ZyB2aWVuIGNheSB4YW5oIFRQLkhDTSwgZGF5IGxhIGtodSB0cm8gY2hvaSBkYW5oIGNobyB0aGll dSBuaGksIGhvYW4gDQp0b2FuIG1pZW4gcGhpLCBkbyBDb25nIHR5IGxpZW4gZG9hbmggTGV2ZXIg Vk4gdGFpIHRybyB0b2FuIGJvIHRoaWV0IGJpIHRybyBjaG9pLiANCg0KTmFtIDIwMDYsIGNhIGhh aSBzbyBsdWMgYmF5IGdpbyBsYSBTbyBWYW4gaG9hIC0gVGhvbmcgdGluIHZhIFNvIEdpYW8gdGhv bmcgLSBjb25nIA0KY2hpbmggVFAgZGV1IHVuZyBobyB2aWVjIGxhcCBkYXQgY2FjIHRoaWV0IGJp IHRybyBjaG9pIGNobyB0aGlldSBuaGkgdGFpIENvbmcgdmllbiBUYW8gDQpEYW4sIG5oYW0gdGFu ZyBjdW9uZyB0byBjaHVjIHNhbiBjaG9pIGNobyB0cmUgZW0gdGFpIGNhYyBjb25nIHZpZW4uIEto dSB0cm8gY2hvaSB0cmVuIA0KY2F0IG5heSBjbyA4IHRoaWV0IGJpIHRybyBjaG9pLCBob2FuIHRv YW4gbGFuaCBtYW5oIG5odSBtYW5nIHRydW90LCB4aWNoIGR1IHZhIG1vdCBzbyB0cm8gY2hvaSB2 YW4gZG9uZyBraGFjLiANCg0KTmdheSAyNC45LCBLaHUgUXVhbiBseSBnaWFvIHRob25nIGRvIHRo aSBzbyAxLCB0aHVvYyBTbyBHaWFvIHRob25nIHZhbiB0YWkgKEdUVlQpIA0KVFAuSENNIGRhIHJh IG1vdCB2YW4gYmFuIGRvbmcgZGF1ICJraGFuIiBndWkgZGVuIENvbmcgdHkgY29uZyB2aWVuIGNh eSB4YW5oIA0KVFAuSENNLCBkZSBuZ2hpIGNobyB0YW0gbmd1bmcga2h1IHRybyBjaG9pIHRyZW4g Y2F0IHRhaSBDb25nIHZpZW4gVGFvIERhbiBrZSB0dSBuZ2F5IA0KMjQuOS4gTHkgZG8gdGFtIG5n dW5nIHh1YXQgcGhhdCB0dSB2YW4gYmFuIGtpZW4gbmdoaSBjdWEgQ29uZyBhbiAoQ0EpIFEuMSB2 YSB5IGtpZW4gDQpjaGkgZGFvIGN1YSBHaWFtIGRvYyBTbyBHVFZUIFRQLiANCg0KVGhlbyB2YW4g YmFuIGtpZW4gbmdoaSBjdWEgQy5BIFEuMSwgdHUga2hpIGtodSB0cm8gY2hvaSB0cmVuIGNhdCBk aSB2YW8gaG9hdCBkb25nIChuYW0gDQoyMDA2KSBjaG8gZGVuIG5heSwgdGFpIGRheSBkYSB4YXkg cmEgMTAgdnUgdmkgcGhhbSB2ZSBhbiBuaW5oIHRyYXQgdHUsIHRyb25nIGRvIGNvIDQgdnUgDQpw aGFpIHh1IGx5IGhpbmggc3UuIE5nb2FpIHJhLCBjb24gY28gNiB2dSBtYXUgdGh1YW4sIHhpY2gg bWljaCB0cm9uZyBsdWMgY2hvaSB0cm8gY2hvaSBjYXQgDQpkYW4gZGVuIGRhbmggbmhhdSwgZGEg YmkgQy5BIFAuQmVuIFRoYW5oIGN1bmcgcGhvaSBob3Agdm9pIEJhbiBxdWFuIGx5IENvbmcgdmll biANClRhbyBEYW4geHUgbHkuIA0KDQpOZ3V5ZW4gbmhhbiBjaHUgeWV1LCB0aGVvIENBIFEuMSwg dHUga2hpIGtodSB0cm8gY2hvaSBjYXQgZGkgdmFvIGhvYXQgZG9uZywgZGEgdGh1IGh1dCANCnNv IGRvbmcgdGhhbmggbmllbiBkZW4gZGF5IHZ1aSBjaG9pLCB0cm9uZyBkbyBjbyBraG9uZyBpdCB0 aGFuaCB0aGlldSBuaWVuIGh1IGhvbmcsIHRoaWV1IA0Kc3UgcXVhbiB0YW0gZ2lhbyBkdWMgdHUg cGhpYSBnaWEgZGluaDsgc28gaG9jIHNpbmggdHJvbiBob2MgY3VuZyB0dSB0YXAgdmUgZGF5IGNo b2kuICBUdXkgDQpsYSB0cm8gY2hvaSBkYW5oIGNobyB0aGlldSBuaGksIG5odW5nIGNhYyBlbSBr aG9uZyBkdW9jIGNob2kgdmkgZGEgYmkgbW90IHNvIHRoYW5oIHRoaWV1IA0KbmllbiBodSBob25n IGRlbiBnaWFuaCBjaG9pLiBUdSB2aWVjIHRyYW5oIGdpYW5oIHRybyBjaG9pIGRhIHhheSByYSB2 YSBjaGFtIGRhbiBkZW4gDQp4aWNoIG1pY2gsIGRhbmggbmhhdS4NCg0KIFR1eSB2YXksIG1vdCBz byBuZ3VvaSBkYW4gbWEgY2h1bmcgdG9pIGdhcCB0YWkgQ29uZyB2aWVuIFRhbyBEYW4gZGEgYnVj IHh1YyB0cnVvYyANCnZpZWMgZG9uZyBjdWEga2h1IHZ1aSBjaG9pIGRhbmggY2hvIHRyZSBlbSBv IGNvbmcgdmllbiBuYXkuICJWYW4gZGUgbGEgY29uZyB0YWMgcXVhbiBseSANCm5odSB0aGUgbmFv IGRlIGJhbyBkYW0gYW4gdG9hbiB0cmF0IHR1IGNobyBjYWMgZW0gdnVpIGNob2kgY2h1IGtob25n IHBoYWkgaGUgY3Uga2hvbmcgDQpxdWFuIGx5IGR1b2MgdGhpIGRvbmcgY3VhIiAtIG1vdCBuZ3Vv aSBkYW4gbm9pLiANCg0KUGhvIGJhbiBWYW4gaG9hIFhhIGhvaSBIRE5EIFRQLkhDTSAtIG9uZyBO Z3V5ZW4gVmFuIE1pbmggY2hvIGJpZXQ6IEhpZW4gbmF5LCANCnRyZW4gZGlhIGJhbiBUUCBjaGkg Y28gMSBjb25nIHZpZW4gdmEgc2FuIGNob2kgY2hvIHRyZSBlbSBkdW5nIG5naGlhLCBsYSBDb25n IHZpZW4gDQpLaGFuaCBIb2kgbyBRLjQ7IGNhYyBjb25nIHZpZW4ga2hhYyBjdW5nIGNvIGtodSB2 dWkgY2hvaSBjaG8gdHJlIGVtLCBuaHVuZyBxdXkgbW8gcmF0IA0KbmhvLiBUUCBkYW5nIGNhbiBj byB0aGVtIG5oaWV1IHNhbiBjaG9pIGNobyB0cmUgZW0sIHZvaSBjYWMgdHJvIGNob2kgdGFwIHRo ZSBjdW5nIG5odSBjYSANCm5oYW4sIG8gZGFuZyBtaWVuIHBoaSBob2FjIGNvIHRodSB0aWVuLiBP bmcgTWluaCBjdW5nIGJ1YyB4dWM6ICJWaWVjIFNvIEdUVlQgcXV5ZXQgDQpkaW5oIHRhbSBuZ3Vu ZyBraHUgdHJvIGNob2kgY2hvIHRoaWV1IG5oaSBvIENvbmcgdmllbiBUYW8gRGFuIGxhIGtob25n IGhvcCBseSwgYm9pIHZpIA0KY2h1bmcgdGEgZGFuZyBjYW4gcGhhaSBkYXUgdHUgdGhlbSBuaGll dSBraHUgdnVpIGNob2kgbmh1IHRoZSIuIA0KDQpUaGVvIHF1YW4gZGllbSBjdWEgSERORCBUUCwg dHJvbmcga3kgaG9wIGN1b2kgbmFtIG5heSwgc2UgcmEgbmdoaSBxdXlldCB2ZSB2aWVjIGRhdSAN CnR1IGNhYyBraHUgdnVpIGNob2kgY2hvIHRyZSBlbSB0YWkgY2FjIGNvbmcgdmllbiwgY2FjIG5o YSB2YW4gaG9hIHRoaWV1IG5oaSwgdHJvbmcgZG8gdGFuZyANCmN1b25nIGRheSBuYW5nIGtoaWV1 IHZhIHRhbmcgY3Vvbmcgc2FuIGNob2kgY2hvIGNhYyBlbS4gTW90IHRoYW5oIHBobyBsb24gbmh1 IA0KVFAuSENNLCB2b2kga2hvYW5nIDEsNiB0cmlldSB0cmUgZW0sIHRoaSB2aWVjIHhheSBkdW5n IGNhYyBzYW4gY2hvaSBkYW5oIGNobyB0aGlldSBuaGkgDQpsYSBkaWV1IGNhcCBiYWNoLCBjaHUg a2hvbmcgbHkgZG8gZ2kgbGFpIGRlcCBkaS4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZv L05odW5nLWJhdC1jYXAtdHJvbmctcXV5LWhvYWNoLXRhaS1UUEhDTS0tQmFpLTEtTmdoaWNoLWx5 LXRodWEtdGhpZXUvMTQ4LzU1MDc5NzkuZXBpIE5ndXllbiBLaG9hIDAxLzIwMTEgDQoNClRQIEhD TTogTmh1bmcgYmF0IGNhcCB0cm9uZyBxdXkgaG9hY2ggdGFpIFRQSENNIC0gQmFpIDE6IE5naGlj aCBseSB0aHVhLCB0aGlldSANCg0KVFBIQ00gZGFuZyB2YW8gZ2lhaSBkb2FuIGN1b2kgY3VhIGNv bmcgdGFjIGxhcCBxdXkgaG9hY2ggY2hpIHRpZXQgMS8yMDAwIHRvYW4gVFAuIA0KVHJvbmcgbGlu aCB2dWMgcXVhbiBseSBkbyB0aGksIGRheSBsYSBkaWV1IGR1b2Mgbmd1b2kgZGFuIG1vbmcgY2hv IG5oYXQgdmkgcXV5IGhvYWNoIGxhIA0KY28gc28gcXVhbiB0cm9uZyBjbyB0aW5oIGNoYXQgcXV5 ZXQgZGluaCBjaG8gdmllYyBwaGF0IHRyaWVuIGRvIHRoaSBiZW4gdnVuZzogY2hvbmcgbmdhcCAN Cm51b2MsIGtldCB4ZSB2YSBvIG5oaWVtIG1vaSB0cnVvbmcNCg0KKEFuaDogTmhpZXUga2h1IGRh dCBkdW9jIHF1eSBob2FjaCB4YXkgZHVuZyBuaGEgZGEgbGF1IG5odW5nIHZhbiBjb24gZGUgdHJv bmcuIChBbmggDQpjaHVwIHRhaSBxdWFuIDIpLiBBbmg6IER1YyBUaGFuaCkgDQoNCkRhdCBjb25n IGNvbmc6IERhdSBjdW5nIGtldSB0aGlldSENCg0KQ28gbmhpZXUgbmd1eWVuIG5oYW4gZ2F5IG5n YXAgbnVvYywga2V0IHhlIHZhIG8gbmhpZW0gbW9pIHRydW9uZywgbWEgbW90IHRyb25nIHNvIGRv IA0KbGEgZG8gdGhpZXUgZGF0IGxhbSBjb25nIHZpZW4sIGJhaSBkYXUgeGUsIGxhbSBkdW9uZywg bGFtIGhvIGRpZXUgdGlldCBudW9jIG11YS4uLiBDaGluaCANCnZpIHZheSwgbmd1b2kgZGFuLCBj YWMgbmhhIGtob2EgaG9jIHZhIG5nYXkgY2EgbmhpZXUgY2FuIGJvIGxhbmggZGFvIGN1YSBUUCBr eSB2b25nIA0KbGFuIGxhbSBsYWkgcXV5IGhvYWNoIG5heSAobmFtIDE5OTggVFBIQ00gZGEgbGFw IHF1eSBob2FjaCBjaGkgdGlldCBvIG1vdCBzbyBraHUgDQp2dWMpIHNlIGtoYWMgcGh1YyBkdW9j IG5odW5nIGJhdCBjYXAgdHJlbi4NCg0KVGhlIG5odW5nLCBiYW8gY2FvIG1vaSBuaGF0IGN1YSB2 YWkgcXVhbiwgaHV5ZW4gY2hvIHRoYXkgaHkgdm9uZyB0cmVuIHNlIGtobyB0aGFuaCANCmhpZW4g dGh1YyB2aS4uLiBraG9uZyBjbyBkYXQuIE5nYXkgbmh1IHF1YW4gOSAtIG1vdCBxdWFuIG1vaSBj dWEgVFAgY2hpICJjYW4gZG9pIiBkdW9jIA0Ka2hvYW5nIDcwaGEgZGF0IGRhbmggbGFtIGJhaSBk YXUgeGUgdHJvbmcga2hpIG5odSBjYXUgZGVuIDE3MGhhLiBIdXllbiBOaGEgQmUgY3VuZyANCmNo aSAiY2FuIGRvaSIgZHVvYyBraG9hbmcgMzBoYSBkYXQgdHJvbmcga2hpIHRoZW8ga2UgaG9hY2gg cGhhaSBjbyAxMTBoYSBkaWVuIHRpY2ggYmFpIA0KZGF1IHhlLiANCg0KRGlldSBkYW5nIGxvIG5n YWksIHRoZW8gb25nIEhvYW5nIE1pbmggVHJpLCBQaG8gVmllbiB0cnVvbmcgVmllbiBOZ2hpZW4g Y3V1IHBoYXQgDQp0cmllbiBUUEhDTSwgY2h1eWVuIG8gaGFpIGRpYSBwaHVvbmcgdHJlbiBraG9u ZyBwaGFpIGhpZW4gdHVvbmcgY2EgYmlldCB0cm9uZyBxdWEgDQp0cmluaCBsYXAgcXV5IGhvYWNo IGNoaSB0aWV0IDEvMjAwMCB0cmVuIGRpYSBiYW4gVFBIQ00uIEhhdSBuaHUgcXVhbiwgaHV5ZW4g bmFvIGN1bmcgDQoiZG9pIiBnaWFtIGJvdCBkaWVuIHRpY2ggZGF0IGRhbmggY2hvIGNhYyBjb25n IHRyaW5oIGNvbmcgY29uZy4gRGF0IGNobyBjb25nIHZpZW4sIGRhdCANCmxhbSBiYWkgZGF1IHhl LCBkYXQgbGFtIGhvIGRpZXUgdGlldC4uLiwgbmh1bmcgbG9haSBkYXQgZ29wIHBoYW4gdHJ1YyB0 aWVwIGdpYWkgcXV5ZXQgdmFuIA0KbmFuIGtldCB4ZSwgbmdhcCBudW9jLCBvIG5oaWVtIG1vaSB0 cnVvbmcgbGFpIGxhIG5odW5nIGxvYWkgZGF0IGJpIHhpbiBnaWFtIG5oaWV1IG5oYXQuIA0KDQpI aWVuIHR1b25nIG5heSBuaGlldSBkZW4gbXVjIG9uZyBUcmFuIFF1YW5nIFBodW9uZywgR2lhbSBk b2MgU28gR1RWVCBUUEhDTSwgDQpwaGFpIGxhbSBtb3QgdmFuIGJhbiBiYW8gY2FvIFVCTkQgVFBI Q00gdmUgdGluaCB0cmFuZyBuaGlldSBkaWVuIHRpY2ggZGF0IGRhbmggY2hvIA0KY2FjIGNvbmcg dHJpbmggZ2lhbyB0aG9uZyBkYSBiaSBraG9uZyBpdCBxdWFuLCBodXllbiAiZG9pIiBjaHV5ZW4g ZG9pIGNvbmcgbmFuZyB0aGFuaCANCmNhYyBraHUgZGFuIGN1LCBjYWMgY2FvIG9jIHZhbiBwaG9u Zy4NCg0KVHJvbmcga2hpIGRvLCB0cmVuIHRodWMgdGUsIGNhYyBxdWFuLCBodXllbiBjb24gcmF0 IG5oaWV1IGRhdCB0cm9uZy4gVGFpIHF1YW4gOSwgcGhhbiBsb24gDQpkaWVuIHRpY2ggZGF0IG8g cGh1b25nIFBodW9jIExvbmcgQiBjaGkgY28uLi4gY28gZGFpIG1vYy4gTyBodXllbiBOaGEgQmUs IG1hYyBkdSANCktDTiBIaWVwIFBodW9jIGRhIGRpIHZhbyBob2F0IGRvbmcsIHNvbmcgaGF1IG5o dSBjaGkgY28gZGFuIGN1IHNpbmggc29uZyB0YXAgdHJ1bmcgDQpkb2MgY2FjIHRydWMgZHVvbmcg Tmd1eWVuIFZhbiBUYW8sIHRydWMgZHVvbmcgQmFjIC0gTmFtLi4uLCBwaGFuIGxvbiBjb24gbGFp IGxhIGRhdCANCmhvYW5nLiANCg0KVGF0IG5oaWVuLCBjYWMgcXVhbiwgaHV5ZW4gY3VuZyBjbyBj YWkga2hvLiBEYXQgdHJvbmcsIGNvIGRhaSBtb2Mgbmh1bmcgZGV1IGxhIGRhdC4uLiBkdSANCmFu LCBkYSBwaGFuIGRhIGR1b2MgaG9wIHBoYXAgaG9hLiBUaGVvIGNhYyBxdXkgZGluaCBjdWEgcGhh cCBsdWF0LCB0cm9uZyB0aG9pIGdpYW4gMiAtIDMgDQpuYW0gbmV1IGNodSBkYXUgdHUga2hvbmcg dHJpZW4ga2hhaSBkdSBhbiBtYSBraG9uZyBjbyBseSBkbyBjaGluaCBkYW5nIHRoaSBkdSBhbiBz ZSBiaSB0aHUgaG9pLiANCg0KTmd1eWVuIHRhYyBsYSB0aGUsIG5odW5nIHRyaWVuIGtoYWkgbGFp IGtob25nIGRlIGRhbmcgdmkgZGEgcGhhbiBkdSBhbiBjaGFtIGRldSBjbyBseSANCmRvLi4uIGNo aW5oIGRhbmcoISkuIE1vdCBjYW4gYm8gY3VhIFBob25nIFF1YW4gbHkgZG8gdGhpIHF1YW4gOSB0 YW0gc3U6ICJOaGlldSBraGkgDQpuaGluIGRhdCBibyBob2FuZywgeG90IGxhbSBuaHVuZyBjdW5n IGNoYW5nIGJpZXQgbGFtIHNhbyIuDQoNCkRhbiBzbzogUXVhbiwgaHV5ZW4gbmFvIGN1bmcuLi4g eGluIHRoZW0NCg0KTmd1b2MgbGFpIHZvaSBjaGkgdGlldSB2ZSBkYXQgY29uZyBjb25nLCB2b2kg Y2hpIHRpZXUgdmUgZGFuIHNvLCBvbmcgSG9hbmcgTWluaCBUcmkgY2hvIA0KYmlldCwgaGF1IG5o dSBxdWFuLCBodXllbiBuYW8gY3VuZyB4aW4gdGhlbS4gSXQgdGhpIHhpbiB0YW5nIHRoZW0gMjAl IC0gMzAlLCBuaGlldSB0aGkgDQp0YW5nIHRoZW0gMTAwJSwgY2EgYmlldCBjbyBkaWEgcGh1b25n IHhpbiB0YW5nIHRoZW0gMjAwJS4gQ2FjIGRpYSBwaHVvbmcgeGluIHRoZW0gDQpuaGlldSBuaGF0 IGxhIHF1YW4gOCwgOSwgR28gVmFwLCBCaW5oIFRoYW5oIHZhIGh1eWVuIE5oYSBCZS4uLiANCg0K RGlldSB0cm8gdHJldSBsYSBraGkgVmllbiBRdXkgaG9hY2ggVFBIQ00gdGhhbSBraGFvIHNvIGRh biBjdSBoaWVuIGNvIGN1YSBjYWMgZGlhIA0KcGh1b25nIG5heSB0aG9uZyBxdWEgY28gcXVhbiBx dWFuIGx5IGhvIHRpY2ggdGhpIGNvbiBzbyB0aHVjIHRoYXAgaG9uIG5oaWV1IG11YyAieGluIA0K dGFuZyIgY3VhIGNhYyBkaWEgcGh1b25nLiBWaWVuIFF1eSBob2FjaCBUUEhDTSBjbyBkYXQgdmFu IGRlICJ0YWkgc2FvPyIgZG9pIHZvaSANCm5oaWV1IHF1YW4sIGh1eWVuIHRoaSBkdW9jIHRyYSBs b2kgImRvIGNvbmcgdGhlbSBzbyBkYW4gY3VhIGNhYyBkdSBhbiBkaWEgb2MgZGFuZyBkdW9jIA0K dHJpZW4ga2hhaSB0cmVuIGRpYSBiYW4iLiANCg0KVmkgc2FvIGNhYyBkdSBhbiBkaWEgb2MgbGFp IGNvIG11YyBkYW4gc28gbmh1IHZheT8gTmhpZXUgcXVhbiwgaHV5ZW4ga2hvbmcgdHJhIGxvaSAN CmR1b2MsIG5odW5nIGN1bmcgY28gcXVhbiwgaHV5ZW4gbHkgZ2lhaTogImNobyB4YXkgdGhlbSBu aGlldSBuaGEgbyBuaHUgdmF5IHRoaSBjYWMgDQpjaHUgZGF1IHR1IG1vaSBjbyBsYWksIGRpYSBw aHVvbmcgbW9pIHRodSBodXQgZHVvYyBjYWMgbmhhIGRhdSB0dSIuIFR1eSBuaGllbiwgY2FuIGN1 IA0KbmFvIGRlIHhhYyBkaW5oIGRhdSBsYSBtdWMgY28gdGhlIGhhcCBkYW4gY2FjIG5oYSBkYXUg dHUsIGtob25nIGRpYSBwaHVvbmcgbmFvIHRyYSBsb2kgDQpkdW9jLiANCg0KTGFtIHBoZXAgY29u ZyBvIGRheSBraG9uZyBzYWksIG9uZyBIb2FuZyBNaW5oIFRyaSBuaGFuIHhldCwgc29uZyBkZSBx dXlldCBkaW5oIG11YyANCmRhbiBzbyBraG9uZyB0aGUgY2hpIGxhbSBtb3QgcGhlcCB0aW5oIGRv biBnaWFuIG5odSB0aGUuIFRoZW8ga2llbiB0cnVjIHN1IE5ndXllbiANClRydW9uZyBMdXUsIFBo byBDaHUgdGljaCBUaHVvbmcgdHJ1YyBIb2kgS2llbiB0cnVjIHN1IFRQSENNLCBkbyB0aGkgcGhh dCB0cmllbiBkZW4gDQptdWMgbmFvIHZvaSBkYW4gc28gYmFvIG5oaWV1IHBoYWkgY2FuIGN1IGNo dSB5ZXUgdmFvIGRpZXUga2llbiB0dSBuaGllbiwgeGEgaG9pIHZhIG1vaSANCmxpZW4gaGUgdm9p IGNhYyBkaWEgcGh1b25nIGtoYWMgY3VhIHF1YW4sIGh1eWVuIGRvLiBWaWVjIG5heSB0aHVvYyB0 cmFjaCBuaGllbSBjdWEgDQpjaGluaCBxdXllbiBkaWEgcGh1b25nLCBraG9uZyB0aGUgY3VhIGNh YyBuaGEgZGF1IHR1Lg0KDQpUcm9uZyBjdW9jIGhvcCBraWVtIGRpZW0gdGllbiBkbyBsYXAgcXV5 IGhvYWNoIHRyZW4gZGlhIGJhbiBUUEhDTSwgUGhvIENodSB0aWNoIA0KVGh1b25nIHRydWMgVUJO RCBUUEhDTSBOZ3V5ZW4gVGhhbmggVGFpIGRhIGN1b25nIHF1eWV0OiAiVmllYyB0YW5nIGRhbiBz byBwaGFpIA0KdHVvbmcgdW5nIHZvaSBraGEgbmFuZyBjdW5nIHVuZyBjdWEgY2FjIGNvbmcgdHJp bmggY29uZyBjb25nIi4gVHV5IG5oaWVuLCBsYW0gc2FvIA0KdGh1YyBoaWVuIGR1b2MgeWV1IGNh dSBuYXkgbGEgYmFpIHRvYW4ga2hvIGNobyBjYWMgZGlhIHBodW9uZyB2aSBkYXQgZGFpIGNvIGhh biwgY2FjIGR1IA0KYW4gZGlhIG9jIGRhIHBoYW4gZGV1IGRhIGR1b2MgY2FwIHBoZXAuICJDaHVu ZyB0b2kgZGFuZyBiaSByaSIgLSBuaGlldSBjYW4gYm8gZGlhIA0KcGh1b25nIHRoYW4gdGhvIG5o dSB2YXkuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOC8y MDEwMDcwNjE1MDIwMC5hc3B4IDA2LzA3LzIwMTAgMTU6NTIgDQoNClRQIEhDTTogUXV5IGhvYWNo IG5oYSBjYW8gdGFuZyB0YWkga2h1IHZ1YyB0cnVuZyB0YW0gVFAuSENNIC0gIk5odW5nIGNheSB0 YW0gY2FtIGNoaSBjaGl0IHRyZW4gY2hpZWMgYmFuaCIgDQoNCkRpZW4gdGljaCBkYXQgY2hvIGdp YW8gdGhvbmcgdGFpIFRQLkhDTSBjaGkgY28uLi4gNSUgLSBRdXkgaG9hY2gga2hvbmcgY28gZHUg Y2hvIGNobyBnaWFvIHRob25nIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vYnZraC8yMDEw MDgvUmFvLXJhby10by1EaWVuLWx1Yy1CaW5oLUNoYW5oLVRQSENNLW1vYy10dWkta2hhY2gtOTMw ODkwLyAxNjoxMiwgMjIvMDgvMjAxMCAoR01UKzcpDQoNClRQLkhDTTogTmd1b2kgZGFuIHJhbyBy YW8gdG8gRGllbiBsdWMgQmluaCBDaGFuaCBtb2MgdHVpIGtoYWNoDQoNCi0gU2F1IHBoYW4gYW5o IGN1YSAxIGhvIGRhbiB0cmVuIFZpZXROYW1OZXQgdmUgdmllYyBub3AgcGhhdCBkbyBkb25nIHRp ZW4gZGllbiBtdW9uLCANCm5oaWV1IGhvIGRhbiBodXllbiBCaW5oIENoYW5oIGFvIGFvIHRvIGJp IG5oYSBkaWVuICJtb2MgdHVpIi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTA0OC8yMDEwMTEyODAxMTQxMy5hc3B4IE1pbmggTmFtIC0gQW5oIExpbmggTGUg TmdhIDI4LzExLzIwMTAgMToxNCANCg0KVFAgSENNOiBCbyB0YXkgdm9pIGNobyB0dSBwaGF0IC0g QmF0IGx1YyB0dSB0aG9pIG9uZyBUcnVvbmcgVGFuIFNhbmcgbGFtIHF1YW4gbHkgICAgIA0KICAN CkNobyB0dSBwaGF0IG5hbSBkb2MgaGFpIGJlbiBkdW9uZyBMYW0gU29uLCBQLjIsIFEuVGFuIEJp bmgsIFRQLkhDTSAtIEFuaDogTWluaCBOYW0NCg0KVUJORCBUUC5IQ00gdnVhIHlldSBjYXUgY2Fj IHF1YW4sIGh1eWVuIGtob25nIGRlIHBoYXQgc2luaCBjaG8gdHUgcGhhdCB0cmVuIGRpYSANCmJh bi4gVGhlIG5odW5nLCB0aHVjIHRlIGNobyB0aGF5IHZpZWMgZ2lhaSB0b2EgY2FjIGNobyB0dSBw aGF0IG8gZG8gdGhpIGxvbiBuaGF0IG51b2Mgbmh1ICJiYXQgY29jIGJvIGRpYSIuLi4gDQoNCkNo aSBkYW8gbmF5IGtob25nIHBoYWkgbW9pLiBDYWNoIGRheSAxMCBuYW0sIHRydW9jIHN1IG5vIHJv IGNobyB0dSBwaGF0LCBVQk5EIA0KVFAuSENNIGRhIG5oaWV1IGxhbiBjaGkgZGFvIHZhIGRlIHJh IGNhYyBiaWVuIHBoYXAgbmhhbSBjaGFuIGNoaW5oIHRpbmggdHJhbmcgbmF5LiBDdSANCm1vaSBs YW4gY2hpIGRhbywgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGxhaSB0byBjaHVjIG5oaWV1IGRvdCBy YSBxdWFuIGdpYWkgdG9hLCBzb25nIHNhdSBkbyBkYXUgdmFuIHZhbyBkYXkuIA0KDQpUaGVvIFNv IENvbmcgdGh1b25nIFRQLkhDTSwgaGllbiB0cmVuIGRpYSBiYW4gVFAgdmFuIGNvbiAxNzQgY2hv IC0ga2h1IHZ1YyBtdWEgDQpiYW4gdHUgcGhhdCwgdGFwIHRydW5nIG5oaWV1IG8gY2FjIHF1YW4s IGh1eWVuIGNvIEtDWC1LQ04sIGRvbmcgZGFuIG5oYXAgY3UsIG5odSANCnF1YW4gNywgOSwgVGFu IEJpbmgsIFRhbiBQaHUsIEJpbmggVGFuLCBHbyBWYXA7IGh1eWVuIEJpbmggQ2hhbmguLi4gDQoN CkNodW5nIHRvaSBkYSBuaGlldSBsYW4ga2llbiBuZ2hpIHZvaSBjaGluaCBxdXllbiBjYW4ga2ll biBxdXlldCBkZXAgY2hvIHR1IHBoYXQsIG5odW5nIA0KaGF1IG5odSBibyB0YXkhIC0gT25nIEh1 eW5oIE1pbmggSGFpLCBUcnVvbmcgYmFuIFF1YW4gbHkgY2hvIEJhIERpbmgsIFEuOA0KDQpOZ29h aSBkb25nLCB0cm9uZyB2YW5nDQoNClRyb25nIHZhaSBuZ3VvaSBsYW8gZG9uZyBuZ2hlbyBjYW4g dGltIGNobyBtdWEgYmFuIHRyYWkgY2F5LCBjaHVuZyB0b2kgZGVuIGNobyAiY2hheSIgDQpvIGhh aSBiZW4gbGUgZHVvbmcgTGFtIFNvbiwgdGh1b2MgUC4yLCBRLlRhbiBCaW5oLiBCYSBLLiwgYmFu IGNhIG8gY2hvIG5heSwgY2hvIGJpZXQgDQpjaG8gaG9hdCBkb25nIHR1IHNhbmcgc29tIGRlbiAx MCBnaW8sIGNodSB5ZXUgcGh1YyB2dSBjaG8gY3UgZGFuIHNvbmcgbyBjYWMga2h1IHZ1YyANCmdh biBkby4gIkVtIGN1IGJheSBiYW4gdGhvYWkgbWFpLCBraG9pIGRvbmcgdGh1ZSBnaSBjYSwga2hp IG5hbyBjb25nIGFuIHZhIGRvIHRoaSB0b2kgDQp0aGkuLi4gYm8gY2hheSB0aG9pISIsIGJhIEsu IGNoaSBkYW4uDQoNClRhaSBtb3QgY2hvIHR1IHBoYXQga2hhYyB0cmVuIGR1b25nIEJhIERpbmgs IFAuMTAsIFEuOCAoZG9pIGRpZW4gY2hvIEJhIERpbmgpLCBzYXUgbW90IA0KaG9pIGtlIGtobyB2 ZSB0aW0ga2Ugc2luaCBuaGFpLCBtb3Qgc28gInRpZXUgdGh1b25nIiBiYW4gZGFvIHRhaSBkYXkg c2FuIHNhbmcgY2hpYSBzZSANCmtpbmggbmdoaWVtIGNobyBjaHVuZyB0b2kuIE1vdCBjaGkgYmFu IHRoaXQgaGVvIGNoaSBkYW46ICJFbSBtdW9uIHJhIGJhbiBoYT8gRGUgb3QhIA0KDQpDdSBraWVt IGNhaSB4ZSBkYXksIGNoYXQgaGFuZyBsZW4gZG8gYmFuIGxhIGx1dSBkb25nIG5oYXQiLiAiQ2hp IGJhbiBvIGRheSBjbyB0aHVvbmcgYmkgDQpkdW9pIGtob25nPyIsIGNodW5nIHRvaSB0byBtby4g Q2hpIG5heSBsaWVuIHRyYW4gYW46ICJUaGluaCB0aG9hbmcgY28gZG90IHRydXkgcXVldCB0aG9p LCANCnF1YSBkb3QgdGhpIG1pbmggbGFpIGJhbiB0aWVwICghPykiLiANCg0KTW90IHRpZXUgdGh1 b25nIGtoYWMgbWFjaDogIk5ldSBtdW9uIGFuIHRvYW4gdGhpIG5lbiB0aHVlIGNobyBjdWEgY2Fj IGhvIGRhbiBvIG1hdCANCnRpZW4gZHVvbmcgbmF5LCBnaWEgZGFvIGRvbmcgdHUgMTAuMDAwIC0g MzAuMDAwIGRvbmcvbmdheS4gRGUga2hpIGNvbmcgYW4sIHRyYXQgdHUgdG9pIHRoaSANCmN1IHF1 YW5nIGhhbmcgdmFvIG5oYSwga2hvaSBzbyBiaSBob3QhIi4gDQoNClRyb25nIGtoaSBjaG8gImR1 b2kiIHBoaWEgdHJ1b2MgbWF0IHRpZW4gZHVvbmcgYnVvbiBiYW4gc29pIGRvbmcsIHRhcCBuYXAg dHUgc2FuZyBzb20gDQpkZW4gdHJ1YSBtb2kgbmdheSwgdGhpIGJlbiB0cm9uZyBjaG8gQmEgRGlu aCBjYW5oIGJ1b24gYmFuIHRodWEgdGhvdC4gVGluaCB0cmFuZyBuZ29haSANCmRvbmcgdHJvbmcg dmFuZyBjdW5nIGRpZW4gcmEgdGFpIG5oaWV1IGNobyB0cmVuIGRpYSBiYW4gVFAsIG5odTogVGFu IFNvbiBOaGF0LCBWYW4gDQpUaGFuaCwgTmd1eWVuIERpbmggQ2hpZXUuLi4gTmV1IHRyb25nIGNh YyBuaGEgbG9uZywgbmhpZXUgdGlldSB0aHVvbmcgY2hpIGhvcCBjaG8gdmFvIA0KYnVvaSBzYW5n IHRoaSBjYWMgY29uIGR1b25nIG8geHVuZyBxdWFuaCBjaG8gbmhvbiBuaGlwIHR1IHNhbmcgZGVu IHRvaSwgdnVhIG5oZWNoIG5oYWMgDQptYXQgdmUgc2luaCwgdnVhIGdheSB0YWMgbmdoZW4gZ2lh byB0aG9uZywgbmd1b2kgZGFuIHNvbmcgbyBraHUgdnVjIG5heSBjaGkgY29uIGJpZXQga2V1IHRy b2kuIA0KDQpYZSBjbyBwaGFpIHRyYW5oIHR1aSB0dWkgY2hvISANCg0KRGFuZyBsbyBuZ2FpIG5o YXQgbGEgbmh1bmcgY2hvIHR1IHBoYXQgaG9hdCBkb25nIGRvYyB0aGVvIGNhYyB0dXllbiBxdW9j IGxvLCBjaHUgeWV1IA0KcGh1YyB2dSBjaG8gY29uZyBuaGFuIHRhaSBjYWMgS0NOLCBLQ1gsIG5o YXQgbGEgdmFvIGdpbyB0YW4gY2EuDQoNCkNodW5nIHRvaSBjbyBtYXQgdGFpIGNobyB0dSBwaGF0 IHRyZW4gWGEgbG8gRGFpIEhhbiB0cnVvYyBtYXQgY3VtIGtobyBTYWNvbWJhbmsgDQoodGh1b2Mg UC5CaW5oIFRyaSBEb25nIEIsIFEuQmluaCBUYW4pLiBOaGluIGNhbmggdHVvbmcgbmd1b2kgYmFu IGJheSBoYW5nIGhvYSBidW9uIA0KYmFuIGtlbyBkYWkgZ2FuIGNhIGNheSBzbyB2YSBsYW4gcmEg bnVhIGxvbmcgZHVvbmcsIG5ndW9pIG11YSB2byB0dSBkYW8gZHVvaSBsb25nIA0KZHVvbmcsIGNo dW5nIHRvaSBraG9uZyBraG9pIHRob3QgdGltIGtoaSB0aGF5IGNhbmggY2FjIGxvYWkgeGUgZ2Fu IG1heSwgbyB0byBuaGlldSBsYW4gDQpuaGF5IGRlbiwgYmFtIGNvaSBpbmggb2kga2hpIGRpIHF1 YSBjaG8gZG9uZyBkdWMgbmd1b2kuIFNhdSBraGkgbmUgbW90IGNoaWVjIHhlIGJhIGdhYyANCmNo byBkYXkgYmFwIGNhaSBkYXUgY2hpbmggaW5oIGdpdWEgeGEgbG8sIHRhaSB4ZSBjaGllYyB4ZSB0 YWkgbmhvYWkgbmd1b2kgcmEgY2FiaW4gaGV0IGxvbjogDQoiTXVvbiBjaGV0IGhhPyIuIEJvIG1h YyBuZ29haSB0YWkgbmh1bmcgdGllbmcgbGEgaGV0IGN1YSBjYW5oIHRhaSB4ZSwgY2hvIHZhbiBo b2F0IGRvbmcgDQpuaG9uIG5oaXAuIENodW5nIHRvaSBub2kgdmUgbmh1IGR1YSB2b2kgbmd1b2kg ZGFuIG9uZyBkYXkgeGUgYmEgZ2FjIGJhbiBiYXAgY2FpOiAiWGUgDQpjaGF5IGFvIGFvIHZheSBt YSBhbmggdmFuIGJhbiB0aW5oIGJvLiBBbmgga2hvbmcgc28gY2hldCBhPyIuIE5ndW9pIGRhbiBv bmcgY3VvaSBraGk6IA0KIlhlIGNvIHBoYWkgdHJhbmggdHVpIHR1aSBjaG8uIFF1ZW4gcm9pIGNo dSBvaSEiLiANCg0KVGhlbyBuZ3VvaSBkYW4gZGlhIHBodW9uZywgY2hvIHR1IHBoYXQgZGEgZ2F5 IG5lbiBuaGlldSB2dSB2YSBxdWV0LCB0YWkgbmFuIGdpYW8gdGhvbmcgDQptYSBuYW4gbmhhbiBj aHUgeWV1IGxhIGNvbmcgbmhhbi4gSG9pIHRoYW5nIDUuMjAxMCwgc2F1IGdpbyB0YW4gY2EsIG1v dCBudSBjb25nIG5oYW4gDQp0cm9uZyBraGkgZGkgY2hvIHR1IHBoYXQgbmdheSBkdW9pIGNoYW4g Y2F1IHZ1b3QgTGluaCBYdWFuIChUaHUgRHVjKSBiaSBjaGllYyB4ZSB0YWkgDQpjYW4gbmF0IGNo YW4uIERvIGxhIGNodWEga2UgY2FjIHZ1IHZhIHF1ZXQsIGdheSBrZXQgeGUga2VvIGRhaSBkbyBj aG8gdHUgcGhhdCBnYXkgcmEgY2h1YSANCmR1b2MgY28gcXVhbiBjaHVjIG5hbmcgdGhvbmcga2Ug aGV0LiANCg0KQ2hpbmggcXV5ZW4gYm8gdGF5DQoNClRyYW8gZG9pIHZvaSBjaHVuZyB0b2kgdmUg dmllYyBnaWFpIHRvYSBjaG8gdHUgcGhhdCB0cmVuIGRpYSBiYW4sIG5odW5nIG5ndW9pIGNvIHRy YWNoIA0KbmhpZW0gbyBjYWMgcXVhbiwgaHV5ZW4gZGV1IGxhYyBkYXUgbmdhbyBuZ2FuLCBkbyB0 aHVhIGRvIGtobyBraGFuIHZlIG5ndW9uIGtpbmggcGhpIA0KdmEgbmhhbiBsdWMgbmVuIGNvbmcg dGFjIGdpYWkgdG9hIGNhYyBjaG8gImNoYXkiIHZhbiBjb24gaGFuIGNoZS4gQ2hhbmcgaGFuLCBj b25nIHRhYyANCmR1eSB0cmkgdHJhdCB0dSBkbyB0aGkgdmEgZ2lhaSB0b2EgY2hvIHR1IHBoYXQg Y2hpIGRpZW4gcmEgdGhlbyB0dW5nIGRvdCBuZW4geSB0aHVjIGNoYXAgaGFuaCANCmN1YSBjYWMg aG8ga2luaCBkb2FuaCBidW9uIGJhbiBjaHVhIGNhbyB2YSB4dWF0IGhpZW4gZGF1IGhpZXUgImxv biBsdWF0Ii4gDQoNCk9uZyBUcmFuIFR1b25nIFRodXksIFBobyBjaHUgdGljaCBVQk5EIFAuMiwg US5UYW4gQmluaCwgbmhpbiBuaGFuIGhpZW4gdHJlbiBkaWEgYmFuIA0KcGh1b25nICJub25nIiBu aGF0IGxhIGNobyBhbiB0aGVvIGNobyBQaGFtIFZhbiBIYWksIGNobyB0dSBwaGF0IGRvYyBoYWkg YmVuIGR1b25nIA0KTGFtIFNvbi4uLiAiQ2hhbmcgbGUsIHBodW9uZyBibyB0YXkgdm9pIGNobyB0 dSBwaGF0PyIsIGNodW5nIHRvaSBob2kuIE9uZyBUaHV5IHRodWEgDQpuaGFuIGR1IHBodW9uZyBk YXkgZHVvaSBsaWVuIHR1YyBuaHVuZyBraG9uZyBoaWV1IHF1YSBkbyBoYW5nIGhvYSB0aWNoIHRo dSBkdW9jIGNvIA0KZ2lhIHRyaSB0aGFwLCB0cm9uZyBraGkgbXVjIHBoYXQgdGhlbyBxdXkgZGlu aCBtb2kgKE5naGkgZGluaCAzNCkga2hvIGtoYSB0aGkgdmkgcXVhIGNhbywgDQpuZW4gbmh1bmcg bmd1b2kgYnVvbiBnYW5oIGJhbiBidW5nIGtobyBkb25nIHBoYXQgbm9pISANCg0KT25nIEh1eW5o IE1pbmggSGFpLCBUcnVvbmcgYmFuIHF1YW4gbHkgY2hvIEJhIERpbmgsIGJ1YyB4dWMgbm9pOiAi Q2h1bmcgdG9pIGRhIA0KbmhpZXUgbGFuIGtpZW4gbmdoaSB2b2kgY2hpbmggcXV5ZW4gY2FuIGtp ZW4gcXV5ZXQgZGVwIGNobyB0dSBwaGF0LCBuaHVuZyBoYXUgbmh1IGJvIHRheSEiLiANCg0KRHUg YmlldCByYW5nLCBkYW5nIHNhdSBjYWMgY2hvIHR1IHBoYXQgbGEgY3VvYyBzb25nIGN1YSBoYW5n IG5nYW4gbmd1b2kgdHUgbmh1bmcgbm9pIA0Ka2hhYyB2ZSBUUCBtdXUgc2luaC4uLiBUaGUgbmh1 bmcsIG1hdCB0cmFpIGN1YSBjaG8gdHUgcGhhdCBkYSB0cm8gdGhhbmggbHVjIGNhbiBsb24gDQp0 cm9uZyBxdWEgdHJpbmggeGF5IGR1bmcgVFAgaHVvbmcgZGVuIG1vdCBkbyB0aGkgdmFuIG1pbmgs IGhpZW4gZGFpLiANCg0KRGllbSBzYW5nDQoNClRyb25nIGtoaSBtb3Qgc28gZGlhIHBodW9uZyBi byB0YXkgdm9pIGNobyB0dSBwaGF0IHRoaSB0YWkgUS4xMiBkYSBsYXAgQmFuIENoaSBkYW8gZGVw IA0KY2hvIHR1IHBoYXQgdmEgYmFuIG5heSBkYSBkZXAgZHVvYyBtb3Qgc28gY2hvLiBPbmcgTmd1 eWVuIFR1b25nIE1pbmgsIFBobyBjaHUgdGljaCANClVCTkQgUS4xMiwgbmhpbiBuaGFuOiAiQ2h1 bmcgdG9pIHZ1YSBjdW9uZyBxdXlldCB2dWEgaHVvbmcgZGFuIGNobyBiYSBjb24gZGkgeGluIA0K Z2lheSBwaGVwIGtpbmggZG9hbmgsIG5odW5nIG1hdCBoYW5nIGR1b2MgYmFuIHZhIGtob25nIGR1 b2MgYmFuLCB0cnVvYyBudWEgdGhhbmcuIA0KU2F1IGRvIHF1YW4gc2UgbWFuaCB0YXkgeHUgbHkg bmh1bmcgdHJ1b25nIGhvcCBraG9uZyBjaGFwIGhhbmguIERheSBsYSB2aWVjIG5oYXkgDQpjYW0g dmkgZHVuZyBjaGFtIGRlbiBkb2kgc29uZyBjdWEgYmEgY29uIGJvaSBjbyBuaHVuZyBnaWEgZGlu aCBoYW5nIHRoYW5nIHRvbiB0aGF0IHR1IA0KMTAgZGVuIDI1IHRyaWV1IGRvbmcgdGllbiBjaG8g dGh1ZSBtYXQgYmFuZywgdGh1ZSB2aWEgaGUgdHJhaSBwaGVwIG5lbiBiYSBjb24gc2Uga2hvbmcg DQp1bmcgaG8gY2h1IHRydW9uZyBjdWEgcXVhbi4gTyBkaWEgYmFuIFEuMTIgY28gNSBjaG8gdHUg cGhhdCBuaHVjIG5ob2kgbmhhdCBjYW4geG9hIHNvIA0KbmdheSBsYSBjaG8gdHJlbiBkdW9uZyBU Q0gyMSAoUC5UYW4gQ2hhbmggSGllcCksIGNobyBvIGdpYW8gbG8gVnVvbiBMYWkgdm9pIFFMMUEg DQooUC5BbiBQaHUgRG9uZyksIGNobyBHaWFuIERhbiAoUC5IaWVwIFRoYW5oKSwgY2hvIHRyZW4g ZHVvbmcgVHJ1b25nIENoaW5oIHZhIA0KZHVvbmcgTmd1eWVuIFZhbiBRdWEgKFAuRG9uZyBIdW5n IFRodWFuIHZhIFRhbiBIdW5nIFRodWFuKS4gRGVuIG5heSwgY2h1bmcgdG9pIA0KZGEgZGVwIGR1 dCBkaWVtIGhhaSBjaG8gdHUgcGhhdCB0cmVuIGR1b25nIFRDSDIxIHZhIGdpYW8gbG8gVnVvbiBM YWkgLSBRTDFBLiBUcm9uZyANCnRob2kgZ2lhbiB0b2ksIGNodW5nIHRvaSBraWVuIHF1eWV0IGRl cCBjYWMgY2hvIHR1IHBoYXQgY29uIGxhaSIuIA0KDQpodHRwOi8vd3d3NzcudmlldG5hbW5ldC52 bi92bi94YS1ob2kvMTEzMC9jaHV5ZW4tbGEtLWNhcC1waGVwLWNoby1uaGEtbWF5LS1tYS0tLS5o dG1sIFRydW5nIFRoYW5oIDI2LzExLzIwMTAgMDE6MTM6MjIgUE0gKEdNVCs3KQ0KDQpUUCBIQ006 IENodXllbiBsYSAtIENhcCBwaGVwIGNobyBuaGEgbWF5ICJtYSIgPyANCg0KVGhlbyBnaWF5IHBo ZXAgZG8gU28gVE4gliBNVCBUUC5IQ00gdnVhIGNhcCwgbmhhIG1heSB4dSBseSBjaGF0IHRoYWkg Y3VhIGNvbmcgdHkgDQpUTkhIIE1UViBIYSBMYW4gbmFtIG8gc28gMjY3LzQgTmd1eWVuIEJpbmgs IHhhIFBodSBYdWFuLCBodXllbiBOaGEgQmUsIA0KVFAuSENNLiBUdXkgbmhpZW4sIHRoZW8geGFj IG5oYW4gY3VhIFBob25nIFROIC0gTVQgaHV5ZW4gTmhhIEJlLCB0YWkgZGlhIGNoaSB0cmVuIA0K Y2hpIGNvIHh1b25nIGNoZSBiaWVuIGRhdSBjYW4sIGRhIHRvbiB0YWkgdmEgaG9hdCBkb25nIHR1 IG5oaWV1IG5hbSBuYXkuICANCg0KRGlhIHBodW9uZyBraG9uZyBiaWV0IA0KDQpHYW4gZGF5LCBu aGlldSBkb2FuaCBuZ2hpZXAgdHJlbiBkaWEgYmFuIFRQLkhDTSBib25nIG5oYW4gZHVvYyBob3Ag ZG9uZyAibW9pIiANCmNodXllbiBnaWFvIGNoYXQgdGhhaSBuZ3V5IGhhaSAoQ1ROSCkgY2hvIGNv bmcgdHkgVE5ISCBtb3QgdGhhbmggdmllbiBkaWNoIHZ1IG1vaSANCnRydW9uZyB2YSB4dSBseSBj aGF0IHRoYWkgSGEgTGFuIChUTkhIIE1UViBIYSBMYW4pIGRlIHh1IGx5LiANCg0KIk5naGUgdGVu IGNvbmcgdHkgbmF5IGxhIHF1YSBuZW4gY2h1bmcgdG9pIG5nbyBuZ28uIEhvaSB0aGFtIHRoaSBi aWV0LCBkaWEgY2hpIG5oYSBtYXkgDQpjdWEgaG8gbGFpIHRydW5nIHZvaSBtb3QgZG9uIHZpIGNo aSBjaHV5ZW4geHUgbHkgZGF1IGNhbi4gQ2hhbmcgaGlldSBjaHV5ZW4gbmF5IGxhIHRoZSANCm5h by4uLiAiLCBjaHUgbW90IGRvYW5oIG5naGllcCwgcGhhbiBhbmguIA0KDQooQW5oOiBOaGEgbWF5 IGN1YSBjb25nIHR5IFROSEggTVRWIEhhIExhbiB0aHVjIGNoYXQgbGEgeHVvbmcgY2hlIGJpZW4g ZGF1IGNhbiANCmN1YSBDb25nIHR5IFBldHJvbGltZXguIEFuaDogVHJ1bmcgVGhhbmguKQ0KDQpU aGVvIGdpYXkgcGhlcCBkbyBTbyBUTi1NVCBUUC5IQ00gY2FwLCBuaGEgbWF5IHh1IGx5IENUTkgg Y3VhIGNvbmcgdHkgVE5ISCANCk1UViBIYSBMYW4gbmFtIG8gc28gMjY3LzQgZHVvbmcgTmd1eWVu IEJpbmgsIHhhIFBodSBYdWFuLCBodXllbiBOaGEgQmUsIFRQLkhDTS4gDQoNClR1eSBuaGllbiwg c2FuZyAyMy8xMSwgY2h1bmcgdG9pIGN1bmcgY2FuIGJvIG1vaSB0cnVvbmcgeGEgUGh1IFh1YW4g dmEgaHV5ZW4gTmhhIEJlIA0KdmEgZGVuIGRpYSBjaGkgbm9pIHRyZW4gZGUgeGFjIG1pbmggbGFp IGtob25nIHRoYXkgbmhhIHh1IGx5IGNoYXQgdGhhaSBjdWEgQ29uZyB0eSBUTkhIIA0KTVRWIEhh IExhbiBkYXUuIA0KDQpUaGVvIHhhYyBuaGFuIGN1YSBQaG9uZyBUTiAtIE1UIGh1eWVuIE5oYSBC ZSwgdGFpIGRpYSBjaGkgdHJlbiBjaGkgY28geHVvbmcgY2hlIGJpZW4gDQpkYXUgY2FuIGN1YSBD b25nIHR5IFROSEggTW90IHRoYW5oIHZpZW4gVGh1b25nIG1haSB2YSBEb25nIHRhdSBQZXRyb2xp bWV4IGRhIHRvbiB0YWkgdHUgbmhpZXUgbmFtIG5heS4gDQoNCk5oYSBtYXkgbyBkYXU/IA0KDQpU cmEgbG9pIGNhdSBob2kgY3VhIFBWIFZpZXROYW1OZXQsIHRhaSBzYW8gdGFpIGRpYSBjaGkgZHVv YyBjYXAgcGhlcCBsYWkga2hvbmcgdGhheSBjbyANCm5oYSBtYXkgY3VhIENvbmcgdHkgVE5ISCBN VFYgSGEgTGFuLCBvbmcgTmd1eWVuIFRydW5nIFZpZXQsIFRydW9uZyBwaG9uZyBRdWFuIA0KbHkg Y2hhdCB0aGFpIHJhbiwgU28gVE4gLSBNVCBUUC5IQ00sIG5vaTogIkRpYSBjaGkgbmhhIG1heSBj dWEgY29uZyB0eSBIYSBMYW4gdHJ1bmcgDQp2b2kgeHVvbmcgY2hlIGJpZW4gZGF1IGNhbiBjdWEg Y29uZyB0eSBQZXRyb2xpbWV4LiBOZ3V5ZW4gbmhhbiBsYSBkbyAyIGRvbiB2aSBuYXkgbGllbiAN CmRvYW5oIHZvaSBuaGF1IGRlIGhvYXQgZG9uZy4gWGV0IHRoYXkgdmFuIGRlIG5heSBwaGFwIGx1 YXQga2hvbmcgY2FtIG5lbiBjaHVuZyB0b2kgDQpkb25nIHkgY2FwIHBoZXAiLiANCg0KS2hpIGR1 b2MgaG9pLCB0YWkgc2FvIGtoaSBjYXAgcGhlcCBjaG8gbmhhIG1heSBjdWEgY29uZyB0eSBUTkhI IE1UViBIYSBMYW4sIFNvIGxhaSANCmtob25nIHlldSBjYXUgZGFuaCBnaWEgdGFjIGRvbmcgbW9p IHRydW9uZyB2YSB0aG9uZyBiYW8gY2hvIGRpYSBwaHVvbmcgYmlldCBkZSBnaWFtIA0Kc2F0Pywg b25nIFZpZXQgbm9pOiAgIlZpIG5oYSBtYXkgY3VhIGNvbmcgdHkgVE5ISCBNVFYgSGEgTGFuIGNo aSBob2F0IGRvbmcgZHVhIHRyZW4gDQpsbyBkb3QgLSB4dSBseSBjaGF0IHRoYWkgY3VhIENvbmcg dHkgUGV0cm9saW1leC4gTG8gZG90IG5heSBkYSBkdW9jIGRhbmggZ2lhIHRhYyBkb25nIA0KbW9p IHRydW9uZyByb2kgbmVuIGtob25nIGNhbiBkYW5oIGdpYSB0YWMgZG9uZyBtb2kgdHJ1b25nIGJv IHN1bmciLiANCg0KKEFuaDogTmhhIG1heSB4dSBseSBjaGF0IHRoYWkgY3VhIGNvbmcgdHkgVE5I SCBNVFYgSGEgTGFuIG5hbSBzYXQgYm8gc29uZyBuaHVuZyANCmxhaSBraG9uZyBkYW5oIGdpYSB0 YWMgZG9uZyBtb2kgdHJ1b25nLiBhbmg6IFRydW5nIFRoYW5oKQ0KDQpUdXkgbmhpZW4sIHRoZW8g dGltIGhpZXUgY3VhIFZpZXROYW1OZXQsIHRydW9jIGRheSwgQ29uZyB0eSBQZXRyb2xpbWV4IGto b25nIHRodSBnb20gDQpDVE5IIGN1YSBjYWMgZG9uIHZpIGtoYWMgdmUgeHUgbHksIGNvbiBjb25n IHR5IFROSEggTVRWIEhhIExhbiwgc2F1IGtoaSBkdW9jIHNvIA0KY2FwIHBoZXAgZGEgdGh1YyBo aWVuIG5oaWV1IGhvcCBkb25nIHRodSBnb20gQ1ROSC4gVmUgcXVpIG1vIGhvYXQgZG9uZywgaGFp IGRvbiB2aSANCm5heSBkYSBraGFjIG5oYXUuIA0KDQpUaGVvIHF1aSBkaW5oLCBuZXUgY28gc3Ug dGhheSBkb2kgdmUgcXVpIG1vIGhvYXQgZG9uZyB0aGkgYmF0IGJ1b2MgcGhhaSBkYW5oIGdpYSB0 YWMgDQpkb25nIG1vaSB0cnVvbmcuIFZheSB0YWkgc2FvIHNvIFROLU1UIGxhaSBraG9uZyB5ZXUg Y2F1IGRhbmggZ2lhIHRhYyBkb25nIG1vaSB0cnVvbmcsIA0KdHJ1b2Mga2hpIGNhcCBwaGVwIGNo byBuaGEgbWF5IGN1YSBjb25nIHR5IEhhIExhbiBob2F0IGRvbmc/IA0KDQpUcmEgbG9pIGNhdSBo b2kgbmF5LCBvbmcgVmlldCBjaG8gaGF5OiAiSGllbiB0YWkgY2h1bmcgdG9pIHlldSBjYXUgbmhh IG1heSBjdWEgQ29uZyB0eSANCkhhIExhbiBjaGkgZHVvYyB0aHUgZ29tIGNoYXQgdGhhaSBkYW0g YmFvIHh1IGx5IHRoZW8gY29uZyBzdWF0IGN1YSBuaGEgbWF5IGN1LCBraG9hbmcgDQoxIHRhbi9u Z2F5LiBTYXUgNiB0aGFuZywgY2h1bmcgdG9pIHNlIGtpZW0gdHJhLCBuZXUgY29uZyBzdWF0IHRh bmcgbGVuIHRoaSBzZSB5ZXUgY2F1IGRhbmggDQpnaWEgdGFjIGRvbmcgbW9pIHRydW9uZyIuIA0K DQpDaHVuZyB0b2kgbGllbiBoZSB2b2kgUGhvbmcgVE4tTVQgaHV5ZW4gTmhhIEJlLCBuaG8geGFj IG1pbmggdGhvbmcgdGluIHR1IGtoaSBkdW9jIA0KY2FwIHBoZXAgZGVuIG5heSwgQ1ROSCBkdW9j IHRodSBnb20gdmUgbmhhIG1heSBjdWEgY29uZyB0eSBUTkhIIE1UViBIYSBMYW4gDQpiYW8gbmhp ZXU/IFZpZWMgeHUgbHkgY28gZGFtIGJhbyBjYWMgcXVpIGRpbmggdmUgbW9pIHRydW9uZyBoYXkg a2hvbmc/IFR1eSBuaGllbiwgDQp0aGVvIGJhIE5ndXllbiBUaGkgSG9uZyBRdXllbiwgUGhvIHBo b25nIFROIC0gTVQgaHV5ZW4gTmhhIEJlLCBkbyBraG9uZyBuaGFuIA0KZHVvYyB0aG9uZyBiYW8g Y3VhIFNvIG5lbiBodXllbiBraG9uZyBoZSBiaWV0IHRyZW4gZGlhIGJhbiBjbyBuaGEgbWF5IHh1 IGx5IGNoYXQgdGhhaSANCmN1YSBjb25nIHR5IFROSEggTVRWIEhhIExhbiIsIA0KDQpCYSBRdXll biBjaG8gYmlldCwgdHJvbmcgdHVhbiBzYXUsIHBob25nIFROLU1UIGh1eWVuIE5oYSBCZSBzZSBr aWVtIHRyYSBobyBzbyBwaGFwIA0KbHkgY3VuZyBuaHUgaG9hdCBkb25nIHRodWMgdGUgbmhhIG1h eSB4dSBseSBDVE5IIGN1YSBDb25nIHR5IFROSEggTVRWIEhhIExhbiBkZSANCmxhbSBybyBuaHVu ZyB2YW4gZGUgVmlldE5hbU5ldCBuZXUuIA0KDQpodHRwOi8vd3d3LnRob25ndGluYmFvY2hpLmNv bS52bi90cC1oY20tc2FpLXBoYW0taG5nLWxvYXQtdGFpLWNjLWNuZy10cm5oLWhhLXRhbmcta3kt dGh1YXQvIJYgT2N0b2JlciA5LCAyMDEwIA0KDQpUUC4gSENNOiBTYWkgcGhhbSBoYW5nIGxvYXQg dGFpIGNhYyBjb25nIHRyaW5oIGhhIHRhbmcga3kgdGh1YXQNCg0KKFZIKS0gSGllbiBuYXksIHRy ZW4gZGlhIGJhbiBUUC4gSENNIGNvIHJhdCBuaGlldSB0dXllbiBkdW9uZyBkYW5nIGJpIGRhbyBi b2ksIHRoaSANCmNvbmcuIEJlbiBjYW5oIHZpZWMga2VvIGRhaSB0aG9pIGdpYW4sIGxhbSBjaGFt IHRpZW4gZG8gdGhpIGNvbmcsIGNhYyBjb25nIHRyaW5oIG5heSANCmN1bmcgZGUgeGF5IHJhIGhh bmcgbG9hdCBjYWMgc2FpIHBoYW0uDQoNClNhaSBwaGFtIG5oaWV1IG5oYXQgbGEgY2FjIHJhbyBj aGFuIHRoaWV1IGJpZW4gYmFvLCBiaWVuIGJhbyBzYWkgaG9hYyBiYW5nIHRob25nIHRpbiANCmto b25nIGR1bmcgcXV5IGRpbmguIEtoaSB0aGkgY29uZyB4b25nLCB0aWVuIGhhbmggdGhhbyBkbyBj YWMgcmFvIGNoYW4gdGhpIG1hdCBkdW9uZyANCmtob25nIGR1b2MgdGFpIGxhcCBuaHUgYmFuIGRh dS4gSGF1IGhldCBjYWMgZG9uIHZpIHRoaSBjb25nIGRhIGRlIGNobyBtYXQgZHVvbmcgYmkgbHVu LCANCnNhdCBsbyBob2FjIGtob25nIGJhbmcgcGhhbmcuLi4gQmVuIGNhbmggZG8gY29uIGNvIGNh YyB2aSBwaGFtIG5odTogS2hvbmcgY28gaGFuZyANCnJhbyBjaGUgY2hhbiwgaG9hYyBjbyBuaHVu ZyByYW8gY2hhbiBzYWkgcXV5IGRpbmggKGhhbmcgcmFvIGxhbSBiYW5nIHRvbiBkZSBjbyBuZ3V5 IGNvIA0KbmdhIGRvIGtoaSBtdWEgdG8sIGdpbyBsb24pOyBraG9uZyBjdSBsdWMgbHVvbmcgdHJ1 YywgZGlldSB0aWV0IGdpYW8gdGhvbmcsIGRhYyBiaWV0IHRyb25nIA0KY2FjIGdpbyBjYW8gZGll bS4gT25nIE5ndXllbiBWaW5oIE5pbmggliBQaG8gZ2lhbSBkb2MgS2h1IHF1YW4gbHkgZ2lhbyB0 aG9uZyBkbyB0aGkgDQooS1FMR1REVCkgc28gMSBjaG8gYmlldDogUXVhIGtpZW0gdHJhIHRodWMg dGUgZG9pIHZvaSB2aWVjIHRoaSBjb25nIGNhYyBjb25nIHRyaW5oIGNvIA0Kc28gaGEgdGFuZyBj byBjaGllbSBkdW5nIG1hdCBkdW9uZywgdHJlbiBkaWEgYmFuIGNhYyBxdWFuIDMsIDYsIDExLCBH byBWYXAsIFRhbiBCaW5oLCANClBodSBOaHVhbiwgQmluaCBUaGFuaCB2YSBUYW4gUGh1LCBsdWMg bHVvbmcgY2h1YyBuYW5nIGRhIHBoYXQgaGllbiwgbGFwIGJpZW4gYmFuIHh1IA0KbHkgaGFuZyBs b2F0IHNhaSBwaGFtLiBNYWMgZHUgZGEgZHVvYyBjYW5oIGJhbywgeHUgbHkgbmh1bmcgY2FjIGRv biB2aSB0aGkgY29uZyB2YW4gDQpjaGFtIHRyZSwgY2hheSBpIHRyb25nIHZpZWMga2hhYyBwaHVj IGNhYyBoYW5oIHZpIHZpIHBoYW0uIENhYyBzYWkgcGhhbSBuYXkgeGF5IHJhIGRvbmcgDQpsb2F0 IG8gaGF1IGhldCBjYWMgZHUgYW46IENhYyBjb25nIHRyaW5oIGRvIEJhbiBRdWFuIGx5IGR1IGFu IChCUUxEQSkgVmUgc2luaCBtb2kgDQp0cnVvbmcgdGhhbmggcGhvIGxhbSBjaHUgZGF1IHR1IGNv IDYwIHJhbyBjaGFuIHRoaWV1IGJpZW4gYmFvLCBiaWVuIGJhbyBzYWkgaG9hYyBiYW5nIA0KdGhv bmcgdGluIGtob25nIGR1bmcgcXV5IGRpbmg7IDczIHZpIHRyaSBraG9uZyBjbyBsdWMgbHVvbmcg dHJ1YyBkaWV1IHRpZXQgZ2lhbyB0aG9uZzsgMjcgDQp2aSB0cmkgbWF0IGR1b25nIGJpIGx1biwg c2F0IGxvIGhvYWMga2hvbmcgYmFuZyBwaGFuZyBkbyBhbmggaHVvbmcgY3VhIHZpZWMgdGhpIGNv bmcuLi4gDQoNCkNhYyBjb25nIHRyaW5oIGRvIEJRTERBIERhaSBsbyBEb25nIFRheSB2YSBNb2kg dHJ1b25nIG51b2MgdGhhbmggcGhvIGxhbSBjaHUgZGF1IA0KdHUgY28gMTkgcmFvIGNoYW4gdGhp ZXUgYmllbiBiYW8sIGJpZW4gYmFvIHNhaSBob2FjIGJhbmcgdGhvbmcgdGluIGtob25nIGR1bmcg cXV5IGRpbmg7IA0KMTEgdmkgdHJpIGtob25nIGNvIGx1YyBsdW9uZyB0cnVjIGRpZXUgdGlldCBn aWFvIHRob25nOyAyMCB2aSB0cmkgbWF0IGR1b25nIGJpIGx1biwgc2F0IGxvIA0KaG9hYyBraG9u ZyBiYW5nIHBoYW5nIGRvIGFuaCBodW9uZyBjdWEgdmllYyB0aGkgY29uZy4uLiBOZ29haSByYSBj b24gY28gcmF0IG5oaWV1IGNhYyANCmNvbmcgdHJpbmggZG8gQlFMREEgbmFuZyBjYXAgZG8gdGhp OyBCUUxEQSBxdWFuIFRhbiBCaW5oOyBDYWMgY29uZyB0cmluaCBkbyANCkJRTERBIGx1b2kgZGll biB0aGFuaCBwaG8gdmEgVHJ1bmcgdGFtIERpZXUgaGFuaCBjaHVvbmcgdHJpbmggY2hvbmcgbmdh cCB0aGFuaCANCnBobyBsYW0gY2h1IGRhdSB0dSBjdW5nIGRlIHhheSByYSBjYWMgc2FpIHBoYW0g dHVvbmcgdHUuIENoaW5oIHZpIG5odW5nIHNhaSBwaGFtIGhhbmcgDQpsb2F0IG5heSwgdnVhIHF1 YSwgS1FMR1REVCBzbyAxIGRhIGNvIEJhbyBjYW8gY29uZyB0YWMgdGhpIGNvbmcgdGFpIGNhYyBj b25nIHRyaW5oIGhhIA0KdGFuZyBreSB0aHVhdCBjbyBjaGllbSBkdW5nIG1hdCBkdW9uZyB0cmVu IGRpYSBiYW4gZG8gZG9uIHZpIG5heSBxdWFuIGx5LCBndWkgU28gR2lhbyANCnRob25nIHZhbiB0 YWkgKEdUVlQpLiBEb25nIHRob2ksIGtpZW4gbmdoaSBUaGFuaCB0cmEgU28gR1RWVCBobyB0cm8g dHVhbiB0cmEgeHUgcGhhdC4gDQpCZW4gY2FuaCBkbywgS1FMR1REVCBzbyAxIGN1bmcgeWV1IGNh dSBjYWMgY2h1IGRhdSB0dTogQlFMREEgdmUgc2luaCBtb2kgdHJ1b25nIA0KVFAsIEJRTERBIG5h bmcgY2FwIGRvIHRoaSwgQlFMREEgRGFpIGxvIERvbmcgVGF5IHZhIG1vaSB0cnVvbmcgbnVvYyBU UCwgQlFMREEgDQpsdW9pIGRpZW4gVFAsIEJRTERBIHF1YW4gVGFuIEJpbmggdmEgVHJ1bmcgdGFt IERpZXUgaGFuaCBDaHVvbmcgdHJpbmggY2hvbmcgbmdhcCANCm51b2MgZG9jIHRodWMgZG9uIHZp IHRoaSBjb25nIGtoYWMgcGh1YyBuZ2F5IGNhYyBzYWkgcGhhbSBub2kgdHJlbi4NCg0KaHR0cDov L3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDQ4LzIwMTAxMTI0MDIyMDIyLmFz cHggUGh1b25nIFRoYW5oIDI0LzExLzIwMTAgMjoyMCANCg0KVFAgSENNOiBIYW5oIHh1IHZvaSBk YW4ga2VtIC0gTGFtIHNhaSByb2kgYmFuZyBxdWFuLCBkdW4gZGF5IHRyYWNoIG5oaWVtIA0KICAN CkJ1b2kgaG9hIGdpYWkgdnUgb25nIE5ndXllbiBWYW4gTGFuZyBraWVuIFNvIEdUVlQgVFAuSENN IHZlIHZpZWMgdGhpIGNvbmcgImxvIA0KY290IiBjaGFtIHRyZSwgZGllbiByYSBob20gcXVhIDIz LjExLCBuaGFuIGR1b2MgbmhpZXUgc3UgcXVhbiB0YW0gaG9uIGhhbiBuaHVuZyBidW9pIA0KaG9h IGdpYWkga2llbiB0dW5nIGRhbiBzdSBraGFjLiANCg0KRG9uIGdpYW4gYm9pIGRheSBkdW9jIHhl bSBsYSB2dSBraWVuIGNodWEgY28gdGllbiBsZSwga2hpIG5ndW9pIGRhbiBraWVuIGNvIHF1YW4g cXVhbiANCmx5IG5oYSBudW9jIChRTE5OKSBtYSBub2kgbmh1IGRhbiBnaWFuIGNoYW5nIGtoYWMg bmFvICJjb24ga2llbiBraWVuIGN1IGtob2FpIi4gRGF1IA0KZHVvYyB4ZW0gbGEgaHkgaHV1LCBz b25nIG5oaW4gdmFvIHRodWMgdHJhbmcgdGhpIGNvbmcgImxvIGNvdCIgY2F1IHRoYSwgY2hheSBp IHRob2kgZ2lhbiANCnF1YSwgdGEgdGhheSB2dSBraWVuIGR1b25nIG5odSBsYSBoZSBxdWEgdGF0 IHlldS4gU3VvdCA0IC0gNSBuYW0gcXVhLCBuZ3VvaSBkYW4gVFAuSENNIA0Kc29uZyBjaHVuZyB2 b2kgaGFuZyB0cmFtICJsbyBjb3QiLCBubyBjYW4gdHJvIHNpbmggaG9hdCwgbGFtIGFuLCB4YXkg cmEgYmFvIG5oaWV1IHRhaSANCm5hbi4uLiBtYSBjaGFuZyBhaSB0aG9uZyBrZSB4dWUgdGhpZXQg aGFpLiBDbyBsZSBraG9uZyBpdCB0cnVvbmcgaG9wIG5odSBvbmcgTGFuZywgc29uZyANCmhhdSBo ZXQgZGV1IG1hbmcgdGFtIGx5IG5oYW4gbmhpbiB2YSBuZ2FpIGtpZW4gdHVuZyBuZW4gY2hvbiBj YWNoIGltIGxhbmcuDQoNCkNhbiBub2kgdGhlbSwgdHJ1b2MgZG8sIG9uZyBMYW5nIGRhIGNvIG5o aWV1IGRvbiB0aHUga2hpZXUgbmFpIFNvIEdUVlQsIGNodSBkYXUgdHUgdmEgDQpuaGEgdGhhdSBU TUVDIC0gQ0hFQyAzLCBkZSBkb2kgYm9pIHRodW9uZyB0aGlldCBoYWkuIFNvbmcsIG5odW5nIGdp IG9uZyBuaGFuIGR1b2MgdHUgDQpjYWMgZG9uIHZpIG5heSBsYSB0aGFpIGRvIGR1biBkYXkgdHJh Y2ggbmhpZW0sIGJhbmcgcXVhbiwgdGhhbSBjaGkgImNvIGtlIGJvdCBtb3QgdGhlbSANCmhhaSIg dm9pIHlldSBjYXUgY2hpbmggZGFuZyBjdWEgbmd1b2kgZGFuLiBDdSB0aGUsIHRvbmcgdGhpZXQg aGFpICJsbyBjb3QiIGdheSByYSBjaG8gZ2lhIA0KZGluaCBvbmcgTGFuZyBsZW4gZGVuIDM3MCB0 cmlldSBkb25nICh0YXQgY2EgZGV1IGNvIGRvbiB0dSBjaHVuZyBtaW5oKSwgc29uZyBuaGEgdGhh dSANCnBodSBuaGFuIHRyYWNoIG5oaWVtIGJvaSB0aHVvbmcgbWEgY2hpIGRvbmcgeSBobyB0cm8g aG9uIDMxIHRyaWV1IGRvbmcuIE5odW5nIGN1bmcgDQpraG9uZyBkYW5nIHRyYWNoIGJhbmcgdmll YyBjaHUgZGF1IHR1IHZhIFNvIEdUVlQgLSBkdSBjbyBkdSB0aGFtIHF1eWVuIGdpYWkgcXV5ZXQg DQpraGlldSBuYWksIHNvbmcgbGFpIGxhbSBuZ28gZGUgbWFjIG5ndW9pIGRhbiBwaGFpIHZpZW4g ZGVuIGNvbiBkdW9uZyAiZGFvIHR1bmcgZGluaCIuDQoNCkJ1b2kgaG9hIGdpYWkgc2FuZyBxdWEg cGhhaSBkb2kgbGFpIGRvIG5oYSB0aGF1IFRNRUMgQ0hFQyAzIHRpZXAgdHVjIHRyaSBob2FuIHZp ZWMgeGluIA0KZ2lheSB1eSBxdXllbiB0dSBjb25nIHR5IG1lIG8gVHJ1bmcgUXVvYy4gU29uZywg Y28gdGhlIHRoYXkgcXVhbiBkaWVtIGN1YSBuZ3V5ZW4gZG9uIA0KdmEgYmkgZG9uIGtobyBtYSBk aSBkZW4gdGhvbmcgbmhhdC4gVHJvbmcga2hpIG9uZyBMYW5nIGR1bmcgdHJlbiBjbyBzbyBwaGFw IGx1YXQgZGUgZG9pIA0KYm9pIHRodW9uZyB0aGlldCBoYWkgdGhpIGRhaSBkaWVuIGNodSBkYXUg dHUgaG9hbiB0b2FuIGNhbSB0aW5oIGtoaSBjaG8gcmFuZyBkYXkgbGEgY29uZyANCnRyaW5oIHBo dWMgbG9pIHhhIGhvaSBuZW4gbmd1b2kgZGFuIHBoYWkgdGhvbmcgY2FtLiBUdXkgbmhpZW4sIFRo YW0gcGhhbiBOZ3V5ZW4gQ2hpIA0KU2FuZyAoVEFORCBUUCkgZGEgbGFtIG5oaWV1IG5ndW9pIGNv IG1hdCB0YWkgYnVvaSBob2EgZ2lhaSBtYXQgbG9uZyBraGkga2hhbmcgZGluaCwgDQp2ZSBuZ3V5 ZW4gdGFjLCBuZXUgdmllYyB0aGkgY29uZyBnYXkgdGhpZXQgaGFpIGNobyBuZ3VvaSBkYW4gdGhp IGNodSBkYXUgdHUgcGhhaSBjaGl1IA0KdHJhY2ggbmhpZW0gYm9pIHRodW9uZywgZHUgbGEgY29u ZyB0cmluaCBjb25nIGNvbmcuDQoNCk5nb2FpIHNvIHRpZW4gYm9pIHRodW9uZywgb25nIExhbmcg Y29uIHlldSBjYXUgU28gR1RWVCB4aW4gbG9pLiAiRHUgdG9hIHRyYSBsb2kgbHVhdCANCmtob25n IHF1eSBkaW5oIGNvIHF1YW4gcXVhbiBseSBwaGFpIHhpbiBsb2ksIHNvbmcgdG9pIGNobyByYW5n IGRhbyBseSBvIGRvaSBsYSBjdSBsYW0gc2FpIA0KdGhpIHBoYWkgeGluIGxvaS4gTmdheSBjYSBk dWEgdHJlIGN1bmcgYmlldCBkYW8gbHkgbmF5IiAtIG9uZyBMYW5nIG5vaS4gDQoNClZ1IGtpZW4g Y3VhIG9uZyBMYW5nIGN1bmcgbGEgZGlwIGRlIGNhYyBjbyBxdWFuIFFMTk4geGVtIGxhaSB0cmFj aCBuaGllbSBjdWEgbWluaC4gDQpUcnVvYyBuYXksIGNvIHF1YW4gUUxOTiB0aHVvbmcgdmluIHZh byBjYWkgY28gY29uZyB0cmluaCBjb25nIGNvbmcgZGUgYXAgZGF0IHZhIGJ1b2MgDQpuZ3VvaSBk YW4gcGhhaSB0aG9uZyBjYW0uIENoaW5oIHR1IGR1eSBuYXkgZGEgdGFvIHJhIGNhY2ggaGFuaCB4 dSB0aGlldSB0aWNoIGN1YyB2YSANCnRoaWV1IHRyYWNoIG5oaWVtIHZvaSBuZ3VvaSBkYW4uIFF1 YW4gaGUgZ2l1YSBjbyBxdWFuIFFMTk4gdm9pIG5ndW9pIGRhbiBjYW4gZHVvYyANCnhheSBkdW5n IHRyZW4gY28gc28gYmluaCBkYW5nLCBjbyBzdSBiYW4gYmFjLCB0aG9hIHRodWFuIHZvaSBuZ3Vv aSBkYW4ga2hpIHRodWMgaGllbiBjYWMgDQpjb25nIHRyaW5oIGR1bmcgY2hhbSBkZW4gZGFuLiBC ZW4gY2FuaCBkbywgbW9pIGNvbmcgdHJpbmggY29uZyBjb25nIHBoYWkgdHJlbiBuZ3V5ZW4gDQp0 YWMgYmFvIGRhbSBjaG8gY3VvYyBzb25nIG5ndW9pIGRhbiwgbmV1IHhhbSBwaGFtIG5ndXllbiB0 YWMgbmF5IGdheSB0aGlldCBoYWkgdGhpIA0KZHVvbmcgbmhpZW4gcGhhaSBib2kgdGh1b25nIGNo byBkYW4uIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9IYW5nLWNodWMtdHktZG9uZy10 aWV1LXRhbi1kby1kYW8tZHVvbmctYXUvMTQ4LzMwMzQ5MjEuZXBpIFR1bmcgTmd1eWVuIChEYW4g VHJpKSANCg0KVFAgSENNOiBIYW5nIGNodWMgdHkgZG9uZyB0aWV1IHRhbiBkbyBkYW8gZHVvbmcg YXUNCg0KRGFvIGR1b25nIGxhbSB2byBvbmcgZGFuIG51b2MsIGhvbmcgY290IGRlbiBnaWFvIHRo b25nLCBodSBob25nIG1hdCBkdW9uZyBkbyB0YWkgbGFwIA0KYXUuLi4gRGUga2hhYyBwaHVjIHRp bmggdHJhbmcgbmF5LCBUUEhDTSBwaGFpIHRpZXUgdG9uIGhhbmcgY2h1YyB0eSBkb25nLg0KDQpO Z29haSB2aWVjIGNhbiB0cm8gZ2lhbyB0aG9uZywgdmllYyB0aWVuIGhhbmggZGFvIGhhbmcgdHJh bSBrbSBkdW9uZyBkZSBsYXAgZGF0IGNvbmcgDQp0aG9hdCBudW9jIHRyZW4gZGlhIGJhbiBUUEhD TSBjb24gZ2F5IHJhIG5oaWV1IHN1IGNvIGRhbmcgdGllYyBuaHUgbGFtIHZvIG9uZyBjYXAgDQpu dW9jIGdheSBtYXQgbnVvYyBjdWMgYm8sIGhvbmcgaGUgdGhvbmcgZGVuIHRpbiBoaWV1IGdpYW8g dGhvbmcga2hpZW4gZGVuIGNoYXAgY2hvbiANCmx1YyBjbyBsdWMga2hvbmcsIHRhaSBsYXAgY2F1 IHRoYSBnYXkgdGFpIG5hbiBjaG8gbmd1b2kgZGkgZHVvbmcuLi4gDQoNClRoZW8gdGhvbmcga2Ug Y3VhIENvbmcgdHkgY28gcGhhbiBDYXAgbnVvYyBDaG8gTG9uIHRoaSB0cm9uZyBzYXUgdGhhbmcg ZGF1IG5hbSANCjIwMDksIG5oYSB0aGF1IGNhYyBjb25nIHRyaW5oIERhaSBsbyBEb25nIFRheSwg Y2FpIHRoaWVuIG1vaSB0cnVvbmcgbnVvYy4uLiBkYSBob24gNTAgDQpsYW4gbGFtIGJlIGR1b25n IG9uZyBnYXkgdGhhdCB0aG9hdCBnYW4gNTAuMDAwbTMgbnVvYyBzYWNoLiBDaGkgcGhpIGtoYWMg cGh1YyBjYWMgc3UgDQpjbyB0cmVuIGxlbiBkZW4gaGFuZyB0eSBkb25nLiBEbyBsYSBjaHVhIGtl IGRlbiBub2kga2hvIGNoaXUgY3VhIG5ndW9pIGRhbiBUUCBraGkgZG90IA0KbmdvdCBiaSBtYXQg bnVvYy4gDQoNCk1hdCBkdW9uZyBsYW4gY2FuIGtodSB2dWMgcXVhbmggcmFvIGNoYW4gaGF1IGhl dCBkZXUgaHUgaG9uZyBuYW5nIA0KDQpQaG8gZ2lhbSBkb2MgS2h1IFF1YW4gbHkgZ2lhbyB0aG9u ZyBkbyB0aGkgc28gMSAoS2h1IDEpIE5ndXllbiBWaW5oIE5pbmggdGhpIHBoYW4gDQpuYW4gdmUg dmllYyBuaGEgdGhhdSBTaGltaXp1IHRyb25nIHF1YSB0cmluaCB0aGkgY29uZyBkdSBhbiBEYWkg bG8gRG9uZyBUYXkgdmEgTW9pIA0KdHJ1b25nIG51b2MgVFAgbGFtIGh1IGhvbmcgaGFuZyBsb2F0 IHRydSBkZW4gdGluIGhpZXUgZ2lhbyB0aG9uZy4gDQoNCkR1IEtodSAxIGRhIHRvbiBoYW5nIHRy YW0gdHJpZXUgZGUgdGFtIHRob2kga2hhYyBwaHVjIHN1IGNvIG5odW5nIGNhYyB0cnUgZGVuIG5h eSBjdW5nIA0KY2hpIGhvYXQgZG9uZyBjYW0gY2h1bmcsIGtob25nIG9uIGRpbmguIENvbiBzdWEg Y2h1YSBob2FuIHRvYW4gdGhpIGNoaSBwaGkgcXVhIGxvbiwgDQpLaHUgMSBraG9uZyBkdSBraGEg bmFuZy4gTmhhIHRoYXUgdGhpIGltIGhvaSBsYW5nIHRpZW5nLCBjaGFuZyBjaGl1IGJvaSB0aHVv bmcsIGR1IEtodSANCjEgZGEgbmhpZXUgbGFuIGNvIHZhbiBiYW4gbmhhYyBuaG8uIERvIHZheSwg S2h1IDEgZGFuZyB0aWVwIHR1YyBjbyB2YW4gYmFuIG5obyBjYWMgY2FwIA0KY2FvIGhvbiBjYW4g dGhpZXAuIA0KDQpPbmcgTGUgUXV5ZXQgVGhhbmcsIEdpYW0gZG9jIEtodSAxIHRoYW4gdGhvIHZl IHRpbmggaGluaCBjYWMgbmhhIHRoYXUgdGhpIGNvbmcgZGFvIA0KZHVvbmcgZ2F5IGh1IGhvbmcg bWF0IGR1b25nIHF1YW5oIGNhYyBoYW5nIHJhby4gVHJvbmcga2hpIGR1b25nIGJpIGx1biwgbnV0 IGxhIGRvIGhvIA0KdGhpIGNvbmcsIG5odW5nIG5oYSB0aGF1IGxhaSBiaWVuIG1pbmggbGEgbWlu aCBjaGkgY2hpdSB0cmFjaCBuaGllbSBwaGFuIGJlbiB0cm9uZyBoYW5nIA0KcmFvIG5lbiBLaHUg cGhhaSBibyB0aWVuIHJhIHN1YSBkdW9uZy4gDQoNCk5nb2FpIHJhLCBraGkgY2FjIGRvbiB2aSB0 aGkgY29uZyB0aGFvIGRvIGhhbmcgcmFvLCB0YWkgbGFwIG1hdCBkdW9uZyB0aGkgeHVhdCBoaWVu IGRvIA0KY2hlbmggZ2l1YSBtYXQgZHVvbmcgdHJvbmcgaGFuZyByYW8gdmEgbmdvYWkgaGFuZyBy YW8uIE5ldSBraG9uZyB0YWkgbGFwIGxhaSB0aGkgZ2F5IA0Kbmd1eSBoaWVtIGNobyBuZ3VvaSBk aSBkdW9uZywgdGFpIGxhcCBjaG8gaG9hbiBjaGluaCB0aGkgcXVhIGtoYSBuYW5nIGN1YSBLaHUu IFZpIHRoZW8gDQpvbmcgVGhhbmcgdGhpIHNhdSBraGkgY2FjIGR1IGFuIGRhbyBkdW9uZyBsYXAg ZGF0IG9uZyB0aG9hdCBudW9jIGhvYW4gdGF0LCBLaHUgMSBwaGFpIA0KdGlldSB0b24gaG9uIDEw IHR5IGRvbmcgZGUgdGFpIGxhcCBsYWkgY2FjIGRvYW4gdGFpIGxhcCBjYXUgdGhhLiANCg0KVHJ1 b2MgdGluaCBoaW5oIG5heSwgb25nIFRyYW4gUXVhbmcgUGh1b25nLCBHaWFtIGRvYyBTbyBHVFZU IHBoYWkgeWV1IGNhdSBjYWMgY2h1IA0KZGF1IHR1LCBiYW4gcXVhbiBseSBjYWMgZHUgYW4gdmEg VGhhbmggdHJhIEdpYW8gdGhvbmcgcGhhaSB0YW5nIGN1b25nIGNoYW4gY2hpbmggbGFpIA0KY29u ZyB0YWMgdGFpIGxhcCBtYXQgZHVvbmcuIFRoZW8gb25nLCB0dXkgU28gZGEgbmhpZXUgbGFuIG5o YWMgbmhvIHZlIGNoYXQgbHVvbmcgdGFpIGxhcCANCm1hdCBkdW9uZyBuaHVuZyBjaHVhIGNvIG5o dW5nIGNodXllbiBiaWVuIGRhbmcgZ2hpIG5oYW4uIA0KDQpEbyB2YXksIG9uZyB5ZXUgY2FuIGJh biBxdWFuIGx5IHZhIGNhYyBjaHUgZGF1IHR1IGtob25nIG5naGllbSB0aHUgY29uZyB0cmluaCBu ZXUgDQpjaHVhIHRhaSBsYXAgaG9hbiBjaGluaDsgVGhhbmggdHJhIEdpYW8gdGhvbmcgcGhhaSBr aWVuIHF1eWV0IGRpbmggY2hpIHRoaSBjb25nIGNhYyBuaGEgDQp0aGF1IHRhaSBsYXAgY2F1IHRo YSwgY2hheSBpLCBjbyB0aW5oIGtob25nIGtoYWMgcGh1YzsgZG9uZyB0aG9pLCBvbmcgY3VuZyB5 ZXUgY2F1IGNhYyBjaHUgDQpkYXUgdHUgcGhhaSB0byBjaHVjIGNodXAgYW5oLCBxdWF5IHBoaW0g bGFpIGhpZW4gdHJhbmcgdHV5ZW4gZHVvbmcgdHJ1b2Mga2hpIGJhbiBnaWFvIA0KY2hvIG5oYSB0 aGF1IGRlIGxhbSBjbyBzbyB0aWVwIG5oYW4gc2F1IGtoaSBjb25nIHRyaW5oIGhvYW4gdGhhbmgu IE5ldSBkdW9uZyB0YWkgbGFwIA0Ka2hvbmcgZGF0IG5odSBoaWVuIHRyYW5nIGJhbiBkYXUgZGEg bHV1IHRydSBiYW5nIGhpbmggYW5oIHRoaSBraWVuIHF1eWV0IHlldSBjYXUgdGFpIGxhcCBsYWku IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNTAvMjAxMDEy MDkyMzM4NTUuYXNweCBQaHVvbmcgVGhhbmggMDkvMTIvMjAxMCAyMzozOCANCg0KVFAgSENNOiBU YWMgbmdoZW4gZ2lhbyB0aG9uZyAtIERhdSB0dSBuaGlldSBuaHVuZyBoaWV1IHF1YSBpdCAtIExh bmcgcGhpIGxvbiANCg0KKEFuaDogQ2F1IFNhaSBHb24gdGh1b25nIHh1eWVuIHF1YSB0YWkgLSBB bmg6IFAuVCkgDQoNCkhhbmcgbmdhbiB0aSBkb25nIGRhIGR1b2Mgcm90IGNobyBjYWMgZHUgYW4g byBjdWEgbmdvIHBoaWEgZG9uZyBUUC5IQ00sIHNvbmcga2lldSANCmRhdSB0dSBkYW4gdHJhaSB2 YSB0aGlldSBkb25nIGJvIGRhIGtob25nIGdpdXAga2hhaSB0aG9uZyB0aW5oIHRyYW5nIGJlIHRh YyBraW5oIG5pZW4uIA0KDQpDYXUgU2FpIEdvbiBvYW4gbHVuZyANCg0KRG9uZyB2YWkgdHJvIHF1 YW4gdHJvbmcgbmhhdCB0cmVuIHRydWMgY3VhIG5nbyBwaGlhIGRvbmcgZGkgbWllbiBCYWMsIG1p ZW4gVHJ1bmcgdmEgDQpUYXkgTmd1eWVuLCBjYXUgU2FpIEdvbiA0OSBuYW0gdHVvaSBoaWVuIGRh IHh1b25nIGNhcCBuZ2hpZW0gdHJvbmcgdmFuIHBoYWkgZ29uZyANCmdhbmgga2hvYW5nIDQwLjAw MCAtIDUwLjAwMCBsdW90IG8gdG8gbW9pIG5nYXkuIE5nb2FpIHJhLCBkbyB1biB1IG5lbiBkb25n IHhlIHRhaSwgDQpjb250YWluZXIgdGh1b25nIHh1eWVuIG5vaSBkdW9pIG5hbSBkYWkgdHJlbiBt YXQgY2F1IGN1bmcgbGEgbmd1eWVuIG5oYW4ga2hpZW4gY2F1IA0KbmhhbmggeHVvbmcgY2FwLiBU cm9uZyBuYW0gMjAwOSwgY2F1IFNhaSBHb24gZGEgeGF5IHJhIGhhbmcgbG9hdCBzdSBjbywgbWEg ZGluaCBkaWVtIA0KbGEgdmllYyB4dWF0IGhpZW4gbW90IGxvIHRodW5nIGxvbiB0cmVuIG1hdCBj YXUuIERvbiB2aSBxdWFuIGx5IGxhIEtodSBxdWFuIGx5IGdpYW8gdGhvbmcgDQpkbyB0aGkgc28g MiBkYSBwaGFpIG1vIGRvdCBraGFvIHNhdCB0b2FuIGJvIGNoYXQgbHVvbmcgY2F1IHZhIGtldCBx dWEgZHVhIHJhIHJhdCBkYW5nIGxvIA0KbmdhaS4NCg0KVGFpIGhlIGRhbSBjaHUgY3VhIG5oaXAg Y2hpbmgsIGNhYyBraGUgY28gZ2lhbiBiaSBob25nLCBsYW0gdGhhbSBudW9jIHR1IG1hdCBjYXUg DQp4dW9uZyBoZSBkYW0gZ2F5IGdpIHNldC4gTW90IHNvIHZpIHRyaSBkYXUgZGFtIGRvYyBwaHUg Y3VuZyBiaSBnaSBzZXQgdmEgeHVhdCBoaWVuIHZldCANCm51dCB0YWkgYmFuIGJ1bmcgdmEgYmFu IGNhbmggZHVvaS4gSGF1IGhldCBjYWMga2hlIGNvIGdpYW4gZGV1IGJpIHRoYW0gbnVvYywgbW90 IHNvIA0KaG9uZyBuYW5nLiBDYWMgbmhpcCBkYW4gdmEgYmFuIG1hdCBjYXUgYmUgdG9uZyBjb3Qg dGhlcCB4dWF0IGhpZW4gbmhpZXUgdmV0IG51dCByb25nLCANCm1vdCBzbyB2aSB0cmkgYmUgdG9u ZyBuaHVhIGJpIHBoYSBob2FpLiBOZ2hpZW0gdHJvbmcgaG9uIGxhIG1vdCB0cnUgY2F1IGNvIGRh dSBoaWV1IGx1bi4gDQpNb2kgZGF5LCBDb25nIHR5IEZyZXlzc2luZXQgVk4gZHVvYyBnaWFvIHN1 YSBjaHVhIGxvbiBjYXUgU2FpIEdvbiB2b2kgdG9uZyBraW5oIHBoaSANCmtob2FuZyA1MiB0aSBk b25nLCBkdSBraWVuIGJhdCBkYXUgdmFvIHRoYW5nIDIuMjAxMSB2YSBob2FuIHRoYW5oIHNhdSAx MCB0aGFuZy4NCg0KKEFuaDogQ2F1IFBodSBNeSBiaSAiZSIgdmkgZHVvbmcgZGFuIHF1YSB4YXUg dmEgbG8gdHJpbmggeGEgLSBBbmg6IERpZXAgRHVjIE1pbmgpDQogDQpEaWV1IGRhbmcgbm9pIGxh IGNvbmcgdHJpbmggY2F1IFNhaSBHb24gMiAobmFtIHNvbmcgc29uZyB2YSBjaGlhIHRhaSBjaG8g Y2F1IFNhaSBHb24gDQpoaWVuIGh1dSkgZHUgZHVvYyBVQk5EIFRQIGNoYXAgdGh1YW4gY2h1IHRy dW9uZyBkYXUgdHUgY2FjaCBkYXkgMiBuYW0gc29uZyB0cmllbiANCmtoYWkgcXVhIGNoYW0gdHJl LiBOZ3V5ZW4gbmhhbiBsYSB0dSBuYW0gMjAwOCwgVUJORCBUUCBjaGFwIHRodWFuIGNobyBDb25n IHR5IENQIEJPVCANCmNhdSBQaHUgTXkgKG5heSBsYSBDb25nIHR5IENQIGRhdSB0dSB4YXkgZHVu ZyBQaHUgTXkpIHhheSBjYXUgU2FpIEdvbiAyIHRoZW8gDQpoaW5oIHRodWMgQk9UICh4YXkgZHVu ZyAtIGtpbmggZG9hbmggLSBjaHV5ZW4gZ2lhbyksIGR1IHRydW9jIGRvIGRhIGNoYXAgdGh1YW4g Y2hvIA0KQ29uZyB0eSBDUCBoYSB0YW5nIGt5IHRodWF0IChDSUkpIG1vIHJvbmcgWGEgbG8gSGEg Tm9pIChYTEhOKSBjdW5nIHRoZW8gaGluaCB0aHVjIA0KQk9ULiBEaWV1IG5heSBkYW4gZGVuIHRp bmggdHJhbmcgInBoaSBjaG9uZyBwaGkiIHRyZW4gZG9hbiBkdW9uZyBjaHVhIGRheSAyIGttIG5l biANCnNhdSBkbyBUUCBidW9jIHBoYWkgdGhheSBkb2kgaGluaCB0aHVjIGRhdSB0dSBzYW5nIEJU ICh4YXkgZHVuZyAtIGNodXllbiBnaWFvKS4gRG8gZG8sIA0KZGFuZyBsZSBraG9pIGNvbmcgdHJv bmcgbmFtIG5heSwgbmh1bmcgdmkgdGhheSBkb2kgaGluaCB0aHVjIGRhdSB0dSB2YSBjaG8gdGh1 IHR1YyBkYXUgDQp0aGF1IG5lbiBkdSBhbiB0aWVwIHR1YyAidHJlbyIuDQoNCkRhdSB0dSBuaGll dSwgaGlldSBxdWEgaXQNCg0KQ3VhIG5nbyBwaGlhIGRvbmcgdG9uIG5oaWV1IHRpZW4gbmhhdCBz b25nIGxhaSBsYSB0cnVjIGR1b25nIHRodW9uZyB4dXllbiBrZXQgeGUuIERpZW0gDQpzbyBjbyB0 aGUgdGhheSBjYXUgVGh1IFRoaWVtIHZvbiBkYXUgdHUgbGVuIGRlbiAxLjQ1MCB0aSBkb25nLCBj YXUgUGh1IE15IHZvbiB0dSAyLjAwMCANCnRpIGRvbmcgKGRvaSBsZW4gaG9uIDMuMDAwIHRpIGRv bmcpLCBjYXUgUmFjaCBDaGllYyBraW5oIHBoaSAxLjAwMCB0aSBkb25nLCBkdSBhbiBtbyANCnJv bmcgWExITiBnYW4gMi4zMDAgdGkgZG9uZywgZGFpIGxvIERvbmcgVGF5IHZhIGhhbSBUaHUgVGhp ZW0gdG9uZyB2b24gaG9uIDEwLjAwMCANCnRpIGRvbmcuIENodWEga2UgaG9uIDEuMzAwIHRpIGRv bmcgeGF5IGNhYyBkdSBhbiBrZXQgbm9pIGNhdSBQaHUgTXksIDYxMiB0aSBkb25nIG1vIA0Kcm9u ZyBsaWVuIHRpbmggbG8gMjVCLCA4MyB0aSBkb25nIG5hbmcgY2FwIGNhdSBCaW5oIFRyaWV1IDEg dmEgZHUga2llbiBob24gMy40MDAgdGkgZG9uZyANCmRlIGtob2kgZG9uZyBsYWkgZHUgYW4gY2F1 IGR1b25nIEJpbmggVHJpZXUgMi4NCg0KIkJhbiBkYXUgdGhhbmggcGhvIGt5IHZvbmcgbW9pIG5n YXkgY28gaXQgbmhhdCAzMC4wMDAgLSA0MC4wMDAgbHVvdCBvIHRvIHF1YSBjYXUgUGh1IA0KTXks IHNvbmcgdGh1YyB0ZSBjaGkgZGF0IGhvbiAxMC4wMDAgbHVvdCAiLU9uZyBMdW9uZyBIb2FuZyBU cnVuZw0KDQpDYXUgVGh1IFRoaWVtIHRob25nIHhlIHR1IGRhdSBuYW0gMjAwOCBkZW4gbmF5IHZh biBjaHVhIHRoZSBjaG8geGUgdGFpLCBjb250YWluZXIgcXVhIA0KdmkgY2h1YSBob2FuIHRoYW5o IG1hbmcgbHVvaSBkdW9uZyBrZXQgbm9pLiBDYXUgbmF5IHZhbiBkYW5nIGNobyBob2FuIHRoaWVu IG51dCBnaWFvIA0KcGhpYSBRLkJpbmggVGhhbmgsIGN1bmcgbmh1IG1vIHJvbmcgZHVvbmcgTHVv bmcgRGluaCBDdWEgdmEgdGhvbmcgeGUgZGFpIGxvIERvbmcgDQpUYXkgcGhpYSBRLjIgbW9pIGNv IHRoZSBkYW0gZHVvbmcgbm9pIGx1dSBsdW9uZyB4ZSBjbyBsb24uDQoNCkNhdSBQaHUgTXkgY3Vu ZyBkdW9jIGt5IHZvbmcgcmF0IG5oaWV1IHRyb25nIHZpZWMgZ2lhaSB0b2EgZ2lhbyB0aG9uZyB2 YSBjaGlhIHRhaSBjaG8gDQpjYXUgU2FpIEdvbiwgbmh1bmcgdGh1YyB0ZSB0dSBraGkgdGhvbmcg eGUgbmFtIDIwMDkgdmEgbmhhdCBsYSBzYXUga2hpIHRpZW4gaGFuaCB0aHUgcGhpIA0KZGF1IDIw MTAsIGx1b25nIHhlIHF1YSBjYXUgbmdheSBjYW5nIHRodWEuIE5ndXllbiBuaGFuIGxhIHN1IGR1 bmcgY2F1IFBodSBNeSBkZSByYSANCnZhbyB0cnVuZyB0YW0gVFAgeGEgaG9uIGdhcCBkb2kgc28g dm9pIGRpIGNhdSBTYWkgR29uOyB0cm9uZyBraGkgbGllbiB0aW5oIGxvIDI1QiBkYW4gDQp2YW8g Y2F1IFBodSBNeSBrZXQgeGUgdGh1b25nIHh1eWVuLCBjb24gZG9hbiB0cnVvYyB0cmFtIHRodSBw aGkgaHUgaG9uZyBuZ2hpZW0gDQp0cm9uZy4gDQoNCkNodWEga2UsIHR1IFhMSE4gZGkgY2F1IFBo dSBNeSBwaGFpIHF1YSAyIHRyYW0gdGh1IHBoaSwgbXVvbiBob2FuIHBoaSB0aGkgdGh1IHR1YyBx dWEgDQpuaGlldSBraGUga2hpZW4gdGFpIHhlIG5nYW4gbmdhaS4gT25nIEx1b25nIEhvYW5nIFRy dW5nIC0gUGhvIGNodSB0aWNoIEhpZXAgaG9pIFZhbiANCnRhaSBoYW5nIGhvYSBUUC5IQ00gLWNo byBiaWV0IGJhbiBkYXUgVFAga3kgdm9uZyBtb2kgbmdheSBjbyBpdCBuaGF0IDMwLjAwMCAtIDQw LjAwMCANCmx1b3QgbyB0byBxdWEgY2F1IFBodSBNeSwgc29uZyB0aHVjIHRlIGNoaSBkYXQgaG9u IDEwLjAwMCBsdW90LiANCg0KRGFuZyBsZSB2aWVjIHRob25nIHhlIGNhdSBQaHUgTXkgcGhhaSBk aSBkb2kgdm9pIHBodW9uZyBhbiB4YXkgZHVuZyBkdW9uZyBWYW5oIGRhaSANCnBoaWEgZG9uZyBk YWkgMyBrbSBub2kgdGhhbmcgdHUgY2F1IHJhIG5nYSB0dSBCaW5oIFRoYWkgZGUgZGFtIGJhbyB0 aHVhbiB0aWVuLCBuaHVuZyBkdSANCmFuIG5heSBkZW4gbmF5IHZhbiBuYW0gdHJlbiBnaWF5LiBS aWVuZyBkYWkgbG8gRG9uZyBUYXkgdmEgaGFtIFRodSBUaGllbSBkYW5nIGxlIA0KaG9hbiB0aGFu aCB0dSBuYW0gMjAwOCBuaHVuZyBoaWVuIHZhbiBjaHVhIHRoZSBkYW0gYmFvIGNobyB4ZSBsdXUg dGhvbmcgdGhvbmcgc3VvdCANCmdpdWEgMiBkYXUgdGhhbmggcGhvLg0KDQpUaGVvIG9uZyBUcnVu ZywgdmllYyB0cmllbiBraGFpIG5oaWV1IGNvbmcgdHJpbmggdHJlbiBjdW5nIG1vdCB0cnVjIGN1 YSBuZ28gbGEgY2FuIHRoaWV0IA0KZGUgcGhhIHRoZSBkb2MgZGFvLCBjaGlhIHNlIGx1dSBsdW9u ZyB2YSBkb24gdHJ1b2Mgbmh1IGNhdSBnaWFvIHRob25nIG5nYXkgY2FuZyB0YW5nIA0KdHJvbmcg dHVvbmcgbGFpLiBTb25nLCBkaWV1IGRhbmcgbm9pIGxhIHRoYXkgdmkgY2FuIG5oYWMgbXVjIGRv IGNhcCB0aGlldCBjdWEgdHVuZyBjb25nIA0KdHJpbmggZGUgZGF1IHR1IHBoYW4ga3kgdGhpIFRQ LkhDTSBsYWkgZGF1IHR1IHRoZW8ga2lldSBkYW4gdHJhaSwgbW9pIGNvbmcgdHJpbmggeGF5IA0K ZHVuZyBtb3QgY2h1dCB0aHVjIHN1IGhvYW4gdGhpZW4uIA0KDQpodHRwOi8vd3d3Lmhpdi5jb20u dm4vc3Uta2llbi94YS1ob2kvMDUxMDQxMDc5MC5hc3B4IFRyYW4gRHV5IChnaGkpIFZpZXRuYW1O ZXQgLSAwNToxMycgMTUvMTAvMjAwNSAoR01UKzcpDQoNClRQIEhDTTogTmh1bmcgIm9uZyBHaW9p IiBuYW8geGF5IGNhdSBWYW4gVGhhbmggMj8gDQoNCihWaWV0TmFtTmV0KS0gTmh1bmcgbG8gdGh1 bmcgdHJlbiBjYXUgVmFuIFRoYW5oIDIgZGEgZHVvYyBjYW5oIGJhbyB0dSBsYXUgdGhlIG5odW5n IA0KY2h1eWVuIGtoYWMgcGh1YyBsYWkgaSBhY2ggdHUgbmFtIG5heSBzYW5nIG5hbSBraGFjLiBW aSBzYW8/ICANCg0KQUJUSyA9ICJBaSBiYW5nIHRhIGtob25nPyIgDQoNClRyb25nIGxpbmggdnVj IHhheSBkdW5nIGNvIHNvIGhhIHRhbmcsIG5ndW9pIHRhIHRodW9uZyBkdW5nIGN1bSB0dSBBQlRL IGRlIGNoaSBib24gDQpkb24gdmk6IENodSBkYXUgdHUsIE5oYSB0aGF1IHRoaSBjb25nLCBUdSB2 YW4gdGhpZXQga2UgdmEgVHUgdmFuIGdpYW0gc2F0LiAgIkJvIHR1IiANCm5heSBxdWFuIGhlIG1h dCB0aGlldCB2b2kgbmhhdSwgaG8gdHJvIG5oYXUgbmhhbSBkYW0gYmFvIGNoYXQgbHVvbmcgY29u ZyB0cmluaC4gIA0KDQpPIGNvbmcgdHJpbmggZHVvbmcgTmd1eWVuIEh1dSBDYW5oICh0cm9uZyBk byBiYW8gZ29tIGhhbmcgbXVjIGNhdSBWYW4gVGhhbmggMiksIA0KbmdvYWkgQ29uZyB0eSBTYW4g eHVhdCwga2luaCBkb2FuaCB0aHVvbmcgbWFpIHZhIGRpY2ggdnUgeHVhdCBuaGFwIGtoYXUgVGhh bmggbmllbiANCnh1bmcgcGhvbmcgKEN0eSBUTlhQLSB0aHVvYyBsdWMgbHVvbmcgdGhhbmggbmll biB4dW5nIHBob25nIFRQLkhDTSksIG1vdCBjb25nIHR5IA0KZHVvYyBVQk5EIFRQIGRhbmggbmhp ZXUgInV1IGFpIiB2YSBiYSBkb24gdmkga2hhYyBjdW5nIGRldSBkdW9jIHhlcCBoYW5nICJkYWkg Z2lhIiANCnRodW9jIEJvIEdUVlQuIA0KDQoiVXkgdGhlIiBuYXkga2hpZW4gZHUgbHVhbiBkYXQg Y2F1IGhvaTogQ28gcGhhaSBkbyBsYSBseSBkbyBtYSBzdW90IG5oaWV1IG5hbSBxdWEsIGNhYyAN CmRvbiB2aSBuYXkgdGhhIHN1YyBjaGF5IHkgdHJvbmcgdmllYyBraGFjIHBodWMgbmh1bmcgdG9u IHRhaSBjdWEgY29uZyB0cmluaCBkdW9uZyANCk5ndXllbiBIdXUgQ2FuaD8gDQoNCihBbmg6IE1v dCB2ZXQgdnV0IG8gZHVvbmcgZGFuIHZhbyBjYXUgTmd1eWVuIEh1dSBDYW5oICh0aHVvYyBjb25n IHRyaW5oIGNhdSBkdW9uZyANCk5ndXllbiBIdXUgQ2FuaCkuDQoNClRpbSBsb2kgZ2lhaSBjaG8g Y2F1IGhvaSAidGUgbmhpIiB0cmVuLCBQViBWaWV0TmFtTmV0IGR1b2Mgb25nIFRyYW4gUXVhbmcg UGh1b25nLCANClBobyBnaWFtIGRvYyBTbyBHVENDIFRQLkhDTSBjaG8gYmlldDogIiBOZ2F5IDMv MTAvMjAwNSwgdHVjIHRydW9jIGtoaSB4dWF0IGhpZW4gbG8gDQpob25nIHRyZW4gY2F1IFZhbiBU aGFuaCAyIGtob25nIGxhdSwgY2h1bmcgdG9pIGNvIGN1b2MgaG9wIHZvaSBjYWMgZG9uIHZpIGxp ZW4gcXVhbiANCihDdHkgVE5YUCwgVEVESSBTb3V0aCwgUGhhbiB2aWVuIGtob2EgY29uZyBuZ2hl IEdUVlQgcGhpYSBOYW0sIENJRU5DTzYpIHlldSANCmNhdSBkYXkgbmhhbmggY29uZyB0YWMga2hh YyBwaHVjLCBzdWEgY2h1YSBjb25nIHRyaW5oIGR1b25nIE5ndXllbiBIdXUgQ2FuaC4gVHV5IA0K bmhpZW4gdGluaCB0cmkgdHJlIGN1YSBjYWMgZG9uIHZpIG5heSBob2kgY2FvLiBOZ3VvaSB0YSBr aG9uZyB5IHRodWMgZHVvYyByYW5nIGNodXllbiANCmNoYW0gdHJlIG5heSB0YWMgZG9uZyBkZW4g bmllbSB0aW4gY3VhIG5oYW4gZGFuIHZvaSBsYW5oIGRhbywgY2hpbmggcXV5ZW4gdGhhbmggcGhv Ii4gIA0KDQooQW5oOiBMYXkgZ28gY2hvbmcgYmUtdG9uZy4pDQoNClRoZW8gb25nIFBodW9uZywg dHJvbmcgbmh1bmcgY3VvYyBob3AgYmFuIHZlIG5odW5nIGdpYWkgcGhhcCBraGFjIHBodWMgbmh1 bmcgdG9uIHRhaSANCm8gY29uZyB0cmluaCBkdW9uZyBOZ3V5ZW4gSHV1IENhbmgsICJibyB0dSIg ZGV1IHlldSBjYXUgU28gR1RDQyBjaG8gaG8gdGhvaSBnaWFuIHZpIA0KY2FuIHBoYWkgY2FuIG5o YWMga3kgY2FjIHBodW9uZyBhbiB4dSBseSBraGFjIHBodWMgc3UgY28gZGUgY28gInRpbmgga2lu aCB0ZSIgaG9uLiANCg0KVmkgc2FvIG5odSB2YXk/IFRoZW8gZ2lhaSB0aGljaCBjdWEgb25nIFBo dW9uZywgcGh1b25nIGFuIHh1IGx5IHBoYWkgZGFtIGJhbyByZSB0aWVuLCANCnBodSBob3AgdmEg a2hvbmcgYW5oIGh1b25nIGRlbiB0aW5oIGhpbmgga2luaCBkb2FuaCwgc2FuIHh1YXQgY3VhIGRv biB2aS4gIA0KDQpUcmEgbG9pIGNhdSBob2kgY3VhIGJhbyBjaGkgIiBDYWMgZG9uIHZpIHF1YW4g bHkgbmhhIG51b2MgY28gY2EgYm8gbWF5IHF1eWVuIGx1YyB0cm9uZyANCnRheSBuaHVuZyB0YWkg c2FvIGxhaSBkZSB0aW5oIHRyYW5nIGNoYW0gdHJlIGtlbyBkYWkgZ2F5IG5oaWV1IGJ1YyB4dWMg dHJvbmcgbmhhbiBkYW4gDQpUaGFuaCBwaG8/Iiwgb25nIFBodW9uZyB0aHVhIG5oYW46ICJDaHVu ZyB0YSBjbyBibyBtYXkgcXVhbiBseSBuaGEgbnVvYywgbmh1bmcga2hvbmcgcGhhaSBjdSBtdW9u IGVwIGxhIGR1b2MiKD8hKS4gIA0KDQpEZSB4dWF0IHh1IGx5IGhpbmggc3U/IA0KDQpLZXQgbHVh biBtb2kgZGF5IGN1YSBkb2FuIGtpZW0gdHJhIGNoYXQgbHVvbmcgY29uZyB0cmluaCBkdW9uZyBO Z3V5ZW4gSHV1IENhbmggY2hvIA0KdGhheSwgZG9uIHZpIFR1IHZhbiB0aGlldCBrZSB0aW5oIHRv YW4ga2hvbmcgcGh1IGhvcCB0cm9uZyB2aWVjIHh1IGx5IG1vbmcgbGFtIGNobyBoYW0gDQpjaHVp IGJpIG51dDsgZHVvbmcgZGFuIHZhbyBjYXUgY2h1YSBkdSB0aG9pIGdpYW4gZ2lhIHRhaSB0aGVv IHF1eSBkYW4gZGVuIGhpZW4gdHVvbmcgDQpjaHV5ZW4gdmkgZGFtIGN1YSBjYXUgVmFuIFRoYW5o IDIuICANCg0KTmdvYWkgcmEgZG8gdGluaCB0b2FuIGRvIGx1biBraG9uZyBjaGluaCB4YWMgbmVu IHRyZW4gZG9hbiBkdW9uZyBOZ3V5ZW4gSHV1IENhbmgsIA0KbWF0IGR1b25nIHF1YSB0aGFwIChU aGFtIGNoaSBjbyBub2kgY2FvIGRvIGhpZW4gbmF5IGNvbiB0aGFwIGhvbiBtdWMgbnVvYyB0cmll dSBiaW5oIA0KdGh1b25nKS4gVmkgdmF5LCBjdSB0cmlldSBsZW4gbGEgZG9hbiBkdW9uZyBuYXkg bGFpIG5nYXAgbmd1YSBudW9jLiBEbyBsYSBjaHVhIGtlIGhhdSANCnF1YSBjdWEgbmh1bmcgY29u IG11YSBsb24uIE5odW5nIHlldSB0byB0cmVuIGxhbSBjaG8gY29uZyB0cmluaCBkdW9uZyBOZ3V5 ZW4gSHV1IA0KQ2FuaCBjYW5nIG5nYXkgY2FuZyB4dW9uZyBjYXAsIHJldSByYS4gIA0KDQooQW5o OiBQaGFuIHR1b25nIGJhbyBjaGUgY2F1IFZhbiBUaGFuaCAyIHh1b25nIGNhcCB0cmFtIHRyb25n LikNCg0KVHJvbmcgbHVjIGNhYyBjaHV5ZW4gZ2lhIHZlIGNhdSByYSBzdWMgY2FuaCBiYW8ga2hh IG5hbmcgc2FwIGN1YSBjYXUgVmFuIFRoYW5oIDIsIGNhYyANCmRvbiB2aSBsaWVuIHF1YW4gdmFu IGNodWEgdGhlIGR1YSByYSB0aGlldCBrZSBreSB0aHVhdCBraGFjIHBodWMgc3VhIGNodWEgY29u ZyB0cmluaC4gDQpUcnVvYyB0aW5oIGhpbmggZG8sIG9uZyBQaHVvbmcgYnVjIHh1YzogIkNodW5n IHRvaSBkYW5nIHlldSBjYXUgY2FjIGRvbiB2aSBsaWVuIHF1YW4gDQpuaGFuaCBjaG9uZyBkdWEg cmEgdGhpZXQga2Uga3kgdGh1YXQga2hhYyBwaHVjIHN1IGNvIHZhbyBkYXUgdGhhbmcgMTEuIE5l dSBobyBraG9uZyANCmxhbSB0aGkgY2h1bmcgdG9pIHNlIGFwIGR1bmcgbmh1bmcgYmllbiBwaGFw IG1hbmgsIGtlIGNhIHZpZWMgeWV1IGNhdSB4dSBseSBoaW5oIHN1LiANCktob25nIHRoZSBjaGFu IGNobyB0aGVtIGR1b2MgbnVhIi4gIA0KDQpUcnVvYyBtYXQsIFNvIEdUQ0MgeWV1IGNhdSBURURJ IFNvdXRoIGxhcCB0aGlldCBrZSBreSB0aHVhdCB2YSBkdSB0b2FuIGRlIGJ1IGNhbyBkbyANCm5n YXkgbyBuaHVuZyBkb2FuIHRodW9uZyB4dXllbiBiaSBuZ2FwIG51b2MuIERvbmcgdGhvaSwgVEVE SSBTdW90aCBwaGFpIHRpZXAgdHVjIGJvIA0Kc3VuZyBub2kgZHVuZyBobyBzbyB0aGlldCBrZSBr eSB0aHVhdCBzdWEgY2h1YSBjYXUgVmFuIFRoYW5oIDIgdGhlbyBkYXkgZHUgbmh1bmcgDQpuZ3V5 ZW4gbmhhbiBkYSBkdW9jIGRvYW4ga2llbSB0cmEgY29uZyB0cmluaCBkdW9uZyBOZ3V5ZW4gSHV1 IENhbmggeGFjIGRpbmguICANCg0KKEFuaDogRHVuZyB0YW0gdG9uIGRlIHZhIGxvIGhvbmcgdHJl biBtYXQgY2F1IFZhbiBUaGFuaCAyLikNCg0KRG9pIHZvaSBuaHVuZyB2YW4gZGUgdG9uIHRhaSBj dWEgY2F1IHZ1b3QgbnV0IGdpYW8gdGhvbmcgZGF1IGNhdSBTYWkgR29uLCBTbyBHVENDIGNobyAN CmJpZXQgZGEgbmhpZXUgbGFuIG5oYWMgbmhvLCB5ZXUgY2F1IEFCVEsgdGllcCB0dWMgcXVhbiB0 cmFjLCB0aGVvIGRvaSBkaWVuIHRpZW4gY2h1eWVuIHZpIA0KdmEgc3UgeHVvbmcgY2FwIGRlIGtp cCB0aG9pIGdpYWkgcXV5ZXQsIGRvbmcgdGhvaSBraGFuIHRydW9uZyBob2FuIHRhdCBobyBzbyB0 aGlldCBrZSBreSANCnRodWF0IHN1YSBjaHVhIGhhbmcgbXVjIGNvbmcgdHJpbmggbmF5LiBUcm9u ZyBxdWEgdHJpbmggc3VhIGNodWEgY2FuIG5naGllbiBjdXUgdGhlbSANCmdpYWkgcGhhcCBkZSBj YWNoIGx5IHBoYW4gdHVvbmcgYmFvIGNoZSBraG9pIGNhYyB0YWMgZG9uZyB4dW5nIGtpY2gga2hp IHRodWMgaGllbiBobyBzbyANCnRoaWV0IGtlIHN1YSBjaHVhLiAgDQoNClBWOiBDYXUgVmFuIFRo YW5oIGhpZW4gbmF5IGNvIGFuIHRvYW4gY2hvIG5ndW9pIGRhbiBraG9uZywgdGh1YSBvbmc/IA0K DQpPbmcgVHJhbiBRdWFuZyBQaHVvbmc6IFRoZW8gQ2hpIGN1YyBnaWFtIGRpbmggY2hhdCBsdW9u ZyAodGh1b2MgQm8gR1RWVCkgdmEgbW90IA0Kc28gY2h1eWVuIGdpYSB0cm9uZyBsaW5oIHZ1YyBj YXUgVGhhbmggcGhvLCB0dSBuYXkgZGVuIGdpYWkgZG9hbiBzdWEgY2h1YSBjaGluaCB0aHVjLCAN Cm5odW5nIHN1IGNvIG5obyBuaG8gY28gdGhlIHhheSByYS4gTmh1bmcgdmFuIGRlIGNoaXUgdGFp IGN1YSBjYXUgbmF5IHZhbiBvIHRyb25nIHRpbmggDQp0cmFuZyBjbyB0aGUgY2hhcCBuaGFuIGR1 b2MuIA0KDQpIaWVuIG5heSwgQ29uZyB0eSBRdWFuIGx5IGNvbmcgdHJpbmggY2F1IHBoYSBUaGFu aCBwaG8gdGh1b25nIHh1eWVuIGtpZW0gdHJhIGtob25nIA0Kbmh1bmcgdHJlbiBjYXUgVmFuIFRo YW5oIDIgbWEgY29uIHRyZW4gY2EgdHV5ZW4gY2F1IHZ1b3QgTmd1eWVuIEh1dSBDYW5oIHZhIGJh byANCmNhbyBuaHVuZyBkaWVuIGJpZW4gcGh1YyB0YXAgeGF5IHJhIGRlIFNvIEdUQ0Mga2lwIHRo b2kgeHUgbHkuICANCg0KUFY6IFNvIEdUQ0Mgc2UgYXAgZHVuZyBuaHVuZyBiaWVuIHBoYXAgcGhh dCBoYW5oIGNoaW5oIG5hbyBkb2kgdm9pIG5odW5nIGRvbiB2aSBkZSANCnhheSByYSBzdSBjbyBv IGNvbmcgdHJpbmggZHVvbmcgTmd1eWVuIEh1dSBDYW5oPyAgDQoNCk9uZyBUcmFuIFF1YW5nIFBo dW9uZzogQ2h1bmcgdG9pIGtpZW4gbmdoaSBCbyBHVFZUIHh1IGx5IGJhIGRvbiB2aSB0cnVjIHRo dW9jIEJvOyANCmNvbiB2ZSBwaGlhIENvbmcgdHkgVGhhbmggbmllbiB4dW5nIHBob25nLCBjaHVu ZyB0b2kgY3VuZyBkYSBkZSBuZ2hpIFVCTkQgVFAgeHUgDQpseS4gIA0KDQpQVjogU28gR1RDQyB0 dW5nIG1vaSBQaGFuIHZpZW4gS2hvYSBob2MgY29uZyBuZ2hlIChCbyBYYXkgZHVuZykgZGFuaCBn aWEsIGdpYW0gDQpkaW5oIGNoYXQgbHVvbmcgY29uZyB0cmluaCBkdW9uZyBOZ3V5ZW4gSHV1IENh bmguIFRhaSBzYW8gbGFpIHBoYWkgdGllcCB0dWMgbW9pIEN1YyANCkdpYW0gZGluaCBjaGF0IGx1 b25nIGNvbmcgdHJpbmggZ2lhbyB0aG9uZyAodGh1b2MgQm8gR1RWVCkgZ2lhbSBkaW5oIGxhbiBu dWE/IA0KDQpPbmcgVHJhbiBRdWFuZyBQaHVvbmc6IER1bmcgbGEgR1RDQyBjbyBjaGkgZGluaCBQ aGFuIHZpZW4ga2hvYSBob2MgY29uZyBuZ2hlIHRpZW4gDQpoYW5oIGdpYW0gZGluaC4gVHV5IG5o aWVuLCBkb24gdmkgbmF5IGNodWEgZHUgc3VjIHRyYSBsb2kgbmd1eWVuIG5oYW4gdmkgc2FvIGNv IGhpZW4gDQp0dW9uZyBsdW4uIENoaSBkZW4ga2hpIGRvYW4ga2llbSB0cmEgY3VhIEJvIEdUVlQg KGdvbSBtb3QgaG9pIGRvbmcga2hvYSBob2MpIG1vaSANCnRyYSBsb2kgY2F1IGhvaSBuYXkgZHVv Yy4gDQoNClBWOiBLZXQgcXVhIGdpYW0gZGluaCBjbyBiYXQgZHVuZyAiYmVuaCIgdmEgY28ga2hh Y2ggcXVhbiBraG9uZz8NCg0KT25nIFRyYW4gUXVhbmcgUGh1b25nOiBEYXkgbGEgY28gcXVhbiBo YW5nIGRhdSBjdWEgbmhhIG51b2MgVmlldCBOYW0gdHJvbmcgdmllYyANCmR1YSByYSBuaHVuZyBr ZXQgbHVhbiB2ZSBjYXUgZHVvbmcuIEtob25nIGNvIGNvIHF1YW4gbmFvIGtoYWMgY28gdGhlIGR1 YSByYSBrZXQgbHVhbiANCnRoYXkgY2hvIGNvIHF1YW4gbmF5LiAgDQoNClBWOiBUcmFjaCBuaGll bSBjaGluaCB0cm9uZyB2aWVjIGRlIHhheSByYSBuaHVuZyBzdSBjbyB2YW4gY29uIHRvbiB0YWkg byBjb25nIHRyaW5oIA0KZHVvbmcgTmd1eWVuIEh1dSBDYW5oLCB0aGVvIG9uZyB0aHVvYyB2ZSBk b24gdmkgbmFvPw0KDQpPbmcgVHJhbiBRdWFuZyBQaHVvbmc6IFRyYWNoIG5oaWVtIGNoaW5oIHRo dW9jIHZlIGRvbiB2aSBUdSB2YW4gdGhpZXQga2UuIE5odW5nIA0KdGhhdCByYSBkb24gdmkgbmF5 IGtob25nIHBoYWkgY28geSBoYXkgbGEgdGhpZXUgdHJhY2ggbmhpZW0gbG9uIG1hIHRyaW5oIGRv IGN1YSBobyBvIHRob2kgDQpreSBkbyBjb24gaGFuIGNoZS4gQ2FjIGRvbiB2aSBraGFjIGN1bmcg a2hvbmcgcGhhaSBraG9uZyBjbyBsb2kuIA0KDQpodHRwOi8vbmhhZGF0LnRoYW5obmllbi5jb20u dm4vdGluY2hpdGlldC8xLzE0MzQva2hvLXhheS1uaGEtdHJvbmcta2h1LXF1eS1ob2FjaC0vIFRo YW5oIFRvbmcNCiANClRQIEhDTTogS2hvIHhheSBuaGEgdHJvbmcga2h1IHF1eSBob2FjaCANCg0K UXV5ZXQgZGluaCA2OCBjdWEgVUJORCBUUC5IQ00gY2hvIHBoZXAga2h1IHZ1YyBkYSBjb25nIGJv IHF1eSBob2FjaCBuaHVuZyBjaHVhIA0KY28gcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBkdW9jIHhh eSBuaGEgdG9pIGRhIDUgdGFuZy4gU29uZyBraGkgYXAgZHVuZyB2YW8gdGh1YyB0ZSB0aGkgDQpt b2kgbm9pIG1vaSBraWV1LCBuaGlldSBkdSBhbiBjbyB0aGFtIG5pZW4gaGFuZyBjaHVjIG5hbSBu aHVuZyBjYXQgbmhhIHRhbSBjdW5nIGtob25nIGR1b2MuIA0KDQpUaGFuaCBwaG8gImdhdCIsIHF1 YW4gImxhYyINCg0KVGluaCB0dSBuZ2F5IGNvIGhpZXUgbHVjIGRlbiBuYXksIFF1eWV0IGRpbmgg KFFEKSA2OCBkYSBjbyAiaGFpIHRoYW5nIHR1b2kiLiBUaGVvIG9uZyANClF1YWNoIEhvbmcgVHV5 ZW4sIFBobyBnaWFtIGRvYyBTbyBYYXkgZHVuZyBUUCwgdmllYyBiYW4gaGFuaCBRRCBuYXkgbmhh bSBnaWFpIHRvYSANCm5odW5nIHJhbmcgYnVvYyBiYXQgaG9wIGx5IGxhdSBuYXkgInRyZW8iIHRy ZW4gZGF1IG5odW5nIGhvIGRhbiB0YWkgY2FjIGtodSB2dWMgZGFuZyBjbyANCmR1IGFuIChEQSkg cXV5IGhvYWNoLiAiRGUgUUQgbmF5IHRodWFuIGxvaSBraGkgZGkgdmFvIGRvaSBzb25nLCBjaHVu ZyB0b2kgZGEgdG8gY2h1YyANCmh1b25nIGRhbiBjaG8gdGF0IGNhIGNhbiBibyBjaHV5ZW4gbW9u IHF1YW4sIGh1eWVuIG5lbiBjaGFjIGNoYW4ga2hvbmcgY28gdGluaCB0cmFuZyANCm1vaSBub2kg aHVvbmcgZGFuIG1vaSBraWV1Ii0gb25nIFR1eWVuIGtoYW5nIGRpbmguDQogDQpRRCA2OCBuaHUg bW90IGx1b25nIHNpbmgga2hpIHRob2kgdmFvIGNhYyBraHUgdnVjIGRhbiBjdSBiaSAidHJlbyIg bGF1IG5heSBuaHVuZyBjYWkgDQp2b25nIGx1YW4gcXVhbiAia2hvbmcgY2h1eWVuIGRvaSBtdWMg ZGljaCBjaG8gREEsIERBIGJpIHRyZW8gbmVuIGtob25nIHRoZSBjaHV5ZW4gDQpkb2ksIGtob25n IHRoZSBjaHV5ZW4gZG9pIG5lbiBraG9uZyB0aGUgeGF5IGR1bmcgdGhlbyBRRCA2OCIgZGEgInRy b2kiIGdpYWMgbW8geGF5IA0KbW90IGNhbiBuaGEgdGFtIGN1YSBuZ3VvaSBkYW4gbyBjYWMga2h1 IHZ1YyBuYXkuDQogDQpOb2kgbGEgdmF5LCBuaHVuZyB0dSBuZ2F5IFFEIDY4IGNvIGhpZXUgbHVj LCBuZ3VvaSBkYW4ga2h1IHZ1YyBhcCBEb2kgdGh1b2MgUC4xNSwgR28gDQpWYXAgdmFuIGNodWEg Y28gaG8gbmFvIGR1b2MgcGhlcCB4YXkgZHVuZyB0YW0uLi4gY2FuIGNob2ksIGR1bmcgbm9pIGRl biBjaHV5ZW4geGF5IA0KbmhhIGxhdS4gVGFpIERBIG5heSwgdGluaCB0dSBraGkgcXV5IGhvYWNo IGRlbiBuYXkgZGEgaG9uIDMwIG5hbSBuaHVuZyBuZ3VvaSBkYW4gdmFuIA0KcGhhaSBzb25nIHRy b25nIG5odW5nIG5nb2kgbmhhIHRhbS4gTmhpZXUgbmd1b2kgZGFuIGNobyBiaWV0IGhvIGRhIG5o aWV1IGxhbiB4aW4gY2hpbmggDQpxdXllbiBjaG8gc3VhIHNhbmcgbmhhIG5odW5nIHZhbiBjaGkg bmhhbiBkdW9jIG5odW5nIGNhaSBsYWMgZGF1Lg0KDQpPbmcgVHJhbiBDb25nIFNvbiwgdG8gdHJ1 b25nIHRvIDYxLCBQLjE1LCBRLkdvIFZhcCBub2kgcmFuZywgbmdheSBraGkgYmlldCBjaHUgdHJ1 b25nIA0KY3VhIFRQIGNobyB4YXkgbmhhIGRlbiA1IHRhbmcgdHJlbiBkYXQgcXV5IGhvYWNoIHRy ZW8sIG9uZyBkYSBob3Agbmd1b2kgZGFuIHZhIGtpZW4gDQpuZ2hpIHF1YW4gY28gaHVvbmcgZGFu IHJvIGNvIGNobyBuZ3VvaSBkYW4gbyBkYXkgZHVvYyBjYXQgbmhhIHRhbSwga2hpIE5oYSBudW9j IHRodSANCmhvaSBkYXQgZGFuIHNlIGRpIG5nYXksIGtob25nIG5oYW4gYm9pIHRodW9uZyBwaGFu IG5heSwgbmh1bmcgbmF5IHZhbiBjaHVhIG5oYW4gZHVvYyANCmhvaSBhbS4NCg0KVHVvbmcgdHUs IG5ndW9pIGRhbiBjdSB0cnUgdGFpIGtodSB2dWMgZHVvYyBxdXkgaG9hY2ggREEgaG8gc2luaCB0 aGFpIFZpbmggTG9jIChCaW5oIA0KQ2hhbmgpIGN1bmcgY2h1YSBkdW9jIGNobyBwaGVwIGNhdCBu aGEgdGFtIHRyb25nIGtodSB2dWMgREEgZGEgZHVvYyBjb25nIGJvLiBUaW5oIA0KZGVuIG5heSwg REEgbmF5IGRhIGR1b2MgY29uZyBibyAxNCBuYW0sIGtob25nIHRoYXkgY2h1IGRhdSB0dSBuYW8g dHJpZW4ga2hhaSBuaHVuZyANCnZpZWMgY2FwIHBoZXAgY2hvIG5ndW9pIGRhbiB4YXkgZHVuZyBr aG9uZyBkdW9jIGNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgdGhvbmcgcXVhLiANCiJOZ3VvaSB0YSBi YW8gbGEgUUQgZG8gY2hpIGRhbmggY2hvIG5odW5nIG5vaSBjbyBEQSB0cmVvIG5odW5nIGtob25n IHBoYWkgZGF0IG5vbmcgDQpuZ2hpZXAuIENvbiB0YWkgZGF5IHRoaSBiYW8gZG9pIG5heSBsYSBk YXQgbm9uZyBuZ2hpZXAgbmVuIGtob25nIHRoZSBjaG8geGF5IGR1b2MuLi4iLCANCm9uZyBUdSBI dW5nLCBuaGEgdGFpIGFwIDEgVmluaCBMb2MgQiwgY28gZGF0IG5hbSB0cm9uZyBEQSBobyBzaW5o IHRoYWkgVmluaCBMb2MsIHR1IA0KbHUuDQoNCkRvIGN1bmcgbGEgdGluaCBjYW5oIGN1YSBuaHVu ZyBobyBkYW4gdGFpIERBIG1vIHJvbmcgZ2EgQmluaCBUcmlldSwgUC5IaWVwIEJpbmggDQpDaGFu aCwgUS5UaHUgRHVjLiBHYW4gY2h1YyBuYW0gbmF5IGRlIGNvIG5oYSBvIG5ndW9pIGRhbiBwaGFp IGxhbSBsZW4sIGxhbSBjaHVpLiANClRpbmggZGVuIG5heSB0YWkga2h1IHZ1YyBuYXkgY28gaGFu ZyB0cmFtIGNhbiBuaGEgZHVvYyB4YXkgImxlbiIsIGhpbmggdGhhbmgga2h1IHZ1YyANCmRhbiBj dSBkb25nIGR1Yy4gVm9pIFFEIDY4IGhvIHZ1aSBtdW5nIHZpIGhldCBjYW5oIHhheSBuaGEgImxl biIsIGNvIHRoZSBzdWEgc2FuZywgY29pIA0Kbm9pIG5oYS4gTmh1bmcga2hpIGRpIHhpbiB4YXkg bmhhIHRoaSBtb2kgYmlldCBtaW5oIGN1bmcgbmFtIG5nb2FpICJkaWVuIiBkdW9jIHhlbSANCnhl dC4NCg0KVnVvbmcgby4uLiBkYXQgbm9uZyBuZ2hpZXANCg0KTHkgZG8gbmh1bmcga2h1IHZ1YyB0 cmVuIGtob25nIGR1b2MgcGhlcCB4YXkgZHVuZyB0aGVvIFFEIDY4IHZpIGxhIGRhdCBub25nIG5n aGllcC4gDQpMeSBkbyBob2FuIHRvYW4gY2hpbmggZGFuZyBuaHVuZyBuaGluIHZhbyAibGljaCBz dSIgY3VhIGNhYyBraHUgdnVjIG5heSB0aGkgZHVuZyBsYSANCm5ndW9pIGRhbiBkYW5nIGJpIHRo aWV0IHRob2kgbG9uLiBUcmVuIHRodWMgdGUsIGhhdSBoZXQgY2FjIERBIGNvIHF1eSBob2FjaCB0 aGkgbmd1b2kgZGFuIA0Ka2hvbmcgZHVvYyB4YXkgZHVuZywga2hvbmcgZHVvYyBjaHV5ZW4gbXVj IGRpY2gsIHRoYW0gY2hpIGNhYyBjb25nIHRyaW5oIGNvbmcgY29uZyANCm5odSBkaWVuIC0gZHVv bmcgLSB0cnVvbmcgLSB0cmFtIGN1bmcgdGFtIGR1bmcgZGUgY2hvIERBLiBCYSBMZSBUaGkgVGFu LCBuZ3VvaSA1IGRvaSANCnNpbmggc29uZyB0cmVuIG1hbmggZGF0IGFwIERvaSBub2k6ICJTYXUg bmFtIDE5NzUsIHRvYW4gYm8gZGF0IHRhaSBhcCBEb2kgeHVuZyB2YW8gbGFtIA0KSFRYLiBEZW4g bmFtIDE5ODYsIHRoaSBkYXQgY3VhIGFpIHRyYSB2ZSBjaG8gbmd1b2kgZG8uIE5hbSAxOTg3IHRo aSBkaWEgcGh1b25nIHRob25nIA0KYmFvIGxhIGR1bmcgcXV5IGRhdCBuYXkgZGUgdHJvbmcgZHVh IEJlbiBUcmUuIFJvaSBEQSB0cm9uZyBkdWEgY3VuZyBraG9uZyB0aGFuaCwgcXV5IA0KZGF0IGRl IGtob25nIGNobyBkZW4gZ2lvLiBYYXkgZHVuZyB0aGkgYmFvIHF1eSBob2FjaCwgY2h1eWVuIG11 YyBkaWNoIGRhdCBraG9uZyBjaG8sIA0KZG8gdmF5IGhvbiA0MDAgaG8gZGFuIHRhaSBhcCBEb2kg Y2hpIGNvIDUgdHJ1b25nIGhvcCBkdW9jIGNhcCBzbyBkby4gVHVuZyBheSBuYW0gDQpraG9uZyBj aG8gZGFuIGNodXllbiBtdWMgZGljaCB0aGkgYmF5IGdpbyBsYXkgZGF1IHJhICJnaWF5IGRvIiBu aHUgeWV1IGNhdSBjdWEgcGh1b25nIA0KZGUgZHVvYyB4YXkgbmhhIi4NCg0KVGFpIGtodSB2dWMg aG8gc2luaCB0aGFpIFZpbmggTG9jLCB0aW5oIGNhbmggeGluIHBoZXAgeGF5IGR1bmcgY3VhIG5n dW9pIGRhbiBjdW5nIA0Ka2hvbmcga2hhIGhvbi4gTWFjIGR1IHRob25nIHRpbiB2ZSBRRCA2OCBk YSBkdW9jIGNvbmcga2hhaSwgbmh1bmcgdGFpIG5odW5nIERBIHRyZW8gDQpsYXUgbmFtLCBRRCBu YXkgdmFuIG5odSBtb3Qga2hhdSBoaWV1IGhvbiBsYSB0aHVjIHRlLiANCg0KaHR0cDovL3R1b2l0 cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS8zOTM5MzMvS2hhdC1udW9jLXNhY2gtdmktcXV5LWhvYWNo LSJ0cmVvIi5odG1sIFFVQU5HIEtIQUkgMDYvMDgvMjAxMCwgMDU6NTAgKEdNVCs3KSANCg0KVFAg SENNOiBLaGF0IG51b2Mgc2FjaCB2aSBxdXkgaG9hY2ggInRyZW8iIA0KDQpUaGVvIHF1eSBkaW5o LCBkb24gdmkgY2FwIG51b2MgcGhhaSBrZW8gZHVvbmcgb25nIGdhbiBkb25nIGhvIG51b2MgbWll biBwaGkgY2hvIA0Ka2hhY2ggaGFuZy4gVGhlIG5odW5nIHRhaSBUUC5IQ00sIG5oaWV1IGtodSB2 dWMgbmdhbmggY2FwIG51b2Mga2hvbmcgZGFtIGRhdSB0dSANCm1hIG5ndW9pIGRhbiBtdW9uIGJv IHRpZW4gdHVpIHJhIGRlIGtlbyBvbmcsIGxhcCBkb25nIGhvIGN1bmcga2hvbmcgZHVvYy4NCg0K Q2h1eWVuIG5heSB4YXkgcmEgdm9pIGhhbmcgbmdhbiBobyBkYW4gdGFpIGNhYyBraHUgcXV5IGhv YWNoICJ0cmVvIiBvIGFwIDQsIHhhIEJpbmggDQpIdW5nLCBILkJpbmggQ2hhbmggdmEga2h1IHZ1 YyBQLjEzLCBRLkJpbmggVGhhbmguDQoNClBoYWkgZHVuZyBudW9jIGRvDQoNCkNhY2gga2hvbmcg eGEga2h1IGRvIHRoaSBQaHUgTXkgSHVuZywgaGFuZyBuZ2FuIGhvIGRhbiBzb25nIGRvYyBkdW9u ZyBQaGFtIEh1bmcsIA0KYXAgNCwgeGEgQmluaCBIdW5nIHBoYWkgY2hpdSBjYW5oIHRoaWV1IG51 b2Mgc2FjaC4gSG9uIGNodWMgbmFtIHF1YSwgYmlldCBiYW8gbGFuIA0Kbmd1b2kgZGFuIG8gZGF5 IHZhYyBkb24gZ28gY3VhIGNhYyBjbyBxdWFuIGNodWMgbmFuZyB2b2kgbW9uZyBtb2kgZHVvYyBj YXAgbnVvYyANCg0Kc2FjaCBuaHVuZyBkZXUgbmhhbiBkdW9jIG5odW5nIGNhaSBsYWMgZGF1IHZp IGtodSB2dWMgbmF5IG5hbSB0cm9uZyBraHUgcXV5IGhvYWNoLg0KQ3VuZyBkbyBuYW0gdHJvbmcg a2h1IHF1eSBob2FjaCBraHUgZGFuIGN1IEJpbmggSG9hLCBQLjEzLCBRLkJpbmggVGhhbmggbWEg bmhpZXUgDQpuYW0gcXVhIGhhbmcgY2h1YyBobyBkYW4gbyBoZW0gMjk1IE5vIFRyYW5nIExvbmcg Y2hpdSBjYW5oIGtoYXQgbnVvYyBzYWNoLiBCYSBWdSANClRoaSBMZSBIaWVuLCBtb3Qgbmd1b2kg ZGFuIG8gZGF5LCBrZTogIkRlIGNvIG51b2MgZHVuZywgY2FjaCAyLTMgbmdheSB0b2kgcGhhaSBk YXkgDQpzb20gbW90IGxhbiBjYW5oIG11YSBraG9hbmcgMTAgZG9pIG51b2MgdHUgbmh1bmcgbmd1 b2kgZ2FuaCBudW9jIHRyb25nIGhlbSB2b2kgZ2lhIA0KNC4wMDAgZG9uZy9kb2kgbnVvYyBraG9h bmcgMzUgbGl0Ii4NCg0KS2hvbmcgY29uZyBiYW5nIHZvaSBkYW4ga2h1IHF1eSBob2FjaA0KDQpP bmcgUGhhbiBWYW4gQ29uZywgcGhvIGNodSB0aWNoIFVCTkQgeGEgQmluaCBIdW5nLCBjaG8gYmll dCBraHUgdnVjIGFwIDQgbmFtIA0KdHJvbmcga2h1IHF1eSBob2FjaCBsYW5nIGRhaSBob2MgdmEg a2h1IGRhbiBjdSBjbyBxdXlldCBkaW5oIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1IA0KdGh1IGhv aSBkYXQgdHUgbmFtIDE5OTYuIFZpZWMgZ2lhaSB0b2EgZGVuIGJ1IGR1b2MgZ2lhbyBsYWkgY2hv IENvbmcgdHkgcGhhdCB0cmllbiBjb25nIA0KbmdoaWVwIFRhbiBUaHVhbiB0aHVjIGhpZW4gdHJ1 b2MgZGUgYmFuIGdpYW8gbGFpIGNobyBDb25nIHR5IGxpZW4gZG9hbmggUGh1IE15IEh1bmcsIA0K bmh1bmcgZGVuIG5heSBjb25nIHRhYyB0aG9hIHRodWFuIGRlbiBidSB2YW4gY2h1YSB4dWMgdGll bi4gDQoNCk9uZyBDb25nIG5vaSBvbmcgdGhhdSBoaWV1IG5vaSBraGFvIGtoYXQgbnVvYyBzYWNo IGN1YSBob24gMi4wMDAgaG8gZGFuIG8gZGlhIA0KcGh1b25nLiBDb24gbW90IHBobyBnaWFtIGRv YyBDb25nIHR5IGNvIHBoYW4gQ2FwIG51b2MgQ2hvIExvbiBjaG8gYmlldCBkYSBkZW4gDQpraGFv IHNhdCB2YSBsZW4gcGh1b25nIGFuIHBoYXQgdHJpZW4gbWFuZyBsdW9pIGNhcCBudW9jIGNobyBr aHUgdnVjIGFwIDQsIHhhIA0KQmluaCBIdW5nIHZvaSB0b25nIHZvbiBsZW4gZ2FuIDMwIHRpIGRv bmcgbmh1bmcgZG8gdnVvbmcgcXV5IGhvYWNoIG5lbiBraG9uZyB0aGUgZGF1IHR1LiANCg0KUm8g cmFuZyB2aWVjIHF1eSBob2FjaCB2YSB0aWVuIGRvIHRodWMgaGllbiBxdXkgaG9hY2ggbGEgZG8g TmhhIG51b2MgbGFtIGNodSBraG9uZyANCnBoYWkgdHJhY2ggbmhpZW0gY3VhIG5ndW9pIGRhbiwg bmh1bmcga2hpIHBoYXQgc2luaCBuaHVuZyBoZSBsdXkgZG8gcXV5IGhvYWNoIGtlbyBkYWkgDQp0 aGkgbmd1b2kgZGFuIHBoYWkgZ2FuaCBjaGl1LiBOaHUgdmF5IGxhIGtob25nIGNvbmcgYmFuZy4g DQoNCk9uZyBUUlVPTkcgVFJPTkcgTkdISUEgKGRhaSBiaWV1IEhETkQgVFAuSENNKSBjaG8gYmll dDogTmV1IGRvIGxvaSBjaG8gDQpxdXkgaG9hY2ggbWEga2hvbmcgY3VuZyBjYXAgbnVvYyBzYWNo IGNobyBkYW4gbGEga2hvbmcgY2hhcCBuaGFuIGR1b2M6IFZpZWMgbmF5IGxhIA0KdHJhY2ggbmhp ZW0gY3VhIE5oYSBudW9jIHZpIE5oYSBudW9jIGxhbSBxdXkgaG9hY2ggY2h1IGtob25nIHBoYWkg bmd1b2kgZGFuIGxhbS4gDQoNClR1IGNhdSBjaHV5ZW4ga2hhdCBudW9jIHNhY2ggY3VhIGJhIGNv biBhcCA0LCB4YSBCaW5oIEh1bmcgKEJpbmggQ2hhbmgpIHZhIGJhIGNvbiANCmhlbSAyOTUgTm8g VHJhbmcgTG9uZyAoQmluaCBUaGFuaCkgY2FuIHhlbSBsYWkgcXV5IGhvYWNoIGNvbiBraGEgdGhp LCBob3AgbHkgdGhpIA0KbmhhbmggY2hvbmcgdHJpZW4ga2hhaSwgbmV1IGtob25nIHRoaSB4b2Eg ZGksIGtob25nIG5lbiBkZSBxdXkgaG9hY2ggInRyZW8iIGtlbyBkYWkuIA0KDQpOaHVuZyBuZ3Vv aSB0aHVjIGhpZW4gcXV5IGhvYWNoIG5lbiBkYXQgbWluaCB2YW8gdmkgdHJpIG5odW5nIG5ndW9p IGRhbiBkYW5nIHNvbmcgDQp0cm9uZyB2dW5nIHF1eSBob2FjaCBkZSBjbyBjYWNoIGhhbmggeHUg cGh1IGhvcC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5 LzIwMTAwNzEyMDQyNzA1LmFzcHggMTIvMDcvMjAxMCA0OjI3IA0KDQpUUCBIQ006IFZ1b25nIG1h YyB0aWVuIHN1IGR1bmcgZGF0IC0gRGUgbmF5IHNpbmggdGlldSBjdWMgdmEgcGh1YyB0YXAgaG9h IHRodSB0dWMgDQogIA0KTXVjIHRpZW4gc3UgZHVuZyBkYXQgcXVhIGNhbyBzZSBkYXkgZ2lhIGJh dCBkb25nIHNhbiB0YW5nIHZvdCAtIEFuaDogRGllcCBEdWMgTWluaA0KDQpEb2FuaCBuZ2hpZXAg KEROKSBiYXQgZG9uZyBzYW4gKEJEUykgdGFpIFRQLkhDTSBkYW5nIGtldSBjdXUgdmkgc28gdGll biBzdSBkdW5nIGRhdCANCihTREQpIHBoYWkgZG9uZyB0aGVvIE5naGkgZGluaCA2OSAoY28gaGll dSBsdWMgdHUgMS4xMC4yMDA5KSBjYW8gY2hvdCB2b3QuIA0KDQoiSG9hbmcgcXVhIHhpbiBydXQg bGFpIGhvIHNvIiANCg0KVGhlbyBvbmcgTGUgTmdvYyBUdSwgR2lhbSBkb2MgQ29uZyB0eSBraW5o IGRvYW5oIHBoYXQgdHJpZW4gbmhhIEJpbmggRGFuLCB2aWVjIHRoYW0gDQpkaW5oIGdpYSBkYXQg Z2FuIG5odSBkdW9jIGtob2FuIHRyb24gY2hvIGRvbiB2aSB0dSB2YW4sIHR1eSBuaGllbiB0aGFt IGRpbmggY3VhIGNhYyBkb24gDQp2aSBuYXkgY2hpbmggeGFjIHRvaSBkYXUsIHNhdCBnaWEgdGhp IHRydW9uZyB0b2kgbXVjIG5hbyB0aGkga2hvbmcgdGhlIGNoYWMgY2hhbiBkdW9jLiANCkhvbiBu dWEsIGxheSBnaSBkYW0gYmFvIHN1IHRoYW0gZGluaCBuYXkgbGEgdm8gdHUsIGJvaSBob2FuIHRv YW4gY28gdGhlIHhheSByYSB0aW5oIHRyYW5nIA0KRE4gIm5obyB2YSIgdHUgdmFuIHRoYW0gZGlu aCBnaWEgZGF0IHRoYXAgeHVvbmcgKHRyb25nIHRydW9uZyBob3AgZG9uZyB0aWVuIFNERCkgDQpo b2FjIGNhbyBsZW4gKHRyb25nIHRydW9uZyBob3AgZGluaCBnaWEgZGUgYmFuIGNobyBOaGEgbnVv YykuIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvTXVhLWdheS1rZXQteGUtdHJh bS10cm9uZy8yMDEwNi8xODk5MDIubGFvZG9uZyA4OjQxIEFNLCAyNy8wNi8yMDEwDQoNClRQIEhD TTogTXVhIGdheSBrZXQgeGUgdHJhbSB0cm9uZyAgLSBEaWV1IGRhbmcgbm9pIGxhIG5oaWV1IHR1 eWVuIGR1b25nIGRhIGxhcCBkYXQgaGUgdGhvbmcgY29uZyBuaHVuZyB2YW4gY3UgbXVhIGxhIG5n YXAuIA0KDQpodHRwOi8vYmFpdmlldC5waGFudmllbi5jb20vMjAxMC8xLzYvbnVvYy10aGFpLWJl bmgtdmllbi10dS1kby1yYS1tb2ktdHJ1b25nLmh0bWwNCg0KVFBIQ006IE51b2MgdGhhaSBiZW5o IHZpZW4gdHUgZG8gcmEgbW9pIHRydW9uZyANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQ SENNLU8tbmhpZW0tbmd1b24tbnVvYy1vLW11Yy1iYW8tZG9uZy83MDAyNTI1NS8xNTcvIDI4Lzkv MjAwNSwgMTE6MzggR01UKzcgDQoNClRQSENNOiBPIG5oaWVtIG5ndW9uIG51b2MgbyBtdWMgYmFv IGRvbmcgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUC1IQ00tS2hvbmcta2hpLWJpLW8t bmhpZW0tbmdheS1jYW5nLXRyYW0tdHJvbmcvNDUyMzgwMDMvMTU3LyAxMS81LzIwMDcsIDIzOjI4 IEdNVCs3IA0KDQpUUC5IQ006IEtob25nIGtoaSBiaSBvIG5oaWVtIG5nYXkgY2FuZyB0cmFtIHRy b25nIC0gYmVuaCB0YXQgZ2lhIHRhbmcgDQoNCmh0dHA6Ly9uZXdzLmJhY3NpLmNvbS9jaHV5ZW4t a2hvYS91bmctYnVvdS90cGhjbS1ob24tNTAwMC10cnVvbmctaG9wLW1hYy11bmctdGh1LW1vaS1u YW0tLmh0bWwgMDQvMTIvMjAwOSAwNzo1OSANCg0KVFAgSENNOiBIb24gNS4wMDAgdHJ1b25nIGhv cCBtYWMgdW5nIHRodSBtb2kgbmFtIA0KDQpodHRwOi8vd3d3LnlraG9hbmV0LmNvbS90aG9pc3Uv Y2hhdHRoYWliZW5odmllbi9udW9jaGFpYmVuaHZpZW4uaHRtDQoNClRQIEhDTTogS2luaCBob2Fu ZyBudW9jIHRoYWkgYmVuaCB2aWVuIC0gQnVvYyB2YW8gY29uZyBCZW5oIHZpZW4gVW5nIGJ1b3Ug VFAgSENNLCBuaGlldSBuZ3VvaSBwaGFpIGJpdCBtdWkgdmkgbXVpIGhvaSBib2MgbGVuLiANCg0K aHR0cDovL3d3dy5kaWFjaGF0dm4uY29tL2ZvcnVtcy90cC1oY20tbW9pLW5ndW9uLW51b2MtZGV1 LW8tbmhpZW0tdDM3NzUuaHRtbCAwNi8yMDA5DQoNClRQIEhDTTogTW9pIG5ndW9uIG51b2MgZGV1 IG8gbmhpZW0gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL1RQSENNLWxvLXRoaWV1LW51 b2Mtc2FjaC80NS81NTI1MDI1LmVwaSBBSSBWQU4gMDEvMjAxMSAoR01UKzcpIA0KDQpUUCBIQ006 IENvIG5ndXkgY28gdGhpZXUgbnVvYyBzYWNoIGRvIGJpIHhhbSBuaGFwIG1hbiB2YSBvIG5oaWVt IG1vaSB0cnVvbmcgDQoNClRQSENNIHRoaWV1IG51b2Mgc2FjaCBsYSBiYW4ga2hvYW4sIGxvIGxh bmcgY3VhIG5oaWV1IGRhaSBiaWV1IHRoYW0gZHUgY3VvYyBob3AgZ29wIA0KeSBnaWFpIHBoYXAg dGhpY2ggdW5nIGJpZW4gZG9pIGtoaSBoYXUgdGFpIFRQSENNLiBUaGVvIGRvLCBuZ3VvbiBudW9j IHNvbmcgRG9uZyBOYWkgDQp2YSBzb25nIFNhaSBHb24ga2hvbmcgbmh1bmcgZGFuZyBiaSBkZSBk b2EgYm9pIG5odW5nIGFuaCBodW9uZyBjdWEgYmllbiBkb2kga2hpIGhhdSANCm1hIGNvbiBiaSBk YXUgZG9jIGJvaSBudW9jIHRoYWkgY29uZyBuZ2hpZXAuDQoNCiogUXVhbiA3LCA4LCBOaGEgQmUs IENhbiBHaW8gZGFuZyBiaSB4YW0gbmhhcCBtYW4gbmdoaWVtIHRyb25nIA0KDQooQW5oOiBOZ3Vv aSBkYW4gaHV5ZW4gTmhhIEJlIGRheSB4ZSBkaSBtdWEgbnVvYyB2ZSBzdSBkdW5nLiBBbmg6IERV QyBUSEFOSCkgDQoNCk11YSBraG8sIG5oaWVtIG1hbiB0cmVuIGRpZW4gcm9uZyANCg0KVGhlbyBT byBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcgVFBIQ00sIG11YyBudW9jIGJpZW4gZGEgY28geHUg aHVvbmcgZGFuZyBybyByZXQuIA0KTmdvYWkgdHJ1IHRyYW0gVnVuZyBUYXUgbGEgdHJhbSB2ZW4g YmllbiwgY2FjIHRyYW0gY29uIGxhaSBQaHUgQW4sIE5oYSBCZSwgQmllbiBIb2EsIA0KQmVuIEx1 Yy4uLiBkZXUgbmFtIG8gY3VhIHNvbmcgY2hpbmggY2FjaCB4YSBiaWVuIG5odW5nIGN1bmcgYmkg YW5oIGh1b25nLiBLaG9uZyANCmR1bmcgbGFpIGRvLCB0aGVvIG5naGllbiBjdXUgY3VhIFRydW5n IHRhbSBRdWFuIGx5IG1vaSB0cnVvbmcgcXVvYyB0ZSBJQ0VNLCBoaWVuIA0KdGhhbmggcGhvIGNv IDE1NC8zMjIgeGEgcGh1b25nIHRodW9uZyB4dXllbiBiaSBuZ2FwIHVuZywgY2hpZW0gMTEwLjAw MGhhIHZhIGdheSBhbmggDQpodW9uZyB0cnVjIHRpZXAgZGVuIGdhbiAxIHRyaWV1IGN1IGRhbiwg Y2hpZW0gMTIlIGRhbiBzbyBzb25nIHRyb25nIGtodSB2dWMuIER1IGJhbyANCmRlbiBuYW0gMjA1 MCwgY29uIHNvIG5heSBzZSB0YW5nIGxlbiAxNzcgeGEgcGh1b25nLCBjaGllbSA2MSUgZGllbiB0 aWNoIHRoYW5oIHBoby4gDQpOaHVuZyBxdWFuIGJpIG5nYXAgdW5nIG5hbmcgbGEgcXVhbiAzLCA1 LCA2LCA3LCA4LCAxMCwgQmluaCBDaGFuaCwgTmhhIEJlLi4uDQoNCk9uZyBOZ3V5ZW4gVmFuIE5n YSwgVHJ1b25nIHBob25nIFRhaSBuZ3V5ZW4gbnVvYyB2YSBraG9hbmcgc2FuIFNvIFRhaSBuZ3V5 ZW4gdmEgDQpNb2kgdHJ1b25nIFRQSENNIGNobyBiaWV0LCBiaWVuIGRvaSBraGkgaGF1IGRhIGdh eSByYSB0aW5oIHRyYW5nIHRoaWV1IG51b2MgdmFvIG11YSBraG8gDQp0cm9uZyBraHUgdnVjLCB0 aGlldSBudW9jIGNobyB0dW9pIHRpZXUsIHNhbiB4dWF0IHZhIHNpbmggaG9hdC4gVmFvIG11YSBr aG8sIHhhbSANCm5oYXAgbWFuIGxhbiBzYXUgdmFvIGRhdCBsaWVuIHRhbmcga2hhIG5hbmcgdGhp ZXUgbnVvYyBzYWNoIGNobyBzaW5oIGhvYXQsIGNvbmcgbmdoaWVwLCANCm5vbmcgbmdoaWVwLiBU aW5oIHRyYW5nIG5heSBkaWVuIGJpZW4gbmdoaWVtIHRyb25nIGhvbiB0YWkgbmh1bmcga2h1IGRh biBjdSBuaHUgcXVhbiANCjcsIDgsIGh1eWVuIE5oYSBCZSwgQ2FuIEdpbywgZ2F5IGtobyBraGFu IGNobyBkb2kgc29uZyBuZ3VvaSBkYW4ga2h1IHZ1YyBuYXkuIEtob25nIA0KY2hpIHZheSwgdGlu aCB0cmFuZyB4YW0gbmhhcCBtYW4gY29uIHRhYyBkb25nIHRpZXUgY3VjIGRlbiBjaGF0IGx1b25n IG51b2MgbWF0IHZhIG51b2MgDQpuZ2FtIGdheSBvIG5oaWVtIG5ndW9uIG51b2MgY2FwLiBDdSB0 aGUsIHRyZW4gc29uZyBTYWkgR29uLCBEb25nIE5haSBraGEgbmFuZyBuaGllbSANCm1hbiB2YW8g bXVhIGtobyBzZSBkaWVuIHJhIHRyZW4gZGllbiByb25nLiBOZXUgdGluaCB0cmFuZyBuYXkgdmFu IHRpZXAgZGllbiwgZG8gbWFuIHRpZXAgDQp0dWMgdGFuZyBjYW8gc2UgYW5oIGh1b25nIHJhdCBs b24gZGVuIHNhbiBsdW9uZyB2YSBjaGF0IGx1b25nIG51b2Mgc2luaCBob2F0IGN1YSBuaGEgDQpt YXkgbnVvYyBUYW4gSGllcCwgVGh1IER1Yy4gRGFpIGRpZW4gQ29uZyB0eSBDYXAgbnVvYyB0aGFu aCBwaG8gY2hvIGJpZXQsIHRyb25nIA0KdGhhbmcgMy0yMDEwLCBuaGEgbWF5IG51b2MgVGFuIEhp ZXAgdmEgVGh1IER1YyBkYSBwaGFpIGJ1b2Mgbmd1bmcgbGF5IG51b2MgMyANCmdpby9uZ2F5IHZp IG5ndW9uIG51b2MgYmkgbmhpZW0gbWFuLiBOZXUgdGluaCB0cmFuZyBuYXkgdmFuIGtob25nIGR1 b2MgbmdhbiBjaGFuIHRoaSANCm11YSBraG8gbmFtIDIwMTEgbmd1eSBjbyB0aGlldSBudW9jIG5n b3Qgc2UgcmF0IGNhby4gDQoNClRodW9uZyBuZ3VvbiBiaSBkYXUgZG9jDQoNCkxvIG5nYWkgdGhp ZXUgbnVvYyBuZ290IGRvIG5ndW9uIG51b2MgbmdvdCBiaSB4YW0gbWFuIGxhIGNodWEgZHUuIFRo ZW8gb25nIFBoYW0gDQpLaG9pIE5ndXllbiwgQm8gdHJ1b25nIEJvIFRhaSBuZ3V5ZW4gdmEgTW9p IHRydW9uZywgY2FjIHRpbmggdGh1b2MgdnVuZyBraW5oIHRlIHRyb25nIA0KZGllbSBwaGlhIE5h bSBjb24gcGhhaSBsbyBuZ3VvbiBudW9jIG5nb3QgZGFuZyBiaSBkYXUgZG9jIGJvaSBjaGF0IHRo YWkgc2luaCBob2F0IHZhIA0KY29uZyBuZ2hpZXAuIEhpZW4gdGhvbmcga2UgY3VhIEN1YyBLaWVt IHNvYXQgbyBuaGllbSBjaG8gdGhheSwgZG9jIHNvbmcgRG9uZyBOYWkgDQpjb24gNzAga2h1IGNo ZSB4dWF0LCBraHUgY29uZyBuZ2hpZXAgY2h1YSBkYXUgdHUgaGUgdGhvbmcgeHUgbHkgbnVvYyB0 aGFpIHRhcCB0cnVuZy4gRG8gDQpsYSBjaHVhIGtlIGhhbmcgbmdhbiBkb2FuaCBuZ2hpZXAga2hh YyBjaHVhIGRhdSB0dSBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkuIEhhbmcgDQpuZ2F5IHZhbiBj byBoYW5nIHRyaWV1IG1ldCBraG9pIG51b2MgdGhhaSBzaW5oIGhvYXQgdmEgY29uZyBuZ2hpZXAg Y2h1YSBxdWEgeHUgbHkgdGhhaSANCnJhIGtlbmggcmFjaCBkYW4gcmEgaG9hYyB0aGFpIHRydWMg dGllcCByYSBzb25nIFNhaSBHb24sIERvbmcgTmFpLiANCg0KVGFpIHBoaWVuIGhvcCBVeSBiYW4g YmFvIHZlIGx1dSB2dWMgc29uZyBEb25nIE5haSwgb25nIFZvIFF1YW5nIENoYXUsIFBobyBUb25n IA0KZ2lhbSBkb2MgQ29uZyB0eSBDYXAgbnVvYyBUUEhDTSBraGFuZyBkaW5oLCBudW9jIHRoYWkg Y29uZyBuZ2hpZXAgdHUgY3VtIHRpZXUgdGh1IA0KY29uZyBuZ2hpZXAgVGFuIFF1eSBkYW5nIGRl IGRvYSBjaGF0IGx1b25nIG5ndW9uIG51b2MgTmhhIG1heSBudW9jIFRhbiBIaWVwLiANCk5vbmcg ZG8gY2FjIGNoYXQgdGhhaSB0aHVvbmcgeHV5ZW4gdnVvdCB0aWV1IGNodWFuIGRvaSB2b2kgbnVv YyBjYXAgcGh1YyB2dSBzaW5oIGhvYXQuIA0KQ29uZyB0eSBkYSBuaGlldSBsYW4gY28gY29uZyB2 YW4ga2llbiBuZ2hpIHZhbiBkZSBuYXksIGRlIG5naGkgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIA0K Z2lhaSBxdXlldCB0cmlldCBkZSB0aW5oIHRyYW5nIGRvYW5oIG5naGllcCB0cm9uZyBjdW0gY29u ZyBuZ2hpZXAgeGEgdGhhaSB2dW90IHRpZXUgY2h1YW4gDQpjaG8gcGhlcC4gVHV5IG5oaWVuLCB0 dSBuYW0gMjAwOCBkZW4gbmF5LCB0aW5oIHRyYW5nIHRyZW4ga2hvbmcgZHVvYyBraGFjIHBodWMs IHRoYW0gDQpjaGkgZGllbiBiaWVuIG5nYXkgY2FuZyB4YXUgaG9uLiANCg0KVHVvbmcgdHUsIG9u ZyBUcnVvbmcgS2hhYyBIb2FuaCwgUGhvIFRvbmcgZ2lhbSBkb2MgTmhhIG1heSBudW9jIEJPTyBU aHUgRHVjIA0KY2hvIGJpZXQsIG5oaWV1IGRvYW5oIG5naGllcCBvIERvbmcgTmFpLCBCaW5oIER1 b25nIGRhIHhhIHRoYWkgbyBuaGllbSBnYXkgY2hldCBoYW5nIA0KbG9hdCBiZSBjYSBudW9pIGN1 YSBkYW4gY3UgdHJlbiBzb25nIERvbmcgTmFpIHZhIGl0IG5oaWV1IGFuaCBodW9uZyBkZW4gY2hh dCBsdW9uZyANCm5ndW9uIG51b2MgY2FwIGN1YSBuaGEgbWF5LiBEYWMgYmlldCwgdHUgbmFtIDIw MDkgZGVuIG5heSwgdmllYyB4YSB0aGFpIGdheSBvIG5oaWVtIA0KdGh1b25nIHh1eWVuIGRpZW4g cmEuIE5ldSB0aW5oIHRyYW5nIHhhIHRoYWkgbmF5IGtldCBob3Agdm9pIHhhbSBuaGFwIG1hbiBu dW9jIGJpZW4gDQp2YW8gbXVhIGtobyBzZSBnYXkgYW5oIGh1b25nIHJhdCBsb24gZGVuIHZpZWMg Y3VuZyBjYXAgbnVvYyBzaW5oIGhvYXQgY2hvIG5ndW9pIGRhbi4gDQoNClF1eSBob2FjaCBsYWkg dmllYyBraGFpIHRoYWMsIHN1IGR1bmcgbmd1b24gbnVvYw0KDQpPbmcgTmd1eWVuIFZhbiBOZ2Eg bmhhbiBtYW5oLCBzdSBzdXkgZ2lhbSB0cnUgbHVvbmcgdGFpIG5ndXllbiBudW9jIGNvIGtoYSBu YW5nIA0KbmF5IHNpbmggbWF1IHRodWFuIGdpdWEgY2FjIGRpYSBwaHVvbmcgdHJvbmcgdmllYyBz dSBkdW5nIGhheSBwaGFuIGJvIG5ndW9uIG51b2MgY2FwIA0KbHV1IHZ1YyBzb25nIFNhaSBHb24s IERvbmcgTmFpIHRyb25nIHR1b25nIGxhaSBnYW4uIERvIGRvLCBiYW8gdmUgbmd1b24gbnVvYyBj YW4gDQpkdW9jIHhlbSBsYSBjaGllbiBsdW9jLCBuaGllbSB2dSBoYW5nIGRhdSBkZSBkdXkgdHJp IGhvYXQgZG9uZyBraW5oIHRlLCB4YSBob2kgY3VhIDEyIA0KdGluaCB0aGFuaCB0cm9uZyBkaWVt IHBoaWEgTmFtLiBUaGVvIGRvLCBjYW4gcXV5IGhvYWNoIGxhaSBuZ3VvbiBjYXAgbnVvYyBjaG8g bm9uZyANCm5naGllcCwgY29uZyBuZ2hpZXAgdmEgc2luaCBob2F0IHRoZW8gaHVvbmcgYW4gdG9h biBob247IG5naGllbiBjdXUsIHVuZyBkdW5nIGNvbmcgDQpuZ2hlIHh1IGx5IG51b2MgdGllbiB0 aWVuIGhvbjsgdHJpZW4ga2hhaSBjYWMgZ2lhaSBwaGFwIGhhbiBjaGUgbmh1bmcgdGFjIGRvbmcg bGFtIHRoYXkgDQpkb2kgZG9uZyB0aGFpIG5ndW9uIG51b2MuIERhYyBiaWV0LCBxdXkgaG9hY2gg bGFpIHZpZWMga2hhaSB0aGFjIHZhIHN1IGR1bmcgbmd1b24gbnVvYyANCmN1YSBjYWMgdGluaCBk b2Mgc29uZyBEb25nIE5haSAtIFNhaSBHb24uIA0KDQpUcmVuIHRodWMgdGUsIFNvIENvbmcgdGh1 b25nIFRQSENNIHZ1YSBjbyBjb25nIHZhbiBraWVuIG5naGkgQ2hpbmggcGh1IG5ndW5nIGNhcCAN CnBoZXAgeGF5IGR1bmcgMjAgdGh1eSBkaWVuIGRvYyBzb25nIERvbmcgTmFpLiBOZ3V5ZW4gbmhh biBsYSBuZXUgZHVhIDIwIHRodXkgZGllbiANCm5heSBkaSB2YW8gaG9hdCBkb25nIGNvIHRoZSBn aWFpIHF1eWV0IHRhbSB0aG9pIG5odSBjYXUgc3UgZHVuZyBkaWVuIHRyb25nIHR1b25nIGxhaSBj dWEgDQpjYWMgdGluaCBraHUgdnVjIHBoaWEgTmFtLCBuZ3VvYyBsYWkgc2UgaHV5IGhvYWkgbW9p IHRydW9uZyBsdXUgdnVjIHNvbmcgRG9uZyBOYWksIA0KYW5oIGh1b25nIGRlbiBuZ3VvbiBudW9j IHNpbmggaG9hdCBjdWEgMTYgdHJpZXUgZGFuIGtodSB2dWMgbmF5Lg0KDQpWZSBwaGlhIEJvIFRh aSBuZ3V5ZW4gdmEgTW9pIHRydW9uZyBjdW5nIGtoYW5nIGRpbmgsIHRyb25nIG5hbSB0b2kgcXV5 ZXQgbGlldCB4dSBseSANCm5odW5nIGRvYW5oIG5naGllcCwga2h1IGNoZSB4dWF0IC0ga2h1IGNv bmcgbmdoaWVwIGNodWEgZGF1IHR1IGhlIHRob25nIHh1IGx5IGNoYXQgDQp0aGFpOyB5ZXUgY2F1 IGNhYyB0aW5oIHRoYW5oIGhvYW4gdGF0IHZpZWMgZGkgZG9pIGNhYyBjbyBzbyBzYW4geHVhdCBn YXkgbyBuaGllbSB2YW8ga2h1IA0KdGFwIHRydW5nLiBWb2kgbmh1bmcgZG9hbmggbmdoaWVwIG5h byBjbyB0aW5oIHZpIHBoYW0gdmUgbW9pIHRydW9uZyBzZSBhcCBkdW5nIGJpZW4gDQpwaGFwIG1h bmggbmh1IGRpIGRvaSBraG9pIGtodSB2dWMgc2FuIHh1YXQsIGJ1b2Mgbmd1bmcgaG9hdCBkb25n IGhvYWMgY2h1eWVuIGRvaSBzYW5nIG5nYW5oIG5naGUga2hvbmcgZ2F5IG8gbmhpZW0gbW9pIHRy dW9uZy4gDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMjAtNzc3MzcvdHBoY20tbW9pLW5n YXktbGFuZy1waGktOTAwLXRyaWV1LWRvbmctdGllbi1udW9jLmh0bSBUaGVvIFRyYW4gUGhhbiAo TGFvIGRvbmcpIDE2LzA5LzIwMDUgLSAwOToxNSANCg0KVFBIQ006IE1vaSBuZ2F5IGxhbmcgcGhp IDkwMCB0cmlldSBkb25nIHRpZW4gbnVvYw0KDQpNb2kgbmdheSwgbHVvbmcgbnVvYyBzYWNoIHRo YXQgdGhvYXQgdHJlbiBkaWEgYmFuIFRQSENNIGxhIGhvbiAzMzAuMDAwbTMsIHVvYyB0aW5oIA0K a2hvYW5nIDkwMCB0cmlldSBkb25nLiBWb2kgY28gc28gaGEgdGFuZyBjdSBraSBuaHUgaGllbiBu YXksIHRpIGxlIGdpYW0gdGhhdCB0aG9hdCBkdW9jIA0KZGF0IHJhIGRhIHRybyB0aGFuaCBtdWMg dGlldSBxdWEgeGEgdm9pLg0KDQpUaGF0IHRob2F0IGRvIHJvIHJpIHR1IGR1b25nIG9uZyBjaGll bSA5MCUNCg0KVGhlbyBvbmcgTHkgQ2h1bmcgRGFuIC0gUGhvIFRvbmcgR0QgVG9uZyBDdHkgQ2Fw IG51b2MgU2FpIEdvbiAoU2F3YWNvKSwgY28gMyAgDQpuZ3V5ZW4gbmhhbiB0aGF0IHRob2F0IG51 b2M6IExpZW4gcXVhbiBkZW4ga3kgdGh1YXQsIGNodSBxdWFuIHZhIGdpYW4gbGFuIG51b2MuIFZl IGt5IA0KdGh1YXQsIHRoYXQgdGhvYXQgbnVvYyBkbyBybyByaSAgdHUgZHVvbmcgb25nIGx1b24g Y2hpZW0gdGkgbGUgY2FvIHRyb25nICB0b25nIHNvIGx1b25nIA0KbnVvYyBraG9uZyBkb2FuaCB0 aHUuIFZvaSBjaGlldSBkYWkgbWFuZyBsdW9pICBkdW9uZyBvbmcgZG8gU2F3YWNvIHF1YW4gbHkg Mi43NTRrbSANCihjaHVhIGtlIG9uZyBuaGFuaCBraGFjaCBoYW5nIDIuNTAwa20pLCBsdW9uZyBu dW9jIHRoYXQgdGhvYXQgcm8gcmkgcXVhIGR1b25nIG9uZyAgDQpjaGllbSBkZW4gOTAlIHRvbmcg c28gbHVvbmcgbnVvYyB0aGF0IHRob2F0LiANCg0KVGhhdCB0aG9hdCBudW9jIHR1IHJvIHJpIHRp IGxlIHRodWFuIHZvaSBhcCBsdWMgdHJlbiBkdW9uZyBvbmcuIEFwIGx1YyBudW9jIGNhbmcgY2Fv LCB0aGF0IA0KdGhvYXQgY2FuZyBsb24uICBEb2kgdm9pIHRpbmggdHJhbmcgZHVjLCBjYXQgb25n IGNhdSBudW9jIGJhdCBob3AgcGhhcCB2YSBnaWFuIGxhbiB0cm9uZyANCnN1IGR1bmcgbnVvYyBj dWEgbW90IHNvIGtoYWNoIGhhbmcgZGllbiBiaWVuIHBodWMgdGFwLCBraG8ga2llbSBzb2F0IGdv cCBwaGFuIGtob25nIA0KbmhvIGxhbSBnaWEgdGFuZyBsdW9uZyBudW9jIHNhY2ggYmkgdGhhdCB0 aHUuIEJlbiBjYW5oIGRvIHRpIGxlIHRoYXQgdGhvYXQgbnVvYyBjdW5nIHh1YXQgDQpwaGF0IHR1 IG5ndXllbiBuaGFuIGNodSBxdWFuIGN1YSBuZ2FuaCBjYXAgbnVvYyBuaHU6IFF1YW4gbHkgY2h1 YSBjaGF0IGNoZSwgdHJpbmggZG8gDQpjaHV5ZW4gbW9uIG5naGllcCB2dSwgdHJhbmcgdGhpZXQg YmkgIGhhbiBjaGUgLCB0aGkgY29uZyBrZW0gY2hhdCBsdW9uZy4uLg0KDQpLaG8gZ2lhbSB0aGF0 IHRob2F0DQoNClNhd2FjbyBkZSByYSBtdWMgdGlldSBoYSB0aGFwIHRpIGxlIHRoYXQgdGhvYXQg IG51b2Mgc2FjaCB0dSAzMyUgeHVvbmcgIDMyJSB2YW8gY3VvaSANCm5hbSAyMDA1LCB2YSBnaWFt IHh1b25nIGNvbiAyNiUgdmFvIG5hbSAyMDEwLiBEZSBsYW0gZHVvYyBkaWV1IG5heSwgbmdhbmgg Y2FwIA0KbnVvYyBkYW5nIHRyaWVuIGtoYWkgbmhpZXUgZHUgYW4gdmEgYmllbiBwaGFwOiBQaGFu IHZ1bmcgIHRhY2ggbWFuZywgeGEgaG9pIGhvYSBjb25nIA0KdGFjIGNob25nIHRoYXQgdGhvYXQg bnVvYywgY2FpIHRhbyBkdW9uZyBvbmcsIHF1YW4gbHkgY2hhdCBsdW9uZyB0aGkgY29uZyBsYXAg ZGF0IGR1b25nIA0Kb25nLCBxdWFuIGx5IGRvbmcgaG8gbnVvYy4uLiANCg0KVHV5IG5oaWVuLCBv bmcgTHkgQ2h1bmcgRGFuICAtIFBobyBUb25nIEdEIFNhd2FjbyBjdW5nIGNobyByYW5nIGRlIGRh dCB0aSBsZSAzMiUgDQp2YW8gY3VvaSBuYW0gMjAwNSBsYSBoZXQgc3VjIG5hbmcgbmUsIHZpIGhp ZW4gY29uIHF1YSBuaGlldSBvbmcgbXVjLCBjYWMgZHUgYW4gY2hvbmcgDQp0aGF0IHRob2F0IG51 b2MgZGFuZyB0cm9uZyBnaWFpIGRvYW4gYmF0IGRhdSwgdHJvbmcga2hpIGRvIG5nYW5oIGNhcCBu dW9jIHBoYWkgdGllcCBuaGFuIA0KdGhlbSBsdW9uZyBudW9jIHR1IG5oYSBtYXkgbnVvYyBUYW4g SGllcC4uLiANCg0KVGhlbyBvbmcgTmd1eWVuIE1pbmggSG9hbmcgLSBUcnVvbmcgQmFuIEtpbmgg dGUgTmdhbiBzYWNoIC0gSERORCBUUEhDTSwgDQpuZ2FuaCBjYXAgbnVvYyBraG8gY28gdGhlIGRh dCB0aSBsZSAgZGEgZGUgcmEsIGJvaSBjaG9uZyB0aGF0IHRob2F0IG51b2MgaGllbiBuYXkgbWF1 IA0KdGh1YW4gdm9pIHBoYXQgdHJpZW4gbmd1b24gbnVvYy4gVm9pIGNvIHNvIGhhIHRhbmcgY3Ug a2kgbmV1IHRhbmcgdGhlbSBuZ3VvbiBudW9jIHNlIA0KZG9uZyBuZ2hpYSAgbHVvbmcgbnVvYyBz YWNoIHRoYXQgdGhvYXQgdGFuZy4gDQogDQpDb24gZGFpIGJpZXUgSERORCBUcnVvbmcgVHJvbmcg TmdoaWEgIGNobyByYW5nLCB0aW5oIHRyYW5nIGNhaSB0YW8sIHRoYXkgdGhlIGR1b25nIA0Kb25n IGN1ICBoYW5nIG5hbSBxdWEgY2hhbSwgdGhpIHR1b2kgdGhvIGN1YSBzbyBsdW9uZyBvbmcgY3Ug c2UgdGllcCB0dWMgdGFuZyB0aGVvIHRob2kgDQpnaWFuLiBWb2kgY2FpIHZvbmcgbHVhbiBxdWFu IG5heSwgZSByYW5nIHRoYW5oIHBobyBzZSBraG9uZyBiYW8gZ2lvIGNhaSB0YW8gaGV0IG9uZyBj dSwgDQptdWMuLi4NCg0KRGlldSBxdWFuIHRyb25nIGhvbiBsYSBxdWEgdnUgbnVvYyBzYWNoIGJp IG5oaWVtIGJhbiBkYW5nIHhheSByYSB0YWkgbmhpZXUga2h1IHZ1YywgDQptb2kgbmdheSBuZ2Fu aCBjYXAgbnVvYyBwaGFpIHRhcCB0cnVuZyB4YSBibyBtb3Qga2hvaSBsdW9uZyBudW9jIHNhY2gg dHJvbmcgY2FjIHR1eWVuIA0Kb25nIGNoaW5oIGNhcCAxLCAyLCAzLi4uIGNoYWMgY2hhbiBzZSBs YW0gdGFuZyB0aSBsZSB0aGF0IHRob2F0IGxlbiB0aGVtIGNodSBraG9uZyBoZSBnaWFtLiANCkto b25nIHJpZW5nIHRyb25nIGRvdCBuYXksIG1hIHNhcCB0b2kgZGUgIGRlIHBob25nIG51b2Mgc2Fj aCB0YWkgbmhpZW0gYmFuLCBkaW5oIGt5IA0KaGFuZyB0aGFuZywgbmdhbmggY2FwIG51b2MgdGll cCB0dWMgdGh1YyBoaWVuIHN1YyB4YSAgZHVvbmcgb25nLCB2YSBkaSBuaGllbiBsdW9uZyBudW9j IHhhIGJvIGtob25nIG5oby4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUC1IQ00tbW9p LW5hbS1tYXQtMjAwLXR5LWRvbmctdmktdGhhdC10aG9hdC1udW9jLzEwNzg2ODU0LzE1Ny8gKFRo ZW8gVGhhbmggTmllbikgMTEvOS8yMDAyLCAxMDoyMiBHTVQrNyANCg0KVFAgSENNOiBtb2kgbmFt IG1hdCAyMDAgdHkgZG9uZyB2aSB0aGF0IHRob2F0IG51b2MgDQoNClRyb25nIGhvbiA4MDAgbmdo aW4gbTMgbnVvYyBjdW5nIGNhcCBjaG8gZGFuIG1vaSBuZ2F5IHRoaSBjbyB0cmVuIDMwMCBuZ2hp biBtMyB0aG9hdCANCnJhIG5nb2FpLiBNb3QgdHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZ2F5IHJh IHRpbmggdHJhbmcgbmF5IGxhIGhlIHRob25nIGN1bmcgY2FwIG51b2MgDQpkYSB4dW9uZyBjYXAg dmEgY29uZyB0YWMgcGhhdCBoaWVuLCBzdWEgY2h1YSBzdSBjbyBjaHVhIGtpcCB0aG9pLg0KDQpD YWMgY28gcXVhbiBxdWFuIGx5IGRldSBiaWV0IGNvIG5oaWV1IGtodSB2dWMgdGh1b25nIHh1eWVu IGJpIHRoYXQgdGhvYXQgbnVvYyB2b2kga2hvaSANCmx1b25nICJraG9uZyBsbyIgbmh1OiBraHUg Z2lhbiBkYW4gcXVhbiA5ICg1MSUpLCBraHUgdnVjIFRydW5nIENoYW5oIGh1eWVuIEhvYyANCk1v biAoMzklKS4uLiBuaHVuZyBraG9uZyBjbyBiaWVuIHBoYXAga2hhYyBwaHVjIGh1dSBoaWV1LiBU aW5oIHRyYW5nIHRob2F0IG51b2MgdHUgDQpkdW9uZyBvbmcgZGllbiByYSB0cm9uZyBuaGlldSBn aW8sIHRoYW0gY2hpIG5oaWV1IG5nYXkgZ2F5IGxhbmcgcGhpIGxvbi4gRG9uIGN1IG5odSANCmR1 b25nIG9uZyBjYXAgbnVvYyB0cmVuIGR1b25nIE5ndXllbiBCaW5oIEtoaWVtIChxdWFuIDEpLCBi aSB2byBpdCBuaGF0IDUgbGFuLCBjbyBsdWMgDQpudW9jIGNoYXkgdHJhbiByYSBkdW9uZyBzdW90 IGNhIG5nYXkuIERvbiB2aSB0aGkgY29uZyBkZW4gc3VhIGhvbSB0cnVvYyB0aGkgaG9tIHNhdSBu dW9jIGxhaSB0aWVwIHR1YyBjaGF5Lg0KDQpUcmVuIHRodWMgdGUsIGhpZW4gbmF5IENvbmcgdHkg Q2FwIG51b2MgdGhhbmggcGhvIGtob25nIHhhYyBkaW5oIGR1b2Mga2hvaSBsdW9uZyANCm51b2Mg YmkgdGhhdCB0aG9hdCBjdWEgdHVuZyBjaGkgbmhhbmgsIGRvIGtob25nIGNvIGRvbmcgaG8gdG9u ZyBvIGNhYyBraHUgdnVjIGRvIGNoaSANCm5oYW5oIHF1YW4gbHkuIFZpIHZheSwga2hvbmcgdGhl IGRlIHJhIGJpZW4gcGhhcCB4dSBseSBkb2kgdm9pIGNhYyBkb24gdmkgbGFtIHRoYXQgdGhvYXQg DQpraG9pIGx1b25nIGxvbi4gSGllbiB0cmFuZyBuYXkgZGEgdGFvIGRpZXUga2llbiBjaG8gbW90 IHNvIGNoaSBuaGFuaCBsbyBsYSB0cmllbiBraGFpIA0KY29uZyB0YWMgcGhhdCBoaWVuIHZhIHN1 YSBjaHVhIG9uZyBudW9jIHZvLiBUdXkgbmhpZW4sIHRoZW8gb25nIFZvIFF1YW5nIENoYXUgLSBH aWFtIA0KZG9jIENvbmcgdHkgQ2FwIG51b2MgLSBoZSB0aG9uZyBjdW5nIGNhcCBudW9jIGN1YSB0 aGFuaCBwaG8gbGEgbWFuZyB2b25nIG5lbiBraG9uZyB0aGUgbGFwIGRhdCBkb25nIGhvIHRvbmcg Y2hvIHR1bmcga2h1IHZ1YyBkdW9jLg0KDQpUcm9uZyBraGkgZG8sIG9uZyBOZ3V5ZW4gVmlldCBT b24sIFRydW9uZyBwaG9uZyBLZSBob2FjaCB2YSBEYXUgdHUgU28gR1RDQywgY2hvIA0KYmlldCBr ZSBob2FjaCBuYW0gMjAwMiBjdWEgQ29uZyB0eSBDYXAgbnVvYyBsYSBjaGkga2hvYW5nIDUwIHR5 IGRvbmcgZGUgcGhhdCB0cmllbiANCm1hbmcgbHVvaSB2YSBzdWEgY2h1YSBkdW9uZyBvbmcgY2Fw IG51b2MgYmkgbXVjLiBOaHVuZyBkZW4gbmF5LCBjb25nIHR5IG5heSBjaGkgdGh1YyANCmhpZW4g ZHVvYyBraG9hbmcgOC05JSBraG9pIGx1b25nIGNvbmcgdHJpbmguIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDYvMjAxMDExMTEwMDUxMTEuYXNweCBNYWkg Vm9uZyAxMS8xMS8yMDEwIDA6NTEgDQoNClRQIEhDTTogMTYxIGxvaSBvIG5oYSBtYXkgeHUgbHkg bnVvYyB0aGFpIGxvbiBuaGF0IFZOICANCiAgDQpIb20gcXVhIDEwLjExLCBCYW4gS2luaCB0ZSAt IE5nYW4gc2FjaCAtIEhETkQgVFAuSENNIGRhIGNvIGJ1b2kgZ2lhbSBzYXQgdmUgdGllbiANCmRv IGRhdSB0dSwgZGFuaCBnaWEgaGlldSBxdWEgY3VhIGR1IGFuIE5oYSBtYXkgeHUgbHkgbnVvYyB0 aGFpIChYTE5UKSBCaW5oIEh1bmcuIA0KQ29uZyB0eSBUTkhIIG1vdCB0aGFuaCB2aWVuIHRob2F0 IG51b2MgZG8gdGhpIFRQLkhDTSAoVE5EVCkgbGEgZG9uIHZpIGR1b2MgDQpVQk5EIFRQLkhDTSBn aWFvIHRydWMgdGllcCB0aGVvIGRvaSwgdGllcCBuaGFuLCBxdWFuIGx5IHZhbiBoYW5oIGtoYWkg dGhhYyB2YSBkdXkgdHUsIA0Kc3VhIGNodWEgbmhhIG1heS4gDQoNCk5oYSBtYXkgWExOVCBCaW5o IEh1bmcgZHVvYyBraG9pIGNvbmcgdmFvIHRoYW5nIDExLjIwMDQsIGR1YSB2YW8gdmFuIGhhbmgg dHUgDQp0aGFuZyA2LjIwMDksIHRvYSBsYWMgdGFpIGFwIDUsIHhhIEJpbmggSHVuZywgSC5CaW5o IENoYW5oLiBEdSBraWVuIG5oYSBtYXkgc2UgbmFuZyANCmNvbmcgc3VhdCBsZW4gNTEyLjAwMG0z L25nYXkgKHR1IDE0MS4wMDBtMy9uZ2F5KSB0cm9uZyBnaWFpIGRvYW4gMiwgZHVvYyB0aHVjIGhp ZW4gdHUgbmFtIDIwMTAsIGhvYW4gdGF0IHZhbyAyMDE1LiANCg0KKEFuaDogSGllbiB0dW9uZyBs dW4gdGFpIGtodSB2dWMgTmhhIG1heSBYTE5UIEJpbmggSHVuZyAtIEFuaDogTS5WKSANCg0KQ29u ZyB0eSBUTkRUIGNoaW5oIHRodWMgdGllcCBuaGFuIHZhbiBoYW5oIHRyYW0gYm9tIERvbmcgRGll dSB2YSBuaGEgbWF5IEJpbmggDQpIdW5nIHR1IG5nYXkgMTYuNS4yMDA5IGNobyBkZW4gbmF5LCB2 b2kgc3UgaG8gdHJvIGt5IHRodWF0IGN1YSBDb25nIHR5IHR1IHZhbiBDRE0gDQooTXkpLiBUaW5o IGRlbiBuZ2F5IDE5LjEwLjIwMTAsIENvbmcgdHkgVE5EVCBkYSBwaGF0IGhpZW4gMTYxIGxvaSBr aGllbSBraHV5ZXQsIGhpZW4gDQpkYSBraGFjIHBodWMgZHVvYyAxMjUgbG9pLiBDYWMgbG9pIHRv biB0YWkgbGF1LCBjaHVhIGR1b2Mga2hhYyBwaHVjIGdheSBhbmggaHVvbmcgDQpuZ2hpZW0gdHJv bmcgZGVuIGhvYXQgZG9uZy4gTm9pIGNvbSBuaGF0IGxhIG1heSBjbyBkYWMgYnVuIGx5IHRhbSBr aG9uZyBob2F0IGRvbmcgDQpkdW9jIHR1IGx1YyB0aWVwIG5oYW4gY29uZyB0cmluaCwgYW5oIGh1 b25nIGRlbiBjYSBkYXkgY2h1eWVuIHh1IGx5IGJ1bi4gDQoNCk9uZyBOZ3V5ZW4gUGh1b2MgVGhh bywgR2lhbSBkb2MgVHJ1bmcgdGFtIERpZXUgaGFuaCBDaHVvbmcgdHJpbmggY2hvbmcgbmdhcCAN Cm51b2MgVFAuSENNLCBuaGFuIGRpbmgga2hpZW0ga2h1eWV0IGRvIG5lbiBkYXQgbHVuLCB0dSBk byBrZW8gdGhlbyBjYSBoZSB0aG9uZyBjb25nIA0KdHJpbmggbmdhbSBuaHUgZHVvbmcgZGllbiBu YW0gYmVuIGR1b2kgYmkgYW5oIGh1b25nIG5naGllbSB0cm9uZy4gVHJvbmcgdGhhbmcgNiB2dWEg DQpxdWEsIG5lbiBkYXQgbHVuIGtob25nIGRldSBkYSBsYW0gZHV0IGRheSBjYXAgbmd1b24gY3Vu ZyBjYXAgZGllbiBjaG8ga2h1IHZ1YyBib20gdGFpIA0KbmhhIG1heSwgZ2F5IG1hdCBkaWVuIHRv YW4gYm8gdmEgaGllbiBuaGEgdGhhdSBjaGkgbW9pIHRoYXkgdGhlIGNhcCB0YW0uIExhaSBjb24g Y28gaGllbiANCnR1b25nIHJvIHJpIG51b2MgbmdhbSB0YWkgZHVvbmcgaGFtLiAiQ2h1bmcgdG9p IGRhIHlldSBjYXUgY2FjIGRvbiB2aSBsaWVuIHF1YW4geHUgbHksIA0Kbmh1bmcgZGVuIG5heSB2 YW4gY2h1YSBraGFjIHBodWMsIHRpbmggdHJhbmcgcm8gcmkgbnVvYyBuZ2F5IGNhbmcgbmFuZywg dGhhbSBjaGkgY28gbHVjIA0KeGkgcGh1biBudW9jIHRoYW5oIHZvaSIsIFBobyBUR0QgQ29uZyB0 eSBUTkRUIG9uZyBMZSBUaG8gRGFjIG5vaS4gDQoNCk5oYSBtYXkgWExOVCBCaW5oIEh1bmcgaGll biBjbyBxdXkgbW8gbG9uIG5oYXQgVk4sIHRyaSBnaWEgMTAwIHRyaWV1IFVTRCwgdGh1b2MgZHUg DQphbiBDYWkgdGhpZW4gbW9pIHRydW9uZyBudW9jIFRQLkhDTSwgbmd1b24gdm9uIHZheSBPREEg Y3VhIE5oYXQgQmFuIHZhIHZvbiBkb2kgDQp1bmcgY3VhIFZOLiBHb2kgdGhhdSB4YXkgZHVuZyBu aGEgbWF5IGRvIG5oYSB0aGF1IGxpZW4gZGFuaCBOLkUuUyBKViAoTmhhdCBCYW4pIHRoaSANCmNv bmcsIHRoZW8gdGhpZXQga2UgY3VhIG5oYSB0aGF1IHR1IHZhbiBOaGF0IEJhbiAtIENvbmcgdHkg UENJLiBMdWMgdGhpIGNvbmcgZG9uZyBjb2MsIA0KY29uZyB0cmluaCBuYXkgIHR1bmcgeGF5IHJh IHN1IGNvIGNvYyBiaSBuZ2hpZW5nIGhhbmcgbG9hdCAoa2hvYW5nIHRoYW5nIDEwLjIwMDUpLg0K DQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9Tby1rZXQtMi1uYW0tY2FpLWNh Y2gtdHUtcGhhcC1LZXQtcXVhLWNodWEtbmh1LW1vbmctbXVvbi80MDA1MzcwMC8yMTgvIENISSBN QUkgVmlldCBCYW8gKFRoZW9fVHVvaVRyZSkgICAzMC8xMC8gMjAwNCwgMDg6NDIgR01UKzcgDQoN ClRQIEhDTTogMiBuYW0gY2FpIGNhY2ggdHUgcGhhcCAtICJ5ZXUga2VtLCB0b24gdGFpIGxhaSBu aGlldSBob24iIA0KDQpCYW8gY2FvIHRhaSBob2kgbmdoaSBzbyBrZXQgaGFpIG5hbSB0aHVjIGhp ZW4gbmdoaSBxdXlldCAwOC1OUS9UVyBjdWEgQm8gQ2hpbmggdHJpIA0KdmUgY2FpIGNhY2ggdHUg cGhhcCBkbyBUaGFuaCB1eSBUUC5IQ00gdG8gY2h1YyBuZ2F5IDI5LTEwLg0KDQpPbmcgVHJhbiBI b2FuZyBUaGFtLCB0cnVvbmcgQmFuIGNoaSBkYW8gY2FpIGNhY2ggdHUgcGhhcCBUUC5IQ00sIGNo byBiaWV0IHRyb25nIGhhaSANCm5hbSBxdWEgY2FjIG5nYW5oIGNodWMgbmFuZyBkYSB0aHUgbHkg a2V0IHRodWMgZGlldSB0cmEgMTYuODYzIHZ1LCB0cnV5IHRvIDE1LjcyNSB2dSwgDQpkaW5oIGNo aSBkaWV1IHRyYSAyNzYgdnUsIFRvYSBhbiBuaGFuIGRhbiBUUCBkYSB4ZXQgeHUgMTUuMzE4IHZ1 LCBkYXQgdGkgbGUgOTMsNTUlLg0KDQpWaWVjIGN1bmcgY28sIHhheSBkdW5nIGNhYyBjbyBxdWFu IHR1IHBoYXAgdHV5IG5oaWV1IGNvIGdhbmcgbmh1bmcgbmhpbiBjaHVuZyB2YW4gDQpjaHVhIGRh cCB1bmcgZHVvYyB5ZXUgY2F1IG5oaWVtIHZ1IHRyb25nIHRob2kga3kgbW9pLCB2aWVjIHBoYSBh biBjb24gdGhhcCwgZG9pIG5ndSANCmNhbiBibyB0dSBwaGFwIGNvbiB0aGlldSwgdHJpbmggZG8g Y2h1YSBkb25nIGRldSwgbW90IGJvIHBoYW4gc2Egc3V0IHBoYW0gY2hhdCBkYW8gZHVjLg0KDQpC YW8gY2FvIGN1bmcgY2hvIGJpZXQgdGkgbGUgdG9hIGFuIHRyYSBobyBzbyBjaG8gVktTIGRlIGRp ZXUgdHJhIGJvIHN1bmcgbGEgNCw3JSwgdHV5IA0KbmhpZW4gdGhlbyBiYW8gY2FvIHRhaSBjdW9j IGhvcCBRdW9jIGhvaSBkYW5nIGRpZW4gcmEgdGhpIHRpIGxlIG5heSB0b2kgMTMlLg0KDQpUaGVv IGNoYW5oIGFuIFRvYSBhbiBuaGFuIGRhbiBUUC5IQ00gQnVpIEhvYW5nIERhbmgsIHZ1b25nIG1h YyBuaGF0IGN1YSB0b2EgYW4gDQpoaWVuIG5heSBsYSB0aGVvIHRpbmggdGhhbiBjdWEgbmdoaSBx dXlldCAwOC1OUS9UVyB2aWVjIHhldCB4dSBjdWEgdG9hIGFuIHBoYWkgZHVhIHZhbyANCmtldCBx dWEgcXVhIHRyaW5oIHRyYW5oIHR1bmcgdGFpIHBoaWVuIHRvYSBuaHVuZyBCbyBsdWF0IFRUSFMg MjAwMyBraG9uZyBxdWkgZGluaCB0byANCnR1bmcgdHJhbmggdHVuZyBtYSB2YW4gbGEgeGV0IGhv aSwgY2hpIGNvIHRyYW5oIGx1YW4gZ2l1YSBWS1MgdmEgbHVhdCBzdS4gQ2hpbmggdmkgdmF5LCAN CmNhYyBsdWF0IHN1IHZhbiB0aHVvbmcga2hpZXUgbmFpIHRvYSB2ZSB2YW4gZGUgdG9hIGNodWEg dGh1YyBoaWVuIGRheSBkdSB2aWVjIHRyYW5oIHR1bmcgDQp0YWkgcGhpZW4gdG9hLg0KDQpMdWF0 IHN1IE5ndXllbiBEYW5nIFRydW5nLCBjaHUgbmhpZW0gRG9hbiBsdWF0IHN1IFRQLkhDTSwgY3Vu ZyBjaG8gYmlldDogIlRodWMgdGUgDQpjYWMgbHVhdCBzdSBraGkgdGhhbSBnaWEgYmFvIGNodWEg ZGEgZ2FwIG5oaWV1IHRybyBuZ2FpIHZlIHRodSB0dWMuIFRvYSBhbiB5ZXUgY2F1IGx1YXQgc3Ug DQp0aGFtIGdpYSBiYW8gY2h1YSBwaGFpIGNvIHZhbiBiYW4gY2hhcCBuaGFuIGx1YXQgc3UgY3Vh IGJpIGNhbyB0aGkgbW9pIGNhcCBnaWF5IGNodW5nIA0KbmhhbiBiYW8gY2h1YSwgbmh1bmcgbmV1 IGJpIGNhbyBiaSB0YW0gZ2lhbSBtYSBsdWF0IHN1IGNodWEgY28gZ2lheSBjaHVuZyBuaGFuIGJh byANCmNodWEgdGhpIGtob25nIHZhbyBkdW9jIHRyYWkgZ2lhbSBkZSBsYXkgdmFuIGJhbiBkb25n IHkgbHVhdCBzdSBjdWEgYmkgY2FvPyIuDQoNClRoZW8geSBraWVuIGN1YSBjYWMgY28gcXVhbiB0 dSBwaGFwIHRhaSBob2kgbmdoaSwgbW90IHNvIGhhbiBjaGUgdG9uIHRhaSBuaHUgYW4gdG9uIGRv bmcsIA0KdGkgbGUgcGhhIGFuIGNodWEgY2FvLi4uIG5ndXllbiBuaGFuIG1vdCBwaGFuIGN1bmcg ZG8gdmllYyB0aGlldSBodXQgYmllbiBjaGUgY3VhIG5nYW5oLiANCk1hIGNoZSBkbyBjaGluaCBz YWNoIGRvaSB2b2kgY2FuIGJvIG5nYW5oIGNoaW5oIGxhIG5ndXllbiBuaGFuIGtob25nIHRodSBo dXQgZHVvYyANCm5oYW4gbHVjIHZhbyBsYW0gdmllYyB0cm9uZyBuZ2FuaCB0dSBwaGFwLiBIaWVu IG5heSBjYSBjbyBxdWFuIGRpZXUgdHJhLCB2aWVuIGtpZW0gc2F0IA0KdmEgdG9hIGFuIGRldSB0 aGlldSByYXQgbmhpZXUgYmllbiBjaGUuDQoNCk9uZyBUcnVvbmcgVmluaCBUcm9uZw0KKFRyYW8g ZG9pIHZvaSBvbmcgVHJ1b25nIFZpbmggVHJvbmcsIGJpIHRodSBUcnVuZyB1b25nIERhbmcsIHRy dW9uZyBCYW4gbm9pIGNoaW5oIA0KdHJ1bmcgdW9uZykgDQoNCiogT25nIGRhbmggZ2lhIHRoZSBu YW8gdmUgcXVhIHRyaW5oIGNhaSBjYWNoIHR1IHBoYXAgZG9pIHZvaSB2aWVjIGhhbiBjaGUgb2Fu IHNhaSBjaG8gbmd1b2kgZGFuPw0KDQotIERhaSBkYSBzbyBjYWMgdnUgYW4gZHVvYyB4ZXQgeHUg ZHVuZyBuZ3VvaSwgZHVuZyB0b2kgbmh1bmcgdmFuIGtob25nIHRoZSB0cmFuaCBkdW9jIA0KY28g bmh1bmcgdnUgb2FuIHNhaS4gVHUga2hpIGNhaSBjYWNoIHR1IHBoYXAgZGVuIG5heSwgY29uZyB2 b2kgdmllYyBiYW4gaGFuaCBuZ2hpIHF1eWV0IA0KMzg4IHZlIGJvaSB0aHVvbmcgb2FuIHNhaSBk byBjbyBxdWFuIHRvIHR1bmcgZ2F5IHJhIHRoaSB2aWVjIG9hbiBzYWkgY2hvIG5ndW9pIGRhbiBk YSBoYW4gDQpjaGUgcmF0IG5oaWV1Lg0KDQoqIFRoZW8gb25nLCBjbyBoYXkga2hvbmcgdGFtIGx5 IGNhdSB0b2FuIHNvIGxhbSBvYW4gZGFuIGRlbiBibyBsb3QgdG9pIHBoYW0/DQoNCi0gSGFuIGNo ZSBvYW4gc2FpIGNodW5nIG5hbyB0b3QgY2h1bmcgYXksIG5odW5nIGRhbmcgbG8gbGEgaGllbiBj byB0YW0gbHkgdmkgc28gb2FuIG1hIA0KYm8gbG90IHRvaSBwaGFtLiBUaGVvIHRvaSwgcGhhaSBu YW5nIGNhbyB0dSB0dW9uZywgdHJhY2ggbmhpZW0gY3VhIGNhbiBibyBuZ2FuaCB0dSBwaGFwOiAN CmNob25nIGxvdCB0b2kgcGhhbSB2YSBjaG9uZyBvYW4gc2FpIGNobyBuZ3VvaSB2byB0b2kuDQoN CiogUXVhIG5odW5nIHZpZWMgYm9pIHRodW9uZyBvYW4gc2FpIHZ1YSByb2ksIGhpbmggbmh1IGNo aSBjbyBOaGEgbnVvYywgY2h1YSB0aGF5IGNhIA0KbmhhbiBjYW4gYm8sIGNvbmcgY2h1YyBuYW8g Y2hpdSB0cmFjaCBuaGllbT8NCg0KLSBQaGFpIHhlbSB4ZXQgdHJhY2ggbmhpZW0gY2EgbmhhbiBj YW4gYm8gY29uZyBjaHVjIGRvaSB2b2kgdHVuZyB2dSB2aWVjIGN1IHRoZSwga2hvbmcgDQpwaGFp IHNhaSBwaGFtIGN1YSBjbyBxdWFuIHRvIHR1bmcgdHJvbmcgdnUgbmFvIGN1bmcgZ2lvbmcgdnUg bmFvLiBUdXkgdGluaCBjaGF0IG11YyBkbyANCnNhaSBwaGFtIG1hIGNhbiBibywgY29uZyBjaHVj IHBoYWkgY2hpdSB0cmFjaCBuaGllbS4NCg0KKiBUaGVvIG9uZywgdGhvaSBnaWFuIHF1YSBuZ3V5 ZW4gbmhhbiBjaGluaCBkYW4gZGVuIHZpZWMgeGF5IHJhIG9hbiBzYWkgbGEgZ2k/DQoNCi0gQ2h1 bmcgdG9pIHNlIGNvIGN1b2MgbmdoaWVuIGN1dSwgcGhhbiB0aWNoIGNhYyBuZ3V5ZW4gbmhhbiBk YW4gZGVuIHZpZWMgeGV0IHh1LCB0cnV5IA0KdG8gc2FpLiBUaHVjIHRlIGNvIG5oaWV1IG5ndXll biBuaGFuOiBkbyBuYW5nIGx1YywgdHJpbmggZG8gY2FuIGJvLCBraG9uZyBsb2FpIHRydSBjbyBj YSANCnRydW9uZyBob3AgY28geSwgImJlbmggYmVuIG5heSBibyBiZW4ga2lhIiBjdWEgbmd1b2kg Y28gdGhhbSBxdXllbi4NCg0KQ2h1bmcgdG9pIG5naGkgcGhhaSB0dW5nIGJ1b2MgeGVtIHhldCB2 YSB4dSBseSwgY2hhbiBjaGluaCBjb25nIHRhYyBkaWV1IHRyYSwgdHJ1eSB0bywgeGV0IA0KeHUg Y3VhIGNhYyBjbyBxdWFuIHRvIHR1bmcgY2hvIGNoaW5oIHhhYywga2hvbmcgZGUgeGF5IHJhIG9h biBzYWksIGdheSB0aGlldCBoYWkgbmdoaWVtIA0KdHJvbmcgY2hvIG5ndW9pIGJpIG9hbiBtYSBi b2kgdGh1b25nIHZhdCBjaGF0IGN1bmcga2hvbmcgdGhlIGJ1IGRhcCBkdW9jLiAiTmhhdCBuaGF0 IA0KdGFpIHR1LCB0aGllbiB0aHUgdGFpIG5nb2FpIiBtYS4NCg0KaHR0cDovL3ZpZXRiYW8udm4v QW4tbmluaC1QaGFwLWx1YXQvQ2FpLWNhY2gtdHUtcGhhcC1jb24tbmhpZXUtdnVvbmctIG1hYy8x MDg4NDc4MS8yMTgvICBOZ3V5ZW4gSGFpIChUaGVvX1ZuRXhwcmVzcy5uZXQpIDMwLzEwLzIwMDQs IDE4OjQyIEdNVCs3IA0KDQpUUCBIQ006IENhaSBjYWNoIHR1IHBoYXAgY29uIG5oaWV1IHZ1b25n IG1hYyANCg0KRG9pIG5ndSBjYW4gYm8gY29uIHRoaWV1LCB0cmluaCBkbyBraG9uZyBkb25nIGRl dSwgaGlldSBxdWEgdHJvbmcgZ2lhaSBxdXlldCBraGlldSBuYWksIA0KdG8gY2FvIGNodWEgY2Fv IHZhIG1vdCBibyBwaGFuIHNhIHN1dCB2ZSBwaGFtIGNoYXQgZGFvIGR1Yy4uLiBsYSBuaHVuZyB2 YW4gZGUgY29uIHRvbiANCnRhaSB0dSBraGkgdGh1YyBoaWVuIE5naGkgcXV5ZXQgMDgtTlEvVFcg dmUgY2FpIGNhY2ggdHUgcGhhcC4NCg0KRG9pIHZvaSBuZ2FuaCBraWVtIHNhdCwgYmEgVm8gVGhp IEtpbSBIb25nLCBWaWVuIHRydW9uZyBWS1NORCBUUCBIQ00gdGh1YSBuaGFuOiANCiJLZXQgcXVh IGNhaSBjYWNoIHR1IHBoYXAgY3VhIFZLUyB0cm9uZyAyIG5hbSBxdWEgY2h1YSB0aHVjIHN1IG5o dSB5LiBDaHVuZyB0b2kgcGhhaSANCm5oaW4gbmhhbiByYW5nIHRyaW5oIGRvLCBuYW5nIGx1YyBj dWEgY3VhIGNhbiBibyBraWVtIHNhdCBjaHVhIGRldSB0YXksIGNodWEgdGh1YyBzdSANCm5nYW5n IHRhbSB2b2kgeWV1IGNhdSBjdWEgY2FpIGNhY2ggdHUgcGhhcDogdmFuIGNvbiB0aW5oIHRyYW5n IHF1YSB0aG9pIGhhbiB0YW0gZ2lhbSwgaG8NCiBzbyBiaSB0cmEgZGkgdHJhIGxhaS4uLiIuDQoN ClZpZWMgdHJhbmggdHVuZyB0YWkgcGhpZW4gdG9hIHRoZW8gcXV5IGRpbmggbW9pIGN1bmcgY29u IG5oaWV1IGJhdCBjYXAuIENoYW5oIGFuIFRBTkQgDQpUUCBIQ00gQnVpIEhvYW5nIERhbmggbmV1 IHJvOiBob2kgZG9uZyB4ZXQgeHUgZGEgZGFuaCBuaGlldSB0aG9pIGdpYW4gdGhvYSBkYW5nIGNo byANCmNhYyBiZW4sIGx1YXQgc3UgdGhhbSBnaWEgdHJhbmggbHVhbiwgcGhhdCBiaWV1IHkga2ll biwgY2h1IHRvYSB0aHVjIGhpZW4gdmFpIHRybyBkaWV1IGhhbmggDQp0cm9uZyB4ZXQgaG9pLCB0 aGUgaGllbiB0aW5oIGRhbiBjaHUuICJUdXkgbmhpZW4sIGhpZW4gbmF5LCB0aGVvIG5naGkgcXV5 ZXQgMDggdmllYyB4ZXQgeHUgDQpjdWEgVG9hIGFuIHBoYWkgZHVhIHZhbyBrZXQgcXVhIHF1YSB0 cmluaCB0cmFuaCB0dW5nIHRhaSBwaGllbiB0b2EuIE5odW5nIEJvIGx1YXQgVFRIUyANCjIwMDMg a2hvbmcgcXV5IGRpbmggdG8gdHVuZyBsYSAidHJhbmggdHVuZyIgbWEgdmFuIGxhIHhldCBob2ks IGNoaSBjbyAidHJhbmggbHVhbiIgZ2l1YSANClZLUyB2YSBsdWF0IHN1LiBWaSB2YXksIGNhYyBs dWF0IHN1IHZhbiB0aHVvbmcga2hpZXUgbmFpIHRvYSB2ZSB2aWVjIHRvYSBjaHVhIHRodWMgaGll biANCmRheSBkdSB2aWVjICJ0cmFuaCB0dW5nIiB0YWkgcGhpZW4gdG9hIiwgb25nIERhbmggbm9p Lg0KDQpWZSBwaGlhIERvYW4gbHVhdCBzdSBUUCBIQ00sIE9uZyBOZ3V5ZW4gRGFuZyBUcnVuZywg Y2h1IG5oaWVtIERvYW4gbHVhdCBzdSBUUCANCnRyaW5oIGJheSwgdGluaCB0aGFuIGN1YSBuZ2hp IHF1eWV0IHRoZSBoaWVuIHRyb25nIHF1eSBkaW5oIGN1YSBCbyBsdWF0IFRvIHR1bmcgaGluaCBz dSBsYSANCmNobyBwaGVwIGx1YXQgc3UgdGhhbSB0byB0dW5nIHNvbSwgdHUgZ2lhaSBkb2FuIGto b2kgdG8gdnUgYW4uIFNvbmcsIHRodWMgdGUgY2FjIGx1YXQgc3UgDQpkYSBnYXAgbmhpZXUgdHJv IG5nYWkgdmUgdGh1IHR1Yy4gVG9hIGFuIHlldSBjYXUgbHVhdCBzdSB0aGFtIGdpYSBiYW8gY2h1 YSBwaGFpIGNvIHZhbiANCmJhbiBjaGFwIG5oYW4gbHVhdCBzdSBjdWEgYmkgY2FvIHRoaSBtb2kg Y2FwIEdpYXkgY2h1bmcgbmhhbiBiYW8gY2h1YSBuaHVuZyBuZXUgYmkgY2FvIA0KYmkgdGFtIGdp YW0gbWEgbHVhdCBzdSBjaHVhIGNvIEdpYXkgY2h1bmcgbmhhbiBiYW8gY2h1YSB0aGkga2hvbmcg dmFvIGR1b2MgdHJhaSBnaWFtIA0KZGUgbGF5IHZhbiBiYW4gZG9uZyB5IGx1YXQgc3UgY3VhIGJp IGNhby4gTmh1bmcgcXV5IGRpbmggdHJhaSBuZ3VvYyBuaGF1IG5heSBraGllbiBjYWMgDQpsdWF0 IHN1IGtobyB0YWMgbmdoaWVwLg0KDQpTbyBrZXQgaGFpIG5hbSB0aHVjIGhpZW4gTmdoaSBxdXll dCAwOCBob20gbmF5LCBjaG8gdGhheSB0cm9uZyAyIG5hbSBxdWEgY2FjIGNvIHF1YW4gDQpjaHVj IG5hbmcgZGEgdHJpZXQgcGhhIDE2NCBiYW5nIG5ob20gZ29tIDU4NyB0ZW4gZ2lldCBuZ3VvaSwg Y3VvcCB0YWkgc2FuOyAzNzEgYmFuZyANCm5ob20gZ29tIDk0OCB0ZW4gY3VvcCBnaWF0IHRhaSBz YW47IDg5MCBvIGNvIGJhYywxLjU1NCB2dSB2ZSBtYSB0dXk7IDEyMCB2dSBsaWVuIHF1YW4gDQpk ZW4gbnVvYyBuZ29haS4uLiBUaW5oIGhpbmggcGhhbSBwaGFwIGhpbmggc3UgdGFpIFRQIEhDTSBn aWFtIGRhbmcga2UuDQoNClR1eSBuaGllbiwgdGhlbyBvbmcgVHJhbiBIb2FuZyBUaGFtLCBUcnVv bmcgQmFuIGNoaSBkYW8gY2FpIGNhY2ggdHUgcGhhcCBUUCBIQ00sIA0KaGllbiB2YW4gY29uIHRv biB0YWkgbmh1bmcgdmFuIGRlIG5odSBzbyB2dSBhbiB2b2kgdGluaCBjaGF0IG5ndXkgaGllbSB2 YW4gY29uIHhheSByYSANCm5oaWV1LCBzbyB2b2kgY2hpIHRpZXUgZGUgcmEgbGEgY2h1YSBkYXQs IHZpZWMga2hhbSBwaGEgYW4gY29uIHRoYXAsIGhpZXUgcXVhIGdpYWkgcXV5ZXQgDQpraGlldSBu YWkgdG8gY2FvIGNodWEgY2FvLCBkb2kgbmd1IGNhbiBibyB0dSBwaGFwIGNvbiB0aGlldSwgdHJp bmggZG8gY2h1YSBkb25nIGRldSwgbW90IA0Kc28gYm8gcGhhbiBzYSBzdXQgdmUgcGhhbSBjaGF0 IGRhbyBkdWMsIGNvIGNhbiBibyBiaSBtdWEgY2h1b2MsIHZpIHBoYW0gcGhhcCBsdWF0IHBoYWkg DQp4dSBseS4uLg0KDQpOZ3V5ZW4gbmhhbiBjdWEgbmh1bmcgdG9uIHRhaSBiYW8gZ29tIGNhIGNo dSBxdWFuIHZhIGtoYWNoIHF1YW4uIENoYW5nIGhhbiBuaHUgYW4gDQp0b24gZG9uZywgdHkgbGUg cGhhIGFuIGNodWEgY2FvLi4uLCB0aGVvIHkga2llbiBjdWEgY2FjIGNvIHF1YW4gdHUgcGhhcCB0 aGkgbW90IHBoYW4gZG8gDQp2aWVjIHRoaWV1IGh1dCBiaWVuIGNoZSBjdWEgbmdhbmguIE5nYW4g c2FjaCBkYW5oIGNobyBjb25nIHRhYyB0dSBwaGFwIGNvbiBoYW4gaGVwLCBjaGUgDQpkbyBjaGlu aCBzYWNoIGRvaSB2b2kgY2FuIGJvIG5nYW5oIGNvbiB0aGFwIG5lbiBraG9uZyB0aHUgaHV0IGR1 b2MgbmhhbiBsdWMgdmFvIGxhbSANCnZpZWMgdHJvbmcgbmdhbmggdHUgcGhhcC4NCg0KVmUgYmll biBwaGFwIGdpYWkgcXV5ZXQgbmh1bmcgdG9uIHRhaSB0cmVuLCBCaSB0aHUgVGhhbmggdXkgTmd1 eWVuIE1pbmggVHJpZXQsIG5vaTogDQoiR2lhaSBwaGFwIGNobyB0aHVjIHRyYW5nIHRoaWV1IGh1 dCBiaWVuIGNoZSBsYSBwaGFpIHN1IGR1bmcgbmhhbiB2aWVuIGhvcCBkb25nLiBOZXUgDQp0cnVv YyBtYXQgY2h1YSB0aGUgZGFtIGJhbyAiY2hhdCIgY3VhIGRvaSBuZ3UgY2FuIGJvLCBjb25nIGNo dWMgbmdhbmggdGhpIGN1bmcgcGhhaSANCmRhbSBiYW8gZHUgImx1b25nIiBkZSBnaWFpIHF1eWV0 IGNvbmcgdmllYyIuIFZlIGxhdSBkYWkgdGhpIG5nYW5oIHR1IHBoYXAgcGhhaSBjbyBrZSANCmhv YWNoIGRhbyB0YW8sIHRhbmcgdG9jIGRhbyB0YW8gZG9pIG5ndSBjYW4gYm8gdm9pIHRyaW5oIGRv IGRhaSBob2MgY2hpbmggcXV5LCBjbyBxdWFuIHR1IA0KcGhhcCBjdWEgVFAgcGhhaSBkb3QgcGhh LCBjaHUgZG9uZyB0cm9uZyBjb25nIHRhYyBjYW4gYm8uIERvaSB2b2kgdGluaCB0cmFuZyBhbiB0 b24gZG9uZyANCmNvbiBjYW8sIGNhYyBuZ2FuaCB0dSBwaGFwIGNhbiBob3AgbGFpIHZhIGN1bmcg YmFuIGRlIGR1YSByYSBwaHVvbmcgaHVvbmcuDQoNCk9uZyBUcnVvbmcgVmluaCBUcm9uZywgQmkg dGh1IFRydW5nIHVvbmcgRGFuZywgVHJ1b25nIEJhbiBub2kgY2hpbmggVHJ1bmcgdW9uZyANCm5l dSBybzogIkNvbmcgdmllYyBuaGlldSBuZW4gcmF0IGNhbiBzdSB0aWNoIGN1YyBjdWEgY2FuIGJv LCBjb25nIGNodWMgbmV1IGtob25nIHNlIA0Ka2hvbmcgZGF0IGR1b2MgaGlldSBxdWEgbmh1IG1v bmcgbXVvbiIuIE9uZyBUcm9uZyBjdW5nIGx1dSB5IGNhYyBjbyBxdWFuIHR1IHBoYXAgDQp0cnVv YyBtYXQgY2FuIGtoYWMgcGh1YyBtb3Qgc28gYmF0IGNhcCwgdGhpZXUgc290IGhpZW4gbmF5IG5o dSB0eSBsZSBwaGEgYW4gY2h1YSBybyB0aHUgDQpwaGFtIHRoYXAsIHR5IGxlIGFuIGh1eSwgc3Vh IGNhbyAoMTclKSwgdGhpIGhhbmggYW4gdG9uIGRvbmcgbmhpZXUuIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDQwMzExMDcuYXNweCAwNC8w OC8yMDEwIDM6MTEgDQoNClRQLkhDTTogSG9pIGxvIGhhbmcgdGkgZG9uZyBkZSBjbyBkdSBhbiBk aWEgb2MgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDAv MjAxMDA5MjcwMDU0MDMuYXNweCAyNy8wOS8yMDEwIDA6NTQgIA0KDQpUUCBIQ006IERhbiBidWMg Ym9pIHZpIHF1eSBob2FjaCAidHJlbyIgIA0KICANCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9U UEhDTS1jby1uaGlldS1xdXktaG9hY2gtdHJlby1uaGF0LzY1MDcxODI2LzEyNS8gMzAvMTAvMjAw NiwgMTQ6MzIgR01UKzcgDQoNClRQIEhDTSBjbyBuaGlldSBxdXkgaG9hY2ggInRyZW8iIG5oYXQg ICAgICAgIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvSG8tdHUtdGhhbi1vLVRQLUhDTS1u aHUtbmFtLXNhdS1tdWEvMTExODYxMTgvMTU3LyAxMy8xMC8yMDEwLCAyMjozNiBHTVQrNyANCg0K VFAgSENNOiAiSG8gdHUgdGhhbiIgbyBUUCBIQ00gbmh1IG5hbSBzYXUgbXVhIA0KDQpodHRwOi8v d3d3LnZpZXRuYW1uZXQudm4vaGNtLzIwMTAxMC9TYWktR29uLWRheS1yYXktaG8tdHUtdGhhbi05 NDIwMDMvIFRoYWkgUGh1b25nIDE5OjEyLCAxMy8xMC8yMDEwIChHTVQrNykNCg0KTmhhIG51b2Mg LSBUUC5IQ006IE5vaSBraGllcCBzbyBtYW5nIHRlbi4uLiBobyB0dSB0aGFuIG8gVFAuSENNDQoN Ci0gTGllbiB0aWVwIGNhYyB2dSB4ZSB0YWksIHhlIHRheGksIHhlIGNvbnRhaW5lci4uLiBzdXAg aG8gdHUgdGhhbiB0cmVuIG5odW5nIHR1eWVuIGR1b25nIG8gDQpUUC5IQ00ga2hpZW4gbmd1b2kg ZGkgZHVvbmcgdGhvdCB0aW0uIEhvIHR1IHRoYW4gZGFuZyAiaG9hbmggaGFuaCIgbyBTYWkgR29u IHRoYXQgc3UgDQpsYSBub2kga2hpZXAgc28gY3VhIG5ndW9pIHRoYW0gZ2lhIGdpYW8gdGhvbmcu IA0KDQoqIFRQLkhDTTogUmEgZHVvbmcgZ2FwLi4uIGhvIHR1IHRoYW4NCiogU3VwIGhvIHR1IHRo YW4sIHhlIGNvbnRhaW5lciBjaG9uZyB2bw0KDQpOb2kgc28gbWFuZyB0ZW46IEhvIHR1IHRoYW4h IA0KDQpDaGlldSAxMy8xMCwgS2h1IHF1YW4gbHkgZ2lhbyB0aG9uZyBkbyB0aGkgc28gMiBkYSBi YW8gY2FvIFNvIEdUVlQgdmUgbmd1eWVuIG5oYW4gDQp4dWF0IGhpZW4gaG8gdHUgdGhhbiBsYW0g bGF0IHhlIGNvbnRhaW5lci4gVnUgbW90IGNvbnRhaW5lciBsYXQgbmdhbmcgZGUgbGVuIGNoaWVj IHhlIG90byANCjQgY2hvIHZpIHN1cCBobyB0dSB0aGFuIGNhbmcgbGFtIG5ndW9pIGRhbiBTYWkg R29uIGJhdCBhbiBtb2kga2hpIHJhIGR1b25nLiANCg0KQ2FjaCBkbyBtb3QgbmdheSwgdHJ1YSAx Mi8xMCwgZGFuZyBsdXUgdGhvbmcgdHJlbiBkdW9uZyBLaGEgVmFuIENhbiwgcGh1b25nIExpbmgg DQpUYXksIHF1YW4gVGh1IER1YywgdGFpIHhlIExlIE1hbmggSHVvbmcgZGEgc3V5dCBjaGV0IHNh dSBjdSBsYXQgeGUgY29udGFpbmVyIGtoYWMuIA0KDQpUaGVvIGJhbyBjYW8gY3VhIEtodSBxdWFu IGx5IGdpYW8gdGhvbmcgZG8gdGhpIDIsIHRydW9jIGtoaSB4YXkgcmEgdnUgdGFpIG5hbiwgbWF0 IGR1b25nIA0KdGFpIGdpYW8gbG8gS2hhIFZhbiBDYW4gLSBIb2FuZyBEaWV1IDIgZGEgY28gZGF1 IGhpZXUgc3V0IGx1bi4gVHJvbmcgbHVjIENvbmcgdHkgDQpUTkhIIE1UViBjb25nIHRyaW5oIFNh aSBHb24gdmEgVHJ1bmcgdGFtIGNob25nIG5nYXAgZGFuZyBwaG9pIGhvcCBraGFjIHBodWMgdmll YyANCnN1dCBsdW4gbWF0IGR1b25nIHRoaSB4YXkgcmEgc3UgY28gKCE/KS4gTmd1eWVuIG5oYW4g eHVhdCBoaWVuIGhvIHR1IHRoYW4gdGhlbyBnaWFpIHRoaWNoIA0KY3VhIGRvbiB2aSBuYXkgbGEg ZG8gdHV5ZW4gb25nIG5oYW5oIGNhcCBudW9jIGJpIGJlLCB0YW8gdGhhbmggaGFtIGVjaCwgZ2F5 IHhvaSBsbyANCm1hdCBkdW9uZy4gSGllbiBobyB0dSB0aGFuIHRyZW4gZHVvbmcgS2hhIFZhbiBD YW4gZGEgZHVvYyBraGFjIHBodWMuIA0KDQooQW5oOiBIbyB0dSB0aGFuIHh1YXQgaGllbiBiYXQg bmdvIGxhbSB4ZSBib24gY2hvbmcgdm8gdHJ1YSAxMi8xMCB0cmVuIGR1b25nIEtoYSBWYW4gDQpD YW4uKSANCihBbmg6IER1b25nIExlIFZhbiBTeSBjdW5nIGxpZW4gdGllcCB4dWF0IGhpZW4gbmh1 bmcgY2FpIGhvIHNhdSBob2FtIHNvIHRhaSBsYXAgbWF0IGR1b25nIGNhdSB0aGEuKSANCg0KTGll biB0aWVwIGNhYyB2dSB0YWkgbmFuIGRvIGhvIHR1IHRoYW4gZ2F5IHJhIGtoaWVuIG5oaWV1IG5n dW9pIGdpYXQgbWluaCwgY28gdGhlIG5vaSB0dSANCnRydW5nIHRhbSBUUCByYSBkZW4gbmdvYWkg dGhhbmgsIG5vaSBuYW8gY3VuZyBjbyBobyB0dSB0aGFuLiANCg0KVGFpIGxhcCBhdSwgYWkgbG90 IGhvLi4uIHJhbmcgY2hpdT8hIA0KDQpOZ3V5ZW4gbmhhbiBjaGluaCBsYW0geHVhdCBoaWVuIG5o dW5nIGNhaSAiYmF5IGdpZXQgbmd1b2kiIHRyZW4gZHVvbmcgbGEgZG8gdGluaCB0cmFuZyANCnRo aSBjb25nIHZhIHRhaSBsYXAgbWF0IGR1b25nIGNhdSB0aGEgY3VhIGNhYyBuaGEgdGhhdS4gVGhl IG5odW5nLCBjYWMgYmllbiBwaGFwIHh1IHBoYXQgDQpjdWEgU28gR1RWVCwgY28gcXVhbiBjaHVj IG5hbmcgY2h1YSBkdSBtYW5oIGRlIHJhbiBkZSBuaHVuZyB2aSBwaGFtIGJlIGJvaSBuYXkuIA0K DQpOZ2F5IGNhIGtoaSBzdSBjbywgdGFpIG5hbiB4YXkgcmEsIG5ndW9pIGRhbiBraG9uZyBiaWV0 ICJrZXUgY3V1IiBhaSBkZSBkb2kgYm9pIHRodW9uZyENCg0KIkhpZW4gY29uIGtob2FuZyA0MDAg bmhhIHRoYXUgdGhpIGNvbmcgY2FjIGR1IGFuIHRyZW4gZGlhIGJhbiBUUCBubyB0aWVuIHBoYXQg dmkgcGhhdCANCmRhbyBkdW9uZywgdGFpIGxhcCBtYXQgZHVvbmcuLi4gaG9uIDggdHkgZG9uZyIg LSBtb3QgY2FuIGJvIFNvIEdUVlQgY2hvIGJpZXQuIA0KDQooQW5oOiBOZ3VvaSBTYWkgR29uIGto aWVwIHNvIHZvaSBuaHVuZyBjYWkgaG8gdHUgdGhhbiBudW90IHhlIG5odSB0aGUgbmF5LiBWYSB0 cm9uZyANCnRpbmggdHJhbmcgZHVvbmcgbmdhcCB0aGUgbmF5LCBsaWV1IGNvIHBoYXQgaGllbiBk YXUgbGEuLi4gaG8gdHUgdGhhbiBkZSB0cmFuaD8gKQ0KDQpEYW5nIG5vaSwgcGhhbiBsb24gY2Fj IGhvIHR1IHRoYW4geHVhdCBoaWVuIHRyZW4gZHVvbmcgc2F1IGtoaSAibG8gY290IiBjdWEgZHUg YW4gVmUgDQpzaW5oIG1vaSB0cnVvbmcgTmhpZXUgTG9jIC0gVGhpIE5naGUgZG9pIGRpLiBUcmFv IGRvaSB2b2kgUFYgVmlldE5hbU5ldCB2ZSB2YW4gZGUgDQpuYXksIFBobyBHaWFtIGRvYyBTbyBH VFZUIFRyYW4gVGhlIEt5IGNobyBiaWV0LCBzbyBkYSBhcCBkdW5nIG5oaWV1IGJpZW4gcGhhcCAN Cm1hbmgsIGdpYW8gVGhhbmggdHJhIFNvIGtpZW0gdHJhIGNvbmcgdGFjIHRhaSBsYXAgbWF0IGR1 b25nLCBwaGF0IGhhbmggY2hpbmggaG9hYyBkaW5oIA0KY2hpIHRoaSBjb25nIHZvaSBuaGEgdGhh dSB2aSBwaGFtIG5oaWV1IGxhbi4gIk5nYXkgY2EgcGh1b25nIGFuIGRhbmggdmFvIHR1aSB0aWVu IGN1YSANCm5oYSB0aGF1IGN1bmcgZHVvYyBzbyBhcCBkdW5nLiBOaGEgdGhhdSBuYW8gY2hheSB5 LCB2aSBwaGFtIG5oaWV1IGxhbi4uLiBzZSBiaSB0cnUgdGllbiANCmtoaSBrZXQgdGh1YyBnb2kg dGhhdSIgLSBvbmcgS3kga2hhbmcgZGluaC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZu L05ld3MvUGFnZXMvMjAxMDUzLzIwMTAxMjI5MTUzNzE5LmFzcHggVHJpIFF1YW5nIDI5LzEyLzIw MTAgMTU6MzcgDQoNClRQIEhDTTogIkhvIHR1IHRoYW4iIG5nYXkgdHJ1bmcgdGFtIHRoYW5oIHBo byANCg0KVHJ1YSAyOS4xMiwgdGFpIGtodSB2dWMgZ2FuIG5nYSB0dSBUcmFuIERpbmggWHUgLSBU cmFuIEh1bmcgRGFvIChRLjEsIFRQLkhDTSkgeHVhdCANCmhpZW4gImhvIHR1IHRoYW4iIGtoYSBs b24uICBIbyBuYXkgc2F1IGtob2FuZyAxLDJtLCBiZW4gZHVvaSByb25nIGNvIDIgdGhhbmggdGEg dmV0IA0KZHVvbmcgcmF5IGN1IGNoYW4gbmdhbmc7IHJhdCBtYXkga2hvbmcgY28gc3UgY28gZGFu ZyB0aWVjIG5hbyB4YXkgcmEuICAgDQoNCmh0dHA6Ly9iZXRhLnRoYW5obmllbi5jb20udm4vUGFn ZXMvMjAxMDEyMzEvbmFtLTIwMTEtdHAtaGNtLXZhbi1uZ2FwLW51b2MtdmEtdW4tdGFjLmFzcHgg VHJhbiBEdXkgMzEvMTIvMjAxMCAxODoyNSANCg0KVFAgSENNOiBOYW0gMjAxMSwgVFAuSENNIHZh biBuZ2FwIG51b2MgdmEgdW4gdGFjDQoNCihUTk8pIE5nYXkgMzEuMTIsIFNvIEdpYW8gdGhvbmcg dmFuIHRhaSAoR1RWVCkgVFAuSENNIGNobyBiaWV0LCBuYW0gMjAxMSwgbmdhcCANCm51b2MgdmEg dW4gdGFjIGdpYW8gdGhvbmcgdGllcCB0dWMgZGllbiBiaWVuIHBodWMgdGFwLiANCg0KTm9pIGR1 bmcNCg0KVGhlbyBvbmcgRGF1IEFuIFBodWMsIFRydW9uZyBwaG9uZyBRdWFuIGx5LCBLaGFpIHRo YWMgaGEgdGFuZyAtIFNvIEdUVlQgVFAuSENNLCANCm5odW5nIGRpZW4gYmllbiBiYXQgdGh1b25n IGN1YSB0aG9pIHRpZXQgdHJvbmcgdGhvaSBnaWFuIHF1YSwgY3VuZyB2b2kgbmh1bmcgdGFjIGRv bmcgDQpjdWEgdmllYyB0cmllbiBraGFpIGRvbmcgYm8gdHJlbiBkaWVuIHJvbmcgY2FjIGR1IGFu IGhhIHRhbmcgZG8gdGhpIGxhbSBraGEgbmFuZyB0aG9hdCANCm51b2MgY3VhIGhlIHRob25nIHRo b2F0IG51b2MgaGllbiBodXUgcXVhIHRhaS4gRG8gdmF5LCB0aW5oIHRyYW5nIG5nYXAgbnVvYyBj byBkYXUgaGlldSANCmdpYSB0YW5nIGN1YyBibyB0YWkgbW90IHNvIGtodSB2dWMgdHJlbiBkaWEg YmFuIHRoYW5oIHBobywgZ2F5IGFuaCBodW9uZyBsb24gZGVuIHZlIHNpbmggDQptb2kgdHJ1b25n IHZhIG15IHF1YW4gdGhhbmggcGhvLiANCg0KQ3VuZyB0aGVvIFNvIEdUVlQsIG5nYXAgbnVvYyBk byBtdWEgbG9uIHZhIHRyaWV1IGN1b25nIGRhIGxhbSBjaG8gdGhvaSBnaWFuIGRpIGxhaSB0YWkg DQpUUC5IQ00gY2hhbSBob24gbmhpZXUgc28gdm9pIGNhYyBuYW0gdHJ1b2MsIGRhYyBiaWV0IGxh IG90byBraGkgbHV1IHRob25nIHRyb25nIGtodSANCnZ1YyBub2kgdGhhbmguIA0KDQpTbyBHVFZU IGN1bmcgdGh1YSBuaGFuLCB0cm9uZyBtdWEgbXVhIDIwMTAsIGxpZW4gdGllcCB4dWF0IGhpZW4g bmhpZXUgaG8gc3VwIHRyZW4gbWF0IA0KZHVvbmcsIGdheSBidWMgeHVjIHRyb25nIGR1IGx1YW4u IFR1IHRoYW5nIDcuMjAxMCBkZW4gMjguMTIuMjAxMCwgZGEgeGF5IHJhIDY0IHZ1IGx1biANCnN1 cCBtYXQgZHVvbmcuIA0KDQooQW5oOiAiSG8gdHUgdGhhbiIgbGEgbW90IHRyb25nIG5odW5nIHZh biBkZSBnYXkgYnVjIHh1YyBjaG8gbmd1b2kgZGFuIFRQLkhDTSB0cm9uZyANCm5hbSAyMDEwIC0g QW5oOiBUcmFuIER1eSkgDQoNCkhpZW4gU28gR1RWVCBkYW5nIHBob2kgaG9wIHZvaSBjYWMgbmhh IGtob2EgaG9jIHRpZW4gaGFuaCBraWVtIHRyYSBjYWMgc3UgY28gbHVuLCBzdXAgDQptYXQgZHVv bmcgdHJlbiBkaWEgYmFuIHRoYW5oIHBobyBkZSB4YWMgZGluaCBjaGluaCB4YWMgbmd1eWVuIG5o YW4gdmEgZHVhIHJhIGNhYyBnaWFpIA0KcGhhcCB0cmlldCBkZSwgZ2lhbSB0aGlldSBjYWMgc3Ug Y28gbHVuIHN1cCB4YXkgcmEgdHJvbmcgdGhvaSBnaWFuIHRvaS4gDQoNCkRlIGRhbSBiYW8gYW4g dG9hbiBnaWFvIHRob25nLCBnaWFtIHRoaWV1IGJ1YyB4dWMgY3VhIG5ndW9pIGRhbiB0aGFuaCBw aG8gdHJvbmcgbmFtIA0KMjAxMSwgb25nIExlIFRvYW4sIFBobyBnaWFtIGRvYyBTbyBHVFZUIFRQ LkhDTSBkYSBjaGkgZGFvIGNhYyBkb24gdmkgdHJ1YyB0aHVvYyANCm5naGllbiBjdXUgdGFjaCBk b25nIHhlIDIgYmFuaCB2b2kgZG9uZyB4ZSA0IGJhbmggbyBuaHVuZyB0dXllbiBkdW9uZyBjbyBt YXQgZG8gbHV1IA0KdGhvbmcgY2FvLiANCg0KU28gR1RWVCBjdW5nIHlldSBjYXUgY2FjIG5oYSB0 aGF1IHRoaSBjb25nIGNoaWVtIGR1bmcgbWF0IGR1b25nIGRlIHJhIHBodW9uZyBhbiB0aGkgDQpj b25nIGR1bmcgdGhvaSBoYW4sIHRyYW5oIHRpbmggdHJhbmcgImxvIGNvdCIgYW4gbmd1IHF1YSBs YXUgdHJ1b2MgbmhhIG5ndW9pIGRhbiB2YSB4aW4gDQpnaWEgaGFuIHRob2kgZ2lhbiB0b24gdGFp ICJsbyBjb3QiLiANCg0KRG9pIHZvaSAiaG8gdHUgdGhhbiIsIG9uZyBUb2FuIHlldSBjYXUgY2Fj IGtodSBxdWFuIGx5IGdpYW8gdGhvbmcgdGFuZyBjdW9uZyB0dWFuIHRyYSANCnBoYXQgaGllbiBz b20gImhvIHR1IHRoYW4iIGRhbmcgInBob2kgdGhhaSIuIE9uZyBUb2FuIGN1bmcgZGUgbmdoaSBj YWMgc28sIG5nYW5oLCBjaHUgDQpkYXUgdHUgY28gY29uZyB0cmluaCBuZ2FtIGR1b2kgbWF0IGR1 b25nIHBob2kgaG9wIHh1IGx5ICJobyB0dSB0aGFuIi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAxODAxMjIyMC5hc3B4IFBodW9uZyBUaGFu aCAxOC8xMC8yMDEwIDE6MjIgDQoNClRQIEhDTTogVGhpIGNvbmcga2lldSAiYmF5IG5ndW9pIiAg IA0KICANCihBbmg6IEhlIHRob25nIGNvbmcgdGhvYXQgbnVvYyBkYSB2YSBkYW5nIGxhcCBkYXQg byB0cnVuZyB0YW0gVFAuSENNIC0gZG8gaG9hOiBEdSBTb24pDQoNClR1IGhhbmcgbG9hdCB2dSBz dXAgaG8gZ2F5IHRhaSBuYW4gbyBUUC5IQ00sIG5oaWV1IGNodXllbiBnaWEgY2FuaCBiYW8gdGlu aCB0cmFuZyBuYXkgDQpzZSBjb24gdGFpIGRpZW4gZG8gdmllYyBsYXAgZGF0IG9uZyBjYXAgLSB0 aG9hdCBudW9jIGtob25nIGR1bmcga3kgdGh1YXQgZGFuIHRhbyBuZW4gY2FjIA0KaG8gcm9uZyBu YW0gYW4gdHJvbmcgbG9uZyBkYXQsIHNhbiBzYW5nIHN1cCB4dW9uZyBiYXQga3kgbHVjIG5hbyBk ZSAiYmF5IiBuZ3VvaSBkaSANCmR1b25nLiANCg0KVFMgVnUgWHVhbiBIb2EgKEtob2EgWGF5IGR1 bmcsIERhaSBob2MgQmFjaCBraG9hIFRQLkhDTSkgY2hvIHJhbmcsIHRyb25nIGNhYyB2dSANCnN1 cCBobyB2dWEgcXVhLCBwaGFuIGxvbiBtYXQgZHVvbmcgbmh1YSBiZW4gdHJlbiBkZXUga2hvbmcg Y28gZGF1IGhpZXUgbHVuLCBzb25nIHRodWMgDQp0ZSBiZW4gdHJvbmcgbG9uZyBkYXQgZGEgeHVh dCBoaWVuIGNhYyBobyByb25nLiBDaG8gbmVuLCBraGkgeGUgY28gdGFpIHRyb25nIGR1IG5hbmcg Y2hheSANCnF1YSwgcGhhbiBkdW9uZyBsYXAgdHVjIHN1cCB4dW9uZyBkb3QgbmdvdCwgZ2F5IHRh aSBuYW4uIE5ndXllbiBuaGFuLCB0aGVvIFRTIEhvYSwgY28gDQp0aGUgZG8gY2FjIGNvbmcgdGhv YXQgbnVvYyBiZW4gZHVvaSBkYSBkdW9jIGxhcCBkYXQga2hvbmcgZHVuZyBreSB0aHVhdCwgbW9p IG5vaSBnaXVhIA0KY2FjIGRvdCBjb25nIGJpIGhvIGtoaWVuIG51b2MgdGhheSB2aSBjaGF5IHRy b25nIG9uZyBjb25nIHRoaSBsYWkgY2hheSByYSBuZ29haS4gTGF1IGRhbiANCmRhdCBjYXQsIHZh dCBsaWV1IHRyb25nIGxvbmcgZGF0IGJpIGN1b24gdHJvaSwgZGUgbGFpIGNhYyBraG9hbmcgdHJv bmcgbmFtIGNodWMgY2hvIGdheSB0YWkgDQpob2EuDQoNCktob25nIGNoaSBjb25nIHRob2F0IG51 b2MgbWEgdm9pIGhlIHRob25nIG9uZyBjYXAgbnVvYyBjdW5nIG5ndXkgaGllbSBraG9uZyBrZW0s IA0KYm9pIG51b2MgY2hheSB0cm9uZyBvbmcgY2FwIG51b2MgY28gYXAgc3VhdCBsb24sIHRvYyBk byBkb25nIGNoYXkgbmhhbmggbmVuIGtoaSBiaSBybyByaSANCnRoaSBwaHV0IG1hbmggdHJvbmcg bG9uZyBkYXQgbGFtIGRhdCBjYXQgY3VvbiB0cm9pIGNhbmcgbmhhbmgsIGhvIG5nYW0gY2FuZyBy b25nIGtoaWVuIA0KbWF0IGR1b25nIGJlbiB0cmVuIGRlIGRhbmcgc3VwIHh1b25nLiBNb3Qgbmd1 eWVuIG5oYW4ga2hhYyBsYSBjb25nIHRhYyB0YWkgbGFwIG1hdCANCmR1b25nIGNhdSB0aGEgY3Vu ZyBraGllbiBudW9jIHR1IHRyZW4gbmdhbSB4dW9uZyBsb25nIGRhdCwgY3VvbiB0cm9pIGRhdCBj YXQgYmVuIGR1b2kgDQp2YSB2ZSBsYXUgZGFpIGRhbiBoaW5oIHRoYW5oIGNhYyBobyBuZ2FtIHR1 b25nIHR1IG5odSB0cnVvbmcgaG9wIHRyZW4uIE9uZyBIb2Ega2hhbmcgDQpkaW5oLCB2ZSBuZ3V5 ZW4gdGFjLCBuZXUgbmhhIHRoYXUgdGhpIGNvbmcgZHVuZyBreSB0aHVhdCwgZGFtIGJhbyBjaGF0 IGx1b25nIHRoaSBraG9uZyBiYW8gZ2lvIHhheSByYSBzdXAgaG8ga2lldSBuYXkuDQoNCkRhbmcg bm9pIGxhLCB0aGVvIFRTIEhvYSwgdGluaCB0cmFuZyBobyBuZ2FtIGtob25nIHBoYWkgY2h1eWVu IG1vaSBvIFRQLkhDTSBtYSBkYSANCmR1b2MgY2FjIGNodXllbiBnaWEgY2FuaCBiYW8gdHUgY2Fj aCBkYXkgbWF5IG5hbS4gIlRydW9jIGRheSwga2hpIGNodWFuIGJpIHN1YSBjaHVhIA0KY29uZyB0 aG9hdCBudW9jIHRyZW4gZHVvbmcgUGFzdGV1ciAoUS4xKSwgYmVuIGhvbmcgU28gR1RWVCwgdG9p IGRhIGNvIGRpcCBjaHVpIHh1b25nIA0KZHVvbmcgY29uZyBuYXkgZGUgcXVhbiBzYXQuIEx1YyBk bywgZHVvbmcgY29uZyBiaSB2bywgbnVvYyBjaGF5IGFvIGF0IGN1b24gdHJvaSBkYXQgY2F0IA0K YmVuIG5nb2FpIGNvbmcsIGRlIGxhaSBuaHVuZyBsbyBob25nIGxvbiBtYSBuZ3VvaSBkdW5nIGR1 b2kgY28gdGhlIG5oaW4gdGhheSBsb3Aga2V0IA0KY2F1IG1hdCBkdW9uZyB4ZSBjaGF5IGJlbiB0 cmVuLiBSYXQgbWF5LCBkdW9uZyBQYXN0ZXVyIGtob25nIGNvIHhlIHRhaSBjaGF5IHZhIHBoYW4g DQpjb25nIGJpIGhvbmcgbmFtIG8gbGFuIGR1b25nIGNobyB4ZSAyIGJhbmggbmVuIGRhIGtob25n IHhheSByYSBzdSBjbyBkYW5nIHRpZWMuIE5oYWMgDQpsYWkgY2h1eWVuIGN1IGRlIHRoYXkgcmFu ZyB2YW4gZGUgc3VwIGhvIGRhIGR1b2MgZGUgY2FwIHZhIGNhbmggYmFvIGRlbiBjYWMgY28gcXVh biANCmNodWMgbmFuZyB0dSBsYXUgbmh1bmcgZGVuIG5heSBsYWkgeHVhdCBoaWVuIHZvaSBtdWMg ZG8gZGF5IGRhYyB2YSBuZ2hpZW0gdHJvbmciIC0gb25nIEhvYSBub2kuDQoNClRTS0ggSG9hbmcg TmdvYyBLeSAtIGNodXllbiBnaWEgbmdoaWVuIGN1dSBkaWEgY2hhdCAtIGN1bmcgY2FuaCBiYW8g Y2FjIHNhaSBzb3QgdmUgDQpreSB0aHVhdCBraGkgbGFwIGRhdCBjb25nIHRob2F0IG51b2Mgc2Ug cmF0IG5ndXkgaGllbSB2ZSBsYXUgZGFpLiBCb2kgbmV1IHN1cCBobyBkbyB0YWkgbGFwIA0KY2F1 IHRoYSBjbyB0aGUga2hhYyBwaHVjIGJhbmcgdmllYyB0YWkgbGFwIGxhaSwgbmh1bmcgbmV1IGxh cCBkYXQgY29uZyBzYWkga3kgdGh1YXQgdHJvbmcgDQpsb25nIGRhdCB0aGkga2hvbmcgY2FjaCBn aSBraGFjIHBodWMgdHJpZXQgZGUsIG5nb2FpIHZpZWMgcGhhaSBkYW8gbGVuIGxhbSBsYWkuDQoN CkNhbiBraGFuIHRydW9uZyBraWVtIHRyYSBjaGF0IGx1b25nIHRoaSBjb25nDQoNCk9uZyBLeSBj aG8gcmFuZywgbmd1b2kgZGFuIGhvYW4gdG9hbiBjbyBxdXllbiBkYXQgbmdoaSB2YW4gdmUgY2hh dCBsdW9uZyB0aGkgY29uZyANCmNvbmcgdGhvYXQgbnVvYyBvIGJlbiBkdW9pIGNhYyB0dXllbiBk dW9uZyB4YXkgcmEgdGFpIG5hbiBjdW5nIG5odSBjYWMgdHV5ZW4gZHVvbmcgDQpjb24gbGFpLCBu aGF0IGxhIHZvaSBoZSB0aG9uZyBjb25nIGRvIGNhYyBuaGEgdGhhdSB0aGkgY29uZyBjYXUgdGhh IGdheSByYSBzdSBjbyBzdXAgaG8uIA0KVHJvbmcgZG8sIExpZW4gZGFuaCB4YXkgZHVuZyBWSUMg bGEgbW90IHRyb25nIG5odW5nIG5oYSB0aGF1IGJlIGJvaSBuaGF0IHZhIHR1bmcgYmkgDQp4dSBw aGF0IGhhbmcgdHJhbSBiaWVuIGJhbiB0cm9uZyBxdWEgdHJpbmggdGhpIGNvbmcsIGRheSBjdW5n IGxhIG5oYSB0aGF1IGRhIGRlIHhheSByYSBzdSANCmNvIHN1cCBobyB0YWkgY2F1IEtpZXUgKG5n YXkgOC4xMCkgdmEgZ2lhbyBsbyBWbyBUaGkgU2F1IC0gSGFpIEJhIFRydW5nIChuZ2F5IDEwLjEw KS4gDQpOaHUgdmF5LCBsaWV1IGNhYyB0dXllbiBjb25nIHRob2F0IG51b2MgZG8gVklDIGxhcCBk YXQgdHJlbiBjYWMgZHVvbmcgTmd1eWVuIERpbmggDQpDaGlldSwgQ2FjaCBNYW5nIFRoYW5nIFRh bSwgQmEgVGhhbmcgSGFpLCBUcmFuIEtoYW5oIER1LCBUcmFuIE5oYXQgRHVhdCwgVHJhbiANCkto YWMgQ2hhbiwgVHJhbiBRdWFuZyBLaGFpLCBEYW5nIER1bmcuLi4gY28gZGFtIGJhbyBjaGF0IGx1 b25nIHZhIGtob25nIHhheSByYSBzdSANCmNvIHN1cCBobyB0cm9uZyB0dW9uZyBsYWk/IA0KDQpU dW9uZyB0dSwgVG9uZyBjb25nIHR5IHhheSBkdW5nIHNvIDEgZGEgZGUgeGF5IHJhIHN1IGNvIHN1 cCBobyB0YWkgbmdhIHR1IFBodSBOaHVhbiANCihuZ2F5IDEuOCkgY3VuZyBsYSBuaGEgdGhhdSB0 aGkgY29uZyB0cmVuIG5oaWV1IHR1eWVuIGR1b25nIGtoYWMgbmh1IFBoYW4gRGluaCBQaHVuZywg DQpOZ3V5ZW4gS2llbSwgRGluaCBUaWVuIEhvYW5nLCBMZSBRdWFuZyBEaW5oLCBQaGFtIFZhbiBI YWkuLi4gDQoNCkNvbiBsaWVuIGRhbmggRHJlY28gLSBDaWVuY28gNSBkZSB4YXkgcmEgMiBzdSBj byBzdXAgaG8gdnVhIHF1YSBsYSBkb24gdmkgdGhpIGNvbmcgbGFwIA0KY29uZyB0cmVuIHRydWMg ZHVvbmcgTGUgVmFuIFN5LCBCdWkgVGhpIFh1YW4uLi4NCg0KTmd1b2kgZGFuIGtob25nIHRoZSBi aWV0IGNoYXQgbHVvbmcgbGFwIGRhdCBjYWMgdHV5ZW4gY29uZyBiZW4gZHVvaSBsb25nIGRhdCB0 aGUgbmFvLCANCmxpZXUgcm9pIGJhbyBnaW8gdmEgbyBkYXUgdGluaCB0cmFuZyBzdXAgaG8gc2Ug bGFpIHRhaSBkaWVuPyBUaGlldCBuZ2hpIGNhYyBjbyBxdWFuIGNodWMgDQpuYW5nIGNhbiBraGFu IHRydW9uZyB0aGFuaCBsYXAgZG9hbiBraWVtIHRyYSByYSBzb2F0IGxhaSBjaGF0IGx1b25nIHRh aSBjYWMgdHV5ZW4gZHVvbmcgDQpkbyBjYWMgbmhhIHRoYXUgbmF5IHRoaSBjb25nLCBzYXUgZG8g bW8gcm9uZyByYSB0b2FuIGJvIGhlIHRob25nIHRob2F0IG51b2MgY3VhIFRQLiBCb2kgDQpuZXUg Y2hhbSBwaGF0IGhpZW4gY2FjIHNhaSBzb3QsIHRoaSBjYWMgaG8gbmdhbSBzb20gbXVvbiBjdW5n IHNlIGhpbmggdGhhbmggYW0gdGhhbSANCnRyb25nIGxvbmcgZGF0LCBjaHVjIGNobyBnYXkgdGFp IGhvYSBjaG8gbmd1b2kgZGFuLiANCg0KaHR0cDovL3d3dyBodHRwOi8vd3d3LnNnZ3Aub3JnLnZu L3hhaG9pLzIwMDgvMTAvMTY3NDkzLyBUaHUgaGFpLCAwNi8xMC8yMDA4LCAyMzoyOCAoR01UKzcp IA0KDQpUUEhDTTogU2FuIGdvbGYgdG9hbiAidmkgdHJpIHZhbmciLCBkYW5nIHNhdSBzYW4gZ29s ZiBsYSBkaWEgb2MgDQoNClZpIHNhbyBxdXkgaG9hY2ggc2FuIGdvbGYgKHNhbiBnb24pIG5oaWV1 PyBWaSBzYW8gY28gbmhpZXUgY2h1IGRhdSB0dSBuaGFvIHZvIGxpbmggdnVjIHNhbiBnb2xmPyBD byBsZSBjYXUgdHJhIGxvaSBkYSBoaWVuIHJvIHRyb25nIGNhYyBiYW4gZG8gcXV5IGhvYWNoOiB0 cm9uZyBzYW4gZ29sZiBjbyBkaWEgb2MsIGRpYSBvYyBsYSBkaWNoIG5oYW0sIHZpIGRvIGxhIHNp ZXUgbG9pIG5odWFuIQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOS8wOC84 NjYxMzMvIENhcCBuaGF0IGx1YyAyMjoxNiwgQ2h1IE5oYXQsIDMwLzA4LzIwMDkgKEdNVCs3KQ0K DQpUUEhDTTogIFNhbiBnb2xmICJjaGllbSIgZGF0IHZhbmcsIGRlbiBidSByZSBtYXQ/DQoNCkRl biBidSBjaHVhIHhvbmcsIGJvIGhvYW5nIGRhdCBjb25nIHRyb25nIHRob2kgZ2lhbiBkYWkuLi5u aHVuZyBzYW4gZ29sZiBBbiBQaHUgKHF1YW4gMikgbGFpIGxpZW4gdHVjIHhpbiAiZGlldSBjaGlu aCBxdXkgaG9hY2giIHRhbmcgc28gbmVuIGJpZXQgdGh1IG5oYW0gbXVjIGRpY2gga2luaCBkb2Fu aC4gIA0KICANCkhhdSBxdWEgbGEgZHUgYW4gYmkga2VvIGRhaSB0aG9pIGdpYW4sIGNhIHRyYW0g aGEgZGF0IGJpIGJvIGhvYW5nLk5ndW9pIGRhbiBwaGFpIG5oYW4ga2hvYW4gZGVuIGJ1IGl0IG9p LCBraGFjIHhhIGdpYSB0cmkgdGhhdCBjdWEgbWFuaCBkYXQgaG8gZGFuZyBxdWFuIGx5LCBzdSBk dW5nLi4NCg0KaHR0cDovL3d3dy5zZ2dwLm9yZy52bi94YWhvaS8yMDA4LzEwLzE2NzM5NS8gVGh1 IGhhaSwgMDYvMTAvMjAwOCwgMDA6NTYgKEdNVCs3KSBMdW9uZyBUaGllbiAtIFF1b2MgSHVuZw0K DQpUUEhDTSBzZSBjbyBiYW8gbmhpZXUgc2FuIGdvbGY/IC0gQmFpIDE6IEhhbmcgbmdhbiBoZWN0 YSBuYW0gY2hvLi4uDQoNCkJvbiBwaGlhIGxhIHNhbiBnb2xmIQ0KDQpOZXUgc28gc2FuaCB2b2kg Y2FjIHRpbmggbGFuIGNhbiwgdmllYyBwaGF0IHRyaWVuIHNhbiBnb2xmIGN1YSBUUEhDTSB0aHVv YyBkYW5nICJkaSB0cnVvYyB2ZSBzYXUiLCB4dWF0IGhpZW4gc29tIG5oYXQgbmh1bmcgZGkgdmFv IGtoYWkgdGhhYyByYXQga2hpZW0gdG9uLCB2b2kgbW90IHNhbiBnb2xmIHRhaSBxdWFuIDkgdmEg bW90IHNhbiBuaG8gbyBraHUgZG8gdGhpIFBodSBNeSBIdW5nLiANCg0KQ28gbGUgc3UgY2hhbSBj aGFwIGN1YSBUUCBsYWkgbGEgY28gaG9pIGNobyBjYWMgZGlhIHBodW9uZyBraGFjLCBuZW4gdGFp IHRpbmggQmluaCBEdW9uZyBjbyA0IHNhbjogTWVrb25nIEdvbGYgVmlsbGFzLCBHb2xmIFBhbG0g U29uZyBCZSwgVHdpbiBEb3ZlcyBHb2xmIENsdWIgJiBSZXNvcnQsIENhdSBsYWMgYm8gR29sZiB2 YSBraHUgbmdoaSBkdW9uZyBkYW8gSG8gRGllcC4gU2FuZyB0aW5oIERvbmcgTmFpLCBuZ29haSBz YW4gZ29sZiBMb25nIFRoYW5oIGxhaSBjbyBzYW4gZ29sZiBUcmFuZyBCb20sIGhvYWMgeGEgaG9u IG5odSBWdW5nIFRhdSBjbyBzYW4gZ29sZiBDaGkgTGluaC4uLg0KVHV5IG5oaWVuLCBkbyBjaGkg bGEgY2FtIG5oYW4gdHUgInZvbmcgbmdvYWkiLiBCb2kgbmV1IHRpbmggdGhlbyBuaHVuZyBkdSBh biBkYSB2YSBkYW5nLCBjaHVhbiBiaSB0cmllbiBraGFpIHRoaSB0YWkgVFBIQ00gc2FuIGdvbGYg a2hvbmcgbmh1bmcgImJvYyIgdGllcCBtb3Qgdm9uZyBudWEgbWEgY29uIHh1YXQgaGllbiBuZ2F5 IHRhaSBub2kgdGhhbmguIA0KDQpOYW0gMTk5MiwgbGllbiBkb2FuaCBzYW4gZ29sZiBUaHUgRHVj IGhpbmggdGhhbmggbmhhbSB0aHVjIGhpZW4gbW90IGR1IGFuIHNhbiBnb2xmIG5nYXkgdGFpIHZ1 bmcgZG9pIHRobyBtb25nIExhbSBWaWVuLCBuYXkgdGh1b2MgcXVhbiA5LiBIYWkgbmFtIHNhdSwg c2FuIGdvbGYgbmF5IGNoaW5oIHRodWMgZHVhIHZhbyBraGFpIHRoYWMgdmEgdHJvIHRoYW5oIHNh biBnb2xmIGRhdSB0aWVuIGN1YSBUUC4gDQoNClNhdSBkbyBuaGlldSBuYW0sIGhhbmcgbG9hdCBk dSBhbiBzYW4gZ29sZiBraGFjIHJhIGRvaSwgdGhlIGhpZW4gcXVhIGRlIHh1YXQgbWFuZyBsdW9p IHNhbiBnb2xmIHRyZW4gZGlhIGJhbiBUUCBjdWEgU28gUXV5IGhvYWNoIC0gS2llbiB0cnVjIFRQ SENNIHZhbyBuYW0gMjAwNy4gVGhlbyBkbywgdG9hbiBUUCBzZSBjbyAxMyBzYW4gZ29sZiwgYmFv IGdvbSBjYSBzYW4gZ29sZiBUaHUgRHVjLCByaWVuZyBub2kgdGhhbmggc2UgY28gbW90IHNhbiBn b2xmIHRhaSBzYW4gYmF5IFRhbiBTb24gTmhhdCAocXVhbiBUYW4gQmluaCksIGNhYyBzYW4gZ29s ZiBjb24gbGFpIG5hbSBvIG5nb2FpIHRoYW5oLCBwaGFuIGJvIHRoZW8gYm9uIGh1b25nLCB0aHVv bmcgbGllbiBrZSBuaGF1LiANCg0KUGhpYSBEb25nIGNvIDUgc2FuIGdvbGYNCg0KUGhpYSBUYXkg ZHUga2llbiBjbyAyIHNhbiBnb2xmIHRhaSBodXllbiBCaW5oIENoYW5oDQoNClBoaWEgTmFtIGR1 IGtpZW4gY28gMyBzYW4gZ29sZiwgaHV5ZW4gTmhhIEJlIGNvIDIgc2FuIGdvbGYsIGRpIHF1YSBw aGEgbGEgaHV5ZW4gQ2FuIEdpbyBzZSBjbyBtb3Qgc2FuIHRhaSB4YSBCaW5oIEtoYW5oLiANCg0K UGhpYSBCYWMgc2UgY28gMiBzYW4gdGh1b2MgaHV5ZW4gQ3UgQ2hpLCB0YWkgeGEgVGFuIFRob25n IEhvaSBkbyBHJlMgZHUga2llbiBkYXUgdHUgdmEgbW90IHRhaSB4YSBUYW4gUGh1IFRydW5nIGRv IENvbmcgdHkgU29uZyBLaW0gbGFtIGNodSBkYXUgdHUuDQoNClRoYSBub2kgdmEgZG8gZGFuZw0K DQpTbyBLZSBob2FjaCAtIERhdSB0dSBjaG8gYmlldDogIkNodSBkYXUgdHUga2hvbmcgdGh1YyBo aWVuIGRhbmggZ2lhIHF1YW4gdHJhYyBoYW5nIG5hbSB0aGVvIHF1eSBkaW5oIGN1YSBMdWF0IEJh byB2ZSBtb2kgdHJ1b25nIG5hbSAyMDA1IG5lbiBraG9uZyBjbyBjbyBzbyBkZSBjbyBxdWFuIHF1 YW4gbHkgbmhhIG51b2MgdmUgbW9pIHRydW9uZyBnaWFtIHNhdCwgZGFuaCBnaWEgbmd1eSBjbyB0 b24gaGFpIG1vaSB0cnVvbmcsIGFuaCBodW9uZyBkZW4gZG9pIHNvbmcgY3UgZGFuIHRyb25nIHZ1 bmcgZG8gaG9hdCBkb25nIGN1YSBzYW4gZ29sZiBnYXkgcmEiLg0KDQpIYW5nIGxvYXQgc2FuIGdv bGYgZGEgaGluaCB0aGFuaCB0cmVuIHF1eSBob2FjaCB2aSB2dW9uZyBseSBkbyBuYXkgbm8gbWEg Y3UgZ2lhbSBjaGFuIHRhaSBjaG8sIHZvIGhpbmggdHJ1bmcgZGEgdHJvIG5lbiBtb3QgZGFuZyBx dXkgaG9hY2ggInRyZW8iIGRhbmcgInRydSBjaHVhIiBkYXQgZGFpIGtob25nIGxvLCB0cm9uZyBr aGkgcXV5IGRhdCBkYW5oIGNobyB0YWkgZGluaCBjdSwgbmhhIHRodSBuaGFwIHRoYXAgcGhhaSBj aGF5IGRvbiBjaGF5IGRhbywgdGltIGRvIG1hdC4uLg0KDQpodHRwOi8vd3d3IGh0dHA6Ly93d3cu c2dncC5vcmcudm4veGFob2kvMjAwOC8xMC8xNjc0OTMvIFRodSBoYWksIDA2LzEwLzIwMDgsIDIz OjI4IChHTVQrNykgTFVPTkcgVEhJRU4gLSBRVU9DIEhVTkcNCg0KVFBIQ00gc2UgY28gYmFvIG5o aWV1IHNhbiBnb2xmPyAtIEJhaSAyOiBEYW5nIHNhdSBzYW4gZ29sZiBsYSBkaWEgb2MNCg0KVmkg c2FvIHF1eSBob2FjaCBzYW4gZ29sZiAoc2FuIGdvbikgbmhpZXU/IFZpIHNhbyBjbyBuaGlldSBj aHUgZGF1IHR1IG5oYW8gdm8gbGluaCB2dWMgc2FuIGdvbGY/IENvIGxlIGNhdSB0cmEgbG9pIGRh IGhpZW4gcm8gdHJvbmcgY2FjIGJhbiBkbyBxdXkgaG9hY2g6IHRyb25nIHNhbiBnb2xmIGNvIGRp YSBvYywgZGlhIG9jIGxhIGRpY2ggbmhhbSwgdmkgZG8gbGEgc2lldSBsb2kgbmh1YW4hDQoNClNh biBnb2xmIC0gdG9hbiB2aSB0cmkgdmFuZyENCg0KIkJpbmggcGhvbmciIGNobyBkaWEgb2MNCg0K S2hvbmcgY2hpIGtoYWkgdGhhYyBkaWEgb2MsIGNhYyBkaWNoIHZ1IGRhbmggY2hvIGNob2kgZ29s ZiBtYSBjbyBjYSB0cnVvbmcgZHVhIGNobywgZHVhIG5ndWEgbmh1IHNhbiBnb2xmIFNpbmctIFZp ZXQuIFRoZSBsYSBjYW5nIG5oaWV1IGhhbmcgbXVjIGNvbmcgdGhlbSB2aSB0cmkgdG90LCBkdSBh biBzYW4gZ29sZiBjaGFjIGNoYW4gc2Ugc2luaCBsb2kgbmhhbiBkb2ksIG5oYW4gYmEgY2hvIGNo dSBkYXUgdHUhDQoNCmh0dHA6Ly93d3cuc2dncC5vcmcudm4veGFob2kvMjAwOC8xMC8xNjc1OTUv IFRodSBiYSwgMDcvMTAvMjAwOCwgMjM6NDEgKEdNVCs3KSBMdW9uZyBUaGllbi0gUXVvYyBIdW5n DQoNClRQSENNIHNlIGNvIGJhbyBuaGlldSBzYW4gZ29sZj8gLSBCYWkgMzogQ2h1eWVuIG5nb2Fp IHNhbiBnb2xmDQoNCkR1b2kgYW5oIG5hbmcgY2hvaSBjaGFuZywgeHVuZyBxdWFuaCBsYSBtYXUg eGFuaCB0aGFtIGN1YSBjbyBjYXkgZHVvYyBjaGFtIGNodXQgdHVuZyBsaSB0dW5nIHRpLCBuZ3Vv aSBjaG9pIGdvbGYgbWFjIGJvIGRvIGhhbmcgaGlldSwgZGlldSBuZ2hlIHR1bmcgdnV0IG1vdCBk dW9uZyBnb2xmLCB0aWVwIGRvIGxhIG51IGN1b2kgbWFuIG5ndXllbiB2YSB0aWVuZyB2byB0YXkg dGFuIHRodW9uZyByYW8gcmFvISBUaGF0IHR1eWV0ISBOaHVuZyBkYW5nIHNhdSBjYWMgZHUgYW4g c2FuIGdvbGYsIGNvIGtob25nIGl0IG1hbmggZG9pIHRyb2kgbm9pLCBoZW8gaGF0Li4uDQoNClNh biBnb2xmID0gcXV5IGhvYWNoIHRyZW8hDQoNCjEwIG5hbSBnaWFtIGNoYW4gdGFpIGNobywgZHUg YW4gc2FuIGdvbGYgU2luZyAtIFZpZXQgZGEgYmllbiB0aGFuaCBraHUgcXV5IGhvYWNoICJ0cmVv IiwgZ2F5IGJhbyBub2kgcGhpZW4gdG9haSBjaG8gbmd1b2kgZGFuIG5vaSBkYXkuIA0KDQpPbmcg Tmd1eWVuIFZhbiBUaGlldSwgODQgdHVvaSwgbmd1IGFwIDIsIHhhIExlIE1pbmggWHVhbiwgaHV5 ZW4gQmluaCBDaGFuaCAoVFBIQ00pIGtlIHRyb25nIG5vaSBidWMgeHVjOiAiVHUgbmh1bmcgbmFt IDkwIGN1YSB0aGUga3kgdHJ1b2MsIHRoYW5oIHBobyBkYXUgdHUgaGFuZyBjaHVjIHR5IGRvbmcg eGF5IGR1bmcgaGUgdGhvbmcga2VuaCB0dW9pIHRpZXUgbGF5IG51b2MgdHUga2VuaCBYYW5nLiBE YXQgZGFpIG1hdSBtbywgdHJvbmcgZ2kgZHVvYyBuYXksIG5hbyBtaWEsIG5hbyByYXUgbWF1Li4u IE5odW5nIHR1IGtoaSBjYW0gYmFuZyBxdXkgaG9hY2gsIGhlIHRob25nIGtlbmggdGh1eSBsb2kg YmkgYm8gYmUgeHVvbmcgY2FwIHRyYW0gdHJvbmcsIG51b2MgdSBkb25nIGRvbmcgdmFuZyB2YW5n IGtlbmgsIGtob25nIGFpIGRhbSB0aG8gY2hhbiB4dW9uZyBudW9jIGNodSBkdW5nIG5vaSB0dW9p IGNheS4gVmF5IGxhIHRoYW5oIGRhdCBob2FuZyIuIA0KDQouLi4uLi5EdSBhbiB0aHVjIGhpZW4g Y2hhbSBjaGFwLCBub2kga2hvIGN1YSBuZ3VvaSBkYW4gc29uZyBvIGRheSBjbyB0aGUgImNhbiBk byBkb25nIGRlbSIgZHVvYy4gDQoNCkRhdSB0aWVuIGxhIGRpY2ggc290IHh1YXQgaHV5ZXQsIGdh biBuaHUgdGhhbmggY2FuIGJlbmggY28gaHV1LCByaW5oIHJhcCBkZSBkb2EgYmF0IGN1IGFpLiBP bmcgTGUgVHJ1bmcgSGF1LCBQaG8gYmFuIGRpZXUgaGFuaCBraHUgcGhvIDUgY2hvIGJpZXQgZGFu ZyBsYSBjYW8gZGllbSBkaWV0IGxhbmcgcXVhbmcsIGJhbiBuZ2F5IHRvaSB0dW5nIG5oYSB2YW4g ZG9uZyBjb24gYmFuIGRlbSB0aGkgZHVhIGRvYW4gZGkga2llbSB0cmEgZGUgcGh1biB0aHVvYy4N Cg0KIkNvbiBsYW5nIHF1YW5nIHNpbmggcmEgdHUgY2FpIGtobyBkbyEgRHUgYW4gY2hhbSwgY2F5 IGNvIHJhbSByYXAsIGR1b25nIHNhIGtob25nIGR1b2MgbGFtLCBkYW4gZGVuIG11YSB0byBudW9j IGRvbmcgdGhhbmggdnVuZyBraG9uZyB0aG9hdCBkdW9jLCBsYSBuZ3V5ZW4gbmhhbiB0aHUgbmhh dC4gVGh1IGhhaSwgdmkgbmFtIHRyb25nIGtodSBxdXkgaG9hY2ggbmVuIG51b2MgbWF5IGtob25n IGR1b2Mga2VvIHRvaSBuaGEsIGJhIGNvbiBwaGFpIHRydSBudW9jIG11YSB0cm9uZyBsdSBkZSB4 YWksIGxhIG8gc2luaCBkZSBjdWEgbXVvaSIsIG9uZyBIYXUgZ2lhaSBiYXkuIA0KDQpDYWkga2hv IHRodSBiYSwgdmkgbGEga2h1IHF1eSBob2FjaCwgZHVvbmcgbmhpZW4gbmhhIGN1YSBraG9uZyBk dW9jIHhheSBjYXQuIENoaSBUdXlldCwgbmhhIG5hbSB0cm9uZyAib2MgZGFvIiBiYXUgZGlldSB1 YSBudW9jIG1hdCBub2k6ICJDb24gbG9jIGRhdSB0aGFuZyB0YW0gdnVhIHF1YSBsYW0gbmhhIHRv aSB4aWV1IHZlbyBtdW9uIHNhcCwgcGhhaSBsYXkgZGF5IGNoYW5nIGxhaS4gWGluIGNhdCBuaGEs IHBodW9uZyBiYW8gbmhhIHNhbyBzdWEgdmF5LCBuaHVuZyBuaGEgdG9pIG1haSBsYSBuZW4gY2hh bmcgYmlldCAgbXVhIGxhIG8gZGF1ISIuIA0KDQpOYW0gMTk5MywgY2FuIG5oYSB2YWNoIHRvbiBt YWkgbGEgY3VhIGNoaSBUdXlldCBkdW9jIGR1bmcgbGVuLCBraG9hbmcgY3VvaSBuaHVuZyBuYW0g OTAsIHJhbSByYW4gdGhvbmcgdGluIG5vaSBuYXkgc2UgYmkgcXV5IGhvYWNoIGxhbSBkdSBhbi4g Q2FjaCBkYXkgNCBuYW0sIGx1YyBjaGkgZGEgY2h1YW4gYmkgZGF5IGR1IHZhdCBsaWV1IGRlIHhh eSBjYW4gbmhhIGRhbmcgaG9hbmcgdGhpIGR1IGFuIGNvbmcgYm8uIFR1IGRvIGRlbiBuYXksIGhh aSB2byBjaG9uZywgaGFpIGR1YSBjb24sIG1vdCBuZ3VvaSBlbSBkYW5oIGNhbSBjaGl1IHNvbmcg ZHVvaSBuZ29pIG5oYSBjbyB0aGUgc2FwIGJhdCBjdSBsdWMgbmFvIG5odSB0aGUgZG8hIA0KDQpO b2kga2hvIGN1b2kgY3VuZyBsaWVuIHF1YW4gZGVuIG5vaSBjb20gaGFuZyBuZ2F5LiBWdW5nIGRh dCBuYXkgbm9pIHRpZW5nIHRyb25nIG1haSwgaGFuZyBuYW0gdmFvIGRpcCB0ZXQgZGVuIHh1YW4g dmUgbGEgbXVhIHRodSBob2FjaCBjdWEgbmd1b2kgZGFuLiBPbmcgTGUgVHJ1bmcgSGF1IGxhbSBi YWkgdGluaCwgbW9pIHNhbyAxLjAwMG2yIHNlIHRyb25nIHRydW5nIGJpbmggODAwIGNheSBtYWks IGJhIG5hbSBzYXUgdGh1IGhvYWNoLCBnaWEgYmFuIGJpbmggcXVhbiA1MC4wMDAgZG9uZy9jYXks IGl0IHJhIGN1bmcgdHJlbiAxMCB0cmlldSBkb25nL25hbSwgdGh1IG5oYXAgY2hpbmggY3VhIG1v aSBnaWEgZGluaC4gDQoNClRhdCBuaGllbiwgbmd1b24gdGh1IGRvIHNlIGtob25nIGNvbiBudWEg a2hpIGR1IGFuIHNhbiBnb2xmIHRoYW5oIGhpbmghIE5oaW4gdGFtIGJhbmcgdGFpIGRpbmggY3Ug aG9uIDNoYSAtIGN1bmcgY2h1YSBsYW0gZ2kgY2EtIHNhdCBkdSBhbiBjaGluaCwgbmhpZXUgaG8g Z2lhIGRpbmggY2FtIGNhbmggY2hvIHZpZW4gY2FuaCBvIGRheSBuaHVuZyBraG9uZyBiaWV0IGxh bSBnaSwgbmVuIGNvIGhvbiAxMCBobyBkYSBkaSBtdWEgcmF5IHJ1bmcgbyBCaW5oIFBodW9jLCBE YWMgTGFjIGNodWFuIGJpIHRpZXAgdHVjIG5naGUgbm9uZyENCg0KTW90IHZhbiBkZSBkYW5nIHF1 YW4gdGFtIGxhIGNvbmcgZG9uZyBjbyBkdW9jIGh1b25nIGxvaSBnaSB0dSBzYW4gZ29sZj8NCg0K VGhlbyBDb25nIHR5IENvbmcgdmllbiBDYXkgeGFuaCwgdG9uZyBkaWVuIHRpY2ggY29uZyB2aWVu IGhpZW4gaHV1IHRhaSB0aGFuaCBwaG8ga2hvYW5nIDY1OSBoYS0gdHJ1IGRpZW4gdGljaCBzYW4g Z29sZiBUaHUgRHVjLiBDaGkgdGlldSBkYXQgY29uZyB2aWVuIGJpbmggcXVhbiB0cmVuIGRhdSBu Z3VvaSBraG9uZyB0YW5nLCBoaWVuIGtodSB2dWMgbm9pIHRoYW5oIGN1ICgxMyBxdWFuKSB2YW4g a2hvYW5nIDAsN22yL25ndW9pLiANCg0KQ29uIHNvIG5heSBuZ3VvYyB2b2kgZGllbiB0aWNoIGRh dCBzYW4gZ29sZjogNiBzYW4gZ29sZiBkYSBjbyB2YW4gYmFuIHBoYXAgbHkgbGVuIGRlbiAxLjI2 MmhhISBWaWVjIGNhbSBnYXkgYnVvYyB2YW8gY3VhIHNhbiBnb2xmIGNoaSBkYW5oIGNobyB0aGll dSBzbyBuZ3VvaSBjbyB0aHUgbmhhcCBoYW5nIGRhdSB0cm9uZyB4YSBob2ksIGRvIGRvIG5ldSB4 ZW0gc2FuIGdvbGYgbGEgY29uZyB2aWVuIHRoYXQga2hvbmcgY29uZyBiYW5nLiANCg0KRHVvbmcg bmhpZW4sIHZpZWMgbmh1bmcgbmd1b2kgbm9uZyBkYW4gc2F1IGtoaSAibmh1b25nIGRhdCIgY2hv IHNhbiBnb2xmIHNlIG8gZGF1LCBsYW0gbmdoZSBnaSBsYSB2aWVjIHJhdCBkYW5nIHF1YW4gdGFt LiBWaSBsaWV1IHN1IGNoYW0gbG8gY2h1YSBjaHUgZGFvIGRhIHR1bmcgeGF5IHJhIHR1IG1vdCBz byBkdSBhbiBkYSB2YSBkYW5nIHRyaWVuIGtoYWkgY28gbGFwIGxhaT8NCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDUyLzIwMTAxMjIzMTgyMDIyLmFzcHggVHJh biBEdXkgMjMvMTIvMjAxMCAxODoyNSANCg0KVFAgSENNOiBMYWkgdm8gYm8gYmFvLCBoYW5nIHRy YW0gaG8gZGFuIGtob24gZG9uICANCiAgDQooVE5PKSBIYW5nIGxvYXQgZG9hbiBibyBiYW8gdGFp IHBodW9uZyBBbiBQaHUgRG9uZywgVGhhbmggTG9jLCBUaGFuaCBYdWFuIChRLjEyLCANClRQLkhD TSkgYmkgdm8gdmFvIHNhbmcgbmF5ICgyMy4xMikgZ2F5IG5nYXAgbmFuZyBjaG8gaGFuZyB0cmFt IGhvIGRhbi4gDQoNCktob2FuZyAzIGdpbyBzYW5nIG5heSwgZG9hbiBibyBiYW8gcmFjaCBDYXUg Vm8gKHBodW9uZyBBbiBQaHUgRG9uZykgdm8gbW90IGRvYW4gDQpkYWkgNG0uIA0KDQpDaGkgTmd1 eWVuIFRoaSBMaWVuIChraHUgcGhvIDEsIHBodW9uZyBBbiBQaHUgRG9uZykgY2hvIGJpZXQsIG51 b2MgYmF0IGRhdSBkYW5nIGNhbyANCnZhIHRyYW4gdmFvIGtodSBkYW4gY3UgbHVjIGtob2FuZyA0 IGdpbyBzYW5nLg0KDQpUb2FuIGJvIGRpZW4gdGljaCBjYXkgY2FuaCwgaG9hIG1haSBUZXQgdHJp IGdpYSBnYW4gMjAwIHRyaWV1IGRvbmcgY3VhIGNoaSBMaWVuIG5nYXAgdW5nIA0KdHJvbmcgbnVv Yy4NCg0KKEFuaDogVnVvbiBtYWkgY3VhIG5ndW9pIGRhbiB0YWkgcGh1b25nIFRoYW5oIFh1YW4g bmdhcCB1bmcgdHJvbmcgbnVvYyAtIEFuaDogVHJhbiBEdXkpIA0KDQpOaGlldSBuZ3VvaSBkYW4g a2h1IHBobyAxIGN1bmcgY2hvIGJpZXQsIGhvYSBsYWksIG1haSB0dSBxdXkgZHVvYyBkdW9uZyBk ZSBjaHVhbiBiaSANCmJhbiByYSB0cm9uZyBkaXAgVGV0IE5ndXllbiBkYW4gbmFtIDIwMTEgbmdh cCBzYXUgdHJvbmcgbnVvYy4NCg0KRGVuIDkgZ2lvIGN1bmcgbmdheSwgbnVvYyBtb2kgcnV0IHh1 b25nLg0KDQpOZ3VvaSBkYW4ga2h1IHBobyAxIHBoYW4gYW5oLCBibyBiYW8gcmFjaCBDYXUgVm8g dGh1b25nIHh1eWVuIGJpIHZvIGtoaWVuIG51b2MgdHJhbiANCnZhbyBraHUgZGFuIGN1Lg0KS2Ug dHUgdGhhbmcgOC4yMDEwIGRlbiBuYXksIHZ1b24gY2F5IGN1YSBuZ3VvaSBkYW4gdGh1b25nIHh1 eWVuIG5nYXAgdW5nLg0KDQooQW5oOiBNYXkgeHVjIGR1b2MgZHVhIHRvaSBkZSBnaWEgY28gYm8g YmFvIHJhY2ggQ2F1IFZvIHNhbmcgMjMuMTIgLSBBbmg6IFRyYW4gRHV5KQ0KDQpDdW5nIG5nYXks IGJvIGJhbyBuaGFuaCBzb25nIG9uZyBEdW5nICh0aHVvYyBraHUgcGhvIDEsIHBodW9uZyBUaGFu aCBMb2MpIHZvIG1vdCANCmRvYW4gZGFpIDJtIGdheSBuZ2FwIGhvbiAyIGhlY3RhIGhvYSBtYXUu IA0KDQpQaHVvbmcgVGhhbmggWHVhbiBjdW5nIGNvIG1vdCBkb2FuIGJvIGJhbyBiaSB2byBnYXkg bmdhcCBjaG8gaGFuZyBjaHVjIGhvIGRhbi4NClVCTkQgUS4xMiBkYSBjaGkgZGFvIGNobyBjYWMg cGh1b25nIGdpYSBjbyBuaHVuZyBkb2FuIGJvIGJhbyB2by4gQ29uZyB0eSBEaWNoIHZ1IA0KVGh1 eSBsb2kgVFAuSENNIGN1bmcgZGEgaHV5IGRvbmcgYmEgbWF5IGJvbSBkZW4gcnV0IG51b2MgdHUg a2h1IHZ1YyBkYW5nIG5nYXAgcmEgDQprZW5oIHJhY2ggbmdheSB0cm9uZyBuZ2F5Lg0KDQpUaGVv IHRob25nIGJhbyBjdWEgRGFpIEtoaSB0dW9uZyBUaHV5IHZhbiBraHUgdnVjIE5hbSBCbywgZG8g a2V0IGhvcCB2b2kgaG9hdCBkb25nIA0KY3VhIGdpbyBtdWEgZG9uZyBiYWMgdHJlbiBiaWVuIERv bmcsIG11YyBudW9jIGRpbmggdHJpZXUgdGFpIGhhIGx1dSBzb25nIFNhaSBHb24gliANCkRvbmcg TmFpIHNlIGxlbiBuaGFuaCB2YSBvIG11YyBjYW8gdHUgbmdheSAyMSBkZW4gbmdheSAyNi4xMi4g TXVjIG51b2MgZGluaCB0cmlldSANCmN1b25nIGNhbyBuaGF0IHh1YXQgaGllbiB2YW8gY2FjIG5n YXkgMjMgdmEgMjQuMTIuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdl cy8yMDEwNDYvMjAxMDExMDkxNTAzNDkuYXNweCAwOS8xMS8yMDEwIDE1OjA1IA0KDQpTYWkgR29u IHNvbmcgY2h1bmcgdm9pIHRyaWV1IGN1b25nIC0gQmFpIDE6IE5oYSBuaGEgeGF5ICJkZSIgIA0K DQpIYXUgbmh1IG5oYSBuYW8gbyBkdW9uZyBCaW5oIFF1b2kgKFEuQmluaCBUaGFuaCkgY3VuZyB4 YXkgImRlIiBuZ2FuIG51b2MgdHJpZXUgDQpjdW9uZyAtIEFuaDogVHJpIFF1YW5nDQoNCihUTk8p IFRyaWV1IGN1b25nIGRhIHRodWMgc3UgdHJvIHRoYW5oIG5vaSBraW5oIGhvYW5nIGN1YSBuaGll dSBuZ3VvaSBkYW4gVFAuSENNLiANCk51b2MgdHJhbiB2YW8gbmhhLCBtb2kgc2luaCBob2F0IGJp IGRhbyBsb24sIGNodXllbiBtdXUgc2luaCBjdWEgbmhpZXUgbmd1b2kgcm9pIHR1bmcgDQpyb2kg bXUgdm9pIG5oaWV1IHRpbmggaHVvbmcgZG8ga2hvYyBkbyBjdW9pLiAgDQoNClRyaWV1IGN1b25n IGRhbmcgZGllbiBiaWVuIHZvIGN1bmcgcGh1YyB0YXAga2hpIG5odW5nIGRpbmggbW9pIGxpZW4g dHVjIHh1YXQgaGllbi4gDQpEdW9uZyBuaHUgbW9pIG5ndW9pIGRldSBiYXQgbHVjIHRydW9jIGNh aSBsZSAibGVuIHRoZW8gY29uIG51b2MiIG5heT8gQ28gbGUsIG5ndW9pIFNhaSANCkdvbiBkYSBk ZW4gbHVjIHBoYWkgInNvbmcgY2h1bmciIHZvaSB0cmlldSBjdW9uZyByb2khIA0KDQoiR2lhYyIg bnVvYyBob2FuaCBoYW5oDQoNClRydW9jIGR1IGJhbyB0cmlldSBjdW9uZyB0YWkgVFAuSENNIHNl IHRhbyBkaW5oIGt5IGx1YyBtb2kgdmFvIGNoaWV1IDguMTEsIGNodW5nIHRvaSANCmRhIHh1b25n IHRodWMgdGUgdGFpIGtodSBCaW5oIFF1b2kgKFEuQmluaCBUaGFuaCkgdmFvIGRlbSA2LjExLiAN Cg0KVHJvaSBkYSBraHV5YSBtYSBhbmggTGUgQW5oIFRhbiwgbmhhIG8gZHVvbmcgQmluaCBRdW9p IHZhbiBoaSBodWMgdHJvbiB4aSBtYW5nIHZvaSANCmRvbmcgY2F0IHRydW9jIG5oYS4gDQoNCkFu aCBkYW5nIGtoYW4gdHJ1b25nIHhheSB2YWNoIG5nYW4gbmdheSB0cnVvYyBjdWEgZGUgY2hhbiBj b24gbnVvYyBkYW5nIGNhbyB0dSBkb3QgDQp0cmlldSBjdW9uZyB0aWVwIHR1YyAicXVheSIgdmFv IHJhbmcgc2FuZyBob20gc2F1Lg0KDQpBbmggVGFuIHRyYW5oIHRodSB4YXkgdmFjaCBuZ2FuIG5n YXkgZ2l1YSBoYWkgZG90IHRyaWV1IGN1b25nIC0gQW5oOiBUcmkgUXVhbmcNCiANCkNoaSB0cnVv YyBkbyBjaHVuZyAyMCBwaHV0LCBkb25nIG51b2MgZHUgdG9uIGN1YSBkb3QgdHJpZXUgY3Vvbmcg ZGFuZyBsdWMgMTcgZ2lvIA0KY2hpZXUgbW9pIHZ1YSBydXQgYm90LCBzYXUga2hpIGxhbSBuZ2Fw IHVuZyBjYSBuaGEgYW5oIFRhbiBjdW5nIG5odSBjYSBjb24gZHVvbmcgQmluaCANClF1b2ksIHZv aSBjaGlldSBjYW8gZ2FuIG51YSBtZXQuIA0KDQpNb2kga2hpIGR1b25nIEJpbmggUXVvaSBuZ2Fw IHNhdSBkZW4gZ2FuIGhldCBiYW5oIHhlLCBoYW5nIGxvYXQgbmhhIGRhbiBiaSBudW9jIHRyYW4g dmFvICAtIEFuaDogVHJpIFF1YW5nDQoNCiJOaGFuIGx1YyBudW9jIHJ1dCwgdHVpIHRyYW5oIHRo dSB4YXkgdGFtIGNhaSBkZSBjaGFuIG5obyBkZSBuZ2FuIG51b2MgZGFuZyB0cm9uZyB2YWkgDQp0 aWVuZyBkb25nIGhvIHRvaSwgbWF5IGJhbyBjYXQgY2hpdSBkdW5nIGhldCBub2kgbnVhIHJvaSIs IGFuaCBUYW4gdGhhbiB0aG8gdm9pIGRvaSBtYXQgDQp0aGFtIHF1YW5nIHZpIHBoYWkgdGh1YyB0 cmFuZyBzdW90IG1heSBkZW0gdnVhIHJvaSBkZSBkb2kgcGhvIHZvaSBjb24gbnVvYyBkYW5nIGNh byANCmxpZW4gdHVjIGx1YyBudWEgZGVtIHZlIHNhbmcuDQoNCkJhbyBuaGlldSBuYW0gcXVhLCBu Z3VvaSBkYW4ga2h1IG5heSBkYSBxdWEgYW0gYW5oIGhhaSB0aWVuZyAidHJpZXUgY3VvbmciLCBo byANCmNvaSBuaHVuZyBkb3QgbGVuIHh1b25nIGN1YSBjb24gbnVvYyBuYXkgbGEgImdpYWMiLg0K DQpEZW4gYmFuIGFuIGNvbSBjdW5nIHBoYWkga2UgY2FvIG5odSB0aGUgbmF5IC0gQW5oOiBUcmkg UXVhbmcNCg0KIkdpYWMiIG1hYyBzdWMgbGVuIGxvaSB2YW8gcGhvbmcgbmd1LCAiZ2lhYyIgbmdh bmcgbmhpZW4gbmdhcCBzYXUgbmhhIHRhbSwgImdpYWMiIGhhIA0KaGUgInhvaSIgdHVuZyBkbyBk YWMgdmEgImdpYWMiIHRoYSBobyBsYW0gZGFvIGxvbiBjdW9jIHNvbmcgbW9pIG5ndW9pLi4uDQoN CiJDdW5nIHZpIHRyaWV1IGN1b25nIG1hIHZvIGNob25nIHR1aSBraG9uZyB0aGUgZGUgY29uIGNh aSBvIGRheSBkdW9jIG1hIHBoYWkgZ3VpIG8gbmhhIA0KYmEgbmdvYWkuIFRvaSB0b2kga2hvbmcg Y28gY29uIGNhaSBvIGRheSBjdW5nIG5obyAgbGFtIiwgYW5oIFRhbiBjaGlhIHNlLg0KDQpUcmll dSBjdW9uZyBraG9uZyBkYSBraG8sIG5odW5nIGtoaSBudW9jIGRhbmcgY2FvICJjYXAga2UiIHZv aSBtdWEgdG8ga2VvIGRhaSwgbmd1b2kgDQpkYW4gc29uZyB0YWkga2h1IHZ1YyBCaW5oIFF1b2kg Y2FuZyByb2kgdmFvIGNhbmggZGlldSBkdW5nLiANCg0KTmV1IGRpIGRvYyBkdW9uZyBCaW5oIFF1 b2ksIHF1YSBraHUgY2h1bmcgY3UgVGhhbmggRGEsIGRlIHRoYXkgaGF1IG5odSBuaGEgbmFvIGN1 bmcgeGF5ICJkZSBiYW8iIHRoYW5oIHZhY2ggY2hhbiBudW9jIHRyaWV1IGN1b25nLCB2YSB0aGFt IGNoaSBjdW5nIGNvIGtob25nIGl0IGdpYSBkaW5oIGxhbSAiZGFwIiBuaG8gbmdheSB0cnVvYyBj dWEgZGUgdGlldSBudW9jLg0KDQpOaHVuZyBjb24gImRhcCIgbmhvIHRydW9jIG5oYSBkdW5nIGRl IHRpZXUgbnVvYyB0cmlldSBjdW9uZyBvIGxvIEEsIGNodW5nIGN1IFRoYW5oIA0KRGEgLSBBbmg6 IFRyaSBRdWFuZw0KDQpYYXkgImRlIiBjaG9uZy4uLiAiZ2lhYyINCg0KSGFpIHZvIGNob25nIG5o YSBjaGkgWHVhbiwgbyBrZSBiZW4gbmhhIGFuaCBUYW4gY3VuZyBkYW5nIGdhcCBydXQgeGF5ICJk ZSBiYW8iICh2YWNoIA0KbmdhbikgdHJ1b2MgY3VhIGRlIGNob25nICJnaWFjIi4gTWF5IGRlbSBs aWVuLCBjYSBuaGEgY2hpIHBoYWkgdGh1YyBkYXkgbHVjIDMgZ2lvIHNhbmcgDQpkZSB0YXQgbnVv YyByYSBuZ29haS4gDQoNCiJOdW9jIGtob25nIGNoaSB0cmFuIHR1IG5nb2FpIHZhbyBtYSBjb24g dSBsZW4gdHUgaGUgdGhvbmcgY29uZyB0cm9uZyBuaGEsIG1vaSBsYW4gdmF5IA0KbGEga2hvIGxh bSIsIGNoaSBYdWFuIGNobyBoYXkuDQoNCk5oYSB0YW0gY3VuZyBwaGFpIHhheSAiZGUiIGRlIG5n YW4gbnVvYyB1IG5ndW9jIGxlbiB0dSBoZSB0aG9uZyBjb25nIC0gQW5oOiBUcmkgUXVhbmcNCg0K IkRlbiBjaG8gbmFtIG5ndSBjdW5nIGtob25nIGNvLCBoYWkgdm8gY2hvbmcgcGhhaSBrZSBnaGUg ZGUgbmd1IHRhbSwgdnVhIG5ndSB2dWEgY2FuaCBudW9jIGRhbmciIENoaSBYdWFuDQoNCkNob25n IGNoaSBYdWFuIGN1bmcgdnVhIG1vaSB4YXkgImRlIiBuZ2F5IHRhaSBjdWEgbmhhIHRhbSBkZSBu Z2FuIG51b2MgdSBsZW4gdHUgbG8gDQpjb25nIHRyb25nIHBob25nIHRhbS4gTmh1bmcgYml0IGNo byBuYXksIHRoaSAidGhhbmcgZ2lhYyIgbGFpIHVvbmcgbmdhbmggbmdvaSBsZW4gY2hvIGtoYWMu DQoNCkNoaSBYdWFuIGNobyBiaWV0LCB0dSBkYXUgdGhhbmcgMTEgZGVuIG5heSwgbmdheSBuYW8g Y3VuZyBjbyBkZXUgZGFuIGhhaSBkb3QgdHJpZXUgDQpjdW9uZy4gIkRvdCBtb3QgdHUgNSwgNiBn aW8gY2hpZXUgY2hvIHRvaSA5IGdpbyB0b2ksIGRvdCAyIGxhIHR1IDMgZ2lvIHNhbmcgY2hvIHRv aSA2IGdpbyANCnNhbmcuIENhIG5nYXkgY3UgbG8gZG9pIHBobyB2b2kgY29uIG51b2MgZGFuZywg dGh1IGhvaSBsYW0gYW4gIHNhbyBjaG8gZHVvYyIsIGNoaSANClh1YW4gcXVhbiBsb25nIG5vaS4N Cg0KR2lvbmcgbmh1IHZheSwgY2hpIFRodSwgYmFuIHF1YW4gYW4gbyBraHUgdnVjIGdhbiBkbywg Y3VuZyB0byByYSB2byBjdW5nIGxvIGxhbmcgdmkgDQpraG9uZyBiaWV0IGJhbyBnaW8gdHJpZXUg Y3VvbmcgbW9pIGdpYW0uDQoNCkhlIGNvIHRyaWV1IGN1b25nIGtlbSBtdWEgdG8sIG5oYSBjaGkg VGh1IHRhbiBuYXQgdGhlIG5heSAtIEFuaDogVHJpIFF1YW5nDQoNClN1b3QgbmhpZXUgbmdheSBx dWEsIGNoaSBraG9uZyBidW9uIGJhbiBnaSBkdW9jIHZpIG1haSBsbyBjaG9uZyBjaG9pIHZvaSBt dWMgbnVvYyANCmRhbmcgY2FvIG51YSBtZXQgdHJ1b2MgcXVhbi4NCg0KSGUgY3UgZGVuIDE3IGdp byBjaGlldSwgY2hpIFRodSBsYWkgbG8ga2hpZW5nIGJhbyBjYXQgY2hhbiB0aGFuaCBjb24gImRl IiBsb24sIHJvaSBjb2kgDQpub2kgdGhlbSBtYXkgdGFtIHZhbiBkZSBuZ2FuIG51b2MgdHJhbiB2 YW8uDQoiTWF5IG5hbSB0cnVvYyBudW9jIGRhdSBjbyBsZW4gY2FvIGR1IHZheSwga2hvbmcgaGll dSB0YWkgc2FvIG5hbSBuYXkgdHJpZXUgY3VvbmcgbGFpIA0KcGh1YyB0YXAgZGVuIHRoZS4gTmV1 IHR1IGRheSBkZW4gY3VvaSB0aGFuZyBjdSBuZ2FwIHVuZyB0aGUgbmF5IHRoaSB0dWkga2hvbmcg YmlldCBsYW0gDQpzYW8gc29uZyBkYXkiLCBjaGkgVGh1IGJ1b24gcmF1IGRhdCBjYXUgaG9pIGNo byBjaGluaCBtaW5oLg0KDQpUcmlldSBjdW9uZyBuYW0gc2F1IGNhbyBob24gbmFtIHRydW9jIA0K DQoiVHUgbmFtIDIwMDQgZGVuIG5heSwgZGluaCB0cmlldSBjYW8gbmhhdCBuYW0gbGllbiB0dWMg dGFuZy4gTmhpZXUgZG90IHRyaWV1IGN1b25nIGNvIA0KbXVjIG51b2MgZGluaCB0cmlldSBkYXQg dmEgdnVvdCBnaWEgdHJpIHRyb25nIGNodW9pIHNvIGxpZXUgbGljaCBzdSwgbmFtIHNhdSBjYW8g aG9uIG5hbSANCnRydW9jIG5odSBkaW5oIHRyaWV1IGN1b25nIG5hbSAyMDA2IHRhaSB0cmFtIFBo dSBBbiBtdWMgbnVvYyBkYXQgbGljaCBzdSBsYSAxLDQ3bSwgDQpuYW0gMjAwNyBkaW5oIHRyaWV1 IGxhaSBjYW8gbGEgMSw0OW0sIG5hbSAyMDA4IGxhIDEsNTVtLCBuYW0gMjAwOSBsYSAxLDU2bSB2 YSBuYW0gDQpuYXkgY28gdGhlIHNlIGxhIDEsNThtIA0KRG90IHRyaWV1IGN1b25nIGdpdWEgdGhh bmcgMTEgbmFtIDIwMDggY28gZGluaCB0cmlldSBsaWNoIHN1IHRyb25nIHZvbmcgNDkgbmFtIChr ZSB0dSANCm5hbSAxOTYwKSB2YW8gY2hpZXUgbmdheSAxMy4xMS4yMDA4IChuaGFtIG5nYXkgMTYu MTAgYW0gbGljaCkgbGEgMSw1NCBtLg0KU2FuZyBuZ2F5IDE1LjEyLjIwMDgsIGRpbmggdHJpZXUg bGFpIGNvbiBjYW8gaG9uIHRoYW5nIDExLCB2b2kgZGluaCB0cmlldSBkYXQgMSw1NW0gDQoobmhh bSBuZ2F5IDE5LjExIGFtIGxpY2gpIGxhIDEsNTUgbSAobHVjIDUgZ2lvKSB2dW90IG11YyBiYW8g ZG9uZyBjYXAgSUlJICgwLDA1IG0pLiAgDQpOYW0gMjAwOSwgZGluaCB0cmlldSB0aWVwIHR1YyBw aGEga3kgbHVjIGN1YSBuYW0gMjAwOCwgZGF0IGRpbmggdHJpZXUgY2FvIDEsNTZtIChuZ2F5IA0K MTQuMTEgbmhhbSBuZ2F5IDI4LjkgYW0gbGljaCkuIA0KVmEgbmFtIDIwMTAsIGNoaWV1IHRvaSBu Z2F5IDcuMTEsIGRpbmggdHJpZXUgZGEgZGF0IG11YyBsYSAxLDU1bSAobmhhbSBuZ2F5IDIuMTAg YW0gDQpsaWNoKS4NClJvIHJhbmcgbXVjIG51b2MgZGluaCB0cmlldSBuZ2F5IGNhbmcgY2FvIGhv biwgdmEga2hpIHBoYW4gdGljaCBzbyBsaWV1IGRpbmggdHJpZXUgY2EgDQpuYW0gY2hvIHRoYXkg a2hvbmcgY2hpIHZhbyBjYWMgdGhhbmcgY2FvIGRpZW0gY3VhIHRyaWV1IGN1b25nIGxhIHRoYW5n IDEwLCAxMSB2YSAxMiwgDQptYSBjYWMgdGhhbmcga2hhYyBjdW5nIGNvIHh1IGh1b25nIGRhbmcg Y2FvLiIgLSBUaGFjIHNpIExlIFRoaSBYdWFuIExhbiAtIE5ndXllbiBMZSBIYW5oIChEYWkgS2hp IHR1b25nIHRodXkgdmFuIE5hbSBCbykNCihDb24gdGllcCkNCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDQ2LzIwMTAxMTA5MTYxOTM2LmFzcHggVHJpIFF1YW5n IDEwLzExLzIwMTAgOToxOSANCg0KU2FpIEdvbiBzb25nIGNodW5nIHZvaSB0cmlldSBjdW9uZyAt IEJhaSAyOiBOZ2hlbyB2aSBjaG9uZyBuZ2FwICANCg0KKE5oYSBjaGkgVHJhbmcgbyB0YW5nIHRy ZXQgY2h1bmcgY3UgVGhhbmggRGEgbXVvbiBuYW5nIG5lbiBjdW5nIGtob25nIGR1b2MgdmkgdHJh biANCm5oYSBxdWEgdGhhcCAtIEFuaDogVHJpIFF1YW5nKSAgDQoNCihUTk8pICJUdWkgbW9pIHZ1 YSB2YXkgdGllbiBkZSBuYW5nIG5lbiBuaGEsIG5vIGN1IGNodWEgdHJhIHhvbmcgdGhpIHNhcCBw aGFpIGRlIHRoZW0gDQpubyBtb2kgZGUgbmFuZyBuaGEgdGllcCwgdmkgbnVvYyB0cmlldSBjdW9u ZyBuZ2FwIGNhbyBraG9uZyBuZ28uLi4iLiBEbyBsYSB0YW0gc3UgY3VhIA0Kb25nIFRhbSwgNjAg dHVvaSwgbmd1IG8gZHVvbmcgUGhhbSBUaGUgSGllbiwgUS44LCBUUC5IQ00uIA0KDQoqIEJhaSAx OiBOaGEgbmhhIHhheSAiZGUiDQoNCktob25nIGNoaXUgdGh1YSBuaHVuZyBjb24gdHJpZXUgY3Vv bmcgaHVuZyBoYW4sIG5oaWV1IG5ndW9pIGRhbiBkYSBkb2kgcGhvIGJhbmcgY2FjaCANCm5hbmcg Y2FvIG5lbiBuaGEgY3VhIG1pbmggZGUgY2hvbmcgY2hvaS4gTmh1bmcgZG8gbGEgZGlldSBuaGll dSBuZ3VvaSBtdW9uLCBjb24gDQp2aWVjIHRodWMgaGllbiB0aGkgbGFtIGdpYW4gbmFuLiAgDQoN CiJQaGVwIFNvbiBUaW5oIiBjdW5nIGNoYW8gdGh1YS4uLg0KDQpQaHVvbmcgNyB2YSBwaHVvbmcg OCB0cmVuIHRydWMgZHVvbmcgUGhhbSBUaGUgSGllbiAoUS44KSBuZ2FuIGNhY2ggbmhhdSBjaGkg YmFuZyANCm1vdCBjaGllYyBjYXUsIG5odW5nIG5ldSBwaHVvbmcgOCBpdCBuZ2FwIHRoaSBwaHVv bmcgNyBsYWkgbmdhcCBuYW5nIHRodW9uZyB4dXllbiANCnRyb25nIG5odW5nIGRvdCB0cmlldSBj dW9uZywgZGFjIGJpZXQgbGEgdGhvaSBkaWVtIHRyaWV1IGN1b25nIGRpZW4gYmllbiBwaHVjIHRh cCBuaHUgDQpuaGlldSBuZ2F5IHF1YS4gDQoNCk5oYSBvbmcgVGFtIG5vaSB0cmVuIHRodW9jIHBo dW9uZyA3IHZhIGN1bmcgZ2lvbmcgbmh1IG5oaWV1IGdpYSBkaW5oIGtoYWMsIG5odW5nIA0Kbmdh eSBnYW4gZGF5LCBvbmcgVGFtIHBoYWkgZGF1IGtobyBkb2kgcGhvIHZvaSBjYWMgZG90IHRyaWV1 IGN1b25nIGxpZW4gdHVjIHhheSByYS4NCg0KKEFuaDogTnVvYyBuZ2FwIHRyYW4gbGFuIHZhbyBu aGEgb25nIFRhbSAtIEFuaDogVHJpIFF1YW5nKSANCg0KTXVjIG51b2MgbmdvYWkgZHVvbmcgY2Fv IGhvbiBuaGEgb25nIFRhbSBob24gMTAgY20sIG5lbiBsdWMgbmFvLCBjYW5oIGNvbmcgbmhhIA0K b25nIGN1bmcgZGUgc2FuIGhhbmcgY2h1YyBiYW8gY2F0LiBIZSBudW9jIGxlbiBsdWMgbmFvIHRo aSBjaGFuIGJhbyBjYXQgbmdhbiBudW9jIG5nYXkgDQpsdWMgZG8uIA0KIA0KT25nIFRhbSBjaG8g YmlldCwgY2FjIHR1IGRvIGJhbmcgZ28gdHJvbmcgbmhhIG5nYW0gbnVvYyBsYXUgbmdheSBiaSBi b25nIHRyb2MgaGFuZyANCmxvYXQuIE5nb2FpIHJhLCBudW9jIHRyaWV1IGN1b25nIGN1bmcgbGFt IGh1IGhhaSBuaGlldSB2YXQgZHVuZywgdGhpZXQgYmkgY28gZ2lhIHRyaSBraGFjLiANCg0KKEFu aDogSGV0IG9uZyB0YXQgbnVvYywgcm9pIGRlbiBjaGF1IHRpZXAgc3VjIC0gQW5oOiBUcmkgUXVh bmcpIA0KDQpTb25nIG9uZyBUYW0gY2hhbmcgdGhlIGNodXllbiBkbyBkaSBkYXUgZHVvYyB2aSBr aG9uZyBnaWFuIG5oYSBxdWEgY2hhdCBoZXAuDQoNCiJCaSBuZ2FwIGhvYWkgbmVuIG5oaWV1IGx1 YyB0dWkgYm8gbHVvbiwga2hvaSB0YXQgbnVvYywgZGUga2hpIG5hbyBudW9jIHJ1dCB0aGkgbGF1 IG5oYSBsYWkuIA0KQ2hhbmcgaGFuIG11YSBuYXkgZGksIG51b2MgbmdhcCBuZ2F5IGhhaSBsYW4s IG1pbmggdnVhIHRhdCBudW9jIHhvbmcsIG51b2MgbGFpIHUgbGVuIA0KdGllcCwgbmV1IHRhdCBu dWEgdGhpIGhvaSBzdWMgZGF1IGNoaXUgbm9pIiwgb25nIFRhbSB0aGFuIHZhbi4NCg0KKEFuaDog T25nIFRhbSBkYW5nIHRpbmggdmF5IHRpZW4gdGhlbSBkZSBuYW5nIHRpZXAgbmVuIG5oYSBsYW4g bnVhIC0gQW5oOiBUcmkgUXVhbmcpDQoNCkNhY2ggZGF5IGtob25nIGxhdSwgb25nIFRhbSB2YXkg dGllbiBuYW5nIG5lbiB2YSB0cmFuIG5oYSBkZSB0cmFuaCBuZ2FwLiBOaHVuZyBtYXkgDQp0aGFu ZyBnYW4gZGF5LCB0cmlldSBjdW9uZyBuZ2F5IGNhbmcgZGFuZyBjYW8uIE9uZyBkYW5nIHRpbmgg cGhhaSB2YXkgdGhlbSB0aWVuIGRlIHN1YSANCmxhaSBuZW4gbmhhIGxhbiBudWEsIHRyb25nIGto aSBjb24gY2h1YSB0cmEgeG9uZyBraG9hbiBubyBjdS4NCg0KIlR1IGN1dSBtaW5oIiB2YSBjaG8g ZG9pLi4uDQoNCk5oYSBvIGNhIG5oYW4gbmh1IG9uZyBUYW0gY29uIGNvIGNvIGhvaSBuYW5nIG5l biB0cmFuaCBuZ2FwLCBzb25nLCBkb2kgdm9pIG5ndW9pIA0KZGFuIHNvbmcgdGFpIGNhYyBraHUg Y2h1bmcgY3UsIG11b24gbmFuZyBuaGEga2hvbmcgcGhhaSBjaHV5ZW4gZGUuIENoaSBWbyBUaGkg TWluaCANClRyYW5nLCBjaHUgbmhhIHNvIDAzOSBjaHVuZyBjdSBUaGFuaCBEYSAoUS5CaW5oIFRo YW5oKSBsYSBtb3QgdHJvbmcgbmh1bmcgdHJ1b25nIA0KaG9wIG5odSB0aGUuIA0KDQooQW5oOiBO aGEgY2hpIFRyYW5nIGtob25nIHRoZSBuYW5nIG5lbiBsZW4gZHVvYyBudWEgdmkgdHJhbiBuaGEg cXVhIHRoYXAgdmEgbmhhIGNoaSANCnRodW9jIHRhbmcgdHJldCBjdWEgY2h1bmcgY3UgVGhhbmgg RGEgLSBBbmg6IFRyaSBRdWFuZykNCg0KTmhhIGNoaSBuYW0gbyB0YW5nIHRyZXQgY3VhIGNodW5n IGN1LiBUcnVvYyBkYXksIGN1IG1vaSBkb3QgdHJpZXUgY3VvbmcsIG5oYSBjaGkgZGV1IGJpIA0K bmdhcC4gDQoNCkNoaSBUcmFuZyBxdXlldCBkaW5oIG5hbmcgbmVuLCB0cm9uZyBraGkga2hvbmcg dGhlIG5hbmcgdHJhbiBuaGEuIERpZXUgbmF5IGRvbmcgbmdoaWEgDQp2b2kgdmllYyB0aHUgaGVw IGRhbmcga2UgY2hpZXUgY2FvIGdpdWEgbmVuIHZhIHRyYW4sIGRvIHZheSBtdW9uIG5hbmcgdGhl bSBuZW4gbGEgDQpjaHV5ZW4ga2hvbmcgdGhlLiANCg0KIk5ldSBkb3QgbmF5IG5hbmcgdGllcCBu ZW4gbmhhIHRoaSB0cmFuIG5oYSB0aGFwIGxhbSwgbyBraG9uZyB0aWVuLiBUb2kgZGFuaCBwaGFp IGdhbiANCnRhbSB0YW0gY2hhbiBiYW5nIGdvIGRlIG5nYW4gbnVvYyBib3QiLCBjaGkgVHJhbmcg bm9pLg0KIA0KVHJvbmcga2hpIGRvLCBjaGkgTGUgVGhpIExpZW4sIHNvbmcgbyBsbyBBIGN1bmcg Y2h1bmcgY3UgbmF5IHRoaSBrZXUga2hvIHZpIG51b2MgdHJpZXUgDQpjdW9uZyBnYW4gZGF5IGxl biB4dW9uZyByYXQgImhvbiIsIGJhbyBoYWkgbmhhIGNoaSBuZ2FwIHR1IHRyb25nIHJhIG5nb2Fp IHN1b3QgbmhpZXUgDQpuZ2F5IGxpZW4uDQogDQooQW5oOiBOaGEgY2hpIExpZW4gcGhhaSBrZSBo YWkgdGFtIHZhbiBjYW8gMSBtZXQgbW9pIGR1IHN1YyBjaGFuIG51b2MgdHJpZXUgY3VvbmcgLSAN CkFuaDogVHJpIFF1YW5nKQ0KDQoiTHVjIHRydW9jIG1vaSB0aGFuZyBjaGkgZG9pIHBobyB2b2kg aGFpIGxhbiB0cmlldSBjdW9uZywgbmh1bmcgZGFvIG5heSBraG9uZyBoaWV1IHNhbyANCm51b2Mg bmdhcCBsaWVuIHR1Yy4gTW9pIGxhbiBjbyB4ZSBsbyB0byBoYXkgeGUgbWF5IGNoYXkgbmhhbmgg cXVhIHRydW9jIG5oYSwgbnVvYyANCiJuaGF5IiBxdWEgdmFjaCBuZ2FuIGFvIGFvLCBjYSBuaGEg dG9pIHRhdCBraG9uZyB4dWUiLCBjaGkgTGllbiBrZS4NCg0KRGUgZG8gdGF0IG51b2MsIG5oYSBj aGkgTGllbiBwaGFpIHBoYW4gY29uZyBuaGF1IHJhIGR1bmcgbmdvYWkgZHVvbmcgdHJ1b2Mgbmhh LCBoZSANCnRoYXkgeGUgbmFvIGNoYXkgdG9jIGRvIG5oYW5oIHRoaSB5ZXUgY2F1IGhvIGNoYXkg Y2hhbSBsYWkuIA0KDQpNYXkgaG9tIG5heSwgbWF5IGJvbSBvIGtodSBjaHVuZyBjdSB0cmVuIGJp IHZvIGhpZXUgaG9hIGRvIGNvbmcgdGhvYXQgbnVvYyBuZ2FwIHJhYywgDQpsYW0gdGFjIG5naGVu IGR1b25nIGJvbS4gRG8gdmF5LCBudW9jIGNhbmcgZGFuZyBjYW8gaG9uIGJpbmggdGh1b25nLCBu aGEgZGFuIGNhbmcgDQpraG9uIGRvbi4gDQoNCkNoaSBMaWVuIGNobyBoYXksIG51b2Mga2hvbmcg Y2hpIHhhbSBsYW4gdHUgYmVuIG5nb2FpIG1hIGNvbiB1IGxlbiB0dSBraGFwIGNhYyBuZ29jIA0K bmdhY2ggdHJvbmcgbmhhLCB0aGFtIGNoaSBsYSB0dSBib24gcnVhIGNoZW4gdm9uIG5hbSB0cmVu IGNhbywgZ2F5IGh1IGhhaSBuaGlldSBkbyBkYWMuICANCg0KKEFuaDogVHJ1b2MgY2h1bmcgY3Ug VGhhbmggRGEgKFEuQmluaCBUaGFuaCkgbmdhcCBuYW5nIG1vaSBraGkgdHJpZXUgY3VvbmcgbGVu IC0gQW5oOiBUcmkgUXVhbmcpDQoNCk5odW5nIGdpYSBkaW5oIGh1bmcgY2hpdSBuYW4gbmdhcCB1 bmcgc29tIG5oYXQgbyBraHUgVGhhbmggRGEgY2hpbmggbGEgY2FjIGhvIHRhaSANCmtodSBzYXQg bG8sIG5hbSBkdW9pIGNoYW4gY2F1IEtpbmguDQoNCkRvIGtob25nIHRoZSB4YXkgZHVuZyBuaGEg a2llbiBjbyB0cmVuIGRhdCBnaWFpIHRvYSwgbmVuIG5ndW9pIGRhbiBraHUgbmF5IHBoYWkgc29u ZyANCnRyb25nIGRpZXUga2llbiBoZXQgc3VjIHRlIGhhaSBtb2kga2hpIG51b2MgdHJpZXUgZGFu ZyBsZW4sIGRhYyBiaWV0IGxhIGNhYyBuaGEgc2F0IGJvIA0Kc29uZy4gDQogDQooQW5oOiBIYXUg aGV0IGNhYyBuaGEgc2F0IGJvIHNvbmcgbyBkdW9pIGNoYW4gY2F1IEtpbmggVGhhbmggRGEgZGV1 IGtob24gZG9uIG1vaSBraGkgDQpudW9jIGRhbmcgLSBBbmg6IFRyaSBRdWFuZykNCg0KRGFuZyB0 aHVvbmcgdmEgY2FtIGNhbmggbmhhdCBsYSBjYWMgZW0gbmhvIG8ga2h1IG5heS4gTW9pIHRvaSBo b2MgYmFpLCBjYWMgZW0gcGhhaSANCm5nb2kgY2FtIGN1aSBnaXVhIGJpZW4gbnVvYyBsZW5oIGxh bmcga2hhcCBwaG9uZy4gDQoNCk1heSBobyBudW9pIHRvbSBnaW9uZyBjdWEgbmhhIGNoaSBIYW5n LCB0YWkga2h1IHZ1YyB0cmVuLCBjdW5nIGJpIG51b2MgdHJpZXUgY3VvbmcgDQp4YW0gbGFuIHN1 b3QgbmhpZXUgbmdheSBxdWEsIGJ1b2MgY2hpIHBoYWkgeGF5IGNhbyBtaWVuZyBobyBsZW4gdGhl bSAyMCBjbS4gDQoNCihBbmg6IE5ndW9pIGRhbiBkYW5nIHR1IG1pbmggZG9pIHBobyB2b2kgdHJp ZXUgY3VvbmcgLSBBbmg6IFRyaSBRdWFuZykgDQoNCkNvIGNodW5nIGtpZW4gY2FuaCBuZ3VvaSBk YW4gVFAuSENNIHRodWMgdHJhbmcgY3VuZyB0cmlldSBjdW9uZyB2YSB0YXQgbnVvYyB2YSBtbyAN CmhvaSBtb2kgY28gY2FtIGdpYWMgbmh1IHR1bmcgZ2lhIGRpbmggcGhhaSBkb24gZG9jIGNob25n IGNob2kgdm9pIG5hbiAiY29uIG51b2MgbGVuIA0KeHVvbmciIG5nYXkgY2FuZyBjYW8uDQoNClRo YXQga2hvIGhpbmggZHVuZyBnaXVhIG1vdCBkbyB0aGkgdG8gbG9uIHZhIGhpZW4gZGFpIG5oYXQg Y2EgbnVvYyBuaHUgVFAuSENNIGxhaSANCnBoYWkgY2hpdSBjYW5oIGJpIHRyaWV1IGN1b25nICJ0 YW4gcGhhIj8gDQoNCk5ndW9pIGRhbiB2dW5nIHRyaWV1IGN1b25nIGRhbmcgInR1IGN1dSBtaW5o IiB2YSBjaG8gZG9pIG5odW5nIGJpZW4gcGhhcCBjYW4gY28sIGhpZXUgDQpxdWEgdHUgY28gcXVh biBjaHVjIG5hbmcuDQoNClZhbiBjbyB0aW4gaGlldSB2dWkNCg0KTmFtIDIwMDcsIGtodSB2dWMg bm9pIHRoYW5oIFRQLkhDTSBjbyBkZW4gOTIgZGllbSBuZ2FwIGRvIHRyaWV1IGN1b25nLCBsdWMg ZG8gZGluaCANCnRyaWV1IGNoaSBjbyAxLDQ3bS4gDQoNClR1eSBuaGllbiwgY2hpZXUgdG9pIDgu MTEgdnVhIHF1YSwgZGluaCB0cmlldSAxLDUwbSBtYSBjaGkgbmdhcCBjbyAxMiB0dXllbiBkdW9u ZyB2YSANCnNhbmcgOS4xMSBjaGkgY29uIG5nYXAgNyB0dXllbiBkdW9uZyBraGkgZGluaCB0cmll dSBvIG11YyAxLDQ5bS4gQ2FjIHR1eWVuIGR1b25nIA0KdHJ1b2MgZGF5IG5nYXAgbmFuZyBkbyB0 cmlldSBjdW9uZyBuaHUgTmd1eWVuIEh1dSBDYW5oLCBVbmcgVmFuIEtoaWVtLCBjYWMgY29uIA0K ZHVvbmcgdHJvbmcga2h1IFZhbiBUaGFuaCAoUS5CaW5oIFRoYW5oKS4uLiBkYSBnaWFtIG5nYXAg ZGFuZyBrZSBsYSBuaG8gdmFvLi4uIHZhbiANCm1vdCBjaGlldS4gDQoNCkRvaSB2b2kga2h1IHZ1 YyBub2kgdGhhbmgsIGdpYWkgcGhhcCBjYXAgYmFjaCBkYSB2YSBkYW5nIGFwIGR1bmcgbGEgbGFw IHZhbiBtb3QgY2hpZXUgDQpkZSBuZ2FuIHRyaWV1IGN1b25nIHRhaSBjYWMgbWllbmcgY29uZyB4 YSwgZ2l1cCBnaWFtIHZhIHhvYSBuZ2FwIHRhaSBuaGlldSBraHUgdnVjLiBDYWMgDQp2YW4gbmF5 IHR1IGRvbmcgZG9uZyBsYWkga2hpIHRyaWV1IGN1b25nIGxlbiB2YSB0dSBkb25nIG1vIHJhIGto aSB0cmlldSBydXQuIFRpbmggdHUga2hpIA0KYmF0IGRhdSB0aHVjIGhpZW4gZ2lhaSBwaGFwIG5h eSB2YW8gdGhhbmcgMTAuMjAwOCBkZW4gbmF5LCBkYSBjbyAzMTkgdmFuIG1vdCBjaGlldSANCmR1 b2MgbGFwLiBUaGVvIGtlIGhvYWNoLCB0dSBuYXkgZGVuIGN1b2kgbmFtLCBUcnVuZyB0YW0gQ2hv bmcgbmdhcCBzZSBsYXAgdGhlbSAxMzEgDQp2YW4gbnVhLCB0cmVuIGtodSB2dWMgY2FjIHF1YW4g MSwgNSwgNyB2YSBILk5oYSBCZS4NCg0KVGhlbyBrZSBob2FjaCwgdHUgbmF5IGRlbiBjdW9pIG5h bSwgVHJ1bmcgdGFtIENob25nIG5nYXAgc2UgbGFwIHRoZW0gMTMxIHZhbiBudWEsIA0KdHJlbiBr aHUgdnVjIGNhYyBxdWFuIDEsIDUsIDcgdmEgSC5OaGEgQmUuIChNYWkgVm9uZykNCihDb24gdGll cCkNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ2LzIwMTAx MTA5MTc0MDAyLmFzcHggMTEvMTEvMjAxMCAxNzo1NSANCg0KU2FpIEdvbiBzb25nIGNodW5nIHZv aSB0cmlldSBjdW9uZyAtIEJhaSAzOiBEaW5oIHRyaWV1IGNvbiB0YW5nICANCiAgDQooQW5oOiBO Z3VvaSBkYW4gUC5IaWVwIEJpbmggQ2hhbmggc2UgY29uIGRvaSBtYXQgY2FuaCBzb25nIGNodW5n IHZvaSB0cmlldSBjdW9uZyB0cm9uZyB0aG9pIGdpYW4gZGFpIC0gQW5oOiBELkQuTWluaCkNCg0K KFROTykgVHJvbmcgbmh1bmcgbmFtIGdhbiBkYXksIGxpZW4gdGllcCBtdWMgbnVvYyB0cmlldSBj dW9uZyB0YWkgVFAuSENNIG8gbXVjIGNhbywgdGluaCBoaW5oIG5nYXAgbHV0IG5naGllbSB0cm9u ZyB4YXkgcmEgbyBuaGlldSBob24sIGxhbSBhbmggaHVvbmcgbG9uIGRlbiBkb2kgc29uZyANCnZh IHNhbiB4dWF0IGN1YSBuZ3VvaSBkYW4uDQoNCiogQmFpIDI6IE5naGVvIHZpIGNob25nIG5nYXAN CiogQmFpIDE6IE5oYSBuaGEgeGF5ICJkZSINCg0KRHVvaSBkYXkgbGEgYmFpIHZpZXQgY3VhIHRo YWMgc2kgTGUgVGhpIFh1YW4gTGFuIC0gTmd1eWVuIExlIEhhbmggKERhaSBLaGkgdHVvbmcgdGh1 eSANCnZhbiBraHUgdnVjIE5hbSBCbykgbHkgZ2lhaSBzdSBiYXQgdGh1b25nIG5odW5nIGRvdCBs ZW4geHVvbmcgY3VhIGNvbiBudW9jIHRhaSBoYWkgbmF5LiANCg0KTXVjIG51b2MgdHJ1bmcgYmlu aC9uYW0gZGV1IHRhbmcgDQoNClZ1bmcgY3VhIHNvbmcgTmFtIEJvIHR1IFZ1bmcgVGF1IGRlbiBN dWkgQ2EgTWF1IGNoaXUgYW5oIGh1b25nIGNoZSBkbyBiYW4gbmhhdCANCnRyaWV1IGtob25nIGRl dSBjdWEgYmllbiBEb25nLiBNb3QgbmdheSBjbyAyIGxhbiB0cmlldSBsZW4gdmEgMiBsYW4gdHJp ZXUgeHVvbmcuIFRyb25nIHRvYW4ga2h1IHZ1YyB2ZW4gYm8gYmllbiBOYW0gQm8sIG11YyBudW9j IHRyaWV1IGNhbyBuaGF0IG5hbSB0aHVvbmcgeHVhdCBoaWVuIHZhbyANCmNhYyB0aGFuZyAxMCwg MTEuIFRyb25nIGNhYyB0aGFuZyA2IHZhIDcsIG11YyBudW9jIHRyaWV1IHRoYXAgbmhhdCBuYW0u IA0KDQpUcmlldSBiaWVuIERvbmcgY29uIGNvIGNhYyB5ZXUgdG8gcGhpIHRyaWV1IGFuaCBodW9u ZyBkZW4gZGFvIGRvbmcgbXVjIG51b2MgdGFpIHZ1bmcgDQp2ZW4gYmllbiBOYW0gQm8sIGJhbyBn b20gc3UgZGFuZy9ydXQgbXVjIG51b2MgZG8gZ2lvIG11YSB2YSBnaW8gYmFvIGdheSByYS4gTmh1 IA0KY2h1bmcgdGEgZGEgYmlldCwgbmdvYWkgY2FjIHNvbmcgdHJpZXUgdGhpZW4gdmFuIGNhYyBo aWVuIHR1b25nIGtoaSB0dW9uZyB0aHV5IHZhbiANCihLVFRWKSBraGFjIG5odSBiYW8sIGdpbyBt dWEgY3VuZyBjbyBhbmggaHVvbmcgdG9pIHN1IGJpZW4gZG9pIG11YyBudW9jIGJpZW4uIA0KDQpU aHVjIHRlIGNodW9pIHNvIGxpZXUgdHJ1bmcgYmluaCB0cnVvdCAxOSBuYW0gdGFpIFZ1bmcgVGF1 IGNvIHh1IHRoZSB0YW5nIGxpZW4gdHVjLCB0cnVuZyANCmJpbmggdHJ1b3QgY2h1b2kgc28gbGll dSAxOTgxIC0gMjAwOCB0YW5nIDMsNiBjbS4gVHJhbSBQaHUgQW4gKHNvbmcgU2FpIEdvbikgY28g Y2h1b2kgDQpzbyBsaWV1IG11YyBudW9jIHRodWMgZG8gdHUgMTk4MSAtIDIwMDksIGRhaSAyOSBu YW0sIG11YyBudW9jIHRydW5nIGJpbmggbmFtIHRhaSBQaHUgDQpBbiB0dW9uZyB0dSBWdW5nIFRh dSBjdW5nIGNvIHN1IHRhbmcgbGVuIGRhbiB0cm9uZyBuaHVuZyBuYW0gZ2FuIGRheS4NCiANCihB bmg6IE5ndW9pIGRhbiBUUC5IQ00gZGlldSBkdW5nIHZpIHRyaWV1IGN1b25nIGxlbiBjYW8gLSBB bmg6IEQuRC5NaW5oKSANCg0KU2F1IG5hbSAyMDA1LCBtdWMgbnVvYyB0cnVuZyBiaW5oIHRhaSBQ aHUgQW4gbGVuIG5oYW5oIGhvbiB0YWkgVnVuZyBUYXUuIE5odSB2YXkgbGEgDQpuZ29haSBhbmgg aHVvbmcgY3VhIHRyaWV1IGJpZW4gRG9uZyBjb24gY28gbmh1bmcgbmd1eWVuIG5oYW4ga2hhYyBs YW0gY2hvIG11YyBudW9jIA0KUGh1IEFuIHRhbmcgbmhhbmggdHJvbmcgdGhvaSBreSBuYXkuDQoN CihBbmg6IEJpZXUgZG8gbXVjIG51b2MgY2FvIG5oYXQgbmFtIHRyYW0gUGh1IEFuKSANCiANCkR1 b25nIGJpZW4gdHJpbmggSG1heCBuYW0gKGhpbmggdHJlbikgY2hvIHRoYXksIHR1IG5hbSAxOTk4 IHRybyB2ZSB0cnVvYyBtdWMgbnVvYyANCkhtYXggbmFtIHRhaSBQaHUgQW4gYmllbiBkb2kgdHVh biB0dSB0aGVvIGNhYyBjaHUga3kgY28gZG8gZGFpIGtob2FuZyAxOSBuYW0gdmEgbXVjIA0KbnVv YyB0cnVuZyBiaW5oIHRyb25nIHRob2kga3kgbmF5ICgxOTYxLTE5OTgpIGxhIDEyNiBjbS4NCg0K IlJvIHJhbmcgbXVjIG51b2MgZGluaCB0cmlldSBuZ2F5IGNhbmcgY2FvIGhvbiwgdmEga2hpIHBo YW4gdGljaCBzbyBsaWV1IGRpbmggdHJpZXUgY2EgDQpuYW0sIHRoaSBraG9uZyBjaGkgdmFvIGNh YyB0aGFuZyBjYW8gZGllbSBjdWEgdHJpZXUgY3VvbmcgbGEgdGhhbmcgMTAsIDExIHZhIDEyLCBt YSBjYWMgDQp0aGFuZyBraGFjIGN1bmcgY28geHUgaHVvbmcgZGFuZyBjYW8iIC0gTGUgVGhpIFh1 YW4gTGFuIC0gTmd1eWVuIExlIEhhbmgNCg0KVHUgbmFtIDE5OTkgY28gc3UgZ2lhIHRhbmcgbGll biB0dWMgbXVjIG51b2MgY2FvIG5oYXQgbmFtIHRhaSBQaHUgQW4sIG11YyBudW9jIGRpbmggDQp0 cmlldSBjdW9uZyBuYW0gc2F1IGx1b24gY2FvIGhvbiBuYW0gdHJ1b2MsIG11YyBudW9jIHRydW5n IGJpbmggdGluaCBjaG8gY2EgY2h1b2kgc28gDQpsaWV1ICgxOTYxIC0gMjAwOCkgdGFuZyBsZW4g bXVjIDEzMCBjbS4NCg0KTmh1IHZheSBuZ29haSB5ZXUgdG8gdHJpZXUgYmllbiBEb25nIGNvbiBj byBuaHVuZyB5ZXUgdG8ga2hhYyBkb25nIGdvcCBwaGFuIHF1YW4gDQp0cm9uZyB0cm9uZyBzdSBn aWEgdGFuZyBtdWMgbnVvYyBkaW5oIHRyaWV1IHZ1bmcgaGEgbHV1IHNvbmcgU2FpIEdvbiAtIERv bmcgTmFpLiANCg0KVHJpZXUgY3VvbmcgZG90IGJpZW4gdmEga2VvIGRhaSBob24NCg0KTW90IHZh biBkZSBraGkgbmdoaWVuIGN1dSB2ZSB0cmlldSBjdW9uZyBjYW8gZG90IGJpZW4gY2hvIHRoYXkg dmFvIHRoYW5nIDEwIHZhIDExLCBraGkgDQpjYWMgZG90IGtob25nIGtoaSBsYW5oIGJhdCBkYXUg eHVhdCBoaWVuIHZvaSBjdW9uZyBkbyB0dSB0cnVuZyBiaW5oIGRlbiBtYW5oLCBkb25nIHRob2kg DQp0cmVuIGJpZW4gRG9uZyBjbyBjYWMgY29uIGJhbywgYXAgdGhhcCBuaGlldCBkb2kgaG9hYyBh cCB0aGFwIGdheSByYSBnaW8gbWFuaCwgc29uZyBjYW8gDQprZW8gZGFpIDItMyBuZ2F5IHRydW9j IGtoaSBjbyB0cmlldSBjdW9uZywgZGF5IGRvbiBudW9jIGJpZW4gdmFvIGNhYyB2dW5nIHZlbiBi aWVuLCBjdWEgDQpzb25nLCBuZW4gZGluaCB0cmlldSBjdW9uZyBkYW5nIGNhbyBob24gdmEgdGhv aSBnaWFuIGNvIHRyaWV1IGN1b25nIGtlbyBkYWkgaG9uLiANCg0KTmdvYWkgcmEsIHRyb25nIG5o dW5nIG5hbSBnYW4gZGF5LCBwaGFuIHRpY2ggc28gbGlldSBjaG8gdGhheSBraG9hbmcgZ2FuIDQw JSBjYWMgZG90IA0KdHJpZXUgY3VvbmcgdHJ1bmcgdm9pIGx1YyBjbyB4YXkgcmEgbXVhIGxvbiB2 b2kgbHVvbmcgbXVhIHRyZW4gZGlhIGJhbiBUUC5IQ00gdHUgMzAgbW0gdHJvIGxlbiwgY3UgdGhl IG5odSB0cm9uZyBuZ2F5IDEwLjEwLjIwMTAgY28gbXVhIHR1IDcwLTE1MCBtbSAoZGluaCB0cmll dSAxLDQ5bSksIA0KbmdheSA2LjExIGx1b25nIG11YSBkbyBkdW9jIHRhaSBRLjEgbGE6IDcyIG1t LCBUaHUgRHVjIDkyIG1tLCBOaGEgQmUgMjkgbW0sIFEuMjogNDQgbW0uDQogDQooQW5oOiBHaXVh IGRvIHRoaSBoaWVuIGRhaSBuaHUgVFAuSENNLCBuZ3VvaSBkYW4gdmFuIHBoYWkgY2hvbmcgY2hv aSB2b2kgImdpYWMiIG51b2MgY28gdGVuIHRyaWV1IGN1b25nIC0gQW5oOiBELkQuTWluaCkNCg0K UGhhbiB0aWNoIGRvdCB0cmlldSBjdW9uZyBjYW8gYmF0IHRodW9uZyB2YSBrZW8gZGFpIG5oaWV1 IG5nYXkgbmhhdCB0dSB0cnVvYyBkZW4gbmF5IA0KKHR1IDI5LjEwIGRlbiA3LjExLjIwMTAsIGxl IHJhIGx1YyBuYXkgbnVvYyB0cmlldSB0aGFwKSwgY2h1bmcgdG9pIG5oYW4gdGhheSBjbyANCnRh YyBkb25nIGRhbmcga2UgdHUgbmh1bmcgZG90IGtob25nIGtoaSBsYW5oLiANCg0KQmFuIGRvIG1h dCBkYXQgbHVjIDEzIGdpbyBuZ2F5IDI1LjEwLjIwMTA6IEtob25nIGtoaSBsYW5oIHJhdCBtYW5o LCBwaGlhIG5hbSBsYSB0cnVjIA0KcmFuaCBob2F0IGRvbmcgbWFuaCB2b2kgY2FjIG5oaWV1IGRv bmcgZ2F5IG11YSwgZ3JhaWVudCBhcCBkYXkgc2l0IGxhbSBjaG8gZ2lvIG11YSANCmRvbmcgYmFj IG1hbmggbGVuLCBkaW5oIHRyaWV1IG5nYXkgMjUuMTAuMjAxMCBsYSAxLDU2bSwgY2FvIG1vdCBj YWNoIGJhdCB0aHVvbmcgKGhpbmggDQpiZW4gZHVvaSkuDQogDQooQW5oOiBCaWV1IGRvIERpbmgg dHJpZXUgbG9uIG5oYW4gdGFpIHRyYW0gUGh1IEFuIHNvbmcgc2FpIEdvbiB0dSAyMDAwIGRlbiAy MDEwKQ0KDQpEdSBiYW8gZGluaCB0cmlldSBtb2kgDQoNCkRpZW4gYmllbiB0cmlldSBiaWVuIERv bmcgdmEgbXVjIG51b2MgaGEgbHV1IHNvbmcgU2FpIEdvbiAtIERvbmcgTmFpIG5hbSAyMDEwOiBU aGVvIA0KeHUgdGhlIG5odW5nIG5hbSBnYW4gZGF5IG11YyBudW9jIGRpbmggdHJpZXUgdHJvbmcg a2h1IHZ1YyB0aWVwIHR1YyBnaWEgdGFuZywgdHJvbmcgY2FjIA0KdGhhbmcgMSwgMiB2YSAzIG11 YyBudW9jIGRpbmggdHJpZXUgdGFpIFBodSBBbiBkYSB2dW90IG11YyBiYW8gZG9uZyAoQkQpIElJ LCBoYWkgZGluaCANCnRyaWV1IGN1b25nIHRyb25nIHRoYW5nIDEwIGRldSBsZW4gbXVjIHhhcCB4 aSBCRCBJSUkgKDEsNTBtICkgdmEgZGluaCB0cmlldSBjdW9uZyBkYXUgDQp0aGFuZyAxMSBkdSBi YW8gc2UgbGEgMSw1OG07IHZ1b3QgbXVjIEJEIElJSSB2YSB2dW90IG11YyBjYW8gbmhhdCBsaWNo IHN1ICh0aGFuZyANCjExLjIwMDkpLg0KDQpUaGVvIG5oYW4gZGluaCBkYWkgaGFuIHRoaSB0cmll dSBjdW9uZyBiaWVuIERvbmcgdHJvbmcgdGhhbmcgMTIgbmFtIG5heSBzZSBsZW4gbXVjIGNhbyAN Cm5oYXQgbmFtLCBjYW8gaG9uIHRyaWV1IHRoYW5nIDExLiANCg0KTmh1IHZheSBtdWMgbnVvYyB0 YWkgaGEgbHV1IHNvbmcgU2FpIEdvbiAtIERvbmcgTmFpIGNvIG5oaWV1IGtoYSBuYW5nIGxlbiBj YW8gdmEgbmV1IA0KdmFvIHRob2kga3kgdHJpZXUgY3VvbmcgdGhhbmcgMTIgbWEgZ2lvIG11YSBk b25nIGJhYyB0cmVuIGJpZW4gRG9uZyBob2F0IGRvbmcgbWFuaCANCnRoaSBtdWMgbnVvYyB0cm9u ZyBoZSB0aG9uZyBzb25nIHZhIGtlbmggcmFjaCB0YWkgVFAuSENNIGNvbiBsZW4gY2FvIGhvbiB2 YSBrZW8gZGFpIA0KdHJvbmcgbmhpZXUgbmdheSBob24gbnVhLg0KDQpTYXUgbmd1eWVuIG5oYW4g a2hpZW4gVFAuSENNIG5nYXAgbHV0DQoNCjEuIFRQIG5hbSBvIGtodSB2dWMgY2hpdSBhbmggaHVv bmcgY3VhIHRodXkgdHJpZXUuIFRydW9jIGRheSB0YWkgZGlhIGJhbiBuYXkgY28gbmh1bmcgDQpj aG8gZG8gY2FvIGNoaSBiYW5nIHZvaSBtdWMgbnVvYyBkaW5oIHRyaWV1LiBTYXUgbmhpZXUgbmFt IGRheSBtYW5oIHBoYXQgdHJpZW4gZG8gdGhpLCANClRQIGRhIG5heSBzaW5oIG1vdCBraG9pIGx1 b25nIGJlIHRvbmcga2hvbmcgbG8gZGF0IHRyZW4gbmVuIGRhdCB5ZXUgKHRydSBtb3QgdmFpIG5v aSBvIA0KUS4xLCBRLjksIEhvYyBNb24sIEdvIFZhcCBoaWVuIGNvbiBnaXUgZHVvYyBkaWEgaGlu aCBjYW8gaG9uKSBjb25nIHZvaSB0b2MgZG8ga2hhaSANCnRoYWMgbnVvYyBuZ2FtIHF1YSBtdWMs IG5oYXQgbGEgdHUgcGhpYSBuZ3VvaSBkYW4gZGUgcGh1YyB2dSBjaG8gc2luaCBob2F0IGhhbmcg bmdheSANCmRhIGtoaWVuIG11YyBudW9jIG5nYW0gY3VhIFRQIGJpIHR1dCBkYW5nIGtlLiBIYXUg cXVhIGxhIG5oaWV1IGtodSB2dWMgdHJ1b2MgZGF5IGNodW5nIA0KNSBuYW0ga2hvbmcgaGUgYmkg bmdhcCB0aGkgbmF5IGxhaSB0aGFuaCBzb25nIHRyb25nIG1vaSBkb3QgdHJpZXUgY3VvbmcgaGF5 IG11YSANCmxvbi4gTWF0IGtoYWMsIG5odW5nIG5hbSBnYW4gZGF5IGRpbmggdHJpZXUgbmdheSBj YW5nIGRhbmcgY2FvLiANCg0KMi4gTmdhcCBsdXQgZ2lhIHRhbmcgdGFpIFRQLkhDTSBjb24gZG8g dGFjIGRvbmcgY3VhIG51b2MgYmllbiBkYW5nIGNhbyB2YSBsdSBwaGF0IHNpbmggDQp0dSBoYSBs dXUgY3VhIGNhYyBzb25nIFNhaSBHb24sIERvbmcgTmFpIGJhdCBrZSB2aWVjIG1vdCBzbyBobyBu aHUgRGF1IFRpZW5nLCBUcmkgQW4sIA0KVGhhYyBNbyBjbyB4YSBsdSBoYXkga2hvbmcuIA0KDQoz LiBWYWkgbmFtIHRybyBsYWkgZGF5IGx1b25nIG11YSBkbyBkdW9jIHRhaSBUUC5IQ00gY2FuZyBu Z2F5IGNhbmcgbG9uLiANCg0KNC4gSGllbiB2YW8gdGhvaSBkaWVtIGN1b2kgbXVhIG11YSBuZW4g Y2FjIHZ1bmcgdHJ1bmcsIGhvIGNvIGtoYSBuYW5nIHRpY2ggdHJ1IG51b2MgDQp0cmVuIGRpYSBi YW4gVFAgY3VuZyBkYSBkYXksIG1hdCBkYXQgZGEgZHUgZG8gYW0sIG5lbiBraGEgbmFuZyB0aG9h dCBudW9jIHJhdCBjaGFtIHZhIA0KaXQuIENoaW5oIHZpIHZheSwgbXVhIGRpZW4gcmEgZHVuZyBs dWMgdHJpZXUgY3VvbmcgbG9uIGRhIGtoaWVuIG5oaWV1IGtodSB2dWMgdGFpIFRQIGNoaW0gdHJv bmcgYmllbiBudW9jLiANCg0KNS4gSGUgdGhvbmcgY28gc28gaGEgdGFuZywgZGFjIGJpZXQgbGEg aGUgdGhvbmcgY2FwIHRob2F0IG51b2MgY3VhIFRQIGRhIGxhYyBoYXUgc28gdm9pIA0KdG9jIGRv IHBoYXQgdHJpZW4gbWFuaCBtZSBjdWEgbW90IGRvIHRoaSBsb24gbmhhdCBudW9jIG5odSBUUC5I Q00uIA0KDQo2LiBOZ3V5ZW4gbmhhbiBjdW9pIGN1bmcgbmh1bmcgcmF0IHF1YW4gdHJvbmcsIGxh IG5oaWV1IG5ndW9pIGRhbiB0aGlldSB5IHRodWMgdHJvbmcgDQp2aWVjIGdpdSBnaW4gbW9pIHRy dW9uZywgbmh1IHhhIHJhYyBidWEgYmFpLCB4YXkgZHVuZyBsYW4gY2hpZW0gbGFtIGJpdCBjb25n LCBrZW5oIHJhY2guLi4gLSBPbmcgTmd1eWVuIE5nb2MgQW5oIChxdXllbiBWaWVuIHRydW9uZyBW aWVuIFF1eSBob2FjaCBUaHV5IGxvaSBtaWVuIE5hbSkgTGUgVGhpIFh1YW4gTGFuIC0gTmd1eWVu IExlIEhhbmggKERhaSBLaGkgdHVvbmcgdGh1eSB2YW4ga2h1IHZ1YyBOYW0gQm8pDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTExMTAwMzg1OS5h c3B4IE5ob20gUFYgQ1QtWEggIDExLzExLzIwMTAgMDozOCANCg0KU2FpIEdvbiBtdWEgbHUgIC0g IEJpIGhhaSB2dW5nIHJvbiBsdSAgDQogIA0KKEFuaDogQ2F1IGJlIG5heSBkYW5nIHRhdCBudW9j IHJhIGtob2kgbmhhIHRhaSBoZW0gMzA4QS8yOCBkdW9uZyBEaWVuIEJpZW4gUGh1LCANClAuMjIs IFEuQmluaCBUaGFuaCwgVFAuSENNIC0gQW5oOiBCYWNoIER1b25nKSANCg0KTm9pIHRvaSBsdSBs dXQsIG5ndW9pIHRhIGhheSBuZ2hpIGRlbiBtaWVuIFRydW5nLCBtaWVuIFRheSBOYW0gQm87IGl0 IGFpIGhpbmggZHVuZyByYSANCnJhbmcgbHUgU2FpIEdvbiBjdW5nICJkdSBkYW4iIGtob25nIGtl bS4gDQoNClRyb25nIG5odW5nIG5nYXkgbXVhIHRvIGNvbmcgdm9pIHRyaWV1IGN1b25nIGxpY2gg c3UsIFBWIFRoYW5oIE5pZW4gZGEgY3VuZyBzb25nIHZhIA0KdGhhdSBoaWV1IHBoYW4gbmFvIG5v aSBraG9uIGtobyBjdWEgbmd1b2kgZGFuIFNhaSBHb24uIE8gbmh1bmcga2h1IHZ1YyBuaHUgUS5C aW5oIA0KVGhhbmgsIFRodSBEdWMsIFEuNiwgUS43LCBRLjguLi4sIG51b2MgdHJlbiB0cm9pIGRv IHh1b25nLCBkdW9pIHNvbmcgZGFuZyBsZW4ga2hvbmcgY2hpIA0KZ2F5IG5nYXAgZHVvbmcsIG1h IGNvbiB0YW4gY29uZyBuaGEgZGFuLCBraGllbiBuZ3VvaSBkYW4gdGh1b25nIHh1eWVuIHBoYWkg c29uZyANCmNodW5nIHZvaSBsdS4gDQoNCiJHaWFpIGN1dSIgZGFtIHRhbmcgDQoNCktob2FuZyAx NyBnaW8gMzAgY2h1IG5oYXQgNy4xMSwgbXVhIGxpZW4gdHVjIHRydXQgeHVvbmcsIG51b2MgbGFw IGxvIG1pZW5nIGNvbmcsIHJvaSBjaGkgDQp2YWkgcGh1dCBzYXUsIHRyYW4gcmEgbmhpZXUgY29u IGhlbSB0cmVuIGR1b25nIFBoYW0gVGhlIEhpZW4gKFEuOCkuIE1vaSBuZ3VvaSB0cm9uZyANCmdp YSBkaW5oIGFuaCBOZ3V5ZW4gUXVvYyBUcnVuZyAoMjczNy80IGR1b25nIFBoYW0gVGhlIEhpZW4s IFAuNywgUS44KSBkYW5nIGxvIGxhbmcgDQp2aSBzbyBudW9jIGRhbmcgY2FvIGFuaCBodW9uZyBk ZW4gZGFtIHRhbmcgdHJvbmcgZ2lhIGRpbmguICJOb2kgYnVvbiBuZ3VvaSB0aGFuIG1hdCANCmNo dWEgZHV0LCBjYSBnaWEgZGluaCBkZXUgbG8gbGFuZyBib2kgbmdhcCBudW9jIHNlIGtoaWVuIGJh biBiZSwgbmd1b2kgdGhhbiBraG8gZGVuIGNoaWEgDQpidW9uIHZvaSBnaWEgZGluaCIsIGFuaCBI dW5nIGJvYyBiYWNoLiBOb2kgbG8gY3VhIGFuaCBIdW5nIHZhIG5ndW9pIHRoYW4gZGEgdHJvIHRo YW5oIHN1IHRoYXQuDQogDQooQW5oOiBOZ2FwIG51b2MgZG8gdHJpZXUgY3VvbmcgZHVvbmc/WG8g VmlldCBOZ2hlIFRpbmgsIFEuQmluaD9UaGFuaCAtIEFuaDogDQpCYWNoIER1b25nDQoNCkRlIHZh byBkdW9jIGRhbSB0YW5nIG5oYSBhbmggVHJ1bmcsIGNodW5nIHRvaSBwaGFpIGNoYXkgcXVhIG1v dCBkb2FuICJjYXUgY2FuIiBjYW8gDQpnYW4gY2EgbWV0IHZ1YSBkdW9jIG5ndW9pIGRhbiBnb3Ag dGllbiB4YXkgZHVuZywgbmhhbSBuZ2FuIG51b2MgdHUgbmdvYWkgZHVvbmcgdHJhbiANCnZhbyBo ZW0uIFRoZSBuaHVuZywgImNhdSBjYW4iIGNoaSB0YWMgZHVuZyBwaGFuIG5hbywgbnVvYyBiYXQg ZGF1IGxhcCB4YXAgYmFuaCB4ZSBraGkgDQpjaHVuZyB0b2kgZGVuIG5vaS4gTW90IG1hdSBudW9j IGRlbiBzaSB2b2kgbXVpIGhvaSB0aG9pIHhhbSBjaGllbSBiYXUga2hvbmcga2hpIHUgdWF0IA0K Y3VhIGRhbSB0YW5nLiBUaWVwIGNodW5nIHRvaSwgYW5oIFRydW5nIGNobyBiaWV0IGhvbSB0cnVv YywgbmhpZXUgbmd1b2kgZGVuIHZpZW5nIGRhbSANCnRhbmcgdGhheSBudW9jIG5nYXAgbHV0IGNv biBoZW0sIG5nYW4gbmdhbSBsYWMgZGF1LiBIYWkgYmVuIGtlIGR1bmcgdHJvbmcsIG5ndW9pIGR1 bmcgDQpuZ29haSwgYmllbiBudW9jIG5nYW4gY2FuLCBjaGkgYmlldCB2YXkgdGF5IHZhIG5vaSBj aHV5ZW4gcXVhIGRpZW4gdGhvYWkuICJOdW9jIG5nYXAgDQpjYW8sIHhlIG1heSBraG9uZyBjaGF5 IGR1b2MgdmEgbmhpZXUgbmd1b2kgbWFuZyBnaWF5LCBibyB0YXkgZHVuZyBuZ29haSBkdW9uZyBj aGl1IA0KdHJhbiIsIGFuaCBUcnVuZyB0aGFuLiBBbmggbm9pIHRpZXA6ICJOaGEgdHVpIG5hbmcg bGVuIGdhbiAxbSBtYSBob20gcXVhIG51b2MgbXVvbiANCnRyYW4gdmFvLCBidWEgbmF5IGNodWEg YmlldCBzYW8gZGF5LiBIb20gcXVhLCBtdWEgY29uZyB2b2kgdHJpZXUgY3VvbmcgbGFtIG51b2Mg ZGFuZyANCm5oYW5oLCBzbyBxdWEsIGhvYSBxdWEsIGRvIGRhYyBjdW5nIHBoYWkgYnVuZyBjaGF5 IHRyYW5oIG51b2MsIGtlIGNhIHF1YW4gdGFpIGN1bmcgcGhhaSANCmtlIGxlbiBjYW8uLi4iLg0K DQpEZSAiZ2lhaSBjdXUiIGRhbSB0YW5nLCBvbmcgUGhhbiBUdWMgKGJhbyB2ZSB0byBkYW4gcGhv IFAuNywgUS44KSwgY2hvIGJpZXQgbmd1b2kgZGFuIA0KdHJvbmcgeG9tIGRhIGdvcCB0aWVuIG11 YSBtYXkgYm9tICJob2EgdGllbiIgdmEgb25nIG51b2MgZGUgYm9tIHJhIG5nb2FpIG1vaSBraGkg DQpudW9jIGxlbiBjYW8uICJLaHUgdnVjIG5heSBuYW0gdHJvbmcgYmFuIGRhbyBCaW5oIEFuLCBu aHVuZyBtYXkgbmFtIG5heSBraG9uZyBjb24gDQpiaW5oIGFuIG51YSwgdmkgbnVvYyBob2FuaCBo YW5oLCB0YW4gcGhhIGNhIGR1b25nIHZhIG5oYSByb2kiLCBvbmcgVHVjIGNodWEgY2hhdCBub2ku IA0KDQoiS2hvYyIgdHJvbmcgbmdheSBjdW9pDQoNClNhdSBoYWkgbmdheSBkYW0gY3VvaSwgYW5o IE5ndXllbiBNaW5oIE5odXQsIG5ndSBvIFEuMTAga2UgY2hvIGNodW5nIHRvaSBuZ2hlIGNhdSAN CmNodXllbiBjdW9pLi4uIHJhIG51b2MgbWF0IHRyb25nIG5nYXkgdnVpIG5oYXQgZG9pIG1pbmgu IFNvIGxhIGJvIG1lIGFuaCB0dSBLaWVuIEdpYW5nIA0KdGF0IHRhIGxlbiBTYWkgR29uIHNvbSBk ZSBraXAgZHUgbGUgY3VvaSBjdWEgY29uIHRyYWkgdmFvIGNoaWV1IGNodSBuaGF0LiBWYXkgbWEg c2FwIHRvaSANCmdpbyB2YW8gbGUgY2hpbmgsIGtoYWNoIGtodWEgdmFuIGNvbiBsb2UgaG9lLCB0 aGFuIHBodSB0aGkgY2h1YSBjbyBtYXQgbmh1IGRhIGhlbi4gRGllbiANCnRob2FpIGNobyBoYWkg dGhhbmcgYmFuIHJhIGJlbiB4ZSBkb24gY2hhIG1lLCBhbmggTmh1dCBjYW5nIGhvYW5nIGtoaSBu Z2hlIGdpb25nIGhvdCANCmhhaSBjdWEgbmd1b2kgYmFuOiAiTnVvYyBuZ2FwIG1lbmggbW9uZyBt YXkgb2ksIHhlIGNoZXQgbWF5IGtob25nIGRpIGR1b2MhIi4gQ2h1YSANCmhldCwgY28gZGF1IGNo dSByZSBjb24gbGllbiB0dWMgbmhhbiBkdW9jIG5oaWV1IGN1IGRpZW4gdGhvYWkgY3VhIG5ndW9p IHRoYW4sIGJhbiBiZSBnb2kgeGluIHRvaSB0cmUgaG9hYyBraWV1IGtob25nIHRoZSB0b2kgZHVv YywgZGFuaCBoZW4gZ3VpIHF1YSBzYXUsICJ2aSBudW9jIG8gaGVtIHR1aSBuZ2FwIA0KY2FvIHF1 YSwga2hvbmcgZGFuIHhlIHJhIGR1b2MsIHZhIGxhaSBwaGFpIG8gbmhhIGNob25nIGx1ISIuIA0K DQoiRGFuIG8gZGF5IGRhIGtldSBjdXUgdHUgbmhpZXUgbmFtIG5heSBtYSBjaGFuZyB0aGF5IGFp IG5nbyBuZ2FuZyBnaSB0b2kiIC1CYSBUcmFuIFRoaSBIYWkgLSBuZ3UgUC4xNiwgUS44LCBUUC5I Q00gDQoNCkRvaSBtYWkgZGVuIGdhbiAyMCBnaW8sIGtoYWNoIGNvIG1hdCBkb2kgbGEsIHZvIGNo b25nIGFuaCBxdXlldCBkaW5oIHZhbyBsZSwgZHUgY2hpIGNvIA0KbWF0IHRoYW4gcGh1IGNvIGRh dSwgY29uIHRoYW4gcGh1IGNodSByZSAieGluIHBoZXAgZGVuIHRyZSB2aSBudW9jIG5nYXAhIi4g RGVuIGdhbiAyMSANCmdpbywgY2EgdGllYyBjdW9pIGxhaSBuaG9uIG5oYW8gdmkgc3UgeHVhdCBo aWVuIGN1YSB0aGFuIHBodSB2YSAyIG5ndW9pIGJhbiBjdWEgYW5oIE5odXQsIA0KdHJvbmcgdGlu aCB0cmFuZyB1b3Qgc3VuZywgaG9pIGhhbSwgdnVhIGRvaSwgdnVhIGxhbmggcnVuLCBzYXUga2hp IHRob2F0IHJhIGtob2kgdnVuZyAicm9uIA0KbHUiIHRyZW4gZHVvbmcgS2luaCBEdW9uZyBWdW9u ZyAoZG9hbiBnYW4gQmVuIHhlIG1pZW4gVGF5KS4gDQoNCk5obyBsYWkgY2FuaCAiY2h1cCBlY2gi IHZhIGxvaSBudW9jIGRlbiBnYW4gdGhhdCBsdW5nLCBvbmcgVHJ1b25nIE1pbmggR2lhbmcgKGNo YSBhbmggDQpOaHV0KSB2YW4gY2h1YSBoZXQgYmFuZyBob2FuZzogIlRydW9jIGdpbyB0dWkgY28g bmdoZSBTYWkgR29uIG5nYXAgbnVvYywgbmh1bmcgbmdoaSANCmN1bmcga2hvbmcgZGVuIG5vaSBu YW8uIE5heSBuaGluIHRoYXkgY2FuaCB0dW9uZyBuZ2FwIG8gdGhhbmggcGhvIG1vaSBiaWV0IGNv IGtoYWMgZ2kgDQpsdSBvIG1pZW4gVGF5IHR1aSB0dWkgZGF1ISIuIA0KDQpWYW8gdGh1bmcgbHVu ZyBuZ2FwDQoNCktob2FuZyAxNyBnaW8gMzAgbmdheSA4LjExLCBjaHVuZyB0b2kgdmFvIGJlbiBQ aHUgRGluaCAoUS44KSAtIG5vaSBkdW9jIG5oaWV1IG5ndW9pIA0KZ29pIHZ1aSBsYSAidGh1bmcg bHVuZyIgbmdhcCBjdWEgU2FpIEdvbi4gVnVhIHF1YSBjYXUgTmhpIFRoaWVuIER1b25nIHJlIHZh byBkdW9uZyANClBoYW0gVGhlIEhpZW4gKFAuNywgUS44KSBjaGF5IG1vdCBkb2FuLCBjaHVuZyB0 b2kgdGhheSBudW9jIGJhdCBkYXUgdHJhbiBsZW4gZHVvbmcuIA0KTnVvYyBsZW4gbmhhbmggaG9u IGNodW5nIHRvaSB0dW9uZy4gTW90IHZhaSBobyBiYXQgZGF1IHR1YyB0cnVjIGJlbiBjYW5oIGNo aWVjIG1heSANCmJvbSBkZSBib20gbnVvYyByYSBraG9pIG5oYS4gTmh1bmcgbmhhIGNhbyBob24g bW90IGNodXQgY3VuZyBjdSBuZ3VvaSByYSBkdW5nIA0KImNhbmgiIGNvbiBudW9jLiANCiANCihB bmg6IE1lIGNvbiBjaGkgTGFtIFRoaSBOZ29jIFBodW9uZywgUS5CaW5oIFRoYW5oLCBuZ29pIGNo byBudW9jIHJ1dCAtIEFuaDogQmFvIFRoaWVuKQ0KDQpUaGF5IGNodW5nIHRvaSB2dWEgZGkgY2hh bSByYWkgdnVhIGNodXAgYW5oLCBtb3QgdmFpIG5ndW9pIGRhbiBuaGFjIG5obzogIlF1YXkgeGUg bGFpIA0KZGksIHZvIGxhIGtob25nIGNvIGR1b25nIHZlIGRvISIuIExvaSBjYW5oIGJhbyBjdWEg bmh1bmcgbmd1b2kgZGFuIG5nYXkgY2FuZyB0YW5nIGtoaSANCnRoYXkgY2h1bmcgdG9pIGhvaSB0 aGFtIGR1b25nIGRpIHRpZXAuIFJlIHZhbyBkdW9uZyBCYSBUbywgbGVvIGxlbiBjaGllYyBwaGEg Y3Uga3kgbyANCkJlbiBEYSBzYW5nIGJlbiBQaHUgRGluaCAoUC4xNiwgUS44KSwgY2h1bmcgdG9p IHRoYXkgdG9hbiBudW9jLCByYWMsIHZvIGR1YS4uLiB0cm9pIGxlbmggDQpiZW5oLiBDb24gZHVv bmcgQmVuIFBodSBEaW5oIGJpZW4gbWF0IG1hIHRoYXkgdmFvIGRvIGxhIGNvbiBzb25nIEtlbmgg RG9pIC0gS2VuaCANClRlIGJhbmggdHJ1b25nIG1vIHJvbmcuIFRyb2kgc2FwIHRvaSwgZHVvbmcg a2hvbmcgZGVuLCBuZXUga2hvbmcgY28gaGFuZyBkdWEgZG9jIHRoZW8gDQpibyBzb25nIHRoaSBj aHVuZyB0b2kga2hvbmcgdGhlIHBoYW4gYmlldCBkdW9jIGRhdSBsYSByYW5oIGdpb2kgZ2l1YSBz b25nIHZhIGR1b25nLg0KDQpUaWVwIHR1YyBkaSBzYXUgdmFvIHRyb25nLCBjaHVuZyB0b2kgYmF0 IGdhcCBjYSBtb3QgdnVuZyB0cmFuZyB4b2EgdG9hbiBudW9jLCBjbyBsYXAgDQpuaHVuZyBuZ3Vv aSBkYW4gbm9pIGRheSB2b2kgdGhlIGdpb2kgYmVuIG5nb2FpLiBOaHVuZyBjdSBkaWVuIHRob2Fp IGdvaSBuaGFjIG5oYXUgaSBvaTogDQoidmUgY2h1YT8iLCAidG9pIGRhdSByb2k/IiwgIm51b2Mg ZGFuZyBsZW4iLi4uIE1vaSBxdWFuIHRhbSBjdWEgbmd1b2kgZGFuIG8gZGF5IGxhIG51b2MgDQpz ZSBsZW4gZGVuIGRhdSB2YSBiYW8gZ2lvIHJ1dCBjaHUga2hvbmcgaGUgbmdoZSBobyBuaGFjIGRl biBnaWEgaGFuZyBob2EsIGdpYSB2YW5nLCBnaWEgDQpkbyBidWEgbmF5IGxlbyBkZW4gZGF1Lg0K DQpOZ29pIGJvIHRheSBuaGluIGNvbiBudW9jIGRhbmcgdHJhbiB2YW8gbmhhIG5odSB0aGFjLCBi YSBUcmFuIFRoaSBIYWkgdGhvIGRhaTogIkRhbiBvIA0KZGF5IGRhIGtldSBjdXUgdHUgbmhpZXUg bmFtIG5heSBtYSBjaGFuZyB0aGF5IGFpIG5nbyBuZ2FuZyBnaSB0b2kiLg0KDQpNYWkgbG8gaG9p IHRoYW0gdmEgY2h1cCBhbmgsIGNodW5nIHRvaSBkYSBxdWVuIGxvaSBjYW4gZGFuIGN1YSBuZ3Vv aSBkYW4gInBoYWkgcmEga2hvaSANCmtodSB2dWMgbmF5IHRydW9jIDE4IGdpbyIsIG5lbiBkYSBw aGFpIHRyYSBnaWEuIERlbiBnYW4gMjAgZ2lvLCBudW9jIGRhIG5nYXAgc2F1IGx1dCBtYXQgDQp5 ZW4gY2hpZWMgeGUgZ2FuIG1heSwga2hpZW4gY2h1bmcgdG9pIHBoYWkgZGFuIGJvIGdhbiBjYXkg c28gZGUgdHJvIGxhaSBiZW4gcGhhLiBEdW5nIA0KdHJlbiBiZW4gcGhhIHRyb25nIHRyYW5nIHRo YWkgdnVhIGRvaSwgdnVhIGxhbmggcnVuLCBjaHVuZyB0b2kgY28gY2FtIGdpYWMgbmh1IHZ1YSB0 aG9hdCANCmtob2kgdnVuZyBsdSBkdSB2YSBhdSBsbyBjaG8gc28gcGhhbiBjdWEgbmd1b2kgZGFu IG8gcm9uIGx1IGJlbiBQaHUgRGluaC4gDQoNCkR1b25nIGJpZW4gdGhhbmggc29uZyANCg0KQ3Vu ZyB2YW8gdGhvaSBkaWVtIGNoaWV1IHRvaSA4LjExLCBkdW9uZyBYbyBWaWV0IE5naGUgVGluaCAo US5CaW5oIFRoYW5oKSB0cm8gbmVuIA0KbmFvIGxvYW4uIE11YSwgdHJpZXUgY3VvbmcgZGFuZyBj YW8gbGFtIGNobyB0dXllbiBkdW9uZyBuYXkgYmllbiB0aGFuaCBzb25nLiBYZSBtYXksIA0Kbmd1 b2kgZGkgYm8sIHRoYW0gY2hpIGNvIGNhIG1vdCBzbyB4ZSBvIHRvIGNoZW4gbGFuIGxlbiB2aWEg aGUgaG9uZyB0cmFuaCBiaSAidGh1eSBraWNoIiwgDQpraGllbiBjYSBraHUgdnVjIG5ob24gbmhh bywgY2hlbiBjaHVjIG5odSBtb3QgY3VvYyBjaGF5IGxvYW4uIER1b2kgbG9uZyBkdW9uZywgbnVv YyANCm5nYXAgaGV0IGJhbmggeGUgbWF5LiBEb2FuIG5ndW9pIGhpIGh1YyBkYXkgeGUuIE1vdCBz byB4ZSBtYXkgIm5nb24iIHRoaSBnYW0gcnUsIGtldSANCmxlbiB1bmcgdWMuIFRpZW5nIHRyZSBj b24gc28gaGFpIGtob2MgdGhldCwgdGllbmcgbmh1bmcgYmEgY2h1IHF1YW4gaGV0IGxlbiB2aSBi aSBuZ3VvaSBkaSANCmJvIHhhbSBjaGllbSAiZGlhIGJhbiIsIHRpZW5nIHF1YXQgbmF0IG5oYXUg bGFtIGNobyBuaHVuZyBjb24gbmd1b2kgcXVhbiB0cm9uZyBsdSANCmNhbmcgdHJvIG5lbiBjYXUg YmFuLiANCg0KMTggZ2lvIG5nYXkgOC4xMSwgY2Ega2h1IHZ1YyBCaW5oIFF1b2kgLSBUaGFuaCBE YSAoUS5CaW5oIFRoYW5oKSBkYSBuZ2FwIHNhdSB0cm9uZyANCm51b2MuIENvbiBsdSB0cmFuIHZh byBuaGEgcXVhIG5oYW5oLCBuaGlldSBnaWEgZGluaCBkYSBraG9uZyBjaHVhbiBiaSBraXAuIFRh aSBuaGEgY2hpIA0KTGFtIFRoaSBOZ29jIFBodW9uZywgYmVwLCBuaGEgdmUgc2luaCBkYSBiaSBu Z2FwIHNhdSBuZW4gY2hpIGtob25nIHRoZSBuYW8gbmF1IGFuLiANCkNoaWVjIGdpdW9uZyBuZ3Ug ZHV5IG5oYXQgY3VhIHZvIGNob25nIHZhIDEgZHVhIGNvbiBjdW5nIGJpIG5nYXAgbnVvYywgY2hh biBnb2ksIA0KbXVuZyBtZW4gdW90IHN1bmcuIEhhaSBtZSBjb24gY2hpIG5nb2kgdHJlbiBjYWkg YmFuIG5obyBjaG8gY2hvbmcgImxvaSBudW9jIiBkaSBtdWEgDQp0aHVjIGFuLiANCg0KTG8gc28g ZGllbiBnaWF0LCBjaGV0IGR1b2kgDQoNCktob25nIGNoaSBjaGl1IGNhbmggbnVvYyB0YW4gY29u ZyB2YW8gbmhhIGxhbSBodSBoYW8gdGFpIHNhbiwgeGUgY28gdGF0IG1heSBoYW5nIGxvYXQsIA0K cXVhbiBhbyB1b3Qgc3VuZyBob2kgaGFtIGtoaSBkZW4gc28gbGFtLCBraG9uZyBpdCBuZ3VvaSwg bmh1IGJhIE5ndXllbiBUaGkgRGllcCwgbyANCmJlbiBQaHUgRGluaCAoUS44KSB0aG9hdCBjaGV0 IHRyb25nIGdhbmcgdGFjIGtoaSBiaSBkaWVuIGdpYXQuLi4gZG8gZG8gZGllbiB0cm9uZyBuaGEg YmkgbmdhcCBudW9jLiANCg0KQ2hpIE5ndXllbiBUaGkgRHVuZywgbmd1IFAuMTYsIFEuOCwgdnVh IGJlIGNvbiBsb2kgbnVvYyBiaSBib20gdnVhIGh1b25nIGRhbiBjaHVuZyANCnRvaSB4ZW0gY2Fu aCAidHUgZ2lhIiBjdWEgbWluaCBuYXkgZGEgYmllbiB0aGFuaCBhbyEgU2FuZyBzb20sIHR1IGdp dW9uZyBuZ3UgYnVvYyANCnh1b25nLCBjaGFuIGRhIGR1bmcgbnVvYy4gQ2hpIER1bmcgY2hvIGJp ZXQsIG1heSBuZ2F5IG5heSwgY2FuaCBzaW5oIGhvYXQgdHJvbmcgeG9tIA0KdHJvIG5lbiByYXQg a2hvIGtoYW4sIGtob25nIGtoYWMgZ2kgIm11YSBudW9jIG5vaSIgbyBtaWVuIFRheS4gQ2hpIGxv IGxhbmcgbmhhdCBsYSBkdWEgDQpjb24gbmhvIDcgdGhhbmcgdHVvaSwgImNoaSBzbyBubyBzbyBz YXkgbG90IHh1b25nIG51b2MgdGhpIHR1aSBjaGV0IG1hdCEiLiANCg0KaHR0cDovL2RhbnRyaS5j b20udm4vYzIwMi9zMjAyLTQwMzc1MS9sb2FuLXRlbi1kdW9uZy1waG8tby10cGhjbS5odG0gMjAv MDYvMjAxMCAtIDEzOjMwDQoNClRQSENNOiAiTG9hbiIuLi4gdGVuIGR1b25nLCBwaG8gbyBUUEhD TQ0KDQooRGFuIHRyaSkgLSBEdSBkYSBjbyBIb2kgZG9uZyBkYXQgdGVuIGR1b25nIHR1IDE1IG5h bSBuYXksIHRoZSBuaHVuZyBoZSB0aG9uZyBkdW9uZyBvIA0KVFBIQ00gdmFuIGRhdCB0ZW4gbG9h biB4aSBkZW4gbm9pIGNhYyBjbyBxdWFuIHF1YW4gbHkgY3VuZyBwaGFpICJibyB0YXkiIGtoaSB4 YWMgZGluaCANCnRlbiBkdW9uZy4NCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIw MTAvMDEvM0JBMTc1QTUvIDQvMS8yMDEwLCAxMTo1MCBHTVQrNw0KDQpUUEhDTTogVm8gZGUgbyBU UCBIQ00sIGhhbmcgdHJhbSBobyBkYW4gaG9hbmcgbG9hbg0KDQpSYW5nIHNhbmcgbmF5LCBtb3Qg ZG9hbiBkZSBiZXRvbmcgbyBuaGFuaCBzb25nIFNhaSBHb24gZGEgdm8sIG51b2MgdHJhbiBhbyBh dCB2YW8ga2h1IA0KcGhvIDgsIHBodW9uZyBIaWVwIEJpbmggQ2hhbmgsIHF1YW4gVGh1IER1Yywg VFAgSENNLg0KDQpEb2FuIGJvIGRlIGJpIHZvIGtob2FuZyAxMCBtZXQgbmFtIG8gUmFjaCBWby4g TnVvYyB0dSBiZW4gbmdvYWkgdHJhbiB2YW8gbGFtIGhhbmcgDQp0cmFtIGhvIGRhbiBvIGRheSBr aG9uZyBraXAgdHJvIHRheS4gVGF0IGNhIGRvIGRhYyB0cm9uZyBuaGEgbmh1IHR1IGxhbmgsIHF1 YW4gYW8sIGJhbiANCmdoZS4uLiBkZXUgbm9pIGxlbmggYmVuaCB0cmVuIG51b2MuICJEYXkgbGEg bGFuIGRhdSB0aWVuIG5oYSB0b2kgYmkgbmdhcCBuaHUgdGhlIG5heS4gTWF5IA0KbmFtIHRydW9j IG51b2MgZGFuZyBjYW8gbmh1bmcga2hvbmcgdHJhbiB2YW8gbmhhIiwgY2hpIE5ndXllbiBUaGkg TWFpIGNobyBiaWV0Lg0KDQooQW5oOiBEb2FuIGJvIGRlIGJpIHZvIGxhbSBudW9jIHRyYW4gdmFv IGtodSBkYW4gY3UuIEFuaDogQW4gTmhvbi4pDQoNClRoZW8gY2hpIE1haSwgaG9tIHRydW9jIG51 b2MgZGEgZGFuZyBjYW8sIGRvYW4gZGUgdHJlbiBjbyBkYXUgaGlldSBiaSB2bywgbmd1b2kgZGFu IGRhIA0KYmFvIGxlbiBwaHVvbmcuIFNhdSBkbywgcGh1b25nIGRhIGN1IG5ndW9pIGRlbiBnaWEg Y28sIG5odW5nIGRlbiBzYW5nIG5heSB0aGkgYmkgdm8uDQoNCmh0dHA6Ly93d3cua2luaHRlbm9u Z3Rob24uY29tLnZuL1N0b3J5L3hhaG9pLzIwMDcvMTAvNzM0Mi5odG1sIDMxLzEwLzIwMDctOTox NiBQTSkNCg0KVFAuSENNOiBEYW4gaG9hbmcgbG9hbiB2aSBjaHVuZyBjdSBzYXAgc2FwDQoNCjE2 aCBob20gbmF5LCBnYW4gdHJhbSBobyBkYW4gdHJvbmcgY2h1bmcgY3UgQ29zYWNvLCBkdW9uZyBO Z3V5ZW4gU2lldSwgcXVhbiAxIGRpIGRvaSANCmtoYW4gY2FwIHZpIGNvIG5ndXkgY28gc2FwIGJh dCBjdSBsdWMgbmFvLiANCkJhbiBkYXUsIG5ndXllbiBuaGFuIGR1b2MgeGFjIGRpbmggZG8gdGhp IGNvbmcgdGFuZyBoYW0gY2FvIG9jIFNhaWdvbiBSZXNpZGVuY2VzIChzbyANCjExRCBUaGkgU2Fj aCwgbmdheSBiZW4gY2FuaCBjaHVuZyBjdSBDb3NhY28pIGRhIGxhbSBzdXQgbmVuIGRhdCBuZ2F5 IGJlbiBjYW5oIGNodW5nIGN1IHh1b25nIHNhdSBob24gMiBtZXQuDQoNCkRlbiAxNmgxNSwgcGhh biBsZSBkdW9uZyAobmdheSBiZW4gY2h1bmcgY3UpIGJpIHN1dCB0aGVtIDAsNSBtZXQgbnVhLiBU cm9uZyBraGkgZG8sIA0KdmllYyBnaWEgY28gbmVuIG1vbmcgY2FvIG9jIHZhIGNodW5nIGN1IENv c2FjbyBkYW5nIGtoYW4gdHJ1b25nIHRodWMgaGllbiwgZG9uZyB0aG9pLCANCmNvbmcgdGFjIGRp IGRvaSBraGFuIGNhcCBuZ3VvaSB2YSB0YWkgc2FuIGN1YSBnYW4gMTAwIGhvIGRhbiB0YWkgY2h1 bmcgY3UgQ29zYWNvIGR1b2MgDQpraGFuIHRydW9uZyB0aWVuIGhhbmguDQoNCmh0dHA6Ly92bmV4 cHJlc3MubmV0L0dML1hhLWhvaS8yMDEwLzA2LzNCQTFENkIxLyAyOC82LzIwMTAsIDA5OjIxIEdN VCs3DQoNClRQLkhDTTogU2FwIDUgY2FuIG5oYSBnYXkgbmFvIGxvYW4gZGFuIGN1DQoNCkNoaWV1 IDI3LzYgaGFuZyB0cmFtIG5ndW9pIGRhbiBzb25nIHRyb25nIGhlbSAxNjYgZHVvbmcgVGEgUXVh bmcgQnV1IChxdWFuIDgsIFRQIA0KSENNKSBibyBjaGF5IHRhbiBsb2FuIGtoaSBjYW4gbmhhIGRh bmcgeGF5IGR1bmcgYmF0IG5nbyBkbyBzYXAga2VvIHRoZW8gNCBuaGEgbGllbiBrZS4gDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzNi8yMDEwMDkwNTIzMjcz MS5hc3B4IE1pbmggTmFtIDA1LzA5LzIwMTAgMjM6MjcgDQoNClRQIEhDTTogZG9hbmggbmdoaWVw IHBoYWkgbmd1bmcgdGhpIGNvbmcgdmkgZHVvYyBnaWFvLi4uIG5oYW0gZGF0ICANCiAgDQooQW5o IGNodXA6IEtodSBkYXQgZGFuZyB4YXkgcmEgdHJhbmggY2hhcCBnaXVhIENvbmcgdHkgVGFpIE5n dXllbiB2YSBjYWMgaG8gZGFuIC0gQW5oOiBNaW5oIE5hbSkNCg0KQ28gcXVhbiBjaHVjIG5hbmcg Z2lhbyBkYXQgY2hvIGRvYW5oIG5naGllcCBjaG9uZyBsZW4gcmFuaCBkYXQgY3VhIGNhYyBobyAN CmRhbiBkYSBkdW9jIGNhcCBzbyBkbyBkYW4gZGVuIG5odW5nIHRyYW5oIGNoYXAsIGtoaWV1IGtp ZW4ga2VvIGRhaS4uLiANCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwNjA4NzA1NjUzL3RwaGNt X25oaW5fZGF1X2N1bmdfdGhheV9vX25oaWVtLmh0bWw/bW9kZT1wcmludA0KDQpUUCBIQ006IE5o aW4gZGF1IGN1bmcgdGhheSBvIG5oaWVtIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMzgvMjAxMDA5MTMwMDQ5MTkuYXNweCAxMy8wOS8yMDEwIDA6NDkgDQoN ClRQIEhDTTogUGhhdCBzaW5oIDI2OSBkaWVtIG5nYXAgICANCiAgDQo1IG5hbSB2YSBoYW5nIHRy YW0gdHJpZXUgVVNEIGRhIGNoaSBjaG8gY2FjIGR1IGFuIHRob2F0IG51b2Mgbmh1bmcgaGlldSBx dWEgY2hvbmcgbmdhcCB2YW4gY2h1YSB0aGF5IC0gQW5oOiBEaWVwIER1YyBNaW5oIA0KDQpTYXUg NCAtIDUgbmFtIHRyaWVuIGtoYWkgaGFuZyBsb2F0IGR1IGFuIGNob25nIG5nYXAsIHRpbmggaGlu aCBuZ2FwIG51b2MgY3VhIFRQLkhDTSANCmRlbiBnaW8gdmFuIGNodWEgbWF5IHNhbmcgc3VhLiBE YW5nIGxvIG5nYWkgaG9uLCBkYSBwaGF0IHNpbmggdGhlbSBoYW5nIGxvYXQgdmFuIGRlIG5nb2Fp IGR1IGtpZW4uLi4gDQpUaGVvIFRydW5nIHRhbSBEaWV1IGhhbmggY2h1b25nIHRyaW5oIGNob25n IG5nYXAgbnVvYyBUUC5IQ00sIHR1IGRhdSBuYW0gZGVuIG5heSANCmRhIGtpZW0gdHJhLCBwaGF0 IGhpZW4gMjY5IHZpIHRyaSBjdWEgaGUgdGhvbmcgdGhvYXQgbnVvYyBiaSB4YW0gaGFpIGdheSBu Z2FwLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzYvMjAx MDA5MDUyMzExNDQuYXNweCBQaHVvbmcgVGhhbmggMDUvMDkvMjAxMCAyMzoxMSAgDQoNClRQIEhD TTogTmhhIHRoYXUgY29pIHRodW9uZyBwaGFwIGx1YXQgIA0KICANCihBbmggY2h1cDogTmhpZXUg bmhhIHRoYXUgdGhpIGNvbmcgYmUgYm9pLCBjYXUgdGhhIGdheSBhbmggaHVvbmcgZGVuIHZpZWMg ZGkgbGFpIHZhIHNpbmggDQpob2F0IGN1YSBuZ3VvaSBkYW4gLSBBbmg6IFAuVCkNCg0KTmhhbiBk YW5oIE5oYSBudW9jIHRodWMgaGllbiBxdXllbiBxdWFuIGx5IHRyb25nIGxpbmggdnVjIHhheSBk dW5nLCB0aGkgY29uZyBuaHVuZyANCmNvbmcgdHJpbmggZGFuIHNpbmggdHJvbmcgZGllbSwgY2Fj IGNvIHF1YW4gY2h1YyBuYW5nIGRhbmcgZG9pIG1hdCB2b2kgdGhhY2ggdGh1YyANCm5naGllbSB0 cm9uZyB0dSBwaGlhIGNhYyBuaGEgdGhhdS4gDQoNClRpbmggdHUgdGhhbmcgMy4yMDA4IGRlbiBu YXksIHRvYW4gVFAgY28gNDIyIG5oYSB0aGF1IGxpZW4gdHVjIHRyaSBob2FuLCB0aW0gbW9pIGNh Y2ggbmUgDQp0cmFuaCwgZG9pIHBobyBkZSBraG9uZyB0aHVjIGhpZW4gaG9hYyBkYXkgZHVhIGtl byBkYWkgdmllYyB0aGkgaGFuaCAyLjUwMCBxdXlldCBkaW5oIHh1IA0KcGhhdCB2aSBwaGFtIGhh bmggY2hpbmggdm9pIHRvbmcgc28gdGllbiBwaGF0IHBoYWkgbm9wIGxlbiBkZW4gOCw1IHRpIGRv bmcuIERpZXUgbmF5IA0KZG9uZyBuZ2hpYSB2b2kgdmllYyBjYWMgbmhhIHRoYXUgbmF5IGRhbmcg Y2hpZW0gZHVuZyB0aWVuIHRpIGRhbmcgbHkgcGhhaSBuYW0gdHJvbmcgDQpuZ2FuIHNhY2ggbmhh IG51b2MgZGUgcGh1YyB2dSBjYWMgY29uZyB0cmluaCBjb25nIGNvbmcga2hhYy4NCg0KTW9pIG5o YSB0aGF1IG5vIGhhbmcgdHJhbSBiaWVuIGJhbiANCg0KRGFuZyBsbyBuZ2FpIGxhIG5odW5nIG5o YSB0aGF1IGxvbiwgdGhpIGNvbmcgY2FjIGR1IGFuIHRyb25nIGRpZW0gY3VhIFRQIGxhaSBsYSBk b2kgdHVvbmcgDQp2aSBwaGFtIG5oaWV1IG5oYXQgdmEgY3VuZyBjaGF5IHkgbm9wIHBoYXQgbmhh dC4gDQoNClRyb25nIGRvLCBuaGEgdGhhdSBTaGltaXp1IChOaGF0KSB0aGkgY29uZyBkdSBhbiBD YWkgdGhpZW4gbW9pIHRydW9uZyBudW9jIGR1bmcgZGF1IA0KYmFuZyAicGhvbmcgdGhhbiIgdm9p IDIwMCBiaWVuIGJhbiB4dSBwaGF0LCB0dW9uZyBkdW9uZyB0b25nIHNvIHRpZW4gaG9uIDgyNyB0 cmlldSBkb25nLiANClRvbmcgY29uZyB0eSB4YXkgZHVuZyBzbyAxICh0aGkgY29uZyBuaGlldSBj b25nIHRyaW5oIHRyb25nIGRpZW0gdHJlbiBkaWEgYmFuIFRQIG5odSANCmNhdSBUaHUgVGhpZW0s IHZlIHNpbmggbW9pIHRydW9uZywgc3VhIGNodWEgY2F1IFZhbiBUaGFuaCAyLi4uKSBjb24gbm8g MTUwIGJpZW4gYmFuIA0KeHUgcGhhdCB2b2kgc28gdGllbiBob24gNTIzIHRyaWV1IGRvbmcuIA0K DQpUdW9uZyB0dSwgaGFuZyBsb2F0IG5oYSB0aGF1IGxvbiBraGFjIG5odSBUT0EgKE5oYXQpLCBM aWVuIGRhbmggeGF5IGR1bmcgVklDLCANCk9iYXlhc2hpIChOaGF0KSwgQ29uZyB0eSBjb25nIHRy aW5oIGdpYW8gdGhvbmcgY29uZyBjaGFuaCwgQ29uZyB0eSBDUCBkYXUgdHUgdmEgcGhhdCANCnRy aWVuIHhheSBkdW5nLCBDb25nIHR5IGxpZW4gZG9hbmggSFVELCBDb25nIHR5IFROSEggVHJpIFZp ZXQgVGhhbmgsIExpZW4gZGFuaCANCkRyZWNvIC0gQ2llbmNvIDUuLi4gZGV1IGNodWEgbm9wIHBo YXQgdm9pIHNvIHRpZW4gaGFuZyB0cmFtIHRyaWV1IGRvbmcuDQoNCk9uZyBOZ3V5ZW4gQmF0IEhh biAtIFBobyBjaGFuaCB0aGFuaCB0cmEgU28gR1RWVCBUUC5IQ00gLSBjaG8gYmlldCwgY2FjIG5o YSB0aGF1IA0KbmF5LCB0cm9uZyBxdWEgdHJpbmggdGhpIGNvbmcgY2FjIGNvbmcgdHJpbmggdGhv YXQgbnVvYyB2YSBnaWFvIHRob25nLCBkYSB2aSBwaGFtIGhhdSBuaHUgDQpraG9uZyB0aGlldSBt b3QgbG9pIG5hbywgbmh1OiBraG9uZyB0aHVjIGhpZW4gZHVuZyBwaHVvbmcgYW4gdGhpIGNvbmc7 IGtob25nIHRoaSBjb25nIA0KY3VvbiBjaGlldSBnYXkgYW5oIGh1b25nIGFuIHRvYW4gZ2lhbyB0 aG9uZzsgZGUgdmF0IHR1IHZhIG1heSBtb2MgYmVuIG5nb2FpICJsbyBjb3QiIA0KZ2F5IGNhbiB0 cm8gZ2lhbyB0aG9uZzsgdGFpIGxhcCBtYXQgZHVvbmcgY2F1IHRoYTsga2hvbmcga2hhbyBzYXQg a3kgdHJ1b2Mga2hpIHRoaSBjb25nIA0KZ2F5IGh1IGhvbmcgY2FjIGNvbmcgdHJpbmgga3kgdGh1 YXQsIGxhbSBsdW4gbnV0IG5oYSBkYW47IGtob25nIGJvIHRyaSBuZ3VvaSBodW9uZyBkYW4gDQpn aWFvIHRob25nIGJlbiBuZ29haSAibG8gY290Ii4uLg0KIA0KKEFuaCBjaHVwOiBWYXQgdHUsIHJh YyB0aGFpIHR1IG1vdCBjb25nIHRyaW5oIGRvIHRyYW4gcmEgZHVvbmcpDQoNClRoZW8gb25nIEhh biwgdGhvaSBnaWFuIHF1YSB0aGFuaCB0cmEgZGEgbGllbiB0dWMgZ3VpIHZhbiBiYW4gZGVuIHR1 bmcgbmhhIHRoYXUgdmkgcGhhbSANCmRlIHlldSBjYXUgZG9uZyBwaGF0IG5odW5nIHJhdCBpdCBk b24gdmkgY2hhcCBoYW5oLCBraGllbiBzbyB0aWVuIHh1IHBoYXQgbm8gZG9uZyBjaG9uZyANCmNo YXQgcXVhIGNhYyBuYW0uIA0KDQpDaHUgZGF1IHR1IG8gZGF1Pw0KDQpLeSBzdSBQaGFuIFBodW5n IFNhbmggLSBQaG8gY2h1IHRpY2ggdGh1b25nIHRydWMgSGllcCBob2kgS2hvYSBob2Mga3kgdGh1 YXQgeGF5IGR1bmcgDQpUUC5IQ00sIGNobyByYW5nIHRoaSBjb25nIGNhdSB0aGEgbG9pIHRydW9j IHRpZW4gbGEgY3VhIG5oYSB0aGF1IG5odW5nIGRlIG5oYSB0aGF1IHRoaSANCmNvbmcgYmUgYm9p LCBjaGF5IHkgdGhpIHRyYWNoIG5oaWVtIHRodW9jIHZlIGNodSBkYXUgdHUuIENodSBkYXUgdHUg bGEgZG9uIHZpIGRhaSBkaWVuIA0KTmhhIG51b2MsIGRhaSBkaWVuIG5ndW9pIGRhbiBkdW5nIHJh IGx1YSBjaG9uIG5oYSB0aGF1LCBkb2MgdGh1YyBuaGEgdGhhdSB2YSBjaGl1IHRyYWNoIA0Kbmhp ZW0gdmUgY2hhdCBsdW9uZywgdGllbiBkbyBjb25nIHRyaW5oLiBOZXUga2hvbmcgc2lldCBjaGF0 IHRyYWNoIG5oaWVtIGN1YSBjaHUgZGF1IHR1IA0Ka2VtIHRoZW8gY2FjIGJpZW4gcGhhcCBjaGUg dGFpIHR1b25nIHh1bmcgdGhpIHRpbmggdHJhbmcgbmF5IHNlIGNvbiB0aWVwIHR1Yy4gDQogDQoo QW5oIGNodXA6ICJMbyBjb3QiIGNoYW4gbmdhbmcgZ2F5IHVuIHRhYyBnaWFvIHRob25nIC0gQW5o OiBQLlQpDQoNClR1eSBuaGllbiwgb25nIFNhbmggY3VuZyBjaG8gcmFuZyBkb24gdmkgeHUgcGhh dCBjbyBsb2kga2hvbmcgbmhvIGtoaSB0aGlldSBuZ2hpZW0gDQpraGFjIHRyb25nIHh1IGx5IHZp IHBoYW0gY3VhIGNhYyBuaGEgdGhhdS4gVHJlbiB0aHVjIHRlLCBOZ2hpIGRpbmggMzQvMjAxMCB2 ZSB4dSBwaGF0IHZpIA0KcGhhbSBoYW5oIGNoaW5oIHRyb25nIGxpbmggdnVjIGdpYW8gdGhvbmcg ZHVvbmcgYm8gZGEgdGFuZyBtdWMgeHUgcGhhdCBsZW4gaGFuZyBjaHVjIA0KbGFuIHNvIHZvaSB0 cnVvYy4gVmUgY28gYmFuIGxhIGR1IHN1YyByYW4gZGUgbmhhIHRoYXUuIE5odW5nIGRlbiB0aG9p IGRpZW0gaGllbiB0YWksIHJhdCANCmhpZW0gbmhhIHRoYXUgdmkgcGhhbSBiaSBkaW5oIGNoaSB0 aGkgY29uZywgYnVvYyBraGFjIHBodWMgaGF1IHF1YSB0aGVvIGR1bmcgdGluaCB0aGFuIA0KTmdo aSBkaW5oIDM0LiBIYXUgbmh1IHRoYW5oIHRyYSBnaWFvIHRob25nIGNoaSB4dSBseSB0aGVvIGtp ZXUgbGFwIGJpZW4gYmFuIGhhbmggY2hpbmggDQp2YSB5ZXUgY2F1IGtoYWMgcGh1Yywgc29uZyBz YXUgZG8gbmhhIHRoYXUgY28gbm9wIHBoYXQgdmEga2hhYyBwaHVjIGhheSBraG9uZyBsYWkgY2h1 YSANCmNvIGNhY2ggbmFvIGNoZSB0YWkgY2hvIGhpZXUgcXVhLiANCg0KVHJvbmcgcXVhIHRyaW5o IHRoaSBjb25nLCBkaWV1IG1hIG5ndW9pIGRhbiB0cm9uZyBkb2kgbGEgc3UgY2h1IGRvbmcgY3Vh IGNodSBkYXUgdHUgDQp0cm9uZyB2aWVjIGdpYW0gc2F0LCBuZ2FuIGNoYW4gbmd1eSBjbyBnYXkg dGhpZXQgaGFpIGRvIGhhbmggdmkgYmUgdHJlLCBjYXUgdGhhIGN1YSBuaGEgDQp0aGF1LiBUdXkg bmhpZW4sIGdhbiBuaHUgY2h1IGRhdSB0dSAiYm8gbHVuZyIga2hhdSBuYXkgdmEga2hvbmcgcGhh aSBjaGl1IG1vdCBjaGUgdGFpIA0KbmFvIGtoaSBuaGEgdGhhdSBsaWVuIHR1YyB2aSBwaGFtLiBP bmcgU2FuaCBjaG8gcmFuZzogIkNoaSBjbyBzdSByYW5nIGJ1b2MgaG9wIGRvbmcgDQpjaGF0IGNo ZSB2YSBzdSBnaWFtIHNhdCBnYXQgZ2FvIGN1YSBjaHUgZGF1IHR1IG1vaSBkdSBzdWMgbmdhbiBj aGFuIHR1IGdvYyBjYWMgdmkgcGhhbSANCmN1YSBuaGEgdGhhdS4gQ2h1IGRlIG5oYSB0aGF1IHZp IHBoYW0gbyBhdCByb2kgcGhvIG1hYyBjaG8gdGhhbmggdHJhIGdpYW8gdGhvbmcgeHUgcGhhdCAN Cm5odSBoaWVuIG5heSB2YW4gY2hpIGxhIGJpZW4gcGhhcCBjaHVhIGNoYXksIG1hIG5odW5nIHRo aWV0IGhhaSB2ZSB1biB0YWMsIHRhaSBuYW4gZ2lhbyANCnRob25nLCB0aGlldCBoYWkgdmUgc2lu aCBtYW5nLCBjdWEgY2FpLi4uIGN1bmcgZGEgeGF5IHJhIHRyZW4gdGh1YyB0ZSIuICAgIA0KDQpE b25nIHF1YW4gZGllbSB0cmVuLCBsdWF0IHN1IFRydW9uZyBYdWFuIFRhbSAtIFV5IHZpZW4gSG9p IGRvbmcgbHVhdCBzdSB0b2FuIHF1b2MgLSANCmN1bmcgY2hvIHJhbmcgY2FjIGJpZW4gcGhhcCBo YW5oIGNoaW5oIG5ldSBsYW0gbmdoaWVtIHNlIG1hbmcgdGluaCByYW4gZGUgcmF0IGxvbi4gDQpU aGVvIHF1eSBkaW5oLCB0cm9uZyB0cnVvbmcgaG9wIG5oYSB0aGF1IGtob25nIHR1IG5ndXllbiB0 aHVjIGhpZW4gcXV5ZXQgZGluaCB4dSBwaGF0LCANCkNoYW5oIHRoYW5oIHRyYSBTbyBHVFZUIGhv YW4gdG9hbiBjbyB0aGFtIHF1eWVuIHJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIHRoaSBoYW5oIGJh bmcgDQpjYWNoIHBob2kgaG9wIHZvaSBuZ2FuIGhhbmcga2hhdSB0cnUgdGllbiB2aSBwaGFtIHR1 IHRhaSBraG9hbiBjdWEgbmhhIHRoYXUgZGUgDQpjaHV5ZW4gdmFvIGtobyBiYWMuIEhvYWMgeWV1 IGNhdSBjaHUgZGF1IHR1IGNvbmcgdHJpbmgga2hhdSB0cnUgdGllbiB2aSBwaGFtIHRyb25nIHF1 YSANCnRyaW5oIHRoYW5oIHRvYW4gY2hvIG5oYSB0aGF1LCB0YW0gZ2l1IG1heSBtb2MsIHRoaWV0 IGJpIHRoaSBjb25nIGN1YSBuaGEgdGhhdS4uLg0KDQoiVHJlbiB0aHVjIHRlLCB0aWVuIHh1IHBo YXQgdmkgcGhhbSBoYW5oIGNoaW5oIGR1b2Mgbm9wIHZhbyBuZ2FuIHNhY2ggbmhhIG51b2MgbmVu IGRhIA0KdGFvIHJhIHRpbmggdHJhbmcgY2hhIGNodW5nIGtob25nIGFpIGtob2MsIGRheSBsYSBt b3Qgbmd1eWVuIG5oYW4ga2hpZW4gdmllYyBkb24gZG9jIA0Kbm9wIHBoYXQga2hvbmcgZHVvYyBs YW0gcm90IHJhby4gQ2hpbmggZGlldSBuYXkgc2UgdGFvIG5lbiB0aG9pIGNoYXkgeSBvIG5oYSB0 aGF1LCBib2kgDQpjaGkgY28geSB0aHVjIHN1IGR1bmcgbHVhdCBwaGFwIGN1YSBkb24gdmkgeHUg cGhhdCBtb2kgdGFvIHJhIHkgdGh1YyB0dWFuIHRodSBsdWF0IHBoYXAgDQpjaG8gY2FjIG5oYSB0 aGF1IiwgbHVhdCBzdSBUYW0gbmhhbiBtYW5oLiANCg0KTGFwIGRhbmggc2FjaCAiZGVuIj8gDQoN ClRoZW8gb25nIE5ndXllbiBCYXQgSGFuLCB0dSB0cnVvYyBkZW4gbmF5IHZpZWMgY2FwIHBoZXAg dGhpIGNvbmcgY2hvIG5oYSB0aGF1IGtoYSBkZSANCmRhaSwgY28gaG8gc28gbGEgY2FwIHBoZXAg Y2h1IGtob25nIGNhbiBiaWV0IG5oYSB0aGF1IGRhIHZpIHBoYW0gYmFvIG5oaWV1IGxhbiwgdmkg cGhhbSANCm5odW5nIGxvaSBuZ2hpZW0gdHJvbmcgbmFvLiBEbyBkbywgdGhhbmggdHJhIGdpYW8g dGhvbmcgZGFuZyBzb2FuIHRoYW8gcXV5IGRpbmggY2hhbiANCmNoaW5oIHZpZWMgdGhpIGNvbmcg Y3VhIGNhYyBuaGEgdGhhdSwgdHJvbmcgZG8gcmFuZyBidW9jIHRyYWNoIG5oaWVtIGdpdWEgbmhh IHRoYXUgdm9pIA0KY2h1IGRhdSB0dSB2YSBjbyBxdWFuIHF1YW4gbHkgbmhhIG51b2MuIEN1IHRo ZSwgZG9uIHZpIGNhcCBwaGVwICh0aHVvYyBTbyBHVFZUIGhvYWMgDQpjYWMgcXVhbiwgaHV5ZW4p IHRydW9jIGtoaSBjYXAgZ2lheSBwaGVwIHRoaSBjb25nIGNobyBuaGEgdGhhdSBwaGFpIGNvIHkg a2llbiBjdWEgdGhhbmggDQp0cmEgZ2lhbyB0aG9uZyB4YWMgbmhhbiBuaGEgdGhhdSBkYSBob2Fu IHRoYW5oIGNhYyBiaWVuIGJhbiB4dSBwaGF0IGhhbmggY2hpbmguIE5nb2FpIA0KcmEsIFNvIEdU VlQgY3VuZyBzZSBsYXAgZGFuaCBzYWNoICJkZW4iIGdvbSBjYWMgbmhhIHRoYXUgdGh1b25nIHh1 eWVuIHZpIHBoYW0gZGUgDQpraWVuIG5naGkgVUJORCBUUCBjYW0gdGhhbSBnaWEgZGF1IHRoYXUg eGF5IGR1bmcgY2FjIGNvbmcgdHJpbmggaGEgdGFuZyBkYXUgdHUgYmFuZyBuZ2FuIHNhY2ggVFAu IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzcvMjAxMDA5 MDYyMzQ4NTIuYXNweCBQVCAwNi8wOS8yMDEwIDIzOjQ4ICh0cmljaCkNCg0KVFAgSENNOiBUdWMg bnVvYywgdm8gYm8gLSBOZ3VvaSBkYW4gZGkga2llbiAgDQoNCihBbmggY2h1cDogIkxvIGNvdCIg dGhpIGNvbmcgY2hhbSB0cmUsIGJlIGJvaSBnYXkgdGhpZXQgaGFpIGNobyBuZ3VvaSBkYW4gc3Vv dCBuaGlldSBuYW0gcXVhIC0gQW5oOiBELkQuTWluaCkNCg0KTmd1b2kgZGFuIFZOIHZvbiBjaHVh IHF1ZW4gdm9pIG5odW5nIHZ1IGtpZW4gIGRvaSBib2kgdGh1b25nIGtoaSBxdXllbiBsb2kgaG9w IHBoYXAgDQpjdWEgbWluaCBiaSB4YW0gcGhhbS4gVGhlIG5odW5nLCB0aGVvIGNhYyBsdWF0IHN1 IHZhIGNodXllbiBnaWEsIG1vdCB2dSAiZGFvIHR1bmcgDQpkaW5oIiBsYSBjYW4gdGhpZXQgZGUg Y2hhbiBjaGluaCBzdSBjaGF5IGkgY3VhIG5oYSB0aGF1IHZhIHRoYWkgZG8gdGhpZXUgdHJhY2gg bmhpZW0gDQpjdWEgY2h1IGRhdSB0dSBkYW5nIHRvbiB0YWkgbmdhbmcgbmhpZW4gbyBjYWMgY29u ZyB0cmluaCBnaWFvIHRob25nIGhpZW4gbmF5LiANCg0KVmllYyBUb2EgYW4gbmhhbiBkYW4gIFRQ LkhDTSB0aHUgbHkgZG9uIGN1YSBvbmcgTmd1eWVuIFZhbiBMYW5nIChuZ3UgZHVvbmcgDQpOZ3V5 ZW4gSHV5IFR1LCBQLkRhIEthbywgUS4xLCBUUC5IQ00pIGtpZW4gU28gR2lhbyB0aG9uZyB2YW4g dGFpIChHVFZUKSBkb2kgYm9pIA0KdGh1b25nIHRoaWV0IGhhaSBkbyAibG8gY290IiB0aGkgY29u ZyBjYXUgdGhhLCBiZSB0cmUgbW9pIGRheSBkdW9jIHhlbSBsYSBtb3QgdnUga2llbiANCmNodWEg dHVuZyBjbyB0aWVuIGxlLiBCb2kgdGFpIFRQLkhDTSBkYSBjbyB0cnVvbmcgaG9wIG5ndW9pIGRh biBraWVuIG5oYSB0aGF1IA0KT2JheWFzaGkgKE5oYXQpIHRoaSBjb25nIGR1IGFuIGRhaSBsbyBE b25nIFRheSBsYW0gbHVuIG51dCBuaGEgZGFuIChvIFEuMiksIHNvbmcgbmd1b2kgDQpkYW4ga2hv aSBraWVuIGNodSBkYXUgdHUgdmEgY28gcXVhbiBxdWFuIGx5IG5oYSBudW9jIHRoaSBkYXkgbGEg dnUga2llbiBkYXUgdGllbi4NCg0KRHUgbHVhbiBoYW4gZGEgcXVhIHF1ZW4gdm9pIHRpbmggdHJh bmcgdGhpIGNvbmcgYmUgdHJlLCBjYXUgdGhhIHRhaSBkdSBhbiBWZSBzaW5oIG1vaSANCnRydW9u ZyAobHV1IHZ1YyBOaGlldSBMb2MgLSBUaGkgTmdoZSksIG1hIG1vdCB0cm9uZyBuaHVuZyBnb2kg dGhhdSBjaGF5IGkgbmhhdCBsYSBnb2kgDQpzbyA3IGRvIG5oYSB0aGF1IFRydW5nIFF1b2MgVE1F QyBDSEVDIDMgdGhpIGNvbmcuIFZhIHZpZWMgb25nIExhbmcga2hvaSBraWVuIGRvaSANCmJvaSB0 aHVvbmcgdGhpZXQgaGFpIGRvIHZpZWMgdGhpIGNvbmcgZ29pIHNvIDcgbGEgbW90IGhhbmggZG9u ZyAidHVjIG51b2MsIHZvIGJvIi4gS2hpIA0KbmhhIHRoYXUgVE1FQyBDSEVDIDMgdGllbiBoYW5o IHJhbyBjaGFuICJsbyBjb3QiIHRydW9jIG5oYSBvbmcgdmFvIG5hbSAyMDA1LCBnaWEgZGluaCAN Cm9uZyBkYSB2dWkgdmUgaG9wIHRhYyBkZSBwaHVjIHZ1IHZpZWMgdGhpIGNvbmcuIFRoZSBuaHVu ZywgImxvIGNvdCIgdHVvbmcgY2hpIG1vYyANCmxlbiB2YWkgdGhhbmcga2hvbmcgbmdvIGRheSBk dWEgaGV0IG5hbSBuYXkgc2FuZyBuYW0ga2hhYyBraGllbiB0aGlldCBoYWkgdmUga2luaCB0ZSAN CnRybyBuZW4gcXVhIHN1YyBjaGl1IGR1bmcuIFRyYW8gZG9pIHZvaSBUaGFuaCBOaWVuLCBvbmcg TGFuZyBjaG8gYmlldCBkYSBkZW8gZHVvaSB2dSANCmtpZW4gbmF5IHJvbmcgcmEgc3VvdCA0IG5h bSBuYXkuIA0KDQpEYWkgYmlldSBIRE5EIFRQLkhDTSBEYW5nIFZhbiBLaG9hIGNobyByYW5nLCB2 aWVjIG5ndW9pIGRhbiBtYW5oIGRhbiBraG9pIGtpZW4gDQpkZSBkb2kgcXV5ZW4gbG9pIGhvcCBw aGFwIGxhIGRhdSBoaWV1IGRhbmcgbXVuZyB0cm9uZyBtb3QgeGEgaG9pIG1hIGNvIHF1YW4gcXVh biBseSANCm5oYSBudW9jLCBuaGEgdGhhdSBoYXkgbmd1b2kgZGFuIGRldSBiaW5oIGRhbmcgdmEg bW9pIHN1IHhhbSBwaGFtIHF1eWVuIGxvaSBnYXkgdG9uIA0KaGFpIHZhdCBjaGF0IGhheSB0aW5o IHRoYW4gZGV1IHBoYWkgZHVvYyBkZW4gYnUuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9uZXdzL1BhZ2VzLzIwMTAzNi8yMDEwMDkwNTAyMDcxMi5hc3B4IERhbSBIdXkgMDUvMDkvMjAx MCAyOjA3IA0KDQpUUCBIQ006IER1b25nIGRheSB0byBjaHVjIGNhIHRyYW0gdnUgInhlbSBtYXQi IGNvIGRhdSB0cmFpIHBoZXAgIA0KDQpodHRwOi8vd3d3Lmllc2QuZ292LnZuL3dlYnBsdXMvdmll d2VyLnByaW50LmFzcD9haWQ9NzEmbD1WTiBMZSBYdWFuIEtob2kgDQoNClRQIEhDTSBPIG5oaWVt IG5ndW9uIG51b2MgdHJlbiBkaWEgYmFuIFRQSENNIGhpZW4gbmF5IGR1b2MgZGFuaCBnaWEgbGEg bmdoaWVtIHRyb25nIG5oYXQuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9Q YWdlcy8yMDEwMzcvMjAxMDA5MDYwMDAzMzUuYXNweCBILkN1IDA2LzA5LzIwMTAgMDowMyANCg0K VFAgSENNOiB0YWkgdHJ1b25nIERIIFF1b2MgZ2lhIFRQLkhDTSwgdGluaCBRdWFuZyBOZ2FpIHBo YWkgZGF1IHR1IGdhbiAyMCB0aSBkb25nIA0KeGF5IGt5IHR1YyB4YSBzaW5oIHZpZW4gUXVhbmcg TmdhaSwgZ29tIDYwIHBob25nLCBkYXAgdW5nIGNobyBvIGNobyBnYW4gNTAwIHNpbmggdmllbiAN ClF1YW5nIE5nYWkgZGFuZyBob2MgdGFwIHRhaSBUUC5IQ007IGtob25nIHJvIGRvaSB2b2kgc2lu aCB2aWVuIHR1IGNhYyB0aW5oIGtoYWMgdGhpIA0KY2hvIGFuLCBjaG8gbyBjbyBkdW9jIGRhbSBi YW8gZGUgeWVuIHRhbSBob2MgdGFwIGtob25nLg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v aGNtLzIwMTAwOC9UUEhDTS1kYS1waG9pLWJheS15ZXUta2VtLXNhdS0zLW5hbS12YW8tV1RPLTkz Mjk1NS8gQ2EgSGFvIDE5OjM4LCAzMS8wOC8yMDEwIChHTVQrNykNCg0KVFAuSENNIGRhIHBob2kg YmF5IHlldSBrZW0gc2F1IDMgbmFtIHZhbyBXVE8NCg0KTmhhbiBkaW5oIG5heSBkbyBUUy4gVHJh biBEdSBMaWNoIGR1YSByYSB0YWkgaG9pIHRoYW8gIkRhbmggZ2lhIHRhYyBkb25nIDMgbmFtIGdp YSANCm5oYXAgV1RPIHZhIHRhaSBjYXUgdHJ1YyBraW5oIHRlIFRQLkhDTSIsIGRpZW4gcmEgdGFp IFRQLkhDTSBob20gbmF5ICgzMS84KS4NCg0KVGhlbyBvbmcgTGljaCwgc2F1IGJhIG5hbSBnaWEg bmhhcCBXVE8sIGRlbiBuYXkgbmVuIGtpbmggdGUgbnVvYyB0YSB2YW4gcGh1IHRodW9jIA0KY2h1 IHlldSB2YW8gdm9uIG51b2MgbmdvYWkuIE5ldSBuaHUgY2FjaCBkYXkgZ2FuIDIwIG5hbSBuZ3Vv biB2b24gbmF5IGNoaSBkb25nIGdvcCANCmtob2FuZyA4JSB2YW8gc3UgcGhhdCB0cmllbiwgZ2lv IGRhIGxlbiB0b2kgaG9uIDYwJS4gDQoNClR1eSBuaGllbiwgbmFuZyBsdWMgImhhcCB0aHUiIHZv biBrZW0gbGEgbmd1eWVuIG5oYW4gY290IGxvaSBkdWEgZGVuIGxhbSBwaGF0LCBkYXUgdHUgDQpk YW4gdHJhaSwgbHVuZyB0dW5nIHRyb25nIGdpYWkgbmdhbiBjYWMgZHUgYW4gZGF1IHR1IHRhaSBW aWV0IE5hbS4gVmEgY2hvIGRlbiBuYXksIHRyZW4gdGhpIA0KdHJ1b25nIFZpZXQgTmFtLCBkYWMg YmlldCBsYSBUUC5IQ00gdHJhbiBuZ2FwIGNhYyBzYW4gcGhhbSBkYXQgdGllbiBuaGF0IHRoZSBn aW9pLCB0aGUgDQpuaHVuZyBjYWMgZG9hbmggbmdoaWVwIHRyb25nIG51b2MgbGFpIGNodWEgdGhl IHRpZXAgY2FuIGNvbmcgbmdoZSBzYW4geHVhdCBuaHVuZyBzYW4gDQpwaGFtIG5heS4gDQoNCiJO Z2F5IGNhIHZpZWMgZGFvIGR1b25nIGxhbSBoZSB0aG9uZyBjYXAgdGhvYXQgbnVvYyBjaG8gVFAu SENNIG1hIGNodW5nIHRhIGNvbiBzdSANCmR1bmcgY29uZyBuZ2hlIGRhbyBtdW9uZyB0YWkgZG9u ZyBiYW5nIHNvbmcgQ3V1IExvbmcsIHN1b3QgbmdheSBkb2kgcGhvIHZvaSBuZ2FwIA0KbHV0LCB2 b2kgdGFjIGR1b25nIHRoaSBub2kgZ2kgZGVuIGNodXllbiB0aGF5IGRvaS4uLiIsIG9uZyBMaWNo IHRoYW4gcGhpZW4uDQoNCkNvIGNodW5nIGNhY2ggbmhpbiB2ZSBuZW4ga2luaCB0ZSBUUC5IQ00s IFBHUyAtIFRTLiBUcmFuIERpbmggVGhpZW4sIFZpZW4gdHJ1b25nIA0KVmllbiBraW5oIHRlIFZp ZXQgTmFtIGNobyByYW5nLCBjbyBjYXUgY2h1YSB0aG9hdCBraG9pIHRyaW5oIGRvICJjb25nIG5n aGllcCBjbyBraGkgY28gDQpkaWVuIiB2YW4gbmFuZyB2ZSBnaWEgY29uZywgbGFwIHJhcCwgbGUg dGh1b2MgYmVuIG5nb2FpLCBjaHVhIHRodWMgc3UgZG9uZyB2YWkgdHJvIGRhdSB0YXUgDQprZW8g bmVuIGtpbmggdGUgY2EgbnVvYy4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUEhDTS1N YWktbWUtdGFuZy10cnVvbmctYm8tcm9pLWNoYXQtbHVvbmctc29uZy8xNzM1MTczMDI1LzEyNS8g VmlldCBCYW8gKFRoZW8gRGFuIHRyaSkgMDgvMTIvMjAxMCwgMTc6MDIgR01UKzcgDQoNClRQLkhD TTogTWFpIG1lIHRhbmcgdHJ1b25nLCAnYm8gcm9pJyBjaGF0IGx1b25nIHNvbmcNCg0KIk5ldSBj aGkgbGF5IEdEUCBsYW0gdGlldSBjaGkgZGFuaCBnaWEgdGhhbmggdGljaCB0aGkgY3VuZyBnaW9u ZyBuaHUgbnVvaSBjb24gbGF5IHRpZXUgDQpjaGkgbWFwLiBEdWEgbmFvIG1hcCBuaGF0IHRoaSBk dW9jIHhlbSBsYSBraG9lIG5oYXQgdmEgdGhvbmcgbWluaCBuaGF0LiA1IG5hbSBxdWEsIA0KVFBI Q00gdGFuZyB0cnVvbmcgZGkgbGVuIG5odW5nIG11YyBzb25nLCBjaGF0IGx1b25nIHNvbmcgY3Vh IG5ndW9pIGRhbiBkaSBuZ3VvYyANCmxhaSIuDQoNCkRhbmggZ2lhIGtldCBxdWEgc2F1IG1vdCBu YW0gdHJpZW4ga2hhaSBrZSBob2FjaCAiTmFtIDIwMTAgLSBOYW0gdGh1YyBoaWVuIG5lcCBzb25n IA0KdmFuIG1pbmggLSBteSBxdWFuIGRvIHRoaSIsIG5oaWV1IGRhaSBiaWV1IEhETkQgVFBIQ00g ZGFuaCBnaWEgInZhbiBtaW5oIiwgIm15IA0KcXVhbiIgY3VhIHRoYW5oIHBobyBjb24gbmhpZXUg dmllYyBwaGFpIGxhbS4uLg0KIA0KTmFtIDIwMTAgbGEgbmFtIFRQSENNIHRodWMgaGllbiBrZSBo b2FjaCAiTmFtIHRodWMgaGllbiBuZXAgc29uZyB2YW4gbWluaCAtIG15IA0KcXVhbiBkbyB0aGki LiBDYWMgY2FwLCBuZ2FuaCBjdWEgdGhhbmggcGhvIGRhIHRodW9uZyB4dXllbiBraWVtIHRyYSB2 YSB0dXllbiB0cnV5ZW4gDQpkZW4gdHVuZyBjYSBuaGFuLCBjbyBxdWFuLCB0byBjaHVjLg0KDQoo QW5oOiAiSG8gdHUgdGhhbiIsIHZhbiBkZSBub2kgY29tIG1vaSB0YWkgVFBIQ00pIA0KDQpEYWkg YmlldSBUcmFuIFRoaSBOZ29jIEFuaCAtIFRydW9uZyBCYW4gVmFuIGhvYSB4YSBob2kgSERORCBU UEhDTSAtIGNobyBiaWV0LCANCmNhYyB2aSBwaGFtIG5odSB0aGkgY29uZyByYW8gY2hhbiBjaGll bSBkdW5nIG1hdCBkdW9uZywgZGlldSBraGllbiBwaHVvbmcgdGllbiBxdWEgDQp0YWksIHBodW9u ZyB0aWVuIHZhbiB0YWkgaGFuaCBraGFjaCBjb25nIGNvbmcgZG9uIHRyYSBraGFjaCBraG9uZyBk dW5nIG5vaSBxdWkgZGluaCwgZGEgDQpiaSBraWVtIHRyYSwgeHUgcGhhdCBuZ2hpZW0uIEhlIHRo b25nIGdpYW8gdGhvbmcgZHVvbmcgYm8gZHVvYyBkaSB0dSwgbmFuZyBjYXAgdGh1b25nIA0KeHV5 ZW4uDQogDQpUcm9uZyBiYW8gY2FvIHZlIGtldCBxdWEgdGh1YyBoaWVuIGtlIGhvYWNoIG5hbSBj dWEgQmFuIFZhbiBob2EgeGEgaG9pLCB0aGFuaCB0aWNoIA0KY3VuZyBuaGlldSBuaHVuZyB0b2Fu IG5odW5nIHRoYW5oIHRpY2ggYmVuIG5nb2FpLiBOaHVuZyB2YW4gZGUgY2FwIGJhY2ggbmh1OiBr ZXQgeGUsIA0KbmdhcCBudW9jLCBvIG5oaWVtIG1vaSB0cnVvbmcsIGR1YSB4ZSwgcm9pIGRlbiBj aHV5ZW4gImhvIHR1IHRoYW4iLCBiYW8gbHVjIGhvYyANCmR1b25nLi4uIHRoaSB2YW4gIm5oYXkg bXVhIiBiZW4gbmdvYWkgeGEgaG9pLg0KIA0KVGhlbyBiYSBOZ29jIEFuaCwgbmd1eWVuIG5oYW4g ZGFuIGRlbiBteSBxdWFuIGRvIHRoaSBjaHVhIHRvdCwgbmVwIHNvbmcgY29uIHRoaWV1IA0KdmFu IG1pbmguLi4gbGEgZG8gIkhhIHRhbmcga3kgdGh1YXQgZG8gdGhpIHR1eSBkdW9jIHRhcCB0cnVu ZyBkYXUgdHUsIG5hbmcgY2FwLCBtbyByb25nIA0Kbmh1bmcgY2h1YSBkYXAgdW5nIHlldSBjYXUg dmEgdG9jIGRvIHBoYXQgdHJpZW4gY3VhIGtpbmggdGUgLSB4YSBob2kuIFkgdGh1YyBiYW8gdmUg bW9pIA0KdHJ1b25nIHRyb25nIHhhIGhvaSBjaHVhIGNhbywgdmFuIGhvYSBnaWFvIHRob25nIGNo dWEgY28gbmhpZXUgY2h1eWVuIGJpZW4gdGljaCBjdWMiLg0KIA0KVGh1YyBoaWVuIGNodSB0cnVv bmcgY3VhIHRoYW5oIHBobywgbmhpZXUga2h1IHBobywgYXAsIHRvIGRvYW4ga2V0Li4uIGN1bmcg ZGEgdG8gY2h1YyANCm5oaWV1IGJ1b2kgaG9wIGRhbiwgcGhvIGJpZW4gY2FjIGtpZW4gdGh1YyBw aGFwIGx1YXQsIGNhYyBjaHUgdHJ1b25nIGNoaW5oIHNhY2ggY3VhIG5oYSANCm51b2MsLi4uIFR1 eSBuaGllbiwgY2FjIGN1b2MgaG9wIGNodWEgdGFwIHRydW5nIHZhbyBub2kgZHVuZyBjaGluaCwg Y2hpIGNvIDcwJSBkYW4gdGhhbSBnaWEuDQogDQpWYW4gbmFuIGJhbyBsdWMgaG9jIGR1b25nLCBi YW8gbHVjIGdpYSBkaW5oLCB0dSB0YXAgZHVhIHhlLCBwaG9uZyB1ZSBvIGJlbiB4ZSwgbm9pIHR1 YywgDQpjaHVpIHRoZSBvIHF1YW4gY2FmZSBsZSBkdW9uZy4uLiBjb24gbmhpZXUuDQogDQpUcm9u ZyAyIG5hbSB0cnVvYywgVFBIQ00gdGh1YyBoaWVuIGtlIGhvYWNoOiAiTmFtIHRodWMgaGllbiBu ZXAgc29uZyB2YW4gbWluaCBkbyANCnRoaSIsIG5odW5nIHZhbiBkZSAiY3UgbWVtIiBuYXkgbHVj IG5hbyBjdW5nIGxhbSAibm9uZyIgYmFuIG5naGkgc3UuIEhhaSBuYW0gc2F1LCANClRQSENNIGxh aSBnYW4gdGhlbSB0cm9uZyB0cmFjaCBtb2kgIm15IHF1YW4gZG8gdGhpIi4gTmh1bmcgdmFuIGRl IGN1IGNodWEgZHVvYyANCmxhbmcgeHVvbmcgdGhpIGNhYyB2YW4gZGUgbW9pIG5odTogdHJpZXUg Y3VvbmcsIGR1YSB4ZSwgYmFvIGx1YyBob2MgZHVvbmcsIGhvIHR1IHRoYW4uLi4gDQpkYSAibmdv YyBkYXUiIGRheS4NCiANCihBbmg6IE1vaSB0cnVvbmcgc29uZyBiaSBvIG5oaWVtIG5naGllbSB0 cm9uZykgDQogDQpMeSBnaWFpIHZpZWMgVFBIQ00gbmdhcCBsaWVuIG1pZW4sIG9uZyBOZ3V5ZW4g VGhhbmggVGFpIC0gUGhvIENodSB0aWNoIHRodW9uZyB0cnVjIA0KVUJORCBUUEhDTS0gIGNobyBi aWV0OiAiVGhhbmggcGhvIHR1IDMgdHJpZXUgZGFuIHRhbmcgZG90IGJpZW4gbGVuIDEwIHRyaWV1 IGRhbiBnYXkgDQpyYXQgbmhpZXUga2hvIGtoYW4gY2hvIHZhbiBkZSBxdWFuIGx5LCBhbiBzaW5o IHhhIGhvaS4gVGFuIHN1YXQgbXVhLCBsdW9uZyBtdWEgbG9uLCANCnRyaWV1IGN1b25nIGNvbmcg dm9pIG11YyBudW9jIGJpZW4gdGFuZyBuZW4gVFBIQ00gYmkgYW5oIGh1b25nIG5naGllbSB0cm9u ZyIuDQogDQpEZSBnaWFpIHF1eWV0IHZhbiBkZSBidWMgeHVjIG5heSwgb25nIE5ndXllbiBUaGFu aCBUYWkgY2hvIGJpZXQgc2UgcXV5IGhvYWNoIHhheSANCmR1bmcgY2FjIGhvIGRpZXUgdGlldCwg Z2llbmcgbmdhbSB2YSBraWVuIG5naGkgVGh1IHR1b25nIGNoaW5oIHBodSBkdWEga2UgaG9hY2gg eGF5IA0KZHVuZyAxMiBjb25nIG5nYW4gdHJpZXUgdmUgVFBIQ00uDQogDQpEYWkgYmlldSBQaGFt IFZhbiBEb25nIC0gVHJ1b25nIEJhbiBraW5oIHRlIC0gbmdhbiBzYWNoIEhETkQgVFAgdGh1YSBu aGFuOiAiQ2FjIA0KZ2lhaSBwaGFwIGtpbmggdGUgY29uIGJhdCBjYXAuIEtldCB4ZSwgbmdhcCBu dW9jIGxhbSBuYW4gbG9uZyBuaGEgZGF1IHR1IHZhIGtoYWNoIGR1IA0KbGljaCwgYW5oIGh1b25n IGRlbiBkb2kgc29uZywgc2luaCBob2F0IGN1YSBuZ3VvaSBkYW4iLg0KIA0KTmhpZXUgZGFpIGJp ZXUgY29uIGNobyByYW5nLCBUUEhDTSBkYW5nIGJpICJiZW5oIEdEUCIuIFZpIHF1YSBjaHUgdHJv bmcgZGVuIG11YyANCnRpZXUgdGFuZyB0cnVvbmcga2luaCB0ZSBtYSAiYm8gcXVlbiIgY2FjIHZh biBkZSB4YSBob2kgZGFuZyBnYXkgYnVjIHh1YyBjaG8gbmd1b2kgZGFuLg0KIA0KRGFpIGJpZXUg VHJ1b25nIFRyb25nIE5naGlhIGNobyByYW5nLCBkdSB0b25nIHNhbiBwaGFtIG5vaSBkaWEgKEdE UCkgdHJlbiBkaWEgYmFuIA0KdGhhbmggcGhvIHVvYyBkYXQgZ2FuIDQyMC4wMDAgdHkgZG9uZywg dGFuZyAxMSw1JSBzbyB2b2kgY3VuZyBreSwgdnVvdCAxNSUgc28gdm9pIGNoaSANCnRpZXUgSG9p IGRvbmcgbmhhbiBkYW4gdGhhbmggcGhvIGRlIHJhLCBzb25nIGtob25nIHZpIHRoZSBtYSBuZ3Vv aSBkYW4gdnVpIGxvbmcuICJOZXUgDQpjaGkgbGF5IEdEUCBsYW0gdGlldSBjaGkgZGFuaCBnaWEg dGhhbmggdGljaCB0aGkgY3VuZyBnaW9uZyBuaHUgbnVvaSBjb24gbGF5IHRpZXUgY2hpIGxhIA0K bWFwIHZheS4gRHVhIG5hbyBtYXAgbmhhdCB0aGkgZHVvYyB4ZW0gbGEga2hvZSBuaGF0IHZhIHRo b25nIG1pbmggbmhhdC4gVHJvbmcgNSBuYW0gDQpxdWEsIGtpbmggdGUgVFBIQ00gY2hpIG1vaSBw aGF0IHRyaWVuIHRoZW8gYmUgcm9uZy4gVFBIQ00gdGFuZyB0cnVvbmcgZGkgbGVuIG5odW5nIA0K bXVjIHNvbmcsIGNoYXQgbHVvbmcgc29uZyBjdWEgbmd1b2kgZGFuIGRpIG5ndW9jIGxhaSIsIGRh aSBiaWV1IE5naGlhIHZpIHZvbi4NCiANCiJEb2kgdm9pIG5ndW9pIGRhbiwgc3UgcGhhdCB0cmll biBraW5oIHRlIGRvbmcgbmdoaWEgdm9pIHZpZWMgZGkgZHVvbmcgZGUgZGFuZywgc3VjIGtob2Ug DQpkdW9jIGNoYW0gc29jIHRvdCwgaG9jIHRhcCB0b3QsIGdpYSBjYSBob3AgbHksIGNoYXQgbHVv bmcgaGFuZyBob2EgdG90IGhvbi4uLiBjaHUgbmd1b2kgDQpkYW4ga2hvbmcgcXVhbiB0YW0gZGVu IGNvbiBzbyBHRFAgbGEgYmFvIG5oaWV1IiwgTmd1eWVuIEFuIEJpbmggYnVjIHh1Yy4gDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9QYWdlcy9kZWZhdWx0LmFzcHggMDkvMDMvMjAwOSAw OjIyIA0KDQpUUCBIQ006IEJ1YyB4dWMgY3VhIG5ndW9pIGRhbiBUUCBsYSB2aSBzYW8gbmhpZXUg dHV5ZW4gZHVvbmcgbW9pIGR1b2MgbGFwIGRhdCBjb25nIHRob2F0IG51b2MgImhvYW5oIHRyYW5n IiANCnZhbiBuZ2FwIGxlbmggbGFuZy4gVmkgc2FvIGRhIGxhcCBkYXQgY29uZyBtb2kgbmh1bmcg bmdhcCB0aGFtIGNoaSBjb24gbmhpZXUgaG9uIGNoaSBzYXUgbW90IGNvbiBtdWEgdHJhaSBtdWE/ IA0KQ2FjIGR1IGFuIGNob25nIG5nYXAgbWEgVFAuSENNIGRhbmcgdGh1YyBoaWVuLCBuaGF0IGxh IGR1IGFuIHZlIHNpbmggbW9pIHRydW9uZywgY2FpIHRoaWVuIG1vaSB0cnVvbmcgbnVvYy4uLiAN CmtoaSBuYW8gcGhhdCBodXkgdGFjIGR1bmc/IA0KDQonVHV5IG11YSBjaHVhIHRodWMgc3UgbG9u IGN1bmcgZGEgZ2F5IHJhIG5nYXAgbHV0IHRyZW4gZGllbiByb25nIGNhIG5vaSB2YSBuZ29haSB0 aGFuaCcgLSBUaWVuIHNpIFRvIFZhbiBUcnVvbmcgDQpuZ3V5ZW4gVmllbiB0cnVvbmcgVmllbiBR dXkgaG9hY2ggdGh1eSBsb2kgbWllbiBOYW0gY2hvIGJpZXQuIA0KDQpodHRwOi8vZGFudHJpLmNv bS52bi9jMjAvczIwLTMxNzg2MC90cGhjbS10YWMtZHVvbmctdG9hbi10YXAtdmktbG8tY290Lmh0 bSAwNy8wNC8yMDA5IC0gMTc6MTENCg0KVFAgSENNOiBUYWMgZHVvbmcgInRvYW4gdGFwIiB2aSBs byBjb3QgDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDEwMTcxNDE3OTcvTXVhX2xvbl9vX1RQ X0hDTV9nYXlfdGFjX2R1b25nX25naGllbV90cm9uZy5odG1sIDMwLzExLzIwMTAsIDA4OjEwIFBN IA0KDQpUUCBIQ006IE11YSBsb24gZ2F5IHRhYyBkdW9uZyBuZ2hpZW0gdHJvbmcgDQoNCmh0dHA6 Ly93d3cudGluMjQ3LmNvbS90cGhjbV9zdW90X25nYXlfJUUyJTgwJTlDdmF0X2xvbiU5RF92b2lf dGFjX2R1b25nLTEtMjEzOTk5NDQuaHRtbA0KDQpUUCBIQ006IFN1b3QgbmdheSB2YXQgbG9uIHZv aSB0YWMgZHVvbmcgICANCg0KaHR0cDovL3Z0di52bi9BcnRpY2xlL0dldC9DaGlfNl9uZ3VvaV9k YW5fVFAuSENNX2Nob25feGVfYnV5dF9fX19fXzNmMjBhZWUzNWMuaHRtbA0KDQpUUCBIQ006IE1v aSBuYW0sIG1hbmcgbHVvaSB4ZSBidXl0IHRhaSBUUC5IQ00gZGFuZyBkZSBsYW5nIHBoaSBoYW5n IHRyYW0gdHJpZXUgY2hvIG5nb2kuIA0KDQpOZXUgY29uZyBkb24gcXVhIGNhYyBuYW0sIHRoaSBz byBnaGUgbmdvaSB2YSBjaG8gZHVuZyBiaSBibyB0cm9uZyB0cmVuIGNhYyBjaHV5ZW4geGUgYnV5 dCBjbyB0aGUgbGVuIHRvaSBoYW5nIHR5IGRvbmcuDQoNClRyb25nIGJvaSBjYW5oIGFjaCB0YWMg dmEgdGFpIG5hbiBnaWFvIHRob25nIGRhbmcgbGEgbm9pIGFtIGFuaCwgdGhpIGRheSBjbyB0aGUg bm9pIGxhIHN1IGxhbmcgcGhpIGtob25nIHRoZSBjaGFwIG5oYW4uDQoNClRoZW8gdGhvbmcga2Us IGNoaSBjbyBraG9hbmcgNiUgbmd1b2kgZGFuIHRhaSBUUC5IQ00gY2hvbiB4ZSBidXl0IGxhIHBo dW9uZyB0aWVuIGRpIGxhaS4gWGUgbWF5IHF1YSBuaGlldSwgDQpsbyBjb3QgcXVhIG5oaWV1LCBk dW9uZyBxdWEgY2hhdCBoZXAsIGx1b25nIHR1eWVuIGNodWEgaG9wIGx5IGN1bmcgdm9pIGhhbmcg bG9hdCBseSBkbyBraGFjIHRodW9uZyB4dXllbiBkdW9jIHZpZW4gZGFuIGRlIGdpYWkgdGhpY2gg Y2hvIHN1IGtlbSBoaWV1IHF1YSBjdWEgbWFuZyBsdW9pIHhlIGJ1eXQuIE5odW5nIGtobyBraGFu LCB0cm8gbmdhaSBuYXkgIHBoYWkgbWF0IGhhbmcgY2h1YyBuYW0gbnVhIG1vaSBnaWFpIHF1eWV0 IGR1b2MuIFZhIG5odSB0aGUsIGhhbmcgdHkgY2hvIHRyb25nIGNvIHRoZSBwaGF0IHNpbmggdHJv bmcgcXVhIHRyaW5oIHZhbiBoYW5oIG1hbmcgbHVvaSB4ZSBidXl0IHNlIG5naGllbSBuaGllbiBk dW9jIHRodWEgbmhhbi4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQLUhDTS1Ucm8tZ2lh LXhlLWJ1eXQtbmhpZXUtYmF0LWhvcC1seS12YS1sYW5nLXBoaS1sb24vNzAwOTEzNzUvMTU3LyBI dXkgVGhpbmggKFRoZW9fVGllbl9QaG9uZykgMTMvNy8gMjAwNywgMTU6MTcgR01UKzcgDQoNClRQ IEhDTTogVHJvIGdpYSB4ZSBidXl0IG5oaWV1IGJhdCBob3AgbHkgdmEgbGFuZyBwaGkgbG9uDQoN CkJhbyBjYW8ga2V0IHF1YSBraGFvIHNhdCBxdWFuIGx5IHRpZW4gdHJvIGdpYSB4ZSBjdWEgQmFu IEtpbmggdGUgLSBOZ2FuIHNhY2ggKEtUIC0gTlMpIA0KSERORCBUUEhDTSB2dWEgY29uZyBibyBj aG8gYmlldCBUUEhDTSBjbyAyMTIgdHV5ZW4gdm9pIDMuMjkyIHhlIGJ1eXQgKDEuNjczIHhlIA0K ZHUgYW4gdmEgMS42MTkgeGUgbmdvYWkgZHUgYW4pLCB0cm9uZyBkbyBjbyAxMTAgdHV5ZW4gZHVv YyB0cm8gZ2lhLg0KDQpUaW5oIGRlbiBuYW0gMjAwNiwgbWFuZyBsdW9pIHhlIGJ1eXQgY3VhIHRo YW5oIHBobyBkYSB2YW4gY2h1eWVuIGR1b2MgMjUyIHRyaWV1IGx1b3QgDQpoYW5oIGtoYWNoLCBu YW0gMjAwNyBkdSBraWVuIGRhdCBzYW4gbHVvbmcgMzcwIHRyaWV1IGx1b3QgaGFuaCBraGFjaCwg Y2hpZW0gNSwzJSB0b25nIA0Kbmh1IGNhdSBkaSBsYWkuIA0KDQpUdXkgY29uIGRhdCByYXQgdGhh cCBzbyB2b2kgY2hpIHRpZXUgZGUgcmEgKG5hbSAyMDEwIGNoaWVtIDEwIC0xMiUgbmh1IGNhdSBk aSBsYWkpIG5odW5nIA0KbmdhbiBzYWNoIGRhIHBoYWkgY2hpIGRlbiAzLjE5OCw2IHR5IGRvbmcs IHRyb25nIGRvIDEuNDE1LDYgdHkgZG9uZyBtdWEgeGUgZHUgYW4sIDI2Niw3IA0KdHkgZG9uZyB0 cmEgbGFpIHN1YXQgdmF5IG11YSB4ZS4uLg0KDQpOaHVuZywgZ2FuaCBuYW5nIGxvbiBuaGF0IGhp ZW4gbmF5IGxhIHRpZW4gdHJvIGdpYSB4ZSBidXl0ICg0IG5hbSBxdWEgbmdvbiBoZXQgMS43ODMg dHkgDQpkb25nKSB2aSBkYW5nIGNvIGNoaWV1IGh1b25nIGdpYSB0YW5nIHZ1biB2dXQgcXVhIHR1 bmcgbmFtLg0KDQpDdSB0aGU6IE5ldSBuaHUgbmFtIDIwMDMsIHRvbmcgbXVjIHRybyBnaWEgeGUg YnV5dCBsYSA5OCwyIHR5IGRvbmcsIG5hbSAyMDA0IGxhIDE5Nyw2IA0KdHkgZG9uZywgbmFtIDIw MDUgbGEgNDM5IHR5IGRvbmcgdGhpIGRlbiBuYW0gMjAwNiBsYSA0NDgsMiB0eSBkb25nLiBEdSBr aWVuLCBtdWMgY2hpIA0KdHJvbmcgbmFtIDIwMDcgc2UgdGFuZyB2b3QgbGVuIDYwMCB0eSBkb25n Lg0KDQpEYW5nIG5nYWkgaG9uLCBraGFvIHNhdCBjdWEgU28gVGFpIGNoaW5oIHRoYW5oIHBobyBj b24gY2hvIHRoYXkgdG9uZyBjaGkgdHJvIGdpYSB4ZSBidXl0IA0KY2hpZW0gdHkgdHJvbmcgbmdh eSBjYW5nIGxvbiB0cm9uZyB0b25nIG11YyBjaGkgdGh1b25nIHh1eWVuIGN1YSBuZ2FuIHNhY2gg dGhhbmggcGhvLiANCkN1IHRoZSA6IE5hbSAyMDAzIGNoaWVtIDEsOSU7IDIwMDQgOiA0LDI2JSwg MjAwNSA6IDUsNjklIHZhIG5hbSAyMDA2IGxhIDcsMDYlLiBEdSANCmtpZW4gdHJvbmcgbmFtIG5h eSwgdHkgbGUgbmF5IGxhIDcsMzIlLg0KDQpUcm9uZyBraGkgZG8sIGNvbmcgdGFjIHF1YW4gbHkg dmEgc3UgZHVuZyBjYWMga2hvYW4gZGF1IHR1IGNobyBwaGF0IHRyaWVuIG1hbmcgbHVvaSB4ZSAN CmJ1eXQgY3VhIHRoYW5oIHBobyBjaHVhIGhpZXUgcXVhLCBraG9uZyBoaWV1IHF1YSAodGllbiB0 cm8gZ2lhIG5hbSAyMDA3IHRhbmcgMjMsNSUgDQp0cm9uZyBraGkgY2hpIHRpZXUgbHVvbmcga2hh Y2ggY2hpIHRhbmcgMjAsOSUpLCBjbyBuaGlldSBiaWV1IGhpZW4gbGFuZyBwaGkuDQoNClNvIGxp ZXUga2hhbyBzYXQgY3VhIEtob2EgS3kgdGh1YXQgZ2lhbyB0aG9uZyAoREggQmFjaCBraG9hIFRQ SENNKSBtb2kgZGF5IGNobyANCnRoYXkgY28gZGVuIDY1LDUlIHR1eWVuIHhlIGJ1eXQgY28gc3Ug dHJ1bmcgbGFwIGxvIHRyaW5oLiBUaGVvIG9uZyBIdXluaCBDb25nIEh1bmcgliANClBobyBCYW4g S1QtTlMsIHZpZWMgdG8gY2h1YyB0dXllbiB4ZSBidXl0IHJpZW5nIGNobyBjb25nIG5oYW4sIGhv YyBzaW5oIHZvaSB0b25nIG11YyANCmNoaSB0cm8gZ2lhIHR1IG5hbSAyMDAxIGRlbiBuYW0gMjAw NiBsYSA4MiwxNCB0eSBkb25nIGxhIGtob25nIGhpZXUgcXVhLCBsYW5nIHBoaSB2aSB0cnVuZyBs YXAgdm9pIG5oaWV1IHR1eWVuIGtoYWMuDQoNCktob2kgaGFpIGhvbiwgdHJvbmcga2hpIFNvIEdU Q0MgbW8gY2FjIHR1eWVuIHhlIGJ1eXQgZHVhIHJ1b2MgaG9jIHNpbmggdmEgcGhhaSANCnRodW9u ZyB4dXllbiBidSBsbyB0aGkgY2FjIHR1eWVuIHhlIGJ1eXQgZHVhIHJ1b2MgY29uZyBuaGFuIHRy dW9jIGRheSBkbyB0dSBuaGFuIHRodWMgDQpoaWVuIGtob25nIGNhbiB0cm8gZ2lhIHZhbiBob2F0 IGRvbmcgYmluaCB0aHVvbmcuDQoNClR1IG5hbSAyMDA0IGRlbiBraGkgY2F0IHRybyBnaWEgKHRo YW5nIDQvMjAwNyksIDE5IHR1eWVuIHhlIGJ1eXQgbGllbiB0aW5oIGxpZW4ga2UgZGEgDQpuZ29u IGN1YSBuZ2FuIHNhY2ggdGhhbmggcGhvIGhvbiA4MiB0eSBkb25nLiBUaGVvIEJhbiBLVC1OUywg a2hvYW4gY2hpIG5vaSB0cmVuIGxhIA0KYmF0IGhvcCBseSwgbGFuZyBwaGkuIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDkvMjAxMDExMzAwMDEyMzUuYXNw eCBEYW0gSHV5IDMwLzExLzIwMTAgMDoxMiANCg0KVFAgSENNOiBBbSBhbmggImJvbmcgbWEiIHhl IGJ1eXQgLSBNYXQgdGhhbmcgdmFuIGtob25nIGhheSBiaWV0ICAoWGUgeHVvbmcgY2FwLCBsYWkg eGUgYXUsIGR1b25nIHhhIGNoYXQgaGVwLi4uKSANCg0KKEFuaDogWGUgYnV5dCAibnVvdCBjaHVu ZyIgeGUgZ2FuIG1heSAtIEFuaDogQy5ULlYpICANCg0KTmV1IHhlIGJ1eXQgY2hheSBxdWEgdG9j IGRvLCBjaGF5IGxhbiB0dXllbi4uLiBkYW4gZGVuIHRhaSBuYW4gZ2lhbyB0aG9uZyAoVE5HVCkg Y28gdGhlIA0KZG8gdGFpIHhlIGNodSBxdWFuLCBuaHVuZyBraGkgeGUgYmkgbWF0IHRoYW5nIHRo aSBjaG8gZHUgdGFpIHhlIGNhbiB0cm9uZywgbmhpZXUgbmFtIGtpbmggDQpuZ2hpZW0gY3VuZy4u LiBibyB0YXkuIA0KDQoqIEFtIGFuaCAiYm9uZyBtYSIgeGUgYnV5dCANCg0KSG9uIDEgbmFtIHRy byBsYWkgZGF5LCB0cmVuIGRpYSBiYW4gVFAuSENNIGRhIHhheSByYSBraG9uZyBpdCB2dSBUTkdU IGNoZXQgbmd1b2kgZG8gDQp4ZSBidXl0IGdheSByYS4gQ2FjaCBkYXkgMSB0dWFuLCB0cm9uZyBs dWMgeGUgYnV5dCBkYW5nIGRvIGRvYyBjYXUgU2FpIEdvbiBiYXQgbmdvIGJpIA0KbWF0IHRoYW5n LCBjaG8gZHUgdGFpIHhlIGNvIGdhbmcgaGV0IHN1YyBjdW5nIGtob25nIGRpZXUga2hpZW4gZHVv YywgcGhhaSBuZ29pIG5oaW4geGUgDQpidXl0IGN1YSBtaW5oIGNhbiBsZW4gNiB4ZSBnYW4gbWF5 IGxpZW4gdGllcCBraGllbiBuaGlldSBuZ3VvaSBkaSBkdW9uZyBiaSB0aHVvbmcuIFZ1IA0KVE5H VCBraGEgbmdoaWVtIHRyb25nIG5heSB0aWVwIHR1YyBnaW9uZyBsZW4gaG9pIGNodW9uZyBjYW5o IGJhby4gDQoNClRyZW4gdGh1YyB0ZSwgbWFjIGR1IGdhbiAxIG5hbSB0cm9pIHF1YSBuaHVuZyBu Z3VvaSBkYW4gdGhhbmggcGhvIHZhbiBjaHVhIHF1ZW4gZHVvYyANCnZ1IFROR1QgdGh1b25nIHRh bSBkbyB4ZSBidXl0IGNhbiBjaGV0IDIgbmd1b2ksIGxhbSB0cm9uZyB0aHVvbmcgMSBuZ3VvaSBj dWEgY3VuZyANCm1vdCBnaWEgZGluaCBuZ2hlbyBvIFEuOC4gTHVjIGRvIHRyb2kgY29uIG1vIHNh bmcsIG9uZyBILkIuRCAoNDQgdHVvaSwgbmd1IFEuOCkgdnVhIGRvIA0KZG9jIGNhdSBOaGkgVGhp ZW4gRHVvbmcsIGx1dSB0aG9uZyBkdW5nIHBoYW4gZHVvbmcgY3VhIG1pbmggdGhpIGJhdCBuZ28g Y2hpZWMgeGUgDQpidXl0IG1hbmcgYmllbiBzbyA1M04gLSAzMy4uLiB0dSBwaGlhIHNhdSB0b25n IHRvaS4gQ2hpIHRyb25nIG5oYXkgbWF0LCBjaGllYyB4ZSBidXl0IGRhIA0KY2FuIHF1YSB4ZSBn YW4gbWF5IGN1YSBvbmcgRC4sIHJvaSBrZW8gbGUgdHJlbiBtYXQgZHVvbmcgbW90IGRvYW4gZGFp IGdhbiAyMG0uIA0KDQpUYWkgbmFuIGtoaWVuIG9uZyBELiwgY2hhdSBTLiBjaGV0IHRhaSBjaG87 IGNvbiBnYWkgY3VhIG9uZyBELiBiaSB0cm9uZyB0aHVvbmcuIFRhaSB4ZSB4ZSANCmJ1eXQgbHVj IGRvIGRhIGNoYXkgdGhhbmcgZGVuIGNvIHF1YW4gY29uZyBhbiB0cmluaCBkaWVuIHZhIGtoYWkg bmhhbiB4ZSBiaSBtYXQgdGhhbmcuIA0KU2F1IG5heSwgY28gcXVhbiBDU0RUIHZhbyBjdW9jIGRp ZXUgdHJhIGN1bmcgZHVhIHJhIGtldCBsdWFuIGRvIHhlIGJ1eXQgbWF0IHRoYW5nIGdheSANCnJh IHRhaSBuYW4gdHJlbi4gDQoNClRob2kgZGllbSBkbyB2dSB0YWkgbmFuIG5heSBraGllbiBkdSBs dWFuIGJ1YyB4dWMgdmEgY28gcXVhbiBjaHVjIG5hbmcgY3VuZyBsdXUgeSB2ZSANCiJjaGkgdGll dCBtYXQgdGhhbmciIGN1YSB4ZSBidXl0LiBUaGUgbmh1bmcgdmFuIGNodWEgY28gYmllbiBwaGFw IGdpIGNoYW4gY2hpbmggdGluaCANCnRyYW5nIGJhbyBkb25nIG5heS4gVmEgbmh1bmcgdGFpIG5h biBkbyAibWF0IHRoYW5nIiB2YW4gY3UgeGF5IHJhLCBuaHUgdnUgVE5HVCB4YXkgDQpyYSB2YW8g a2hvYW5nIGdpdWEgdGhhbmcgOC4yMDEwIHRyZW4gZHVvbmcgRGluaCBUaWVuIEhvYW5nLCBQLjMs IFEuQmluaCBUaGFuaC4gDQoNCkNhY2ggZGF5IGtob25nIGxhdSwgbmhpZXUgeGUgZ2FuIG1heSwg byB0byBkYW5nIGR1bmcgZGVuIGRvIHRhaSBuZ2EgdHUgVGh1IER1YyB0aGkgYmF0IA0KbmdvIGNo aWVjIHhlIGJ1eXQgbWFuZyBiaWVuIHNvIDUzTiAtIC4uLi4gdHUgcGhpYSBzYXUgbGFvIGRlbiBu Z2EgdHUgbmF5IHZvaSB0b2MgZG8gYmF0IA0KdGh1b25nLiBWYSByb2kgbm8gZGEgbGFvIHRoYW5n IHZhbyBkdW9pIHhlIHRhaS4gRG8gY3UgdmEgY2hhbSBxdWEgbWFuaCwgY2hpZWMgeGUgdGFpIA0K ZGFtIHZhbyBkdW9pIHhlIGNvbnRhaW5lciBwaGlhIHRydW9jLiBUYWkgbmFuIGtoaWVuIHRhaSB4 ZSB4ZSBidXl0IGJpIGdheSBjaGFuLCBuaGFuIHZpZW4gDQpzb2F0IHZlIGJpIGtpbmggdmFuZyBn aGltIHZhbyBjaGFuLi4uIA0KDQpDYW4geGVtIGxhaSBkbyBhbiB0b2FuDQoNClRoYXkgZHVvYyBt b2kgaGllbSBob2EgZG8geGUgYnV5dCBjdSBuYXQsIGtob25nIGFuIHRvYW4gbHV1IHRob25nIGdh eSByYSwgVUJORCANClRQLkhDTSBkYSBraWVuIHF1eWV0IHRoYXkgZG9pIGhvYW4gdG9hbiB4ZSBi dXl0IG1vaS4gTmh1bmcgc2F1IGdhbiAxMCBuYW0gaG9hdCANCmRvbmcgZHVvbmcgbmh1IGxvYWkg eGUgYnV5dCBtb2kgbmF5IGRhICJnaWEiIHRydW9jIHR1b2ksIGNvbmcgdm9pIHN1ICJiYXQgbWFu ZyIgY3VhIA0KbW90IGJvIHBoYW4gdGFpIHhlIGtoaWVuIHBodW9uZyB0aWVuIHZhbiB0YWkgbmF5 IGJhdCBkYXUgdHJvIHRoYW5oIG5vaSBhbSBhbmggbW9pLiAgDQoNClRhaSBtb3QgaG9pIHRoYW8g Z2FuIGRheSwgb25nIER1b25nIEhvbmcgVGhhbmgsIFBobyBnaWFtIGRvYyBTbyBHVFZUIFRQLCB0 dXkgDQpraG9uZyBub2kgdGhhbmcgbGEgeGUgYnV5dCBkYSB4dW9uZyBjYXAsIG5odW5nIGRhIHRo dWEgbmhhbjogIkhpZW4gdHJlbiBkaWEgYmFuIHRoYW5oIA0KcGhvIGNvIDE0OCB0dXllbiB4ZSBi dXl0IHZvaSAzLjA5NiB4ZSBidXl0IGhvYXQgZG9uZyBuaHVuZyBjbyBkZW4gMS43MDAgLSAxLjgw MCB4ZSBjYW4gDQpwaGFpIHRoYXkgdGhlIHZpIGtob25nIGRhcCB1bmcgY2FjIGRpZXUga2llbiB2 ZSBtb2kgdHJ1b25nIi4gDQoNCk5ldSBraG9uZyBkYXAgdW5nIHZlIGRpZXUga2llbiBtb2kgdHJ1 b25nICh4aXQga2hvaSBkZW4uLi4gLSBQViksIHZheSB0aGkgbWF5IG1vYywgZGFjIA0KYmlldCBs YSBoZSB0aG9uZyBwaGFuaCBjdWEgc28geGUgYnV5dCBuYXkgbmh1IHRoZSBuYW8/IENodW5nIHRv aSBkYSBtYW5nIGNhdSBob2kgbmF5IA0KZGVuIHRyYW8gZG9pIHZvaSBtb3Qgc28gdmkgbGFuaCBk YW8gY3VhIG5nYW5oIEdUVlQgdmEgZHVvYyBiaWV0IHJhbmc6IG5odW5nIHRydW9uZyANCmhvcCB4 ZSBidXl0IG1hdCB0aGFuZyBnYXkgVE5HVCBkZXUgY29uIHRob2kgaGFuIGtpZW0gZGluaC4gRGll dSBuYXkgY2hvIHRoYXkgY29uZyANCnRhYyBraWVtIGRpbmggY2FuIHBoYWkgeGVtIHhldCBsYWku IA0KDQpUaGVvIG1vdCBjYW4gYm8gY3VhIEN1YyBEYW5nIGtpZW0gdGhpIDYgdGhhbmcgeGUgYnV5 dCBwaGFpIGR1YSBkaSBraWVtIGRpbmggbW90IGxhbi4gDQpUcm9uZyBkbywgbW90IHNvIGNoaSB0 aWV0IHRodW9uZyBraG9uZyBkYXQgbGE6IGtob2kgdmEgaGUgdGhvbmcgcGhhbmguIFZpIG5heSBj b24gDQpraHV5ZW4gY2FvIHRoZW06ICJYZSBidXl0IGxhIGxvYWkgeGUgbHV1IGhhbmggdGh1b25n IHh1eWVuIGhhbmcgbmdheSB0cmVuIGR1b25nLiBEZSANCmRhbSBiYW8gYW4gdG9hbiBjYW8gbmhh dCwgdGFpIHhlIGtob25nIGNoaSB0aHVjIGhpZW4gZHVuZyBkaW5oIGt5IDYgdGhhbmcgZGVuIGtp ZW0gZGluaCANCm1hIGhhbmcgbmdheSB0cnVvYyBraGkgbGVuIHhlIHh1YXQgYmVuIHBoYWkga2ll bSB0cmEgbG9wLCBwaGFuaC4uLiBjaG8gYW4gdG9hbiIuIA0KICJIaWVuIGNvIG5oaWV1IHhlIGNh biBwaGFpIHRoYXkgdGhlLiBDbyBxdWFuIGNodWMgbmFuZyBkYW5nIHRpbmggdG9hbiB0aGF5IHRo ZSwgc2UgY2hvIA0Ka2llbSBkaW5oIHRoYXQga3kgbGFpLCB4ZSBuYW8ga2hvbmcgZGFtIGJhbyBh biB0b2FuIGxhIGR1YSB2YW8gZGllbiB0aGF5IG1vaS4gVHV5IG5oaWVuIA0KcGh1b25nIGFuIG5h eSBjYW4gcGhhaSBjbyB0aG9pIGdpYW4gZGUgdGh1YyBoaWVuIHZpIGxpZW4gcXVhbiBkZW4gbmhp ZXUgdmFuIGRlIGtoYWMgbmh1IA0KbXVjIGhvIHRybyBjaG8gbmhhIHhlIG5odSB0aGUgbmFvLi4u IiwgbW90IGNhbiBibyBjdWEgQmFuIEFuIHRvYW4gZ2lhbyB0aG9uZyBodWEgaGVuLg0KDQpMbyB0 cmUgZ2lvIG5lbiBjaGF5IGF1Pw0KDQpDaHV5ZW4geGUgYnV5dCBsYW4gdHV5ZW4gbGEgaGluaCBh bmggdGh1b25nIHRoYXkgbmhhdC4gTW90IGNhbiBibyBjdWEgRG9pIENTR1QgbyBraHUgDQp2dWMg dHJ1bmcgdGFtLCBjdW5nIHhhYyBuaGFuIHhlIGJ1eXQgdGh1b25nIHh1eWVuIGxhbiB0dXllbiB2 YSBkdW5nIGRhdSBkb24gdHJhIGtoYWNoIA0Ka2hvbmcgZHVuZyBxdXkgZGluaC4gDQoNClZpIGNh biBibyBuYXkgY2hvIGJpZXQsIGtoaSBiaSBjaGF0IHZhbiB0YWkgeGUgeGUgYnV5dCB0cmluaCBi YXkgbmd1eWVuIG5oYW4gZGFuIGRlbiB2aSANCnBoYW0gbGEgZG8gYmkgYXAgbHVjIHR1IEhUWCB5 ZXUgY2F1IGNoYXkgZHVuZyBnaW8gZGUga2lwIHRob2kgZ2lhbiB4b2F5IHR1YSwgbmV1IGtob25n IA0Kc2UgYmkgcGhhdCB0aWVuLiBUcm9uZyBraGkgZG8sIGR1b25nIHNhIGNoYXQgaGVwLCBwaHVv bmcgdGllbiBkb25nIGR1YywgbmV1IGNoYXkgZHVuZyANCmx1YXQgdGhpIHRyZSwgbmdoaWEgbGEg dGFpIHhlIHNlIGJpIHBoYXQgdGllbiBkYWkgZGFpLCB0cnUgaGV0IHRpZW4gbHVvbmcuIA0KDQoi WGUgYnV5dCB0aHVvbmcgaGF5IG1hYyBwaGFpIHZpIHBoYW0gY2hheSB2YW8gbGFuIGR1b25nIGRh bmggY2hvIHhlIGdhbiBtYXkgdmEgDQpkdW5nIGRvbiB0cmEga2hhY2gga2hvbmcgZHVuZyBxdXkg ZGluaC4gTW9pIHRoYW5nIGNodW5nIHRvaSBwaGF0IGhvbiAxMCB0cnVvbmcgaG9wIA0KeGUgYnV5 dCB2aSBwaGFtLiBOaHVuZyBjaHVuZyB0b2kgY3VuZyBiYW4ga2hvYW4gbmV1IHhlIGJ1eXQgeGVw IGhhbmcgbm9pIGR1b2kgbHV1IA0KdGhvbmcgZHVuZyBsYW4gZHVvbmcgdGhpIHNlIHRyZSBnaW8s IGRhbiBkZW4gYW5oIGh1b25nIGNvbmcgdmllYyBjdWEgaGFuaCBraGFjaCIsIA0KbW90IGNoaSBo dXkgY3VhIERvaSBDU0dUIENobyBMb24gY2hpYSBzZS4gVmF5IHRoaSBzdSBhbiB0b2FuIGN1YSBu aHVuZyBwaHVvbmcgdGllbiBsdXUgdGhvbmcga2hhYywgYWkgc2UgbG8/IA0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzAvMjAxMDA3MjIwMjE2NTYuYXNweCBE aW5oIE11b2kgMjIvMDcvMjAxMCAyOjE2IA0KDQpUUC5IQ006IGxhaSBrZXQgeGUgbmdoaWVtIHRy b25nICANCiAgDQpTYW5nIDIxLjcsIG1vdCB2dSB1biB0YWMgZ2lhbyB0aG9uZyBuZ2hpZW0gdHJv bmcgeHVhdCBwaGF0IHR1IGNoYW4gY2F1IEJpbmggVHJpZXUgMiB0cmVuIA0KcXVvYyBsbyAxMyAo UUwxMyksIFEuVGh1IER1Yywgc2F1IGRvIGxhbiBzYW5nIG5oaWV1IHR1eWVuIGR1b25nIGxhbiBj YW4gdGh1b2MgUS5CaW5oIA0KVGhhbmgsIGtlbyBkYWkgdHUgNyBnaW8gZGVuIDkgZ2lvIHNhbmcu IA0KDQpEbyBtYXQgZHVvbmcgUUwxMyAoZG9hbiB0dSBnaWFvIGNhdCB2b2kgZHVvbmcgS2hhIFZh biBDYW4gZGVuIHRyYW0gdGh1IHBoaSBjaGFuIGNhdSANCkJpbmggVHJpZXUgMikgYmkgbmdhcCBz YXUgdHJvbmcgbnVvYyBob24gbnVhIG1ldCBuZW4gaGF1IGhldCBwaHVvbmcgdGllbiBwaGFpIGVw IHNhbmcgDQpsdXUgdGhvbmcgdHJlbiBwaGFuIGR1b25nIGtob25nIGJpIG5nYXAgZGFuIGRlbiB1 biB0YWMuIERvIG5nYXAgcXVhIHNhdSBuZW4gcmF0IG5oaWV1IA0KeGUgbWF5IHBoYWkgZGFuIGJv LiBNYXQga2hhYywgbWF0IGR1b25nIGNvbiBiaSAibG8gY290IiB0aGkgY29uZyBjaGllbSBkdW5n IGtoaWVuIHRpbmggDQpjYW5oIHVuIHRhYyBjYW5nIHRyYW0gdHJvbmcuIFRpbmggdHJhbmcgbmF5 IHNhdSBkbyBsYW4gcm9uZyB0cmVuIGNhYyB0dXllbiBkdW9uZyBEaW5oIA0KQm8gTGluaCwgTmd1 eWVuIFhpLCBVbmcgVmFuIEtoaWVtLCBEMi4uLg0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9t ZS9EYXVUdS1RdXlIb2FjaC9ubGQuY29tLnZuL1RoaWV1LXF1eS1kYXQta2hvLWRhdS10dS1oYS10 YW5nLWdpYW8tdGhvbmcvNTUwNzg0NC5lcGkgQS5OZ3V5ZXQgMDcvMDEvMjAxMSAwMDowN0dNVCs3 DQoNClRQIEhDTTogVGhpZXUgcXV5IGRhdCwga2hvIGRhdSB0dSBoYSB0YW5nIGdpYW8gdGhvbmcg DQoNCihOTEQpLSBUYWkgYnVvaSB0b25nIGtldCBraG9pIHhheSBkdW5nIGNvbmcgdHJpbmggZ2lh byB0aG9uZyBkdW9uZyBibyBjaGlldSA2LTEsIFNvIA0KR1RWVCBUUEhDTSBjaG8gYmlldCBoaWVu IGRhbmcgcmF0IGtobyBraGFuIHRyb25nIHZpZWMga2V1IGdvaSBkYXUgdHUgY2FjIGR1IGFuIGNv IA0KaGluaCB0aHVjIGRvaSBkYXQgbGF5IGhhIHRhbmcgdmkgcXV5IGRhdCBjdWEgVFAga2hvbmcg Y29uIG5oaWV1DQoNClNvIEdUVlQga2llbiBuZ2hpIFVCTkQgVFAgY2hpIGRhbyBTbyBUYWkgbmd1 eWVuLU1vaSB0cnVvbmcgbmdoaWVuIGN1dSwgZGUgeHVhdCANCnF1eSBkYXQgZGUgcGh1YyB2dSBj YWMgZHUgYW4ga2V1IGdvaSBkYXUgdHUgaGEgdGFuZyBnaWFvIHRob25nLCBkYWMgYmlldCBsYSBo aW5oIHRodWMgQlQgDQooeGF5IGR1bmcgliBjaHV5ZW4gZ2lhbykuIA0KIA0KU28gR1RWVCBjdW5n IGtpZW4gbmdoaSBVQk5EIFRQIHRyaWVuIGtoYWkgdGh1YyBoaWVuIGRlIGFuIHF1eSBob2FjaCBj YWMgdHJhbSB0aHUgDQpwaGkgdHJlbiBkaWEgYmFuIG5oYW0gdGFvIGRpZXUga2llbiB0aHVhbiBs b2kgY2hvIHZpZWMgbHVhIGNob24gdmkgdHJpIGRhdCB0cmFtIHRodSBwaGkgdGh1IA0KaG9pIHZv biBjaG8gbmh1bmcgZHUgYW4gZGF1IHR1IHRoZW8gaGluaCB0aHVjIEJPVCAoeGF5IGR1bmcgliBr aW5oIGRvYW5oIJYgY2h1eWVuIGdpYW8pLiAgIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGlu aHRyaS8yMDA4LzExLzgxMTM5Mi8gMTc6MTknIDAxLzExLzIwMDggKEdNVCs3KQ0KDQpUUCBIQ006 IER1IGtobyBiYWkgbmh1bmcgdGhpZXUgZGF0IHhheSB0cnVvbmcsIG5oYSB0YWkgZGluaCBjdSAN Cg0KaHR0cDovL3NndHQudm4vS2llbi10cnVjLWRvaS1zb25nL0NoaS10aWV0LzEzNTE1Mi9DdWEt bmdvLXBoaWEtZG9uZy1UUEhDTS1jYXUtbW9pLXBoYWktY2hvLWR1b25nLmh0bWwgVHUgQW4gliBE YW8gTGUgMjcuMTIuMjAxMCwgMDg6NDIgKEdNVCs3KSANCg0KVFAuSENNOiBDYXUgbW9pIHBoYWkg Y2hvIGR1b25nISBUaGlldSBraG9hIGhvYyAtIEhpZXUgcXVhIHRoYXAgLSBMYW5nIHBoaSBuZ3Vv biBsdWMgY3VhIGRhdCBudW9jICANCg0KU0dUVC5WTiAtIE5oaWV1IGNoaWVjIGNhdSB0cm9uZyBk aWVtIGR1b2MgZHVhIHZhbyBzdSBkdW5nLCBuaHVuZyB0aHVjIHRlIHZhbiBjaHVhIA0KcGhhdCBo dXkgdGFjIGR1bmcgdmkgY2h1YSB0aG9hdCBraG9pIHRpbmggdHJhbmcgImNhdSB4b25nIG1hIGR1 b25nIGNodWEgbW8iLg0KDQpOaGlldSBjYXUgbW9pDQoNCihBbmg6IEhpZW4gdGFpLCBkb2kgdHVv bmcgcGh1YyB2dSBjaHUgeWV1IGN1YSBjYXUgVGh1IFRoaWVtIGxhIG5ndW9pIGRhbiBxdWFuIDIg cXVhIA0KbGFpLCBjaHUgY2h1YSB0aHUgaHV0IGR1b2MgbHVvbmcgeGUgdHUgaHVvbmcgeGEgbG8g SGEgTm9pLiBBbmg6IFR1IEFuKSANCg0KTmdheSAyNS4xMiwgaGFpIG5oYW5oIGNhdSBiaWVuIFJh Y2ggQ2hpZWMgZGEgZHVvYyBraHUgUXVhbiBseSBnaWFvIHRob25nIGRvIHRoaSBzbyAyIA0KZHVh IHZhbyBzdSBkdW5nLiBIYWkgbmhhbmggY2F1IGJpZW4gbmF5IG5hbSB0cm9uZyBkdSBhbiBkYXUg dHUgeGF5IGR1bmcgbW9pIGNhdSBSYWNoIA0KQ2hpZWMgdHJlbiB4YSBsbyBIYSBOb2kuDQoNCkNh dSBSYWNoIENoaWVjIG1vaSBraGkgaG9hbiB0aGFuaCBzZSBjbyBiYSBuaGFuaCBjYXUgc29uZyBz b25nIG5oYXUuICJWaWVjIHRob25nIHhlIA0KaGFpIG5oYW5oIGNhdSBSYWNoIENoaWVjIGxhIG5v IGx1YyBjdWEgY2h1IGRhdSB0dSB0cm9uZyB2aWVjIGdpYWkgcXV5ZXQgdmFuIG5hbiB1biB0YWMg DQpnaWFvIHRob25nLCB0dXkgbmhpZW4sIGNhbiBwaGFpIGNvIHN1IGRvbmcgYm8gdmUgbWF0IGtl dCBjYXUgaGEgdGFuZyB0cmVuIHRvYW4gdHV5ZW4gDQpkdW9uZyIsIG1vdCB2aSBkYWkgZGllbiBj aGluaCBxdXllbiBxdWFuIDIgbmhhbiBkaW5oIHRhaSBidW9pIGxlIGtoYW5oIHRoYW5oLg0KDQpU aGVvIGdoaSBuaGFuIGN1YSBjaHVuZyB0b2kgdHJvbmcgaGFpIG5nYXkgMjUgdmEgMjYuMTIsIG8g a2h1IHZ1YyBoYWkgbmhhbmggY2F1IGJpZW4gDQpSYWNoIENoaWVjIHZhIGR1b25nIHhhIGxvIEhh IE5vaSwgdmFuIGNvbiBuaGlldSBkaWVtIHhheSByYSB1biB0YWMgY3VjIGJvLiBNb3QgaHVvbmcg DQpraGFjIGN1bmcga2hvbmcgbmdvYWkgbXVjIGRpY2ggY2hpYSB0YWkgY2hvIHRpbmggdHJhbmcg dW4gdGFjIG8gY3VhIG5nbyBwaGlhIGRvbmcgdmEgDQpjYXUgU2FpIEdvbiBsYSBodW9uZyBjYXUg VGh1IFRoaWVtLiBUcm9uZyBuZ2F5IDI1LjEyLCBuaGFuaCBONCBjdWEgZHUgYW4gY2F1IFRodSAN ClRoaWVtIGRhIGR1b2Mga2h1IFF1YW4gbHkgZ2lhbyB0aG9uZyBkbyB0aGkgc28gMSAoS2h1IDEp LCBkdWEgdmFvIHN1IGR1bmcuDQoNCk9uZyBMZSBRdXlldCBUaGFuZywgZ2lhbSBkb2MgS2h1IDEg a2hhbmcgZGluaCwgdmllYyBob2FuIHRhdCBuaGFuaCBONCB2YSBob2FuIHRoYW5oIA0KY29uZyB0 cmluaCBjYXUgVGh1IFRoaWVtIHNlIHRodWMgZGF5IHBoYXQgdHJpZW4ga2h1IGRvIHRoaSBtb2kg VGh1IFRoaWVtLiBEYWMgYmlldCwga2hpIA0Ka2V0IG5vaSB2b2kgaGFpIGR1IGFuIG5hbmcgY2Fw IHN1YSBjaHVhIGR1b25nIE5ndXllbiBIdXUgQ2FuaCB2YSBtbyByb25nIGR1b25nIA0KTmdvIFRh dCBUbyBub2kgdHUgbmhhbmggTjQgZGVuIGR1b25nIERpZW4gQmllbiBQaHUgc2UgdGFvIHRoYW5o IHR1eWVuIGdpYW8gdGhvbmcgbm9pIA0KcXVhbiAxLCAyIHZhIEJpbmggVGhhbmgsIHRhbmcgaGll dSBxdWEgZHUgYW4gY2F1IFRodSBUaGllbS4NCg0KVHV5IG5oaWVuLCB0aGVvIGdoaSBuaGFuIGN1 YSBjaHVuZyB0b2kgdmFvIHRydWEgbmdheSAyNi4xMiwgdHJvbmcga2hpIHhlIGNvIHVuIHVuIGRv IHZlIA0KVFAuSENNIGtoaWVuIGNhYyBjYXkgY2F1IHRyZW4gaGFpIHR1eWVuIGR1b25nIGNoaW5o IGRpIHZhbyB0aGFuaCBwaG8gbmh1IGNhdSBCaW5oIA0KVHJpZXUgMiwgY2F1IFNhaSBHb24gcXVh IHRhaSwgdGhpIGNhdSBUaHUgVGhpZW0gdmFuICJlIGtoYWNoIi4gRG9pIHR1b25nIHBodWMgdnUg Y2h1IA0KeWV1IGN1YSBjYXUgVGh1IFRoaWVtIGxhIG5ndW9pIGRhbiBxdWFuIDIgcXVhIGxhaSwg Y2h1IGNodWEgdGh1IGh1dCBkdW9jIGx1b25nIHhlIHR1IA0KaHVvbmcgeGEgbG8gSGEgTm9pIHZh byBjYXUgVGh1IFRoaWVtLg0KDQpDYXUgcm9uZyBkdW9uZyBoZXANCg0KTHkgZ2lhaSBjaG8gdmll YyBraG9uZyBjaG9uIGh1b25nIGNhdSBUaHUgVGhpZW0gZGUgdmFvIHRydW5nIHRhbSBUUC5IQ00s IG9uZyBUcmFuIA0KVHJ1bmcgSGlldSwgbGFpIHhlIGNvbnRhaW5lciBjaG8gcmFuZywgeGF5IGNh dSBtYSBraG9uZyBtbyBkdW9uZywgdGhpIGNvIGNhdSBjdW5nIG5odSANCmtob25nLiBOZXUgYmF5 IGdpbyBjYW0gaGFuIHhlIHRyZW4gMjUgdGFuIHF1YSBjYXUgU2FpIEdvbiwgY2FuaCB0YWkgeGUg Y3VuZyBraG9uZyBkaSANCmR1b2MgaHVvbmcgY2F1IFRodSBUaGllbS4gVHVvbmcgdHUsIGNhdSBQ aHUgTXkgY3VuZyBkdW9jIGt5IHZvbmcgcmF0IG5oaWV1IHRyb25nIA0KdmllYyBjaGlhIHRhaSBj aG8gY2F1IFNhaSBHb24uIFRoZW8gdGhpZXQga2UsIGtoaSB0aG9uZyB4ZSBjYXUgUGh1IE15IHNl IGdhbmgga2hvYW5nIA0KMzAuMDAwIJYgNTAuMDAwIHhlIG90byBjYWMgbG9haSBxdWEgY2F1IHRy b25nIG1vdCBuZ2F5LiBUdXkgbmhpZW4sIGR1IGRhIGR1YSB2YW8gc3UgDQpkdW5nIHR1IHRoYW5n IDkuMjAwOSBkZW4gbmF5LCB0cnVuZyBiaW5oIG1vaSBuZ2F5IHhlIHF1YSBjYXUgUGh1IE15IGNo aSBkYXQga2hvYW5nIA0KMTAuMDAwIHhlLg0KDQpUaGVvIHRpbSBoaWV1IGN1YSBjaHVuZyB0b2ks IGhpZW4gbmF5IGNhIGJhIGR1IGFuOiBtbyByb25nIGxpZW4gdGluaCBsbyAyNUI7IHN1YSBjaHVh IA0KZHVvbmcgZGFuIGNhdSBQaHUgTXk7IG1vIHJvbmcgZHVvbmcgTHVvbmcgRGluaCBDdWEgdmFu IGNodWEgYmlldCBuZ2F5IG5hbyB4b25nLiANCkN1IHRoZSwgZHUgYW4gbW8gcm9uZyBkdW9uZyBM dW9uZyBEaW5oIEN1YSBsZW4gNjBtLCB2b2kgYm9uIGxhbiB4ZSwgaGllbiBtb2kgbyBnaWFpIA0K ZG9hbiBob2FuIHRhdCBwaHVvbmcgYW4gZ2lhaSBwaG9uZyBtYXQgYmFuZzsgZHUgYW4gbW8gcm9u ZyBsaWVuIHRpbmggbG8gMjVCIGRlbiBuYXkgDQptb2kgaG9hbiB0aGFuaCBtb3QgcGhhbiB0dXll biBkdW9uZywgY29uIG5oaWV1IGhhbmcgbXVjIGtoYWMgY2h1YSB0aGUgdGhpIGNvbmcgZG8gDQpj aHVhIGNvIG1hdCBiYW5nLg0KDQpUaGVvIG9uZyBMdW9uZyBIb2FuZyBUcnVuZywgcGhvIGNodSB0 aWNoIGhpZXAgaG9pIFZhbiB0YWkgaGFuZyBob2EgVFAuSENNLCBjYWMgDQpjb25nIHRyaW5oIG5o dSBjYXUgUGh1IE15LCBUaHUgVGhpZW0gY2hpIHBoYXQgaHV5IGhpZXUgcXVhIGtoaSB0aG9hdCBj YW5oIGNhdSBjaG8gDQpkdW9uZy4gQ29uIGdpbyBkYXksIGtoaSBkdW9uZyBzYSBkYW4gdmFvIGNh dSBjaHVhIG1vLCBjaHVhIGxhbSB4b25nLCB0aW5oIHRyYW5nIHVuIHRhYyANCm8gY3VhIG5nbyBw aGlhIGRvbmcgdmFuIGNvbi4gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDEw LzA1LzNCQTFDNDczLyAyNi81LzIwMTAsIDE5OjU2IEdNVCs3DQoNClRQIEhDTTogJ1NhaSBsYW0g dHJvbmcgcXV5IGhvYWNoIGtoaWVuIFRQIEhDTSBuZ2F5IGNhbmcgbmdhcCcNCg0KVGhheSB2aSBw aGF0IHRyaWVuIHZlIHZ1bmcgY2FvIHBoaWEgRG9uZyAtIERvbmcgQmFjIHRoaSBUUCBIQ00gbGFp IGNob24gaHVvbmcgbmd1b2MgDQpsYWk7IGNhYyBraHUgZG8gdGhpIHBoaWEgTmFtIE5oYSBCZSBt b2MgbGVuIHRhaSBjYWMga2h1IHZ1YyB2dW5nIHRydW5nIHRydW9jIGRheSBsYSBobyANCmNodWEg bnVvYyBraGllbiBTYWkgR29uIG5nYXkgY2FuZyBuZ2FwIG5hbmcuDQoNCiogJ1RQIEhDTSBzZSB0 aGFuaCBkYW8gbmV1IG51b2MgYmllbiBkYW5nIHRoZW0gMCw1IG1ldCcgDQoNCk5oYW4gZGluaCBu YXkgY3VhIG5oaWV1IGNodXllbiBnaWEgdmUgcXV5IGhvYWNoIHRhaSBjdW9jIGhvcCBiYW4gdmUg Y2FjIGdpYWkgcGhhcCANCmNob25nIG5nYXAgdHJlbiBkaWEgYmFuIHRoYW5oIHBobywgZGllbiBy YSBzYW5nIG5heSwgZHVvYyBraG9uZyBpdCBkYWkgYmlldSBkb25nIHRpbmguIA0KDQpUUCBIQ00g bmFtIG8gaGEgbHV1IGhlIHRob25nIHNvbmcgRG9uZyBOYWkgLSBTYWkgR29uIG5lbiBkdW9jIGdv aSBsYSAiZG8gdGhpIG5nYXAgDQp0cmlldSIsIGRvIGNoaXUgYW5oIGh1b25nIGN1YSB0cmlldSBj dW9uZy4gVnVuZyBkYXQgdGhhcCBjaGllbSA2MSUgZGllbiB0aWNoIHZvaSBnYW4gDQo3LjkwMCBr bSBoZSB0aG9uZyBrZW5oIHJhY2ggY2hhbmcgY2hpdCBsYSBoZSB0aG9uZyB0aG9hdCBudW9jLiBI dW9uZyB0aG9hdCBsdSBjaGluaCBjdWEgDQp0aGFuaCBwaG8gbGEgdHUgQmFjIC0gVGF5IEJhYyAt IERvbmcgQmFjIHh1b25nIE5hbSAtIERvbmcgTmFtIC0gVGF5IE5hbS4NCg0KIkNhbmcgbW8gcm9u ZyBkbyB0aGkgaGllbiBkYWkgbyB2dW5nIE5hbSBTYWkgR29uLCBCaW5oIENoYW5oLCBxdWFuIDcs IE5oYSBCZSwgdHVjIGxhIA0KZGFuZyBuZ2FuIGR1b25nIHRob2F0IG51b2MgY3VhIHRoYW5oIHBo byIsIEdpYW8gc3UgTGUgSHV5IEJhIG5vaS4gDQoNCihBbmg6IFNhdSBtb2kgbmFtIFRQIEhDTSBs YWkgbmdhcCBuYW5nIGhvbi4gQW5oOiBLaWVuIEN1b25nLikNCg0KVGh1YyB0ZSBjaG8gdGhheSwg aGllbiBuYXkga2h1IGRvIHRoaSBQaHUgTXkgSHVuZyBvIE5hbSBTYWkgR29uIHRvYSBsYWMgbmdh eSB0cmVuIA0Ka2h1IHZ1YyB2dW5nIHRydW5nIC0gbm9pIHRydW9jIGRheSB0dW5nIGxhIG5odW5n IGhvIHR1IG5oaWVuIGNodWEgbnVvYyBjdWEgdGhhbmggcGhvLiANClRoZW0gbnVhLCB0b2FuIGJv IGtodSBOaGEgQmUsIHF1YW4gNyAtIGN1YSB0aG9hdCBudW9jIGNoaW5oIGN1YSBTYWkgR29uIGN1 bmcgZGFuZyBiaSANCmRvIHRoaSBob2EgbWFuaCBtZSwgbWEgaGUgcXVhIGN1YSBubyBsYSB0aW5o IHRyYW5nIHNhbiBsYXAga2VuaCByYWNoIHZvIHRvaSB2YS4NCg0KQ3UgdGhlLCBUUCBIQ00gY28g Z2FuIDcwMCB0dXllbiBzb25nLCBrZW5oIHJhY2gsIHRyb25nIGRvIG5oaWV1IHR1eWVuIGxhIGR1 b25nIHRob2F0IA0KbnVvYyBxdWFuIHRyb25nLiBOaHVuZyB0cm9uZyBraG9hbmcgMTQgbmFtICh0 dSAxOTkwIGRlbiAyMDA0KSBjbyBjaHVuZyA0NyBrZW5oIHJhY2ggDQpsb24gbmhvIHZvaSB0b25n IGRpZW4gdGljaCBob24gMTYgaGEgZGEgaG9hbiB0b2FuIGJpIHNhbiBsYXAuIEhhaSBxdWFuIDgg dmEgNiBkYW5nIHRyb25nIA0KdGluaCB0cmFuZyBuZ2FwIG5hbmcgdmkgcXVhIHRyaW5oIGRvIHRo aSBob2EgbyBOYW0gU2FpIEdvbi4NCg0KRG9uZyB0aW5oIHZvaSBxdWFuIGRpZW0gdHJlbiwgbmhp ZXUgZGFpIGJpZXUgZGEgY2hpIHJhIHNhaSBsYW0gdHJvbmcgcXV5IGhvYWNoIGN1YSBUUCANCkhD TS4gIlR1IGdpYWkgZG9hbiAxOTU0LTE5NzUsIGNhYyBjaHV5ZW4gZ2lhIGRhIHlldSBjYXUgdGhh bmggcGhvIG5lbiB0YXAgdHJ1bmcgDQpodW9uZyBwaGF0IHRyaWVuIHZlIHZ1bmcgY2FvIGxhIERv bmcgLSBEb25nIEJhYywgZ2lvaSBoYW4gcGhhdCB0cmllbiB2ZSBwaGlhIE5hbSAtIE5oYSANCkJl IC0gQ2FuIEdpbyB2aSB2dW5nIGRhdCBuYXkgeWV1LCB0cnVuZyIsIG9uZyBCYWNoIEFuaCBUdWFu IHRodW9jIERhaSBob2MgVG9uIER1YyBUaGFuZyBub2kuDQoNCiJWaSBzYW8gdGhhbmggcGhvIGxh aSBwaGF0IHRyaWVuIGRvIHRoaSBvIHZ1bmcgZGF0IHRoYXAgaG9uPyIsIG5ndXllbiBWaWVuIHRy dW9uZyBLaGkgDQp0dW9uZyB0aHV5IHZhbiBQaGFuIFZhbiBIb2FjaCBkYXQgY2F1IGhvaS4gDQoN CkJpZW4gZG9pIGtoaSBoYXUgZGllbiByYSBraG9uZyBwaGFpIG1vdCBzb20gbW90IGNoaWV1LCBu dW9jIGJpZW4gZGFuZyBsYSBjYXUgY2h1eWVuIA0KZHUgYmFvIGNobyB0dW9uZyBsYWkuIE5odW5n IHlldSB0byBnYXkgbmdhcCB0YWkgVFAgSENNIGR1b2MgbmhpZXUgY2h1eWVuIGdpYSBjaG8gDQpy YW5nIGRhbmcgZHVvYyB0YW8gcmEgYm9pIGNvbiBuZ3VvaSwgYm9pIHRvYyBkbyBkbyB0aGkgaG9h LCBiZSB0b25nIGhvYSwgcXV5IGhvYWNoIHRoaWV1IA0KdGFtLiBIYXUgcXVhIGxhIG1vaSBuYW0g bmdhcCBsYWkgY2FuZyBuZ2hpZW0gdHJvbmcuIFRob25nIGtlIGNobyB0aGF5IGhpZW4gdG9hbiB0 aGFuaCANCnBobyBjbyAxNjMgZGllbSBuZ2FwLCBwaGFuIGJvIGRldSBvIGNhIDI0IHF1YW4gaHV5 ZW4uIA0KDQpUcnVvYyB0aW5oIHRyYW5nIGRvLCBuaGlldSBjaHV5ZW4gZ2lhIGNobyByYW5nIGJl biBjYW5oIG5odW5nIGR1IGFuIGNob25nIG5nYXAgZGFuZyANCnRyaWVuIGtoYWksIHRoYW5oIHBo byBwaGFpIGR1YSByYSBjYWMgZ2lhaSBwaGFwIGNhcCBiYWNoIGhvbiBudWEuICJDYW0gdHV5ZXQg ZG9pIHZpZWMgc2FuIA0KbGFwIGtlbmggcmFjaC4gRG9pIHZvaSBjYWMgdnVuZyB0cnVuZyBuZW4g eGF5IGR1bmcgaG8gZGlldSBob2EgZGFuZyBjaGltIGNodWEgbHVvbmcgDQpudW9jIGNodWEga2lw IHRpZXUgdGhvYXQiLCBvbmcgQmEgZ29wIHkuIA0KDQpDYWMgY2h1eWVuIGdpYSBjdW5nIGRlIHh1 YXQgaGFuIGNoZSB0b2kgZGEgcXVhIHRyaW5oIGRvIHRoaSBob2EgbmhhIGNhbyB0YW5nIG8gdnVu ZyANCkRvbmcgTmFtIHRoYW5oIHBobzsgZHVhIHJhIGNvdCBuZW4geGF5IGR1bmcgcGh1IGhvcCBj byB0aW5oIHRvYW4gZGVuIHR1b25nIGxhaSB0cm9uZyANCjE1IG5hbSBudWEuIE9uZyBUdWFuIGRl IG5naGkgZ2lhaSBwaGFwIGRvbiBnaWFuIGxhIG5oYSwgZHVvbmcsIGRvIHRoaSBwaGFpIGNvIGNh YyBtYW5nIA0KeGFuaCBob2FjIG5odW5nIG5vaSBudW9jIG11YSBjbyB0aGUgdGhhbSB4dW9uZyBk dW9jLiBOaG8gZG8gZ2l1IGxhaSBkdW9jIGx1b25nIG51b2MgZGFuZyBrZS4NCg0KIk5ldSBraG9u ZyBjbyBzdSBjaHV5ZW4gYmllbiBuZ2F5IHRoaSBuaGlldSBuYW0sIHRoYW0gY2hpIHZhaSBjaHVj IG5hbSBudWEgY2h1bmcgdGEgDQp2YW4gY3UgbmdvaSBkYXkgZGUgdGllcCB0dWMgYmFuIHZlIGNo b25nIG5nYXAiLCBvbmcgSG9hY2ggbm9pLiANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8v WHUtbmdoaWVtLW5odW5nLXNhaS1waGFtLXRyb25nLXhheS1kdW5nLW5oYS1jYW8tdGFuZy10YWkt VFAtSENNLzU4LzQ2MzQ4NDQuZXBpIA0KDQpUUCBIQ006IGRpYSBiYW4gbm9uZywgcGh1YyB0YXAg bmhhdCB2ZSB0aW5oIHRyYW5nIHhheSBkdW5nIHNhaSBwaGVwLCB0cmFpIHBoZXAgDQoNCkxhIG1v dCB0cm9uZyAyIHRoYW5oIHBobyBkdW9jIGRhYyBjYWNoIGNobyBwaGVwIHRoaSBkaWVtIHRoYW5o IGxhcCBsdWMgbHVvbmcgdGhhbmggdHJhIA0KeGF5IGR1bmcgZGUgcXVhbiBseSB2YW4gZGUgeGF5 IGR1bmcgdHJlbiBkaWEgYmFuLCBuaHVuZyBjbyBtb3QgZGlldSBkYW5nIGJ1b24gbGEgY2hpbmgg DQpvIFRQIEhDTSwgbm9pIGNvIGx1YyBsdW9uZyB0aGFuaCB0cmEgeGF5IGR1bmcgaHVuZyBoYXUg bmhhdCwgbGFpIGxhIGRpYSBiYW4gbm9uZywgcGh1YyANCnRhcCBuaGF0IHZlIHRpbmggdHJhbmcg eGF5IGR1bmcgc2FpIHBoZXAsIHRyYWkgcGhlcC4uLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL2hjbS8yMDEwMDkvQ2FuLWNhbmgtdnUtc2FwLXRhaS1jb25nLXRydW9uZy1QaHUtTXktSHVu Zy05MzMxMjcvIDEzOjI4LCAwMS8wOS8yMDEwIChHTVQrNykNCg0KVFAuSENNOiBWdSBzYXAga2lu aCBob2FuZyB0YWkgY29uZyB0cnVvbmcgUGh1IE15IEh1bmcgLSBTYW4gYmUtdG9uZyBzYXAgeHVv bmcgY28gZGllbiB0aWNoIGtob2FuZyAyMTUgbWV0IHZ1b25nICANCg0KaHR0cDovL3VzLnZpZXRu YW1uZXQudm4veGFob2kvZG9pc29uZy8yMDA3LzAzLzY2ODUyMi8gMDQ6NDAsIDAyLzAzLzIwMDcg KEdNVCs3KQ0KDQpUUCBIQ006ICdSdXQgcnVvdCcgZHUgYW4gdHJlbiAxNTkgdHkgZG9uZyAoZHUg YW4gYmFpIHJhYyBHbyBDYXQpIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVGllbi1uaGEt bnVvYy1tYW5oLWFpLW5heS10aWEvNDAxODU3MDEvMTU3LyBUaHUgaGFpLCAwNSBUaGFuZyBoYWkg MjAwNywgMDc6MDIgR01UKzcgDQoNCkNvIHF1YW4gY2h1YyBuYW5nIFRQLkhDTSB2dWEga2V0IHRo dWMgdGhhbmggdHJhLCBraWVtIHRyYSBoYWkgY29uZyB0cmluaCB4YXkgZHVuZyBjbyBiYW4gdGFp IFRydW9uZyBUSFBUIG5hbmcga2hpZXUgDQpURFRUIE5ndXllbiBUaGkgRGluaCAoUS44KSB2YSBj b25nIHRydW9uZyB4dSBseSByYWMgR28gQ2F0Lg0KDQpSYXQgbmhpZXUga2lldSBzYWkgcGhhbSBk dW9jIHBoYXQgaGllbiBuaHUgcnV0IHRpYSB0aWVuIGJhYywgbGFtIGl0IGJhbyBuaGlldS4uLg0K DQpNb2kgZG9uIHZpLi4uICJ0aWEiIG1vdCBpdA0KDQpTYWkgdHUga2hhbyBzYXQgZGVuIHRoaSBj b25nIA0KDQpodHRwOi8vcGhhcGx1YXR0cC52bi8yMDEwMDcyNTEyNTgzNDU2MXAwYzEwMTUvdHAt aGNtLXNhcC0xMS1jYW4tbmhhLXh1b25nLXNvbmctdGhhbmgtZGEuaHRtIDI1LzA3LzIwMTAgLSAw MTowMSBQTQ0KDQpUUC4gSENNOiBTYXAgMTEgY2FuIG5oYSB4dW9uZyBzb25nIFRoYW5oIERhDQoN Cmh0dHA6Ly9uZ29pc2FvLm5ldC9OZXdzL1Rob2ktY3VvYy8yMDEwLzA4LzNCOUQwQTk5LyAyLzgv MjAxMCwgMjA6NTUgR01UKzcNCg0KVFAuIEhDTTogU2FwIG5oYSBvIFRQIEhDTSwgNyBuZ3VvaSBi aSB2dWkgbGFwDQoNCmh0dHA6Ly93d3cuYmFvZGF0dmlldC52bi9Ib21lL2NoaW5odHJpeGFob2kv U2FwLW5oYS0zLXRhbmctaGFpLW5ndW9pLWJpLXRodW9uZy1uYW5nLzIwMTA4LzEwNjAyNy5kYXR2 aWV0IDk6NTYgUE0sIDAyLzA4LzIwMTANCg0KVFAuIEhDTTogU2FwIG5oYSAzIHRhbmcsIGhhaSBu Z3VvaSBiaSB0aHVvbmcgbmFuZyANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3Mv UGFnZXMvMjAxMDM4LzIwMTAwOTEzMDA1OTU4LmFzcHggRGFtIEh1eSAxMy8wOS8yMDEwIDA6NTkg DQoNClRQIEhDTTogTnUgZGFvIGRpZW4gVmlldCBraWV1IGJpIGNvbiBkbyB0YW4gY29uZyAgLSB2 dSB2aWVjIG1hbmcgdGluaCBjaGF0IG1hbmggZG9uZywgbmd1eSBoaWVtIA0KDQpodHRwOi8vd3d3 LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDcvM0JBMUUzOTYvIDIxLzcvMjAxMCwgMTA6 MTggR01UKzcNCg0KVFAgSENNOiBEYW8gY2hpY2ggaG9hbmggaGFuaCB0cmVuIHhlIGJ1eXQgDQog IA0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDM4LzIwMTAwOTEz MDA1OTU4LmFzcHggMTMvMDkvMjAxMCAwOjU5IA0KDQpUUCBIQ006IFRob2kgZ2lhbiBxdWEsIG5o aWV1IGNodW5nIGN1IGRhIGJpIGtlIGxhIGRvdCBuaGFwIHRhbiBjb25nIGtoaWVuIG5ndW9pIGRh biB2byBjdW5nIGhvYW5nIG1hbmcNCg0KVHJvbmcgc28gZG8gY28gbmh1bmcgdnUga2hhIG5naGll bSB0cm9uZyBuaHU6IA0KDQotIGN1b2kgbmFtIDIwMDksIHRhaSBiYWkgZ2l1IHhlIGN1YSBjaHVu ZyBjdSBjYW8gY2FwIFNyZWMgVG93ZXIgKFEuMyksIGNhIHNpIA0Ka2llbSBkaWVuIHZpZW4gZGll biBhbmggTmdvYyBIaWVuIGJpIGtlIGxhIG1hdCBjYW0gbWEgdGF1IGNoZW0gYmkgdGh1b25nIG5h bmcgcGhhaSBkdWEgZGkgY2FwIGN1dTsgDQoNCi0gY3VvaSB0aGFuZyA3LjIwMTAsIGNoaSBULksu SCAoMjkgdHVvaSwgbmd1IG8gY2h1bmcgY3UgVmFuIERvLCBQLjEsIFEuNCkgdnVhIA0KbW8gY3Vh IHZhbyBuaGEgZGEgYmkgbW90IHRoYW5oIG5pZW4geG9uZyB2YW8gZHVuZyBkYW8sIHJvaSBkaWVu IGtob25nIGNoZS4gDQpTYXUgZG8sIGh1bmcgdGh1IGxheSBjb25nIHNvIHRhbSBraG9hIHRheSwg bmhvdCBuYW4gbmhhbiB0cm9uZyBuaGEgdmUgc2luaDsgcm9pIGxheSB0YWkgc2FuIHRhdSB0aG9h dC4uLiANCg0KaHR0cDovL3RpbnR1Yy50aW1uaGFuaC5jb20vcGhhcC1sdWF0L2FuLW5pbmgtdHJh dC10dS8yMDEwMTAyOS8zNUFBRTE2MS9OaHVuZy10ZS1uYW4tbmh1Yy1uaG9pLXRhaS1sYW5nLWRh aS1ob2MtLUJhaS0xLUN1b3AtZ2lhdC1uZ2F5LWNhbmctdGFvLXRvbi5odG0gMjkvMTAvMjAxMCAx NDoxNDowMA0KDQpUUCBIQ006IE5odW5nIHRlIG5hbiBuaHVjIG5ob2kgdGFpIGxhbmcgZGFpIGhv YyAtIEJhaSAxOiBDdW9wIGdpYXQgbmdheSBjYW5nIHRhbyB0b24gDQoNCihBbmg6IEhpbmggYW5o IG5odW5nIG5ndW9pIGJpIGJhdCBraGkgImxhbSBhbiIgdGFpIGxhbmcgREggLSBBbmg6IFRyaSBR dWFuZykNCg0KIEhpZW4ga2h1IHZ1YyBESCBRdW9jIGdpYSBUUC5IQ00gZGFuZyB0b24gdGFpIG5o dW5nIGxvYWkgdGUgbmFuIG5hbz8gICANCg0KVGhlbyBDb25nIGFuIHhhIERvbmcgSG9hIChILkRp IEFuLCBCaW5oIER1b25nKSwgZ2FuIGRheSwgY2FjIG5ob20gY3VvcCBnaWF0IHRhaSANCmxhbmcg REggZGFuZyB0cm8gbmVuIGxpZXUgbGluaCB2YSB0YW8gdG9uIGhvbiB2b2kgbmh1bmcgdGh1IGRv YW4gY2hvbmcgdHJhIHZvIGN1bmcgDQpuZ3V5IGhpZW0ga2hpIGJpIHRydXkgZHVvaS4NCg0KQ2hv bmcgdHJhIGJhbmcgaG9pIGNheSB2YSByb2kgZGllbiB0dSBjaGUNCg0KTWFjIGR1IG5hbiBjdW9w IGdpYXQgY28gZ2lhbSB0cm9uZyB0aG9pIGdpYW4gZ2FuIGRheSBkbyBsdWMgbHVvbmcgY29uZyBh biBraHUgdnVjIGN1YSANCnhhIERvbmcgSG9hIHRvIGNodWMgdHVhbiB0cmEsIHRyaW5oIHNhdCBy YW8gcmlldCwgbmh1bmcgY2FjIHNpbmggdmllbiAoU1YpIHZhbiBjaHVhIGhvYW4gDQp0b2FuIHll biB0YW0gdHJ1b2Mgbmh1bmcgdGh1IGRvYW4gY3VvcCAibm9uZyIsIHRyb20gY2FwIG5nYXkgY2Fu ZyB0YW8gdG9uIGN1YSBib24gdG9pIA0KcGhhbSBuZ2F5IGdpdWEgdGhhbmggdGhpZW4gYmFjaCBu aGF0LiANCg0KKEFuaDogRG9hbiBkdW9uZyB0dSBESCBLaG9hIGhvYyBUdSBuaGllbiBkYW4gdmFv IGt5IHR1YyB4YSBESCBRdW9jIGdpYSBUUC5IQ00gdGh1b25nIA0KeHV5ZW4geGF5IHJhIGN1b3Ag Z2lhdCAtIEFuaDogVHJpIFF1YW5nKQ0KDQpUcnVvbmcgY29uZyBhbiB4YSBEb25nIEhvYSBOZ3V5 ZW4gVmFuIEN1b25nIGNobyBiaWV0LCBuZ2F5IGNhbmcgY28gbmhpZXUgbmhvbSB0b2kgDQpwaGFt IGhvYXQgZG9uZyBvIGxhbmcgREguDQoNCiJHYW4gZGF5LCBuaG8gc3UgY2FwIGJhbyBraXAgdGhv aSBjdWEgbmd1b2kgZGFuLCBsdWMgbHVvbmcgdHVhbiB0cmEgY3VhIGNvbmcgYW4geGEgRG9uZyAN CkhvYSB2YSBkYW4gcGhvbmcgYXAgVGFuIExhcCBkYSBwaG9pIGhvcCBiYXQgIm5vbmciIG5oaWV1 IG5ndW9pIGN1b3AgeGUgbWF5LCBnaWF0IHRhaSANCnNhbiBjdWEgU1YsIGRhYyBiaWV0IGxhIGto dSB2dWMgaG8gZGEsIG5vaSBjbyBuaGlldSBTViB0dSB0YXAiLCBvbmcgQ3Vvbmcgbm9pLg0KDQpN b2kgZGF5LCBtb3QgdnUgY3VvcCB0YXhpIGN1bmcgZGEgeGF5IHJhIHRhaSBraHUgdnVjIGhvIGRh IHNvbmcgYm9uIHRvaSBwaGFtIGRhIGJpIGx1YyANCmx1b25nIGNvbmcgYW4gdG9tIGdvbi4NCg0K Ik5ob20gY3VvcCBuYXkgZ2lhIGxhbSBraGFjaCBkaSBkdW9uZywgbmhvIHRhaSB4ZSBjaG8gZGVu IG5vaSBoZW8gbGFuaCBvIGtodSB2dWMgaG8gDQpkYSB2YSByYSB0YXkgY3VvcCB4ZS4gVHV5IG5o aWVuLCBuZ2F5IHNhdSBkbywgbHVjIGx1b25nIHR1YW4gdHJhIGRhIHBob2kgaG9wIGJhdCBkdW9j IA0KbmhvbSBjdW9wIG5heSIsIG9uZyBDdW9uZyBrZS4NCg0KVGhlbyBjYWMgY29uZyBhbiB2aWVu IG8geGEgRG9uZyBIb2EsIGdhbiBkYXksIG1vaSBraGkgYmkgdHJ1eSBkdW9pLCBib24gY3VvcCBn aWF0IGR1bmcgDQpjYSBob2kgY2F5LCBvdCBib3QgdmEgbWEgdGF1LCB0aGFtIGNoaSBsYSByb2kg ZGllbiB0dSBjaGUgZGUgY2hvbmcgdHJhIGhldCBzdWMgbGlldSBsaW5oLiANCg0KKEFuaDogQ2hp IHRyb25nIG5oYXkgbWF0LCBuaHVuZyBjaGllYyB4ZSBtYXkgY3VhIFNWIGtob25nIGNhbmggbWEg YmF5IC0gQW5oOiBUcmkgUXVhbmcpIA0KDQpCYWMgVC5QLCBtb3Qgbmd1b2kgc29uZyBsYXUgbmFt IHRhaSBsYW5nIERILCBnYW4ga3kgdHVjIHhhIChLVFgpIGtlOiAiQ2FjaCBkYXkgbWF5IA0Kbmdh eSwgdGFpIG1vdCBxdWFuIGFuIHRyZW4gZHVvbmcgNjIxIGRhbiByYSB4YSBsbyBIYSBOb2ksIGRh IHhheSByYSBtb3QgdnUgY3VvcCB4ZSBtYXkgDQp0YXkgZ2EgZGF0IHRpZW4uIEtoaSBjaHUgbmhh IHRydXkgZHVvaSB0aGVvIGJvbiBjdW9wLCBsaWVuIGJpIGNodW5nIGR1bmcgbWEgdGF1IGNob25n IHRyYSANCmRvaSBjaGVtIi4NCg0KQmFjIFQuUCBub2kgdGhlbSBsdWMgdHJ1b2MsIHR1eSBuYW4g Y3VvcCBnaWF0IGNvIHhheSByYSB0aHVvbmcgeHV5ZW4gbmh1bmcga2hvbmcgY28gDQpjaHV5ZW4g Ym9uIGN1b3AgY2hvbmcgdHJhIHF1eWV0IGxpZXQgYmFuZyB2dSBraGkgbmh1IHRob2kgZ2lhbiBn YW4gZGF5Lg0KDQpDdW9wIHhlIG1heSBiYW5nICJkb2FuIGJlIGtob2EiDQoNCkNvbmcgYW4ga2h1 IHZ1YyBvIHhhIERvbmcgSG9hIGNobyBiaWV0LCBraGkgaG9hdCBkb25nLCBib24gY3VvcCBnaWF0 IHRodW9uZyBkaSB0aGVvIA0KbmhvbSB0dSBoYWkgZGVuIGJvbiBuZ3VvaSwgYW4gbWFjIGtoYSBs aWNoIHN1LCBkaSBjdW5nIGx1YyBiYW5nIG5oaWV1IHhlIG1heS4NCkxvaSBkdW5nIHNvIGhvIGN1 YSBTViB2YSBuZ3VvaSBkYW4gdGFpIGNhYyBxdWFuIGNvbSwgZGllbSBraW5oIGRvYW5oLCBjYWMg a2h1IG5oYSANCnRyby4uLiwgYm9uIGN1b3AgeGUgbWF5IGxpZW4gZHVuZyAiZG9hbiBiZSBraG9h IiBkZSBjdW9wIHhlIG1heSBjaGF5IHRob2F0LiANCg0KRGF5IGxhICJkb2FuIGJlIGtob2EiIGN1 YSBib24gY3VvcCBiaSBjb25nIGFuIHhhIERvbmcgSG9hIHRodSBnaXUgLSBBbmg6IFRyaSBRdWFu Zw0KDQoiVGF0IGNhIGNoaSBkaWVuIHJhIHRyb25nIHZvbmcgbWF5IGNodWMgZ2lheSwgbmVuIGRh IHBoYW4gY2h1IHhlIGtob25nIGtpcCBwaGF0IGhpZW4uDQpUcm9uZyB0cnVvbmcgaG9wIGJpIHBo YXQgaGllbiB0aGkgY2h1bmcgY28gZG9uZyBib24gY2hlIGNoYW4gZGUgY3VuZyB0YXUgdGhvYXQg YW4gDQp0b2FuIiwgYW5oIEx1b25nLCBjb25nIGFuIGtodSB2dWMgY3VhIHhhIERvbmcgSG9hIG5v aS4NCg0KTmdvYWkgcmEsIG5hbiBjdW9wIGdpYXQgdGFpIHNhbiBuaHUgZGllbiB0aG9haSwgZ2lv IHhhY2gsIGRvIHRyYW5nIHN1YyBjdW5nIGRpZW4gcmEga2hhIA0KcGhvIGJpZW4gdGFpIHR1eWVu IGR1b25nIHR1IHRydW9uZyBESCBLaG9hIGhvYyB0dSBuaGllbiBkYW4gdmFvIGt5IHR1YyB4YSAo S1RYKSBESCANClF1b2MgZ2lhIFRQLkhDTS4NCg0KTmhpZXUgdHJ1b25nIGhvcCBjdW9wIGdpYXQg ZGEga2hvbmcgeGF5IHJhIG5obyBzdSB0cm8gZ2l1cCBjdWEgbmd1b2kgZGFuIHZhIGx1YyBsdW9u ZyANCnR1YW4gdHJhIGhvYXQgZG9uZyB0aWNoIGN1Yy4NCg0KTmdheSAxNy4xMCwgbW90IG5ob20g Y3VvcCAibm9uZyIgZGFuZyB0aW5oIHJhIHRheSB0YWkga2h1IHZ1YyBkYW4gdmFvIEtUWCBESCBR dW9jIA0KZ2lhIFRQLkhDTSB0aGkgbmd1b2kgZGFuIGxpZW4gdHJ1eSBobywgZG9uZyB0aG9pIGx1 YyBsdW9uZyB0dWFuIHRyYSB0YWkgY2hvIGRhIHRydXkgZHVvaSANCm5nYW4gY2hhbiB2YSBiYXQg Z2l1IGtpcCB0aG9pLg0KDQpUcnVvYyBkbywgY2hpZXUgNC42LCBsdWMgbHVvbmcgdHVhbiB0cmEg a2llbSB0cmEgZG90IHh1YXQgaGFpIG5ndW9pIGRhbmcgZGkgeGUgbWF5IHRoaSANCnBoYXQgaGll biB0cm9uZyBuZ3VvaSBjdWEgY2h1bmcgY28gc29pIGRheSBjaHV5ZW4gYmkgZHV0IGRvIG1vaSB2 dWEgZ2lhdCBkdW9jIG8gbm9pIA0Ka2hhYy4NCg0KUXVhIGRpZXUgdHJhIGtoYWkgdGhhYywgY2h1 bmcga2hhaSBuaGFuIGRhbmcgcmFvIHF1YW5oIGxhbmcgREggZGUgdGllcCB0dWMgY3VvcCBnaWF0 IHRhaSBzYW4gU1YgdGhpIGJpIGJhdC4gDQoNCltDb25nIGFuIHhhIERvbmcgSG9hIGx1dSB5OiBt b2kga2hpIHhheSByYSB0cm9tIGNhcCBob2FjIGN1b3AgIm5vbmciLCBTViB2YSBuZ3VvaSANCmRh biBjbyB0aGUgYmFvIG5nYXkgcXVhIGR1b25nIGRheSBub25nOiAwNjUwIDM3NTAgODcyIGRlIGNv bmcgYW4geGEga2lwIHRob2kgZ2l1cCANCmRvLl0gDQogDQpWYW8gMTcgZ2lvIDMwIHBodXQgbmdh eSA1LjYsIGhhaSBuZ3VvaSBraGFjIGRpIHhlIG1heSBjbyBoYW5oIHZpIGRhbmcgbmdvIGRhIGJp IGNvbmcgYW4ga2h1IHZ1YyBjaG8gZHVuZyB4ZSBraWVtIHRyYS4NCg0KU2F1IGtoaSB0cmEgaG9p LCBjaHVuZyBjaG8gYmlldCBkYW5nIGR1bmcgY2hpZWMgeGUgdnVhIHRyb20gZHVvYyBkZSB0aWVw IHR1YyBkaSAia2llbSANCmFuIiBvIHR1eWVuIGR1b25nIERIIFF1b2MgZ2lhIFRQLkhDTS4gQ3Ug dGhlIGxhIGNodW5nIHNlIGR1bmcgImRvYW4gYmUga2hvYSIgZGUgDQpjdW9wIHhlIG1heS4NClRo ZW8gb25nIE5ndXllbiBWYW4gQ3VvbmcsIHR1IGRhdSBuYW0gZGVuIG5heSwgbGFuZyBESCBkYSB4 YXkgcmEgNTQgdnUgdmllYyBsaWVuIA0KcXVhbiBkZW4gYW4gbmluaCB0cmF0IHR1IHZhIGRvaSBz b25nIHhhIGhvaSwgZ2lhbSA1IHZ1IHNvIHZvaSBjdW5nIGt5IG5hbSBuZ29haS4gDQoNCihBbmg6 IFR1IGRhdSBuYW0gZGVuIG5heSwgY29uZyBhbiB4YSBEb25nIEhvYSBkYSB4dSBseSAzMSB2dSB0 cm9tIGNhcCB0YWkgc2FuIFNWIHZhIG5ndW9pIGRhbiBvIGxhbmcgREggLSBBbmg6IFRyaSBRdWFu ZykgDQoNClRyb25nIGRvLCB0cm9tIGNhcCBjbyAzMSB2dSwgZ2lhbSBoYWkgdnUgc28gdm9pIGN1 bmcga3kgbmFtIG5nb2FpLg0KDQpDb25nIGFuIHhhIERvbmcgSG9hIGRhIGxhbSBybyAxMSB2dSB2 YSBiYXQgMTQgbmd1b2ksIHRodSBob2kgYmEgeGUgbWF5LCBtb3QgbGFwdG9wIA0KY3VuZyAyNiB0 cmlldSBkb25nIHRpZW4gbWF0Lg0KRGFjIGJpZXQsIHRyb25nIDEwIHRoYW5nIHF1YSwgY29uZyBh biB4YSB0cmVuIGN1bmcgZGEgYmF0IGdpdSBtb3QgZG9pIHR1b25nIHN1IGR1bmcgbWEgDQp0dXkg dHJvbmcga2h1b24gdmllbiBsYW5nIERILiANCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwLTg1 ODQyNTAxOC9uaHVuZ190ZV9uYW5fbmh1Y19uaG9pX3RhaV9sYW5nX2RhaV9ob2NfYmFpXzJfY2F1 X2RlX2RlX2hvbl9jYXVfY2FfbmJzcC5odG1sIFRyaSBRdWFuZyAoVGhlbyB3d3cudGhhbmhuaWVu LmNvbS52bikgDQoNClRQIEhDTTogTmh1bmcgdGUgbmFuIG5odWMgbmhvaSB0YWkgbGFuZyBkYWkg aG9jIC0gQmFpIDI6IENhdSAiZGUiIGRlIGhvbiBjYXUgY2EgIA0KDQooVE5PKSBPIGxhbmcgZGFp IGhvYyAoREgpLCBoZSBkZW4ga2h1IG5oYSB0cm8gbmFvIGhvaSB2ZSBuYW4gbWF0IGNhcCwgY2h1 bmcgdG9pIGN1bmcgDQpkZXUgbmdoZSBzaW5oIHZpZW4gKFNWKSBrZSBraG9uZyBoZXQgY2h1eWVu LiBEaWVuIHRob2FpIGRpIGRvbmcsIG1heSB0aW5oIHhhY2ggdGF5IGN1YSANClNWIGN1IGxpZW4g dHVjICJkb2kgbm9uIHJhIGRpIi4gDQoNCiogQmFpIDE6IEN1b3AgZ2lhdCBuZ2F5IGNhbmcgdGFv IHRvbiANCg0KTWF0IGNhcCBhbSBhbmggU1YgDQoNCk5hbiBtYXQgY2FwIHRhaSBjYWMga2h1IG5o YSB0cm8gbyBraHUgdnVjIERIIFF1b2MgZ2lhIFRQLkhDTSBkaWVuIHJhIHBobyBiaWVuIGRlbiAN Cm5vaSBjYWMga2hvIGNodSBjaGFuIG5hbiBjYSB2b2kgdmllYyBiYW8gY2hvIGNvbmcgYW4gZGlh IHBodW9uZyBuaG8gdGltIGdpdXAuDQogDQooQW5oOiBUYWkga2h1b24gdmllbiBESCBRdW9jIGdp YSBUUC5IQ00gdmFuIGNvbiByYXQgbmhpZXUga2h1IG5oYSB0cm8gaGVvIGh1dCB2YSANCm1hdCBh biB0b2FuIG5odSB0aGUgbmF5IC0gQW5oOiBUcmkgUXVhbmcpIA0KDQoiVHJ1b2MgZGF5LCBtaW5o IG1hdCBjYWkgZGllbiB0aG9haSBob24gdHJpZXUgZG9uZywgZGkgYmFvIGNvbmcgYW4gdGhpIGN1 bmcgaXQgaHkgdm9uZyANCnRpbSBsYWkgZHVvYyBsYW0sIG5lbiB0aG9pLCByYW5nIGxhbSB0aGVt IG11YSBjYWkga2hhYyB2YWkgdHJhbSBuZ2FuIGRvbmcgeGFpIGRvIHZheSIsIA0KSHVuZywgU1Yg bmFtIDMgdHJ1b25nIERIIEtob2EgaG9jIFhhIGhvaSB2YSBOaGFuIHZhbiBUUC5IQ00gbm9pLiAN Cg0KTi5ULlRoYW8sIFNWIHRydW9uZyBESCBLaG9hIGhvYyBYYSBob2kgdmEgTmhhbiB2YW4gVFAu SENNLCBtb2kgZGVuIHRybyBob2MgdGFpIA0Ka2h1IG5oYSBvIHNhdSB0cnVvbmcgREggQW4gbmlu aCAodGh1b2Mga2h1IHBobyA2LCBQLkxpbmggVHJ1bmcsIFEuVGh1IER1Yykga2U6IA0KIlBob25n IGN1YSBtaW5oIG1vaSBiaSBtYXQgaGFpIGNhaSBkaWVuIHRob2FpLiBDYSBwaG9uZyBkYW5nIG5n dSB0aGkgYm9uIHRyb20gbGVuIHZhbyANCiJjYXUiIG1hdCBtYSBraG9uZyBhaSBiaWV0Ii4NCg0K SGFpIGNvIGJhbiBzYXQgcGhvbmcgY3VhIFRoYW8gY3VuZyB2dWEgYmkgdHJvbSAiY2F1IiBtYXQg bGFwdG9wLCBuZW4gaG9hbmcgcXVhIGxpZW4gDQpjaHV5ZW4gZGkgbm9pIGtoYWMgby4NCg0KRGEg cGhhbiwgbmd1eWVuIG5oYW4gbWF0IGNhcCB0YWkgY2FjIGtodSBuaGEgdHJvIG5vaSB0cmVuIGxh IGRvIFNWIHRoaWV1IGNhbmggZ2lhYy4gDQpUcm9uZyAxMCB0cnVvbmcgaG9wIGNodW5nIHRvaSBu Z2hlIFNWIGtlIGxpZW4gcXVhbiBkZW4gbWF0IGNhcCB0YWkgc2FuIHRoaSBjbyBkZW4gdGFtIA0K dHJ1b25nIGhvcCBTViBub2kgZG8gbmd1IHF1ZW4gdmEgYmkga2UgZ2lhbiBsZW4gdmFvIHBob25n IGxheSBkby4gDQoNCiJCb24gdHJvbSBiYXkgZ2lvIGxpZXUgbGFtLCBoZSB0aGF5IHBob25nIG5h byBraGVwIGN1YSBobyB2YSBjaHUgcGhvbmcgZGFuZyBuZ3UgdGhpIA0KYmluaCB0aW5oIG1vIGN1 YSBidW9jIHZhby4gTmV1IFNWIHRyb25nIHBob25nIHRodWMgZGF5LCBib24gY2h1bmcgdm8gbm9p ICJ2YW8gbmhhbSANCnBob25nIiBkZSBkYW5oIGJhaSBjaHVvbiwgY29uIGtob25nIHRoaSBsYXkg dGFpIHNhbiByb2kgYm8gZGkgbmdheSIsIGFuaCBMdW9uZywgY29uZyBhbiBraHUgdnVjIG8geGEg RG9uZyBIb2EgY2hvIGJpZXQuIA0KDQpDaGkgSGEsIGJhbiBxdWFuIGdhbiBraHUgbmhhIHRybyB0 cmVuIGNobyBiaWV0IHRoZW06IEdhbiBkYXksIG5oaWV1IG5ndW9pIGdpYSBkYW5oIA0KbmhhbiB2 aWVuIGN1YSBjYWMgY29uZyB0eSBkZW4gYmFuIHNhbiBwaGFtIGNvIGJvYyB0aGFtIHRydW5nIHRo dW9uZywgZGUgbHVhIGxheSB0YWkgc2FuIA0KY3VhIG5odW5nIFNWIG5oZSBkYS4NCg0KIkJvbiBu YXkgdGh1b25nIGdpYSB2byBjaG8gU1YgY2FvIHRoZSB0cnVuZyB0aHVvbmcsIHZhIHRoZSBuYW8g Y3VuZyB0cnVuZyBkYW0uIFNhdSANCmRvLCBib24gY2h1bmcgeWV1IGNhdSBTViBkaWVuIHRlbiB2 YW8gYmllbiBiYW4gcm9pIGhlbiBuZ2F5IGxlbiB0cnUgc28gY29uZyB0eSBkZSBuaGFuIA0KdGll biB0aHVvbmcgdm9pIGRpZXUga2llbiBTViBwaGFpIHVuZyB0cnVvYyB0aWVuIGhvYWMgdGFpIHNh biBuaHUgZGllbiB0aG9haSwgdHJhbmcgc3VjLi4uIA0KZGUgbGFtIHRpbi4gS2hpIFNWIHRpbSBk ZW4gY2FjIGRpYSBjaGkgY29uZyB0eSB0cmVuIHRoaSBtb2kgYmlldCBtaW5oIGJpIGdhdCIsIGNo aSBIYSBrZS4NCg0KRHVhIHhlIHZhbiBjaHVhIGdpYW0NCg0KSGllbiB0YWksIHRpbmggaGluaCBk dWEgeGUgdmFuIGRpZW4gcmEgZGV1IGRhbiB2YW8gbW9pIGN1b2kgdHVhbiBvIGtodSB2dWMgaG8g ZGEgY3VhIA0KbGFuZyBESC4gDQoNCiJIYXUgbmh1IHRodSBiYXksIGNodSBuaGF0IG5hbywgY2Fj IG5ob20gZHVhIHhlIGN1bmcgdHUgdGFwIG5ldCBwbywgZGFuaCB2b25nLCBkdWEgdG9jIA0KZG8g byBjYWMgdHV5ZW4gZHVvbmcgaG8gZGEsIGdheSBuZ3V5IGhpZW0gY2hvIG5ndW9pIGRhbiB2YSBT Vi4gTmV1IGNhYyBuaG9tIGR1YSB4ZSANCml0IG5ndW9pIHRoaSBjb25nIGFuIHhhIHRydWMgdGll cCBjbyBtYXQgZGUgdHJ1eSBiYXQsIHRhbSBnaXUgcGh1b25nIHRpZW4sIGNvbiBuZXUgcXV5IG1v IA0KaGFuZyB0cmFtIHhlIHRoaSBjaHVuZyB0b2kgcGhhaSBuaG8gZGVuIGx1YyBsdW9uZyBjYW5o IHNhdCAxMTMsIGNhbmggc2F0IGdpYW8gdGhvbmcgDQpodXllbiBEaSBBbiBjdW5nIHBob2kgaG9w IHRydXkgcXVldCIsIGFuaCBOZ3V5ZW4gVmFuIEN1b25nLCBEb2kgdHJ1b25nIGNvbmcgYW4geGEg DQpEb25nIEhvYSAoQmluaCBEdW9uZykgbm9pLiANCg0KKEFuaDogRHVvbmcgZG9jIGhvIGRhIHRo dW9uZyB4dXllbiBkaWVuIHJhIG5hbiBkdWEgdG9jIGRvIHZhbyBjdW9pIHR1YW4gLSBBbmg6IFRy aSBRdWFuZykgIA0KDQpNb3Qgc28gY2hpIGJhbiBoYW5nIHJvbmcgZG9jIGJvIGhvIGRhIGtlLCB0 cnVvYyBkYXksIGNoaSB0dW5nIGNodW5nIGtpZW4gbmhpZXUgdnUgdGFpIA0KbmFuIG5naGllbSB0 cm9uZyBkbyBkdWEgeGUgbGFuZyBsYWNoIHRhaSBraHUgdnVjIHRyZW4uDQoNCkRhYyBiaWV0LCBj aGlldSBjdW9pIHR1YW4gbmFvIGN1bmcgY28gcmF0IGRvbmcgU1YgdHUgdGFwIGhhaSBiZW4gZHVv bmcgbyBnYW4gYm8gaG8gZGUgDQp4ZW0gZHVhIHhlLiBDYWMgdGF5IGxhaSBsaWV1IG1hbmcgbmV0 IHBvIGxhbyBkaSByb2kgbmFtIGRhaSB0cmVuIHRoYW4geGUgYmlldSBkaWVuIHZvIGN1bmcgDQpt YW8gaGllbS4NCg0KRGlldSBkYW5nIG5vaSBsYSBzYXUga2hpIGR1YSB4ZSB4b25nLCBjYWMgbmhv bSAieWVuZyBodW5nIiBjb24gY2hheSB0YW4gbG9hbiB0cm9uZyBjYWMgDQp0dXllbiBkdW9uZyBk b25nIGR1YyBuZ3VvaSBxdWEgbGFpLCBkZSBkb2EgdHJ1YyB0aWVwIGRlbiBzdSBhbiB0b2FuIGN1 YSBTViB2YSBuZ3VvaSANCmRhbi4NCg0KVGhpZXUgdGEgUGhhbiBWYW4gU3UsIERvaSB0cnVvbmcg RG9pIGNhbmggc2F0IGdpYW8gdGhvbmcgUS5UaHUgRHVjIChUUC5IQ00pIG5vaTogDQoiVHUgZGF1 IG5hbSBkZW4gbmF5LCBjaHVuZyB0b2kgZGEgcGhvaSBob3AgY3VuZyBDU0dUIGh1eWVuIERpIEFu IGRlIHRyYW4gYXAgZG9pIHR1b25nIGR1YSB4ZSB2YSBiYXQgZ2l1IGhhbmcgbG9hdCB0aGFuaCBu aWVuIGR1YSB4ZSB0cmFpIHBoZXAgdGFpIGhvIGRhLiBUdXkgbmhpZW4sIHZhbiANCm5hbiB0cmVu IHZhbiBjaHVhIGNvIGRhdSBoaWV1IGR1bmcgbGFpLCBkbyB2YXkgc2FwIHRvaSwgY2h1bmcgdG9p IHNlIHRpZXAgdHVjIHBob2kgaG9wIGxhbSANCm1hbmggdGF5IGhvbiBudWEiLg0KDQpLaG9uZyBj aGkgY28gZHVhIHhlLCBub2kgbmF5IGNvbiBsYSBkaWVtIGhlbiAieHUiIG5oYXUgY3VhIGdpb2kg Z2lhbmcgaG8uIFRoZW8gbmd1b24gDQp0aW4gcmllbmcgY3VhIFRoYW5oIE5pZW4gT25saW5lLCBt b2kgdHVhbiB0cnVvYywgbW90IHZ1IGRhbmggbmhhdSB0YXAgdGhlIGRhIGRpZW4gcmEgDQpuZ2F5 IGdpdWEgYmFuIG5nYXkuIA0KDQoiVG9pIGRhbmcgZGkgYm8gdGFwIHRoZSBkdWMgZ2FuIGhvIGRh IHRoaSBiYXQgbmdvIHRoYXkgbmhpZXUgdGhhbmggbmllbiBrZW8gdG9pLCB0dSB0YXAgDQpkb25n IGxhbSwgcm9pIHR1aSBubyB4YWNoIG5oaWV1IGh1bmcga2hpLCBnYXkgZ29jIGRlIHJ1b3QgZGFu aCBuaGF1LiBUb2kgaG9hbmcgcXVhIG5lbiANCmJvIGNoYXkgdmUgbmhhIGRlbiBub2kgZHV0IGNh IGRlcCBsdW9uIiwgbW90IG5oYW4gY2h1bmcga2UgbGFpLiANCg0KVHUgZGF1IG5hbSBkZW4gbmF5 LCBsYW5nIERIIGNvIGhhbmcgY2h1YyB2dSBnYXkgcm9pIHRyYXQgdHUsIG1hIG5ndXllbiBuaGFu IGN1YSBwaGFuIA0KbG9uIHZ1IHhvIHhhdCBuaGF1IHh1YXQgcGhhdCB0dSBjYWMgcXVhbiBuaGF1 Lg0KDQpIaWVuIHRhaSwgbGFuZyBESCBjbyBoYW5nIGNodWMgcXVhbiBuaGF1IGxvbiBuaG8sIHRo YW0gY2hpIG5nYXkgdHJvbmcgYmVuIHhlIGJ1eXQgdGFtIA0KY3VhIGtodSB2dWMgbmF5IGN1bmcg Y28gbW90IHF1YW4gbmhhdSB0byBkdW5nLiANCg0KT25nIE1haSBUaGFuaCBCaW5oIC0gVHJ1b25n IHBob25nIFF1YW4gbHkgdmEgcGhhdCB0cmllbiBkbyB0aGkgREggUXVvYyBnaWEgVFAuSENNIA0K LSBseSBnaWFpOiBuaGlldSBkaWVtIGtpbmggZG9hbmggcXVhbiBhbiwgcXVhbiBuaGF1IHRyb25n IGxhbmcgdmFuIHRvbiB0YWkgbGEgZG8gdGllbiBkbyANCmdpYWkgdG9hIGRlbiBidSBjdWEgZGlh IHBodW9uZyBjb24gdHJpZW4ga2hhaSBjaGFtLiANCg0KVGhlbyBvbmcgQmluaCwgc2FwIHRvaSwg REggUXVvYyBnaWEgVFAuSENNIHNlIGRhbmggZ2FuIDIwIGhhIGRhdCBkZSB4YXkgZHVuZyBraHUg DQpkaWNoIHZ1IGNvbmcgY29uZyBkYW5oIGNobyBTViwgdm9pIGNhYyBjb25nIHRyaW5oIHRoaWV0 IHlldSBuaHUgc2lldSB0aGksIGJlbmggdmllbiwgbmhhIA0KdmFuIGhvYSwga2h1IGdpYWkgdHJp IHZ1aSBjaG9pLi4uLCBkZSBwaHVjIHZ1IG5odSBjYXUgc2luaCBob2F0IGNobyBTViBESCBRdW9j IGdpYSANClRQLkhDTS4NCg0KRGllbSAibm9uZyIgaG8gZGENCg0KVHUgbGF1LCBuZ3VvaSBkYW4g dmEgU1YgbyBsYW5nIERIIGdvaSBobyBkYSBsYSAiaG8gdHUgdGhhbiIgdmkgY28ga2hhIG5oaWV1 IHRydW9uZyBob3AgDQp0aGlldCBtYW5nIGRvIHh1b25nIGhvIHRhbSBiaSBjaHVvdCBydXQgaG9h YyBkYW8gY2hvaSB2YSBiYXQgbmdvIGJpIHRydW90IGNoYW4gdGUgeHVvbmcgDQpudW9jLg0KDQpU cnVvYyBkYXksIERIIFF1b2MgZ2lhIFRQLkhDTSBkYSB0aGlldCBsYXAgdHVvbmcgcmFvIGJhbyBx dWFuaCBobyBkZSB0cmFuaCB0aW5oIHRyYW5nIA0KU1YgdHUgdGFwLCBsYW0gIm1vaSIgY2hvIGNh YyBuaG9tIHRvaSBwaGFtLg0KDQpTb25nLCBtb3Qgc28gdmkgdHJpIGN1YSB0dW9uZyByYW8gZGEg YmkgcGhhIGRvIG5nYXkgc2F1IGRvIHZhIFNWIGN1IHZpZWMgY2hheSB4ZSBtYXkgDQp2YW8gY2hv aSB2YSBjYWMgY2FwIHRpbmggbmhhbiB0aGkgdm8gdHUgaGVuIGhvLiANCg0KT25nIE1haSBUaGFu aCBCaW5oIGNobyBiaWV0OiBUaGVvIGtlIGhvYWNoLCBESCBRdW9jIGdpYSBUUC5IQ00gc2Uga2hh biB0cnVvbmcgDQp0aGFuaCBsYXAgVHJ1bmcgdGFtIFF1YW4gbHkgdmEgcGhhdCB0cmllbiBkbyB0 aGkgREggUXVvYyBnaWEgVFAuSENNLCB0cm9uZyBkbyBjbyB0byANCmFuIG5pbmggdHJhdCB0dS4g VG8gbmF5IHNlIHRodW9uZyB4dXllbiB0dWFuIHRyYSwgbmhhYyBuaG8gU1Yga2hvbmcgZHVvYyB4 dW9uZyBobyB0YW0uDQoNCkhpZW4gdGFpLCB0b2FuIGxhbmcgREggdmFuIGNodWEgY28gaG8gYm9p IGNobyBTVi4gU29uZywgdGhlbyBvbmcgQmluaCwgU1YgY28gdGhlIHN1IA0KZHVuZyBkaWNoIHZ1 IGhvIGJvaSBjbyB0aHUgcGhpIGN1YSB0cnVvbmcgREggVGhlIGR1YyB0aGUgdGhhbyBJSSBuYW0g byBuZ2EgYmEgRGFpIA0KQ3VvbmcuDQoNCiJUdSBkYXUgbmFtIGRlbiBuYXksIHRhaSBobyBkYSBj byBtb3QgdHJ1b25nIGhvcCB0dSB2b25nIGRvIHRhbSBobywgZ2lhbSBiYSB2dSBzbyB2b2kgDQpj dW5nIGt5IG5hbSBuZ29haS4gVHJvbmcga2hpIGRvLCBuYW4gY3VvcCB0YWkgc2FuIGNvIGh1bmcg a2hpIHRhaSBobyBkYSB4YXkgcmEgaGFpIHZ1LCANCmdpYW0gYmEgdnUgc28gdm9pIGN1bmcga3kg bmFtIG5nb2FpLiBMdWMgbHVvbmcgY29uZyBhbiB4YSBraGFpIHRoYWMgbGFtIHJvIGhhaSB2dSwg YmF0IA0KYm9uIGRvaSB0dW9uZyIsIFRydW9uZyBjb25nIGFuIHhhIERvbmcgSG9hIGNobyBiaWV0 Lg0KDQpNYWMgZHUgY29uIHNvIHR1IHZvbmcgZG8gdGFtIGhvIHRoZW8gc28gbGlldSB0b25nIGhv cCBjdWEgY29uZyBhbiB4YSBEb25nIEhvYSBjbyANCmdpYW0gbmh1bmcgZGF5IHZhbiBsYSBkaWVt ICJub25nIiBjdWEgbGFuZyBESCB2b2kgbmhpZXUgdHJ1b25nIGhvcCB0cmFuIGxvdCwgY3VvcCAN CiJub25nIiB0aGVvIGxvaSBrZSBjdWEgbmd1b2kgZGFuIHZhIFNWLiAoQ29uIHRpZXApDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyODE1NTE1 Ny5hc3B4IFRyaSBRdWFuZyAwMS8xMS8yMDEwIDg6NTIgDQoNClRQIEhDTTogTmh1bmcgdGUgbmFu IG5odWMgbmhvaSB0YWkgbGFuZyBESCAtIEJhaSAzOiBDYW4gbmhhbmggdGF5IHZhIG1hbmggdGF5 ICANCg0KKEFuaDogVG9pIHBoYW0gc2UgdGllcCB0dWMgaG9hbmggaGFuaCB0YWkgbGFuZyBESCBu ZXUgbmh1IGNodWEgY28gbmh1bmcgaGFuaCBkb25nIA0KdHJhbiBhcCBxdXlldCBsaWV0IHZhIGRv bmcgYm8gLSBBbmg6IFRyaSBRdWFuZykNCg0KKFROTykgTWFjIGR1IG5nYXkgdHUgZGF1IHRoYW5n IDEwLCBVQk5EIFRQLkhDTSBkYSBjaGkgZGFvIENvbmcgYW4gVFAgY2h1IHRyaSANCnBob2kgaG9w IHZvaSBVQk5EIFEuVGh1IER1YyB2YSBESCBRdW9jIGdpYSBUUC5IQ00sIENvbmcgYW4gdGluaCBC aW5oIER1b25nIA0KZGUgdGFuIGNvbmcgdHJhbiBhcCBib24gdG9pIHBoYW0sIHRlIG5hbiB4YSBo b2kgdGFpIGtodSB2dWMgREggUXVvYyBnaWEgVFAuSENNIChRLlRodSBEdWMpLCBzb25nIHNhdSBn YW4gMyB0dWFuIHF1YSwgbmh1bmcgYmllbiBwaGFwIHJvIHJhbmcgdmEgcXV5ZXQgbGlldCANCnZh biBjaHVhIGR1b2MgdGh1YyBoaWVuLiANCg0KKiBCYWkgMTogQ3VvcCBnaWF0IG5nYXkgY2FuZyB0 YW8gdG9uIA0KKiBCYWkgMjogQ2F1ICJkZSIgZGUgaG9uIGNhdSBjYSANCg0KVGhlbyBtb3Qgbmd1 b24gdGluIHJpZW5nIGN1YSBUaGFuaCBOaWVuIE9ubGluZSwgdHVhbiB0cnVvYyBDb25nIGFuIFEu VGh1IER1YyBkYSANCnRyaWV1IHRhcCBjYWMgbHVjIGx1b25nIGFuIG5pbmggdHJhdCB0dSwgYW4g dG9hbiBnaWFvIHRob25nIHZhIG5oaWV1IGJhbiwgbmdhbmggbGllbiBxdWFuIA0KZGUgaG9wIGJh biB2ZSB2aWVjIGNodXllbiBob2EgZGlhIGJhbiwgdHJhbiBhcCB0b2kgcGhhbSB0YWkga2h1IERI IFF1b2MgZ2lhLCBjb24gZ29pIGxhIA0KbGFuZyBESC4NCg0KKEFuaDogS2h1IHZ1YyBobyBkYSAo dGh1b2MgZGlhIHBoYW4gQmluaCBEdW9uZykgYmFvIGdpbyBtb2kgaGV0IGJpIGNvaSBsYSAiZGll bSANCm5vbmciIGNodXllbiB4YXkgcmEgdHJhbiBsb3QsIHRyb20gY3VvcD8gLSBBbmg6IFRyaSBR dWFuZykNCg0KVGluaCBkZW4gdGhvaSBkaWVtIGhpZW4gdGFpLCBjb25nIHRhYyB0cmFuIGFwIHRv aSBwaGFtLCB0YW5nIGN1b25nIGFuIG5pbmggdHJhdCB0dSB0YWkgbGFuZyANCkRIIGNoaSBkdW5n IGxhaSBvIG11YyAia2hhbyBzYXQgbGFpIiB2YSB4dWF0IGhpZW4gdmFpIGhvYXQgZG9uZyBuaG8g bGUuDQoNCk9uZyBNYWkgVGhhbmggQmluaCwgVHJ1b25nIHBob25nIHF1YW4gbHkgZG8gdGhpIHZh IGRpY2ggdnUgdGh1b2MgVHJ1bmcgdGFtIHF1YW4gbHkgDQp2YSBwaGF0IHRyaWVuIGRvIHRoaSBE SCBRdW9jIGdpYSBUUC5IQ00gbm9pOiAiQ2h1bmcgdG9pIGN1bmcgY2hpIHZ1YSB0aGFuaCBsYXAg ZG9pIHRyYXQgDQp0dSwgY2h1eWVuIHRvIGNodWMgdHVhbiB0cmEgbmhhYyBuaG8gY2FjIGJhbiBT ViBsYWkgdmFuZyBkZW4ga2h1IGhvIGRhIHRhbSBtYSB0aG9pLiBWYSANCmhpZW4gdGFpIHZhbiBw aGFpIGNobyBjYWMgY28gcXVhbiBjaHVjIG5hbmcsIGRhYyBiaWV0IGxhIGx1YyBsdW9uZyBjb25n IGFuIHRhbmcgY3VvbmcgDQpjYWMgaG9hdCBkb25nIHF1eSBtbyB2YSBkYWkgaG9pIGhvbiIuDQoN ClRyb25nIGtoaSBkbywgZG9pIENhbmggc2F0IGdpYW8gdGhvbmcgUS5UaHUgRHVjIGRhbmcgYmF0 IGRhdSBsZW4ga2UgaG9hY2ggcGhvaSBob3AgDQpjdW5nIGx1YyBsdW9uZyBDU0dUIGh1eWVuIERp IEFuIChCaW5oIER1b25nKSBkZSB0YW5nIGN1b25nIGNvbmcgdGFjIHBob25nIG5ndWEgDQpuYW4g dHUgdGFwIGR1YSB4ZSwgImRvdCIgeGUgdmEgYmlldSBkaWVuIHRvYyBkbyB0YWkga2h1IGhvIGRh ICh0aHVvYyBkaWEgcGhhbiBhcCBUYW4gTGFwLCANCnhhIERvbmcgSG9hLCBILkRpIEFuKS4gDQoN CihBbmg6IE5hbiBjdW9wIGdpYXQgeGF5IHJhIHRodW9uZyB4dXllbiB0cmVuIHR1eWVuIGR1b25n IGRhbiB2YW8ga3kgdHVjIHhhIERIIFF1b2MgDQpnaWEgVFAuSENNIC0gQW5oOiBUcmkgUXVhbmcp DQoNCk5nb2FpIHJhLCB0dXkgY29uZyBhbiB4YSBEb25nIEhvYSBtb2kgbGVuIGtlIGhvYWNoIHRo YW5oIGxhcCB0byBjaHV5ZW4gY2hvbmcgY3VvcCANCiJub25nIiB0YWkgZGlhIGJhbiBsYW5nIERI LCBzb25nIGx1YyBsdW9uZyB2YW4gY29uIGtoYSBtb25nIG5lbiBraG8gY28gdGhlIGRhdCBoaWV1 IA0KcXVhIGNhbyB0cm9uZyB2aWVjIGRhbSBiYW8gYW4gdG9hbiBjaG8gaGFuZyBjaHVjIG5nYW4g c2luaCB2aWVuIChTVikgdGFpIGtodSB2dWMgdHJlbi4gDQpEbyBsYSBjaHVhIGtlLCBnYW4gZGF5 LCBib24gY3VvcCBnaWF0IGNvIHh1IGh1b25nIGNob25nIHRyYSBuZ3VvaSB0aGkgaGFuaCBjb25n IHZ1IHJhdCANCnF1eWV0IGxpZXQgdmEgbGlldSBsaW5oLCBkZSBkb2EgdHJ1YyB0aWVwIGRvaSB2 b2kgdGluaCBtYW5nIGNvbmcgYW4gdHVhbiB0cmEuIA0KDQoiSGllbiB0YWksIGR1IGx1YyBsdW9u ZyBtb25nIG5odW5nIGNodW5nIHRvaSBjbyBnYW5nIGxhbSBtb2kgdmllYyBkZSBjbyB0aGUgaGFu IGNoZSANCmNhbmcgc29tIGNhbmcgdG90IG5hbiB0cm9tIGN1b3AgdGFpIHNhbiBTViB2YSBuZ3Vv aSBkYW4gdGFpIGxhbmcgREguIFNhcCB0b2ksIGtoaSBjbyBzdSANCnBob2kgaG9wIG1hbmggbWUg dmEgdGh1b25nIHh1eWVuIGhvbiBnaXVhIGx1YyBsdW9uZyBjb25nIGFuLCBhbiBuaW5oIGN1YSBj YSBCaW5oIA0KRHVvbmcgdmEgVFAuSENNIHRoaSBjb25nIHRhYyB0cmFuIGFwIHRvaSBwaGFtIHNl IGNvIGhpZXUgcXVhIGNhbyBob24iLCBvbmcgTmd1eWVuIA0KVmFuIEN1b25nLCBUcnVvbmcgY29u ZyBhbiB4YSBEb25nIEhvYSBub2kuDQoNCihBbmg6IFZpZWMgaGFuIGNoZSB0ZSBuYW4gbyBsYW5n IERIIGNvbiBwaHUgdGh1b2MgcmF0IG5oaWV1IHZhbyB5IHRodWMgY2FuaCBnaWFjIGN1YSANCnNp bmggdmllbiAtIEFuaDogVHJpIFF1YW5nKQ0KDQpDb24gbmhvLCB0cnVvYyBkYXkgREggUXVvYyBn aWEgVFAuSENNIHR1bmcgaG9wIGJhbiBuaGlldSBsYW4gdmUgdmllYyB0aGFuaCBsYXAgDQpuaHVu ZyBjaG90IGJhbyB2ZSwgZGFtIGJhbyBhbiBuaW5oIGNobyBTViBvIG5oaWV1IHR1eWVuIGR1b25n IHRyb25nIHBoYW0gdmkgbGFuZyANCkRILiANCg0KVHV5IG5oaWVuLCBjaG8gZGVuIG5heSwga2Ug aG9hY2ggbmF5IHZhbiBjaHVhIHBoYXQgaHV5IGhpZXUgcXVhIGNhby4NCg0KQ2hpIG1vaSBkYXkg dGhvaSwgREggUXVvYyBnaWEgVFAuSENNIGN1bmcgeGF5IGhlIHRob25nIHJhbyBxdWFuaCBraHUg dnVjIGhvIGRhIGRlIA0KaGFuIGNoZSBuYW4gU1YgdHUgdGFwIHZvIHRpbmggbGFtICJtb2kgbmdv biIgY2hvIGJvbiB0b2kgcGhhbS4gDQoNClNvbmcsIG5nYXkgc2F1IGRvLCBsdW9pIHJhbyBiaSBw aGEgdm8sIGNvbiBjYWMgZG9pIGJhbyB2ZSBjdWEgREggUXVvYyBnaWEgVFAuSENNIA0KdGh1ZSBj YW5oIGdpdSBraHUgdnVjIHRyZW4gdmFuIGN1IGRlIFNWIHRyYW4gdmFvIHRob2FpIG1haS4gDQoN ClZhIGRpIG5oaWVuIG5odW5nIHZ1IHRyYW4gbG90LCB0cm9tIHhlIG8gZGF5IHZhbiBjdSB0aWVw IHR1YyB4YXkgcmEuDQpOb2kgZ2kgdGhpIG5vaSwgdmllYyBoYW4gY2hlIHRlIG5hbiB0cm9tIGN1 b3AgbyBsYW5nIERIIGNvbiBwaHUgdGh1b2MgcmF0IG5oaWV1IHZhbyB5IA0KdGh1YyBjYW5oIGdp YWMgY3VhIFNWLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEw NDAvMjAxMDEwMDIwMDU5NTcuYXNweCAwMi8xMC8yMDEwIDE6MDAgDQoNClRQIEhDTTogU2F1IHRp biBuaGFuIGRlIGRvYSBsYS4uLiBjaGVtIHRoYXQgICAgIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDQwMjM3MTMuYXNweCAwNC8wOC8yMDEw IDI6MzcgIA0KDQpUUC5IQ006IEJhbyB2ZSBxdWFuIGNvbSBNaW5oIER1YyAgaGFuaCBodW5nIHRo dWMga2hhY2ggLSBCYW8gZG9uZyB2ZSBjaGF0IGx1b25nIHZlIHNpICANCg0KKEFuaCBjaHVwOiBR dWFuIGNvbSBNaW5oIER1YyB0cmVuIGR1b25nIFRvbiBUaGF0IFR1bmcsIFEuMSwgVFAuSENNIC0g YW5oOiBNLk4pDQoNCkNoZSBnaWF1IG5oYW4gdmllbiBzYWkgcGhhbSwgdGF1IHRhbiB0YW5nIHZh dCANCg0KVG9uZyBsYW5oIHN1IHF1YW4gSGEgTGFuIGRlIG5naGkgZGlldSB0cmEgdG9hbiBibyB2 dSB2aWVjIChuYW4gbmhhbiBsYSBWaWV0IGtpZXUgSGEgTGFuKQ0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDUwMjQzMjUuYXNweCBEYW0gSHV5 IDA1LzA4LzIwMTAgMjo0MyANCg0KVFAuSENNOiBCYW8gdmUgcXVhbiBjb20gTWluaCBEdWMgaGFu aCBodW5nIGtoYWNoIGhhbmcgLSBDYSA1IGJhbyB2ZSBxdWFuIGNvbSBNaW5oIER1YyBjaHVhIGNv IGNodW5nIGNoaSBuZ2hpZXAgdnUgIA0KICANClR1IHkgbXVhIHJvaSBkaWVuLCBkdWkgY3VpIC0g TG9uZyBsZW8gdHJvbmcga2hhdSB0dXllbiBuaGFuIHZpZW4gDQoNClRyZW4gZGlhIGJhbiBUUCBj byAyMTAgY29uZyB0eSBiYW8gdmUgKHRyb25nIGRvIGNvIDQ4IGNvbmcgdHkgY28gcGhhbiwgMTUw IGNvbmcgdHkgDQptb3QgaG9hYyBoYWkgdGhhbmggdmllbiwgMiBjb25nIHR5IGxpZW4gZG9hbmgs IDEwIGNoaSBuaGFuaCB2YW4gcGhvbmcgY3VhIGNvbmcgdHkgDQpvIGNhYyB0aW5oIHRoYW5oIGto YWMgZGF0IHRhaSBUUC5IQ00pIHZvaSBraG9hbmcgMjAuMDAwIG5oYW4gdmllbiBiYW8gdmUuIERv IGNhbiANCmx1b25nIG5oYW4gdmllbiBkb25nIGRhbyBuaHUgdmF5IG5lbiBjb25nIHRhYyB0dXll biBjaG9uIGRhdSB2YW8gY3VhIG5oaWV1IGNvbmcgdHkgDQpiYW8gdmUgcmF0IGxvbmcgbGVvLiAN Cg0KaHR0cDovL3d3dy50aGVzYWlnb250aW1lcy52bi9Ib21lL3Rob2lzdS9zdWtpZW4vMTMwOTAv IDExLzEyLzIwMDgsIDA5OjQ5IChHTVQrNykNCg0KVFAgSENNOiBDaGkgc28gbmFuZyBsdWMgY2Fu aCB0cmFuaCBjYXAgdGluaCBQQ0kgMjAwOCBjdWEgVFAgSENNIHR1dCBoYW5nDQoNCmh0dHA6Ly93 d3cuc2d0dC5jb20udm4vZGV0YWlsMjkuYXNweD9uZXdzaWQ9NTMxNDcmZmxkPUhUTUcvMjAwOS8w NjE5LzUzMTQ3IDIwLjA2LjIwMDkgMDg6MjENCg0KTW9pIG5nYXkgVFAuSENNIGJpIHRoYXQgdGhv YXQgZ2FuIDUwMC4wMDAgbTMgbnVvYyBzYWNoIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5m by9OaGFuLXZpZW4tbmdhbmgtZGllbi10aG9haS10cm9tLWNhcC1kaWVuLXRob2FpLzE0MS8zNzky MTc1LmVwaQ0KDQpUUCBIQ006IE5oYW4gdmllbiBuZ2FuaCBkaWVuIHRob2FpIHRyb20gY2FwIGRp ZW4gdGhvYWkgDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDYwNjg5NTkwOS9naWV0X25ndW9p X2NoYXRfeGFjX2xhbV8zX21hbmhfZGVfcGhpX3RhbmcuaHRtbCAyOS83LzIwMDUsIDM6MzUgUE0g KFRoZW8gRGFuIHRyaSApDQoNClRQSENNOiBHaWV0IG5ndW9pLCBjaGF0IHhhYyBsYW0gMyBtYW5o IGRlIHBoaSB0YW5nIC0gdnV0IHRoYW4gdGFpIEhvYyBNb24sIGNoYW4gbyBxdWFuIDcsIG5lbSBk YXUgeHVvbmcgc29uZyBTYWkgR29uLiANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuL2hvbWUvMjAw OTA1MjgwODMxNTUxODlwMGMxMDA1L2NoYW4tb3RvLWdpdWEtcGhvLWN1b3AtMTUtdHktZG9uZy5o dG0gVGh1IG5hbSwgMjgvNS8yMDA5LCA4OjM3KEdNVCs3KSANCiAgDQpUUCBIQ006IENoYW4gb3Rv IGdpdWEgcGhvIGN1b3AgMSw1IHR5IGRvbmcgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1Bo YXAtbHVhdC8yMDEwLzAzLzNCQTE5OUY0LyAxMy8zLzIwMTAsIDAwOjA1IEdNVCs3DQoNClRQIEhD TTogR2lhbmgga2hhY2ggZGkgeGUgb20sIG1vdCBuZ3VvaSBiaSBkYW0gY2hldCANCg0KaHR0cDov L3ZpZXRuYW1uZXQudm4vaGNtLzIwMTAwOC9HaWV0LW5ndW9pLXRpbmgtYmFuZy0yLW5oYXQtZGFv LTkzMTM4Mi8xODo1NSwgMjQvMDgvMjAxMCAoR01UKzcpIA0KDQpUUC5IQ006IEdpZXQgbmd1b2kg dGluaCBiYW5nIDIgbmhhdCBkYW8gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTAzOS8yMDEwMDkyNjE3NDg1OC5hc3B4IDI2LzA5LzIwMTAgMTc6NDggDQoNClRQ IEhDTTogTW90IHZ1IGN1b25nIHNhdCwgOCBuZ3VvaSBiaSB0aHVvbmcgDQoNCmh0dHA6Ly93d3cu bmxkLmNvbS52bi8yMDEwMDIwODA3NDU5ODhQMEMxMDE5L3RwaGNtLXRoZW0tdnUtZ2lldC1uZ3Vv aS1jaGF0LXhhYy10aGFuaC1uaGlldS1waGFuLmh0bSBUaHUgaGFpLCAwOC8wMi8yMDEwIHwgMTk6 NTdHTVQrNw0KDQpUUEhDTTogVGhlbSB2dSBnaWV0IG5ndW9pIGNoYXQgeGFjIHRoYW5oIG5oaWV1 IHBoYW4gKGNoYXQgY3UgYmEgbGFtIDggbWFuaCkgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52 bi94YWhvaS9waGFwbHVhdC8yMDA5MTIvQ2hlLWJpZW4tbWEtdHV5LWdpdWEtdGhhbmgtcGhvLTg4 MzMzMC8gQ2FwIG5oYXQgbHVjIDE3OjM0LCAwOS8xMi8yMDA5IChHTVQrNykNCg0KQ2hlIGJpZW4g bWEgdHV5IGdpdWEgVFAuSENNIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9Q YWdlcy8yMDEwMzIvMjAxMDA4MDQxODQwNTguYXNweCAwNC8wOC8yMDEwIDE4OjQwIA0KDQpUUC5I Q00gZG9pIG1hdCB2b2kgbmhpZXUgbG9haSBiZW5oICAgDQoNClNvIGNhIHNvdCB4dWF0IGh1eWV0 IHRyb25nIHRoYW5nIDcgZGEgdGFuZyBnYXAgZG9pIHNvIHZvaSB0aGFuZyB0cnVvYy4gQmVuaCB0 YXkgY2hhbiANCm1pZW5nIGNvIGdpYW0gbmhlIG5odW5nIHNvIGNhIGJlbmggdmFuIG8gbXVjIGNh by4gQmVuIGNhbmggZG8sIGN1bSBBL0gxTjEgZGEgcXVheSANCnRybyBsYWkuIFRQLkhDTSBkYW5n IGRvaSBtYXQgdm9pIG5oaWV1IGxvYWkgYmVuaCBkYW5nIGNvIG5ndXkgY28gbGFuIHJvbmcgdHJv bmcgbXVhIG11YSBuYXkuICAgDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9YYS1o b2ktZGVuLWxhbS1sb2FuLW8tQlYtRGEta2hvYS1raHUtdnVjLVRodS1EdWMvMjAxMDEvMTY5NjIz Lmxhb2RvbmcgODoyNCBBTSwgMDcvMDEvMjAxMA0KDQpUUCBIQ00gIlhhIGhvaSBkZW4iIGxhbSBs b2FuIG8gQlYgRGEga2hvYSBraHUgdnVjIFRodSBEdWMgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA1My8yMDEwMTIyNzAxNTAwMy5hc3B4IFRoYW5oIFR1bmcg LSBCYW8gVGhpZW4gMjcvMTIvMjAxMCAxOjUwIA0KDQpUUCBIQ006ICJDbyIgYmVuaCB2aWVuIGxv bmcgaGFuaCAgDQogIA0KKEFuaDogIkNvIiBkdWEgbmd1b2kgYmVuaCBkZW4gQlYzMjEgLSBBbmg6 IEhvYWkgTmFtKSANCg0KQmFvIGNoaSBkYSByYXQgbmhpZXUgbGFuIHBoYW4gYW5oIG5odW5nIHRp bmggdHJhbmcgImNvIiBsb2kga2VvLCBiYXQgY2hldCBuZ3VvaSBiZW5oIHZhbiANCmRpZW4gcmEg Y29uZyBraGFpIHRydW9jIG5oaWV1IGJlbmggdmllbiwgdGhhbSBjaGkgbmdheSBjYW5nIGxvbmcg aGFuaC4gDQoNCkJlbmggdmllbiBjdWEgImNvIg0KDQpOaGlldSBiYW4gZG9jIHBoYW4gYW5oIHRo b2kgZ2lhbiBnYW4gZGF5IGtoaSBkZW4ga2hhbSBiZW5oIHRhaSBCViBUdSBEdSwgVFAuSENNIA0K dGh1b25nIGJpIG1vdCBzbyAiY28iIGNoZW8ga2VvLCBkdSBkbyByYSBtb3QgQlYgY28gdGVuIG5n aGUgcmF0IGxhOiBCVjMyMS4NCg0KVHJvbmcgdmFpIG5ndW9pIGJlbmggZGVuIGtoYW0gdGFpIEJW IFR1IER1LCBraGkgY2h1bmcgdG9pIHZ1YSBkZW4gZ2FuIGNvbmcgdGhpICJjbyIgDQp0ZW4gVC4g bmhhbyB0b2kuIEJpZXQgY2h1bmcgdG9pIGNvIG5odSBjYXUgImRpZXUgaG9hIGtpbmggbmd1eWV0 IiwgVC4gbm9pIG5nYXk6ICJUdSBEdSANCmdpbyBoZXQgc28gdGh1IHR1IHJvaSwgdGhlbyBjaHVu ZyB0b2kgc2FuZyBCVjMyMSBnaWFpIHF1eWV0IGNobyBuaGFuaCIuIE1vdCAiY28iIG51IGRvaSAN Cm5vbiBsYSwgZGVvIGtoYXUgdHJhbmcgY2hlIGtpbiBtYXQgY3VuZyB0cm8gZGVuIHRpZXAgdGhp IHRoZW0gdmUgQlYzMjE6ICJEdW5nIGRvLCBxdWEgDQpCVjMyMSBkaSEgVHUgRHUgZ2lvIGtob25n IGNvbiBuaGFuIGJlbmggbnVhIGRhdSwgcmEgMzIxIGxhbSBuaGFuaCByb2kgdmUiLg0KDQpRdWEg bmhpZXUgbmdheSB0aHVjIHRlIHRhaSBkYXksIGNodW5nIHRvaSB0aGF5IGhhdSBoZXQgImNvIiBk ZXUgZHUgbmd1b2kgYmVuaCByYSBCVjMyMS4gDQpUcmVuIGR1b25nIGNobyBjaHVuZyB0b2kgZGVu IEJWMzIxLCBULiBjb24ga2hvZSBkYSBkdWEgcmF0IG5oaWV1IGNvIGdhaSBkZW4gQlYzMjEgDQpn aWFpIHF1eWV0IGNodXllbiBiYXUgYmkuDQoNCkJWMzIxIGxhIG1vdCBwaG9uZyBraGFtLCBiZSBu Z2FuZyBkbyA0IG1ldCAobmFtIHRyZW4gZHVvbmcgQ2FjaCBNYW5nIFRoYW5nIDgsIA0KUC4xMiwg US4xMCkuIFBoYW4gbG9uIGNhYyAiY28iIGxvaSBrZW8gbmd1b2kgYmVuaCwgbmhhdCBsYSBuaHVu ZyBjbyBnYWkgdHJvdCBsbyBkYWkgdHJvbmcgDQpjaHV5ZW4geWV1IGR1b25nIGRlbiBkYXkgZGUg Z2lhaSBxdXlldCBoYXUgcXVhLiAiQ28iIGN1bmcgcmF0IHJhbmggdmUgZ2lhIGNhIGNhYyANCmRp Y2ggdnUgbyBCVjMyMSwgbmh1IHBoYSB0aGFpIGNvbiBuaG8gdGhpIHR1IDcwMCBuZ2FuIGRvbmcg ZGVuIGR1b2kgMSB0cmlldSBkb25nOyBsb24gaG9uIA0KdGhpIHR1eSB0aGVvIHRob2EgdGh1YW4g Z2l1YSBiYWMgc2kgdmEgYmVuaCBuaGFuIHZhICJjbyBuYW8gY3VuZyBnaWFpIHF1eWV0IGR1b2Mi ISANCg0KQlYzMjEgbGEgY3VhIGFpPw0KDQpEZSBuZ3VvaSBiZW5oIHRpbiwgbmdvYWkgdmllYyB0 dSBkYXQgcmEgIkJWIHNhbiBwaHUga2hvYSAzMjEiLCBjYWMgImNvIiBjb24gIm5vIiBCViANCm5h eSBkbyBiYWMgc2kgVHJ1b25nIGtob2EgS2UgaG9hY2ggaG9hIGdpYSBkaW5oIEJWIFR1IER1IGRh bSB0cmFjaCAoPyEpLiBHYXAgY2h1bmcgDQp0b2ksIGJhYyBzaSBEdW9uZyBQaHVvbmcgTWFpLCBU cnVvbmcga2hvYSBLZSBob2FjaCBob2EgZ2lhIGRpbmggY3VhIEJWIFR1IER1LCByYXQgDQpuZ2Fj IG5oaWVuLCBuaGF0IGxhIGtoaSBuZ2hlIGNhaSB0ZW4gQlYzMjEuICJUb2kgbGFtIFRydW9uZyBr aG9hIEtlIGhvYWNoIGhvYSBnaWEgDQpkaW5oIGRhIDEwIG5hbSBuYXkgdmEgdG9pIGtob25nIGNv IHBob25nIGtoYW0gbmdvYWkgZ2lvIG5hbyB0cmVuIGR1b25nIENhY2ggTWFuZyANClRoYW5nIDgg Y2EuIENoYWMgY2hhbiBhaSBkbyBkYSBjbyB0aW5oIG5vaS4uLiBkb2MgbmhhbSBsdWEgZ2F0IGJl bmggbmhhbiIsIGJhYyBzaSBNYWkgbm9pLiANCg0KQmFjIHNpIE5ndXllbiBWYW4gTmd1eWVuLCBQ aG8gcGhvbmcgWSB0ZSBRLjEwLCBjdW5nIHhhYyBuaGFuOiAiUGhvbmcga2hhbSAzMjEgbGEgDQpk byBtb3QgYmFjIHNpIHRlbiBEaWVtIGR1bmcgdGVuLiBCYWMgc2kgbmF5IGtob25nIHBoYWkgbGEg YmFjIHNpIFRydW9uZyBraG9hIEtlIGhvYWNoIA0KaG9hIGdpYSBkaW5oIEJWIFR1IER1LCBtYSBk YSBsb24gdHVvaSwgbmdoaSBodXUgdHUgbGF1Ii4gDQoNCkRlbiB0YW4gbmhhIGRvaSB0aWVuDQoN CkNoaSBOZ3V5ZW4gVGhpIEguLCBuaGEgbyBkdW9uZyBIb2FuZyBIb2EgVGhhbSwgUS5UYW4gQmlu aCAoVFAuSENNKSBkZW4gQlYgRGFpIA0KaG9jIFkgRHVvYyBraGFtIGJlbmguIEtoaSB2dWEgdG9p IGNvbmcsIGNoaSBkdW9jIG1vdCAiY28iIHRpZXAgdGhpOiAiQlYgZ2lvIGRvbmcgbGFtLCANCm5l dSBraG9uZyBjbyBuZ3VvaSBkYW4gdmFvIHRoaSByYXQga2hvIGtoYW0gZHVvYyIuIE5nYXkgc2F1 IGRvLCBtb3QgImNvIiB4dW5nIHRlbiANCkhvLCBjaGF5IHhlIG9tIHRydW9jIGNvbmcgQlYgcmEg dGF5ICJuZ2hpYSBoaWVwIiBnaXVwIGNoaSBILiBIbyBub2kgY28gaGFpIHN1IGx1YSANCmNob24s ICBtdW9uIGtoYW0gbmhhbmggdmEgY2hpbmggeGFjIHRoaSBkYW4gcmEgcGhvbmcga2hhbSB0dTsg Y29uIGtob25nIHRoaSBkYW4gdmFvIA0KQlYuIENoaSBILiBjaG9uIGtoYW0gbyBCViB2YSBkdW9j ICJjbyIgSG8gZHVhIGRpIGJvYyBzbyAidXUgdGllbiIsIGRhbiBkaSBraGFtLiBDdSANCm5nbyAi Y28iIEhvIGxhIG5ndW9pIG5oaWV0IHRpbmgsIGNvIHRpbmggdGh1b25nIG5ndW9pLCBuaHVuZyBr aGkgY2hpIEguIGtoYW0gYmVuaCB4b25nIA0KdGhpIGJpIEhvIGRvaSA3MDAgbmdhbiBkb25nLiBE byBraG9uZyBkdSB0aWVuIG5lbiBjaGkgSC4ga2hvbmcgZHVhIHRpZW4uIFNhdSBtb3QgaG9pIA0K bG9pIHF1YSB0aWVuZyBsYWksIGNoaSBILiBibyB2ZS4gU2FuZyBob20gc2F1LCBraGkgY2hpIHZ1 YSBtbyBjdWEgZGEgdGhheSAiY28iIEhvIG5nb2kgDQpkb2kuIEJpICJjbyIgSG8gZG9hIG5lbiBj aGkgSC4gZGFuaCBwaGFpIHRyYSA3MDAgbmdhbiBkb25nLg0KDQpMYW4gbmFvICJjbyIgZHVhIGNo dW5nIHRvaSBkZW4gQlYzMjEsIGNvIG5oYW4gdmllbiB0aWVwIG5oYW4gY3VuZyBob2k6ICJBaSBn aW9pIHRoaWV1IA0KZGVuIGRheT8iIHZhIGNoaSBzYXUga2hpIGNodW5nIHRvaSBjaGkgImNvIiBk dWEgdG9pIHRoaSBjbyBuYXkgbW9pIHRvIHZlIHRpbiB0dW9uZywgaG9pIA0KdmFvIGNvbmcgdmll Yy4gVGFpIGRheSwgY2h1bmcgdG9pIGdhcCByYXQgbmhpZXUgY28gZ2FpIGNvbiByYXQgdHJlIG5n b2kgY2hvIGRlbiBsdW90IGtoYW0gDQpkZSAiZ2lhaSBxdXlldCIsIGNvIG5hbyBjdW5nIGNvIHVv bmcgbnVvYyB0aGF0IG5oaWV1IGNobyB2YW8gc2lldSBhbSBidW5nLiBDbyBuaHVuZyBjbyANCmdh aSBjaGkgZG8gMTYsIDE3IHR1b2kgZHVvYyBuaHVuZyBuZ3VvaSBkYW4gb25nIHRydW5nIG5pZW4g ZHVhIGRlbiwgdHJvbmcgZGFuZyBkaWV1IA0Ka2hvbmcgcGhhaSBjaGEgZHVhIGNvbiBkaSBraGFt IGJlbmguIENodW5nIHRvaSBkb25nIDcwLjAwMCBkb25nIHZhIGR1b2MgZHVhIHZhbyBiZW4gDQp0 cm9uZyBkZSBtb3QgbmFtIGJhYyBzaSBsb24gdHVvaSBsYW0gc2lldSBhbS4gQ28gdGluaCBob2kg eGVtIGJhYyBzaSBkYW5nIGxhbSB2aWVjIG8gDQpkYXUsIG5odW5nIHZpIGJhYyBzaSBsdW9uIG5l LCBraG9uZyB0cmEgbG9pIGNodW5nIHRvaS4NCg0KVHJ1YyBsb2kNCg0KIkNvIiBvIEJWIERhIGxp ZXUgY28gZGFjIGRpZW0gbGEgbW9pIGtoaSBkdWEgYmVuaCBuaGFuIGRlbiB0aGkgZHVuZyBkb2kg bmd1b2kgY3VhIA0KcGhvbmcgbWFjaCByYSBkaWVtIG1hdCByb2kgbW9pICJiYXkiIGRpISBQaG9u ZyBtYWNoIGN1YSBiYWMgc2kgTS5OIGRvaSBkaWVuIEJWIERhIA0KbGlldSBsYSBub2kgImNvIiBk dWEgYmVuaCB2YW8gbmhpZXUgbmhhdC4gIkNvIiBjdSBkdW5nIG8gbmdhIGJhIHRydW9jIGNvbmcg QlYsIGxpZW4gdHVjIA0KaG86ICJLaGFtIGRhIGxpZXUgcXVlbyBkem8sIHF1ZW8gZHpvIiwgdGF5 IGNoaSB2ZSBodW9uZyBwaG9uZyBtYWNoIGJhYyBzaSBNLk4uIE5oaWV1IA0Kbmd1b2kga2hvbmcg YmlldCwgY3UgdGhlIHJlIHZhby4gQ28gbmd1b2kga2hpIHZhbyB0aGF5IEJWIGdpIG1hIGJlIHRp LCBiaWV0IGJpIGx1YSBiZW4gDQpxdWF5IGRhdSB4ZSB0aGkgImNvIiBhbyB0b2kgZ2l1IGxhaSBo dTogIkJlbmggdmllbiBnaW8gbmF5IGtob25nIGNvbiBuaGFuIGJlbmgsIHJhIGRheSANCmtoYW0g Y2hvIG5oYW5oLCBjdW5nIGxhIGJhYyBzaSB0cm9uZyBkbyByYSIuIE5oaWV1IG5ndW9pIGNhIHRp biwgbGFpIHF1YXkgdmFvIGxheSBzbyANCmtoYW0gYmVuaC4NCg0KU2F1IGtoaSB0cmEgMzAgbmdh biBkb25nIHRpZW4ga2hhbSB2YSB0dSBjaG9pIG11YSB0aHVvYyB0YWkgcGhvbmcgbWFjaCBiYWMg c2kgTS5OLCANCmJ1b2MgcmEgbmdvYWkgY2h1bmcgdG9pIGR1b2MgbW90ICJjbyIga2hhYywgbWFj IGFvIHRodW4geGFuaCBoYXQgaGFtOiAiQmEgZG8gcGhhbiANCmxhbmcgYmFtIGxhbSEgRGkgdGhl byB0dWksIGRhbSBiYW8gZHVuZyBiZW5oIi4gQ2h1bmcgdG9pIHRoZW8gImNvIiBuYXkgZGVuIG5v aSAiZGFtIA0KYmFvIGR1bmcgYmVuaCIuIFRyZW4gZHVvbmcgZHVhIGNodW5nIHRvaSBkaSwgImNv IiBubyB0dW5nIGJ1bmcgdmUgaGFpIHBob25nIG1hY2g6IA0KbW90IHRyZW4gZHVvbmcgTmd1eWVu IFRob25nIChnYW4gZ29jIERpZW4gQmllbiBQaHUpIHZhIG1vdCBvIGR1b25nIEJhIEh1eWVuIA0K VGhhbmggUXVhbiAiY28gZ2lheSBkYW0gYmFvIGhldCBiZW5oIGx1b24iLiBUaGUgbmh1bmcsIGto aSBkZW4gcGhvbmcgbWFjaCBkdW9uZyANCk5ndXllbiBUaG9uZyBraGFtLCBjaHVuZyB0b2kga2hv bmcgaGUgbmdoZSBiYWMgc2kgbm9pIHZlIGdpYXkgZGFtIGJhby4gVHUgY2hvaSBtdWEgDQp0aHVv YyBob24gMjAwIG5nYW4gZG9uZywgY2h1bmcgdG9pIGNoaSB0cmEgMzAgbmdhbiB0aWVuIGtoYW0g dmEgcmEga2hvaSBwaG9uZyBtYWNoIG5heSANCnRyb25nIGFuaCBtYXQga2hvbmcgbWF5IHRoaWVu IGNhbSBjdWEgY2FjIG5oYW4gdmllbi4NCg0KVHJ1b2MgY3VhIEJWIFVuZyBidW91IChkdW9uZyBO byBUcmFuZyBMb25nLCBRLkJpbmggVGhhbmgpIGN1bmcgbHVvbiBiYXQgbmhhbyBib2kgDQp0aW5o IHRyYW5nICJjbyIgaG9hdCBkb25nLiBOZ2hlIGNodW5nIHRvaSBtdW9uIGtoYW0gYmVuaCBuaGFu aCwgImNvIiBkdWEgcmEgMiBjYWNoOiANCmR1YSB2YW8gQlYgZ3VpIG5oYW4gdmllbiBsYW0gbmhh bmggaG9hYyBkYW4gcmEgZGF5IHBob25nIGtoYW0gdHUgcGhpYSBkdW9uZyANCk5ndXllbiBIdXkg THVvbmcgKGRvaSBkaWVuKS4gQ29uZyB0cm9uIGdvaSBjaG8gImNvIiB0dSAzMDAgLSA0MDAgbmdh biBkb25nLiBOZ29haSANCm1vdCBzbyB4ZSBvbSBtYWMgYW8geGFuaCBsbyBraWVtIGxhbSAiY28i LCBub2kgZGF5IGx1b24gY28gbW90ICJjbyIgbWFjIGFvIHRodW4gDQpraG9hYyBhbyBuZ29haSwg ZG9pIG5vbiBrZXQsIG5nb2FpIDMwIHR1b2kgdHVjIHRydWMuIEhvbSBjaHVuZyB0b2kgZGVuLCBt b3QgImNvIiBhbyB4YW5oIA0KZG8gNTAgdHVvaSBodWEgZGFuIHF1YSBwaG9uZyBraGFtIGJlbiBr aWEgZHVvbmcgbGFtIHNpZXUgYW0sIHJvaSAiY28iIGRlbSBrZXQgcXVhIHF1YSANCkJWIGNobyBu aGFuIHZpZW4gZHVhIHRydWMgdGllcCBiYWMgc2kgdHJ1b25nIGtob2EgY3VhIEJWIGRvYywgdGll biBjb25nICJjbyIgMzAwIG5nYW4gDQpkb25nLiBDb24gImNvIiBILiwgImNvIiBRLiB0aGkgZHUg ZHVhIGNodW5nIHRvaSB2YW8gQlYgbGFtIG5oYW5oIHRyb24gZ29pLCBsYXkgY29uZyANCjQwMCBu Z2FuIGRvbmcuDQoNCiBDaHVuZyB0b2kgZG9uZyB5IHRoZW8gImNvIiBILiBxdWEgcGhvbmcga2hh bSBzbyA0OEIgTmd1eWVuIEh1eSBMdW9uZy4gSC4gY2hvIGJpZXQ6IA0KIkRheSBsYSBwaG9uZyBr aGFtIGN1YSBiYWMgc2kgQlYgVW5nIGJ1b3UsIGtoYW0gbyBkYXkgbG9pIGxhbSwgbmV1IGNvIGJl bmggbmFuZywgDQpiYWMgc2kgc2UgZGFuIGRpIGxhbSBsdW9uLCBraG9pIGJvYyBzbyIuIEx1YyBu YXksIHRyb25nIHBob25nIGtoYW0gY28gZ2FuIDIwIGJlbmggbmhhbiANCm5nb2kgY2hvLiBIYWkg cGh1IG51IG8gVFAuSENNIGNobyBiaWV0IGhvIGRlbiB0dSBzYW5nIHNvbSwgZGEgYm9jIGR1b2Mg c28gbmh1bmcgZGVuIA0Ka2hhdSBzaWV1IGFtIHRoaSBiYWMgc2kgZ2lvaSB0aGlldSByYSBkYXkg bGFtIGNobyBuaGFuaCwgcm9pIGRlbSBrZXQgcXVhIHZhby4gTW90IGxhdCBzYXUsIA0KImNvIiBI LiBsYWkgZGFuIHRoZW0gaGFpIHBodSBudSB2YW8gcGhvbmcga2hhbSB2YSBraG9uZyBxdWVuICJi YW8gY2FvIiB2b2kgbmhhbiB2aWVuIA0KbmdvaSBvIGJhbiBuaGFuIGJlbmg6ICJUb2kgZHVhIGhh aSBuZ3VvaSBuYXkgdmFvIi4NCg0KVGhlbyB0aW0gaGlldSBjdWEgY2h1bmcgdG9pLCBuZ29haSB0 aWVuICJjbyIgY2hhdCBjaGVtIGN1YSBuZ3VvaSBiZW5oIGdvaSBsYSB0aWVuIGNvbmcgDQpkYW4g ZGksIGdpb2kgdGhpZXUgbGFtIG5oYW5oLCBjYWMgY28gY29uIGFuIGhvYSBob25nIHRyZW4gdGll biBraGFtIGN1YSBuZ3VvaSBiZW5oIGdpb2kgDQp0aGlldSBkdW9jLiBWaSB0aGUsIGtoaSBkYW4g dmFvIHBob25nIGtoYW0gbmFvLCBjbyBjdW5nIGNobyB4YWMgbmhhbiBjdWEgbmhhbiB2aWVuIA0K cGhvbmcga2hhbSByb2kgbW9pICJiYXkiIGRpIGtpZW0gIm1vaSIga2hhYy4NCg0KQm8gdGF5PyAN Cg0KVGh1YyB0cmFuZyAiY28iIGR1IGRvLCBsdWEgZ2F0IG5ndW9pIGJlbmgsIGRlbiAiY28iIG1v YyBub2kgdm9pIG5oYW4gdmllbiB5IHRlLCBiYWMgc2kgZGUgDQp0cnVjIGxvaSBkYSBkdW9jIGR1 IGx1YW4gcGhhbiBhbmggcmF0IG5oaWV1LiBHYW4gbmhhdCBsYSBCYW8gVGhhbmggTmllbiBwaGFu IGFuaCBtb3QgZS0NCmtpcCAiY28iIG1vYyB0cm9uZywgbW9jIG5nb2FpIGNvIGxpZW4gcXVhbiBk ZW4gbW90IGJhYyBzaSB2YSBuaGFuIHZpZW4gY3VhIEJWIFVuZyANCmJ1b3UsIG5nYXkgc2F1IGRv IGxhbmggZGFvIEJWIGRhIGNobyBjaHV5ZW4gY29uZyB0YWMgZG9pIHZvaSBiYWMgc2kgc2FpIHBo YW0uIFRoZSANCm5odW5nLCB0aW5oIHRyYW5nICJjbyIgdmFuIG5nYXkgY2FuZyBiYXQgbmhhbywg bG9uZyBoYW5oIG5odSBjaHVuZyB0b2kgZ2hpIG5oYW4gZHVvYy4NCg0KICJUcnVvYyBkYXkgY28g bW90IHNvIGJhYyBzaSwgbmhhbiB2aWVuIEJWIG1vYyBub2kgZHVhIGJlbmggbmhhbiByYSBuZ29h aSwgY2h1bmcgdG9pIA0KbGllbiB0dWMgbmhhYyBuaG8gdHJ1b2MgdG9hbiBCViBuZW4gdGluaCB0 cmFuZyBuYXkgbmF5IGRhIGdpYW0uIENvbiBjaHV5ZW4gImNvIiBiYXQgDQpuaGFvIHBoaWEgdHJ1 b2MsIGJlbiBuZ29haSBiZW5oIHZpZW4gdmFuIHRvbiB0YWksIGxvaSBrZW8gbmd1b2kgYmVuaCB0 aGkgY2h1bmcgdG9pIHJhdCBidWMgDQp4dWMuIERvICJjbyIgZHVuZyBiZW4gbmdvYWkgbmVuIGNo dW5nIHRvaSBraG9uZyB0aGUgZ2lhaSBxdXlldCBkdW9jLiBDaHVuZyB0b2kgZGEgDQpuaGlldSBs YW4gbmhvIGRlbiBjb25nIGFuIGRpYSBwaHVvbmcsIG5odW5nIGhpZW4gdmFuIHZheSwgY28gbGUg Y2h1bmcgdG9pIHBoYWkgbmhvIHN1IA0KZ2l1cCBkbyBjdWEgY29uZyBhbiBUUCIsIGJhYyBzaSBM ZSBIb2FuZyBNaW5oLCBHaWFtIGRvYyBCViBVbmcgYnVvdSwgYnVjIHh1Yy4NCg0KVHVvbmcgdHUs IGJhYyBzaSBWdSBIb25nIFRoYWksIEdpYW0gZG9jIEJWIERhIGxpZXUsIGN1bmcgbmhpbiBuaGFu ICJibyB0YXkiIHRydW9jIA0KdGluaCB0cmFuZyBjbyBob2F0IGRvbmcgYmF0IG5oYW8gYmVuIG5n b2FpIGNvbmcuIFRoZW8gYmFjIHNpIFRoYWksIGNoaSBjbyBjb25nIGFuIG1vaSBjbyANCnRoZSBn aWFpIHF1eWV0IGR1b2MgbmFuICJjbyIgYmVuIG5nb2FpIEJWLCB2aSBuZ29haSBraHVvbiB2aWVu IEJWIHRoaSBiYW8gdmUgQlYga2hvbmcgDQpjbyBxdXllbiwgdGhhbSBjaGkgY2FuIHRoaWVwIGNv biBiaSAiY28iIGhhbSBkb2EuICJDaHVuZyB0b2kgY2hpIGNvbiBjYWNoIGtodXllbiBuZ3VvaSAN CmJlbmggY2hvIG5naGUgdGhlbyBsb2kgImNvIiBtYSB0aWVuIG1hdCB0YXQgbWFuZyIsIGJhYyBz aSBUaGFpIG5vaS4gDQoNCihBbmg6IEJWMzIxLCBub2kgImNvIiB0YXAgdHJ1bmcgZHVhIG5ndW9p IGJlbmggZGVuIGdpYWkgcXV5ZXQgY2h1eWVuICJ0cm90IGRhaSIpIA0KKEFuaDogIkNvIiBtYWMg YW8ga2hvYWMgZGVuLCBkb2kgbm9uIGtldCBsdW9uIHR1YyB0cnVjIG8gQlYgVW5nIGJ1b3UpDQoo QW5oOiAiQ28iIGFvIHRodW4geGFuaCwgbm9uIGtldCBkdW5nIHRydW9jIGNvbmcgQlYgRGEgbGll dSBkdSBuZ3VvaSBiZW5oIHJhIHBob25nIG1hY2gpIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vTmV3cy9QYWdlcy8yMDEwNTMvMjAxMDEyMjgwMDU3MDcuYXNweCBNLlQgVGhhbmggVHVu ZyAyOC8xMi8yMDEwIDA6NTcgDQoNClRQIEhDTTogIkNvIiBiZW5oIHZpZW4gbG9uZyBoYW5oIC0g QmFpIDI6IENvIHF1YW4gY2h1YyBuYW5nIGtob25nIHRoZSBub2kgImJvIHRheSIhICANCiAgDQoo QW5oOiBDbyBob2F0IGRvbmcgY29uZyBraGFpIHRydW9jIEJlbmggdmllbiBEYSBsaWV1IC0gQW5o OiBILk5hbSkgDQoNCk5oaWV1IG5ndW9pIGNobyByYW5nLCBjbyBxdWFuIGNodWMgbmFuZyBraG9u ZyB0aGUgbm9pICJibyB0YXkiIHRydW9jIG5hbiAiY28iIGxvbmcgDQpoYW5oIG8gYmVuaCB2aWVu IChCViksIGtob25nIHRoZSBkZSBuZ3VvaSBiZW5oIGJpICJjbyIgYmF0IGNoZXQsIGx1YSBnYXQg bWFpIG5odSB0aGUuIA0KDQpUcnVuZyB0YW0gQ2hhbiBkb2FuIHkga2hvYSBIb2EgSGFvIC0gTWVk aWMgKFRQLkhDTSkgbGEgbm9pIGNvIHJhdCBkb25nIG5ndW9pIGJlbmggDQp0dSBjYWMgdGluaCBk byB2ZSBuZW4gdHUgbGF1IGN1bmcgZGEgeHVhdCBoaWVuIHJhdCBkYSBkYW5nIGNhYyBsb2FpICJj byIgYmVuaCB2aWVuLiAiQ28iIA0KcnUgcmUgYmVuaCBuaGFuIGRhbiBkaSBraGFtLCBjaHVwIGNo aWV1LiBLaGkga2hhbSB4b25nLCAiY28iIGdpdSBsdW9uIHRvYSB0aHVvYyBjdWEgDQpuZ3VvaSBi ZW5oIHJvaSBidW9jIGhvIHJhIGhpZXUgdGh1b2MgbWEgImNvIiBhbiBjaGlhIG8gZ2FuIE1lZGlj IGRlIG11YSB0aHVvYzsgImNvIiANCmR1IGRvIG5ndW9pIGJlbmggZGVuIGtoYW0gdGFpIE1lZGlj IGRlIGRhbiByYSBjYWMgY28gc28ga2hhbSBiZW5oLCBob2FjIGJhbiB0aHVvYyANCmJlbiBuZ29h aSBjbyBsYW0gYW4gdm9pICJjbyI7ICJjbyIgbHVhIG5ndW9pIGJlbmgsIG5vaSBiYWMgc2kgaG9t IG5heSByYSB0cnVjLCBkYW4gbmd1b2kgDQpiZW5oIHJhIG5nb2FpIG5oYSBiYWMgc2kga2hhbSBj aG8gbmhhbmg7ICJjbyIgYmF0IHRheSB2b2kgbW90IHNvIGJhYyBzaSBvIGNhYyBuaGEgdGh1b2Mg DQpiZW4gbmdvYWk7IHRoYW0gY2hpIGNvICJjbyIgZG9uZyB2YWkgYmFjIHNpIGdpYSBkZSBsdWEg Z2F0IGJlbmggbmhhbiIsIGJhYyBzaSBQaGFuIFRoYW5oIA0KSGFpLCBHaWFtIGRvYyBUcnVuZyB0 YW0gTWVkaWMgY2FuaCBiYW8gbmd1b2kgYmVuaCB2ZSBuaHVuZyBkYW5nICJjbyIgdGFpIGRheSBu aHUgdmF5Lg0KDQpMdWEgZ2F0IGJlbmggbmhhbiB0cmFuZyB0cm9uDQoNCiJDbyIgY3VuZyBraG9u ZyBjaGkgbGEgaGllbiB0dW9uZyByaWVuZyB0YWkgY2FjIEJWIG8gVFAuSENNLiBBbmggTmd1eWVu IFZhbiBBbiANCmR1YSB2byBsYSBMZSBUaGkgUGh1b25nIChjYSAyIGN1bmcgbmd1IHRoaSB0cmFu IEJheSBOZ2FuLCBILkNoYXUgVGhhbmggQSwgdGluaCBIYXUgDQpHaWFuZykgZGVuIEJlbmggdmll biBEYSBraG9hIFRydW5nIHVvbmcgVFAgQ2FuIFRobyBkZSBraGFtIGJlbmggdSB4byB0dSBjdW5n LiANClRyb25nIGx1YyBuZ29pIGNobyB4ZXQgbmdoaWVtIG1hdSB0aGkgY28gbW90ICJjbyIgbnUg ZGVuIGxhbSBxdWVuIHZhIGhvaSB0aGFtIGJlbmggDQp0aW5oIGN1YSBjaGkgUGh1b25nLiBCaWV0 IGNoaSBQaHVvbmcgZGFuZyBtYWMgcGhhaSBiZW5oIHUgeG8gdHUgY3VuZywgImNvIiBuYXkgcGhh bjogDQoiQmVuaCBuYXkgbWEgbW8gbGFtIGdpLCBuZXUgdm8gQlYgbW8gbGEgc2F1IGRvIHNlIGJp IHRhbSB0aGFuIHZhIHNlIGJpIGNob25nIGJvLCBkZSANCnRvaSBnaW9pIHRoaWV1IGNobyBiYWMg c2kgVHIuIGxhIHZvIGN1YSBvbmcgYmFjIHNpIHZ1YSBraGFtIGNobyBjaGksIHZhIGNoaSBjYW4g Y2hpY2ggdGh1b2MgDQptb3QgbGFuIGxhIGhldCBuZ2F5Ii4gDQogDQooQW5oOiBUaHVvYyBjdWEg YmFjIHNpICJkb20iIHRodSBnaXUgZHVvYyAtIEFuaDogTWFpIFRyYW0pDQoNCkRvIG8gbm9uZyB0 aG9uIG1vaSBsZW4gVFAgQ2FuIFRobyBraGFtIGJlbmggbGFuIGRhdSwgbmVuIGNoaSBQaHVvbmcg dmEgY2hvbmcgbmdoZSANCnRoZW8gbG9pICJjbyIsIGxlbiB4ZSBtbyB0byBjaG8gImNvIiBuYW0g a2hhYyBjaG8gZGVuIG1vdCBjYW4gbmhhIHRyb25nIG1vdCBjb24gaGVtIA0Kc2F1IGdhbiBCViBu YXkuIFNhdSBraGkgdmFvIGNhbiBuaGEgdHJlbiwgY2hpIFBodW9uZyBkdW9jIG1vdCBwaHUgbnUg dHUgeHVuZyBsYSBiYWMgDQpzaSwgcm9pIGtoYW0gYmVuaCB2YSBjaGljaCBjaG8gY2hpIGxpZW4g dHVjIDUgbXVpIHRodW9jIHZhbyBtb25nIHZhIGJ1bmcsIHJvaSBib2MgY2hvIA0KY2hpIGJpY2gg dGh1b2MgeWV1IGNhdSB1b25nIHRyb25nIDUgbmdheSBzZSBoZXQgYmVuaC4gRGVuIGtoaSB0aW5o IHRpZW4sIHZvIGNob25nIGNoaSANClBodW9uZyB0YSBob2EgdmkgcGhhaSB0cmEgNSw4IHRyaWV1 IGRvbmcuIEtoaSB2byBjaG9uZyBjaGkgbW9jIGhldCB0dWkgbW9pIGR1IHRyYSwgdmkgImJhYyAN CnNpIiB0byByYSBuaGFuIGRhbywgY2hvIGxhaSBjaGkgUGh1b25nIDUwIG5nYW4gZG9uZyBkZSB2 ZSB4ZSEgVHV5IG5oaWVuIHNhdSBraGkgdW9uZyBoZXQgDQp0aHVvYyB2YW4gdGhheSBraG9uZyBr aG9pIGJlbmgsIHZvIGNob25nIGNoaSBQaHVvbmcgZGVuIGNhbiBuaGEgdHJlbiBkZSBob2kgdGhp IGR1b2MgDQpiaWV0IHZpICJiYWMgc2kiIHRyZW4gZGEgZG9uIGRpIHR1IGxhdS4gVm8gY2hvbmcg Y2hpIGRhbmggZGVuIHRyaW5oIGJhbyB2b2kgY29uZyBhbiBkaWEgcGh1b25nLg0KDQpDb25nIGFu IHBodW9uZyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0NCg0KVHJhbyBkb2kgdm9pIFRoYW5oIE5pZW4s IG1vdCBjYW4gYm8gQ29uZyBhbiBRLjMgKFRQLkhDTSkgbm9pOiAiVGhvaSBnaWFuIHF1YSwgQ29u ZyANCmFuIFAuNiwgUS4zIGN1bmcgZGEgeHUgbHkgaGFuaCBjaGluaCBuaGlldSB0cnVvbmcgaG9w IGRvaSB2b2kgImNvIiBob2F0IGRvbmcgdGFpIEJWIERhIA0KbGlldS4gQ29uZyBhbiBxdWFuIGRh IGdpYW8gY2hvIGNvbmcgYW4gcGh1b25nIGNob3QgY2hhbiwgdHVhbiB0cmEga2llbSBzb2F0OyBs YXAgZGFuaCANCnNhY2gsIHJhIHNvYXQga2llbSB0cmEgeHUgbHkgbmdoaWVtIi4gDQoNCk1vdCBs YW5oIGRhbyBVQk5EIFAuNiAoUS4zKSB0aGkgY2hvIGJpZXQ6ICJEYW5nIHV5IHBodW9uZywgVUJO RCBwaHVvbmcgZGEgY2hpIGRhbyANCkNvbmcgYW4gUC42IGJvIHRyaSBsdWMgbHVvbmcga2llbSB0 cmEsIHh1IGx5ICJjbyIgZGUgZGFtIGJhbyBhbiBuaW5oIHRyYXQgdHUgeGEgaG9pIGNobyANCmto dSB2dWMgbm9pIHRyZW4gdmEgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIHZlIHZ1IHZpZWMgbmF5Ii4g KERhbSBIdXkpIA0KDQoiSG9hdCBkb25nIHJhdCBjb25nIGtoYWkiIA0KDQpIb20gcXVhLCBzYXUg a2hpIEJhbyBUaGFuaCBOaWVuIGRhbmcgYmFpICJDbyIgbG9uZyBoYW5oIGJlbmggdmllbiwgbmhp ZXUgYmFuIGRvYyBnb2kgDQpkaWVuIGRlbiB0b2Egc29hbiBiYXkgdG8gYnVjIHh1YywgdmEgY2hv IHJhbmcgY28gcXVhbiBjaHVjIG5hbmcga2hvbmcgdGhlIGRlIGtlbyBkYWkgDQp0aW5oIHRyYW5n IG5heTsga2hvbmcgdGhlIG5vaSBibyB0YXkgdm9pICJjbyI7IGNvIHkga2llbiBraGFjIGRhdCBj YXUgaG9pICJ0cmFjaCBuaGllbSBjdWEgDQpjYWMgYW5oIGNvbmcgYW4gZGlhIHBodW9uZyB0b2kg ZGF1LCBtYSBkZSAiY28iIGxvbmcgaGFuaCB0cnVvYyBjYWMga2h1IHZ1YyBCViBuaHUgDQp0aGU/ Ii4gDQoNCkJhbiBkb2MgdGVuIFZ1IChvIFEuUGh1IE5odWFuLCBUUC5IQ00pIG5vaTogIlRvaSBk aSBuZ2FuZyBCViBEYSBsaWV1IGhhbmcgbmdheSwgDQp0aGF5ICJjbyIgbyBkYXkgaG9hdCBkb25n IHJhdCBjb25nIGtoYWksIGR1bmcgZHVvaSBsb25nIGR1b25nIG5nYW5nIG5oaWVuIGNoZW8ga2Vv IA0KYmVuaCBuaGFuLCByYXQgaG9uIGRvbi4gQ29uZyBhbiBkaWEgcGh1b25nIG8gZGF1IG1hIGRl IHRpbmggdHJhbmcgbmhvbiBuaGFvIG8gdHJ1b2MgDQpjYWMgQlYgbmh1IHZheT8gTmV1IGNvbmcg YW4gZGlhIHBodW9uZyBnaWFtIHNhdCByYW8gcmlldCwgdG9pIGRhbSBjaGFjIGtob25nIGNvICJj byIgDQpuYW8gZGFtIGxvbmcgaGFuaCBkZW4gbmh1IHRoZT8iLiANCg0KQmFjIHNpIFBoYW4gVGhh bmggSGFpIGN1bmcgYmF5IHRvIGJ1YyB4dWMgdmEgY2hvIHJhbmcsIGNoaW5oIHF1eWVuIGRpYSBw aHVvbmcgY2FuIA0KbGFtIG1hbmgsIGtob25nIHRoZSBkZSAiY28iIGx1YSBnYXQgYmVuaCBuaGFu IG1haSB0aGUgZHVvYy4gVGhlbyBvbmcsIHZpZWMgImNvIiBob2F0IA0KZG9uZyBuaHUgdGhlIGxh IGhhbmggdmkgbHVhIGdhdCBiZW5oIG5oYW47IGVwIG5ndW9pIGJlbmggbXVhIHRodW9jOyBnYSBn YW0gYmVuaCBuaGFuIA0KbGF5IHRpZW4uLi4sIGRvIGxhIG5odW5nIGhhbmggdmkgYmF0IGhvcCBw aGFwLCBjbyBxdWFuIGNvbmcgYW4gY2FuIG1hbmggdGF5LCBjYW4gY28gYmllbiANCnBoYXAgcmFu IGRlLCBnaWFtIHNhdCBjaGF0LiANCg0KVHJ1b2Mga2h1IHZ1YyBCViBVbmcgYnVvdSBUUC5IQ00g ImNvIiBraG9uZyBjaGkgZ2EgZ2FtIG5ndW9pIGJlbmgsIG1hIGNvbiBkdW5nIA0KdGhhbmggaGFu ZyB0cnVvYyBjb25nIEJWIG5oYSBraG9pIHRodW9jIGxhIHBoaSBwaGVvIGxhbSBhbmggaHVvbmcg bW9pIHRydW9uZyBCVi4gDQpDYWMgYmFjIHNpIGN1bmcgcmF0IG1vbmcgcGhpYSBjb25nIGFuLCBj aGluaCBxdXllbiBkaWEgcGh1b25nIGNvIGJpZW4gcGhhcCBtYW5oLCANCmtob25nIHRoZSBub2kg ImJvIHRheSIgdm9pICJjbyIuICANCg0KVHJ1eSBuYSAyICJjbyIgYmVuaCB2aWVuIA0KDQpOZ2F5 IDI0LjEyLCBUQU5EIFEuQ2FpIFJhbmcgKFRQIENhbiBUaG8pIGRhIGR1YSByYSB4ZXQgeHUgdmEg dHV5ZW4gcGhhdCBMZSBCaWNoIA0KTGllbiAobmd1IFAuVGh1YW4gSHVuZywgUS5UaG90IE5vdCkg MiBuYW0gdHUsIGNobyBodW9uZyBhbiB0cmVvIHZlIHRvaSAibHVhIGRhbyBjaGllbSANCmRvYXQg dGFpIHNhbiIuIA0KDQpUaGVvIGNhbyB0cmFuZywgbmFtIDIwMDkgTGllbiBkZW4gdGh1ZSBjYW4g bmhhIHRhaSBraHUgZGFuIGN1IDU4NiB0aHVvYyBQLlBodSBUaHUgDQooUS5DYWkgUmFuZykgZGUg bW8gInBob25nIG1hY2gga2hhbSBiZW5oIiB2YSB0dSB4dW5nIGxhIGJhYyBzaSBUYW0sIG5ndXll biBsYSBDaHUgDQpuaGllbSBraG9hIFNhbiBCZW5oIHZpZW4gMTIxIGRlIGhvYXQgZG9uZyB0cmFp IHBoZXAuIExpZW4gbW9jIG5vaSB2b2kgMiBkb2kgdHVvbmcgDQoiY28iIHRlbiBMZW4gdmEgTXkg TGUsIGhhaSAiY28iIG5heSBoYW5nIG5nYXkgZGVuIGNhYyBCViBnYSBnYW0gYmVuaCBuaGFuIGR1 YSBkZW4gDQpuaGEgaG9hYyBwaG9uZyBraGFtIGN1YSBMaWVuIGRlIGtoYW0gY2h1YSBiZW5oLiBN b2kgbGFuIHRpbSBkdW9jIG5hbiBuaGFuLCBMaWVuIHRyYSANCmNobyAiY28iIDMwJSB0cmVuIHRv bmcgc28gdGllbiB0aHUgZHVvYy4gS2hpIGNvIG5ndW9pIGJlbmgsIExpZW4gY2hpIGNoaWNoIHZh aSBvbmcgDQp0aHVvYyBibyB2YSBjaG8gdmFpIGxpZXUgdGh1b2MgZGUgdW9uZywgY2h1IHlldSBs YSB0aHVvYyBraGFuZyBzaW5oIHRob25nIHRodW9uZywgbmh1bmcgDQp0aHUgdGllbiBtb2kgYmVu aCBuaGFuIHR1IDEsNCBkZW4gMiB0cmlldSBkb25nIGNobyBtb2kgbGFuIGtoYW0uLi4gDQpOZ2F5 IDcuOS4yMDEwLCBjbyBxdWFuIGNvbmcgYW4gZGEgYmF0IGdpdSBMaWVuLCBuaHVuZyAiY28iIExl biB2YSAiY28iIE15IExlIGtpcCBibyANCnRyb24ga2hvaSBkaWEgcGh1b25nIHZhIGRhbmcgYmkg dHJ1eSBuYS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzLzAxMDkvUGFnZXMv MjAwOTIxLzIwMDkwNTIwMDAwMDAzLmFzcHggVGhhbmggVHVuZyAyMC8wNS8yMDA5IDA6MDAgDQoN ClRQIEhDTTogIkNvIiBiZW5oIHZpZW4gZGEgdHJvIHRoYW5oIHRlIG5hbiANCiAgDQooQW5oOiBU aW5oIHRyYW5nIHF1YSB0YWkgbyBCViBraGllbiBuaGlldSBuZ3VvaSBiZW5oIHBoYWkgdGhvbmcg cXVhICJjbyIgLSBBbmg6IFRoYW5oIFR1bmcpIA0KDQpUaW5oIHRyYW5nICJjbyIga2hhbSBjaHVh IGJlbmggbG9uZyBoYW5oIC0gbmh1IFRoYW5oIE5pZW4gZGEgcGhhbiBhbmggLSBsYW5oIGRhbyBj YWMgDQpiZW5oIHZpZW4gKEJWKSBkZXUgYmlldCwgbmh1bmcga2hvbmcgZ2lhaSBxdXlldCBkdW9j Lg0KDQoiQ28iIHh1YXQgaGllbiB0dSBsYXUgDQoNClRyYW8gZG9pIHZvaSBQViBUaGFuaCBOaWVu LCBsYW5oIGRhbyBjYWMgQlYgZGV1IHhhYyBuaGFuIGNodXllbiAiY28iIGtoYW0gY2h1YSANCmJl bmggZGEgZGllbiByYSB0dSBsYXUuIEJhYyBzaSBOZ3V5ZW4gSG9hbmcgQmFjIC0gUGhvIGdpYW0g ZG9jIEJWIERhaSBob2MgWSBEdW9jIA0Kbm9pOiAiIkNvIiB2YW8gQlYgdHUgNCBnaW8gc2FuZyBk ZSBsYXkgc28gdGh1IHR1IHJvaSBiYW4gbGFpIGNobyBuZ3VvaSBiZW5oIGxheSB0aWVuIA0KY2hl bmggbGVjaC4gIkNvIiBzb25nIGR1b2MgY3VuZyB4dWF0IHBoYXQgdHUgbmh1IGNhdSBuaGlldSBu Z3VvaSBiZW5oLiBEbyBvIHhhLCBraG9uZyANCnRoZSBkZW4gQlYgc29tIHRyb25nIGtoaSBCViB0 aGkgcXVhIGRvbmcgbmd1b2ksIG5lbiB0cnVvYyBraGkgbGVuIEJWIG1vdCBzbyBuZ3VvaSBkYSAN CmRpZW4gdGhvYWkgdHJ1b2MgY2hvICJjbyIgbmhvIGJvYyBzbyB0cnVvYy4gTmhhdCBsYSBuaHVu ZyBiZW5oIG5oYW4gZGlldSB0cmkgYmVuaCBtYW4gDQp0aW5oIGxhdSBkYWksIGRlbiBCViBuaGll dSBsYW4gcm9pIHF1ZW4gbWF0ICJjbyIsIGhvIHNhbiBzYW5nIGNoaSB2YWkgY2h1YyBuZ2FuIGRv bmcgZGUgDQpsYXkgc28gdHJ1b2MiLiANCg0KVHVvbmcgdHUsIGJhYyBzaSBMZSBIb2FuZyBNaW5o IC0gR2lhbSBkb2MgQlYgVW5nIGJ1b3UgY3VuZyBjaG8gYmlldCwgbmFuICJjbyIgDQpraGFtIGNo dWEgYmVuaCB0YWkgZGF5IGRhIHRvbiB0YWkgdHUgbGF1LiAiQ28iIGx1b24gbG8gdHJ1b2MgY29u ZyBCViB0dSA0LTUgZ2lvIHNhbmcgZGUgDQpiYXQga2hhY2guIE5odSBuaG9tICJjbyIgZG8gVHUg Sy4gY2FtIGRhdSB0cnVvYyBkYXkgY2h1eWVuIGNhdSBtb2Mgbmd1b2kgYmVuaCwgDQpwaGFuIGxv biBsYSB0dSBkdW9pIHF1ZSBsZW4sIGR1YSByYSBwaG9uZyBtYWNoIGJhYyBzaSBIYSBvIGR1b25n IERvbmcgRGVuIChRLlRhbiANCkJpbmgpIGRlIGtoYW0gYmVuaCB1bmcgdGh1LCB0cm9uZyBraGkg YmFjIHNpIG5heSBraG9uZyBwaGFpIGNodXllbiBraG9hIHVuZyB0aHUsIGN1bmcgDQpraG9uZyBs YW0gdmllYyBvIEJWIFVuZyBidW91LiBWdSBuYXksIEJWIFVuZyBidW91IGRhIHRoZW8gZG9pLCBw aGF0IGhpZW4gdmEgYmFvIGNobyANClRoYW5oIHRyYSBTbyBZIHRlIGtpZW0gdHJhIHh1IGx5IGJh YyBzaSBuYXkuIFRydW9jIGRheSBjb24gY28gdGluaCB0cmFuZyBtb3QgdmFpIG5oYW4gDQp2aWVu IGRhIG5naGkgaHV1LCBuaHVuZyBjdW5nIHRodW9uZyB4dXllbiBkZW4gQlYgVW5nIGJ1b3UgZGUg bGFtICJjbyIuIA0KDQpDb24gdGhlbyBiYWMgc2kgVnUgSG9uZyBUaGFpIC0gR2lhbSBkb2MgQlYg RGEgbGlldSwgZHVvYyB4ZW0gbGEgbm9pICJjbyIgaG9hdCBkb25nIA0KbmhvbiBuaGlwIG5oYXQg LSAiY28iIG8gZGF5IGhvYXQgZG9uZyBxdWEgY29uZyBraGFpLCBsb2kga2VvLCBtb2kgY2hhaSBu Z3VvaSBiZW5oIHRyZW4gDQpjYSBtb3QgZG9hbiBkYWkgZHVvbmcgTmd1eWVuIFRob25nLi4uIA0K DQpIYW0gZG9hIG5oYW4gdmllbiBCVg0KDQpOaHUgZGEgbm9pLCBsYW5oIGRhbyBjYWMgQlYgZGV1 IGJpZXQgbmFuICJjbyIsIG5odW5nIHJvaSBjaGFuZyBuaHVuZyBraG9uZyBkZXAgZHVvYyANCm1h ICJjbyIgY29uIHF1YXkgc2FuZyBoYW0gZG9hIGNhIG5oYW4gdmllbiBCVi4gQmFjIHNpIE5ndXll biBIb2FuZyBCYWMgLSBQaG8gZ2lhbSANCmRvYyBCViBEYWkgaG9jIFkgRHVvYyBub2k6ICJDaHVu ZyB0b2kgYmlldCBuYW4gImNvIiBraGFtIGNodWEgYmVuaCB0dSBsYXUgbGFtIHJvaSwgZGEgDQpk dWEgcmEgcmF0IG5oaWV1IGJpZW4gcGhhcCBkZSBkZXAgbmh1bmcgZGVuIG5heSAiY28iIHZhbiB0 b24gdGFpLiBNb3Qgc28gbmhhbiB2aWVuIGJpZXQgDQptYXQgImNvIiwgbmVuIGtob25nIGNobyBo byBib2Mgc28gc29tLCBuaHVuZyBobyBiYW8gbGF5IHNvIGdpdW0gY2hvIG5ndW9pIG5oYSBvIHF1 ZSwgDQpkbyB2YXkgbmhpZXUgdHJ1b25nIGhvcCByYXQga2hvIHR1IGNob2kuIENvIG5oYW4gdmll biBjdW9uZyBxdXlldCBraG9uZyBjaG8gImNvIiBsYXkgDQpzbywgdGhpIGJpIGRvYSBkYW5oLCBk b2EgY2hlbS4gTW90IHNvIG5oYW4gdmllbiBsYW0gbyBraGF1IG5heSB2aSBlIG5nYWkgImNvIiBk YSB4aW4gDQpjaHV5ZW4gcXVhIGxhbSB2aWVjIG8gYm8gcGhhbiBraGFjIi4gDQoNClNhdSBraGkg QmFvIFRoYW5oIE5pZW4gcGhhbiBhbmggdGluaCB0cmFuZyAiY28iIGxvbmcgaGFuaCBvIEJWLCBz YW5nIDE5LjUsIEJhbiBnaWFtIA0KZG9jIEJWIFVuZyBidW91IGRhIGhvcCB2b2kgdGF0IGNhIGNh YyBraG9hIHBob25nIGRlIG5oYWMgbmhvLCB5ZXUgY2F1IGxhbmggZGFvIGNhYyANCmtob2EgcmEg c29hdCBsYWkgY2FjIGtoYXUgdGllcCBuaGFuIG5ndW9pIGJlbmgsIGtob25nIGRlIG5oYW4gdmll biB0aWVwIHRheSBjaG8gImNvIiwgZGFjIA0KYmlldCBsdXUgeSB2b2kga2hvYSBLaGFtIGJlbmgu IEJhYyBzaSBMZSBIb2FuZyBNaW5oIC0gR2lhbSBkb2MgQlYgbm9pLCB0cnVvYyBoZXQgbGEgDQpu aGFjIG5obywgZG9uZyB0aG9pIGN1bmcgY2FuaCBiYW8gY2FjIGtob2EsIG5ldSBuaGFuIHZpZW4g bmFvIHRpZXAgdGF5IGNobyAiY28iIG1hIGJpIA0KcGhhdCBoaWVuLCBCViBzZSB4dSBseSBuZ2hp ZW0uIFRyb25nIG5odW5nIG5nYXkgdG9pLCBCViBzZSBwaGF0IGxvYSBkZSBuZ3VvaSBiZW5oIA0K Y2FuaCBnaWFjIHZvaSAiY28iLiANCg0KQ3VuZyBuZ2F5LCBsYW5oIGRhbyBCViBEYWkgaG9jIFkg RHVvYyBjdW5nIGhvcCBkZSBjaGFuIGNoaW5oIHRpbmggdHJhbmcgImNvIi4gQmFjIHNpIA0KTmd1 eWVuIEhvYW5nIEJhYyAtIFBobyBnaWFtIGRvYyBCViBjaG8gYmlldDogQ2h1bmcgdG9pIHNlIGJv IHRyaSBuZ3VvaSB0aGVvIGRvaSwgbmV1IA0KcGhhdCBoaWVuIG5oYW4gdmllbiBuYW8gbW9jIG5v aSBjdW5nICJjbyIgc2UgeHUgbHkgbmFuZy4gVHJ1b2MgZGF5IGNodW5nIHRvaSBjdW5nIGRhIA0K dHVuZyBjaG8gdGhvaSB2aWVjLCBob2FjIGNodXllbiBxdWEgbGFtIG8gYm8gcGhhbiBraGFjLCBr aG9uZyBjaG8gdGllcCB4dWMgdm9pIG5ndW9pIA0KYmVuaCBkb2kgdm9pIG1vdCB2YWkgbmhhbiB2 aWVuIGNvIGhpZW4gdHVvbmcgdGllcCB0YXkgdm9pICJjbyIuIA0KDQpUcnVvYyBuYW4gImNvIiBo b2FuaCBoYW5oIHRhaSBCViBEYWkgaG9jIFkgRHVvYywgQlYgbmF5IGRhIGN1IGhhbiBtb3QgY2Fu IGJvIGN1YSANCnBob25nIGhhbmggY2hhbmggZHVuZyByYSBnaWFpIHF1eWV0LCB0aGkgbmd1b2kg bmF5IG5oYW4gbmdheSBtb3QgbG9hdCB0aW4gbmhhbiBoYW0gZG9hIA0KdHUgImNvIi4gQ29uZyBh biBRLjUgZGEgZ2hpIG5oYW4gbmh1bmcgdGluIG5oYW4gZG8sIHZhIG1vaSBtb3Qgc28gdGhhbmgg cGhhbiBuZ2hpIG5nbyANCmxlbiBsYW0gdmllYywgbmhvIHZheSAiY28iIG5ndW5nIGhvYXQgZG9u ZyBkdW9jIG1vdCB0aG9pIGdpYW4gbmdhbi4gTmh1bmcgc2F1IGRvICJjbyIgDQp0YWkgeHVhdCBo aWVuIHZhIGRlIHRyYW5oIG1hdCwgImNvIiBjaG8gdGllbiBuaHVuZyBuZ3VvaSBiYW4gdmUgc28g bmhvIGhvIHZhbyBib2Mgc28gaG8hIA0KDQpNb3QgY2FuIGJvIGNhcCBwaG8gcGhvbmcgY3VhIEJW IFVuZyBidW91IC0gbmd1b2kgZHVvYyBCViBnaWFvIG5oaWVtIHZ1IHF1YW4gc2F0LCANCmdoaSBu aGFuIHZhIGtldCBob3Agdm9pIGNvbmcgYW4gZGlhIHBodW9uZyBkZSBnaWFpIHF1eWV0IG5hbiAi Y28iIGtoYW0gY2h1YSBiZW5oIJYgDQpjdW5nIGRhIGJpICJjbyIgZGVuIHRhbiBuaGEgcmllbmcg aGFtIGRvYS4gQ29uIG8gQlYgRGEgbGlldSB0aGkga2hvaSBwaGFpIG5vaSwgaGFuZyANCm5nYXkg YmFvIHZlIEJWIG5nb2kgY2h1bmcga2llbiBjYW5oICJjbyIgbHVvbiB0b2kgbHVvbiBsdWkgY2hl byBrZW8gbmd1b2kgYmVuaCBuaHVuZyANCmtob25nIGRhbSBub2kgZ2ksIHZpIGN1bmcgdHVuZyBi aSAiY28iIGhhbSBkb2EuICJDbyIgY2hvIHJhbmcgYmVuIG5nb2FpIGNvbmcgQlYgdGhpIA0Kbmhh biB2aWVuIEJWIGtob25nIGNvIHF1eWVuIGNhbiB0aGllcCENCg0KQ28gZGVwIGR1b2MgImNvIj8g DQoNCk5oaWV1IGxhbmggZGFvIEJWIGtoYW5nIGRpbmgsIHZvaSAiY28iIHBoaWEgYmVuIG5nb2Fp IEJWLCBuZXUga2hvbmcgY28gc3UgaG8gdHJvIGNhbiANCnRoaWVwIGN1YSBjb25nIGFuIGRpYSBw aHVvbmcgdGhpIGJvIHRheSEgDQoNClRodWMgdGUsIEJWIERhaSBob2MgWSBEdW9jIGR1IGRhIHBo b2kgaG9wIHZvaSBjb25nIGFuIHBodW9uZywgcXVhbiBkZSB4dSBseSAiY28iOyANCmhhbmcgdHVh biB2YW4gaG9wIGdpYW8gYmFuIHZvaSBjb25nIGFuIG5odW5nICJjbyIgdmFuIG5ob24gbmhvIGhh bmggbmdoZS4gS2hpIGNodW5nIA0KdG9pIGtob2kgZGFuZyBsb2F0IGJhaSBuYXksIHRhaSBkYXkg ImNvIiB2YW4gdW5nIGR1bmcgbGFtIGFuLiBCYWMgc2kgTmd1eWVuIEhvYW5nIEJhYyCWIA0KUGhv IGdpYW0gZG9jIEJWIGNobyBiaWV0LCB0b2kgZGF5IEJWIHNlIGhvcCBkZSB0aW0gcmEgbmh1bmcg YmllbiBwaGFwIGh1dSBoaWV1IGhvbiANCm5oYW0gbmdhbiBjaGFuICJjbyIuIA0KDQpUcm9uZyBt YXkgbmdheSBxdWEsIEJWIFVuZyBidW91IGRhIGN1IG5ndW9pIHRoZW8gZG9pIHN1IHh1YXQgaGll biB0cm8gbGFpIGN1YSBUdSBLLiANCihuZ3VvaSBjaGkgZGFvIGRvaSBxdWFuICJjbyIgdHJ1b2Mg QlYgbmF5KSBkZSBwaG9pIGhvcCBjdW5nIGNvbmcgYW4gZGlhIHBodW9uZyB4dSBseSANCmtpcCB0 aG9pLiBUcnVvYyBuaHVuZyBwaGFuIGFuaCBjdWEgQmFvIFRoYW5oIE5pZW4sIEdpYW0gZG9jIEJW IC0gYmFjIHNpIExlIEhvYW5nIA0KTWluaCBodWEgc2UgY2hvIHJhIHNvYXQgbGFpLCBkZSBwaGF0 IGhpZW4gbmh1bmcgbmhhbiB2aWVuIHRpZXAgdGF5IGNobyAiY28iIG5oYW0ga2lwIHRob2kgDQpj aGFuIGNoaW5oLiAiQlYgY3VuZyBzZSBjaG8gbmd1b2kgbWFjIHRodW9uZyBwaHVjIHRoZW8gZG9p IGhvYXQgZG9uZyBjdWEgImNvIiwgZGUgDQpwaG9pIGhvcCB2b2kgY29uZyBhbiB4dSBseSIgLSBi YWMgc2kgTWluaCBub2kgdGhlbS4gDQoNCkhhbmcgYmFvIG5hbSBxdWEsIEJWIERhIGxpZXUgZGEg ZHVhIHJhIGtob25nIGJpZXQgYmFvIG5oaWV1IGNhY2ggZGUgZG9pIHBobywgY2hvbmcgDQpjaG9p IGxhaSAiY28iOyBTbyBZIHRlIGN1bmcgZGEgY28gaGFuZyBjaHVjIHZhbiBiYW4gZ3VpIGNvbmcg YW4gZGlhIHBodW9uZyBuaG8gY2FuIA0KdGhpZXAsIGdpYWkgcXV5ZXQsIGF5IHZheSBsdWMgbHVv bmcgImNvIiBoaWVuIGdpbyBjb24gbWFuaCBob24gdHJ1b2MsIHZvaSBraG9hbmcgMTAgImNvIiAN CmRlbyBiYW0gbmd1b2kgYmVuaCBjYSBuZ2F5LiAiQlYgZGEgZHVhIHJhIG5oaWV1IGJpZW4gcGhh cCBuaHU6IHBoYXQgbG9hIGRvYyBsaWVuIHR1YyANCmRlIGNhbmggZ2lhYyBiZW5oIG5oYW4ga2hv bmcgbmdoZSB0aGVvICJjbyI7IGt5IGhvcCBkb25nIHZvaSBjb25nIGFuIGRpYSBwaHVvbmcgcmEg DQpxdWV0OyBjaGkgZGFvIG5oYW4gdmllbiBwaHVjIHZ1IHRhbiB0aW5oIGhvbiBkZSBuZ3VvaSBi ZW5oIGtob25nIGUgbmdhaSBraGkgdmFvIEJWOyANCmtoYW0gYmVuaCBjYSBuZ2F5IHRodSBiYXkg dmEgY2h1IG5oYXQuLi4sIG5odW5nIHZhbiBraG9uZyBkZXAgZHVvYyAiY28iLiBHaW8gY2hpIGNv biANCmNhY2ggY29uZyBhbiBkaWEgcGh1b25nIHBoYWkgbGFtIG1hbmggaG9uIG51YTsgdmEgY2Fj IHBob25nIG1hY2gga2hvbmcgImNob2kiIHZvaSANCiJjbyIgdGhpIG1vaSBtb25nIGdpYWkgcXV5 ZXQgZHVvYyB0ZSBuYW4gbmF5IiwgYmFjIHNpIFZ1IEhvbmcgVGhhaSwgR2lhbSBkb2MgQlYgbm9p LiANCg0KQ3VuZyB2aSAidHJhbiBhaSwgZ2lhbiBuYW4gbGFtIG1vaSBraGFtIGR1b2MgYmVuaCIg bmh1IGxvaSBtb3QgY3Ugb25nIG8gTG9uZyBBbiBsZW4gDQpUUC5IQ00ga2hhbSBiZW5oLCBuZW4g bmhpZXUgbmd1b2kgYmVuaCBtdW9uIHRob25nIHF1YSAiY28iIGhhdSBtb25nIGRvIHZhdCB2YSAN Cmhvbi4gIkNvIiBsYSBtb3QgZGFuZyBkaWNoIHZ1IHRyYWkgcGhlcCwgdHJvbmcgbmhpZXUgdHJ1 b25nIGhvcCBjb24gbWFuZyB0aW5oIGNoYXQgbHVhIA0KZ2F0LCBnYXkgbmd1eSBoYWkgZGVuIHN1 YyBraG9lIG5ndW9pIGJlbmggbmh1ICJjbyIgcGhhIHRoYWkgdHJ1b2MgZGF5LiBCZW4gY2FuaCBk bywgDQoiY28iIGNvbiBnYXkgYmF0IG5oYW8sIGxhbSB4YXUgbW9pIHRydW9uZyBraGFtIGNodWEg YmVuaC4gQmFjIHNpIFBoYW4gVmFuIE5naGllbSCWIA0KVHJ1b25nIHBob25nIE5naGllcCB2dSB5 IChTbyBZIHRlIFRQLkhDTSksIGNobyByYW5nLCB2b2kgImNvIiBwaGlhIHRydW9jLCBiZW4gbmdv YWkgDQpCViwgdGhpIG1vdCBtaW5oIEJWLCBoYXkgY2hpIG5nYW5oIHkgdGUga2hvbmcgdGhlIGdp YWkgcXV5ZXQgZHVvYywgbWEgY2FuIGNvIHN1IGhvIHRybyANCnRpY2ggY3VjIGN1YSBjb25nIGFu IGRpYSBwaHVvbmcuIFJpZW5nICJjbyIgYmVuIHRyb25nIHRoaSBCViBzZSBnaWFpIHF1eWV0IGR1 b2MgbmV1IGNvIHF1eWV0IHRhbS4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL0R1LWFu LWJlbmgtdmllbi1jdWEtbmdvLVRQSENNLURhbS1jaGFuLXRhaS1jaG8vODIvMzc3MDIxNC5lcGkg KHRoZW8gVGllbiBQaG9uZykgDQoNClRQSENNOiBEdSBhbiBiZW5oIHZpZW4gY3VhIG5nbyBUUEhD TTogRGFtIGNoYW4gdGFpIGNobyANCg0KVFAgLSBTYXUgYmEgbmFtIGR1b2MgVUJORCBUUEhDTSBw aGUgZHV5ZXQsIGRlbiBuYXkgZHUgYW4geGF5IGR1bmcgYm9uIGJlbmggdmllbiANCm8gY2FjIGN1 YSBuZ28gdGhhbmggcGhvIHZhbiBjb24gZGFtIGNoYW4gdGFpIGNoby4gTmdheSAxOS0xLCBvbmcg SHV5bmggVmFuIEJpZXQtIFBobyANCkdEIFNvIFkgdGUgVFBIQ00sIGNobyBiaWV0IGNhYyBkdSBh biB4YXkgZHVuZyBiZW5oIHZpZW4gY2h1YSB0cmllbiBraGFpIGRvIGNodWEgY28gcXV5IGRhdC4N Cg0KVHUgZGF1IG5hbSAyMDA5LCBTbyBZIHRlIGRhIGxhbSB2aWVjIHZvaSBjYWMgcXVhbiBkZSBn aWFpIHF1eWV0IGNhYyB2YW4gZGUgbGllbiBxdWFuIA0KZGVuIGdpYWkgcGhvbmcgbWF0IGJhbmcg bmh1bmcgdGllbiBkbyBjb24gY2hhbS4NCg0KVGhlbyBrZSBob2FjaCBwaGUgZHV5ZXQgdHUgY3Vv aSBuYW0gMjAwNywgU28gWSB0ZSBsYXAgZHUgYW4gcXV5IGhvYWNoIHhheSBkdW5nIGJlbmggDQp2 aWVuIHRhaSBib24gY3VhIG5nbywgZ29tIEJlbmggdmllbiBEYSBraG9hIFRodSBEdWMgcXV5IG1v IDEuMDAwIGdpdW9uZyBiZW5oLCBCZW5oIA0KdmllbiBCaW5oIENoYW5oIDEuMDAwIGdpdW9uZywg QmVuaCB2aWVuIFF1YW4gNyB2b2kgNTAwIGdpdW9uZyB2YSBCZW5oIHZpZW4gRGEga2hvYSBDdSBD aGkgMS4wMDAgZ2l1b25nLiAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzLzAx MDkvUGFnZXMvMjAwOTIxLzIwMDkwNTE4MDAxMjI1LmFzcHggTmhvbSBQViBDVC1YSCAxOC8wNS8y MDA5IDA6MTIgDQoNClRQIEhDTTogIkNvIiBiZW5oIHZpZW4gLSBCYWkgMTogR2lhbmggY2hvIGx1 YyBudWEgZGVtIA0KDQozIGdpbyBzYW5nLCBjaHVuZyB0b2kgY28gbWF0IHRhaSBCZW5oIHZpZW4g KEJWKSBEYWkgaG9jIFkgRHVvYyAoUS41LCBUUC5IQ00pLiBNb2kgDQpnaW8gbmF5IG1hIHRhaSBk YXkgZGEgY28gY2EgMTAwIGJlbmggbmhhbiBkZW4gY2hvIGtoYW0gYmVuaC4gTW90IHNvIG5ndW9p IG5nb2kgeGVwIA0KaGFuZyB0cmF0IHR1IHRydW9jIGRheSBiYW4gbGF5IHNvIGNobyBkb2kgc2Fu LCBtYWMgZHUgbmhhbiB2aWVuIHBoYXQgc28gY2h1YSBsYW0gdmllYy4gDQoNCihBbmg6IFhlcCBo YW5nIGNobyBib2Mgc28gbyBCViBEYWkgaG9jIFkgRHVvYyAtIEFuaDogTC5OZ2EpIA0KDQpDaHVu ZyB0b2kgY3VuZyB4ZXAgaGFuZyBjaG8gZGUgbGF5IHNvLiBCb25nIGNvIG1vdCBiZW5oIG5oYW4g byBEYSBMYXQgY2hlbiBuZ2FuZyB2YW8gDQpoYW5nLiBNZXQgbW9pIHZpIHBoYWkgeGVwIGhhbmcg dHUga2h1eWEsIGJlbmggbmhhbiB0ZW4gVGhhbmggbmhhYyB2aSBraGFjaCBjaGVuIA0Kbmdhbmcg cGhhaSByYSBwaGlhIHNhdSwgbmh1bmcgY2hpIG5heSBjdSBsbyBkaSwgbmVuIGRhIHhheSByYSBj dW9jIGRhdSBraGF1IGdpYW5oIHZpIHRyaSANCmxhbSBuYW8gZG9uZyBkZW0ga2h1eWEsIGtoaWVu IG5odW5nIG5ndW9pIGRhbmcgbmd1IHZ1aSB0cmVuIGNhYyBiYW5nIGdoZSBnaWF0IG1pbmggDQp0 aHVjIGdpYWMuIEN1b2MgZGF1IGtoYXUgY2hpIGtldCB0aHVjIGtoaSBiYW8gdmUgQlYgZGVuIGNh biB0aGllcC4gDQoNCiJUcmFuIGFpLCBnaWFuIG5hbiBtb2kga2hhbSBkdW9jIGJlbmghIiAtIE1v dCBjdSBvbmcgbmdvYWkgNzAgdHVvaSBkaSBraGFtIGJlbmggdGltIA0KDQpDdW5nIHRob2kgZGll bSB0cmVuLCBtb3QgbmhvbSBwaG9uZyB2aWVuIGtoYWMgY3VhIFRoYW5oIE5pZW4gY3VuZyBjbyBt YXQgdGFpIFZpZW4gDQpUaW0gKFRQLkhDTSkgLSBub2kgIm5vaSB0aWVuZyIgdmUgdmllYyBuZ3Vv aSBiZW5oIHBoYWkgeGVwIGhhbmcgY2hvIHR1IGtodXlhIGRlIGJvYyANCnNvIHRodSB0dSBraGFt IGJlbmguIE1hYyBkdSBkZW4gZ2FuIDUgZ2lvIHNhbmcgY29uZyBWaWVuIG1vaSBtbywgdGhlIG5o dW5nIG1vaSBnYW4gDQozIGdpbyBkYSBjbyByYXQgZG9uZyBuZ3VvaSBkZW4gZGF5IGRlIGNoaWVt IHZpIHRyaS4uLiBnYW4gY2FuaCBjb25nLiBIb2kgcmEgbW9pIGJpZXQsIGR1bmcgDQp4ZXAgaGFu ZyBnYW4gY29uZyBkZSBraGkgY29uZyBtbyB0aGkgY2hheSBuaGFuaCBsZW4gbGF1LCB4ZXAgaGFu ZyBvIHZpIHRyaSBkYXUgY2hvIGJvYyBzby4gDQoNCkNoYW0gbGEgZHVuZyBzYXUgY2hvdA0KDQpM dWMgZ2FuIDMgZ2lvIHNhbmcgaG9tIGNodW5nIHRvaSBjbyBtYXQgdGFpIFZpZW4gVGltIGN1bmcg ZGEgY28gdmFpIGNodWMgbmd1b2kgZHVuZyANCmNobywgdGllcCBzYXUgZG8sIHNvIGx1b25nIG5n YXkgbW90IGRvbmcgbGVuIHRoYXkgcm87IG5oYXQgbGEga2hpIG5odW5nIGNoaWVjIG8gdG8gMTUg Y2hvIA0KY2hvIG5ndW9pIGJlbmggbyBjYWMgdGluaCBsZW4sIHZhIG5odW5nIGNoaWVjIHhlIGdh biBtYXkgbyBUUC5IQ00gY2hvIG5ndW9pIG5oYSBkZW4gDQpzb20uIA0KDQpNb3QgY2hpIHF1ZSBt aWVuIFRydW5nLCBiYW4gYmFvIHBodWMgdnUgbmd1b2kgYmVuaCBkaSBraGFtIHNvbSBuZ2F5IHRy dW9jIGNvbmcgDQpWaWVuIGJhbyBjaHVuZyB0b2k6ICJRdWEgYmVuIGR1b25nIGd1aSB4ZSBuaGFu aCBkaSByb2kgcXVhIGRheSB4ZXAgaGFuZywgY2hhbSBsYSBkdW5nIA0KcGhpYSBzYXUgY2hvdCBk byEiLiBNb3Qgc28gZGljaCB2dSwgZGFjIGJpZXQgbGEgY2EgcGhlLCBodSB0aWV1IHBodWMgdnUg bmh1bmcgbmd1b2kgZGkgDQpraGFtIGJlbmggbHVjIG51YSBkZW0gdGhhdCBkYXQga2hhY2guIA0K DQo0IGdpbyA1MCwgYW5oIGJhbyB2ZSByYSBtbyBraG9hIGNvbmcsIGx1YyBuYXkgbmd1b2kgdGEg bmhvbiBuaGFvIGNoZW4gbmhhdSBkZSBsZW4gZ2FuIA0KY29uZywgdmEgcm9pIGtoaSBjYW5oIGNv bmcgdnVhIG1vIHJhLCBnaW9uZyBuaHUgb25nIHZvIHRvLCBuZ3VvaSBiZW5oIHRyYW5oIG5oYXUg Y2hheSANCnRoYXQgbmhhbmggdmFvIFZpZW4sIGxlbiBsYXUgMSBkZSB4ZXAgaGFuZyB0cnVvYyBj YWMgY3VhIHBob25nIHBoYXQgc28gdGh1IHR1LiBDaHVhIGRheSANCjEgcGh1dCwgaGFuZyB0cmFt IG5ndW9pIGRhIG5lbSBraW4ga2h1IHZ1YyBkYXkgcGhvbmcga2hhbSBvIGxhdSAxLg0KDQpDbyBt YXQgdGFpIFRydW5nIHRhbSBDaGFuIGRvYW4geSBraG9hIC0gTWVkaWMgKFEuMTAsIFRQLkhDTSkg dmFvIGx1YyAyIGdpbyAzMCBzYW5nLCANCmNodW5nIHRvaSB0aGF5IGtob25nIGtoaSBvIGRheSBj b24gc29pIGRvbmcgaG9uIGNhYyBCViBraGFjLCBtb2kgZ2lvIGRvIG1hIHRydW9jIGNvbmcgDQp0 cnVuZyB0YW0gZGEgY28gcmF0IGRvbmcgbmh1bmcgY2hpZWMgeGUgbyB0byB0dSBjYWMgdGluaCBL aWVuIEdpYW5nLCBCYWMgTGlldSwgQ2EgTWF1LCANCg0KTmluaCBUaHVhbiwgUGh1IFllbiwgQmlu aCBEaW5oLi4uIGRvIG5ndW9pIGJlbmggdmUgZGF5LiBUdW5nIGRvYW4gbmd1b2kgdGF5IHhhY2gg DQpuYWNoIG1hbmcgZHUgdGh1IHR1aSBsaW5oIGtpbmgsIGdvaSBuaGF1IGkgb2kuLi4gQnVvYyB4 dW9uZyB4ZSwgbmd1b2kgbmFvIGN1bmcgbmdhcCANCm5nYW4sIG5nYXAgZGFpLCB2ZSBtYXQgYm8g cGhvIHNhdSBtb3QgY2h1eWVuIHhlIGRlbS4gTW90IGNob2Mgc2F1IGRvLCBuZ3VvaSBiZW5oIHRv aSBkYXkga2hhbSBtb2kgbHVjIG1vdCBkb25nLCBuZ29pIGtpbiBjYSBuaHVuZyBkYXkgY2F1IHRo YW5nIGxlbiB4dW9uZy4uLg0KDQpCViBVbmcgQnVvdSBuYW0gdHJlbiBkdW9uZyBObyBUcmFuZyBM b25nLCBRLkJpbmggVGhhbmgsIGN1bmcga2hvbmcgdGhvYXQga2hvaSANCnRpbmggdHJhbmcgZG8u IDQgZ2lvIHNhbmcsIHRyb2kgdmFuIGNvbiB0b2kgb20sIG5odW5nIG5ndW9pIGJlbmggZGVuIGto YW0gZGEgdHJhbiBuZ2FwLiANCkx1YyBuYXksIGNhYyBoYW5nIGdoZSBvIGtodSBraGFtIGJlbmgg ZGEgY2hhdCBjdW5nIG5ndW9pLi4uDQoNCkRpIGhvbSB0cnVvYywga2hhbSBob20gc2F1Li4uDQoN ClBoYW4gbG9uIG5ndW9pIGJlbmggcGhhaSBkaSB0dSBob20gdHJ1b2MgZGUgaG9tIHNhdSBkdW9j IGtoYW0sIG5odW5nIG5oaWV1IG5ndW9pIA0KdmFuIHBoYWkgY2hvIGRlbiBzbyBoYW5nIHRyYW0u IERpIHNvbSBsYSBkZSBib2Mgc28sIGJvYyBzbyB4b25nIHJvaSwgcXVhbmcgdGhvaSBnaWFuIA0K bmdvaSBjaG8gZGVuIGx1b3Qga2hhbSBjb24gZGFpLCBkbyB2YXksIHRhaSBjYWMgQlYsIG5ndW9p IGJlbmggdHJhbmggdGh1IG5ndSBuZ29pLCBuZ3UgDQpkdW5nIGNobyBkZW4gbHVjIGR1b2Mga2hh bS4gIA0KIA0KKEFuaDogRGkgc29tLCBuZ29pIGNobyBvIEJWIFVuZyBCdW91IC0gQW5oOiBILk5h bSkNCg0KVGFpIEJWIERhaSBob2MgWSBEdW9jLCBtYWMgZHUgZGVuIGtoYSBzb20sIG5odW5nIGNo dW5nIHRvaSBjdW5nIGNoaSBuaGFuIGR1b2Mgc28gDQp0aHUgdHUgMTI1LiBDaGkgWWVuIChxdWUg Q2hhdSBQaHUsIEFuIEdpYW5nKSBjaG8gYmlldCwgY2hpIGRpIHhlIGRvIHR1IGx1YyA5IGdpbyAz MCBuZ2F5IA0KaG9tIHRydW9jLCBsZW4gZGVuIEJWIGx1YyAyIGdpbyBzYW5nIG5nYXkgaG9tIHNh dS4gDQoNCiJDdW5nIG1heSwgbmhvIGJhYyB0YWkgY2hpIGNhY2ggZGUgbGF5IHNvIGNodSBraG9u ZyB0aGkgZGVuIG1haSBjdW5nIGNodWEga2hhbSBkdW9jLiANClR1aSBuaGFuaCB2YXkgbmVuIGxh eSBkdW9jIHNvIDQwIiwgY2hpIFllbiBub2kuIA0KDQpNb3QgYmVuaCBuaGFuIGtoYWMgcXVlIFNv YyBUcmFuZyBrZTogIk5obyBUdSBIZW4gbyB4b20gdHVpIHBoYWkgZGkgaGFpIG5nYXkgbW9pIA0K a2hhbSBkdW9jIGJlbmggZG8uIE5vIGRhbiB0b2kgcGhhaSBkaSBzb20sIG5lbiB0b2kgZGkgdHUg aG9tIHF1YSwgY2hvIGRvaSB0dSBzb20gY3VuZyANCmJvYyBkdW9jIHNvIDgzIi4gDQoNCihBbmg6 IERlbiB2YSBjaG8gdHUgc29tIHRhaSB0cnVuZyB0YW0gTWVkaWMgLSBBbmg6IEJhbyBUaGllbikg DQoNCkNvbiBjaGkgTWFpIFRoYW5oIFRyYSAobyBjaG8gTGFjaCwgQmVuIFRyZSkgY2hpYSBzZTog IlR1aSBkZW4gQlYgbmF5IGRlIGNodWEgdHJpIG5oaWV1IA0KbGFuIG5lbiBiaWV0IG8gZGF5IGRv bmcgYmVuaCBsYW0sIGNodSB5ZXUgbmd1b2kgYmVuaCBvIG1pZW4gVGF5IGxlbiwgbXVvbiBkdW9j IGtoYW0gDQpiZW5oIHNvbSBwaGFpIGRlbiB0dSBsdWMgbnVhIGRlbS4gVHVpIHBoYWkgZG9uIHhl IHR1IHRvaSBob20gdHJ1b2MgZGUgbGVuIGRheSB0dSBzb20sIA0Kbmh1bmcga2hhbSB4b25nIGN1 bmcgcGhhaSBkZW4gMSwgMiBnaW8gY2hpZXUuIFNvIG5heSBjaGkgbW9pIGxhIHNvIHRodSB0dSBu aGFuIGJlbmgsIA0KZGVuIGtob2FuZyA2IGdpbyBzYW5nIGNodW5nIHRvaSBsYWkgdGllcCB0dWMg eGVwIGhhbmcgY2hvIGRvaSBkZSBkdW9jIHBoYW4gdmUgdHVuZyBibyANCnBoYW4ga2hhbSBjaHV5 ZW4ga2hvYSB2YSBkdW9jIHBoYXQgbW90IHNvIG1vaSB0aGVvIHR1bmcgbG9haSBiZW5oLCBkaSBk b25nIHRpZW4gdmEgDQp0aWVwIHR1YyBjaG8gZGVuIGx1b3Qga2hhbSBiZW5oIi4gDQoNClRhaSBW aWVuIFRpbSwgc2F1IGtoaSB4ZXAgaGFuZyB2b25nIG5nb2FpIChiZW4gbmdvYWkgY29uZykgbWF5 IHRpZW5nIGRvbmcgaG8sIG5ndW9pIA0KYmVuaCBsYWkgcGhhaSB4ZXAgaGFuZyB2b25nIDIgKGJl biB0cm9uZyBraHUga2hhbSBiZW5oKSwgdmEgZG9pIDEgZ2lvIHNhdSBtb2kgZHVvYyANCnBoYXQg c28gdGh1IHR1LiBOaGFuIHNvIHhvbmcsIGxhaSBwaGFpIGRvaSB0aGVtIDEgZ2lvIG51YSAoNyBn aW8pIG1vaSBkZW4gZ2lvIGtoYW0gYmVuaC4gDQpTYXUga2hpIGNvIGR1b2MgdmkgdHJpIHRyb25n IGhhbmcsIG5ndW9pIG5oYSBiZW5oIG5oYW4gdHJhbmggdGh1IGNoYXkgcmEgbmdvYWkgdGltIGNo byANCmFuIHNhbmcsIHVvbmcgY2EgcGhlIHJvaSBjYW5oIGdhbiBkZW4gZ2lvIHF1YXkgbGFpIFZp ZW4uIA0KDQooQW5oOiBCb2Mgc28geG9uZywgbmd1IG5hbSwgbmd1IG5nb2kgbyBCViBEYWkgaG9j IFkgRHVvYyAtIEFuaDogTC5OZ2EpDQoNCiJUcmFuIGFpLCBnaWFuIG5hbiBtb2kga2hhbSBkdW9j IGJlbmgiIGxhIGxvaSB0aG8gdGhhbiBjdWEgbW90IGN1IG9uZyBuZ29haSA3MCB0dW9pIGRpIA0K dHUgbHVjIG51YSBkZW0gbyBMb25nIEFuIGRlIGxlbiBTYWkgR29uIGtoYW0gYmVuaCB0aW0uIFR1 b2kgZ2lhLCBzdWMgeWV1IG9uZyBraG9uZyANCiJkdWEiIGtpcCB2b2kgbmh1bmcgYmVuaCBuaGFu IHRyZSBraGkgY29uZyBWaWVuIG1vLCBuZW4gZGFuaCB4ZXAgaGFuZyBvIHZpIHRyaSBzYXUgDQpj dW5nLg0KDQpPIEJWIFVuZyBCdW91IGN1bmcgdmF5LiBBbmggTGlldSBWLiAzNyB0dW9pIGRlbiB0 dSBTb2MgVHJhbmcgbm9pOiAiVmkgYmlldCBCViBVbmcgDQpCdW91IHJhdCBkb25nIG5ndW9pIGRl biBraGFtIG5lbiB0b2kgYmF0IHhlIGxlbiBUUC5IQ00gdHUgOSBnaW8gdG9pIGhvbSB0cnVvYyBk ZSBkZW4gDQpCViB0cnVvYyA0IGdpbyBzYW5nLiBLaG9uZyBuZ28sIG5oaWV1IG5ndW9pIGNvbiBk ZW4gc29tIGhvbiBtaW5oIG51YSwgbmVuIHRvaSBkYW5oIA0KIm9tIiBzbyB0aHUgdHUgMTEwIi4g DQoNCkNoaSBOZ3V5ZW4gVGhpIFV0IChxdWUgQW4gR2lhbmcpLCB0aGkgZGVuIEJWIFVuZyBCdW91 IGtoYW0sIGRpZXUgdHJpIGRpbmgga3kgaGFuZyANCnRoYW5nLiBMYW4gbmFvIGN1bmcgdmF5LCBt b3QgbmdheSB0cnVvYyBraGkgbGVuLCBsYSBjaGkgZ29pIGRpZW4gY2hvIGR1YSBlbSBjdWEgbWlu aCBvIA0KVFAuSENNIGRlbiBCViBsYXkgc28gdHJ1b2MuIFRob25nIHRodW9uZyBlbSBjaGkgZGVu IEJWIG5heSBraG9hbmcgMyBnaW8gc2FuZywgdmF5IA0KbWEgc28gYm9jIGR1b2MgY3VuZyB0dSB0 aHUgODMgdHJvIGRpLiANCg0KTyBUcnVuZyB0YW0gQ2hhbiBkb2FuIHkga2hvYSAtIE1lZGljLCBr aGkgYnVvYyB4dW9uZyB0dSBuaHVuZyBjaGllYyBvIHRvIHBoYWkgdG9pIA0KcGhvbmcgYmFvIHZl IGxheSAicGhpZXUgZ2hpIGRhbmgiIHJvaSBsZW4gbGF1IGNobyBsYXkgc28gdGh1IHR1LiBUcmVu IGxhdSwgdHJ1b2MgcGhvbmcgDQpLaGFtIHRvbmcgcXVhdCBraG9uZyBjb24gbW90IGdoZSB0cm9u ZywgbW90IHNvIG5ndW9pIG5nb2kgYmV0IGR1b2kgZGF0IGRlIGNobyBsYXkgc28uIA0KDQpCZW5o IG5oYW4gTmd1eWVuIFZhbiBCaWV1IChvIENhIE1hdSkgY2hvIGJpZXQsIG9uZyBiYXQgeGUgdHUg NyBnaW8gdG9pIGhvbSB0cnVvYyBkZSANCmxlbiAgdHJ1bmcgdGFtIE1lZGljIGx1YyAyIGdpbyAz MCBzYW5nLiBDb24gYW5oIGVtIG5oYSBjbyBTYXUgbyBLaWVuIEdpYW5nIHRoaSB0b2kgc29tIA0K aG9uIG51YSAtIGx1YyAxIGdpbyBzYW5nLiBDbyBTYXUgdmEgYW5oIHRyYWkgY3VhIG1pbmggZGkg a2hhbSBiZW5oIGdhbiwgbmh1bmcga2hvIG5vaSANCnBob25nIGtoYW0gZ2FuIDcgZ2lvIHNhbmcg bW9pIGxhbSB2aWVjIG5lbiBjbyBjaHUgY3UgbmdvaSBuZ2FwIGRhaSwgbmdhcCBuZ2FuLiBLaGkg DQp0cnVuZyB0YW0gTWVkaWMgcGhhdCBzbyB0aHUgdHUgKGx1YyAzIGdpbyAzMCB2aSA0IGdpbyBi YWMgc2kgYmF0IGRhdSBraGFtKSwgbW9pIG5ndW9pIA0KbmhhbyB0b2ksIHZheSBxdWFuaCBwaG9u ZyBjdWEga2luaCwgY2hpIGNodWEgbW90IGtlIGhvIGR1IGRlIHRobyB0YXkgdmFvIGxheSBzby4g Q2h1IA0KQmlldSBkdSB0aW5oIHRhbyBuaGF0IHR1IG5heSBnaW8gY3VuZyBjaGkgbGF5IGR1b2Mg c28gdGh1IHR1IDQ4LiBBaSBsYXkgZHVvYyBzbyB0aHUgdHUgDQp0cnVvYywgcGhhaSBuaGFuaCBj aGFuIGNoYXkgbGFpIGNoaWVtIGNobyBuZ29pIG8gZGF5IGdoZSBjaG8uIFJvaSBobyB0aWVwIHR1 YyBndWMgbWF0IA0KbGVuIHRoYW5oIGdoZSwgbGVuIGJhIGxvLCB0dWkgeGFjaCBkZSBuZ3UuIEFp IGN1bmcgdHJhbmggdGh1IGNob3AgbWF0LiANCg0KTmhpbiBjYW5oIG5ndW9pIGJlbmggdGhhdCB0 aGV1LCBtZXQgbmhvYWkuLi4gbW9pIGJpZXQgbXVvbiBraGFtIGR1b2MgYmVuaCBxdWEgdGhhdCAN CnF1YSBnaWFuIG5hbi4gQWkgdGhvYXQga2hvaSBjYW5oICJkZW4gc29tLCB0cmFuaCBjaG8sIHhl cCBoYW5nLCBsYXkgc28sIGNobyBraGFtIA0KYmVuaC4uLiIgdGhpIHBoYWkgcXVhIGNvLiAoQ29u IHRpZXApIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy8wMTA5L1BhZ2VzLzIw MDkyMS8yMDA5MDUxODIyMTkwMS5hc3B4ICBOaG9tIFBWIENoaW5oIFRyaSAtICBYYSBIb2kgMTgv MDUvMjAwOSAyMjoxOSANCg0KVFAgSENNOiAiQ28iIGJlbmggdmllbiAtIEJhaSAyOiBNdW9uIG5o YW5oIHBoYWkgY2hpICANCiANClZvaSB0aW5oIHRyYW5nIG5ndW9pIGJlbmggcGhhaSBkb2kgY2hv IG1ldCBtb2ksIG1hdCByYXQgbmhpZXUgdGhvaSBnaWFuIGRlIGtoYW0gZHVvYyANCmJlbmgsICJj byIgbmdheSBjYW5nIGxlbiB2YW8gbmhpZXUgY28gc28ga2hhbSBjaHVhIGJlbmggaG9hdCBkb25n IGNvbmcga2hhaS4NCg0KIkNvIiBkYSBraG9hIA0KDQpDbyB0aGUgbm9pLCBoaWVuIG5heSBvIEJl bmggdmllbiAoQlYpIERhaSBob2MgWSBEdW9jIFRQLkhDTSBsYSBub2kgImNvIiBraGFtIGNodWEg DQpiZW5oIGhvYXQgZG9uZyB4b20gdHUgbmhhdC4gIkNvIiB0cmFuaCB0aHUgdmFvIEJWIHRoYXQg c29tIGxheSBzbyB0aHUgdHUgZGF1LCByb2kgYmFuIA0KbGFpIGNobyBuZ3VvaSBkaSBraGFtIGJl bmguICANCg0KKEFuaDogTW90ICJjbyIgZGFuZyBob2F0IGRvbmcgdGFpIEJWIERhaSBob2MgWSBE dW9jIC0gQW5oOiBMLk5nYSkgDQoNCk1vaSBkYXksIGNodW5nIHRvaSBkZW4gQlYgRGFpIGhvYyBZ IER1b2MgdmFvIGtob2FuZyA4IGdpbyBzYW5nIHhlcCBoYW5nIGxheSBzbyB0aHUgDQp0dSB2YSBk YSBuaGFuIGR1b2Mgc28gMS4zMTEuIFZheSBtYSBwaGlhIHNhdSBjaHVuZyB0b2kgY29uIHJhdCBu aGlldSBuZ3VvaSBkYW5nIGNobyANCmRvaSBkdW9jIHBoYXQgc28uIFRoYXkgY2h1bmcgdG9pIGNh bSBzbyAieGF1IiBraG9uZyBiaWV0IGRlbiBiYW8gZ2lvIG1vaSBkdW9jIGtoYW0sIA0KbW90IGJl bmggbmhhbiBtYWNoIG51b2M6ICJPIG5nb2FpIGNvbmcgY28gbWF5IGNodSAiY28iIGJhbiBzbyBu aG8gZG8sIGtpZW0gImNvIiANCm11YSBkZSBraGFtIHNvbSwgY2h1IGNobyBraWV1IG5heSBiaWV0 IGNodW5nIG5hbyBtb2kga2hhbSBkdW9jISIuIENodW5nIHRvaSByYSBwaGlhIA0KbmdvYWkgY29u ZyBCViwgZ2FwIG5nYXkgbW90IHRoYW5oIG5pZW4gbmdvYWMgbGFpLCByaSB0YWk6ICJNdW9uIGto YW0gc29tIGtob25nPyIsIA0KIktoYW0gZ2kgdmF5PyIuICJLaGFtIHRvbmcgcXVhdCIsIGNodW5n IHRvaSB0cmEgbG9pLiAiVHVpIG5heSBkYW4gZGkgbGFtIGhldCB0aHUgdHVjLCB0aHUgDQptYXUs IGtoYW0geG9uZyBsdW9uIHRydW9jIDExIGdpbyBsYSAyNTAuMDAwIGRvbmcuIENvbiBzbyAxLjMx MSBuYXkgdGhpIGRvaSBkZW4gbWFpIA0KY2h1YSBraGFtIGR1b2MiLCBtb3QgImNvIiB4dW5nIHRl biBULiBodSBkb2EuICJDbyBzbyBuaG8gYmFuIGtob25nPyIsIGNodW5nIHRvaSBkYXQgDQp2YW4g ZGUuICJDbyIgVC4gbGFjIGRhdTogIkNhbiBnaSBzbywgZGFuIHZvIGtoYW0gdHJ1YyB0aWVwIGx1 b24sIDI1MC4wMDAgZG9uZyBsYSByZSByb2kiLiANClNhdSBtb3QgaG9pIGt5IGtlbyBnaWEgY2Es IGNodW5nIHRvaSBkb25nIHkgZGUgImNvIiBkYW4gZGkga2hhbS4gQ2hpIDE1IHBodXQgc2F1LCBo byBzbyANCmN1YSBjaHVuZyB0b2kgZGEgZHVvYyBsYXAsIHZhIGNobyBjaHVhIGRheSA1IHBodXQg ZGEgZGVuIGx1b3QgZG9uZyB0aWVuLCB0cm9uZyBraGkgbmh1bmcgDQpiZW5oIG5oYW4gY2FtIHBo aWV1IGtoYW0gc28gMjAwIC0gMzAwIHZhbiBjaHVhIGRlbiBsdW90LiAiQ28iIG8gZGF5IGhvYXQg ZG9uZyBraGEgDQpjb25nIGtoYWkgdmEgaGF1IG5odSBxdWVuIG1hdCBoZXQgbmh1bmcgbmhhbiB2 aWVuIG8gY2FjIGtoYXUuIERlbiBkYXUgaG8gY3VuZyBrZXUgdGVuIA0KbmhhbiB2aWVuIG1vdCBj YWNoIHRoYW4gbWF0IHZhIGR1YSBobyBzbyBjaGVuIG5nYW5nIG1vdCBjYWNoIGRlIGRhbmcuIE11 YyBwaGkgbyBkYXkgDQpkYW8gZG9uZyB0dSAxNTAuMDAwIC0gMjUwLjAwMCBkb25nIGNobyBtb3Qg c3VhdCAiY2FuIHRoaWVwIiBkZSBkdW9jIGtoYW0gc29tLg0KIA0KKEFuaDogIkNvIiBvIEJWIFVu ZyBidW91IGRhbmcgbmhhbiB0aWVuIGtoYW0gInNpZXUgdG9jIiAtIEFuaDogSC5OYW0pDQoNCkxh biBraGFjLCBraG9uZyB4ZXAgaGFuZyBsYXkgc28gbmh1IGxhbiB0cnVvYywgY2h1bmcgdG9pIGdv aSBkaWVuIHRob2FpIHRoYW5nIGNobyAiY28iIA0KdGVuIFAuIGRlICJkYXQgaGFuZyIga2hhbSBz b20gdm9pIGdpYSAyNTAgbmdhbiBkb25nLiAiQ28iIFAuIGhlbiB2YSBkb24gY2h1bmcgdG9pIG8g DQpjb25nIEJWLCByb2kgdGFuIHRpbmggZGFuIHZhbyBkZW4gdGFuIHBob25nIGtoYW0uICJDbyIg Z2lvaSB0aGlldSBjaHVuZyB0b2kgbGEgbmd1b2kgDQpuaGEgY3VhIGJhYyBzaSBILiBsYW0gbyBC ViwgeGluIGtoYW0gc29tLiBDaHVuZyB0b2kgZHVvYyBuZ29pIG5nYXkgdmFvIGNoaWVjIGdoZSAN CiJub25nIiBkZSBkbyBodXlldCBhcCwgbGFwIGJlbmggYW4gdHJ1b2Mga2hpIGdhcCBiYWMgc2ku IENodW5nIHRvaSBraG9uZyBraG9pIG5nYWkgDQpuZ3VuZyB2aSBtaW5oIGRhIGNoZW4gbmdhbmcg Y2EgdHJhbSBuZ3VvaSBiZW5oLiBDb25nIGRvYW4ga2hhbSBiZW5oIGNobyBjaHVuZyB0b2kgDQpj dSB0aGUgImNoYXkgdHJ1b2MiIGNhYyBiZW5oIG5oYW4ga2hhYywgdHUgbGFwIGJlbmggYW4sIGRv IGh1eWV0IGFwLCBkZW4ga2hhbSB2YSBsYW0gDQpub2kgc29pIHRhaS4uLiBDaGkgc2F1IG51YSBn aW8sIGNodW5nIHRvaSBkYSBjYW0gdHJlbiB0YXkgY2hhbiBkb2FuIGN1YSBiYWMgc2kgdmEgdG9h IHRodW9jIA0KZGlldSB0cmkuIEtoaSByYSB2ZSwgcXVhIGNvbmcgQlYsIG1vdCAiY28iIGtoYWMg dGllbiBsYWkgZ2FuIHRpZXAgdGhpOiAiTXVvbiBraGFtIHNvbSBjdSANCmdvaSwgZGF5IHNhbiBz YW5nIHBodWMgdnUuIFRodSBtYXUsIGtoYW0gdG9uZyBxdWF0IDExIGdpbyBjbyBrZXQgcXVhLCBu aHVuZyAxMCBnaW8gMzAgDQp0dWkgZGEgbGF5IGR1b2Mgcm9pLCBkZSBjaGkgY28gdGhlIGxlbiB4 ZSB2ZSBzb20iLiAiQ28iIG5heSBjaG8gYmlldCwgbyBCViBEYWkgaG9jIFkgDQpEdW9jIGNvIGhv biBjaHVjICJjbyIgaG9hdCBkb25nIGNvbmcga2hhaSwgImtoYWNoIiBhaSBuYXkgbGFtLCBraG9u ZyBkdW9jIHRyYW5oIGdpYW5oIA0KbGFuIG5oYXUuIEJpbmggcXVhbiBtb2kgbmdheSBtb3QgImNv IiBvIGRheSAiZ2l1cCIga2hhbSBzb20gY2hvIGtob2FuZyBjaHVjIG5ndW9pIA0KYmVuaC4gDQoN CkNvbmcgdmllYyBjdWEgImNvIiBjdW5nIGtoYSB2YXQgdmEsIHBoYWkgY2hheSB0b2kgY2hheSBs dWkgdnVhIGxhbSB0aHUgdHVjLCB2dWEgeGluIGRvbmcgDQp0aWVuIHNvbSwgdnVhIGRhbiBiZW5o IG5oYW4gZGkga2hhbSB2YSBwaGFpIGRlbyBiYW0gbmd1b2kgYmVuaCBkZSBsYXkgdGllbiBzYXUg a2hpIGtldCANCnRodWMgcGhpZW4gImdpYW8gZGljaCIuIEtoaSBkdW9jIGhvaSB2ZSBzbyB0aHUg bmhhcCB0aHVjIHN1IGR1b2MgaHVvbmcsIGNhYyAiY28iIGRldSANCnRoYW46ICJUaGF5IHZheSBj aHUgY3VuZyBwaGFpIGNoaWEgY2hvIG5oaWV1IG5ndW9pLCBkYXUgcGhhaSBtb3QgbWluaCBkdXQg dHVpIGR1b2MgaGV0IA0KZGF1ISIuIA0KDQoiQ28iIGNodXllbiBraG9hDQoNCihBbmg6ICJDbyIg UnVhIGNhbSBzbyBraGFtIGJlbmggdGFpIEJWIFVuZyBidW91IC0gQW5oOiBILk5hbSkgDQoNCjkg Z2lvIG5nYXkgMjkuNCwgY2h1bmcgdG9pIGRlbiBraGFtIHRhaSBCViBVbmcgYnVvdSAoVFAuSENN KSwgbHVjIG5heSBjYWMgZGF5IGdoZSANCm5nb2kgY2hvIGtoYW0gYmVuaCBkZXUgY2hhdCBraW4g bmd1b2kgYmVuaC4gQ2h1bmcgdG9pIHJhbyByYSBjb25nIEJWLCBsYXAgdHVjIG1vdCANCnRoYW5o IG5pZW4gbWFjIGFvIHRyYW5nIHRheSBkZW8gYmFuZyBkbyBuZ29hYyBsYWkgbW9pIHJhdCBjaHV5 ZW4gbmdoaWVwOiAiQW5oIGtoYW0gDQpzaWV1IHRvYyBraG9uZz8iLiBTYXUgY2FpIGdhdCBkYXUs IG5ndW9pIHRoYW5oIG5pZW4ga2VvIGNodW5nIHRvaSByYSBwaGlhIG5nb2FpIGNvbmcgZ2FwIA0K bW90IG5ndW9pIGRhbiBvbmcgbWFjIGFvIG1hdSB4YW5oLiBTYXUga2hpICJiYW4gZ2lhbyIgY2h1 bmcgdG9pIGNobyBuZ3VvaSBuYXksIHRoYW5oIA0KbmllbiBtYWMgYW8gdHJhbmcgZGVvIGJhbmcg ZG8gdm9pIGRpIHZhbyB0cm9uZyBCViB0aWVwIHR1YyBtb2kgY2hhbyBuZ3VvaSBiZW5oIGtoYWMu IA0KTmd1b2kgZGFuIG9uZyBhbyB4YW5oIHZ1aSB2ZSwgcmEgZ2lhIGNobyB2aWVjIGtoYW0gbmhh bmggbyB0YXQgY2EgY2FjIGtoYXU6IGtoYW0sIHNpZXUgDQphbSwgdGh1IG1hdSwgY2h1cCBYIC0g IHF1YW5nLCB2b2kgdG9uZyBjaGkgcGhpIGNobyBkaWNoIHZ1ICJjbyIgKGtob25nIGJhbyBnb20g dGllbiANCnRodW9jLCB0aWVuIGtoYW0pIGxhIDM1MC4wMDAgZG9uZy4gQ2h1bmcgdG9pIHRoYW4g ZGF0IHF1YSwgdGhpIGFuaCB0YSBkb2E6ICJOZXUgdHUgZGkgbGEgDQpkZW4gY2hpZXUgbW9pIGto YW0gZHVvYyBkYXkgbmhlLiBRdWEgZGljaCB2dSBjaGkgY2h1YSBkYXkgbW90IHRpZW5nIGxhIGhv YW4gdGF0Ii4gDQpDaHVuZyB0b2kgdGhhbiBraG9uZyBkdSB0aWVuIHRoaSBuZ3VvaSBuYXkgbm9p LCBuZXUgY2hpIGtoYW0ga2hvbmcgKGtob25nIHRodSBtYXUsIHhldCANCm5naGllbS4uLikgbGEg MjAwLjAwMCBkb25nLCB2YSBub2k6ICJUb2kgY2hpIGR1b2MgdGllbiBjb25nIHZhaSBjaHVjIG5n YW4gdGhvaSwgY29uIGxhaSANCnBoYWkgY2hpIGNobyBuaGlldSBuZ3VvaSwgdGhlbyBsdWF0IHJv aSA/ISIuIA0KDQpTYW5nIDEzLjUgY2h1bmcgdG9pIHRybyBsYWkgQlYgVW5nIGJ1b3UgbHVjIDgg Z2lvLiBMdWMgbmF5IG5odW5nIGhhbmcgZ2hlIHRhaSBwaG9uZyANCmtoYW0gRGF1IC0gQ28gY2hh dCBraW4gYmVuaCBuaGFuLCBjaHVuZyB0b2kgYm9jIHNvLCBkb25nIDIwLjAwMCBkb25nIGxlIHBo aSBraGFtIGJlbmggDQpvIHBob25nIDEuIFNhdSBkbyBjaG8gZG9pIGNhIHRpZW5nIGRvbmcgaG8g dmkgdHJ1b2MgY2h1bmcgdG9pIGNvbiBjYSB0cmFtIGJlbmggbmhhbiANCmtoYWMuIENobyBsYXUg dGhlLCBuaHVuZyBraGkgZGVuIGx1b3Qga2hhbSwgYmFjIHNpIHRyYSBzbyB2YSB5ZXUgY2F1IGRp IHNpZXUgYW0sIGNvIGtldCANCnF1YSBtb2kgY2hhbiBkb2FuIGR1b2MgYmVuaC4gTHVjIG5heSBw aG9uZyBzaWV1IGFtIGRhIGNvIGhhbmcgdHJhbSBuZ3VvaSBkYW5nIGRvaS4gDQoiQW5oIGtob25n IHF1YSAiY28iIHRoaSBkZW4gY2hpZXUgbW9pIGNvIGtldCBxdWEiIC0gbW90ICJjbyIgbWFjIGFv IHhhbmgsIGRlbyBiYW5nIGRvIA0Kbm9pIG5obyB2b2kgY2h1bmcgdG9pLiBLaGkgY2h1bmcgdG9p IGhvaSBnaWEsIHRoaSBsYXAgdHVjICJjbyIgbmF5IGRhbiBjaHVuZyB0b2kgcmEgZ2FwIA0KbW90 ICJjbyIgZGFuZyBjYW8sIGdheSwgbWFjIGFvIHhhbmgsICJjbyIgbmF5IHJhIGdpYSAyNTAuMDAw IGRvbmcuIENodW5nIHRvaSB0cmEgDQoxNTAuMDAwIGRvbmcuIExhbiBuYXksICJjbyIgY2hvdCBk dW5nIGdpYSAyMDAuMDAwIGRvbmcgbW9pIGxhbSwgdmEgbm9pOiAiVG9pIGNoaSBkdW9jIA0KdmFp IGNodWMgbmdhbiB0aG9pLCBjb24gbGFpIHBoYWkgZHVhIGNobyBuaGFuIHZpZW4gQlYiLiANCg0K UGhpYSB0cnVvYyBCViBEYSBsaWV1IChkdW9uZyBOZ3V5ZW4gVGhvbmcsIFEuMykgY3VuZyBsYSBu b2kgImNvIiBob2F0IGRvbmcga2hhIHhvbSANCnR1LiAiQ28iIGhvYW5oIGhhbmggdGFpIGRheSBj b25nIGtoYWksIG5nYXkgdHJ1b2MgbWF0IGJhbyB2ZSBCViwgbW9pIGNoYWksICJiYXQiIGJlbmgg DQpkdWEgdmUgY2FjIHBob25nIG1hY2ggdHUgZ2FuIGRvLiBCYW8gVGhhbmggTmllbiBkYSB0dW5n IGNvIGJhaSBwaGFuIGFuaCB0aW5oIHRyYW5nIA0KImNvIiBvIEJWIG5heSwgQlYgY3VuZyBkb2Mg dGhvbmcgYmFvIGNhbmggZ2lhYyB2b2kgImNvIiByaSByYSBzdW90IG5nYXksIHRoZSBuaHVuZyBo aWVuIA0KbmF5LCB0aW5oIHRyYW5nICJjbyIgbyBkYXkgdmFuIHRoZS4gS2hpIG5ndW9pIGJlbmgg Y2h1YSBkZW4gY29uZyBCViwgbGEgbHVjIGx1b25nICJjbyIgDQpvIGRheSBjbyBraG9hbmcgY2h1 YyBuZ3VvaSAoaGF1IGhldCBsYSBuYW0pIGRlbiBjYW0gdGF5IGxvaSBrZW8uIEtob25nIGNoaSBu Z3VvaSBiZW5oLCANCmhlIGFpIGRlbiBkb2FuIGR1b25nIHRydW9jIEJWIERhIGxpZXUgbWEgY2hh eSB4ZSBjaGFtIGxhaSBtb3QgY2h1dCBsYSBjdW5nIGJpICJjbyIga2VvIA0KeGUgbmdheS4gQmFp IGNhIGN1YSAiY28iIG5oYW0gZHUgZG8ga2hhY2ggcmEgcGhvbmcgbWFjaCBiZW4gbmdvYWkgbGEg IkhvbSBuYXkgQlYgDQpraG9uZyBraGFtIGJlbmgiOyAiR2lvIG5heSBkb25nIGxhbSwgZG9pIGRl biBjaGlldSBtb2kga2hhbSBkdW9jLCByYSBuZ29haSBraGFtIA0KbmhhbmggaG9uLi4uIi4gDQoN CkNodW5nIHRvaSBkb25nIHksICJjbyIgbGFwIHR1YyAiYmFuIGdpYW8iIGNodW5nIHRvaSB2YSBz byBraGFtIGJlbmggY2hvIG1vdCAiY28iIGtoYWMgDQpkZW8gYmFuZyBkbyB0ZW4gTmd1eWVuIFZh biBSdWEuICJDbyIgUnVhIGR1YSBjaHVuZyB0b2kgcXVhIGJlbiBraWEgZHVvbmcgTm8gVHJhbmcg DQpMb25nIHZhbyBwaG9uZyBzaWV1IGFtIHNvIDQ4QiBOZ3V5ZW4gSHV5IEx1b25nLiBUYWkgZGF5 IHNhdSBraGkgZG9uZyAxMDAuMDAwIA0KZG9uZywgY2h1bmcgdG9pIGR1b2Mgc2lldSBhbSBuZ2F5 LiBTYXUgZG8gImNvIiBSdWEgZGFuIGNodW5nIHRvaSB2ZSBsYWkgQlYgYmFuIGdpYW8gc28gDQpr aGFtIGJlbmggdmEga2V0IHF1YSBzaWV1IGFtIGNobyAiY28iIGRhdSB0aWVuIG1hIGNodW5nIHRv aSB0aWVwIHh1YywgdmEgbm9pOiAiRG9pIG8gDQpwaG9uZyBraGFtIHNvIDEsIGxhdCBzZSBjbyBu aGFuIHZpZW4gQlYgZGFuIHZhbyBraGFtIGxpZW4iLiBMb2kgY3VhICJjbyIgcXVhIHJhdCB1eSB0 aW4uIA0KTmdheSBzYXUgZG8sIGNvIG1vdCBudSBobyBseSBkaSBuaGFuaCB2ZSBwaGlhIHBob25n IGtoYW0gc28gMSwgImNvIiBiYW4gZ2lhbyBjaHVuZyB0b2kgDQpjaG8gbmd1b2kgbmF5IHJvaSBk aSByYSBuZ29haS4gTnUgbmhhbiB2aWVuIG5heSBkYW4gY2h1bmcgdG9pIHZhbyBwaG9uZyBraGFt IHZhIG5vaSANCm5obyBnaSBkbyB2b2kgbW90IG51IG5oYW4gdmllbiBkYW5nIG5nb2kgZ2hpIHRl biBiZW5oIG5oYW4sIHJvaSBxdWF5IHJhIG5vaSB2b2kgY2h1bmcgDQp0b2k6ICJOZ29pIGdoZSBj aG8gYmFjIHNpIGtoYW0gbGllbiIuIFF1YSB0aGF0LCBjaHVuZyB0b2kgZHVvYyBnb2kga2hhbSBu Z2F5LiBYZW0ga2V0IA0KcXVhIHNpZXUgYW0sIGJhYyBzaSBub2kgY2hpIGJpIHZpZW0gaG9uZyBu aGUgdmEga2UgdG9hIGNobyB2ZS4gTmhpbiBjaHVuZyB0b2kgZHVvYyB2YW8gDQpraGFtIHNvbSwg bmhpZXUgbmd1b2kgYmVuaCBuZ29pIGNobyB0cm9uIHhvZSBtYXQsIG5nYWMgbmhpZW4hIFRoZW8g Z2hpIG5oYW4gY3VhIA0KY2h1bmcgdG9pLCB0cm9uZyBtYXkgdHVhbiBxdWEsIHRydW9jIGNvbmcg QlYgVW5nIGJ1b3UgZGEgeHVhdCBoaWVuIHRybyBsYWkgdHJ1bSAiY28iIGNvIA0KYmlldCBkYW5o ICJUdSBLLiIuIFRydW9jIGRheSBUdSBLLiBtb3QgdGhvaSBsYW0gbXVhLCBsYW0gZ2lvIHRydW9j IEJWIG5heSwgY2hpIGRhbyANCmRhbSAiY28iIGRhbiBlbSBtb2Mgbm9pIHJhdCBuaGlldSBiZW5o IG5oYW4gZHVhIHJhIG1vdCBudSBiYWMgc2kgdGVuIEhhIGNvIHBob25nIA0KbWFjaCBvIFEuVGFu IEJpbmggZGUga2hhbSBiZW5oIGx1YyBzYW5nIHNvbS4gRGlldSBkYW5nIG5vaSwgYmFjIHNpIEhh IGtob25nIHBoYWkgbGEgDQpiYWMgc2kgY2h1eWVuIHZlIHVuZyB0aHUuIENvbmcgYW4gUS5CaW5o IFRoYW5oIGRhIG1vaSBUdSBLLiBsZW4gbGFtIHZpZWMsIHNhdSBkbyB0cnVtIA0KImNvIiBuYXkg bW90IHRob2kgZ2lhbiBwaGFpIHZhbmcgYm9uZyBvIEJWIFVuZyBidW91LiANCg0KQ2h1eWVuICJj byIgaG9hdCBkb25nIG8gY2FjIEJWIGtob25nIGNoaSBsYW0gbWF0IHRyYXQgdHUsIG1hIGNvbiBn YXkgdGhpZXQgdGhvaSBjaG8gDQpuaHVuZyBuZ3VvaSBiZW5oIGtob25nIGJpZXQgY2hpIHRpZW4g Y2hvICJjbyIsIGhvIHBoYWkgbmdvaSBkb2kgaGV0IGx1b3QgbmF5IGRlbiBsdW90IA0Ka2hhYyBj aGVuIG5nYW5nLiBLaG9uZyBpdCBsYW4gY2h1bmcgdG9pIGNodW5nIGtpZW4gY2FuaCBiZW5oIG5o YW4gbWV0IG1vaSBub2kgbm9uZyANCnZvaSBuaHVuZyBuaGFuIHZpZW4gbyBCViwgdmkgImNobyBk b2kgbW9pIG1vbiBtYSBraG9uZyB0aGF5IGdvaSB0ZW4iLiAoQ29uIHRpZXApIA0KDQpodHRwOi8v d3d3LnBodW51b25saW5lLmNvbS52bi8yMDEwL1BhZ2VzL21vaS1uYW0tbWF0LXRyb20tMzAwMC14 ZS1tYXkuYXNweCAwNC8wMS8yMDEwIDEwOjU0ICANCg0KVFAgSENNOiBNb2kgbmFtIG1hdCB0cm9t IDMuMDAwIHhlIG1heSAtIEJhbyBkb25nIHRvaSBwaGFtIGN1b3AgImNvIGhvaSB2YSBsdXUgZG9u ZyIgDQoNCmh0dHA6Ly93d3cucGh1bnVvbmxpbmUuY29tLnZuLzIwMTAvUGFnZXMvdnUtaG9jLXNp bmgtYmktZGllbi1naWF0LWNoZXQtby1xdGh1LWR1Yy10cGhjbS1zZS1raG9pLXRvLXZ1LWFuLmFz cHggMjIvMDEvMjAxMCA4OjI3ICANCg0KVFAuSENNOiBNb3QgaG9jIHNpbmggYmkgZGllbiBnaWF0 IGNoZXQgdGFpIGNvbmcgdHJ1b25nIGxhcCBkYXQgY29uZyBYdWFuIFRydW9uZyAoUC5MaW5oIFh1 YW4sIFEuVGh1IER1YykuICANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vZGVmYXVs dC5hc3B4P0NUPU5XJk5JRD02MDc1IDI4LzEyLzIwMDcNCg0KVFBIQ006IENhbiBjYXUgc2FwIGxh bSA1IG5ndW9pIGJpIHRodW9uZw0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIwLTM2NjUy My9yb3QtZ29pLWNhdS1iaW5oLXRyaWV1LWdpYW8tdGhvbmctaG9uLWxvYW4uaHRtIDEwLzEyLzIw MDkgLSAwMDozMA0KDQpUUEhDTTogUm90IGdvaSBjYXUgQmluaCBUcmlldSwgZ2lhbyB0aG9uZyBo b24gbG9hbiANCg0KaHR0cDovL3BoYXBsdWF0dHAudm4vMjAxMDAxMjgwODI4NDAxODJwMTAxNWMx MDc0L2Jvbi1jYW4tbmhhLWJpLXRoaWV1LXJ1aS1vLXRwaGNtLmh0bSAyOC8wMS8yMDEwIC0gMDg6 MjggUE0NCg0KVFAuSENNOiBCb24gY2FuIG5oYSBiaSB0aGlldSBydWkNCg0KaHR0cDovL3ZuZXhw cmVzcy5uZXQvR0wvUGhhcC1sdWF0LzIwMDgvMTIvM0JBMDk0MkMvDQoNCkNvbmcgdHJpbmggdm9u IGRhdSB0dSAxMC4wMDAgdHkgZG9uZyBiaSBydXQgcnVvdCAtIGR1IGFuIGR1b25nIGNhbyB0b2Mg VFAgSENNIC0gVHJ1bmcgTHVvbmcNCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL1F1 eS1ob2FjaC10cmVvLWR1LWFuLXRyZW8tdGFpLVRQSENNLUxhbS1raG8tZGFuLzIwMDc1LzM3MTM0 Lmxhb2RvbmcgMjEuNS4yMDA3IDA3OjM0IChHTVQgKyA3KQ0KDQpUUEhDTTogUXV5IGhvYWNoICJ0 cmVvIiwgZHUgYW4gInRyZW8iIGxhbSBraG8gZGFuIA0KDQoiTWFjIGNhbiIgdm9pIHF1eSBob2Fj aCAidHJlbyIgLSBRdXkgaG9hY2ggZ2l1IGRhdCAtIGRhbiBjaGV0IGRvIC0gUXV5IGhvYWNoIGNo b25nIGxlbiBxdXkgaG9hY2ggDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL3Bh Z2VzLzIwMTAwMi8yMDEwMDEwNDAxMTkzOS5hc3B4IDA0LzAxLzIwMTAgMToxOSAgIA0KIA0KVFAu SENNOiBEdSBhbiBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW06IDYgYmkgY2FuIGNoaWVtIGRvYXQg Z2FuIDQgdGkgZG9uZyAgIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvR2lhaS10 b2EtMTUtbmdhbi1oby1kYW4tbmh1bmcta2hvbmctY28tcGh1b25nLWFuLWJvaS10aHVvbmcvMjAw OTIvMTI2NDA1Lmxhb2RvbmcgTGFvIERvbmcgc28gMzMgTmdheSAxNi8wMi8yMDA5IENhcCBuaGF0 OiA4OjM1IEFNLCAxNi8wMi8yMDA5DQoNClRQSENNOiBCb2kgdGh1b25nLCBnaWFpIHRvYSwgdGFp IGRpbmggY3Uga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtICANCg0KR2lhaSB0b2EgMTUgbmdhbiBo byBkYW4sIG5odW5nIGtob25nIGNvIHBodW9uZyBhbiBib2kgdGh1b25nIA0KDQpodHRwOi8vd3d3 LmJhb3hheWR1bmcuY29tLnZuLz9NTlU9MTE0MSZDaGl0aWV0PTEwODg0JlN0eWxlPTEgQ2FwIG5o YXQ6IDEwLzUvMjAwOCA4OjA1OjMwIEFNDQoNClRQSENNOiBDb25nIGJvIGtldCBsdWFuIHRoYW5o IHRyYSB2ZSBEdSBhbiBLaHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0NCg0KTm9pIGR1bmcga2V0IGx1 YW4gdGhhbmggdHJhIGRhIGNoaSByYSBuaHVuZyBzYWkgcGhhbSB0cm9uZyBxdWEgdHJpbmggdGh1 YyBoaWVuIGR1IGFuLiBDdSB0aGUgdmllYyBLaWVuIHRydWMgc3UgdHJ1b25nIHRoYW5oIHBobyBI byBDaGkgTWluaCBwaGUgZHV5ZXQgcXV5IGhvYWNoIGNoaSB0aWV0IDEvMjAwMCBraHUgdHJ1bmcg dGFtIERvIHRoaSBtb2kgVGh1IFRoaWVtIGxhbSBnaWFtIDIyaGEgc28gdm9pIGRpZW4gdGljaCBk dW9jIFRodSB0dW9uZyBDaGluaCBwaHUgcGhlIGR1eWV0IHZhIHNhdSBkbyBraG9uZyBkdW9jIHBo byBiaWVuIGNvbmcga2hhaSBkZW4gbmd1b2kgZGFuIGxhIHZpIHBoYW0gTmdoaSBkaW5oIDkxL05E LUNQLg0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDQyMTExMDgzOTgvdHBfaG9fY2hpX21pbmhf Y2FuX2NoYW1fZHV0X25odW5nX2R1X2FuX3hlX3RoaXRfY29uZ192aWVuLmh0bWwgVGh1IGJhLCAy OS84LzIwMDYsIDE6MjcgQU0gDQoNClRQIEhvIENoaSBNaW5oOiBDYW4gY2hhbSBkdXQgbmh1bmcg ZHUgYW4gInhlIHRoaXQiIGNvbmcgdmllbiANCg0KaHR0cDovL2Rhbmd0aW5uaGFkYXQudm4vQmFu Y2FuYmlldGNoaXRpZXQuYXNweD9pZD04MjUgVGhlbyBzZ3R0LmNvbS52biAzMC8xMS8yMDEwDQoN ClRQIEhDTTogQ2h1eWVuICJxdXkgaG9hY2ggdHJlbyIgY2FjIGNvbmcgdmllbiAtIGdheSBraG9u ZyBpdCBwaGllbiBoYSBjaG8gbmd1b2kgZGFuIA0KDQpLaHUgdnVjIG5vaSB0aGFuaCBUUC5IQ00g aGllbiBjaGkgY28gMTEzIGNvbmcgdmllbiwgdnVvbiBob2EgdmEgdGhhbSBjbyB2b2kgcXV5IG1v IA0KMjMzIGhlY3RhLCBjaGllbSAxLDclIHRvbmcgZGllbiB0aWNoIGRhdCB0dSBuaGllbiBjdWEg dGhhbmggcGhvLiBWYXkgbWEgdm9pIHNvIGx1b25nIA0KIm1hbmcgeGFuaCIgaXQgb2kgZG8sIGNo dW5nIHRhIGNvbiBxdWFuIGx5IGtob25nIG5vaSwgZGUgY2FjIGNvbmcgdmllbiBiaSAieGVvIHRo aXQiIA0KbW90IGNhY2gga2hvbmcgaGUgdGh1b25nIHRpZWMgbGFtIG5vaSBidW9uIGJhbiwga2lu aCBkb2FuaC4NCg0KTW9pIHRydW9uZyB0aHUgZ2lhbiB4YW5oIJYgc2FjaCBoaWVtIGhvaSBjdWEg bmd1b2kgZGFuIGJpIGJpZW4gdGhhbmggbm9pIHR1IHRhcCBvbiBhbywgDQpuaGVjaCBuaGFjLiBN YWMgZHUgVUJORCBUUC5IQ00gZGEgY28gY29uZyB2YW4gc28gMTU2NS9VQi1EVCwgdHJvbmcgZG8g cXV5IGRpbmggDQpybzogIktob25nIGR1b2MgcGhlcCBkdWEgY2FjIGhvYXQgZG9uZyBtdWEgYmFu LCBraW5oIGRvYW5oIHZhbyBjb25nIHZpZW4gZHVvaSBiYXQga3kgDQpoaW5oIHRodWMgbmFvIiBu aHVuZyB0aHVjIHRlIGNobyB0aGF5IHZpZWMgcXVhbiBseSBjb25nIHZpZW4gaGllbiBuYXkgaG9h biB0b2FuIGJpIA0KYnVvbmcgbG9uZy4gS2h1b24gdmllbiBjdWEgbmhpZXUgY29uZyB2aWVuIG5o dSBIb2FuZyBWYW4gVGh1IChxdWFuIFRhbiBCaW5oKSwgR2lhIA0KRGluaCAocXVhbiBHbyBWYXAp LCBWYW4gTGFuZyAocXVhbiA1KSwgUGh1IExhbSAocXVhbiA2KSBkYW5nIGJpIGNhYyBxdWFuIGNh IHBoZSBnaWFpIA0Ka2hhdCB2YSBkb2kgcXVhbiBiYW4gaGFuZyByb25nIG5odSBrZW0sIHh1YyB4 aWNoLCBibyBiaWEgYmllbiB0aGFuaCBjdSBkaWVtLiBEYW5nIGxvIA0KbmdhaSBob24sIG5oaWV1 IGNvbmcgdmllbiBoaWVuIG5heSBjb24gYmkgY2FjIGxvYWkgdGUgbmFuIHhhIGhvaSAidGFuIGNv bmciIG1vdCBjYWNoIA0KY29uZyBraGFpLiBOaHUgdmF5IHZvaSBzbyBsdW9uZyBpdCBvaSBjb25n IHZpZW4gZGFuZyBjbywgY2h1bmcgdGEgY29uIHF1YW4gbHkga2hvbmcgDQpub2kuIFZheSBtYSBv YWkgYW0gdGhheSwgdGhhbmggcGhvIGhpZW4gY29uIGNvIGhhbmcgdHJhbSBjb25nIHZpZW4gZGFu ZyB0b24gdGFpIHRyZW4uLi4gZ2lheSANCnZhIHRyb25nIGNhYyBxdXlldCBkaW5oIHBoZSBkdXll dCBxdXkgaG9hY2ggY3VhIE5oYSBudW9jLiBQaGFpIGNoYW5nIGRvIGNoaSBsYSBtb3QgDQpoaW5o IHRodWMgInF1eSBob2FjaCIgdmUgbWF0ICJseSB0dW9uZyIgdHJvbmcgdGluaCBoaW5oIHRoYW5o IHBobyBkYW5nIG5nYXkgY2FuZyBvIG5oaWVtIHRyYW0gdHJvbmcgbmh1IGhpZW4gbmF5Pw0KDQpE aWV1IGRhbmcgbm9pIGxhIG5odW5nIGR1IGFuIG5heSB0dXkgZGEgImFuIGJpbmggYmF0IGRvbmci IGhvbiBjaHVjIG5hbSBuYXkgdmkgdGhpZXUgDQpraW5oIHBoaSB0aHVjIGhpZW4gbmh1bmcgdmFu IGdheSByYSBraG9uZyBpdCBwaGllbiBoYSBjaG8gY3VvYyBzb25nIGN1YSBuZ3VvaSBkYW4uIA0K RG8gYmkgZ2FuIGNhaSBtYWMgInF1eSBob2FjaCB0cmVvIiBuZW4ga2hvbmcgYWkgY28gdGhlIHhh eSBjYXQgaG9hYyBjaHV5ZW4gbmh1b25nIG5oYSBjdWEuDQoNCmh0dHA6Ly9xdXltb2l0cnVvbmdo YW5vaS52bi9jb250ZW50MzcwLnZuZGMgMjMuMTEuMjAwOSAxMDowMw0KDQpUUEhDTTogTyBuaGll bSBraG9uZyBraGkgbmdoaWVtIHRyb25nIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1o b2kvMjAwOC8wNy8zQkEwNDk3Ri8gMTgvNy8yMDA4LCAxNzoyNSBHTVQrNw0KDQpUUCBIQ006IE5n dXllbiBDaHUgdGljaCBVQk5EIHBodW9uZyAxMSB2YSBwaHVvbmcgMTIsIHF1YW4gR28gVmFwLCBi aSBwaGF0IGhpZW4gbmhhbiB0aWVuIGN1YSBkYW4gZGUgaG9wIHRodWMgaG9hIG5oYSB4YXkgZHVu ZyB0cmFpIHBoZXAgdmEga2hvbmcgdGh1YyBoaWVuIHZpZWMgY2h1eWVuIG11YyBkaWNoIHN1IGR1 bmcgZGF0Lg0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvU28tY2EtY2hhbi10aHVv bmctc28tbmFvLXZhLXR1LXZvbmctdGFuZy1nYXAtZG9pLW5hbS1uZ29haS8yMDEwMi8xNzQ3NjQu bGFvZG9uZyA3OjI2IEFNLCAyMi8wMi8yMDEwDQoNClRQSENNOiBTbyBjYSBjaGFuIHRodW9uZyBz byBuYW8gdmEgdHUgdm9uZyB0YW5nIGdhcCBkb2kgbmFtIG5nb2FpDQoNClRoZW8gc28gbGlldSBi YW8gY2FvIGN1YSAzOSBkb24gdmkgeSB0ZSB0cmVuIGRpYSBiYW4gVFBIQ00sIHRyb25nIDMgbmdh eSB0ZXQgKHR1IDEyIHRvaSAxNC4yLjIwMTApLCB0b25nIHNvIGx1b3QgYmVuaCBuaGFuIHRvaSBr aGFtIGNhYyBsb2FpIHRhaSBjYWMgYmVuaCB2aWVuIChCVikgbGEgMTYuMTE3IGNhLg0KDQpodHRw Oi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYvMDcvM0I5RUJEMEMvIDExLzcvMjAw NiwgMDY6MzUgR01UKzcNCg0KRGVuIDIwMTAsIFRQIEhDTSBjaGkgdGFuZyB0aGVtIDMuMTAwIGhh IGRhdCBvDQoNClRyb25nIHBodW9uZyBhbiBkaWV1IGNoaW5oIHF1eSBob2FjaCBzdSBkdW5nIGRh dCBkZW4gMjAxMCBtYSBVQk5EIFRQIEhDTSB0cmluaCBIRE5EIHRhaSBreSBob3AgbGFuIHRodSA3 IHNhbmcgMTEvNywgdHJvbmcgNSBuYW0gdG9pICh0dSAyMDA2LTIwMTApLCBUUCBIQ00gY2hpIGRh bmggdGhlbSAzLjEwMCBoYSBkYW5oIGNobyBkYXQgby4gU28gdm9pIHF1eSBob2FjaCBjdSBkYSBk dW9jIFRodSB0dW9uZyBwaGUgZHV5ZXQsIGRpZW4gdGljaCBkYXQgbyBnaWFtIGhvbiAxMy4zMDAg aGEuDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMjE3ODkxL1NhaS1waGFt LW5naGllbS10cm9uZy10YWktVmlldG5hbS1BaXJsaW5lcy5odG1sIFRodSBTYXUsIDMxLzA4LzIw MDcsIDA4OjMyIChHTVQrNykgDQoNClRhaSBUb25nIGNvbmcgdHkgRGlhIG9jIFNhaSBHb246DQoN CkRvYW4gdGhhbmggdHJhIENQIHhhYyBkaW5oIGNvIG5oaWV1IHNhaSBwaGFtIHZvaSBzbyB0aWVu IGxlbiBkZW4gMTUsODMyIHRpIGRvbmcuIA0KVHJvbmcgZG8sIHF1eWV0IHRvYW4gc2FpIGtob2Fu ZyAxNCB0aSwgc3UgZHVuZyBkYXQga2hvbmcgZHVuZyBjaGUgZG8gaG9uIDEgdGksIG5vIHRpZW4g c3UgDQpkdW5nIGRhdCAyNjIgdHJpZXUsIHRoYW5oIHRvYW4gc2FpIDc5IHRyaWV1LCBjaGkgc2Fp IHZ1b3QgcXVpIGRpbmggNzY2IHRyaWV1LCB0dSB0YW5nIGdpYSBiYW4gDQpob24gNiB0aSBkb25n LCBubyB0aHVlIHRodSBuaGFwIGRvYW5oIG5naGllcCBraG9hbmcgMzggdHJpZXUuIA0KDQpodHRw Oi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8wMy8zQjlFN0VEMC8gMjMvMy8yMDA2LCAx MDoxOCBHTVQrNw0KDQpUUCBIQ006IFRvbmcgY2hpZXUgZGFpIGRvYW4gZHVvbmcgYmkgbmdhcCB0 aHVvYyBkdW9uZyBOZ3V5ZW4gSHV1IENhbmggZHVvYyB0aG9uZyBrZSBsYSBob24gMzAwIG0sIHZv aSBkbyBuZ2FwIHNhdSB0dSAyMCBkZW4gNjAgY20uIA0KDQpUaGVvIHRpbmggdG9hbiwgbXVvbiBt YXQgZHVvbmcgdnVvdCBxdWEgZGluaCB0cmlldSBjdW9uZyBjYW8gbmhhdCB0aGkgcGhhaSBuYW5n IGNhbyB0aGVtIDYwLTEwMCBjbS4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQLUhvLUNo aS1NaW5oLVRlLW5hbi10aGFtLW5odW5nLWxhbmctcGhpLWNodWEtZHVvYy1kYXktbHVpLzQ1MjIz NDM0LzE1Ny8gMTEvMS8yMDA3LCAyMzozMSBHTVQrNw0KDQpUUCBIbyBDaGkgTWluaDogVGUgbmFu IHRoYW0gbmh1bmcsICJsYW5nIHBoaSBraG9uZyBkdW9jIGRheSBsdWksIGtob25nIGRhcCB1bmcg ZHVvYyBsb25nIG1vbmcgbW9pIGN1YSBuaGFuIGRhbiIgDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNv bS90cGhjbV9zYWlfcGhhbV9uZ2hpZW1fdHJvbmdfb19kdV9hbl9kYXVfdHVfY250dC02LTIxMzIz ODYyLmh0bWwgICBOZ3VvbjogVGllblBob25nLnZuDQoNClRQSENNOiBTYWkgcGhhbSBuZ2hpZW0g dHJvbmcgbyBkdSBhbiBkYXUgdHUgQ05UVCAtIE5hbmcgZ2lhIGRlIG1vaSB0aWVuIG5nYW4gc2Fj aA0KDQpUcm9uZyBxdWEgdHJpbmggdGhhbmggdHJhLCBjbyBxdWFuIGNodWMgbmFuZyBkYSBwaGF0 IGhpZW4gbmhpZXUgc2FpIHBoYW0gbmdoaWVtIHRyb25nIA0KdGFpIFRydW5nIHRhbSB0aW4gaG9j IChUVFRIKSwgdGh1b2MgVmFuIHBob25nIEhETkQgJiBVQk5EIFRQSENNLiANCg0KVGhlbyBLZXQg bHVhbiB0aGFuaCB0cmEsIFZhbiBwaG9uZyBIRE5EJlVCTkQgVFBIQ00gZGEga2hvbmcgdHVhbiB0 aHUgcXV5IA0KZGluaCB2ZSBxdWFuIGx5IGNoaSBwaGkgZGF1IHR1LCBjbyBkYXUgaGlldSB2aSBw aGFtIHF1eSBkaW5oIHZlIHRoYW5oLCBxdXlldCB0b2FuLiANCkNhbiBjdSB2YW8gZGUgeHVhdCBj dWEgVHJ1bmcgdGFtIHRpbiBob2MsIGNodSBkYXUgdHUgZGEgdHJpbmgsIGRlIG5naGkgcXV5ZXQg dG9hbiB2dW90IA0KZGluaCBtdWMgc28gdGllbiBob24gMSw2IHR5IGRvbmcuICANCg0KTmdoaWVt IHRyb25nIGhvbiwgVmFuIHBob25nIEhETkQmVUJORCBUUEhDTSBkYSBidW9uZyBsb25nIHF1YW4g bHkgZGUgVHJ1bmcgDQp0YW0gdGluIGhvYyB2aSBwaGFtIG5naGllbSB0cm9uZyBjYWMgcXV5IGRp bmg6IENvIHkgbGFtIHRyYWkgZ2F5IHRoaWV0IGhhaSBuZ2FuIHNhY2ggDQpOaGEgbnVvYywgbGFw IG1hbmcgZHVuZyByaWVuZyBraG9uZyBjbyBnaWF5IHBoZXAsIG5naGllbSB0aHUgaG9wIGRvbmcg c2FpIGtob2kgbHVvbmcuICANCg0KaHR0cDovL3d3dy50aGF1a2luaHZpZXRuYW0uY29tL2luZGV4 LnBocC94YWhvaS90cC1oY20tdGhhbmgtdHJhLWtpZW4tbmdoaS10aHUtaG9pLTIwLTUtdHktZG9u Zy1zYWktcGhhbS8xNTAxNjcuc24NCg0KVFAgSENNOiBTYWkgcGhhbSB0YWkgY2hpbmggMSw0NSB0 eSBkb25nIHRhaSBEYWkgVHJ1eWVuIGhpbmggVFAuSENNDQoNCmh0dHA6Ly93d3cuYmFvZGF0dmll dC52bi9Ib21lL3RoZWdpb2lzbzEvRGFpLXRydXllbi1oaW5oLVRQLUhDTS1CYW4tc29uZy1iYW4t a2VuaC10cmFuLWxhbi8yMDEwNi85Nzc3MC5kYXR2aWV0IDk6MjQgQU0sIDE1LzA2LzIwMTANCg0K VFAgSENNOiBEYWkgdHJ1eWVuIGhpbmggVFAgSENNIGJhbiBzb25nLCBiYW4ga2VuaCB0cmFuIGxh biANCg0KQ2hvIGRvaSB0YWMgdHVuZyBob2FuaCAtIFV1IGRhaSB0aG9hbmcgYmF0IG5nbw0KDQpL aG9uZyBjaGkgYm8gbWFjIGRvaSB0YWMgdHUgZG8ga2hhaSB0aGFjIG5vaSBkdW5nIHZhIHN1IGR1 bmcgbWllbiBwaGkgbmhpZXUgY2h1b25nIHRyaW5oLCANCkhUViBjb24gZHVhIHJhIG5oaWV1IHV1 IGRhaSB0aG9hbmcgZGVuIGxhIGx1bmc6IGJhbiB0aHVvbmcgaGlldSwgYmFuIGNvIHNvIHZhdCBj aGF0LCBidSBkYXAgDQpjaGkgcGhpLC4uLmNobyBkb2kgdGFjLCBsYW0gdGhhdCB0aHUgaGFuZyBj aHVjIHR5IGRvbmcuDQoNCmh0dHA6Ly93d3cyLnRoYW5obmllbi5jb20udm4vUGhhcGx1YXQvMjAw OC84LzQvMjU0MzA3LnRubw0KDQpUUCBIQ006IE5oaWV1IHNhaSBwaGFtIG5naGllbSB0cm9uZyB0 YWkgQ29maWRlYyANCg0KQ28gcXVhbiBjaHVjIG5hbmcgZGEgcGhhdCBoaWVuIGhhbmcgbG9hdCBz YWkgcGhhbSBraW5oIHRlIG5naGllbSB0cm9uZyB0YWkgQ29maWRlYywgDQp0dW5nIGR1b2MgeGVt IGxhIGRvYW5oIG5naGllcCBjaGUgYmllbiB2YSB4dWF0IGtoYXUgaGFuZyB0aHV5IGhhaSBzYW4g aGFuZyBkYXUgY3VhIA0KVFAuSENNOyBjbyBkYXUgaGlldSB2aSBwaGFtIEx1YXQgUGhvbmcsIGNo b25nIHRoYW0gbmh1bmcgdmEgY28geSBsYW0gdHJhaSBxdXkgZGluaCANCnBoYXAgbHVhdCwgZ2F5 IGhhdSBxdWEgbmdoaWVtIHRyb25nIHZlIHRoaWV0IGhhaSBraW5oIHRlLiANCkRheSBsYSBtb3Qg dHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZGFuIGRlbiB2aWVjIHR1IG5hbSAyMDA0IGRlbiBuZ2F5 IDMwLjYuMjAwNywgDQpjb25nIHR5IGxpZW4gdHVjIGxvIGhvbiAxMDEgdGkgZG9uZyAoc28gdHJv bikuIA0KDQpNYWMgZHUsIFVCTkQgVFAuSENNIGRhIGNobyBwaGVwIENvZmlkZWMgYmFuIHRhaSBz YW4gKHRoYW5oIGx5IHhpIG5naGllcCBUaHUgRHVjLCANCm5oYSBvIFEuMSwgZGVuIGJ1IGRhdCBv IEguQ2FuIEdpbykgZHVvYyBob24gNDksMyB0aSBkb25nLCBuaHVuZyBjdW5nIGtob25nIGR1IGJ1 IGRhcCANCmtob2FuIHRoaWV0IGhhaSB0dSBob2F0IGRvbmcgc2FuIHh1YXQga2luaCBkb2FuaCB2 YSBraG9hbiBubyBraG8gdGh1IGhvaS4gVHUgZG8sIA0KZGFuIGRlbiB0aW5oIGhpbmggdGFpIGNo aW5oIGN1YSBjb25nIHR5IGR1IGtpZW4gZGVuIG5nYXkgMzAuNi4yMDA3IG1hdCBjYW4gZG9pIGhv biA3MiB0aSBkb25nLiANCg0KRGFjIGJpZXQsIGNvIHF1YW4gY2h1YyBuYW5nIGNvbiBwaGF0IGhp ZW4gQ29maWRlYyB4dWF0IGtoYXUgaGFuZyB0aHV5IHNhbiBuaHVuZyANCmtob25nIHRodSBob2kg ZHVvYyB0aWVuLCBzbyBubyBraG8gZG9pIGxlbiBkZW4gaG9uIDIsMyB0cmlldSBVU0QuIA0KDQpO Z29haSByYSwgY28gcXVhbiBjaHVjIG5hbmcgY29uIHBoYXQgaGllbiBuaGlldSBzYWkgcGhhbSBr aGFjIGxpZW4gcXVhbiBkZW4gdmllYyANCmJhbiBoYW5nIGN1YSBDb2ZpZGVjLCBuaHUgdHJvbmcg bmhpZXUgaG9wIGRvbmcgYmFuIGhhbmcgY3VhIENvZmlkZWMgY28gZGF1IGhpZXUgDQpnaWEgbWFv IGNodSBreSwgaG8gc287IGh1eSBjaHVuZyB0dSBtdWEgaGFuZy4uLiANCg0KaHR0cDovL3d3dy52 aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDgvVHJ1eS1xdWV0LXNhdC10aHUtdHJlbi1zb25nLVNhaS1H b24tOTI5MTIxLyBOaGF0IFRhbiAtIFRoaWV1IEh1eWVuIC0gVHJ1bmcgTGlldSAtIE1pbmggVGFt IDEwOjA2LCAxNS8wOC8yMDEwIChHTVQrNykgDQoNClRQIEhDTTogTmh1bmcgInNhdCB0aHUiIHRy ZW4gc29uZyBTYWkgR29uOg0KDQotIER1bmcgeHVuZyBkaWVuIGNoaWNoIGNhOw0KLSBOaHVuZyBj aGllYyBnaGUgZHVuZyB0ZSBkaWVuLCBwaGlhIHRydW9jIGNvIGhhaSBjaGllYyBnb25nIGxvbiBu ZW4gdGh1b25nIGdvaSBsYSAic2F0IA0KdGh1IGhhaSBjYW5nIjsNCi0gRHVuZyBsdW9pIGRheSBo b24gcXVpIGRpbmg7DQotIFNpbmggdmF0IG5nb2FpIGxhaTogUnVhIHRhaSBkbywgY2EgbGF1IGtp bmguLi4NCg0KIlRydW9jIGRheSBjYSB0b20gbmhpZXUgbGFtIG5odW5nIGRhbiBjdSBkYW5oIGJh dCBraWV1IHRhbiBkaWV0IG5lbiBuZ2F5IGNhbmcgaXQuLi4gRGEgDQpzbyBkYW4gZGFuaCBjYSBv IGRheSBsYWkgZGVuIHR1IERvbmcgTmFpLCBMb25nIEFuLCBUaWVuIEdpYW5nIG5lbiB2aWVjIGtl dCBob3Agdm9pIA0KY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBkZSB4dSBseSByYXQga2hvIiwgLSBh bmggTmd1eWVuIFRoYW5oIFBob25nLCB0aHV5ZW4gdHJ1b25nLCANCnRydW9uZyBkb2FuIGtpZW0g dHJhLCBjaG8gYmlldC4gDQoNCk5oaWV1IGRhbiBjaGFpLCBjaG8gYmlldCwgc29uZyBTYWkgR29u IChkb2FuIHR1IGJlbiBCYWNoIERhbmcgKFEuMSkgZGVuIGN1YSBzb25nIFZhbSANClRodWF0IChR LjEyKSwgY2FjIGxvYWkgY2EgY2Egcm8sIGNhIGxvYyB0dSBuaGllbiBoYXUgbmh1IGtob25nIGNv bi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzMC8yMDEw MDcyMTE2NDMxMy5hc3B4IDIxLzA3LzIwMTAgMTY6NDMgIA0KDQpUUCBIQ006IDQgYmkgY2FuIG5n dXllbiBsYSBsYW5oIGRhbyBDb25nIHR5IFRodXkgaGFpIHNhbiBEdXllbiBIYWkgKHRlbiBnaWFv IGRpY2ggDQpDb25nIHR5IENvZmlkZWMpIHBoYW0gdG9pIDogIkNvIHkgbGFtIHRyYWkgY2FjIHF1 eSBkaW5oIHZlIGtpbmggdGUgZ2F5IGhhdSBxdWEgbmdoaWVtIA0KdHJvbmciIHZhICJMb2kgZHVu ZyBjaHVjIHZ1IHF1eWVuIGhhbiB0cm9uZyBraGkgdGhpIGhhbmggY29uZyB2dSIuIA0KDQpOaG9t IGJpIGNhbiBuYXksIGdvbTogVm8gSHVlIFRyYW4gKDY2IHR1b2ksIHF1ZSBMb25nIEFuLCBuZ3V5 ZW4gR2lhbSBkb2MgQ29uZyB0eSANCkNvZmlkZWMpLCBOZ3V5ZW4gVGhhbmggWHVhbiAoNTIgdHVv aSwgbmd1IFEuMTAsIG5ndXllbiBxdXllbiBHaWFtIGRvYyBDb25nIHR5IA0KQ29maWRlYyksIERh bmcgSHV1IFRoaW5oICg0NSB0dW9pLCBuZ3UgUS41LCBUcnVvbmcgcGhvbmcgeHVhdCBuaGFwIGto YXUpIHZhIE5nbyANCk5nb2MgU29uICg0OSB0dW9pLCBxdWUgQmVuIFRyZSwgUGhvIHBob25nIGtp bmggZG9hbmggeHVhdCBuaGFwIGtoYXUgZGV1IHRodW9jIENvbmcgDQp0eSBDb2ZpZGVjKS4NCg0K VHJvbmcgcXVhIHRyaW5oIGRpZXUgaGFuaCBob2F0IGRvbmcgdGFpIENvbmcgdHkgQ29maWRlYywg bmhvbSBiaSBjYW4gbmF5IGRhIHRoaWV1IHRpbmggDQp0aGFuIHRyYWNoIG5oaWVtLCBjbyB5IGxh bSB0cmFpIGdheSB0aGF0IHRob2F0IHRhaSBzYW4gaGFuZyB0aSBkb25nIHRpZW4gY3VhIG5oYSBu dW9jLg0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vdHBoY21fdGhhbmhfdHJhX2tpZW5fbmdoaV90 aHVfaG9pXzIwJTJDNV90eV9kb25nX3NhaV9waGFtLTEtNDM4NjUuaHRtbCAxNS8wNy8yMDA4IC0g MjM6NTAgLSBOZ3VvbjogVmlldE5hbU5ldC52bg0KDQpUUC5IQ006ICJ4b2Egc28iIGRhdCBjYXkg eGFuaCwgbGFuIGhhbmggbGFuZyBzb25nIHJhY2gsICJxdWVuIiBsYW0gbmdoaWEgdnUgdGh1ZSAx LDQgdHkgZG9uZyAoeGF5IHJhIHRhaSBkdSBhbiBLaHUgZGFuIGN1IFRydW5nIFNvbikgDQoNCmh0 dHA6Ly9jb25ndHlsdWF0MS01LnZuL3Rpbi10dWMtcGhhcC1sdWF0LzEwOC14YS1ob2ktZGVuLWRh dC1jYW5nLWhvYW5oLWhhbmgtdGFpLXRoYW5oLXBoby1oY20uaHRtbA0KDQoiWGEgaG9pIGRlbiIg ZGF0IENhbmcgaG9hbmggaGFuaCBvIFRQIEhDTQ0KDQpLZSB0dSBraGkgImJvIGdpYSIgTmFtIENh bSBiaSBsYXQgZG8sIG1hbmggZGF0IG1hdSBtbyBTYWkgdGhhbmggdHJvIHRoYW5oICJtbyB2YW5n IiBjaG8gbmhpZXUgYmFuZyBuaG9tICJ4YSBob2kgZGVuIiBkYXQgQmFjIG5oYXkgdmFvIGNoaWEg cGhhbi4gDQogICAgICANCkJvbiBjaHVuZyBkYSB0byBjaHVjIGNhYyBwaGkgdnUgbXVhIGJhbiBt YSB0dXksIGRhbSB0aHVlIGNoZW0gbXVvbiwgZG9pIG5vIHRodWUsIA0KY3VvcCBzb25nIGJhYy4u LiBnYXkgbWF0IGFuIG5pbmggdHJhdCB0dSB4YSBob2kuIEdhbiBkYXkgbmhhdCBsYSB2dSBoYW0g aGFpIG9uZyBEYW5nIA0KWHVhbiBTaSAoUGhvIGdpYW0gZG9jIENvbmcgdHkgVE5ISCBIb2FuZyBI YWksIHRydSBzbyB0b2EgbGFjIEguSG9jIE1vbikgZGUgZGlldCANCmtoYXUgZ2F5IGNoYW4gZG9u ZyBkdSBsdWFuLg0KDQpUaW5oIGhpbmggYW4gbmluaCB0cmF0IHR1IGN1YSBUUC5IQ00gbHVvbiBk aWVuIGJpZW4gcGh1YyB0YXAuDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0tpbmgtZG9hbmgv MjAwOC8wOS8zQkEwNjMwRS8gNi85LzIwMDgsIDExOjA5IEdNVCs3DQoNClRQIEhDTTogTmhpZXUg Y2F5IHhhbmcgZG9uZyB0aGlldSAtIGdpYW4gbGFuDQoNCkN1IGtpZW0gdHJhIDUgY2F5IHhhbmcg dGhpIGNvIG1vdCB0cnVvbmcgaG9wIGdpYW4gbGFuLiBDbyBub2ksIGtoYWNoIGhhbmcgYmkgbW9j IHR1aSBob24gMS43MDAgZG9uZyBjaG8gbW9pIGxpdCB4YW5nLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI2LzIwMTAwNjIyMDIwMzQzLmFzcHggMjIvMDYv MjAxMCA3OjAzIA0KDQpUUCBIQ006IEdpYW5nIGhvIHR1IHh1IG8gU2FpIEdvbiAtIENhYyBjdW9j IHRoYW5oIHRvYW4gZGFtIG1hdSAtIEJvbmcgZGFuZyBjdWEgY2FjIHRydW0gZ2lhbmcgaG8gZGll dSBraGllbiwgY2FjIHRoZSBsdWMgZGVuIGR1bmcgcGhpYSBzYXUgDQoNCkRlbiBuYXksIG5ndW9p IGRhbiB0aGFuaCBwaG8gdmFuIGNodWEgcXVlbiBjdW9jIHRydXkgc2F0IGRhbSBtYXUgdHJvbmcg ZGVtIGJhbmcgc3VuZywgDQptYSB0YXUgeGF5IHJhIHRhaSBEYWkgbG8gRG9uZyBUYXkgKFEuMSku IFZpZW4gZGFuIGRhIGJheSB2ZSBodW9uZyBxdWFuIGFuIHZlbiBkdW9uZyBub2kgDQpjbyBuaGll dSBuZ3VvaSB0dSB0YXAsIG5odW5nIHJhdCBtYXkga2hvbmcgdHJ1bmcgYWkgbWEgZ2FtIHRoYW5n IHZhbyB0dSBiYW4gY29tLiBTb25nIGl0IA0KYWkgYmlldCByYW5nIGRheSBsYSB2dSBkdW5nIGRv IGdpdWEgMiBiYW5nIG5ob20gZ2lhbmcgaG8gY28gbWF1IG1hdC4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAyMy8yMDEwMDYwNTAwNDYwOS5hc3B4IDA1LzA2 LzIwMTAgMDo0NiANCg0KVFAgSENNOiBDYW4gYm8gYmFuIEdQTUIgY2hpZW0gZG9hdCBob24gNyB0 aSBkb25nIHRpZW4gZGVuIGJ1IGRlbSBjYSBkbyANCg0KaHR0cDovL3d3dy52aWV0bmFtcGx1cy52 bi9Ib21lL1RQSENNLXBoYS1vLWJhYy1nYW0tY2F1LWJhdC1naXUtNDUtZG9pLXR1b25nLzIwMTA2 LzQ5NzM0LnZucGx1cw0KDQpUUC4gSENNOiBNb3QgbyBiYWMgbG9uIG5hbSBvIGtodSB2dWMgZHVv aSBnYW0gY2F1IENvbmcgTHkNCg0KaHR0cDovL3d3dy52aWV0bmFtcGx1cy52bi9Ib21lL1BoYS10 aGVtLW1vdC1vLWNhLWRvLWJvbmctZGEtbG9uLXRhaS1UUC1IQ00vMjAxMDYvNDk1Nzkudm5wbHVz IDE4LzA2LzIwMTAgDQoNClRQLiBIQ006IFRoZW0gbW90IG8gY2EgZG8gYm9uZyBkYSBsb24gdGFp IFRQLiBIQ00NCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkxMTE4MDMzODEwNzM1cDBjMTAw NS9iYW4taGFuZy1yb25nLWJpLWRhbS1jdW9wLWR0ZGQuaHRtIDE4LzExLzIwMDksIDE1OjQxKEdN VCs3KQ0KDQpUUCBIQ006IEJhbiBoYW5nIHJvbmcgYmkgZGFtLCBjdW9wIGRpZW4gdGhvYWkgZGkg ZG9uZyAgDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMC00NDM4NDU1NzEvdHBoY21fdGFtX2dp dV8zX2RvaV90dW9uZ19oaWVwX2RhbV90YXBfdGhlX3RyZV92aV90aGFuaF9uaWVuLmh0bWwgRC5M T0FOIFRoZW8gU0dHUCAtIDA5LzA2LzIwMDgNCg0KVFAgSENNOiBIaWVwIGRhbSB0YXAgdGhlIHRy ZSB2aSB0aGFuaCBuaWVuIC0gY2h1cCBoaW5oLCBoYW0gZG9hIG5ldSB0byBjYW8gc2UgYmkgdHVu ZyBoaW5oIGFuaCBsZW4gSW50ZXJuZXQgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUEhD TS1OZ3VvaS1sYW0tY29uZy1oaWVwLWRhbS1jaHUvMzAxMzU3NzMvMTU3LyAxNy84LzIwMDYsIDA5 OjAyIEdNVCs3IA0KDQpUUEhDTTogTmd1b2kgbGFtIGNvbmcgaGllcCBkYW0gY2h1IA0KDQpodHRw Oi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9UUEhDTS1UdS1oaW5oLWtlLWdpZXQtZG9u Zy1uZ2hpZXAtaGllcC1kYW0vMzAxMTk5MTYvMjE4LyAyOC81LzIwMDYsIDA1OjA0IEdNVCs3IA0K DQpUUEhDTTogR2lldCBkb25nIG5naGllcCwgaGllcCBkYW0gDQoNCmh0dHA6Ly93d3cuaW5mby52 bi9sYXdzL2NyaW1pbmFsLzMwNDQxLWhpcC1kYW0tYmUtZ2FpLXRyb25nLWNob2ktbGEta2hpLXRy dS1tYS5odG1sIDE4LzkvMjAxMCAwODowOCANCg0KVFAgSENNOiBIaWVwIGRhbSBiZSBnYWkgdHJv bmcgY2hvaSBsYSBraGkgdHJ1IG11YSANCg0KaHR0cDovL3d3dy52aWV0YmFvLmNvbS8/cHBpZD00 NSZwaWQ9NCZuaWQ9NTU0MjkgMTAvMzEvMjAwMCwgMTI6MDA6MDAgQU0NCg0KVFAgSENNOiBDaHVh IGtob2kgdG8gdnUgYW4gQmkgdGh1IFRoYW5oIHV5IFRydW9uZyBUYW4gU2FuZyBoaWVwIDEgbnUg R2lhbSBkb2MgDQoNCmh0dHA6Ly90dG9sLmNvbS52bi92bi90aW4xMTMvNDUzNTAzL2luZGV4Lmh0 bWwgVGhlbyBOZ3VvaSBsYW8gZG9uZyAgMTMvMDcvMjAxMCAyMDoyNCAoR01UICs3KQ0KDQpUUEhD TTogQ28gbWF0IG1lIHZhbiBoaWVwIGRhbSBjb24NCg0KTWFjIGR1IGNvIG1lIGNoYXUgYmUgbyBu aGEsIG5odW5nIHRlbiAieWV1IHJhdSB4YW5oIiB2YW4gbmdhbmcgbmhpZW4gdGh1YyBoaWVuIGhh bmggDQp2aSB0aHUgdGluaCB2b2kgY29uIGN1YSBiYW4gbWluaC4NCg0KTmdheSAxMi03LCB0YWkg bmhhIGFuaCBMZSBWYW4gSC4gKFNOIDE5NzksIHRodW9jIHBodW9uZyBCaW5oIEFuLCBxdWFuIDIg KFRQSENNKSAgDQp0ZW4gTGUgTmdvYyBRdW9jLCAoMjIgdHVvaSwgcXVlIG8gS2hhbmggSG9hKS1s YSBiYW4gYW5oIEguLCBkZW4gY2hvaS4gDQoNClNhdSBidW9pIGNvbSB0cnVhLCBRdW9jIHRoYXkg Y2hhdSBMZSBUaGkgVGguIE0uICg2IHR1b2kpLCBjb24gdm8gY2hvbmcgYW5oIEguIGRhbmcgDQpu YW0gY2hvaSBjYW5oIG1lIGR1b2kgbmhhLiBRdW9jIGxlbiBnYWMgZ2lhIHZvIGtldSBjaGF1IE0u IGxlbiBtbyBtYXkgdmkgdGluaCBkZSANClF1b2MgY2hvaSBnYW1lLiANCg0KU2F1IGtoaSB0aHVj IGhpZW4geG9uZyBoYW5oIHZpIHRodSB0aW5oLCB0ZW4geWV1IHJhdSB4YW5oIHRoYW4gbmhpZW4g eHVvbmcgdGFuZyB0cmV0IG5ndS4gDQpQaGF0IGhpZW4gdGhheSBjaGF1IE0uIGtob2MgbmhpZXUs IG1lIGNoYXUgdm9pIGNoYXkgbGVuIGdhYyB0cmEgaG9pIHRoaSBwaGF0IGhpZW4gc3UgdmllYy4g DQoNCmh0dHA6Ly93d3cud2VidGhhbXR1LmNvbS9waGFtLXBoYXAtaGluaC1zdS9iYW8tdmUtbGVu LXZhby1oaWVwLWRhbS1jaHUtY2FuLWhvLmh0bWwNCg0KVFAgSENNOiBCYW8gdmUgbGVuIHZhbyBo aWVwIGRhbSBjaHUgY2FuIGhvLiANCg0KaHR0cDovL3d3dy5naWFvZHVjLmVkdS52bi9uZXdzL3hh LWhvaS02ODAvdHBoY20tbGluaC1hbi12aS1naWEtY29uZy1hbi1waHVvbmctaGllcC1kYW0tcGh1 LW51LTE0OTYyMC5hc3B4DQoNClRQSENNOiBHaWEgY29uZyBhbiBwaHVvbmcgaGllcCBkYW0gcGh1 IG51IA0KDQpodHRwOi8vY3V0ZXhpbmguY29tL2hpJUUxJUJBJUJGcC1kYW0tYmUtMTItdHUlRTEl QkIlOTVpLXIlRTElQkIlOTNpLWNoby0yMC1uZ2FuLWQlRTElQkIlOTNuZy8gDQoNClRQIEhDTTog SGllcCBkYW0gYmUgMTIgdHVvaSByb2kgY2hvIDIwMDAwIGRvbmcgDQoNCmh0dHA6Ly9iZXRhLmRh bnRyaS5jb20udm4vYzIwL3MyMC0zMDIzNzUvZXAtY28tZ2FpLXZhby1nb2MtZHVvbmctZGUtaGll cC1kYW0uaHRtIDEwLzAxLzIwMDkgLSAwMDozNyANCg0KVFAgSENNOiBFcCBjbyBnYWkgdmFvIGdv YyBkdW9uZyBkZSBoaWVwIGRhbQ0KDQpodHRwOi8vbmV3cy5zb2NiYXkuY29tLzEwX3Rlbl95ZXVf cmF1X3hhbmhfaGllcF8yX3RoaWV1X251LTYxNjY0ODMzMi0zMzYxOTk2OC5odG1sIHZpZXRuYW1u ZXQudm4gLSAxNjoxOCAyNi0xMS0yMDA5DQoNClRQIEhDTTogMTAgdGVuInlldSByYXUgeGFuaCIg aGllcCAyIHRoaWV1IG51IA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvVHJpZXQt cGhhLW8tc2FuLXh1YXQtdGllbi1naWEvMjAxMDYvMTg4OTM3Lmxhb2RvbmcgQ2hpIEhhIDg6NDQg QU0sIDE5LzA2LzIwMTANCg0KVFAgSENNOiBPIHNhbiB4dWF0IHRpZW4gZ2lhIHRhaSBRLjYgLSBt ZW5oIGdpYSA1LjAwMCBkb25nLCBzbyBsdW9uZyBsb24uIA0KDQpodHRwOi8vdGludHVjLnhhbG8u dm4vMDAxMjk3NDY4OTEvcXVhbl9oZV94b25nX3JvaV9naWV0X2NoZXRfbmd1b2lfdGluaC5odG1s ICAxOS8xMiAxMTo1MicNCg0KVFAgSENNOiBRdWFuIGhlIHhvbmcgcm9pIGdpZXQgY2hldCBuZ3Vv aSB0aW5oDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMzA5ODAyL0toYW5o LWtpZXQtdmktcXVhLUNhbXB1Y2hpYS1kYW5oLWJhYy5odG1sDQoNClRQLkhDTTogTmhpZXUgZHVv bmcgZGF5IHRvIGNodWMgY28gYmFjIGNodXllbiBuZ2hpZXAgZGFuIGRhdCBjb24gYmFjIHNhbmcg Q2FtcHVjaGlhICJkb3QgdGllbiIgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdz L1BhZ2VzLzIwMTAyOC8yMDEwMDcwNzIzNDQ0Ni5hc3B4IDA4LzA3LzIwMTAgNDo0NCANCg0KVFAg SENNOiBEZW4gbHVvdCBjYW5nIGJpZW4gImtldSBjdXUiICANCg0KQ2FuZyBDYXQgTGFpIChRLjIs IFRQLkhDTSkgdnVhIGNvIHZhbiBiYW4gImtldSBjdXUiIHZlIHRpbmggaGluaCB1biB1IGhhbmcg aG9hIHh1YXQgDQpuaGFwIGtoYXUgKFhOSykgdGFpIGNhbmcsIHh1YXQgcGhhdCB0dSBxdXkgZGlu aCB4dSBwaGF0IHRhaSB4ZSBjb250YWluZXIga2hvbmcgY28gYmFuZyANCmxhaSBGQyAoaGlldSBs dWMgdHUgbmdheSAxLjcpLiANCg0KNiBuZ2F5LCB1IGRvbmcgMzAuODc1IGNvbnRhaW5lciAtIFRp bmggaGluaCB1biB1IGhhbmcgaG9hIHRhaSBjYWMgY2FuZyBkYSByYXQgbmdoaWVtIHRyb25nDQoN CkRheSBsYSB2YW4gYmFuIHRodSBoYWkgdHJvbmcgdm9uZyBjaHVhIGRheSAxIHR1YW4gY3VhIGNh bmcgQ2F0IExhaSB0cmluaCBjYWMgY28gcXVhbiBjbyANCnRoYW0gcXV5ZW4sIGN1bmcgbm9pIGR1 bmcgcGhhbiBhbmggdGluaCBoaW5oIHVuIHUgaGFuZyBob2EgdmEgZGluaCB0cmUgaG9hdCBkb25n IHRhaSBjYW5nLiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS8yNjI4MzAv QmFvLWRvbmctdGluaC10cmFuZy1oYW5nLWNoby1jYW5nLmh0bWwgMTIvMDYvMjAwOCwgMDc6NDkg KEdNVCs3KSANCg0KVFAgSENNOiBCYW8gZG9uZyB0aW5oIHRyYW5nICJoYW5nIGNobyBjYW5nIiAN Cg0KSGFuZyB0cmFtIG5nYW4gdGFuIGhhbmcgY2hvbiBjaGFuIHRhaSBjYW5nIGRvIHZ1b25nIG8g a2hhdSB2YW4gY2h1eWVuLCBuaGlldSB0YXUgDQpoYW5nIHBoYWkgbmFtIGNobyBkZSB2YW8gdHJh IGhhbmcgIGxhIGhhdSBxdWEgY3VhIHZpZWMgcXVpIGhvYWNoIGNhbmcgYmllbiBraG9uZyBzYXQg DQp2b2kgdGh1YyB0ZS4uLiBUaW5oIHRyYW5nIGhhbmcgaG9hIHUgZG9uZyB0YWkgY2FjIGNhbmcg Y3VhIFRQLkhDTSB0cm9uZyB0aG9pIGdpYW4gZ2FuIA0KZGF5IGRhIGdpb25nIGxlbiB0aWVuZyBj aHVvbmcgYmFvIGRvbmcuIA0KDQpOZXUgdGluaCB0cmFuZyBuYXkga2VvIGRhaSBzZSBhbmggaHVv bmcgbG9uIGRlbiBwaGF0IHRyaWVuIGtpbmggdGUgdHJvbmcgdHVvbmcgbGFpLg0KDQpDYW5nIGhl dCBjaG8gZGUgaGFuZyAtIFRoaWV1IGNhbmcgdmkgcXVpIGhvYWNoIGtlbSANCg0KaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9Ib21lL0xhaS14YXktcmEtdGFpLW5hbi1jaGV0LW5ndW9pLXRyZW4t Y2F1LXZ1b3QtVGh1LVRoaWVtLzIwMTA2LzE4OTM3Ni5sYW9kb25nIDc6MTggQU0sIDIzLzA2LzIw MTANCg0KVFAgSENNOiBMYWkgeGF5IHJhIHRhaSBuYW4gY2hldCBuZ3VvaSB0cmVuIGNhdSB2dW90 IFRodSBUaGllbSANCg0KaHR0cDovL3d3dy5zZ2dwLm9yZy52bi9tb2l0cnVvbmdkb3RoaS8yMDA4 LzMvMTQ3MTI3LyAyNi8wMy8yMDA4LCAwMTo1NiAoR01UKzcpDQoNClRQIEhDTTogTyBuaGllbSBr aG9uZyBraGkgbGFtIHRhbmcgY2FjIGJlbmggZHVvbmcgaG8gaGFwIA0KDQpodHRwOi8vd3d3LnZu ZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYvMDMvM0I5RTdFRDAvIDIzLzMvMjAwNiwgMTA6MTgg R01UKzcNCg0KVFAgSENNOiBDYXUsIGR1b25nIE5ndXllbiBIdXUgQ2FuaCBsYW0gZHUgdGh1ICd0 cm9uZyBiZW5oJyAtIENvbmcgdHJpbmggbmF5IGRhbmcgZHVvYyB4ZW0gbGEgIm9tIHlldSB0b2Fu IGRpZW4iLiANCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzA3LzNC OUVCRDA5LyAxMi83LzIwMDYsIDEyOjA1IEdNVCs3DQoNCkNhdSBWYW4gVGhhbmggMiBiaSBibyBi ZSAtIHRpZXAgdHVjIGx1biwgbnV0IC0gaGFuZyBsb2F0IGhhbmcgbXVjIGh1IGhvbmcgdHJ1b2Mg ZGF5IGRhIGR1b2MgcGhhIG5odW5nIGJpIGJvIGJlIG1hYyBtdWEgbmFuZw0KDQpodHRwOi8vd3d3 LnlvdXR1YmUuY29tL3dhdGNoP3Y9RlFvZWdpZ2c5U0kmTlI9MSAwNS8xMS8yMDA5IA0KDQpUUCBI Q006IERhbiBUaHUgVGhpZW0gYmlldSB0aW5oIGdpdSBuaGEgZ2l1IGRhdCANCg0KaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9Ib21lL05odW5nLWtodS1kYW4tY3UtY2hldC1uZ2F0LXZpLW8tbmhp ZW0vMjAwNzEyLzY4NjA0Lmxhb2RvbmcgMjo0MiBQTSwgMTIvMTIvMjAwNw0KDQpUUEhDTTogTmh1 bmcga2h1IGRhbiBjdSAiY2hldCBuZ2F0IiB2aSBvIG5oaWVtIA0KDQpodHRwOi8vdm5lY29ub215 LnZuLzIwMTAwOTIxMDgwNDQxNTAwUDBDMTcvc2FuLWdvbGYtby10cGhjbS1uZ29uLXRyZW4tMTAw MC1oYS1kYXQuaHRtIEJBTyBBTkggMDg6MzYgKEdNVCs3KSAyMS85LzIwMTAgDQoNClRwLkhDTTog U2FuIGdvbGYgbyBUcC5IQ00gIm5nb24iIHRyZW4gMS4wMDAgaGEgZGF0IA0KDQpNb3QgImtodSBj b25nIG5naGllcCIgdHUgcGhhdCBtb2MgbGVuIHR1IG5oaWV1IG5hbSBxdWEgdm9pIGhhbmcgdHJh bSBjbyBzbyBjaGUgYmllbiBuaHVhIHRhaSBzaW5oLCBuaHVvbS1pbiwgY28ga2hpLi4uIGNoZW4g Z2l1YSBjYWMga2h1IGRhbiBjdSB0aHVvYyBwaHVvbmcgQmluaCBIdW5nIEhvYSBBIChxdWFuIFRh biBQaHUsIFRQSENNKSwgZ2F5IG8gbmhpZW0gbmdoaWVtIHRyb25nLg0KDQpodHRwOi8vd3d3Lnlv dXR1YmUuY29tL3dhdGNoP3Y9ZTVkdnB1cFRJUmsNCg0KVFAgSENNOiBDaGluaCBxdXllbiBjYXQg a2hvYSwgcGhhIGN1YSBjdW9uZyBjaGllbSBuaGEgbyBjdWEgZGFuIA0KDQpodHRwOi8vd3d3LmJp ZXRoZXQuY29tL3Rpbi90cGhjbS0xOSUyNS1jby1zby1oYW5oLW5naGUteS1kdW9jLXNhaS1waGFt X3RpbjY3MzgzLmh0bWwgMDcuMzFhbSAyNy0xMS0yMDA4DQoNClRQIEhDTTogMTklIGNvIHNvIGhh bmggbmdoZSB5IGR1b2Mgc2FpIHBoYW0gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUEhD TS1zby1jYS1uYW8tcGhhLXRoYWktbmhpZXUtaG9uLXNvLWNhLXNpbmgvNDAyMzA5MDAvMTU3LyBM LlRILkggMjUvMTEvMjAwNywgMDc6NTMgR01UKzcgDQoNClRQLkhDTTogc28gY2EgbmFvIHBoYSB0 aGFpIG5oaWV1IGhvbiBzbyBjYSBzaW5oDQoNClRpIGxlIHNvIGNhIG5hbyBwaGEgdGhhaSBzbyB2 b2kgc28gY2Egc2luaCB0cm9uZyBuYW0gMjAwNiB0YWkgVFAuSENNIGxhIDEwMyw0JS4gU28gdm9p IA0KbmFtIDIwMDAsIHNvIGNhIG5hbyBwaGEgdGhhaSBnaWFtIDMwJSAodGkgbGUgMTMyLjAwMC8x MDMuOTcyIGNhKS4gU28gdm9pIG11YyB0aWV1IA0KQ2hpZW4gbHVvYyBkYW4gc28gVk4gZGUgcmEg ZGVuIG5hbSAyMDA2IHBoYWkgZ2lhbSA1MCUgc28gY2EgbmFvIHBoYSB0aGFpIHNvIHZvaSBuYW0g DQoyMDAwIHRoaSBUUC5IQ00gY2h1YSBkYXQgZHVvYy4gDQoNCkRheSBsYSBzbyBsaWV1IHZ1YSBk dW9jIFVCTkQgVFAuSENNIGJhbyBjYW8gQ2hpbmggcGh1IHZlIHZpZWMgdGh1YyBoaWVuIENoaWVu IGx1b2MgZGFuIHNvIGdpYWkgZG9hbiAyMDAxLTIwMDYuIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDQvMjAxMDEwMjUyMzIzMzQuYXNweCAyNi8xMC8yMDEw IDc6MDAgDQoNClRQIEhDTTogTmhpZXUgbm9pIG5nYXAgbHV0IHZpIHRyaWV1IGN1b25nICANCiAg DQooVE5PKSBUaGVvIERhaSBraGkgdHVvbmcgdGh1eSB2YW4ga2h1IHZ1YyBOYW0gQm8sIGRpbmgg dHJpZXUgY3VvbmcgdG9pIDI1LjEwIGxlbiBkZW4gDQoxLDVtIChvIHRyYW0gUGh1IEFuLCB0cmVu IHNvbmcgU2FpIEdvbiwgVFAuSENNKSwgbyBtdWMgYmFvIGRvbmcgMy4gTmhpZXUga2h1IHZ1YyAN CnRyZW4gZGlhIGJhbiBUUC5IQ00gZGEgbmdhcCBzYXUgdHJvbmcgbnVvYy4gDQoNCkNhYyBraHUg dnVjIG5nYXAgc2F1IGxhIHBodW9uZyBIaWVwIEJpbmggQ2hhbmgsIEhpZXAgQmluaCBQaHVvYyAo US5UaHUgRHVjKS4NCiANCktodSB2dWMgUS5CaW5oIFRoYW5oIG5nYXAgdHJlbiBkaWVuIHJvbmcu IFRyb25nIGRvLCBjYWMgdHV5ZW4gZHVvbmcgVGFtIFZ1LCBCdWkgDQpIdXUgTmdoaWEsIFhvIFZp ZXQgTmdoZSBUaW5oLi4uLCBtdWMgbnVvYyBjYW8gbGVuIGRlbiBob24gMCw1bS4NCiANCktodSB2 dWMgYmVuIFBodSBEaW5oIChRLjgpIG51b2MgdHJhbiBibyBzb25nLCBraG9uZyBjb24gcGhhbiBi aWV0IGR1b2MgZGF1IGxhIHNvbmcsIA0KZGF1IGxhIGJvLiBCZW4gQmluaCBQaHUsIE1lIENvYywg QmluaCBEb25nIChRLjgpIG5odSBtb3QgIm9jIGRhbyIgY3VhIHRoYW5oIHBoby4NCiANClRhaSBk dW9uZyBQaGFtIFRoZSBIaWVuIChRLjgpLCBIdXluaCBUYW4gUGhhdCwgTmd1eWVuIFRoaSBUaGFw IChRLjcpLCBjYWMgcGh1b25nIA0KdGllbiBnaWFvIHRob25nIGJpIGJvbSBsb2kgbnVvYy4NCiAN ClRyaWV1IGN1b25nIGxlbiBjYW8gY3VuZyBsYW0gY2hvIG5oaWV1IHNhIGxhbiBraG9uZyBjaHVp IGR1b2MgcXVhIGNhdSBCaW5oIExvaSwgZ2F5IA0KdGFjIG5naGVuIGdpYW8gdGhvbmcgZHVvbmcg dGh1eSBuaGlldSBnaW8gbGllbi4gDQoNClRydW9jIGRvLCB2YW8gbmdheSAyNC4xMCwgdGluaCB0 cmFuZyB0dW9uZyB0dSBjdW5nIHhheSByYSBvIGtodSB2dWMgY2F1IEJpbmggTG9pIGRvIA0KdHJp ZXUgY3VvbmcgbGVuIGNhby4NCg0KRGFpIEtoaSB0dW9uZyB0aHV5IHZhbiBraHUgdnVjIE5hbSBC byBkdSBiYW8gdHJvbmcgY2FjIG5nYXkgMjYgLSAyOC4xMCwgZGluaCB0cmlldSANCnZhbiBvIG11 YyBiYW8gZG9uZyAzLiBNdWMgbnVvYyB0cmlldSBkbyB0YWkgdHJhbSBQaHUgQW4gKHNvbmcgU2Fp IEdvbikgY28gdGhlIGRhdCANCjEsNDdtICgyNi4xMCksIDEsNDRtICgyNy4xMCkuIFRyaWV1IGN1 b25nIHNlIGRhbiBydXQgY2hhbSB2YW8gbmdheSAyOC4xMCwgbyBtdWMgDQoxLDQzbSB2YSB4dW9u ZyBjb24gMSwzbSB2YW8gbmdheSAyOS4xMC4NCg0KQmVuIGNhbmggZG8sIEJhbiBDaGkgaHV5IFBo b25nIGNob25nIGx1dCBiYW8gVFAuSENNIGN1bmcgeWV1IGNhdSBjYWMgcXVhbiAxMiwgVGh1IA0K RHVjLCBCaW5oIFRoYW5oLCBHbyBWYXAsIGh1eWVuIEhvYyBNb24sIEN1IENoaS4uLiBraGFuIHRy dW9uZyBraWVtIHRyYSBjYWMgZG9hbiBibyANCmJhbyB4dW5nIHlldSwgaHV5IGRvbmcgbHVjIGx1 b25nLCB2YXQgdHUgY2h1IGRvbmcgdW5nIHBobyB2b2kgdHJpZXUgY3VvbmcgdmEgbmd1eSBjbyAN CmdheSBuZ2FwIHVuZyB0cmVuIGRpZW4gcm9uZy4NCg0KTW90IHNvIGhpbmggYW5oIHNpbmggaG9h dCBjdWEgbmd1b2kgZGFuIHRhaSBjYWMga2h1IHZ1YyBiaSB0cmlldSBjdW9uZyB0b2kgMjUuMTA6 IA0KKEFuaDogVHJpZXUgY3VvbmcgZ2F5IG5nYXAgdG9hbiBraHUgdnVjIGJlbiBQaHUgRGluaCwg US44KSANCihBbmg6IE5ndW9pIGRhbiBiaSBib20gbG9pIHRyb25nIG51b2MpDQooQW5oOiBDYWMg aG8gZGFuIG8gYmVuIFBodSBEaW5oIG1vaSBuYW0gZGV1IHBoYWkgbmFuZyBuZW4gbmhhIGxlbiBj YW8pDQoNCihBbmg6IEJhIFR1IFRoaSBCYWNoIE1haSBzbyBuaGEgNC8yLCBiZW4gUGh1IERpbmgs IHBodW9uZyAxNiwgUS44IGNobyBiaWV0OiAiU2F1IDQgDQpsYW4gbmFuZyBuZW4gbmhhLCBjaGll dSBjYW8gdHJhbiBuaGEgdHUgNG0gZ2lvIGNoaSBjb24gMSw3bTsgY2h1aSByYSBjaHVpIHZvIG5o dSBjYWkgDQpoYW5nIikNCg0KKEFuaDogRGEgbmFuZyBuZW4gbmhhIGxlbiAwLDdtIHNvIHZvaSBt YXQgZHVvbmcgbmh1bmcgbmhhIGFuaCBjaGkgTGFpIFZvbmcgSHV1IDE3QSwgDQpkdW9uZyBOZ3V5 ZW4gTmdvYyBDdW5nLCBwaHVvbmcgMTYsIFEuOCkgdmFuIGJpIG5nYXAgbW9pIGtoaSB0cmlldSBs ZW4uLi4pDQoNCihBbmg6IFNvbmcgY2h1bmcgdm9pIHRyaWV1IGN1b25nKQ0KKEFuaDogTnVvYyB0 cmFuIHZhbyBuaGEsIGJhIGNoYXUgY3VuZyB0YXQgbnVvYykNCihBbmg6IFZpIGNodWEgY28gYm8g a2UgbmVuIG1vaSBraGkgbnVvYyB0cmlldSBsZW4gY2FvLCB0YWkga2h1IHZ1YyBiZW4gUGh1IERp bmgsIHNvbmcgdmEgYm8gbGFpIGxpZW4gbW90IG1hY2guLi4pDQooQW5oOi4uLiBraG9uZyBjb24g cGhhbiBiaWV0IGR1b2MgZGF1IGxhIHNvbmcsIGRhdSBsYSBibykNCihBbmg6IE5ndW9pIGRhbiBv IGRheSBjaG8gYmlldCBobyBwaGFpIGxhbSBuaHVuZyBoYW5nIHJhbyBkZSBuZ2FuIGNhY2ggZHVv bmcgdmEgc29uZy4uLikNCihBbmg6Li4uIERlIHRyYW5oIG5ndXkgaGllbSBjaG8gbW9pIG5ndW9p IGtoaSBkaSBsYWkgdGFpIGtodSB2dWMgbmF5IG1vaSBraGkgdHJpZXUgbGVuKQ0KKEFuaDogTmhp ZXUgdHV5ZW4gZHVvbmcgbyBRLjgsIFEuNiBuZ2FwIG5hbmcpDQooQW5oOiBYZSBsb2kgbnVvYykN CihBbmg6IER1b25nIEJ1aSBIdXUgTmdoaWEgKFEuQmluaCBUaGFuaCkgdGhhbmggInNvbmciDQoo QW5oOiBRLkJpbmggVGhhbmggbmdhcCB0cmVuIGRpZW4gcm9uZw0KKEFuaDogTW90IGdpYSBkaW5o IGNob25nIG51b2MgdHJhbiB2YW8gbmhhIGJhbmcgY2FjaCBkdW5nIHhlIG1heSB2YSBiYW8gY2F0 IGxhbSAiY2hvdCBjaGFuIikNCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIw MTAwOS9UcC1IQ00tQ3UtZ2lhLWRhcC14ZS1kaS1jYS1waGUtY2hldC10aGFtLTkzNTM5NC8gMTA6 NDAsIDE0LzA5LzIwMTAgKEdNVCs3KQ0KDQpUcC4gSENNOiBDdSBnaWEgZGFwIHhlIGRpIGNhIHBo ZSBjaGV0IHRoYW0NCg0KQ3UgSGFpIFNhbSAoODAgdHVvaSksIG8geGEgQmluaCBNeSwgaHV5ZW4g Q3UgQ2hpIChUUEhDTSkgdHJlbiBkdW9uZyBkYXAgeGUgZGkgdW9uZyANCmNhIHBoZSBkYSBraG9u ZyBtYXkgYmkgeGUgdGFpIGNhbiBjaGV0IHRhaSBjaG8uDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAxMDAyMjIxOS5hc3B4IFRoYW5oIFR1bmcg MTAvMTAvMjAxMCAyOjIyIA0KIA0KVFAgSENNOiBUaHVvYyB0YXkgeG8gZ2l1biBGdWdhY2FyIGdp YSBoaWVuIGRhbmcgZHVvYyBiYW4gdHJvbiBvIFRQLkhDTTsgZGF5IGxhIG1vdCANCm5oYW4gaGll dSB0aHVvYyBjbyBuaGlldSBuZ3VvaSBkYW4gaGF5IHN1IGR1bmcuIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTMwMDE3NDMuYXNweCBNLlZv bmcgMTMvMDgvMjAxMCAwOjE3IA0KDQpUUC5IQ006IDEyIHZpIHRyaSBjbyBuZ3V5IGNvIHNhdCBs byBvIFRQLkhDTSAgIA0KDQpodHRwOi8vd3d3LnR1b2l0cmUuY29tLnZuL1RpYW55b24vSW5kZXgu YXNweD9BcnRpY2xlSUQ9MzUxMjEyJkNoYW5uZWxJRD0zIFRodSBTYXUsIDA0LzEyLzIwMDksIDA1 OjU3IChHTVQrNykNCg0KVFAgSENNOiBEdSBhbiBiYWkgcmFjIERhIFBodW9jIC0gQ2hvIHRhbSB1 bmcgOSB0cmlldSBVU0QgbGEgc2FpIGx1YXQgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9O aGlldS1kdS1hbi1jaG9uZy1uZ2FwLWN1YS1UUC1IQ00tY2hhbS10aWVuLWRvLzEwODQ0NDU5LzE1 Ny8gTGUgQ3VvbmcgMTcvMTIvIDIwMDMsIDA4OjUxIEdNVCs3DQoNClRQIEhDTTogTmhpZXUgZHUg YW4gY2hvbmcgbmdhcCBjdWEgVFAgSENNIGNoYW0gdGllbiBkbyANCg0KRGFjIGJpZXQsIGNhYyBk aWVtIG5nYXAgbmFuZyB2YSB0aHVvbmcgeHV5ZW4gbmh1IGtodSB2dWMgVGhhbmggRGEgZGV1IGto b25nIGhvYW4gdGhhbmguIA0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIw MDYvMDcvM0I5RUJDQTkvIDExLzcvMjAwNiwgMDk6NTYgR01UKzcNCg0KVFAgSENNOiBOb25nIGJv bmcgdmllYyBkZW4gYnUsIHRhaSBkaW5oIGN1IHRhaSBIRE5EIFRQIEhDTSANCg0KVHJvbmcga2hp IG5oaWV1IGhvIGtob25nIGNvIG5oYSB0YWkgZGluaCBjdSB0aGkgdGhlbyB5IGtpZW4gY3UgdHJp LCBoaWVuIGtodSBCYXUgQ2F0IElJLCANCnF1YW4gVGFuIEJpbmggY28gMTgwIGNhbiBobyB0YWkg bG8gSyB2YSBsbyBTIGJvIGhvYW5nLiBOaGlldSB5IGtpZW4gY3UgdHJpIGN1bmcgDQp0aGFjIG1h YyB2ZSB0aW5oIHRyYW5nIHF1eSBob2FjaCB0cmVvLiBDdSB0cmkgcGh1b25nIDE1LCBxdWFuIFRh biBCaW5oIGNobyBiaWV0IA0KcXV5IGhvYWNoIHRyZW4gZGlhIGJhbiB0dSBuYW0gMTk5NyBkZW4g bmF5IGNodWEgY28gaHVvbmcgZ2lhaSBxdXlldCBsYW0gbmd1b2kgZGFuIA0Ka2hvbmcgeWVuIHRh bS4gVGFpIHBodW9uZyAxLCBxdWFuIDMsIGNodW5nIGN1IGR1b25nIHNhdCB0aHVvYyBkaWVuIHF1 eSBob2FjaCB0cmVvIGdhbiAxMyBuYW0uDQpDdSB0cmkgaHV5ZW4gQmluaCBDaGFuaCBkYXQgdmFu IGRlIG5oYSBvIGNhYyBraHUgdGFpIGRpbmggY3UgY28gZ2lhIHF1YSBjYW8gc28gdm9pIA0KdGh1 IG5oYXAgdmEgZGVuIGJ1IGdpYWkgdG9hLiBOZ3VvaSBkYW4geWV1IGNhdSBsYW5oIGRhbyB0aGFu aCBwaG8gY2FuIHF1YW4gdGFtIGhvbiANCm51YSB2ZSBjYWkgY2FjaCBoYW5oIGNoaW5oLCBuaGF0 IGxhIHRodSB0dWMgeGluIHBoZXAgeGF5IGR1bmcsIGNhcCBzbyBuaGEsIHhpbiBzbyBuaGEsIGxh cCBkaWVuIGtlLi4uDQoNClRoZW8gRG9hbiBnaWFtIHNhdCBjdWEgQmFuIFBoYXAgY2hlIEhETkQg VFBIQ00sIGRlbiBuYXksIGNvbmcgdGFjIHRhaSBkaW5oIGN1ICJjaHVhIGJhbyANCmRhbSB0YWkg dGFvIGxhaSBkdW9jIG5vaSBvIG1vaSwgY3VvYyBzb25nIG1vaSBiYW5nIGhvYWMgdG90IGhvbiBu b2kgbyBjdSBjaG8gbmh1bmcgbmd1b2kgDQpjbyBuaGEgbyBob3AgcGhhcCwgaG9wIGxlIGRhbmcg c2luaCBzb25nIG9uIGRpbmggcGhhaSBjaGFwIGhhbmggZGkgZG9pLiIgLCBUcmVuIGRpYSBiYW4g DQp0aGFuaCBwaG8gY28gaG9uIDYwIGR1IGFuIHhheSBkdW5nIG5oYSB0YWkgZGluaCBjdSBuaHVu ZyB0b2MgZG8gdHJpZW4ga2hhaSByYXQgY2hhbQ0KIA0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5l bC8xOTg3LzIwMTAwOC9DaGF5LW5vLXRhaS1jdWEtaGFuZy1iYW4tdGhpZXQtYmktY2h1YS1jaGF5 LTE3NjI2NTgvIDA5LzA4LzIwMTAgMTQ6Mzg6NTMgDQoNClRQIEhDTTogQ2hheSBubyB0YWkgY3Vh IGhhbmcgYmFuIHRoaWV0IGJpIGNodWEgY2hheSBRMS1UUEhDTQ0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vdm4veGEtaG9pLzYxMDgvdHAtaGNtLS1jaGF5LWxvbi1zYXQtY2hvLWJlbi10aGFu aC5odG1sIFRyYW4gQ2hhbmggTmdoaWEgMTMvMDEvMjAxMSAwODo1OTowNSBBTSAoR01UKzcpIA0K DQpUUC5IQ006IENoYXkgbG9uIHNhdCBjaG8gQmVuIFRoYW5oIChsdWMgbnVhIGRlbSAxMi8xKSAN Cg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vSGFuZy10cmFtLW5ndW9pLWRhbi1ob2FuZy1s b2FuLXZpLXJvLWtoaS1jbG8vMTQxLzU1NTM5NzcuZXBpIDE0LTEtMjAxMSANCg0KVFAgSENNOiBI YW5nIHRyYW0gbmd1b2kgZGFuIGhvYW5nIGxvYW4gdmkgcm8ga2hpIGNsbw0KDQpodHRwOi8vYmVl Lm5ldC52bi9jaGFubmVsLzE5ODcvMjAxMDA4L0NoYXktbG9uLXRhaS14aS1uZ2hpZXAtY2hlLWJp ZW4tbGFtLXNhbi0xNzYyNDY3LyAwNy8wOC8yMDEwIDIyOjU4OjA0DQoNClRQIEhDTTogQ2hheSBs b24gdGFpIHhpIG5naGllcCBjaGUgYmllbiBsYW0gc2FuDQoNCmh0dHA6Ly93d3cudmlldG5hbW5l dC52bi90aW5uaGFuaC8yMDEwMDgvTW90LXNpbmgtdmllbi10cmVvLWNvLXRyb25nLWtodW9uLXZp ZW4tS1RYLTkyODAxNi8gIDExOjI5LCAxMC8wOC8yMDEwIChHTVQrNykNCg0KVFAgSENNOiBNb3Qg c2luaCB2aWVuIHRyZW8gY28gdHJvbmcga2h1b24gdmllbiBLVFgNCg0KaHR0cDovL3ZpZXRuYW1u ZXQudm4veGFob2kvMjAwOTEwL1RQSENNLXBoYXQtaGllbi1nYW4tOTAwMC1tb2ktbmd1eS1oaWVt LXR1LWRpZW4tODc2MjU3LyBDYXAgbmhhdCBsdWMgMjA6NTksIFRodSBTYXUsIDMwLzEwLzIwMDkg KEdNVCs3KQ0KDQpUUC5IQ006IDkuMDAwIG1vaSBuZ3V5IGhpZW0gdHUgZGllbiANCg0KaHR0cDov L3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwNS9UUEhDTS1DaHVjLWNoby1jYXQtZGllbi1s dWFuLXBoaWVuLTkwOTk2MS8gVGhhaSBQaHVvbmcgMTc6NTgsIDE0LzA1LzIwMTAgKEdNVCs3KQ0K DQpUUC5IQ006IENodWMgY2hvLi4uIGNhdCBkaWVuIGx1YW4gcGhpZW4gLSB2YW4gbGFuZyBwaGkg ZGllbg0KDQotIFRpbmggaGluaCBjdXAgZGllbiBsaWVuIHR1YyB0cmVuIGRpZW4gcm9uZyB0aG9p IGdpYW4gcXVhLCBsYW5oIGRhbyBEaWVuIGx1YyBUUC5IQ00gDQpraGFuZyBkaW5oIGNodWEgY3Vw IGRpZW4gbHVvbiBwaGllbiBtYSBjaGkgInF1YW5nIG1lIG5oYW5oIGNheSwgYmFvIHRyaSBsdW9p IGRpZW4gDQp0cnVvYyBtdWEgbXVhLi4uIiANCg0KVElOIExJRU4gUVVBTg0KDQoqIE1hdCBkaWVu IHRvYW4gdGhhbmggcGhvLCBuaGEgZ2lhbSBkb2MgRGllbiBsdWMgdmFuIHNhbmcgDQoqIEtobyB2 aSAib25nIiBkaWVuIGx1YyANCiogVFAuSENNOiBUaHVvbmcgZGUga2hvYyB2aSBkaWVuIGx1YyBj YXAgaHV5ZW4gDQoqIERpZW4gbHVjIFRQLkhDTSB0dW5nIHF1YW4gdGltIGNvdCBkaWVuICJybyBy aSINCg0KTmh1bmcgbmdheSBxdWEsIG5oaWV0IGRvIG8gVFAuSENNIGxlbiB0b2kgMzgwQy4gS2hv bmcgY2hpIGtobyB2aSBuYW5nIG5vbmcgbWEgDQpuZ3VvaSBkYW4gY29uIGNoaXUgdGhlbSBjYW5o ICJkZW4gZGF1IiBraGkgaGFuZyBsb2F0IGtodSB2dWMgbyBUUC5IQ00gYmkgbWF0IGRpZW4uIA0K DQpUcnVvYyB0aW5oIHRyYW5nIG5heSwgb25nIFRyYW4gS2hpZW0gVHVhbiwgUGhvIFRHRCBDb25n IHR5IERpZW4gbHVjIFRQLkhDTSBraGFuZyANCmRpbmgsIHRoYW5oIHBobyBjaHVhIGRlbiBtdWMg cGhhaSBjdXAgbHVhbiBwaGllbiBuaHUgY2FjIHRpbmggbWEgY2hpICJjdXAgZGllbiBkZSBiYW8g DQp0cmkgaGUgdGhvbmcgbHVvaSBkaWVuLCBxdWFuZyBtZSBuaGFuaCBjYXkuLi4gbmhhbSBkYW0g YmFvIGFuIHRvYW4gbHVvaSBkaWVuIHRydW9jIG11YSBtdWEiLiANCg0KKEFuaDogR2lhbyB0aG9u ZyBob24gbG9hbiBkbyBoZSB0aG9uZyBkZW4gZ2lhbyB0aG9uZyBraG9uZyBob2F0IGRvbmcgdHJl biBkdW9uZyBDTVQ4LiBBbmg6IFRoYWkgUGh1b25nKSANCg0KVGhlbyBvbmcgVnUgVGhlIEN1b25n LCBUcnVvbmcgcGhvbmcga3kgdGh1YXQgRGllbiBsdWMgVFAuSENNLCBtb3Qgc28ga2h1IHZ1YyB2 dWEgDQpiaSBjdXAgZGllbiB0aGVvIGxpY2ggeG9uZyBsYWkgZ2FwIHN1IGNvIHF1YSB0YWkgY3Vj IGJvIGxhbSBDQiBiYXQgZGFuIGRlbiBtYXQgZGllbi4gIkJpIA0KY3VwIDIsMyBsYW4gdHJvbmcg bW90IHR1YW4gZG8gc3UgY28gbmdvYWkgeSBtdW9uIGtoaWVuIG5ndW9pIGRhbiBoaWV1IGxhbSBu Z2FuaCBkaWVuIA0KY3VwIGx1YW4gcGhpZW4uIFRoZW8gcXV5IGRpbmggbW9pIGxhbiBjdXAgZGll biBraG9uZyBxdWEgNSB0aWVuZyBkb25nIGhvIHZhIGtob25nIHF1YSANCjEgbGFuL3R1YW4sIHRy dSBraGkgY28gc3UgY28ga2hhY2ggcXVhbiIsIG9uZyBDdW9uZyBraGFuZyBkaW5oLiANCg0KVGFw IGRvYW4gRGllbiBsdWMgVmlldCBOYW0gKEVWTikgY2hvIGJpZXQgdGluaCBoaW5oIGN1bmcgY2Fw IGRpZW4gdHJvbmcgdGhhbmcgNS8yMDEwIA0KdGllcCB0dWMga2hvIGtoYW4gZG8gdGhvaSB0aWV0 IG5hbmcgbm9uZyB0cmVuIGRpZW4gcm9uZywgbHV1IGx1b25nIG51b2MgdmUgY2FjIGhvIHRodXkg DQpkaWVuIGRldSB0aGFwIGhvbiBnaWEgdHJpIHRydW5nIGJpbmggbmhpZXUgbmFtIHF1YS4gVHJv bmcga2hpIGRvLCBjYWMgbmhhIG1heSBuaGlldCBkaWVuIA0KdGhhbiBtb2kgbyBtaWVuIEJhYyB2 YW4gaGFuaCBjaHVhIG9uIGRpbmggY29uIG5oYSBtYXkgbmhpZXQgZGllbiB0aGFuIFF1YW5nIE5p bmgsIA0KSGFpIFBob25nLCBDYW0gUGhhIGhpZW4gZGFuZyBiaSBzdSBjbyBraGllbiBjb25nIHN1 YXQgcGhhdCBoYW4gY2hlLi4uIA0KDQpUcm9uZyB0dWFuIHR1IDEwLzUgLSAxNi81LCBzYW4gbHVv bmcgZGllbiBUYXAgZG9hbiBEaWVuIGx1YyBWaWV0IE5hbSAoRVZOKSBwaGFuIGJvIA0KY2hvIGRp ZW4gbHVjIHRoYW5oIHBobyBsYSA0NSw0MyB0cmlldSBrV2gvbmdheS4gVHVhbiB0aWVwIHRoZW8g dHUgMTcvNSAtIDIzLzUsIHNhbiBsdW9uZyANCmRpZW4gVFAuSENNIGxhIDQ2LDUgdHJpZXUga1do L25nYXkuIFRoZSBuaHVuZyBkbyB0aW5oIGhpbmggbmFuZyBub25nIGtlbyBkYWksIG5odSANCmNh dSBzdSBkdW5nIGRpZW4gY3VhIG5ndW9pIGRhbiB0YW5nIGNhbyBraGllbiBzYW4gbHVvbmcgdGll dSB0aHUgZGllbiBiaW5oIHF1YW4gY3VhIA0KVFAuSENNIHRhbmcgdm90IGxlbiB0b2kgNDksMzgg dHJpZXUga1doL25nYXkuIFRoYW0gY2hpIG5nYXkgMTIvNSB2dWEgcXVhIGx1b25nIHRpZXUgDQp0 aHUgZGllbiBvIHRoYW5oIHBobyBsZW4gdG9pIDUwLDAzIHRyaWV1IGtXaC9uZ2F5Li4uLCBkYWkg ZGllbiBkaWVuIGx1YyB0aGFuaCBwaG8gbmV1IGNvbiANCnNvIGJhbyBkb25nLiANCg0KIk1vaSBu Z2F5IFRQLkhDTSB0aWV0IGtpZW0gY2FuIHBoYWkgdGlldCBraWVtIGtob2FuZyA2JSBzYW4gbHVv bmcgZGllbiB0aWV1IHRodSANCihraG9hbmcgMSwwNyB0cmlldSBLV2gvbmdheSkuIE5ldSBraG9u ZywgY3UgdGluaCB0cmFuZyBkaWVuIHRpZXUgdGh1IHZ1b3QgcXVhIG11YyBjaG8gDQpwaGVwIGN1 YSBFVk4sIHRoYW5oIHBobyBzZSBwaGFpIGNhdCBkaWVuIGx1YW4gcGhpZW4gbmh1IGNhYyB0aW5o IHRyb25nIHRob2kgZ2lhbiB0b2kiLCANCm9uZyBUdWFuIGxvIG5nYWkuIA0KDQpUcm9uZyBraGkg ZG8sIGxhbmggZGFvIG5nYW5oIGRpZW4gdGhhbmggcGhvIGNobyByYW5nIG5oaWV1IGRvbiB2aSBz YW4geHVhdCBraW5oIGRvYW5oLCANCmRpY2ggdnUsIG5ndW9pIGRhbiBkdW5nIGRpZW4gc2luaCBo b2F0Li4uIGNvbiBxdWEgbGFuaCBwaGkuIENoaSBjYW4gbW9pIGdpYSBkaW5oIGdpYW0gDQpuaGll dCBkbyBtYXkgbGFuaCwgdGF0IGJvdCB2YWkgYm9uZyBkZW4gbGEgY28gdGhlIHRpZXQga2llbSA1 LTEwJSBsdW9uZyBkaWVuIG5hbmcgdGlldSANCnRodSBjdWEgY2EgdGhhbmggcGhvLiANCg0KIk5o aWV1IG5ndW9pIGRpIHZhbyBjYWMgbmhhIGhhbmcsIGtoYWNoIHNhbiAzIHNhbywgdHJ1bmcgdGFt IHRodW9uZyBtYWkgY2FwIGNhcC4uLiBwaGFpIA0KbWFjIGFvIHZlc3QsIGFvIGtob2FjIGNobyBk byBsYW5oLiBUcm9uZyBraGkgZG8gbmhpZXUgbm9pIGtob25nIGNvIGRpZW4gc3UgZHVuZywgY2Fj IA0KdGluaCBwaGFpIGN1cCBsdWFuIHBoaWVuIGNvbiBuZ2FuaCBkaWVuIHBoYWkgYXAgZHVuZyBt b2kgYmllbiBwaGFwIGhvIGhhbyB0aWV0IGtpZW0gDQpkaWVuLi4uIiwgb25nIEN1b25nIGRhbiBj aHVuZy4NCg0KTGllbiBxdWFuIGRlbiBjb25nIHRhYyB0aWV0IGtpZW0gZGllbiB0cm9uZyBuYW0g MjAxMCwgUGhvIENodSB0aWNoIFVCTkQgVFAuSENNIA0KTmd1eWVuIFRoYW5oIFRhaSB2dWEgeWV1 IGNhdSBTbyBHVFZUIGNoaSBkYW8gQ29uZyB0eSBDaGlldSBzYW5nIGNvbmcgY29uZywgY29uZyAN CnZpZW4gY2F5IHhhbmguLi4gcmEgc29hdCBsYWkgY2FjIHR1eWVuIGR1b25nLCBraHUgdnVjIGNv bmcgY29uZyBjaHVhIHRodWMgaGllbiBjYXQgZ2lhbSANCnNvIGx1b25nIGRlbiBjaGlldSBzYW5n IGtob25nIGNhbiB0aGlldC4gRG9uZyB0aG9pLCBTbyBHVFZUIGNhbiBraWVtIHRyYSwgZ2lhbSBz YXQgDQp2aWVjIGNhdCBnaWFtIDUwJSBzbyBsdW9uZyBkZW4gY2hpZXUgc2FuZyBjb25nIGNvbmcg dGFpIGNhYyB0dXllbiBkdW9uZywgcGhvLCBraHUgdnVjIA0KY29uZyB2aWVuLi4uIE5nb2FpIHJh IGNhYyBkb24gdmkgY2FuIGdpYW0gc2F0IGNoYXQgY2hlIHRob2kgZ2lhbiBiYXQsIHRhdCBkZW4g Y2hpZXUgc2FuZyANCmNvbmcgY29uZyBkZSB2dWEgdGlldCBraWVtIGRpZW4gdnVhIGRhbSBiYW8g QVRHVCwgYW4gbmluaCB0cmF0IHR1LiBUaGVvIHF1eSBkaW5oLCBzYXUgDQoyMmggY2FjIGhlIHRo b25nIGRlbiBxdWFuZyBjYW8gbmdvYWkgdHJvaSBwaGFpIHRhdCBkZSB0aWV0IGtpZW0gZGllbi4g Tmh1bmcgdGh1YyB0ZSBxdWEgDQpraWVtIHRyYSBjdWEgZGllbiBsdWMgdGhhbmggcGhvLCBoYW5n IGxvYXQgYmFuZyBxdWFuIGNhbyB2YW4gc2FuZyBkZW4gZGVuIDIzaCwgMjRoLi4uIA0KZ2F5IGxh bmcgcGhpIGRpZW4uIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvVmlldC10aWVw LXZ1LWNodWEtY28tZHUtYW4tdmFuLXRodS1ob2ktZGF0LWN1YS1kYW4vMjAwOTUvMTM4MjI4Lmxh b2RvbmcgODozMCBBTSwgMTQvMDUvMjAwOQ0KDQpUUCBIQ006ICJjaHVhIGNvIGR1IGFuLCB2YW4g dGh1IGhvaSBkYXQgY3VhIGRhbiINCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lLzQw LXRpLWRvbmctdmFvLXR1aS1haS8yMDEwMS8xNzEwNTMubGFvZG9uZyA4OjMxIEFNLCAxOS8wMS8y MDEwDQoNClRQSENNOiBCZW5oIHZpZW4gTmhhbiBkYW4gMTE1IGJ1b2MgYmVuaCBuaGFuIG5vaSB0 cnUgbXVhIHRodW9jIGdpYSBjYW86IDQwIHRpIGRvbmcgdmFvIHR1aSBhaT8NCg0KaHR0cDovL3d3 dy5zYWlnb25uZXdzLnZuL3NuY2RldGFpbG5ld3MuYXNweD9JdGVtPTQzMDY0JktpbmQ9MjI2IDE0 LTAzLTIwMDggMDc6NDAgQU0NCg0KVFBIQ006IEhvbiA0LjAwMCBjb25nIG5oYW4gZGluaCBjb25n IC0gQ29uZyB0eSBUTkhIIEdpYXkgZGEgSHVlIFBob25nIChRLiBHbyBWYXAsIFRQSENNKSANCg0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAwOC9LaWVuLUdpYW5nLVRodS1r aG8tY29uZy10eS1EdW9jLXRoYW0tby0xMi10eS1kb25nLTkyNzk4NC8gQnVpIEN1b25nIDA5OjI5 LCAxMC8wOC8yMDEwIChHTVQrNykNCg0KVFAgSENNOiBLZSB0b2FuIHZhIHRodSBxdXkgQ29uZyB0 eSBEdW9jIHRodSB5IHRoYW0gbyB0YWkgc2FuIDg2NSB0cmlldSBkb25nICANCg0KaHR0cDovL3d3 dy50aW4yNDcuY29tL2RhdV9oaWV1X2JhdF90aHVvbmdfdHJvbmdfZGF1X2dpYV8lRTIlODAlOUNk YXRfdmFuZyVFMiU4MCU5RF9vX3RwaGNtLTEtMjEzMTQ4OTUuaHRtbCAxNy8xMC8yMDA4IE5ndW9u OiBWaWV0TmFtTmV0LnZuDQoNClRQIEhDTTogRGF1IGhpZXUgYmF0IHRodW9uZyB0cm9uZyBkYXUg Z2lhICJkYXQgdmFuZyIgbyBUUC5IQ00NCg0KaHR0cDovL3d3dy5jYW5kLmNvbS52bi92aS1WTi9w aGFwbHVhdC8yMDA4LzcvOTQ1NjQuY2FuZCAxNjowNjowMCAwNS8wNy8yMDA4DQoNClRQIEhDTTog Q29uZyBraGFpIHRyb20gdGhlcCB0YWkgaGFtIGRhbiBUaHUgVGhpZW0gKFRQIEhDTSkNCg0KMWgg bmdheSA4LzYsIGhvbiA0MCBkb2kgdHVvbmcgdHUgdGFwIHRydW9jIGNvbmcgdHJ1b25nIG5hbSBv IGtodSB2dWMgYXAgQ2F5IEJhbmcsIHBodW9uZyBUaHUgVGhpZW0sIHF1YW4gMiB2b2kgbWEgdGF1 IHZhIGRhbyBuaG9uIHRhbiBjb25nLCBraG9uZyBjaGUgbHVjIGx1b25nIGJhbyB2ZSB2YSBsYXkg ZGkga2hvYW5nIDIgdGFuIHRoZXAgdHJpIGdpYSBob24gMjggdHJpZXUgZG9uZyBjdW5nIDE1IGNh eSB4YSBnbyB0aGVwLg0KDQpUaGVvIGJhbiBiYW8gY2FvIGN1YSBCYW4gcXVhbiBseSBkdSBhbiBn b2kgdGhhdSBzbyAyIHRoaSBjaGkgdHJvbmcgdm9uZyB0aGFuZyA2LzIwMDgsIHRhaSBjb25nIHRy aW5oIG5heSBjbyBnYW4gMzAgdnUgdHJvbSBjdW9wIHZhdCB0dSBjb25nIHRyaW5oIG5odSBzYXQg dGhlcCwgbWF5IG1vYy4uLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFn ZXMvMjAxMDA1LzIwMTAwMTI1MDA1MDMxLmFzcHggMjUvMDEvMjAxMCAwOjUwIA0KDQpUUC5IQ006 IFZ1IHRpZXUgY3VjIGRhdCBkYWkgdGFpIENvbmcgdHkgeGF5IGR1bmcgR28gVmFwOiAgDQogDQpU cmFuIEtpbSBMb25nIChuZ3V5ZW4gQ2h1IHRpY2ggVUJORCBRLkdvIFZhcCkgYmkgZGUgbmdoaSB0 cnV5IHRvIHZlIHRvaTogbmhhbiBob2kgbG8sIGR1YSBob2kgbG8sIGxvaSBkdW5nIGNodWMgdnUs IHF1eWVuIGhhbiBnYXkgYW5oIGh1b25nIGRvaSB2b2kgbmd1b2kga2hhYyBkZSB0cnVjIGxvaTsg Tmd1eWVuIFZhbiBUaW5oIChuZ3V5ZW4gQmkgdGh1KSB2ZSB0b2k6IG5oYW4gaG9pIGxvLiANCg0K aHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLXhhLWhvaS9QaGFwLWx1YXQvMzg1ODE3L1Z1LXRp ZXUtY3VjLXRhaS1Db25nLXR5LUdvLU1vbi1OZ3V5ZW4tY2h1LXRpY2gtcXVhbi1sYW5oLTI2LW5h bS10dS5odG1sP3A9aHR0cCUzQSUyRiUyRnR1b2l0cmUudm4lMkZDaGluaC10cmkteGEtaG9pJTJG UGhhcC1sdWF0JTJGMzg1ODE3JTJGVnUtdGlldS1jdWMtdGFpLUNvbmctdHktR28tTW9uLU5ndXll bi1jaHUtdGljaC1xdWFuLWxhbmgtMjYtbmFtLXR1Lmh0bWwgMjIvMDYvMjAxMCwgMTU6MTQgKEdN VCs3KSANCg0KVFAgSENNOiBUaWV1IGN1YyB0YWkgQ29uZyB0eSBHbyBNb24gLSAgTmd1eWVuIGNo dSB0aWNoIFVCTkQgcXVhbiBHbyBWYXAgcGhhbSB0b2kgImR1YSBob2kgbG8iIHZhICJsb2kgZHVu ZyBjaHVjIHZ1IA0KcXV5ZW4gaGFuIGdheSBhbmggaHVvbmcgZG9pIHZvaSBuZ3VvaSBraGFjIGRl IHRydWMgbG9pIiAoMjYgbmFtIHR1KTsNCg0KTmd1eWVuIGJpIHRodSBRdWFuIHV5IEdvIFZhcCBO Z3V5ZW4gVmFuIFRpbmgsIHRvYSBjdW5nIGNodXllbiB0dSB0b2kgZGFuaCAibmhhbiANCmhvaSBs byIgc2FuZyB4dSB2ZSBtb3QgdG9pIGRhbmgga2hhYyBuaGUgaG9uIGxhICJsb2kgZHVuZyBjaHVj IHZ1IHF1eWVuIGhhbiBnYXkgYW5oIA0KaHVvbmcgZG9pIHZvaSBuZ3VvaSBraGFjIGRlIHRydWMg bG9pIiAoMTMgbmFtIHR1KS4NCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1hhLWhvaS8y MDA5LzExLzNCQTE1NDhELw0KDQpUUCBIQ006IGRvYW5oIG5naGllcCB2YW4gdGFpIGJhdCBiaW5o IHZpIHBoYWkgZG9uZyBwaGkgb2FuIGR1IGtob25nIGx1dSB0aG9uZyBiYW5nIGR1b25nIERpZW4g QmllbiBQaHUsIA0KZGFuIGRlbiBuaGlldSBjdW9jIGRpbmggdGFpIGN1YSBjYWMgbGFpIHhlIG5n YXkgdHJhbSB0aHUgcGhpIHhhIGxvIEhhIE5vaSB0dSBkYXUgdGhhbmcgMTEuIERlIG5naGkgbmd1 bmcgaG9hdCBkb25nIHRyYW0gdGh1IHBoaSB4YSBsbyBIYSBOb2kuDQoNCmh0dHA6Ly93d3cudGlu bW9pLnZuL1F1YW4tMTItVFBIQ00tTmdhbS1hbi10aGFtLXBoYW4tYmktZG9pLTA1MTg2NDkuaHRt bCAwMjo0OCBuZ2F5IDA5LzA1LzIwMDkNCg0KVFAuSENNOiBOZ2FtIGFuLCB0aGFtIHBoYW4gYmkg ZG9pDQoNCmh0dHA6Ly93d3cudGlubW9pLnZuL0tldC1jdW5nLXR1LXBoaWEtY3VhLW5nby1zYW4t YmF5LVRhbi1Tb24tTmhhdC0xMDcxMjAxLmh0bWwgMTI6MzYgbmdheSAyMS8xMC8yMDA5IA0KDQpU UCBIQ006IEtldCBjdW5nIHR1IHBoaWEgY3VhIG5nbyBzYW4gYmF5IFRhbiBTb24gTmhhdCANCg0K aHR0cDovL3d3dy50aWVucGhvbmcudm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD04ODk2 NCZDaGFubmVsSUQ9MTIgMDUvMDcvMjAwNywgMTg6MDYNCg0KVFAgSENNIDogTmd1eWVuIENodSB0 aWNoIFVCTkQgcXVhbiAxMiBiaSBkZSBuZ2hpIHRydXkgdG8gLSB0b2kgZGFuaCAiQ28geSBsYW0g dHJhaSBjYWMgcXV5IGRpbmggY3VhIE5oYSBudW9jIHZlIHF1YW4gbHkga2luaCB0ZSwgZ2F5IGhh dSBxdWEgbmdoaWVtIHRyb25nIi4gDQoNCmh0dHA6Ly93d3cudGh1dmllbnBoYXBsdWF0LnZuL2Rl ZmF1bHQuYXNweD9DVD1OVyZOSUQ9MTQxNDYgMDEvMDgvMjAwOA0KDQpUUC5IQ006IFRodSBob2kg ImdpYXkgZG8iIHNhaSwgVUJORCBxdWFuIDEyIHRodWEga2llbg0KDQpodHRwOi8vZG9hbmhuaGFu dGltZXMuY29tL1MxOE43OTAvVGhhbmgtWHVhbiwtcXVhbi0xMiwtVFBIQ00ta2hvLXZpLW8tbmhp ZW0tdmEtcXV5LWhvYWNoLXRyZW8uaHRtbCAxMC8wNy8yMDA4IDA3OjA0DQoNClRQSENNOiBLaG8g dmkgbyBuaGllbSB2YSBxdXkgaG9hY2ggdHJlbyANCg0KVGhhbmggTG9jIChodXllbiBIb2MgTW9u IHh1YSwgbmF5IGxhIHBodW9uZyBUaGFuaCBYdWFuLCBxdWFuIDEyLCBUUEhDTSkgbGEgdnVuZyB0 cm9uZyBob2EgbGFpIG5vaSB0aWVuZywgbW90IGRhdSBtb2kgY3VuZyB1bmcgaG9hIGxhaSBjaG8g bmhpZXUgZGllbSB1b3AgdHJhIHRyb25nIHRoYW5oIHBobyBuaHVuZyBuYW0gNzAgLSA5MC4gTmh1 bmcgbyBub2kgYXksIGJheSBnaW8gY2hpIGNvbiBuaHVuZyB2dW9uIGxhaSB0cm8gZ29jIGJvaSBu Z3VvbiBudW9jIG8gbmhpZW0gbmFuZyB2YSB2aSBtYW5oIGRhdCBuYXkgZGFuZyBsYSBkdSBhbiB0 cmVvIGN1YSB0aGFuaCBwaG8uDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA4 LzA3LzNCQTA0OTdGLyAxOC83LzIwMDgsIDE3OjI1IEdNVCs3DQoNClRQIEhDTTogTmhpZXUgY2Fu IGJvICdhbicgdGllbiB0dSBkYXQgZGFpIA0KDQpodHRwOi8vdGludHVjLnRpbW5oYW5oLmNvbS94 YS1ob2kvMjAwOTAzMDYvMzVBOEYzMjIvUVVBTi0xMi0tVFBIQ00tSGFuZy1jaHVjLWhvLWRhbi1u Z2FwLXRyb25nLW51b2MtZG8uaHRtIDA2LzAzLzIwMDkgMTU6MjE6NTcNCg0KVFBIQ006IEhhbmcg Y2h1YyBobyBkYW4gbmdhcCB0cm9uZyBudW9jIGRvDQoNCkRvIGNoaXUga2hvbmcgbm9pIHRpbmgg dHJhbmcgbnVvYyBuZ2FwLCBvIG5oaWVtLCBuaGlldSBobyBkYSBibyBuaGEgZGkgbm9pIGtoYWMN Cg0KaHR0cDovL3d3dy5yZTI0aC5jb20vP3BhZ2U9dGludHVjJnZpZXc9ZGV0YWlsMiZpZHRpbj0z NTQ4JmlkYm94PTM1NiAxNS8xMS8yMDA4IDA2OjQ5OjU1IEFNDQoNClRQSENNOiBDbyBjaG8gbW9p IG5odW5nIHZhbiBiYW4gbGUgZHVvbmcNCg0KQ2hpIGVtIHRpZXUgdGh1b25nIG8gY2hvIEJhdSBO YWkgKGR1b25nIFRydW9uZyBDaGluaCwgcGh1b25nIFRhbiBIdW5nIFRodWFuLCBxdWFuIDEyLCBU UEhDTSkgbmdheSBuZ2F5IG5nYWMgbmdvYWkgY2hvIGR1b2Mgdm8gY2hvIG1vaS4gVHJvbmcga2hp IGRvLCBjaG8gQW4gU3VvbmcgeGF5IHhvbmcgdHUgY3VvaSBuYW0gMjAwMyB2YW4gYm8gaG9hbmcg bmVuIHRpZXUgdGh1b25nIGRhbmggYnVvbiBiYW4gby4uLiBsZSBkdW9uZyENCg0KaHR0cDovL25l d3Muc29jYmF5LmNvbS9waHVvbmdfaGllcF90aGFuaF9xdWFuXzEyX3RwaGNtX2Rhbl9ob2FuZ19t YW5nX3ZpX25hbl90cm9tX2NhcC02MDA1ODY0MDQtMzM2MTk5NjguaHRtbCBzZ2dwLm9yZy52biAt IDE1OjE0IDExLTA4LTIwMDgNCg0KVFAgSENNOiBEYW4gaG9hbmcgbWFuZyB2aSBuYW4gdHJvbSBj YXAgDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL1BoYXAtTHVhdC8xMDc1NDQvVGhlbS1oYW5n LWxvYXQtc2FpLXBoYW0tdHJvbmctY2FjLWR1LWFuLWRhdC1kYWktdGFpLVEyLmh0bWwgMTU6Mjkg MDgvMDEvMjAwOCANCg0KVFAgSENNOiBUaGVtIGhhbmcgbG9hdCBzYWkgcGhhbSB0cm9uZyBjYWMg ZHUgYW4gZGF0IGRhaSB0YWkgUXVhbiAyDQoNCi0gVGFpIGR1IGFuIHhheSBjaG8gQW4gS2hhbmgg KHBodW9uZyBCaW5oIEtoYW5oKSwgbmhpZXUgc2FpIHBoYW0gdHJvbmcgcXVhbiBseSB4YXkgZHVu ZyBjaG8sIGR1eWV0IGR1IGFuIGRhdSB0dSwgdGhpZXQga2UuLi4gRGFjIGJpZXQsIHZpZWMgdHJp ZW4ga2hhaSBjaHUgdHJ1b25nIGR1bmcgbmdhbiBzYWNoIGRlIGdpYW0gZ2lhIHRodWUgc2FwIGNo byB0aWV1IHRodW9uZywgcXVhIHRoYW5oIHRyYSBwaGF0IGhpZW4gNiBobyBjaHVhIG5oYW4gZ2lh bSBnaWEhDQoNCi0gVHJvbmcgZHUgYW4geGF5IGR1bmcga2h1IHRhaSBkaW5oIGN1IDE3LDMgaGEg dGFpIHBodW9uZyBBbiBQaHUsIEJpbmggS2hhbmgsIEhvaSBkb25nIGRlbiBidSB0aGlldCBoYWkg Z2lhaSBwaG9uZyBtYXQgYmFuZyBRLjIgZGEga2hvbmcgdGh1YyBoaWVuIGR1bmcgY2FjIHF1eSBk aW5oIGN1YSBDaGluaCBwaHUsIEN0eSBRdWFuIGx5IG5oYSBRLjIgZGEgY2hpIHBodWMgdnUgYm9p IHRodW9uZyBzYWkgZ2FuIDE1MCB0cmlldSBkb25nOyBjYWMgY29uZyB0eSB0dSB2YW4sIHRoaWV0 IGtlIHRoYW0gZ2lhIGR1IGFuIGNvIG5oaWV1IHNhaSBwaGFtLi4uDQoNCi0gVGFpIGR1IGFuIGNh dSBLeSBIYSAocGh1b25nIFRoYW5oIE15IExvaSksICBjbyBuaGlldSBzYWkgc290IHRyb25nIHRo aWV0IGtlLCBtb3Qgc28gaGFuZyBtdWMgdGhpIGNvbmcgc2FpIHZvaSBobyBzbyB0aGlldCBrZS4g DQoNCi0gVGFpIGR1IGFuIHhheSBjaHVuZyBjdSBjYW8gY2FwIEFuIFBodSBHaWEgZG8gQ3R5IFFM IHZhIFBUTiBRLjIgbGFtIGNodSBkYXUgdHUgZGEgdHUgeSBzdSBkdW5nIGdhbiA0LjAwMG0yIGRh dCBsYSB0YWkgc2FuIGNvbmcga2hpIGNodWEgY28gcXV5ZXQgZGluaCBnaWFvIGRhdCwga2hvaSBj b25nIGtoaSBjaHVhIGR1b2MgcGhlIGR1eWV0IGhvIHNvICB0aGlldCBrZSwga2hvbmcgbGFwIGtl IGhvYWNoIGRhdSB0dSBkdSBhbi4gDQoNCi0gSG9pIGRvbmcgZGVuIGJ1IGdpYWkgcGhvbmcgbWF0 IGJhbmcgUS4yIGRhIGRlbiBidSBzYWkgNDAwbTIgZGF0IGNobyAyIGRvaSB0dW9uZyB0cm9uZyBk dSBhbiAxMzEgaGEgdGFpIEFuIFBodSwgQW4gS2hhbmguDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMS8yMDEwMDczMDAwNTg0My5hc3B4IFRUIC0gS04gLSBO ViAzMC8wNy8yMDEwIDA6NTggDQoNClRQIEhDTTogVGFwIHlvZ2EsIGhhbmcgbG9hdCBjaGFuIHRo dW9uZyAtIE1vaSB0aGF5IGRheSBtb3Qga2lldSANCg0KaHR0cDovL3VzLnZpZXRuYW1uZXQudm4v eGFob2kvZG9pc29uZy8yMDA3LzAzLzY2ODUyMi8gMDQ6NDAsIDAyLzAzLzIwMDcgKEdNVCs3KQ0K DQpUUCBIQ006IENvbmcgdHkgQ29uZyB2aWVuIGNheSB4YW5oIHRoYW5oIHBobyBuZ2hpZW0gdGh1 IHRoYW5oIHRvYW4ga2hvaSBsdW9uZyB0aHVjIGhpZW4gDQpraG9uZyBkdW5nIGtob2kgbHVvbmcg dGh1YyB0ZSB0aGkgY29uZyAxMDEgdHkgZG9uZyANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIw MDkxMTE5MDkwNjE2NzQycDBjMTAwNS9iYXQta2hhbi1jYXAtbW90LWdpYW0tZG9jLXRodWUtc2F0 LXRodS1naWV0LW5ndW9pLmh0bSAxOS8xMS8yMDA5LCAwOToxMyhHTVQrNykNCg0KVFAgSENNOiAi SG9wIGRvbmciIGdpZXQgbmd1b2kgZGlldCBraGF1IC0gTW90IGdpYW0gZG9jIHRodWUgc2F0IHRo dSBnaWV0IGNhcCBwaG8gIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8w My8zQjlFN0VEMC8gMjMvMy8yMDA2LCAxMDoxOCBHTVQrNw0KDQpUUCBIQ006IENhdSwgZHVvbmcg Tmd1eWVuIEh1dSBDYW5oIGxhbSBkdSB0aHUgJ3Ryb25nIGJlbmgnIC0gTmd1eSBjbyBkbywgc2Fw IGJhdCBjdSBsdWMgbmFvDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzAz LzNCOUU3RUQwLyAyMy8zLzIwMDYsIDEwOjE4IEdNVCs3DQoNClRQIEhDTTogQ2F1IHZ1b3QgTmd1 eWVuIEh1dSBDYW5oIGx1biBxdWEgZG8gdmEga2VtIG15IHF1YW4NCg0KaHR0cDovL3ZuZXhwcmVz cy5uZXQvR0wvWGEtaG9pLzIwMDYvMDMvM0I5RTdCMDQvIDE2LzMvMjAwNiwgMTA6MjIgR01UKzcg THV1IER1Yw0KDQpDYXUgVmFuIFRoYW5oIDIgYmkgdGh1bmcgbW90IGhvIGxvbiAtIHJvbmcgZ2Fu IDIgbSwgbmdheSBtbyBoYW0gY2h1aSBwaGlhIHF1YW4gQmluaCBUaGFuaC4gDQpOaHUgdmF5LCBj aGkgc2F1IGhvbiB0aGFuZyBydW9pIHN1YSBjaHVhIHZhIGR1YSB2YW8gc3UgZHVuZywgY2F5IGNh dSBuYXkgbGFpIHhheSByYSBzdSBjby4NCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9p LzIwMDYvMDMvM0I5RTdCOTUvIDE3LzMvMjAwNiwgMTI6MDEgR01UKzcNCg0KVFAgSENNOiAnVmV0 IHRodW5nIHRyZW4gY2F1IFZhbiBUaGFuaCAyIHF1YSBnaGUgcm9uJw0KDQpQaG8gZ2lhbSBkb2Mg U28gR2lhbyB0aG9uZyBjb25nIGNoaW5oIFRQIEhDTSBOZ3V5ZW4gVmlldCBTb24gZGEgdGhvdCBs ZW4gbmh1IHZheSwgDQpraGkgdHJhbyBkb2kgdm9pIFZuRXhwcmVzcyBjaGlldSAxNi8zIHZlIHN1 IGNvIHhheSByYSBsdWMgMGggY3VuZyBuZ2F5IHRhaSBjYXkgY2F1IA0Kbm9pIHRpZW5nIG5heS4N Cg0KIkNhaSBjaG8gdGh1bmcgYXkgZ2hlIHF1YS4gQ2hpIGNhbiB4ZSBkaSBxdWEsIGxvdCBiYW5o IGxhIGxhdCBsaWVuLiBNb3QgY2F5IGNhdSBtYSANCmxpZW4gdGllcCB4YXkgcmEgY2FjIHN1IGNv LCByb2kgdG9pIGRheSBsYSBnaSBudWE/IEdoZSBxdWEhIiwgUGhvIGdpYW0gZG9jIFNvIEdUQ0Mg bm9pLg0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDA0MDUzMDg1L2R1b25nX2dpdWFfaGFtX2No dWlfdmFfY2F1X3Zhbl90aGFuaF8yX2x1bl83X3RhYy5odG1sIFR1b2kgdHJlIC0gMjUvMTAvMjAw NQ0KDQpUUCBIQ006IER1b25nIGdpdWEgaGFtIGNodWkgdmEgY2F1IFZhbiBUaGFuaCAyOiBMdW4g NyB0YWMgKDcwY20pDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzAzLzNC OUU4MzFELyAzMC8zLzIwMDYsIDA3OjEyIEdNVCs3DQoNClRQIEhDTTogTmhpZXUgaGFuZyBtdWMg Y2F1IFZhbiBUaGFuaCAyIGNvIHRoZSBzYXAgYmF0IGN1IGx1YyBuYW8gDQoNCkRvIGxhIG5vaSBk dW5nIG1vdCBwaGFuIHRyb25nIGNvbmcgZGllbiBraGFuIGN1YSBCbyBHaWFvIHRob25nIFZhbiB0 YWkgdnVhIGd1aSANClVCTkQgVFAgSENNLiBUcm9uZyBkbyBjaGkgcm8sIG5nb2FpIGtodSB2dWMg cXVhbmggbG8gdGh1bmcgZGVtIDE1LzMsIG5oaWV1IGhhbmcgDQptdWMga2hhYyBjdWEgY2F5IGNh dSBuYXkgY28gdGhlIGJpIHNhcCBiYXQgY3UgbHVjIG5hby4gSGFuZyBjaHVjIG5naGluIHhlIHRh aSANCmx1dSB0aG9uZyBxdWEgVmFuIFRoYW5oIDIgbW9pIG5nYXkgZGFuZyB0cm9uZyB0aW5oIHRy YW5nIGN1YyBreSBuZ3V5IGhpZW0uDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8y MDA5MTAvVGFuZy0xLWxhaS1yYWktdGFuZy0yLXRydXktc2F0LTg3NTczNC8gVmluaCBQaGFuICAw MDowOCwgIDI4LzEwLzIwMDkgKEdNVCs3KSANCg0KVFAgSENNOiBSdW5nIHJvbiAtICdUYW5nIDEn IGxhaSByYWksICJ0YW5nIDIiLi4uIHRydXkgc2F0IA0KDQpNYXUgdGh1YW4gY2FpIG5oYXUgdm9p IG5ndW9pIG5nb2kgYmFuIG5oYXUga2UgYmVuLCBkdW9jIGNodSBxdWFuIGNhbiBuZ2FuIG5lbiBU YW4gYm8gDQp2ZTsga2hvYW5nIDE1IHBodXQgc2F1IGRlbSB0aGVvIDEgY29uIGRhbywgY3VuZyAx IGR1aSBjdWkgdHUgY2hlIGJhbmcgc2F0LCBxdWF5IGxhaSBxdWFuIA0KY3UgdGllcCB0dWMgZ29p IGJpYSB1b25nIG5oYW0gZ2F5IGdvIHZvaSBIdW5nLiBEbyB0dSB0aW4gdm9pIHNvIGh1bmcga2hp IHRyb25nIHRheSBuZW4gDQpUYW4gY3UgbmdvaSBuaGluIHNhbmcgYmFuIEh1bmcgY2h1aS4uLiB2 byB0dS4gVHJvbmcgbHVjIHF1YXkgcmEgY2hvIGtoYWMsIFRhbiBiaSBIdW5nIA0KbmhhbyBzYW5n IGRhbSAxIG5oYXQgdmFvIGJ1bmcgdmEgY2hldCB0cmVuIGR1b25nIGRpIGNhcCBjdXUhDQoNCmh0 dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS9waGFwbHVhdC8yMDEwMDMvRG8tYm8tYmFuZy1v dG8tZ2l1b25nLXN1bmctdHJ1eS1zYXQtbmd1b2ktZ2l1YS10cnVhLTg5OTk0Mi8gRGFtIERlICAx Njo1NCwgMjEvMDMvMjAxMCAoR01UKzcpDQoNClRQLkhDTTogJ0RvIGJvJyBiYW5nIG90bywgZ2l1 b25nIHN1bmcgdHJ1eSBzYXQgbmd1b2kgZ2l1YSB0cnVhIC0gQ3VvYyBiYW8gdGh1IGN1YSBnaWFu ZyBobyBOYW0gRGluaA0KDQpUaGVtIG1vdCB2dSB0cnV5IHNhdCAic2FjIG11aSIgeGEgaG9pIGRl biBkaWVuIHJhIHRhaSBxdWFuIFRodSBEdWMgVFAuSENNLiANCkJhbmcgbmhvbSBkbyBOZ3V5ZW4g RGFuZyBUcnVuZyBjYW0gZGF1IGtlbyB0aGVvIDEwIGRhbiBlbSBkaSBvdG8ga2VvIGRlbiB2YSBn aXVvbmcgc3VuZyBkaWVuIGRlIHRydXkgc2F0IGRvaSB0aHUuIA0KIA0KVnUgdmllYyB4YXkgcmEg dmFvIGtob2FuZyAxMWggbmdheSAyMC8zLCBkYSBsYW0gbmhpZXUgbmd1b2kgZGFuIG1vdCBwaGVu IA0Ka2luaCBob2FuZyBraGkgY2h1bmcga2llbiBtb3QgbWFuIHRoYW5oIHRvYW4gInNhYyBtdWki IHhhIGhvaSBkZW4uDQoNClRoZW8gbmhpZXUgbmd1b2kgZGFuIGRpYSBwaHVvbmcsIHF1YW4gY2Eg cGhlIDNBIGxhIG1vdCBkaWEgZGllbSBraGEgcGh1YyB0YXAgDQpraGkgdGh1b25nIHhheSByYSBj YWMgY3VvYyBkdW5nIGRvIGdpdWEgY2FjIGJhbmcgbmhvbSBtYW5nIHRpbmggY2hhdCBjb24gZG8s IA0KeGEgaG9pIGRlbi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2Vz LzIwMTAyOC8yMDEwMDcxMTE2NDcxMC5hc3B4IDExLzA3LzIwMTAgMTY6NDcNCg0KVFAgSENNOiBC YW5nIG5ob20gbHV1IG1hbmggZGFuIGNhbmggZGUgaGllcCBkYW0sIGN1b3AgY3VhICANCg0KaHR0 cDovL3ZuZXhwcmVzcy5uZXQvR0wvUGhhcC1sdWF0LzIwMTAvMDgvM0JBMUY2RjIvIDIwLzgvMjAx MCwgMDA6MjkgR01UKzcNCg0KVFAuSENNOiBHaWV0IG5ndW9pIHRpbmggdmkgYmkgZXAgYm8gdm8g DQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDkvVHJvbi10aHVlLWhvbi1jaHVjLXR5 LWRvbmctdGFpLWtoYWNoLXNhbi1lcXVhdG9yaWFsLTkzNzQ0Ny8gMTk6MzIsICAyNC8wOS8yMDEw IChHTVQrNykNCg0KVFAuSENNOiBLaGFjaCBzYW4gNSBzYW8gdHJvbiB0aHVlIGhvbiBjaHVjIHR5 IGRvbmcgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMC8y MDEwMDcyMzE2MTE0OS5hc3B4ICAyNC8wNy8yMDEwIDE2OjExIA0KDQpUUCBIQ006IFF1YWkgeGUg a2h1eW5oIGRhbyBkZW0gU2FpIEdvbiAtICJZZW5nIGh1bmciIHhhIGxvIHhlIHRvYWMgbWFuIGRl bSAtICJDb2kgdHJvaSBiYW5nIHZ1bmciDQoNCk5ndW9pIGRhbiByYXQgYnVjIHh1YyB0cnVvYyB0 aW5oIHRyYW5nIGNhIG5nYW4gInF1YWkgeGUiLCBjYWMgdGhhbmggdGhpZXUgbmllbiB0dSB0YXAg ZHVhIA0KeGUgaGFuZyBkZW07IGxhbmcgbGFjaCwgZGFuaCB2b25nLCBuZXQgcG8gdGhhdSBkZW0g c3VvdCBzYW5nLCBnYXkgbmd1eSBoaWVtLCBtYXQgYW4gbmluaCB0cmF0IHR1Li4uIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMjQxMDI3MTYu YXNweCBUcmkgUXVhbmcgMjQvMTAvMjAxMCAxMDoyNyANCg0KVFAgSENNOiA1NTAgeGUgdHUgdGFw IGdheSBtYXQgdHJhdCB0dSAgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9UUC1IQ00tR2ll dC1uZ3VvaS1jdW9wLWN1YS1naXVhLWJhbi1uZ2F5LzIwNzU1NDkxLzE1Ny8gRHVjIExvbmcodG9u ZyBob3ApIDE4LzExLzIwMDcsIDE1OjU5IEdNVCs3IA0KDQpUUC5IQ006IEdpZXQgbmd1b2kgY3Vv cCBjdWEgZ2l1YSBiYW4gbmdheSANCg0KQ2hpZXUgMTcvMTEsIG1vdCB2dSBnaWV0IG5ndW9pIHRh byB0b24geGF5IHJhIHRhaSBjdWEgaGFuZyBiYW4gZG8gdGhvaSB0cmFuZyBCbHVlICg0MTIgDQpU cnVvbmcgQ2hpbmgsIFAuMTMsIFEuVGFuIEJpbmgsIFRQLkhDTSkuIE5hbiBuaGFuIGxhIE5ndXll biBIb2FuZyBNaW5oIFRodSAoMTkgDQp0dW9pLCBxdWUgQW4gR2lhbmcpLCBuaGFuIHZpZW4gYmFu IGhhbmcgdGFpIGN1YSBoYW5nIG5heS4NCg0KVGhvbmcgdGluIGJhbiBkYXUgY2hvIGJpZXQsIHRy dW9jIGRvIGNodW5nIDEgZ2lvLCBodW5nIHRodSBkYSBnaWEgZGFuZyBraGFjaCBtdWEgaGFuZyAN CmxvdCB2YW8gY3VhIGhhbmcgdmEgZGFtIGNoZXQgbnUgbmhhbiB2aWVuIGJhbmcgbmhpZXUgbmhh dCBkYW8uIEJvbiBjaHVuZyBkYSBjdW9wIHNvIA0KdGllbiBtYXQga2hvYW5nIDEgdHJpZXUgZG9u ZyB2YSB0YXUgdGhvYXQgbWEga2hvbmcgYmkgbmhhbiB2aWVuIGdpdSB4ZSBwaGlhIHRydW9jIHBo YXQgDQpoaWVuLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQLUhDTS1HaWV0LW5ndW9p LWN1b3AtY3VhLWdpdWEtYmFuLW5nYXkvMjA3NTU0OTEvMTU3LyBEdWMgTG9uZyh0b25nIGhvcCkg MTgvMTEvMjAwNywgMTU6NTkgR01UKzcgDQoNClRQLkhDTTogR2lldCBuZ3VvaSBjdW9wIGN1YSBn aXVhIGJhbiBuZ2F5ICh0aWVwKQ0KDQpLZSB0dSBkYXUgbmFtIGRlbiBuYXkgdHJlbiBkaWEgYmFu IFRQLkhDTSBsaWVuIHR1YyB4YXkgcmEgY2FjIHZ1IGN1b3AgZ2lhdCwgZ2lldCBuZ3VvaSANCm5n dXkgaGllbSwgdGFvIHRvbiBob24gYm9uIGNodW5nIGNvbiBnYXkgYW4gZ2l1YSBiYW4gbmdheSB2 YSBuZ2F5IGNhIHRyb25nIGtodSB2dWMgDQpkb25nIG5ndW9pIHF1YSBsYWk6IA0KDQorIE5nYXkg MTYvMDEsIG1vdCB2dSBjdW9wIG5naGllbSB0cm9uZyB2dWEgeGF5IHJhIHRyZW4gZHVvbmcgRGFu ZyBWYW4gTmd1LCBwaHVvbmcgDQoxMCwgcXVhbiBQaHUgTmh1YW4oVFAuSENNKSwgbmFuIG5oYW4g bGEgZ2lhbSBkb2MgbW90IGRvYW5oIG5naGllcC4NCg0KKyBUcnVhIG5nYXkgMTUvMiwgbW90IGJh bmcgY3VvcCBnb20gYm9uIHRlbiBnaWEgZGFuZyBraGFjaCBoYW5nIG11YSB2YW5nIHZhIGR1bmcg DQpzdW5nIGtob25nIGNoZSBjaHUgdGllbSBjdW9wIGRpIDIwMCB0cmlldSBkb25nLCAxLjYwMCBk byBsYSBVYyByb2kgbGVuIHhlIGdhbiBtYXkgdGF1IA0KdGhvYXQuDQoNCisgTmdheSAxMy82LCBr ZSBjdW9wIGRhIGR1bmcgc3VuZyB1eSBoaWVwIGNodSB0aWVtIHZhbmcgTmdvYyBDaGF1IGN1b3Ag ZGkgaG9uIDIwIA0KbHVvbmcgdmFuZyB2YSBuaGlldSBudSB0cmFuZyBjbyBnaWEgdHJpIGtoYWMu IEJvbiBjdW9wIGdheSBhbiBnaXVhIGJhbiBuZ2F5IHZhIHRhaSBub2kgDQpkb25nIG5ndW9pIHF1 YSBsYWkuDQoNCisgTmdheSAxOS82LCBBbmggUGhhbSBIdXUgSGllcCAoMjcgdHVvaSkgYmkgYmFu IGNoZXQgbmdheSB0YWkgY3VhIG5oYSBtaW5oIHNhdSBraGkgYmkgDQo0IHRlbiBjdW9wIGtob25n IGNoZSwgY3VvcCBjaGllYyB4ZSBtYXkgU0guDQoNCisgMTRoIGNoaWV1IG5nYXkgMjUvNiwgbW90 IHZ1IGR1bmcgc3VuZyBjdW9wIHRpZW0gdmFuZyBkYSB4YXkgcmEgdGFpIFRQLkhDTSBuaHVuZyAN CmJvbiB0ZW4gY3VvcCBkYSBraG9uZyB0aGFuaCBjb25nIHRyb25nIHBoaSB2dSB0YW8gdG9uIG5h eS4NCg0KKyBOZ2F5IDMvNywgbW90IHZ1IGN1b3AgdGllbiBuZ2FuIGhhbmcga2hvbmcgdGhhbmgg ZGEgeGF5IHJhIHRhaSB0cnVvYyBwaG9uZyBnaWFvIGRpY2ggDQpBbiBEdW9uZyBWdW9uZyB0aHVv YyBDaGkgbmhhbmggU2FpIEdvbiBjdWEgTmdhbiBoYW5nIERhdSB0dSB2YSBQaGF0IHRyaWVuIFZp ZXQgDQpOYW0sIHNvIDI5NSAtIGR1b25nIEFuIER1b25nIFZ1b25nLCBwaHVvbmcgMywgcXVhbiA1 LCBUUCBIbyBDaGkgTWluaC4NCg0KKyAyNWggbmdheSAxMy83LCB0aGVtIG1vdCB2dSBjdW9wIHRp ZW0gdmFuZyB0YW8gYmFvIHhheSByYSB0cmVuIGRpYSBiYW4gVFAuSENNIA0Kbmh1bmcgY2h1bmcg ZGEgYmkgdG9tIGdvbi4gRG9pIHR1b25nIGR1bmcgc3VuZyBnaWEgdXkgaGllcCBjaHUgdGllbSB2 YSBkYXAgdHUga2luaCANCmN1b3AgdmFuZy4NCg0KKyAxNWggbmdheSAyOC84LCBoYWkgZG9pIHR1 b25nIGVwIHhlIG5ndW9pIGRpIGR1b25nIHhpbiB0aWVuIG5odW5nIGJpIHR1IGNob2kgbGllbiBt b2MgDQpzdW5nIHV5IGhpZXAgY3VvcCBkaSAyLjAwMFVTRC4gU3UgdmllYyB4YXkgcmEgdGFpIG5n YSB0dSBUcmFuIFF1b2MgVGhhbyAtIFR1IFh1b25nLCANClAuNywgUS4zLCBUUEhDTS4NCg0KKyAx MGggbmdheSAwMi8xMCwgVnUgY3VvcCBkaWVuIHJhIG5odSB0cm9uZyBwaGltLCAzIHR5IGRvbmcg YmkgY3VvcCBnaXVhIGJhbiBuZ2F5LCANCmdpdWEgZHVvbmcsIHRydW9jIHN1IGJhdCBsdWMgY3Vh IG5hbiBuaGFuLi4uIA0KDQpodHRwOi8vd3d3Lm1vbGlzYS5nb3Yudm4vb3RoZXJzL2ZhcS9mYXFk ZXRhaWwvdGFiaWQvMjExL25ld3NpZC8zNjc4OC9zZW8vVGUtbmFuLW1hLXR1eS1vLVRQSENNLUJh by1jYW8tbW90LWRhbmctdGh1Yy10ZS1tb3QtbmVvL2xhbmd1YWdlL3ZpLVZOL0RlZmF1bHQuYXNw eCAyNS8xMS8yMDA0DQoNClRlIG5hbiBtYSB0dXkgbyBUUEhDTTogQmFvIGNhbyBtb3QgZGFuZywg dGh1YyB0ZSBtb3QgbmVvIA0KDQpUUCBIQ006IFRob2kgZ2lhbiBxdWEsIG5oaWV1IHZ1IGFuIHZl IG1hIHR1eSBuaHVuZyBtdWMgeHUgcGhhdCBjb24gbmhlLg0KDQpodHRwOi8vd3d3LnRpbjI0Ny5j b20vM19sYW5oX2Rhb195X3RlX3RwX2hjbV9jb19zYWlfcGhhbV92dV9udW9jX3R1b25nX2Rlbi0x LTc1OTcuaHRtbA0KDQpUUCBIQ006IDMgbGFuaCBkYW8gc28gWSB0ZSBjbyBzYWkgcGhhbSB2dSBu dW9jIHR1b25nICdkZW4nDQoNCkJhbiBnaWFtIGRvYyBTbyBZIHRlIHRoYW5oIHBobyBjaGFtIGNv bmcgYm8gdGhvbmcgdGluIG51b2MgdHVvbmcgY28gY2h1YSBjaGF0IGdheSANCnVuZyB0aHUgMy1N Q1BEIGRhbiBkZW4gdmllYyBudW9jIHR1b25nIGNvIGNodWEgMy1NQ1BEIHRyYW4gbmdhcCB0aGkg dHJ1b25nLCBnYXkgDQp0YWMgaGFpIHhhdSB0cm9uZyBkdSBsdWFuIHhhIGhvaSwgYW5oIGh1b25n IHRvaSBzdWMga2hvZSBuaGFuIGRhbi4gDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9uaHVuZ19z YWlfcGhhbV9uZ2hpZW1fdHJvbmdfb191eV9iYW5fcGhvbmdfY2hvbmdfaGl2YWlkc190cGhjbS02 LTg5NjcwLmh0bWwgTmd1b246IFRpZW5QaG9uZy52bg0KDQpOaHVuZyBzYWkgcGhhbSBuZ2hpZW0g dHJvbmcgbyBVeSBiYW4gUGhvbmcgY2hvbmcgSElWL0FJRFMgVFBIQ00NCg0KVHJvbmcgbmh1bmcg bmFtIHF1YSwgVXkgYmFuIFBob25nIGNob25nIChVQlBDKSBISVYvQUlEUyBUcC4gSENNIGRhIG5o YW4gaGFuZyB0cmlldSBkbyBsYSANCnR1IGNhYyBuaGEgdGFpIHRybywgbmh1bmcgaG9hdCBkb25n IGtob25nIGhpZXUgcXVhIHZhIGNvIGRhdSBoaWV1IHRpZW4gY2hheSB2YW8gdHVpIGNhIG5oYW4u IA0KDQpMYW0gdHJhaSBsZW5oIFRodSB0dW9uZyAtIExhbSB0cmFpIHF1eSBkaW5oIGN1YSBCbyBZ IHRlDQoNClRoZW8gbmh1bmcgdGFpIGxpZXUgbWEgVGllbiBwaG9uZyB0aHUgdGhhcCBkdW9jLCBV QlBDIEhJVi9BSURTIGRhIGNvIG5odW5nIGJpZXUgDQpoaWVuIHNhaSBwaGFtIHRyb25nIGhvYXQg ZG9uZyB0YWkgY2hpbmg7IGtpbmggcGhpIHRhaSB0cm8ga2hvbmcgcGh1YyB2dSBjaG8gY29uZyBk b25nIA0KbmhpZW0gSElWIG1hIGRhIGJpIHhhIHhlbywgdHUgdHVpIHZhIGhhbmcgbG9hdCBjYWMg c2FpIHBoYW0ga2hhYy4NCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vVGhvaS1TdS8xNTM5NjYv VFBIQ00tU28tbmd1b2ktY2hldC1kby1ISVZBSURTLW8tbXVjLWJhby1kb25nLmh0bWwgTGUgTmd1 eWVuIDEzOjU0IDAzLzAzLzIwMDkgDQoNClRQSENNOiBTbyBuZ3VvaSBjaGV0IGRvIEhJVi9BSURT IG8gbXVjIGJhbyBkb25nIA0KDQpUUCAgLSBWb2kgNDQuNjA2IHRydW9uZyBob3AgYmkgbmhpZW0g dmEgNy4yNTkgY2hldCwgaGllbiBUUEhDTSB0cm8gdGhhbmggZGlhIHBodW9uZyANCmRhbiBkYXUg Y2EgbnVvYyB2ZSBzbyBuZ3VvaSBkdW9jIHBoYXQgaGllbiBsYXkgbmhpZW0gZG8gY2FuIGJlbmgg dGhlIGt5IEhJVi9BSURTLg0KDQpUaW5oIHRoZW8gcGhhbiBibyBkaWEgYmFuIGRhbiBjdSB0aGkg dHkgbGUgbGF5IG5oaWVtIEhJViBjdWEgVFBIQ00gY3VuZyBjYW8gbmhhdCB2b2kgNjc3LzEwMC4w MDAgZGFuLiANCg0KQmEgTmd1eWVuIFRoaSBIb2FpIFRodS0gQ2h1IHRpY2ggSG9pIFBob25nIGNo b25nIEhJVi9BSURTIFRQSENNIGNobyBiaWV0LCBkZW4gZGF1IG5hbSAyMDA5LCBjYSBudW9jIGNv IGhvbiAxNzkgbmdoaW4gdHJ1b25nIGhvcCBuaGllbSBISVYsIHRyb25nIGRvIDcxLjExOSBuZ3Vv aSBjaHV5ZW4gc2FuZyBnaWFpIGRvYW4gQUlEUyB2YSA0MS41NDQgbmd1b2kgY2hldC4gDQoNCkNh YyBkaWEgcGh1b25nIGNvIHR5IGxlIGxheSBuaGllbSBjYW8gc2F1IFRQSENNIGdvbSBRdWFuZyBO aW5oICg2LjQzMyBuZ3VvaSksIFNvbiANCkxhICg1LjUyNCBuZ3VvaSksIFRoYWkgTmd1eWVuICg0 Ljc1OCBuZ3VvaSksIE5naGUgQW4gKDQuNjk1IG5ndW9pKSwgQmEgUmlhLVZ1bmcgVGF1IA0KKDQu MDE0IG5ndW9pKSB2YSBDYW4gVGhvICgzLjkyMCBuZ3VvaSkuIERhYyBiaWV0LCA4MyBwaGFuIHRy YW0gdG9uZyBzbyBuZ3VvaSBtYWMgDQp0aHVvYyBuaG9tIHR1b2kgdHUgMjAtMzkgdHVvaS4gIA0K DQpodHRwOi8vd3d3Lm1vbGlzYS5nb3Yudm4vb3RoZXJzL2ZhcS9mYXFkZXRhaWwvdGFiaWQvMjEx L25ld3NpZC8zNjc4OC9zZW8vVGUtbmFuLW1hLXR1eS1vLVRQSENNLUJhby1jYW8tbW90LWRhbmct dGh1Yy10ZS1tb3QtbmVvL2xhbmd1YWdlL3ZpLVZOL0RlZmF1bHQuYXNweCAyNS8xMS8yMDA0DQoN ClRQIEhDTTogQ29uZyB0YWMgY2FpIG5naGllbiB0YWkgY29uZyBkb25nIG5odW5nIG5hbSBxdWEg dG8gcmEga2hvbmcgaGlldSBxdWEuDQoNCkNhYyBjbyBxdWFuIGNodWMgbmFuZyB2YW4ga2hvbmcg a2llbSBzb2F0IGR1b2MgdGluaCBoaW5oIHZhbiBjaHV5ZW4gbWEgdHV5IHZhbyB0aGFuaCBwaG8u IA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jNzI4L3M3MjgtNDQ2Njk0L2hhbS12dWktdmUtbWF0 LXRpZW4tbGFuLXF1YW4uaHRtICBCYW8gVGhpZW4gKFRoYW5oIE5pZW4pIDI2LzEyLzIwMTAgLSAx NTo1MA0KDQpUUCBIQ006IEhhbSAidnVpIHZlIiwgbWF0IHRpZW4gbGFuLi4uIHF1YW4NCg0KTW90 IGJ1b2kgdG9pIGN1b2kgdHVhbiwgbmd1b2kgZGFuIHNvbmcgcXVhbmgga2h1IHZ1YyBkdW9uZyBU cnVvbmcgU2EsIFAuRGEgS2FvLCBRLjEsIA0KVFBIQ00gYm9uZyBuZ2hlIHRpZW5nIG1vdCBuZ3Vv aSBkYW4gb25nIGtldSB0aGFuZyB0aG90OiAiQ2hldCB0b2kgcm9pLCBjbyBhaSBjdXUgdG9pIGto b25nPyIuDQoNCk1hdCBjYSB0aWVuIGxhbi4uLiBxdWFuDQoNCk1vaSBuZ3VvaSBkbyByYSBkdW9u ZyB4ZW0gdGhpIHRoYXkgbW90IG5ndW9pIGRhbiBvbmcgdHJhYyA0MCB0dW9pLCBjb2kgdHJhbiwg bWFjIA0KcXVhbi4uLiB4YSBsb24sIHRyZW4gdGF5IG9tIGNoaWVjIGFvIHNvIG1pIG1hdSB4YW5o IGRhbSwgbWF0IG1ldSBtYW8uIE1vaSBuZ3VvaSB4dW0gDQpsYWkgaG9pIGNodXllbi4gTmd1b2kg ZGFuIG9uZyB2dWEga2hvYyB2dWEga2U6IHRlbiBIb2FuZyBWYW4gVS4sIHF1ZSBMb25nIEFuLiA2 IGFuaCANCmVtIFUuIGdvcCB2b24gbnVvaSBnYS4gQnVvaSBzYW5nIHRodSBiYXkgaG9tIGRvLCBt b2kgbyBRLlRodSBEdWMsIFRQLkhDTSBnb2kgZGllbiANCmJhbyBjaG8gZ2EgbGVuLiBVLiBkYWkg ZGllbiBhbmggZW0gY2hvIG1heSB0cmFtIGNvbiBnYSBjaG8gbmhhIGhhbmcsIG5oYW4gZGlwIGxh eSBubyANCm1heSB0aGFuZyB0cnVvYyBsdW9uLiBTYW4gY28gbW90IG1vIHRpZW4gKDMxIHRyaWV1 IGRvbmcpIG5lbiBVLiBtdW9uIG1vaSBiYW4gYmUgbyANCnRoYW5oIHBobyBsYWkgcmFpIHZhaSB4 aS4gTmhhdSBkZW4gNyBnaW8gdG9pIHRoaSBnaWFpIHRhbiwgVS4gY2hlbmggY2hvYW5nIGNoYXkg eGUgdmUuIFF1YSANCmRlbiBjYXkgeGFuZyBzbyAzMCBnYW4ga2h1IHZ1YyB0cmVuLCBVLiB0YXAg dmFvIG5naGUgZGllbiB0aG9haS4gS2hpIG5nYW5nIGxlbiB0aGkgY28gDQptYXkgY28gZ2FpIGFu IG1hYyBtYXQgbWUgdmF5IHF1YW5oIHZhIGR1bmcgbmh1bmcgbG9pIG5nb3QgbmdhbyB0b2kgdGFw IG1vaSBnb2kuIE5naGkgDQpjaGkgdG9uIGtob2FuZyAzMDAgbmdhbiBkb25nLCBVLiBjaG9uIG1v dCBlbSB0dW9pIG1hdCBuaGF0IGRlICJ2dWkgdmUiLiANCg0KVmkgcXVhIHNheSwgVS4gbmd1IGx1 YyBuYW8ga2hvbmcgaGF5LiBUaW5oIGRheSwgVS4gaG90IGhvYW5nIGtoaSBjbyBnYWkgY3VuZyBj aGllYyBxdWFuIA0KZGFpIHZhIHRpZW4gYmFjIGN1YSBhbmggZGEgYmllbiBtYXQ7IGhvaSBjaHUg a2hhY2ggc2FuIHRoaSBobyBkYXUgYmlldCBhbmggZGkgdm9pIGNvIGdhaSANCm5hby4gVS4gZGFu aCBtZXUgbWFvIHJhIGR1b25nIG5obyBtb2kgbmd1b2kgdGltIGdpdXAuIE1vaSBuZ3VvaSBraHV5 ZW4gYW5oIG5lbiBsZW4gDQp0cmluaCBiYW8gY29uZyBhbiBwaHVvbmcsIG5odW5nIFUuIHNvIG1v aSBjaHV5ZW4gZGVuIHRhaSB2byBjb24gdGhpIGtob25nIGJpZXQgYW4gbm9pIA0KbGFtIHNhby4g DQoNCihBbmg6IENhYyBjbyBnYWkgbWFpIGRhbSB0YXAga2V0IGNodWFuIGJpICJkaSBsYW0iKSAN Cg0KTmh1bmcgbmd1b2kgZGFuIHNvbmcgcXVhbmgga2h1IHZ1YyBuYXkgY2hvIGJpZXQsIFUuIGto b25nIHBoYWkgbGEgdHJ1b25nIGhvcCBkdXkgDQpuaGF0LiBNYXkgY2h1YyBuYW0gbmF5LCBobyBk YSBjaHVuZyBraWVuIGJhbyBjaHV5ZW4gZG8ga2hvYyBkbyBjdW9pIGN1YSBraGFjaCAibG8gDQpk YWkiIGJpIGdhaSBiYW4gaG9hIGR1IGRvLg0KDQpUcnVvbmcgaG9wIGN1YSBhbmggTmd1eWVuIER1 YyBLLiBvIExhbSBEb25nIGNvbiBiaSBoYWkgaG9uLiBIb20gZG8gYmFuIGR1b2MgZGlldSwgDQpL LiBkZW0gdGllbiBsZW4gY2hvIGNvbiBkYW5nIHRybyBob2MgdGFpIFRQLkhDTSBkb25nIHRob2kg c2FtIHN1YSB0aGVtIG5vbmcgY3UuIER1b2MgDQpiYW4gYmUgbWFjaCBiYW8sIEsuIHJhIGtodSBU aGkgTmdoZSBraWVtIGNodXQgY2hvIGJpZXQgbXVpIHBobyB0aGkuIEtoaSBkdW9jIG1vdCBjbyAN CmdhaSBnaW9pIHRoaWV1IGNhYyB0aWV0IG11YyBzZSBwaHVjIHZ1LCBLLiB0aGF5IGhhcCBkYW4g cXVhIGxpZW4gbG8gbWllbmcga2hvZSBsYSBkYW5nIGNvIA0KcmF0IG5oaWV1IHRpZW4sIHNlIGJv YSBjaG8gY28geHVuZyBkYW5nLiBUaGUgcm9pIGtoaSB0dSB0cm9uZyBwaG9uZyB0YW0ga2hhY2gg c2FuIGJ1b2MgDQpyYSwgSy4gdGhheSBjbyBnYWkgZGFuZyBsdWMgdHVpIHF1YW4gY3VhIG1pbmgu IEJpIHBoYXQgaGllbiwgY28gZ2FpIGdpYXQgbWluaCByb2kgb20gaGV0IA0KcXVhbiBhbyBjdWEg Sy4gY2hheSByYSBraG9pIHBob25nLiBWaSB0aW5oIGNhbiB0aGFuIG5lbiBLLiBjdW9uIGFvLCBj YSBxdWFuIHRyb25nIGxhbiANCnF1YW4gbmdvYWkgdmFvIG1vdCBjdWMsIG5heSBjbyBnYWkgb20g ZGksIEsuIGNoYW5nIGNvIGdpIGNoZSB0aGFuLCBLLiBkYW5oIHF1YW4gY2hhbiANCmN1YSBraGFj aCBzYW4gY2hheSB0aGVvLiBOaHVuZyB4dW9uZyBwaG9uZyB0aWVwIHRhbiB0aGkgYmkgY2h1IGto YWNoIHNhbiBsb3QgbWF0IGNoYW4sIA0KSy4gZGFuaCBsYXkgMiB0YXkgdXAgcGhpYSB0cnVvYyBy b2kgZHVvaSB0aGVvIGNvIGdhaSwgdnVhIGNoYXkgdnVhIHRyaSBoby4gTHVjIG5heSBuZ3VvaSAN CmRhbiBnYW4gZG8gcGhvbmcgeGUgdGhlbywgY28gZ2FpIHNvIHF1YSB2dXQgZG8gbGFpIHRob2F0 IHRoYW4uIFNhdSBwaGVuIGRvLCBLLiBuZ3VvbmcgDQpuZ3VuZyB0aGUgbGEgY2h1YSBkZW4gY2hl dCwga2hvbmcgZGFtIG5naGkgZGVuIGNodXllbiAibWVvIG1hIGdhIGRvbmciIG51YS4NCg0KR2lh IGdhaSBsdWEgZ2F0DQoNClRydW5nIHRhIExlIFZhbiBOaHVhIC0gUGhvIGNvbmcgYW4gUC4xNywg US5CaW5oIFRoYW5oLCBUUC5IQ00gLSBjaG8gYmlldCBraGkgYmkgY28gDQpxdWFuIGNodWMgbmFu ZyBwaGF0IGhpZW4sIG5odW5nIGNvIGdhaSBsYW0gbmdoZSBiYW4gZGFtIGRldSBiYW8gcmFuZyB2 aSBob2FuIGNhbmggZ2lhIA0KZGluaCBraG8ga2hhbiBuZW4gcGhhaSBkaSBsYW0gbmdoZSBuYXku IE5odW5nIHRodWMgdGUga2hpIGRhIHZhbyBuZ2hlLCBjYWMgY28gZ2FpIGxhaSBhbiANCmNob2ks IGR1YSBkb2kgdmEgcGhhbiBsb24gcGhhaSBkZW8gYm9uZyB0aGVtIG1vdCBuZ3VvaSBkYW4gb25n IGRlIHN1b3QgbmdheSBjaHUgY2FwIA0KY2hvIGhvLiBWaSB0aGUsIHRpZW4gdmFvIHRheSBjYWMg Y28gbmh1IGdpbyB2YW8gbmhhIHRyb25nLiBUaGF5IHRodSBuaGFwIGtob25nIGR1IHRpZXUgDQp4 YWkgbGllbiBuZ2hpIHJhIG5odW5nIGNoaWV1IGRlIGx1YSBraGFjaC4gTmh1bmcgdHJ1b25nIGhv cCBuaHUgdHJlbiBkaWVuIHJhIHRodW9uZyANCnh1eWVuLiBDbyBraGkgbWF5IGNvIGNvbiBjaG8g ZG9uZyBib24gY2h1aSBkdW9pIGdhbSBnaXVvbmcsIGtoaSBraGFjaCBibyBxdWFuIGFvIHJhIA0K dGhpIGhvIGNvIHkgZGFwIHh1b25nIGRhdCB2YSB0YXQgbmhpZW4ga2hhY2ggc2UgYmkgbWF0IHNh Y2ggZG8uIE5odW5nIG5odW5nIHZpIGtoYWNoIA0KbmFtIGtob25nIHBoYWkgY2hpIGJpIGNhYyBj byBnYWkgbHVhIG1hIGNvIG5oaWV1IG5ndW9pIGNvbiBiaSBwZS1kZSBkb25nIGdpYSBnYWkgbHVh IGNhIA0KdGluaCBsYW4gdGllbi4NCg0KQW5oIFRyYW4gVGhlIEMuIG8gVFBIQ00gdHVuZyByb2kg dmFvIHRydW9uZyBob3AgdHJvIHRyZXUgbmh1IHRoZS4gVG9pIGRvLCBzYXUgbWF5IA0KY2hhdSBu aGF1IG5nYSBuZ2Egc2F5LCBhbmggbGllbiBkaSB2ZSBodW9uZyBUaGkgTmdoZSBraWVtIG5ndW9p IGRlIGdpYWkgYmF5IHRhbSBzdS4gDQpBbmggZHVvYyBtb3QgZW0gY2hhbiBkYWksIHRoYXQgZGF5 IGx1bmcgb25nLCBnaW9uZyB0aG8gdGhlIGh1YSBzZSBwaHVjIHZ1IGNodSBkYW8gbWEgDQpraG9u ZyBjYW4gdGllbiBib2EuIEMuIG5nYXQgbmd1b25nIGJ1b2MgdGhlbyBkYW5nIG5nb2MuIFZhbyB0 b2kgcGhvbmcga2hhY2ggc2FuLCBjbyANCmVtIG51bmcgbml1IGtob25nIGNobyBDLiBiYXQgZGll bi4gQ2hpZXUgbG9uZyBuZ3VvaSBkZXAgbmVuIEMuIGtob25nIHRoYWMgbWFjLiBOaHVuZyANCmto aSBoYWkgbmd1b2kgdnVpIHZlLCBDLiBjdSB0aGF5IGNvIGVtIGNvIGNhaSBnaSBsYSBsYSwgZGFj IGJpZXQgbGEgY2hhbiB0YXkgdGhpIGdvIGdoZSwgbG9uZyANCmxhIHJhbSByYXAuIEMuIHZ1bmcg ZGF5IG5odW5nIG5hbmcgZGF1IGRlIGJvIHF1YS4gDQoNCktoaSBiYXQgZGllbiBsZW4sIEMuIHRh IGhvYSB2aSBjbyBuYW5nIG9uZyBlbyB2YXkgZG8gdGh1b3QgdGhhIGRhIGJpZW4gZGF1IG1hdCBt YSB0aGF5IA0KdmFvIGRvIGxhIG1vdCBjaGFuZyB0cmFpIGRhbmcgbmhlIHJhbmcgY3VvaSBraG9h aSBjaGkuIER1IGJpICJsYW0gbmh1YyIgbmh1bmcgYW5oIA0KY2hhbmcga2lhIGN1bmcgYmF0IEMu IHRyYSB0aWVuLiBOaHVuZyBob2kgb2ksIGNhaSB2aSB0cm9uZyB0dWkgcXVhbiBjdWEgQy4gZGEg YmllbiBkYXUgbWF0LiANCkMuIGtldCB0b2kgIm5hbmciIGx1YSB0aW5oIHZhIGx1YSB0aWVuLCAi bmFuZyIgdGhpIGRvIGxvaSBjaG8gQy4geHUgdGllbi4gSGFpIGJlbiBsb2kgcXVhIA0KdGllbmcg bGFpLCByYSBraG9pIGtoYWNoIHNhbiBtYSB2YW4gcnVvdCBuaGF1IGNoYXkgbG9uZyB2b25nIGto aWVuIGRhbiB0aW5oIGR1b2MgbW90IA0KYnVhIGN1b2kgdm8gYnVuZy4NCg0KRGluaCBwaGFpIHRo dW9jIG1lDQoNCktob2FuZyAxIGdpbyBzYW5nIG5nYXkgMTAuNC4yMDEwLCBhbmggRC5MLlAgKDM1 IHR1b2ksIG8gRG9uZyBOYWkpIHRyZW4gZHVvbmcgdHUgDQpUUC5IQ00gdHJvIHZlIG5oYS4gRGVu IGR1b25nIFhvIFZpZXQgTmdoZSBUaW5oLCBQLjE3LCBRLkJpbmggVGhhbmgsIFAuIHRoYXkgbW90 IGNvIA0KZ2FpIHhpbmggeGFuIGJhbSB0aGVvIHZhIGFuIG5vaSByYXQgbGEgbG9pIG1vaSBnb2ku DQoNCkNvIG5hbmcgcmEgZ2lhIDUwMCBuZ2FuIGRvbmcvZGVtLCBQLiBkb25nIHkgY2FpIHJ1cC4g U2F1IGRvIGhhaSBuZ3VvaSBrZW8gbmhhdSB2YW8gDQptb3Qga2hhY2ggc2FuIG8gUC4xNyB0aHVj IGhpZW4gImdpYW8gZGljaCIuIFRvaSBub2ksIGNvIGdhaSB0byByYSBjaHUgZGFvLCBkaXUgZGFu ZyBtb2kgDQpQLiBtb3QgbHkgbnVvYy4gVnVhIHVvbmcgbnVvYyBkdW9jIHZhaSBwaHV0LCBQLiBu Z2EgbmhhbyB4dW9uZyBnaXVvbmcgbmd1IG1lIG1ldC4gDQpHYW4gNCBnaW8gc2FuZywgUC4gZ2lh dCBtaW5oIHRpbmggZ2lhYy4gU2F1IGtoaSBuaG8gbGFpIHN1IHZpZWMsIGFuaCBnb2kgbWFpIG1h IGtob25nIA0KdGhheSBjbyBnYWkgZGF1LiBWb2kga2llbSB0cmEgdHVpIHhhY2gsIFAuIGhvdCBo b2FuZyBraGkgdG9hbiBibyB0YWkgc2FuIGdvbSAyMyB0cmlldSANCmRvbmcsIDEwMCBkbyBsYSBV YyB2YSBjaGllYyBkaWVuIHRob2FpIGRpIGRvbmcgZGEgYmllbiBtYXQuIFAuIG1ldSBtYW8gZGVu IGJhbyBjb25nIGFuLiANClF1YSB0cnV5IHhldCwgQ29uZyBhbiBRLkJpbmggVGhhbmggZGEgYmF0 IGR1b2MgY28gZ2FpLiBDbyBnYWkga2hhaSB0ZW4gTmd1eWVuIFRoaSANClRydW9uZyBWLiwgMjMg dHVvaSwgcXVlIEJpbmggUGh1b2MsIGxhIG1vdCBnYWkgYmFuIGRhbSBjaHV5ZW4gbmdoaWVwLiBW LiBraGFpIGR1b2MgDQpjaHUgdGVuIFRhbSAiY2hhbiBkYXQiLiBTYXUga2hpIGN1b20gZHVvYyB0 YWkgc2FuIGN1YSBQLiwgVi4gZGEgZHVhIGNobyBUYW0gbmhvIGNhdCANCmdpdS4NCg0KQ29uIGFu aCBTLiBvIFEuMTAsIFRQLkhDTSB0aGkgZHVvYyBuZ3VvaSBkZXAgMjMgdHVvaSBQaGFuIE5nb2Mg S2ltIENoLiAocXVlIFRpZW4gDQpHaWFuZywgdGFtIHRydSB0YWkgUS42LCBUUC5IQ00pIG1vaSBj aGFpIHZhbyBraGFjaCBzYW4gbyBILkJpbmggQ2hhbmggZGUgIm1heSANCm11YSIuIFRyZW4gZHVv bmcgZGksIG5ndW9pIGRlcCBrZXUgUy4gZHVuZyB4ZSBkZSBtdWEgMiBseSB0cmEgc3VhIHZhICJi b2EiIFMuIG1vdCBseSANCnNhdSBkby4gVW9uZyB4b25nIGx5IHRyYSBzdWEgY3VhIG5hbmcsIFMu IG5nYSBndWMuIEtoaSB0aGF5IGNvIGdhaSByYSBraG9pIGtoYWNoIHNhbiBkYSANCmxhdSBtYSBr aG9uZyB0aGF5IFMuLCBuZ3VvaSBwaHVjIHZ1IGxlbiBwaG9uZyB0aGF5IFMuIGJhdCB0aW5oIHZh IGNvIG5odW5nIGRhdSBoaWV1IA0Kbmd1eSBoaWVtIGxpZW4ga2V1IG5ndW9pIGR1YSBTLiB2YW8g QmVuaCB2aWVuIE5ndXllbiBUcmFpIGNhcCBjdXUuIFNhdSBkbyBpdCBuZ2F5LCBDaC4gDQpiaSBD b25nIGFuIEguQmluaCBDaGFuaCBiYXQgZ2l1LiBDaC4ga2hhaSBsYSBkYSBtdWEgbW90IHZpIFJv dHVuZGEsIGhvYSB2b2kgbnVvYywgY2hvIA0KdmFvIG1vdCB0dWkgbmktbG9uZyByb2kgZGVuIGdh cCBTLiBTYXUga2hpIFMuIGJhdCB0aW5oLCBDaC4gZGEgcmEgdGF5IHRyb20gdG9hbiBibyB0YWkg c2FuLiANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vTmh1Yy1uaG9pLWJ1b20tZGVtLVNh aS1Hb24vMTA0LzMyMTIzNTEuZXBpIA0KDQpOaHVjIG5ob2kgJ2J1b20gZGVtJyBTYWkgR29uIC0g bmFuIG1haSBkYW0gIm5vIHJvIiANCg0KICgyNGgpIC0gIlZ1aSB2ZSB2b2kgZW0gbmhhIGFuaCwg Z2lhIGJhIHRyYW0gbmh1bmcgYW5oIG1vIGhhbmcgZGkgZW0gbGF5IHJlIGhhaSB0cmFtIA0KcnVv aSwgdGllbiBwaG9uZyBlbSBiYW8gbHVvbi4uLiBraGFjaCBzYW4gZ2FuIGRheSB0aG9pIi4gQ28g Z2FpIHZvaSBibyBhbyBxdWFuICJ0aGlldSANCnZhaSIgbmdvaSB0cmVuIGNoaWVjIHhlIHRheSBn YSBjaGVvIGtlbyBuZ3VvaSBkYW4gb25nIGRpIGR1b25nLiANCg0KR2FpIG1haSBkYW0gbGFpICJu byBybyIgU2FpIEdvbg0KDQpIaW5oIGFuaCBnYWkgbWFpIGRhbSBjaGF5IHhlIG1heSBiYW0gdGhl byBjaGVvIGtlbywgbW9pIGNoYW8gbmh1bmcgbmd1b2kgZGFuIG9uZyANCmRpIGR1b25nIG1vdCBj YWNoIGNvbmcga2hhaSwgbG8gbGlldS4uLiBraG9uZyBraG8gZGUgYmF0IGdhcCB0YWkgY2FjIHR1 eWVuIGR1b25nIG5odSANCmNhdSBUaGkgTmdoZSwgWG8gVmlldCBOZ2hlIFRpbmgsIE5ndXllbiBW YW4gTGFjIChkb2FuIGdpYXAgcmFuaCBxdWFuIDEgdmEgcXVhbiANCkJpbmggVGhhbmgpLCBIb2Fu ZyBWYW4gVGh1LCBOZ3V5ZW4gVHJvbmcgVHV5ZW4sIENvbmcgSG9hLCBUcnVvbmcgQ2hpbmggKFRh biANCkJpbmgpLCBQaGFuIFZhbiBUcmkgKEdvIFZhcCkuLi4NCg0KS2hvYW5nIDE4IGdpbywgYW5o IEh1bmcgdnVhIHRhbiBjb25nIHNvIGRlIHZlIG5oYSwga2hpIGRpIHF1YSBjYXUgVGhpIE5naGUg dGhpIGJhdCBuZ28gDQptb3QgY28gZ2FpIHZvaSBudW9jIGRhIHRyYW5nIHRyZW8sIGRpZXUga2hp ZW4gY2hpZWMgeGUgQXR0aWxhIHBob25nIHR1IHBoaWEgc2F1IGxlbiANCmFwIHNhdCBiZW4gY2Fu aC4gVHVvbmcgbmd1b2kgcXVlbiwgbmd1b2kgZGFuIG9uZyBuYXkgcXVheSBxdWEgbmhpbiB0aGkg Y28gZ2FpIGJ1b25nIGxvaSByYXQgDQpuZ290IG5nYW86ICJ2dWkgdmUgdm9pIGVtIG5oYSBhbmgs IGdpYSBiYSB0cmFtIG5naGluIG5odW5nIGFuaCBtbyBoYW5nIGRpIGVtIGxheSByZSANCmhhaSB0 cmFtIHJ1b2ksIHRpZW4gcGhvbmcgZW0gYmFvIGx1b24uLi4ga2hhY2ggc2FuIGdhbiBkYXkgdGhv aSIuDQoNCktob25nIGNoaSBhbmggSHVuZywgbmhpZXUgZGFuZyBtYXkgcmF1IGRpIHF1YSBkYXkg Y3VuZyB0dW5nIGJpIGRpbmggbmh1bmcgbG9pIG1vaSANCnBoYW4gY2FtLCB0aG8gbG8gY3VhIGdh aSBiYW4gZGFtIG1hIGRhbiBTYWkgVGhhbmggdGh1b25nIGdvaSBsYSAiYnVvbSBkZW0iLiBRdWFu IA0Kc2F0IHRhaSAiZGllbSBkZW4iIGNobyB0aGF5LCBnYWkgYmFuIGRhbSB0aHVvbmcgdHUgdGFw IHRoYW5oIHR1bmcgbmhvbSwgZGkgaGFpIG5ndW9pIA0KdHJlbiBtb3QgY2hpZWMgeGUgdGF5IGdh LCBpdCBkb2kgbm9uIGJhbyBoaWVtLCBtYWMgbmh1bmcgY2hpZWMgYW8gInRoaWV1IHZhaSwgdGh1 YSB0aGl0IiANCm5oYW0gZGUgbmd1eWVuIGx1bmcsIGJ1bmcgY28gbmd1b2kgY29uIHRhbyBhbiB0 dW9uZyBraGkgY28gdGluaCBtYWMgdmF5IG5nYW4gbG8gDQoibm9pIHkiIHJvaSAiZGlldSBoYW5o IiBvIGNvbiBkdW9uZyBsb24sIGNodWkgdmFvIGhlbSBuaG8uDQoNClRyb25nIGtoaSAiYnVvbSBk ZW0iIG8gcXVhbmgga2h1IHZ1YyBjYXUgVGhpIE5naGUgYW4gZGllbiBkZXAsIGRpIHhlIHRheSBn YSBkb2kgbW9pIA0KdGhpIHRhaSBjYWMga2h1IHZ1YyB0cmVuIGR1b25nIENvbmcgSG9hLCBQaGFu IFZhbiBUcmksIE5ndXllbiBUcm9uZyBUdXllbiBjbyBwaGFuIA0KIm5naGVvIiBob24uIEdhaSAi YmFuIGhvYSIgbyBkYXkgdGh1b25nIGR1b2MgeGUgb20gY2hvIGhvYWMgZGkgYm8gZGUgYmF0IGto YWNoLCB2aSANCnZheSBtYSBnaWEgY2EgbyBkYXkgY3VuZyBraGEgImJlbyIuDQoNClZhbyBtb3Qg YnVvaSB0b2kgZGF1IHR1YW4sIHRyb2kgbXVhIHhvaSB4YSwgaGFuZyB0cmFtIG5ndW9pIGNvIGdh bmcgImxvdCIgcXVhIG5nYSB0dSANCk5ndXllbiBUcm9uZyBUdXllbiAtIFBoYW0gVmFuIEhhaSAo cXVhbiBUYW4gQmluaCkgbW9uZyBzb20gdmUgbmhhIHRoaSBiYSBkb2kgbmFtIA0KbnUgZGkgdHJl biB4ZSBnYW4gbWF5IHR1IHBoaWEgc2F1IGxhbyBsZW4sIGRhdSBraG9uZyBub24gYmFvIGhpZW0g cnUgZ2EsIG5ldCBwbywgYmFtIGNvaSANCmluaCBvaSBuaGFtIGdheSBzdSBjaHUgeSBjaG8gbmd1 b2kgZGkgZHVvbmcuIENodWEgaGV0LCBwaGF0IGhpZW4gbW90IHNvIG5ndW9pIGRhbmcgdHJ1IA0K bXVhLCBobyBsaWVuIHF1ZW8gdmFvIHJvaSBkZW4gdHVuZyBub2kgY28gZGFuZyBtYXkgcmF1IGRl IGRvIGhvaSwgcnUgcmUgInRyYW5oIHRodSB0cm9pIA0KbXVhIHZ1aSB2ZSB0aSBraG9uZyBhbmgg aGFpLi4uIiwgZ2FpIGJhbiBkYW0gZGF0IHZhbiBkZSBtb3QgY2FjaCBjb25nIGtoYWksIGJhdCBr ZSBuZ3VvaSANCmxvbiBoYXkgbmhvIGtoaWVuIGtob25nIGl0IG5ndW9pIGtobyBjaGl1LCBiYXQg YmluaCB0cnVvYyBoYW5oIGRvbmcgY3VhIGNodW5nLg0KDQooQW5oOiBLaG9uZyBraG8gZGUgYmF0 IGdhcCAiYnVvbSBkZW0iIHRhaSBtb3Qgc28gdHV5ZW4gZHVvbmcgbyBTYWkgR29uKSANCg0KVHVv bmcgdHUsIDcgZ2lvIHRvaSB0YWkgbXVpIHRhdSBUcnVvbmcgQ2hpbmgtIENvbmcgSG9hIChxdWFu IFRhbiBCaW5oKSwgY29uIGR1b25nIA0KaHV5ZXQgbWFjaCwgY3VhIG5nbyBwaGlhIFRheSB2YW8g dHJ1bmcgdGFtIHRoYW5oIHBobyBkYSB4dWF0IGhpZW4gaGFuZyBjaHVjIGdhaSBtYWkgDQpkYW0g ZHVuZyByYWkgcmFjIG5lcCBtaW5oIG8gY2FjIGdvYyBjYXksIGNvdCBkaWVuLCB0cmFtIHhlIGJ1 eXQuLi4gaGFpIGJlbiBkdW9uZyBkZSBkb24gDQpraGFjaCAibGFuZyBjaG9pIi4NCg0KRGFuZyBk dW5nIHRyb25nIGdvYyBjYXksIHRoYXkgbmd1b2kgZGFuIG9uZyBjaG8geGUgY2hheSBjaGFtIGxh aSwgY28gZ2FpIHZvaSBibyBkaWV1IA0KdGh1b2MgbGVuIG1pZW5nIHJpdCBtYW5oIG1vdCBob2kg cm9pIG5oYW5oIGNob25nIGNhbSBtdSBiYW8gaGllbSByYSBsZSBkdW9uZyB2YXkgdGF5IA0KbW9p IGNoYW8uIENodWEga2lwIGhvaSwgZ2FpIG1haSBkYW0gImJhbyBnaWEiIGhhaSB0cmFtIG5naGlu LCAibmV1IGRpIHRoaSBuaGFuaCBsZW4sIGNvIA0KZ2kgbm9pIHNhdSBraG9uZyBjb25nIGFuIHRv aS4uLiIuDQoNCktoaSB0b2kgImNoZSIgYm8gZGkgZHVvYyBjaHVuZyAyMDAgbWV0IHRoaSBtb3Qg cGh1IG51IGRhbmcgbmd1b2kgeHVlIHhvYSBjaG8gY28gZ2FpIA0KbmdvYWkgMjAsIG1vaSBkbyBt YSBob25nIGJhbSB0aGVvICJkaSBjaG9pIGtob25nIGVtLCB0aGF5IGRhbyBjdWEgY2hpIG5nb24g a2hvbmcsIA0KbW9pIG8gcXVlIGxlbiBkby4uLiBnaWEgY2EgY2hpIGtob25nIG5vaSBjaHUgaGFu ZyBkZXAgdGhpIG8gZGF5IGtob25nIGNvIGVtIG5hbyBiYW5nIi4gDQpLaGkgdG9pIGhvaSAiZ2lh IG5oaWV1PyIsICJiYSB0cmFtIGJhbyBwaG9uZywgbmV1IGRvbmcgeSB0aGkgZGkgdGhlbyBjaGkg dG9pIGtoYWNoIHNhbiBnYW4gDQpkYXkgdGhvaSIuIFRoYXkga2hhY2ggY2h1YSB1bmcgeSwgbmd1 b2kgcGh1IG51IHRpZXAgdHVjIGNoZW8ga2VvICJ2YXkgZ2lhIG5oaWV1IGVtIA0KZGkgZHVvYyBu ZSwgZHVuZyBnaWEgaGFpIHRyYW0gbmhhLiBNYXkgaG9tIG5heSBsZSBuZW4gY29uZyBhbiBsYW0g bWFuaCwga2llbSBraG9uZyBjbyANCmRhdSBkaSBsYW0gZ2kgbWF0IGNvbmcuLi4iLg0KDQpOYW4g bmhhbiBjdWEgZ2FpIG1haSBkYW0NCg0KSGluaCBhbmggbXVhIGJhbiBkYW0gY29uZyBraGFpIHRy ZW4gbW90IHNvIHR1eWVuIGR1b25nIGtob25nIGNoaSBsYW0geGF1IGRpIGJ1YyANCnRyYW5oIGN1 YSB0aGFuaCBwaG8gbWEgbm8gY29uIGFuaCBodW9uZyBkZW4gYW4gbmluaCB0cmF0IHR1LiBUcm9u ZyBzbyBkbywga2hvbmcgaXQgDQpuZ3VvaSBkaSBkdW9uZyB2byBoaW5oIGNodW5nIGJpIHF1eSBj aHVwIGxhIGdhaSBiYW4gZGFtLCBkYW4gb25nICJoYW0gY3VhIGxhIi4uLg0KDQpIYW5nIChuaGFu IHZpZW4ga2luaCBkb2FuaCkgY2hpYSBzZSwgZG8gZGFjIHRodSBjb25nIHZpZWMgdGh1b25nIHh1 eWVuIGRpIHRpZXAga2hhY2ggdmUgDQptdW9uLCBuaGEgbGFpIG8gZ2FuICJwaG8gc3VuZyBzdW9u ZyIgbmVuIG5oaWV1IGxhbiBiaSAia2hhY2ggbGFuZyBjaG9pIiBuaGFtIHR1b25nIA0KZ2FpIGJh biBkYW0uICJIb20gZG8ga2hvYW5nIDExIGdpbyBkZW0sIGVtIGRpIGR1IHRpZWMgdmUgbW90IG1p bmgsIGtoaSBkZW4gZHVvbmcgDQpkdW9uZyBYbyBWaWV0IE5naGUgVGluaCB0aGkgY28gaGFpIHRo YW5oIG5pZW4gYmFtIHRoZW8gZ2EgZ2FtIGRpIGtoYWNoIHNhbi4gVHVjIGdpYW4gDQp2aSBiaSBx dXkgY2h1cCBsYSBnYWkgYmFuIGRhbSwgdG9pIHBoYW4gdW5nIGxhaSB0aGkgaG8gYnVvbmcgcmEg bmh1bmcgbG9pIGNodWkgYm9pLCBsYW5nIA0KbWEgcmF0IHZvIHZhbiBob2EuLi4iLCBIYW5nIGNo byBiaWV0LiBHaW8gZGF5LCBuaGlldSBuZ3VvaSBiYW4gdHJvbmcgeG9tIGN1bmcgdHJhbmcgDQpw aGFpIGx1YSB2b2kgY28gY3VuZyBraG9uZyBkYW0gcmEgbmdvYWkgZHVvbmcgaG9uZyBtYXQgaGF5 IGRvaSBiYW4gbyBkbyB2aSBzbyBuaGFtIA0KdHVvbmcgbGEgImJ1b20gZGVtIi4NCg0KVHJvbmcg a2hpIEhhbmcgdHJvIHRoYW5oIG5hbiBuaGFuIGN1YSBnYWkgYmFuIGRhbSwgdGhpIG1vdCBzbyBk YW5nIG1heSByYXUgY3VuZyBiaSANCm9hbiBkbyBiaSBjaG8gbGEgdGh1IGRhbiBvbmcgImhhbSBj dWEgbGEiLCBtYSBhbmggVHVhbiBsYSBtb3QgdHJ1b25nIGhvbSBjdSB0aGUuIA0KTmd1b2kgdGhh bmggbmllbiBuYXkga2UsIHRvaSBkYW5nIGRpIHRyZW4gZHVvbmcgdGhpIGNvIGRpZW4gdGhvYWkg bmVuIGR1bmcgbGFpIG5naGUsIG5nYXkgDQpsdWMgZG8gY28gaGFpIGNvIGdhaSBkaSB0b2kgbW9p IG1vYyBuaHVuZyB0b2kga2hvbmcgZGUgeSwgImtob25nIGJpZXQgYWkgbmhpbiB0aGF5IHJvaSB2 ZSANCmtlIGxhaSB2b2kgYmFuIGdhaSBsYSB0b2kgZGkgbXVhIGRhbS4uLiAiLCBjaGluaCBtaWVu ZyBsdW9pIGRvYyBkaWEgbmF5IGRhIGxhbSBoYWkgbmd1b2kgDQpzdXl0IG51YSAiZHVvbmcgYWkg bmF5IGRpIiB2aSBiYW4gZ2FpIGtob25nIHRoZSBjaGFwIG5oYW4gY2hvbmcgdHVvbmcgbGFpIGN1 YSBtaW5oIGxhIA0KZGFuIG9uZyAiaGFtIGN1YSBsYSIuDQoNCihBbmg6TW90IHNvIGtoYWMgZHVv YyBjaG8gdHJlbiB4ZSBtYXksIGtob25nIGRvaSBub24gYmFvIGhpZW0uLi4gZGUgZ2F5IHN1IGNo dSB5KSANCiANCkN1bmcgY2FuaCBuZ28sIGFuaCBIYWkgdHVuZyBiaSB2byBjaG8gIm5oaW4gZG9p IiBtYXkgbmdheSB2aSB0aG9pICJ0cmFuZyBob2EiLiBIb20gDQpkbywgYW5oIGRlbiBkb24gdm8g bGFtIHRhaSBtb3QgY29uZyB0eSB0cmVuIGR1b25nIFRydW9uZyBDaGluaCwga2hpIGRpIG5nYW5n IHF1YSAidm8gDQp0aW5oIiBsaWVjIG1hdCBuaGluIHRoaSBtb3QgY28gZ2FpIHBob25nIHhlIGJh bSB0aGVvLCBtYWMgY2hvIGxvaSBjaGFvIGN1YSBjbyBnYWkgeGluaCANCmRlcCwgYW5oIHZhbiB0 aWVwIHR1YyBkaS4uLiAibmh1bmcga2hpIHZvIHRvaSBkdW5nIHRydW9jIG1hdCwgY28gdGEgY3Vu ZyBjbyBkb25nIGR1YSwgDQpjaGVvIGtlbyB2b2kgbG9pIGxlIGtobyBuZ2hlIG5lbiB2byB0b2kg bmdoaSBuZ28sIG5oYXQgcXV5ZXQgY2hvIHJhbmcga2hvbmcgY28gbHVhIGxhbSANCnNhbyBjbyBr aG9pIiwgbmd1b2kgZGFuIG9uZyBuYXkgcGhhbiBidWEuDQoNCk5oaWV1IG5ndW9pIHRodW9uZyBj aG8gcmFuZywgZ2FpIG1haSBkYW0gZHVuZyBkdW9uZyBwaGFuIGxvbiAicGh1YyB2dSIgY2hvIGdp b2kgdGFpIA0KeGUgY2hheSB4ZSBkdW9uZyBkYWkuIE5odW5nIGtob25nIHZpIHRoZSBtYSB0cmFu aCBkdW9jICJjYW0gYmF5IiBjdWEgZ2FpIG1haSBkYW0uIA0KQW5oIFRoYW5oICh0YWkgeGUgeGUg dGFpKSBjaG8gYmlldCwga2hpIGFuaCBkdW5nIHhlIHRyZW4gbmdhIHR1IEFuIFN1b25nIChxdWFu IDEyKSBkZSANCm11YSB0aHVvYyBsYSwgdnVhIG1vIGN1YSByYSB0aGkgbW90IGNvIGdhaSBuaGF5 IHRvdCBsZW4gdHJlbiBjYSBiaW4gbmdvaSBydSByZSBkaSBraGFjaCANCnNhbi4gS2hvbmcgZG9u ZyB5LCBhbmggZGUgbmdoaSB4dW9uZyB4ZSB0aGkgY28gZ2FpIGdpbyBtYXQgbHV1IG1hbmgsIGxv aSBraW0gdGllbSBkaW5oIA0KbWF1IGh1IGRvYSBsYSBiaSBISVYgdmEgInhpbiIgNTAgbmdoaW4g ZG9uZyBkZSBkaSBjaGljaCBodXQuDQoNCkRhIHNvIGJpIG5naGllbiwgbWFjIGJlbmguLi4NCg0K VGhlbyBzbyBsaWV1IHRob25nIGtlIGN1YSBjbyBxdWFuIGNodWMgbmFuZyB0aGkgZGEgc28gZ2Fp IG1haSBkYW0gZHVuZyBkdW9uZyBkZXUgZGEgDQoidGFuIiwgbmdoaWVuIG1hIHR1eSwgaG9hYyBt YWMgYmVuaCB4YSBob2kuLi4NCg0KIk5ndSBuZ2F5LCBjYXkgZGVtIiwgZG8gbGEgdGhvaSBnaWFu IHNpbmggaG9hdCBjdWEgZ2FpICJidW9tIGRlbSIuIENhIG5nYXkgaG8gY2hpIG8gDQpuaGEgYW4g bmd1LCBiYWkgYmFjOyBraGkgbWFuIGRlbSBidW9uZyB4dW9uZywgImhhbmciIHR1IGtoYXAgbm9p IGR1b2MgImRpZXUgZG9uZyIgDQpkZW4gYm9pIGRvaSBxdWFuIGNoYW4gZGF0IHZhICJiYWkgZGFw IiBsYSBuaHVuZyBraGFjaCBzYW4gcXVhbmgga2h1IHZ1Yy4NCg0KTmd1b2kgcGh1IG51IGJhbiB0 aHVvYyBsYSB0cmVuIGR1b25nIENvbmcgSG9hIGNobyBiaWV0LCAiY28gZHVhIGRpIGJhbiBkYW0g Y2EgbWF5IA0KbmFtIG5heSByb2kgbmh1bmcgY28gdGllbiBkYXUsIG11YSBkbyBjdWEgdHVpIGN1 bmcgbXVhIHRoaWV1Li4uIi4gVGh1YyB0ZSwgbW9pIGxhbiBiYW4gDQpkYW0gY2hvIGtoYWNoIHR1 IDIwMCBkZW4gMzAwIG5naGluIG5odW5nIGNhYyBjbyBwaGFpICJjaGlhIG5hbSwgeGUgYmF5IiBj aG8gInR1IG9uZywgDQp0dSBiYSIsIHRpZW4gdGh1ZSB4ZSwgYW8gcXVhbiwgc29uIHBoYW4gdmEg Y2FjIGRvaSB0dW9uZyBiYW8ga2UuIFNvIGNvbiBsYWkgdm9uIHZlbiB0dSB2YWkgDQpjaHVjIGRl biAxMDAgbmdoaW4gdGhpIGN1bmcgZHVvYyBnYWkgYmFuIGRhbSBkYW5oIHZhbyB2aWVjIGNoaWNo IGh1dCwgYmFpIGJhYywgbG8gZGUuLi4NCg0KTW90IHNvIG5ndW9pIGRhbiBzb25nIHF1YW5oICJk aWVtIG5vbmciIGNobyBiaWV0LCAibWF5IGhvbSBuYXkgbGUgbmVuIG5odSB2YXkgbGEgaXQgDQpk bywgbmdheSB0aHVvbmcgZG9uZyBsYW0uLi4gY28gbmhpZXUgZ2FpIGJhbiBkYW0gZGkgZGF1IG1v dCB0aG9pIGdpYW4gcm9pIHZlIGxhbSB0aWVwIHZhIA0KcGhhbiBsb24gaG8gZGV1IG5naGllbiBt YSB0dXkiLiBUaGVvIGdpYWkgdGhpY2gsIGNvIHRoZSBzYXUga2hpIGJpIGNvIHF1YW4gY2h1YyBu YW5nIGJhdCANCmR1YSBkaSB0cnVuZyB0YW0gInBodWMgaG9pIG5oYW4gcGhhbSIsIGNhaSBuZ2hp ZW4uLi4gaG8gbGFpICJuZ3VhIHF1ZW4gZHVvbmcgY3UiLiAgDQoNCmh0dHA6Ly93d3cubGFvZG9u Zy5jb20udm4vSG9tZS9UaGFuaC1waG8tY28tbmd1eS1jby1waGFpLWJvaS10aHVvbmcvMjAxMDYv MTg4NTQ5Lmxhb2RvbmcgVHJhbiBQaGFuIDg6MTggQU0sIDE3LzA2LzIwMTANCg0KVFBIQ006IER1 IGFuIEJPVCBjYXUgUGh1IE15IHRhaSBUUEhDTSAtIFRoYW5oIHBobyBIQ00gY28gbmd1eSBjbyBw aGFpIGJvaSB0aHVvbmcNCg0KQ2F5IGNhdSBkYXkgdmFuZyBQaHUgTXkgZGF1IHR1IGtob2FuZyAz LjAwMCB0aSBkb25nLCB4YXkgeG9uZyBjaGkgbGVvIHRlbyB4ZSBxdWEgbGFpLg0KDQpEbyBUUEhD TSBjaHVhIHRodWMgaGllbiBkdW5nIGNhbSBrZXQgaG9wIGRvbmcgQk9ULCBuZW4gY2F1IGRheSB2 YW5nIFBodSBNeSAoY28gDQp0b25nIHZvbiBkYXUgdHUga2hvYW5nIDMuMDAwIHRpIGRvbmcpIHhh eSB4b25nIGNoaSBjbyBsZW8gdGVvIHBodW9uZyB0aWVuIGRpIGxhaS4gVm9pIHNvIA0KbHVvbmcg eGUgbHV1IHRob25nIGl0IG5odSBoaWVuIG5heSBraGllbiBDdHkgY28gcGhhbiBCT1QgY2F1IFBo dSBNeSAobmF5IGxhIEN0eSBDUCANCkRUWEQgUGh1IE15IC0gUE1DKSBsYW0gdmFvIHRpbmggdHJh bmcgc28gdGllbiB0aHUgcGhpIGtob25nIGR1IGRlIHRyYSBubyB2YXkgdmEgbGFpIA0Kc3VhdCBu Z2FuIGhhbmcuDQoNCk9uZyBNYWMgRGFuZyBOb3AgLSBQaG8gVG9uZyBHRCBQTUMgLSBjaG8gcmFu Zywgbmd1eWVuIG5oYW4ga2hpZW4gY2hvIGx1b25nIHhlIHF1YSBjYXUgUGh1IE15IGl0IGxhIGRv IHRoYW5oIHBobyBraG9uZyB0aHVjIGhpZW4gZHVuZyBjYW0ga2V0IGhvcCBkb25nIEJPVCBreSBn aXVhIFRQSENNIHZvaSBQTUMgbmFtIDIwMDUuIFRoZW8gaG9wIGRvbmcgQk9UIHF1eSBkaW5oLCBQ TUMgZGF1IHR1IHhheSBkdW5nIGNhdSBQaHUgTXksIGNvbiB0aGFuaCBwaG8gZGF1IHR1IHhheSBk dW5nIGR1b25nIHZhbmggZGFpIHBoaWEgZG9uZyBrZXQgbm9pIHRvaSBjaGFuIGNhdSBQaHUgTXku IA0KDQpUcm9uZyB0cnVvbmcgaG9wIGNhdSBQaHUgTXkgeGF5IGR1bmcgeG9uZywgbmh1bmcgZHVv bmcgdmFuaCBkYWkgcGhpYSBkb25nIGRvIHRoYW5oIHBobyBkYXUgdHUgY2h1YSBob2FuIHRoYW5o IGtpcCB0aGkgdGhhbmggcGhvIHBoYWkgYnUgZGFwIGNobyBQTUMgbW90IGtob2FuIHRpZW4gKGdp b25nIG5odSB0aHUgcGhpKSB0dW9uZyB1bmcgdm9pIHRob2kgZ2lhbiBjaGFtIHRyZS4gTWF0IGto YWMsIGhvcCBkb25nIGN1bmcgcmFuZyBidW9jLCBzYXUga2hpIHhheSB4b25nIGNhdSBQaHUgTXks IHRoYW5oIHBobyBwaGFpIGhhbiBjaGUgdG9pIGRhIGNhYyB4ZSB0YWkgbHV1IHRob25nIHR1IG1v dCBzbyBodW9uZyBraGFjIGRlIGx1dSB0aG9uZyB2YW8gdmFuaCBkYWkgcGhpYSBkb25nIHF1YSBj YXUgUGh1IE15Li4uIFR1eSB2YXksIHRoZW8gUE1DIHRoaSBuaHVuZyBkaWV1IGtob2FuIG5heSBk ZW4gbmF5IHZhbiBjaHVhIGR1b2MgdGhhbmggcGhvIHRodWMgaGllbi4gDQoNClRoZW8gUE1DLCBz byBsdW9uZyB4ZSBxdWEgY2F1IFBodSBNeSBiaW5oIHF1YW4gbW9pIG5nYXkgY2hpIGNvIGtob2Fu ZyA1LjAwMCAtIDYuMDAwIGx1b3QgeGUsIHRoYXAgaG9uIG5oaWV1IHNvIHZvaSBkdSBraWVuIGJh biBkYXUgbGEga2hvYW5nIDMwLjAwMCAtIDM1LjAwMCBsdW90LiANCg0KRG8gc28gbHVvbmcgeGUg b3RvIHF1YSBjYXUgUGh1IE15IHRoYXAsIG5lbiBkb2FuaCB0aHUgdGh1IHBoaSBjdW5nIGNoaSBk YXQga2hvYW5nIDEwMCAtIDE1MCB0cmlldSBkb25nL25nYXkuIE9uZyBOZ3V5ZW4gVGhhbmggVGhh aSAtIFRvbmcgR0QgUE1DIC0gY2hvIGJpZXQsIHZvaSBzbyB0aWVuIHRodSBwaGkgbmh1IGhpZW4g bmF5LCBQTUMga2hvbmcgZHUgbmd1b24gdGh1IGRlIHRyYSBubyB2YXkgdmEgbGFpIHN1YXQgY2hv IGNhYyBuZ2FuIGhhbmcgbWEgUE1DIHZheSBkYXUgdHUgeGF5IGR1bmcgY2F1IFBodSBNeS4gDQoN ClRoZW8ga2UgaG9hY2ggdHJhIG5vIG5nYW4gaGFuZywgdHJvbmcgZG90IHRoYW5nIDcuMjAxMCwg UE1DIHBoYWkgdHJhIG5vIHRvbmcgY29uZyBzbyB0aWVuIDE3OCB0aSBkb25nIHZhIGRvdCB0aGFu ZyAxLjIwMTEgcGhhaSB0aGFuaCB0b2FuIG5vIHZvaSBzbyB0aWVuIDE3MCB0aSBkb25nLiBWaSB2 YXksIFBNQyBkYSBkZSBuZ2hpIHRoYW5oIHBobyBjaG8gdGFtIHVuZyB0dSBuZ2FuIHNhY2ggc28g dGllbiBraG9hbmcgMzQ4LDYgdGkgZG9uZywgZGUgUE1DIHRoYW5oIHRvYW4gbm8gdmF5IHZhIGxh aSBzdWF0IGNobyBuaHVuZyBkb3QgdGhhbmggdG9hbiB0cmVuLiANCg0KUmllbmcgbW90IHNvIGR1 IGFuIGR1b25nIGtldCBub2kgdm9pIGNhdSBQaHUgTXkgdGh1b2MgdHV5ZW4gdmFuaCBkYWkgcGhp YSBkb25nIGRhbmcgZG8gUE1DIGRhbSBuaGFuIGRhdSB0dSwgb25nIE5ndXllbiBUaGFuaCBUaGFp IGNvbiBjaG8gYmlldCB0aGVtLCBraGkgdHJpZW4ga2hhaSB4YXkgZHVuZyBjYXUgUGh1IE15LCB0 aGF5IHRoYW5oIHBobyBjaGFtIHRyaWVuIGtoYWkgZGF1IHR1IGNhYyB0dXllbiBkdW9uZyBuaHUg Y2FtIGtldCBob3AgZG9uZyBCT1QgbmVuIFBNQyBkYSB0aGFtIGdpYSBkYXUgdHUgeGF5IGR1bmcs IGdvcCBwaGFuIGRheSBuaGFuaCB0aWVuIGRvIGhvYW4gdGhhbmggZG9uZyBibyBkdW9uZyB2b2kg Y2F1IFBodSBNeS4NCiANClRyZW4gdGh1YyB0ZSwgdHJvbmcgcXVhIHRyaW5oIGRhdSB0dSB4YXkg ZHVuZywgdGhhbmggcGhvIGxhaSBiYW4gZ2lhbyBtYXQgYmFuZyBraG9uZyBkdW5nIHRob2kgaGFu LCBsYW0gY2hvIGR1IGFuIGRlbiBuYXkgdmFuIGNodWEgaG9hbiB0aGFuaCBkb25nIGJvLCBkbyBj dW5nIGNoaW5oIGxhIGx5IGRvIGtoaWVuIGx1dSBsdW9uZyB4ZSBxdWEgY2F1IFBodSBNeSB0aGFw LiANCg0KIk5ldSBjYW4gY3UgdmFvIGRpZXUga2llbiBob3AgZG9uZyBkZSBsYW0gY2FuZyB2b2kg bmhhdSB0aGkgdGhhbmggcGhvIHBoYWkgYm9pIHRodW9uZyBjaG8gUE1DLiBOaHVuZyBjaHVuZyB0 b2kgY2h1YSBsYW0gbmh1IHZheSwgbWEgY2hpIGRlIG5naGkgdGhhbmggcGhvIGNobyB0YW0gdW5n IG1vdCBraG9hbiB0aWVuIGRlIHRoYW5oIHRvYW4gbm8gdmF5IHZhIGxhaSBzdWF0IGNobyAyIGt5 IHRyYSBubyBjdWEgbmFtIGRhdSB0aWVuIHNhdSBraGkgaG9hbiB0aGFuaCBjYXUgUGh1IE15LiBW YSBraG9hbiBuYXkgc2UgZHVvYyBQTUMgdGhhbmggdG9hbiBsYWkgY2hvIHRoYW5oIHBobyB0dSBu Z3VvbiB0aHUgcGhpIGNhYyBuYW0gc2F1IiAtIG9uZyBUaGFpIG5vaS4NCg0KaHR0cDovL3d3dy50 aWVucGhvbmcudm4vUGhhcC1MdWF0LzEwMDkwNy9UUEhDTS1EYXQtby1xdWFuLTItZGEtYmkteGEt eGVvLW5odS10aGUtbmFvLmh0bWwgMDg6MDQgMDYvMTEvMjAwNyANCg0KVFAuSENNOiBEYXQgbyBx dWFuIDIgZGEgYmkgJ3hhIHhlbycgbmh1IHRoZSBuYW8/IA0KDQpMYXkgZGF0IGN1YSBkYW4gImNo aWEiIGNobyBjYW4gYm8gcXVhbg0KDQpUcm9uZyBsdWMgVFBIQ00gZGFuZyBsb2F5IGhvYXkgY2h1 YSB0aW0gZHUgcXV5IGRhdCwgbmhhIGRlIHRhaSBkaW5oIGN1IGNobyBoYW5nIA0KY2h1YyBuZ2Fu IGhvIGRhbiBiaSB0aHUgaG9pLCBnaWFpIHRvYSB0dSBkdSBhbiBLaHUgZG8gdGhpIG1vaSBUaHUg VGhpZW0gKHF1YW4gMikgdGhpIA0KaGFuZyBjaHVjIGhlYy10YSBkYXQgdGFpIHF1YW4gMiBkYW5n IGJpICJ4YSB4ZW8iLCBsYW4gY2hpZW0gdmEgc3UgZHVuZyBidWEgYmFpLiANCg0KRGFuZyBub2kg aG9uLCAidGh1IHBoYW0iIGxhaSBjaGluaCBsYSBjaGluaCBxdXllbiBxdWFuIG5heSBjdW5nIGto YSBuaGlldSBjb25nIHR5IGRpYSANCm9jIGR1b2MgInV1IGFpIiBnaWFvIGRhdCBuaGFtICJxdXkg aG9hY2ggY2hpbmggdHJhbmcgZG8gdGhpIi4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMDgvMTAvODA3NDEyLyBWaW5oIEdpYW5nIDA1OjU5LCAwOC8xMC8yMDA4IChHTVQrNykN Cg0KQmFuIGJpIHRodTogQ3UgdHJpIG11b24gVGhhbmggdHJhIGNoaW5oIHBodSBuaGFwIGN1b2Mg dnUgVGh1IFRoaWVtDQoNCiAtIFRhaSBidW9pIHRpZXAgeHVjIGN1IHRyaSBkYWkgYmlldSBRdW9j IGhvaSBxdWFuIDIgKFRQLkhDTSkgY3VhIENodSB0aWNoIG51b2MgTmd1eWVuIA0KTWluaCBUcmll dCBjaGlldSA3LzEwLCBuaGlldSBjdSB0cmkgZGEgcGhhbiBhbmggYnVjIHh1YyB2ZSB2YW4gZGUg dGFpIGRpbmggY3UsIGRlbiBidSBnaWFpIA0KdG9hIHRhaSBraHUgZG8gdGhpIG1vaSBUaHUgVGhp ZW0uIA0KDQpLaG9uZyB0aW4gdHVvbmcgVGhhbmggdHJhIHRoYW5oIHBobyANCg0KTmhpZXUgY3Ug dHJpIGtob25nIGRvbmcgdGluaCB2ZSBrZXQgbHVhbiB0aGFuaCB0cmEgY3VhIFRoYW5oIHRyYSBU UC5IQ00gdmUgZHUgYW4ga2h1IA0KZG8gdGhpIG1vaSBUaHUgVGhpZW0gdmEgZGUgbmdoaSBUaGFu aCB0cmEgQ2hpbmggcGh1IHZhbyBjdW9jLg0KDQoiQ2h1bmcgdG9pIGtob25nIGhhaSBsb25nIHZl IGtldCBxdWEgdGhhbmggdHJhLCBkZSBuZ2hpIHRoYW5oIGxhcCB0aGFuaCB0cmEgQ2hpbmggcGh1 IHh1IA0KbHkgbmh1bmcgY2EgbmhhbiwgdG8gY2h1YywgdHV5IHRoZW8gbXVjIGRvIHZpIHBoYW0i LCBjdSB0cmkgTmd1eWVuIE1haSBMaW5oLCBwaHVvbmcgDQpBbiBMb2kgRG9uZywgbGVuIHRpZW5n LiAgDQoNClRoZW8gY3UgdHJpIExlIEhvbmcgSGFuaCwgZGUgVGhhbmggdHJhIFRQIHRodWMgaGll biB0aGFuaCB0cmEgZGF0IGRhaSB0YWkgVGh1IFRoaWVtIA0KY2hhbmcga2hhYyBuYW8gdnVhIGRh IGJvbmcgdnVhIHRob2kgY29pLCBkYW4gZGVuIHRpbmggdHJhbmcgZGF5IHRyYWNoIG5oaWVtIHh1 b25nIGNhcCANCmR1b2kuIA0KDQpNb3Qgc28gY3UgdHJpIGNobyByYW5nIGtldCBsdWFuIHRoYW5o IHRyYSB2dWEgcXVhIGtob25nIHRob2EgZGFuZy4gS2h1IGRhdCAxNjAgaGEgdHJvbmcgDQpraHUg ZG8gdGhpIG1vaSBUaHUgVGhpZW0gZHVvYyBDaGluaCBwaHUgcGhlIGR1eWV0IGRlIHRhaSBkaW5o IGN1IGNobyBkYW4gY2h1YSBkdW9jIA0KZ2lhaSB0aGljaCB0aG9hIGRhbmcgdmUgbXVjIGRpY2gg c3UgZHVuZyBoaWVuIG5heS4gTmdvYWkgcmEsIGdpYSBib2kgdGh1b25nIGRhdCB0aGVvIGNhYyAN CnF1eWV0IGRpbmggMTM1LzIwMDIgdmEgMTIzLzIwMDYgY3VhIFVCTkQgVFAgcXVhIHRoYXAgc28g dm9pIGdpYSB0aGkgdHJ1b25nLiANCg0KTW90IHNvIGN1IHRyaSBjb24gdG8gcmEgYmFuIGtob2Fu IHZlIHZhbiBkZSB0cnVvYyBraGkgdGhhbmggdHJhLCBkdSBsdWFuIHBoYW4gYW5oIGNvIDI4IA0K ZHUgYW4gYmkgcGhhbiBsbyBiYW4gbmVuLCBzYXUga2hpIHRoYW5oIHRyYSwgbGFpIGxlbiBkZW4g NDIgZHUgYW4uIA0KDQoiS2V0IGx1YW4gdGhhbmggdHJhIGtob25nIGdpYWkgdG9hIGR1b2MgYnVj IHh1YyBjdWEgY2h1bmcgdG9pLCBtYSBuZ3VvYyBsYWkgY2FuZyBsYW0gDQpidWMgeHVjIHRhbmcg bGVuIiwgY3UgdHJpIFZ1IE1haSBMaW5oLCBwaHVvbmcgQW4gTG9pIERvbmcsIG5vaS4gDQoNCkN1 IHRyaSBEaW5oIEtpbSBUdWFuLCBwaHVvbmcgQW4gS2hhbmgsIGNoaWEgc2UgeSBraWVuOiAiS2V0 IGx1YW4gdGhhbmggdHJhIGxhaSBkbyBsb2kgDQpjaG8gY2FjIHNvLCBuZ2FuaCB2YSBxdWFuLCB0 cm9uZyBraGkgdHJ1b2MgZG8gcXVhbiBsYWkgZ2lhaSB0aGljaCBjaGkgdGh1YyBoaWVuIHN1IGNo aSBkYW8gDQpjdWEgVFAuIE5odSB2YXkgbGEgZG8gdHJhY2ggbmhpZW0gY2hvIG5oYXUiLiAgDQoN Cmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9OZ2hlby12aS1vLW5oaWVtLXZhLXF1eS1o b2FjaC10cmVvLzIwMDg3Lzk2OTUzLmxhb2RvbmcgNTowNSBQTSwgMTAvMDcvMjAwOA0KDQpUUC5I Q006IE5naGVvIHZpIG8gbmhpZW0gdmEgcXV5IGhvYWNoIHRyZW8gLSBIbyBuZ2hlbyB0YW5nDQog IA0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA4LzA2LzNCQTAzRTM2LyBD aHUgbmhhdCwgMjkvNi8yMDA4LCAwOToxMyBHTVQrNw0KDQpUUCBIQ006IEJlIHRvbmcgc2FwIGRl IDMgY29uZyBuaGFuIGxhbSBtb3Qgbmd1b2kgY2hldA0KDQpWdSB2aWVjIHhheSByYSBzYW5nIDI4 LzYgdGFpIGNvbmcgdHJpbmggeGF5IGR1bmcgbmhhIHh1b25nIGN1YSBtb3QgY29uZyB0eSBkaWVu IHR1IG5hbSB0cm9uZyBLaHUgY29uZyBuZ2hlIGNhbyBUUCBIQ00sIHRodW9jIGRpYSBiYW4gcXVh biA5Lg0KDQpodHRwOi8vd3d3LmhpZW5kYWlob2EuY29tL2Vudmlyb25tZW50X2RldGFpbC5waHA/ aWQ9Njg1ICgzMC0wNy0yMDA5IDExOjUwOjMzKQ0KDQpUUCBIQ006IFhhIHRyb20gbnVvYyB0aGFp LCBsYW0gc2FwIHR1b25nIHZheSBjaHVuZyBjdSBUaW4gUGhvbmcgDQoNCkR1IGFuIHhheSBkdW5n IGNodW5nIGN1IGNobyBuZ3VvaSB0aHUgbmhhcCB0aGFwIGN1YSBDb25nIHR5IFROSEggU2FuIHh1 YXQgdGh1b25nIG1haSB4YXkgZHVuZyBUaW4gUGhvbmcgKENvbmcgdHkgVGluIFBob25nKSwgdGFp IHF1YW4gMTIsIGRhbmcgY28gbmd1eSBjbyBjaGFtIHRpZW4gZG8uIE5ndXllbiBuaGFuIGxhIGhl IHRob25nIHR1b25nIHZheSBkYSBiaSBkbyBzYXAgZG8gbnVvYyB0aGFpIHR1IGhlIHRob25nIHhh IG5nYW0gdHUgeHVvbmcgZGV0IGJlbiBjYW5oIGdheSByYS4gDQoNCmh0dHA6Ly93d3cudm5leHBy ZXNzLm5ldC9HTC9YYS1ob2kvMjAwOC8wNy8zQkEwNDA3Mi8gVGh1IHR1LCAyLzcvMjAwOCwgMjI6 NTkgR01UKzcNCg0KVFAgSENNOiBDYW5nIHRpbiB0cnVvbmcgZGFpIGhvYyBiYW4gdGh1YyBhbiBi YW4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0dpYW8tZHVjL0NoYXktdHJ1b25nLWtoby1xdWEtYWkt b2kvNDAwMzY1MTQvMjAyLyAxMC82LzIwMDQsIDA1OjI4IEdNVCs3IDEwLzYvMjAwNCwgMDU6Mjgg R01UKzcgDQoNClRQIEhDTTogQ2hheSB0cnVvbmcsIGtobyBxdWEgYWkgb2kgLSBOaGlldSB0aHUg dGF5LCBuaGlldSBiYXQgY29uZyEgDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1o b2kvMjAwNy8wOS8zQjlGQTk2Qy8NCg0KVFAgSENNOiBDaGkgYmFjIHRyaWV1IGNobyBjb24gdmFv IGxvcCAxIA0KDQpOaGlldSBwaHUgaHV5bmggZGEgcGhhaSBjaGkgInBob25nIGJpIiBiYWMgdHJp ZXUgdm9pIGhpIHZvbmcga2llbSBtb3QgY2hvIGNobyBjb24gdmFvIGxvcCAxIHRhaSBUUCBIQ00u IA0KDQpodHRwOi8vbWVnYWZ1bi52bi9jaGFubmVsLzE5MjIvMjAxMDA1L0NoYS1tZS1nb25nLW1p bmgtY2hheS10cnVvbmctY2hvLWNvbi12YW8tbG9wLU1vdC03NjY4OS8gMTY6MDcsICAxOC8wNS8y MDEwIChHTVQrNykNCg0KVFAgSENNOiBDaGEgbWUgImdvbmcgbWluaCIgY2hheSB0cnVvbmcgY2hv IGNvbiB2YW8gbG9wIE1vdCANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDM2LzIwMTAwOTAxMDA1MDU5LmFzcHggTmhvbSBQViAwMS8wOS8yMDEwIDA6NTEgDQoN ClRQIEhDTTogTmdoZXQgdGhvIHRyb25nIGxvcCBob2MgIA0KICANClNpIHNvIHZ1b3QgZ2FuIGdh cCBkb2kgdGhlbyBjaHVhbiBxdW9jIGdpYSwgbmh1bmcgbmh1bmcgbmdvaSB0cnVvbmcgY28gY2Fj IGxvcCBob2Mgbmh1IA0KdmF5IHZhbiBsYSBuaWVtIG1vbmcgdW9jIGN1YSBuaGlldSBwaHUgaHV5 bmggaG9jIHNpbmguIA0KDQpBbmggY2h1cDogSG9jIHNpbmggbmdvaSBjaGVuIGNodWMgdHJvbmcg bG9wIGhvYyBvIHRydW9uZyB0aWV1IGhvYyBOYW0gVGhhbmggQ29uZyANCihIYSBOb2kpIC0gQW5o OiBCaWNoIE5nb2MNCg0KTmdheSB0dXUgdHJ1b25nLCBraGkgdnVhIG5oYW4gbG9wLCBtb3QgZ2lh byB2aWVuIChHVikgY2h1IG5oaWVtIGN1YSB0cnVvbmcgVGlldSBob2MgDQooVEgpIExlIFZhbiBT eSAoUS5UYW4gQmluaCwgVFAuSENNKSBob3QgaGFpIGNoYXkgdmFvIHBob25nIGhpZXUgdHJ1b25n IG5vaTogIlRoYXkgDQpvaSwgbG9wIGVtIGNvIGRlbiA1NyBob2Mgc2luaCAoSFMpLCBjbyBuaGFt IGtob25nIHRoYXk/Ii4gDQoNCkNvbiBjaGkgVC5MLCBwaHUgaHV5bmggSFMgdHJ1b25nIFRIIExl IE5nb2MgSGFuIChRLjEpIGN1bmcgImNob2FuZyIga2hpIG5oaW4gZGFuaCANCnNhY2ggbG9wIGNv biBtaW5oIGNvIHRvbmcgY29uZyA0OSBIUy4uLiANCg0KQ2hpIE5nb2MsIHBodSBodXluaCBIUyB0 cnVvbmcgVEggQmF1IFNlbiAoUS41KSBjaG8gYmlldDogIkN1IHR1b25nIHR1b25nIGNhbmggNDUg DQpkdWEgdHJlIGNoZW4gY2h1YyBuaGF1IHRyb25nIDEgbG9wIGhvYyBtYSBjaGkgY28gMSBjbyBn aWFvIHZhIDEgY28gYmFvIG1hdSBjaGFtIHNvYyBjYSANCm5nYXkgbGEgdG9pIHRoYXkgc28gcXVh IG5odW5nIGNoYW5nIGJpZXQgbGFtIHNhbyIuLi4NCg0KRGF5IGtob25nIHBoYWkgY2h1eWVuIGhp ZW0gZ2FwIG8gY2FjIHRydW9uZyBUSCB0YWkgVFAuSENNLiBPbmcgVGEgVGFuIC0gVHJ1b25nIA0K cGhvbmcgR0QgUS5UYW4gUGh1LCBjaG8gYmlldDogIkhpZW4gbmF5IHF1YW4gY28gMSB0cnVvbmcg VEggZGF0IGNodWFuIHF1b2MgZ2lhIGNvIHNpIA0Kc28gdGhlbyBxdXkgZGluaCBsYSAzNSBIUy9s b3AsIG5odW5nIHRydW9uZyBjb24gbGFpIGJpbmggcXVhbiBsYSA0Ny4gVHJvbmcgZG8gY28gMiAN CnRydW9uZyBwaGFpIGNoaXUgYXAgbHVjIG5hbmcgbmUgbGEgdHJ1b25nIFRIIExlIExhaSB2YSBI dXluaCBWYW4gQ2hpbmgiLiANCg0KTmFtIG5heSwgdHJ1b25nIFRIIExlIExhaSBuaGFuIGhvbiA2 MDAgSFMsIHNpIHNvIHRydW5nIGJpbmggbW9pIGxvcCBraG9hbmcgNTMgLSA1NC4gDQpPbmcgSHV5 bmggTG9uZywgSGlldSB0cnVvbmcgbmhhIHRydW9uZyB0aG9uZyB0aW46ICJDbyBsb3Agc2kgc28g bGVuIGRlbiA2MCIuDQpEdW5nIG1pY3JvIGdpYW5nIGJhaSBvIGxvcCAxDQoNClRhaSBIYSBOb2ks IHRpbmggdHJhbmcgbmF5IGNvbiBjYW5nIHRoYW5nIGhvbi4gVHJ1b25nIFRIIEtpbSBMaWVuIChR LkRvbmcgRGEpIGxhIA0KbW90IHRyb25nIG5odW5nIHRydW9uZyBtYSBkYSBzbyBwaHUgaHV5bmgg ZGV1IG1vbmcgbXVvbiBjaG8gY29uIHZhbyBsb3AgMS4gQ2hpbmggdmkgDQpseSBkbyBkbywgbmFt IG5hbyB0cnVvbmcgbmF5IGN1bmcgcm9pIHZhbyB0aW5oIHRyYW5nIHF1YSB0YWksIHRodW9uZyBw aGFpIGNoYXAgbmhhbiBzaSBzbyANCnRvaSBob24gNjAgSFMvbG9wLiBUaGVvIGhpZXUgdHJ1b25n IG5oYSB0cnVvbmcsIHR1IDQgbmFtIG5heSwgY2hpIHRpZXUgdHV5ZW4gc2luaCBsb3AgMSANCmN1 YSB0cnVvbmcgZGV1IHRhbmcsIHRodW9uZyBsYSA2MDAgaG9hYyA3MDAgSFMsIHRyb25nIGRvIHR5 IGxlIEhTIHRyYWkgdHV5ZW4gbHVvbiBjaGllbSANCmtob2FuZyA1MCUuIERheSBsYSBuZ3V5ZW4g bmhhbiBraGllbiBzaSBzbyBsb3AgaG9jIHRodW9uZyBsYSBraG9hbmcgNjUgSFMuIFZpIHRoZSB0 dSANCnZhaSBuYW0gbmF5IG5oYSB0cnVvbmcgcGhhaSB0cmFuZyBiaSBoZSB0aG9uZyBhbXBsaSBk ZSBnaWFvIHZpZW4gZ2lhbmcgYmFpIGJhbmcgbWljcm8uIA0KTW90IEdWIHRydW9uZyBuYXkgdGFt IHN1OiAiS2hpIGNodWEgdHJhbmcgYmkgbWljcm8gZGUgZ2lhbmcgYmFpLCBzYXUgbW90IG5nYXkg bGVuIGxvcCANCnRoaSBjaHVuZyB0b2kgY2FtIGdpYWMgbmh1IGJpIGR1dCBob2ksIHRoYW0gY2hp IHZlIG5oYSBraG9uZyBkdSBzdWMgZGUgbm9pIGNodXllbiB2b2kgDQpjaG9uZywgY29uIG51YS4u LiIuIA0KDQoiQ3UgcGhhaSBlcCBzaSBzbyINCg0KT25nIEJ1aSBIdXUgUGh1b2MsIEhpZXUgdHJ1 b25nIHRydW9uZyBUSCBMZSBWYW4gU3kgKFEuVGFuIEJpbmgpIG5vaTogIkFwIGx1YyBzaSBzbyAN CmNvbiBkbyBuaHUgY2F1IGhvYyBiYW4gdHJ1Ii4gT25nIFRhIFRhbiwgVHJ1b25nIHBob25nIEdE IFEuVGFuIFBodSB0aGkgdGhvbmcgdGluOiANCiJUcnVvYyBkYXkgY2h1bmcgdGEgY3UgbmdoaSBs YSBjYWMgbmFtIGRlcCB0aGkgc2UgZ2lhIHRhbmcgZGFuIHNvLCBrZW8gdGhlbyBzbyBsdW9uZyBI UyANCm5oYXAgaG9jIHRhbmcuIFRodWMgdGUga2hvbmcgcGhhaSB2YXksIG1vaSBuYW0gc28gSFMg ZGV1IHRhbmcgYm9pIGtob25nIGNoaSBsYSBkYW4gc28gDQpjbyBodXUgbWEgY29uIGRvIHNvIGx1 b25nIGRhbiBuaGFwIGN1LiBUcmFjaCBuaGllbSBjdWEgdHJ1b25nIGxhIHBoYWkgdGh1IG5oYW4g aGV0IHNvIA0KbHVvbmcgdHJlIHRyZW4gZGlhIGJhbiBuZW4gY3UgcGhhaSBlcCBzaSBzby4gRGUg Z2lhaSBxdXlldCB0aW5oIHRyYW5nIG5heSBjaGkgY28gY2FjaCBkdXkgDQpuaGF0IGxhIHBoYWkg eGF5IGR1bmcgbmhpZXUgdHJ1b25nIGhvbiBudWEiLiAoQi5UIC0gUC5MKSANCg0KVHJ1b25nIFRI IE5hbSBUaGFuaCBDb25nIChRLkRvbmcgRGEpIGN1bmcgbGEgZGllbSBub25nLCBuYW0gbmF5IHNp IHNvIGN1bmcgbGVuIA0KdG9pIGhvbiA2MCBIUy9sb3AuIERvdCB0dXllbiBzaW5oIHZ1YSBxdWEs IGNoaSByaWVuZyB0cmUgZGllbiBkdW5nIHR1eWVuIHZhbyB0cnVvbmcgZGEgDQpjbyB0cmVuIDYw MCBIUywgdHJvbmcga2hpIGRpZXUga2llbiBjbyBzbyB2YXQgY2hhdCBjdWEgdHJ1b25nIGNoaSBk YXAgdW5nIGR1b2Mga2hvYW5nIDUwMCANCkhTLg0KDQpPIGx1YSB0dW9pIGNhbiBkdW9jIHJlbiBs dXllbiwgdW9uIG5hbiB0dSBjYWNoIGNhbSBidXQgZGVuIHR1IHRoZSBuZ29pIHRoaSBzaSBzbyBj YW8gZ2FuIA0KZ2FwIGRvaSBzbyB2b2kgcXV5IGRpbmgga2hpZW4gSFMga2hvIGR1b2MgcXVhbiB0 YW0gZHVuZyBtdWMuIA0KDQoiRHUgZ2lhbyB2aWVuIGNvIGdpb2kgZGVuIG1heSwgbmhpZXQgdGlu aCBkZW4gbWF5IGN1bmcga2hvbmcgdGhlIGRheSBob2MgY28gY2hhdCBsdW9uZyANCnZvaSBsb3Ag Y28gc2kgc28gcXVhIGNhbyBuaHUgdmF5IiAtIE1vdCBwaHUgaHV5bmggdGFpIEhhIE5vaSANCg0K Q28gQnVpIFRoaSBLaW0gRHVuZyAtIEdWIGxvcCAxIHRydW9uZyBUSCBOZ3V5ZW4gVmFuIFRyb2ks IFEuNCwgVFAuSENNIC0gY2hvIA0KcmFuZzogIlRyZSBsb3AgMSByYXQgaGlldSBkb25nIG5odW5n IGxhaSBiaWV0IHNvIGNvIGdpYW8gbmVuIHZpZWMgbnVvaSBraG9uZyB0b24gbmhpZXUgDQp0aG9p IGdpYW4gYmFuZyB2aWVjIGRheSBjaHUuIFRob2kgZ2lhbiBkYXUgY28gZW0gYmlldCBjaHUsIGNv IGVtIGNodWEgYmlldCwgdHJvbmcgZG8gdHJlIA0KYmlldCBjaHUgaGF1IGhldCBsYWkgZHVvYyBk YXkga2hvbmcgZHVuZyBjaHVhbiBuZW4gbmV1IGxvcCBxdWEgZG9uZyB0aGkgcXVhIHRoYXQgY28g Z2lhbyANCnJhdCBraG8iLiANCg0KQ3VuZyB0YW0gdHJhbmcsIG1vdCBHViBRLlRhbiBCaW5oIHRo dWEgbmhhbjogIkxvcCB0b2kgY28gNTAgSFMgbmVuIGNhIG5nYXkgaGF1IG5odSANCnRvaSBraG9u ZyB0aGUgbmdvaSBtb3QgY2hvIG1hIHBoYWkga2VtIGNhcCB0dW5nIHRybyBtb3QgZGUgZGFtIGJh byByYW5nIGhvYyB0cm8gY3VhIA0KbWluaCBkYSB2aWV0IGR1bmcgbmV0LCBuZ29pIGR1bmcgdHUg dGhlIi4gDQoNCktob25nIGNoaSBjbyBjaGF0IGx1b25nIGhvYyB0YXAgYmkgYW5oIGh1b25nIG1h IHN1YyBraG9lLCB0aGkgbHVjIGN1YSBIUyB0cm9uZyBuaHVuZyANCmxvcCBkb25nIGN1bmcgcmF0 IGRhbmcgbG8gbmdhaS4gTW90IGNoaWVjIGJhbiBob2MgZHVvYyB0aGlldCBrZSBjaG8gMiBIUyB0 aGkgbmF5IGNvIHRvaSAgDQozIEhTICBuZ29pIGNoZW4gY2h1Yy4gS2hvYW5nIGNhY2ggZ2l1YSBj YWMgYmFuIGhvYyBjdW5nIHNhbiBzYXQgbmhhdSwgZGF5IGJhbiBkYXUgDQpjdW5nIHBoYWkga2Ug Z2FuIG5nYXkgYnVjIGdpYW5nIGRlIHRhbiBkdW5nIHRvaSBkYSBkaWVuIHRpY2guLi4gDQoNCmh0 dHA6Ly92bmV4cHJlc3MubmV0L0dML0RvaS1zb25nLzIwMTAvMDkvM0JBMjBEQ0IvIDI3LzkvMjAx MCwgMTA6NDAgR01UKzcNCg0KVFAgSENNOiBCZSBsb3AgNCBnYXkgeHVvbmcgdmFpIHZpIGRlbyBj YXAgbmFuZyANCg0KQ2FuIGN1IHZhbyB0b24gdGh1b25nIGN1bmcgdGluaCB0cmFuZyBjb3Qgc29u ZyBiaSB2ZW8gdmEgZ3UgbHVuZywgYmFjIHNpIGNobyByYW5nIHZpZWMgYmUgDQpwaGFpIHZhYyBj YXAgbmFuZyBkaSBibyBtb2kgbmdheSB2YSBrZW8gZGFpIHRyb25nIG5oaWV1IG5hbSBjaGluaCBs YSBuZ3V5ZW4gbmhhbiBnYXkgeHVvbmcgdmFpLg0KDQpZIGtpZW4gYmFuIGRvYyAoNjYpIA0KQ2h1 b25nIHRyaW5oIGdpYW8gZHVjDQpIb2Mgc2luaCBjdWEgdG9pIG5nYXkgbmFvIGN1bmcgbWFuZyB0 cmVuIHZhaSBpdCBuaGF0IDUga2cgc2FjaCB2by4gQ2FuZyBuZ2F5IGJvIGdpYW8gDQpkdWMgY2Fu ZyBiYXQgbWFuZyBuaGlldSBzYWNoLiBIbyBpbiBjYSBuaHVuZyBxdXllbiB2byBiYWkgdGFwIGRl IGhvYyBzaW5oIGtob25nIHBoYWkgDQpjaGVwIGRlLCBuaHVuZyB2YW4gYmF0IGhvYyBzaW5oIHBo YWkgbWFuZyBjYSB2byBkZSBnaGkgY2hlcC4gIA0KKEhvYW5nIEhhbmgpDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxMzIzNTY0OC5hc3B4IEJU aCBQLkwgMTMvMDkvMjAxMCAyMzo1NiANCg0KVFAgSENNOiBEdW5nIG1haSAidGhpIGRpZW0iIHRy ZW4gaG9jIHRybyEgDQoNCjEyIG5hbSB2YW4gY29uICJ0aGkgZGllbSIgLSBOaGlldSBjaHVvbmcg dHJpbmggdGhpIGRpZW0gdHJvbmcgbW90IHRydW9uZyENCg0KQmF0IGRhdSB0dSBuYW0gaG9jIG5h eSwgY28gNSB0cnVvbmcgdGFpIFRQLkhDTSB0aGFtIGdpYSBkYXkgdGhpIGRpZW0gY2h1b25nIHRy aW5oIA0KcXVvYyB0ZSBjdWEgREggQ2FtYnJpZGdlICh2aWV0IHRhdCBDVCBDYW1icmlkZ2UpIGJh byBnb20gdHJ1b25nIFRpZXUgaG9jIChUSCkgDQpOZ3V5ZW4gQmluaCBLaGllbSwgVEggTGUgTmdv YyBIYW4sIFRIIFRyYW4gSHVuZyBEYW8sIFRIQ1MgTmd1eWVuIER1IChRLjEpIHZhIA0KVEhDUyBM ZSBRdXkgRG9uIChRLjMpLiBOaHUgdmF5IG8gY2FjIHRydW9uZyBuYXkgZGFuZyB0b24gdGFpIDMg Q1QgZ2lhbmcgZGF5IHRpZW5nIA0KQW5oOiB0aWVuZyBBbmggcGhvIHRob25nIChiYWMgVEhDUykg aG9hYyB0aWVuZyBBbmggdHUgY2hvbiAoYmFjIFRIKSwgdGFuZyBjdW9uZyANCnRpZW5nIEFuaCAo VENUQSkgdmEgQ1QgQ2FtYnJpZGdlIHRyb25nIGRvIDIgQ1Qgc2F1IGRldSBsYSB0aGkgZGllbS4g RG8gbGEgY2h1YSBrZSANCm5hbSBob2MgbmF5LCB0dSBkdSBraWVuIHRpZW4gaGFuaCBkYWkgdHJh LCBCbyBHRC1EVCBjaGkgdHJpZW4ga2hhaSBDVCB0aGkgZGllbSBkYXkgDQpuZ29haSBuZ3UgY2hv IEhTIGxvcCAzIHRhaSAxMDAgdHJ1b25nIFRIIG8gaG9uIDIwIHRpbmgsIHRoYW5oLiANCg0KMTIg bmFtIHZhbiBjb24gInRoaSBkaWVtIg0KDQpDVCBUQ1RBIGR1b2MgYmF0IGRhdSB0aGkgZGllbSB0 dSBuYW0gaG9jIDE5OTgtMTk5OSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVuZyBEYW8gDQooUS4xKSB2 b2kgY2h1YSB0b2kgMTAwIEhTLiBTYW5nIG5hbSBob2MgdGh1IDIsIENUIHRpZXAgdHVjIGR1b2Mg bW8gcm9uZyB0YWkgY2FjIHRydW9uZyANClRIIExlIE5nb2MgSGFuIChRLjEpLCBUSCBEaW5oIFRp ZW4gSG9hbmcgKFEuMSksIFRIIE5ndXllbiBUaGFpIFNvbiAoUS4zKS4gRGVuIA0KbmF5LCBDVCBk YSB0aGkgZGllbSBkdW9jIDEyIG5hbSB2YSBjbyAxNzIgdHJ1b25nIFRIIHZvaSBraG9hbmcgNDcu NTAwIEhTIHRoYW0gZ2lhLiANCk9uZyBOZ3V5ZW4gSG9haSBDaHVvbmcgLSBQaG8gZ2lhbSBkb2Mg U28gR0QtRFQgVFAuSENNLCBjaG8gYmlldDogIlRyb25nIHRob2kgDQpkaWVtIGhpZW4gbmF5LCBD VCBjaHVhIHRoZSB0aHVjIGhpZW4gZGFpIHRyYSBkbyBjb24gbmh1bmcga2hvIGtoYW4gdmUgY28g c28gdmF0IGNoYXQsIA0KZG9pIG5ndSBnaWFvIHZpZW4uLi4gVHV5IG5oaWVuIFNvIGx1b24gZ2lh byBxdXllbiBjaHUgZG9uZyBjaG8gY2FjIHRydW9uZyBUSCwgbmV1IA0KdHJ1b25nIG5hbyB0aGF5 IGNvIGR1IGRpZXUga2llbiB0aGkgZGFuZyBreSB0aGFtIGdpYS4gTmFtIGhvYyBuYXksIHF1YSBw aGFuIGFuaCwgQ1QgY28gDQp0aGF5IGRvaSBkZSBnaWFtIGJvdCBhcCBsdWMgY2hvIHBodSBodXlu aCBjdW5nIG5odSBIUywgZG8gbGEgY2FjIHRydW9uZyBraG9uZyB0aHVjIA0KaGllbiBraGFvIHNh dCBraGEgbmFuZyBob2MgbmdvYWkgbmd1LiBDYWMgdHJ1b25nIFRIIHNlIHRvIGNodWMgY2hvIHBo dSBodXluaCBIUyBkYW5nIA0Ka3kgdGhhbSBnaWEgdmEgY2h1b25nIHRyaW5oIGJhdCBkYXUgdGh1 YyBoaWVuIHR1IGhvYyBreSAyIi4gTmh1IHZheSBDVCBuYXkgZGEgZGllbiByYSANCjEyIG5hbSBu aHVuZyBjaHVhIGJpZXQgYmFvIGdpbyBtb2kgY2hhbSBkdXQgZ2lhaSBkb2FuIHRoaSBkaWVtLiAN Cg0KVHJvbmcga2hpIGRvLCBuYW0gaG9jIG1vaSBuYXksIG5oaWV1IEhTIGxhaSBidW9jIHZhbyBj YWMgQ1QgdGhpIGRpZW0ga2hhYyB2b2kgbmh1bmcgDQp0aWV1IGNoaSB2YSBtdWMgZGljaCBraGFj IG5oYXUuDQoNCkRpZW4gaGluaCBsYSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVuZyBEYW8gKFEuMSkg aGllbiBjbyAzOSBsb3AsIHRyb25nIGRvIGNvIDI0IGxvcCBUQSANCnR1IGNob24sIDEyIGxvcCBU Q1RBIHZhIDMgbG9wIENUIENhbWJyaWRnZS4gSG9jIHBoaSBjYWMgbG9wIG5heSBraGFjIG5oYXUg cm8gcmV0OiANCkxvcCBUQSB0dSBjaG9uIG1vaSB0aGFuZyBkb25nIDMwLjAwMCBkb25nLCBtb2kg dHVhbiBob2MgMiB0aWV0OyBsb3AgVENUQSBkb25nIA0KMTEwLjAwMCBkb25nL3RoYW5nIChjbyBn aWFvIHZpZW4gbnVvYyBuZ29haSksIHR1YW4gaG9jIDggdGlldDsgdHJvbmcga2hpIGxvcCBDVCAN CkNhbWJyaWRnZSBsYSAxNTAgVVNEL3RoYW5nLCB0dWFuIGhvYyA2IHRpZXQgdm9pIGdpYW8gdmll biBuZ3VvaSBudW9jIG5nb2FpIGRvIERIIA0KQ2FtYnJpZGdlIGNoaSBkaW5oLiBDdW5nIHZvaSBz dSBjaGVuaCBsZWNoIGhvYyBwaGksIHNpIHNvIG8gY2FjIGxvcCBuYXkgY3VuZyBraGFjIG5oYXUg DQpkYW5nIGtlLiBMb3AgVEEgdHUgY2hvbiBzaSBzbyB0dSA0NSBIUyB0cm8gbGVuLCBUQ1RBIGxh IDM1IC0gNDAgSFMsIGNvbiBsb3AgQ1QgDQpDYW1icmlkZ2UgY2hpIDI3LTI4IEhTL2xvcC4gDQoN CkhTIGNvIGNhbSBnaWFjIGJpIGRvaSB4dSBraG9uZyBjb25nIGJhbmcgDQoNCiJNdW9uIGFwIGR1 bmcgbW90IG1vIGhpbmggbW9pIHBoYWkgdG8gY2h1YyB0aGkgZGllbSBuaHVuZyBwaGFpIGNvIHRo b2kgaGFuIGRlIA0KY2h1eWVuIHNhbmcgbW90IGdpYWkgZG9hbiBtb2kgY2h1IGtob25nIHRoZSB0 aGkgZGllbSBoYW5nIGNodWMgbmFtIHRyb2kuIFZpZWMgbmF5IGFuaCANCmh1b25nIHJhdCBsb24g ZGVuIHRhbSBseSBjdWEgY2EgSFMgdmEgZ2lhbyB2aWVuLiBEb2kgdm9pIGdpYW8gdmllbiwgZGkg ZGF5IG1hIGtob25nIGJpZXQgDQpzYW5nIG5hbSBjbyB0aWVwIHR1YyBkYXkgbW9uIG5heSBraG9u Zywga2hpIGRvLCB0YW0gbHkga2hvbmcgYW4gdGFtIHNlIGRhbiBkZW4ga2hvbmcgDQpjaHUgdGFt IGRhdSB0dSBnaWFvIGFuIGxhdSBkYWksIGtob25nIHRvYW4gdGFtIHRvYW4geSBjaG8gY29uZyB2 aWVjIGhpZW4gdGFpLiBEb2kgdm9pIEhTIA0KY3VuZyB2YXksIG5hbSBuYXkgZHVvYyBob2Mgbmh1 bmcgY2h1YSBiaWV0IHNhbmcgbmFtIGNvIHRpZXAgdHVjIGhvYyBudWEga2hvbmcuIEhvbiANCm51 YSwgY2FjIG1vbiBob2MgdGhpIGRpZW0gdGh1b25nIGtob25nIGR1b2MgdGluaCB0cm9uZyBkaWVt IGNoaW5oIGtob2EgbmVuIEhTIA0KdGh1b25nIGl0IGNodSB0YW0gZGF1IHR1LiBDaHUga3kgdGhp IGRpZW0gY2hvIDEgQ1QgaG9jIHRodW9uZyBsYSAzIG5hbSwgc2F1IGRvIHBoYWkgY28gDQp0b25n IGtldCwgZGFuaCBnaWEuIE5ldSBjaHVhIGhvYW4gdGhpZW4gc2UgZGUgcmEgbmh1bmcgZGlldSBj aGluaCB2YSB0aWVwIHR1YyB0aHVjIGhpZW4gDQp0aGkgZGllbSB0aGVtIDEgbmFtIG51YSwgdHV5 IG5oaWVuIGtob25nIHRoZSBrZW8gZGFpIHF1YSA1IG5hbS4gDQoNClZpZWMgdG9uIHRhaSBjdW5n IGx1YyAzIGNodW9uZyB0cmluaCB0cm9uZyBjdW5nIDEgdHJ1b25nIGhvYyB2b2kgc3Uga2hhYyBi aWV0IHZlIGhvYyBwaGksIA0Kc2kgc28gbG9wLCBDVCBob2MgdmUgbWF0IHRhbSBseSBnaWFvIGR1 YyBzZSBnYXkgYW5oIGh1b25nIGxvbiBkZW4gc3UgcGhhdCB0cmllbiB0YW0gbHkgDQpjdWEgSFMs IG5oYXQgbGEgbyBsdWEgdHVvaSB0aWV1IGhvYy4gQ2FjIGVtIHNlIGNvIGNhbSBnaWFjLCBjbyBz dXkgbmdoaSBoaW5oIG5odSBtaW5oIA0KZGFuZyBiaSBkb2kgeHUga2hvbmcgY29uZyBiYW5nIHZv aSBjYWMgYmFuIGtoYWMuIiAtIFRoYWMgc2kgQnVpIFRoaSBUb2FuLCBUcnVvbmcgYm8gDQptb24g VGFtIGx5IGhvYyB0cnVvbmcgREggU2FpIEdvbiBiYXkgdG8uIA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDgyMzQ3MTAuYXNweCBEYW5nIE5n dXllbiAtIE1pbmggRHVuZyBUaHV5IE5nYW4gIDA4LzEwLzIwMTAgMjM6NDcgDQoNClRQIEhDTTog Q2FuIHF1YW4gbHkgZGUgY2hvbmcgbHVhIGRhbyBkdSBob2MgIA0KDQpTYXUga2hpIFRoYW5oIE5p ZW4gZGFuZyBsb2F0IGJhaSBUaHVjIGh1IGR1IGhvYyBkaW5oIGN1LCBuaGlldSBiYW4gZG9jIGxp ZW4gbGFjIGN1bmcgDQpjYXAgdGhlbSB0aG9uZyB0aW4uIFRyb25nIHNvIGRvLCBjbyB2dSB2aWVj IG1hbmcgZGF1IGhpZXUgbHVhIGRhbyBuaHVuZyBuZ3VvaSBtdW9uIA0KZGluaCBjdSBiYW5nIGNv biBkdW9uZyBkdSBob2MuIA0KDQpEb25nIDMuMDAwIFVTRCwgMiBuYW0gY2h1YSBkdW9jIHBob25n IHZhbiANCg0KVGllcCB4dWMgdm9pIHBob25nIHZpZW4gVGhhbmggTmllbiwgY28gSC5OZyAodGh1 b25nIHRydSB0YWkgdGluaCBWaW5oIExvbmcpIGNobyBiaWV0OiANClZhbyBraG9hbmcgdGhhbmcg My4yMDA4LCBxdWEgbmd1b2kgcXVlbiwgY28gTmcuIGR1b2MgZ2lvaSB0aGlldSBkZW4gQ29uZyB0 eSBkdSBob2MgDQpUaGFpIC0gT1NUIChjaGkgbmhhbmggNDQyIE5ndXllbiBUcmkgUGh1b25nLCBR LjEwLCBUUC5IQ00pLiBUYWkgZGF5LCBiYSBQaGFtIFRoaSANClF1eW5oIE5odSAtIFBobyBnaWFt IGRvYyBjb25nIHR5LCBkYSB0dSB2YW4gTmcuIGxhbSBobyBzbyBkdSBob2MgdGFpIE15IHZhIGh1 YSBoZW4gDQpzYXUga2hpIHJhIHRydW9uZyBsYW0gdmllYyB0aGkgY28gdGhlIHhpbiBkdW9jIGRp bmggY3UuIA0KDQpCYSBOaHUgdHUgdmFuIHJhbmcgTmcuIHBoYWkgbm9wIGhvIHNvIHRydW9jIGJh byBnb20gbW90IHNvIGdpYXkgdG8gY2FuIHRoaWV0IG5odSBob2MgDQpiYSwgYmFuZyB0b3Qgbmdo aWVwIFRIUFQsIGJhbmcgZGllbS4uLiBkZSB4aW4gdGh1IG1vaSBuaGFwIGhvYy4gVHJ1b2MgdGll biwgTmcuIHBoYWkgDQpub3Aga2hvYW4gdGllbiA1MDAgVVNEIGdvaSBsYSBwaGkgaGFuaCBjaGlu aCBkb3QgMS4gU2F1IGRvLCBOZy4gdGllcCB0dWMgZHVvYyB5ZXUgY2F1IA0Kbm9wIHRoZW0gMi41 MDAgVVNEIGRlIGxvIGNhYyB0aHUgdHVjLCBnaWF5IHRvIHBob25nIHZhbiBkZSB4dWF0IGNhbmgg KGdvaSBsYSBwaGkgaGFuaCANCmNoaW5oIGRvdCAyKS4gQmEgTmh1IGh1YSByYW5nIG5ldSBraG9u ZyB4aW4gZHVvYyB0aGkgdGh1YywgY29uZyB0eSBzZSB0cmEgdGllbiBsYWkuIFNhdSANCmtoaSBu b3AgZGF5IGR1IGdpYXkgdG8sIHRpZW4gYmFjLCBkZW4gbmF5LCBzYXUgaG9uIDIgbmFtLCBOZy4g dmFuIGNodWEgZHVvYyBnb2kgcGhvbmcgDQp2YW4gbGFuIG5hby4gDQoNClRoZW8gdGhvbmcgdGlu IHR1IFNvIEtlIGhvYWNoIC0gRGF1IHR1IFRQLkhDTSwgQ29uZyB0eSBPU1QgZHVvYyBkYW5nIGt5 IGR1b2kgdGVuIA0KQ29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAoZGlhIGNoaSAzNi8x QiBMYW0gU29uLCBQLjYsIFEuQmluaCBUaGFuaCksIG9uZyANClRyYW4gVGFuIFRoYWkgbGEgZ2lh bSBkb2MuIENvbmcgdHkgbmF5IHRob25nIGJhbyBnaWFpIHRoZSBuZ2F5IDkuMy4yMDEwLiBDb24g Y2hpIG5oYW5oIA0KQ29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAodGFpIDQ0MiBOZ3V5 ZW4gVHJpIFBodW9uZywgUS4xMCkgY3VuZyBkYSBnaWFpIHRoZSANCm5nYXkgMjkuMTIuMjAwOS4N Cg0KVHJ1b25nIGhvcCBjdWEgTmcuIGtob25nIHBoYWkgbGEgY2EgYmlldC4gVHJvbmcgY3VuZyBr aG9hbmcgdGhvaSBnaWFuIHR1IGRhdSBuYW0gMjAwOCANCmRlbiBraG9hbmcgdGhhbmcgNy4yMDA5 LCBuaGlldSBuZ3VvaSB0aW0gZGVuIENvbmcgdHkgT1NUIHZhIGN1bmcgZHVvYyB0dSB2YW4gY3Vu ZyBtb3QgDQpub2kgZHVuZy4gRGEgc28gY2FjIG5hbiBuaGFuIG5heSBkZXUgY2hvIGJpZXQgcGhh aSBkb25nIGhldCAyLjcwMCBVU0QgKHRydW9uZyBob3AgDQpjaGkgTmcuIGxhIDMuMDAwIFVTRCAt IFBWKSBwaGkgaGFuaCBjaGluaCB2YSB0aHUgdHVjLiBUaGFtIGNoaSBjbyBuZ3VvaSBjb24gZG9u ZyANCmtob2FuZyAzLjUwMCAtIDQuMDAwIFVTRCBwaGkgbmF5LiBUaGVvIHF1eSBkaW5oIGN1YSBj b25nIHR5LCBuZ29haSBwaGkgaGFuaCBjaGluaCAoc2UgDQpraG9uZyBkdW9jIHRyYSBsYWkgdm9p IGJhdCBjdSBseSBkbyBuYW8pIHZhIGNhYyBjaGkgcGhpIHhpbiB0aGkgdGh1Yywgbmh1bmcgbmd1 b2kgbm9wIGhvIA0Kc28gY29uIHBoYWkgZG9uZyB0aGVtIHR1IDQuODAwIC0gNi4wMDAgVVNEIHBo aSBkaWNoIHZ1IG5ldSBsYXkgZHVvYyB0aGkgdGh1Yy4gDQoNClRoZW8gaG8gc28gdGFpIENvIHF1 YW4gQ2FuaCBzYXQgZGlldSB0cmEgQ29uZyBhbiBRLjEwIChUUC5IQ00pLCBjbyBnYW4gMjAgbmd1 b2kgZGEgDQpndWkgZG9uIHRvIGNhbyB2ZSB2aWVjIGJpIGx1YSBkYW8ga2hpIGRhbmcga3kgZHUg aG9jIHRhaSBDb25nIHR5IE9TVC4gRGF5IGxhIGNvbmcgdHkgZG8gDQpvbmcgVHJhbiBUYW4gVGhh aSBkdW5nIHRlbiBkb25nIHRob2kgbGEgZ2lhbSBkb2MuIA0KDQpMYXkgdGllbiB4b25nLCBjb25n IHR5IGdpYWkgdGhlDQoNCk5odW5nIHRpbmggdGlldCBzYXUgbmF5IG1hIGNhYyBuYW4gbmhhbiB0 byBjYW8gZGVuIGNvIHF1YW4gY2FuaCBzYXQgZGlldSB0cmEgZGV1IGtoYSANCmdpb25nIG5oYXUu IFRoZW8gZG8sIHNhdSBtb3QgdGhvaSBnaWFuIGRhaSBraG9uZyB0aGF5IHRpbiB0dWMgKGtob2Fu ZyAyIG5hbSksIG5odW5nIA0Kbmd1b2kgbmF5IGxpZW4gbGFjIHZvaSBiYSBOaHUgZGUgaG9pIGNo byBybyB2YW4gZGUuIEhvYWMgbmh1bmcgbmd1b2kgZGEgZGkgcGhvbmcgdmFuIA0KdGFpIExhbmgg c3UgcXVhbiBNeSBuaHVuZyBuaGlldSBsYW4ga2hvbmcgbmhhbiBkdW9jIHRoaSB0aHVjLCBkYSB0 aW0gZGVuIGNvbmcgdHkgZGUgDQpydXQgbGFpIHRpZW4uIFR1IGRheSwgbW9pIGNodXllbiBiYXQg ZGF1IHZvIGxvLg0KDQpDaGkgTi4gLSBtb3Qgbmd1b2kgZGFuZyBreSBsYW0gdGh1IHR1YyBkdSBo b2MgdGFpIENvbmcgdHkgT1NULCBrZSBsYWk6ICJLaGkgbW9pIG5ndW9pIA0KZ29pIGRpZW4gY2hv IGJhIE5odSwgYmEgdGEgY2hvIGJpZXQgbXVvbiBnaWFpIHF1eWV0IHRoaSBsZW4gY29uZyB0eSBn YXAgb25nIFRoYWkgLSBnaWFtIA0KZG9jLiBOaHVuZyBDb25nIHR5IE9TVCBkYSBraG9uZyBjb24g aG9hdCBkb25nIHRhaSBkaWEgY2hpIGN1IHZpIGhpZW4gbmF5IG5vaSBkYXkgbGEgDQptb3Qgbmhh IGhhbmcgeWVuIHNhbyEgRGVuIGx1YyBjaHVuZyB0b2kgdGltIGRlbiBuaGEgb25nIFRoYWkgdGhp IG5ndW9pIG5oYSBjaG8gYmlldCANCkNvbmcgdHkgT1NUIGRhIGdpYWkgdGhlLCBtb2kgdmllYyBo YXkgbGllbiBsYWMgdm9pIGJhIE5odS4uLiIuDQoNClRpbmggdHJhbmcgZHVuIGRheSB0cmFjaCBu aGllbSBuYXkga2VvIGRhaSByYXQgbGF1IHZhIGNhIGJhIE5odSwgb25nIFRoYWkgaGllbiBuYXkg ZGV1IA0KbGFuIHRyb24gbmh1bmcgbmd1b2kgbGFtIHRodSB0dWMgZHUgaG9jLiBUcm9uZyBraGkg ZG8sIGhvYyBiYSBjaGluaCwgZ2lheSB0byBuaGEgZGF0Li4uIA0KZGV1IG5hbSB0cm9uZyB0YXkg YmEgTmh1IGtoaWVuIG5odW5nIG5ndW9pIG5vcCBkb24geGluIGR1IGhvYyBkZXUgcmF0IGtobyBr aGFuIHRyb25nIA0KdmllYyB4b2F5IHhvIG5odW5nIGNvbmcgdmllYyBraGFjLiBUaGFtIGNoaSwg Q29uZyB0eSBPU1QgY29uIGxhbSBtYXQgaG8gY2hpZXUgY3VhIA0KY2hpIE5nLiBuaHVuZyBraGkg bGllbiBsYWMsIGJhIE5odSBraG9uZyBjaGl1IGJvaSB0aHVvbmcgbWEgY29uIGxvbiB0aWVuZyB0 aGFjaCB0aHVjIA0KY2hpIE5nLiBkaSB0byBjYW8uIA0KDQpUdSBraGkgY2FjIG5hbiBuaGFuIGd1 aSBkb24gdG8gY2FvIGNobyBkZW4gbmF5LCBjbyBxdWFuIGNhbmggc2F0IGRpZXUgdHJhIGRhIGxh eSBsb2kga2hhaSANCmN1YSBjYWMgbmFuIG5oYW4sIGN1bmcgbHVjIHRyaWV1IHRhcCBiYSBOaHUs IG9uZyBUaGFpIGNhIHRoYXkgMyBsYW4gbmh1bmcgY2h1YSBsYW4gbmFvIDIgDQpuZ3VvaSBuYXkg Y28gbWF0ICghKS4gDQoNCkR1IGhvYyBjaHVhIGNoYWMgY28gdGhlIGRpbmggY3UNCg0KTGllbiBx dWFuIGRlbiBuaHVuZyB2YW4gZGUgeGluIHRoaSB0aHVjIGR1IGhvYyB2YSBkaW5oIGN1IHRhaSBV YywgQ2FuYWRhLCBkYWkgZGllbiAyIA0KbnVvYyBuYXkgZGEgY28gbmh1bmcgZ2lhaSB0aGljaCBy byByYW5nLiANCg0KVHJhIGxvaSBjYXUgaG9pIFVjIGNvIGNoaW5oIHNhY2ggbmhhcCBjdSBkYW5o IGNobyBkdSBob2Mgc2luaCBuaHUgdGhlIG5hbywgZGFpIGRpZW4gVmFuIA0KcGhvbmcgVGhpIHRo dWMgdmEgUXVvYyB0aWNoIFRvbmcgbGFuaCBzdSBxdWFuIFVjIFRQLkhDTSBjaG8gYmlldDogDQpD byBuaGlldSBkdSBob2Mgc2luaCBxdXlldCBkaW5oIG5vcCBobyBzbyB4aW4gZGluaCBjdSB0YWkg VWMgc2F1IGtoaSBkYSBob2FuIHRhdCBraG9hIA0KaG9jLiBEYXkgbGEgbW90IHF1eSB0cmluaCBo b2FuIHRvYW4gcmllbmcgYmlldCwgdmEga2hvbmcgY28gc3UgYmFvIGRhbSBuYW8gdmUgdmllYyBt b3QgDQpraGkgY28gZHVvYyB0aGkgdGh1YyBkdSBob2MgdGhpIGR1IGhvYyBzaW5oIHNlIGhvaSBk dSB0YXQgY2EgY2FjIGRpZXUga2llbiBkZSBkdW9jIGNoYXAgDQp0aHVhbiBkaW5oIGN1LiANCg0K RGluaCBjdSB0aGVvIGRpZW4gY28gdGF5IG5naGUgKEdlbmVyYWwgU2tpbGxlZCBNaWdyYXRpb24p IHBodSB0aHVvYyBjaHUgeWV1IHZhbyBuaHUgDQpjYXUgY3VhIHRoaSB0cnVvbmcgbGFvIGRvbmcg VWMuIFRpZXUgY2h1YW4gZGUgZHVvYyBjYXAgdGhpIHRodWMgZGluaCBjdSB0aGVvIGRpZW4gY28g dGF5IA0KbmdoZSBjbyB0aGUgdGhheSBkb2kgZGUgZGFwIHVuZyB2b2kgaG9hbiBjYW5oIGtpbmgg dGUgY3VhIFVjLiBUYXQgY2EgZHVvbmcgZG9uIHhpbiB0aGkgDQp0aHVjIGRpbmggY3UgdGhlbyBk aWVuIGNvIHRheSBuZ2hlIGRldSBwaGFpIGRhcCB1bmcgZGF5IGR1IG5odW5nIHRpZXUgY2h1YW4g cGh1IGhvcCBkZSANCnJhIHRyb25nIEx1YXQgRGkgdHJ1IFVjLCBraG9uZyBrZSBkdW9uZyBkb24g ZG8gdHJ1b2MgZGF5IGRhIHR1bmcgbyBVYyBoYXkgY2h1YS4gRGlldSANCnF1YW4gdHJvbmcgbWEg bmh1bmcgbmd1b2kgbWFuZyB0aGkgdGh1YyBkdSBob2MgY2FuIGx1dSB5IGxhIGJhdCBjdSBzdSB0 aGF5IGRvaSBuYW8gDQp0cm9uZyB0aWV1IGNodWFuIGNhcCB0aGkgdGh1YyBkaW5oIGN1IHRoZW8g ZGllbiBjbyB0YXkgbmdoZSBzZSBraG9uZyBhbmggaHVvbmcgZGVuIA0Kbmh1bmcgZGlldSBraWVu IGN1YSB0aGkgdGh1YyBkdSBob2MuIA0KDQpEdSBob2Mgc2luaCBraG9uZyBuZW4gY28gcXV5ZXQg ZGluaCBjaG9uIGx1YSBuZ2FuaCBob2MgY2hpIHZvaSBoeSB2b25nIGRhdCBkdW9jIG11YyANCmRp Y2ggZGluaCBjdSwgYm9pIHZpIGNodW9uZyB0cmluaCBkaW5oIGN1IHRoZW8gZGllbiBjbyB0YXkg bmdoZSBzZSB0aWVwIHR1YyB0aGF5IGRvaSB2YSANCmRpZXUgY2hpbmggZGUgcGh1IGhvcCB2b2kg bmh1IGNhdSBjdWEgbmVuIGtpbmggdGUgVWMuIA0KDQpUaG9uZyB0aW4gY2hpIHRpZXQgdmUgbmh1 bmcgeWV1IGNhdSBjdWEgdGhpIHRodWMgZGluaCBjdSB0aGVvIGRpZW4gY28gdGF5IG5naGUgY28g dHJlbiANCnRyYW5nIHdlYiBjdWEgQm8gTmhhcCBjdSB2YSBRdW9jIHRpY2ggKERJQUMpIHRhaSBk aWEgY2hpOiBodHRwOi8vd3d3LmltbWkuZ292LmF1L3NraWxsZWQvZ2VuZXJhbC1za2lsbGVkLW1p Z3JhdGlvbi8uDQoNCktoaSBkdSBob2Mgc2luaCBjbyB5IGRpbmggeGluIHRoaSB0aHVjIGR1IGhv YyBkZSBkaW5oIGN1IG8gQ2FuYWRhLCBjYW4gcGhhaSBsdXUgeSBuaHVuZyANCmRpZXUgc2F1OiAN Cg0KTmd1b2kgY28gdGhpIHRodWMgZHUgaG9jIGJhdCBidW9jIHBoYWkgdmUgbnVvYyBraGkgaGV0 IGt5IGhhbiBjaG8gcGhlcCAodGhvbmcgdGh1b25nIA0KdGhlbyBkdW5nIHRob2kgaGFuIGhvYW4g dGhhbmggY2h1b25nIHRyaW5oIGhvYykgdmEgaG8gcGhhaSBjYW0ga2V0IHR1YW4gdGh1IGRpZXUg a2llbiANCm5heSBraGkgbm9wIGRvbiB4aW4gdGhpIHRodWMgZHUgaG9jLiBTaW5oIHZpZW4gbnVv YyBuZ29haSBjbyB0aGUgdGhhbSBnaWEgbW90IHNvIGNodW9uZyANCnRyaW5oIGN1YSBDaGluaCBw aHUgQ2FuYWRhIGNobyBwaGVwIGhvIG8gbGFpIHZhIGxhbSB2aWVjIHRhaSBDYW5hZGEgc2F1IGto aSBob2FuIHRoYW5oIA0KY2h1b25nIHRyaW5oIGhvYywgdmEgdHJvbmcgbW90IHNvIHRydW9uZyBo b3AsIHNhdSBtb3QgdGhvaSBnaWFuIGhvIG5vcCBkb24geGluIGRpbmggY3UuIA0KTmV1IGtob25n IGR1IGRpZXUga2llbiBkYXAgdW5nIG5odW5nIGNodW9uZyB0cmluaCBuaHUgdmF5LCBzaW5oIHZp ZW4gbnVvYyBuZ29haSBiYXQgDQpidW9jIHBoYWkgcm9pIGtob2kgQ2FuYWRhIGtoaSBoZXQgaGFu IHRoaSB0aHVjIGR1IGhvYy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1Bh Z2VzLzIwMTAzOC8yMDEwMDkxNTAwMjcyMC5hc3B4IERhbmcgTmd1eWVuIDE1LzA5LzIwMTAgMDoy NyAgDQoNClRQIEhDTTogVGh1YyBodSAiZHUgaG9jIGRpbmggY3UiICANCiAgDQpEZSBjYW5oIHRy YW5oIHZhIHRodSBodXQgbmd1b2kgaG9jLCB0aG9pIGdpYW4gZ2FuIGRheSwgbmhpZXUgY29uZyB0 eSBkdSBob2MgZHVhIHJhIGNoaWV1IA0KcXVhbmcgY2FvIG1vaTogIkR1IGhvYyBkZSBkaW5oIGN1 IiEgDQoNCi0gQ29uZyB0eSBkdSBob2MgRHVjIFR1IChRLjEwIFRQLkhDTSkgaHVhIGhlbiB4aW4g dmlzYSBxdWEgTXkgZGluaCBjdSB0dSBTaW5nYXBvcmUgDQpjaG8gbmd1b2kgaG9jOyAgaG9jIHRh aSBTaW5nYXBvcmUsIGxhbSB2aWVjIHZhIGRpbmggY3UgdGFpIE15IHZvaSBjaHVvbmcgdHJpbmgg aG9jIHZhIA0KbGFtIHkgdGEgY2hpIHBoaSBjdWEgY2h1b25nIHRyaW5oIG5heSBsYSAxNC45MDAg VVNEOw0KDQotIENvbmcgdHkgSGllcCBBIC0gbW90IGNvbmcgdHkgY2h1eWVuIHZlIHRodW9uZyBt YWkgeGF5IGR1bmcgKFEuVGFuIEJpbmgsIFRQLkhDTSkgDQpub2kgY2FuIHR1eWVuIHNpbmggbmdh bmggRHVvYyBzYW5nIE15IGhvYyB2YSBkdW9jIGRpbmggY3Ugc2F1IGJhIG5hbSAobHV1IHk6IGJh byB0cm9uIA0KZ29pIHZhIGJhbyBuZ2hlKS4gVHJvbiBnb2kgY2hvIG1vaSB0aHUgdHVjIGxhIDM1 MDAwIFVTRCIsICAidGhlIHhhbmgiIGR1b2MgY2FtIGRvYW4gDQpzZSBkdW9jIGNhcCBzYXUga2hv YW5nIDQgdGhhbmcgbyBNeS4NCg0KLSBWZSBjaHVvbmcgdHJpbmggRGlyZWN0IE51cnNlLCBoaWVu IG5heSBjdW5nIGNvIENvbmcgdHkgY28gcGhhbiBkYXUgdHUgTmd1b24gbmhhbiB0YWkgDQpxdW9j IHRlIGNoYXUgQSAoQUlUUkkpIHJhbyB0dXllbiBzaW5oLiBWZSBob2MgcGhpLCBob2MgYm9uZywg dXUgZGFpLCBodWEgaGVuLi4uIGN1YSANCmNodW9uZyB0cmluaCwgY29uZyB0eSBuYXkgZ2lvaSB0 aGlldSBjdW5nIHR1b25nIHR1IG5odSBDb25nIHR5IGR1IGhvYyBEdWMgVHUuIA0KDQpCbyBwaGFu IHZpc2EgY3VhIExhbmggc3UgcXVhbiBNeSB0YWkgVFAuSENNIGtoYW5nIGRpbmg6ICJDYWMgY29u ZyB0eSB0dSBuaGFuIHh1YyANCnRpZW4gY2FjIGNodW9uZyB0cmluaCBkdSBob2MgdGFpIE15IGto b25nIHRoZSBkYW0gYmFvIHZpZWMgY2FwIHZpc2EgbGFtIHZpZWMgaGF5IGRpbmggDQpjdSBzYXUg a2hpIGhvYW4gdGF0IGtob2EgaG9jLiBDYWMgbG9haSB2aXNhIG5heSBwaGFpIGR1b2MgY2hhcCB0 aHVhbiBib2kgQ2hpbmggcGh1IE15IA0KdmEgY28gZ2lvaSBoYW4gdmUgc28gbHVvbmcuIENhYyBk dW9uZyBkb24geGluIHZpc2Egc2luaCB2aWVuIChTVikgcGhhaSBjaHVuZyB0byBkdW9jIDMgDQpk aWV1OiBsYSBuaHVuZyBTViBkaWNoIHRodWMsIHBoYWkgY28ga2hhIG5hbmcgY2hpIHRyYSBjaG8g cXVhIHRyaW5oIGhvYyB0YXAgdmEgY28ga2UgDQpob2FjaCB0cm8gdmUgVk4uIE5ldSBTViBraG9u ZyB0aGUgdGh1eWV0IHBodWMgZHVvYyB2aWVuIGNodWMgbGFuaCBzdSB2ZSBiYXQga3kgdmFuIGRl IA0KbmFvIHRyb25nIDMgZGlldSBuYXksIHRoZW8gcXV5IGRpbmggY3VhIGx1YXQgcGhhcCBNeSwg dGhpIHZpZW4gY2h1YyBsYW5oIHN1IGtob25nIHRoZSANCmNhcCB2aXNhIGNobyBuZ3VvaSBkbyIu IA0KDQpUcm9uZyBraGkgQm8gcGhhbiB2aXNhIGN1YSBMYW5oIHN1IHF1YW4gTXkgdGFpIFRQLkhD TSBkYSBraGFuZyBkaW5oIG5odSB2YXksIG5oaWV1IA0KY29uZyB0eSBkdSBob2MgdmFuIGNhbSBk b2FuICJkYW0gYmFvIHhpbiBkdW9jIHZpc2EiLg0KDQooVHJ1bmcgdGFtIHR1IHZhbiBnaWFvIGR1 YyBNeSAoRWR1Y2F0aW9uVVNBKSBkYSBjbyB0YWkgSGEgTm9pIHZhbyBuZ2F5IDEzLjkgdmEgdHJ1 b2MgDQpkbywgbmdheSA1LjggdGFpIFRQLkhDTTsgbGEgbmd1b24gdGhvbmcgdGluIGNoaW5oIHRo dWMgY3VhIENoaW5oIHBodSBNeSB2ZSBkdSBob2MgdGFpIA0KTXkgdmEgY3VuZyBjYXAgdGhvbmcg dGluIG1pZW4gcGhpLCBjaGluaCB4YWMsIGtob25nIHRoaWVuIHZpIHZlIGNhYyBjbyBob2kgaG9j IHRhcCBjaG8gDQpTViB2YSBwaHUgaHV5bmggVmlldCBOYW0uIA0KTmdvYWkgcmEsIEJvIHBoYW4g dmlzYSBjdWEgTGFuaCBzdSBxdWFuIE15IHRhaSBUUC5IQ00gY3VuZyBjaG8gYmlldCBtb3Qgc28g dHJ1bmcgDQp0YW0gdHUgdmFuIGR1IGhvYyB0aGluaCB0aG9hbmcgY28gdGh1IHBoaSBraGkgY3Vu ZyBjYXAgdGhvbmcgdGluIGNobyBTVi4gTmh1bmcgdGhvbmcgDQp0aW4gdmUgdmlzYSBkYSBjbyB0 cmVuIHRyYW5nIHdlYiBodHRwOi8vaG9jaGltaW5oLnVzY29uc3VsYXRlLmdvdi9zdHVkZW50L3Zp c2EuaHRtbC4gU1YgDQpraG9uZyBjYW4gcGhhaSB0cmEgdGllbiBjaG8gbmh1bmcgdGhvbmcgdGlu IHZlIHZpc2EgbWEgY2FjIHRydW5nIHRhbSB0dSB2YW4gY3VuZyBjYXAgdmkgDQpuaHVuZyB0aG9u ZyB0aW4gbmF5IGR1b2MgdG9uZyBsYW5oIHN1IGN1bmcgY2FwIG1pZW4gcGhpIHRyZW4gd2Vic2l0 ZSkgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9Ib2MtZ2lhLWNhcC1iYW5nLXRoYXQtdHJh bi1sYW4vNDAyMjc4MTEvMTU3LyAwNS8xMS8yMDA3LCAwNjozMCBHTVQrNyANCg0KVFAuSENNOiAi SG9jIGdpYSwgY2FwIGJhbmcgdGhhdCIgdHJhbiBsYW4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzNy8yMDEwMDkwNjIzMDYxNC5hc3B4IERhbmcgTmd1eWVu IC0gVGhpZW4gTG9uZyAwNi8wOS8yMDEwIDIzOjA2IA0KDQpUUCBIQ006IEhvYyBwaGkgdGFuZywg Y2hhdCBsdW9uZyBjaHVhIHRhbmcgLSBUaGlldSBodXQgdHJhbSB0cm9uZyBnaWFuZyB2aWVuIA0K DQpCYWkgdG9hbiB2ZSBob2MgcGhpIChIUCkgdmEgY2hhdCBsdW9uZyBjYW5nIHRoYW5nIG5oYXQg a2hpIHhldCBkZW4geWV1IHRvIG5oYW4gbHVjLiBMdWMgDQpsdW9uZyBnaWFuZyB2aWVuIGJhYyBE SC1DRCBjaHVhIGR1IG1hbmgga2hpZW4gbG8gdHJpbmggSFAgZGkgY3VuZyBjaGF0IGx1b25nIGto b25nIA0KYmlldCBiYW8gZ2lvIG1vaSBzb20gc29uZyBoYW5oLiANCg0KNjQgc2luaCB2aWVuL2dp YW5nIHZpZW4gDQoNClRoZW8gYmFvIGNhbyBjdWEgVXkgYmFuIFRodW9uZyB2dSAoVUJUVikgUXVv YyBob2kgdHJvbmcgY2h1eWVuIGtoYW8gc2F0IGRhdSBuYW0gDQoyMDEwIHRhaSBjYWMgdHJ1b25n IERILCB0dSBuYW0gMTk4NyBkZW4gMjAwOSBzbyBzaW5oIHZpZW4gKFNWKSB0cmVuIGNhIG51b2Mg dGFuZyAxMyANCmxhbiBuaHVuZyBzbyBnaWFuZyB2aWVuIChHVikgY2hpIHRhbmcgMyBsYW4sIGRv IGRvIHR5IGxlIFNWL0dWIHF1YSBjYW8gc28gdm9pIHF1eSBkaW5oLiANCkJvIEdELURUIHF1eSBk aW5oIDI4IFNWL0dWIG5odW5nIG8gbmhpZXUgdHJ1b25nLCB0eSBsZSBuYXkgbGVuIHRvaSA0MCwg dGhhbSBjaGkgY28gDQp0cnVvbmcgZGVuIHRyZW4gNjAuIA0KDQpUcm9uZyBtb3QgbGFuIHZlIHRo YW0gdHJ1b25nIERIIENvbmcgbmdoaWVwIFRQLkhDTSwgUGhvIHRodSB0dW9uZyBOZ3V5ZW4gVGhp ZW4gDQpOaGFuIGRhdCB2YW4gZGU6ICJMYW0gc2FvIGRlIGRhbSBiYW8gY2hhdCBsdW9uZyBkYW8g dGFvIGtoaSBkb2kgbmd1IEdWIHF1YSBtb25nIHNvIA0Kdm9pIHNvIGx1b25nIFNWPyBEZSBwaGF0 IHRyaWVuIGRvaSBuZ3UgR1YgdGhpIHJhdCBraG8sIG5odW5nIGRlIHBoYXQgdHJpZW4gc28gbHVv bmcgU1YgDQp0aGkgZGUiLiBQaG8gdGh1IHR1b25nIGNvbiBiYW4ga2hvYW4gdmUgdHkgbGUgU1Yv R1YgY3VhIHRydW9uZywgdGluaCB0cnVuZyBiaW5oIG1vaSBHViANCmtlbSBnYW4gNDggU1YuIFRo b2kgZGllbSBkbywgdHJ1b25nIERIIENvbmcgbmdoaWVwIFRQLkhDTSBjbyBob24gNTIuMDAwIFNW IGNhYyANCmhlIHZvaSAxLjUwMCBjYW4gYm8gdmllbiBjaHVjLCB0cm9uZyBkbyBHViBjbyBodXUg Y28gMS4wODUgbmd1b2kuIENvIDEyIEdWIGxhICBHUywgDQpQR1MsIDExMCBHViBsYSAgVFMgdmEg bmdoaWVuIGN1dSBzaW5oIChOQ1MpLiBIaWVuIG5heSB0cnVvbmcgY28gdHJlbiA4MC4wMDAgU1Yg dGhlbyANCmhvYyBjYWMgYmFjIGRhbyB0YW8gdm9pIDE1IEdTLCBQR1MsIDExMCBUUyB2YSBOQ1M7 IDgwMCB0aGFjIHNpIHZhIGhvYyB2aWVuIGNhbyBob2MuIA0KTmh1IHZheSwgc2F1IDMgbmFtLCBz byBTViBkYSB0YW5nIHZvdCBsZW4gMjguMDAwIG5ndW9pIG5odW5nIHRydW9uZyBjaGkgdGhlbSBk dW9jIDMgDQpHViBjbyBob2MgaGFtIEdTLCBQR1MsIGdpdSBuZ3V5ZW4gc28gbHVvbmcgR1YgY28g dHJpbmggZG8gVFMgdmEgTkNTLiBUcm9uZyBraGkgZG8sIA0KSFAgY3VhIERIIENvbmcgbmdoaWVw IFRQLkhDTSBkYSB0YW5nIHR1IG11YyB0cnVuZyBiaW5oIDI1MC4wMDBkL3RoYW5nIChuYW0gMjAw NykgDQpsZW4gNDAwLjAwMGQvdGhhbmcgKG5hbSAyMDA5KSwgbHVvbiBjYW8gaG9uIG11YyBxdXkg ZGluaCBraG9hbmcgMjUgLSAzMCUuIA0KDQpZIGtpZW46DQoNCkNhbiBjb25nIGtoYWkgdm9pIFNW DQoqICJUYW5nIEhQIHRoaSBwaGFpIHhldCBkZW4gbmhpZXUgbWF0LCB2YSBxdWFuIHRyb25nIGxh IHR1aSBlbSBjbyBkaWV1IGtpZW4gaG9jIHRvdCBob24gDQpoYXkga2hvbmcuIFNhcCB0b2ksIFNW IG5nYW5oIFkgRHVvYyBwaGFpIGRvbmcgbXVjIHRyYW4gaG9jIHBoaSBjYW8gbmhhdC4gU28gbHVv bmcgDQpTViBsaWVuIHR1YyB0YW5nLCB0dWkgZW0gdGh1YyB0YXAgdGFpIGNhYyBiZW5oIHZpZW4g dHJvbmcgdGluaCB0cmFuZyBxdWEgdGFpIGtlbyBkYWkgbWF5IA0KbmFtIG5heSBraG9uZyB0aGF5 IGRvaS4gTmV1IHRhbmcgSFAsIG5oYSB0cnVvbmcgY3VuZyBwaGFpIHRoYXkgZG9pIG1vdCBzbyBx dXllbiBsb2kgDQp1dSB0aWVuIGNobyBTViIuIE5ndXllbiBUaGkgTXkgTG9hbiAoU1YgbmFtIDMg a2hvYSBZIGRhIGtob2EsIERIIFkgRHVvYyAgVFAuSENNKSANCg0KKiAiS2hpIHRhbmcgSFAsIGNh aSBtYSBjaHVuZyBlbSBjYW4gbGEgdHJ1b25nIGNvbmcga2hhaSBjaGkgcGhpIGhvcCBseSwgY29u ZyBibyBjaGllbiANCmx1b2MgcGhhdCB0cmllbiwgbmhhdCBsYSBjaGF0IGx1b25nIGdpYW5nIGRh eS4gSGllbiB0YWksIG5oaWV1IGtoaSBlbSB2YSBjYWMgYmFuIHZhbiBjaHVhIA0KaGFpIGxvbmcg dmUgR1YuIEtoaSBHViBnaWFuZywgcmF0IG5oaWV1IFNWIGtob25nIGhpZXUgZHVvYyIuIE5ndXll biBUaGkgT2FuaCAoU1YgDQpuYW0gdGh1IDMga2hvYSBWYW4gaG9jIHZhIE5nb24gbmd1LCB0cnVv bmcgREggS2hvYSBob2MgeGEgaG9pIHZhIE5oYW4gdmFuIC0gREggDQpRdW9jIGdpYSBUUC5IQ00p IA0KDQpOaGlldSB0cnVvbmcgREgga2hhYyBjdW5nIHRyb25nIHRpbmggdHJhbmcgdHVvbmcgdHUu IFRoZW8gYmFvIGNhbyBjdWEgdHJ1b25nIERIIFNhaSANCkdvbiB2b2kgZG9hbiBraWVtIHRyYSBj dWEgVUJUViBRdW9jIGhvaSB2YW8gdGhhbmcgMS4yMDEwLCB0cnVvbmcgY28ga2hvYW5nIDIyLjAw MCANClNWIHZvaSAzNzEgR1YuIFR1eSBuaGllbiwgdGhlbyBiYW8gY2FvICJCYSBjb25nIGtoYWki IChEaWV1IGtpZW4gZGFvIHRhbywgcXV5IG1vIGRhbyANCnRhbzsgTmd1b24gbHVjIChzbyBsdW9u ZywgdHJpbmggZG8gZ2lhbyB2aWVuKTsgVGFpIGNoaW5oIHRodSAtIGNoaSkgdHJlbiB3ZWJzaXRl IGN1YSANCnRydW9uZywgc28gbHVvbmcgR1YgY2hpIGNvICAzNDMgbmd1b2kgKGNodWEga2UgMTQx IEdWIHRoaW5oIGdpYW5nKSwgbmh1IHZheSwgdHkgbGUgDQpTVi9HViBsYSAgNjQvMS4gDQoNClRo aWV1IGdpYW5nIHZpZW4gY2hhdCBsdW9uZyBjYW8NCg0KVHJ1b2MgdGh1YyB0cmFuZyB0aGlldSBo dXQgZG9pIG5ndSBHViwgY2FjIHRydW9uZyBESCBwaGFpIGxpZW4gdHVjIHR1eWVuIG5ndW9pLiBU dSBuYW0gDQoyMDA3IGRlbiBuYXksIHRydW9uZyBESCBMdWF0IFRQLkhDTSBsdW9uIHRob25nIGJh byB0dXllbiBkdW5nIEdWLiBHYW4gY3VvaSBuYW0gDQoyMDA5LCB0cnVvbmcgdGhvbmcgYmFvIHR1 eWVuIGRlbiA0NSBHViBkYXkgY2FjIG1vbiBjaHV5ZW4gbmdhbmguIE5nb2FpIGNhYyB1bmcgdmll biANCmNvIGhvYyB2aSBUUywgdGhhYyBzaSBkdW9jIHV1IHRpZW4geGV0IHR1eWVuLCBjYWMgU1Yg Y3VhIHRydW9uZyBjaHVhIGR1b2MgY2FwIGJhbmcgdG90IA0KbmdoaWVwLCBjbyB0aGUgbm9wIGdp YXkgY2h1bmcgbmhhbiB0b3QgbmdoaWVwIHRhbSB0aG9pIGRlIHRoaSB0dXllbiBHVi4NCg0KTmh1 bmcgdHJ1b25nIGNvIG1vIGNhYyBuZ2FuaCBtb2kgY2FuZyBwaGFpIGxpZW4gdHVjIHR1eWVuIEdW IGRlIGRhcCB1bmcgbmh1IGNhdSANCmdpYW5nIGRheS4gRG9uIGN1IG5odSB0aGFuZyA2IHZ1YSBx dWEsIGJvIG1vbiBEaWEgbHkga2luaCB0ZSB2YSBQaGF0IHRyaWVuIHZ1bmcsIGtob2EgDQpEaWEg bHksIHRydW9uZyBESCBLaG9hIGhvYyB4YSBob2kgdmEgTmhhbiB2YW4gKERIIFF1b2MgZ2lhIFRQ LkhDTSkgZGEgY28gdGhvbmcgDQpiYW8gdHV5ZW4gR1YuIA0KDQpUaHVjIHRyYW5nIG5heSBjb24g bmdoaWVtIHRyb25nIGhvbiBvIGNhYyB0cnVvbmcgREggdnVuZy4gQ2FjIHRydW9uZyBuaHUgREgg VGllbiANCkdpYW5nLCBBbiBHaWFuZyBsaWVuIHR1YyBkYW5nIHR1eWVuIGR1bmcgR1YgY3VhIHJh dCBuaGlldSBuZ2FuaC4gDQoNCk5nYXkgY2EgdHJ1b25nIGxvbiB2YSBjbyBkb2kgbmd1IEdWIHRy aW5oIGRvIGNhbyBuaHUgREggS2hvYSBob2MgdHUgbmhpZW4gKERIIFF1b2MgDQpnaWEgVFAuSENN KSBjdW5nIHBoYWkgdGh1b25nIHh1eWVuIHRpbSB0aGVtIEdWLiBQR1MtVFMgRHVvbmcgQW5oIER1 YywgUGhvIGhpZXUgDQp0cnVvbmcgdHJ1b25nLCBjaG8gYmlldDogIlRpbmggdGhlbyB0aWV1IGNo aSBjdWEgQm8gR0QtRFQgdmUgdHkgbGUgU1YvR1YgdGhpIHRydW9uZyANCmRhcCB1bmcgeWV1IGNh dSBuaHVuZyB2YW4gcGhhaSB0dXllbiBsaWVuIHR1YyBkZSB0aHUgaHV0IHRoZW0gbmhhbiBsdWMg Y2hhdCBsdW9uZyBjYW8uIA0KSGllbiBzbyBsdW9uZyBHViBjdWEgdHJ1b25nIGtob25nIHRoaWV1 IG5oaWV1IG5odW5nIGNoYXQgbHVvbmcgdmFuIGNodWEgZGF0IHRhbSBjdWEgDQptb3QgdHJ1b25n IGNvIHRoZSBjYW5oIHRyYW5oIHZvaSB0aGUgZ2lvaSIuIE9uZyBEdWMgZ2lhaSB0aGljaCB0aGVt IHZlIGNoYXQgbHVvbmcgDQpkb2kgbmd1IEdWOiAiTyBuaGlldSB0cnVvbmcsIHNvIGx1b25nIEdW IGRhIHRhbmcgaG9uIHJhdCBuaGlldSBzbyB2b2kgMTAgbmFtIHRydW9jIA0Kbmh1bmcgY2hhdCBs dW9uZyB2YW4ga2hvbmcgdGFuZyBkYW5nIGtlLiBUcm9uZyBraGkgZG8sIGNhYyBHViBkYXUgZGFu IHBoYW4gbG9uIGRhIG5naGkgaHV1Ii4NCg0KVGhlbyBiYW8gY2FvIGN1YSBVQlRWIFF1b2MgaG9p IGRhdSBuYW0gMjAxMCwgY2hpIGNvIDUwJSBHViBjYWMgdHJ1b25nIERIIGhpZW4gbmF5IGRhdCB0 cmluaCBkbyBzYXUgREguIA0KDQpodHRwOi8vd3d3LmNhbmQuY29tLnZuL3ZpLVZOL3BoYXBsdWF0 LzIwMDgvMy84NjQ5MS5jYW5kIDA5OjE4OjAwIDA3LzAzLzIwMDgNCg0KVFAgSENNOiA3IHRyaWV1 IGRvbmcgbGEgY28gYmFuZyBkYWkgaG9jLi4uIGdpYSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL3Bza3MvMjAxMDA5L0Nob2FuZy12b2ktdGh1LW5oYXAtZ2lhbmctdmllbi1EYWktaG9jLTkz NTU4MS8gQ2FtIFF1eWVuIDA3OjUxLCAxNS8wOS8yMDEwIChHTVQrNykgDQoNClRQIEhDTTogTmhp ZXUgZ2lhbmcgdmllbiBjbyB0aHUgbmhhcCByYXQgY2FvIG5odW5nIGtob25nIGtlIGtoYWkgdmEg bm9wIHRodWUgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAz MS8yMDEwMDcyOTIyNTgyMi5hc3B4IERhbmcgTmd1eWVuIDI5LzA3LzIwMTAgMjI6NTggDQoNClRQ IEhDTTogTGFwIGxvIHR1eWVuIHNpbmggLSBLaG9uZyBjbyBwaGFwIG5oYW4gdmFuIHR1eWVuIHNp bmghICANCg0KTW90IG5ob20gbmd1b2kgdHUgbGFwIHJhIG1vdCB0cnVuZyB0YW0ga2hvbmcgY28g cGhhcCBuaGFuLCByb2kgdHUgbGllbiBrZXQgdm9pIGNhYyB0cnVvbmcgbmdoZSBkZSB0dXllbiBz aW5oLCBkYW8gdGFvIHZhIGNhcCBiYW5nIHR1IGJhYyBUQyBjaG8gZGVuIENEIG1hIGtob25nIHF1 YSBiYXQgY3UgY28gcXVhbiBxdWFuIGx5IG5hby4uLiANCg0KRG8gbGEgVHJ1bmcgdGFtIFRpbiBo b2MgdmEgUXVhbiBseSBraW5oIHRlIE1hSVQgKE1hSVQpIG8gMTIyIC0gMTI0IEJhdSBDYXQgMiwg UC4xMiwgUS5UYW4gQmluaCwgVFAuSENNOyBNYUlUIGRhIGNvIG5oaWV1IGxhbiBtYW8gZGFuaCBs YSB0cnVjIHRodW9jIFNvIExELVRCLVhIIHZhIHRydW9uZyBUQyBLaW5oIHRlIGt5IHRodWF0IFF1 YW5nIFRydW5nLiBIaWVuIE1hSVQgZGFuZyBkYW8gdGFvIHRyYWkgcXV5IGRpbmggdm9pIHNvIGx1 b25nIGhvYyBzaW5oIGtoYSBkb25nLg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kv MjAwOTEwL0R1bmctZGUtY2h1eWVuLWdpYS1ub2ktbmh1LWNvLWRhbS1iaS1ib25nLTg3Mjk2Ny8g MDg6NDgsIDEwLzEwLzIwMDkgKEdNVCs3KQ0KDQpUUCBIQ006IFVuIHRhYyBnaWFvIHRob25nIHRh aSBUUCBIQ00gLSBOaGEga2hvYSBob2MgbmhpZXQgdGluaCBkdWEgcmEgbmhpZXUgcGh1b25nIGFu IA0KY2hvbmcgdW4gdGFjIGdpYW8gdGhvbmcgbmh1bmcgdGhhdCB2b25nIHZpIGNhYyBraWVuIG5n aGksIGRlIHh1YXQgdHVhIG5odSAiY28gZGFtIGJpIGJvbmciLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM1LzIwMTAwODI4MDAyNjU0LmFzcHggTi5UcmFu IFRhbSAyOC8wOC8yMDEwIDA6MjYgDQoNClRQIEhDTTogRG9hbmggbmdoaWVwIGtldSBraG8gdmkg Z2lhbyB0aG9uZyAgDQogIA0KVW4gdGFjIGdpYW8gdGhvbmcgbGEgdmFuIGRlIG1hIGRvYW5oIG5n aGllcCAoRE4pIE5oYXQgQmFuIGJ1YyB4dWMgbmhhdCB0cm9uZyBidW9pIGdhcCBnbyANCmxhbmgg ZGFvIFVCTkQgVFBIQ00gdmEgY2FjIHNvLCBiYW4gbmdhbmggZGllbiByYSB2YW8gaG9tIHF1YSAo MjcuOCkuIA0KRGF5IGN1bmcgbGEgYnVjIHh1YyBjaHVuZyBjdWEgY29uZyBkb25nIEROIG8gVk4u IA0KDQotIFZhbiBuYW4gdW4gdGFjIGdheSB0aGlldCBoYWkgbG9uIA0KDQpodHRwOi8vdHVvaXRy ZS52bi9DaGluaC10cmktWGEtaG9pLzM4NjcwNC9NdWEtZGF1LW11YS1UUEhDTS1uZ2FwLTIwLWRp ZW0uaHRtbDI3LzA2LzIwMTAsIDA3OjU1IChHTVQrNykgDQoNClRQIEhDTTogTXVhIGRhdSBtdWEs IG5nYXAgMjAgZGllbSANCg0KKENoaWV1IDI2LTYsIG1vdCBjb24gbXVhIGtlbyBkYWkga2hvYW5n IDQwIHBodXQgZGEgbGFtIG5oaWV1IHR1eWVuIGR1b25nIG8gVFAuSENNIGJpIG5nYXAgbmFuZy4p IA0KDQpodHRwOi8vd3d3LnBodW51b25saW5lLmNvbS52bi8yMDEwL1BhZ2VzL3N1dC1uZW4tbmhh LWhhaS1uZ3VvaS1iaS10aHVvbmcuYXNweCAyMi8wMS8yMDEwIDg6MzcgIA0KDQpUUCBIQ006IFN1 dCBuZW4gbmhhLCBoYWkgbmd1b2kgYmkgdGh1b25nIA0KDQoobmdvaSBuaGEgZHVvYyB4YXkgZHVu ZyBzYXQgbWVwIGN1YSBtb3Qgbmhhbmgga2VuaCBOaGlldSBMb2MgLSBUaGkgTmdoZSB2YSBkYXkg bGEga2h1IHZ1YyBjbyBuZ3V5IGNvIHN1dCBsdW4gcmF0IGNhby4pDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi94YWhvaS8yMDEwMDEvQ2hldC1kdW5nLXRyZW4tZHVvbmctdmUtbmhhLTg4OTgy Mi8gMjE6MzksIFRodSBTYXUsIDE1LzAxLzIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006ICJjaGV0IGR1 bmciIHRyZW4gZHVvbmcgdmUgbmhhDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdz L1BhZ2VzLzIwMTA0MC8yMDEwMTAwMTAxMDg1MC5hc3B4IFRoYW5oIFR1bmcgIDAxLzEwLzIwMTAg MTowOCANCg0KVFAgSENNOiAzMSBjb25nIG5oYW4gYmkgbmdvIGRvYyB0YXAgdGhlICANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM4LzIwMTAwOTE0MTgyNzQ4 LmFzcHggMTQvMDkvMjAxMCAxODoyNyANCg0KVFAgSENNOiBUYXhpIGxvdCAiaG8gdm9pIiBkbyBs byBjb3QgZGUgbGFpICANCg0KQ2hpZXUgMTQuOSB0YWkgZGF1IGhlbSAzODYgTGUgVmFuIFN5LCBQ LjE0LCBRLjMgKFRQLkhDTSksIHRyb25nIGNvbiBtdWEgdGFtIHRhIGtlbyBkYWksIG1vdCBjaGll YyB4ZSB0YXhpIGRhbmcgZGkgdHJlbiBkdW9uZyBkYSBiYXQgbmdvIGxvdCB2YW8gImhvIHZvaSIg ZGF5IG51b2MsIHJvbmcgZ2FuIDEwbTIgdmEgc2F1IGhvbiAzbQ0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzUvMjAxMDA4MjgwMDI2NTQuYXNweCBOLlRyYW4g VGFtIDI4LzA4LzIwMTAgMDoyNiANCg0KVFAgSENNOiBUYXhpIHRhbyBhbiB0dW9uZyB4YXUgKCJj byBxdWF5IiwgImNoYXQgY2hlbSIgdGllbiBjdWEga2hhY2gpIA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzcvMjAxMDA5MDYxOTA1NDEuYXNweCBOZ3V5ZW4g TWkgMDYvMDkvMjAxMCAxOTowNSANCg0KVFAuSENNOiBIb2F0IGRvbmcgdmFuIHRhaSBiYW5nIHRh eGkgZGFuZyBjbyBjaGlldSBodW9uZyBkaWVuIGJpZW4gcGh1YyB0YXAgZGEgeHVhdCANCmhpZW4g dGluaCB0cmFuZyBjYWMgdGFpIHhlIHRheGkgbXVhIGNvbmcgY3UgZGlldSBraGllbiB0dSB4YSwg bmhhbSBraWNoIHh1bmcgbGFtIGRvbmcgaG8gDQp0aW5oIGN1b2MgY2hheSBuaGFuaCBob24gZGUg ZGUgZGFuZyAibW9jIHR1aSIga2hhY2ggaGFuZy4NCkNhYyBsb2FpIGNvbmcgY3UgZGlldSBraGll biB0dSB4YSBuYXkgZHVvYyBiYXkgYmFuIHJvbmcgcmFpIHRhaSBjYWMgY2hvIGtpbSBraGkgZGll biBtYXkgDQpvIFRQLkhDTSB2b2kgZ2lhIGNoaSBraG9hbmcgMjUwLjAwMCBkb25nL2NhaS4gDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA1MC8yMDEwMTIxMjAw MDIxMS5hc3B4IE4uRGluaCBNdW9pIC0gTi5UcmFuIFRhbSAxMi8xMi8yMDEwIDA6MDIgDQoNClRQ IEhDTTogS2hvbiBraG8gdmkgdGF4aSBzYW4gYmF5IC0gTW90IG5nYW4gbGUgbW90IGtpZXUgaGFu aCBoYSAgDQogIA0KVGF4aSBob2F0IGRvbmcgdGFpIHNhbiBiYXkgVGFuIFNvbiBOaGF0LCBUUC5I Q00gLSBBbmg6IERhbyBOZ29jIFRoYWNoIA0KDQpUaG9pIGdpYW4gZ2FuIGRheSwgcmF0IG5oaWV1 IGhhbmgga2hhY2ggdGhhbiBwaGllbiB2ZSB0aW5oIHRyYW5nIGJhdCBjaGV0IGN1YSBraG9uZyBp dCANCnRheGkgeHVhdCBwaGF0IHR1IHNhbiBiYXkgVGFuIFNvbiBOaGF0IChUU04pLCBUUC5IQ00u IA0KDQoxMDAxIGtpZXUgaGFuaCBoYQ0KDQpWdWEgcXVhLCBvbmcgTmd1eWVuIFZhbiBCb25nIC0g UGhvIGdpYW0gZG9jIENvbmcgdHkgY28gcGhhbiB0YXUgY2FvIHRvYyBWaSBOYSwgDQpwaGFuIGFu aCB2b2kgVGhhbmggTmllbiwgdG9pIDIwLjksIGRhcCBjaHV5ZW4gYmF5IHR1IEhhaSBQaG9uZyAt IFRQLkhDTSwgZGVuIHNhbiBiYXkgDQpUU04gbHVjIDIwIGdpbyAzMCwgb25nIGR1b2MgY2FjIG5o YW4gdmllbiB0cm9uZyBzYW4gYmF5IGh1b25nIGRhbiBsZW4gbW90IGNoaWVjIHRheGkgDQptYW5n IGJpZW4gc28gNTFMRC05MTEwIHZvaSBzbyB0b25nIGRhaSBsaWVuIGxhYyAoMDgpIDM4IDIxIDIx IDIxIChoYW5nIENvbWZvcnQgU2F2aWNvKS4gDQoNCktoaSBvbmcgY2h1YW4gYmkgbGVuIHhlLCB0 YWkgeGUgbW90IG11YyB5ZXUgY2F1IG9uZyBwaGFpIGJhbyB0cnVvYyBkaWEgZGllbSBkZSBhbmgg Z29pIA0KdmUgdG9uZyBkYWkgY3VhIGhhbmcgdGhvbmcgYmFvLiBTYXUga2hpIGxlbiB4ZSwgdHJv bmcgbHVjIHRyYW5oIGx1YW4gdmUgdmllYyBuYXksIHRhaSB4ZSANCmdvaSB2ZSBoYW5nIHhpbiBj aGkgZGFvLiAiVG9pIG5naGUgdHJlbiBibyBkYW0gdG9uZyBkYWkgZ2lvbmcgZGFuIG9uZyBob2kg dGFpIHhlIGtoYWNoIGxhIA0Kbmd1b2kgTmFtIGhheSBuZ3VvaSBCYWM/IEtoaSB0YWkgeGUgdHJh IGxvaSBsYSBuZ3VvaSBCYWMsIG5nYXkgbGFwIHR1YyBnaW9uZyBkYW4gb25nIA0KdHJlbiB0b25n IGRhaSB5ZXUgY2F1OiAiVGh1IG9uZyBheSA1MC4wMDAgZG9uZyByb2kgdGhhIG9uZyBheSB4dW9u ZyEgVG9pIGtob25nIGRvbmcgeSANCnRoaSBsYXAgdHVjIGR1b2MgY2hpIGRhbzogInRodSAxMDAu MDAwIGRvbmcgcm9pIGNobyBvbmcgYXkgeHVvbmchIi4gVG9pIGNhbSB0aGF5IGJpIHh1YyANCnBo YW0gdHJ1b2MgdGhhaSBkbyBjdWEgaGFuZyB0YXhpIGRvaSB4dSB2b2kgaGFuaCBraGFjaCB0aGll dSB2YW4gaG9hIG5odSB2YXkuLi4iIC0gb25nIA0KQm9uZyBrZS4gT25nIEhhIE5nb2MgTmFtIC0g RGFpIGRpZW4gUGhhcCBjaGUgY3VhIGhhbmcgdGF4aSBDb21mb3J0IFNhdmljbywgY2hvIGJpZXQg DQpjb25nIHR5IHNlIGRpZXUgY2hpZWMgeGUgbm9pIHRyZW4gdmUgbGFtIHZpZWMgdmEgeWV1IGNh dSB0YWkgeGUgbGFtIHR1b25nIHRyaW5oLiBDaHUgDQp0cnVvbmcgY3VhIGNvbmcgdHkgdHJ1b2Mg c2F1IG5odSBtb3QgbGEgaGFuaCBraGFjaCBkaSB4YSBoYXkgZ2FuIGRldSBwaHVjIHZ1LiBOZXUg dGFpIA0KeGUgdmkgcGhhbSBzZSBiaSB4dSBseSBuZ2hpZW0uIA0KDQoiTyBjYWMgbnVvYywga2hh Y2ggZGkgdGF4aSB0YWkgc2FuIGJheSBkdW9jIHBoYXQgbW90IGNhaSB0aGUsIHRyb25nIGRvIGdo aSBybyB0ZW4gdGFpIHhlLCBzbyANCnhlIHZhIGh1b25nIGRhbiBjYWNoIGdvaSBkdW9uZyBkYXkg bm9uZy4gTmV1IGNhYyBoYW5nIHRheGkgY28geGUgbyBzYW4gYmF5IFRTTiBjdW5nIA0KbGFtIHZh eSB0aGkgY2h1bmcgdG9pIHllbiB0YW0iIC0gT25nIFJ5dWhlaSBTaGltYXNha2kgLSBEYWkgZGll biBIaWVwIGhvaSBETiBOaGF0IA0KQmFuIHRhaSBUUC5IQ00uDQoNClF1YSBxdWF0IGhvbiwgdmFv IGx1YyAyMSBnaW8gNTUgbmdheSAyMC4xMSwgdGFpIGdhIGRlbiBxdW9jIHRlIGNhbmcgaGFuZyBr aG9uZyBxdW9jIHRlIA0KVFNOLCB0YWkgeGUgdGF4aSBUcnVvbmcgSG9haSBCYW8sIHNvIHRhaSAx MTY2IHRodW9jIENvbmcgdHkgVE5ISCBUcmFtIFRoYW5oIChIYXBweSANCnRheGkpIGRhIHZpIHBo YW0gImxhbSBnaWEiIGtob25nIGNoYXkgdGhlbyBkb25nIGhvIHZhIHlldSBjYXUga2hhY2ggbGEg YmEgVHJhbiBUaHV5IA0KQW4gdHJhIHRoZW0gMzAuMDAwIGRvbmcgKDUuMDAwIGxlIHBoaSBzYW4g YmF5IHZhIDI1LjAwMCBkb25nIGxlIHBoaSBjYXUgZHVvbmcpLiANCg0KVGhheSBxdWEgdm8gbHks IHZpIGtoYWNoIG5heSBraG9uZyBkb25nIHkgdmEgeWV1IGNhdSB0YWkgeGUgY2hvIHhlIGR1bmcg bGFpLiBUaGUgbmh1bmcsIA0KdGFpIHhlIEJhbyBkYSBraG9hIGNoYXQgY3VhIHhlLCBraG9uZyBj aG8ga2hhY2ggeHVvbmcuIFF1YSBsbyBzbyB2YSBidWMgeHVjLCBiYSBBbiANCnBoYWkgZGFwIHRh eSB2YW8ga2llbmcgeGUgY2F1IGN1dSBuaGFuIHZpZW4gYW4gbmluaCBkYW5nIGxhbSBuaGllbSB2 dSB0YWkgZ2EgZGVuIHF1b2MgDQp0ZS4gTmh1bmcgaGFuaCB2aSB0cmVuIGN1YSB0YWkgeGUgZGEg ZHVvYyBiYSBBbiBwaGFuIGFuaCB2b2kgbmhhbiB2aWVuIGFuIG5pbmggdmEgZGlldSANCmhhbmgg aGFuZyB0YXhpIEhhcHB5LiBYZXQgdGhheSB0YWkgeGUgVHJ1b25nIEhvYWkgQmFvIGxhbSBnaWEs IGNvIHkga2hvYSBjdWEgeGUgdXkgDQpoaWVwIGdheSBuZ3V5IGhpZW0gY2hvIGtoYWNoLCBUcnVu ZyB0YW0gQW4gbmluaCBoYW5nIGtob25nIFRTTiBkYSBkZSBuZ2hpIENvbmcgdHkgDQpUcmFtIFRo YW5oIGRpbmggY2hpIGhvYXQgZG9uZyB0YWkgc2FuIGJheSB2b2kgdGFpIHhlIG5heS4NCg0KQW5o IFRhbiAobmd1IFEuNSwgVFAuSENNKSBsYWkgc28gbmhhdCB0YXhpICJ0YW5nLWJvIi4gQW5oIGtl LCBob2kgZGF1IHRoYW5nIDExLjIwMTAsIA0KYW5oIGRhcCBjaHV5ZW4gYmF5IHR1IEhvbmcgS29u ZyB2ZSBUUC5IQ00ga2hvYW5nIDIyIGdpbyAzMCB2YSBkb24gY2hpZWMgdGF4aSBtYXUgDQp4YW5o IGN1YSBoYW5nIFAuIGRlIHZlIG5oYS4gUXVhIGtob2kgY29uZyB0aHUgcGhpLCB0YWkgeGUgbm9p IGRvIGRheSBsYSBjaHV5ZW4gY3VvaSANCmN1bmcsIGR1YSBraGFjaCB2ZSBRLjUgeG9uZyBwaGFp IHZlIHRydSBzbyBjdWEgaGFuZyBvIHRhbiBjYXUgU2FpIEdvbiBkZSBnaWFvIHhlLiBOaHUgDQp2 YXkgbGEgbmd1b2MgZHVvbmcsIG5lbiB4aW4gbG9pIGtoYWNoIHh1b25nIHhlIGNobyBjYXkgeGFu ZyBuZ2F5IGNhbmggc2FuIGJheSBkZSBkaSB4ZSANCmN1YSBoYW5nIE0uIGRhIGRvaSBzYW4uIEFu aCBUYW4gZG9uZyB5LCBuaHVuZyBwaGFpIHRyYSAzMC4wMDAgZG9uZyBjaG8gZG9hbiBkdW9uZyAN CmNodWEgZGF5IDEga20gdHUgc2FuIGJheSByYSBjb25nIG5lbiByYXQgYnVjIHh1Yy4gDQoNCkRh eSBsYSB0aHVjIHRyYW5nIGN1YSB0YXhpIGhpZW4gbmF5LiBOZ3V5ZW4gbmhhbiBsYSBnYW4gZGF5 IG5oYSBjaHVjIHRyYWNoIHRyb25nIHNhbiBiYXkgDQpzaWV0IGhvYXQgZG9uZyBjdWEgY2FjIGhh bmcgdGF4aSBiYW5nIGNhY2ggaGFuIGNoZSBzbyBsdW9uZyB4ZSB2YW8gZG9uIGtoYWNoIG5lbiB0 YXhpIA0KZGF1IHJhdCBuaGlldSBuZ29haSBkdW9uZyBUcnVvbmcgU29uLiBDbyBraGFjaCBjaGl1 IGtobyBrZW8gaGFuaCBseSByYSBiZW4gbmdvYWkgZGUgDQpkb24gdGF4aSwgdmkga2hvbmcgdGhl IGRvaSBsYXUgdmEgZ2lhbmggZ2lhdCBvIGJlbiB0cm9uZy4gTmh1bmcgbmh1bmcgaG9tIHRyb2kg bXVhIGhvYWMgDQpraGFjaCBsaW5oIGtpbmggaGFuaCBseSB0aGkgYnVvYyBwaGFpIGNoYXAgbmhh biBkaSB4ZSB0YW5nLWJvLiBUYWkgeGUgc2F1IGtoaSB0YW5nLWJvIHJhIA0Ka2hvaSBjb25nLCBn aWFvIGNobyB4ZSBraGFjLCBzZSBxdWF5IGxhaSBzYW4gYmF5IHRpZXAgdHVjLiBEZSBjbyB0aGUg bGFtIGR1b2MgdmllYyBuYXkgDQptb2kgY2h1eWVuIHRhaSB4ZSB0YW5nLWJvIHBoYWkgY2h1bmcg Y2hpIGNobyBkaWV1IGhhbmggdHUgMTAuMDAwIGRvbmcgLSAxNS4wMDAgZG9uZy4NCg0KTW9pIGRh eSwgVHJ1bmcgdGFtIFh1YyB0aWVuIHZhIERhdSB0dSBUUC5IQ00gdG8gY2h1YyBidW9pIGdhcCBn byB2b2kgY2FjIGRvYW5oIA0KbmdoaWVwIChETikgTmhhdCBCYW4uIERhaSBkaWVuIEhpZXAgaG9p IEROIE5oYXQgQmFuIHRhaSBUUC5IQ00sIG9uZyBSeXVoZWkgDQpTaGltYXNha2kgY2hvIGJpZXQs IGhhdSBoZXQgY2h1eWVuIGJheSB0dSBOaGF0IHRvaSBwaGkgdHJ1b25nIFRTTiByb2kgdmFvIGto b2FuZyBnaXVhIA0KZGVtIG5lbiBraGFjaCByYXQgbWV0IG1vaS4gSG8gbW9uZyBtdW9uIHRpbSBk dW9jIHRheGkgdmUga2hhY2ggc2FuIGNhbmcgbmhhbmggY2FuZyANCnRvdCBuaHVuZyByYXQga2hv IGtoYW4uIENhYyBETiBOaGF0IGNobyBiaWV0IGNoaSBjbyBuaHVuZyBuZ3VvaSBtdWEgdmUgdGF4 aSB0cm9uZyBzYW4gDQpiYXkgbW9pIGR1b2MgZGkgdGF4aS4gVGllbiB0YXhpIGNoaSA1IFVTRCBu aHVuZyB0YWkgeGUgZ2hpIHBoaWV1IDggVVNEOyB0dSB5IGxhbSBodSANCmRvbmcgaG8gdGluaCBj dW9jIHJvaSBoZXQgZ2lhIGNhdCBjbzsga2hvbmcgY28gbmhhbiB2aWVuIGh1b25nIGRhbiB4ZXAg aGFuZyBkb24gdGF4aTsgDQpraG9uZyBub2kgcm8gYWkgY2hpdSBwaGkgcmEgY29uZzsgdHUgY2hv aSBjaG8ga2hhY2g7IHRhaSB4ZSBjdSB4dSBtYXQgbGljaCBzdS4uLg0KDQoiTyBjYWMgbnVvYywg a2hhY2ggZGkgdGF4aSB0YWkgc2FuIGJheSBkdW9jIHBoYXQgbW90IGNhaSB0aGUsIHRyb25nIGRv IGdoaSBybyB0ZW4gDQp0YWkgeGUsIHNvIHhlIHZhIGh1b25nIGRhbiBjYWNoIGdvaSBkdW9uZyBk YXkgbm9uZy4gTmV1IGNhYyBoYW5nIHRheGkgY28geGUgbyBzYW4gYmF5IA0KVFNOIGN1bmcgbGFt IHZheSB0aGkgY2h1bmcgdG9pIHllbiB0YW0iLCBvbmcgUnl1aGVpIFNoaW1hc2FraSBwaGF0IGJp ZXUuIA0KDQpPbmcgVHJhbiBWaW5oIExvYyAtIEdpYW0gZG9jIENvbmcgdHkgZHUgbGljaCBMYWMg SG9uZyBWb3lhZ2VzLCBjaG8gYmlldCBuaGlldSBuZ3VvaSANCm51b2MgbmdvYWkgbm9pIGRvbiB0 YXhpIG8gc2FuIGJheSBUU04gbGEgbm9pICJhbSBhbmgiLiAiTmdoZSBub2kgc2FwIHRvaSBzYW4g YmF5IGNvbiANCmdpYW0gc28gbHVvbmcgY2FjIGhhbmcgdGF4aSBkdWEgZG9uIGtoYWNoIHRoaSBj aGFjIGNoYW4gdGlldSBjdWMgc2UgcGhhdCBzaW5oIG5hbmcgbmUgDQpob24uIENhaSBnaSBjYW5n IGNhbSB0aGkgY2FuZyB0aWV1IGN1Yy4gTyBzYW4gYmF5IHF1b2MgdGUgY3VhIFNpbmdhcG9yZSBo YXkgVGhhaSBMYW4sIA0KbmV1IGxhIHRheGkgc2UgZHVvYyB2YW8gc2FuIGJheSwgdmkgaG8gZGEg ZG9uZyB0aHVlLiBPIFRTTiB0cnVvYyBkYXkgdG9pIHRoYXkgY2FjIGhhbmcgDQp0YXhpIGNvIGJh biBodW9uZyBkYW4gZGlldSBoYW5oIHhlIGNobyBraGFjaCwgc2F1IHRoYXkgZGVwIGRpLCBuZW4g dGluaCBoaW5oIGNhbmcgdG9pIHRlIiwgDQpvbmcgTG9jIHBoYXQgYmlldS4gIA0KDQpCaWVuIHR1 b25nDQoNClRhaSBIb2kgbmdoaSBiYW4gZ2lhaSBwaGFwIG5hbmcgY2FvIGNoYXQgbHVvbmcgaG9h dCBkb25nIGN1YSB0YXhpIHRhaSBzYW4gYmF5IFRTTiBkbyANClRvbmcgY29uZyB0eSBDYW5nIGhh bmcga2hvbmcgbWllbiBOYW0gZGEgdG8gY2h1YyBjdW9pIHRoYW5nIDExIHZ1YSBxdWEsIHRvbmcg Y29uZyANCnR5IG5heSBjaG8gYmlldCwgaGllbiB0cnVuZyBiaW5oIG1vaSBuZ2F5IHRhaSBuaGEg Z2EgVFNOIGNvIHRyZW4gNDAuMDAwIGhhbmgga2hhY2ggDQpkaS9kZW4sIGtob2FuZyAxMDAuMDAw IGx1b3QgZHVhIHRpZW4sIHZvaSBraG9hbmcgMTUuMDAwIGx1b3QgbyB0byByYSB2YW8uIA0KDQpU YWkgc2FuIGJheSBUU04gaGllbiBjbyAxMSBkb2FuaCBuZ2hpZXAgdGF4aSwgdm9pIGhvbiA2LjAw MCB0YWkgeGUgZHVvYyBjYXAgdGhlIGhvYXQgDQpkb25nLCBjbyBzbyBoYSB0YW5nIGRhIGR1b2Mg ZGF1IHR1IGhvYW4gdGhpZW4uIERlIGR1YSBkaWNoIHZ1IHRheGkgdGFpIGtodSB2dWMgc2FuIGJh eSBkaSANCnZhbyBuZW4gbmVwLCB0aG9pIGdpYW4gcXVhLCBjYWMgY28gcXVhbiBjaHVjIG5hbmcg ZGEgdGh1YyBoaWVuIG5oaWV1IGRvdCByYSBxdWFuIGNoYW4gDQpjaGluaC4gRGFjIGJpZXQgZ2Fu IGRheSwgVGhhbmggdHJhIEdpYW8gdGhvbmcgdmFuIHRhaSBsaWVuIHR1YyB0byBjaHVjIGNhYyBk b3QgdGhhbmggdHJhLCANCnh1IHBoYXQgaG9hdCBkb25nIHRheGkgdHJhaSBwaGVwLiBOaGEgY2h1 YyB0cmFjaCBjaG8gcmFuZyBzdSBubyBsdWMgbmF5IGRhIHBoYW4gbmFvIGdpdXAgDQpob2F0IGRv bmcgdGF4aSB0YWkgc2FuIGJheSBkYW4gZGkgdmFvIG9uIGRpbmgsIHRyYXQgdHUgaG9uLiANCg0K VGhlIG5odW5nLCB0cmFvIGRvaSB2b2kgVGhhbmggTmllbiwgb25nIFBoYW4gTGUgSG9hbiwgR2lh bSBkb2MgVHJ1bmcgdGFtIEtoYWkgdGhhYyANCmdhIFRTTiBjaG8gcmFuZywgc2F1IGtoaSB0aW5o IHRyYW5nIHRpZXUgY3VjIGN1YSB0YWkgeGUgdGF4aSB0cm9uZyBzYW4gYmF5IGR1b2MgbHVjIGx1 b25nIA0KYW4gbmluaCB4dSBseSBraWVuIHF1eWV0LCB0aGkgdGhvaSBnaWFuIGdhbiBkYXkgdGF4 aSAiYmllbiB0dW9uZyIgc2FuZyBtb3QgZGFuZyB0aWV1IGN1YyANCm1vaS4gRG8gbGEgbmFuIG5o dW5nIG5oaWV1LCB0aGFtIGNoaSBoYW5oIGh1bmcga2hhY2ggeGF5IHJhIGtoaSBraGFjaCBkYSBs ZW4geGUgdmEgdGF4aSANCmxhbiBiYW5oIHJhIG5nb2FpIHNhbiBiYXkuICJMdWMgbmF5IGtob25n IGNvIGFpIGtpZW0gc29hdCBkdW9jIHRhaSB4ZS4gTWEga2hvbmcgcGhhaSANCmtoYWNoIG5hbyBj dW5nIGJpZXQgZHVvYyBzbyB0b25nIGRhaSB0YXhpLCBuaGF0IGxhIHZvaSBuaHVuZyB2aSBraGFj aCBudW9jIG5nb2FpIG5lbiANCnZpZWMgcGhhbiBhbmggdm9pIHRvbmcgZGFpIGNhbmcga2hvIGhv biIsIG9uZyBIb2FuIGxvIGxhbmcuIA0KDQpPbmcgUGhhbiBMZSBIb2FuIGtoYW5nIGRpbmgsIHZp ZWMgZGUgeGF5IHJhIHRpbmggdHJhbmcgdGlldSBjdWMgY3VhIHRhaSB4ZSBkb2kgdm9pIGtoYWNo IA0Ka2hpIHRheGkgZGFuZyBjaGF5IHRyZW4gZHVvbmcgYmVuIG5nb2FpIHNhbiBiYXksIHRyYWNo IG5oaWVtIGRhdSB0aWVuIHRodW9jIGNhYyBoYW5nIA0KdGF4aS4gRGlldSBuYXkga2hvbmcgY2hp IGxhIHRyYWNoIG5oaWVtIG1hIGNvbiBsYSB1eSB0aW4gY3VhIGRvYW5oIG5naGllcCBkb2kgdm9p IGtoYWNoIA0KaGFuZy4gDQoNClZlIHBoaWEgc2FuIGJheSwgbHVjIGx1b25nIGFuIG5pbmggY3Vu ZyBzZSB4dSBseSBkZW4gY3VuZyBuZXUgbmhhbiBkdW9jIHRob25nIHRpbiBwaGFuIA0KYW5oIHRp ZXUgY3VjIGN1YSBkb2kgbmd1IHRheGkgZGFuZyBreSBob2F0IGRvbmcgdHJvbmcgc2FuIGJheS4g Q29uIHRoZW8gb25nIExlIEhvbmcgDQpWaWV0IC0gUGhvIGNoYW5oIHRoYW5oIHRyYSBTbyBHVFZU IFRQLkhDTSwgTHVhdCBHaWFvIHRob25nIGR1b25nIGJvIGRhIHF1eSBkaW5oIHJvIA0KcGh1b25n IHRpZW4gdmFuIGNodXllbiBraGFjaCBiYW5nIHRheGkgYmF0IGJ1b2MgcGhhaSB0aW5oIHRpZW4g dGhlbyB0aHVjIHRlIHNvIGttIGxhbiANCmJhbmgsIGtob25nIHRoZSBiYXQgZ2lhIG5odSB4ZSBv bSBkdW9jLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNTEv MjAxMDEyMTUxNDIwMzUuYXNweCBUcmFuIER1eSAtIFR1YW4gTG9uZyAxNS8xMi8yMDEwIDE0OjIw IA0KDQpUUCBIQ006IFRhaSB4ZSB0YXhpIHNhbiBiYXkgImdpbyBjaGlldSIgIA0KICANCiAoVE5P KSBTYW4gc2FuZyBiYXQgY2hldCBraGFjaCwgYnVvYyBraGFjaCBkaSB4ZSB2b2kgZ2lhIGN1b2Mg Y2FvIGdhcCBuaGlldSBsYW4gbXVjIA0KZ2lhIG5pZW0geWV0IG5odW5nIGtoaSBiaSBiYXQgcXVh IHRhbmcsIHRhaSB4ZSB0YXhpIGRvbiBraGFjaCB0YWkgc2FuIGJheSBUYW4gU29uIE5oYXQgDQoo VFAuSENNKSAiZ2lvIGNoaWV1IiBuYW4gbmkgaSBvaS4gDQoNCiogS2hvbiBraG8gdmkgdGF4aSBz YW4gYmF5DQoNCkdpbyB0cm8sICJtb2MgdHVpIiBraGFjaCANCg0KIk5oaWV1IGxhbiwgbmhhbiB2 aWVuIGFuIG5pbmggc2FuIGJheSBiYXQgZ2FwIHF1YSB0YW5nIHNhdSBraGkgY2hhdCBoYW5oIGx5 IGN1YSBraGFjaCANCnZhbyBjb3AgeGUsIGRlIGtoYWNoIHZ1YSB5ZW4gdmkgdHJvbmcgeGUsIHRh aSB4ZSB0YXhpIGxpZW4gdGF0IGRvbmcgaG8gdGluaCBjdW9jIHZhIHJhIGdpYSANCnZvaSBraGFj aC4gQmkgbmhhbiB2aWVuIGFuIG5pbmggbGFwIGJpZW4gYmFuLCBjbyB0YWkgeGUgY29uIG5vaSBj YXUgdHVvbiByYSBuaHVuZyBsb2kgdHVjIA0KdGl1LiBDdW5nIGNvIHRydW9uZyBob3AgdGFpIHhl IGtob25nIHZpZXQgbm9pIGJhbiB0dW9uZyB0cmluaCBob2FjIHZpZXQgc2FpIGNoaW5oIHRhLiBI b2kgDQpyYSBtb2kgdGUgbmd1YTogdGFpIHhlIG5heSBjaGkgaG9jIGhldCBsb3AgMy4gS2hvbmcg YmlldCBhbmggdGEga2llbSBkYXUgcmEgZ2lheSBwaGVwIGxhaSANCnhlIGRlIGhhbmggbmdoZSB0 YWkga2h1IHZ1YyBzYW4gYmF5IHF1b2MgdGUgVGFuIFNvbiBOaGF0ICg/ISkiIC0gYW5oIE5ndXll biBEYWkgTGFtLCBuaGFuIHZpZW4gYW4gbmluaCBzYW4gYmF5IFRhbiBTb24gTmhhdCBrZSBsYWku IA0KDQooQW5oOiBUaGFuaCB0cmEgdmllbiBraWVtIHRyYSBkb25nIGhvIHRpbmggY3VvYyB0YXhp IHh1YXQgcGhhdCB0dSBzYW4gYmF5IFRhbiBTb24gTmhhdCANCihhbmggY2h1cCBsdWMgOSBnaW8g bmdheSAxNS4xMikgLSBBbmg6IFRyYW4gRHV5KQ0KDQpUYXQgZG9uZyBobyB0aW5oIGN1b2MsIG5n YSBnaWEgdm9pIGtoYWNoIGNoaSBsYSBtb3QgdHJvbmcgcmF0IG5oaWV1ICJtdXUgbWVvIiBtYSB0 YWkgeGUgDQp0YXhpIHNhbiBiYXkgInRoaSB0cmllbiIuIFRoZW8gbG9pIG1vdCBuaGFuIHZpZW4g YW4gbmluaCwgZGEgcGhhbiB0YWkgeGUgdGF4aSBzYW4gYmF5IGRldSANCnF1YW4gbmllbSwga2hh Y2ggdnVhIGJ1b2MgY2hhbiB4dW9uZyBtYXkgYmF5IGxhIGtoYWNoICJzb3AiLCBraGEgZ2lhIG5l biBraG9uZyBuZ2FpIA0KbmdhbiAiY2hhdCBjaGVtIi4gDQoNCkRvIGxhIGRvaSB2b2kga2hhY2gg bmd1b2kgVmlldC4gS2hhY2ggbnVvYyBuZ29haSBjaGl1IG11YyBkbyAiY2hhdCwgY2hlbSIgY29u IHRoZSANCnRoYW0gaG9uIHZpIGRhIHBoYW4gImxhIG51b2MsIGxhIGNhaSIgdmEga2hvbmcgbXVv biBnYXkgc3Ugdm9pIG5ndW9pIGJhbiB4dSwgbmhhdCBsYSANCm5ndW9pIGRhbmcgZGlldSBraGll biBvIHRvIHZhIGR1YSBtaW5oIGRpIGRlbiBkaWEgZGllbSB4YSBsYSBraG9uZyBoZSBiaWV0LiAN Cg0KRG9uIGN1LCBnaWEgdmUgcXVhIHRyYW0gdGh1IHBoaSBkb2kgdm9pIHRheGkgbyBzYW4gYmF5 IFRhbiBTb24gTmhhdCBjaGkgNS4wMDAgZG9uZy9sdW90IA0Kbmh1bmcga2hvbmcgaXQgdGFpIHhl IGtlIGdpYSBsZW4gMjAuMDAwLTMwLjAwMCBkb25nIHZhIGNvbmcgZG9uIHZhbyBnaWEgY3VvYyBj dWEga2hhY2ggDQpkaSB4ZS4gS2hhY2ggbyB4YSBuZXUga2hvbmcgYmlldCBtdWMgZ2lhIHRodSBw aGkgcmF0IGRlIGJpIHRhaSB4ZSB0YXhpIHNhbiBiYXkgInF1YSBtYXQiLiANCk5hbSBjaGFjIHRo b25nIGxlICJraGFjaCBsZW4geGUsIHhlIGxhbiBiYW5oIiBsYSBwaGFpIHRpbmggdGllbiwgbmhp ZXUgdGFpIHhlIHRheGkgc2FuIGJheSANCmtob25nIGNhbiBjdWMga2hvIGNoYXkgImR1b25nIGRh aSIsIGNoaSBjYW4gImJhbiIga2hhY2ggY2hvICJkb25nIG5naGllcCIuIA0KTW90IHRoYW5oIHRy YSB2aWVuIHRodW9uZyB4dXllbiBraWVtIHRyYSB0YWkga2h1IHZ1YyBzYW4gYmF5IFRhbiBTb24g TmhhdCBjaG8gYmlldCwgDQpraHUgdnVjIGNheSB4YW5nIHBoaWEgbmdhIHR1IHJlIHZhbyBnYSBx dW9jIG5vaSB0cmVuIGR1b25nIFRydW9uZyBTb24gKFEuVGFuIEJpbmgpLCANCmhheSBjb24gaGVt IG5obyBjYW5oIHNpZXUgdGhpIFN1cGVyQm93bCBsYSBub2kgIm5hbSB2dW5nIiBjdWEgbmh1bmcg dGFpIHhlIGtlIHRyZW4uIA0KDQpUYW5nIGN1b25nIGx1YyBsdW9uZyBhbiBuaW5oIHNhbiBiYXkN Cg0KVHJ1b2MgdGluaCB0cmFuZyBiYXQgY2hldCBraGFjaCBjdWEgY2FjIHRhaSB4ZSB0YXhpIHh1 YXQgcGhhdCB0dSBzYW4gYmF5IFRhbiBTb24gTmhhdCBnYXkgDQpidWMgeHVjIHRyb25nIGR1IGx1 YW4sIG9uZyBMZSBIb25nIFZpZXQsIFBobyBjaGFuaCB0aGFuaCB0cmEgZHVvbmcgYm8gU28gR2lh byB0aG9uZyANCnZhbiB0YWkgKEdUVlQpIFRQLkhDTSBjaG8gYmlldCBkYSB0cmllbiBraGFpIHRh bmcgY3Vvbmcga2llbSB0cmEgdmEgcGhvaSBob3Agdm9pIGx1YyANCmx1b25nIGFuIG5pbmggc2Fu IGJheSBUYW4gU29uIE5oYXQsIGdpYW0gc2F0IGNoYXQgbmh1bmcgdmllYyBsYW0gdGlldSBjdWMg Y3VhIHRhaSB4ZS4gDQoNClNhbmcgMTUuMTIsIHBob25nIHZpZW4gVGhhbmggTmllbiBPbmxpbmUg ZGEgZGkgY3VuZyBtb3QgdG8gY29uZyB0YWMgY3VhIFRoYW5oIHRyYSANCmR1b25nIGJvIFNvIEdU VlQga2llbSB0cmEgaG9hdCBkb25nIGRvbiwgdHJhIGtoYWNoIHRhaSBraHUgdnVjIGdhIHF1b2Mg bm9pLCBzYW4gYmF5IFRhbiBTb24gTmhhdC4gDQoNCkNoaSB0cm9uZyBjaHVhIGRheSBudWEgZ2lv LCBuaGlldSB0YWkgeGUgdGF4aSBkYSBiaSBsYXAgYmllbiBiYW4gdmkgcGhhbS4gTHVjIDkgZ2lv IDE1IA0KcGh1dCwgdGFpIHhlIFRyYW4gTmd1eWVuIFBodSBkaWV1IGtoaWVuIHRheGkgYmllbiBz byA2MFMtMTAzOSB0aHVvYyBDb25nIHR5IFROSEggDQpRdXlldCBUaGFuaCBjaG8ga2hhY2ggYmFu ZyB4ZSBraG9uZyBjbyBwaHUgaGlldSB0YXhpIHRoZW8gcXV5IGRpbmguICJCaWV0IGtob25nIGNv IA0KcGh1IGhpZXUgdGF4aSBsYSB2aSBwaGFtIG5odW5nIHZpIG11dSBzaW5oIG5lbiBwaGFpIGNo YXkiIC0gdGFpIHhlIFBodSBnaWFpIGJheS4gDQoNCkFuaCBEdW9uZyBWYW4gVHJ1b25nLCB0aGFu aCB0cmEgdmllbiB0byAyLCBkb2kgOCwgVGhhbmggdHJhIGR1b25nIGJvIFNvIEdUVlQgY2hvIA0K YmlldCwgdGFpIHhlIFBodSBkYW5nIGJpIGRvaSBDYW5oIHNhdCBnaWFvIHRob25nIFJhY2ggQ2hp ZWMgKFRQLkhDTSkgdGFtIGdpdSBnaWF5IHBoZXAgDQpsYWkgeGUgdGhlbyBiaWVuIGJhbiBzbyAx MjQ5OC4gTmhpZXUgdGF4aSAidGh1b25nIGhpZXUiIGN1bmcgYmkgbGFwIGJpZW4gYmFuIHZpIGxv aSBraG9uZyANCmNvIHBodSBoaWV1IHRheGkgdGhlbyBxdXkgZGluaC4NCg0KKEFuaDogTmhpZXUg dGFpIHhlIHRheGkgZG9uLCB0cmEga2hhY2ggdGFpIHNhbiBiYXkgVGFuIFNvbiBOaGF0IGRhIGJp IGxhcCBiaWVuIGJhbiB2aSBwaGFtIHRyb25nIHNhbmcgMTUuMTIgLSBBbmg6IFRyYW4gRHV5KSAN Cg0KRGUgaGFuIGNoZSBuaHVuZyB2aSBwaGFtIGN1YSB0YWkgeGUgdGF4aSBzYW4gYmF5LCBkYWMg YmlldCBsYSBuaHVuZyBoYW5oIHZpIGJhdCBjaGV0IA0KaGFuaCBraGFjaCwgbHVjIGx1b25nIGFu IG5pbmggc2FuIGJheSBUYW4gU29uIE5oYXQgZGEgZHVvYyB0dW5nIHJhIGRlIGdpYW0gc2F0LCBr aWVtIA0KdHJhIHRhaSB4ZS4gIlR1eSBuaGllbiwga2hpIHRoYXkgbmhhbiB2aWVuIGFuIG5pbmgs IHRhaSB4ZSB0byByYSByYXQgZGFuZyBob2FuZzsgYmF0IGRvbmcgaG8gDQp0aW5oIGN1b2MsIGto b25nIHJhIGdpYSB2b2kga2hhY2ggbmh1bmcgcmEgbmdvYWkga2h1IHZ1YyBzYW4gYmF5LCBjaHVu ZyB0b2kga2hvbmcgdGhlIA0Ka2llbSBzb2F0IGR1b2MiIC0gbW90IG5oYW4gdmllbiBhbiBuaW5o IGNobyBiaWV0LiANCg0KT25nIERvIEJhIE5ndXllbiwgdG8gdHJ1b25nIHRvIDIsIGRvaSA4LCBU aGFuaCB0cmEgZHVvbmcgYm8gU28gR1RWVCBUUC5IQ00gY2hvIA0KYmlldCwgc2UgdGFuZyBjdW9u ZyBxdWFuIGtpZW0gdHJhIGhvYXQgZG9uZyBkb24sIHRyYSBraGFjaCBjdWEgdGF4aSB0YWkgc2Fu IGJheSBUYW4gU29uIA0KTmhhdCwgZGFjIGJpZXQgbGEgdGhvaSBkaWVtIFRldCBEdW9uZyBsaWNo IHZhIFRldCBOZ3V5ZW4gZGFuIHNhcCB0b2kuIE9uZyBOZ3V5ZW4gY3VuZyANCmtodXllbiBjYW8g ZGUgdHJhbmggYmkgdGFpIHhlIHRheGkgc2FuIGJheSBiYXQgY2hldCwgaGFuaCBraGFjaCBuZW4g ZGVuIGNhYyBiYW4gY3VuZyBjYXAgDQp0aG9uZyB0aW4gaG9hYyB0byBkaWV1IGRvbmcgeGUgY3Vh IGNhYyBoYW5nIGRlIGR1b2MgaHVvbmcgZGFuLCB0cmFuaCAibGFtIG1vaSIgY2hvIA0KY2FuaCB0 YWkgeGUgeGVtIHRodW9uZyBraGFjaCBoYW5nLiANCg0KTHkgZ2lhaSB2ZSBoYW5oIHZpIGJhdCBj aGV0IGhhbmgga2hhY2gsIG1vdCBjYW4gYm8gdGhhbmggdHJhIGNobyByYW5nLCB0cm9uZyB0aW5o IHRyYW5nIA0KIm5vIHJvIiB0YXhpIG5odSBoaWVuIG5heSwgImRhdSB2YW8iIGN1YSBjYWMgdGFp IHhlIHRheGkga2hvbmcgZHVvYyB4ZW0gdHJvbmcuIFRoZW0gDQp2YW8gZG8sIGNhYyBoYW5nIHRo dW9uZyBhcCBtdWMgImtob2FuIiBkb2kgdm9pIHRhaSB4ZSBtYSBraG9uZyBjaHUgdHJvbmcgZGVu IGNoYXQgbHVvbmcgZGljaCB2dS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTA1MS8yMDEwMTIxNTAxNDYyNS5hc3B4IE0uTiAtIEwuTiBOaG9tIFBWIENULVhI IDE1LzEyLzIwMTAgMTo0NiANCg0KVFAgSENNOiBYZSBjb25nIG5nYW5nIG5oaWVuIHZpIHBoYW0g bHVhdCBnaWFvIHRob25nIJYgdGhpZXUgZ3VvbmcgbWF1ICANCg0KKEFuaDogQ2hpZWMgeGUgYmll biBzbyA4MEItMzcwNyBjaGF5IGxhbiB0dXllbiB0cmVuIGR1b25nIE5ndXllbiBUaGkgTWluaCBL aGFpIA0KKFRQLkhDTSkgLSBBbmg6IE0uTikgDQoNClRyb25nIG1hdCBuZ3VvaSBkYW4sIHhlIG1h bmcgYmllbiBzbyB4YW5oIGxhIGN1YSBjYWMgY28gcXVhbiBjb25nIHF1eWVuLCB0aHVvbmcgZHVv YyANCmdvaSBsYSAieGUgY29uZyIuIERhaSBkaWVuIGNobyBjbyBxdWFuIG5oYSBudW9jLCB4ZSBj b25nIGtoaSBsdXUgdGhvbmcgZHVuZyByYSBwaGFpIHR1YW4gDQp0aHUgbHVhdCBob24gY2FjIHBo dW9uZyB0aWVuIGtoYWMsIG5odW5nIHRodWMgdGUga2hvbmcgcGhhaSB2YXkuLi4gDQoNClRob2kg Z2lhbiBxdWEsIFRoYW5oIE5pZW4gbmhhbiBkdW9jIHJhdCBuaGlldSBwaGFuIGFuaCBjdWEgYmFu IGRvYyB2ZSB0aW5oIHRyYW5nIHhlIA0KY29uZyBjaGF5IGF1LCB0YW8gaGluaCBhbmggcGhhbiBj YW0gdmUgdmllYyBjaGFwIGhhbmggbHVhdCBwaGFwIGN1YSBjYW4gYm8gbmhhIG51b2MsIA0Kbmhh dCBsYSBraGkgVFAuSENNIGN1bmcgY2EgbnVvYyBkYW5nIHJhIHN1YyB2YW4gZG9uZyB0aHVjIGhp ZW4gbGFwIGxhaSB0cmF0IHR1IGFuIHRvYW4gDQp2YSB2YW4gaG9hIHRyb25nIGdpYW8gdGhvbmcu ICJUb2kgdGhheSBoaW5oIG5odSBuaHVuZyBjdW9jIHZhbiBkb25nIG5heSBjaGkgbmhhbSBkZW4g DQpkb2kgdHVvbmcgdGhhbSBnaWEgZ2lhbyB0aG9uZyBsYSBjb25nIGRhbiBiaW5oIHRodW9uZywg Y29uIGRvaSB2b2kgeGUgYmllbiB4YW5oIHRoaSBsYSANCm1vdCBuZ29haSBsZSIsIGFuaCBOZ3V5 ZW4gSHV1IExvYywgbW90IGJhbiBkb2MgbyBRLjgsIGJ1YyB4dWMgbm9pLg0KDQpDU0dUIGxhbSBs bw0KDQpLaG9hbmcgMTEgZ2lvIG5nYXkgMy4xMiwgdGFpIGdpYW8gbG8gVm8gVGhpIFNhdSAtIEhh aSBCYSBUcnVuZywgY2h1bmcgdG9pIGdoaSBoaW5oIGR1b2MgDQptb3QgY2hpZWMgeGUgY29uZyBo aWV1IFRveW90YSBDYW1yeSBtYW5nIGJpZW4gc28gNTFBLTA2NDEgdmkgcGhhbSBsdWF0IGdpYW8g dGhvbmcuIA0KVGhheSBsYW4geGUgbyB0byBkYW5nIHVuLCB0YWkgeGUgY2hpZWMgeGUgY29uZyB2 byB0dSBjaG8geGUgY2hheSB2YW8gbGFuIHhlIGdhbiBtYXkgdHJlbiANCmR1b25nIEhhaSBCYSBU cnVuZy4gTWFjIGNobyBuaHVuZyBjYWkgbmhpbiBraG8gY2hpdSBjdWEgbmd1b2kgZGkgZHVvbmcs IGNoaWVjIHhlIHZhbiANCmxhbyBkaSB0cm9uZyBsYW4geGUgaGFpIGJhbmgsIGtlIGNhIGtoaSBk aSBxdWEgZ2lhbyBsbyBIYWkgQmEgVHJ1bmcgLSBEaWVuIEJpZW4gUGh1IGRhbmcgDQpjbyAyIENT R1QgZHVuZyBjYW5oIGNoaWVjIG1vIHRvLiBEdSBuaGluIHRoYXkgY2hpZWMgeGUgY29uZyB2aSBw aGFtIGx1YXQgcm8gcmFuZywgDQpuaHVuZyAyIENTR1QgdmFuIG5nbyBsby4gDQoNCkxhbiB0dXll biwgdnVvdCBkZW4gZG8gDQoNClRydWEgMTMuMTIsIHRyb25nIGtoaSBuaGlldSBvIHRvIG5oaWNo IHR1bmcgY2h1dCBtb3QgdHJlbiBkdW9uZyBEb25nIEtob2kgZ2FuIGdpYW8gbG8gDQpMeSBUdSBU cm9uZyAoUS4xKSwgdGhpIGNoaWVjIHhlIFRveW90YSBDYW1yeSBiaWVuIHhhbmggNTFBLTEyNTcg bGFjaCBzYW5nIHBoYWksIHZvIHR1IA0KY2hheSB2YW8gbGFuIHhlIGdhbiBtYXkuIEN1IHRoZSwg dGFpIHhlIHRpZXAgdHVjIGRhbmggbGFpIGNoaWVjIHhlIHJhLCB2YW8gbGFuIHhlIGdhbiBtYXkg DQpkZSBxdWEgbWF0IGNhYyB4ZSBvIHRvIGtoYWMgdmEgbWF0IGh1dCB0cmVuIGR1b25nIFRvbiBE dWMgVGhhbmcuDQoNClR1b25nIHR1LCB0YWkgZ29jIGdpYW8gbG8gTmd1eWVuIFRoaSBNaW5oIEto YWkgLSBUcnVvbmcgRGluaCwgbm9pIGR1b2MgbmhpZXUgYmFuIGRvYyANCnBoYW4gYW5oIGNvIG5o aWV1IHhlIGNvbmcgY2hheSBwaGFtIGx1YXQsIHRyb25nIHRob2kgZ2lhbiBnaGkgbmhhbiB0YWkg ZGF5LCBjaHVuZyB0b2kgZGEgDQpjaHVuZyBraWVuIG5oaWV1IHRydW9uZyBob3AgeGUgYmllbiB4 YW5oIGNoYXkgbGFuIHR1eWVuLg0KDQpUcm9uZyBraGkgZG9uZyBvIHRvIG1hbmcgYmllbiB0cmFu ZyBkYW5nIG5oaWNoIHR1bmcgY2h1dCBtb3QgdHJlbiBkdW9uZyBOZ3V5ZW4gVGhpIA0KTWluaCBL aGFpIHZhbyB0cnVhIDIuMTIsIHRoaSBtb3QgY2hpZWMgQ2FtcnkgbWF1IGRlbiBtYW5nIGJpZW4g c28gNTFBLTE2MjkgY2hheSBsYW4gDQpzYW5nIHBoYW4gZHVvbmcgY2hpZXUgbmd1b2MgbGFpLCBi YXQgY2hhcCBuaHVuZyBhbmggbWF0IGtobyBjaGl1IGN1YSBuZ3VvaSBkaSB4ZSBnYW4gDQptYXkg ZGkgZHVuZyBjaGlldS4gQ2h1YSBkYXkgNSBwaHV0IHNhdSwgY2hpZWMgRm9yZCBNb25kZW8gODBC LTM3MDcgdGllcCB0dWMgY2hheSBsYW4gDQp0dXllbiB0cmVuIGR1b25nIE5ndXllbiBUaGkgTWlu aCBLaGFpLCB0cnVvYyBraGkgcmUgdmFvIGR1b25nIFRydW9uZyBEaW5oLiBWYWkgcGh1dCANCnNh dSwgY2hpZWMgTWF6ZGEgNjI2IGJpZW4gc28gNTFBLTA5NjkgdmEgVG95b3RhIEFsdGlzIG1hbmcg c28gNTFBLTA3NjEuLi4gY2hheSBkdW5nIA0KdmFvICJ2ZXQgeGUiIGN1YSBoYWkgY2hpZWMgeGUg Y29uZyB0cnVvYyBkbywgcm9pIHBob25nIHF1YSBnaWFvIGxvIG5heS4NCiANCiAoQW5oOiBYZSBj b25nIGJpZW4gc28gNTFBLTA2NDEgY2hheSBsYW4gdHV5ZW4geGUgZ2FuIG1heSB0cnVvYyBzdSBs YW0gbmdvIGN1YSBoYWkgDQpDU0dUIHRhaSBnaWFvIGxvIERpZW4gQmllbiBQaHUgLSBIYWkgQmEg VHJ1bmcgLSBBbmg6IEwuTikgDQoNCkJ1b2kgdHJ1YSBtb3QgbmdheSBkYXUgdGhhbmcgMTIuMjAx MCwgdHJ1b2Mga2hpIHZhbyBnaWFvIGxvIFRvbiBEdWMgVGhhbmcgLSBEaW5oIFRpZW4gDQpIb2Fu ZyAoUS4xKSwgY2hpZWMgeGUgNTFBLTAxMjYgY3UgbHVvbiByYSwgbHVvbiB2YW8gbGFuIHhlIGdh biBtYXkgdHJlbiBkdW9uZyBUb24gDQpEdWMgVGhhbmcuIEtoaSBnYW4gZGVuIGdpYW8gbG8gdHJl biB0aGkgbGFuIGhhbiBzYW5nIHBoYW4gZHVvbmcgY2hpZXUgbmd1b2MgbGFpLCBtYWMgDQpkdSB2 YWNoIGtlIGR1b25nIGxhIGhhaSB2YWNoIGRhaSBsaWVuIHR1YyAocXV5IGRpbmggY2FtIGxhbiB0 dXllbikuIFN1IG5nYW5nIHRhbmcgZG8gDQpraGllbiBuaGlldSBuZ3VvaSBkaWV1IGtoaWVuIHhl IGx1dSB0aG9uZyBjaGlldSBuZ3VvYyBob3QgaG9hbmcgZGF0IHJhIGhhaSBiZW4gZGUgdHJhbmgg DQp0YWkgbmFuLCBuaHVvbmcgZHVvbmcgY2hvIGNoaWVjIHhlIGNvbmcgdGhhbmcgdGllbiB2YSBy ZSBzYW5nIGR1b25nIERpbmggVGllbiBIb2FuZy4gDQpDaHVuZyB0b2kgdGFuZyBnYSBkdW9pIHRo ZW8gY2hpZWMgeGUgbmF5IHRoaSBwaGF0IGhpZW4gdHJlbiB4ZSBjbyB2YWkgbmd1b2kgbWFjIGNh bmggDQpwaHVjIG1hdSB4YW5oIGN1YSBjb25nIGFuIGRhbmcgcm9tIHJhIGNodXllbiB0cm8uLi4h DQoNCihBbmg6IFhlIDUxQS0xMTY1IHZhIHhlIDUxQS0zNzMyIHZvIHR1IGRhdSB0cmVuIHZpYSBo ZSB0cm9uZyBraGkgaGFuZyBsb2F0IHhlIGJpZW4gDQp0cmFuZyBkYXUgZHVvaSBsb25nIGR1b25n IEx5IFR1IFRyb25nLCBRLjEgKGFuaCBjaHVwIGNoaWV1IDIuMTIpIC0gQW5oOiBIb2FpIE5hbSkg DQoNCkx1YyAxMSBnaW8gMzAgbmdheSAzLjEyLCBjaHVuZyB0b2kgYmFtIHRoZW8gY2hpZWMgeGUg VG95b3RhIFByYWRvIG1hdSB0cmFuZywgbWFuZyANCmJpZW4gc28gNTFBLTE5MTYgZGFuZyBsdXUg dGhvbmcgdmFvIGxhbiB4ZSBnYW4gbWF5IHRyZW4gZHVvbmcgTGUgTGFpLiBLaGkgZGVuIGdpYW8g bG8gDQpMZSBMYWkgLSBOZ3V5ZW4gVGhhaSBIb2MsIHRhaSB4ZSBuZ2FuZyBuaGllbiBjaG8geGUg dnVvdCBkZW4gZG8sIHJvaSByZSBwaGFpIHZhbyBkdW9uZyANCk5ndXllbiBUaGFpIEhvYywgc2F1 IGRvIHBob25nIG5oYW5oIHRyZW4gZHVvbmcgVHJhbiBIdW5nIERhbyB2YSBtYXQgaHV0Li4uDQoN Ckx1YyAxNSBnaW8gMTIgbmdheSAyLjEyLCBjaGllYyB4ZSBtYW5nIGJpZW4gc28gNTFBLTEyODkg bHV1IHRob25nIHRyZW4gZHVvbmcgTmd1eWVuIA0KVGhpIE1pbmggS2hhaSAoUS4zKSBodW9uZyB2 ZSBDb25nIHZpZW4gVGFvIERhbiwga2hpIGRlbiBnYW4gZ2lhbyBsbyBMdW9uZyBIdXUgDQpLaGFu aCB0aGkgdGFpIHhlIGNobyB4ZSBjaGF5IHZhbyBsYW4gZHVvbmcgZGFuaCBjaG8geGUgMiBiYW5o LiBQaGF0IGhpZW4gYmkgZ2hpIGhpbmgsIA0KbW90IHNvIG5ndW9pIHRyZW4geGUgcXVheSByYSBu aGluIFBWIGNoYW0gY2hhbS4gTHVjIGRvLCBjb2kgaHUga2hvbmcgaG9hdCBkb25nIG5naGlhIA0K bGEga2hvbmcgcGhhaSBkaSB0aGkgaGFuaCBjb25nIHZ1IG5odW5nIGNoaWVjIHhlIG5heSB2YW4g bGVuIHZhbyBkdW9uZyAyIGJhbmggY2hheSBib24gDQpib24gY2hvIGRlbiBnaWFvIGxvIE5ndXll biBUaGkgTWluaCBLaGFpIC0gVG9uIFRoYXQgVHVuZy4uLg0KDQpUcnVhIDMuMTIsIG1hYyBjaG8g aGFuZyBkb2FuIHhlIGRhbmcgdW4gdHJlbiBkdW9uZyBOZ3V5ZW4gVmFuIFRyb2ksIGNoaWVjIHhl IDcgY2hvIA0KYmllbiBzbyA1MUEtMTc1MCB0aGFuIG5oaWVuIGNoYXkgbGFuIHNhbmcgcGhhbiBk dW9uZyBkYW5oIGNobyB4ZSBoYWkgYmFuaCB0aWVuIHRoYW5nIA0KcmEgaHVvbmcgc2FuIGJheSBU YW4gU29uIE5oYXQuIENodW5nIHRvaSBiYW0gdGhlbyB2YSB0aGF5IGNoaWVjIHhlIG5heSByZSB2 YW8gQ2hpIGN1YyANCkhhaSBxdWFuIHNhbiBiYXkuLi4NCiANCihBbmg6IENoaWVjIHhlIGNvbmcg YmllbiBzbyA1MUEtMTI1NyBjaGF5IGxhbiB0dXllbiB4ZSBnYW4gbWF5IHRyZW4gZHVvbmcgRG9u ZyANCktob2kgKGFuaCBjaHVwIHRydWEgMTMuMTIpIC0gQW5oOiBNLk4pIA0KDQpEdW5nIGRhdSB0 dXkgdGhpY2gNCg0KTHVjIDEwIGdpbyAzOSBuZ2F5IDcuMTIsIGNodW5nIHRvaSBiYXQgZ2FwIG1v dCBoYW5nIGRhaSBuaHVuZyBjaGllYyB4ZSBiaWVuIHhhbmgsIGJpZW4gDQpkbyBkYXUgbmdheSBk dW9pIGJhbmcgImNhbSBkbyIgYmVuIGNhbmgga2h1IEVkZW4sIFEuMS4gRG8gbGEgY2FjIHhlIDUx QS0xNTMzLCA1MUEtDQowNjcyLCA1MUEtMTg4NCwgNTFBLTE4MDAuLi4sIHhlbiBsYW4gdmFvIGRv IGxhIG1vdCwgaGFpIGNoaWVjIHhlIGJpZW4gdHJhbmcgZGF1Li4uICJhbiANCnRoZW8iLiBRdXkg ZGluaCBjdWEgYmllbiBiYW8gbmF5IGNoaSBjaG8geGUgdGFtIGR1bmcsIHBoYWkgbm8gbWF5LCBj byB0YWkgeGUgbmdvaSB0cmVuIA0Kdm8tbGFuZy4gTmh1bmcgbmh1bmcgeGUgbm9pIHRyZW4gZGV1 IHRhdCBtYXksIHRhaSB4ZSBuZ2EgZ2hlIG5hbSBkYWkgZG9jIGJhbywgbmd1IGhvYWMgDQp0aGFt IGNoaSBraG9uZyB0aGF5IGJvbmcgZGFuZyB0YWkgeGUgZGF1Lg0KDQpLaG9hbmcgOCBnaW8gMjAg bmdheSAzLjEyLCB0cnVvYyBxdWFuIGh1IHRpdSBOYW0gVmFuZyB0cmVuIGR1b25nIE5ndXllbiBW YW4gUXVhIA0KKFEuMTIpLCA0IHRoYW5oIHRyYSBnaWFvIHRob25nIGRpIHRyZW4gY2hpZWMgeGUg Y29uZyBiaWVuIHNvIDUxQi0wMjgwIGJ1b2MgeHVvbmcgeGUgcm9pIA0KdmFvIHF1YW4gYW4gc2Fu Zy4gQmVuIG5nb2FpLCB0YWkgeGUgZGFuaCB4ZSBkYXUgbW90IG51YSB0cmVuIHZpYSBoZSBtb3Qg bnVhIGR1b2kgbG9uZyANCmR1b25nLiBIb24gOSBnaW8sIGNhYyBjYW4gYm8gbmF5IG1vaSByYSB4 ZSB0aWVwIHR1YyBsZW4gZHVvbmcgbGFtIG5oaWVtIHZ1Lg0KDQpUcmVuIGR1b25nIEx5IFR1IFRy b25nIChkb2FuIGdhbiBTbyBUYWkgbmd1eWVuIC0gTW9pIHRydW9uZywgUS4xKSwgbmhpZXUgdGFp IHhlIGJpZW4gDQpzbyB0cmFuZyB0aHVvbmcgYWkgbmdhaSBtb2kga2hpIG5oYWMgZGVuIHhlIGJp ZW4geGFuaCwgYm9pIHRyb25nIGtoaSBoYW5nIGxvYXQgeGUgbyB0byANCmJpZW4gdHJhbmcgeGVw IGhhbmcgZGF1IGR1b2kgbG9uZyBkdW9uZyAoY28gdGh1IHBoaSkgdGhpIHhlIGNvbmcgbHVvbiBj aGVtIGNoZSB0cmVuIHZpYSANCmhlLiBEaWVuIGhpbmgsIGx1YyAxNSBnaW8gbmdheSAyLjEyLCBj aHVuZyB0b2kgZ2hpIGhpbmggaGFpIGNoaWVjIHhlIGJpZW4geGFuaCBiaWVuIHNvIA0KNTFBLTM3 MzIgdmEgNTFBLTExNjUgZGF1IHRob2FpIG1haSBkYXUgdHJlbiB2aWEgaGUsIGNoaWVtIGhldCBs b2kgZGkgY3VhIG5ndW9pIGRpIGJvLi4uDQoNClBoYW4gY2FtIGhvbiBjbyBsZSBsYSB0cnVvbmcg aG9wIGNoaWVjIERhaWhhdHN1IG1hbmcgYmllbiBzbyB4YW5oIDUxQi0wMzEwIGN1YSBtb3QgDQpk b24gdmkgZGkgImRvbiBkZXAiIGxvbmcgbGUgZHVvbmcgZGF1IG5nYXkgZ2lhbyBsbyBOZ3V5ZW4g VGhpIE1pbmggS2hhaSAtIFRydW9uZyANCkRpbmggKFEuMSkgdmFvIGtob2FuZyAxMCBnaW8gMzAg bmdheSAyLjEyLCB0cm9uZyBraGkgdHJlbiB4ZSBraG9uZyB0aGF5IGJvbmcgZGFuZyBuZ3VvaSBu YW8uLi4NCg0KKEFuaDogWGUgYmllbiB4YW5oIGRhdSAiY2hpbmggaW5oIiB0YWkgZ2lhbyBsbyBO Z3V5ZW4gVGhpIE1pbmggS2hhaSAtIFRydW9uZyBEaW5oIChUUC5IQ00pIC0gQW5oOiBEYW0gSHV5 KSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDM4LzIwMTAw OTE0MDAwMzAwLmFzcHggIE5nb2MgVGhvIDE0LzA5LzIwMTAgMDowMyANCg0KVFAgSENNOiBYZSB0 YWkgc2FwIGJheSBnaXVhIGxvLCBkbyBtYXQgZHVvbmcgc3V0IGx1bjsgVGhlbyBuZ3VvaSBkYW4s IGRheSBsYSBkb2FuIHR1bmcgY28gbG8gY290IGN1YSBtb3QgY29uZyB0cmluaCBkYSBkb24gZGkg dHUgbWF5IHRoYW5nIG5heS4gDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwvMTk4Ny8yMDEw MDgvR2lhLXN1LWhpZXAtZGFtLWhvYy10cm8tNy10dW9pLTE3NjMxODAvIEEuSCAxMi8wOC8yMDEw IDIwOjEzOjAwIA0KDQpUUCBIQ006IEdpYSBzdSBoaWVwIGRhbSBob2MgdHJvIDcgdHVvaSANCg0K aHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvcHJvZ3JhbXMvU2NpZW5jZUFuZEVudmlyb25t ZW50L2RhLXBodW9jLWdhcmJhZ2UtZHVtcGluZy1zaXRlLWEtc291cmNlLW9mLXBvbGx1dGlvbi0w ODI0MjAwOTEzMTcxMi5odG1sIEdpYSBNaW5oLCBwaG9uZyB2aWVuIFJGQQ0KDQpUUCBIQ006IEto dSBsaWVuIGhpZXAgeHUgbHkgcmFjIERhIFBodW9jIGdheSBvIG5oaWVtIHRyYW0gdHJvbmcgDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAxMDAy MTk0NS5hc3B4IE1pbmggTmFtIDEwLzEwLzIwMTAgMjoxOSANCg0KVFAgSENNOiBraHUgREggUXVv YyBnaWEgVFAuSENNIC0gZGlhIGJhbiBwaHVjIHRhcCB2ZSB0b2kgcGhhbSB2YSB0ZSBuYW4geGEg aG9pIA0KDQpodHRwOi8vZ2lhZGluaC5uZXQudm4vMjAxMDAzMTIxMDU1NTk0MjdwMGMxMDA1L2xh bmgtZ2F5LWdpYW5nLWhvLXNhaS10aGFuaC14dS1uaGF1LWJhbmctY2hvLWx1YS5odG0gMTIvMDMv MjAxMCwgMTE6MDQoR01UKzcpDQoNClRQIEhDTTogTGFuaCBnYXkgZ2lhbmcgaG8gU2FpIHRoYW5o IHh1IG5oYXUgYmFuZyAiY2hvIGx1YSIgDQoNCk5vIGNvIGJhYywgZ2hlbiB0dW9uZywgbWF1IHRo dWFuIGNhIG5oYW4gaGF5IHRvIGNhbyBzYWkgcGhhbSBjdWEgImRhaSBjYSIuLi4gY2FjIGJhbmcg DQpuaG9tIGdpYW5nIGhvIGRhIGNob24gY2FjaCBnaWFpIHF1eWV0IGJhbmcgdmllYyBzYW4gc2Fu ZyBkdW5nICJjaG8gbHVhIiB4dSBkb2kgcGh1b25nLiANCg0KVGhvaSBnaWFuIGdhbiBkYXksIFNh aSBHb24gbGllbiB0aWVwIHhheSByYSBuaHVuZyB2dSB0aGFuaCB0b2FuIGRhbSBtYXUgY3VhIGNh YyBiYW5nIA0KbmhvbSB4YSBob2kgZGVuIG5oYW0gZ2lhaSBxdXlldCBtYXUgdGh1YW4gdmEgImxh eSBzbyBtYSIgdm9pIGRvaSB0aHUuIFZpZWMgc3UgZHVuZyANCiJoYW5nIG5vbmciIGRhIGtob25n IGNvbiB4YSBsYSB0cm9uZyAidGhlIGdpb2kgbmdhbSIgbyB0aGFuaCBwaG8gbmF5Lg0KDQpUb2kg bmdheSA4LzMsIGhhaSBiYW5nIG5ob20gZ2lhbmcgaG8gdGFwIHRydW5nLCBjaHVhbiBiaSBraWVt IE5oYXQsIHN1bmcsIHJvaSBkaWVuLi4uIGRlIA0KZ2lhaSBxdXlldCBubyBuYW4gY28gYmFjIHRh aSBnb2MgZHVvbmcgRGFpIGxvIERvbmcgVGF5IC0gSG8gSGFvIEhvbiAocXVhbiAxKS4gS2hpIA0K ImdpYXAgbGEgY2EiLCBobyBkYSBsYW4geGEgdmFvIGNoZW0gZ2lldC4gQmkgdHJvbmcgdGh1b25n LCBOZ3V5ZW4gVmFuIEhvYW5nICh0dSBIb2FuZyANCiJUcmFuZyIsIDMxIHR1b2ksIG5ndSBUaGFu aCBIb2EpIHZhIE5naGllbSBWaWV0IEhvYSAoMjMgdHVvaSwgbmd1IEhhaSBQaG9uZykgZGEgZHVu ZyANCnN1bmcgUnVsbyAibmEgZGFuIiB2ZSBwaGlhIGRvaSB0aHUsIGdheSBraW5oIGhvYW5nIGNo byBuZ3VvaSBkYW4gdGhhbmggcGhvLg0KDQpUcnVvYyBkbywgbmdheSAyNS8xLCBtb3QgdnUgbm8g c3VuZyB0YWMgYmFvIGtoYWMgdGFpIHF1YW4gMiBkYSBsYW0gdHJvbmcgdGh1b25nIGNoaSANCk5n dXllbiBUaGkgTmhpZW0gKDQ1IHR1b2kpOyB0cmVuIGR1b25nIGRhcCB4ZSByYSB2dW9uIHJhdSwg Y2hpIE5oaWVtIGRhIGJpIDIgdGhhbmggbmllbiBiaXQgbWF0IGR1bmcgc3VuZyBiYW4gdHJvbmcg dGh1b25nLiBUaGF5IGNoaSBtYXUgbWUgbGVuaCBsYW5nIG5odW5nIHZhbiBzb25nLCBzYXQgaHUg bGVuIGRhbiBkaW5oICJrZXQgbGlldSIgbmFuIG5oYW4gYmFuZyBtb3QgcGhhdCBzdW5nIG51YSBu aHVuZyBkbyBuZ3VvaSBkYW4gZGlhIGh1b25nIHR1YSByYSBuZW4gY2h1bmcgZGEgbmVtIHN1bmcg bGFpLCBsZW4geGUgdGF1IHRob2F0LiAgDQoNCmh0dHA6Ly9iYW9vbmxpbmUudm4vcGhhcC1sdWF0 L3BoYXAtbHVhdC90cGhjbS1uYnNwLXhldC14dS1iYW5nLWN1b3AtZ2lldC1uZ3VvaS1kYS1tYW4u aHRtbCAgMjkvMS8yMDEwIDE1OjA5IA0KDQpULlBIQ006IEJhbmcgY3VvcCBkYSBtYW4gZ2lldCB2 byBjaG9uZyBjaHUgZG9hbmggbmdoaWVwIEtpbSBTb24gKG8gcXVhbiBHbyBWYXApIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDExMDMvMjAxMTAxMTMwMDA4NDku YXNweCBEYW0gSHV5IDEzLzAxLzIwMTEgMDowOCANCg0KVFAgSENNOiBOaGlldSBnaWFtIGRvYyBi aSBiYW5nIGJhaSAiYmlwIiBjdW9uZyBkb2F0IHRhaSBzYW4gIA0KIA0KUGhvbmcgQ1NEVCB0b2kg cGhhbSB2ZSB0cmF0IHR1IHhhIGhvaSAoUEM0NSksIENvbmcgYW4gVFAuSENNIHZ1YSBob2FuIHRh dCBrZXQgbHVhbiANCmRpZXUgdHJhIHZlIGJhbmcgZGFuaCBiYWkgImJpcCIgZG8gVHJhbiBTeSBQ aHVvbmcgKDMzIHR1b2ksIG5ndSBRLlRodSBEdWMpIGNhbSBkYXUsIA0KdmEgY2h1eWVuIGhvIHNv IHNhbmcgVmllbiBLU05EIFRQLkhDTSBkZSBuZ2hpIHRydXkgdG8gdG9uZyBjb25nIDcgYmkgY2Fu LCBnb206IA0KDQpUcmFuIFN5IFBodW9uZywgVHJhbiBOZ29jIFV5ZW4gKDQyIHR1b2ksIG5ndSBR LjEyKSwgVHJhbiBWYW4gVGhhbyAoMzUgdHVvaSwgbmd1IA0KUS4zKSwgVm9uZyBDdW4gRHVvbmcg KDQyIHR1b2ksIG5ndSBRLkJpbmggVGFuKSwgTGUgVGhlIERhbmggKDQ5IHR1b2ksIHF1ZSBIYWkg DQpQaG9uZyksIE5ndXllbiBUaGFjIEJhY2ggKDM2IHR1b2ksIG5ndSBRLjEpLCBOZ3V5ZW4gVGll biBUaGFuICgzMCB0dW9pLCBuZ3UgUS4xKSB2ZSANCmhhbmggdmkgY3VvbmcgZG9hdCB0YWkgc2Fu IHZhIGxhbSBnaWEgY29uIGRhdSwgdGFpIGxpZXUgY28gcXVhbiB0byBjaHVjLiBUaGVvIGtldCBs dWFuIA0KZGlldSB0cmEsIFBodW9uZyBjdW5nIGRvbmcgYm9uIGdpYSBkb2FuaCBuaGFuLCBnaWFt IGRvYywgbmhhbiB2aWVuIGtpbmggZG9hbmggY3VhIGNhYyANCmNvbmcgdHkgY2h1IGRvbmcgbGFt IHF1ZW4gdm9pIGNhYyBnaWFtIGRvYywgdG9uZyBnaWFtIGRvYyBjdWEgY29uZyB0eSBsb24gdGFp IFRQLkhDTSANCnRob25nIHF1YSBpbnRlcm5ldCwgdGhvbmcgdGluIHF1YW5nIGNhby4uLiBTYXUg ZG8sIGJvbiBjaHVuZyBkYXQgdmFuIGRlIGhvcCB0YWMga2luaCANCmRvYW5oLCBoZW4gdGFpIGto YWNoIHNhbiBnaWFvIGRpY2guIA0KDQpUYWkga2hhY2ggc2FuLCBib24gY2h1bmcgImdpYW5nIGJh eSIgdG8gY2h1YyBkYW5oIGJhaSwgZ2lhIHZvIGRpIHJhIG5nb2FpIGNvIHZpZWMsIHJvaSANCm5o byBuYW4gbmhhbiBkYW5oIGdpdW0gdmFpIHZhbi4gVHVvbmcgbGEgY2hvaSBnaXVtLCBuaHVuZyBz YXUga2hpIHRodWEsIGJvbiBjaHVuZyBlcCANCm5hbiBuaGFuIHBoYWkgdHJhIHRpZW4gdGh1YSBi YWMuIFR1IHRoYW5nIDUgZGVuIHRoYW5nIDEyLjIwMDksIGJvbiBjaHVuZyBkYSBnYXkgcmEgaXQg DQpuaGF0IDYgdnUgY3VvbmcgZG9hdCB0YWkgc2FuIHZvaSBzbyB0aWVuIGdhbiA1MDAgdHJpZXUg ZG9uZyB2YSAyMCBuZ2FuIFVTRC4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1s dWF0L0NvLWJhYy1ob2F0LWRvbmctY29uZy1raGFpLzQ1MTM4NjUzLzIxOC8gTi5ELk0gIDEzLzEv MjAwNCwgMDE6MTIgR01UKzcgDQoNClRQIEhDTTogQ28gYmFjIGhvYXQgZG9uZyBjb25nIGtoYWkN Cg0KQmFvIFRoYW5oIE5pZW4gc28gcmEgbmdheSAxNi8xMi8yMDAzIHBoYW4gYW5oIHRpbmggdHJh bmcgY28gYmFjIGNvIHRvIGNodWMgaG9hdCBkb25nIA0KY29uZyBraGFpIGtlbyBkYWkgbmhpZXUg bmFtIHRhaSBraHUgdnVjIGR1b25nIEhvYW5nIEhvYSBUaGFtLCBQLjEzLCBRLlRhbiBCaW5oIA0K KFRQLkhDTSkgZ2F5IG1hdCBhbiBuaW5oIHRyYXQgdHUgbmdoaWVtIHRyb25nIHZhIGxhbSB0YW4g Z2lhIGJhaSBzYW4gcmF0IG5oaWV1IG5ndW9pLiANCg0KTmdheSAxNy8xMiwgVHJ1bmcgdGEgTmd1 eWVuIFZhbiBIdW5nIC0gVHJ1b25nIENvbmcgYW4gUC4xMyBraGkgdHJhIGxvaSBwaG9uZyB2YW4g DQp0cmVuIFRoYW5oIE5pZW4gY2FtIGtldCBzZSB0cmlldCB0aWV1IGNhYyB0byBjaHVjIGNvIGJh YyB0YWkgZGF5LCB0aGUgbmh1bmcgaGllbiBuYXkgdGluaCANCmhpbmggY2FuZyB0cm8gbmVuIGN1 YyBreSBwaHVjIHRhcC4gVGhlbyBnaGkgbmhhbiBjdWEgY2h1bmcgdG9pIHZhbyBjaGlldSA2LzEv MjAwNCwgY28gaXQgDQpuaGF0IDMgc29uZyBiYXUgY3VhIHZhIDEgc29uZyBsYWMgeHUgdXAgLSBu Z3VhIGFuIHRodWEgZGFtIGRvIG1vdCBzbyBkb2kgdHVvbmcgY28gYmFjIA0KY2h1eWVuIG5naGll cCBnYXkgc29uZyB0aHUgaHV0IGhhbmcgdHJhbSBjb24gYmFjLiBEZSBuZ2hpIGNoaW5oIHF1eWVu IGRpYSBwaHVvbmcgc29tIHJhIHRheSB4dSBseS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTA1MS8yMDEwMTIxOTIzNDEyNy5hc3B4IEhvYWkgTmFtIDE5LzEy LzIwMTAgMjM6NDEgDQoNClRQIEhDTTogRGFuaCBiYWMgY29uZyBraGFpIC0gUXV5IG1vIHZhIGNo dXllbiBuZ2hpZXAgDQogIA0KKEFuaDogU2F5IHN1YSBkYW5oIGJhYyBiYW5nIG1heSBvIGRpZW0g MjAzIGR1b25nIHNvIDExLCBQLjEwLCBRLjYgLSBBbmg6IEhvYWkgTmFtKQ0KDQpUaGFuZyA0LjIw MTAsIEJhbyBUaGFuaCBOaWVuIGRhIHR1bmcgcGhhbiBhbmggdGluaCB0cmFuZyBtYXkgZGFuaCBi YWMgdmFvIHRhbiBjYWMgDQpraHUgZGFuIGN1LiBUaGUgbmh1bmcgc2F1IDYgdGhhbmcsIHRpbmgg dHJhbmcgbmF5IGtob25nIGdpYW0sIHRoYW0gY2hpIGNvbiB4dWF0IGhpZW4gDQpuaGlldSBkb25n IG1heSB2YSB0cm8gZGFuaCBiYWMgaGllbiBkYWkgaG9uLiANCg0KQnVjIHh1YyBjdWEgbmd1b2kg ZGFuDQoNCk5oaWV1IG5ndW9pIGRhbiBvIFAuMTAsIFEuNiAoVFAuSENNKSBndWkgZG9uIGRlbiBC YW8gVGhhbmggTmllbiBwaGFuIGFuaCBvIGRpYSBiYW4gDQpwaHVvbmcgY28gaGFpIHZvIGNob25n IG9uZyBOZy4gdG8gY2h1YyBraW5oIGRvYW5oIG1heSBkYW5oIGJhYyBzdW90IG5nYXkgZGVtOyAN Cmtob25nIGNoaSAidGhvbmcgbGluaCIgbyBkaWEgYmFuIFAuMTAgbWEgY29uIGJhbmggdHJ1b25n IHNhbmcgY2FjIHBodW9uZyBraGFjIG5odSA4IA0KdmEgMTEuIFZpZWMga2luaCBkb2FuaCBtYXkg ZGFuaCBiYWMgZGEgbGFtIGNvbiBlbSBobywga2hvbmcgY2hpIG1hdCB0aWVuIG1hIGNvbiBtYXQg DQpjYSB0aG9pIGdpYW4sIHN1b3QgbmdheSAibmdvaSB0aGllbiIga2hpZW4gdmllYyBob2MgaGFu aCBnaWFtIHN1dCwgY28ga2hpIHRyb24gaG9jIGRlIHZhbyANCmRhbmggYmFjIHZvaSBtYXkuDQoN CkNodW5nIHRvaSBjbyBtYXQgbyBkdW9uZyBzbyAxMSwga2h1IGRhbiBjdSBCaW5oIFBodSB0aHVv YyBQLjEwLCBRLjYgdmFvIHNhbmcgMTEuMTIuIA0KRGFvIHF1YSBkYW8gbGFpIHR1eWVuIGR1b25n IG5heSBjaHVuZyB0b2kgZGVtIGR1b2MgaXQgbmhhdCBjbyA1IGRpZW0gZGF0IG1heSBkYW5oIGJh YyANCnJhdCBjb25nIGtoYWksIGRpZW0gbmFvIGN1bmcgdGh1IGh1dCByYXQgbmhpZXUgbmd1b2kg Y2hvaS4gDQoNClRhcCB4ZSB2YW8gY2FuIG5oYSBjYXAgNCBjbyBkaWEgY2hpIHRoZW8gZG9uIHBo YW4gYW5oIGxhIHNvIDQgZHVvbmcgMTEsIGNhbmggY3VhIGtoZXAgDQpobyBuaHVuZyB0aGF5IGNv IGtoYWNoLCBoYWkgbmd1b2kgbW90IG5hbSBtb3QgbnUga2hvYW5nIGhvbiAyMCB0dW9pIGRvbiBk YSByYSBrZW8gDQpyb25nIGN1YSBkZSBuZ2hpIGNodW5nIHRvaSBjaGF5IHRoYW5nIHhlIHZhbyBi ZW4gdHJvbmcgbmhhIGNobyBhbiB0b2FuLiBEaWVtIG5heSBjbyANCnRvbmcgY29uZyAxMSBtYXkg ZGFuaCBiYWMgdm9pIGNhYyB0cm8gbmh1IGR1YSBoZW8sIGR1YSBjaG8uLi4gTW9jIDIwIG5nYW4g bXVhIDQwIHRoZSANCmNodW5nIHRvaSBuZ29pIHZhbyBjaGllYyBtYXkgYmF0LiBDaHVhIGRheSA1 IHBodXQsIG1heSBkYSBudW90IHNhY2ggc28gdGhlIHZ1YSBtb2kgDQptdWEgY3VhIGNodW5nIHRv aS4gDQoNClRpZXAgdHVjIHNhbmcgZGllbSB0aHUgaGFpIGxhIGNhbiBuaGEgc28gNjcuIE8gZGF5 IGNvIDEwIG1heSBkdW9jIHF1YW4gbHkgYm9pIG1vdCBjbyANCmdhaSByYXQgdHJlLiBOaGluIHZh byAxMCBtYXkgZG9pIGN1LCBjaHVuZyB0b2kgImRvaSIgY2hvaSBtYXkgIjEyIGNvbiBnaWFwIGNo dSBraG9uZyANCmNob2kgbWF5IGN1IiwgdGhpIGNvIGdhaSBuaGFuaCBuaGF1IGh1b25nIGRhbjog IkFuaCBtdW9uIGNob2kgbWF5IGRvIHNhbmcgMjAzIChkaWVtIGRhdCANCm1heSBvIHNvIG5oYSAy MDMgY2FjaCBkbyBraG9hbmcgMTAwbSkgdmkgYmVuIGRheSB2b2kgYmVuIG5heSBsYSBtb3QiLiBE dW5nIG5odSANCmxvaSBjbyBnYWksIGRpZW0gMjAzIGNvIDEyIG1heSwgdHJvbmcgZG8gY28gMiBt YXkgMTIgY29uIGdpYXAgKHR1YyBsb2FpIG1heSBtb2kgc3UgZHVuZyANCmNvbmcgbmdoZSBiYW5n IHBoYW4gbWVtIHZpIHRpbmgpIGRhbmcgY28gNi03IHRoYW5oIG5pZW4gbWF0IGRhbiB2YW8gbWFu IGhpbmguIFRoYXkgDQpraGFjaCwgbW90IHRoYW5oIG5pZW4gZHVuZyBkYXkgaG9pIGNob2kgZ2kg dGhpIGNodW5nIHRvaSBub2kgbXVvbiBjaG9pIG1heSAiMTIgY29uIA0KZ2lhcCIuIExhcCB0dWMg YW5oIHRhIGNobyBiaWV0IGNob2kgbWF5IG5heSBpdCBuaGF0IG1vdCBsYW4gbGEgNTAgbmdhbiBk b25nLiBDYW0gdGllbiANCnhvbmcsIGFuaCB0YSBsYXkgY2hpYSByYSBtbyBraG9hIHZhIGJhdCBt YXkgdmFvIG5hYyAxMDAgZGllbSBjaG8gY2h1bmcgdG9pIGNob2kuIA0KTmh1bmcgY2hpIHRyb25n IHRpY2ggdGFjLCA1MCBuZ2FuIGRvbmcgY3VhIGNodW5nIHRvaSBkYSB0aHVhIHNhY2guIEJlbiBj YW5oIGNodW5nIHRvaSwgMyANCnRoYW5oIG5pZW4gY3VuZyBkYW5nIGNheSBjdSB2aSBiaSBtYXkg YW4gaGV0IHRpZW4uIExheSBjbyBob20gbmF5IGtob25nIGhlbiwgY2h1bmcgdG9pIA0KZGF0IHhl IHJhIGtob2kgdHUgZGllbS4gDQoNCihBbmg6IER1bmcgYnVhIHRydWEgbmdheSB0YWkgbWF5IGRh bmggYmFjIC0gQW5oOiBIb2FpIE5hbSkgDQoNCkNodW5nIHRvaSB0aWVwIHR1YyBkZW4gZGllbSA4 ODEgZHVvbmcgSGF1IEdpYW5nIChQLjExLCBRLjYpLCBkYXkgY3VuZyBsYSBkaWVtIG5hbSANCnRy b25nIGRvbiBwaGFuIGFuaCBjdWEgbmd1b2kgZGFuLiBPIGRpZW0gbmF5LCBiZW4gbmdvYWkgY28g YmF5IDMgbWF5IGNob2kgZ2FtZSBjdSBreSANCmtob25nIG1vdCBib25nIG5ndW9pLCBuaHVuZyBx dWEgbW90IGJ1YyBtYW4ga2luIHRoaSBiZW4gdHJvbmcgY28gMTAgbWF5IGRhbmggYmFjIA0KZHVv YyBxdWFuIGx5IGJvaSBtb3Qgbmd1b2kgZGFuIG9uZyBraG9hbmcgdHJlbiA0MCB0dW9pLiANCg0K UXV5IG1vIHZhIGNodXllbiBuZ2hpZXANCg0KQ3VuZyB0aGVvIGRvbiBwaGFuIGFuaCBjdWEgbmd1 b2kgZGFuLCBjaHVuZyB0b2kgdGllcCB0dWMgdG9pIGRpZW0gNzY2IGR1b25nIEhhdSANCkdpYW5n LCBQLjEyLCBRLjYuIFRoZW8gcGhhbiBhbmgsIGRpZW0gbmF5IHF1eSBtbyB2YSBjaHV5ZW4gbmdo aWVwIGJhYyBuaGF0IG8gUS42IA0KaGllbiBuYXkuIE5oaW4gYmVuIG5nb2FpIHRoaSBjaGFuZyBj byB2ZSBnaSBsYSBtb3QgdHUgZGllbSBkYXQgbWF5IGRhbmggYmFjIHF1eSBtbyB2aSANCmJlbiBu Z29haSBjaGkgZGF0IDQgbWF5IGNob2kgZ2FtZS4gS2hpIGNodW5nIHRvaSB0YXAgdmFvIHRoaSBt b3QgYmFvIHZlIHh1YXQgaGllbiBtbyANCmNhbmggY3VhIG1vaSBjaGFvLiBEdW5nIHhlIHZhIGJ1 b2MgcXVhIGNhbmggY3VhLCBsdWMgbmF5IGNodW5nIHRvaSBtb2kgYmF0IG5nbyB2aSBiZW4gDQp0 cm9uZyBsYSBtb3QgZGFuIHZvaSAyMyBtYXkgZGFuaCBiYWMgKGNvIDggbWF5IGRvaSBtb2kpIGN1 bmcgdm9pIG1vdCBzbyBraGFjaCBkYW5nIA0KbmdvaSBzYXkgc3VhIGRhbiBtYXQgdmFvIG1hbiBo aW5oLiANCg0KVGhlbyBxdWFuIHNhdCBjdWEgY2h1bmcgdG9pLCBkaWVtIDc2NiBjbyAzIG5ndW9p LCAyIG5hbSB2YSAxIG51IGRpZXUgaGFuaC4gTmd1b2kgbnUgDQpsYW0gbmhpZW0gdnUgdGh1IHRp ZW4gcGhhdCB0aGUsIG1vdCBuYW0gbGFtIG5oaWVtIHZ1IGdpb2kgdGhpZXUgbWF5IG1vaSB2YSBj YWNoIGNob2ksIA0KY29uIG1vdCBuYW0gZ2l1IHhlIGtpZW0gYmFvIHZlIGJlbiBuZ29haS4gTyB0 dSBkaWVtIG5heSwgZGFjIGJpZXQgY28gbW90IG1heSBsb24gZGFuaCANCmNobyA0IG5ndW9pIGNo b2kgY3VuZyBtb3QgbHVjLiBUaGF0IHRoZXUgZGF0IHhlIHJhIGtob2kgZGllbSA3NjYgdmkgdGh1 YSBsaWVuIHR1YywgY2h1bmcgDQp0b2kgbW9pIGhpZXUgbyBkYXkgKHZhIG1vdCBzbyBkaWVtIGto YWMpIHZpZWMgZGF0IHZhaSBtYXkgY2hvaSBnYW1lIGN1IGt5IG8gYmVuIG5nb2FpIA0KdnVhIGxh IG5ndXkgdHJhbmcsIHZ1YSBsYSBtb3QgYW0gaGlldSBjdWEgbW90IGRpZW0gZGFuaCBiYWMgY2h1 eWVuIG5naGllcC4gDQoNClRyb25nIHF1YSB0cmluaCB0aW0gaGlldSwgY2h1bmcgdG9pIG5oYW4g dGhheToga2hvbmcgY2hpIGNhYyB0dSBkaWVtIGRhbmggYmFjIG8gUS42IGRhbSANCiJ0dW5nIGhv YW5oIiwgbWEgbyBtb3Qgc28gcXVhbiBraGFjIG5odSBUYW4gQmluaCwgMTIuLi4gdGluaCB0cmFu ZyBkYW5oIGJhYyBiYW5nIG1heSANCmN1bmcgY29uZyBraGFpIGtob25nIGtlbS4gQ3UgdGhlIHRy ZW4gbW90IGRvYW4gZHVvbmcgQXUgQ28gKFAuMTQsIFEuVGFuIEJpbmgpIGNodWEgDQpkYXkgMjAw bSBjbyBoYWkgZGllbSBkYXQgbWF5IGRhbmggYmFjIGx1b24gZG9uZyBuZ2hldCBraGFjaC4gDQoN ClRydWEgMTEuMTIgY2h1bmcgdG9pIGJ1b2MgdmFvIG1vdCBkaWVtIGRhdSBkdW9uZyBBdSBDby4g TyBkYXkgY28gMTIgbWF5IGRhbmggYmFjIA0KdHJvbmcgZG8gY28gNiBtYXkgZG9pIG1vaSBkdW9j IHF1YW4gbHkgYm9pIGhhaSBuZ3VvaSwgbW90IG5hbSBtb3QgbnUuIFF1eSBkaW5oIG8gZGF5IA0K Y3VuZyBsYSB2b2kgbWF5IGRvaSBtb2kga2hvbmcgY2hvIGNob2kgZHVvaSA1MCBuZ2FuIGRvbmcu IFRpZXAgdHVjIHNhbmcgZGlhIGNoaSAxMDA0IA0KZHVvbmcgQXUgQ28uIFRhaSBkYXkgY28gMTQg bWF5IGRhbmggYmFjIGN1bmcgaGFuZyBjaHVjIHRoYW5oIG5pZW4gZGFuZyB2YSBtbyBob2kgDQoi ZGF1IiB2b2kgbWF5LCBjbyBuZ3VvaSBjb24gdnVhIGNob2kgdnVhIGFuIGNvbSBkZSB0aWVwIHRo ZW0gc3VjLiBEdW5nIHhlIG8gbmdvYWkgDQpjaHVuZyB0b2kgbmdvaSB2YW8gbW90IG1heSBiYXQg Y3Uga3kgdmEgbGF5IHRvIDIwIG5nYW4gZG9uZyBtdWEgNDAgdGhlLiBDdW5nIG5odSANCm5odW5n IGxhbiB0cnVvYyBtYWMgZHUgZGF0IGNhYyBjdWEgbmh1bmcgY3VvaSBjdW5nIHZhbiB0aHVhIHNh Y2guIFRpZXAgdHVjIG11YSB0aGVtIA0KNDAgdGhlIGRlIG5nb2kgdmFvIG1vdCBtYXkga2hhYyBu aGFtICJ0aHUgdmFuIG1heSIsIG5odW5nIHJvdCBjdW9jIGNodW5nIHRvaSBjdW5nIA0Ka2hvbmcg dGhlIHRoYW5nIG5vaSBtYXkuLi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdz L1BhZ2VzLzIwMTA1Mi8yMDEwMTIyMTIzMjgyNS5hc3B4IFR1eSBQaG9uZyAyMS8xMi8yMDEwIDIz OjI4IA0KDQpUUCBIQ00gdmEgQmluaCBEdW9uZzogRGFuaCBiYWMgY29uZyBraGFpIC0gS2h1YXkg ZG9uZyB2dW5nIHF1ZSAgDQogDQpLaG9uZyBjaGkgbyBUUC5IQ00sIHRhaSBCaW5oIER1b25nLCBu aGlldSBraHUgdnVjIG1heSBkYW5oIGJhYyBjdW5nIHh1YXQgaGllbiBuaGFuIG5oYW4sIHRoYW0g Y2hpIG5nYXkgc2F0IHRydW9uZyBob2MuIA0KDQpDaGF5IG5hbg0KDQpUYWkgbW90IGRpZW0gZGFu aCBiYWMgYmFuZyBtYXkgZ2FuIG5nYSBiYSBPbmcgWGEgKGtodSBwaG8gRG9uZyBUYW4sIHRoaSB0 cmFuIERpIEFuLCANCkJpbmggRHVvbmcpLCBjaHVuZyB0b2kgZ2FwIGFuaCBQaGFtIFZhbiBIb2Fu ZyAoMzAgdHVvaSkgbGFtIGJhbyB2ZSBtb3QgY29uZyB0eSBvIERpIA0KQW4uIEFuaCBIb2FuZyBr ZSB0dW5nIGxhICJjb24gbmdoaWVuIiBjbyB0aWVuZyBvIGtodSB2dWMsIHN1b3QgbmdheSBjaG9p IGNhYyB0cm8gbmh1IA0KZHVhIG5ndWEsIGRhbmggYmF0Li4uICJOZ2hpZW4gZGVuIG11YyBtYSBu Z2F5IGtoaSBuZ3UsIHRvaSB2YW4gbW8gdGhheSBjYSB0aWVuZyBuZ3VhIA0KbG9jIGNvYyBoYXkg dGllbmcgaHUgY3VhIG5odW5nIGNvbiB0aHUuIEN1IGNvIGJhbyBuaGlldSB0aWVuIGtpZW0gZHVv YyBkZXUgbnVvbmcgaGV0IA0KdmFvIGNhYyBjbyBtYXkgZGFuaCBiYWMiLCBIb2FuZyBrZS4gTmd1 b2kgbmhhIGN1YSBIb2FuZyBjaG8gYmlldCBjbyB0aG9pIGRpZW0gYW5oIGFuIA0KZGFtLCBuYW0g ZGUgbyBjYWMgdHUgZGllbSBkYW5oIGJhYyB0cmVuIGR1b25nIERUNzQzICh4YSBUYW4gRG9uZyBI aWVwLCBodXllbiBEaSANCkFuKS4gRG8gdmF5IG11b24sIEhvYW5nIHBoYWkgbGFtIHRodWUgY2hv IGNodSB0aWVtIGRlIHRydSBuby4gR2lhIGRpbmggbGFtIG1vaSBjYWNoIA0Kbmh1bmcgdmFuIGto b25nIGFuIHRodWEgbmVuIHBoYWkgY2h1eWVuIG5oYSB2ZSBUaHUgRHVjIHNpbmggc29uZyBkZSBj dXUgSG9hbmcgdGhvYXQgDQpraG9pIHRybyBkbyBkZW4uIA0KDQpDdW5nIGNhbmggbmdvIHZvaSBI b2FuZyBsYSBtb3QgdGhhbmggbmllbiB0ZW4gS2hhbmcsIGhpZW4gY3VuZyBsYW0gYmFvIHZlIHZv aSBzbyB0aWVuIA0KbHVvbmcgMSw1IHRyaWV1IGRvbmcvdGhhbmcuIEdhcCBLaGFuZyB0YWkgbW90 IGRpZW0gZGFuaCBiYWMgdHJlbiBkdW9uZyBEVDc0MyAoYXAgDQpDaGlldSBMaWV1LCB4YSBUYW4g RG9uZyBIaWVwKSwgZHUgZG9pIG1hdCBxdWFuZyBzYXUgc2F1IG1vdCBkZW0gdGh1YyB0cmFuZyBj dW5nIGNvIA0KbWF5IGRhbmggYmFjLCBtaWVuZyBuZ2FwIG5nYW4gbmdhcCBkYWksIG5odW5nIGFu aCBtYXQgS2hhbmcgdmFuICB0aGVtIHRodW9uZyBuaGluIA0Kbmh1bmcgImNvbiBuZ2hpZW4iIGto YWMgZGFuZyBkYW5oIGJhYy4gTmdhdCBub2ksIGJhbyBuaGlldSB0aWVuIGJhYyBLaGFuZyBkYSBu dW9uZyANCnNhY2ggc2F1IGNhIHRydWMgZGVtICgyMiBnaW8pLiBLaGFuZyBub2k6ICJCYXkgZ2lv IGNvIG5oaWV1IHRybyBoYXAgZGFuIHF1YSwgY2hhbiBkdWEgDQpuZ3VhIHRoaSBxdWEgZHVhIGhl bywgZHVhIGNobywgaGluaCBhbmggdHV5ZXQgZGVwLCBhbSB0aGFuaCBoYXAgZGFuIi4gU2F1IGto aSBkdW9jIGNobyANCjEwMC4wMDAgZG9uZywgS2hhbmcgY2hvaSB0cm8gZHVhIGhlby4gQ28gbHVj IEtoYW5nIGFuIGR1b2MgcmF0IG5oaWV1IGRvbmcgeHUsIG5ldSBxdXkgDQpyYSB0aWVuIGxhIGxv aSBkZW4gNDAwLjAwMCBkb25nLCBuaHVuZyBraG9hbmcgMjAgcGh1dCBzYXUgdGhpIGJpICJjaGF5 IHR1aSIsIHRyZW4gdGF5IA0Ka2hvbmcgY29uIG1vdCB4dS4gS2hhbmcgY2hvIGJpZXQgY28gbmdh eSBkYSB0aHVhIGRlbiAxIHRyaWV1IGRvbmcgdmEgaGllbiBnaW8gZGFuZyANCnRoaWV1IG5vIG5o dW5nIG5ndW9pIHRyb25nIGdpYSBkaW5oIGRlbiAxMDAgdHJpZXUgZG9uZy4gVm9pIHNvIHRpZW4g bHVvbmcgbmh1IEtoYW5nIA0KZGFuZyBsYW0gYmFvIHZlIGNoYWMgY3VuZyBwaGFpIG1hdCBjYSBj aHVjIG5hbSBtb2kgdHJhIGR1b2Mgbm8uIA0KDQpDbyBxdWFuIGNodWMgbmFuZyBsbyBsYQ0KDQpU YW5nIGN1b25nIGtpZW0gdHJhIHh1IGx5IA0KDQpPbmcgSHV5bmggVmFuIE5oaSwgUGhvIGNodSB0 aWNoIFVCTkQgdGluaCBCaW5oIER1b25nIHZ1YSBreSBjb25nIHZhbiBzbyANCjM3NDYvVUJORC1W WCB5ZXUgY2F1IFNvIFZhbiBob2EgLSBUaGUgdGhhbyAtIER1IGxpY2gsIENvbmcgYW4gdGluaCwg UXVhbiBseSB0aGkgDQp0cnVvbmcuLi4gdGllcCB0dWMgdGFuZyBjdW9uZyBraWVtIHRyYSwgeHUg bHkgbmdhbiBjaGFuIHRybyBjaG9pIGRpZW4gdHUgZGFuaCBiYWMgdHJlbiBkaWEgDQpiYW4uIFRo ZW8gZG8sIFVCTkQgdGluaCBCaW5oIER1b25nIHlldSBjYXUgY2FjIGRvbiB2aSBuZXUgdHJlbiBj aHUgZG9uZyBwaGF0IGhpZW4sIA0KeHUgbHkgdHJpZXQgZGUgY2FjIGNvIHNvIHNhbiB4dWF0LCBs YXAgcmFwLCB2YW4gY2h1eWVuIG1heSBkYW5oIGJhYyB2YSB4dSBseSBuZ2hpZW0gY2FjIA0KY2Eg bmhhbiBsaWVuIHF1YW4uIA0KDQpEYW8gcXVhbmggbW90IHZvbmcga2h1IHZ1YyB4YSBUYW4gRG9u ZyBIaWVwIHZhIHRoaSB0cmFuIERpIEFuLCBjaHVuZyB0b2kgZGVtIA0Ka2hvYW5nIDIwIGRpZW0g ZGF0IG1heSBkYW5oIGJhYyB2b2kgdHJlbiAxMDAgbWF5LiBDbyBuaHVuZyBub2kgbmh1IHRyZW4g ZHVvbmcgDQpEVDc0MywgY2FjIGRpZW0gZGF0IG1heSBkYW5oIGJhYyBjYWNoIG5oYXUgY2hpIHZh aSB0cmFtIG1ldC4gSGF1IGhldCBjYWMgZGllbSBraG9uZyANCmNvIGJhbmcgaGlldSwgZGlhIGNo aSB2YSBtb2kgZGllbSBjbyBtb3Qgbmd1b2kgbnUgZHVuZyB0aHUgdGllbi4gQ2h1bmcgdG9pIGdo ZSB2YW8gbW90IA0KZGllbSBkYXQgNyBtYXkgZGFuaCBiYWMgdGFpIGtodSBwaG8gRG9uZyBUYW4s IHRoaSB0cmFuIERpIEFuLiBDYW4gcGhvbmcgbGEgbW90IG5oYSB0cm8gDQpjaG8gdGh1ZSwgYmVu IHRyb25nIGRvbmcgbmdoZXQgbmd1b2ksIGNodSB5ZXUgbGEgdGhhbmggdGhpZXUgbmllbi4gRGll bSBkYXQgbWF5IGRhbmggDQpiYWMgbmF5IGxhIGN1YSBtb3Qgbmd1b2kgdGVuIE4uLCBob2F0IGRv bmcgbGllbiB0dWMgdHUgc2FuZyBkZW4gMTIgZ2lvIGRlbSwgbmV1IGNvIGtoYWNoIA0KdGhpIGRv bmcgY3VhIHBodWMgdnUgY2hvIHRhbiBzYW5nLiBPIGNhYyBhcCBDaGlldSBMaWV1LCBEb25nIFRh biAoeGEgVGFuIERvbmcgSGllcCkgDQpjaHVuZyB0b2kgZGVtIGR1b2MgaG9uIDEwICBkaWVtIGRh dCBtYXkgZGFuaCBiYWMsIGhvYXQgZG9uZyBjb25nIGtoYWkgdmEgY2FjIGRpZW0gDQpuYXkgZGV1 IGN1YSBoYWkgdm8gY2hvbmcgVC4gdmEgTC4gdHUgVFAuSENNLiANCg0KS2hpIGNodW5nIHRvaSBk ZW4gdGltIGhpZXUgdGluaCB0cmFuZyBkYW5oIGJhYyB0cmFuIGxhbiwgdHJ1bmcgdGEgTmd1eWVu IEhvbmcgVHJ1b25nLCANClRydW9uZyBjb25nIGFuIHhhIFRhbiBEb25nIEhpZXAsICJkYXkiIHNh bmcgYm8gcGhhbiBWYW4gaG9hIC0gVGhvbmcgdGluLiBOaHVuZyBzYXUgDQpraGkgZGUgY2FwIGRl biB0cmFjaCBuaGllbSBjdWEgbmdhbmggY29uZyBhbiBkaWEgcGh1b25nLCB0aGkgIHRydW5nIHRh IFRydW9uZyBtb2kgbmhpbiANCm5oYW4gbGEgbWF5IG5hbSBuYXkgQ29uZyBhbiB4YSBUYW4gRG9u ZyBIaWVwIGN1bmcgbmFtIGR1b2MgY2FjIHR1IGRpZW0gZGF0IG1heSANCmRhbmggYmFjLCBuaHVu ZyB4dSBseSB0aGkgcmF0IGl0LiAiQ2h1bmcgdG9pIGRhIG5hbSBkYW5oIHNhY2ggbmh1bmcgZGlh IGRpZW0gZGF0IG1heSANCmRhbmggYmFjIHRyb25nIHRheSwgbmh1bmcgdmFuIHBoYWkgY2hvIGhv cCB2YSBkZSB4dWF0IGdpYWkgcGhhcCB2YSBwaG9pIGhvcCB2b2kgY2FjIA0Kbmdhbmgga2hhYyBk ZSBraWVtIHRyYSwgeHUgbHkgZHV0IGRpZW0iLCB0cnVuZyB0YSBUcnVvbmcgbm9pLiBSaWVuZyBj YXUgaG9pIGNvIGhheSANCmtob25nIHZpZWMgY2FuaCBzYXQga2h1IHZ1YyBiYW8ga2UgY2hvIGRp ZW0gZGFuaCBiYWMsIHRydW5nIHRhIFRydW9uZyBjaG8gYmlldDogIkhpZW4gDQpnaW8gdGhpIGNo dWEgcGhhdCBoaWVuIGRhdSBoaWV1IHZpIHBoYW0gdmEgbmV1IGNvIHNlIHh1IGx5IG5naGllbSIu IA0KDQpUcm8gbGFpICJkaWVtIG5vbmciDQoNCkJhbyBUaGFuaCBOaWVuIHZhbyB0aGFuZyA0LjIw MTAgdHVuZyBjbyBsb2F0IGJhaSBwaGFuIGFuaCBtYXkgZGFuaCBiYWMgdHJhbiBsYW4gdHJlbiAN CmRpYSBiYW4gdGhpIHhhIFRodSBEYXUgTW90IChCaW5oIER1b25nKS4gVGllcCB0aHUgcGhhbiBh bmgsIENvbmcgYW4gdGhpIHhhIFRodSBEYXUgDQpNb3QgZGEgY2hpIGRhbyBjb25nIGFuIGRpYSBw aHVvbmcgdHJ1eSBxdWV0LiBUcnVuZyB0YSBOZ3V5ZW4gVGhhbmggS2hpZW0sIFBobyANCnRydW9u ZyBDb25nIGFuIHBodW9uZyBDaGFuaCBOZ2hpYSAodGhpIHhhIFRodSBEYXUgTW90KSwgY2hvIGJp ZXQ6ICJLZSB0dSBraGkgQmFvIA0KVGhhbmggTmllbiBjbyBsb2F0IGJhaSBwaGFuIGFuaCB2ZSB0 aW5oIHRyYW5nIG1heSBkYW5oIGJhYyB0cmVuIGRpYSBiYW4sIGNodW5nIHRvaSANCnRodW9uZyB4 dXllbiBwaG9pIGhvcCBjb25nIGFuIHRoaSB4YSB0cnV5IHF1ZXQgdmEgZGVuIG5heSBoYXUgbmh1 IHRyZW4gZGlhIGJhbiBjaHVhIA0KcGhhdCBoaWVuIG5odW5nIHR1IGRpZW0gbW9pLiBOZXUgcGhh dCBoaWVuLCBjaHVuZyB0b2kga2llbiBxdXlldCB4b2EgYm8gbmdheSIuIENvbmcgYW4gDQpwaHVv bmcgUGh1IExvaSAodGhpIHhhIFRodSBEYXUgTW90KSBjdW5nIHRodW9uZyB4dXllbiByYSBxdWFu IHh1IGx5LiBNb2kgZGF5LCBjbyANCnF1YW4gbmF5IGRhIGJhdCBtb3QgdHUgZGllbSBkYXQgNyBt YXkgZGFuaCBiYWMgdGFpIGtodSBwaG8gMy4gRHUgdmF5LCB0aGVvIGdoaSBuaGFuIGN1YSANCmNo dW5nIHRvaSwgdHJlbiBkaWEgYmFuIHRoaSB4YSBUaHUgRGF1IE1vdCB2YW4gY29uIG5oaWV1IGRp ZW0gZGF0IG1heSBkYW5oIGJhYyBuaHU6IA0Ka2h1IHZ1YyBkdW9uZyBLOCAocGh1b25nIFBodSBM b2kpIHZhIGtodSB2dWMga2h1IGRhbiBjdSBIaWVwIFRoYW5oIElJIChwaHVvbmcgDQpIaWVwIFRo YW5oKSBjbyBpdCBuaGF0IDQgZGllbSBraW5oIGRvYW5oIG1heSBkYW5oIGJhYyB2b2kgc28gbHVv bmcgbW9pIGRpZW0gdHUgMyAtIDUgDQptYXkuIA0KDQpUYWkgaHV5ZW4gVGh1YW4gQW4sIG1vdCBz byBkaWVtIGtpbmggZG9hbmggbG9haSBoaW5oIG5heSB0aHVvbmcgbmFtIGdhbiBjYWMgdHJ1b25n IA0KaG9jIG5odSB0cmVuIGR1b25nIDIyLTEyICh4YSBUaHVhbiBHaWFvKSBjbyAyIGRpZW0ga2lu aCBkb2FuaCBtYXkgZGFuaCBiYWMuIFRoZW8gDQpuZ3VvaSBkYW4gbyBkYXksIGNodSB5ZXUgZG9p IHR1b25nIGRlbiBjaG9pIGxhIHNpbmggdmllbiB0cnVvbmcgQ2FvIGRhbmcgbmdoZSBWaWV0IE5h bSAtIFNpbmdhcG9yZS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTA1Mi8yMDEwMTIyMTAwNDc0OC5hc3B4IE0uTiAgTWluaCBOYW0gSG9haSBOYW0gMjEvMTIv MjAxMCA3OjQ3IA0KDQpUUCBIQ006IERhbmggYmFjIGNvbmcga2hhaSAtIE5hbmcgY2FwIGNvbmcg bmdoZSAiZG8gZGVuIiAgDQoNCihBbmg6IENhYyBjb24gYmFjIGRhbmcgc2F5IHN1YSB0YWkgZGll bSAxMDA0IEF1IENvIFRQLkhDTSAtIGFuaDogSG9haSBOYW0pIA0KDQpCZW4gY2FuaCBtYXkgZGFu aCBiYWMgZG9pIGN1LCBoaWVuIG5heSBkbyBuaHUgY2F1IGNhbiBjbyBjYWkgbW9pIHRodSBodXQg bmd1b2kgaGFtIGRvIA0KZGVuLCB2YSBkbyAidHJpbmggZG8iIGtoYWNoIGNob2kgZGEga2hhIGhv biwgdGhpIHRydW9uZyB4dWF0IGhpZW4gbG9haSBtYXkgZGFuaCBiYWMgZG9pIA0KbW9pIHN1IGR1 bmcgY29uZyBuZ2hlIHZpIHRpbmggcmF0IHRpZW4gbG9pLCBkYW4gdHJvbmcgbmdoZSBnb2kgbGEg Im1heSBkYWkgZ2lhIi4gDQoNCkhhbmcgbG9hdCBtYXkgZGFuaCBiYWMgbmh1IG1heSBiYXQsIGR1 YSBjaG8sIGR1YSBoZW8geHVhdCBoaWVuIG1heSBuYW0gdHJ1b2MgZ2lvIGRheSANCmRhIGxhYyBo YXUuIE1hYyBkdSBjbyBoZSB0aG9uZyBkaWVuIHR1IGR1b2MgY2FpIGRhdCB0aGVvIHlldSBjYXUg ZGUgIm1vYyB0dWkiIGtoYWNoIA0KY2hvaSwgbmh1bmcgY2FjIG1heSBkb2kgY3Uga2hpZW4gbmd1 b2kgY2hvaSBtYXQgY29uZyBkdXQgdGhlIHZhbyBtYXkuIE1hdCBraGFjLCAiZGllbSANCnlldSIg Y3VhIG1heSBkb2kgY3UgY3VuZyBsYW0gY2FjIGNodSBtYXkgcGhpZW4gbG9uZyB2aSB0aHVvbmcg eHV5ZW4gYmkgY2hhcCBkYW4gZGVuIA0KbG9hbiBtYXkuIA0KDQpLaGFjaCBjaG9pIGNodXllbiBu Z2hpZXAgbG9pIGR1bmcgZGllbSB5ZXUgbmF5LCBjaG8gbmd1b2kgcXVhbiBseSBsbyBsYSBzZSBk dW5nICJ0aHUgDQp0aHVhdCIgbGFtIGNoYXAgbWF5IGRlIGFuIGdpYW4gZGllbS4gRGllbSBhbiBn aWFuIG5heSBkdW9jIHF1eSBkb2kgcmEgdGhlLCB0dSB0aGUgdGluaCANCnRoYW5oIHRpZW4uIENo aW5oIHZpIHRoZSBtYSBkYSBjbyBuaGlldSBkaWVtIGNvIG1heSBkYW5oIGJhYyBwaGFpIHRyYSBj aG8gbmd1b2kgY2hvaSANCmhhbmcgdHJpZXUgZG9uZyBuaHVuZyBraG9uZyBoaWV1IG5ndXllbiBk bywgbWFjIGR1IGRhIGNhaSBjaGUgZG8gY2h1IG1heSBhbiA3IGtoYWNoIA0KYW4gMyBtYSB2YW4g dGh1YSBraGFjaC4uLiAgICAgICAgDQoNClR1IHBoYW4gYW5oIGN1YSBjYWMgIm9uZyBiYSBjaHUi LCAibmhhIHNhbiB4dWF0IiBudW9jIG5nb2FpIGRhIGJhdCB0YXkgdmFvIGNhaSB0aWVuLiBDaGkg DQpzYXUgbW90IHRob2kgZ2lhbiBuZ2FuIG1vdCBsb2FpIG1heSBkb2kgbW9pIHZvaSBjb25nIG5n aGUgInZpIHRpbmgsIHN1IGR1bmcgY2hpcCBkaWVuIA0KdHUiLCBjbyB0aGUgbmdhbiBjaGFuIG5o dW5nIHZpIGtoYWNoIGNvIHRpbmggbGFtIGNoYXAgbWF5IGRlIGFuIGdpYW4gZGllbSwgZHVvYyBj aGFvIA0KYmFuLiBWb2kgY29uZyBuZ2hlIG1vaSBuYXksIG5ndW9pIGNob2kga2hvbmcgY2FuIHBo YWkgbXVhIHRoZSwgbXVvbiBkYW5oIGJhbyBuaGlldSANCm5ndW9pIHF1YW4gbHkgY2hpIHZpZWMg bW8ga2hvYSwgY2FpIHNvIGRpZW0gdHVvbmcgdW5nLiAgICAgDQoNClRyb25nIHZhaSBuZ3VvaSBt dW9uIG11YSBtYXkgZGFuaCBiYWMsIGNodW5nIHRvaSBsYW0gcXVlbiB2b2kgVC4gKG5ndW9pIGN1 bmcgY2FwIA0KbWF5IGNobyBjYWMgZGllbSBkYW5oIGJhYyBvIGRpYSBiYW4gUS4xMiwgQmluaCBU YW4pLiBULiBnaW9pIHRoaWV1IGhhbmcgbG9hdCBtYXkgdGhlbyANCmNhYyBsb2FpICBnaWEgdHUg Miw1IHRyaWV1IGRlbiAxOCB0cmlldSBkb25nLiBULiBjdW5nIGtob25nIG5nYW4gbmdhaSBkdWEg Y2h1bmcgdG9pIGRlbiANCm1vdCAgZGllbSBtYSBULiBjdW5nIGNhcCBtYXkgZGUgIm11YyBzbyB0 aGkiIHRpbmggbmFuZyB2dW90IHRyb2kgY3VhIG1heSBkb2kgbW9pLiANCg0KRGF5IGxhIG1vdCBt YXkgZHVhIGNobyBuaHVuZyBkdW9jIGNoYXkgYmFuZyBoZSB0aG9uZyAiY2hpcCBkaWVuIHR1Ii4g VC4gbW8gbmFwIHZhIA0KY2FpIGRpZW0gbWEgbmd1b2kgY2hvaSBkYXQgNTAgbmdhbiBkb25nLCB0 dSBiYW5nIGRpZW4gdHUgaGllbiBsZW4gc28gMTAwLCB0dWMgYmFuZyAxMDAgDQp0aGUgbWEga2hv bmcgbWF0IGNvbmcgZHV0IHR1bmcgdGhlIHZhbyBtYXkuIEN1IHRoZSwgVC4gYmFtIG51dCBjaG9p IHRoZW8geSBtaW5oIGNhIA0KY3VvYy4gVHJvbmcgdGljaCB0YWMgYmFuZyBkaWVuIHR1IGRhIHRy byB2ZSBzbyBraG9uZywgY28gbmdoaWEgbmd1b2kgY2hvaSB0aHVhIHNhY2guIA0KIk5ldSBtYXkg Y3UgcGhhaSBtYXQgdmFpIHBodXQgZGUgZHV0IGNodW5nIGRvIHRoZSB2YW8gdGhpIHZvaSBtYXkg ZG9pIG1vaSwga2hvbmcgc28gDQpraGFjaCBhbiBnaWFuIHZhIHZhbiBjYWkgZGF0IHRodSBwaGFw IGRlICJjaGVtIiB0aGVvIHkgbWluaCIsIFQuIGtob2UuDQoNCkNhYyBraWV1ICJob3AgdGFjIGxh bSBhbiINCg0KVm9pIGtpbmggbmdoaWVtIHRoYW0gbmllbiB0cm9uZyBuZ2hlLCBULiBraG9lIGRh IGN1bmcgY2FwIGhhbmcgdHJhbSBtYXkgdGhlbyBraWV1IA0KImhvcCB0YWMgbGFtIGFuIiB2b2kg a2hhY2ggbyBraHUgdnVjIFEuMTIsIFRhbiBCaW5oLCBCaW5oIFRhbiB2YSBIb2MgTW9uLiANCg0K TmdvYWkgcmEsIFQuIGN1bmcgdGh1b25nIHh1eWVuIGN1bmcgY2FwIG1heSBkYW5oIGJhYyBkaSBj YWMgdGluaCBMb25nIEFuLCBUaWVuIEdpYW5nLCANCkJpbmggRHVvbmcuLi4gdGhlbyB5ZXUgY2F1 IGN1YSBraGFjaC4gIk5ldSBhbmggbGF5IG1heSwgYW5oIG5lbiBsYXkgbWF5IGRvaSBtb2kgdmkg DQpiYXkgZ2lvIG1heSBkb2kgY3UgbyB0aGFuaCBwaG8gZGEgbGFjIGhhdS4gTWFjIGR1IGdpYSBo b2kgY2FvIG5odW5nIGN1bmcgbmhhbmgga2VvIGxhaSB2b24iLCBULiBraHV5ZW4uIA0KDQpUaGVv IFQuLCBnaWEgY2FjIGxvYWkgbWF5IGRhbmggYmFjIGhpZW4gbmF5IG5odSBzYXU6IGxvYWkgbWF5 IGN1IG5odSBtYXkgYmF0LCBkdWEgY2hvLCANCmR1YSBoZW8gaGF5IGNoaWVjIG5vbiBreSBkaWV1 IGdpYSBjaGkga2hvYW5nIHR1IDIsNSB0cmlldSBkZW4gNCw1IHRyaWV1IGRvbmcvbWF5LiBNYXkg DQpkb2kgbW9pIHRoaSB0dSAxMiBkZW4gMTggdHJpZXUgZG9uZy9tYXkuIExvYWkgbmF5IGR1b2Mg bmhhcCB2ZSB0dSBUcnVuZyBRdW9jIG5ndXllbiANCmtpZW4gbmh1bmcgZG8gbmhhcCBsYXUgbmVu IGNhYyBsaW5oIGtpZW4gZHVvYyB0aGFvIHJvaSByYSB0dW5nIGJvIHBoYW4uICJOZXUgYW5oIGRv bmcgeSANCmdpYSBjYSB0aGkgYW5oIHRoaWNoIGNhaSBuYW8gdG9pIGJhbyB0cm9uIGdvaS4gTmdv YWkgcmEgdG9pIGJhbyBoYW5oIHZlIGt5IHRodWF0IG5ldSBodSB0b2kgDQpkdWEgbmhhbiB2aWVu IGRlbiBzdWEgdGFuIG5vaSBtaWVuIHBoaSIsIFQuIGNhbSBrZXQuDQoNCiJDaGluaCBzYWNoIiBr aW5oIGRvYW5oIGN1YSBULiBkb2kgdm9pIGtoYWNoIGhhbmcgY3VuZyBraGEgbGluaCBob2F0OiBj byB0aGUgbXVhIGR1dCANCmRvYW4gaG9hYyBuZXUga2hvbmcgdGhpIGhvcCB0YWMuICJOZXUgYW5o IGRhdCBtYXkgbyBraHUgdnVjIFEuMTIgdGhpIHRvaSBzZSBjdW5nIGNhcCANCm1heSB2YSBiYW8g dHJvbiBnb2ksIHR1IGtoYXUgc3VhIGNodWEgaHUgaG9uZyBkZW4gdmllYyBraG9uZyBiaSBiYXQu IEFuaCBjaGkgY2hpdSB0cmFjaCANCm5oaWVtIHRodWUgbWF0IGJhbmcgdmEgdGllbiBkaWVuLiBT byB0aWVuIHRodSBkdW9jIGhhbmcgbmdheSBjaGlhIGRvaSIsIFQuIG5vaSB2ZSANCnBodW9uZyBh biBob3AgdGFjIG5odSB2YXkuIA0KDQpDbyBsZSB0aGF5IGNodW5nIHRvaSBjaHVhIHRpbiBjaHV5 ZW4gImJhbyBiaSBiYXQiLCBuZW4gVC4ga2hvZSB0aGVtOiAiVG9pIGN1bmcgY2FwIGhhbmcgDQp0 cmFtIG1heSBjaG8gY2EgY2h1YyBkaWVtLCB0b2kgcGhhaSBsbyBuaGlldSBraG9hbiBsYW0uIENv biBuZXUgYmkgdGh1IG1heSB0aGkgdG9pIGxhIA0Kbmd1b2kgbWF0IHRyYW5nIGFuaCBjbyBiaSBt YXQgZ2kgZGF1LiBOZXUgZG9uZyB5IHRoaSBraGkgdGltIG1hdCBiYW5nIGFuaCBjaG8gdG9pIGJp ZXQgDQpkaWEgY2hpIGN1IHRoZS4gS2hpIHRvaSBub2kgYmFvIGR1b2MgbGEgYW5oIHllbiB0YW0g dGh1ZSBtYXQgYmFuZywgdG9pIHNlIG1hbmcgbWF5IHRvaSIuICAgDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzMy8yMDEwMDgwOTAxMTM0OC5hc3B4IFRyYW4g VGhhbmggQmluaCAwOS8wOC8yMDEwIDE6MTMgDQoNClRQIEhDTTogQmF0IGFuISAgDQogIA0KQ2hp IHRyb25nIG1vdCB0aG9pIGdpYW4gbmdhbiwgbmhpZXUgY2h1eWVuIGhhbmggaHVuZywgZGFuaCBn aWV0IG5oYXUgeGF5IHJhIG5nYXkgZ2l1YSANCnRydW5nIHRhbSBUUC5IQ00ga2hpZW4gY2hvIGN1 IGRhbiB0aGFuaCBwaG8gY2FtIHRoYXkgdm8gY3VuZyBiYXQgYW4uIA0KDQpOaGluIGxhaSwgdGhh eSBseSBkbyBkZSBuZ3VvaSB0YSBoYW5oIGh1bmcsIGdpZXQgbmhhdSBtYSBydW5nIG1pbmg6IGJh byB2ZSBxdWFuIGNvbSANCmRhbmggbmd1b2kgZ2F5IHRodW9uZyB0aWNoIGNoaSB2aSBtb3QgbG9p IGN1IGNhaSB2YXQgdmFuaCwgY2FjIHRoYW5oIG5pZW4gdnVuZyBkYW8gZ2lldCANCm5oYXUgdmFv IHRvaSA2LjggdHJlbiBkdW9uZyBDb25nIFF1eW5oIChRLjEpIGtoaWVuIDIgdGhhbmggbmllbiB0 aGlldCBtYW5nIHZhIDEgbmd1b2kgDQpiaSB0aHVvbmcgdGljaCBuYW5nIGNoaSB2aSBtb3QgdmEg cXVldCBuaG8uIA0KDQpDYWNoIGRheSBraG9uZyBsYXUsIG5ndW9pIHZpZXQgY2h1bmcga2llbiBj YW5oIDYgYmFuIHRyZSB0dW9pIGNvIDE2LTE3IGNobyBuaGF1IHRyZW4gMiANCnhlIFdhdmUgY2hh eSB0dSBkdW9uZyBOZ3V5ZW4gS2llbSB2b25nIGxlbiBuZ2Egc2F1IFF1YW5nIFRydW5nIChRLkdv IFZhcCksIDQgYmFuIA0KbmdvaSBzYXUga2VvIGxlIG1hIHRhdSBjaG9wIGx1YSB0cmVuIGR1b25n IGRlIHRoaSB1eSBraGllbiBjaG8gbmd1b2kgZGkgZHVvbmcgbW90IHBoZW4gDQpodSB2aWEuIEFp IGFpIGN1bmcgbGUgbHVvaSB4YW5oIG1hdCwga2hvbmcgYmlldCBtYXkgImNodSBuaG9jIiBuYXkg ZGVtIG1hIHRhdSBkaSBjaGVtIA0KYWksIGRhbmggYWkuLi4NCg0KTmhpZXUgbmd1b2kga2UsIGto aSBsZW4gdGF4aSB0aHVvbmcgdGhheSBtb3Qgc28gdGFpIHhlIHRodSBzYW4gY2FjIHRoYW5oIGdv IHZ1b25nIHZvaSANCm11YyBkaWNoIGtoaSBjbyB2YSBxdWV0IGhvYWMgZ2lhbmgga2hhY2gsIGRh biBkZW4gY3UgY2FpIGxhIHJ1dCByYSBkZSAieHUiIG5oYXUuDQogDQpUcnVvbmcgY29uZyBhbiBw aHVvbmcgbyBtb3QgcXVhbiB2ZW4gVFAuSENNIGtlLCBtb2kgZGF5IG9uZyBwaGFpIHhpbiB5IGtp ZW4gRGFuZyANCnV5IHZhIFVCTkQgcGh1b25nIGRlIGt5IGJhbiBoYW5oIG1vdCB0aG9uZyBiYW8g dmUgdmllYyAidmFuIGRvbmcgZ2lhbyBub3AgdnUga2hpIA0KdmEgY2FjIGNvbmcgY3Uga2hhYyIg Z3VpIGRlbiB0YXQgY2EgY2FjIGhvIGRhbiwga2UgY2EgdGhvbmcgYmFvIGx1b24gcmFuZyBuZXUg bmd1b2kgbmFvIA0KYmlldCBrZSB0YW5nIHRydSB2dSBraGkgaG9hYyBjYWMgY29uZyBjdSBraGFj IG1hIGtob25nIGtoYWkgYmFvIGN1bmcgYmkgcXV5IHRvaSwgbmhhbSANCmRheSBsZW4gbW90IHBo b25nIHRyYW8gdG8gZ2lhYyB0b2kgcGhhbSB0cm9uZyBxdWFuIGNodW5nLiANCg0KVGhlIG5odW5n LCBzYXUgdnUgYW4gbWFuZyB0cmVuIGR1b25nIENvbmcgUXV5bmgsIHZpIHRydW9uZyBjb25nIGFu IHBodW9uZyBuYXkgdGh1YSANCm5oYW46ICJLaGkgbmd1b2kgdGEgZGEgcmFwIHRhbSBsYW0gZGll dSBhYyB0aGkgbW90IGN1YyBkYSwgbW90IGNheSBnYXkgZ28gaG9hYyBtb3QgY29uIA0KZGFvIG5o byBkdW5nIGRlIGxhbSBiZXAgY3VuZyB0cm8gdGhhbmggY29uZyBjdSBwaGFtIHRvaS4gVmkgdmF5 LCBtb2kgbHVjIHJhIGR1b25nIG5ldSANCmdhcCBhaSBkbyBodW5nIGhhbiwgY28gYmFuIGNoYXQg Y29uIGRvIHRoaSBuZW4gdHJhbmggZGkgbGEgdG90IG5oYXQiLiBEYXkgbGEgY2FjaCBoYW5oIHh1 IA0KdmEgY3VuZyBsYSBjYWNoIGdpYW8gZHVjIGN1YSBuaGlldSBiYWMgY2hhIG1lIGhpZW4gbmF5 IGRvaSB2b2kgY29uIGNhaS4gRGlldSBuYXkga2hpZW4gDQpjaG8gY2FpIGFjIGN1IG5ob24gbmhv biB0dSBkYWMsIG1vaSBraGkgY28gZGlwIGxhIGJ1bmcgbGVuIHRoYW5oIGNhYyB2dSBhbiBkYW5o IG5ndW9pIA0KZ2F5IHRodW9uZyB0aWNoLCBnaWV0IG5ndW9pIHZhIGFuIG1hbmcgbmdheSBtb3Qg bmhpZXUgaG9uLiANCg0KTyBuaHVuZyBkbyB0aGkgbG9uLCBkdW9uZyBuaHUgdHJvbmcgbG9uZyBt b2kgY3UgZGFuIGRldSBjYW0gdGhheSBiYXQgYW4gbW9pIGtoaSByYSANCmR1b25nLiBCb2ksIGto b25nIGFpIGJpZXQgdHJvbmcgY2FjIGNvcCB4ZSwgdHJvbmcgbW9pIHR1aSBxdWFuIGN1YSBrZSBh YyBsdXUgdGhvbmcgdHJlbiANCmR1b25nIGxpZXUgY28gdGh1IHNhbiBkYW8gaGF5IGtob25nLiBW aSB2YXksIHN1IHRyYW4gYXAgdmEgcGhhbiB1bmcgdGhhdCBuaGFuaCBjdWEgbHVjIA0KbHVvbmcg Y2FuaCBzYXQgZG9pIHZvaSBjYWMgYmFuZyBuaG9tIHRvaSBwaGFtLCBuaHVuZyBrZSBjb24gZG8g bGEgcmF0IGNhbiB0aGlldCB2YSBsYSANCmRpZXUgbmd1b2kgZGFuIGx1b24gbHVvbiBtb25nIGRv aS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9oY20vMjAxMDA4L0hvbi1jaGllbi10cmVu LWR1b25nLXBoby1TYWktR29uLTItbmd1b2ktYmktZGFtLWNoZXQtOTI3MzE1LyBRdW9jIFF1YW5n IDIyOjM5LCAwNi8wOC8yMDEwIChHTVQrNykNCg0KVFAuSENNOiBIb24gY2hpZW4gdHJlbiBkdW9u ZyBwaG8gU2FpIEdvbiwgMiBuZ3VvaSBiaSBkYW0gY2hldA0KDQpLaG9hbmcgMTloMTUnIG5nYXkg Ni84LzIwMTAsIG1vdCB2dSBhbiBtYW5nIGRhYyBiaWV0IG5naGllbSB0cm9uZyB4YXkgcmEgbmdh eSB0cnVvYyANCnRvYSBuaGEgc28gMjQ4IGR1b25nIENvbmcgUXV5bmgsIHBodW9uZyBQaGFtIE5n dSBMYW8sIHF1YW4gMS4NCg0KMyB0aGFuaCBuaWVuIGRpIHRyZW4gaGFpIHhlIFNIIGJpIGRhbSBn dWMgdGFpIGNoby4gMiB0cm9uZyBzbyBuYXkgZGEgY2hldCwgbmd1b2kgY29uIGxhaSBjdW5nIHRy b25nIHRpbmggdHJhbmcgbmd1eSBraWNoIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBo YXAtbHVhdC9UaGFuZy1UYWktRGF1LW1hbmctdG9pLWN1b2ktY3VuZy10YWktdnUtYW4tTmFtLUNh bS8xMTAzNTQxNi8yMTgvIDI5LzExLzIwMDcsIDE1OjAyIEdNVCs3DQoNClRoYW5nICJUYWkgRGF1 IiAtIG1hbmcgdG9pIHRyb25nIHZ1IGFuIE5hbSBDYW0NCg0KU2F1IGdhbiA2IG5hbSAibGFuIGto b25nIHN1aSB0YW0iIGJhdCBjaGFwIHN1IHRydXkgYmF0IGdhdCBnYW8sIFRoYW5nICJUYWkgRGF1 IiBiYXQgbmdvIGxhaSB0cmluaCBkaWVuIGNvbmcgYW4uIEhpZW4sIGx5IGRvIGRhdSB0aHUgY3Vh IFRoYW5nIGNodWEgZHVvYyB0aWV0IGxvLCBuaHVuZyBsb2kga2hhaSBjdWEgDQpuaGFuIHZhdCBj b20gY2FuIG5heSBodWEgaGVuIHNlIGhlIG1vIG5oaWV1ICJiaSBtYXQiIHRyb25nIHRoZSBnaW9p IHhhIGhvaSBkZW4gY3VhIE5hbSBDYW0uDQoNCk5odW5nIG1hbmcgdG9pIHRyb25nIHZ1IGFuIE5h bSBDYW0gc2UgZHVvYyBsYXQgZ2lvIGxhaS4NCg0KRHVvaSBzdSBjaGkgZGFvIGN1YSBUaGFuZywg aGUgdGhvbmcgc29uZyBiYWMgY3VhIE5hbSBDYW0gbyBwaGlhIEJhYyBwaGF0IHRyaWVuIHZvaSAN Cm1hbmcgbHVvaSBjaGFuIHJldCBkb25nIG8gbmhpZXUgdGluaCB0aGFuaC4gVGhhbSBjaGksIGNo dW5nIGNvbiBtb2Mgbm9pIHZvaSBjYWMgZHVvbmcgZGF5IGNvIGJhYyBxdW9jIHRlLg0KDQpLaGkg Q29uZyBhbiBIYSBOb2kgbW8gY2hpZW4gZGljaCB0cmlldCBwaGEgY2FjIHRvIGNodWMgdG9pIHBo YW0geGEgaG9pIGRlbiwgDQpzbyBUaGFuZyBiaSBiYXQsIE5hbSBDYW0gZGEgZHVhIFRoYW5nIHZh byBtaWVuIE5hbSBkZSAibGFuaCBuYW4iLg0KDQpCYW4gY2h1eWVuIGFuIE5hbSBDYW0gdHVuZyB4 YWMgZGluaCwgb25nIHRydW0gZHVuZyBuZ3VvbiB0aWVuIGJhdCBjaGluaCB0aHUgZHVvYyB0dSAN CnZpZWMgdG8gY2h1YyBjbyBiYWMgZGUgbnVvaSBkdW9uZyBkYW4gZW0gdmEgcXVhbiBoZSAobmdv YWkgZ2lhbykgdm9pIG1vdCBzbyBjYW4gYm8gDQpjbyBjaHVjIHF1eWVuLCBzYSBkb2EgYmllbiBj aGF0IGJhbyBjaGUgY2hvIGhvYXQgZG9uZyBwaGFtIHRvaS4NCg0KKE1hbmcgdnUgYW4gTmFtIENh bSB2YSBUaGFuZyAidGFpIGRhdSIgY28gbGllbiBxdWFuIHRvaSBvbmcgVHJ1b25nIFRhbiBTYW5n IA0Kbmd1eWVuIENodSB0aWNoIFVCTkQsIG5ndXllbiBCaSB0aHUgdGhhbmggdXkgVFAgSENNIGNh biBwaGFpIGR1b2MgbGFtIHJvLiANCg0KVHJ1b25nIFZhbiBDYW0gZ2F5IHRvaSBhYyBvIFRQIEhD TSByb25nIHJhIG5oaWV1IG5hbSB0cm9pIGxhIG5obyBkdWEgdmFvIHN1IGxhbSBuZ28sIA0KYmFv IGtlIGN1YSBvbmcgVHJ1b25nIFRhbiBTYW5nOyBnYXkgYmFvIG5oaWV1IHRvaSBhYyB2b2kgbmhh biBkYW4sIGtoYXAgbm9pIGRldSBiaWV0DQp2YXkgbWEgVHJ1b25nIFRhbiBTYW5nIHZhbiB2byBj YW0gbGFtIG5nby4pIA0KDQpodHRwOi8vdGludHVjLnRpbW5oYW5oLmNvbS9waGFwX2x1YXQvMjAw NzA1MjkvMzVBNUZCNkQvIDI5LzA1LzIwMDcgMTA6MzU6NTggDQoNClRQIEhDTTogRGFuIGVtIE5h bSBDYW0gdGFpIHh1YXQgZ2lhbmcgaG8gDQoNClRyb25nIGR1b25nIGRheSBkYW5oIGJhYyBudXAg ZHVvaSBkYW5oIG5naGlhIGNhdSBsYWMgYm8gZ2lhaSB0cmkgY28gdGh1b25nIHRyb25nIGtoYWNo IHNhbiBoYW5nIHNhbyB0YWkgVFAgSG8gQ2hpIE1pbmggdmEgdGluaCBCYSBSaWEtVnVuZyBUYXUg Y28ga2hvbmcgaXQgbmh1bmcgZGUgdHUgdHJ1b2MgZGF5IGN1YSBhbmggIk5hbSIuIFRoYW0gY2hp IGNvIG5ndW9pIHZ1YSBtb2kgY2hpIHZ1YSBkdW9jIGFuIHhhIHJhIHR1Li4uIA0KDQpodHRwOi8v dmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9OaGlldS1uaG9tLWdpYW5nLWhvLWhvYW5oLWhh bmgtdGFpLVRQSENNLzMwMDU4OTkzLzIxOC8gIDA3LzYvIDIwMDUsIDEzOjE2IEdNVCs3IA0KDQpU UCBIQ006IE5oaWV1IG5ob20gZ2lhbmcgaG8gaG9hbmggaGFuaCANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMS9MdWEtYmFuLUxleHVzLWRlLXR1LU5hbS1DYW0tYW0t Y2EteGUtdmEtdGllbi05NDYyMjUvIE1pbmggSG8gKHRvbmcgaG9wKSAxNToxOCwgMDYvMTEvMjAx MCAoR01UKzcpDQoNClRQLkhDTTogRGUgdHUgcnVvdCBOYW0gQ2FtIGxhaSBnYXkgYW4gDQoNCkNv IHF1YW4gQ1NEVCBDb25nIGFuIFRQLkhDTSBkYW5nIHRodSBseSBkaWV1IHRyYSB2dSBUcmFuIFF1 b2MgRGFuLCA0NCB0dW9pLCBvIA0KVmluaCBMb25nLCBsYSBkZSB0dSBydW90IGN1YSBOYW0gQ2Ft LCB2ZSBoYW5oIHZpIGNoaWVtIGRvYXQgdGFpIHNhbiBjdWEgbmd1b2kga2hhYy4gIA0KDQpNb2kg ZGF5LCBjbyBxdWFuIGRpZXUgdHJhIGRhIG5oYW4gZHVvYyBkb24gY3VhIG9uZyBOZ3V5ZW4gRHVj IEh1eSwgbW90IG5ndW9pIGJ1b24gDQpiYW4gYmF0IGRvbmcgc2FuIHRhaSBUUC5IQ00gdG8gY2Fv IFRyYW4gUXVvYyBEYW4gZGEgbG9pIGR1bmcgdGluIG5oaWVtIHZhIGNoaWVtIGRvYXQgDQpjdWEg b25nIGNoaWVjIHhlIExleHVzIEJLUyA1MFogLSAzNTI1LiANCg0KVGhlbyB0dW9uZyB0cmluaCBj dWEgb25nIEh1eSwga2hvYW5nIGRhdSB0aGFuZyAyLzIwMTAsIERhbiBkYW5oIHhlIG8gdG8gTGV4 dXMgdHJlbiANCmRlbiBuaGEgb25nIGRlIGdhIGJhbiB2YSBkdW9jIG9uZyBIdXkgbXVhIHZvaSBn aWEgOTAuMDAwVVNELiBTYXUga2hpIDIgYmVuIGxhbSBnaWF5IA0KdmlldCB0YXkgdGhvYSB0aHVh biwgb25nIEh1eSBkYSB0aGFuaCB0b2FuIGhldCB0aWVuLCBnaXUgZ2lheSBkYW5nIGt5LCBraWVt IGRpbmggY29uIHhlIA0KdGhpIGNobyBEYW4gbXVvbiBzdSBkdW5nIHRyb25nIHZvbmcgMyB0aGFu Zywgc2F1IGRvIHNlIHNhbmcgdGVuIGNobyBjaHUgbW9pLg0KDQpUdXkgbmhpZW4sIHNhdSAzIHRo YW5nLCBraG9uZyB0aGF5IERhbiBtYW5nIHRyYSB4ZSwgb25nIEh1eSBkYSBkaWVuIHRob2FpIGRp IGRvbmcgY2hvIA0KRGFuIG5odW5nIGtob25nIGxpZW4gbGFjIGR1b2MuIENobyBtYWkga2hvbmcg dGhheSBEYW4gbWFuZyB4ZSBkZW4gdHJhLCBjdW9pIHRoYW5nIA0KMTAvMjAxMCwgb25nIERhbiB0 aW0gZGVuIG5oYSBEYW4gdGhpIGR1b2MgYmlldCBkYSBiYW4gY2FuIG5oYSBuYXkgdmEga2hvbmcg cm8gZGkgZGF1LiANCk5nYXkgbGFwIHR1Yywgb25nIEh1eSBsYW0gZG9uIHRvIGNhbyBndWkgY28g cXVhbiBjb25nIGFuIFRQLkhDTS4gDQoNCihBbmg6IFRyYW4gUXVvYyBEYW4sIGRlIHR1IGN1YSBO YW0gQ2FtLiBBbmg6Q0FORCkNCg0KVHJ1b2MgZG8sIFRyYW4gUXVvYyBEYW4gLSBtb3QgZGUgdHUg Y3VhIE5hbSBDYW0gLSBkYSBiaSBiYXQgdmFvIG5nYXkgMjUvMS8yMDAyIHNhdSANCmRvIGJpIHRv YSB0dXllbiBhbiA3IG5hbSB0dSBnaWFtIHZpIHRvaSBjaHV5ZW4gZGFuaCBiYWMgdmEgdG8gY2h1 YyBkYW5oIGJhYy4gVmFvIHRoYW5nIA0KNS8yMDA4LCBoYW4gZHVvYyBkYWMgeGEgdmEgdmUgVFBI Q00gbGFtIG5naGUgbW9pIGdpb2kgYmF0IGRvbmcgc2FuLiBRdWEgbW90IHZhaSANCnRodW9uZyB2 dSBsYW0gYW4sIERhbiBxdWVuIHZhIHRoYW4gdm9pIG9uZyBOZ3V5ZW4gRHVjIEh1eS4gDQoNClRy YW4gUXVvYyBEYW4gZGEgY28gcmF0IG5oaWV1IHRpZW4gYW4gdGllbiBzdSB0cnVvYyBraGkgaGFu IGJpIGJhdC4NCg0KVHUgdGhhbmcgMTEvMTk5OSBkZW4gNi8yMDAwIFRyYW4gUXVvYyBEYW4gbGll biB0aWVwIGJpIGJhdCB2YSBiaSB4dSBseSBoYW5oIGNoaW5oIHZpIHRvaSANCmRhbmggYmFjIHRh aSBjYWMgc29uZyBiYWMgZG8gVHJ1b25nIFZhbiBDYW0gZHVuZyBkYXUuDQoNClRoYW5nIDEyLzIw MDAgVHJhbiBRdW9jIERhbiBkYW5oIHhhcCB4YW0gdGFpIHNvbmcgYmFjIHhhcCB4YW0gY3VhIFRy aWV1IFRvIEhhIHZhIA0KTmd1eWVuIFRoYW5oIFRoYW8gbyBzbyA4MzUvMS0yIFRyYW4gSHVuZyBE YW8gUDEgUXVhbiA1LiBUcmFuIFF1b2MgRGFuIGR1b2MgY2h1IA0Kc29uZyBiYWMgYm8gdHJpIG1h eSBydW5nIGh1b25nIGRhbiBkYW5oIGJhYyB0dSB4YSB2YSBjaGlhIHRpZW4gdGhhbmcgYmFjLiAN Cg0KU2F1IGRvIGRlbiB0aGFuZyAxMC8yMDAxLCBUcmFuIFF1b2MgRGFuIGR1b2MgVHJ1b25nIFZh biBDYW0gcnUgZGVuIGRhbmggYmFjIHhhcCANCnhhbSB0YWkgc29uZyBiYWMgY3VhIFRydW9uZyBW YW4gQ2FtIG1vIHRhaSAxMjIgVHJhbiBIdW5nIERhbyBCLCBwaHVvbmcgNywgcXVhbiA1Lg0KU2F1 IG5oaWV1IGxhbiB0cnV5IHF1ZXQgZGVuIG5nYXkgMjUvMS8yMDAyIGhhbiBiaSBjbyBxdWFuIGNv bmcgYW4gdG9tIGdvbiB2YSBiaSB0b2EgYW4gDQprZXQgYW4gNyBuYW0gdHUuDQoNCltNb3Qgc28g dGFpIGxpZXUgdG8gZ2lhYyBob2F0IGRvbmcgY3VhIGJhbmcgZGFuZyBOYW0gQ2FtICh0dWMgVHJ1 b25nIFZhbiBDYW0pIA0KbyBTYWkgR29uIHZ1YSBtYW5nIHRpbmggY2hhdCB4YSBob2kgZGVuLCB2 dWEgY28gbGllbiBxdWFuIHRvaSBob2F0IGRvbmcgdGluaCBiYW8gDQpnaWFuIGRpZXAsIGxhbSBt YXQgYW4gbmluaCB4YSBob2ksIGdheSBuaGlldSB0b2kgYWMgdm9pIG5oYW4gZGFuLCBsYW0gdGhh IGhvYSByYXQgDQpuaGlldSBjYW4gYm8gY3VhIHRwIEhDTSB2YSBUcnVuZyB1b25nOyB2YXkgbWEg b25nIFRydW9uZyBUYW4gU2FuZyAtIG5ndXllbiBCaSB0aHUgDQpUaGFuaCB1eSBUUCBIQ00gLSBu Z3VvaSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gY2hpbmggdmUgdnUgbmF5IC0gdmFuIGxlbiBkdW9j IHRvaSANCmNodWMgVXkgdmllbiBCbyBjaGluaCBUcmkgLSBUaHVvbmcgdHJ1YyBCYW4gYmkgdGh1 IFRydW5nIHVvbmcgRGFuZy4gDQoNCkJpIGFuIHZlIG1vaSBxdWFuIGhlIGNhIG5oYW4gVHJ1b25n IFRhbiBTYW5nIC0gVHJ1b25nIFZhbiBDYW07IGRhbmcgc2F1IFRydW9uZyBWYW4gQ2FtIGNvbiBu aHVuZyBhaT8gDQpYaW4geGVtIGxhaSAxIGRvYW4gdHJpY2ggdHJvbmcgdGh1IGN1YSBUcnVvbmcg dHVvbmcgTGUgVmFuIEhpZW4gdmEgdGh1IGN1YSBkYWkgdGEgSHVuZyBDdW9uZzogDQoNCihodHRw Oi8vbGluaG5kLm11bHRpcGx5LmNvbS9qb3VybmFsL2l0ZW0vNTIvNTIgQXVnIDMsJzA5IDExOjU3 IEFNIFZ1IGFuIGNoaW5oIHRyaSBzaWV1IG5naGllbSB0cm9uZy45IC0gVGh1IGNhYyB0dW9uZyBs YW5oIGd1aSBCQ1QpDQoNCih0cmljaCkgVGh1IGN1YSBUcnVuZyB0dW9uZyBMZSBWYW4gSGllbiwg bmd1eWVuIHV5IHZpZW4gVHJ1bmcgdW9uZyBkYW5nIENTVk4NCg0KKFYuKSBUcnVvbmcgVmFuIENh bSBob2F0IGRvbmcgeGEgaG9pIGRlbiBoYXkgaG9hdCBkb25nIGdpYW4gZGllcC4NCg0KVnUgYW4g VHJ1b25nIFZhbiBDYW0gY28gcGhhaSBjaGkgaG9hdCBkb25nIHhhIGhvaSBkZW4gaGF5IGNvbiBn aSBudWEsIGRhbmcgc2F1IFRydW9uZyBWYW4gQ2FtIGNvbiBhaSBraG9uZy4gDQpUcnVvbmcgVmFu IENhbSBkdW9jIENvbmcgYW4gY2FwIGdpYXkgcGhlcCBkaSBNeSBuaGlldSBsYW4uIENhbiBibyB0 aW5oIGJhbyBxdWFuIHN1IGNhcCBnaWF5IGNodW5nIG5oYW4gcXVhbiBiYW8gDQpjaG8gdGF5IGNo YW4gVHJ1b25nIFZhbiBDYW0gaG9hdCBkb25nIGxhIG5odW5nIHZhbiBkZSBkYW5nIG5naGkgdmFu Lg0KDQpUcnVvbmcgVmFuIENhbSwgMSB0ZW4gbHV1IG1hbmgsIGNvbiBkbyBtYSBkYSBkYW5oIG5n YSBtb3QgbG9hdCBjYW4gYm8gY2FvIGNhcCBjdWEgQ0EsIHRyb25nIGRvIGNvIHNvIGRvbmcgY2hp IA0KbGFuaCBkYW8gQm8gKDEgVHJ1bmcgdHVvbmcsIFRodSB0cnVvbmcsIFV5IHZpZW4gVFcgRGFu ZykgcGhhbiBsb24gdHJvbmcgYmFuIGdpYW0gZG9jIFNvIENBIFRQIEhvIENoaSBNaW5oLCANCmRh bmggbmdhIGNhbiBibyBjYW8gY2FwIGN1YSBWS1NORFRDLCBnaWFtIGRvYyBEYWkgdGllbmcgbm9p IFZpZXQgTmFtIChVeSB2aWVuIFRXIERhbmcpLg0KDQpEaWV1IGRhbmcgcGhhaSBzdXkgbmdoaSBs YSBob2F0IGRvbmcgY3VhIFRydW9uZyBWYW4gQ2FtIG1hbmcgdGluaCBjaGF0IGhvYXQgZG9uZyBn aWFuIGRpZXAgZG8gdGluaCBiYW8gDQpudW9jIG5nb2FpIGNoaSBkYW8uIE11YyB0aWV1IGN1YSBu byBsYSB0YW4gY29uZyB2YW8gbm9pIGJvIHRhLCB0cm9uZyBkaWVtIGxhIG5nYW5oIENBIGNvIHRo ZSBtb2Mgbm9pLCANCnhheSBkdW5nIGRhYyB0aW5oLiBIb2F0IGRvbmcgeGEgaG9pIGRlbiBjaGkg bGEgdGh1IGRvYW4gbmhhbSBnYXkgbWF0IHRyYXQgdHUgdHJpIGFuLCByYW4gZGUsIG11YSBjaHVv YywgdGhhIGhvYSBjYW4gYm8gdGEuDQpLZXQgbHVhbiBUcnVvbmcgVmFuIENhbSBjaGkgaG9hdCBk b25nIHhhIGhvaSBkZW4gdGhvaSBzbyB0aGlldSBjYW5oIGdpYWMuIERlIG5naGkgRFVDQVRXIG5l biB0aWVwIHR1YyBuZ2hpZW4gY3V1IHRoZW8gZG9pLl0gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAxOC8yMDEwMDQyOTAyMjkyMC5hc3B4IERhbSBIdXkgMjkv MDQvMjAxMCAyOjI5IA0KDQpUUCBIQ006IERhbiBlbSBEdW5nICJoYSIgc2F0IGhhaSBjaHUgY2hv IHZheSAgDQogIA0KKFR1IGRhdCBjYW5nIEhhaSBQaG9uZywgbW90IGRhbiBlbSBjdWEgdHJ1bSB4 YSBob2kgZGVuIGtoZXQgdGllbmcgbW90IHRob2kgRHVuZyAiaGEiIGRhIHZhbyBnYXkgdG9pIGFj IG8gVFAuSENNLikgDQoNCmh0dHA6Ly93d3cuaXRhZXhwcmVzcy5jb20udm4vdGluX2l0YS9kX2lf c19uZy9waGFwX2x1X3QvdHBfaGNtX21fdF92X2dpX3RfbmdfaV9kYV9tYW5fZ2lfYV9iYW5fbmdh eSBCdWkgTmh1bmcgMTkvMTEvMjAwNyA0OjQ2IHBtIA0KDQpUUC5IQ006IEdpZXQgbmd1b2kgZGEg bWFuIGdpdWEgYmFuIG5nYXkgKHRhaSBxdWFuIFRhbiBCaW5oKSANCg0KQ2hpZXUgMTcvMTEsIG5o YW4gdmllbiBzaG9wIHF1YW4gYW8gQmx1ZS1FeGNoYW5nZSB0YWkgc28gNDEyIFRydW9uZyBDaGlu aCAocGh1b25nIA0KMTMsIHF1YW4gVGFuIEJpbmgsIFRQLkhDTSkgcGhhdCBoaWVuIGNoaSBOZ3V5 ZW4gSG9hbmcgQW5oIFRodSAobmhhbiB2aWVuIGN1YSANCmhhbmcsIDE5IHR1b2ksIHF1ZSBBbiBH aWFuZykgbmFtIGNoZXQgdHJlbiB2dW5nIG1hdSBuZ2F5IHRyb25nIGN1YSBoYW5nLiBLZSB0aHUg YWMgZGEgDQpkdW5nIGRhbyBkYW0gbmhpZXUgbmhhdCB2YW8gYnVuZyB2YSBjbyBuYW4gbmhhbiBr aGllbiBuYW4gbmhhbiB0dSB2b25nIHRhaSBjaG8uIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20v SW5mby9TYWktcGhhbS1kYXQtZGFpLXRhaS1UUC1IQ00tTW9pLXh1LWx5LWR1b2MtcGhhbi1ub2kt Y3VhLXRhbmctYmFuZy1jaGltLzE0OC80NzA4Mjc4LmVwaSBOaG9tIFBWIDE0LzA4LzIwMTAgDQoN ClRQIEhDTTogU2FpIHBoYW0gZGF0IGRhaSB0YWkgVFAgSENNIC0gTmdheSBjYW5nIHRpbmggdmkg LSBDYW4gYm8gdGhvYWkgaG9hIGJpZW4gY2hhdCANCg0KRHUgY2hpIGR1b2MgVFAgSENNIGNobyB0 aGkgZGllbSB0aHVjIGhpZW4gZHUgYW4gInBoYW4gbG8gaG8gbGUiIHRyb25nIHZvbmcgaG9uIDMg DQpuYW0sIHNvbmcgY2h1IHRydW9uZyBuYXkgZGEgZHVvYyBuaGlldSBkYXUgbmF1IGNhdSBrZXQg dm9pIG1vdCBzbyBjYW4gYm8gZGlhIHBodW9uZyANCnRob2FpIGhvYSBiaWVuIGNoYXQsIHRhbiBk dW5nIGtoYWkgdGhhYyB0cmlldCBkZSBkZSBraWVtIGxvaS4gUmF0IHRpZWMsIG5odW5nIHNhaSBw aGFtIA0KdHJvbmcgcXVhbiBseSBkYXQgZGFpIGJpIHBoYXQgaGllbiwgeHUgbHkgdGhvaSBnaWFu IGdhbiBkYXkgY2hpIGxhIHBoYW4gbm9pIGN1YSB0YW5nIGJhbmcgDQpjaGltLiBIYXUgcXVhIGRl IGxhaSBkZW4gbmF5IGNodWEgZGUgZ2kga2hhYyBwaHVjIGR1b2MuDQoNClRyb25nIGtoaSBjaHUg ZGF0IHRoaWV0IHRob2kgZG8gcGhhaSAiYmFuIiB2b2kgY2FpIGdpYSBxdWEgYmVvIGJvdDsgbmd1 b2kgbXVhIG5oYSwgZGF0IHRhaSANCmNhYyBkdSBhbiBwaGFuIGxvIGhvIGxlIHRoaSBraG9uIGto byB2aSBraG9uZyBkdW9jIGNhcCBwaGVwIHhheSBjYXQgaG9hYyBraG9uZyBkdW9jIA0KY2FwIHNv IGhvbmcsIHNvIGRvIHRyb25nIG5oaWV1IG5hbSB0cm9pLi4uIHRoaSBuaGlldSBjbyBkYXQsIGRh dSBuYXUgdnVhIGR1b2MgImxlbiBkb2kiIA0KdGhhbmggY2h1IGR1IGFuIHVuZyBkdW5nIG9tIG1v dCBkb25nIHRpZW4gcm9pIGJpZW4gbWF0LiBSYXQgdGllYywgbmh1bmcgc2FpIHBoYW0gdHJvbmcg DQpxdWFuIGx5IGRhdCBkYWkgYmkgcGhhdCBoaWVuLCB4dSBseSB0aG9pIGdpYW4gZ2FuIGRheSBj aGkgbGEgcGhhbiBub2kgY3VhIHRhbmcgYmFuZyBjaGltLiANCkhhdSBxdWEgZGUgbGFpIHZvaSBu aGlldSBkdSBhbiAicGhhbiBsbyBobyBsZSIgZGVuIG5heSBjaHVhIGRlIGdpIGtoYWMgcGh1YyBk dW9jLg0KDQpEYXQgZGEgYmFuIGhldCwgbmhhIGRhIHhheSB4b25nIGxhbSBzYW8ga2hhYyBwaHVj PyANCg0KVGFpIHZvaSBxdWFuIEdvIFZhcCwgZGlhIGJhbiBjbyB0b2kgNTggZHUgYW4gcGhhbiBs byBobyBsZSwgbWFjIGR1IGNoaW5oIHF1eWVuIHF1YW4gZGEgDQpubyBsdWMgc3VhIHNhaSBiYW5n IGNhY2ggdGhhbmggbGFwIGhhbiBtb3QgdG8gY29uZyB0YWMgZGUgcmEgc29hdCwgeGV0IGNhcCBn aWF5IGNodSBxdXllbiANCmNobyBob24gOTAlIHNvIGhvIGNvIG5oYSwgZGF0IHRyb25nIGNhYyBk dSBhbiBwaGFuIGxvIGhvIGxlLCBuaHVuZyBjaG8gdG9pIHRob2kgZGllbSANCm5heSwgc28gZHUg YW4gZGEgaG9hbiBjaGluaCBoYSB0YW5nIGJhbiBnaWFvIHZlIGNobyBkaWEgcGh1b25nIHF1YW4g bHkgY2h1YSBkYXkgbW90IA0KbnVhLiBMeSBkbywgbmhpZXUgZGF1IG5hdSBxdWEgdGhhbSBsYW0s IGRhIGRlbSBiYW4gY2EgcGhhbiBkYXQgbGFtIGNvbmcgdmllbiBob2FjIGNoaSANCmRhdSB0dSBp dCB0aWVuIHNhbiBsYXAgaGEgdGFuZywgbGFtIGR1b25nIHNhLCBjb25nIHRob2F0IG51b2MuLi4g bW90IGNhY2ggc28gc2FpLCBraG9uZyANCmRhdCBjaHVhbiByb2kgb20gdGllbiBjYW8gYmF5IHhh IGNoYXkuIEhhIHRhbmcga2hvbmcgZGFtIGJhbyBuZW4gZHUgYW4gY2h1YSB0aGUga2V0IA0KdGh1 Yy4gDQoNClRob2kgZ2lhbiBxdWEsIFRvIGNvbmcgdGFjIGtoYWMgcGh1YyBjdWEgcXVhbiBHbyBW YXAgY3VuZyBkYSB0aWVuIGhhbmggdGltIGtpZW0sIG1vaSANCm5oaWV1IGNodSBkYXUgdHUgbGVu IGJ1b2MgY2FtIGtldCBob2FuIGNoaW5oIGhhIHRhbmcgZGUgYmFuIGdpYW8gbGFpIGNobyBkaWEg cGh1b25nLiANClZvaSBkdSBhbiBjaHUgZGF1IHR1IGRhIGRlbSBiYW4gcGhhbiBkYXQgbGFtIGNv bmcgdmllbiB0aGkgY29uIGNvIHRoZSAiY2h1YSBjaGF5IiBiYW5nIA0KY2FjaCBidW9jIGNodSBk YXUgdHUgdGltICJtdWEiIGRhdCBjb24gdHJvbmcgeHVuZyBxdWFuaCBkZSBkZW4gYnUuIENvbiB2 b2kgbmh1bmcgZHUgDQphbiBzYWkgcGhhbSB2ZSBjaGlldSByb25nIGR1b25nIGtob25nIGRhdCBj aHVhbiwga2hvYW5nIGx1aSB4YXkgZHVuZyBraG9uZyBkdW5nIHRoaWV0IA0Ka2UuLi4ga2hpIGRh dCBkYSBiYW4gaGV0LCBuaGEgZGEgeGF5IHhvbmcgdGhpIGNoaSBjb24gbnVvYyBob2FjIGxhICJ0 cmVvIiBsYWkgZG8sIGhvYWMgbGEgDQpuZ3VvaSBkYW4gcGhhaSBjaGFwIG5oYW4gc29uZyBjaHVu ZyB2b2kgaGEgdGFuZyBkdW9pIGNodWFuIG5heS4gDQoNCkRlbiBuaHVuZyBzYWkgcGhhbSB4YXkg cmEgdm9pIGNhYyBkdSBhbiBwaGFuIGxvIGhvIGxlIG8gaHV5ZW4gSG9jIE1vbi4gTmdheSBzYXUg a2hpIA0KQ2h1IHRpY2ggaHV5ZW4gTmd1eWVuIFZhbiBLaG9lIGJpIGJhdCwgY2hpbmggcXV5ZW4g aHV5ZW4gSG9jIE1vbiBjdW5nIGNobyB0aGFuaCANCmxhcCBtb3QgdG8gY29uZyB0YWMgZGUga2ll bSB0cmEgc2FpIHBoYW0gdGFpIGNhYyBkdSBhbiBwaGFuIGxvIGhvIGxlIHZhIHRpbSBiaWVuIHBo YXAgDQpraGFjIHBodWMuIEhhbmcgbG9hdCBzYWkgcGhhbSBkdW9jIHRvIGNvbmcgdGFjIGR1YSBy YSB2b2kgeWV1IGNhdSBjaHUgZHUgYW4gcGhhaSBob2FuIA0KdGF0IHRyb25nIG5hbSAyMDA5LiAN Cg0KTmh1bmcgY2hvIHRvaSBuYXksIG5oaWV1IGhhbmcgbXVjIHZlIGRpZW4gdGljaCBjb25nIHZp ZW4gY2F5IHhhbmgsIHF1eSBob2FjaCBsbyBnaW9pLCANCmtob2FuZyBsdWkgeGF5IGR1bmcsIGNo byBxdWF5IHhlLi4uIHRyb25nIG1vdCBzbyBkdSBhbiBkYSBraG9uZyB0aGUgdGh1YyBoaWVuIGRv IGRhdCBkYSANCmR1b2MgcGhhbiBsbyBkYXUgdmFvIGRheSB2YSBoYXUgaGV0IGRhIGR1b2MgeGF5 IGNhdCBuaGEuIA0KDQpUYWkgbW90IGR1IGFuIGtodSBkYW4gY3UgdGh1b2MgeGEgQmEgRGllbSBj dWEgZGF1IG5hdSBOZ28gUXVhbmcgVHJ1b25nLCBvbmcgZ2lhbSANCmRvYyB0dW5nIHRodWUgZ2lh bmcgaG8gZ2lldCBuZ3VvaSBjdW5nIGhvaSBjdW5nIHRodXllbiB2b2kgbWluaCBtYSBkdSBsdWFu IGRhIHR1bmcgDQpiaWV0IGRlbi4gU2F1IHRob2kgZ2lhbiBvbmcgY2h1IGRhdSB0dSBuYXkgYmkg YmF0LCBhbmggTCwgbW90IG5ndW9pIGRhbiBjbyBuaGEgdHJvbmcgZHUgDQphbiBuYXkgbG8gbGFu ZzogS2hvbmcgYmlldCBjbyBkdW9jIGNhcCBzbyBoYXkga2hvbmcgYm9pIHNhdSBraGkgbXVhIG5o YSBkbyBjaHUgZGF1IHR1IA0KdHUgeGF5IGNhdCBtb2kgcGhhdCBoaWVuIGNvbmcgdHkgbmF5IGRh IHhheSBzYWkgdmkgdHJpLiANCg0KTmdheSBjYSB2b2kgZGlhIGJhbiBtb3QgcXVhbiBtb2ksIGR1 b2MgcXV5IGhvYWNoIGhpZW4gZGFpLCBkYXQgY2h1YW4gbGEgcXVhbiA3IHRoaSB0YWkgDQpkdSBh biBwaGFuIGxvIGhvIGxlIG8gcGh1b25nIFRhbiBIdW5nLCBwaGFpIGNobyBzYXUga2hpIEJhbyBD QU5EIGxlbiB0aWVuZyBwaGFuIGFuaCwgDQpuZ3VvaSBkYW4gbW9pIGR1b2MgY2FwIHNvIGhvbmcg dmEgZHVvYyBwaGVwIG5hbmcgbmVuLCBjaG9uZyBkb3QgY2hvIGNoaW5oIGNhbiBuaGEgDQpjdWEg bWluaC4gVHV5IHZheSwgaGFuZyB0cmFtIGhvIGRhbiBvIGRheSB2YW4gcGhhaSBjYW4gcmFuZyBz b25nIHRyb25nIGNhbmggaGEgdGFuZyANCnRhbSBibyBkbyBjaHUgZGF1IHR1IGRhICJjYW8gYmF5 IHhhIGNoYXkiLg0KDQooQW5oOiBOaHVuZyBjb24gaGVtIGNoYXQgaGVwLCBuaGVjaCBuaGFjIGN1 YSBkdSBhbiBwaGFuIGxvIGhvIGxlLiBBbmg6IFBWLikNCg0KVGhvYXQgdHJ1eSB0byBuaG8gY2h1 IHRydW9uZyBiYW8gY2hlIGN1YSBxdWFuIA0KDQpTYWkgcGhhbSBuZ2hpZW0gdHJvbmcgeGF5IHJh IHRhaSBkdSBhbiBwaGFuIGxvIGhvIGxlIG8gcXVhbiBHbyBWYXAgdGh1b2MgdmUgY2FjIGNodSAN CmRhdSB0dSBWdSBOZ29jIFNvbiwgTmdvIFRoaSBUaGFuaCBOZ2EgdmEgTmd1eWVuIFRoaSBIb2ku IEtldCBxdWEgdGhhbmggdHJhIGN1YSANClRoYW5oIHRyYSBxdWFuIEdvIFZhcCBjaG8gdGhheSwg Y2FjIGNodSBkdSBhbiBuYXkgZGEgdGh1YyBoaWVuIGhvIHNvIHBoYXAgbHkga2hvbmcgDQpkdW5n IHF1eSBkaW5oOyBzYW4gbGFwIG1hdCBiYW5nIHRyYWkgcGhlcDsgdGhpIGNvbmcgZHVvbmcsIGRp ZW4sIGNvbmcgdGhvYXQgbnVvYy4uLiANCg0Ka2hvbmcgZGF0IHlldSBjYXUgbmh1bmcgZGEgcGhh biBsbyBiYW4gbmVuLiBWaWVjIGNodXllbiBxdXllbiBzdSBkdW5nIGRhdCwgY2h1IGRhdCB2YSAN CmNhYyBjaHUgZGF1IHR1IGN1bmcga2hvbmcgdHVhbiB0aHUgcXV5IGRpbmggcGhhcCBsdWF0LCBz dSBkdW5nIGhvcCBkb25nIGRpY2ggdnUgZGUgDQpzYW5nIG5odW9uZyBuaGFtIHRyb24gdGh1ZS4g DQoNCk5naGllbSB0cm9uZyBob24sIG9uZyBWdSBOZ29jIFNvbiB2YSBiYSBOZ3V5ZW4gVGhpIEhv aSBjb24gdGhhbSBsYW0gZGVuIG11YyBkZW0gDQpjYXQgY2EgcGhhbiBkYXQgZGEgZHVvYyBxdXkg aG9hY2ggbGFtIGNvbmcgdmllbiBjYXkgeGFuaCwgcGhhbiBsbyB4YXkgbmhhIGhvYWMgYmFuIG5l biANCmNobyBuZ3VvaSBkYW4gdHUgeGF5IGNhdC4uLiBWaWVjIGxhbSBuYXkgY3VhIGNodSBkYXUg dHUgZHVvYyBUaGFuaCB0cmEgcXVhbiBHbyBWYXAga2V0IA0KbHVhbiBkYSBsYW0gdHJhaSBxdXkg ZGluaCBwaGFwIGx1YXQgdmEgY28gZGF1IGhpZXUgbHVhIGRvaSBraGFjaCBoYW5nLiBUaGFuaCB0 cmEgcXVhbiBHbyANClZhcCBkYSBjaHV5ZW4gdG9hbiBibyBobyBzbyBzYW5nIGNvIHF1YW4gQ1NE VCBDb25nIGFuIHF1YW4uIA0KDQpUcnVvYyBjbyBxdWFuIGRpZXUgdHJhLCBjYWMgY2h1IGR1IGFu IGRldSB0aHVhIG5oYW4gc2FpIHBoYW0uIE5odW5nIHZvaSBseSBkbyBkaWEgYmFuIA0KR28gVmFw IGNvIHF1YSBuaGlldSBkdSBhbiBwaGFuIGxvIGhvIGxlIHZpIHBoYW0gdHVvbmcgdHUgbGVuIFVC TkQgcXVhbiBHbyBWYXAgY28gDQpjaHUgdHJ1b25nIG5ldSBjaHUgZGF1IHR1IGtoYWMgcGh1YyBz YWkgc290IHRoaSBzZSBkdW9jIHhlbSB4ZXQsIHh1IHBoYXQgdmkgcGhhbSBoYW5oIA0KY2hpbmgu IEJhbSB2YW8gY2FpICJwaGFvIiBuYXksIGNhIDMgY2h1IGRhdSB0dSBjdW5nIGRvbmcgbG9hdCBu b3AgZG9uIHhpbiBraGFjIHBodWMgc2FpIA0Kc290LCB2YSB0aGUgbGEgdGhvYXQgZHVvYyB2aWVj IGRvaSBtYXQgdm9pIGFuIGhpbmggc3UuIE5nb2FpIHJhLCBjYWMgbmdoaWEgdnUgdGFpIGNoaW5o IA0Ka2hhYyBjdW5nIGJpIG9uZyBTb24sIGJhIEhvaSB2YSBiYSBOZ2Egdm8gdHVvdC4gDQoNClRo ZW8gcGhhbiBhbmggY3VhIG9uZyBEYW8gVmFuIENoaWVuLCBtb3Qgbmd1b2kgZGFuIGNvIG5oYSBv IGR1IGFuIG5heSwgaGllbiB0YWkgZHUgDQpxdWFuIGRhIGNobyBsYW0gc28gaG9uZywgbmh1bmcg bXVvbiBkdW9jIGNhcCBzbyB0aGkgbW9pIGhvIHBoYWkgbm9wIHRyZW4gZHVvaSA2MCB0cmlldSAN CmRvbmcgdGllbiBjaHV5ZW4gbXVjIGRpY2ggc3UgZHVuZyBkYXQuIE51YyBjdW9pIG5oYXQgbGEg Y2h1eWVuIG5ndW9pIGRhbiBtdWEgZGF0IGRlIA0Kbywgbmh1bmcgZG8ga2hvbmcgbmFtIGR1b2Mg a2UgY28gdG9jLCBoaWVuIGNvIHF1YW4gdGh1ZSBxdWFuIHF1YXkgcmEgdHVtIG5ndW9pIHRyb2Mg DQpkYXUgZGUgYmF0IHBoYWkgbm9wIGtob2FuIHRodWUgdGh1IG5oYXAgMiUhIFZpZWMgbmF5IGNv IGxlIGNoaSBvIHF1YW4gR28gVmFwIG1vaSBjbywgDQpvbmcgQ2hpZW4gbGFjIGRhdSBuZ2FvIG5n YW4uIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9QaGFwTHVhdC93d3cuZG9pc29uZ3Bo YXBsdWF0LmNvbS52bi9EdS1hbi1waGFuLWxvLWhvLWxlLW8tcXVhbi1Hby1WYXAtLVRQLUhvLUNo aS1NaW5oLUJhbi1jYS1kYXQtY2F5LXhhbmgtcm9pLWJhdC1kYW4tY2hpdS80MDQwMTA2LmVwaSBI b25nIERpZXAgMjYvMDMvMjAxMC0xMDo0MSBBTQ0KDQpUUC4gSENNOiBEdSBhbiBwaGFuIGxvIGhv IGxlIG8gcXVhbiBHbyBWYXAgLSBCYW4gY2EgZGF0IGNheSB4YW5oIHJvaSBiYXQgZGFuIGNoaXUg DQoNClRyZW4gZGlhIGJhbiBxdWFuIEdvIFZhcCBjbyByYXQgbmhpZXUgZHUgYW4gcGhhbiBsbyBo byBsZSB2YSBkZXUgeGF5IHJhIG5odW5nIHRydW9uZyANCmhvcCB0cmFuaCBjaGFwIGdpdWEgY2h1 IGRhdSB0dSB2b2kgbmd1b2kgZGFuIGtoaSBtdWEgZGF0IGRlIHhheSBuaGEuIFZpZWMgdHJhbmgg Y2hhcCBkbyANCmxhIGRvIGNodSBkYXUgdHUgYmFuIGNhIGRhdCBjb25nIHZpZW4sIGNheSB4YW5o IGNobyBuZ3VvaSBkYW4gcm9pIGJhdCBobyBwaGFpIGNoaXUgdG9uIHRoYXQuDQoNCkNodSBkYXUg dHUgYmFuIGRhdCBjYXkgeGFuaCENCg0KTmh1bmcgbmFtIHRydW9jIGRheSwga2hpIG5odSBjYXUg dmUgY2hvIG8gZG9pIHZvaSBuZ3VvaSBkYW4gcmF0IGNhbywgbmVuIFVCTkQgcXVhbiANCkdvIFZh cCBkb25nIHkgZGUgY2hvIG5odW5nIG5ndW9pIGRhbiB0cmVuIGRpYSBiYW4gcXVhbiBkdW9jIHBo ZXAgbGFwIGR1IGFuIHBoYW4gbG8gDQpobyBsZS4gVHUgY2h1IHRydW9uZyBuYXksIG5oaWV1IGNo dSBkYXUgdHUgZGEgZGF1IHR1IGR1IGFuIGN1YSBtaW5oIG1vdCBjYWNoIHF1YSBsb2Egcm9pIA0K YmFuIGNobyBuaGlldSBobyBkYW4gbmh1bmcga2hvbmcgaG9hbiB0aGFuaCB0cmFjaCBuaGllbSB2 YSBiaSBjaGluaCBxdXllbiB4dSBseS4gTWFjIA0KZHUgYmkgeHUgbHkgbmh1bmcgY2FjIGNodSBk YXUgdHUgbGFpIHRvIHJhIHRobyBvIHZvaSB0cmFjaCBuaGllbSBjdWEgbWluaCBkb2kgdm9pIHF1 eWVuIA0KbG9pIGN1YSBuZ3VvaSBkYW4uDQoNClRoaWV0IHRob2kgdmkgcXV5ZW4gbG9pIGN1YSBt aW5oIGJpIGNodSBkYXUgdHUgdGhvIG8gbmVuIGhvIGRhIGd1aSBkb24gdG8gY2FvIGhhbmggdmkg DQp0aGlldSB0cmFjaCBuaGllbSBkbyB0b2kgY2FjIGNvIHF1YW4gYmFvIHZlIHBoYXAgbHVhdCBs YSBvbmcgTmd1eWVuIFF1b2MgSHVuZyAoU04gDQoxOTc0LCBuZ3UgcGh1b25nIEJlbiBOZ2hlLCBx dWFuIDEsIFRQLiBIQ00pLiBDaG8gZG9pIG1haSwga2hvbmcgbmhhbiBkdW9jIGhvaSBhbSwgDQpn aWFpIHF1eWV0IHRyaWV0IGRlIGtoaWVuIGNobyBob2FuIGNhbmggZ2lhIGRpbmggb25nIGxhbyBk YW8uDQoNClF1YSBidWMgeHVjLCBvbmcgSHVuZyB0aWVwIHR1YyBndWkgZG9uIGRlbiBjYWMgY28g cXVhbiBuZ29uIGx1YW4gbmhvIGxlbiB0aWVuZyBwaGFuIA0KYW5oIHZlIHN1IHRoaWV1IHRyYWNo IG5oaWVtIGN1YSBjaHUgZGF1IHR1IHZhIGNhY2ggZ2lhaSBxdXlldCBjdWEgbW90IHNvIGNvIHF1 YW4gY2h1YyANCm5hbmcuIFRoZW8gZG9uLCBvbmcgSHVuZyB0cmluaCBiYXk6ICJOZ2F5IDUuMTIu MjAwMSwgdG9pIHZhIGJhIFBoYW0gVGhpIEhhIGNvIG11YSANCmN1YSBvbmcgTmd1eWVuIFZhbiBE dW9uZyAobmd1IDQzLzMzMiBkdW9uZyBRdWFuZyBUcnVuZywgcGh1b25nIDEyLCBxdWFuIEdvIFZh cCwgDQpUUC5IQ00pIG1vdCBsbyBkYXQgKGRpZW4gdGljaCAxLjI0OG0yKSBuYW0gdHJvbmcgZHUg YW4gcGhhbiBsbyBobyBsZSBtYSBvbmcgRHVvbmcgbGEgDQpjaHUgZGF1IHR1LiBTbyB0aWVuIGNo dW5nIHRvaSBkYSB0aGFuaCB0b2FuIGNobyBvbmcgRHVvbmcgbGEgMiB0eSA0MyB0cmlldSA3MDAg bmdhbiBkb25nIA0KKHRob2kgZGllbSBkbyB2YW5nIGNoaSBjbyA1IHRyaWV1IGRvbmcvMSBjYXkg U0pDKS4gQ2hvIGRvaSByYXQgbGF1IGRlIGR1b2MgeGF5IGNhdCBuaGEgDQp0cmVuIGRvIG5odW5n IGNoaSBuaGFuIGR1b2MgY2F1IHRyYSBsb2kgdHUgb25nIER1b25nIGxhIGN1Li4uIGNoby4gTWFp IGRlbiBuYW0gMjAwOCwgY2h1bmcgdG9pIHRhIGhvYSByYSByYW5nIGRhdCBjdWEgb25nIER1b25n IGJhbiBjaG8gdG9pIGRhIGJpIHF1eWV0IGRpbmggbGFtIGRhdCBjYXkgDQp4YW5oLiBCb2kgdmkg dHJ1b2MgZGF5LCBjYWMgbG8gZGF0IHRydW9jIGN1YSBvbmcgRHVvbmcgYmFuIGNobyBjYWMgaG8g ZGFuIGxhIGNvIGtob2FuZyANCmx1aSBjYXkgeGFuaCwgdmkgZG8gbG9uZyB0aGFtIG5lbiBvbmcg dGEgZGEgYmFuIGx1b24gY2hvIG5ndW9pIGRhbiBzdSBkdW5nLiBCYXkgZ2lvIA0KVUJORCBxdWFu IEdvIFZhcCB0aGF5IG5odSB2YXkgdGhpIGtobyBjbyB0aGUga2hhYyBwaHVjIG5lbiBkYSBiYXQg b25nIER1b25nIHBoYWkgDQp0dSBraGFjIHBodWMgaGF1IHF1YS4gVGhlIGxhIG9uZyBEdW9uZyBs YXkgZGF0IGN1YSB0b2kgZGUgbGFtIGNvbmcgdmllbiBjYXkgeGFuaCB2YSANCmNvbiB0dXllbiBi byB0YXQgY2EgbGEgZG8gVUJORCBxdWFuIEdvIFZhcCB0aHUgaG9pIGNodSBvbmcgdGEga2hvbmcg Y28gbG9pIHJvaSB0cm9uIA0KdHJhbmggdHJhY2ggbmhpZW0uIEJheSBnaW8gZ2lhIGRpbmggdG9p IHZvaSBiYSBIYSBsYW0gdmFvIGNhbmgga2hvbiBjdW5nIHZpIHRvYW4gYm8gZ2lhIA0KdGFpIGRh IGRvbiB2YW8gZG8gbmVuIGNoYW5nIGJpZXQgbGFtIHNhbz8hIg0KDQpDaGluaCBxdXllbiB2YW8g Y3VvYyENCg0KU2F1IGJhbyBuaGlldSBsYW4gZ3VpIGRvbiBraGlldSBuYWkgZGVuIGNhYyBub2kg ZGUgbW9uZyBuaGFuIGR1b2Mgc3UgdHJhIGxvaSB0aG9hIGRhbmcuIA0KQ2FjIGNvIHF1YW4gY2h1 YyBuYW5nIGRldSBjaG8gcmFuZyBkYXkgbGEgdHJhbmggY2hhcCBkYW4gc3UgbmVuIGRhIGh1b25n IGRhbiBvbmcgDQpIdW5nIGd1aSBkb24ga2hvaSBraWVuIHJhIFRBTkQgcXVhbiBHbyBWYXAuIERv biBraG9pIGtpZW4gY3VhIG9uZyBIdW5nIGRhIGR1b2MgDQpUQU5EIHF1YW4gR28gVmFwIHRodSBs eSB0dSB0aGFuZyAxMi4yMDA4IG5odW5nIGRlbiBuYXkgdmFuIGNodWEgZHVhIHJhIHhldCB4dSAN CmtoaWVuIG9uZyBIdW5nIG5odSBuZ29pIHRyZW4gZG9uZyBsdWEuDQoNClRydW9jIGRvLCBuZ2F5 IDE2LjUuMjAwNiwgVGhhbmggdHJhIHF1YW4gR28gVmFwIGRhIGNvIGtldCBsdWFuIHRoYW5oIHRy YSBwaGF0IGhpZW4gc2FpIHBoYW0gdHJvbmcgdmllYyBiYW4gaGV0IGtob2FuZyBsdWkgY2F5IHhh bmggY2hvIGNhYyBobyBkYW4gdHJvbmcgZHUgYW4gcGhhbiBsbyBobyBsZSBkbyANCm9uZyBEdW9u ZyBsYW0gY2h1IGRhdSB0dS4gTmdheSAxOS41LjIwMDYsIFVCTkQgcXVhbiBHbyBWYXAgcXV5ZXQg ZGluaCB0aGFuaCBsYXAgDQpUbyBjb25nIHRhYyBraGFjIHBodWMgY2FjIHNhaSBzb3QgdGFpIGR1 IGFuIHRyZW4uIE5nYXkgc2F1IGtoaSBUbyBjb25nIHRhYyBraGFjIHBodWMgY28gDQp0byB0cmlu aCBzbyAxMzIvVFRyLVQuS1AtUUxEVCB0aGkgbmdheSAxNC42LjIwMDYsIFVCTkQgcXVhbiBHbyBW YXAgZGEgcmEgcXV5ZXQgDQpkaW5oIHNvIDU3OC9RRC1VQkROIHZlIHZpZWMga2hhYyBwaHVjIHNh aSBzb3QgY3VhIGR1IGFuIHBoYW4gbG8geGF5IGR1bmcgbmhhIG8gbGUgDQpjdWEgb25nIE5ndXll biBWYW4gRHVvbmcuDQoNClF1eWV0IGRpbmggbmV1IHJvOiAiRGlldSAxOiBPbmcgTmd1eWVuIFZh biBEdW9uZyBjbyB0cmFjaCBuaGllbSBraGFjIHBodWMgY2FjIHNhaSANCnNvdCB0aGVvIG5vaSBk dW5nIHRvIHRyaW5oIHNvIDEzMi9UVHItVC5LUC1RTERUIG5nYXkgMTQuNi4yMDA2IGN1YSBUbyBj b25nIHRhYyBraGFjIA0KcGh1YzsgZG9uZyB0aG9pIHRob2EgdGh1YW4gdmEgZGVuIGJ1IGNobyBu Z3VvaSBkYW4gZGUgZGFtIGJhbyBkYXQgcXV5IGhvYWNoIGNheSB4YW5oIA0KdmEgZGF0IGdpYW8g dGhvbmcgdGhlbyBkdW5nIHRpIGxlIGRhdCBxdXkgaG9hY2ggdHJvbmcgdG9uZyBtYXQgYmFuZyBx dXkgaG9hY2ggcGhhbiBsbyBkYSANCmR1b2MgdGhvYSB0aHVhbi4gRGlldSAyOiBPbmcgTmd1eWVu IFZhbiBEdW9uZyBwaGFpIGNoaXUgbW9pIGNoaSBwaGkga2hhYyBwaHVjIG5ldSANCnRhaSBkaWV1 IDEsIGRvbmcgdGhvaSBjbyB0cmFjaCBuaGllbSBiYW4gZ2lhbyBjbyBzbyBoYSB0YW5nIHZhIGRh dCBjYXkgeGFuaCBjaG8gY28gcXVhbiANCnF1YW4gbHkgY2h1eWVuIG5nYW5oIGN1YSBxdWFuLiIN Cg0KVGF0IGNhIHJhdCBybyByYW5nLCBuaHVuZyBkbyBvbmcgRHVvbmcgZGEgYmFuIGhldCBraG9h bmcgbHVpIGNobyBjYWMgaG8gZGFuIHN1IGR1bmcgDQp0cnVvYyBkbyBuZW4ga2hvbmcgdGhlIGxh eSBsYWkuIFRyb25nIGx1YyBraG9uZyB0aGUga2hhYyBwaHVjIGR1b2Mgbmh1bmcgcGhhbiBkaWVu IHRpY2ggDQpraWEgbmVuIG9uZyBEdW9uZyBkYSBsYXkgZGF0IG1hIG1pbmggZGEgYmFuIGNobyBv bmcgSHVuZyB2YSBiYSBIYSBkZSBnaWFvIGxhaSBjaG8gDQpxdWFuIGxhbSBkYXQgY2F5IHhhbmgu DQoNCkN1bmcgdGFpIGJpZW4gYmFuIG1hIGhhaSBiZW4gdHUgdGhvYSB0aHVhbiB2YW8gbmdheSAx OC4xMC4yMDA4IHRoaSBvbmcgRHVvbmcgZGEgZG9uZyANCnkgZG9pIGxhaSBoYWkgcGhhbiBkYXQg Y2hvIG9uZyBIdW5nIHZhIGJhIEhhIHRhaSBwaHVvbmcgMTUsIHF1YW4gR28gVmFwLiBOZ2F5IA0K MjYuMTIuMjAwOCwgdGFpIFVCTkQgcGh1b25nIDE0IChub2kgZHUgYW4gY3VhIG9uZyBEdW9uZykg b25nIER1b25nIGN1bmcgZG9uZyB5IA0KZG9pIHBoYW4gZGF0IGJlbiBwaHVvbmcgMTUsIHF1YW4g R28gVmFwIGNobyBvbmcgSHVuZyB2YSBiYSBIYS4gVHV5IG5oaWVuLCBkbyBoYWkgDQpiZW4gdmFu IGNodWEgdGhvYSB0aHVhbiBkdW9jIG5lbiBvbmcgSHVuZyB5ZXUgY2F1IGNodXllbiBzdSB2aWVj IGxlbiBUQU5EIHF1YW4gR28gDQpWYXAuIE1hYyBkdSBkYSB0aHUgbHkgdnUgYW4gdG9pIGhvbiAx NSB0aGFuZyBuaHVuZyBUQU5EIHF1YW4gR28gVmFwIHZhbiBjaHVhIGR1YSANCnZ1IGFuIHJhIHhl dCB4dS4gDQoNCiJUaGVvIGJvIGx1YXQgdG8gdHVuZyBkYW4gc3UsIFRoYW0gcGhhbiB0aHUgbHkg dnUgYW4gbmF5IGN1YSBUQU5EIHF1YW4gR28gVmFwIGRhIHZpIA0KcGhhbSB0byB0dW5nIGtoaSBr ZW8gZGFpIHRob2kgZ2lhbiBkdWEgdnUgYW4gcmEgeGV0IHh1Ii1Nb3QgbHVhdCBzdSBjdWEgZG9h biBsdWF0IHN1IFRQLiANCkhvIENoaSBNaW5oIG5oYW4gZGluaC4NCg0KTmh1IHZheSwgdmllYyBV Qk5EIHF1YW4gR28gVmFwIGRhIHJhIHF1eWV0IGRpbmggeWV1IGNhdSBjaHUgZGF1IHR1IGxhIG9u ZyBOZ3V5ZW4gDQpWYW4gRHVvbmcgcGhhaSBraGFjIHBodWMgdmEgdGhvYSB0aHVhbiBib2kgdGh1 b25nIHZvaSBuZ3VvaSBkYW4gbGEgZHVuZyBkYW4uIFRoZSANCm5odW5nIFRvYSBhbiBxdWFuIEdv IFZhcCBsYWkga2VvIGRhaSB0aG9pIGdpYW4gZHVhIHZ1IGFuIHJhIHhldCBkYSBraGllbiBkdSBs dWFuIGJ1YyANCnh1YyAuIERlIG5naGkgVEFORCBxdWFuIEdvIFZhcCBjYW4gc29tIGR1YSB2dSBh biByYSB4ZXQgeHUsIHRyYSBsYWkgY29uZyBiYW5nIGNobyBuZ3VvaSBkYW4uDQoNClAuViBEb2kg U29uZyAmIFBoYXAgTHVhdCBjdW5nIGRhIGxpZW4gaGUgZGUgbGFtIHZpZWMgdm9pIHRoYW0gcGhh biB0aHUgbHkgdnUgYW4gdHJlbi4gDQpLaGkgZGVuIHZhbiBwaG9uZyBUb2EgYW4gcXVhbiBHbyBW YXAgbGllbiBoZSB2b2kgdGhhbSBwaGFuIHRoaSB0aGFtIHBoYW4geWV1IGNhdSANCnBob25nIHZp ZW4gcGhhaSB4aW4geSBraWVuIGxhbmggZGFvLiBTYXUga2hpIHBob25nIHZpZW4gZHVvYyBsYW5o IGRhbyBUb2EgYW4gcXVhbiBjaGkgDQpkaW5oIGdhcCB0aGkgdGhhbSBwaGFuIG5heSBub2kgbGFp IHZvaSBsYW5oIGRhbyBsYSBkYSB2ZSBuaGEgKG1hYyBkdSBsdWMgZG8gZG9uZyBobyBtb2kgDQpj aGkgMTEgZ2lvIHRydWEgbmdheSB0aHUgc2F1LCB0dWMgbmdheSAxOS4zLjIwMTApLiANCg0KaHR0 cDovL3d3dy50aW4yNDcuY29tL3VibmRfdHBoY21fYmlfZGFpX2JpZXVfcGhlX2JpbmgtMTYtMTE3 MjQuaHRtbCBDb25nIEh1bmcgVlRDLnZuICAyNS8wNC8yMDA4IC0gMTU6NDIgDQoNClVCTkQgVFAu SENNIGJpIGRhaSBiaWV1IHBoZSBiaW5oIA0KDQpUcnVvYyBseSBkbyBjb25nIHRyaW5oIGdpYW8g dGhvbmcgY2hhbSB0aWVuIGRvIGRvIHZ1b25nIGRpIGRvaSBoYSB0YW5nIGt5IHRodWF0IG5odSB0 cnUgDQpkaWVuLCBkYXkgZGllbiB0aG9haSwgb25nICJob2kgZG9uZyIgRGFuZyBWYW4gS2hvYSB0 aGFuZyB0aGFuOiAiVm9pIHR1IGNhY2ggbGEgZGFpIGJpZXUgDQpIRE5ELCB0b2kgcGhlIGJpbmgg VUJORCBUUCwgdHUgY2FjaCBkYXkgbWF5IG5hbSBkYSBraGFuZyBkaW5oIHhheSBkdW5nIGNvIGNo ZSANCnBob2kgaG9wIG1hIGRlbiBuYXkgdmFuIGNodWEgdGhheS4uLiINCg0KUGhpZW4gY2hhdCB2 YW4gc2FuZyA1LzEyIHRhaSBreSBob3AgSERORCBUUC5IQ00sIG5oaWV1IGRhaSBiaWV1IGRhIGR1 YSByYSBuaHVuZyANCmtpZW4geGFjIGRhbmcsIHRoaWV0IHRodWMgZ3VpIGRlbiBvbmcgVHJhbiBR dWFuZyBQaHVvbmcgLSBHRCBTbyBHVENDIFRQLkhDTSB2ZSANCnZhbiBkZSBrZXQgeGUsIHVuIHRh YyBnaWFvIHRob25nLCBuZ2FwIHVuZy4uLg0KDQoiVHV5ZW4gY2hpZW4iIHZvaSB4ZSBtYXk/DQoN ClRyb25nIDM5IGNhdSBob2kgY2hhdCB2YW4gY3VhIGRhaSBiaWV1LCBjdSB0cmkgZ3VpIHZlIGRl dSB0aGUgaGllbiB0aW5oIHRoYW4geGF5IGR1bmcsIA0KZG9uZyBnb3AgdmEgbW9uZyBtdW9uIHRp bmggaGluaCBnaWFvIHRob25nIHRyZW4gZGlhIGJhbiBUUC5IQ00gbmdheSBtb3Qga2hhIHF1YW4g DQpob24uDQoNCk1hYyBkdSBUUCBkYSBjbyBwaHVvbmcgYW4gdG8gY2h1YyAibGVjaCBjYSAtIGxl Y2ggZ2lvIiBuaHVuZyB0aGVvIGRhaSBiaWV1IFZvIFZhbiANClNlbiBjYW46ICJUdXllbiBjaGll biB2b2kgeGUgbWF5IC4uLiBHaWFtIGRhbiBkaSBkZW4gY2FtIGhhbiB4ZSBtYXkgbGEgY2EgbW90 IGN1b2MgDQpjYWNoIG1hbmcsIHBoYWkgY28gbG8gdHJpbmguIFBoYWkgY2hhcCBuaGFuIGxhbSBt b3QgY3VvYyBjYWNoIG1hbmcgdGhpIHRpbmggaGluaCANCmdpYW8gdGhvbmcgZG8gdGhpIFRQLkhD TSBtb2kgbW9uZyBraGEgcXVhbiBob24uLi4iLg0KDQpUdXkgbmhpZW4sIGRhaSBiaWV1IE5ndXll biBWYW4gQmFjaCBsZW4gdGllbmc6ICJUdXllbiBjaGllbiB2b2kgeGUgbWF5IGNoYW5nIGtoYWMg DQpuYW8gInR1eWVuIGNoaWVuIiB2b2kgbmd1b2kgZGFuLCB2aSB4ZSBtYXkgbGEgcGh1b25nIGxh aSBjaGluaCBkZSBtdXUgc2luaCBjdWEgcGhhbiANCmxvbiBuZ3VvaSBkYW4iLiBEYWkgYmlldSBE YW5nIFZhbiBLaG9hIGh1b25nIHVuZzogIlRvaSB0dXllbiBjaGllbiB2b2kgeSB0dW9uZyBjYW0g DQp4ZSBtYXksIGRvIGxhIG1vdCBjYWNoIHh1IGx5IG5vbmcgdm9pLCBjdWMgZG9hbiwga2hvbmcg Y28gbG8gdHJpbmguLi4iIA0KDQpUaHVjIHRlIGNobyB0aGF5LCB2YW4gbmFuIGtldCB4ZSBoaWVu IG5heSBraG9uZyBwaGFpIGNoaSBkbyBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25nIA0KYmFuZyB4 ZSBtYXkgZ2F5IG5lbiBtYSB4ZSBidXl0IGN1bmcgImdvcCBtb3QgcGhhbiIga2hvbmcgbmhvLiBN YWMgZHUsIHBodW9uZyB0aWVuIA0KZ2lhbyB0aG9uZyBuYXkgY2h1YSBkYXAgdW5nIGR1b2Mgbmh1 IGNhdSBkaSBsYWkgY3VhIG5ndW9pIGRhbi4NCg0KRGFpIGJpZXUgTmd1eWVuIFZhbiBIaWVuIGN1 bmcgbGVuIHRpZW5nOiAiQ2FuIHBoYWkgdHJhIGxhaSBiYW4gY2hhdCBkdW9uZyBoYWkgY2hpZXUg DQpuaHUgdHJ1b2MgZGF5IG8gbW90IHNvIHR1eWVuIG5odSBWbyBWYW4gVGFuLCBMZSBRdXkgRG9u Li4uIG1hIFNvIEdUQ0MgZGEgdGllbiANCmhhbmggcXV5IGhvYWNoIHRoYW5oIG1vdCBjaGlldSB0 cm9uZyB0aG9pIGdpYW4gcXVhLi4uIi4NCg0KIlRvaSBwaGUgYmluaCBVQk5EIFRQLi4uIg0KDQpC YSBQaGFtIFBodW9uZyBUaGFvLCBDaHUgdGljaCBIRE5EIFRQIGNobyBiaWV0OiAiVmUgbGF1IGRh aSwgVFAgc2UgeGF5IGR1bmcgMiB0cnVjIA0KZHVvbmcgeHV5ZW4gdGFtLCA0IGR1b25nIHZhbmgg ZGFpLCAyOSBjYXUgcXVhIHNvbmcgZGFjIGJpZXQgbGEgNiB0dXllbiBtZXRybyB2b2kgY2hpIA0K cGhpIDIyIHR5IFVTRC4uLiIuIFRoZSBuaHVuZywgZG8gY2hpIGxhIHZlIGxhdSB2ZSBkYWkuIENv biBoaWVuIHRhaSB0aGkgcGhhbiBsb24gY2FjIGNvbmcgDQp0cmluaCB0aGkgY29uZyByYXQgY2hh bSwgbGEgbW90IHRyb25nIG5odW5nIG5ndXllbiBuaGFuIGdvcCBwaGFuIGdheSB1biB0YWMgZ2lh byB0aG9uZy4NCg0KT25nIFRyYW4gUXVhbmcgUGh1b25nIGRhIGdpYWkgdGhpY2ggbmd1eWVuIG5o YW4gY2hhbSB0cmUgbGEgZG8gaGUgdGhvbmcgcXVhbiBseSwgZGlldSANCmhhbmggY29uIG5oaWV1 IHlldSBrZW0uIFBoYW4gbG9uIG1hdCBiYW5nIGdpYWkgcXV5ZXQgY2h1YSBoaWV1IHF1YSwgY2h1 YSBkZW4gbm9pIGRlbiANCmNob24gbmVuIGdhcCBuaGlldSB2dW9uZyBtYWMgdHJvbmcgdmllYyBk aSBkb2kgaGEgdGFuZyBreSB0aHVhdCBuaHUgdHJ1IGRpZW4sIGRheSBkaWVuIA0KdGhvYWkuIERp ZW4gaGluaCwgY29uZyB0cmluaCBkYWkgbG8gRG9uZyBUYXkgdmFuIGNvbiB2dW9uZyAyOCB0cnUg ZGllbiB2YSAxNSB0cnUgYmllbiANCnRoZS4NCg0KKEFuaDogT25nIERhbmcgVmFuIEtob2E6ICJW b2kgdHUgY2FjaCBsYSBkYWkgYmlldSBIRE5ELCB0b2kgcGhlIGJpbmggVUJORCBUUC4uLiIpDQoN ClRoZW8gb25nICJob2kgZG9uZyIgS2hvYSB0aGk6ICJLaGkgZGEgcGhvaSBob3AgdGhpIGtob25n IHRoZSB0cmFjaCBtb3QgbWluaCBhbmggDQpQaHVvbmcuIFZvaSB0dSBjYWNoIGxhIGRhaSBiaWV1 IEhETkQsIHRvaSBwaGUgYmluaCBVQk5EIFRQLiBVQk5EIFRQIHR1IGNhY2ggZGF5IA0KbWF5IG5h bSBkYSBraGFuZyBkaW5oIHhheSBkdW5nIGNvIGNoZSBwaG9pIGhvcCBtYSBkZW4gbmF5IHZhbiBj aHVhIHRoYXksIHZheSBsYSBzYW8uLi4iLg0KDQpCZW4gY2FuaCBuaHVuZyBnaWFpIHBoYXAgdmUg bGF1IGRhaSwgbmhpZXUgeSBraWVuIGN1YSBuaGlldSBkYWkgYmlldSBkYSBjaGkgcmEgbmh1bmcg dmFuIA0KZGUgbmFtIHRyb25nIHRhbSB0YXksIGxlIHJhIHBoYWkgdmEgZGEgZHVvYyB0aHVjIHRo aSBkZSBnaWFpIHF1eWV0IHZhbiBkZSBrZXQgeGUsIHVuIA0KdGF0IHRoaSBuaHUgeHUgbHkgdmkg cGhhbSB0cmF0IHR1IGxvbmcgbGUgZHVvbmcsIHBoYXQgbmd1b2kgcXVhIGNhbWVyYSBjYW8gdm9p IG5odW5nIGhhbmggdmkgDQpraG9uZyB0b24gdHJvbmcgbHVhdC4uLiB0aGkgdmFuIGNvbiB0cmkg dHJlLCBjaGFtIHRyZS4NCg0KRHVvYyBiaWV0LCBzYXAgdG9pIFRQIHNlIHF1eSBob2FjaCBsYWkg bWF0IGRvIGRhbiBjdSwgZG9uZyB0aG9pIHRhbmcgY3VvbmcgbHVjIGx1b25nIA0KY2FuaCBzYXQs IGRhdCB0aGVtIGNhbWVyYS4uLiANCg0KIktoaSBjaGF0IHZhbiB0b2kgbWFjIGNvIHZpIHZhbiBk ZSBjdSBtZW0uLi4iDQoNClNhdSBraGkgY2hhdCB2YW4gY2h1eWVuIGtldCB4ZSwgdW4gdGFjLi4u LCBkYWkgYmlldSBEYW5nIFRoYW5oIFRhbSBtbyBkYXUgY2hvIGN1b2MgDQpjaGF0IHZhbiB2ZSB2 YW4gZGUgbmdhcCBsdXQgdHJlbiBkaWVuIHJvbmcgbyBUUC5IQ00gdHJvbmcgdGhvaSBnaWFuIGdh biBkYXkuIA0KDQpPbmcgVGFtIGNobyBiaWV0OiAiTmhpZXUgY29uZyB0cmluaCB0cmVuIGNhbyBv IG51b2MgbmdvYWksIGN1IHRoZSBsYSB0cm9uZyBraHUgdnVjIA0KRG9uZyBOYW0gQSBraGkgeGF5 IGR1bmcgbmVuIG1vbmcgY2hvIG5odW5nIGNvbmcgdHJpbmggdHJlbiBjYW8gbmd1b2kgdGEgZHVu ZyBjb2MgDQpiZSB0b25nLCBjb24gVFAgbWluaCB0aGF5IGJhbmcgY3UgdHJhbSB0aGkgbmd1eSBj byBsdW4gY2FuZyBjYW8uIE11b24gY2hvbmcgbmdhcCBsYXUgDQpkYWkgcGhhaSB0aW5oIHRvYW4g Y3UgdGhlLCB0cmVuIGNhYyBsdXUgdnVjIHhheSBkdW5nIGNhYyB0cmFtIGJvbSB2YSBobyBkaWV1 IHRpZXQgLi4uIi4NCg0KKEFuaDogIkhlIHRob25nIHRob2F0IG51b2MgZHVvYyB4YXkgY2hhbSBx dWEhIikgDQoNCkJ1YyB4dWMgdHJ1b2MgdGluaCBoaW5oICJuZ2FwIGxlIHRoaSBnaWFtLCBuZ2Fw IHhpIHRhbmciIHRyb25nIHRob2kgZ2lhbiBxdWEsIGRhaSBiaWV1IA0KRGFuZyBWYW4gS2hvYSBj aGkgdGhhbmc6ICJOZ3V5ZW4gbmhhbiBuZ2FwIG51b2MgbGllbiBxdWFuIGRlbiBjb3QgbmVuIHRy b25nIHF1YSANCnRyaW5oIHhheSBkdW5nIGRvIHRoaS4gQ2h1bmcgdGEgZGEgbmdvYW4gY28gYm8g YmUgdmllYyB4YXkgZHVuZyB0aWV1IGNodWFuIGNvdCBuZW4uIA0KQ3VuZyB0YWkgY3VvYyBob3Ag dHJvbmcgaG9pIHRydW9uZyBuYXkgY2FjaCBkYXkgNSBuYW0sIGxhbmggZGFvIFVCTkQgZGEgZHVu ZyBsZW4gDQp0cnVvYyBjaHVuZyB0b2kgbmhhbiB0cmFjaCBuaGllbSB2ZSBtaW5oLCBodWEgc2Ug a2hhYyBwaHVjLCBuaHVuZyB0aW5oIGhpbmggZGVuIG5heSANCnZhbiB0aGUuIEJheSBnaW8gbyBk YXkga2hpIGNoYXQgdmFuIHRvaSBtYWMgY28gcXVhIHZpIHZhbiBkZSBjdSBtZW0gbWEgZGEgcGhh aSBkdW9jIGNoYXQgdmFuIHRvaSAzIGxhbi4uLiIuDQoNClNhdSBuaHVuZyBsb2kgY2hpIHRyaWNo IHRoYW5nIHRoYW4gY3VhIGtob25nIGl0IGRhaSBiaWV1LiBHaWFtIGRvYyBTbyBHVENDIC0gVHJh biANClF1YW5nIFBodW9uZyBuZ2FwIG5ndW5nOiAiVGh1YyByYSBxdXkgaG9hY2ggZ2lhbyB0aG9u ZyBkYSBjbywgdHJvbmcgcXV5IDEgbmFtIDIwMDggDQpwaGFpIHRyaW5oIHF1eSBob2FjaCB0aG9h dCBudW9jIDUga2h1IHZ1YyBuZ29haSB0cnVuZyB0YW0sIGtoaSBuYW8gbGFtIHhvbmcgc2UgeGFj IGRpbmggDQpkdW9jIGNvdCB4YXkgZHVuZy4uLiBUaGVvIHRvaSwgdHJvbmcgc3VvdCBtb3QgdGhv aSBnaWFuIGRhaSBxdWFuIGx5IGRvIHRoaSBraG9uZyBjaGF0IA0KY2hlLCB2aSB2YXkgbmVuIGhv IGRpZXUgdGlldCBiaSBsYW4gY2hpZW0sIGxhcCBkaSwgeGF5IGR1bmcgdHJlbiBkaWVuIHRpY2gg YXkgbGFtIG1hdCBjaG8gDQpjaHVhIG51b2MuLi4iLg0KDQpUcnVvYyBraGkgcGhpZW4gaG9wIGNo dXllbiBzYW5nIGNoYXQgdmFuIHZhbiBkZSB0YWkgbmd1eWVuLCBtb2kgdHJ1b25nLCBkbyB0aGkg dmEgYW4gDQp0b2FuIHRodWMgcGhhbSBvIFRQLkhDTSwgYmEgUGhhbSBQaHVvbmcgVGhhbyBjdW9p IHJhdCBsYWMgcXVhbjogIkNvIG5oaWV1IG51b2MgDQp0aGFwIGhvbiBtYXQgbnVvYyBiaWVuIG5o dSBIYSBMYW4gdGhhcCBob24gNm0gbWEgaG8gdmFuIGtoYWMgcGh1YyBkdW9jLiBDdSB0aGUgbyAN CkhhIE5vaSB0aGFwIGhvbiBkYXkgc29uZyBIb25nIG5odW5nIGN1bmcga2hhYyBwaHVjIGR1b2Mu Li4gdGhpIHRoZW8gdG9pLCB0aW5oIGhpbmggDQpuZ2FwIHVuZyBoaWVuIG5heSBvIFRQIGNvIG1v dCBuZ3V5ZW4gbmhhbiBjaHUgcXVhbiBsYSwgaGUgdGhvbmcgdGhvYXQgbnVvYyBkdW9jIHhheSAN CmNoYW0gcXVhISINCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwMTkwNTA0MDMzMy9uaGFfZGFu Z19vX2JvbmdfZHVuZ19iaV9jYXBfc29faG9uZ19jaG9fbmd1b2lfa2hhYy5odG1sP21vZGU9cHJp bnQgMjYvMTEvMjAxMCwgMDk6MDQgQU0gIA0KDQpUUCBIQ006IE5oYSBkYW5nIG8gYm9uZyBkdW5n IGJpIGNhcCBzbyBob25nIGNobyBuZ3VvaSBraGFjDQoNCkR1b2MgY2hvIHRhbmcgbmhhIHRydW9j IHN1IGNodW5nIHRodWMgY3VhIFV5IGJhbiBBbiBuaW5oIG5oYW4gZGFuIHF1YW4gQmluaCBIb2Eg DQoobmF5IGxhIHF1YW4gQmluaCBUaGFuaCwgVFAgSENNKSB2YW8gbmdheSAxNi82LzE5NzUsIGtl IHR1IGRvLCBjYSBnaWEgZGluaCBEYWkgdGEgDQpxdWFuIGRvaSBOZ3V5ZW4gVGhvICg3MyB0dW9p LCBkdW9jIHRyYW8gSHV5IGhpZXUgNTAgbmFtIHR1b2kgRGFuZywgaGllbiBkYSBuZ2hpIGh1dSkg DQpzaW5oIHNvbmcgbGllbiB0dWMsIG9uIGRpbmgsIGtob25nIGhlIGJpIHRyYW5oIGNoYXAgdGFp IGRpYSBjaGkgMjJGIC0gMjQgUGhhbiBEYW5nIEx1dSwgDQpxdWFuIEJpbmggVGhhbmgsIFRQIEhD TSBjaG8gZGVuIG5heS4gDQoNCk5odW5nIG5nYXkgNC8yLzIwMDksIG9uZyBOZ3V5ZW4gVGhvIGJv bmcgbmhhbiBkdW9jICJ0cmF0IiB0cmlldSB0YXAgY3VhIFRvYSBhbiB2b2kgdHUgDQpjYWNoIGJp IGRvbiBkZSBnaWFpIHF1eWV0IHZ1IGtpZW4gZG9pIG5oYSBjdWEgbW90IG5ndW9pIGxhIGhvYWMg bWEgb25nIGNodWEgdHVuZyBtb3QgDQpsYW4gZ2FwIGhvYWMgbmdoZSBuaGFjIHRlbi4gDQoNCkRl IHRpbSBoaWV1IHN1IHZpZWMgbmF5LCBQViBCYW8gQ0FORCBkYSBwaGF0IGhpZW4gcmEgaGFuZyBs b2F0IHNhaSB0cmFpIGN1YSBuaHVuZyANCm5ndW9pIGRhIHRpZXAgdGF5IGNobyBjbyBxdWFuIGNo dWMgbmFuZyBjYXAgbGllbiAyIHNvIGhvbmcgdHJlbiB0b2FuIGJvIGtodW9uIHZpZW4gbmhhIA0K ZGF0IGN1YSBvbmcgVGhvLi4uIA0KDQpTYWkgcGhhbSB0dSBjb25nIGNodW5nIGRlbi4uLiBxdWFu LCBwaHVvbmcgDQoNClRyaW5oIGJheSB2b2kgY2h1bmcgdG9pLCBEYWkgdGEgTmd1eWVuIFRobyB2 YW4gY2h1YSBoZXQgYmFuZyBob2FuZywgYm9pIDIgdG8gZ2lheSANCmNodW5nIG5oYW4gcXV5ZW4g c28gaHV1IG5oYSB2YSBxdXllbiBzdSBkdW5nIGRhdCAoc28gaG9uZykgdnVhIGR1b2MgVUJORCBx dWFuIA0KQmluaCBUaGFuaCBjYXAgY2hvIG5ndW9pIGNodSBtb2kgdHJlbiBjaGluaCAyIGNhbiBu aGEgb25nIGRhbmcgby4gDQoNCkRlIGNodW5nIG1pbmggbWluaCBtb2kgbGEgY2h1IG5oYSBkaWNo IHRodWMsIG9uZyBUaG8gZGEgY3VuZyBjYXAgY2hvIGNodW5nIHRvaSB0b2FuIA0KYm8gZ2lheSB0 byBsaWVuIHF1YW4gZGVuIHZpZWMgcXVhbiBseSwgc3UgZHVuZyBvbiBkaW5oLCBsaWVuIHR1YyAy IGNhbiBuaGEgdGFpIGRpYSANCmNoaSAyMkYgLSAyNCBQaGFuIERhbmcgTHV1IHRyb25nIHN1b3Qg MzQgbmFtIHF1YS4gVm9pIGJvIGdpYXkgdG8gbmh1OiBHaWF5IGNobyB0YW5nIG5oYSBjbyBkYXUg DQpjaHVuZyB0aHVjIGN1YSBjaGluaCBxdXllbjsgdG8ga2Uga2hhaSBuaGEgZGF0IG5hbSAxOTc3 IHZhIDE5OTkgZGV1IGRvIG9uZyBOZ3V5ZW4gDQpUaG8gZHVuZyBraGFpOyBobyBraGF1IGRvIG9u ZyBOZ3V5ZW4gVGhvIGxhbSBjaHUgaG8gdGFpIGRpYSBjaGkgbmF5IGdoaSBybyB0aG9pIGdpYW4g DQpkYW5nIGt5IHRodW9uZyB0cnUgbGEgbmdheSAxLzEwLzE5NzYsIHBoYW4gZ2hpIG5vaSB0aHVv bmcgdHJ1IHRydW9jIGtoaSBjaHV5ZW4gZGVuIA0KY3VuZyBuZ2F5IHRhaSBkaWEgY2hpIDIyRiAt IDI0IFBoYW4gRGFuZyBMdXU7IENodW5nIG1pbmggU3kgcXVhbiBjdWEgb25nIE5ndXllbiANClRo byBkbyBRdWFuIGtodSA3IGNhcCB0aGFuZyAxMi8xOTg1IGN1bmcgZ2hpIGRpYSBjaGkgdGh1b25n IHRydSB0YWkgZGF5LiBUaGFtIGNoaSBkZW4gDQp0aGFuZyA1LzIwMDIsIHRyZW4gcXV5ZXQgZGlu aCBkb2kgc28gbmhhIHR1IHNvIDIyRCAoY3UpIHRoYW5oIHNvIDIyRiBkbyBVQk5EIHF1YW4gDQpC aW5oIFRoYW5oIGNhcCB2YW4gZ2hpIHRlbiBvbmcgTmd1eWVuIFRoby4uLiB0YXQgY2Egbmh1bmcg Y28gc28gcGhhcCBseSBybyBtdW9pIG11b2kgDQpuaHUgdmF5IG5odW5nIFVCTkQgcXVhbiBCaW5o IFRoYW5oIHZhbiBuZ2FuZyBuaGllbiBjYXAgMiBzbyBob25nIGNobyBtb3Qgbmd1b2kgDQpraGFj LiANCg0KKEFuaDogTWF0IHRydW9jIGN1YSAyIGNhbiBuaGEgZGFuZyBiaSB0cmFuaCBjaGFwICkN Cg0KVGltIGhpZXUgdmUgbmd1b24gZ29jIDIgY2FuIG5oYSBjdWEgb25nIE5ndXllbiBUaG8gdHJ1 b2Mga2hpIG9uZyBUaG8gZHVvYyBvbmcgDQpEdW9uZyBYdW9uZyBEdW9uZyBjaG8gdGFuZywgY2h1 bmcgdG9pIGR1b2MgYmlldCwgMiBjYW4gbmhhIG5heSB0cnVvYyBkYXkgdGh1b2MgDQpxdXllbiBz byBodXUgY3VhIDIgbWUgY29uIGJhIExlIFRoaSBUdXllbiB2YSBEb2FuIFRoaSBUcnVvYy4gTmFt IDE5NjgsIGJhIFRydW9jIHZhIA0KYmEgVHV5ZW4gZGEgdHUgbmd1eWVuIHJhIFBob25nIGNodW9u ZyBraGUgbGFtIDIgdXkgcXV5ZW4gdG9uZyBxdWF0IGNobyBvbmcgRHVvbmcgDQpYdW9uZyBEdW9u ZyB2YSB2byBsYSBMZSBUaGkgRGlldS4gVHJvbmcgZG8sIHZvIGNob25nIG9uZyBEdW9uZyBkdW9j IHRyYW8gcmF0IG5oaWV1IA0KcXV5ZW4gaGFuIGRvaSB2b2kgMiBjYW4gbmhhIG5heS4gVGhhbSBj aGkgdHJlbiBIb3AgZG9uZyB1eSBxdXllbiBjdWEgYmEgVHJ1b2MgY2hvIA0Kb25nIER1b25nLCBi YSBEaWV1IGNvbiBnaGkgcm8gbW90IHRyb25nIGhhaSBuZ3VvaSBkdW9jIHV5IHF1eWVuIGNvIHF1 eWVuICJIYW5oIGRvbmcgDQpjaHVuZyBuaGF1IGhvYWMgcmllbmcgYmlldCwgbmd1b2kgbm8ga2hv bmcgY2FuIGNvIHN1IHRoYW0gZHUgdmEgaG8gdHJvIGN1YSBuZ3VvaSBraWEiLiANCkNoaW5oIHZp IHZheSwgdmllYyBvbmcgRHVvbmcgWHVvbmcgRHVvbmcgcXV5ZXQgZGluaCB0YW5nIDIgY2FuIG5o YSBuYXkgY2hvIG9uZyANCk5ndXllbiBUaG8gLSBtb3Qgbmd1b2kgZW0gY3VhIG9uZyB2YW8gbmFt IDE5NzUgZGEgZHVvYyBjaGluaCBxdXllbiB4YWMgbmhhbiBsYSANCmhvcCBwaGFwLiANCg0KU2F1 IGtoaSBvbmcgRHVvbmcgWHVvbmcgRHVvbmcgY2hldCwgdm8gb25nIER1b25nIGxhIGJhIERpZXUg ZGEgeHVhdCBjYW5oIHNhbmcgDQpQaGFwIHZhIG1hbmcgdGhlbyBiYW4gY2hpbmggZ2lheSB0byBu aGEuIENvIGR1b2Mgbmh1bmcgZ2lheSB0byBuYXksIG5nYXkgMTIvMi8yMDA4LCANCmJhIERvYW4g VGhpIFRydW9jLCBoaWVuIGRhbmcgbyBQaGFwIGRhIGt5IG1vdCBsb2F0IHV5IHF1eWVuIHZlIGNo byBiYSBEb2FuIFRoaSANCkh1b25nLCBuZ3UgdGFpIHBodW9uZyA2LCBxdWFuIEdvIFZhcCB2b2kg bm9pIGR1bmc6IEJhIEh1b25nIGR1b2MgdG9hbiBxdXllbiBxdXlldCANCmRpbmggdmllYyBiYW4s IHRhbmcgY2hvIGRvaSB2b2kgMiBjYW4gbmhhIG5heSBjdW5nIG5odSB2aWVjIHRoYXkgbWF0IGJh IFRydW9jIHRoYW0gZ2lhIA0KdG8gdHVuZyB0YWkgY2FjIGNhcCBUb2EgdHJvbmcgdnUgYW4gdHJh bmggY2hhcCg/ISkgDQoNCkNvIGdpYXkgdXkgcXV5ZW4gdHJvbmcgdGF5LCBiYSBEb2FuIFRoaSBI dW9uZyBuaGFuaCBjaG9uZyBsaWVuIGhlIHZvaSBQaG9uZyBjb25nIA0KY2h1bmcgc28gMSBkZSBs YW0gdGh1IHR1YyBraGFpIG5oYW4gZGkgc2FuIHRodWEga2UgZG9pIHZvaSBjYW4gbmhhIHNvIDI0 IFBoYW4gRGFuZyBMdXUgDQp2YSBsYW0gdGh1IHR1YyBjaG8gdGFuZyBjYSAyIGNhbiBuaGEgbmF5 IGNobyBtb3Qgbmd1b2kga2hhYy4gDQoNClRhaSBQaG9uZyBjb25nIGNodW5nIHNvIDEsIG9uZyBO Z3V5ZW4gUXVhbmcgVGhhbmcsIFRydW9uZyBwaG9uZyBjaG8gYmlldCwgYmEgDQpIdW9uZyBkYSBu b3AgIkNodW5nIHRodSBkb2F0IG1haSIgY3VhIGNhbiBuaGEgc28gMjJGIGRvIGNodSB0cnVvYyBi YW4gY2hvIGJhIERvYW4gDQpUaGkgVHJ1b2MgdHUuLi4gbmFtIDE5NTkuIERvaSB2b2kgbmhhIHNv IDI0LCBzYXUga2hpIHRpZXAgdHVjIG5vcCAiQ2h1bmcgdGh1IGRvYXQgbWFpIiANCmdpdWEgY2h1 IGN1IHZvaSBvbmcgQ2FuZywgYmEgVHV5ZW4gbGEgY2hhIG1lIGJhIERvYW4gVGhpIFRydW9jIGNo byBjb25nIGNodW5nIHZpZW4sIA0KYmEgSHVvbmcgZGEgdHUga2hhaSBuaGFuIGRpIHNhbiB0aHVh IGtlIGNobyBiYSBEb2FuIFRoaSBUcnVvYyB2b2kgbHkgZG86IENoYSBiYSBUcnVvYyANCmRhIGNo ZXQgbmFtIDE5NDU7IG1lIGJhIFRydW9jIGNoZXQgbmFtIDE5ODM7IGJhIFRydW9jIGxhIHRodWEg a2UgZHV5IG5oYXQuLi4gDQoNClZvaSAyIGNodW5nIHRodSBkb2F0IG1haSBuYXkgY29uZyB2b2kg bW90IHNvIGdpYXkgdG8geGFjIG5oYW4gdHUgVUJORCBwaHVvbmcgNiB2YSANClBob25nIFF1YW4g bHkgZG8gdGhpIHF1YW4gQmluaCBUaGFuaCB2ZSBzbyBuaGEsIHRpbmggdHJhbmcgcXVhbiBseSBu aGEuLi4gQ29uZyBjaHVuZyANCnZpZW4gUGhhbiBWYW4gQ2hlbyB2YSBWYW4gVGhpIE15IER1YyBj dWEgUGhvbmcgQ29uZyBjaHVuZyBzbyAxIGRhIHZvaSB2YW5nIHRodWEgDQpuaGFuIHZhIGNodW5n IHRodWMgdmFvICJIb3AgZG9uZyBjaG8gdGFuZyBuaGEiIGdpdWEgYmEgSHVvbmcgdm9pIG1vdCBu Z3VvaSBraGFjIG1hIA0Ka2hvbmcgdGhlbSBkZW0geGlhIGdpIHRvaSAyIGJhbiAidXkgcXV5ZW4g dG9uZyBxdWF0IiBkb2kgdm9pIDIgY2FuIG5oYSBub2kgdHJlbiBkYSBkdW9jIA0KYmEgVHV5ZW4s IGJhIFRydW9jIHV5IHF1eWVuIGNobyBvbmcgRHVvbmcgWHVvbmcgRHVvbmcgdmFvIG5hbSAxOTY4 IHZhbiBjb24gDQpuZ3V5ZW4gaGlldSBsdWM7IGhpZW4gZGFuZyBkdW9jIGx1dSB0cnUgdGFpIFRy dW5nIHRhbSBsdXUgdHJ1IFRQIEhDTSBjdW5nIG5oaWV1IGxvYWkgDQpnaWF5IHRvIHRodWMgdGUg ZHVuZyB0ZW4gb25nIE5ndXllbiBUaG8gY3VuZyBuaHUgY2FjIHF1eSBkaW5oIGN1YSBMdWF0IERh dCBkYWksIEx1YXQgQ29uZyBjaHVuZy4uLiANCg0KUGhhaSBsYW0gcm8gdmkgcGhhbSBjdWEgbmh1 bmcgbmd1b2kgY28gbGllbiBxdWFuIA0KDQpUaGVvIG9uZyBOZ3V5ZW4gVGhvIHRyaW5oIGJheSwg dmkgbGEgbmd1b2kgbGluaCBjaGllbiBkYXUgbmhpZXUgbyBjaGllbiB0cnVvbmcgbmVuIG1haSAN CmRlbiBuZ2F5IDEvOC8yMDA3IG9uZyBtb2kgbGFtIHRodSB0dWMgZGUgbmdoaSBjYXAgbW9pIGdp YXkgY2h1bmcgbmhhbiBxdXllbiBzbyBodXUgDQpuaGEgdmEgcXV5ZW4gc3UgZHVuZyBkYXQuIFRy b25nIGx1YyBvbmcgVGhvIG1vaSBtb24gY2hvIGR1b2MgY2FwIGNodSBxdXllbiBuaGEsIGRhdCAN CmN1bmcgbGEgbHVjIGJhIERvYW4gVGhpIEh1b25nIHRpZW4gaGFuaCB4aW4geGFjIG5oYW4gc28g bmhhLCB4YWMgZGluaCB0aW5oIHRyYW5nIHF1YW4gDQpseSBuaGEuIA0KDQpCaWV0IHJvIHZpZWMg b25nIE5ndXllbiBUaG8gZGFuZyBsYW0gdGh1IHR1YyBjYXAgc28gaG9uZywgbmh1bmcga2hpIGJh IEh1b25nIGxhbSANCmRvbiB4aW4geGFjIG5oYW4gc28gbmhhIHRhaSBkaWEgY2hpIDIyRiAtIDI0 IFBoYW4gRGFuZyBMdXUgZGUgIkJvIHR1YyBobyBzbyBjb25nIGNodW5nIiwgDQpvbmcgQ2FvIEhv bmcgSGEsIGtoaSBkbyBsYSBQaG8gQ2h1IHRpY2ggcGh1b25nIHBodSB0cmFjaCBkbyB0aGkga2hv bmcgaGlldSB2aSANCmx5IGRvIGdpIGRhIGRhdCBidXQga3kgeGFjIG5oYW4gImNhaSByZXQiLiAN Cg0KRGVuIGx1b3Qgb25nIEhvIFBodW9uZywgVHJ1b25nIHBob25nIFF1YW4gbHkgZG8gdGhpIHF1 YW4gQmluaCBUaGFuaCBjdW5nIHZheSwgbWFjIA0KZHUgaG8gc28geGluIGNhcCBjaHUgcXV5ZW4g bmhhIGN1YSBvbmcgTmd1eWVuIFRobyBjb24gZGFuZyBuYW0gY2hvIHRhaSBjaGluaCBwaG9uZyAN Cm5heSwgc29uZyBjdW5nIG5odSBvbmcgSGEsIG9uZyBQaHVvbmcgY3VuZyAidW5nIGhvIGJhIEh1 b25nIHRvaSBkYSIga2hpIGt5IGxpZW4gbHVjIDIgDQpiYW4geGFjIG5oYW4gdGhlbyB5ZXUgY2F1 IGN1YSBiYSBIdW9uZyB2b2kgbm9pIGR1bmcgIk5oYSBraG9uZyB0aHVvYyBkaWVuIE5oYSBudW9j IA0KcXVhbiBseTsga2hvbmcgdGh1b2Mgc28gaHV1IE5oYSBudW9jIGhvYWMgZG8gQ29uZyB0eSBR dWFuIGx5IG5oYSB0aGFuaCBwaG8gcXVhbiANCmx5Li4uIiBkZSByb2kgdHUgZGF5IGJhIEh1b25n IGxheSBkbyBsYW0gYmFvIGJvaSAiQm8gdHVjIGhvIHNvIiB0YWkgUGhvbmcgY29uZyBjaHVuZyBz byAxLiANCg0KS2hvbmcgY2hpIGR1bmcgbGFpIG8gdmllYyBjbyB5IHhhYyBuaGFuLCBnaXVwIGNo byBiYSBIdW9uZyBxdWEgZHVvYyAiY3VhIGFpIiB0aHUgbmhhdCANCmxhIFBob25nIGNvbmcgY2h1 bmcsIG5odW5nIGNhbiBibyBsaWVuIHF1YW4gZGEgYmF0IGNoYXAgc3UgdGhhdCBoaWVuIGNvIHR1 IHBoaWEgb25nIA0KTmd1eWVuIFRoby4gVmkgZHUgbmh1IHRoZW8gYmFuIHZlIGhpZW4gdHJhbmcg bmhhLCBtb3QgY2FuIGN1IHF1YW4gdHJvbmcgZGUgY2FwIHNvIA0KaG9uZyBjaG8gMiBjYW4gbmhh IG5heSwgbmh1bmcgbmd1b2kgbGllbiBxdWFuIGRhIHR1IHkgZG8gdmUgcmFuaCBnaW9pIG5oYSB0 aGVvLi4uIHRyaSANCnR1b25nIHR1b25nIGR1YSB0cmVuIGhvYSBkbyBjdSBjaHUga2hvbmcgaGUg bW90IGxhbiB4dW9uZyBraGFvIHNhdCwgZG8gdmUgdGh1YyB0ZS4gVHUgDQpkbyAgZGFuIGRlbiB2 aWVjIHRvYW4gYm8gbWF0IGJhbmcgdGFuZyBwaGlhIHRyZW4gY3VhIDIgY2FuIG5oYSBuYXkgZGEg c2FpIGhvYW4gdG9hbiBzbyANCnZvaSBoaWVuIHRyYW5nLiBOaHVuZyBtb3QgbGFuIG51YSwgb25n IEhvIFBodW9uZyB0aWVwIHR1YyB0aHVhIHV5IHF1eWVuIGN1YSBDaHUgdGljaCANClVCTkQgcXVh biBCaW5oIFRoYW5oIHZhbiBreSB4YWMgbmhhbiByb2kgZG9uZyBkYXUgY3VhIFV5IGJhbiB2YW8g cGhhbiBwaGUgZHV5ZXQgY3VhIGNvIHF1YW4gTmhhIG51b2MgdHJlbiBiYW4gdmUuIA0KDQpTYWkg cGhhbSBuZ2hpZW0gdHJvbmcgdHJvbmcgc3VvdCBxdWEgdHJpbmggZ2lhaSBxdXlldCBjYXAgc28g aG9uZyBkb2kgdm9pIGNhbiBuaGEgc28gDQoyMkYgLSAyNCBQaGFuIERhbmcgTHV1IGRhIHF1YSBy byByYW5nIHZhIGJhdCBjaGFwIGNhYyBxdXkgZGluaCBwaGFwIGx1YXQuIFZpIHZheSwgDQpjaHVu ZyB0b2kga2llbiBuZ2hpIFVCTkQgdGhhbmggcGhvIGNoaSBkYW8gY2hpbmggcXV5ZW4gcXVhbiBC aW5oIFRoYW5oIHRodSBob2kgbmdheSANCmdpYXkgY2h1bmcgbmhhbiBkYSBjYXAgc2FpIHRyYWku IERvbmcgdGhvaSBjaGkgZGFvIGNhYyBjbyBxdWFuIGNodXllbiBtb24ga2hhbiB0cnVvbmcgDQp2 YW8gY3VvYyBraWVtIHRyYSwgbGFtIHJvIGRvbmcgY28gc2FpIHBoYW0gY3VhIG1vdCBzbyBjYW4g Ym8gcGh1b25nIDY7IGNhbiBibyBQaG9uZyANClF1YW4gbHkgZG8gdGhpLCBQaG9uZyBUYWkgbmd1 eWVuIC0gTW9pIHRydW9uZyBxdWFuIEJpbmggVGhhbmggdmEgbmh1bmcgY29uZyBjaHVuZyANCnZp ZW4gY3VhIFBob25nIENvbmcgY2h1bmcgc28gMSBsaWVuIHF1YW4uIERhYyBiaWV0LCBwaGFpIGxh bSBybyB2aWVjIGNvIGhheSBraG9uZyBtb3QgDQpkdW9uZyBkYXkgImNoYXkgc28gaG9uZyIgbmh1 IGRhIG5ldSB0cmVuPyANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1VCTkQtVFBIQ00tYmkt Y2FwLWR1b2kteWV1LWNhdS1ydXQta2luaC1uZ2hpZW0vMjA3NzEyOTEvMTU3LyBUaGFpIFRoaWVu IENodSBuaGF0LCAwMi8zLzIwMDgsIDA0OjE1IEdNVCs3IA0KDQpUUCBIQ006IFVCTkQgVFAuSENN IGJpIGNhcCBkdW9pIHlldSBjYXUgcnV0IGtpbmggbmdoaWVtISBHaWFpIHF1eWV0IGNvbmcgdmll YyBjaGFtLCBraG9uZyBoaWV1IHF1YSwgZGUgY2hvIHRoYW0gbmh1bmcgZGF0IGRhaSBrZW8gZGFp Li4uLCBvbmcgVHJ1b25nIFRhbiBTYW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbSANCg0KTGFuIGRh dSB0aWVuIG1vdCBiYW4ga2V0IGx1YW4gdGhhbmggdHJhIGN1YSBUaGFuaCB0cmEgVFBIQ00gZGFt IG1hbmggZGFuIGRlIG5naGkgDQoiVUJORC5UUCBydXQga2luaCBuZ2hpZW0iIHRyb25nIGNvbmcg dGFjIGNoaSBkYW8gZGlldSBoYW5oLi4uDQoNCiogRGFwIHR1b25nLCBjaGllbSBkYXQgbmdoaWEg dHJhbmcgbGlldCBzaQ0KDQpIb20gbmF5ICgwMS8wMykgbGFuaCBkYW8gVUJORC5UUCBkYSBjbyBi dW9pIG5naGUgVGhhbmggdHJhIFRQIGJhbyBjYW8ga2V0IHF1YSANCnRoYW5oIHRyYSB2aWVjIHF1 YW4gbHkgc3UgZHVuZyBkYXQgdGFpIE5naGlhIHRyYW5nIGxpZXQgc2kgVFAgKE5UTFMgVFApIHZh IG5odW5nIGhvIGRhbiANCnRyZW4gcGhhbiBkYXQgZHVvYyBnaWFvIGNobyBOVExTIFRQLiANCg0K KEFuaDogTW90IHBoYW4gZGllbiB0aWNoIE5naGlhIHRyYW5nIFRQIGJpIG1hbmcgY2hvIHRodWUg bGFtIHNhbiBib25nLi4pDQpOaHUgVFMgdHVuZyBkdWEgdGluLCB0aGFuZyA0LzE5ODQsIFVCTkQg VFBIQ00gY28gUXV5ZXQgZGluaCBzbyAyOSBnaWFvIFNvIA0KVGh1b25nIGJpbmggLSBYYSBob2kg KG5heSBsYSBTbyBMYW8gZG9uZyBUaHVvbmcgYmluaCYgeGEgaG9pICkgNTEsOCBoYSBkYXQgdGFp IHhhIA0KVGFuZyBOaG9uIFBodSB2YSBMb25nIEJpbmgsIGh1eWVuIFRodSBEdWMgKG5heSBsYSBx dWFuIDkpIGRlIHhheSBkdW5nIE5UTFMgVFAuIA0KVHJvbmcgZG8sIGtodSBBIGxhIGtodSB2dWMg Y2hpbmggdHVvbmcgZGFpIHZhIG1vIGxpZXQgc2kgcm9uZyBob24gMzAgaGE7IGNhYyBraHUgQiwg QywgDQpEIHJvbmcgaG9uIDIxLDcgaGEgZHVvYyBxdXkgaG9hY2ggbGFtIGtodSB2dWMgdHJvbmcg Y2F5IHhhbmguIA0KDQpUdXkgbmhpZW4gdmllYyBxdWFuIGx5IHN1IGR1bmcgZGF0IHRob2kgZ2lh biBxdWEgYm9jIGxvIG5oaWV1IHlldSBrZW0gZGFuIGRlbiB0aW5oIHRyYW5nIA0KbGFuIGNoaWVt LCBjaG8gdGh1ZSBkYXQsIHN1IGR1bmcgc2FpIG11YyBkaWNoIHRyYW4gbGFuLiANCg0KKEFuaDog UGhhbiBkYXQga2hhYyBjaG8gZG9hbmggbmdoaWVwIHRodWUgbGFtIG5oYSBraG8uLikNCg0KRGll biBoaW5oLCBCYW4gcXVhbiB0cmFuZyBkYSBjaG8gMTMgdG8gY2h1YyBjYSBuaGFuIHRodWUgMjQu OTk0MiB0cm9uZyB2YSBuZ29haSBraHVvbiANCnZpZW4gbmdoaWEgdHJhbmcgZGUga2luaCBkb2Fu aCBsYW0gc2FuIGJvbmcgZGEsIGxhbSBraG8gY2h1YSBoYW5nLCBob24gbm9uIGJvLCBjYXkgDQpr aWVuZywgY2F5IHhhbmgsIHBoYW4gaHV1IGNvIHZhIGJhaSBjaHVhIHBoZSBsaWV1LiBTbyB0aWVu IHRodSBkdW9jIHR1IHZpZWMgY2hvIHRodWUgbWF0IA0KYmFuZyBsYSB0dSBuYW0gMTk5OSBkZW4g MjAwNyBsYSB0cmVuIDMsMyB0eSBkb25nLg0KDQpUaGFuaCB0cmEgVFBIQ00gZGUgbmdoaSBVQk5E LlRQIHJ1dCBraW5oIG5naGllbSB0cm9uZyB2aWVjIGNodWEgY2hpIGRhbyB4dSBseSBraXAgDQp0 aG9pIGJhbyBjYW8gc28gOTQgdmEgdmllYyBnaWFvIGRhdCBraGkgY2h1YSBjbyBxdXlldCBkaW5o IHRodSBob2kgZGF0OyB5ZXUgY2F1IFNvIExELQ0KVEItWEggVFAgdG8gY2h1YyBraWVtIGRpZW0g dHJhY2ggbmhpZW0gdHJvbmcgdmllYyB0aGlldSBraWVuIHF1eWV0IHRodWMgaGllbiBkdW5nIA0K cGhhbiBkYXQgcXV5IGhvYWNoIGRhIGdpYW8gdGhlbyBRdXlldCBkaW5oIDI5OyBZZXUgY2F1IFVC TkQgcXVhbiA5IGtpZW0gZGllbSwgeHUgbHkgDQpjYSBuaGFuIGNvIHNhaSBwaGFtIHRyb25nIHZp ZWMgZ2lhbyBkYXQsIGNhcCBnaWF5IGNodSBxdXllbiBuaGEsIGRhdDsgYnVvbmcgbG9uZyBxdWFu IGx5IA0KZGUgeGF5IHJhIG5oaWV1IHRydW9uZyBob3AgbGFuIGNoaWVtLCBzYW5nIG5odW9uZyBk YXQsIHhheSBkdW5nIHRyYWkgcGhlcCBnaWFpIGRvYW4gdHUgDQoxOTg0IGRlbiBuYXkNCg0KUGhp YSB0cnVvYyBOVExTIFRQIChraHUgQSkgdGh1b2MgaGFuaCBsYW5nIHhhIGxvIEhhIE5vaSBjbyA5 IGNhIG5oYW4gdHUgeSBjaGllbSBkdW5nIA0KNy40MDBtMiBkZSBsYW0gY28gc28gc2FuIHh1YXQg a2luaCBkb2FuaC4gVGFpIGtodSBDLCBtb3QgY2EgbmhhbiBsYSBiYSBEb2FuIE1pbmggDQpUcmFu ZyBjaGllbSBkdW5nIDUuMDAwbTIgZGF0IGN1YSBOVExTIGNobyB0aHVlIGxhbSBraG8gYmFpLiAN Cg0KVGluaCBjYSAzIGtodSBCLEMsRCB0b25nIGNvbmcgY28gMTAgdG8gY2h1YyBkYW5nIHN1IGR1 bmcgMTAyLjAwMG0yIHZhIDMzMyBjYSBuaGFuIA0Kc3UgZHVuZyAxMzIuMDAwbTIgZGF0OyB0cm9u ZyBkbyBjbyAyNTggaG8gY2h1YSBkdW9jIGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5ZW4gc3UgDQpk dW5nIGRhdC4uLiANCg0KVGhlbyBUaGFuaCB0cmEgVFAsIG5nYXkgdHUgZGF1IG5hbSAxOTk1LCBU aGFuaCB0cmEgVFAgZGEgY28gYmFuIGJhbyBjYW8gdG9tIHRhdCBrZXQgDQpxdWEga2llbSB0cmEg c28gOTQvQkMtVFQgZGEgY2FuaCBiYW8gdmllYyB0dSA1MyBobyBkYW4gZGluaCBjdSBiYW4gZGF1 LCB0YW5nIGxlbiAxMDUgDQpobywgcGhhbiBsb24gY2FjIGhvIG5heSBraG9uZyBjbyBnaWF5IHBo ZXAgc3UgZHVuZyBkYXQsIGNodSB5ZXUgc2FuZyBuaHVvbmcgdHJhaSBwaGVwLiANCg0KS2V0IGx1 YW4ga2llbSB0cmEgY3VuZyBuZXUgcm8gVUJORCBodXllbiBUaHUgRHVjIChjdSkgdmEgVUJORCB4 YSBMb25nIFRoYW5oIE15IA0KY28gc2FpIHNvdCBsYSB4ZXQgY2FwIGRhdCwgY29uZyBuaGFuIHF1 eWVuIHNvIGh1dSBkYXQgY2hvIG1vdCBzbyB0cnVvbmcgaG9wIHRyZW4gY2FjIA0Ka2h1IGRhdCBs YSBraG9uZyBkdW5nIHRoYW0gcXV5ZW4sIHZpIHBoYW0gTHVhdCBkYXQgZGFpLg0KDQpRdWEgZG8s IFRoYW5oIHRyYSBUUCBkYSBjbyBraWVuIG5naGkgVUJORC5UUCByYSBxdXlldCBkaW5oIHRodSBo b2kgdG9hbiBibyBjYWMga2h1IA0KZGF0IG1hIFNvIExhbyBkb25nICYgVGh1b25nIGJpbmggeGEg aG9pIGtob25nIHN1IGR1bmcsIGN1IHRoZSBsYSBjYWMga2h1IEIsQyxEIHZhIA0KdGh1IGhvaSBj YWMgcXV5ZXQgZGluaCBtYSBVQk5EIGh1eWVuIFRodSBEdWMgZGEgZ2lhaSBxdXlldCwgY29uZyBu aGFuIHF1eWVuIHN1IA0KZHVuZyBkYXQgdnVvdCB0aGFtIHF1eWVuIHZhIGNoaSBkYW8gVUJORCBo dXllbiBUaHUgRHVjIHh1IGx5IGNhYyB0cnVvbmcgaG9wIHNhbmcgDQpuaHVvbmcgdHJhaSBwaGVw Li4uDQoNCihBbmg6IEtob25nIHRoZSB0dW9uZyB0dW9uZyBkYXkgbGEgbW90IHBoYW4gbWF0IHRp ZW4gY3VhIE5naGlhIHRyYW5nIGxpZXQgc2kgVFAsIHBoYW4gDQpkYXQgbmF5IGJpIG1vdCBzbyBj YSBuaGFuIGNoaWVtIGR1bmcgbGFtIGJhaSB4ZSBjbyBnaW9pLi4uKQ0KDQpUdXkgbmhpZW4sIDEz IG5hbSBxdWEsIGtldCBsdWFuIGtpZW0gdHJhIGN1YSBUaGFuaCB0cmEgVFBIQ00gZGEgYmkgVUJO RC5UUCB2YSBjYWMgDQpjbyBxdWFuIGNodWMgbmFuZy4uLmJvIHF1ZW4gbW90IGNhY2gga2hvIGhp ZXUgPyEgVmllYyAicXVlbiIgeHUgbHkgbmF5IGRhbiBkZW4gaGF1IA0KcXVhIGRlbiBuYXksIHR1 IDEwNSBobyBsYW4gY2hpZW0sIG11YSBiYW4gZGF0IG5naGlhIHRyYW5nLCBkZW4gbmF5IGNvbiBz byBuYXkgbGVuIHRvaSANCjMzMyBoby4gVmllYyBsYW4gY2hpZW0sIHNhbmcgbmh1b25nIGRhdCB2 YSB4YXkgZHVuZyB0cmFpIHBoZXAgbmdheSBjYW5nIHBodWMgdGFwIA0Ka2hvbmcgdGh1YyBoaWVu IGR1b2MgcXV5IGhvYWNoIHRhaSBraHUgQiwgQywgRCBjdWEgTlRMUyBUUC4gDQoNCktldCBsdWFu IGN1YSBVQk5ELlRQOiBUaG9uZyBuaGF0IHZvaSBrZXQgbHVhbiBjdWEgVGhhbmggdHJhIFRQLCBn aWFvIFVCTkQgcXVhbiA5IA0KY3VuZyBjYWMgZG9uIHZpIGxpZW4gcXVhbiB4YWMgZGluaCByYW5o LCBjYW0gbW9jIHZhIGdpYW8gZHUgMzQsNiBoYSBjaG8gQmFuIHF1YW4gdHJhbmcgDQpOVExTLlRQ LiBUaWVuIGhhbmggY3VvbmcgY2hlIG5nYXkgdHJ1b25nIGhvcCBjaGllbSBkYXQgY29uZywgZGll biB0aWNoIDUwMDBtMiBkb2kgDQp2b2kgaG8gYmEgRG9hbiBNaW5oIFRyYW5nLiBZZXUgY2F1IFNv IExEVEJYSCBjaGkgZGFvIEJhbiBxdWFuIHRyYW5nIGNoYW0gZHV0IA0KbmdheSB2aWVjIGNobyB0 aHVlIGRhdCBjb25nLCBzdSBkdW5nIGRhdCBzYWkgbXVjIGRpY2guDQoNCkNodWEgaGV0LCB0aGVv IGtldCBsdWFuIHRoYW5oIHRyYSwgMjIvMi8yMDA2LCBkdSBVQk5ELlRQIGRhIGNvIGNoaSBkYW8g dmUgcXV5IGhvYWNoIHN1IA0KZHVuZyBkYXQgdGFpIE5UTFMgVFAsIGdpYW8gVUJORCBxdWFuIDkg Y2h1IHRyaSwgcGhvaSBob3Agdm9pIFNvIExELVRCLVhIIGtoYW4gDQp0cnVvbmcgdGllbiBoYW5o IGRpZXUgdHJhLCB0aG9uZyBrZSwgbGFwIGRhbmggc2FjaCBjdSB0aGUgaGllbiB0cmFuZyBzdSBk dW5nIG5oYSwgZGF0IGN1YSANCmNhYyBobyBkYW4gdmEgdG8gY2h1YyBuYW0gdHJvbmcgcmFuaCBk YXQgZHVvYyBxdXkgaG9hY2ggc3UgZHVuZyBsYW0gTlRMUyBUUC4gDQoNClRoYW5nIDUvMjAwNiwg VUJORFRQIHRpZXAgdHVjIGNvIGNvbmcgdmFuIHNvIDI4NjMgdmUgcXV5IGhvYWNoIHN1IGR1bmcg ZGF0IE5UTFMgDQpUUCwgY2hhcCB0aHVhbiBkaWV1IGNoaW5oIHF1eSBob2FjaCBzdSBkdW5nIGRh dCwgZ2lhbSBxdXkgbW8gZGllbiB0aWNoIGNvbiBsYWkgMzQsNiBoYTsgDQpnaWFvIFVCTkQgcXVh biA5IHZhIGNhYyBTbyBsaWVuIHF1YW4gdGh1YyBoaWVuIHZpZWMgZGlldSBjaGluaCBxdXkgaG9h Y2gsIGRpZW4gdGljaCBkYXQgDQpOVExTOyB0byBjaHVjIGJvaSB0aHVvbmcsIGhvIHRybyB2YSB0 aHUgaG9pIGRhdCBkZSBtbyByb25nIE5UTFMgdGhlbyBxdXkgZGluaDsgY28gYmllbiANCnBoYXAg YmFvIHZlIHBoYW4gZGF0IG1vaSB0aHUgaG9pLCBraG9uZyBkZSBsYW4gY2hpZW0sIHhheSBkdW5n IHRyYWkgcGhlcCB0YWkgZGllbi4gDQoNClR1eSBuaGllbiBjYWMgY2hpIGRhbyBjdWEgVUJORC5U UCBkYSBraG9uZyBkdW9jICJjYXAgZHVvaSIgdGh1YyBoaWVuIG5naGllbSB0dWMuIA0KVHJvbmcg dmFuIGJhbiBiYW4gaGFuaCB2YW8gdGhhbmcgOC8yMDA4LCBQaG8gY2h1IHRpY2ggVUJORC5UUCBO Z3V5ZW4gVGhpIFRodSBIYSANCnBoYWkgdGh1YSBuaGFuIGRhIGhvbiAxIG5hbSBxdWEsIGNhYyBx dXlldCBkaW5oIGN1YSBUUCB2ZSBjb25nIHRhYyBxdWFuIGx5IE5UTFMgVFAgdmFuICJhbiBiaW5o IGJhdCBkb25nIiA/Pw0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwNDkvMjAxMDEyMDMyMjQ3MzIuYXNweCBNaW5oIE5hbSBWLktob2kgIDAzLzEyLzIwMTAgMjI6 NDcgDQoNClRQIEhDTTogSGFuZyB0aSBkb25nIGRlbiBidSBjaG8gZGFuIG8gZGF1PyBOZ3VvaSBk YW4gY2hpdSB0aGlldCEgDQogIA0KVHJvbmcga2hpIG5oaWV1IGR1IGFuIHRyaWVuIGtoYWkgY2hh bSBkbyB2dW9uZyBnaWFpIHRvYSBkZW4gYnUgdGhpIHRhaSBUUC5IQ00gbGFpIGNvIA0Kbmh1bmcg dHJ1b25nIGhvcCBuZ3VvaSBkYW4gY2hhcCBoYW5oIHRvdCBjaHUgdHJ1b25nIGRpIGRvaSBuaHVu ZyBiaSBOaGEgbnVvYyBubyB0aWVuIGRlbiBidSBoZXQgbmFtIG5heSBxdWEgbmFtIGtoYWMuIA0K DQooQW5oOiBMYXUgbWFtIFBob25nIExhbiBkYSB0dSBuZ3V5ZW4gZGkgZG9pIHR1IHRydW9jIFRl dCBOZ3V5ZW4gZGFuIG5hbSBuZ29haSBuaHVuZyANCmRlbiBuYXkgdmFuIGNodWEgZHVvYyB0cmEg dGllbiBkZW4gYnUgLSBBbmg6IERpZXAgRHVjIE1pbmgpIA0KDQpUYWkgZHUgYW4gWGF5IGR1bmcg eGEgbG8gSGEgTm9pIHRyZW4gZGlhIGJhbiBRLjIgKGdpYWkgZG9hbiAyKSwgZ2FuIDEgbmFtIHF1 YSBobyBjdWEgYmEgDQpOZ3V5ZW4gVGhpIExhbiBsYW0gdmFvIHRpbmggY2FuaCBiaSBkYXQuDQoN CkNoYXAgaGFuaCBuZ2hpZW0gY2hpbmggY2h1IHRydW9uZyBkaSBkb2kgY3VhIE5oYSBudW9jLCB2 YW8gbmdheSAxMC4yLjIwMTAsIGJhIExhbiBkYSANCmJhbiBnaWFvIHRvYW4gYm8gY2FuIG5oYSBj dW5nIGRpZW4gdGljaCBkYXQga2luaCBkb2FuaCBuaGEgaGFuZyBMYXUgbWFtIFBob25nIExhbiB0 YWkgDQpzbyA3NzggeGEgbG8gSGEgTm9pLCBub2kgZGEgZ2FuIGJvIHZvaSBnaWEgZGluaCBiYSBz dW90IDIzIG5hbSBxdWEsIGNobyBCYW4gQm9pIHRodW9uZyANCmdpYWkgcGhvbmcgbWF0IGJhbmcg US4yLiBUb25nIHNvIHRpZW4gYm9pIHRodW9uZyB2YSBobyB0cm8gY3VhIGhvIGJhIExhbiBsdWMg ZG8gbGEgaG9uIDUgDQp0aSBkb25nLCBkaSBrZW0gdm9pIG1vdCB1dSBkYWkgbGEgZHVvYyBtdWEg MSBjYW4gaG8gdGhlbyBnaWEgZ29jIG8gY2h1bmcgY3UgRmlkaWNvIJYgDQpSaXZlcnZpZXcuIE5n YXkgc2F1IGtoaSBnaWFvIG5oYSBkYXQsIGJhIExhbiBjdW5nIGR1b2MgYm8gdHJpIGRlbiBjYW4g aG8gaG9uIDEzOG0yIHRhaSANCnRhbmcgMTJCIGtodSBjaHVuZyBjdS4gDQoNClR1eSBuaGllbiwg dHUgZG8gZGVuIG5heSwgYmEgTGFuIHZhbiBjaHVhIHRoZSBiaWV0IGR1b2MgZ2lhIGdvYyBjdWEg Y2FuIGhvIG5heSBsYSBiYW8gDQpuaGlldSB2YSBjdW5nIGtob25nIGJpZXQgc28gdGllbiBob24g NSB0aSBkb25nIEJhbiBCb2kgdGh1b25nIGdpYWkgcGhvbmcgbWF0IGJhbmcgUS4yIA0Kbm8gbWlu aCBkYW5nIG5hbSBvIGRhdS4gVHJvbmcga2hpIGRvLCBkZSB0aWVwIHR1YyB0cmllbiBraGFpIGtl IHNpbmggbmhhaSwgYmEgTGFuIGRhIHBoYWkgDQpkaSB2YXkgbmdhbiBoYW5nIHNvIHRpZW4gdHVv bmcgZHVvbmcgdmEgZ2FuIG1vdCBuYW0gcXVhIHBoYWkgY29uZyBsdW5nIHRyYSBsYWkgbW9pIA0K dGhhbmcgaGFuZyBjaHVjIHRyaWV1IGRvbmcuIERvIGxhIGNodWEgbm9pIGRlbiB2aWVjIGNhbiBo byBjaHVuZyBjdSAiZGFuaCBraG9uZyBjaGluaCANCm5nb24ga2hvbmcgdGh1YW4iIG1hIGRlbiB0 aG9pIGRpZW0gbmF5IGJhIGN1bmcgY2h1YSBkdW9jIG1vdCBjaHV0IHF1eWVuIGRpbmggZG9hdCAN Cm5hbyBkb2kgdm9pIG5vLiBWaSBzYW8gY2h1YSB0cmEgdGllbiBkZW4gYnUgY2hvIGRhbj8gVHJh IGxvaSBjYXUgaG9pIG5heSwgbmhpZXUgY2FuIGJvIGRpYSANCnBodW9uZyBvIFEuMiBkZXUgY2hv IHJhbmcgdHJhY2ggbmhpZW0gdGh1b2MgdmUgY28gcXVhbiBjaHVjIG5hbmcgY2FwIHRoYW5oIHBo by4gDQoNCkdpYWkgdG9hIDMgbmFtIHZhbiBjaHVhIGRlbiBidSBjaG8gZGFuDQoNCkNhbiBzb20g Z2lhaSBxdXlldCBjaG8gZGFuIA0KVHJhIGxvaSBUaGFuaCBOaWVuIHZlIHRydW9uZyBob3AgY3Vh IG9uZyBMZSBUYW4gVHUsIG9uZyBUcmFuIE1pbmggVGhvLCBUcnVvbmcgYmFuIA0KQm9pIHRodW9u ZyBnaWFpIHBob25nIG1hdCBiYW5nIFEuQmluaCBUaGFuaCwgY2hvIHJhbmcgdmllYyBib2kgdGh1 b25nIGNobyBobyBvbmcgVHUgDQpraG9uZyB0aHVvYyBxdXllbiBnaWFpIHF1eWV0IGN1YSBjYXAg cXVhbiBtYSBsYSBjdWEgVFAuIEhpZW4gcXVhbiBkYW5nIGNobyBTbyBUTi0NCk1UIGNobyB5IGtp ZW4gaHVvbmcgZGFuIGRlIHh1IGx5IGN1IHRoZS4gIlF1YW4gZGEgeGluIHkga2llbiBUUCwgbmh1 bmcgZGVuIG5heSB2YW4gDQpjaHVhIGNvIHRyYSBsb2kuIERvIGRvLCBxdWFuIGNodWEgdGhlIGdp YWkgcXV5ZXQgdGllbiBib2kgdGh1b25nIGNobyBobyBvbmcgVHUgZHVvYywgDQpkdSBobyBkYW4g bmF5IGNoYXAgaGFuaCB0b3QgY2h1IHRydW9uZyBkaSBkb2kiLCBvbmcgVGhvIG5vaS4gDQoNCk9u ZyBMZSBUYW4gVHUgbGEgY2h1IHNvIGh1dSBjYW4gbmhhIHNvIDEwMi85QSBYbyBWaWV0IE5naGUg VGluaCwgUC4yNSwgUS5CaW5oIA0KVGhhbmguIE5nYXkgNy45LjIwMDcsIFVCTkQgUS5CaW5oIFRo YW5oIHJhIHF1eWV0IGRpbmggdGh1IGhvaSA2OSw3bTIgZGF0IHRhaSBjYW4gDQpuaGEgc28gMTAy LzlBIFhvIFZpZXQgTmdoZSBUaW5oIGN1YSBvbmcgKGRhIGR1b2MgVUJORCBUUC5IQ00gY2FwIHNv IGhvbmcgdHUgbmFtIDIwMDApIA0KZGUgdHJpZW4ga2hhaSBkdSBhbiBjaG9uZyBzYXQgbG8ga2Vu aCBUaGFuaCBEYSAoZG9hbiAxLjEgdHUgY2F1IEtpbmggZGVuIA0KZG9hbmggdHJhaSBxdWFuIGRv aSBQLjI1LCBRLkJpbmggVGhhbmgpLiANCg0KVHJvbmcgcXVhIHRyaW5oIHRpZXAgeHVjIHZvaSBC YW4gQm9pIHRodW9uZyBnaWFpIHBob25nIG1hdCBiYW5nIFEuQmluaCBUaGFuaCBzYXUgZG8sIA0K b25nIFR1IGR1b2MgY2hvIGJpZXQgTmhhIG51b2Mgc2UgYm9pIHRodW9uZyBjaG8gaG8gb25nIDEw IHRyaWV1IGRvbmcvbTIgZGF0IGJpIGdpYWkgDQp0b2EuIE5odSB2YXksIHZvaSBkaWVuIHRpY2gg Z2lhaSB0b2EgbGEgNjksN20yIGRhdCwgaG8gb25nIFR1IG5oYW4gZHVvYyBnYW4gNzAwIHRyaWV1 IA0KZG9uZyB0aWVuIGJvaSB0aHVvbmcsIGNodWEga2UgY2FjIGtob2FuIGhvIHRybyBraGFjLiBU aW4gdHVvbmcgdmFvIGxvaSBodWEgY3VhIGNhbiBibyANCkJhbiBCb2kgdGh1b25nIGdpYWkgcGhv bmcgbWF0IGJhbmcsIG9uZyBUdSBkYSB0aW5oIG5ndXllbiBiYW4gZ2lhbyBtYXQgYmFuZyB0cnVv YyBraGkgDQpkdW9jIG5oYW4gdGllbiBkZW4gYnUuIA0KDQpUaGUgcm9pIHR1IGRvIGRlbiBuYXks IGRhIDMgbmFtIHRyb2kgcXVhIG9uZyBUdSBjaG8gaG9haSB2YW4gY2h1YSBkdW9jIHRyYSB0aWVu IG5odSBsb2kgDQpodWEuIE5oaWV1IGxhbiBkZW4gQmFuIGJvaSB0aHVvbmcgZ2lhaSBwaG9uZyBt YXQgYmFuZyBRLkJpbmggVGhhbmggdGhhYyBtYWMsIG9uZyBUdSBjaGkgDQpuaGFuIGR1b2MgY2F1 IHRyYSBsb2k6ICJTZSBiYW8gY2FvIGxlbiBjYXAgdHJlbiwgdmEgc29tIGdpYWkgcXV5ZXQgY2hv IGhvIGFuaCIuIERlbiANCm5heSBkdSBkdSBhbiBkYSB0aHVjIGhpZW4geG9uZyBuaHVuZyB0aWVu IGRlbiBidSBjdWEgaG8gb25nIFR1IHZhbiBjaHVhIGR1b2MgdHJhLiANCg0KVGhpZXQgbmdoaSwg Y2FjIGNvIHF1YW4gY2h1YyBuYW5nIHZhIFVCTkQgVFAuSENNIHNvbSB4ZW0geGV0LCBnaWFpIHF1 eWV0IGNoaSB0cmEgDQp0aWVuIGRlbiBidSBjaG8gZGFuLCBraG9uZyBkZSB2dSB2aWVjIHRpZXAg dHVjIGtlbyBkYWksIGdheSB0aGlldCBoYWkgY2hvIGRhbiBudWEuDQoNCi0tLS0tIA0KUGhhbiAy OiBDdSB0cmkga2llbiBuZ2hpOiBCbyBjaGluaCB0cmkga2llbSB0cmEsIGtpZW0gZGllbSwgY2Fj aCBjaHVjIG9uZyBOZ3V5ZW4gVGFuIER1bmcgdGhhbSBuaHVuZywgaGFpIGRhbiAgDQoNCmh0dHA6 Ly93d3cubGFvZG9uZy5jb20udm4vVGluLXR1Yy9WaW5hc2hpbi1uZW0taG9uLTMtbmdoaW4tdHkt ZGUtbXVhLWRvaS10YXUtY3UvODM1MSBEdXkgVGhhbmggVGh1IEJheSwgNy44LjIwMTAgMTk6MTcg KEdNVCArIDcpIA0KDQpUaHUgdHVvbmc6IFZpbmFzaGluIG5lbSBob24gMyBuZ2hpbiB0eSBkZSBt dWEgZG9pIHRhdSBjdSAobXVhIG5oaWV1IG5oYXQgbGEgdHUgbmFtIDIwMDYgLSBuYW0gb25nIE5n dXllbiBUYW4gRHVuZyBsZW4gbGFtIFRodSB0dW9uZykgDQoNCihMRE8pIC0gQ2hvIGRlbiB0YW4g YmF5IGdpbywga2hpICJ2aSB0aHV5ZW4gdHJ1b25nIiAgY3VhIGNvbiB0YXUgVmluYXNoaW4gliBv bmcgUGhhbSANClRoYW5oIEJpbmggLSBkYSB0YWkgdmkgdHJvbmcgdHJhaSB0YW0gZ2lhbSwga2hp IG1hIG5odW5nIGRhdSBoaWV1IHZpIHBoYW0gYnVvYyBkYXUgZGEgDQpkdW9jIGR1YSByYSBhbmgg c2FuZyBkZSB4dSBseS4uLiwgbGFuIGdpbyBsYWkgdHVuZyB0cmFuZyBobyBzbywgeGVtIGxhaSB0 dW5nIHRodW9uZyB2dSwgDQpkaWV1IG1hIGNodW5nIHRvaSBraG9uZyBraG9pIGJhbmcgaG9hbmcg bGEgdmkgc2FvIGxhbmggZGFvIHRhcCBkb2FuIG5heSBsYWkgY28gdGhlIHR1eSANCnRpZW4gdnVu ZyB2aXQgIGhvbiAzIG5naGluIHR5IGRvbmcgY3VhIE5oYSBudW9jIGRlIG11YSBtb3QgZG9pIHRh dSBnaWEgdmEgbmF0IG5odSB0aGUuDQoNCiogIE11YSB0YXUgcXVhIGRhdCwgdGhpZXQgaGFpIGhh bmcgdHJhbSB0aSBkb25nIA0KKiAgMi8zIGRvaSB0YXUgY3VhIFZpbmFzaGluIGtob25nIGNoYXkg ZHVvYyANCg0KVGF1IEJhY2ggRGFuZyBHaWFuZzogTmhhIG51b2MgdGhpZXQgaGFpIGhvbiAxMDAg dHkgZG9uZw0KDQpUdSBrZXQgbHVhbiBjdWEgVXkgYmFuIGtpZW0gdHJhIFRydW5nIHVvbmcgZGVu IHRob25nIGJhbyBjdWEgQ2hpbmggcGh1IHZlIG5odW5nIHRvbiANCnRhaSwgc2FpIHBoYW0gbyBW aW5hc2hpbiBkZXUga2hhbmcgZGluaCBkb24gdmkgbmF5IGRhIGRhdSB0dSBjaG8gcGhhdCB0cmll biBkb2kgdGF1IA0KInRyb25nIGRvIGNvIG5oaWV1IHRhdSBtdWEgY3VhIG51b2MgbmdvYWkgcXVh IGN1IG5hdCwgaG9hdCBkb25nIGtlbSBoaWV1IHF1YSIsIGtoYSANCm5hbmcgZ2F5IG1hdCB2b24s IHRoaWV0IGhhaSBsb24uIA0KDQooQW5oOiBWaSBzYW8gY2hhdCBsdW9uZyB0YXUgVmluYXNoaW4g bXVhIGxhaSBxdWEga2VtPykNCg0KQ2FuIGtoYW5nIGRpbmggcmFuZyBjaHVjIG5hbmcgY2hpbmgg Y3VhIFZpbmFzaGluIGxhIGRvbmcgdGF1LCB2YSB2aWVjIGRvbiB2aSBuYXkgZHVvYyANCmh1b25n IG5oaWV1IHV1IGRhaSBjdWEgTmhhIG51b2MgY3VuZyBsYSB4dWF0IHBoYXQgdHUgbXVjIHRpZXUg ZGUgcGhhdCB0cmllbiBuZ2FuaCBkb25nIA0KdGF1IFZpZXQgTmFtLiBUdXkgbmhpZW4gdmkgc2Fv IGRvbiB2aSBuYXkgbGFpIGRhdSB0dSBxdWEgbG9uIHZlIHBoYXQgdHJpZW4gZG9pIHRhdSB2YW4g dGFpLCANCnZhIHZpIHNhbyBkb24gdmkgbmF5IGxhaSBtdWEgdG9hbiB0YXUgY3UgbmF0IGRlbiBu b2kga2hvbmcgdGhlIGRhbmcga2llbSBkdW9jIHRhaSBWaWV0IA0KTmFtLi4udmFuIGxhIG1vdCBj YXUgaG9pIGxvbiBsYW0gZGF1IGRhdSBjYWMgY28gcXVhbiBjaHVjIG5hbmcuDQoNCk1vaSBjaGkg eGVtIHhldCB0aHVvbmcgdnUgZGF1IHR1IHRhdSBCYWNoIERhbmcgR2lhbmcsIGNhYyBjbyBxdWFu IGNodWMgbmFuZyBkYSANCmtob25nIGtob2kgbmdvIG5nYW5nLCBraGkgY2hpIGxvbmcgdm9uZyB0 cm9uZyB2YWkgbmFtLCBuZ2FuIHNhY2ggbmhhIG51b2MgZGEgdGhpZXQgaGFpIA0KaGFuZyB0cmFt IHR5IGRvbmcuIE5nYXkgMzEuMy4yMDA2LCBDaHUgdGljaCBIRFFUIFZpbmFzaGluLCBvbmcgUGhh bSBUaGFuaCBCaW5oIGRhIA0Ka3kgcXV5ZXQgZGluaCBkZSBUQ3R5IENOVFQgTmFtIFRyaWV1IG5o YW4gYmFuIGdpYW8gdGF1IEJhY2ggRGFuZyBHaWFuZyB0dSBDdHkgVE5ISCBWYW4gDQp0YWkgVmll biBEdW9uZyB2b2kgZ2lhIHRyZW4gMTU1LDA4OSB0eSBkb25nLiANCg0KVEN0eSBuYXkgcGhhaSBk YXUgdHUgdGhlbSBob24gMTMgdHkgZGUgc3VhIHNhbmcsIG5hbmcgdG9uZyBzbyB2b24gZGF1IHR1 IGNobyBjb24gdGF1IA0KbmF5IGxlbiBkZW4gdHJlbiAxNjgsOCB0eSBkb25nICh0cm9uZyBkbyBj byAxMDYgdHkgZG9uZyBzdSBkdW5nIHZvbiB2YXkgdHUgbmd1b24gdHJhaSANCnBoaWV1IHF1b2Mg dGUpLiBUdXkgbmhpZW4gZGlldSBkYW5nIG5vaSBsYSBkdSBkdW9jIGRhdSB0dSBsb24gbmh1IHZh eSwgbmh1bmcgY29uIHRhdSANCm5heSB2YW4ga2hvbmcgdGhlIHZhbiBoYW5oIGRlIGR1YSB2YW8g a2hhaSB0aGFjLCBzdSBkdW5nIGR1b2MuIA0KDQpMeSBkbyBkdW9jIGR1YSByYSB0aGVvIGJpZW4g YmFuIGdoaSBuaGFuIGxhOiAiSGUgdGhvbmcgbWF5IG1vYyBjdWEgdGF1IGRhIGh1IGhvbmcgDQpu YW5nLCBraG9uZyBjb24gaG9hdCBkb25nIGR1b2MsIHBoYW4gdm8sIG5vaSB0aGF0IHh1b25nIGNh cCB0cmFtIHRyb25nOyBjYWJpbiwgYmUgbWF0IA0KYm9vbmcgdGF1IGRhIGhhbiByaSwgdGh1bmcg bXVjLiBTYXUgbmdheSBjaHV5ZW4gZ2lhbyAzIHRoYW5nLCBDaHUgdGljaCBQaGFtIFRoYW5oIA0K QmluaCBsYWkga3kgdGllcCBxdXlldCBkaW5oIHNvIDkzNC9DTlRULUtIRFQgY2hvIHBoZXAgaG9h biBjYWkgInRhdSBuYXQiIEJhY2ggRGFuZyANCkdpYW5nIHRoYW5oIGtoYWNoIHNhbiA0IHNhby4u LiBuaHVuZyBkbyBraG9uZyBibyB0cmkgZHVvYyBuZ3VvbiB2b24gbmVuIGNvbiB0YXUgbmF5IA0K dGllcCB0dWMgZGUgcGhvaSBuYW5nLCBwaG9pIHN1b25nLiANCg0KWGVtIHhldCBsYWkgbmd1b24g Z29jIHRoaSBjb24gdGF1IG5heSBkdW9jIG11YSB0dSBuYW0gMjAwMCwgbmFtIDIwMDEgaG9hbiBj YWksIG5hbSANCjIwMDMgbmFuZyBjYXAuIDEwIG5hbSBzYXUsIHZvaSB0b25nIG11YyBkYXUgdHUg Z2FuIDE3MCB0eSBkb25nLCB0YXUgQmFjaCBEYW5nIEdpYW5nIA0KdmFuIGtob25nIHRoZSBraG9p IGhhbmguIENoaSB0dSB0aHVvbmcgdnUgbGEgbHVuZyBuYXksIG5nYW4gc2FjaCBOaGEgbnVvYyBk YSBtYXQgaGFuZyANCnRyYW0gdHkgZG9uZw0KDQpIb24gMyBuZ2hpbiB0eSBtdWEgZG9pIHRhdSBj dQ0KDQpLaG9uZyBjaGkgY28gdGF1IEJhY2ggRGFuZyBHaWFuZywgdHJvbmcgMiBuYW0gMjAwNi0y MDA3LCBDaHUgdGljaCBQaGFtIFRoYW5oIEJpbmggDQpkYSBreSBjYWMgcXV5ZXQgZGluaCBwaGUg ZHV5ZXQgY2hvIEN0IHkgVE5ISCBWYW4gdGFpIFZpZW4gRHVvbmcgbXVhIDEwIHRhdSB2YW4gdGFp IA0KYmllbjsgdHJvbmcgZG8gY28gOSB0YXUgbXVhIHZvaSB0b25nIHRyaSBnaWEgMy4xMzYgdHkg ZG9uZyB2b2kgdHVvaSB0cmVuIDE1IG5hbSAoMiB0YXUgdHVvaSANCjI2IG5hbSwgNCB0YXUgdHVv aSAyMiBkZW4gMjQgbmFtKS4gRG9pIHRhdSBkbyBjdSB0b2kgbXVjIG5vIGtob25nICB0aGUgZGFw IHVuZyBkdW9jIA0KY2FjIHlldSBjYXUgZGFuZyBraWVtIHRhaSBWaWV0IE5hbS4gVmkgdmF5LCAg Y2FjICB0YXUgdHJlbiBkdSBkYSBkdW9jIFZpbmFzaGluIG11YSANCm5odW5nIGtob25nIHRoZSB0 cmVvIGNvIFZpZXQgTmFtIG1hIHZhbiBjYW0gY28gbnVvYyBuZ29haSBuaHUgUGFuYW1hLCBUdXZh bHUsIA0KTGliZXJpYSBkZSBob2F0IGRvbmcgdmFuIHRhaS4NCg0KVGhlbyB4YWMgZGluaCBjdWEg Y2FjIGNvIHF1YW4gY2h1YyBuYW5nIHRoaSB0cm9uZyA5IHRhdSB0cmVuIGNvIDIgdGF1IHR1b2kg MjMtMjQgbmFtIA0KZHVvYyBtdWEgYmFuZyBuZ3VvbiB2b24gdHJhaSBwaGlldSBxdW9jIHRlIHZv aSBnaWEgdHJpIDMyOSw4IHR5IGRvbmcuIDcgIHRhdSBjb24gbGFpIGR1b2MgDQptdWEgYmFuZyB2 b24gdmF5IGN1YSBDb25nIHR5IG1lICh2b24gdXkgdGhhYyBxdWEgQ29uZyB0eSB0YWkgY2hpbmgg VmluYXNoaW4pLg0KDQpOZ29haSB2aWVjIGRhdSB0dSBkb2kgdGF1IHRyZW4sIGxhbmggZGFvIFZp bmFzaGluIGNvbiBxdXlldCBkaW5oIGRlIEN0eSBUTkhIIDEgdGhhbmggDQp2aWVuIENOVFQgQ2Fp IExhbiB0aHVjIGhpZW4gZHUgYW4gZGF1IHR1IDEwIHh1b25nIGNhbyB0b2Mgdm8gY29tcG9zaXQg a2hvaSBjb25nIG5hbSANCjIwMDMsIGR1YSB2YW8gc3UgZHVuZyBuYW0gMjAwNCwgdHJpIGdpYSBk YXUgdHUgMi4zMTAgdHJpZXUgZG9uZywgbXVjIGRpY2ggdmFuIGNodXllbiANCmtoYWNoIE5oYSBU cmFuZy0gSGEgTG9uZyBuaHVuZyBraG9uZyBjbyBraGFjaC4gRHUgYW4gdGF1IGNhbyB0b2MgMjAw IGNobyBuZ29pIGtob2kgDQpjb25nIDIwMDUsIGhvYW4gdGhhbmggdGhhbmcgMTAuMjAwNiwgdHJp IGdpYSA0OS4zMDQgdHJpZXUgZG9uZywgbXVjIGRpY2ggdmFuIGNodXllbiANCmhhbmgga2hhY2gg UXVhbmcgTmluaC0gUGhvbmcgVGhhbmggKFRydW5nIFF1b2MpIG5odW5nIGtob25nIHBoYXQgc2lu aCBkb2FuaCB0aHUuIA0KDQpEbyBsYSBjaHVhIGtlIGRlbiB2aWVjIGRhdSB0dSBnYW4gMS4wMDAg dHkgbXVhIHRhdSBIb2EgU2VuIGRlIHZhbiB0YWkgaGFuZyBob2EgdmEgaGFuaCANCmtoYWNoIHR1 eWVuIEJhYy0gTmFtLiBDb24gdGF1IG5heSBjaGkgY2hheSBkdW9jIHZhaSBjaHV5ZW4gcm9pIGNo byB2YW8gbmFtIHUsIGx5IGRvIGxhIA0KbW9pIGNodXllbiB2YW4gdGFpIGdheSBsbyBnYW4gdHkg ZG9uZy4gSGllbiB0b2FuIGJvIGNhYyBwaGkgdnUgZGF1IHR1IHRoZW8ga2lldSBsYSBsdW5nIA0K dHJlbiBjdWEgVmluYXNoaW4gZGFuZyBkdW9jIGNhYyBjbyBxdWFuIGNodWMgbmFuZyBkaWV1IHRy YSwgbGFtIHJvLg0KDQpEb2kgdGF1IG5naW4gdHkuLi4gZ2lhIHZhIGN1IGtob25nIHRoZSBkYW5n IGtpZW0gZHVvYyB0YWkgVmlldCBOYW0gDQoNCjEuIFRhdSBWaW5hc2hpbiBJc2xhbmQtIG11YSBu YW0gMjAwNiBnaWEgMTc0LDQgdHkgZG9uZywgdHVvaSB0YXUgMjYgbmFtLCBoaWVuIGRhbmcgdHJl byBjbyBQYW5hbWENCjIuIFRhdSBWaW5hc2hpbiBTdW1tZXItIG11YSBuYW0gMjAwNiBnaWEgMTA5 IHR5LCB0dW9pIHRhdSAyMyBuYW0sIGhpZW4gZGFuZyB0cmVvIGNvIFR1dmFsdQ0KMy4gVGF1IFZp bmFzaGluIEVhZ2xlLW11YSBuYW0gMjAwNiBnaWFzMjIwLDggdHksIHR1b2kgdGF1IDI0IG5hbSwg aGllbiB0cmVvIGNvIFR1dmFsdQ0KNC4gVGF1IFZpbmFzaGluIFBob2VuaXggbXVhIG5hbSAyMDA3 IGdpYSA0MDgsNiB0eSwgdHVvaSB0YXUgMjIgbmFtLCBoaWVuIHRyZW8gY28gTGliZXJpYQ0KNS4g VGF1IFZpbmFzaGluIEV4cHJlc3MxIG11YSBuYW0gMjAwNyBnaWEgMjM0IHR5LCB0dW9pIHRhdSAy MCBuYW0sIGhpZW4gdHJlbyBjbyBMaWJlcmlhDQo2LiBUYXUgVmluYXNoaW4gRXByZXNzMiBtdWEg bmFtIDIwMDcgZ2lhIDI0NSw5IHR5LCB0dW9pIHRhdSAxOSBuYW0sIGhpZW4gdHJlbyBjbyBMaWJl cmlhDQo3LiBUYXUgVmluYXNoaW4gR2xvcnkgbXVhIG5hbSAyMDA3IGdpYSA1MDUsNCB0eSwgdHVv aSB0YXUgMjQgbmFtLCBoaWVuIHRyZW8gY28gVHV2YWx1DQo4LiBUYXUgVmluYXNoaW4gVGlnZXIg bXVhIG5hbSAyMDA3IGdpYSAzMjgsMiB0eSBkb25nLCB0dW9pIHRhdSAyNiBuYW0sIGhpZW4gdHJl byBjbyBUdXZhbHUNCjkuIFRhdSBWaW5hc2hpbiBBbGFudGljIG11YSBuYW0gMjAwNyBnaWEgOTA5 LDYgdHkgZG9uZywgdHVvaSB0YXUgMTUgbmFtLCBoaWVuIGRhbmcgdHJlbyBjbyBQYW5hbWEuIA0K DQpodHRwOi8vd3d3OS52aWV0bmFtbmV0LnZuL3ZuL2NoaW5oLXRyaS82MzQvdGh1LXR1b25nLW5o YW4tdHJhY2gtbmhpZW0tY2Etbmhhbi12ZS12aW5hc2hpbi5odG1sIE5ob20gUFYgMjQvMTEvMjAx MCAwOTowNzowMCBBTSAoR01UKzcpIChUcmljaCkgDQoNClRodSB0dW9uZzogVmluYXNoaW4gdHUg dmF5IHR1IHRyYSB0aGUgbmFvPyANCg0KU2F1IDUgbmFtLCBzbyB0aWVuIG5vIDg2IG5nYW4gdHkg ZG9uZyBzZSB0YW5nIGdhcCBkb2kgdmkgcGhhaSB0cmEgbGFpIG5nYW4gaGFuZyAgDQoNCkRCIFBo YW0gVGhpIExvYW4gKEhhIE5vaSk6IE5odW5nIG5nYXkgZ2FuIGRheSBuaGFuIGRhbiBjaGFtIGNo dSB0aGVvIGRvaSBubyBsdWMgDQpDaGluaCBwaHUgZGFuZyB0YWkgY28gY2F1IFZpbmFzaGluLCBU YXAgZG9hbiBjdW5nIHR1eWVuIGJvIG5vIGx1YyBsYW0gYW4gdHUgdmF5LCB0dSB0cmEsIA0KdGFp IGNvIGNhdS4gTGFtIGR1b2Mgbmh1IHZheSBkYW4gbXVuZy4NCg0KTmh1bmcgdm9pIHNvIG5vIHRy ZW4gODYgbmdhbiB0eSBkb25nLCB0aGkgVGFwIGRvYW4gc2UgdHUgdmF5IHR1IHRyYSBsYWkgdGhl IG5hbz8gVmkgbW9pIA0KbmFtIHNlIHBoYWkgdHJhIHRpZW4gbm8gbGFpIGNobyBuZ2FuIGhhbmcg MTUgbmdhbiB0eSBWYSBjaGkgc2F1IDUgbmFtLCBzbyB0aWVuIG5vIDg2IG5nYW4gDQp0eSBkb25n IHNlIHRhbmcgZ2FwIGRvaSAxNjAgbmdhbiAtIDE3MCBuZ2FuIHR5IGRvbmcuIA0KDQpUcm9uZyBr aGkgZG8sIGtpbmggZG9hbmggdm9pIGRvYW5oIHRodSBuYW0gMjAxMCBjaGkgbGEgMTMsNSBuZ2Fu IHR5IGRvbmcuIFZhIHNvIGxvIGhvYXQgZG9uZyBraW5oIGRvYW5oIGxhIDEuMTAwIHR5IGRvbmcu DQoNClRoZW8gdGluaCB0b2FuIGN1YSBjaHVuZyB0b2ksIGtlIGNhIHNhdSB0YWkgY28gY2F1LCBW aW5hc2hpbiBraG9uZyB0aGUgdHUgdHJhIGR1b2Mgbm8gbmV1IA0Ka2hvbmcgZHVvYyBib20gdm9u IHR1IGJlbiBuZ29haSB2YSBiYW4gYmF0IGRvbmcgc2FuLiBYaW4gaG9pIFRodSB0dW9uZyBjbyBj YWNoIG5hbyANCmRlIHR1IHZheSB0dSB0cmEgbW9uIG5vIG5heT8gTmV1IGtob25nIHRyYSBkdW9j IG1vbiBubyB0cmVuIHRoaSBUaHUgdHVvbmcgc2UgbGFtIHRoZSBuYW8/DQoNCk5ldSBDaGluaCBw aHUga2hvYW5oIG5vIG1hIGtob25nIHRpbmggbGFpIHRoaSBhaSBjaGl1IHRyYWNoIG5oaWVtIHZl IHZpZWMgbmdhbiBoYW5nIA0KdGh1YSB0aGlldCBzbyB0aWVuIDE1IG5nYW4gdHkgZG9uZywgc28g dGllbiBkb25nIGJhbmcgYW5oIGh1b25nIGRlbiBoZSB0aG9uZyB0YWkgY2hpbmggY2EgbnVvYz8N ClRodSBoYWksIHZvaSBjdW9uZyB2aSBkYWkgZGllbiBjaHUgc28gaHV1IHF1YW4gbHkgdGFwIGRv YW4sIFRodSB0dW9uZyBzZSBjaGl1IHRyYWNoIG5oaWVtIHRoZSBuYW8gdHJ1b2MgdGluaCBoaW5o IFZpbmFzaGluPyANCg0KKEFuaDogREIgUGhhbSBUaGkgTG9hbiBtbyBkYXUgcGhpZW4gY2hhdCB2 YW4gdHJ1YyB0aWVwIFRodSB0dW9uZy4gQW5oIExBRCkgDQooWGluIHhlbSB0b2FuIGJvIGJhaSBu YXkgbyBwaGFuIHRpZXAgdGhlbykgDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2Uv dmlldG5hbS8yMDEwLzExLzEwMTEyM19sc190cmFuX3Z1X2hhaS5zaHRtbCAxMjo1MSBHTVQgMjMv MTEvMjAxMCANCg0KS2V1IGdvaSB0aHUgdHVvbmcgaGF5IHBobyB0aHUgdHVvbmcgdHUgY2h1YyAN Cg0KVmluYXNoaW4gZGFuZyBjaGF0IHZhdCB2b2kga2hvYW4gbm8gaGFuZyBjaHVjIG5nYW4gdHkg ZG9uZw0KDQpNb3QgbHVhdCBzdSBjbyB0aWVuZyBjdWEgVmlldCBOYW0ga2V1IGdvaSBUaHUgdHVv bmcgTmd1eWVuIFRhbiBEdW5nLCBob2FjIG5odW5nIA0Kbmd1b2kgcGhvIGN1YSBvbmcgY2hpdSAi dHJhY2ggbmhpZW0gY2hpbmggdHJpIiB0cm9uZyB2dSBWaW5hc2hpbiB2YSAidHUgY2h1YyIuIA0K DQpMdWF0IHN1IFRyYW4gVnUgSGFpLCBuZ3VvaSBob20gMjIvMTEgZGEgdmlldCB0aHUgdGh1YyBn aXVjIGRhaSBiaWV1IFF1b2MgaG9pIE5ndXllbiANCk1pbmggVGh1eWV0IGRvaSBDaGluaCBwaHUg Y3VuZyBjYXAgdGhvbmcgdGluIGRheSBkdSB2ZSBWaW5hc2hpbiwgbm9pIHZlIGNhIHRyYWNoIG5o aWVtIA0KY3VhIFBobyBUaHUgdHVvbmcgTmd1eWVuIFNpbmggSHVuZyB2YSBjdWEgb25nIE5ndXll biBUYW4gRHVuZzoNCg0KIkFuaCBuaGFuIHRyYWNoIG5oaWVtIG8gZGF5IGxhIGFuaCBwaGFpIHhp biBsb2kgbmhhbiBkYW4sIGR1bmcgcmEgbGEgcGhhaSB0dSBjaHVjLiINCg0KVHJhIGxvaSBCQkMg cXVhIGRpZW4gdGhvYWkgdHUgVmlldCBOYW0gaG9tIDIzLzExLCBvbmcgbm9pLg0KDQoiVG9pIHRo YXkgb25nIGJvIHRydW9uZyB0dSBwaGFwIE5oYXQgQmFuIG5obyBsb2kgY28gaGFpIGNhdSBkYSBw aGFpIHR1IGNodWMuIiANCiJPIGRheSB0cmFjaCBuaGllbSBjdWEgYW5oIGRhIHF1eSB0aGFuaCB2 YW4gYmFuIHJvaS4iDQoiQ29uIG5ldSBhaSBjaG8gcmFuZyBjaHVjIHZ1IGxhIHJhdCBxdWFuIHRy b25nLCBjaHVuZyB0YSBraG9uZyB0aGUgdHUgY2h1YyBkdW9jIHRoaSBsYSBxdWFuIGRpZW0gY3Vh IG5ndW9pIHRhLiINCiJOZXUgY2FjIG5oYSBjaGluaCB0cmkgaG8gbmhlIG5oYW5nIGRpLCBkbyBj dW5nIGxhIG1vdCBuZ2hlLiBOaHVuZyBjaHVuZyB0YSBraG9uZyBwaGFpIA0KYmFtIHZhbyBuZ2hl IGRvLiBMYSBtb3QgbmdoZSBjaHVuZyB0YSBjbyB0aGUgY2h1eWVuIG5naGUsIGRlbiB0dW9pIHZl IGh1dSwgY2h1bmcgdGEgdmUgDQpuaGEsIGNodW5nIHRhIHZpZXQgc2FjaC4iDQoNCk9uZyBIYWkg bm9pIGNhYyBkYWkgYmlldSBRdW9jIGhvaSBjYW4gImdheSBzdWMgZXAiIGRlIG9uZyBOZ3V5ZW4g VGFuIER1bmcgdmEgbmh1bmcgDQpuZ3VvaSBjbyBsaWVuIHF1YW4gbmhhbiB0cmFjaCBuaGllbSB2 YSBuZXUgaG8gdGllcCB0dWMgY3VvbmcgdmkgdGhpIGNhbiBjbyBjYW0ga2V0IG5ldSANCmtob25n IHBodWMgaG9pIGR1b2MgVmluYXNoaW4gdmFvIG1vdCB0aG9pIGRpZW0gY3UgdGhlIHRyb25nIHR1 b25nIGxhaSwgaG8gc2UgcGhhaSB0dSBjaHVjLiANCg0KTHVhdCBzdSBIYWkgbm9pIG5ldSBjaGkg bm9pICJjaGluaCBwaHUgbmhhbiB0cmFjaCBuaGllbSIgbGEgY2h1YSBkdSB2YSBraG9uZyBjb25n IGJhbmcgDQpjaG8gbmhpZXUgdGhhbmggdmllbiBjaGluaCBwaHUga2hvbmcgY28gbGllbiBxdWFu IGdpIHRvaSBWaW5hc2hpbi4NCg0KT25nIGN1bmcgbm9pIFF1b2MgaG9pIHBoYWkgY2hpdSBtb3Qg cGhhbiB0cmFjaCBuaGllbSB2aSBkYSBraG9uZyBjbyBsdWF0IHZlIHF1YW4gbHkgdGFpIA0Kc2Fu IG5oYSBudW9jIHRhaSBjYWMgdGFwIGRvYW4gbmh1IFZpbmFzaGluLg0KDQpUaG9uZyB0aW4gY2hp bmggeGFjDQoNCk9uZyBUcmFuIFZ1IEhhaSBub2kgdm9pIEJCQyBtYWMgZHUgbHVhdCBraG9uZyBu b2kgcm8gbmh1bmcgVGh1IHR1b25nIE5ndXllbiBUYW4gDQpEdW5nIGxhIG5ndW9pIGNoaXUgdHJh Y2ggbmhpZW0gdHJ1YyB0aWVwIHRyb25nIHZ1IFZpbmFzaGluLg0KIlRodWMgdGUgY28gdGhlIG5v aSByYW5nIFRodSB0dW9uZyBDaGluaCBwaHUgbGEgbmd1b2kgZGFpIGRpZW4gc28gaHV1IGN1YSBO aGEgbnVvYyANClZpZXQgTmFtIHRhaSB0YXAgZG9hbiBWaW5hc2hpbiBuZXUgY2h1bmcgdGEgeGVt IGxhaSBjYWMgdmFuIGJhbiB2ZSB0aGkgZGllbSB0YXAgZG9hbiBuYXksIg0KDQoiT25nIHRhIGNv IHJhdCBuaGlldSBxdXllbiwgbmh1IGxhIHBoZSBjaHVhbiB2b24gZGlldSBsZSwgY2hhcCBuaGFu IGNhYyB0aGFuaCB2aWVuIG1vaSANCmN1YSB0YXAgZG9hbiwgY2FjIGR1IGFuIG5hbyBraG9uZyB0 aHVvYyB0aGFtIHF1eWVuIGN1YSBob2kgZG9uZyBxdWFuIHRyaS4iDQoNClZpIGx1YXQgc3UgY3Vu ZyBub2kgY28gcmF0IG5oaWV1IHRob25nIHRpbiBraGFjIG5oYXUgdmUgc28gbm8gY3VhIFZpbmFz aGluIHZhIG9uZyANCmtodXllbiBjYW8gY2FjIGRhaSBiaWV1IFF1b2MgaG9pIGRvaSBjbyBuaHVu ZyB0aG9uZyB0aW4gbW9pIG5oYXQgdmEgY2hpbmggeGFjIG5oYXQuDQoNCkNhYyBjaHV5ZW4gZ2lh IGtpbmggdGUgY3VuZyBkYSBjaGkgcmEgbmhpZXUgZGlldSBiYXQgaG9wIGx5IHRyb25nIG5odW5n IGNvbiBzbyBtYSANClZpbmFzaGluIGR1YSByYSB0cm9uZyBkb3QgdGFpIGNvIGNhdSB2dWEgZHVv YyBjb25nIGJvIGN1b2kgdHVhbiBxdWEuDQoNCk9uZyBIYWkgbm9pIHZvaSBsYWkgc3VhdCAxNSUs IGhvYWMgdGhhbSBjaGkgY28gdGhlIGxhIDIwJSBkb2kgdm9pIG5odW5nIGtob2FuIG5vIHF1YSAN CmhhbiBjdWEgVmluYXNoaW4sIGNoaSByaWVuZyB0aWVuIHRyYSBsYWkgY3VhIHRhcCBkb2FuIG5h eSBjdW5nIGNvIHRoZSBsZW4gdG9pIGhhbmcgbmdhbiB0eSBkb25nIG1vaSBuYW0uDQoNClRob2kg Z2lhbiBxdWEsIGR1IGx1YW4gdHJvbmcgdmEgbmdvYWkgbnVvYyBxdWFuIHRhbSBuaGlldSBkZW4g a2llbiBuZ2hpIGN1YSBkYWkgYmlldSANClF1b2MgaG9pIE5ndXllbiBNaW5oIFRodXlldCwgbmd1 b2kgZGEgeWV1IGNhdSBsYXAgdXkgYmFuIGN1YSBxdW9jIGhvaSBkZSBkaWV1IHRyYSB2dSBWaW5h c2hpbi4NCkdpYW8gc3UgVGh1eWV0IGN1bmcgY2hpIGRlIG5naGkgZGlldSB0cmEgcm9pIGJvIHBo aWV1IHRpbiBuaGllbSBUaHUgdHVvbmcgY3VuZyBuaHVuZyANCm5ndW9pIGNvIGxpZW4gcXVhbiB0 cm9uZyB2dSBuYXkuDQpOaHVuZyBvIG1vdCBtdWMgY2FvIGhvbiBudWEsIG9uZyBUcmFuIFZ1IEhh aSBuYXkgbm9pIHRoYW5nIHZlIHRyYWNoIG5oaWVtIGNoaW5oIHRyaSB2YSBkZSBuZ2hpIHRodSB0 dW9uZyB0dSBjaHVjLg0KDQpDYWMgdnUgdHJhbmggY2FpIHF1YW5oIG5odW5nIGR1IGFuIGxvbiBj dWEgY2hpbmggcGh1IFZpZXQgTmFtIG5nYXkgY2FuZyB4dWF0IGhpZW4gDQpjb25nIGtoYWkgdmEg Y28gdGhlIHRoYW5oIG1vdCBsYW4gc29uZyB4YSBob2ksIGNobyB0aGF5IGJhdCBkb25nIHZlIHF1 YW4gZGllbSBraG9uZyANCmNvbiBsYSBkaWV1IG5ndW9pIHRhIGNoaSBkYW0gYmFuIG5obyBuaGUg bm9pIHJpZW5nIHR1LiANCg0KaHR0cDovL3d3dy52aWV0LnJmaS5mci92aWV0LW5hbS8yMDEwMTIx NC12aW5hc2hpbi1zZS1raG9uZy10aGUtdHJhLW1vbi1uby1kYW8taGFuIFRoYW5oIFBodW9uZyAx NC8xMi8yMDEwIA0KDQpWaW5hc2hpbiBzZSBraG9uZyB0aGUgdHJhIG1vbiBubyBkYW8gaGFuIA0K DQpUaGVvIGJhbyBjaGkgdHJvbmcgbnVvYyBob20gbmF5IDE0LzEyLCBjaHUgdGljaCBWaW5hc2hp biB2dWEgdHV5ZW4gYm8gbGEgdGFwIGRvYW4gbmF5IA0KbmdheSAyMC8xMiB0b2kgc2Uga2hvbmcg dGhlIHRyYSBtb24gbm8gZGFvIGhhbiBkYXUgdGllbiB0cm9uZyBzbyA2MDAgdHJpZXUgZG9sYSB2 YXkgdHUgDQpjYWMgY2h1IG5vIG5nb2FpIHF1b2MsIGR1bmcgZGF1IGxhIG5nYW4gaGFuZyBDcmVk aXQgU3Vpc3NlIGN1YSBUaHV5IFNpLiBPbmcgTmd1eWVuIA0KTmdvYyBTdSBub2kgcmFuZyA6ICJO ZXUgZG9uIFZpbmFzaGluIHZhbyBjYW5oIHZvIG5vLCBwaGEgc2FuLCBjYWMgbmdhbiBoYW5nIGNo dSBubyA2MDAgDQp0cmlldSBVU0QgY3VuZyBraG9uZyB0aHUgZHVvYyBkb25nIG5hbyIuIA0KDQpD aGluaCBwaHUgVmlldCBOYW0gZGEgcXV5ZXQgZGluaCBsYSB0YXAgZG9hbiBWaW5hc2hpbiBwaGFp IHR1IHRyYSBjYWMgbW9uIG5vIGN1YSBtaW5oLiANClRvbmcgc28gbm8gY3VhIFZpbmFzaGluIGR1 b2MgdW9jIHRpbmggbGVuIHRvaSA4Ni4wMDAgdHkgZG9uZywgdHVvbmcgZHVvbmcgdm9pIGtob2Fu ZyANCjQsNSB0eSBkb2xhLiBUYXAgZG9hbiBuYXkgZGFuZyBkdW9jIHRhaSBjbyBjYXUgc2F1IGto aSBuaGlldSBsYW5oIGRhbyBjdWEgdGFwIGRvYW4sIHRyb25nIA0KZG8gY28gY2h1IHRpY2ggUGhh bSBUaGFuaCBCaW5oLCBiaSBiYXQgZ2l1LiBCYW4gbGFuaCBkYW8gbW9pIGN1YSB0YXAgZG9hbiBk YSB4aW4gZHVvYyANCmhvYW4gdHJhIG5vLCBuaHVuZyBkdW9uZyBuaHUgY2FjIGNodSBubyBraG9u ZyBjaGFwIG5oYW4uDQoNCkhhbmcgdGluIEFQIGhvbSBuYXkgdHJpY2ggbG9pIGtpbmggdGUgZ2lh IExlIERhbmcgRG9hbmggbm9pIHJhbmcsIFZpbmFzaGluIG5lbiBjbyBnYW5nIA0KdHJhIG1vdCBp dCBubyB2YSB4aW4gY2FjIGNodSBubyBob2FuIHZpZWMgdHJhIHNvIG5vIGNvbiBsYWksIHRoYXkg dmkgdG8gdGhhaSBkbyBjdW5nIHJhbiwgZXAgDQpjYWMgY2h1IG5vIGdpYSBoYW4gdGhlbS4gVGhl byBvbmcgTGUgRGFuZyBEb2FuaCwgY2EgbnVvYyBzZSBwaGFpIHRyYSBnaWEgdmUgbWF0IGNoYXQg DQpsdW9uZyB0aW4gZHVuZyBkbyBuaHVuZyB2YW4gZGUgY3VhIFZpbmFzaGluLiBIaWVuIGdpbywg Y29pIG5odSBWaWV0IE5hbSBkYSB0cmEgZ2lhIHJvaSwgDQpxdWEgdmllYyBjYWMgY29uZyB0eSB4 ZXAgaGFuZyB0aW4gbmhpZW0gaGEgZGllbSBjdWEgVmlldCBOYW0gdmEgc2UgdGllcCB0dWMgaGEg bnVhLg0KDQpIb20gcXVhLCBjbyBxdWFuIHRoYW0gZGluaCB0YWkgY2hpbmggU3RhbmRhcmQgYW5k IFBvb3KScyBjdW5nIGRhIG5oYW4gZGluaCByYW5nIA0Kbmh1bmcgdmFuIGRlIGN1YSBWaW5hc2hp biBzZSBnYXkgdG9uIGhhaSBjaG8gY2hhdCBsdW9uZyB0aW4gZHVuZyBjdWEgY2FjIG5nYW4gaGFu ZyBWaWV0IE5hbS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIw MTA0My8yMDEwMTAyMTE4MDQyOC5hc3B4IFRoYW5oIEx1b25nIChnaGkpIDIxLzEwLzIwMTAgMTg6 MDQgDQoNClRodSB0dW9uZzogVmluYXNoaW4gdGh1YyBjaGF0IGRhIHBoYSBzYW4gIA0KICANCihB bmg6TW90IGR1IGFuIGRvbmcgdGF1IGN1YSBWaW5hc2hpbiAtIEFuaDogQ2hpbmhwaHUudm4pIA0K DQooVE5PKSAiVmluYXNoaW4gdGh1YyBjaGF0IGxhIHBoYSBzYW4gcm9pLCBuaHVuZyBDaGluaCBw aHUga2hvbmcgdGhvbmcgYmFvIGNoaW5oIHRodWMsIA0KdmkgY29uIGxpZW4gcXVhbiBkZW4gNyB2 YW4gbmd1b2kgbGFvIGRvbmcgY3VhIHRhcCBkb2FuIG5heS4gVGh1YyByYSwgVmluYXNoaW4gcGhh IHNhbiANCnRoZW8ga2lldSBWTiIsIFV5IHZpZW4gVXkgYmFuIEtpbmggdGUgUXVvYyBob2kgTmd1 eWVuIER1YyBLaWVuIGtoYW5nIGRpbmggdm9pIGJhbyANCmNoaSBiZW4gbGUga3kgaG9wIHRodSA4 LCBRdW9jIGhvaSBraG9hIFhJSS4gDQoNCiogVmllYyBWaW5hc2hpbiBubyBob24gODUgbmdhbiB0 aSBkb25nIHZhIGtob25nIGNvIGtoYSBuYW5nIGNoaSB0cmEsIHRoZW8gb25nLCB0YWkgc2FvIA0K a2hvbmcgZGUgVmluYXNoaW4gdHV5ZW4gYm8gcGhhIHNhbj8gDQoNCi0gVXkgdmllbiBVeSBiYW4g S2luaCB0ZSBRdW9jIGhvaSBOZ3V5ZW4gRHVjIEtpZW46IER1bmcgdmUgbWF0IGtob2EgaG9jIGtp bmggdGUgDQoNCnRoaSBOaGEgbnVvYyBkYSBjaG8gVmluYXNoaW4gcGhhIHNhbiByb2ksIGNvIGRp ZXUgdGEga2hvbmcgdHV5ZW4gYm8uIFZpZWMgY2h1eWVuIGRvaSANCm1vdCBzbyBuZ2FuaCBuZ2hl IGtpbmggZG9hbmggc2FuZyBkb2FuaCBuZ2hpZXAga2hhYywgY28gY2F1IGxhaSwgY2h1eWVuIGRv aSBtbyBoaW5oIA0KcXVhbiBseSwgdGluaCB0b2FuIGxhaSBuby4uLiBsYSBuaHVuZyBiaWV1IGhp ZW4gcm8gcmFuZyBuaGF0LiANCg0KVHV5IG5oaWVuLCBWaW5hc2hpbiBsYSBtb3QgZG9hbmggbmdo aWVwIG5oYSBudW9jIG1hIENoaW5oIHBodSBsYSBjaHUgc28gaHV1LiBOZW4gDQpjYWNoIHVuZyB4 dSBwaGFpIGtoYWMgdmkgY28gbGllbiBxdWFuIGRlbiA3IHZhbiBsYW8gZG9uZyBkYW5nIGxhbSB2 aWVjIHRhaSBkYXkuDQpDaHVuZyB0YSBwaGFpIGRhdCB2aWVjIHBoYSBzYW4gdHJvbmcgYm9pIGNh bmggY3VhIG5hbSAyMDEwLCBtYSBxdXkgYmFvIGhpZW0gdGhhdCANCm5naGllcCBtb2kgaGluaCB0 aGFuaCBuYW0gMjAwOS4gVHVjIGxhIHR1IG5nYXkgMS4xLjIwMTAsIG5ndW9pIGxhbyBkb25nIG1v aSBub3AgDQp0aWVuIHZhbyBxdXkgbmF5LCB0aGkgcGhhaSBzYXUgMTIgdGhhbmcgbW9pIGR1b2Mg aHVvbmcgbG9pIGljaCwgdGhpIGRlbiBiYXkgZ2lvIGxhbSANCnNhbyBkYSBjbyBuZ3VvbiBjaGkg dHJhLg0KDQpLaGkgdHV5ZW4gYm8gcGhhIHNhbiB0aGkgZG9hbmggbmdoaWVwIGtob25nIGNoaXUg dHJhY2ggbmhpZW0gdmUgbmh1bmcga2hvYW4gbG8sIA0KY3VuZyBuaHUgYmF0IGN1IHZhbiBkZSBn aSBuYXkgc2luaCBudWEuIE5odW5nIGNodW5nIHRhIGtob25nIHRoZSBsYW0gdmF5IHZpIGNodSAN CmRvYW5oIG5naGllcCBsYSBOaGEgbnVvYy4gQ28gZGlldSBjaHVuZyB0YSB0aWVuIGhhbmggdGFp IGNvIGNhdSBWaW5hc2hpbiwgdHVjIGxhIA0KY2hhcCBuaGFuIGNobyBubyBwaGEgc2FuLiBDbyBk aWV1IGNodW5nIHRhIGNvIGRhYyB0aHUgdnVhIGxhIG5ndW9pIHF1YW4gbHkgbmhhIG51b2MsIA0K dnVhIGxhIGNodSBkb2FuaCBuZ2hpZXAgbmVuIGNobyBubyB0aWVuIGhhbmggcGhhIHNhbiB0aGVv IG1vdCBoaW5oIHRodWMgbWFuZyBkYWMgDQp0aHUgVk4uIE5ndW9pIGxhbyBkb25nIGtob25nIGJp IGRheSByYSBkdW9uZywgbm8gY3VhIFZpbmFzaGluIGRvaSB2b2kgY2FjIG5nYW4gDQpoYW5nIHRo dW9uZyBtYWkgY28gcGhhbiB2YW4gZHVvYyBOaGEgbnVvYyBiYW8gZGFtIHZhIGNoaXUgdHJhY2gg bmhpZW0gZGUgZGFtIGJhbyBxdWFuIGx5IHZpIG1vLiANCg0KKiBWZSB2dSBWaW5hc2hpbiwgUXVv YyBob2kgZGEgY28gY2FuaCBiYW8gbmh1bmcgcm9pIG5odW5nIHN1IHZpZWMgc2FpIHBoYW0gdmFu IHRpZXAgZGllbi4gDQpWYXkgdGhpIFF1b2MgaG9pIGNvIGxvaSB0cnVvYyBjdSB0cmkgdHJvbmcg dmFuIGRlIG5heSBraG9uZz8NCg0KLSBVeSB2aWVuIFV5IGJhbiBLaW5oIHRlIFF1b2MgaG9pIE5n dXllbiBEdWMgS2llbjogVHVuZyBkYWkgYmlldSBRdW9jIGhvaSBwaGFpIHRoYXkgDQp0cmFjaCBu aGllbSBjdWEgbWluaCB0cm9uZyB2YW4gZGUgVmluYXNoaW4uIFRyb25nIGJhbyBjYW8gZ2lhbSBz YXQgdmUgcXVhbiBseSB2b24gY3VhIA0KTmhhIG51b2MsIG5ndW9pIHRhIGRhIG5vaSBybyBwaGFp IHRpZW4gaGFuaCBjbyBjYXUgbGFpIHZhIHhheSBkdW5nLCBiYW4gaGFuaCBsdWF0IHF1YW4gbHkg DQp2b24gdmEgdGFpIHNhbiBuaGEgbnVvYy4gVHV5IG5oaWVuLCBraGkgYmlldSBxdXlldCB0aGkg UXVvYyBob2kga2hvbmcgdGhvbmcgcXVhLCBraG9uZyANCnhheSBkdW5nLCBraG9uZyBiYW4gaGFu aC4gUm8gcmFuZyBsYSBRdW9jIGhvaSBjdW5nIGNvIGxvaS4gDQoNCiogVHJvbmcgcXVhIHRyaW5o IHRhaSBjbyBjYXUsIFZpbmFzaGluIGNodXllbiBtb3Qgc28ga2hvYW4gbm8gc2FuZyBQZXRyb3Zp ZXRuYW0gdmEgDQpWaW5hbGluZXMga2hpZW4gbmhpZXUgbmd1b2kgbG8gbmdhaSBkYXkgbGEgaGlu aCB0aHVjIGNodXllbiBubyBjaG8gZG9hbmggbmdoaWVwIA0KbmhhIG51b2Mga2hhYyB0cmEgdGhh eSBDaGluaCBwaHUuIE9uZyBuZ2hpIHNhbz8NCg0KLSBVeSB2aWVuIFV5IGJhbiBLaW5oIHRlIFF1 b2MgaG9pIE5ndXllbiBEdWMgS2llbjogQ3VuZyBjaHVhIGhhbiB0aGUuIERvIGxhIG1vdCANCmhp bmggdGh1YyB0aHVjIGhpZW4gdmllYyBjaHV5ZW4gbW9uIGhvYS4gVmFuIGRlIGFpIGNvIGxvaSB0 aGU/IFZpIGNodW5nIHRhIGRhbmcgcGhlIA0KcGhhbiBobyBraW5oIGRvYW5oIG9tIGRvbSwgZGEg Y2h1YyBuYW5nLCBkYSBuZ2FuaCByb2kga2hvaSBuZ2FuaCBjaGluaCB0aGkgYmF5IGdpbyANCnRh Y2ggcmEgY2hpIHRhcCB0cnVuZyB2YW8gY2h1eWVuIG1vbiB0aG9pLiBIbyBjbyAzIG5nYW5oIGNo aW5oIHRoaSBxdWF5IHRybyBsYWkgbGFtIDMgDQpuZ2FuaCBkbyB0aG9pLCBjb24gY2FjIG5nYW5o IGtoYWMgdGhpIGNodXllbiBzYW5nIGRvYW5oIG5naGllcCBjbyBsb2kgdGhlIGhvbiB0cm9uZyBr aW5oIGRvYW5oLiANCg0KKiBOaHVuZyBraGkgY2h1eWVuIG5odSB2YXkgdGhpIGJhbiB0aGFuIGNh YyBraG9hbiBubyBjdW5nIGNodWEgcm8gcmFuZywgdGFpIHNhbyBraG9uZyBraWVtIHRvYW4gdHJ1 b2Mgcm9pIG1vaSBjaHV5ZW4/DQoNCi0gVXkgdmllbiBVeSBiYW4gS2luaCB0ZSBRdW9jIGhvaSBO Z3V5ZW4gRHVjIEtpZW46IEdpb25nIG5odSBuaGEgY28gMyBuZ3VvaSBjb24sIA0KbW90IG5ndW9p IGJpIGJlbmggdGhhbiwgb25nIGJvIGJhbyAyIG5ndW9pIGNvbiBsYWkgZ29wIHRpZW4gZGUgZGkg YmVuaCB2aWVuIHRoYXkgdGhhbi4gDQpMdWMgZG8gY2hhbmcgbGUgb25nIGFuaCBsYWkgaG9pOiAi TmV1IGNvbiBibyByYSAxMCB0cmlldSBkb25nIG5obyBlbSBraG9uZyB0cmEgZHVvYyANCnRoaSBs YW0gdGhlIG5hbz8iLiBQZXRyb3ZpZXRuYW0sIFZpbmFsaW5lcyBjdW5nIGxhIHZvbiBkbyBDaGlu aCBwaHUgbGFtIGNodSBzbyBodXUuIA0KDQoqIFhpbiBjYW0gb24gb25nISANCg0KaHR0cDovL2Rh bnRyaS5jb20udm4vYzIwL3MyMC00MzA2OTQvY3UtdHJpLWtpZW4tbmdoaS14dS1seS1uZ2hpZW0t dnUtdmluYXNoaW4uaHRtIEtpbSBUYW4gMTkvMTAvMjAxMCAtIDE5OjMwIA0KDQpDdSB0cmkga2ll biBuZ2hpIHh1IGx5IG5naGllbSB2dSBWaW5hc2hpbiANCg0KKERhbiB0cmkpIC0gQ3UgdHJpIHZh IG5oYW4gZGFuIGtpZW4gbmdoaSBDaGluaCBwaHUgbGFtIHJvIG5odW5nIHNhaSBwaGFtIGN1YSBs YW5oIGRhbyANClRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IChWaW5hc2hpbikgdmEgdHJh Y2ggbmhpZW0gcXVhbiBseSBuaGEgbnVvYyBjdWEgVGh1IHR1b25nIGNoaW5oIHBodSwgDQpjYWMg Ym8gY28gbGllbiBxdWFuIHZhIHh1IGx5IG5naGllbSBkb2kgdm9pIHRhcCB0aGUsIGNhIG5oYW4g dmkgcGhhbS4gDQoNCkRvIGxhIG1vdCB0cm9uZyBuaGlldSAidGFtIHR1IiBkdW9jIGN1IHRyaSBn dWkgdG9pIGt5IGhvcCBRdW9jIGhvaSBsYW4gbmF5Lg0KDQpOZ2FuIG5ndWEgZ2lhIGNhIHRhbmcg Y2FvIHRybyBsYWkNCg0KQ3UgdHJpIG5oaWV1IG5vaSByYXQgYnVjIHh1YyB2ZSB0aW5oIHRyYW5n IHRoaWV1IGRpZW4sIGNhdCBkaWVuIGx1YW4gcGhpZW4sIG5oYXQgbGEgDQp2YW8gbXVhIG5hbmcg bm9uZywgYW5oIGh1b25nIGxvbiBkZW4gZG9pIHNvbmcgdmEgc2FuIHh1YXQuIA0KDQpWaSB2YXks IGN1IHRyaSB2YSBuaGFuIGRhbiBraWVuIG5naGkgQ2hpbmggcGh1IGNhbiBjaGkgZGFvIG5nYW5o IGNodWMgbmFuZyBwaGFpIGNvIGdpYWkgDQpwaGFwIHF1eWV0IGxpZXQgbmhhbSBvbiBkaW5oIG5n dW9uIGN1bmcgZGllbiBjaG8gc2FuIHh1YXQgdmEgZG9pIHNvbmcsIGtoYWMgcGh1YyB0aW5oIA0K dHJhbmcgY2F0IGRpZW4gbHVhbiBwaGllbiB0cmVuIGRpZW4gcm9uZywgZG9uZyB0aG9pIHNvbSBj YWkgdG8gbmdhbmggZGllbiwgY29uZyBraGFpLCANCm1pbmggYmFjaCBnaWEgdGhhbmggc2FuIHh1 YXQgZGllbi4uLg0KDQpUaW5oIGhpbmggZ2lhIGNhIGxlbyB0aGFuZywga2hvbmcga2llbSBzb2F0 IGR1b2MgY3VhIG5oaWV1IG1hdCBoYW5nIHRoaWV0IHlldSB0aWVwIHR1YyBsYSANCmJhbiBraG9h biwgbG8gbGFuZyBjdWEgZG9uZyBkYW8gY3UgdHJpLiBUaGVvIGRvLCBnaWEgbHVvbmcgdGh1Yywg dGh1YyBwaGFtLCB2YXQgdHUgbm9uZyANCm5naGllcCwgdmF0IGxpZXUgeGF5IGR1bmcgZGV1IHRh bmc7IGdpYSBzdWEsIHRodW9jIHRhbiBkdW9jIHRhbmcgY2FvLi4uDQoNCkN1IHRyaSBraWVuIG5n aGkgQ2hpbmggcGh1IHRhbmcgY3VvbmcgY2FjIGhvYXQgZG9uZyBraWVtIHRyYSwga2llbSBzb2F0 IHRoaSB0cnVvbmcgbm9pIA0KZGlhLCB0aGVvIGRvaSBkaWVuIGJpZW4gdGhpIHRydW9uZyB0aGUg Z2lvaSwga2lwIHRob2kgY28gYmllbiBwaGFwIGN1IHRoZSwgaHV1IGhpZXUgZGUgYmluaCANCm9u IGdpYSBjYSB0cm9uZyBuaHVuZyB0aGFuZyBjdW9pIG5hbSwgbmdhbiBuZ3VhIGxhbSBwaGF0IGNh byB0cm8gbGFpLg0KDQpDdW5nIHRoZW8gY3UgdHJpLCB0aW5oIHRyYW5nIGxhbSB0aHUgbyBjYWMg dHJ1b25nIHBobyB0aG9uZyB0YWkgbmhpZXUgZGlhIHBodW9uZyBkYSBnYXkgDQpuaGlldSBraG8g a2hhbiwgYnVjIHh1YyBjaG8gY2FjIGdpYSBkaW5oIG5naGVvLCBnaWEgZGluaCBjbyB0aHUgbmhh cCB0aGFwIHZhIGNhbiBibywgDQpjb25nIGNodWMuIEN1IHRyaSB2YSBuaGFuIGRhbiBraWVuIG5n aGkgQ2hpbmggcGh1IGNhbiBjaGkgZGFvIGNoYW4gY2hpbmggdGluaCB0cmFuZyANCnRyZW4uIA0K DQpEYWMgYmlldCwgY3UgdHJpIHZhIG5oYW4gZGFuIHJhdCBiYW4ga2hhbiwgbG8gbGFuZyB2ZSB0 aW5oIHRyYW5nIHRoaWVuIHRhaSwgYmFvIGx1IGRpZW4gYmllbiANCnBodWMgdGFwLCB4YXkgcmEg bGllbiB0aWVwIG8gbnVvYyB0YSwgZ2F5IGhhdSBxdWEgbmFuZyBuZSB2ZSBuZ3VvaSB2YSBjdWEu IA0KDQpDdSB0cmkgdmEgbmhhbiBraWVuIG5naGkgQ2hpbmggcGh1IHRpZXAgdHVjIGNvIG5odW5n IGdpYWkgcGhhcCBoaWV1IHF1YSB0cm9uZyBwaG9uZyANCmNob25nIHRoaWVuIHRhaSBiYW8gbHU7 IHRydW9jIG1hdCB0YXAgdHJ1bmcgbW9pIG5vIGx1YyBjdXUgdHJvLCBnaXVwIGRvIGRvbmcgYmFv IGNhYyB0aW5oIA0KbWllbiBUcnVuZyBraGFjIHBodWMgaGF1IHF1YSBkbyBsdSBsdXQgZ2F5IHJh LCBzb20gb24gZGluaCBjdW9jIHNvbmcsIGtob2kgcGh1YyB2YSANCnBoYXQgdHJpZW4gc2FuIHh1 YXQuDQoNCkxhbSBybyB0cmFjaCBuaGllbSBxdWFuIGx5IG5oYSBudW9jIHZ1IFZpbmFzaGluDQoN ClZlIHRodSB0dWMgaGFuaCBjaGluaCBjdSB0cmkgY2hvIHJhbmcsIHZhbiBwaHVjIHRhcCwgcGhp ZW4gaGEgY2hvIG5ndW9pIGRhbiB2YSBkb2FuaCANCm5naGllcC4gVmFuIGNvbiB0b24gdGFpIHh1 IGh1b25nIGNvIHF1YW4gaGFuaCBjaGluaCBkYW5oIHRodWFuIGxvaSB2ZSBjaG8gbWluaCwgZGF5 IA0Ka2hvIGtoYW4gdmUgY2hvIG5ndW9pIGRhbi4uLiBDaGluaCBwaHUgY2FuIGNvIGJpZW4gcGhh cCBxdXlldCBsaWV0IGRlIGdpYWkgcXV5ZXQgdG9uIHRhaSANCm5heS4NCg0KQ3VuZyB0aGVvIGN1 IHRyaSwgY29uZyB0YWMgcGhvbmcsIGNob25nIHRoYW0gbmh1bmcsIGxhbmcgcGhpIGRhIGR1b2Mg dGFwIHRydW5nIGNoaSBkYW8gDQp2YSBjbyBjaHV5ZW4gYmllbiB0aWNoIGN1Yy4gVHV5IG5oaWVu LCB0aGFtIG5odW5nLCBsYW5nIHBoaSBjaHVhIGR1b2MgZGF5IGx1aSwgdmFuIGxhIA0KdmFuIGRl IGJ1YyB4dWMgdmEgbGEgbW9pIHF1YW4gdGFtIGN1YSB4YSBob2kuDQoNCkNvbmcgdGFjIHBob25n LCBjaG9uZyB0aGFtIG5odW5nLCBsYW5nIHBoaSB2YW4gY29uIGhhbiBjaGUsIHlldSBrZW07IGto b25nIGl0IHRydW9uZyANCmhvcCBjaHVhIHBoYXQgaGllbiBraXAgdGhvaSwgeHUgbHkgY2h1YSBu Z2hpZW0sIG5oYXQgbGEgeHUgbHkgdHJhY2ggbmhpZW0gbmd1b2kgZHVuZyANCmRhdTsgY29uZyB0 YWMgdHUgcGhhdCBoaWVuIHRoYW0gbmh1bmcsIGxhbmcgcGhpIGN1YSBjYWMgY28gcXVhbiwgdG8g Y2h1YywgZG9uIHZpIHZhbiBsYSANCmtoYXUgeWV1LiANCg0KRG9pIHZvaSB2dSB2aWVjIHRpZXUg Y3VjIGN1YSBUYXAgZG9hbiBWaW5hc2hpbiwgY3UgdHJpIHZhIG5oYW4gZGFuIGNobyByYW5nIHRy b25nIHRob2kgDQpnaWFuIHF1YSwgY29uZyB0YWMgcXVhbiBseSBuaGEgbnVvYyBkb2kgdm9pIFRh cCBkb2FuIG5heSBjbyBuaGlldSBiYXQgY2FwLCB5ZXUga2VtLg0KDQpWaWVjIGtpZW0gdHJhLCBr aWVtIHNvYXQgY3VhIG5oYSBudW9jIGNvbiBrZW0gaGlldSBxdWEgbmVuIGNodWEgcGhhdCBoaWVu IGR1b2MgZGF5IGR1IA0KdmEgbmdhbiBjaGFuIGtpcCB0aG9pIG5odW5nIHF1eWV0IGRpbmggc2Fp IHRyYWkgdmUgZGF1IHR1LCBzdSBkdW5nIHZvbiBraG9uZyBkdW5nIG11YyANCmRpY2guLi4gZGFu IGRlbiBoaWV1IHF1YSB2b24gZGF1IHR1IGN1YSBuaGEgbnVvYyBkYXQgaGlldSBxdWEgdGhhcCwg dGhhbSBjaGkgYmkgdGhhdCB0aG9hdCANCnJhdCBuZ2hpZW0gdHJvbmcuIA0KDQpDaGluaCBwaHUg Y2FuIGxhbSBybyBuaHVuZyBzYWkgcGhhbSBjdWEgbGFuaCBkYW8gVGFwIGRvYW4gVmluYXNoaW4g dmEgdHJhY2ggbmhpZW0gDQpxdWFuIGx5IG5oYSBudW9jIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1 LCBjYWMgYm8gY28gbGllbiBxdWFuIHZhIHh1IGx5IG5naGllbSBkb2kgdm9pIHRhcCB0aGUsIGNh IG5oYW4gdmkgcGhhbS4NCkN1bmcgZG8sIENoaW5oIHBodSBjYW4gY2hpIGRhbyB0aWVuIGhhbmgg Y2FjIGhvYXQgZG9uZyBraWVtIHRyYSwgZGFuaCBnaWEgZHVuZyB0aHVjIA0KdHJhbmcgdmUgdGlu aCBoaW5oIHRhaSBjaGluaCBjdW5nIG5odSBob2F0IGRvbmcgc2FuIHh1YXQsIGtpbmggZG9hbmgg Y3VhIGNhYyB0YXAgZG9hbiANCmtpbmggdGUsIHRvbmcgY29uZyB0eSBuaGEgbnVvYyBraGFjLiAN Cg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDE5 MTkzMTQ0LmFzcHggQmFvIENhbSAxOS8xMC8yMDEwIDE3OjAwIA0KDQpUaHUgdHVvbmc6IEN1IHRy aSBraWVuIG5naGkgQ2hpbmggcGh1IGdpYW8gZHVjIGNvbmcgY2h1YyB2ZSB2YWkgdHJvICJjb25n IGJvYyIgIA0KICANCihUTk8pIFRyb25nIGJhbiBraWVuIG5naGkgZ3VpIHRvaSBreSBob3AgdGh1 IDgsIFF1b2MgaG9pIGtob2EgWElJLCBzZSBkdW9jIFV5IGJhbiANClRydW5nIHVvbmcgTVRUUSBW TiBiYW8gY2FvIHRydW9jIFF1b2MgaG9pIChRSCkgdGFpIHBoaWVuIGtoYWkgbWFjIHNhbmcgbWFp LCAyMC4xMCwgDQpkb25nIGRhbyBjdSB0cmkgdmEgbmhhbiBkYW4gY2EgbnVvYyBkZSBuZ2hpIENo aW5oIHBodSB0aWVwIHR1YyBjYWkgY2FjaCBoYW5oIGNoaW5oIA0KcXV5ZXQgbGlldDsgY28gYmll biBwaGFwIGdpYW8gZHVjIGNhbiBibywgY29uZyBjaHVjIHZlIHZhaSB0cm8gImNvbmcgYm9jIGN1 YSBuaGFuIGRhbiIuIA0KDQpUaGVvIGJhbiB0b25nIGhvcCB0dSAxLjI3NSB5IGtpZW4sIGtpZW4g bmdoaSBjdWEgY3UgdHJpIGd1aSB0b2kgVXkgYmFuIFRydW5nIHVvbmcgTVRUUSANClZOIHZhIFV5 IGJhbiBUaHVvbmcgdnUgUXVvYyBob2ksIGRvbmcgZGFvIGN1IHRyaSB2YSBuaGFuIGRhbiBjYSBu dW9jIGtpZW4gbmdoaSBRSCANCnhheSBkdW5nIGR1IGFuIEx1YXQgc3VhIGRvaSwgYm8gc3VuZyBt b3Qgc28gZGlldSBjdWEgTHVhdCBiYXUgY3UgREJRSCB2YSBMdWF0IGJhdSANCmN1IERCIEhETkQg dHJpbmggUUggdGhvbmcgcXVhIHRhaSBreSBob3AgbmF5IHRoZW8gaHVvbmcgbW8gcm9uZyB2YSBw aGF0IGh1eSBob24gDQpudWEgcXV5ZW4gbGFtIGNodSBjdWEgbmhhbiBkYW4gdHJvbmcgdmllYyBs dWEgY2hvbiBiYXUgbmh1bmcgbmd1b2kgY28gZHUgcGhhbSBjaGF0LCANCm5hbmcgbHVjLCB4dW5n IGRhbmcgbGEgbmd1b2kgZGFpIGJpZXUgY3VhIG5oYW4gZGFuIHZhbyBjYWMgY28gcXVhbiBxdXll biBsdWMgTmhhIG51b2MuDQoNClZlIGNhaSBjYWNoIGhhbmggY2hpbmggKENDSEMpIHZhIGNvbmcg dGFjIHBob25nLCBjaG9uZyB0aGFtIG5odW5nLCBsYW5nIHBoaSwgY3UgdHJpIA0KY2hvIHJhbmcg dGhvaSBnaWFuIHF1YSwgdm9pIHN1IHF1eWV0IHRhbSBjdWEgQ2hpbmggcGh1IHZhIGNoaW5oIHF1 eWVuIGNhYyBjYXAsIHRodSB0dWMgDQpoYW5oIGNoaW5oIHRyZW4gaGF1IGhldCBjYWMgbGluaCB2 dWMgZGV1IGRhIGR1b2MgcmEgc29hdCwgc3VhIGRvaSwgYmFuIGhhbmggbW9pIHRoZW8gDQpodW9u ZyBkb24gZ2lhbiBob2EsIHRodWFuIHRpZW4gY2hvIG5ndW9pIGRhbiwgYnVvYyBkYXUgdGFvIGR1 b2MgbmllbSB0aW4gY2hvIG5ndW9pIGRhbiANCnZhIGRvYW5oIG5naGllcCB2YW8gaG9hdCBkb25n IHBodWMgdnUgY3VhIGNhYyBjbyBxdWFuIGNvbmcgcXV5ZW4uIFR1eSBuaGllbiwgdGh1IHR1YyAN CmhhbmggY2hpbmggdmFuIHBodWMgdGFwLCBwaGllbiBoYSBjaG8gbmd1b2kgZGFuIHZhIGRvYW5o IG5naGllcC4NCg0KQmFvIGNhbyB0b25nIGhvcCB5IGtpZW4sIGtpZW4gbmdoaSBjdWEgY3UgdHJp IGd1aSB0b2kga3kgaG9wIGNobyB0aGF5LCBjdSB0cmkgYnVjIHh1YyB2ZSANCnRpbmggdHJhbmcg bGFtIHRodSBvIGNhYyB0cnVvbmcgcGhvIHRob25nIHRhaSBuaGlldSBkaWEgcGh1b25nIGRhIGdh eSBuaGlldSBraG8ga2hhbiwgDQpidWMgeHVjIGNobyBjYWMgZ2lhIGRpbmggbmdoZW8sIGdpYSBk aW5oIGNvIHRodSBuaGFwIHRoYXAgdmEgY2FuIGJvLCBjb25nIGNodWMgdmEga2llbiANCm5naGkg Q2hpbmggcGh1IGNhbiBjaGkgZGFvIGNoYW4gY2hpbmggdGluaCB0cmFuZyB0cmVuOyBkb25nIHRo b2kgdGllcCB0dWMgbmdoaWVuIGN1dSANCmNhaSBjYWNoIGNoZSBkbyBsdW9uZywgcGh1IGNhcCBj aG8gZ2lhbyB2aWVuIGRlIGNhYyB0aGF5IGNvIGRhbmggaGV0IHRhbSBodXlldCBjaG8gc3UgDQpu Z2hpZXAgInRyb25nIG5ndW9pIi4gDQoNCiJWYW4gY29uIHRvbiB0YWkgeHUgaHVvbmcgY28gcXVh biBoYW5oIGNoaW5oIGdpYW5oIHRodWFuIGxvaSB2ZSBjaG8gbWluaCwgZGF5IGtobyANCmtoYW4g dmUgY2hvIG5ndW9pIGRhbi4gTmhpZXUgdGh1IHR1YyBoYW5oIGNoaW5oIHJ1b20gcmEsIGNob25n IGNoZW8sIGNodWEgcGh1IGhvcCB2b2kgDQp0aHVjIHRlLiBZIHRodWMgdHJhY2ggbmhpZW0gdGhp IGhhbmggY29uZyB2dSwgdGhhaSBkbyBwaHVjIHZ1IGN1YSBkYSBzbyBjYW4gYm8sIGNvbmcgDQpj aHVjIHR1eSBjbyBjaHV5ZW4gYmllbiBuaHVuZyB2YW4gY2hhbS4gTW90IGJvIHBoYW4gY29uZyBj aHVjIGNvbiB0aGlldSB0cmFjaCBuaGllbSwgDQpoYW4gY2hlIG5hbmcgbHVjLCB0aGFtIGNoaSB0 aW0gY2FjaCB2b2kgdmluaCB0aWVuIGN1YSBuaGFuIGRhbiIsIGJhbyBjYW8ga2llbiBuZ2hpIGN1 IHRyaSANCm5ldSByby4gDQpEZSBnaWFpIHF1eWV0IHRodWMgdHJhbmcgdHJlbiwgY3UgdHJpIHZh IG5oYW4gZGFuIGtpZW4gbmdoaSBDaGluaCBwaHUgdGllcCB0dWMgY2hpIGRhbyANCkNDSEMgcXV5 ZXQgbGlldCBob24gbnVhOyBkb25nIHRob2kgY28gYmllbiBwaGFwIGdpYW8gZHVjIGNhbiBibywg Y29uZyBjaHVjIHRodWMgaGllbiANCmR1bmcgdmFpIHRybyAiY29uZyBib2MgY3VhIG5oYW4gZGFu IiBuaHUgQ2h1IHRpY2ggSG8gQ2hpIE1pbmggZGEgZGF5Lg0KDQpOZ29haSByYSwgY3VuZyB0aGVv IGRhbmggZ2lhIGN1YSBkb25nIGRhbyBjdSB0cmkgdmEgbmhhbiBkYW4sIHRpbmggdHJhbmcgdGhh bSBuaHVuZywgDQpsYW5nIHBoaSBjaHVhIGR1b2MgZGF5IGx1aSwgdmFuIGxhIHZhbiBkZSBidWMg eHVjIHZhIGxhIG1vaSBxdWFuIHRhbSBjdWEgeGEgaG9pOyBjb25nIA0KdGFjIHBob25nLCBjaG9u ZyB0aGFtIG5odW5nLCBsYW5nIHBoaSB2YW4gY29uIGhhbiBjaGUsIHlldSBrZW07IGtob25nIGl0 IHRydW9uZyBob3AgDQpjaHVhIHBoYXQgaGllbiBraXAgdGhvaSwgeHUgbHkgY2h1YSBuZ2hpZW0s IG5oYXQgbGEgeHUgbHkgdHJhY2ggbmhpZW0gbmd1b2kgZHVuZyBkYXU7IA0KY29uZyB0YWMgdHUg cGhhdCBoaWVuIHRoYW0gbmh1bmcsIGxhbmcgcGhpIGN1YSBjYWMgY28gcXVhbiwgdG8gY2h1Yywg ZG9uIHZpIHZhbiBsYSBraGF1IA0KeWV1Lg0KDQpMaWVuIHF1YW4gZGVuIHZ1IHZpZWMgdGlldSBj dWMgdGFpIFRhcCBkb2FuIFZpbmFzaGluLCBjdSB0cmkgdmEgbmhhbiBkYW4ga2llbiBuZ2hpIA0K Q2hpbmggcGh1IGxhbSBybyBuaHVuZyBzYWkgcGhhbSBjdWEgbGFuaCBkYW8gVGFwIGRvYW4gVmlu YXNoaW4gdmEgdHJhY2ggbmhpZW0gDQpxdWFuIGx5IG5oYSBudW9jIGN1YSBUaHUgdHVvbmcgY2hp bmggcGh1LCBjYWMgQm8gY28gbGllbiBxdWFuIHZhIHh1IGx5IG5naGllbSBkb2kgDQp2b2kgdGFw IHRoZSwgY2EgbmhhbiB2aSBwaGFtLiANCg0KRG9uZyB0aG9pLCBraWVuIG5naGkgQ2hpbmggcGh1 IGNoaSBkYW8gdGllbiBoYW5oIGNhYyBob2F0IGRvbmcga2llbSB0cmEsIGRhbmggZ2lhIA0KZHVu ZyB0aHVjIHRyYW5nIHZlIHRpbmggaGluaCB0YWkgY2hpbmggY3VuZyBuaHUgaG9hdCBkb25nIHNh biB4dWF0LCBraW5oIGRvYW5oIGN1YSANCmNhYyB0YXAgZG9hbiBraW5oIHRlLCB0b25nIGNvbmcg dHkgbmhhIG51b2Mga2hhYy4gDQpCYW8gY2FvIHRvbmcgaG9wIHkga2llbiwga2llbiBuZ2hpIGN1 YSBjdSB0cmkgdmEgbmhhbiBkYW4gc2UgZHVvYyBkYWkgZGllbiBEb2FuIENodSANCnRpY2ggVXkg YmFuIFRydW5nIHVvbmcgTVRUUSBWTiB0cmluaCBiYXkgdGFpIHBoaWVuIGtoYWkgbWFjIGN1YSBR SCB2YW8gc2FuZyBtYWksIDIwLjEwLiANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMTAxOTAz NTcwODc0UDBDOTkyMC93Yi1kYXktbHVpLWR1LWJhby10YW5nLXRydW9uZy1nZHAtY3VhLXZpZXQt bmFtLmh0bSBESUVVIEhVT05HIDE3OjUzIChHTVQrNykgLSAxOS8xMC8yMDEwIA0KDQpUaHUgdHVv bmc6IFdCIGRheSBsdWkgZHUgYmFvIHRhbmcgdHJ1b25nIEdEUCBjdWEgVmlldCBOYW0gDQogDQpC YW8gY2FvIGNhcCBuaGF0IGtpbmggdGUga2h1IHZ1YyBEb25nIEEgdmEgVGhhaSBCaW5oIER1b25n IGN1YSBXQiBkYSBnaWFtIGR1IGJhbyANCnRhbmcgdHJ1b25nIEdEUCBWaWV0IE5hbSBuYW0gMjAx MCB2ZSBtdWMgNiw1JSANCg0KQmFvIGNhbyBjYXAgbmhhdCBraW5oIHRlIGtodSB2dWMgRG9uZyBB IHZhIFRoYWkgQmluaCBEdW9uZyBkdW9jIE5nYW4gaGFuZyBUaGUgZ2lvaSANCihXQikgY29uZyBi byBzYW5nIG5heSwgMTkvMTAsIGRhIGJvdCBsYWMgcXVhbiBob24gZG9pIHZvaSBtb3Qgc28gY2hp IHNvIGtpbmggdGUgdmkgbW8gDQpxdWFuIHRyb25nLCBzbyB2b2kgbmhhbiBkaW5oIGN1bmcgZHVv YyB0byBjaHVjIG5heSBkdWEgcmEgaG9pIGRhdSB0aGFuZyA2IG5hbSBuYXkuIA0KDQooQW5oOiBC YSBWaWN0b3JpYSBLd2Frd2EsIEdpYW0gZG9jIFdCIHRhaSBWaWV0IE5hbSwgdGFpIGN1b2MgaG9w IGJhbyBjb25nIGJvIA0KYmFvIGNhbyBjYXAgbmhhdCBraW5oIHRlIGtodSB2dWMgRG9uZyBBIHZh IFRoYWkgQmluaCBEdW9uZy4gV0IgZHUgYmFvIA0KQ1BJIGN1YSBWaWV0IE5hbSBuYW0gbmF5IHNl IGNoaSB0YW5nIGtob2FuZyA4JSwgZ2lhbSBuaGUgc28gdm9pIGNvbiBzbyBkdW9jIA0KdGluaCB0 b2FuIHRydW9jIGRvIGxhIDklIGR1b2MgbmV1IHJhIHZhbyB0aGFuZyA2IG5hbSBuYXkuKSANCg0K RGlldSBjaGluaCBkdSBiYW8NCg0KVmUgY2hpIHRpZXUgdGFuZyB0cnVvbmcgR0RQLCB2YW8gdGhh bmcgNi8yMDEwLCBXQiBjb24gY2hvIHJhbmcgVmlldCBOYW0gc2UgY28gbW90IA0KbmFtIHR1b25n IGRvaSB0aGFuaCBjb25nIHZvaSB0YW5nIHRydW9uZyBkYXQgbXVjIDclLiBUdXkgbmhpZW4sIHZv aSBsYW4gY2FwIG5oYXQgbmF5LCANCmJhbyBjYW8gY3VhIFdCIGNobyByYW5nLCBHRFAgY2hpICJk YW5nIHRyZW4gZGEgZGF0IGR1b2MgbXVjIHRpZXUgNiw1JSBjdWEgbmFtIA0KMjAxMCIuIA0KDQpW ZSBsYW0gcGhhdCwgV0IgZHUgYmFvIGNoaSBzbyBnaWEgdGlldSBkdW5nIChDUEkpIGN1YSBWaWV0 IE5hbSBuYW0gbmF5IHNlIGNoaSB0YW5nIA0Ka2hvYW5nIDglLCBnaWFtIG5oZSBzbyB2b2kgY29u IHNvIHRpbmggdG9hbiB0cnVvYyBkbyBsYSA5JSwgZHVvYyBuZXUgcmEgdmFvIHRoYW5nIDYgbmFt IG5heS4NCg0KTyBjYWMgY2FuIGRvaSB2aSBtbyBraGFjLCBkdSBiYW8gY2FuIGNhbiB0aHVvbmcg bWFpIG5hbSBuYXkgY3VhIFZpZXQgTmFtIGRhIGR1b2MgDQpXQiBkaWV1IGNoaW5oIHR1IG11YyB0 aGFtIGh1dCA5LDUgdHkgVVNEICh0cm9uZyBiYW8gY2FvIHRoYW5nIDYpIGxlbiBtdWMgMTAsOCB0 eSBVU0QgDQp0cm9uZyBiYW4gY2FwIG5oYXQuIENoaSB0aWV1IG5heSBkdSBraWVuIGNvbiBjYW8g aG9uIHRyb25nIG5hbSAyMDExLCBvIG11YyAxMSw0IHR5IFVTRC4NCg0KS2V0IHF1YSBsYSwgY2Fu IGNhbiB2YW5nIGxhaSBjdW5nIHRhbmcgdGhlbSBtdWMgdGhhbSBodXQsIHR1b25nIHVuZyB0dSA5 LDEgdHkgVVNEIGxlbiANCm11YyA5LDMgdHkgVVNEIHZhIGR1IGtpZW4gc2UgZ2l1IG5ndXllbiB0 cm9uZyBuYW0gdG9pLg0KDQpOZ3VvYyBsYWksIHRoZW8gV0IsIHRpbmggaGluaCB0aHUgaHV0IGRh dSB0dSB0cnVjIHRpZXAgbnVvYyBuZ29haSBjdWEgVmlldCBOYW0gbmFtIG5heSANCmNvIHRoZSBz ZSBjYWkgdGhpZW4gaG9uLCBraGkgZHVvYyBkdSBiYW8gdGFuZyB0dSBtdWMgNywzIHR5IFVTRCBs ZW4gNyw2IHR5IFVTRCB0cm9uZyBiYW8gY2FvIGNhcCBuaGF0Lg0KDQpOaHVuZyB1b2MgdGluaCBj dWEgV0IgY3VuZyBjaG8gdGhheSwgY28ga2hhIG5hbmcgY2FuIGNhbiB0aGFuaCB0b2FuIG5hbSBu YXkgc2UgdGhhbmcgDQpkdSwga2hpZW4gZHUgdHJ1IG5nb2FpIGhvaSBjbyB0aGUgdGFuZyB0aGVt IDIsMyB0eSBVU0QsIHR1IG11YyAxNSwyIHR5IFVTRCB2YW8gY3VvaSANCm5hbSAyMDA5IGxlbiAx Nyw1IHR5IFVTRCB0cm9uZyBuYW0gbmF5LCB0dW9uZyBkdW9uZyAxMSw0IHR1YW4gbmhhcCBraGF1 Lg0KDQpOaGFuaCwgbmh1bmcga2hvbmcgZGV1DQoNCk5oYW4gZGluaCBraGFpIHF1YXQgdmUgdGlu aCBoaW5oIGtpbmggdGUsIGJhbyBjYW8gY3VhIFdCIGNobyByYW5nLCBzdSBwaHVjIGhvaSBraW5o IHRlIA0KY3VhIFZpZXQgTmFtIGxhIG5oYW5oIGNob25nIG5odW5nIGtob25nIGRvbmcgZGV1LiAN Cg0KVG9jIGRvIHRhbmcgdHJ1b25nIGN1YSBuaHVuZyBjaGkgc28ga2luaCB0ZSBjaHUgY2hvdCBu aHUgR0RQLCBzYW4geHVhdCBjb25nIG5naGllcCwgDQpkYXUgdHUgdmEgeHVhdCBraGF1IGRhbmcg ZHVvYyB0cm9uZyBkb2kgc2UgcGh1YyBob2kgZ2FuIHRvYyBkbyB0YW5nIHRydW9uZyB0aG9pIGt5 IHRydW9jIA0Ka2h1bmcgaG9hbmcuIFR1eSBuaGllbiwgV0IgY2hvIHJhbmcgdGhhbSBodXQgdGFp IGtob2FuIHZhbmcgbGFpIHZhbiBvIG11YyBjYW8sIHZhIGNhYyANCmhvIGdpYSBkaW5oIGN1bmcg bmh1IGNhYyBjb25nIHR5IGR1b25nIG5odSB2YW4gdGllcCB0dWMgdHJ1IHZhbmcgdmEgbmdvYWkg dGUsIGdheSBhcCBsdWMgbGllbiB0dWMgY2hvIGRvbmcgbm9pIHRlLiANCg0KIkNhYyBnaWEgZGlu aCB2YSBjb25nIHR5IHRpZXAgdHVjIGR1eSB0cmkgbHVvbmcgbG9uIG5nb2FpIHRlLCBjaHUga2hv bmcgcGhhaSB0aWVuIGRvbmcuLi4gDQpBcCBsdWMgbGVuIG5vaSB0ZSBsYSBsb24iLCBvbmcgRGVl cGFrIE1pc2hyYSwgS2luaCB0ZSB0cnVvbmcgV0IgdGFpIFZpZXQgTmFtIGx1dSB5Lg0KDQpUaGVv IHZpIGNodXllbiBnaWEgbmF5LCBiYW4gdGhhbiB0eSBnaWEgaGllbiBuYXkga2hvbmcgcGhhaSBj aGl1IGFwIGx1YyBxdWEgbG9uLiBOaHVuZyANCmNodW5nIGN1IHJpZW5nIGxlIGNobyB0aGF5LCBj YWMgY29uZyB0eSBjaGUgdGFvIGRhbmcgdHVuZyBidW9jIHBoYW4gYm8gbGFpIHZpIHRyaSBuaGEg bWF5IA0KdHUgbmh1bmcgbnVvYyBkb2kgaG9pIG11YyBsdW9uZyBjYW8gbyBraHUgdnVjIERvbmcg QSB2YSBkaWV1IG5heSBkYSBiYXQgZGF1IG1hbmcgbGFpIA0KbG9pIGljaCBjaG8gVmlldCBOYW0s IG5vaSBkb2kgaG9pIG11YyBsdW9uZyB0aGFwIHZhIGdpYXAgYmllbiwgZHVvYyBkYXQgdmkgdHJp IHRodWFuIGxvaSBkZSANCnRodSBodXQgY2FjIG5ndW9uIGRhdSB0dSBuYXkuDQoNClR1eSBuaGll biwgcmF0IGtobyBkdSBkb2FuIGR1b2MgaGFuaCB2aSBjdWEgY2FjIGhvIGdpYSBkaW5oIHZhIGRv YW5oIG5naGllcCBkb2kgdm9pIGRhdSANCnR1IG5nb2FpIHRlLiAiRGlldSBuYXkgcGh1IHRodW9j IHZhbyBuaWVtIHRpbiBjdWEgaG8gdmEgY2hpbmggc2FjaCBjdWEgQ2hpbmggcGh1IHRyb25nIA0K dGhvaSBnaWFuIHRvaSIsIG9uZyBEZWVwYWsgTWlzaHJhIG5vaSB2b2kgYmFvIGdpb2kuDQoNCkRv aSB2b2kgaGUgdGhvbmcgdGluIGR1bmcsIGJhbyBjYW8gY3VhIFdCIGx1dSB5OiAiQ28gbmhpZXUg bW9pIHF1YW4gbmdhaSByYW5nIHN1IG1vIA0Kcm9uZyBxdWEgbmhhbmggY3VhIHRpbiBkdW5nIHRy b25nIG51b2MgbmhhbSBraWNoIHRoaWNoIG5lbiBraW5oIHRlIGRhIGRhbiBkZW4gc3UgeWV1IA0K a2VtIHRyb25nIGNhbiBkb2kgdGFpIHNhbiBjdWEgbW90IHNvIG5nYW4gaGFuZyIuIA0KDQpNb3Qg c3UgaGlldSBjaGluaCBnaWFtIGRhbiBnb2kga2ljaCBjYXUgZGFuZyBkdW9jIHRpZW4gaGFuaCwg dGhvbmcgcXVhIHZpZWMgcnV0IG1vdCBzbyANCmdvaSB0YWkgdHJvIHRydWMgdGllcCB0dSBuZ2Fu IHNhY2ggY3VuZyBuaHUgbW90IHNvIGdvaSBraWNoIHRoaWNoIHRpZW4gdGUuIENodSB0cnVvbmcg dGFuZyANCnZvbiB0b2kgdGhpZXUgY2hvIG5nYW4gaGFuZyBjdW5nIGR1b2MgYmFuIGhhbmgsIGR1 IGNvbiB2YXAgcGhhaSBuaHVuZyBwaGFuIGRvaSB0dSBwaGlhIA0KY2FjIHRvIGNodWMgY2hpdSB0 YWMgZG9uZyB0dSBjaGluaCBzYWNoIG5heS4gDQoNClRoZW8gZHUgYmFvIGN1YSBXQiwgdGFuZyB0 cnVvbmcgdGluIGR1bmcgY2EgbmFtIDIwMTAgY28gdGhlIG8gbXVjIGR1b2kgMjUlLCB0aGFwIGhv biANCnNvIHZvaSBjaGkgdGlldSBkYXQgcmEgdHJ1b2MgZG8uIERheSBjdW5nIGxhIG11YyB0YW5n IHRydW9uZyBraGEgdGhhcCBzbyB2b2kgMy00IG5hbSB0cm8gbGFpIGRheS4NCg0KVHJvbmcga2hp IGRvLCB0aGkgdHJ1b25nIGNodW5nIGtob2FuLCBzYXUgc3UgcGh1YyBob2kgZGFuZyBrZSB0cm9u ZyBuYW0gMjAwOSwgZGEgc3V0IA0KZ2lhbSB0cm8gbGFpIHZhIHRpZXAgdHVjIGdheSBhbmggaHVv bmcgeGF1IGNobyBuZW4ga2luaCB0ZS4uLiANCg0KVmUgZ29jIG5oaW4gY3VhIGNvbmcgZG9uZyBk YXUgdHUgcXVvYyB0ZSwgYmFvIGNhbyBkYW4gY2h1bmcsIGxhaSBzdWF0IHRyYWkgcGhpZXUgY2hp bmggDQpwaHUgYmFuZyBuZ29haSB0ZSBjdWEgVmlldCBOYW0gdmFuIGRhbyBkb25nIG8gbXVjIGNh bywgeHVuZyBxdWFuaCA0MDAgZGllbSBjbyBiYW4gDQoobXVjIHRhbmcgdGhlbSBzbyB2b2kgTElC T1IgdGhlbyBnaWFpIHRoaWNoIGN1YSBkYWkgZGllbiBXQikgdmEgY2FvIGhvbiBoYXUgaGV0IGNh YyANCm51b2MgdHJvbmcga2h1IHZ1Yy4gV0IgY2hvIHJhbmcsIG5ndXllbiBuaGFuIGxhIGRvIGNh YyBuaGEgZGF1IHR1IGNvbiBxdWFuIG5nYWkgdmUgDQpraGEgbmFuZyAiaGEgY2FuaCBhbiB0b2Fu IiBjdWEgVmlldCBOYW0gaGF1IGtodW5nIGhvYW5nLCBkdSBuZW4ga2luaCB0ZSBkYSBsYXkgbGFp IA0KZHVvYyBkb25nIGx1YyB0YW5nIHRydW9uZyBjdWEgZ2lhaSBkb2FuIHRydW9jIGRvLg0KDQpD YW4gY2FpIGNhY2ggZG9hbmggbmdoaWVwIG5oYSBudW9jDQoNClRoZW8gV0IsIHZpZWMgdGhhbmgg bGFwIHRoaSBkaWVtIGNhYyB0YXAgZG9hbiBraW5oIHRlIG5oYSBudW9jIG5oYW0gdGFvIGxvaSB0 aGUgdmUgcXV5IA0KbW8gc2FuIHh1YXQgdmEgY29uZyBuZ2hlLCBjdW5nIGRhbiBkZW4gdmllYyBt b3Qgc28gZG9hbmggbmdoaWVwIGxhbSBjaG8gc3UgbWF0IG9uIA0KZGluaCBraW5oIHRlIG5nYXkg Y2FuZyByb25nIHRoZW0sIG5odSB2dSB2aWVjIGN1YSB0YXAgZG9hbiBWaW5hc2hpbi4NCg0KVGhl byBiYSBWaWN0b3JpYSBLd2Frd2EsIEdpYW0gZG9jIFdCIHRhaSBWaWV0IE5hbSwgdmllYyBzdSBk dW5nIG5ndW9uIGx1YyBxdWEgdGhvYWkgDQptYWkgZGFuIHRvaSBzdSBkdW5nIGtob25nIGhpZXUg cXVhIGN1YSBjYWMgdGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYy4gQmEgY2hvIHJhbmcgY2FuIA0K Y28gY28gY2hlIGtpZW0gc29hdCB2aWVjIHN1IGR1bmcgdm9uIHZhIHRpbmggaGlldSBxdWEgY3Vh IGNhYyBuZ3VvbiBsdWMgZGF0IG51b2MgZHVvYyANCnRyYW8gdmFvIHRheSBjYWMgdGFwIGRvYW4g a2luaCB0ZS4gQ2FvIGhvbiBudWEgbGEgdmFuIGRlIHF1YW4gdHJpIGRvYW5oIG5naGllcCB2YSBn aWFtIHRoaWV1IHJ1aSByby4NCg0KIlZhbiBkZSBsb24gbGEgbGFtIHRoZSBuYW8gZGUgY2FjIHRh cCBkb2FuIGNvIGhpZXUgcXVhIHZhIGR1bmcgZGUgeGF5IHJhIG5odW5nIHZ1IG5odSANClZpbmFz aGluIG51YSIsIGJhIFZpY3RvcmlhIEt3YWt3YSBub2kuDQoNCkxpZW4gcXVhbiBkZW4gbG8gbmdh aSB2ZSBwaGFuIGJpZXQgdGhhbmggcGhhbiBraW5oIHRlIHF1b2MgZG9hbmggdmEgdHUgbmhhbiwg YmEgbm9pOiANCiJUb2kgdGhheSBzYW4gY2hvaSB2YW4gZGFuZyBjaG8gZG9pIGRlIHRhbyByYSBr aG9hbmcgY2FjaCBiaW5oIGRhbmcgaG9uLiBUcm9uZyBraGkga2hvaSANCnF1b2MgZG9hbmggZGFu ZyBkdW9jIGh1b25nIG5oaWV1IG5ndW9uIGx1YyB2b24sIGRhdCBkYWkuLi4sIHRoaSB2aWVjIGRp ZXUgdGlldCBuYW0gdHJvbmcgdGF5IGNhYyBjbyBxdWFuIGNodWMgbmFuZyIuIA0KDQpodHRwOi8v dHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTEwLTI3LW5nby1uaGFuLWRvLWJlbmgtdGhh bmgtdGljaCBUYWMgZ2lhOiBUaGFpIFRyaW5oIEN1b25nIFRoZW8gVEJLVFNHIA0KDQpUaHUgdHVv bmc6IE5nbyBuaGFuIGRvIGJlbmggdGhhbmggdGljaA0KDQpOZXUgdG9uZyBob3Agc28gbGlldSBi YW8gY2FvIGN1YSBjYWMgdGluaCwgdGhhbmggdGhpIHRvYyBkbyB0YW5nIHRydW9uZyBHRFAgY3Vh IGNhIG51b2MgDQp2YW8gbmFtIDIwMDkgbGEgOCw2OCUgdHJvbmcga2hpIGNvbiBzbyBjaGluaCB0 aHVjIGN1YSBUb25nIGN1YyBUaG9uZyBrZSBjaGkgbGEgNSwzMiUuIA0KQ2hlbmggbGVjaCBnaXVh IGhhaSBjb24gc28gbmF5IGxlbiBkZW4gZ2FuIDggdGkgZG8gbGEgKHRpbmggdGhlbyBnaWEgdGh1 YyB0ZSkuIENoaW5oIGJlbmggDQp0aGFuaCB0aWNoIGRhIGRlIHJhIGNvbiBzbyBhbyBuYXkuDQoN CiogRHUgYmFvIEdEUCB2YSBiYWkgdG9hbiB0YW5nIHRydW9uZyANCiogR2FuaCBuYW5nIGN1YSBu ZW4ga2luaCB0ZSBnaWEgY29uZyANCg0KSG9uIDIwIG5hbSB0cnVvYywgQ2h1b25nIHRyaW5oIFBo YXQgdHJpZW4gY3VhIExpZW4gaGllcCBxdW9jIChVTkRQKSBkYSBnaXVwIFZpZXQgDQpOYW0gbW90 IGR1IGFuIHZlIHZhbiBkdW5nIEhlIHRob25nIHRhaSBraG9hbiBxdW9jIGdpYSAoU05BIC0gU3lz dGVtIG9mIE5hdGlvbmFsIA0KQWNjb3VudHMpLiBEYXkgbGEgaGUgdGhvbmcgaGFjaCB0b2FuIHZp IG1vIHR1b25nIGRvaSB0b2FuIGRpZW4gZHVvYyBoYXUgaGV0IGNhYyBudW9jIA0KdGhhbmggdmll biBMaWVuIGhpZXAgcXVvYyBzdSBkdW5nIHRyb25nIHRob25nIGtlIGNhYyBjaGkgc28gdmkgbW8g Y3VhIG1vdCBxdW9jIGdpYS4NCg0KSGUgdGhvbmcgU05BIHBoYW4gYW5oIGx1b25nIGNodSBjaHV5 ZW4gc2FuIHBoYW0gdmEgdGllbiB0ZSB0aG9uZyBxdWEgY2FjIHRhaSBraG9hbiANCmR1YSB0cmVu IHF1YW4gZGllbSBraW5oIHRlIHRoaSB0cnVvbmcuIE1vdCBzbyB5IG5pZW0gdmEgZGluaCBuZ2hp YSBjdWEgU05BIGtoYWMgdm9pIA0KSGUgdGhvbmcgY2FjIGJhbmcgY2FuIGRvaSB2YXQgY2hhdCAo TVBTKSB0aHVvbmcgZHVvYyBkdW5nIG5oaWV1IG5hbSBvIG51b2MgdGEgdmEgDQpjYWMgbnVvYyB4 YSBob2kgY2h1IG5naGlhIHRydW9jIGRvLg0KDQooQW5oIGNodXA6IEJpZXUgZG8gMSkNClF1YSB0 cmluaCBjaHV5ZW4gZG9pIHR1IE1QUyBzYW5nIFNOQSBkdW9jIHR1bmcgYnVvYyB0aHVjIGhpZW4g YmF0IGRhdSB0dSBuYW0gMTk4OSwgDQpkZW4gbmFtIDE5OTMgZHVvYyBzdSBkdW5nIGNoaW5oIHRo dWMuDQoNClZhIGN1bmcgdHUgZG8sIGtoYWkgbmllbSB2ZSB0b25nIHNhbiBwaGFtIHF1b2Mgbm9p IEdEUCAobGEgbW90IGNoaSBzbyBzbyBjYXAgdHJvbmcgDQpuaGlldSBjaGkgc28gdmkgbW8gY3Vh IGhlIHRob25nIFNOQSkgZGFuIGRhbiBkdW9jIHN1IGR1bmcgcGhvIGJpZW4gbyBudW9jIHRhLg0K DQpEbyBtb3QgdGhvaSBnaWFuIGRhaSBzdSBkdW5nIGhlIHRob25nIE1QUywgbmd1b2kgdGEgZGEg Z2lhaSB0aGljaCB2YSBoaWV1IHZlIGNoaSB0aWV1IA0KR0RQIG5odSBsYSB0b25nIGN1bmcgKG1h YyBkdSB2ZSBwaHVvbmcgcGhhcCB0aWVwIGNhbiB0aG9uZyB0aW4gdmEgdGluaCB0b2FuIGNvIHRo ZSB0aW5oIA0KYmFuZyBiYSBwaHVvbmcgcGhhcCksIHR1YyBsYSBjb2kgbmh1IGNvbmcgZ2lhIHRy aSBnaWEgdGFuZyBjdWEgY2FjIG5nYW5oIHRyb25nIG5lbiBraW5oIA0KdGUgdmEgdGh1ZSBuaGFw IGtoYXUuIERvIGxhIGhlIHF1YSBraGllbiBuaGlldSBuZ3VvaSBkYSBraG9uZyBoaWV1IGR1bmcg YmFuIGNoYXQgY3VhIA0KR0RQIHRoZW8ga2luaCB0ZSB0aGkgdHJ1b25nLg0KDQpNYXQga2hhYywg dHJvbmcgZGlldSBraWVuIHBoYW4gY2FwIGtoZXAga2luLCBuZ3VvaSB0YSBsYWkgZGEgImNoaWEi IEdEUCBjYSBudW9jIHRoYW5oIA0KR0RQIGN1YSB0dW5nIGRpYSBwaHVvbmcuIFZhIHR1IGRvIGJh dCBkYXUgbW90ICJsYW4gc29uZyIgcGhhbiBkYXUgdGFuZyBHRFAga2hvbmcgDQpwaGFpIGNodSB5 ZXUgdHUgZGF5IG1hbmggY2F1IG5vaSBjaHVuZywgbGEgY2FuIGN1IGdvYyBkZSB0YW5nIHNhbiB4 dWF0LCBtYSBsYSB0aW5oIHNhbyANCmNobyBkdW9jICJuaGlldSBHRFAiIHR1IHBodW9uZyBwaGFw IHNhbiB4dWF0IChjbyBnb2MgdHUgaGUgdGhvbmcgTVBTKS4NCg0KKEFuaCBjaHVwOiBCaWV1IGRv IDIpDQoNClZhIEdEUCBjdWEgY2FjIGRpYSBwaHVvbmcgYmF0IGRhdSBtb3QgcXVhIHRyaW5oICJ0 aGFuZyBob2EiLCBuaHVuZyBkdW9uZyBuaHUgaXQgaG9hYyANCmtob25nIGFuaCBodW9uZyB0b2kg Y3VvYyBzb25nIHRodWMgdGUgY3VhIG5ndW9pIGRhbi4NCg0KVGluaCB0cmFuZyBuYXkgY28gdGhl IGRvIHRyaW5oIGRvIG5vbiB5ZXUsIGNvIHRoZSBsYSBsb2kgIm5naGllcCB2dSIgZG8gdGhpZXUg Y2FuIGRvaSBxdWEgDQpsYWkgKHRodWMgcmEgY3VuZyBraG9uZyB0aGUgYmlldCBjbyBxdWFuIHRo b25nIGtlIHRydW5nIHVvbmcgY28gdGluaCB0b2FuIHRvdCBob24gY28gcXVhbiANCnRob25nIGtl IGRpYSBwaHVvbmcgaGF5IGtob25nKS4NCg0KTmh1bmcgbW90IGtoaSBkZSB4YXkgcmEgY2FjIHNh aSBzbyBtYW5nIHRpbmggaGUgdGhvbmcgbmh1IG5odW5nIGRhbiBjaHVuZyBkdW9pIGRheSANCnRo aSBjbyB0aGUgbm9pIGNvIGJhbiBkbyBsYSBkbyBiZW5oIHRoYW5oIHRpY2guDQoNCkJhbmcgMSB2 YSAyIGNobyB0aGF5IHN1IHNhaSBzbyBnaXVhIEdEUCB0aGVvIGdpYSB0aHVjIHRlIHZhIGdpYSBz byBzYW5oIHR1IGNhYyB0aW5oL3RoYW5oIA0KcGhvIGNvbmcgbGVuIHZvaSBHRFAgZG8gVG9uZyBj dWMgVGhvbmcga2UgdGluaCB0b2FuIHZhIGNvbmcgYm8hIFR1IGRvLCB2aWVjIHRpbmggdG9hbiAN Cm11YyBzb25nIGN1YSBjYWMgZGlhIHBodW9uZyBjdW5nIGNvIHRoZSBiaSAiZG9pIiBsZW4gbmhp ZXUgc28gdm9pIG11YyBiaW5oIHF1YW4gY2h1bmcgDQpjYSBudW9jIQ0KDQpNb3QgY2FjaCBkZSBr aGFjIHBodWMgdGluaCB0cmFuZyBuYXkgbGEgdGluaCBHRFAgeHVhdCBwaGF0IHR1IHF1YW4gaGUg Y3VuZyBjYXUsIHR1YyBsYSANCnR1IGNhYyBjdW9jIGRpZXUgdHJhIHRpZXUgZHVuZywgdGljaCBs dXkgdmEgZG9pIHNvbmcgbmhhbiBkYW4uIFRodWMgcmEgZGlldSBuYXkgY3VuZyByYXQgDQpraG8g dGh1YyBoaWVuIGRvaSB2b2kgY2FjIHRpbmgvdGhhbmggcGhvIHZpIG8gY2FwIGRpYSBwaHVvbmcg ZGEgYm8gKGtob25nIHBoYWkgYmFvIGNhbykgDQpjYWMgY2hpIHRpZXUgdmUgY2F1IG5odSB0aWV1 IGR1bmcsIHRpY2ggbHV5IHR1IG5oaWV1IG5hbSBuYXkuIEhvbiBudWEsIG5nYXkgY2EgbyBjYXAg DQp0cnVuZyB1b25nIGN1bmcga2hvIHRpbmggY2hpIHRpZXUgdGljaCBsdXkgbW90IGNhY2ggdHVv bmcgZG9pIGNoaW5oIHhhYy4NCg0KKEFuaCBjaHVwOiBCaWV1IGRvIDMpDQoNClRoZW8gYmFuZyAz IGNvIHRoZSB0aGF5IHRyb25nIG1vaSBreSBuYW0gbmFtLCBjbyBpdCBuaGF0IGhhaSBuYW0sIHNv IGxpZXUgdG9jIGRvIHRhbmcgDQp0cnVvbmcgdG9uZyBob3AgdHUgY2FjIGRpYSBwaHVvbmcgc2Fp IHZvaSB0aW5oIHRvYW4gY2EgbnVvYyBkbyBUb25nIGN1YyBUaG9uZyBrZSBjb25nIA0KYm8gdHJl biA1MCUgKHNhaSBzbyB0dW9uZyBkb2kpLCB0cm9uZyBkbyBjbyBuYW0gbmh1IG5hbSAyMDA4LCBz YWkgc28gdG9jIGRvIHR1eWV0IGRvaSBsZW4gDQp0b2kgNSwzIGRpZW0gcGhhbiB0cmFtLCBjb24g c2FpIHNvIHR1b25nIGRvaSBkZW4gODQlISBWYSBiaW5oIHF1YW4gMTAgbmFtIHNhaSBzbyBkZW4g DQo0NCUuDQoNCkNvbiB0cm9uZyB0dW5nIG5hbSBuYW0gdGhpIHRob2kga3kgbmFtIG5hbSBnYW4g ZGF5IDIwMDQtMjAwOSBzYWkgc28gbGEgNDglLCBsb24gaG9uIA0Kc2FpIHNvIHRyb25nIG5hbSBu YW0gdHJ1b2MgZG8gbGEgNDMlLCBuaHVuZyBkZXUgdGhlbyB4dSBodW9uZyB0YW5nIGNhbyBob24g c28gdG9uZyANCmhvcC4NCg0KQ2hpbmggdHJlbiBjbyBzbyBuYXksIGJhbyBjYW8gY3VhIGNhYyB0 aW5oIGRldSBuaGFuIGRpbmggImxhYyBxdWFuIiB2ZSBkaWEgcGh1b25nIG1pbmgsIA0KZ2FwIHJ1 b2kgY2EgdnVuZywgaGF5IHRodW9uZyBjdW5nIGxhIHRyZW4gdHJ1bmcgYmluaCEgVHUgbmhhbiBk aW5oIGxhYyBxdWFuIGRvLCBkYSBkaSB0b2kgDQpxdXlldCBzYWNoIGR1YSBjaGkgdGlldSBjYW8s IHZhIGRpZXUgbmF5IGxhaSBnYXkgImFwIGx1YyIga2hvIGNobyBjYWMgY2hpIGN1YyB0aG9uZyBr ZSBkaWEgDQpwaHVvbmcgZHVhIHJhIGNhYyBjaGkgdGlldSBraGFjaCBxdWFuLg0KDQpEbyBsYSBj aHVhIG5vaSB0b2kgc28gbGlldSBHRFAgbGFpIHRpZXAgdHVjIGR1b2MgZGlldSBjaGluaCB0YW5n IGxlbiB0cm9uZyBjYWMgInZhbiBraWVuIiANCnRyaW5oIGRhaSBob2kgRGFuZyBvIG5oaWV1IGRp YSBwaHVvbmcga2hpIHRpZW4gdG9pIGRhaSBob2kgRGFuZyBjYWMgY2FwLCBtYSBkaWV1IG5heSBj byANCmxlIGtob25nIHBoYW4gYW5oIGN1b2Mgc29uZyB0aHVjIHZpIG5vIGxhaSB0b24gY2FvIHRo ZW0gY2FjIHNvIGxpZXUgY3VhIGNhYyBjdWMgdGhvbmcga2UgDQpkaWEgcGh1b25nIGRhIHRpbmgg dG9hbiB2YSBpbiBzYWNoIG5odW5nIG5hbSB0cnVvYyBraGEgbmhpZXUhIFRoYW5oIHJhLCBtb2kg bmd1b2kgZGV1IA0KdnVpIHZlLCBtYSB0aHVjIHRlIGN1b2Mgc29uZyB0aHVjIGxhaSBsYSB2YW4g ZGUga2hhYyAodHV5IGNvIGNhaSB0aGllbiwgbmh1bmcga2hvbmcgaG9hbiANCnRvYW4gbmh1IHZh eSkhIENhYyBzbyBsaWV1IHRpbmggY2hvIHZ1bmcgY3VuZyB0aHVvbmcgYmkgdGluaCBjYW8gaG9u IGNhIG51b2MgMS0yJSwgDQpjdW5nIGdheSBraG8ga2hhbiBjaG8gY29uZyB0YWMgcXV5IGhvYWNo IGNodW5nLg0KDQpEaWV1IGxhIGx1bmcgZG9pIHZvaSB0aG9uZyBrZSB2ZSBuZ3VvbiB2b24gbmdh biBzYWNoLiBOaHVuZyBuYW0gdHJ1b2MgdGhvbmcga2UgbmdhbiANCnNhY2ggY2FjIHRpbmggdGhh cCBob24gY2EgbnVvYyBsYSBkaWV1IGRlIGhpZXUsIHZpIG5nYW4gc2FjaCB0cnVuZyB1b25nIGNv biBjbyBuaHVuZyANCmtob2FuIGNoaSBraGFjLCBraG9uZyB0aW5oIGhldCBtb3Qgc28ga2hvYW4g Y2hpIGtob25nIGdvcCB2YW8gc28gbGlldSBjdWEgZGlhIGJhbi4NCg0KTmh1bmcgdHUgbWF5IG5h bSBuYXksIHRvbmcgc28gdm9uIGN1YSBuZ2FuIHNhY2ggZGlhIHBodW9uZyBsYWkgY2FvIGhvbiBj dWEgY2EgbnVvYyANCnRoaSBraG9uZyB0aGUgZ2lhaSB0aGljaCBkdW9jLCB2aSBkYXUgY28gdGhl IHRvbmcgY2hpIHRyZW4gZGlhIGJhbiBjYWMgdGluaCBsYWkgY2FvIGhvbiBjYSANCm51b2M/IFNh aSB0dSB0cnVuZyB1b25nIGhheSBjYWMgZGlhIHBodW9uZy4gQ28gdGhlIG8gdHJ1bmcgdW9uZyBj aHVhIHRpbmggbW90IHNvIA0Ka2hvYW4sIGhheSBkaWEgcGh1b25nIHRpbmggdHJ1bmc/IFZheSBu ZW4gY2hhbmcgY28gbmh1bmcgbm8gbHVjIGxvbiBob24gZGUga2hhYyBwaHVjIA0KdGluaCB0cmFu ZyBkYSBiaWV0IG5oaWV1IG5hbSBuYXkhDQoNClRyb25nIEhlIHRob25nIHRhaSBraG9hbiBxdW9j IGdpYSB0aGkgbmd1eWVuIHRhYyB0aHVvbmcgdHJ1IHZhIGtob25nIHRodW9uZyB0cnUgbGEgbW90 IA0Kbmd1eWVuIHRhYyBxdWFuIHRyb25nIGRlIHhhYyBkaW5oIHBoYW0gdmkgY3VhIGNoaSB0aWV1 IEdEUC4gVHJvbmcgY3VvbiBTTkEgY2hpbmggDQp0aHVjIHh1YXQgYmFuIGJvaSBMaWVuIGhpZXAg cXVvYyBraG9uZyBkZSBjYXAgZGVuIEdEUCB0aW5oLCB0dXkgbmhpZW4gbW90IHNvIG51b2MgDQpk YW5nIHBoYXQgdHJpZW4gdmFuIHRpbmggdG9hbiBjaGkgdGlldSBuYXkgbyBjYXAgdGluaC4NCg0K VGh1YyByYSwgY28gdGhlIHRpbmggdG9hbiBjaGkgdGlldSB0b25nIGdpYSB0cmkgZ2lhIHRhbmcg dHJvbmcgZGlhIGJhbiB0aW5oICh0aHVvbmcgZ29pIGxhIA0KR1JQIChncm9zcyByZWdpb25hbCBw cm9kdWN0KSBob2FjIEdSRFAgKGdyb3NzIHJlZ2lvbmFsIGRvbWVzdGljIHByb2R1Y3QpLCBvIHRh IHRoaSB2YW4gDQpnb2kgbm9tIG5hIGxhIEdEUCB0aW5oKS4NCg0KQ2hhbmcgaGFuIG1vdCBjb25n IHR5IHZhbiBwaG9uZyBkb25nIHRhaSBUUEhDTSwgc2FuIHh1YXQgbyBCaW5oIER1b25nIHZhIHh1 YXQgDQpraGF1IHF1YSBjYW5nIENhbiBUaG8gdGhpIFRQSENNIGNoaSBkdW9jIHRpbmggcGhhbiBn aWEgdHJpIHRhbmcgdGhlbSBjdWEgY2FpIHZhbiANCnBob25nIGRvbmcgdHJlbiBkaWEgYmFuIHRo YW5oIHBobywgcGhhbiBnaWEgdHJpIHRhbmcgdGhlbSBjdWEga2hhdSBzYW4geHVhdCBwaGFpIHRp bmggDQpjaG8gQmluaCBEdW9uZywgdmEgeHVhdCBraGF1IHRhaSBjYW5nIENhbiBUaG8gbmh1bmcg Y3VuZyBwaGFpIHRpbmggY2hvIEJpbmggRHVvbmcgDQp2aSBzYW4gcGhhbSBkdW9jIHNhbiB4dWF0 IG8gQmluaCBEdW9uZy4NCg0KTmh1bmcgdmFuIGRlIG5heSB0aHVjIHJhIGRhIGR1b2MgY28gcXVh biB0aG9uZyBrZSB0cnVuZyB1b25nIGdpYWkgcXV5ZXQgdmUgbWF0IA0Kbmd1eWVuIHRhYyB2YSBj YSB2YW4gZGUgc28gbGlldSB0aG9uZyBxdWEgZGlldSB0cmEgZG9hbmggbmdoaWVwIGhhbmcgbmFt LiBOZ3V5ZW4gdGFjIA0KbmF5IGN1bmcgZHVvYyBUb25nIGN1YyBUaG9uZyBrZSBodW9uZyBkYW4g Y2hvIGNhYyBjdWMgdGhvbmcga2UgY2FjIHRpbmgvdGhhbmggcGhvIA0KdGh1YyBoaWVuLiBOaHVu ZyB0aHVjIHRlIHRoaSBzYWkgc28gdmFuIGN1IGRpZW4gcmEuDQoNCkdoaSBjaHU6IE5odW5nIHNv IGxpZXUgdHJvbmcgYmFpIHZpZXQgbmF5IGR1b2MgbmhvbSB0YWMgZ2lhIHRpbmggdG9hbiB0dSB0 aG9uZyBrZSBjaGluaCANCnRodWMgY3VhIDYzIHRpbmgsIHRoYW5oIHRyb25nIDEwIG5hbSBxdWEs IDE5OTktMjAwOS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDQzLzIwMTAxMDIzMjM1MTE5LmFzcHggQW5oIFZ1IDIzLzEwLzIwMTAgMjM6NTEgDQoNClRodSB0 dW9uZzogQ2hpIHNvIGdpYSB0aWV1IGR1bmcgMTAgdGhhbmcgdGFuZyA3LDU4JSAgDQogIA0KVGhl byBzbyBsaWV1IGNvbmcgYm8gY3VhIFRvbmcgY3VjIFRob25nIGtlIGhvbSBxdWEgMjMuMTAsIGNo aSBzbyBnaWEgdGlldSBkdW5nIHRoYW5nIA0KMTAgdGFuZyAxLDA1JSBzbyB2b2kgdGhhbmcgOSB2 YSAxMCB0aGFuZyB0YW5nIDcsNTglIHNvIHZvaSBjdW9pIHRoYW5nIDEyLjIwMDkuIA0KDQpOaG9t IGdpYW8gZHVjIHRpZXAgdHVjIHh1IHRoZSB0YW5nIHRyb25nIHRoYW5nIDkgdm9pIG11YyAzLDkl LCB0cm8gdGhhbmggInRodSBwaGFtIiANCmNoaW5oIGRheSBjaGkgc28gZ2lhIHRhbmcgY2FvLiBE byBjaGl1IGFuaCBodW9uZyBjdWEgbXVhLCBsdSB2YSBkaWNoIGJlbmgsIG5ob20gaGFuZyANCmx1 b25nIHRodWMsIHRodWMgcGhhbSBjbyBzdWMgdGFuZyBraGEgbWFuaCAxLDMyJSwgZHVuZyB0aHUg aGFpIHRyb25nIHJvIGhhbmcsIHRyb25nIGRvIA0KbmhvbSBoYW5nIGx1b25nIHRodWMgdGFuZyBt YW5oIG5oYXQgMSw4OSUuIFRpZXAgZGVuIG5ob20gbmhhIG8sIHZhdCBsaWV1IHhheSBkdW5nIA0K KHRpZW4gdGh1ZSBuaGEsIGRpZW4sIG51b2MuLi4pIHRhbmcgMSwwNCUuIENoaSBzbyBnaWEgdGll dSBkdW5nIHRyb25nIHRoYW5nIDEwIGdoaSBuaGFuIA0KZHV5IG5oYXQgbmhvbSBidXUgY2hpbmgg dmllbiB0aG9uZyBnaWFtIDAsMDclIHNvIHZvaSB0aGFuZyB0cnVvYyBkby4gIA0KDQpDdW5nIHRo ZW8gc28gbGlldSBjdWEgVG9uZyBjdWMgVGhvbmcga2UsIHRyb25nIHRoYW5nIDEwIGdpYSB2YW5n IHRhbmcgNyw4NyUgdmEgZ2lhIFVTRCB0YW5nIDAsNiUgc28gdm9pIHRoYW5nIDkuIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMjIwMDI0NTEu YXNweCBNLlBodW9uZyAtIE4uVC5UYW0gMjIvMTAvMjAxMCAwOjI0IA0KDQpUaHUgdHVvbmc6IEdp YSB0aWVwIHR1YyB0YW5nIGNhbyEgIA0KICANCihBbmg6IEdpYSBuaGlldSBtYXQgaGFuZyBuaHUg dGhlcCB4YXkgZHVuZywgZ2FzLC4uLiBzZSB0YW5nIGdpYSBiYW4gdHJvbmcgbmh1bmcgbmdheSB0 b2kgLSBBbmg6IEQuRC5NKSANCg0KQ2hpIHRyb25nIHZvbmcgMSB0aGFuZyB0cm8gdmUgZGF5LCBn aWEgVVNEIGRhIHRhbmcgMyw1JSB2YSB0aW4gZG9uIHR5IGdpYSB0aWVwIHR1YyB0YW5nIA0KZGFu ZyBsYW4gcm9uZyB0cmVuIHRoaSB0cnVvbmcga2hpZW4gZ2lhIGNhIGNhYyBtYXQgaGFuZyB2YXQg bGlldSB4YXkgZHVuZywgaGFuZyBob2EgdGlldSANCmR1bmcsIGhhbmcgbmhhcCBraGF1IHRhbmcg bWFuaC4uLiBDb25nIHRoZW0gYXAgbHVjIHRhbmcgZ2lhIGN1b2kgbmFtLCBuZ3VvaSB0aWV1IGR1 bmcgDQpsYWkgZG9pIG1hdCB2b2kgbm9pIGxvIGdpYSBjYSB0YW5nIHZ1biB2dXQuIA0KDQpUaGVw LCB4aSBtYW5nLCBnYXMgZGV1IHRhbmcgDQoNCk9uZyBEbyBEdXkgVGhhaSwgVG9uZyBnaWFtIGRv YyBDb25nIHR5IHRoZXAgVmlldCwgY2hvIGJpZXQgZ2lhIHRoZXAgcGhlIGxpZXUgaGllbiANCmto b25nIGJpZW4gZG9uZyBuaGlldSBuaHVuZyBjbyB0aGUgdHJvbmcgdmFpIG5nYXkgdG9pLCBjb25n IHR5IHNlIHBoYWkgdGFuZyBnaWEgdGhlcCBjYXkgDQpraG9hbmcgMjAwLjAwMCBkb25nL3RhbiBi b2kgZ2lhIFVTRCBkYSB0YW5nIHJhdCBtYW5oIHRyb25nIG5odW5nIG5nYXkgcXVhLiBUdXkgDQpu aGllbiwgdmllYyBkaWV1IGNoaW5oIG5heSBjaGkgZHVvYyB0aHVjIGhpZW4gdHVuZyBidW9jIGRl IHRyYW5oIGdheSBzb2MgY2hvIHRoaSB0cnVvbmcuIA0KSGllbiB0YWksIG1vaSB0aGFuZywgVGhl cCBWaWV0IHBoYWkgbmhhcCBraGF1IHRoZXAgcGhlIGxpZXUgZGUgbHV5ZW4gcGhvaSB2b2kgdHJp IGdpYSB0dSANCjMwIC0gNTAgdHJpZXUgVVNELiBWb2kgZ2lhIFVTRCB0YW0gdGluaCAyMC4yMDAg ZG9uZy9VU0QgdmFvIG5nYXkgMjEuMTAsIG1vaSB0aGFuZyANClRoZXAgVmlldCBwaGFpIHRyYSB0 aGVtIHR1IDIxIC0gMzUgdGkgZG9uZy4gTmh1bmcgZGF5IHZhbiBjaHVhIHBoYWkgdHJhbSBkdW5n IGNoYW4gY3VvaSBjdW5nIGN1YSBnaWEgdGhlcCB0dSBuYXkgZGVuIGN1b2kgbmFtIGJvaSB0aGVv IG9uZyBUaGFpIGR1IGJhbywga2hhIG5hbmcgY29uIGNvIA0KdGhlbSBuaHVuZyBkb3QgZGlldSBj aGluaCBnaWEgYmFuIG51YS4NCg0KR2lhbSBkb2MgbW90IGNvbmcgdHkgeGkgbWFuZyB0YWkgVFAu SENNIGN1bmcgY2hvIGJpZXQgZHUga2llbiBzZSBwaGFpIHRhbmcgZ2lhIGJhbiByYSANCmtob2Fu ZyAzMC4wMDAgZG9uZy90YW4uIE5nb2FpIHJhIGNvbmcgdHkgcGhhaSBjYXQgZ2lhbSBtdWMgY2hp ZXQga2hhdSBjdWEgY2FjIG5oYSANCnBoYW4gcGhvaS4gVHVvbmcgdHUsIGNhYyBkb2FuaCBuZ2hp ZXAgKEROKSBuZ2FuaCBnYXMgY3VuZyBkYW5nIGR1bmcgdHJ1b2MgYmFpIHRvYW4gDQpnaWEgYmFu LiBUaGVvIG9uZyBEbyBUcnVuZyBUaGFuaCwgUGhvIHBob25nIEtpbmggZG9hbmggQ29uZyB0eSBT YWlnb24gUGV0cm8sIHRpbmggDQpkZW4gdGhvaSBkaWVtIGhpZW4gdGFpIGdpYSBnYXMgdGhlIGdp b2kgZGEgdGFuZyB0aGVtIDQwIFVTRC90YW4gc28gdm9pIGdpYSBnYXMgbmhhcCB2YW8gDQpkYXUg dGhhbmcgMTAuIFZhIG5odSB2YXkgZ2lhIGJhbiBnYXMgdHJvbmcgbnVvYyBwaGFpIHRhbmcgdGhl bSB0b2kgdGhpZXUgMTAuMDAwIA0KZG9uZy9iaW5oIDEyIGtnLiBCZW4gY2FuaCBkbywgbmV1IG5o dSB0cm9uZyB2YWkgbmdheSB0b2kgRE4gdmFuIHBoYWkgbXVhIFVTRCB2b2kgZ2lhIA0KY2FvIHRo aSBraGEgbmFuZyBnYXMgYmFuIHJhIHRyb25nIHRoYW5nIDExIGJ1b2MgcGhhaSB0YW5nIGdpYS4g DQoNCkRhdSBkYXUgdm9pIGJhaSB0b2FuIGdpYQ0KDQpLaG9uZyB0YW5nIGtob25nIGR1b2Mgbmh1 bmcgdGFuZyBnaWEgdGhpIGFuaCBodW9uZyB0b2kgbHVvbmcgdGlldSB0aHUuIERvIGxhIGx5IGRv IGNhYyANCkROIG5oYXAga2hhdSBkZXUgdGhhbiBraG8uIFRyZW4gdGh1YyB0ZSwgbmh1IGNhdSB0 aWNoIGx1eSBuZ3V5ZW4gbGlldSBkZSBzYW4geHVhdCwgdGljaCANCmx1eSBoYW5nIGhvYSBjaHVh biBiaSBjaG8gbXVhIGNhbyBkaWVtIGN1b2kgbmFtIGNhbmcgZGVuIGdhbiB0aGkgbmhpZXUgbG9h aSBjaGkgcGhpIA0KZGF1IHZhbyBjYW5nICBjbyB4dSBodW9uZyB0YW5nIGtoaWVuIGFwIGx1YyB0 YW5nIGdpYSBuZ2F5IGNhbmcgY2FvLiBPbmcgUGhhbSBUcnVuZywgDQpQaG8gdG9uZyBnaWFtIGRv YyBDb25nIHR5IENQIFRhcCBkb2FuIEhvYSBTZW4gY2hvIGJpZXQsICA5MCUgbmd1eWVuIGxpZXUg ZGF1IHZhbyANCmN1YSBjb25nIHR5IGxhIG5oYXAga2hhdSB2YSB0cmEgYmFuZyBVU0QuIENoaSB0 aW5oIHJpZW5nIGNoZW5oIGxlY2ggdHkgZ2lhIHR1IHRoYW5nIA0KMTAuMjAwOSAtIDkuMjAxMCBj b25nIHR5IG5heSBkYSBtYXQgZ2FuIDIwMCB0aSBkb25nLiBNYWMgZHUgdmF5LCB0cm9uZyBkaWV1 IGtpZW4gaGllbiANCm5heSBraG9uZyBkZSBnaSB0YW5nIGdpYSBiYW4uIFZpIGR1LCB2dWEgcXVh IGtoaSBVU0QgdGFuZyAzJSwgSG9hIFNlbiBkYSB0aHUgdGFuZyBnaWEgDQpiYW4gMSUgdmEgZHUg a2llbiB0YW5nIHRpZXAgMSUgdmFvIHRoYW5nIHRpZXAgdGhlbyBuaHVuZyBzYW4gbHVvbmcgYmFu IHJhIGdpYW0gc3V0IG5lbiANCmNvbmcgdHkgZGFuaCB0dSBibyBrZSBob2FjaCB0YW5nIGdpYS4g TmdvYWkgcmEgdGhlbyBvbmcgVHJ1bmcsIHZpZWMgbmhhcCBraGF1IG1heSBtb2MgDQpjdW5nIGto aWVuIG5oaWV1IG5ndW9pIGtob24gZG9uLiBDYWMgbG9haSBtYXkgbW9jLCBETiBwaGFpIG1hdCAy IC0gMyBuYW0gbGFwIHJhcCBtb2kgDQpob2FuIHRoYW5oIHZhIGR1YSB2YW8gc3UgZHVuZy4gVHJv bmcga2hvYW5nIHRob2kgZ2lhbiBjaHVhIHZhbiBoYW5oIGRvLCBETiBjdW5nIHBoYWkgDQp0cmEg Y2hlbmggbGVjaCB0eSBnaWEgdGllbiBVU0QgYm9pIGRvIGxhIHZvbiB2YXkgbmdhbiBoYW5nLiAi RE4gZGFuZyBjdWMga3kga2hvIGtoYW4gDQp0cm9uZyBsdWMgbmF5LCB0YW5nIGdpYSBiYW4gdGhp IHNvICJyb3QiIHNhbiBsdW9uZywgY29uIGtob25nIHRhbmcgdGhpIGxvIG5hbmciLCBvbmcgVHJ1 bmcgDQpwaGF0IGJpZXUuIFR1b25nIHR1LCBtb3Qgc28gc2lldSB0aGkgdGFpIFRQLkhDTSBjaG8g YmlldCBjaHVhIHRoYXkgY2FjIG5oYSBwaGFuIHBob2kgDQp0aG9uZyBiYW8gdGFuZyBnaWEgYmFu LiBUdXkgbmhpZW4gY28gdGhlIHR1IG5heSBkZW4gY3VvaSBuYW0sIG1vdCBzbyBzYW4gcGhhbSBu aGFwIA0Ka2hhdSBraG8gdHJhbmgga2hvaSB2aWVjIHRhbmcgZ2lhIGRvIGFwIGx1YyB2ZSB0eSBn aWEgbmdvYWkgdGUgY3VuZyBuaHUgY2FjIGNoaSBwaGkgdmFuIA0KY2h1eWVuLCBuaGFuIGNvbmcs Li4uIGRldSBjbyB4dSBodW9uZyBuaGljaCBsZW4uIA0KDQpDaHV5ZW4gZ2lhIGtpbmggdGUgTGUg RGFuZyBEb2FuaCBuaGFuIGRpbmgsIGN1b2kgbmFtIGxhIHRob2kgZGllbSBuaGlldSBraG9hbiB0 aW4gDQpkdW5nIGJhbmcgbmdvYWkgdGUgcGhhaSB0YXQgdG9hbiwgbmh1IGNhdSB0aGFuaCB0b2Fu IGJhbmcgbmdvYWkgdGUgY3VuZyB0YW5nIGxlbi4uLiwgY29uZyANCnZvaSB0eSBnaWEgdGFuZywg c2UgZ2F5IGFwIGx1YyBsb24gZGVuIGN1bmcgY2F1LiBWb2kgbXVjIHRhbmcgY2hvbmcgbWF0IGN1 YSB0eSBnaWEgVVNEIA0Kbmh1IGhpZW4gbmF5IGNoYWMgY2hhbiBzZSBnYXkgYXAgbHVjIGxvbiBs ZW4gY2hpIHNvIGdpYSB0aWV1IGR1bmcgKENQSSkgbmh1bmcgdGhhbmcgY3VvaSANCm5hbS4gIkdp YSBnaWFvIGRpY2ggdGhpIHRydW9uZyB0dSBkbyBzZSBhbmggaHVvbmcgZGVuIGdpYSBnaWFvIGRp Y2ggY2h1bmcgY3VhIGhlIHRob25nIA0KbmdhbiBoYW5nLiBUaGVvIHRvaSwgZ2lhIGNhYyBtYXQg aGFuZyBuaGFwIGtoYXUgc2FwIHRvaSBkYXkgc2UgdGFuZyBtYW5oIiwgb25nIERvYW5oIA0KYmlu aCBsdWFuLiBRdWFuIGRpZW0gY3VhIG9uZyBEb2FuaCBsYSwgZGUgdHJhbmggZGllbiBiaWVuIHBo dWMgdGFwIGN1YSBDUEkgbmh1bmcgDQp0aGFuZyBjdW9pIG5hbSwgZGlldSB0cnVvYyB0aWVuIHBo YWkgY2FuIGRvaSBjdW5nIGNhdS4gDQoNClRyb25nIG1vdCBraGFvIHNhdCBkbyBOZ2FuIGhhbmcg SFNCQyBjb25nIGJvIG5nYXkgMjAuMTAsIDc4JSAoc28gdm9pIDUyJSBudWEgZGF1IA0KMjAxMCkg RE4geHVhdCBuaGFwIGtoYXUgVk4gY2hvIHJhbmcgYmllbiBkb25nIHR5IGdpYSBzZSBtYW5nIGRl biBuaGlldSBraG8ga2hhbiANCm5oYXQgY2hvIHRhbmcgdHJ1b25nIHh1YXQgbmhhcCBraGF1LiA2 NiUgKHNvIHZvaSA1MyUgbnVhIGRhdSAyMDEwKSBETiBub2kgdHkgZ2lhIA0KbmdvYWkgaG9pIHNl IGNvIHRhYyBkb25nIHRpZXUgY3VjIGxlbiBob2F0IGRvbmcga2luaCBkb2FuaCBjdWEgaG8gdHJv bmcgNiB0aGFuZyB0b2k7IGNoaSANCjklIG5oYW4gZGluaCB0aWNoIGN1Yy4gVmUgcmFvIGNhbiBj aHUgeWV1IHRvaSBjb25nIHRhYyB4dWF0IG5oYXAga2hhdSwga2hhbyBzYXQgY3VuZyANCmtoYW5n IGRpbmggYmllbiBkb25nIHR5IGdpYSBnYXkgbmhpZXUga2hvIGtoYW4gbmhhdCAoNzElIHNvIHZv aSA0OCUgbnVhIGRhdSAyMDEwKS4gDQoNCi0NCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1l c2UvdmlldG5hbS8yMDEwLzAyLzEwMDIwOV90aGVhZ2Vfc2VjdXJlbmN5LnNodG1sIDA2OjI0IEdN VCA5LTItMjAxMCANCiANCkNhbyBidW9jIG1vaSB2dSBTZWN1cmVuY3kgDQoNCiJMdW9uZyBOZ29j IEFuaCBjbyBxdWFuIGhlIHRoYW4gY2FuIHZvaSBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHR1 IGhvaSBvbmcgRHVuZyBjb24gZ2l1IGNodWMgVGhvbmcgZG9jIE5nYW4gaGFuZyBOaGEgbnVvYy4i DQoNCmh0dHA6Ly93d3cudmlldG5ldGNlbnRlci5jb20vY29udGVudC92aWV3LzI2MTEwLzU3LyAy Ni8wNS8yMDA5IGx1YyAwMzo1NSAoVGhlbyBCQkMgVmlldG5hbWVzZSkNCg0KVnUgdGllbiBwb2x5 bWVyOiAnMTAgdHJpZXUgQVVEJyB2YW8gdGFpIGtob2FuIFRodXkgU2kgDQoNClZ1YSBjbyB0aGVt IHRpZXQgbG8gbW9pIGxpZW4gcXVhbiBkZW4gc28gdGllbiB0cmFvIHRheSBkb2kgdGFjIFZpZXQg TmFtIHR1IGNvbmcgdHkgDQpTZWN1cmVuY3kgY3VhIFVjLiBDYW5oIHNhdCBsaWVuIGJhbmcgVWMg eGFjIG5oYW4gdm9pIE5nYW4gaGFuZyBUcnVuZyB1b25nIG51b2MgbmF5IA0KcmFuZyBobyBkYW5n IGRpZXUgdHJhIGNhbyBidW9jIGNvbmcgdHkgY3VuZyBjYXAgdmF0IGxpZXUgaW4gdGllbiBwb2x5 bWVyIFNlY3VyZW5jeSANCmN1YSBVYyAnaG9pIGxvJyBkb2kgdGFjIFZpZXQgTmFtIGRlIGdpYW5o IGhvcCBkb25nLg0KDQpCYW8gVGhlIEFnZSBzbyByYSB0YWkgTWVsYm91cm5lIG5vaSBTZWN1cmVu Y3kgZGEgdHJhIGNhYyBraG9hbiB0aWVuIGhvYSBob25nIGxvbiwgDQppdCBuaGF0IDEwIHRyaWV1 IEFVRCwgdmFvIHRhaSBraG9hbiBuZ2FuIGhhbmcgVGh1eSBTaSBjdWEgY29uZyB0eSBLeSB0aHVh dCB2YSBQaGF0IHRyaWVuLCBDRlRELCB0cnUgc28gdGFpIEhhIE5vaS4NCg0KVGluIG5vaSByYW5n IGNvbmcgdHkgQ0ZURCBjbyBjb25nIHR5IGNvbiBsYSBCYW5rVGVjaCwgbWEgb25nIExlIER1YyBN aW5oLCBjb24gdHJhaSANCmN1YSBjdXUgdGhvbmcgZG9jIG5nYW4gaGFuZyBuaGEgbnVvYyBWaWV0 IE5hbSBMZSBEdWMgVGh1eSwgbGFtIGdpYW0gZG9jLg0KDQpUaGVvIFRoZSBBZ2UsIGJhbmcgY2Fj aCBiYXQgbW9pIHZvaSBtb3QgY29uZyB0eSB0cm9uZyBudW9jLCBub2kgY28gY29uIGN1YSBjdXUg DQp0aG9uZyBkb2MgTmdhbiBoYW5nIE5oYSBudW9jIFZpZXQgTmFtIGxhbSB2aWVjLCBuYW0gMjAw MiBTZWN1cmVuY3kgZGEgZ2lhbmggZHVvYyANCmhvcCBkb25nIGluIHRpZW4gcG9seW1lciBjaG8g TmdhbiBoYW5nIG5oYSBudW9jIFZpZXQgTmFtLg0KDQpOZ2FuIGhhbmcgdHJ1IGtpbSBVYywgUkJB LCBzbyBodXUgbW90IG51YSBTZWN1cmVuY3ksIGNvbmcgdHkgY2h1eWVuIGxhbSB2YXQgbGlldSAN CmluIHRpZW4gcG9seW1lciB0cnUgc28gdGFpIE1lbGJvdXJuZS4gSGllbiBjb25nIHR5IG5heSBj dW5nIGNhcCBuZ3V5ZW4gbGlldSBsYW0gdGllbiBwb2x5bWVyIGNobyAyNiBxdW9jIGdpYS4NCg0K Q2FuaCBzYXQgbGllbiBiYW5nIFVjIGRhbmcgZGlldSB0cmEgU2VjdXJlbmN5IHZlIGNhYyBraG9h biB0aWVuIGhvIHRyYSBjbyBxdWFuLCANCmhheSBjYSBuaGFuIG51b2MgbmdvYWkgbmhhbSBraWVt IGhvcCBkb25nIGluIHRpZW4uDQoNCkRpZXUgdHJhIGN1YSBiYW8gVGhlIEFnZSBjaG8gdGhheSBt b3Qgc28gZG9pIHRhYyBjdWEgU2VjdXJlbmN5IG8gbnVvYyBuZ29haSBkYW5nIA0KYmkgbnVvYyBz byB0YWkgZGlldSB0cmEgdmUgdGhhbSBuaHVuZy4gQ3VuZyBjbyBjYW8gZ2lhYyBTZWN1cmVuY3kg ZGEgdHJhIHRpZW4gaG9hIA0KaG9uZyBjaG8gJ2RhaSBseScgdmFvIHRhaSBraG9hbiBuZ2FuIGhh bmcgdGFpIHF1b2MgZ2lhIGhvYXQgZG9uZyB0aGVvIG5ndXllbiB0YWMgYmFvIG1hdCB2YSBtaWVu IHRodWUuDQoNClRoZSBBZ2UgbGFwIGx1YW4gdmllYyBTZWN1cmVuY3kgZHVuZyBjYWMga2hvYW4g aG9hIGhvbmcgbG9uLCB0cmEgY2hvIGRhaSBseSAnZ2lhbyANCmRpY2gnIHRhaSBjYWMgcXVvYyBn aWEgZHVvYyBiaWV0IGRlbiB2b2kgdmFuIG5hbiB0aGFtIG5odW5nIGRhIGxhbSB4dWF0IGhpZW4g Y2FvIA0KYnVvYyBjb25nIHR5IGR1bmcgdGllbiBob2kgbG8gZGUgZ2lhbmggaG9wIGRvbmcgbGFt IGFuLg0KDQpMdWF0IHN1IEx1dSBUdW9uZyBRdWFuZyBjdXUgdmllbiBjaHVjIGNoaW5oIHBodSBV YywgaGllbiBkYW5nIGN1IG5ndSB0YWkgU3lkbmV5IA0KY2hvIHJhbmcgbHVhdCBjaG9uZyB0aGFt IG5odW5nIGN1YSBVYyByYXQgY2hhdCwgdmEgY2h1bmcgY28gZHUgdGhhbSBxdXllbiBkaWV1IHRy YSBoYW5oIHZpIGN1YSBjb25nIHR5IFVjIG8gbnVvYyBuZ29haS4NCg0KIkx1YXQgY2hvbmcgdGhh bSBuaHVuZyBjdWEgVWMgcmF0IGNoYXQgY2hlLiBObyBjbyBxdXkgZGluaCB0cm9uZyBoaW5oIGx1 YXQsIA0KY3JpbWluYWwgYWN0LCBjdWEgbGllbiBiYW5nIHZhIGN1YSBjYWMgdGlldSBiYW5nLiBE aWVtIHRodSBoYWkgdHJvbmcgY2FjIGx1YXQgDQpsZSB2ZSBzaW5oIGhvYXQgdGFpIGNoYW5oIHZh IGdpYW8gZGljaCBuZ2FuIGhhbmcsIGNodSBkZSB0cm9uZyBzYW5nLCB0aGVvIGR1bmcgDQp0aHUg dGh1YXQgY3VhIGx1YXQgcGhhcCBkdW9jIHF1eSBkaW5oIG1vdCBjYWNoIHJhdCBybyByYW5nLiIN Cg0KT25nIFF1YW5nLCB0dW5nIGxhIGN1dSBnaWFtIGRvYyBoZSB0aG9uZyBSYWRpbyBTQlMgY3Vh IFVjLCBub2kgZGVuIHN1IG5vaSBkYWkgcmEgDQpoYWkgbmdvYWkgYm8gbHVhdCBjaG9uZyB0aGFt IG5odW5nIGN1YSBVYy4NCg0KIk1hYyBkYXUgdmllYyBsYW0gY3VhIGNvbmcgdHkgU2VjdXJlbmN5 LCBuZXUgZHVvYyBjaHVuZyBtaW5oLCBubyBjbyB0aGUgeGF5IHJhIG8gDQpudW9jIG5nb2FpIG5o dW5nIGx1YXQgbGUgY3VhIFVjIHZhbiBhcCBkdW5nIHRyb25nIHRydW9uZyBob3AgbmF5LiBMdWF0 IGN1YSBVYyBraG9uZyANCm5odW5nIGFwIGR1bmcgY2hvIHZpZWMgbGFtIGJlbiB0cm9uZyBudW9j IFVjIG1hIGNvbiBiZW4gbmdvYWkgbGFuaCB0aG8gVWMsIGxpZW4gaGUgZGVuIG1vdCBjb25nIHR5 IGN1YSBVYy4iDQoNCkRhaSBseSBkYWkgZGllbg0KDQpUaGUgQWdlIHRyaWNoIGxvaSBNeWxlcyBD dXJ0aXMsIGdpYW0gZG9jIGRpZXUgaGFuaCBTZWN1cmVuY3ksIHhhYyBuaGFuIG1vaSBsaWVuIA0K aGUgZ2l1YSBTZWN1cmVuY3kgdmEgY29uZyB0eSBDRlRELCB0cnUgc28gdGFpIEhhIE5vaS4NCg0K IkhvYXQgZG9uZyBjdWEgQ0ZURCB0cm9uZyBnaWFpIGRvYW4gZGF1IGNoaSBsaWVuIHF1YW4gZGVu IHBoaWVuIGRpY2ggaG8gc28gZ2lheSANCnRvIHZhIGxhIGNhdSBub2kgbGllbiBsYWMgdm9pIE5n YW4gaGFuZyBOaGEgbnVvYyB0YWkgVmlldCBOYW0uIg0KDQpUcm9uZyBraGkgZG8gUm9uIE1hcmNo YW50IGdpYW0gZG9jIEEgY2hhdSBjdWEgU2VjdXJlbmN5IGNobyBiYW8gVGhlIEFnZSBiaWV0IA0K dGhlbSB2ZSBob2F0IGRvbmcgY3VhIENGVEQ6ICJIbyBsYW0gY2FjIGNvbmcgdmllYyBraGFjIG51 YS4gVmkgZHUgY2h1bmcgdG9pIA0KbXVvbiBjbyBjdW9jIGhvcCB2b2kgTmdhbiBoYW5nIE5oYSBu dW9jLiBIb2FjIHRvaSB0aGFtIHh1b25nIGluIHRpZW4sIGNodW5nIHRvaSBnb2kgZGllbiB2YSB5 ZXUgY2F1IGhvIGRhbiB4ZXAsIg0KDQoiUm9pIGhvIGRvbiBuZ3VvaSBvIHNhbiBiYXksIGRhdCBj aG8ga2hhY2ggc2FuLCB4aW4gY3VvYyBoZW4gY2hvIGNodW5nIHRvaSwgDQpuaHVuZyB0aHUgbWEg bW90IGRhaSBkaWVuIGhheSBsYW0uIg0KDQpPbmcgTWFyY2hhbnQgbm9pIHRoZW0gb25nIGtob25n IGdpYW8gZGljaCB2b2kgY29uIHRyYWkgY3VhIGN1dSB0aG9uZyBkb2MgTmdhbiANCmhhbmcgbmhh IG51b2MgVmlldCBOYW0uIFZhIGN1bmcga2hvbmcgYmlldCBCYW5rVGVjaCwgY29uZyB0eSBjb24g Y3VhIENGVEQNCg0KVHV5IG5oaWVuIFRoZSBBZ2UgY2hvIGhheSB0YWkgbGlldSBjdWEgQmFua1Rl Y2ggY28gaGFuZyBjaHUgbm9pIHJhbmcgU2VjdXJlbmN5IA0KbGEgbW90IHRyb25nIGNhYyBkb2kg dGFjIG51b2MgbmdvYWkgY3VhIGhvLiBCYW5rVGVjaCBjdW5nIGxhIGNvbmcgdHkgY3VuZyBjYXAg ZG9jIA0KcXV5ZW4gbmd1eWVuIGxpZXUgY2hvIGR1IGFuIHRpZW4gcG9seW1lciB0YWkgVmlldCBO YW0uDQoNCk5oaW4gY2h1bmcgbHVhdCBwaGFwIHRhaSBVYyBjaGF0IGNoZSwgdHJvbmcga2hpIGx1 YXQgbGUgY2FjIHF1b2MgZ2lhIGRhbmcgcGhhdCANCnRyaWVuIGRvaSBraGkgbG9uZyBsZW8sIGxh bSBzYW8gY29uZyB0eSBVYyB0cmFuaCBraG9pIGNhbSBkbyBibyB0aWVuICdib2kgdHJvbicgDQpt b2kgcXVhbiBoZSBkZSBraWVtIGhvcCBkb25nIGxhbSBhbj8NCg0KTHVhdCBzdSBMdXUgVHVvbmcg UXVhbmcgdGluIHJhbmcgY29uZyB0eSBVYyBjYW4gdHVhbiB0aGVvIG5ndXllbiB0YWMgaGFuaCB4 dSB0cm9uZyANCmdpYW8gZGljaCBjdWEgVG8gY2h1YyB0aHVvbmcgbWFpIHRoZSBnaW9pIFdUTy4N Cg0KIkxhcCBsdWFuIGN1YSBudW9jIFVjIGxhIHRhdCBjYSBjYWMgbnVvYyB0aGFuaCB2aWVuIGN1 YSB0byBjaHVjIHRodW9uZyBtYWkgcXVvYyB0ZSwgDQpXVE8sIGNhbiB0dWFuIHRodSBxdXkgZGlu aCBjdWEgV1RPLCB0cm9uZyBkbyBjbyBjYWMgY2h1IGRlIG5odSB0cm9uZyBzYW5nIHZlIGx1YXQg DQpwaGFwLCBhcCBkdW5nIGNoZSBkbyBwaGFwIHRyaSwgdmEgY2FjIGJpZW4gcGhhcCBjaG9uZyB0 aGFtIG5odW5nLCINCg0KIlVjIG11b24gZ2lhaSBxdXlldCB0aGFtIG5odW5nIHR1IG5vaSBubyBu byBkYW5nIHhheSByYSwgY2h1IGtob25nIGdpYWkgcXV5ZXQgYmFuZyANCmNhY2ggbGEgY2FjIHF1 b2MgZ2lhIHRhbiB0aWVuIHRoYXkgZG9pIGx1YXQgbGUgZGUgY2hhcCBuaGFuIHRodWMgdGUsIGxh IG11b24gbGFtIA0KZHVvYyB2aWVjLCBtdW9uIGRhdSB0dSwgbXVvbiB0cmFvIGRvaSB0aHVvbmcg bWFpIHRhaSBjYWMgcXVvYyBnaWEgZGFuZyB0aGVvIGNoZSBkbyANCmNvbmcgc2FuIHRoaSBwaGFp IGJvIGRpIGNhaSBwaGFuIHRyb25nIHNhbmcsIGNhaSBwaGFuIG5naGllbSBraGFjIGN1YSBsdWF0 IHBoYXAuIg0KDQpodHRwOi8vc2FpZ29uZWNoby5jb20vbWFpbi90aW50dWMvdGhvaXN1LzEzODMz LXYtaGktbC0xMC10cml1LW8tbGEtdWMtaW4tdGluLXBvbHltZXItZGluaC1jLWNoaW5oLXF1eW4t dmEtY29uZy1hbi12bi5odG1sICANCg0KRGlldSB0cmEgaGF5IGJhbyBjaGU/DQoNCmh0dHA6Ly9z YWlnb25lY2hvLmNvbS9tYWluL3RpbnR1Yy90aG9pc3UvMTM4MzMtdi1oaS1sLTEwLXRyaXUtby1s YS11Yy1pbi10aW4tcG9seW1lci1kaW5oLWMtY2hpbmgtcXV5bi12YS1jb25nLWFuLXZuLmh0bWwg IFRHOiBOZ3VvaSBWaWV0ICAzMC8xMC8yMDA5IDEwOjI2IA0KDQpWdSBob2kgbG8gMTAgdHJpZXUg ZG8gbGEgVWMgaW4gdGllbiBwb2x5bWVyICJkaW5oIiBjYSBjaGluaCBxdXllbiB2YSBjb25nIGFu IFZOIA0KDQpNRUxCT1VSTkUgKE5WKSAtIE1vdCBiYWkgdHJlbiBiYW8gVGhlIEFnZSBjdWEgVWMg aG9tIDMwIFRoYW5nIE11b2kgY2hvIGhheSwgb25nIA0KTHVvbmcgTmdvYyBBbmgsIHRvbmcgZ2lh bSBkb2MgY3VhIGNvbmcgdHkgUGhhdCBUcmllbiBDb25nIE5naGUgKENGVEQpIHRhaSBIYSBOb2ks IA0KZHVvYyBiYW8gbmF5IG5ldSByYSBuaHUgbW90IHRyb25nIG5odW5nIGNvbiBiYWkgbGFtIHRy dW5nIGdpYW4gY3VhIHZ1IGFuIGhvaSBsbyANCjEwIHRyaWV1IGRvIGxhIFVjIGRlIGluIHRpZW4g cG9seW1lciB0YWkgVmlldCBOYW0uIFRyb25nIGRvLCBvbmcgTHVvbmcgTmdvYyBBbmggDQpjb24g Y28gZGF1IGhpZXUgbGllbiBxdWFuIGRlbiBndW9uZyBtYXkgY29uZyBhbi4NCg0KTm9pIG1vdCBj YWNoIGtoYWMsIHZ1IGNoaWEgY2hhYyB0aWVuIGFuIGhvaSBsbyBkZSBuaGFwIGNhbmcgbWF5IG1v YywgbXVjIGluIHZhIA0KZ2lheSBuaHVhIHBvbHltZXIgaW4gdGllbiwga2hvbmcgcGhhaSBjaGkg Y28gYm8gY29uIG9uZyBMZSBEdWMgVGh1eSAoY3V1IHRob25nIA0KZG9jIE5nYW4gSGFuZyBOaGEg TnVvYyBWTikgbWEgY29uIGRpbmggdG9pIG5oaWV1IG5ndW9pIHZhIGNvIHF1YW4ga2hhYyBuaGF1 Lg0KDQpDaG8gbW90IHZ1IHRoYW0gbmh1bmcgbG9uLCBuZ3VvaSB0YSBoaWV1IHJhbmcsIGtob25n IG1vdCBxdWFuIGNodWMgbmFvIGN1YSBjaGUgDQpkbyBsYWkgYmFvIHBob2kgYW4gbW90IG1pbmgu IFRoZSBuYW8gY3VuZyBwaGFpIGNoaWEgY2hhYyB0cm9uZyBtb3QgbGllbiBtaW5oIA0KcXV5ZW4g bHVjIGRlIGJhbyB2ZSBsYW4gbmhhdSBuZXUgY28gY2h1eWVuIGdpIHhheSByYS4gRGF5IGxhIG1v dCB0cm9uZyBuaHVuZyANCmx5IGRvIHRhaSBzYW8gYWkgY3VuZyBiaWV0IHRoYW0gbmh1bmcgbGEg cXVvYyBuYW4gdGFpIFZpZXQgTmFtLCB0dSB0cmVuIHh1b25nIGR1b2ksIA0KbWEgdGkgbGUgdnUg dmllYyBsYWkgcmF0IG5obywgcmF0IGl0IGtoaSBiaSB0cnV5IHRvLg0KDQoqIEx1b25nIE5nb2Mg QW5oIGxhIGFpPyANCg0KQ2FuaCBzYXQgTGllbiBCYW5nIFVjIG5vaSBMdW9uZyBOZ29jIEFuaCwg VG9uZyBnaWFtIGRvYyBDRlRELCBsYSBtb3QgdHJvbmcgbmh1bmcgDQpuaGFuIHZhdCBjaGluaCBs YW0gdHJ1bmcgZ2lhbiBuaGFuIHRpZW4gaG9pIGxvIGRlIGluIHRpZW4gcG9seW1lciBvIFZOLiAo SGluaDogd2Vic2l0ZSBEQ1NWTikNCg0KTW9pIG5nYXkgMTAgVGhhbmcgTXVvaSwgMjAwOSwgYmFv IGRpZW4gdHUgIkRhbmcgQ29uZyBTYW4gVmlldCBOYW0iIChEQ1NWTikgY28gbW90IA0KYmFpIHZp ZXQgZGFpIGNhIG5nb2kgY3VvYyBkb2kgImFpIHRpbmggdmEgc3UgbmdoaWVwIiBjdWEgTHVvbmcg TmdvYyBBbmgsIDQ3IHR1b2kuIA0KTmF5IGJhbyBUaGUgQWdlIG8gYmVuIFVjIHZhY2ggcmEgY2hv IG5ndW9pIHRhIHRoYXkgbW90IEx1b25nIE5nb2MgQW5oIGtob25nIG1heSBsdW9uZyBoYW8uDQoN Ck5odW5nIGl0IG5oYXQsIGJhbiB0aW4gY3VhIGJhbyBkaWVuIHR1IERDU1ZOIGNobyB0aGF5IGNv bmcgdHkgQ0ZURCBsYW0gZGF1IG1vaSANCm11YSBzYW0gY2hvIG5oaWV1IGNvIHF1YW4ga2hhYyBu aGF1IGN1YSBjaGUgZG8gSGEgTm9pIGdvbSAiY3VuZyBjYXAgaGFuZyBob2EgZGljaCANCnZ1IGNv bmcgbmdoZSBjYW8gcGh1YyB2dSBjYWMgbHVjIGx1b25nIHZ1IHRyYW5nOyBUaW4gaG9jIHZpZW4g dGhvbmcgcGh1YyB2dSBuZ2FuaCANCm5nYW4gaGFuZywgdGFpIGNoaW5oLCB0aGFuaCB0b2FuIGRp ZW4gdHU7IE1heSBydXQgdGllbiB0dSBkb25nIChBVE0pOyBHaWFpIHBoYXAgDQpxdWFuIGx5IHRp ZW4gbWF0Li4uOyBUdSBkb25nIGhvYSB0cm9uZyBuZ2FuaCBkaWVuIHZhIGNvbmcgbmdoaWVwOyBO Z2hpZW4gY3V1IHZhIA0KcGhhdCB0cmllbiBjYWMgc2FuIHBoYW0gcGh1YyB2dSBjb25nIHRhYyBj aGllbiBkYXUgY3VhIGx1YyBsdW9uZyBhbiBuaW5oLCBraG9hIA0KaG9jIGhpbmggc3U7IERhaSBs eSBjaG8gY2FjIGhhbmcsIG5oYSBzYW4geHVhdCBsb24gdHJlbiB0aGUgZ2lvaSB0cm9uZyBuZ2Fu aCBuYW5nIA0KbHVvbmc7IEdpYW8gdGhvbmcgdmFuIHRhaTsgVGhpZXQgYmkgZGFjIGNodW5nLi4u Ig0KDQpDb25nIHR5IENGVEQgZG8gTHVvbmcgTmdvYyBBbmggbGFtIHRvbmcgZ2lhbSBkb2MsIHRo ZW8gYmFvIERDU1ZOLCBjbyAxMjAgbmd1b2kgDQpnb3Agdm9uICg0MDAgdGkgZG9uZykgdmEgZG9h bmggdGh1IGhhbmcgbmFtIGtob2FuZyAkMzAgdHJpZXUgZG8gbGEuIE5ldSBkYW5oIHNhY2ggDQpj byBkb25nIGN1YSBDRlREIGR1b2MgY29uZyBibyBjb25nIGtoYWkgY2hvIG1vaSBuZ3VvaSBiaWV0 LCBpdCBuaGF0LCBuZ3VvaSB0YSBjbyB0aGUgDQpoaWV1IGR1b2MgcGhhbiBuYW8gdmEgdGFpIHNh byBtb3QgY29uZyB0eSBuaHUgQ0ZURCBsYWkgdHJ1bmcgbmh1bmcgbW9uIHRoYXUgYmVvIGJvLg0K DQpCYWkgYmFvIHRyZW4gdG8gVGhlIEFnZSBuZ2F5IDMwIFRoYW5nIE11b2ksIDIwMDkgbm9pIEx1 b25nIE5nb2MgQW5oIHR1bmcgZHUgaG9jIG8gDQpVYyAoTW9uYXNoIFVuaXZlcnNpdHkpLCBkYXUg Y3UgbmhhbiB2YSBsYW0gbmhhbiB2aWVuIGNobyBtb3QgY29uZyB0eSBjdW5nIGNhcCB0cmFuZyBi aSBhbiBuaW5oIG8gVmljdG9yaWEuDQoNCk5ndW9pIFVjIGtob25nIHRoZSBuZ28gY29uIG5ndW9p IG5heSBjaGkgbW90IHRob2kgZ2lhbiBzYXUgbGFpIHRybyBuZW4gdm8gY3VuZyBnaWF1IA0KY28g dmEgdGhlIGx1YyBvIFZpZXQgTmFtLiBIbyBsYWkgY2FuZyBraG9uZyB0aGUgbmdvLCBtb3Qgbmdh eSBraWEsIG9uZyB0YSBsYWkgDQpsYSBtb3QgdHJvbmcgbmh1bmcgbmhhbiB2YXQgY2hpbmggeWV1 IGN1YSB2dSB0YWkgdGllbmcgaG9pIGxvIGluIGdpYXkgYmFjIG8gVmlldCBOYW0uDQoNClRoZW8g Y3VvYyBkaWV1IHRyYSBjdWEgYmFvIFRoZSBBZ2UsIDMgY28gcXVhbiBjdWEgY2hpbmggcGh1IFVj IG5naGkgbmdvIEx1b25nIE5nb2MgDQpBbmggZG9uZyB2YWkgdHJvIHRydW5nIGdpYW4gY2hpbmgg eWV1IG11YSBzYW0gdHJhbmcgYmkgbWF5IG1vYyBjaG8gQm8gQ29uZyBBbiwgdHUga2llbSBzb2F0 IGFuIG5pbmggZGVuIHRpbmggYmFvLg0KDQpPbmcgQW5oIHZhIGNvbmcgdHkgQ0ZURCBkYW5nIGJp IENhbmggU2F0IExpZW4gQmFuZyBVYyBkaWV1IHRyYSB2ZSBuaHVuZyBjYW8gYnVvYyANCmxhbSB0 cnVuZyBnaWFuIG5oYW4gdGllbiBob2kgbG8gdHUgY29uZyB0eSBjdW5nIGNhcCBnaWF5IG5odWEg cG9seW1lciwgY29uZyB0eSANClNlY3VyZW5jeSAobGllbiBkb2FuaCBVYy1BbmggUXVvYyB0cm9u ZyBkbyBOZ2FuIEhhbmcgVHJ1bmcgVW9uZyBVYyBuYW0gNTAlIHBoYW4gDQpodW4pIGNodXllbiBs YWkgY2hvIExlIER1YyBUaHV5IHZhIG5oaWV1IHF1YW4gY2h1YyBraGFjLg0KDQoqIEhvaSBsbw0K DQpOaHVuZyBnaSBkdW9jIHRpZXQgbG8gdHJvbmcgY3VvYyBkaWV1IHRyYSBjaG8gdGhheSBTZWN1 cmVuY3kgZGEgY2h1eWVuIGhvbiAkNSB0cmlldSANClVjIGtpbSBkZW4gbW90IHNvIHRydW9uZyBt dWMgbyBuZ29haSBxdW9jIGRpbmggdG9pIEx1b25nIE5nb2MgQW5oLiBEYXkgbGEgbW90IHRyb25n IA0Kbmh1bmcgYmFuZyBjbyBuZ2hpZW0gdHJvbmcgZGEgbGFtIGJvYyBsdWEgdG9hIG5oYSBOZ2Fu IEhhbmcgVHJ1bmcgVW9uZyBVYy4gQ0ZURCANCmRvbmcgdGhvaSBjdW5nIGRhIG5oYW4gZHVvYyBu aGlldSB0cmlldSBkbyBsYSB0dSBTZWN1cmVuY3kgbmh1IG1vdCBwaGFuIGN1YSB0aG9hIA0KdGh1 YW4gbXVhIGJhbiBtYSB0dSBkbywgbmhhIGNhbSBxdXllbiBWaWV0IE5hbSBkYSBkb2kgdHUgdGll biBnaWF5IHNhbmcgdGllbiBnaWF5IG5odWEuDQoNCkNhaSBraG9uIGtoZW8gY3VhIGRhbSB0aGFt IG5odW5nIG8gVmlldCBOYW0gbGEsIGhvIGx1b24gbHVvbiBuZ3V5IHRyYW5nIHRhdCBjYSBuaHVu ZyBoYW5oIGRvbmcgdGhhbSBuaHVuZyB2YSBhbiBob2kgbG8gZHVvaSBuaHVuZyBjYWkgYmluaCBw aG9uZyB2byBjdW5nIHR1IHRlLiBSaWVuZyB0cm9uZyB2dSBuYXksIG9uZyBMZSBEdWMgVGh1eSB0 dW5nIGhvcCBiYW8gY2EgbmdvaSB0aWVuIGdpYXkgbmh1YSBzZSBnaXVwIFZpZXQgTmFtIGRvaSBw aG8gbGFpIG5hbiB0aWVuIGdpYSAodGllbiBnaWF5KSB2byBjdW5nIHBobyBiaWVuLg0KDQpWaSBu Z2hpIG5nbyBjbyBtb2kgcXVhbiBoZSBkYWMgYmlldCB2b2kgbmhhIGNhbSBxdXllbiB0cnVuZyB1 b25nIGN1YSBMdW9uZyBOZ29jIEFuaCANCnZvaSBjb25nIHR5IENGVEQgbWEgb25nIGxhbSB0b25n IGdpYW0gZG9jLCBjYSBTZWN1cmVuY3kgdmEgTmdhbiBIYW5nIFRydW5nIFVvbmcgVWMgDQpkYW5n IGJpIGFwIGx1YyBwaGFpIGdpYWkgdGhpY2ggY2FjIHNvIHRpZW4gbm9pIHRyZW4uIFRoZW8gTHVh dCBIaW5oIFN1IGN1YSBVYywgY2FjIA0KY29uZyB0eSBVYyBiaSBjYW0gdHJhIHRpZW4gY2hvIGNh YyB2aWVuIGNodWMgY2hpbmggcGh1IG5nb2FpIHF1b2MgaG9hYyBjYWMgY29uZyB0eSANCm5nb2Fp IHF1b2MgbmFtIHRyb25nIHN1IGtpZW0gc29hdCBjdWEgbmhhIGNhbSBxdXllbiBudW9jIGRvLiBN dWMgZGljaCBsYSBuZ2FuIGNoYW4gDQpjYWMgc3UgbXVhIGNodW9jIGRlIGNoaWVtIHV1IHRoZSBr aW5oIGRvYW5oLg0KDQpUdXkgbmhpZW4sIGNhYyBzbyB0aWVuIGNoaSB0cmEgbmhpZXUgbmdoaSB2 YW4gbm9pIHRyZW4gdnVvdCByYSBuZ29haSBjYSBTZWN1cmVuY3kgDQp2YSBOZ2FuIEhhbmcgVHJ1 bmcgVW9uZyBVYy4gTm8gY29uIGRpbmggY2EgdG9pIEJvIE5nb2FpIEdpYW8sIEJvIFRodW9uZyBN YWkgY3VhIA0KbnVvYyBuYXkuIE1heSBuYW0gdHJ1b2MsIHZ1IGJhbiBreSB0aHVhdCB2YSB0cmFu ZyBiaSBjaG8gVmlldCBOYW0gaW4gdGllbiBnaWF5IG5odWEgDQp0dW5nIGR1b2MgbW8gdGEgbGEg Y2F1IGNodXllbiB4dWF0IGNhbmcgdGhhbmggY29uZyBkYW5nIGNhIG5nb2ksIG5heSBubyBoaWVu IHJhIA0KdGhhbmggbW90IHZ1IHRhaSB0aWVuZyB0aGFtIG5odW5nIGNvIHRhbSB2b2MgcXVvYyB0 ZSB2b2kgbmh1bmcgaGUgcXVhIGxpZW4gcXVhbiBkZW4gdGF0IGNhIG1vaSBuZ3VvaSB0aGFtIGR1 Lg0KDQoqIERpZXUgdHJhIGhheSBiYW8gY2hlPw0KDQpDYXUgaG9pIGR1b2MgZGF0IHJhIHZhIGNh biBjbyBjYXUgdHJhIGxvaSBsYSBhaSBiaWV0IG5odW5nIGdpLCB0YW0gdm9jIG5vIHRvaSBkYXUu IA0KUmljaGFyZCBCcm9pbm93c2tpLCBuZ3V5ZW4gZGFpIHN1IFVjIHRhaSBWaWV0IE5hbSBsZW4g dGllbmcsICJEdWEgdHJlbiBuaHVuZyBnaSBkdW9jIA0KdGlldCBsbywgdGhlbyB0b2kgY28gdmUg bmh1IEJvIE5nb2FpIEdpYW8gY28gdGhlIGJpZXQgY28gY2FpIGdpIGRhbmcgZGllbiByYS4uLiIN Cg0KS2hpIE5nYW4gSGFuZyBOaGEgTnVvYyBWaWV0IE5hbSBjaHVhbiBiaSBkb2kgdHUgaGUgdGhv bmcgdGllbiBnaWF5IHNhbmcgdGllbiBnaWF5IA0Kbmh1YSAxMCBuYW0gdHJ1b2MgZGF5LCBjYSBu aGEgY2FtIHF1eWVuIFZpZXQgTmFtIGxhbiBjaGluaCBwaHUgVWMgZGV1IG11b24gY28gc3UgdGhh bSANCmR1IGN1YSBTZWN1cmVuY3kgdmEgY29uZyB0eSBDRlREIHRyb25nIGNhYyBjdW9jIHRodW9u ZyB0aHV5ZXQuDQoNCkxlIER1YyBUaHV5IHR1bmcgbGEgVGhvbmcgZG9jIE5nYW4gSGFuZyBOaGEg TnVvYyBWTiwgbmF5IGRhIG1hdCBjaHVjIHZpIHZ1IGluIHRpZW4gDQpwb2x5bWVyLiAoSGluaDog R2V0dHkgSW1hZ2VzKQ0KDQoNClN1IGhvcCB0YWMgbmF5IGxhaSBjb24gZHVvYyAiYmF0IG1pIiBj aG8gU2VjdXJlbmN5IGJpZXQgbGEgdmllbiBjaHVjIGN1YSBjb25nIHR5IA0KQ0ZURCAoYW0gY2hp IExlIER1YyBNaW5oLCBjb24gdHJhaSBvbmcgTGUgRHVjIFRodXksIGxhbSBnaWFtIGRvYyBtb3Qg dHJvbmcgbmh1bmcgDQpjb25nIHR5IGNvbiBjdWEgQ0ZURCkgY28gbmhpZXUgbmdvIG5nYWNoIGRl IHRoYW5oIGNvbmcuDQoNCk1vaSBsaWVuIGhlIGdpYSBkaW5oIG5heSB0dSBubyBkYW4gZGVuIGF1 IGxvIHRoYW0gbmh1bmcgaG9pIGxvIG8gVmlldCBOYW0uIEJhbyANCmNoaSBvIFZpZXQgTmFtIHR1 bmcgZGF0IGRhdSBob2kgdmUgdmFpIHRybyBjdWEgTGUgRHVjIE1pbmggdHJvbmcgdnUgaW4gdGll biBQb2x5bWVyLiANCk9uZyBUaHV5IHR1bmcgbGVuIG1hdCBiYW8gcGh1IG5oYW4gY2FjIG5naGkg dmFuIG1vIGFtIHJvaSBzYXUgZG8sIG1vaSBjaHV5ZW4gImNoaW0geHVvbmcuIg0KDQpCYW4ga2V0 IGx1YW4gZGlldSB0cmEgY3VhIFRvbmcgVGhhbmggVHJhIE5oYSBOdW9jIFZpZXQgTmFtIG5vaSBj byB0aGF5IG5odW5nIGRpZXUgYmF0IA0KdGh1b25nIHZhIHRoaWV1IG1pbmggYmFjaCB0cm9uZyBj YWMgYmFuIGhvcCBkb25nIGluIHRpZW4gcG9seW1lci4gVHV5IG9uZyBUaHV5IGJpIA0Ka2hpZW4g dHJhY2ggImtpZW0gZGllbSIgdmEgbWF0IGNodWMsIG5odW5nIHZ1IGluIHRpZW4gZ2lheSBwb2x5 bWVyIHF1YSBjYWMgYmFuIGhvcCANCmRvbmcga3kgdm9pIFNlY3VyZW5jeSB2YW4gdGllcCB0dWMu IFZpZXQgTmFtIGNoaW5oIHRodWMgcGhhdCBoYW5oIG1vdCBzbyB0aWVuIGdpYXkgDQpuaHVhIHBv bHltZXIgdHUgbmFtIDIwMDIuDQoNClRoZW8gY3VvYyBkaWV1IHRyYSBjdWEgYmFvIFRoZSBBZ2Us IHZpZW4gY2h1YyBjaGluaCBwaHUgVWMgZGEgY2FuIGR1IGNoYXQgY2hlIChvIGRhbmcgDQpzYXUp IHRyb25nIGNhYyBjdW9jIHRodW9uZyB0aHV5ZXQgaW4gdGllbiBjaG8gVmlldCBOYW0sIGtlIGNh IGNodXllbiBjb25nIHR5IFNlY3VyZW5jeSBob3AgdGFjIHZvaSBDRlRELg0KDQpDYXUgaG9pIGNo aW5oIHlldSBvIGRheSwgdGhlIEFnZSB2aWV0LCBsYSBjbyBhaSBvIFNlY3VyZW5jeSwgTmdhbiBI YW5nIFRydW5nIFVvbmcgDQpVYywgQm8gTmdvYWkgR2lhbyBVYywgaGF5IEJvIFRodW9uZyBNYWkg VWMgYmlldCBMdW9uZyBOZ29jIEFuaCB2YSBjb25nIHR5IENGVEQgDQpxdWFuIGhlIGNoYXQgY2hl IHZvaSBCbyBDb25nIEFuIHZhIGNhYyBjbyBxdWFuIGtoYWMgY3VhIFZpZXQgTmFtIGhheSBraG9u Zz8NCg0KRGlldSBuYXkga2hpZW4gbmd1b2kgdGEgZGF0IG5naGkgdmFuLCBjbyB0aGUsIENGVEQg Y2hpbmggbGEgbW90IGNvbmcgdHkgdHUgbmhhbiANCnRoYW5oIGxhcCB2b2kgdGllbiBjdWEgQm8g Q29uZyBBbiB2YSBuaGlldSB2aWVuIGNodWMgcXV5ZW4gdGhlIGN1YSBjaGUgZG8uDQoNCkJhbyBU aGUgQWdlIG5vaSBraG9uZyB0aGUgdGluIGxhIEJvIE5nb2FpIEdpYW8gdmEgQm8gVGh1b25nIE1h aSBjdWEgVWMga2hvbmcgYmlldCANCmRpZXUgbmF5LiBCb2kgdmksIGNhYyB0YWkgbGlldSBjdWEg Y29uZyB0eSBDRlREIHZhIGNhYyBjb25nIHR5IGNvbiBjdWEgbm8gY2hvIHRoYXksIA0KbmdvYWkg THVvbmcgTmdvYyBBbmgsIG5oaWV1IGRhaSBkaWVuLCBjYWMgY2h1YyBnaWFtIGRvYywgdmEgbmd1 b2kgbmFtIGNvIHBoYW4gY3VhIA0KY2FjIGNvbmcgdHkgbmF5IGxhIHZpZW4gY2h1YyBuaGEgY2Ft IHF1eWVuIFZpZXQgTmFtLg0KDQpUaGVvIGN1dSBEYWkgU3UgQnJvaW5vd3NraSwgdGllbiBob2kg bG8gY2hvIG5odW5nIGNhIG5oYW4gcXVhbiBoZSBjaGF0IGNoZSB2b2kgDQpCbyBDb25nIEFuIFZp ZXQgTmFtIGxhIHZpIHBoYW0gZGFvIGR1YyB2YSBjdW5nIGNvIHRoZSB2aSBwaGFtIGx1YXQgbGUg aGluaCBzdSBtYSBiYW4gYW4gY28gdGhlIGxlbiBkZW4gMTAgbmFtIHR1LiAoVC5OKQ0KDQpodHRw Oi8vd3d3Lm5ndW9pLXZpZXQuY29tL2Fic29sdXRlbm0vYW5tdmlld2VyLmFzcD9hPTExMzM0MyZ6 PTIgTW9uZGF5LCBNYXkgMjQsIDIwMTANCg0KQmFvIFVjIHRpZXAgdHVjIHRvIGNhbyBTZWN1cmVu Y3kgaG9pIGxvIHF1YW4gY2h1YyBWTiBiYW5nIGNhIHRpZW4gbGFuIGdhaQ0KDQpQaG8gdGhvbmcg ZG9jIE5nYW4gSGFuZyBOaGEgTnVvYyBWTiBxdWEgVWMgZHVvYyBjaGlldSBkYWkgdm9pIGdhaSBk aWVtPw0KDQpNb3QgYmFpIGJhbyBtb2kgY3VhIGJhbyBUaGUgQWdlIG8gYmVuIFVjIGRvbmcgdGhv aSBkdW9jIGxvYW4gYmFvIHRyZW4gdHJ1eWVuIGhpbmggbyANCk1lbGJvdXJuZSwgQXVzdHJhbGlh LCBjYW8gYnVvYyBjb25nIHR5IHRoYXUgZGljaCB2dSBpbiB0aWVuIFNlY3VyZW5jeSBjdWEgbnVv YyBuYXkgDQpraG9uZyBuaHVuZyBob2kgbG8gdGllbiBjaG8gcXVhbiBjaHVjIG51b2MgbmdvYWkg bWEgY29uIGNvIGNhIGdhaSBudWEuDQpCYWkgYmFvIG5nYXkgMjQgdGhhbmcgNSwgMjAxMCBjdWEg aGFpIGt5IGdpYSBSaWNoYXJkIEJha2VyIHZhIE5pY2sgTWNLZW56aWUgdHJlbiB0byANClRoZSBB Z2Ugbm9pIHJhbmcgbW90IG5oYW4gY2h1bmcgZ2lhdSB0ZW4gKHZpZW4gY2h1YyBjdWEgU2VjdXJl bmN5KSBkYSB0cmFvIGNobyBjbyANCnF1YW4gRGlldSBUcmEgTGllbiBCYW5nIFVjIChBRlApIG1v dCBjdW9uIG5oYXQga3kgdHJvbmcgZG8gZ2hpIGNoZXAgbmhpZXUgZGlldSBsaWVuIA0KcXVhbiBk ZW4gY2FjIHZ1IGhvaSBsbyB2aWVuIGNodWMgbmdvYWkgcXVvYyBkZSBkYXQgY2FjIGhvcCBkb25n IHRoYXUgaW4gdGllbiBnaWF5IG5odWEgcG9seW1lci4NCg0KS2hhYyB2b2kgbmh1bmcgYmFpIGJh byB0cnVvYyBjbyBuaGlldSBiYWkgbm9pIHJvIHNvIHRpZW4gaG9pIGxvIGNobyBxdWFuIGNodWMg VmlldCANCk5hbSBsYSBraG9hbmcgMTAgdHJpZXUgVWMga2ltIChob24gJDggdHJpZXUgVVNEKS4g Tmd1b2kgZHVuZyB0cnVuZyBnaWFuIGN1YSBjYWMgdnUgDQpob2kgbG8gbmF5IGxhIEx1b25nIE5n b2MgQW5oLCB0b25nIGdpYW0gZG9jIGNvbmcgdHkgS3kgVGh1YXQgdmEgUGhhdCBUcmllbiAoQ0ZU RCkgDQptYSBjYWMgYmFpIGJhbyBub2kgcmFuZyBjbyBxdWFuIGhlIGNoYXQgY2hlIHZvaSBvbmcg Tmd1eWVuIFRhbiBEdW5nLCB0aHUgdHVvbmcsIHZhIA0KY28gcXVhbiB0aW5oIGJhbyBWaWV0IE5h bS4gQ29uZyB0eSBjdWEgTHVvbmcgTmdvYyBBbmggbmhpZXUgcGhhbiBsYSBiaW5oIHBob25nIGtp bmggDQp0YWkgY2hvIGd1b25nIG1heSB0aW5oIGJhbyBDU1ZOIG5lbiBkYSB0aGF1IGR1b2MgY2Fj IG1vbiBiZW8gYm8gY2hvIGNhYyBjbyBxdWFuIGFuIA0KbmluaCwgcXVvYyBwaG9uZywgdGFpIGNo aW5oIGN1YSBWaWV0IE5hbSwgdHJpIGdpYSBoYW5nIGNodWMgdHJpZXUgZG8gbGEgbW9pIG5hbS4N Cg0KVHJvbmcgYmFpIHZpZXQgbW9pLCB0byBUaGUgQWdlIGNoaSBub2kgbW90IGNhY2ggdG9uZyBx dWF0IGxhIG5ndW9pIHRydW5nIGdpYW4gZGEgDQpkdW9jIHRodWUgbXVvbiBkZSBnaXVwIFNlY3Vy ZW5jeSBob2kgbG8gdGhvbmcgZG9jIG5nYW4gaGFuZyBkZSB0cnVuZyBkdW9jIG1vaSB0aGF1IGlu IHRpZW4gbyBtb3QgcXVvYyBnaWEgQSBDaGF1Lg0KDQpOaGFuIGNodW5nIG5vaSB0cmVuIGdoaSB0 cm9uZyBjdW9uIG5oYXQga3kgdmUgY2FjIGN1b2Mgbm9pIGNodXllbiBob2kgbmFtIDIwMDcgDQp0 cm9uZyBkbywgIm5ndW9pIHRydW5nIGdpYW4iIG5vaSByYW5nICJ0aG9uZyBkb2MgbmdhbiBoYW5n IHNlIHJhdCBzdW5nIHN1b25nIG5ldSB0aWVuIGhvYSBob25nIHRhbmcgbGVuLiINCg0KVmUgbG9p IHlldSBjYXUgY3VuZyBjYXAgbW90IGdhaSBkaWVtLCBuaGFuIGNodW5nIHRpZXQgbG8gcmFuZyBt b3QgdHJvbmcgbmh1bmcgDQpjYXAgcXVhbiBseSBjYW8gY2FwIG5oYXQgY3VhIFNlY3VyZW5jeSB5 ZXUgY2F1IG5oYW4gY2h1bmcgeGVwIGRhdCBkZSBtb3QgY28gZ2FpIA0KbWFpIGRhbSBuZ3VvaSBB IENoYXUgdGh1IHRpZXAgbW90IHBobyB0aG9uZyBkb2MgY3VhIG1vdCBuZ2FuIGhhbmcgdHJ1bmcg dW9uZyBuZ29haSBxdW9jLg0KDQoiTGFuIHRvaSwga2hpIHZpZW4gY2h1YyBuYXkgZGVuIGRheSAo dG9pIGR1b2MgbGVuaCkgdG9pIHBoYWkgZGkgdGltIGNobyBvbmcgdGEgDQptb3QgbnUgdmUgc2ks IHZhIHZvaSBjYWkgbmhpdSBtYXkgdmEgbmhheSBtYXQsIGRhYyBiaWV0IG51IHZlIHNpIHBoYWkg bGEgbmd1b2kgDQpnb2MgQSBDaGF1LiIgTmhhbiBjaHVuZyBrZSBuaHUgdGhlIHRyb25nIGJ1b2kg cGhvbmcgdmFuIHRydXllbiBoaW5oIGN1YSBBQkMuIA0KIk9uZyB0YSBkZSBuZ2hpIHRvaSB0aW0g dGh1ZSBtb3QgY28gZ2FpIG1haSBkYW0gY2hvIG1vdCB2aWVuIGNodWMgbmdhbiBoYW5nIHRydW5n IA0KdW9uZyBuZ29haSBxdW9jIGtoaSBvbmcgbmF5IHRvaSBNZWxib3VybmUuIg0KDQpUdXkgbmhp ZW4sIG5oYW4gY2h1bmcgZGEga2hvbmcgbGFtIHRoZW8gbGVuaCBuaHVuZyBvbmcgdGluIHJhbmcg bW90IHNvIG5ndW9pIGtoYWMgDQp0cm9uZyBTZWN1cmVuY3kgZGEgdGh1YyBoaWVuIHZpZWMgZG8u DQoNCkNodXllbiBsaW5oIHhpbmggaG9pIGxvIG5heSBrZW8gZGFpIHR1IHRoYW5nIDUgbmFtIG5n b2FpIGRlbiBuYXkgbGFtIE5nYW4gSGFuZyANClRydW5nIFVvbmcgVWMgbWFuZyB0YWkgdGllbmcg dmkgbHVhdCBsZSBVYyBjYW0gaG9pIGxvIHF1YW4gY2h1YyBudW9jIG5nb2FpLg0KDQpTYXUgbmhp ZXUgY3VvYyB0aHVvbmcgdGh1eWV0LCBTZWN1cmVuY3kgY3VhIFVjIGRhIHRydW5nIHRoYXUgaW4g dGllbiBwb2x5bWVyIGNobyANClZpZXQgTmFtIHR1IG5hbSAyMDAyIGRlIHRoYXkgdGhlIGNobyB0 aWVuIGdpYXkgY3VhIG51b2MgbmF5IGRhIGJpIGluIGdpYSBxdWEgbmhpZXUgDQp0dSBUcnVuZyBR dW9jIHJvaSBkZW0gdGlldSB0aHUgbyBWaWV0IE5hbS4NCg0KTHVjIGRhdSB0aWVuIHBvbHltZXIg ZHVvYyBpbiBvIFVjIG5odW5nIGRhbiBkYW4sIFZpZXQgTmFtIG5oYXAgY2FuZyBtYXkgbW9jIHRy YW5nIA0KYmkgdmEgbXVjIGRlIGluIHRpZW4gdHJ1YyB0aWVwIG8gVmlldCBOYW0gcXVhIHRydW5n IGdpYW4gY3VhIENGVEQgdHJvbmcgZG8gY28gbW90IA0KY29uZyB0eSBjb24gbWEgY29uIHRyYWkg dGhvbmcgZG9jICh0aG9pIGRvKSBMZSBEdWMgVGh1eSBsYW0gZ2lhbSBkb2MuDQoNCk5hbSAyMDA2 IG5oaWV1IGJhaSBiYW8gbmV1IHJhIG5odW5nIGtodXlldCB0YXQgbmdoaWVtIHRyb25nIGN1YSB0 aWVuIHBvbHltZXIgdHUgDQpuaG9lIG11YyBkZW4gcGhhaSBtYXUgYmVuIGNhbmggbmhpZXUga2h1 eWV0IHRhdCBraGFjLiBPbmcgVGh1eSBkYSBwaGFpIGNob25nIGRvIA0KdmF0IHZhIGtoaSBjbyBj YWMgY3VvYyB0aGFuaCB0cmEgY2FwIG5oYSBudW9jIHZlIHZhbiBkZSBpbiB0aWVuIHBvbHltZXIg YmVuIGNhbmggDQpjaHV5ZW4gb25nIGNoaWVtIGR1bmcgKG11YSBsYWkpIGNhbiBuaGEgY29uZyB2 dSB2b2kgZ2lhIHR1b25nIHRydW5nIG1hIHRoZW8gbHVhdCwgDQpuaGEgY29uZyB2dSB0aGkga2hp IGtob25nIGNvbiBkdW9jIGNhcCBjaG8gbywgcGhhaSB0cmEgbGFpLg0KDQpUdXkgY28gcXVhbiB0 aGFuaCB0cmEgbm9pIGNvIHRoYXkgbmhpZXUgbGFtIGxvaSBuaHVuZywgdmkgbmh1bmcgcXVhbiBo ZSBuYW8gZG8sIA0Kb25nIHZhIGNhYyBwaG8gdGhvbmcgZG9jIGNoaSBwaGFpIHZpZXQga2llbSBk aWVtLiBUdXkgb25nIG1hdCBjaHVjIHRob25nIGRvYyBuZ2FuIA0KaGFuZyBuaGEgbnVvYyB2YW8g bmFtIDIwMDcgbmh1bmcgbGFpIGR1b2MgZGF5IHNhbmcgbGFtIG1vdCB0aHUgY28gdmFuIHRhaSBj aGluaCANCmNobyBjaGluaCBwaHUgKHBobyBjaHUgdGljaCBIb2kgRG9uZyBUdSBWYW4gS2luaCBU ZSBUYWkgQ2hpbmggVGllbiBUZSkuDQoNCk8gdGhvaSBvbmcgTGUgRHVjIFRodXkgbGFtIHRob25n IGRvYywgY28gdGF0IGNhIDYgbmd1b2kgbGEgcGhvIHRob25nIGRvYywgdHJvbmcgDQpkbyBjbyBt b3QgcGh1IG51LiBPbmcgTmd1eWVuIFZhbiBHaWF1LCBkdW9uZyBraW0gVGhvbmcgZG9jIE5nYW4g SGFuZyBOaGEgTnVvYyBWTiANCmN1bmcgdHVuZyBsYSBwaG8gdGhvbmcgZG9jIGN1YSBvbmcgVGh1 eS4NCg0KT25nIExlIER1YyBUaHV5LCB0cm9uZyBuaHVuZyBsYW4gZG9pIGRpZW4gdm9pIGNhYyBk YSBraWNoIHZlIHRpZW4gcG9seW1lciBkYSBjaG9uZyANCmNoZSBsYSBuaG8gbG9haSB0aWVuIG5h eSBtYSBuYW4gdGllbiBnaWEgZGEgZ2lhbSBib3QuIFR1eSBuaGllbiwgaGllbiBuYXksIG5nYXkg Y2EgDQp0aWVuIHBvbHltZXIsIG5hbiB0aWVuIGdpYSB2YW4gZGllbiByYSBraGEgbmdoaWVtIHRy b25nIGNodSBraG9uZyBoZXQuIFR1IGRhdSBuYW0gDQpkZW4gbmF5LCBiYW8gY2hpIHRyb25nIG51 b2MgbG9hbiB0aW4gcmF0IG5oaWV1IHZ1IHRpZXUgZHVuZyBiYW5nIHRpZW4gZ2lhIGhvYWMgYnVv biANCnRpZW4gZ2lhIHNvIGx1b25nIGxvbiBkYSBiaSBiYXQgZ2l1LiANCg0KaHR0cDovL3d3dy5i YmMuY28udWsvdmlldG5hbWVzZS92aWV0bmFtLzIwMTEvMDEvMTEwMTIzX3NlY3VyZW5jeV9uZXdf ZGV2ZWxvcG1lbnQuc2h0bWwgMTY6MzAgR01UIC0gMjMvMS8yMDExIA0KDQpTZWN1cmVuY3kgdHJh IGhvYyBwaGkgY2hvIGNvbiBvbmcgVGh1eT8NCg0KKEFuaDogT25nIExlIER1YyBUaHV5IGhpZW4g bGEgQ2h1IHRpY2ggSG9pIGRvbmcgR2lhbSBzYXQgVGFpIGNoaW5oIFF1b2MgZ2lhLikNCg0KVnUg ZGlldSB0cmEgY2FvIGJ1b2MgU2VjdXJlbmN5IGR1YSBob2kgbG8gY2hvIHRoYXkgaGFuZyBuYXkg ZHVuZyBxdXkgZGVuIHRyYSBob2MgcGhpIA0KY2hvIGNvbiBjdXUgVGhvbmcgZG9jIE5nYW4gaGFu ZyBOaGEgbnVvYyBMZSBEdWMgVGh1eS4NCg0KRGllbiBiaWVuIGR1b2Mgbm9pIHRyb25nIGJhaSBj dWEgYmFvIFVjIFRoZSBBZ2UgY3VhIHRhYyBnaWEgTmljayBNY0tlbnppZSB2YSBSaWNoYXJkIA0K QmFrZXIgZGFuZyBuZ2F5IDI0LzAxLzIwMTEuIA0KDQpTZWN1cmVuY3ksIENvbmcgdHkgaW4gdGll biBjdWEgTmdhbiBoYW5nIFRydW5nIFVvbmcgQXVzdHJhbGlhLCBiaSBjYW8gYnVvYyBob2kgbG8g DQp0aG9uZyBkb2MgbmdhbiBoYW5nIG5oYSBudW9jIFZpZXQgTmFtIGJhbmcgdmllYyB0cmEgY2hv IGNvbiB0aG9uZyBkb2MgdGllbiBkZSB0aGVvIA0KaG9jIG1vdCB0cnVvbmcgZGFpIGhvYyBnaWFu aCBjaG8gbmh1bmcgbmd1b2kgY28gdGllbiBvIEFuaC4gDQoNClZpZWMgZGFuIHhlcCBuYXkgbGEg bW90IHRyb25nIG5oaWV1IHV1IGRhaSB0YWkgY2hpbmggYmVvIGJvIG1hIE5nYW4gaGFuZyBUcnVu ZyBVb25nIA0KQXVzdHJhbGlhIGJpIGNhbyBidW9jIGNodXllbiBjaG8gcXVhbiBjaHVjIFZpZXQg TmFtIGRlIGRvaSBsYXkgbW90IGhvcCBkb25nIHRoZW8gZG8gDQpWaWV0IE5hbSBpbiB0aWVuIGRv bmcgdHJlbiBjaGF0IGxpZXUgZ2lheSBwb2x5bWVyIGN1YSBTZWN1cmVuY3kuIA0KDQpWdSBob2kg bG8gdGhlbyBjYW8gYnVvYyBuYXkgZGEgZ2l1cCBTZWN1cmVuY3kgdGhhbmcgY2FjIGhvcCBkb25n IGluIHRpZW4gbG9uIHRhaSBWaWV0IA0KTmFtIHR1IG5hbSAyMDAyIGRlbiBuYW0gMjAwOS4gDQoN CltEYXkga2Ugbmh1IHNlIHRybyB0aGFuaCB2dSBkdWEgaG9pIGxvIGNobyBudW9jIG5nb2FpIGRh dSB0aWVuIGJpIHRydXkgdG8gdGFpIFVjLi0gVGhlIEFnZV0NCg0KVnUgbmF5IHhheSByYSB0cnVv YyBtdWkgY3VhIGNhYyB0aGFuaCB2aWVuIGhvaSBkb25nIHF1YW4gdHJpIGN1YSBTZWN1cmVuY3kg ZG8gTmdhbiANCmhhbmcgVHJ1bmcgVW9uZyBBdXN0cmFsaWEgYm8gbmhpZW0sIHZvbiBkZSBjaG8g U2VjdXJlbmN5IHRoYW0gZ2lhIHZhbyBuaHVuZyBwaGkgdnUgDQpob2kgbG8gYmFuZyBoYW5nIHRy aWV1IGRvbGEgdGllbiBob2EgaG9uZy4NCg0KU28gdGllbiBuaGlldSB0cmlldSBkb2xhIG5heSBk dW9jIGNhdCBnaXUgdGFpIHRhaSBraG9hbiBvIG51b2MgbmdvYWkgdmEgaG8gdGh1ZSBuaHVuZyAN Cm5ndW9pIHRydW5nIGdpYW4gdHJhIHRpZW4gY2hvIGNhYyBxdWFuIGNodWMgbnVvYyBuZ29haSBk ZSBnaWFuaCBob3AgZG9uZy4NCg0KS2hvbmcgYWkgdHJvbmcgc28gY3V1IGdpYW0gZG9jIGN1YSBT ZWN1cmVuY3kgbGEgbmd1b2kgVWMgYmkgcXVpIGtldCB0cmFjaCBuaGllbSBkb2kgDQp2b2kgdmll YyBob2kgZG9uZyBxdWFuIHRyaSBkYSBraG9uZyBuZ2FuIGNoYW4gU2VjdXJlbmN5IHRyb25nIHZp ZWMgZHVhIGhvaSBsbyBuaHUgYmkgDQpjYW8gYnVvYy4NCg0KVGhlIEFnZSBub2kgY2FjIHRpZXQg bG8gbW9pIG5oYXQgc2UgbGFtIHRhbmcgYXAgbHVjIGRvaSB2b2kgQ2FuaCBzYXQgTGllbiBiYW5n IEF1c3RyYWxpYSANCmRpIHRvaSB2aWVjIGJ1b2MgdG9pIGJhbiBnaWFtIGRvYyBTZWN1cmVuY3kg ZHVuZyBkYW5nIGhvYXQgZG9uZyBsYW0gYW4gdm9pIFZpZXQgTmFtIA0KdmEga2Ugbmh1IHNlIHRy byB0aGFuaCB2dSBob2kgbG8gY2hvIG51b2MgbmdvYWkgZGF1IHRpZW4gYmkgdHJ1eSB0byB0YWkg VWMuDQoNCkNhYyBuZ3VvbiBwaGFwIGx5IGRhIHhhYyBuaGFuIHZvaSBiYW8gVGhlIEFnZSByYW5n IFNlY3VyZW5jeSBkdW5nIG5ndW9uIHRpZW4gY3VhIGhvIA0KdHJhIHRpZW4gaG9jIGRhaSBob2Mg Y2hvIG1vdCBuZ3VvaSBjb24gY3VhIG9uZyBMZSBEdWMgVGh1eSwgVGhvbmcgZG9jIE5nYW4gaGFu ZyBOaGEgDQpudW9jIFZpZXQgTmFtIHR1IG5hbSAxOTk5IGRlbiBuYW0gMjAwNy4gDQoNCi0NCmh0 dHA6Ly93d3cudHV5ZW5naWFvLnZuL0hvbWUva2luaHRlLzIwMTEvMS8yNzU5My5hc3B4IDE4OjMy JyAzLzEvMjAxMQ0KDQoiTGFtIHBoYXQgbGEgYmlldSBoaWVuIGN1YSB0aWVuIHJhIg0KDQoiQ2Fu IHBoYWkgbm9pIHRoZW0gdm9pIGNhYyBuaGEgYmFvLCBuZ3V5ZW4gbmhhbiB0cnVjIHRpZXAgZGFu IGRlbiBsYW0gcGhhdCBsYSBtYXQgY2FuIA0KZG9pIHRpZW4gLSBoYW5nIHZhIHRpZW4gbWEgbmhp ZXUgaG9uIGhhbmcgdGhpIGtob25nIHRoZSBraG9uZyBjbyBsYW0gcGhhdCBkdW9jIiwgVG9uZyAN CmN1YyB0cnVvbmcgVG9uZyBjdWMgVGhvbmcga2UgRG8gVGh1YyBnaWFpIHRoaWNoLg0KDQpDdSBs YW0gcGhhdCBsYSBiaWV1IGhpZW4gY3VhIHRpZW4gcmENCg0KVGhvbmcgZG9jIE5nYW4gaGFuZyBO aGEgbnVvYyB0cm9uZyBtb3Qgc28gbGFuIGdpYWkgdHJpbmggZ2FuIGRheSBjaG8gcmFuZyBsYW0g cGhhdCANCmNhbyBraG9uZyBwaGFpIG5ndXllbiBuaGFuIHRpZW4gdGUuIExhcCBsdWFuIGN1YSBU b25nIGN1YyBUaG9uZyBrZSB2ZSB2YW4gZGUgbmF5IG5odSANCnRoZSBuYW8/DQoNCk9uZyBEbyBU aHVjOiBSbyByYW5nLCB0cm9uZyBuZW4ga2luaCB0ZSBuYW8gdGhpIHRpZW4gdmEgaGFuZyBjdW5n IGx1b24gbHVvbiBzb25nIGhhbmcgDQp2b2kgbmhhdSwgdmEgY3UgbGFtIHBoYXQgbGEgYmlldSBo aWVuIGN1YSB0aWVuIHJhLCBraG9uZyBjb24gY28gbW90IGdpYWkgdGhpY2ggbmFvIGtoYWMgDQpj YS4NCg0KVG9pIGtob25nIG5vaSBUaG9uZyBkb2MgaGF5IGNoaW5oIHNhY2ggc2FpLiBWZSBraW5o IHRlLCB0b2kgZGUgbmdoaSBuZW4gaGlldSBybyBjYW4gDQpuZ3V5ZW4uIENvbiBzYXUgeGEgaG9u IG51YSwgY2h1bmcgdGEgY3VuZyBoaWV1IGxhIGtoaSBuZW4ga2luaCB0ZSBjdSBvbiBkaW5oLCBw aGF0IHRyaWVuIA0KdG90LCB2dW5nIGNoYWMgdGhpIGtob25nIGNvIGhpZW4gdHVvbmcgdGllbiBu aGlldSBob24gaGFuZy4NCg0KQ2h1bmcgdG9pIGNoaSBiaWV0IHRyZW4gY28gc28gc28gbGlldSBt YSBkYW5oIGdpYS4gQ29uIGJhbyBjaGluaCBzYWNoIHRpZW4gdGUgZHVuZyBoYXkgc2FpIA0KdGhp IFRvbmcgY3VjIFRob25nIGtlIGtob25nIHRoZSBub2kgZHVvYyBkaWV1IGF5Lg0KDQpDdSB0YW5n IHRvbmcgcGh1b25nIHRpZW4gdGhhbmggdG9hbiBsZW4gdGhpIGxhIG1vdCB5ZXUgdG8gdGllbSBh biwgdGljaCBsdXkgcXVhIG5oaWV1IG5hbSANCnZhIGRlbiBsdWMgbmFvIGRvIHRpZW4gbG9uIGhv biBoYW4gaGFuZyB0aGkgbmFtIGF5IHNlIGxhIG5hbSBtYSBiaWV1IGxvIHJhIGxhbSBwaGF0LiBO byANCnJhdCBkdW5nIHRoZW8gcXV5IGx1YXQuIA0KDQpUaGUgY29uIHRob25nIHF1YSB0YWkgbGll dSBkYSBjb25nIGJvLCB0aW4gZHVuZyBuYW0gbmF5IHRhbmcgMjclIC0gMjglLiBSbyByYW5nIHRh bmcgDQpkdSBubyB0aW4gZHVuZyBsYSB0b3QgZGUgZGFtIGJhbyBwaGF0IHRyaWVuIG5lbiBraW5o IHRlLCBuaHVuZyBjbyB0aGUgVGhvbmcgZG9jIG5vaSBsYSBzbyANCnNhbmggbmFtIG5heSB2b2kg bmFtIHRydW9jLCBjb24gbXVjIGRvIHRpY2ggbHV5IGN1YSBubyB0aGkgVGhvbmcgZG9jIGtob25n IG5vaS4NCg0KVG9pIGNobyByYW5nIGRlIGhpZXUgbmVuIGtpbmggdGUgdGhpIHBoYWkgaGlldSBj YSBxdWEgdHJpbmggY3VhIG5vLiBWYSBkYXkgY3VuZyBsYSBtb3QgDQp0cm9uZyBuaHVuZyBjYWkg Y2h1bmcgdGEgcGhhaSBjaHUgeSB0cm9uZyBuYW0gMjAxMS4gTmV1IGtob25nIGNodSB5IG1vdCBj YWNoIGRheSBkdSANCnZhbiBkZSBuYXkgdGhpIGxhIHRoYWNoIHRodWMgcmF0IGxvbiB0cm9uZyBr aWVtIGNoZSBsYW0gcGhhdC4gVmEgZGUgZGF0IGNvbiBzbyBsYW0gcGhhdCANCjclIG5odSBRdW9j IGhvaSBkYXQgcmEgcGhhaSBsYW0gY3VjIGt5IHF1eWV0IGxpZXQuDQoNCkNodW5nIHRhIGN1bmcg aGluaCBkdW5nIGNvIG5odW5nIG5hbSBjaGkgc28gZ2lhIHRhbmcgY2FvLCBzYXUgZGF5IHR1IG1h dCBiYW5nIGRhIGNhbyANCnJvaSB0aGkgbmFtIHRpZXAgdGhlbyBjbyB0aGUgZHVuZyBuaHVuZyB2 b2kgZGlldSBraWVuIGNhbiBkb2kgdGllbiB2YSBoYW5nLiBDaHUgY29uIG5ldSANCmNodW5nIHRh IGtob25nIGRhdCBkdW9jIGNhbiBkb2kgbmF5IHRoaSBuZ3V5IGNvIGxhbSBwaGF0IGxhIGNvbi4g DQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMTAxMDcwODU1NDg5NzBQMEM5OTIwL2NodW9uZy10 cmluaC1tdWMtdGlldS1xdW9jLWdpYS1jaHVhLXJvLXJhbmctdmUtbXVjLXRpZXUuaHRtIE5HVVlF TiBWVSAxOToxOCAoR01UKzcpIDcvMS8yMDExIA0KDQpUaHUgdHVvbmc6IENodW9uZyB0cmluaCBt dWMgdGlldSBRdW9jIGdpYSBjaHVhIHJvIHJhbmcgdmUuLi4gbXVjIHRpZXUgDQoNClV5IGJhbiBU aHVvbmcgdnUgUXVvYyBob2kgY2hvIHkga2llbiB2ZSBwaHVvbmcgYW4gcGhhbiBibyBjaHVvbmcg dHJpbmggbXVjIHRpZXUgDQpRdW9jIGdpYSBuYW0gMjAxMS4NCg0KRHUga2llbiBibyB0cmkgdm9u IGNhYyBjaHVvbmcgdHJpbmggbXVjIHRpZXUgUXVvYyBnaWEgdHUgbmdhbiBzYWNoIFRydW5nIHVv bmcgbmFtIA0KMjAxMSBsYSAxNC42NTEgdHkgZG9uZ0NvbiBtb3Qgc28gY2h1b25nIHRyaW5oIHhh YyBkaW5oIG11YyB0aWV1IGNodWEgcm8gcmFuZywgcXVhIA0Kcm9uZywgbW90IHNvIG11YyB0aWV1 IGNvbiB0cnVuZyBsYXAsIFV5IGJhbiBUYWkgY2hpbmggliBOZ2FuIHNhY2ggbmhhbiB4ZXQgdGFp IGJhbyBjYW8gDQp0aGFtIHRyYSB2ZSB0aWV1IGNoaSwgZGluaCBtdWMgdmEgcGh1b25nIGFuIHBo YW4gYm8gdm9uIENodW9uZyB0cmluaCBtdWMgdGlldSBRdW9jIA0KZ2lhIG5hbSAyMDExLg0KDQpN b3QgcGhhbiBiYSB0aG9pIGdpYW4gY3VhIGJ1b2kgaG9wIGNoaWV1IDcvMSBkYSBkdW9jIFV5IGJh biBUaHVvbmcgdnUgUXVvYyBob2kgZGFuaCANCmRlIHhlbSB4ZXQgbm9pIGR1bmcgbmF5Lg0KDQpU aGVvIHRvIHRyaW5oIGN1YSBDaGluaCBwaHUsIDE1IGNodW9uZyB0cmluaCBtdWMgdGlldSBRdW9j IGdpYSBuYW0gMjAxMSBkYSBkdW9jIFRodSANCnR1b25nIENoaW5oIHBodSBxdXlldCBkaW5oLiBC byB0cnVvbmcgQm8gS2UgaG9hY2ggdmEgRGF1IHR1IFZvIEhvbmcgUGh1YyBjaG8gYmlldCwgDQpk dSBraWVuIGJvIHRyaSB2b24gY2FjIGNodW9uZyB0cmluaCBuYXkgdHUgbmdhbiBzYWNoIFRydW5n IHVvbmcgbmFtIDIwMTEgbGEgMTQuNjUxIHR5IA0KZG9uZywgdGFuZyAxOSB0eSBkb25nIHNvIHZv aSBkdSB0b2FuIGRhIGR1b2MgUXVvYyBob2kgdGhvbmcgcXVhIHZhIHRhbmcgMzgsOCUgc28gdm9p IA0KbmFtIDIwMTAuDQoNClR1eSBuaGllbiwgY28gcXVhbiB0aGFtIHRyYSBkYSBkaWVtIHRlbiBt b3Qgc28gY2h1b25nIHRyaW5oIGR1b2MgY2hvIGxhIHhhYyBkaW5oIG11YyANCnRpZXUgY2h1YSBy byByYW5nLCBxdWEgcm9uZywgbW90IHNvIG11YyB0aWV1IGNvbiB0cnVuZyBsYXAuIE5odSBjYWMg Q2h1b25nIHRyaW5oIG11YyANCnRpZXUgUXVvYyBnaWEgdmUgZ2lhbSBuZ2hlbywgdmUgdmFuIGhv YTsgbnVvYyBzYWNoIHZhIHZlIHNpbmggbW9pIHRydW9uZyBub25nIHRob247IA0KeGF5IGR1bmcg bm9uZyB0aG9uIG1vaSB2YSB2ZSBzaW5oIGFuIHRvYW4gdGh1YyBwaGFtLg0KDQpEbyB2YXksIGRl IG5naGkgQ2hpbmggcGh1IHJhIHNvYXQgbGFpLCBkaWV1IGNoaW5oIGNhYyBtdWMgdGlldSBjdWEg dHVuZyBjaHVvbmcgdHJpbmggDQp0aGVvIGh1b25nIGN1IHRoZSwgdGh1IGhlcCBkYW0gYmFvIHRo dWMgaGllbiBkdW9jIGNhYyBtdWMgdGlldSBkZSByYSB2YSBwaHUgaG9wIHZvaSBraGEgbmFuZyBi byB0cmkgY2FjIG5ndW9uIGx1YyBkZSB0aHVjIGhpZW4gY2FjIG11YyB0aWV1IGN1YSB0dW5nIGNo dW9uZyB0cmluaCwgQ2h1IG5oaWVtIFBodW5nIFF1b2MgSGllbiBuaGFuIG1hbmguDQoNCkJlbiBj YW5oIGRvLCB0aWV1IGNoaSwgZGluaCBtdWMgdmEgcGh1b25nIGFuIHBoYW4gYm8gdm9uIGNobyBj YWMgY2h1b25nIHRyaW5oIGN1bmcgDQpjb24gbmhpZXUgZGllbSBraGllbiBjbyBxdWFuIHRoYW0g dHJhIHF1YW4gbmdhaS4NCg0KVXkgYmFuIFRhaSBjaGluaCAtIE5nYW4gc2FjaCBkZSBuZ2hpIHRh bSB0aG9pIGNodWEgcGhhbiBibyB2b24gZG9pIHZvaSBtb3Qgc28gY2h1b25nIA0KdHJpbmggbmV1 IGNodWEgeGF5IGR1bmcgZGluaCBtdWMgcGhhbiBibyBjdSB0aGUuIA0KDQpDbyBxdWFuIHRoYW0g dHJhIGN1bmcgY2hvIHJhbmcgY2FuIHhlbSB4ZXQgbGFpIHZpZWMgYm8gdHJpIHZvbiBjdWEgbW90 IHNvIENodW9uZyB0cmluaCANCm11YyB0aWV1IHF1b2MgZ2lhIChjaHVvbmcgdHJpbmggdmllYyBs YW0sIGdpYW0gbmdoZW8uLi4pIGNobyBtb3Qgc28gZGlhIHBodW9uZyBjbyB0aWVtIA0KbHVjIGtp bmggdGUgbmh1OiBIYSBOb2ksIFRwLkhDTS4gQ2hpIGJvIHRyaSBjaG8gY2FjIGRpYSBwaHVvbmcg bmF5IG1vdCBzbyBjaHVvbmcgDQp0cmluaCBuaHUgcGhvbmcgY2hvbmcgdG9pIHBoYW0sIHBob25n IGNob25nIG1hIHR1eS4uLi4gDQoNCk1hdCBraGFjLCBkYXkgbGEgY2FjIGRpYSBwaHVvbmcgY28g a2hhIG5hbmcgeGEgaG9pIGhvYSBjYW8sIGRvIHZheSBjYW4gcmEgc29hdCBjYXQgZ2lhbSANCmRh dSB0dSBvIG5odW5nIGRpYSBwaHVvbmcgbmF5IGRlIHRhcCB0cnVuZyBjaG8gY2FjIGNhYyBkaWEg cGh1b25nIGtobyBraGFuIG8gbWllbiBudWksIA0KdnVuZyBzYXUgdmEgaGFpIGRhby4NCg0KTW90 IHNvIHkga2llbiB0aGFvIGx1YW4gY3VuZyBjb24gYmFuIGtob2FuIHZpIG1vdCBzbyBub2kgZHVu ZyBjb24gcXVhIGNodW5nIGNodW5nIA0KaG9hYyBkYW5oIGdpYSBjbyB2ZSBjb24gaG9pIHhhIHRo dWMgdGUuDQoNClRhaSBreSBob3AgUXVvYyBob2kgdGh1IHRhbSBjdW9pIG5hbSAyMDEwLCBuaGll dSB5IGtpZW4gdGhhbyBsdWFuIGN1bmcgZGEga2hvbmcgbWF5IA0KeWVuIHRhbSB2ZSBjYWMgQ2h1 b25nIHRyaW5oIG11YyB0aWV1IFF1b2MgZ2lhLiBUcm9uZyBkbyBjbyBxdWFuIG5nYWkgdmUgc3Ug cGhhbiB0YW4gDQpuZ3VvbiBsdWMgdGFpIGNoaW5oLCBjbyBuZ3V5ZW4gbmhhbiB0dSB2aWVjIGNv IHF1YSBuaGlldSBjaHVvbmcgdHJpbmggZGF0IG11YyB0aWV1IGxvbiANCnNvbmcgaGlldSBxdWEg Y2h1YSBjYW8uDQoNClRoYW0gY2hpLCBkYSBjbyB2aSBVeSB2aWVuIFV5IGJhbiBUaHVvbmcgdnUg UXVvYyBob2kgdHVuZyBjaGkgcmEgcmFuZywgImNodW9uZyB0cmluaCANCm11YyB0aWV1IHF1b2Mg Z2lhIHBoYW4gYW5oIGxvaSBpY2ggbmhvbSwgbGluaCB2dWMsIGJvIG5nYW5oIG5hbyBjdW5nIG11 b24gY28gbW90IGNhaSIgDQp2YSBkZSBuZ2hpIHBoYWkga2llbiBxdXlldCBkdW5nIGJvIHN1bmcg bW9pLiANCg0KaHR0cDovL3ZucjUwMC52bi8yMDEwLTEwLTE3LWNoaW5oLXNhY2gtdGllbi10ZS1t b3QtZGFuZy10YWkta2hvYS1tb3QtbmVvIFRhYyBnaWE6IFRCS1RTRyAxNy8xMC8yMDEwIDA5OjQ3 IEdNVCs3IA0KDQpUaHUgdHVvbmc6IENoaW5oIHNhY2ggdGllbiB0ZSBtb3QgZGFuZywgdGFpIGto b2EgbW90IG5lbyAtIExhbSBwaGF0IGNhbyBraG8geHUgbHkgbGFpIHN1YXQgY2FvIA0KDQpDbyBu aGlldSB5IGtpZW4gdHJhbmggbHVhbiB2ZSBjaGluaCBzYWNoIHRpZW4gdGUgY3VhIFZpZXQgTmFt LCBkaWV1IG5heSBjaHVuZyB0byBjaGluaCANCnNhY2ggdGllbiB0ZSBybyByYW5nLCBwaG9pIHJh IHRydW9jIG1vaSBuZ3VvaSBkZSBobyBjb24gY28geSBraWVuLiBOZ3VvYyBsYWksIGNoaW5oIHNh Y2ggDQp0YWkga2hvYSBraG9uZyBuaHVuZyB0aGlldSB2YW5nIHRob25nIHRpbiBtYSBjb24gdGhp ZXUgY2Egc3UgcGhvaSBob3Agdm9pIGNoaW5oIHNhY2ggDQp0aWVuIHRlLg0KDQpNb3Qgbm8gbHVj IG5oYXQgcXVhbg0KDQoiQ2hvIHRvaSBub2kgdGhlbSBjaHV0IHhpdSBudWEgdGhvaSIsIFRob25n IGRvYyBOZ3V5ZW4gVmFuIEdpYXUgaHVvbmcgbGVuIGJhbiBjaHUgDQp0b2EgY3VhIFV5IGJhbiBU aHVvbmcgdnUgUXVvYyBob2kgZGUgbmdoaS4gT25nIEdpYXUgZHVvYyBtb2kgdHJpbmggYmF5IHZl IGRpZXUgaGFuaCANCmNoaW5oIHNhY2ggdGllbiB0ZSB2aSB0aW5oIHF1YW4gdHJvbmcgY3VhIG5v LCBjaG8gZHUgdGhlbyBsdWF0LCBvbmcga2hvbmcgY28gbmdoaWEgdnUgZ2lhaSANCnRyaW5oIHRy dW9jIGNhYyB1eSBiYW4gbmh1IHRyb25nIHBoaWVuIGhvcCBjYWNoIGRheSBoYWkgdHVhbi4NCg0K T25nIHhpbiB0aGVtIHRob2kgZ2lhbiBkZSBjaGluaCBsYWkgbW90IGNvbiBzbyByYXQgbmhvIGxh IHRhbmcgdHJ1b25nIHRpbiBkdW5nIHRyb25nIA0KdGhhbmcgOSBtYSBVeSBiYW4gS2luaCB0ZSBj aG8gcmFuZyBkYSBsZW4gbXVjIDQsNSUsIHR1YyBsYSByYXQgY2FvIHNvIHZvaSBtdWMgdHJ1bmcg DQpiaW5oIDIsNzglIGN1YSBuYW0gdGhhbmcgdHJ1b2MgZG8uIFRob25nIGRvYyBjaG8gYmlldCwg Y29uIHNvIGRvIGNoaSBsYSAyLDQ4JSwgY2h1IA0Ka2hvbmcgY2FvIG5odSB2YXkuIE9uZyBub2k6 ICJUb2kgcmF0IGx1dSB5IGNvbiBzbyA0LDUlIG5heSB2aSBzbyBwaGF0IHJhIHRpbiBoaWV1IFtz YWldIA0KbW8gcm9uZyB0aW4gZHVuZywgZ2F5IHBoYW4gdW5nIHRyZW4gdGhpIHRydW9uZyIuDQoN CkhhbmggZG9uZyB0cmVuIGNoaSBsYSBtb3QgdHJvbmcgbmh1bmcgbm8gbHVjIGN1YSBOZ2FuIGhh bmcgTmhhIG51b2MgKE5ITk4pIHRyb25nIA0KdmllYyBkaWV1IGhhbmggY2hpbmggc2FjaCB0aWVu IHRlIHZvbiBjaGFuZyBjb24gbWF5IGtob25nIGdpYW4gZGUgeG9heSB4byB0cm9uZyBib2kgDQpj YW5oIG5lbiBraW5oIHRlIGNvbiBuaGlldSBiYXQgY2FuIGRvaS4gQ2hvIGRlbiB0aG9pIGRpZW0g bmF5IHRyb25nIG5hbSwgbmh1bmcgZ2kgDQpOSE5OIGxhbSB2YW4gbmhhdCBxdWFuIHZvaSBtdWMg dGlldSBkdW9jIHhhYyBkaW5oIHR1IGN1b2kgbmFtIG5nb2FpOiBjaGluaCBzYWNoIHRpZW4gDQp0 ZSB0aGF0IGNoYXQgbmhhbSBvbiBkaW5oIGtpbmggdGUgdmkgbW8uIERvIGN1bmcgbGEgbmh1bmcg a2h1eWVuIG5naGkgbWEgY2FjIHRvIGNodWMgDQp0YWkgY2hpbmggcXVvYyB0ZSBkdWEgcmEgY2hv IFZpZXQgTmFtLg0KDQpOZ2F5IHRydW9jIHBoaWVuIHRyaW5oIGJheSB0YWkgVXkgYmFuIFRodW9u ZyB2dSBRdW9jIGhvaSwgb25nIEdpYXUgZHVvYyBUcnVvbmcgZGFpIA0KZGllbiBOZ2FuIGhhbmcg UGhhdCB0cmllbiBjaGF1IEEgdGFpIFZpZXQgTmFtIEF5dW1pIEtvbmlzaGkga2h1eWVuIG5naGkg a2llbiB0cmkgbXVjIA0KdGlldSBuYXkuDQoNClRyb25nIG1vdCB0aG9uZyBkaWVwIGd1aSB0b2kg b25nIEdpYXUsIG9uZyBLb25pc2hpIG5vaTogIk5odW5nIHJ1aSBybyB0cm9uZyBudW9jIGNodSAN CnlldSB0YXAgdHJ1bmcgdmFvIGtoYSBuYW5nIG5vaSBsb25nIGNoaW5oIHNhY2ggdGllbiB0ZSBo b2FjIHRhaSBraG9hLCBob2FjIGNhIGhhaSBtb3QgDQpjYWNoIHZvaSB2YW5nOyBob2FjIHZpZWMg dGhpIHRydW9uZyB0YWkgY2hpbmggdmEgY2FjIG5oYSBkYXUgdHUgdHJvbmcgbnVvYyBjaG8gcmFu ZyBjaGluaCANCnNhY2ggZGEgbm9pIGxvbmcuIFZpZWMgbm9pIGxvbmcgcXVhIHNvbSBob2FjIGNo byByYW5nIGNoaW5oIHNhY2ggZGEgZHVvYyBub2kgbG9uZyBjbyANCnRoZSBsYW0gY2hlY2ggaHVv bmcgbmh1bmcgbm8gbHVjIGJpbmggb24ga2luaCB0ZSB2aSBtbywgbGFtIGNobyBsYW0gcGhhdCBs ZW8gdGhhbmcgdHJvIA0KbGFpIHZhIGdheSBhcCBsdWMgZG9pIHZvaSBjYWMgY2FuIGNhbiB0aGFu aCB0b2FuIi4NCg0KTkhOTiBjdW5nIG5oYW4gdGh1YyBybyBkaWV1IG5heS4gVmllYyBiYW4gaGFu aCBUaG9uZyB0dSAxMyB2YW8gdGhhbmcgNSBsYSBtb3QgbWluaCANCmNodW5nLiBUaG9uZyB0dSBu YXksIGNobyBkdSBnYXkgbmhpZXUgdHJhbmggY2FpLCBuaHVuZyBjbyBtdWMgdGlldSBkdW5nIGRh biBsYSBsYW0gDQpsYW5oIG1hbmggaG9hIGhlIHRob25nIG5nYW4gaGFuZyB0aHVvbmcgbWFpIGN1 YSBWaWV0IE5hbS4gSGUgdGhvbmcgZG8gZGEgYnVuZyBubywgDQpkYWMgYmlldCBrZSB0dSBraGkg VmlldCBOYW0gZ2lhIG5oYXAgV1RPLCBuYXkgbGVuIGRlbiBob24gODAgbmdhbiBoYW5nIHRodW9u ZyBtYWkuDQoNCkR1IGx1YW4gYmF5IHRvIG1vaSBxdWFuIG5nYWkgdmUgdGluaCB0cmFuZyB2b24s IG5hbmcgbHVjIHF1YW4gbHkgcnVpIHJvIHZhIGNoYXQgbHVvbmcgDQpkYW5oIG11YyBjaG8gdmF5 IGN1YSBtb3Qgc28gbmdhbiBoYW5nLiBOZ2F5IHR1IGN1b2kgbmFtIG5nb2FpLCBuaG9tIGNvbmcg dGFjIG5nYW4gDQpoYW5nIHRodW9jIERpZW4gZGFuIGRvYW5oIG5naGllcCBWaWV0IE5hbSAtIG1v dCBob2kgbmdoaSB0aHVvbmcgbmllbiB0byBjaHVjIHRydW9jIA0KY2FjIHBoaWVuIGRvaSB0aG9h aSBjaGluaCBzYWNoIGdpdWEgQ2hpbmggcGh1IHZhIGNhYyBuaGEgdGFpIHRybyBxdW9jIHRlIC0g ZGEgY2FuaCBiYW8gDQpkaWV1IG5heTogIktob2FuZyAyNSUgY2FjIG5nYW4gaGFuZyB4ZXAgaGFu ZyBjdW9pIHRyb25nIHRvbmcgc28gODAgbmdhbiBoYW5nIG8gVmlldCANCk5hbSBkZXUgZ2FwIGto byBraGFuIHRyb25nIGhvYXQgZG9uZyBraW5oIGRvYW5oLCBoYXUgaGV0IHRyb25nIHRpbmggdHJh bmcgdGhpZXUgdm9uIHZhIA0Ka2hvIGNvIHRoZSB0cnUgdnVuZyIuDQoNCkNvIHRoZSBub2kgY2hp bmggc2FjaCB0aWVuIHRlIGN1YSBOSE5OIHZhbiBraWVuIHRyaSBtdWMgdGlldSBvbiBkaW5oIHZp IG1vIG5nYXkgY2Ega2hpIA0KY28gTmdoaSBxdXlldCAyMyBjdWEgQ2hpbmggcGh1IG5oYW0gaGEg bGFpIHN1YXQgaHV5IGRvbmcgeHVvbmcga2hvYW5nIDEwJSB2YSBsYWkgDQpzdWF0IGNobyB2YXkg a2hvYW5nIDEyJS4NCg0KT25nIEdpYXUgZ2lhaSB0aGljaCB0YWkgY3VvYyBob3Agbm9pIHRyZW46 ICJOZ2FuIGhhbmcgTmhhIG51b2Mga2hvbmcgdGhlIGNhbiB0aGllcCB2YW8gDQp0aGkgdHJ1b25n IGxhaSBzdWF0IGhpZW4gbmF5IGJhbmcgbWVuaCBsZW5oIGhhbmggY2hpbmgiLiBEaWV1IGRvLCBk dSBraG9uZyBkb25nIGRpZXUgDQp2b2kgbmdoaSBxdXlldCBjdWEgQ2hpbmggcGh1LCBuaHVuZyB0 aGUgaGllbiBtb3QgY2FjaCB0aWVwIGNhbiBsYW5oIG1hbmguIENodSBuaGllbSANClV5IGJhbiBU YWkgY2hpbmggLSBOZ2FuIHNhY2ggUXVvYyBob2kgUGh1bmcgUXVvYyBIaWVuIG5oYW4geGV0OiAi RGlldSBoYW5oIHRpZW4gdGUgDQp2dWEgcXVhIHRodWMgc3UgY28gbmhpZXUgY28gZ2FuZyIuDQoN ClRhaSBraG9hIGxhaSB0aGlldSBkb25nIGJvDQoNClR1eSBuaGllbiwgY2hvIGR1IGNoaW5oIHNh Y2ggY28gbm8gbHVjIG5odSB0aGUgbmFvIHRoaSBrZXQgcXVhIHRodWMgdGUgbW9pIGxhIHRodW9j IGRvIA0KcXVhbiB0cm9uZyBuaGF0LiBDaHUgbmhpZW0gVXkgYmFuIEtpbmggdGUgUXVvYyBob2kg SGEgVmFuIEhpZW4gY2hpIHJvIHZpZWMgdGhhdCBjaGF0IA0KdGluIGR1bmcsIGxhaSBzdWF0IHRh bmcgY2FvIGRhIGxhbSBwaGFuIGxvbiBjYWMgZG9hbmggbmdoaWVwIHJhdCBraG8ga2hhbiB2ZSB2 b24gY2hvIHNhbiANCnh1YXQga2luaCBkb2FuaC4NCg0KVGhlbyBnaGkgbmhhbiBjdWEgdXkgYmFu LCBsYWkgc3VhdCB2YXkgbmdhbiBoYW5nIGRhIGxlbiB0b2kgMTctMTglL25hbSwgY28gbm9pIGxl biB0b2kgDQoxOS0yMCUvbmFtIHRyb25nIHF1aSAxLCB2YSB2YW4gY29uIG8gbXVjIGNhbyBwaG8g YmllbiAxMyUvbmFtIHRyb25nIHRob2kgZ2lhbiBnYW4gDQpkYXkuIFNvbmcsIE5ITk4gY28gdGhl IGxhbSBnaT8NCkhvIGRhIHZhIHNlIGtob25nIHRoZSBsYW0gZ2ksIGtoaSBraG9uZyBjbyBzdSBr ZXQgaG9wIHZvaSBjaGluaCBzYWNoIHRhaSBraG9hLiBEaWV1IHRyYW4gDQp2b2kgVXkgYmFuIFRo dW9uZyB2dSBRdW9jIGhvaSwgb25nIEdpYXUgbm9pLCBvbmcgdmFuIHRodW9uZyB4dXllbiB0cmFv IGRvaSB2b2kgQm8gDQp0cnVvbmcgVGFpIGNoaW5oIFZ1IFZhbiBOaW5oIG5oYW0gZGFtIGJhbyB0 aW5oICJsaWVuIHRob25nLCB0aG9uZyBuaGF0IiBnaXVhIGhhaSANCmNoaW5oIHNhY2ggbmF5Lg0K DQpDbyBsZSwgZG8gY2hpIGxhIGxvaSBiaWVuIGJhY2ggYm9pIHRyZW4gdGh1YyB0ZSwgY2hpbmgg c2FjaCB0YWkga2hvYSB2YW4ga2hvbmcgbmd1bmcgbW8gDQpyb25nLiBIYWkga2hvYW4gY2hpIGxv biBuaGF0IGxhIGNoaSB0aHVvbmcgeHV5ZW4sIHZhIGNoaSBkYXUgdHUgcGhhdCB0cmllbiB0YW5n IHR1b25nIHVuZyANCm8gbXVjIGdhbiA3JSB2YSA0MyUgc28gdm9pIGR1IHRvYW4gbmFtIDIwMTAu DQoNCkRvIGxhIG1vdCBtdWMgdGFuZyBrZXAgcmF0IGNhbywgdGhlbyBiYW8gY2FvIGN1YSBDaGlu aCBwaHUgdmEgZGFuaCBnaWEgY3VhIFF1b2MgaG9pLiANCk1vdCB2aSBkdSBraGFjLCB0cm9uZyBu YW0gbmF5IENoaW5oIHBodSB0YW5nIGN1b25nIGJhbiB0cmFpIHBoaWV1LCB0cmkgZ2lhIHRvaSA2 OC4wMDAgdGkgDQpkb25nLCB2dWEgaHV0IGhldCBuZ3VvbiB2b24gY3VhIHhhIGhvaSB2YSBkb2Fu aCBuZ2hpZXAsIHZ1YSBraG9uZyBjYWNoIG5hbyBoYSBsYWkgc3VhdCANCm5odSBjaGluaCBDaGlu aCBwaHUgbW9uZyBtdW9uLiBPbmcgSGllbiBjdWEgVXkgYmFuIFRhaSBjaGluaCAtIE5nYW4gc2Fj aCBub2k6ICJEYXUgDQp0dSB0dSBuZ2FuIHNhY2ggbmdheSBtb3QgdGFuZyB2YSB2b2kgdHkgdHJv bmcgbG9uIHRoaSBzZSByYXQga2hvIGRpZXUgaGFuaCBraW5oIHRlIHZpIG1vIi4NCg0KTmh1bmcg ZG8gbW9pIGNoaSBsYSBwaGFuIG5vaSBjdWEgY2hpbmggc2FjaCB0YWkga2hvYSwgdHVjIGNoaSB0 aWV1IGNvbmcuIFBobyBjaHUgdGljaCANClF1b2MgaG9pIE5ndXllbiBEdWMgS2llbiBjaG8gYmll dCwgY2hpIHRpZXUgY29uZyBoaWVuIG5heSBraG9uZyBjaGkgZ29pIGdvbiB0cm9uZyBjYW4gDQpk b2kgbmdhbiBzYWNoLCBtYSBjb24gbmhpZXUgY29uIGR1b25nIGtoYWMgbmhhdSwgbmh1IHN1IGR1 bmcgY2FjIGxvYWkgY2hpbmggc2FjaCwgdHJhaSANCnBoaWV1IGNoaW5oIHBodSwgdmEgY2FjIG5n dW9uIGx1YyBraGFjIG5nb2FpIG5nYW4gc2FjaCBuaGEgbnVvYy4NCg0KTmhpbiB2ZSBwaGlhIFRo b25nIGRvYyBOSE5OIHZhIEJvIHRydW9uZyBUYWkgY2hpbmggdHJvbmcgcGhpZW4gdGhhbyBsdWFu IGhvbSBkbywgDQpvbmcgS2llbiBub2k6ICJDYWMgZG9uZyBjaGkgY2FuIGNodSB5IGNoaSB0aWV1 IGNvbmcuIE5odW5nIGNhaSBuYXkgbGEgcXVhIGJvbSBsYW0gdGFuZyANCmxhbSBwaGF0IHZhIHRh bmcgZ2lhIHRpZXUgZHVuZyIuDQoNCkxpZW4gcXVhbiBkZW4gc3UgcGhvaSBob3AgZ2l1YSBjaGlu aCBzYWNoIHRhaSBraG9hIHZhIHRpZW4gdGUsIFZpZW4gdHJ1b25nIEtpbmggdGUgVmlldCANCk5h bSBUcmFuIERpbmggVGhpZW4gbmhhbiB4ZXQ6ICJUcm9uZyBtYXkgbmFtIHZ1YSByb2kgY2hpIG1v aSBjaGluaCBzYWNoIHRpZW4gdGUgbGEgdmF0IA0KdmEsIHRyb25nIGtoaSBjaGluaCBzYWNoIHRh aSBraG9hIGxhaSByYXQgIm9uIGRpbmgiIFt0cm9uZyBtdWMgY2hpXS4gVHJvbmcgZGlldSBraWVu IGtobyANCmtoYW4gY3VhIG5lbiBraW5oIHRlLCBsZSByYSBjaGluaCBzYWNoIHRhaSBraG9hIHBo YWkgY2hpdSBtb3QgcGhhbiB0cmFjaCBuaGllbSwgbmh1bmcgDQpuZ2FuIHNhY2ggdmFuIGN1IGNo aSB0aWV1IHJhdCBbdGhvYWkgbWFpXS4NCg0KT25nIEhpZW4gbmhhbiB4ZXQ6ICJUaW5oIGRvYyBs YXAgdmEgb24gZGluaCB2ZSBjaGluaCBzYWNoIHRpZW4gdGUgbGEgdGhhcCIuIFBobyBjaHUgdGlj aCANClF1b2MgaG9pIE5ndXllbiBEdWMgS2llbiBkb25nIHkgZGlldSBuYXksIG5odW5nIHRob25n IGNhbSB2b2kgVGhvbmcgZG9jIEdpYXU6IA0KIlRyb25nIHRhdCBjYSBjYWMgbG9haSBraG8ga2hh biBsaWVuIHF1YW4gZGVuIGRpZXUgaGFuaCBraW5oIHRlLCB0aGkgZGlldSBoYW5oIHZlIHRhaSBj aGluaCANCnRpZW4gdGUgbGEga2hvIG5oYXQiLg0KDQpUcnVvYyBuaHVuZyBsb2kgYW4gdWkgbmF5 LCBvbmcgR2lhdSBwaGFuIHRyYW46ICJMYWkgc3VhdCBjYW8gdmFuIGxhIHRyYW4gdHJvIGN1YSBu aGlldSBkb2kgDQp0aG9uZyBkb2MgTkhOTiwga2UgY2EgdG9pLCBuaHVuZyBsYW0gcGhhdCBjYW8g bmVuIHZpZWMgeHUgbHkga2hvbmcgZGUiLiBOaWVtIHRyYW4gdHJvIA0KZG8gY28gbGUgc2UgdmFu IGNvbiBkdW9jIGRhdCByYSB2b2kgYmF0IGt5IHRob25nIGRvYyBuYW8sIG1vdCBraGkgY28gY2F1 IGN1YSBuZW4ga2luaCB0ZSANCnZhbiBjb24gbmh1IGhpZW4gdGFpLCBuaGF0IGxhIGtoaSBjaGlu aCBzYWNoIHRhaSBraG9hIGtob25nIGRvbmcgaGFuaCB2b2kgY2hpbmggc2FjaCB0aWVuIHRlIG5o dSBoaWVuIG5heS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIw MTA0NS8yMDEwMTEwNjEzMjMwNi5hc3B4IFRoZW8gTmd1b2kgTGFvIERvbmcgMDYvMTEvMjAxMCA5 OjAwICANCg0KVGh1IHR1b25nOiBHaWEgaGFuZyBob2EgdGFuZyAicmF0IG1hdCIgICANCg0KKEFu aDogS2hhY2ggY2hvbiBtdWEgY2EgdGFpIGNobyBkYXUgbW9pIEJpbmggRGllbikgDQoNCk5oYSBj dW5nIGNhcCB2aWVuIGR1IGx5IGRvIGRlIHRhbmcgZ2lhIHNhbiBwaGFtLiBHaWEgaGFuZyBob2Es IGRhYyBiaWV0IGxhIHJhdSwgY3UsIHF1YSwgDQp0aHVjIHBoYW0gdHVvaSBzb25nIHRhaSBjYWMg Y2hvIGRhbmcgdGFuZyBjYW8uIA0KDQpUZSBudW9jIHRoZW8gbXVhDQogDQpEYXUgdGhhbmcgMTEt MjAxMCwgbW90IHNvIHNpZXUgdGhpIHRhaSBUUEhDTSB0YW5nIGdpYSAzJSAtIDI1JSBoYW5nIHRy YW0gbWF0IGhhbmcgDQpiYW5oIGtlbywgdGh1YyBwaGFtLCBob2EgbXkgcGhhbSwgZGF1IGFuLCBk byBnaWEgZHVuZywgbmhvbSwgbmh1YS4uLiBEYWkgZGllbiBzaWV1IHRoaSANCkhhIE5vaSBjaG8g YmlldCBuaGEgY3VuZyBjYXAgbmV1IHJhIGR1IGx5IGRvIG5odSB0aSBnaWEgdGFuZywgdmFuZyB0 YW5nLCBuZ3V5ZW4gbGlldSANCnRhbmcuLi4gZGUgdGFuZyBnaWEuIE5oaWV1IG5oYSBjdW5nIGNh cCBtdW9uIHRhbmcgZ2lhIGhvYWMgZGUgeHVhdCB0YW5nIGdpYSBraG9uZyBkdW9jIA0Kc2lldSB0 aGkgY2hhcCBuaGFuLCBsYXAgdHVjIGdheSBhcCBsdWMgYmFuZyBjYWNoIHRob25nIGJhbyBoZXQg aGFuZywgY3VuZyBjYXAgbmhvIGdpb3QgDQpob2FjIHRhbSBuZ3VuZyBjdW5nIGNhcCBoYW5nLiBN b3Qgc28gbmhhIGN1bmcgY2FwIGNob24gaGluaCB0aHVjIGtodXllbiBtYWkgZ2lhbSANCmdpYSwg dGFuZyBxdWEgaG9hYyB0aGF5IGRvaSBiYW8gYmksIGdpYW0gdHJvbmcgbHVvbmcgbW9uIGhhbmcu Li4gZGUga2hlbyBsZW8gdGFuZyBnaWEuIA0KVGhlbyBjYWMgc2lldSB0aGksIGtob25nIGxvYWkg dHJ1IGtoYSBuYW5nIG5oYSBjdW5nIGNhcCAidGUgbnVvYyB0aGVvIG11YSIuIA0KDQpUYWkgY2Fj IGNobyBsZSB0cmVuIGRpYSBiYW4gVFBIQ00sIG5nb2FpIG5odW5nIG1hdCBoYW5nIGtlIHRyZW4s IHRhbmcgInJhdCIgbmhhdCB0cm9uZyANCm51YSB0aGFuZyBuYXkgbGEgY2FjIGxvYWkgcmF1LCBj dSwgcXVhLCB0aHV5IGhhaSBzYW4gdHVvaSBzb25nLiBUYWkgY2hvIEFuIERvbmcgKHF1YW4gNSks IA0KUmFjaCBPbmcgKHF1YW4gOCksIFRoaSBOZ2hlIChxdWFuIEJpbmggVGhhbmgpLCBnaWEgbmhp ZXUgbWF0IGhhbmcgZHVuZyB0cm9uZyBidWEgDQpjb20gaGFuZyBuZ2F5IHZhbiBkdW5nIG8gbXVj IGNhbyB2YSB0YW5nIG5oZTogZHVhIGxlbyAxMC4wMDAgZG9uZyAtIDEyLjAwMCBkb25nL2tnLCAN CnhhIGxhY2ggMzUuMDAwIGRvbmcva2csIGRhdSBjbyB2ZSAxNS4wMDAgZG9uZyAtIDIwLjAwMCBk b25nL2tnLCBib25nIGNhaSB0cmFuZyBEYSBMYXQgDQozNS4wMDAgZG9uZyAgLSAzNy4wMDAgZG9u Zy9rZywga2hvYWkgdGF5IGhvbmcgRGEgTGF0IDY1LjAwMCBkb25nL2tnLCBjYSBybyA1NS4wMDAg DQpkb25nIC0gNjAuMDAwIGRvbmcva2csIGNhIGRpZXUgaG9uZyAzNy4wMDAgZG9uZyAgLSA0NS4w MDAgZG9uZy9rZywgY2Ega2VvIDkwLjAwMCBkb25nIA0KLSAxMjAuMDAwIGRvbmcva2csIGNhIG51 YyAzNS4wMDAgZG9uZyAtIDQ1LjAwMCBkb25nL2tnLCBjYSB0aHUgMTIwLjAwMCBkb25nIC0gMTMw LjAwMCANCmRvbmcva2cuLi4gTW90IHNvIHRpZXUgdGh1b25nIGNobyBUaGkgTmdoZSBjaG8gcmFu ZyBkbyBhbmggaHVvbmcgY3VhIG11YSBsdSBvIG1pZW4gDQpUcnVuZywgZ2lhIG8gY2hvIGRhdSBt b2kgdGFuZyBuZW4gaG8gcGhhaSB0YW5nIHRoZW8uIE11YyBnaWEgbmF5IGRhICJkdW5nIiBob24g bW90IA0KdHVhbiBuYXksIHR1eSB0aGVvIGJ1b2kgY2hvIG1hIGRhbyBkb25nIHRhbmcsIGdpYW0g NS4wMDAgZG9uZyAgLSAzLjAwMCBkb25nL2tnLiANCg0KTW90IGNhbiBibyBCYW4gUXVhbiBseSBj aG8gZGF1IG1vaSBCaW5oIERpZW4gY2hvIGJpZXQgdmkgdGhlbyBkb2kgZ2lhIGNhIGhhbmcgaG9h IG1vaSANCm5nYXkgbmVuIHZ1YSByb2kgZ2hlIGNobyBnYW4gbmhhLCBjaGkgInNvYyIgdmkgYmkg bmd1b2kgYmFuICJjaGVtIiBxdWEgIm5nb3QiOiAiVG9pIA0KbXVhIDIwMGcgdG9pIDEwLjAwMCBk b25nLCAzMDBnIHhhIGxhY2ggYnVwIDExLjAwMCBkb25nLiBUcm9uZyBraGkgZG8sIHRhaSBjaG8g ZGF1IG1vaSwgDQpnaWEgdG9pIGNoaSAzNS4wMDAgZG9uZy9rZywgeGEgbGFjaCAxOC4wMDAgZG9u ZyAtIDIwLjAwMCBkb25nL2tnLiBLaG9uZyBoaWV1IHR1IGNobyBzaSANCnZlIGNobyBsZSwgbmd1 b2kgYmFuIGNhbiwgZG8sIGRvbmcsIGRlbSB2YSBjb25nIGNoaSBwaGkgdGhlIG5hbyBtYSBiYW4g cXVhIGRhdCIgLSBjaGkgYnVjIHh1Yy4gIA0KDQpodHRwOi8vdmVmLnZuLzIwMTAtMTEtMDctZGFu Zy1udW9jLXNvaS1sdWEtYm9uZy10aG9uZy10aW4tbGFpLW5oaWV1LWxvYW4tIFRhYyBnaWE6IExl IEtoYWMgDQoNClRodSB0dW9uZzogRGFuZyAibnVvYyBzb2kgbHVhIGJvbmciLCB0aG9uZyB0aW4g bGFpIG5oaWV1IGxvYW4gLSBoYWkgY28gcXVhbiBkaWV1IGhhbmggdmEgDQpnaWFtIHNhdCB0aWVu IHRlIG1hdSB0aHVhbiBuaGF1LCBDaGluaCBwaHUgbGFpIGR1YSByYSBtdWMgbXVjIHRpZXUgZGll dSBoYW5oIGxhbSBwaGF0IG1vaSAgDQoNCihWRUYpIC0gS2hpIGtpbmggdGUgY28gZGF1IGhpZXUg YmF0IG9uLCBtdWMgdGlldSBkZSByYSBwaGFpIHRob25nIG5oYXQsIHRob25nIHRpbiBjaGluaCAN CnhhYyB2YSBtaW5oIGJhY2gsIGNoaW5oIHNhY2ggY2FuIG5oYXQgcXVhbiBkZSBwaGF0IGRpIHRp biBoaWV1IHJvIHJhbmcgbmhhbSBvbiBkaW5oIHRoaSANCnRydW9uZyB2YSB0YW0gbHkgbmd1b2kg ZGFuLiBTb25nLCBkaWV1IGRvIGR1b25nIG5odSBjaHVhIHRoZSBoaWVuIHJvLCBuZ2F5IGNhIHRy b25nIA0KdGhvaSBkaWVtIG5vbmcgYm9uZyBuaGF0Lg0KDQpOZ2F5IHRhaSBidW9pIGhvcCB0aG9u ZyBiYW8gY2FjIGdpYWkgcGhhcCBjYXAgYmFjaCBkaWV1IGhhbmgga2luaCB0ZSBtb2kgZGF5LCBv bmcgTGUgDQpEdWMgVGh1eSAtIENodSB0aWNoIFV5IGJhbiBHaWFtIHNhdCB0YWkgY2hpbmggcXVv YyBnaWEsIG5oYW4gbWFuaCwgbW90IHRyb25nIG5odW5nIA0KYmllbiBwaGFwIHF1YW4gdHJvbmcg ZGUgYmluaCBvbiB0aGkgdHJ1b25nIGNoaW5oIGxhIHRob25nIHRpbiBjaGluaCB4YWMgdmEgbWlu aCBiYWNoIGRlIA0KZGluaCBodW9uZyB2YSB0YW8gbmllbSB0aW4gY2hvIGRhbi4gIA0KDQpUdXkg bmhpZW4sIG5nYXkgdHJvbmcgdnUgdmllYyBuYXksIGNhIGhhaSBjbyBxdWFuIHF1YW4gdHJvbmcg bmhhdCB2ZSBkaWV1IGhhbmggdmEgZ2lhbSANCnNhdCB0aWVuIHRlIGRhIG1hdSB0aHVhbiBuaGF1 LiBIb24gdGhlLCB0YWkgY3VvYyBob3AgYmFvIENoaW5oIHBodSBuZ2F5IDYvMTEsIG1vaSBtdWMg DQp0aWV1IGRpZXUgaGFuaCBsYW0gcGhhdCB0dSB0cnVvYyBkZW4gbmF5IGRhIGtob25nIGNvbiBk dW9jIG5oYWMgZGVuLCBtYSBjb24gdGhlbSBtb3QgDQptdWMgbW9pIGN1bmcgdm9pIHRoYWkgZG8g ZGF5IHF1eWV0IHRhbSB0aHVjIGhpZW4gbmh1IG5odW5nIGxhbiB0cnVvYy4NCg0KQmlldCB0aW4g YWk/DQoNCk9uZyBMZSBEdWMgVGh1eSBub2kgdHJ1b2MgYmFvIGdpb2kgcmFuZywgdHJvbmcgdm9u ZyAxNSBuZ2F5IGRhdSB0aGFuZyAxMCwgdGllbiBndWkgdGlldCANCmtpZW0gYmFuZyBWTkQgY3Vh IG5ndW9pIGRhbiBnaWFtIGRlbiA0NS4wMDAgdHkgZG9uZyBzbyB2b2kgY3VvaSB0aGFuZyA5LCB0 dW9uZyANCmR1b25nIGhvbiAyIHR5IFVTRC4NCg0KVHJvbmcgY2hpZXUgbmd1b2MgbGFpLCB0aWVu IGd1aSBuZ29haSB0ZSBsYWkgdGFuZyBsZW4uIE5ldSBuaHUgY3VvaSB0aGFuZyA5LCBzbyBkdSB0 aWVuIGd1aSANCm5nb2FpIHRlIHRoYXAgaG9uIHNvIGR1IGNobyB2YXkgbmdvYWkgdGUga2hvYW5n IDQwLjAwMCB0eSwgdGhpIHRyb25nIDE1IG5nYXkgZGF1IHRoYW5nIA0KMTAsIHNvIGNoZW5oIGxl Y2ggbmF5IGNoaSBjb24gMjAuMDAwIHR5LCB0dWMgdGllbiBndWkgbmdvYWkgdGUgZGEgdGFuZyAy MC4wMDAgdHkgdHUgdHJvbmcgDQpudW9jLiBOZ3VvaSBkYW4gZGEgcnV0IFZORCBkZSBtdWEgbmdv YWkgdGUgaG9hYyBtdWEgdmFuZywgbW90IHNvIGNhdCB0cnUsIHZhIGNhIGd1aSANCmxhaSBuZ2Fu IGhhbmcgZHVvaSBoaW5oIHRodWMgbmdvYWkgdGUNCg0KTmh1bmcgbmdheSBzYXUgZG8sIE5nYW4g aGFuZyBOaGEgbnVvYyBsYWkgY2hpbmggdGh1YyBraGFuZyBkaW5oLCBtb3Qgc28gYmFvIGR1YSB0 aW4gDQp2ZSBzbyBkdSB0aWVuIGd1aSB0aWV0IGtpZW0gVk5EIGxhIGtob25nIGNoaW5oIHhhYy4g VGh1YyB0ZSwgdGllbiBndWkgdGlldCBraWVtIGJhbmcgDQpWTkQgY3VhIGRhbiBjdSB0YWkgaGUg dGhvbmcgbmdhbiBoYW5nIHZhbiB0aWVwIHR1YyB0YW5nLg0KDQooQW5oOiBUaG9uZyB0aW4gbmhp ZXUgbG9hbiBuZ2F5IGNhIHRyb25nIHRob2kgZGllbSBub25nIGJvbmcgbmhhdC4gQW5oOmtpbmh0 ZTI0aCkNCg0KTmdhbiBoYW5nIE5oYSBudW9jIGRhIGNvbmcgYm8gc28gbGlldSB0aG9uZyBrZSBj aGluaCB0aHVjIGRlIGNodW5nIG1pbmgsIG5ndW9uIHZvbiANCmh1eSBkb25nIGN1YSBoZSB0aG9u ZyBuZ2FuIGhhbmcgdmFuIHRpZXAgdHVjIHRhbmcuDQoNClRyb25nIGRvLCB0aWVuIGd1aSB0aWV0 IGtpZW0gYmFuZyBWTkQgY3VhIGRhbiBjdSBkZW4gbmdheSAxNS8xMCB0YW5nIDAsNjQlIChnYW4g NS40MDAgDQp0eSBkb25nKSBzbyB2b2kgbmdheSAzMC85LzIwMTA7IHZhIGRlbiB0aG9pIGRpZW0g aGllbiB0YWksIHRpZW4gZ3VpIHRpZXQga2llbSBiYW5nIGRvbmcgDQpWaWV0IE5hbSBjdWEgZGFu IGN1IHRhaSBoZSB0aG9uZyBuZ2FuIGhhbmcgdmFuIHRpZXAgdHVjIHRhbmcuIFZpIHZheSwgdGhv bmcgdGluIG1hIG1vdCANCnNvIHRvIGJhbyBkYW5nIHRhaSBsYSB0aGlldSBjaGluaCB4YWMuDQoN CkN1bmcgdHJvbmcgZGllbiBiaWVuIHZlIGRpZXUgaGFuaCBjaGluaCBzYWNoIHRpZW4gdGUgbmh1 bmcgbmdheSB2dWEgcXVhLCB2ZSBkaWV1IGhhbmggDQpsYWkgc3VhdCwgb25nIExlIER1YyBUaHV5 IHR1eWVuIGJvLCBDaGluaCBwaHUga2hvbmcgZGF0IHZhbiBkZSBnaWFtIGxhaSBzdWF0IHZhIGNo byANCnBoZXAgY2FjIG5nYW4gaGFuZyB0aHVvbmcgbWFpIGR1b2MgaHV5IGRvbmcgdmEgY2hvIHZh eSB0aGVvIGNvIGNoZSB0aGkgdHJ1b25nLg0KDQpUdXkgbmhpZW4sIHRyb25nIGJ1b2kgaG9wIHZv aSBIaWVwIGhvaSBOZ2FuIGhhbmcgdmEgZGFpIGRpZW4gY3VhIG5oaWV1IG5nYW4gaGFuZyANCnRo dW9uZyBtYWkgbG9uIG5nYXkgNS8xMSwgZG8gTmdhbiBoYW5nIE5oYSBudW9jIGNodSB0cmksIGto aSBjbyBuaHVuZyBkZSB4dWF0IHZlIHZpZWMgDQpkb25nIHRodWFuIG1vdCBtYXQgYmFuZyBsYWkg c3VhdCBodXkgZG9uZyBWTkQgbW9pIGxhIDEyJSB0aGF5IGNobyBtdWMgMTElIG1vdCANCm5hbSBo aWVuIHRhaSwgTmdhbiBoYW5nIE5oYSBudW9jIGRhIGRlIG5naGkgSGllcCBob2kgTmdhbiBkdW5n IHJhIGRpZXUgcGhvaSB2aWVjIHRodWMgDQpoaWVuLg0KDQpEaWV1IG5heSBsYWkgZ2F5IHJhIG5o dW5nIHRob25nIHRpbiBraGFjIG5oYXUgdmUgc3UgY2FuIHRoaWVwIGN1YSBOZ2FuIGhhbmcgTmhh IG51b2MgDQp0cm9uZyB0aHVjIGhpZW4gbGFpIHN1YXQgbW9pLg0KDQpTYXUgZG8sIG1vdCBxdWFu IGNodWMgTmdhbiBoYW5nIE5oYSBudW9jIHBoYXQgYmlldSwgZG8gbGEgcXV5ZXQgZGluaCBjdWEg Y2FjIHRoYW5oIA0KdmllbiBIaWVwIGhvaSBOZ2FuIGhhbmcsIHZhIGNvIHF1YW4gcXVhbiBseSBr aG9uZyBjYW4gdGhpZXAhLg0KDQpUdXkgdmF5LCBuaHVuZyBuaHVuZyBuZ2hpIG5nbyBjYW4gdGhp ZXAgY3VhIGNvIHF1YW4gcXVhbiBseSB2ZSB0aW5oIHRoaSB0cnVvbmcgY2h1YSB0aGUgDQp0YW4g aGV0LiBCb2kgdmksIGNoaSBjYWNoIGRheSBob24gbnVhIHRoYW5nICh0dSAxNS8xMCksIGNoaW5o IGNhYyBuZ2FuIGhhbmcgdGh1b25nIG1haSANCmRhIGNoaXUgcmF0IG5oaWV1IHN1YyBlcCBkZSB0 aWVwIHR1YyBnaWFtIHRoZW0gIm1heSBwaGFuIiBsYWkgc3VhdCwgZHVhIGxhaSBzdWF0IGh1eSBk b25nIA0KVk5EIHZlIDExJS4gRHUgbHVjIGRvLCBsYW0gcGhhdCB0aGFuZyA5IHZhIDkgdGhhbmcg ZGEgbGVuIHJhdCBjYW8sIG5odW5nIGRhdSBoaWV1IGNobyANCnRoYXkgbGFtIHBoYXQgdGhhbmcg MTAgdGFuZyBtYW5oIGxhIGtoYSBybyByYW5nLg0KDQpDYXUgaG9pIGRhdCByYTogQ28gcGhhaSBj YWMgbmdhbiBoYW5nIHRodW9uZyBtYWkga2hvbmcgbmhhbiBiaWV0LCBuaGFuIGRpbmggc2FpIGhh eSB2aSBtb3Qgc3UgY2FuIHRoaWVwIG5hbz8NCg0KVHJ1b2MgZG8sIGRhIGNvIHJhdCBuaGlldSBu aGFuIGRpbmgsIHN1YyBlcCBnaWFtIGxhaSBzdWF0IGxvbiwgdHJvbmcga2hpIGxhbSBwaGF0IGRh bmcgDQp0YW5nIGxlbiBkYSBsYW0gbWVvIG1vIHRoaSB0cnVvbmcgdGllbiB0ZSwgZ2lhbSB1eSB0 aW4gZG9uZyBWaWV0IE5hbS4NCg0KQ2h1YSBoZXQsIHRhaSBidW9pIGhvcCBiYW8gQ2hpbmggcGh1 IHRodW9uZyBreSwgbW90IG11YyBsYW0gcGhhdCBtb2kgZGEgZHVvYyB0dXllbiANCmJvIHRoYXkg Y2hvIHRhdCBjYSBuaHVuZyBtdWMgdGlldSB0cnVvYyBkYXkgbGEga2llbSBzb2F0IGxhbSBwaGF0 IG8gbXVjIG1vdCBjb24gc28uIEJvIA0KdHJ1b25nLCBDaHUgbmhpZW0gVmFuIHBob25nIENoaW5o IHBodSBOZ3V5ZW4gWHVhbiBQaHVjIGtoYW5nIGRpbmgsIENoaW5oIHBodSBzZSANCnRodWMgaGll biBuaGlldSBiaWVuIHBoYXAgcXV5ZXQgbGlldCBkZSBraWVtIHNvYXQgdmEgZ2l1IGxhbSBwaGF0 IG5hbSBuYXkgbyBtdWMgbW90IA0KY29uIHNvDQoNCk5odSB2YXksIGtob25nIGNvIG1vdCBjb24g c28gY3UgdGhlIG5hbyBkdW9jIGR1YSByYSBuaHVuZyBuaHVuZyBtdWMgdGlldSA3JSBkdW9jIA0K UXVvYyBob2kgdGhvbmcgcXVhLCByb2kgOCUgZHVvYyBDaGluaCBwaHUgZGUgcmEgc2F1IGRvIGRl dSBkYSBiaSB2dW90IHF1YS4gTW90IG5hbSwgMyANCmxhbiB0aGF5IGRvaSBtdWMgdGlldSB2aSBt byB2ZSBsYW0gcGhhdC4NCg0KVGhvbmcgdGluIG5hbyBjaG8gc3Ugb24gZGluaD8NCg0KT25nIExl IER1YyBUaHV5IGN1bmcgdGh1YSBuaGFuLCBjaGkgc28gZ2lhIHRpZXUgZHVuZyB0YW5nIGNhbyBk YW5nIGJhbyBkb25nLCB0aGFtIGNoaSANCnZ1b3QgcXVhIG1vdCBjb24gc28gbGEgZGEgdm8gbW90 IG11YyB0aWV1IHF1YW4gdHJvbmcuIENodW5nIHRhIG5vaSB1dSB0aWVuIG9uIGRpbmggdmkgDQpt bywgbWEgbXVjIHRpZXUgcXVhbiB0cm9uZyBsYSBsYW0gcGhhdCwgbGFpIHRhbmcgY2FvLg0KDQpU aHVjIHJhLCBkaWV1IG5heSB0dW5nIGR1b2MgbmhpZXUgbmd1b2kgY2FuaCBiYW8gdHUgcmF0IHNv bS4gSG9pIGRhdSB0aGFuZyAxMCwgb25nIFZvIA0KVHJpIFRoYW5oIC0gVmllbiBwaG8gVmllbiBO Z2hpZW4gY3V1IFF1YW4gbHkga2luaCB0ZSBUVSwgZGEgZHUgYmFvIHZlIG5odW5nIG5ndXkgY28g DQp0dSBkaWVuIGJpZW4gbW9pIHZlIGxhbSBwaGF0LCBjdW5nIG5odSBuaHVuZyBydWkgcm8ga2lu aCB0ZSB2aSBtbyBWaWV0IE5hbSBkYW5nIGRvaSANCm1hdC4NCg0KT25nIFRoYW5oIGR1YSByYSBx dWFuIGRpZW0gbGEgY2hpbmggc2FjaCB0aWVuIHRlIGNhbiBwaGFpIHRpZXAgdHVjIHRoYXQgY2hh dC4gIkNodW5nIHRhIA0Ka2hvbmcgdGhhdCBjaGF0IGRlbiBtdWMgYm9wIG5naGV0IG5lbiBraW5o IHRlLCBuaHVuZyB0aG9uZyBkaWVwIGNobyB0aGkgdHJ1b25nIHBoYWkgcmF0IA0Kcm8gcmFuZyBs YTogVmlldCBOYW0gcGhhaSBsYXkgb24gZGluaCB2aSBtbyBsYW0gdHJvbmciLCB0aGVvIG9uZyBU aGFuaC4NCg0KKEFuaDogS2hvbmcgY28gc3UgbmhhdCBxdWEgdmEgY2hpbmggeGFjLCBuZ3VvaSBk YW4gbWF0IG5pZW0gdGluLiBBbmg6Y2h1bmdraG9hbnZuKSANCg0KTmdhbiBoYW5nIEFEQiBjYW5o IGJhbywgbmh1bmcgcnVpIHJvIGJlbiB0cm9uZyBjdWEgbmVuIGtpbmggdGUgVmlldCBkYSBsYW0g Z2lhbSANCm5odW5nIG5vIGx1YyBkZSBvbiBkaW5oIG5lbiBraW5oIHRlIHZpIG1vLCBkdWEgbGFt IHBoYXQgdmFvIHF1eSBkYW8gbW9pIHZvaSB4dSBodW9uZyANCnRhbmcgY2FvIHZhIGdheSBhcCBs dWMgZG9pIHZvaSBjYW4gY2FuIHh1YXQgbmhhcCBraGF1Lg0KDQpOaHVuZyBiaWVuIGRvbmcgdHJl biBjbyB0aGUgbGFtIHhvaSBtb24gbmllbSB0aW4gY3VhIG5ndW9pIHRpZXUgZHVuZyB2YSBjYWMg bmhhIGtpbmggDQpkb2FuaCwgZGFuIHRvaSBoYXUgcXVhIGJhdCBvbiBkaW5oIGtpbmggdGUgdmkg bW8uIEtob25nIG9uIGRpbmgga2luaCB0ZSB2aSBtbyBsYWkgZGF0IHJhIA0KeWV1IGNhdSB0aGF0 IGNoYXQgY2hpbmggc2FjaCB0aWVuIHRlIHZhIHRhaSBraG9hIGhvbiBudWEgLSBkaWV1IGRvIHNl IGhhbiBjaGUgdHJpZW4gdm9uZyANCnRhbmcgdHJ1b25nIGN1YSBWaWV0IE5hbSB0cm9uZyBuYW0g dG9pIDIwMTEuDQoNCkRvIHZheSwgdmFuIGRlIGNodSB5ZXUgZG9pIHZvaSBWaWV0IE5hbSBiYXkg Z2lvIGxhIGNhYyBuaGEgaG9hY2ggZGluaCBjaGluaCBzYWNoIGNhbiANCmR1eSB0cmkgY2FjIGNo aW5oIHNhY2ggbW90IGNhY2ggb24gZGluaCB2YSBuaGF0IHF1YW4gdm9pIG5oYXUsIGRvbmcgdGhv aSBwaGFpIHBobyBiaWVuLCANCnR1eWVuIHRydXllbiBjYWMgY2hpbmggc2FjaCBkbyBtb3QgY2Fj aCBoaWV1IHF1YSB0b2kgY29uZyBjaHVuZyB2YSBjYWMgbmhhIGtpbmggZG9hbmggDQpjaG8gZGVu IGtoaSBsYW0gcGhhdCBkaSB2YW8gcXV5IGRhbyBvbiBkaW5oIHRoZW8geHUgaHVvbmcgZ2lhbS4N Cg0KRGVuIHRob2kgZGllbSBuYXksIG5odW5nIHRob25nIHRpbiBkYXUgdGllbiB2ZSBraW5oIHRl IHF1eSBJSUkgdmEgZHUgYmFvIGNhIG5hbSwgdm9pIGNoaSANCnNvIEdEUCB0YW5nIHRydW9uZyB0 b3QgdmEgY28gdGhlIHZ1b3QgbXVjIHRpZXUgNiw1JSwgbmVuIGRvbmcgdGhvbmcgdGluIGxhYyBx dWFuIHZhbiANCnZ1b3QgdHJvaS4NCg0KVGhhbSBjaGksIGR1IGNvIG5oaWV1IGNhbmggYmFvIHR1 IHRodWMgdGUgbGFtIHBoYXQgdmEgbmh1bmcgZHUgYmFvIGN1YSBjYWMgdG8gY2h1YyANCmtpbmgg dGUgdGhlIGdpb2kgbmh1IElGTSwgV0IsIEFEQiBkZXUgY2hvIHJhbmcsIHRpbmggdGhlbyBuYW0s IGxhbSBwaGF0IGN1YSBWaWV0IE5hbSANCnZhbyA4LDUtOSw1JSB0aGkgY2FjIGNvIHF1YW4gY2h1 YyBuYW5nIFZpZXQgTmFtIHZhbiBraGFuZyBkaW5oIGxhbSBwaGF0IHNlIGR1b2Mga2llbSANCmdp dSBvIG11YyA4JS4NCg0KSGllbiBuYXksIGtoaSBtdWMgdGlldSBraW0gZ2l1IGxhbSBwaGF0IHRo YXQgYmFpLCBtb3QgbXVjIG1vaSBkdW9jIGR1YSByYSwgbmh1bmcgDQpkdW9uZyBuaHUgbW9pIG5n aGkgbmdvIHRyb25nIGRhbiBjaHVhIHRoZSBwaGEgdGFuIGtoaSBtdWMgdGlldSBxdWFuIHRyb25n IG5heSBsaWVuIHR1YyANCnRoYXkgZG9pLCBrZW8gdGhlbyBkbyBsYSBzdSBtYXQgb24gZGluaCB2 ZSBjaGluaCBzYWNoIGRpZXUgaGFuaC4NCg0KSG9uIHRoZSwgbmdheSBjYSB0cm9uZyB0aG9pIGRp ZW0gbm9uZyBib25nIG5heSwgdmFuIGNvbiBzdSBiYXQgbmhhdCBnaXVhIGNhYyBjbyBxdWFuIGNv IA0KdHJhY2ggbmhpZW0uLi4gdmUgbmh1bmcgdGhvbmcgdGluIHF1YW4gdHJvbmcgdmEgbmhheSBj YW0uIFZheSBkYXUgbGEgc3UgbmhhdCBxdWFuLCANCmNoaW5oIHhhYyB2YSBtaW5oIGJhY2ggZGUg bmd1b2kgZGFuIGRhdCBuaWVtIHRpbj8gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGlu aHRyaS8yMDEwMTAvQ2hhcC1uaGFuLWxhbS1waGF0LW1vdC1jaHV0LXRhbmctdHJ1b25nLWtob25n LWNhby1sYW0tOTQzOTY1LyAwNjozNCwgMjMvMTAvMjAxMCAoR01UKzcpIA0KDQpRdW9jIGhvaTog IkxheSB5IGtpZW4gdmUgc3UgdGluIG5oaWVtIGRvaSB2b2kgY2FjIHRoYW5oIHZpZW4gQ2hpbmgg cGh1IiwgdGFpIGt5IGhvcCBuYXkgIA0KDQpOaGlldSBkYWkgYmlldSBRdW9jIGhvaSB0aWVwIHR1 YyAicGhlIiBiYW8gY2FvIGN1YSBDaGluaCBwaHUgY2h1YSBuaGluIHRoYW5nIHZhbyBzdSB0aGF0 LiANCkNvIERCIGRlIG5naGkgUXVvYyBob2kga2hvYSBuYXkgbmVuIGxheSBwaGlldSB0aW4gbmhp ZW0gdm9pIGNhYyB0aGFuaCB2aWVuIENoaW5oIHBodS4NCg0KRGFuIG5naGkgbmdvLCBraG8gY2hv IGRpZXUgaGFuaA0KDQpUaGVvIFBobyBDaHUgbmhpZW0gVXkgYmFuIFZhbiBob2EsIFRoYW5oIHRo aWV1IG5pZW4gdmEgTmhpIGRvbmcgUXVvYyBob2kgTGUgVmFuIEhvYywgDQpjaHV5ZW4gZHVvbmcg SG8gQ2hpIE1pbmggdnVhIHF1YSBzYXQgbG8gbmdoaWVtIHRyb25nIGNvIHBoYW4gdHJhY2ggbmhp ZW0gY3VhIEJvIEdpYW8gdGhvbmcgLSBWYW4gdGFpLg0KDQoiTmdhbmggZ2lhbyB0aG9uZyB0aWV1 IHRpZW4gbG9uLiBCYW8gbmhpZXUgbmdhbiBzYWNoIGRhcCBjaG8gaGEgdGFuZywgDQpkdW9uZyB4 YS4gS2UgaG9hY2ggbmhpZXUgbmFtIHRvaSB0aWVwIHR1YyB2YW4gbGEgcGhhaSBjbyBkdW9uZyBz YXQgDQpjYW8gdG9jLCBkdW9uZyBibyBjYW8gdG9jLiBWYXkgbmh1bmcgaGlldSBxdWEgZGVuIGRh dSIsIG9uZyBIb2Mgbm9pLg0KDQpUYWkgdG8gSGEgVGluaCwgQ2h1IG5oaWVtIFZhbiBwaG9uZyBR dW9jIGhvaSBUcmFuIERpbmggRGFuIGN1bmcgcGhhbiBhbmgsIA0KdGhpZW4gdGFpIG1pZW4gVHJ1 bmcgZGllbiByYSB0cmVuIGRpZW4gcm9uZyBjbyBuZ3V5ZW4gbmhhbiBzYXUgeGEgZG8gDQpiaWVu IGRvaSBraGkgaGF1LCBtdWEgcXVhIGxvbiwgbGFpIGRhaSBuZ2F5LiBOaHVuZyBjdW5nIGNvIG5n dXllbiBuaGFuIA0KdHUgcGhhdCB0cmllbiBjbyBzbyBoYSB0YW5nLCBwaGF0IHRyaWVuIG1vdCBz byBsaW5oIHZ1YyBzYW4geHVhdCBkYSANCmxhbSBtYXQgZGkgc3UgdHUgbmhpZW4gY3VhIGRvbmcg Y2hheSBraGkgdGhpZW4gdGFpIGxvbiB4YXkgcmEuLi4gDQoNCkRhbiBsYWkgbmh1bmcgY2F1IGNo dXllbiBjdSB0aGUgbWEgdGh1YyB0aWVuIGRvaSBob2kgcGhhaSBnaWFpIHF1eWV0LCANCm5oaWV1 IGRhaSBiaWV1IHBoYW4gbmFuIHJhbmcgYmFvIGNhbyBjdWEgQ2hpbmggcGh1IGNhIHBoYW4gZGFu aCBnaWEgDQpuYW0gY3UgdmEgbXVjIHRpZXUgY2hvIG5hbSBtb2kgdmFuICJjaHVuZyBjaHVuZyIg a2hvbmcgcm8gZGlhIGNoaS4NCk1vdCBzbyBkYWkgYmlldSBRdWFuZyBOYW0gc2F1IGtoaSBwaGF0 IGJpZXUgbmh1bmcgZGlldSBkYSB0aGFuaCBiYWkgYmFuIA0Kbmh1IHRhbmcgdHJ1b25nIG5vbmcs IGRhdSB0dSBjb25nIGRhbiB0cmFpLCBnaWFvIGR1Yywga2hhaSBraG9hbmcgdGhvLi4uIGRhIGtl dCBsYWkgInZhbiBuaHVuZyBkaWV1IGRhIG5vaSBtYWkgcm9pIi4NCg0KVGhhbSBjaGksIERCIE5n dXllbiBCYSBUaHV5ZW4gKExhbSBEb25nKSBjb24gbmdhYyBuaGllbiBraGkgDQoiYmFvIGNhbyBD aGluaCBwaHUgZHUgbmFtIHN1eSBnaWFtIGhheSBuYW0gY2hvbmcgZHVvYyBzdXkgZ2lhbSBjdW5n IGRldSB0b3QiLg0KT25nIFRodXllbiBjb24gcGhhdCBoaWVuLCBuYW0gMjAwNyAtIDIwMDggeGF5 IHJhIGxhbSBwaGF0LCBDaGluaCBwaHUgZGEgDQpuaGFuIGRheSBsYSBraHV5ZXQgZGllbSB0cm9u ZyBkaWV1IGhhbmguIE5odW5nIHRvbmcga2V0IGN1b2kgbmFtLCANCmtoaSBub2kgZGVuIHZpZWMg ImtoYWMgcGh1YyB4b25nIGxhbSBwaGF0IiBkYW5nIGx5IHRodW9jIHBoYW4gdHJhY2ggDQpuaGll bSBwaGFpIGxhbSwgdGhpIGxhaSB4ZW0gbmh1IG1vdCB0aGFuaCB0aWNoIHBoYW4ga2hvaS4NClR1 b25nIHR1LCB2aSAic2lldCBsYW0gcGhhdCIgcXVhIHRheSBuZW4gZGEgZ2F5IHJhIHN1eSBnaWFt IGtpbmggdGUuIA0KVmEgcm9pLCB2aWVjIGtoYWMgcGh1YyB0aW5oIHRyYW5nIHN1eSBnaWFtIGxh aSBkdW9jIGNvbmcgbmhhbiBsYSAidGhhbmggdGljaCIuDQoNCkRlbiB0dSB0byBCaW5oIFRodWFu LCBEQiBEYW8gWHVhbiBOYXkgY3VuZyB0byByYSBwaGllbiBsb25nIHZpIG5hbSBuYW8gDQpjdW5n IG5odSBuYW0gbmFvIGRldSBobyBoYW8gImdpYW0gZGFuIHh1YXQga2hvYW5nIHNhbiB0aG8iLCB0 cm9uZyBraGkgDQpjdSB0cmkgdHJvbmcgZG9pIENoaW5oIHBodSBraWVuIHF1eWV0ICJkdW5nIG5n YXksIGNoYW0gZHV0IGhhbiB2aWVjIHh1YXQga2hvYW5nIHNhbiB0aG8iIG1vaSBob3AgbGUuDQoN CkRpZXUgZGFuZyBxdWFuIG5nYWksIHRoZW8gREIgQ2FvIFNpIEtpZW0gKFRoYWkgQmluaCksIGRv IGxhIGtoaSBjYWMgDQpjaGluaCBzYWNoLCBjaHUgdHJ1b25nIGN1YSBDaGluaCBwaHUgIm5hbSB0 cmVuIGdpYXkiIGRhIGdheSByYSAic3UgeG9pIG1vbiBsb25nIHRpbiIgdHJvbmcgbmhhbiBkYW4u DQoiRGFuIGN1IG5naGkgbmdvIGNoaW5oIHNhY2ggbWEgQ2hpbmggcGh1IGJhbiByYS4gRGF5IHNl IGxhIG1vdCBkaWVtIA0Ka2hvIGtoYW4gdHJvbmcgdmllYyBkaWV1IGhhbmggY3VhIENoaW5oIHBo dSBzYXAgdG9pIiwgb25nIEtpZW0gbm9pLg0KDQpMYXkgcGhpZXUgdGluIG5oaWVtDQoNCk5nb2Fp IG5odW5nIG5ndXkgY28ga2luaCB0ZSAtIHhhIGhvaSAiYmlldCByb2kgbm9pIG1haSIgdGhpIGto YXUgeWV1IG5oYXQgdHJvbmcgcXVhbiBseSBkaWV1IGhhbmggdmFuIGxhLi4uIGNhbiBiby4NClRo ZW8gb25nIEtpZW0sIG1vaSBuaHVvYyBkaWVtIHRyb25nIGNob24gbHVhLCBxdWFuIGx5IHZhIHRv IGNodWMgDQpjb24gbmd1b2kgZGV1IGRhIGFuaCBodW9uZyBtYW5oIGRlbiB2aWVjIHRodWMgdGhp IGNhYyBtdWMgdGlldSANCnZ1YSBxdWEgY3VuZyBuaHUgcXV5ZXQgZGluaCBsb25nIHRpbiBjdWEg bmhhbiBkYW4gdm9pIENoaW5oIHBodS4NCk5oaWV1IGRhaSBiaWV1IGN1bmcgY2hvIHJhbmcsIHBo YWkgZGFuaCBnaWEsIG5nYXkgdHJvbmcgbmhpZW0ga3kgbmF5LCANCnZpZWMgaG9wIG5oYXQgY2Fj IGJvIGRhIG5nYW5oLiBCb2kgZGFuZyBjbyBkdSBsdWFuIGNobyByYW5nIHNhcCB0b2kgbW90IHNv IGJvIGR1b2MgaG9wIG5oYXQgc2UgbGFpLi4uIHRhY2guDQoNCkRhaSBiaWV1IFRyYW4gVGhpIFF1 b2MgS2hhbmggKEhhIE5vaSkgbmV1IGtpZW4gbmdoaSwgUXVvYyBob2kgbmdheSB0YWkgDQpreSBo b3AgbmF5IGNhbiBsYXkgeSBraWVuIHZlIHN1IHRpbiBuaGllbSBkb2kgdm9pIGNhYyB0aGFuaCB2 aWVuIENoaW5oIHBodSwgDQpjdW5nIGxhIGdvcCBwaGFuIGNobyBjb25nIHRhYyBuaGFuIHN1IERh aSBob2kgRGFuZyBzYXAgdG9pLiAiUGhhaSBsYXkgDQp5IGtpZW4gdGluIG5oaWVtIG5nYXkgY2h1 IGtob25nIHRoZSBkZSBkZW4ga3kgaG9wIHNhdSIsIGJhIEtoYW5oIG5vaS4NCg0KVGFpIGRvYW4g RGFrIExhaywgREIgTmd1eWVuIExhbiBEdW5nIHBoYW4gdGljaCBtb3Qgc28gdmFuIGRlIHZlIG5h bmcgbHVjIHF1YW4gbHkgbmhhIG51b2MuDQoiVG9pIHRoYXkgdG9hbiBkYW4gZGFuZyBsYW0gbmhh biBzdSwgZGkgZGF1IGN1bmcgdGhheSBkYW4gYmFuIA0KYWkgc2UgImxlbiIuIEhvIG1vbmcgbW9p IGxhbS4gVGEgZGFuZyBsdW5nIHR1bmcgdGltIHJhIG5ndW9pIA0KZ2lvaSBnaWFuZy4gSGkgdm9u ZyBESCBEYW5nIGNvIGJ1dCBwaGEgdmUgbmhhbiBzdTogdGltIGR1b2MgDQpsYW5oIGRhbyB0cm9u ZyBzYWNoLCBnaW9pIGdpYW5nLCBraG9uZyBiaWV0IG5ndXllbiB2b25nIGRvIA0KY28gZHVvYyB0 aHVjIGhpZW4gaGF5IGtob25nLiBUdSBjYXAgdGhvbiwgY2FwIHhhIGN1bmcgY2FuIGxhbmggZGFv IHRyb25nIHNhY2gsIGdpb2kgZ2lhbmciLCBvbmcgRHVuZyBub2kuDQpEaWV1IHF1YW4gdHJvbmcg bWEgbmd1b2kgZGFuIHRyb25nIGRvaSBvIGRvaSBuZ3UgcXVhbiBseSBsYSBjaHV5ZW4gYmllbiBr aW5oIHRlIC0geGEgaG9pIHBoYWkgcm8gbmV0LCB0aGFtIHZhbyBkb2kgc29uZy4NCg0KREIgTmd1 eWVuIERhbmcgS2luaCAoSGEgTm9pKSBuaGFuIHhldDogQ2hpbmggcGh1IGRpZXUgaGFuaCB2aSBt byANCmNodWEgdG90LCB2YW4gY29uIG5odW5nIHRvbiB0YWkgbG9uLCB0aGF0IHRob2F0IG5oaWV1 LiBEaWV1IG5heSANCnJhdCBuaGlldSBiYW8gY2FvIHRydW9jIGRheSBkYSBuaGFuIGRpbmggbmh1 bmcgY2h1YSB0aGF5IGNodXllbiBiaWVuLiANCk8ga3kgaG9wIHRydW9jIGRhIHBoYXQgaGllbiBo b24gMTAgdGluaCBjaG8gdGh1ZSBydW5nLCBjYSBuaHVuZyBub2kgDQpuaGF5IGNhbSB2ZSBxdWFu IHN1LCBhbiBuaW5oLCBxdW9jIHBob25nLiBOZXUga2hvbmcgY28gY3UgdHJpIA0KcGhhdCBoaWVu IHRoaSBDaGluaCBwaHUgY28gbmFtIGR1b2Mga2hvbmc/IFBoYXQgaGllbiByb2kgQ2hpbmggcGh1 IA0KbGFpIG1vaSBjaGkgZGFvLCBtYSBkYXkgbGEgdHJhY2ggbmhpZW0gcXVhbiBseSBjdWEgQ2hp bmggcGh1Lg0KR2lhIGNhIGN1bmcga2hpZW4gbmd1b2kgZGFuIGxvIGxhbmcuIE1vaSBsYW4gY2h1 YW4gYmkgdGFuZyBnaWEgDQpsYWkgcGhhaSAiZG9uIGR1b25nIjogdGFpIHRoZSBuYXkgdGhlIGto YWMsIHRhaSBnaWEgdHJlbiB0aGUgZ2lvaSANCnRhbmcuLi4gR2lhIHhhbmcgdGFuZywgZ2lhIGRp ZW4gdGFuZyBrZW8gY2FjIGdpYSBraGFjIHRhbmcgdGhlby4gDQpUaGVvIG9uZyBLaW5oLCAiYmll dCBsYSBob2kgbmhhcCB0aGkgbmhpZXUgdmllYyBwaGFpIHRoZW8geHUgdGhlIA0KY2h1bmcgY3Vh IHRoZSBnaW9pLCBuaHVuZyBybyByYW5nIGxhIGNvIG5oaWV1IHZhbiBkZSBkaWV1IGhhbmggDQpj aHVhIHNhdSBzYXQuIFRvaSB0aGF5IGRvIGxhIHN1IGNodSBxdWFuIGN1YSBjYWMgY28gcXVhbiBD aGluaCBwaHUgDQp2ZSB0byBjaHVjIGRpZXUgaGFuaC4gVmFuIGNvbiBuaGlldSB0aGlldSBzb3Qg bGFtLiBDaGluaCBwaHUgDQpwaGFpIGNvIHRpbmggdGhhbiB0cmFjaCBuaGllbSBjYW8sIHJ1dCBr aW5oIG5naGllbSBjdSB0aGUiLiANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMTAxOTA0MjA1 Mzg3OVAwQzk5MjAvY3UtdHJpLW11b24tcXVvYy1ob2ktZGktZGVuLWN1bmctdHJvbmctY2hhdC12 YW4uaHRtIE5HVVlFTiBMRSAxODoyNSAoR01UKzcpIC0gVGh1IEJhLCAxOS8xMC8yMDEwDQoNCkRh aSBiaWV1IFFIOiBDdSB0cmkgbW9uZyBtb2kgUXVvYyBob2kgZGkgZGVuIGN1bmcgdHJvbmcgY2hh dCB2YW4sIGRhYyBiaWV0IGxhIHRyYWNoIG5oaWVtIGN1YSBUaHUgdHVvbmcNCiANCjEuMjc1IHkg a2llbiwga2llbiBuZ2hpIGN1YSBjdSB0cmkgdmEgbmhhbiBkYW4gY2EgbnVvYyBndWkgdG9pIFF1 b2MgaG9pIHRhaSBreSBob3AgUXVvYyANCmhvaSB0aHUgdGFtLCBraGFpIG1hYyBzYW5nIG1haSAo MjAvMTApVGh1YyBoaWVuIGNoYXQgdmFuIGRlbiBjdW5nIGRlIGxhbSBybyB0cmFjaCANCm5oaWVt IGN1YSBjbyBxdWFuIGNodWMgbmFuZyBjdW5nIG5odSB2YWkgdHJvIGN1YSBuZ3VvaSBkdW5nIGRh dSwgbGEgbW90IHRyb25nIG5oaWV1IA0KbW9uZyBtdW9uIGR1b2MgdGhlIGhpZW4gcXVhIDEuMjc1 IHkga2llbiwga2llbiBuZ2hpIGN1YSBjdSB0cmkgdmEgbmhhbiBkYW4gY2EgbnVvYyBndWkgDQp0 b2kgUXVvYyBob2kgdGFpIGt5IGhvcCBRdW9jIGhvaSB0aHUgdGFtLCBraGFpIG1hYyBzYW5nIG1h aSAoMjAvMTApLg0KDQpEYW5oIHN1IHF1YW4gdGFtIGRhYyBiaWV0IGNobyBub2kgZHVuZyB4YXkg ZHVuZyBOaGEgbnVvYywgeGF5IGR1bmcgcGhhcCBsdWF0LCBjdSB0cmkgDQp2YSBuaGFuIGRhbiBr aWVuIG5naGkgUXVvYyBob2kgeGF5IGR1bmcgZHUgYW4gTHVhdCBTdWEgZG9pLCBibyBzdW5nIG1v dCBzbyBkaWV1IGN1YSANCkx1YXQgQmF1IGN1IGRhaSBiaWV1IFF1b2MgaG9pIHZhIEx1YXQgQmF1 IGN1IGRhaSBiaWV1IGhvaSBkb25nIG5oYW4gZGFuLCB0aGVvIGh1b25nIA0KbW8gcm9uZyB2YSBw aGF0IGh1eSBob24gbnVhIHF1eWVuIGxhbSBjaHUgY3VhIG5oYW4gZGFuLCB0cm9uZyB2aWVjIGJh dSBuaHVuZyBuZ3VvaSANCmNvIGR1IHBoYW0gY2hhdCwgbmFuZyBsdWMgdmFvIGNhYyBjbyBxdWFu IHF1eWVuIGx1YyBOaGEgbnVvYy4NCg0KVm9pIHZpZWMgdGhpIGRpZW0ga2hvbmcgdG8gY2h1YyBo b2kgZG9uZyBuaGFuIGRhbiBodXllbiwgcXVhbiwgcGh1b25nIGhvbiBtb3QgbmFtIA0KcXVhIHRh aSAxMCB0aW5oLCB0aGFuaCBwaG8sIG5oaWV1IGN1IHRyaSB2YSBuaGFuIGRhbiBiYW4ga2hvYW46 IHRob2kgZ2lhbiB0aGkgZGllbSBjaHVhIA0KbGF1LCBjaHVhIGR1IGNvIHNvIGx5IGx1YW4gdmEg dGh1YyB0aWVuIGRlIGRhbmggZ2lhIHZhIGtldCBsdWFuIHZlIHZpZWMgbmF5LCB2aSB0aGUgY2h1 YSANCm5lbiBhcCBkdW5nIHJvbmcgcmFpIG8gY2FjIGRpYSBwaHVvbmcga2hhYy4gDQoNCkhvYW4g bmdoZW5oIGhvYXQgZG9uZyBjaGF0IHZhbiB2YSB0cmEgbG9pIGNoYXQgdmFuIGN1YSBRdW9jIGhv aSBjbyBuaGlldSBkb2kgbW9pLCB0dXkgDQpuaGllbiBuaGlldSBjdSB0cmkgdmEgbmhhbiBkYW4g Y2hvIHJhbmcgaGlldSBxdWEgaG9hdCBkb25nIGdpYW0gc2F0IHZhbiBjaHVhIGNhby4gRG9uZyAN CnRob2kga2llbiBuZ2hpIFF1b2MgaG9pIGNhbiB0YW5nIGN1b25nIGhpZXUgcXVhIGhvYXQgZG9u ZyBnaWFtIHNhdCwgbHVhIGNob24gbmh1bmcgdmFuIA0KZGUgY3UgdHJpIGNhIG51b2MgcXVhbiB0 YW0gZGUgdGllbiBoYW5oIGNoYXQgdmFuLCBkYW5oIHRob2kgZ2lhbiB0aG9hIGRhbmcgY2hvIHZp ZWMgY2hhdCANCnZhbiB2YSB0aHVjIGhpZW4gY2hhdCB2YW4gZGVuIGN1bmcsIGRlIGxhbSBybyB0 cmFjaCBuaGllbSBjdWEgY28gcXVhbiBjaHVjIG5hbmcsIGN1bmcgDQpuaHUgdmFpIHRybyBjdWEg bmd1b2kgZHVuZyBkYXUuDQoNCkxpZW4gcXVhbiBkZW4gc2FuIHh1YXQgdmEgZG9pIHNvbmcgY3Vh IG5oYW4gZGFuLCBkb25nIGRhbyBjdSB0cmkgdmEgbmhhbiBkYW4gYmFuIGtob2FuLCANCmxvIGxh bmcgdmUgdGluaCBoaW5oIGdpYSBjYSBsZW8gdGhhbmcga2hvbmcga2llbSBzb2F0IGR1b2MgY3Vh IG5oaWV1IG1hdCBoYW5nIHRoaWV0IHlldS4gDQpHaWEgbHVvbmcgdGh1YywgdGh1YyBwaGFtLCB2 YXQgdHUgbm9uZyBuZ2hpZXAsIHZhdCBsaWV1IHhheSBkdW5nIGRldSB0YW5nOyBnaWEgc3VhLCAN CnRodW9jIHRhbiBkdW9jIHRhbmcgY2FvOyBnaWEgdmFuZyB0YW5nIHZvdCBnYXkgbmd1eSBjbyBs YW0gcGhhdCwgYW5oIGh1b25nIHRydWMgdGllcCBkZW4gDQpzYW4geHVhdCB2YSBkb2kgc29uZyBj dWEgbmhhbiBkYW4sIG5oYXQgbGEgdGFuZyBsb3AgbmhhbiBkYW4gbGFvIGRvbmcsIG5odW5nIG5n dW9pIGNvIA0KdGh1IG5oYXAgdGhhcC4gDQoNCkN1IHRyaSBraWVuIG5naGkgQ2hpbmggcGh1IHRh bmcgY3VvbmcgY2FjIGhvYXQgZG9uZyBraWVtIHRyYSwga2llbSBzb2F0IHRoaSB0cnVvbmcgbm9p IA0KZGlhLCB0aGVvIGRvaSBkaWVuIGJpZW4gdGhpIHRydW9uZyB0aGUgZ2lvaSBjbyBhbmggaHVv bmcgZGVuIHRoaSB0cnVvbmcsIGdpYSBjYSBoYW5nIGhvYSANCnRyb25nIG51b2MsIGtpcCB0aG9p IGNvIGJpZW4gcGhhcCBjdSB0aGUsIGh1dSBoaWV1IGRlIGJpbmggb24gZ2lhIGNhIHRyb25nIG5o dW5nIHRoYW5nIA0KY3VvaSBuYW0gdmEgY28gZ2lhaSBwaGFwIG5nYW4gbmd1YSBsYW0gcGhhdCBj YW8gdHJvIGxhaSwgbmhhbSBkYW0gYmFvIHZhIG5hbmcgY2FvIGRvaSANCnNvbmcgY3VhIG5ndW9p IGRhbi4gDQoNCihBbmg6IG9uZyBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHBoYXQgYmlldSB0 YWkgYnVvaSB0aWVwIHh1YyBjdSB0cmkgSGFpIFBob25nIJYgDQpBbmg6IENoaW5ocGh1LnZuKSAN Cg0KQmFvIGNhbyBjdW5nIGNobyBiaWV0LCB0aG9pIGdpYW4gcXVhLCBjdSB0cmkgdmEgbmhhbiBk YW4gbmhpZXUgbm9pIHJhdCBidWMgeHVjIHZlIHRpbmggDQp0cmFuZyB0aGlldSBkaWVuLCBjYXQg ZGllbiBsdWFuIHBoaWVuLCBuaGF0IGxhIHZhbyBtdWEgbmFuZyBub25nLCBhbmggaHVvbmcgbG9u IGRlbiBzaW5oIA0KaG9hdCwgaG9jIHRhcCBjdWEgbmhhbiBkYW4gdmEgc2FuIHh1YXQsIGtpbmgg ZG9hbmggY3VhIGNhYyBkb2FuaCBuZ2hpZXAuIEN1IHRyaSB2YSBuaGFuIA0KZGFuIGtpZW4gbmdo aSBDaGluaCBwaHUgY2FuIGNoaSBkYW8gbmdhbmggY2h1YyBuYW5nIHBoYWkgY28gZ2lhaSBwaGFw IHF1eWV0IGxpZXQgY2EgdmUgDQpxdXkgaG9hY2gsIHNhbiB4dWF0IGRpZW4sIGNhIHZlIHBob2kg aG9wIGNhYyBuZ3VvbiBjdW5nIHVuZyBkaWVuIG5oYW0gb24gZGluaCBuZ3VvbiANCmN1bmcgZGll biBjaG8gc2FuIHh1YXQgdmEgZG9pIHNvbmcsIGtoYWMgcGh1YyB0aW5oIHRyYW5nIGNhdCBkaWVu IGx1YW4gcGhpZW4gdHJlbiBkaWVuIA0Kcm9uZyBuaHUgdGhvaSBnaWFuIHZ1YSBxdWE7IGRvbmcg dGhvaSwgc29tIGNhaSB0byBuZ2FuaCBkaWVuLCBjb25nIGtoYWksIG1pbmggYmFjaCBnaWEgDQp0 aGFuaCBzYW4geHVhdCBkaWVuLi4uDQoNCkRhYyBiaWV0LCBjdSB0cmkgdmEgbmhhbiBkYW4gcmF0 IGJhbiBraGFuLCBsbyBsYW5nIHZlIHRpbmggdHJhbmcgdGhpZW4gdGFpLCBiYW8gbHUgZGllbiBi aWVuIA0KcGh1YyB0YXAsIHhheSByYSBsaWVuIHRpZXAgbyBudW9jIHRhLCBnYXkgaGF1IHF1YSBu YW5nIG5lIHZlIG5ndW9pIHZhIGN1YS4NCg0KQ3VuZyB0aGVvIHBoYW4gYW5oIGN1YSBuaGFuIGRh biwgdGluaCB0cmFuZyBuZSB0cmFuaCwgZHVuIGRheSBsYW4gbmhhdSBnaXVhIGNhYyBjbyBxdWFu IA0KY2h1YyBuYW5nIHRyb25nIGdpYWkgcXV5ZXQgZG9uIHRodSBraGlldSBuYWksIHRvIGNhbyBj dWEgY29uZyBkYW4gdmFuIGNvbiBkaWVuIHJhIHBobyANCmJpZW47IGNvbiB0aW5oIHRyYW5nIG1v dCBzbyBjYW4gYm8gdGh1YyBoaWVuIGtob25nIGR1bmcgY2FjIHF1eSBkaW5oIHBoYXAgbHVhdCB0 cm9uZyBib2kgDQp0aHVvbmcsIGdpYWkgcGhvbmcgbWF0IGJhbmcsIGdpYSBib2kgdGh1b25nIGto b25nIHRob2EgZGFuZywgdGh1IGhvaSBkYXQgbmh1bmcgY2hhbSBzdSANCmR1bmcuLi47IHRoYW0g Y2hpIGNvIGJpZXUgaGllbiBtb3Qgc28gY2FuIGJvIGNhdSBrZXQgdm9pIG5oYSBkYXUgdHUgbGFt IHRoaWV0IGhhaSBkZW4gbG9pIA0KaWNoIGN1YSBuZ3VvaSBiaSB0aHUgaG9pIGRhdCwgZ2F5IHJh IG5oaWV1IGJ1YyB4dWMgdHJvbmcgbmhhbiBkYW4uIA0KDQpWZSBjYWkgY2FjaCBoYW5oIGNoaW5o IHZhIGNvbmcgdGFjIHBob25nLCBjaG9uZyB0aGFtIG5odW5nLCBsYW5nIHBoaSwgY3UgdHJpIGNh IG51b2MgDQpjaG8gcmFuZyB2YW4gY29uIHRvbiB0YWkgeHUgaHVvbmcgY28gcXVhbiBoYW5oIGNo aW5oIGRhbmggdGh1YW4gbG9pIHZlIGNobyBtaW5oLCBkYXkgDQpraG8ga2hhbiB2ZSBjaG8gbmd1 b2kgZGFuLiBNb3QgYm8gcGhhbiBjb25nIGNodWMgY29uIHRoaWV1IHRyYWNoIG5oaWVtLCBoYW4g Y2hlIG5hbmcgDQpsdWMsIHRoYW0gY2hpIHRpbSBjYWNoIHZvaSB2aW5oIHRpZW4gY3VhIG5oYW4g ZGFuLiBDdSB0cmkgdmEgbmhhbiBkYW4ga2llbiBuZ2hpIENoaW5oIA0KcGh1IHRpZXAgdHVjIGNo aSBkYW8gdHJpZW4ga2hhaSB2YW4gZGUgbmF5IHF1eWV0IGxpZXQgaG9uIG51YTsgZG9uZyB0aG9p IGNvIGJpZW4gcGhhcCBnaWFvIA0KZHVjIGNhbiBibywgY29uZyBjaHVjIHRodWMgaGllbiBkdW5n IHZhaSB0cm8gImNvbmcgYm9jIGN1YSBuaGFuIGRhbiIgbmh1IENodSB0aWNoIEhvIA0KQ2hpIE1p bmggZGEgZGF5LiANCg0KQ3UgdHJpIHZhIG5oYW4gZGFuIGNobyByYW5nLCB0aGFtIG5odW5nLCBs YW5nIHBoaSBjaHVhIGR1b2MgZGF5IGx1aSwgdmFuIGxhIHZhbiBkZSBidWMgDQp4dWMuIFRyb25n IGtoaSBkbyBjb25nIHRhYyBwaG9uZywgY2hvbmcgdGhhbSBuaHVuZywgbGFuZyBwaGkgdmFuIGNv biBoYW4gY2hlLCB5ZXUgDQprZW07IGtob25nIGl0IHRydW9uZyBob3AgY2h1YSBwaGF0IGhpZW4g a2lwIHRob2ksIHh1IGx5IGNodWEgbmdoaWVtLCBuaGF0IGxhIHh1IGx5IHRyYWNoIA0KbmhpZW0g bmd1b2kgZHVuZyBkYXU7IGNvbmcgdGFjIHR1IHBoYXQgaGllbiB0aGFtIG5odW5nLCBsYW5nIHBo aSBjdWEgY2FjIGNvIHF1YW4sIHRvIA0KY2h1YywgZG9uIHZpIHZhbiBsYSBraGF1IHlldS4gDQoN CkJlbiBjYW5oIG5oaWV1IHZhbiBkZSBjaHVuZywgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgdGF1IHRo dXkgVmlldCBOYW0gKFZpbmFzaGluKSBsYSANCnRlbiByaWVuZyBkdXkgbmhhdCBkdW9jIG5oYW4g bWFuaCB0YWkgYmFvIGNhbyBuYXkuDQoNCkN1IHRoZSwgY3UgdHJpIHZhIG5oYW4gZGFuIGNobyBy YW5nIHRyb25nIHRob2kgZ2lhbiBxdWEsIGNvbmcgdGFjIHF1YW4gbHkgbmhhIG51b2MgZG9pIA0K dm9pIHRhcCBkb2FuIG5heSBjbyBuaGlldSBiYXQgY2FwLCB5ZXUga2VtOyB2aWVjIGtpZW0gdHJh LCBraWVtIHNvYXQgY3VhIG5oYSBudW9jIGNvbiANCmtlbSBoaWV1IHF1YSBuZW4gY2h1YSBwaGF0 IGhpZW4gZHVvYyBkYXkgZHUgdmEgbmdhbiBjaGFuIGtpcCB0aG9pIG5odW5nIHF1eWV0IGRpbmgg c2FpIA0KdHJhaSB2ZSBkYXUgdHUsIHN1IGR1bmcgdm9uIGtob25nIGR1bmcgbXVjIGRpY2guLi4g ZGFuIGRlbiBoaWV1IHF1YSB2b24gZGF1IHR1IGN1YSBuaGEgDQpudW9jIGRhdCBoaWV1IHF1YSB0 aGFwLCB0aGFtIGNoaSBiaSB0aGF0IHRob2F0IHJhdCBuZ2hpZW0gdHJvbmcuIA0KDQpDdSB0cmkg dmEgbmhhbiBkYW4ga2llbiBuZ2hpIENoaW5oIHBodSBsYW0gcm8gbmh1bmcgc2FpIHBoYW0gY3Vh IGxhbmggZGFvIFZpbmFzaGluIHZhIA0KdHJhY2ggbmhpZW0gcXVhbiBseSBuaGEgbnVvYyBjdWEg VGh1IHR1b25nIGNoaW5oIHBodSwgY2FjIGJvIGNvIGxpZW4gcXVhbiB2YSB4dSBseSANCm5naGll bSBkb2kgdm9pIHRhcCB0aGUsIGNhIG5oYW4gdmkgcGhhbTsgZG9uZyB0aG9pIGtpZW4gbmdoaSBD aGluaCBwaHUgY2hpIGRhbyB0aWVuIA0KaGFuaCBjYWMgaG9hdCBkb25nIGtpZW0gdHJhLCBkYW5o IGdpYSBkdW5nIHRodWMgdHJhbmcgdmUgdGluaCBoaW5oIHRhaSBjaGluaCBjdW5nIG5odSANCmhv YXQgZG9uZyBzYW4geHVhdCwga2luaCBkb2FuaCBjdWEgY2FjIHRhcCBkb2FuIGtpbmggdGUsIHRv bmcgY29uZyB0eSBuaGEgbnVvYyBraGFjLiANCg0KQmVuIGNhbmggbmh1bmcga2llbiBuZ2hpIG5l dSB0cmVuLCBjdSB0cmkgdmEgbmhhbiBkYW4gY3VuZyAicGhhbiBuYW4iIHZlIG1vdCBzbyB2YW4g ZGUgDQpuYXkgc2luaCB0cm9uZyBkb2kgc29uZyB4YSBob2ksIG5odW5nIGJhdCBjYXAgdHJvbmcg dmllYyB0aHVjIGhpZW4gY2hpbmggc2FjaCwgcGhhcCANCmx1YXQgbWEgY3UgdHJpIGRhIG5ldSB0 YWkgY2FjIGt5IGhvcCB0cnVvYywgbWFjIGR1IGRhIGR1b2MgQ2hpbmggcGh1LCBjYWMgYm8sIG5n YW5oIGdpYWkgDQpxdXlldCB0dW5nIGJ1b2Mgbmh1bmcgdmFuIGNodWEgZGFwIHVuZyBkdW9jIHll dSBjYXUgdGh1YyB0aWVuIGN1YSBkb2kgc29uZyB4YSBob2kgdmEgDQp2YW4gZGFuZyBsYSBuaHVu ZyB2YW4gZGUgbWEgY3UgdHJpIGNvIG5oaWV1IGtpZW4gbmdoaS4NCg0KRG8gbGEgdHJhY2ggbmhp ZW0gY3VhIGNhYyBjbyBxdWFuIE5oYSBudW9jIHZhIGNoaW5oIHF1eWVuIGNhYyBjYXAgdHJvbmcg cXVhbiBseSBraGFpIA0KdGhhYyB0YWkgbmd1eWVuLCBraG9hbmcgc2FuIHZ1YSBkZSB0aGF0IHRo b2F0IHRhaSBuZ3V5ZW4sIGtob2FuZyBzYW4sIHZ1YSBnYXkgbyBuaGllbSANCm1vaSB0cnVvbmcs IHRyb25nIHh1IGx5IHRyYWNoIG5oaWVtIGN1YSBjYWMgdGFwIHRoZSB2YSBjYSBuaGFuIGNobyBk b2FuaCBuZ2hpZXAgbnVvYyANCm5nb2FpIHRodWUgZGF0IHJ1bmcgZGFpIGhhbiwgdHJvbmcgZG8g Y28gY2EgcnVuZyBwaG9uZyBobywgcnVuZyBkYXUgbmd1b24sIHJ1bmcgdGFpIGNhYyANCnZpIHRy aSB4dW5nIHlldSB2ZSBhbiBuaW5oIHF1b2MgcGhvbmcuLi4NCg0KVGFpIHBoaWVuIGtoYWkgbWFj IGt5IGhvcCBRdW9jIGhvaSB0aHUgdGFtLCBuZ2F5IHNhdSBraGkgVGh1IHR1b25nIHRyaW5oIGJh eSBiYW8gY2FvIA0KY3VhIENoaW5oIHBodSB2ZSB0aW5oIGhpbmgga2luaCB0ZSwgeGEgaG9pLCBi YW8gY2FvIHRhcCBob3AgeSBraWVuLCBraWVuIG5naGkgY3VhIGN1IHRyaSB2YSANCm5oYW4gZGFu IHNlIGR1b2MgQ2h1IHRpY2ggVXkgYmFuIFRydW5nIHVvbmcgbWF0IHRyYW4gVG8gcXVvYyBWaWV0 IE5hbSBIdXluaCBEYW0gDQp0cmluaCBiYXkgdHJ1b2MgUXVvYyBob2kuIFBoaWVuIGhvcCBuYXkg c2UgZHVvYyB0cnV5ZW4gaGluaCB0cnVjIHRpZXAgZGUgY3UgdHJpIHZhIG5oYW4gZGFuIGNhIG51 b2MgdGhlbyBkb2kuIA0KDQpodHRwOi8vZGRkbi5jb20udm4vMjAxMTAxMTEwOTQxNTMyOGNhdDQ0 L3ZpbmFzaGluLWJhdC1kYXUtZHVvYy12YXktbmdhbi1oYW5nLWRlLXRyYS1uby10aWVuLWx1b25n LWJoeGguaHRtIFRoZW8gY2hpbmhwaHUudm4gMTEvMDEvMjAxMSAtIDA5OjUwIA0KDQpWaW5hc2hp biBiYXQgZGF1IGR1b2MgdmF5IG5nYW4gaGFuZyBkZSB0cmEgbm8gdGllbiBsdW9uZywgQkhYSCAg DQoNClRoZW8gUXV5ZXQgZGluaCAwMi8yMDExL1FELVRUZywgdHUgaG9tIG5heSAoMTAvMS8yMDEx KSwgY2FjIGRvYW5oIG5naGllcCwgbmd1b2kgDQpsYW8gZG9uZyB0aHVvYyBUYXAgZG9hbiBDb25n IG5naGllcCBUYXUgdGh1eSBWaWV0IE5hbSAoVmluYXNoaW4pdmEgVG9uZyBjb25nIHR5IA0KSGFu ZyBoYWkgVmlldCBOYW0gZHVvYyB2YXkgZGUgY2hpIHRyYSBubyB0aWVuIGx1b25nLCBubyBiYW8g aGllbSB4YSBob2kgKEJIWEgpLCBiYW8gDQpoaWVtIHkgdGUsIGJhbyBoaWVtIHRoYXQgbmdoaWVw LCB0cm8gY2FwIHRob2kgdmllYywgdHJvIGNhcCBtYXQgdmllYyBsYW0sIHRhbyB2aWVjIGxhbSwg aG9jIG5naGUuDQoNClRydW9jIGRvLCB0aGVvIFF1eWV0IGRpbmggODcvMjAxMC9RRC1UVGcgbmdh eSAyNC8xMi8yMDEwIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1LCANCnBoYWkgZGVuIG5nYXkgMTUv Mi8yMDExIG1vaSBsYSB0aG9pIGRpZW0gYmF0IGRhdSB0aHVjIHRoaSBjaGluaCBzYWNoIGNhYyBk b2FuaCBuZ2hpZXAsIA0Kbmd1b2kgbGFvIGRvbmcgY3VhIFZpbmFzaGluIHZhIFRvbmcgY29uZyB0 eSBIYW5nIGhhaSBWaWV0IE5hbSBkdW9jIHZheSB2b24gZGUgY2hpIA0KdHJhIG5vIHRpZW4gbHVv bmcsIEJIWEgsLi4uIChuaHUgbmV1IHRyZW4pLg0KDQpUdXkgbmhpZW4sIG5nYXkgOC8xLzIwMTEs IFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgZGEga3kgUXV5ZXQgZGluaCAyLzIwMTEvUUQtDQpU VGcgc3VhIGRvaSB0aG9pIGhpZXUgYmF0IGRhdSB0aGkgaGFuaCBjaGluaCBzYWNoIG5heSBsYSBr ZSB0dSBob20gbmF5LCBuZ2F5IDEwLzEvMjAxMS4NCg0KQ29uIHZlIGRvaSB0dW9uZyBkdW9jIHZh eSwgbXVjIHZheSB2YW4gdGh1YyBoaWVuIHRoZW8gUXV5ZXQgZGluaCA4Ny8yMDEwL1FELVRUZy4g DQpUaGVvIGRvLCBjYWMgZG9hbmggbmdoaWVwLCBkb24gdmkgc3UgbmdoaWVwIHRodW9jIFZpbmFz aGluIHZhIGRvYW5oIG5naGllcCBUb25nIGNvbmcgDQp0eSBIYW5nIGhhaSBWaWV0IE5hbSBkdW9j IGNodXllbiBnaWFvIHR1IFZpbmFzaGluIGR1b2MgdmF5IHR1IE5nYW4gaGFuZyBQaGF0IHRyaWVu IA0KVmlldCBOYW0gdm9pIG11YyBsYWkgc3VhdCAwJS4NCg0KTXVjIHZheSB0b2kgZGEgYmFuZyBz byBraW5oIHBoaSBjaGkgdHJhIG5vIHRpZW4gbHVvbmcsIG5vIEJIWEgsIGJhbyBoaWVtIHkgdGUs IGJhbyANCmhpZW0gdGhhdCBuZ2hpZXAsIHRybyBjYXAgdGhvaSB2aWVjLCB0cm8gY2FwIG1hdCB2 aWVjIGxhbSAoa2UgY2Egc28gdGllbiBsYWkgcGhhdCBzaW5oIHBoYWkgDQp0aGFuaCB0b2FuIGRv IG5vIHRpZW4gbHVvbmcsIG5vIEJIWEgsIGJhbyBoaWVtIHkgdGUsIGJhbyBoaWVtIHRoYXQgbmdo aWVwIHRoZW8gcXV5IA0KZGluaCkgdGluaCBkZW4gbmdheSAzMS8xMC8yMDEwIHZhIHRob2kga3kg dGllcCB0aGVvIGRlbiBoZXQgbmdheSAzMS8xMi8yMDExLiBMYWkgc3VhdCANCmNobyB2YXkgYmFu ZyAwJS4NCg0KRG9uZyB0aG9pLCBuZ3VvaSBsYW8gZG9uZyBsYW0gdmllYyB0aGVvIGhvcCBkb25n IGxhbyBkb25nIGNvIHRob2kgaGFuIHR1IDEyIHRoYW5nIGRlbiANCjM2IHRoYW5nIGhvYWMgaG9w IGRvbmcga2hvbmcgeGFjIGRpbmggdGhvaSBoYW4gbWEgZGEgY28gdGhvaSBnaWFuIGxhbSB2aWVj IHR1IGR1IDEyIA0KdGhhbmcgdHJvIGxlbiB0cm9uZyBkb2FuaCBuZ2hpZXAsIGRvbiB2aSBzdSBu Z2hpZXAgdGh1b2MgVmluYXNoaW4gdmEgZG9hbmggbmdoaWVwIA0KdGh1b2MgVG9uZyBjb25nIHR5 IEhhbmcgaGFpIFZpZXQgTmFtIGNodXllbiBnaWFvIHR1IFZpbmFzaGluLCBiaSBtYXQgdmllYyBs YW0gdHJvbmcgDQpuYW0gMjAxMCB2YSBuYW0gMjAxMSBtYSBjaHVhIGNvIHZpZWMgbGFtLCBuZXUg Y28gbmh1IGNhdSBzZSBkdW9jIHZheSB0dSBRdXkgUXVvYyANCmdpYSB2ZSB2aWVjIGxhbSB0aHVv YyBDaHVvbmcgdHJpbmggbXVjIHRpZXUgUXVvYyBnaWEgdmUgdmllYyBsYW0gZGUgdHUgdGFvIHZp ZWMgbGFtOyANCnZheSBkZSBob2MgbmdoZSB0aGVvIFF1eWV0IGRpbmggMTU3LzIwMDcvUUQtVFRn IG5nYXkgMjcvOS8yMDA3IGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1LiANCg0KaHR0cDovL3BoYXBs dWF0dHAudm4vMjAxMDExMjcxMTI3MTE3MThwMGMxMDEzL2Nvbmcta2hhaS1rZXQtbHVhbi10aGFu aC10cmEtdmluYXNoaW4tcGhhaS1jaG8uaHRtIE5naGlhIE5oYW4gMjgvMTEvMjAxMCAtIDEyOjEz IEFNDQoNCkNvbmcga2hhaSBrZXQgbHVhbiB0aGFuaCB0cmEgVmluYXNoaW46IFBoYWkgY2hvIQ0K DQpUaHUgdHVjIHZhIHRob2kgaGFuIHRoYW5oIHRyYSBWaW5hc2hpbg0KDQpUaGVvIEx1YXQgVGhh bmggdHJhIGhpZW4gaGFuaCwgdm9pIGNhYyBjdW9jIHRoYW5oIHRyYSBkbyBUaGFuaCB0cmEgQ2hp bmggcGh1IHRpZW4gaGFuaCwgDQpwaGFuIGxhbSB2aWVjIHRydWMgdGllcCBjdWEgZG9hbiB0aGFu aCB0cmEgdGFpIGRvbiB2aSBiaSB0aGFuaCB0cmEgcGhhaSBrZXQgdGh1YyB0cm9uZyB2b25nIA0K NjAgbmdheSBrZSB0dSBuZ2F5IGNvbmcgYm8gcXV5ZXQgZGluaCB0aGFuaCB0cmEsIGhvYWMgY28g dGhlIGdpYSBoYW4gbmV1IHBodWMgdGFwLiBUcm9uZyANCnRydW9uZyBob3AgVmluYXNoaW4sIFRo YW5oIHRyYSBDaGluaCBwaHUgZGEga2V0IHRodWMgdmFvIG5nYXkgOS0xMS4gDQoNCkJ1b2MgdGll cCB0aGVvIGRvYW4gdGhhbmggdHJhIGRhbmcgbGFtIGxhIHRyb25nIHZvbmcgMTUgbmdheSBrZSB0 dSBraGkga2V0IHRodWMgdGhhbmggdHJhIA0KdGFpIGNvIHNvLCB0cnVvbmcgZG9hbiB0aGFuaCB0 cmEgYmFvIGNhbyBrZXQgcXVhIHRoYW5oIHRyYSB2b2kgdG9uZyB0aGFuaCB0cmEuIFRoZW8gVG9u ZyANCnRoYW5oIHRyYSBUcmFuIFZhbiBUcnV5ZW4sIHRhaSBsaWV1LCBobyBzbywgc28gbGlldSBw aGFpIGRvaSBjaGlldSByYXQgbmhpZXUgbmVuIGNvIHRoZSBwaGFpIA0Ka2VvIGRhaSBob24gdGhv aSBoYW4gbHVhdCBkaW5oLiBCdW9jIHRpZXAgdGhlbywgdHJvbmcgdm9uZyAxNSBuZ2F5IHRvbmcg dGhhbmggdHJhIHNlIHJhIA0Ka2V0IGx1YW4gdGhhbmggdHJhIFZpbmFzaGluLg0KDQpNdWMgZGlj aCBjdW9jIHRoYW5oIHRyYSBuYXkgbGEgZ2l1cCBDaGluaCBwaHUgY28gY2FpIG5oaW4gdGh1YyBj aGF0IGhvbiB2ZSBWaW5hc2hpbiwgdHUgDQpkbyBjbyBodW9uZyB4dSBseSwgdGFpIGNvIGNhdSB0 aGljaCBob3AsIGhpZXUgcXVhLiBOZ29haSByYSwga2V0IHF1YSB0aGFuaCB0cmEgY3VuZyBzZSAN CmR1b2Mgc3UgZHVuZyBkZSBUaHUgdHVvbmcsIGNhYyBwaG8gdGh1IHR1b25nIHZhIGJvIHRydW9u ZyBsaWVuIHF1YW4ga2llbSBkaWVtIHRyYWNoIA0KbmhpZW0gY2EgbmhhbiB0cm9uZyB2dSBWaW5h c2hpbiB0aGVvIHlldSBjYXUgY3VhIEJvIENoaW5oIHRyaSwgeG9uZyB0cnVvYyBIb2kgbmdoaSAN ClRydW5nIHVvbmcgMTQgLSBidW9jIGNodWFuIGJpIGN1b2kgY3VuZyBjaG8gRGFpIGhvaSBYSS4N Cg0KU2UgY29uZyBibyBjb25nIGtoYWkNCg0KU2FuZyA5LTctMjAxMCwgVGhhbmggdHJhIENoaW5o IHBodSBkYSB0aG9uZyBiYW8gcXV5ZXQgZGluaCB0aGFuaCB0cmEgVmluYXNoaW4uIFRydW9jIA0K ZG8sIFRvbmcgdGhhbmggdHJhIENoaW5oIHBodSBkYSBiYW4gaGFuaCBRdXlldCBkaW5oIHNvIDE5 NTkvUUQtVFRDUCBuZ2F5IDUtNyB2ZSANCnZpZWMgdGhhbmggdHJhIHZpZWMgY2hhcCBoYW5oIGNo aW5oIHNhY2gsIHBoYXAgbHVhdCB0YWkgVmluYXNoaW4uIFNhdSB0aG9pIGdpYW4gNzUgbmdheSAN CmxhbSB2aWVjIHRhaSBWaW5hc2hpbiwga2V0IHF1YSB0aGFuaCB0cmEgdGFwIGRvYW4gbmF5IHNl IGR1b2MgY29uZyBibyBkZW4gY2FjIGNvIHF1YW4gDQp0aG9uZyB0YW4gYmFvIGNoaSB0cnVuZyB1 b25nIHZhIGRpYSBwaHVvbmcuICANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMTAyMTAyMjk1 NzYwUDBDNS90aGFuaC10cmEtdG9hbi1kaWVuLXZpbmFzaGluLWRhLXBoYXQtaGllbi1uaGlldS12 YW4tZGUtY3UtdGhlLmh0bSBOR1VZRU4gVlUgMTY6MDQgKEdNVCs3KSAtIDIxLzEwLzIwMTANCg0K VGhhbmggdHJhIHRvYW4gZGllbiBWaW5hc2hpbjogIkRhIHBoYXQgaGllbiBuaGlldSB2YW4gZGUg Y3UgdGhlIiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQz LzIwMTAxMDIyMDAyOTMyLmFzcHggVGhhbmggTHVvbmcgQmFvIENhbSAyMi8xMC8yMDEwIDA6Mjkg DQoNClRoYW5oIHRyYSBzZSBjbyBraWVuIG5naGkgYnVvYyB0cmFjaCBuaGllbSB0cm9uZyB2dSBW aW5hc2hpbiAgDQogIA0KKEFuaDogVG9uZyB0aGFuaCB0cmEgQ2hpbmggcGh1IFRyYW4gVmFuIFRy dXllbiAtIEFuaDogTmd1eWV0IE1pbmgpDQoNClRvbmcgdGhhbmggdHJhIENoaW5oIHBodSBUcmFu IFZhbiBUcnV5ZW4ga2hhbmcgZGluaCBuaHUgdmF5IGtoaSB0cmEgbG9pIHBob25nIHZhbiANCmJh byBnaW9pIGJlbiBoYW5oIGxhbmcga3kgaG9wIFF1b2MgaG9pIChRSCkgc2FuZyAyMS4xMCwgeG9h eSBxdWFuaCBjYWMgc2FpIHBoYW0gY3VhIA0KVmluYXNoaW4gdmEgdHJhY2ggbmhpZW0gY3VhIGNh YyBjbyBxdWFuIHRoYW5oIHRyYSwga2llbSB0b2FuLiANCg0KKiBOaGlldSB5IGtpZW4gY2hvIHJh bmcgbmV1IHZpZWMgdGhhbmggdHJhIFZpbmFzaGluIGR1b2MgdGllbiBoYW5oIHNvbSBob24sIGhh dSBxdWEgc2UgDQpib3QgbmdoaWVtIHRyb25nIGhvbi4gT25nIG5naGkgc2FvPyANCg0KLSBUdSAy MDA1IGRlbiBuYXkgY28gMTMsIDE0IGN1b2MgdGhhbmggdHJhIGtpZW0gdHJhLCBnaWFtIHNhdCwg a2llbSB0b2FuIHZlIFZpbmFzaGluLCANCnF1YSBkbyBjdW5nIGRhIHBoYXQgaGllbiByYXQgbmhp ZXUgbm9pIGR1bmcgc2FpIHBoYW0uIA0KRGFuZyB0aWVjIGxhIFZpbmFzaGluIGtob25nIG5naGll bSB0dWMga2hhYyBwaHVjLCBjb24gdGltIGNhY2ggYmFvIGNhbyBraG9uZyBkdW5nIHN1IA0KdGhh dC4gVmkgZHUgZGEgY2FuaCBiYW8gbG8gbmh1bmcgdmFuIGJhbyBjYW8gbGFpLCBkYW5nIHRpZWMg bGEgcXVhIHRyaW5oIGtpZW0gdG9hbiBxdW9jIHRlIA0KY3VuZyBjaHVhIGNoaSByYSBraXAgdGhv aSBjYWkgbmF5IGR1b2MuIEhvbiBudWEgbmV1IGNvIHRoYW5oIHRyYSB0b2FuIGRpZW4gdHUgYmFu IGRhdSwgDQpjaGkgcmEgaGV0IG1vaSBzYWkgcGhhbSBuaHVuZyBobyBraG9uZyB0dSBnaWFjIGto YWMgcGh1YyBtYSBjdSBjbyB0aW5oIHRoaSB0aW5oIHRyYW5nIA0Kbmh1IGhpZW4gbmF5IGN1bmcg a2hvIHRyYW5oIGtob2kuIA0KDQpEYW5nIGx1dSB5IGxhIGNvIGNoZSB0aGFuaCB0cmEgZ2lhbSBz YXQgY28gdmFuIGRlLiBOaGlldSBhbmggdmFvIHRoYW5oIGtpZW0gdHJhIGdpYW0gc2F0IA0Kbmh1 bmcgY2h1YSBxdXkgZGluaCBhaSBsYW0gdG9hbiBkaWVuLCBhaSBsYW0gY2h1eWVuIG5nYW5oLiBU aGFuaCB0cmEgQ2hpbmggcGh1IGNvIHRoZSANCmxhbSB0b2FuIGRpZW4gbmh1bmcgY3VuZyBjaGkg bGFtIG1vdCBtYXQsIGNodWEgcXV5IGRpbmggcm8gdHJhY2ggbmhpZW0gYWkga2llbSBzb2F0IGNh aSANCmdpIHZhIHRyYWNoIG5oaWVtIGNoaW5oIGxhIGFpLCB2aSB0aGUgY28gbm9pIGR1bmcgYmkg Y2hhbS4gUmllbmcgVGhhbmggdHJhIENoaW5oIHBodSANCmN1bmcgZGEgZGUgeHVhdCB0b2kgaGFp IGJhIGxhbiB0aGFuaCB0cmEgdG9hbiBkaWVuIGRlIGR1YSB2YW8ga2UgaG9hY2gsIG5odW5nIGRh bmcgdGllYyBsYSANCmRlIHRyYW5oIGNob25nIGNoZW8gbmVuIGtoaSBjbyBraWVtIHRvYW4gcm9p IHRoaSB0aG9pIHRoYW5oIHRyYS4gQ2h1bmcgcXV5IGxhaSBsYSBkbyBjbyANCmNoZSBjbyB2YW4g ZGUgbmVuIHRvaSBkYXkgcGhhaSBjaGFuIGNoaW5oLg0KDQoqIFRoYW5oIHRyYSB0b2FuIGRpZW4g ZGFuZyB0aWVuIGhhbmggY28geGVtIHhldCB0cmFjaCBuaGllbSBjdWEgY2FjIGNvIHF1YW4gcXVh biBseSBuaGEgbnVvYz8NCg0KLSBEdW9uZyBuaGllbi4gS2hpIHRoYW5oIHRyYSB0b2FuIGRpZW4g dGhpIGNodW5nIHRvaSBwaGFpIHhlbSB4ZXQgY2EgY28gcXVhbiBjYXAgdHJlbiANCnF1YW4gbHkg aG8sIGRlIG5hbmcgdHJhY2ggbmhpZW0gdmEgdGltIHJhIGNvIGNoZSBkZSBzaWV0IGNoYXQgdHJh Y2ggbmhpZW0gY3VhIGhvLiANCg0KKiBLaGkgdGhhbmggdHJhIFZpbmFzaGluLCBUaGFuaCB0cmEg Q2hpbmggcGh1IGNvIGNoaXUgc3UgdGFjIGRvbmcgbmFvIGtob25nLCB0aHVhIG9uZz8NCg0KLSBD aGEgY28gc3VjIGVwIG5hby4gVmllYyBkaWV1IGNoaW5oIGtlIGhvYWNoIHRoYW5oIHRyYSBsYSB0 aGVvIHlldSBjYXUgY3VhIENoaW5oIHBodSwgDQpkYSB0aHVjIGhpZW4gZGF1IG1hIG5vaSBzdWMg ZXAgZ2kuIENvbiB2aWVjIHRoYW5oIHRyYSB0b2FuIGRpZW4gaGllbiBnaW8gZGFuZyBzdW9uIHNl LCANCnRpY2ggY3VjLCBkdSBjaGFtIG5odW5nIGNhYyBub2kgZHVuZyBkYW5nIGR1b2MgdHJpZW4g a2hhaSBkYXkgZHUsIHBoYXQgaGllbiBuaGlldSB2YW4gDQpkZSBjdSB0aGUgaG9uIGtldCBsdWFu IGN1YSBVeSBiYW4gS2llbSB0cmEgVC5VLCBkZSBkYW5oIGdpYSB0aHVjIHRlIGN1YSB0YXAgZG9h biBuYXkgdmEgDQpxdWEgZG8gdGhheSBjYWNoIHF1YW4gbHkgY3VhIHRhcCBkb2FuIG5vaSBjaHVu Zy4gS2hpIG5hbyBjbyBrZXQgbHVhbiBjdW9pIGN1bmcgc2UgdGhvbmcgDQp0aW4gY2hvIGJhbyBj aGkuDQoNClF1b2MgaG9pIGN1bmcgY28gbG9pIHRyb25nIHZ1IFZpbmFzaGluDQoNCiJWaW5hc2hp biB0aHVjIGNoYXQgbGEgcGhhIHNhbiByb2ksIG5odW5nIENoaW5oIHBodSBraG9uZyB0aG9uZyBi YW8gY2hpbmggdGh1YywgdmkgY29uIA0KbGllbiBxdWFuIGRlbiA3IHZhbiBuZ3VvaSBsYW8gZG9u ZyBjdWEgdGFwIGRvYW4gbmF5LiBUdW5nIGRhaSBiaWV1IFFIIGN1bmcgcGhhaSBjYW0gDQp0aGF5 IGNvIGxvaSB0cm9uZyB2dSB2aWVjIG5heSIsIFV5IHZpZW4gVXkgYmFuIEtpbmggdGUgUUggTmd1 eWVuIER1YyBLaWVuIGtoYW5nIGRpbmggDQp2b2kgYmFvIGNoaSBiZW4gbGUga3kgaG9wIFFILiBU aGVvIG9uZyBLaWVuLCBraGkgdGllbiBoYW5oIHRhaSBjbyBjYXUgVmluYXNoaW4sIHR1YyBsYSAN CmNoYXAgbmhhbiBjaG8gbm8gcGhhIHNhbi4gIkNvIGRpZXUgY2h1bmcgdGEgY28gZGFjIHRodSB2 dWEgbGEgbmd1b2kgcXVhbiBseSBuaGEgbnVvYywgDQp2dWEgbGEgY2h1IGRvYW5oIG5naGllcCBu ZW4gY2hvIG5vIHRpZW4gaGFuaCBwaGEgc2FuIHRoZW8gbW90IGhpbmggdGh1YyBtYW5nIGRhYyB0 aHUgDQpWTiIsIG9uZyBLaWVuIG5oaW4gbmhhbiB2YSBjaG8gYmlldDogIlRyb25nIGJhbyBjYW8g Z2lhbSBzYXQgdmUgcXVhbiBseSB2b24gY3VhIG5oYSANCm51b2MsIGRhIG5vaSBybyBwaGFpIHRp ZW4gaGFuaCBjbyBjYXUgbGFpIHZhIHhheSBkdW5nLCBiYW4gaGFuaCBsdWF0IHF1YW4gbHkgdm9u IHZhIHRhaSANCnNhbiBuaGEgbnVvYy4gVHV5IG5oaWVuLCBraGkgYmlldSBxdXlldCB0aGkgUUgg a2hvbmcgdGhvbmcgcXVhLCBraG9uZyB4YXkgZHVuZywgDQpraG9uZyBiYW4gaGFuaC4gUm8gcmFu ZyBsYSBRSCBjdW5nIGNvIGxvaSIuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0 cmkvMjAxMDEwL05oaWV1LWxhbi1sZW4ta2UtaG9hY2gta2llbS10b2FuLVZpbmFzaGluLW5odW5n LWRldS1iaS1jYXQtOTQ0Mjg5LyBMZSBOaHVuZyAxMzo1NiwgMjUvMTAvMjAxMCAoR01UKzcpDQoN CktpZW0gdG9hbiBOaGEgbnVvYzogJ05oaWV1IGxhbiBsZW4ga2UgaG9hY2gga2llbSB0b2FuIFZp bmFzaGluIG5odW5nIGRldSBiaSBjYXQnDQoNCi0gVG9uZyBLaWVtIHRvYW4gTmhhIG51b2MgVnVv bmcgRGluaCBIdWUgY2hvIGhheSwgY28gcXVhbiBuYXkgdHVuZyBuaGlldSBsYW4gbGVuIGtlIA0K aG9hY2gga2llbSB0b2FuIFZpbmFzaGluIG5odW5nIHJvaSBkZXUgYmkgY2F0IGRpIGRlIHRyYW5o IHRydW5nIGxhcCB2b2kgVGhhbmggdHJhIENoaW5oIA0KcGh1Lg0KDQooQW5oOiBPbmcgVnVvbmcg RGluaCBIdWU6IEtpZW0gdG9hbiBOaGEgbnVvYyB0dW5nIGxlbiBrZSBob2FjaCBraWVtIHRvYW4g dHUga2hpIA0KVmluYXNoaW4gY29uIGNodWEgbmFuZyBjYXAgdGhhbmggVGFwIGRvYW4uIEFuaDog VmlldE5hbU5ldCkNCg0KVHVuZyBraG9uZyBkdW9pIDMgbGFuIG5ldSB0YWkgUXVvYyBob2kgdmUg Y2FjIHNhaSBwaGFtIGN1YSBWaW5hc2hpbiwgdHJvbmcgZG8gY28gY2EgDQp2aWVjIHRoYW5oIHRy YSBkYSBob2FuIGRpIGhvYW4gbGFpIHZpZWMgdGhhbmggdHJhIHRhcCBkb2FuIG5heSwgVHJ1b25n IGRvYW4gREJRSCBIdW5nIA0KWWVuIFZ1IFF1YW5nIEhhaSBjaG8gaGF5LCBuZ2F5IGtoaSBVeSBi YW4gS2llbSB0cmEgVFUgY29uZyBibyBzYWkgcGhhbSBvIFZpbmFzaGluLCANCm9uZyBkYSBndWkg Y2hhdCB2YW4gbGVuIFRvbmcgS2llbSB0b2FuIE5oYSBudW9jIHZhIFRvbmcgVGhhbmggdHJhIENo aW5oIHBodS4NCg0KT25nIEhhaSBuZXUgdmFuIGRlOiAiQ2hpbmgga2V0IGx1YW4gdnVhIHJvaSBj dWEgQm8gY2hpbmggdHJpIGRhIGtoYW5nIGRpbmggdHUgMjAwNiCWIA0KMjAwOSBkYSBjbyB0b2kg MTEgbGFuIGtpZW0gdG9hbiwgdGhhbmggdHJhLiBWYXkgdHJhY2ggbmhpZW0gY2FjIGRvYW4ga2ll bSB0b2FuIHNlIGR1b2MgDQp4ZW0geGV0IGRlbiBkYXU/IERvIHRyaW5oIGRvIGNodWEgdHVvbmcg eHVuZyBoYXkgY28gdGlldSBjdWMgbmFvIGtoYWMgdHJvbmcgY2FjIGRvYW4gDQpraWVtIHRvYW4g bmF5PyIuDQoNCkRCIFZ1IFF1YW5nIEhhaSBkYSBuaGFuIGR1b2MgY2F1IHRyYSBsb2kgY3VhIFRv bmcgS2llbSB0b2FuIE5oYSBudW9jIFZ1b25nIERpbmggDQpIdWUgc29tIDEgdGhhbmcgdHJ1b2Mg a2hpIGtoYWkgbWFjIGt5IGhvcC4gUmllbmcgVG9uZyBUaGFuaCB0cmEgQ2hpbmggcGh1IGRlbiBu YXkgDQp2YW4gY2h1YSBjbyBjYXUgdHJhIGxvaS4NCg0KVG9uZyBLaWVtIHRvYW4gTmhhIG51b2Mg Z2lhaSB0aGljaCwgdmkgc28gbHVvbmcgY2FjIHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgbmhhIG51 b2MgcmF0IA0KbG9uIG5lbiBjaHUga3kga2llbSB0b2FuIHRodW9uZyA0IC0gNSBuYW0gbW9pIHRo dWMgaGllbiBkdW9jIG1vdCBsYW4uDQoNCk9uZyBIdWUgY3VuZyBjaG8gaGF5LCBLaWVtIHRvYW4g TmhhIG51b2MgKEtUTk4pIHR1bmcgbmhpZXUgbGFuIGxlbiBrZSBob2FjaCBraWVtIA0KdG9hbiwg bmdheSB0dSBraGkgVmluYXNoaW4gY29uIGNodWEgbmFuZyBjYXAgbGVuIFRhcCBkb2FuLg0KDQpU dSBsdWMgVmluYXNoaW4gZGkgdmFvIGhvYXQgZG9uZyAoMjAwNikgZGVuIG5heSwgS1ROTiBkYSBo YWkgbGFuIHhheSBkdW5nIGtlIGhvYWNoIA0Ka2llbSB0b2FuIGRvaSB2b2kgdGFwIGRvYW4gbmF5 Lg0KDQpDdSB0aGUsIG5hbSAyMDA4LCBLVE5OIGRhIGxlbiBrZSBob2FjaCBraWVtIHRvYW4gYmFv IGNhbyB0YWkgY2hpbmggY3VhIHRhcCBkb2FuLCANCm5odW5nIGRvIFRoYW5oIHRyYSBDaGluaCBw aHUgZGEgZHVhIFRhcCBkb2FuIFZpbmFzaGluIHZhbyBrZSBob2FjaCB0aGFuaCB0cmEgbmFtIA0K MjAwOSAtIG5odW5nIHJvaSBsYWkgaG9hbiAtIG5lbiB0aGVvIHF1eSBjaGUgcGhvaSBob3AgdmEg ZGUgdHJhbmggdHJ1bmcgbGFwLCBLVE5OIGRhIA0KZHVhIHJhIG5nb2FpIGtlIGhvYWNoIHZhIGx1 aSBzYW5nIG5hbSAyMDEwLg0KDQpUdXkgbmhpZW4sIGtlIGhvYWNoIG5heSBsYWkgdGllcCB0dWMg YmkgInRyaSBob2FuIiBib2kga2hvbmcgZHVvYyBwaGUgZHV5ZXQuDQpDdSB0aGUsIGtoaSBndWkg Y2hvIFRoYW5oIHRyYSBDaGluaCBwaHUsIHRoaSB5IGtpZW4gY3VhIGNvIHF1YW4gbmF5IGxhOiAi VGhhbmggdHJhIENoaW5oIA0KcGh1IHRoYXkgY28gc3UgdHJ1bmcgbGFwIHZlIG1vdCBzbyBsaW5o IHZ1YyB2YSBkb2kgdHVvbmcga2llbSB0b2FuIi4gDQoNCk5odW5nIHJvaSwgY2hpbmggVGhhbmgg dHJhIENoaW5oIHBodSBjdW5nIGtob25nIGR1b2MgVGh1IHR1b25nIGNoYXAgbmhhbiBrZSBob2Fj aCANCnRoYW5oIHRyYSBWaW5hc2hpbiB2b2kgbHkgZG8gImRlIGRvYW5oIG5naGllcCB0YXAgdHJ1 bmcgcGhhdCB0cmllbiBzYW4geHVhdCwgY2hvbmcgc3V5IA0KZ2lhbSBraW5oIHRlLCBUaHUgdHVv bmcgZGUgbmdoaSBkaWV1IGNoaW5oIHNhbmcga2UgaG9hY2ggdGhhbmggdHJhIG5hbSAyMDEwIi4N Cg0KKEFuaDogVGFpIGt5IGhvcCB2dWEgcXVhLCBEQiBWdSBRdWFuZyBIYWkgbGFpIGNoYXQgdmFu IHZlIGNodXllbiBtdWEgdGF1IEhvYSBTZW4uIA0KQW5oOiBMZSBBbmggRHVuZykgDQoNClBobyBU aHUgdHVvbmcgTmd1eWVuIFNpbmggSHVuZyBibyBzdW5nOiAiS2llbSB0b2FuIE5oYSBudW9jIG5l biBwaG9pIGhvcCB2b2kgDQpUaGFuaCB0cmEgQ2hpbmggcGh1IGRlIG5hbmcgY2FvIGhpZXUgcXVh IGhvYXQgZG9uZyBraWVtIHRvYW4gdmEgaG9hdCBkb25nIFRoYW5oIHRyYSwgDQp0cmFuaCB0cnVu ZyBsYXAsIHRhbyBkaWV1IGtpZW4gY2hvIGRvYW5oIG5naGllcCBob2FuIHRoYW5oIHRvdCBjYSBu aGllbSB2dSBwaHVjIHZ1IGtpZW0gDQp0b2FuLCB0aGFuaCB0cmEgdGhlbyBxdXkgZGluaCwgY3Vu ZyBuaHUgdGFwIHRydW5nIHRob2kgZ2lhbiBjaHV5ZW4gbW9uIHZhIHNhbiB4dWF0Ii4NCg0KTmdh eSBjYSBVeSBiYW4gVGh1b25nIHZ1IFFIIGN1bmcgY2hvIHJhbmc6ICJOZW4geGVtIHhldCwgY2Fu IG5oYWMgY2h1YSBkdWEgdmFvIGtlIA0KaG9hY2gga2llbSB0b2FuIG5hbSAyMDEwIGNhYyB0YXAg ZG9hbiwgdG9uZyBjb25nIHR5IG1hIFRoYW5oIHRyYSBDaGluaCBwaHUsIFRoYW5oIHRyYSANCkJv IFRhaSBjaGluaCBkYSBjbyBxdXlldCBkaW5oIHRoYW5oIHRyYSBuYW0gMjAwOSBuaHVuZyB0YW0g ZHVuZyB0aGFuaCB0cmEgdGhlbyBjaGkgZGFvIA0KY3VhIFRodSB0dW9uZyIuDQoNCk5nb2FpIHJh LCBuaHUgYmFvIGNhbyBjdWEgVXkgYmFuIFRhaSBjaGluaCAtIE5nYW4gc2FjaCBRdW9jIGhvaSwg ZHVvYyBjaG8gbGEgdG9uZyBob3AgDQp5IGtpZW4gZGFpIGJpZXUgUXVvYyBob2ksIHRoaSAidm9p IG1vdCBzbyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IG1hIFRoYW5oIHRyYSBkYSBjbyBrZSANCmhv YWNoIHRoaSBraWVtIHRvYW4gY28gdGhlIHhlbSB4ZXQgZHVhIHJhIG5nb2FpIGtlIGhvYWNoIGRl IHRyYW5oIGNob25nIGNoZW8sIGdheSBwaGllbiANCmhhIGNobyBkb2FuaCBuZ2hpZXAiLg0KDQoi Q2FuIGN1IHkga2llbiBUaGFuaCB0cmEgQ2hpbmggcGh1LCB0aWVwIHRodSB5IGtpZW4gVXkgYmFu IFRodW9uZyB2dSBRdW9jIGhvaSwgY2FjIGRhaSANCmJpZXUgUXVvYyBob2ksIEtUTk4gbGFpIHRp ZXAgdHVjIHJ1dCB0ZW4gVmluYXNoaW4ga2hvaSBrZSBob2FjaCIsIG9uZyBIdWUgY2hvIGhheS4N Cg0KTmh1IHZheSwgdHUgMjAwNiBkZW4gbmF5LCBLVE5OIGRhIGhhaSBsYW4geGF5IGR1bmcga2Ug aG9hY2ggbmh1bmcgcm9pIGNodWEgdGh1YyBoaWVuIA0KZHVvYyB2aWVjIGtpZW0gdG9hbiBWaW5h c2hpbiBsYSBkbyBjbyBjaGUgcGhvaSBob3AgdmEgdHJhbmggY2hvbmcgY2hlbyB0cm9uZyBob2F0 IGRvbmcgdGhhbmggdHJhLCBraWVtIHRyYSwga2llbSB0b2FuLg0KDQooQW5oOiBUaGVvIERCIFRy YW4gVmFuIEhhbmcgKE5naGUgQW4pOiAiQ2hpbmggcGh1IGxhcCBuaGlldSBkb2FuIHRoYW5oIHRy YSBtYSByb2kgDQoiY2hpIG1vaSBiYW8gY2FvIGN1YSBCbyBLSCZEVCBsYSBsZW4gZGVuIFV5IGJh biBLaWVtIHRyYSBUVSIsIGNvbiBsYWkgYmFvIGNhbyBjdWEgDQp0aGFuaCB0cmEgY2FjIGJvIG5n YW5oIGRldSBuYW0gZ29uIHRyb25nIG5nYW4gYmFuIGNhYyBibyBjaHUga2hvbmcgbGVuIGR1b2Mg ZGVuIA0KInRyZW4iLikgDQoNCk9uZyBWdW9uZyBEaW5oIEh1ZSBnaWFpIHRoaWNoLCB0dSAyMDA2 LCBWaW5hc2hpbiBkYSB0aHVlIGNhYyBjb25nIHR5IGtpZW0gdG9hbiBkb2MgbGFwIA0KKHRhcCBk b2FuIGtpZW0gdG9hbiBxdW9jIHRlIEtQTUcpIHRpZW4gaGFuaCBraWVtIHRvYW4uIA0KDQoiTWEg dmllYyBxdWFuIGx5IG5oYSBudW9jIHZvaSBjYWMgY29uZyB0eSBraWVtIHRvYW4gZG9jIGxhcCwg a2UgY2EgY29uZyB0eSBxdW9jIHRlIGxhIA0KdHJhY2ggbmhpZW0gQm8gVGFpIGNoaW5oLiBEbyBr aG9uZyBub2kgcm8gbGEgbG9haSBraWVtIHRvYW4gZ2kgbmVuIGNvIHRoZSBkdSBsdWFuIGhpZXUg DQpuaGFtIGxhIEtUTk4uIE5odSB2YXksIGtlIHR1IG5hbSAyMDA2IGRlbiBuYXksIGtob25nIGNv IHZpZWMgS1ROTiBkYSB0aWVuIGhhbmggDQpraWVtIHRvYW4gVmluYXNoaW4gbWEga2hvbmcgcGhh dCBoaWVuIHZhIGNvIGNhbmggYmFvIHZvaSBUYXAgZG9hbiIuDQoNCmh0dHA6Ly93d3cudmlldC5y ZmkuZnIvdmlldC1uYW0vMjAxMDEyMDUtdmlldC1uYW0tY28tbmd1eS1jby10dXQtaGF1LXNvLXZv aS1jYWMtbGFuZy1naWVuZyBUcm9uZyBOZ2hpYSAwNS8xMi8yMDEwIA0KDQpUaHUgdHVvbmc6IFZp ZXQgTmFtIHRydW9jIG5ndXkgY28gdHV0IGhhdSBzbyB2b2kgY2FjIG51b2MgbGFuZyBnaWVuZyAN Cg0KVHVuZyBkdW9jIGRhbmggZ2lhIGxhIG1vdCAiY29uIGhvIHRpZW0gdGFuZyBjdWEgY2hhdSBB IiBoYWkgdGhhcCBreSB0cnVvYyBkYXksIFZpZXQgTmFtIGJhdCBkYXUgYmkgdHV0IGxhaSBzYXUg bmhpZXUgbnVvYyB0cm9uZyB2dW5nLiANClZhaSBuZ2F5IHRydW9jIGx1YyBjYWMgbmhhIHRhaSB0 cm8gY2hvIFZpZXQgTmFtIGhvcCBob2kgbmdoaSB0aHVvbmcgbmllbiB0YWkgSGEgTm9pIA0KKG5n YXkgMDctMDgvMTIvMjAxMCksIG5oaWV1IHRpZW5nIGNodW9uZyBiYW8gZG9uZyBkYSBsaWVuIHRp ZXAgdmFuZyBsZW4sIGtldSBnb2kgVmlldCANCk5hbSBjYWkgY2FjaCBuZXUga2hvbmcgbXVvbiBi aSB0dXQgbGFpIGRhbmcgc2F1LiANCg0KVGhlbyBjYWMgbmhhIGRhdSB0dSBuZ29haSBxdW9jLCBj byByYXQgbmhpZXUgbmd1eWVuIG5oYW4gZGFuIGRlbiB0aW5oIHRyYW5nIGhpZW4gbmF5LCB0dSAN CmNvIHNvIGhhIHRhbmcgcXVhIHRhaSwgbHVjIGx1b25nIGxhbyBkb25nIHRoaWV1IHRyaW5oIGRv LCBjaG8gZGVuIHRlIG5hbiBxdWFuIGxpZXUgdmEgdGhhbSANCm5odW5nIG5hbmcgbmUuLi4gVGhl byBvbmcgQWRhbSBTaXRrb2ZmLCBnaWFtIGRvYyBkaWV1IGhhbmggUGhvbmcgVGh1b25nIG1haSBN eSB0YWkgDQpWaWV0IE5hbSAoQW1DaGFtKSwgZHVvYyBoYW5nIHRpbiBQaGFwIEFGUCB0cmljaCBk YW46ICJIYXUgaGV0IGNhYyBuaGEgZGF1IHR1IGRldSBkYSANCmNvbmcgbmhhbiByYW5nIFZpZXQg TmFtIGNvIHRpZW0gbmFuZyByYXQgbG9uLiBUaGUgbmh1bmcsIG51b2MgbmF5IGRhbmcgcGhhaSB2 YXQgbG9uIA0Kdm9pIG1vdCBsb2F0IGNhYyByYW8gY2FuIGRhdSB0dSBjbyBodXUgZGUgaGllbiB0 aHVjIGhvYSB0aWVtIG5hbmcgbmF5Ii4NCg0KVGhlbyBjYWMgbmhhIHF1YW4gc2F0LCBnaWFjIG1v IGJpZW4gdGhhbmggY29uIHJvbmcsIGNvbiBobyBjaGF1IEEgbmh1IERhaSBMb2FuLCBTaW5nYXBv cmUgIGhheSBIYW4gUXVvYyBjdWEgVmlldCBOYW0gdmFuIGNvbiB4YSB2b2kuIFRoYW0gY2hpLCB0 aGVvIG9uZyBNYXR0aGlhcyANCkR1aG4sIEdpYW0gZG9jIGRpZXUgaGFuaCBQaG9uZyBUaHVvbmcg bWFpIGNoYXUgQXUgdGFpIFZpZXQgTmFtIJYgRXVyb2NoYW0tIHRoaSANClZpZXQgTmFtIGNvbiBj byAibmd1eSBjbyBiaSByb2kgdmFvICdiYXkgdGh1IG5oYXAgdHJ1bmcgYmluaCcsIHR1YyBsYSB0 aW5oIHRyYW5nIGJhdCBsdWMsIA0Ka2hvbmcgdGhvYXQgcmEga2hvaSBtbyBoaW5oIGtpbmggdGUg ZHVhIHRyZW4gbGFvIGRvbmcgcmUgdmEgcGh1b25nIHBoYXAgc2FuIHh1YXQgY29uZyBuZ2hlIHRo YXAgIi4gDQoNClRodSBuYW0gdnVhIHF1YSwgbmhhbiBEaWVuIGRhbiBEb2FuaCBuZ2hpZXAgVmll dCBOYW0gdGFpIEhhIE5vaSwgZ2lvaSBkb2FuaCBuaGFuIA0KbnVvYyBuZ29haSBsYW0gYW4gbyBW aWV0IE5hbSBkYSBrZXUgZ29pIGNoaW5oIHF1eWVuIHBoYXQgdHJpZW4gY28gc28gaGEgdGFuZywg bmFuZyBjYW8gDQpreSBuYW5nIGN1YSBuZ3VvaSBsYW8gZG9uZywgdGluaCBnaWFuIGJvIG1heSBx dWFuIGxpZXUgdmEgdGllbiBoYW5oIG5odW5nIGNhaSBjYWNoIGtoYWMuDQpNb3Qgc28gdmllbiBj aHVjIHRoYW4gY2FuIHZvaSBjaGluaCBxdXllbiBjdW5nIHRodWEgbmhhbiBzdSBjYW4gdGhpZXQg cGhhaSBjYWkgdG8uIE9uZyANClRyYW4gVGllbiBDdW9uZywgVHJ1b25nIGJhbiBOZ2hpZW4gY3V1 IHZhIFBoYXQgdHJpZW4gRG9hbmggbmdoaWVwIHRodW9jIFZpZW4gUXVhbiANCmx5IEtpbmggdGUg VHJ1bmcgdW9uZyAoQ0lFTSksIGdhbiBkYXkgZGEgY2hvIHJhbmcgVmlldCBOYW0gdHJvbmcgdGhv aSBnaWFuIHF1YSwgZGEgDQpjaHUgeSBxdWEgbmhpZXUgZGVuIHN1IGdpYSB0YW5nIGN1YSBkYXUg dHUgaG9uIGxhIGNhYyB2YW4gZGUgbmh1IGNoYXQgbHVvbmcsIGhpZXUgcXVhLCANCm5hbmcgc3Vh dCB2YSBzdWMgY2FuaCB0cmFuaC4NCkNhYyBjYW4gbHVjIGtoYWMga2hpZW4gY2hvIFZpZXQgTmFt IGJpIHR1dCBoYXUgYmFvIGdvbSB0aGFtIG5odW5nIHZhIHN1IGJhdCBvbiBkaW5oIA0KY3VhIGRv bmcgdGllbiBxdW9jIGdpYTsgVmlldCBOYW0gZGEgcGhhaSBnaWFtIGdpYSBiYSBsYW4ga2UgdHUg Y3VvaSBuYW0gbmdvYWkgZGVuIG5heS4gDQpNb3QgcXVhbiBuZ2FpIG5naGllbSB0cm9uZyBraGFj IGN1bmcgeHVhdCBoaWVuIHRyb25nIG5odW5nIHRoYW5nIGdhbiBkYXkgdmUgdGluaCANCnRyYW5n IHRhaSBjaGluaCBjdWEgY2FjIHRhcCBkb2FuIG5oYSBudW9jIGxvbi4NCkdpb2kgZGF1IHR1IGRh bmcgdHUgaG9pIGxhIGNvbiBjbyBjb25nIHR5IG5oYSBudW9jIG5hbyBraGFjIGRhbmcgbyB0cm9u ZyB0aW5oIHRyYW5nIHRlIA0KaGFpIG5odSBUYXAgZG9hbiBDb25nIG5naGllcCBUYXUgdGh1eSBW aWV0IE5hbS1WaW5hc2hpbi4gDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMjAtNDMzNTY4 L2RlLW5naGktYm8tcGhpZXUtdGluLW5oaWVtLXRoYW5oLXZpZW4tY2hpbmgtcGh1LXNhdS12dS12 aW5hc2hpbi5odG0gQ2FuIEN1b25nICAwMS8xMS8yMDEwIC0gMTE6MDINCg0KRGUgbmdoaSBibyBw aGlldSB0aW4gbmhpZW0gdGhhbmggdmllbiBDaGluaCBwaHUgc2F1IHZ1IFZpbmFzaGluIA0KIA0K KERhbiB0cmkpIC0gQ2FjIGRhaSBiaWV1IE5ndXllbiBNaW5oIFRodXlldCwgTGUgVmFuIEN1b25n IGRhIGRlIG5naGkgdGhhbmggbGFwIA0KVUIgbGFtIHRob2kgY3VhIFF1b2MgaG9pIGRpZXUgdHJh IHRyYWNoIG5oaWVtIGN1YSBjYWMgdGhhbmggdmllbiBDaGluaCBwaHUgDQp0cm9uZyB2dSBWaW5h c2hpbi4gVGhlbyBkYWkgYmlldSBUaHV5ZXQsIHR1IGtldCBxdWEgZGlldSB0cmEsIGNhbiBibyBw aGlldSB0aW4gbmhpZW0gVGh1IHR1b25nLCBjYWMgdGhhbmggdmllbiBDaGluaCBwaHUuDQogDQoq ICBDdSB0cmkga2llbiBuZ2hpIHh1IGx5IG5naGllbSB2dSBWaW5hc2hpbg0KKiAgVmkgc2FvIDQg Y2FuIGJvIGNhcCBjYW8gY3VhIFZpbmFzaGluIGJpIGJhdD8NCiogIFZpbmFzaGluIC0gcGhhdCBo aWVuIGNoYW0gcGhhaSBkdW5nIGJpZW4gcGhhcCBjYXAgY3V1DQoNCkNhYyB2YW4gZGUgdHJlbiBk YSBkdW9jIGRhdCByYSB0cm9uZyBidW9pIHRoYW8gbHVhbiBjdWEgUXVvYyBob2kgdmUgdGluaCBo aW5oIGtpbmggdGUgLSB4YSBob2ksIHNhbmcgbmF5IDEvMTEuDQoNCkRlIG5naGkgZGlldSB0cmEg dHJhY2ggbmhpZW0gY3VhIGNhYyB0aGFuaCB2aWVuIENoaW5oIHBodQ0KDQpEYWkgYmlldSBOZ3V5 ZW4gTWluaCBUaHV5ZXQgKExhbmcgU29uKSBjaG8gcmFuZywgdGh1YyB0cmFuZyB2dWEgcXVhIGN1 YSBWaW5hc2hpbiANCnBoYWkgZHVuZyBkdW5nIHR1IGxhLi4uIHN1cCBkby4gVGhlbyBvbmcgVGh1 eWV0LCB0YXAgZG9hbiBuYXkgc3VwIGRvLCB0cnV0IGxlbiANCnZhaSBkb25nIGJhbyBtb24gbm8g a2hvbmcgbG8gdHJlbiBkdW9pIDEwMC4wMDAgdHkgZG9uZywgYmFuZyBtb3QgdGluaCB0aHUgbmhh cCANCjEuMDAwIHR5IGRvbmcgbW90IG5hbSBwaGFpIGxhbSBxdWFuIHF1YXQsIGtob25nIGFuIHVv bmcsIG11YSBzYW0gZ2kgbW90IHRoZSBreSBtb2kgdHJhIG5vIGR1b2MuIA0KDQpDdW5nIHRoZW8g ZGFpIGJpZXUgVGh1eWV0LCB2dSB2aWVjIFZpbmFzaGluIGtoaWVuIG9uZyBuaG8gdG9pIHZ1IExh IFRoaSBLaW0gT2FuaC4gDQpUaGVvIGRvLCB2aSBudW9uZyBjaGlldSwgbHVvbiBhcCBkdW5nIHNp ZXUgY28gY2hlIGNobyBjb25nIHR5IGN1YSBLaW0gT2FuaCwgZGFuIGRlbiANCnRoYXQgdGhvYXQg aGFuZyB0cmFtIHRyaWV1IGRvbmcgbWEgbW90IHZpIEJvIHRydW9uZyBkYW5nIHJhdCBkdW9jIGxv bmcgZGFuIGN1bmcgDQpuaHUgZGFpIGJpZXUgUXVvYyBob2kgZGEgcGhhaSB0dSBjaHVjLCAyIHZp IFRodSB0cnVvbmcgYmkgdHJ1eSB0by4gDQoNCiJWaW5hc2hpbiBsYSBtb3Qga2lldSBMYSBUaGkg S2ltIE9hbmggcGhvbmcgZGFpIGNvIDEuMDAwIGxhbiIsIG9uZyBUaHV5ZXQgbmhhbiBkaW5oLg0K VHV5IG5oaWVuLCB0aGVvIG9uZyBUaHV5ZXQsIGRpZXUgZGFuZyBub2kgbGEgbmdvYWkgbGFuaCBk YW8gVmluYXNoaW4sIGhpZW4gY2h1YSBsYW0gDQpybyBkdW9jIHRyYWNoIG5oaWVtIHF1YW4gbHkg bmhhIG51b2MuICJDYWMgdGhhbmggdmllbiBDaGluaCBwaHUgY28gbGllbiBxdWFuIHBoYWkgDQpr aWVtIGRpZW0sIG5oYW4ga3kgbHVhdCB0cnVvYyBRdW9jIGhvaS4gS2hvbmcgdGhlIGNoaSBuaGFu IGtodXlldCBkaWVtIGNodW5nIGNodW5nIA0KdmEgdHV5ZW4gYm8gZGEga2llbSBkaWVtIG5vaSBi byBsYSBydSB4b25nIHRyYWNoIG5oaWVtIiwgb25nIFRodXlldCBuaGFuIG1hbmguDQogDQooQW5o OiBEYWkgYmlldSBMZSBWYW4gQ3Vvbmc6ICJNb2kgbmd1b2kgZGFuIFZpZXQgTmFtIHBoYWkgZ2Fu aCAxLDUgdHJpZXUgZG9uZyBjaG8gVmluYXNoaW4iLiBBbmg6IFZpZXQgSHVuZykNCg0KQ3VuZyB0 aGVvIG9uZyBUaHV5ZXQsIFVCIFR1IHBoYXAgY3VhIFF1b2MgaG9pIG5oYW4gZGluaCwgY28gbmh1 bmcgZGF1IGhpZXUgYmFvIGNoZSANCmNobyBuaHVuZyBzYWkgdHJhaSwgdmkgcGhhbSBjdWEgVmlu YXNoaW4gbGFtIHRoaWV0IGhhaSBsb24gZGVuIHRhaSBzYW4gY3VhIG5oYSBudW9jLCANCm5odW5n IGFpIGJhbyBjaGUsIGJhbyBjaGUgbmh1IHRoZSBuYW8gdmkgbmd1eWVuIG5oYW4gZ2kgbmhhbSBt dWMgZGljaCBnaSB2YSBwaGFpIA0KY2hpdSB0cmFjaCBuaGllbSByYSBzYW8gdGhpIFVCIFR1IHBo YXAgY2h1YSBjbyBkaWV1IGtpZW4ga2V0IGx1YW4uIA0KDQoiTmV1IFF1b2MgaG9pIGtob25nIGxh bSBybyBkdW9jIGRpZXUgbmF5IHRoaSBraG9uZyBob2FuIHRoYW5oIHRyYWNoIG5oaWVtIHRydW9j IERhbmcsIA0KdHJ1b2MgZGFuIHZpIHZheSBjYW4gY3UgaGllbiBwaGFwIHZhIGx1YXQgdG8gY2h1 YyBRdW9jIGhvaSB0b2kgZGUgbmdoaSBRdW9jIGhvaSANCmJpZXUgcXV5ZXQgdGhhbmggbGFwIFVC IGxhbSB0aG9pIGRpZXUgdHJhIHRyYWNoIG5oaWVtIGN1YSBjYWMgdGhhbmggdmllbiBDaGluaCBw aHUsIA0KdHJlbiBjbyBzbyBkbywgY3VvaSBreSBob3AgYm8gcGhpZXUgdGluIG5oaWVtIFRodSB0 dW9uZyB2YSBtb3Qgc28gdGhhbmggdmllbiBsaWVuIHF1YW4iLCBvbmcgVGh1eWV0IG5oYW4gbWFu aC4NCg0KRGUgdGFvIGRpZXUga2llbiBjaG8gY29uZyB0YWMgZGlldSB0cmEgY3VhIFVCIGxhbSB0 aG9pIG9uZyBUaHV5ZXQgZGUgbmdoaSBRdW9jIGhvaSANCnRhbSBkaW5oIGNoaSBjaHVjIHZ1IGNh YyB2aSBjYW4gZHVvYyBkaWV1IHRyYS4NCg0KIk5vaSBuaHVuZyBkaWV1IHRyZW4gdG9pIGNhbSB0 aGF5IGRhdSB4b3QgdmEga2hvIGtoYW4sIG5odW5nIGNodW5nIHRhIGNvIHh1IGx5IA0KbmdoaWVt IG1vaSB0aGUgaGllbiBkdW9jIHN1IGNvbmcgbWluaCBjdWEgcGhhcCBsdWF0LCBoYW4gY2hlIG5o dW5nIGR1IGFuIGxhbSANCmFuIHBoYSBjdWEgYm9jIHRyb2ksIGR1YSBob2F0IGRvbmcgY3VhIGRv YW5oIG5naGllcCBuaGEgbnVvYyB2YW8gZHVuZyBxdXkgZGFvLCANCmtpbmggdGUgcGhhdCB0cmll biBiZW4gdnVuZywgbGF5ICBsYWkgbmllbSB0aW4gY3VhIG5oYW4gZGFuIHZhIHF1eWV0IHRhbSBj aG9uZyBsYW5nIHBoaSwgdGhhbSBuaHVuZyIsIG9uZyBUaHV5ZXQga2UgbGFpLg0KDQpQaGF0IGJp ZXUgbmdheSBzYXUgZG8sIGRhaSBiaWV1IExlIFZhbiBDdW9uZyBjdW5nIHRhbiB0aGFuaCBkZSBu Z2hpIHRoYW5oIGxhcCANClVCIExhbSB0aG9pIGRlIGxhbSBybyB0cmFjaCBuaGllbSB0cm9uZyB2 dSBWaW5hc2hpbi4gVGhlbyBvbmcgQ3VvbmcsIHN1IGNvIA0KVmluYXNoaW4gZGEgZHVvYyBjYW5o IGJhbyBzb20sIG5odW5nIGRvIG51b25nIGNoaWV1IGRhIGRhbiB0b2kgdSBuaG90IGxhdSBuZ2F5 LCANCmtoaSB2byBnYXkgaGF1IHF1YSBuYW5nIG5lLiBOZ3VvaSBkYW4gVmlldCAgTmFtIGtlIGNh IGdpYXUsIG5naGVvIG1vaSBuZ3VvaSBwaGFpIA0KZ2FuaCBjaGl1IDEsNSB0cmlldSBkb25nIGRv IG1vbiBubyBuYXkgZ2F5IHJhLiANCg0KT25nIEN1b25nIHBoZSB0aWVwLCBkbyBkdW9jIHhhYyBk aW5oIGxhIGRhdSB0YXUsIHF1YSBkYW0gdGhlcCBkYSB0YW8gZGlldSBraWVuIA0KY2hvIHRhcCBk b2FuIG1hbmcgdGllbiBkaSB0dW5nIGhvYW5oIGtoYXAgbm9pLCBtdWEgY2FjIHhpIG5naGllcCBs byBsYW0gY29uZyB0eSANCmNvbiwgY2hhdS4uLiBEYW5nIG5vaSBudWEga2hpIGNvIDIgbGFuIFRo YW5oIHRyYSBDaGluaCBwaHUgZGUgbmdoaSB2YW8gY3VvYyB2YW4gYmkgDQpjaGFuIGxhaSwgdHJv bmcga2hpIGNvIDExIGRvYW4gdmFvIGxhbSB2aWVjIHZhbiBraG9uZyBuZ2FuIGR1b2Mgc3Ugc2Fp IHRyYWkgY3VhIHRhcCBkb2FuLiANCg0KIlZpbmFzaGluIHN1cCBkbyBuZ2hpZW0gdHJvbmcga2hv bmcga2hvIGhpZXUsIGNoaSBjbyBkaWV1IG5ldSBvIG51b2MgbmdvYWkgbW90IA0KdmFpIHZpIHNl IHBoYWkgdHUgY2h1Yywgbmh1bmcgbnVvYyB0YSBkZW4gbmF5IHZhbiBjaHVhIGNvIGFpIiwgb25n IEN1b25nIGdheSBnYXQuIA0KDQpQaGFpIGNvIGxvaSB4aW4gbG9pIG5oYW4gZGFuDQoNCiJTdSBz dXkgc3VwIGN1YSBWaW5hc2hpbiBuaHUgbW90IHN1IGNvIHRyb25nIGxpY2ggc3UgdGFwIGRvYW4u IEhlIHF1YSB0YWMgZG9uZyANCnNhdSByb25nIGtob25nIGNoaSB2ZSBraW5oIHRlIG1hIGNvbiB2 ZSB4YSBob2ksIGNoYW5nIG5odW5nIGxhbSBzdXkgeWV1IHRpZW0gbHVjIA0KcXVvYyBnaWEgbWEg Y29uIGxhbSBzdXkgZ2lhbSBuaWVtIHRpbiBjdWEgY29uZyBjaHVuZyBkb2kgIHZvaSBDaGluaCBw aHUiLCBkYWkgYmlldSBIdXluaCBOZ29jIERhbiBub2kgdGllcC4NCg0KQ2hvIHJhbmcgQ2hpbmgg cGh1IGNodWEgZGFuaCBnaWEgdGFjIGRvbmcgZHVuZyBtdWMgY3VuZyBuaHUgY2h1YSBsYW0gcm8g dHJhY2ggbmhpZW0gDQpvbmcgRGFuIGRlIG5naGksIGNhIG5oYW4gdG8gY2h1YyBjbyBsaWVuIHF1 YW4gZGVuIGJ1b25nIGxvbmcgIHF1YW4gbHkgVmluYXNoaW4gcGhhaSANCmR1b2MgdHJ1eSBjdXUg dHJhY2ggbmhpZW0gdGhlIG5hbyBjaG8gY29uZyBtaW5oLi4uICJDYXUgaG9pIGRvIGtobyB0cmEg bG9pLCBuaHVuZyANCnRvaSBkZSBuZ2hpIENoaW5oIHBodSBjbyBsb2kgZ2lhaSBkYXAgdGhvYSBk YW5nIHZvaSBjdSB0cmkiLCBvbmcgRGFuIG5vaS4NCg0KRGFpIGJpZXUgUGhhbSBUaGkgTG9hbiBj dW5nIGRlIG5naGkgbGFtIHJvIG5ndW9pIGNoaXUgdHJhY2ggbmhpZW0gY3VvaSBjdW5nLCANCnRy YWNoIG5oaWVtIGN1YSBUaHUgdHVvbmcsIGNhYyBibyBuZ2FuaC4gIktob25nIHRoZSBjaGkgZG8g Y2FjIGNhbiBibyBjdWEgVmluYXNoaW4sIA0KdmkgbW90IG1pbmggVmluYXNoaW4ga2hvbmcgdGhl IGxhbSBzYWkgZHVvYywgYWkgY2hvIHBoZXAgVmluYXNoaW4gcGhhdCBoYW5oIHRyYWkgDQpwaGll dSBsb24gbmh1IHZheSwgYWkgZGUgVmluYXNoaW4gZGF1IHR1IHRyYW4gbGFuLCBhaSBjaG8gVmlu YXNoaW4gdmF5IGxvbiBuaHUgdmF5Li4uIA0KVGFpIHNhbyBRdW9jIGhvaSBkYSBkdWEgVmluYXNo aW4gdmFvIGRhbmggc2FjaCBnaWFtIHNhdCwgQ2hpbmggcGh1IHZhbiBkZSBuZ2hpIA0KdGhhbmgg dHJhIENoaW5oIHBodSB2YW8gdHJ1b2MsIG5odW5nIHZpZWMgZG8gbmhhbSBtdWMgZGljaCBnaT8i LCBiYSBMb2FuIGdheSBnYXQuDQoNCihEYWkgYmlldSBQaGFtIFRoaSBMb2FuOiAiUGhhaSBjbyB2 YW4gaG9hIHR1IGNodWMgZGUgZ2l1IHV5IHRpbiB2b2kgbmhhbiBkYW4iLiBBbmg6IFZpZXQgSHVu ZykNCg0KTmhhYyBsYWkgcXVhbiBkaWVtIHBoYWkgcXV5IHRyYWNoIG5oaWVtIGRlbiBjdW5nLCBw aGFpIGxhbSBybyB0cmFjaCBuaGllbSBjdWEgbmh1bmcgDQpuZ3VvaSBxdWFuIGx5IG5oYSBudW9j LCBiYSBMb2FuIGN1bmcgZGUgbmdoaSBuaHVuZyBuZ3VvaSBsYW0gc2FpIHBoYWkgY28gbG9pIHhp biBsb2ksIA0KcGhhaSBjbyB2YW4gaG9hIHR1IGNodWMgZGUgZ2l1IHV5IHRpbiB2b2kgbmhhbiBk YW4uIA0KDQpodHRwOi8vdm5lY29ub215LnZuLzIwMTAxMTIyMDg1NzUwNjM0UDBDOTkyMC90aGll dS1kaWVuLXRvaS14aW4tbmhhbi10cmFjaC1uaGllbS5odG0gTkdVWUVOIFZVIDIyLzExLzIwMTAg MjE6MjYgKEdNVCs3KSANCg0KS3kgaG9wIHRodSA4LCBRdW9jIGhvaSBraG9hIFhJSToNCg0KVGhp ZXUgZGllbjogIlRvaSB4aW4gbmhhbiB0cmFjaCBuaGllbSEiIA0KIA0KKEFuaDogUGhvIHRodSB0 dW9uZyBIb2FuZyBUcnVuZyBIYWkgcGhhdCBiaWV1IHRhaSBuZ2hpIHRydW9uZyBRdW9jIGhvaS4p IA0KDQpQaG8gdGh1IHR1b25nIEhvYW5nIFRydW5nIEhhaSBuaGFuIHRyYWNoIG5oaWVtIHZlIHRp bmggaGluaCB0aGlldSBkaWVuIHZvaSBRdW9jIGhvaSwgDQp2b2kgY3UgdHJpDQoNCiJWb2kgdHUg Y2FjaCBsYSB0aGFuaCB2aWVuIENoaW5oIHBodSB2YSBUcnVvbmcgYmFuIENoaSBkYW8gTmhhIG51 b2MgdmUgcXV5IGhvYWNoIA0KZGllbiA2LCB0b2kgeGluIG5oYW4gdHJhY2ggbmhpZW0gdmUgdGlu aCBoaW5oIHRoaWV1IGRpZW4gdm9pIFF1b2MgaG9pLCB2b2kgY3UgdHJpIiwgUGhvIHRodSANCnR1 b25nIEhvYW5nIFRydW5nIEhhaSBwaGF0IGJpZXUsIHNhdSBraGkgZGFpIGJpZXUgdGllcCB0dWMg Y2hhdCB2YW4gdmEgQm8gdHJ1b25nIEJvIA0KQ29uZyBUaHVvbmcgdGllcCB0dWMgdHJhIGxvaSB2 ZSB0aW5oIHRyYW5nIHRoaWV1IGRpZW4sIGNoaWV1IDIyLzExLg0KDQpUYWkgc2FvIHZhbiB0aGll dSBkaWVuPw0KDQpUaGVvIFBobyB0aHUgdHVvbmcgdGhpIHF1eSBob2FjaCBkaWVuIDYga2hvbmcg cGhhaSBsYSBuZ3V5ZW4gbmhhbiBnYXkgcmEgdGhpZXUgZGllbi4gDQpWaSBuZXUgdGh1YyBoaWVu IHRvdCB2YSB0aHVjIGhpZW4gZHVvYyBoZXQgY2FjIGR1IGFuIHRyb25nIHF1eSBob2FjaCBkaWVu IDYgdGhpIGRhIGtob25nIHRoaWV1IGRpZW4uIA0KDQpCYXkgZ2lvIHRhaSBzYW8gbGFpIHZhbiB0 aGlldSBkaWVuPyBTYXUgY2F1IGhvaSBuYXksIFBobyB0aHUgdHVvbmcgZGEgY2hpIHJhIG5oaWV1 IG5ndXllbiANCm5oYW4gdmEgZGFjIGJpZXQgbmhhbiBtYW5oIG5ndXllbiBuaGFuIHRodSBuaGF0 IGxhIHRoaWV1IHZvbi4gVHUgbmFtIDIwMDYgZGVuIG5heSwgDQp2aWVjIGh1eSBkb25nIHZvbiBj aG8gY2FjIGR1IGFuIGxhIGhldCBzdWMga2hvIGtoYW4uIExhaSBzdWF0IHRyb25nIG51b2MgY28g bHVjIGxlbiBkZW4gDQoxOC0xOSUsIG5odW5nIGtlIGNhIG5nYW5oIGRpZW4gZGkgdmF5IHZvaSBs YWkgc3VhdCBuaHUgdmF5IGN1bmcga2hvbmcgZHUgdm9uIGRlIHZheS4gDQoNCiJDbyBuaHVuZyBj b25nIHRyaW5oIGRhIGRhdSB0aGF1LCBkYSBreSBkdW9jIGhvcCBkb25nIG5odW5nIGtob25nIGNv IHZvbiwgQ2hpbmggcGh1IA0KcGhhaSBkaWV1IGhhbmggY2FjIG5nYW4gaGFuZyBjaG8gdmF5IG5v bmcgZGUgY28gdGhlIGtob2kgY29uZyIsIFBobyB0aHUgdHVvbmcgbm9pLiANCg0KR2lhaSBwaG9u ZyBtYXQgYmFuZyBjaGFtLCB0aGVvIFBobyB0aHUgdHVvbmcsIGN1bmcgbGEgbW90IHRyb25nIG5o dW5nIG5ndXllbiBuaGFuIA0KbG9uIGRhbiBkZW4gdmllYyBjYWMgY29uZyB0cmluaCBiaSBjaGFt IHRpZW4gZG8uIEJlbiBjYW5oIGRvIGxhIHN1IGtob25nIGhhcCBkYW4gY3VhIGdpYSANCmRpZW4g bGFtIGNobyB2aWVjIGh1eSBkb25nIHZvbiBjaG8gY2FjIGNvbmcgdHJpbmggZGFjIGJpZXQgbGEg Y2FjIGNvbmcgdHJpbmggY3VhIHR1IG5oYW4sIA0Ka2UgY2EgdHJvbmcgdmEgbmdvYWkgbnVvYyBr ZW0gaGFwIGRhbi4gDQoNCk5ndXllbiBuaGFuIG51YSBkdW9jIFBobyB0aHUgdHVvbmcgY2hpIHJh IGxhIG5hbmcgbHVjIGN1YSBjaHUgZGF1IHR1IHZhIGNhYyBuaGEgdGhhdSwgDQprZSBjYSBtb3Qg c28gbmhhIHRoYXUgbnVvYyBuZ29haS4gVGllcCBkZW4gbGEgeSB0aHVjIHRpZXQga2llbSBjdW5n IG5odSB0cmluaCBkbyBjb25nIA0KbmdoZSBraGkgc3UgZHVuZyBkaWVuIGNvbiByYXQgbGFjIGhh dS4gIkhpZW4gbmF5IGNodW5nIHRhIGRhbmcgc3UgZHVuZyBob24gMjAlIHNvIHZvaSANCmNhYyBu dW9jIHRyb25nIGtodSB2dWMgdmUgZGllbiB2YSBuYW5nIGx1b25nIGRlIHNhbiB4dWF0IHJhIG1v dCBkb24gdmkgR0RQIiwgUGhvIHRodSANCnR1b25nIG5vaS4NCg0KTGllbiBxdWFuIGRlbiBjYWMg Z2lhaSBwaGFwLCB0aGVvIFBobyB0aHUgdHVvbmcsIHRydW9jIGhldCBwaGFpIHRhcCB0cnVuZyB2 YW8gdGhhbyBnbyANCnZ1b25nIG1hYyBjYWMgY29uZyB0cmluaCBkYW5nIHRoaSBjb25nLiBUaHUg bnVhIGxhIHRhaSBjbyBjYXUgbmdhbmggZGllbiB2YSBzYW5nIG5hbSANCnNlIGR1YSByYSB0aGkg dHJ1b25nIGNhbmggdHJhbmggdmUgcGhhdCBkaWVuLiANCg0KU2UgcGhhaSB0YWNoIGNhYyBuaGEg bWF5IGRpZW4gcmEga2hvaSBUYXAgZG9hbiBEaWVuIGx1YyBWaWV0IE5hbSwgY2hpIGRlIGxhaSBt b3Qgc28gY2FjIA0KbmhhIG1heSBkaWVuIGNoaWVuIGx1b2MgbyB0cm9uZyBUYXAgZG9hbiwgUGhv IHRodSB0dW9uZyBjaG8gYmlldC4gVGh1YyBoaWVuIGdpYSBkaWVuIA0KdGhlbyBjbyBjaGUgdGhp IHRydW9uZyBjdW5nIGxhIGdpYWkgcGhhcCBkdW9jIFBobyB0aHUgdHVvbmcgbmhhbiBtYW5oLCBk b25nIHRob2kgb25nIA0KInJhdCBtb25nIGNhYyB2aSBkYWkgYmlldSBRdW9jIGhvaSwgY3UgdHJp IGNhIG51b2MgdW5nIGhvIGNobyBjbyBjaGUgZ2lhIGRpZW4gbmF5Ii4NCg0KWSBraWVuIHRoYW8g bHVhbjogDQoNCkxlIE1pbmggQ2hhdSAwODozNiAoR01UKzcpIC0gVGh1IEJhLCAyMy8xMS8yMDEw OiANCg0KQ3UgdHJpIHJhdCBtdW5nIGtoaSBQaG8gdGh1IHR1b25nIGRlIGNhcCBkZW4gdmllYyB0 YWkgY28gY2F1IG5nYW5oIGRpZW4gdmEgc2UgZHVhIHJhIHRoaSANCnRydW9uZyBjYW5oIHRyYW5o IHZlIHBoYXQgZGllbi4gRGF5IGxhIHZhbiBkZSBkdW9jIGRlIHh1YXQsIGJhbiB0aGFvIG5oaWV1 IGxhbiBuaHVuZyB2YW4gDQpjaHVhIHRhYyBkb25nIHRodWMgc3UgZGVuICdsbyBjb3QnIEVWTi4g DQoNCkRpZXUgYmF0IGhvcCBseSBsYSB0aGlldSB2b24gZGUgZGF1IHR1IHZhbyBzYW4geHVhdCBk aWVuIHRyb25nIGtoaSBkb25nIHZvbiB0cm9uZyBkYW4gDQpjb24gbmhpZXUsIGNoYXkgdm9uZyB2 byB0aWVuIJYgdmFuZyCWIGRvIGxhIJYgYmF0IGRvbmcgc2FuIJYgY2h1bmcga2hvYW4gdHJvaSBs ZW4sIHN1dCANCnh1b25nIGJhdCBiaW5oIHRodW9uZyBsYSBib2kgY2h1YSBjbyBjbyBjaGUgaHV5 IGRvbmcgdm9uIGRhdSB0dSBob3AgbHksIGNodWEgZ2lhaSB0b2EgDQp0aWVtIG5hbmcgY3VhIHRo aSB0cnVvbmcsIGRhYyBiaWV0IGNodWEgcGhhIGJvIGRvYyBxdXllbiB0cm9uZyBzYW4geHVhdCwg a2luaCBkb2FuaCBkaWVuLiANCk5ndW9pIGRhbiBzYW4gc2FuZyB0aHVjIGhpZW4gZ2lhIGRpZW4g dGhlbyB0aGkgdHJ1b25nIG5ldSBjbyB0aGkgdHJ1b25nIGNhbmggdHJhbmggbWluaCANCmJhY2gg bWllbiBsYSBraG9uZyBiaSB0aGlldSBkaWVuLCBjYXQgZGllbiB2byB0b2kgdmEgbmh1IGhpZW4g bmF5LiBTdSB0aGFuZyB0aGFuIGN1YSBQaG8gDQp0aHUgdHVvbmcgdHJ1b2MgUXVvYyBob2kgbGFu IG5heSBoaSB2b25nIGxhIHF1eWV0IHRhbSBjdWEgQ2hpbmggcGh1IHRodWMgaGllbiB0YWkgY28g Y2F1IEVWTi4gDQoNCk5ndXllbiBEdXkgQ29uZyAwMjowMCAoR01UKzcpIC0gMjMvMTEvMjAxMDog IA0KDQpUb2kgcmF0IHZ1aSB2YSB0cmFuIHRyb25nIHRydW9jIGhhbmggZG9uZyBuaGFuIHRyYWNo IG5oaWVtIGN1YSBQaG8gdGh1IHR1b25nLiBIaSB2b25nIA0KcmFuZyBzdSB0aGFuZyB0aGFuIG5o YW4gdHJhY2ggbmhpZW0gdmUgbWluaCBjdWEgUGhvIHRodSB0dW9uZyBzZSBuZXUgZ3VvbmcgY2hv IG5odW5nIA0Kbmd1b2kgZGFtIG5oYW4gdHJvbmcgdHJhY2ggdHJ1b2MgbmhhbiBkYW4gdmEgZGF0 IG51b2Mga2hpIGtob25nIGhvYW4gdGhhbmggbmhpZW0gdnUgDQpoYXkgbmh1bmcgc2FpIHBoYW0g dHJvbmcgcXVhbiBseSBjdWEgbWluaC4gUXVhbiB0cm9uZyBob24sIHN1IG5oYW4gdHJhY2ggbmhp ZW0gZG8gc2UgDQpkdW9jIGJpZW4gdGhhbmggaGFuaCBkb25nLCBkZSBsYW0gY2hvIHRodWMgdGll biB0aGF5IGRvaSB0aGVvIGh1b25nIHRpY2ggY3VjIGhvbi4gDQoNCmh0dHA6Ly93d3cuZXZuLmNv bS52bi9EZWZhdWx0LmFzcHg/dGFiaWQ9NjAmVG9waWNJZD0yJmxhbmd1YWdlPXZpLVZOICgyNy8w OC8yMDA4KQ0KDQpUYXAgZG9hbiBEaWVuIGx1YyBWaWV0IE5hbSCWIEVWTiBkdW9jIHRoYW5oIGxh cCBuYW0gMjAwNiB0aGVvIFF1eWV0IGRpbmggc28gDQo0OC8yMDA2L1FELVRUZyBjdWEgVGh1IHR1 b25nIENoaW5oIHBodSAoY2h1eWVuIGRvaSB0dSBUQ1QgRGllbiBsdWMgVmlldCBOYW0pIA0KDQpF Vk4ga2luaCBkb2FuaCBkYSBuZ2FuaC4gVHJvbmcgZG8sIHNhbiB4dWF0LCBraW5oIGRvYW5oIGRp ZW4gbmFuZywgdmllbiB0aG9uZyANCmNvbmcgY29uZyB2YSBjbyBraGkgZGllbiBsdWMgbGEgbmdh bmggbmdoZSBraW5oIGRvYW5oIGNoaW5oLi4uIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5h bW5ldC52bi8yMDEwLTExLTIyLXBoby10aHUtdHVvbmctdmktcGhhbS1xdXktdHJpbmgteGEtbHUt dHJ1b25nLWNhLW1hdC1jaHVjIFRhYyBnaWE6IExlIE5odW5nDQoNClBobyBUaHUgdHVvbmc6IFZp IHBoYW0gcXV5IHRyaW5oIHhhIGx1LCB0cnVvbmcgY2EgbWF0IGNodWMgLSBDYW4gZG9pIG1vaSBU YXAgZG9hbiBFVk4gDQoNClRyYW8gZG9pIHZvaSBiYW8gY2hpIGJlbiBoYW5oIGxhbmcgUXVvYyBo b2kgY2hpZXUgMjIvMTEgcXVhbmggY2h1eWVuIHRodXkgZGllbiB4YSBsdSANCmdheSBuZ2FwIGhh IGR1LCBQaG8gVGh1IHR1b25nIEhvYW5nIFRydW5nIEhhaSBub2ksIHRydW9jIG11YSBsdSBwaGFp IGRpIGtpZW0gdHJhIGNhYyANCmhvIGNodWEsIGRhbmggZ2lhIHhlbSBjYWMgaG8gY28gYmFvIGRh bSBjaGF0IGx1b25nIGtob25nIHJvaSBtb2kgY2hvIHBoZXAgdGljaCBudW9jLg0KDQpQaGFpIGtp ZW0gdHJhIG5naGllbSB2aWVjIHhhIGx1IA0KDQpTYXUga2hpIENoaW5oIHBodSBkYSBiYW4gaGFu aCBxdXkgdHJpbmggdmFuIGhhbmggbGllbiBobywgY2FuIGdpYW0gc2F0IHZpZWMgdGh1YyBoaWVu IA0KY2hhdCBjaGUgaG9uLg0KDQoiRGF5IGxhIHF1eSB0cmluaCBuZ2hpZW0gbmdhdCwgdmkgZHUg cXV5IGRpbmggbm9pIHJvLCB0cmVuIG11YyBudW9jIGRhbmcgYmluaCB0aHVvbmcgbGEgDQpwaGFp IHhhLiBOZXUgb25nIHZhbiBoYW5oIGJhbyB0aHVvbmcgZGFuIGdpdSBsYWkgbnVvYyBsYSB2aSBw aGFtIHF1eSB0cmluaCwga2hpIHZvIGhvIA0KZGFuIGNvbiBjaGV0IG51YS4gUXV5IHRyaW5oIHF1 eSBkaW5oIGtob25nIHhhIGx1IGNhbyBob24gbHV1IGx1b25nIGx1IHZlLCBtdWMgY2hlbmggDQpj aGluaCBsYSBsdSBuaGFuIHRhbyBjaG8gaGEgZHUuIENodW5nIHRvaSBkaSBraWVtIHRyYSB0aGkg Y2h1YSBwaGF0IGhpZW4gcmEgc2FpIHNvdCBuYXkuIA0KQ29uIG5ldSB2aSBwaGFtIHRoaSB0cnVv bmcgY2EgbWF0IGNodWMgbmdheSBsYXAgdHVjIiwgUGhvIFRodSB0dW9uZyBnaWFpIHRoaWNoLg0K DQpUaGVvIG9uZyBIb2FuZyBUcnVuZyBIYWksIHF1YSBraWVtIHRyYSwgaGF1IG5odSBjYWMgZHUg YW4ga2h1IHZ1YyBtaWVuIFRydW5nIGRldSANCnR1YW4gdGh1IHRvdCBxdXkgdHJpbmguIFJpZW5n IHZvaSB0aHV5IGRpZW4gQmEgSGEgdHV5IGNvIHNvIHN1YXQgbmh1bmcgY3VuZyBraG9uZyBnYXkg Y2hldCBuZ3VvaS4NCg0KTGllbiBxdWFuIGRlbiBjYXUgaG9pIGN1YSBjYWMgREJRSCB2ZSB2aWVj IGJhbiBxdWFuIGx5IHRodXkgZGllbiBzb25nIEJhIEhhIGtoaSB4YSBsdSANCmtob25nIHRob25n IGJhbyB2b2kgVUJORCB0aW5oLCBQaG8gVGh1IHR1b25nIGNobyBoYXksIGRheSBjdW5nIGNoaSBs YSB0aHUgdHVjIGhhbmggDQpjaGluaCwgZG9hbmggbmdoaWVwIGtob25nIGxhbSBzYWkuIA0KDQpD dW5nIGNoaWV1IDIyLzExLCBraGkgZHVvYyBtb2kgZ2lhaSB0cmluaCB0aGVtIHZvaSBRdW9jIGhv aSB2ZSBtb2kgcXVhbiBoZSBnaXVhIHRodXkgDQpkaWVuIC0gbHUgbHV0LCBCbyB0cnVvbmcgVE4m TVQgUGhhbSBLaG9pIE5ndXllbiBraGFuZyBkaW5oLCBuZ3V5ZW4gbmhhbiB4YXkgcmEgbHUgDQps dXQgZG8gYmllbiBkb2kga2hpIGhhdSwgcGhhIHJ1bmcsIHRoaWV1IHNvdCB0cm9uZyBxdXkgdHJp bmggdmFuIGhhbmggbGllbiBobyB0aHV5IGRpZW4sIA0KdGh1eSBsb2kuDQoNClJ1dCBraW5oIG5n aGllbSBjaHV5ZW4gQm8gdHJ1b25nIFZ1IEh1eSBIb2FuZyBiaSBkYWkgYmlldSAicGhlIiB2aSBr ZXQgbHVhbiBraG9uZyBjbyANCnNvIGxpZXUsIEJvIHRydW9uZyBQaGFtIEtob2kgTmd1eWVuIG5l dSByYW5oIHJlIHZpIGR1IHZlIGJpZW4gZG9pIGtoaSBoYXU6IA0KDQoiVGFpIE5pbmggVGh1YW4s IHRvbmcgbHVvbmcgbXVhIHRyb25nIDcgbmdheSB0dSAyOS8xMCBkZW4gNS8xMSBiYW5nIG11YSBj YSBuYW0uIENoaSANCnJpZW5nIG5nYXkgMS8xMSBkYSBjaGllbSA0MiUgbHVvbmcgbXVhIGNhIG5h bS4gTyBOaGEgVHJhbmcsIGx1b25nIG11YSB0cm9uZyA0IG5nYXkgDQp4YXAgeGkgYmFuZyBtdWEg Y2EgbmFtIi4NCg0KVGh1IHR1b25nIGRhIGtpcCB0aG9pIHBoZSBkdXlldCBjaHVvbmcgdHJpbmgg bXVjIHRpZXUgcXVvYyBnaWEgdmUgdW5nIHBobyB2b2kgYmllbiBkb2kgDQpraGkgaGF1IHR1IGN1 b2kgbmFtIDIwMDguDQoNCk9uZyBOZ3V5ZW4gdGhpZXQgdGhhIGRlIG5naGkgUXVvYyBob2kgYm8g dHJpIG1vdCBwaGllbiBob3Agc29tIGRlIENoaW5oIHBodSBiYW8gY2FvIA0KdG9hbiBibyBraWNo IGJhbiB2ZSBiaWVuIGRvaSBraGkgaGF1Lg0KDQpOZ3V5ZW4gbmhhbiB0aHUgaGFpIGRhbiBkZW4g bHUgbHV0IGxhIGRvIG1hdCBydW5nIHZhIHBoYSBydW5nLg0KDQoiTGUgcmEgcnVuZyBsYSBuZ3Vv biBzaW5oIHRodXkgY2hvIG5oYSBtYXkgdGh1eSBkaWVuLCBuaHVuZyBsYW0gbmhhIG1heSB0aHV5 IGRpZW4gdGhpIA0KbGFpIGxheSB2YW8gcnVuZy4gVHJvbmcgY2FtIGtldCwgY2FjIGNodSBkYXUg dHUgZGV1IHhpbiB0cm9uZyBidSBsYWkgcnVuZyBuaHVuZyBtb3Qgc28gDQpkaWEgcGh1b25nIHRo b2kgZ2lhbiB2dWEgcXVhIGtob25nIGNvIGRhdCBkZSB0cm9uZyBidSBsYWkgcnVuZyIsIG9uZyBO Z3V5ZW4gZ2lhaSB0aGljaC4NCg0KTGllbiBxdWFuIGRlbiBxdXkgdHJpbmggdmFuIGhhbmgsIEJv IHRydW9uZyBUTiZNVCBjaG8gcmFuZywgdHJ1b2MgdGhhbmcgMTAvMjAwOCwgDQpjaGkgNCBjb25n IHRyaW5oIHRodXkgZGllbiBsb24gbGEgVGhhYyBCYSwgU29uIExhLCBIb2EgQmluaCB2YSBjdWEg VHV5ZW4gUXVhbmcgY28gcXV5IA0KdHJpbmggdmFuIGhhbmggdmEgbXVjIHRpZXUgYmFvIGRhbSBj aG8gaGEgZHUuDQoNCkNoaW5oIHBodSBzYXUgZG8gZGEga2hhYyBwaHVjIGJhbmcgY2FjIHF1eSBk aW5oIG5odSBjb25nIHRyaW5oIGNvIHRydSBsdW9uZyBudW9jIGJhbyANCm5oaWV1IHNlIHBoYWkg cXVhbiB0YW0gZGVuIGhhIGR1LCB4YSBsdSB0cnVvYyBraGkgbXVhIGx1IHZlLCByb2kgcXV5IHRy aW5oIHZhbiBoYW5oIGxpZW4gDQpobyBjaHVhLg0KDQoiRGVuIG5heSBkYSB0aHVjIGhpZW4geG9u ZyA1IHF1eSB0cmluaCB2YW4gaGFuaCBjdWEgNSBsdXUgdnVjIHNvbmcgbG9uLCBkYXkgbGEgNCBo byBjaHVhIGxvbiBjdWEgc29uZyBIb25nLCANCjMgaG8gbG9uIGN1YSBzb25nIFZ1IEdpYSB2YSBU aHUgQm9uLCA1IGhvIGNodWEgbG9uIGN1YSBTb25nIA0KQmEgSGEsIDQgaG8gY2h1YSBjdWEgc29u ZyBTZSBTYW4gdmEgNCBobyBjaHVhIGN1YSBzb25nIFNlcmVwb2siLCBvbmcgTmd1eWVuIGJhbyBj YW8uDQoNClRob2kgZ2lhbiB0b2kgc2UgeGF5IGR1bmcgcXV5IHRyaW5oIHZhbiBoYW5oIGNobyA2 IGx1dSB2dWMgc29uZyBjb24gbGFpLg0KDQpEaWV1IHF1YW4gdHJvbmcsIHRoZW8gQm8gdHJ1b25n IE5ndXllbiwgbGEgY2FjIGJvIHZhIGRpYSBwaHVvbmcgcGhhaSBraWVtIHRyYSwgZ2lhbSBzYXQg DQpuZ2hpZW0gbmdhdCB2aWVjIHhhIGx1Lg0KDQpUaGlldSBkaWVuIHZhbiBkbyB0aGlldSB2b24N Cg0KRGUgbGFtIHJvIHRoZW0gY2FjIHRob25nIHRpbiB2b2kgREJRSCB2ZSB0aW5oIGhpbmggZGll biwgUGhvIFRodSB0dW9uZyBIb2FuZyBUcnVuZyANCkhhaSAieGluIG5oYW4gdHJhY2ggbmhpZW0g dmUgdGhpZXUgZGllbiB0cnVvYyBRSCwgY3UgdHJpIi4NCg0KT25nIGtoYW5nIGRpbmggbGFpIHF1 YW4gZGllbSBkYSBkdW9jIEJvIHRydW9uZyBDb25nIHRodW9uZyBuZXUsIG5ndXllbiBuaGFuIHRo aWV1IA0KZGllbiB2aSB0aGlldSB2b246ICJUdSAyMDA2IGRlbiBuYXksIGNodW5nIHRhIHZhcCBw aGFpIG5odW5nIGtobyBraGFuIHJhdCBsb24gZG8gdGFjIA0KZG9uZyBjdWEgY3VvYyBraHVuZyBo b2FuZyBraW5oIHRlIHRoZSBnaW9pIHZhIGtodSB2dWMsIHZpZWMgaHV5IGRvbmcgdm9uIGNobyBj YWMgZHUgYW4gDQpsYSBoZXQgc3VjIGtobyBraGFuLCB0cm9uZyBudW9jIGNvIGx1YyBsZW4gZGVu IDE4LCAxOSUsIGtlIGNhIG5nYW5oIGRpZW4gZGkgdmF5IHZvaSBsYWkgc3VhdCBuaHUgdmF5IGN1 bmcga2hvbmcgZHUiLg0KDQpIdXkgZG9uZyB2b24gbnVvYyBuZ29haSBjdW5nIGtoby4gQ28gbmh1 bmcgY29uZyB0cmluaCBkYSBreSBkdW9jIGhvcCBkb25nIG5odW5nIA0KQ2hpbmggcGh1IHBoYWkg ZGlldSBoYW5oIGNhYyBuZ2FuIGhhbmcgY2hvIHZheSBub25nIG1vaSBraG9pIGNvbmcgZHVvYy4g DQoNClRyb25nIGtoaSBkbywgZ2lhIGRpZW4gVmlldCBOYW0gdmFuIG5hbSB0cm9uZyBuaG9tIG11 YyBnaWEgdGhhcC4NCiJHaWEgaGllbiBuYXkgbGEgNSwyIGNlbnQgYmluaCBxdWFuIG5ldSB0aW5o IHNhbmcgZG9sYSB2YSBzbyB2b2kgY2FjIG51b2MgdHJvbmcga2h1IHZ1YyANCnRoaSBUaGFpIExh biBsYSA4LDUsIFNpbmdhcG8gbGEgMTMsNSwgTWFsYXlzaWEgNyw2IHYudi4uLiBDaGluaCBzdSBr aG9uZyBoYXAgZGFuIGN1YSBnaWEgDQpkaWVuIGxhbSBjaG8gdmllYyBodXkgZG9uZyB2b24gY2hv IGNhYyBjb25nIHRyaW5oIGRhYyBiaWV0IGxhIGNhYyBjb25nIHRyaW5oIGN1YSB0dSBuaGFuLCAN CmtlIGNhIHRyb25nIHZhIG5nb2FpIG51b2Mga2VtIGhhcCBkYW4iLCBQaG8gVGh1IHR1b25nIGx5 IGdpYWkuDQoNCk5nb2FpIHJhIGNvbiBjbyBuZ3V5ZW4gbmhhbiBraGFjIG5odSBnaWFpIHBob25n IG1hdCBiYW5nLCBuYW5nIGx1YyBjdWEgY2h1IGRhdSB0dSB2YSANCmNhYyBuaGEgdGhhdSwgeSB0 aHVjIHRpZXQga2llbSBkaWVuLg0KDQpUaG9pIGdpYW4gdG9pLCBWTiBzZSBwaGFpIGFwIGR1bmcg cmF0IG5oaWV1IGJpZW4gcGhhcCB0b25nIHRoZSBuaHUgdGFpIGNvIGNhdSBuZ2FuaCBkaWVuLCAN CnhheSBkdW5nIHRoaSB0cnVvbmcgcGhhdCBkaWVuIGNhbmggdHJhbmguDQoNCk9uZyBIYWkgY2hv IGhheSwgc2UgdGFjaCBjYWMgbmhhIG1heSBkaWVuIHJhIGtob2kgRVZOLCBjaGkgZGUgbGFpIG1v dCBzbyBuaGEgbWF5IGRpZW4gY2hpZW4gbHVvYy4gDQpQaGFuIHRydXllbiB0YWksIHBoYW4gcGhv aSB2YW4gZG8gRVZOIGRhbSBuaGllbSBvIGdpYWkgZG9hbiBkYXUuLi4NCg0KIkNodW5nIHRvaSBk YW5nIHhheSBkdW5nIGRlIGFuIHRodWMgaGllbiBnaWEgZGllbiB0aGVvIGNvIGNoZSB0aGkgdHJ1 b25nLCBtb25nIGN1IHRyaSB2YSANCmRhaSBiaWV1IFF1b2MgaG9pIHVuZyBoby4gQ2h1bmcgdGEg ZGEgdmFuIGhhbmggZ2lhIHhhbmcgZGF1IHRoZW8gY28gY2hlIHRoaSB0cnVvbmcsIA0KYnVvYyBk YXUgZGEgdGhhbmggY29uZyIsIFBobyBUaHUgdHVvbmcgbm9pLiANCg0KaHR0cDovL3d3dy52aWV0 aW5mby5ldS90dS1saWV1L2RhJUNDJTgwbmctc2F1LW5odSVDQyU4M25nLXRhJUNDJUEzcC1kb2El Q0MlODBuLWtpbmgtdGUlQ0MlODEtbmhhLW51b2Mtdm4uaHRtbCBWdSBIb2FuZ05ndW9uIFJGQTIy LTExLTIwMTAgMTQ6NTkgDQoNClRodSB0dW9uZzogRGFuZyBzYXUgbmh1bmcgdGFwIGRvYW4ga2lu aCB0ZSANCg0KU2F1IHZ1IHRodWEgbG8gZGF5IHRhaSB0aWVuZyBjdWEgdGFwIGRvYW4gVGF1IHRo dXkgVmluYXNoaW4sIGNhIHhhIGhvaSBkYW5nIGxhdCBsYWkgdmFuIGRlIA0KdmUgdGluaCBraGEg dGhpIGN1YSB2aWVjIHhheSBkdW5nIHRoaSBkaWVtIGNhYyB0YXAgZG9hbiBraW5oIHRlLg0KDQpW b2kgOCB0YXAgZG9hbiB2YSA5NiB0b25nIGNvbmcgdHksIGhvIHNvIGh1dSBkZW4gNzUlIHRhaSBz YW4gY28gZGluaCBxdW9jIGdpYSwgc29uZyBoaWV1IA0KcXVhIGRvbmcgdm9uIHRodSB2ZSBjdWEg Y2FjIHRhcCBkb2FuIG5heSByYXQgdGhhcCwgdGhhbSBjaGkgZHVvaSAxMCUsIGRhIGNvIGx1YyB0 aGFwIA0KaG9uIGNhIG11YyBsYWkgc3VhdCB0aWVuIGd1aSBuZ2FuIGhhbmcuIFZheSB0YWkgc2Fv IG5odW5nIHRhcCBkb2FuIG5heSB2YW4gdG9uIHRhaSwgDQpsaWV1IGhvIGNvIGNvbiB4dW5nIGRh bmggbGEgInF1YSBkYW0gdGhlcCIgbnVhIGhheSBraG9uZz8NCg0KQmluaCBtb2kgcnVvdSBjdQ0K DQpUaGVvIGN1b2Mgbm9pIGNodXllbiB2b2kgVGllbiBTaSBLaG9hIGhvYyBOZ3V5ZW4gUXVhbmcg QSB0aGkgc3VvdCBtb3QgdGhvaSBnaWFuIGRhaSANCnRydW9jIGRheSBjbyBtb3Qgc3UgbGFuIGxv biBnaXVhIGNhYyBjbyBxdWFuIG5oYSBudW9jLCBjYWMgYm8gaGF5IENoaW5oIHBodSBsYW0ga2lu aCANCnRlOyBobyBraG9uZyBjaHV5ZW4gbmdoaWVwIHRyb25nIGtpbmggZG9hbmgsIG1vdCBvbmcg dGh1IHRydW9uZyBsYWkgbmdvaSBsYW0gY2h1IHRpY2ggDQpob2kgZG9uZyBxdWFuIHRyaSBjdWEg bW90IGNvbmcgdHkgaGF5IG1vdCB0YXAgZG9hbiBsYSBkaWV1IHRvaSBreS4NCg0KVHV5IG5oaWVu LCBnaW8gZGF5IGhpbmggdGh1YyBkYSB0aGF5IGRvaSwgY2FjIHRhcCBkb2FuIGJheSBnaW8ga2hv bmcgY29uIGxhIGN1YSBCbyBjaHUgDQpxdWFuLCBtYSBiYXkgZ2lvIGxhIHZhbyB0YXkgY3VhIFRo dSB0dW9uZy4NCg0KTmh1IHZheSwgbmdheSB0dSBuaHVuZyBnaWFpIGRvYW4gZGF1IGN1YSBxdWEg dHJpbmggaGluaCB0aGFuaCwgdmFuIGRlICJiaW5oIG1vaSBydW91IA0KY3UiIGxhaSBkdW9jIGRl bSByYSBhcCBkdW5nLiBDYXUgaG9pIGRvIGRhbmcgZHVvYyBuaGlldSBuZ3VvaSBxdWFuIHRhbS4g VGhlbyBUaWVuIFNpIA0KTmd1eWVuIFF1YW5nIEE6DQoNCiJEb2kgdm9pIGNhYyB0YXAgZG9hbiBi YXkgZ2lvIGtob25nIGNvbiBCbyBjaHUgcXVhbiwgbWEgYmF5IGdpbyBsYSB2YW8gdGF5IGN1YSBU aHUgDQp0dW9uZywgY2hvIG5lbiB0b2kgbW9pIHN1IGR1bmcgdGh1YXQgbmd1ICJUaHUgdHVvbmcg Y2h1IHF1YW4iIHZhIGRpZXUgZG8gbGEgbW90IGRpZXUgDQpob2FuIHRvYW4ga2hvbmcgcGh1IGhv cCB2b2kgYmF0IGtlIG1vdCBraW5oIG5naGllbSBuYW8gdHJlbiB0aGUgZ2lvaSBjdW5nIG5odSB2 ZSBraG9hIA0KaG9jIHF1YW4gdHJpIGtpbmggZG9hbmgsIG5vIGtob25nIGNvbiBwaHUgaG9wLCBi b2kgdmkgZG8ga2hvbmcgcGhhaSBsYSBjaHVjIG5hbmcgY3VhIA0Kb25nIFRodSB0dW9uZyBoYXkg b25nIEJvIHRydW9uZy4iDQoNClRoaWV1IG1pbmggYmFjaA0KDQpWYSBnYW4gZGF5IG5oYXQsIHZv aSBrZXQgcXVhIGRpZXUgdHJhIGN1YSBWaWVuIE5naGllbiBjdXUgcXVhbiBseSBraW5oIHRlIFRy dW5nIHVvbmcgdmUgDQpxdWFuIHRyaSBkb2FuaCBuZ2hpZXAgdHJvbmcgZG9hbmggbmdoaWVwIG5o YSBudW9jLCBkdSBsdWFuIHRoYXkgbm9pIGJhdCBsZW4gaGFpIHlldSB0byANCmNodSBjaG90LCBk byBsYSB0aGlldSBtaW5oIGJhY2ggdHJvbmcgdGhvbmcgdGluIHZhIHN1IHRhY2ggYmlldCBjdWEg Y2h1YyBuYW5nIGxhbSBraW5oIHRlIA0KdmEgY29uZyB0YWMgeGEgaG9pIGN1YSBjYWMgdGFwIGRv YW4ga2luaCB0ZSBuYXkuDQoNClRoZW8gRGllbiBkYW4gS2luaCB0ZSBWaWV0IE5hbSBjaG8gaGF5 LCBjYWMgdGFwIGRvYW4ga2luaCB0ZSBkb2MgcXV5ZW4sIG5oaWV1IGRvbiB2aSANCmhvYW4gdG9h biBraG9uZyBjb25nIGJvIHRob25nIHRpbiBkdW9pIG1vaSBoaW5oIHRodWMsIHRoYW0gY2hpIGxh IGNhIG5odW5nIHRob25nIHRpbiANCm1hIHBoYXAgbHVhdCBiYXQgYnVvYyBxdWkgZGluaCBwaGFp IHRpZXQgbG8sIHZpIHRoZSBtYSBuaHVuZyB0aG9uZyB0aW4gIm5oYXkgY2FtIiBuaHUgDQpjaGlu aCBzYWNoIHJ1aSBybyBjdWEgZG9hbmggbmdoaWVwLCB0aHVvbmcgY2hvIGNhbiBibyBjaHUgY2hv dCwgdGhvbmcgdGluIHZlIGdpYW8gZGljaCANCmtpbmggZG9hbmggY3VhIHRoYW5oIHZpZW4gaG9p IGRvbmcgcXVhbiB0cmkgZGV1IGJpIGVtIG5oZW0sIGRvIGxhIGNodXllbiBkZSBoaWV1Lg0KDQpD YW4gcGhhaSBuaG8gcmFuZywgY2h1IHNvIGh1dSBjYWMgdGFwIGRvYW4gbmF5IGxhIENoaW5oIHBo dSwgdmEgYmFuIGNoYXQgbGEgdGh1b2Mgc28gDQpodXUgdG9hbiBkYW4sIHZpIHRoZSB0aW5oIG1p bmggYmFjaCB0aG9uZyB0aW4gbGFpIGNhbmcgY2FuIHBoYWkgcm8gcmFuZyBob24uDQoNCkdhbiBt YWMgIkNvbmcgdGFjIHhhIGhvaSINCg0KTWF0IGtoYWMsIGN1bmcgY2FuIHBoYWkgbmhpbiB0aGFu ZyB2YW8gdGh1YyB0ZSBsYSBoaWVuIG5heSBjbyBuaHVuZyB0YXAgZG9hbiBraW5oIHRlIA0KVmll dCBOYW0ga2hvbmcgY2hpdSBkb2kgbW9pIGJhbiB0aGFuLCBjaGluaCBjYWMgdGFwIGRvYW4gbmF5 IGRhIGNvIHRpbmggZ2FuIHZhbyBjYWkgDQptYWMgImNvbmcgdGFjIHhhIGhvaSIgZGUgYmllbiBt aW5oIGNobyBuaHVuZyB5ZXUga2VtIHRyb25nIHZpZWMgbWluaCBraG9uZyBsYW0gdmEgDQpraG9u ZyBsYW0gZHVvYy4gTXVjIHRpZXUgY3VhIGRvYW5oIG5naGllcCBsYSBwaGFpIGRlbSB2ZSBsb2kg bmh1YW4sIGhpZXUgcXVhIGtpbmggDQpkb2FuaCwgY2h1IGtob25nIHRoZSBkYW5oIGRvbmcgdHJh Y2ggbmhpZW0geGEgaG9pLCBsYW0gY29uZyBpY2ggdm9pIGNodXllbiB0aHVhIGxvIA0KdHJvbmcg bGFtIGFuIGR1b2MuDQoNCkRlbSBjaHV5ZW4gbmF5IHJhIGhvaSBULlMuSy5IIE5ndXllbiBRdWFu ZyBBLCB0aGkgZHVvYyBvbmcgY2hvIGhheToNCiJDbyBtb3Qgc3UgbGFuIGxvbiBoZXQgc3VjIGxh IGNvIGJhbiB2ZSBtYXQga2hhaSBuaWVtLCBkb2FuaCBuZ2hpZXAgbGEgcGhhaSBob2F0IGRvbmcg DQpuaHUgbW90IGRvYW5oIG5naGllcCwgaG9hdCBkb25nIHZpIGxvaSBuaHVhbiwga2hvbmcgdGhl IGNvIGNodXllbiBkb2FuaCBuZ2hpZXAgbGFtIA0KY29uZyB0YWMgeGEgaG9pIGhheSBsYW0gY29u ZyBpY2gsIGNhaSBkbyBsYSBjaHV5ZW4ga2hhYy4NCg0KQ2FpIGRvIGxhIGNodXllbiBtYSBOaGEg bnVvYyBob2FjIGxhIHhhIGhvaSBwaGFpIGxhbSBiYW5nIGNhYyBjb25nIGN1IGtoYWMsIGJhbmcg Y2FjIA0KYmllbiBwaGFwLCBraG9uZyB0aGUgYnVvYyBkb2FuaCBuZ2hpZXAgZG9uZyB0aG9pIGxh bSBoYWkgdmllYyBheSwgYm9pIHZpIGRvIGxhIG1vdCBzdSANCm5oYXAgbmhhbmcsIG1vdCBzdSBr aG9uZyBtaW5oIGJhY2ggdmEgc2UgdGFvIHJhIHJhdCBuaGlldSBrZSBobyBjaG8gdmllYyBseSBn aWFpIHRhaSBzYW8gDQpob2F0IGRvbmcga2hvbmcgaGlldSBxdWEuIg0KDQooQW5oOiBUcnUgc28g VmluYXNoaW4gdGFpIEhhIE5vaSBob20gMTkvNy8yMDEwLiBBRlAgcGhvdG8pIA0KDQpSbyByYW5n LCBuZXUgZGEgbGEgdGFwIGRvYW4ga2luaCB0ZSB0aGkgY2FuIHBoYWkgcmFjaCByb2kgdGFjaCBo YW4gbmhpZW0gdnUga2luaCBkb2FuaCB2YSANCm5oaWVtIHZ1IHhhIGhvaS4gUGhhaSBjaGFuZyBj YWMgdGFwIGRvYW4gZGFuZyBjbyB0aW5oIGR1eSB0cmkgY2FjIGNvbmcgdGFjIHhhIGhvaSBkZSBs YXkgDQpkbyBsYW0gImJpYSBkbyBkYW4iIHZvaSBseSBkbyBuZXUgbG9pIG5odWFuIHRoYXAgbGEg Y29uIHBoYWkgbGFtIGNvbmcgdGFjIHhhIGhvaS4NCg0KIk5ndW9pIHRhIGhvIGhhbyB0YXAgZG9h biBuYXkgcGhhaSBobyB0cm8gaHV5ZW4gQSwgaHV5ZW4gQiwgaHV5ZW4gQywgZGF5IGxhIG1vdCB2 aWVjIA0KbGFtIHRvaSBuZ2hpIGxhIGhvYW4gdG9hbiBzYWkgdmUgbWF0IHF1YW4gbmllbS4iIA0K DQpPbmcgQSBjaG8gYmlldCB0aGVtOiAiUGhhaSBkdW5nIG5odW5nIGNvbmcgY3Uga2hhYyBuaGF1 LCBkdW5nIGJpZW4gcGhhcCBraGFjIG5oYXUsIA0KZHVuZyBjaGluaCBzYWNoIGtoYWMgbmhhdSBk ZSBnaWFpIHF1eWV0LCBkZW0gbmhhbyBubyB2YW8gdGhhbmggbW90IHRoaSBubyB0cm8gdGhhbmgg DQptb3QgdGh1IGJ1bmcgbmh1bmcgdmEga2hvIGdpYWkgcXV5ZXQgdmEgY28gbmh1bmcgaGF1IHF1 YSB4YXUuIg0KDQpOaHUgdmF5LCBtb3QgbGFuIG51YSBjYXUgY2h1eWVuIHZlIHRvIGNodWMgcXVh biBseSwgcGhhbiBjaGlhIHRyYWNoIG5oaWVtIHZhIGNhYyBxdXkgDQpkaW5oIHZlIGRhdSB0dSBr aW5oIGRvYW5oIGN1YSBjYWMgdGFwIGRvYW4ga2luaCB0ZSB0dW9uZyBjaHVuZyBkYSBjdSBuaHVu ZyB2YW4gY29uIG5ndXllbiB5IG5naGlhIGdpYSB0cmkgY3VhIG5vLiANCg0KaHR0cDovL3ZlZi52 bi8yMDEwLTEyLTA4LWNodS1uby1raHVvYy10dS1kZS14dWF0LWhvYW4tbm8tY3VhLXZpbmFzaGlu IFRhYyBnaWE6IFRyYW5nIFRodSAodGhlbyBEUEEpIA0KDQpUaHUgdHVvbmc6IENodSBubyBraHVv YyB0dSBkZSB4dWF0IGhvYW4gbm8gY3VhIFZpbmFzaGluIA0KDQpDYWMgY2h1IG5vIHF1b2MgdGUg Y3VhIFRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgTmFtIFZpbmFzaGluIGRhIHR1 eWVuIGJvIA0Ka2hvbmcgY2hpbmggdGh1YyB2YW8gaG9tIHF1YSwgdGh1IGJhLCByYW5nIGhvIHNl IHR1IGNob2kgZGUgeHVhdCBob2FuIGtob2FuIHRoYW5oIHRvYW4gDQpsYW4gZGF1IHRpZW4gdmFv IDIwLzEyIHRvaS4NCg0KTW90IG5ndW9uIHRpbiB0aGFuIGNhbiBjdWEgQ3JlZGl0IFN1aXNzZSBk YWkgZGllbiBjaG8gbGllbiBob3AgY2FjIGNodSBubyBjaG8gYmlldDogInNlIA0Ka2hvbmcgc2Fu IGxvbmcgZ2lhIGhhbiB2aWVjIHRyYSBubyA2MCB0cmlldSBkb2xhIGRhdSB0aWVuLiINCg0KTmV1 IHZpZWMgbmF5IGR1b2Mga2hhbmcgZGluaCBtb3QgY2FjaCBjaGluaCB0aHVjLCBzdSB0dSBjaG9p IHRyZW4gbmhpZXUga2hhIG5hbmcgc2UgdGFvIA0KcmEgbW90IGdpYWkgZG9hbiAiY29tIGtob25n IGxhbmgsIGNhbmggY2hhbmcgbmdvdCIgZ2l1YSBWaW5hc2hpbiB2YSBjYWMgY2h1IG5vIG51b2Mg DQpuZ29haSwga2VvIHRoZW8gZG8gbGFtIGFuaCBodW9uZyB0aWV1IGN1YyB0b2kgc3UgdGluIG5o aWVtIGN1YSBjaGluaCBwaHUgVmlldCBOYW0gdmEgDQp0YW5nIGNoaSBzbyBkYW5oIGdpYSBydWkg cm8gZGF1IHR1IGN1YSB0b2FuIGJvIGRhdCBudW9jLg0KDQpWaW5hc2hpbiBkYSBwaGF0IGhhbmgg dHJhaSBwaGlldSA2MDAgdHJpZXUgZG9sYSB0aG9uZyBxdWEgQ3JlZGl0IFN1aXNzZSBuYW0gMjAw Ny4gVmFvIA0KbmdheSAyOSB0aGFuZyAxMSB2dWEgcXVhLCB0YXAgZG9hbiBuYXkgZGUgbmdoaSBk dW9jIGdpYSBoYW4gbGFuIHRyYSBkYXUgdGllbiB0cm9uZyB0b25nIA0Kc28gMTAgbGFuIHRyYSBu bywgbW9pIGxhbiBjYWNoIG5oYXUgNiB0aGFuZy4NCg0KTG9pIGRlIG5naGkgdHJlbiBiaSB0dSBj aG9pIG5naGlhIGxhICJWaW5hc2hpbiBiaSBjb2kgbGEgdm8gbm8iLCBuZ3VvbiB0aW4gY2hvIGJp ZXQuIERpZXUgDQpuYXkgc2UgInRhbyByYSBoZSBsdXkgcmF0IHhhdSBjaG8ga2hhIG5hbmcgdmF5 IG5vIG51b2MgbmdvYWkgY3VhIFZpZXQgTmFtIHRyb25nIG5oaWV1IA0KbmFtIHRpZXAgdGhlby4i DQoNCiJEYWMgYmlldCBhbmggaHVvbmcga2hpIGNoaW5oIHBodSBWaWV0IE5hbSBkYW5nIGNvIHkg ZGluaCB0aW0ga2llbSBjYWMga2hvYW4gdmF5IHR1IA0KdGhpIHRydW9uZyBxdW9jIHRlIGRlIHRy YW5nIHRyYWkgY2FjIGR1IGFuIGNvIHNvIGhhIHRhbmcgZHUgbG9haS4iDQoNClZpZWMgVmluYXNo aW4gdm8gbm8gbGEga2hvIGJvaSBjaGluaCBwaHUgVmlldCBOYW0gZGEgY2FtIGtldCBkYW0gYmFv IGNhYyBraG9hbiBubyANCmN1YSBWaW5hc2hpbiBzYXUga2hpIGNhYyB2YW4gZGUgbGllbiBxdWFu IGRlbiBkb25nIHRpZW4gdHJvbmcgVGFwIGRvYW4gdmEga2hvYW4gbm8gDQpraG9uZyBsbyBuYXkg dGFvIHJhIGNodW9pIHNjYW5kYWwgaG9pIGdpdWEgbmFtLg0KDQpOaHVuZyBtb3QgcXVhbiBjaHVj IGNhcCBjYW8gY3VhIFZpbmFzaGluIHhpbiBnaWF1IHRlbiBkYSBub2kgcmFuZyBjYWMgY2h1IG5v IGNvIHJhdCBpdCANCnN1IGx1YSBjaG9uIG5nb2FpIHZpZWMgY2hhcCBuaGFuIHZpZWMgaG9hbiBu by4NCg0KIktob25nIGNvIGtob2FuIGt5IHF1eSBuYW8gY2hvIGtob2FuIHZheSBuYXkuIiBRdWFu IGNodWMgdHJlbiBjaG8gYmlldC4gIk5vaSBtb3QgDQpjYWNoIHRoYW5nIHRoYW4sIG5ldSBobyB0 aHVjIHN1IG11b24gZGFtIHBoYW4sIGhvIHNlIG5oYW4gZHVvYyBkaWV1IGdpIGRvLCBjb24gbmV1 IA0Ka2hvbmcsIGhvIHNlIGtob25nIG5oYW4gZHVvYyBnaSBjYS4iDQoNCkxpZW4gaG9wIGNhYyBj aHUgbm8gc2UgdHJhIGxvaSBjaGluaCB0aHVjIHZhbyBob20gbmF5LCB0aHUgNC4NCkNobyBkdSBx dXlldCBkaW5oIGNvIHRoZSBuYW8sIGNhYyBxdWFuIGNodWMgbnVvYyBuZ29haSB0YWkgVmlldCBO YW0gZGV1IGNobyBiaWV0IHZ1IA0KVmluYXNoaW4gZGEgdGFjIGRvbmcgdGlldSBjdWMgdG9pIHRh bSBseSBjdWEgZ2lvaSBkYXUgdHUgcXVvYyB0ZS4NCktob25nIGNoaSBDcmVkaXQgU3Vpc3NlLCBj YWMgY2h1IG5vIHF1b2MgdGUgYmkgYW5oIGh1b25nIGJvaSB2dSB2aWVjIG5heSBiYW8gZ29tIE5n YW4gDQpoYW5nIFN0YW5kYXJkIENoYXJ0ZXIgQW5oIFF1b2MsIE5nYW4gaGFuZyBEdWMgQWkgTGVu IFBMQyB2YSBOZ2FuIGhhbmcgUXVvYyBnaWEgS3V3YWl0IFNBSy4gDQoNCmh0dHA6Ly93d3cudmll dC5yZmkuZnIvdmlldC1uYW0vMjAxMDExMjktbm8teGF1LWN1YS12aW5hc2hpbi1kZS1kb2EtbW90 LXNvLW5nYW4taGFuZy12aWV0LW5hbSBEdWMgVGFtIDI5LzExLyAyMDEwICAgDQoNClRodSB0dW9u ZzogTm8geGF1IGN1YSBWaW5hc2hpbiBkZSBkb2EgbW90IHNvIG5nYW4gaGFuZyBWaWV0IE5hbSAN Cg0KKEFuaDogVmluYXNoaW4gZGEgdHJvIHRoYW5oIGJpZXUgdHVvbmcgY3VhIHRhcCBkb2FuIGtp bmggdGUgTmhhIG51b2MgbGFtIHRvbiBoYWkgY29uZyBxdXkuIEFuaDogRFIpIA0KDQpCYW8gdHJl biBtYW5nIEJsb29tYmVyZyBjaG8gYmlldCBsYSB0aGVvIG5oYW4gZGluaCBjdWEgY29uZyB0eSB0 dSB2YW4gdGFpIGNoaW5oIE1vb2R5LCANCm5vIGN1YSBUYXAgZG9hbiBjb25nIG5naGllcCB0YXUg dGh1eSBWaW5hc2hpbiB0dW9uZyBkdW9uZyBraG9hbmcgMyUgdG9uZyBzbyB0aWVuIGNobyANCnZh eSBjdWEgbW90IHNvIG5nYW4gaGFuZyBWaWV0IE5hbS4gVmluYXNoaW4sIGhpZW4gZGFuZyBkdW5n IGJlbiBibyB2dWMgcGhhIHNhbiwga2hvIA0KY28gdGhlIHRoYW5oIHRvYW4gY2FjIGtob2FuIG5v IGRhbyBoYW4gdmEgZGlldSBuYXkgY28gbmd1eSBjbyBnYXkga2hvIGtoYW4gY2hvIGNhYyANCm5n YW4gaGFuZyBWaWV0IE5hbS4NCg0KVHJvbmcgbW90IG5naGllbiBjdXUgZHVvYyBjb25nIGJvIG5n YXkgaG9tIG5heSwgMjkvMTEvMjAxMCwgYmEgS2Fyb2x5biBTZWV0LCBjaHV5ZW4gDQpnaWEgcGhh biB0aWNoIHRhaSBTaW5nYXBvcmUgdGh1b2MgY29uZyB0eSBNb29keSdzLCBjaG8gYmlldCBsYSBu Z2F5IDE5LzExLCB0YXAgZG9hbiANClZpbmFzaGluIHR1eWVuIGJvIGNvIHRoZSBob2FuIHRyYSA2 MCB0cmlldSBkbyBsYSBkYW8gaGFuIHRyb25nIGtob2FuIHZheSA2MDAgdHJpZXUgZG8gbGEuIA0K IA0KVnVhIHF1YSwgb25nIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgZGEgY2hvIHRoYXkgdGhl IGJhbiBsYW5oIGRhbyBWaW5hc2hpbiB2YSANCmNoaW5oIHBodSB0aG9uZyBiYW8gdGllbiBoYW5o IGNvIGNhdSBsYWkgZG9hbmggbmdoaWVwIG5heS4gVHJvbmcga2hpIGRvLCBsYW5oIGRhbyBtb2kg DQpjdWEgdGFwIGRvYW4sIG9uZyBOZ3V5ZW4gTmdvYyBTdSBraGFuZyBkaW5oIGxhaSByYW5nIFZp bmFzaGluIHNlIHR1IGNvIGNhdSBsYWkgdHJlbiBjbyANCnNvIG5odW5nIGdpIGNvbiBsYWkgY3Vh IGRvYW5oIG5naGllcCBUYXAgZG9hbiBuYXkuIA0KDQpUaGVvIGNhYyBjaHV5ZW4gZ2lhLCB2aWVj IGhvYW4gdHJhIG1vdCBraG9hbiBubyBkYWkgaGFuIGNvIHRoZSBidW9jIGNhYyBuZ2FuIGhhbmcg DQpWaWV0IE5hbSBwaGFpIGNvIGNhdSBsYWkga2hvYW4gbm8gY3VhIFZpbmFzaGluLCBnYXkgdGhp ZXQgaGFpIGNobyBjYWMgbmdhbiBoYW5nIG5heS4NClRoYW5nIDggbmFtIG5heSwgY2hpbmggcGh1 IFZpZXQgTmFtIHRob25nIGJhbywgbm8gY3VhIFZpbmFzaGluIHRpbmggY2hvIGRlbiB0aGFuZyAN CnNhdSwgbGVuIHRvaSA4NiBuZ2FuIHR5IGRvbmcsIHR1b25nIGR1b25nIDQsNCB0eSBkbyBsYS4N Cg0KVHJ1b2MgZGF5LCBnaW9pIHBoYW4gdGljaCBuZ2hpIHJhbmcgY2hpbmggcGh1IFZpZXQgTmFt IHNhbiBzYW5nIHVuZyBjdXUsIGNhcCB2b24gY2hvIA0KYmF0IGt5IG5nYW4gaGFuZyBuYW8gZ2Fw IGtobyBraGFuLiBOaHVuZyBuaGluIHZhbyB2dSBWaW5hc2hpbiwgdGhpIHRyb25nIHR1b25nIGxh aSwgDQpraG9uZyBjbyBnaSBjaGFjIGNoYW4gbGEgY2hpbmggcGh1IHNlIGdpdXAgZG8gY2FjIG5n YW4gaGFuZyBraGkgcm9pIHZhbyB0aW5oIHRyYW5nIHRoaWV1IA0KaHV0IGNhYyBwaHVvbmcgdGll biB0aGFuaCB0b2FuLg0KDQpUaGVvIHNvIGxpZXUgY3VhIEJsb29tYmVyZywgVmluYXNoaW4gZGEg cGhhdCBoYW5oIDE2LDIgdHkgZG9uZyBjb25nIHRyYWkgdmEga2hvYW4gdmF5IA0KbmF5IHNlIGR1 b2MgdGhhbmggdG9hbiB2YW8gdGhhbmcgdHUgbmFtIDIwMTcuIENoaSBuaGFuaCBuZ2FuIGhhbmcg RGV1dHNjaGUgQmFuayANClZpZXRuYW0gY2hvIGJpZXQsIGxhaSBzdWF0IGRhbmggbmdoaWEgbGEg OSUsIHR1eSBuaGllbiBkbyB0aGkgdHJ1b25nIHRoaWV1IHRpbiB0dW9uZyB2YW8gDQpraGEgbmFu ZyB0YWkgY2hpbmggY3VhIFZpbmFzaGluLCBsYWkgc3VhdCBjdWEgY29uZyB0cmFpIG5heSBkYSBs ZW4gdG9pIDIxLDE2JSBuZ2F5IGhvbSBuYXkuDQoNCkxhbmggZGFvIG1vdCBzbyBjYWMgbmdhbiBo YW5nIGNobyB2YXkgY3VhIFZpZXQgTmFtLCBkYWMgYmlldCBsYSBjYWMgbmdhbiBoYW5nIHRodW9u ZyANCm1haSBjbyBwaGFuLCBjaG8gYmlldCwgVmluYXNoaW4gbGEgY29uIG5vIGxvbiBuaGF0IGN1 YSBoby4gVHJvbmcga2hpIGRvLCBkYSBzbyBjYWMga2hvYW4gDQpjaG8gdmF5IGtob25nIGR1b2Mg a2hhdSB0cnUgdmEgZHVvYyBjb2kgbGEgbG9haSB0aW4gZHVuZyBkYWMgYmlldC4gDQoNCkJhbiBu Z2hpZW4gY3V1IGN1YSBjb25nIHR5IHR1IHZhbiBNb29keSdzIG5oYW4gZGluaCwgdnUgVmluYXNo aW4gY2hvIHRoYXkgY2hpbmggcGh1IA0Ka2hvbmcgdGhlIGN1bmcgbW90IGx1YyBobyB0cm8gY2Fj IHRhcCBkb2FuIHZhIGtodSB2dWMgbmdhbiBoYW5nLiBEaWV1IG5heSBsYW0gY2FjIA0KbmdhbiBo YW5nIGxvIG5nYWkgYmkgbWF0IHZvbiBraGkgY2FwIHRpbiBkdW5nIGNobyBjYWMgZG9hbmggbmdo aWVwIG5oYSBudW9jLiBIaWVuIG5heSwgDQp0b25nIHRpbiBkdW5nIGNhcCBjaG8gY2FjIGRvYW5o IG5naGllcCBuaGEgbnVvYyBjaGllbSB0b2kgNDAlIGtoYSBuYW5nIGNobyB2YXkgY3VhIGNhYyBu Z2FuIGhhbmcgdGh1b25nIG1haSBWaWV0IE5hbS4gDQoNCmh0dHA6Ly92ZWYudm4vMjAxMC0xMi0y My12aW5hc2hpbi1kYXktcGhpLWJhby1sYW5oLW5vLWN1YS12aWV0LW5hbS10YW5nLXZvdCBUdXll biBOZ3V5ZW4gKHRoZW8gQmxvb21iZXJnKSAgMjMvMTIvMjAxMCAxMDowOCBHTVQrNyANCg0KVmlu YXNoaW4gImRheSIgcGhpIGJhbyBsYW5oIG5vIGN1YSBWaWV0IE5hbSB0YW5nIHZvdA0KDQpDaGkg cGhpIGRlIGRhbSBiYW8gY2hvIGNhYyBraG9hbiBubyBjdWEgVmlldCBOYW0ga2hvbmcgYmkgbWF0 IGtoYSBuYW5nIGNoaSB0cmEgZGF0IA0KbXVjIGNhbyBuaGF0IHRyb25nIDE3IHRoYW5nIHF1YSBr aGkgY2FjIG5oYSBjaG8gdmF5IHF1b2MgdGUgY2hvIFZpbmFzaGluIHRodWMgaGllbiB0cmEgDQpu byA2MCB0cmlldSBVU0QgZGFvIGhhbiB2YW8gaG9tIDIwLzEyLg0KDQpUaGVvIG5nYW4gaGFuZyBo b2FuZyBnaWEgU2NvdGxhbmQgR3JvdXBzIFBsYywgZ2lhbyBkaWNoIGhvYW4gZG9pIGNhYyBraG9h biB0aW4gZHVuZyANCmtob25nIGNvIGtoYSBuYW5nIGNoaSB0cmEgZG9pIHZvaSBjYWMga2hvYW4g bm8gY3VhIGNoaW5oIHBodSBWaWV0IE5hbSBkdW9jIGRpbmggZ2lhIG8gDQptdWMgMjk1IGRpZW0g Y28gYmFuIHZhbyBsdWMgMTNoMTggaG9tIDIwLzEyIHRhaSBTaW5nYXBvcmUuIERheSBsYSBtdWMg Y2FvIG5oYXQga2UgdHUgDQoxNy83LzIwMDksIGdpYSB0dSBuaGEgY3VuZyBjYXAgZHUgbGlldSBD TUEuDQoNCk1vb2R5IGRhIGhhIGJhYyB0aW4gZHVuZyBjdWEgVmlldCBOYW0gdHUgQmEzIHh1b25n IEIxIHZhbyBob20gMTUvMTIgdm9pIHZpZWMgdmllbiANCmRhbiBzdSBydWkgcm8gY3VhIG1vdCBj dW9jIGtodW5nIGhvYW5nIGNhbiBjYW4gdGhhbmggdG9hbiB2YSBuaGFuIG1hbmggdmFvICJ0aGFt IA0KY2FuaCBubyBuYW4iIHRhaSBUYXAgZG9hbiBjb25nIG5naGllcCB0YXUgdGh1eSBWaWV0IE5h bSwgVmluYXNoaW4uDQoNClRyYSBsb2kgRGllbiBkYW4gS2luaCB0ZSBWaWV0IE5hbSBkaWVuIHR1 IHR1YW4gdHJ1b2MsIGNodSB0aWNoIE5ndXllbiBOZ29jIFN1IGNobyBiaWV0IA0KVmluYXNoaW4g a2hvbmcgY28ga2hhIG5hbmcgdGh1YyBoaWVuIHZpZWMgdHJhIG5vIHZpIGtob25nIGNvIG5ndW9u IHRhaSBjaGluaC4gVGhlbyANCmNoaW5oIHBodSBjaG8gYmlldCB2YW8gdGhhbmcgU2F1LCBjb25n IHR5IG1hYyBubyBraG9hbmcgODYgbmdoaW4gdGkgVk5EICg0LDQgdGkgVVNEKS4NCg0KTmV1IGto b25nIHRoYW5oIHRvYW4ga2hvYW4gbm8sIFZpbmFzaGluIHNlICJraGllbiBjaG8gYmF0IGt5IG1v dCB0byBjaHVjIFZpZXQgTmFtIA0KbmFvLCBkdSBsYSBjb25nIHR5IG5oYSBudW9jIGhheSBraG9u ZywgbWF0IG5oaWV1IGhvbiBkZSBjbyBkdW9jIGNhYyBraG9hbiB2YXkgdHUgbnVvYyANCm5nb2Fp LCIgSm9uYXRoYW4gUGluY3VzLCBuaGEga2luaCB0ZSBob2MgdHUgdHJ1b25nIEhhcnZhcmQgS2Vu bmVkeSBTY2hvb2wgdGFpIHRoYW5oIA0KcGhvIEhvIENoaSBNaW5oIHRyYSBsb2kgdHJvbmcgbW90 IGN1b2MgcGhvbmcgdmFuIHF1YSBkaWVuIHRob2FpICJNb2kgbmd1b2kgdHJvbmcgDQpjaGluaCBw aHUgZHVvbmcgbmh1IGtob25nIG5naGkgZGVuIHRhYyBkb25nIGRhaSBoYW4gY3VhIHZpZWMgbmF5 IGRlbiBzdSB0aW4gbmhpZW0gdGFpIA0KY2hpbmggY3VhIFZpZXQgTmFtLiINCg0KR2lhbyBkaWNo IGhvYW4gZG9pIGNhYyBraG9hbiB0aW4gZHVuZyBtYXQga2hhIG5hbmcgY2hpIHRyYSB0cmEgY2hv IG5ndW9pIG11YSBnaWEgZ29jIA0KbmV1IG5ndW9pIHZheSBraG9uZyB0aHVjIGhpZW4gZHVvYyBu Z2hpYSB2dSBjdWEgbWluaCwgdHJ1IGdpYSB0cmkgY3VhIGtob2FuIG5vIGtob25nIA0KZHVvYyB0 cmEgZHVuZyBreSBoYW4uDQoNCk1vdCBkaWVtIGNvIGJhbiB0dW9uZyBkdW9uZyB2b2kgMS4wMDAg VVNEIGhhbmcgbmFtIHRyZW4gbW90IGdpYW8gZGljaCBob2FuIGRvaSBkYW0gDQpiYW8ga2hvYW4g bm8gMTAgdHJpZXUgVVNELiBDYWMgaG9wIGRvbmcgZ2lhbyBkaWNoIGhvYW4gZG9pIHRpbiBkdW5n IG8gbXVjIDI4NyBkaWVtIA0Ka2hpIGRvbmcgY3VhIHZhbyBuZ2F5IDE3LzEyLCBtdWMgdGFuZyBj YW8gbmhhdCB0cm9uZyB0dWFuIGtlIHR1IDI3LzgvMjAxMCB0aGVvIGdpYSANCkNNQS4NCg0KUXV5 IHRpZW4gdGUgcXVvYyB0ZSB0cm9uZyB0aGFuZyBuYXkgY2hvIHJhbmcgVmlldCBOYW0gY2FuICJt b3QgZ29pIHRpY2ggaG9wIiBjYWMgYmllbiANCnBoYXAgZ29tIGxhaSBzdWF0IGNhbyBob24gZGUg dGhpZXQgbGFwIGxhaSB1eSB0aW4gY3VhIGNoaW5oIHNhY2ggdGllbiB0ZSB2YSBsYW0gY2hhbSBs YW0gDQpwaGF0Lg0KDQpUaGVvIE5nYW4gaGFuZyBwaGF0IHRyaWVuIENoYXUgQSB2aWVjIFZpbmFz aGluIGdhbiBzdXAgZG8gY2hpIHJhIG1vdCAidGhhdCBiYWkgbWFuZyANCnRpbmggaGUgdGhvbmci IHRyb25nIHZpZWMgZ2lhbSBzYXQgY2FjIGNvbmcgdHkgbmhhIG51b2MgY3VhIGNhYyBuaGEgbGFw IHBoYXAuDQoNClZpbmFzaGluIGRhIHRodWUgQ3JlZGl0IFN1aXNzZSBHcm91cCBBZyBnaXVwIGhv YWNoIGRpbmgga2hvYW4gdmF5IDcgbmFtIHRyaSBnaWEgNjAwIA0KdHJpZXUgVVNEIHZhbyB0aGFu ZyAxMi8yMDA4LiBNb3QgdXkgYmFuIHRodW9uZyB0cnVjIGNhYyBuaGEgY2hvIHZheSwgZ29tIGNh YyBkYWkgZGllbiANCnR1IG5nYW4gaGFuZyBUaHV5IFNpLCBTdGFuZGFyZCBDaGFydGVyZWQgUGxj IHZhIHF1eSBkdSBwaG9uZyBFbGxpb3R0IEFkdmlzb3JzIEx0ZC4sIGRhIA0KZHVvYyB0aGFuaCBs YXAgZGUgdGh1b25nIHRoYW8gdm9pIGNvbmcgdHkuDQoNCktQTUcgTExQIGR1b2MgY2hpIGRpbmgg Y28gdmFuIHZhIGhvIHRybyBWaW5hc2hpbiB0cm9uZyBraGkgbmhvbSBjYWMgbmhhIGNobyB2YXkg DQp0aHVlIGNvbmcgdHkgbHVhdCBBbGxlbiAmIE92ZXJ5IExMUCBsYW0gY28gdmFuIHBoYXAgbHku DQoNCkVkd2FyZCBNaWRkbGV0b24sIGRvaSB0YWMgS1BNRyB0YWkgSG9uZyBLb25nIHBodSB0cmFj aCB2aWVjIHRhaSBjbyBjYXUgbGFpIGRpY2ggdnUsIHR1IA0KY2hvaSBiaW5oIGx1YW4gdHJvbmcg bW90IHRodSBkaWVuIHR1LiBEYXZpZCBLaWRkLCBtb3QgZG9pIHRhYyB0YWkgQWxsZW4gJiBPdmVy eSBjdW5nIHR1IGNob2kgYmluaCBsdWFuLg0KDQpEYWkgZGllbiBjdWEgVmluYXNoaW4gY3VuZyBr aG9uZyBuZ2hlIGRpZW4gdGhvYWkuIE5ndW9pIHBoYXQgbmdvbiBjdWEgQ3JlZGl0IFN1aXNlIA0K QWRhbSBIYXJwZXIgdmEgbW90IGNvbmcgdHkgcXVhbiBoZSBjb25nIGNodW5nIGRhaSBkaWVuIGNo byBFbGxpb3R0IEFkdmlzb3JzIGN1bmcgdHUgY2hvaSBiaW5oIGx1YW4uIA0KDQpodHRwOi8vd3d3 LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTAxMjAzLXZpbmFzaGluLWtoYXQtbm8tZG9hbmgtbmdo aWVwLW5oYS1udW9jLXZpZXQtbmFtLWtoby1kaS12YXkgVHJvbmcgTmdoaWEgMDMvMTIvIDIwMTAg IA0KDQpUaHUgdHVvbmc6IFZpbmFzaGluIGtoYXQgbm8sIGRvYW5oIG5naGllcCBuaGEgbnVvYyBW aWV0IE5hbSBraG8gZGkgdmF5IA0KDQpWYW8gbmdheSAyMC8xMi8yMDEwIHRvaSBkYXksIHRhcCBk b2FuIFZpbmFzaGluIHRyZW4gbmd1eWVuIHRhYyBwaGFpIHRyYSBtb3QgcGhhbiBubyBkYSANCmRh byBoYW4uIFRoZSBuaHVuZywgdGhlbyBuaGF0IGJhbyBXYWxsIFN0cmVldCBKb3VybmFsLCBob20g MjkvMTEgdnVhIHF1YSwgVG9uZyANCkdpYW0gZG9jIFZpbmFzaGluIFRydW9uZyBWYW4gVHV5ZW4g ZGEgY2hpbmggdGh1YyB2aWV0IHRodSBjaG8gY2FjIGNodSBubyB4aW4gZHVvYyANCmhvYW4gdGhh bmggdG9hbiA2MCB0cmlldSBkYXUgdGllbiB0cm9uZyBzbyA2MDAgdHJpZXUgZG8gbGEgZGEgbXVv bi4NCg0KVGhlbyBjYWMgbmhhIHBoYW4gdGljaCwgZHUgY2hvIFZpbmFzaGluIGNvIGtoYXQgZHVv YyBubywgbmh1bmcgc3Uga2llbiBuYXkgc2UgZ2F5IGtobyANCmtoYW4gbG9uIGNobyBjYWMgZG9h bmggbmdoaWVwIG5oYSBudW9jIFZpZXQgTmFtIGtoaSBkaSB2YXkgdHJlbiB0aGkgdHJ1b25nIHRh aSBjaGFuaCANCnF1b2MgdGUuDQoNCkRvIGxhbSBhbiB0aHVhIGxvIHZhIGJlIGJvaSwgaGllbiBu YXkgVmluYXNoaW4gZGFuZyBwaGFpIGdhbmggdmFjIG1vdCBtb24gbm8gbGVuIGRlbiANCjQsNCB0 eSBkbyBsYS4gQ29uIHNvIDYwMCB0cmlldSBkbyBsYSBtYSBtb3QgcGhhbiBuaG8gc2FwIGRhbyBo YW4gZGVuIHR1IG1vdCBuaG9tIGNodSANCm5vIHF1b2MgdGUgZG8gbmdhbiBoYW5nIFRodXkgU2kg Q3JlZGl0IFN1aXNzZSB0YXAgaG9wLiBUaGVvIG5vaSBkdW5nIGxhIHRodSBtYSB0byBuaGF0IA0K YmFvIGRvYyBkdW9jLCBWaW5hc2hpbiBkYSB4aW4gdGFtIGhvYW4gdmllYyB0aGFuaCB0b2FuIHRy b25nIHRydW9uZyBob3Aga2hvbmcgaHV5IA0KZG9uZyBkdW9jIHRpZW4gZHVuZyBoYW4gZGUgdHJh IGtob2FuIG5vIDYwIHRyaWV1IGRvIGxhLiBEdW9uZyBraW0gVG9uZyBnaWFtIGRvYyANClZpbmFz aGluIGRhIG5oYW4gbWFuaCByYW5nIHlldSBjYXUgY3VhIG9uZyBjaGkgbGEgeGluIGx1aSBuZ2F5 IHRyYSBubywgY2h1IGNvbiB0YXAgZG9hbiANClZpZXQgTmFtIHZhbiBxdXlldCB0YW0gdGhhbmgg dG9hbiB0b2FuIGJvIGtob2FuIHRpbiBkdW5nIGRhIGRpIHZheS4NCg0KTmdhbiBoYW5nIENyZWRp dCBTdWlzc2UgY2hvIGRlbiBob20gbmF5IHZhbiByYXQga2luIGRhbyB0cmVuIHZhbiBkZSBuYXks IHZhIHR1IGNob2kgeGFjIA0KbmhhbiBuZ3VvbiB0aW4gdHJlbi4gVHV5IG5oaWVuLCB0aGVvIGJh byBjaGkgVmlldCBOYW0sIG5nYXkgMTkvMTEgdnVhIHF1YSwgb25nIE5ndXllbiANCk5nb2MgU3Us IENodSB0aWNoIEhvaSBkb25nIGNhYyBUaGFuaCB2aWVuIFZpbmFzaGluIGRhIHhhYyBuaGFuIHZp ZWMgdGFwIGRvYW4gbmF5IGRhIA0KZGUgbmdoaSBsdWkgbmdheSB0cmEgbm8gdGhlbSBtb3QgbmFt LCB2YSBDcmVkaXQgU3Vpc3NlIGRhIGRvbmcgeSwgY2hpIHlldSBjYXUgcGhpYSBjb24gDQpubyBj byBjb25nIHZhbiBjaGluaCB0aHVjLg0KDQpUaGVvIGdpb2kgcXVhbiBzYXQsIGR1IFZpbmFzaGlu IGNvIGtoYSBuYW5nIHRhbSB0aG9pIHRob2F0IGhpZW0gdHJvbmcgdnUgbmF5LCBuaHVuZyB0YWMg DQpoYWkgY3VhIHZpZWMgbmF5IHJhdCBsb24sIGRhYyBiaWV0IGxhIGRvaSB2b2kgY2FjIHRhcCBk b2FuIG5oYSBudW9jIFZpZXQgTmFtIHNlIGdhcCBuaGlldSANCmtobyBraGFuIGtoaSBjYW4gcGhh aSBkaSB2YXkgdHJlbiB0aGkgdHJ1b25nIHRhaSBjaGFuaCBxdW9jIHRlLg0KDQpIZSBxdWEgZGF1 IHRpZW4gbGEgbGFpIHN1YXQgY2hvIHZheSBzZSBnaWEgdGFuZy4gUGhhdCBiaWV1IHZvaSBoYW5n IHRpbiBCbG9vbWJlcmcsIG9uZyANCkpvbmF0aGFuIFBpbmN1cywgbW90IGtpbmggdGUgZ2lhIHRh aSBUcnVvbmcgSGFydmFyZCBLZW5uZWR5IG8gVFAgSENNIGRhIG5oYW4gZGluaCANCm5odSBzYXUg dmUgaGF1IHF1YSBjdWEgdmllYyBWaW5hc2hpbiBwaGFpIGtoYXQgbm8gOiAiRGlldSBkbyBjaGFj IGNoYW4ga2hvbmcgdG90IGNobyANClZpZXQgTmFtIHZhIHNlIGNvIG5naGlhIGxhIGNoaSBwaGkg dmF5IG11b24gc2UgcmF0IGNhbyIuIFRyYSBsb2kgcGhvbmcgdmFuIHF1YSBkaWVuIA0KdGhvYWks IGNodXllbiBnaWEgbmF5IGxvIG5nYWkgOiAiSGllbiBuYXksIGNvIHJhdCBuaGlldSB2b24gZGF1 IHR1IG11b24gZG8gdmFvIGNoYXUgQSB2YSANClZpZXQgTmFtIGNvIG5ndXkgY28gYmkgbG8gY28g bWF5IGRvLiINCg0KT25nIEZyYW7nb2lzIExldmFzc2VhdSwgdHJ1b25nIG5ob20gbmdoaWVuIGN1 dSB2ZSB0aHUgbmhhcCBjbyBkaW5oIHRhaSBDb25nIHR5IGNvIA0KcGhhbiBTYWNvbWJhbmsgU2Vj dXJpdGllcyBvIFRQIEhDTSBjdW5nIGN1bmcgcXVhbiBkaWVtIGtoaSBjaG8gcmFuZyBkb2FuaCBu aGFuIA0KbmdvYWkgcXVvYyBjbyB0aGUgInN1eSBkaSBuZ2hpIGxhaSB0cnVvYyBraGkgZGF1IHR1 IHZhb1ZpZXQgTmFtLiBUaGVvIGNodXllbiBnaWEgbmF5LCANCnZ1IFZpbmFzaGluICJjaGFjIGNo YW4gZGEgdGFjIGRvbmcgZGVuIHRhbSBseSBkZSBkYXQgbmF5Ii4NCg0KRG9pIHZvaSB0YXAgZG9h biB0aGFtIGRpbmggdGFpIGNoaW5oIHF1b2MgdGUgTW9vZHkncywgdnUgbW90IHRhcCBkb2FuIG5o YSBudW9jIG5odSANClZpbmFzaGluIGxhaSBwaGFpIGtoYXQgbm8gc2UgYnVvYyBnaW9pIGRhdSB0 dSBxdW9jIHRlIHBoYWkgaG9haSBuZ2hpIHZlIGhhdSB0aHVhbiBjdWEgbmhhIA0KbnVvYyBWaWV0 IE5hbSBjaG8gY2FjIHRhcCBkb2FuIHF1b2MgZG9hbmggdHJvbmcgY29uIGtobyBraGFuLiBUcm9u ZyB0aW5oIGhpbmggZG8sIA0KZGllbSBkYW5oIGdpYSBjYWMgZG9hbmggbmdoaWVwIG5heSBjbyBu Z3V5IGNvIGJpIGhhIHRoYXAgdm9pIGhlIHF1YSBybyByZXQgbGEgbmV1IG11b24gDQp2YXkgbXVv biwgY2FjIGRpbmggY2hlIG5heSBzZSBwaGFpIHRyYSB0aWVuIGxvaSBjYW8gdmkgcnVpIHJvIGNh by4NCg0KVGhlbyBoYW5nIHRpbiBCbG9vbWJlcmcsIG5hbiBuaGFuIGN1IHRoZSBkYXUgdGllbiBj dWEgdnUgVmluYXNoaW4gY28gdGhlIGxhIHRhcCBkb2FuIA0KdGhhbiBraG9hbmcgc2FuIFZpZXQg TmFtIFZpbmFjb21pbi4gTmdheSAwMS8xMiB2dWEgcXVhLCBNb29keSdzIEludmVzdG9ycyBTZXJ2 aWNlLCANCmJvIHBoYW4gY2h1eWVuIHRyYWNoIGRhdSB0dSBjdWEgTW9vZHkncyBjaG8gYmlldCBs YSBkaWVtIHRpbiBuaGllbSBjdWEgVmluYWNvbWluIGNvIA0KdGhlIGJpIGhhIHRoYXAuIFRhcCBk b2FuIG5heSBtb2kgZGF5IGRhIHBoYWkgZG9pIHZpZWMgYmFuIHJhIDUwMCB0cmlldSBkbyBsYSB0 cmFpIHBoaWV1IA0KdGhvaSBoYW4gMTAgbmFtIHZpIGRpZXUga2llbiB0aGkgdHJ1b25nIGtob25n IHBodSBob3AuDQoNClZhbiBkZSBsYSBjYWMga2hvIGtoYW4gY3VhIFZpbmFjb21pbiBzZSBraG9u ZyBwaGFpIGxhIGNhIGJpZXQsIG1hIGRheSBjbyB0aGUgbGEgdHJ1b25nIA0KaG9wIGN1YSBoYW5n IGxvYXQgdGFwIGRvYW4gbmhhIG51b2Mga2hhYyBjdWEgVmlldCBOYW0uIFRhaSBEaWVuIERhbiBE b2FuaCBOZ2hpZXAgDQpWaWV0IE5hbSBtbyByYSB0YWkgSGEgTm9pIHZhbyBob20gcXVhLCBtb3Qg YmFuIGJhbyBjYW8gY3VhIEhvaSBEb2FuaCBOZ2hpZXAgVHJlIEhhIA0KTm9pIGNobyByYW5nIHN1 IHN1cCBkbyBjdWEgYmF0IGt5IG1vdCBkYWkgdGFwIGRvYW4gbmFvIGN1YSBWaWV0IE5hbSBkZXUg Y28gbmd1eSBjbyANCmxhbSB0b2FuIGJvIG5lbiBraW5oIHRlIGJpIGNoYW4gZG9uZy4gDQoNCmh0 dHA6Ly9sYW9kb25nLmNvbS52bi9UaW4tdHVjL1NhaS1waGFtLW8tVmluYXNoaW4ta2hvbmctbW9p LXZhLWRldS1kYS1kdW9jLWNhbmgtYmFvLzE3NTYwIExhbSBTb24gKHRodWMgaGllbikgMjIuMTAu MjAxMCAwODoyMiAoR01UICsgNykNCg0KVGh1IHR1b25nOiBTYWkgcGhhbSBvIFZpbmFzaGluIGto b25nIG1vaSB2YSBkZXUgZGEgZHVvYyBjYW5oIGJhbyANCg0KKExEKSAtIFRyYW8gZG9pIHZvaSBi YW8gY2hpIGJlbiBsZSBwaGllbiBob3AgUUggc2FuZyBxdWEgMjEuMTAsIFRvbmcgVGhhbmggdHJh IFRyYW4gDQpWYW4gVHJ1eWVuIGNobyBiaWV0IGNhYyBzYWkgcGhhbSBvIFZpbmFzaGluIGtob25n IG1vaSB2YSBkYSBkdW9jIGNhbmggYmFvIG5odW5nIA0Ka2hvbmcgZHVvYyB0aHVjIGhpZW4gbmdo aWVtLiBMYW4gdGhhbmggdHJhIG5heSwgVFRDUCBzZSB4ZW0geGV0IHRyYWNoIG5oaWVtIGN1YSBj YSANCmNhYyBkb24gdmkgY2FwIHRyZW4gZHVvYyBnaWFvIHRyYWNoIG5oaWVtIHF1YW4gbHkgVmlu YXNoaW4uDQoNClRodWEgb25nLCB0aG9pIGhhbiB0aGFuaCB0cmEgdG9hbiBkaWVuIFRhcCBkb2Fu IFZpbmFzaGluIGRhIHNhcCBoZXQsIG9uZyBjbyB0aGUgY2hvIGJpZXQgDQpzYWkgcGhhbSB0YWkg ZG9uIHZpIG5heSBuZ2hpZW0gdHJvbmcgaGF5IGl0IG5naGllbSB0cm9uZyBob24gc28gdm9pIG5o dW5nIHRob25nIHRpbiBtYSANCkNoaW5oIHBodSBkYSBjb25nIGJvPw0KDQotIEhpZW4gcXVhIHRy aW5oIHRoYW5oIHRyYSBjaHVhIGtldCB0aHVjIG5lbiB0b2kgY2h1YSB0aGUgdHJhIGxvaSBsYSBu Z2hpZW0gdHJvbmcgaG9uIGhheSBpdCANCm5naGllbSB0cm9uZyBob24gbmh1bmcgdGhvbmcgdGlu IGRhIGNvbmcgYm8uIFF1YSB0cmluaCB0aGFuaCB0cmEgc2FwIGtldCB0aHVjLCBraGkgbmFvIA0K Y28ga2V0IGx1YW4gY3VvaSBjdW5nIGNodW5nIHRvaSBzZSBjb25nIGtoYWkgdGhvbmcgdGluIG5h eS4NCg0KTGEgbmd1b2kgZHVuZyBkYXUgY28gcXVhbiB0aGFuaCB0cmEgY3VhIENoaW5oIHBodSBv bmcgY28gY2hvIHJhbmcgdmllYyBjaGFtIHRoYW5oIHRyYSANCnRvYW4gZGllbiBkYSBibyBsbyBt b3QgY28gaG9pIHZhbmcgZGUgbmdhbiBjaGFuLCBoYW4gY2hlIHNhaSBwaGFtLCB0aGlldCBoYWkg ZG8gVmluYXNoaW4gZ2F5IHJhPyANCg0KLSBLaG9uZyBwaGFpIGNodW5nIHRhIGtob25nIHRoYW5o IHRyYS4gVHUgbmFtIDIwMDUgZGVuIG5heSBkYSBjbyAxMy0xNCBjdW9jIHRoYW5oLCANCmtpZW0g dHJhLCBnaWFtIHNhdCB0YWkgZG9uIHZpIG5heS4gQ2FjIGN1b2MgbmF5IGRldSBwaGF0IGhpZW4g cmF0IG5oaWV1IHNhaSBwaGFtIHZhIGtpZW4gDQpuZ2hpIG5oaWV1IG5vaSBkdW5nIG5odW5nIGRh bmcgdGllYyBsYSBWaW5hc2hpbiBjaGFuZyBuaHVuZyBraG9uZyBuZ2hpZW0gdHVjIHRodWMgDQpo aWVuIGtldCBsdWFuLCBraWVuIG5naGkgY3VhIGNhYyBjbyBxdWFuIHRoYW5oLCBraWVtIHRyYSBt YSBjb24gdGltIGNhY2ggYmFvIGNhbyBraG9uZyANCmR1bmcgc3UgdGhhdCwgZ2lhbiBkb2kgZGUg bGFwIGxpZW0gdmllYyBsYW0gY3VhIG1pbmguIA0KDQpWYXkgdmFuIGRlIG1hdSBjaG90IG8gZGF5 IGxhIGdpIHRodWEgb25nPw0KDQotIENvIGNoZSB0aGFuaCwga2llbSB0cmEsIGdpYW0gc2F0IGN1 YSBjaHVuZyB0YSBjdW5nIGRhbmcgY28gdmFuIGRlLCBwaGFpIHJ1dCBraW5oIA0KbmdoaWVtLiBO aGlldSBjbyBxdWFuIHZhbyBuaHVuZyBjaHVhIGNvIHF1eSBkaW5oIHJvIGNvIHF1YW4gbmFvIGxh IGxhbSB0b2FuIGRpZW4sIGNvbiANCmNvIHF1YW4gbmFvIGxhIGxhbSB0aGVvIGNodXllbiBuZ2Fu aCwgY2h1YSBxdXkgZGluaCBybyBhaSBraWVtIHNvYXQgdmUgY2FpIGdpLCBjaGl1IHRyYWNoIA0K bmhpZW0gY2hpbmggbyBkYXU/DQoNCkhpZW4gQ2hpbmggcGh1IGRhbmcgdGluaCB0b2FuLCB4ZW0g eGV0IHZpZWMgbmF5LiANCg0KTmdvYWkgcmEgY2h1YSBjbyBjbyBjaGUgYmFvIGRhbSBjaG8gdmll YyB0aHVjIGhpZW4gbmdoaWVtIGNhYyBrZXQgbHVhbiB0aGFuaCB0cmEuIEhpZW4gDQpuYXksIG5n YXkgY2Egbmh1bmcgdmllYyBkYSBjbyBrZXQgbHVhbiBjdWEgVGh1IHR1b25nIG5odW5nIGRvbiB2 aSBraG9uZyB0aHVjIGhpZW4gDQpob2FjIHRodWMgaGllbiBraG9uZyBuZ2hpZW0gdGhpIGN1bmcg Y2h1YSBjbyBjbyBjaGUgcGh1YyB0cmEgZGUgeGVtIGxhaS4gU2FwIHRvaSBwaGFpIA0Kc3VhIGxh aSBjbyBjaGUgbmF5Lg0KDQpWYXkgdHJvbmcgbGFuIHRoYW5oIHRyYSB0b2FuIGRpZW4gbmF5LCBU VENQIGNvIHhlbSB4ZXQsIHhhYyBkaW5oIHRyYWNoIG5oaWVtIGN1YSBjYWMgY28gDQpxdWFuIHF1 YW4gbHkgbmhhIG51b2MgdHJvbmcgdmllYyBraG9uZyB0aHVjIGhpZW4gbmh1bmcgdmFuIGRlIG1h IGNhYyBkb2FuIHRoYW5oIHRyYSANCmRhIGtpZW4gbmdoaT8NCg0KLSBEdW9uZyBuaGllbiwga2hp IHRoYW5oIHRyYSB0b2FuIGRpZW4gY2h1bmcgdG9pIGtob25nIGNoaSB4ZW0geGV0IHRyYWNoIG5o aWVtIGN1YSBkb24gDQp2aSBkbyBtYSB4ZW0geGV0IHRvaSB0cmFjaCBuaGllbSBjdWEgY28gcXVh biBjYXAgdHJlbiBsYSBuaHVuZyBjbyBxdWFuIGR1b2MgZ2lhbyB0cmFjaCANCm5oaWVtIHF1YW4g bHkgaG8gdmEga2UgY2Egbmh1bmcgY28gcXVhbiBkYSB2YW8gdGhhbmggdHJhIHJvaSBtYSBraG9u ZyBjbyBnaWFpIHBoYXAgZGUgDQpjaGFuIGNoaW5oLiBWaWVjIHhhYyBkaW5oIHRyYWNoIG5oaWVt IHRyZW4ga2hvbmcgcGhhaSBsYSBkZSBiYXQgbG9pLCBjaGlhIGxvaSBtYSBxdWFuIA0KdHJvbmcg aG9uIGxhIGRlIHRpbSByYSBjbyBjaGUgc2lldCBjaGF0IHRyYWNoIG5oaWVtLCBuYW5nIGNhbyB0 cmFjaCBuaGllbSBjdWEgY2FjIGNvIA0KcXVhbiBuYXkgbGVuLiBUcm9uZyB0cnVvbmcgaG9wIG5l dSBjbyBkYXUgaGlldSBjbyB0aW5oIGxhbSB0cmFpLCB0aGlldSB0cmFjaCBuaGllbSB0aGkgDQpw aGFpIGtpZW4gbmdoaSB4dSBseS4NCg0KQmFvIGNhbyB0cnVvYyBRSCwgVGh1IHR1b25nIE5ndXll biBUYW4gRHVuZyBraGFuZyBkaW5oIHNhaSBwaGFtIHRyZW4gY28gdHJhY2ggDQpuaGllbSBjdWEg Q2hpbmggcGh1LiBUcm9uZyBrZXQgbHVhbiBjdWEgbWluaCBsaWV1IFRUQ1AgY28gbGFtIHJvIGR1 b2MgdHJhY2ggbmhpZW0gDQpjdWEgQ2hpbmggcGh1IGtob25nIHRodWEgb25nPyANCg0KLSBUVENQ IGNvIG5oaWVtIHZ1IHhlbSB4ZXQsIGJhbyBjYW8ga2llbiBuZ2hpIHh1IGx5IG5odW5nIHZpZWMg byBjYWMgY28gcXVhbiBjdW5nIGNhcCANCnRyb25nIHBoYW0gdmkgcXVhbiBseSBjdWEgQ2hpbmgg cGh1LCB2aSBkdSBuaHUgY2FjIGJvIG5nYW5oIGNodWMgbmFuZywgVUJORCB0aW5oLCANCnRoYW5o IHBoby4uLiBEb2kgdm9pIG5odW5nIHZpZWMgdnVvdCB0aGFtIHF1eWVuIHRoaSBUVENQIGN1bmcg Y28gdHJhY2ggbmhpZW0gdGhlbyBkb2kgDQpiYW8gY2FvLiAgDQoNCk9uZyBIYSBWYW4gSGllbiwg Q2h1IG5oaWVtIFV5IGJhbiBLaW5oIHRlIFFIOiBIYXUgcXVhIGN1YSBzdSBwaGFuIGNhcCBraG9u ZyBkYXUgbW9pIGNoaXUgdHJhY2ggbmhpZW0NCg0KVmllYyBjb24gdGF1IFZpbmFzaGluIGJpIGRh bSBjbyBuZ3V5ZW4gbmhhbiBkbyBzdSBwaGFuIGNhcCBtYSBraG9uZyBjbyBkYXUgbW9pIG5hbyAN CmNoaXUgdHJhY2ggbmhpZW0gY2hpbmggdmUgVmluYXNoaW4uIEJhbyBjYW8gY3VhIHV5IGJhbiBk YSBjaGkgcm8gc3UgY2F0IGtodWMgdHJvbmcgcXVhbiANCmx5IFZpbmFzaGluIHZhIGNhYyB0YXAg ZG9hbi4gVHJvbmcgY2FpIGNhY2ggZG9hbmggbmdoaWVwIGtoaSBsYW0gcm8gY2h1YyBuYW5nIHF1 YW4gbHkgDQpuaGEgbnVvYyB2YSBjaHVjIG5hbmcgY2h1IHNvIGh1dSBjdW5nIGNhbiBwaGFpIGxh bSBybyB2YW4gZGUgbmF5LCBwaGFpIGNvIGNvIHF1YW4gY2hpdSANCnRyYWNoIG5oaWVtIGNoaW5o IHRoaSBraGkgZG9hbmggbmdoaWVwIGJpIHJ1aSBybyBtb2kgY28gY2hvIGRlIHF1eSB0cmFjaCBu aGllbS4gICANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5lbC80NDYxLzIwMTAxMS9Dby1jaGUt VGh1LXR1b25nLWNodS1xdWFuLTE3NzYzNTkvIE5ndXllbiBRdWFuZyBBIDAyLzExLzIwMTAgMTc6 NDQ6NDMgDQoNClRodSB0dW9uZyBjaHUgcXVhbiBUYXAgZG9hbiANCg0KLSBWb2kgbWF5IGNodWMg Ym8gdmEgMTkgdGFwIGRvYW4gdG9uZyBjb25nIHR5IG5odSB2YXksIHNvIGRhdSBtb2kgbWEgVGh1 IHR1b25nIHBoYWkgDQp0cnVjIHRpZXAgZGlldSBraGllbiBsYSBxdWEgbG9uLCB2dW90IHF1YSBr aGEgbmFuZyBjdWEgbW90IG5ndW9pLCBkYXUgdGFpIGdpb2kgZGVuIGRhdS4gDQoNClBoaWVuIGhv cCBjdWEgUXVvYyBob2kgZGEgdGh1YyBzdSBub25nIGtoaSBjbyBkYWkgYmlldSBraWVuIG5naGkg bGFwIFV5IGJhbiBkaWV1IHRyYSB2ZSANClZpbmFzaGluIHZhIGJvIHBoaWV1IHRpbiBuaGllbSBD aGluaCBwaHUgdmFvIGN1b2kga3kgaG9wIG5heS4gRGF5IGxhIG5odW5nIGtpZW4gbmdoaSANCmhv cCBwaGFwIG5odW5nIGNodWEgcm8gc2UgY28gZHVvYyB0aHVjIGhpZW4ga2hvbmcuIA0KDQpWaW5h c2hpbiwgdm9pIGtob2FuIG5vIGx1YyBkYXUgZHVvYyBjaG8gbGEgODYgbmdhbiB0eSBkb25nLCBu YXkgY28gdGhlIGxlbiAxMjAgaGF5IDEzMCANCm5nYW4gdHkgKGtob2FuZyA0LDUtIDUlIEdEUCku IEtob25nIG5naGllbSB0dWMgY2FpIHRvIG1vdCBjYWNoIHF1eWV0IGxpZXQgY2FjIHRhcCANCmRv YW4ga2luaCB0ZSBuaGEgbnVvYywgc2UgY28gdGhlIGNvIHRoZW0gY2FjIFZpbmFzaGluIGtoYWMg dmEgY28gdGhlIG5ndXkgaGllbSBjaG8gbmVuIA0Ka2luaCB0ZSBudW9jIG5oYS4gQ2h1bmcgc3Ug ZHVuZyBxdWEgbmhpZXUgbmd1b24gbHVjIGN1YSBuaGEgbnVvYyBuaHVuZyBtYW5nIGxhaSANCnRo YW5oIHRpY2ggcmF0IGtob25nIHR1b25nIHh1bmcuIENvIGxlLCB0dSBiYWkgaG9jIFZpbmFzaGlu LCBkYSBkZW4gbHVjIGNodW5nIHRhIHBoYWkgDQp4ZW0gbGFpIGN1bSB0dSAia2luaCB0ZSBOaGEg bnVvYyBnaXUgdmFpIHRybyBjaHUgZGFvIi4NCg0KKEFuaDogIkNodW5nIHN1IGR1bmcgcXVhIG5o aWV1IG5ndW9uIGx1YyBjdWEgbmhhIG51b2Mgbmh1bmcgbWFuZyBsYWkgdGhhbmggdGljaCByYXQg a2hvbmcgdHVvbmcgeHVuZyIuIEFuaCBMYW8gRG9uZy4pDQoNClRydW9jIGtpYSBjYWMgdG9uZyBj b25nIHR5IGNvbiBkbyBjYWMgQm8gKHZhIG1vdCB2YWkgZGlhIHBodW9uZykgcXVhbiBseSB0cnVj IHRpZXAgKHR1YyANCmxhIEJvIGxhIGRhaSBkaWVuIGNodSBzbyBodXUgbmhhIG51b2MsIHF1eWV0 IGRpbmggdmUgbmhhbiBzdSwga2UgaG9hY2guLi4sIGdpYW0gc2F0IGhvYXQgDQpkb25nIGN1YSBj aHVuZykgdmkgdGhlIG5ndW9pIHRhIGdvaSBsYSBjYWMgYm8gY2h1IHF1YW4uIENvIGNoZSBuYXkg Y28gbmhpZXUga2hpZW0gDQpraHV5ZXQgdmEgYmkga2llbiBuZ2hpIGh1eSBiby4gDQoNClZvaSBj YWMgdGFwIGRvYW4gKG1hIHRodWMgcmEgdmFuIGxhIGNhYyB0b25nIGNvbmcgdHkgbmhhIG51b2Mg Y28gZ2FuIHRoZW0gaGFpIGNodSAidGFwIA0KZG9hbiIpIHZhIGNhYyB0b25nIGNvbmcgdHkgOTEs IGNhYyBCbyBjaHUgcXVhbiB0cnVvYyBraWEgbmF5IG1hdCBjYWMgcXV5ZW4gcXVhbiBseSBkbyAN Cm1hIGNoaSB0YXAgdHJ1bmcgdmFvIHF1YW4gbHkgbmhhIG51b2MgdmUgbmdhbmggbWluaCBwaHUg dHJhY2guDQoNCkJvIHRydW9uZyBCbyBHaWFvIHRob25nIHZhbiB0YWkgY2hvIGJpZXQsICJUaGVv IHF1eSBkaW5oLCBUaHUgdHVvbmcgQ2hpbmggcGh1IHRodWMgDQpoaWVuIHF1eWVuIHRhcCB0cnVu ZyBxdWFuIGx5IG5oYSBudW9jIHZhIHF1eWVuIGNodSBzbyBodXUgY3VhIG5oYSBudW9jIGRvaSB2 b2kgdGFwIA0KZG9hbiIuIFRodSB0dW9uZyB0cnVjIHRpZXAgYm8gbmhpZW0gY2FjIHRoYW5oIHZp ZW4gdmEgY2h1IHRpY2ggaG9pIGRvbmcgcXVhbiB0cmksIHRvbmcgDQpnaWFtIGRvYyBjdWEgY2Fj IHRhcCBkb2FuLiBIaWVuIHRhaSBjbyAxOSB0YXAgZG9hbiB2YSB0b25nIGNvbmcgdHkgZG8gVGh1 IHR1b25nIHRydWMgDQp0aWVwIHF1YW4gbHkgbmh1IHZheS4NCg0KVm9pIGNvIGNoZSBUaHUgdHVv bmcgY2h1IHF1YW4gbmF5LCBxdXllbiBsdWMga2luaCB0ZSBkYSB0YXAgdHJ1bmcgcXVhIGNhbyB2 YW8gdGF5IG1vdCANCm5ndW9pIHZhIGFuIGNodWEgbmh1bmcgcnVpIHJvIGtob24gbHVvbmcgKHRo b2kgeHVhIHJhaSByYSBjYWMgQm8gdmEgY2FjIGRpYSBwaHVvbmcsIG5lbiANCnJ1aSBybyBjdW5n IGR1b2MgdHJhaSByYSB2YSBjbyB0aGUga2hvbmcgZGVuIG11YyBraG9jIGxpZXQgbmh1IHZvaSBj byBjaGUgVGh1IHR1b25nIGNodSBxdWFuKS4NCg0KVm9pIG1heSBjaHVjIGJvIHZhIDE5IHRhcCBk b2FuIHRvbmcgY29uZyB0eSBuaHUgdmF5LCBzbyBkYXUgbW9pIG1hIFRodSB0dW9uZyB0cnVjIHRp ZXAgDQpkaWV1IGtoaWVuIGxhIHF1YSBsb24sIHZ1b3QgcXVhIGtoYSBuYW5nIGN1YSBtb3Qgbmd1 b2ksIGRhdSB0YWkgZ2lvaSBkZW4gZGF1LiANCktob25nIG5odW5nIHRoZSBjaGluaCB0cmkgZ2lh IGhhbmcgZGF1IGN1YSBkYXQgbnVvYyBraG9uZyB0aGUgZG9uZyB0aG9pIGRhbSBuaGllbSANCnZp ZWMgbGllbiBxdWFuIGRlbiBraW5oIGRvYW5oIHRydWMgdGllcCBuaHUgdmF5LiANCg0KaHR0cDov L3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMS9UaGFuaC10cmEtQ2hpbmgtcGh1LUJh LWxhbi1kaW5oLXRoYW5oLXRyYS10b2FuLWRpZW4tVmluYXNoaW4tOTQ1NDQ4LyBULkMgMTg6Mzks IDAxLzExLzIwMTAgKEdNVCs3KSANCg0KQm8gdHJ1b25nIEdUVlQ6IEJvIGNoaSBkdW9jIHRoYW0g Z2lhIHkga2llbiwga2hvbmcgZHVvYyBxdXlldCBkaW5oIA0KDQpPbmcgSG8gTmdoaWEgRHVuZyBi byB0cnVvbmcgR1RWVCBjaG8gYmlldCBCbyBHVFZUIGN1bmcgbW90IHNvIGJvIGtoYWMsIHZvaSB0 dSANCmNhY2ggcXVhbiBseSBuZ2FuaCBkb2kgdm9pIFZpbmFzaGluLCBkdW9jIHRoYW0gZ2lhIHkg a2llbiBraGkgdGFwIGRvYW4gdHJpbmggQ2hpbmggcGh1IA0KdmUgbXVjIHRpZXUsIHF1eSBob2Fj aCwgY2hpZW4gbHVvYyBwaGF0IHRyaWVuIGN1YSB0YXAgZG9hbiwgZGlldSBsZSwgY28gY2F1IHRv IGNodWMgdmEgDQpuaGFuIHN1Li4uIENoaW5oIHBodSB0YXAgaG9wIGNhYyB5IGtpZW4gbmF5IHZh IFRodSB0dW9uZyByYSBxdXlldCBkaW5oLCB0YXAgZG9hbiB0aHVjIA0KaGllbi4gQm8gaG9hbiB0 b2FuIGtob25nIGR1b2MgcXV5ZW4gcXV5ZXQgZGluaC4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5l dC52bi9jaGluaHRyaS8yMDEwMTEvSGlldS1xdWEta2luaC10ZS1jaHVhLXRoYXktbG9pLWljaC14 YS1ob2ktbW8tbWl0LTk0Njk0NC8gTGUgTmh1bmcgLSBDYW8gTmhhdCAxNTowNSwgMTEvMTEvMjAx MCAoR01UKzcpDQoNClRodSB0dW9uZzogTG9jIGRhdSBEdW5nIFF1YXQgLSBIaWV1IHF1YSBraW5o IHRlIGNodWEgdGhheSwgbG9pIGljaCB4YSBob2kgbW8gbWl0DQoNCi0gIkJheSBnaW8gY3Ugbm9p IGRpbmggdGluaCBoaWV1IHF1YSBraW5oIHRlLCBjaGluaCB0cmksIHhhIGhvaSBuaHVuZyBuZW4g Y28gY29uIHNvIGN1IHRoZS4gDQpWaSBtb2kgdGluaCB0b2FuIGdpYSBkYXUgdGhvaSBkaWVtIHF1 eWV0IGR1IGFuIHZhbyAxMyBuYW0gdHJ1b2Mga2hhYyBiYXkgZ2lvLiBIYXkgZGF5IA0KbGEgY29u IHNvIGJpIG1hdCBraG9uZyBkdW9jIHRpZXQgbG8/IENodSBtb3Qgc28gYW5oIGVtIEROIG5vaSBj byBwaGFpIHRhIGRhdSB0dSBuaGEgDQptYXkgbG9jIGRhdSBEdW5nIFF1YXQgYmFuZyBtb2kgZ2lh IGtob25nPyIsIERCIE5ndXllbiBWYW4gVGhvaSAoVGhhaSBOZ3V5ZW4pIG5ldSB5IGtpZW4uDQoN CkN1bmcgbmh1IG9uZyBUaG9pLCBEQlFIIG8gY2FjIHRvIHRoYW8gbHVhbiBob20gbmF5IGtoaSBi YW4gdmUgZHUgYW4gbmhhIG1heSBsb2MgZGF1IA0KRHVuZyBRdWF0IGRldSBjaG8gcmFuZyBwaGFp IGNvbmcga2hhaSB0b25nIG11YyBkYXUgdHUgZGUgZG8gbHVvbmcgaGlldSBxdWEga2luaCB0ZS4g DQoNCkR1LCBuZ2F5IHR1IGRhdSwgQm8gdHJ1b25nIEtlIGhvYWNoIC0gRGF1IHR1IFZvIEhvbmcg UGh1YyBkYSBub2kgdm9pIGNhYyBEQlFIIHRvIA0KVGhhbmggSG9hIC0gVGhhaSBOZ3V5ZW4gLSBD YW4gVGhvICJjaHVuZyB0YSBraG9uZyBkYXQgaGlldSBxdWEga2luaCB0ZSBsZW4gaGFuZyBkYXUs IA0KbWEgZGF0IHRyb25nIHRvbmcgdGhlIHZvaSBoaWV1IHF1YSBjaGluaCB0cmksIHhhIGhvaSIg bmh1bmcgeGVtIHJhIGNhYyBEQlFIIHZhbiBjaHVhIG1heSBoYWkgbG9uZy4NCg0KQmFpIGhvYyBs b24gdmUgZHUgYW4ga2VvIGRhaSBtYWkgbWFpDQoNClRyYW4gdHJvIGxvbiBuaGF0LCBkbyBsYSB2 aWVjIHhheSBuaGEgbWF5IGxvYyBkYXUgRHVuZyBRdWF0IG8gUXVhbmcgTmdhaSB2b2kgcXV5ZXQg DQp0YW0gY2hpZW4gbHVvYyAicGhhdCB0cmllbiB2dW5nIGtpbmggdGUgZG9uZyBsdWMgbWllbiBU cnVuZyIsIG5odW5nIGN1b2kgY3VuZyB2b2kgZHUgDQphbiBjaGFtIHRpZW4gZG8gZGVuIDkgbmFt LCB0YW5nIHZvbiAzIGxhbiBtYSB0YWMgZG9uZyBsYW4gdG9hIGtpbmggdGUgY29uIG1vIG1pdCwg dGhhbSANCmNoaSBjbyBEQlFIIEhhIE5vaSBjb24ga2hhbmcga2hhbmcgImNoaSBjbyBsbyIuDQoN CihBbmg6IEJvIHRydW9uZyBWbyBIb25nIFBodWM6IENodW5nIHRhIGtob25nIGRhdCBoaWV1IHF1 YSBraW5oIHRlIGxlbiBoYW5nIGRhdSwgbWEgDQpkYXQgdHJvbmcgdG9uZyB0aGUgdm9pIGhpZXUg cXVhIGNoaW5oIHRyaSwgeGEgaG9pLiBBbmg6IExBRCkgDQoNCk5vaSBuaHUgQ2h1IHRpY2ggSG9p IGRvbmcgRGFuIHRvYyBLknNvciBQaHVvYywgdGluaCB0b2FuIGJhbiBkYXUgdHUgbmFtIDE5OTcg ZGEgY2hpIA0KcmEsIG5ldSBkYXQgRHVuZyBRdWF0IG8gQmEgUmlhIC0gVnVuZyBUYXUgY28gdGhl IHRpZXQga2llbSBkdW9jIDUwMCB0cmlldSBVU0QsIG5odW5nIA0KY3VvaSBjdW5nIHZhbiBkYXQg dGFpIFF1YW5nIE5nYWkgdmkgbXVvbiB0YW8gZG9uZyBsdWMgcGhhdCB0cmllbiBtaWVuIFRydW5n LCB0cmFuaCANCnZpZWMgcXVhIHV1IHRpZW4gY2hvIGhhaSBkYXUgTmFtIC0gQmFjLiANCg0KTmh1 IENoaW5oIHBodSBiYW8gY2FvLCBuaGEgbWF5IG1vaSB2YW4gaGFuaCB0aHVvbmcgbWFpIGR1b2Mg NiB0aGFuZyBuaHVuZyAiZGEgY28gDQp0YWMgZG9uZyB0aWNoIGN1YyBkb2kgdm9pIGtodSBraW5o IHRlIER1bmcgUXVhdCwgZHVhIHZ1bmcgZGF0IG5naGVvIGtobywgZ2lhdSB0cnV5ZW4gDQp0aG9u ZyBjYWNoIG1hbmcgbmF5IHBoYXQgdHJpZW4gbWFuaCBtZSIuDQoNCk5odW5nIERCUUggRG8gTWFu aCBIdW5nIChUaGFpIE5ndXllbikgbmV1IG1vdCB0aHVjIHRyYW5nLCB0cm9uZyBob24gMi41MDAg aG8gDQpkYW4gcGhhaSBkaSBkb2ksIGRlbiBuYXkgbmhpZXUgbm9pIGNodWEgZHVvYyBibyB0cmkg cGh1b25nIGFuIHNhbiB4dWF0IG8gbm9pIHRhaSBkaW5oIGN1LiANClRyb25nIGtoaSBkbywgY2hp IDYwMCBsYW8gZG9uZyBkaWEgcGh1b25nIGR1b2MgZHVhIHZhbyBsYW0gdmllYyBvIG5oYSBtYXku IEhpZXUgdW5nIA0KbGFuIHRvYSB0dSBuaGEgbWF5IHZvaSBraHUga2luaCB0ZSBEdW5nIFF1YXQg Y2h1YSBybyByZXQuDQoNCkRCIE5ndXllbiBOZ29jIERhbyAoSGEgTm9pKSB2aSB2b246ICJEdSBh biBuYXkgbmdoaWNoIGx5IHZlIG1hdCBraW5oIHRlIHZhIHRodWFuIGxvaSANCnZlIGNodSB0cnVv bmcuIE5odW5nIHRhIGNodWEgbmFtIGR1b2MgYmllbiBkb2kga2hpIGhhdSB2YSB0cnUgbHVvbmcg ZGF1IGtoaS4gQ2FjIA0KY2h1eWVuIGdpYSBudW9jIG5nb2FpIGRhIG5vaSAyMCBuYW0gbnVhIG5n dW9uIGRhdSB0cm9uZyBudW9jIGhldCwgbmV1IGRpIG11YSB2ZSBnaWEgDQpkb2kgbGVuIG51YSwg bmh1IHZheSBwaGFpIHZhaSBiYSBjaHVjIG5hbSBtb2kgaG9hbiB2b24uIFF1eWV0IHRvYW4gdGhl IG5hbywgbG8sIGxhaSByYSANCnNhbz8gTG9pIGljaCB4YSBob2kgZGFuZyBtbyBtaXQiLg0KDQpO Z2F5IEJvIHRydW9uZyBWbyBIb25nIFBodWMga2hpIGxhdCBsYWkgbmh1bmcgeSBraWVuIHRyYWkg Y2hpZXUgdmUgZGlhIGRpZW0sIHZvbiBjdWEgDQpuaGEgbWF5IGN1bmcgZGkgZGVuIGtldCBsdWFu ICJjb25nIHRyaW5oIG5heSBrZW8gZGFpIG1haSBtYWksIGRheSBsYSBtb3QgYmFpIGhvYyBsb24g cnV0IHJhIGtoaSB4YXkgY2FjIGNvbmcgdHJpbmgga2hhYyIuDQoNCkRhbmcgbG8gbmdhaSwgdGhl byBuaGlldSBEQiwgbGEgY2hpIHBoaSBjbyBob2kgZGEgbWF0LCB2YSBuZ3VvaSBkYW4gY2h1YSBk dW9jIGh1b25nIGxvaSANCmJhbyBuaGlldS4NCg0KTmVuIGNvIGtpZW0gdG9hbiBkb2MgbGFwDQoN CkhvYW4gbmdoZW5oIHF1eWV0IHRhbSBjaGluaCB0cmkgY3VhIGR1IGFuLCBzb25nIG5oaWV1IERC UUggY3VuZyBydXQgcmEga2V0IGx1YW4sIGRhIA0KZGVuIGx1YyBraG9uZyB0aGUgeGF5IGNvbmcg dHJpbmggdHJvbmcgZGllbSBxdW9jIGdpYSBjaGkgZGUgbWFuZyBsYWkgImhpZXUgcXVhIGNoaW5o IHRyaSIuIA0KUXVvYyBob2kgcGhlIGR1eWV0IGR1IGFuLCBuaHVuZyBiYW8gY2FvIHRoYW0gdHJh IGN1YSBVQiBLaG9hIGhvYywgY29uZyBuZ2hlLCANCm1vaSB0cnVvbmcgbGFpIHF1YSBkZSBkYWks IGdhbiBuaHUgbGEgYmFuIHRvbSB0YXQgYmFvIGNhbyBDaGluaCBwaHUsIHBoYWkgY2hhbmcgUXVv YyANCmhvaSBxdWEgZGUgZGFpLg0KDQooQW5oOiBEQiBOZ3V5ZW4gTmdvYyBEYW86IExvaSBpY2gg eGEgaG9pIGRhbmcgbW8gbWl0LiBBbmg6IExBRCkNCg0KREJRSCBDaHUgU29uIEhhIHZhIE5ndXll biBIb25nIFNvbiAoSGEgTm9pKSBkZSB4dWF0LCBRSCBjYW4gZ2lhbyBjaG8gY28gcXVhbiANCmtp ZW0gdG9hbiBkb2MgbGFwIGtpZW0gdG9hbiBuaGEgbWF5IGxvYyBkYXUgRHVuZyBRdWF0IHZhIGJh byBjYW8gUUggZGUgbGFtIHJvIGhpZXUgDQpxdWEgZGVuIGRhdSwgbmh1IHRoZSBuYW8sIHJ1dCBy YSBiYWkgaG9jIGNobyBjb25nIHRyaW5oIGtoYWMuICJQaGFpIGxhbSBybyBkZSBjbyBxdXlldCAN CnNhY2ggZHVuZyBkYW4gY2hvIGNhYyBjb25nIHRyaW5oIHF1b2MgZ2lhIiwgb25nIFNvbiBub2ku IA0KDQpIYW5nIGxvYXQgY2F1IGhvaSBjdW5nIGR1b2MgZGF0IHJhIG5odSAiZ2lhIHRoYW5oIHNh biBwaGFtIGN1YSBuaGEgbWF5IGNvIHBoYWkgY2FvIA0KaG9uIGdpYSBuaGFwIHZlPyIsICJuZXUg dGluaCBjYSBjYWMga2hvYW4gdHJhIGxhaSBkbyBjaGFtIHRpZW4gZG8gdGhpIHRpZW4gZG9pIGxl biBiYW8gDQpuaGlldT8iLiANCg0KREIgTGUgVGhhbmggQmluaCAoQmFjIE5pbmgpIGJhbiBraG9h biwgInNhcCB0b2kgeGF5IGR1bmcgdGhlbSBjYWMgbmhhIG1heSBsb2MgZGF1IA0KbnVhIG8gVGhh bmggSG9hLCBWdW5nIFRhdSwgbGlldSBydXQgcmEgZHVvYyBuaHVuZyBraW5oIG5naGllbSBnaSB0 dSBkYXksIHlldSBjYXUgDQpDaGluaCBwaHUgcGhhaSBsYW0gcm8iLg0KDQpOZXUgY28ga2llbSB0 b2FuIGRvYyBsYXAsIHRoZW8gREIgTmd1eWVuIE5nb2MgSG9hIChUUC5IQ00pLCBjdW5nIGNhbiB0 cmEgbG9pIGNhdSANCmhvaSwgdHJvbmcgdm9uZyBiYW8gbmhpZXUgbmFtIG1vaSB0aHUgaG9pIGxh aSBkdW9jIDMgdHkgdm9uIGRhdSB0dS4gVGFpIHNhbyBjbyB0aG9pIGRpZW0gDQp4YW5nIHRvbiBr aG8gbG9uIHRyb25nIGtoaSBOaGEgbnVvYyB2YW4gcGhhaSBkaSBuaGFwLiBDYW4gdG8gY2h1YyBk YW5oIGdpYSBwaGFuIHBob2kgdGlldSB0aHUgc2FuIHBoYW0gdGhlIG5hbz8NCg0KUXV5ZXQgbGll dCBuaGF0IGxhIGRvaSBob2kgcGhhaSB0aHVjIGhpZW4gcXV5ZXQgdG9hbiB2b24gZGF1IHR1IHZh IGJhbyBjYW8gUXVvYyBob2kgdGFpIGt5IA0KaG9wIHRodSA5ICh0aGFuZyAzLzIwMTEpIHRydW9j IGtoaSByYSBOZ2hpIHF1eWV0IGtldCB0aHVjIGR1IGFuLg0KDQpEZSBjaHVuZyBtaW5oIG5oYW4g ZGluaCBjdWEgQ2hpbmggcGh1IHZlIGhpZXUgcXVhIHRvdCBkZXAgY3VhIGR1IGFuLCBOZ2hpIHF1 eWV0IFFIIA0KcGhhaSBnaGkgcm8gbW90IHNvIG5oaWVtIHZ1IGN1IHRoZS4gVHUgZG8sIFF1b2Mg aG9pIHNlIHRpZXAgdHVjIGdpYW0gc2F0IHRoZW0gMyAtIDUgbmFtIG51YS4gDQoNCiJCYSBwaGFp Ig0KDQooQW5oOiBEQlFIIEJ1aSBTaSBMb2kgKG5nb2FpIGN1bmcgYmVuIHBoYWkpLiBBbmg6IEhv YW5nIExvbmcpDQoNCkRhbmggZ2lhIHZhaSB0cm8gZ2lhbSBzYXQgY3VhIFFIIHZvaSBjYWMgY29u ZyB0cmluaCB0cm9uZyBkaWVtLCBEQlFIIEJ1aSBTaSBMb2kgbm9pOiANCiJCYW8gY2FvIGN1YSBV eSBiYW4gS0hDTiZNVCBRdW9jIGhvaSB0cnVuZyB2b2kgYmFvIGNhbyBjdWEgQ2hpbmggcGh1LiBO aHUgdmF5IA0Ka2hvbmcgdGhlIGhpZW4gZHVvYyB0cmFjaCBuaGllbSBjdWEgbW90IGNvIHF1YW4g dGhhbSB0cmEuIA0KDQpDYWMgdXkgYmFuIGtoaSB0aGFtIHRyYSBkdSBhbiBwaGFpIHRoZSBoaWVu IHRpbmggdHJ1bmcgdGh1YyBjdWEgY28gcXVhbiBnaWFtIHNhdCBjaHUgDQpraG9uZyBwaGFpIGN1 IHh1b2kgY2hlbyBtYXQgbWFpLiBDbyB0aGUgbm9pIHRpbmggY2hpZW4gZGF1IGtob25nIGNhbyBo YXkgbmh1IG5ndW9pIHRhIA0Kbm9pIGxhIGJhIHBoYWkuDQoNCk5oaWV1IGxhbiBkdSBjYWMgY3Vv YyBnaWFtIHNhdCBjdWEgY2FjIHV5IGJhbiBuZ2F5IHR1IGRhdSwgdG9pIHRoYXkgaGllbiB0dW9u ZyBjYWMgYmFvIA0KY2FvIGdpYW0gc2F0IGJhbiBkYXUgbm9pIHJhdCBtYW5oIG1lIG5odW5nIGNh bmcgdmUgc2F1LCB0aW5oIGNoaWVuIGRhdSBjdSBnaWFtIGRhbiwgDQpjYWMgeWV1IHRvIHBoZSBw aGFuIGN1IGJpIGhhbiBjaGUgZGFuLg0KDQpQaGUgcGhhbiBjdWEgY2FjIHV5IGJhbiBraG9uZyBw aGFpIGxhIGNoZSBiYWkgQ2hpbmggcGh1IGhheSBibyBuZ2FuaCBuYW8gbWEgdGhlIGhpZW4gDQp0 aW5oIHRyYWNoIG5oaWVtIGN1YSBRdW9jIGhvaSBraGkgcGhhdCBoaWVuIHJhIHRoaWV1IHNvdCBn aXVwIGNobyBDaGluaCBwaHUuIFBoZSBwaGFuIGRlIA0KdGluaCBoaW5oIHRvdCBob24gbGVuIi4g DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTEx MjAxMTM1OS5hc3B4IE5ob20gUFYgMTIvMTEvMjAxMCAxOjE0IA0KDQpEYWkgYmlldSBRSDogRGUg bmdoaSBraWVtIHRvYW4gY29uZyB0cmluaCBOaGEgbWF5IGxvYyBkYXUgRHVuZyBRdWF0ICANCiAg DQpUaGFvIGx1YW4gdGFpIHRvIHZlIHZpZWMgdGh1YyBoaWVuIGNvbmcgdHJpbmggcXVhbiB0cm9u ZyBxdW9jIGdpYSBEdSBhbiAoREEpIE5oYSBtYXkgDQpsb2MgZGF1IChOTUxEKSBEdW5nIFF1YXQs IGhvbSBxdWEgMTEuMTEsIGRhIHNvIHkga2llbiBEQlFIIGNobyByYW5nIGNvbiBzb20gZGUgDQpj byBkYW5oIGdpYSBjdW9pIGN1bmcgdmUgY29uZyB0cmluaCBuYXksIG5oYXQgbGEga2hpIHF1eWV0 IHRvYW4gY3VhIERBIHZhbiBjaHVhIGR1b2MgDQpob2FuIHRoYW5oLiANCg0KUGhvIGNodSB0aWNo IFFIIEh1eW5oIE5nb2MgU29uIGNobyByYW5nIGNodWEgbmVuIHJhIG5naGkgcXV5ZXQgdmUga2V0 IHRodWMgZ2lhbSBzYXQgDQpEQSBOTUxEIER1bmcgUXVhdCBraGkgREEgdmFuIGNodWEgdGhlIHF1 eWV0IHRvYW4sIGNodWEgZHVvYyBraWVtIHRvYW4gZG9pIHZvaSANCm1vdCBzbyBoYW5nIG11Yy4g REIgQ2h1IFNvbiBIYSAoSGEgTm9pKSBkZSBuZ2hpIFFIIGdpYW8gY2hvIEtpZW0gdG9hbiBOaGEg bnVvYyANCnRpZW4gaGFuaCBraWVtIHRvYW4gdG9hbiBibyBjb25nIHRyaW5oIE5NTEQgRHVuZyBR dWF0IHZhIGJhbyBjYW8gUUggdHJvbmcgdGhvaSBnaWFuIA0Kc29tIG5oYXQuICANCg0KIkNodWEg dGhlIHJhIG5naGkgcXV5ZXQga2hpIGNodWEgbGFtIHNhbmcgdG8gbmhpZXUgdmFuIGRlIHRvbiB0 YWkuIEN1IHRoZSBsYSBjb25nIGFuIHZpZWMgDQpsYW0gY3VhIG5ndW9pIGRhbiB0YWkgbm9pIGNv IERBIHZhbiByYXQga2hvIGtoYW47IHZhbiBkZSBkaSBkYW4gdGFpIGRpbmggY3UsIHRhYyBkb25n IA0KbW9pIHRydW9uZywgYW4gbmluaCBxdW9jIHBob25nIGNodWEgZHVvYyB0cmluaCBiYXkgY2hp IHRpZXQgdHJvbmcgYmFvIGNhbyBjdWEgQ2hpbmggDQpwaHU7IG11YyB0aWV1IHRhbyBkb25nIGx1 YyBraW5oIHRlIGNobyBtaWVuIFRydW5nIHZhbiBjaHVhIGNvIGxvIHRyaW5oIHRodWMgaGllbiB2 YSANCnBodW9uZyBhbiBiYW8gZGFtLiBWaSB2YXksIFFIIGNhbiBwaGFpIHRpZXAgdHVjIGdpYW0g c2F0IGNobyBkZW4ga2hpIGJhbyBjYW8gcXV5ZXQgDQp0b2FuIGRheSBkdSwgZG9uZyB0aG9pIHZh biBwaGFpIGdpYW0gc2F0IHRoZW8gZGluaCBreSB2ZSBoaWV1IHF1YSBraW5oIHRlIGN1YSBEQSIs IFBobyANCmNodSBuaGllbSBWYW4gcGhvbmcgUUggTmd1eWVuIER1YyBIaWVuIGJheSB0by4gDQoN Cmh0dHA6Ly9ib3hpdHZuLndvcmRwcmVzcy5jb20vMjAxMC8xMS8wMy90b24tdmFuLXBodC1iaSVl MSViYiU4M3UtYyVlMSViYiVhN2EtaGFpLWQlZTElYmElYTFpLWJpJWUxJWJiJTgzdS1sLXZhbi1j dW5nLXRoYW5oLWhvLXYtcGglZTElYmElYTFtLXRoJWUxJWJiJThiLWxvYW4tdHAtaC1uJWUxJWJi JTk5aS10LyBEYW5nIGJvaSBidm5wb3N0IG9uIDAzLzExLzIwMTAgDQoNClRvYW4gdmFuIHBoYXQg YmlldSBjdWEgZGFpIGJpZXUgUGhhbSBUaGkgTG9hbiAoSGEgTm9pKSB0YWkgUXVvYyBob2kgc2Fu ZyBuZ2F5IDEvMTEvMjAxMCANCg0KS2luaCB0aHVhIFF1b2MgaG9pLA0KDQpWZSB0aW5oIGhpbmgg a2luaCB0ZSCWIHhhIGhvaSBuYW0gMjAxMCB2YSBuaGllbSB2dSBraW5oIHRlIJYgeGEgaG9pIG5h bSAyMDExIHRvaSBjbyBiYW4gDQp0YW4gdGhhbmggdm9pIEJhbyBjYW8gY3VhIENoaW5oIHBodS4g VG9pIHhpbiBkb25nIGdvcCBtb3Qgc28geSBraWVuIHNhdToNCg0KTW90LCB0aW5oIGhpbmgga2lu aCB0ZSB2aSBtby4gVGhlbyBCYW8gY2FvIGN1YSBDaGluaCBwaHUgdGhpIHRhbmcgdHJ1b25nIEdE UCBuYW0gDQoyMDEwIGtob2FuZyA2LDclIGNhbyBob24gZHUga2llbiBjdWEgUXVvYyBob2kgZHVh IHJhLiBUdXkgbmhpZW4gY3UgdHJpIGNvbiBuZ2hpIG5nbyANCnZlIGNhYyBzbyBsaWV1IGJhbyBj YW8gdGFuZyB0cnVvbmcgbmF5LCB2aSBuZXUgdGhlbyBkb2kgY2FjIGJhbyBjYW8gRGFpIGhvaSBE YW5nIGN1YSBjYWMgDQp0aW5oIHRoaSBjb24gc28gY2FjIHRpbmggYmFvIGNhbyB0YW5nIHRydW9u ZyBjdWEgY2FjIHRpbmggdHUgMTIgliAxNSUuIEN1IHRyaSBsbyBsYW5nIHZlIA0KdGluaCB0cmFu ZyBjaGF5IGR1YSB0YW5nIHRydW9uZyB2ZSBzbyBtYSB0aGlldSBxdWFuIHRhbSB0YW5nIHRydW9u ZyB2ZSBjaGF0IHZhIHRpbmggYmVuIHZ1bmcgY3VhIHN1IHBoYXQgdHJpZW4uDQoNClRodWMgdGUg Y2hvIHRoYXkgdmllYyBuaGFwIHNpZXUgbmFtIDIwMDkgbGEgMTIsOTIgdHksIGR1IGtpZW4gbmFt IDIwMTAgdGhhbSBodXQgbWF1IA0KZGljaCBraG9hbmcgMTMgdHkgZG9sYSwgZ2lhIHZhbmcgdGFu ZyB0cm9uZyBuYW0ga2hvYW5nIDIwIGRlbiAyNSUsIHR5IGdpYSBob2kgZG9haSANCmNoZW5oIGxl Y2ggdHkgZ2lhIGRhbmcgbGEgbm9pIGJ1YyB4dWMgY3VhIGRvYW5oIG5naGllcC4gTGFpIHN1YXQg bmdhbiBoYW5nIGR1bmcgdmFvIA0KaGFuZyBjYW8gbmhhdCB0cmVuIHRoZSBnaW9pLCBsYW0gcGhh dCBjYW8sIGNoaSBzbyBnaWEgdGlldSBkdW5nIGNhbywgSUNPIHZhbiBjaHVhIGR1b2MgDQpjYWkg dGhpZW4sIG5oYXAgc2lldSB0dSBUcnVuZyBRdW9jIHJhdCBjYW8sIGNoaWVtIDkwJSBuaGFwIHNp ZXUgY3VhIGNhIG51b2MsIG5odW5nIA0KQ2hpbmggcGh1IHZhbiBjaHVhIGNvIGJpZW4gcGhhcCBk ZSBjYW4gZG9pLCB0cm9uZyBraGkgZG8gdmFuIGRhbmcgbW8gcm9uZyBjdWEgY2hvIA0KaGFuZyBo b2EgdmEgbmh1bmcgZHUgYW4gRVBDIG1hIHRyb25nIG51b2MgY28gZHUga2hhIG5hbmcgbGFtIGRh bmggY2hvIGNhYyBkb2FuaCANCm5naGllcCBjdWEgVHJ1bmcgUXVvYyB0aHVjIGhpZW4uIFZpZWMg aGFuIGNoZSBxdW90YXIgbmhhcCBraGF1IHZhbmcgdmEgZGUgZ2lhIHZhbmcgDQp0YW5nIGNhbywg ZGUgY2hvIHRoaSB0cnVvbmcgdHUgZG8gdGhhbiBuaGllbiB0aGFvIHR1bmcgbmhhcCBsYXUgdmFu ZyBxdWEgYmllbiBnaW9pIA0KZ2F5IHRhYyBkb25nIHhhdSBkZW4gdHkgZ2lhIG5nb2FpIHRlLiBT dSBraGFuIGhpZW0gbmdvYWkgdGUgYW5oIGh1b25nIGRlbiBjYSB0aGkgdHJ1b25nIGJhdCANCmRv bmcgc2FuLCB0aGkgdHJ1b25nIGNodW5nIGtob2FuLiBOaHVuZyB0cm9uZyBrZSBob2FjaCBuYW0g MjAxMSB2YSBrZSBjYSBkaW5oIGh1b25nIA0KY2hpZW4gbHVvYyBuaHVuZyBuYW0gdGllcCB0aGVv IGNodW5nIHRvaSBjaHVhIHRoYXkgZHVhIHJhIGR1b2MgYmllbiBwaGFwIHRodWMgc3UgaHV1IA0K aGlldSBuYW8uIFZheSBDaGluaCBwaHUgc2UgbGFtIGdpIGNobyB4YSBob2kgdmEga2luaCB0ZSBW aWV0IE5hbSBjYW4gYmFuZyB2YSBwaGF0IHRyaWVuIA0KYmVuIHZ1bmc/DQoNClZhbiBkZSB0aHUg aGFpIGxhIHZhbiBkZSBxdWFuIGx5IE5oYSBudW9jIHZhIHRyYWNoIG5oaWVtIGN1b2kgY3VuZyBj dWEgYWkgdHJvbmcgdmllYyANCnF1YW4gbHkga2luaCB0ZSBOaGEgbnVvYy4gVnVhIHF1YSB0aGVv IEJhbyBjYW8gY3VhIENoaW5oIHBodSB2YSB0aG9uZyBiYW8gY3VhIFV5IGJhbiANCktpZW0gdHJh IFRydW5nIHVvbmcgRGFuZyBhaSBjdW5nIHRoYXkgZHVvYyBzdSB0aGF0IHZlIFZpbmFzaGluLCBk byBsYSBzYW4gcGhhbSBjdWEgDQp2aWVjIHRoaSBkaWVtIHRhcCBkb2FuIGtpbmggdGUgTmhhIG51 b2MuIFZhbiBkZSB0b2kgbXVvbiBuZXUgcmEgbyBkYXkgbGEgYWkgc2UgbGEgbmd1b2kgDQpjaGl1 IHRyYWNoIG5oaWVtIGN1b2kgY3VuZyB0cm9uZyB2aWVjIGRlIFZpbmFzaGluIHJvaSB2YW8gdGlu aCB0cmFuZyBuaHUgdmF5LiBUcmFjaCANCm5oaWVtIGN1YSBUaHUgdHVvbmcsIGN1YSBDaGluaCBw aHUgdmEgY2FjIEJvLCBuZ2FuaCwgY2EgbmhhbiBsaWVuIHF1YW4gbmh1IHRoZSBuYW8/IA0KDQpU aGVvIHRvaSBraG9uZyB0aGUgbm9pIG1vdCBjYWNoIGRvbiBnaWFuIGxhIGRvIGNhYyBjYW4gYm8g bGFuaCBkYW8gY3VhIFRhcCBkb2FuIA0KVmluYXNoaW4sIG1vdCBtaW5oIFZpbmFzaGluIGtob25n IHRoZSBsYW0gc2FpIGx1YXQgZHVvYy4gQ2h1bmcgdG9pIHR1IGhvaSBhaSBkYSBjaG8gDQpwaGVw IFZpbmFzaGluIHBoYXQgaGFuaCB0cmFpIHBoaWV1IHZvaSBsdW9uZyB0aWVuIGxvbiBuaHUgdmF5 PyBBaSBkYSBjaG8gcGhlcCBWaW5hc2hpbiANCnZheSB2dW90IGhhbiBtdWMgcXV5IGRpbmggY3Vh IG1vdCBraGFjaCBoYW5nIHRoZW8gcXV5IGRpbmggY3VhIGx1YXQgbGEgMTUlIHZvbiBkaWV1IA0K bGUgY3VhIG5nYW4gaGFuZy4gQWkgZGEgZGUgVmluYXNoaW4gZGF1IHR1IHRyYW4gbGFuIG5odSB2 YXk/IFZhIGRhYyBiaWV0IGxhIHRhaSBzYW8gZGEgY28gDQoxMSBkb2FuIHZhbyBraWVtIHRyYSwg Z2lhbSBzYXQgbmh1bmcgdmFuIGtob25nIHBoYXQgaGllbiByYSBzYWkgcGhhbT8gVmEgdGFpIHNh byBRdW9jIA0KaG9pIGRhIGNvIHF1eWV0IGRpbmggZHVhIFZpbmFzaGluIHZhbyBkYW5oIHNhY2gg Z2lhbSBzYXQgdHUgbmFtIDIwMDkgbmh1bmcgQ2hpbmggcGh1IA0KdmFuIGRlIG5naGkgZGUgaG9h biBsYWksIGNobyBUaGFuaCB0cmEgQ2hpbmggcGh1IGxhbSB2aWVjIHRydW9jIHZhIGNobyBkZW4g YmF5IGdpbyANCktpZW0gdG9hbiBOaGEgbnVvYyBjdWEgUXVvYyBob2kgdmFuIGNodWEgdmFvIGtp ZW0gdG9hbiBkdW9jLiBWYXkgdGFpIHNhbyBUaGFuaCB0cmEgDQpDaGluaCBwaHUgdmFuIGtob25n IHBoYXQgaGllbiByYSBkaWV1IGdpLiBWYXkgdGF0IGNhIG5odW5nIHZpZWMgZG8gbGEgeHVhdCBw aGF0IHR1IG11YyANCmRpY2ggZ2k/IFRyYWNoIG5oaWVtIHRodW9jIHZlIGFpPyANCg0KVHJvbmcg RGllbSBjLCBLaG9hbiAxLCBEaWV1IDE2OCwgTHVhdCBkb2FuaCBuZ2hpZXAgcXVpIGRpbmggdGFj aCB2aWVjIGNodWMgbmFuZyB0aHVjIA0KaGllbiBjYWMgcXV5ZW4gY2h1IHNvIGh1dSB2b2kgY2h1 YyBuYW5nIHF1YW4gbHkgaGFuaCBjaGluaCBOaGEgbnVvYy4gTmh1bmcgdHJvbmcgDQp0aHVjIHRl IEJvIHRydW9uZyBCbyBUYWkgY2hpbmggbGFtIENodSB0aWNoIEhvaSBkb25nIHF1YW4gdHJpIENv bmcgdHkgU0NJQy4gVGh1IA0KdHJ1b25nIEJvIENvbmcgdGh1b25nIGxhbSBDaHUgdGljaCB0YXAg ZG9hbiBUS1YgdmEgVGh1IHR1b25nIHRoaSBkYW5nIHRydWMgdGllcCBxdWFuIA0KbHkgMTkgdGFw IGRvYW4gVG9uZyBjb25nIHR5IE5oYSBudW9jIDkwIJYgOTEuIA0KDQpUaGVvIHRvaSBkdW9jIGJp ZXQgdm9pIHZpZWMgVGh1IHR1b25nIGRhbmcgdHJ1YyB0aWVwIHF1YW4gbHkgMTkgdGFwIGRvYW4g VG9uZyBjb25nIHR5IA0KTmhhIG51b2Mgbmh1IHZheSwgY2FjIHRhcCBkb2FuIFRvbmcgY29uZyB0 eSBOaGEgbnVvYyBuYXkgbGFtIGFuIHRodWEgbG8gdGhpIHRyYWNoIA0KbmhpZW0gY3VhIFRodSB0 dW9uZyBuaHUgdGhlIG5hbz8gVGFpIHNhbyBUaHUgdHVvbmcgdmFuIHRyYW0gY29uZyBuZ2hpbiB2 aWVjIGRpZXUgDQpoYW5oIGNodW5nIGRhdCBudW9jIG1hIGxhaSBjb24gdHJ1YyB0aWVwIHF1YW4g bHksIGRpZXUgaGFuaCBjYWMgdGFwIGRvYW4gVG9uZyBjb25nIHR5IA0KbmF5LiBUYWkgc2FvIGto b25nIGJhbiBoYW5oIGNvIGNoZSBkaWV1IGhhbmggY2h1bmcgZGUgaG8gaG9hdCBkb25nIHRoZW8g cGhhcCBsdWF0LiBEYWMgDQpiaWV0IHRhaSBLaG9hbiAzLCBEaWV1IDE2OCwgTHVhdCBkb2FuaCBu Z2hpZXAgcXVpIGRpbmg6IGRpbmgga3kgaGFuZyBuYW0gQ2hpbmggcGh1IA0KdHJpbmggUXVvYyBo b2kgYmFvIGNhbyB0b25nIGhvcCB2ZSB0aHVjIHRyYW5nIGtpbmggZG9hbmggdm9uIGNodSBzbyBo dXUgTmhhIG51b2MuIA0KDQpUaHVjIHRyYW5nIGJhbyB0b2FuIHZhIHBoYXQgdHJpZW4gZ2lhIHRy aSB2b24gZGF1IHR1IHZhIHRhaSBzYW4gc28gaHV1IE5oYSBudW9jIHRhaSBkb2FuaCANCm5naGll cCwgbmh1bmcgbmhpZXUgbmFtIG5heSBRdW9jIGhvaSBjaHVhIG5oaW4gdGhheSBjbyBiYW4gYmFv IGNhbyBuYW8gdHJpbmggUXVvYyANCmhvaSB0dSBwaGlhIENoaW5oIHBodSB0aGVvIG5odSBxdWkg ZGluaCBuZXUgdHJlbi4gVmF5IHZpZWMga2hvbmcgdHVhbiB0aHUgcGhhcCBsdWF0IGRlIA0KZ2F5 IGhhdSBxdWEgbmdoaWVtIHRyb25nIG5odSB2dSBWaW5hc2hpbiB0aGkgdHJhY2ggbmhpZW0gY3Vv aSBjdW5nIHNlIHRodW9jIHZlIGFpPyANCg0KVG9pIGRvbmcgdGluaCB2b2kgY2FjIHkga2llbiB0 cnVvYyB0b2kgdmUgdmllYyBwaGFpIHF1aSB0cmFjaCBuaGllbSBkZW4gY3VuZyB2YSBkYWMgYmll dCANClF1b2MgaG9pLCBEYW5nIGNhbiBwaGFpIGxhbSBybyB0cmFjaCBuaGllbSBjdWEgbmh1bmcg bmd1b2kgcXVhbiBseSBOaGEgbnVvYy4gVGhlbyANCnRvaSBuZ2hpIG5odW5nIG5ndW9pIGxhbSBz YWkgY3VuZyBjYW4gcGhhaSBjbyBtb3QgbG9pIHhpbiBsb2kgdm9pIG5oYW4gZGFuIHZhIGNvIGxl IGxhIA0KY3VuZyBuZW4gbmdoaSBkZW4gdmFuIGhvYSB0dSBjaHVjIGRlIG5oYW4gZGFuIGNvbiBj byBsb25nIHRpbiB2b2kgbGFuaCBkYW8gTmhhIG51b2MgdmEgDQp2b2kgRGFuZy4NCg0KVmFuIGRl IHRodSBiYSBsYSB2YW4gZGUgY2hpZW4gbHVvYyB2ZSBuYW5nIGx1b25nIGN1YSBDaGluaCBwaHUg bmh1IHRoZSBuYW8uIFZ1YSBxdWEgDQpraGFwIG5vaSBuaGFuIGRhbiBrZXUgdGhpZXUgZGllbiwg Y2F0IGRpZW4gdHV5IHRpZW4ga2hvbmcgZHVuZyBMdWF0IERpZW4gbHVjLCBFVk4ga2V1IA0KdGhp ZXUgdm9uLCB0aHV5IGRpZW4gdGhpZXUgbmd1b24gbnVvYyBkZSBwaGF0IGRpZW4sIEVWTiBrZXUg bG8gdm9uIHRyb25nIG5hbSBob24gDQo2LjAwMCB0eSBWaWV0IE5hbSBkb25nLCBnaWEgbXVhIGRp ZW4gY2FvIGhvbiBnaWEgYmFuLCBjYWMgbmhhIGRhdSB0dSBkaWVuIG5nb2FpIEVWTiANCmtldSBr aG8ga3kgaG9wIGRvbmcgYmFuIGRpZW4gY2hvIEVWTiwgY28gaG9wIGRvbmcgYmFuIHJvaSB0aGkg Y28gZHVvYyBwaGVwIGxlbiBsdW9pIA0KaGF5IGtob25nLCBsYWkgcGhhaSB4aW4gliBjaG8uIFRy b25nIGtoaSBkbyBjYWMgbmhhIG1heSBuaGlldCBkaWVuIGxvbiBkbyBUcnVuZyBRdW9jIA0KbGFt IEVQQyBjaGF5IGtob25nIG9uIGRpbmgsIHRvbiBuaGlldSB0aGFuLCBjb25nIG5naGUgc3UgZHVu ZyB0aGFuIGtob25nIHBodSBob3Agdm9pIA0KbG9haSB0aGFuIHRyb25nIG51b2Mgc2FuIHh1YXQg ZHVvYy4NCg0KVmUgdGh1eSBkaWVuIHRoaSBjYWMgbmhhIHRoYXUgRVBDIHR1IFRydW5nIFF1b2Mg Y2hpZW0gZGVuIDkwJSBjYWMgZHUgYW4gRVBDIHZlIGRpZW4gDQp2YSB0YSBkYW5nIHBoYWkgcGh1 IHRodW9jIGhvIHZlIHZhbiBkZSBoYXUgbWFpLCBwaHUgdHVuZywgcGh1IGtpZW4gdHJvbmcgdmFu IGhhbmguIE1hdCANCmtoYWMgVHJ1bmcgUXVvYyBkYW5nIGtpZW0gc29hdCBuZ3VvbiBudW9jIHRo dW9uZyBuZ3VvbiwgbHVjIGtobyBobyBjbyB0aGUgZ2l1IG51b2MsIA0KbHVjIGx1IGx1dCBobyBj byB0aGUgeGEgbnVvYyBnYXkgbmd1eSBjbyBjaG8gdGEuIEdhbiBkYXkgaG8gZGFuZyBjaHVhbiBi aSB4YXkgbmhhIG1heSANCmRpZW4gaGF0IG5oYW4gZ2FuIGJpZW4gZ2lvaSBjdWEgdGEgdm9pIG11 YyB0aWV1IHNlIGJhbiBkaWVuIGNobyB0YSB2YSB0aHVjIHRlIGhpZW4gbmF5IHRhIA0KZGFuZyBw aGFpIG11YSBkaWVuIGN1YSBobyB2b2kgZ2lhIGNhbyBob24gZ2lhIG11YSBkaWVuIHRyb25nIG51 b2MuIFZheSBybyByYW5nIGRhbmcgY28gDQpuZ3V5IGNvIHRhIHNlIGJpIHBodSB0aHVvYyB2YW8g bmd1b24gZGllbiBjdWEgVHJ1bmcgUXVvYyB2YSBuZXUgdmF5IHRoaSBhbiBuaW5oIG5hbmcgDQps dW9uZyBjbyBuZ3V5IGNvIGJpIGhlIGx1eSB2aSBzdSBwaHUgdGh1b2MgbmF5Lg0KDQpUb2kgeGlu IGNvIHkga2llbiB2ZSAzIHZhbiBkZSBuZXUgdHJlbiwgeGluIGNhbSBvbiBRdW9jIGhvaS4gDQoN Cmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2UvdmlldG5hbS8yMDEwLzExLzEwMTExN19n b3ZfY29tbWVudHMuc2h0bWwgMTQ6NTkgR01UIC0gdGh1IHR1LCAxNyB0aGFuZyAxMSwgMjAxMCAN Cg0KVGh1IHR1b25nOiBDaGluaCBwaHUgY2FuaCBjYW8gcXVvYyBob2k/IA0KDQpUcmFuZyB3ZWIg Y3VhIENoaW5oIHBodSBWaWV0IE5hbSBjaG8gZGFuZyBsb2F0IGJhIGJhaSBwaGUgcGhhbiBtb3Qg c28gZGFpIGJpZXUgcXVvYyANCmhvaSBjbyBkYXUgaGlldSBsYW0gcXV5ZW4gdmEgZ2F5IGhvYW5n IG1hbmcgZHUgbHVhbi4NCg0KQmEgYmFpIHZpZXQgY3VhIG1vdCB0aWVuIHN5LCBtb3QgY3VhIG1v dCBuaGEgYmFvLCB2YSBtb3QgYmFpIHRyaWNoIGRhbiBsb2kgY3VhIG1vdCBwaG8gDQpnaWFvIHN1 LCB0aWVuIHN5IGtpZW0gbmhhIHRobyBkZXUgY2hpIHRyaWNoIGNhYyBkYWkgYmlldSBxdW9jIGhv aSBtYSBobyBraG9uZyBuZXUgdGVuLg0KDQpCYWkgY3VhIFRpZW4gc3kgRGluaCBUaGUgQ3Vvbmcg bm9pIGNhYyBkYWkgYmlldSBxdW9jIGhvaSAiZGEgZGFuaCBnaWEgdGluaCBoaW5oIHRodWMgDQpo aWVuIE5naGkgcXV5ZXQgY3VhIFF1b2MgaG9pIHZlIGtpbmggdGUgLSB4YSBob2kgbmFtIDIwMTAg cmFuZyAnbWF0IHRvdCBsYSBjbyBiYW4sIHh1eWVuIA0Kc3VvdCBtb2kgbWF0IGN1YSBkb2kgc29u ZyBraW5oIHRlIC0geGEgaG9pIi4gDQpUYWMgZ2lhIHZpZXQgdGllcDoNCiJUaGF0IGRhbmcgdGll YyBkYSBjbyBoaWVuIHR1b25nIG1vdCBzbyBkYWkgYmlldSBkYSBjbyBiaWV1IGhpZW4gbmh1IG11 b24gbGFtIGR1bmcgDQpkaWVuIGRhbiwgZHVhIHJhIG5odW5nIG5oYW4gZGluaCBoYXkgdGhvbmcg dGluIG5oaWV1IG1hdSBzYWMgY2h1IHF1YW4sIGNhbSB0aW5oLCBjb24gDQpjaHVhIGR1b2Mga2ll bSBjaHVuZyBob2FjIHZlIG5odW5nIGxpbmggdnVjIGtob25nIHBoYWkgY2h1eWVuIG1vbiBzYXUg Y3VhIG1pbmggbmVuIA0Ka2hvIGNvIHRoZSBwaGFuIGRpbmggY2h1YW4geGFjLCB0aGFtIGNoaSBj YSBuaHVuZyBraWVuIG5naGkga2hvbmcgbWFuZyB0aW5oIHhheSBkdW5nLCANCmdheSBuZW4gbmh1 bmcgZHUgbHVhbiBraG9uZyB0b3QgdHJvbmcgeGEgaG9pLg0KDQoiRG9uIGN1IG1vdCB0aGkgZHUs IGRhIGNvIHkga2llbiBjaG8gcmFuZywgaGllbiBuYXkgVmluYXNoaW4gdmF5IG5vIHRvaSA4NiBu Z2hpbiB0eSBkb25nIA0KdmEgdG9hbiBibyBuZ3VvbiB2b24gbmF5IGRhIG1hdC4gVGhlIG5odW5n LCBzdSB0aGF0IGxhLCBuaHUgQm8gdHJ1b25nIEJvIFRhaSBjaGluaCBWdSANClZhbiBOaW5oIGNo byBiaWV0LCB0aGVvIGNhYyBzbyBsaWV1IEJvIFRhaSBjaGluaCBuYW0gZHVvYyBjdWEgSG9pIGRv bmcgUXVhbiB0cmkgDQpWaW5hc2hpbiBiYW8gY2FvIEJhbiBjaGkgZGFvIHRhaSBjbyBjYXUsIHRo aSBkZW4gdGhvaSBkaWVtIDMwLzYvMjAxMCBzbyBubyBjdWEgVmluYXNoaW4gDQpsYSA4Ni4wMzEg dHkgZG9uZywgbmh1bmcgdGFpIHNhbiB0cmVuIHNvIHNhY2ggaGllbiBuYXkgY3VhIFZpbmFzaGlu IGxhIDEwMy43NzQgdHkgZG9uZy4NCiJOaHUgdmF5LCB0aWVuIHZheSBkYW5nIG5hbSB0cm9uZyBj YWMgdGFpIHNhbiwgY2FjIGR1IGFuLCBjaHUga2hvbmcgcGhhaSBkYSB0YW4gdGhhbmggbWF5IGto b2kgdGF0IGNhLiIgDQoNClR1eSBuaGllbiBiYWkgYmFvIGtob25nIG5vaSBzbyB0YWkgc2FuIGN1 YSBWaW5hc2hpbiBkbyBhaSBkaW5oIGdpYSwga2hhIG5hbmcgdHUgdHJhIG5vIG1hIA0Ka2hvbmcg Y2FuIG5obyB0b2kgdm9uIG5nYW4gc2FjaCBjdWEgVmluYXNoaW4gcmEgc2FvIHZhIHRpbmggaGlu aCBraW5oIGRvYW5oIGxvaSBsbyBjdWEgDQpkYWkgZG9hbmggbmdoaWVwIG5heSBuaHUgdGhlIG5h by4NCg0KVmEgbWFjIGR1IGJhaSBiYW8ga2hvbmcgbmV1IHRlbiBiYXQga3kgZGFpIGJpZXUgcXVv YyBob2kgbmFvLCBuZ3VvaSB0YSBjbyB0aGUgaGlldSBkb2kgDQp0dW9uZyBkdW9jIG5oYW0gdG9p IGxhIEdpYW8gc3UgTmd1eWVuIE1pbmggVGh1eWV0LCBuZ3VvaSBkYSB5ZXUgY2F1IGxhcCB1eSBi YW4gY3VhIA0KcXVvYyBob2kgZGUgZGlldSB0cmEgdnUgVmluYXNoaW4gdmEgc2F1IGRvIGJvIHBo aWV1IHRpbiBuaGllbSBUaHUgdHVvbmcgdmEgbmh1bmcgbmd1b2kgDQpjbyBsaWVuIHF1YW4gdHJv bmcgdnUgbmF5Lg0KDQpUcmEgbG9pIEJCQyBob2kgZGF1IHRoYW5nIG5heSwgQmFtIEdpYW8gc3Ug VGh1eWV0IG5vaTogDQoiUXVvYyBob2kgYmF1IHJhIHRodSB0dW9uZywgUXVvYyBob2kgcGhlIGNo dWFuIENoaW5oIHBodSB0aGkgQ2hpbmggcGh1IHBoYWkga2llbSANCmRpZW0gdHJ1b2MgUXVvYyBo b2kgdmEgUXVvYyBob2kgcGhhaSBxdXlldCBkaW5oIGhpbmggdGh1YyBreSBsdWF0IGRvaSB2b2kg Y2FjIHRoYW5oIA0KdmllbiBjaGluaCBwaHUuDQoiVmEgY28gdGhlIG5vaSByYW5nIGNoaSBjbyBR dW9jIGhvaSBtb2kgY28gZHUgdGhhbSBxdXllbiBsYW0gbmh1bmcgdmllYyBheSBjaHUgY29uIA0K a2hvbmcgdGhlIG5hbyBub2kgcmFuZyBjbyBxdWFuIGRpZXUgdHJhIGN1bmcgY28gdGhlIGxhbSBk dW9jIG5odW5nIHZpZWMgbmh1IHRoZS4iDQoNCidEb25nIHRodWFuIGVwIGJ1b2MnDQoNCkxvYXQg YmFpIGN1YSB0cmFuZyB3ZWIgQ2hpbmggcGh1IGRhIGJpIFRpZW4gc3kgTmd1eWVuIFF1YW5nIEEs IG5ndXllbiBWaWVuIHRydW9uZyANClZpZW4gTmdoaWVuIGN1dSBQaGF0IHRyaWVuIElEUyBkYSB0 dSBnaWFpIHRoZSwgcGhhbiBiYWMuDQoNCihBbmg6IFRpZW4gc3kgTmd1eWVuIFF1YW5nIEEgbm9p IGNhbiB0b24gdHJvbmcgeSBraWVuIGN1YSB0aGlldSBzbykgDQoNClRyb25nIGJhaSBkdW9jIGRh bmcgdGFpIHRyZW4gbWFuZywgb25nIHZpZXQ6IA0KIk5ndW9pIHRhIGhheSBub2kgbXVvbiBwaGF0 IHRyaWVuIGNhbiBzdSBkb25nIHRodWFuLiBUaHVjIHJhLCBuZXUgbHVvbiBsdW9uIGNvIHN1IGRv bmcgDQp0aHVhbiB0aGkgeGEgaG9pIGtob25nIHRoZSBwaGF0IHRyaWVuIGR1b2MuDQoiQ2hvIG5l biB4aW4gZHVuZyBsYW0gZHVuZyAic3UgZG9uZyB0aHVhbiIgZGUgdHJhbiBhcCBoYXkgZGUgZG9h IG5odW5nIG5ndW9pIGNvIHkgDQpraWVuIGtoYWMgbWluaC4NCiJTdSBkb25nIHRodWFuIGRhdCBk dW9jIHRoZW8gY2FjaCBuaHUgdmF5IGNoaSBsYSAic3UgZG9uZyB0aHVhbiBlcCBidW9jIiB2YSB2 aSB0aGUgbGEgDQpnaWEgaGlldSB2YSB2byBjdW5nIHRhaSBoYWkgY2hvIHN1IHBoYXQgdHJpZW4g Y3VhIGRhdCBudW9jLiINCg0KVGllbiBzeSBRdWFuZyBBIHZpZXQgdGllcDoNCiJLaG9uZyBhaSwg aGF5IGtob25nIGNvIHF1YW4gbmFvLCBraG9uZyBtYWMgc2FpIGxhbSBjYS4NCiJDYWkga2hhYyBu aGF1IGxhIG8gY2hvIGNvIG5ndW9pLCBjbyBjbyBxdWFuIGJpZXQgbGFuZyBuZ2hlIGRlIHN1YSBj aHVhLCBoYXkgdHJhbmggbHVhbiANCmxhaSBtb3QgY2FjaCB4YXkgZHVuZyB2b2kgbmh1bmcgbmd1 b2kgcGhlIHBoYW4gbWluaCBkZSBjYSBoYWkgY3VuZyBoaWV1IGR1bmcgaG9uLCANCmN1bmcgbGFt IHRvdCBob24gY29uZyB2aWVjIGN1YSBtaW5oLg0KIkRheSBsYSBjYWNoIHRhbyAiZG9uZyB0aHVh biIgdG90IG5oYXQsIG5ldSBjYW4gZGVuIGRvbmcgdGh1YW47IHZhIGN1bmcgbGEgbW90IG5vaSBk dW5nIA0KY290IHlldSBjdWEgZGFuIGNodTogdHJhbmggbHVhbiBjb25nIGtoYWksIHRvbiB0cm9u ZyB5IGtpZW4gdGhpZXUgc28uIg0KDQonQm9pIGxvbmcsIHRpbSB2ZXQnIA0KDQpCYWkgY3VhIG5o YSBiYW8gTmd1eWVuIENoaW5oIHRyZW4gdHJhbmcgd2ViIENoaW5oIHBodSBWaWV0IE5hbSB0aGkg dmlldDogDQoiRGFuZyB0aWVjIGNvIG1vdCBzbyBkYWkgYmlldSBraGkgZHVhIHJhIG5odW5nIHBo YXQgYmlldSBtYW5nIG5hbmcgdGluaCBjaHUgcXVhbiB2YSB2byANCmRvYW4gY3VhIG1pbmggdHJl biBkaWVuIGRhbiBRdW9jIGhvaSBkYSBraGllbiBjYWMgY3UgdHJpIHBoYWkga2luaCBuZ2FjIHZp IG8gZG8ga2hvbmcgDQp0aGUgaGllbiBtb3QgdGluaCB0aGFuIGtoYWNoIHF1YW4sIHhheSBkdW5n OyBtb3Qgc3UgaGlldSBiaWV0IHRoYXUgZGFvIHZhbiBkZSBtaW5oIGRlIA0KY2FwIGRlbiwgbWEg Y2hpIGNvdCBiYXkgdG8gY2hvIGR1b2MgdGhhaSBkbyBjaHUgeWV1IHBodSBkaW5oIGRvaSB2b2kg Y2FjIG5vIGx1YyB0aGFvIGdvIA0Ka2hvIGtoYW4gY3VhIGNvIHF1YW4gaGFuaCBwaGFwIGhheSBj YWMgbmhhbiB2YXQgY28gdHJhY2ggbmhpZW0gdGhlbyBwaGFuIGNvbmcgY29uZyANCnRhYy4NCiJU aGFtIGNoaSBjbyBuaHVuZyB5IGtpZW4sIGR1b2MgaGluaCB0aGFuaCB0cmVuIG5odW5nIHRob25n IHRpbiBraG9uZyBjaHVhbiB4YWMsIA0KY2h1bmcgY2h1bmcsIG1hbmcgbmFuZyB0aW5oIGhpbmgg dGh1YyBob2FjIGNodWEgZHVvYyBraWVtIGNodW5nLCBuZW4gZGEgbWFuZyBtYXUgDQpzYWMgZGFu IHR1eSwgbm9pIGxheSBkdW9jLCBjaHUga2hvbmcgbmhhbSBtdWMgZGljaCBjdW5nIGtpZW4gdGFv IGhpZXUgcXVhIGRpY2ggdGh1YyANCmNobyBjb25nIHZpZWMgY2h1bmcuIA0KIkNvIGRhaSBiaWV1 LCB0dXkgbGEgdHJpIHRodWMgbmh1bmcga2hpIHBoYXQgYmlldSBjb25nIGtoYWkgbGFpIGtob25n IGR1YSB0cmVuIGNhYyBsdWFuIA0KY2h1bmcga2hvYSBob2MgbWEgY2h1IHlldSBsYWkgbnVvbmcg dGhlbyB0YW0gbHkgY3VhIG1vdCBibyBwaGFuIG1hbmcgbmFuZyBhYyBjYW0gDQp2b2kgdGh1YyB0 ZSBraGFjaCBxdWFuLi4udGhlbyBraWV1IG1hIGRhbiBnaWFuIHRodW9uZyBsZW4gYW4gZ29pIGxh ICJib2kgbG9uZywgdGltIHZldCIuDQoiTmh1bmcgcGhhdCBuZ29uIG5odSB0aGUsIGtlbyB0aGVv IGNhY2ggdGhvbmcgdGluIGdpYXQgZ2FuLCBjYXUga2hhY2ggY3VhIG1vdCBzbyANCnBodW9uZyB0 aWVuIHRob25nIHRpbiBkYWkgY2h1bmcgY2h1eWVuIHRob2kgcGhvbmcgdGhvbmcgdGluIGxlbiBo b2FjIG5vaSBuZ3VvYyBtb2kgYW4uIA0KRG8gbGEgbW90IHRodWMgdHJhbmcgcmF0IGRhbmcgbG8g bmdhaSwga2hvbmcgbmVuIGRlIHRpZXAgZGllbi4iDQoNCk1vdCBjYXkgdmlldCBraGFjLCBWaWV0 IEhhaSwgY3VhIHRyYW5nIHdlYiBDaGluaCBwaHUgZGEgZGFuIGxvaSBjdWEgR2lhbyBzdSwgVGll biBzeSBWdSANCkR1eSBUaG9uZywgbmd1b2kgY3VuZyBsYSBuaGEgdGhvLCBuaGEgYmFvIG5vaTog DQoiQ28gZGFpIGJpZXUgY2Ega2hvYSBraG9uZyBtb3QgbGFuIHBoYXQgYmlldSBuaHVuZyBjbyBk YWkgYmlldSBreSBob3AgbmFvIGN1bmcgcGhhdCANCmJpZXUsIHRoYW0gY2hpIHRoYW8gbHVhbiB2 ZSB2YW4gZGUgZ2kgY3VuZyBwaGF0IGJpZXUsIGRpIHJhdCBzYXUgdmFvIGNodXllbiBtb24gZHUg DQpjaHV5ZW4gbW9uIGRvIHJhdCB4YSB2b2kgY2h1eWVuIG1vbiBnb2MgY3VhIGhvLg0KIlRyb25n IGtoaSBwaGF0IGJpZXUsIG1vdCB2YWkgbmd1b2kgY29uIGR1YSByYSBuaHVuZyBzdSBraWVuLCBz byBsaWV1IGNodWEgZHVvYyBraWVtIA0KY2h1bmcsIGNvIHRpbmggY2FtIHRpbmgsIHN1eSBkaWVu IGNodSBxdWFuLCBoaWV1IGJpZXQgdmUgbHVhdCBraG9uZyB0aGF0IGRheSBkdS4iDQoNCk1vdCBz byBiYW8gbWFuZyB2YSB0cmFuZyBkaWVuIHR1IGN1YSBjYWMgZGlhIHBodW9uZyBjdW5nIGRhIGNo byBkYW5nIGxhaSBjYWMgYmFpIGJhbyBuYXkuIA0KQmEgYmFpIGJhbyBkdW9jIGRhbmcgdHJlbiB0 cmFuZyB3ZWIgQmFvIGRpZW4gdHUgY3VhIENoaW5oIHBodSBWaWV0IE5hbSwga2hpZW4gZ2lvaSAN CnF1YW4gc2F0IGRhdCBjYXUgaG9pIHBoYWkgY2hhbmcgbm8gcGhhbiBhbmggcXVhbiBkaWVtIGNo aW5oIHRodWMgY3VhIG5vaSBjYWMgY3VhIG9uZyBOZ3V5ZW4gVGFuIER1bmcuIA0KDQpodHRwOi8v dHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTEwLTE5LW11b24tcXVvYy1ob2ktdGh1Yy1x dXllbi1kYWktYmlldS1waGFpLWNvLWNoaW5oLWtpZW4tIERvbmcgSGFpDQoNCk11b24gUXVvYyBo b2kgdGh1YyBxdXllbiwgZGFpIGJpZXUga2llbiBxdXlldCBuZXUgY2hpbmgga2llbiANCg0KQ28g dGhlIHhlbSBraG9uZyBraGkgc29pIG5vaSB0cmVuIG5naGkgdHJ1b25nIHZhIGNhIG5nb2FpIGhh bmggbGFuZyB0cm9uZyB2YWkga2hvYSBnYW4gDQpkYXkgY2hvIHRoYXkgbW90IFF1b2MgaG9pIGRh bmcgZG9pIG1vaSB2YSBkYW4gY2h1IGhvbiB0cm9uZyB0cmFuaCBsdWFuIHRoYXkgdmkgYmkgY3Ug dHJpIA0KY2hpIHRyaWNoICJkaSBob2EgdmkgcXV5IiBjaGkgImdhdCIgaG9hYyAidSIuDQoNCkFp IGRvIGRhIG5vaSBtb3QgY2F1IHJhdCB0aGFtIHRoaWEgcmFuZywgc2Uga2hvIGNvIG1vdCBRdW9j IGhvaSAoUUgpIGhpZXUgcXVhIG5ldSBuaHUgDQpkb25nIHRpbmggdm9pIG1vaSBxdXlldCBkaW5o ICJkYSByb2kiIGN1YSBDaGluaCBwaHUuIE1vdCBraGkgZGFpIGJpZXUgY2h1YSBjYW0gdGhheSAN CiJzdWMgbWFuaCIgY3VhIG1pbmgsIHRoaSBjaHVuZyB0byBRSCB2YW4gY2h1YSB0aHVjIGhpZW4g dG90IHZhaSB0cm8gImNvIHF1YW4gcXV5ZW4gbHVjIA0KY2FvIG5oYXQiIGR1b2MgY3UgdHJpIGRh dCBuaWVtIHRpbiB2YSBjbyBib24gcGhhbiB0aHVjIGhpZW4gbmllbSB0aW4gYXkuDQoNCkhhbiBy YW5nIG5odW5nIGFpIHRoZW8gZG9pIGNoYWMgc2Uga2hvbmcgcXVlbiBzdSBraWVuIFF1b2MgaG9p IFZpZXQgTmFtICJiYWMiIGNodSANCnRydW9uZyB4YXkgZHVuZyB0dXllbiBkdW9uZyBzYXQgY2Fv IHRvYyBCYWMtTmFtLCBtb3QgZHUgYW4gbG9uIGRvIGNoaW5oIHBodSBkZSB0cmluaCANCnRyb25n IGt5IGhvcCB0aHUgNyBob2kgZGF1IG5hbSBuYXkuDQoNCktob25nIGtoaSBzb2kgbm9pIHRyZW4g bmdoaSB0cnVvbmcgdmEgbmdvYWkgaGFuaCBsYW5nIFFIIGx1YyBkbyBkYSBjaG8gdGhheSBtb3Qg UUggDQpkb2kgbW9pIHZhIG5nYXkgY2FuZyBkYW4gY2h1IHRoYXkgdmkgY2FjIGRhaSBiaWV1IGNo aSBiaWV0IGdpbyB0YXkgdGFuIHRoYW5oIDEwMCUgYmF0IGN1IA0KY2h1IHRydW9uZywgbmdoaSBx dXlldCBuYW8gY3VhIGNoaW5oIHBodS4NCg0KVm9pIGRvaSBzb25nIGNoaW5oIHRyaSBuaGlldSBu dW9jLCB2aWVjIGtob25nIHRpbSBkdW9jIHRpZW5nIG5vaSBjaHVuZyBnaXVhIGhhbmggcGhhcCAN CnZhIGxhcCBwaGFwIGtoaSB0aGFvIGx1YW4gbW90IHZpZWMgbmFvIGRheSBsYSBjaHV5ZW4gaGV0 IHN1YyBiaW5oIHRodW9uZywgbmh1bmcgdm9pIA0KbnVvYyB0YSBrZXQgcXVhIHBodSBxdXlldCBj dWEgY2FjIHZpIGRhaSBiaWV1IFFIIHZvaSBjaHUgdHJ1b25nIGxhbSBkdW9uZyBzYXQgY2FvIHRv YyANCmR1b2MgeGVtIG5odSBsYSBtb3QgY2FpIGdpIGRvIGJhdCBiaW5oIHRodW9uZy4NCg0KU28g ZGkgbmhpZXUgbmd1b2kgY28gdGFtIHRyYW5nIG5odSB2YXkgdmkgY3UgdHJpIHRodW9uZyBkYW5o IGdpYSB2ZSBjYWMgZGFpIGJpZXUgY3VhIA0KbWluaCBjaHUgeWV1IHRob25nIHF1YSB2aWVjIHRo ZW8gZG9pIGNhYyB2aSBheSBwaGF0IGJpZXUgdHJlbiBkaWVuIGRhbiBRdW9jIGhvaS4gTWEgbGF1 IA0KbmF5IGRheSBkbyB0cm9uZyBkdSBsdWFuIG1hYyBkaW5oIHkgbmdoaTogImNoaW5oIHF1eWVu IGx1b24gZHVuZywgZHVvbmcgbmhpZW4gZHVuZywgDQpiYW8gZ2lvIGN1bmcgZHVuZyIgY29uIGRh aSBiaWV1IFFIIGl0IGNvIGNoaW5oIGtpZW4sIHRydW9jIGNhYyBkZSB0cmluaCBjdWEgY2hpbmgg cGh1IA0KdGh1b25nIGNoaSAiZ2F0IiB2YSAidSIuDQoNClR1IHRodWMgdGUgbmF5LCBtb3Qgbmhh IGJhbyBiaW5oIGx1YW46ICJkYSBzbyBEQlFIIGN1YSB0YSBsYSB0aW5oIGhpZW4sIGhpZXUgdGhl byBuZ2hpYSANCml0IG5vaSwgaXQgcGhhdCBiaWV1IHRyb25nIHBoaWVuIGhvcCB0b2FuIHRoZSwg dmEgaXQgdGllcCB4dWMgYmFvIGNoaSIuDQoNClhlbSByYSBjdW5nIGNvIGx5LCB2aSBtb2kga2hv YSwgdHJvbmcgZ2FuIDUwMCBEQlFILCB0aHVvbmcgY2hpIG5vaSBsZW4gdmFpIGd1b25nIG1hdCAN CnRpZXUgYmlldS4gIk5oYXQgTmdvYW4sIG5oaSBUcmFuLCB0YW0gTGFuLCB0dSBRdW9jIi0gY2F1 IG5nYW4gbmd1IHR1bmcgcmF0IG5vaSB0aWVuZy4gDQpCb24gdmkgZGFpIGJpZXUgUUggZHVvYyBu aGFjIGRlbiBjaGluaCBsYTogRG8gVHJvbmcgTmdvYW4sIE5ndXllbiBOZ29jIFRyYW4sIA0KTmd1 eWVuIExhbiBEdW5nIHZhIER1b25nIFRydW5nIFF1b2MgY3VhIG5oaWVtIGt5IFFIIGtob2EgWEku DQoNCkNvbiBuZXUgbm9pIHZlIG5odW5nIGd1b25nIG1hdCB0aWV1IGJpZXUgdHJvbmcga2hvYSBu YXksIHNvIGx1b25nIGRhaSBiaWV1IGRlIG5oYW4gYmlldCANCmN1bmcgY2hpIHZhaSB2aS4gRG8g bGEgY2FjIGRhaSBiaWV1IE5ndXllbiBNaW5oIFRodXlldCwgTGUgUXVhbmcgQmluaCwgTmd1eWVu IERpbmggDQpYdWFuLi4uIA0KDQpDdSB0cmkgbmhvIGRlbiBEQlFIIE5ndXllbiBNaW5oIFRodXll dCB2aSBkYSBkYW0gZHVuZyBsZW4gY2hhdCB2YW4gZGVuIGN1bmcgdnUgDQpQQ0kgdHJvbmcgYm9p IGNhbmggc3UgdmllYyBuYXkgY29uIGRhbmcgcmF0IGl0IHRob25nIHRpbiB2YSBpdCBkdW9jIG5o YWMgZGVuIHZpIG5oYXkgY2FtLg0KQ29uIHZvaSBEQlFIIExlIFF1YW5nIEJpbmgsIG9uZyBub2kg YmF0IHZpIGRhbSB0cnV5IGNoaW5oIHBodSB2ZSB2aWVjIGNobyBudW9jIA0KbmdvYWkgdGh1ZSBy dW5nLiBPbmcgQmluaCBjb24gZ2hpIGRpZW0ga2hpIHRoYW5nIHRoYW4gcGhhbiBiaWVuIGxhaSBz byBsaWV1IGJhbyBjYW8gY3VhIA0KY2hpbmggcGh1IGJhbmcgY2hpbmggY2h1eWVuIGRpIHRodWMg ZGlhIGN1YSBvbmcuDQoNCktob25nIGNvIGdpIHBoYWkgYmFuIGNhaSwgaG8gbGEgbmh1bmcgbmd1 b2kgZHVvYyBjb25nIGNodW5nIG5oYW4gYmlldC4gRGlldSBuYXkgaGV0IA0Kc3VjIHF1YW4gdHJv bmcgdm9pIGNoaW5oIGtoYWNoLg0KDQpTZSBraG9uZyBraG8gZGUgbmhhbiByYSwgbmh1bmcgdmFu IGRlIG1hIGNhYyBEQlFIIG5ldSwgcm8gcmFuZyBraG9uZyBoZSBjbyB0cm9uZyANCm5naGkgdHJp bmggUUgsIG5odW5nIGJhbmcgYmFuIGxpbmggY2hpbmgga2hhY2gsIGNhYyB2aSBuYXkgZGFtIHZ1 b3QgcXVhIHJhbyBjYW4gdm8gDQpoaW5oLCBuaHVuZyBzdXkgbmdoaSB0aGlldCBob24sIGR1YSBi YW5nIGR1b2Mgbmh1bmcgdmFuIGRlIGRhbiBzaW5oIGJ1YyB4dWMsIGN1IHRyaSBndWkgDQpnYW0g bGVuIGJhbiBuZ2hpIHN1Lg0KDQpLaG9uZyBjaGkgc2FuZyBjaG9pIGtoaSB0aGFvIGx1YW4gdHJv bmcgY2FjIHBoaWVuIG5naGkgdHJpbmggY2hpbmggdGh1YywgaG8gY29uIG5vaSBiYXQgDQpnaXVh IGhhbmcgdHJhbSBEQiBraGFjIGJlbiBoYW5oIGxhbmcgUXVvYyBob2kga2hpIG1hbmggZGFuIHRy YSBsb2kgY2FjIGNhdSBob2kga2hhIGdhaSANCmdvYyBjdWEgYmFvIGdpb2kgdHJvbmcgY2FjIGdp byBnaWFpIGxhby4NCg0KSG9hdCBkb25nIGhhbmggbGFuZyBtYWMgZHUga2hvbmcgbmFtIHRyb25n IG5naGkgdHJpbmggbmh1bmcgY3VuZyBkdW9jIHhlbSBsYSBtb3QgDQpoaW5oIHRodWMgc2luaCBo b2F0IGNoaW5oIHRodWMgY3VhIGRvaSBzb25nIG5naGkgdHJ1b25nLiBOZXUgZGUgeSBzZSB0aGF5 IG1vaSBraGkgcGhhdCANCmJpZXUgdHJlbiBob2kgdHJ1b25nLCBuaGlldSB2aSBkYWkgYmlldSBj byB0aG9pIHF1ZW4sIHRodW9uZyBoYXkgbm9pLCAibyBkb24gdmkgdG9pIHRoZSANCm5heSIsICJv IGRvbiB2aSB0b2kgdGhlIGtpYS4uLi4iLiBOaHVuZyBjdW5nIGNoaW5oIG5odW5nIHZhbiBkZSBk byBraGkgZHVvYyBuZXUgcmEgYmVuIA0KaGFuaCBsYW5nIHRodW9uZyBpdCB0aGF5IGNhaSBkb24g dmkgZGlhIHBodW9uZyBjaHVuZyBjaHVuZyBudWEsIHRoYXkgdmFvIGRvIGxhIGNoaW5oIA0KZGFu aDogInRvaSBraG9uZyBkb25nIHkiLCAidG9pIGtob25nIHRhbiB0aGFuaC4uLi4iLiBDaGluaCBu aHVuZyBwaGF0IGJpZXUgbWFuaCBsYWMsIA0KdGhhdSB0byBheSBjaG8gdGhheSBzdXkgbmdoaSBk b2MgbGFwIGN1YSBjYWMgdmkgREIgZGFuIGN1IG5nYXkgY2FuZyBybyBuZXQgaG9uLg0KDQoiUXVv YyBob2kgaGF5IG5naGkgdmllbiBsYSBub2kgZGUgbm9pLiBUaHVjIHJhLCBjYWMgdmkgZGFpIGJp ZXUgUUggZGVuIG5naGkgdHJ1b25nIGNodSANCnlldSBkZSBsYW0gYmEgdmllYzogbmdoZSwgcGhh dCBiaWV1IHZhIGJpZXUgcXV5ZXQuIFZpZWMgbmdoZSByYXQga2hvIGtpZW0gdHJhLiBWaWVjIGJp ZXUgDQpxdXlldCBjdW5nIHZheSAobyBjYWMgbnVvYywgY2FjIG5naGkgc2kgYmlldSBxdXlldCBu aHUgdGhlIG5hbyBkZXUgZHVvYyBjb25nIGtoYWkgZGUgDQpjdSB0cmkgZ2lhbSBzYXQsIG8gdGEs IHlldSBjYXUgbmF5IGNodWEgZHVvYyBkYXQgcmEpLiBOaHUgdmF5LCBxdWFuIHRyb25nIG5oYXQg dmFuIGxhIA0KdmllYyBwaGF0IGJpZXUuIFBoYXQgYmlldSB2aSB2YXkgdHJvIHRoYW5oIGt5IG5h bmcgcXVhbiB0cm9uZyBuaGF0IGN1YSB2aWVjIGxhbSBkYWkgYmlldS4gDQpLeSBuYW5nIGN1YSBi b24gdmkgZGFpIGJpZXUgUUggbm9pIHRyZW4gcGhhaSBub2kgbGEgbGFvIGx1eWVuLiBWYSBkYXkg Y3VuZyBsYSBtb3QgdXUgdGhlIA0KcmF0IGxvbiB0cm9uZyBob2F0IGRvbmcgbmdoaSB0cnVvbmci LCBvbmcgTmd1eWVuIFN5IER1bmcsIFBobyBDaHUgbmhpZW0gVmFuIHBob25nIA0KUUggZGEgdmll dCBuaHUgdmF5IHRyb25nIG1vdCBiYWkgYmFvLg0KDQpLaG9uZyB0aGUgbm9pIHRhdCBjYSBjYWMg dmFuIGRlIGtodWMgbWFjIGRldSBkdW9jIGdpYWkgcXV5ZXQgdHJvbmcgY2FjIHBoaWVuIHRoYW8g bHVhbi4gDQpWYSBjdW5nIGtob25nIHRoZSBub2kgY2FjIERCUUggc2UgY28gcXV5ZXQgZGluaCBk dW5nIGRhbiBuaGF0IGNoaSBxdWEgY2FjIHBoaWVuIHRoYW8gDQpsdWFuLiBUcm9uZyBraGkgZGUg Y28gdGhlIGRpIGRlbiBtb3QgcXV5ZXQgZGluaCBkdW5nIGRhbiBjbyBxdWEgbmhpZXUgeWV1IHRv IGtoYWMgY2hpIA0KcGhvaS4gVmEgY3VuZyBkbyBnaW9pIGhhbiB2ZSB0aG9pIGdpYW4sIG1vaSBE QiBkbyBjaGkga2hvYW5nIDcgcGh1dCBuZ2FuIG5ndWkgcGhhdCANCmJpZXUgY29uZyBraGFpIHRy ZW4gSG9pIHRydW9uZyBkZSB0aHV5ZXQgcGh1YyBRSCBjdW5nIG5odSBDUC4NCg0KVmllYyBkdXkg dHJpIHRpZXAgeHVjIHZvaSBjYWMga2VuaCBiYW8gY2hpIGRlIHRydXllbiB0YWkgdGhvbmcgdGlu IHRvaSBjb25nIGx1YW4sIHBoYWkgbGEgDQptb3QgcGhhbiB2aWVjIGR1b25nIG5oaWVuIGN1YSBk YWkgYmlldSBkYW4gY3UgY2h1eWVuIG5naGllcC4gUGhhdCBiaWV1IG5nb2FpIGhhbmggDQpsYW5n IGN1bmcgbGEgbGEgbW90IHRyb25nIGNhYyBjYWNoIGRlIGRhaSBiaWV1IHRodWMgaGllbiBxdXll biBnaWFtIHNhdCB2YSBwaGFuIGJpZW4gDQpjdWEgbWluaCwgYnVvYyBoYW5oIHBoYXAgcGhhaSBo b2F0IGRvbmcgaGlldSBxdWEgaG9uLiBDYW5nIGNvIG5oaWV1IGhvYXQgZG9uZyBoYW5oIA0KbGFu ZyBuaHUgdmF5IGNhbmcgdGhlIGhpZW4gbW90IFFIIGNodSBkb25nLCBtYW5oIGRhbiwgZGFuIGNo dSB2YSBjbyBjaGluaCBraWVuLiANCkRvIGtob25nIGNoaSBsYSBxdXllbiBtYSBjb24gbGEgdHJh Y2ggbmhpZW0gY3VhIHR1bmcgZGFpIGJpZXUgUUguDQoNCk5odW5nIG5vaSBuaHUgdGhlIGtob25n IGNvIG5naGlhLCBkZSB0cm8gdGhhbmggbW90IGNoaW5oIGtoYWNoIGNvIHV5IHRpbiBsYSBjaHV5 ZW4gDQpoYXkgZHVvYyBsZW4gdGkgdmksIGR1b2MgaW4gaGluaCBsZW4gbWF0IGJhbyBuaGlldSBo YXkgaXQgbWEgY2FpIHRydW9jIG5oYXQgY2hpbmggbGEgc3UgDQpydW5nIGNhbSB0cnVvYyBoaWVu IHRodWMgZG9pIHNvbmcgY3VhIGNoaW5oIG5odW5nIG5ndW9pIGJhdSByYSBtaW5oOyBsYSB2aWVj IG1vaSBkYW4gDQpiaWV1IGNvIHZ1b3QgcXVhIGR1b2Mgbmh1bmcgc3V5IG5naGkgdGhpZXQgaG9u IHRhbSB0aHVvbmcsIGNvIGNoaW5oIGtpZW4gdmEgYmFuIGxpbmggDQp0cmFuaCBsdWFuIGRlbiBj dW5nIG5odW5nIGdpIGRhbmcga2hpZW4gZHUgbHVhbiB4YSBob2kgYnVjIHh1YywgdHJhbiB0cm8u DQoNCk5odSB2YXksIHZpZWMgZGFpIGJpZXUgUUggZGFtIGNoYXQgdmFuLCBkYW0gdHJhbmggbHVh biBsYSB0aGUgaGllbiBxdXllbiBsdWMgdmEgdXkgdGluIA0KY3VhIGNvIHF1YW4gY2FvIG5oYXQg Y3VhIHF1eWVuIGx1YyBuaGEgbnVvYywgdGhlIGhpZW4gZGFuZyBjYXAgdmEgdHJhY2ggbmhpZW0g Y2hpbmggdHJpIA0KY3VhIG1vaSBjaGluaCBraGFjaC4gTWEgY2hlIHRhaSBjdWEgdHJhY2ggbmhp ZW0gY2hpbmggdHJpIG5heSB0cnVvYyBuaGF0IGxhIHN1IGJhdCB0aW4gbmhpZW0gY3VhIGN1IHRy aS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMTEvVnUtVmluYXNo aW4teWV1LWNhdS1iby1waGlldS10aW4tbmhpZW0tdGhhbmgtdmllbi1DaGluaC1waHUtOTQ1MzUz LyBMZSBOaHVuZyBIb2FuZyBMb25nIDA5OjU5LCAwMS8xMS8yMDEwIChHTVQrNykNCg0KREJRSDog UXV5ZXQgbGlldCB0cnV5IHRyYWNoIG5oaWVtIHZ1IFZpbmFzaGluIA0KDQotIFBoaWVuIHRoYW8g bHVhbiBraW5oIHRlIC0geGEgaG9pIHRvYW4gdGhlIHNhbmcgbmF5ICgxLzExKSBkdW9jIGRhIHRy byB0aGFuaCBjdW9jIA0KInRydXkiIHRyYWNoIG5oaWVtIHF1eWV0IGxpZXQgbGllbiBxdWFuIGRl biB2dSBWaW5hc2hpbi4gDQoNCkRlIHh1YXQgbGFwIFV5IGJhbiBsYW0gdGhvaSBkaWV1IHRyYSB0 cmFjaCBuaGllbSANCg0KVGh1b25nIHBoYXQgYmlldSBnYW4gbmh1IGN1b2kgY3VuZyBvIGNhYyBw aGllbiB0aGFvIGx1YW4sIG5odW5nIHJpZW5nIGxhbiBuYXksIERCUUggDQpOZ3V5ZW4gTWluaCBU aHV5ZXQgYmFtIG51dCBraGEgc29tIHZhIGRlIHh1YXQgY3VhIG9uZyBuZ2F5IHNhdSBkbyBkYSBu aGFuIGR1b2Mgc3UgDQpjb25nIGh1b25nIGN1YSBuaGlldSBkYWkgYmlldSBraGFjLg0KDQooQW5o OiBEQiBOZ3V5ZW4gTWluaCBUaHV5ZXQ6IEtob25nIHRoZSBuaGFuIHRyYWNoIG5oaWVtIGNodW5n IGNodW5nKSANCg0KVmkgUGhvIENodSBuaGllbSBVQiBWYW4gaG9hLCBnaWFvIGR1YywgdGhhbmgg dGhpZXUgbmllbiB2YSBuaGkgZG9uZyBRSCBub2ksIHZ1IA0KVmluYXNoaW4gZGEgdHJ1dCBsZW4g dmFpIGRvbmcgYmFvIG1pbmggbW9uIG5vIGtob25nIGR1b2kgMTAwLjAwMCB0eSBkb25nLCBtb24g bm8gbWEgDQptb3QgdGluaCBjbyB0aHUga2hvYW5nIDEuMDAwIHR5IGRvbmcgbW90IG5hbSBwaGFp IGxhbSBxdWFuIHF1YXQga2hvbmcgbXVhIHNhbSwgDQpraG9uZyBhbiB1b25nLCB4YXkgZHVuZyBn aSB0cm9uZyBzdW90IG1vdCB0aGUga3kgbW9pIGNvIHRoZSB0cmEgZHVvYy4gQ29uIHZvaSBkb25n IGJhbyANCm5oaWV1IG5vaSwgbmhhdCBsYSB0aW5oIG5naGVvIHRoaSBkZSB0cmEgbW9uIG5vIG5h eSBjbyBuZ2hpYSBsYSBjaGFtIGxhbSBkdW9uZywgeGF5IGNhdSwgDQpjb25nIHRyaW5oLCB4YXkg dHJ1b25nIGhvYywgYmVuaCB2aWVuLg0KDQpTYWkgcGhhbSB0cm9uZyBjaGkgZGFvIGRpZXUgaGFu aCBkYSBybyBuaHVuZyBjbyBtb3QgY2F1IGhvaSBkZW4gbmF5IHZhbiBjaHVhIGNvIGxvaSANCmdp YWkgZGFwLCBkbyBsYSBuZ29haSBsYW5oIGRhbyBWaW5hc2hpbiwgY29uIGFpIGNvIHRyYWNoIG5o aWVtLg0KDQpUaGVvIG9uZywgImNhYyB0aGFuaCB2aWVuIENoaW5oIHBodSBjdW5nIHBoYWkgbmdo aWVtIHR1YyBraWVtIGRpZW0gdmEgbmhhbiBreSBsdWF0IA0KdHJ1b2MgUXVvYyBob2kgbGEgY28g cXVhbiBkYWkgZGllbiBjdWEgbmd1b2kgZGFuIGJhdSByYSBtaW5oIGNodSBraG9uZyB0aGUgbmhh biB0cmFjaCANCm5oaWVtIG1vdCBjYWNoIGNodW5nIGNodW5nIHZhIHR1eWVuIGJvIGRhIGtpZW0g ZGllbSBub2kgYm8gbGEgeG9uZyIuDQoNCk5oYWMgbGFpIHZ1IGFuIExhIFRoaSBLaW0gT2FuaCB2 aSB0aGF0IHRob2F0IDEwMCB0eSBkb25nIG1hIG1vdCB2aSBCbyB0cnVvbmcgZGFuZyByYXQgDQpk dW9jIGxvbmcgZGFuIGRhIHBoYWkgeGluIHR1IGNodWMgdmEgaGFpIFRodSB0cnVvbmcgZGEgcGhh aSByYSB0cnVvYyB2YW5oIG1vbmcgbmd1YSwgDQpvbmcgVGh1eWV0IGtldCBsdWFuOiAiVmluYXNo aW4gbGEgbW90IGtpZXUgTGEgVGhpIEtpbSBPYW5oIG5odSB2YXkgbmh1bmcgcGhvbmcgZGFpIA0K Z2FwIDEuMDAwIGxhbiIuDQoNClV5IGJhbiBUdSBwaGFwIG5vaSBjbyBkYXUgaGlldSBiYW8gY2hl LCBuaHVuZyBhaSBiYW8gY2hlLCBiYW8gY2hlIHRoZSBuYW8sIG5oYW0gbXVjIA0KZGljaCBnaSB2 YSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gZ2kgdGhpIFV5IGJhbiBjaHVhIGNvIGRpZXUga2llbiBr ZXQgbHVhbi4gTmV1IFFIIGtob25nIA0KbGFtIHJvIGR1b2MgZGlldSBuYXkgdGhpIGtob25nIGhv YW4gdGhhbmggdHJhY2ggbmhpZW0gdHJ1b2MgRGFuZywgdHJ1b2MgZGFuLg0KDQoiQ2FuIGN1IEhp ZW4gcGhhcCB2YSBMdWF0IFRvIGNodWMgUUgsIHRvaSB0cmFuIHRyb25nIGRlIG5naGkgVXkgYmFu IFRodW9uZyB2dSBRSCANCmJpZXUgcXV5ZXQgZGUgUUggbGFwIFV5IGJhbiBsYW0gdGhvaSBkaWV1 IHRyYSB0cmFjaCBuaGllbSB0aGFuaCB2aWVuIENoaW5oIHBodSBraGkgZGUgDQp4YXkgcmEgc2Fp IHBoYW0gbyBWaW5hc2hpbi4gQ3VvaSBreSBob3AgUUggc2UgYm8gcGhpZXUgdGluIG5oaWVtIGNh YyB0aGFuaCB2aWVuIA0KQ2hpbmggcGh1IGxpZW4gcXVhbi4gRGUgdGFvIGRpZXUga2llbiBjaG8g Y29uZyB0YWMgY3VhIFV5IGJhbiBsYW0gdGhvaSwgdG9pIGRlIG5naGkgDQpRSCB0YW0gZGluaCBj aGkgY2h1YyB2dSBjYWMgdmkgY28gbGllbiBxdWFuIiwgREIgTmd1eWVuIE1pbmggVGh1eWV0IGRl IG5naGkuDQoNCkRCIExlIFZhbiBDdW9uZzogUGhhaSBnaWFpIHF1eWV0IGR1dCBkaWVtIG1vaSBj aHV5ZW4gbmdheSB0YWkga3kgaG9wIFF1b2MgaG9pIG5heQ0KDQpEb25nIHRpbmggdm9pIGRlIHh1 YXQgbmF5LCBEQiBRSCBMZSBWYW4gQ3VvbmcgKFRoYW5oIEhvYSkga2hhbmcgZGluaCwgbW9pIGNo dXllbiANCnBoYWkgZHVvYyBnaWFpIHF1eWV0IGR1dCBkaWVtIG5nYXkga3kgaG9wIFFIIG5heS4g T25nIEN1b25nIG5oYW0gdGluaCwgbW9pIG5ndW9pIA0KZGFuIFZpZXQgTmFtIHBoYWkgZ2FuaCBj aG8gVmluYXNoaW4gMSw1IHRyaWV1IGRvbmcgdHJhIG5vLiANCg0KUUggY3VuZyBwaGFpIGNoaXUg dHJhY2ggbmhpZW0NCg0KRGUgeHVhdCBjdWEgREIgVGh1eWV0IG5oYW4gZHVvYyBzdSB0YW4gZG9u ZyBjdWEgY2FjIERCIG5odSBMZSBWYW4gQ3VvbmcsIFBoYW0gVGhpIExvYW4sIEh1eW5oIE5nb2Mg RGFuZy4uLiANCg0KTmhpZXUgREIgdGhhbmcgdGhhbiBjaGkgcm8gdHJhY2ggbmhpZW0gImxpZW4g ZG9pIiBjdWEgY2hpbmggUXVvYyBob2kgdmkgZGEgZHVuZyANCmR1b25nIHRpbmggdHJhbmcgc2Fp IHBoYW0gcXVhIGxhdSB2YSBraG9uZyBraXAgdGhvaSAibGFwIiBsbyBob25nIHBoYXAgbHkuDQoN CkRCIFBoYW0gVGhpIExvYW4gKEhhIE5vaSkgbmhhbiBkaW5oLCBUaHUgdHVvbmcgZGFuZyB0cnVj IHRpZXAgcXVhbiBseSAxOSB0YXAgZG9hbiwgDQpjYWMgdG9uZyBjb25nIHR5IDkxLCAiYmFuIHRy YW0gY29uZyBuZ2hpbiB2aWVjIG5odW5nIHNhbyBUaHUgdHVvbmcgdmFuIGN1IHBoYWkgcXVhbiBs eSBjYWMgZG9hbmggbmdoaWVwIGxvbiBuaHUgdmF5Ii4gDQoNCihBbmg6IERCIFBoYW0gVGhpIExv YW46IE5odW5nIG5ndW9pIGxhbSBzYWkgcGhhaSBjbyBsb2kgeGluIGxvaSBuaGFuIGRhbikgDQoN ClRoZW8gREIgTG9hbiwgbmh1bmcgbmd1b2kgbGFtIHNhaSBwaGFpIGNvIGxvaSB4aW4gbG9pIHZv aSBuaGFuIGRhbiBkZSBuaGFuIGRhbiBjb24gY28gbmllbSB0aW4uDQoNCkRCIEh1eW5oIE5nb2Mg RGFuZyAoQmluaCBEdW9uZykgbGFpIGNobyByYW5nIGxheSBseSBkbyBWaW5hc2hpbiBob2F0IGRv bmcgdHJvbmcgDQp0aW5oIHRyYW5nIGNodWEgY28ga2h1b24ga2hvIHBoYXAgbHkgbGEgY2h1YSBo b3AgbGUgdmkgbW9pIHRoZSBjaGUgZGV1IGRvIGNvbiBuZ3VvaSBkYXQgDQpyYS4gIkNodW5nIHRv aSBxdWFuIHRhbSBkZW4gaGF1IFZpbmFzaGluIHZhIHRhbiBWaW5hc2hpbi4gS2hhYyBwaHVjIHNh aSBwaGFtIG5odSB0aGUgDQpuYW8sIG5odW5nIGNhIG5oYW4gdmEgdGFwIHRoZSBjbyBsaWVuIHF1 YW4gc2UgYmkgdHJ1eSBjdXUgdHJhY2ggbmhpZW0gcmEgc2FvPyANCkRlIG5naGkgUUggY28gbmdo aSBxdXlldCBjaHV5ZW4gZGUgdmUgdmFuIGRlIG5heSIuIA0KDQpodHRwOi8vdm5yNTAwLnZuLzIw MTAtMTEtMDQtdmluYXNoaW4tY3UtdmEtbW9pLXRyYWNoLW5oaWVtLXZhLW1pbmgtYmFjaC1ob2Eg VGFjIGdpYTogUEdTLlRTLiBOZ3V5ZW4gTmdvYyBUcmFuDQoNClRodSB0dW9uZzogVmluYXNoaW4g Y3UgdmEgbW9pIC0gY2FuIG1pbmggYmFjaCB0cmFjaCBuaGllbSANCg0KVGluIGxpZW4gcXVhbjog DQoqIEJvLXhpdCB2YSBWaW5hc2hpbiANCiogIkRhIHBoYSBzYW4gVmluYXNoaW4gdGhlbyBraWV1 IFZpZXQgTmFtIiANCg0KKFZFRikgLSBRdWEgc3UgY28gVmluYXNoaW4sIG5ndW9pIGRhbiBuaGlu IGNodW5nIGNodWEgeWVuIHRhbSB2b2kgaG9hdCBkb25nIGhpZW4gDQpuYXkgY3VhIHJhdCBuaGll dSBETk5OLCB2YSB5ZXUgY2F1IGNhbiBjbyBtb3Qgc3UgcXVhbiBseSBjb25nIGtoYWksIG1pbmgg YmFjaCBjYWMgDQp0YXAgZG9hbiwgdG9uZyBjb25nIHR5IG1hIE5oYSBudW9jIHhlbSBsYSBjaHUg ZGFvLCBuaHVuZyAiYW5oIGNhIGRvIiBjdWEgbmVuIGtpbmggdGUuDQoNCkkuDQpOaHUgdmF5IGxh IHRyb25nIG5odW5nIG5nYXkgZGF1IHRoYW5nIDExLzIwMTAgbmF5LCBzZSBjbyBtb3QgVmluYXNo aW4gbW9pIHRoZW8gdGhvbmcgDQpiYW8gY3VhIFBobyBUaHUgdHVvbmcgdGh1b25nIHRydWMgTmd1 eWVuIFNpbmggSHVuZywgVHJ1b25nIEJhbiBDaGkgZGFvIHRhaSBjbyBjYXUgDQpUYXAgZG9hbiBD b25nIG5naGllcCB0YXUgdGh1eSBWaWV0IE5hbSAoVmluYXNoaW4pLg0KDQpPbmcgY2hvIGJpZXQs IHF1YSB0cmluaCBjbyBjYXUgbGFpIFZpbmFzaGluIGdhcCBraG8ga2hhbiBkbyB0aW5oIG1hdCBj YW4gZG9pIG5naGllbSANCnRyb25nIGN1YSB0YXAgZG9hbiBraW5oIHRlIG5oYSBudW9jIG5heS4g Q28gbGUgdmkgdmF5LCBsYW4gbmF5IG9uZyBraG9uZyBkdWEgcmEgbW90IA0KbW9jIHRob2kgZ2lh biBuYW8uDQoNClR1eSBuaGllbiwgVmluYXNoaW4gbW9pLCB0aGVvIG9uZywgInNlIGRvbmcgdmFp IHRybyBjaHUgbHVjLCBkb25nIHZhIHN1YSBjaHVhIG5odW5nIA0KY29uIHRhdSBsb24iIGJvaSBt dWMgdGlldSBsYXUgZGFpIGtob25nIHRoZSBibyB0cm9uZyBjb25nIG5naGllcCBkb25nIHRhdSBk dW9jLg0KDQpPbmcgcGhhbiB0aWNoOiAiVmlldCBOYW0gY28gdGhlIG1hbmggdmUgYmllbiwgbWEg YmllbiBkaSBkYXUgbGEgaGFuZyBoYWkgY2h1IGtob25nIA0KcGhhaSBsYSBraGFpIHRoYWMgZGF1 IGtoaS4gS2hhaSB0aGFjIHRhaSBuZ3V5ZW4gcm9pIHRoaSBjdW5nIGhldCEiLg0KDQpPbiBjaHV5 ZW4gY3UgZGUgc3V5IG5nYW0gdmUgY2FpIG1vaS4gWGluIG5oYWMgbGFpIG1vdCBzbyBxdXlldCBk aW5oIHZhIHR1eWVuIGJvIGN1YSANCkJvIFRhaSBjaGluaCAoa2hpIG9uZyBjb24gbGEgQm8gdHJ1 b25nKSB2YSBjdWEgb25nIGdhbiBkYXkgdmUgVmluYXNoaW4uDQoNCisgTmdheSA0LzExLzIwMDUs IFRodSB0cnVvbmcgVGFpIGNoaW5oIExlIFRoaSBCYW5nIFRhbSBjaG8gYmlldCA3NTAgdHJpZXUg VVNEIHNlIA0KZHVvYyBjaHV5ZW4gdmUgVmlldCBOYW0sIEJvIFRhaSBjaGluaCBuZ2F5IHNhdSBk byBzZSBreSBob3AgZG9uZyB1eSB0aGFjIHRvYW4gYm8gDQpjaG8gVG9uZyBjb25nIHR5IENvbmcg bmdoaWVwIHRhdSB0aHV5IChWaW5hc2hpbikgdmEgZ2lhbSBzYXQgY2hhdCBjaGUgdGllbiB0cmlu aCBzdSBkdW5nIHZvbi4gDQpCYSBjb24gY2hvIGJpZXQsIFRvbmcgY29uZyB0eSBEaWVuIGx1YyBF Vk4gY3VuZyB4aW4gc3UgZHVuZyBtb3QgcGhhbiB0cm9uZyBraG9hbiANCnZheSA3NTAgdHJpZXUg VVNELCBzb25nIGRvIGRvYW5oIG5naGllcCBuYXkgY2h1YSBjbyBjb25nIHR5IHRhaSBjaGluaCwg dm9uIHJvdCB2ZSANCmtob25nIGR1b2MgcXVheSB2b25nIG5nYXkgbmVuIEJvIFRhaSBjaGluaCBx dXlldCBkaW5oIHV5IHRoYWMgdG9hbiBibyBjaG8gVG9uZyANCmNvbmcgdHkgQ29uZyBuZ2hpZXAg dGF1IHRodXkuDQpDbyBzbyBkZSBDaGluaCBwaHUgZGkgdmF5IG5vIHZhIHRyYW8gY2hvIFZpbmFz aGluIGxhIFRvbmcgY29uZyB0eSBuYXkgZGEgY28gZHVvYyBob3AgDQpkb25nIGRvbmcgdGF1IGRl biBoZXQgbmFtIDIwMTIuICJQaGF0IGhhbmggdHJhaSBwaGlldSBkZSBzdSBkdW5nIHZhIGNvIHBo dW9uZyBhbiB0cmEgDQpubyBybyByYW5nIHRoaSBraG9uZyBzYW8sIHZheSBkZSBjYXAgY2hvIG5n YW4gc2FjaCB0aGkgY2FjIG5oYSBkYXUgdHUgbW9pIGxvIG5nYWkiLCBiYSANCm5vaS4NCg0KKyBD byBsZSBuaG8gY28gc3UgImdpYW0gc2F0IGNoYXQgY2hlIHRpZW4gdHJpbmggc3UgZHVuZyB2b24i IHRyb25nIGNhYyBuYW0gcXVhIG5lbiBuZ2F5IA0KMDgvMDYvMjAxMCwgdHJvbmcga3kgaG9wIFF1 b2MgaG9pIGxhbiB0aHUgNywgdHJ1b2Mgbmh1bmcgeSBraWVuIGxvIG5nYWkgdmUgaGlldSBxdWEg a2luaCANCmRvYW5oIHRhaSBUYXAgZG9hbiBWaW5hc2hpbiwgdHJhIGxvaSBjYXUgaG9pIGN1YSBw aG9uZyB2aWVuLCBQaG8gVGh1IHR1b25nIGN1b2k6ICJUb2kgdGhpIHZhbiBjaHVhIGxvIi4NCg0K KyBUcm9uZyBjdW9jIGhvcCBiYW8gbmdheSAwNC8wOC8yMDEwLCBQaG8gVGh1IHR1b25nIHRodW9u ZyB0cnVjLCBUcnVvbmcgQmFuIENoaSANCmRhbyBjaG8gYmlldCByYXQgcmFuaCByb3QgIlRpbmgg dG9hbiBkZW4gMjAxMiBjbyB0aGUgaGV0IGxvLCBuYW0gMjAxMy0yMDE0IHNlIGJhdCBkYXUgY28g DQpsYWkgdmEgbmFtIDIwMTUgc2Ugb24gZGluaCBtb3QgVmluYXNoaW4gbW9pLiBDaGkgbGFtIGRv bmcgdGF1LCBwaHUgdHJvIHZhIGRhbyB0YW8gdGhpZXQga2UiLg0KQ3UgdHJpIHhpbiBjaHVjIEJh biBjaGkgZGFvIHRoYW5oIGNvbmcgdHJvbmcgdmllYyB0YWkgY28gY2F1IFZpbmFzaGluIHZhIHhp biBuaGFjIHJhbmcsIA0KbW90IHRyb25nIG5odW5nIHlldSB0byBkZSB0aGFuaCBjb25nIGxhIGto b25nIGR1b2MgY2h1IHF1YW4gZHV5IHkgY2hpLCBraGFuZyBkaW5oIG1vdCANCnZpZWMgZ2kgdGhp IHBoYWkgY28gY2FuIGN1IHZhIGNvIHNvIGtob2EgaG9jLg0KDQpJSS4NClRydW9jIFF1b2MgaG9p IHRhaSBreSBob3AgdGh1IDgsIFRodSB0dW9uZyBkYSBuaGFuIHRyYWNoIG5oaWVtIGN1YSBDaGlu aCBwaHUgdHJvbmcgDQp2aWVjIGRlIHRhcCBkb2FuIFZpbmFzaGluIGxhbSB2YW8gdGluaCB0cmFu ZyBoaWVuIG5heS4gTmh1bmcgbmhpZXUgZGFpIGJpZXUgUXVvYyBob2kgDQpjaG8gcmFuZyBjaHVh IGR1IHZhIGNhbiBjaGkgcmEgY2FjIGRpYSBjaGkgdHJhY2ggbmhpZW0gY3UgdGhlIGhvbi4gRGll dSBuYXkgbGEgY2FuIHRoaWV0IA0KY2hvIHR1b25nIGxhaS4NCg0KTmh1bmcgc3UgdmllYyB2YSB0 dXllbiBibyBkdW9jIG5oYWMgbGFpIHRyZW4gZGF5IGNobyB0aGF5IHRyYWNoIG5oaWVtIGN1YSBC byBUYWkgY2hpbmggDQpuaHUgbGEgY28gcXVhbiBxdWFuIGx5IG5oYSBudW9jIHZlIG5nYW4gc2Fj aCB2YSB0YWkgc2FuIG5oYSBudW9jLCBjbyBxdWFuIHBoYXQgaGFuaCB0cmFpIA0KcGhpZXUgQ2hp bmggcGh1LCBkb25nIHRob2kgbGEgY28gcXVhbiBjYXAgdHJlbiBjdWEgVXkgYmFuIENodW5nIGto b2FuIG5oYSBudW9jLiBEZSANCmNobyBWaW5hc2hpbiB0dSB0dW5nIHR1IHRhYyB2b2kgdHJhaSBw aGlldSBDaGluaCBwaHUgdmF5IHR1IGJlbiBuZ29haSwgdHJhY2ggbmhpZW0gY3VhIA0KQm8gVGFp IGNoaW5oIGxhIGtob25nIHRoZSBsYW4gdHJhbmguDQoNCihBbmg6IE1vdCBjb24gdGF1IFZpbmFz aGluIG5oaW4gaG9lbiBnaSB2YSB4dW9uZyBjYXAuQW5oIG1hcmluZXRyYWZmaWMpIA0KDQpOaGFj IGxhaSBuaHVuZyBjYXUgY2h1eWVuIGN1IGNvbiBjaG8gdGhheSBzdSBxdWFuIGx5IG5oYSBudW9j IGNodSBxdWFuIHZhIGxvbmcgbGVvIA0KZGVuIGtobyBoaWV1IGRvaSB2b2kgbW90IGtob2FuIHRp ZW4ga2hvbmcgbG8gZHVvYyB1eSB0aGFjIG1vdCBjYWNoIGRlIGRhbmcgY2hvIG1vdCANCnRhcCBk b2FuIG1hIGJheSBnaW8gbW9pIHRoYXkgbGEgdHUgbXVjIHRpZXUsIGNoaWVuIGx1b2MsIHF1eSBo b2FjaCBwaGF0IHRyaWVuIGRlbiBkaWV1IGxlLCANCmNvIGNhdSB0byBjaHVjIGNoaSBsYSB0cmVu IGdpYXkgaG9hYyBkYXkgbG8gaG9uZy4NCg0KVmEgZGlldSBkYW5nIGxvIG5nYWkgaG9uIGxhIGNv IGdpIGJhbyBkYW0gcmFuZywgY2FjaCBxdWFuIGx5IG5heSBkYW5nIGtob25nIHZhbiBoYW5oIA0K ZG9pIHZvaSBuaHVuZyB0YXAgZG9hbiB2YSB0b25nIGNvbmcgdHkgbmhhIG51b2Mga2hhYy4NCg0K Tmd1b2kgZGFuLCBuaHVuZyBuZ3VvaSBkb25nIHRodWUgY2hvIG5nYW4gc2FjaCBuaGEgbnVvYywg bmh1bmcgbmd1b2kgc2UgcGhhaSB0cmEgDQpuaHVuZyBraG9hbiBubyBtYSBDaGluaCBwaHUgYmFv IGxhbmggZG8gY2FjIHRhcCBkb2FuIG5odSBWaW5hc2hpbiBnYXkgcmEsIG5oaW4gDQpjaHVuZyBj aHVhIHllbiB0YW0gdm9pIGhvYXQgZG9uZyBoaWVuIG5heSBjdWEgcmF0IG5oaWV1IGRvYW5oIG5n aGllcCBuaGEgbnVvYywgdmEgeWV1IA0KY2F1IGNhbiBjbyBtb3Qgc3UgcXVhbiBseSBjb25nIGto YWksIG1pbmggYmFjaCBjYWMgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSBtYSBOaGEgbnVvYyANCnhl bSBsYSBjaHUgZGFvLCBuaHVuZyAiYW5oIGNhIGRvIiBjdWEgbmVuIGtpbmggdGUuDQoNCkNhYyBk YWkgYmlldSBRdW9jIGhvaSBob2FuIHRvYW4gY28gbHkga2hpIGRhdCBjYXUgaG9pIGxhIG5nb2Fp IGxhbmggZGFvIFZpbmFzaGluIHJhIGNvbiANCmNvIG5odW5nIGFpIHBoYWkgY2hpdSB0cmFjaCBu aGllbSB2ZSBuaHVuZyBzYWkgcGhhbSBjdWEgdGFwIGRvYW4gbmF5LCB2YSBtYXQga2hhYyB5ZXUg DQpjYXUgUXVvYyBob2kgdGhhbmggbGFwIG1vdCB1eSBiYW4gbGFtIHRob2kgZGUgZ2lhbSBzYXQg Y2FjIHRhcCBkb2FuIGtpbmggdGUgbmhhIG51b2MgDQpuaGFtIG5nYW4gbmd1YSwgdGhhbSBjaGkg cGhhdCBoaWVuIHRydW9jIGtoaSBtdW9uIGhvbiwgbmh1bmcgIlZpbmFzaGluIGtoYWMiLg0KDQpE YWkgYmlldSBRdW9jIGhvaSBjdW5nIG5odSBjdSB0cmkgZGV1IG5oYW4gdGh1YyBkdW9jIHN1IGNh biB0aGlldCBwaGFpIGNvIGNhYyB0YXAgZG9hbiANCmtpbmggdGUgbmhhIG51b2MsIG5odW5nIHBo YWkgbGEgbmh1bmcgdGFwIGRvYW4gdHJvbmcgc2FjaCwgdnVuZyBtYW5oIGxhbSBhbiBjbyBoaWV1 IHF1YSANCnRyZW4gY3VuZyBtb3QgbWF0IGJhbmcgcGhhcCBseSB2b2kgY2FjIGRvYW5oIG5naGll cCBraGFjLg0KDQpOZXUgY2FjIHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgbmhhIG51b2Mga2hvbmcg dHUgZHVuZyB2dW5nIGR1b2MsIGRpIGRlbiBwaGEgc2FuLCBob2FjIA0KZGkgdmFvIHN1eSB0aG9h aSwgYmllbiBjaGF0LCB0cmFjaCBuaGllbSB0cnVvYyB0aWVuIHRodW9jIHZlIGNhYyB0byBjaHVj IG5heS4NCk5odW5nIHRyYWNoIG5oaWVtIHRyZW4gaGV0IHRodW9jIHZlIG5odW5nIHRoaWV0IGNo ZSBkYSBraGFpIHNpbmggcmEgY2FjIHRhcCBkb2FuLCBkYSANCmNoYW0gcXV5IGRpbmggbW90IGto dW5nIGtobyBob2F0IGRvbmcgcm8gcmFuZyB2YSBtaW5oIGJhY2ggZGEgZHVvYyB0b25nIGtldCwg dmEgZGEgDQpibyBuaGllbSBuaHVuZyBjYW4gYm8gY2h1IGNob3QgdGhvYWkgaG9hLg0KDQpOb2kg ZGVuIGNvIGNoZSwgY2hpbmggc2FjaCBsYSBub2kgZGVuIHRyYWNoIG5oaWVtIGN1YSBsYXAgcGhh cC4gQ3UgdHJpIG1vbmcgcmFuZyBRdW9jIA0KaG9pLCBzZSBnb3AgcGhhbiB0aWNoIGN1YyBuaGF0 ICgxKSB2YW8gdmllYyBtaW5oIGJhY2ggaG9hIHF1eSBkaW5oIGdpdWEgbmhpZW0gdnUgY2hpbmgg DQp0cmkgeGEgaG9pIHZhIG5oaWVtIHZ1IGtpbmggZG9hbmgsIHRob25nIHF1YSBjYWMgdmFuIGJh biBwaGFwIHF1eSBjYW4gc29tIGR1b2MgeGF5IA0KZHVuZyBob2FjIHN1YSBkb2kgYm8gc3VuZzsg KDIpIHZhbyB2aWVjIGdpYW0gc2F0IG1vdCBjYWNoIGNoYXQgY2hlIG5oYW0gdGh1YyBkYXkgY29u ZyANCmtoYWkgaG9hLCBtaW5oIGJhY2ggaG9hIGxpbmggdnVjIGtpbmggdGUgbmhhIG51b2MuDQoN ClBHUy5UUyBOZ3V5ZW4gTmdvYyBUcmFuDQpEYWkgYmlldSBRdW9jIGhvaSBjYWMga2hvYSBJWCwg WCwgWEkgDQoNCmh0dHA6Ly93d3cxMC52aWV0bmFtbmV0LnZuL3ZuL2NoaW5oLXRyaS81OTcvcGhp ZW4tY2hhdC12YW4ta2ljaC10aW5oLXZhLXRyYWNoLW5oaWVtLXBoYWktbm9pLmh0bWwgTGUgTmh1 bmcgMjQvMTEvMjAxMCAwNTowMTowMCBBTSAoR01UKzcpIA0KDQpQaGllbiBjaGF0IHZhbiBraWNo IHRpbmggdmEgdHJhY2ggbmhpZW0gcGhhaSBub2kgDQoNCi0gIlhpbiBub2kgdGhhbmggdGhhdCBs YSBjaHVuZyB0b2kgbm9pIHJhIG5odW5nIGRpZXUgbmF5IHJhdCBkYXUgbG9uZy4gQ2h1bmcgdG9p IGtob25nIA0KdGhpY2ggZ2kgbGFtIG1hdCBsb25nIGFpLCBuaHVuZyB0cmFjaCBuaGllbSBwaGFp IG5vaS4gTmhhbiBkYW4gZ2lhbyBjaG8gUXVvYyBob2ksIGdpYW8gDQpjaG8gQ2hpbmggcGh1IHRh aSBzYW4gbmh1IHRoZSwgYmF5IGdpbyB4YXkgcmEgY2h1eWVuIG5odSB2YXkgbWEgdHUgc2FuZyB0 b2kgZ2lvIGtob25nIA0KYWkgY2hpdSB0cmFjaCBuaGllbSBjYSwgdG9pIGtob25nIGhpZXUgcmEg bGFtIHNhbywgaGF5IGN1b2kgY3VuZyB0cmFjaCBuaGllbSBvIDUwMCBkYWkgDQpiaWV1IFF1b2Mg aG9pPyIsIERCIE5ndXllbiBNaW5oIFRodXlldCBkdW5nIGxlbiBnaWFpIGJheSBuZ2F5IHNhdSBj YXUgdHJhIGxvaSBjdWEgQm8gDQp0cnVvbmcgR2lhbyB0aG9uZyAtIFZhbiB0YWkgSG8gTmdoaWEg RHVuZyB2ZSBzYWkgcGhhbSBvIFZpbmFzaGluLg0KDQpEYXkgY28gdGhlIHhlbSBsYSBwaGllbiBj aGF0IHZhbiAia2ljaCB0aW5oIiBuaGF0IHRyb25nIGNhYyBreSBob3AgZ2FuIGRheS4gS2hpIG1h IGNhYyANCnRoYW5oIHZpZW4gQ2hpbmggcGh1IGRldSB2aWVuIGRhbiB5IGtpZW4gUXVvYyBob2kg ZGUgY2h1bmcgbWluaCBuaHVuZyBjaHUgdHJ1b25nIA0KZGFuZyBsYW0gcGhhbiBuYW8gZGV1IGNv IHN1IGNobyBwaGVwIGN1YSBRdW9jIGhvaS4gSG9hYywgY2FjIHZ1b25nIG1hYyBraG9uZyB0aGUg DQp0aGFvIGdvIGRldSB2aSB2dW9uZyBjYWMgbHVhdCBtYSBRdW9jIGhvaSBiYW4gaGFuaC4gVmEg ZGFpIGJpZXUgZHVuZyBsZW4gcGhhbiBkb2k6IA0KIkdpYWkgdGhpY2ggdHJ1b2MgUXVvYyBob2kg cGhhaSBiaW5oIHRpbmgsIGxhbmcgbmdoZSBuaGF1LCBraG9uZyBuZW4gbm9pIHZvIGRvYW4iLiAN CiANCihBbmggY2h1cDogRHVuZyBsb2kgUXVvYyBob2kgdmFvIGRheSAtIERCUUggTmd1eWVuIE1p bmggVGh1eWV0IG5oYW4gQm8gdHJ1b25nIA0KSG8gTmdoaWEgRHVuZy4gQW5oIExBRCkNCi4uICAN CkRhdSB0aWVuIGxhIHRpbmggaHVvbmcgQm8gdHJ1b25nIEdUVlQgSG8gTmdoaWEgRHVuZyBnaWFp IHRoaWNoIG1vdCB0cm9uZyBjYWMgbHkgZG8gDQp4YXkgZHVvbmcgc2F0IGNhbyB0b2MgZG8gY2Fu IGN1IHRoZW8ga2V0IGx1YW4gdHJvbmcgYmFuIHRvbmcgaG9wIHRoYW8gbHVhbiB0YWkgSG9pIA0K dHJ1b25nIFF1b2MgaG9pIGNoaWV1IDE5LzYsIHNhdSBraGkgYmlldSBxdXlldCBraG9uZyB0aG9u ZyBxdWEgbmdoaSBxdXlldCB4YXkgZHVvbmcgDQpzYXQuIEtob25nIHRob25nIHF1YSBuaHVuZyBR dW9jIGhvaSBjdW5nIGtob25nIGtldCBsdWFuIGtob25nIGNobyBuZ2hpZW4gY3V1IG51YS4gDQoN CkRCIFRodXlldCBwaGFuIGJhYywgYmllbiBiYW4gdGhhbyBsdWFuIG8gUXVvYyBob2kga2hvbmcg Y28gdGluaCBwaGFwIGx5OiANCiJDaHUgdHJ1b25nIGN1YSBCbyBDaGluaCB0cmkgdG9pIG5oYXQg dHJpLCBxdXllbiBjdWEgQ2hpbmggcGh1IGNodW5nIHRvaSBuaGF0IHRyaSBuaHVuZyANCmR1bmcg bG9pIFF1b2MgaG9pIHZhbyBkYXkiLiANCg0KIktpY2ggdGluaCIgbGFuIHRodSBoYWkgbGEga2hp IERCIER1b25nIFRydW5nIFF1b2MgZHVuZyBsZW4gZHVhIHJhIHBoYW4gdGljaCBwaGFuIGRvaSAN CmxhcCBsdWFuIGN1YSBCbyB0cnVvbmcgSG8gTmdoaWEgRHVuZyB2ZSBkdSBhbiBib3hpdC4NCg0K VmEgY2FvIHRyYW8gbGEgbHVjIEJvIHRydW9uZyBLSCZEVCBWbyBIb25nIFBodWMgdGllcCB0dWMg bm9pIHZlIHZpZWMgZGFpIGJpZXUgY3VuZyANCiJsaWVuIGRvaSIgdHJhY2ggbmhpZW0gdHJvbmcg c2FpIHBoYW0gbyBWaW5hc2hpbi4NCg0KVGhlbyBvbmcgUGh1YywgQm8gS0gmRFQga2hvbmcgY28g Y2h1dCB0cmFjaCBuaGllbSBuYW8gdGhlbyBsdWF0IGRpbmggbmVuIGtob25nIA0Ka2hvbmcgcGhh aSBjaGl1IG1vdCB0cmFjaCBuaGllbSBnaSBvIGRheS4gVmkgY28gbXVvbiBsYW0gZ2ksIGR1bmcg ZGF1IGN1bmcgdnVvbmcgbHVhdC4gDQpOZW4gbm9pIGNodXllbiB0cmFjaCBuaGllbSB0aGkgZGF5 IGxhIHRyYWNoIG5oaWVtIGNodW5nLCBDaGluaCBwaHUgdHJpbmggbHVhdCBzYWksIFF1b2MgDQpo b2kgYmFtIG51dCBzYWksIG5lbiBtb2kgZGFpIGJpZXUgUXVvYyBob2kgZGV1IHBoYWkgY2hpdSB0 cmFjaCBuaGllbS4NCg0KSGllbSBraGkgcGhhdCBiaWV1IHRyb25nIGNhYyBwaGllbiBjaGF0IHZh biwgbmh1bmcgQ2h1IG5oaWVtIFVCIFBoYXAgbHVhdCBOZ3V5ZW4gDQpWYW4gVGh1YW4gcGhhaSBk dW5nIGxlbiBraGFuZyBkaW5oLCBCbyBLSCZEVCAibm9pIHZvIGNhbiBsYSBraG9uZyBkdW9jIi4g TmV1IEJvIA0Kc29tIHBoYXQgaGllbiBsbyBob25nIHRyb25nIEx1YXQgZG9hbmggbmdoaWVwIHRo aSBuYW0gbmdvYWkgcGhhaSBkZSB4dWF0IHN1YSwga2hpIFF1b2MgDQpob2kgZHVuZyBtb3QgbHVh dCBzdWEgbmhpZXUgbHVhdC4NCg0KTmh1bmcgbWFuIGRvaSB0aG9haSB0cmVuIGNvIHRoZSBjaHVh IGRpIGR1b2MgZGVuIHRhbiBjdW5nIHZhbiBkZSBuaHVuZyBjdSB0cmkgdGhlbyBkb2kgDQpjdW9j IGNoYXQgdmFuIGRhIGNvIHRoZSB0YW0gYW4gbG9uZy4gVmkgZGFpIGJpZXUgUXVvYyBob2kgZGEg Y2hvIHRoYXkgdGhhaSBkbyB0aGFuZyB0aGFuLCANCnRpbmggdGhhbiB0cmFjaCBuaGllbSBraG9u ZyBuZ2FpIHZhIGNoYW0sIG5lIHRyYW5oLCBzdSBzb25nIHBoYW5nIGtoaSBkb2kgaG9pIG1pbmgg ZGluaCANCnJvIHRyYWNoIG5oaWVtIGNvIHF1YW4gaGFuaCBwaGFwIC0gbGFwIHBoYXAsIHRyYW5o IHRoYWkgZG8geHVlIHhvYSAiaG9hIGNhIGxhbmciIHZvbiBkaSANCnRvbiB0YWkgbGF1IG5heSBk ZSBiaWVuIG5odW5nIHBoaWVuIGNoYXQgdmFuIG5naGkgdHJ1b25nIHRoYW5oIGN1b2MgInRyaW5o IGRpZW4iLg0KDQpWaSB0cnVvbmcgbmdhbmggZ2lhbyB0aG9uZyBkb2kgbHVjIHBoYWkgZHVuZyBs YWkgdGltIHR1IG5ndSBnaWFpIHRoaWNoLCBjbyBsdWMgY29uIG5vaSANCm5oYW0gaG8gdGVuIGRh aSBiaWV1LiBDYWMgYm8gdHJ1b25nIGtob25nIHBoYWkgY2h1eWVuIGdpYS4gS2hvbmcgdGhlIGRv aSBob2kgaG8gcGhhaSANCnJhbmggcmUgdmFuIGRlIGt5IHRodWF0ICh0aHVvbmcgYm8gdHJ1b25n IHZhbiBraGF0IHZvaSBuaHVuZyBjYXUgaG9pIHF1YSBjaHV5ZW4gc2F1KSwgDQpuaHVuZyBjaGF0 IHZhbiBsYSBwaGVwIHRodSBiYW4gbGluaCBjaGluaCBraGFjaC4gTmVuIG1vaSBsb2kgbm9pIHZv bmcgdmVvLCBjYWNoICJkYSANCmJvbmciIHNhbmcgY2hhbiBRdW9jIGhvaSBkZXUgc2UgZHVvYyBj dSB0cmkgImNoYW0gZGllbSIuDQoNCkRhaSBiaWV1IGRhIHRhbiBkdW5nIHR1bmcgcGh1dCBuZ2Fu IG5ndWkgdHJlbiBkaWVuIGRhbiBkZSB0cmFuaCBsdWFuLCBwaGFuIHRpY2guIE5odW5nIA0Kbmd1 b2kgdm9uIGhheSAibmh1b25nIiBuZ3VvaSBraGFjIGNoYXQgdmFuIGRvIHZpIHRoZSBjaHUgbmhp ZW0gY2FjIHV5IGJhbiBjdW5nIGtob25nIA0KbmdhbiBuZ2FpIGJheSB0byBjaGluaCBraWVuLiAN Cg0KUm8gcmFuZywgInRyYWNoIG5oaWVtIHBoYWkgbm9pIiBkYSBidW9jIGNhYyBkYWkgYmlldSBR dW9jIGhvaSBsZW4gdGllbmcuIE5oaWV1IGRhaSBiaWV1IA0KdGh1b25nIGd1aSBzb20gY2hhdCB2 YW4gYmFuZyB2YW4gYmFuLiBDbyBuZ3VvaSBuaGFuIHhvbmcgY2F1IHRyYSBsb2ksIGxhbmcgbGFu ZyBkZW0gdmUgDQpiYW8gY2FvIGxhaSB2b2kgbmh1bmcgY3UgdHJpIHF1YW4gdGFtLCBkYXUgdGhh bSB0YW0gY2h1YSBjaGFjIGhvIGRhIGhhaSBsb25nIHZvaSBjYXUgdHJhIA0KbG9pLCBtYSBjaGkg dmkgbXVvbiBsYW0gdHJvbiB0cmFjaCBuaGllbS4NCg0KQ28gZGFpIGJpZXUgY2hvIGhheSwgdmkg dGhlIGtoaWVuIGhvIHRodW9uZyB4dXllbiBkdW9jIGdhcCBjYWMgdHJ1b25nIG5nYW5oLCBuZW4g Y3VuZyANCmRlICJ5IGtpZW4iIHZlIG5odW5nIGNodXllbiBraHVjIG1hYyBvIG5vaSBkYXUgZG8u IENvIG5ndW9pIGxhaSBiYW4gY2h1eWVuIG5nb2FpIGxlLCANCnJhbmcgbmh1bmcgbmd1b2kgbm9p IG5oaWV1LCBub2kgbWFuaCBsYSBuaHVuZyBkYWkgYmlldSBzYXAgbWFuIG5oaWVtLCBraG9uZyB0 YWkgY3UgDQpraG9hIG1vaSBuZW4gcGhhdCBiaWV1IGtob25nIG5nYWkgdmEgY2hhbS4uLg0KDQpE aWV1IGhpZW4gbmhpZW4gbGEgbW9pIHBoaWVuIGNoYXQgdmFuIGNoaW5oIGxhIG1vdCAicGhlcCB0 aHUiIGRlIGN1IHRyaSBkYW5oIGdpYSBwaGFtIA0KY2hhdCBjdWEgZGFpIGJpZXUgbGFuIGNoYXQg bHVvbmcgaG9hdCBkb25nLg0KDQpRdW9jIGhvaSBsYSBjbyBxdWFuIHF1eWVuIGx1YyBuaGEgbnVv YyBjYW8gbmhhdCwgbW9pIGRhaSBiaWV1IGN1bmcgbHVvbiBkdW9jIGh1b25nIA0KcXV5ZW4gbWll biB0cnUuIE5odW5nIGtoaSB0dW5nIGRhaSBiaWV1IHR1IHRoYXkgbWluaCBwaGFpIG5vaSB0YWkg ZGllbiBkYW4gY2hhdCB2YW4gdmkgDQpxdW9jIGtlIGRhbiBzaW5oIHRoaSBkbyBsYSBzdSBraGFu ZyBkaW5oIHRyYWNoIG5oaWVtIGNoaW5oIHRyaSB0cnVvYyBuaWVtIHRpbiBjdSB0cmkgZ2lhbyBw aG8uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNTEvMjAx MDEyMTcwMTI1MDkuYXNweCBIdXluaCBUaGUgRHUgMTcvMTIvMjAxMCAxOjI1IA0KDQpUaHUgdHVv bmc6IENoaW5oIHNhY2ggdGhhdCB0aHVvbmcgLSB0YWMgZG9uZyBraG9uZyB0b3QgY2hvIG1vaSB0 cnVvbmcga2luaCBkb2FuaCANCiAgDQpUdWFuIG5heSBjaHVuZyB0YSBsYWkgY2h1bmcga2llbiBo YWkgcXV5ZXQgZGluaCB0aGF5IGRvaSBjaGluaCBzYWNoIHZhbyBnaW8gY2hvdCwgZG8gbGEgDQp2 aWVjIGx1aSB0aG9pIGhhbiB0YW5nIHZvbiBwaGFwIGRpbmggY3VhIGNhYyBuZ2FuIGhhbmcgdGhl bSBtb3QgbmFtIHZhIFRvbmcgY3VjIFRodWUgDQp0aWVwIHR1YyBjdW5nIGNhcCBob2EgZG9uIGNo byBjYWMgZG9hbmggbmdoaWVwIGNodWEgdHUgaW4gZHVvYyBzYXUgbmdheSAxLjEuMjAxMS4gSXQg DQpuaGF0IGNvIGhhaSBoZSBsdXkgdHUgdmllYyB0cmkgaG9hbiBuYXkuIA0KDQpUaHUgbmhhdCwg bmd1b2kgbGFtIHRvdCBiaSB0aGlldCB0cm9uZyBraGkga2Uga2hvbmcgdHVhbiB0aHUgdGhpIGR1 b2MgbG9pLiBBaSBjdW5nIGJpZXQgDQp2aWVjIGh1eSBkb25nIHZvbiBkZSBkYXAgdW5nIHlldSBj YXUgdG9pIHRoaWV1IDMuMDAwIHRpIGRvbmcgY3VhIGNhYyBuZ2FuIGhhbmcgdHJvbmcgDQp0aG9p IGdpYW4gcXVhIGxhIHZvIGN1bmcga2hvIGtoYW4gdHJvbmcgYm9pIGNhbmggdGhpIHRydW9uZyBj aHVuZyBraG9hbiBjdSBjaHVjIGRhdSBkaSANCnh1b25nLiBDbyBkb25nIGN1YSBuaHVuZyBuZ2Fu IGhhbmcgdHVhbiB0aHUgbmdoaWVtIHR1YyBxdXkgZGluaCBkZSBkYXQgZHVvYyB5ZXUgY2F1IA0K Y2hhYyBoYW4gZGEgcGhhaSBiYW4gbW90IHBoYW4gc28gaHV1IG5nYW4gaGFuZyBjdWEgbWluaCB2 b2kgZ2lhIHRoYXAgZGUgdGh1IGh1dCB0aGVtIA0Kdm9uLiBOb2kgbW90IGNhY2ggZG9uIGdpYW4g bGEgZGUgZGFtIGJhbyBxdXkgZGluaCwgbmFuZyBjYW8gbmFuZyBsdWMgdGFpIGNoaW5oIGN1YSAN Cm5nYW4gaGFuZyBub2kgcmllbmcsIGhlIHRob25nIHRhaSBjaGluaCBub2kgY2h1bmcsIGNvIGRv bmcgY3VhIGNhYyBuZ2FuIGhhbmcgbmF5IGRhIA0KcGhhaSBjaGl1IHRoaWV0Lg0KDQpDdW5nIG5o dW5nIG5nYW4gaGFuZyBuYXksIGdpYSBzdSBobyBiaWV0IGR1b2MgcmFuZyB0aG9pIGhhbiBzZSBk dW9jIGx1aSBsYWkgc29tIGhvbiB0aGkgDQpobyBzZSB0aW5oIHRvYW4ga3kgaG9uIGRlIGNob24g dGhvaSBkaWVtIHBoYXQgaGFuaCB0aGVtIGNvIHBoaWV1IHRhbmcgdm9uIHBodSBob3Agc2FvIA0K Y2hvIGNvIGxvaSBjaG8gbWluaC4gTmh1IHZheSwgdm8gaGluaCB0cnVuZyBuaHVuZyBuZ2FuIGhh bmcgZG9pIGRlbiBnaW8gY2hvdCB2YSBjbyBraGEgDQpuYW5nIGtob25nIGRhcCB1bmcgZHVvYyB5 ZXUgY2F1IG5ldSBjaGluaCBzYWNoIHZhbiBjbyBoaWV1IGx1YyB0aGkgZHVvYyBsb2kuIEtldCBx dWEgDQpjdWEgY2hpbmggc2FjaCBuYXkgbGEsIHhldCBtb3QgY2FjaCB0dW9uZyBkb2ksIG5ndW9p IGxhbSB0b3QgZGEgYmkgcGhhdC4gRGlldSBuYXkgY3VuZyANCnR1b25nIHR1IG5odSBuaHVuZyBi YXQgY2FwIHRyb25nIGNhYyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MuIE5odW5nIGRvYW5oIG5naGll cCBsYW0gDQphbiBjbyBsYWkgdGhpIHBoYWkgZG9uZyB0aHVlIGRheSBkdSwgdHJvbmcga2hpIG5o dW5nIGRvbiB2aSBsYW0gYW4gdGh1YSBsbyB2dWEga2hvbmcgcGhhaSANCmRvbmcgdGh1ZSwgdnVh IGR1b2MgaG8gdHJvIHRoZW0uDQoNClRodSBoYWkgbGEgc3Uga2VtIGNvaSBjdWEgY2hpbmggc2Fj aC4gRG9pIHZvaSB2YW4gZGUgdGFuZyB2b24gcGhhcCBkaW5oIGN1YSBuZ2FuIGhhbmcsIA0KdGh1 YyByYSBOZ2hpIGRpbmggMTQxIGRhIGR1b2MgYmFuIGhhbmggY2FjaCBkYXkgNCBuYW0gKDExLjIw MDYpLiBEbyB2YXksIGtobyBjbyB0aGUgDQpub2kgcmFuZyBkbyB0aG9pIGdpYW4gZ2FwIGdhcCBu ZW4gbmdhbiBoYW5nIGtob25nIGNvIHRob2kgZ2lhbiBjaHVhbiBiaS4gTmV1IHRoYXkgY28gDQp2 YW4gZGUgdGhpIGNhbiBwaGFpIHRpbSBoaWV1IGRlIGNvIHN1IGRpZXUgY2hpbmggc29tIGhvbiBs YSBkaWV1IGhvYW4gdG9hbiB0cm9uZyB0YW0gdGF5IA0KY3VhIGNhYyBjbyBxdWFuIGxpZW4gcXVh bi4NCg0KRG9pIHZvaSBjaGluaCBzYWNoIGRlIGRvYW5oIG5naGllcCB0dSBpbiBob2EgZG9uLCB2 aWVjIHRpZXAgdHVjIGN1bmcgY2FwIGhvYSBkb24gY2hvIA0Kbmh1bmcgZG9hbmggbmdoaWVwIGNo dWEgaW4gZHVvYyBsYSBob3AgbHkgdmkgbmdheSBsYXAgdHVjIGNhYyBuaGEgaW4gZHUgdGlldSBj aHVhbiANCmtob25nIHRoZSBjdW5nIGNhcCBkdSBjaG8gZ2FuIG51YSB0cmlldSBkb2FuaCBuZ2hp ZXAuIERheSBsYSBkaWV1IG1hIGFpIGN1bmcgdGhheS4gDQpOaHVuZyB0YWkgc2FvIGRhIHRoYXkg cm8gdGluaCBraG9uZyBraGEgdGhpIG5odSB0aGUgbWEgY2hpbmggc2FjaCBheSB2YW4gZHVvYyBi YW4gDQpoYW5oIHJvaSBsYWkgdGhheSBkb2kgdmFvIHBodXQgY3VvaTsgdGFpIHNhbyBuZ2F5IHR1 IGRhdSBraG9uZyBkZSBtb3QgZ2lhaSBkb2FuIGNodXllbiB0aWVwPw0KDQpWaWVjIHRoYXkgZG9p IGNoaW5oIHNhY2ggdmFvIGdpbyBjaG90IG5ldSB0cmVuIGNoaSBjbyB0aGUgZ2lhaSB0aGljaCBi YW5nIHN1IGtlbSBjb2kgY3VhIA0KY28gcXVhbiBiYW4gaGFuaCBjaGluaCBzYWNoIG5heSBoYXkg dmllYyBiYW4gaGFuaCBjaGluaCBzYWNoICJnaWF0IGN1YyIgbmh1IHZheSBzZSANCmRlbSBsYWkg bG9pIGljaCBjaG8gYWkgZG8uIENobyBkdSB0aW5oIGh1b25nIG5hbyBjaGFuZyBudWEgdGhpIGN1 bmcgbGEgZGlldSBraG9uZyB0b3QgDQpjaG8geGEgaG9pLCBjaG8gcXVvYyBnaWEuDQoNCkRlIHRo YXkgZG9pIG1vdCBjaGluaCBzYWNoIG5hbyBkbyB2YW8gZ2lvIGNob3QsIG5ndW9pIHRhIGNvIHRo ZSB0aW0gcmEgdm8gc28gbHkgZG8gZGUgDQpiaWVuIGhvIHZhIHJhdCBraG8gYmF0IGJlLiAgRGll dSBuYXkgc2UgZ2F5IGtob25nIGl0IHRhYyBkb25nIHRpZXUgY3VjIGRlbiBtb2kgdHJ1b25nIA0K a2luaCBkb2FuaC4gS2V0IHF1YSBsYSB5IHRodWMgbGFtIGFuIGNoYW4gY2hpbmggYmkgdHJpZXQg dGlldSB0cm9uZyBraGkgdGlldSBjdWMgbGFpIGNvIGNvIGhvaSB0b24gdGFpLiANCg0KaHR0cDov L3RpbnR1Yy54YWxvLnZuLzAwLTIwNDM4MTQzOTcvQ29fZGFuX2NodV9raGFjaF9xdWFuX21vaV9j aG9uX2R1b2Nfbmd1b2lfY29fdGFtX2NvX3RhaS5odG1sICh0aGVvIGxhb2RvbmcsIDMgbmFtIHRy dW9jKSANCg0KT25nIE5ndXllbiBUYW4gRHVuZyByZXUgcmFvOiAiQ28gZGFuIGNodSwga2hhY2gg cXVhbiBtb2kgY2hvbiBkdW9jIG5ndW9pIGNvIHRhbSwgY28gdGFpIg0KDQoicGhhaSB0aGF0IHN1 IGNvbmcgdGFtLCBraGFjaCBxdWFuIHZhIGRhYyBiaWV0IGxhIHBoYWkgIHRoYXQgc3UgZGFuIGNo dTsgcGhhaSB0YW8gbW9pIGRpZXUgDQpraWVuIHRodWFuIGxvaSB2YSBjb25nIGtoYWkgbWluaCBi YWNoIGRlIG1vaSBjYW4gYm8gZGFuZyB2aWVuLCBtb2kgbmd1b2kgY29uZyBkYW4gdGh1YyANCnN1 IGR1b2MgZGFuIGNodSBsdWEgY2hvbi4gVGh1YyBoaWVuIHRvdCBkaWV1IG5heSBjaGFjIGNoYW4g Y2h1bmcgdGEgc2UgY2hvbiBkdW9jIG5ndW9pIA0KY28gdGFtLCBjbyB0YWkgcGh1YyB2dSBkYXQg bnVvYy4gQ2hpbmggcGh1IGtob2EgdG9pLCB0b2kgdGluIGNoYWMgbGEgcGhhaSBsYW0gbmh1IHZh eS4iIA0KDQoiRGUgdGh1IGh1dCwgZGUgZHVhIGR1b2Mgbmd1b2kgY28gdGFtLCBjbyB0YWkgdmFv IGNvIHF1YW4gY3VhIERhbmcsIGJvIG1heSBuaGEgbnVvYyANCmRlIG5hbmcgY2FvIHRyaSB0dWUg dmEgbmFuZyBsdWMgbGFuaCBkYW8gY3VhIERhbmcgdmEgcXVhbiBseSBjdWEgTmhhIG51b2MsIGNv IHJhdCBuaGlldSANCnZpZWMgcGhhaSBsYW0sIG5odW5nIHRoZW8gdG9pIGdpYWkgcGhhcCBxdWFu IHRyb25nIG5oYXQsIGNodSB5ZXUgbmhhdCB2YW4gcGhhaSBsYSB0aHVjIHN1IA0KZGFuIGNodSwg cGhhaSBkdW9jIGx1YSBjaG9uIG1vdCBjYWNoIGNvbmcga2hhaSB2YSBkYW4gY2h1IG5oYXQuIFF1 YW4gY2h1bmcgbmhhbiBkYW4gDQpzZSByYXQgc2FuZyBzdW90IGx1YSBjaG9uIG5ndW9pIGxhbmgg ZGFvIGN1YSBtaW5oIHZhIHNlIGx1YSBjaG9uIGR1bmcgbmd1b2kgY28gdGFtLCBjbyANCnRhaSBu ZXUgbmh1IGNodW5nIHRhIHRodWMgc3UgZGFuIGNodSwga2hvbmcgZGFuIGNodSBoaW5oIHRodWMu IiANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMTEwNDEwMDU0NTczMVAwQzUvY2hpbmgtcGh1 LWJhby1jYW8tcXVvYy1ob2ktZG9hbmgtbmdoaWVwLWxvLWxhbmgtZGFvLXZhbi1uZ3V5ZW4tY2h1 Yy5odG0gTkdVWUVOIFRIQU8gMDQvMTEvMjAxMCAxMDozMSAoR01UKzcpIA0KDQpUaHUgdHVvbmc6 IERvYW5oIG5naGllcCBsbywgbGFuaCBkYW8gdmFuIG5ndXllbiBjaHVjIC0gVGh1IHR1b25nIGto dXlldCBkaWVtIHF1YW4gbGlldSAgDQogDQpDaGluaCBwaHUgYmFvIGNhbyBRdW9jIGhvaSB2ZSBx dWFuIGx5LCBzdSBkdW5nIHZvbiB0YWkgc2FuIE5oYSBudW9jIHRhaSBjYWMgdGFwIGRvYW4sIHRv bmcgY29uZyB0eSBOaGEgbnVvYyANCg0KTW90IHNvIHRvbmcgY29uZyB0eSBraW5oIGRvYW5oIHRo dWEgbG8gbGllbiB0dWMsIGtlbyBkYWkgbmh1bmcgaG9pIGRvbmcgcXVhbiB0cmksIHRvbmcgZ2lh bSBkb2Mga2hvbmcgYmkgeHUgbHkgdHJhY2ggbmhpZW0sIG1pZW4gbmhpZW0gaG9hYyBjYWNoIGNo dWMuLi4sIENoaW5oIHBodSBiYW8gY2FvIHNhdSBtb3QgbmFtIFF1b2MgaG9pIGdpYW0gc2F0IHRv aSBjYW8gdmllYyB0aHVjIGhpZW4gY2hpbmggc2FjaCwgcGhhcCBsdWF0IHZlIHF1YW4gbHksIHN1 IGR1bmcgdm9uLCB0YWkgc2FuIE5oYSBudW9jIHRhaSBjYWMgdGFwIGRvYW4sIHRvbmcgY29uZyB0 eSBOaGEgbnVvYyB0YWkga3kgaG9wIHRodSBzYXUgKHRoYW5nIDExLzIwMDkpLg0KDQooQW5oOiBR dW9jIGhvaSBkYSB5ZXUgY2F1IENoaW5oIHBodSBjYW4gdGllcCB0dWMgcGhhbiB0aWNoIHNhdSBz YWMsIGRhbmggZ2lhIHRvYW4gZGllbiwgZGF5IGR1IHZhIGNoaW5oIHhhYyBob24gaGlldSBxdWEg c2FuIHh1YXQsIGtpbmggZG9hbmggY3VhIGNhYyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IE5oYSBu dW9jLikNCg0KVGFpIG5naGkgcXV5ZXQgc2F1IGdpYW0gc2F0IHZlIG5vaSBkdW5nIG5vaSB0cmVu LCBRdW9jIGhvaSBkYSB5ZXUgY2F1IENoaW5oIHBodSBjYW4gdGllcCB0dWMgcGhhbiB0aWNoIHNh dSBzYWMsIGRhbmggZ2lhIHRvYW4gZGllbiwgZGF5IGR1IHZhIGNoaW5oIHhhYyBob24gaGlldSBx dWEgc2FuIHh1YXQsIGtpbmggZG9hbmggY3VhIGNhYyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IE5o YSBudW9jLCBuaGF0IGxhIGNhYyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IGRhYyBiaWV0Lg0KDQpO byBwaGFpIHRyYSBjdWEgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSBsYSA4MTMuNDM1IHR5IGRvbmcN ClRyb25nIGJhbyBjYW8gZGUgbmdheSAxLzExLzIwMTAgdnVhIGR1b2MgZ3VpIGRlbiBRdW9jIGhv aSwgQ2hpbmggcGh1IGNobyBiaWV0IHRpbmggaGluaCB0YWkgY2hpbmggdmEgaG9hdCBkb25nIHNh biB4dWF0IGtpbmggZG9hbmggY3VhIDgxLzkxIHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgTmhhIG51 b2MgKGtob25nIGJhbyBnb20gVGFwIGRvYW4gQ29uZyBuZ2hpZXAgVGF1IHRodXkgVmlldCBOYW0g LSBWaW5hc2hpbikgdHJvbmcgDQpuYW0gMjAwOSB2YSA2IHRoYW5nIGRhdSBuYW0gMjAxMC4NCg0K VHJhY2ggbmhpZW0gY2h1YSBjdSB0aGUNCg0KTmhpZXUgaGFuIGNoZSwgdG9uIHRhaSBkYSBkdW9j IENoaW5oIHBodSBuaGluIG5oYW4uIERvIGxhIGNodWMgbmFuZyBkYWkgZGllbiBjaHUgc28gDQpo dXUgY29uIHBoYW4gdGFuLCBjaG9uZyBjaGVvIG5lbiB0cmFjaCBuaGllbSB0cm9uZyBxdWFuIGx5 IGNodWEgcm8gcmFuZy4NCg0KRGFjIGJpZXQsIG5odW5nIHNhaSBwaGFtIHRyb25nIHZpZWMgcXVh biBseSwgc3UgZHVuZyB2b24gdmEgdGFpIHNhbiBOaGEgbnVvYyB0aHVvbmcgDQpkdW9jIHBoYXQg aGllbiBzYXUga2hpIHRoYW5oIHRyYSwga2llbSB0cmEgaG9hYyBjbyBraGlldSBuYWksIHRvIGNh by4gQ29uZyB0YWMgdGhhbmggdHJhLCANCmtpZW0gdG9hbiBOaGEgbnVvYyBkb2kgdm9pIHRhcCBk b2FuLCB0b25nIGNvbmcgdHkgY29uIGNob25nIGNoZW8uDQoNCkxpZW4gcXVhbiBkZW4gbmh1bmcg bG8gbmdhaSBkYXUgdHUgdHJhaSBuZ2FuaCBjdWEgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSBjdWEg bmhpZXUgdmkgZGFpIA0KYmlldSBRdW9jIGhvaSwgdGhlbyBkYW5oIGdpYSBjdWEgQ2hpbmggcGh1 IHNvIHRpZW4gdGhhbSBnaWEgZ29wIHZvbiB2YW8gbmdhbiBoYW5nIA0KdGh1b25nIG1haSBjbyBw aGFuLCBjb25nIHR5IGNodW5nIGtob2FuLCBiYW8gaGllbSwgYmF0IGRvbmcgc2FuLi4uIGtoYSBs b24sIHNvbmcgDQpraG9uZyBoaWV1IHF1YSB0cm9uZyBuZ2FuIGhhbi4gVmEgZGFjIGJpZXQgbGEg ImNodWEgdGh1YyBzdSBob3AgbHkga2hpIG5ndW9uIHZvbiBjaG8gDQpob2F0IGRvbmcgc2FuIHh1 YXQga2luaCBkb2FuaCBjaGluaCBjb24gaGFuIGNoZSIuDQoNCkhhbiBjaGUgY3VvaSBjdW5nIGR1 b2MgQ2hpbmggcGh1IGNoaSByYSBsYSBjaHVhIGNvIGNoZSB0YWkgdmEgY2h1YSBraWVuIHF1eWV0 IHh1IGx5IA0Kbmh1bmcgZG9hbmggbmdoaWVwIGtob25nIGJhbyBjYW8gZGF5IGR1LCBraXAgdGhv aSBob2FjIG5oaWV1IG5hbSBsaWVuIHR1YyBjbyBzYWkgc290IA0KdHJvbmcgY29uZyB0YWMgcXVh biBseSwgZGlldSBoYW5oLCBiaSB4ZXAgbG9haSBkb2FuaCBuZ2hpZXAga2hvbmcgaG9hbiB0aGFu aCBuaGllbSB2dS4NCg0KIkRvbmcgdGhvaSwgY2h1YSB0aHVjIHN1IGdhbiBuYW5nIGx1YyBsYW5o IGRhbyB2b2kgdmkgdHJpIGNvbmcgdGFjIG5lbiBtb3Qgc28gdG9uZyBjb25nIA0KdHkga2luaCBk b2FuaCB0aHVhIGxvIGxpZW4gdHVjLCBrZW8gZGFpIG5odW5nIGhvaSBkb25nIHF1YW4gdHJpLCB0 b25nIGdpYW0gZG9jIGtob25nIGJpIA0KeHUgbHkgdHJhY2ggbmhpZW0sIG1pZW4gbmhpZW0gaG9h YyBiaSBjYWNoIGNodWMiLCBDaGluaCBwaHUgbmhpbiBuaGFuLg0KVHV5IG5oaWVuLCBkYSBraG9u ZyB0aGUgdGltIHRoYXkgdGVuIG5odW5nIGRvYW5oIG5naGllcCBjdSB0aGUgZGUgbWluaCBjaHVu ZyBjaG8gbm9pIA0KZHVuZyBiYW8gY2FvIG5heSEgDQoNCkNvbmcgdGFjIGNhbiBibyBjdW5nIGxh IHZhbiBkZSBkYSBkdW9jIGtob25nIGl0IGRhaSBiaWV1IGRlIGNhcCBraGkgbm9pIHZlIGhhbiBj aGUgdHJvbmcgDQpjaGkgZGFvIGRpZXUgaGFuaCBub2kgY2h1bmcgdmEgbW8geGUgdmUgc2FpIHBo YW0gY3VhIFZpbmFzaGluIG5vaSByaWVuZyB0YWkgbmhpZXUgcGhpZW4gDQp0aGFvIGx1YW4gdmUg a2luaCB0ZSwgeGEgaG9pIHZ1YSBkaWVuIHJhLg0KDQpUaGVvIGRhaSBiaWV1IENhbyBTeSBLaWVt LCBiYW8gY2FvIGN1YSBDaGluaCBwaHUgdmUgdGluaCBoaW5oIGtpbmggdGUsIHhhIGhvaSB0YWkg a3kgDQpob3AgbmF5IGRhIG5ldSB2YSBwaGFuIHRpY2ggcGhhbiBraHV5ZXQgZGllbSwgaGFuIGNo ZSBraGEgdG9hbiBkaWVuLCBzYXQgdGh1YyB0ZS4gRGFjIA0KYmlldCBsYSBuZXUgbmd1eWVuIG5o YW4gY2h1IHF1YW4gdmUgcXVhbiBseSB2YSBkaWV1IGhhbmgsIG5odW5nIHRpZWMgcmFuZyBuaHVu ZyBkaWVtIA0KbmV1IHRyYWNoIG5oaWVtIGNodWEgY3UgdGhlIHZhIGNodWEgcm8gbyBtb3Qgc28g dmkgdHJpLiBLaGF1IHF1YW4gbHkga2luaCB0ZSB2YSBxdWFuIGx5IA0KY29uIG5ndW9pIGN1YSBs YSBuZ3V5ZW4gbmhhbiByYXQgcXVhbiB0cm9uZyB2YSB0cmFtIHRyb25nLCBnYXkgcmEgdGhhdCB0 aG9hdCB0YWkgc2FuIHRpZW4gDQp2b24sIGdheSB4b2kgbW9uIGxvbmcgdGluIHZhIHN1IHhvaSBt b24gbmF5IGRhbmcgY2FuZyB0YW5nIG5oYW5oLiANCg0KQmF5IHRvIHN1IGRvbmcgdGluaCB2b2kg eSBraWVuIG5heSwgZGFpIGJpZXUgTmd1eWVuIER1YyBLaWVuIGRhIG5oYW4gbWFuaCBjb25nIHRh YyANCmNhbiBibyBvIFZpbmFzaGluLiAiRG9pIHZvaSBWaW5hc2hpbiB0aGkgdmllYyBkZSBxdWEg bGF1IG1vdCBjYSBuaGFuIHZ1YSBsYSBDaHUgdGljaCBIb2kgDQpkb25nIFF1YW4gdHJpLCB2dWEg bGEgVG9uZyBnaWFtIGRvYywgdnVhIGxhIEJpIHRodSBEYW5nIHV5IGN1YSB0YXAgZG9hbiB0aGkg ZGF5IGN1bmcgbGEgDQptb3QgdHJvbmcgbmh1bmcgZGlldSBraWVuIHRhbyBjaG8gc2FpIHNvdCBj dWEgVmluYXNoaW4gbmFuZyBuZSBob24iLCBvbmcgS2llbiBwaGFuIHRpY2guDQoNCmh0dHA6Ly9i b3hpdHZuLndvcmRwcmVzcy5jb20vMjAxMC8xMS8wMi90b24tdmFuLXBodC1iaSVFMSVCQiU4M3Ut YyVFMSVCQiVBN2EtZ3Mtbmd1eSVFMSVCQiU4NW4tbWluaC10aHV5JUUxJUJBJUJGdC8gRGFuZyBi b2kgYnZucG9zdCBvbiAwMi8xMS8yMDEwIA0KDQpEYWkgYmlldSBRdW9jIGhvaSBkZSBuZ2hpIGRp bmggY2hpIGNodWMgdnUgb25nIE5ndXllbiBUYW4gRHVuZyANCg0KVG9hbiB2YW4gcGhhdCBiaWV1 IGN1YSBHUyBOZ3V5ZW4gTWluaCBUaHV5ZXQgIA0KDQpMb2kgZ2lvaSB0aGlldTogUGhpZW4gaG9w IFF1b2MgaG9pIHNhbmcgbmdheSAxLzExLzIwMTAgY28gbW90IHN1IGtpZW4gY2hhbiBkb25nOiBt b3QgDQpkYWkgYmlldSBraWVuIG5naGkgUXVvYyBob2kgdGhhbmggbGFwIFV5IGJhbiBsYW0gdGhv aSBkaWV1IHRyYSB0cmFjaCBuaGllbSBjdWEgY2FjIHRoYW5oIA0KdmllbiBDaGluaCBwaHUgdHJv bmcgdnUgVmluYXNoaW4sIGJvIHBoaWV1IHRpbiBuaGllbSBUaHUgdHVvbmcgdmEgbW90IHNvIHRo YW5oIHZpZW4gDQpDaGluaCBwaHUgY28gbGllbiBxdWFuLCBkb25nIHRob2kgdGFtIGRpbmggY2hp IGNodWMgdnUgY3VhIG5odW5nIG5ndW9pIGNhbiBkdW9jIGRpZXUgDQp0cmEuIFRhYyBnaWEgY3Vh IGtpZW4gbmdoaSBkbyBsYSBHaWFvIHN1IE5ndXllbiBNaW5oIFRodXlldC4gDQoNCkxhbiBkYXUg dGllbiB0cm9uZyBsaWNoIHN1IFF1b2MgaG9pIFZpZXQgTmFtIHR1IG5hbSAxOTQ2IGRlbiBuYXkg Y28gbW90IGtpZW4gbmdoaSBuaHUgDQp0aGUuIEtpZW4gbmdoaSBuYXksIGN1bmcgdm9pIHF1eWV0 IGRpbmggYmFjIGJvIGR1IGFuIHRhdSBjYW8gdG9jLCBkYSB2aW5oIGRhbmggY2hvIFF1b2MgDQpo b2kga2hvYSBYSUkuIEtpZW4gbmdoaSBraG9uZyBuZ2FuIG5nYWkgbmV1IHRoYW5nIGRpYSBjaGkg Y2hpdSB0cmFjaCBuaGllbSB2dSBWaW5hc2luOiBvbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVu Zy4gDQpRdW9jIGhvaSBjaHVuZyB0YSBjbyBkYXkgZHUgcXV5ZW4gaGFuIGx1YXQgZGluaCBuaHVu ZyBiYW8gbmhpZXUgbmFtIG5heSwgZG8gbGEgcXV5ZW4gDQpoYW4gdHJlbiBnaWF5LiBEdWEgcmEg a2llbiBuZ2hpIG5heSwgR2lhbyBzdSBOZ3V5ZW4gTWluaCBUaHV5ZXQgbGFuIGRhdSB0aWVuIGNo byBxdW9jIA0KZGFuIGJpZXQ6IGRvIGxhIG1vdCBxdXllbiBoYW4gaGllbiB0aHVjLCBtaWVuIGxh IG5ndW9pIGRhaSBiaWV1IGNobyBkYW4gZHUgZHVuZyBraGkuDQoNClhpbiBjYW0gb24gR2lhbyBz dSBOZ3V5ZW4gTWluaCBUaHV5ZXQhDQpCYXV4aXRlIFZpZXQgTmFtDQoqKioNCg0KUGhhdCBiaWV1 IHZlIHRpbmggaGluaCBraW5oIHRlIC0geGEgaG9pIHRhaSBRdW9jIGhvaSBzYW5nIG5nYXkgMS0x MS0yMDEwIA0KDQpUaHVhIFF1eSB2aSBjaHUgdG9hLA0KVGh1YSBRdXkgdmkgZGFpIGJpZXUgdmEg a2hhY2ggbW9pLCANCg0KVGhlbyBiYW8gY2FvIGN1YSBDaGluaCBwaHUsIG5hbSAyMDEwIG5heSwg bnVvYyB0YSBkYSBkYXQgdmEgdnVvdCAxNi8yMSBjaGkgdGlldSBtYSANClF1b2MgaG9pIGRlIHJh LiBDdW5nIG5odSBkb25nIGRhbyBuZ3VvaSBkYW4sIHRvaSByYXQgaGFuIGhvYW4gdHJ1b2MgdGlu IHZ1aSBuYXkgdmEgaGV0IA0Kc3VjIHRyYW4gdHJvbmcgbmh1bmcga2V0IHF1YSBkYSBkYXQgZHVv Yy4gVHV5IG5oaWVuLCB0b2kgY3VuZyB2byBjdW5nIGxvIGxhbmcgdHJ1b2MgDQpuaHVuZyBraHV5 ZXQgZGllbSBuZ2hpZW0gdHJvbmcgdHJvbmcgZGlldSBoYW5oIG5lbiBraW5oIHRlIG1hIGJhbyBj YW8gY3VhIENoaW5oIHBodSANCnBoYW4gdGljaCBjaHVhIHNhdSwgY2h1YSBkdSBjdSB0aGUgdmEg bmdoaWVtIGtoYWMuDQoNClRyb25nIHRob2kgZ2lhbiBjbyBoYW4sIHRvaSBjaGkgdGFwIHRydW5n IG5vaSB2ZSB2dSBUYXAgZG9hbiBDb25nIG5naGllcCB0YXUgdGh1eSBWaWV0IA0KTmFtIChWaW5h c2hpbikgc3VwIGRvLiBWYW5nLCB0aHVjIHN1IGxhIG5vIGRhIHN1cCBkbywgbWFjIGR1IGNodW5n IHRhIGNvIHRoZSBkdW5nIA0Kbmh1bmcgdHUgbmd1IG5oZSBuaGFuZyBob24gdGhlbyB0cnV5ZW4g dGhvbmcgdHUgdHUgY3VhIG1pbmguIA0KVGFwIGRvYW4gVmluYXNoaW4gc3VwIGRvIGRhIHRydXQg bGVuIHZhaSBkb25nIGJhbyBtb24gbm8ga2hvbmcgbG8ga2hvbmcgZHVvaSAxMDAuMDAwIA0KdHkg ZG9uZywgbW9uIG5vIG1hIG1vdCB0aW5oIHRodSBuaGFwIGNvIDEwMDAgdHkgZG9uZy9uYW0gcGhh aSBsYW0gcXVhbiBxdWF0LCBraG9uZyANCm11YSBzYW0sIGFuIHVvbmcsIG1heSBtYWMgZ2kgc3Vv dCBtb3QgdGhlIGt5IG1vaSB0cmEgbm9pLiBEb2kgdm9pIGRvbmcgYmFvIG5oaWV1IG5vaSwgDQpu aGF0IGxhIG5vbmcgdGhvbiwgbWllbiBudWkgdGhpIHRyYSBtb24gbm8ga2hvbmcgbG8gbmF5IGNv IG5naGlhIGxhIGNoYW0gbGFtIGR1b25nLCANCmxhbSBjYXUsIHhheSB0cnVvbmcgaG9jLCBiZW5o IHZpZW4sLi4uIJYgbmh1bmcgbmh1IGNhdSByYXQgdGhpZXQgeWV1IGNobyBjdW9jIHNvbmcgY3Vh DQpkb25nIGJhby4NClNhaSBwaGFtIHRyb25nIGNoaSBkYW8sIGRpZXUgaGFuaCB0aGkgZGEgcm8u IE5odW5nIGNvIG1vdCBjYXUgaG9pIGRlbiBuYXkgdmFuIGNodWEgY28gDQpjYXUgdHJhIGxvaSBs YTogIk5nb2FpIGxhbmggZGFvIFZpbmFzaGluLCBjb24gbmh1bmcgYWkgcGhhaSBjaGl1IHRyYWNo IG5oaWVtIHZlIG5odW5nIHNhaSANCnBoYW0gbmF5PyIuDQoNCkJhbyBjYW8gY3VhIENoaW5oIHBo dSBjaG8gYmlldCAiQ2hpbmggcGh1IGNvIHRyYWNoIG5oaWVtIiB2YSAiZGEgbmdoaWVtIHR1YyBr aWVtIA0KZGllbSIuIE5odW5nIGN1IHRoZSBuaHUgdGhlIG5hbz8gVGhlbyB0b2kgaGlldSwgdHJv bmcgdHJ1b25nIGhvcCBuYXksIGNhYyB0aGFuaCB2aWVuIA0KQ2hpbmggcGh1IGNvIGxpZW4gcXVh biBwaGFpIGtpZW0gZGllbSB2YSBuaGFuIGt5IGx1YXQgdHJ1b2MgUXVvYyBob2ksIGNvIHF1YW4g ZGFpIGRpZW4gDQpuaGFuIGRhbiBjYSBudW9jIGJhdSByYSBtaW5oOyBraG9uZyB0aGUgY2hpIG5o YW4ga2h1eWV0IGRpZW0gbW90IGNhY2ggY2h1bmcgY2h1bmcgdmEgDQp0dXllbiBibyBkYSBraWVt IGRpZW0gbm9pIGJvIGxhIHJ1IHhvbmcgdHJhY2ggbmhpZW0uDQpWdSB2aWVjIG5heSBuaGFjIHRv aSBuaG8gZGVuIHZ1IGFuIExhIFRoaSBLaW0gT2FuaCBvIEJvIE5vbmcgbmdoaWVwIHZhIFBoYXQg dHJpZW4gDQpub25nIHRob24gY2FjaCBkYXkgaG9uIDYgbmFtLiBWaSBudW9uZyBjaGlldSwgbHVv biBhcCBkdW5nIG5odW5nICJzaWV1IGNvIGNoZSIgY2hvIA0KY29uZyB0eSBjdWEgTGEgVGhpIEtp bSBPYW5oLCBkYW4gZGVuIHRoYXQgdGhvYXQgdHJlbiAxMDAgdHkgZG9uZyBtYSBtb3QgdmkgQm8g dHJ1b25nIA0KZGFuZyByYXQgZHVvYyBsb25nIGRhbiwgZHVvYyBsb25nIGRhaSBiaWV1IFF1b2Mg aG9pIGRhIHBoYWkgdHUgY2h1YyB2YSBoYWkgdmkgVGh1IA0KdHJ1b25nIHBoYWkgcmEgdHJ1b2Mg dmFuaCBtb25nIG5ndWEuDQoNClZpbmFzaGluIGxhIG1vdCBraWV1IExhIFRoaSBLaW0gT2FuaCBw aG9uZyBkYWkgY28gMTAwMCBsYW4uIFRoYW0gdHJhIGJhbyBjYW8gY3VhIA0KQ2hpbmggcGh1IHZl IGNvbmcgdGFjIHBob25nIGNob25nIHRoYW0gbmh1bmcgbmFtIG5heSwgVXkgYmFuIFR1IHBoYXAg Y3VhIFF1b2MgaG9pIA0KZGEgbmhhbiBkaW5oICJjbyBkYXUgaGlldSBiYW8gY2hlIGNobyBuaHVu ZyBzYWkgdHJhaSwgdmkgcGhhbSBwaGFwIGx1YXQgY3VhIFZpbmFzaGluLCANCmxhbSB0aGlldCBo YWkgbG9uIGRlbiB0aWVuIHZhIHRhaSBzYW4gbmhhIG51b2MiLiBOaHVuZyBhaSBiYW8gY2hlLCBi YW8gY2hlIHRoZSBuYW8sIHZpIA0Kbmd1eWVuIG5oYW4gZ2ksIG5oYW0gbXVjIGRpY2ggZ2kgdmEg cGhhaSBjaGl1IHRyYWNoIG5oaWVtIHRoZSBuYW8gdGhpIFV5IGJhbiBUdSBwaGFwIA0KY2h1YSBj byBkaWV1IGtpZW4ga2V0IGx1YW4uIFRoZSBtYSBRdW9jIGhvaSBraG9uZyBsYW0gcm8gZHVvYyBk aWV1IG5heSB0aGkga2hvbmcgaG9hbiANCnRoYW5oIG5oaWVtIHZ1IHRydW9jIERhbmcsIHRydW9j IGRhbi4NClZpIHZheSwgY2FuIGN1IEhpZW4gcGhhcCB2YSBMdWF0IFRvIGNodWMgUXVvYyBob2ks IHRvaSB0cmFuIHRyb25nIGRlIG5naGkgVXkgYmFuIA0KVGh1b25nIHZ1IFF1b2MgaG9pIHRvIGNo dWMgZGUgUXVvYyBob2kgYmlldSBxdXlldCB0aGFuaCBsYXAgVXkgYmFuIGxhbSB0aG9pIGRpZXUg dHJhIA0KdHJhY2ggbmhpZW0gY3VhIGNhYyB0aGFuaCB2aWVuIENoaW5oIHBodSB0cm9uZyB2dSB2 aWVjIG5heSwgdHJlbiBjbyBzbyBkbywgdmFvIHRob2kgZ2lhbiANCmN1b2kga3kgaG9wLCBibyBw aGlldSB0aW4gbmhpZW0gVGh1IHR1b25nIHZhIG1vdCBzbyB0aGFuaCB2aWVuIENoaW5oIHBodSBj byBsaWVuIHF1YW4uDQoNCkRlIHRhbyBkaWV1IGtpZW4gY2hvIGNvbmcgdGFjIGRpZXUgdHJhIGN1 YSBVeSBiYW4gbGFtIHRob2ksIHRvaSBkZSBuZ2hpIFF1b2MgaG9pIHRhbSANCmRpbmggY2hpIGNo dWMgdnUgY3VhIGNhYyB2aSBjYW4gZHVvYyBkaWV1IHRyYS4NCg0KVGh1YSBRdXkgdmkgY2h1IHRv YSwNClRodWEgUXV5IHZpIGRhaSBiaWV1IHZhIGtoYWNoIG1vaSwgDQoNCk5vaSBuaHVuZyBkaWV1 IHRyZW4sIHRvaSBjYW0gdGhheSByYXQgZGF1IHhvdCB2YSBraG8ga2hhbi4gTmh1bmcgY2h1bmcg dGEgY28geHUgbHkgDQpuZ2hpZW0gdnUgdmllYyBuYXkgdGhpIG1vaSB0aGUgaGllbiBkdW9jIHN1 IGNvbmcgbWluaCBjdWEgcGhhcCBsdWF0LCBoYW4gY2hlIGR1b2MgDQpuaHVuZyBkdSBhbiBsYW0g YW4gcGhhIGN1YSwgYm9jIHRyb2ksIGR1YSBob2F0IGRvbmcgY3VhIGNhYyBkb2FuaCBuZ2hpZXAg bmhhIG51b2MgdmFvIA0KcXV5IGRhbyBsYW5oIG1hbmgsIGRhbSBiYW8gY2hvIGtpbmggdGUgcGhh dCB0cmllbiBiZW4gdnVuZyB2YSBsYXkgbGFpIGR1b2MgbmllbSB0aW4gY3VhIA0KbmhhbiBkYW4g dmFvIHN1IGxhbmggZGFvIGN1YSBEYW5nLCB2YW8gcXV5ZXQgdGFtIGN1YSBEYW5nIHZhIE5oYSBu dW9jIHRhIHRodWMgaGFuaCANCnRpZXQga2llbSwgY2hvbmcgbGFuZyBwaGksIHRoYW0gbmh1bmcu DQoNClRodWEgUXV5IHZpLCANCg0KSG9tIG5heSwgdG9pIGRvYyBtb3QgdmFuIGJhbiBkYSBjaHVh biBiaSBzYW4gbGEgZGUgbmdheSBzYXUgYnVvaSBob3AgbmF5IHRyaW5oIFV5IGJhbiANClRodW9u ZyB2dSBRdW9jIGhvaSBuaHUgbW90IGtpZW4gbmdoaSBjaGluaCB0aHVjIGN1YSBkYWkgYmlldS4N ClRyYW4gdHJvbmcgZGUgbmdoaSBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIGtoYW4gdHJ1b25n IHhlbSB4ZXQgdmEgY2hvIGJpZXUgcXV5ZXQgDQp2ZSBraWVuIG5naGkgY3VhIHRvaS4NCg0KWGlu IGNhbSBvbi4NCg0KQ09ORyBIT0EgWEEgSE9JIENIVSBOR0hJQSBWSUVUIE5BTQ0KRG9jIGxhcCCW IFR1IGRvIJYgSGFuaCBwaHVjDQoqKioNCg0KSGEgTm9pLCBuZ2F5IDEgdGhhbmcgMTEgbmFtIDIw MTANCg0KS2luaCBndWk6IFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2kgTnVvYyBDb25nIGhvYSB4 YSBob2kgY2h1IG5naGlhIFZpZXQgTmFtIA0KDQpUb2kgbGEgTmd1eWVuIE1pbmggVGh1eWV0LCBk YWkgYmlldSBRdW9jIGhvaSBraG9hIFhJSSwgRG9hbiBkYWkgYmlldSBRdW9jIGhvaSB0aW5oIA0K TGFuZyBTb24sIHhpbiBndWkgZGVuIGNhYyB2aSBVeSB2aWVuIFV5IGJhbiBUaHVvbmcgdnUgUXVv YyBob2kgbG9pIGNoYW8gdHJhbiB0cm9uZywgDQpraW5oIGRlIG5naGkgVXkgYmFuIFRodW9uZyB2 dSBRdW9jIGhvaSB4ZW0geGV0IGtpZW4gbmdoaSB0cmluaCBiYXkgZHVvaSBkYXkuDQoNClRoZW8g YmFvIGNhbyBjdWEgQ2hpbmggcGh1LCBuYW0gMjAxMCBuYXksIG51b2MgdGEgZGEgZGF0IDE2LzIx IGNoaSB0aWV1IG1hIFF1b2MgaG9pIA0KZGUgcmEuIEN1bmcgbmh1IGRvbmcgZGFvIG5ndW9pIGRh biwgdG9pIHJhdCBoYW4gaG9hbiB0cnVvYyB0aW4gdnVpIG5heSB2YSBoZXQgc3VjIHRyYW4gDQp0 cm9uZyBuaHVuZyBrZXQgcXVhIGRhIGRhdCBkdW9jLg0KDQpUdXkgbmhpZW4sIHRvaSBjdW5nIHZv IGN1bmcgbG8gbGFuZyB0cnVvYyBuaHVuZyBraHV5ZXQgZGllbSBuZ2hpZW0gdHJvbmcgdHJvbmcg ZGlldSANCmhhbmggbmVuIGtpbmggdGUgbWEgYmFvIGNhbyBjdWEgQ2hpbmggcGh1IHBoYW4gdGlj aCBjaHVhIHNhdSwgY2h1YSBkdSBjdSB0aGUgdmEgDQpuZ2hpZW0ga2hhYy4NCg0KVHJvbmcga2h1 b24ga2hvIGtpZW4gbmdoaSBuYXksIHRvaSBjaGkgdGFwIHRydW5nIG5vaSB2ZSB2dSBUYXAgZG9h biBDb25nIG5naGllcCB0YXUgDQp0aHV5IFZpZXQgTmFtIChWaW5hc2hpbikgc3VwIGRvLCB0cnV0 IGxlbiB2YWkgZG9uZyBiYW8gbW9uIG5vIGtob25nIGxvIGtob25nIGR1b2kgDQoxMDAuMDAwIHR5 IGRvbmcsIG1vbiBubyBtYSBtb3QgdGluaCB0aHUgbmhhcCBjbyAxMDAwIHR5IGRvbmcgLyBuYW0g cGhhaSBsYW0gcXVhbiANCnF1YXQsIGtob25nIG11YSBzYW0sIGFuIHVvbmcsIG1heSBtYWMgZ2kg c3VvdCBtb3QgdGhlIGt5IG1vaSB0cmEgbm9pLiBTYWkgcGhhbSB0cm9uZyANCmNoaSBkYW8sIGRp ZXUgaGFuaCB0aGkgZGEgcm8uIE5odW5nIGNvIG1vdCBjYXUgaG9pIGRlbiBuYXkgdmFuIGNodWEg Y28gY2F1IHRyYSBsb2kgDQpsYTogIk5nb2FpIGxhbmggZGFvIFZpbmFzaGluLCBjb24gbmh1bmcg YWkgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIHZlIG5odW5nIHNhaSBwaGFtIG5heT8iLg0KQmFvIGNh byBjdWEgQ2hpbmggcGh1IGNobyBiaWV0ICJDaGluaCBwaHUgY28gdHJhY2ggbmhpZW0iIHZhICJk YSBuZ2hpZW0gdHVjIGtpZW0gDQpkaWVtIi4gTmh1bmcgY3UgdGhlIG5odSB0aGUgbmFvPyBUaGVv IHRvaSBoaWV1LCB0cm9uZyB0cnVvbmcgaG9wIG5heSwgY2FjIHRoYW5oIHZpZW4gDQpDaGluaCBw aHUgY28gbGllbiBxdWFuIHBoYWkga2llbSBkaWVtIHZhIG5oYW4ga3kgbHVhdCB0cnVvYyBRdW9j IGhvaSwgY28gcXVhbiBkYWkgZGllbiANCm5oYW4gZGFuIGNhIG51b2MgYmF1IHJhIG1pbmg7IGto b25nIHRoZSBjaGkgbmhhbiBraHV5ZXQgZGllbSBtb3QgY2FjaCBjaHVuZyBjaHVuZyB2YSANCnR1 eWVuIGJvIGRhIGtpZW0gZGllbSBub2kgYm8gbGEgcnUgeG9uZyB0cmFjaCBuaGllbS4NClZ1IHZp ZWMgbmF5IG5oYWMgdG9pIG5obyBkZW4gdnUgYW4gTGEgVGhpIEtpbSBPYW5oIG8gQm8gTm9uZyBu Z2hpZXAgdmEgUGhhdCB0cmllbiANCm5vbmcgdGhvbiBjYWNoIGRheSBob24gNiBuYW0uIFZpIG51 b25nIGNoaWV1LCBsdW9uIGFwIGR1bmcgbmh1bmcgInNpZXUgY28gY2hlIiBjaG8gDQpjb25nIHR5 IGN1YSBMYSBUaGkgS2ltIE9hbmgsIGRhbiBkZW4gdGhhdCB0aG9hdCB0cmVuIDEwMCB0eSBkb25n IG1hIG1vdCB2aSBCbyB0cnVvbmcgDQpkYW5nIHJhdCBkdW9jIGxvbmcgZGFuLCBkdW9jIGxvbmcg ZGFpIGJpZXUgUXVvYyBob2kgZGEgcGhhaSB0dSBjaHVjIHZhIGhhaSB2aSBUaHUgDQp0cnVvbmcg cGhhaSByYSB0cnVvYyB2YW5oIG1vbmcgbmd1YS4NCg0KVmluYXNoaW4gbGEgbW90IGtpZXUgTGEg VGhpIEtpbSBPYW5oIHBob25nIGRhaSBjbyAxMDAwIGxhbi4gVGhhbSB0cmEgYmFvIGNhbyBjdWEg DQpDaGluaCBwaHUgdmUgY29uZyB0YWMgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBuYW0gbmF5LCBV eSBiYW4gVHUgcGhhcCBjdWEgUXVvYyBob2kgDQpkYSBuaGFuIGRpbmggImNvIGRhdSBoaWV1IGJh byBjaGUgY2hvIG5odW5nIHNhaSB0cmFpLCB2aSBwaGFtIHBoYXAgbHVhdCBjdWEgVmluYXNoaW4s IA0KbGFtIHRoaWV0IGhhaSBsb24gZGVuIHRpZW4gdmEgdGFpIHNhbiBuaGEgbnVvYyIuIE5odW5n IGFpIGJhbyBjaGUsIGJhbyBjaGUgdGhlIG5hbywgdmkgDQpuZ3V5ZW4gbmhhbiBnaSwgbmhhbSBt dWMgZGljaCBnaSB2YSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdGhlIG5hbyB0aGkgVXkgYmFuIFR1 IHBoYXAgDQpjaHVhIGNvIGRpZXUga2llbiBrZXQgbHVhbi4gVGhlIG1hIFF1b2MgaG9pIGtob25n IGxhbSBybyBkdW9jIGRpZXUgbmF5IHRoaSBraG9uZyBob2FuIA0KdGhhbmggbmhpZW0gdnUgdHJ1 b2MgRGFuZywgdHJ1b2MgZGFuLg0KDQpWaSB2YXksIGNhbiBjdSBIaWVuIHBoYXAgdmEgTHVhdCBU byBjaHVjIFF1b2MgaG9pLCB0b2kgdHJhbiB0cm9uZyBkZSBuZ2hpIFV5IGJhbiANClRodW9uZyB2 dSBRdW9jIGhvaSB0byBjaHVjIGRlIFF1b2MgaG9pIGJpZXUgcXV5ZXQgdGhhbmggbGFwIFV5IGJh biBsYW0gdGhvaSBkaWV1IHRyYSANCnRyYWNoIG5oaWVtIGN1YSBjYWMgdGhhbmggdmllbiBDaGlu aCBwaHUgdHJvbmcgdnUgdmllYyBuYXksIHRyZW4gY28gc28gZG8sIHZhbyB0aG9pIGdpYW4gDQpj dW9pIGt5IGhvcCwgYm8gcGhpZXUgdGluIG5oaWVtIFRodSB0dW9uZyB2YSBtb3Qgc28gdGhhbmgg dmllbiBDaGluaCBwaHUgY28gbGllbiBxdWFuLg0KRGUgdGFvIGRpZXUga2llbiBjaG8gY29uZyB0 YWMgZGlldSB0cmEgY3VhIFV5IGJhbiBsYW0gdGhvaSwgdG9pIGRlIG5naGkgUXVvYyBob2kgdGFt IA0KZGluaCBjaGkgY2h1YyB2dSBjdWEgY2FjIHZpIGNhbiBkdW9jIGRpZXUgdHJhLg0KDQpUaHVh IGNhYyB2aSBVeSB2aWVuIFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2ksDQoNCk5vaSBuaHVuZyBk aWV1IHRyZW4sIHRvaSBjYW0gdGhheSByYXQgZGF1IHhvdCB2YSBraG8ga2hhbi4gTmh1bmcgY2h1 bmcgdGEgY28geHUgbHkgDQpuZ2hpZW0gdnUgdmllYyBuYXkgdGhpIG1vaSB0aGUgaGllbiBkdW9j IHN1IGNvbmcgbWluaCBjdWEgcGhhcCBsdWF0LCBoYW4gY2hlIGR1b2MgDQpuaHVuZyBkdSBhbiBs YW0gYW4gcGhhIGN1YSwgYm9jIHRyb2ksIGR1YSBob2F0IGRvbmcgY3VhIGNhYyBkb2FuaCBuZ2hp ZXAgbmhhIG51b2MgdmFvIA0KcXV5IGRhbyBsYW5oIG1hbmgsIGRhbSBiYW8gY2hvIGtpbmggdGUg cGhhdCB0cmllbiBiZW4gdnVuZyB2YSBsYXkgbGFpIGR1b2MgbmllbSB0aW4gY3VhIA0KbmhhbiBk YW4gdmFvIHN1IGxhbmggZGFvIGN1YSBEYW5nLCB2YW8gcXV5ZXQgdGFtIGN1YSBEYW5nIHZhIE5o YSBudW9jIHRhIHRodWMgaGFuaCANCnRpZXQga2llbSwgY2hvbmcgbGFuZyBwaGksIHRoYW0gbmh1 bmcuDQoNClRyYW4gdHJvbmcgZGUgbmdoaSBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIGtoYW4g dHJ1b25nIHhlbSB4ZXQgdmEgY2hvIGJpZXUgcXV5ZXQgDQp2ZSBraWVuIG5naGkgY3VhIHRvaS4N ClhpbiBjYW0gb24uDQpEYWkgYmlldSBRdW9jIGhvaQ0KTmd1eWVuIE1pbmggVGh1eWV0DQoNCipW YW4gYmFuIGRvIEdTIE5ndXllbiBNaW5oIFRodXlldCBndWkgdHJ1YyB0aWVwIGNobyBOZ3V5ZW4g WHVhbiBEaWVuLUJsb2cuDQpYaW4gY2hhbiB0aGFuaCBjYW0gb24gR2lhbyBzdSENCihOZ3Vvbjog Tmd1eWVueHVhbmRpZW4gQmxvZykgDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMjAtNDM0 MDcxL3ZpbmFzaGluLW5odS1xdXktdHUta2hpLXF1YS1udW9uZy1jaGlldS5odG0gTGFuIEh1b25n IDAzLzExLzIwMTAgLSAwNjozMA0KDQpUaHUgdHVvbmc6IFZpbmFzaGluIG5odSBxdXkgdHUga2hp IHF1YSBudW9uZyBjaGlldS4uLg0KDQooRGFuIHRyaSkgLSBDaGluaCBwaHUgZGEgZGFuaCBxdWEg bmhpZXUgdXUgZGFpIGNobyBjYWMgdGFwIGRvYW4ga2luaCB0ZSBOaGEgbnVvYywgY29pIGhvIA0K bmh1IGNvbiBjaGluaCB0aHVjLCB0aGFtIGNoaSBjb24gbGEgcXV5IHR1LiBDb24gY2FpIG1hIHF1 YSBudW9uZyBjaGlldSwgaHUgaG9uZyBsYSBkaWV1IA0KZGUgaGlldSwgdHJhY2ggbmhpZW0gZG8g dGh1b2MgdmUgQ2hpbmggcGh1Li4uDQoNCkNvaSB2b24gbGEgdGFpIHNhbiBjdWEgdHJvaSBjaG8N CiANClRyb25nIDIgbmdheSB0aGFvIGx1YW4gbyBob2kgdHJ1b25nIHZlIHRpbmggaGluaCBwaGF0 IHRyaWVuIGtpbmggdGUgLSB4YSBob2ksIHZhbiBkZSB0cm9uZyANCmNhYyB0YXAgZG9hbiBraW5o IHRlLCBjYWMgdG9uZyBjb25nIHR5IE5oYSBudW9jIGRhIGR1b2MgbmhpZXUgZGFpIGJpZXUgUXVv YyBob2kgIm1vIHhlIi4NCiANCkRhbmcgY2h1IHksIGRhaSBiaWV1IE5ndXllbiBEYW5nIFRydW5n IChUUEhDTSkga2hhbmcgZGluaDogY28gMyBuZ3V5ZW4gbmhhbiANCmNoaW5oIGRhbiBkZW4gY2Fj IHRhcCBkb2FuIGtpbmggdGUgdmEgdG9uZyBjb25nIHR5IG5oYSBudW9jIGxhbSBhbiBrZW0gaGll dSBxdWEuDQogDQpUaHUgbmhhdCBsYSB2YW4gZGUgcXVhbiB0cmkgZG9hbmggbmdoaWVwLiBDYWNo IHF1YW4gdHJpIGRvYW5oIG5naGllcCB0YWkgY2FjIHRhcCBkb2FuIA0Ka2luaCB0ZSB2YSB0b25n IGNvbmcgdHkgbmhhIG51b2MgaGllbiBuYXkgbGFtIGNobyBjYWMgdG9uZyBnaWFtIGRvYyBjYWMg dGFwIGRvYW4ga2luaCANCnRlIHZhIHRvbmcgdHkgbmhhIG51b2MgY29pIHZvbiBuaGEgbnVvYywg dGFpIHNhbiBsYSBjdWEgdHJvaSBjaG8sIGN1YSB0aGllbiBoYSB2YSBjaGkgdGlldSANCnN1IGR1 bmcgdGhvYWkgbWFpIG1hIGtob25nIGNhbiB0aW5oIHRvYW4gaGlldSBxdWEuIA0KIA0KR2lvbmcg bmh1IG1vdCBiYSBub2kgdHJvIGRpIGNobyBiYW5nIHRpZW4gY3VhIG5ndW9pIGtoYWMsIG11YSBs dW5nIHR1bmcga2UgY2Egbmh1bmcgDQp0aHUga2hvbmcgc2FpIGN1bmcgbXVhLiBUaW5oIHRyYW5n IG5heSBkYSB4YXkgcmEgdGFpIFZpbmFzaGluLCBUaHUgdHVvbmcgZGEgY2hpIGRhbyANCmtob25n IGR1b2MgbXVhIHRhdSBkYSBxdWEgc3UgZHVuZywgdGF1IGN1IG5odW5nIFZpbmFzaGluIHZhbiBt dWEgdGF1IEhvYSBTZW4sIHRhdSBjdS4NCg0KKEFuaDogIkNvbiBjYWkgbWEgcXVhIG51b25nIGNo aWV1IHNlIGh1IGhvbmciIC0gRGFpIGJpZXUgTmd1eWVuIERhbmcgVHJ1bmcuIEFuaDogVmlldCBI dW5nKSANCiANClRodSBoYWksIENoaW5oIHBodSBkYSBkYW5oIHF1YSBuaGlldSB1dSBkYWkgY2hv IGNhYyB0YXAgZG9hbiBraW5oIHRlIHZhIHRvbmcgY29uZyB0eSANCk5oYSBudW9jLCBjb2kgZG9h bmggbmdoaWVwIE5oYSBudW9jIGxhIGNvbiBjaGluaCB0aHVjLCB0aGFtIGNoaSBsYSBjb24gcXV5 IHR1LCB0cm9uZyANCmtoaSBjYWMgdGhhbmggcGhhbiBraW5oIHRlIGtoYWMgbmh1IGtpbmggdGUg dHUgbmhhbiBjaGkgbGEgY29uIG5nb2FpIGdpYSB0aHUsIGNvbiBudW9pLiANCkNvbiBjYWkgbWEg cXVhIG51b25nIGNoaWV1LCBodSBob25nIGxhIGNodXllbiBiaW5oIHRodW9uZywgZGUgaGlldSwg dHJhY2ggbmhpZW0gZG8gDQp0aHVvYyB2ZSBDaGluaCBwaHUuDQogDQpUaHUgYmEsIHZ1YSBxdWEg Q2hpbmggcGh1IGRhIGFwIGR1bmcgbmh1bmcgcmFuZyBidW9jIGtpbmggdGUsIG5nYW4gc2FjaCBt YSBjYWMgbmhhIA0Ka2luaCB0ZSBnb2kgbGEgbmh1bmcgcmFuZyBidW9jIG5nYW4gc2FjaCBtZS4g RGlldSBuYXkgZGFuIGRlbiBjYWMgdGFwIGRvYW4ga2luaCB0ZSwgDQp0b25nIGNvbmcgdHkgTmhh IG51b2MgZGEgdGFuZyBkYXUgdHUgcXVhIG11YyB2YSBsYW0gaGlldSBxdWEgZGF1IHR1IHRoYXAu Li4NCiANCkR1b2kgZ29jIGRvIGtob2EgaG9jLCBkYWkgYmlldSBWdSBWaWV0IE5nb2FuIChLaGFu aCBIb2EpIGNvbiBibyBzdW5nIHRoZW0gbmh1bmcgDQpiYXQgY2FwIGtoYWMgbmh1OiB0cm9uZyBj YWMgdGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYywgdmllYyBuZ3VvaSBkYWkgZGllbiBjaHUgc28g aHV1IA0KdmFuIGRvbmcgdGhvaSBsYSBuZ3VvaSBxdWFuIGx5IGhhbmggY2hpbmggTmhhIG51b2Mg bGEgY2h1YSBob3AgbHkuDQogDQpLaG9uZyBuaHVuZyB2YXksIHN1IGtob25nIHBodSBob3AgdmEg dGhpZXUgdGluaCBraG9hIGhvYyBjb24gdGhlIGhpZW4gbyBjaG8gcXV5ZW4gdmEgDQpuZ2hpYSB2 dSBjdWEgZGFpIGRpZW4gY2h1IHNvIGh1dSBkYSBiaSBjYXQga2h1YyByYSwgVGh1IHR1b25nIGRh bSBuaGllbSBtb3Qgc28gcXV5ZW4gDQp2YSBuZ2hpYSB2dTsgQm8gdHJ1b25nIGNodXllbiBuZ2Fu aCBkYW0gbmhpZW0gbW90IHNvIHF1eWVuIHZhIG5naGlhIHZ1LCBIb2kgZG9uZyANCnF1YW4gdHJp IGN1bmcgdmF5Li4uDQogDQpNb3QgbHkgZG8gbnVhLCBCbyB0cnVvbmcgdGhhbSBjaGkgZGVuIFRo dSB0dW9uZyBoaWVuIGR1b2MgZ2lhbyB2YSBwaGFuIGRpbmggcXVhIG5oaWV1IA0KbmhpZW0gdnUg bWFuZyB0aW5oIGNoYXQga2luaCBkb2FuaCB2YSBzdSB2dSBkb2FuaCBuZ2hpZXAuICJUb2kgbmdo aSByYW5nIGtob25nIGFpIGNvIA0KZHUgdGhvaSBnaWFuLCBzdWMgbHVjIGRlIGRhbSBuaGllbSBt b3Qga2hvaSBsdW9uZyBjb25nIHZpZWMgcXVhIG5oaWV1IGRlbiBuaHUgdmF5IiAtIG9uZyBOZ29h biBub2kuDQogDQpWaWVjIGh1eSBkb25nIHZvbiBjYW5nIHRybyBuZW4ga2hvIGtoYW4NCiANCkRh aSBiaWV1IE5ndXllbiBEYW5nIFRydW5nIGNobyBiaWV0LCB2dSB2aWVjIFZpbmFzaGluIGtob25n IGNoaSBnYXkgdGFjIGhhaSBuZ2hpZW0gDQp0cm9uZyB0cm9uZyBudW9jIG1hIGNhIG51b2Mgbmdv YWkuIFNhdSBraGkgeGF5IHJhIHZ1IFZpbmFzaGluIGtoYSBuYW5nIGh1eSBkb25nIHZvbiANCmN1 YSBWaWV0IE5hbSB0cmVuIHRoaSB0cnVvbmcgcXVvYyB0ZSBjYW5nIHRybyBuZW4ga2hvIGtoYW4g dmEgdG9uIGtlbS4gDQogDQoiRGF5IGxhIHRoYXQgYmFpIGxvbiBjdWEgQ2hpbmggcGh1IHRyb25n IHF1YW4gbHkgZGlldSBoYW5oIGNhYyB0YXAgZG9hbiBraW5oIHRlIHZhIHRvbmcgDQpjb25nIHR5 IE5oYSBudW9jIiAtIG9uZyBUcnVuZyBraGFuZyBkaW5oLg0KIA0KQ2hpbmggdmkgdmF5LCB0aGVv IGRlIHh1YXQgY3VhIGRhaSBiaWV1LCBDaGluaCBwaHUgY2FuIHBoYWkgdGFwIHRydW5nIGNhaSBj YWNoLCBxdWFuIHRhbSANCmRhYyBiaWV0IHZhbiBkZSBxdWFuIHRyaSBkb2FuaCBuZ2hpZXAgdGFp IGNhYyB0YXAgZG9hbiBraW5oIHRlIHZhIHRvbmcgY29uZyB0eSBuaGEgbnVvYywgDQpuaHUgbmhp ZXUgbnVvYyBkYSBsYW0gcmF0IGhpZXUgcXVhOw0KIA0KVGh1YyBoaWVuIGxvaSBjYW0ga2V0IHNl IHhvYSBibyBtb2kgdXUgZGFpIGRvaSB2b2kgZG9hbmggbmdoaWVwIE5oYSBudW9jIG5ldSBraG9u ZyANCm5odW5nIHZ1IHZpZWMgdHVvbmcgdHUgbmh1IFZpbmFzaGluIHNlIHhheSByYSB0cm9uZyB0 dW9uZyBsYWksIGRvbmcgdGhvaSBwaGFpIGtpZW4gcXV5ZXQgDQpkYXQgZG9hbmggbmdoaWVwIE5o YSBudW9jIHRyb25nIG1vaSB0cnVvbmcgY2FuaCB0cmFuaCBjaHVuZy4NCiANClRyb25nIGRvLCBj YW4geG9hIGJvIG1vaSBoaW5oIHRodWMgY2hvIHZheSwgY2FwIHRpbiBkdW5nIHRoZW8gY2hpIGRh bywga2hvYW5oIG5vLCBnaWFuIA0Kbm8gY2hvIGRvYW5oIG5naGllcCBOaGEgbnVvYywga2hvbmcg bmhhbiB2aWVjIHRyYSBubywgeHUgbHkgdGhheSBjaG8gZG9hbmggbmdoaWVwIA0KTmhhIG51b2Ms IHRpbmggZHUgY2hpIHBoaSBkb2kgdm9pIGRvYW5oIG5naGllcCBOaGEgbnVvYyB0aGVvIGdpYSB0 aGkgdHJ1b25nLi4uDQogDQpUcm9uZyBjbyBjaGUsIGNoaW5oIHNhY2gsIG5odSBkYSBwaGFuIHRp Y2ggbyB0cmVuLCBkYWkgYmlldSBWdSBWaWV0IE5nb2FuIGtpZW4gbmdoaSBjYW4gDQp0YWNoIGNo dWMgbmFuZyBxdWFuIGx5IE5oYSBudW9jIHZhIGNodWMgbmFuZyBkYWkgZGllbiBjaHUgc28gaHV1 LiBWaWVjIHRhY2ggY2h1YyBuYW5nIA0KbmF5IGtob25nIGxhbSBnaWFtIHF1eWVuIHZhIHF1YW4g bHkgY3VhIE5oYSBudW9jIGRvaSB2b2kgZG9hbmggbmdoaWVwIHNvbmcgcGh1b25nIA0KdGh1YyBx dWFuIGx5IGN1YSBOaGEgbnVvYyBkb2kgdm9pIGRvYW5oIG5naGllcCBsYSB0aG9uZyBxdWEgZGFp IGRpZW4gY2h1IHNvIGh1dSBjdWEgDQptaW5oLg0KIA0KRG9uZyB0aG9pLCB0YW5nIGN1b25nIHRo aWV0IGNoZSBnaWFtIHNhdCB2YSBob2F0IGRvbmcgZ2lhbSBzYXQgY3VhIE5oYSBudW9jIGRvaSB2 b2kgDQpkb2FuaCBuZ2hpZXAsIGRhYyBiaWV0IG5lbiBjbyBjbyBxdWFuIGRhdSBtb2kgY2hpdSB0 cmFjaCBuaGllbSBnaWFtIHNhdCB2b24gY3VhIE5oYSANCm51b2MgdGFpIHRhcCBkb2FuLg0KRGF5 IGN1bmcgY2hpbmggbGEgYmF0IGNhcCBkYSBkdW9jIEJvIHRydW9uZyBCbyBLZSBob2FjaCB2YSBk YXUgdHUgVm8gSG9uZyBQaHVjIA0KbmhhbiBtYW5oIGtoaSBnaWFpIHRyaW5oIHZlIHZpZWMgZ2lh bSBzYXQgZGF1IHR1IHRhaSBjYWMgdGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYywgdHJvbmcgZG8g Y28gVmluYXNoaW4uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDEx L0NoYXQtdmFuLVRodS10dW9uZy12YS1oYWktYm8tdHJ1b25nLXZlLVZpbmFzaGluLTk0NzI1MS8g VGh1eSBDaHVuZyAxODo0NCwgMTMvMTEvMjAxMCAoR01UKzcpDQoNCkNoYXQgdmFuIFRodSB0dW9u ZyB2YSBoYWkgYm8gdHJ1b25nIHZlIFZpbmFzaGluDQoNCi0gQ2h1IG5oaWVtIFZhbiBwaG9uZyBR SCBUcmFuIERpbmggRGFuIGNobyBiaWV0IGR1IGtpZW4gVGh1IHR1b25nIGN1bmcgNCBibyB0cnVv bmcgDQpzZSBkYW5nIGRhbiB0cmEgbG9pIGNoYXQgdmFuIHZlIG1vdCBsb2F0IGNhYyB2YW4gZGUg bm9uZyBib25nIGN1YSBkYXQgbnVvYyB0dSAyMiAtIDI0LzExLg0KDQpUaGVvIG9uZyBEYW4sIHRy b25nIHNvIDE4NSBjYXUgY2hhdCB2YW4gY3VhIDgyIGRhaSBiaWV1IGd1aSB2ZSB0aW5oIGRlbiBo b20gbmF5IA0KKDEzLzExKSwgY2hpZW0gdGkgbGUgbG9uIGxhIGNhYyBjYXUgZGFuaCBjaG8gNCBC bzogQ29uZyB0aHVvbmcsIFRhaSBjaGluaCwgWSB0ZSB2YSBHaWFvIA0KdGhvbmcgLSBWYW4gdGFp LiBEdSBraWVuLCA0IEJvIHRydW9uZyBzZSBkYW5nIGRhbiBjdW5nIHZvaSBUaHUgdHVvbmcgTmd1 eWVuIFRhbiANCkR1bmcsIG5ndW9pIG5oYW4gZHVvYyAxOSBjaGF0IHZhbi4gRHUga2llbiwgb25n IHNlIGN1bmcgQm8gdHJ1b25nIFRhaSBjaGluaCB2YSANCkdpYW8gdGhvbmcgLSBWYW4gdGFpIHRy YSBsb2kgY2hhdCB2YW4gdmUgc2FpIHBoYW0gbyBWaW5hc2hpbi4NCg0KKEFuaDogQm8gdHJ1b25n IEdpYW8gdGhvbmcgLSBWYW4gdGFpIEhvIE5naGlhIER1bmcuIEFuaDogTEFEKQ0KDQpCbyB0cnVv bmcgQ29uZyB0aHVvbmcgVnUgSHV5IEhvYW5nIHNlIHBoYWkgZ2lhaSB0cmluaCB2ZSBoYWkgdmFu IGRlIG5vbmcgaGllbiBuYXk6IGRpZW4gdmEgZ2lhLg0KDQpDYXUgaG9pIHZlIHZpZWMgdGhpZXUg ZGllbiwgdGluaCB0cmFuZyBjYXQgZGllbiB0dXkgdGllbiBraG9uZyBiYW8gdHJ1b2MgYW5oIGh1 b25nIA0KbmdoaWVtIHRyb25nIGRlbiBzYW4geHVhdCB2YSBzaW5oIGhvYXQsIGRhIGR1b2MgZGF0 IHJhIG5oaWV1IGxhbiB0cm9uZyBjYWMga3kgaG9wIHRydW9jLCANCm5heSB0aWVwIHR1YyBkdW9j IG5ldSBsZW4gZ2F0IGdhby4gT25nIFZ1IEh1eSBIb2FuZyBjb24gcGhhaSBsYW0gcm8gcXV5IGhv YWNoLCBrZSANCmhvYWNoLCBsbyB0cmluaCB2YSB0aWVuIGRvIHhheSBkdW5nIGNhYyBuaGEgbWF5 IG5oaWV0IGRpZW4sIGN1bmcgbmh1IHZpZWMgYmFvIGRhbSBhbiANCnRvYW4gY2hvIGNhYyBuaGEg bWF5IHRodXkgZGllbiB0cm9uZyBob2FuIGNhbmggbXVhIGx1Lg0KDQpUaW5oIGhpbmggZ2lhIGNh IGJpZW4gZG9uZyBiYXQgdGh1b25nIGN1bmcgbGEgZGlldSBjYWMgREIgbXVvbiBuZ2hlIGdpYWkg dHJpbmggY3VhIEJvIA0KdHJ1b25nIENvbmcgdGh1b25nLiBPbmcgSG9hbmcgY3VuZyBzZSB0cmEg bG9pIHZlIHZpZWMgZGlldSBoYW5oIHh1YXQgbmhhcCBraGF1IHZhIHRpbmggDQp0cmFuZyBuaGFw IHNpZXUgY2FvLg0KDQpQaGllbiBjaGF0IHZhbiBCbyB0cnVvbmcgVGFpIGNoaW5oIFZ1IFZhbiBO aW5oIGN1bmcgc2UgIm5vbmciIGtob25nIGtlbSB2b2kgbW90IA0KbG9hdCB2YW4gZGUgdGh1b2Mg dHJhY2ggbmhpZW0gY3VhIG9uZyBuaHUgcXVhbiBseSB2YSBzdSBkdW5nIG5nYW4gc2FjaCBjdW5n IGNhYyBxdXkgdGFpIA0KY2hpbmgsIHZpZWMgY2hpbmggc2FjaCB0YWkga2hvYSB2YSBjaGluaCBz YWNoIHRpZW4gdGUgY29uIHRoaWV1IGRvbmcgYm8gdmEgbm8gY29uZy4NCg0KQ2FjIGNoYXQgdmFu IGRhbmggY2hvIG9uZyBOaW5oIGNvbiB4b2F5IHNhdSB2YW8gdHJhY2ggbmhpZW0gY3VhIEJvIFRh aSBjaGluaCBkb2kgdm9pIA0KY2hhdCBsdW9uZyBraWVtIHRyYSwgdGhhbmggdHJhIHZlIHF1YW4g bHkgdGFpIGNoaW5oLCBuZ2FuIHNhY2ggbyBjYWMgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSANCm5o YSBudW9jLCBkYWMgYmlldCBvIFRhcCBkb2FuIGNvbmcgbmdoaWVwIHRhdSB0aHV5IFZpbmFzaGlu Lg0KDQpDdW5nIGxpZW4gcXVhbiBkZW4gVmluYXNoaW4sIEJvIHRydW9uZyBHaWFvIHRob25nIC0g VmFuIHRhaSBIbyBOZ2hpYSBEdW5nIHNlIHBoYWkgdHJhIA0KbG9pIHZlIHBoYW4gY29uZyBxdWFu IGx5IG5oYSBudW9jIGN1YSBCbyBkb2kgdm9pIHRhcCBkb2FuIG5heSB2YSB0cmFjaCBuaGllbSBj dWEgQm8gDQp0cnVvbmcgdHJ1b2Mgbmh1bmcgc2FpIHBoYW0uDQoNCihBbmg6IERCUUggbXVvbiBo b2kgdHJhY2ggbmhpZW0gY3VhIEJvIHRydW9uZyBUYWkgY2hpbmggVnUgVmFuIE5pbmggdHJvbmcg cXVhbiBseSANCnRhaSBjaGluaCBvIGNhYyB0YXAgZG9hbiwgZGFjIGJpZXQgbGEgVmluYXNoaW4u IEFuaDogTEFEKQ0KDQpNb3QgdmFuIGRlIG9uZyBIbyBOZ2hpYSBEdW5nIGRhIGdpYWkgdHJpbmgg dHJ1b2MgUUggY2FjaCBkYXkgbWF5IG5nYXkgbmh1bmcgY2h1YSANCmtoaWVuIGNhYyBEQiBoYWkg bG9uZyBsYSB2aWVjIGJvIHRyaSB2b24gdmEgdHJpZW4ga2hhaSBjYWMgY29uZyB0cmluaCBnaWFv IHRob25nIGNvbiB0aGlldSANCmRvbmcgYm8sIGNoYXQgbHVvbmcgdGhhcCwgY3VuZyBzZSBkdW9j IGRhdCByYS4gVGluaCB0cmFuZyB1biB0YWMgdmEgdGFpIG5hbiBnaWFvIHRob25nIA0Ka2hvbmcg bmh1bmcga2hvbmcgZHVvYyBjYWkgdGhpZW4gbWEgY29uIHRhbmcgY2FvIG8gY2FjIHRoYW5oIHBo byBsb24gY3VuZyBsYSB2YW4gZGUgDQpCbyB0cnVvbmcgcGhhaSBnaWFpIHRyaW5oIHRydW9jIFFI Lg0KDQoiQ2hpYSBsdWEiIHZvaSBvbmcgSG8gTmdoaWEgRHVuZywgZHUga2llbiBzZSBjbyBCbyB0 cnVvbmcgS2UgaG9hY2ggLSBEYXUgdHUsIENvbmcgDQphbiwgVmllbiB0cnVvbmcgVmllbiBLaWVt IHNhdCBuaGFuIGRhbiB0b2kgY2FvLiANCg0KQm8gdHJ1b25nIFkgdGUgTmd1eWVuIFF1b2MgVHJp ZXUgc2UgcGhhaSB0cmEgbG9pIGNobyBtb3QgdmllYyBtYSBvbmcgZGEgaHVhIG1hIGNodWEgDQps YW0gZHVvYzogZ2lhbSB0aW5oIHRyYW5nIHF1YSB0YWkgYmVuaCBuaGFuIG8gYmVuaCB2aWVuIHRy dW5nIHVvbmcgdmEgZGEga2hvYSB0aW5oLiANClZpZW4gcGhpLCBxdWFuIGx5IGdpYSB0aHVvYyB2 YSBwaGF0IHRyaWVuIHNhbiB4dWF0IGR1b2MgcGhhbSB0cm9uZyBudW9jIGN1bmcgbGEgbmh1bmcg DQp2YW4gZGUgY2FjIERCUUggZGF0IHJhIGNobyB2aSB0dSBsZW5oIG5nYW5oIHkgdGUuDQoNClRo ZW8gdGhvbmcgbGUgbyBjYWMga3kgaG9wIGN1b2kgbmFtLCAyIG5nYXkgcnVvaSBjaGF0IHZhbiBz ZSBraGVwIGxhaSB2b2kgcGhhbiB0cmEgbG9pIA0KY3VhIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1 bmcuIE5nb2FpIHZpZWMgbGFtIHJvIG1vdCBzbyB2YW4gZGUgbWEgY2FjIGJvIHRydW9uZyBkYSAN CnRyaW5oIGJheSwgVGh1IHR1b25nIHNlIHRyYSBsb2kgbmh1bmcgY2hhdCB2YW4gbWEgY2FjIERC IGRhbmggcmllbmcgY2hvIG9uZy4NCg0KVm9pIG5odW5nIHNhaSBwaGFtIG8gVmluYXNoaW4sIGNh YyBEQiBraG9uZyBuaHVuZyBtdW9uIFRodSB0dW9uZyBub2kgcm8gdmUgdmllYyB0YWkgDQpjbyBj YXUgdGFwIGRvYW4gbmF5IG1hIGNvbiB5ZXUgY2F1IFRodSB0dW9uZyBnaWFpIHRyaW5oIHZpZWMg eHUgbHkgdHJhY2ggbmhpZW0gY3VhIA0Kbmh1bmcgY2EgbmhhbiBkZSB4YXkgcmEgc2FpIHBoYW0u IENhYyBEQiBjdW5nIG11b24gInRydXkgZGVuIGN1bmciIHRyYWNoIG5oaWVtIGN1YSANCnRydW9u ZyBjYWMgZG9hbiB0aGFuaCB0cmEsIGtpZW0gdHJhIFZpbmFzaGluIG1hIGtob25nIHBoYXQgaGll biBkdW9jIHNhaSBwaGFtLiBUcmFjaCANCm5oaWVtIGN1YSBUaHUgdHVvbmcgdmEgUGhvIFRodSB0 dW9uZyBwaHUgdHJhY2ggbGluaCB2dWMgY3VuZyBkdW9jIG5ldSB0cm9uZyBjaGF0IHZhbiBjdWEg REJRSC4NCg0KTmdvYWkgcmEsIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgY29uIG5oYW4gZHVv YyBjYWMgY2F1IGhvaSBxdWFuaCB2aWVjIHRpZXAgdHVjIA0KdGhlbyBkdW9pIGR1IGFuIGR1b25n IHNhdCBjYW8gdG9jIEJhYyAtIE5hbSwgZHVhIHZhbyBjaGllbiBsdW9jIHBoYXQgdHJpZW4ga2lu aCB0ZSAtIHhhIA0KaG9pIDEwIG5hbSB0b2ksIHRyb25nIGtoaSBRSCBjaHVhIGNvIGNodSB0cnVv bmcgdmUgZHUgYW4gbmF5LiBEdW5nIGhheSBraG9uZyBkdW5nIGR1IA0KYW4gYm8teGl0IFRheSBO Z3V5ZW4gY3VuZyBsYSB2YW4gZGUgbWEgY2FjIERCUUggbXVvbiBUaHUgdHVvbmcgZ2lhaSB0cmlu aC4NCg0KVmkgY28gcmF0IG5oaWV1IHZhbiBkZSBub25nIGJvbmcgbWEgdGhvaSBnaWFuIGxhaSBo YW4gY2hlLCBvbmcgVHJhbiBEaW5oIERhbiBjaG8gYmlldCwgDQpjaHVvbmcgdHJpbmggY2hhdCB2 YW4gc2UgZHVvYyB0byBjaHVjIHNhbyBjaG8gaGlldSBxdWEsIHRyYW5oICJkYWkgZG9uZywgY2F1 IGdpbyIgbmh1IA0KbmhhbiBkaW5oIGN1YSBEQiB2YSBkdSBsdWFuIHZlIGNhYyBreSBob3AgdHJ1 b2MuIER1IGtpZW4sIFRodSB0dW9uZyB2YSBtb2kgQm8gdHJ1b25nIA0Kc2UgY2hpIGNvIHRvaSBk YSAxNSBwaHV0IHRyaW5oIGJheSBuaHVuZyB2aWVjIGRhIGxhbSwgdHJ1b2Mga2hpIHRyYSBsb2kg Y2FjIGNhdSBob2kgY3VhIGRhaSBiaWV1LiANCg0KVHJlbiBkYXkgbGEgZHUga2llbiBjdWEgVXkg YmFuIFRodW9uZyB2dSBRSCB2ZSBjYWMgcGhpZW4gY2hhdCB2YW4uIE5vaSBkdW5nIGN1b2kgY3Vu ZyBzZSBkdW9jIGRhaSBiaWV1ICJjaG90IiB2YW8gdGh1IGJhIHR1YW4gdG9pLiANCg0KaHR0cDov L3d3dy5uYS5nb3Yudm4vaHR4L1ZpZXRuYW1lc2UvP05ld2lkPTQzNjEyIzRyTDZFQVdCQmVteCA2 LzExLzIwMTAgOTo0OTowNiBBTSkNCg0KVGh1IHR1b25nOiBDYW4gY3VvbmcgcXV5ZXQgaG9uIG51 YSB0cm9uZyBkYXUgdHJhbmggcGhvbmcsIGNob25nIHRvaSBwaGFtIC0gdGhhbSBuaHVuZyBsYW5n IHBoaSB2YW4gY2h1YSBkdW9jIGRheSBsdWkgDQoNClRoZW8gQmFvIGNhbyBjdWEgQ2hpbmggcGh1 LCBjYWMgbG9haSB2aSBwaGFtIHBoYXAgbHVhdCB2YSB0b2kgcGhhbSBkZXUgZ2lhbSwgdGFpIG5h biANCmdpYW8gdGhvbmcgZGEgZHVvYyBraWVtIGNoZS4gVHV5IG5oaWVuLCBuaGlldSBkYWkgYmll dSBRdW9jIGhvaSBjaG8gcmFuZywgdGluaCBoaW5oIHZpIA0KcGhhbSBwaGFwIGx1YXQgdmEgdG9p IHBoYW0gdmFuIGNvbiBwaHVjIHRhcCwgbW90IHNvIGxvYWkgdG9pIHBoYW0gZ2lhIHRhbmcsIGdh eSBoYXUgDQpxdWEgeGF1IHZlIG5oaWV1IG1hdCBuaHVuZyBjb25nIHRhYyBwaGF0IGhpZW4sIGRh dSB0cmFuaCBjb24gbmhpZXUgaGFuIGNoZSwgcGhhdCBoaWVuIHZhIHh1IA0KbHkgY29uIGNoYW0s IGhpZXUgcXVhIGNodWEgY2FvOyBsdWMgbHVvbmcgY29uZyBhbiBjYXAgY28gc28gY29uIGhhbiBj aGUgdmUgbmFuZyBsdWMsIA0KcGh1b25nIHRpZW4sIHRyaW5oIGRvLiANCg0KRGFpIGJpZXUgVHJh biBUaGkgRHVuZyAoRGllbiBCaWVuKSwgVHJhbiBUaGkgUXVvYyBLaGFuaCAoSGEgTm9pKSBjaG8g cmFuZywgdGhvaSBnaWFuIA0KcXVhIHZhbiBjb24geGF5IHJhIG5oaWV1IHZ1IHBoYW0gcGhhcCBo aW5oIHN1IG5naGllbSB0cm9uZyBuaHUsIGdpZXQgbmd1b2ksIGN1b3AgY3VhLCANCm5hbiBiYW8g bHVjIGhvYyBkdW9uZyBtYSBjbyBuZ3V5ZW4gbmhhbiBkbyBxdWFuIGx5IHRoaWV1IGNoYXQgY2hl IHRyb25nIG1vdCBzbyBsaW5oIA0KdnVjIHZhbiBob2EgLSB4YSBob2kgbmh1IGJ1b25nIGxvbmcg ZGljaCB2dSBnYW1lIG9ubGluZSwgY2FjIGxpbmggdnVjIGJpZXUgZGllbiBuZ2hlIA0KdGh1YXQg bmhheSBjYW0sIHBoaW0gYW5oIGJhbyBsdWMuLi4gDQoNCkRhaSBiaWV1IE5nbyBUaGkgTWluaCAo UXVhbmcgTmluaCkgY2hvIHJhbmcsIHRpbmggdHJhbmcgdHJlIGVtIGJpIGJhbyBoYW5oLCB4YW0g aGFpIA0KdGluaCBkdWMgY2FuZyBkaWVuIGJpZW4gcGh1YyB0YXAsIGdheSBidWMgeHVjIHhhIGhv aSB2YSBkZSBuZ2hpIGNhbiB0YW5nIGN1b25nIHBobyBiaWVuIA0Ka2llbiB0aHVjIGNoYW0gc29j LCBudW9pIGRheSBjb24gY2hvIGNhYyBwaHUgaHV5bmguIE5oYSB0cnVvbmcgY2FuIGRhdSB0dSBo b24gY2hvIA0KbW9uIGdpYW8gZHVjIGNvbmcgZGFuIGRlIGJvaSBkdW9uZyBreSBuYW5nIGNobyBo b2Mgc2luaCBiaWV0IHR1IGJhbyB2ZSBtaW5oLCBkYXUgdHUgDQpub2kgdnVpIGNob2kgY2hvIHRy ZSBlbSwgcXVhbiBseSBjaGF0IGNoZSBnYW1lIG9ubGluZS4gDQoNCkRhaSBiaWV1IFBoYW0gUXVv YyBBbmggKERvbmcgTmFpKSBkdWEgcmEgbmhhbiBkaW5oLCB0aW5oIGhpbmggVFRBVFhIIHZhbiBk aWVuIA0KYmllbiBwaHVjIHRhcCwgYnVjIHh1YyBuaGF0IGxhIHRvaSBwaGFtIGJ1b24gYmFuIHBo dSBudSwgdHJlIGVtOyAgZ2lldCBuZ3VvaSB0aGFuOyB0b2kgDQpwaGFtIHZpIHRoYW5oIG5pZW4s IG5ndW9pIG51b2MgbmdvYWkgcGhhbSB0b2kgdmEgdG9pIHBoYW0gIHRoYW0gbmh1bmcsIG5oYXQg bGEgdGhhbSBuaHVuZyBkYXQgZGFpLiANCg0KRGFpIGJpZXUgTmd1eWVuIFRoYW5oIFRvYW4gKFRo dWEgVGhpZW4tSHVlKSBwaGFuIHRpY2ggbmd1eWVuIG5oYW4gdGluaCB0cmFuZyB0b2kgDQpwaGFt IGdpYSB0YW5nIGRvIGNvbmcgdGFjIHBob25nIG5ndWEgeGEgaG9pIGNvbiB5ZXUuIA0KDQpEYWkg YmlldSBQaGFtIFh1YW4gVGh1b25nIChUaGFpIEJpbmgpIGRlIGNhcCBtb3QgdmFuIGRlIGhldCBz dWMgbm9uZyBib25nIGxhIHRhaSBuYW4gDQpnaWFvIHRob25nIHZhbiB0aWVtIGFuIGdpYSB0YW5n LCBuZ3V5ZW4gbmhhbiBjaHUgeWV1IHZhbiBkbyB5IHRodWMgbmd1b2kgdGhhbSBnaWEgZ2lhbyAN CnRob25nLiBEb25nIHRob2kgZGUgbmdoaSBjYW4gY28gZ2lhaSBwaGFwIG5odSBsb2FpIGJvIGhp bmggdGh1YyB0dXllbiB0cnV5ZW4ga2hvbmcgaGlldSANCnF1YSwgdGFuZyBjdW9uZyB0dXllbiB0 cnV5ZW4gcXVhIGhpbmggYW5oLCB0aG9uZyB0aW4gZGFpIGNodW5nOyB4dSBseSBuZ2hpZW0gY2Fj IHRydW9uZyANCmhvcCB2aSBwaGFtOyBkYXUgdHUgc3VhIGNodWEgY2FjIHR1eWVuIGR1b25nIGdp YW8gdGhvbmcuIA0KDQpEYWkgYmlldSBOZ3V5ZW4gTWluaCBUaHV5ZXQgKExhbmcgU29uKSBkZSBj YXAgdGhpZXUgc290IGN1YSBuZ2FuaCBjb25nIGFuIGxhIHRpbmggDQp0cmFuZyB4YXkgcmEgbW90 IHNvIHZ1IGRvdCB0dSBkbyB0YW0gZ2l1IG8gdHJ1IHNvIGNvbmcgYW4gdmEgY28gdnUgZHVvYyBr ZXQgbHVhbiBkbyBjb25nIA0KYW4gZGFuaCB2YSBkZSBuZ2hpIGNhbiBjaGFuIGNoaW5oIG5nYXku IFNvIHRvaSBwaGFtIGxhbiB0cm9uIG5nb2FpIHhhIGhvaSBjb24gbmhpZXUsIA0Kbmh1bmcgY28g Y2EgdHJ1b25nIGhvcCBwaGFtIHRvaSBxdWEgdGFuZyBtb2MgdHVpLCAgdHJlbiB4ZSBidXl0IGR1 YSBkZW4gY29uZyBhbiwgY29uZyANCmFuIHRoYSBuZ2F5LCB2aSBtb2MgdHVpIGNodWEgZGVuIDIg dHJpZXUgZG9uZy4gTmd1eWVuIHZvbmcgY3VhIGN1IHRyaSBsYSBsdWMgbHVvbmcgY29uZyANCmFu IGNhbiBjdW9uZyBxdXlldCBob24gbnVhIGRhdSB0cmFuaCBjaG9uZyB0b2kgcGhhbSwgYmFvIHZl IGJpbmggeWVuIGNobyBkYXQgbnVvYy4gDQpDYW4gYm8gY29uZyBhbiBwaGFpIHRodWMgaGllbiB0 b3QgbG9pIGRheSBjdWEgQmFjIEhvICdkb2kgdm9pIGRhbiBwaGFpIGtpbmggdHJvbmcgbGUgDQpw aGVwJy4gDQoNCkRhaSBiaWV1ICBMZSBWYW4gVGFtIChDYW4gVGhvKSBraWVuIG5naGkgY2FuIHRh bmcgY3VvbmcgbHVjIGx1b25nIGNvbmcgYW4gY2FwIGNvIHNvIA0KdmEgY28gcXV5IGRpbmggY2hh dCBjaGUgdmUgY28gY2hlIHBob2kgaG9wIGdpdWEgY2FjIGx1YyBsdW9uZyBwaG9uZywgY2hvbmcg dG9pIHBoYW0uIA0KDQpEYWkgYmlldSBMZSBWaWV0IFRydW9uZyAoQW4gR2lhbmcpIGRlIG5naGkg Y2FuIGJhbyBkYW0gdHJhbmcgYmkgcGh1b25nIHRpZW4sIHZ1IA0Ka2hpIGNvbmcgdnUgY2hvIGx1 YyBsdW9uZyBjaHV5ZW4gdHJhY2ggcGhvbmcsIGNob25nIHRvaSBwaGFtIGdpdXAgaG8gdHUgdGlu IGtoaSB4dSBseSBjb25nIHZpZWMuDQoNClZlIHBob25nLCBjaG9uZyB0aGFtIG5odW5nIHZhIHRv aSBwaGFtIHRoYW0gbmh1bmcsIGRhaSBiaWV1IFRyYW4gVGhpIER1bmcgKERpZW4gDQpCaWVuKSB2 YSBuaGlldSBkYWkgYmlldSBuaGFuIGRpbmgsIHRoYW0gbmh1bmcgbGFuZyBwaGkgdmFuIGNodWEg ZHVvYyBkYXkgbHVpLCB2YW4gbGEgDQptb2kgYnVjIHh1YzsgeHUgbHkgcGhvbmcsIGNob25nIHRo YW0gbmh1bmcgY28gbHVjIGNodWEga2lwIHRob2ksIGNodWEgbmdoaWVtLCBuaGF0IGxhIG5ndW9p IGR1bmcgZGF1LiANCg0KRGFpIGJpZXUgRGFuZyBWYW4gWHVvbmcgKExvbmcgQW4pIHZhIGRhaSBi aWV1IE5ndXllbiBEaW5oIFh1YW4gKFRheSBOaW5oKSAgY2hvIA0KcmFuZywga2hvbmcgbmVuIGNh biBjdSBkYW5oIGdpYSB0cm9uZyBCYW8gY2FvIGN1YSBDaGluaCBwaHUgbGEgc28gdnUgY28gcXVh biBkaWV1IHRyYSANCmtob2kgdG8sIFZpZW4gS1NORFRDIHRydXkgdG8sIFRvYSBhbiBORFRDIHhl dCB4dSBnaWFtIG1hIG5oYW4gZGluaCB0aW5oIGhpbmggdGhhbSBuaHVuZyBnaWFtLiANClRoZW8g ZGFpIGJpZXUgRGFuZyBWYW4gWHVvbmcgKExvbmcgQW4pLCB0aGFtIG5odW5nIG5nYXkgY2FuZyB0 aW5oIHZpLCBxdXkgbW8sIHRpbmggDQpjaGF0IHBodWMgdGFwLCB0YWMgaGFpIGNhbmcgbG9uLCB0 aHVvbmcgJ2RpbmgnIGRlbiBuaGlldSBjYXAsIG5oaWV1IG5ndW9pOyB0cm9uZyBraGkgZG8gDQp5 ZXUgdG8gdHUga2llbSB0cmEsIHRoYW5oIHRyYSwga2llbSB0b2FuIHBoYXQgaGllbiBjb24geWV1 LiBDaGluaCBwaHUgY2FuIGNhbiBuaGFjIGRhbmggDQpnaWEgdGluaCBoaW5oIHRoYW0gbmh1bmcg bmFtIDIwMTAgZGUgY28gZ2lhaSBwaGFwIGhvcCBseSB0cm9uZyBuYW0gMjAxMSBuaHUgbmFuZyBj YW8gDQpuaGFuIHRodWMgdHJhY2ggbmhpZW0gY2EgaGUgdGhvbmcgY2hpbmggdHJpIHRyb25nIHBo b25nLCBjaG9uZyB0aGFtIG5odW5nLCBub2kgZGkgZG9pIA0Kdm9pIGxhbSwgY2h1IGRvbmcgcGhv bmcsIGNob25nIG8gY28gc28sIHRyYW5oIHRoYWkgZG8gdm8gY2FtLCBiYW5nIHF1YW4sIHNvbmcg Y2h1bmcgdm9pIHRoYW0gbmh1bmcuIA0KDQpodHRwOi8vd3d3LmRhbmNoaW12aWV0LmluZm8vYXJj aGl2ZXMvMjA0NTMgVGFjIGdpYTogQXUgRHVvbmcgVGhlIDEyOjAwIGFtIDMwLzEwLzEwIA0KDQpU VCBOZ3V5ZW4gVGFuIER1bmcgcGhhaSBuaGFuIHRyYWNoIG5oaWVtIHZhIHR1IGNodWMNCg0KQ3Vv aSB0aGFuZyA3IHZ1YSBxdWEgQm8gY2hpbmggdHJpIGRhIGR1YSByYSAiS2V0IGx1YW4gY3VhIEJv IGNoaW5oIHRyaSIgdmUgVGFwIGRvYW4gDQpDb25nIG5naGllcCBUYXUgdGh1eSBWTiAoVmluYXNo aW4pLCBtb3QgdGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYy4gVGhlbyBkbyBWaW5hc2hpbiANCmRh IGxhbSBhbiB0aHVhIGxvIHZhIGRhbmcgZ2F5IHJhIG1vdCBzbyBubyBraG9uZyBsbyB0dSB0cnVv YyB0b2kgbmF5IGxhIDg2LjAwMCB0aSBkb25nIA0KKDQsNSB0aSBVU0QpLiBEYXkgbGEgY29uIHNv IGRvIEJvIGNoaW5oIHRyaSB4YWMgbmhhbi4gDQoNClRyb25nIG5odW5nIG5nYXkgdnVhIHF1YSBD aHUgbmhpZW0gVXkgYmFuIFF1b2MgcGhvbmcgdmEgYW4gbmluaCBjdWEgUXVvYyBob2kgTGUgDQpR dWFuZyBCaW5oIGRhIHRpZXQgbG8sIHRoZW8gY2FjIHNvIGxpZXUgb25nIGR1b2MgYmlldCB0aGkg c28gbm8gY3VhIFZpbmFzaGluIGtob25nIHBoYWkgDQpjaGkgbGEgODYuMDAwIHRpIGRvbmcgbWEg Y28gdGhlIGxlbiB0b2kgMTIwLjAwMCB0aSBkb25nICg2LDMgdGkgVVNEKSwgdHVjIGxhIGdhcCBn YW4gMSw1IA0KbGFuIHNvIHZvaSBjb24gc28gY3VhIEJvIGNoaW5oIHRyaSBkYSBkdWEgcmEuDQoN ClNvIG5vIGtob25nIGxvIG5heSBjYWMgdXkgdmllbiBCbyBjaGluaCB0cmkga2hvbmcgcGhhaSB0 cmEsIFRodSB0dW9uZyBjdW5nIGtob25nIHZhIA0KY2FjIEJvIHRydW9uZyBjdW5nIGtob25nLiBO aHVuZyBuaGFuIGRhbiBWTiBwaGFpIGNvbmcgbHVuZyB0cmEgc28gbm8ga2hvbmcgbG8gbmF5IA0K cXVhIHRpZW4gZG9uZyB0aHVlISBOZXUgc28gbm8gY3VhICB0YXAgZG9hbiBuaGEgbnVvYyBWaW5h c2hpbiBsYSAxMjAuMDAwIHRpIGRvbmcgdGhpIA0KdGluaCBkbyBkb25nIG1vaSBuZ3VvaSBkYW4g Vk4sIHR1IHNvIHNpbmggdG9pIGNhbyB0dW9pLCBwaGFpIHRyYSAxLDUgdHJpZXUgZG9uZyBkZSBi dSBjaG8gDQpzdSBsYW0gYW4gdGh1YSBsbyBjdWEgVmluYXNoaW4uIERvaSB2b2kgZGFpIGRhIHNv IGtob2FuZyA2MCB0cmlldSBub25nIGRhbiBWTiBuZ2hlbyANCmtobyB0aGkgZGF5IGxhIGdhbmgg bmFuZyByYXQgbG9uIQ0KDQpWaWVjIHBoYWkgdG8gY2h1YyBsYWkgVmluYXNoaW4gY2hvIHRoYXkg dGFwIGRvYW4gbmF5IHRyZW4gdGh1YyB0ZSBkYSBwaGEgc2FuLiBUUyBOZ3V5ZW4gDQpEdWMgS2ll biwgdXkgdmllbiBVeSBiYW4gS2luaCB0ZSBRdW9jIGhvaSB4YWMgbmhhbjoNCg0KIkNodW5nIHRh IHRpZW4gaGFuaCB0YWkgY28gY2F1IGxhaSBWaW5hc2hpbiB0aGkgdmUgbWF0IGtob2EgaG9jIGNv aSBuaHUgY2h1bmcgdGEgZGEgY2hhcCANCm5oYW4gY2hvIFZpbmFzaGluIHBoYSBzYW4sIGNoaSBj byB2YW4gZGUgbGEgbWluaCB0dXllbiBibyBoYXkga2hvbmcgdHV5ZW4gYm8gcGhhIHNhbiANCm1h IHRob2kiLiBPbmcgS2llbiBnb2kgZGF5IGxhICJwaGEgc2FuIHRoZW8ga2lldSBWaWV0IE5hbSIu DQoNCkNvIGxlICJwaGEgc2FuIHRoZW8ga2lldSBWTiIgY2hvIG5lbiB0b2kgbmF5IHRyb25nIHZ1 IFZpbmFzaGluIG1vaSBjaGkgY28gbmd1b2kgZHVuZyANCmRhdSBWaW5hc2hpbiBsYSBQaGFtIFRo YW5oIEJpbmggdmEgbW90IHNvIG5ndW9pIGR1b2kgcXV5ZW4gYmkgY2FjaCBjaHVjIHZhIGJhdCAN CmdpYW0uICBWaSB0aGUgZHUgbHVhbiByb25nIHJhaSB0cm9uZyB4YSBob2kgcmF0IGJ1YyB4dWMs IHZpIGxhbSBzYW8gY2hpIG1vdCBtaW5oIFBoYW0gDQpUaGFuaCBCaW5oIG1hIG5vaSB0cm9uZyBo b24gNCBuYW0gZGEgZ2F5IHJhIG1vdCBtb24gbm8gdGhhdCBraHVuZyBraGllcCBjaG8gbmdhbiAN CnNhY2ggcXVvYyBnaWEgbmh1IHZheT8gTGFtIHRoZSBuYW8gbWEgY2EgMTEgbGFuIHRoYW5oIHRy YSwga2llbSB0cmEgY3VhIG5oaWV1IGNvIHF1YW4gDQpuaHVuZyB2YW4ga2hvbmcgdGltIHRoYXkg bmh1bmcgc2FpIHBoYW0gdmEga2luaCBkb2FuaCB0aHVhIGxvIGtob25nIGxvIGN1YSBWaW5hc2hp bj8gDQpEYSB0aGUsIHRhaSBzYW8gdHJvbmcga3kgaG9wIHRodSA4IGhpZW4gbmF5IGN1YSBRdW9j IGhvaSB2YW4gZGUgYnVjIHh1YyBuaHUgdmF5IHZhbiANCmtob25nIGR1b2MgZHVhIHJhIHRoYW8g bHVhbiBjaHV5ZW4gZGU/DQoNCkNobyB0b2kgbmF5IG5odW5nIG5ndW9pIGNoaXUgdHJhY2ggbmhp ZW0gdGh1YyBzdSB2YW4gY29uIGxhbiB0cmFuaCwgdmFuIGNob20gdHJlIHJ1bmcgZHVpLCBobyB0 bywgaGV0IGxvbi4gU3UgbmdoaWVtIG1pbmgga3kgY3VvbmcgY3VhIHhhIGhvaSBsYSBuaHUgdGhl IHNhbz8gQWkgY2hpdSB0cmFjaCBuaGllbSBjaGluaCB0cmk/IEFpIGNvIHRyYWNoIG5oaWVtIHRp bmggdGhhbj8gDQoNCkJhbyBjYW8gQ2hpbmggcGh1IGRhIG5vaSBnaSB2ZSB2dSBwaGEgc2FuIGN1 YSBWaW5hc2hpbj8NCg0KVHJvbmcgQmFvIGNhbyBkYWkgMTggdHJhbmcgIGN1YSBDaGluaCBwaHUg Z29pIFF1b2MgaG9pIG5nYXkgMTkuMTAuMTAgKG1vdCBuZ2F5IHRydW9jIA0Ka2hpIFFIIGhvcCkg ZG8gVmFuIHBob25nIENoaW5oIHBodSB0aHVjIGhpZW4gdGhlbyBsZW5oIGN1YSBUaHUgdHVvbmcg Tmd1eWVuIFRhbiANCkR1bmcgZGEgZGFuaCBraG9hbmcgMS8zIG5vaSB2ZSBzdSBoaW5oIHRoYW5o IHZhIGNhYyBob2F0IGRvbmcgY3VhIFZpbmFzaGluLiBQaGFuIG5vaSANCnZlIG5ndXllbiBuaGFu IGNhYyBkbyB2byBoaWVuIG5heSBjdWEgVmluYXNoaW4gTmd1eWVuIFRhbiBEdW5nIGRvIGNobyBu Z3V5ZW4gbmhhbiANCmtoYWNoIHF1YW4gZG8gY3VvYyBraHVuZyBob2FuZyBraW5oIHRlIHRhaSBj aGluaCB0aGUgZ2lvaSB0dSAyMDA4IHZhIGRvIHRvaSBjaG8gbmd1b2kgDQpkdW5nIGRhdSB0YXAg ZG9hbiBuYXkgbGEgUGhhbSBUaGFuaCBCaW5oLiBOZ2hpYSBsYSB0cm9uZyBCYW8gY2FvIGdvaSBR dW9jIGhvaSBuZ2F5IA0KMTkuMTAgTmd1eWVuIFRhbiBEdW5nIGNoaSBsYXAgbGFpIG5odW5nIGdp IG1hICJUaG9uZyBiYW8gY3VhIFZhbiBwaG9uZyBDaGluaCBwaHUiIA0KZGEgY29uZyBibyBuZ2F5 IDQuOCBtYSB0aG9pLg0KDQpUcm9uZyBwaGFuIGRvIHRvaSBjaG8gUGhhbSBUaGFuaCBCaW5oLCBC YW8gY2FvIGN1YSBDaGluaCBwaHUgZGEgYnVvYyB0b2k6ICJOZ3VvaSANCm5heSBuaHVuZyBuYW0g Z2FuIGRheSB0cm8gbmVuIGRvYyBkb2FuLCBnaWEgdHJ1b25nIiB2YSAiYmFvIGNhbyBraG9uZyB0 cnVuZyB0aHVjIg0KQmFuIEJhbyBjYW8gQ2hpbmggcGh1IGNvbiBub2kgcmFuZzogDQoiTmhpZXUg bmFtIGxpZW4gVmluYXNoaW4gYmFvIGNhbyBraG9uZyB0cnVuZyB0aHVjIHZlIHN1IGR1bmcgdm9u LCB2ZSBkYXUgdHUgdmEgdGluaCANCmhpbmggaG9hdCBkb25nIHNhbiB4dWF0IGtpbmggZG9hbmgu IE5hbSAyMDA5IGxvIDEuNjAwIHR5IGRvbmcgbmh1bmcgbGFpIGJhbyBjYW8gbGFpIA0KNzUwIHR5 IGRvbmcsIHF1eSAxIG5hbSAyMDEwIHRodWEgbG8gdmFuIGJhbyBjYW8gbGFpIGdhbiAxMDAgdHkg ZG9uZy4iIA0KS2hvbmcgbmh1bmcgdGhlLCB0cm9uZyBCYW8gY2FvIG5heSBOZ3V5ZW4gVGFuIER1 bmcgbGFpIGNvbiBkbyB0aHVhIGNobyBjYWMgYm8gcGhhaSANCmNoaXUgdHJhY2ggbmhpZW06ICJD YWMgYm8gY2h1YyBuYW5nIGR1b2MgZ2lhbyB0cmFjaCBuaGllbSBkYSBraG9uZyBwaGF0IGhpZW4g ZHVvYyANCnZpZWMgdGFwIGRvYW4gYmFvIGNhbyBraG9uZyB0cnVuZyB0aHVjIi4gDQoNCk5ldSBz byBzYW5oIHNvIG5vIGN1YSBWaW5hc2hpbiB2b2kgc28gdGh1IGN1YSBuZ2FuIHNhY2ggcXVvYyBn aWEgbmFtIDIwMDkgdGhpIGdhbiBiYW5nIA0KMS82LiAgRGF5IGxhIGNvbiBzbyBjdWMga2kgbG9u ISBDaGkgbm9pIHRyb25nIGhvbiA0IG5hbSAyMDA2LTIwMTAgVmluYXNoaW4gZGEgbGFtIGFuIA0K dGh1YSBsbyBkdWEgZGVuIHNvIG5vIGtodW5nIGtoaWVwIG5odSB2YXkuIENoaW5oIHRyb25nIHRo b2kgZ2lhbiBuYXkgTmd1eWVuIFRhbiBEdW5nIA0KbGFtIFRodSB0dW9uZyAoVFQpLiBPbmcgRHVu ZyBkYSB0dW5nIHRhbmcgYm9jIFZpbmFzaGluIGxhIG1vdCAicXVhIGRhbSB0aGVwIiB0cm9uZyAN CmhlIHRob25nIHRhcCBkb2FuIGtpbmggdGUgbmhhIG51b2MuIENvIGxlIGNodWEgY28gbW90IGNv bmcgdHkgbmFvIHRyZW4gdGhlIGdpb2kgbGFpIA0KZ2F5IHJhIG1vdCBzbyBubyBjYW8gbmh1IHZh eSB0cm9uZyBtb3QgdGhvaSBnaWFuIHR1b25nIGRvaSBuZ2FuLg0KDQpEdW9pIHRob2kgTmd1eWVu IFRhbiBEdW5nIGxhbSBUaHUgdHVvbmcgdGhpIFBoYW0gVGhhbmggQmluaCBjdW5nIGx1YyBnaXUg Ym9uIGNodWMgDQp2dSB0aGVuIGNob3QgbmhhdCB0cm9uZyBWaW5hc2hpbiBsYSBCaSB0aHUgRGFu ZyB1eSwgQ2h1IHRpY2ggSG9pIGRvbmcgUXVhbiB0cmksIENodSB0aWNoIA0KVGFwIGRvYW4sIFRv bmcgZ2lhbSBkb2MuIE5obyBiYW8gYmllbiBjYWMgY2h1YyB2dSB0aGVuIGNob3QgbmF5IG5lbiBQ aGFtIFRoYW5oIA0KQmluaCB0b2FuIHF1eWVuIHR1IGRvIHF1eWV0IGRpbmgsIGRhIGR1YSBjb24g dHJhaSwgZW0gdHJhaSB2YSBlbSB2byB2YW8gbmFtIGdpdSBjYWMgDQpjaHVjIHZ1IHRoZW4gY2hv dCB0cm9uZyBWaW5hc2hpbi4gIE5naGlhIGxhIGxvaSBkdW5nIHN1IHV1IGRhaSBjdWEgTmd1eWVu IFRhbiBEdW5nIA0KbmVuIFBoYW0gVGhhbmggQmluaCAgY2hpIHRyb25nIGhvbiA0IG5hbSBkYSBi aWVuIFZpbmFzaGluIHR1ICBtb3QgdGFwIGRvYW4ga2luaCB0ZSANCm5oYSBudW9jIHRybyB0aGFu aCBuaHUgY29uZyB0eSBnaWEgZGluaC4gS2hvbmcgbmh1bmcgdGhlIGRhIGxhcCBjYWMgYmFvIGNh byBzYWkgdmUgdGFpIA0KY2hpbmgsIGNvaSB0aHVvbmcgY2FjIGN1b2MgdGhhbmggdHJhLCBraWVt IHNhdCBjdWEgY2FjIGNvIHF1YW4uDQoNCihBbmg6ICJDYXAgZG9pIiBOZ3V5ZW4gVGFuIER1bmct IFBoYW0gVGhhbmggQmluaC4gTmd1b24gT24gdGhlIG5ldCkNCg0KQ2EgTmdhbiBoYW5nIFRoZSBn aW9pIHZhIGJhbyBXYWxsIFN0cmVldCBjdW5nIHRoYXkgcm8gc3UgZHVuZyB0dW5nIFZpbmFzaGlu IGN1YSANCk5ndXllbiBUYW4gRHVuZy4gTW9pIGRheSB0cm9uZyBwaGFuIGJhbyBjYW8gdmUgdGlu aCBoaW5oIGtpbmggdGUgVk4gTmdhbiBoYW5nIFRoZSANCmdpb2kgZGEgbmhhbiBkaW5oOg0KIlRh cCBkb2FuIFZpbmFzaGluIGRhIHN1IGR1bmcgY2FjIG5ndW9uIHRpZW4gbGF5IHR1IGJhbyBsYW5o IGNoaW5oIHBodSBkZSBkYXUgdHUgdmFvIA0Kbmh1bmcgaG9hdCBkb25nIGtob25nIGRpbmggZGFu ZyBnaSBkZW4gbmhpZW0gdnUgY2hpbmgsIGRhIHRoZSBsYWkgY29uIGdpYSBtYW8gY2FjIGJhbyAN CmNhbyB0YWkgY2hpbmggdmEgbmF5IGRhbmcgbmFtIGJlbiBibyB2dWMgcGhhIHNhbiIuIA0KDQpI YWkgdGFjIGdpYSB0dW9uZyB0aHVhdCB0cmVuIHRvIFdhbGwgU3RyZWV0IG5nYXkgMjIuOSBjb24g ZGkgc2F1IGhvbiB2YSBub2kgcm8gbmhhbiB2YXQgDQpuYW8gZHVuZyBkYW5nIHNhdSBkbyBkYXUg Y2hvIFZpbmFzaGluOg0KIlRodSB0dW9uZyBEdW5nIGRlIG5oaWV1IHRhcCBkb2FuIGxvbiBuaGF0 IGR1b2kgc3UgY2hpIGRhbyB0cnVjIHRpZXAgY3VhIG1pbmggdGhheSB2aSANCmRlIGNhYyBibyBn aWFtIHNhdCBjYWMgdGFwIGRvYW4gbmF5IG5odSBWaWV0IE5hbSBsYW0gdHJ1b2MgZGF5LiBPbmcg RHVuZyBoeSB2b25nIA0KbmhhbmggY2hvbmcgYmllbiBjYWMgZG9hbmggbmdoaWVwIHRoYW5oIG5o dW5nIHRhcCBkb2FuIHF1b2MgdGUuIiANCk5naGlhIGxhIHRhYyBnaWEgYmFpIGJhbyBuYXkgYmll dCByYXQgcm8gdGluaCB0aGljaCBubyB2YSBjYWkgZ2kgY3VuZyBtdW9uIG5oYXQgY3VhIE5ndXll biANClRhbiBEdW5nLiBDYWMgdGFjIGdpYSBiYWkgYmFvIGNvbiBuaGFuIHhldCB2ZSBjb24gbmd1 b2kgbWEgb25nIER1bmcgZGEgZ2lhbyBjaG8gZHVuZyANCmRhdSBWaW5hc2hpbjoNCiJOaHVuZyBu Z3VvaSBiaWV0IG9uZyBCaW5oLCBjdXUgQ2h1IHRpY2ggVmluYXNoaW4sIG5vaSBvbmcgbGEgbmd1 b2kgZGUgY2hlbyBrZW8gZHVvYyANCmtoYWNoIGhhbmcgbnVvYyBuZ29haSB2YSBjdW5nIGdpb2kg bG8gbG90IG8gdHJvbmcgbnVvYy4iDQoNCk5nYXkgYmFvIGNoaSB0aGVvICJsZSBwaGFpIiB0cm9u ZyBudW9jIGN1bmcgZGEgY2hvIGJpZXQsIFBoYW0gVGhhbmggQmluaCBkYSBtbyByb25nIA0KbGFu aCB2dWMgaG9hdCBkb25nIGN1YSBWaW5hc2hpbiB0dSBkb25nIHRhdSBtb2kgdGhhbmggbXVhIHRh dSBjdSBjdWEgbnVvYyBuZ29haSwgY2hpIA0KdHJvbmcgdm9uZyBoYWkgbmFtIDIwMDYtMDcga2kg cXV5ZXQgZGluaCBjaG8gbXVhIHRvaSAxMCB0YXUgbmdvYWkgcXVvYyBjdSB2b2kgdG9uZyBzbyAN CmxhIHRyZW4gMy4wMDAgdGkgZG9uZy4gVHJvbmcgc28gbmF5IGNvIG5odW5nIHRhdSBjdSBkZW4g bm9pIGRhIHBoYWkgYm8gcmEgaGFuZyB0cmFtIHRpIA0KZG9uZyBkZSB0dSBzdWEgdmEgY2FuaCB0 YW4gdHJvIHRoYW5oICJraGFjaCBzYW4gMyBzYW8iIHRyZW4gYmllbiBjaG8ga2hhY2ggQmFjLU5h bSwgDQpuaHUgdGF1IEhvYSBzZW4gdHJpIGdpYSA2MCB0cmlldSBFdXJvIG5odW5nIGNoaSBkdW5n IGR1b2MgdmFpIGxhbiBkYSBwaGFpIGJ1b2MgbmVvIG8gaGFpIA0KY2FuZyBOaGEgdHJhbmcuIEhh eSB0YXUgQmFjaCBEYW5nIGdpYW5nIHRyaSBnaWEgdHJlbiAxNjggdGkgZG9uZywgc2F1IG5oaWV1 IGxhbiB0dSBzdWEgdmEgDQpuYW5nIGNhcCB0aGFuaCAia2hhY2ggc2FuIDQgc2FvIi4gTmh1bmcg c2F1IHRob2kgZ2lhbiBkYWkgZGUgcGhvaSBuYW5nIHBob2kgc3VvbmcsIA0KY3VvaSBjdW5nIHBo YWkgYmFuIHRoYW5oIGx5IHBoYW4gdGhhbiB2byB0YXUgc2F0IHZ1biBkZSB0aHUgZHVvYyA2NiB0 aSAxOTAgdHJpZXUgZG9uZy4gDQpDaGkgcmllbmcgaGFpIHZpZWMgbmF5IG5nYW4gc2FjaCBOaGEg bnVvYywgdHVjIHRodWUgY3VhIG5oYW4gZGFuLCBkYSBtYXQgaGFuZyB0cmFtIHRpIA0KZG9uZy4u LiBTbyBkaSBQaGFtIFRoYW5oIEJpbmggZGEgY28gdGhlIGNoaSB0aWVuIHJvbmcgcmFpIG5odSB0 aGUgbGEgdmkgTmd1eWVuIFRhbiANCkR1bmcgZGEgcmEgbGVuaCBjaG8gYm8gVGFpIGNoaW5oIHZh IE5nYW4gaGFuZyBOaGEgbnVvYyB1dSBkYWkgZGFjIGJpZXQgdmUgdGFpIGNoaW5oIA0KY2hvIFZp bmFzaGluLiBLaG9uZyBuaHVuZyB0aGUgVmluYXNoaW4gZGEgZHVvYyBDaGluaCBwaHUgZHVuZyBi YW8gbGFuaCBkZSB2YXkgbnVvYyANCm5nb2FpIDc1MCB0cmlldSBVU0QuIENoaSB0aW5oIHJpZW5n IHR1IDkuMjAwNiBkZW4gIDQuMjAwNywgVmluYXNoaW4gZGEgcGhhdCBoYW5oIDYgZG90IA0KdHJh aSBwaGlldSB0cm9uZyBudW9jIHZvaSB0b25nIHNvIHRpZW4gaHV5IGRvbmcgbGVuIGRlbiA4LjMw MCB0aSBkb25nIHZhIGNhYyBraG9hbiB2YXkgDQpraGFjIHRvbmcgZ2lhIHRyaSBsZW4gdG9pIDEz LjY3MiB0aSBkb25nLi4uIE5nYXkgY2EgbmFtIDIwMDkgQ2hpbmggcGh1ICBOZ3V5ZW4gVGFuIA0K RHVuZyBsYWkgdmFuIGNobyBWaW5hc2hpbiBwaGF0IGhhbmggdGhlbSAzLjAwMCB0aSBkb25nIHRy YWkgcGhpZXUuIA0KDQpOb2kgdG9tIGxhaSwgZHVuZyB2ZSBwaHVvbmcgZGllbiBxdWFuIHRyaSB0 YWkgY2hpbmggY29uZyB2YSBwaGF0IHRyaWVuIGtpbmggdGUgdGhpIGNhYyANCmhvYXQgZG9uZyBj dWEgVmluYXNoaW4gdHJvbmcgYm9uIG5hbSBxdWEgcm8gcmFuZyBkYSBwaGEgaG9haSB0YWkgc2Fu IGN1YSBuaGFuIGRhbiwgDQpsdW5nIGRvYW4gdGFpIGNoaW5oIGNvbmcgdmEgbGFtIHRhbiBuYXQg a2luaCB0ZSBWTiEgTmh1bmcgdHJvbmcgQmFvIGNhbyBDaGluaCBwaHUgZ29pIA0KUXVvYyBob2kg bmdheSAxOS4xMCBOZ3V5ZW4gVGFuIER1bmcgZGEgZG8gbG9pIHRhdCBjYSBjaG8gUGhhbSBUaGFu aCBCaW5oIQ0KDQpUcm9uZyBraGkgYXksIE5ndXllbiBUYW4gRHVuZyBob2FuIHRvYW4gaW0gbGFu ZyB2ZSBjaGluaCBjYWMgc2FpIGxhbSB2byBjdW5nIG5naGllbSANCnRyb25nIGN1YSBjaGluaCBv bmcgdHJvbmcgdHUgY2FjaCBsYW0gVGh1IHR1b25nIHN1b3QgdHUgMjAwNi4gVHJvbmcgcGhhbiB0 cmFjaCBuaGllbSwgDQpOZ3V5ZW4gVGFuIER1bmcgY2hpIGR1YSByYSBuaGFuIGRpbmggcmF0IGNo dW5nIGNodW5nIGxhICJjaGluaCBwaHUgY2hpdSB0cmFjaCBuaGllbSIuIA0KVGhhaSBkbyB0cm9u IHRyYW5oIHRyYWNoIG5oaWVtIGN1YSBtaW5oIGN1bmcgZHVvYyBjaGluaCBOZ3V5ZW4gVGFuIER1 bmcgdHJ1YyB0aWVwIA0KdHJpbmggYmF5IHRyb25nIGRpZW4gdmFuIHRydW9jIFF1b2MgaG9pIG5n YXkgMjAuMTA6DQoiVGluaCB0cmFuZyBuZ2hpZW0gdHJvbmcgaGllbiBuYXkgY3VhIFZpbmFzaGlu IGNodSB5ZXUgbGEgZG8gc3UgeWV1IGtlbSB0cm9uZyBxdWFuIGx5LCANCnRoaWV1IHRpbmggdGhh biB0cmFjaCBuaGllbSwgY28geSBsYW0gdHJhaSwgYmFvIGNhbyBraG9uZyB0cnVuZyB0aHVjIGN1 YSBsYW5oIGRhbyBUYXAgZG9hbi4iDQpUdXkgbmhhbiAiVGh1YyB0cmFuZyBuYXkgY28gdHJhY2gg bmhpZW0gY3VhIENoaW5oIHBodSwgY3VhIGNhYyBCbyBsaWVuIHF1YW4gdHJvbmcgDQp2aWVjIHF1 YW4gbHkgbmhhIG51b2MgdmEgcXVhbiBseSBjdWEgY2h1IHNvIGh1dSIuIFZhIGNvbiBsZW4gZ2lv bmcgIkNoaW5oIHBodSBkYSANCm5naGllbSB0dWMga2llbSBkaWVtLCB4YWMgZGluaCBuZ3V5ZW4g bmhhbiB2YSBkZSByYSBrZSBob2FjaCBjdSB0aGUgZGUgeHUgbHksIGNoYW4gDQpjaGluaCBjYWMg aG9hdCBkb25nIGN1YSBUYXAgZG9hbi4iDQoNCk5odW5nIGFpIHRyb25nIGNoaW5oIHBodSwgbmd1 b2kgZHVuZyBkYXUgbmFvIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB2YSB4dSBseSB0cmFjaCANCm5o aWVtIG5odSB0aGUgbmFvIHRoaSBOZ3V5ZW4gVGFuIER1bmcga2hvbmcgbm9pIHRvaSEgTmdoaWEg bGEgTmd1eWVuIFRhbiBEdW5nIHRpbSANCm1vaSBjYWNoIHBodSBuaGFuIHRyYWNoIG5oaWVtIGNh IG5oYW4sIGNvaSBkYXkgbGEgdHJhY2ggbmhpZW0gdGFwIHRoZS4gTmdoaWEgbGEgdGltIGNhY2gg eGkgeG9hLCBodWUgY2EgbGFuZyENCg0KTmhpZXUgbmd1b2kgZHVuZyBkYXUgY2FjIGJvIHZhIGNv IHF1YW4gZGEgcGhhbiBwaGFvIGxhaSBOZ3V5ZW4gVGFuIER1bmcuIA0KIA0KVnUgbm8ga2hvbmcg bG8gbGFtIHRoaWV0IGhhaSBuZ2FuIHF1aSBxdW9jIGdpYSBuaHUgdGhlIG5odW5nIHZhbiBraG9u ZyBkdW9jIGR1YSB2YW8gDQp0aGFvIGx1YW4gY2h1eWVuIGRlIHRhaSBreSBob3AgdGh1IDggY3Vh IFF1b2MgaG9pIHR1IG5nYXkgMjAuMTAuIFR1eSBuaGllbiB0cm9uZyBraGkgDQp0aGFvIGx1YW4g dmUgdGluaCBoaW5oIGtpbmggdGUteGEgaG9pIG5oaWV1IGRhaSBiaWV1IGRhIGRhdCB0aGFuZyB2 dSBuYXkgdm9pIG5oaWV1IGJvIA0KdHJ1b25nLCBUb25nIFRoYW5oIHRyYSBDaGluaCBwaHUsIFRv bmcgS2llbSB0b2FuIE5oYSBudW9jLi4uIEN1bmcgdHJvbmcgY2FjIGRpcCBuYXkgDQptb3Qgc28g bmd1b2kgZHVuZyBkYXUgY2FjIGJvIHZhIGNvIHF1YW4gZGEgZGUgY2hvIGJhbyBjaGkgcGhvbmcg dmFuLiBIbyBkYSBwaGFuIGJ1YSANCmxhIGtob25nIGNvIHF1eWVuIGhhbmggZ2kgZG9pIHZvaSBW aW5hc2hpbiwgdHVjIGxhIHRvIG5ndW9jIE5ndXllbiBUYW4gRHVuZy4gDQoNCkJvIHRydW9uZyBH aWFvIHRob25nIHZhbiB0YWkgSG8gTmdoaWEgRHVuZyB0cm9uZyBjdW9jIHBob25nIHZhbiBjdWEg YmFvIFRpZW4gcGhvbmcgDQpuZ2F5IDI1LjEwIGRhIGNobyBiaWV0LCB0dSAyMDA2IGtoaSBWaW5h c2hpbiB0cm8gdGhhbmggVGFwIGRvYW4ga2luaCB0ZSB0aGkgYm8gR2lhbyANCnRob25nIHZhbiB0 YWkga2hvbmcgY29uIGxhIGNodSBxdWFuIG51YTogDQoiQ28gcXVhbiBuaGEgbnVvYyBjaGFtIGR1 dCB0aW5oIHRyYW5nIGNhbiB0aGllcCB2YW8gaG9hdCBkb25nIHNhbiB4dWF0LCBraW5oIGRvYW5o IGN1YSANCnRhcCBkb2FuLiBQaGFuIHJvIHF1eWVuIHF1YW4gbHkgbmhhIG51b2MgdmEgcXV5ZW4g Y2h1IGRvbmcgc2FuIHh1YXQga2luaCBkb2FuaC4iDQoNClZhbiB0aGVvIGxvaSBvbmcgSG8gTmdo aWEgRHVuZywga2hpIGF5IGNhYyBibyBsaWVuIGhlIG5odSBHaWFvIHRob25nIHZhbiB0YWksIEtl IGhvYWNoIA0KdmEgZGF1IHR1LCBCbyBDb25nIHRodW9uZy4uLiBjaGkgZG9uZyB2YWkgdHJvIHRo YW0gbXV1IG1hIHRob2k6DQoiQ2h1bmcgdG9pIGNoaSBjbyB5IGtpZW4gY29uIHZpZWMgdGllcCB0 aHUgaGF5IGtob25nIGxhIHF1eWVuIGN1YSB0YXAgZG9hbi4gS2UgY2EgdmUgcXV5IA0KaG9hY2gg cGhhdCB0cmllbiwgY29uZyB0YWMgY2FuIGJvLCBuZXUga2hvbmcgZHVvYyBob2kgeSBraWVuIHRo aSBibyBjdW5nIGNoaXUuIiANCg0KT25nIEhvIE5naGlhIER1bmcgZGEgbm9pIGR1bmcsIHZpIHRy b25nIHRodWMgdGUgdHUga2hpIGxhbSBUaHUgdHVvbmcgdmFvIGdpdWEgbmFtIA0KMjAwNiBOZ3V5 ZW4gVGFuIER1bmcgZGEgdHJ1YyB0aWVwIGRpZXUga2hpZW4gY2FjIFRhcCBkb2FuIE5oYSBudW9j LCB0cm9uZyBkbyBjbyANClZpbmFzaGluLiBEaWV1IG5heSBkYSBkdW9jIG5nYXkgY2EgY2FjIHRv IGNodWMgcXVvYyB0ZSB4YWMgbmhhbiBuaHUgdHJpbmggYmF5IG8gcGhhbiANCnRyZW4uIA0KVGh1 IHR1b25nIGJvIG5oaWVtIGNhYyBUb25nIGdpYW0gZG9jIGRpZXUgaGFuaCB2YSBDaHUgdGljaCBo b2kgZG9uZyBxdWFuIHRyaSBjYWMgdGFwIA0KZG9hbiBuYXksIHRyb25nIGRvIGNvIFZpbmFzaGlu LiBDaGluaCB2aSB0aGUsIHRyYWkgdm9pIG5ndXllbiB0YWMgcGhhbiBxdXllbiBnaXVhIGNhYyAN CmNvIHF1YW4gY2hpbmggY3VhIG1vdCB0YXAgZG9hbiBraW5oIGRvYW5oLCBOZ3V5ZW4gVGFuIER1 bmcgZGEgZ2lhbyBjaG8gUGhhbSANClRoYW5oIEJpbmggY3VuZyBsdWMgYmFvIHRoYXUgbmFtIGdp dSA0IGNodWMgdnUgbGEgQmkgdGh1IERhbmcgdXksIENodSB0aWNoIEhvaSBkb25nIA0KUXVhbiB0 cmksIENodSB0aWNoIFRhcCBkb2FuIHZhIFRvbmcgZ2lhbSBkb2MuIERheSBsYSBuZ3V5ZW4gbmhh biBjaGluaCBkYSBraGllbiBjaG8gDQpQaGFtIFRoYW5oIEJpbmggZGFtIGxhcCBjYWMgYmFvIGNh byBzYWkgbGFtLCBjb2kgdGh1b25nIGNhYyBjbyBxdWFuIHRoYW5oIHRyYSwga2llbSANCnRvYW4g dmEgZGFtIGR1YSBjYSB0aGFuIG5oYW4gdmFvIGdpdSBjYWMgY2h1YyB2dSB0aGVuIGNob3QgdHJv bmcgVmluYXNoaW4uDQoNClF1YW4gZGllbSB0cmVuIGRheSBjdWEgQm8gdHJ1b25nIEdpYW8gdGhv bmcgdmFuIHRhaSBIbyBOZ2hpYSBEdW5nIGN1bmcgZHVvYyBCbyANCnRydW9uZyBLZSBob2FjaCB2 YSBkYXUgdHUgdmEgRGF1IHR1IFZvIEhvbmcgUGh1YyBjaGlhIHNlIHJhdCBybyByYW5nOg0KIk5h bSAyMDA4LCBraGkgQ2hpbmggcGh1IChvIGRheSBhbSBjaGkgbGEgVGh1IHR1b25nLCBnaGkgY2h1 IGN1YSBuZ3VvaSB2aWV0KSBjaGkgZGluaCANCmNodW5nIHRvaSBraWVtIHRyYSBjYWMgdGFwIGRv YW4ga2luaCB0ZSwgdmFvIGNhYyB0YXAgZG9hbiBobyBraG9uZyB0aWVwIHZpIGhvIG5vaSBibyAN Cmtob25nIGNvbiBjaHVjIG5hbmcgbnVhLiBDaHVuZyB0b2kgcGhhaSBub2kgZGF5IGxhIGxhbSB0 aGVvIGNoaSB0aGkgZG90IHh1YXQgKHZlIGNob25nIA0KbGFtIHBoYXQpIGNodSBraG9uZyBwaGFp IHRoZW8gbHVhdC4gVHV5IG5oaWVuLCBraWVtIHRyYSBkb3QgeHVhdCBobyBjaGkgYmFvIHRvbmcg ZGF1IHR1IA0KY2FjIGR1IGFuLCBjb24gZHUgYW4gbmFvIGN1IHRoZSB0aGkga2hvbmcgZHVvYyBs YW0sIG1hIGNhaSBkbyBsYSBxdXllbiBjdWEgQm8gVGFpIGNoaW5oLCANCmN1YSBCbyBHaWFvIHRo b25nIHZhbiB0YWkuLi4iIA0KVmkgZHVvYyBuZ3VvaSBkdW5nIGRhdSBjaGluaCBwaHUgZG8gZGF1 IG5lbiBQaGFtIFRoYW5oIEJpbmggZGEgY29pIHRodW9uZyBjYSBjYWMgDQpob2F0IGRvbmcgdmEg a2V0IHF1YSB0aGFuaCB0cmEgdGFpIFZpbmFzaGluLiBDaGluaCBkaWV1IG5heSBkYSBkdW9jIFRv bmcgdGhhbmggdHJhIA0KQ2hpbmggcGh1IFRyYW4gVmFuIFRydXllbiBnaWFuIHRpZXAgeGFjIG5o YW4gbmdheSAyMS4xMCB0YWkgaGFuaCBsYW5nIFF1b2MgaG9pOg0KIlR1IG5hbSAyMDA1IGRlbiBu YXkgZGEgY28gMTMtMTQgY3VvYyB0aGFuaCwga2llbSB0cmEsIGdpYW0gc2F0IHRhaSBkb24gdmkg bmF5LiIgIHZhIA0KInBoYXQgaGllbiByYXQgbmhpZXUgc2FpIHBoYW0gdmEgZGEga2llbiBuZ2hp Ig0KT25nIFRydXllbiBjaG8gYmlldCB0aGVtOg0KIk5odW5nIGRhbmcgdGllYyBsYSBWaW5hc2hp biBjaGFuZyBuaHVuZyBraG9uZyBuZ2hpZW0gdHVjIHRodWMgaGllbiBrZXQgbHVhbiwga2llbiAN Cm5naGkgY3VhIGNhYyBjbyBxdWFuIHRoYW5oLCBraWVtIHRyYSBtYSBjb24gdGltIGNhY2ggYmFv IGNhbyBraG9uZyBkdW5nIHN1IHRoYXQsIGdpYW4gDQpkb2kgZGUgbGFwIGxpZW0gdmllYyBsYW0g Y3VhIG1pbmguIiANCk5odW5nIGR1YSB2YW8gbmhhbiB2YXQgbmFvIG1hIFBoYW0gVGhhbmggQmlu aCBkYSBkYW0gY2EgZ2FuIGxhbSBuaHUgdmF5PyBHb2kgeSANCmNobyBjYXUgdHJhIGxvaSB2ZSB2 aWVjIG5heSBvbmcgVHJ1eWVuIGRhIGNobyBiaWV0Og0KIk5nYXkgY2Ega2hpIGNvIGtldCBsdWFu IGN1YSBUaHUgdHVvbmcgdGhpIGN1bmcgY28gYWkgcGh1YyB0cmEgZGF1PyBNYSBkYSBraG9uZyBw aHVjIA0KdHJhIHRoaSBjbyBjaGFwIGhhbmggbmdoaWVtIGhheSBraG9uZywgY3VuZyBraG9uZyBh aSBiaWV0Ii4NCg0KVHJvbmcga2hpIGF5IHRydW9jIG1vdCB0aGFuZyBjdWEgS3kgaG9wIHRodSA4 IGN1YSBRdW9jIGhvaSwgVG9uZyBraWVtIHRvYW4gTmhhIG51b2MgDQpWdW9uZyBEaW5oIEh1ZSBk YSB2aWV0IHRodSB0cmEgbG9pIGNobyBtb3QgZGFpIGJpZXUgUXVvYyBob2kgbm9pIGx5IGRvIHRh aSBzYW8gZGEga2hvbmcgDQpraWVtIHRvYW4gc28gc2FjaCBjdWEgVmluYXNoaW4uIFR1eSBraG9u ZyBuZXUgZGljaCBkYW5oIG1vdCBuaGFuIHZhdCBuYW8gdHJvbmcgY2hpbmggDQpwaHUsIG5odW5n IG9uZyBIdWUgZGEgdG8gTmd1eWVuIFRhbiBEdW5nLCBQaG8gVGh1IHR1b25nIE5ndXllbiBTaW5o IEh1bmcsIFV5IA0KYmFuIFRodW9uZyB2dSBRdW9jIGhvaSB2YSBUcnVvbmcgYmFuIHRoYW5oIHRy YSBDaGluaCBwaHUgVHJhbiBWYW4gVHJ1eWVuIGRhIHRpbSANCm5oaWV1IG1hbmggbG9pIGtoYWMg bmhhdSBuZ2FuIGNhbiBUb25nIGtpZW0gdG9hbiBOaGEgbnVvYyB0aGkgaGFuaCBuaGllbSB2dSBr aWVtIA0KdG9hbiB0YWkgVmluYXNoaW4uIE9uZyBkdWEgcmEgY2FjIGRhbiBjaHVuZzoNCiJDdSB0 aGUsIG5hbSAyMDA4LCBLaWVtIHRvYW4gTmhhIG51b2MgZGEgbGVuIGtlIGhvYWNoIGtpZW0gdG9h biBiYW8gY2FvIHRhaSBjaGluaCBjdWEgDQogdGFwIGRvYW4sIG5odW5nIGRvIFRoYW5oIHRyYSBD aGluaCBwaHUgZGEgZHVhIFRhcCBkb2FuIFZpbmFzaGluIHZhbyBrZSBob2FjaCB0aGFuaCANCnRy YSBuYW0gMjAwOSCWIG5odW5nIHJvaSBsYWkgaG9hbiCWIG5lbiB0aGVvIHF1eSBjaGUgcGhvaSBo b3AgdmEgZGUgdHJhbmggdHJ1bmcgbGFwLCANCktpZW0gdG9hbiBOaGEgbnVvYyBkYSBkdWEgcmEg bmdvYWkga2UgaG9hY2ggdmEgbHVpIHNhbmcgbmFtIDIwMTAuIFR1eSBuaGllbiwga2UgDQpob2Fj aCBuYXkgbGFpIHRpZXAgdHVjIGJpICJ0cmkgaG9hbiIgYm9pIGtob25nIGR1b2MgcGhlIGR1eWV0 LiINCg0KT25nIEh1ZSBjb24geGFjIG5oYW4gbW90IHRpbiBkb25nIHRyb2kgbWEgdG9pIG5heSBO Z3V5ZW4gVGFuIER1bmcgdmFuIGNvIHRpbmggaW0gDQpsYW5nLCBkbyBsYSBraG9uZyBwaGFpIGNo aSBkZSBUb25nIHRoYW5oIHRyYSBDaGluaCBwaHUgbGF5IGNvIGRlIHRpbSBjYWNoIGtob25nIGNo byANClRvbmcga2llbSB0b2FuIE5oYSBudW9jIHRoaSBoYW5oIG5oaWVtIHZ1IHRhaSBWaW5hc2hp biBtYSBzYXUgZG8gY3VuZyBkYSBjYW0gY2EgDQpUb25nIHRoYW5oIHRyYSBDaGluaCBwaHUga2hv bmcgZHVvYyB0aGFuaCB0cmEgVmluYXNoaW4gdm9pIGx5IGRvIHZpZW4gZGFuIHRyb25nIGx1YyAN CmtodW5nIGhvYW5nIGtpbmggdGUgdGFpIGNoaW5oIHRoZSBnaW9pIHZhbyB0aG9pIGRpZW0gMjAw OC0wOToNCiJOaHVuZyByb2ksIGNoaW5oIFRoYW5oIHRyYSBDaGluaCBwaHUgY3VuZyBraG9uZyBk dW9jIFRodSB0dW9uZyBjaGFwIG5oYW4ga2UgaG9hY2ggDQp0aGFuaCB0cmEgVmluYXNoaW4gdm9p IGx5IGRvICJkZSBkb2FuaCBuZ2hpZXAgdGFwIHRydW5nIHBoYXQgdHJpZW4gc2FuIHh1YXQsIGNo b25nIHN1eSANCmdpYW0ga2luaCB0ZSwgVGh1IHR1b25nIGRlIG5naGkgZGlldSBjaGluaCBzYW5n IGtlIGhvYWNoIHRoYW5oIHRyYSBuYW0gMjAxMD8uDQoNClRyb25nIGtoaSB0aW0gY2FjaCBuZ2Fu IGNhbiBjYWMgY28gcXVhbiB0aGFuaCB0cmEgdmEga2llbSB0b2FuIG5odSB0aGUsIG5odW5nIHRy b25nIA0KQmFvIGNhbyBDaGluaCBwaHUgZ29pIFF1b2MgaG9pIG5nYXkgMTkuMTAgTmd1eWVuIFRh biBEdW5nIGxhaSB0cmkgdHJhIG5vaSBkb2kgY2EgDQpRdW9jIGhvaSBsYW0gbmh1IG9uZyB0YSBy YXQgcXVhbiB0YW0gdmEgdmFuIG5hbSBzYXQgZHVvYyBjYWMgaG9hdCBkb25nIGN1YSBWaW5hc2hp bjoNCiJUdSAyMDA4IGRlbiBuYXkga2hpIHRhcCBkb2FuIGJvYyBsbyBraG8ga2hhbiwgVGh1IHR1 b25nIGxpZW4gdHVjIHlldSBjYXUgdGhlbyBzYXQgY2hpIA0KZGFvIHZhIG5nYW4gY2hhbiBzYWkg cGhhbSIuIA0KDQpUb25nIGtpZW0gdG9hbiBOaGEgbnVvYyBWdW9uZyBEaW5oIEh1ZSBjdW5nIGNv biBjaG8gYmlldCwgcGh1IGhvYSB2b2kgTmd1eWVuIFRhbiANCkR1bmcsIFV5IHZpZW4gQm8gY2hp bmggdHJpIGtpZW0gUGhvIHRodSB0dW9uZyB0aHVvbmcgdHJ1YyBOZ3V5ZW4gU2luaCBIdW5nLCB0 aGF5IHZpIA0KdGh1YyBkYXkgdGluaCBkb2MgbGFwIHZhIGNhbmggdHJhbmggZ2l1YSBUb25nIGtp ZW0gdG9hbiBOaGEgbnVvYyB2YSBUb25nIHRoYW5oIHRyYSANCkNoaW5oIHBodSB0cm9uZyB2aWVj IGdpdSBzYWNoIGJvIG1heSBuaGEgbnVvYywgZGEgdmllbiBjbyAidHJhbmggdHJ1bmcgaG9wIiBk ZSBjYW4gDQpUb25nIGtpZW0gdG9hbiBOaGEgbnVvYyBraWVtIHRyYSBzbyBzYWNoIFZpbmFzaGlu Og0KIlBobyBUaHUgdHVvbmcgTmd1eWVuIFNpbmggSHVuZyBibyBzdW5nOiAiS2llbSB0b2FuIE5o YSBudW9jIG5lbiBwaG9pIGhvcCB2b2kgDQpUaGFuaCB0cmEgQ2hpbmggcGh1IGRlIG5hbmcgY2Fv IGhpZXUgcXVhIGhvYXQgZG9uZyBraWVtIHRvYW4gdmEgaG9hdCBkb25nIFRoYW5oIHRyYSwgDQp0 cmFuaCB0cnVuZyBsYXAsIHRhbyBkaWV1IGtpZW4gY2hvIGRvYW5oIG5naGllcCBob2FuIHRoYW5o IHRvdCBjYSBuaGllbSB2dSBwaHVjIHZ1IGtpZW0gDQp0b2FuLCB0aGFuaCB0cmEgdGhlbyBxdXkg ZGluaCwgY3VuZyBuaHUgdGFwIHRydW5nIHRob2kgZ2lhbiBjaHV5ZW4gbW9uIHZhIHNhbiB4dWF0 Ii4NCg0KTmd1b2kgdGEgZHVvYyBiaWV0LCB0dSBkYXUgdGhhbmcgOC4yMDEwIHNhdSBraGkgQm8g Y2hpbmggdHJpIGR1YSByYSAiS2V0IGx1YW4iIHZlIA0KVmluYXNoaW4gdGhpIE5ndXllbiBTaW5o IEh1bmcgZHVvYyBjdSBsYW0gVHJ1b25nIGJhbiBDaGkgZGFvIHRhaSBjbyBjYXUgVGFwIGRvYW4g DQpDb25nIG5naGllcCBUYXUgdGh1eSBWaWV0IE5hbSAoVmluYXNoaW4pLg0KVmFuIHRoZW8gbG9p IG9uZyBWdW9uZyBEaW5oIEh1ZSB0aGkgY2EgVXkgYmFuIFRodW9uZyB2dSBRdW9jIGhvaSwgZHVu ZyBkYXUgbGEgVXkgDQp2aWVuIEJvIGNoaW5oIHRyaSBraWVtIENodSB0aWNoIFF1b2MgaG9pIE5n dXllbiBQaHUgVHJvbmcsIGN1bmcgZGEgdmUgaHVhIHZvaSANCk5ndXllbiBUYW4gRHVuZywgTmd1 eWVuIFNpbmggSHVuZyB2YSByYSBsZW5oIG5nYW4gY2FuIFRvbmcga2llbSB0b2FuIE5oYSBudW9j IA0KdGhpIGhhbmggY29uZyB2dSB0YWkgVmluYXNoaW46DQoiTmdheSBjYSBVeSBiYW4gVGh1b25n IHZ1IFF1b2MgaG9pIGN1bmcgY2hvIHJhbmc6ICJOZW4geGVtIHhldCwgY2FuIG5oYWMgY2h1YSAN CmR1YSB2YW8ga2UgaG9hY2gga2llbSB0b2FuIG5hbSAyMDEwIGNhYyB0YXAgZG9hbiwgdG9uZyBj b25nIHR5IG1hIFRoYW5oIHRyYSBDaGluaCANCnBodSwgVGhhbmggdHJhIEJvIFRhaSBjaGluaCBk YSBjbyBxdXlldCBkaW5oIHRoYW5oIHRyYSBuYW0gMjAwOSBuaHVuZyB0YW0gZHVuZyB0aGFuaCAN CnRyYSB0aGVvIGNoaSBkYW8gY3VhIFRodSB0dW9uZyIuDQpOZ29haSByYSwgY3VuZyB0cm9uZyB0 aHUgdHJlbiBvbmcgVnVvbmcgRGluaCBIdWUgZGEgbm9pIHRvYWMgcmEgbGEsIG5nYXkgY2EgVG9u ZyB0aGFuaCANCnRyYSBDaGluaCBwaHUgVHJhbiBWYW4gVHJ1eWVuIGN1bmcgZGEgbGF5IGx5IGRv IHRyYW5oICJzdSB0cnVuZyBsYXAiIGRlIHRpbSBjYWNoIG5nYW4gDQpraG9uZyBjaG8gVG9uZyBr aWVtIHRvYW4gTmhhIG51b2MgdG9pIHhldCBzbyBzYWNoIGNoaSB0aHUgY3VhIFZpbmFzaGluOg0K IlRoYW5oIHRyYSBDaGluaCBwaHUgdGhheSBjbyBzdSB0cnVuZyBsYXAgdmUgbW90IHNvIGxpbmgg dnVjIHZhIGRvaSB0dW9uZyBraWVtIHRvYW4iLg0KVmllYyBuYXkgVHJhbiBWYW4gVHJ1eWVuIGRh IGJpZW4gYmFjaCAidHJhbmggY2hvbmcgY2hlbyIgZGUgYmFvIHZlIGNobyBjYWMgZG9uIHZpIA0K ZHVvYyBobyBiYW8gY2hlLg0KIlRodSBoYWksIHRyYW5oIGNob25nIGNoZW8uIFZpIGRvYW5oIG5n aGllcCBjdSBrZXUgbGEgdGhhbmggdHJhIGRheSBkYWMuIE5lbiBoZSBjdSBjbyANCmtpZW0gdG9h biB0aGkgdGhhbmggdHJhIGtob25nIGxhbS4gTWEgaGUgdGhhbmggdHJhIGxhbSB0aGkga2llbSB0 b2FuIGtob25nIGxhbS4iDQoNCkxhIGNvIHF1YW4gVG9uZyB0aGFuaCB0cmEgQ2hpbmggcGh1IHRh dCBuaGllbiBwaGFpIGR1b2kgcXV5ZW4gVGh1IHR1b25nLCBwaGFpIGxhbSB0aGVvIA0KeSBtdW9u IGN1YSBuZ3VvaSBkdW5nIGRhdSBjaGluaCBwaHUgbGEgTmd1eWVuIFRhbiBEdW5nLCBuZW4ga2hp IGR1b2MgbGVuaCBjYW4gY2FjIA0KY28gcXVhbiB0aGFuaCB0cmEgaGF5IGtpZW0gdG9hbiBuYW8g dGhpIG9uZyBUcnV5ZW4gZGEgbGF0IGxlbyBkdWEgcmEgbmhpZXUgdmllbiBjbyBraGFjIG5oYXUh DQpOaHVuZyBsb2kgZ2lhaSB0aGljaCB0cmVuIGRheSBjdWEgVG9uZyBraWVtIHRvYW4gTmhhIG51 b2MgVnVvbmcgRGluaCBIdWUgdmEgbW90IHNvIA0Kbmd1b2kgZHVuZyBkYXUgY2FjIGJvIGRhIGNo dW5nIHRvIHJvIHJhbmc6IE5ndXllbiBUYW4gRHVuZywgTmd1eWVuIFNpbmggSHVuZyBkYSAgDQps YSBoYWkgbmhhbiB2YXQgdHJ1YyB0aWVwIHRpbSBjYWNoIGNhbiB0cm8gY2FjIGhvYXQgZG9uZyBj dWEgY2FjIGNvIHF1YW4gaHV1IHF1YW4gdHJvbmcgDQp2aWVjIHRoYW5oIHRyYSwga2llbSB0b2Fu IHNvIHNhY2ggdmEgaG9hdCBkb25nIGN1YSBWaW5hc2hpbiB0cm9uZyBuaGlldSBuYW0gcXVhLiBW aSBjYWMgDQp0YXAgZG9hbiBuaGEgbnVvYyBkYXQgZHVvaSBxdXllbiBjdWEgY2hpbmggcGh1IHZh IHRyb25nIHRodWMgdGUgVGh1IHR1b25nIHRydWMgdGllcCANCmRpZXUga2hpZW4uIENoYW5nIG5o dW5nIHRoZSB0cm9uZyBkYW5oIG5naGlhIFRodSB0dW9uZywgTmd1eWVuIFRhbiBEdW5nIGNvbiB0 aW0gDQpjYWNoIHZvIGhpZXUgaG9hIG5odW5nIGtldCBsdWFuIHRoYW5oIHRyYSBjdWEgY2FjIGNv IHF1YW4gaHV1IHF1YW4gdmEgY28gdGluaCBiYW8gY2hlIA0KY2FjIHZpZWMgbGFtIHNhaSB0cmFp IGN1YSBQaGFtIFRoYW5oIEJpbmggdHJvbmcgVmluYXNoaW4ga2hpZW4gZGEgZHVhIHRvaSB0aW5o IHRyYW5nIGxhIA0KY2hpIG5vaSB0cm9uZyBob24gNCBuYW0gVmluYXNoaW4gZGEgZ2F5IHJhIG1v dCBtb24gbm8gcmF0IGxvbiBsYSAxMjAuMDAwIHRpIGRvbmcgY2hvIGRhdCANCm51b2MhIFRpbmgg aGluaCBkYSB4YXkgcmEgbyBWaW5hc2hpbiB0cm9uZyBjYWMgbmFtIHF1YSBjdW5nIGRhIGR1b2Mg TmdhbiBoYW5nIFRoZSANCmdpb2kgdmEgYmFvIGNoaSBxdW9jIHRlIHhhYyBuaGFuLCBuaHUgZGEg bm9pIG8gdHJlbi4NCg0KVHJvbmcgbmh1bmcgbmdheSBxdWEgbmhpZXUgZGFpIGJpZXUgUXVvYyBo b2kgdmEgbmhpZXUgY2h1eWVuIHZpZW4sIG5oYW4gc2kgdHJvbmcgbnVvYyANCmRhIHRvIHJhIHJh dCBiYXQgYmluaCB0cnVvYyB0aGFpIGRvIHRyb24gdHJhbmggdHJhY2ggbmhpZW0gY3VhIE5ndXll biBUYW4gRHVuZywgTmd1eWVuIA0KU2luaCBIdW5nLiBWaSBuZ2F5IFV5IGJhbiBUdSBwaGFwIFF1 b2MgaG9pIGRhIHhhYyBuaGFuIGNvIGJhbyBjaGUgdHJvbmcgdnUgVmluYXNoaW46DQpWaWVjIHBo YXQgaGllbiB2aSBwaGFtIGNvIGRhdSBoaWV1IHRvaSBwaGFtIG5odW5nIGtob25nIGR1b2MgeHUg bHksIG5nYW4gY2hhbiBraXAgDQp0aG9pLCBkaWVuIGhpbmggbmh1IHZ1IFZpbmFzaGluIHF1YSAx MSBsYW4gdGhhbmggdHJhLCBraWVtIHRvYW4gbmh1bmcgc2FpIHBoYW0gbmh1IGRhdSANCnR1IGRh biB0cmFpLCB0cmFuIGxhbiB0cmVuIG5oaWV1IGxpbmggdnVjIGtob25nIGxpZW4gcXVhbiBkZW4g Y2h1YyBuYW5nIGN1YSB0YXAgZG9hbiwga2VtIA0KaGlldSBxdWEsIHRodWEgbG8gbmFuZyBuZTsg dGluaCBoaW5oIHRhaSBjaGluaCBkdW5nIHRydW9jIGJvIHZ1YyBwaGEgc2FuOyBzYW4geHVhdCBr aW5oIA0KZG9hbmggZGluaCB0cmU7IHRpbmggaGluaCBub2kgYm8gZGllbiBiaWVuIHBodWMgdGFw OiAxLDcgdmFuIGNvbmcgbmhhbiBibyB2YSBjaHV5ZW4gdmllYywgDQp0cmVuIDUuMDAwIGNvbmcg bmhhbiBtYXQgdmllYyBsYW0sIG5vIGx1b25nLi4uIG1hIENoaW5oIHBodSB2YSBjYWMgY28gcXVh biBjaHVjIG5hbmcgDQpraG9uZyBiaWV0LCBraG9uZyBhaSBjaGl1IHRyYWNoIG5oaWVtLiBRdWEg ZG8geGEgaG9pIHZhIGN1IHRyaSByYXQgYnVjIHh1YyBjaG8gcmFuZyBjbyBzdSANCmJhbyBjaGUg Y2hvIG5odW5nIHZpZWMgbGFtIHNhaSB0cmFpLCB2aSBwaGFtIHBoYXAgbHVhdCBjdWEgVmluYXNo aW4gbGFtIHRoaWV0IGhhaSBsb24gZGVuIA0KdGllbiB2YSB0YWkgc2FuIGN1YSBOaGEgbnVvYy4s DQoNClhldCBjb25nIHZhIHRvaSBjdWEgbW90IGNoaW5oIGtoYWNoIHBoYWkgY2FuIGN1IHRyZW4g Y2FjIHN1IGtpZW4gcm8gcmFuZzogcXV5ZW4gaGFuaCANCmR1b2MgZ2lhbyBwaG8gdG9pIG11YyBk byBuYW8sIHRyYWNoIG5oaWVtIHRoZW8gZG9pIGNvbmcgdmllYyByYSBsYW0gc2FvLCB0aGFuaCBx dWEgZGF0IA0KZHVvYyBuaHUgdGhlIG5hbyB2YSB0aGFpIGRvIGN1YSBjaGluaCBraGFjaCBkdW5n IHRydW9jIHRoYW5oIGNvbmcgY3VuZyBuaHUgdGhhdCBiYWkuIA0KRHVhIHRyZW4gY2FjIGNvIHNv IGtoYWNoIHF1YW4gbmF5IGRlIHhldCB2ZSB0cmFjaCBuaGllbSBjdWEgTmd1eWVuIFRhbiBEdW5n IHRyb25nIHZ1ICBWaW5zYWhpbjogDQotICBUaGVvIHF1aSBkaW5oIHZlIHRvIGNodWMgdmEgZGll dSBoYW5oIGN1YSBoYWkgbG9haSBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgbG9uIG5oYXQgbGEgDQpU YXAgZG9hbiB2YSBUb25nIGNvbmcgdHkgOTEgdGhpIFRodSB0dW9uZyBjbyBxdXllbiBibyBuaGll bSBjYWMgY2h1YyBUb25nIGdpYW0gZG9jIA0KdmEgQ2h1IHRpY2ggSG9pIGRvbmcgcXVhbiB0cmku IA0KTWFjIGRhdSB0cmFpIHZvaSBuZ3V5ZW4gdGFjIHBoYW4gcXV5ZW4sIG5odW5nIHR1IG5hbSAy MDA2IHRyb25nIHR1IGNhY2ggbGEgVGh1IHR1b25nLCANCm9uZyBEdW5nIGRhIGdpYW8gY2hvIFBo YW0gVGhhbmggQmluaCwgbmd1b2kgZG9uZyBodW9uZyBDYSBNYXUgdm9pIG1pbmgsIGNhIDQgY2h1 YyANCnZ1IGNodSBjaG90IHRyb25nIHRhcCBkb2FuIFZpbmFzaGluOiBCaSB0aHUgRGFuZyB1eSwg Q2h1IHRpY2ggSG9pIGRvbmcgUXVhbiB0cmksIENodSANCnRpY2ggVGFwIGRvYW4gdmEgVG9uZyBn aWFtIGRvYy4NCg0KLSAgQ3VuZyB0cm9uZyB0aG9pIGdpYW4gaG9uIDQgbmFtIG5heSwgdHJvbmcg dHUgY2FjaCBsYSBUaHUgdHVvbmcsIE5ndXllbiBUYW4gRHVuZyBkYSANCnJhIGxlbmggY2hvIGNh YyBibyBUYWkgY2hpbmgsIE5nYW4gaGFuZyBOaGEgbnVvYyByb3QgdGllbiByYXQgbG9uIGNobyBW aW5hc2hpbi4gTmdvYWkgDQpyYSBvbmcgRHVuZyBjb24gY2hvIHBoZXAgVmluYXNoaW4sIGR1b2kg ZHUgYmFvIGxhbmggY3VhIGNoaW5oIHBodSwgZHVvYyBxdXllbiBwaGF0IA0KaGFuaCB0cmFpIHBo aWV1IGNhIERvbGxhciBsYW4gdGllbiBkb25nIHRyaSBnaWEgbGVuIGhhbmcgY2h1YyBuZ2FuIHRp IGRvbmcgZGUgUGhhbSBUaGFuaCANCkJpbmggdGh1YyBoaWVuIHZpZWMgbW8gcm9uZyByYXQgbG9u IHZhIHJhdCBuaGFuaCBuaHVuZyBob2F0IGRvbmcgY3VhIFZpbmFzaGluIGNhIA0Kbmh1bmcgbGFu aCB2dWMga2hvbmcgZGluaCBkYXAgZ2kgdG9pIGRvbmcgdGF1IHZhIHN1YSBjaHVhIHRhdS4NCg0K LSBDdW5nIHRyb25nIHRob2kgZ2lhbiBob24gNCBuYW0gbmF5IE5ndXllbiBUYW4gRHVuZyB0cm9u ZyB0dSBjYWNoIGxhIFRodSB0dW9uZywgDQpuaHVuZyBkYSBraG9uZyBsdXUgeSB0b2kgY2FjIGxv aSBjYW5oIGJhbyB2YSBjYWMgZGUgbmdoaSBjdWEgbmhpZXUgYm8gbGllbiBoZSB2b2kgDQpWaW5h c2hpbiwga2UgY2FjIGNodXllbiB2aWVuIGRvYyBsYXAuIFR1eSBjYWMgY28gcXVhbiB0aGFuaCB0 cmEsIGtpZW0gdHJhIGRhIHRvaSBraWVtIA0Kc29hdCA5IGxhbiB2YSBkYSBraGFtIHBoYSByYSBu aHVuZyBzYWkgbGFtIG5naGllbSB0cm9uZyBjdWEgVmluYXNoaW4uIE9uZyBEdW5nIGRhIA0KZHVv YyB0aG9uZyBiYW8sIG5odW5nIE5ndXllbiBUYW4gRHVuZyB2YW4gZGUgUGhhbSBUaGFuaCBCaW5o IHRpZXAgdHVjIHR1IGRvIGhhbmggDQpkb25nLiBLaG9uZyBuaHVuZyB0aGUsIE5ndXllbiBUYW4g RHVuZyBjb24gZHVuZyB1eSBxdXllbiB2YSBjYSBtYW5oIGxvaSBkZSBuZ2FuIA0KY2FuIGtob25n IGNobyBUb25nIGtpZW0gdG9hbiBOaGEgbnVvYyBkdW9jIHF1eWVuIGtpZW0gdG9hbiBzbyBzYWNo IGNoaSB0aHUgY3VhIA0KVmluYXNoaW4uDQoNCi0gVHUgMjAwOC0wOSBraGkgY3VvYyBraHVuZyBo b2FuZyBraW5oIHRlLXRhaSBjaGluaCB0aGUgZ2lvaSBidW5nIG5vIHRoaSBraW5oIHRlIFZOIA0K Y3VuZyByb2kgdmFvIGtodW5nIGhvYW5nIHRyYW0gdHJvbmcsIGtoaWVuIGNobyBzbyBubyBkYSBx dWEgbG9uIGN1YSBWaW5hc2hpbiBraG9uZyB0aGUgDQpjb24gZGF1IGtpbiBkdW9jIG51YSB0aGkg Tmd1eWVuIFRhbiBEdW5nIGRhIHRpbSBjYWNoLCBtb3QgbWF0IGRvIHRodWEgZG8gbmd1eWVuIA0K bmhhbiBraGFjaCBxdWFuIHR1IGN1b2Mga2h1bmcgaG9hbmcga2luaCB0ZS10YWkgY2hpbmggdGhl IGdpb2kgdmEgbWF0IGtoYWMgY29uIHRydXQgdGF0IA0KY2EgdG9pIGxlbiBQaGFtIFRoYW5oIEJp bmggdmEgZG8gbG9pIGNobyBtb3Qgc28gYm8gdmEgY28gcXVhbiBjaGluaCBwaHUuIFRyb25nIGNh YyBiYW8gDQpjYW8gdHJpbmggYmF5IHRhaSBCbyBjaGluaCB0cmkgY3VvaSB0aGFuZyA3IGN1bmcg bmh1IGdvaSBRdW9jIGhvaSBnaXVhIHRoYW5nIDEwIHZ1YSBxdWEgDQpOZ3V5ZW4gVGFuIER1bmcg dmFuIHRpbSBjYWNoIGNoZSBkYXUgbmh1bmcgc2FpIGxhbSBkbyBjaGluaCBtaW5oIGdheSByYSwg Y2hpIGJhbyBkbyANCmxhICJjaGluaCBwaHUgY2hpdSB0cmFjaCBuaGllbSIsIHR1YyBsYSB0cmFj aCBuaGllbSB0YXAgdGhlIHZhIHBodSBuaGFuIHRyYWNoIG5oaWVtIGNhIA0KbmhhbiBjdWEgY2hp bmggb25nIER1bmcuDQoNCkNhYyBzdSBraWVuIGRhbiBjaHVuZyB0cmVuIGRheSBkYSBjaG8gdGhh eSwgdHJvbmcgdHUgY2FjaCBsYSBUaHUgdHVvbmcgbmh1bmcgTmd1eWVuIA0KVGFuIER1bmcgZGEg ZGkgdmFvIG5oaWV1IHNhaSBsYW0gbmdoaWVtIHRyb25nIHRyb25nIHZpZWMgZ2lhbyBwaG8sIGRp ZXUgaGFuaCwga2llbSANCnNvYXQsIHRob25nIHRpbiB2YSBtdWMgZG8geSB0aHVjIHRyYWNoIG5o aWVtIHRyb25nIHZ1IFZpbmFzaGluLiBWaSB0aGUsIGR1b2kgcXV5ZW4gY2hpIA0KZGFvIGN1YSBO Z3V5ZW4gVGFuIER1bmcgY2hpIHRyb25nIHZvbmcgaG9uIDQgbmFtIFZpbmFzaGluIGRhIGdheSB0 aGlldCBoYWkgY2hvIG5nYW4gDQpxdWkgcXVvYyBnaWEgbGVuIHRvaSAxMjAuMDAwIHRpIGRvbmcs IGJhbmcga2hvYW5nIGdhbiAxLzYgdG9uZyB0aHUgY3VhIG5nYW4gc2FjaCBuaGEgDQpudW9jIG5h bSAyMDA5IGRvIHRpZW4gdGh1ZSBjdWEgbmhhbiBkYW4hDQoNCk5odW5nIGdpIGRhIHhheSByYSB0 YWkgVmluYXNoaW4gdHJvbmcgaG9uIDQgbmFtIHF1YSBjaHVuZyB0byBybyByYW5nIGxhLCBOZ3V5 ZW4gVGFuIA0KRHVuZyBkYSBnaWFvIGNvbmcgdmllYyBjaG8gbmd1b2kga2hvbmcgZHVuZyBraGEg bmFuZywgdHJhbyBxdXllbiByb25nIHJhaSBuaHVuZyBsYWkgDQpraG9uZyBjbyBraWVtIHNvYXQg Y2hhdCBjaGUsIHRvaSBraGkgeGF5IHJhIG5odW5nIHRoaWV0IGhhaSBsb24gY2hvIG5nYW4gc2Fj aCBxdW9jIGdpYSB0aGkgDQpsYWkga2hvbmcgZGFtIGNvbmcga2hhaSBuaGluIG5oYW4gdHJhY2gg bmhpZW0gY2EgbmhhbiwgbGFpIGRvIHRodWEgY2hvIG5odW5nIG5ndW9pIA0KZHVvaSBxdXllbiB2 YSB2aWVuIGRhbiBjYWMgbHkgZG8ga2hhY2ggcXVhbi4gTmh1IHRoZSBvbmcgRHVuZyBkYSB0dSBk YW5oIG1hdCBsb25nIHR1IA0KdHJvbmcgdmEgdGluaCB0aGFuIHRyYWNoIG5oaWVtLCBsYW0gbWF0 IHV5IHRpbiBjdWEgQ2hpbmggcGh1Lg0KDQpWaSB2YXkgeGV0IHZlIG1hdCB0cmFjaCBuaGllbSBj aGluaCB0cmksIHRyb25nIHR1IGNhY2ggZHVuZyBkYXUgY2hpbmggcGh1IG9uZyBEdW5nIHBoYWkg DQpsYSBuZ3VvaSBjaGl1IHRyYWNoIG5oaWVtIGNoaW5oIHRyaSBkYXUgdGllbiB2ZSBzdSBwaGEg c2FuIHZhIG1vbiBubyB0aGF0IGtodW5nIGtoaWVwIA0KY3VhIFZpbnNhaGluIHR1IDIwMDYtMjAx MC4gWGV0IHZlIG1hdCB0dSBjYWNoIHZhIGtoYSBuYW5nIGxhbmggZGFvLCBvbmcgRHVuZyBkYSB0 dSANCmNodW5nIHRvIGJhdCB0YWkgdmEgdGhpZXUgdHUgY2FjaC4gRG8gZG8gZHVuZyByYSBOZ3V5 ZW4gVGFuIER1bmcgcGhhaSB0dSBjaHVjIFRodSANCnR1b25nIG5nYXkuIFZpIG5nYXkgc2F1IGto aSBOZ3V5ZW4gVGFuIER1bmcgbmhhbiBjaHVjIFRodSB0dW9uZywgb25nIGRhIGNvIFF1eWV0IA0K ZGluaCBybyByYW5nIGxhLCBiYXQgY3UgY28gcXVhbiBuYW8gdHJvbmcgY2hpbmggcGh1IGRlIHhh eSByYSBuaHVuZyBzYWkgdHJhaSB0aGkgbmd1b2kgDQpkdW5nIGRhdSBjbyBxdWFuIGRvIHBoYWkg Y2hpdSB0cmFjaCBuaGllbSENCk5odW5nIGhhbmggdmkgbmF5IGxhIHZpIHBoYW0ga2kgbHVhdCB2 YSBkYSBkYW4gdG9pIGdheSB0aGlldCBoYWkgY29uZyBxdWkgcmF0IGxvbi4gTmh1bmcgDQpjYWMg dmllYyBsYW0gaGllbiBuYXkgY3VhIE5ndXllbiBUYW4gRHVuZyBkYSBjaG8gdGhheSwgb25nIER1 bmcgZGEga2hvbmcgZHUgY2FuIA0KZGFtIG5oaW4gbmhhbiB0cmFjaCBuaGllbSBjdWEgbmd1b2kg ZHVuZyBkYXUgY2hpbmggcGh1LCBtYSBsYWkgZG8gcmllbmcgY2hvIFBoYW0gDQpUaGFuaCBCaW5o LCBjYWMgYm8gdmEgY28gcXVhbiBraGFjIHRyb25nIGNoaW5oIHBodS4gVGhhaSBkbyBuYXkgbGFp IGNodW5nIHRvIE5ndXllbiANClRhbiBEdW5nIGtob25nIGNoaSBjbyB0YWMgcGhvbmcgdHJvbiB0 cmFuaCB0cmFjaCBuaGllbSBtYSBjb24gbWF0IGNhIHR1IGNhY2ggdmEgZGFvIA0KZHVjIG51YS4g TW90IGNoaW5oIGtoYWNoIG1hIGtob25nIGJpZXQgY2hvbiBuZ3VvaSwga2hvbmcgY28geSB0aHVj IHRyYWNoIG5oaWVtIHZhIA0KZGFuaCBtYXQgY2EgdHUgY2FjaCBkYW8gZHVjLCBuaHUgdGhlIGxh IGRhIHR1IGRhbmggbWF0IHV5IHRpbiB2YSBraG9uZyB4dW5nIGRhbmcgbyB2YWkgDQp0cm8gbGFu aCBkYW8gdGllcCB0dWMuIA0KDQpHaGkgY2h1OiBDYWMgdHJpY2ggZGFuIHRyb25nIGJhaSBsYXkg dHUgVGhhbmggTmllbiwgVHVhbiBWTiwgQmFvIGNhbyBjaGluaCBwaHUgZ3VpIA0KUXVvYyBob2ks IFJGSSwgTmhhbiBEYW4sIFZpZXROYW1OZXQsIFRpZW4gUGhvbmcsIExhbyBEb25nLCBUdW9pIHRy ZS4gDQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAtMTEtMjItcXV5ZW4t ZGFpLWJpZXUtdmEtcXV5ZW4tbmFuZy1jdWEtYm8tdHJ1b25nIFRhYyBnaWE6IERCUUggRHVvbmcg VHJ1bmcgUXVvYw0KDQpRdXllbiBkYWkgYmlldSB2YSBxdXllbiBuYW5nIGN1YSBibyB0cnVvbmcN Cg0KTW9pIHkga2llbiBjdWEgREJRSCBjYW4gZHVvYyB0b24gdHJvbmcuIE5ldSBjbyBkaWV1IGdp IGxhbSBzdSB2aWVjIGNodWEgc2FuZyB0byB0aGkgY28gDQpwaGFuIHRyYWNoIG5oaWVtIGN1YSBj YWMgREJRSCBsYSB0aGFuaCB2aWVuIENQIGRhIGtob25nIHBoYXQgaHV5IGhldCBxdXllbiBuYW5n IGN1YSANCm1pbmggZGUgdHJhbyBkb2kgbmdheSB0YWkgUUguDQoNCkxUUzogREJRSCBEdW9uZyBU cnVuZyBRdW9jIHRoYW0gZ2lhIFFIIGRlbiBuYXkgZGEgbmdvdCAyIG5oaWVtIGt5LCBkYSBuaGll dSBsYW4gDQp0aGFtIGdpYSBjaGF0IHZhbiB0aGFuaCB2aWVuIGN1YSBDUCB2YSBUaHUgdHVvbmcu IFR1IHRyYWkgbmdoaWVtIGNhIG5oYW4sIG9uZyBjYW0gDQpuaGFuIG5odW5nIHRoYXkgZG9pLCB0 dXkgY29uIGNodWEgZHVvYyBuaHUgbW9pIG5ndW9pIG1vbmcgbXVvbiBuaHVuZyBjaGFjIGNoYW4g bGEgDQpkYSBjbyBuaHVuZyBidW9jIHRpZW4gcmF0IHJvIHJhbmcsIGNhIHRyb25nIGhvYXQgZG9u ZyBRSCBub2kgY2h1bmcsIGNhYyBwaGllbiBjaGF0IHZhbiANCm5vaSByaWVuZy4NCg0KTW90IHNv IGtpZW4gbmdoaSB0b2kgbmV1IGRhIGR1b2Mga2hhYyBwaHVjIGtpcCB0aG9pLiBDYWNoIGRheSBk YW0gbmFtLCB0b2kgbmV1IHRhaSBRSCANCnJhbmcgbGVuIFRoYWMgQmFuIEdpb2MgY2h1YSBkZW4g bm9pIGRhIHRoYXkgbWFuZyBkaWVuIHRob2FpIFRydW5nIFF1b2MgcGh1IHNvbmcgbWF5IA0KY3Vh IG1pbmggdHJvbmcga2hpIHNvbmcgZGllbiB0aG9haSBjdWEgdGEgY2h1YSBjby4gQ2hpIG1vdCB0 aG9pIGdpYW4gbmdhbiBzYXUgZG8sIG9uZyBCbyANCnRydW9uZyBCdXUgY2hpbmggLSBWaWVuIHRo b25nIGJhbyB0aW4gc29uZyBjdWEgdGEgZGEgcGh1Li4uIFRvaSBwaGFuIGJpZW4gQm8gdHJ1b25n IFRhaSANCm5ndXllbiAtIE1vaSB0cnVvbmcgbyBRdW9jIGhvaSBuaHVuZyB0b2kgdmFuIGN1bmcg b25nIFBoYW0gS2hvaSBOZ3V5ZW4gdGhhbSBnaWEgDQpjYWMgY2h1b25nIHRyaW5oIGNvIGRvbmcg Y2hvIHZpZWMgdW5nIHBobyB2b2kgYmllbiBkb2kga2hpIGhhdSB0b2FuIGNhdS4uLiBIYXkgbmh1 IG1vaSANCmRheSwga2hpIENoaW5oIHBodSBkdWEgcmEgZ2lhaSBwaGFwIGRlIHVuZyBwaG8gdm9p IGdpYSB2YW5nIGRhbmcgbGVuLCBtb3QgZG9hbmggbmhhbiANCmd1aSB0b2kgeSBraWVuIGtob25n IGRvbmcgdGluaCwgdG9pIGNodXllbiBxdWEgQm8gdHJ1b25nLCBDaHUgbmhpZW0gVmFuIHBob25n IENoaW5oIA0KcGh1LCB0aGkgbmdheSBzYXUgZG8gbmhhbiBkdW9jIGRpZW4gdGhvYWkgY3VhIEJv IHRydW9uZyBob2kgYW0gcmFuZyBkYSBjaHV5ZW4gbmdheSBkZW4gDQpuaHVuZyBuZ3VvaSBjbyB0 cmFjaCBuaGllbS4NCg0KRG8gY2hpbmggbGEgZGFjIGRpZW0gY3VhIFFIIFZpZXQgTmFtLCB0YWkg bW90IHF1b2MgZ2lhIGtob25nIGNvIGtoYWkgbmllbSAiZG9pIGxhcCIsIA0Ka2hvbmcgZGEgbmd1 eWVuLCBkYSBkYW5nLCBraG9uZyBwaGFuIGxhcCB0dXlldCBkb2kgdGFtIHF1eWVuLi4uIERvIHZh eSBwaGFpIGhpZXUgY2hhdCANCnZhbiBraG9uZyBjaGkgbGEgcGh1b25nIHRodWMgZ2lhbSBzYXQg bWEgUUggdGh1YyBoaWVuIGNodWMgbmFuZyBjdWEgbWluaCBtYSBjb24gbGEgDQptb3QgY28gaG9p LCBtb3QgZGllbiBkYW4gZGUgQ2hpbmggcGh1IHRoZSBoaWVuIG1pbmggdHJlbiB0YXQgY2Egbmh1 bmcgbWF0IHRpY2ggY3VjIHZhIA0KeWV1IGtlbSB0aG9uZyBxdWEgbm9pIGR1bmcgdmEgY2FjaCB0 cmEgbG9pIGNhYyBjYXUgY2hhdCB2YW4uIFRvaSBjaG8gcmFuZyBDUCBwaGFpIGNvaSANCm1pbmgg bGEgImR1b2MgY2hhdCB2YW4iIGNodSBraG9uZyBwaGFpIGxhICJiaSBjaGF0IHZhbiIgLiANCg0K VG9pIGxhaSBsYSBuZ3VvaSBsYW0gbmdoZSBuZ2hpZW4gY3V1IGxpY2ggc3UsIHRyb25nIGRvIGNv IGNhIGxpY2ggc3UgQ1AgdmEgUUguIFZpIHRoZSBtYSANCnRvaSBtdW9uIG5oYWMgZGVuIGt5IGhv cCBkYXUgdGllbiAoa2hhaSBtYWMgbmdheSAyLzMvMTk0NikgdHJvbmcgZG8gY28gcGhpZW4gY2hh dCB2YW4gDQpkYXUgdGllbiBjdWEgUXVvYyBob2kgbnVvYyBWaWV0IE5hbSBEYW4gY2h1IENvbmcg aG9hLiBLaG9uZyBrZSBkZW4gbmhpZXUgdmkgYm8gDQp0cnVvbmcgbWEgbmdheSBDaHUgdGljaCBI byBDaGkgTWluaCBjdW5nIGR1b2MgbmhpZXUgKDkgdmkpIERCUUggY2hhdCB2YW4uIENvIGRhaSAN CmJpZXUgbmh1IFRyYW4gSHV5IExpZXUgZGEgcGhhdCBiaWV1IGtoYSBnYXkgZ2F0IHJhbmcgSGll cCB1b2Mgc28gYm8gbWEgQmFjIG1vaSBreSANCnZvaSBkYWkgZGllbiB0aHVjIGRhbiBQaGFwIGxh ICJraG9uZyBiaW5oIGRhbmciLCBidW9jIHZpIENodSB0aWNoIG51b2MgcGhhaSBwaGFuIHRpY2gg DQpsb2kgaGFpIGN1YSB2YW4gYmFuIHRyb25nIGhvYW4gY2FuaCBraG8ga2hhbiBjdWEgZGF0IG51 b2MuIENvIERCUUggY29uIG5ldSBjYSB2YW4gZGUgDQoiY2hpbmggcGh1IGxpZW0ga2hpZXQiIHRo aSBkdW9jIEJhYyB0cmEgbG9pIHJhdCB0aGFuZyB0aGFuIHJhbmc6ICJDaGluaCBwaHUgZGEgaGV0 IHN1YyBkZSANCmxhbSBndW9uZywgbmV1IGxhbSBndW9uZyBtYSBraG9uZyB4b25nIHRoaSBzZSBk dW5nIHBoYXAgbHVhdCBtYSB0cmkgbmh1bmcga2UgYW4gaG9pIA0KbG8sIGRhIHRyaSwgZHVvbmcg dHJpIHZhIHNlIHRyaSBjaG8ga3kgaGV0Li4uIi4NCg0KQ2hpbmggdGhvbmcgcXVhIGN1b2MgY2hh dCB2YW4gbmF5IG1hIG5odW5nIGJ1YyB4dWMgY3VhIHhhIGhvaSBkdW9jIGdpYWkgdG9hIHRoZW0g bW90IA0KcGhhbi4gVHJ1b2MgZG8sIEJhYyBkYSBwaGFpIGR1bmcgdHJ1b2MgY29uZyBjaHVuZyB0 dXllbiBibyByYW5nICJIbyBDaGkgTWluaCBraG9uZyANCmJhbyBnaW8gYmFuIG51b2MgISIgZGUg dHJhbiBhbiBuaGFuIGRhbiBzYXUga2hpIGRhIHRodWMgaGllbiBtb3QgbnVvYyBjbyBuZ29haSBn aWFvIGNhbyANCmN1b25nICJob2EgZGUgdGllbiIsIG5odW5nIGtob25nIGRlIG5nYXkgbGFwIHR1 YyB0aHV5ZXQgcGh1YyBkdW9jIG1vdCBkYW4gY2h1bmcgZGFuZyANCmh1bmcgaHVjIG11b24gY2Ft IHN1bmcgZGFuaCB0aHVjIGRhbi4uLg0KDQpSb2kgY3VvaSBjdW5nLCBCYWMgZHVhIHJhIG5oYW4g eGV0OiAiQ2hpbmggcGh1IGhpZW4gdGhvaSBtb2kgdGhhbmggbGFwIGR1b2MgaG9uIG1vdCANCm5h bSBoYXkgY29uIHRoYW5oIG5pZW4uIFF1b2MgaG9pIGR1b2MgYmF1IHJhIGR1b2MgaG9uIDggdGhh bmcsIGxhaSBjb24gdGhhbmggbmllbiBob24gDQpudWEuIFZheSBtYSBRdW9jIGhvaSBkYSBkYXQg cmEgbmh1bmcgY2F1IGhvaSB0aGF0IGdpYSBkYW4sIHNhYyBtYWMga2hvIHRyYSBsb2ksIGRlIGNh cCANCnRvaSB0YXQgY2Egbmh1bmcgdmFuIGRlIGNvIHF1YW4gaGUgZGVuIHZhbiBtZW5oIG51b2Mg bmhhLiBWb2kgc3UgdHJ1b25nIHRoYW5oIGNoaW5oIHRyaSANCnZhIHN1IHF1YW4gdGFtIGRlbiB2 aWVjIG51b2MgYXksIGFpIGRhbSBiYW8gZGFuIHRhIGtob25nIGNvIHR1IGNhY2ggZG9jIGxhcD8i Lg0KDQpEdSBob24gNiB0aGFwIGt5IGRhIHF1YSwgdGhvaSB0aGUgZGEgY28gbmhpZXUgdGhheSBk b2ksIG5odW5nIGNhaSB0aW5oIHRoYW4gdHJvbmcgY2hhdCB2YW4gDQpwaGFpIGRhdCBkdW9jICJu aHVuZyBjYXUgaG9pIHRoYXQgZ2lhIGRhbiwgc2FjIG1hYyBraG8gdHJhIGxvaSwgZGUgY2FwIHRv aSB0YXQgY2Egbmh1bmcgDQp2YW4gZGUgY28gcXVhbiBoZSBkZW4gdmFuIG1lbmggbnVvYyBuaGEi IGx1b24gbGEgdGlldSBjaGkgZGUgY2hvIGhvYXQgZG9uZyBRSCB0cnVvbmcgDQp0aGFuaCwgQ2hp bmggcGh1IHRydW9uZyB0aGFuaCB2YSBOaGEgbnVvYyB0cnVvbmcgdGhhbmguIE1vdCBwaGllbiBj aGF0IHZhbiBraG9uZyBjaGkgDQpkZSBsYW0gc2FuZyB0byBuaHVuZyB0aG9uZyB0aW4gYmFuZyBu b2kgZHVuZyBjdWEgbmh1bmcgY2F1IHRyYSBsb2kgdmUgcGhpYSBDUCBtYSBubyANCmNvbiBsYSAi cGhlcCB0aHUiIGRlIGNhYyB0aGFuaCB2aWVuIENQIHRoZSBoaWVuIGR1b2MgbmFuZyBsdWMgdmEg YmFuIGxpbmggY3VhIG1vdCBuaGEgDQpob2F0IGRvbmcgY2hpbmggdHJpIHRydW9jIGNvbmcgY2h1 bmcuDQoNCkR1b25nIG5oaWVuIGRlIGRhdCBkdW9jIG11YyB0aWV1IGF5LCBwaGlhIG5odW5nIG5n dW9pIGRhdCBjYXUgaG9pIGxhIHJhdCBxdWFuIHRyb25nLiBUcmkgDQp0aHVjIHZhIGt5IG5hbmcg Y3VhIERCUUggbGEgbW90IGRvaSBob2kgbmdheSBjYW5nIGNhbyB0dSBwaGlhIGNhYyBjdSB0cmku IE1vdCBwaGllbiANCmNoYXQgdmFuIGN1bmcgbGEgbW90ICJwaGVwIHRodSIgZGUgY3UgdHJpIGRh bmggZ2lhIHBoYW0gY2hhdCBjdWEgREJRSCB2YSBjaGF0IGx1b25nIA0KY3VhIGhvYXQgZG9uZyBR SC4gTW9pIERCUUggY28gdGhlIHh1YXQgdGhhbiB0dSBtb3QgbmdoZSwgY28gbmh1bmcgdHJhaSBu Z2hpZW0gcmllbmcgDQpjdWEgbWluaCwgbmh1bmcgZGlldSBkbyBraG9uZyBjbyBuZ2hpYSBsYSBt b3QgbmhhIHRobyBkdW9jIGJhdSBsYW0gREJRSCB0aGkgY2hpIGRlbiANClFIIGRlIGxhbSB0aG8g aGF5IGRvYyB0aG8uDQoNCkRCUUggdm9pIHR1IGNhY2ggbGEgZGFpIGJpZXUgY2hvIG5oYW4gZGFu IG5vaSBjaHVuZyBoYXkgY2hvIGtob2kgY3UgdHJpIG5odW5nIG5ndW9pIA0KdHJ1YyB0aWVwIGJh dSByYSBtaW5oIHBoYWkgY28gdHJhY2ggbmhpZW0geHUgbHkgdGF0IGNhIG5odW5nIHZhbiBkZSBR SCBkb2kgaG9pLiBLaGkgYmlldSANCnF1eWV0IG1vdCBkYW8gbHVhdCBoYXkgbW90IHZhbiBkZSBx dWFuIHRyb25nIGxpZW4gcXVhbiBkZW4gbW90IGxpbmggdnVjIGNodXllbiBtb24gcmF0IA0Kc2F1 ICh2aSBuaHUgbmFuZyBsdW9uZyBuZ3V5ZW4gdHUsIHF1YW4gbHkgc29uZyB0cnV5ZW4gdGhvbmcu Li4pIHRoaSBEQlFIIGtob25nIGNvIA0KcXV5ZW4gbm9pIHJhbmcgdmFuIGRlIG5heSB0b2kga2hv bmcgYmlldC4gTyBjYWMgbnVvYywgaG9hdCBkb25nIFFIIG1hbmcgdGluaCBjaHV5ZW4gDQpuZ2hp ZXAsIG1vaSBEQlFIIGNvIGNhIG1vdCBibyBtYXkgdHJvIGx5IHZhIHRhaSBjaGluaCBnaXVwIGhv IHRoYW0ga2hhbyB2YSBsdWEgY2hvbiANCnF1YW4gZGllbSB0aG9uZyBxdWEgY2FjIHR1IHZhbiwg ZG8gbGEgY2h1YSBrZSBkZW4gY2hvIGR1YSBjdWEgaG8gbGEgbW90IHRvIGNodWMgY2hpbmggDQp0 cmkgaGF5IHhhIGhvaSBtYSBobyBkYWkgZGllbi4uLiBEbyB2YXkgZG9pIHZvaSBEQlFIIG8gdGEs IGNoaSBjb24gY2FjaCBsYSBwaGFuIGRhdSANCnRyb25nIG5odW5nIGRpZXUga2llbiBjaG8gcGhl cC4gDQoNCk8gdGEsIHNvIGx1b25nIERCUUggY2h1eWVuIHRyYWNoIGNoaWVtIGNodWEgZGF5IDEv MyB0b25nIHNvIGRhaSBiaWV1LCBwaHVvbmcgdGllbiBobyANCnRybyBjb24gaGFuIGNoZS4gTmh1 bmcgdm9pIHN1IGhvIHRybyBjdWEgY2FjIGNvIHF1YW4gUUggdHJvbmcgdmllYyBjdW5nIGNhcCB0 YWkgbGlldSwgDQpuaHVuZyBjdW9jIHRyYW8gZG9pIG8gdG8gaGF5IGhvaSB0cnVvbmcuLi4gdmEg cXVhbiB0cm9uZyBob24gaGV0IGxhIHN1IHR1IHBoYW4gZGF1IGN1YSANCm1vaSBkYWkgYmlldSBi YW5nIGNhY2ggaG9jIGhvaSBtYSB0cnVvbmcgdGhhbmggZGFuIHRyb25nIGhvYXQgZG9uZyBRSC4g RG8gdmF5LCBuZXUgY28gDQpEQlFIIG5hbyBkbyBtYSBreSBob3AgbmFvIGN1bmcgcGhhdCBiaWV1 LCB0aGFvIGx1YW4gdmFuIGRlIGdpIGN1bmcgcGhhdCBiaWV1LCBkaSByYXQgDQpzYXUgdmFvIGNo dXllbiBtb24gZHUgY2hvIHJhdCB4YSB2b2kgY2h1eWVuIG1vbiBnb2MgY3VhIGhvLi4uIHRoaSB0 cnVvYyBoZXQgZGF5IGxhIA0KcXV5ZW4gdmEgdHJhY2ggbmhpZW0gY3VhIGhvLCBsYSBubyBsdWMg Y3VhIGhvLg0KDQpEdW9uZyBuaGllbiwgdm9pIHRob2kgbHVvbmcgY28gaGFuIGNobyBtb2kgbmd1 b2kgKDcgcGh1dCkgY2hvIG1vaSBwaGllbiB0aGFvIGx1YW4gdGhpIA0Kbmd1b2kgY2h1IHRvYSBj byBxdXllbiBkaWV1IGNoaW5oIHRodSB0dSBwaGF0IGJpZXUgdmEgbmh1bmcgYWkga2hvbmcgY28g Y28gaG9pIHBoYXQgDQpiaWV1IHRoaSBjaHV5ZW4gdGhhbmggdmFuIGJhbi4gVmEgdGhlbyBxdXkg ZGluaCwgbW9pIERCUUggcGhhaSB0aGUgaGllbiBiYW5nIHZhbiBiYW4gDQp5IGtpZW4gdmUgdGF0 IGNhIG5odW5nIGJvIGx1YXQgY28gdHJvbmcgY2h1b25nIHRyaW5oIG5naGkgc3UuIENoYXQgbHVv bmcgY3VhIG1vaSBEQlFIIA0KdGhpIGNhYyBkb25nIHN1IHRyb25nIFFIIHZhIGN1IHRyaSBob2Fu IHRvYW4gY28gcXV5ZW4gZGFuaCBnaWEuIERvIGN1bmcgY2hpbmggbGEgY28gaG9pIA0KZGUgY3Ug dHJpIGdpYW0gc2F0IG5ndW9pIGRhaSBiaWV1IG1hIG1pbmggZGEgYmF1IHJhLg0KDQpEZSBjYXAg dG9pIHZhbiBkZSBib3hpdCBob2FuIHRvYW4ga2hvbmcgeGEgdm9pIGNodXllbiBtb24gZ29jIGxh IGxhbSBiYW8gaGF5IGxhbSBzdSANCmN1YSB0b2ksIGJvaSBsZSB0cnVvYyBoZXQgbm8ga2hvbmcg Y2hpIGxhIHZhbiBkZSBreSB0aHVhdCBjdWEgY2FjIG5oYSBjaHV5ZW4gbW9uIGtoYWkgDQpraG9h bmcgaGF5IG1vaSB0cnVvbmcgbWEgcm9uZyBsb24gaG9uIG5oaWV1LCBjbyBxdWFuIGhlIHRvaSBh biBuaW5oLG5odW5nIHZhbiBkZSB2YW4gDQpob2EsIHhhIGhvaS4uLi4gVG9pIGxhIHRoYW5oIHZp ZW4gY3VhIExpZW4gaGllcCBjYWMgSG9pIEtIS1QsIG5vaSBkYSB0byBjaHVjIG1vdCBob2kgDQp0 aGFvIGtob2EgaG9jIHZhIGR1YSByYSBuaHVuZyBraHV5ZW4gbmdoaSAgbmVuIGNhbmcgY28gdHJh Y2ggbmhpZW0gcGhhdCBiaWV1LiBUb2kgcGhhaSANCmRlIGNhcCB0b2kgdmFuIGRlIGJveGl0IGNv biB2aSB0cmFjaCBuaGllbSB2b2kgbmh1bmcgY3UgdHJpIGRhIHRydWMgdGllcCBiYXUgdG9pIHZh byBRSC4gDQpIbyBkYW5nIHNvbmcgZG9jIGNvbiBkdW9uZyAyMCBub2kgTGFtIERvbmcgcXVhIERv bmcgTmFpIHZlIGNhYyBjdWEgYmllbiBvIE5hbSANCkJvLiBEYW4ga2V1IHZlIGNvbiBkdW9uZyB4 dW9uZyBjYXAsIGx1dSBsdW9uZyBsdXUgdGhvbmcgcXVhIHRhaSwsIHRhaSBuYW4gbmdoaWVtIHRy b25nLiANClNhbmcgbmFtLCBib3hpdCBkYSBkaSB2YW8gaG9hdCBkb25nIG1hIGRlbiBnaW8gdmFu IGNodWEgcm8gcGh1b25nIGFuIHZhbiBjaHV5ZW4gdmEgDQpsaWV1IGNvIGxhbSB0cmFtIHRyb25n IHRoZW0gdGluaCB0cmFuZyBxdWEgdGFpIGN1YSBkdW9uZyAyMCBoYXkga2hvbmcsIG5lbiBkYW4g bG8gbGEgDQpjaGluaCBkYW5nLiBUb2kga2hvbmcgdGhlIGltIGxhbmcgbGEgdmkgdGhlLg0KDQpU cm9uZyBRSCBjdWEgdGEgY29uIGNvIHJhdCBuaGlldSBEQlFIIGxhIHRoYW5oIHZpZW4gQ1AsIGhv IGN1bmcgaG9hbiB0b2FuIGNvIHF1eWVuIA0KdHJhbmggbHVhbiwgcGhhbiBiYWMgbmh1bmcgeSBr aWVuIGN1YSBEQlFIIGtoYWMgbWEgbWluaCB0aGF5IGtob25nIGRvbmcgdGh1YW4gZGUgDQpiYW8g dmUgcXVhbiBkaWVtIGN1YSBDUCBuZ2F5IHRyb25nIFFILiBEbyB2YXkgbW9pIHkga2llbiBjdWEg REJRSCBjYW4gZHVvYyB0b24gDQp0cm9uZyB2YSBuZXUgY28gZGlldSBnaSBsYW0gY2hvIHN1IHZp ZWMgY29uIGNodWEgc2FuZyB0byB0cm9uZyBuaHVuZyB2YW4gZGUgY28gbGllbiANCnF1YW4gZGVu IENQIG8gdHJvbmcgUUggdGhpIGNvIHBoYW4gdHJhY2ggbmhpZW0gY3VhIGNhYyBEQlFIIGxhIHRo YW5oIHZpZW4gQ1AgZGEgDQpraG9uZyBwaGF0IGh1eSBoZXQgcXV5ZW4gbmFuZyBjdWEgbWluaCBk ZSB0cmFvIGRvaSBuZ2F5IHRhaSBkaWVuIGRhbiBRSC4NCg0KaHR0cDovL3d3dzkudmlldG5hbW5l dC52bi92bi9jaGluaC10cmkvNjM0L3RodS10dW9uZy1uaGFuLXRyYWNoLW5oaWVtLWNhLW5oYW4t dmUtdmluYXNoaW4uaHRtbCBOaG9tIFBWIDI0LzExLzIwMTAgMDk6MDc6MDAgQU0gKEdNVCs3KSAN Cg0KT25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgbmhhbiB0cmFjaCBuaGllbSBjYSBuaGFu IHZlIFZpbmFzaGluICg/KSANCg0KLSBUcmEgbG9pIGNoYXQgdmFuIHRydWMgdGllcCBjdWEgREIg c2FuZyAyNC8xMSwgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBuaGlldSBsYW4gDQpuaGFuIHRy YWNoIG5oaWVtIGNhIG5oYW4gdm9pIHN1IGRvIHZvIGN1YSBWaW5hc2hpbiB2YSBodWEgbmdoaWVt IHR1YyBraWVtIGRpZW0gdHJhY2ggDQpuaGllbSBjYSBuaGFuIGNhYyB0aGFuaCB2aWVuIENQLCBr aG9uZyBsYW0geHVlIHhvYS4NCg0KU2F1IG1vdCB0aWVuZyBiYW8gY2FvIGdpYWkgdHJpbmgsIHR1 IDloIHNhbmcsIFRodSB0dW9uZyBiYXQgZGF1IHRyYSBsb2kgY2hhdCB2YW4gdHJ1b2MgUXVvYyBo b2kuIA0KDQpWaWV0TmFtTmV0IHR1b25nIHRodWF0IHRydWMgdGllcC4NCiogVGh1IHR1b25nIGJh byBjYW8gZ2lhaSB0cmluaCB0cnVvYyBRdW9jIGhvaQ0KKiBUb2FuIHZhbiBnaWFpIHRyaW5oIGN1 YSBUaHUgdHVvbmcgdHJ1b2MgUXVvYyBob2kNCiogQ2hhdCB2YW4gZGF1IHBoYWkgY2hpIGNobyB4 b25nIHZhaSBkaWVuDQoNClZpbmFzaGluIHR1IHZheSB0dSB0cmEgdGhlIG5hbz8gDQoNCi0gREIg UGhhbSBUaGkgTG9hbiAoSGEgTm9pKTogTmh1bmcgbmdheSBnYW4gZGF5IG5oYW4gZGFuIGNoYW0g Y2h1IHRoZW8gZG9pIG5vIGx1YyANCkNoaW5oIHBodSBkYW5nIHRhaSBjbyBjYXUgVmluYXNoaW4s IFRhcCBkb2FuIGN1bmcgdHV5ZW4gYm8gbm8gbHVjIGxhbSBhbiB0dSB2YXksIHR1IHRyYSwgDQp0 YWkgY28gY2F1LiBMYW0gZHVvYyBuaHUgdmF5IGRhbiBtdW5nLg0KDQpOaHVuZyB2b2kgc28gbm8g dHJlbiA4NiBuZ2FuIHR5IGRvbmcsIHRoaSBUYXAgZG9hbiBzZSB0dSB2YXkgdHUgdHJhIGxhaSB0 aGUgbmFvPyBWaSBtb2kgDQpuYW0gc2UgcGhhaSB0cmEgdGllbiBubyBsYWkgY2hvIG5nYW4gaGFu ZyAxNSBuZ2FuIHR5IFZhIGNoaSBzYXUgNSBuYW0sIHNvIHRpZW4gbm8gODYgbmdhbiB0eSBkb25n IHNlIHRhbmcgZ2FwIGRvaSAxNjAgbmdhbiAtIDE3MCBuZ2FuIHR5IGRvbmcuDQoNClRyb25nIGto aSBkbywga2luaCBkb2FuaCB2b2kgZG9hbmggdGh1IG5hbSAyMDEwIGNoaSBsYSAxMywgNW5nYW4g dHkgZG9uZy4gVmEgc28gbG8gaG9hdCANCmRvbmcga2luaCBkb2FuaCBsYSAxLjEwMCB0eSBkb25n Lg0KDQpUaGVvIHRpbmggdG9hbiBjdWEgY2h1bmcgdG9pLCBrZSBjYSBzYXUgdGFpIGNvIGNhdSwg VmluYXNoaW4ga2hvbmcgdGhlIHR1IHRyYSBkdW9jIG5vIG5ldSANCmtob25nIGR1b2MgYm9tIHZv biB0dSBiZW4gbmdvYWkgdmEgYmFuIGJhdCBkb25nIHNhbi4gWGluIGhvaSBUaHUgdHVvbmcgY28g Y2FjaCBuYW8gDQpkZSB0dSB2YXkgdHUgdHJhIG1vbiBubyBuYXk/IE5ldSBraG9uZyB0cmEgZHVv YyBtb24gbm8gdHJlbiB0aGkgVGh1IHR1b25nIHNlIGxhbSB0aGUgDQpuYW8/DQoNCk5ldSBDaGlu aCBwaHUga2hvYW5oIG5vIG1hIGtob25nIHRpbmggbGFpIHRoaSBhaSBjaGl1IHRyYWNoIG5oaWVt IHZlIHZpZWMgbmdhbiBoYW5nIA0KdGh1YSB0aGlldCBzbyB0aWVuIDE1IG5nYW4gdHkgZG9uZywg c28gdGllbiBkb25nIGJhbmcgYW5oIGh1b25nIGRlbiBoZSB0aG9uZyB0YWkgY2hpbmggY2EgDQpu dW9jPw0KIA0KKEFuaDogREIgUGhhbSBUaGkgTG9hbiBtbyBkYXUgcGhpZW4gY2hhdCB2YW4gdHJ1 YyB0aWVwIFRodSB0dW9uZy4gQW5oIExBRCkgDQoNClRodSBoYWksIHZvaSBjdW9uZyB2aSBkYWkg ZGllbiBjaHUgc28gaHV1IHF1YW4gbHkgdGFwIGRvYW4sIFRodSB0dW9uZyBzZSBjaGl1IHRyYWNo IA0KbmhpZW0gdGhlIG5hbyB0cnVvYyB0aW5oIGhpbmggVmluYXNoaW4/IA0KDQpUaHUgYmEsIHNh dSBWaW5hc2hpbiBjbyBjaHUgdHJ1b25nIHRhaSBjbyBjYXUgY2FjIHRhcCBkb2FuIGtoYWMga2hv bmcsIGRhYyBiaWV0IFRhcCANCmRvYW4gRGF1IGtoaS4gVmkgaGllbiBuYXkgVGFwIGRvYW4gZGF1 IGtoaSBkYW5nIGRhdSB0dSBkYW4gdHJhaSBuZ29haSBuZ2FuaCBjb3QgbG9pIG5odSANCmJhbyBo aWVtLCBiYXQgZG9uZyBzYW4sIHRhaSBjaGluaCwgZ2FzIHZhIGNhIHRheGkuIEJheSBnaW8gY29u IGR1b2MgZ2lhbyB0aGVtIGRvbmcgdGF1Lg0KDQpDaGkga2hhYyBsYSBWaW5hc2hpbiBwaGFpIGRp IHZheSB0aWVuIGRlIGRhdSB0dSBjb24gZGF1IGtoaSB0aGkgZHVvYyBuaGEgbnVvYyBjYXAgdGll biBkZSANCmxhbSB2YSBkYW5nIHJvbmcgdGF5IHN1IGR1bmcgbyBuaGlldSBsaW5oIHZ1Yy4gVG9p IHhpbiBob2kgVGh1IHR1b25nIHZpIGx5IGRvIGdpIG1hIDUwJSANCmRhaSBiaWV1IFFIIGtob25n IG11b24gZGUgbGFpIDMuNTAwIHR5IGRvbmcgY2hvIHRhcCBkb2FuIGRhdSAga2hpIG5odW5nIENo aW5oIHBodSANCnZhbiBxdXlldCBkaW5oIGNhcCBzbyB0aWVuIGRvIGNobyBoby4gVGh1IHR1b25n IGtpZW0gc29hdCB2aWVjIHN1IGR1bmcgdm9uIGN1YSB0YXAgZG9hbiANCm5heSB0aGUgbmFvPyAN Cg0KVmllYyBkYXUga2hpIGRhdSB0dSAzLDIgdHkgVVNEIHNhbmcgVmVuZXp1ZWxhIHRob2kgZGll bSBkYXQgbnVvYyBkYW5nIHRoaWV1IG5nb2FpIHRlIGxhIA0Kbmh1IHRoZSBuYW8/DQoNClRodSB0 dW9uZyBuZ2hpIGdpIHZlIHZpZWMgdGhhbmggbGFwIGNhYyB0YXAgZG9hbiBraW5oIHRlIGRhIHNv IGh1dSwgZGF1IHR1IGRhbiB0cmFpIGRlIHJvaSANCnZvIG5vIGxhIGxhaSB0YWkgY28gY2F1IG5o dSBWaW5hc2hpbi4NCg0KVG9pIGN1bmcgZGUgbmdoaSBRdW9jIGhvaSBjYW4gY28gbmdoaSBxdXll dCB2ZSBzdSBkdW5nIHZvbiBvIFRhcCBkb2FuIERhdSBraGk/DQoNCi0gREIgTGUgTmh1IFRpZW4g KFF1YW5nIFRyaSk6IFRvaSB4aW4gZ3VpIHRvaSAyIGNhdSBob2kgeHVuZyBxdWFuaCBjaHUgZGU6 IHRhbSBuaGluIHZhIA0KY2hhdCBsdW9uZyBxdXkgaG9hY2guIA0KDQpHaWFpIHRyaW5oIHRhaSBw aGllbiB0aGFvIGx1YW4ga2luaCB0ZSB4YSBob2kgdmEgMiBuZ2F5IGNoYXQgdmFuIHZ1YSBxdWEs IG5oaWV1IEJvIHRydW9uZyANCnRodWEgbmhhbiBuaHVuZyBiYXQgY2FwIHRyb25nIHF1eSBob2Fj aCBuZ2FuaCwgdnVuZyBsYW5oIHRobywga2h1IGNvbmcgbmdoaWVwLCBraHUgDQpkYW4gY3UsIHF1 eSBob2FjaCBkbyB0aGkuLi4NCg0KVm9pIGN1b25nIHZpIG5ndW9pIGR1bmcgZGF1IENoaW5oIHBo dSwgbmd1b2kgZHVvYyBwaGFwIGx1YXQgZ2lhbyB0aGFtIHF1eWVuIHBoZSANCmR1eWV0IGNhYyBx dXkgaG9hY2gsIHhpbiBUaHUgdHVvbmcgY2hvIGJpZXQgdmFpIHRybyB0cmFjaCBuaGllbSBjdWEg VGh1IHR1b25nIHZhIA0KdGh1b25nIHRydWMgQ2hpbmggcGh1IG5vaSBjaHVuZyB0cm9uZyB2aWVj IHBoZSBjaHVhbiBjYWMgcXV5IGhvYWNoLCBjaGkgZGFvIGxpZW4gbmdhbmggDQp0cmllbiBraGFp IGNhYyBxdXkgaG9hY2gsIHZhIHRyb25nIHZpZWMgcmEgc29hdCBkaWV1IGNoaW5oIGNhYyBxdXkg aG9hY2ggdGhpZXUgdGluaCBkdSANCmJhbywga2VtIGhpZXUgcXVhLCBjaGFtIHRpZW4gZG8gaGll biBuYXk/DQoNCkNobyBkZW4gdGhvaSBkaWVtIG5heSwgcmF0IHRpZWMgbGEgZGF0IG51b2MgdGEg Y2h1YSBjbyBtb3QgcXV5IGhvYWNoIGRhYyBiaWV0IHF1YW4gdHJvbmcsIA0KbGEgcXV5IGhvYWNo IGNhaSwgcXV5IGhvYWNoIHJ1b25nIGNvdCwgcXV5ZXQgZGluaCBjaGF0IGx1b25nIGNhYyBxdXkg aG9hY2gga2hhYy4gRG8gbGEgDQpxdXkgaG9hY2ggbmd1b24gbmhhbiBsdWMgcXVvYyBnaWEsIHZp IGNvbiBuZ3VvaSBsYSBuZ3V5ZW4gbmhhbiBjdWEgbW9pIG5ndXllbiBuaGFuLiANClhpbiB0aHUg dHVvbmcgY2hvIGJpZXQgYmFvIGdpbyBjbyBxdXkgaG9hY2ggbmd1b24gbmhhbiBsdWMgcXVvYyBn aWEgMjAxMSAtIDIwMjAsIHZhIA0KdGFtIG5oaW4geGEgaG9uLiBUaHUgdHVvbmcgY2hpIGRhbyB4 YXkgZHVuZyBxdXkgaG9hY2ggbmF5IHRoZSBuYW8/DQoNCkRhIGtpZW0gZGllbSBuZ2hpZW0gdHVj IGNodWE/DQoNCi0gREIgTmd1eWVuIE1pbmggVGh1eWV0IChMYW5nIFNvbik6IFZlIHRyYWNoIG5o aWVtIHRyb25nIHZ1IHZpZWMgVmluYXNoaW4sIHRyb25nIA0KYmFvIGNhbyBkb2MgdHJ1b2MgUXVv YyBob2kgc2FuZyAxOS8xMCB2dWEgcXVhLCBUaHUgdHVvbmcgY28geGFjIGRpbmggdGh1YyB0cmFu ZyBuYXkgY28gDQp0cmFjaCBuaGllbSBjdWEgQ2hpbmggcGh1LCBjdWEgY2FjIGJvIGxpZW4gcXVh biB2YSBDaGluaCBwaHUgZGEgbmdoaWVtIHR1YyBraWVtIGRpZW0uIA0KVGllcCBzYXUsIENoaW5o IHBodSBkYSBndWkgaGFpIGJhbyBjYW8gbGllbiB0aWVwIGNobyBRdW9jIGhvaS4gDQoNCkNhYyB0 aGFuaCB2aWVuIENoaW5oIHBodSBkYSBsYW4gbHVvdCBnaWFpIHRyaW5oIHZhIHRyYSBsb2kgY2hh dCB2YW4gdHJ1b2MgUXVvYyBob2kgIG5odW5nIA0KY2h1bmcgdG9pIHRoYXksIHRodSBuaGF0IGxh IGNhIGhhaSBiYW8gY2FvIGRldSBraG9uZyBjaGkgcm8gbmdvYWkgbGFuaCBkYW8gVmluYXNoaW4s IA0Kbmh1bmcgYWkgY2hpdSB0cmFjaCBuaGllbSBjdSB0aGUgdmUgdmllYyBkbyB2byBjdWEgVmlu YXNoaW4uIA0KDQooQW5oOiBEQiBOZ3V5ZW4gTWluaCBUaHV5ZXQgZGUgbmdoaSBsYW0gcm8gdHJh Y2ggbmhpZW0gY2EgbmhhbiBUaHUgdHVvbmcgdm9pIA0KVmluYXNoaW4sIGtob25nIGNoaSB2b2kg dHUgY2FjaCBuZ3VvaSBkdW5nIGRhdSBDaGluaCBwaHUuKQ0KDQpUaHUgaGFpLCB0YXQgY2EgY2Fj IHRoYW5oIHZpZW4gQ2hpbmggcGh1IHRyb25nIGdpYWkgdHJpbmggdmEgdHJhIGxvaSBjaGF0IHZh biBkZXUga2hvbmcgDQp0aHVhIG5oYW4gdHJhY2ggbmhpZW0gY3VhIG1pbmggdHJvbmcgdnUgdmll YyBuYXkuIA0KDQpIb20gbmF5LCBUaHUgdHVvbmcgbm9pICJMYSBuZ3VvaSBkdW5nIGRhdSBDaGlu aCBwaHUsIHRvaSB4aW4gbmhhbiB0cmFjaCBuaGllbSB2ZSBuaHVuZyBoYW4gY2hlLCB5ZXUga2Vt IG5ldSB0cmVuIGN1YSBDaGluaCBwaHUiLiBUb2kgdGhheSwgdG9pIGtob25nIGhpZXUgbGEgQ2hp bmggcGh1IA0KZGEgbmdoaWVtIHR1YyBraWVtIGRpZW0gbmh1IHRoZSBuYW8gdmkgY2Egbmh1bmcg ZGFuIGNodW5nIG1hIGNodW5nIHRvaSBkYSBuZXUgcmE/DQoNClJpZW5nIGhvbSBuYXkgdG9pIGto b25nIG5vaSB2ZSB0cmFjaCBuaGllbSBjdWEgY2FjIEJvIG51YSwgdG9pIGNoaSBub2kgdHJhY2gg bmhpZW0gY3VhIA0KVGh1IHR1b25nLiBUaHUgdHVvbmcgY28gbmhhbiB0cmFjaCBuaGllbSBjYSBu aGFuIG5odW5nIHZvaSB0dSBjYWNoIG5ndW9pIGR1bmcgZGF1IA0KQ2hpbmggcGh1LiBOaHVuZyB0 aGVvIHRvaSBoaWV1IG8gZGF5IGNodSB5ZXUgbGEgdHJhY2ggbmhpZW0gY3VhIG5ndW9pIGR1b2Mg cGhhcCBsdWF0IA0KZ2lhbyB0aHVjIGhpZW4gcXV5ZW4gY2h1IHNvIGh1dSBvIGNhYyBUYXAgZG9h biB2YSBUb25nIGNvbmcgdHkgOTEgY3VhIE5oYSBudW9jLiANClRyb25nIHF1YSB0cmluaCB0aHVj IGhpZW4gcXV5ZW4gaGFuaCBjbyByYXQgbmhpZXUgc2FpIHBoYW0geGF5IHJhLiANCg0KTmh1bmcg dmFuIGRlIHZlIGNhcCB2b24gLnYudiB0b2kga2hvbmcgYmFuIG51YS4gVG9pIGNoaSBub2kgbW90 IHNhaSBwaGFtLCB2aSBwaGFtIGx1YXQgDQpkbyBsYSBkaWV1IDMzIEx1YXQgRG9hbmggbmdoaWVw IE5oYSBudW9jIHF1eSBkaW5oOiAiQ2h1IHRpY2ggSERRVCBraG9uZyBraWVtIA0KbmhpZW0gY2h1 YyB2dSBUb25nIGdpYW0gZG9jIGNvbmcgdHkiLiBOaHVuZyBUaHUgdHVvbmcgbGEgbmd1b2kga3kg cXV5ZXQgZGluaCBkZSBjaG8gDQpvbmcgUGhhbSBUaGFuaCBCaW5oIHZ1YSBsYSBDaHUgdGljaCBI RFFULCB2dWEgbGEgVG9uZyBnaWFtIGRvYyBjb25nIHR5IHRoaSBnaWFpIHRoaWNoIGNodXllbiBu YXkgbmh1IHRoZSBuYW8/IA0KDQpOZ2hpIGRpbmggMTMyIG5hbSAyMDA1IHF1eSBkaW5oIGNobyBu Z3VvaSBkYWkgZGllbiBjaHUgc28gaHV1IHRodWMgaGllbiB0b2kgMTAgcXV5ZW4gDQp0YWkgY2Fj IFRhcCBkb2FuLCBUb25nIGNvbmcgdHkuIE5odW5nIGtob2FuIDQsIGRpZXUgNCBOZ2hpIGRpbmgg dHJlbiBjdW5nIHF1eSBkaW5oIGNodSANCnNvIGh1dSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdHJ1 b2MgcGhhcCBsdWF0IGtoaSBxdXlldCBkaW5oIGR1IGFuIGRhdSB0dSBwaGUgZHV5ZXQgY2h1IA0K dHJ1b25nIG11YSBiYW4sIHZheSwgY2hvIHZheSwgdGh1ZSwgY2hvIHRodWUgdGhlbyB0aGFtIHF1 eWVuLiBUb2kgbmdoaSBUaHUgdHVvbmcgbmVuIA0KZHVhIHZhbyBjYWMgcXV5ZXQgZGluaCBjdWEg cGhhcCBsdWF0IGRlIHhhYyBkaW5oIHRyYWNoIG5oaWVtIGN1IHRoZSBjdWEgbWluaC4gDQoNClRv aSBkdW9jIGJpZXQgaGllbiBuYXksIFRodSB0dW9uZywgY2FjIFBobyBUaHUgdHVvbmcsIGNhYyB0 aGFuaCB2aWVuIGtoYWMgY3VhIENoaW5oIA0KcGh1IGRhbmcga2llbSBkaWVtIHRydW9jIFV5IGJh biBLaWVtIHRyYSBUcnVuZyB1b25nIG5odSBQaG8gVGh1IHR1b25nIHRodW9uZyB0cnVjIA0KTmd1 eWVuIFNpbmggSHVuZyBkYSBub2kgaG9tIHF1YS4gTmh1bmcgZGF5IGxhIFF1b2MsIGhvaSB0cmEg bG9pIHRydWMgdGllcCB0cnVvYyBkYW4sIA0KY2h1bmcgdG9pIG1vbmcgZG9pIHN1IHR1IHBoZSBi aW5oIG1hbmggbWUgaG9uIGN1YSBDaGluaCBwaHUuDQoNCkNodW5nIHRhIGRhbmcgaG9jIEJhYyBI bywgdG9pIHhpbiBwaGVwIGRhbiBtb3QgY2F1IGN1YSBCYWMgSG86ICJNb3QgRGFuZyBtYSBkYXUg DQpnaWVtIGtodXlldCBkaWVtIGN1YSBtaW5oIGxhIG1vdCBEYW5nIGhvbmcsIG1vdCBEYW5nIGNv IGdhbiB0aHVhIG5oYW4ga2h1eWV0IGRpZW0gDQpjdWEgbWluaCwgdmFjaCBybyBjYWkgZG8sIHZp IGRhdSBtYSBjbyBraHV5ZXQgZGllbSBkbywgeGV0IHJvIGhvYW4gY2FuaCBzaW5oIHJhIGtodXll dCANCmRpZW0gZG8gcm9pIHRpbSBtb2kgY2FjaCBzdWEgY2h1YSBraHV5ZXQgZGllbSBkbywgbmh1 IHRoZSBsYSBtb3QgRGFuZyB0aWVuIGJvLCBtYW5oIGRhbiwgY2hhYyBjaGFuLCBjaGFuIGNoaW5o Ii4gVG9pIGNoaSBtb25nIGNhYyBkb25nIGNoaSB0cm9uZyBDaGluaCBwaHUga2llbSBkaWVtIA0K bmdoaWVtIHR1YyB0aGVvIGR1bmcgdGluaCB0aGFuIGN1YSBCYWMgSG8sIHRoZW8gZHVuZyBwaGFw IGx1YXQgY3VhIE5oYSBudW9jLg0KDQpBaSBjaGkgZGFvIGRhbmcgYmFpIGNvbmcga2ljaCBkYWkg YmlldT8NCg0KQ2F1IGhvaSAyOiBYaW4gVGh1IHR1b25nIGNobyBiaWV0IGFpIGRhIGNoaSBkYW8g ZGFuZyB0YWkgbW90IHNvIGJhaSBjb25nIGtpY2gsIGNodXAgbXUgDQpkYWkgYmlldSBRdW9jIGhv aSBvIHRyZW4gd2Vic2l0ZSBDaGluaCBwaHU/IExhIGNvIHF1YW4gY2hhcCBoYW5oIGN1YSBRdW9j IGhvaSwgdmllYyANCkNoaW5oIHBodSBkZSBkYW5nIHRhaSBuaHVuZyB5IGtpZW4gbmh1IHZheSBv IHRyZW4gd2Vic2l0ZSBjdWEgbWluaCBjbyBwaGFpIGxhIGhhbmggDQpkb25nIGtob24gbmdvYW4g a2hvbmcsIGNvIGRlIGNobyBkYW4gdGhhYyBtYWMgdmUgdGhhaSBkbyB0dSBwaGUgYmluaCBjdWEg Q2hpbmggcGh1PyANCkNvIGRlIG5ndW9pIG5nb2FpIGxvaSBkdW5nIGtob25nPyANCg0KRGUga2hv aSBoaWV1IGxhbSwgdG9pIHhpbiBraGFuZyBkaW5oIG5odSB0aGUgbmF5OiBUb2kgY3VuZyBuaHUg Y2FjIGRhaSBiaWV1IFFIIGtoYWMgcmF0IA0KaG9hbiBuZ2hlbmggeSBraWVuIHBoZSBiaW5oIGN1 YSBjdSB0cmkgZG9pIHZvaSBjaHVuZyB0b2ksIHN1IGdpYW0gc2F0IGN1YSBjdSB0cmkgZG9pIHZv aSANCmNodW5nIHRvaS4gTmh1bmcgbWEgbmh1bmcgc3UgcGhlIGJpbmggZG8gcGhhaSBkdWEgdHJl biBzdSBoaWV1IGJpZXQgcGhhcCBsdWF0LCBoaWV1IGJpZXQgDQpjaHVjIG5hbmcgY3VhIFF1b2Mg aG9pLCBjaHVjIG5hbmcgY3VhIGRhaSBiaWV1IFF1b2MgaG9pLCBuaGllbSB2dSBjdWEgZGFpIGJp ZXUgUXVvYyANCmhvaSB2YSBubyBwaGFpIHRyYW5oIGx1YW4gY3UgdGhlIHZhbyBjYWMgdmFuIGRl LCBjaHUga2hvbmcgdGhlIHBoYXQgYmlldSB0aGVvIGtpZXUgY2h1cCANCm11IHZhIHRvaSBjaG8g cmFuZywgdmllYyBkYW5nIG5odW5nIGJhaSBuaHUgdGhlIHRyZW4gd2Vic2l0ZSBDaGluaCBwaHUg bGEga2hvbmcgZHVuZyANCmNoby4gWGluIGNhbSBvbiBUaHUgdHVvbmcuDQoNClRhaSBjbyBjYXUg ZHVuZyBsdWF0DQoNCi0gT25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmc6IFRvaSB4aW4gbGFu IGx1b3QgdHJhIGxvaSBuaHVuZyBjYXUgaG9pIGNoYXQgdmFuIGN1YSBjYWMgDQpkb25nIGNoaSwg Y2FjIHZpIGRhaSBiaWV1LiANCg0KVHJ1b2MgaGV0IGxhIGRlIGFuIHRhaSBjbyBjYXUgY3VhIFRh cCBkb2FuIENvbmcgbmdoaWVwIHRhdSB0aHV5IFZpZXQgTmFtIFZpbmFzaGluLiANCkNodW5nIHRv aSBkYSB0aHVjIGhpZW4gdGhhbmggbGFwIEJhbiBjaGkgZGFvIGxpZW4gbmdhbmggbmhpZXUgY28g cXVhbiBkZSBjdW5nIEhvaSBkb25nIA0KcXVhbiB0cmkgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgdGF1 IHRodXkgVmlldCBOYW0geGF5IGR1bmcgZGUgYW4gdGFpIGNvIGNhdS4gUXVhIG5oaWV1IA0KbGFu IHRoYW8gbHVhbiBUaHUgdHVvbmcgQ2hpbmggcGh1IGRhIHBoZSBkdXlldCBkZSBhbiBkby4gDQoN CkNodW5nIHRvaSB0aGF5IHJhbmcgZGUgYW4gZG8gbGEga2hhIHRoaSBuaHVuZyB0dSBkZSBhbiBk ZW4gdGh1YyBoaWVuIHRybyB0aGFuaCBoaWVuIHRodWMgDQpsYSBjb24gbW90IHF1YSB0cmluaCBk b2kgaG9pIHN1IHRhcCB0cnVuZyBjaGkgZGFvIG1vdCBjYWNoIHF1eWV0IGxpZXQgY3UgdGhlLiAN Cg0KVHJvbmcgcXVhIHRyaW5oIHRodWMgaGllbiBkZSBhbiBuYXksIG1vdCBuZ3V5ZW4gdGFjIGRh dCByYSBsYSBwaGFpIHRodWMgaGllbiBkdW5nIHF1eSANCmRpbmggY3VhIHBoYXAgbHVhdCwgZHVu ZyBjaHUgdHJ1b25nIGN1YSBEYW5nLCBjaHVuZyB0b2kgc2Uga2llbiB0cmkgdGh1YyBoaWVuIHRo ZW8gcXV5IA0KdHJpbmggZG8uIA0KDQpDaHVuZyB0b2kgZGEgbm9pIHJvIHRyZW4gcGhhbiB0cmlu aCBiYXkgY3VhIG1pbmggbGEgdGh1YyBoaWVuIGRlIGFuIG5heSBjb24gcmF0IGtobyBraGFuLCAN CnJhdCBtb25nIGNhYyB2aSBkYWkgYmlldSBRdW9jIGhvaSBjaGlhIHNlLCB1bmcgaG8sIGdpYW0g c2F0LCByYXQgbW9uZyBuaGFuIGRhbiB1bmcgaG8sIA0KZ2lhbSBzYXQuIA0KDQpEdSBraG8ga2hh biBuaHVuZyBkZSBhbiBsYSBraGEgdGhpIHZhIHRyaWVuIHZvbmcsIHRodWMgaGllbiBubyBsYSB0 aHVjIGhpZW4gdGhlbyBkdW5nIA0KcXV5IGRpbmggY3VhIHBoYXAgbHVhdC4gDQoNCk5vaSBkdW5n IGN1IHRoZSBuaHUgdGhlIG5hbyBkZSB0cmEgZHVvYyBubywgY2h1bmcgdG9pIHNhbiBzYW5nIHRy aW5oIGJheSwgQmFuIGNoaSBkYW8sIA0KSG9pIGRvbmcgcXVhbiB0cmkgVGFwIGRvYW4gc2Ugc2Fu IHNhbmcgdHJpbmggYmF5IGRlIGRhaSBiaWV1IExvYW4gZ29wIHkga2llbi4gTyBkYXkgdG9pIA0K a2hvbmcgdGhlIHRyaW5oIGJheSBjdSB0aGUgbGFtIGNoaWVjIHRhdSBuYW8sIGxhaSBiYW8gbmhp ZXUsIHRyYSBubyBuYW0gbmFvIGJhbyBuaGlldS4gVG9pIGtob25nIGxhbSBkdW9jIGRpZXUgZG8s IHhpbiBjYWMgZG9uZyBjaGkgdGhvbmcgY2FtIGNoby4gDQoNClRvbSBsYWksIGNodW5nIHRvaSB4 YXkgZHVuZyBkZSBhbiB0YWkgY28gY2F1IG5heSB2b2kgY2FjIG11YyB0aWV1IGRhIHRyaW5oIGJh eSB2b2kgUXVvYyANCmhvaSBsYSB0aHVjIGhpZW4gbmdoaWVtIHR1YyB0aGVvIEtldCBsdWFuIGN1 YSBCbyBDaGluaCB0cmkgdmEgY2h1bmcgdG9pIHRoYXkgbGEga2hhIHRoaS4gTmh1bmcgdHUgZGUg YW4gY2hvIHRvaSBoaWVuIHRodWMgbGEgbW90IHF1YSB0cmluaCwgbW90IHN1IG5vIGx1YyBjbyBn YW5nIGNvbiByYXQgbmhpZXUga2hvIGtoYW4gdmEgY2h1bmcgdG9pIHNlIHRodWMgaGllbiB0aGVv IGR1bmcgcGhhcCBsdWF0Lg0KDQpPbmcgVGh1IHR1b25nIG5oYW4gdHJhY2ggbmhpZW0gY2Egbmhh biB2b2kgVmluYXNoaW4NCg0KQ2F1IGhvaSB0aHUgaGFpLCB4dW5nIHF1YW5oIHkga2llbiBjdWEg ZGFpIGJpZXUgVGh1eWV0IHZhIERCIExvYW4gZGEgbmV1IHZlIHRyYWNoIA0KbmhpZW0gbmh1IHRo ZSBuYW8gdHJvbmcgdmFuIGRlIG5heS5OaHUgdG9pIGRhIHRyaW5oIGJheSwgdGhlbyB0b2kgbGEg bmdoaWVtIHR1YyB0cnVvYyANClF1b2MgaG9pLiBUb2kgeGluIGR1b2Mgbm9pIGxhaTogVmllYyBj byB5IGxhbSB0cmFpIGN1YSBuaHVuZyBuZ3VvaSBsYW5oIGRhbyB0YWkgdGFwIGRvYW4sIA0KY28g cXVhbiBjaHVjIG5hbmcgeHUgbHkgdGhlbyBkdW5nIHBoYXAgbHVhdCwgY29uIENoaW5oIHBodSwg VGh1IHR1b25nIENoaW5oIHBodSBjbyB0cmFjaCBuaGllbSB0cm9uZyBxdWFuIGx5IHZhIHF1YW4g bHkgY3VhIHNvIGh1dSBkYSBub2kgcm8gdHJvbmcgQmFvIGNhbyBjdWEgbWluaC4NCg0KTGEgbmd1 b2kgZHVuZyBkYXUsIHRvaSBuaGFuIHRyYWNoIG5oaWVtIGRvLiANCg0KVG9pIGN1bmcgbm9pIHJv IGhvbiwgVGh1IHR1b25nLCBQaG8gVGh1IHR1b25nLCBjYWMgQm8gdHJ1b25nLCBjYWMgdGhhbmgg dmllbiBDaGluaCANCnBodSBjbyBsaWVuIHF1YW4gZGVuIHZpZWMgcXVhbiBseSBOaGEgbnVvYyB2 YSBxdWFuIGx5IGN1YSBjaHUgc28gaHV1IGRvaSB2b2kgdmFuIGRlIA0KbmF5IGRhbmcga2llbSBk aWVtIGRlIGxhbSBybyB0cmFjaCBuaGllbS4NCktldCBsdWFuIGtpZW0gZGllbSBuaHUgdGhlIG5h bywgdHJhY2ggbmhpZW0gY3UgdGhlIG5odSB0aGUgbmFvIGNodW5nIHRvaSBzZSBjb25nIGtoYWku IA0KDQpRdWFuIGx5IHZvaSBETk5OIGNvbiBrZSBobw0KDQpEQiBUaHV5ZXQgY28gbm9pIGxhIHRy YWNoIG5oaWVtIGN1YSBUaHUgdHVvbmcgbGEgbmd1b2kgZHVvYyBnaWFvIHRvIGNodWMgdGh1YyBo aWVuIA0KcXV5ZW4gY2h1IHNvIGh1dS4gRHVuZyBsYSBsdWF0IGNvIGdpYW8gbmh1IHRoZSwgZ2lh byBDaGluaCBwaHUgdmEgVGh1IHR1b25nIGxhIG5ndW9pIA0KZHVuZyBkYXUsIHF1eSBkaW5oIHRv IGNodWMgZGUgdGh1YyBoaWVuIHF1eWVuIGNodSBzbyBodXUgZG9pIHZvaSBkb2FuaCBuZ2hpZXAg bmhhIA0KbnVvYy4gDQoNCkNoaW5oIHBodSBkYSBiYW4gaGFuaCBtb3Qgc28gbmdoaSBkaW5oIGRl IGN1IHRoZSBob2EgdmllYyB0byBjaHVjIHRodWMgaGllbiBxdXllbiBjaHUgDQpzbyBodXUgbmhh IG51b2MgZG9pIHZvaSBjYWMgVGFwIGRvYW4ga2luaCB0ZSwgZG9pIHZvaSBjYWMgVG9uZyBjb25n IHR5IG5oYSBudW9jLiBUcm9uZyBkbywgZGFjIGRpZW0gbW9pIGN1YSB2aWVjIHRvIGNodWMgcXV5 ZW4gZGFpIGRpZW4gY2h1IHNvIGh1dSBkb2kgdm9pIHRhcCBkb2FuIGtpbmggdGUsIA0KdG9uZyBj b25nIHR5LiBDYWkgbW9pIGRvIGxhIHRvIGNodWMgdGh1YyBoaWVuIGtob25nIGNvIGJvIGNodSBx dWFuIG5odSB0cnVvYyB2YSBkYSBwaGFuIA0KY29uZywgZGEgbGFtIHJvIGxhIGhvaSBkb25nIHF1 YW4gdHJpIGxhIGNvIHF1YW4sIGxhIHRvIGNodWMgZGFpIGRpZW4gY2h1IHNvIGh1dSB0cnVjIHRp ZXAgDQp0YWkgZG9hbmggbmdoaWVwLiANCg0KQ2FjIGJvLCBibyBxdWFuIGx5IG5nYW5oIHZhIGJv IHF1YW4gbHkgdG9uZyBob3AgZHVvYyBwaGFuIGNvbmcsIGR1b2MgZ2lhbyBtb3Qgc28gDQpuaGll bSB2dSBjdSB0aGUgZGUgdGh1YyBoaWVuIHF1eWVuIGNodSBzbyBodXUsIFRodSB0dW9uZyBDaGlu aCBwaHUgY28gdHJhY2ggbmhpZW0gZG9pIA0Kdm9pIG1heSB2aWVjLg0KDQpNb3QgbGEgcmEgcXV5 ZXQgZGluaCB0aGFuaCBsYXAgZG9hbmggbmdoaWVwLCByYSBxdXlldCBkaW5oIHRoYW5oIGxhcCBU YXAgZG9hbiwgdGhhbmggbGFwIA0KY2FjIFRvbmcgY29uZyB0eSB0aGVvIGRlIG5naGkgY3VhIGNh YyBjbyBxdWFuIGNodWMgbmFuZyB2b2kgY2h1YyBuYW5nLCBuaGllbSB2dSBybyByYW5nLg0KDQpU aHUgaGFpIGxhIHBoZSBkdXlldCBjaGllbiBsdW9jIHF1eSBob2FjaCBwaGF0IHRyaWVuLg0KDQpU aHUgYmEgcXV5ZXQgZGluaCBDaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSB2YSBIb2kgZG9uZyBx dWFuIHRyaSB2b2kgdHUgY2FjaCBsYSBjdSBjYW4gDQpibyBjb25nIGNodWMgZGUgdGh1YyBoaWVu IGNodWMgbmFuZyBkYWkgZGllbiBjaHUgc28gaHV1IHRydWMgdGllcCB0YWkgZG9hbmggbmdoaWVw IHRyb25nIA0KbmhpZXUgbmFtIHF1YSB0aGkgQ2hpbmggcGh1IGRhIHRyaWVuIGtoYWkgdGh1YyBo aWVuIHRoZW8gdGluaCB0aGFuIGRvLg0KDQpOZ2F5IHRyb25nIEJhbyBjYW8gY2h1bmcgdG9pIGN1 bmcgbm9pIGxhIHR1eSBkYSBjbyBuaGlldSBjbyBnYW5nIGRlIGhvYW4gdGhpZW4gdGhlIGNoZS4g DQoNCk5odSB2YXkgdHUgbmFtIDIwMDYgVGh1IHR1b25nIENoaW5oIHBodSBkYSBiYW4gaGFuaCA3 IG5naGkgcXV5ZXQsIDY5IG5naGkgZGluaCwgMjcgDQpxdXlldCBkaW5oLCAxMyBjaGkgdGhpIHZh IG5oaWV1IHZhbiBiYW4gZGlldSBoYW5oIGxpZW4gcXVhbiBkZW4gcXVhbiBseSBkb2kgdm9pIGRv YW5oIA0KbmdoaWVwIE5oYSBudW9jLiANCg0KRGEgY28gbmhpZXUgY28gZ2FuZyBjdW5nIGNvIGJ1 b2MgdGllbiwgbmh1bmcgY3VuZyBuZ2hpZW0gdHVjIG5oaW4gbmhhbiBsYSB0aGUgY2hlLCBjbyAN CmNoZSBxdWFuIGx5IE5oYSBudW9jIHZhIHF1YW4gbHkgY3VhIGNodSBzbyBodXUgZG9pIHZvaSBk YXUgdHUsIGRvaSB2b2kgc3UgZHVuZyB2b24sIGRvaSANCnZvaSB0aGFuaCB0cmEsIGRvaSB2b2kg Z2lhbSBzYXQsIGtpZW0gdHJhLCB0aGFuaCB0cmEgY29uIG5oaWV1IGJhdCBjYXAsIGx1bmcgdHVu ZywgY28gbmh1bmcga2UgaG8uIA0KDQpDaHVuZyB0b2kgY3VuZyBuZ2hpZW0gdHVjIG5oaW4gbmhh biB0cmFjaCBuaGllbSBkby4gQ2h1bmcgdG9pIGRhIHRoYXkgdmFuIGRlIHZhIHNlIHRpZXAgDQp0 dWMgaG9hbiB0aGllbi4NCg0KVGhlIGNoZSBtbyBoaW5oIFRhcCBkb2FuIGtpbmggdGUsIFRvbmcg Y29uZyB0eSBuaGEgbnVvYyB0cm9uZyBuZW4ga2luaCB0ZSB0aGkgdHJ1b25nIA0KZGluaCBodW9u ZyB4YSBob2kgY2h1IG5naGlhIGxhIG1vdCBxdWEgdHJpbmggaG9hbiB0aGllbiwgbW90IG1vIGhp bmggY2h1YSBjbyBzYW4uIER1IA0KZGEgaGV0IHN1YyBjbyBnYW5nIG5odW5nIHRvaSBnaW8gbmF5 IGNodW5nIHRvaSB2YW4gY29uIHRoYXkgbmh1bmcgYmF0IGNhcCBsdW5nIHR1bmcuIA0KDQpWaSBk dSBvIGRheSBjbyBtb3Qgc28gZGFpIGJpZXUgbm9pIHZvaSB0b2kgcmFuZyB0YWkgc2FvIFRodSB0 dW9uZyBraG9uZyBsYXAgYm8gcXVhbiBseSBkaSwgDQptb3QgYm8gcXVhbiBseSBjaHV5ZW4gZG9h bmggbmdoaWVwIG5oYSBudW9jLCBjYWMgdGFwIGRvYW4gbmF5LiBUb2kgY28gdGhhbyBsdWFuIHRy b25nIA0KdGh1b25nIHRydWMgQ2hpbmggcGh1LCB0cm9uZyBDaGluaCBwaHUgdmEgbmhpZXUgeSBr aWVuIHRoYXkgcmFuZyBsYXAgbW90IGJvIG5odSB0aGUgDQpuYXkga2hvbmcgYmlldCBxdWFuIGx5 IG5odSB0aGUgbmFvLiANCg0KRHVvbmcgbmhpZW4gY2h1bmcgdG9pIGN1bmcgZGFuZyB0aW0gdG9p IHRoYW8gbHVhbiB0aWVwIGRlIG5nYXkgY2FuZyBob2FuIHRoaWVuIHRoZSBjaGUsIA0KY28gY2hl IHF1YW4gbHkgbmhhIG51b2MgdmEgcXVhbiBseSBjdWEgY2h1IHNvIGh1dSBkb2kgdm9pIGNhYyBU YXAgZG9hbiBraW5oIHRlLCBjYWMgDQpUb25nIGNvbmcgdHkgbmhhIG51b2MuDQoNClNlIGtpZW0g ZGllbSB0cmFjaCBuaGllbSB2aWVjIGJvIG5oaWVtIG9uZyBQaGFtIFRoYW5oIEJpbmgNCg0KVmUg dmllYyBibyBuaGllbSBDaHUgdGljaCBob2kgZG9uZyBxdWFuIHRyaS4gRHVuZyBsYSB2b2kgY2h1 YyBuYW5nIGN1YSBtaW5oIHRvaSBjbyANCnF1eWV0IGRpbmggQ2h1IHRpY2ggaG9pIGRvbmcgcXVh biB0cmksIG5odW5nIHN1IHZpZWMgbGEgdHUgbmFtIDE5OTYga2hpIGxhcCBUb25nIGNvbmcgDQp0 eSB0YXUgdGh1eSBWaWV0IE5hbSB0aGkgVGh1IHR1b25nIFZvIFZhbiBLaWV0IGRhIHF1eWV0IGRp bmggYW5oIFBoYW0gVGhhbmggQmluaCANCmxhbSBUb25nIGdpYW0gZG9jIFRvbmcgY29uZyB0eSB0 YXUgdGh1eSBWaWV0IE5hbSwgVG9uZyBjb25nIHR5IDkxLiANCg0KVHUgbmFtIDE5OTYgZGVuIG5h bSAxOTk5LCBUaHUgdHVvbmcgUGhhbiBWYW4gS2hhaSBkYSBxdXlldCBkaW5oIGxheSBhbmggQmlu aCBsYW0gDQpDaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSBraWVtIFRvbmcgZ2lhbSBkb2MgVG9u ZyBjb25nIHR5IHRhdSB0aHV5IFZpbmFzaGluIHR1IG5hbSANCjE5OTkuDQoNCkRlbiBraGkgaGlu aCB0aGFuaCB0YXAgZG9hbiBWaW5hc2hpbiB0cmVuIGNvIHNvIFRvbmcgY29uZyB0eSBjb25nIG5n aGllcCB0YXUgdGh1eSBWaWV0IA0KTmFtIG5heSwgbHVjIGRvIGNoaW5oIHRvaSBjdW5nIG5oYWMg YmFuZyBjb25nIHZhbiB2YSBjbyBjaGkgdGhpIHlldSBjYXUgY2FjIGNvIHF1YW4gDQpjaHVjIG5h bmcgdmEgdGFwIGRvYW4gcGhhaSB0aW0gVG9uZyBnaWFtIGRvYyBkZSB0aHVjIGhpZW4gdGhlbyBk dW5nIHF1eSBkaW5oLiBOaHVuZyBkZW4ga2hpIHRoYW5oIGxhcCBUYXAgZG9hbiByb2kgdGhpIHBo YWkgYm8gbmhpZW0gSG9pIGRvbmcgcXVhbiB0cmkgdmEgVG9uZyBnaWFtIGRvYyBtYSANCmNodWEg dGltIGR1b2Mgbmd1b2kuDQoNCkNodW5nIHRhIGRhIGR1IGRpbmggdGhpIGRpZW0gdGh1ZSBUb25n IEdEIG5lbiB4aW4gdm9pIFRodSB0dW9uZyBsYSBuZW4gdGllcCB0dWMgYm8gDQpuaGllbSBhbmgg bmF5IGxhbSBDaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSBraWVtIFRvbmcgZ2lhbSBkb2MgZGVu IGtoaSBjbyB0aHVjIGhpZW4gDQpkdW9jIFRvbmcgZ2lhbSBkb2MgbW9pLiANCg0KVmllYyBuYXkg Y2hpbmggdG9pIHZhIEJhbiBjYW4gc3UgRGFuZywgQ2hpbmggcGh1IGRvbmcgeSAobHVjIGRvIHRv aSBjb24gbGFtIFBobyBUaHUgDQp0dW9uZykuIA0KDQpEbyBsYSBtb3QgdmllYywgbW90IHRoaSBk aWVtIGtlbyBkYWksIGJhdCBkYXUgdHUgbmFtIDE5OTkuIENodW5nIHRvaSBzZSBraWVtIGRpZW0g cm8gDQp2aWVjIG5heSwgdHJhY2ggbmhpZW0gbmh1IHRoZSBuYW8sIHRvaSB4aW4gdHJpbmggYmF5 IHJvIHZvaSBjYWMgZG9uZyBjaGkgbmh1IHZheS4gDQoNCkxhbSBkdW5nIGNodSB0cnVvbmcsIHBo YXAgbHVhdA0KDQpWZSB2aWVjIGNvIHRhaSBjbyBjYXUgY2FjIHRhcCBkb2FuIGtoYWMgaGF5IGto b25nLCAgdG9pIGtob25nIGR1bmcgdHUgbGEgdGFpIGNvIGNhdSB0YXQgY2EgDQpjYWMgdGFwIGRv YW4uIFRvaSBjbyBuZXUgbGEgcXV5ZXQgdGFtIGN1YSBDaGluaCBwaHUgbGEgdGh1YyBoaWVuIHRo YW5oIGNvbmcgZGUgYW4gdGFpIGNvIA0KY2F1IFRhcCBkb2FuIFZpbmFzaGluLCBkb25nIHRob2kg Q2hpbmggcGh1IHF1eWV0IHRhbSBraG9uZyBkZSB4YXkgcmEgdGluaCB0cmFuZyB0dW9uZyANCnR1 IG5odSBWaW5hc2hpbi4gQ2h1bmcgdG9pIHNlIGNvIG5odW5nIHZpZWMgbGFtIGN1YSBtaW5oIGRl IGtob25nIGNvbiBuaHVuZyB2aWVjIGRvLg0KDQpEb2kgdm9pIFRhcCBkb2FuIGRhdSBraGkgcXVv YyBnaWEgVmlldCBOYW0sIHRoZW8gQmFvIGNhbyBjdWEgQm8gVGFpIGNoaW5oIHZhIGNhYyBibyAN CmNodWMgbmFuZyBsYSBkYW5nIGhvYXQgZG9uZyBjbyBoaWV1IHF1YSwgaG9hdCBkb25nIHRvdC4g DQoNCkR1b25nIG5oaWVuIGNodW5nIHRvaSBjdW5nIHlldSBjYXUgY2FjIGNvIHF1YW4gY2h1YyBu YW5nLCBob2kgZG9uZyBxdWFuIHRyaSByYSBzb2F0IGxhaSwgDQpkaWV1IGNoaW5oIGxhaSBzYXUg a2hpIGNvIHN1IHZpZWMgY3VhIFZpbmFzaGluLCBzYXUga2hpIGNvIGRhbmggZ2lhIGNodW5nIHZl IG5odW5nIG1hdCANCmR1b2MsIGNodWEgZHVvYyBjdWEgY2FjIFRhcCBkb2FuIGtpbmggdGUsIGNh YyBUb25nIGNvbmcgdHkgbmhhIG51b2MgdmEgY28ga2V0IGx1YW4gY2hpIA0KZGFvIGNodW5nIGN1 YSBCbyBDaGluaCB0cmkuIA0KDQpUYXAgZG9hbiBkYXUga2hpIHF1b2MgZ2lhIFZpZXQgTmFtIGN1 bmcgZGFuZyByYSBzb2F0IGRlIGNoYW4gY2hpbmgsIGxhbSBzYW8gdGllcCB0dWMgDQpwaGF0IGh1 eSB0b3QsIGhpZXUgcXVhIG5nYW4gbmd1YSBuaHVuZyB5ZXUga2VtIGNvIHRoZSB4YXkgcmEuDQoN ClZpZWMgNTAlIGRlIGxhaSBjaG8gZGF1IGtoaSwgdG9pIHhpbiBub2kgbmdhbiBnb24sIHZpZWMg bmF5IENoaW5oIHBodSBsYW0gZHVuZyB0aGVvIGNodSB0cnVvbmcgY3VhIERhbmcgdmEgcGhhcCBs dWF0IE5oYSBudW9jDQoNClZhbiBkZSBUYXAgZG9hbiBkYXUga2hpIGNvIGxpZW4gZG9hbmggdm9p IG1vdCBUYXAgZG9hbiBkYXUga2hpIGN1YSBxdW9jIGdpYSANClZlbmV6dWFsYSwgZGF5IGNvIGNo dSB0cnVvbmcgY3VhIENoaW5oIHBodSB2YSBkb25nIGNoaSBUb25nIEJpIHRodSwgZG9uZyBjaGkg Q2h1IHRpY2ggDQpudW9jIGN1bmcgZGEgY28gdGhhbyBsdWFuIHZvaSBUb25nIHRob25nIFZlbmV6 dWVsYSB2ZSBjaHUgdHJ1b25nIG5heS4gDQoNCkNodW5nIHRhIHRoaWV1IG5hbmcgbHVjLCBjaHVu ZyB0YSBwaGFpIHRpbSBraWVtIGNhYyBuZ3VvbiBuYW5nIGx1b25nLCBkZSBjdW5nIHZvaSBuYW5n IA0KbHVvbmcgY3VhIGNodW5nIHRhIGRlIGRhbSBiYW8gYW4gbmluaCBuYW5nIGx1b25nIGNobyBk YXQgbnVvYy4gVGEgY2h1IHRydW9uZyBkZSBUYXAgDQpkb2FuIGRhdSBraGkgcXVvYyBnaWEgVmll dCBOYW0gdGltIGtpZW0gcmEgbnVvYyBuZ29haSBkYXUgdHUgZGUgY28gdGhlbSBuZ3VvbiBkYXUs IGNvIHRoZW0gbmd1b24gbmFuZyBsdW9uZy4gRG8gbGEgbW90IGNodSB0cnVvbmcgZHVuZy4NCg0K R2llbmcgZGF1IGRhdSB0aWVuIG1hIGNodW5nIHRhIGxpZW4gZG9hbmggZGEgY28gZGF1IGRvIGxh IG8gTGllbiBiYW5nIE5nYSwga2hpIGNvIGRvbmcgDQpkYXUgdGhpIGRvbmcgY2hpIFBobyBUaHUg dHVvbmcgSG9hbmcgVHJ1bmcgSGFpIGN1bmcgZGVuIGRvLCBkZW4gdGFuIGJlbiBnaWVuZyBkYXUg ZGUgDQpjaHVjIG11bmcgdmEgVG9uZyB0aG9uZyBNZWR2ZWRldiBzYW5nIHRoYW0gZ2FwIHRvaSBr aGkgdHJhbyBkb2kgeSBraWVuIGN1bmcgZGFuaCBnaWEgDQpjYW8gdmllYyBuYXkuDQoNCkNoaW5o IHBodSBzZSBsYW0gaGV0IHN1YyBkZSBjaG8gY28gaGlldSBxdWEuIENodW5nIHRvaSBzZSBsYW0g ZHVuZyBjaHUgdHJ1b25nIGN1YSANCkRhbmcgdmEgcGhhcCBsdWF0IGN1YSBOaGEgbnVvYy4NCg0K Q28gbGUgdG9pIG5vaSBuaHUgdGhlIGxhIHRvaSBuZ2hpZW0gdHVjIGtob25nIGNvIGNhY2ggbmFv IGtoYWMgcGhhaSBsYW0gbmh1bmcgbWEgbGFtIA0KZHVuZyBwaGFwIGx1YXQsIGR1bmcgY2h1IHRy dW9uZyBjdWEgRGFuZywgTmhhIG51b2MuDQoNClRoaSBkaWVtIGNvIHRoZSBraG9uZyB0aGFuaCBj b25nDQoNCkNvbiB2aWVjIGRhIG5nYW5oLCBkYSBsaW5oIHZ1YywgdGh1YyBoaWVuIE5naGkgcXV5 ZXQgVHJ1bmcgdW9uZyAzIHZlIGRvaSBtb2kgcGhhdCB0cmllbiANCmRvYW5oIG5naGllcCBOaGEg bnVvYyB0aGkgdHJvbmcgZG8gVHJ1bmcgdW9uZyAzIHZhIERhaSBob2kgWCBjdW5nIGNvIG5ldSBs YSB0aGkgZGllbSANCm1vdCBzbyB0YXAgZG9hbiBraW5oIHRlIHRodWMgaGllbiBraW5oIGRvYW5o IGRhIG5nYW5oLCBkYSBsaW5oIHZ1YyB0cm9uZyBkbyBjbyBuZ2FuaCANCmtpbmggZG9hbmggY2hp bmggdGhpIENoaW5oIHBodSBjdW5nIHRyaWVuIGtoYWkgdGh1YyBoaWVuIG1vIGhpbmggbmF5LiAN Cg0KVGhpIGRpZW0gdGhpIGN1bmcgY28gdGhlIHRoYW5oIGNvbmcsIGN1bmcgY28gdGhlIGtob25n IHRoYW5oIGNvbmcuIEtoaSBub2kgdGhpIGRpZW0gbGEgDQpjaHVuZyB0b2kgZGEgbmdoaSByYSwg ZGEgdGhheSBkaWV1IGRvLiBOaHUgdmF5IDggdGFwIGRvYW4ga2luaCB0ZSB2YSBuaGlldSB0b25n IGNvbmcgdHkgDQpkYSB0aHVjIGhpZW4gdGhlbyBtbyBoaW5oIG5heSBoYXUgaGV0IGxhIHRoYW5o IGNvbmcuDQoNCkR1b25nIG5oaWVuIHRyb25nIG1vIGhpbmggbmF5IGNvIGNhaSBjYW4gcGhhaSBk aWV1IGNoaW5oLCBjaHVuZyB0b2kgZGEgc28ga2V0LCBiYW8gY2FvIA0KQm8gQ2hpbmggdHJpLiBC byBDaGluaCB0cmkgZGEgY28ga2V0IGx1YW4gY2hpIGRhbyBwaGF0IGh1eSBjYWkgdG90LCBjYWkg aGlldSBxdWEsIGNoYW4gDQpjaGluaCwga2hhYyBwaHVjIG5odW5nIGNhaSBib2MgbG8gc28gaG8s IHlldSBrZW0gZGUgY2h1bmcgdGEgbGFtIHRvdCBob24uIENodW5nIHRvaSBkYSANCmNvIHNvIGtl dCB2YSBkYSBjbyBiYW8gY2FvIHZhIGRhbmcgdHJpZW4ga2hhaSwgaG9hbiB0aGllbi4gDQoNClRv aSB4aW4gbm9pIHJvIGxhIGRhIG5nYW5oLCBkYSBsaW5oIHZ1Yywgbmh1bmcgY28gbmdhbmggY2hp bmguIE5nb2FpIGNhaSBuZ2FuaCBkbywgZGEgDQpsaW5oIHZ1YyBkbyBjdW5nIGNoaW5oIGxhIG5o dW5nIG5nYW5oIGdhbiBrZXQsIHBodWMgdnUgY2hvIG5nYW5oIGNoaW5oIHRoaSBkYW5nIGNoYW4g DQpjaGluaCB0aGVvIGh1b25nIG5heS4NCg0KIktob25nIGNoaSBkYW8sIHF1YW4gbHkgdHJ1YyB0 aWVwIHRvIGJhbyBuYW8iDQoNClZlIGNhdSBob2kgY3VhIERCIFRodXlldCBsaWVuIHF1YW4gZGVu IGJhaSB2aWV0IHRyZW4gd2Vic2l0ZSBDaGluaCBwaHUsIGxhIFRodSB0dW9uZyANCkNoaW5oIHBo dSwgdG9pIHRodW9uZyB4dXllbiBxdWFuIHRhbSBjaGkgZGFvIGJhbyBjaGksIGNoaSBkYW8gcXVh IGNhYyBjbyBxdWFuIGNodSANCnF1YW4sIHF1YSBjYWMgY28gcXVhbiBjbyBjaHVjIG5hbmcgcXVh biBseSBOaGEgbnVvYyB2ZSBiYW8gY2hpIHZvaSB0aW5oIHRoYW4gYmFvIGNoaSANClZOIHRodWMg aGllbiBkdW5nIGNodSB0cnVvbmcgY3VhIERhbmcsIHBoYXAgbHVhdCBOaGEgbnVvYywgbGFtIHRv dCB2YWkgdHJvIGN1YSBiYW8gY2hpIGNhY2ggbWFuZy4gTW9pIHRvIGJhbyBwaGFpIGxhIG1vdCBu Z29uIGNvIGNoaWVuIGRhdSBkZSB4YXkgZHVuZyBkYXQgbnVvYyBWTiBYSENOIA0KZGFuIGdpYXUs IG51b2MgbWFuaCwgZGFuIGNodSwgY29uZyBiYW5nLCB2YW4gbWluaC4gUGhhaSBsYW0gZHVuZyB0 b24gY2hpIG11YyBkaWNoLCANCmxhbSBkdW5nIHBoYXAgbHVhdC4gVG9pIHRodW9uZyB4dXllbiBj aGkgZGFvIHRpbmggdGhhbiBkby4gDQoNClRvaSBraG9uZyBjbyBjaGkgZGFvIHRydWMgdGllcCBo YXkgcXVhbiBseSB0cnVjIHRpZXAgbW90IHRvIGJhbyBuYW8uIA0KDQpXZWJzaXRlIENoaW5oIHBo dSBjbyBjaHVjIG5hbmcgbGEgbW90IHRvIGJhbyBkaWVuIHR1LCB0aHVvYyB2YW4gcGhvbmcgQ2hp bmggcGh1LCBkbyANCkJvIHRydW9uZywgQ2h1IG5oaWVtIFZhbiBwaG9uZyBDaGluaCBwaHUgY2hp IGRhby4gV2Vic2l0ZSBsYSB0byBiYW8gZGllbiB0dSBDaGluaCANCnBodSBwaGFpIHRodWMgaGll biBkdW5nIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQgTmhhIG51b2MsIGR1bmcgY2h1IHRydW9uZyBj dWEgRGFuZy4gDQpDdW5nIG5odSBtb2kgdG8gYmFvIGtoYWMsIG5ldSBkYW5nIHRhaSBzYWkgcGhh cCBwaGFwIGx1YXQsIHNhaSBjaHUgdHJ1b25nIGN1YSBEYW5nIHRoaSANCnBoYWkgY2hpdSB0cmFj aCBuaGllbSB2ZSB2aWVjIGRhbmcgdGFpIGN1YSBtaW5oLiANCg0KVmllYyBub2kga2hvbiBuZ29h biBoYXkga2hvbmcga2hvbiBuZ29hbiB0b2kga2hvbmcgYmlldCBuZW4gbm9pIHRoZSBuYW8uIFR1 IHRpZXUgY2hpIA0KeWV1IGNhdSwgbGFtIGR1bmcgcGhhcCBsdWF0LCB0b2kgY3VuZyBkZSBuZ2hp IERCIFRodXlldCB4ZW0geGV0IHRoZW8gZHVuZyBwaGFwIGx1YXQgaGF5IGtob25nLCBkdW5nIGNo dSB0cnVvbmcgY3VhIERhbmcgaGF5IGtob25nLiANCg0KUXV5IGhvYWNoIHlldSBrZW0gY28gdHJh Y2ggbmhpZW0gY3VhIFRodSB0dW9uZw0KDQpWZSBjYXUgaG9pIGN1YSBEQiBUaWVuLCBjb25nIHRh YyBxdXkgaG9hY2gga2luaCB0ZSAtIHhhIGhvaSB2YSBxdXkgaG9hY2ggY2h1eWVuIG5nYW5oIA0K Y3VhIHRhIGRldSBkYSBjbyBidW9jIHRpZW4gZGFpLCBuaHVuZyB2YW4gY29uIG5oaWV1IGJhdCBj YXAuIER1bmcgbGEgY2hhdCBsdW9uZywgaGlldSANCnF1YSwgdGluaCBwaGFwIGx5IGN1YSBxdXkg aG9hY2ggY29uIG5oaWV1IGRpZW0gcGhhaSBuYW5nIGxlbi4gQ2hpbmggcGh1IGhldCBzdWMgcXVh biANCnRhbSB2YSBjbyBnYW5nIGxhbSB0b3QgaG9uIGNvbmcgdGFjIHF1eSBob2FjaC4NCg0KQ29u IHZlIHF1eSBob2FjaCBuZ3VvbiBuaGFuIGx1YywgdG9pIGNvIGNoaSBkYW8gdmllYyBuYXkuIE5o dW5nIGRlIHF1eSBob2FjaCBuZ3VvbiANCm5oYW4gbHVjIGNobyBkYXQgbnVvYyB0cm9uZyBnaWFp IGRvYW4geGF5IGR1bmcgbnVvYyB0YSBjbyBiYW4gdGhhbmggbnVvYyBjb25nIG5naGllcCANCnRo ZW8gaHVvbmcgaGllbiBkYWkgdGhpIGNodWEgbGFtIGR1b2MuDQoNClBobyBUaHUgdHVvbmcgTmd1 eWVuIFRoaWVuIE5oYW4gY28gZGUgeHVhdCB2b2kgdG9pIGxhIHNlIGNoaSBkYW8geGF5IGR1bmcg cXV5IGhvYWNoIA0Kbmd1b24gbmhhbiBsdWMgdGhlbyB0dW5nIG5nYW5oLCB0dW5nIGxpbmggdnVj IHJvaSB0b25nIGhvcCBsYWkuIEhpZW4gY3VuZyBkYW5nIHRodWMgaGllbiB0aGVvIGh1b25nIGRv LCB2YSBkYSBsYW0gcXV5IGhvYWNoIG1vdCBzbyBuZ2FuaC4NCg0KREIgVGllbiBjbyBob2kgdHJh Y2ggbmhpZW0gcXV5IGhvYWNoIHlldSBrZW0gdGh1b2MgdmUgYWksIHRoaSB0b2kgeGluIHRyYSBs b2kgbGEgdGhlbyANCnBoYW4gY29uZyBjaHVjIG5hbmcgbmhpZW0gdnUsIGNvIHRyYWNoIG5oaWVt IG5ndW9pIGR1bmcgZGF1IGNoaW5oIHBodS4NCg0KOWgzMCBRdW9jIGhvaSBuZ2hpIGdpYWkgbGFv LiBEZW4gMTBoLCBRdW9jIGhvaSB0aWVwIHR1YyBsYW0gdmllYy4NCg0KRGF1IHR1IGNobyB2dW5n IHNhdTogTHVjIGJhdCB0b25nIHRhbQ0KDQotIERCIERpbmggTXVvayAoUXVhbmcgTmFtKTogRG9p IHNvbmcgdmF0IGNoYXQgdGluaCB0aGFuIGJhIGNvbiB2dW5nIHNhdSB2dW5nIHhhIA0KbWF5IG5h bSBuYXkgbmhvIERhbmcsIENoaW5oIHBodSBxdWFuIHRhbSBuZW4gZGEgZHVvYyBjYWkgdGhpZW4g bmh1bmcgY2hlbmggbGVjaCANCmdpYXUgbmdoZW8gdmFuIGRhbmcgbmdheSBjYW5nIGxvbiwgdHkg bGUgaG8gbmdoZW8gZGFuZyBjYW8uDQpDbyBuaGlldSBuZ3V5ZW4gbmhhbiwgY2EgY2h1IHF1YW4g bGFuIGtoYWNoIHF1YW4uIE5odW5nIHRyb25nIGRvIGNvIHRpbmggdHJhbmcgZGF1IHR1IA0KdGhp ZXUgdHJvbmcgdGFtIHRyb25nIGRpZW0sIHZpZWMgcGhhbiBibyB2b24gbmhvIGdpb3QuDQoNCihB bmg6IERCIE5ndXllbiBNaW5oIFRodXlldCB0cm9uZyB2b25nIHZheSBiYW8gY2hpIHZhbyBnaW8g Z2lhaSBsYW8uIEFuaCBMQUQpIA0KDQpDaGFuZyBoYW4sIGNodW9uZyB0cmluaCAzMGEgeG9hIGRv aSBnaWFtIG5naGVvLiBNb3Qgc28gY2h1b25nIHRyaW5oIGtoYWMgbXVjIGRhdSB0dSANCnJhdCB0 aGFwLiBNb3Qgc28gY2h1b25nIHRyaW5oIGRhdSB0dSB0cmFpIHBoaWV1IENoaW5oIHBodSB2YW4g ZGFuZyB0aGFwLiANCg0KVGhlbyBrZXQgcXVhIGdpYW0gc2F0IGN1YSBIb2kgZG9uZyBkYW4gdG9j IG8gbW90IHNvIHRpbmgsIG1vaSB0aHVjIGhpZW4gY2FwIGtpbmggcGhpIDggliANCjEwJSwgcmF0 IGl0IHRpbmggZHVvYyBjYXAgdHJlbiAxMCUuIFZvbiBkdW9jIGNhcCBjaG8gdHVuZyBkdSBhbiBy YXQgdGhhcCwgZ2F5IG5oaWV1IHRybyANCm5nYWkgY2hvIHF1YSB0cmluaCB0cmllbiBraGFpIHRo dWMgaGllbi4gTmV1IGtob25nIGNhaSB0aGllbiB0aGkga2hvbmcgYmlldCBiYW8gZ2lvIG1vaSAN CnRodWMgaGllbiBkdW9jLg0KVmkgc2FvIGNvIHRpbmggdHJhbmcgZGF1IHR1IG5obyBnaW90IG5o dSB2YXk/IFZpIHNhbyBjbyB2aWVjIGNhYyBibyBuZ2FuaCBwaGUgZHV5ZXQgdm9uIA0KdGhhcCBu aHUgdmF5PyBYaW4gaG9pIHRoYW0gcXV5ZW4gVGh1IHR1b25nIG5odSB0aGUgbmFvIHRyb25nIHZh biBkZSBuYXk/DQoNCi0gT25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmc6IFZpZWMgZGF1IHR1 IG5obyBnaW90IGtob25nIGRhdCBtdWMgdGlldSBkdSBhbiwgbmh1IHRvaSBkYSANCnRyaW5oIGJh eSwgdGhpIERhbmcsIE5oYSBudW9jIGx1b24gaGV0IHN1YyBxdWFuIHRhbSBkYXUgdHUgcGhhdCB0 cmllbiBub25nIG5naGllcCwgbm9uZyANCnRob24sIHZ1bmcgc2F1IHZ1bmcgeGEsIGRhYyBiaWV0 IGRvbmcgYmFvIGRhbiB0b2MgdGhpZXUgc28uDQoNCkNodSB0cnVvbmcgZG8gZGEgZGVtIGxhaSBu aHVuZyB0aGFuaCB0dXUgZGFuZyB0cmFuIHRyb25nLiBWaWVjIGRhdSB0dSBjbyB0YW5nIG5odSB0 aGUgDQpkZSBkYXAgdW5nIE5naGkgcXV5ZXQgVFUgNywgc28gdm9pIG1vbmcgbXVvbiB2YSB5ZXUg Y2F1IHRoaSB2YW4gY2h1YSBkYXQsIHZhbiBjb24gDQpraG9hbmcgY2FjaC4NCg0KQ28gZHUgYW4g Ym8gdHJpIHZvbiBpdC4gRG9uZyBiYW8gY3VuZyBwaGFpIGNoaWEgc2Ugdm9pIENoaW5oIHBodS4g Q2FpIGJhbmggY28gbmh1IHRoZSwgDQpjaHVuZyB0b2kgY3VuZyBoZXQgc3VjIHV1IHRpZW4sIGRl IHBoYW4gYm8gdnVuZyBzYXUgdnVuZyB4YS4NCg0KTmh1bmcgZ29jIHZhbiBkZSBsYSBuZ2FuIHNh Y2ggY29uIGl0IHF1YS4gQ2h1bmcgdG9pIHNlIHRodWMgaGllbiBjbyBnYW5nLiBOaHVuZyBjbyAN CmNodW9uZyB0cmluaCwgZHUgYW4gY29uIGNodWEgZGF0IG11YyB0aWV1IGRlIHJhLiBWb2kgdHJh Y2ggbmhpZW0gY3VhIG1pbmgsIENoaW5oIHBodSBzZSANCmxhbSBoZXQgc3VjIGRlIGh1eSBkb25n IG5ndW9uIGx1YywgdGh1YyBoaWVuIGRhdSB0dSBjaG8gcGhhdCB0cmllbiwgdmkgZHUgY2h1b25n IHRyaW5oIA0KMzBhLCBjYWMgY2h1b25nIHRyaW5oIG11YyB0aWV1IHBoYXQgdHJpZW4uDQpDbyBj aHV5ZW4gbHVjIGJhdCB0b25nIHRhbSwgbW9uZyBkb25nIGJhbyB2YSBuaGFuIGRhbiBjYSBudW9j IHRob25nIGNhbS4NCg0KS2hvbmcga2llbSBkaWVtIHF1YSBsb2ENCg0KLSBEQiBWdSBIb2FuZyBI YSAoQmluaCBEaW5oKTogIFRvaSBjbyAyIGNhdSBob2k6DQpNb3QgbGEsIHRpbmggaGluaCBraW5o IHRlIC0geGEgaG9pIHRyb25nIG5odW5nIHRoYW5nIGN1b2kgbmFtIGRpZW4gYmllbiBiYXQgbG9p LCBuaHUgVGh1IA0KdHVvbmcgZGEgbmV1LCBuaHVuZyBkaWV1IGRhbmcgbm9pIGxhIGNhYyBudW9j IHh1bmcgcXVhbmggdGEgc3V5IHRob2FpIGNvbiBuYW5nIG5lIGhvbiANCnRhIG5odW5nIGhvIHZh biBwaGF0IHRyaWVuIG1vdCBjYWNoIG9uIGRpbmguDQoNCk5odSB2YXksIG5nb2FpIHlldSB0byBr aGFjaCBxdWFuLCB0cm9uZyB2aWVjIHF1YW4gbHkgdmEgZGlldSBoYW5oIHZpIG1vIGN1YSBDaGlu aCBwaHUgDQpjbyBuaHVuZyB2YW4gZGUgZ2kgc2FpIHNvdCBkZSB0aW5oIGhpbmggbmh1IHZheS4g Q2h1bmcgdGEga2hvbmcgdGhlIGRvIGtoYWNoIHF1YW4sIGdpYSANCnZhbmcgbmhheSBtdWEgdHJv bmcgbW90IG5nYXkgMywgNCBsYW4sIGRvIGxhIGN1bmcgZG9pIGJhIGxhbiBuaGF5IG11YS4NCg0K Q2hpIHNvIGxhbSBwaGF0IGNoYWMgY2hhbiBraG9uZyB0aGUgdGh1YyBoaWVuIGR1bmcgdGhlbyBu Z2hpIHF1eWV0IFFILiBYaW4gaG9pIFRodSANCnR1b25nIGNvIGdpYWkgcGhhcCBjYXAgYmFjaCwg Y3UgaGljaCBuYW8gZGUgY2hpIGNvbiAxIHRoYW5nIHRodWMgaGllbiB0aGFuZyBsb2kgY2hpIHRp ZXUgDQptYSBRSCBkYSBuZXUuDQoNCkNhdSB0aHUgaGFpIGxhIHh1bmcgcXVhbmggdmFuIGRlIFZp bmFzaGluLCBjaHVuZyB0b2kgbXVuZyBsYSBDUCBkYSBwaGUgZHV5ZXQgZGUgYW4gdGFpIA0KY2F1 IHRydWMgVmluYXNoaW4sIFRodSB0dW9uZyBjdW5nIGRhIG5vaSBwaGUgZHV5ZXQgbmh1bmcgdGh1 YyBoaWVuIGtobyBraGFuLiBUb2kgdGhlbyANCmRvaSBQaG8gVGh1IHR1b25nIE5ndXllbiBTaW5o IEh1bmcgaG9tIHF1YSBjbyB0cmluaCBiYXkgZGUgYW4gbmF5LCBjaHVuZyB0b2kgdGhheSBkZSAN CmFuIHhheSBkdW5nIG1vdCBjaGlldSwgbGUgdGh1b2MgaG9hbiB0b2FuIHZhbyB0aGkgdHJ1b25n IGJlbiBuZ29haS4gTmV1IHRoaSB0cnVvbmcgYmVuIA0KbmdvYWkgdGhheSBkb2ksIGNvIGtobyBr aGFuLCB0aGkgbGlldSBkZSBhbiBjdWEgY2h1bmcgdGEgY28ga2hhIHRoaSBraG9uZz8gVHJvbmcg a2hpIA0KY2h1bmcgdGEga2hvbmcgZHVhIHJhIHBodW9uZyBhbiB0aGkgdHJ1b25nIGJlbiBuZ29h aSB4YXUgbmhhdC4gDQoNClkgdGh1IDIsIHRhaSBuZ2hpIHF1eWV0IHRoYW5nIDEwLzIwMTAgY3Vh IENQIGNvIG5ldSBtb3QgZG9hbiwgcGhhaSB0YXAgdHJ1bmcgeHUgbHkgbW90IA0KY2FjaCBuZ2hp ZW0gbWluaCwgbWluaCBiYWNoLCBjb25nIGtoYWkgbmh1bmcgdG8gY2h1YyB2YSBjYSBuaGFuIGNv IGxpZW4gcXVhbiBkZW4gdmllYyANCnNhaSBwaGFtIGN1YSBWaW5hc2hpbiwgY29uZyB2aWVjIGRv IGhvYW4gdGF0IHRydW9jIG5nYXkgSE5UVyBsYW4gdGh1IDE0IGtoYWkgbWFjLiBNYSANCkhvaSBu Z2hpIHNhcCB0b2kga2hhaSBtYWMgcm9pLCBsaWV1IFRodSB0dW9uZyBkaWV1IGhhbmggbmdoaSBx dXlldCBuYXkgY28gZGFtIGJhbyBkdW5nIA0KdGhlbyB0aW5oIHRoYW4gbmdoaSBxdXlldCBraG9u Zz8gDQoNClZlIHZpZWMgbmF5IHRvaSB4aW4gcGhlcCBub2kgdGhlbS4gVmkgc3UgdmllYyB4YXkg cmEgdHJvbmcgdGhvaSBkaWVtIG5oYXkgY2FtLCBuZXUgDQpjaHVuZyB0YSBsYW0gcXVhIGxvYSBj aG8gY28sIGJhbyBjYW8gdGhpIHRvaSBlIHN1IHZpZWMgc2UgcGh1YyB0YXAgaG9uLiBDb24gbmV1 IGxhbSB0aGF0IA0KbmdoaWVtIHR1YyBuaHUgVGh1IHR1b25nLCBQaG8gVGh1IHR1b25nIHRodW9u ZyB0cnVjIG5vaSwgY2FjIHRoYW5oIHZpZW4gQ1Aga2llbSANCmRpZW0sIHRvaSBlIHJhbmcgdmll YyBraWVtIGRpZW0ga2hvbmcgbmdoaWVtIHR1Yy4gVHJvbmcga2hpIFRodSB0dW9uZyBuaGFuIHRy YWNoIA0KbmhpZW0gdmUgcGhhbiBtaW5oLCBjYWMgdGhhbmggdmllbiBDUCB0cmEgbG9pIHRydW9j IFFIIGtob25nIHRoYW5oIHZpZW4gbmFvIG5oYW4gdGhpZXUgDQpzb3QsIHRyYSBsb2kgInZvIGNh biIuDQpUaGFpIGRvIFRodSB0dW9uZyB2b2kgY2FjIHRoYW5oIHZpZW4gQ1AgdGhlIG5hbywgZGUg a2hpIGNodW5nIHRvaSB2ZSBiYW8gY2FvIHZvaSBjdSB0cmksIA0KbmV1IGhvIGJhbyB0b2kgbmdo ZSB0aGFuaCB2aWVuIENQIGtob25nIG5oYW4sIGl0IHJhIGNodW5nIHRvaSBjdW5nIHBoYWkgdHJh IGxvaSB0aGFpIGRvIA0KY3VhIFRodSB0dW9uZyB2b2kgdGhhbmggdmllbiBDUCB0aGUgbmFvPw0K DQotIE9uZyBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nOiBWZSBraW5oIHRlIHhhIGhvaSwga2h1 bmcgaG9hbmcgdGFpIGNoaW5oIHN1eSB0aG9haSB0b2FuIA0KY2F1IHZ1YSBxdWEgdGFjIGRvbmcg bmFuZyBuZSB2YW8gbmVuIGtpbmggdGUgbnVvYyB0YS4gTmh1bmcgbWF0IGR1b2MsIGxhbSB0b3Qg Y2h1bmcgDQp0b2kgZGEgdHJpbmggYmF5IHZvaSBkb25nIGJhbywgbmh1bmcgbWF0IHlldSBrZW0g dHJvbmcgcXVhbiBseSBkaWV1IGhhbmggY3VuZyBkYSB0cmluaCANCmJheSB0cm9uZyBiYW8gY2Fv IHRydW9jIFFILg0KDQpOaHVuZyB0cmluaCBiYXkgbmdoaWVtIHR1YywgZGF5IGR1LCBjbyB0aGFu aCB0dXUga2V0IHF1YSBkYW5nIHZ1aSBtdW5nLCBuaHVuZyBjbyBtYXQgDQpjaHVhIGR1b2MsIGNo dWEgdG90LCBwaGFpIHRpZXAgdHVjIHBoYXQgaHV5IHRoYW5oIHR1dSwgcmEgc3VjIGtoYWMgcGh1 YyBoYW4gY2hlIHlldSBrZW0sIA0KZGUgZHVhIG5lbiBraW5oIHRlIHRpZXAgdHVjIHBoYXQgdHJp ZW4gYmVuIHZ1bmcsIHRyb25nIGRvIGNvIG9uIGRpbmgga2luaCB0ZSB2aSBtbywga2llbSBzb2F0 IGxhbSBwaGF0LiANCg0KS2hvbmcgYmlldCBsYXkgdGFpIGxpZXUgbmFvIGRlIHNvIHZvaSBjYWMg bnVvYyB0aGkgdG9pIGNodWEgYmlldCwgbmh1bmcgdG9pIGRhIGR1b2MgZGkgDQpuaGlldSBjdW9j IGhvaSBuZ2hpIGtodSB2dWMgdmEgcXVvYyB0ZSwgeGluIG5vaSBjaGFuIHRoYW5oIGxhIGJhbiBi ZSB0cm9uZyBraHUgdnVjIHZhIA0KcXVvYyB0ZSBkZXUgZGFuaCBnaWEgY2FvIHN1IHBoYXQgdHJp ZW4ga2luaCB0ZSB4YSBob2kgY3VhIFZOIHRyb25nIHRob2kgZ2lhbiBxdWENCkR1b25nIG5oaWVu LCB0b2kga2hvbmcgY2hvIGRvIGxhIHR1eWV0IHZvaSwgbWEgbHVvbiBsdW9uIHRoYXkgY29uIGto aWVtIGtodXlldCwgaGFuIA0KY2hlIHlldSBrZW0gdHJvbmcgZG8gY28gdHJhY2ggbmhpZW0sIG5h bmcgbHVjIGRpZXUgaGFuaCBxdWFuIGx5IGN1YSBjaGluaCBwaHUuIFRvaSB4aW4gDQpraG9uZyBu aGFjIGxhaSA2IHRoYW5oIHR1dSwgNiB5ZXUga2VtLCBuaGllbSB2dSBtYSBDaGluaCBwaHUgdHJp bmggYmF5LiANCg0KVGh1YyBoaWVuIG5naGllbSB0dWMgbmhpZW0gdnUgY2hpbmggcGh1IGRlIHJh LCBjaGkgdGlldSwgZ2lhaSBwaGFwIFFIIGRlIHJhIGRlIHRodWMgDQpoaWVuLg0KDQpWZSBWaW5h c2hpbiwgdG9pIGN1bmcgZGEgdHJpbmggYmF5IHZ1YSByb2ksIG5ndXllbiBuaGFuIHRyYWNoIG5o aWVtIGN1YSBDUCwgaGFuIGNoZSB5ZXUgDQprZW0gY3VhIENQLCBsYSBuZ3VvaSBkdW5nIGRhdSB0 b2kgbmhhbiB0cmFjaCBuaGllbS4gVG9pIGRhIG5vaSBybyBUaHUgdHVvbmcsIFBUVCwgY2FjIA0K Ym8gdHJ1b25nIGNvIGxpZW4gcXVhbiB2ZSB0cmFjaCBuaGllbSB0cm9uZyBxdWFuIGx5IG5oYSBu dW9jLCBxdWFuIGx5IGNodSBzbyBodXUsIGRhbmcgDQp0aWVuIGhhbmgga2llbSBkaWVtIGxhbSBy byB0cmFjaCBuaGllbSBjdSB0aGUuDQoNClhpbiBiYW8gY2FvIGxhIHNlIGxhbSBraG9uZyBxdWEg bG9hLCBsYW0gbmdoaWVtIHR1YywgdGhlbyBkdW5nIHF1eSB0cmluaCwgcXV5IGRpbmggY3VhIA0K RGFuZywgTmhhIG51b2MsIHRvaSBraGFuZyBkaW5oIGRpZXUgZG8uIA0KDQpLaGkgY2h1IHRyaSBw aGllbiBob3AgY2hpbmcgcGh1IHZ1YSByb2ksIHRoYXkgbWF0IENQIHRvaSBkYSBrZXQgbHVhbiBk aWV1IG5heSwgcmFuZyBzZSBiYW8gDQpjYW8gdHJ1bmcgdW9uZyB0cnVvYyBIb2kgbmdoaSB0cnVu ZyB1b25nIDE0LiBUb2kga2hhbmcgZGluaCB2aWVjIG5heSwgcmEga2V0IHF1YSB0aGUgbmFvIA0K c2UgY29uZyBraGFpLiANCg0KRG9pIHZvaSB0cmFjaCBuaGllbSBjdWEgY2FjIGJvIHRydW9uZyBk YSBjbyBwaGF0IGJpZXUgdHJ1b2MgUUgsIGNodW5nIHRvaSBkYW5nIHRpZW4gDQpoYW5oIGtpZW0g ZGllbSwgbGFtIHJvLiBCbyB0cnVvbmcgbmFvIGxpZW4gcXVhbiBkZW4gZGF1LCB0cmFjaCBuaGll bSBkZW4gZGF1IGNvIGtldCANCmx1YW4gbmdoaWVtIHR1YywgZHVuZyB2b2kgdGh1YyB0ZS4gDQoN Cktob25nIGR1IGRpZW4gbm9pIGdpIGRlbiB0YW5nIHRydW9uZyANCg0KLSBEQiBWbyBUaGkgSG9u ZyBUaG9haSAoQmFjIExpZXUpOiAgVmFuIGRlIG1hIG5oaWV1IGN1IHRyaSwgbmhhdCBsYSBjYWMg Y2h1eWVuIGdpYSBraW5oIHRlIHZhIERCUUggZGEgZHVvYyBkYXQgcmEgdHJvbmcgcGhpZW4gdGhh byBsdWFuIGtpbmggdGUgeGEgaG9pIHZhIHF1YSBuZ2hlIGNoYXQgDQp2YW4gVGh1IHR1b25nIHZh IGNhYyB0aGFuaCB2aWVuIENoaW5oIHBodSwgdG9pIHRoYXkgY29uIG5oaWV1IHZhbiBkZSBsbyBs YW5nIHZhIG5oaWV1IA0KYnVjIHh1YyBjdWEgY3UgdHJpLCBjaGFjIHNlIGNvbiBidWMgeHVjIGRh aSBkYWkuIERvIGRvLCB0b2kgeGluIGNoYXQgdmFuIFRodSB0dW9uZyBoYWkgY2F1Lg0KDQpUaHUg bmhhdCwgdmUgZGllbjogUGhhaSBjb25nIG5oYW4gdHJvbmcgbmh1bmcgbmFtIHF1YSBjbyByYXQg bmhpZXUgY28gZ2FuZyB0cm9uZyBkYXUgDQp0dSBwaGF0IHRyaWVuIG5odW5nIHNvIHZvaSB5ZXUg Y2F1IGNvbiB0aGlldS4gRGllbiBoaWVuIG5heSBkYW5nIHRoaWV1IGRvIDMgZGllbSBuZ2hlbiwg DQpjaHUgeWV1IGxhIGNoYW0gdGllbiBkbyBjYWMgZHUgYW4gZGF1IHR1IHZhIGNodWEgaHV5IGRv bmcgZHVvYyBuZ3VvbiBsdWMgdHJvbmcgbnVvYyANCmN1bmcgbmh1IG51b2MgbmdvYWkgZGF1IHR1 IHNhbiB4dWF0IGRpZW4sIG5oYXQgbGEgbmhpZXQgZGllbiwgaHV5IGRvbmcgbmd1b24gbmFuZyBs dW9uZyANCm1vaSBuaHUgZ2lvLCBuYW5nIGtoaSBuZ3VvbiBudW9jIGNobyBsYW0gdGh1eSBkaWVu IGtob25nIGNvIGRvaSBkYW8gdmEgdGh1YW4gbG9pIG51YS4gDQpEbyBsYSBkaWVtIG5naGVuIHZl IHZvbiwgY28gY2hlIHRhaSBjaGluaCwgcXVhbiBseSwgZ2lhaSBwaG9uZyBtYXQgYmFuZyBjaGFt IHRoaSBoaWVuIA0KY29uIGdhbiAxMCBkdSBhbiBjaHUgZGF1IHR1IGtob25nIHRodSB4ZXAgZHVv YyB2b24gdHUgY28gbWEgcGhhaSBzdSBkdW5nIHZvbiB2YXkgDQp0aHVvbmcgbWFpLiANCk5odW5n IG5nYW4gaGFuZyB0dSBjaG9pIGNobyB2YXkgaGF5IGNhIGNhYyBuaGEgbWF5IGRhbmcgeGF5IGR1 bmcgdGhpIHZpZWMgZ2lhaSBwaG9uZyANCm1hdCBiYW5nIGN1bmcgdGh1YyBoaWVuIGRhdSB0dSBj b24gdnVvbmcgbWFjLCBraG9uZyBjbyBkb24gZ2lhbiBjaHV0IG5hbywgZGFjIGJpZXQgZ2lhIA0K c2FuIHh1YXQgcmEgMUtXIGRpZW4gdHJ1bmcgYmluaCB0dSA3IGRlbiAxMiBjZW50IG5odW5nIGdp YSBiYW4gY2hpIGNvIDUtNiBjZW50LCBraG9uZyANCmJ1IGRhcCBkdW9jIGNoaSBwaGkgdGhpIGxh bSBzYW8gbm9pIGRlbiBjbyBsYWkuIFRodSBob2kgbmhhIGRhdSB0dSBuYW8gZGFtIGRhdSB0dSB2 YW8gDQpzYW4geHVhdCBkaWVuPy4gTmh1bmcgZ2lhaSBwaGFwIFRodSB0dW9uZyBkdWEgcmEgdG9p IHRoYXkgcGh1IGhvcCBuaHVuZyB0aHVjIGhpZW4gDQp0cm9uZyBjdW9jIHNvbmcga2hvbmcgcGhh aSBkb24gZ2lhbi4gDQoNClRvaSB4aW4gaG9pIFRodSB0dW9uZyBiYW8gZ2lvIENoaW5oIHBodSB0 cmluaCBRdW9jIGhvaSBzdWEgZG9pIEx1YXQgRGllbiBsdWM/IFRyb25nIA0Ka2hpIFF1b2MgaG9p IGNodWEgc3VhIGRvaSBMdWF0IERpZW4gbHVjIHRoaSBRSCBjYW4gdmFvIGN1b2MgZGUgY3VuZyBn aXVwIHRoYW8gbmh1bmcgDQpkaWVtIG5naGVuIGNobyBwaGF0IHRyaWVuIGRpZW4gbmFuZyB0cm9u ZyB0cnVvYyBtYXQgbGEgZ2k/IFkgdGh1IGhhaTogTGFtIHRoZSBuYW8gZGVuIA0KbmFtIDIwMTUg ZGFtIGJhbyBodXkgZG9uZyBkdW9jIDUwIG5nYW4gTVcgY29uZyBzdWF0IGRpZW4gcGh1YyB2dSBj aG8gbXVjIHRpZXUgDQpwaGF0IHRyaWVuIGtpbmggdGUgeGEgaG9pIGN1YSBkYXQgbnVvYyBtYSBo aWVuIG5heSBjaGkgaHV5IGRvbmcgZHVvYyAyMC45MDAgTVcuIA0KDQpDYXUgaG9pIDI6IFZlIGNo YXQgbHVvbmcgdmEgaGlldSBxdWEgdGFuZyB0cnVvbmcga2luaCB0ZSwga2hpIG1hIHR5IHRyb25n IGNvbmcgbmdoaWVwIA0KY2hpZW0gaG9uIDQwJSwgbm9uZyBuZ2hpZXAgY2hpZW0gMjElIEdEUCBu aHVuZyBkdW9jIGRhbmggZ2lhIGxhIHNhbiBwaGFtIGhhbmcgDQpob2EgY28gaGFtIGx1b25nIGNo YXQgY2hhdCB4YW0gdmEgZ2lhIHRyaSBnaWEgdGFuZyB0aGFwLiBWYXkgdGhpIGRvbmcgbmdoaWEg dm9pIGNvbmcgDQpuZ2hpZXAgY2hlIGJpZW4geHVhdCBraGF1LCBzYW4gcGhhbSB0aG8gdmEgbW90 IHNvIG1hdCBoYW5nIGNvbmcgbmdoaWVwIHR5IHRyb25nIHh1YXQga2hhdSBjb25nIG5naGllcCBj YW8gY2h1IHlldSBsYW0gZ2lhIGNvbmcgbGEgbW90IHRodWMgdGUuIA0KVGh1IHR1b25nIGRhIGR1 YSByYSBnaWFpIHBoYXAgdGh1YyBkYXkgcGhhdCB0cmllbiBraW5oIHRlLCB0cm9uZyBkbyBkYW5n IGx1dSB5IGRlbiB5ZXUgdG8gDQpraG9hIGhvYyBjb25nIG5naGUuIFZheSBUaHUgdHVvbmcgY28g bmdoaSBkZW4gdmllYyBkYXQgaGFuZyBjYWMgbmhhIGtob2EgaG9jIHRyb25nIA0KbnVvYywgbnVv YyBuZ29haSBkZSB0aHVjIGhpZW4gbW90IHNvIGxpbmggdnVjIGNhbiB0aGlldCwgY3UgdGhlIG5h byBraG9uZyBuaGFtIHRhbyBkbyANCnBoYXQgdGljaCBjdWMgZGUgbmdhbmggY29uZyBuZ2hpZXAg bm9pIHJpZW5nIHZhIGtpbmggdGUgbnVvYyB0YSBwaGF0IHRyaWVuIHRodWMgc3Ugb24gZGluaCAN CnZhIGhpZXUgcXVhIHRyb25nIGdpYWkgZG9hbiBkZW4gbmFtIDIwMTUgdmEgbmh1bmcgbmFtIHRp ZXAgdGhlbz8NCg0KLSBPbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZzogVG9pIHhpbiBkdW9j IHRyaW5oIGJheSB0aGUgbmF5LiBWZSBkaWVuLCBraGkgY2h1YW4gYmkgdG9pIA0KY3VuZyBzbyBk YWkgdmEgdG9uIHRob2kgZ2lhbiBjdWEgZGFpIGJpZXUgbmh1bmcgdG9pIHRoYXkgZGF5IGxhIHZh biBkZSByYXQgcXVhbiB0cm9uZyBuZW4gDQp0b2kgY28gZ2FuZyB4aW4gdm9pIGRhaSBiaWV1IFF1 b2MgaG9pIGR1b2MgdHJpbmggYmF5IHR1b25nIGRvaSBjbyBkYXUgY28gZHVvaSBtb3QgY2h1dDog DQpwaGF0IHRyaWVuIGRpZW4sIHJvaSB0aGlldSBkaWVuLCBuZ3V5ZW4gbmhhbiBjdWEgbm8gdmEg Y2h1IHRydW9uZyBzYXAgdG9pLCB0cnVvYyBtYXQgY3VuZyANCm5odSBsYXUgZGFpLg0KDQpWb2kg dGluaCB0aGFuIGxhIENoaW5oIHBodSBsYW0gaGV0IHN1YyBiYW5nIG1vaSBnaWFpIHBoYXAgZGUg ZGFtIGJhbyBkdSBkaWVuIGNobyBzdSANCnBoYXQgdHJpZW4gY3VhIGRhdCBudW9jLiBLaG9uZyBk dSBkaWVuIHRoaSBkdW5nIG5vaSB0YW5nIHRydW9uZyBiYW8gbmhpZXUgR0RQLCBkdW5nIA0Kbm9p IGNhaSBnaSBudWEuLg0KDQpDaHVuZyB0b2kgaGlldSB0aW5oIHRoYW4gZG8gdmEgaGV0IHN1YyBj byBnYW5nLiBWb2kgbmh1bmcgZ2lhaSBwaGFwIG1hIGNodW5nIHRvaSB0cmluaCANCmJheSBob20g bmF5IGNodW5nIHRvaSBjaG8gcmFuZyBuaHVuZyBnaWFpIHBoYXAgY28geSBuZ2hpYSB0b25nIGhv cCwgcmF0IG1vbmcgY2FjIHZpIERCUUgsIFFIIHVuZyBobyBkZSBjaHVuZyB0b2kgY28gdGhlIHRy aWVuIGtoYWkgdGh1YyBoaWVuIGNhYyBnaWFpIHBoYXAgbWEgY2h1bmcgdG9pIA0KdnVhIHRyaW5o IGJheS4gDQoNCkNvbiBsYW0gdGhlIG5hbyBkZSBkYXQgNTAgbmdhbiBNV20sIGxhbSB0aGUgbmFv IGR1b2MgYmluaCBxdWFuIDYgdHkgVVNEL25hbSwgDQpDaGluaCBwaHUgcmF0IHRyYW4gdHJvIHZh IHRpbmggdG9hbiBjYWNoIGxhbSwga2hpIGNhbiBkb25nIGNoaSBUaG9haSBjbyB0aGUgdGltIGhp ZXUgdm9pIA0KQm8gdHJ1b25nIENvbmcgdGh1b25nIHNlIHRyaW5oIGJheSB2b2kgZG9uZyBjaGku IERvbmcgY2hpIEhvYW5nIFRydW5nIEhhaSBzZSB0cmluaCANCmJheSB2b2kgZG9uZyBjaGkuDQoN CkRvbmcgY2hpIGNvIG5vaSBkYXQgaGFuZyBraG9hIGhvYywgZG9pIHZvaSBuaHVuZyBzYW4gcGhh bSBjbyB0aW5oIGNoYXQgY29uZyBuZ2hpZXAgY28gDQpoYW0gbHVvbmcga2hvYSBob2MgY2FvLiBU aHVhIHZvaSBEQiwgUUgsIENoaW5oIHBodSBkYSBjbyBjaHVvbmcgdHJpbmggbmF5LiBDaHVvbmcg DQp0cmluaCBwaGF0IHRyaWVuIGtob2EgaG9jIGNvbmcgbmdoZSwgY2h1b25nIHRyaW5oIHNhbiBw aGFtIHRyb25nIGRpZW0gcXVvYyBnaWEsIGx1YSANCmNob24gbW90IHNvIHNhbiBwaGFtIHRyb25n IGRpZW0gcXVvYyBnaWEsIHJvaSBkYXQgaGFuZywgZGF1IHRoYXUsIGx1YSBjaG9uIGRlIGNodW5n IHRhIHRhcCB0cnVuZyBwaGF0IHRyaWVuIGRlIGxhbSBzYW8gZ29wIHBoYW4gZHVhIG5oYW5oIHRp ZW4gYm8ga2hvYSBob2MgY29uZyBuZ2hlIHZhbyBzYW4gDQp4dWF0IGRlIG5hbmcgY2FvIG5hbmcg c3VhdCBjaGF0IGx1b25nLCBzdWMgY2FuaCB0cmFuaCBjdWEgc2FuIHBoYW0sIGN1YSBkb2FuaCBu Z2hpZXAgDQpjdW5nIG5odSBuZW4ga2luaCB0ZS4gDQoNClZhIGRheSwgbGluaCB2dWMgbmF5IGto b25nIGNoaSBsYSBOaGEgbnVvYyBwaGFpIGxhbS4gTmhhIG51b2MgdGFvIGNvIGNoZSBjaGluaCBz YWNoIGRlIA0KZG9hbmggbmdoaWVwLCBkZSBtb2kgdGhhbmggcGhhbiBraW5oIHRlLCBkZSBuZ3Vv aSBkYW4gcXVhbiB0YW0gdG9pIHVuZyBkdW5nIGtob2EgaG9jIA0KY29uZyBuZ2hlIGRlIHBoYXQg dHJpZW4gc2FuIHh1YXQsIG5hbmcgY2FvIGNoYXQgbHVvbmcgc2FuIHBoYW0sIG5hbmcgY2FvIGhp ZXUgcXVhIG5hbmcgDQpzdWF0LCBoaWV1IHF1YSBzdWMgY2FuaCB0cmFuaCBjdWEgc2FuIHBoYW0s IGN1YSBkb2FuaCBuZ2hpZXAsIGN1YSBjYSBuZW4ga2luaCB0ZS4NCg0KQ2h1YSB0aHUgeGVwIGR1 b2MgdmllYyB0aGFvIGx1YW4gdmUgUXV5IGhvYWNoIEhhIE5vaQ0KDQotIERCIENodSBTb24gSGEg KEhhIE5vaSk6IFRpZXAgdGhlbyBjYXUgaG9pIGN1YSBEQiBMZSBOaHUgVGllbiB0b2kgeGluIGhv aSB0aGVtIHZlIA0KcXV5IGhvYWNoLiBYaW4gaG9pIGRlbiBnaW8gcGh1dCBuYXkgVGh1IHR1b25n IGNvIGtlIGhvYWNoIHBoZSBkdXlldCBxdXkgaG9hY2ggY2h1bmcgDQpjYSBudW9jLCBjYWMgdnVu ZyBjaHVhLCBuaHUgdGhlIG5hbz8gUmllbmcgdm9pIEhhIE5vaSwgcXV5IGhvYWNoIEhOIGRhIGR1 b2MgbGF5IHkgDQpraWVuIERCUUgsIHZheSBiYW8gZ2lvIFRodSB0dW9uZyBtb2kgcGhlIGR1eWV0 Pw0KDQpUYWkga3kgaG9wIHRodSBuYW0sIGtoaSB0aWVwIHh1YyBjdSB0cmkgbyB0aGkgeGEgU29u IFRheSwgREIgTmd1eWVuIFZhbiBDaGkga2hpIGRvIGRhIA0KbmV1IHkga2llbiBidWMgeHVjIHZl IHZpZWMgY29uZyBuaGFuIGxpZXQgc2kgY2hvIG1vdCBsaWV0IHNpIG8gdGhpIHhhIFNvbiBUYXku DQoNCk5nYXkgMTgvNSwgZG9hbiBEQlFIIEhhIE5vaSBkYSBndWkgYmFvIGNhbyB0cmFuIHRyb25n IGRlIG5naGkgZ2lhaSBxdXlldCByb3QgcmFvIHRpbmggDQpoaW5oIHRyZW4uIFhpbiBUaHUgdHVv bmcgY2hvIHkga2llbj8NCg0KVGh1IGhhaSwgZ2FuIDgwJSBraGlldSBuYWkgbGllbiBxdWFuIEx1 YXQgZGF0IGRhaSwgbWEgdmllYyBzdWEgTHVhdCBEYXQgZGFpIHZhbiBjdSBiaSANCmx1aT8gVGh1 IHR1b25nIGNvIHkga2llbiBnaT8NCg0KVGh1IGJhLCB0cmFjaCBuaGllbSBwaGFuIGNvbmcgdHJv bmcgdG8gY2h1YyB0aHVjIGhpZW4gY2FjIHZhbiBiYW4gcGhhcCBsdWF0IGRlIHZhbiBiYW4gDQpk aSB2YW8gY3VvYyBzb25nIHRoZSBuYW8/IEJvaSBuaHUgcXVhIHRvIHRyaW5oIGN1YSBDaGluaCBw aHUgdmUgc3VhIEx1YXQgbHV1IHRydSwgY2h1bmcgDQp0b2kgdGhheSBwaGFwIGxlbmggZGEgYmFu IGhhbmggOSBuYW0gdmF5IG1hIHZhbiBkYW5nIHRvbiB0YWkgaGFpIGNvIHF1YW4gbHV1IHRydSBv IA0KVHJ1bmcgdW9uZy4NCg0KLSBPbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZzogVG9pIGRh IHRyaW5oIGJheSBuZ2FuIHZlIHF1eSBob2FjaC4gTW90IHRyb25nIGNhYyBjaHVjIA0KbmFuZyBx dWFuIGx5IG5oYSBudW9jIGxhIHhheSBkdW5nIHF1eSBob2FjaCwgcXVhbiBseSwgdmEgdGh1YyBo aWVuIHF1eSBob2FjaC4NCg0KVmllYyBuYXkgZHVvYyBDaGluaCBwaHUgcXVhbiB0YW0sIGRhIGRh bmcgdmEgdGllcCB0dWMgY2hpIGRhbyBkZSBsYW0gc2FvIGNvIHF1eSBob2FjaCANCnRvbmcgdGhl LCBxdXkgaG9hY2ggY2h1eWVuIG5nYW5oIHNhdCBob24gdm9pIHlldSBjYXUgY3VvYyBzb25nLiBD aHVuZyB0b2kgc2UgdGllcCB0dWMgDQpob2FuIHRoaWVuLiBWaSBjbyBxdXkgaG9hY2ggdG90IG1v aSBjbyBkYXUgdHUsIHBoYXQgdHJpZW4gdG90Lg0KDQpIb20gbmF5LCB0YXQgY2EgY2FjIG5nYW5o LCBkaWEgcGh1b25nIGRldSBjbyBxdXkgaG9hY2guIE5odW5nLCBkZSBwaHUgaG9wIHZvaSBjaGll biANCmx1b2MgcGhhdCB0cmllbiBraW5oIHRlIHhhIGhvaSAyMDExIC0gMjAyMCBtYSBDaGluaCBw aHUsIEJhbiBjYW4gc3UgRGFuZyBDaGluaCBwaHUgDQp0cmluaCB2YSBUcnVuZyB1b25nIGRhIHRo b25nIHF1YS4gS2hpIERIIFhJIHRob25nIHF1YSBzZSBjaGkgZGFvIHRodWMgaGllbi4gDQoNClRo dSB0dW9uZyBkYSBkb24gZG9jIGNhYyBuZ2FuaCwgZGlhIHBodW9uZyB0aWVuIGhhbmggZGFuaCBn aWEgdGluaCBoaW5oIG5nYW5oLCBkaWEgDQpwaHVvbmcgZGUgaG9hbiB0aGllbiBxdXkgaG9hY2gu IFZpZWMgbmF5IGRhbmcgZHVvYyBsYW0ga2hhbiB0cnVvbmcuDQoNClRodSBoYWksIHF1eSBob2Fj aCBIYSBOb2kgZHVvYyB4YXkgZHVuZyBkZSBwaHUgaG9wIGRpZXUga2llbiB0aHUgZG8gbW8gcm9u ZywgaG9wIA0KbmhhdCBIYSBOb2ksIEhhIFRheSwgY28gdGhlbSBNZSBMaW5oIC0gVmluaCBQaHVj Lg0KDQpDaGluaCBwaHUgZGEgbGFwIEJhbiBjaGkgZGFvIGRlIGN1bmcgSGEgTm9pIHhheSBkdW5n IHF1eSBob2FjaCwgdGFvIG1vaSBkaWV1IGtpZW4gDQp0aWVwIHRodSB5IGtpZW4gY2FjIHRhbmcg bG9wIG5oYW4gZGFuIGRlIGNvIG1vdCBxdXkgaG9hY2ggSE4geHVuZyB0YW0gdGh1IGRvIG1vdCBu dW9jIA0KVk4gY29uZyBuZ2hpZXAgaG9hLCBoaWVuIGRhaSBob2EuIExhIHRodSBkbyB2YSB0cnVu ZyB0YW0gY2hpbmggdHJpIHR1b25nIHh1bmcgbXVjIHRpZXUgDQpwaGF0IHRyaWVuIHZhIG1vbmcg bXVvbiwgeWV1IGNhdSBjdWEgY2h1bmcgdGEuDQoNCkhpZW4sIHRvaSBkdW9jIGJhbyBjYW8gbGEg SGEgTm9pLCBCbyB4YXkgZHVuZyBkYSB0aWVwIHRodSB5IGtpZW4sIGRhIHRyaW5oIHJhIENoaW5o IHBodS4gDQpUb2kgY2h1YSB0aHUgeGVwIGR1b2MsIG5lbiBzYXAgdG9pIHNlIHBoYWkgZHVhIHJh IENoaW5oIHBodSB0aGFvIGx1YW4uDQpDaHVuZyB0b2kgZGEgZGFuZyBreSBCbyBDaGluaCB0cmkg cm9pLCBuaHVuZyB4aW4gREJRSCB0aG9uZyBjYW0gbGEgdG9pIGNodWEgdGh1IHhlcCANCmR1b2Mg ZGUgZHVhIHJhIGJhbyBjYW8gdm9pIENoaW5oIHBodSwgY2h1bmcgdG9pIHNlIHRodSB4ZXAuDQoN ClZlIDEgbGlldCBzaSBvIFNvbiBUYXksIHRvaSBiaWV0IHZpIHF1YSBoYWkgbmhpZW0ga3kgbGFt IFBobyBUaHUgdHVvbmcuIERheSBsYSB2YW4gZGUgZGFpIA0KZGFuZyB0dSB0aG9pIG9uZyBEbyBN dW9pIGxhbSBjaHUgdGljaCBIb2kgZG9uZyBCbyB0cnVvbmcuIA0KRGF5IGN1bmcgbGEgdmFuIGRl IGJhbiBjYWkgbGF1IG5heSwgZGEgeWV1IGNhdSBjYWMgYm8gbmdhbmgsIFNvbiBUYXkgbmdoaWVu IGN1dSB0aW0gDQpoaWV1IGdpYWkgcXV5ZXQuIA0KQ3VvYyBjaGllbiBsdWkgcXVhIHhhLCBuaGll dSBuZ3VvaSBkYSBraG9uZyBjb24sIGNodW5nIHRvaSBkYW5nIGNoaSBkYW8gZGUgeGVtIHhldCBj byANCmx5LCBjbyB0aW5oLg0KVmUgdmllYyBkYW5nIGNvIGhhaSBjbyBxdWFuIGx1dSB0cnUgVHJ1 bmcgdW9uZywgY2h1bmcgdG9pIGN1bmcgY2hpIGRhbyBkZSB4ZW0geGV0Lg0KU3VhIEx1YXQgZGF0 IGRhaSBjaG8gcGh1IGhvcCBsYSB2YW4gZGUgbG9uLCBjaHVuZyB0b2kgZGFuZyB4ZW0geGV0LiBC byBUTiZNVCBjdW5nIA0KZGFuZyB0aGFvIGx1YW4gdmEgdG8gY2h1YyBuaGlldSBob2kgdGhhby4N Cg0KVmFuIGRlIG5hbyBraHVjIG1hYyBwaGFpIGdpYWkgcXV5ZXQsIHZhbiBkZSBuYW8gYmF0IGNh cC4gTmV1IHZhbiBkZSBuYW8gY28gbGllbiBxdWFuIA0KZGVuIEhpZW4gcGhhcCB0aGkgcGhhaSB4 ZW0geGV0IEhpZW4gcGhhcC4gVmllYyBzdWEgZG9pIGxhIGRlIGRhcCB1bmcgeWV1IGNhdSBjdW9j IHNvbmcgDQp2YSBnaWFpIHF1eWV0IG1vaSB2YW4gZGUgY3VhIGN1b2Mgc29uZy4gQ3VuZyBsYSBu b2kgZHVuZyBtYSBDaGluaCBwaHUgZGEgZGFuZyBreSB2b2kgDQpCbyBDaGluaCB0cmkgZGUgeGVt IHhldCBnaWFpIHF1eWV0Lg0KDQpLaG9uZyBreSBsdWF0IGN1bmcga2hvbmcgZHVvYyENCg0KLSBE QiBOZ3V5ZW4gVGhpIEJhY2ggTWFpIChUYXkgTmluaCk6IFRvaSByYXQgaG9hbiBuZ2hlbmggdmEg Y2hpYSBzZSB2b2kgcGhhbiBuaGFuIA0KdHJhY2ggbmhpZW0gdmUgaGFuIGNoZSwgeWV1IGtlbSBj dWEgQ1AsIHRoYW5oIHZpZW4gQ1AgdHJvbmcgdmllYyB0aHVjIGhpZW4gY2h1YyBuYW5nIA0KcXVh biBseSBuaGEgbnVvYywgcXVhbiBseSBjaHUgc28gaHV1IGRvaSB2b2kgZG9hbmggbmdoaWVwIG5o YSBudW9jLCBkYWMgYmlldCBsYSBjYWMgdGFwIA0KZG9hbiBraW5oIHRlLCB0b25nIGNvbmcgdHkg bmhhIG51b2MsIHRyb25nIHNhaSBwaGFtIG5naGllbSB0cm9uZyBjdWEgbGFuaCBkYW8gdGFwIGRv YW4gDQpWaW5hc2hpbiB2dWEgcXVhLiANCg0KVHJvbmcga3kgaG9wIHRodSA2IFFIIGtob2EgMTIs IHRyb25nIHBoYW4gdHJhIGxvaSBjaGF0IHZhbiB0YWkgaG9pIHRydW9uZywga2hpIHRyYSBsb2kg DQpEQlFIIHZlIHRyYWNoIG5oaWVtIFRodSB0dW9uZyB0cm9uZyBreSBsdWF0IGhhbmggY2hpbmgs IFRodSB0dW9uZyBkYSBwaGF0IGJpZXUsIA0KInRyb25nIGhvbiAzIG5hbSBxdWEgdG9pIGxhbSBU aHUgdHVvbmcgbmh1bmcgY2h1YSB4dSBseSBreSBsdWF0IGRvbmcgY2hpIG5hbyIuIFRodSANCnR1 b25nIG1vbmcgbXVvbiBibyBtYXkgY2hpbmggcXV5ZW4gY2FjIGNhcCBwaGFpIGxhbSBkdW5nIGNo dWMgbmFuZywgbmhpZW0gdnUsIHF1eWVuIGhhbiBkZSBraG9uZyBiaSBreSBsdWF0LCBraG9uZyBi aSB4dSBseSBwaGFwIGx1YXQuDQoNCkJhaSBob2MgdHUgc3UgYnVvbmcgbG9uZyBxdWFuIGx5IG5o YSBudW9jIHZvaSB0YXAgZG9hbiBWaW5hc2hpbiwgdHJvbmcgZG8gY28gdmllYyANCmtob25nIGNo YXAgaGFuaCBuZ2hpZW0gdHVjIGt5IGx1YXQgaGFuaCBjaGluaC4gQ2hhbmcgaGFuIFRodSB0dW9u ZyBraG9uZyBjaG8gbXVhIA0KdGF1IGN1LCBuaHVuZyBsYW5oIGRhbyB0aWVwIHR1YyBtdWEgdGF1 IGN1IGxhIHNhaSBwaGFtIG5naGllbSB0cm9uZyB0cm9uZyBreSBsdWF0IGhhbmggDQpjaGluaC4g DQoNCkxhIG5ndW9pIGR1bmcgZGF1IENQLCB0cm9uZyB0aG9pIGdpYW4gdG9pIFRodSB0dW9uZyBk YSBydXQga2luaCBuZ2hpZW0gZ2kgdmUgdmllYyANClZpbmFzaGluIGRlIHNpZXQgY2hhdCBreSBj dW9uZyBxdWFuIGx5IGhhbmggY2hpbmggbmhhIG51b2Mgdm9pIGJvIG1heS4NCg0KSGFpIGxhLCBV QiBnaWFtIHNhdCB0YWkgY2hpbmggcXVvYyBnaWEgZG8gVGh1IHR1b25nIHRoYW5oIGxhcCwgdmUg bmd1eWVuIHRhYyBVQiBuYXkgDQpraG9uZyBsYW0gdGhheSBuaGllbSB2dSBuaGEgbnVvYywgbWEg Y2hpIHBob2kgaG9wIHRodWMgaGllbiBjaHVjIG5hbmcgbmhpZW0gdnUgZHVvYyANCmdpYW8uDQpU cm9uZyBiYW8gY2FvIGdpYWkgdHJpbmggc2FuZyBuYXkgdmUga2llbSBjaGUgbGFtIHBoYXQgdmEg a2llbSBzb2F0IGdpYSBjYSwgVGh1IHR1b25nIA0KY28gbm9pIHBoYWkgdGFuZyBjdW9uZyBjb25n IHRhYyB0aG9uZyB0aW4sIHh1IGx5IG5naGllbSB2aWVjIGR1YSB0aG9uZyB0aW4ga2hvbmcgY2hp bmggDQp4YWMsIHRhbyBiYXQgb24gdHJlbiB0aGkgdHJ1b25nLg0KDQpOZ2F5IDQvMTEgbyBITiwg b25nIExlIER1YyBUaHV5LCBDaHUgdGljaCBVQiBHaWFtIHNhdCB0YWkgY2hpbmggcXVvYyBnaWEs IGNvIHF1YW4gY28gDQpjaHVjIG5hbmcgZ2lhbSBzYXQsIHR1IHZhbiBsYWkgZHVvYyBnaWFvIG5o aWVtIHZ1IGNvbmcgYm8gY2FjIHF1eSBkaW5oIHR5IGdpYSwgbGFpIHN1YXQuIA0KVmllYyBuYXkg bGUgcmEgcGhhaSBsYSB0cmFjaCBuaGllbSBwaGF0IG5nb24gY3VhIFRob25nIGRvYyBuZ2FuIGhh bmcgbmhhIG51b2MuDQoNClkga2llbiB0dXllbiBibyBjaHUgdHJ1b25nIGRlIGxhaSBzdWF0IHZh biBoYW5oIHRoZW8gY28gY2hlIHRoaSB0cnVvbmcsIG5vaSBjYWNoIGtoYWMgbGEgDQp0aGEgbm9p IGxhaSBzdWF0LiBUdXllbiBibyB0cmVuIGRhIGtoaWVuIGdpYSB2YW5nLCBkbyBsYSBraG9uZyBo YSBuaGlldCwgY28gYmlldSBoaWVuIGJhdCANCnRodW9uZywgbWFjIGR1IG5nYW4gaGFuZyBuaGEg bnVvYyBkYSBib20gbmdvYWkgdGUgdmEgY2hvIG5oYXAgdmFuZyBkZSBiaW5oIG9uIHRoaSANCnRy dW9uZy4NCg0KVm9pIHZhaSB0cm8gY3VhIFRodSB0dW9uZywgZGUgbmdoaSBUaHUgdHVvbmcgY28g eSBraWVuIHZlIHRpbmggaGluaCB0cmVuLCBkb2kgdm9pIG5odW5nIA0KcGhhdCBuZ29uLCB0aG9u ZyB0aW4gY2FuIGR1b2MgY29uZyBraGFpLCBjbyB0cmFjaCBuaGllbSB2ZSBuaHVuZyBjaGluaCBz YWNoIHZpIG1vLCANCmtob25nIG1hbmcgbGFpIGhpZXUgdW5nIHRpZXUgY3VjIHRyb25nIG11YyB0 aWV1IG9uIGRpbmggdGhpIHRydW9uZy4NCg0KQmEgbGEsIHRpZXAgdGhlbyB5IGtpZW4gY3VhIERC IFZ1IEhvYW5nIEhhIChCaW5oIERpbmgpLCB0cm9uZyBwaGllbiB0cmEgbG9pIGNoYXQgdmFuIGNh YyANCmJvIHRydW9uZyBoYXUgaGV0IGtob25nIHRoYXkgdHJhY2ggbmhpZW0gdHJvbmcgdmllYyBW aW5hc2hpbiwgY28gYm8gdHJ1b25nIGtoYW5nIGRpbmggDQpkYSBsYW0gaGV0IGNodWMgbmFuZyB0 cmFjaCBuaGllbSBkdW9jIGdpYW8sIGNvIG5ndW9pIGNobyByYW5nIGRheSBsYXN1IGtoaWVtIGto dXlldCANCnBoYXNwdCBsdWF0IGN1YSBRSC4NCg0KRGUgbmdoaSBUaHUgdHVvbmcgY2hvIGJpZXQg cXVhbiBkaWVtIGN1YSBtaW5oIHZlIHZpZWMgbmF5LCBkYWMgYmlldCBuZ3V5ZW4gbmhhbiANClZp bmFzaGluIGNvIHBoYWkgbG8gaG9uZyBjdWEgcGhhcCBsdWF0LCBoYXkgbGEgdGFjIHRyYWNoIHRy b25nIHF1YW4gbHkgbmhhIG51b2M/DQoNCi0gT25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmc6 IEtob25nIHBoYWkgVGh1IHR1b25nIGtob25nIGRhbSBreSBsdWF0IGFpLiBLaG9uZyBreSANCmx1 YXQgY3VuZyBraG9uZyBkdW9jLiBWaSB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQgdGhpIFRo dSB0dW9uZyBwaGFpIGhhbmggZG9uZyB0aGVvIA0KcXV5IGRpbmggY3VhIHBoYXAgbHVhdC4NClRv aSB0cmluaCBiYXkgY2hhdCB2YW4gdGFpIGt5IGhvcCBzYXUgbGEgbmh1IHZheSBuaHVuZyBjbyBs ZSBkaWVuIGRhdCBjaHVhIGRheSBkdS4gS2hpIA0KcGhhdCBoaWVuIHNhaSBwaGFtIHRoaSBsYW5o IGRhbyBwaGFpIGNvIGtpZW0gdHJhLiBLaG9uZyBjbyBraWVtIHRyYSBraG9uZyBjbyBxdWFuIGx5 Lg0KTWEga2hpIHBoYXQgaGllbiBzYWkgcGhhbSB0aGkgcGhhaSB4dSBseS4gTmh1bmcga2hvbmcg dGhlIHh1IGx5IHRoZW8geSBtdW9uIGNhIG5oYW4gDQpkdW9jIG1hIHBoYWkgdGhlbyBxdXkgZGlu aCBjdWEgcGhhcCBsdWF0LCBjdWEgRGFuZywgY28gbHkgY28gdGluaCB2YSBkdW5nIGJhbiBjaGF0 IHN1IA0KdmllYy4NClRodSB0dW9uZyBkYSBuaGFuIHRodWMgdmEgbGFtIG5odSB2YXksIGN1bmcg eWV1IGNhdSBjYWMgY2FwIGNoaW5oIHF1eWVuLCBoZSB0aG9uZyANCmhhbmggY2hpbmggbmhhIG51 b2MgdGh1YyBoaWVuLg0KQ29uIGRvaSB2b2kgVmluYXNoaW4sIGNvIG5odW5nIGxhbmggZGFvIGto b25nIGNoYXAgaGFuaCBxdXkgZGluaCBjdWEgRGFuZyB2YSBkYSBiaSANCnh1IGx5IHRoZW8gZHVu ZyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0LCBjdWEgRGFuZy4gVG9pIG5naGkgcmFuZyBuaHUgdmF5 IGxhIG5naGllbSANCm1pbmguDQpYaW4gdHJpbmggYmF5IGxhIGtob25nIHRoZSwgdm9pIG1vdCB2 dSB2aWVjIG1hIG1vaSBuZ2hlIG1vdCB0aG9uZyB0aW4gbWEgVGh1IHR1b25nIGRhIA0KcmEgcXV5 ZXQgZGluaCBreSBsdWF0IGR1b2MuIEx1YXQga2hvbmcgY2hvIHBoZXAgbGFtIG5odSB0aGUuDQpU aHUgdHVvbmcgZGEgbGFtIGR1bmcgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0LCBkdW5nIG5n aGkgcXV5ZXQgY3VhIERhbmcgdHJvbmcgZGUgDQpiYXQgaGF5IGJvIG5oaWVtIGhheSBraGVuIHRo dW9uZywgeHUgbHkgY2FuIGJvIHRoZW8gZHVuZyB0aGFtIHF1eWVuIGN1YSBtaW5oLg0KVmUgbG8g aG9uZyBjbyBjaGUsIGNodWEgZHUgY2hhdCBjaGUsIHJvaSBsdW5nIHR1bmcgdmkgbW8gaGluaCB0 YXAgZG9hbiBjaHVhIGNvIHRyb25nIA0KdGh1YyB0ZSBjdWEgbnVvYyB0YS4gSG9jIGtpbmggbmdo aWVtIGN1YSBjYWMgbnVvYyB0aGkgbW9pIG51b2MgY28gbW90IG1vIGhpbmgga2hhYyANCm5oYXUu IEN1b2Mgc29uZyBkYXQgcmEsIHZ1YSBsYW0gdnVhIHJ1dCBraW5oIG5naGllbS4gDQpRdWEgdnUg dmllYyBuYXksIHZ1YSBjbyBrZSBobyBjdWEgY28gY2hlLCB2dWEgY28gdHJhY2ggbmhpZW0gZGVu IGRhdSB0aGkgdG9pIGRhIHRyaW5oIA0KYmF5LiBNdWMgZG8gdG9pIGRhdSwgeHUgbHkgdGhlIG5h byB0aGkgc2UgY29uZyBraGFpLiANCg0KS2hvbmcgcGhhaSBUYXAgZG9hbiBob2F0IGRvbmcga2hv bmcgY28ga2h1bmcgcGhhcCBsdWF0DQoNCi0gREIgVHJhbiBEdSBMaWNoIChUUC5IQ00pOiBUb2kg Y28gaGFpIGNhdSBob2kuIENhdSBob2kgdGh1IG5oYXQgZ29tIGhhaSB5IGxpZW4gcXVhbiANCmRl biB0b2kgdGFtIGdvaSBsYSBuaHVuZyB2YW4gZGUgbGllbiBxdWFuIGRlbiBoYXUgVmluYXNoaW4u IENhdSBob2kgdGh1IGhhaSBsaWVuIHF1YW4gDQpkZW4gdmFuIGRlIGtpbmggdGUgdmkgbW8gbmhp ZXUgaG9uLg0KDQpWZSBjYXUgaG9pIHRodSBuaGF0LCB0YW0gZ29pIGxhIGhhdSBWaW5hc2hpbjog VHJ1b2MgaGV0IHRvaSBiYXkgdG8gZG9uZyB0aW5oIHVuZyBobyB2aWVjIA0KdGFpIGNhdSB0cnVj IFZpbmFzaGluLiBLaG9uZyBjbyBjb24gZHVvbmcgbmFvIGtoYWMuIE5vIGtob25nIGNoaSBnaWFp IHF1eWV0IGNobyB0YXAgDQpkb2FuIFZpbmFzaGluIG1hIG11YyB0aWV1IGxvbiBob24gbGEgdnVj IGRheSBuZ2FuaCBjb25nIG5naGllcCBkb25nIHRhdSBjdWEgVmlldCANCk5hbS4gVHV5IG5oaWVu LCB0dSBiYWkgaG9jIFZpbmFzaGluIFRodSB0dW9uZyBkYSB0cmluaCBiYXkgcm9pLiANClRhaSBi dW9pIHRoYW8gbHVhbiBraW5oIHRlIHhhIGhvaSwgdG9pIGNvIGRlIG5naGkgZ2lhaSBwaGFwIHRy dW9jIG1hdCBjbyB0aGUgbGFtIG5nYXkgZHVvYyANCmRvIGxhIFRodSB0dW9uZyBjbyBxdXllbiBo YW4gY3VhIG1pbmgsIGNvIHRoZSBiYXQgYnVvYyBjYWMgVGFwIGRvYW4sIHRvbmcgY29uZyB0eSBO aGEgDQpudW9jIGxvbiBwaGFpIGNvbmcgYm8gdGhvbmcgdGluIG5odSBsYSBuaHVuZyBkb2FuaCBu Z2hpZXAgY3VhIGtodSB2dWMgdHUgbmhhbiBuaWVtIA0KeWV0IHRyZW4gdGhpIHRydW9uZyBjaHVu ZyBraG9hbiwgcGhhaSBjb25nIGJvLCBkZSB0YW8gY29uZyBjdSBjaG8gbmd1b2kgZGFuIGdpYW0g c2F0LiANCg0KVGh1YSBUaHUgdHVvbmcsIGhpZW4gbmF5IHZpIGtob25nIGNvbmcgYm8gbmh1IHZh eSwgbW90IHNvIFRhcCBkb2FuLCB0b25nIGNvbmcgdHkgTmhhIA0KbnVvYyBoaWVuIG5heSBuaHUg c2FuZyBuYXkgdHJpbmggYmF5IGxhIG5odW5nIHRob25nIHRpbiB4aSB4YW8gdmUgdmFuIGRlIGRh dSB0dS4gR2lhIG5odSANCmNodW5nIHRhIGNvbmcgYm8gY29uZyBraGFpIG5odSB0aGkgdHJ1b25n IGNodW5nIGtob2FuIHRoaSBzZSBraG9uZyBjbyB4aSB4YW8sIG1pbmggDQpiYWNoLiANCg0KSG9p IG5heSBUaHUgdHVvbmcgY28gbmV1IHZhbiBkZSBzZSBjb25nIGJvIG5odW5nIHRvaSBtdW9uIG5v aSBxdWFuIGRpZW0ga2hhbmcgZGluaCANCnBoYWkgY29uZyBibyBuaHVuZyBkaWV1IGtpZW4gbmh1 IGxhIG5odW5nIGRvYW5oIG5naGllcCwgYm9pIHZpIGRheSBsYSBuaGllbSB2dSBuaWVtIA0KeWV0 IHRoaSB0cnVvbmcgY2h1bmcga2hvYW4gdmkgZGF5IGxhIGRvYW5oIG5naGllcCB0aHVvYyBraHUg dnVjIGNvbmcuIEtodSB2dWMgY29uZyB0aGkgDQptYW5nIHRpbmggY29uZyBjb25nLiBEZSBuZ2hp IFRodSB0dW9uZyBraGFuZyBkaW5oIHZhbiBkZSBuYXk/DQoNCkhhaSBsYSB2ZSBjbyBjaGUsIHRy YWNoIG5oaWVtIGhheSBsbyBob25nIHBoYXAgbHVhdCwgY2hpZXUgcXVhLCB0YWkgaG9pIHRydW9u ZyBuYXkgY3VuZyANCmNodWEgcm8uIENhYyBjbyBxdWFuLCBjYWMgYm8gY28gbGllbiBxdWFuIHRy YWNoIG5oaWVtIGhheSBraG9uZyBjb24gdHJhbmggbHVhbi4gU2FuZyANCm5heSB0b2kgcmF0IGhv YW4gbmdoZW5oLiBUaHUgdHVvbmcgeGFjIG5oYW4gdm9pIHkgY2hpIHRyYWNoIG5oaWVtIGNhbyBu aGF0IGN1YSBUaHUgDQp0dW9uZyB2YSBjYWMgYm8gbGllbiBxdWFuIHZlIHRyYWNoIG5oaWVtLiBO aHVuZyBoaW5oIG5odSBjYW0gdGhheSBkYXkgY28gbW90IGNhaSBnaSBkbyANCmNodWEgb24gZ2l1 YSBxdXllbiBjdWEgY2FjIGJvIGRvaSB2b2kgbmh1bmcgZG9hbmggbmdoaWVwIE5oYSBudW9jLCBr ZSBjYSBkb2FuaCANCm5naGllcCB0cnVjIHRodW9jIENoaW5oIHBodSwgVGh1IHR1b25nIHZhIHRy YWNoIG5oaWVtIG5ldSB4YXkgcmEgdnUgdmllYy4NCg0KVmEgVGh1IHR1b25nIGtoYW5nIGRpbmgg bGEgc29tIGNvIGx1YXQgcXVhbiBseSB2b24ga2luaCBkb2FuaCBOaGEgbnVvYy4gVHV5IG5oaWVu LCANCnRyb25nIGx1YyBjaG8gbHVhdCBkbyBtYSBRdW9jIGhvaSB2YSBiYW4gdGhhbiB0b2kgZGUg bmdoaSB0dSBkYXUgbmhpZW0ga3kgbmh1bmcgdmkgDQpuaGlldSBseSBkbyBuaGllbSBreSBuYXkg Y2h1YSBsYW0gZHVvYywgIHRvaSBkZSBuZ2hpLCBiYXkgZ2lvLCAxLzcgbmFtIG5heSBMdWF0IERv YW5oIA0KbmdoaWVwIE5oYSBudW9jIGhldCBoaWV1IGx1YyByb2ksIGNvbiBsdWF0IERvYW5oIG5n aGllcCBjaHVuZyB0aGkga2hvbmcgZGlldSBjaGluaCwgDQptb2kgcXVhbiBoZSBnaXVhIGNodSBz byBodXUgdm9pIG5ndW9pIHF1YW4gbHksIHR1YyBIb2kgZG9uZyBxdWFuIHRyaSwgdHVjIGxhIGdp dWEgTmhhIA0KbnVvYyB2b2kgSG9pIGRvbmcgcXVhbiB0cmkuIEJheSBnaW8gVGh1IHR1b25nIHhl bSBjaHVuZyB0YSBiYW4gbmh1bmcgdmFuIGJhbiBxdXkgDQpkaW5oIGdpIG1hIGJlbiB0cmVuIGto b25nIGNvIGx1YXQgaGF5IGJlbiBkdW9pIGNhaSBnaSBtb3QgZ2lhaSBwaGFwIGRlIGNodW5nIHRh IGJhbi4NCg0KVnVhIHJvaSwgVGh1IHR1b25nIGNvIGRlIG5naGkgdmFuIGRlIGxpZW4gcXVhbiwg eSBraWVuIGxpZW4gcXVhbiBsYXAgQm8gaGF5IG5nYW5nIGJvIGRlIA0KcXVhbiBseSB2b2kgdHUg Y2FjaCBjaHUgcXVhbi4gUXVhbiBkaWVtIGN1YSB0b2kgbGEgY2FuIHRoaWV0IGRlIHRhdCBjYSBr aG9uZyBjb24gbW90IGJvIA0KbmFvIGxpZW4gcXVhbiBjaHV5ZW4gdnVhIGhhaSBjaGFuLCB0dWMg dnVhIHF1YW4gbHkgTmhhIG51b2MsIHZ1YSBkYWkgZGllbiBjaHUgc28gaHV1LiANClRvaSBkZSBu Z2hpIFRodSB0dW9uZyBsYW0gcm8gdmFuIGRlIG5heSBob24uIA0KDQpSaWVuZyB0YWkgY2F1IHRy dWMgVmluYXNoaW4gbGEgY2FuIHRoaWV0LCBkYW5nIGx5IGNhaSBuYXkgaG9pIFBobyBUaHUgdHVv bmcgTmd1eWVuIFNpbmggDQpIdW5nIHRoaSB0b3QgaG9uLiBIaWVuIG5heSBsbyBsYW5nIG8gY2hv IG5heSwgdmFuIGRlIGNodXllbiBtb3Qgc28gZHUgYW4sIHNvIG5vLCBtb3Qgc28gDQpkdSBhbiBj aG8gMiBkb24gdmkgY2hvIFBldHJvIFZpZXRuYW0gdmEgVmluYWxpbmVzIGxhIGNhbiB0aGlldC4g DQoNClZpZWMgbXVhIGxhaSBkb2FuaCBuZ2hpZXAsIG11YSBsYWkgbm8gZGUgdGFpIGNhdSB0cnVj IGxhbSBsYWkgdGhpIGRvIGxhIHZhbiBkZSBiaW5oIHRodW9uZyANCmN1YSBuZW4ga2luaCB0ZSB0 aGkgdHJ1b25nLiBNb3QgZHUgYW4gY28gdGhlIGRvYW5oIG5naGllcCBuYXkgbGFtIGtob25nIGxv aSwgZG9hbmggDQpuZ2hpZXAga2hhYyBjbyB0aGUgY28gbG9pLiANCg0KUmllbmcgVmluYXNoaW4g dm9pIFZpbmFsaW5lcyBjbyB5IGtpZW4gZGUgbmdoaSBUaHUgdHVvbmcgbm9pIHJvIGhvbiwgY28g ZHUgYW4gbmFvIG5vIA0KcXVhIHhhdSBtYSBjaHV5ZW4gcXVhIGJlbiBraWEgdGhpIGxhaSBsYW0g eGF1IGhvbiBraG9uZywgZGUgY2hvIG5ndW9pIHRhIHllbiB0YW0gcmFuZyANCnZpZWMgY2h1eWVu IGRvIGxhIGNhbiB0aGlldCB2YSBraG9uZyBtYW5nIHhhdSBob24gY2hvIGRvYW5oIG5naGllcC4N Cg0KVmFuIGRlIHRodSBoYWkgbGllbiBxdWFuIGRlbiB2YW4gZGUgdmkgbW8uIEhvbSBkYXUgdGll biB0b2kgY28gY2hhdCB2YW4gQm8gdHJ1b25nIENvbmcgDQp0aHVvbmcgbGllbiBxdWFuIGNvbmcg bmdoaWVwIHBodSB0cm8gdmEgZGEgbmdoZSB5IGtpZW4gQm8gdHJ1b25nLiBOaHVuZyB2YW4gZGUg dG9pIA0KcXVhbiB0YW0gbGEsIFRodSB0dW9uZyBkYSBnaWFvIGNobyBCbyBDb25nIHRodW9uZyBz b2FuIHRoYW8gTmdoaSBkaW5oIGxpZW4gcXVhbiBkZW4gDQp2YW4gZGUgY29uZyBuZ2hpZXAgcGh1 IHRybywgY2FpIGdvYyB2YW4gZGUgZGUgcGhhdCB0cmllbiBuaHVuZyB0b2kgbmF5IGtob25nIGJp ZXQgbHkgZG8gDQpnaSBjaHVhIGJhbiBoYW5oIGR1b2MuIA0KDQpEZSBwaGF0IHRyaWVuIGNvbmcg bmdoaWVwIHBodSB0cm8sIHRvaSBuZ2hpIG1vdCBOZ2hpIGRpbmggY2h1YSBkdSB2aSBubyBsaWVu IHF1YW4gY2hpbmggDQpzYWNoIHRodWUsIGNoaW5oIHNhY2ggZGF1IHR1IGNvbmcuLi4gUGhhaSBj aGFuZyBubyBsZW4gY2FpIHRhbSBsb24gaG9uLiBLaG9uZyBiaWV0IGhpZW4gDQpuYXkgQ2hpbmgg cGh1IGNodWFuIGJpIHZhbiBkZSB0aGUgbmFvPyBEYXkgbGEgdmFuIGRlIHJhdCBjYW4gY28gZGUg Y2h1eWVuIHNhbiB4dWF0LCB0dSANCmdpYSBjb25nIHNhbiB4dWF0IHZhIGdpYWkgcXV5ZXQgdmFu IGRlIHJhdCBjbyBiYW4gZG8gbGEgY2hvbmcgdHUgZ29jIHZhbiBkZSBuaGFwIHNpZXUuIA0KDQpW aWVjIGNodWFuIGJpIHRoZSBuYW8/IFZhIENoaW5oIHBodSBjbyBkdSBraWVuIGtlIGNhIHRyaW5o IFF1b2MgaG9pIG5odW5nIGxpZW4gcXVhbiANCmRlbiBsdWF0IHRodWUsIGRhdSB0dSBjb25nIG5o dSB0aGUgbmFvIGRlIHBoYXQgdHJpZW4gY29uZyBuZ2hpZXAgcGh1IHRybz8gWGluIGNhbSBvbiAN ClRodSB0dW9uZy4gDQoNCi0gT25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmc6IER1bmcgbGEg Y2h1bmcgdG9pIHNlIHRyaW5oIFF1b2MgaG9pIEx1YXQuIENodW5nIHRvaSBkYSANCm5naGkgdG9p IGRpZXUgZG8sIGx1YXQgdmUgdG8gY2h1YyB0aHVjIGhpZW4gcXV5ZW4gY2h1IHNvIGh1dS4gTmh1 bmcgaGllbiBuYXkgbmh1IHRoZSBsYSANCmtob25nIHBoYWkgVGFwIGRvYW4ga2luaCB0ZSB2YSBj YWMgVG9uZyBjb25nIHR5IG5oYSBudW9jIGhvYXQgZG9uZyBraG9uZyBjbyBoZSB0aG9uZywgDQpr aHVvbiBraG8gcGhhcCBsdWF0LCBkbyBsYSBuaHVuZyBuZ2hpIGRpbmguIA0KVHJvbmcga2hpIG1v IGhpbmggbW9pIGNodW5nIHRhIHZ1YSBsYW0sIGRheSBsYSB0aGkgZGllbSwgdnVhIGxhbSB2dWEg cnV0IGtpbmggbmdoaWVtIA0KY3VuZyBkYSBjbyBuZ2hpIGRpbmguIA0KDQpOZ2hpIGRpbmggdG8g Y2h1YyBxdXllbiBjaHUgc28gaHV1IGRhIGJvIHN1bmcsIHN1YSBkb2kgMi0zIGxhbiByb2kuIE1v aSBkYXkgY2h1bmcgdG9pIA0KYmFuIGhhbmggTmdoaSBkaW5oIHF1YW4gbHkgdGhpIGRpZW0gY2Fj IHRhcCBkb2FuIGtpbmggdGUuDQoNClF1YSB0cmluaCB0dSB0aHVjIHRpZW4gbmh1IHRoZSBob2Fu IHRoaWVuIGRhbiB2YSBjaHVuZyB0b2kgY3VuZyBzZSBjbyBnYW5nIGxhIG5hbmcgY2FvIA0KaGll dSBsdWMgY3VhIGtodW9uIGtobyBwaGFwIGx5IG5heSBiYW5nIGx1YXQgZGUgcm9pIGxhbSBzYW8g Y2h1bmcgdGEgcXVhbiBseSBubyB0b3QgaG9uLCANCmNoYXQgY2hlIGhvbiBuaHVuZyB2dWEgYmFv IGRhbSwgdGFvIGRpZXUga2llbiBjaG8gY2FjIFRhcCBkb2FuLCBjYWMgVG9uZyBjb25nIHR5IE5o YSANCm51b2MgbmF5IG5hbmcgZG9uZywgc2FuZyB0YW8sIGxhbSBhbiBoaWV1IHF1YSB0cm9uZyBj byBjaGUgdGhpIHRydW9uZywgdHJvbmcgZGlldSBraWVuIA0KaG9pIG5oYXAga2luaCB0ZSBxdW9j IHRlLg0KDQpWZSB2aWVjIHRyb25nIGNodXllbiB0YWkgc2FuIHNhbmcgVmluYWxpbmVzIGNvIGNh aSBuYW8geGF1IGtob25nLCBuaHUgdG9pIHZ1YSB0cmluaCBiYXksIA0KdHJvbmcgc28gdG9uZyBn aWEgdHJpIHRhaSBzYW4gbGEgbmh1IHRoZSwgdHVuZyBtb24gdGFpIHNhbiBjdW5nIGNvIHRoZSBt b24gbmF5IG5vIGNhbyBob24sIA0KbW9uIG5heSBubyBiYW5nIHZvaSBnaWEgdHJpIHRyZW4gc28g c2FjaCwgbW9uIGtoYWMgbm8gdGhhcCBob24sIHRodWMgdGUgbm8gc2UgY28gbmh1IHRoZSwgbmh1 bmcgbm8gbGFtIG8gZGF1LCBjYW8sIHRoYXAgdGhlIG5hbyB0aGkgZGFuZyBsYW0gdmllYyBkYW5o IGdpYSBsYWkgbmF5LCB0cm9uZyB0cmluaCBiYXkgDQp0b2kgY3VuZyBkYSBuZXUgZGlldSBkby4N Cg0KVGhpIGR1IG5odSBoYWkgbXVvaSBtYXkgY29uIHRhdSBtYSBnaWFvIGNobyBWaW5hbGluZXMg dGhpIGN1bmcgY28gdGhlIGNvIHRhdSBkbyBsYSBnaWEgDQp0cmkgc28gdHJlbiBzbyBzYWNoIHRo YXAgaG9uLCBuaHVuZyBjbyB0aGUgY28gdGF1IG5hbyBkbyBsYSBnaWEgdHJpIGNhbyBob24uIFRv aSBtb2kgbmdoZSANCkJvIHRydW9uZyBub2kgbGEgdHJvbmcgc28gdGF1IGNodXllbiBzYW5nIHRh dCBjYSBsYSBob24gaGFpIG11b2kgY29uIHRhdSwgY29uIDMgY2FpIG51YSwgDQpkYW5nIGhvYXQg ZG9uZywgY28gY2FpIG5ndW9pIHRhIGRhdCBtdWEgZ2lhIGNhbyBob24gbWF5IHRyaWV1IGRhIGRv bmcgeSBiYW4sIGxvaSBtYXkgDQp0cmlldSBkb2xhLiANCg0KQmFuIGNoaSBkYW8sIEhvaSBkb25n IHF1YW4gdHJpIHNlIHRpZXAgdHVjIGNoaSBkYW8gdm9pIHRpbmggdGhhbiBraGFpIHRoYWMgdG9p IGRhIGhpZXUgcXVhIA0Kbmh1bmcgdGFpIHNhbiwgY28gc28gdmF0IGNoYXQgZGEgY28sIGhhbiBj aGUgdGhhcCBuaGF0IHRoaWV0IGhhaSB2YSB0aHUgaG9pIGR1b2Mgdm9uIHRyYSBuby4gDQpUb2kg eGluIHRyaW5oIGJheSB0aGVtIG5odSB2YXkgdmkgdG9pIGtob25nIG5hbSBjdSB0aGUgZHVvYyBu aHUgY2FjIEJvIHRydW9uZyBwaHUgDQp0cmFjaC4NClZlIE5naGkgZGluaCB2ZSBjb25nIG5naGll cCBwaHUgdHJvOiBQaGF0IHRyaWVuIGNvbmcgbmdoaWVwIHBodSB0cm8gZGUgY29uZyBuZ2hpZXAg aG9hIA0KLSBoaWVuIGRhaSBob2EsIG5hbmcgY2FvIGhpZXUgcXVhIHN1YyBjYW5oIHRyYW5oIGN1 YSBuZW4ga2luaCB0ZSBsYSBtb3QgY2h1IHRydW9uZyByYXQgDQpxdXlldCB0YW0gY3VhIGRhdCBu dW9jIHRhLCBjdWEgQ2hpbmggcGh1LiANCk5nYXkgc2F1IGtoaSB0b2kgbmhhbiBuaGllbSB2dSBU aHUgdHVvbmcgQ2hpbmggcGh1LCB0b2kgZGEgZGVuIEJvIENvbmcgbmdoaWVwIGR1IGhvaSANCm5n aGkgdmEgZGEgbmV1IHZhbiBkZSBuYXksIGdpbyBjYWMgZG9uZyBjaGkgY3Ugbm9pIGxhIGNvbmcg bmdoaWVwIHBodSB0cm8gbmh1bmcgdGhlIGNoZSwgDQpjbyBjaGUgZGUgY2hvIHBoYXQgdHJpZW4g bGEgZ2ksIHBoYWkgdW5nIGhvIG5odSB0aGUgbmFvLCBwaGFpIHV1IGRhaSBuaHUgdGhlIG5hbz8g VG9pIGdpYW8gDQpjaG8gQm8gQ29uZyBuZ2hpZXAgY2h1IHRyaSBzb2FuIHRoYW8sIHRydW9jIGhl dCBsYW0gTmdoaSBkaW5oLCBLaGkgTmdoaSBkaW5oIGNodWEgeHUgDQpseSBkdW9jLCBsdWMgZG8g Y2h1bmcgdGEga2llbiBuZ2hpIHN1YSBsdWF0IGhheSBsYW0gZ2kgZG8uIA0KDQpCbyBjdW5nIHRp Y2ggY3VjIHNvYW4gdGhhbywgZGkgdGhhbSBraGFvIG8gSGFuIFF1b2MsIGRpIHRoYW0ga2hhbyBv IE5oYXQgQmFuIG5odW5nIA0KZGVuIG5heSB5IGtpZW4gY3VuZyBjb24ga2hhYyBuaGF1IGNodWEg YmFuIGhhbmggZHVvYy4gVG9pIGN1bmcgZGFuZyB0aHVjIGdpdWMgdmllYyANCm5heS4NClRvaSBj dW5nIHJhdCBzb3QgcnVvdCBuaHUgYW5oIER1IExpY2gsIHBoYWkgY28gaGFuaCBsYW5nIHBoYXAg bHkgZGUgbGFtIHNhbyB0YW8gdGh1YW4gbG9pIA0KdGh1YyBkYXkgY29uZyBuZ2hpZXAgcGh1IHRy byBwaGF0IHRyaWVuLg0KDQpMdWMgMTFoLCBPbmcgVGh1IHR1b25nIGtldCB0aHVjIHBoaWVuIHRy YSBsb2kgY2hhdCB2YW4gdHJ1YyB0aWVwIHRhaSBIb2kgdHJ1b25nLiAzMCBwaHV0IGN1b2kgDQpw aGllbiBjaGF0IHZhbiBsYSBwaGFuIHRvbmcga2V0IGN1YSBDaHUgdGljaCBRdW9jIGhvaSBOZ3V5 ZW4gUGh1IFRyb25nIHZlIGhhaSBuZ2F5IA0KcnVvaSBjaGF0IHZhbi4NCg0KLSBPbmcgVGh1IHR1 b25nIE5ndXllbiBUYW4gRHVuZyB0b25nIGtldDogVG9pIGR1b2MgZ2lhbyBuaGllbSB2dSBsYW0g VGh1IHR1b25nIENoaW5oIA0KcGh1LCB0b2kgZGEgbGFtIGhldCBzdWMgbWluaCB0aGVvIEhpZW4g cGhhcCwgcGhhcCBsdWF0LCB2aSBkYXQgbnVvYywgdmkgbmhhbiBkYW4uDQpCZW4gY2FuaCB0aGFu aCBjb25nLCBrZXQgcXVhLCBsYW0gZHVvYywgY2h1bmcgdG9pIG5naGllbSB0dWMgbmhpbiBuaGFu IGNvbiBuaGlldSB2aWVjLCANCm5oaWV1IGxhbiwgbmhpZXUgeWV1IGtlbSBjaHVhIGxhbSBkdW9j LCBsYW0gY2h1YSB0b3QuDQpMdWMgbmFvIGNodW5nIHRvaSBjdW5nIG5oaW4gbmhhbiB5ZXUga2Vt IGN1YSBtaW5oIGRlIHRodWMgaGllbiBjaHVjIHRyYWNoIGN1YSBtaW5oIA0KdG90IGhvbi4gQ2h1 bmcgdG9pIGhvYW4gbmdlbmggdmEgdHJhbiB0cm9uZyBsYW5nIG5naGUgbmh1bmcgZ29wIHkgY2hh biB0aW5oLCB0cmFjaCANCm5oaWVtIGN1YSBkb25nIGJhbywgZG9uZyBjaGkuDQpSYXQgbW9uZyBk dW9jIERCUUggdmEgbmhhbiBkYW4gdGllcCB0dWMgY2hpYSBzZSBkZSBnYW5oIGNoaXUgdHJhY2gg bmhpZW0uIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDAyMDM4OTE1MzI5L21vX3hlX2NhdV9j aHV5ZW5fdmluYXNoaW5fdmlfc2FvX3ZpbmFzaGluX2hheV9tdWFfdGF1X2N1Lmh0bWwgRGFpIGRv YW4ga2V0IChUaGVvIGJhb2Nvbmd0aHVvbmcuY29tLnZuKSAyMy8xMS8yMDEwLCAwNzozMiBQTSAN CiANCk1vIHhlICJjYXUgY2h1eWVuIiBWaW5hc2hpbiAtIFZpIHNhbyBWaW5hc2hpbiBoYXkgbXVh IHRhdSBjdT8gDQoNCkRpZXUga2hvIGx5IGdpYWk6IFRhaSBzYW8gdHJvbmcga2hpIGhhbmcgbG9h dCB0YXUgZG9uZyBtb2kga2hvbmcgYmFuIGR1b2MsIGhvYWMgY2hpIA0KY2hheSBtb3QgdmFpIGNo dXllbiByb2kgZGFwIGNoaWV1LCB0aGkgVmluYXNoaW4gbGFpIGxpZW4gdHVjICJjb25nIiBoYW5n IG51aSB0aWVuIHJhIG51b2MgDQpuZ29haSBkZSBtdWEgaGFuZyBsb2F0IG5odW5nIGNvbiB0YXUg bmF0LCBtYSBsYWkgbXVhIHZvaSBnaWEgY2FvIHZvaSB2b2k/IA0KICANClRoZW8gbW90IHNvIGNo dXllbiBnaWEgc2FuaCBzb2kgdmUgaGFuZyBoYWkgdmEgbW9pIGdpb2kgdGF1IGJpZW46IFZvaSBu dW9jIG5nb2FpLCAgdGF1IA0KbW9pIGRvbmcgbHVvbiBybyByYW5nIG1vdCBtdWMgZ2lhIG5oYXQg ZGluaCwga2hpIG11YSBraG9uZyB0aGUgbmFuZyBnaWEgZHVvYy4gQ29uIGNhYyANCmxvYWkgdGF1 IGN1IHRoaSBnaWEgY2Egdm8gY2h1bmcsIGNodSB0YXUgY2hpIGNhbiBzbyB0aWVuIG1pbmggY2Fu IGJhbiwgbmd1b2kgbXVhIG11b24gDQpuYW5nIGxlbiBiYW8gbmhpZXUgdGhpLi4uIHR1eSEgVGhv bmcgdGh1b25nLCBraG9hbiBjaGVuaCBsZWNoIG5heSBzYXUgZG8gbmd1b2kgYmFuIHZhIA0KbW9p IGdpb2kgdGF1IHRoYW5oIHRvYW4gbGFpIGNobyBuZ3VvaSBtdWEgdGFpIG1vdCBkaWEgZGllbSB0 cnVuZyBnaWFuLiANCg0KUGhhaSBjaGFuZyBjaGluaCB2aSBkaWV1IG5heSBuZW4gVmluYXNoaW4g Y2hpIHRoaWNoIG11YSB2ZSB0b2FuIG5odW5nIGNvbiB0YXUgY3UgbmF0PyANCg0KQ2hpIGJpZXQg cmFuZywgdGh1YyB0ZSBvbmcgVHJhbiBWYW4gTGllbSBraGkgY29uIGxhIFRvbmcgZ2lhbSBkb2Mg Q29uZyB0eSB2YW4gdGFpIHZpZW4gDQpkdW9uZyBWaW5hc2hpbiwgZGEgY3VuZyB2b2kgR2lhbmcg S2ltIERhdCAoVHJ1b25nIHBob25nIGtoYWkgdGhhYykgbGllbiB0dWMgcmEgbnVvYyANCm5nb2Fp IG11YSAxMCBjb24gdGF1IGJpZW4gY3UgdmEgMSBwaGEgYmllbiBIb2EgU2VuIGRheSB0YWkgdGll bmcuIEhpZW4gZGFuZyBjbyBkdSBsdWFuIA0KdHJvbmcgbm9pIGJvIFZpbmFzaGluIHJhbmc6IEdp YW5nIEtpbSBEYXQgZGEgbGFwIG1vdCBjb25nIHR5IHRhaSBTaW5nYXBvcmUuIFZhIGRhdSBob2kg DQp2ZSBjYWMga2hvYW4gY2hpYSBsb2ksIG11YSB0YXUsIHRodWUgdGF1Li4uIHBoYWkgY2hhbmcg ZGEgdGhvbmcgcXVhIGRpZW0gdHJ1bmcgZ2lhbiBuYXk/IA0KDQpEYXUgaGlldSBraHVhdCB0YXQg dHJvbmcgdmllYyBtdWEgdmEgc3VhIGNodWEsIG5hbmcgY2FwIGNvbiB0YXUgSG9hIFNlbiBkYXkg dGFpIHRpZW5nIA0KbWEgYmFvIGNoaSBuaGFjIGRlbiBuaGlldSBsYW4gbGEgbW90IGRpZW4gaGlu aC4gSG9hIFNlbiB0aHVjIGNoYXQgY2hpIGxhIG1vdCBjaGllYyBwaGEgDQpjaGF5IGJpZW4gdm9p IHRoaWV0IGtlIGdhbiAyMCBwaG9uZyBjbyBnaXVvbmcgbmd1LCBraG9uZyBjbyBuaGEgdmUgc2lu aCB0cm9uZyBwaG9uZyANCih0cnUgY2FjIHBob25nIHRodXkgdGh1IGRvYW4pLCBnYW4gNDAwIGdo ZSBuZ29pLCAxIGNhbmcgdGluIGJhbiB0aHVjIGFuIG5oYW5oIHZhIGdpYWkgDQpraGF0LCAyIHNh biBjaHVhIHRvbmcgY29uZyAxMjAgY2hpZWMgeGUgdGFpLiBWYXkgbmh1bmcgbmdheSBraGkgbXVh IHZlLCBvbmcgTGllbSBjaG8gDQpsYXAgdGhlbSBtb2kgcGhvbmcgMiBnaXVvbmcgdGFuZyByb2kg cXVhbmcgY2FvIGxhIHRhdSBraGFjaCB2b2kgc3VjIGNobyAxLjAwMCBraGFjaCArIA0KNTAwIHhl IG8gdG8gISANCg0KRGFuZyBjaHUgeSBob246IENoaWVjIHBoYSBiaWVuIG5heSB0cnVvYyBkbyBk dW9jIENvbmcgdHkgQ2Fyb250ZSAmIFRvdXJpc3Qga2hhaSB0aGFjIA0KbyBtaWVuIFRydW5nIG51 b2MgWS4gU2F1IHN1IGNvIDIgbGFuIGJpIG51dCBkb2kgZGF5IHRhdSAoZGEgZHVvYyBoYW4gbGFp KSwgaG8gZGEgbmd1bmcgDQpraGFpIHRoYWMgdmEgdHJhIGxhaSBjaG8gY2h1IHRhdSBMYXZhcnRp bmEgVHJhbnNwb3J0aSBCYXJpLCB2b2kgbmd1eWVuIG5oYW4geGFjIGRpbmggbGEgZG8gDQpsb2kg dGhpZXQga2Ugc2FpLiBUaGVvIGNhYyBjaHV5ZW4gZ2lhIGhhbmcgaGFpLCB2aWVjIG51dCBkYXkg bGllbiB0dWMsIGNvIGhlIHRob25nIHRoaSBraG9uZyANCmR1IHRpZXUgY2h1YW4gYW4gdG9hbiBk ZSBkdWEgdmFvIGtoYWkgdGhhYy4gDQoNClZheSBtYSBraG9uZyBoaWV1IHNhbyBraGkgZGljaCB0 aGFuIGRpIG11YSBjb24gdGF1IG5heSwgb25nIExpZW0gdmEgb25nIERhdCBkYSBnYW4gDQpuaHUg Ym8gcXVhIHRhdCBjYSBjYWMgcXV5IHRyaW5oIHRob25nIHRodW9uZyB0dXlldCBkb2kgcGhhaSB0 dWFuIHRodSB0cnVvYyBraGkgcXV5ZXQgZGluaCANCm11YSBtb3QgY29uIHRhdSBiaWVuOiBEdSB0 b2FuIGtpbmggdGUga2hhaSB0aGFjIGNvbiB0YXUgZGluaCBtdWEsIGdpYSBjdW9jIHRodSBkdW9j IHRydSANCmRpIGNhYyBjaGkgcGhpOyB0aHVlIGRvbiB2aSBnaWFtIGRpbmggZG9jIGxhcCB0b2Fu IGJvIGNoYXQgbHVvbmcgY29uICB0YXUgKGhvYWMgY3UgbmhhbiANCnZpZW4ga3kgdGh1YXQgY3Vu ZyBnaWFtIGRpbmgpLCBraWVtIHRyYSBobyBzbyBseSBsaWNoIHN1IGNvIHRhdTsgdGh1ZSB0aG8g bGFuIGtoYW8gc2F0IHF1YXkgDQpjYW1lcmEga2llbSB0cmEgZGF5IHRhdSwgY2hhbiB2aXQuLi4g TmV1IHR1YW4gdGh1IGNhYyBraGF1IG5heSwgY2hhYyBjaGFuIHNlIHBoYXQgaGllbiByYSANCm5o dW5nIHZldCBudXQgZGF5IHRhdSBkdW9jIGhhbiBsYWkuIA0KDQpWZSBnaWEgbXVhLCBuZ2F5IHRh aSB0aG9pIGRpZW0gbXVhICgxNS0xMC0yMDA3KSwgdGhlbyBkYW5oIGdpYSBjdWEgY2FjIGNodXll biBnaWEgdmEgDQptb3Qgc28gdGh1eWVuIHRydW9uZzogY2hpZWMgcGhhIGJpZW4gbmF5IGNoaSBu aGluaCBob24gZ2lhIGJhbiBzYXQgdnVuIGNvIDIwJSwgdHVjIA0Ka2hvbmcgcXVhIDEwIHRyaWV1 IFVTRC4gVGhlIG5odW5nIHJhdCBiYXQgbmdvIGtoaSBvbmcgTGllbSB2YSBvbmcgRGF0IGRhIG11 YSBubyB2b2kgDQpnaWEgNjAgdHJpZXUgRVVSTy4gVmEgdG9uZyBjaGkgcGhpIGNobyBjb24gdGF1 IG5heSBkZW4gbmF5IGRhIGxlbiB0b2kgdHJlbiAxLjUwMCB0eSBkb25nLiANCk5odW5nIG5ldSBj dWEgYmFuIHNhdCB2dW4gdGhpIGN1bmcgY2hpIHRodSBkdW9jIGtob25nIHF1YSAxMDAgdHkgZG9u Zy4gDQoNCktob25nIGNoaSBjbyB0YXUgSG9hIFNlbiwgMiBjb24gdGF1IGtoYWMgbGEgVmluYXNo aW4gRWFnbGUgdmEgVmluYXNoaW4gUGhvbmVuaWMgY3VuZyANCmR1b2MgImNvbmciIHZlIHZvaSBn aWEgZ2FuIDQyIHRyaWV1IFVTRCAoNjI5LDQgdHkgZG9uZykuIEtoaSBiaSBiYXQgZ2l1IHRhaSBU cnVuZyBRdW9jIA0KY2hpIHZpIGNvbmcgdHkgdmllbiBkdW9uZyBWaW5hc2hpbiBubyAxMyB0cmll dSBVU0QsIG5odW5nIGtob25nIGRhbSBjaHVvYyB2ZSwgYm9pIGJvIA0KcmEgMTMgdHJpZXUgVVNE IGtlbyB0YXUgdmUgdGhpIGJhbiBjYSBoYWkgY29uIHRhdSBkbyBjdW5nIGtob25nIHRodSBkdW9j IHRvaSAxMyB0cmlldSBVU0QuIA0KDQpDbyBsZSBkaWV1IG5heSBkYSBseSBnaWFpIHZpIHNhbyB0 b25nIG5ndW9uIHZvbiBuaGEgbnVvYyBjaHV5ZW4gY29uZyB0eSB2aWVuIGR1b25nIFZpbmFzaGlu IGdhbiBudWEgdHkgVVNEIGJpIGJvYyBob2kgZ2FuIGhldC4gDQoNCmh0dHA6Ly93d3cudmlldC5y ZmkuZnIvdmlldC1uYW0vMjAxMDExMjktbm8teGF1LWN1YS12aW5hc2hpbi1kZS1kb2EtbW90LXNv LW5nYW4taGFuZy12aWV0LW5hbSBEdWMgVGFtIDI5LzExLyAyMDEwICAgDQoNClRodSB0dW9uZzog Tm8geGF1IGN1YSBWaW5hc2hpbiBkZSBkb2EgbW90IHNvIG5nYW4gaGFuZyBWaWV0IE5hbSANCg0K KEFuaDogVmluYXNoaW4gZGEgdHJvIHRoYW5oIGJpZXUgdHVvbmcgY3VhIHRhcCBkb2FuIGtpbmgg dGUgTmhhIG51b2MgbGFtIHRvbiBoYWkgY29uZyBxdXkuIEFuaDogRFIpIA0KDQpCYW8gdHJlbiBt YW5nIEJsb29tYmVyZyBjaG8gYmlldCBsYSB0aGVvIG5oYW4gZGluaCBjdWEgY29uZyB0eSB0dSB2 YW4gdGFpIGNoaW5oIE1vb2R5LCANCm5vIGN1YSBUYXAgZG9hbiBjb25nIG5naGllcCB0YXUgdGh1 eSBWaW5hc2hpbiB0dW9uZyBkdW9uZyBraG9hbmcgMyUgdG9uZyBzbyB0aWVuIGNobyANCnZheSBj dWEgbW90IHNvIG5nYW4gaGFuZyBWaWV0IE5hbS4gVmluYXNoaW4sIGhpZW4gZGFuZyBkdW5nIGJl biBibyB2dWMgcGhhIHNhbiwga2hvIA0KY28gdGhlIHRoYW5oIHRvYW4gY2FjIGtob2FuIG5vIGRh byBoYW4gdmEgZGlldSBuYXkgY28gbmd1eSBjbyBnYXkga2hvIGtoYW4gY2hvIGNhYyANCm5nYW4g aGFuZyBWaWV0IE5hbS4NCg0KVHJvbmcgbW90IG5naGllbiBjdXUgZHVvYyBjb25nIGJvIG5nYXkg aG9tIG5heSwgMjkvMTEvMjAxMCwgYmEgS2Fyb2x5biBTZWV0LCBjaHV5ZW4gDQpnaWEgcGhhbiB0 aWNoIHRhaSBTaW5nYXBvcmUgdGh1b2MgY29uZyB0eSBNb29keSdzLCBjaG8gYmlldCBsYSBuZ2F5 IDE5LzExLCB0YXAgZG9hbiANClZpbmFzaGluIHR1eWVuIGJvIGNvIHRoZSBob2FuIHRyYSA2MCB0 cmlldSBkbyBsYSBkYW8gaGFuIHRyb25nIGtob2FuIHZheSA2MDAgdHJpZXUgZG8gbGEuIA0KIA0K VnVhIHF1YSwgb25nIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgZGEgY2hvIHRoYXkgdGhlIGJh biBsYW5oIGRhbyBWaW5hc2hpbiB2YSANCmNoaW5oIHBodSB0aG9uZyBiYW8gdGllbiBoYW5oIGNv IGNhdSBsYWkgZG9hbmggbmdoaWVwIG5heS4gVHJvbmcga2hpIGRvLCBsYW5oIGRhbyBtb2kgDQpj dWEgdGFwIGRvYW4sIG9uZyBOZ3V5ZW4gTmdvYyBTdSBraGFuZyBkaW5oIGxhaSByYW5nIFZpbmFz aGluIHNlIHR1IGNvIGNhdSBsYWkgdHJlbiBjbyANCnNvIG5odW5nIGdpIGNvbiBsYWkgY3VhIGRv YW5oIG5naGllcCBUYXAgZG9hbiBuYXkuIA0KDQpUaGVvIGNhYyBjaHV5ZW4gZ2lhLCB2aWVjIGhv YW4gdHJhIG1vdCBraG9hbiBubyBkYWkgaGFuIGNvIHRoZSBidW9jIGNhYyBuZ2FuIGhhbmcgDQpW aWV0IE5hbSBwaGFpIGNvIGNhdSBsYWkga2hvYW4gbm8gY3VhIFZpbmFzaGluLCBnYXkgdGhpZXQg aGFpIGNobyBjYWMgbmdhbiBoYW5nIG5heS4NClRoYW5nIDggbmFtIG5heSwgY2hpbmggcGh1IFZp ZXQgTmFtIHRob25nIGJhbywgbm8gY3VhIFZpbmFzaGluIHRpbmggY2hvIGRlbiB0aGFuZyANCnNh dSwgbGVuIHRvaSA4NiBuZ2FuIHR5IGRvbmcsIHR1b25nIGR1b25nIDQsNCB0eSBkbyBsYS4NCg0K VHJ1b2MgZGF5LCBnaW9pIHBoYW4gdGljaCBuZ2hpIHJhbmcgY2hpbmggcGh1IFZpZXQgTmFtIHNh biBzYW5nIHVuZyBjdXUsIGNhcCB2b24gY2hvIA0KYmF0IGt5IG5nYW4gaGFuZyBuYW8gZ2FwIGto byBraGFuLiBOaHVuZyBuaGluIHZhbyB2dSBWaW5hc2hpbiwgdGhpIHRyb25nIHR1b25nIGxhaSwg DQpraG9uZyBjbyBnaSBjaGFjIGNoYW4gbGEgY2hpbmggcGh1IHNlIGdpdXAgZG8gY2FjIG5nYW4g aGFuZyBraGkgcm9pIHZhbyB0aW5oIHRyYW5nIHRoaWV1IA0KaHV0IGNhYyBwaHVvbmcgdGllbiB0 aGFuaCB0b2FuLg0KDQpUaGVvIHNvIGxpZXUgY3VhIEJsb29tYmVyZywgVmluYXNoaW4gZGEgcGhh dCBoYW5oIDE2LDIgdHkgZG9uZyBjb25nIHRyYWkgdmEga2hvYW4gdmF5IA0KbmF5IHNlIGR1b2Mg dGhhbmggdG9hbiB2YW8gdGhhbmcgdHUgbmFtIDIwMTcuIENoaSBuaGFuaCBuZ2FuIGhhbmcgRGV1 dHNjaGUgQmFuayANClZpZXRuYW0gY2hvIGJpZXQsIGxhaSBzdWF0IGRhbmggbmdoaWEgbGEgOSUs IHR1eSBuaGllbiBkbyB0aGkgdHJ1b25nIHRoaWV1IHRpbiB0dW9uZyB2YW8gDQpraGEgbmFuZyB0 YWkgY2hpbmggY3VhIFZpbmFzaGluLCBsYWkgc3VhdCBjdWEgY29uZyB0cmFpIG5heSBkYSBsZW4g dG9pIDIxLDE2JSBuZ2F5IGhvbSBuYXkuDQoNCkxhbmggZGFvIG1vdCBzbyBjYWMgbmdhbiBoYW5n IGNobyB2YXkgY3VhIFZpZXQgTmFtLCBkYWMgYmlldCBsYSBjYWMgbmdhbiBoYW5nIHRodW9uZyAN Cm1haSBjbyBwaGFuLCBjaG8gYmlldCwgVmluYXNoaW4gbGEgY29uIG5vIGxvbiBuaGF0IGN1YSBo by4gVHJvbmcga2hpIGRvLCBkYSBzbyBjYWMga2hvYW4gDQpjaG8gdmF5IGtob25nIGR1b2Mga2hh dSB0cnUgdmEgZHVvYyBjb2kgbGEgbG9haSB0aW4gZHVuZyBkYWMgYmlldC4gDQoNCkJhbiBuZ2hp ZW4gY3V1IGN1YSBjb25nIHR5IHR1IHZhbiBNb29keSdzIG5oYW4gZGluaCwgdnUgVmluYXNoaW4g Y2hvIHRoYXkgY2hpbmggcGh1IA0Ka2hvbmcgdGhlIGN1bmcgbW90IGx1YyBobyB0cm8gY2FjIHRh cCBkb2FuIHZhIGtodSB2dWMgbmdhbiBoYW5nLiBEaWV1IG5heSBsYW0gY2FjIA0KbmdhbiBoYW5n IGxvIG5nYWkgYmkgbWF0IHZvbiBraGkgY2FwIHRpbiBkdW5nIGNobyBjYWMgZG9hbmggbmdoaWVw IG5oYSBudW9jLiBIaWVuIG5heSwgDQp0b25nIHRpbiBkdW5nIGNhcCBjaG8gY2FjIGRvYW5oIG5n aGllcCBuaGEgbnVvYyBjaGllbSB0b2kgNDAlIGtoYSBuYW5nIGNobyB2YXkgY3VhIGNhYyBuZ2Fu IGhhbmcgdGh1b25nIG1haSBWaWV0IE5hbS4gDQogDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3Zp ZXQtbmFtLzIwMTAxMjAzLXZpbmFzaGluLWtoYXQtbm8tZG9hbmgtbmdoaWVwLW5oYS1udW9jLXZp ZXQtbmFtLWtoby1kaS12YXkgVHJvbmcgTmdoaWEgMDMvMTIvIDIwMTAgIA0KDQpUaHUgdHVvbmc6 IFZpbmFzaGluIGtoYXQgbm8sIGRvYW5oIG5naGllcCBuaGEgbnVvYyBWaWV0IE5hbSBraG8gZGkg dmF5IA0KDQpWYW8gbmdheSAyMC8xMi8yMDEwIHRvaSBkYXksIHRhcCBkb2FuIFZpbmFzaGluIHRy ZW4gbmd1eWVuIHRhYyBwaGFpIHRyYSBtb3QgcGhhbiBubyBkYSANCmRhbyBoYW4uIFRoZSBuaHVu ZywgdGhlbyBuaGF0IGJhbyBXYWxsIFN0cmVldCBKb3VybmFsLCBob20gMjkvMTEgdnVhIHF1YSwg VG9uZyANCkdpYW0gZG9jIFZpbmFzaGluIFRydW9uZyBWYW4gVHV5ZW4gZGEgY2hpbmggdGh1YyB2 aWV0IHRodSBjaG8gY2FjIGNodSBubyB4aW4gZHVvYyANCmhvYW4gdGhhbmggdG9hbiA2MCB0cmll dSBkYXUgdGllbiB0cm9uZyBzbyA2MDAgdHJpZXUgZG8gbGEgZGEgbXVvbi4NCg0KVGhlbyBjYWMg bmhhIHBoYW4gdGljaCwgZHUgY2hvIFZpbmFzaGluIGNvIGtoYXQgZHVvYyBubywgbmh1bmcgc3Ug a2llbiBuYXkgc2UgZ2F5IGtobyANCmtoYW4gbG9uIGNobyBjYWMgZG9hbmggbmdoaWVwIG5oYSBu dW9jIFZpZXQgTmFtIGtoaSBkaSB2YXkgdHJlbiB0aGkgdHJ1b25nIHRhaSBjaGFuaCANCnF1b2Mg dGUuDQoNCkRvIGxhbSBhbiB0aHVhIGxvIHZhIGJlIGJvaSwgaGllbiBuYXkgVmluYXNoaW4gZGFu ZyBwaGFpIGdhbmggdmFjIG1vdCBtb24gbm8gbGVuIGRlbiANCjQsNCB0eSBkbyBsYS4gQ29uIHNv IDYwMCB0cmlldSBkbyBsYSBtYSBtb3QgcGhhbiBuaG8gc2FwIGRhbyBoYW4gZGVuIHR1IG1vdCBu aG9tIGNodSANCm5vIHF1b2MgdGUgZG8gbmdhbiBoYW5nIFRodXkgU2kgQ3JlZGl0IFN1aXNzZSB0 YXAgaG9wLiBUaGVvIG5vaSBkdW5nIGxhIHRodSBtYSB0byBuaGF0IA0KYmFvIGRvYyBkdW9jLCBW aW5hc2hpbiBkYSB4aW4gdGFtIGhvYW4gdmllYyB0aGFuaCB0b2FuIHRyb25nIHRydW9uZyBob3Ag a2hvbmcgaHV5IA0KZG9uZyBkdW9jIHRpZW4gZHVuZyBoYW4gZGUgdHJhIGtob2FuIG5vIDYwIHRy aWV1IGRvIGxhLiBEdW9uZyBraW0gVG9uZyBnaWFtIGRvYyANClZpbmFzaGluIGRhIG5oYW4gbWFu aCByYW5nIHlldSBjYXUgY3VhIG9uZyBjaGkgbGEgeGluIGx1aSBuZ2F5IHRyYSBubywgY2h1IGNv biB0YXAgZG9hbiANClZpZXQgTmFtIHZhbiBxdXlldCB0YW0gdGhhbmggdG9hbiB0b2FuIGJvIGto b2FuIHRpbiBkdW5nIGRhIGRpIHZheS4NCg0KTmdhbiBoYW5nIENyZWRpdCBTdWlzc2UgY2hvIGRl biBob20gbmF5IHZhbiByYXQga2luIGRhbyB0cmVuIHZhbiBkZSBuYXksIHZhIHR1IGNob2kgeGFj IA0KbmhhbiBuZ3VvbiB0aW4gdHJlbi4gVHV5IG5oaWVuLCB0aGVvIGJhbyBjaGkgVmlldCBOYW0s IG5nYXkgMTkvMTEgdnVhIHF1YSwgb25nIE5ndXllbiANCk5nb2MgU3UsIENodSB0aWNoIEhvaSBk b25nIGNhYyBUaGFuaCB2aWVuIFZpbmFzaGluIGRhIHhhYyBuaGFuIHZpZWMgdGFwIGRvYW4gbmF5 IGRhIA0KZGUgbmdoaSBsdWkgbmdheSB0cmEgbm8gdGhlbSBtb3QgbmFtLCB2YSBDcmVkaXQgU3Vp c3NlIGRhIGRvbmcgeSwgY2hpIHlldSBjYXUgcGhpYSBjb24gDQpubyBjbyBjb25nIHZhbiBjaGlu aCB0aHVjLg0KDQpUaGVvIGdpb2kgcXVhbiBzYXQsIGR1IFZpbmFzaGluIGNvIGtoYSBuYW5nIHRh bSB0aG9pIHRob2F0IGhpZW0gdHJvbmcgdnUgbmF5LCBuaHVuZyB0YWMgDQpoYWkgY3VhIHZpZWMg bmF5IHJhdCBsb24sIGRhYyBiaWV0IGxhIGRvaSB2b2kgY2FjIHRhcCBkb2FuIG5oYSBudW9jIFZp ZXQgTmFtIHNlIGdhcCBuaGlldSANCmtobyBraGFuIGtoaSBjYW4gcGhhaSBkaSB2YXkgdHJlbiB0 aGkgdHJ1b25nIHRhaSBjaGFuaCBxdW9jIHRlLg0KDQpIZSBxdWEgZGF1IHRpZW4gbGEgbGFpIHN1 YXQgY2hvIHZheSBzZSBnaWEgdGFuZy4gUGhhdCBiaWV1IHZvaSBoYW5nIHRpbiBCbG9vbWJlcmcs IG9uZyANCkpvbmF0aGFuIFBpbmN1cywgbW90IGtpbmggdGUgZ2lhIHRhaSBUcnVvbmcgSGFydmFy ZCBLZW5uZWR5IG8gVFAgSENNIGRhIG5oYW4gZGluaCANCm5odSBzYXUgdmUgaGF1IHF1YSBjdWEg dmllYyBWaW5hc2hpbiBwaGFpIGtoYXQgbm8gOiAiRGlldSBkbyBjaGFjIGNoYW4ga2hvbmcgdG90 IGNobyANClZpZXQgTmFtIHZhIHNlIGNvIG5naGlhIGxhIGNoaSBwaGkgdmF5IG11b24gc2UgcmF0 IGNhbyIuIFRyYSBsb2kgcGhvbmcgdmFuIHF1YSBkaWVuIA0KdGhvYWksIGNodXllbiBnaWEgbmF5 IGxvIG5nYWkgOiAiSGllbiBuYXksIGNvIHJhdCBuaGlldSB2b24gZGF1IHR1IG11b24gZG8gdmFv IGNoYXUgQSB2YSANClZpZXQgTmFtIGNvIG5ndXkgY28gYmkgbG8gY28gbWF5IGRvLiINCg0KT25n IEZyYW7nb2lzIExldmFzc2VhdSwgdHJ1b25nIG5ob20gbmdoaWVuIGN1dSB2ZSB0aHUgbmhhcCBj byBkaW5oIHRhaSBDb25nIHR5IGNvIA0KcGhhbiBTYWNvbWJhbmsgU2VjdXJpdGllcyBvIFRQIEhD TSBjdW5nIGN1bmcgcXVhbiBkaWVtIGtoaSBjaG8gcmFuZyBkb2FuaCBuaGFuIA0KbmdvYWkgcXVv YyBjbyB0aGUgInN1eSBkaSBuZ2hpIGxhaSB0cnVvYyBraGkgZGF1IHR1IHZhb1ZpZXQgTmFtLiBU aGVvIGNodXllbiBnaWEgbmF5LCANCnZ1IFZpbmFzaGluICJjaGFjIGNoYW4gZGEgdGFjIGRvbmcg ZGVuIHRhbSBseSBkZSBkYXQgbmF5Ii4NCg0KRG9pIHZvaSB0YXAgZG9hbiB0aGFtIGRpbmggdGFp IGNoaW5oIHF1b2MgdGUgTW9vZHkncywgdnUgbW90IHRhcCBkb2FuIG5oYSBudW9jIG5odSANClZp bmFzaGluIGxhaSBwaGFpIGtoYXQgbm8gc2UgYnVvYyBnaW9pIGRhdSB0dSBxdW9jIHRlIHBoYWkg aG9haSBuZ2hpIHZlIGhhdSB0aHVhbiBjdWEgbmhhIA0KbnVvYyBWaWV0IE5hbSBjaG8gY2FjIHRh cCBkb2FuIHF1b2MgZG9hbmggdHJvbmcgY29uIGtobyBraGFuLiBUcm9uZyB0aW5oIGhpbmggZG8s IA0KZGllbSBkYW5oIGdpYSBjYWMgZG9hbmggbmdoaWVwIG5heSBjbyBuZ3V5IGNvIGJpIGhhIHRo YXAgdm9pIGhlIHF1YSBybyByZXQgbGEgbmV1IG11b24gDQp2YXkgbXVvbiwgY2FjIGRpbmggY2hl IG5heSBzZSBwaGFpIHRyYSB0aWVuIGxvaSBjYW8gdmkgcnVpIHJvIGNhby4NCg0KVGhlbyBoYW5n IHRpbiBCbG9vbWJlcmcsIG5hbiBuaGFuIGN1IHRoZSBkYXUgdGllbiBjdWEgdnUgVmluYXNoaW4g Y28gdGhlIGxhIHRhcCBkb2FuIA0KdGhhbiBraG9hbmcgc2FuIFZpZXQgTmFtIFZpbmFjb21pbi4g TmdheSAwMS8xMiB2dWEgcXVhLCBNb29keSdzIEludmVzdG9ycyBTZXJ2aWNlLCANCmJvIHBoYW4g Y2h1eWVuIHRyYWNoIGRhdSB0dSBjdWEgTW9vZHkncyBjaG8gYmlldCBsYSBkaWVtIHRpbiBuaGll bSBjdWEgVmluYWNvbWluIGNvIA0KdGhlIGJpIGhhIHRoYXAuIFRhcCBkb2FuIG5heSBtb2kgZGF5 IGRhIHBoYWkgZG9pIHZpZWMgYmFuIHJhIDUwMCB0cmlldSBkbyBsYSB0cmFpIHBoaWV1IA0KdGhv aSBoYW4gMTAgbmFtIHZpIGRpZXUga2llbiB0aGkgdHJ1b25nIGtob25nIHBodSBob3AuDQoNClZh biBkZSBsYSBjYWMga2hvIGtoYW4gY3VhIFZpbmFjb21pbiBzZSBraG9uZyBwaGFpIGxhIGNhIGJp ZXQsIG1hIGRheSBjbyB0aGUgbGEgdHJ1b25nIA0KaG9wIGN1YSBoYW5nIGxvYXQgdGFwIGRvYW4g bmhhIG51b2Mga2hhYyBjdWEgVmlldCBOYW0uIFRhaSBEaWVuIERhbiBEb2FuaCBOZ2hpZXAgDQpW aWV0IE5hbSBtbyByYSB0YWkgSGEgTm9pIHZhbyBob20gcXVhLCBtb3QgYmFuIGJhbyBjYW8gY3Vh IEhvaSBEb2FuaCBOZ2hpZXAgVHJlIEhhIA0KTm9pIGNobyByYW5nIHN1IHN1cCBkbyBjdWEgYmF0 IGt5IG1vdCBkYWkgdGFwIGRvYW4gbmFvIGN1YSBWaWV0IE5hbSBkZXUgY28gbmd1eSBjbyANCmxh bSB0b2FuIGJvIG5lbiBraW5oIHRlIGJpIGNoYW4gZG9uZy4gDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMi8yMDEwMDgwNTIyMzg0Mi5hc3B4IFRyYW4gTGUg MDUvMDgvMjAxMCAyMjozOCANCg0KVGh1IHR1b25nOiBWaW5hc2hpbiBuaHVuZyBzYWkgcGhhbSBk YSBkdW9jIGJhbyB0cnVvYyA5IG5hbSANCiAgDQpTdSBraWVuIG5ndXllbiBDaHUgdGljaCBIRFFU IFRhcCBkb2FuIFZpbmFzaGluIFBoYW0gVGhhbmggQmluaCBiaSBiYXQgdGFtIGdpYW0gbGEgDQpr ZXQgcXVhIGN1b2kgY3VuZyBjdWEgbW90IGhhbmggdHJpbmggc2FpIGxhbSBtYSBCYW8gVGhhbmgg TmllbiB0dW5nIGNhbmggYmFvIDkgbmFtIA0KdHJ1b2MuIA0KVHJvbmcgc28gYmFvIDIwMSwgcmEg bmdheSAyMi44LjIwMDEsIFRoYW5oIE5pZW4gZGEgZGFuZyBiYWkgQ29uIHRhdSBoYW5nIHZhbiB0 YW4gY2h1YSANCmRvbmcgZGEgc2FwICJjaGltIiEsIG5vaSB2ZSBtb3Qgc3Uga2llbiBoeSBodXUg dHJvbmcgbGFuZyBkb25nIHRhdSBWTiB2YSBjbyB0aGUgbGEgY2EgDQp0aGUgZ2lvaTogb25nIFBo YW0gVGhhbmggQmluaCB5ZXUgY2F1IGNhcCBkdW9pIGRvbmcgdGF1IGtoaSBjaHVhIGNvLi4uIHRo aWV0IGtlIQ0KDQpCZW4gQS4uLiBjYWNoIGNodWMgYmVuIEIgDQoNCkRvIGxhIGNvbiB0YXUgMTEu NTAwIHRhbiBkYXUgdGllbiBkb25nIHRhaSBWTiwgZG8gYmVuIEEgbGEgVG9uZyBjb25nIHR5IGNv bmcgbmdoaWVwIHRhdSANCnRodXkgKHRlbiBjdSBjdWEgVmluYXNoaW4pIGt5IGhvcCBkb25nIGRv bmcgbW9pIHZvaSBiZW4gQiBsYSBOaGEgbWF5IGRvbmcgdGF1IEJhY2ggDQpEYW5nLCBtb3QgZG9u IHZpIGN1bmcgdGh1b2MgVG9uZyBjb25nIHR5IGNvbmcgbmdoaWVwIHRhdSB0aHV5IHRhaSBIYWkg UGhvbmcuIERpZXUgdHJvIA0KdHJldSBsYSBraGkgdHJpZW4ga2hhaSBob3AgZG9uZywgYmVuIEIg a2hvbmcgZHVvYyBiZW4gQSBjdW5nIGNhcCBiYW4uLi4gdGhpZXQga2Ugbmh1bmcgDQp2YW4gYmkg ZXAgZG9uZyBjYWMgdG9uZyBkb2FuLCB0dWMgY2FjIHBoYW4gZGF5IHRhdSB0aGVvIG1vdCBiYW4g dGhpZXQga2UgbmhhcCBkZSBsZSBraG9pIA0KY29uZyBkb25nIG1vaSBkdW9jIHRvIGNodWMgZHVu ZyB2YW8gbmdheSAiY2EgdGhhbmcgdHUiIDEuNC4yMDAxLiANCg0KVmkgY2h1IHRydW9uZyBuYXkg dHJhaSBuZ3V5ZW4gdGFjIGt5IHRodWF0LCBHaWFtIGRvYyBOaGEgbWF5IGRvbmcgdGF1IEJhY2gg RGFuZywgb25nIA0KUGhhbSBEaW5oIERhIGRhIGtob25nIGNoYXAgbmhhbiB5ZXUgY2F1IG5vaSB0 cmVuLiBWYXkgbGEgbmdheSA0LjcuMjAwMSwgb25nIFBoYW0gDQpUaGFuaCBCaW5oLCBraGkgZG8g bGEgQ2h1IHRpY2ggSERRVCBraWVtIFRvbmcgZ2lhbSBkb2MgVG9uZyBjb25nIHR5IGNvbmcgbmdo aWVwIA0KdGF1IHRodXkgVk4sIGRvbmcgdGhvaSBkYWkgZGllbi4uLiBiZW4gQSBreSBtb3QgcXV5 ZXQgZGluaCBjbyBoaWV1IGx1YyBuZ2F5IHRyb25nIA0KbmdheSBkZSBjYWNoIGNodWMgZGFpIGRp ZW4gYmVuIEIgbGEgb25nIFBoYW0gRGluaCBEYSEgDQoNCkRpZXUgYmF0IG5nbyBsYSBraGkgbmhh biBxdXlldCBkaW5oIG5heSwgMTUvMTUgZGFuZyB1eSB2aWVuIG5oYSBtYXkga2hvbmcgbmhhdCB0 cmksIA0Kbmd1b2kgZHVvYyBvbmcgUGhhbSBUaGFuaCBCaW5oIGdpYW8gZ2l1IGNodWMgZ2lhbSBk b2MgdGhheSBvbmcgUGhhbSBEaW5oIERhIGN1bmcgDQp0dSBjaG9pIGtob25nIG5oYW4gbmhpZW0g dnUuIERhYyBiaWV0LCBUaGFuaCB1eSBIYWkgUGhvbmcsIGRvbiB2aSBxdWFuIGx5IG9uZyBQaGFt IA0KRGluaCBEYSB0cm9uZyBzaW5oIGhvYXQgRGFuZywgY3VuZyBuZ28gbmdhbmcgdmkga2hvbmcg ZHVvYyBiaWV0IGdpIQ0KDQpMYSBvIGNobywgY29uIHRhdSAxMS41MDAgdGFuIG5vaSB0cmVuIGR1 b2MgVG9uZyBjb25nIHR5IGNvbmcgbmdoaWVwIHRhdSB0aHV5IFZOIHRodWUgDQpkb25nIGtob25n IHBoYWkgZGUgYmFuIGNobyBtb3QgY29uZyB0eSB2YW4gdGFpIGJpZW4sIG1hIGNobyBtb3QgY29u ZyB0eSB0aGFuaCB2aWVuIG1vaSANCnRoYW5oIGxhcCB2YSBjaHVhIHR1bmcga2luaCBkb2FuaCB2 YW4gdGFpIGJpZW4uIFZpZWMgZG9uZyB0YXUgMTEuNTAwIHRhbiBraGkgZG8gZHVvYyANCnhlbSBu aHUgY2h1eWVuIHRpZW4gdHUgdHVpIG5vIHNhbmcgdHVpIGtpYSBtYSBraG9uZyB0aW5oIGRlbiBo aWV1IHF1YSBraW5oIHRlLiA2IG5hbSBzYXUgDQpkbywga2hpIGNvIHRpZW4gdHUgdHJhaSBwaGll dSBDaGluaCBwaHUsIFZpbmFzaGluIG11YSB0YXUgSG9hIFNlbiB2YSBnaWFvIGNobyBjaGluaCAN CmNvbmcgdHkgdGhhbmggdmllbiBubywgbmF5IGRhIGRvaSB0ZW4gbGEgQ29uZyB0eSB2YW4gdGFp IHZpZW4gZHVvbmcgVmluYXNoaW4sIGRlIHJvaSB0aGF0IA0KYmFpIGUgY2hlIG5odSBtb2kgbmd1 b2kgZGEgYmlldC4NCg0KUGhvIHRydW9uZyB0aGFuaCB0aGUgDQoNClRhaSBzYW8gcGhhaSBraG9p IGNvbmcgZHVuZyBuZ2F5IDEuNC4yMDAxIHRyb25nIGtoaSBjaHVhIGNvIHRoaWV0IGtlIGNoaW5o IHRodWM/IERvbiANCmdpYW4sIG9uZyBQaGFtIFRoYW5oIEJpbmgga2hpIGRvIG11b24gcGhvIHRy dW9uZyB0aGFuaCB0aGUgdHJ1b2MgY2FjIHF1YW4gY2h1YyBCbyANCkdUVlQgdmEgQ2hpbmggcGh1 LiBTdSB0aGlldSB0cnVuZyB0aHVjIGtoaSBjaHVhIGNvIGJhbiB2ZSBtYSB2YW4gZG9uZyB0YXUg MTEuNTAwIHRhbiANCmNoYW5nIGtoYWMgbmFvIHZpZWMgVmluYXNoaW4gbXVhIHRhdSBIb2EgU2Vu IGhhbmcgbmdoaW4gdGkgZG9uZyBtYSBCbyBHVFZUIGtob25nIA0KZHVvYyBiaWV0LiANCg0KVmll YyBvbmcgUGhhbSBUaGFuaCBCaW5oIHR1eSBodW5nIGNhY2ggY2h1YyB2YSBwaG9uZyBjaHVjIGNo byBjYXAgZHVvaSB0cm9uZyB2dSANCmRvbmcgdGF1IDExLjUwMCB0YW4gY2FjaCBkYXkgOSBuYW0g Y3VuZyBraGllbiBuZ3VvaSB0YSBsaWVuIHR1b25nIGRlbiB2aWVjIG9uZyBuYXkgdHUgDQp0dW5n LCB0dSB0YWMgdHJvbmcgdmllYyBjYXQgbmhhYyBuZ3VvaSB0aGFuIHZhbyBjYWMgdmkgdHJpIHF1 YW4gdHJvbmcgbWEgVXkgYmFuIEtpZW0gDQp0cmEgVHJ1bmcgdW9uZyBEYW5nIGRhIGtldCBsdWFu OiAiRG9uZyBjaGkgUGhhbSBUaGFuaCBCaW5oIGNvbiBibyBuaGllbSBjb24gdHJhaSB2YSBlbSAN CnJ1b3QgbGFtIGRhaSBkaWVuIHBoYW4gdm9uIGN1YSBOaGEgbnVvYywgZGFtIG5oaWVtIG5oaWV1 IGNodWMgdnUgcXVhbiB0cm9uZyB0cmFpIHF1eSANCmRpbmggY3VhIERhbmcgdmEgTmhhIG51b2Mi LiANCg0KVHJhIGxvaSBjYXUgaG9pIGN1YSBiYW8gY2hpIHRhaSBjdW9jIGhvcCBiYW8gbmdheSA0 LjggdmUgdmllYyBjbyBoYXkga2hvbmcgc3UgYnVvbmcgbG9uZyANCnRoYW5oIGtpZW0gdHJhIFZp bmFzaGluIGRhbiB0b2kgc2FpIHBoYW0sIG9uZyBUcmFuIFZhbiBUcnV5ZW4sIFRvbmcgdGhhbmgg dHJhIENoaW5oIA0KcGh1LCBjaG8gYmlldCBkYSBjbyB0YXQgY2EgMTEgY3VvYyB0aGFuaCB0cmEs IGtpZW0gdHJhLCBraWVtIHRvYW4gVmluYXNoaW4gdHUgbmdheSB0aGFuaCANCmxhcCB2YSAicGhh dCBoaWVuIHJhdCBuaGlldSB2YW4gZGUgY2FuIGNoYW4gY2hpbmgsIHVvbiBuYW4sIHZhbiBkZSBs YSBjaHVhIGNvIGJpZW4gcGhhcCANCnh1IGx5IG5naGllbSBjdW5nIG5odSBjaHVhIGtpZW4gcXV5 ZXQgeWV1IGNhdSBkb24gdmkgbmF5IGNoYW4gY2hpbmggbW90IGNhY2ggdHJpZXQgDQpkZSIuDQoN CktobyBjbyB0aGUgbm9pIHJhbmcgbmV1IG5odW5nIHNhaSBwaGFtIGN1YSBvbmcgUGhhbSBUaGFu aCBCaW5oIHRyb25nIHZ1IGRvbmcgDQpjb24gdGF1IDExLjUwMCB0YW4ga2UgdHJlbiBkdW9jIHh1 IGx5IHRyaWV0IGRlIHRoaSBWaW5hc2hpbiBraG9uZyBsYW0gdmFvIA0Ka2hvIGtoYW4gbmh1IGhp ZW4gbmF5LiBOaHVuZyBybyByYW5nIGxhIGRhdSBoaWV1IHNhaSBwaGFtIGN1YSBtb3QgY2FuIGJv IA0KaGFuaCB4dSBiYXQgY2hhcCBxdXkgZGluaCBreSB0aHVhdCwgbmd1eWVuIHRhYyBxdWFuIGx5 IGtpbmggdGUsIHF1YW4gbHkgY2FuIGJvIA0KdmEga2hvbmcgY2hhcCBoYW5oIGRpZXUgbGUgRGFu ZyBtYSBUaGFuaCBOaWVuIGNhbmggYmFvIG5odW5nIGtob25nIGR1b2MgeHUgbHkgDQpkYSBkYW4g bG9uIHZhIGdheSB0b24gdGhhdCBuYW5nIG5lLiBEbyBsYSBtb3QgYmFpIGhvYyBkYW5nIHN1eSBu Z2FtIHRyb25nIA0KcXVhbiBseSBraW5oIHRlIHZhIGNvbmcgdGFjIGNhbiBiby4gDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzMi8yMDEwMDgwNTAyMzEzNi5h c3B4IE5ndXlldCBNaW5oIDA1LzA4LzIwMTAgMjozMSANCg0KVGh1IHR1b25nOiBTYWkgcGhhbSBv IFZpbmFzaGluIGRvIGNodSBxdWFuIGxhIGNoaW5oICAgDQoNCk5hbmcgbHVjIHF1YW4gdHJpIGRv YW5oIG5naGllcCB2YSBkdSBiYW8geWV1IGtlbSwgdHJpbmggZG8gY2FuIGJvIGxhbmggZGFvIHF1 YW4gbHkgDQpjaHVhIGRhcCB1bmcgeWV1IGNhdTsgcXVhbiBseSBkYXUgdHUsIHF1YW4gbHkgdGFp IGNoaW5oIGxvbmcgbGVvLCBrZW0gaGlldSBxdWEsIA0KbmhpZXUgcXV5ZXQgZGluaCB0cmFpIHF1 eSBkaW5oIGN1YSBwaGFwIGx1YXQuLi4NCg0KQ2hpbmggcGh1OiBPbmcgTmd1eWVuIFRhbiBEdW5n IC0gVVZCQ1QsIFRodSB0dW9uZyBjaGluaCBwaHUgdmEgb25nIE5ndXllbiBTaW5oIEh1bmcgDQot IFVWQkNULCBQaG8gdGh1IHR1b25nIHRodW9uZyB0cnVjIGNoaW5oIHBodSwgbmd1eWVuIGJvIHRy dW9uZyBibyB0YWkgY2hpbmgsIA0Ka2hvbmcgaG9hbiB0aGFuaCBuaGllbSB2dTsga2hvbmcgZHUg bmFuZyBsdWMgY29uZyB0YWM7IHF1YW4gbHkgbmhhIG51b2MgdmEgdGh1YyBoaWVuIA0KcXV5ZW4g Y2h1IHNvIGh1dSBjdWEgQ2hpbmggcGh1IGRvaSB2b2kgRE5OTiwgdGFwIGRvYW4ga2luaCB0ZSBu b2kgY2h1bmcgdmEgVmluYXNoaW4gDQpub2kgcmllbmcgIm5oaWV1IGJhdCBjYXAsIGtlbSBoaWV1 IHF1YSI7IGJhbiBoYW5oIHF1aSBkaW5oIHZhIHRodWMgaGllbiBxdXllbiB2YSANCnRyYWNoIG5o aWVtIGNodSBzbyBodXUgY2h1YSBybywgbG9uZyBsZW8sIHNvIGhvOyBiYW4gaGFuaCBjbyBjaGUg dGhhbSBkaW5oLCBraWVtIHRyYSwgDQpnaWFtIHNhdCwgdGhhbmggdHJhLCBraWVtIHRvYW4sIHF1 YW4gbHkgdGFpIGNoaW5oIGtlbSBoaWV1IHF1YTsgbGFtIG5nbywgYmFvIHRodSwgDQpjaGFtIHRp ZXAgdGh1IHkga2llbiBnb3AgeSBkdW5nIGRhbjsgeWV1IGtlbSB0cm9uZyB0byBjaHVjIHRodWMg aGllbiBuaGllbSB2dSwgDQp5ZXUga2VtIHZlIGJvIG5oaWVtIHZhIHF1YW4gbHkgY2FuIGJvLCBn YXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmcuLi4gQ3UgdHJpIGtpZW4gbmdoaSANCkNoaW5oIFBodSwg UXVvYyBob2ksIFRydW5nIHVvbmcga2llbSB0cmEsIGtpZW0gZGllbSwga3kgbHVhdCBjYWMgb25n IE5ndXllbiBUYW4gRHVuZyANClRodSB0dW9uZyB2YSBOZ3V5ZW4gU2luaCBIdW5nIFBUVCB0aHVv bmcgdHJ1YyBjaGluaCBwaHUsIG5ndXllbiBibyB0cnVvbmcgYm8gdGFpIGNoaW5oLiANCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC9DaGluaC1waHUtTmd1eWVuLUNo dS10aWNoLVZpbmFzaGluLWRvYy1kb2FuLWdpYS10cnVvbmctOTQzNTQ0LyBMZSBOaHVuZyBDYXAg bmhhdCBsdWMgMTg6MDUsIFRodSBUdSwgMjAvMTAvMjAxMCAoR01UKzcpDQoNClRodSB0dW9uZyBj aGluaCBwaHU6IE5ndXllbiBDaHUgdGljaCBWaW5hc2hpbiAnZG9jIGRvYW4sIGdpYSB0cnVvbmcn DQoNClBoYW4gdGljaCBuZ3V5ZW4gbmhhbiBkYW4gZGVuIHNhaSBwaGFtIG8gVmluYXNoaW4sIENo aW5oIHBodSBkYW5oIGdpYSwgY2FjIGNodWMgDQpkYW5oIGNodSBjaG90IG8gdGFwIGRvYW4gbmF5 IGRldSB0YXAgdHJ1bmcgdmFvIG1vdCBuZ3VvaS4gIlRyb25nIG5odW5nIG5hbSBnYW4gZGF5LCAN Cm5ndW9pIG5heSBkYSB0cm8gbmVuIGRvYyBkb2FuLCBnaWEgdHJ1b25nIiwgQ2hpbmggcGh1IG5o aW4gbmhhbg0KDQoqIFRodSB0dW9uZyBuaGFuIHRyYWNoIG5oaWVtIGN1YSBDaGluaCBwaHUgdmUg VmluYXNoaW4gDQoNCk5nYXkgMTkvMTAsIENoaW5oIHBodSBkYSBndWkgYmFuIGJhbyBjYW8gMTgg dHJhbmcgdG9pIERCUUgsIHRyb25nIGRvIGhvbiBtb3QgcGhhbiBiYSANCmx1b2MgdGh1YXQgbGFp IHN1IGhpbmggdGhhbmggY3VhIHRhcCBkb2FuIHZhIG5odW5nIHRoYW5oIHR1dSBkb25nIGdvcCBj aG8gbmdhbmggZG9uZyANCnRhdSBWaWV0IE5hbS4NCg0KS2hpIGRpZW0gbGFpIGtobyBraGFuLCB5 ZXUga2VtLCBDaGluaCBwaHUgY3VuZyBraG9uZyBxdWVuIHBoYW4gdGljaCBuZ3V5ZW4gbmhhbiAN CmtoYWNoIHF1YW4gZGVuIHR1IHBoaWEgY3VvYyBzdXkgdGhvYWkgdGFpIGNoaW5oIHRvYW4gY2F1 Lg0KDQoiTm9pIGJvIiBkb25nIHRpbmggdm9pIHNhaSB0cmFpDQoNClZlIHBoaWEgY2h1IHF1YW4s IENoaW5oIHBodSBjaG8gcmFuZywgdmkgY29uZyB0YWMgZHUgYmFvIGNvbiBuaGlldSBiYXQgY2Fw LCBuZW4gdmllYyBsYXAgDQprZSBob2FjaCBzYW4geHVhdCBraW5oIGRvYW5oIHZhIGtlIGhvYWNo IGRhdSB0dSBraG9uZyBjaGluaCB4YWMuIA0KDQpDYWMgZHUgYW4gZGF1IHR1IHF1YSBuaGlldSwg ZGFuIHRyYWksIGNvIGR1IGFuIGRhdSB0dSBiYW5nIDEwMCUgdm9uIHZheSwgbmhpZXUgZHUgYW4g DQpjaHVhIGR1YSB2YW8gc3UgZHVuZyBuaHVuZyB2YW4gcGhhaSB0cmEgbGFpLiBQaGFuIGxvbiBk dSBhbiBjaGkgZHVvYyBibyB0cmkgY2h1YSBkZW4gDQo1MCUgdG9uZyB2b24uDQoNCiJLaGkgdGFw IGRvYW4ga2llbiBuZ2hpIGNobyBtdWEgdGF1IGN1IHZhbiBjaHV5ZW4gaGFuaCBraGFjaCBCYWMg LSBOYW0sIFRodSB0dW9uZyANCkNoaW5oIHBodSBraG9uZyBkb25nIHkgdmEgY2hpIGNobyBjaHUg dHJ1b25nIGxhIHRodWMgaGllbiBkb25nIG1vaS4gVmllYyB0YXAgZG9hbiBtdWEgDQp0YXUgY3Ug KEhvYSBTZW4pIGxhIGNvIHkgbGFtIHRyYWkgdm9pIHN1IGNoaSBkYW8gY3VhIFRodSB0dW9uZyBD aGluaCBwaHUgdmEgcGhhcCBsdWF0IHZlIA0KZGF1IHR1IiwgQ2hpbmggcGh1IGtpZW0gZGllbS4g TmdheSBraGkgZHVvYyB0aW4gVmluYXNoaW4gY2h1YW4gYmkgbXVhIGNoaWVjIHRodSBoYWksIA0K Q2hpbmggcGh1IGRhIGxhcCB0dWMgInRob2kgY29pIiB0YW0gbmd1bmcgdmEga2llbSBkaWVtIHZp ZWMgbXVhIHRhdSBjdS4NCg0KQ3VuZyB2b2kgZG8gbGEgdGluaCB0cmFuZyBkYXUgdHUgZGFuIHRy YWksIGNobyB2YXkgdmEgYmFvIGxhbmggY2hvIGNhYyBjb25nIHR5IGxpZW4ga2V0IA0KdmF5IHRy b25nIGtoaSBkYXkgbGEgZG9uIHZpIGxhbSBhbiBrZW0gaGlldSBxdWEsIGtob25nIHRyYSBkdW9j IG5vLg0KDQpEZSBnaWFpIHF1eWV0LCB0YXAgZG9hbiBwaGFpIGRpIHZheSBubyBtb2kgZGUgdHJh IG5vIGN1LCB2YXkgbmdhbiBoYW4gdHJhIGRhaSBoYW4sIHRoYW0gDQpjaGkgbGF5IHZvbiBsdXUg ZG9uZyBkZSBjaGkgZGF1IHR1Lg0KS2V0IHF1YSwgbmFtIDIwMDkgdGFwIGRvYW4ga2luaCBkb2Fu aCB0aHVhIGxvIHRvaSAxLjYwMCB0eSBkb25nLCBuYW0gMjAxMCBzZSB0aWVwIHR1YyANCnRodWEg bG8sIHRyb25nIGJvaSBjYW5oIGRlbiB0aGFuZyA2LzIwMTAsIHRvbmcgc28gbm8gY3VhIHRhcCBk b2FuIGRhIGxhIDg2IG5naGluIHR5IGRvbmcuDQoNCkNoaW5oIHBodSBuaGluIG5oYW4gbW8gaGlu aCB0YXAgZG9hbiBkYW5nIHRyaWVuIGtoYWkgdGhpIGRpZW0sIG5odW5nIG8gVmluYXNoaW4gdHJv bmcgDQp0aG9pIGdpYW4gZGFpICh0dSBraGkgY29uIGxhIHRvbmcgY29uZyB0eSkgdGFwIHRydW5n IGNhYyBjaHVjIGRhbmggQmkgdGh1IERhbmcgdXksIENodSANCnRpY2ggSG9pIGRvbmcgUXVhbiB0 cmksIENodSB0aWNoIFRhcCBkb2FuLCBUb25nIGdpYW0gZG9jIHZhbyBtb3Qgbmd1b2kuIA0KDQpU cm9uZyBraGkgZG8sIERhbmcgdXksIEhvaSBkb25nIFF1YW4gdHJpLCBCYW4ga2llbSBzb2F0LCBj YWMgcGhvIHRvbmcgZ2lhbSBkb2MgeWV1IA0Ka2VtLCBkYXUgdHJhbmgsIGtob25nIHRodWMgaGll biBkdW9jIGNodWMgbmFuZywgbmhpZW0gdnUgZHVvYyBnaWFvIHZlIGxhbmggZGFvLCBxdWFuIGx5 LCANCmtpZW0gdHJhLCBnaWFtIHNhdCwgbmd1b2MgbGFpIGNvbiBkb25nIHRpbmggdm9pIG5odW5n IHZpZWMgbGFtIHNhaSB0cmFpIGN1YSBuZ3VvaSBkdW5nIA0KZGF1IHRhcCBkb2FuLg0KDQpWaWVj IHF1YW4gbHkgbmhhIG51b2MgdmEgdGh1YyBoaWVuIHF1eWVuIGNodSBzbyBodXUgY3VhIENoaW5o IHBodSB2b2kgdGFwIGRvYW4gY29uIA0KbHVuZyB0dW5nLiBCbyBHaWFvIHRob25nIFZhbiB0YWkg Y2h1YSBwaGF0IGhpZW4ga2lwIHRob2kgbmh1bmcgeWV1IGtlbSB0cm9uZyBob2F0IGRvbmcgDQp2 YSBjbyB5IGxhbSB0cmFpIGN1YSB0YXAgZG9hbiBkZSBjaHUgZG9uZywgZGUgbmdoaSBjYWMgY28g cXVhbiBjaHVjIG5hbmcgdmEgYmFvIGNhbyBUaHUgDQp0dW9uZyBuZ2FuIGNoYW4sIHh1IGx5Lg0K DQpDaGluaCBwaHUgY3VuZyB0aHVhIG5oYW4gdmllYyBsYXAgRE4sIGRhdSB0dSBjdW5nIG5odSBx dWFuIGx5IHN1IGR1bmcgdm9uLCBjaG9uIGNhbiANCmJvIHZhbiBjb24gYmF0IGNhcCwgc28gaG8u IER1IHRyb25nIGJhIG5hbSBjbyAxMSBjdW9jIHRoYW5oIHRyYSwga2llbSB0b2FuLCBnaWFtIHNh dCB2YXkgDQpuaHVuZyBsYW5oIGRhbyB0YXAgZG9hbiBkYSBraG9uZyBoZSBuZ2hpZW0gdHVjIGNo YXAgaGFuaC4gDQoNClRhcCBkb2FuIGJhbyBjYW8gc2FpLCBuZW4gcXVhbiBseSBuaGEgbnVvYyBr aG9uZyB0aGVvIGtpcA0KDQpEYSBuaHUgdmF5LCAiY2FjIGJvIGNodWMgbmFuZyBkdW9jIGdpYW8g dHJhY2ggbmhpZW0gZGEga2hvbmcgcGhhdCBoaWVuIGR1b2MgdmllYyB0YXAgDQpkb2FuIGJhbyBj YW8ga2hvbmcgdHJ1bmcgdGh1YyIuDQoNCk5oaWV1IG5hbSBsaWVuIFZpbmFzaGluIGJhbyBjYW8g a2hvbmcgdHJ1bmcgdGh1YyB2ZSBzdSBkdW5nIHZvbiwgdmUgZGF1IHR1IHZhIHRpbmggDQpoaW5o IGhvYXQgZG9uZyBzYW4geHVhdCBraW5oIGRvYW5oLiBOYW0gMjAwOSBsbyAxLjYwMCB0eSBkb25n IG5odW5nIGxhaSBiYW8gY2FvIGxhaSANCjc1MCB0eSBkb25nLCBxdXkgMSBuYW0gMjAxMCB0aHVh IGxvIHZhbiBiYW8gY2FvIGxhaSBnYW4gMTAwIHR5IGRvbmcuDQoNCiJLaHV5ZXQgZGllbSBuYXkg Y3VhIGxhbmggZGFvIHRhcCBkb2FuIGxhbSBjaG8gY28gcXVhbiBxdWFuIGx5IE5oYSBudW9jLCBj byBxdWFuIGNodSANCnNvIGh1dSBjYXAgdHJlbiBuYW0ga2hvbmcgZHVuZyB0aHVjIHRyYW5nIG5l biBjaGkgZGFvIGtob25nIHBodSBob3AsIGtob25nIGtpcCB0aG9pIiwgDQpDaGluaCBwaHUgbmhh biBtYW5oLg0KDQpEYW5nIGNodSB5LCBvIGR1b2kgcGhhbiBuaGFuIGRpbmggdmUgdmllYyBiYW8g Y2FvIGtob25nIHRydW5nIHRodWMsIENoaW5oIHBodSBsYWkgbGlldCANCmtlIHJhdCBybyBuaHVu ZyBkb25nIHRoYWkga2llbSBzb2F0ICJsaWVuIHR1YyBuaGFjIG5obywgbGllbiB0dWMgdGhlbyBz YXQiLg0KDQpDaGluaCBwaHUga2hhbmcgZGluaCAibmdheSB0dSBuYW0gMjAwNiBraGkgdGFwIGRv YW4gZGFuZyBwaGF0IHRyaWVuIHRvdCwgVGh1IHR1b25nIGRhIA0KY2hpIGRhbyBraWVtIHRyYSwg Z2lhbSBzYXQgdmllYyBodXkgZG9uZyB2b24sIGRhdSB0dSBoaWVuIGRhaSBob2EgbmFuZyBjYXAg ZG9uZyBtb2kgdGF1IGJpZW4iLg0KDQpOaHUgQ2hpbmggcGh1IG5oYW4gZGluaCB0aGkgdHJvbmcg Y2FjIG5hbSB2dWEgcXVhIGRhIGxpZW4gdHVjIGNhdCBnaWFtIGNhYyBkdSBhbiBraG9uZyANCmNh cCB0aGlldCwgdGh1b25nIHRydWMgQ2hpbmggcGh1IGRhIGhvcCBuaGlldSBsYW4gZGUgdGhhbyBn byBraG8ga2hhbi4gTmFvIGJvIHN1bmcgdm9uIA0KZGlldSBsZSwgcnV0IHZvbiB0dSBuZ2FuIGhh bmcsIGJhbyBoaWVtLCBjaG8gcGhhdCBoYW5oIHRyYWkgcGhpZXUgdHJvbmcgbnVvYywgdmF5IGxh aSB0cmFpIA0KcGhpZXUgQ2hpbmggcGh1LCBnaWFtIHNhdCB0YWkgY2hpbmguLi4gDQoNClRoYW0g Y2hpICJ0dSAyMDA4IGRlbiBuYXkga2hpIHRhcCBkb2FuIGJvYyBsbyBraG8ga2hhbiwgVGh1IHR1 b25nIGxpZW4gdHVjIHlldSBjYXUgDQp0aGVvIHNhdCBjaGkgZGFvIHZhIG5nYW4gY2hhbiBzYWkg cGhhbSIuIFJvaSwgVGh1IHR1b25nIGN1bmcgZGEgbGFwIFRvIGNvbmcgdGFjIGxpZW4gDQpuZ2Fu aCBkZSB4dWF0IG5oaWV1IGdpYWkgcGhhcC4gRGF1IG5hbSAyMDEwIHRoYW5oIHRyYSB0b2FuIGRp ZW4gdmEgZGVuIGdpdWEgbmFtIGJhdCB0YXkgDQp2YW8gdmllYyB0YWkgY28gY2F1Lg0KIlRodW9u ZyB0cnVjIENoaW5oIHBodSB5ZXUgY2F1IHRhcCBkb2FuIHJ1dCBraW5oIG5naGllbSBzYXUgc2Fj IGtoaSBkZSByb2kgdmFvIHRpbmggDQp0cmFuZyBuYXkiLCBiYW8gY2FvIGRhbmggZ2lhLg0KDQpD dW5nIHRhaSBwaGllbiBraGFpIG1hYyBreSBob3AgUUggc2FuZyBuYXksIFRodSB0dW9uZyBkYSBu aGFuICJ0cmFjaCBuaGllbSBjdWEgDQpDaGluaCBwaHUiIHZlIGNhYyBzYWkgcGhhbSBjdWEgVGFw IGRvYW4uDQoNCktlIGhvYWNoIGRlIHZheSBtb2kNCg0KU2F1IGtoaSBkYW5oIGdpYSBuaHVuZyBo YW4gY2hlLCB5ZXUga2VtLCBDaGluaCBwaHUga2hhbmcgZGluaCwgZGFuZyBjaGkgZGFvIHRodWMg DQpoaWVuIG5oaWV1IGdpYWkgcGhhcCBkZSB0YWkgY28gY2F1Lg0KDQpDaGFuZyBoYW4sIGhvYW4g dGhpZW4gdGhlIGNoZSBxdWFuIGx5IG5oYSBudW9jIHZhIHF1YW4gbHkgY3VhIGNodSBzbyBodXUg dm9pIEROIGNvIA0Kdm9uIG5oYSBudW9jLiBLaGkgY2h1YSBraXAgc3VhIGRvaSBxdXkgZGluaCBo aWVuICBoYW5oLCBUaHUgdHVvbmcgZGEgIHlldSBjYXUgY2FjIHRhcCANCmRvYW4sIHRvbmcgY29u ZyB0eSBwaGFpIGJhbyBjYW8gQ2hpbmggcGh1IGtoaSBxdXlldCBkaW5oIG5odW5nIHZhbiBkZSBo ZSB0cm9uZyBuaHUgDQp2aWVjIHZheSB2b24gbyBudW9jIG5nb2FpIHBoYWkgY28geSBraWVuIHRo YW0gZGluaCBjdWEgYm8gcXVhbiBseSB2YSBibyB0YWkgY2hpbmguDQpUaWVuIGhhbmgga2hhbiB0 cnVvbmcsIHF1eWV0IGxpZXQgZ2lhaSBwaGFwIHRhaSBjbyBjYXUsIHNvbSBvbiBkaW5oIHNhbiB4 dWF0LCBjdW5nIGNvIHV5IA0KdGluLCB0aHVvbmcgaGlldSB0YXAgZG9hbi4gIkN1b25nIHF1eWV0 IGtob25nIGRlIHZvIG5vLCBzdXAgZG8sIGdheSB0YWMgZG9uZyB4YXUgZGVuIHN1IA0KcGhhdCB0 cmllbiBjdWEgbmdhbmggY29uZyBuZ2hpZXAgZG9uZyB0YXUsIG11YyBkbyB0aW4gbmhpZW0gdmF5 LCB0cmEgbm8gcXVvYyB0ZSB2YSBtb2kgDQp0cnVvbmcgZGF1IHR1IGNodW5nIGN1YSBkYXQgbnVv YyIuDQoNClRydW9jIG1hdCwgdGh1IGhlcCBwaGFtIHZpIHNhbiB4dWF0IGtpbmggZG9hbmgsIGNh dCBnaWFtIGRhdSB0dSwgcXVhbiBseSBzdSBkdW5nIGhpZXUgDQpxdWEgY2FjIG5ndW9uIHZvbiwg dGFwIHRydW5nIHN1YyBkZSBkdXkgdHJpIG5nYW5oIGRvbmcsIHN1YSBjaHVhIHRhdS4gS2llbiB0 b2FuIGJvIG1heSANCmxhbmggZGFvLCBjbyBnYW5nIGRhbSBiYW8gdG9pIGRhIHZpZWMgbGFtLCBk b2kgc29uZyBjaG8gbmd1b2kgbGFvIGRvbmcuDQoNCkxpZW4gcXVhbiBkZW4gbmh1bmcgc2FpIHBo YW0gdnVhIHF1YSwgQ2hpbmggcGh1IGNobyBoYXksIGRhIHlldSBjYXUga2llbSBkaWVtIHRyYWNo IA0KbmhpZW0gdmEgeHUgbHkgbmdoaWVtIG1pbmggbmh1bmcgbmd1b2kgdmkgcGhhbS4NCg0KIlRh cCBkb2FuIGRhIGxlbiBwaHVvbmcgYW4gZGFtIHBoYW4gdm9pIGNhYyBuZ2FuIGhhbmcsIHRvIGNo dWMgdGluIGR1bmcgdmUgdmllYyB0YWkgY28gDQpjYXUgbm8sIGdpYW4gbm8sIGtob2FuaCBubyB2 YSBrZSBob2FjaCB2YXkgbW9pIiwgQ2hpbmggcGh1IGtoYW5nIGRpbmguDQoNClRoZW8gZG8sIGRh bmcga2hhbiB0cnVvbmcgZGFtIHBoYW4gZGUgZHV5IHRyaSBjYWMgaG9wIGRvbmcgZG8gZGFuZywg ZGEgeGF5IGR1bmcgDQpwaHVvbmcgYW4gc2FwIHhlcCwgZ2lhbSBkYXUgbW9pIEROIHRoYW5oIHZp ZW4gZGUgdGFwIHRydW5nIGRvbmcgdmEgc3VhIGNodWEgdGF1LCBjb25nIA0KbmdoaWVwIHBodSB0 cm8sIGRhbyB0YW8uLi4NCg0KRGVuIDIwMTIgc2F1IGtoaSB0YWkgY28gY2F1IHNlIGNvbiBraG9h bmcgNjAgRE4gdGhhbmggdmllbi4gQ2FjIEROIGNvbiBsYWkgc2UgZHVvYyB4dSANCmx5IGR1b2kg Y2FjIGhpbmggdGh1YyBjaHV5ZW4gbmh1b25nIHZvbiwgYmFuLCBzYXAgbmhhcCwgZ2lhaSB0aGUg cGh1IGhvcC4NCg0KQ2hpbmggcGh1IGN1bmcgc28gbHVvYyBtb3Qgc28gInRoYW5oIHR1dSIgc2F1 IGJhIHRoYW5nIHRhaSBjbyBjYXUsIGNoYW5nIGhhbiwgYmFuIGdpYW8gDQpkdW9jIDUgdGF1IGRv bmcgbW9pLCB0dSBuYXkgZGVuIGN1b2kgbmFtIHNlIGJhbiBnaWFvIHRoZW0gMzUgdGF1IGtoYWMu IEhvbiAxLjAwMCBjb25nIA0KbmhhbiBuZ2hpIHZpZWMgbyBOaGEgbWF5IGRvbmcgdGF1IER1bmcg UXVhdCBkYSB0cm8gbGFpIGxhbSB2aWVjLiBEZW4gdGhhbmcgMS8yMDExIHNlIA0KaGEgdGh1eSBk dW9jIHRhdSBjaG8gZGF1IDEwNC4wMDAgdGFuLg0KDQpEaW5oIGt5IGRhbmggZ2lhIGxhbmggZGFv DQoNCk5oaWV1IGJhaSBob2Mga2luaCBuZ2hpZW0gZHVvYyBydXQgcmEsIG5odSAiY2hpZW4gbHVv YyBwaGF0IHRyaWVuIGtpbmggZG9hbmggNSBuYW0gdmEgDQpoYW5nIG5hbSBjdWEgY2FjIHRhcCBk b2FuIGtpbmggdGUgcGhhaSBkdW9jIGNvIHF1YW4gY2h1IHNvIGh1dSBjYXAgdHJlbiB2YSBjbyBx dWFuIA0KcXVhbiBseSB0aGFtIGRpbmgsIHBoZSBkdXlldCwga2llbSB0cmEsIGdpYW0gc2F0Ii4N Cg0KVmllYyBnaWFvIHF1eWVuIHR1IGNodSBjaG8gdGFwIGRvYW4gbGEgY2FuIHRoaWV0IG5odW5n IHBoYWkgZGFtIGJhbyBob2FuIHRoaWVuIHBoYXAgDQpsdWF0IHZlIGh1eSBkb25nIHZvbiwgZGF1 IHR1LCB0dXllbiBjaG9uLCBzdSBkdW5nLCBkYW5oIGdpYSBjYW4gYm8uDQpCbyB0cmkgZHUgIG1h bmggSG9pIGRvbmcgcXVhbiB0cmksIGJhbiBraWVtIHNvYXQgZHUgbmFuZyBsdWMsIGRhYyBiaWV0 IENodSB0aWNoIEhvaSANCmRvbmcgcXVhbiB0cmkgdmEgVG9uZyBnaWFtIGRvYy4gRGFjIGJpZXQs IHRodWMgaGllbiBuZ2hpZW0gdmllYyBkaW5oIGt5IGRhbmggZ2lhIA0KaGlldSBxdWEgcXVhbiBs eSwgZGlldSBoYW5oIGN1YSBibyBtYXkgbGFuaCBkYW8gRE4uDQoNCiJRdXkgZGluaCBybyBob24g bmhpZW0gdnUgdmEgdHJhY2ggbmhpZW0gY2FjIGNvIHF1YW4gZGFpIGRpZW4gY2h1IHNvIGh1dSwg Y2FjIGJvIGNvIA0KY2h1YyBuYW5nIHF1YW4gbHkgbmhhIG51b2MgdHJvbmcga2llbSB0cmEsIGRh bmggZ2lhLiBHaWFvIGNobyBtb3QgZGF1IG1vaSB0aG9uZyBuaGF0IA0KdGh1YyBoaWVuIGNodWMg bmFuZyBkYWkgZGllbiBjaHUgc28gaHV1IHZvaSBETiBvIGJvLCBkaWEgcGh1b25nLiBUaWVwIHR1 YyBob2FuIHRoaWVuIGNvIA0KY2hlIHZhIHRvIGNodWMgZ2lhbSBzYXQgY2hhdCBjaGUgdGluaCBo aW5oIGhvYXQgZG9uZyBjdWEgRE4sIG5oYXQgbGEgdmllYyBodXkgZG9uZywgc3UgDQpkdW5nIHZv biB2YXkiLCBDaGluaCBwaHUga2hhbmcgZGluaC4gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20u dm4vVGluLXR1Yy9Dby1zdS1iYW8tY2hlLWNoby1WaW5hc2hpbi8xNzk1NSBMYW0gU29uIDI2LjEw LjIwMTAgMDg6MTYgKEdNVCArIDcpIA0KDQpVeSBiYW4gVHUgcGhhcCBRSDogDQoNCkNvIHN1IGJh byBjaGUgY2hvIFZpbmFzaGluISANCg0KKExEKSAtIERvIGxhIG5oYW4gZGluaCBkdW9jIG5ldSBs ZW4gdHJvbmcgYmFvIGNhbyBjdWEgVXkgYmFuIFR1IHBoYXAgUXVvYyBob2kgdGhhbSANCnRyYSBi YW8gY2FvIGN1YSBDaGluaCBwaHUgdmUgY29uZyB0YWMgcGhvbmcsIGNob25nIHRoYW0gbmh1bmcg bmFtIDIwMTAuDQoNClRoZW8gZGFuaCBnaWEgY3VhIG5oaWV1IHZpIERCUUggdGhpIGRheSBsYSBt b3QgdHJvbmcgbmh1bmcgYmFuIGJhbyBjYW8gdGhhbSB0cmEgY2hhdCANCmx1b25nLCBtYW5oIG1l IHZhIHF1eWV0IGxpZXQsIGNoaSByYSB0b25nIHRoZSBuaHVuZyB0b24gdGFpLCBoYW4gY2hlIGN1 YSBjb25nIHRhYyBwaG9uZywgDQpjaG9uZyB0aGFtIG5odW5nIGtob25nIGNoaSBjdWEgbmFtIDIw MTAgbWEgY29uIHRyb25nIG5oaWV1IG5hbSBxdWEuLi4NCg0KQ28gc3UgYmFvIGNoZSBjaG8gc2Fp IHBoYW0gbyBWaW5hc2hpbg0KDQpUcmVuIGNvIHNvIGJhbyBjYW8gY3VhIENoaW5oIHBodSB2ZSBj b25nIHRhYyBwaG9uZywgY2hvbmcgdGhhbSBuaHVuZyAoUENUTiksIFV5IA0KYmFuIFR1IHBoYXAg KFVCVFApIGN1YSBRSCBjaG8gcmFuZyBiYW8gY2FvIGN1YSBDaGluaCBwaHUgdmUgY29uZyB0YWMg UENUTiBuYW0gDQoyMDEwIGRhIHBoYW4gYW5oIG5oaWV1IG1hdCBob2F0IGRvbmcsIGtldCBxdWEg dGh1YyBoaWVuIGNhYyBiaWVuIHBoYXAgcGhvbmcgbmd1YSB2YSANCmNvbmcgdGFjIHBoYXQgaGll biwgeHUgbHkgaGFuaCB2aSB0aGFtIG5odW5nIHRoZW8gcXV5IGRpbmggY3VhIEx1YXQgUENUTiwg cGhhbiB0aWNoIA0KbW90IHNvIHRvbiB0YWksIGhhbiBjaGUuLi4gVHV5IG5oaWVuLCBVQlRQIGNo byByYW5nIG1vdCBzbyBoYW4gY2hlIHRyb25nIHZpZWMgYmFvIGNhbyB2YSANCmRhbmggZ2lhICBj b25nIHRhYyBQQ1ROIGR1b2MgVUJUUCBuZXUgcmEgdHJvbmcgbmFtIDIwMDkgdmEgY2FjIG5hbSB0 cnVvYyB2YW4gY2h1YSANCmR1b2MgQ2hpbmggcGh1IGtoYWMgcGh1Yy4gDQoNCihBbmg6IEFpIGJh byBjaGUgY2hvIFZpbmFzaGluPykNCg0KVmUga2V0IHF1YSB0aGFuaCB0cmEsIGtpZW0gdG9hbiBu aGEgbnVvYywgZ2lhaSBxdXlldCBraGlldSBuYWksIHRvIGNhbyBnb3AgcGhhbiB2YW8gY29uZyAN CnRhYyBwaGF0IGhpZW4gdmEgeHUgbHkgdGhhbSBuaHVuZywgVUJUUCBjbyBiYW4gdGFuIHRoYW5o IHZvaSBiYW8gY2FvIGN1YSBDaGluaCBwaHUuIA0KVHV5IG5oaWVuLCB0aGVvIFVCVFAgdGhpIG1v aSBxdWFuIGhlIGdpdWEgY28gcXVhbiB0aGFuaCB0cmEgdmEgY28gcXVhbiBkaWV1IHRyYSB0YWkg bW90IA0Kc28gZGlhIHBodW9uZyBjaHVhIHRodW9uZyB4dXllbiwga2lwIHRob2ksIGhpZXUgcXVh IGNvbiBoYW4gY2hlLi4uDQoNClZpZWMgcGhhdCBoaWVuIHZpIHBoYW0gY28gZGF1IGhpZXUgdG9p IHBoYW0gbmh1bmcga2hvbmcgZHVvYyB4dSBseSwgbmdhbiBjaGFuIGtpcCANCnRob2ksIGRpZW4g aGluaCBuaHUgdnUgVmluYXNoaW4gcXVhIDExIGxhbiB0aGFuaCB0cmEsIGtpZW0gdG9hbiBuaHVu ZyBzYWkgcGhhbSBuaHUgZGF1IA0KdHUgZGFuIHRyYWksIHRyYW4gbGFuIHRyZW4gbmhpZXUgbGlu aCB2dWMga2hvbmcgbGllbiBxdWFuIGRlbiBjaHVjIG5hbmcgY3VhIHRhcCBkb2FuLCBrZW0gDQpo aWV1IHF1YSwgdGh1YSBsbyBuYW5nIG5lOyB0aW5oIGhpbmggdGFpIGNoaW5oIGR1bmcgdHJ1b2Mg Ym8gdnVjIHBoYSBzYW47IHNhbiB4dWF0IGtpbmggDQpkb2FuaCBkaW5oIHRyZTsgdGluaCBoaW5o IG5vaSBibyBkaWVuIGJpZW4gcGh1YyB0YXA6IDEsNyB2YW4gY29uZyBuaGFuIGJvIHZhIGNodXll biB2aWVjLCANCnRyZW4gNS4wMDAgY29uZyBuaGFuIG1hdCB2aWVjIGxhbSwgbm8gbHVvbmcuLi4g bWEgQ2hpbmggcGh1IHZhIGNhYyBjbyBxdWFuIGNodWMgbmFuZyANCmtob25nIGJpZXQsIGtob25n IGFpIGNoaXUgdHJhY2ggbmhpZW0uIFF1YSBkbyB4YSBob2kgdmEgY3UgdHJpIHJhdCBidWMgeHVj IGNobyByYW5nIGNvIHN1IA0KYmFvIGNoZSBjaG8gbmh1bmcgdmllYyBsYW0gc2FpIHRyYWksIHZp IHBoYW0gcGhhcCBsdWF0IGN1YSBWaW5hc2hpbiBsYW0gdGhpZXQgaGFpIGxvbiBkZW4gDQp0aWVu IHZhIHRhaSBzYW4gY3VhIE5oYSBudW9jLg0KDQpEaWV1IGRhbmcgbHV1IHkgbGEgdHJvbmcgcXVh IHRyaW5oIHRodWMgaGllbiBuaGllbSB2dSB0aGFuaCB0cmEsIGtpZW0gdG9hbiBuaGEgbnVvYyAN Cmtob25nIGNodXllbiBjbyBxdWFuIGNvIHRoYW0gcXV5ZW4geHUgbHkgaGluaCBzdSBtb3QgdHJ1 b25nIGhvcCBuYW8uIFRodWMgdGUgY2FjIHZ1IA0KbmhhbiBob2kgbG8gY2hpIGtoaSBkdW9jIHBo YXQgaGllbiBtb2kgdGhheSBybyBzdSBtb2Mgbm9pLCBiYW8gY2hlIHRoYW0gY2hpIGNvbiBodW9u ZyANCmRhbiBsYXAgY2h1bmcgdHUgZGUgaG9wIHRodWMgaG9hIHNhaSBwaGFtIGdpdWEgbmd1b2kg Y28gY2h1YyB2dSwgcXV5ZW4gaGFuIHZhIG5ndW9pIA0KZHVhIGhvaSBsby4NCg0KVGluaCB0cmFu ZyBjYWMgdnUgdGhhbSBuaHVuZyBkdW9jIHBoYXQgaGllbiB2YSBraG9pIHRvIGRpZXUgdHJhIGNv IHh1IGh1b25nIGdpYW0sIHRyb25nIA0Ka2hpIHRoYW0gbmh1bmcgZHVvYyBjYWMgY28gcXVhbiBj aHVjIG5hbmcgZGFuaCBnaWEgbGEgdmFuIG5naGllbSB0cm9uZywgZGllbiBiaWVuIA0KcGh1YyB0 YXAgdmEgY2h1YSBkdW9jIG5nYW4gY2hhbiwgZGF5IGx1aSBjdW5nIGxhIHZhbiBkZSBkdW9jIFVC VFAgZGFjIGJpZXQgcXVhbiB0YW0uIA0KVUJUUCBjaG8gcmFuZywgZGVuIG5heSBjYWMgY28gcXVh biBjaHVjIG5hbmcgcGhhdCBoaWVuLCBkaWV1IHRyYSwgdHJ1eSB0bywgeGV0IHh1IGhhbmcgDQp0 cmFtIGRvaSB0dW9uZyB0aGFtIG5odW5nIG5odW5nIGNhIG51b2MgbW9pIGNoaSBjbyAyNSBjbyBx dWFuLCB0byBjaHVjLCBkb24gdmkgcGhhdCANCmhpZW4gZHVvYyB0aGFtIG5odW5nLg0KDQpQaGF0 IGhpZW4gdGhhbSBuaHVuZyBjaHUgeWV1IG8gY2FwIHhhDQoNCk5nb2FpIHJhLCB0aGVvIFVCVFAg dGhpIHRoZSBjaGUgY2hpbmggc2FjaCB0cmVuIG5oaWV1IGxpbmggdnVjIGNodWEgZG9uZyBibywg dGhpZXUgdGhvbmcgDQpuaGF0LCBjb24gbmhpZXUgc28gaG8gYmF0IGNhcCBuaGF0IGxhIHRyb25n IGNhYyBsaW5oIHZ1YyBkYXUgdHUsIGR1IGFuIHhheSBkdW5nLCBkYXUgdGhhdSwgDQpxdWFuIGx5 IGNvbmcgc2FuLCBjYXAgcGhlcCBraGFpIHRoYWMgdGFpIG5ndXllbiwga2hvYW5nIHNhbi4gVHJp bmggZG8sIG5hbmcgbHVjIGN1YSBtb3QgDQpibyBwaGFuIGNhbiBibywgY29uZyBjaHVjIGxhbSB0 aGFtIG11dSB0cm9uZyBob2FjaCBkaW5oIGNoaW5oIHNhY2ggY29uIGhhbiBjaGUsIHRyYWNoIA0K bmhpZW0gY2h1YSBjYW8sIGNodWEgbmdhbmcgdGFtIHZvaSBuaGllbSB2dS4gQmVuIGNhbmggZG8s IGR1IGx1YW4gY29uIGJhbiBraG9hbiB2ZSANCnRpbmgga2hhY2ggcXVhbiB0cm9uZyB2aWVjIHRo YW0gbXV1IHhheSBkdW5nIHZhIGhvYWNoIGRpbmggY2FjIGNoaW5oIHNhY2gsIHBoYXAgbHVhdCAN CnZhIGNobyByYW5nIGNvIGJpZXUgaGllbiBjdWMgYm8gbmhhbSBiYW8gdmUgbG9pIGljaCBjdWEg bW90IGJvIHBoYW4sIG1vdCBuaG9tIG5ndW9pIA0KbWEgY2h1YSBxdWFuIHRhbSBkZW4gbG9pIGlj aCBOaGEgbnVvYywgY3VhIHRvYW4geGEgaG9pLg0KDQpIb2F0IGRvbmcgY3VhIGNhYyBiYW4gY2hp IGRhbyB2YSBjYWMgZG9uIHZpIGNodXllbiB0cmFjaCB2ZSBQQ1ROIHZhbiBjb24gaGFuIGNoZS4g DQpUcnVvbmcgYmFuIGNoaSBkYW8gbyBjYXAgdGluaCBpdCBxdWFuIHRhbSBkZW4gaG9hdCBkb25n IGN1YSBCQ0QuIERpZXUgZGFuZyBsdXUgeSBsYSBjbyANCmNoZSBjaGkgZGFvIGN1YSBjYWMgYmFu IHRyZW4gdGh1YyB0ZSBjbyBiaWV1IGhpZW4gdGFvIHJhIHN1IHkgbGFpLCB0aGlldSBjaHUgZG9u ZyBjdWEgY2FjIGNvIA0KcXVhbiBjaHVjIG5hbmcsIGNhYyBkb24gdmkgY2h1eWVuIHRyYWNoIFBD VE4uLi4gRHUgbHVhbiB4YSBob2kgY2hvIHJhbmcgdmllYyB0aGFuaCBsYXAgDQpCQ0QgUENUTiBj aHVhIGRlbSBsYWkgaGlldSBxdWEgbmh1IG1vbmcgbXVvbiwgY2FuIHhlbSBsYWkgY28gY2hlIG5h eS4NCg0KSGlldSBxdWEgaG9hdCBkb25nIGN1YSBjYWMgY28gcXVhbiBjaHV5ZW4gdHJhY2ggY2hv bmcgdGhhbSBuaHVuZyBjdW5nIGR1b2MgeGFjIGRpbmggDQpsYSBjaHVhIGNhbywgdGhpZXUgdGlj aCBjdWMuIE1vdCBzbyB2dSB2aWVjIGR1b2MgcGhhdCBoaWVuLCB4dSBseSBkYSBsYW0gY2hvIGR1 IGx1YW4gYnVjIA0KeHVjIG5odSB2dSBvbmcgVm8gTmhhdCBEdXkgLSBUb25nIEdpYW0gZG9jIEN0 eSBjYW9zdSBTb24gTGEgLSBuaGFuIGhvaSBsbyAzMDAgdHJpZXUgDQpkb25nLCBzYXUgMyBuZ2F5 IHRhbSBnaXUgZHVvYyBjbyBxdWFuIGRpZXUgdHJhIGNobyB0YW0gdGhhLi4uTmdvYWkgcmEsIHRo ZW8gYmFvIGNhbyBjdWEgDQpDaGluaCBwaHUgdGhpIHNvIGJpIGNhbyBwaGFtIHRvaSB0aGFtIG5o dW5nIGJpIHRvYSBhbiBwaGF0IHR1IG5odW5nIGNobyBodW9uZyBhbiB0cmVvIA0KbGEgMTY2LzQ3 OSBiaSBjYW8gZHVhIHJhIHhldCB4dSwgY2hpZW0gdGkgbGUgMzQsNiU7IHNvIGx1b25nIGJpIGNh byBiaSBwaGF0IHR1IGR1b2kgMyBuYW0gDQpsYSAxMDkvNDk3IGJpIGNhbywgY2hpZW0gdGkgbGUg MjIsNyUuIENhYyB2dSB0aGFtIG5odW5nIGR1b2MgcGhhdCBoaWVuIGNodSB5ZXUgbyBjYXAgDQpj byBzby4NCg0KVHJvbmcgbmhpZXUgbmFtIHF1YSwgc28gYmkgY2FuIGJpIGtob2kgdG8gdmUgaGFu aCB2aSB0aGFtIG5odW5nIGxhIGNhbiBibyBjYXAgeGEsIA0KcGh1b25nIGNoaWVtIHRpIGxlIGNh byAoY2FwIHhhIGNoaWVtIDMwLDklLCBjYXAgcXVhbiwgaHV5ZW4gY2hpZW0gMjIsNSUsIGNhcCB0 aW5oIA0KMTMsMSUsIGNhcCB0cnVuZyB1b25nIDAsMyUpLiBUaGVvIFVCVFAgdGhpIGRheSBsYSBt b3QgdGh1YyB0cmFuZyBjYW4gcXVhbiB0YW0sIGRhbmggDQpnaWEgZHVuZyBtdWMgZGUgdGltIHJh IG5ndXllbiBuaGFuIGtoYWMgcGh1Yy4gVm9pIGtldCBxdWEgbmF5IGRhIHRhbyBjbyBzbyBjaG8g ZHUgbHVhbiANCnhhIGhvaSB2YSBjdSB0cmkgY2hvIHJhbmcgY29uZyB0YWMgZGF1IHRyYW5oIFBD VE4gdGhpZXUgcXV5ZXQgbGlldCwgY29uIG5lIG5hbmcsIG51b25nIA0KbmhlLg0KDQpVQlBMIGRl IG5naGkgQ2hpbmggcGh1IGNhbiB0aWVwIHR1YyBob2FuIHRoaWVuIGNhYyBiaWVuIHBoYXAgcGhv bmcgbmd1YSB0aGFtIG5odW5nLCANCmJhbyBkYW0gdGh1YyBoaWVuIGNvIGhpZXUgcXVhIHRyZW4g dGh1YyB0ZSBuaHUgdGh1YyBoaWVuIGRlIGFuIGNhaSBjYWNoIGNoZSBkbyB0aWVuIA0KbHVvbmcs IGRlIGFuIGtpZW0gc29hdCB0aHUgbmhhcCBjdWEgbmd1b2kgY28gY2h1YyB2dSwgcXV5ZW4gaGFu OyBxdXkgZGluaCB0cmFjaCBuaGllbSANCmdpYWkgdHJpbmggY3VhIGNhbiBibywgY29uZyBjaHVj LiAgICAgIA0KDQpPICBkYXUsIGxpbmggdnVjIG5hbyBsaWVuIHF1YW4gZGVuIHF1eWVuIHZhIGxv aSBpY2ggZGV1IGNvIHRoYW0gbmh1bmcNCg0KSGllbiBuYXksIGR1IGx1YW4geGEgaG9pIHZhIHkg a2llbiBjdWEgbW90IGJvIHBoYW4gY3UgdHJpIGNobyByYW5nLCBuZ3VvaSBkYW4sIGRvYW5oIA0K bmdoaWVwIGtoaSBjYW4gZ2lhaSBxdXlldCBjb25nIHZpZWMgbGllbiBxdWFuIHRvaSBuZ3VvaSBj byB0aGFtIHF1eWVuLCB2aSBsb2kgaWNoIGN1YSANCm1pbmggaG8gc2FuIHNhbmcgZHVhIGhvaSBs byBkZSBkdW9jIHZpZWM7IGNhbiBibywgY29uZyBjaHVjIG5oYSBudW9jIGN1bmcgY29pIHZpZWMg DQpuaGFuIHRpZW4gY3VhIG5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIGR1YSBraGkgZ2lhaSBxdXll dCBjb25nIHZpZWMgbGEgY2h1eWVuIGR1b25nIA0KbmhpZW4sIGJpbmggdGh1b25nLCBuaGFuIHJv aSBob2EgcXVlbiwga2hvbmcgY28gdGhheSB0aGlldSB2YSBwaGF0IHNpbmggdGluaCB0cmFuZyBu aHVuZyANCm5oaWV1LiBRdWEgZG8sIG5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIGNobyByYW5nIGJh dCBreSBvIGRhdSwgbGluaCB2dWMgbmFvIGNvIGxpZW4gcXVhbiANCnRvaSBxdXllbiB2YSBsb2kg aWNoIGN1bmcgZGV1IGNvIHRoYW0gbmh1bmcuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyNTAwMDgxNC5hc3B4IE5ndXlldCBNaW5oIDI1LzEw LzIwMTAgMDowOCANCkJhbyBjYW8gY3VhIFV5IGJhbiBUdSBwaGFwIFF1b2MgaG9pOiANCg0KQ3Ug dHJpIGNobyByYW5nIGNvIHN1IGJhbyBjaGUgY2hvIHNhaSBwaGFtIGN1YSBWaW5hc2hpbiAgIA0K ICANCiogUGhhdCBoaWVuIHRoYW0gbmh1bmcgbmhpZXUgbmh1bmcgeHUgbHkgaXQgDQoNCiJDdSB0 cmkgcmF0IGJ1YyB4dWMgY2hvIHJhbmcgY28gc3UgYmFvIGNoZSBjaG8gbmh1bmcgdmllYyBsYW0g c2FpIHRyYWksIHZpIHBoYW0gcGhhcCBsdWF0IA0KY3VhIFZpbmFzaGluIGxhbSB0aGlldCBoYWkg bG9uIGRlbiB0aWVuIHZhIHRhaSBzYW4gY3VhIG5oYSBudW9jIi4gDQpEbyBsYSBtb3QgdHJvbmcg bmh1bmcgbm9pIGR1bmcgZHVvYyBuZXUgdHJvbmcgYmFvIGNhbyB0aGFtIHRyYSBjb25nIHRhYyBw aG9uZywgY2hvbmcgDQp0aGFtIG5odW5nIG5hbSAyMDEwIG1hIFV5IGJhbiBUdSBwaGFwIGd1aSB0 b2kgY2FjIGRhaSBiaWV1IFF1b2MgaG9pLiBTbyB2b2kgbm9pIGR1bmcgDQp0aGFtIHRyYSB0cmlu aCB0YWkgcGhpZW4gaG9wIDM1IFV5IGJhbiBUVlFIIHRydW9jIGRvLCBiYW8gY2FvIGxhbiBuYXkg Ym8gc3VuZyB0aGVtIA0KbW90IHNvIG5vaSBkdW5nLCB0cm9uZyBkbyBjbyBkYW5oIGdpYSB2ZSBz YWkgcGhhbSBjdWEgVmluYXNoaW4gdmEgdHJhY2ggbmhpZW0gcXVhbiBseSANCm5oYSBudW9jIHZv aSB0YXAgZG9hbiBuYXkuIA0KDQoiTW90IHNvIGNhbiBibyBraWVtIHRvYW4gZGEgdmkgcGhhbSBx dXkgdGFjIGRhbyBkdWMgbmdoZSBuZ2hpZXAsIHZpIHBoYW0gcGhhcCBsdWF0LCBjbyANCmhhbmgg dmkgdGhhbSBuaHVuZy4gVGh1YyB0ZSBjaG8gdGhheSBjYWMgdnUgbmhhbiBob2kgbG8gY2hpIGto aSBiaSBwaGF0IGhpZW4gbW9pIHRoYXkgcm8gDQpzdSBtb2Mgbm9pLCBiYW8gY2hlLCB0aGFtIGNo aSBjb24gaHVvbmcgZGFuIGxhcCBjaHVuZyB0dSBkZSBob3AgdGh1YyBob2Egbmh1bmcgc2FpIA0K cGhhbSBnaXVhIG5ndW9pIGNvIGNodWMgdnUsIHF1eWVuIGhhbiB2YSBuZ3VvaSBkdWEgaG9pIGxv LiIgQmFvIGNhbyB0aGFtIHRyYSBjb25nIHRhYyANCnBob25nLCBjaG9uZyB0aGFtIG5odW5nIG5h bSAyMDEwIGN1YSBVeSBiYW4gVHUgcGhhcCANCg0KVGhhbmggdHJhLCBraWVtIHRvYW4gZGV1Li4u IGNvIHZhbiBkZQ0KDQpUaGVvIENodSBuaGllbSBVeSBiYW4gVHUgcGhhcCBMZSBUaGkgVGh1IEJh LCBVeSBiYW4gVHUgcGhhcCB0YW4gdGhhbmggdm9pIGtldCBxdWEgDQp0aGFuaCB0cmEsIGtpZW0g dG9hbiwgZ2lhaSBxdXlldCBraGlldSBuYWkgdG8gY2FvIG5hbSAyMDEwIGR1b2MgbmV1IHRyb25n IEJhbyBjYW8gY29uZyANCnRhYyBwaG9uZywgY2hvbmcgdGhhbSBuaHVuZyBjdWEgQ2hpbmggcGh1 LiBUdXkgbmhpZW4sIGNvbiBuaGlldSB0b24gdGFpIG1hIFV5IGJhbiBUdSANCnBoYXAgY2hpIHJh IG5odSBraGkgcGhhdCBoaWVuIHNhaSBwaGFtIGNvIGRhdSBoaWV1IHRvaSBwaGFtLCBjbyBxdWFu IHRoYW5oIHRyYSBjaHV5ZW4gDQpjaG8gY28gcXVhbiBkaWV1IHRyYSBjaGFtLCBraG9uZyBraXAg dGhvaSwgZGFuIGRlbiBjb25nIHRhYyB0aHUgdGhhcCBjaHVuZyBjdSBkZSBraG9pIA0KdG8sIGRp ZXUgdHJhIHZ1IGFuIGdhcCBuaGlldSBraG8ga2hhbiwgdHJvIG5nYWkuIFZpZWMgdGh1IGhvaSB0 YWkgc2FuIHZhIGtoYWMgcGh1YyBoYXUgcXVhIA0KZG8gaGFuaCB2aSB0aGFtIG5odW5nIGdheSBy YSBjb24gY2hhbTsgbmhpZXUgc2FpIHBoYW0gZHVvYyBwaGF0IGhpZW4gbmh1bmcgeHUgbHkgDQpo aW5oIHN1IGl0LiANCiANCihBbmg6IFZ1IGFuIHRoYW0gbmh1bmcgY3VhIG9uZyBIdXluaCBOZ29j IFNpIGdheSBjaGFuIGRvbmcgZHUgbHVhbiBjaGkgZHVvYyBwaGF0IA0KaGllbiB0dSBwaGlhIE5o YXQgQmFuIC0gQW5oOiBEaWVwIER1YyBNaW5oKSANCg0KVGhlbyBVeSBiYW4gVHUgcGhhcCwgdmll YyBwaGF0IGhpZW4gdmkgcGhhbSBjbyBkYXUgaGlldSB0b2kgcGhhbSBuaHVuZyBraG9uZyBkdW9j IA0KeHUgbHksIG5nYW4gY2hhbiBraXAgdGhvaSwgZGllbiBoaW5oIG5odSB2dSBWaW5hc2hpbiBx dWEgMTEgbGFuIHRoYW5oIHRyYSwga2llbSB0b2FuIA0Kbmh1bmcgc2FpIHBoYW0gbmh1IGRhdSB0 dSBkYW4gdHJhaSB0cmFuIGxhbiB0cmVuIG5oaWV1IGxpbmggdnVjIGtob25nIGxpZW4gcXVhbiBk ZW4gY2h1YyANCm5hbmcgY3VhIHRhcCBkb2FuLCBrZW0gaGlldSBxdWEsIHRodWEgbG8gbmFuZyBu ZTsgdGluaCBoaW5oIHRhaSBjaGluaCBkdW5nIHRydW9jIGJvIHZ1YyANCnBoYSBzYW47IHNhbiB4 dWF0IGtpbmggZG9hbmggZGluaCB0cmU7IHRpbmggaGluaCBub2kgYm8gZGllbiBiaWVuIHBodWMg dGFwOyAxLDcgdmFuIGNvbmcgDQpuaGFuIGJvIHZhIGNodXllbiB2aWVjOyB0cmVuIDUuMDAwIGNv bmcgbmhhbiBtYXQgdmllYyBsYW0sIG5vIGx1b25nLi4uICJtYSBDaGluaCBwaHUgDQp2YSBjYWMg Y28gcXVhbiBjaHVjIG5hbmcga2hvbmcgYmlldCwga2hvbmcgYWkgY2hpdSB0cmFjaCBuaGllbS4g WGEgaG9pIHZhIGN1IHRyaSByYXQgYnVjIA0KeHVjIGNobyByYW5nIGNvIHN1IGJhbyBjaGUgY2hv IG5odW5nIHZpZWMgbGFtIHNhaSB0cmFpLCB2aSBwaGFtIHBoYXAgbHVhdCBjdWEgVmluYXNoaW4g DQpsYW0gdGhpZXQgaGFpIGxvbiBkZW4gdGllbiB2YSB0YWkgc2FuIGN1YSBuaGEgbnVvYyIuDQoN CkRpZXUgZGFuZyBsdXUgeSBraGFjIGxhIHRyb25nIHF1YSB0cmluaCB0aHVjIGhpZW4gbmhpZW0g dnUgdGhhbmggdHJhLCBLaWVtIHRvYW4gTmhhIA0KbnVvYyBjYWMgY2FwIGRhIHBoYXQgaGllbiBu aGlldSBzYWkgcGhhbSwga2llbiBuZ2hpIHRodSBob2kgbmhpZXUgdGllbiB2YSB0YWkgc2FuIG5o dW5nIA0KS2llbSB0b2FuIE5oYSBudW9jIGtob25nIGNodXllbiBjbyBxdWFuIGNvIHRoYW0gcXV5 ZW4geHUgbHkgaGluaCBzdSBtb3QgdHJ1b25nIGhvcCANCm5hbzsgc28gdnUgdmllYyBkdW9jIGNv IHF1YW4gdGhhbmggdHJhIGNodXllbiBjaG8gY28gcXVhbiBkaWV1IHRyYSBjdW5nIHJhdCBpdC4g VGhlbSB2YW8gDQpkbywgIm1vdCBzbyBjYW4gYm8ga2llbSB0b2FuIGRhIHZpIHBoYW0gcXV5IHRh YyBkYW8gZHVjIG5naGUgbmdoaWVwLCB2aSBwaGFtIHBoYXAgDQpsdWF0LCBjbyBoYW5oIHZpIHRo YW0gbmh1bmcuIFRodWMgdGUgY2hvIHRoYXkgY2FjIHZ1IG5oYW4gaG9pIGxvIGNoaSBraGkgYmkg cGhhdCBoaWVuIG1vaSANCnRoYXkgcm8gc3UgbW9jIG5vaSwgYmFvIGNoZSwgdGhhbSBjaGkgY29u IGh1b25nIGRhbiBsYXAgY2h1bmcgdHUgZGUgaG9wIHRodWMgaG9hIA0Kbmh1bmcgc2FpIHBoYW0g Z2l1YSBuZ3VvaSBjbyBjaHVjIHZ1LCBxdXllbiBoYW4gdmEgbmd1b2kgZHVhIGhvaSBsbyIsIGJh byBjYW8gZGFuaCBnaWEuDQoNCk5oYW4gaG9pIGxvIHF1ZW4gdGF5Li4uDQoNClV5IGJhbiBUdSBw aGFwIG5oYW4geGV0OiBIaWVuIGR1IGx1YW4geGEgaG9pIHZhIHkga2llbiBjdWEgbW90IGJvIHBo YW4gY3UgdHJpIGNobyByYW5nLCANCm5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIGtoaSBjYW4gZ2lh aSBxdXlldCBjb25nIHZpZWMgbGllbiBxdWFuIHRvaSBuZ3VvaSBjbyB0aGFtIHF1eWVuLCANCnZp IGxvaSBpY2ggY3VhIG1pbmggaG8gc2FuIHNhbmcgZHVhIGhvaSBsbyBkZSBkdW9jIHZpZWM7IGNh biBibyBjb25nIGNodWMgKENCQ0MpIG5oYSANCm51b2MgY3VuZyBjb2kgdmllYyBuaGFuIHRpZW4g Y3VhIG5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIGtoaSBnaWFpIHF1eWV0IGNvbmcgdmllYyBsYSAN CmNodXllbiBkdW9uZyBuaGllbiwgYmluaCB0aHVvbmcsIG5oYW4gcm9pIGhvYSBxdWVuLCAia2hv bmcgY28gdGhheSB0aGlldSIgdmEgcGhhdCBzaW5oIA0KdGluaCB0cmFuZyBuaHVuZyBuaGlldS4g IlZpIHRoZSwgbmd1b2kgZGFuIHZhIGRvYW5oIG5naGllcCAgY2hvIHJhbmcgYmF0IGt5IG8gZGF1 LCBsaW5oIA0KdnVjIG5hbyBjbyBsaWVuIHF1YW4gdG9pIHF1eWVuIHZhIGxvaSBpY2ggY3VuZyBk ZXUgY28gdGhhbSBuaHVuZyIuDQoNClRyb25nIGJhbyBjYW8gdGhhbSB0cmEsIFV5IGJhbiBUdSBw aGFwIGN1bmcgbmV1IHRodWMgdHJhbmcgdmllYyBrZSBraGFpLCBtaW5oIGJhY2ggdmEgDQp4YWMg bWluaCB0YWkgc2FuIGN1YSBDQkNDLCBuZ3VvaSBjbyBjaHVjIHZ1LCBxdXllbiBoYW4gY29uIGhp bmggdGh1YzsgdmllYyB0cmEgbHVvbmcgDQpxdWEgdGFpIGtob2FuIHRhaSBBVE0ga2hvbmcgY28g dGFjIGR1bmcga2llbSBzb2F0IHRodSBuaGFwIGN1YSBDQkNDIHZhIG5ndW9pIGNvIA0KY2h1YyB2 dSwgcXV5ZW4gaGFuIHZhIGRhYyBiaWV0IGxhICJ4dSBseSB0cmFjaCBuaGllbSBuZ3VvaSBkdW5n IGRhdSBjbyBxdWFuLCAgdG8gY2h1YywgDQpkb24gdmkgZGUgeGF5IHJhIHRoYW0gbmh1bmcgY28g YmlldSBoaWVuIG51b25nIG5oZSwgY2h1YSBuZ2hpZW0gbWluaCIuDQoNCkRhbmcgY2h1IHksIG1v dCBzbyBoYW4gY2hlIHRyb25nIHZpZWMgYmFvIGNhbyB2YSBkYW5oIGdpYSBjb25nIHRhYyBwaG9u ZywgY2hvbmcgdGhhbSANCm5odW5nIGRhIGR1b2MgVXkgYmFuIFR1IHBoYXAgbmV1IHRyb25nIG5h bSAyMDA5IHZhIGNhYyBuYW0gdHJ1b2MgdmFuIGNodWEgZHVvYyANCkNoaW5oIHBodSBraGFjIHBo dWMuIERvIGxhIEJhbyBjYW8gQ2hpbmggcGh1IGNodWEgbmV1IGR1b2MgY3UgdGhlIGJvLCBuZ2Fu aCwgZGlhIA0KcGh1b25nLCBjbyBxdWFuLCB0byBjaHVjIGRvbiB2aSBjb24gZGUgeGF5IHJhIG5o aWV1IHRoYW0gbmh1bmcsIG5odW5nIG5vaSBkZSB4YXkgcmEgDQpjYWMgdnUgdGhhbSBuaHVuZyBu Z2hpZW0gdHJvbmc7IGNodWEgeGFjIGRpbmggZGF5IGR1IG5odW5nIGNhbiBjdSB2YSB0aWV1IGNo aSBsYW0gY28gDQpzbyBraG9hIGhvYyB2YSB0aHVjIHRpZW4gY2hvIHZpZWMgZGFuaCBnaWEgdGlu aCBoaW5oIHRoYW0gbmh1bmcuDQoNClRpZXAgeHVjIHZvaSBiYW8gY2hpIGJlbiBoYW5oIGxhbmcg a3kgaG9wIFF1b2MgaG9pIG5nYXkgMjMuMTAgdmUgdGlldSBjaGkgZGFuaCBnaWEgDQp0aW5oIGhp bmggdGhhbSBuaHVuZyB0aG9pIGdpYW4gdG9pLCBUb25nIHRoYW5oIHRyYSBDaGluaCBwaHUgVHJh biBWYW4gVHJ1eWVuIGNobyBiaWV0LCANClRoYW5oIHRyYSBDaGluaCBwaHUgc2UgdG8gY2h1YyBo b2kgdGhhbyBkZSB4YWMgZGluaCB0aWV1IGNoaSBkYW5oIGdpYSBjaG8gcm8gcmFuZyB2ZSANCnRo YW0gbmh1bmcuIE9uZyBUcnV5ZW4gY3VuZyBjaG8gcmFuZywgY28gdGlldSBjaGkgcm9pIG5odW5n IGRpZXUgcXVhbiB0cm9uZyBuaGF0IHZhbiANCnBoYWkgY28gcGh1b25nIHRpZW4gdGhlbyBkb2ks IGRhbmggZ2lhOyBjb24gbmd1b2kgdGhhbSBnaWEgZGFuaCBnaWEgcGhhaSBsYSBuaHVuZyBuZ3Vv aSANCmNvIHRyYWNoIG5oaWVtLCB0cnVuZyB0aHVjIGtoYWNoIHF1YW4sIGNvIGNoZSBraWVtIHNv YXQgY3VuZyBwaGFpIGRhbSBiYW8gbWluaCBiYWNoIA0Ka2hhY2ggcXVhbi4gIk5ldSBraG9uZyB0 aGkgZHUgY28gZGUgcmEgdGlldSBjaGkgbmh1bmcgZGUgdHUgZGFuaCBnaWEgdGhpIGtoaSB0aGF5 IGxpZW4gDQpxdWFuIGRlbiBiYW4gdGhhbiBzZSB0aW0gY2FjaCBnaWFtIG5oZSB2YW4gZGUgaG9h YyBiYW8gY2FvIGtob25nIHRydW5nIHRodWMiLCBvbmcgVHJ1eWVuIG5vaS4gDQoNCmh0dHA6Ly90 dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvNDA3NDY3L1Z1LVZpbmFzaGluLUNhbi1tby14ZS1k ZW4tbm9pLWRlbi1jaG9uIC5odG1sIDI1LzEwLzIwMTAsIDA3OjQ4IChHTVQrNykgDQoNClZ1IFZp bmFzaGluOiBDYW4gbW8geGUgZGVuIG5vaSBkZW4gY2hvbiAgDQoNClRUIC0gVHJhbyBkb2kgdm9p IHBob25nIHZpZW4gVHVvaSBUcmUgdmUgdHJhY2ggbmhpZW0gY3VhIGNhYyBjbyBxdWFuIHF1YW4g bHkgZG9pIHZvaSB2dSANCnZpZWMgVmluYXNoaW4sIGRhaSBiaWV1IExlIFZhbiBDdW9uZywgcGhv IHRydW9uZyBkb2FuIGRhaSBiaWV1IFF1b2MgaG9pIHRpbmggVGhhbmggDQpIb2EsIG5vaToNCg0K KEFuaDogRGFpIGJpZXUgUXVvYyBob2kgTGUgVmFuIEN1b25nLiBBbmg6IFYuRFVORykgDQoNCi0g VmluYXNoaW4gbGEgdGFwIGRvYW4ga2luaCB0ZSwgQ2hpbmggcGh1IHZhIGJvIG5nYW5oIGxpZW4g cXVhbiBwaGFpIHF1YW4gbHksIGNodSBjdSBub2kgDQpidW9uZyBsb25nLCBkZSBsYW5oIGRhbyBW aW5hc2hpbiAiZ2lhIHRydW9uZyIgbWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGtob25nIGJpZXQs IA0Ka2hvbmcgbmdhbiBkdW9jIGxhIHZvIGx5LiBEYW4gbXVvbiBRdW9jIGhvaSBtbyB4ZSB2YW4g ZGUgbmF5IGRlbiBub2kgZGVuIGNob24sIHh1IGx5IA0KdHJhY2ggbmhpZW0gbmdoaWVtIG1pbmgs IHR1IGRvIGNoYW4gY2hpbmggY28gY2hlIGRpZXUgaGFuaC4NCg0KKiBOaGlldSBkYWkgYmlldSBj aG8gcmFuZyBiYW8gY2FvIGN1YSBDaGluaCBwaHUgY2h1YSBjdSB0aGUuIE9uZyB0aGF5IHRoZSBu YW8/DQoNCi0gQmFvIGNhbyBkbyBsb2kgY2hvIGNodSB0cnVvbmcgdHJ1bmcgdW9uZywga2h1eWV0 IGRpZW0gY2h1IHlldSBvIGxhbmggZGFvIHRhcCBkb2FuLiANCkNoaW5oIHBodSBjaGkgY28gdHJh Y2ggbmhpZW0gY2h1bmcsIHRpbiB2YW8gYmFvIGNhbyBraG9uZyBkdW5nIHN1IHRoYXQgY3VhIFZp bmFzaGluLCANCmtob25nIGNoaSBkYW8gc2F0LiBUb2kgY2hvIGRvIGxhIGNhY2ggbmhpbiBuaGFu IGtob25nIGRpIHRoYW5nIHZhbyB0aHVjIGNoYXQuIFZpIENoaW5oIA0KcGh1LCBibywgbmdhbmgg bGEgY28gcXVhbiBxdWFuIGx5LCBzYW8gbGFpIGNoaSBuZ2hlIGJhbyBjYW8/IFBoYWkgcXVhbiBs eSBiYW5nIGNhYyBxdXkgDQpkaW5oLCBnaWFvIGNobyBobyB0YWkgc2FuLCBxdXllbiBsb24gdmF5 IG1hIGtob25nIHF1eSBkaW5oIHRoaWV0IGNoZSBxdWFuIGx5LCBnaWFtIHNhdCANCmR1IGxhIGto b25nIGhvYW4gdGhhbmggbmhpZW0gdnUuIEtob25nIGhvYW4gdGhhbmggbmhpZW0gdnUgdGhpIHRo dSBuaGF0IGxhIGRvIHRyaW5oIA0KZG8gdGhpZXU7IHRodSBoYWkgbGEgdGhpZXUgdHJhY2ggbmhp ZW07IHRodSBiYSBsYSBjbyBuaG9tIGxvaSBpY2gsIGNvIHhheSByYSBjYWkgZ2kgdGhpIGRvIA0K Y28gY2hlLiANCg0KKiBWYXkgdGhlbyBvbmcsIGRlIFZpbmFzaGluIG5vIG5hbiBuaHUgdGhlIHRo aSB0cmFjaCBuaGllbSB0aHVvYyB2ZSBhaT8NCg0KLSBUaGVvIHBoYW4gY2FwIHRyYWNoIG5oaWVt LCBUaHUgdHVvbmcgYm8gbmhpZW0gbGFuaCBkYW8gdGFwIGRvYW4gbWEgZGUgbmh1IHRoZSB0aGkg DQpUaHUgdHVvbmcgcGhhaSBjaGl1IHRyYWNoIG5oaWVtLiBOZXUgVGh1IHR1b25nIGJhbiwga2hv bmcgcXVhbiBoZXQgZHVvYyB0aGkgcGhhaSBjbyANCmRvbiB2aSBjaHV5ZW4gdHJhY2ggcXVhbiBs eS4gTmV1IFRodSB0dW9uZyBnaWFvIGNobyBjYWMgYm8gbWEgY2FjIGJvIGtob25nIGhvYW4gDQp0 aGFuaCBuaGllbSB2dSB0aGkgYm8gdHJ1b25nIG5hbyBkbyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0u DQoNCkJheSBnaW8gY2h1bmcgdGEgZGFuZyBkZSBjYW8gdHJhY2ggbmhpZW0gY2EgbmhhbiBuaHVu ZyBUaHUgdHVvbmcgY2hpIG5vaSBDaGluaCBwaHUgDQpuaGFuIHRyYWNoIG5oaWVtLiBOaHUgdGhl IHRoaSBjaHVuZyBjaHVuZyBxdWEsIHRyb25nIENoaW5oIHBodSBjbyBob24gMjAgdmksIGNvIHZp IA0Ka2hvbmcgbGllbiBxdWFuIGdpIGRlbiBxdWFuIGx5IFZpbmFzaGluLiBOZXUgaG8gY28gYmll dSBxdXlldCB0aG9uZyBxdWEgdmFuIGRlIGdpIGN1YSANClZpbmFzaGluIHRoaSBobyBtb2kgY2hp dSB0cmFjaCBuaGllbSwgbmV1IGtob25nIG1hIG5vaSBobyBjbyB0cmFjaCBuaGllbSB0aGkga2hv IHRodXlldCANCnBodWMuIE5ldSBub2kgQ2hpbmggcGh1IHRoaSBwaGFpIGNodW5nIG1pbmggdGFw IHRoZSBjaGl1IHRyYWNoIG5oaWVtIG5odSB0aGUgbmFvLiBLaGkgDQpub2kgbmhhbiB0cmFjaCBu aGllbSwgdGhlbyB0b2ksIGNhbiBkaSBrZW0gbmhhbiBoaW5oIHRodWMga3kgbHVhdCwga2hvbmcg dGhlIG5vaSBjaHVuZyANCmNodW5nIGR1b2MgdmkgZGF5IGxhIHZhbiBkZSBsb24sIG5ndW9pIGRh biBuZ2hlIHRoZSB0aGF5IGtob25nIHRodXlldCBwaHVjIHRoaSBraG8gY2hhcCBuaGFuLg0KDQoq IEJhbyBjYW8gbmV1IHZpZWMgdG9uZyBnaWFtIGRvYyBWaW5hc2hpbiBQaGFtIFRoYW5oIEJpbmgg a2llbSBiaSB0aHUgZGFuZyB1eSwgY2h1IA0KdGljaCBIRFFULi4uIGxhIGRvIGxvaSB0YXAgZG9h biBjaGFtIGtpZW4gbmdoaS4gTmh1IHRoZSBjbyBob3AgbHk/DQoNCi0gVGFwIHF1eWVuIHNpbmgg cmEgbmhpZXUgdGhvaSBodSB0YXQgeGF1LiBWZSBuZ3V5ZW4gbHksIHRhIGx1b24gcGhhaSBoaWV1 IGNhIG5oYW4gbmd1b2kgDQpjbyBxdXllbiBsdWMgcmF0IGtobyB0dSBuZ3V5ZW4gdHVvYyBibyBx dXllbiBsdWMgY3VhIG1pbmguIEFuaCBjYXAgcGhvIGxhbSBzYW8gZGFtIA0KbGFtIHZhbiBiYW4g a2llbiBuZ2hpIGxlbiB0cmVuIHR1b2MgYm90IHF1eWVuIGN1YSBsYW5oIGRhby4gRHVvbmcgbmh1 IGNvIG1vdCBjYWkgZ2kgZG8gDQp0ZSBuaGkgbmVuIHRpbmggdHJhbmcgdHJlbiBtb2kgZHVvYyB0 b24gdGFpIGxhdSB2YXkuIFRvIGNodWMgbWEga2hvbmcgdGFvIGNvIGNoZSBjbyBnaWFtIA0Kc2F0 LCBkZSB0YXAgdHJ1bmcgcXV5ZW4gbHVjIHZhbyB0YXkgbW90IG5ndW9pIHRoaSBzaW5oIHJhIGRv YyBkb2FuLCBnaWEgdHJ1b25nIGxhIGtobyANCnRyYW5oLg0KDQoqIENhYyBiYW8gY2FvIHRoYW5o IHRyYSBjdWEgY2FjIGJvLCBuZ2FuaCwgdGhlbyB0b25nIHRoYW5oIHRyYSBUcmFuIFZhbiBUcnV5 ZW4sIGN1bmcgZGEgY28gcGhhdCBoaWVuIG5odW5nIFZpbmFzaGluIGtob25nIHRodWMgaGllbi4g DQoNCi0gSGFpIGxhbiBUaGFuaCB0cmEgQ2hpbmggcGh1IGRlIG5naGkgdGhhbmggdHJhIGN1bmcg a2hvbmcgZHVvYy4gTm9pIGRvIGtodW5nIGhvYW5nIA0Ka2luaCB0ZSBuaHVuZyBuZ3VvaSBkYW4g Y2hvIHJhbmcgY28gYmlldSBoaWVuIGJhbyBjaGUuIENhbiBnaWFpIHRoaWNoLCBsYW0gcm8gaG9u LiBUb2kgDQpuZ2hpIHkgdGh1YyBuaGFuIHRyYWNoIG5oaWVtIGN1YSB0YSBjb24gZG9uIGdpYW4g cXVhLiANCg0KKiBRdWEgYmFvIGNhbyBjdWEgQ2hpbmggcGh1LCBjdW5nIGNvIHRoZSBydXQgcmEg a2hvbmcgdGhlIGRpZXUgaGFuaCBjaGkgZHVhIHRyZW4gYmFvIGNhbz8NCg0KLSBWaW5hc2hpbiBn aWFuIGRvaSBsYSBzdSB0aGF0IHJvaS4gS2hvbmcgY2hpIGNvIFZpbmFzaGluIG1hIHRvaSB0aGF5 IHRodWMgdGUgbmhpZXUgbm9pLCANCm5ndW9pIHRhIHRoaWNoIGJhbyBjYW8gdGhlIG5hbyB0aGkg YmFvIGNhbywgY28gY2hlIGtpZW0gdHJhIGxhaSB0aGlldSB2YSB0cmVuIGN1bmcgdGh1b25nIA0K dGluIHZhbyBiYW8gY2FvLiBRdWEgdnUgdmllYyBuYXkgY2h1bmcgbWluaCBzdSBxdWFuIGx5IHF1 YW4gbGlldSwga2hvbmcgc2F0IHRodWMgdGUgdmFuIGNvbi4NCihDQU0gVkFOIEtJTkggdGh1YyBo aWVuKSANCg0KTm8gVmluYXNoaW4gYmFuZyB0aWVuIGRvbmcgdGh1ZSBjdWEgMS4wMDAgZG9hbmgg bmdoaWVwIHRyb25nIDMgbmFtDQoNClRoZW8ga2V0IHF1YSBraGFvIHNhdCAxLjAwMCBkb2FuaCBu Z2hpZXAgZG9uZyB0aHVlIHRodSBuaGFwIGRvYW5oIG5naGllcCBsb24gbmhhdCBWTiANCm1vaSBk YXkgY3VhIENvbmcgdHkgY28gcGhhbiBCYW8gY2FvIGRhbmggZ2lhIFZOIChWTlIpLCB0b25nIHNv IHRodWUgdGh1IG5oYXAgZG9hbmggDQpuZ2hpZXAgY3VhIDEuMDAwIGRvYW5oIG5naGllcCBuYXkg ZG9uZyB0cm9uZyBiYSBuYW0gdHUgMjAwNy0yMDA5IGxhIDg0LjAwMCB0aSBkb25nLiANCk5odSB2 YXkgc28gdm9pIHRvbmcgc28gbm8gY3VhIFZpbmFzaGluIGtob2FuZyA4Ni4wMDAgdGkgZG9uZyB0 aGkgdmFuIHRoYXAgaG9uIDIuMDAwIHRpLg0KDQpEYW5nIGx1dSB5LCB0cm9uZyBzbyAxLjAwMCBk b2FuaCBuZ2hpZXAgZG9uZyB0aHVlIHRodSBuaGFwIGRvYW5oIG5naGllcCBsb24gbmhhdCBkYSAN CmJhbyBnb20gY2EgY2FjIHRhcCBkb2FuLCBkb2FuaCBuZ2hpZXAgbG9uIG8gVk4gbmh1IFRhcCBk b2FuIERhdSBraGksIFRhcCBkb2FuIGNvbmcgDQpuZ2hpZXAgVGhhbiAtIGtob2FuZyBzYW4sIENv bmcgdHkgUHJ1ZGVudGlhbCwgUGh1IE15IEh1bmcuLi4gTmV1IHNvIHJpZW5nIGtodSB2dWMgDQpk b2FuaCBuZ2hpZXAgRkRJIHRoaSBjYWMgZG9hbmggbmdoaWVwIGRhbmcgbmF5IHRyb25nIG5ob20g MS4wMDAgZG9hbmggbmdoaWVwIG5vcCANCnRodWUgdGh1IG5oYXAgbG9uIG5oYXQgVk4gdHJvbmcg YmEgbmFtIGN1bmcgY2hpIG5vcCBkdW9jIDIwLjAwMCB0aSBkb25nIC0gY2h1YSANCmJhbmcxLzQg dG9uZyBubyBjdWEgVmluYXNoaW4uDQooQy5WLksuKQ0KDQpLZXQgcXVhIGtpZW0gdG9hbiBkb2Mg bGFwIGtob25nIHRoZSBjb25nIGtoYWk/DQoNCk5hbSAyMDEwLCBDaGluaCBwaHUgdGhvbmcgYmFv IFRhcCBkb2FuIFZpbmFzaGluIGtob25nIGNvbiBraGEgbmFuZyB0aGFuaCB0b2FuLCBjYWMgDQpr aG9hbiBubyBsZW4gZGVuIDg2LjAwMCB0aSBkb25nLCBkdSBsdWFuIGxhaSBwaGFpIGRhdCBkYXUg aG9pIHZpIHNhbyBjaGkgbmhhbmggY3VhIENvbmcgDQp0eSBraWVtIHRvYW4gS1BNRyBkYSBraWVt IHRvYW4gVmluYXNoaW4gdHUgbmFtIDIwMDctMjAwOSBuaHVuZyBsYWkga2hvbmcgZHVhIHJhIA0K bmh1bmcgY2FuaCBiYW8/IEtQTUcga2hvbmcgcGhhdCBoaWVuIGhheSBiaWV0IG1hIGtob25nIGNv bmcgYm8/DQoNClRyYW8gZG9pIHZvaSBUdW9pIFRyZSwgYmEgTmd1eWVuIFRodSBUcmFuZywgcGh1 IHRyYWNoIHRydXllbiB0aG9uZyBjdWEgS1BNRywgY2hvIA0KcmFuZyBraG9uZyB0aGUgY3VuZyBj YXAga2V0IHF1YSBraWVtIHRvYW4gVmluYXNoaW4gY2hvIGNvIHF1YW4gYmFvIGNoaS4gVGhlbyBi YSBUcmFuZywgDQpjbyBxdWFuIGNodWMgbmFuZyBraGFjIGNvIHRoZSBjdW5nIGNhcCBjaHUgS1BN RyBraG9uZyB0aGUgY3VuZyBjYXAuIFBoaWEgS1BNRyANCmN1bmcga2hvbmcgdGhlIGJpbmggbHVh biBnaSB2ZSB2YW4gZGUgdGluaCBjaGluaCB4YWMsIGtoYWNoIHF1YW4gY3VhIGJhbyBjYW8ga2ll bSB0b2FuIA0KZG8gY2hpbmggY29uZyB0eSBtaW5oIGxhbSBkb2kgdm9pIFZpbmFzaGluLiBLaGkg S1BNRyBreSBob3AgZG9uZyB2YSB0aHVjIGhpZW4ga2llbSANCnRvYW4geG9uZyBiYW8gY2FvIHRh aSBjaGluaCBjdWEgVmluYXNoaW4sIGRvIGxhIHRhaSBzYW4gY3VhIFZpbmFzaGluIHZhIG11b24g Y28ga2V0IHF1YSANCm5heSwgZHUgZHUgbHVhbiBkb2kgaG9pLCBiYW8gY2hpIGN1bmcgcGhhaSB4 aW4gY2hpbmggVmluYXNoaW4gZG9uZyB5IEtQTUcgbW9pIGNvIHRoZSANCmN1bmcgY2FwLg0KDQpU aGVvIHF1eSBkaW5oIHRhaSBuZ2hpIGRpbmggOTEvMjAwOC9ORC1DUCwgY2FjIGtldCBsdWFuIGN1 YSBraWVtIHRvYW4gbmhhIG51b2MgZGV1IA0KZHVvYyBjb25nIGtoYWkuIFR1eSBuaGllbiwgaGF1 IGhldCBrZXQgbHVhbiBLVERMIGRlbiBuYXkgdmFuIGNodWEgZHVvYyBjYWMgY29uZyB0eSBraWVt IHRvYW4gY29uZyBiby4gIA0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTAw NzE0LWNhYy1jYXAtY2FvLWhvbi1jdW5nLXBoYWktY2hpdS10cmFjaC1uaGllbS10cm9uZy12dS12 aW5hc2hpbiBUaGFuaCBQaHVvbmcgMTQvNy8yMDEwIA0KDQpUaHUgdHVvbmc6IENhYyBjYXAgY2Fv IGhvbiBjdW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB0cm9uZyB2dSBWaW5hc2hpbiANCg0KQ2h1 IHRpY2ggVmluYXNoaW4sIG9uZyBQaGFtIFRoYW5oIEJpbmggZGEgYmkgZGluaCBjaGkgY2h1YyB2 dSBkZSBkaWV1IHRyYSwgbmh1bmcgY2FjIA0KY2FwIGNhbyBob24gY3VuZyBwaGFpIGNoaXUgdHJh Y2ggbmhpZW0gdmUgbmh1bmcgc2FpIHBoYW0gdGFpIHRhcCBkb2FuIG5heS4gVnUgDQpWaW5hc2hp biBtb3QgbGFuIG51YSBjaG8gdGhheSB2aWVjIHRoYW5oIGxhcCB0YXAgZG9hbiBtb3QgY2FjaCBn dW9uZyBlcCBkYSBkYW4gZGVuIGhhdSBxdWEgbmh1IHRoZSBuYW8uIA0KDQpodHRwOi8vbGVkaWVu ZHVjLndvcmRwcmVzcy5jb20vMjAxMC8wNy8xMy9uZ3V5JUUxJUJCJTg1bi10JUUxJUJBJUE1bi1k dW5nLXBoJUUxJUJBJUEzaS10ciVFMSVCQSVBMy1sJUUxJUJCJTlEaS10ciVDNiVCMCVFMSVCQiU5 QmMtY29uZy1seS12JUUxJUJCJTgxLXYlRTElQkIlQTUtYW4tdmluYXNoaW4vICBMZSBEaWVuIER1 YyAxMy83LzIwMTAgDQoNClRodSB0dW9uZzogT25nIE5ndXllbiBUYW4gRHVuZyBwaGFpIHRyYSBs b2kgdHJ1b2MgY29uZyBseSB2ZSB2dSBhbiBWaW5hc2hpbg0KDQpOYW0gMTk5NywgZG9hbmggbmhh biBNaW5oIFBodW5nIGJpIGtldCB0b2kgZ2lhbiBsYW4gdGFpIGNoaW5oLCBsYXAgbmhpZXUgY2Fj IGNvbmcgdHkgDQpuaG8sIG5hbmcgZ2lhIGJhdCBkb25nIHNhbiB2YSBjYXUga2V0IHZvaSBtb3Qg c28gcXVhbiBjaHVjIGxvbiBkZSB2YXkgbmdhbiBoYW5nIGtob2FuZyANCjQwMCB0cmlldSBVU0Qg ZGF1IHR1IGNobyBjYWMgZHUgYW4sIGNodSB5ZXUgbGEgYmF0IGRvbmcgc2FuLg0KDQpEdSBsdWFu IGJheSBnaW8gY2hvIHJhbmcgdG9hbiBibyB0YWkgc2FuIHRvIGxvbiBjdWEgTWluaCBQaHVuZyBi YW8gZ29tIGhlIHRob25nIGNhYyANCnh1b25nIHNhbiB4dWF0IG1heSBtYWMsIG5oaWV1IG5oYSBj dWEsIGtoYWNoIHNhbiB2YSBkYXQgZGFpIGJpIG5oYSBudW9jIHRpY2ggYmllbiwgbmV1IA0KZHVv YyBiYW4gdGhlbyBnaWEgdGhpIHRydW9uZywgTWluaCBQaHVuZyBjbyBraGEgbmFuZyBob2FuIHRy YSBubyBkZSBkYW5nIHZhIGNoaSBwaGFpIA0KY2hpdSBoaW5oIHBoYXQgdmUgZ2lhbiBsYW4gdGFp IGNoaW5oLCBuaHVuZyBraG9uZyBkZW4gbXVjIGJpIHR1IGhpbmguDQoNClR1eSBuaGllbiBNaW5o IFBodW5nIHZhbiBiaSAiZHVhIGNvYyIgcmF0IG5oYW5oIHZpIHZ1IGFuIGNvIG5ndXkgY28gbGll biBkb2kgZGVuIG1vdCANCnNvIHF1YW4gY2h1YyBjYW8gbmhhdCwgdHJvbmcga2hpIGNhYyBwaGUg bmhvbSBkYW5nIHRhbiBjb25nIG5oYXUgdmFvIGdpYWkgZG9hbiBEYWkgaG9pIA0KRGFuZyBDb25n IFNhbiBWaWV0IE5hbSBsYW4gdGh1IDguDQoNClRoYW5nIDEyLzIwMDEsIFRhcCBkb2FuIEVucm9u IGN1YSBIb2EgS3kgYmkgcGhhIHNhbi4gVG9uZyBnaWFtIGRvYyBKZWZmcmV5IFNraWxsaW5nIA0K YmkgZHVhIHJhIHRvYSB2b2kgdG9pIGdpYSBtYW8gZ2lheSB0bywgZ2lhbiBsYW4gdmEga2hhaSBt YW4gdGFpIGNoaW5oIHRyb25nIGNhYyBkdSBhbiBsYW0gDQphbiBnYXkgdGhpZXQgaGFpIG5oaWV1 IHR5IGRvIGxhLiBKZWZmcmV5IFNraWxsaW5nLCA1MiB0dW9pLCBkYSBiaSBrZXQgYW4gMjQgbmFt IDQgdGhhbmcgdHUgDQpnaWFtIHZhIGJpIHBoYXQgMTggdHJpZXUgVVNELiBOZ29haSByYSBvbmcg dGEgY29uIHBoYWkgYm9pIGhvYW4gNDUgdHJpZXUgVVNEIGNobyBjYWMgDQpuaGEgZGF1IHR1IGJp IHRoaWV0IGhhaSBzYXUga2hpIEVucm9uIHBoYSBzYW4uIENvbiBjaHUgdGljaCB0YXAgZG9hbiBF bnJvbiBLZW5uZXRoIExheSANCnRoaSBiaSBjaGV0IGRvdCBuZ290IHZpIG5ob2kgbWF1IGNvIHRp bS4NCg0KTmdheSAyMy83LzIwMDksIG9uZyBMZSBNaW5oIEtoYWksIFBobyB0b25nIEtpZW0gdG9h biBuaGEgbnVvYyBkYSBjb25nIGJvIGNvbiBzbyANCiJnaWF0IG1pbmgiOiB0aGVvIGtldCBxdWEg a2llbSB0b2FuIG5hbSAyMDA4LCB0b25nIHNvIG5vIGN1YSBjYWMgZG9hbmggbmdoaWVwIE5oYSAN Cm51b2MgbGVuIHRvaSAxODEuMDAwIHR5IGRvbmcsIHR1YyBsYSB4YXAgeGkgMTAgdHkgVVNEIQ0K DQpTYWkgcGhhbSBoYXUgaGV0IHRhcCB0cnVuZyB2YW8gbmh1bmcgIm9uZyBsb24iLCB2YW8gIm5o dW5nIHF1YSBkYW0gdGhlcCIgY3VhIG9uZyANCk5ndXllbiBUYW4gRHVuZywgY2FuZyBsb24gbG8g Y2FuZyBuaGlldSBuaHU6IFRhcCBkb2FuIERpZW4gbHVjIFZpZXQgTmFtIChFVk4pLCBUYXAgDQpk b2FuIFRoYW4gliBLaG9hbmcgc2FuIFZpZXQgTmFtIChUS1YpLCBUb25nIGNvbmcgdHkgSGFuZyBo YWkgKFZpbmFsaW5lcyksIFRvbmcgDQpjb25nIHR5IExhcCBtYXkgVmlldCBOYW0gKExpbGFtYSks IFRvbmcgY29uZyB0eSBCaWEgliBSdW91IJYgTnVvYyBnaWFpIGtoYXQgU2FpIEdvbiANCihTYWJl Y28pLi4uDQoNCktldCBxdWEgdGFpIGNoaW5oIHNhdSBraWVtIHRvYW4gY3VhIG5hbSAyMDA5IGN1 bmcgbWFuZyBtYXUgc2FjIGJpIGtpY2gga2hvbmcgdGh1YSBnaSANCm5hbSB0cnVvYy4gVG8gIlRo YW5oIG5pZW4iIG5nYXkgMjIvMDQvMjAxMCBjaG8gYmlldCBjYWMgZG9hbmggbmdoaWVwIG5oYSBu dW9jIGdpYW4gDQpsYW4gdGFpIGNoaW5oIGRlbiBtdWMgaGFpIGh1bmcsIGR1YSBsb2kgbmh1YW4g bGVuIHRyb2kgbmh1bmcgdHJvbmcgdGh1YyB0ZSBsbyB0aGFtIGhhaSwgDQp0cnVuZyBiaW5oIHZh aSB0cmFtIHR5IGRlbiBoYW5nIG5nYW4gdHkgZG9uZyB2YSBiYW8gZG9uZyBuaHVuZyAiRW5yb24g VmlldCBOYW0iLg0KDQpDYWMgZG9hbmggbmdoaWVwIG5oYSBudW9jIGxhbSBhbiB0aHVhIGxvIG5h bSBuYXkgcXVhIG5hbSBraGFjLCBuaHVuZyBDaGluaCBwaHUgVmlldCANCk5hbSBraG9uZyBuaHVu ZyBkdXkgdHJpLCBtYSBjb24ga2h1ZWNoIHRydW9uZyBtbyByb25nIHZhIGR1bmcgZHVvbmcuDQoN CkJpbGwgSGF5dG9uLCBtb3QgcGhvbmcgdmllbiBreSBjdXUgY3VhIEJCQyBuaGlldSBuYW0gbGFt IHZpZWMgbyBWaWV0IE5hbSBkYSBrZXQgbHVhbiANCnJhdCBjaGluaCB4YWMgdHJvbmcgY3VvbiAi VmlldCBOYW06IENvbiByb25nIGRhbmcgbGVuIjoNCg0KIkxhbmggZGFvIENoaW5oIHBodSBWTiBs YWkgdWEgdGhpY2ggY2FjIGRvYW5oIG5naGllcCBuaGEgbnVvYyB2aSBobyBjbyB0aGUgdGh1YyB0 aGkgDQpuaHVuZyBjaGluaCBzYWNoIGN1YSBDaGluaCBwaHUuIE5odW5nIGRhbmcgdmllbiBkaWV1 IGhhbmggY2h1bmcgcGhhaSB2YW5nIGxlbmggdGh1YyANCmhhbmggbmh1bmcgY2hpbmggc2FjaCBu YXkuIE5odW5nIG5odW5nIG5ndW9pIGxhbmggZGFvIGNvbmcgdHkgdGhpY2ggZGlldSBoYW5oIGNo dW5nIA0KY2hpIHZpIGNodW5nIGN1bmcgY2FwIHJhdCBuaGlldSBjbyBob2kgbGFtIGdpYXUgY2hv IGJhbiB0aGFuIGhvLiBUYW8gcmEgbW90IGNvbmcgdHkgY29uIA0KdmEgdHUgYm8gbmhpZW0gbWlu aCB2YW8gaG9pIGRvbmcgZGlldSBoYW5oIGxhIG1vdCBjYWNoIGtpZW0gdGllbiBkZSBkYW5nLiBN b3QgY2FjaCANCmtoYWMgbGEgdGhhbmggbGFwIG1vdCBjb25nIHR5IHR1IG5oYW4gZG8gYmFuIGJl IGhvYWMgaG8gaGFuZyBtaW5oIHNvIGh1dSBkZSBiYW4gdGFpIHNhbiANCmN1YSBubyB2b2kgZ2lh IHJlIGhvYWMgY3VuZyBjYXAgY2hvIGhvIG5odW5nIGhvcCBkb25nIGJlbyBiby4gVm9pIHRpZW4g YmFjIGRvaSBkYW8sIA0Ka2hvbmcga2hvIGRlIG11YSBjaHVvYyBjYXAgdHJlbiBkZSBobyBuaGFt IG1hdCBsYW0gbmdvIHRydW9jIG5odW5nIHZpIHBoYW0gcGhhcCANCmx1YXQuIE5odW5nIGRhbmcg dmllbiBkaWV1IGhhbmggY2FpICJkdW9pIiBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgZHVuZyBubyBk ZSB2YXkgImNvbiANCmNobyIgY3VhIGNoaW5oIHNhY2ggY3VhIENoaW5oIHBodSIuDQoNCkNhaSBn aSB0b2kgc2UgdG9pLCBjaGkgdGllYyByYW5nIGtoaSBkYW4gY2h1bmcgYmlldCB0aGkgZGEgcXVh IG11b24uIE5oaWV1IHR5IGRvIGxhIG1vIGhvaSANCm51b2MgbWF0IGN1YSBuaGFuIGRhbiBkYSBi aSBjYWMgcXVhbiBjaHVjIENoaW5oIHBodSBWTiBwaHUgcGhlcCBiaWVuIHRoYW5oIHRybyBidWku DQpLaGkgZGFuIEhhIE5vaSBrZXUgdHJvaSB2aSBiaSBjdXAgZGllbiBsaWVuIHR1YyB0cm9uZyBj YWkgbm9uZyBkaWVuIG5ndW9pLCBjb24gVGFwIGRvYW4gDQpEaWVuIEx1YyBWaWV0IE5hbSBFVk4g Z2lhaSB0cmluaCB2b2kgY29uZyBsdWFuIGx5IGRvIHZpIG5nYW5oIGRpZW4gdGhpZXUgdGllbiBk YXUgdHUsIGl0IA0KYWkgbmhvIGxhaSBoYWkgbmFtIHRydW9jLCBFVk4gZGEgZGUgbmdoaSB0cmlj aCB0aHVvbmcgKGNobyBuaGF1KSAxMDAyIHR5IGRvbmcgKGhvbiA1MCANCnRyaWV1IFVTRCkgbGFt IEJhbiBraWVtIHRvYW4gbmhhIG51b2MgcGhhaSB0YWkgbWF0IQ0KDQpDaHV5ZW4gRVZOIGNodWEg eG9uZywgdGhpICJFbnJvbiBWaWV0IE5hbSIgVmluYXNoaW4geHVhdCBoaWVuIHRydW9jIHN1IG5n byBuZ2FuZyB2YSANCm5vaSBnaWFuIGN1YSB0b2FuIHhhIGhvaS4NCg0KRHUgbHVhbiBxdWFuIHRh bSBuaGF0LCB0cnVvYyBoZXQgbGEgdmllYyByb3QgdGllbiBjaG8gVmluYXNoaW4gZHVvYyB0aHVj IGhpZW4gaGFvIHBob25nIA0KbGEgdGh1b25nIHR1IHBoaWEgY2hpbmggcGh1IFZpZXQgTmFtIG1h IG5ndW9pIGt5IHZhIGNoaXUgdHJhY2ggbmhpZW0gY2FvIG5oYXQgbGEgVGh1IA0KdHVvbmcgTmd1 eWVuIHRhbiBEdW5nLiBUaHUgZGVuIGxhIG11YyBkbyB0aGlldCBoYWkgcXVhIGxvbi4gVmEgc2F1 IGRvIG9uZyBEdW5nIGxhbSANCm1hIHRodWF0ICJ0YWkgY28gY2F1IiBkZSBjdXUgdmEuLi4gY2hh eSBsYW5nIQ0KDQpDdW5nIHRyb25nIGN1b24gIlZpZXQgTmFtOiBDb24gcm9uZyBkYW5nIGxlbiIs IEJpbGwgSGF5dG9uIHZpZXQ6DQoNCiJWaW5hU2hpbiBkdW9jIGh1b25nIHRodSB0dSBoYXUgdGh1 YW4gY3VjIGt5IGxvbiBjdWEgY2hpbmggcXV5ZW4uIEtoaSBWaWV0IE5hbSBwaGF0DQogaGFuaCB0 cmFpIHBoaWV1IGNodSBxdXllbiBkYXUgdGllbiB0cmkgZ2lhIDc1MCB0cmlldSBkbyBsYSB2YW8g bmFtIDIwMDYsIHNvIHRpZW4gdGh1IGR1b2MgDQpraG9uZyBkdW5nIGRlIHhheSBkdW5nIGR1b25n IHhhIGhvYWMgdHJ1b25nIGRhaSBob2MgbWEgZGUgY2hvIFZpbmFTaGluLiBLaGkgVGh1IA0KdHVv bmcgRHVuZyBjaGluaCB0aHVjIHZpZW5nIHRoYW0gRHVjIHZhbyBuYW0gMjAwOCB2b2kga2V0IHF1 YSBodXUgaGllbiBsYSAyIHRpIHRpZW4gDQp2b24gdmF5IHR1IE5nYW4gaGFuZyBEdWMgliBjdW5n IGR1b2MgZGFuaCBjaG8gVmluYVNoaW4uIE5nYW4gaGFuZyBUaHV5IFNpIENyZWRpdCANClN1aXNz ZSBjdW5nIGRhIGNobyBjb25nIHR5IHZheSBtb3QgdGkgZG8gbGEiLg0KDQpTbyB2b2kgdnUgIkR1 IGFuIER1b25nIHRhdSBjYW8gdG9jIiwgdHJvbmcgbWF5IG5nYXkgcXVhLCBtYWMgZHUgYmFuIHJv biB2YSBtZXQgbW9pIA0Kdm9pIG5odW5nIHRyYW4gZGF1IGJvbmcgdHJhaSBnaW8gY3VhIG11YSBX b3JsZCBDdXAsIGJhbyBjaGkgdHJvbmcgbmdvYWkgbnVvYywgdHUgImxlIA0KcGhhaSIgdG9pICJs ZSB0cmFpIiwgZGEgY2hpZXUgY28ga2hvbmcgaGUga2VtIGRvaSB2b2kgdnUgVmluYXNoaW4uIA0K VHV5IG5oaWVuLCBjYWMgbXVpIG5ob24gaXQgdGFwIHRydW5nIHZhbyBjYWkgZ29jIGdheSByYSBo YXUgcXVhIG5heS4NCg0KTmdheSAxMi83LzIwMTAsIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25n IGRhIGNvIHZhbiBiYW4gdGhvbmcgYmFvIHRpZXAgdHVjIHhlbSB4ZXQsIA0KeHUgbHkgb25nIFBo YW0gVGhhbmggQmluaCwgVXkgdmllbiBCYW4gVGh1b25nIHZ1IERhbmcgdXkgS2hvaSBEb2FuaCBu Z2hpZXAgVHJ1bmcgDQp1b25nLCBCaSB0aHUgRGFuZyB1eSwgQ2h1IHRpY2ggSG9pIGRvbmcgcXVh biB0cmkgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgdGF1IHRodXkgVmlldCANCk5hbSAoVmluYXNoaW4p IHZhIGNodXllbiBobyBzbyBjaG8gY28gcXVhbiBkaWV1IHRyYSBoaW5oIHN1Lg0KDQpEYXkgbGEg bW90IHF1eWV0IGRpbmggZHVuZywgY2FuLCBuaHVuZyBjaHVhIGR1LiBDYWMgdmkgcGhhbSCWIHRv aSBkYW5oIGN1YSBuaHVuZyANCm5ndW9pIGxhbmggZGFvIGdpYW4gdGllcCB2YSB0cnVjIHRpZXAg dGFwIGRvYW4gVmluYXNoaW4gZ2lvbmcgaGV0IG5odSB2b2kgTWluaCBQaHVuZyANCmhheSB0YXAg ZG9hbiBFbnJvbiBIb2EgS3kuIA0KDQpRdWEgcmF0IG5oaWV1IGJhaSBwaGFuIHRpY2ggY3VhIGNh YyBuaGEgYmFvLCBjaHV5ZW4gdmllbiBraW5oIHRlLCBjaHVuZyB0YSB0aGF5IHZhaSB0cm8gDQpj dWEgb25nIE5ndXllbiBUYW4gRHVuZyB4dXllbiBzdW90IHRvYW4gYm8gdGllbiB0cmluaCBwaGF0 IHRyaWVuIGN1YSBWaW5hc2hpbiwgdHUgbHVjIA0KaGluaCB0aGFuaCBjaG8gZGVuIGx1YyBwaGEg c2FuLiANCktob25nIGNvIGNodSBreSBjdWEgb25nIGN1dSB5IHRhLVRodSB0dW9uZyBEdW5nLCBW aW5hc2hpbiBraG9uZyB0aGUgY28gY2EgbnVpIHRpZW4sIHZhIA0KY2hvIHBoZXAgbWluaCB0aWV1 IHhhaSB2byB0b2kgdmEgbmh1IHZheSBkdW9jLg0KDQpQaGFpIGNoYW0gZHV0IHRpbmggdHJhbmcg Y2FjIHF1YW4gY2h1YyBjdWEgQ2hpbmggcGh1IGNvaSB0aWVuIGJhYywgdGFpIHNhbiBjdWEgbmhh biBkYW4gDQpuaHUgY3VhIHJpZW5nIG1pbmgsIG5naGVuaCBuZ2FuZyB0aGFvIHR1bmcsIGNoaWEg Y2hhYywgZHVjIGtob2V0LCBjaGEgZGFwIGxlbiBsb2kgaWNoIA0KY3VhIGRhbiB0b2MuIE5odW5n IGtoaSBjbyBzdSBkbyB2byB0aGkgbG9wIGNob3AgYnUgdGh1b25nIHRhbmcga2hvbiBuZ29hbiwg bGF1IGNhIHRpbSANCmtpZW0gZGUgdHUgdm8gbGFtIGRlIHRlIHRoYW4gZGUgeG9hIGRpdSBkdSBs dWFuIHJvaSBzYXUgZG8gdGltIGNhY2ggZ28gdG9pIGJhbmcuLi4gZ2lhbSANCmFuIHZhIGFuIHhh IQ0KDQpPbmcgTmd1eWVuIFRhbiBEdW5nIG5ldSBjb24gY2h1dCBsaWVtIHNpIHZhIGNodXQgdHUg dHJvbmcgY3VhIGxvYWkgZG9uZyB2YXQgZGkgaGFpIGNoYW4gDQp2YSBiaWV0IG5vaSwgdGhpIHBo YWkgeGluIHR1IGNodWMgbmdheSBsYXAgdHVjLiANClRyb25nIHRydW9uZyBob3Agbmd1b2MgbGFp LCBRdW9jIGhvaSBWaWV0IE5hbSCWIENvIHF1YW4gY2h1YW4geSBjaHVjIHZ1IG5heSCWIGNhbiAN CnBoYWkgcmFvIHJpZXQgdmFuIGRvbmcgc2F1IHJvbmcgdHJvbmcgY2FjIGRhaSBiaWV1IGRlIGNv IG1vdCBjdW9jIGJvIGJhdCBwaGlldSB0aW4gbmhpZW0uDQpTYXUgZG8sIGR1YSBjb25nIGRhbiBO Z3V5ZW4gVGFuIER1bmcgdmFvIGRhbmggc2FjaCBuaHVuZyBuZ3VvaSBiaSBkaWV1IHRyYSBoaW5o IHN1IA0KdmEga2hvaSB0byB2ZSB0b2kgbG9pIGR1bmcgY2h1YyB2dSB2YSB0cmFjaCBuaGllbSBn YXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmcgY2hvIG5lbiBraW5oIA0KdGUgcXVvYyBkYW4uDQoNCk9u ZyBOZ3V5ZW4gVGFuIER1bmcga2hvbmcgdGhlIGR1bmcgdHJlbiBDb25nIGx5IHZhIEx1YXQgcGhh cC4NCg0KTm9pICJraG9uZyIgY2hvICJEdSBhbiBkdW9uZyB0YXUgY2FvIHRvYyIsIGNhYyBkYWkg YmlldSBRdW9jIGhvaSBkYSBkb3QgcGhhIHZhIHRhbyByYSANCnRpZW4gbGUgdG90LCBjaHVuZyBt aW5oIGJhbiBsaW5oIGN1YSBtaW5oLiBOZ3V5ZW4gdm9uZyBjdWEgbmhhbiBkYW4gbGEgYmFuIGxp bmggbmF5IA0KcGhhaSBkdW9jIHRpZXAgdHVjIGRvaSB2b2kgdnUgVmluYXNoaW4gdmEgbGFtIGd1 b25nIGNobyBoYW5nIGxvYXQgY2FjIGRvYW5oIG5naGllcCANCmtoYWMgY3VhIG5oYSBudW9jLiBD b24ga2hvbmcsIGRhdCBudW9jIGNodW5nIHRhIHZhIHRoZSBoZSBjb24gY2hhdSBzZSB0aWVwIHR1 YyBjYW4gcmFuZywgDQpkYXUgZG9uIGdhbmggY2hpdSBuaHVuZyBoYXUgcXVhIGtodW5nIGtoaWVw IHZpIHNhdSBtb3QgY2FtIGRhdSBDaGluaCBwaHUuDQoNCioqKioqDQpQaHUgbHVjOiBDaGFuIGR1 bmcgTmd1eWVuIFRhbiBEdW5nIChhbmggY2h1cCBrZW0gdGhlbykNCg0KSGluaCBkdW9pIGRheSBt byB0YSBjb24gbmd1b2kgY3VhIE5ndXllbiBUYW4gRHVuZywgZHVvYyBuaGlldSBuZ3VvaSBiaWV0 IGRlbiwgbGEgYmFuIA0KcXV5ZW4gY3VhIEhhbmcgdGhvbmcgdGFuIEFQIChUaGUgQXNzb2NpYXRl ZCBQcmVzcykgdm9pIGNodSB0aGljaCBuaHUgc2F1Og0KDQoiTmd1eWVuIFRhbiBEdW5nLCBWaWV0 bmFtJ3MgdGhlbiBkZXB1dHkgcHJpbWUgbWluaXN0ZXIsIHNwZWFrcyB0byB0aGUgTmF0aW9uYWwg DQpBc3NlbWJseSBpbiBIYW5vaSwgVmlldG5hbSwgaW4gdGhpcyBNYXkgMTYsIDIwMDYgZmlsZSBw aG90by4gRHVuZywgY3VycmVudGx5IHByaW1lIA0KbWluaXN0ZXIsIG9uIE1heSAyOCwgMjAwNyBo YXMgaXNzdWVkIGEgZGVjcmVlIGZ1cnRoZXIgbGltaXRpbmcgdGhlIGZsb3cgb2YgaW5mb3JtYXRp b24gDQp3aXRoaW4gdGhlIGNvbW11bmlzdCBjb3VudHJ5LCBwcm9tcHRpbmcgY29uY2VybnMgYW1v bmcgam91cm5hbGlzdHMgd2hvIGFscmVhZHkgDQpvcGVyYXRlZCB1bmRlciB0aWdodCByZXN0cmlj dGlvbnMgliAgQVAgUGhvdG8vVHJhbiBWYW4gTWluaCIuDQoNClRhbSBkaWNoOg0KQnVjIGFuaCBO Z3V5ZW4gVGFuIER1bmcsIFBobyB0aHUgdHVvbmcgVmlldCBOYW0sIGRhbmcgbm9pIHRhaSBRdW9j IGhvaSBvIEhhIE5vaSwgDQpWaWV0IE5hbSB0cm9uZyBuZ2F5IDE2IHRoYW5nIE5hbSwgMjAwNi4g RHVuZywgaGllbiBuYXkgbGEgVGh1IHR1b25nLCBuZ2F5IDI4IHRoYW5nIDUgDQpuYW0gMjAwNyBk YSBiYW4gaGFuaCBtb3QgTmdoaSBkaW5oIGhhbiBjaGUgZ2lhbyBkaWNoIHRob25nIHRpbiB0cm9u ZyBxdW9jIGdpYSwgdGFuZyANCmN1b25nIHF1YW4gbHkgY2FjIG5oYSBiYW8sIG5odW5nIG5ndW9p IHZvbiBkaSBkYW5nIHBoYWkgaG9hdCBkb25nIGR1b2kgbmh1bmcgZ2lvaSBoYW4gIA0KY2hhdCBj aGUgliAoQVAgUGhvdG8gLyBUcmFuIFZhbiBNaW5oKQ0KDQpZIEtJRU4gQkFOIERPQzogDQoNCkR1 eXRhbiAxMy83LzIwMTAgMToxMiBBTToNCg0KTW9pIG5ndW9pIGRldSBiaW5oIGRhbmcgdHJ1b2Mg cGhhcCBsdWF0LCB2YSBuaHUgdmF5IHBoYWkgeGVtIHhldCBkZW4gbm9pIGRlbiBjaG9uIA0KdHJh Y2ggbmhpZW0gY3VhIG9uZyBUaHUgdHVvbmcuIER1bmcgbHVhIG5oYW4gZGFuIG51YSBvbmcgb2ku Li4uLiBkYW4ga2hvIGxhbSByb2kNCg0KVE5YSCAxMy83LzIwMTAgMjowMyBBTToNCg0KVGh1YSBj YWMgdmkgTHVhdCBzdSwgZGF5IGxhIG1vdCBjaHVuZyBjbyBybyByYW5nIG5oYXQgZGUgY2FjIHZp IHRoYXkgbWF0IHF1eWVuIGxvaSBjdWEgDQpuZ3VvaSBkYW4gVk4ga2llbiB5IHRhIE5ndXllbiBU YW4gRHVuZy4gTmdheSB0cnVvYyB0b2kgZGF5IGhvYyBvIG1vdCB0cnVvbmcgY3VuZyBjbyANCm1v dCBvbmcgeSB0YSBuZ3VvaSBLaG9tZSBkaWVuIGRpZW4ga2h1bmcga2h1bmcuIEhvYyBzaW5oIG5h bSBudSBsdW9uIHBoYW4gYW5oIG9uZyANCm5heSwgbW9pIGtoaSBob2Mgc2luaCBsZW4ga2hhbSBi ZW5oLCB0aGFtIGNoaSBjYXAgY3V1IGtldSBkYXUgYnVuZywgb25nIGF5IHRvYW4gbGF5IA0KInRo dW9jIGRvIiBib2kgdmFvICJyb24iLCByb2kgYmFvIGRpIHZlLCBtYWMgZHUgaG9jIHNpbmggZGF1 IHF1YW4gcXVhaS4uLiBLaG9uZyBiaWV0IG9uZyANCnRhIGNvIGdpb25nIGN1dSB5IHRhIG1pZXQg dnVvbiBOZ3V5ZW4gVGFuIER1bmcga2hvbmc/IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v Y2hpbmh0cmkvMjAxMDEwL1R1LVNhaS1waGFtLWN1YS1WaW5hc2hpbi1kby1raWVtLXNvYXQtY29u LWhhbi1jaGUtOTQzNDkxLyBMZSBOaHVuZyAgMTM6NTIsIFRodSBUdSwgMjAvMTAvMjAxMCAoR01U KzcpIA0KDQpVeSBiYW4gS2luaCB0ZSBRdW9jIEhvaTogDQoNClR1IHNhaSBwaGFtIFZpbmFzaGlu LCBwaGFpIGRvaSBtb2kgZ2lhbSBzYXQgdGFwIGRvYW4gDQoNCi0gVGhhbSB0cmEgYmFvIGNhbyBr aW5oIHRlIC0geGEgaG9pIGN1YSBDaGluaCBwaHUsIFV5IGJhbiBLaW5oIHRlIG5oYW4gZGluaDog IlF1YW4gbHkgDQpuaGEgbnVvYyB2YSB0aHVjIGhpZW4gcXV5ZW4gY2h1IHNvIGh1dSBkb2kgdm9p IEROTk4gbm9pIGNodW5nIHZhIHRhcCBkb2FuIGtpbmggdGUsIA0KdG9uZyBjb25nIHR5IG5oYSBu dW9jIG5vaSByaWVuZyBib2MgbG8gcm8gc3UgYmF0IGNhcCwgY2h1YSB0aGF5IGRvaSBraXAgdm9p IGNodXllbiBiaWVuIA0KY3VhIG5lbiBraW5oIHRlIHRoaSB0cnVvbmcuIENvIGNoZSBraWVtIHRy YSwgdGhhbmggdHJhLCBnaWFtIHNhdCwga2llbSB0b2FuIHZhIHF1YW4gbHkgdGFpIA0KY2hpbmgg bm9pIGJvIGRvYW5oIG5naGllcCBjb24ga2VtIGhpZXUgcXVhIi4NCg0KKiBUaHUgdHVvbmcgbmhh biB0cmFjaCBuaGllbSBjdWEgQ2hpbmggcGh1IHZlIFZpbmFzaGluDQoqIEt5IGhvcCAnYXAgY2hv dCcgdmEgdHJvbmcgdHJhY2ggdHJlbiB2YWkgbW9pIGRhaSBiaWV1DQoqIFF1b2MgaG9pIG11b24g dGh1YyBxdXllbiwgZGFpIGJpZXUgcGhhaSBjbyBjaGluaCBraWVuDQoNClRydW9jIGRvLCB0b25n IGtldCBraW5oIHRlIC0geGEgaG9pLCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIGRhIG5oYW4g dHJhY2ggbmhpZW0gDQpjdWEgQ2hpbmggcGh1IHh1bmcgcXVhbmggc2FpIHBoYW0gY3VhIFZpbmFz aGluIHZhIGR1YSByYSBtb3QgdmFpIGRpbmggaHVvbmcgZG9pIG1vaSANCmhvYXQgZG9uZyBjYWMg dGFwIGRvYW4gdmEgdG9uZyBjb25nIHR5IG5oYSBudW9jLg0KDQpWaW5hc2hpbjogRG8ga2llbSB0 cmEsIGtpZW0gc29hdCBoYW4gY2hlDQoNCkRhbmggZ2lhIHZlIFZpbmFzaGluLCBDaHUgbmhpZW0g VXkgYmFuIEtpbmggdGUgSGEgVmFuIEhpZW4gbm9pOiAiVmllYyB0YXAgZG9hbiBuYXkgDQpyb2kg dmFvIHRpbmggdHJhbmcgbWF0IGNhbiBkb2kgdGFpIGNoaW5oIG5naGllbSB0cm9uZywgZHVuZyB0 cnVvYyBuZ3V5IGNvIHBoYSBzYW4gbGEgaGF1IA0KcXVhIGN1YSBxdWEgdHJpbmggdGFwIGRvYW4g ZGEgZGF1IHR1IGRhbiB0cmFpLCB0aGlldSBoaWV1IHF1YSwgY2h1YSB0aHVjIHN1IHR1YW4gdGhl byBxdXkgDQpsdWF0IHRoaSB0cnVvbmcgdmEgZG8gY29uZyB0YWMga2llbSB0cmEsIGtpZW0gc29h dCBjb24gbmhpZXUgaGFuIGNoZS4gQ2h1YSBwaGF0IGhpZW4gdmEgDQpuZ2FuIGNoYW4ga2lwIHRo b2kgbmh1bmcgcXV5ZXQgZGluaCBzYWkgdHJhaSB2ZSBkYXUgdHUsIHZlIHN1IGR1bmcgdm9uIGN1 YSBsYW5oIGRhbyB0YXAgZG9hbiIuDQoNCihBbmg6IENodSBuaGllbSBVeSBiYW4gS2luaCB0ZSBI YSBWYW4gSGllbi4gQW5oOiBMQUQpDQoNCk9uZyBIaWVuIG5oYW4gZGluaCwgdmllYyBjbyBwaGFu IGhvYSBETiBuaGEgbnVvYyB0aWVuIGhhbmggY2hhbSwgZGFjIGJpZXQgcGhhbiBjb25nLCANCnBo YW4gY2FwIHRodWMgaGllbiBxdXllbiB2YSBuZ2hpYSB2dSBjaHUgc28gaHV1IG5oYSBudW9jIHZv aSB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IA0KY29uIHBoYW4gdGFuLCBjYXQga2h1YyBkYW4gZGVu IHRpbmggdHJhbmcga2hvbmcgY28gY28gcXVhbiBkYXUgbW9pIGNoaXUgdHJhY2ggbmhpZW0gDQpj aGluaCB2ZSBxdWFuIGx5IHZvbiwgdGFpIHNhbiB0YWkgY2FjIGRvYW5oIG5naGllcCBuYXkuDQoN Ck1vIGhpbmggdmEgcGh1b25nIHRodWMgcXVhbiB0cmksIHF1YW4gbHkgbm9pIGJvIHRyb25nIHRh cCBkb2FuLCB0b25nIGNvbmcgdHkgY29uIGJhdCANCmNhcCwgbGFtIGhhbiBjaGUgY2hhdCBsdW9u ZyBxdWFuIGx5LCBzdSBkdW5nIHZvbiwgdGFpIHNhbiBuaGEgbnVvYy4NCg0KVXkgYmFuIEtpbmgg dGUga2h1eWVuIG5naGkgbXVjIHRpZXUgbmFtIHRvaSBwaGFpIGxhICJ0aWVwIHR1YyB0YW8gbGFw IG1vaSB0cnVvbmcga2luaCANCmRvYW5oIGJpbmggZGFuZyBnaXVhIGNhYyB0aGFuaCBwaGFuIGtp bmggdGUsIGRvaSBtb2kgbWFuaCBtZSBxdWFuIHRyaSBkb2FuaCBuZ2hpZXAgDQpwaHUgaG9wIHZv aSBuZ3V5ZW4gdGFjIHZhbiBoYW5oIHRyb25nIG5lbiBraW5oIHRlIHRoaSB0cnVvbmciLg0KDQpU aGVvIG9uZyBIYSBWYW4gSGllbiwgY2FuIGRvaSBtb2kgY2FjIHF1eSBkaW5oIHZlIHF1YW4gbHkg dGFpIGNoaW5oIHZhIGNoZSBkbyBraWVtIHRyYSwgDQpnaWFtIHNhdCBob2F0IGRvbmcgY3VhIGNh YyB0YXAgZG9hbiBraW5oIHRlLCB0b25nIGNvbmcgdHkgbmhhIG51b2MuDQoNCktpZW4gcXV5ZXQg dGFjaCBjaHVjIG5hbmcgcXVhbiBseSBoYW5oIGNoaW5oIG5oYSBudW9jIHZhIGNodWMgbmFuZyBk YWkgZGllbiBjaHUgc28gDQpodXUgbmhhIG51b2MgdGFpIGRvYW5oIG5naGllcC4NCg0KIlRpZXAg dHVjIGhvYW4gdGhpZW4gY28gY2hlLCBjaGluaCBzYWNoIGtodXllbiBraGljaCwgcGhhdCB0cmll biBtYW5oIGNhYyBsb2FpIGhpbmgga2luaCANCnRlIG5nb2FpIG5oYSBudW9jLCB1dSB0aWVuIGhv IHRybyBkb2FuaCBuZ2hpZXAgbmhvIHZhIHZ1YSwgZHVhIHRoYW5oIHBoYW4ga2luaCB0ZSBuYXkg DQp0cm8gdGhhbmggZG9uZyBsdWMgcGhhdCB0cmllbiBxdWFuIHRyb25nIGN1YSBkYXQgbnVvYyB0 cm9uZyB0aG9pIGdpYW4gdG9pIiwgVXkgYmFuIEtpbmggdGUgDQpkZSB4dWF0Lg0KDQpVeSBiYW4g S2luaCB0ZSBjdW5nIGx1dSB5IENoaW5oIHBodSBtb3Qgc28gbmhpZW0gdnUga2hhYyBuaHUgZGll dSBjaGluaCBjbyBjYXUgZGF1IA0KdHUgdGhlbyBodW9uZyBnaWFtIHR5IGxlIGRhdSB0dSB0dSBu Z2FuIHNhY2ggbmhhIG51b2MsIGtodXllbiBraGljaCB2YSB0aHUgaHV0IHZvbiBkYXUgDQp0dSB0 dSBjYWMgdGhhbmggcGhhbiBraW5oIHRlIGtoYWMuIEhhbiBjaGUgdmllYyBjYXAgcGhlcCBkYXUg dHUgY2FjIGR1IGFuIHNhbiB4dWF0IHRpZXUgDQp0aHUgZGllbiBuYW5nIGNhbyBuaHUgZ2lhIGNv bmcgdGhlcCB0dSBwaG9pLCBkdSBhbiBzYW4geHVhdCB4aSBtYW5nLg0KDQpUaGlldSBuZW4gdGFu ZyB2dW5nIGNoYWMNCg0KVGFuIHRoYW5oIG5odW5nIGRhbmggZ2lhIGNodW5nIGN1YSBDaGluaCBw aHUsIG5odW5nIFV5IGJhbiBLaW5oIHRlIGN1bmcgY2hpIHJhIG5oaWV1IA0KYmF0IG9uIGN1YSBu YW0gMjAxMC4NCg0KQ2hhbmcgaGFuLCBjaGkgMTUvMjEgY2hpIHRpZXUgY3VhIG5hbSAyMDEwIGRh dCB2YSB2dW90IGtlIGhvYWNoLiBCb2kgdHJvbmcgMTYgY2hpIHRpZXUgDQpDaGluaCBwaHUgZGFu aCBnaWEgbGEgImRhdCB2YSB2dW90IiwgY28gY2hpIHNvIGdpYSB0aWV1IGR1bmcgKENQSSkgdGFu ZyA3LTglLCB0cm9uZyBraGkgDQpuZ2hpIHF1eWV0IGN1YSBRdW9jIGhvaSBsYSB0YW5nIGtob25n IHF1YSA3JS4gQ2hpIHNvIGdpYSBsYWkgY28gZGllbiBiaWVuIGJhdCBvbiBkaW5oIHRyb25nIHN1 b3QgbmFtLg0KDQpDbyBxdWFuIHRoYW0gdHJhIHF1YW4gbmdhaSAia2luaCB0ZSB2aSBtbyB2YW4g dGhpZXUgbmVuIHRhbmcgdnVuZyBjaGFjLCBjaGF0IGx1b25nIHRhbmcgDQp0cnVvbmcgdGhhcCwg dGllbSBhbiBraG9uZyBpdCBiYXQgdHJhYywgbmV1IGtob25nIHNvbSBraGFjIHBodWMgY28gdGhl IGFuaCBodW9uZyBkZW4gc3UgDQpwaGF0IHRyaWVuIG9uIGRpbmggdHJvbmcgbmh1bmcgbmFtIHRp ZXAgdGhlbyIuDQoNCkRpZW4gdGhpZXUgbmdoaWVtIHRyb25nIGtlbyBkYWkgYW5oIGh1b25nIGRl biBzaW5oIGhvYXQgY3VhIG5ndW9pIGRhbiB2YSBzYW4geHVhdCBjdWEgRE4uDQoNCk5oYXAgc2ll dSB0dXkgZGF0IG11YyBkdW9pIDIwJSBraW0gbmdhY2ggeHVhdCBraGF1IG5odW5nIHNvIHR1eWV0 IGRvaSBkdSBraWVuIHZhbiBsYSANCjEzLDUgdHkgVVNELCB0YW5nIDUlIHNvIHZvaSBuYW0gMjAw OSwgbmV1IGxvYWkgdHJ1IGRhIHF1eSwga2ltIGxvYWkgcXV5IHh1YXQga2hhdSB0aGkgDQpuaGFw IHNpZXUgdmFuIHRyZW4gMjMlLiBEYXkgbGEgeWV1IHRvIGNoaW5oIGxhbSBjYW4gY2FuIHZhbmcg bGFpIHRoYW0gaHV0IGtob2FuZyAxMCUgDQpzbyB2b2kgR0RQLiBOaGFwIHNpZXUga2VvIGRhaSB0 cm9uZyBuaGlldSBuYW0gZGEgbGFtIHN1dCBnaWFtIG5ndW9uIGR1IHRydSBuZ29haSBob2ksIA0K dGFuZyBubyBxdW9jIGdpYSB2YSBnYXkgc3VjIGVwIGdpYW0gZ2lhIGRvbmcgbm9pIHRlLiANCg0K VGhhbSBodXQgY2FuIGNhbiB2YW5nIGxhaSBsb24gY3VuZyB2b2kgdGhhbSBodXQgbmdhbiBzYWNo IGNhbywgbm8gY29uZyBjbyB4dSBodW9uZyANCnRhbmcgbmhhbmggc2UgbGEgbmh1bmcgdHJvIG5n YWkgbG9uIGNobyBzdSBwaGF0IHRyaWVuIGtpbmggdGUgdHJvbmcgbmh1bmcgbmFtIHRvaSBkYXku DQoNCktob25nIGl0IGRvYW5oIG5naGllcCB0aWVwIHR1YyBnYXAga2hvIGtoYW4gdHJvbmcgaG9h dCBkb25nIHNhbiB4dWF0LCBraW5oIGRvYW5oIGRvIHRhYyANCmRvbmcgYm9pIG1vdCBzbyBjaGlu aCBzYWNoIGN1IHRoZS4gDQoNCk1vdCBzbyB2YW4gZGUgdmUgeGEgaG9pIHZhIG1vaSB0cnVvbmcg YnVjIHh1YyBjaGFtIGR1b2MgZ2lhaSBxdXlldC4gVGhlbyBDaHUgbmhpZW0gDQpIYSBWYW4gSGll bjogIktob25nIGNoaSByaWVuZyBuYW0gMjAxMCBtYSBjYSB0cm9uZyA1IG5hbSAyMDA2IC0gMjAx MCwgaGF1IGhldCBjYWMgDQpjaGkgdGlldSB2ZSBiYW8gdmUgbW9pIHRydW9uZywga2hhYyBwaHVj IG8gbmhpZW0gZGV1IGtob25nIGRhdCBrZSBob2FjaCIuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4vY2hpbmh0cmkvMjAxMDEwL1ZpbmFzaGluLXNhaS1waGFtLWRvLWtob25nLWNvLWRhdS1t b2ktdHJhY2gtbmhpZW0tOTQzNTc4LyBOZ29jIExlIDA1OjAwLCAgMjEvMTAvMjAxMCAoR01UKzcp DQoNClZpbmFzaGluIHNhaSBwaGFtIGRvIGtob25nIGNvICdkYXUgbW9pJyB0cmFjaCBuaGllbQ0K DQpCZW4gaGFuaCBsYW5nIFF1b2MgaG9pLCBub2kgdmUgInF1eSB0cmFjaCBuaGllbSIgbyBWaW5h c2hpbiwgQ2h1IG5oaWVtIFV5IGJhbiBLaW5oIA0KdGUgSGEgVmFuIEhpZW4gY2hvIHJhbmcsIGRl IHhheSByYSBzYWkgcGhhbSBtb3QgcGhhbiB2aSBuZ3V5ZW4gbmhhbiBraG9uZyBjbyBjbyBxdWFu IA0KbmFvIGxhbSBkYXUgbW9pIGNoaXUgdHJhY2ggbmhpZW0gY2hpbmguDQoNCiogVGh1IHR1b25n IG5oYW4gdHJhY2ggbmhpZW0gY3VhIENoaW5oIHBodSB2ZSBWaW5hc2hpbiAgDQoqIENoaW5oIHBo dTogTmd1eWVuIENodSB0aWNoIFZpbmFzaGluICdkb2MgZG9hbiwgZ2lhIHRydW9uZycgDQoqIFR1 IHNhaSBwaGFtIFZpbmFzaGluLCBwaGFpIGRvaSBtb2kgZ2lhbSBzYXQgdGFwIGRvYW4gDQogDQpQ aGFuIGtodWMsIGNoaWEgY2F0DQoNCk5ldSBjaHVuZyB0YSBraWVtIHRyYSwga2llbSBzb2F0IHNh dCBzYW8gaG9uLCBraXAgdGhvaSBob24gdmEgeHUgbHkga2llbiBxdXlldCBob24gdGhpIGRhIA0K aGFuIGNoZSBkdW9jIGtobyBraGFuLCB0aGlldCBoYWkgY3VhIFZpbmFzaGluIG5vaSByaWVuZyBj dW5nIG5odSBjYWMgdGFwIGRvYW4ga2luaCB0ZSANCm5oYSBudW9jIG5vaSBjaHVuZy4gDQoNCihD aHUgbmhpZW0gVXkgYmFuIEtpbmggdGUgUUggSGEgVmFuIEhpZW46IENhaSBjYWNoIGRvYW5oIG5n aGllcCBwaGFpIGNoaSByYSBtb3QgY28gDQpxdWFuIGNodWMgbmFuZyBjaGl1IHRyYWNoIG5oaWVt IGNoaW5oLiBBbmg6IE5nb2MgTGUpDQoNCk5odSBiYW8gY2FvIENoaW5oIHBodSBndWkgcmllbmcg Y2hvIGRhaSBiaWV1IFF1b2MgaG9pIGRhIGtoYW5nIGRpbmgsIG5nYXkgdHUga2hpIA0KVmluYXNo aW4gY28gZGF1IGhpZXUgdGh1YSBsbyBuYW0gMjAwOCwgQ2hpbmggcGh1IGRhIGNoaSBkYW8gdGhl byBkb2kgc2F0IHNhby4gVmF5IA0Kbmh1bmcgc2FpIHBoYW0gdmFuIGtlbyBkYWkgZGVuIG5heS4g Tmd1eWVuIG5oYW4gZG8gZGF1PyANCg0KTGEgZG8gcXVhbiBseSBjaHVhIGNoYXQgY2hlIHZhIGJh biB0aGFuIGRvYW5oIG5naGllcCB0aGkgYmFvIGNhbyBzYWkgc3UgdGhhdCwgcXVhbiBseSANCmN1 bmcgY2h1YSB0b3QgZGFuIGRlbiB0aW5oIHRyYW5nIGRhdSB0dSBkYW4gdHJhaSwgcXV5IHRyaW5o IHJhIHF1eWV0IGRpbmggZGF1IHR1IGtob25nIA0KY2h1YW4uDQpSb2kgY28gY2EgdmFuIGRlIGJv IHRyaSBjYW4gYm8gdHJvbmcgZG9hbmggbmdoaWVwIG5odSB2YXkgY3VuZyBkYSBkYW4gZGVuIGto byBraGFuIGN1YSANClZpbmFzaGluLg0KDQpOaHVuZyBuZ29haSBzYWkgc290IGN1YSBkb2FuaCBu Z2hpZXAgdGhpIHRyYWNoIG5oaWVtIGN1YSBuaHVuZyBjbyBxdWFuIHF1YW4gbHkgbmhhIA0KbnVv YyBkb2kgdm9pIHRhcCBkb2FuIG5heSBkZW4gZGF1PyANCg0KLSBDYWMgY28gcXVhbiBxdWFuIGx5 IHZvaSBjaHVjIG5hbmcgbGEgY2h1IHNvIGh1dSBkYSB0aHVjIGhpZW4gY2h1YyBuYW5nIGN1YSBt aW5oIA0KY2h1YSBybyByYW5nLCBjaHVhIGRlbiBub2ksIGRlbiBjaG9uLiANCk8gZGF5IGNvIG1v dCBseSBkbyBudWEgbGEga2hvbmcgY28gY28gcXVhbiBuYW8gbGFtIGRhdSBtb2kgY2hpdSB0cmFj aCBuaGllbSBjaGluaCwgbWEgDQpiaSBwaGFuIGtodWMsIGNoaWEgY2F0LiANCkN1bmcgdmkgdGhl LCB0cm9uZyBxdWEgdHJpbmggY2FpIGNhY2ggZG9hbmggbmdoaWVwIGhpZW4gbmF5LCBuZ29haSB2 aWVjIGxhbSBybyBjaHVjIG5hbmcgDQpxdWFuIGx5IG5oYSBudW9jIHZhIGNodWMgbmFuZyBjaHUg c28gaHV1IHJhLCBjb24gcGhhaSBjaGkgcmEgbW90IGNvIHF1YW4gY28gY2h1YyBuYW5nIA0KY2hp dSB0cmFjaCBuaGllbSBjaGluaC4gQ2hpIGNvIHZheSwga2hpIGRvYW5oIG5naGllcCBnYXAgdmFu IGRlIG1vaSBjbyBjaG8gZGUgbWEgcXV5IA0Ka2V0IHRyYWNoIG5oaWVtLg0KDQpDaGFjIGNoYW4g c2UgbmhpZXUgZGFpIGJpZXUgbm9pIHZlIFZpbmFzaGluDQoNCk1hYyBkdSBraW5oIGRvYW5oIHRo dWEgbG8gbmh1bmcgVmluYXNoaW4gdmFuIGx1b24gYmFvIGNhbyBsYWksIGtlIGNhIG1vdCBzbyBj byBxdWFuIA0Ka2hpIGJhbyBjYW8gY3VuZyBiYW8gY2FvIGNodWEgY2hpbmggeGFjLCBjaGFuIHRo dWMgdmUgdGh1YyB0cmFuZyBjdWEgVmluYXNoaW4uIExpZXUgDQpjbyBwaGFpIGxhIGRvIGNhIHRp biwgaGF5IGNvIHN1ICJiYW8gY2hlIiBuZW4gZGEgeGF5IHJhIHRodWMgdHJhbmcgdHJlbj8gDQoN Ci0gVHJvbmcgYmFvIGNhbyBDaGluaCBwaHUgY3VuZyBub2kgVmluYXNoaW4gYmFvIGNhbyBraG9u ZyB0cnVuZyB0aHVjIGtldCBxdWEgY3VhIA0KbWluaCwga2UgY2EgY2FjIGRvYW5oIG5naGllcCBk YSBraWVtIHRvYW4uIEJhbiB0aGFuIEROIGtob25nIGJhbyBjYW8gdHJ1bmcgdGh1YyANCmRheSBk dSB0aW5oIGhpbmggdGFpIGNoaW5oLCBob2F0IGRvbmcgdGhpIGJhbyBjYW8ga2llbSB0b2FuIGN1 bmcga2hvbmcgcGhhbiBhbmggZGF5IA0KZHUgdGluaCB0cmFuZyBjdWEgRE4gZG8uIERheSBsYSBo YXUgcXVhIGN1YSBxdWFuIGx5IGNodWEgY2hhdCBjaGUsIGN1YSBxdWFuIHRyaSBETiANCmNodWEg dG90LCBkYW4gZGVuIGRhdSB0dSBkYW4gdHJhaSwgcXV5IHRyaW5oIGtob25nIGNodWFuLCBibyB0 cmkgbmhhbiBzdSBraG9uZyBkdW5nLi4uIGRhbiBkZW4ga2hvIGtoYW4gY2hvIFZpbmFzaGluLg0K DQpWYW4gZGUgY3VhIFZpbmFzaGluIGR1b2MgcmF0IG5oaWV1IGN1IHRyaSBxdWFuIHRhbSB2YSBk dSBraWVuIHNlIGR1b2MgdHJpbmggYmF5IHRvYW4gDQpkaWVuIHRydW9jIFF1b2MgaG9pLiBOaHVu ZyBkZW4ga2hpIHRob25nIHF1YSBjaGluaCB0aHVjIGNodW9uZyB0cmluaCBreSBob3AgdGhpIGNo aSANCmR1b2MgdHJpbmggYmF5IHRyb25nIG1vdCBwaGFuIGN1YSBiYW8gY2FvIHRpbmggaGluaCBr aW5oIHRlIC0geGEgaG9pIHZhIGJhbyBjYW8gY3UgdGhlIA0KbGFpIGR1b2MgZ3VpIHJpZW5nIGNo byBkYWkgYmlldS4gVmkgc2FvIHZheT8NCg0KLSBUcm9uZyBjaHVvbmcgdHJpbmggY3VhIGt5IGhv cCBjbyB2aWVjIENoaW5oIHBodSBiYW8gY2FvIHRpbmggaGluaCBWaW5hc2hpbi4gUXVvYyANCmhv aSBjdW5nIHNlIHRoYW8gbHVhbiB2ZSB2YW4gZGUgbmF5LiBWaW5hc2hpbiBjaGkgbGEgbW90IGRv YW5oIG5naGllcCBuZW4gcGhhbiB0aGFvIA0KbHVhbiBjdW5nIGNoaSBuYW0gdHJvbmcgdGluaCBo aW5oIGtpbmggdGUgLSB4YSBob2kgY2h1bmcgY3VhIGRhdCBudW9jLiANCg0KVmluYXNoaW4gbGEg dmFuIGRlIGR1b2MgY3UgdHJpIGRhYyBiaWV0IHF1YW4gdGFtLCB0YWkgc2FvIFF1b2MgaG9pIGto b25nIGRhbmggcmllbmcgbW90IA0KYnVvaSB0aGFvIGx1YW4gZGUgaGlldSBzYXUgdmFuIGRlPw0K DQotIFF1b2MgaG9pIGRhbmggcmEgMiBuZ2F5IGRlIHRoYW8gbHVhbiB2ZSB0aW5oIGhpbmgga2lu aCB0ZSAtIHhhIGhvaSB2YSBjYWMgZGFpIGJpZXUgY28gDQpxdXllbiBwaGF0IGJpZXUgeSBraWVu IHRyb25nIHRob2kgZ2lhbiBkbyB2ZSBjYWMgdmFuIGRlIG1hIGN1IHRyaSBxdWFuIHRhbS4gS2hv bmcgYWkgDQpoYW4gY2hlIGRhaSBiaWV1IGNvIHkga2llbiB2ZSB2YW4gZGUgVmluYXNoaW4gdHJv bmcgMiBidW9pIHRoYW8gbHVhbiB2YSBjaGFjIGNoYW4gc2UgDQpjbyBuaGlldSBuZ3VvaSBkZSBj YXAgZGVuIGNodSBkZSBuYXkuDQoNClRyYWNoIG5oaWVtIGNhIG5oYW46IFBoYWkgY28gdGhvaSBn aWFuIChQaG9uZyB2YW4gREJRSCBWdSBRdWFuZyBIYWkpIA0KIA0KVGFpIGRpZW4gZGFuIFF1b2Mg aG9pLCBUaHUgdHVvbmcgZGEgbmhhbiB0cmFjaCBuaGllbSBjaHVuZyBjdWEgQ2hpbmggcGh1IHZv aSB2dSB2aWVjIA0KVmluYXNoaW4uIExhIG5ndW9pIHR1bmcgdGhlbyBkdW9pIGNoYXQgdmFuIHZl IHNhaSBwaGFtIG8gVmluYXNoaW4gcXVhIG5oaWV1IGt5IGhvcCwgDQpjYSBuaGFuIG9uZyBjbyBo YWkgbG9uZz8gDQoNCi0gVHJ1b25nIGRvYW4gREJRSCB0aW5oIEh1bmcgWWVuIFZ1IFF1YW5nIEhh aTogRG8gbGEgc3UgbmhpbiBuaGFuIGNvIHRyYWNoIG5oaWVtIA0KY3VhIFRodSB0dW9uZywgdHJ1 b2Mgbmh1bmcgdmFuIGRlIGxvbi4gQnVvYyBkYXUgREJRSCBjYW0gdGhheSBkYSBkdW9jIHRvbiB0 cm9uZyANCnRyb25nIHZpZWMgbmhhbiB0cmFjaCBuaGllbSB2ZSBoYXUgcXVhIGN1YSBWaW5hc2hp biwgY29uIHRyYWNoIG5oaWVtIGNhIG5oYW4sIGNhYyANCmRvbiB2aSBxdWFuIGx5LCBwaGFpIGNv IHRob2kgZ2lhbi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIw MTA0My8yMDEwMTAyMzAwNTExMC5hc3B4IE5ndXlldCBNaW5oIC0gVGhhbmggTHVvbmcgLSBUdXll dCBNYWkgMjMvMTAvMjAxMCAwOjUxIA0KDQpRdW9jIGhvaSB0aGFvIGx1YW46IFZpbmFzaGluIHZh IG5vIGNvbmcgIC0gQ28ga2h1YXQgdGF0IGtob25nLCBjbyBydXQgcnVvdCBraG9uZz8gDQoNCihB bmg6IERCIE5ndXllbiBNaW5oIFRodXlldCBwaGF0IGJpZXUgdGFpIHBoaWVuIHRoYW8gbHVhbiB0 byBzYW5nIDIyLjEwIC0gQW5oOiBMLlEuUCkgIA0KDQpCYW8gY2FvIGN1YSBDaGluaCBwaHUgdmUg VmluYXNoaW4gdmEgc3UgdHJhIGxvaSBjdWEgVGhhbmggdHJhIENoaW5oIHBodSB2ZSBjaHV5ZW4g eGVtIA0KeGV0IHRyYWNoIG5oaWVtIGtoaSBkZSB4YXkgcmEgc2FpIHBoYW0gY3VhIFZpbmFzaGlu IGR1b25nIG5odSBjaHVhIGxhbSB0aG9hIG1hbiBEQlFILiANCg0KVHJvbmcgcGhpZW4gdGhhbyBs dWFuIHRvIHZlIGtpbmggdGUgLSB4YSBob2kgc2FuZyAyMi4xMCwgcmF0IG5oaWV1IGNhdSBob2kg dGllcCB0dWMgZHVvYyANCmRhdCByYSB4b2F5IHF1YW5oIGNodSBkZSBuYXkgdmEgY2F1IGhvaSBs b24gbmhhdCB2YW4gbGEgY2h1eWVuIHRyYWNoIG5oaWVtLg0KDQpDYW4gY28gY2hlIHRhaSBuZ2F5 IGNhIGRvaSB2b2kgZG9hbiB0aGFuaCB0cmEgDQoNCiJDaHVuZyB0b2kgbmhhbiBkdW9jIG5odW5n IHRob25nIHRpbiwgc28gbGlldSBkYW5nIHRpbiBjYXkgdHUgcGhpYSBjYWMgbmdhbiBoYW5nIGxp ZW4gDQpxdWFuIGRlbiBWaW5hc2hpbiwga2hhbmcgZGluaCByYW5nIHNvIG5vIGN1YSB0YXAgZG9h biBuYXkgbGVuIHRvaSAxMjAgbmdhbiB0aSBkb25nLCANCmtob25nIGNoaSBsYSA4NiBuZ2FuIHRp IGRvbmcgbmh1IGJhbyBjYW8uIERCUUggc2UgZGUgbmdoaSBDaGluaCBwaHUgZ2lhaSB0cmluaCBy byByYW5nIA0KdmUgc3UgY2hlbmggbGVjaCBzbyBsaWV1IG5heSB2YSBraGFuZyBkaW5oIGNvbmcg a2hhaSB0cnVvYyBRSCIgLSBEQiBMZSBRdWFuZyBCaW5oLCANCkNodSBuaGllbSBVQiBRdW9jIHBo b25nIC0gQW4gbmluaCBjdWEgUUgNCg0KVGhlbyBEQiBUcmFuIE5nb2MgVmluaCAoSGFpIFBob25n KSwgdmllYyBxdWFuIGx5IHZvbiBjdWEgTmhhIG51b2MgcXVhIHZ1IHZpZWMgDQpWaW5hc2hpbiBy byByYW5nIGNvIHN1IGJ1b25nIGxvbmcsIHF1YW4gbGlldSwgY2FuIHRoYW0gZGluaCBsYWkgbmFu ZyBsdWMgbmdoaWVwIHZ1IHRyb25nIA0KY29uZyB0YWMgdGhhbmggdHJhLCBraWVtIHRyYSB2YSBn aWFtIHNhdCBkb2kgdm9pIG5odW5nIHZhbiBkZSB2ZSBzYWkgcGhhbSBkdW9jIHBoYW4gYW5oIA0K dHUgY28gc28gbGVuIGNhcCB0cmVuLCBkb25nIHRob2ksIGNvIGNoZSB0YWkgcm8gcmFuZyBuZ2F5 IGNhIGRvaSB2b2kgZG9hbiB0aGFuaCB0cmEgc2F1IGtoaSANCmRhIHRpZW4gaGFuaCB4YWMgbWlu aCBtYSB2YW4geGF5IHJhIHZ1IHZpZWMgdGlldSBjdWMsIGdheSBhbmggaHVvbmcgbmdoaWVtIHRy b25nIHZlIA0Ka2luaCB0ZSwgdGFvIGR1IGx1YW4geGF1IHRyb25nIHhhIGhvaS4NCg0KREIgTmd1 eWVuIE1pbmggVGh1eWV0IChMYW5nIFNvbikgY3VuZyBsZW4gdGllbmc6IFRhaSBzYW8gVmluYXNo aW4gZGUgeGF5IHJhIGxvIHZvbiANCmxvbiBuaHUgdmF5IG1hIHZhbiBkdW9jIHJvdCB0aGVtIHZv bj8gT25nIFRodXlldCBjaG8gcmFuZzogIlF1eWV0IGRpbmggY3VhIENoaW5oIA0KcGh1IGRvbmcg bmdoaWEgdm9pIHZpZWMgY2h1bmcgdGEgdGllcCB0dWMgYmFvIGNhcCBjaG8gY2FjIHRhcCBkb2Fu LCB0b25nIGNvbmcgdHkgbmhhIA0KbnVvYy4gRGlldSBkbyB0aGUgaGllbiB2aWVjIGNodW5nIHRh IGRhbmcgbWFjIGJlbmggbmdhdSBodW5nLCB2YSBjbyB0aGUgZGFuIHRvaSBuaHVuZyANClZpbmFz aGluIGtoYWMgdHJvbmcgdHVvbmcgbGFpIi4gDQoNCkRlbSBkZW4gcGhpZW4gdGhhbyBsdWFuIG5o dW5nIGJ1YyB4dWMgY3VhIGN1IHRyaSB2ZSBzYWkgcGhhbSBWaW5hc2hpbiwgREIgTmdvIE1pbmgg DQpIb25nIChUUC5IQ00pIGNobyByYW5nLCB2YW4gZGUgVmluYXNoaW4gY28gY2F1IGNodXllbiBj byBjaGUgY2hhIGNodW5nIGtob25nIGFpIA0Ka2hvYywgbmh1bmcgY28gdmFuIGRlIGR1IGx1YW4g a2hvbmcgaGlldSB2YSBEQlFIIGtob25nIHRob25nIGxhIGNhY2ggZGF5IG1heSBuYW0sIA0KQ2hp bmggcGh1IHZheSBiYW8gbGFuaCA3MDAgdHJpZXUgVVNEIGNobyBWaW5hc2hpbiwgY3VvaSBjdW5n LCBoYXUgcXVhIG5nYW4gc2FjaCBwaGFpIA0KZ2FuaCBjaGl1IG5odW5nIGNodW5nIHRhIGNodWEg Y28gZ2lhaSB0cmluaCBybyByYW5nIHZvaSBuZ3VvaSBkb25nIHRodWUuIE5oYW4gZGFuIA0KbXVv biBiaWV0IHJvIHZpIHNhbyBkZSBuZ3VvbiBsdWMgTmhhIG51b2Mgcm9pIHJvdCBuaHUgdmF5PyBO Z29haSB0YWMgdHJhY2ggcmEsIGNvIGdpIA0Ka2h1YXQgdGF0IHRyb25nIGRvIGtob25nLCBjbyBy dXQgcnVvdCBraG9uZz8gDQoNClZhbiBjYWNoIHBoYXQgYmlldSB0aGFuZyB0aGFuIHRodW9uZyB0 aGF5LCBDaHUgbmhpZW0gVUIgUXVvYyBwaG9uZyAtIEFuIG5pbmggY3VhIA0KUUgsIG9uZyBMZSBR dWFuZyBCaW5oIGtob25nIG5nYWkgZHVhIHJhIHRob25nIHRpbjogIkNodW5nIHRvaSBuaGFuIGR1 b2Mgbmh1bmcgdGhvbmcgDQp0aW4sIHNvIGxpZXUgZGFuZyB0aW4gY2F5IHR1IHBoaWEgY2FjIG5n YW4gaGFuZyBsaWVuIHF1YW4gZGVuIFZpbmFzaGluLCBraGFuZyBkaW5oIHJhbmcgc28gDQpubyBj dWEgdGFwIGRvYW4gbmF5IGxlbiB0b2kgMTIwIG5nYW4gdGkgZG9uZywga2hvbmcgY2hpIGxhIDg2 IG5nYW4gdGkgZG9uZyBuaHUgYmFvIGNhby4gDQpEQlFIIHNlIGRlIG5naGkgQ2hpbmggcGh1IGdp YWkgdHJpbmggcm8gcmFuZyB2ZSBzdSBjaGVuaCBsZWNoIHNvIGxpZXUgbmF5IHZhIGtoYW5nIA0K ZGluaCBjb25nIGtoYWkgdHJ1b2MgUUgiLiANCg0KIlRoYW5nIDExIHNlIGNvIG1vdCBWaW5hc2hp biBtb2kiDQoNClRyYSBsb2kgcGhvbmcgdmFuIGJlbiBoYW5oIGxhbmcgcGhpZW4gdGhhbyBsdWFu IHRvIHNhbmcgMjIuMTAgdmUga2V0IHF1YSB0YWkgY28gY2F1IA0KVmluYXNoaW4gY3VuZyBuaHUg bW9pIGxvIGxvbiBuaGF0IGhpZW4gbmF5IGNhbiBnaWFpIHF1eWV0IHZlIHRhcCBkb2FuIG5heSwg UGhvIHRodSANCnR1b25nIHRodW9uZyB0cnVjIE5ndXllbiBTaW5oIEh1bmcgY2hvIGJpZXQ6IA0K Vm9pIHRpZW4gZG8gbmF5LCB0cm9uZyB0aGFuZyBuYXksIGNoYW0gbGFtIGxhIGRhdSB0aGFuZyAx MS4yMDEwLCBjaHVuZyB0YSBzZSByYSBtb3QgDQpWaW5hc2hpbiBtb2kuIFZpbmFzaGluIG1vaSBu Z2FuaCBuZ2hlIGNoaW5oIG5nb2FpIGRvbmcgdGF1IGNvbiBwaGF0IHRyaWVuIHRoZW0gbmdhbmgg DQpuZ2hlIHBodSB0cm8sIGRpIHRoZW8gZG8gbGEgaGUgdGhvbmcgZGFvIHRhbyBkb2kgbmd1IGRv bmcgdGF1IGNodXllbiBuZ2hpZXAsIGRlIHJvaSBtdWMgDQp0aWV1IGN1b2kgY3VuZyBsYSB0YW8g cmEgbW90IG5nYW5oIGNvbmcgbmdoaWVwIGRvbmcgdGF1IGN1YSBWaWV0IE5hbS4gS2hvIGtoYW4g bG9uIA0KbmhhdCB0cm9uZyB2aWVjIHRhaSBjbyBjYXUgVmluYXNoaW4gaGllbiBuYXkgbGEgdGlu aCBtYXQgY2FuIGRvaSBjdWEgbm8gcmF0IG5naGllbSB0cm9uZyANCm5lbiBjdW5nIGx1YyBwaGFp IGdpYWkgcXV5ZXQgYmEgdmllYzogdGh1IG5oYXQgcGhhaSBvbiBkaW5oIHNhbiB4dWF0LCB0aHUg aGFpIHRoYW5oIHRyYSwgDQpraWVtIHRyYSwgZGlldSB0cmEsIHh1IGx5LCB0aHUgYmEgbGEgbm8g bmFuIGNvIGNhaSBkZW4gaGFuIHBoYWkgdGluaCwgcGhhaSBkYW0gcGhhbiB2b2kgY2h1IA0Kbm8g a2hvbmcgZG9uIGdpYW4uIEJhIHlldSB0byBuYXkgcGhhaSBnaWFpIHF1eWV0IG1vdCBjYWNoIGRv bmcgdGhvaSwgY2hpbmggZG9uIGxhaSBkb2kgDQpuZ3UsIHN1YSBkb2kgbGFpIHF1YW4gdHJpLCB0 aGF5IGRvaSBtbyBoaW5oIGhvYXQgZG9uZyBjdWEgbm8uIFJvaSBjdW5nIHBoYWkgcnV0IGtpbmgg DQpuZ2hpZW0gbmh1bmcgdmFuIGRlIHF1YW4gbHkgbmhhIG51b2MsIHRoYW5oIHRyYSB0aGUgbmFv LCBraWVtIHRyYSB0aGUgbmFvLCBnaWFtIHNhdCB0aGUgDQpuYW8sIHF1YW4gbHkgY2h1IHNvIGh1 dSByYSBzYW8uIEtoaSBwaGFuIGNhcCBxdWEgcm9uZyBjaG8gVmluYXNoaW4gdGhpIGR1YSB0YXkg bWluaCB2b2kgDQp4dW9uZyBraG9uZyBjaGF0LiBCYW8gQ2FtIChnaGkpDQoNCkN1bmcgdGhlbyBv bmcgQmluaCwgY2h1bmcgdGEgZGEgY28gTHVhdCBDYW4gYm8gY29uZyBjaHVjIHF1eSBkaW5oIHZl IGNodWMgbmFuZywgdGhhbSANCnF1eWVuIHRyb25nIHZpZWMgYm8gbmhpZW0sIGNhY2ggY2h1YyBu Z3VvaSBkdW5nIGRhdSBjYWMgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSBuaGEgDQpudW9jLiBWYXkg a2hpIFRodSB0dW9uZyBraG9uZyBkb25nIHkgY2hvIFZpbmFzaGluIG11YSB0YXUgSG9hIFNlbiBu aHVuZyBjYXAgZHVvaSANCnZhbiBsYW0gdmkgc2FvIGtob25nIGtpZW0gZGllbSBuZ2hpZW0gdHVj LCBreSBsdWF0PyAiVHJhY2ggbmhpZW0gY3VhIGJvIGNodSBxdWFuIChCbyANCkdpYW8gdGhvbmcg dmFuIHRhaSkgdmEgY28gcXVhbiBjaHV5ZW4gbmdhbmggKEJvIFRhaSBjaGluaCwgQm8gS2UgaG9h Y2ggdmEgRGF1IHR1KSANCnRyb25nIHZhbiBkZSBuYXkgZGVuIGRhdT8iLCBvbmcgQmluaCBkYXQg Y2F1IGhvaS4NCg0KQnVjIHh1YyB0cnVvYyBzYWkgcGhhbSBjdWEgVmluYXNoaW4sIERCIE5ndXll biBCYSBUaHV5ZW4gKExhbSBEb25nKSB0aGFtIGNoaSBjb24gDQpkZSBuZ2hpOiAgIk5odW5nIGNh IG5oYW4gbGllbiBxdWFuIGRlbiB2dSB2aWVjIG5heSBwaGFpIHR1IGNodWMgdmEgbmVuIGNvaSBk YXkgbGEgbW90IA0KY28gaG9pIGRlIHRoZSBoaWVuIHZhbiBob2EgdHUgY2h1YyIuIA0KDQpCbyB0 cnVvbmcgVm8gSG9uZyBQaHVjIGtoaSBwaGF0IGJpZXUgdGh1YSBuaGFuOiAiQm8gY28gdHJhY2gg bmhpZW0gbW90IHBoYW4gdHJvbmcgDQp2YW4gZGUgbmF5IGtoaSBraG9uZyBraWVuIHF1eWV0IGJh byB2ZSBxdWFuIGRpZW0gdHJvbmcgdmllYyB0aGFtIG11dSBjaG8gQ2hpbmggcGh1IA0KdmUgdmll YyBraG9uZyBkb25nIHRpbmggdm9pIGNodSB0cnVvbmcgbW8gcm9uZywgaG9hdCBkb25nIGRhIG5n YW5oLCBkYSBuZ2hlIGN1YSANClZpbmFzaGluIi4gVHV5IG5oaWVuLCBvbmcgUGh1YyB2aWVuIGRh biB0aGVtIGx5IGRvICJzbyBobyBsb24gdHJvbmcgTHVhdCBEb2FuaCBuZ2hpZXAgDQpuaGEgbnVv YyBsYSBjbyBjbyBjaGUgY2hvIHBoZXAgSERRVCB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IG5oYSBu dW9jIGR1b2MgcXV5ZW4gDQpxdXlldCBkaW5oIGRhdSB0dSBkdSBhbiBjbyBnaWEgdHJpIGJhbmcg NTAlIHRvbmcgZ2lhIHRyaSB0YWkgc2FuIGN1YSB0YXAgZG9hbiwgZGFuIHRvaSB2aWVjIA0KZGF1 IHR1IGxvbiwgbyBhdCwgdGhpZXUgcXV5IGhvYWNoIHZhIGtob25nIGtpZW0gc29hdCB0b3Qgbmd1 b24gdm9uIi4gDQoNCktob25nIHRoZSBraGFuZyBkaW5oIG5vIGNvbmcgNTYsNyUgdHJvbmcgbmd1 b25nIGFuIHRvYW4gDQoNCiJLaG9uZyB0aGUgc28gc2FuaCBWaWV0IE5hbSB2b2kgTXkgaGF5IE5o YXQgQmFuIGRlIGtoYW5nIGRpbmggcmFuZyBubyBjb25nIGN1YSB0YSANCnZvaSA1Niw3JSBHRFAg dmFuIHRyb25nIG5ndW9uZyBhbiB0b2FuIiwgZGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0IChM YW5nIFNvbikgDQpub2kgdGhhbmcgdHJvbmcgYnVvaSB0aGFvIGx1YW4gdG8gY2hpZXUgMjIuMTAg dmUgdmFuIGRlIG5nYW4gc2FjaC4gVGhlbyBEQiBUaHV5ZXQsIGRpZXUgDQpkYW5nIG5ndXkgaGll bSBsYTogIkNodW5nIHRhIGRhbmcgbWFjIGJlbmggY2hheSB0aGVvIHRhbmcgdHJ1b25nIEdEUCwg dm9uIGJhbyBnb20gDQpjYSBubyBjb25nICh0cmVuIDU2JSBHRFApIHZhIGRhdSB0dSBudW9jIG5n b2FpIi4gIlR1IFFIIGtob2EgWEksIGtoaSB0aG9uZyBiYW8gbm8gDQpjb25nIG8gbXVjIHRyZW4g MzAlLCBjaHVuZyB0YSBjdW5nIG5vaSBsYSBhbiB0b2FuOyBraGkgbmFvIHRyZW4gNTAlIG1vaSBs YSBkYW5nIGJhbyANCmRvbmcuIEJheSBnaW8gNTYsNyUgdmFuIG5vaSB0cm9uZyBuZ3VvbmcgYW4g dG9hbiB0aGkgZ2lvaSBoYW4gbmFvIGxhIG5nb2FpIG11YyBhbiANCnRvYW4/IEh1b25nIGhvLCBi YW8gY2FvIGN1YSBjaGluaCBwaHUga2hvbmcgY28gZGUgY2FwIHBodW9uZyBhbiBjaGkgdHJhIG5v IG5odSB0aGUgDQpuYW8gdHJvbmcga2hpIHRvaSBkYXkgY28gdGhlIHRpZXAgdHVjIGRhdCB2YW4g ZGUgdmF5IG5vIG51b2MgbmdvYWkgdGllcCIsIG9uZyBUaHV5ZXQgDQpraG9uZyBnaWF1IGR1b2Mg bG8gbGFuZy4gT25nIFRodXlldCBkZSBuZ2hpIENoaW5oIHBodSBjYW4gdGhpZXQgcGhhaSBjbyBi YW8gY2FvIHZlIHZhbiANCmRlIG5heSwgbmdheSB0cm9uZyBreSBob3AgaG9hYyBvIGt5IGhvcCBj dW9pLCB0cmEgbG9pIHJvIHJhbmc6IFZheSBhaT8gVmF5IGxhbSBnaT8gVHJhIG5vIA0Kbmh1IHRo ZSBuYW8/IFRyb25nIHRob2kgaGFuIGJhbyBsYXU/IA0KDQpDaGlhIHNlIG5vaSBsbyBuYXksIERC IE5ndXllbiBUaGkgTG9hbiAoSGEgTm9pKSBuaGFuIHhldDogUm8gcmFuZyB2YW4gZGUgbm8gY29u ZyANCmNodWEgZHVvYyBxdWFuIHRhbSBkdW5nIG11YzsgY2FjaCB0aW5oIGJvaSBjaGkgY2h1YSBy byByYW5nLiBWaWVjIHZheSBubyBjdWEgY2FjIHRhcCANCmRvYW4gY28gdGluaCB2YW8gYm9pIGNo aSBuZ2FuIHNhY2ggaGF5IGtob25nPyAiVnVhIHF1YSBiYWkgaG9jIGN1YSBWaW5hc2hpbiBjaG8g dGhheSANCm5ldSB0YXAgZG9hbiBuYXkgYmkgcGhhIHNhbiB0aGkgQ2hpbmggcGh1IHBoYWkgY2Fu IHRoaWVwIHZhIGNoaXUgdHJhY2ggbmhpZW0gdm9pIGNhYyANCmtob2FuIHZheSBjdWEgdGFwIGRv YW4uIFRvaSBjaG8gcmFuZyBwaGFpIGR1YSBjYWMga2hvYW4gbm8gY3VhIGNhYyB0YXAgZG9hbiwg Y2FjIGRvYW5oIA0KbmdoaWVwIG5oYSBudW9jIGtoaSB0aW5oIHRvYW4gYm9pIGNoaSBuZ2FuIHNh Y2giLCBiYSBMb2FuIGRlIHh1YXQuDQoNCkRCIEtzb3IgUGh1b2MgKEdpYSBMYWkpIGNvbiBkZSB4 dWF0ICJkYSBkZW4gbHVjIHBoYWkgZHVuZyBsYWkgdmllYyBwaGF0IHRyaWVuIG1vIGhpbmggDQp0 YXAgZG9hbiBkZSBDaGluaCBwaHUgY28gbW90IGN1b2MgdG9uZyBrZXQsIGhvYWMgc28ga2V0IHRv YW4gZGllbiwgZGFuaCBnaWEgeGVtIG1vIA0KaGluaCBuYXkgaG9hdCBkb25nIGhpZXUgcXVhIG5o dSB0aGUgbmFvLCBjbyBwaHUgaG9wIHZvaSBuZW4ga2luaCB0ZSAtIHhhIGhvaSBWaWV0IE5hbSAN CmhheSBraG9uZywgbmVuIHhheSBkdW5nIG8gcXV5IG1vLCBwaGFtIHZpIGhvYXQgZG9uZyBvIG5o dW5nIGxpbmggdnVjIG5hbyBjaG8gaGlldSBxdWEiLiANCg0KaHR0cDovL25ndXllbnh1YW5kaWVu LmJsb2dzcG90LmNvbS8yMDEwLzExL3RvYW4tdmFuLXBoYXQtYmlldS1jdWEtZ3Mtbmd1eWVuLW1p bmhfMDQuaHRtbCAwNC0xMS0yMDEwIA0KDQpQaGF0IGJpZXUgY3VhIEdTIE5ndXllbiBNaW5oIFRo dXlldCB2ZSBubyBjb25nLCBuZ2FuIHNhY2gsIHZhIHZpbmFzaGluIC52LnYuICAgDQoNClBIQVQg QklFVSBWRSBOR0FOIFNBQ0ggTkhBIE5VT0MgVEFJIFFVT0MgSE9JIFNBTkcgMyAtIDExIC0gMjAx MA0KDQpUaGFvIGx1YW4gdmUgbmdhbiBzYWNoIG5oYSBudW9jIGxhbiBuYXksIHRvaSB4aW4gbmV1 IG1vdCBzbyB5IGtpZW4gdmUgbm8gY29uZywgY3UgdGhlIGxhIA0KdmUgNCB2YW4gZGUgbmh1IHNh dToNCg0KMS4gVGh1YyBjaGF0IG5vIGNvbmcgY3VhIG51b2MgdGEgaGllbiBuYXkgbGEgYmFvIG5o aWV1Pw0KDQpUaGVvIGJhbyBjYW8gY3VhIENoaW5oIHBodSB0aGkgaGllbiBuYXkgbm8gY29uZyBj dWEgbnVvYyB0YSB0dW9uZyBkdW9uZyA1Niw3JSBHRFAuIA0KTmh1bmcgdGhlbyB0aW5oIHRvYW4g Y3VhIG1vdCBjaHV5ZW4gZ2lhIGtpbmggdGUsIG5ldSBxdWFuIG5pZW0gbm8gY29uZyB0aGVvIHRo b25nIA0KbGUgcXVvYyB0ZSwgYmFvIGdvbSBjYSBuZ2hpYSB2dSBubyBjdWEgbmdhbiBoYW5nLCBj dWEgZG9hbmggbmdoaWVwIG5oYSBudW9jIHRoaSBubyBjb25nIA0KVmlldCBOYW0ga2hvbmcgZHVv aSA3MCUgR0RQICh2aSB0aGVvIGJhbyBjYW8gZ2lhbSBzYXQgY3VhIFV5IGJhbiBUaHVvbmcgdnUg UXVvYyANCmhvaSB0aGkgcmllbmcgZHUgbm8gbm9pIGRpYSBjdWEgY2FjIGRvYW5oIG5naGllcCBu aGEgbnVvYyBuYW0gMjAwOCBkYSBjaGllbSAyMCUgDQpHRFApLiBUb2kgeGluIGRlIG5naGkgQ2hp bmggcGh1IGdpYWkgdHJpbmggcm8gdGhlbSB2ZSB2YW4gZGUgbmF5LiANCg0KMi4gQ28gY2F1IGN1 YSBraG9pIG5vIGNvbmcgbm9pIHRyZW4gbmh1IHRoZSBuYW8/IA0KDQpCYW8gY2FvIGN1YSBDaGlu aCBwaHUgY2h1YSBjaG8gYmlldCBjbyBjYXUgY3VhIGtob2kgbm8gY29uZyBjaGllbSBob24gbnVh IEdEUCAoaG9hYyANCjIvMyBHRFAgbmh1IHRpbmggdG9hbiBjdWEgbmhhIGtpbmggdGUgZGEgbmV1 IHRyZW4pIG5odSB0aGUgbmFvLiBLaG9pIG5vIGF5IGNvIGJhbyBnb20gDQpubyB4YXUga2hvbmcs IGhheSB0b2FuIG5vIGRlcD8gSGF5IGRhIGxhIG5vIGNvbmcgdGhpIGtob25nIHBoYW4gYmlldCB4 YXUgZGVwPw0KDQpOZ2F5IGhvbSBxdWEsIG1vdCBzbyBkYWkgYmlldSByYXQgYW0gaGlldSB2YSBo aW5oIG5odSByYXQgYW0gaGlldSB2ZSBraW5oIHRlIGNvIGR1YSBkZW4gDQpjaG8gUXVvYyBob2kg bmh1bmcgdGluIHJhdCB2dWkgdmUgVGFwIGRvYW4gVmluYXNoaW4uIENoYW5nIGhhbiwgVGFwIGRv YW4gbmF5IHNhcCB4dWF0IA0KeHVvbmcgbmh1bmcgY29uIHRhdSBoYW5nIGNodWMgdmFuIHRhbiwg dm9uIGNodSBzbyBodXUgY3VhIGhvIHZhbiBjb24gdi52Li4uIE5naGUgDQpuaHVuZyB0aW4gbmF5 LCB0b2kgcmF0IG11bmcuIFRvaSBraG9uZyB0aGUgY2FpIFV5IGJhbiBLaWVtIHRyYSBUVyBuaHUg bWF5IGRlIHR1IGN1YSANCm1vdCBvbmcgQ2h1IHRpY2ggVUJORCB0aW5oIHZ1YSBiaSBUcnVuZyB1 b25nIGtpZW0gZGllbS4gTmh1bmcgdGhhbSB0YW0gdG9pIGNoaSANCm1vbmcgbmh1bmcga2V0IGx1 YW4gY3VhIFV5IGJhbiBLaWVtIHRyYSBUVyB2ZSB2dSBWaW5hc2hpbiBsYSBraG9uZyBob2FuIHRv YW4gY2hpbmggDQp4YWMuIEtob25nIGNoaW5oIHhhYyB0aGkgbWF5IGNobyBkYW4gbWluaCBxdWEu DQoNCk5odW5nIHRvaSB2YW4gbnVhIHRpbiBudWEgbmdvIHRydW9jIG5odW5nIHRpbiB2dWkgZHVv YyBtb3Qgc28gdmkgY29uZyBibyBob20gcXVhLg0KDQpMYWkgdHUgdmllYyBiYW4gbmh1bmcgY29u IHRhdSBtb2kgZG9uZywgdG9pIGtob25nIGJpZXQgc2UgZHVvYyBiYW8gbmhpZXUuIFRoZW8gdG9p IGhpZXUgDQp0aGkgdHJvbmcgY29uZyBuZ2hlIGRvbmcgdGF1LCB0YSBjaHUgeWV1IGxhcCByYXAg dGhvaSwgY3VuZyBraG9uZyBraGFjIG5nYW5oIGNoZSB0YW8gbyANCnRvLCB4ZSBtYXkgbGEgbWF5 LiBMYXkgY29uZyBsYW0gbGFpIG5odSB2YXkgdGhpIGNvIGR1IHRyYSBsdW9uZyBjaG8gY2EgbWF5 IGNodWMgbmdoaW4gDQpjYW4gYm8sIGNvbmcgbmhhbiBraG9uZz8NCg0KVmUgdm9uIG5hbSB0cm9u ZyB0YWkgc2FuLCB0b2kgdGhheSBjaHV5ZW4gbmF5IGdpb25nIG5odSBjaHV5ZW4gbW90IGFuaCBk dW9jIHZvIGNhcCANCnZvbiBkaSBidW9uLCBtb2kga2h1YW4gdmUgZHVvYyBtYXkgY2FpIG1heSBz ZWNvbmQgaGFuZCB0aGkgaGV0IHNhY2ggdm9uOyB2byBob2k6ICJDbyANCmFpIGRpIGJ1b24gbWF0 IHNhY2ggdm9uLCBsYWkgY29uIG5vIG5hbiBjaG9uZyBjaGF0IG5odSBvbmcga2hvbmc/IiB0aGkg aG9uIG5oaWVuIGJhbzogDQoiVm9uIG5vIG5hbSBvIGNhaSBuaGEgbWluaCBkYW5nIHNvbmcsIG8g bWF5IGNhaSBtYXkgY3UgbmF0IGtpYS4iDQoNClRvaSBuaG8gY2FjaCBkYXkgY2h1bmcgMTAgbmFt IGNvIG1vdCBkb2FuaCBuaGFuIHRoYW5oIGRhdCBkdW5nIHRpZW4gdmF5IG5nYW4gaGFuZyANCmRh dSB0dSB2YW8gYmF0IGRvbmcgc2FuIChjdSB0aGUgbGEgbXVhIHJhdCBuaGlldSBkYXQpLiBUb2kg aGFuIHRyYSBubyBuZ2FuIGhhbmcsIGdpYSBkYXQgDQp4dW9uZywgZG9hbmggbmhhbiBuYXkga2hv bmcgdHJhIG5vIGR1b2MsIGJpIHRvYSBrZXQgYW4gdHUgaGluaC4NCg0KQmF5IGdpbyBjaHVuZyB0 YSBiYW8gVmluYXNoaW4gY29uIGRhdCwgY29uIG5oYSB4dW9uZywgY29uIG5odW5nIGNvbiB0YXUg Y3UgKGNvIHRoZSBiYW4gDQp0aGVvIGdpYSBzYXQgdnVuKSB2LnYuLi4gZGUgdHJhIG5vLiBUb2kg a2hvbmcgaGlldSBseSBsdWFuIG5heSB0aGUgbmFvLiBOaHVuZyBjbyBtb3QgZGlldSANCmNoYWMg Y2hhbiwgbmh1IGtoYW5nIGRpbmggY3VhIEJvIHRydW9uZyBWdSBWYW4gTmluaCwgbGEgVmluYXNo aW4gZGEgdmF5IG1vdCBzbyB2b24gDQpnYXAgMTMsNyBsYW4gdm9uIGNodSBzbyBodXUuIE5oYW4g ZGFuIGhvaSBsYSBob2kgc28gdm9uIHZheSBheSBtYXQgZGkgZGF1LCBjaHUga2hvbmcgDQpob2kg dm9uIGNodSBzbyBodXUuIENhIG51b2MgbGFtIGFuIG5odSBvbmcgVmluYXNoaW4gbmF5IHRoaSBy b2kgZGF5IGJpZXQgYmFuIGNhaSBnaSBkZSANCnRyYSBubz8NCg0KMy4gTm8gY29uZyBWaWV0IE5h bSBkYSB2dW90IG5ndW9uZyBhbiB0b2FuIGNodWE/DQoNClRoZW8gbW90IGNodXllbiBnaWEga2lu aCB0ZSwgIm11YyBkbyBhbiB0b2FuIGN1YSBubyBjb25nIGtob25nIGNoaSBwaHUgdGh1b2MgdmFv IHR5IGxlIA0Kbm8vR0RQLCBtYSBxdWFuIHRyb25nIGhvbiwgcGh1IHRodW9jIHZhbyB0aW5oIHRy YW5nIHN1YyBraG9lIGN1YSBuZW4ga2luaCB0ZS4NCg0KS2hvIGNvIHRoZSB5ZW4gdGFtIGtoaSBu byBjb25nIGN1YSB0YSB0YW5nIG5oYW5oIHRyb25nIGJvaSBjYW5oIHRoYW0gaHV0IG5nYW4gc2Fj aCANCnRhbmcgdmEgY2hpIHNvIElDT1IgY3VuZyB0YW5nIHRvaSBnYW4gMiBjaHUgc28uIERpZXUg bmF5IHZpIHBoYW0gbmd1eWVuIHRhYyBjbyBiYW4gY3VhIA0KcXVhbiBseSBubyBjb25nIGJlbiB2 dW5nLiBWYSBuaHUgdmF5LCBjbyBjbyBzbyBkZSBsbyBsYW5nIHJhbmcgR0RQIGNhbmcgdGFuZyB0 aGkgbm8gDQpjYW5nIHRhbmcsIGtoYSBuYW5nIHRyYSBubyBuZ2F5IGNhbmcga2hvLg0KDQo0LiBW YW4gZGUgdGh1IDQ6IExhbSB0aGUgbmFvIGRlIHZpZWMgdGFuZyBubyBjb25nIGtob25nIGRhbiBk ZW4gcGhhdCB0cmllbiB0aGlldSBiZW4gdnVuZz8NCg0KVGhlbyB0b2ksIGRlIHZpZWMgdGFuZyBu byBjb25nIGtob25nIGRhbiBkZW4gcGhhdCB0cmllbiB0aGlldSBiZW4gdnVuZywgY2FuIGdpdSAy IG5ndXllbiANCnRhYyBjbyBiYW46DQoNCi0gVGh1IG5oYXQ6IENvIGxhaSB0aGkgbGFtLCBraG9u ZyBjaGFjIGNvIGxhaSwgZHV0IGtob2F0IGtob25nIGxhbS4gVmkgZHUsIHZpZWMga2hhaSB0aGFj IA0KYmF1eGl0ZSBvIFRheSBOZ3V5ZW4sIGNodWEgdGluaCBjaGkgcGhpIGxhbSBjYW5nLCBsYW0g ZHVvbmcgdmFvIGdpYSB0aGFuaCBhbHVtaW51bSANCm1hIG1vdCBzbyBjaHV5ZW4gZ2lhIGtpbmgg dGUgaGFuZyBkYXUgY3VhIFZpZXQgTmFtIGRhIGJhbyBsbyB0aGkgbmVuIGR1bmcuDQoNCi0gR2l1 IGt5IGx1YXQgbmdhbiBzYWNoIGNobyBuZ2hpZW0uIEhvbSB0aHUgYmF5IDMwLzEwIHZ1YSBxdWEs IHRvaSB0aGF5IGJhbyBUdW9pIFRyZSANCmNvIGRhbmcgbW90IGJhbiB0aW4gbmh1IHNhdToNCg0K IlZhbiBwaG9uZyBDaGluaCBwaHUgdnVhIHRob25nIGJhbyB5IGtpZW4gY3VhIFBobyBUaHUgdHVv bmcgSG9hbmcgVHJ1bmcgSGFpIHZlIA0KdGluaCBoaW5oIHRodWMgaGllbiBjYWMgY29uZyB0cmlu aCwgZHUgYW4gdHJvbmcgZGllbSBuZ2FuaCBnaWFvIHRob25nIHZhbiB0YWkuDQpUaGVvIGRvLCB2 ZSBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBIYSBOb2kgLSBWaW5oIHZhIFRQLkhDTSAtIFBoYW4g VGhpZXQsIEJvIEdpYW8gDQp0aG9uZyB2YW4gdGFpIGRlIHh1YXQgdmllYyB0aGFuaCBsYXAgYmFu IGNoaSBkYW8gZGUgdGllcCBuaGFuIG5ndW9uIHZvbiBobyB0cm8ga2kgdGh1YXQgDQp0aGVvIHll dSBjYXUgY3VhIG5oYSB0YWkgdHJvIEpJQ0EuIFVCTkQgVFAuSENNIHBob2kgaG9wIHZvaSBCbyBL ZSBob2FjaCBkYXUgdHUgDQp0aG9uZyBuaGF0IHZvaSBuaGEgdGFpIHRybyBKSUNBIGRlIHRyaWVu IGtoYWkgZGF1IHRoYXUgcXVvYyB0ZSBkdSBhbiB0dXllbiBkdW9uZyBzYXQgc28gMSANCkJlbiBU aGFuaCAtIFN1b2kgVGllbiwgZGFwIHVuZyB5ZXUgY2F1IHRpZW4gZG8gZHUgYW4iDQoNCkRvYyB0 aW4gbmF5LCB0b2kgcXVhIHRodWMga2hvbmcgaGlldSBtaW5oIGNvIG5hbSBtbyBraG9uZy4gRHUg YW4gRFNDVCBCYWMgLSBOYW0gZGEgDQpraG9uZyBkdW9jIFF1b2MgaG9pIHRob25nIHF1YSAoZG8g bGEgbm9pIGNobyBuaGEgbmhhbik7IG5heSBDaGluaCBwaHUgdGllcCBuaGFuIHZpZW4gDQp0cm8g Y3VhIG51b2MgbmdvYWksIHRoYW5oIGxhcCBCYW4gY2hpIGRhbyBkdSBhbiB2YSBjaHVhbiBiaSB0 cmllbiBraGFpIGRhdSB0aGF1IHF1b2MgdGUgDQpkdSBhbiB0dXllbiBkdW9uZyBzYXQgc28gMS4g VGhlIHRoaSBraG9uZyBiaWV0IHRyb25nIG1hdCBuZ3VvaSBkYW4gY28gY29uIFF1b2MgaG9pIA0K a2hvbmc/DQoNCkhvbSAxLzExIHZ1YSBxdWEsIHRoYW8gbHVhbiB0YWkgaG9pIHRydW9uZywgbW90 IHNvIGRhaSBiaWV1IFF1b2MgaG9pIGNodSBkb25nIG5oYW4gbG9pIA0KdmUgcGhpYSBtaW5oLCB0 dWMgbGEgdmUgcGhpYSAxMDAwIGRhaSBiaWV1IGtob2EgWEkgdmEga2hvYSBYSUkgdHJvbmcgdmll YyBxdWFuIGx5IHRhcCANCmRvYW4ga2luaCB0ZSB5ZXUga2VtLCBkZSB4YXkgcmEgdnUgVmluYXNo aW4uIFRvaSBraG9uZyBoaWV1IDEwMDAgbmd1b2kgY3VuZyBjbyB0cmFjaCANCm5oaWVtIHRoaSB4 dSBseSB0cmFjaCBuaGllbSB0aGUgbmFvLiBIYXkgbGEgaG9hIGNhIGxhbmc/IA0KDQpUb2kgbW9u ZyBsYSBsYW4gbmF5IENoaW5oIHBodSBzZSBjdW5nIGNhcCB0aG9uZyB0aW4gdmUgbm8gY29uZyBk YXkgZHUgaG9uLCBkYWkgYmlldSBzZSANCnhlbSB4ZXQga3kgY2FuZyB2YSB0aHVjIGhpZW4gcXV5 ZW4gcXV5ZXQgZGluaCB2YXkgdmEgdHJhIG5vLCBkZSB0b2kgZGF5IGtob25nIHBoYWkgbmhhbiAN CmxvaSBuaHUgdGhlIG51YS4gDQoNCk5ndXllbiBNaW5oIFRodXlldCANCg0KKlZhbiBiYW4gZG8g R1MgTmd1eWVuIE1pbmggVGh1eWV0IGd1aSB0cnVjIHRpZXAgY2hvIE5ndXllbiBYdWFuIERpZW4t QmxvZy4gDQpYaW4gY2hhbiB0aGFuaCBjYW0gb24gR2lhbyBzdSEgDQoNCmh0dHA6Ly90dW9pdHJl LnZuL0NoaW5oLXRyaS1YYS1ob2kvNDA5MTk5L1F1b2MtaG9pLWxvLW5nYWktY2h1eWVuLXRodS1j aGkuaHRtbCBDQU0gVkFOIEtJTkggMDQvMTEvMjAxMCwgMDg6MDQgKEdNVCs3KSANCg0KVGh1IHR1 b25nOiBRdW9jIGhvaSBsbyBuZ2FpIGNodXllbiB0aHUgY2hpIC0gYm9pIGNoaSBjaHVhIHRpbmgg dHJhaSBwaGlldSBjaGluaCBwaHUgDQoNClRUIC0gTmdheSAzLTExLCBRdW9jIGhvaSB0aGFvIGx1 YW4gbyBob2kgdHJ1b25nIHZlIHRodWMgaGllbiBkdSB0b2FuIG5nYW4gc2FjaCBuYW0gDQoyMDEw LCBkdSB0b2FuIHZhIHBodW9uZyBhbiBwaGFuIGJvIG5nYW4gc2FjaCB0cnVuZyB1b25nIG5hbSAy MDExLiBOaGlldSBkYWkgYmlldSB0aWVwIA0KdHVjIG5ldSB2YW4gZGUgbm8gY29uZywgY2hpIGNo byBub25nIGRhbiBpdCwgaG9pIGhvcCBxdWEgbmhpZXUuLg0KDQpEYWkgYmlldSBOZ3V5ZW4gTmdv YyBEYW8gKEhhIE5vaSkgcGhhdCBiaWV1IHRyb25nIHBoaWVuIHRoYW8gbHVhbiBraW5oIHRlIC0g eGEgaG9pIHRhaSANClF1b2MgaG9pIC0gQW5oOiBWLkR1bmcNCg0KVGhlbyBkYWkgYmlldSBOZ3V5 ZW4gTmdvYyBEYW8gKEhhIE5vaSksIG5oYW4gZGFuIGRhbmcgcmF0IGJ1YyB4dWMgdmUgdmllYyBj aGkgY2hvIGxlIA0KaG9pIHJhdCBuaGlldS4gT25nIERhbyBjaG8gcmFuZyBkYSBkZW4gbHVjIHBo YWkgdHV5ZW4gYm8gdHUgbmF5IHZlIHNhdSBsZSBob2kgcGhhaSBkdW9jIA0KeGEgaG9pIGhvYSBt b3QgY2FjaCBuZ2hpZW0gdHVjIGRlICJuaGFuIGRhbiB5ZW4gdGFtIiB2YSBkYWkgYmlldSBRdW9j IGhvaSBzZSBraG9uZyANCnBoYWkgbmdoaSBuZ28gQ2hpbmggcGh1Lg0KDQpDaGkgbWEga2hvbmcg YmlldCB0aWV1IGtpZXUgZ2kNCg0KUGhhbiB0aWNoIHRoZW0gdmUgY2hpIG5nYW4gc2FjaCwgb25n IERhbyBiYW4ga2hvYW46ICJDaHVuZyB0YSBjaGkgbmh1bmcga2hvbmcgYmlldCANCnRpZXUga2ll dSBnaSwgY2h1YSB0aGF5IHRpbmggbmFvIGJhbyBjYW8gZGEgdGlldSBraWV1IGdpIGtoaSBkdW9j IHBoYW4gYm8gbmdhbiBzYWNoIi4gDQpUaGVvIG9uZyBEYW8sICJjaHVuZyB0YSBjaGkgbm9pIHZl IGNoaSBtYSBraG9uZyBiYW4gdmUgdGlldSwgZG8gdmF5IHN1b3QgbmdheSBub2kgDQpraG9uZyBo aWV1IHF1YS4gS2hvbmcgbWluaCBiYWNoIG5lbiBoaWVuIG5heSBkYWkgYmlldSBRdW9jIGhvaSBu Z29pIGRheSBraG9uZyBoaWV1IGxhIA0KcXVhIHZ1IFZpbmFzaGluIHRoaSBWaW5hc2hpbiBtYXQg ODYuMDAwIHRpIGRvbmcgaGF5IE5oYSBudW9jIHh1YXQgODYuMDAwIHRpIGRvbmciLg0KDQpEYWkg YmlldSBEYW5oIFV0IChLaWVuIEdpYW5nKSBraGFuZyBkaW5oIHBoYW4gYm8sIHN1IGR1bmcgbmdh biBzYWNoIGNvbiBiYXQgY2FwLCBxdWEgDQpuaGlldSBkYXUgbW9pIHF1YW4gbHksIGRhbiB0cmFp IHRyb25nIGNvbmcgdGFjIGdpYW0gbmdoZW8uIFRyb25nIGtoaSBkbyBjaGkgY2hvIGxpbmggdnVj IA0KaGFuaCBjaGluaCwgaG9pIGhvcCBsYWkgcXVhIG5oaWV1LiAiQ2hpbmggcGh1IGNhbiBjaGkg ZGFvIGdpYW0gaG9wIG8gY2EgdGluaCB2YSB0cnVuZyANCnVvbmcuIENhbiBibyBkaWEgcGh1b25n IGRhbmcgcmF0IHNvIGRpIGhvcCB2aSBjaGkgcGhpIG5oaWV1Ii4NCg0KQmEgVHJpbmggVGhpIE5n YSAoUGh1IFllbikgZG9uZyBxdWFuIGRpZW0ga2hpIGNobyByYW5nIHRoYXQgdGhvYXQgbmdhbiBz YWNoIGNhbiBkdW9jIA0KZGFuaCBnaWEgbmdoaWVtIHR1Yy4gVGhlbyBiYSBOZ2EsIGNhYyBxdXkg ZGluaCB2ZSBjaGkgaGllbiBjaHVhIGNoYXQgY2hlLCBjb24gbmhpZXUgc28gDQpoby4gIlZpIGR1 IHF1eSBkaW5oIHRpZXAga2hhY2gsIHRyaWNoIHRodW9uZyBsdWMgcXVhIGNoYXQsIGx1YyBxdWEg bG9uZy4gRGFjIGJpZXQgY2hpIGhvaSANCm5naGksIHRpZXAga2hhY2gsIHF1eSBkaW5oIGhpZW4g bmF5IGNoaSBraGEgdGhvYWkgbWFpLCBjaGkgc28ga2hvbmcgY28gbmd1b24gZGUgY2hpLiBQaHUg DQpZZW4gbm9pIHBoYWkgY2hpIHRoYXAgaG9uIG11YyBjaHVuZywgY2h1IHRoZW8gcXV5IGRpbmgg dGhpIGtob25nIGRhbSBiYW8iLiANCg0KW1RhbmcgY3VvbmcgZG9pIHRob2FpLCB0cmFuaCBsdWFu IHRoYW5nIHRoYW4NCg0KS2hvbmcgY28gZGFpIGJpZXUgUXVvYyBob2kgbmFvIHBoYXQgYmlldSBu ZW4gY2hpZXUgMy0xMSBRdW9jIGhvaSBkYSBuZ2hpIHNvbSBuZ2F5IA0Kc2F1IGtoaSBDaHUgbmhp ZW0gVmFuIHBob25nIFF1b2MgaG9pIFRyYW4gRGluaCBEYW4gZG9jIHRvIHRyaW5oIHZlIGR1IGtp ZW4gY2h1b25nIA0KdHJpbmggaG9hdCBkb25nIGdpYW0gc2F0IGN1YSBRdW9jIGhvaSBuYW0gMjAx MS4NCg0KVGhlbyB0byB0cmluaCwgaG9hdCBkb25nIGNoYXQgdmFuIG8gUXVvYyBob2kgdGllcCB0 dWMgZHVvYyBuYW5nIGNhbyB2ZSBjaGF0IGx1b25nLCB0YW5nIA0KY3VvbmcgdGluaCBkb2kgdGhv YWksIHRyYW5oIGx1YW4gdGhhbmcgdGhhbiwgY2F1IHRoaSwga2hvbmcgbmUgdHJhbmggdHJhY2gg bmhpZW07IGRpIHNhdSANCmxhbSBybyB0aHVjIGNoYXQgbmh1bmcgdmFuIGRlIGxvbiwgYnVjIHh1 YyBkdW9jIGR1IGx1YW4geGEgaG9pIHZhIGN1IHRyaSBjYSBudW9jIHF1YW4gDQp0YW0uIFZpZWMg dG8gY2h1YyBob2F0IGRvbmcgZ2lhaSB0cmluaCAoZGlldSB0cmFuKSB0YWkgdXkgYmFuIGN1YSBR dW9jIGhvaSBkYSBkdW9jIHRyaWVuIA0Ka2hhaSB2b2kgaGluaCB0aHVjIGRhIGRhbmcsIGRhdCBk dW9jIGtldCBxdWEgYnVvYyBkYXUsIGtoYW5nIGRpbmggdGluaCBkdW5nIGRhbiBhcCBkdW5nIA0K cGh1b25nIHRodWMgImRpZXUgdHJhbiIuIChMRSBLSUVOKV0NCg0KTm8gY29uZyBkYSBkZW4gNzAl IEdEUD8gDQoNClZhbiBkZSBubyBjb25nIHZhbiBkdW9jIG5oaWV1IGRhaSBiaWV1IGxvIG5nYWks IHF1YW4gdGFtLiBUaGVvIG9uZyBOZ3V5ZW4gTWluaCANClRodXlldCAtIHBobyBjaHUgbmhpZW0g VXkgYmFuIFZhbiBob2EgLSBnaWFvIGR1YywgdGhhbmggdGhpZXUgbmllbiwgbmhpIGRvbmcsIGJh byBjYW8gDQpjdWEgQ2hpbmggcGh1IG5vaSBubyBjb25nIGRhbmcgbyBtdWMgNTYsNyUgR0RQIG5o dW5nIHRoZW8gdGluaCB0b2FuIGN1YSBtb3QgDQpjaHV5ZW4gZ2lhIGtpbmggdGUsIG5ldSB0aGVv IHRob25nIGxlIHF1b2MgdGUsIHRpbmggY2Egbm8gY3VhIG5nYW4gaGFuZywgZG9hbmggbmdoaWVw IA0KbmhhIG51b2MgdGhpIG5vIGNvbmcgVk4gZGEga2hvbmcgZHVvaSA3MCUgR0RQIC0gdnVvdCBj YWMgY2hpIHRpZXUuIE9uZyBUaHV5ZXQgZGUgDQpuZ2hpIENoaW5oIHBodSBwaGFpIGxhbSByby4N Cg0KRGFpIGJpZXUgRG8gTWFuaCBIdW5nIChUaGFpIE5ndXllbikgY3VuZyBtb3QgYmFuIGtob2Fu IGtoaSBuZXUgY2F1IGhvaSBib2kgY2hpIA0KbmdhbiBzYWNoIHRodWMgbGEgYmFvIG5oaWV1IG5l dSB0aW5oIGR1IGNhYyBraG9hbiB0cmFpIHBoaWV1IGNoaW5oIHBodT8gUXV5IFRpZW4gdGUgDQpx dW9jIHRlIHRhaSBWTiBub2kgYm9pIGNoaSBjdWEgVk4ga2hvYW5nIDklLCBvbmcgSHVuZyBkZSBu Z2hpIHJhIHNvYXQgeGVtIGNhY2ggdGluaCANCmN1YSBWTiBjbyBwaHUgaG9wLg0KDQpPbmcgSHVu ZyBjdW5nIGRlIGNhcCB0b2MgZG8gdGFuZyBnaWEgdGlldSBkdW5nIHZhIGNobyByYW5nIG11YyB0 aWV1IG5hbSAyMDEwIHRhbmcgDQpraG9uZyBxdWEgNyUsIGdhbiBuaHUgQ2hpbmggcGh1IHNlIGto b25nIHRoZSB0aHVjIGhpZW4uDQoNCkR1IHRvYW4gdGhhcA0KDQpEYWkgYmlldSBOZ3V5ZW4gQmEg VGh1eWVuIChMYW0gRG9uZykgbmhpbiB0aGFuZyB2YW8gY29uIHNvIHZ1b3QgdGh1IHRvaSA1OC4w MDAgdGkgDQpkb25nIGRhdCBkYXUgaG9pOiAiQ28gcGhhaSBjYWMgZGlhIHBodW9uZyB0aGljaCB0 aGFuaCB0aWNoIG5lbiBkdSB0b2FuIHRoYXAgZGUgcm9pIHZ1b3QgDQpjYW8/Ii4gT25nIFRodXll biBjaG8gYmlldCB2b2kgbGFuaCBkYW8gbmhpZXUgZGlhIHBodW9uZyBjYW4gYmFvIGNhbyBsYSBw aGFpIHZ1b3QgdGh1IA0KbmVuIGJlbiBkdW9pIHBoYWkgdGFwIHRydW5nIG1vaSBjYWNoIGRlIHRo dS4gVGh1IGtob25nIGR1b2MgdGhpIGJhbiBkYXQsIGJhbiBkYXQga2hvbmcgDQpkdW9jIHRoaSBt dW9uIGNhYyBkb2FuaCBuZ2hpZXAgbmFtIG5heSBzZSBidSB2YW8gbmFtIHNhdSBkZSB2dW90IHRo dSwgZGUgY28gdGh1b25nLg0KDQpPbmcgTmd1eWVuIFZhbiBQaHVjLCBwaG8gY2h1IG5oaWVtIFV5 IGJhbiBLaW5oIHRlLCBkZSBjYXAgdmllYyB0aHUgbmd1b24gbHVjIHhhIGhvaSANCnZhbyBuZ2Fu IHNhY2ggcXVhIHRodWUsIHBoaS4uLiBvIG11YyBraGEgY2FvLiBUaGVvIG9uZyBQaHVjLCB0aSBs ZSBodXkgZG9uZyB2YW8gbmdhbiANCnNhY2ggY2hpIHRpZXUgY2hpIHR1IDIxLTIyJSBuaHVuZyB0 aHVjIGhpZW4gZGEgbGVuIGRlbiAyOCUuIE9uZyBQaHVjIGJhbiBraG9hbjogIkRheSANCmxhIHRo YW5oIHRpY2ggaGF5IGhhbiBjaGU/Ii4NCg0KR2lhaSB0cmluaCB0cnVvYyBRdW9jIGhvaSwgQm8g dHJ1b25nIEJvIFRhaSBjaGluaCBWdSBWYW4gTmluaCB0aHVhIG5oYW46ICJOb2kgdW9jIHRodSAN Cmtob25nIHNhdCB0aGkgZHVuZyBsYSBraG9uZyBzYXQgdGhhdCIuIFZpZWMgZHUgdG9hbiB0aGFw IHJvaSB2dW90IHRodSBraG9uZyBwaGFpIGRlIGxpbmggDQp0aHVvbmcgbWEgdGhlbyBvbmcgTmlu aCwgdmkgYmEgbmd1eWVuIG5oYW46IHRodSBub2kgZGlhIGRvIHZhbiBkZSBnaWEgY2EgbmVuIGR1 IGJhbyByYXQgDQpraG8ga2hhbiwgYmFuIHRoYW4gZG9hbmggbmdoaWVwIGN1bmcgdGhheSBkb2kg dHJvbmcgcXVhIHRyaW5oIGtpbmggZG9hbmggZGFuIGRlbiB0aHUgDQpiaWVuIGRvbmcuIFRodSBo YWksIG5ndW9uIHRodSB2dW90IGR1IHRvYW4gbG9uIG8gZGF0IGRhaSwgdGhlbyBvbmcgTmluaCwg ZG8gY2FjIGRpYSANCnBodW9uZyBkYSB0YW5nIGRhdSBnaWEgbmVuIGJhbiBkdW9jIGdpYSBzYXQg dGhpIHRydW9uZyBob24uIFRodSBiYSwgeHVhdCBuaGFwIHRhbmcgc28gDQp2b2kgZHUga2llbiB0 cmVuIDEwJS4gIktldCBxdWEgdGFuZyB0aHUgbmFtIG8gMSB2YW4geGEsIDYzIHRpbmgiIG5lbiBk byBjaGluaCBsYSBseSBkbyANCmtoaWVuIHVvYyB0aHUga2hvbmcgc2F0LiANCg0KVmUgbG8gbGFu ZyBib2kgY2hpLCBubyBjb25nLCBvbmcgTmluaCB0cmFuIHRpbmg6ICJLaG9uZyBwaGFpIGRpIHZh eSB0aGkga2hvbmcgZ2kgaGFuaCANCnBodWMgYmFuZy4gVG9pIGN1bmcgbXVvbiB2YXkgY2FuZyBp dCBjYW5nIHRvdCIuIE9uZyBOaW5oIHRodWEgbmhhbiBtdWMgYm9pIGNoaSB2dWEgDQpxdWEgY2h1 YSB0aW5oIHRyYWkgcGhpZXUgY2hpbmggcGh1LiBTYXAgdG9pLCB0aGVvIG9uZyBOaW5oLCBkbyBu aHUgY2F1IGNoaSBsb24sIHRodSBraG9uZyANCnRoZSB0YW5nIG5oYW5oIHNlIGNvbiBwaGFpIHRp ZXAgdHVjIHZheSBxdWEgdHJhaSBwaGlldS4gIA0KDQpodHRwOi8vdm5lY29ub215LnZuLzIwMTAx MTA3MDgyMzQ5MjE4UDBDOTkyMC9raW5oLXRlLTIwMTEtY2FuLXF1eWV0LXNhY2gtbG9uLWRlLXRy YW5oLXNhLWxheS1ib2ktY2hpLmh0bSBUSFVZIEhPQSAwNy8xMS8yMDEwIDIwOjQ4IChHTVQrNykg DQoNClRodSB0dW9uZzogQm9pIGNoaSB2YSBubyBjb25nIC0gTG8gaG9uZyB2ZSBsdWF0LCBiYXQg Y2FwIHRyb25nIGRpZXUgaGFuaCANCiANClRoZW8gVFMgVHJhbiBEdSBMaWNoIC0gVXkgdmllbiBV eSBiYW4gS2luaCB0ZSBjdWEgUXVvYyBob2ksIG5odW5nIGJhdCBvbiBjdWEga2luaCB0ZSANCnZp IG1vIHNlIG5naGllbSB0cm9uZyBob24gdHJvbmcgbmh1bmcgbmFtIHRvaSB2aSBuZW4ga2luaCB0 ZSBkYW5nICJzYSBsYXkiIGJvaSBjYWNoIGRhdSANCnR1IHJhaSBtYW5oIG1hbmgsIGR1bmcga2hv bmcgZHVvYyBtYSB0aWVwIHR1YyB0aGkgc2UgdGFuZyBib2kgY2hpLCBubyBjb25nLg0KDQpMbyBo b25nIHZlIGx1YXQgdmEgYmF0IGNhcCB0cm9uZyBkaWV1IGhhbmggDQoNCi0gVGh1YSBvbmcsIHRy b25nIHBoYXQgYmlldSB0YWkga2hvbmcgaXQga3kgaG9wIG9uZyBkZXUgdGhlIGhpZW4gcXVhbiBu Z2FpIHZlIGhpZXUgcXVhIA0KZGF1IHR1IGNvbmcsIHBoYWkgY2hhbmcgZGF5IGxhIHZhbiBkZSBt YSB0aGVvIG9uZyBsYSBjaHVhIGR1b2MgZGFuaCBnaWEgZGF5IGR1IGRlIGNvIA0KYmllbiBwaGFw IGR1IG1hbmg/DQoNClRoZW8gdG9pLCBuZXUgY2FjaCBkYXUgdHUgbmh1IGhpZW4gbmF5IHRoaSBj aHVuZyB0YSBraG9uZyB0cmFuaCBraG9pICJzYSBsYXkiLCB2aSBoaWVuIG5heSANCmNvIDEgZG9u ZyB0aGkgY2hvIGxhcCBkdSBhbiB0b2kgMi0gMyBkb25nLiBWYSBjdSBwaGFuIGJvIGNobyBkaWEg cGh1b25nIHZhIG5nYW5oLCBvbmcgDQpuYW8gbG8gZHVvYyB0aHUgdHVjIGR1IGFuIHNvbSB0aGkg ZHVhIHRpZW4gc29tLiANCg0KTmh1IHZheSBjaHVuZyB0YSB2aSBwaGFtIGhhaSBuZ3V5ZW4gdGFj IGxvbiBjdWEgZGF1IHR1LiBUaHUgbmhhdCBsYSBraG9uZyB0dWFuIHRodSANCm5ndXllbiB0YWMg Y2hpIHBoaSBjbyBob2ksIHR1YyBsYSB0aWVuIHZvbiBjbyBoYW4sIGNhaSBnaSBsb2kgbmhhdCB0 b2kgZGF1IHR1IHRydW9jLCBjYWkgZ2kgaXQgDQpsb2kgaG9uIHRoaSB0b2kgbGFtIHNhdS4gTmd1 eWVuIHRhYyB0aHUgaGFpIGxhIHBoYWkgYmFvIGRhbSB0aW5oIGRvbmcgYm8sIGJvIHRpZW4gdmFv IGNobyANCm5hbyB0aGkgcGhhaSBwaGF0IGh1eSBoaWV1IHF1YSBjYWkgdG9pIGRhIGxhbS4gVG9p IG5oYWMgbGFpIGxhIGNhY2ggZGF1IHR1IHJhaSBtYW5oIG1hbmgsIA0KdGhpZXUgZ2lhbSBzYXQg dGluaCBkb25nIGJvLCBrZW8gZGFpIHRob2kgZ2lhbiBob2FuIHRoYW5oLCBkZSB0aW5oIHRyYW5n ICJ2b24gbmFtIGNoZXQiIA0KcXVhIG5oaWV1IHRoaSBraG9uZyB0aGUgbWFuZyBsYWkgaGlldSBx dWEgLg0KDQpOaGluIGNhIGNodW9uZyB0cmluaCBtdWMgdGlldSBxdW9jIGdpYTsgY2h1b25nIHRy aW5oIGNobyB5IHRlLCBnaWFvIGR1YyBvIG5vbmcgdGhvbiANCmN1bmcgdGhlLCBjYWMgZHUgYW4g ZGV1IGRhdSB0dSAicGhhbiBjdW5nIiwgdHVjIGxhIHBoYW4geGF5IGR1bmcgY28gYmFuLiBDb24g InBoYW0gDQptZW0iIGxhIG5ndW9uIG5oYW4gbHVjLCB0cmluaCBkbyBxdWFuIGx5Li4uIHRoaSBr aG9uZyBjaHVhbiBiaSBkb25nIGJvLiBWaSBkdSwgYmVuaCB2aWVuIA0KcGhhaSBjbyBiYWMgc2ks IHRydW9uZyBob2MgcGhhaSBjbyB0aGF5Li4uIHRoaSBvbmcgeGluIHRpZW4gZGF1IHR1IGtob25n IHRpbmggbm9pLCBtYSBjb24gDQp0dXkgdGh1b2MgdmFvIG5ndW9pIG5ndW9pIGtoYWMuIA0KDQpU b2kgZGEgZGVuIG1vdCBiZW5oIHZpZW4gcmF0IGhpZW4gZGFpIG8gbW90IGh1eWVuLCBuaHVuZyB0 aGF5IHJhdCBpdCBiZW5oIG5oYW4gbm9pIHRydSwgdmkgDQp0aGlldSBiYWMgc2kgY28gdHJpbmgg ZG8sIG5lbiBiZW5oIG5oYW4gdmFuIGxlbiB0dXllbiB0cmVuIHZhIGJlbmggdmllbiB0dXllbiB0 cmVuIHZhbiBxdWEgDQp0YWkuDQoNClZvaSBuZ3VvbiB2b24gY28gaGFuIG5odW5nIHZ1YSBtdW9u IGtpZW4gY28gaG9hIHRydW9uZyBsb3AsIGxhbSBkaWVuLCBkdW9uZywgdHJ1b25nIA0KdHJhbS4u LiB0cm9uZyBraGkgZG8gbm9pIG5hbyBjdW5nIHhheSB0cnUgc28gbGFtIHZpZWMgY2hvIGhvYW5o IHRyYW5nLiBDaHVuZyB0YSBwaGFpIGNvIA0Kc3UgbHVhIGNob24gdGhvaS4NCg0KRG8gZG8gdG9p IGNobyByYW5nIHBoYWkgdGhheSBwaHVvbmcgcGhhcCBkYXUgdHUsIGNvIG5naGlhIGxhIGNvIGR1 IGFuIDEgZG9uZyB0aGkgbGFwIGR1IA0KYW4gMSBkb25nIHZhIGNvIHF1YW4gZGUgeHVhdCBkdSBh biBkYXUgdHUgcGhhaSB0aW5oIHRvYW4gY2EgaGFpIG5ndXllbiB0YWMgdHJlbiB2YSBjbyANCm5o aWVtIHZ1IHBoYWkgbGFtIGNobyBkdW9jIGNodSBraG9uZyBwaGFpIGNoYXkga2hvbmcgZHVvYyB0 aGkgdGhvaS4gDQoNCihBbmg6IERhaSBiaWV1IFRyYW4gRHUgTGljaDogTmFtIG5nb2FpIGRlIHRh bmcgMSBkb25nIEdEUCB0aW4gZHVuZyB0YW5nIDcgZG9uZywgbmFtIA0KbmF5IGNvIGxlIGN1bmcg ZGVuIDYgZG9uZywgdGhpIElDT1IgY2FvIGxhIGhlIHF1YSB0YXQgeWV1IC0gQW5oOiBDVFYuKSAN Cg0KLSBQaGFpIGNoYW5nIG5ndXllbiBuaGFuIGNodSB5ZXUgY3VhIHRpbmggdHJhbmcgbmF5IGxh IGRvIEx1YXQgRGF1IHR1IGNvbmcgdmEgTHVhdCANClF1YW4gbHkga2luaCBkb2FuaCB2b24gTmhh IG51b2MgZHUgZGEgY28gbmhpZXUgeSBraWVuIGNobyByYW5nIHJhdCBjYW4gdGhpZXQgbmh1bmcg bGFpIA0KY2hhbSBkdW9jIGJhbiBoYW5oLCB0aHVhIG9uZz8NCg0KSGllbiBuYXkgY2h1bmcgdGEg bm8gaGFpIGx1YXQuIFRodSBuaGF0IGxhIEx1YXQgRGF1IHR1IGNvbmcsIHR1YyBsYSBkYXUgdHUg YmFuZyBuZ2FuIHNhY2ggDQpOaGEgbnVvYyBjYWMgY29uZyB0cmluaCBwaHVjIGxvaSBtYSBuaGll bSB2dSBOaGEgbnVvYyBwaGFpIGxhbS4gVGh1IGhhaSBsYSBMdWF0IFF1YW4gDQpseSB2b24ga2lu aCBkb2FuaCBjdWEgTmhhIG51b2MgdG9pIGRhIGRlIGNhcCB0dSBkYXUgbmhpZW0ga3kgUXVvYyBo b2kga2hvYSAxMiBuaHVuZyANCnZhbiBraG9uZyBsYW0uIERheSBsYSBsbyBob25nIHZlIHBodW9u ZyBkaWVuICBwaGFwIGx5LCBnYXkgcmEgdGluaCB0cmFuZyBkYXUgdHUga2VtIGhpZXUgDQpxdWEs IGRhbiB0cmFpLCBsYW5nIHBoaSBuaHUgaGllbiBuYXkuIA0KDQpWaSB0aGUgdGFpIGt5IGhvcCBu YXksIHRvaSBkZSBuZ2hpIFF1b2MgaG9pIHBoYWkgY28gcXV5ZXQgc2FjaCBsb24gdmUgcGhhbiBi byBkYXUgdHUsIA0KdHJ1b2MgbWF0IGR1bmcgNSBuYW0ga2hvbmcgeGF5IHRydSBzbyBsYW0gdmll YyBjaG8gY28gcXVhbiBuYW8gY2EsIG5odW5nIGR1IGFuIGNodWEgDQpraG9pIGNvbmcgZHVuZyBk dSBhbiBkZSBkdW5nIHRpZW4gbGFtIGNhYyBjb25nIHRyaW5oIGtoYWMgdmEgZ2lhbSBib2kgY2hp IG5nYW4gc2FjaCANCnh1b25nLg0KDQotIEJlbiBjYW5oIGxvIGhvbmcgdmUgbHVhdCBuaHUgb25n IHZ1YSBwaGFuIHRpY2ggdGhpIHRpbmggdHJhbmcga2VtIGhpZXUgcXVhIGNvbiBjbyANCm5ndXll biBuaGFuIHR1IGxvIGhvbmcgZGlldSBoYW5oIHZhIGdpYW0gc2F0IGtob25nPw0KDQpOaHUgdG9p IGRhIG5vaSwgYmVuIGNhbmggdGluaCB0cmFuZyBkYXUgdHUgdmFuIHRoZW8gcXVhbiBkaWVtIHBo YW4gYm8gY2hpYSBkZXUgdGhlbyB0dSANCmR1eSB0dSByYXQgbGF1IHZhIGtob25nIHF1YW4gdGFt IGhhaSBuZ3V5ZW4gdGFjIG5vaSB0cmVuLCBtYWMgZHUgQm8gS2UgaG9hY2ggdmEgRGF1IHR1IA0K Y28gZHVhIHJhIHRpZXUgY2hpIGRlIHBoYW4gYm8gbmd1b24gdm9uLCBuaHVuZyBkdW9uZyBuaHUg bGEgc2F1IGtoaSBwaGFuIGJvIHRoZW8ga2lldSANCiJraG9hbiB0cmFuZyIgdGhpZXUga2llbSB0 cmEgZGFuaCBnaWEgdmUgaGlldSBxdWEgdHJvbmcgdGh1YyBoaWVuLiANCg0KVm9pIGNvIHF1YW4g bGFwIHBoYXAgdmEgZ2lhbSBzYXQgdGhpIHRvaSBkZSBuZ2hpIFF1b2MgaG9pIGxhOiBkZSBreSBo b3AgY3VvaSBuYW0gY28gdGhlIA0KYmFuIHZlIG5nYW4gc2FjaCB0aGkgdGFpIGt5IGhvcCBnaXVh IG5hbSBwaGFpIHRoYW8gbHVhbiBjaG8ga3kgdmUgbXVjIHRpZXUgZGF1IHR1IGN1YSANCm5hbSBz YXUuIE5odSAyMDExIHRvaSBkYXkgdGhpIHRhcCB0cnVuZyB1dSB0aWVuIGNhaSBuYW8sIGNhaSBu YW8gY2h1YSB1dSB0aWVuLCBjYW4gY2hvIGRvaS4gDQoNCktoaSBRdW9jIGhvaSB0aG9uZyBuaGF0 IHJvaSB0aGkgQ2hpbmggcGh1IHBoYW4gYm8gdGhlbyBxdWFuIGRpZW0gZG8uIFRvaSBreSBob3Ag Y3VvaSANCm5hbSByYSBsYWkgeGVtIGNvIGR1bmcgcXVhbiBkaWVtIGRvIGtob25nLiBDaHUgbmV1 IGN1IG5odSBiYXkgZ2lvLCB2b24gbmFtIHRydW9jIA0KY2h1eWVuIHNhbmcgbmFtIG5heSwgcGhh biBuYW0gbmF5IHRpZXAgdHVjLCB0aGFtIGNoaSBkdSBhbiBjdWEgbmFtIHNhdSBjdW5nIHRhbSB1 bmcgDQpjaG8gbmFtIG5heSBsYW0sIG5vaSBuYW8geG9uZyB0aHUgdHVjIHRydW9jIHRoaSBsYW0g dHJ1b2MuLi4gdGhpIHRvaSBjYW0gbmhhbiBuaHUgY2F1IA0Kbmh1ICJ0aHVuZyBraG9uZyBkYXki LCB0aGkga2hvbmcgYmlldCBib2kgY2hpIGRlbiBiYW8gbmhpZXUgbW9pIGR1Lg0KDQpEdW5nIGxh IGRvYW5oIG5naGllcCBkYW5nIGtobyBraGFuIHZlIHZvbiBuaHVuZyBkZSBnaWFpIHF1eWV0IGto b25nIGNvIG5naGlhIGxhIGJvbSANCnRpbiBkdW5nIHZvIGhhbi4gQm9tIHRpbiBkdW5nIHRoaSBk ZSBuaHVuZyBzZSB4YXkgcmEgbGFtIHBoYXQgbmdheSwgdGFuZyBjb25nIGNoaSB2YSANCnRhbmcg dGluIGR1bmcgbGEgdGFuZyB0b25nIGNhdSBuaHVuZyBuZW4ga2luaCB0ZSBoYXAgdGh1IHJhdCBr ZW0sIG5ldSB0YW5nIG51YSBzZSBjYW5nIA0Ka2VtIGhpZXUgcXVhLiBOYW0gbmdvYWkgZGUgdGFu ZyAxIGRvbmcgR0RQIHRpbiBkdW5nIHRhbmcgNyBkb25nLCBuYW0gbmF5IGNvIGxlIGN1bmcgDQpk ZW4gNiBkb25nLCB0aGkgSUNPUiBjYW8gbGEgaGUgcXVhIHRhdCB5ZXUuDQoNCktob25nIGNvIGFp IGNob25nIGxhbSBwaGF0IG1hIGdpYW0gbGFpIHN1YXQsIGNodW5nIHRhIHRvYW4gZG9pIG5ndW9j IHRoaSBsYW0gc2FvIG1hIA0KbGFtIGR1b2MuIFRvaSBkb25nIHRpbmggdm9pIG5oYW4geGV0IGN1 YSBDaHUgbmhpZW0gVXkgYmFuIEtpbmggdGUgSGEgVmFuIEhpZW4ga2hpIHRyYSANCmxvaSBwaG9u ZyB2YW4gdHJlbiBWbkVjb25vbXkgbGEgY2hpbmggc2FjaCB0aWVuIHRlIHZhIHRhaSBraG9hIGto b25nIGRvbmcgYm8gdm9pIG5oYXUuIA0KTm9pIG5vbSBuYSBsYSB0cm9uZyAyMDEwIGNoaW5oIHNh Y2ggdGllbiB0ZSBuaHUgb25nIG11b24gcmEgdGhhbmcsIGNvbiB0YWkga2hvYSB0aGkgbmh1IA0K b25nIG11b24gZGFwIGdhLCB0aGkgY2hpZWMgeGUgbm8gcGhhaSBjaGFwIGNob24gdGhvaS4NCg0K LSBUaGVvIHBoYW4gdGljaCBjdWEgb25nIHRoaSBMdWF0IERhdSB0dSBjb25nIHZhIEx1YXQgUXVh biBseSB2b24gTmhhIG51b2MgdGh1YyBzdSByYXQgDQpjYW4gdGhpZXQuIFZheSBuaHVuZyB2YW4g Y2h1YSBkdW9jIGR1YSB2YW8gZHUga2llbiBjaHVvbmcgdHJpbmggeGF5IGR1bmcgbHVhdCB0cm9u ZyANCm5hbSB0b2k/DQoNClRvaSByYXQgdGllYyBsYSBRdW9jIGhvaSBkYW5nIGJhbiBjaHVvbmcg dHJpbmggbGFwIHBoYXAgbmh1bmcgY2h1YSB0aGF5IGhhaSBkdSBhbiBsdWF0IA0KbmF5LiBUcm9u ZyBraGkgdmFuIGRlIGRvIGRhIGRhdCByYSB0dSBkYXUgbmhpZW0ga3ksIG5odW5nIGR1b25nIG5o dSBwaGlhIENoaW5oIHBodSB2YSANCmNhYyBjbyBxdWFuIHNvYW4gdGhhbyByYXQga2hvIGtoYW4u IE5nYXkgdHUgZGF1IG5oaWVtIGt5IFF1b2MgaG9pIGtob2EgMTIgdG9pIGRhIGJhbyANCmRvbmcg bGEgZGVuIG5nYXkgMS83LzIwMTAgbGEgTHVhdCBEb2FuaCBuZ2hpZXAgTmhhIG51b2MgaGV0IGhp ZXUgbHVjLiBMdWMgZG8gdmFuIGRlIA0KZGF0IHJhIGxhIG1vaSBxdWFuIGhlIGNodSBzbyBodXUg bmhhIG51b2Mgdm9pIG5ndW9pIHF1YW4gbHkgZHVvYyB4dSBseSBuaHUgdGhlIG5hbyBkZSANCmRh bSBiYW8ga2luaCBkb2FuaCBzdSBkdW5nIHZvbi4gTmhpZXUgZGFpIGJpZXUgY3VuZyBkb25nIHRp bmggdm9pIHRvaSBuaHVuZyBkZW4gbmF5IA0KbHVhdCB2YW4gY2h1YSBkdW9jIHNvYW4gdGhhby4N Cg0KWGluIGx1dSB5IGxhIHRyZW4gdGhlIGdpb2ksIGhhdSBuaHUgbnVvYyBuYW8gY3VuZyBjbyBx dW9jIGRvYW5oIGNodSBraG9uZyBjaGkgcmllbmcgVmlldCANCk5hbSBtb2kgY28uIE51b2MgbmFv IGN1bmcgY28gY2EsIHRoYW0gY2hpIGNvIG51b2MgcXVvYyBkb2FuaCBjaGllbSBkZW4gNTElIGNo dSANCmtob25nIGNoaSBsYSAyOCUgR0RQIG5odSBWaWV0IE5hbS4gVmF5IHRhaSBzYW8gbmd1b2kg dGEgY28gbHVhdCBkZSBxdWFuIGx5IGR1b2MgbWEgdGEgDQpraG9uZyBjbyBkdW9jLiBUaGFtIGNo aSBjbyBuZ2hpIGRpbmggY29uIGNhbiBjdSB2YW8gZGFvIGx1YXQgZGEgaGV0IGhpZXUgbHVjIHJv aSB0aGkgbGFtIA0Kc2FvIG1hIHF1YW4gbHkgdG90IGR1b2MuIFZheSBuZW4gdG9pIG1vaSBub2kg ZGF5IGxhIGxvIGhvbmcgcGhhcCBsdWF0LiANCg0KLVZhIHRyb25nIGtoaSBjaHVhIGNvIGx1YXQg dGhpIG5odW5nIGhhbiBjaGUsIHlldSBrZW0gdHJvbmcgIGRpZXUgaGFuaCB2YW4gZGllbiByYSBu aHVuZyANCmtobyBraGFjIHBodWMsIHRodWEgb25nPw0KDQpUb2kgdGh1YSBuaGFuLCBib2kgdmkg cXV5IGRpbmggcGhhcCBsdWF0IGtob25nIGNvIG5lbiBraGkgZGlldSBoYW5oIHRoaSByYXQgbGEg dGhvYWkgbWFpLiANClRvaSB2aSBkdSB0cnVvYyBkYXkgZGlldSBsZSBjYWMgY29uZyB0eSA5MSBk ZXUgbGEgbW90IG5naGkgZGluaCBjdWEgQ2hpbmggcGh1LCB0dWMgbGEgZGlhIA0KdmkgcGhhcCBs eSByYXQgY2FvLiBPIG1vdCBzbyBudW9jIGRpZXUgbGUgY3VhIHRhcCBkb2FuIHRoYW0gY2hpIGxh IG1vdCBkYW8gbHVhdC4gVmEgYWkgYmFuIA0KaGFuaCBkaWV1IGxlIGRvIHRoaSBkb2FuaCBuZ2hp ZXAgcGhhaSBiYW8gY2FvIGhvYXQgZG9uZyBjaG8gY28gcXVhbiBkby4gTmV1IGRpZXUgbGUgbGEg DQpuZ2hpIGRpbmggY3VhIENoaW5oIHBodSB0aGkgZG9hbmggbmdoaWVwIHBoYWkgYmFvIGNhbyBo b2F0IGRvbmcgY3VhIG1pbmggY2hvIENoaW5oIA0KcGh1IGNodSBraG9uZyBwaGFpIGJhbyBjYW8g Y2hvIFRodSB0dW9uZy4gQ29uIG5ldSBsYSBkYW8gbHVhdCB0aGkgaG9hdCBkb25nIGN1YSBkb2Fu aCANCm5naGllcCBkbyBwaGFpIGJhbyBjYW8gY2hvIFF1b2MgaG9pLiBDb24gYmF5IGdpbyBuaGll dSB0YXAgZG9hbiBsb24gaG9uLCBxdXkgbW8gdG8gDQpob24gbmh1bmcgZGlldSBsZSBjaGkgbGEg cXV5ZXQgZGluaCBjdWEgVGh1IHR1b25nLCB0aGkgZGlhIGx5IHBoYXAgbHkgZGEgZ2lhbSB4dW9u ZyByYXQgDQpuaGlldTsgdGhhbSBjaGkgY28gdGFwIGRvYW4gZGEgaG9hdCBkb25nIG1vdCB0aG9p IGdpYW4gcm9pIG5odW5nIGNodWEgY28gZGlldSBsZS4gDQoNClZhbiBkZSBudWEgdGhlbyB0b2kg Y3VuZyBjYW4gcXVhbiB0YW0gbGEgbmV1IHF1YW4gbHkgbmdhbiBzYWNoIGN1bmcgdGhpIGtob25n IGJhbyBnaW8gDQpDaGluaCBwaHUgZHVuZyByYSBjaGkgZGluaCBjaG8gdmF5IGhheSBiYW8gbGFu aCBjaG8gZG9hbmggbmdoaWVwIGNhLCBuZXUgY28gTHVhdCBEYXUgDQp0dSBjb25nIHRoaSBraG9u ZyBjaG8gcGhlcCBuaHUgdmF5Lg0KDQpEZSBjbyBkb3QgcGhhIGxpZW4gcXVhbiBkZW4gZG9hbmgg bmdoaWVwIG5oYSBudW9jLCB0b2kgZGUgbmdoaSBzdSBkdW5nIG1vdCBjbyBjaGUgbmdhbiANCnNh Y2ggY3VuZywgY28gbmdoaWEgbGEgQ2hpbmggcGh1IGtob25nIG5lbiBiYW8gbGFuaCwgY2hpIGRp bmggY2hvIHZheSB0YXQgY2Egbmh1bmcgZ2kgDQpsaWVuIHF1YW4gZGVuIHF1YW4gbHkgdmUgbm8g Y29uZyBkb2kgdm9pIHRhdCBjYSBjYWMgZG9hbmggbmdoaWVwLCBuaHVuZyB2YW4gZGUgbmF5IG5l biANCmNvIHN1IHRoYW0gZ2lhIGN1YSBRdW9jIGhvaSBob2FjIFV5IGJhbiBUaHVvbmcgdnUgUXVv YyBob2kgdmEgY29uZyBraGFpLCBtaW5oIGJhY2guIA0KDQpDYW4gbGFtIHJvIGhvbiB2ZSBnaWFp IHBoYXANCg0KLVRoZW8gbmdoaSB0cmluaCwgdmFvIGRhdSB0dWFuIHNhdSwgUXVvYyBob2kgc2Ug dGhvbmcgcXVhIGhhaSBuZ2hpIHF1eWV0IHZlIGtlIGhvYWNoIA0KcGhhdCB0cmllbiBraW5oIHRl LCB4YSBob2kgdmEgZHUgdG9hbiBuZ2FuIHNhY2ggY2hvIG5hbSAyMDExLiBUaGVvIG9uZyBuaHVu ZyBnaWFpIHBoYXAgDQpuYW8gY2FuIGR1b2MgcXVhbiB0YW0gZGFjIGJpZXQgZGUgZGFtIGJhbyBv biBkaW5oIGtpbmggdGUgdmkgbW8gbmh1IHF1YW4gZGllbSBkYSBkdW9jIA0KVXkgYmFuIEtpbmgg dGUgbmhhbiBtYW5oPw0KDQpCYW8gY2FvIHZlIGtlIGhvYWNoIDIwMTEsIFRodSB0dW9uZyBkYSBu aGlldSBsYW4gbmhhbiBtYW5oIGNhbiB0YXAgdHJ1bmcgdGFpIGNhdSB0cnVjIA0KbmVuIGtpbmgg dGUsIG5oYW4gbWFuaCBzdSBvbiBkaW5oIHZpIG1vIHZvaSAzIG5vaSBkdW5nOiBnaWFtIG5oYXAg c2lldSwgZ2lhbSBib2kgY2hpIHZhIA0Ka2llbSBzb2F0IGxhbSBwaGF0LiBOaHVuZyBtYSBuaHVu ZyBnaWFpIHBoYXAgZGkga2VtIHRoZW8gdGhpIGNodWEgcm8sIGNodWEgY28gYnVvYyBkb3QgDQpw aGEuIFZpIGR1IG5odSB0b2kgZGEgbm9pIG8gdHJlbiwgZGUgZ2lhbSBib2kgY2hpIHRoaSB0YW0g bmd1bmcgdGF0IGNhIGR1IGFuIHhheSB0cnUgc28gbGFtIA0KdmllYy4gQ2h1IG5vaSBuYW8gY3Vu ZyB0aGljaCB0cnUgc28gaG9hbmggdHJhbmcgY2EsIHRyb25nIGtoaSB2dWEgbXVvbiBraWVuIGNv IHRydW9uZyANCmxvcCwgZ2lhbyB0aG9uZywgdGh1eSBsb2kuLiB0aGkgbGFtIHNhbyBtYSBsYW0g ZHVvYywgbGF5IHRpZW4gZGF1IHJhLg0KDQotVGFpIGt5IGhvcCBRdW9jIGhvaSB0aHUgc2F1IHZh IGJheSBvbmcgZGEgcmF0IHF1eWV0IGxpZXQgZHVhIHJhIHlldSBjYXUgdmUgdGFpIGNhdSB0cnVj IHZhIA0KY2h1eWVuIGRvaSBtbyBoaW5oIHRhbmcgdHJ1b25nLiBWYXkgdmFuIGRlIG5heSBkYSB0 aWVuIHRyaWVuIG5odSB0aGUgbmFvLCBvbmcgY28gdGhlIGNobyANCmJpZXQgcm8gaG9uPw0KDQpD aGluaCBwaHUgY3VuZyBkYSBuZ2hpZW4gY3V1IHZhIGRhIGJhbyBjYW8gZHUgdGhhbyBjaG8gUXVv YyBob2kgdGFpIGt5IGhvcCB0cnVvYywgDQpuaHVuZyBjbyBsZSB2YW4gZGUgdGFpIGNhdSB0cnVj IGtpbmggdGUgZG8gdGluaCBkYWkgaGFuIGN1YSBubyBuZW4gc2UgY2h1eWVuIGhvYSBub2kgZHVu ZyANCnZhbyBrZSBob2FjaCA1IG5hbSB2YSBjaGllbiBsdW9jIDEwIG5hbS4gVG9pIGRhbmcgaHkg dm9uZyBuaHUgdmF5Lg0KDQpDaGkgbGF5IHZpIGR1IGxpbmggdnVjIGNvbmcgbmdoaWVwIG90bywg bXVvaSBtYXkgbmFtIG1vIGN1YSwgcXVhbiBkaWVtIGN1YSB0YSBsYSAga2V1IA0KZ29pIHZvbiBk YXUgdHUgbnVvYyBuZ29haSB2YW8sICJoeSBzaW5oIiB0aGkgdHJ1b25nIGNobyBudW9jIG5nb2Fp IHZhbyBkZSBsYXkgY29uZyBuZ2hlLiANClZheSBuaHVuZyBzYXUgbXVvaSBtYXkgbmFtIHRvaSB0 aGF5IHRoaSB0cnVvbmcgImh5IHNpbmgiIGNobyBjYWMgaGFuZyBvdG8sIG1hIGNvbmcgDQpuZ2hl IGNodWEgdGhheSBkYXUuIENoaSBjbyBuZ2FuaCB4ZSB0YWkgdmEgeGUga2hhY2ggdHVvbmcgZG9p IHRvdCwgY29uIHhlIGR1IGxpY2ggIDcgY2hvIA0KdmEgNCBjaG8gZ2FuIG5odSBsYSBjb24gc28g a2hvbmcsIG5ldSB4ZXQgdmUgdHkgbGUgbm9pIGRpYSBob2EuIFRoZSBtYSBnYW4gZGF5IGxhaSBu Z2hlIA0Kbm9pIHNlIGdpYW0gdGh1ZSBuaGFwIGtoYXUgeGUgdGFpIHRoaSBraG9uZyBoaWV1IHRh IGh1b25nIGRlbiBtdWMgdGlldSBnaS4gVmkgbmV1IGxhbSANCnRoZSBjYWMgY29uZyB0eSBzYW4g eHVhdCBvdG8gdGFpIHZhIHhlIGtoYWNoIG5vaSBkaWEgY28gdGhlIHNvbSBjaGV0IHlldSwgbWEg Y2h1YSBhaSBlcCANCm1pbmggbGFtIGNhaSBjaHV5ZW4gZG8gY2EuDQoNClRoZW8gdG9pLCBkZSB0 YWkgY2F1IHRydWMgbmVuIGtpbmggdGUsIGdpYWkgcXV5ZXQgdmFuIGRlIGdvYyBjdWEgb24gZGlu aCB2aSBtbyB0aGkgdmFuIGRlIA0KcXVhbiB0cm9uZyBraG9uZyBwaGFpIGxhIHRhIGtldSBnb2kg bGEgdGFpIGNhdSB0cnVjIHRoZSBuYXksIHRhaSBjYXUgdHJ1YyB0aGUga2lhIG1hIGNhYyANCmNo aW5oIHNhY2gga2luaCB0ZSwgZGFjIGJpZXQgbGEgdGh1ZSwgdGluIGR1bmcgdmEgbmdvYWkgaG9p IHBoYWkgcGh1YyB2dSBtdWMgdGlldSBkbyB0aGVvIA0Kbmd1eWVuIHRhYzogY2hpbmggc2FjaCBr aW5oIHRlLCB0YWkgY2hpbmggdGFjIGRvbmcgdmFvIHRoaSB0cnVvbmcgdmEgY2hpbmggdGhpIHRy dW9uZyBzZSB0YWMgDQpkb25nIHZhbyBkaW5oIGh1b25nIGRhdSB0dSBraW5oIGRvYW5oIGN1YSBk b2FuaCBuZ2hpZXAuIA0KDQpodHRwOi8vdm5lY29ub215LnZuLzIwMTAxMDE5MDE1MjU2Njc2UDBD Ni92b24tdHJhaS1waGlldS1jaGluaC1waHUtbXVjLXRhbmctZGF1LXR1LWNvLXRoZS1xdWEtc3Vj LWNoaXUtZHVuZy5odG0gTkdVWUVOIEhBIDEwOjQwIChHTVQrNykgLSAyMC8xMC8yMDEwIA0KDQpU aHUgdHVvbmc6IFZvbiB0cmFpIHBoaWV1IENoaW5oIHBodSAtIE11YyB0YW5nIGRhdSB0dSBjbyB0 aGUgInF1YSBzdWMgY2hpdSBkdW5nIg0KIA0KVG9uZyBtdWMgZGF1IHR1IHRhbmcgcXVhIGNhbyBu aHVuZyBtb3Qgc28gZHUgYW4gZGEgYmF0IGRhdSB0aGF0IHRob2F0LCBsYW5nIHBoaSwgbm8gQ2hp bmggcGh1IGNvIHRoZSB0YW5nIG5oYW5oDQoNCkhhbmcgbG9hdCBsbyBuZ2FpIGRhIGR1b2MgbmV1 IHJhIHRhaSBiYW8gY2FvIGN1YSBVeSBiYW4gVGFpIGNoaW5oIC0gTmdhbiBzYWNoIHZlIGtldCBx dWEgDQpnaWFtIHNhdCAidmllYyB0aHVjIGhpZW4gbmdoaSBxdXlldCBjdWEgUXVvYyBob2kgdmUg cXVhbiBseSwgcGhhbiBibyB2YSBzdSBkdW5nIHZvbiB0cmFpIA0KcGhpZXUgQ2hpbmggcGh1LCBn aWFpIGRvYW4gMjAwMyAtIDIwMTAiLCB2dWEgZHVvYyBndWkgdG9pIGNhYyB2aSBkYWkgYmlldSBR dW9jIGhvaS4NCg0KKEFuaDogTmh1IGNhdSB2b24gdHJhaSBwaGlldSBDaGluaCBwaHUgY3VhIG5n YW5oIGdpYW8gdGhvbmcgdmFuIHRhaSB0YW5nIHJhdCBtYW5oLikgDQoNCk5vIENoaW5oIHBodSBj byB0aGUgdGFuZyBuaGFuaA0KDQpLZXQgcXVhIGdpYW0gc2F0IGNobyB0aGF5LCB0b25nIG11YyBk YXUgdHUgYmFuIGRhdSBjdWEgY2FjIGNvbmcgdHJpbmgsIGR1IGFuIHRodW9jIGRhbmggDQptdWMg ZGF1IHR1IHR1IG5ndW9uIHZvbiB0cmFpIHBoaWV1IENoaW5oIHBodSBnaWFpIGRvYW4gMjAwMyAt IDIwMTAgbGEgMjQ2LjQ0NyB0eSBkb25nLiANCk5odW5nIGhpZW4gbmF5IHF1YSB0b25nIGhvcCBj dWEgQm8gS2UgaG9hY2ggdmEgRGF1IHR1LCB0b25nIG11YyBkYXUgdHUgZGlldSBjaGluaCB0dSAN CmNhYyBibywgbmdhbmgsIGRpYSBwaHVvbmcgZGEgbGVuIHRvaSA1NTguNjU0IHR5IGRvbmcuDQoN CkhhdSBoZXQgY2FjIGR1IGFuIGRldSBjbyBwaGF0IHNpbmgsIHBoYWkgZGlldSBjaGluaCB0b25n IG11YyBkYXUgdHUgbG9uIHNvIHZvaSBwaGUgZHV5ZXQgDQpiYW4gZGF1LiBDbyBkdSBhbiBkaWV1 IGNoaW5oIHRvbmcgbXVjIGRhdSB0dSBsZW4gMiBsYW4sIGNvIG5odW5nIGR1IGFuIGtob25nIGNo aSBkaWV1IA0KY2hpbmggdmUgZ2lhIG5oYW4gY29uZywgdmF0IGxpZXUsIGdpYSBkZW4gYnUsIGdp YWkgcGhvbmcgbWF0IGJhbmcuLi4sIG1hIGNvbiBkaWV1IGNoaW5oIGNhIA0KdmUgdGhpZXQga2Ug a3kgdGh1YXQsIHF1eSBtbyBkdSBhbiwgY28gbmh1bmcgZHUgYW4gdnVhIHRoaSBjb25nLCB2dWEg ZGF1IHRoYXUsIHZ1YSBkaWV1IA0KY2hpbmggdG9uZyBtdWMgZGF1IHR1LCBiYW8gY2FvIG5oYW4g bWFuaC4gDQoNClV5IGJhbiBUYWkgY2hpbmggLSBOZ2FuIHNhY2ggY3VuZyBjaGkgcmEgY2FjIGNv biBzbyBjdSB0aGUgbGllbiBxdWFuIGRlbiBjYWMgYm8sIG5nYW5oIA0KbGFwIGR1IHRvYW4gbmh1 IGNhdSB2b24gdHJhaSBwaGlldSBDaGluaCBwaHUgbmFtIDIwMTEgY28gbXVjIHRhbmcgdmEgdHkg bGUgdGFuZyByYXQgY2FvIA0Kc28gdm9pIGR1IHRvYW4gbmFtIDIwMTAsIHZ1b3QgcXVhIGtoYSBu YW5nIGN1YSBuZ3VvbiB2b24gbmF5Lg0KDQpOaHUsIEJvIEdpYW8gdGhvbmcgVmFuIHRhaSB0YW5n IDcuNzAwIHR5IGRvbmcsIHRhbmcgNjIsNiU7IG5odSBjYXUgdm9uIHRyYWkgcGhpZXUgDQpDaGlu aCBwaHUgZ2lhaSBkb2FuIDIwMTEgLSAyMDE1IGN1YSBCbyBOb25nIG5naGllcCB2YSBQaGF0IHRy aWVuIG5vbmcgdGhvbiBsYSA1NC4wMDAgDQp0eSBkb25nLCBiaW5oIHF1YW4gbW9pIG5hbSBsYSAx MC44MDAgdHkgZG9uZywgc28gdm9pIG5hbSAyMDEwIHRhbmcgNzAlICg2LjgwMCB0eSANCmRvbmcp OyBjdWEgQm8gR2lhbyBkdWMgdmEgRGFvIHRhbyBsYSAzNi4yMDAgdHkgZG9uZywgYmluaCBxdWFu IG1vaSBuYW0gbGEgNy4yNDAgdHkgDQpkb25nLCBzbyB2b2kgbmFtIDIwMTAgdGFuZyA2MCw4JSAo Mi43NDAgdHkgZG9uZyk7IEJvIFkgdGUgdGFuZyA3NSw5JSAodGFuZyA0LjI1MCB0eSANCmRvbmcp Lg0KDQpUb25nIGR1IHRvYW4gY2EgNCBibyB0cmVuIHRyb25nIG5hbSAyMDExIHRhbmcgODEsNCUg KHRhbmcgMjEuNDkwIHR5IGRvbmcpLg0KDQpOaHUgdmF5LCB0aGVvIHBoYW4gdGljaCBjdWEgVXkg YmFuLCB2aWVjIGNhbiBkb2kgbmd1b24gbHVjIHRydW5nIGhhbiB0cm9uZyB0dW9uZyBsYWkgZGUg DQp0aHVjIGhpZW4gY2FjIGNvbmcgdHJpbmgsIGR1IGFuIGRhIGR1b2MgcGhlIGR1eWV0IHNlIGxh bSB0YW5nIG5oYW5oIG5vIENoaW5oIHBodSB0cm9uZyANCnRob2kgZ2lhbiBuZ2FuLiBCb2ksIGhp ZW4gdGFpIGR1IG5vIENoaW5oIHBodSBzbyB2b2kgR0RQIHVvYyBuYW0gMjAxMCBvIG11YyA0NCw1 JSANCih0cm9uZyBraGkgbXVjIGFuIHRvYW4gdGhlbyB0aG9uZyBsZSBxdW9jIHRlIHZhIHF1eSBk aW5oIGN1YSBubyBjaGluaCBwaHUgbGEgNTAlIEdEUCksIA0KdGFuZyAyMCwzJSBzbyBjdW5nIGt5 IHZhIHRvYyBkbyB0YW5nIGR1IG5vIENoaW5oIHBodSBiaW5oIHF1YW4gaGFuZyBuYW0gZ2lhaSBk b2FuIA0KMjAwNiAtIDIwMTAgZGEgbGEgMjQsMyUuDQoNCkRpZXUgbG8gbmdhaSBudWEgbGEgdHJh aSBwaGlldSBDaGluaCBwaHUgbGEgbmd1b24gdm9uIGRpIHZheSwgbGFpIHN1YXQgY2FvIHZhIGto YSBuYW5nIA0KaHV5IGRvbmcgbmd1b24gdm9uIG5heSB0cm9uZyBnaWFpIGRvYW4gdG9pIHNlIGdh cCBuaGlldSBraG8ga2hhbi4gTmdheSB0cm9uZyBuYW0gDQoyMDA5LCBwaGF0IGhhbmggbmhpZXUg cGhpZW4gbmh1bmcgdmFuIGNodWEgdGhlIGh1eSBkb25nIGR1IHNvIHZvbiBkdSBkaW5oLiBLZSBo b2FjaCANCmxhIDEyNi4wMDAgdHkgZG9uZyB2YSA5NTAgdHJpZXUgVVNELCBzb25nIHNvIHRodWMg aGllbiBjaGkgbGEgMTkuMTcyIHR5IGRvbmcgdmEgNTQzIHRyaWV1IA0KVVNELCAibGFtIHRhbmcg a2hhIG5hbmcgbWF0IGNhbiBhbiB0b2FuIGRvaSB2b2kgYW4gbmluaCB0YWkgY2hpbmggUXVvYyBn aWEgdHJvbmcgdHJ1bmcgDQpoYW4iLCBVeSBiYW4gVGFpIGNoaW5oIC0gTmdhbiBzYWNoIGxvIG5n YWkuDQoNClBoYW4gYm8gdm9uIGNvIG5oaWV1IHlldSB0byBiYXQgaG9wIGx5DQoNClRvbmcgbXVj IGRhdSB0dSB0YW5nIG5oYW5oLCBzb25nIHZpZWMgZGlldSBoYW5oLCBwaGFuIGJvIHZhIHN1IGR1 bmcgbmd1b24gdm9uIHRyYWkgDQpwaGlldSBDaGluaCBwaHUgY29uIG5oaWV1IGJhdCBjYXAuIFRo ZW8gVXkgYmFuIFRhaSBjaGluaCAtIE5nYW4gc2FjaCwgaGFuIGNoZSwgdGhpZXUgDQpzb3QgbmFt IG5nYXkgbyB2aWVjIGJhbiBoYW5oIGNhYyB2YW4gYmFuIHF1eSBwaGFtIHBoYXAgbHVhdC4NCg0K VmllYyBxdXlldCBkaW5oIHBoYXQgaGFuaCB0cmFpIHBoaWV1IG5nb2FpIGNhbiBkb2kgbmdhbiBz YWNoIE5oYSBudW9jIHZhIHN1IGR1bmcgbmh1IA0KbW90IGtlbmggcmllbmcgYm8gc3VuZyBuZ3Vv biB2b24gY2hvIGRhdSB0dSBwaGF0IHRyaWVuLCBkZSBuZ29haSBjYW4gZG9pIG5nYW4gc2FjaCBO aGEgDQpudW9jIGhhbmcgbmFtIGNodWEgdGhhdCBwaHUgaG9wIHZvaSBjYWMgcXV5IGRpbmggY3Vh IEx1YXQgTmdhbiBzYWNoIE5oYSBudW9jLg0KDQpCZW4gY2FuaCBkbywgZG8gdGhpZXUgaGUgdGhv bmcgdGlldSBjaGksIGRpbmggbXVjIGN1IHRoZSwga2hvYSBob2MgbmVuIHZpZWMgcGhhbiBibyAN Cm5ndW9uIHZvbiBuYXkgY2hvIGNhYyBkdSBhbiBjbyBuaGlldSB5ZXUgdG8gYmF0IGhvcCBseSwg Y29uIG1hbmcgdGluaCBiaW5oIHF1YW4sIG1vdCBzbyANCnRydW9uZyBob3AgY2h1YSBzYXQgdGh1 YyB0ZSwgZGUgdGFvIGNvIGNoZSAieGluIC0gY2hvIiwgZG9uZyB0aG9pIGtob25nIHBoYW4gcm8g dHJhY2ggDQpuaGllbSBjdWEgY28gcXVhbiBzdSBkdW5nIHZvbiBuaGEgbnVvYywgYmFvIGNhbyBj dWEgVXkgYmFuIG5oYW4geGV0Lg0KDQpEYW5nIGNodSB5LCBjaGF0IGx1b25nIG1vdCBzbyBkZSBh biBjb24gdGhhcCwgdGhpZXUgdGFtIG5oaW4gZGFpIGhhbiB0cm9uZyBxdXlldCBkaW5oIA0KZGF1 IHR1LiBUaG9pIGdpYW4gdGh1YyBoaWVuIGR1IGFuIHRodW9uZyBrZW8gZGFpIGRhbiBkZW4gbGFt IHRhbmcgdG9uZyBtdWMgZGF1IHR1LCBsYW0gDQpnaWFtIGRhbmcga2UgaGlldSBxdWEgZGF1IHR1 LCBsYW0gdGFuZyB0cmFjaCBuaGllbSB0cmEgbm8gY3VhIG5nYW4gc2FjaCBOaGEgbnVvYy4NCg0K S2V0IHF1YSBnaWFtIHNhdCBjaG8gdGhheSwgQm8gR2lhbyB0aG9uZyBWYW4gdGFpIGR1IGtpZW4g Y2hpIGhvYW4gdGhhbmggMTI3LzI2OSBjb25nIA0KdHJpbmgsIGR1IGFuOyBCbyBOb25nIG5naGll cCB2YSBQaGF0IHRyaWVuIG5vbmcgdGhvbiBkdSBraWVuIGhvYW4gdGhhbmggMzEvOTYgZHUgYW47 IGRlIA0KYW4ga2llbiBjbyBob2EgdHJ1b25nIGxvcCBob2MgdmEgbmhhIGNvbmcgdnUgY2hvIGdp YW8gdmllbiBjdW5nIG1vaSBob2FuIHRoYW5oIGR1YSB2YW8gDQpzdSBkdW5nIDQ1Ljk2OSBwaG9u ZyBob2MgKGRhdCA1NCw2JSBrZSBob2FjaCkgdmEgMTQuNzk2IHBob25nIGNvbmcgdnUgY2hvIGdp YW8gdmllbiANCihkYXQgNjQsNCUga2UgaG9hY2gpLg0KDQpCYW8gY2FvIGdpYW0gc2F0IGNvbiBj aGkgcmEgdGluaCB0cmFuZyBtb3Qgc28gZGlhIHBodW9uZyB0aGFuaCB0b2FuIHZvbiB0cmFpIHBo aWV1IENoaW5oIA0KcGh1IGtob25nIGNvIHRyb25nIGRhbmggbXVjLCB0aGFuaCB0b2FuIHZ1b3Qg bXVjIHF1eSBkaW5oLCBzdSBkdW5nIHZvbiBraG9uZyBkdW5nIA0KcXV5IGRpbmguIERhIGJhdCBk YXUgbmF5IHNpbmggdmFuIGRlIGtlbSBoaWV1IHF1YSwgdGhhdCB0aG9hdCwgbGFuZyBwaGkgdHJv bmcgcXVhIHRyaW5oIA0KdHJpZW4ga2hhaSB0aHVjIGhpZW4gbW90IHNvIGNvbmcgdHJpbmgsIGR1 IGFuLiBOaGlldSBkdSBhbiBzYXUga2hpIGRpZXUgY2hpbmggbXVjIHRpZXUsIA0KcXV5IG1vLCB0 b25nIG11YyBkYXUgdHUsIGhheSBibyBzdW5nIG5oaWVtIHZ1IGRhIGtob25nIGR1b2MgZGF1IHRo YXUgbWEgbWFjIG5oaWVuIA0KY2hvIHBoZXAgY2FjIG5oYSB0aGF1IHRpZXAgdHVjIHRodWMgaGll biBkdSBhbi4NCg0KTW90IHNvIGR1IGFuIGNvIGJpZXUgaGllbiAidGF0IG51b2MgdGhlbyBtdWEi IGtoaSBjaHUgZGF1IHR1IGJvIHN1bmcgdGhlbSBuaHVuZyBtdWMgDQp0aWV1IGtob25nIG5hbSB0 cm9uZyBxdXkgaG9hY2ggYmFuIGRhdS4gVmkgZHUsIG1vIGR1b25nIGdpYW8gdGhvbmcga2VtIHZv aSBjaGluaCANCnRyYW5nIGRvIHRoaSwgbGFtIGR1b25nIHRyYW5oLCBtbyByb25nIG1hdCBkdW9u ZywuLi4gbGFtIHRhbmcgdG9uZyBtdWMgZGF1IHR1LCBjYW4gdHJvIA0KdmllYyB0YXAgdHJ1bmcg bmd1b24gdm9uIGNobyBjYWMgY29uZyB0cmluaCB0aGlldCB5ZXUsIGNhcCBiYWNoIGtoYWMsIGNv IHF1YW4gZ2lhbSBzYXQgDQpuZXUgcm8uDQoNCkRlIG5naGkga2hvbmcgYm8gc3VuZyBkYW5oIG11 YyBtb2kNCg0KRGUgdGFuZyBjdW9uZyBoaWV1IHF1YSB0cm9uZyBzdSBkdW5nIG5ndW9uIHZvbiB0 cmFpIHBoaWV1IENoaW5oIHBodSwgVXkgYmFuIFRhaSBjaGluaCANCpYgTmdhbiBzYWNoIGRhIGR1 YSByYSBuaGlldSBraWVuIG5naGkuDQoNClRyb25nIGRvLCBjbyBkZSBuZ2hpIGR1YSBuZ3VvbiB2 b24gbmF5IHZhIGNhYyBraG9hbiB0aHUsIGNoaSBraGFjIGN1YSBOaGEgbnVvYyB2YW8gDQp0cm9u ZyBjYW4gZG9pIG5nYW4gc2FjaCBOaGEgbnVvYywgYmF0IGRhdSB0dSBuYW0gMjAxMywgc2F1IGto aSBMdWF0IE5nYW4gc2FjaCBOaGEgDQpudW9jIHN1YSBkb2ksIGJvIHN1bmcgY28gaGlldSBsdWMg dGhpIGhhbmguIE11YyBkaWNoIGN1YSBkZSBuZ2hpIG5heSBsYSBkZSBwaGFuIGFuaCBkYXkgDQpk dSwgY2hpbmggeGFjIHRodSwgY2hpIGN1YSBOaGEgbnVvYywgZG9uZyB0aG9pIGJhbyBkYW0gcXVh biBseSwga2llbSBzb2F0IGNoYXQgY2hlLCBnaXUgDQp2dW5nIGFuIG5pbmggdGFpIGNoaW5oIHF1 b2MgZ2lhLg0KDQpOZ29haSByYSwga2hpIGNhbiB0aGlldCwgY2hpIHRodWMgaGllbiBwaGF0IGhh bmggdHJhaSBwaGlldSBjb25nIHRyaW5oIGNobyB0dW5nIGNvbmcgdHJpbmgsIA0KZHUgYW4gY2Fw IGJhY2ggY3UgdGhlLiBUaHVjIGhpZW4gcmEgc29hdCBjYWMgY29uZyB0cmluaCBzdSBkdW5nIHZv biBkYXUgdHUgdHUgbmd1b24gdHJhaSANCnBoaWV1IENoaW5oIHBodSwgbmhhdCBsYSBjYWMgZHUg YW4gZGlldSBjaGluaCB0YW5nIHRvbmcgbXVjIGRhdSB0dSwgc2lldCBjaGF0IHZhIGxhcCBsYWkg DQp0cmF0IHR1IHRyb25nIGRhdSB0dSBjb25nLg0KDQpSaWVuZyBuZ3VvbiB0cmFpIHBoaWV1IENo aW5oIHBodSwgVXkgYmFuIGtpZW4gbmdoaSBraG9uZyBjaG8gcGhlcCBibyBzdW5nIGRhbmggbXVj IA0KbW9pOyBraG9uZyBibyBzdW5nIHF1eSBtbywgbXVjIHRpZXUgZHUgYW47IGNoaSBjaG8gcGhl cCBkaWV1IGNoaW5oIHRvbmcgbXVjIGRhdSB0dSBkbyANCnRoYXkgZG9pIGNhYyBxdXkgZGluaCBj dWEgcGhhcCBsdWF0IHZlIGRpbmggbXVjLCBkb24gZ2lhIG5oYW4gY29uZywgbmd1eWVuIG5oaWVu IHZhdCANCmxpZXUuIEtpZW4gcXV5ZXQgbG9haSBibyBuaHVuZyBkdSBhbiBraG9uZyBoaWV1IHF1 YSwgdGhvaSBnaWFuIHRodWMgaGllbiBrZW8gZGFpLiANCg0KMjAxMSBzZSBwaGF0IGhhbmggYmFv IG5oaWV1Pw0KDQpUaGFtIHRyYSBkdSB0b2FuIG5nYW4gc2FjaCBOaGEgbnVvYyB2YSBwaHVvbmcg YW4gcGhhbiBibyBuZ2FuIHNhY2ggVHJ1bmcgdW9uZyBuYW0gDQoyMDExLCBVeSBiYW4gVGFpIGNo aW5oIC0gTmdhbiBzYWNoIGNobyBiaWV0IENoaW5oIHBodSBkZSBuZ2hpIHBoYXQgaGFuaCA0NS4w MDAgdHkgDQpkb25nIHZvbiB0cmFpIHBoaWV1IENoaW5oIHBodSB0cm9uZyBuYW0gc2F1Lg0KDQpU dSB0aHVjIHRlIGdpYW0gc2F0IG5vaSB0cmVuLCBVeSBiYW4gY2hvIHJhbmcgbWFjIGR1IG5odSBj YXUgY2FuIGR1b2MgZGF1IHR1IHZlIGdpYW8gDQp0aG9uZywgdGh1eSBsb2ksIHkgdGUsIGdpYW8g ZHVjIGNvbiByYXQgbG9uLCBtYXQga2hhYyB2aWVjIHRhbmcgY3VvbmcgZGF1IHR1IGNvIHNvIGhh IHRhbmcgDQpkdW9jIGNvaSBsYSBtb3Qga2hhdSBkb3QgcGhhIHRyb25nIGtlIGhvYWNoIDUgbmFt IDIwMTEtMjAxNSwgbmh1bmcgZGUgYmFvIGRhbSBhbiANCm5pbmggdGFpIGNoaW5oIHF1b2MgZ2lh LCBjYW4gY3Uga2hhIG5hbmcgdmEgbmh1IGNhdSBkdXkgdHJpIG11YyBkdSBubyBDaGluaCBwaHUg aG9wIGx5LCANCmRlIG5naGkgcGhhdCBoYW5oIHR1IGtob2FuZyA0MC4wMDAgLSA0NS4wMDAgdHkg ZG9uZyB2b24gdHJhaSBwaGlldSBDaGluaCBwaHUuIA0KDQpVeSBiYW4gY3VuZyBuZXUgcXVhbiBk aWVtLCBuZ2F5IHRhaSBreSBob3AgbmF5LCBkZSBuZ2hpIENoaW5oIHBodSBiYW8gY2FvIHJvIHZv aSBRdW9jIA0KaG9pIHZlIGtlIGhvYWNoIHN1IGR1bmcgdm9uIHRyYWkgcGhpZXUgY2hpbmggcGh1 IGdpYWkgZG9hbiAyMDExIC0gMjAxNSwgYmFvIGdvbSBtdWMgDQp0aWV1LCB0b25nIG11YyBkYXUg dHUsIGtlIGhvYWNoIHBoYW4gYm8gY3UgdGhlIGNobyB0dW5nIGxpbmggdnVjLi4uIHZhIGdpYW8g Y2hvIENoaW5oIHBodSANCnRyaW5oIFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2kgcXV5ZXQgZGlu aCB2ZSBkYW5oIG11YyBjYWMgZHUgYW4gc3UgZHVuZyB2b24gdHJhaSANCnBoaWV1IGNoaW5oIHBo dSB0cnVvYyBraGkgdG8gY2h1YyB0aHVjIGhpZW4uIA0KIA0KWSBraWVuIGJhbiBkb2M6IA0KIA0K UEhHIDIwLzEwLzIwMTAgMTc6MTg6ICANCg0KUmF0IG1vbmcgUXVvYyBob2kgdmEgQ2hpbmggcGh1 IHh1IGx5IGhpZXUgcXVhIGR1b2MgdmFuIGRlIG5heS4gDQoNCkJheSBsYXUgbmF5IGNhYyBkb2Fu aCBuZ2hpZXAgdmEgY2FjIG5oYSBkYXUgdHUgY3VuZyBuaHUgZGFuIGNodW5nIGRldSBjaGl1IG1v dCBzbyANCm5naGljaCBseSBtYSBraG9uZyBiaWV0IHZpIHNhby4gTGFtIHBoYXQgY3UgdGFuZyBj YW8gbmh1bmcgZ2lhIGhhbmcgaG9hIGN1YSBkb2FuaCANCm5naGllcCBraG9uZyB0YW5nIGtpcCwg bG9pIG5odWFuIGN1YSBjYWMgY29uZyB0eSB0cmVuIHRoaSB0cnVvbmcgY2h1bmcga2hvYW4gY3Vu ZyBraG9uZyANCmJ1IGR1b2MgbGFtIHBoYXQgdmEgbWF0IGdpYSBjdWEgdGllbiBkb25nLiBMYW0g cGhhdCBjYW8sIGN1IHR1b25nIGxhIGN1bmcgdGllbiByb25nIHJhaSANCm5odSBob2kgMjAwNS0y MDA3IG5odW5nIHRodWMgcmEgY2FjIGRvYW5oIG5naGllcCBkaSB2YXkga2hvIGtoYW4gdmEgY2hp dSBsYWkgc3VhdCByYXQgY2FvLiANCg0KQmF5IGdpbyBuZ3V5ZW4gbmhhbiBsbyBybzogZG8gdmF5 IG5vIHF1YSBuaGlldSBkZSB0YWkgdHJvIGNobyBjYWMga2UgaG9hY2ggZGF1IHR1IHZvaSBjaGkg DQpwaGkgZG9pIGxlbiBuaGlldSBsYW4gY3VhIG1pbmgsIHF1YSBkbyB2dWEgaHV0IHZvbiB4YSBo b2kgdmFvIGRvIGxhbSB0YW5nIGxhaSBzdWF0IHRoaSANCnRydW9uZywgdnVhIHRhbyBhcCBsdWMg bGFtIHBoYXQgZG8gaHV5IGRvbmcgbW90IGx1b25nIGxvbiBjdWEgY2FpIG5oYW4gbHVjIHhhIGhv aSB2YW8gDQpkby4gDQoNCk5ldSBjaHVuZyB0YSBraG9uZyBrZW0gaGFtIGR1b2MgdmFuIGRlIG5h eSB0aGkgY28ga2V1IGdvaSBiYW8gbmhpZXUgY2FjIG5nYW4gaGFuZyANCnRodW9uZyBtYWkgY3Vu ZyBraG9uZyBoYSBkdW9jIGxhaSBzdWF0LCB2aSBxdWEgYm9uZyBkYXUgY28gbmFtIHRyb25nIGNo YW4gaG8gKGN1bmcgDQp0aWVuIGRvIE5nYW4gaGFuZyBOaGEgbnVvYyBraWVtIHNvYXQsIGNhdSB0 aWVuIGNoaXUgdGFjIGRvbmcgbG9uIHR1IGNhYyBrZSBob2FjaCB2YXkgbm8gDQpjdWEgQ2hpbmgg cGh1KS4gU3VjIGVwIGxhbSBwaGF0IHZhIGNhYyBoZSBxdWEgZG9pIHZvaSBjdW9jIHNvbmcgc2lu aCBob2F0IG5ndW9pIGRhbiBjdW5nIHNlIGN1IHRpZXAgdHVjLiANCg0KaHR0cDovL3ZuZWNvbm9t eS52bi8yMDEwMTIyOTEyMzc0NjM3NFAwQzk5MjAva2luaC10ZS12aS1tby1uYW0tMjAxMC1kYS1j by1tb3QtY28taG9pLWRlLW9uLWRpbmguaHRtIEFOSCBRVUFOIDI5LzEyLzIwMTAgMDk6MDkgKEdN VCs3KQ0KDQpLaW5oIHRlIHZpIG1vOiAiTmFtIDIwMTAgZGEgY28gbW90IGNvIGhvaSBkZSBvbiBk aW5oIiBuaHVuZyBiaSAiY2hlIG1vIiBib2kgc3UgcGhvaSBob3AgY2hpbmggc2FjaCBjaHVhIGFu IGtob3ANCg0KVGhhbmcgY3VvaSBjdW5nIGN1YSBuYW0gMjAxMCBkaSBxdWEgY3VuZyB2b2kgc3Ug ZG90IGJpZW4gY3VhIGxhbSBwaGF0LCB0eSBnaWEsIGxhaSBzdWF0LiANCktoaSBreSB2b25nIHRh bmcgdHJ1b25nIGR1b25nIG5odSBkYSBuYW0gdHJvbmcgdGFtIHRheSwgdGhpIGNhbSBuaGFuIGJh dCBvbiBjdW5nIA0KZG9uZyB0aG9pIHRhbmcgbGVuLg0KDQpDYXUgaG9pIHZlICJuZ2hpY2ggbHki IG5heSBkYSBkdW9jIFZuRWNvbm9teSBjaHV5ZW4gZGVuIFRTLiBOZ3V5ZW4gRGluaCBDdW5nLCAN ClBobyB2aWVuIHRydW9uZyBWaWVuIE5naGllbiBjdXUgdmEgUXVhbiBseSBraW5oIHRlIFRydW5n IHVvbmcgKENJRU0pLiBPbmcgY2hvIHJhbmcgDQpuYW0gMjAxMCBkYSBjbyBtb3QgY28gaG9pIGRl IG9uIGRpbmgga2luaCB0ZSB2aSBtbywgbmh1bmcgYmkgImNoZSBtbyIgYm9pIHN1IHBob2kgaG9w IA0KY2hpbmggc2FjaCBjaHVhIGFuIGtob3AuIA0KDQpEYW5nIGxlIHBoYWkgdGhhdCBjaGF0IHRh aSBraG9hIA0KDQotIERhdSBuYW0gbmF5LCB0aG9uZyBkaWVwIHBoYXQgZGkgbGEgaHVvbmcgbmVu IGtpbmggdGUgZGVuIG9uIGRpbmggdmkgbW8uIFRyZW4gdGh1YyB0ZSwgDQpuZXUgbmhpbiB2YW8g Y2FjIGNoaSB0aWV1IGxhbSBwaGF0LCBsYWkgc3VhdCwgdHkgZ2lhLi4uIGR1b25nIG5odSB2YW4g Y29uIG5odW5nIGJhdCBvbi4gDQpUaGVvIG9uZyB2aSBzYW8/DQoNClNhbmcgZGF1IG5hbSBuYXks IGxhbSBwaGF0IGRhIGxlbiBtYW5oIHRyb25nIDItMyB0aGFuZywgc2F1IGRvIGJhdCBkYXUgeHVv bmcgbXVjIHRhbmcgDQp0aGFwLCBrZW8gZGFpIDUgdGhhbmcgbGllbi4gTHVjIGRvIGNvIGhhaSBx dWFuIGRpZW0sIG1vdCBsYSBvbiBkaW5oIHJvaSwgY2hpIHRpZXUgdGluIGR1bmcgDQoyNSUgbmh1 bmcgdGh1YyB0ZSBtb2kgZGF0IHRoYXAgbmVuIGNvbiBuaGlldSBkdSBkaWEgbW8gcm9uZyB0aW4g ZHVuZyBjaG8gdGFuZyB0cnVvbmcuIA0KDQpRdWFuIGRpZW0gaGFpIGNobyByYW5nIDYsNSUgdGFu ZyB0cnVvbmcgbGEgbXVjIHNlIGRhdCwga2hvbmcgbmVuIHRhbmcgdGluIGR1bmcgdmEgcGhhaSAN CmxheSBvbiBkaW5oIGxhbSB0cm9uZywgdmkga2luaCB0ZSB2aSBtbyBvbiBkaW5oIHRoaSBuaHVu ZyBkYXUgdHUgdHJ1b2MgZGF5IHNlIHBoYXQgaHV5IHRhYyANCmR1bmcgbWEga2hvbmcgY2FuIHBo YWkgbW8gdGhlbSB0aW4gZHVuZy4gDQoNCktoaSB0aW4gZHVuZyBuYW0gbmdvYWkgZGEgdG9pIHRy ZW4gMzclLCB0YW5nIHRydW9uZyBjaGkgY28gNSwzJSwgbmh1IHZheSBwaGFpIHRhbmcgdGluIA0K ZHVuZyBtb2kgZGF0IHRhbmcgdHJ1b25nLiBWYXkgbHVjIGRvIGRhIGNvIHkgZGUgZGF0IHRhbmcg dHJ1b25nIGNhbyBob24gcGhhaSBtbyB0aW4gZHVuZywgdmEgZGlldSBoYW5oIGRhIHRoZW8gaHVv bmcgZG8uIA0KDQpEYW5nIGxlIGx1YyBkbywgbmV1IHRoYXQgY2hhdCB0aGVtIHRhaSBraG9hIG1h IGdpdSBuZ3V5ZW4gY3VuZyB0aW4gZHVuZyBzZSBkYW4gZGFuIGRhdCANCmR1b2MgbXVjIHRpZXUg dGFuZyB0cnVvbmcuIE5odW5nIHF1YW4gZGllbSBwaGFuIGJpZW4gY2hvIHJhbmcsIHRpbiBkdW5n IHRoYXQgY2hhdCBkb2FuaCANCm5naGllcCBraG8ga2hhbiB0aGkgYW5oIGh1b25nIGxvbiBkZW4g dGFuZyB0cnVvbmcuIA0KDQotIE5odW5nIGNoaSB0aWV1IGJvaSBjaGkgbmFtIG5heSBjdW5nIGRh IGdpYW0gdmUgNiwyJSBHRFAgcm9pLCB0aHVhIG9uZz8NCg0KTmFtIG5heSwgZHUga2llbiBjaGkg bmdhbiBzYWNoIGx1YyBkYXUgbGEga2hvYW5nIDEyNSBuZ2hpbiB0eSBkb25nIHRob2ksIG5odW5n IHRodWMgaGllbiANCmNvIHRoZSBsZW4gZGVuIDE4MCBuZ2hpbiB0eSBkb25nLCB0dWMgbGEgdGFu ZyA1NSBuZ2hpbiB0eSBkb25nLCB0dW9uZyBkdW9uZyB2b2kgMjcgdHkgVVNEIA0KY2h1YSBrZSB0 cmFpIHBoaWV1LiBSbyByYW5nIHRhaSBraG9hIG1vIHF1YSByb25nLiANCg0KRGFuZyBsZSByYSwg dGFuZyB0aHUgcGhhaSBkdW9jIGR1bmcgZGUgZ2lhbSBib2kgY2hpLiBWaSBkdSBuYW0gbmF5IGdp YW0gZHVvYyAyLDcgdHkgVVNEIA0KdHVvbmcgZHVvbmcgMiw3JSBHRFAuIE5ldSAyLDclIG5heSBr aG9uZyBtbyByb25nIGRhdSB0dSB0aGkgdGhhbSBodXQgbmdhbiBzYWNoIGtob25nIA0KbW8gcm9u ZywgNiwyJSBHRFAgLSAyLDclIEdEUCA9IDMsNSUgR0RQIGxhIGNvbiBzbyBseSB0dW9uZyBkZSBv biBkaW5oIGtpbmggdGUgdmkgbW8uDQoNClZvaSBjYWNoIG5odSB0aGUsIHRvaSB0aW4gbGEgY2hh YyBjaGFuIEdEUCB2YW4gZGF0IDYsNSAlLCB0aGFtIGNoaSBjb24gY2FvIGhvbiBtYSB2YW4gDQpv biBkaW5oLCB0YW8gdGhvbmcgZGllcCB0b3QgdG9pIGRhbiBjaHVuZyB2YSB0YW8gbmllbSB0aW4s IHRpZW4gZGUgY2hvIHRhaSBjbyBjYXUgDQpraW5oIHRlLCBuYW5nIGNhbyBoaWV1IHF1YSBkYXUg dHUsIHRoYXQgY2hhdCBkYXUgdHUgY29uZywgbmFuZyBjYW8gY2hhdCBsdW9uZyB0YW5nIA0KdHJ1 b25nIHZhIHNlIGRhdCBkdW9jIGNoaSBzbyB2aSBtbyBkZXAgdm9pIHRoYW0gaHV0IG5nYW4gc2Fj aCBjaGkgMyw1ICUgR0RQLiANClZhIG5odSB2YXkgdGhhbSBodXQgdmFuZyBsYWkgY3VuZyBnaWFt LCBjYXUgbmdvYWkgdGUgc2UgZ2lhbS4gDQoNCkRhIGNvIG1vdCBjbyBob2kgZGUgb24gZGluaA0K DQotIEx1YyBkbyBjdW5nIGNvIHF1YW4gZGllbSBjaG8gcmFuZyB0YW5nIHRydW9uZyBraG8ga2hh biB2YSBydWkgcm8gZ2lhIHRhbmcgY28gbmd1eWVuIA0KbmhhbiB0YWMgZG9uZyB0dSBraW5oIHRl IHRoZSBnaW9pLCBuZW4gcGhhaSBkaWV1IGNoaW5oIGNoaW5oIHNhY2gsIHRodWEgb25nPw0KDQpU YWMgZG9uZyBjdWEga2luaCB0ZSB0aGUgZ2lvaSwgY2h1bmcgdGEga2hvbmcgdGhlIHRoYXkgZG9p IGR1b2MgdmEgbm8gdGFjIGRvbmcgdmFvIA0KdGEgbWFuaCBoYXkgeWV1IHBodSB0aHVvYyB2YW8g dGEgZGFuZyBtYW5oIGhheSBkYW5nIHlldS4gDQoNCk5ldSB0cm9uZyBib2kgY2FuaCBraW5oIHRl IHRoZSBnaW9pIGNvbiB0YWMgZG9uZyBtYW5oIHRoaSBwaGFpIGN1bmcgY28ga2luaCB0ZSB0cm9u ZyANCm51b2MgZGUgb24gZGluaCBraW5oIHRlIHZpIG1vLCBjaHV5ZW4gZG9pIG1vIGhpbmggdGFu ZyB0cnVvbmcuIE5ldSBraG9uZyBjaGkgdnVvdCANCnF1YSBkdW9jIHRpbmggdGhlIGhpZW4gdGhv aSB0aG9pLCBraG9uZyB2dW90IHF1YSBtYW5oIG1lIG5odW5nIHRhYyBkb25nIGN1YSBraW5oIHRl IHRoZSBnaW9pLg0KDQpDaHVuZyB0YSBwaGFpIGNvIHN1IGRvaSBwaG8gZGFpIGhhbiwgdHJvbmcg bW90IHF1YSB0cmluaC4gVmkgZHUgdmUgdHkgZ2lhLCBuZXUgY28gDQp0aGFtIGh1dCB0aGFwLCBk dSBkaWEgY2hpbmggc2FjaCB0YWkga2hvYSBsb24sIHRoaSB0YWMgZG9uZyB0dSBiZW4gbmdvYWkg ZGVuIHRhIGl0LCANCnZpIHRhIGNvbiBsdWMgZGUgZG9pIHBoby4gTmh1bmcgdHJvbmcgY2FuaCB0 aGFtIGh1dCBuZ2FuIHNhY2ggcXVhIGxvbiByb2ksIGtob25nIA0KZ2lhbiB0YWkga2hvYSBxdWEg aGVwIHRoaSBraG9uZyBjb24gZHUgbHVjIHZhIHR1IHRpbiBtYSBkb2kgcGhvLg0KDQotIE5odSBv bmcgbm9pIHRoaSBjaHVuZyB0YSBkdW9uZyBuaHUgZGEgYm8gcXVhIG1vdCBkaWV1IGdpIGRvIHRv dCBkZXAgdHJvbmcgbmFtIHF1YT8NCg0KTm9pIG5odSB0aGUgZGUgdGhheSByYW5nIHJhdCBjYW4g cnV0IGtpbmggbmdoaWVtLCB2aSBuYW0gMjAxMCBjbyBtb3QgY28gaG9pIGRlIG9uIA0KZGluaC4g Tmh1bmcgdHJvbmcgZGlldSBoYW5oLCB0dSBkdXkgY2hheSB0aGVvIHRhbmcgdHJ1b25nIG5nYW4g aGFuIHZhbiBjaGkgcGhvaSB0cm9uZyBob2FjaCBkaW5oIGNoaW5oIHNhY2guDQoNCkJhbyBjYW8g bmFuZyBsdWMgY2FuaCB0cmFuaCBWaWV0IE5hbSBkYSBraGFuZyBkaW5oLCBtbyBoaW5oIG5heSBk YSB0b2kgaGFuIHJvaSBuZW4gDQptb2kgbm8gbHVjIGRlIGRheSB0b2MgZG8gdGFuZyB0cnVvbmcg Y2FvIGhvbiBzZSBraG9uZyBkYXQgZHVvYyBrZXQgcXVhIG5odSBtb25nIG11b24sIA0KbGFpIGNv biB0YW8gdGFjIGRvbmcgcGh1IG5naGllbSB0cm9uZyB0b2kga2luaCB0ZSB2aSBtbywgbWF0IGNh biBkb2kgdmkgbW8gbmdoaWVtIHRyb25nIGhvbiwgdmEgc2UgY29uIGRhaSBkYW5nLg0KQmF0IG9u IHZpIG1vIGxvbiB2YSBrZW8gZGFpIHRoZW0gc2UgcXVheSBsYWkgImRhcCIgdGFuZyB0cnVvbmcs IGtlbyB0YW5nIHRydW9uZyBnaWFtIHh1b25nLg0KDQotIFZheSB0aGVvIG9uZyBkaWVtIG1hdSBj aG90IGRvaSB2b2kgb24gZGluaCB2aSBtbyBuYW0gbyBkYXU/DQoNCkx1YyBuYXkgcGhhaSB0aGF5 IGRvaSB0dSBkdXksIG5odW5nIHRoYXkgZG9pIHR1IGR1eSBjYWNoIG5hbz8gVGhlbyB0b2ksIGNh biBsYXkgdHJvbmcgDQp0YW0gbGEgbmFuZyBjYW8gaGlldSBxdWEgcGhhdCB0cmllbiB2YSBuYW5n IGNhbyBuYW5nIGx1YyBjYW5oIHRyYW5oLiBDdSBsYXkgdHJ1YyBkbywgDQpuYW5nIHN1YXQgLSBo aWV1IHF1YSAtIG5hbmcgbHVjIGNhbmggdHJhbmgsIG1hIGRpZXUgaGFuaC4gDQoNClZvaSBjYWkg dHJ1YyBkbywgY28gdGhlIHZhaSBuYW0gbnVhIEdEUCBjaGkgdGFuZyA2LDUtNiw3JSwgbmh1bmcg c2F1IGRvIG5hbmcgc3VhdCwgDQpjaGF0IGx1b25nLCBoaWV1IHF1YSBkbyBzZSBkdWEgdGFuZyB0 cnVvbmcgbGVuIDgsIDksIHRoYW0gY2hpIDEwJSBtYSBraW5oIHRlIHZpIG1vIA0Kb24gZGluaC4g THVjIGRvLCB0YW5nICB0cnVvbmcgZGEgdGhlbyBtbyBoaW5oIG1vaSAtIG1vIGhpbmggdGFuZyB0 cnVvbmcgZHVhIHRyZW4gDQpuYW5nIHN1YXQsIGhpZXUgcXVhIGNhbmggdHJhbmguIERheSBsYSBu ZW4gdGFuZyBoaWV1IHF1YSB2YSB2byBoYW4uIA0KDQpPbiBkaW5oIHZpIG1vIG5hbSBvIHZpIG1v DQoNCi0gVmF5IGdpYWkgcGhhcCBjaGluaCBzYWNoIGRvaSB2b2kgb24gZGluaCB2aSBtbyBsYSBn aT8NCg0KT24gZGluaCB2aSBtbyBsYWkgbmFtIG8gdmkgbW8sIHZpIHRodWMgcmEgYmF0IGNhbiBk b2kgdmkgbW8gbmFtIG8gY28gY2F1IGtpbmggdGUgDQpuYW5nIHN1YXQgdGhhcCwgaGlldSBxdWEg dGhhcCwgdmEgbm8gbmFtIGNodSB5ZXUgbyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MuIA0KDQpDYWkg ZGF1IHRpZW4gcGhhaSBsYW0gbGEgZ2lhbSB0aGFtIGh1dCBuZ2FuIHNhY2gsIGdpYW0gZGF1IHR1 IGNvbmcgZGUgZ2lhbSBiYXQgb24gDQp2aSBtbywgbmV1IGxhbSBkdW9jIHZpZWMgbmF5IHRoaSBj YWMgbWF0IGNhbiBkb2kgdmkgbW8gc2UgZ2lhbSBib3QuIFF1eSBtbyB0aGFtIGh1dCANCm5nYW4g c2FjaCA1IG5hbSB0YW5nIGdhcCAzIGxhbiwgMjAwNSB0aGFtIGh1dCA1LDklIG5odW5nIHF1eSBt byB0aGFtIGh1dCBjaGkga2hvYW5nIA0KNDAgbmdoaW4gdHkgZG9uZywgbmFtIDIwMTAgdGhhbSBo dXQgY3VuZyBraG9hbmcgNSw5JSBkYSBsYSAxMjAgbmdoaW4gdHkgZG9uZywgdmF5IGNob3QgDQpk YXUgdGllbiBwaGFpIHRoYW8gbGEgZ2lhbSBib2kgY2hpLg0KDQpHaWFtIGJvaSBjaGkga2hvbmcg cGhhaSBiYW5nIHRhbmcgdGh1IG1hIHBoYWkgYmFuZyBnaWFtIGNoaSBkYXUgdHUgY29uZy4gSGll biBkYXUgdHUgDQpuaGEgbnVvYyB2YW4gbG9uIG5oYXQuIE1vdCBzbyBsaW5oIHZ1YyBuaGEgbnVv YyBraG9uZyBkYW5nIGxhbSBuaHUgZGljaCB2dSBwaHVjIHZ1IA0KdGlldSBkdW5nLCBuaGEgaGFu ZyBraGFjaCBzYW4sIGR1IGxpY2gsIHR1IHZhbiBraW5oIGRvYW5oIGJhdCBkb25nIHNhbi4uLiBw aGFpIGNoaWVtIA0KNSUgdG9uZyBkYXUgdHUgbmhhIG51b2MsIHR1b25nIGR1b25nIGhvbiAxJSBH RFAsIGxhIG5odW5nIGtob2FuIGRhdSB0dSBuaGEgbnVvYyBraG9uZyBjYW4gbGFtLiANCg0KS2hv YW5nIDI1IG5naGluIGR1IGFuIGRhdSB0dSB0YWkgdGhvaSBkaWVtIG5heSwgbGEgcXVhIG5oaWV1 LiBNb2kgdGluaCBraG9hbmcgNDAwIA0KZHUgYW4gZGF1IHR1LCBtb2kgZHUgYW4gbWF0IDMgbmFt IGRlIGhvYW4gdGhhbmguIFF1YSBuaGlldSBkdSBhbiBkdSBhbiBuaG8sIHRob2kgZ2lhbiANCmtl byBkYWkga2hpZW4gdm9uIG5oYSBudW9jIGtobyBxdWF5IHZvbmcgbmhhbmggaG9uLiBQaGFpIGNh dCBoYW4gbmh1bmcgZHUgYW4gbmhhIG51b2Mga2hvbmcgY2FuIGxhbS4NCg0KLSBOYW0gMjAxMCBk YSAibWF0IGNvIGhvaSIgb24gZGluaCBuaHUgb25nIG5vaS4gVmF5IHhpbiBob2kgb25nIG5hbSAy MDExIGNvIHRoZSBsYXkgbGFpIGNvIGhvaSBuYXkga2hvbmc/DQoNClRvaSB0aW4gbGEgY28gaG9p IHZhbiBjb24uIA0KDQpOZXUgbGF5IG9uIGRpbmgga2luaCB0ZSB2aSBtbyBsYW0gdHJvbmcsIGtl dCBob3AgaGFpIGhvYSBnaXVhIGNoaW5oIHNhY2ggdGFpIGtob2EgDQp2YSB0aWVuIHRlLCBjaGkg bW8gcm9uZyB0aWVuIHRlIGtoaSB0aGF0IGNoYXQgdGFpIGtob2EsIGt5IGx1YXQgdGFpIGtob2Eg bWFuaCBob24sIA0KbGFtIGNobyB0aWVuIHF1YXkgdmUga2h1IHZ1YyBraW5oIHRlIHR1IG5oYW4u IER1bmcgZGUgY2hpbmggc2FjaCB0aWVuIHRlIGxhaSBwaGFpIGdvbmcgbWluaCBvbiBkaW5oIGtp bmggdGUgdmkgbW8uDQpMYW0gbmh1IHRoZSB0aGkgdnVhIHRhbmcgdHJ1b25nIGR1b2MsIHZ1YSBv biBkaW5oIGtpbmggdGUgdmkgbW8uIFRoZW8gdG9pLCB0YW5nIA0KdHJ1b25nIEdEUCA3LTcsNSUs IG9uIGRpbmgga2luaCB0ZSB2aSBtbyBkYXQgZHVvYy4gDQoNCmh0dHA6Ly93d3cubmEuZ292LnZu L2h0eC9WaWV0bmFtZXNlLz9OZXdpZD00MzU0MCNzYTk0QzBPN2VIbzEgKDMvMTEvMjAxMCA0OjIz OjMxIFBNKSANCg0KVGh1IHR1b25nOiBjYW4gdGFuZyBjdW9uZyBjYWMgYmllbiBwaGFwIGdpYW0g Ym9pIGNoaSBuZ2FuIHNhY2ggDQoNClRoZW8gdGluaCB0b2FuIGN1YSBjaHV5ZW4gZ2lhIGtpbmgg dGUsIG5ldSBxdWFuIG5pZW0gbm8gY29uZyB0aGVvIHRob25nIGxlIHF1b2MgdGUgYmFvIA0KZ29t IGNhIG5naGlhIHZ1IG5vIGN1YSBuZ2FuIGhhbmcsIGN1YSBkb2FuaCBuZ2hpZXAgbmhhIG51b2Mg dGhpIG5vIGNvbmcgY3VhIGNodW5nIHRhIGtob25nIGR1b2kgNzAlIEdEUC4gDQoNCmh0dHA6Ly9k YW50cmkuY29tLnZuL2M3Ni9zNzYtNDM0MjQ5L2JvaS1jaGktbmdhbi1zYWNoLWNhbi10b24tdHJv bmctc3UtdGhhdC5odG0gTGFuIEh1b25nIDAzLzExLzIwMTAgLSAxNDoyNQ0KDQpUaHUgdHVvbmc6 IEJvaSBjaGkgbmdhbiBzYWNoIC0gQ2FuIHRvbiB0cm9uZyBzdSB0aGF0IA0KDQooRGFuIHRyaSkg LSBCYW8gcmFuZyBjaGkgY2h1YSBoaWV1IHF1YSwgbGFuZyBwaGksIG5odW5nIGN1IHRhbmcgdGh1 IGR1b2MgY2FpIG5hbyBkYSBjaGkgDQpoZXQgY2FpIGRvLCBtYXkgY2h1YyBuZ2hpbiB0eSBjdW5n IGhldC4gTm9pIHJhbmcgbGUgaG9pLCBraGFuaCB0aGFuaCwgdG9uZyBrZXQsIGtoYWkgDQp0cnVv bmcuLi4gdG9uIGtlbSBuaHVuZyBuZ2F5IGNhbmcgdGFuZywgdHJvbmcga2hpIGJvaSBjaGkgbmdh biBzYWNoIGtob25nIHRvbiB0cm9uZyBzdSB0aGF0Li4uDQoNCihBbmg6IE5lbiBraW5oIHRlIHZp IG1vIGRhbmcgdGllbSBhbiBuaHVuZyB5ZXUgdG8gYmF0IG9uIGRpbmgpIA0KIA0KNSBuYW0gcm9p IGNvbiBuZ3V5ZW4gaGFuIGNoZQ0KIA0KT25nIFZ1IFZpZXQgTmdvYW4gLSBQaG8gQ2h1IG5oaWVt IHV5IGJhbiBraW5oIHRlIFF1b2MgaG9pIGNobyByYW5nIG5lbiBraW5oIHRlIHZpIG1vIA0KZGFu ZyB0aWVtIGFuIG5odW5nIHlldSB0byBiYXQgb24gZGluaCB2YSBvIG11YyBkbyBuZ3V5IGNvIGhv biwgdGhhY2ggdGh1YyBob24uIEhpZW4gDQpuYXkgY3VuZyBjYXUgbmdvYWkgdGUgdHJlbiB0aGkg dHJ1b25nIHZhIHN1YyBlcCBjdWEgdHkgZ2lhIHJhdCBsb24sIGNhbiBjYW5oIGJhby4gDQogDQpO Z3V5ZW4gbmhhbiBjaGluaCBsYSBkbyBuaGFwIHNpZXUgY2FvIHZhIGR1eSB0cmkgdHJvbmcgbW90 IHRob2kgZ2lhbiBxdWEgZGFpIGRhbiBkZW4gY2FuIA0KY2FuIHRoYW5oIHRvYW4gdGhhbSBodXQg bGllbiB0dWMgdHJvbmcgMiBuYW0gcXVhLiBOZXUgZGlldSBuYXkgdmFuIHRpZXAgdHVjIHRoaSBz ZSByYXQga2hvIA0KY28ga2hhIG5hbmcgY2FuIGRvaSBkdW9jIG5nb2FpIHRlLg0KIA0KQm9pIHZh eSwgImtlIGhvYWNoIGN1YSBDaGluaCBwaHUgZGVuIG5hbSAyMDE1IG5oYXAgc2lldSBjdWEgY2h1 bmcgdGEgbW9pIGR1YSB4dW9uZyANCm11YyAxNSUgY3VhIGtpbSBuZ2FjaCB4dWF0IGtoYXUgbGEg cXVhIG11b24sIGNhbiBkYXkgbmhhbmggaG9uIG5ldSBraG9uZyBzZSBhbmggDQpodW9uZyByYXQg bG9uIGRlbiBvbiBkaW5oIHR5IGdpYSIgLSBvbmcgTmdvYW4ga2llbiBuZ2hpLg0KIA0KRGFuZyBj aHUgeSwgc2F1IGtoaSBkb2kgY2hpZXUgbGFpIGNhYyBiYW8gY2FvIHZlIHRpbmggaGluaCB0aHVj IGhpZW4ga2UgaG9hY2ggcGhhdCB0cmllbiANCmtpbmggdGUgLSB4YSBob2kgdHJvbmcgY2FjIG5h bSB0cnVvYywgb25nIERhbmcgTmh1IExvaSAtIFBobyBDaHUgbmhpZW0gVXkgYmFuIGNhYyB2YW4g DQpkZSB4YSBob2kgY3VhIFF1b2MgaG9pIGNvbiBjaGkgcmEgbW90IHRodWMgdGUgbGEgbmh1bmcg aGFuIGNoZSwgeWV1IGtlbSB0dSBuYW0gMjAwNiCWIA0KMjAwOSBzbyB2b2kgbmFtIDIwMTAgY28g YmFuIHZhbiBjb24gbmd1eWVuLg0KIA0KRG8gbGEgY2hhdCBsdW9uZyB0YW5nIHRydW9uZywgY2h1 eWVuIGRpY2ggY28gY2F1LCBjYW4gZG9pIHZpIG1vLCBxdWFuIGx5IHZhIHN1IGR1bmcgDQpuZ3Vv biBsdWMgbGFuZyBwaGksIGNodWEgaGlldSBxdWE7IHJvaSBoYSB0YW5nLCBtb2kgdHJ1b25nLCBn aWFvIGR1YywgbGFuZyBwaGksIHRoYW0gbywgDQp0aWV1IGN1YywgZG9pIHNvbmcgbmhhbiBkYW4u Li4NCiANCiJDaGFuZyBuaGUgNSBuYW0gcm9pIG1hIHRhIHZhbiBjb24gbmd1eWVuIG5odW5nIGhh biBjaGUsIHRvaSBjbyBtb3QgY2FtIG5oYW4gY3VuZyANCmNvIHF1YW4gbmhhIG51b2Mgdm9pIG5o YXUgbWEgdGEgdmFuIGxhbSBuaHUga2lldSBkb2kgcGhvIiAtIG9uZyBMb2kgbm9pLg0KIA0KRGUg eGF5IHJhIG5odW5nIHRvbiB0YWkgbmh1IGhpZW4gbmF5LCBvbmcgTG9pIGNobyByYW5nLCBjaHVu ZyB0YSBjaHVhIHRodWMgc3UgcXVhbiBseSwgDQpraWVtIHNvYXQgZHVvYyBuZW4ga2luaCB0ZS4g IA0KDQooRGFpIGJpZXUgRGFuZyBOaHUgTG9pLiBBbmg6IFZpZXQgSHVuZykNCiANClRyb25nIGto aSBkbywgZG9pIG5ndSBjYW4gYm8sIGNvbmcgY2h1YyBraG9uZyBkdW9jIGRhbmggZ2lhIGR1bmcs IGJvIHRyaSBjb24gbmd1b2kgDQpraG9uZyBwaHUgaG9wIHZvaSBjaHVjIHZ1LiBEYW5nIGx1dSB5 LCB0aW5oIGNoaWVuIGRhdSB2YSBuaGlldCBodXlldCBjdWEgY2FuIGJvIGxhbmggDQpkYW8gbmdh eSBtb3QgZ2lhbSwga2hvbmcgZGFtIHBoYW4gYW5oIHN1IHRoYXQuICJUb2kgdGhheSBuaHUgbmd1 b2kgdGEgbmFuZyB2ZSBiYW8gdmUgDQpjaHVjIHZ1IGN1YSBtaW5oIiAtIG9uZyBMb2kgbm9pOiBS b2kgbmd1b2kgdGEgYmFvIHJhbmcgY2hpIGNodWEgaGlldSBxdWEsIGxhbmcgcGhpLCANCm5odW5n IGN1IHRhbmcgdGh1IGR1b2MgY2FpIG5hbyBkYSBjaGkgaGV0IGNhaSBkbywgbWF5IGNodWMgbmdo aW4gdHkgY3VuZyBoZXQuIE5vaSByYW5nIA0KbGUgaG9pLCBraGFuaCB0aGFuaCwgdG9uZyBrZXQs IGtoYWkgdHJ1b25nLi4uIHRvbiBrZW0gbmh1bmcgbmdheSBjYW5nIHRhbmcgbWEga2hvbmcgDQp0 aGF5IGdpYW0uDQogDQpCb2kgY2hpIG5nYW4gc2FjaCAtIHRodWMgdGUgZ2FwIGRvaSENCiANClRh aSBidW9pIHRoYW8gbHVhbiB2ZSB0aW5oIGhpbmggdGh1YyBoaWVuIGtlIGhvYWNoIHBoYXQgdHJp ZW4ga2luaCB0ZSwgeGEgaG9pIHRyb25nIGt5IGhvcCANClF1b2MgaG9pLCBkYWkgYmlldSBMZSBR dW9jIER1bmcgKFRoYWkgQmluaCkgZGEgbG8gbGFuZyBjaG8gY2hpIHRpZXUgdmUgYm9pIGNoaSBu Z2FuIHNhY2guIA0KVHJvbmcgYmFvIGNhbyBjdWEgQ2hpbmggcGh1IHhheSBkdW5nIGNoaSB0aWV1 IGxhIDUsNSUgY2hvIG5hbSBib2kgY2hpIG5nYW4gc2FjaCBuYW0gMjAxMS4NCiANClR1eSBuaGll biwgdGhlbyBkYWkgYmlldSBEdW5nLCBuZXUgdGEgdGluaCBuaHVuZyBraG9hbiBuZ29haSBuZ2Fu IHNhY2ggdmFvIG5odTogT0RBIA0KKHR1b25nIGR1b25nIGtob2FuZyAzLDIgdHkgVVNEKSwgdHJh aSBwaGlldSBDaGluaCBwaHUgKDQ1LjAwMCB0eSBkb25nKTsgY2FjIGtob2FuIGdoaSANCnRodSwg Z2hpIGNoaSAoa2hvYW5nIDEyLjUwMCB0eSBkb25nKS4gQ29uZyBuaHVuZyBraG9hbiBuYXkgdmFv IHRoaSBjaGkgbmdvYWkgbmdhbiBzYWNoIA0Ka2hvYW5nIDgyLjUwMCB0eSBkb25nLg0KIA0KTmh1 IHZheSBib2kgY2hpIG5nYW4gc2FjaCBjdWEgY2h1bmcgdGEgdGh1YyB0ZSBsb24gaG9uIHJhdCBu aGlldSB2YSB0YWMgZG9uZyBjdWEgbm8gdG9pIA0KbGFtIHBoYXQgc2UgY29uIGxvbiBob24sIGNo dSBraG9uZyBwaGFpIGdpdSBkdW9jIDclLiBOZXUgZHVhIGNhIGNhYyBraG9hbiBuZ29haSBuZ2Fu IA0Kc2FjaCB2YW8gdHJvbmcgbmdhbiBzYWNoIHRoaSBib2kgY2hpIGNvIHRoZSBsZW4gdG9pIDEw LDUlIGNodSBraG9uZyBwaGFpIGxhIDUsNSUsIG5naGlhIA0KIA0KIlRhaSBzYW8gdHJvbmcga2hp IG5vIGNvbmcgY2h1bmcgdGEgY29uZyBuaHVuZyB0aHUgbmdvYWkgbmdhbiBzYWNoIGRvIHZhbywg bmh1bmcgdGluaCANCmJvaSBjaGkgbmdhbiBzYWNoIHRoaSBraG9uZz8gQ2h1bmcgdG9pIGNobyBy YW5nIGxhbSBuaHUgdGhlIGtob25nIHRvbiB0cm9uZyBzdSB0aGF0LiANCkNodW5nIHRhIGN1bmcg dnVhIG5vaSByYW5nIFZpbmFzaGluIGJhbyBjYW8ga2hvbmcgZHVuZyB2b2kgQ2hpbmggcGh1LCB0 aGFtIGNoaSBRdW9jIA0KaG9pIGdpYW0gc2F0IGJhbyBjYW8gY3VuZyBraG9uZyBkdW5nLCBuYW0g MjAwOCB2YW4gY29uIGJhbyBjYW8gNjA1IHR5IGRvbmcgbGFpLCBuYW0gDQoyMDA5IGN1bmcgbGFp Li4uIE5ldSBraG9uZyBuaGluIGR1bmcgdmFvIHN1IHRoYXQgc2Uga2hvbmcgZ2lhaSBxdXlldCBk dW9jIHZhbiBkZSIgLSBkYWkgDQpiaWV1IER1bmcgbm9pLg0KIA0KRG8gZG8sIHRoZW8ga2llbiBu Z2hpIGN1YSBkYWkgYmlldSwgc29tIG11b24gQ2hpbmggcGh1IHZhIFF1b2MgaG9pIHBoYWkgZHVh IHRhdCBjYSANCm5odW5nIGtob2FuIGNoaSBuZ29haSBuZ2FuIHNhY2ggdmFvIHRyb25nIG5nYW4g c2FjaCBkZSBjaHVuZyB0YSBraWVtIHNvYXQsIGx1YyBkbyBtb2kgY28gY29uIHNvIGR1bmcgZGUg ZGFuaCBnaWEuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDEwL1Zp bmFzaGluLUNvLWhvaS10aGUtaGllbi12YW4taG9hLXR1LWNodWMtOTQzOTA0LyBMZSBOaHVuZyBM YW4gQW5oIFRodXkgQ2h1bmcgMTU6MTMsIDIyLzEwLzIwMTAgKEdNVCs3KSANCg0KVnUgVmluYXNo aW46IEtob25nIGxlIGtob25nIGRhbSBreSBsdWF0IGFpPyAiRGF5IGNvIGxlIGxhIG1vdCBjbyBo b2kgZGUgdGhlIGhpZW4gdmFuIGhvYSB0dSBjaHVjIiANCg0KU2FpIHBoYW0gbyBWaW5hc2hpbiBk YSBkdW9jIG1vdCBzbyBkYWkgYmlldSBRdW9jIGhvaSBvIG5oaWV1IHRvIG5ldSByYSBuaHUgbW90 IGRhbiANCmNodW5nIGNobyBuaHVuZyB0b24gdGFpIHRyb25nIHF1YW4gbHkga2luaCB0ZSwgeWV1 IGtlbSBvIGtodSB2dWMgRE5OTiBtYSBjYWMgYmFvIA0KY2FvIGxhdSBuYXkgbW9pIGNoaSBub2kg dGhlbyBraWV1IGNodW5nIGNodW5nICJjbyBub2ksIGNvIGNobyIuIA0KDQooQW5oOiBEYWkgYmll dSBRSCB0byBUaGFpIEJpbmgsIEJhIFJpYSAtIFZ1bmcgVGF1IHRpZXAgdHVjIHRoYW8gbHVhbiB0 aGVtIG8gaGFuaCBsYW5nLiANCkFuaDogTGUgTmh1bmcpIA0KDQpDaHUgbmhpZW0gVXkgYmFuIFF1 b2MgcGhvbmcgLSBBbiBuaW5oIExlIFF1YW5nIEJpbmggbmhlIG5oYW5nIGRhbiBiYWkgaG9jIHZl IHRoZSANCmNoZSBkYW4gY2h1IHZhIGJhdSBjdSBvIERhbiBNYWNoIG1hIHZ1YSByb2kgUUggY3Ug Y2FuIGJvIHNhbmcgbmdoaWVuIGN1dS4gUmFuZywgbW9pIA0KdmllYyBkZXUgZHVvYyBnaWFvIGNo byBtb3Qgbmd1b2kgY2hpdSB0cmFjaCBuaGllbS4NCg0KT25nIEJpbmgga2UsIGNvIDEgbG8gZGF1 IHRheSB0dW5nIHJhIHRoaSB0cnVvbmcuIE5ndW9pIGRhbiBhbiB2YSBiaSBuZ28gZG9jLiBDaHV5 ZW4gDQpkdW9jIGN1IHRyaSBwaGFuIGFuaCBkZW4gdGFpIGRhaSBiaWV1IHZhIGhvIGRhIGRlbSBj aGF0IHZhbiBCbyB0cnVvbmcgVGh1YyBwaGFtIHZlIA0KdHJhY2ggbmhpZW0gcXVhbiBseS4NCg0K UGhpZW4gY2hhdCB2YW4gZGFuIGRlbiBtb3QgdGluaCBodW9uZyBsYSBRdW9jIGhvaSBuZ2F5IGhv bSBzYXUgY28gdGhlIHNlIGJvIHBoaWV1IGJhdCANCnRpbiBuaGllbSBvbmcgYm8gdHJ1b25nLg0K DQpEZSBnaXUgdXkgdGluIGNobyBkYW5nIGNhbSBxdXllbiB2YSBjaG8gUUggbmVuIG5nYXkgZGVt IGhvbSBkbywgb25nIEJvIHRydW9uZyBkYSANCmxhbSBkb24geGluIHR1IGNodWMgdHJ1b2MuDQoN CkNhbSB0cmVuIHRheSBiYW8gY2FvIENoaW5oIHBodSB2ZSBWaW5hc2hpbiwgVmllbiB0cnVvbmcg VktTTkQgdGluaCBOZ3V5ZW4gQmEgDQpUaHV5ZW4gY3VuZyBub2kgdGhhbmc6ICJUb2kgY2hvIHJh bmcgbmh1bmcgY2EgbmhhbiBsaWVuIHF1YW4gZGVuIHZ1IHZpZWMgbmF5IHBoYWkgdHUgDQpjaHVj LiBEYXkgY28gbGUgbGEgbW90IGNvIGhvaSBkZSB0aGUgaGllbiB2YW4gaG9hIHR1IGNodWMiLg0K DQpDaGluaCBuaHVuZyB0aG9uZyB0aW4gdHJvbmcgYmFvIGNhbyB2ZSB2aWVjICJDaGluaCBwaHUg bmhpZXUgbGFuIHRoYW5oIHRyYSIsIHJhbmcgIm1vaSANCnF1eWVuIGx1YyB0YXAgdHJ1bmcgdmFv IGxhbmggZGFvIHRhcCBkb2FuLCBkYW5nIG5nYXkgY2FuZyB0cm8gbmVuIGdpYSB0cnVvbmcsIGRv YyBkb2FuIiANCmN1bmcgZGEgZGF5IGxlbiB0cmFuaCBsdWFuIHRyb25nIG5oaWV1IHRvIFFIIHZl IHhhYyBkaW5oIHRyYWNoIG5oaWVtIGNhIG5oYW4gZGUgbmdhbiANCm5ndWEgbmh1bmcgIlZpbmFz aGluIiB0dW9uZyB0dS4NCg0KTm9pIG5odSBQaG8gQ2h1IG5oaWVtIFV5IGJhbiBLaW5oIHRlIExl IFF1b2MgRHVuZzogIlZpbmFzaGluIHBoYSBzYW4gcm9pLiBDaGFuZyANCnF1YSBraG9uZyBhaSB0 aHVhIG5oYW4iLiBEYW5nIHF1YW4gbmdhaSBsYSBraG9uZyBybyBhaSBjaGl1IHRyYWNoIG5oaWVt IHF1YW4gbHkgY2hpbmguDQoNCkRCUUggSGEgTWluaCBIdWUgYm8gc3VuZzogIk5odW5nIGNhIG5o YW4gc2FpIHBoYW0gcGhhaSBkdW9jIHh1IGx5IHRyYWNoIG5oaWVtIHJvLCANCm5odSBjYWMgbnVv YyB2YW4gY28gdmFuIGhvYSB0dSBjaHVjLiBDb24gbyB0YSwgY28gbmhpZXUgdnUgdmllYyBkdW5n IGRlbiByb2kgY3VuZyBjaHVhIA0KY2hhYyBkYSBuaGFuIHRyYWNoIG5oaWVtIG5nYXkiLg0KDQpL aG9uZyBsZSBraG9uZyBkYW0ga3kgbHVhdCBhaT8gDQoNClRpbmggbmdoaWVtIHRyb25nIGN1YSBj YXUgY2h1eWVuIGR1b2MgbGFtIHJvIHRoZW0ga2hpIG5ndXllbiBCaSB0aHUgTmdoZSBBbiBUcmFu IA0KVmFuIEhhbmcgZHVhIHJhIGNvbiBzbywgdHJhbiBsdSBsdXQgY2h1YSB0dW5nIGNvIHRyb25n IGxpY2ggc3UgSGEgVGluaCB2YSBRdWFuZyBCaW5oIGRhIA0KeG9hIHNvIDIwIHhhLCB0aGlldCBo YWkgaGFuZyBuZ2hpbiB0eSBkb25nLiBUdW9uZyBkdW9uZyB2b2kgInhvYSBzbyIgY2EgbW90IHRp bmguIA0KDQpWYXkgbmh1bmcsIHNvIHZvaSB0aGlldCBoYWkgODYgbmdoaW4gdHkgZG9uZyBtYSBW aW5hc2hpbiBnYXkgcmEgdGhpIGNodWEgdGhhbSB2YW8gZGF1Lg0KDQooQW5oOiBCbyB0cnVvbmcg Vm8gSG9uZyBQaHVjOiBVeSBiYW4gS2llbSB0cmEgVFUgZGEga2llbSBkaWVtIHRyYWNoIG5oaWVt IGN1YSANCmNodW5nIHRvaSBsYSBraG9uZyBraWVuIHRyaSBiYW8gdmUgcXVhbiBkaWVtIGRlbiBj dW5nLiBBbmg6IExBRCkNCg0KRGFuZyBsbyBuZ2FpIGxhIGR1IENoaW5oIHBodSBsYXAgbmhpZXUg ZG9hbiB0aGFuaCB0cmEgbWEgcm9pICJjaGkgbW9pIGJhbyBjYW8gY3VhIEJvIA0KS0gmRFQgbGEg bGVuIGRlbiBVeSBiYW4gS2llbSB0cmEgVFUiLCBjb24gbGFpIGJhbyBjYW8gY3VhIHRoYW5oIHRy YSBjYWMgYm8gbmdhbmggZGV1IA0KbmFtIGdvbiB0cm9uZyBuZ2FuIGJhbiBjYWMgYm8gY2h1IGto b25nIGxlbiBkdW9jIGRlbiAidHJlbiIuDQoNCk9uZyBIYW5nIGRhdCBjYXUgaG9pOiAiUXVhbiB0 cm9uZyBuaGF0IGxhIHNhdSBkYXkgeHUgbHkgdGhlIG5hbz8gVGllcCBzYXUgVmluYXNoaW4gc2Ug bGEgYWk/Ii4NCg0KTyB0byBUaGFuaCBIb2EsIG9uZyBMZSBRdWFuZyBCaW5oIG5ldSB2YW4gZGUs IHZvaSBjYWMgYm8gZHVvYyBjaG8gbGEgInBoYXQgaGllbiBzYWkgDQpwaGFtIiB2YSBkYSBndWkg eSBraWVuLCBuaHVuZyBsYWkga2hvbmcgY2hpdSBiYW8gdmUgZGVuIGN1bmcgbmh1bmcgY2FuaCBi YW8gbmhpbiB0aGF5IA0KdHJ1b2MgdGhpIGN1bmcgcGhhaSBjaGl1IHRyYWNoIG5oaWVtLg0KDQpC byB0cnVvbmcgS2UgaG9hY2ggLSBEYXUgdHUgVm8gSG9uZyBQaHVjICJ0aGFuaCBtaW5oIiBuZ2F5 OiAiQm8gS2UgaG9hY2ggLSBEYXUgdHUgDQpjbyBjaHVjIG5hbmcgdGhhbSBtdXUgQ2hpbmggcGh1 IHZlIHF1eSBob2FjaCwga2UgaG9hY2ggcGhhdCB0cmllbi4gVXkgYmFuIEtpZW0gdHJhIA0KVFUg Y3VuZyBkYSBraWVtIGRpZW0gdHJhY2ggbmhpZW0gY3VhIGNodW5nIHRvaSBsYSBraG9uZyBraWVu IHRyaSBiYW8gdmUgcXVhbiBkaWVtIGRlbiANCmN1bmciLiBDYXUgdHJhIGxvaSBjdWEgb25nIFBo dWMgdGllcCB0dWMgZHVvYyBjYWMgREJRSCB0cm9uZyB0byBiaW5oIGx1YW4uDQoNClF1b2MgaG9p IGN1bmcgY28gcGhhbiB0cmFjaCBuaGllbQ0KDQpPIGRvYW4gVGhhbmggSG9hLCBzYXUga2hpIGNo aWEgc2Ugbmh1bmcgcXVhbiBuZ2FpIHZlIGNodXllbiBidW4gZG8sIHZlIGJpZW4gZGFvLCBDaHUg DQpuaGllbSBVeSBiYW4gUXVvYyBwaG9uZyBBbiBuaW5oIExlIFF1YW5nIEJpbmggZGF5IGR1dDog IlR1IGxhdSwgREJRSCBjaGF0IHZhbiANCm5oaWV1LCBjdW5nIHF1eWV0IGxpZXQsIHJvaSBkdSBs dWFuIG5vaSBraG9uZyBwaGFpIGl0IG5odW5nIGhhdSBuaHUgbmh1bmcgbmd1b2kgY28gdHJhY2gg DQpuaGllbSBibyBuZ29haSB0YWkuIDExIGN1b2MgdGhhbmggdHJhIGtpZW0gdG9hbiBnaWFtIHNh dCBuaHVuZyBjaGkgcGhhdCBoaWVuIGNhaSAicmF1IHJpYSIgDQpuaGUgbmhhbmciLg0KDQpEYXQg Y2F1IGhvaSBkYXUgdGllbiBsYSB2ZSB0cmFjaCBuaGllbSBRdW9jIGhvaSwgdmkgdGhlbyBvbmcg QmluaCwga2hpIFF1b2MgaG9pIGRpIGdpYW0gDQpzYXQgc3UgZHVuZyB2b24gbyBkb2FuaCBuZ2hp ZXAgbWEgdmFuIGtldCBsdWFuIGxhIGtob25nIGNvIGdpLCBjaGkgZHVhIGxlbiBkZSBjaGF0IHZh bi4NCg0KT25nIEJpbmggYmFuIGtob2FuLCBjaGluaCBUaHUgdHVvbmcgcGhhdCBoaWVuIG5oaWV1 IHZhbiBkZSwgbmV1IHkga2llbiBjaGFuIGNoaW5oLCANCnRoYW0gY2hpIGtob25nIGNobyBtdWEg dGF1IEhvYSBzZW4gbmh1bmcgZHVvaSB0b25nIGNvbmcgdHkgY3UgdGh1YyBoaWVuLiBOaHVuZyBr ZXQgDQpxdWEgY3VvaSBjdW5nLCBraG9uZyBhaSBiaSB4dSBseSBjYS4gIlBoYXAgbGVuaCBjYW4g Ym8sIGNvbmcgY2h1YyBjdSBxdXkgZGluaCByYW5nIA0Kbmd1b2kgbmFvLCBjYXAgbmFvIGNvIHRo YW0gcXV5ZW4gZGUgYmF0IGJvIG5oaWVtIGN1bmcgY28gcXV5ZW4gY2hvIHRob2kgY2h1Yywga2kg bHVhdC4gDQpUaHUgdHVvbmcgZGEgY28gcXV5ZW4gZGUgYmF0IGJvIG5oaWVtIFRvbmcgZ2lhbSBk b2MsIENodSB0aWNoIEhvaSBkb25nIHF1YW4gdHJpIHRoaSANCnRhaSBzYW8gcmEgbGVuaCwgaG8g a2hvbmcgY2hhcCBoYW5oIG1hIGN1bmcga2hvbmcga3kgbHVhdD8iLCBvbmcgQmluaCBub2kuQ2h1 IG5oaWVtIA0KVXkgYmFuIFF1b2MgcGhvbmcgLSBBbiBuaW5oIHRyYW4gdHJvLCB0cm9uZyBxdWFu IGRvaSwga2hvbmcgY2hhcCBoYW5oIG1lbmggbGVuaCBsYSBjaGkgDQpodXkgY2FjaCBjaHVjIG5n YXkuDQoNClRoZW8gb25nIEJpbmgsIG5odW5nIHZpZWMgdHJlbiBkYSBnYXkgYnVjIHh1YyBsbyBs YW5nIHRyb25nIG5oYW4gZGFuLg0KDQpDaGluaCBwaHUgY3VuZyB0aHVhIG5oYW4sIHRvbiB0YWkg bG9uIG5oYXQgaGllbiBuYXkgbGEgdG8gY2h1YyBzYXAgeGVwIGxhaSBETk5OLCBkYWMgDQpiaWV0 IGxhIGNvIHBoYW4gaG9hIEROTk4gbGEgdHJpZW4ga2hhaSBjaGFtLiBUdSBjaHV5ZW4gVmluYXNo aW4sIG1vbmcgQ2hpbmggcGh1IA0KdG9uZyBrZXQgc2F1IHNhYyBydXQga2luaCBuZ2hpZW0sIGRp ZXUgZ2kgdGh1b2MgdmUgY2hpbmggc2FjaCwgY28gY2hlLCBRdW9jIGhvaSB0aGkgQ2hpbmggDQpw aHUgcGhhaSBkZSBuZ2hpIFF1b2MgaG9pIGxhcCBsbyBob25nIGJhbmcgcGhhcCBsdWF0LiBEaWV1 IG5hbyB0aHVvYyBjYW0gcXV5ZW4gY3VhIA0KQ2hpbmggcGh1IHRoaSBwaGFpIHR1IGJpdCBsbyBo b25nLg0KDQpUaGVvIGJhbyBjYW8gY3VhIENoaW5oIHBodSwgdGhhdCB0aG9hdCwgbm8gbmFuIGN1 YSBWaW5hc2hpbiBsYSA4NiBuZ2FuIHRpIG5odW5nIHRvaSANCmR1b2MgYmlldCBzYXUga2hpIFV5 IGJhbiBLaWVtIHRyYSBUVSB0dXllbiBibyBrZXQgcXVhIGtpZW0gdHJhIHRoaSBjYWMgbmdhbiBo YW5nIGNobyANClRhcCBkb2FuIHZheSBkYSBndWkgcGhpZXUgZG9pIHRhcCBob3AgbGFpIGtob2Fu ZyAxMjAgbmdhbiB0aS4gVG9pIG11b24gaG9pIENoaW5oIHBodSBjb24gc28gZG8gY2hpbmggeGFj IGtob25nPyIgKE9uZyBMZSBRdWFuZyBCaW5oKSANCg0KaHR0cDovL3d3dy52aWV0aW5mby5ldS90 aW4tdmlldC1uYW0vbmctbmduLXBoLXRybmctbG0tdG5nLWItdGguaHRtbCBUUCAyNS8xMi8yMDEw IDE0OjM1ICANCg0KVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBzZSB0aWVwIHR1YyB0aGVtIG1v dCBuaGllbSBreSANCg0KSG9tIG5heSwgSGFuZyB0aW4gRG93IEpvbmVzIE5ld3N3aXJlcyB0cmlj aCBkYW4gbW90IG5ndW9uIHRpbiB0aG9uZyB0aGFvIHZlIGRpZW4gdGllbiANCkhvaSBuZ2hpIEJh biBjaGFwIGhhbmggVHJ1bmcgdW9uZyAxNCBEYW5nIENvbmcgU2FuIFZpZXQgTmFtIGNobyBiaWV0 IGxhIEhvaSBuZ2hpIGRhIA0KZG9uZyB5IGRlIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgbmFt IHF1eWVuIHRoZW0gbW90IG5oaWVtIGt5IDUgbmFtIG51YS4NCkJhbiBjaGFwIGhhbmggVHJ1bmcg dW9uZyBjdW5nIGRhIHRob25nIG5oYXQgcGh1b25nIGFuIG5oYW4gc3Ugb25nIE5ndXllbiBQaHUg VHJvbmcsIA0KaGllbiBsYSBDaHUgdGljaCBRdW9jIEhvaSwgbGVuIHRoYXkgdGhlIG9uZyBOb25n IER1YyBNYW5oIGxhbSB0YW4gVG9uZyBiaSB0aHUgRGFuZywgDQpjaHVjIHZ1IG1hIHRyZW4gbmd1 eWVuIHRhYyBsYSBuaGFuIHZhdCBsYW5oIGRhbyBzbyBtb3QgY3VhIGRhdCBudW9jLiBWZSBwaGFu IG9uZyANClRydW9uZyBUYW4gU2FuZywgaGllbiBsYSBUaHVvbmcgdHJ1YyBCYW4gYmkgdGh1LCB0 aGkgZHVvYyBkb25nIHkgZ2l1IGNodWMgQ2h1IHRpY2ggbnVvYy4gDQoNCkhvaSBuZ2hpIGxhbiB0 aHUgMTQgQmFuIGNoYXAgaGFuaCBUcnVuZyB1b25nIERhbmcga2hhaSBtYWMgdHUgbmdheSAxMy8x MiB2YSBrZW8gZGFpIA0KZGVuIG5nYXkgMjEvMTIsIGNodSB5ZXUgYmFuIHZlIHBodW9uZyBhbiBu aGFuIHN1IGxhbmggZGFvLCBob2FuIHRoaWVuIGNhYyBkdSB0aGFvIA0KdmFuIGtpZW4gc2UgdHJp bmggcmEgRGFpIGhvaSBEYW5nIGxhbiB0aHUgMTEsIHZhIHJhIHNvYXQgY2FjIGNvbmcgdmllYyBj aHVhbiBiaSBjaG8gDQpEYWkgaG9pLCAgZHUga2llbiBzZSBkaWVuIHJhIHZhbyB0aGFuZyBHaWVu Zy4gVmUgbmd1eWVuIHRhYywgY2FjIGRlIG5naGkgdmUgY2h1YyB2dSANCm5odSBUb25nIGJpIHRo dSBEYW5nIGNvbiBwaGFpIGR1b2MgY2h1YW4geSB0YWkgRGFpIGhvaSBEYW5nLCBjb24gaGFpIGNo dWMgdnUgVGh1IHR1b25nIA0KdmEgQ2h1IHRpY2ggbnVvYyB0aGkgdHJlbiBuZ3V5ZW4gdGFjIHBo YWkgZG8gUXVvYyBob2kga2hvYSBtb2kgcGhlIGNodWFuIHRyb25nIGt5IGhvcCB0aGFuZyA1IG5h bSB0b2kuICAgDQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAtMTAtMjIt cG4tYW5kLWhkLXZpbmFzaGluLWtob25nLXRoZS1kYW0tdmEtdGh1LWd1aS1uaHVuZy1saW5oLWhv bi1kYXUta2hvIFRhYyBnaWE6IFRydWMgTmdvbg0KDQpQTiZIRDogQ29uIHRhdSB0cmFjaCBuaGll bSBraG9uZyB0aGUgY2hpbSB2YSB0aHUgZ3VpIG5odW5nIGxpbmggaG9uIGRhdSBraG8gIA0KDQoi Q29uIHRhdSB0cmFjaCBuaGllbSIgVmluYXNoaW4ga2hvbmcgdGhlIGNoaW0uIFN1IHRobyBvLCB2 byBjYW0sIHRob2kgdm8gdHJhY2ggbmhpZW0gDQp0cnVvYyBzaW5oIG1hbmcgY29uIG5ndW9pLiBO aHVuZyBjb25nIHRyaW5oIG5naGluIHR5IG11bmcgRGFpIGxlIHZ1YSBraGFpIHRydW9uZyANCnhv bmcgZGEgaG9uZy4gRG8gbGEgbmh1bmcgZGF5IGR1dCBjdWEgbmhhIGJhbyBUcnVjIE5nb24ga2hp IG5oaW4gbGFpIGNhYyBzdSBraWVuIGN1YSANCnR1YW4gcXVhLg0KDQpLaG9uZyBkdW9jIGRlIGNv biB0YXUgIlZpbmFzaGluIHRyYWNoIG5oaWVtIiBiaSBkYW0NCg0KQ2hvIGR1IGRhIGNvIG5oaWV1 IG5vIGx1YyBnaWFpIGN1dSwgY2h1YSB0aGUgbm9pIGNvbiB0YXUgVmluYXNoaW4gZGEgdGhvYXQg a2hvaSBuZ3V5IGNvIA0KYmkgY2hpbSB2YSBtYW5nIHRoZW8ga2hvaSB0YWkgc2FuIGhvbiA0IHR5 IGRvIGxhLiBIYXkgc3UgdGhhdCB0cmFuIHRydWkgbmh1IFRTIE5ndXllbiANCkR1YyBLaWVuLCB1 eSB2aWVuIFV5IGJhbiBLaW5oIHRlIFF1b2MgaG9pIG5vaSB0aGFuZyByYSByYW5nOiAiQ2h1bmcg dGEgdGllbiBoYW5oIHRhaSBjbyANCmNhdSBsYWkgVmluYXNoaW4gdGhpIHZlIG1hdCBraG9hIGhv YyBjb2kgbmh1IGNodW5nIHRhIGRhIGNoYXAgbmhhbiBjaG8gVmluYXNoaW4gcGhhIA0Kc2FuLCBj aGkgY28gdmFuIGRlIGxhIG1pbmggdHV5ZW4gYm8gaGF5IGtob25nIHR1eWVuIGJvIHBoYSBzYW4g bWEgdGhvaSIuIE9uZyBLaWVuIGdvaSANCmRheSBsYSAicGhhIHNhbiB0aGVvIGtpZXUgVmlldCBO YW0iLg0KDQpDaHVuZyB0YSBkYSB0dW5nIGJpZXQgY28gbmh1bmcgY3VvYyBzYW4gdGltIG5odW5n IGNvbiB0YXUgYmkgY2hpbSB4dW9uZyBkYXkgZGFpIGR1b25nIA0KZGUgdm90IGN1YS4gRG8gbGEg bmh1bmcgY29uIHRhdSBjaG8gdmFuZyBiYWMgdmEgY2FjIGRvIHZhdCBxdWkgZ2lhIHRyZW4gbmh1 bmcgY29uIHRhdSANCmN1YSBib24gY3VvcCBiaWVuLCB0cmVuIG5odW5nIGNvbiB0YXUgY3VhIGNh YyBkb2kgcXVhbiB4YW0gbHVvYyB2YSB0cmVuIG5odW5nIGNvbiB0YXUgDQpjaG8gaGFuZyBob2Eg ZGFjIGJpZXQgYmkgdGFpIG5hbi4gVGhlbyBuaHVuZyB0aG9uZyB0aW4gbWEgdG9pIGR1b2MgYmll dCB0aGkgY2h1YSBjb24gdGF1IA0KbmFvIHRyb25nICJsaWNoIHN1IGRhbSB0YXUiIGNoaW0geHVv bmcgYmllbiBtYW5nIHRoZW8gbW90IGtob2kgdGFpIHNhbiBsb24gbmh1IGNvbiB0YXUgDQpWaW5h c2hpbiBjdWEgY2h1bmcgdGEuDQoNCkNobyBkZW4gYmF5IGdpbyBjaHVuZyB0YSBwaGFpIGNheSBk YW5nIHRodWEgbmhhbiByYW5nOiBjaHVuZyB0YSB0aGF0IGtobyBjb24gY28gaG9pIGRlIA0KInRy dWMgdm90IiB0b2FuIGJvIGtob2kgdGFpIHNhbiBheSBsZW4gZHVvYy4gRGEgdHVuZyBjbyBuaHVu ZyAiY29uIHRhdSIgbmhvIGhvbiANClZpbmFzaGluIGJpIGRhbSBtYW5nIHRoZW8gbW90IGtob2kg dGFpIHNhbiBuaGF0IGRpbmggbmh1bmcgY2h1bmcgdGEgY2hhbmcgYmFvIGdpbyB0aW0gDQpsYWkg ZHVvYy4NCg0KTmh1bmcgYWkgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbSBjaGluaCB2ZSB2dSBk YW0gY29uIHRhdSBzaWV1IGtob25nIGxvIFZpbmFzaGluPyANCkNobyBkZW4gbHVjIG5heSwgY2h1 bmcgdGEgdmFuIGNoaSBuaGFuIGR1b2MgbW90IG51YSBjYXUgdHJhIGxvaS4gTW90IG51YSBjYXUg dHJhIGxvaSBoYXkgDQpub2kgY2FjaCBraGFjIG1vdCBudWEgc3UgdGhhdCB2ZSB2dSBkYW0gdGF1 IHNpZXUga2hvbmcgbG8gYXkgdmFuIGNvbiBjaGltIHRyb25nIA0KIm51b2MiLiBDaHVuZyB0YSB2 YW4gbm9pOiBNb3QgbnVhIGNoaWVjIGJhbmggbXkgbGEgY2hpZWMgYmFuaCBteSBjb24gbW90IG51 YSBzdSB0aGF0IA0Ka2hvbmcgcGhhaSBsYSBzdSB0aGF0Lg0KDQooQW5oOiBDb24gdGF1IHRyYWNo IG5oaWVtIFZpbmFzaGluIGRhbmcgYmkgY2hpbSwgQW5oIFZpZXROYW1OZXQpIA0KDQpUcmEgbG9p IGJhbyBjaGksIG9uZyBWdSBRdWFuZyBIYWkgKGRhaSBiaWV1IEh1bmcgWWVuKSBub2k6IFNhdSBr aGkgY28ga2V0IGx1YW4gY3VhIEJvIA0KQ2hpbmggdHJpIHZlIFZpbmFzaGluLCB0b2kgZGEgZ3Vp IGNoYXQgdmFuIHRvaSB0b25nIEtpZW0gdG9hbiBOaGEgbnVvYyB2YSBUaGFuaCB0cmEgDQpDaGlu aCBwaHUgaG9pIHJhbmcgdGFpIHNhbyBjbyB0b2kgMTEgbGFuIHRoYW5oIHRyYSwga2llbSB0b2Fu IHZhbyBtYSB0aW5oIGhpbmggVmluYXNoaW4gDQp2YW4gbmh1IHRoZT8gRG8gbmFuZyBsdWMgdGhh bmggdHJhLCBraWVtIHRvYW4geWV1IGhheSBjbyB0aWV1IGN1YyBnaSBvIGRheT8gDQoNCkt5IG5h eSBDaGluaCBwaHUgY28gYmFvIGNhbyByaWVuZyBndWkgUXVvYyBob2kgdmUgVmluYXNoaW4sIHRv aSBjaG8gZG9pIG1vdCBiYW4gYmFvIA0KY2FvIGRheSBkdSB2YSB0cnVuZyB0aHVjIG5oYXQgdmUg dGluaCBoaW5oIFZpbmFzaGluLCBuZ3V5ZW4gbmhhbiBjdWEgc3UgZG8gYmUsIGhhdSBxdWEgDQpk ZW4gbXVjIG5hbyB2YSBuaGF0IGxhIGFpIHBoYWkgY2hpdSB0cmFjaCBuaGllbSBjaGluaCB2ZSB2 dSB2aWVjIG5heS4gQ2FuIHBoYWkgbGFtIHJvIA0KdHJhY2ggbmhpZW0gcXVhbiBseSB2YSB0cmFj aCBuaGllbSBjaGluaCB0cmkgY3VhIENoaW5oIHBodSwgY2FjIGJvIG5nYW5oIGxpZW4gcXVhbiwg DQpraG9uZyB0aGUga2V0IGx1YW4gY2h1bmcgY2h1bmcgZHVvYywgcGhhaSBjbyBjYSBuaGFuIG5o YW4gdHJhY2ggbmhpZW0gY2hpbmggdmUgdmllYyANCm5heS4NCg0KQ28gdGhlIGNvaSBsYSB0aW4g aGlldSBkYW5nIG11bmcga2hpIHRyb25nIG5nYXkga2hhaSBtYWMga3kgaG9wIFF1b2MgaG9pLCBu Z3VvaSBkdW5nIA0KZGF1IENoaW5oIHBodSBkYSBuaGFuIHRyYWNoIG5oaWVtIHZlIG1pbmggdHJv bmcgY2F1IGNodXllbiBWaW5hc2hpbjoNCg0KIlRodWMgdHJhbmcgbmF5IGNvIHRyYWNoIG5oaWVt IGN1YSBDaGluaCBwaHUsIGN1YSBjYWMgYm8gbGllbiBxdWFuIHRyb25nIHZpZWMgcXVhbiBseSAN Cm5oYSBudW9jIHZhIHF1YW4gbHkgY3VhIGNodSBzbyBodXUuIENoaW5oIHBodSBkYSBuZ2hpZW0g dHVjIGtpZW0gZGllbSwgeGFjIGRpbmggDQpuZ3V5ZW4gbmhhbiB2YSBkZSByYSBrZSBob2FjaCBj dSB0aGUgZGUgeHUgbHksIGNoYW4gY2hpbmggY2FjIGhvYXQgZG9uZyBjdWEgdGFwIGRvYW4iLg0K DQpUaGUgbmh1bmcsIGNodW5nIHRhIGxhaSB0aGF0IHZvbmcgYmFvIG5oaWV1IGtoaSBkb2MgYmFp IHRyYSBsb2kgcGhvbmcgdmFuIGN1YSBUb25nIA0KVGhhbmggdHJhIENoaW5oIHBodSBUcmFuIFZh biBUcnV5ZW4uIEx5IGdpYWkgY2hvIGNhdSBob2kgY3VhIGNvbmcgbHVhbjogdmkgc2FvIGNvIDEx IA0KbGFuIHRoYW5oIHRyYSBraWVtIHRvYW4gdmFvIG1hIHRpbmggaGluaCBWaW5hc2hpbiB2YW4g bmh1IHRoZSwgb25nIFRydXllbiB0cmEgbG9pIHRoZSANCm5heToNCg0KIlRvaSBjaG8gcmFuZyBk dSBjbyBjdW9jIHRoYW5oIHRyYSB0b2FuIGRpZW4ga2lwIHRob2kgdHUgYmFuIGRhdSB2YSBjaGkg cmEgaGV0IG5odW5nIHNhaSANCnBoYW0gbmh1bmcgbmV1IGhvIGtob25nIHR1IGdpYWMgY2hhcCBo YW5oIHZhIGtob25nIGtoYWMgcGh1YyBtYWAgY3UgdGllcCB0dWMgc2FpIHRyYWkgDQpuaHUgdmF5 IHRoaSB0YXQgeWV1IGRhbiBkZW4gaGF1IHF1YSBuaHUgYmF5IGdpby4gQ28gY2hlIGdpYW0gc2F0 IHRoYW5oIHRyYSBjdWEgY2h1bmcgdGEgDQpkYW5nIGNvIHZhbiBkZS4gSGllbiBuYXksIG5nYXkg Y2Ega2hpIGNvIGtldCBsdWFuIGN1YSBUaHUgdHVvbmcgdGhpIGN1bmcgY28gYWkgcGh1YyB0cmEg DQpkYXU/IERhIGtob25nIHBodWMgdHJhIHRoaSBjbyBjaGFwIGhhbmggbmdoaWVtIGhheSBraG9u ZyBjdW5nIGtob25nIGFpIGJpZXQuIE1hIGNobyANCmR1IG5ldSBiaWV0IGNvIGNoYXAgaGFuaCBr aG9uZyBuZ2hpZW0gdGhpIGN1bmcga2hvbmcgY28gY2hlIHRhaSB4dSBseS4gRG8gZG8gbWEgc2Fp IA0KcGhhbSBjdSBrZW8gZGFpLiBOaGlldSBraGkgY3UgYmkgY2hlIGxhcC4NCkNodW5nIHF1eSBs YWkgbGEgZG8gY28gY2hlIG5heSBjbyB2YW4gZGUgbWEgdG9pIGRheSBwaGFpIHJ1dCBraW5oIG5n aGllbSwgcGhhaSBjbyBzdSANCnBoYW4gY29uZyByYW5oIG1hY2giLg0KDQpIb2kgb2ksIG5ldSAi Y28gY2hlIiBtYSBjbyBtb20gZGUgbm9pIGhhbiAiY28gY2hlIiBzZSBnYW8gbGVuLCBraG9jIGxl biB0dWkgaGFuIG1hIA0KcmFuZzogQ2FjIG9uZyBvaSwgeGluIGNhYyBvbmcgZHVuZyBkbyB0b2kg Y2hvIHRvaSBudWEuIFRvaSBsYSBjb24gZGUgY3VhIGNhYyBvbmcgY28gbWEuLi4NClhpbiB0aHVh LCBjb25nIGx1YW4gZGEgY2hhbiBuZ2F5IGRlbiB0YW4gY28gbmh1bmcgY2F1IG5vaSBraWV1ICJs b2kgdGFpIGNvIGNoZS4uLiIgbmF5IA0KbGFtIHJvaS4NCg0KQ29uIHRhdSAiVmluYXNoaW4gdGFp IHNhbiIgY28gdGhlIGNvaSBsYSBtYXQgdGljaCB2aW5oIHZpZW4sIG5odW5nIGNvbiB0YXUgIlZp bmFzaGluIHRyYWNoIA0KbmhpZW0iIGtob25nIHRoZSBkZSBtYXQgdGljaCBkdW9jLiBObyBwaGFp IGR1b2MgInRydWMiIGxlbiBkZSBjaHVuZyB0YSBuaGluIHJvIHRyYWNoIA0KbmhpZW0gYXkgdGh1 b2MgdmUgYWkuIEJvaSBuZXUgY2h1bmcgdGEga2hvbmcgbW90IGxhbiBkYW0gZHVuZyBjYW0gZGUg Y2hpIHJhIHRyYWNoIA0KbmhpZW0gdmEgeHUgbHkgbmdoaWVtIG1pbmggdnUgZGFtIHRhdSBzaWV1 IGtob25nIGxvIG5heSB0aGkgc3Ugdm8gdHJhY2ggbmhpZW0gc2UgbWFpIA0KbWFpIGJhbSB0aGVv IGNodW5nIHRhIHZhIGNhbmcgbmdheSBjYW5nIHBoaW5oIHRvLiBOZXUgY2h1bmcgdGEga2hvbmcg bGFtIGR1b2MgZGlldSANCmF5IHRoaSB0cm9uZyB0dW9uZyBsYWkgY2h1bmcgdGEgc2UgcGhhaSBj aHVuZyBraWVuIG5oaWV1ICJjb24gdGF1IiBudWEgY2hpbSB4dW9uZyBjYWkgDQoiZGFpIGR1b25n IGtob25nIGRheSIuIERvIG1vaSBsYSBuZ3V5IGNvIGtob25nIGxvIGRvaSB2b2kgZGF0IG51b2Mg bmF5Lg0KDQpPaSBjYWkgZGF1IGN1YSBuaHVuZyBjb24gdml0IQ0KDQpCYW8gY2hpIGR1YSB0aW46 IENodWEgZHVvYyAxMCBuZ2F5IHNhdSBraGkgZHVhIHZhbyBzdSBkdW5nLCBDb25nIHZpZW4gSG9h IEJpbmggKFR1IA0KTGllbSwgSGEgTm9pKSBtb3QgY29uZyB0cmluaCB0cm9uZyBkaWVtIGNoYW8g bXVuZyAxMDAwIG5hbSBUaGFuZyBMb25nIC0gSGEgTm9pIGRhIA0KdHJvIGNvIGRhdSBoaWV1IHh1 b25nIGNhcC4NCg0KVGhlbyBnaGkgbmhhbiBjdWEgRGF0IFZpZXQsIGhhdSBoZXQgZGEgeGUgZHVv YyBsYXQgZHVvaSBuZW4sIGNhYyBibyB0dW9uZyBxdWFuaCBjb25nIA0KdmllbiBkYSBiaSB2by4g TmhpZXUgY2hvIGJpIGxvYyBsZW4gdHVuZyBtYW5nIGxvbiBjaG9pIGhldCBjYSBsb3AgeGkgbWFu ZyBwaGlhIGR1b2kgbmVuLiANCk8gYmFjIGxlbiB4dW9uZyB0cnVvYyBjb25nIGNoaW5oIGN1YSBj b25nIHZpZW4sIGhhbmcgY2h1YyB2aWVuIGRhIGxhdCBkYSBiaSBib25nIHRyb2MuIA0KSGFuZyBk YW8gYmFuZyBkYXkgeGljaCBxdWFuaCBobyBuaGlldSBkb2FuIGJpIGR1dCBraG9pIGNvdCwgQ290 IGRlbiBtYXQgbmFwIGRlIGxvIA0Kbmh1bmcgc29pIGRheSBkaWVuIHJhIG5nb2FpIHJhdCBuZ3V5 IGhpZW0gY2hvIG5ndW9pIHJhIHZhbyBjb25nIHZpZW4uLi4gRGFjIGJpZXQgbWF5IA0KbmdvaSBu aGEgdHJlbiBuaHVuZyBtbyBkYXQgaGF1IG5odSBkYSBiaSBudXQgdG9hYyBuZW4gbW9uZywgY2Fj IGNvbmcgdHJpbmggcGh1IG8gYmVuIA0KdHJvIG5lbiB4aWV1IHZlby4NCg0KKEFuaDogTmhpZXUg ZG9hbiBkYXkgeGljaCBoYW5nIHJhbyBxdWFuaCBobyBjdWEgQ29uZyB2aWVuIEhvYSBCaW5oIGJp IGR1dC4gQW5oIERhdCANClZpZXQpDQoNCiJUdSBuZ2F5IGNvbmcgdmllbiBuYXkgZHVhIHZhbyBz dSBkdW5nIGNoaWV1IG5hbyB0b2kgY3VuZyByYSBkYXkgY2hvaSwgaG9uZyBtYXQgY3VuZyANCmNh YyBjaGF1IG5odW5nIHRoYXkgY29uZyB2aWVuIHh1b25nIGNhcCBuaGFuaCBxdWEuIENoaSBkaSB0 cmVuIG5lbiB0aG9pIG1hIGRhIHRoYXkgZGEgDQpsYXQgYnVuZyBsZW4gcm9pLiBLaG9uZyBuaHVu ZyB0aGUsIGNhYyBiYWMgbGVuIHh1b25nIGR1b2MgbGF0IGJhbmcgZGEgc2UgZGUgZHUgcmEgbW90 IA0KZG9hbiBjaHVuZyA1Y20ga2hpIG5ndW9pIGRhbiBkaSwgY2hheSwgbmhheS4uLiBoYXkgdm8g dGluaCB2YSBwaGFpIHZhbyBkbyBjdW5nIHNlIGxhbSANCmNobyBkb2FuIGRhIGxhdCBkdSByYSBi aSB2byBuZW4gaGF1IGhldCBjYWMgYmFjIGxlbiB4dW9uZyBvIGNvbmcgdmllbiBuYXkgZGV1IGJp IHN1dCBtZSANCm5oYW0gbmhvIGNhIiwgYmEgTmd1eWVuIFRoaSBNZW4sIG5ndW9pIGRhbiBnYW4g Y29uZyB2aWVuIGNobyBiaWV0LiANCg0KQ2h1eWVuIGNhYyAiY29uZyB0cmluaCBuZ2FuIHR5IiBt b2kgbGFtIHhvbmcgZGEgeHVvbmcgY2FwIG5odSBjaHV5ZW4gdmUgY29uZyB2aWVuIA0KSG9hIEJp bmggbm9pIHRyZW4gY2hhbmcgaGUgbGFtIGNobyBuZ3VvaSBkYW4gZ2lhdCBtaW5oIGtpbmggaGFp IGhheSB0cm9uIG1hdCBuZ2FjIA0KbmhpZW4gbnVhLiBOZ3VvaSBkYW4gZGEgcXVhIHF1ZW4gdm9p IHRob2kgbGFtIGFuIG5odSB0aGUgbmF5IHJvaS4NCg0KTW90IGNvbiBkdW9uZyBjYW8gdG9jIHZ1 YSBsYW0geG9uZyBkYSBsdW4sIG1vdCBkdW9uZyBuZ2FtIHZ1YSBsYW0geG9uZyBkYSByaSBudW9j IA0KcmF0IHJhbywgbW90IGNheSBjYXUgInZpIGRhaSIgdnVhIGxhbSB4b25nIGRhIG51dCBkb2Mg bnV0IG5nYW5nLi4uSG9pIG5ndXllbiBuaGFuIHZpIHNhbyANCnRoaSBuaHVuZyBuZ3VvaSBjaGl1 IHRyYWNoIG5oaWVtICJ0dW5nIiByYSBkdSBseSBkbyB2YSBseSBkbyBuYW8gY3VuZyBsYSB0YWku LiBtdWEsIHRhaSBnaW8gDQpjYSB0aG9pLiBDaHVhIG1vdCBjb25nIHRyaW5oIG5hbyBuaHUgdGhl IGR1b2MgbW90IGFpIGRvIGNvIHRyYWNoIG5oaWVtIG5oYW4gbG9pIHZlIA0KbWluaC4gVmEgZGll dSBsYW0gY2hvIG5ndW9pIGRhbiB0cm9uIG1hdCBuZ2FjIG5oaWVuIGNoaW5oIGxhIHZpZWMgaG8g a2hvbmcgdGhlIG5hbyANCmhpZXUgZHVvYyB2aSBzYW8gbmh1bmcgdmllYyBsYW0gbmh1IHRoZSBi aSBuZ3VvaSBkYW4gbGVuIHRpZW5nIHBoZSBwaGFuIHZhIE5oYSBudW9jIA0KbmhhYyBuaG8gbWEg Y2hhbmcgaGUgdGhheSBkb2kgbW90IGNodXQgbmFvLg0KDQpIYXUgcXVhIHRvaSB0ZSBjdWEgY2Fj IGNvbmcgdHJpbmggbm9pIHRyZW4gY28gbmhpZXUgbmd1eWVuIG5oYW4uIE5odW5nIG5ndXllbiBu aGFuIA0KcXVhbiB0cm9uZyBuaGF0IGNoaW5oIGxhIHN1IHZvIHRyYWNoIG5oaWVtLiBWbyB0cmFj aCBuaGllbSBkYSBsYW0gInRob2kiIGNhaSB0YWkgY3VhIA0Kbmh1bmcgbmd1b2kgY2hpdSB0cmFj aCBuaGllbSwgdmEgdGhlIGxhIG1vaSBwaGUgcGhhbiwgbmhhYyBuaG8sIGNhbmggYmFvIGN1YSBk dSBsdWFuIA0KdmEgY3VhIGNoaW5oIE5oYSBudW9jIGNoaSBuaHUgbGEgbnVvYyBkbyBkYXUgdml0 IHZhIHRob2kuIE51b2MgY3UgZG8geHVvbmcgZGF1IHZpdCBoZXQgDQpuZ2F5IG5heSwgdGhhbmcg bm8sIG5hbSBraWEgbWEgY2hhbmcgbGFtIGNobyBtb3QgY2FpIGxvbmcgdml0IG5hbyB0aGFtIG51 b2MuDQoNCk5ldSBjaHVuZyB0YSBjdSBzb25nIHZvaSBsb2kgc29uZyBuYXkgdmEgbGFtIHZpZWMg dm9pIHRob2kgbGFtIHZpZWMgbmF5IHRoaSBiaWV0IGJhbyB0aWVuIA0KY3VhIGRvIHZhbyBjYWMg Y29uZyB0cmluaCBjaG8gdnVhLiBEYXQgbnVvYyB0YSBtYWkgbWFpIGNoaSBsYSBtb3QgY29uZyB0 cnVvbmcgbmdvbiANCm5nYW5nIGdhY2ggZGEgdmEgbXUgbWl0IGJ1aSBiYW0uIE1vdCBjb25nIHRy dW9uZyB2b2kgbmh1bmcgY29uZyB0cmluaCBraG9uZyBjbyBuZ2F5IA0KImtoYW5oIHRoYW5oIi4g R2lvbmcgbmh1IG5odW5nIGNvbiBkdW9uZyBjdWEgY2h1bmcgdGEgY3UgbGFtIHhvbmcgZGVuIGN1 b2kgY29uIA0KZHVvbmcgdGhpIHF1YXkgbGFpIGRhbyBib2kgc3VhIGNodWEgZGF1IGNvbiBkdW9u Zy4gQ2FpIHZvbmcgdHJvbiBheSBuaHUgbmh1bmcgdm9uZyANCnRyb25nIG1hIHF1eSBraG9uZyBi YW8gZ2lvIGNoYW0gZHV0LiBOZ2hpYSBsYSwgY2h1bmcgdGEgZGFuZyB0cm9uZyBuZ3V5IGNvIHJv aSB2YW8gDQpjYWkgdm9uZyBsdWFuIHF1YW4gbWEgY2h1YSB0aW0gdGhheSBkdW9uZyByYS4NCg0K T2kgbmh1bmcgY29uIHZpdCwgYmlldCBkZW4gYmFvIGdpbyBjYWkgZGF1IGN1YSBjYWMgbmd1b2kg bW9pIHRoYW0gIm51b2MiIGRheSA/Pz8NCg0KKEFuaDogQ2hpZWMgeGUga2hhY2ggZ2FwIG5hbiBk YW5nIGR1b2Mgdm90IGxlbiwgQW5oIFZpZXROYW1OZXQpDQoNClRodSBndWkgbmh1bmcgbGluaCBo b24gZGF1IGtobzoNCg0KSG9pIGxpbmggaG9uIGtobyBkYXUgY3VhIG5odW5nIG5ndW9pIGRhIGNo ZXQgdHJlbiBjaHV5ZW4geGUgYmF0IGhhbmguDQoNCk51b2MgbHUgZGEgcnV0IGRpIG1vdCBjaHV0 IHRyZW4gZG9uZyBzb25nIExhbSwgbmh1bmcgY29uIGx1IGN1YSBkYXUgdGh1b25nIGRhbmcgZGFu ZyANCm5nYXAgdHJlbiB4dSBzbyBuYXkuIEJhbyBuaGlldSBuaWVtIHZ1aSBtYSBjaHVuZyB0b2kg ZGFuaCBkdW0gdHJvbmcgbmh1bmcgbmdheSBEYWkgbGUgDQoxMDAwIG5hbSBUaGFuZyBMb25nIGdp byBuaHUgdGFuIGJpZW4gdGF0IGNhLiBLZSB0dSBraGkgbmdoZSB0aW4gY2hpZWMgeGUga2hhY2gg YmkgZG9uZyANCmx1IGN1b24geHVvbmcgc29uZyBMYW0sIGhhbmcgdHJpZXUgbmd1b2kgVmlldCBO YW0gZGEgaHVvbmcgdmUgZG9uZyBzb25nIGF5LiBDbyBiaWV0IA0KYmFvIG5ndW9pIGtob25nIGNh bSBkdW9jIG51b2MgbWF0LiBUcm9uZyBkb25nIG51b2MgbGFuaCB2YSBjaGF5IHhpZXQga2lhLCBu aHVuZyANCm5ndW9pIGRhbiBvbmcsIGRhbiBiYSwgbmh1bmcgY28gZ2FpIHZhIG5odW5nIGR1YSB0 cmUgYmF0IGhhbmggZGFuZyBvIGRhdS4gVGF0IGNhIG5odW5nIA0Kbmd1b2kgVmlldCBOYW0gY28g bHVvbmcgdGFtIGRldSB0aGF5IG1pbmggY28gbG9pLiBIb2kgY2FjIGxpbmggaG9uIGRhdSBraG8s IHhpbiBoYXkgDQp0aGEgdG9pIGNobyBuaHVuZyBuZ3VvaSBkYW5nIHNvbmcuDQoNCk5odW5nIGNv biBuZ3VvaSBheSBkYW5nIHRyZW4gZHVvbmcgdHJvIHZlIG5nb2kgbmhhIGN1YSBtaW5oLiBOaHVu ZyBobyBkYSBraG9uZyB2ZSANCmR1b2MgbmhhIG1pbmggbnVhLiBUcm9uZyBuaHVuZyBuZ2F5IG5h eSB2YSBtYWkgbWFpIHZlIHNhdSB0cmVuIGRvbmcgc29uZyBheSwgZGVtIA0KZGVtIHRyb25nIG11 YSBnaW8gYnVvbiBiYSwgY2h1bmcgdG9pIGNvbiBuZ2hlIG1haSBsb2kga2V1IGN1dSBzYWMgbnVv YyBjdWEgY2FjIGxpbmggDQpob24uIENvIG5odW5nIG5ndW9pIHRyb25nIGNodW5nIHRvaSBiYXQg ZGF1IGNhbSB0aGF5IHNvIGhhaSBraGkgbmdoaSByYW5nIHRyb25nIG1vdCANCm5nYXkgbmFvIGRv LCBjaHVuZyB0b2kgcGhhaSBkaSBxdWEga2h1YyBzb25nIGF5IHZhIGNodW5nIHRvaSBraG9uZyBj aGl1IGR1b2Mgbm9pIGJ1b24gDQpkYXUgdmEgYW4gaGFuLiBDaHVuZyB0b2kgc2Uga2hvbmcgYmFv IGdpbyB0cmEgbG9pIGR1b2MgY2F1IGhvaSBjdWEgY2FjIGxpbmggaG9uOiAiQ2FjIA0Kbmd1b2kg aGF5IHRyYSBsb2kgZGksIHZpIHNhbyBjaHVuZyB0b2kgcGhhaSBjaGV0IG5odSB0aGU/IFZpIHNh byBjYWMgbmd1b2kga2hvbmcgY2hhbiANCmNoaWVjIHhlIGF5IGxhaT8gVmkgc2FvIG5ndW9pIGxh aSB4ZSBjdSBsYW8gdGhhbmcgY2hpZWMgeGUgZHVhIGNodW5nIHRvaSB2YW8gY2FpIGNoZXQ/Ig0K DQpOdW9jIHNvbmcgTGFtIGNvIGJhbyBnaW8gYnVvdCBsYW5oIG5odSBuaHVuZyBuZ2F5IG5heSBr aG9uZz8gR2lvIGRvaSBibyBzb25nIExhbSANCmNvIGJhbyBnaW8gZ2FvIHRoZXQgYmkgdGh1b25n IG5odSBuaHVuZyBuZ2F5IG5heSBraG9uZz8gVHJvbmcgdGFtIHRyaSBkYXUgYnVvbiBjdWEgDQpi aWV0IGJhbyBuZ3VvaSBkYW5nIHNvbmcsIG5odW5nIGR1YSB0cmUgdmFuIGxhbmcgdGhhbmcgZG9j IGRvaSBibyBzb25nIHRpbSBtZS4gQ2h1bmcgDQpraG9uZyBiYW8gZ2lvIGxvbiBsZW4gZHVvYyBu dWEuIENodW5nIGJvIGxhaSBuaHVuZyBkbyBjaG9pIHJlIHRpZW4gbWEgb25nIGJhLCBjaGEgbWUs IA0KY2h1IGJhYyBkYSBnaWFuaCBkdW0gdGllbiBtdWEgdGFuZyBjaHVuZyB0cm9uZyBtdWEgVHJ1 bmcgdGh1IHZ1YSBxdWEuIE5odW5nIG5ndW9pIA0KZGFuIG9uZywgZGFuIGJhIGNoZXQgb2FuIHVv bmcgdmFuIG5nbyBuZ2FjIHZvaSBjYXUgaG9pICJWaSBzYW8gY2h1bmcgdG9pIHBoYWkgY2hldD8i LiANCkhvIGxhbmcgdGhhbmcgZG9jIGhhaSBibyBzb25nIExhbS4gSG8gbWFpIG1haSBraG9uZyBi YW8gZ2lvIHZlIHRvaSBuaGEgbWluaC4gVmEgDQpuaHVuZyBuZ3VvaSBzb25nIGNodW5nIHRhIG1h aSBtYWkga2hvbmcgYmFvIGdpbyBkdW9jIHRoYSB0aHUuDQoNCihBbmg6IER1YSB4YWMgbmFuIG5o YW4gcmEga2hvaSBvIHRvIGdhcCBuYW4sIEFuaCBWaWV0TmFtTmV0KSANCg0KVHJvbmcgbmh1bmcg bmdheSBuYXksIGNodW5nIHRhIGxhaSBuZ2hlIHRpbiBuaHVuZyBoYW5oIGtoYWNoIHRyZW4gbW90 IGNodXllbiBiYXkgY3VhIA0KVmlldG5hbSBBaXJsaW5lIGRpIFBoYXAgYmkgdGh1b25nLiBSYXQg bmhpZXUgbmd1b2kgZGF0IGNhdSBob2k6IHZpIHNhbyBjaHV5ZW4gYmF5IGRvIA0Ka2hvbmcgcXVh eSBsYWkgVmlldCBOYW0gaGF5IHRpbSBjYWNoIGhhIGNhbmggeHVvbmcgbW90IHNhbiBiYXkgbmFv IGRvIGRlIGN1dSBjaHVhIA0Kbmh1bmcgaGFuaCBraGFjaCBiaSB0aHVvbmcgdmEgZGUgdHJhbiBh biB0aW5oIHRoYW4gaG8gaGF5IGRlIGtpZW0gdHJhIGxhaSBuaHVuZyBnaSBjYW4gDQp0aGlldCBj aG8gY2hhbmcgYmF5IHRpZXAgdGhlbyByYXQgZGFpLiBDdW5nIG5odSBuaHVuZyBuZ3VvaSBsYW0g bmhpZW0gdnUgdHJlbiB0dXllbiANCmR1b25nIGNvIGNodXllbiB4ZSBraGFjaCBiYXQgaGFuaCBk aSBxdWEgdmEgY2Egbmd1b2kgbGFpIHhlIG51YSBzYW8ga2hvbmcgZHVuZyBsYWkuIA0KU2FvIG5n dW9pIHRhIGxhaSBjbyB0aGUgZGUgbW90IGNodXllbiB4ZSBjaG8gaGFuZyBjaHVjIG1hbmcgbmd1 b2kgZGkgdmFvIG5vaSBtYSBjYWkgDQpjaGV0IGRhbmcgcmluaCByYXAgaG8/DQoNCkNodW5nIHRh IGRhbmcgdGhvIG8gdm9pIG1hbmcgc29uZyBjb24gbmd1b2kuIENodW5nIHRhIGRhbmcgbmdoaSBk ZW4gbG9pIGljaCB2YXQgY2hhdCANCmhvbiBtYW5nIHNvbmcgY3VhIG5odW5nIGhhbmgga2hhY2gg dHJlbiBjaHV5ZW4geGUga2lhIHZhIHRyZW4gY2h1eWVuIGJheSBraWEuIENodW5nIA0KdGEgZGFu ZyBkYXUgZG9jIG5odW5nIGRvbmcgc29uZyxkYW5nIGRhdSBkb2Mgbmh1bmcgbmd1b24gbnVvYywg ZGFuZyBkYXUgZG9jIHRodWMgDQpwaGFtLi4uQm9pIHRoZSBjaHVuZyB0YSBjbyBuaHVuZyBsYW5n IHVuZyB0aHUuIFRhdCBjYSBuaHVuZyBnaSBjaHVuZyB0YSBkYW5nIGxhbSBnaW9uZyANCm5odSBu aHVuZyB0cm8gZG9jIGFjIGN1YSBtYSBxdXkgbGEgdmkgbmh1bmcgZG9uZyB0aWVuLiBDaHVuZyB0 YSBjb24gYmFvIG5oaWV1IHBoYW4gDQp0cmFtIG5oYW4gdGluaCB0cm9uZyB0cmFpIHRpbSBtaW5o Pw0KDQpDaG8gZHUgY2h1bmcgdGEgZGEgbGFtIGxlIGNhdSBzaWV1IGJlbiBibyBzb25nIExhbSwg bmh1bmcgdG9pIGJpZXQgbGluaCBob24gY3VhIG5odW5nIA0Kbmd1b2kgY2hldCBvYW4gdW9uZyB2 YW4ga2hvbmcgdGhlIHJhIGRpLiBIbyB2YW4gZHVuZyB0cm9uZyBnaW8gdmEgbnVvYyBsYW5oIGJl biBibyANCnNvbmcgbmhpbiBjaHVuZyB0YSB2YSBob2k6ICIgVmkgc2FvIGNodW5nIHRvaSBwaGFp IGNoZXQgbmh1IHRoZSBuYXk/IiBOaHVuZyBsaW5oIGhvbiBjaGkgDQp0aHVjIHN1IHNpZXUgdGhv YXQga2hpIGhhbmcgbmdheSB0cm9uZyB0dW5nIGhhbmggZG9uZywgbmh1bmcgbmd1b2kgY29uIHNv bmcgcGhhaSBsYW0gDQp2b2kgbHVvbmcgdGFtIHZhIHRpbmggdGh1b25nIHlldSBjb24gbmd1b2kg dGh1YyBzdS4gTmV1IGNodW5nIHRhIHRodWMgc3UgdGh1b25nIHlldSANCmRvbmcgbG9haSBtaW5o LCBjaHVuZyB0YSBzZSBsdW9uIGx1b24gZG9pIHRoZW8gaG8gdmEgYmFvIHZlIGhvLiBOaHVuZyBj aHVuZyB0YSBkYSBibyANCm1hYyBoby4gQ2h1bmcgdGEgeGF5IGR1IGxvYWkgY29uZyB0cmluaCBk ZSBraW5oIGRvYW5oIGxheSB0aWVuIHZhIGxheSB0aGFuaCB0aWNoLCBuaHVuZyANCmNodW5nIGNv IGJhbyBnaW8gdGluaCBnaWFjIHRyb25nIGRlbSBuZ2hpIGRlbiBuaHVuZyBjb25nIHRyaW5oIGNo byBuaHVuZyBkdWEgdHJlIHZhIA0Kbmh1bmcgbmd1b2kgZ2lhIGNodWE/IE1vdCByYXAgY2hpZXUg cGhpbSBnaWFuaCBjaG8gdHJlIGNvbiBkdW9jIHhheSBsZW4gbmh1bmcgY2h1bmcgDQp0YSBjaGFu ZyBuZ2hpIGR1b2MgcGhhaSBsYW0gZ2kgY2hvIG5odW5nIGR1YSB0cmUgdHJvbmcgY2FpIHJhcCBj aGlldSBwaGltIGF5Lg0KDQpDaHVuZyB0YSBiYXkgcmEgY2FjIGxvYWkgdHJ1b25nIGtob25nIHBo YWkgZGUgbGFtIHJhIG5odW5nIHRoZSBnaW9pIGt5IGRpZXUgY2hvIG5odW5nIA0KZHVhIHRyZSBt YSBkZSAicmEgZ2lhIGNhbyIgZG9pIHZvaSBjaGEgbWUgY2h1bmcuIENodW5nIHRhIGxvaSBkdW5n IG5odW5nIGR1YSB0cmUgbW90IA0KY2FjaCBnaWFuIHRpZXAgZGUga2llbSB0aWVuLiBDaHVuZyB0 YSB0aG8gbyB2b2kgbmh1bmcgaGUgdGhvbmcgZGF5IGRpZW4gZGUgZG9uZyBkaWVuIA0KZ2lldCBj aGV0IG5odW5nIGR1YSB0cmUuIENodW5nIHRhIGRlIGNhIG5odW5nIG1heSBBVE0gaG8gZGllbiBu aHUgbmh1bmcgY2FpIGJheSBjdWEgDQp0aGFuIGNoZXQgZG9pIGNvbiBuZ3VvaS4gQ2h1bmcgdGEg a2hvbmcgdGhlIGJpZW4gbWluaCBjaG8gdHJhaSB0aW0gdm8gY2FtLCBsb2kgc29uZyBpY2ggDQpr eSB2YSBhYyBkb2MgY3VhIGNodW5nIHRhLiBDaHVuZyB0YSB0aHVjIHN1IGNodWEgdmkgY29uIG5n dW9pLg0KDQpOaHVuZyBuZ2F5IG5heSBub2kgdG9pIGRhbmcgbyBtdWEgdGh1IHRoYXQgZGVwLiBO aHVuZyBtdWEgdGh1IGF5IGRhIGNoZXQga2hpIGNoaWVjIHhlIA0KY2hpbSB4dW9uZyBkb25nIHNv bmcgYnVvdCBsYW5oIHZhIHZhbmcgbGVuIGxvaSBrZXUgY3V1IHRoYW0gdGhpZXQgY3VhIG5odW5n IGNvbiBuZ3VvaSANCmJhdCBoYW5oLiBDbyBiYW8gbmhpZXUgbmd1b2kgdHJvbmcgZGVtIG5heSBu Z2hlIGR1b2MgdGllbmcga2V1IGRhdSBraG8gYXk/DQoNCkhvaSBuaHVuZyBsaW5oIGhvbiBraG8g ZGF1LA0KDQpDaHVuZyB0b2kgY2F1IHhpbiBzdSB0aGEgdGh1LiBOaHVuZyB4aW4gZHVuZyB0aGEg dGh1IGNobyBjaHVuZyB0b2kuIEhheSBkZSB0cmFpIHRpbSANCmNodW5nIHRvaSBwaGFpIGRhdSBk b24uIEhheSBkZSB0aWVuZyBrZXUgdGhhbSB0aGlldCB0cm9uZyBudW9jIHhpZXQgZGVtIGRlbSBk b2kgdmFvIA0Kbmh1bmcgY2FuIG5oYSBjdWEgY2h1bmcgdG9pLiBIYXkgdHJvIHZlIGRlbSBkZW0g dmEgZHVuZyB0cnVvYyBjdWEgbmhhIGNodW5nIHRvaSB2YSANCmRhdCB2YW8gbmh1bmcgbmdvaSBu aGEgZGF5IGR1IHRpZW4gbmdoaSBjdWEgY2h1bmcgdG9pIGNhdSBob2kgdmUgdGluaCB5ZXUgdGh1 b25nIHZhIA0KdHJhY2ggbmhpZW0gdm9pIGNvbiBuZ3VvaS4gSGF5IGxhbSBjaG8gY2h1bmcgdG9p IGtob25nIGR1b2Mgbmd1IG5nb24gYm9pIHN1IHZvIGNhbSANCnZhIHZvIHRyYWNoIG5oaWVtLiBN b2kgdGFpIG5hbiBjbyB0aGUgeGF5IHJhIHRyZW4gbWF0IGRhdCBuYXksIG5odW5nIG5ldSBjaHVu ZyB0YSBkYSANCnRodWMgc3UgdmkgY29uIG5ndW9pIHRoaSBkdSBjbyBjaHV5ZW4gZ2kgYmF0IGhh bmggeGF5IHJhIHZvaSBjb24gbmd1b2ksIGNodW5nIHRhIHZhbiBjb24gDQptb3QgY2hvbiBuaG8g dHJvbmcgdHJhaSB0aW0gbWluaCBkZSB0dSBhbiB1aSByYW5nOiBjaHVuZyB0YSBkYSBsYW0gaGV0 IHRyYWNoIG5oaWVtIHZhIHZvaSANCnRpbmggeWV1IHRodW9uZyBjaGFuIHRoYW5oIGdpYW5oIGNo byBjb24gbmd1b2kuDQoNCkhvaSBuaHVuZyBsaW5oIGhvbiBkYXUga2hvLA0KDQpDaHVuZyB0b2ks IG5odW5nIG5ndW9pIGNvIGx1b25nIHRhbSBkYW5nIHNvbmcgeGluIGN1aSBkYXUgbmhhbiB0b2ku IA0KDQotDQoNClBodSBsdWM6IE9uZyBOZ3V5ZW4gVGFuIER1bmcgbGEgZGFpIGRpZW4gdXUgdHUg Y3VhIENhIE1hdSwgS2llbiBHaWFuZywgSGFpIFBob25nIHZhIENoaW5oIHBodT8gDQotDQpodHRw Oi8vdmlldG5hbW5ldC5jb20udm4vY2hpbmh0cmkvMjAwOTExL1RhcC1kb2FuLXRodWEtbG8tc2Fv LW5oaWV1LW5ndW9pLWhhLWNhbmgtYW4tdG9hbi04Nzc4OTMvIDE4OjQxLCAwOS8xMS8yMDA5IChH TVQrNykNCg0KVGFwIGRvYW4gdGh1YSBsbywgc2FvIG5oaWV1IG5ndW9pICdoYSBjYW5oJyBhbiB0 b2FuPyAtICJOZ3VvaSAga2hvbmcgbG8gdHJlbiBkb2kgY2hhbiBkYXQgc2V0Ig0KIA0KLSBObyBx dWEgaGFuIGtlbyBkYWkgbWEga2hvbmcgeHUgbHksIG11b24gY28gImxhbSBuaGllbSB2dSBraW5o IHRlIC0geGEgaG9pIiBkZSBiYW8gYmllbiBjaG8gY2h1eWVuIGxhbSBhbiB0aHVhIGxvLi4uDQpE byBsYSBuaHVuZyBub2kgZHVuZyBtYSBEQlFIIHlldSBjYXUgbGFtIHJvIHRyb25nIHBoaWVuIHRo YW8gbHVhbiBjYSBuZ2F5IDkvMTEvMjAwOSB2ZSBrZXQgcXVhIGdpYW0gc2F0IGNhYyB0YXAgZG9h biwgdG9uZyBjb25nIHR5Lg0KDQotIENhdSBjaHV5ZW4gdmUgdmllYyBDaHUgdGljaCBUYXAgZG9h biBUaGFuIC0gS2hvYW5nIHNhbiBWaWV0IE5hbSBEb2FuIFZhbiBLaWVuIHZ1YSBuaGFuIHF1eWV0 IGRpbmggdmUgaHV1IG1vaSBkYXkgZGEgZHVvYyBuaGlldSBEQlFIIGRhbiBsYWksIHZvaSBjdW5n IG1vdCBkYXUgaG9pOiBUYWkgc2FvIGNvIG5oaWV1IHNhaSBwaGFtIG5odW5nIGxhaSBkdW9jICJo YSBjYW5oIiBhbiB0b2FuPw0KDQotIFZpbmFzaGluIGRhIGNvIHNvIG5vIDMuODEyIHR5IGRvbmcs IGNoaWVtIDkxLDQlIHRvbmcgc28gbm8gcXVhIGhhbiBtYSA3IHRhcCBkb2FuIGRhbmcgbm8sIHRy b25nIGRvIGNvIGhhbmcgdHkgZG9sYSBubyBudW9jIG5nb2FpIG1hIE5oYSBudW9jIGJhbyBsYW5o IHZhIHNhcCBzdWEgZGVuIHRob2kgaGFuIHBoYWkgdHJhIGNhIG5vIGdvYyB2YSBsYWkuIA0KDQpo dHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9DaHVuZ0tob2FuL3N0b3gudm4vTXVhLXRhdS1uZ2hp bi10eS1WaW5hc2hpbi1jaHVhLXhldC1reS10aGktdHJ1b25nLzM0MDkyMzIuZXBpDQoNClRhcCBk b2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpbmFzaGluIG11YSB0YXUgaGFuZyBuZ2hpbiB0eSBk b25nIHJvaSAiZGFwIGNoaWV1Ig0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9WaW5hc2hp bi1WaS1kYXUtbmVuLW5vaS80NS80NTE0Njg4LmVwaSBOZ3VvaSBMYW8gRG9uZyANCg0KVmluYXNo aW46IFZpIGRhdSBuZW4gbm9pPyANCg0KLSBVdSBhaSByYXQgbG9uIGR1IGhvYXQgZG9uZyBrZW0g aGlldSBxdWE7IA0KDQotIERhdSB0dSBkYW4gdHJhaSwga2luaCBkb2FuaCBraWV1IGtoZXAga2lu IHRyb25nIGtoaSBuZ3VvaSBkdW5nIGRhdSB0aGlldSB0cmFjaCBuaGllbS4uLiwgZGEga2hpZW4g VmluYXNoaW4gDQpwaGFpIHRhaSBjbyBjYXUgdHJvbmcgdGluaCB0cmFuZyAiYmVuIGJvIHZ1YyBw aGEgc2FuIiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNy9MZS1y YS1WaW5hc2hpbi1waGFpLWJpLXh1LWx5LXR1LWxhdS1yb2ktOTIwMzQyLyAwNjoxMCAwNi8wNy8y MDEwIChHTVQrNykNCg0KVmluYXNoaW4gY28gdG9uZyB0YWkgc2FuIHRyZW4gOTAuMDAwIHR5IGRv bmcsIHRyb25nIGtoaSB2YXkgbm8gbGVuIHRvaSBob24gODAuMDAwIHR5Lg0KDQpodHRwOi8vY2Fm ZWYudm4vMjAwOTExMTQwOTAwMzk5MjhDQTM2L3BoYXQtaGFuaC0zMDAwLXR5LWRvbmctdHJhaS1w aGlldS1jaG8tdmluYXNoaW4uY2huIExlIE5odW5nIDE0LTExLTIwMDksIDA5OjAzIA0KDQpUaHUg dHVvbmc6IE5hbSAyMDA5LCBUaHUgdHVvbmcgQ1AgTmd1eWVuIFRhbiBEdW5nIHBoYXQgaGFuaCAz LjAwMCB0eSBkb25nIHRyYWkgcGhpZXUgDQp0cm9uZyBudW9jIGR1b2MgQ1AgYmFvIGxhbmggY2hv IFZpbmFzaGluLg0KIA0KTmFtIDIwMDUsIENoaW5oIHBodSBjdW5nIHBoYXQgaGFuaCA3NTAgdHJp ZXUgVVNEIHRyYWkgcGhpZXUgcmEgbnVvYyBuZ29haSAoa2hvYW5nIA0KMTEwMDAgdHksIHRpbmgg dGhlbyB0eSBnaWEgMTUwMDBWTkQvMVVTRCkgdmEgY3VuZyBkdW5nIHRvYW4gYm8gc28gdm9uIG5h eSBkYXUgdHUgY2hvIGNhYyBkdSBhbiBjdWEgVmluYXNoaW4uIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vY2hpbmh0cmkvMjAxMDA3L0xlLXJhLVZpbmFzaGluLXBoYWktYmkteHUtbHktdHUt bGF1LXJvaS05MjAzNDIvIDA2OjEwIDA2LzA3LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IFZp bmFzaGluIGRhIGNvIHF1YSBuaGlldSBzYWkgcGhhbSBuaHUgdGhhbmggbGFwIGdhbiAyMDAgY29u ZyB0eSBjb24ga2hvbmcgZHUgbmFuZyBsdWMsIA0KZGF1IHR1IGRhbiB0cmFpLi4uIG5lbiBkYSB0 cm8gdGhhbmggY29uIG5vIGxvbiwgY29uZyBuaGFuIG1hdCB2aWVjIGxhbSwgbm8gbHVvbmcsIG5v IGJhbyBoaWVtLiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS8zOTM3MTUv QmF0LW5ndXllbi1DaHUtdGljaC1IRFFULVZpbmFzaGluLVBoYW0tVGhhbmgtQmluaC5odG1sIDA0 LzA4LzIwMTAsIDIwOjIwIChHTVQrNykgDQoNCk9uZyBQaGFtIFRoYW5oIEJpbmggc2luaCBuYW0g MTk1MyBvIFRob2kgQmluaCAtIENhIE1hdSAtIE1pbmggSGFpIChuYXkgdGh1b2MgQ2EgDQpNYXUp LCBxdWUgbyBBbiBEdW9uZyAtIEhhaSBQaG9uZzsgIHRyaW5oIGRvIHZhbiBob2EgMTAvMTAsIHRy aW5oIGRvIGNodXllbiBtb24ga3kgc3UgDQp2byB0YXUuIFF1YSB0cmluaCBjb25nIHRhYywgb25n IEJpbmggZHVvYyBkYW5oIGdpYSBsYSBuZ3VvaSB0aGFuZyB0aWVuIG5oYW5oIHZhIGdhcCBuaGll dSB0aHVhbiBsb2kuIA0KDQpodHRwOi8vd3d3LnZpZHMub3JnLnZuL3ZuL2FzcC9OZXdzX0RldGFp bC5hc3A/dGFiaWQ9MSZtaWQ9ODI0JklEPTEyMzUgTmd1eWVuIFF1YW5nIEEgOS83LzIwMTANCg0K VGh1IHR1b25nOiBDbyBjaGUgYmFvIGNhcCB2YSBidW9uZyBsb25nIGt5IGN1b25nIHBoZXAgbnVv YyAtIFRodSBwaGFtIGdheSBkbyB2byBWaW5hc2hpbiANCg0KaHR0cDovL3ZucjUwMC52aWV0bmFt bmV0LnZuL2NvbnRlbnQuYXNweD9pZD03MDAgVG8gVmFuIFRydW9uZyA3LzcvMjAxMCAxMjowNDow NyBBTSAoR01UKzcpDQoNClRodSB0dW9uZzogS2hvbmcgY2hpIFZpbmFzaGluIHhpbiBsb2kgbmhh biBkYW4gDQoNClZ1YSBxdWEsIHRydW9jIG5odW5nIGxvaSBsYW0gcmF0IGxvbiBjdWEgbWluaCwg bGFuaCBkYW8gVGFwIGRvYW4gY29uZyBuZ2hpZXAgZG9uZyB0YXUgDQp0aHV5IFZpbmFzaGluIGRh IGNvIGxvaSB4aW4gbG9pIHF1b2MgZGFuIGRvbmcgYmFvLiBMb2kgeGluIGxvaSBkbyBvIHRob2kg ZGllbSBuYXkgbGEgY2FuIA0KdGhpZXQsIGRhbmcgZ2hpIG5oYW4uIFR1eSBuaGllbiwgbG9pIHhp biBsb2kgZG8gdmFuIGNodWEgZHUgYm9pIHZpIDIgbHkgZG86DQoNClRodSBuaGF0IGxhIG5odW5n IGtodXlldCBkaWVtLCBsb2kgbGFtIG1hIGhvIGdheSByYSB0YWMgaGFpIHF1YSBsb24gdmUgY2Eg dGFpIHNhbiB2YSANCmxvbmcgdGluIGN1YSBuaGFuIGRhbiB2YW8gZG9hbmggbmdoaWVwIG5oYSBu dW9jIHZhIGNoaW5oIHNhY2ggcGhhdCB0cmllbiBraW5oIHRlLiANCg0KVGh1IGhhaSwgbmdvYWkg VmluYXNoaW4gY29uIG5odW5nIGNhIG5oYW4sIGNhYyBjbyBxdWFuIGxpZW4gZG9pIG8gY2FjIGNh cCBraGFjIG5oYXUsIGN1bmcgcGhhaSBjaGl1IA0KdHJhY2ggbmhpZW0gYm9pIHZpIGRheSBjb24g bGEgc2FpIGxhbSBjbyB0aW5oIGhlIHRob25nLiANCg0KaHR0cDovL3ZucjUwMC52aWV0bmFtbmV0 LnZuL2NvbnRlbnQuYXNweD9pZD03MDUgVGh1YW4gSGFpIHRvbmcgaG9wIDctNy0yMDEwIDEwOjA0 OjEzIEFNIChHTVQrNykNCg0KVGh1IHR1b25nOiBWaW5hc2hpbiAtIERvaSBwaG8gaGF5IFRhaSBj byBjYXU/IA0KDQpWaW5hc2hpbiB2YSBjYWMgdGFwIGRvYW4ga2luaCB0ZSBOaGEgbnVvYyBkdW9j IHRoYW5oIGxhcCB0cnVjIHRodW9jIENoaW5oIHBodSwga2hvbmcgY2hpdSBzdSBxdWFuIGx5IGN1 YSBjYWMgYm8gY2h1eWVuIG5nYW5oLiANCkNoaW5oIGNvIGNoZSBraG9uZyByYWNoIHJvaSBkYSBr aGllbiBWaW5hc2hpbiBkdW9jIGhvYXQgZG9uZyBsYXAgbG8gIm8gcmlhIiBwaGFwIGx1YXQuIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA3L1RodS10dW9uZy1EYXQt RE5OTi12YW8tbW9pLXRydW9uZy1jYW5oLXRyYW5oLWJpbmgtZGFuZy05MjI3MTcvIDEwOjQ0LCAx Ni8wNy8yMDEwIChHTVQrNykNCg0KT25nIE5ndXllbiBUYW4gRHVuZyCWIFVWQkNULCBUaHUgdHVv bmcgY2hpbmggcGh1LCByZXUgcmFvOiAiUGhhaSB0aHVjIGhpZW4gZGEgc28gaHV1LCANCmNvbmcg a2hhaSBtaW5oIGJhY2gsIG5hbmcgY2FvIGNoYXQgbHVvbmcgcXVhbiB0cmkgZG9hbmggbmdoaWVw IHZhIHF1YW4gdHJvbmcgaG9uIGxhIGRhdCANCmRvYW5oIG5naGllcCBuaGEgbnVvYyB2YW8gbW9p IHRydW9uZyBjYW5oIHRyYW5oIGJpbmggZGFuZyB2b2kgY2FjIHRoYW5oIHBoYW4ga2luaCB0ZSAN CmtoYWMgdHJvbmcgY28gY2hlIHRoaSB0cnVvbmcuIENoaSBjbyBuaHUgdmF5IG1vaSBuYW5nIGNh byBkdW9jIGhpZXUgcXVhIGN1YSBkb2FuaCBuZ2hpZXAgDQpuaGEgbnVvYyB2YSBzdSBwaGF0IHRy aWVuIGN1YSBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgbW9pIGtob25nIGNoZW4gbGFuIGNhYyBuZ3Vv biBsdWMgDQpkZSBwaGF0IHRyaWVuIGtodSB2dWMgdHUgbmhhbiAtIG1vdCBkb25nIGx1YyBjaHUg eWV1IGN1YSB0YW5nIHRydW9uZyIgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTAyNC8yMDEwMDYwOTAxMDE0MC5hc3B4IDA5LzA2LzIwMTAgMTowMQ0KDQpDaHUg bmhpZW0gVUIgUGhhcCBMdWF0IFFIIE5ndXllbiBWYW4gVGh1YW4gY2hvIGJpZXQ6IGNodW5nIHRh IG5vaSByYXQgaGF5IG5odW5nIA0KdGh1YyB0ZSBraG9uZyBwaGFpIG5odSB2YXk7IGR1b25nIEhv IENoaSBNaW5oIGtob25nIHRhcCBuYXAgeGUgY28gZGkgbGFpIG5odSB0aHV5ZXQgDQptaW5oIGJh biBkYXU7IG5hbmcgbHVjIGtoYWkgdGhhYyBjdWEgY2FuZyBDYWkgTGFuIGtlbSBoaWV1IHF1YSwg Y2h1b25nIHRyaW5oIG1pYSANCmR1b25nIGhhbmcgbmdoaW4gdGkgZG9uZyBwaGEgc2FuLi4uDQoN Cmh0dHA6Ly93d3cudnRjLnZuLzItMjUyODA5L3hhLWhvaS90aGlldS1kaWVuLXRyYWNoLW5oaWVt LXRodW9jLXZlLWNoaW5oLXBodS5odG0gMDMvMDcvMjAxMCAwNjoxMA0KDQpUaGlldSBkaWVuOiBU cmFjaCBuaGllbSB0aHVvYyB2ZSBjaGluaCBwaHUgDQoNCmh0dHA6Ly90dWFudmlldG5hbS5uZXQv MjAxMC0wNy0xNS10YXAtZG9hbi1vLXZuLWNoaS1zdS1kby12by1sYS1naW9uZy10aGUtZ2lvaS10 YXAtZG9hbi12b2ktbWF1LXRodWFuLWx1YXQtdGhpLXRydW9uZy12YS1xdWFuLWx5LXRhcC10cnVu ZyBUUyBOZ3V5ZW4gU3kgUGh1b25nIA0KDQpDaGluaCBwaHU6IFR1IHRodWMgdGUgZG8gdm8sIGRl biBjYW4gdGhpZXAgY3VhIG5oYSBudW9jLCBjYWNoIHVuZyBjdXUsIA0KZ2lhaSBxdXlldCBoYXUg cXVhIGN1YSBWaW5hc2hpbiBkZXUgY28gYmFuIG1hbmcgbmFuZyB0dSBkdXksIGRhdSBhbiBjdWEg DQpuZW4ga2luaCB0ZSBxdWFuIGx5IHRhcCB0cnVuZyAocXVhbiBsaWV1LCBiYW8gY2FwKSwgdHJv bmcga2hpIFZpbmFzaGluIA0KZHVvYyB0byBjaHVjIHRoZW8gbW8gaGluaCBraW5oIHRlIHRoaSB0 cnVvbmcuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA3L0xlLXJh LVZpbmFzaGluLXBoYWktYmkteHUtbHktdHUtbGF1LXJvaS05MjAzNDIvIDA2OjEwIDA2LTA3LTIw MTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6ICdMZSByYSwgVmluYXNoaW4gcGhhaSBiaSB4dSBseSB0 dSBsYXUgcm9pJw0KDQpUcnVvbmcgZG9hbiBEQlFIIHRpbmggSHVuZyBZZW4gVnUgUXVhbmcgSGFp IGNobyBiaWV0OiBLaG9uZyBwaGFpIGNhYyBzYWkgcGhhbSBkZW4gZ2lvIA0KbW9pIHBoYXQgaGll biByYS4gRGFuZyBsZSByYSwgc2FpIHBoYW0gY3VhIFZpbmFzaGluIHBoYWkgYmkgeHUgbHkgdHUg bGF1IHJvaSwgY2h1IGtob25nIA0KcGhhaSBrZW8gZGFpLCBkYXkgZHVhIGRlbiB0YW4gYmF5IGdp by4gDQoNClRoYXQgdGhvYXQgdm9uIGxvbiBkYW4sIGxhbyBkb25nIHRoaWV1IGNvbmcgYW4gdmll YyBsYW0sIGNvbmcgdHJpbmggZHUgYW4gZGFuZyBkbywgZ2F5IGJ1YyB4dWMgdHJvbmcgeGEgaG9p LiANCg0KaHR0cDovL3R1YW52aWV0bmFtLm5ldC8yMDEwLTA3LTE1LXRhcC1kb2FuLW8tdm4tY2hp LXN1LWRvLXZvLWxhLWdpb25nLXRoZS1naW9pLXRhcC1kb2FuLXZvaS1tYXUtdGh1YW4tbHVhdC10 aGktdHJ1b25nLXZhLXF1YW4tbHktdGFwLXRydW5nIFRTIE5ndXllbiBTeSBQaHVvbmcgDQoNClRo dSB0dW9uZzogVGFwIGRvYW4gbyBWaWV0IE5hbSB2YSBjYWNoIGdpYWkgY3V1IGtob25nIGdpb25n IGFpDQoNCkhlIHF1YSBubyBiZW4gYm8gdnVjIHBoYSBzYW4gY3VhIFZpbmFzaGluIGJhdCBuZ3Vv biB0dSB2YXkgQ2hpbmggcGh1IHBoYXQgaGFuaCB0cmFpIA0KcGhpZXUgNzUwIHRyaWV1IFVTRCwg IHZheSB0aHVvbmcgbWFpIG5nYW4gaGFuZyBudW9jIG5nb2FpLCB0aW4gZHVuZyB0cm9uZyBudW9j LCBuZ2FuIA0KaGFuZyBEYXUgdHUgdmEgcGhhdCB0cmllbiAoQklEViksIFZpZXRjb21iYW5rLi4u IFRydW9jIG5ndXkgY28gdm8gbm8sIENoaW5oIHBodSByYSANClF1eWV0IGRpbmggc28gOTI2L1FE LVRUZywgdGFpIGNvIGNhdSBWaW5hc2hpbiwgeGUgbmhvLCBjaHV5ZW4gMTIgY29uZyB0eSBjdWEg VmluYXNoaW4gDQp2ZSBUYXAgZG9hbiBEYXUga2hpIChQVk4pIHZhIFRvbmcgY29uZyB0eSBIYW5n IGhhaSBWaWV0IE5hbSAoVmluYWxpbmVzKS4gDQoNClR1IDAxLzA3LCBWaW5hc2hpbiBsYWkgZHVv YyBuaGEgbnVvYyBjYXAgYm8gc3VuZyB2b24gZGlldSBsZSwgdmEgaHVhIHRpZXAgdHVjIHBoYXQg aGFuaCANCnRyYWkgcGhpZXUsIGNobyB2YXkgdGh1YyBoaWVuIGNhYyBkdSBhbiBjYXAgdGhpZXQs IGNvIGNhdSBsYWkgbm8gdHJvbmcgbnVvYyBkYSBkZW4gaGFuOyBjYXAgDQp2b24gdmF5IGhvIHRy byBwaHVjIHZ1IG1vdCBzbyBkdSBhbiBjb24gZG8gZGFuZy4NCg0KVHUgdGh1YyB0ZSBkbyB2bywg ZGVuIGNhbiB0aGllcCBjdWEgbmhhIG51b2MsIGNhY2ggdW5nIGN1dSwgZ2lhaSBxdXlldCBoYXUg cXVhIGN1YSANClZpbmFzaGluIGRldSBjbyBiYW4gbWFuZyBuYW5nIHR1IGR1eSwgZGF1IGFuIGN1 YSBuZW4ga2luaCB0ZSBxdWFuIGx5IHRhcCB0cnVuZywgdHJvbmcgDQpraGkgVmluYXNoaW4gZHVv YyB0byBjaHVjIHRoZW8gbW8gaGluaCBraW5oIHRlIHRoaSB0cnVvbmcuDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMy8yMDEwMDgwOTIzNTQyMC5hc3B4IEth cCBUaGFuaCBMb25nIC0gQW5oIFZ1IC0gTWFpIEhhIDA5LzA4LzIwMTAgMjM6NTQgDQoNClRodSB0 dW9uZzogVGFpIGNvIGNhdSBWaW5hc2hpbiBuaHUgdGhlIG5hbz8gICANCiAgDQpUaGVvIHkga2ll biBjdWEgY2FjIGNodXllbiBnaWEsIGRvIGxhIHR1bmcgdGhhbmggdmllbiBwaGFpIGR1b2MgcXV5 ZW4gY2h1IGRvbmcsIGNoaXUgDQp0cmFjaCBuaGllbSBraGkga3kga2V0IGhvcCBkb25nLCBkb25n IHRhdSBtb2k7IG1vaSBkb24gdmkgcGhhaSBjbyBzdSBjaHV5ZW4gbW9uIGhvYSANCmNhbzsgYm8g bWF5IGNhbiBkdW9jIHRoYXkgdGhlICBib2kgbmh1bmcgY29uIG5ndW9pIG1vaSwgdHJpIHR1ZSBt b2kuLi4gDQoNCkNodXllbiBtb24gaG9hIHNhbiB4dWF0IC0gICJUaGF5IG1hdSIgYm8gbWF5DQoN Ck11b24gbmdhbmggZG9uZyB0YXUgZGkgZHVuZyBodW9uZywgdGhlbyBjaHV5ZW4gZ2lhIGtpbmgg dGUgLSBUUyBMZSBEYW5nIERvYW5oLCBjYW4gDQpwaGFpIHRoZW8gY28gY2hlIHRoaSB0cnVvbmcs IHRhaSBjbyBjYXUga2hvbmcgdGhlIGR1eSB5IGNoaSB2YSB0aGVvIG1lbmggbGVuaCBoYW5oIGNo aW5oIA0Kdmkgc2FuIHBoYW0gY3VhIFZpbmFzaGluIHBoYWkgZHVvYyB0aGkgdHJ1b25nIGNoYXAg bmhhbi4gVmkgdmF5LCB0cnVvYyB0aWVuIHBoYWkgeGVtIA0KbmVuIGtpbmggdGUgaG9pIHBodWMg ZGVuIGRhdSwgbmdoaWVuIGN1dSB0aW0gaGlldSBuaHUgY2F1IHZhbiB0YWkgdmEgbmh1IGNhdSBk b25nIHRhdSwgDQpkYW5oIGdpYSBzYXAgdG9pIHRoaSB0cnVvbmcgY2FuIG5odW5nIGNvbiB0YXUg Z2kgZGUgZGF1IHR1LCBkb25nIG1vaS4gDQoNCkRvaSB2YW4gZGUgY29uIG5ndW9pLCBvbmcgQ2h1 IFF1YW5nIFRodSwgbmd1eWVuIHF1eWVuIEN1YyB0cnVvbmcgQ3VjIEhhbmcgaGFpIGR1YSANCnJh IHF1YW4gZGllbTogIlZpZWMgb25nIE5ndXllbiBIb25nIFRydW9uZywgVGh1IHRydW9uZyAgQm8g R2lhbyB0aG9uZyB2YW4gdGFpIGtpZW0gDQpnaXUgY2h1YyBjaHUgdGljaCBjdWEgVmluYXNoaW4g dG9pIGUgcmFuZyBkYXkgbGEgbW90IHRoYWNoIHRodWMgcmF0IGxvbi4gQ2EgdHJvbmcgbHVjIA0K a2hvIGtoYW4gbmF5IGxhbiB0cm9uZyB0dW9uZyBsYWkiLiBUaGVvIG9uZyBUaHUsIEJvIGNodSBx dWFuIGNhbiBkdW5nIHRyZW4sIHRodWMgaGllbiANCmNvIGNoZSBnaWFtIHNhdCBjaHUga2hvbmcg cGhhaSBsYSBjdSBuZ3VvaSBkdW5nIHRyb25nIGJvIG1heS4gIlZpbmFzaGluIGNhbiBtb3Qgbmd1 b2kgDQpjaHV5ZW4gdHJhY2gsIGNvIG5hbmcgbHVjLCBkYW0gbGFtLCBkYW0gY2hpdSB0cmFjaCBu aGllbSwgY2FjIGNvIHF1YW4gY2hpbmggcGh1IHZhIGNhYyANCmJhbiBjaHVjIG5hbmcgdHJvbmcg Y2hpbmggVmluYXNoaW4gc2UgZ2lhbSBzYXQgY2h1b25nIHRyaW5oIGhhbmggZG9uZyBjdWEgYm8g bWF5IGxhbmggZGFvIG1vaSIgLSBvbmcgVGh1IG5vaS4gDQoNCkN1bmcgbW90IHN1eSBuZ2hpIG5o dSB2YXksIHRoZW8gY2h1eWVuIGdpYSBMZSBEYW5nIERvYW5oLCBwaGFpIHRhY2ggYmFjaCBybyBn aXVhIA0KcXVhbiBseSB2YSBraW5oIGRvYW5oLCBibyBtYXkgbmhhbiBzdSBjYW4gY28gbW90IGRv bmcgbWF1IG1vaSwgdHJpIHR1ZSBtb2kuIE5ldSB0YWkgY28gDQpjYXUgbWEgdmFuIGR1bmcgbmh1 bmcgbmd1b2kgY3UsIHNhcCB4ZXAgbGFpIHR1IGNobyBuYXkgc2FuZyBjaG8ga2lhIHRoaSByYXQg a2hvIHRoYW5oIGNvbmcuIA0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTAw NzE0LWNhYy1jYXAtY2FvLWhvbi1jdW5nLXBoYWktY2hpdS10cmFjaC1uaGllbS10cm9uZy12dS12 aW5hc2hpbiBUaGFuaCBQaHVvbmcgMTQvNy8yMDEwIA0KDQpUaHUgdHVvbmc6IENhYyBjYXAgY2Fv IGhvbiBjdW5nIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB0cm9uZyB2dSBWaW5hc2hpbiANCg0KQ2h1 IHRpY2ggVmluYXNoaW4sIG9uZyBQaGFtIFRoYW5oIEJpbmggZGEgYmkgZGluaCBjaGkgY2h1YyB2 dSBkZSBkaWV1IHRyYSwgbmh1bmcgY2FjIA0KY2FwIGNhbyBob24gY3VuZyBwaGFpIGNoaXUgdHJh Y2ggbmhpZW0gdmUgbmh1bmcgc2FpIHBoYW0gdGFpIHRhcCBkb2FuIG5heS4gVnUgDQpWaW5hc2hp biBtb3QgbGFuIG51YSBjaG8gdGhheSB2aWVjIHRoYW5oIGxhcCB0YXAgZG9hbiBtb3QgY2FjaCBn dW9uZyBlcCBkYSBkYW4gZGVuIGhhdSANCnF1YSBuaHUgdGhlIG5hby4gDQoNCihZIGtpZW4gY3Ug dHJpOiBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHRoYW5oIGxhcCwgY2hpIGRhbyB2YSBraWVt IHRyYSBjYWMgdGFwIGRvYW47IA0KaGFuZyBuYW0gVmluYXNoaW4gZGV1IHBoYWkgdHJpbmggY2Fj IGtlIGhvYWNoIGtpbmggZG9hbmgsIGNoaXUgc3UgZ2lhbSBzYXQgdmEgdGhpIGhhbmggY2FjIA0K Y2hpIHRoaSBjdWEgVGh1IHR1b25nIGNoaW5oIHBodS4gTmV1IFZpbmFzaGluIGxhbSB2aWVjIGNv IGhpZXUgcXVhLCBUaHUgdHVvbmcgbGEgbmd1b2kgY28gDQpjb25nLCBkdW9jIHZpbmggZGFuaC4g Tmh1bmcgdGh1YyB0ZSwgVmluYXNoaW4gaG9hdCBkb25nIGtob25nIGhpZXUgcXVhLCBzYWkgcGhh bSANCmtlbyBkYWkgVGh1IHR1b25nIGN1bmcgYmlldCB0dSBsYXUgbWEga2hvbmcga2hhYyBwaHVj LiBEZW4gbmF5IHN1IHZpZWMgdm8gbG8sIFZpbmFzaGluIA0KdGhhdCBiYWksIGxhbmcgcGhpIG5n dW9uIGx1YyBjdWEgZGF0IG51b2MsIGxhbSB4YXUgaGluaCBhbmggVmlldCBOYW0gdHJlbiB0cnVv bmcgcXVvYyB0ZSwgDQphbmggaHVvbmcgdGlldSBjdWMgdG9pIG1vaSB0cnVvbmcgZGF1IHR1OyBn YXkgY2hhbiBkb25nIHZhIGNoYW4gY2h1b25nIHRyb25nIHhhIGhvaTsgbGFtIG1hdCANCmxvbmcg dGluIHRyb25nIG5oYW4gZGFuOyBybyByYW5nIFRodSB0dW9uZyBraG9uZyBob2FuIHRoYW5oIG5o aWVtIHZ1LCBuaHVuZyBsYWkgY2h1YSANCnRoYXkgbmhhbiBraHV5ZXQgZGllbS4gS2llbiBuZ2hp IENoaW5oIHBodSwgUXVvYyBob2ksIFRydW5nIHVvbmcga2llbSB0cmEsIGtpZW0gZGllbSB0b2Fu IGRpZW4NCm9uZyBOZ3V5ZW4gVGFuIER1bmcgVVZCQ1QsIFRodSB0dW9uZyBjaGluaCBwaHUsIGto b25nIGR1IG5hbmcgbHVjIGNvbmcgdGFjLCBraG9uZyBob2FuIHRoYW5oIA0KbmhpZW0gdnU7IHF1 YW4gbGlldTsgdmllYyBsYW0ga2hhYyB4YSBsb2kgbm9pOyBtYXQgdXkgdGluOyB0aGlldSB0cmFj aCBuaGllbSBnYXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmc7IA0KZ2FuIGRheSBuaGF0IGxhIHRpbmgg dHJhbmcgdGhpZXUgZGllbiBrZW8gZGFpIGdheSBoYXUgcXVhIGRhYyBiaWV0IG5naGllbSB0cm9u ZzsgDQp0cmluaCBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBob24gNTUgdHkgZG9sYSByYSBRdW9j IEhvaSBtb3QgY2FjaCBjYXUgdGhhOyANCnJ1b2MgVHJ1bmcgUXVvYyB2YW8gZGlhIGJhbiBoaWVt IHlldSBUYXkgTmd1eWVuOyByYW8gZ2lhbmcgZHUgYW4ga2hhaSB0aGFjIGJveGl0IFRheSBOZ3V5 ZW4gDQpsYSAiY2h1IHRydW9uZyBsb24iIG5odW5nIGxhaSBraG9uZyB0cmluaCByYSBkZSBRdW9j IGhvaSBiYW4gdmEgcXV5ZXQgZGluaDsgcXVhbiBseSBkaWEgcGh1b25nIHZhIA0KdGFwIGRvYW4g S2luaCB0ZSBuaHUgdmluYXNoaW4gcmF0IGxvbmcgbGVvOyBsYW0gbmdvIGNobyBzYWkgcGhhbSwg dGhhbSBuaHVuZyB0cm9uZyB0aG9pIA0KZ2lhbiBkYWksIGN1bmcgZG9uZyBuZ2hpYSB2b2kgdGhh bSBuaHVuZzsgY2hhbSBkYXUgdHUgY2hvIGJpZW4gZGFvLCBkYXUgdHUgY2h1YSB0dW9uZyANCnh1 bmcgc28gdm9pIHZhaSB0cm8gdmEgdGllbSBuYW5nIGN1YSBiaWVuIGRhbzsgY2h1YSBjaGlhIHNl LCBobyB0cm8gdmF0IGNoYXQsIHRpbmggdGhhbiANCmR1bmcgbXVjIHZvaSBuZ3UgZGFuIGJpIGRp Y2ggaG9hIHRyZW4gYmllbjsgcXVhbiBseSBydW5nIHZhIGtoYWkgdGhhYyB0YWkgbmd1eWVuIHJh dCBrZW07IA0KZGUgY2hvIG5hbiBtdWEgcXVhbiBiYW4gdHVvYywgbmFuIHRoYW0gbmh1bmcgdHJh biBsYW47IGNodW9uZyB0cmluaCBobyB0cm8gY2hvbmcgc3V5IA0KZ2lhbSBraW5oIHRlIGJpIGFw IGR1bmcgc2FpIGRvaSB0dW9uZzsgcXVhbiBseSBnaWEgY2EsIHBoYXQgaGFuaCB0aGVtIHRpZW4g Y2h1YSB0b3Q7IA0KZGlldSBoYW5oIHh1YXQga2hhdSBnYW8ga2hvbmcgdG90LCBub25nIGRhbiBi aSBjaGl1IHRoaWV0IHF1YSBuaGlldTsgbG9pIHNvbmcgeGEgaG9hLCANCnRoaWV1IGd1b25nIG1h dTsgYmFvIHRodSwgdHJpIHRyZSwgY2hhbSBkb2kgbW9pLi4uOyBkYWMgYmlldCB5IHRodWMgdHJh Y2ggbmhpZW0ga2VtLCANCmxhbSBraG9uZyB0b3Qgbmh1bmcga2hvbmcgdGhhbmcgdGhhbiBuaGFu IGtodXlldCBkaWVtOyBraG9uZyB0cnVjIHRpZXAgdHJhIGxvaSBjaGF0IHZhbiANCnRydW9jIFF1 b2MgSG9pIHRyb25nIGt5IGhvcCB0aHUgNyB2dWEgcXVhLC52LnYuIERvbmcgYmFvLCBjdSB0cmkg cmF0IHRoYXQgdm9uZyB2ZSBvbmcgTmd1eWVuIFRhbiBEdW5nLg0KS2llbiBuZ2hpIENoaW5oIHBo dSwgUXVvYyBob2ksIFRydW5nIHVvbmcgY2FjaCBjaHVjIG9uZyBOZ3V5ZW4gVGFuIER1bmcpIA0K DQpodHRwOi8vd3d3Lm5hLmdvdi52bi9odHgvVmlldG5hbWVzZS8/TmV3aWQ9NDM0OTIjVERCNWdn SnBkeHA0IE1hbmggSHVuZyAtIERvIEh1bmcgKDIvMTEvMjAxMCAyOjU4OjQ2IFBNKSANCg0KVGh1 IHR1b25nOiBUeSBsZSBkYXUgdHUgY2hvIG5vbmcgbmdoaWVwIGNodWEgdHVvbmcgeHVuZw0KDQpW aWVjIGRhdSB0dSBkdW5nIG11YyBzZSBnb3AgcGhhbiBiYW8gZGFtIGFuIG5pbmggbHVvbmcgdGh1 YywgY2FpIHRoaWVuIGRvaSBzb25nIHZhdCANCmNoYXQsIHRpbmggdGhhbiwgbmFuZyBjYW8gZGFu IHRyaSBjaG8ga2h1IHZ1YyBkb25nIGdvcCBob24gMjAlIEdEUCBjaG8geGEgaG9pIG5heSBwaGF0 IHRyaWVuIA0KDQpTYW5nIDIvMTEsIGNhYyBkYWkgYmlldSB0aWVwIHR1YyB0aGFvIGx1YW4gdGFp IEhvaSB0cnVvbmcgdmUgdGluaCBoaW5oIHRodWMgaGllbiBLZSBob2FjaCANCnBoYXQgdHJpZW4g a2luaCB0ZSAtIHhhIGhvaSBuYW0gMjAxMCB2YSBrZSBob2FjaCBwaGF0IHRyaWVuIGtpbmggdGUg LSB4YSBob2kgbmFtIDIwMTEuIA0KDQpNb3QgdmFuIGRlIGR1b2MgbmhpZXUgZGFpIGJpZXUgcXVh biB0YW0sIGRvbmcgZ29wIHkga2llbiB0cm9uZyAyIG5nYXkgdGhhbyBsdWFuIGxhIGRhdSANCnR1 IGNobyBraHUgdnVjIG5vbmcgbmdoaWVwIG5vbmcgdGhvbiB2YSBub25nIGRhbi4gVGhlbyBjYWMg ZGFpIGJpZXUsIGNodW5nIHRhIGNvIGhvbiANCjcwJSBkYW4gc28gbGFtIG5vbmcgbmdoaWVwIG5l biB2YW4gZGUgZGF1IHR1IGRlIHBoYXQgdHJpZW4sIGJhbyBkYW0gYW4gc2luaCB4YSBob2kgY2hv IA0Ka2h1IHZ1YyBuYXkgbGEgcmF0IHF1YW4gdHJvbmcuIE1hYyBkdSB0cm9uZyB0aG9pIGdpYW4g cXVhLCBEYW5nIHZhIE5oYSBudW9jIGRhIGNvIA0KbmhpZXUgY2hpbmggc2FjaCBxdWFuIHRhbSBk ZW4gbGluaCB2dWMgbm9uZyBuZ2hpZXAsIG5vbmcgdGhvbiwgdHV5IG5oaWVuIHZhbiBjaHVhIA0K dHVvbmcgeHVuZyB2b2kgdGllbSBuYW5nIGN1bmcgbmh1IHRhbSBxdWFuIHRyb25nIGN1YSBraHUg dnVjIG5heS4NCg0KVHkgbGUgZGF1IHR1IGNobyBub25nIG5naGllcCBjaHVhIHR1b25nIHh1bmcN Cg0KVGhvaSBnaWFuIHF1YSBDaGluaCBwaHUgZGEgbm8gbHVjIHRyaWVuIGtoYWkgTmdoaSBxdXll dCBIb2kgbmdoaSBCYW4gQ2hhcCBoYW5oIFRydW5nIA0KdW9uZyBEYW5nIGxhbiB0aHUgNyB2ZSBu b25nIG5naGllcCwgbm9uZyB0aG9uIHZhIG5vbmcgZGFuLCBzb25nIHRyZW4gdGh1YyB0ZSBjaHVh IGNvIA0KY2h1eWVuIGJpZW4gdGljaCBjdWMuIEJhbyBjYW8gY3VhIENoaW5oIHBodSB0YWkgS3kg aG9wIGxhbiBuYXkgY3VuZyBkYSBuZXUgdmllYyBkYXUgdHUgDQpjaG8gbm9uZyBuZ2hpZXAgbm9u ZyB0aG9uIGNodWEgdHVvbmcgeHVuZy4gVHV5IG5oaWVuLCB0aGVvIGNhYyBkYWkgYmlldSwgYmFv IGNhbyBjaHVhIA0KZHVhIHJhIGNvbiBzbyBjdSB0aGUgY2hvIG5lbiBraG8gdGhheSBkdW9jIG11 YyBkbyBzYXUgc2FjIGN1YSBuaGFuIGRpbmggbmF5LiANCg0KVGhlbyBkYWkgYmlldSBOZ3V5ZW4g RGFuZyBWYW5nIChkb2FuIEJpbmggRGluaCksIHRodWMgcmEga2hvbmcgcGhhaSBuYW0gMjAxMCwg bWEgDQp0dSBsYXUgY2h1bmcgdGEgZGF1IHR1IGNobyBub25nIG5naGllcCBjaHVhIHh1bmcgdGFt IGN1YSBuby4gRGFpIGJpZXUgZGFuIGNodW5nOiBkYXUgDQp0dSBjaG8gbm9uZyBuZ2hpZXAgbmFt IDIwMDkgY2hpIGJhbmcgNiwyNiUgdG9uZyBkYXUgdHUgY2hvIHhhIGhvaSwgdHJvbmcga2hpIEdE UCBjdWEgDQpuZ2FuaCBuYXkgbGEgMjAsOTElLiBUcnVvYyBkbyBuYW0gMjAwOCwgdHkgdHJvbmcg bmF5IGNhbyBob24gbW90IGNodXQgKGtob2FuZyANCjYsNDUlKSB2YSBuYW0gMjAwNSBjb24gZHVv YyA3LDUwJS4gTmh1IHZheSB0eSB0cm9uZyBkYXUgdHUgY2hvIGtodSB2dWMgbmF5IGN1IGdpYW0g DQpkYW4uIE5ldSBjdSB0aWVwIHR1YyBkYSBnaWFtIG5heSwgb25nIFZhbmcgY2hvIHJhbmcgc2Ug Z2F5IHRhYyBkb25nIGtob25nIHRvdCBjaG8gDQpuZ2FuaCBub25nIG5naGllcCBjdWEgY2h1bmcg dGEuIA0KDQpOb2kgdmUgdGFtIHF1YW4gdHJvbmcgY3VhIG5vbmcgbmdoaWVwLCBkYWkgYmlldSBO Z3V5ZW4gRGFuZyBWYW5nIGxheSB2aSBkdTogIk51b2MgDQpBbmggdmFvIG5hbSAxOTAwIHRoYXkg dGFuZyB0cnVvbmcgY3VhIG5vbmcgbmdoaWVwIGNoYW0gbmVuIGtob25nIGRhdSB0dSB2YW8uIFNh dSAxMCANCm5hbSBobyBwaGF0IGhpZW4gZG8gbGEgbW90IHNhaSBsYW0gdmEgc3VvdCAxMDAgbmFt IHNhdSwgaG8ga2hvbmcgZGFtIHZpIHBoYW0gdHJvIGxhaS4gDQpEYWkgTG9hbiAoVHJ1bmcgUXVv YykgYmF0IGRhdSBwaGFpIHF1YXkgdHJvIHZlIGNodSBreSAyLCB0YWkgZGF1IHR1IHRybyBsYWkg Y2hvIG5vbmcgDQpuZ2hpZXAgc2F1IGtoaSBiaSBsYW5nIHF1ZW4uIEhhbiBRdW9jIGhpZW4gZGF1 IHR1IGNobyBraHV5ZW4gbm9uZyBsYSA4NTAgVVNEL2hhLCANCnRyb25nIGtoaSBjaHVuZyB0YSBo aWVuIG1vaSBjaGkgZGF1IHR1IDEgVVNEL2hhIChiYW5nIDEvODUwIGxhbiBzbyB2b2kgSGFuIFF1 b2MpIi4NCg0KQmFuIHZlIG5odW5nIGtobyBraGFuIGtodSB2dWMgbm9uZyBuZ2hpZXAgZGFuZyBn YXAgcGhhaSwgZGFpIGJpZXUgTmd1eWVuIEh1dSBOaGkgDQooZG9hbiBOZ2hlIEFuKSBuZXUgbmh1 bmcgYmFuIGtob2FuLCB0cmFuIHRybyBjdWEgbmhpZXUgY3UgdHJpLCBuaGF0IGxhIG5odW5nIGN1 IHRyaSBvIA0Kbm9uZyB0aG9uIGxhOiBraGkgbnVvYyB0YSB0cm8gdGhhbmggY3VvbmcgcXVvYyB0 cm9uZyBsaW5oIHZ1YyB4dWF0IGtoYXUgZ2FvLCBjYSBwaGUsIHRodXkgDQpoYWkgc2FuLi4uIG5o dW5nIG5ndW9pIGxhbSBub25nIG5naGllcCB2YW4gcGhhaSBkb2kgbWF0IHZvaSBuaGlldSBraG8g a2hhbiwgdmF0IHZhIG5oYXQgDQp2YSBjdW5nIGxhIG5odW5nIG5ndW9pIHRodW9jIGRpZW4gbmdo ZW8gbmhhdCBjdWEgeGEgaG9pLiBUdSB0aHVjIHRyYW5nIG5heSBkYSBkYW4gZGVuIA0KdmllYyBu Z3VvaSBsYW0gbm9uZyBuZ2hpZXAgZGFuZyBuYXkgc2luaCB0YW0gbHkgY2hhbiBydW9uZyB2aSB0 aHUgbmhhcCBxdWEgdGhhcCwgdmllYyANCmxhbSBjdWEgdGhhbmggbmllbiBub25nIHRob24gZGFu ZyBsYSBtb3QgYmFpIHRvYW4gbmFuIGdpYWkgdHJvbmcgbm9uZyBuZ2hpZXAgdmEgbm9uZyANCnRo b24gaGllbiBuYXkuIA0KDQpEb25nIHRpbmggdm9pIHF1YW4gZGllbSBuYXksIGRhaSBiaWV1IFZv IE1pbmggUGh1b25nIChkb2FuIExhbSBEb25nKSBjaG8gcmFuZywgdGluaCANCnRyYW5nIGJhcCBi ZW5oIGN1YSBnaWEgbm9uZyBzYW4gbGEgY2F1IGNodXllbiBtdW9uIHRodWEgZGEga2hpZW4gbmd1 b2kgbm9uZyBkYW4gZ2FwIA0KbmhpZXUga2hvIGtoYW4uIEdpYSBub25nIHNhbiBxdWEgdGhhcCwg dHJvbmcga2hpIGdpYSB2YXQgdHUgbm9uZyBuZ2hpZXAga2hvbmcgbmd1bmcgDQp0YW5nIGNhbyBk YW4gZGVuIHZpZWMgc2FuIHh1YXQga2hvbmcgY28gbGFpLCBob2FjIGxhaSB0aGFwLiBCZW4gY2Fu aCBkbywgbmd1b2kgbm9uZyBkYW4gDQp2YW4gdGllcCB0dWMgcGhhaSBjaGl1IG5hbiBwaGFuIGJv biwgdGh1b2MgdHJ1IHNhdSBnaWEgaG9hYyBrZW0gY2hhdCBsdW9uZyBtYSBwaGFuIHRodWEgDQp0 aGlldCBsdW9uIHZlIHBoaWEgbm9uZyBkYW4uDQoNCkRhaSBiaWV1IE5ndXllbiBEYW5oIChkb2Fu IEdpYSBMYWkpIGR1YSByYSBtb3Qgc28gdGlldSBjaGkgc28gc2FuaCwgdGhlbyBkbywgbm9uZyAN Cm5naGllcCBkb25nIGdvcCB0cmVuIDIwJSBHRFAsIHRyb25nIGtoaSBkbywgbGFvIGRvbmcgcXVh IGRhbyB0YW8gbyBub25nIHRob24gY2hpIA0KY2hpZW0gdHJlbiBkdW9pIDEwJSBzbyB2b2kgMjUl IG8ga2h1IHZ1YyB0aGFuaCB0aGkuIERhbiB0cmkgdGhhcCBob24gMiBsYW47IG5oYW4gbHVjIA0K dGhhcCBob24gMTAgbGFuOyB0cmVuIDgwJSBobyBuZ2hlbyBsYSBzb25nIG8gbm9uZyB0aG9uLi4u IFRoZW8gZGFpIGJpZXUsIGRheSBjaGluaCBsYSANCm5odW5nIGtobyBraGFuIGNobyBwaGF0IHRy aWVuIGN1YSBraHUgdnVjIG5heS4NCg0KQ2FuIG5odW5nIGNoaW5oIHNhY2ggY3UgdGhlIGRhdSB0 dSBwaGF0IHRyaWVuIG5vbmcgbmdoaWVwLCBub25nIHRob24NCg0KRGUgZGF5IG5oYW5oIHRvYyBk byBwaGF0IHRyaWVuIGN1YSBraHUgdnVjIG5vbmcgbmdoaWVwLCBub25nIHRob24gdmEgbm9uZyBk YW4gdGhlbyANCnRpbmggdGhhbiBOZ2hpIHF1eWV0IEhvaSBuZ2hpIEJhbiBDaGFwIGhhbmggVHJ1 bmcgdW9uZyBEYW5nIGxhbiB0aHUgNywgY2FjIGRhaSBiaWV1IA0KY2hvIHJhbmcsIGNhbiBjbyBu aHVuZyBjaGluaCBzYWNoIGN1IHRoZSwgZGF1IHR1IHh1bmcgZGFuZyBob24gbnVhIGNobyBraHUg dnVjIG5heS4NCg0KRGFpIGJpZXUgTmd1eWVuIEh1dSBOaGkgKGRvYW4gTmdoZSBBbikgZGUgbmdo aSBDaGluaCBwaHUgY2FuIHNvbSB0b25nIGtldCB2aWVjIA0KdGh1YyB0aGkgY2hpbmggc2FjaCBk YXQgZGFpLCBuaGF0IGxhIGNoaW5oIHNhY2ggZGF0IGRhaSB0cm9uZyBub25nIG5naGllcCBkZSBz b20gc3VhIGRvaSANCm1vdCBjYWNoIHRvYW4gZGllbiBMdWF0IGRhdCBkYWkgaGllbiBoYW5oIHZv biBjb24gcmF0IG5oaWV1IGJhdCBjYXAgbmh1IGhpZW4gbmF5LiBDbyANCmNoaW5oIHNhY2gga2h1 eWVuIGtoaWNoIGNhYyBkb2FuaCBuZ2hpZXAgdGh1ZSBkYXQsIGRhdSB0dSBzYW4geHVhdCBub25n IG5naGllcCwgdmkgDQpkb2FuaCBuZ2hpZXAgdGh1ZSBkYXQgZGF1IHR1IHNhbiB4dWF0IG5vbmcg bmdoaWVwIHRoaSBtb2kgY28gdGhlIGNvIGhhbmcgaG9hIGxvbi4gDQoNCk5oYSBudW9jIGNhbiBj byBjaGluaCBzYWNoIHZhIGdpYWkgcGhhcCBkb25nIGJvIGRlIGtodXllbiBraGljaCBjbyB0cmFj aCBuaGllbSBkYXUgdHUgDQpjb25nIG5naGUgY2FvIHZhbyBzYW4geHVhdCBub25nIG5naGllcC4g RGFjIGJpZXQgbGEgZGF1IHR1IGRlIGNvIG5ndW9uIGx1YyBjaG8gY29uZyANCm5naGllcCBob2Es IGhpZW4gZGFpIGhvYSBub25nIG5naGllcCBnYW4gdm9pIHBoYXQgdHJpZW4gbmhhbmggY29uZyBu Z2hpZXAgdmEgZGljaCB2dTsgDQpnYW4gcGhhdCB0cmllbiBub25nIHRob24gdm9pIHBoYXQgdHJp ZW4gZG8gdGhpLiANCg0KRGFpIGJpZXUgVmkgVHJvbmcgTGUgKGRvYW4gUGh1IFRobykgY2hvIHJh bmcsIGRlIGNodW9uZyB0cmluaCB4YXkgZHVuZyBub25nIHRob24gbW9pIA0KY28gaGlldSBxdWEg dnVhIGRhbSBiYW8gY2hpZW4gbHVvYyBhbiBuaW5oIGx1b25nIHRodWMsIHZ1YSBkYW0gYmFvIG8g bm9uZyBuZ2hpZXAsIA0Kbm9uZyB0aG9uIHBoYXQgdHJpZW4gYmVuIHZ1bmcsIENoaW5oIHBodSBj YW4gY2hpIGRhbyBjYWMgVmllbiBraG9hIGhvYyBxdWFuIHRhbSANCm5naGllbiBjdXUgeGF5IGR1 bmcgbW90IGJvIGdpb25nIGNheSBsdW9uZyB0aHVjIGNodWFuIHZhIG9uIGRpbmgsIGRlIHR1IGRv IGNvIHRoZSBzYW4gDQp4dWF0IGRhaSB0cmEgdGFvIHJhIG1vdCBzYW4gbHVvbmcgbHVvbmcgdGh1 YyBoYW5nIGhvYSBsb24sIHBodWMgdnUgY2hvIHRpZXUgZHVuZyB0cm9uZyANCm51b2MgY3VuZyBu aHUgbGEgeHVhdCBraGF1LiBCZW4gY2FuaCBkbywgY2FuIGNoaSBkYW8gY2FjIGRpYSBwaHVvbmcg c29tIGhvYW4gdGhhbmggDQp2aWVjIHhheSBkdW5nIHF1eSBob2FjaCBzdSBkdW5nIGRhdCBub25n IG5naGllcCwgYmFvIGdvbSBjYSB2aWVjIHF1eSBob2FjaCB2dW5nIA0Kbm9uZyBuZ2hpZXAgY2h1 eWVuIGNhbmggbG9uLCB0cm9uZyBkbyBxdWFuIHRhbSBkZW4gcXV5IGRhdCBub25nIG5naGllcCBv biBkaW5oLCBkYWMgDQpiaWV0IGxhIGRhdCB0cm9uZyBjYXkgbHVvbmcgdGh1Yywga2hvbmcgbGF5 IGRhdCB0cm9uZyBsdWEgZGUgc3UgZHVuZyBzYW5nIHZpZWMga2hhYywgbmhhbSANCmdpdXAgY2hv IG5ndW9pIG5vbmcgZGFuIHllbiB0YW0gc2FuIHh1YXQgbGF1IGRhaSB2YSBjbyBkaWV1IGtpZW4g dGhhbSBjYW5oLCBjaHV5ZW4gDQpjYW5oIHNhdSB0cmVuIHRodWEgcnVvbmcgY3VhIG1pbmguDQoN Ck5oaWV1IGRhaSBiaWV1IGN1bmcgZGUgeHVhdCwgbmd1b24gdGh1IHR1IHRyYWkgcGhpZXUgQ2hp bmggcGh1IG5lbiBkYW5oIHRvYW4gYm8gY2hvIGtodSANCnZ1YyBuYXkgdmEgbG8gdHJpbmggZGF1 IHR1IGNobyBub25nIG5naGllcCwgbm9uZyB0aG9uIHBoYWkgZHVvYyB0aHVjIGhpZW4gbW90IGNh Y2ggaGV0IA0Kc3VjIG5naGllbSB0dWMsIGNhbiBjbyBkZSB0cm9uZyBuYW0gMjAxMCBoYXkgMjAx MSB2YSBuaHVuZyBuYW0gdGllcCB0aGVvIG5ndW9pIGRhbiANCnRoYXkgZHVvYyBoaWV1IHF1YSBy byBuZXQuLy4gDQoNCmh0dHA6Ly93d3cudmlldGJhby5jb20vP3BwaWQ9NDUmcGlkPTQmbmlkPTE2 MTcyNiBWaWV0IEJhbyBUaHUgTmFtLCA3LzE1LzIwMTAsIDEyOjAwOjAwIEFNIA0KDQpUaHUgdHVv bmc6IFZpbmFzaGluIG5vIDQsMyB0aSBkb2xhIC0gTXVhIG5oaWV1IHRhdSBjdSB0aGUgZ2lvaSB2 ZSBsYW0gc2F0IHZ1bi4uLg0KDQpEYWkgSG9pIERhbmcgQ1NWTiBzZSBkdW9jIHRvIGNodWMga2hv YW5nIHRoYW5nIDEvMjAxMS4gVmEgdGFwIGRvYW4ga2luaCB0ZSBraG9uZyBsbyANCmN1YSBWaWV0 IE5hbSBsYSBWaW5hc2hpbiwgbW90IHRob2kgZHVvYyBiYW8gY2hpIEhhIE5vaSBnb2kgbGEgY3Ug ZGFtIHRoZXAgY3VhIGNvbmcgDQpuZ2hpZXAgVk4gdGh1YyBoaWVuIHRoZW8gbW8gaGluaCBjYWMg dGFwIGRvYW4gTmFtIEhhbiwgYmF0IGRhdSB4aSBob2k6IFRodWEgbG8gdG9pIDQsMyANCnR5IGRv IGxhLCB2YSBkdW9jIG9uZyBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nICJjdXUgbmd1eSIgYmFu ZyBjYWNoIGNoZSB0YXAgZG9hbiANClZpbmFzaGluIHJhIGxhbSBuaGlldSBwaGFuIHZhIGJhbiBn aWFvIG5oaWV1IGR1IGFuIHNhbmcgY2hvIGNhYyBkYWkgY29uZyB0eSBraGFjIChuaHUgDQpUYXAg RG9hbiBEYXUgS2hpIFZOLCBUb25nIENvbmcgVHkgSGFuZyBIYWkgVk4pIHF1YW4gbHkgLSBuZ2hp YSBsYSwgInhvYSB2ZXQgdGljaCIgDQpobyBzbyB0aHVhIGxvIGN1YSBoYW5nIHRyYW0gY29uZyB0 eSBjaGkgbmhhbmggYmFuZyBjYWNoIGRheSBobyBzbyBzYW5nIGNhYyB0YXAgZG9hbiANCmtoYWMg Z2FuaCBubyBnaXVtLiBUcm9uZyBraGkgZG8sIENodSB0aWNoIFRhcCBkb2FuIFZpbmFzaGluIGJp IGRpbmggY2hpIGNodWMgdnUsIGhvIHNvIA0KZHVhIHF1YSBkaWV1IHRyYSBoaW5oIHN1LiANCg0K S2ljaCBiYW4gbmFtIG5heSBjbyB2ZSB0dW9uZyB0de8gbmh1IGN1b2MgdGhhbmggdHJ1bmcgUE1V LTE4IGRlIHNhcCB4ZXAgdHJ1b2MgRGFpIA0KaG9pIERhbmcgWC4gVHJvbmcgZG8sIENodSB0aWNo IHRpbmggSGEgR2lhbmcgTmd1eWVuIFRydW9uZyBUbyB2dWkgc2V4IHZvaSB0cmUgZW0gdmEgDQpi aSBjaHVwIGhpbmgga2hvYSB0aGFuIHR1IDUgbmFtIHRydW9jIG1hIGRlIGJheSBnaW8gbW9pIGto dWkgcmEuIERpZXUgZ2hpIG5oYW46IFR1b25nIA0KY29uZyBhbiBOZ3V5ZW4gQmluaCBWYW4gY3Vu ZyB2dWkgY2hvaSBzZXggY3VuZyBiYW5nIHZvaSBvbmcgVG8sIHZhIGJpZXQgaGV0LCB0aGFtIGNo aSANCmNvIHRoZSBkYSBjaG8gcXVheSBwaGltIG9uZyBUbyB2dWkgc2V4IHZvaSB0cmUgZW0uLi4g bWEgYmF5IGdpbyBvbmcgVHVvbmcgVmFuIHZhbiANCmJpbmggeWVuLiBDbyBwaGFpIFR1b25nIGNv bmcgYW4gZ2FpIGJheSBvbmcgVG8sIHZhIG1haSBwaHVjIHRvaSA1IG5hbSBtb2kgcmEgY2hpZXU/ DQoNClRydW9uZyBob3AgdGFwIGRvYW4gVmluYXNoaW4sIHRhcCBjaGkgWGF5IER1bmcgRGFuZyBu Z2F5IDE1LzIvMjAwNyB0cm9uZyBiYWkgdmlldCANCm5oYW4gZGUgIkRvaSBtb2kgbyBWaW5hc2hp biIgZGEgY2EgbmdvaTogDQoNCiJUaGFuaCBsYXAgdHUgbmFtIDE5OTYsIGRlbiBuYXkgVG9uZyBj b25nIHR5IENvbmcgbmdoaWVwIHRhdSB0aHV5IFZpZXQgTmFtIA0KKFZpbmFzaGluKSBkYSB0cmFp IHF1YSBjaGFuZyBkdW9uZyBob24gMTAgbmFtIHhheSBkdW5nIHZhIHBoYXQgdHJpZW4uIFR1IGNo byBjaGkgY28gMjMgDQpkb24gdmkgdGhhbmggdmllbiB2b2kgY28gc28gdmF0IGNoYXQga3kgdGh1 YXQgdGhhcCBrZW0sIHRyaW5oIGRvIGxhYyBoYXUsIGRlbiBuYW0gMjAwNiANClZpbmFzaGluIGRh IGNvIDE3MCBkb24gdmkgdGhhbmggdmllbiBkb25nIHRyZW4gZGlhIGJhbiAzMCB0aW5oLCB0aGFu aCBwaG8sIHZvaSBkb2kgbmd1DQogaHVuZyBoYXUgdHJlbiA0NSBuZ2hpbiBjYW4gYm8sIGNvbmcg bmhhbi4gVHUgY2hvIGNoaSBkb25nIHRhdSA0LjAwMCB0YW4gdHJvIHh1b25nIGJhbmcgDQpjb25n IG5naGUgbGFjIGhhdSAyLTMgdGhlIGhlIHNvIHZvaSBjYWMgcXVvYyBnaWEgY28gbmVuIGNvbmcg bmdoaWVwIGRvbmcgdGF1IHBoYXQgdHJpZW4sIA0KbmF5IGNhYyBuaGEgbWF5IGN1YSBWaW5hc2hp biBkYSBzYW4geHVhdCBkdW9jIG5oaWV1IGxvYWkgc2FuIHBoYW06IHRhdSBoYW5nLCB0YXUgZGF1 LCANCnRhdSBjb25nLXRlbi1ubywgdGF1IExhc2gsIHRhdSBodXQgYnVuLCB0YXUga2VvLCBzYS1s YW4sIGtoYWNoIHNhbiBub2ksIHRhdSBraGFjaCBkdSANCmxpY2guLi4sIGNvIGxvYWkgdHJvbmcg dGFpIDEwMC4wMDAgdGFuLiAxMCBuYW0gcXVhLCBWaW5hc2hpbiBsaWVuIHR1YyBkYXQgdG9jIGRv IHRhbmcgdHJ1b25nIA0KYmluaCBxdWFuIDQwJS9uYW0uLi4ga3kgZHVvYyBuaGlldSBob3AgZG9u ZyBkb25nIG1vaSBjaG8gY2FjIGNodSB0YXUgdHJvbmcgbnVvYyB2YSANCnF1b2MgdGUgZGVuIG5h bSAyMDEyIHZvaSB0b25nIGdpYSB0cmkgbGVuIGRlbiA2IHR5IFVTRC4uLiINCg0KVGh1YyB0ZSwg YmFpIHZpZXQgY2EgbmdvaSBkYW5nIG5hbSAyMDA3LCBuaHVuZyB0aHVhIGxvIGN1bmcgZGEgbmdh cCBkYXUgdHUgbGF1IHJvaSwgdmEgDQpjYWMgZG9jIGNoaWV1IHJ1dCB0aWVuIHRhcCBkb2FuIGRh IGR1b2MgbmhpZXUgdHJpIHRodWMgY2FuaCBiYW8sIHRoaSBkdSBuaHUgVGllbiBzaSBOZ3V5ZW4g DQpRdWFuZyBBIGRhIGJhbyBkb25nIHZlIG1vIHRodWMgZGFpIHRhcCBkb2FuIG1hIGtob25nIGNv IGNvIGNoZSBuYW8ga2llbSBzb2F0LiANCg0KQmFuIHRpbiBEYWkgVk9BIGhvbSAxNC83LzIwMTAg Y2hvIGJpZXQgcmFuZyBDaHUgdGljaCBUYXAgZG9hbiBWaW5hc2hpbiBkYSBiaSBkaW5oIGNoaSBj aHVjIHZ1LCB0cmljaDoNCg0KIi4uLlRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgY3VhIFZpZXQg TmFtIG5nYXkgMTMvNyBkYSBxdXlldCBkaW5oIGRpbmggY2hpIGNodWMgdnUgDQpvbmcgUGhhbSBU aGFuaCBCaW5oLCBDaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSBjdWEgVGFwIGRvYW4gQ29uZyBu Z2hpZXAgVGF1IHRodXkgDQpWaWV0IE5hbSwgdHVjIFZpbmFzaGluLCBtb3QgdHJvbmcgbmh1bmcg ZG9hbmggbmdoaWVwIGxvbiBuaGF0IGN1YSBuaGEgbnVvYy4NCkx5IGRvIGR1b2MgZHVhIHJhIG5o YW0gcGh1YyB2dSBjaG8gcXVhIHRyaW5oIHRoYW5oIHRyYSBjYWMgc2FpIHBoYW0gZ2F5IHJhIG5o dW5nIG1vbiBubyBraG9uZyBsby4NCg0KT25nIFBoYW0gVGhhbmggQmluaCwgQ2h1IHRpY2ggY3Vh IFZpbmFzaGluLCBsYSBuZ3VvaSBjaGl1IHRyYWNoIG5oaWVtIGNoaW5oIHRyb25nIGNhYyANCmto b2FuIG5vIGxlbiB0b2kgaXQgbmhhdCA4MC4wMDAgdHkgZG9uZywgdHVvbmcgZHVvbmcgNCwzIHR5 IGRvIGxhLg0KDQpUaW4gdHVjIHRyb25nIG51b2MgdHJvbmcgdHVhbiBjaG8gaGF5IGNhYyBxdXll dCBkaW5oIGN1YSBvbmcgQmluaCB0cm9uZyBjb25nIHRhYyBnYXkgDQpxdXkgdmEgcXVhbiBseSBk YSBkYW4gdG9pIGNhYyBraG9hbiB0aHVhIGxvIGxvbiBraGllbiBjb25nIHR5IGtob25nIGNvbiBr aGEgbmFuZyBjaGkgdHJhIA0KY2FjIG1vbiBubyBkYW8gaGFuLg0KDQpUaHUgdHVvbmcgVmlldCBO YW0gY2hpIGRpbmggb25nIE5ndXllbiBIb25nIFRydW9uZywgVGh1IHRydW9uZyBCbyBnaWFvIHRo b25nIHZhbiANCnRhaSwgZGFtIG5oaWVtIGNodWMgdnUgQ2h1IHRpY2ggSG9pIGRvbmcgcXVhbiB0 cmkgVmluYXNoaW4gdGhheSBjaG8gb25nIEJpbmguIg0KDQpDb24gc28gNCwzIHR5IGRvIGxhIHRo dWEgbG8gZ2FuIGJhbmcgbXVjIHRydW5nIGJpbmggdGllbiBiYSB0cmlldSBWaWV0IGtpZXUgZ3Vp IHZlIFZOIGNobyANCnRoYW4gbmhhbiBoYW5nIG5hbS4gTmdoaWEgbGEsIG5ldSBtdW9uIHRodSBo b2kgNCwzIHR5IGRvIGxhLCBuZXUga2luaCBkb2FuaCB2b2kgbG9pIHR1YyANCnRpIGxlIDEwJSB0 cmVuIG1vaSBuYW0sIHRoaSBjYW4gdG9pIGNvIHRoZSBsYSBjYSB0cmFtIHR5IGRvIGxhIHRpZW4g dm9uLCB0aHVlIG5oaWV1IG5nYW4gdGhvIA0KZGUgc2FuIHh1YXQgdmEgYmFuIHJhIGNhYyBtYXQg aGFuZyB0cmkgZ2lhIDQzIHR5IGRvLCBtb2kgY28gdGhlIHRodSB2ZSBsb2kgdHVjIDQsMyB0eSBk by4gRG8gDQpsYSBjaHVhIGtlLCBraGkgYmFuIHJhIGx1b25nIGhhbmcgdHJpIGdpYSA0MyB0eSBk byBkZSBjbyBsb2kgdHVjIDQuMyB0eSBkbywgY2h1bmcgdGEgY2FuIHBoYWkgDQpraGFpIHBoYSBu aGlldSBuZ3VvbiB0YWkgbmd1eWVuIHJ1bmcsIGRhdC4uLg0KDQpOaHVuZyB0YWkgc2FvIGxhaSBn YW5oIG5vIGN1dSBuZ3V5IGNvbiB0YXUgZGFuZyBjaGltPyAgVGFpIHNhbyBraG9uZyBjaG8gY2hp bSBsdW9uPyANCkRvbiBnaWFuLCBjYW4gcGhhaSBib20gdGllbiBjdXUsIHZpIHRpZW4gdGh1YSBs byBwaGFuIGxvbiBsYSB0aWVuIGNhYyBxdWFuIHRoYW0gbmh1bmcsIHJ1dA0KIHJ1b3QsIHZhIGNh biBjbyBjaGUgdGFwIGRvYW4gZG9hbmggbmdoaWVwIG5oYSBudW9jIGRlIGNhYyBjYW4gYm8gY28g Y2F1IGJhIGNvbiBobyANCmhhbmcsIGRhbiBlbSB2YW8gY2FjIGNodWMgdnUgZGUgdGllcCB0dWMg dGhhbSBuaHVuZy4NCg0KQmFvIERhaSBEb2FuIEtldCAgbmdheSA3LzcvMjAxMCBkYW5nIGJhbiB0 aW4gbmhhbiBkZSAiQmFpIHRvYW4gY2h1eWVuIGRvaSBuaGluIHR1IA0KVmluYXNoaW46IE1vdCBu Z29haSBsZSBoYXkgbW90IHRpZW4gbGU/IiBkYSBnaGkgbmhhbiB0aW5oIGhpbmggcmFuZzoNCg0K IkRvbmcgbG9hdCBjaHV5ZW4gZG9pDQoNClRoZW8gTHVhdCBETiwgYmF0IGRhdSBjbyBoaWV1IGx1 YyB0dSAxLTctMjAwNiB0aGkgY2FjIGRvYW5oIG5naGllcCBOaGEgbnVvYyAoRE5OTikgDQpwaGFp IGNodXllbiBkb2kgdGhhbmggY29uZyB0eSBUTkhIIDEgdGhhbmggdmllbiBob2FjIGNvbmcgdHkg Y28gcGhhbi4gVGhvaSBoYW4gDQpjaHV5ZW4gZG9pLCB0aW5oIHR1IGx1YyBMdWF0IGNvIGhpZXUg bHVjIGxhIDQgbmFtLCB0dXkgbmhpZW4gbWFpIGRlbiB0aG9pIGRpZW0gMTktMy0yMDEwLCANCkNo aW5oIHBodSBtb2kgYmFuIGhhbmggTmdoaSBkaW5oIDI1L05ELUNQIHZlIHZpZWMgY2h1eWVuIGRv aSB2YSBjbyBoaWV1IGx1YyB2YW8gbmdheSA1LTUtMjAxMC4NCg0KVGhlIG1hIGNoaSBkdW5nIHZh byBuZ2F5IDMwLTYtMjAxMCwgaG9uIDIwIFRhcCBkb2FuLCBUQ1R5IGxvbiBjbyBxdXlldCBkaW5o IGNodXllbiANCmRvaTogVGFwIGRvYW4gRGF1IGtoaSBWaWV0IE5hbSAoUGV0cm8gVmlldG5hbSks IFRvbmcgQ29uZyB0eSBIYW5nIGtob25nIFZpZXQgTmFtIA0KKFZpZXRuYW0gQWlybGluZXMpLCBU b25nIENvbmcgdHkgVGh1b2MgbGEgVmlldCBOYW0gKFZpbmF0YWJhKSwgVGFwIGRvYW4gRGllbiBs dWMgVmlldCANCk5hbSAoRVZOKS4uLiBzYW5nIGhvYXQgZG9uZyB0aGVvIG1vIGhpbmggY29uZyB0 eSBUTkhIIG1vdCB0aGFuaCB2aWVuLiBEYW5nIGNodSB5IA0KbmhhdCB0cm9uZyBkYW5oIHNhY2gg Y2h1eWVuIGRvaSBsYSBUb25nIENvbmcgdHkgRGF1IHR1IHZhIEtpbmggZG9hbmggdm9uIE5oYSBu dW9jIA0KKFNDSUMpIHZhIFRhcCBEb2FuIENvbmcgbmdoaWVwIHZhIFRhdSB0aHV5IFZpZXQgTmFt IChWaW5hc2hpbikuIA0KTHVhdCBzdSBQaGFtIEh1dSBIdXluaCwgVHJ1b25nIEJhbiBQaGFwIGNo ZSBQaG9uZyBUaHVvbmcgbWFpIHZhIENvbmcgbmdoaWVwIA0KVmlldCBOYW0gZ29pIGRheSBsYSBt b3QgInF1eWV0IGRpbmggaGFuaCBjaGluaCBkb25nIGxvYXQiLg0KDQpUaGVvIGRhbmggZ2lhIGN1 YSBDaHV5ZW4gZ2lhIGtpbmggdGUsIFRTIE5ndXllbiBRdWFuZyBBLCBkdSBjYWMgRE5OTiBkYSBk dW9jIA0KY2h1eWVuIGRvaSBkYW4gZGFuIHRyb25nIDQgbmFtIHF1YSwgdHV5IG5oaWVuLCAyMCBU YXAgZG9hbiwgVENUeSBsb24gdnVhIGNodXllbiBkb2kgDQpuZ2F5IHRydW9jICJoYW4gY2hvdCIg dnVhIHF1YSBjbyB0eSB0cm9uZyB0YWkgc2FuIGNoaWVtIHRvaSA3MC04MCUgdG9uZyB0YWkgc2Fu IGN1YSBjYWMgRE5OTi4NCg0KVmkgdmF5LCB2aWVjIGNodXllbiBkb2kgbyBhdCwgbmdheSB0cnVv YyAiaGFuIGNob3QiIHZhIGdhbiB2b2kgdGFpIGNvIGNhdSB2dWEgZHVvYyBjb2kgbGEgDQptb3Qg bG9pIHRob2F0LCBtb3QgY3VvYyBnaWFpIGN1dSBjaG8gY2FjIFRhcCBkb2FuLCBUQ1R5IGxhbSBh biB0aHVhIGxvLCBtYXQgdm9uIE5oYSBudW9jLiANCg0KVHJhIGxvaSBiYW8gTmd1b2kgTGFvIGRv bmc6IENodXllbiBnaWEga2luaCB0ZSBQaGFtIENoaSBMYW4gY2hvIHJhbmcgdmllYyB0YWkgY28g Y2F1IA0KVmluYXNoaW4gbGE6ICJOaGEgbnVvYyBkYSBjaG9uIGN1dSBWaW5hc2hpbiB0aGVvIG1v dCBjYWNoIGRlIGRhaSBuaGF0IHRyb25nIGtoaSBkYXkgDQpnYW5oIG5hbmcgbm8gY2hvIG5lbiBr aW5oIHRlLCBkb2FuaCBuZ2hpZXAgdmEgc3V5IGNobyBjdW5nIGxhIG5ndW9pIGRhbiBkb25nIHRo dWUgZ2FuaCIuLi4NCg0KVGFjIGdpYSBQaGFtIFRoYW5oIFNvbiB0cmVuIGJhbyBEb2FuaCBOaGFu IFNhaSBHb24gQ3VvaSBUdWFuIGRhbmcgbGFpIHRyZW4gYmFvIA0KVHVhbiBWaWV0IE5hbSwgcXVh IGJhaSBuaGFuIGRlICJUYWkgY28gY2F1IGhheSAiZ2lhaSBjdXUiIFZpbmFzaGluPyIgY3VuZyBn aGkgbmhhbjoNCg0KIi4uLm1heSBuYW0gbmF5IFRhcCBkb2FuIG5heSBkYSBjbyBuaGlldSB0YWkg dGllbmcgY2h1bmcgcXVhbmggY2h1eWVuIG5vIG5hbiwgaG9hdCANCmRvbmcga2luaCBkb2FuaCBi dW5nIHJhIHF1YSBuaGlldSBsaW5oIHZ1YyB0cmFpIG5nYW5oIG5naGUgdm9pIGhvbiAyMDAgY29u ZyB0eSBjb24sIA0KY29uZyB0eSBjaGF1Li4uIg0KDQpEaWV1IGdoaSBuaGFuLCBkYWkgY29uZyB0 eSBkb25nIHRhdSwgbmh1bmcgbGFpIHR1bmcgaGFuZyBjaHVjIHRyaWV1IGRvIHJhIG11YSB0YXUg Y3UgDQpjdWEgdGhlIGdpb2kgZGUgdmUgbmFtIHUgdmkga2hvbmcgY2hheSBkdW9jLiANCg0KVGFp IHNhbyBWaW5hc2hpbiBwaGFpIG11YSB0YXUgY3VuZyBjdWEgdGhlIGdpb2k/IENvIHBoYWkgdmkg bXVhIHRhdSBtb2kgdGhpIGNvIGdpYSBzYW4gDQp0cmVuIGJhbmcgZ2lhLCBraG8gdGhhbSBuaHVu Zywga2hvIGJvbSBnaWEgbGVuIGR1b2MuIFRyb25nIGtoaSBtdWEgdGF1IGN1LCB0aGkgbm9pIGdp YSANCmJhbyBuaGlldSBjdW5nIGtob25nIGtpZW0gc29hdCBub2ksIHRoYSBobyBibyB0dWkuIFRo aSBkdSwgeGUgQ2FtcnkgbW9pIGxhIDMwLDAwMCBkbyBsYSwgDQpnaWEgY28gZGluaCB0cmVuIGJh bmcgZ2lhLCB0cm9uZyBraGkgbXVhIHhlICBDYW1yeSBjdSB0aGkgZ2lhIHNlIGxhIHR1IDEsMDAw IGRvIHRvaSAxOSw1MDAgDQpkbywgdGhhIGhvIG1hIGhldCBnaWEgZGUgYm8gdHVpPyANCg0KVGFj IGdpYSBQaGFtIFRoYW5oIFNvbiB2aWV0IGxhIFZpbmFzaGluIGRhIG11YSBpdCBuaGF0IGxhIDEw IHRhdSBjdSwgbmhhdCBkaW5oIGtob25nIA0KbXVhIHRhdSBtb2kuIEJhaSB2aWV0IGtlOiANCiIu Li5WaW5hc2hpbiBjdW5nIG5vaSB0aWVuZyBsYSBkb2FuaCBuZ2hpZXAgbmhhIG51b2Mgc3UgZHVu ZyB2b24gdmF5IHZhbyB2aWVjIG11YSBzYW0gDQp0cmFuIGxhbiB2YSBkYXUgdHUgdGFpIGNoaW5o IHRoYXQgYmFpIG5hbmcgbmUuIERpZW4gaGluaCBsYSB2aWVjIG11YSBjb24gdGF1IG1hbmcgdGVu IEhvYSANClNlbiB2b2kga2hvYW4gdGllbiBsZW4gdG9pIDYwIHRyaWV1IGV1cm8gbmh1bmcgc2F1 IGRvIGtob25nIGtoYWkgdGhhYyBkdW9jIHBoYWkgbmVvIGRhdSANCnRhaSBLaGFuaCBIb2EuIE5n b2FpIHJhIFZpbmFzaGluIGRhIGR1bmcgdm9uIHZheSBxdW9jIHRlIG11YSBjaGluIHRhdSBjdSB0 dW9pIGRvaSBob24gDQoxNSBuYW0gdm9pIHRvbmcgY2hpIGdhbiAyMDAgdHJpZXUgVVNELg0KDQpO b2kgYmF0IGxhIG5odW5nIHRodWEgbG8ga2hpIGRhdSB0dSB2YW8gY28gcGhpZXUuIEN1IHRoZSBj b25nIHR5ICJtZSIgZGF1IHR1IG11YSBjbyANCnBoYW4gY3VhIFRhcCBkb2FuIEJhbyBWaWV0IGxh IDEuNDYyIHR5IGRvbmcsIG11YSB2b2kgZ2lhIDcxLjkxOCBkb25nL2NvIHBoYW4sIHNvIGh1dSAN CjMsNTYlIHZvbiBkaWV1IGxlIGN1YSBCYW8gVmlldC4gTmh1bmcgdmFvIHRob2kgZGllbSA3Lzkv MjAwOSwgZ2lhIGNvIHBoaWV1IGN1YSBCYW8gDQpWaWV0IHRyZW4gc2FuIEhvU0UgY2hpIGxhIDM3 LjEwMCBkb25nLiBUaW5oIHJhIHRoaWV0IGhhaSBjdWEgVmluYXNoaW4gdmFvIHZ1IG5heSBraG9h bmcgDQpnYW4gNzAwIHR5IGRvbmcgdmEgZGEgcGhhaSBjaGluaCB0aHVjIHRob2FpIHZvbiB2YSB4 aW4gcnV0IGtob2kgSG9pIGRvbmcgUXVhbiB0cmksIHRoYXkgDQp2YW8gZG8gbGEgVG9uZyBjb25n IHR5IERhdSB0dSB2YSBLaW5oIGRvYW5oIHZvbiBuaGEgbnVvYyAoU0NJQykuDQoNCk5oaWV1IGNv bmcgdHkgImNvbiIgY3VuZyBkaSB0aGVvIGNvbiBkdW9uZyBuYXkga2hpIGxhbiB4YSB2YW8gZGF1 IHR1IGNvIHBoaWV1LiBDaGFuZyANCmhhbiBUb25nIGNvbmcgdHkgQ29uZyBuZ2hpZXAgdGF1IHRo dXkgQmFjaCBEYW5nIGR1IG5vIG5hbiBjaG9uZyBjaGF0IG5odW5nIGN1bmcgDQp2YXkgdm9uIG5n YW4gaGFuIGRlIG11YSBjbyBwaGFuIGN1YSBjYWMgZG9uIHZpIHRyb25nIHRhcCBkb2FuIHNvIHRp ZW4gdHJlbiA1OCB0aSBkb25nLi4uIg0KDQpUaHVhIGxvIHRvaSA0LjMgdHkgZG8sIGNoYWMgY2hh biBraG9uZyBwaGFpIHJpZW5nIG1vdCBuZ3VvaSB0cmFjaCBuaGllbS4gVmkgZ2lhbyBjaHVjIHZ1 IA0KbmFtIHRhcCBkb2FuIFZpbmFzaGluLCBwaGFpIGxhIG5ndW9pIHRpbiBjYXksIGR1b2MgRGFu ZyBDU1ZOIGNvIGNhdSBzYXAgeGVwLiANCg0KVmluYXNoaW4gc2UgZHVvYyBjdXUsIGJvaSB2aSBt dWEgdGF1IGN1IHZlIG5hbSB1IHR1IG5oaWV1IG5hbSB0cnVvYyBjb24ga2hvbmcgYmkgaG9pIA0K dG9pLCBsYWkgZHVvYyBjaGlhIGNhYyBkdSBhbiBzYW5nIGNhYyB0YXAgZG9hbiBraGFjIGRlIGdh bmggbm8gZ2l1bSwgdGhpIGhpZW4gbmhpZW4gY2hpIGxhIA0KYmkgImtlIHhhdSIgdHJvbmcgRGFu ZyAicXVheSByb2kiIHRpZW4gRGFpIEhvaSBEYW5nLg0KDQpUaGFtIGNoaSwgYmFvIERhaSBEb2Fu IEtldCBrZSBjaHV5ZW4gbXVhIHRhdSBxdWEgYmFpICJWaW5hc2hpbjogTmh1bmcgY29uIHRhdSBu YXQiIGNobyB0aGF5Og0KIlZpIHNhbyBtb3QgbnVpIHRpZW4gbmdhbiBzYWNoIGtob25nIGxvIGxp ZW4gdHVjIGR1b2MgbmVtIHJhIGNobyBWaW5hc2hpbiBtdWEgdmUgbmh1bmcgDQpjb24gdGF1IGN1 IG5hdD8NClRhdSBIb2EgU2VuOg0KRGF5IGxhIGNvbiB0YXUgdGFpIHRpZW5nIG5oYXQgdmEgZHVv YyBiYW8gY2hpIG5vaSBuaGlldSBuaGF0IHRyb25nIHRob2kgZ2lhbiBxdWEuIE5vIGR1b2MgDQpD b25nIHR5IHZhbiB0YWkgdmllbiBkdW9uZyBWaW5hc2hpbiBtdWEgdmFvIHRoYW5nIDExLTIwMDcg dm9pIGdpYSBraG9hbmcgMS4zOTAgdHkgDQpkb25nLiBLaGkgbXVhLCB0aHVjIGNoYXQgY2hpIGxh IG1vdCBjaGllYyBwaGEgY2hheSBiaWVuIChGZXJyeSBCb2F0KSBjaHUga2hvbmcgcGhhaSBsYSAN CnRhdSBraGFjaC4gTmd1b2kgdHJ1YyB0aWVwIHNhbmcgSXRhbHlhIG11YSBjaGllYyBwaGEga2hv YWMgbWFjIGNvbiB0YXUgbmF5IGNoaW5oIGxhIA0KVG9uZyBnaWFtIGRvYyBWaW5hc2hpbiBUcmFu IFZhbiBMaWVtIHZhIG1vdCBuaGFuIHZpZW4gdGVuIERhdC4gTmdheSBraG9pIGhhbmggDQpjaHV5 ZW4gZGF1IHRpZW4gbGEgMTMtMTItMjAwNywgbmh1bmcgY2hheSBjaHVhIGR1b2MgbW90IG5hbSwg ZGVuIHRoYW5nIDExLTIwMDggdGhpIA0Kbmd1bmcgaG9hdCBkb25nIHZpIG51dCBkYXkuIFNhdSBr aGkgbGVuIGRvY2sgKGJlbiwgdSB0YXUpIHRhaSBIdXluZGFpIFZpbmFzaGluIE5oYSANClRyYW5n IHRoaSBwaGF0IGhpZW4gZGEgYmkgbnV0IGRheSAyIGxhbiB0dSB0cnVvYyBraGkgdmUgVmlldCBO YW0uIE5ndXllbiBuaGFuIGN1YSBzdSBjbyANCm51dCBkYXkgdGF1IGR1b2MgYmlldCBsYSBkbyBs b2kgdGhpZXQga2Ugc2FpLi4uKC4uLikNCg0KSGllbiB0YXUgSG9hIFNlbiB2YW4gZGFuZyBkdW9j IG5lbyBkYXUgdGFpIHZ1bmcgYmllbiBtaWVuIFRydW5nLCB0cm9uZyB0aW5oIHRyYW5nIA0Ka2hv bmcgdGhlIHRpZXAgdHVjIGtoYWkgdGhhYyB2YSBjdW5nIGtob25nIGJpZXQgYmFuIGR1b2MgY2hv IGFpLiBOZXUgY28sIGNoaSBjbyB0aGUgYmFuLi4uIA0Kc2F0IHZ1biB2b2kgZ2lhIHRoaSB0cnVv bmcgdGhlIGdpb2kga2hvbmcgcXVhIDEwMCB0eSBkb25nLiANCkx1b25nIHRodXllbiB2aWVuIHZh IGJhbyB2ZSBkYW5nIGJpIHRyZW8gbm8uIFRoaWV0IGJpIHRyZW4gdGF1IG5odSB2b2kgdGFtLCBs YXZhYm8gcnVhIA0KbWF0LCB2b2kgcnVhIHRheSwgZGVuLCBraG9hIGN1YS4uLiBjbyBoaWVuIHR1 b25nIGJpIGNheSBsYXkgY2FwIGRvaSBiYW5nIHRoaWV0IGJpIHJlIHRpZW4sIA0Ka2VtIGNoYXQg bHVvbmcuIg0KDQpDaHVhIGhldCwgbmhpZXUgdGF1IGtoYWMgY3VuZyBjaG8gYmFuIHNhdCB2dW4s IHZpIGxhICIuLi5kb25nIHRoZW8gY29uZyBuZ2hlIHF1YSBjdSB0dSANCnRoYXAgbmllbiA1MCB0 aGUga3kgdHJ1b2MsIHRyZW4gdGhlIGdpb2kgaG8gZGEgYm8gbGF1IHJvaS4gVHJpIGdpYSBraGkg eHVhdCB4dW9uZyBsYSB0cmVuIDQwMCANCnR5IGRvbmcuIDQwMCB0eSBkb25nIGRlIGRvbmcgbW9p IG1vdCBjb24gdGF1IHhvbmcuLi4gZGUgbmFtIGltIG1vdCBjaG8sIGtob25nIGNoYXkgDQpkdW9j Li4uIg0KDQpOZ3VvaSB0YSB0aW4gbGEgc2F1IERhaSBIb2kgRGFuZyB2YW8gdGhhbmcgMS0yMDEx LCBjYWMgY2h1eWVuIG5heSBzZSBkdW9jIGNoaW0geHVvbmcuDQoNCmh0dHA6Ly93d3cuYmJjLmNv LnVrL3ZpZXRuYW1lc2UvdmlldG5hbS8yMDEwLzA3LzEwMDcxNV92aW5hc2hpbl9hbmFseXNpcy5z aHRtbCAwODoyNCBHTVQgliAxNS83LzIwMTAgDQoNCk1vdCBjYWNoIG5oaW4gdmUgdnUgVmluYXNo aW4NCg0KVGhvaSBiYW8gUGhvIFdhbGwgKFdhbGwgU3RyZWV0IEpvdXJuYWwgLSBXU0opIGFuIGJh biBBIGNoYXUgbm9pIGNvIHkga2llbiBjaG8gcmFuZyB2aWVjIA0KVmluYXNoaW4gZGFuZyBuZ2Fw IG5naGUgYm8gdnVjIHBoYSBzYW4gdmEgcGhhaSB0YWkgY28gY2F1LCB0aGVvIFdTSiwgbGEgY3Ug Z2lhbmcgDQpjaG8gbm8gbHVjIHRodWMgZGF5IGRvYW5oIG5naGllcCBuaGEgbnVvYyBjdWEgVmll dCBOYW0gdHJvbmcgbmh1bmcgbmFtIGdhbiBkYXkuDQoNClRvIGJhbyBjaHV5ZW4ga2luaCB0ZS10 YWkgY2hpbmggbm9pIHkgZGluaCBraHV5ZW4ga2hpY2ggY2FjIHRhcCBkb2FuIG5oYSBudW9jIHBo YXQgDQp0cmllbiB0aGVvIG1vIGhpbmggdHVhIHR1YSBjYWMgY2hhZWJvbCBOYW0gSGFuIGRlIGRv bmcgdmFpIHRybyBtdWkgbmhvbiB0cm9uZyBuZW4ga2luaCANCnRlIGRhIGtoaWVuIGNobyBjYWMg dGFwIGRvYW4gbmF5IG1vIHJvbmcgcGhhbSB2aSBob2F0IGRvbmcgbW90IGNhY2ggbmhhbmggY2hv bmcuDQpUYXAgZG9hbiBkYXUga2hpIFBldHJvVmlldG5hbSBuYXkgY2h1eWVuIHNhbmcgbGFtIGNh IG5nYW4gaGFuZyB2YSBkdSBsaWNoLCBEaWVuIGx1YyANClZpZXQgTmFtIHRoaSBkYXUgdHUgdmFv IGJ1dSBjaGluaCB2aWVuIHRob25nLiBWZSBwaGFuIG1pbmgsIFZpbmFzaGluIHZheSB0b2kgMyB0 eSBkb2xhIA0KZGUgZGF1IHR1IHZhbyB0YXUgdmFuIHRhaSB2YSBjYWMgZG9hbmggbmdoaWVwIGRp IGtlbSwgY3VuZyB2b2kgdmllYyBidW5nIHJhIHZhbyB2byB2YW4gDQpjYWMgbGluaCB2dWMgbmh1 IHRhaSBjaGluaCwgY2h1bmcga2hvYW4gdmEgY2EuLi4gc2FuIHh1YXQgYmlhLiANCg0KVmllYyBt byByb25nIGtpbmggZG9hbmggY3VhIGNhYyB0YXAgZG9hbiBuaGEgbnVvYyBkYSBiaSBnaW9pIGNo dXllbiBnaWEga2luaCB0ZSBjaGkgDQp0cmljaCB2b2kgbHkgZG8gbm8gbWFuZyBsYWkgbmhpZXUg bmd1eSBjbyBtYSBjYWMgZG9hbmggbmdoaWVwIG5heSBjaHVhIGhvYW4gdG9hbiB0aG9uZyANCmhp ZXUuDQoNCk5vIG5hbiBjaG9uZyBjaGF0DQoNClZpbmFzaGluIG5heSB2YXkgbm8gdG9pIDgwIG5n aGluIHR5IGRvbmcgKDQsMiB0eSBkb2xhKSwgdHJvbmcga2hpIHRvYW4gYm8gdGFpIHNhbiBjdWEg dGFwIA0KZG9hbiBuYXkgdHJpIGdpYSA5MCBuZ2hpbiB0eSAoNCw3IHR5IGRvbGEpLg0KDQpXU0og Y3VuZyBjaG8gYmlldCBjYWMgY2hpIHRpZXQgdmUgdmllYyB0YWkgY28gY2F1IFZpbmFzaGluIHRo b25nIHF1YSBjaHV5ZW4gZ2lhbyAxMyBjb25nIA0KdHkgY29uIGN1YSB0YXAgZG9hbiBuYXkgY2hv IFBlcm9WaWV0bmFtIHZhIFZpbmFsaW5lcy4gNS4wMDAgdHJvbmcgc28gNjAuMDAwIGNvbmcgbmhh biANCnZpZW4gY3VhIFZpbmFzaGluIHNlIHBoYWkgY2h1eWVuIHRoZW8gY2FjIGNvbmcgdHkgY29u IGRvLg0KDQpIb2kgbmFtIDIwMDgsIHRyb25nIG1vdCBwaG9uZyB2YW4gdm9pIGNoaW5oIHRvIFdT Siwgb25nIFBoYW0gVGhhbmggQmluaCBiYWMgYm8gY2hpIA0KdHJpY2ggcmFuZyBWaW5hc2hpbiBt byByb25nIHF1YSBuaGFuaCwgdm9pIGx5IGRvIHJhbmcgdmllYyBtbyByb25nIG5heSBsYSBkZSBw aHVjIHZ1IA0KbWFuZyBraW5oIGRvYW5oIGNoaW5oIGN1YSBjb25nIHR5Lg0KDQpPbmcgQmluaCBu b2k6ICJDaHVuZyB0b2kga2hvbmcgcGhhaSBuaHVuZyBuZ3VvaSBxdWFuIGxpZXUga2hvbmcgaGll dSBiaWV0IGdpIHZlIGtpbmggZG9hbmguIg0KDQpOYXkgdGhpIGNhYyBsYW5oIGRhbyBWaW5hc2hp biB0aHVhIG5oYW4gZGEgY28gc2FpIGxhbSB2ZSBxdWFuIGx5IHRyb25nIHF1YSBraHUuDQoNCldT SiB0cmljaCBsb2kgY2FjIHBoYW4gdGljaCBnaWEgbm9pIGhpZW4gY2h1YSBjbyBjaGkgZGF1IGNo byB0aGF5IGNhYyB0YXAgZG9hbiBuaGEgbnVvYyANCmtoYWMgY3VuZyBkYW5nIGdhcCBraG8sIG5o dW5nIHZhbiBjbyB5IGtpZW4gcGhhbiBkb2kgdmllYyBjaGluaCBwaHUgaG8gdHJvIGNhYyBjb25n IHR5IA0KbmhhIG51b2MgcXVhIG5oaWV1LiBEb25nIHRob2ksIHR1IHBoaWEgY2FjIG5oYSBkYXUg dHUgbnVvYyBuZ29haSBjdW5nIGRhIGNvIG5oaWV1IGtldSANCmdvaSBwaGFpIGNobyBwaGVwIGNh bmggdHJhbmggaG9uIG51YS4gDQoNClRvIGJhbyBuYXkgdHJpY2ggbG9pIHBoYW4gdGljaCBnaWEg Q2FybHlsZSBUaGF5ZXIgdHUgRGFpIGhvYyBOZXcgU291dGggV2FsZXMsIFVjIGNoYXUuDQpUaGVv IG9uZyBUaGF5ZXIsIHZ1IFZpbmFzaGluIGRhbiBkZW4gY2F1IGhvaSB2ZSBxdWFuIGx5IG5oYSBu dW9jIG8gVmlldCBOYW0sIGRvbmcgdGhvaSANCm5ndW9pIHRhIHRoYXkgdGhpZXUgdmFuZyBjYSB2 YWkgdHJvIGN1YSBuZ2FuaCBraWVtIHRvYW4gdmEgdGFpIGNoaW5oLiANCg0KQ3VuZyBjbyBwaGFu IHRpY2ggZ2lhIGxpZW4gaGUgdnUga3kgbHVhdCBWaW5hc2hpbiB2b2kgRGFpIGhvaSBEYW5nIGNv bmcgc2FuIFZpZXQgTmFtIA0KbGFuIHRodSBYSSwgc2UgZHVvYyB0aWVuIGhhbmggdmFvIHRoYW5n IDEvMjAxMS4gDQoNCkhvIG5vaSBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIGRhIGJpIGNoaSB0 cmljaCB2ZSBraGEgbmFuZyBkaWV1IGhhbmgga2luaCB0ZSwgbmhhdCANCmxhIGhvaSBuYW0gMjAw OCBraGkgbGFtIHBoYXQgcGhpIG1hLiANCg0KV1NKIHZpZXQ6ICJUaGVtIHZhbiBkZSBvIFZpbmFz aGluIHNlIGtoaWVuIGNhYyBuaGEgZGF1IHR1IGNoYW4gbmFuIHZhIGxhbSBzdXkgeWV1IHZpIA0K dGhlIGN1YSBvbmcgTmd1eWVuIFRhbiBEdW5nIi4gDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5o LXRyaS1YYS1ob2kvMzk3MjU5L0RlLW5naGktYmFvLWNhby1RdW9jLWhvaS10aW5oLWhpbmgtVmlu YXNoaW4uaHRtbCAyNi8wOC8yMDEwLCAwOToxMSAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IERlIG5n aGkgYmFvIGNhbyBRdW9jIGhvaSB0aW5oIGhpbmggVmluYXNoaW4NCg0KVGFpIHBoaWVuIGhvcCBV eSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIGNoaWV1IDI1LTgsIENodSBuaGllbSBVeSBiYW4gUXVv YyBwaG9uZyCWIA0KYW4gbmluaCBMZSBRdWFuZyBCaW5oIGRlIG5naGkgQ2hpbmggcGh1IGNvIGJh byBjYW8gdmUgdGluaCBoaW5oIFZpbmFzaGluIHRhaSBreSBob3AgDQp0aHUgOCBjdWEgUXVvYyBo b2kgInZpIGNoYWMgY2hhbiBjYWMgZGFpIGJpZXUgc2UgcXVhbiB0YW0gdmEgY2hhdCB2YW4iLiAN Cg0KaHR0cDovL3ZucjUwMC52aWV0bmFtbmV0LnZuL2NvbnRlbnQuYXNweD9pZD05MzcgKFRoZW8g RGF1IHR1KSA4LzcvMjAxMCA5OjQyOjI5IEFNIChHTVQrNykgIA0KDQpUaHUgdHVvbmc6IFZpbmFz aGluIC0gQm9uZyB0b2kgcGhpYSBzYXUgdmFuZyBoYW8gcXVhbmcgZGFpIHF1eSBtbyANCg0KVGhl byBjYWMgbmhhIHF1YW4gbHkga2luaCB0ZSwgdHJvbmcgY2F1IGNodXllbiBjdWEgVmluYXNoaW4s IG5ndXllbiB0YWMga2luaCB0ZSBnYW4gbmh1IA0KYmkgbW8gZGkgYm9pIG5odW5nIHRvYW4gdGlu aCBjbyBob2kga2hpZW4gYmFpIHRvYW4gbGllbiBrZXQgdHJvIG5lbiBsZWNoIGxhYywgc3Uga2V0 IG5vaSBsYWkgDQp0cm8gdGhhbmggZGFuIHRyYWksIHJhaSByYWMuDQoNCktob25nIGNoaSBkYXUg dHUgdHJhbiBsYW4sIHZpZWMgc3UgZHVuZyBuZ3VvbiB2b24gY3VhIFZpbmFzaGluIHRhaSBuaGll dSBkdSBhbiBraG9uZyBoaWV1IHF1YSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05l d3MvUGFnZXMvMjAxMDM4LzIwMTAwOTE1MDA0MzM2LmFzcHggQW5oIFZ1IDE1LzA5LzIwMTAgMDo0 MyANCg0KVGh1IHR1b25nOiBWaW5hc2hpbiB2YSBsbyBob25nIHRhaSBjaGluaCAgIA0KICANClNh dSBraGkgVGFwIGRvYW4gVmluYXNoaW4ga2hvbmcgY29uIGtoYSBuYW5nIHRyYSBubywgbmd1b2kg dGEgbW9pIGdpYXQgbWluaCwgZGF0IGNhdSANCmhvaTogYWkgZGEgcXVhbiBseSwga2llbSB0cmEs IGdpYW0gc2F0IGNhYyBuZ3VvbiB2b24gY3VhIFZpbmFzaGluPyBOZXUgcXVhbiBseSwgZ2lhbSBz YXQgDQp0b3QsIGNoYWMgY2hhbiBzZSBraG9uZyBkYW4gdG9pIHRpbmggdHJhbmcgbmh1IGhpZW4g bmF5LiANCg0KTmhhbiBkYW5oIG5nYW5oIGNvbmcgbmdoaWVwIGRvbmcgdGF1LCBnaW8gZGF5IFZp bmFzaGluIGRhbmcgdGhhIHRoaWV0IHhpbiBDaGluaCBwaHUgDQoiYm9tIiB0aGVtIDIuNTAwIHRp IGRvbmcuIE5odW5nIHR1IHRodWMgdGUgdHJlbiwgZGUgc28gdGllbiBtYSBDaGluaCBwaHUgY2Fw IHRoZW0gY2hvIA0KVmluYXNoaW4gcGhhdCBodXkgZHVvYyB0YWMgZHVuZyBsYWkgbGEgbW90IGJh aSB0b2FuIGtoby4gTmV1IGNhYyBsbyBob25nIGtob25nIGR1b2MgDQpiaXQsIGtob25nIGJpZXQg bmd1b2kgZHVvYyB2YXkgdGllbiB0aWV1IGdpLCB0aWV1IHJhIHNhbyB0aGkgZHUgY28gImJvbSIg dGhlbSBiYW8gbmhpZXUgDQp0aWVuIGNobyBWaW5hc2hpbiBkaSBjaGFuZyBudWEsIGN1bmcga2hv bmcgY3V1IG5vaSBjb24gdGF1IG5heS4gDQoNCkN1bmcgdm9pIHZpZWMgYml0IGNhYyBsbyBob25n LCB2aWVjIGxhbSBybyB0cmFjaCBuaGllbSBjdWEgdHVuZyBjbyBxdWFuLCBjYSBuaGFuIHRyb25n IA0KdmllYyBxdWFuIGx5LCBnaWFtIHNhdCBzdSBkdW5nIHZvbiB0YWkgVmluYXNoaW4gY3VuZyBj YW4gcGhhaSBsYW0gcm90IHJhbyBkZW4gbm9pIGRlbiBjaG9uLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM2LzIwMTAwOTA0MDEwNDIzLmFzcHggQVYgVFAg VFMgTVMgVEwgVEQgMDQvMDkvMjAxMCAxOjA0IA0KDQpUaHUgdHVvbmc6IFZpbmFzaGluIG5odW5n IHNhaSBwaGFtIG5naGllbSB0cm9uZyAgIA0KDQotIDQgbmhhbiB2YXQgYmkgYmF0IGhvbSAzLjku MjAxMDogVHJhbiBRdWFuZyBWdSAoU04gMTk1OCksIG5ndXllbiBVeSB2aWVuIEhEUVQsIA0Kbmd1 eWVuIFRHRCBkaWV1IGhhbmggVmluYXNoaW47IFRyYW4gVmFuIExpZW0gKFNOIDE5NTUpLCBuZ3V5 ZW4gVXkgdmllbiBIRFFULCANCm5ndXllbiBUcnVvbmcgYmFuIGtpZW0gc29hdCBUYXAgZG9hbiBW aW5hc2hpbjsgTmd1eWVuIFZhbiBUdXllbiAoU04gMTk2MiksIG5ndXllbiANClRHRCBDb25nIHR5 IGNvIHBoYW4gY29uZyBuZ2hpZXAgdGF1IHRodXkgSG9hbmcgQW5oICh0aGFuaCB2aWVuIGN1YSBW aW5hc2hpbikgdmEgDQpOZ3V5ZW4gVHVhbiBEdW9uZyAoU04gMTk2NiksIG5ndXllbiBDaHUgdGlj aCBIRFFUIENvbmcgdHkgY28gcGhhbiBkYXUgdHUgQ3V1IExvbmcsIA0Kbmd1eWVuIFRHRCBDb25n IHR5IFROSEggbW90IHRoYW5oIHZpZW4gdGhlcCBDYWkgTGFuIFZpbmFzaGluLiANCg0KLSBUcnVv YyBkbywgbmdheSA0LjggY28gcXVhbiBjb25nIGFuIGRhIGJhdCBnaWFtIG9uZyBQaGFtIFRoYW5o IEJpbmgsIGNodSB0aWNoIA0KSERRVCwga2llbSBUb25nIGdpYW0gZG9jIFZpbmFzaGluLiBOaHUg dmF5IGNobyBkZW4gbmF5IGRhIGNvIDUgY3V1IHRoYW5oIHZpZW4gDQpjYXAgY2FvIGN1YSBWaW5h c2hpbiBiaSBiYXQuDQoNCk5odSB2YXksIGNoaSB0cm9uZyB2b25nIDEgdGhhbmcgcXVhLCBkYSBj byAzIGNhbiBibyBuZ3V5ZW4gbGEgQ2h1IHRpY2ggSERRVCwgDQpuZ3V5ZW4gVEdELCBuZ3V5ZW4g VHJ1b25nIGJhbiBLaWVtIHNvYXQgY3VhIFZpbmFzaGluLCAyIFRHRCBjYWMgY29uZyB0eSB0aGFu aCANCnZpZW4gY3VhIFZpbmFzaGluIGJpIGtob2kgdG8sIGJhdCB0YW0gZ2lhbSBkZSBkaWV1IHRy YS4NCg0KLSBDYWMgYmkgY2FuIGJpIGJhdCBnaXUgdmkgZGEgY28gY2FjIGhhbmggdmkgImNvIHkg bGFtIHRyYWkgY2FjIHF1eSBkaW5oIGN1YSANCk5oYSBudW9jIHZlIHF1YW4gbHkga2luaCB0ZSBn YXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmciIHRoZW8gZGlldSAxNjUgQm8gbHVhdCBIaW5oIHN1OiAg DQoNCitNdWEgdGF1IGhhbmcgIHRyaWV1IFVTRCB2ZSBiYW4gc2F0IHZ1bg0KK0NoaSBob24gMS4w MDAgdGkgZG9uZyBtdWEgdGF1IG51dCBkYXkNCisgR2lhIG1hbyBnaWF5IHRvIGRlIG11YSBjb25n IG5naGUgdHUgdGhlIGt5IHRydW9jIA0KDQpPbmcgUGhhbSBUaGFuaCBCaW5oIGN1bmcgb25nIFR1 eWVuIHZvaSB2YWkgdHJvIGxhIGNodSBkYXUgdHUgdmEgb25nIER1b25nIGxhIHRvbmcgDQp0aGF1 IGRhIHRob25nIG5oYXQgbXVhIDIgbmhhIG1heSBuaGlldCBkaWVuIGN1IHR1IG5odW5nIG5hbSAx OTYwIGN1YSBIYW4gUXVvYyBkYSANCm5ndW5nIGhvYXQgZG9uZyB0dSAyMDA0LiBEYW5nIGNodSB5 LCBjYWMgdGhpZXQgYmkgbmF5IGtoaSBob2F0IGRvbmcgdGhhaSByYSBjYWMgaG9hIGNoYXQgDQpk b2MgaGFpIHZhIG5hbSB0cm9uZyBkaWVuIGNhbSB4dWF0IGNhbSBuaGFwIHRoZW8gcXV5IGRpbmgg Y3VhIFZpZXQgTmFtIGN1bmcgbmh1IEhhbiANClF1b2Mgbmh1bmcgb25nIFR1eWVuIHZhIG9uZyBE dW9uZyBkYSBzdSBkdW5nIGdpYXkgdG8gZ2lhIG1hbyBjdWEgQm8gVGFpIG5ndXllbiB2YSANCk1v aSB0cnVvbmcsIEJvIENvbmcgdGh1b25nIGRlIG1hbmcgdHJvdCBsb3QgY2FjIHRoaWV0IGJpIG5h eSB2ZS4gDQoNCkNodWEgaGV0LCBOZ3V5ZW4gVHVhbiBEdW9uZyBjb24gIm5vaSB0aWVuZyIgdHJv bmcgZHUgYW4geGF5IGR1bmcgbmhhIG1heSBjYW4gbm9uZyANCnRoZXAgdGFtIDUwMC4wMDAgdGFu L25hbSAoc2F1IHRhbmcgdGhlbSAxNTAuMDAwIHRhbi9uYW0pLCB2b2kgdmFpIHRybyB2dWEgbGEg bGFuaCBkYW8gDQpjYW8gbmhhdCBjdWEgZG9uIHZpIHRvbmcgdGhhdSB2YSBsYW5oIGRhbyBjYW8g bmhhdCBjdWEgZG9uIHZpIGNodSBkYXUgdHUsIG1vdCBtaW5oIA0KRHVvbmcgInZ1YSBkYSBib25n IHZ1YSB0aG9pIGNvaSIuIER1IGFuIG5heSBjbyBzbyB0aWVuIGRhdSB0dSBsZW4gdG9pIDIuNDAw IHRpIGRvbmcuIERlbiANCnRoYW5nIDYuMjAxMCwgbWUgY2FuIG5vbmcgdGhlcCB0YW0ga2hvIGxv biBkYXUgdGllbiBkYSByYSBsbywgdHV5IG5oaWVuIHNhdSBkbyBuaGEgbWF5IA0KaG9hdCBkb25n IGNhbSBjaHVuZyB2aSBwaGFpIGhpZXUgY2hpbmggdGhpZXQgYmkgdmEgYm9pIGNodWEgY28gZGF1 IHJhIGNobyBzYW4gcGhhbSANCmtoaSBuZ2FuaCBjb25nIG5naGllcCBkb25nIHRhdSBWaWV0IE5h bSBkYW5nIGtodW5nIGhvYW5nLi4uDQoNCkRhdSByYSBjaG8gc2FuIHBoYW0gY2h1YSBjbywgbmh1 bmcgdHJvbmcgY3VvYyBsYW0gdmllYyB2b2kgUGhvIHRodSB0dW9uZyB0aHVvbmcgdHJ1YyANCk5n dXllbiBTaW5oIEh1bmcgbmdheSAxNC44LjIwMTAsIG9uZyBOZ3V5ZW4gVHVhbiBEdW9uZyB2YW4g ZGUgdHJpbmgga2UgaG9hY2ggeGluIA0KZGF1IHR1IHRoZW0gNDAwIHRpIGRvbmcsIG5hbmcgY29u ZyBzdWF0IG5oYSBtYXkgbGVuIHRvaSAxIHRyaWV1IHRhbi9uYW0uLi4NCg0KLSBWaW5hc2hpbiBj byBoYW5nIGxvYXQgImR1IGFuIHRyZW8iIG8gSGFpIFBob25nOiAxMSBkdSBhbiAoREEpIGNoYW0g dGllbiBkbywgMTUgREEgDQpjaHVhIHRyaWVuIGtoYWkuIFRyb25nIHNvIGRvIGNvIDkgREEgZGF1 IHR1IG5nb2FpIG5nYW5oIGNodWEgdHJpZW4ga2hhaSwgZGllbiB0aWNoIHhpbiANCnRodWUgZGF0 ICJ4aSBwaGFuIiBsZW4gdG9pIHRyZW4gNjUwIGhhLi4uDQoNClRyb25nIHRvbmcgc28gNDAgZHUg YW4gY3VhIFZpbmFzaGluIGRhIHZhIGRhbmcgdHJpZW4ga2hhaSB0cmVuICBkaWEgYmFuIEhhaSBQ aG9uZywgY2hpIA0KY28gMTcgZHUgYW4gdGh1b2MgbGluaCB2dWMgbmdhbmggbmdoZSBjaGluaCBj dWEgdGFwIGRvYW4sIHRyb25nIHNvIG5heSBjbyB0b2kgNSBkdSAgYW4gDQpjaGFtIHRpZW4gZG8s IDYgZHUgYW4gY2h1YSB0cmllbiBraGFpLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZu L25ld3MvUGFnZXMvMjAxMDMxLzIwMTAwNzMwMDEyMDU5LmFzcHggTmd1eWV0IE1pbmggMzAvMDcv MjAxMCAxOjIxIA0KDQpUaHUgdHVvbmc6IENodWEgY28ga2UgaG9hY2gga2llbSB0b2FuIFZpbmFz aGluIHRyb25nIG5hbSBuYXkgMjAxMCANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMDUyMzA2 MTYxMzk0NlAwQzk5MjAvcXVhLWxhbmctbWFuLXZhLWJhbi1zdW5nLXBoYXQtbW90Lmh0bSAgTkdV WUVOIFBIVU9ORyAyMjo1MyAoR01UKzcpIDIzLzUvMjAxMA0KDQpUaHUgdHVvbmc6IERpZXUgaGFu aCBLVC1YSCAtICJRdWEgbGFuZyBtYW4iIHZhICJiYW4gc3VuZyBwaGF0IG1vdCIgDQogDQpNb3Qg InNpZXUgZHUgYW4iIHZlIGR1b25nIHNhdCBjYW8gdG9jIHZvaSBzbyB2b24gY2hpZW0gNTAlIEdE UCBtb3QgbmFtIGN1YSBkYXQgDQpudW9jIGR1b2MgY2hvIGxhICJxdWEgbGFuZyBtYW4iLiBDb24g ImJhbiBzdW5nIHBoYXQgbW90IiBsYSBuaGFuIHhldCBkYW5oIGNobyBkaWV1IA0KaGFuaCBraW5o IHRlIC0geGEgaG9pLCBraG9uZyBjaGkgdHJvbmcgbmFtIHZ1YSBxdWEuIA0KDQooQW5oOiBRdW9j IGhvaSB0aGFvIGx1YW4gdGFpIHRvIHZlIHRpbmggaGluaCBraW5oIHRlLCB4YSBob2kuKSANCg0K TW9pIGNoaSBkdW5nIG8gcGhhbSB2aSB0dW5nIHRvLCBzb25nIGhhaSBidW9pIHRoYW8gbHVhbiB2 ZSBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBCYWMgDQqWIE5hbSB2YSB0aW5oIGhpbmgsIGtpbmgg dGUsIHhhIGhvaSwgbmdhbiBzYWNoIGN1YSBRdW9jIGhvaSBkYSBjaG8gdGhheSBuaHVuZyBiYW4g DQpraG9hbiwgbG8gbGFuZy4uLiBjdWEga2hvbmcgaXQgY2FjIHZpIGRhaSBiaWV1IGRlbiB0dSBt b2kgbWllbiBkYXQgbnVvYywgdHJlbiBuaGlldSANCmN1b25nIHZpIGNvbmcgdGFjIGRhIHNvbSBn YXAgbmhhdS4NCg0KRHUgcGhhbiB0aWNoIG8gbmhpZXUgZ29jIGRvLCBzb25nIHR1dSB0cnVuZyBs YWksIG5odW5nIHkga2llbiBjaHVhIG5oYXQgdHJpIGhpZW4gdGh1YyANCmhvYSAidW9jIG1vIiB2 ZSAidHV5ZW4gZHVvbmcgc2F0IGNhbyB0b2MgZGFpIG5oYXQgdGhlIGdpb2kgdm9pIDEuNTcwIGtt IG5odW5nIGxhaSBjaGkgDQpjbyAzNjQga20gZGkgdHJlbiBtYXQgZGF0IiBkZXUgbG8gbmdhaSBn YW5oIG5hbmcgbm8gbmFuIG1hIHRoZSBoZSBzYXUgcGhhaSB0cmEuIEtoaSANCm5nYW4gc2FjaCBk YSBraG9uZyBjb24gdGljaCBsdXkgdmEgc28gdGllbiBkaSB2YXkgbmdheSBjYW5nIHRhbmcgdGhl byBuaHVuZyAiZGFpIGR1IGFuIi4NCg0KVmEgY2FpIHN1ICJxdWEgbGFuZyBtYW4iIGN1YSBkdSBh biBkdW9uZyBzYXQgY2FvIHRvYywgdm9uIGRhIGR1b2MgcGhhbiB0aWNoIG8gbmhpZXUgDQp0byB0 aGFvIGx1YW4gY2hpZXUgMjEvNSwgbGFpIGR1b2Mga2hvbmcgaXQgdmkgZGFpIGJpZXUgbmhhbiBs YWkgdGFpIHBoaWVuIHRoYW8gbHVhbiB2ZSANCnRpbmggaGluaCBraW5oIHRlIC0geGEgaG9pIHNh bmcgaG9tIHNhdS4NCg0KQm9pLCBub2kgcmllbmcgdHJvbmcgbGluaCB2dWMgZ2lhbyB0aG9uZyB0 aGkgdGhlbyBuaGlldSB2aSBkYWkgYmlldSBRdW9jIGhvaSBkdSBhbiBuYXkgDQpjb24gbmhpZXUg ZGllbSBjaHVhIHRob25nIG5oYXQgdm9pIGNhYyBjaGllbiBsdW9jIHZhIHF1eSBob2FjaCB2ZSBn aWFvIHRob25nIGRhIA0KZHVvYyBwaGUgZHV5ZXQuDQoNCkNvbiBuaGluIHRvYW4gY2FuaCBidWMg dHJhbmgga2luaCB0ZSwgeGEgaG9pIHRoaSBuaGlldSB5IGtpZW4gY28gY3VuZyBuaGFuIHhldCBu aHUgDQpUcnVuZyB0dW9uZyBOZ3V5ZW4gVmFuIEhpZW4sIGxhIGNhY2ggZGlldSBoYW5oIGRhbmcg dGhlbyBraWV1ICJiYW4gc3VuZyBwaGF0IG1vdCIuDQoiQ2h1bmcgdGEgbmhhbSB2YW8gdHVuZyBt dWMgdGlldTogdGFuZyB0cnVvbmcsIGxhbSBwaGF0LCB0b25nIGRhdSB0dSB4YSBob2kuLi4gdGhl IA0Kbmh1bmcsIGNhbiBuaGF0IGxhIG1vdCBjaGllbiBsdW9jIHRvbmcgdGhlIGRlIGRvbiBjbyBo b2kgdGhpIGxhaSBjaHVhIGNvIi4NCg0KRGFpIGJpZXUgTmd1eWVuIE1pbmggSG9uZyAoVHAuSENN KSBkYXQgY2F1IGhvaTogbHVjIGtobyBraGFuIHRoaSAibm9uZyIgbGVuIHZpZWMgDQp0YWkgY28g Y2F1IG5lbiBraW5oIHRlLCBDaGluaCBwaHUgY3VuZyBnaWFvIGxhbSBjYSBtb3QgZGUgYW4sIG5o dW5nICJuYXkgdGhpIGNvIHZlIGRhIA0Kcm9pIHZhbyBxdWVuIGxhbmc/Ii4gQ2hpbmggcGh1IGNh biBjaHUgZG9uZyBzb20gZHVhIHJhIGR1b25nIGh1b25nLCBkYWkgYmlldSBIb25nIA0KZGUgbmdo aS4NCk1vdCBzbyB2aSBkYWkgYmlldSBraGFjIGN1bmcgY28gY2h1bmcgc3Ugc290IHJ1b3QgbmF5 LCBraGkgbmdheSB0dSBreSBob3AgdGh1IHR1LCANClF1b2MgaG9pIGRhIHhhYyBkaW5oIGNhbiBj byBkZSBhbiB0YWkgY28gY2F1IG5lbiBraW5oIHRlLiBWYSBDaGluaCBwaHUgZGEgeGFjIGRpbmgg DQpsYSBjYW4ga2hvYW5nIG1vdCBuYW0gZGUgeGF5IGR1bmcgZGUgYW4uDQoNClRhaSBreSBob3Ag dGh1IHNhdSB2YW8gY3VvaSBuYW0gMjAwOSwgbmhpZXUgZGFpIGJpZXUgY3VuZyBkYSBkZSBuZ2hp IGNhbiBiYXQgdGF5IHRhaSANCmNhdSB0cnVjIG5lbiBraW5oIHRlIG5nYXkgdHJvbmcgbmFtIDIw MTAuIFNvbmcgaGllbiBCbyBLZSBob2FjaCB2YSBEYXUgdHUgbW9pIGNoaSANCmd1aSBkZW4gZGFp IGJpZXUgZGUgY3VvbmcgeGF5IGR1bmcgY2hvIGRlIGFuIHF1YW4gdHJvbmcgbmF5Lg0KDQpUcmFv IGRvaSB2b2kgVm5FY29ub215IHRydW9jIHRoZW0ga3kgaG9wIHRodSBiYXksIG1vdCBzbyB2aSBk YWkgYmlldSBRdW9jIGhvaSANCmN1bmcgZGEgYmF5IHRvIG1vbmcgbXVvbiB0cm9uZyBreSBob3Ag bmF5IHNlIG5oYW4gZHVvYyBiYW4gZGUgYW4gdHVvbmcgZG9pIA0KaG9hbiBjaGluaC4gU29uZyBr eSBob3AgZGEgZGllbiByYSwgdmEgYmFuIGRlIGFuIHZhbiBjaGkgbmFtIHRyb25nLi4uIHRyb25n IGRvaS4NCg0KVHJvbmcgYnVvaSB0aGFvIGx1YW4gc2FuZyBxdWEsIFBobyB0cnVvbmcgZG9hbiBk YWkgYmlldSBRdW9jIGhvaSBUcC5IQ00gVHJhbiBEdSANCkxpY2ggcGhhdCBiaWV1LCBjYWkgZ29j IGN1YSBiYXQgb24ga2luaCB0ZSBWaWV0IE5hbSBsYSB4dWF0IHBoYXQgdHUgbW8gaGluaCB0YW5n IA0KdHJ1b25nIGtpbmggdGUsIHZvaSB0aGFtIGh1dCB0aHVvbmcgbWFpIGxvbiB0cmllbiBtaWVu LCBjYW5nIHh1YXQga2hhdSBjYW5nIHRhbmcgDQpuaGFwIGtoYXUsIG5oYXAgc2lldS4NCg0KIk5h bSBuZ29haSwgUXVvYyBob2kgZGEgeWV1IGNhdSBDaGluaCBwaHUgZHVhIHJhIGRlIGFuIGNodXll biBkb2kgbW8gaGluaCBraW5oIHRlIA0KZGUgY28gdGhlIGdpYWkgcXV5ZXQgdmFuIGRlIG5heS4g Q2FpIGRvYW5oIG5naGllcCBjYW4gbGEgZGluaCBodW9uZyBraW5oIHRlIHJvIHJhbmcgZGUgDQpo byBjaHV5ZW4gaHVvbmcgZGkgdGhlby4gVm9pIG1vdCBuZW4ga2luaCB0ZSB0aGllbiB2ZSBnaWEg Y29uZyBuaHUgaGllbiBuYXksIGNodW5nIHRhIA0KIGNoaSBjbyB0aGUgb24gZGluaCB2aSBtbyB0 aGFuaCBjb25nIG1vdCBjYWNoIG5oYXQgdGhvaSwga2hvbmcgdGhlIGdpYWkgcXV5ZXQgY2FjIA0K bmd1eWVuIG5oYW4gc2F1IHhhLCB0cnUgcGhpIGNodW5nIHRhIHBoYWkgdGFpIGNhdSB0cnVjIGxh aSBuZW4ga2luaCB0ZSIsIGRhaSBiaWV1IExpY2ggDQpuaGFuIG1hbmguDQpOaGlldSB5IGtpZW4g a2hhYyBjdW5nIGNoaSByYSwgdmkgdGhpZXUgbmh1bmcgcXV5ZXQgZGluaCBybyByYW5nIGNvIHRp bmggY2hpZW4gbHVvYywgDQpuZW4gbmVuIGtpbmggdGUgZHUgY2h1YSBwaGF0IHRyaWVuIGJlbiB2 dW5nIHNvbmcgZGEgY28gbmh1bmcgInlldSBrZW0gYmVuIHZ1bmciLiANCk5oaWV1IHZhbiBkZSBj aHVhIGNvIGxvaSBnaWFpIGNobyB0aGF0IGNhbiBjby4gRG8gbGEgdGFuZyB0cnVvbmcgZHVhIHRy ZW4gdGFuZyB2b24gDQpuZW4gZG9pIHNvbmcga2hvbmcgZHVvYyBjYWkgdGhpZW4gdHVvbmcgeHVu Zy4gRG8gY29uIGxhIGxhbSBwaGF0IGNhbywgYm9pIGNoaSBsb24sIA0Kbm8gbmFuIHRhbmcuLi4u LCB2YSBkYWMgYmlldCBsYSBjYWMgdmFuIGRlIG1vaSB0cnVvbmcgZGEgInRybyBuZW4gYnVjIHh1 YyBob24gYmFvIGdpbyANCmhldCIsIG5odW5nIGdpYWkgcGhhcCBsYWkgcmF0IG5oZS4NCg0KTmh1 bmcgeWV1IGtlbSBkbyBzZSBhbmggaHVvbmcgdGhlIG5hbyBkZW4gdmllYyB0aHVjIGhpZW4gbmdo aSBxdXlldCBjdWEgUXVvYyBob2kgDQp2ZSBrZSBob2FjaCBwaGF0IHRyaWVuIGtpbmggdGUgLSB4 YSBob2kgbmFtIDIwMTAgY3VuZyBsYSBjYXUgaG9pIGR1b2MgbmhpZXUgdmkgZGFpIGJpZXUgbmV1 IHJhLg0KDQpUdSBtb3QgZ29jIG5oaW4gbGFjIHF1YW4gaG9uLCBVeSB2aWVuIFRodW9uZyB0cnVj IFV5IGJhbiBUYWkgY2hpbmggLSBOZ2FuIHNhY2ggDQpjdWEgUXVvYyBob2ksIGRhaSBiaWV1IFRy YW4gVmFuIGNobyByYW5nLCBuZXUgc3UgY2FuIGJhbmcgZ2l1YSBvbiBkaW5oIHZpIG1vIHZhIA0K dGFuZyB0cnVvbmcgdHJvbmcgZ2lhaSBkb2FuIGhpZW4gbmF5IGR1b2MgZ2l1IHZ1bmcgdGhpIGNo YWMgY2hhbiBjYWMgY2hpIHRpZXUgY28gYmFuIA0KY3VhIGtlIGhvYWNoIHBoYXQgdHJpZW4ga2lu aCB0ZSwgeGEgaG9pIG5hbSAyMDEwIHNlIGR1b2MgdGh1YyBoaWVuIHZhIGNvIHRoZSBzZSBob2Fu IA0KdGhhbmggbyBtdWMgY2FvIGhvbi4gVGhhbSBodXQgY2FuIGNhbiB0aGFuaCB0b2FuIHZhbmcg bGFpIHNlIGR1b2MgdGh1IGhlcCwgZHUgdHJ1IA0KbmdvYWkgaG9pIHNlIGR1b2MgY2FpIHRoaWVu LCBib2kgY2hpIG5nYW4gc2FjaCBnaWFtIHRoZW8gaHVvbmcgdGljaCBjdWMsIG5vIGNvbmcgZHVv YyBnaXUgbyBtdWMgYW4gdG9hbi4NCg0KVHV5IG5oaWVuLCB0aGVvIGRhaSBiaWV1IFRyYW4gVmFu LCBkZSBwaGF0IHRyaWVuIGJlbiB2dW5nIHRyb25nIHRydW5nIHZhIGRhaSBoYW4sIA0KVmlldCBO YW0gdmFuIGNhbiB0aWVwIHR1YyBnaWFpIHF1eWV0IGNhYyB2YW4gZGUgdmUgY28gY2F1IG5odSB0 aW5oIGhpZXUgcXVhIGN1YSBuZW4gDQpraW5oIHRlIHF1YSBoZSBzbyBJQ09SIChkbyBsdW9uZyBz byBkb24gdmkgZGF1IHR1IHRpbmggdGhlbyAlIEdEUCBkZSB0YW8gcmEgbW90IGRvbg0KIHZpIHRh bmcgdHJ1b25nIEdEUCksIG5oYXQgbGEga2hpIGNodW5nIHRhIGRhbmcgY2h1YW4gYmkga2hvaSBk b25nIG1vdCBsb2F0IGNhYyANCmR1IGFuIGxvbiwgcXVhbiB0cm9uZyBjdWEgcXVvYyBnaWEuDQoN CkJlbiBjYW5oIGRvLCBjYWMgdGllbSBuYW5nIGxvbiwgbG9pIHRoZSBzbyBzYW5oIGN1YSBkYXQg bnVvYyBjYW4gZHVvYyB0YXAgdHJ1bmcgcGhhdCANCmh1eSBkZSBWaWV0IE5hbSBsdW9uIGxhIGRp ZW0gZGVuIGhhcCBkYW4gY3VhIGNhYyBuaGEgZGF1IHR1IG51b2MgbmdvYWkgdGluaCB0b25nIA0K dGhlIHRoZW8gY2hpIHNvIGNhbmggdHJhbmggcXVvYyBnaWEuIENoaWVuIGx1b2MgcGhhdCB0cmll biBraW5oIHRlIC0geGEgaG9pIGdpYWkgZG9hbiANCjIwMTEgLSAyMDIwIHZhIGtlIGhvYWNoIHBo YXQgdHJpZW4ga2luaCB0ZSAtIHhhIGhvaSBnaWFpIGRvYW4gbmFtIDIwMTEtMjAxNSBoaWVuIA0K ZGFuZyBkdW9jIHNvYW4gdGhhbyB0aGVvIGh1b25nIG5heSwgZGFpIGJpZXUgVHJhbiBWYW4gY2hv IGJpZXQuIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzM4ODczMS9WaW5h c2hpbi1jby1jaGUlQzIlQTBkb2MtbmhhdC12by1uaGklRTIlODAlOUQuaHRtbCBDYW0gVmFuIEtp bmggMDcvMDcvMjAxMCwgMDc6NTYgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBWaW5hc2hpbiAtIENv IGNoZSAiZG9jIG5oYXQgdm8gbmhpIiAtIG5ndXllbiBuaGFuIGRhbiB0b2kgc2EgbGF5LCBraHVu ZyBob2FuZyANCg0KT25nIFBoYW0gVGhhbmggQmluaCwgY2h1IHRpY2ggaG9pIGRvbmcgcXVhbiB0 cmkgVmluYXNoaW4sIGRhIGJvIG5oaWVtIGVtIHJ1b3QsIGNvbiANCnRyYWkgdmFvIGNhYyBjaHVj IHZ1IGNodSBjaG90LCBjaGluaCB2aSBjbyBjaGUgdGFwIHF1eWVuIG1hIG9uZyB0YSBjbyBkdW9j Lg0KDQpUYXAgdHJ1bmcgcXV5ZW4gbHVjDQoNClR1IHRoYW5nIDEtMTk5NiwgdHUgdmllbiBwaG8g VmllbiBOZ2hpZW4gY3V1IHRoaWV0IGtlIGNvIGtoaSBnaWFvIHRob25nIHZhbiB0YWksIG9uZyAN ClBoYW0gVGhhbmggQmluaCBkdW9jIGJvIG5oaWVtIGxhbSB0b25nIGdpYW0gZG9jIFRvbmcgY29u ZyB0eSBDb25nIG5naGllcCB0YXUgdGh1eS4gDQpUdSBuYW0gMTk5OCwgb25nIEJpbmggZHVvYyBs YW0gY2h1IHRpY2ggdG9uZyBjb25nIHR5IGtpZW0gdG9uZyBnaWFtIGRvYy4gDQoNCkRlbiBuYW0g MjAwNywga2hpIGR1b2MgdGhpIGRpZW0gbW8gaGluaCB0YXAgZG9hbiwgZHVuZyBvIHZpIHRyaSBj YW8gbmhhdCBsYSBjaHUgdGljaCANCkhEUVQsIG9uZyBCaW5oIHZhbiB0aWVwIHR1YyBnaXUgY2h1 YyB0b25nIGdpYW0gZG9jLiBDb25nIHZpZWMgY3VhIGNodSB0aWNoIHZhIHRvbmcgDQpnaWFtIGRv YyByYXQga2hhYyBuaGF1LCBraGkgY28geSBraWVuIG5lbiB0aW0gY2FuIGJvIGNvIG5hbmcgbHVj IGRlIHBoYW4gY29uZywgcGhhbiANCm5oaWVtIGNodWMgdG9uZyBnaWFtIGRvYywgb25nIEJpbmgg ZGEgeGluIHkga2llbiB2YSBsYXAgZGlldSBsZSB0YXAgZG9hbiwgdGhlbyBkbyANClZpbmFzaGlu IGtob25nIGNoaSBjbyBtb3QgdG9uZyBnaWFtIGRvYyBtYSBjbyB0b2kgc2F1IHZpLiANCg0KVGhl byBjYWMgY2h1eWVuIGdpYSBraW5oIHRlLCBjbyB0aGUgbm9pIGRheSBsYSBjbyBjaGUgImRvYyBu aGF0IHZvIG5oaSIgbyBWTjogbW90IHRhcCANCmRvYW4gY28gc2F1IHRvbmcgZ2lhbSBkb2Mgbmh1 bmcgY2FjIHRvbmcgZ2lhbSBkb2MgdmFuIGdoaSBybyBsYSB0b25nIGdpYW0gZG9jIGtpbmggDQpk b2FuaCwgdG9uZyBnaWFtIGRvYyBub2kgY2hpbmgsIHRvbmcgZ2lhbSBkb2MgZGF1IHR1Li4uDQoN ClRodWMgY2hhdCBjYWMgdG9uZyBnaWFtIGRvYyB0cmVuIHZhbiBnaXUgY2h1YyBuYW5nIHBobyB0 b25nIHZhIG9uZyBCaW5oIHRyZW4gdGh1YyB0ZSANCnZhbiBkdW9uZyBuaGllbiBuYW0gcXV5ZW4g ZGlldSBoYW5oIGN1YSB0b25nIGdpYW0gZG9jLg0KDQpNdWEgdGF1IDEuMzkwIHRpIGRvbmcga2hv bmcgcXVhIGhvaSBkb25nIGRpbmggZ2lhDQoNCkNoaW5oIHZpIHN1IHRhcCBxdXllbiBuYXkgbmVu IGNvIG5oaWV1IHF1eWV0IGRpbmggZGF1IHR1LCBvbmcgUGhhbSBUaGFuaCBCaW5oIGt5IG1hIA0K bmhpZXUgdGhhbmggdmllbiBIRFFULCB0b25nIGdpYW0gZG9jIGtoYW5nIGRpbmguLi4ga2hvbmcg aGUgZHVvYyBiaWV0LiBEaWVuIGhpbmggbGEgDQp2aWVjIG11YSB0YXUgSG9hIFNlbiBuZ2F5IDct NS0yMDA3LCBkdSBnaWEgdHJpIHJhdCBsb24sIGxlbiB0b2kgMS4zOTAgdGkgZG9uZyBuaHVuZyB2 aWVjIA0KbmF5IGR1b2MgZ2lhbyBjaG8gQ29uZyB0eSB2YW4gdGFpIHZpZW4gZHVvbmcgVmluYXNo aW4gbXVhLCBjaHUgdGljaCBIRFFUIFBoYW0gDQpUaGFuaCBCaW5oIGt5LCBraG9uZyBoZSBxdWEg aG9pIGRvbmcgZGluaCBnaWEgdmEgbXVhIG5oYW5oIGRlbiBub2kgbXVhIHZlIHJvaS4uLiBjYWMg Ym8gbW9pIGJpZXQuIA0KDQpTYXUgdnUgbXVhIHRhdSBIb2EgU2VuLCBWaW5hc2hpbiBjb24gZHUg ZGluaCBtdWEgdGllcCB0YXUgSG9hIFNlbiAyLCB0dXkgbmhpZW4gZG8gY2FjIA0KdGhhbmggdmll biBIRFFULCBiYW4gdG9uZyBnaWFtIGRvYyBkYSBiaWV0IHZhIHBoYW4gZG9pIHF1eWV0IGxpZXQg bmVuIGhvcCBkb25nIG11YSBIb2EgU2VuIDIga2hvbmcgZHVvYyBreS4NCg0KTW90IG5hbSBiYSBs YW4gYm8gbmhpZW0gY29uIHRyYWkNCg0KVGhlbyBkYW5oIGdpYSBjdWEgY2hpbmggY2FjIG5oYW4g dmllbiBWaW5hc2hpbiwgc3UgdGFwIHRydW5nIHF1eWVuIGx1YyBxdWEgbG9uIGRhIGtoaWVuIA0K b25nIEJpbmggZGUgZGFuZyByYSBxdXlldCBkaW5oIHZhIGRlbiBuYXkgYmkga2V0IGx1YW4gc2Fp IHF1eSBkaW5oIGtoaSBibyBuaGllbSBjb24sIGVtIA0KdmFvIGNhYyB2aSB0cmkgY2h1IGNob3Qg ZGFpIGRpZW4gcGhhbiB2b24gbmhhIG51b2MuIEN1IHRoZSwgY29uIHRyYWkgb25nIFBoYW0gVGhh bmggDQpCaW5oIGxhIFBoYW0gQmluaCBNaW5oIChzaW5oIG5hbSAxOTgwKSBraGkgY2h1YSB0b2kg MjcgdHVvaSBkYSBkdW9jIGJvIG5oaWVtIGxhbSB2aWVuIHBobyBWaWVuIEtob2EgaG9jIGNvbmcg bmdoZSB0YXUgdGh1eS4gDQoNClR1IG5hbSAyMDA3LCBvbmcgUGhhbSBCaW5oIE1pbmggbGllbiB0 aWVwIGR1b2MgYm8gbmhpZW0sIGNvIG5hbSBuaHUgMjAwOSBkdW9jIGJvIA0KbmhpZW0gdG9pIGJh IGxhbjogbmdheSAyNy0zLTIwMDkgYm8gbmhpZW0gbGFtIGNodSB0aWNoIEhEUVQgQ29uZyB0eSBU TkhIIFR1IHZhbiANCnRoaWV0IGtlIGNvbmcgbmdoaWVwLiBOZ2F5IDE2LTcgZHVvYyBibyBuaGll bSBraWVtIGNodWMgZ2lhbSBkb2MgcGhvbmcgdGhpIG5naGllbSANCnRyb25nIGRpZW0gdGh1b2Mg VmllbiBLaG9hIGhvYyBjb25nIG5naGUgdGF1IHRodXkuIE5nYXkgMjItMTIgZHVvYyBibyBuaGll bSBraWVtIA0KcGhvIHRvbmcgZ2lhbSBkb2MgVG9uZyBjb25nIHR5IENvbmcgbmdoaWVwIHRhdSB0 aHV5IER1bmcgUXVhdCAtIG1vdCBkb2FuaCBuZ2hpZXAgDQpkdW9jIGRhdSB0dSBsb24gZGUgdHJv IHRoYW5oIG5oYSBtYXkgZG9uZyB0YXUgbG9uIG5oYXQgRG9uZyBOYW0gQS4gDQoNClZpZWMgYm8g bmhpZW0gY29uIHRyYWkga2llbSBuaGllbSBjYWMgY2h1YyB2dSAidG8iLCBvbmcgQmluaCBraG9u ZyBoZSB4aW4geSBraWVuIGJhbiANCnRodW9uZyB2dSBkYW5nIHV5IHRhcCBkb2FuIHZhIGtob25n IGNvIG5naGkgcXV5ZXQgY3VhIEhEUVQuDQoNCkVtIHRyYWkgb25nIEJpbmggbGEgUGhhbSBUaGFu aCBQaG9uZyBjdW5nIGR1b2MgYm8gbmhpZW0gbGFtIHBobyB0b25nIGdpYW0gZG9jIA0KQ29uZyB0 eSBkYXUgdHUgeGF5IGR1bmcgVmluYXNoaW4gcm9pIGR1b2MgY3UgbGFtIGRhaSBkaWVuIHBoYW4g dm9uIGNvbmcgdHkgbmF5LCBnaXUgDQpjaHVjIGNodSB0aWNoIEhEUVQga2llbSBnaWFtIGRvYyBD b25nIHR5IGNvIHBoYW4gVmluYXNoaW4gLSB0dSB2YW4gZGF1IHR1LiBFbSB2byANCm9uZyBQaGFt IFRoYW5oIEJpbmgsIHRoZW8gY2FjIHF1eWV0IGRpbmggY3VhIFZpbmFzaGluLCBjdW5nIGR1b2Mg Z2l1IGNodWMgdHJ1b25nIGJhbiANCmtpbmggZG9hbmggZG9pIG5nb2FpIC0gbW90IHZpIHRyaSBk YXkgcXV5ZW4gbHVjIHRyb25nIHRhcCBkb2FuLiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgt dHJpLVhhLWhvaS8zODg3MzEvVmluYXNoaW4tY28tY2hlJUMyJUEwZG9jLW5oYXQtdm8tbmhpJUUy JTgwJTlELmh0bWwgTEUgS0lFTiB0aHVjIGhpZW4gIDA3LzA3LzIwMTAsIDA3OjU2IChHTVQrNykg DQoNClRodSB0dW9uZzogQ2FuIHh1IGx5IHJvdCByYW8gc2FpIHBoYW0gdHJvbmcgdnUgVmluYXNo aW4NCg0KRGFpIGJpZXUgVnUgUXVhbmcgSGFpICh1eSB2aWVuIFV5IGJhbiBQaGFwIGx1YXQgY3Vh IFF1b2MgaG9pKSBjaG8gYmlldDogDQoNCi0gQmFuZyBuaHVuZyB0aG9uZyB0aW4gY28gZHVvYyBk byBjdSB0cmkgY3VuZyBjYXAsIGNodW5nIHRvaSBkYSBjaGF0IHZhbiB0YWkgY2FjIGt5IGhvcCAN CmN1YSBRdW9jIGhvaSB2ZSBzYWkgcGhhbSBjdWEgVmluYXNoaW4uIERheSBjdW5nIGxhIHZhbiBk ZSBuaGlldSBuZ3VvaSBkYSBuaGluIHRoYXkuDQoNCkRvaSBjaGlldSB2b2kgY2FjIHF1eSBkaW5o IGN1YSBwaGFwIGx1YXQgdGhpIGNvIG5odW5nIHZhbiBkZSBjYW4gZHVvYyB4ZW0geGV0IGR1b2kg Z29jIA0KZG8gdHJhY2ggbmhpZW0sIGNvbiB0cmFjaCBuaGllbSBoYW5oIGNoaW5oIGhheSB0cmFj aCBuaGllbSBoaW5oIHN1LCBjYWMgY28gcXVhbiBiYW8gdmUgDQpwaGFwIGx1YXQgY3VuZyBjYW4g c29tIHhlbSB4ZXQsIGtldCBsdWFuLg0KDQotIFF1eSBkaW5oIGN1YSBEYW5nIHZhIE5oYSBudW9j IHZlIHZpZWMgbmF5IGRhIHJhdCBjdSB0aGUgcm9pLiBWaWVjIG9uZyBheSBibyBuaGllbSBlbSAN CnJ1b3QsIGNvbiB0cmFpIGNoaWVtIGdpdSBjYWMgdmkgdHJpIHF1YW4gdHJvbmcgY3VhIHRhcCBk b2FuIHNvIHNvIHJhIGRheSwga2hvbmcgdGhlIG5vaSBsYSANCmNvIHF1YW4gcXVhbiBseSBuaGEg bnVvYyBraG9uZyBiaWV0LiBWYXkgdGFpIHNhbyBraG9uZyB4dSBseSBzb20gbmh1bmcgdmllYyBs YW0gdHJhaSANCnZvaSBxdXkgZGluaCBjdWEgTmhhIG51b2M/IERhbmcgc2F1IGNodXllbiBuYXkg bGEgdGhlIG5hbyB0b2kgeGluIGtob25nIGJpbmggbHVhbi4gDQpOaHVuZyB0b2kgbmdoaSB0cmFj aCBuaGllbSBjdWEgY28gcXVhbiBxdWFuIGx5IGtoaSBwaGF0IGhpZW4gc2FpIHBoYW0gcGhhaSB4 dSBseSBuZ2F5IGNodSBraG9uZyB0aGUgZGUgbGF1IGRhaSB2YXkgZHVvYy4gDQoNCmh0dHA6Ly90 dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMzg4NzMxL1ZpbmFzaGluLWNvLWNoZSVDMiVBMGRv Yy1uaGF0LXZvLW5oaSVFMiU4MCU5RC5odG1sIEwuS0lFTiAtIEwuTi5NaW5oIGdoaSAwNy8wNy8y MDEwLCAwNzo1NiAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IENvIHN1IGJ1b25nIGxvbmcgcXVhbiBs eSBkb2kgdm9pIFZpbmFzaGluIA0KDQpEYWkgYmlldSBOZ28gVmFuIE1pbmggKHV5IHZpZW4gVXkg YmFuIFBoYXAgbHVhdCBjdWEgUXVvYyBob2kpIHBoYW4gdGljaDogDQoNClRyb25nIG5vaSBkdW5n IGtldCBsdWFuIGN1YSBVeSBiYW4gS2llbSB0cmEgdHJ1bmcgdW9uZyBjbyBkb2FuIG5vaSBWaW5h c2hpbiBiYW8gY2FvIA0KdGhpZXUgdHJ1bmcgdGh1YyB2b2kgQ2hpbmggcGh1LCBibyB0cnVvbmcg Qm8gR2lhbyB0aG9uZyB2YW4gdGFpIGN1bmcgbm9pIGtob25nIGJpZXQgDQpWaW5hc2hpbiBtdWEg dGF1IEhvYSBTZW4uLi4gRG8gbGEgbmh1bmcgZGlldSBoZXQgc3VjIHF1YW4gbmdhaS4gTm9pIGxh IGRhIHBoYW4gY2FwLCANCnBoYW4gcXV5ZW4gbmh1bmcgZGUgdGluaCB0cmFuZyB4YXkgcmEgZGVu IG11YyBuaHUgdmF5IHRoaSBjb25nIHRhYyBraWVtIHRyYSwgZ2lhbSBzYXQgY3VhIGNvIHF1YW4g bmhhIG51b2Mgcm8gcmFuZyBsYSB5ZXUga2VtLiANCg0KVGFpIHNhbyBkdSBsdWFuIGJ1YyB4dWMg dmUgVmluYXNoaW4gbmhpZXUgbmFtIG5heSBuaHVuZyBjbyBxdWFuIHF1YW4gbHkgbmhhIG51b2Mg DQpraG9uZyBraXAgdGhvaSBraWVtIHRyYSwgeHUgbHk/IFRvaSByYXQgYmFuIGtob2FuIHZhIGNo byByYW5nIGRheSBjaGluaCBsYSBzdSBidW9uZyBsb25nIHF1YW4gbHkuDQoNCmh0dHA6Ly90dW9p dHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMzg4NzMxL1ZpbmFzaGluLWNvLWNoZSVDMiVBMGRvYy1u aGF0LXZvLW5oaSVFMiU4MCU5RC5odG1sIEwuS0lFTiAtIEwuTi5NaW5oIGdoaSAwNy8wNy8yMDEw LCAwNzo1NiAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IENvIHN1IGJ1b25nIGxvbmcgcXVhbiBseSB0 cm9uZyB2dSBWaW5hc2hpbiANCg0KQ2h1IHRpY2ggSERRVCBWaW5hc2hpbiBibyBuaGllbSBlbSBy dW90IHZhIGNvbiB0cmFpIHZhbyBjYWMgdmkgdHJpIHF1YW4gdHJvbmcgY3VhIHRhcCANCmRvYW4g bGEgc2FpIHZvaSBxdXkgZGluaCBjdWEgRGFuZyB2YSBOaGEgbnVvYy4gVmF5IHRvaSB4aW4gaG9p IG5vaSBibyBvIFZpbmFzaGluIHRoZSANCm5hbz8gQ29uZyB0YWMgY3VhIGRhbmcgYm8sIGNoaSBi bywgdG8gY2h1YyBvIGRheSB0aGUgbmFvPyBDYSBtb3QgdGFwIHRoZSBIRFFUIG5odSB0aGUgDQpt YSBzYW8gZGUgb25nIGF5IHRoYW8gdHVuZyBuaHUgdmF5PyBEaWV1IG5heSBoZXQgc3VjIHZvIGx5 LiBUb2kgZGUgbmdoaSBjYW4gcGhhaSBsYW0gcm8gDQp2YSBjb25nIGtoYWkgZGUgbmhhbiBkYW4g YmlldCBuZ29uIG5ndW9uIHN1IHZpZWMuIA0KDQpodHRwOi8vdHRuZ2J0LndvcmRwcmVzcy5jb20v MjAxMC8wNy8xNy9zJUUxJUJCJTkxbmctY2h1bmctdiVFMSVCQiU5QmktdGhvbmctdGluLWRhLWNo aSVFMSVCQiU4MXUvIEhEUyANCg0KVmllYyBzYXAgbmhhcCBkb2FuaCBuZ2hpZXAgdmFuIHRhaSBj dWEgVklOQVNISU4gdmFvIFZJTkFMSU5FUyANCnRoZW8gUXV5ZXQgZGluaCA5MjYvUUQtVFRHIGN1 YSBUaHUgdHVvbmcgbGEgdHJ1b25nIGhvcCBUYXAgVHJ1bmcgS2luaCBUZSBiaSBjYW0gDQoNClRo ZW8gcXV5ZXQgZGluaCA5MjYvUUQtVFRnIG5nYXkgMTgvNi8yMDEwIHRyb25nIHNvIGNhYyBkb2Fu aCBuZ2hpZXAgZHVvYyBkaWV1IA0KY2h1eWVuIHZlIFRvbmcgY29uZyB0eSBIYW5nIGhhaSBWaWV0 IE5hbSAoVmluYWxpbmVzKSBjbyBDb25nIHR5IFZhbiB0YWkgQmllbiBEb25nLCAgDQpDb25nIHR5 IFROSEggMSB0aGFuaCB2aWVuIFZhbiB0YWkgVmllbiBEdW9uZyBWaW5hc2hpbiwgcGhhbiB2b24g Z29wIGN1YSBUYXAgZG9hbiANClZpbmFzaGluIHRyb25nIGNhYyBkb2FuaCBuZ2hpZXAgdmFuIHRh aSBiaWVuIGtoYWMuIFRob2kgZ2lhbiBiYW4gZ2lhbyB0dSAxLzcvMjAxMCB2YSBrZXQgDQp0aHVj IHF1eSAzLzIwMTAuDQoNCkx1YXQgRG9hbmggbmdoaWVwIHNvIDYwLzIwMDUvUUgxMSBuZ2F5IDI5 LzExLzIwMDUgcXV5IGRpbmg6DQoNCiJEaWV1IDE2Ni4gQ2h1eWVuIGRvaSBjb25nIHR5IG5oYSBu dW9jDQoxLiBUaHVjIGhpZW4gdGhlbyBsbyB0cmluaCBjaHV5ZW4gZG9pIGhhbmcgbmFtLCBuaHVu ZyBjaGFtIG5oYXQgdHJvbmcgdGhvaSBoYW4gYm9uIA0KbmFtIGtlIHR1IG5nYXkgTHVhdCBuYXkg Y28gaGlldSBsdWMsIGNhYyBjb25nIHR5IG5oYSBudW9jIHRoYW5oIGxhcCB0aGVvIHF1eSBkaW5o IGN1YSANCkx1YXQgZG9hbmggbmdoaWVwIG5oYSBudW9jIG5hbSAyMDAzIHBoYWkgY2h1eWVuIGRv aSB0aGFuaCBjb25nIHR5IHRyYWNoIG5oaWVtIGh1dSANCmhhbiBob2FjIGNvbmcgdHkgY28gcGhh biB0aGVvIHF1eSBkaW5oIGN1YSBMdWF0IG5heS4NCg0KRGlldSAxNzEuIEhpZXUgbHVjIHRoaSBo YW5oDQoxLiBMdWF0IG5heSBjbyBoaWV1IGx1YyB0aGkgaGFuaCB0dSBuZ2F5IDAxIHRoYW5nIDcg bmFtIDIwMDYiLg0KDQpOaHUgdmF5IGR1bmcgdm9pIGNhbSBrZXQgV1RPLCBrZSB0dSBuZ2F5IDEv Ny8yMDEwLCBMdWF0IERvYW5oIG5naGllcCBuaGEgbnVvYyBoZXQgDQpoaWV1IGx1YywgY2FjIGNv bmcgdHkgbmhhIG51b2Mgc2UgY2h1eWVuIGRvaSBzYW5nIGhvYXQgZG9uZyB0aGVvIEx1YXQgRG9h bmggbmdoaWVwLiBUdSANCm5heSBjYWMgZG9hbmggbmdoaWVwIGJhdCBrZSB0aHVvYyB0aGFuaCBw aGFuIGtpbmggdGUgbmFvIGRldSBwaGFpIHRoZW8gbW90IGx1YXQgY2hvaSANCmNodW5nLg0KDQpD dW5nIHRoZW8gTHVhdCBEb2FuaCBuZ2hpZXAgMjAwNSwgZG9hbmggbmdoaWVwIGNoaSBjbyAwNCBs b2FpIGhpbmg6IERpZXUgMzgsIDYzIJYgDQpDb25nIHR5IFROSEg7IERpZXUgNzcgliBDb25nIHR5 IGNvIHBoYW47IERpZXUgMTMwIJYgQ29uZyB0eSBob3AgZGFuaDsgRGlldSAxNDEtIA0KRG9hbmgg bmdoaWVwIHR1IG5oYW4uIE5nb2FpIHJhIGtob25nIGNvbiBsb2FpIGhpbmggZG9hbmggbmdoaWVw IG5hbyBraGFjLiBEZSBjaGFwIA0KaGFuaCBMdWF0IERvYW5oIG5naGllcCAyMDA1LCB0cm9uZyB0 aGFuZyA2LzIwMTAgZG9uZyBsb2F0IGNhYyBjb25nIHR5IG1lIHR1YyBjYWMgdGFwIA0KZG9hbiBr aW5oIHRlIG5oYSBudW9jLCBjYWMgdG9uZyBjb25nIHR5IG5oYSBudW9jIGRhIGRvbmcgbG9hdCBj aHV5ZW4gc2FuZyBsb2FpIGhpbmggDQpkb2FuaCBuZ2hpZXAgliBjb25nIHR5IFROSEggbW90IHRo YW5oIHZpZW4sIGxhIG1vdCBsb2FpIGN1YSBjb25nIHR5IFROSEgsIGRlIGNhbiANCmRpY2ggdHJ1 b2MgMDEvNy8yMDEwLg0KDQpMdWF0IGNhbmggdHJhbmggbmdheSAwMy8xMi8yMDA0LCBjbyBoaWV1 IGx1YyB0dSAwMS83LzIwMDUgcXV5IGRpbmg6DQoNCiJEaWV1IDE4LiBUcnVvbmcgaG9wIHRhcCB0 cnVuZyBraW5oIHRlIGJpIGNhbQ0KDQpDYW0gdGFwIHRydW5nIGtpbmggdGUgbmV1IHRoaSBwaGFu IGtldCBob3AgY3VhIGNhYyBkb2FuaCBuZ2hpZXAgdGhhbSBnaWEgdGFwIHRydW5nIGtpbmggDQp0 ZSBjaGllbSB0cmVuIDUwJSB0cmVuIHRoaSB0cnVvbmcgbGllbiBxdWFuLCB0cnUgdHJ1b25nIGhv cCBxdXkgZGluaCB0YWkgRGlldSAxOSBjdWEgTHVhdCANCm5heSBob2FjIHRydW9uZyBob3AgZG9h bmggbmdoaWVwIHNhdSBraGkgdGh1YyBoaWVuIHRhcCB0cnVuZyBraW5oIHRlIHZhbiB0aHVvYyBs b2FpIGRvYW5oIA0KbmdoaWVwIG5obyB2YSB2dWEgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0 Lg0KDQpEaWV1IDE5LiBUcnVvbmcgaG9wIG1pZW4gdHJ1IGRvaSB2b2kgdGFwIHRydW5nIGtpbmgg dGUgYmkgY2FtDQoNClRhcCB0cnVuZyBraW5oIHRlIGJpIGNhbSBxdXkgZGluaCB0YWkgRGlldSAx OCBjdWEgTHVhdCBuYXkgY28gdGhlIGR1b2MgeGVtIHhldCBtaWVuIHRydSANCnRyb25nIGNhYyB0 cnVvbmcgaG9wIHNhdSBkYXk6DQoNCjEuIE1vdCBob2FjIG5oaWV1IGJlbiB0aGFtIGdpYSB0YXAg dHJ1bmcga2luaCB0ZSBkYW5nIHRyb25nIG5ndXkgY28gYmkgZ2lhaSB0aGUgaG9hYyBsYW0gDQp2 YW8gdGluaCB0cmFuZyBwaGEgc2FuOw0KMi4gVmllYyB0YXAgdHJ1bmcga2luaCB0ZSBjbyB0YWMg ZHVuZyBtbyByb25nIHh1YXQga2hhdSBob2FjIGdvcCBwaGFuIHBoYXQgdHJpZW4ga2luaCB0ZSAN CpYgeGEgaG9pLCB0aWVuIGJvIGt5IHRodWF0LCBjb25nIG5naGUiLg0KDQpUaGVvIFRob25nIGNh byBiYW8gY2hpIHNvIDQ0MDEvQkdUVlQtVlAgdi92IFRhaSBjbyBjYXUgVGFwIGRvYW4gVmluYXNo aW4gbmdheSANCjAxLzcvMjAxMCBjdWEgQm8gR2lhbyB0aG9uZyB2YW4gdGFpIGxhIGRlICJkdXkg dHJpLCBwaGF0IHRyaWVuIG5nYW5oIGNvbmcgbmdoaWVwIGNvIGtoaSANCmRvbmcsIHN1YSBjaHVh IHRhdSBiaWVuOyBraGFpIHRoYWMgc3UgZHVuZyBjbyBoaWV1IHF1YSBjYWMgZHUgYW4sIGNhYyBu YW5nIGx1YyBzYW4geHVhdCANCmtpbmggZG9hbmggZGEgdmEgZGFuZyBkYXUgdHU7IGtob25nIGRl IGFuaCBodW9uZyB0aWV1IGN1YyBkZW4gaG9hdCBkb25nIGN1YSBjYWMgdG8gDQpjaHVjIHRpbiBk dW5nIi4gTmdoaWEgbGEgbXVjIGRpY2ggdGFpIGNvIGNhdSBUYXAgZG9hbiBWaW5hc2hpbiBraG9u ZyB0aHVvYyB0cnVvbmcgaG9wIA0KbWllbiB0cnUgY3VhIERpZXUgMTksIEx1YXQgY2FuaCB0cmFu aC4NCg0KIkRpZXUgMTYuIFRhcCB0cnVuZyBraW5oIHRlDQpUYXAgdHJ1bmcga2luaCB0ZSBsYSBo YW5oIHZpIGN1YSBkb2FuaCBuZ2hpZXAgYmFvIGdvbToNCjEuIFNhcCBuaGFwIGRvYW5oIG5naGll cDsNCjIuIEhvcCBuaGF0IGRvYW5oIG5naGllcDsNCjMuIE11YSBsYWkgZG9hbmggbmdoaWVwOw0K NC4gTGllbiBkb2FuaCBnaXVhIGNhYyBkb2FuaCBuZ2hpZXA7DQo1LiBDYWMgaGFuaCB2aSB0YXAg dHJ1bmcga2luaCB0ZSBraGFjIHRoZW8gcXV5IGRpbmggY3VhIHBoYXAgbHVhdCIuDQoNClRoZW8g YmFvIENvbmcgdGh1b25nIGRpZW4gdHUsIDE4OjA0OjAwIDI4LzQvMjAxMDoNClZpbmFsaW5lcyBj aGllbSA1MCUgdGhpIHBoYW4gdmFuIHRhaSBoYW5nIGhhaSBub2kgZGlhIA0KDQpTYXUgMTUgbmFt IGhvYXQgZG9uZywgVG9uZyBjb25nIHR5IEhhbmcgaGFpIFZpZXQgTmFtIChWaW5hbGluZXMpIGRh IHRybyB0aGFuaCBtb3QgDQp0aHVvbmcgaGlldSB2YW4gdGFpIHNvIG1vdCB0cm9uZyBudW9jIHZh IGNvIHV5IHRpbiBjYW8gdGFpIHRoaSB0cnVvbmcga2h1IHZ1YyBjdW5nIG5odSANCnRyZW4gdGhl IGdpb2kgdm9pIGRvaSB0YXUgbGVuIHRvaSAxNTAgY2hpZWMgY28gdG9uZyB0cm9uZyB0YWkgMiw3 IHRyaWV1IHRhbi4gDQoNCkNvbmcgdGh1b25nIC0gTGEgbW90IHRvbmcgY29uZyB0eSBsb24gaG9h dCBkb25nIGNodSB5ZXUgdHJvbmcgbGluaCB2dWMgdmFuIHRhaSBiaWVuLCANCmtoYWkgdGhhYyBj YW5nIHZhIGRpY2ggdnUgaGFuZyBoYWksIFZpbmFsaW5lcyBkYSBwaGF0IGh1eSB2YWkgdHJvIGN1 YSBtaW5oIHRyb25nIHZpZWMgbGFtIA0KZGF1IG1vaSBnaWFvIGRpY2gsIHRpbSBraWVtIG5ndW9u IHRhaSBjaGluaCBjaG8gY2h1b25nIHRyaW5oIGRhdSB0dSBwaGF0IHRyaWVuIGRvaSB0YXUgDQpj dWEgbWluaC4gQmVuIGNhbmggZG8sIFRvbmcgY29uZyB0eSBjdW5nIGNvIG5oaWV1IGdpYWkgcGhh cCBuYW5nIGNhbyBjb25nIHN1YXQgeGVwIGRvLCANCnJ1dCBuZ2FuIHRob2kgZ2lhbiBsYW0gaGFu ZywgZ2lhbSB0aG9pIGdpYW4gY2hvIHRhdSBkZSB0aWV0IGtpZW0gY2hpIHBoaSBjaG8ga2hhY2gg aGFuZy4gDQpWb2kgMTIgY29uZyB0eSB2YW4gdGFpIGJpZW4sIFZpbmFsaW5lcyBkYSBjaGllbSA0 MyUgdGFpIHRyb25nIGN1YSBkb2kgdGF1IHF1b2MgZ2lhIHZhIA0KNTAlIHRoaSBwaGFuIHZhbiB0 YWkgaGFuZyBub2kgZGlhLg0KDQpOaHUgdmF5LCB2aWVjIGNodXllbiBjYWMgZG9hbmggbmdoaWVw IHZhbiB0YWkgdmEgcGhhbiB2b24gZ29wIHRyb25nIGNhYyBkb2FuaCBuZ2hpZXAgDQp2YW4gdGFp IGN1YSBWaW5hc2hpbiB2YW8gVmluYWxpbmVzIHNlIGxhbSBjaG8gdGhpIHBoYW4gdmFuIHRhaSBo YW5nIG5vaSBkaWEgY3VhIFZpbmFsaW5lcyANCnZ1b3QgcXVhIDUwJSwgbGEgdHJ1b25nIGhvcCB0 YXAgdHJ1bmcga2luaCB0ZSBiaSBjYW0uDQoNCkhhIE5vaSwgbmdheSAwNy83LzIwMTANCkhEUw0K DQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzM4ODczMS9WaW5hc2hpbi1jby1j aGUlQzIlQTBkb2MtbmhhdC12by1uaGklRTIlODAlOUQuaHRtbCBMLktJRU4gLSBMLk4uTWluaCBn aGkgMDcvMDcvMjAxMCwgMDc6NTYgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBRdWFuIGx5IHRpZW4g bmhhIG51b2MgbG9uZyBsZW8gdHJvbmcgdnUgVmluYXNoaW4gDQoNCkx1YXQgZ2lhIENhbyBCYSBL aG9hdCAobmd1eWVuIHRoYW5oIHZpZW4gdG8gY29uZyB0YWMgdGhpIGhhbmggTHVhdCBkb2FuaCBu Z2hpZXApOg0KDQpUb2kgdGhheSB2aWVjIHN1IGR1bmcgdm9uIGN1YSBWaW5hc2hpbiBsYSBraG9u ZyBkdW5nIHF1eSBkaW5oLCBraG9uZyBkdW5nIGR1b2kgY29uIA0KbWF0IG5ndW9pIGtpbmggZG9h bmggY28gdHJhY2ggbmhpZW0uIFZheSB0cmFpIHBoaWV1IGNoaW5oIHBodSB2b2kgbGFpIHN1YXQg Nyw1JSBkZSByb2kgDQp2ZSBkYXUgdHUgdmFvIG5nYW4gaGFuZywgY2hvIHZheSBsYWkgdm9pIGxh aSBzdWF0IDQlIGxhIHRodWEgcm9pLiBEYXUgdHUgZGFuIHRyYWkgdmFvIA0Kbmh1bmcgbGluaCB2 dWMga2hvbmcgY28gdGF5IG5naGUgbnVhIHRoaSBkdW5nIGxhICJjYWkgY2hldCBkdW9jIGJhbyB0 cnVvYyIuIA0KDQpOaHVuZyBuaGEgZGF1IHR1IHR1IG5oYW4ga2hvbmcgYmFvIGdpbyBkYW0gbGFt IGxpZXUgbmh1IHZheS4gTmhhIG51b2MgZGkgdmF5IDc1MCANCnRyaWV1IFVTRCBkZSByb2kgdmUg ZHVhIHZhbyB0YXkgbmh1bmcgbmd1b2kga2hvbmcgYmlldCBsYW0gYW4uIFRpZW4gbmhpZXUgcXVh IHRoZSBuZW4gDQpobyBsdW5nIHR1bmcgcm9pIGNobyB2YXkgbGFpLCBkYXUgdHUgZGFuIHRyYWkg a2hvbmcgdGluaCBkZW4gaGlldSBxdWEgbmVuIHRoYXQgdGhvYXQgbGEgZGlldSANCmRlIGhpZXUu IFJvIHJhbmcgdGllbiBjdWEgTmhhIG51b2MgKHRpZW4gZG9uZyB0aHVlIGN1YSBuaGFuIGRhbikg ZGEgZHVvYyBxdWFuIGx5IHJhdCBsb25nIGxlby4NCg0KWSBraWVuIGJhbiBkb2M6DQpOR1VZRU4g VFJVTkcgSElFVToNCg0KS2hvbmcgdGhlIGNoYXAgbmhhbiBraWV1IHF1YW4gbHkga2VtIG5odSB2 YXkgDQoNCk5vIDgwLjAwMCB0eSB0dW9uZyBkdW9uZyBraG9hbmcgNCwyIHR5IFVTRCBjaGllbSA0 JSBHRFAgVmlldCBOYW0gbmFtIDIwMDkgDQooa2hvYW5nIDExMiB0eSBVU0QpLiBUcm9uZyBraGkg VmluYXNoaW4gbW9pIGNoaSBkdW9jIFRodSB0dW9uZyBDaGluaCBwaHUgYmFuIGhhbmggDQpRdXll dCBkaW5oIDEwNCBRRC1UVGcgdGhhbmggbGFwIG5nYXkgMTUvNS8yMDA2LiANCg0KS2hvbmcgdGhl IHRpbiB2YSBjaGFwIG5oYW4gZHVvYyBtb3Qga2lldSBxdWFuIGx5IGtlbSBuaHUgdmF5LiANCg0K aHR0cDovL3R1b2l0cmUudm4vS2luaC10ZS8zNDQ5MzUvVmluYXNoaW4tbm8tZGF5LWR1YS5odG1s IDI5LzEwLzIwMDksIDEwOjI3IChHTVQrNykgDQoNClRodSB0dW9uZzogVmluYXNoaW4gbm8gZGF5 IGR1YSAtIERvbiBrZXUgY3V1IHRvaSBUaHUgdHVvbmcgDQoNClN1b3QgbWF5IHRoYW5nIHF1YSwg dHJ1IHNvIGN1YSBUYXAgZG9hbiBDb25nIG5naGllcCB0YXUgdGh1eSBWTiAoVmluYXNoaW4pIHRo dW9uZyB4dXllbiBjbyBuaHVuZyBuZ3VvaSANCmRlbiBuYW5nIG5hYyB4aW4gZ2FwIGxhbmggZGFv IHRhcCBkb2FuIG5heSBkZS4uLiBkb2kgbm8uIE5oaWV1IGNodSBubyBraGFjIGNvIGNvbmcgdmFu IGxlbiB0YW4gVGh1IHR1b25nIA0KZGUgbmhvIGNhbiB0aGllcC4gQ28gY2h1IGRvYW5oIG5naGll cCBwaGEgc2FuIHZpIFZpbmFzaGluIGtob25nIHRyYSBuby4NCg0KRG9uIGtldSBjdXUgdG9pIFRo dSB0dW9uZw0KDQpDdW9pIG5hbSAyMDA3LCBjaHUgdGljaCBIRFFUIFZpbmFzaGluIFBoYW0gVGhh bmggQmluaCBkYSBreSBxdXlldCBkaW5oIGNobyBwaGVwIA0KZGF1IHR1IGR1IGFuIHNhbiBsYXAg bWF0IGJhbmcgZ2lhaSBkb2FuIDEgY3VhIEtodSBraW5oIHRlIEhhaSBIYSwgZHUga2llbiBiaWVu IHZ1bmcgZGF0IA0KZ2lhcCBNb25nIENhaSwgUXVhbmcgTmluaCB0aGFuaCBtb3QgdHJ1bmcgdGFt IGtpbmggdGUgdm9pIGNhYyBuaGEgbWF5IGRvbmcgdGF1LCBjYW4gDQp0aGVwLi4uIER1IGFuIG5h eSBkdW9jIGdpYW8gY2hvIENvbmcgdHkgVE5ISCBtb3QgdGhhbmggdmllbiBjb25nIG5naGllcCB0 YXUgdGh1eSBDYWkgDQpMYW4sIGRvIG9uZyBUbyBOZ2hpZW0gbGFtIHRvbmcgZ2lhbSBkb2MsIGdp dSB2YWkgdHJvIGNodSBkYXUgdHUgdm9pIGNvIGNhdSB2b24gMS4wMDAgdGkgDQpkb25nLiBDb25n IHR5IGNvIHBoYW4ga2luaCBkb2FuaCBraGFpIHRoYWMgaGEgdGFuZyBWaW5hc2hpbiAtIEhhIExv bmcgKGdvaSB0YXQgbGEgVmluYXNoaW4gLSBIYSBMb25nKSBsYSBkb24gdmkgdHJ1bmcgdGhhdS4N Cg0KVGhlbyB0aG9uZyBjYW8gbW9pIG5oYXQgY3VhIE5nYW4gaGFuZyBxdW9jIHRlIENyZWRpdCBT dWlzc2UgY2hpIG5oYW5oIEhvbmcgS29uZywgDQpuYW0gMjAwNyBuZ2FuIGhhbmcgbmF5IGRhIGNo byBWaW5hc2hpbiB2YXkgbmd1b24gdm9uIDYwMCB0cmlldSBVU0QuIE5nYXkgMTYtMS0NCjIwMDgs IGNodSB0aWNoIEhEUVQgVmluYXNoaW4gUGhhbSBUaGFuaCBCaW5oIGt5IHF1eWV0IGRpbmggc28g MTE0LzIwMDggZGlldSBjaGluaCANCmRhbmggbXVjIHN1IGR1bmcgdm9uIDYwMCB0cmlldSBVU0Qs IHRoZW8gZG8gc2UgZGFuaCBjaG8gZHUgYW4gc2FuIGxhcCBtYXQgYmFuZyBLaHUgDQpraW5oIHRl IEhhaSBIYSB2YSBsYW0gZHVvbmcgY29uZyB2dSBOaGEgbWF5IGRvbmcgdGF1IEhhaSBIYSAxLjAw MCB0aSBkb25nIHRoZW8gcXV5ZXQgDQpkaW5oIHZlIHZpZWMgImRpZXUgY2hpbmggZGFuaCBtdWMg ZHUgYW4gc3UgZHVuZyBuZ3VvbiB2b24gdmF5IG51b2MgbmdvYWkgNjAwIHRyaWV1IFVTRCBjdWEg Q29uZyB0eSBUTkhIIG1vdCB0aGFuaCB2aWVuIGNvbmcgbmdoaWVwIHRhdSB0aHV5IENhaSBMYW4u IA0KDQpUaGVvIG9uZyBOZ3V5ZW4gVGhhbmggQ2FuaCAtIHRvbmcgZ2lhbSBkb2MgVmluYXNoaW4g LSBIYSBMb25nLCBsdWMgZG8gZG8gY28gdmFuIGJhbiANCnZhIGR1b2Mgb25nIFRvIE5ndXllbiBr aGFuZyBkaW5oIHNlIGtob25nIHRoaWV1IHRpZW4gbmVuIG9uZyBkYSBxdXlldCBkaW5oIHRodWUg dGhlbSANCmNoaW4gZG9hbmggbmdoaWVwIGtoYWMgZGUgdGhhbSBnaWEgc2FuIGxhcCA1LjAwMGhh IGtodSBraW5oIHRlLiBIb24gMy4wMDAgY29uZyBuaGFuIA0KZGEgYmF0IHRheSB2YW8gdmllYywg dHV5IG5oaWVuIHNhdSBraGkgeG9uZyB2aWVjIGRvaSBtYWkga2hvbmcgZHVvYyB0cmEgbm8uIFRy b25nIGRvbiANCmd1aSBUaHUgdHVvbmcsIG9uZyBOZ3V5ZW4gVGhhbmggQ2FuaCBwaGFpIG5nYW0g bmd1aTogIkNodW5nIHRvaSBkYSBiaSBkYXkgZGVuIGNoYW4gDQp0dW9uZywgdHJ1b2Mgbmd1eSBj byB0cm8gdGhhbmggbmh1bmcgIm5ndW9pIGN1bmcga2hvIiBjaGkgdmkga2lldSBsYW0gYW4gY3Vh IENvbmcgdHkgDQpUTkhIIG1vdCB0aGFuaCB2aWVuIGNvbmcgbmdoaWVwIHRhdSB0aHV5IENhaSBM YW4gdmEgVGFwIGRvYW4gVmluYXNoaW4iLiANCg0KVHJvbmcgZG9uIGd1aSBUaHUgdHVvbmcsIG9u ZyBDYW5oIG5ldSBybyBkdSBsYSBtb3QgdGFwIGRvYW4gdXkgdGluIG5odW5nIHRodWMgdGUgbXVv aSANCmNvbmcgdHkgdGhhbSBnaWEgZHUgYW4gY2hvIFZpbmFzaGluIGRhIHBoYWkgZ3VpIGRlbiBo YW5nIHRyYW0gbGFuIGNvbmcgdmFuIGRvaSBubywgDQpuaGlldSBsYW4gcGhhaSBsYW4gbG9pIHZl IEhhIE5vaSAicGh1YyBraWNoIiBkZSBnYXAgbGFuaCBkYW8gVmluYXNoaW4gbW9pIGR1b2MgdGhh bmggDQp0b2FuIDM2JSBnaWEgdHJpIGNvbmcgdmllYyB0aHVjIGhpZW4uIA0KDQpEZW4gY3VvaSB0 aGFuZyAxMC0yMDA5LCB0cmFvIGRvaSB2b2kgcGhvbmcgdmllbiBUdW9pIFRyZSwgb25nIENhbmgg Y2hvIGJpZXQgVmluYXNoaW4gDQp2YW4gY29uIG5vIG9uZyB2YSBjaGluIGRvYW5oIG5naGllcCBv bmcgdGh1ZSBzbyB0aWVuIGxlbiB0b2kgMTI0IHRpIGRvbmcgKHRpbmggY2EgdGllbiBsYWkgDQpk byBxdWEgaGFuIGhvcCBkb25nIG5heSBkYSBnYW4gMTYwIHRpIGRvbmcpLiANCg0KTWFjIGR1IFRo dSB0dW9uZyBkYSBjbyB5IGtpZW4gY2hpIGRhbyBiYW5nIHZhbiBiYW4geWV1IGNhdSBWaW5hc2hp biBnaWFpIHF1eWV0IGNhYyANCmtob2FuIG5vIHZvaSBtdW9pIGRvYW5oIG5naGllcCB0cm9uZyB0 aGFuZyA3LTIwMDkgbmh1bmcgImNhYyBsYW5oIGRhbyBWaW5hc2hpbiBjaGkgDQpodWEgaGVuLCBr aG9uZyBub2kgcm8gYmFvIGdpbyB0cmEuIFF1YSBoYW4gdG9pIGNvIGdvaSBkaWVuIG5odW5nIGN1 bmcga2hvbmcgYWkgY2hpdSANCm5naGUgbWF5IiAtIG9uZyBDYW5oIG5vaS4NCg0KRG8gcGhhaSB2 YXkgbGFpIHN1YXQgbmdhbiBoYW5nIG5hbSAyMDA4IHZvaSBtdWMgY2FvLCBWaW5hc2hpbiBraG9u ZyB0cmEgbm8sIHRoZW8gb25nIA0KQ2FuaCwgbmhpZXUgZG9hbmggbmdoaWVwIGRhIHBoYWkgYmFu IG5oYSwgdHJ1IHNvIGRlIHRyYSBuby4gDQpEZW4gdGFuIHRydSBzbyBkb2kgbm8NCg0KVGFpIDE3 MiBOZ29jIEtoYW5oIChIYSBOb2kpLCB0cnUgc28gY3VhIFZpbmFzaGluLCBtYXkgdGhhbmcgbmF5 IHRhcCBkb2FuIG5heSB0aHVvbmcgDQp4dXllbiBwaGFpIHRpZXAgbmh1bmcgcGhhaSBkb2FuIGRl bi4uLiBkb2kgbm8uIE5ob20gaXQgdGhpIDEtMiBuZ3VvaSwgbmhvbSBuaGlldSBsZW4gDQpkZW4g Y2EgY2h1YyBuZ3VvaS4gRGEgY28gbmhpZXUgY2FuaCB0byB0aWVuZyB4YXkgcmEsIHRoYW0gY2hp IG5oaWV1IGRvYW4gbW9pIGNhIG5ndW9pIA0KdGhhbiBsYSB0aHVvbmcgYmluaCBsZW4gZG9hIG5h bSBuZ2hpIG5nYXkgdGFpIHRydSBzbyBWaW5hc2hpbiBkZW4ga2hpIHRhcCBkb2FuIG5heSBjaGl1 IHRyYSBuby4NCg0KTmdheSAyMC0xMCwgc2F1IG1vdCBuZ2F5IGNobyBkb2kgdGFpIHNhbmggdHJ1 IHNvIFZpbmFzaGluIG5odW5nIGNodWEgZHVvYyB0aWVwLCBjaGkgDQpQaGFtIFRoaSBUaGFuaCBU dXlldCAtIGdpYW0gZG9jIENvbmcgdHkgVE5ISCBUaGFuZyBUdXlldCAoSGFpIFBob25nKSAtIG5v aTogDQoiQ2h1bmcgdG9pIGRhIGxlbiBkYXkgbWF5IGNodWMgbGFuLCBsYW4gbmFvIGN1bmcgZHVv YyBoZW4gc2FuZyB0aWVwIHJvaSBob2FuIHRvaSBjaGlldSwgDQpjaGlldSBsYWkgYmFvIGhvYW4g ZGVuIGhvbSBzYXUuIFhpbiBnYXAgbGFuaCBkYW8gdGFwIGRvYW4gdGhpIG5oYW4gdmllbiBiYW8g dmUga2hvbmcgDQpjaG8gbGVuLCBsZSB0YW4gYmFvIGRpZW4gdGhvYWkgc2VwIGtob25nIGxpZW4g bGFjIGR1b2MiLiANCg0KQ2hpIFR1eWV0IGNobyBiaWV0IHRoZW8gY2h1IHRydW9uZyBkYXUgdHUg Y3VhIFZpbmFzaGluIHRhaSBLaHUgY29uZyBuZ2hpZXAgTGFpIFZ1IChIYWkgDQpEdW9uZyksIGNv bmcgdHkgY3VhIGNoaSBkYSBjYXAgbmhpZXUgdGhpZXQgYmkgeGF5IGR1bmcgbmhhIHh1b25nIGNo byBjb25nIHR5IGNvbiBjdWEgDQpWaW5hc2hpbiBsYSBDb25nIHR5IGNvIHBoYW4geGF5IGR1bmcg VmluYXNoaW4sIHNhdSBuYXkgdHJ1YyB0aWVwIGxhIENvbmcgdHkgY28gcGhhbiB4YXkgDQpkdW5n IFZpbmFzaGluIHNvIDMuIA0KDQpUdSBuYW0gMjAwOCwgQ29uZyB0eSBUaGFuZyBUdXlldCBsaWVu IHRpZXAgZG9pIHRpZW4gbmh1bmcga2hvbmcgaGUgbmhhbiBkdW9jIGhvaSBhbS4gDQpEZW4gdHJ1 IHNvIGNvbmcgdHkgY3VuZyBraG9uZyBnYXAsICJwaHVjIGtpY2giIGNhIHRoYW5nIGtob25nIHRo YXkgZ2lhbSBkb2MgbGVuIGNvbmcgDQp0eSwgY2hpIFR1eWV0IHBoYWkgbGVuIHRhcCBkb2FuIGRv aS4gVGFwIGRvYW4gZ29pIGdpYW0gZG9jIGNvbmcgdHkgY29uIGxlbiBuaHVuZyBjdW5nIA0KcGhh aSBzYXUgbW90IG5hbSBkaSBsYWkgcm9uZyByYSwgZGVuIHRoYW5nIDctMjAwOSBjaGkgVHV5ZXQg bW9pIGRvaSBkdW9jIDMwMCB0cmlldSB0cm9uZyB0b25nIHNvIDgwMCB0cmlldSBkb25nLg0KDQpU cm9uZyBuaGlldSBkb2FuIGRlbiBWaW5hc2hpbiBjbyAiZG9hbiBxdWFuIiBjdWEgb25nIENhbyBY dWFuIEtpZW0sIGRhIHNvIGxhIHRodW9uZyANCmJpbmguIENoaW5oIG9uZyBLaWVtIGN1bmcgbGEg dGh1b25nIGJpbmggbmh1bmcgdmFuIHBoYWkgbGFuIGxvaSBraG9uZyBpdCBsYW4gdHUgSGEgDQpU aW5oIHRvaSB0cnUgc28gVmluYXNoaW4gZGUgZG9pIG5vLiBUaGVvIG9uZyBLaWVtLCBDb25nIHR5 IFROSEggeGF5IGR1bmcgdmEgdGh1b25nIA0KbWFpIEtpZW0gRHVuZyBjdWEgb25nIGRvIHRyYWkg dGh1b25nIGJpbmggc28gNCBjdWEgSGEgVGluaCBsYXAgcmEsIGNvIG5oaWV1IGFuaCBlbSANCnRo dW9uZyBiaW5oIGdvcCB2b24uIEtoaSBWaW5hc2hpbiBjbyBjaHUgdHJ1b25nIGRhdSB0dSwgdHJ1 YyB0aWVwIGxhIENvbmcgdHkgY29uZyANCm5naGllcCB0YXUgdGh1eSBOYW0gVHJpZXUsIGJhdCBk YXUgdGh1YyBoaWVuIGR1IGFuIG5oYSBtYXkgZG9uZyB0YXUgTmdoaSBTb24gKFRoYW5oIA0KSG9h KSwgQ29uZyB0eSBLaWVtIER1bmcga3kgZHVvYyBob3AgZG9uZyBzYW4gbGFwIG1hdCBiYW5nLiAN Cg0KIkNodW5nIHRvaSBraG9uZyBjbyBuaGlldSB0aWVuLCBwaGFpIGdhbiBzbyBkbywgdmF5IG11 b24gZGUgbGFtIGNobyBWaW5hc2hpbiIuIFRoZSANCm5odW5nIHNhdSBraGkgaG9hbiB0aGFuaCBk dSBhbiB2YW8gbmFtIDIwMDcsIGRlbiBuYXkgVmluYXNoaW4gdmFuIG5vIGNvbmcgdHkgMTAgdGkg DQpkb25nLiBIYW5nIHRyYW0gbGFuIGxlbiBkb2kgY2h1IGRhdSB0dSwgaGFuZyBjaHVjIGxhbiBs ZW4gdGFwIGRvYW4gZG9pIGtob25nIGR1b2MuIA0KIlZpbmFzaGluIG5vaSBraHVuZyBob2FuZywg a2hvIGtoYW4gY2h1bmcgbmVuIGtob25nIHRyYSBkdW9jIG5vLiBDaHVuZyB0b2kgbGEgY29uZyB0 eSBuaG8sIGNvbiBraG8ga2hhbiBob24iIC0gb25nIEtpZW0gZ2lhaSBiYXkuDQoNCmh0dHA6Ly90 dW9pdHJlLnZuL0tpbmgtdGUvMzQ0OTM1L1ZpbmFzaGluLW5vLWRheS1kdWEuaHRtbCAyOS8xMC8y MDA5LCAxMDoyNyAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IFZpbmFzaGluIDIgbmFtIGR1b2MgZGF1 IHR1IGhvbiAyMC4wMDAgdGkgZG9uZw0KDQpDaGluaCBwaHUgZGEgZGFuaCA3NTAgdHJpZXUgVVNE IHZvbiBwaGF0IGhhbmggdHJhaSBwaGlldSBxdW9jIHRlIGNobyBWaW5hc2hpbiwgNjUwIA0KdHJp ZXUgVVNEIGN1bmcgZHVvYyBWaW5hc2hpbiB2YXkgY3VhIG5nYW4gaGFuZyBUaHV5IFNpIGNoaSBu aGFuaCBIb25nIEtvbmcgQ3JlZGl0IA0KU3Vpc3NlLiBOaHUgdmF5LCBpdCBuaGF0IHRyZW4gMjAu MDAwIHRpIGRvbmcgZGEgZHVvYyBjaHV5ZW4gZGVuIHRheSBWaW5hc2hpbiB0cm9uZyB2b25nIGhh aSBuYW0gcXVhLg0KIA0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDI4LzIwMTAwNzA4MDA0MTM0LmFzcHggMDgvMDcvMjAxMCAwOjQxIA0KDQpUaHUgdHVvbmc6IFZp bmFzaGluIGxheSB0aWVuIGRhdSB0cmEgbm8gODAuMDAwIHRpPyAgIA0KDQpEYXUgdHUgZGFuIHRy YWksIHF1YW4gdHJpIGRvYW5oIG5naGllcCwgcXVhbiBseSB0YWkgY2hpbmggY29uZyB5ZXUga2Vt IGtoaWVuIFZpbmFzaGluIA0Kcm9pIHZhbyBjYW5oIG5vIG5hbiBjaG9uZyBjaGF0LCBwaGFpIGNo dXllbiBoYW5nIGxvYXQgZHUgYW4gY2hvIFRhcCBkb2FuIGRhdSBraGkgDQooUFZOKSB2YSBUb25n IGNvbmcgdHkgaGFuZyBoYWkgVmlldCBOYW0gKFZpbmFsaW5lcykuDQogIA0KTm8gbHVvbmcgbGFv IGRvbmcsIG5vIHRvIGNodWMgbnVvYyBuZ29haSwgbm8gbmdhbiBoYW5nLi4uIHRvbmcgY29uZyBo b24gODAuMDAwIHRpIA0KZG9uZywgVmluYXNoaW4gbGF5IHRpZW4gbyBkYXUgZGUgdHJhPyBMaWV1 IHNhdSAzIG5hbSBudWEsIFZpbmFzaGluIGNvIHhvYSBkdW9jIGhldCBubyANCm5odSBsYW5oIGRh byBjdWEgZG9hbmggbmdoaWVwIG5heSB0dXllbiBibz8gDQoNCk5oaWV1IGRhYyBxdXllbiBuZW4g dGhpZXUgdHJhY2ggbmhpZW0NCg0KVFMgTmd1eWVuIER1YyBUaGFuaCwgR2lhbSBkb2MgVHJ1bmcg dGFtIE5naGllbiBjdXUga2luaCB0ZSB2YSBjaGluaCBzYWNoIChESCANClF1b2MgZ2lhIEhhIE5v aSkgY2hvIGJpZXQsIDIgbmFtIHZlIHRydW9jLCBjYWMgY2h1eWVuIGdpYSBkYSBuaGlldSBsYW4g Y2FuaCBiYW8gdmUgcnVpIA0Kcm8gdHJvbmcgY2FjaCBsYW0gcXVhIHZvaSB2YW5nLCBkdXkgeSBj aGksIGRheSBWaW5hc2hpbiB0dSBtb3QgY29uZyB0eSBuaG8gYmUgdGhhbmggbW90IA0KdGFwIGRv YW4ga2hvbmcgbG8uICJWZSBtYXQgbmhhbiBzdSwgZGF0IG1vdCBjYSBuaGFuIG8gdmkgdHJpIG5o aWV1IGRhYyBxdXllbiB2YSBxdWEgDQpuaGlldSBjYW0gZG8sIHRoaSBrZXQgcXVhIG5odSBuZ2F5 IGhvbSBuYXkgbGEgdGF0IHlldSIsIFRTIFRoYW5oIG5oYW4gbWFuaC4gDQoNCk9uZyBwaGFuIHRp Y2g6ICJWZSBnb2MgZG8ga2luaCAgdGUsIGtoaSBxdXllbiBzbyBodXUgYmkgdGFjaCByb2kga2hv aSBxdXllbiBzdSBkdW5nLCBoYXkgDQpxdXllbiBkaWV1IGhhbmggKGtoYWMgdm9pIGRvYW5oIG5n aGllcCB0dSBuaGFuKSwgdmllYyBzdSBkdW5nIHRhaSBzYW4gc2UgbGFuZyBwaGkgdmEgdm8gDQp0 cmFjaCBuaGllbSIuIFRoZW8gVFMgVGhhbmgsIHZpZWMgQ2hpbmggcGh1IGR1bmcgcmEgdmF5LCBi YW8gbGFuaCB2YXkgdm9uIGRlIA0KVmluYXNoaW4gbGFtIHJhIHNhbiBwaGFtLCByb2kgbGFpIGJh byBsYW5oIGRlIGxheSB0aWVuIG11YSBzYW4gcGhhbSBsYSBraG9uZyBob3AgbHkuIA0KIlZpZWMg VmluYXNoaW4gZHVvYyBxdWEgbmhpZXUgZGFjIHF1eWVuLCB2byBoaW5oIHRydW5nIGRhIHRhY2gg cm9pIHRyYWNoIG5oaWVtIGxhbmggDQpkYW8gdGFwIGRvYW4ga2hvaSBydWkgcm8gaGF5IG5naGlh IHZ1IHBoYWkgdHJhIG5vLiBWdWEgcm9pIENoaW5oIHBodSBidW9jIHBoYWkgdGFpIGNvIGNhdSAN ClZpbmFzaGluLCBjaHV5ZW4gMjAuMDAwIHRpIGRvbmcgc2FuZyBoYWkgdGFwIGRvYW4gbG9uIGto YWMgbGEgUFZOIHZhIFZpbmFsaW5lcywgY2F0IG5vIA0Kc2FuZyBkZSB0cmFuaCBzdSBzdXAgZG8g Y3VhIFZpbmFzaGluIi4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2tpbmh0ZS8yMDEwMDcv RHUtYW4tdGhlcC05OC10eS1VU0Qtc2FwLXBoYS1zYW4tOTIxODg2LyAxODo0MCwgMTIvMDcvMjAx MCAoR01UKzcpDQoNClRodSB0dW9uZzogVmluYXNoaW4gLSBEdSBhbiB0aGVwIDksOCB0eSBVU0Qg c2FwICJwaGEgc2FuIg0KDQpEdSBhbiB0aGVwIENhIE5hIGNvIHF1aSBtbyB2b24ga2hvbmcgbG8g dG9pIGdhbiA5LDggdHkgVVNELCB0YWkgTmluaCBUaHVhbiBjbyB0aGUgYmkgDQpydXQgcGhlcCBz YXUgMiBuYW0gYmkgdHJlbywga2hvbmcga2hvaSBjb25nIHRoZW8gdGllbiBkbyBjYW0ga2V0Lg0K IA0KRGF5IGxhIGR1IGFuIGxvbiBuaGF0IGN1YSBuZ2FuaCB0aGVwIHR1IHRydW9jIHRvaSBuYXks IGRvbmcgdGhvaSBjdW5nIGxhIGR1IGFuIGNvIHZvbiBkYXUgDQp0dSB0cnVjIHRpZXAgbnVvYyBu Z29haSBsb24gbmhhdC4NCiANCk5hbSAyMDA4LCBkdSBhbiBuYXkgZGEgZHVvYyBjYXAgcGhlcCBj aG8gbGllbiBkb2FuaCBUYXAgZG9hbiBMaW9uIEdyb3VwIGN1YSANCk1hbGF5c2lhIHZhIFRhcCBk b2FuIENvbmcgbmdoaWVwIHRhdSB0aHV5IChWaW5hc2hpbiksIHRyb25nIGRvLCBWaW5hc2hpbiBj aGkgZ29wIDI0JSANCnZvbiB0aW5oIGNhIGdpYSB0cmkgcXV5ZW4gc3UgZHVuZyBkYXQuIA0KDQpE ZSB0cmllbiBraGFpIGR1b2MgZHUgYW4sIG5oYSBkYXUgdHUgY29uIGR1YSByYSBuaHVuZyAiZG9p IGhvaSIgcmF0IHBoaSBseSB2ZSBjaGluaCBzYWNoIA0Kbmh1IHZpZWMgQ2hpbmggcGh1IGNhbiBi YW8gbGFuaCBjaG8gdGFwIGRvYW4gdHJvbmcgdmllYyB2YXkgdm9uIG5nYW4gaGFuZy4gDQoNClRy b25nIGJvaSBjYW5oIHRoZXAgVHJ1bmcgUXVvYyBnaWEgcmUgbyBhdCB0cmFuIHZhbywgdGFwIGRv YW4gbmF5IGNvbiBkZSBuZ2hpIENoaW5oIHBodSANClZpZXQgTmFtICJiYW8gaG8iIGNobyBuaGEg bWF5IHRoZXAuIERheSBsYSBuaHVuZyBkb2kgaG9pIGtob25nIHBodSBob3Agdm9pIGNoaW5oIHNh Y2gga2luaCB0ZSB0aGkgdHJ1b25nIGhpZW4gbmF5LiANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hh bm5lbC8yMDQzLzIwMTAwNy9LaG9uZy1sb2FpLXRydS1uZ3V5LWNvLVZpbmFzaGluLWR1bmctZGF0 LXRyYS1uby0xNzU4NTg4LyBILksgKHRodWMgaGllbikgMTAvMDcvMjAxMCAxMDo1ODoxOSANCg0K VGh1IHR1b25nOiBWaWVjIHRhaSBjbyBjYXUgVmluYXNoaW4gZGllbiByYSByYXQgdm9pIHZhIC0g Tmd1eSBjbyBWaW5hc2hpbiBkdW5nIGRhdCB0cmEgbm8gIA0KDQpCZWUubmV0LnZuLSAiVmluYXNo aW4gZGFuZyBubyA4MC4wMDAgdHksIHR1b25nIGR1b25nIDQgdHkgVVNELCBuZXUgdHJvbmcgMyBu YW0gdHJhIGhldCANCm5vLCBtb2kgbmFtIFZpbmFzaGluIHBoYWkgdHJhIDEgdHkgMzMwIHRyaWV1 IFVTRC4gTmV1IHRpbmggdHkgc3VhdCBsb2kgbmh1YW4gY3VhIA0KVmluYXNoaW4gbGEgMjAlIHRo aSBsb2kgbmh1YW4gdmEgZG9hbmggdGh1IGN1YSBWaW5hc2hpbiBwaGFpIGxlbiBkZW4gYmFvIG5o aWV1IGxhIGRpZXUgDQpjaHVhIGNvIGNvbiBzbyBjaHVuZyBtaW5oIGRhbmcgdGluIGNheSIgLSBD aHV5ZW4gZ2lhIGtpbmggdGUgTGUgRGFuZyBEb2FuaCB0cmFvIGRvaSANCnZvaSBQViBCZWUgdmUg dmllYyB0YWkgY28gY2F1IFZpbmFzaGluLiANCg0KVmluYXNoaW4gbmhhbiBuaHVuZyB1dSBhaSB2 dW90IHRpZW4gbGUgcXVvYyB0ZQ0KDQpUcm9uZyBjdW9jIGhvcCBiYW8gbW9pIGRheSB2ZSB2dSBW aW5hc2hpbiwgb25nIFBoYW0gVmlldCBNdW9uLCBQaG8gQ2h1IG5oaWVtIFZhbiANCnBob25nIENo aW5oIHBodSBraGFuZyBkaW5oOiAiTm9pIENoaW5oIHBodSB1dSBhaSBWaW5hc2hpbiBsYSBraG9u ZyBkdW5nIi4gRHUgbHVhbiwgDQpnaW9pIG5naGllbiBjdXUga2luaCB0ZSBkZXUga2hvbmcgZG9u ZyB0aW5oIHZvaSBraGFuZyBkaW5oIG5heT8NCg0KVHJvbmcgbW90IGJhaSB0cmVuIHRvIFRob2kg YmFvIEtpbmggdGUgU2FpIEdvbiwgb25nIE5ndXllbiBRdWFuZyBBLCBkYSBtYW5nIGNhIHR1IA0K ZGllbiB0aWVuZyBWaWV0IChUcnVuZyB0YW0gVHUgZGllbiBob2MsIDIwMDkpIGdpYWkgdGhpY2gg dHUgInV1IGFpIi4gVGhlbyBkbywgInV1IGFpIiBjbyANCm5naGlhIGxhICJ5ZXUgdGh1b25nIHZh IGxvIGxhbmcgY2hvIi4NCg0KVG9pIHhpbiBkb24gY3UgbW90IHZhaSB2aSBkdSBkaWVuIGhpbmgg dmUgc3UgdXUgYWkgbmF5IG1hIGNvbmcgbHVhbiBkZXUgYmlldDogUGhhdCBoYW5oIA0KdHJhaSBw aGlldSBDaGluaCBwaHUgdHJlbiB0aGkgdHJ1b25nIHF1b2MgdGUgZHVvYyA3NTAgdHJpZXUgVVNE LCBDaGluaCBwaHUgZ2lhbyBuZ2F5IA0KY2hvIFZpbmFzaGluLCBtb3QgdmllYyBjaHVhIGNvIHRp ZW4gbGUgdHJlbiB0aGUgZ2lvaSBsYSBDaGluaCBwaHUgZGkgdmF5IHRyZW4gdGhpIHRydW9uZyAN CnF1b2MgdGUgZGUgdHJhbyBsYWkgY2hvIG1vdCBkb2FuaCBuZ2hpZXAga2luaCBkb2FuaC4NCg0K T25nIFBoYW0gVGhhbmggQmluaCBkZW4gY2FjIGRpYSBwaHVvbmcgZHVvYyBjYXAgZGF0IHZvaSBk aWVuIHRpY2ggcmF0IGxvbiwgbyB2aSB0cmkgcmF0IA0KdGh1YW4gbG9pLCBkdSBjaHVhIGhlIGNv IGR1IGFuIGtpbmggdGUgLSBreSB0aHVhdCwgY2FjIHRpbmggZGUgbmdoaSBjdW5nIGNhcCBjYWMg cGh1b25nIGFuIA0Ka2luaCBkb2FuaCwgZHUgYW4gZGF1IHR1IHRoaSBvbmcgQmluaCBkYSBuaG8g Y2FuIHRoaWVwIGRlIGR1b2MgY2FwIG5nYXkuDQoNClRyb25nIG1vdCB0aG9pIGdpYW4gbmdhbiwg VmluYXNoaW4gZGEgY28gcXV5IGRhdCByYXQgbG9uIHR1IEJhYyB2YW8gTmFtLCBkdW5nIHF1eSBk YXQgDQpkbyBkZSB2YXkgdGluIGR1bmcgbyBjYWMgbmdhbiBoYW5nIHZhIGNvIHNvIG5vIGtob25n IGxvIG1hIGtob25nIGRvYW5oIG5naGllcCBuYW8gDQpraGFjIGNvIGR1b2MuIFJhdCBuaGlldSBx dXkgZGF0IGNobyBkZW4gbmF5IGNodWEgZHVvYyBraGFpIHRoYWMsIG5oaWV1IHRpbmggYnVjIHh1 YyBkYSANCnBoYWkgY3VuZyBuaGF1IGRlIG5naGkgVmluYXNoaW4gcGhhaSB0cmEgbGFpIGRhdC4g DQoNClZpbmFzaGluIHRyaWVuIGtoYWkgZGF1IHR1IHRyYW4gbGFuIHRvaSBoYW5nIHRyYW0gZHUg YW4uIENvIHRvaSBoYW5nIHRyYW0gY29uZyB0eSBjb24gdHUgDQp0cmFpIG51b2kgbG9uIFZpbmFz aGluIGRlbiBjdWEgaGFuZyBvIHRvIFZpbmFzaGluIHRyZW4gZHVvbmcgTGUgRHVhbiAoSGEgTm9p KSwgaGF5IA0KcmVzb3J0IG8gZ2FuIGRpbmggVGFtIERhbyBkZXUgbWFuZyBuaGFuIGhpZXUuLi4g VmluYXNoaW4hIE11YSB0YXUgY3VhIEl0YWxpYSBraG9uZyBxdWEgDQpnaWFtIGRpbmgga3kgdGh1 YXQsIHRhdSB2ZSBraG9uZyB0aGljaCBob3AsIGNhbmcgaG9hdCBkb25nIGNhbmcgbG8uLi4NCg0K S2hpIFZpbmFzaGluIGNvIHNvIG5vIHF1YSBoYW4gcmF0IGxvbiwga2hvbmcgdHJhIGR1b2MsIGxl biBkZW4gMy44MTIgdHkgZG9uZyAodGhlbyBiYW8gDQpjYW8gY3VhIGRvYW4gZ2lhbSBzYXQgY3Vh IFF1b2MgaG9pIGN1b2kgbmFtIDIwMDgpLCBDaGluaCBwaHUgZGEgY28gY29uZyB2YW4geWV1IGNh dSANCmNhYyBuZ2FuIGhhbmcga2hvYW5oIG5vIGNobyBWaW5hc2hpbi4gVGhlbyBkbywgbm8gcXVh IGhhbiBjdWEgVmluYXNoaW4ga2hvbmcgY29pIGxhIA0KcXVhIGhhbiB2YSBraG9uZyBkdW9jIGFw IGR1bmcgbGFpIHN1YXQgY2FvIGhvbi4NCg0KVHJ1b2MgdGluaCBoaW5oIGJlIGJvaSBjdWEgVmlu YXNoaW4sIFRoYW5oIHRyYSBDaGluaCBwaHUgZGUgbmdoaSB0aGFuaCB0cmEgdGhpIFZpbmFzaGlu IA0KZGV1IGR1b2MgaG9hbiB0aGFuaCB0cmEgdHJvbmcgbmFtIDIwMDkgdmEgMjAxMCwgaG9hbiBj YSBraWVtIHRvYW4gdmEga2V0IHF1YSBsYSBjaG8gDQpkZW4gbmF5LCBraGkgY28gcGh1b25nIGFu IHRhaSBjbyBjYXUsIFZpbmFzaGluIHZhbiBjaHVhIGR1b2MgdGhhbmggdHJhLCBraWVtIHRvYW4u DQoNCkNobyBkZW4ga2hpLCBVeSBiYW4gS2llbSB0cmEgVHJ1bmcgdW9uZyB2YW8gY3VvYyB0aGkg bW9pIGNvIGtldCBsdWFuIHZlIG9uZyBQaGFtIA0KVGhhbmggQmluaDogIlRyb25nIGh1eSBkb25n LCBxdWFuIGx5LCBzdSBkdW5nIHRpZW4gdm9uIGN1YSBuaGEgbnVvYyBkYSB0aGlldSB0aW5oIA0K dGhhbmggdHJhY2ggbmhpZW0sIGNvIHkgbGFtIHRyYWkgdmEgY28gYmlldSBoaWVuIHZ1IGxvaSBj YSBuaGFuLCBnYXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmcgDQp2ZSBraW5oIHRlLCBjaGluaCB0cmki LiBIeSB2b25nIGtldCBsdWFuIG5heSBjdWEgVXkgYmFuIEtpZW0gdHJhIFRydW5nIHVvbmcgc2Ug a2hvbmcgYmkgDQpob2FuIHRoaSBoYW5oIG5odSBkb2kgdm9pIFRoYW5oIHRyYSBDaGluaCBwaHUg dmEgdnUgdmllYyBwaGFpIGR1b2MgeHUgbHkgbmdoaWVtIG1pbmggDQp0aGVvIHBoYXAgbHVhdC4N Cg0KVmllYyBkYW5oIG5odW5nIGRhYyBxdXllbiBkYWMgbG9pIGNobyBjYWMgdGFwIGRvYW4ga2lu aCB0ZSBjdW5nIGRhIGNvIHRpZW4gbGUgbyBjYWMgbnVvYyANCmtoYWMgdHJlbiB0aGUgZ2lvaS4g VmF5IGNhYyBudW9jIGRvIGdpb2kgaGFuIHZhIGtpZW0gc29hdCBuaHVuZyBkYWMgcXV5ZW4gZGFj IGxvaSBjdWEgDQpjYWMgdGFwIGRvYW4gbmh1IHRoZSBuYW8sIHRodWEgb25nPyANCg0KVHJ1bmcg UXVvYyBjdW5nIGNvIG5oaWV1IHRhcCBkb2FuIGRvYW5oIG5naGllcCBuaGEgbnVvYyBjb24gbG9u IGhvbiBWaW5hc2hpbiBuaGlldSANCmxhbiwgaG9hdCBkb25nIGN1YSBjYWMgdGFwIGRvYW4gZG8g Y3VuZyBjb24gY28gdmFuIGRlLCBzb25nIGNodWEgdGhheSBjbyB0cnVvbmcgaG9wIG5hbyANCnBo YSBzYW4gbmdoaWVtIHRyb25nIG5odSBWaW5hc2hpbi4NCg0KS2luaCBuZ2hpZW0gY2hvIHRoYXkg VHJ1bmcgUXVvYyBibyBuaGllbSB0b25nIGdpYW0gZG9jIHRhcCBkb2FuIGNvIHRob2kgaGFuIHZh IGNvIA0KZGlldSBraWVuLCBkdWEgdHJlbiBob3AgZG9uZyBtYSBnaWFtIGRvYyBreSBrZXQga2hp IG5oYW0gY2h1YywgdHJvbmcgZG8gcXV5IGRpbmggcm8gDQpjYWMgdGlldSBjaGkgZGluaCBsdW9u ZyBraGF0IGtoZSBtYSBnaWFtIGRvYyBwaGFpIGhvYW4gdGhhbmggbmh1OiB0eSBzdWF0IGxvaSBu aHVhbiBoYW5nIA0KbmFtLCB0eSBsZSB0YW5nIG5hbmcgc3VhdCBsYW8gZG9uZyBoYW5nIG5hbSwg dHkgbGUgZG9pIG1vaSBraG9hIGhvYyAtIGNvbmcgbmdoZSwgdGlldCANCmtpZW0gbmFuZyBsdW9u Zywgbmd1eWVuIHZhdCBsaWV1LCB0eSBsZSB0YW5nIGx1b25nIGNobyBjb25nIG5oYW4uLi4gcGhh aSBkYXQgZHVvYy4NCg0KTmh1IHZheSwgZ2lhbSBkb2MgbmhhbiB0YWkgc2FuIHRoaSBwaGFpIG5o YW4gdHJhY2ggbmhpZW0gbmdheSwga2hvbmcgbmh1IFZpbmFzaGluIGN1IA0KdHJhbyB0aWVuIGN1 YSwgZGF0IGRhaSwgcXV5ZW4ga2luaCBkb2FuaCBtYSBraG9uZyBxdXkgZGluaCBkaWV1IGtpZW4g cmFuZyBidW9jIGdpIGNhLg0KSGFuZyBuYW0sIGRvaSBjaGlldSB2b2kgY2FtIGtldCwgQ2hpbmgg cGh1IGRhbmggZ2lhIGNvbmcga2hhaSBob2F0IGRvbmcgY3VhIHRhcCBkb2FuIA0KdmEgdG9uZyBn aWFtIGRvYy4gTmV1IGtob25nIHRodWMgaGllbiBkdW5nIGNhbSBrZXQgc2UgYmkga3kgbHVhdCBk ZW4gbXVjIHNhIHRoYWkuIENhbiANCmJvLCBjb25nIG5oYW4gdmllbiBkZXUgYmlldCBjYWMgY2Ft IGtldCB2YSB0aWNoIGN1YyB0aGFtIGdpYSB0aHVjIGhpZW4gY2FjIGNhbSBrZXQsIGdpYW0gDQpz YXQgdmllYyBkaWV1IGhhbmggY3VhIHRvbmcgZ2lhbSBkb2MuDQoNCkNhYyBuaGEgbWF5IG5obywg a2VtIGhpZXUgcXVhIGJpIHRhaSBjYXUgdHJ1YyBsYWksIGNvIHRoZSBiaSBkb25nIGN1YS4gRG8g bGEga2luaCBuZ2hpZW0gDQp0b3QsIGRhIGR1b2MgZ29pIHkgbmhpZXUgbGFuIG5odW5nIGNodWEg ZHVvYyBhcCBkdW5nIG8gVmlldCBOYW0uDQoNClBoYWkgbmdhbiBjaGFuIG5ndXkgY28gVmluYXNo aW4gbmh1b25nIHF1eWVuIHN1IGR1bmcgZGF0IGRlIHRyYSBubw0KDQpEdSBsdWFuIGRhdCBjYXUg aG9pLCBWaW5hc2hpbiBzZSBsYW0gZ2kgc2F1IGtoaSBkdW9jIHRhaSBjbyBjYXU/IEJvaSBuZXUg dmllYyB0YWkgY28gY2F1IA0KY2hpIGxhIGNodXllbiBtb3Qgc28gZG9uIHZpIGxhbSBhbiBjaG8g bmd1b2kga2hhYyB0aGkgbGlldSBkaWV1IGRvIGNvIGdpYWkgcXV5ZXQgZHVvYyANCm5ndXllbiBu aGFuIGNoaW5oIGtoaWVuIFZpbmFzaGluIGxhbSBhbiB0aHVhIGxvPw0KDQpWaWVjIHRhaSBjbyBj YXUgY3VhIFZpbmFzaGluIGRpZW4gcmEgcmF0IHZvaSB2YSwgY2h1YSBjbyBwaHVvbmcgYW4ga2lu aCB0ZSAtIGt5IHRodWF0LCBsYW0gDQpjaG8gZHUgbHVhbiBjaG8gcmFuZyBkYXkgbGEgbW90IHBo dW9uZyBhbiAiZ2FuIG5vIiwgbmhhbSBnaWFtIGdhbmggbmFuZyBubyBuYW4gY3VhIA0KVmluYXNo aW4uDQoNCkRhbmcgY2h1IHkgbGEgdHJvbmcgY2FjIGRvYW5oIG5naGllcCBkdW9jIGNodXllbiBn aWFvIGNvIG5oaWV1IGRvYW5oIG5naGllcCB0aHVvYyANCmNodXllbiBuZ2FuaCBkb25nIHRhdSB0 aHV5IG5lbiBkdSBsdWFuIGtob25nIHJvIGNhYyBjYW4gY3UsIHRpZXUgY2hpIGNodXllbiBnaWFv IG5heSBsYSANCnRoZSBuYW8gdmEgcGh1YyB2dSBnaSBjaG8gY2h1eWVuIG5nYW5oIGRvbmcgdGF1 IGN1YSBWaW5hc2hpbiB0cm9uZyB0dW9uZyBsYWkuDQpOaHVuZyAidGh1eWVuIHRydW9uZyIgbW9p IGN1YSBjb24gdGF1IFZpbmFzaGluLCBvbmcgVHJhbiBRdWFuZyBWdSB0dXllbiBibywgMyBuYW0g DQpudWEgdGFwIGRvYW4gbmF5IHNlIHRyYSBoZXQgbm8/DQoNCkRheSBsYSBkaWV1IGxhbSBkdSBs dWFuIGhldCBzdWMgbmdhYyBuaGllbi4gVmluYXNoaW4gZGFuZyBubyA4MC4wMDAgdHkgZG9uZywg dHVvbmcgDQpkdW9uZyA0IHR5IFVTRCwgbmV1IHRyb25nIDMgbmFtIHRyYSBoZXQgbm8sIG1vaSBu YW0gVmluYXNoaW4gcGhhaSB0cmEgMSB0eSAzMzAgdHJpZXUgDQpVU0QuIE5ldSB0aW5oIHR5IHN1 YXQgbG9pIG5odWFuIGN1YSBWaW5hc2hpbiBsYSAyMCUgdGhpIGxvaSBuaHVhbiB2YSBkb2FuaCB0 aHUgY3VhIA0KVmluYXNoaW4gcGhhaSBsZW4gZGVuIGJhbyBuaGlldSBsYSBkaWV1IGNodWEgY28g Y29uIHNvIGNodW5nIG1pbmggZGFuZyB0aW4gY2F5Lg0KDQpUaGVvIHRvaSwga2hvbmcgdGhlIGxv YWkgdHJ1IGtoYSBuYW5nIFZpbmFzaGluIGNvIHRoZSBuaHVvbmcgcXV5ZW4gc3UgZHVuZyBkYXQg dGhlbyBnaWEgDQp0aGkgdHJ1b25nIGRlIHRyYSBubywgZGlldSBuYXkgbmhhdCB0aGlldCBwaGFp IGJpIG5nYW4gY2hhbiB2aSBkYXQgZGFpIGxhIHRhaSBzYW4gcXVvYyBnaWEsIA0KZ2lhbyBjaG8g VmluYXNoaW4ga2VtIHRoZW8gbmhpZW0gdnUga2luaCBkb2FuaCBjb25nIG5naGllcCB0YXUgdGh1 eSwga2hvbmcgcGhhaSBkZSBtYW5nIG5odW9uZyBsYWkgZGUgdHJhIG5vLiANCg0KWSBraWVuIGJh biBkb2M6IA0KTkQgMjYtNy0yMDEwOiANCg0KS2llbiBuZ2hpIEtpZW0gdG9hbiBuaGEgbnVvYyB2 YW8gY3VvYyBkZSBsYW0gcm8gbmh1bmcgc2FpIHBoYW0sIHRoYW0gbmh1bmcsIGN1bmcgbmh1IGxh bSBybyBjbyBjYXUgdGFpIHNhbiANCnZhIGNvIGNhdSBubyBjdWEgVmluYXNoaW47IHZpIG1vdCBj b24gdGF1IGN1IGhvYWMgbW90IG5oYSBtYXkgZGllbiBjdSAoc2Vjb25kIGhhbmQpIGR1b2Mgbmhh cCB2ZSANCmNvIHRoZSBjbyBnaWEgdHJpIHNvIHNhY2ggbmhpZXUgdHJpZXUgZG9sYSBuaHVuZyB0 aHVjIHRlIGdpYSB0cmkgdGh1YyBjbyB0aGUgdGhhcCBob24gbmhpZXUsIA0KY28ga2hpIGNoaSBu Z2FuZyB2b2kgZ2lhIGJhbiBzYXQgdnVuOyBuZ3VvYyBsYWksIGdpYSB0cmkgZGF0IGRhaSBoYXkg dHJ1IHNvIGN1YSBWaW5hc2hpbiANCmNvIHRoZSBjaGllbSBwaGFuIGRhbmcga2UgdHJvbmcgdG9u ZyB0YWkgc2FuLCBkbyBkdW9jIGNhcCBuaGlldSBkYXQgbyBuaHVuZyB2aSB0cmkgZGVwIG1hIGNv IA0KY2h1IGtob25nIHBoYWkgZG8gaGlldSBxdWEgc2FuIHh1YXQga2luaCBkb2FuaC4gDQoNCi0N Cmh0dHA6Ly93d3cudGllbnBob25nLnZuL0tpbmgtVGUvNTA4MTUzL01vdC1zby10b25nLWNvbmct dHktbmhhLW51b2MtbG8tbmFuZy5odG1sIFRUWFZOL1ZpZXRuYW0rIDIyOjA1IDI4LzA3LzIwMTAg DQoNClRodSB0dW9uZzogUXVhbiBseSB0YWkgY2hpbmggbyBuaGlldSB0b25nIGNvbmcgdHkgbmhh IG51b2MgY29uIHlldSBrZW0gDQoNClRoZW8gS2llbSB0b2FuIE5oYSBudW9jLCBuYW0gMjAwOSwg Y28gcXVhbiBuYXkgZGEgdGh1YyBoaWVuIGtpZW0gdG9hbiBiYW8gY2FvIHRhaSANCmNoaW5oIChu YW0gMjAwOCkgY3VhIDE4MyB0cm9uZyBzbyAyNDIgZG9hbmggbmdoaWVwIGhhY2ggdG9hbiBkb2Mg bGFwIHRodW9jIDIwIHRvbmcgDQpjb25nIHR5IG5oYSBudW9jLiBLZXQgcXVhIGNobyB0aGF5IHF1 YW4gbHkgdGFpIGNoaW5oIG8gbmhpZXUgdG9uZyBjb25nIHR5IGNvbiB5ZXUga2VtLiANCg0KUmF0 IG5oaWV1IGRvbiB2aSwgdG9uZyBjb25nIHR5IGxvbiBkZSB0b24gdGFpIGNhYyBraG9hbiBubyBr aG8gZG9pIGNhbyBuaHUgVG9uZyBjb25nIHR5IA0KTHVvbmcgdGh1YyBtaWVuIE5hbSBjbyBraG9h biBubyBraG8gZG9pIDU2IHR5IGRvbmc7IFRvbmcgY29uZyB0eSBYYXkgZHVuZyBIYSBOb2kgDQo1 MSwyIHR5IGRvbmcsIENvbmcgdHkgVGh1b25nIG1haSB2YSBYdWF0IGtoYXUgVmlldHRlbCB0aHVv YyB0YXAgZG9hbiBWaWV0dGVsIChraGkgZG8gDQpjb24gbGEgdG9uZyBjb25nIHR5KSBkZSBubyBx dWEgaGFuIDc5IHR5IGRvbmcuLi4NCg0KRGFuZyBjaHUgeSwgbW90IHNvIGRvYW5oIG5naGllcCB4 YXkgZHVuZyB0aHVjIGhpZW4gY28gY2hlIGtob2FuIG5odW5nIGRvIHRoaWV1IGtpZW0gDQp0cmEs IGtpZW0gc29hdCBub2kgYm8gbmVuIG5oaWV1IGtob2FuIHBoYWkgdGh1LCB0YW0gdW5nIGtob25n IHF1eWV0IHRvYW4gZGUgdG9uIG5odW5nIA0Ka2hvYW4gbm8gbG9uLCBraG8gY28ga2hhIG5hbmcg dGh1IGhvaSwgdGllbSBhbiBnYXkgbG8gbG9uIHRyb25nIHR1b25nIGxhaSBjaG8gY2hpbmggY2Fj IA0KZG9hbmggbmdoaWVwIG5heS4gDQoNClZpIGR1LCBUb25nIGNvbmcgdHkgQ28ga2hpIFhheSBk dW5nIGNvIHRvbmcgbm8ga2hvIGRvaSBsZW4gdG9pIDExOCw2IHR5IGRvbmcsIHRyb25nIGRvIA0K Y28gcmF0IG5oaWV1IGtob2FuIHRhbSB1bmcgdnVvdCB0eSBsZSBraG9hbiBub2kgYm8gY2hvIG5o aWV1IGNhbiBibyBkYSBjaHV5ZW4gY29uZyB0YWMsIA0Ka2hvbmcgY29uIGtoYSBuYW5nIHRodSBo b2kuIA0KDQpUb25nIGNvbmcgdHkgWGF5IGR1bmcgY29uZyB0cmluaCBnaWFvIHRob25nIDYgY3Vu ZyBkZSBubyBraG8gZG9pIGxlbiBkZW4gNDYsNCB0eSBkb25nIA0KdmEgZGEgYnVvYyBwaGFpIHRy aWNoIGxhcCBkdSBwaG9uZyBnYW4gMjggdHkgZG9uZy4NCg0KQ28gMTAgdG9uZyBjb25nIHR5IG5o YSBudW9jIGRhdSB0dSByYSBuZ29haSBuZ2FuaCBuaHU6IA0KDQotIFRvbmcgY29uZyB0eSBMdW9u ZyB0aHVjIG1pZW4gTmFtIGRhdSB0dSB2YW8gYmFvIGhpZW0gMjYsOCB0eSBkb25nLCB2YW8gbmdh biBoYW5nIA0KVmlldGNvbWJhbmsgdmEgbW90IHNvIGRvbiB2aSBraGFjIDk1IHR5IGRvbmcuIA0K LSBWYW4gcGhvbmcgVG9uZyBjb25nIHR5IExhbSBuZ2hpZXAgZ29wIHZvbiA4MCB0eSBkb25nIHZh byBDb25nIHR5IGNvIHBoYW4gY2h1bmcgDQpraG9hbiBCYW8gVmlldC4gDQotIE1vdCBkb2FuaCBu Z2hpZXAgdGh1b2MgVG9uZyBjb25nIHR5IEhhbmcga2hvbmcgbWllbiBOYW0gZGF1IHR1IHZhbyBj YWMgdG8gY2h1YyB0aW4gZHVuZyAzMDAgdHkgZG9uZy4gDQotIFRvbmcgY29uZyB0eSBCZW4gVGhh bmggZGF1IHR1IHZhbyBjaHVuZyBraG9hbiwgbmdhbiBoYW5nIHRyZW4gMjQzIHR5IGRvbmcuIA0K DQpWaWVjIHRodWMgaGllbiBuZ2hpYSB2dSB2b2kgbmdhbiBzYWNoIG5oYSBudW9jIChub3AgdGh1 ZSkgbyBraG9pIHRvbmcgY29uZyB0eSBuaGEgbnVvYyANCmN1bmcgbGEgdmFuIGRlIGRhbmcgbm9p LiBIYXUgaGV0IGNhYyBkb24gdmkgZHVvYyBraWVtIHRvYW4gZGV1IGtlIGtoYWkgdGhpZXUgdGh1 ZSB2YSBjYWMgDQpraG9hbiBwaGFpIG5vcCB2ZSBuZ2FuIHNhY2ggbmhhIG51b2MuIA0KUXVhIGtp ZW0gdG9hbiwgS2llbSB0b2FuIE5oYSBudW9jIGRhIGtpZW4gbmdoaSBwaGFpIHRodSBjaG8gbmdh biBzYWNoIHRoZW0gNTQ4IHR5IGRvbmcuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v bmV3cy9QYWdlcy8yMDEwMzEvMjAxMDA3MzAwMTIwNTkuYXNweCBOZ3V5ZXQgTWluaCAzMC8wNy8y MDEwIDE6MjEgDQoNClRodSB0dW9uZzogR2FuIDU4MDAgZHUgYW4gdmkgcGhhbSBxdXkgZGluaCB2 ZSBxdWFuIGx5IGRhdSB0dSAtIGxhbmcgcGhpIG5nYW4gc2FjaA0KDQotIENoYXQgbHVvbmcgY29u ZyB0YWMgcXV5IGhvYWNoIHZhIGR1IGJhbyBjb24gaGFuIGNoZSwgdGhpZXUgZG9uZyBibyBnaXVh IGNhYyBuZ2FuaCANCm5lbiB0cm9uZyBxdWEgdHJpbmggdGh1YyBoaWVuIHBoYWkgdGhheSBkb2ks IGJvIHN1bmc7IA0KDQotIFZpZWMgeGFjIGRpbmggbmh1IGNhdSBkYXUgdHUgY2h1YSBwaHUgaG9w IHZvaSB0aHVjIHRpZW4sIGdheSBsYW5nIHBoaSBuZ2FuIHNhY2ggbmhhIG51b2MiLg0KDQotIERh YyBiaWV0LCBtb3Qgc28gZHUgYW4gZGF1IHR1IGhvYW4gdGhhbmggYmFuIGdpYW8gZHVhIHZhbyBz dSBkdW5nIG5odW5nIGtob25nIGtoYWkgDQp0aGFjIGhldCBjb25nIHN1YXQsIHN1IGR1bmcga2hv bmcgZHVuZyBtdWMgZGljaCwgbGFtIGdpYW0gaGlldSBxdWEgdm9uIGRhdSB0dTsgbW90IHNvIA0K ZHUgYW4ga2V0IHRodWMgZGF1IHR1IG5odW5nIGNodWEgeHUgbHkgdGFpIHNhbiB0aGVvIHF1eSBk aW5oLi4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjUv MjAxMDA2MTcwMTUwMzguYXNweCAxNy8wNi8yMDEwIDE6NTAgDQoNClRodSB0dW9uZzogRG9hbmgg bmdoaWVwIHRoYW4gcGhpZW4gbmdhbmggdGh1ZSAgDQogIA0KVGFpIGhvaSBuZ2hpIGRvaSB0aG9h aSBjaGluaCBzYWNoIHRodWUgdmEgaGFpIHF1YW4gZG8gQm8gVGFpIGNoaW5oIHRvIGNodWMgbmdh eSAxNi42LCBjYWMgDQpkb2FuaCBuZ2hpZXAgKEROKSBwaGFuIG5hbiBibyBuYXkgdGhhbyBnbyB2 dW9uZyBtYWMgY2hpbmggc2FjaCB0aHVlIGNvbiBjaGFtLCBjaHVhIHNhdCB0aHVjIHRpZW4uLi4g DQoNCkhhdSBoZXQgY2FjIEROIHRvIHJhIGtob25nIGhhaSBsb25nIHZlIGNhY2ggdHJhIGxvaSB0 aGlldSB0aG9uZyBuaGF0LCBsdW9uIGJpIGRheSB2YW8gdGluaCANCnRyYW5nLCB0cmEgbG9pIHhv bmcgdGhpICJzdSBkYSByb2kiIGN1YSBjbyBxdWFuIHRodWUuIEJlbiBjYW5oIGRvLCB0aHUgdHVj IHRodWUgbW9pIG5vaSBsYW0gDQptb3Qga2lldSBjdW5nIGdheSBraG8ga2hhbiwgcGhpZW4gcGh1 YyBjaG8gRE4uIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTEwLTE1 LXBuLWFuZC1oZC1jYWkta2hvbi1jYWktaG9hLWNhaS1zby1jYWktZGFpLXZhLSBLeSBEdXllbiAN Cg0KUGhhdCBuZ29uJkhhbmggZG9uZzogQ2FpIGtob24tIGNhaSBob2EtIGNhaSBzby0gY2FpIGRh aSB2YS4uLg0KDQpDYWkga2hvbi0gY2FpIHNvLSBjYWkgZGFpIGRldSBsYSBuaHVuZyB0aHVvYyB0 aW5oIGN1YSBjb24gbmd1b2kuIE5odW5nIHRodW9jIHRpbmggZG8gbGFpIA0KdGFjIGRvbmcgdmFv IHhhIGhvaSwgY2hpIHBob2kgc2F1IHNhYyB4YSBob2ksIHR1dCBoYXUgaGF5IHBoYXQgdHJpZW4s IGJhdCBoYW5oIGhheSBoYW5oIA0KcGh1Yy4gUGhhdCBuZ29uIHZhIEhhbmggZG9uZyB0dWFuIG5h eSB4b2F5IHF1YW5oIGNhdSBjaHV5ZW4gdmUgdGh1b2MgdGluaCBjb24gbmd1b2ksIA0KY3VuZyBs YSB4b2F5IHF1YW5oIGRhdSBiZSBjdW9jIGRvaS4uLg0KDQpEYWkgbGUtIGx1IGx1dCB2YSAuLi4i Y2FpIGtob24gZGkgdHJ1b2MgcnVvYyBjYWkgc2FuZyBzdW90IGRpIHNhdSINCg0KUmF0IGt5IGxh IGxhIG5odW5nIG5nYXkgZGF1IHRoYW5nIDEwIHZ1YSBxdWEsIHRhbyBob2Egbmh1IHRodSB0aGFj aCBzdWMgbHVjIHZhIHRyaSBraG9uIA0KY3VhIGNvbiBuZ3VvaS4gQ3VuZyBsdWMsIGNhIHhhIGhv aSBkdW9jIGNodW5nIGtpZW4gMiBzdSBraWVuIG5odSBkb2kgbGFwLCB2YSAiZG9pIHRyb25nIiAN Cm5oYXUuIE1vdCBkYXUtIFRodSBkbyBIYSBOb2kgdHVuZyBidW5nIGNoYW5nIGRlbiBrZXQgaG9h LCByYW5nIG5nb2kgY2FjIGNvbmcgdHJpbmggDQoiY2hhbyBtdW5nLi4uIiB2YSByYW5nIG5nb2kg YW5oIGRpZW4gY2h1YW4gYmkgZG9uIERhaSBsZSAxMDAwIG5hbSBtb2kgY28gbW90IGxhbi4NCg0K TW90IGRhdSBraWEsIG1pZW4gVHJ1bmcgbmhvbiBuaGFjIGRvaSBtYXQgdm9pIGNvbiBsdSBsb24g a2hvbmcgbW9pIG1hIGRlbiwgbW9pIG5hbSANCmtob25nIGNoaSBtb3QgbGFuLiBLaG9uZyBkaWVu LCBraG9uZyBuaGEsIGtob25nIGN1YS4gTmd1b2kgZGFuIGtpbmggaG9hbmcgImRvbiBsdSIgDQp0 cm9uZyBjYWkgdG9pIG9tIGN1YSBkZW0gdHJ1b25nIGNvIHRpY2gsIGN1YSBkb2kgcmV0LCBjdWEg Y2FpIHNvbmcsIGNhaSBjaGV0IG1vbmcgbWFuaCANCmtob25nIHJhbmggZ2lvaS4gODUgbmd1b2kg ZGFuIGJpIGNoZXQsIGJpIG1hdCB0aWNoIHZhIGJpIHRodW9uZywgY3VuZyAyMCB2YW4gbmdvaSBu aGEgDQoiY2hpbSBkYW0iIHRyb25nIG1lbmggbW9uZyBiaWVuIG51b2MuLi5TdSBob2FuIG5hbiBk YSBsZW4gZGVuIHRvdCBjdW5nIGRpZW0gZGluaC4NCg0KVGFpIHhhIFRhbiBIb2EgKE1pbmggSG9h LSBRdWFuZyBCaW5oKSwgaG9uIDM1MDAgbmd1b2kgZGFuLCB0cm9uZyBkbyBjbyByYXQgbmhpZXUg dHJlIA0KZW0sIGRhIHBoYWkgY2h1aSB2YW8gaGFuZyB0cmFuaCBsdSwgdmEgc3VvdCA1IG5nYXkg dHJvaSBraG9uZyBnYW8sIGtob25nIG11b2ksIGtob25nIGFvIA0KcXVhbiB0aGF5IGRvaSwgc29u ZyBtb3QgY3VvYyBkb2kgLi4uZG8gZGEuIERvaSBxdWEsIG5ndW9pIGRhbiBkYSBwaGFpIGFuIGNh IHRoaXQgY29uIHRyYXUgDQpjaGV0IHZvIHRpbmggdHJvaSBkYXQgcXVhIGRvICghKSBPbmcgVGhh aSBYdWFuIERhbyAoNjggdHVvaSkgY28gbW90IGNhdSBub2kgdGhhdCBkYXUgeG90OiANCiIuLi4g QmEgY29uIGNvIGdhbmcga2llcCBnaWEgc3VjIG1hIHNvbmcgdGhvaS4uLiIgKEJlZS5uZXQudm4s IDEyLTEwLTIwMTApLiBDbyBhaSBkbyBkYSB2aSwgDQpjYWMgZW0gaG9jIHNpbmggVGFuIEhvYSwg a2hpIGhvYyBiYWkgbGljaCBzdSB2ZSBuZ3VvbiBnb2MgbG9haSBuZ3VvaSwgaGFuIHNlIHJhdCBn aW9pIGJvaSANCm5odW5nIG5nYXkgcXVhLCBjYWMgZW0gZGEgaGlldSB0aGUgbmFvIGxhIGRvaSBz b25nIG5ndW9pLi4ubmd1eWVuIHRodXkuIE1vdCBzdSB2aSB2b24gDQpoYWkgaHVvYyBtYS4uLmNh eSBkYW5nLg0KDQooQW5oIG1pbmggaG9hIC0gRGF5IGxhIG1vdCB0cm9uZyBuaHVuZyBidWMgYW5o IGFuIHR1b25nIG5oYXQgdHJvbmcgdHJhbiBiYW8gbHV0IE1pZW4gDQpUcnVuZyBkbyBwaG9uZyB2 aWVuIEh1dSBLaGEsIGJhbyBUdW9pIFRyZSBjaHVwOiBraGkgdGhlbyBjYW5vIGRpIGN1dSBobywg cGhvbmcgdmllbiANCnRoYXkgaGFpIGNhbmggdGF5IHRobyByYSB0dSBtb3QgbWFpIG5oYSBjYXUg Y3V1LiBTYXUga2hpIGx1IHJ1dCwgdGFjIGdpYSBxdWF5IGxhaSB0aW0gbmhhbiANCnZhdCB0cm9u ZyBhbmguIEhhaSBjYW5oIHRheSBkbyBjdWEgaGFpIGVtIHJ1b3QgTmd1eWVuIFZhbiBLaGFuaCAo MTUgdHVvaSkgdmEgTmd1eWVuIA0KVGhpIFRodXkgTGluaCAoOCB0dW9pKSBvIGh1eWVuIEJvIFRy YWNoIChRdWFuZyBCaW5oKSAuIFNhdSBraGkgbWUgdmEgZW0gbmhvIG5oYXQgY3VhIA0KaGFpIGVt IGRhIGR1b2Mgc28gdGFuLCBibyAyIGVtIGR1YSBLaGFuaCB2YSBMaW5oIGxlbiBnYWMgeGVwIHNh dCBtYWkgbmhhIHJvaSBvbmcgcGhhaSANCmRpIHNvIHRhbiBjaGEgbWUgZ2lhIG8geG9tIGJlbi4g S2hpIHF1YXkgbGFpLCBudW9jIGx1IGNoYXkgeGlldCBraG9uZyB0aGUgdmUgZHVvYywgZGFuaCAN CmR1bmcga2hvYyBuaGluIHZlIG5oYS4gS2hhbmggdmEgTGluaCBzYXUgbW90IGRlbSBraWV0IHN1 YyB2aSBrZXUgZ2FvIHZhIGtpbmggaGFpIHZvaSANCmRvbmcgbnVvYyBsdSBib24gYmUsIHNhbmcg aG9tIHNhdSBuZ2hlIHRpZW5nIGNhbm8gY2hheSBxdWEgMiBhbmggZW0gbGFwIHR1YyB0aG8gdGF5 IA0KdmF5IGdvaS4gQnVjIGFuaCBkYSBkdW9jIHRydXllbiBxdWEgcmF0IG5oaWV1IHRyYW5nIGJh bywgZGllbiBkYW4sIGtoaWVuIGtob25nIGl0IG5ndW9pIA0Kcm9pIG51b2MgbWF0LikNCg0KQW5o IG1pbmggaG9hIC0gTnVvYyBsdSB2dWEgcnV0LCBoYWkgYW5oIGVtIEtoYW5oIHZhIExpbmggcGhh aSByYSBkb25nIGdpYW5nIGx1b2kga2llbSANCmNhaSBhbiBjaG8gY2EgbmhhIC0gQW5oOiBIdXUg S2hhDQoNCkNoaW5oIHZpIHZheSwgRGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmctIEhhIE5vaSBs ZSByYSBsYSBtb3QgbGUgaG9pIHR1bmcgYnVuZyBjYSANCm51b2MgaHVvbmcgdmUsIGtob25nIHBo YWkgY3VhIHJpZW5nIFRodSBkbywgYm9uZyB0cm8gdGhhbmggInRhbSBkaWVtIiBjdWEgbmh1bmcg dHJhbmggDQpjYWksIHBoZSBwaGFuLiBDbyBjYSBiaW5oIHRpbmggdmEgbm9uZyBuYXksIGNvIGNh IHRoYXUgdGluaCBkYXQgbHkgdmEgY3VjIGRvYW4uLi5HaXVhIGx1YyANCmRvLCB0YWkgbmFuIG5v IDIgY29udGVubm8gcGhhbyBvIFNhbiB2YW4gZG9uZyBRdW9jIGdpYSBNeSBEaW5oLCBsYW0gNCBu Z3VvaSBjaGV0ICgzIA0KY2h1eWVuIGdpYSBudW9jIG5nb2FpLCAxIG5ndW9pIFZOKSB2YSAzIG5n dW9pIGtoYWMgYmkgdGh1b25nLCBraGllbiBkdSBsdWFuIHhhIGhvaSANCm5odSBxdWEgYm9uZyBi aSBib20gY2FuZyB0cm9uIHRvdCBkaW5oLg0KDQpDaGkgY29uIDIgbmdheSBudWEgbGEgS3kgbmll bSBEYWkgbGUuIENoaWV1IHRodSA2IG5nYXkgOC0xMCwgbW90IHRpbiBiYXQgbmdvIGRvbmcgbG9h dCANCmRhbmcgdHJlbiBjYWMgYmFvLCBkYSBuaHUgbW90IGNhaSB2YW4gbGFtIHhlcCBib3QgcXVh IGJvbmcgZHUgbHVhbiB4YSBob2kgYm9pIDIgc3Uga2llbiANCnZvIHRpbmggbmh1IGRvaSBjdWMu IERvIGxhIHF1eWV0IGRpbmggY3VhIFRoYW5oIHV5LCBVQk5EIHQvcCBIYSBOb2kgZHVuZyB2aWVj IGJhbiANCnBoYW8gaG9hIHRhaSAyOSBkaWVtIHRyZW4gdG9hbiB0L3AgdmFvIGRlbSBiZSBtYWMg RGFpIGxlIDEwLTEwLCBkYW5oIHNvIHRpZW4gNSB0eSBkb25nIA0KZ2l1cCBkbyBkb25nIGJhbyBj YWMgdGluaCBtaWVuIFRydW5nIGRhbmcgcGhhaSBnYW5nIHN1YyBjaG9uZyBjaG9pIHRodXkgdGhh bi4NCg0KVHJhIGxvaSBwaG9uZyB2YW4gY3VhIHAvdiBWaWV0TmFtTmV0LCBuZ2F5IDktMTAsIG9u ZyBQaGFtIFF1YW5nIE5naGktIEJpIHRodSBUaGFuaCANCnV5IEhhIE5vaSBraGFuZyBkaW5oOiAi RHVuZyBiYW4gcGhhbyBob2EgdmkgbmdoaWEgdnUgdmEgdHJhY2ggbmhpZW0iLg0KDQpEdSBsdWFu IGJhbyBjaGksIGRhYyBiaWV0IGNhYyB0cmFuZyBtYW5nIGNhIG5oYW4gKGJsb2cpLCBzYXUgbmh1 bmcgYnVjIHh1Yywgbmh1bmcgY2hpIA0KdHJpY2gsIHRoYW0gY2hpIHBoYW4gbm8sIGN1bmcgZG9u ZyBsb2F0IGhvYW4gbmdoZW5oIHF1eWV0IGRpbmggY3VhIFRodSBkbyBIYSBOb2ksIGxhIA0KInNh bmcgc3VvdCwgZHVvYyBsb25nIGRhbiIuDQoNClR1eSBuaGllbiwgY3VuZyBraG9uZyBpdCB5IGtp ZW4gY2hvIHJhbmcsIGRvIG1vaSBjaGkgbGEgImNhaSBraG9uIGRpIHRydW9jIHJ1b2MgY2FpIHNh bmcgDQpzdW90IGRpIHNhdSIuIEJvaSBuZXUgbGEgImNhaSBzYW5nIHN1b3QgZGkgdHJ1b2MiIHRo aSBsZSByYSwgcXV5ZXQgZGluaCBheSBwaGFpICJzYW5nIHN1b3QgZGkgDQp0cnVvYyIgaG9uIHJh dCBuaGlldSwga2hvbmcgZGVuIG5vaSBwaGFpICJkaSBzYXUgcm90IiBjYWMgdHJhbmcgbWFuZyBj YSBuaGFuIGxvbiB0aWVuZyANCmtpZW4gbmdoaSwgbW8gZGF1IGxhIGJsb2cgY3VhIHRyYW5uaHVv bmcuY29tLg0KDQpUaG9pIHRoaSwgZGF1ICJzYW5nIHN1b3QiIGhheSAia2hvbiBuZ29hbiIgbWEg Y3VvaSBjdW5nLCBuZ3VvaSBkYW4ga2hvbmcgcGhhaSAibW90IA0KYmVuIGN1b2kgbnUsIG1vdCBi ZW4ga2hvYyB0aGFtIiwgdGhpIGRpZXUgZG8gZGV1IGxhICJkdW9jIiBjYS4NCg0KQ2hvdCBuaG8g dG9pIHF1YSwgVlRWMSBkdWEgbW90IHN1IGtpZW4gdGhvaSBzdSBub25nIGhvaSB2YSB2byBjdW5n IGhvaSBob3AgY3VhIGRhdCANCm51b2MgQ2hpbGUsIHRodSBodXQgc3UgcXVhbiB0YW0sIGxvIGxh bmcgdGhlbyBkb2kgY3VhIGNhIG5oYW4gbG9haS4gQ3VvYyBnaWFpIGN1dSAzMyB0aG8gDQptbyBi aSAiY2hvbiBzb25nIiBraGkgc3UgY28gc2FwIGxvIHhheSByYSBzdW90IGdhbiA3MCBuZ2F5IHF1 YSBkYSB0aGFuaCBjb25nIG15IG1hbi4NCg0KVGhhdCBjYW0gZG9uZyBraGkgZHVvYyBuaGluIHRo YXkgaGluaCBhbmggY3VhIFRvbmcgdGhvbmcgQ2hpbGUgbHVvbiBjbyBtYXQgdHJvbmcgY3VvYyAN CmdpYWkgY3V1IHRoYW4ga3ksIGtoaSBvbmcgb20gaG9uIHJhdCBjaGF0IG5ndW9pIHRydW9uZyBj YS0gbmd1b2kgdGhvIGN1b2kgY3VuZyBkdW9jIGR1YSANCmxlbiBtYXQgZGF0LiBQaGF0IGJpZXUg dGFpIGJ1b2kgY2hhbyBkb24gbmh1bmcgbmd1b2kgdGhvIGR1b2MgZ2lhaSBjdXUsIG9uZyBub2kg bW90IGNhdSANCnRoYW0gdGhpYTogQ2FtIG9uIHRhdCBjYSBuaHVuZyBuZ3VvaSB0aG8gbW8gZGEg ImNobyBjaHVuZyB0b2kiIG1vdCBiYWkgaG9jIHZlIHRpbmggbmd1b2khDQoNCk9uZyAtIHZpIFRv bmcgdGhvbmcgQ2hpbGUsIHF1YW4gY2h1YyBjYW8gY2FwIG5oYXQgbW90IGRhdCBudW9jLCBkYSBr aG9uZyBjb2kgZG8gbGEgc3UgDQoiY3V1IGdpdXAiLCBtYSBuZ3VvYyBsYWksIG9uZyB0dSBjaG8g ZGEgbmhhbiBkdW9jIG8gZG8gbW90IGJhaSBob2MgLSBiYWkgaG9jIHZpIGNvbiBuZ3VvaSENCg0K UGhhaSB2YW4gaG9hIGxhbSwgcGhhaSBuaGFuIHZhbiBsYW0sIG1vaSBjbyB0aGUgbmhhbiBjaGFu IGdpYSB0cmkgY3VhIG1vdCB2aSB0aGUgbGFuaCANCmRhbyBkdW9uZyBheSwgdm9pIG5oYW4gZGFu IG1pbmguIE9uZyBsYSBuZ3VvaSBkdW9jIG5oYW4gY2h1IGtob25nIHBoYWkgbmd1b2kgImJhbiAN CmNobyIuDQoNCkxlIGRpIG5oaWVuLCBjaGFuZyBuZ3VvaSB0aG8gbW8sIGNoYW5nIG5ndW9pIGRh biBDaGlsZSBuYW8gbGFpIG11b24gY28gbW90IHRhaSBob2EgDQpraWV1IGRvLCBkZSAiY2hvIiBj aGluaCBxdXllbiBjdWEgaG8gbW90IGJhaSBob2MgdmUgdGluaCBuZ3VvaS4gTmh1bmcgc3UgY28g ZG8gZGEgeGF5IA0KcmEuIFR1eWV0IHZvaSB0aGF5LCBuZ3VvaSBsYW5oIGRhbyBtb3QgcXVvYyBn aWEsIHZhIG5odW5nIHZpIHF1YW4gY2h1YyBjYXAgY2FvIGN1YSBxdW9jIA0KZ2lhIENoaWxlLCBk YSAidGh1b2MgYmFpIiBtb3QgY2FjaCBteSBtYW4sIGRhbmcgdHJhbiB0cm9uZy4NCg0KVmEgY3Vu ZyBjaGFuZyBuZ3VvaSBkYW4gbWllbiBUcnVuZyBuYW8gbGFpIG11b24gbHUgbHV0IHhheSByYSBk ZSB0aHUgdGhhY2ggc3UgInRodW9jIA0KYmFpIiBjdWEgbmh1bmcgbmd1b2kgbGFuaCBkYW8gVGh1 IGRvLiBOaHVuZyBsdSBsdXQgZGEgeGF5IHJhLCB2YSBjYWMgcXVhbiBjaHVjIGNoaW5oIA0KcXV5 ZW4gVGh1IGRvIGN1bmcgZGEgdHJhIGR1b2MgYmFpLCB0dXkgc3UgInRyYSBiYWkiIGNvIGhvaSBt dW9uIG1hbmcuDQoNCkFuaCBtaW5oIGhvYTogU2F1IGtoaSBjaGF5IGx1IHZlLi4uIEFuaCBUdW9p IFRyZQ0KDQoiQ29uIHNhbyBsb2kgc29uZyIuLi4gdmEgMiBsYW4gaGllbSBob2ENCg0KS2hpIG5o dW5nIGNvbiBsdSBsb24gbyBtaWVuIFRydW5nIGNvbiBjaHVhIGtpcCBydXQsIHRoaSB4YSBob2kg bGFpIHRpZXAgdHVjIGNodW5nIGtpZW4gDQpuaHVuZyBoaW5oIGFuaCB4b3QgeGEsIGN1bmcgdmUg Y2h1eWVuIHNvbmcgbnVvYywgY2hvIGR1IHR1b25nIG5odSBkYSBxdWEgcXVlbiB0aHVvYy4NCg0K QmFvIERhbiB0cmkgbmdheSA4LTEwLTIwMTAgZHVhIHRpbjogIktob25nIGNvIGNhdSwgaGFuZyBu Z2F5IG5ndW9pIGRhbiB2YSB0cmUgZW0gdGhvbiANClBodSBNdWEgKHhhIEpvIE5nYXksIGh1eWVu IG1pZW4gbnVpIERvbmcgR2lhbmcsIFF1YW5nIE5hbSkgbXVvbiBzYW5nIHBoaWEgYmVuIA0Ka2lh IGR1b25nIHF1b2MgbG8gRFQ2MDQgcGhhaSBib2kgcXVhIGNvbiBzb25nIFInbGFuZyBkYW5nIGNo YXkgeGlldCB0cm9uZyBtdWEgbnVvYyANCmx1LiBUcmVuIGtodWMgc29uZywgaGFuZyBjaHVjIGVt IGhvYyBzaW5oIGR1bmcgZG9pIG5ndW9pIHRoYW4gZGVuIGRvbiBzYXUgYnVvaSBob2MgDQpzYW5n IG5nYXkgNy8xMC4NCg0KQW5oIEFsYW5nIFRpbmcgY2hvIGJpZXQ6ICJOaGlldSBuYW0gbmkgcm9p LCBkbyBraG9uZyBjbyBjYXUgbmVuIG5ndW9pIGRhbiBjaHVuZyB0b2kgDQptdW9uIGxhbSBjaGkg Y3VuZyBwaGFpIGJvaSBzb25nIGxvbi4gTmhpZXUgbGFuIGN1bmcgc3V5dCBtYXQgbWFuZyBuaHVu ZyBjdW5nIHBoYWkgDQpsaWV1IG1pbmggY2h1IGJpZXQgbGFtIHJhbmc/Ii4gQ29uIHRoZW8gQmkg dGh1IENoaSBibyB0aG9uIFBodSBNdWEsIG9uZyBBbGFuZyBCYXk6IA0KIktob25nIGNvIGNhdSwg bmd1b2kgZGFuIHZhIGNhYyBlbSBob2Mgc2luaCB0aG9uIFBodSBNdWEgZGV1IHBoYWkgYmF0IGNo YXAgdGluaCBtYW5nIA0KY3VhIG1pbmggbW9pIGxhbiBjbyB2aWVjIHBoYWkgcXVhIGxhaSIuDQoN Ck5oaW4gdGFtIGFuaCBuZ3VvaSBjaGEsIHRheSB0cmFpIGNhbSBjYXAgc2FjaCBob2Mgc2luaCBn aW8gbGVuIHF1YSBkYXUsIGN1bmcgdm9pIHR1bSANCnF1YW4gYW8sIHRheSBwaGFpIGRhdCBkdWEg Y29uIGdhaSBiZSBib25nLCB0cmFuIHRydW9uZywgbWFpIHRvYyBkdW9pIGdhIGJldCBudW9jICJs b2kgDQpzb25nIiwgbWEgZGF1IHhvdCBxdWEuDQpCb25nIGxpZW4gdHVvbmcgY2Ega2h1YyB0cnUg dGluaCBjdWEgbmhhYyBzaSBUcmFuIFRpZW4gKE5nYXUgaHVuZyBzb25nIEhvbmcpOiAiQ29uIA0K c2FvIHNhbmcgc29uZyBiYXQgZ2lvLiBDb24gc2l0IHRodW9uZyBhaSwgbG9pIHNvbmcsIGxvaSBz b25nLi4udGltIGFpISIuDQoNCihBbmg6IE5odW5nICdjb24gc2FvJyBkYW5nIHNhbmcgc29uZywg QW5oOiBTR0dQKQ0KDQpOaHVuZyBuaHVuZyBjb24gc2FvIGJlIGJvbmcgbmF5IGRhdSBjbyBzdSBs YW5nIG1hbiwgbWEgY2hpIGNvIHN1IGtpbmggaG9hbmcga2hpIG5nYXkgDQp0aG8gbG9pIHNvbmcg ZGUuLi50aW0gY2h1Lg0KDQpUb2kgZGEgbGFuZyBkaSByYXQgbGF1IGtoaSBuaGluIHRhbSBhbmgg a2hpZW4gdHJpdSBuYW5nIGNvbiB0aW0uIFZhIHR1IGhvaSwgbmV1IGNvbiB0b2ksIA0KY3VuZyBw aGFpIHNvbmcgdHJvbmcgaG9hbiBjYW5oIGRvLCBsaWV1IHRvaSBjbyBkdSBjYW4gZGFtIGNobyBj b24gZGkgaG9jIG5nYXkgbmdheSBuaHUgDQp0aGUga2hvbmc/IENvIGxlIGtob25nISBUb2kgeGlu IG5oYW4gbGEga2UgaGVuIG5oYXQsIGtlIHBoYW0gTHVhdCBwaG8gY2FwIEdpYW8gZHVjIHRpZXUg aG9jLCBib2kgdG9pIGtob25nIHRoZS4uLg0KDQpCb2kgdG9pIHZhbiBsdW9uIG5obyBkZW4gdnUg dGFpIG5hbiBzb25nIG51b2MgZGF1IGxvbmcgbyBiZW4gZG8gQ2hvbSBMb20gbmFtIG5hbywgZGEg DQpjdW9wIGRpIHNpbmggbWFuZyBjdWEgYmlldCBiYW8gYmUgdGhvLiBOaG8gZGVuIG5odW5nIGVt IGJlLCBjbyBxdWFuZyBraGFuIGRvIGJheSANCnBoYXAgcGhvaSwgbmdheSBuZ2F5IHRyZW8gbWlu aCBkdSBkYXkgdnVvdCBkb25nIHNvbmcgUG9rbyBodW5nIGR1LCBjdW5nIGNoaSBkZSBkaSANCi4u Li4uLnRpbSBjaHUuDQoNCkNhaSBjb24gY2h1IGJlIG5obywgYm9uZyB0aGFuaCB0YW4gbmhhbiB0 aGUsIGtoaSB2byB0aW5oIG5vIHRoYWNoIHRodWMsIG5vICJkYW5oIGRvIiBiaWV0IA0KYmFvIHNp bmggbWFuZyBjdWEgbmh1bmcgY29uIHNhbyBuZ2F5IHRoby4NCg0KTmh1bmcgY29uIGNodSB2byB0 cmkgdm8gZ2lhYyBubyB2byB0aW5oIGhheSBjb24gbmd1b2kgY28gdGltLCBjbyBvYyB2byB0aW5o PyBObyB2byBjYW0gDQpoYXkgY29uIG5ndW9pIHZvIGNhbT8NCg0KVGh1IHRoYXQsIG5ndW9pIHZp ZXQgYmFpIG5heSwgcmF0ICJkaSB1bmciIHZvaSBjYXUgbm9pIHR1b25nIGxhIGtoZW4gbmdvaSBj dWEgbW90IHZpIHF1YW4gDQpjaHVjIHRydW9jIGhpbmggYW5oIGR1IGRheSBjdWEgdHJlIGVtIGJl biBkb25nIHNvbmcgUG9Lbywgdmkgbm8uLi4gZ2lhIGRvaSBxdWE6ICJEbyBsYSANCm1vdCBzdSBz YW5nIHRhbyBjdWEgbmd1b2kgZGFuIiwga2hpIG5obyB0b2kgZ3VvbmcgbWF0IGNhbmcgdGhhbmcg Y3VhIGNhYyBlbSBjaHVhbiBiaSANCnRyZW8gbWluaCB2dW90IHNvbmcsIG1hIHZvIGN1bmcgZGF1 IGRvbiwgdm8gY3VuZyBwaGFuIG5vLg0KDQpEdW9uZyBuaHUgeGEgaG9pIGNodW5nIHRhIHJhdCBo b24gbmhpZW4gbmVuIHJhdCBjaG9uZyBxdWVuLiBSYXQgY2hvbmcgcXVlbiB2dSBkYW0gZG8gDQpD aG9tIExvbS4gUmF0IGNob25nIHF1ZW4gY2hpZWMgZHUgZGF5IHR1IHRoYW4gbW9uZyBtYW5oIHRy ZW8gdHJlbiBkb25nIFBva28gY2hheSANCnhpZXQuLi5OZW4gY2F1IGNodXllbiBsb2kgc29uZyBS J2xhbmcgY3VhIHRyZSBlbSB0aG9uIFBodSBNdWEgKHhhIEpvIE5nYXksIGh1eWVuIG1pZW4gDQpu dWkgRG9uZyBHaWFuZywgUXVhbmcgTmFtKSBsYWkgdGllcCBkaWVuLg0KDQpTZSBjb24gYmlldCBi YW8gY29uIHNhbyB0aG8gbmdheSBuZ2F5IG5nYXkgbG9pIHNvbmcuLi50aW0gY2h1LCBvIG1vaSBk b25nIHNvbmcgdHJlbiBkYXQgDQpudW9jIG5heSwgY2h1YSBkdW9jIGJhbyBjaGkgcGhhdCBoaWVu Pw0KDQpTYW5nIHRhbyBsYSBkb25nIGx1YyBjaG8geGEgaG9pIHBoYXQgdHJpZW4uIE5odW5nIG5o aW4gbmh1bmcgaGluaCBhbmguLi5zYW5nIHRhbyB2dW90IA0Kc29uZyBjdWEgbmh1bmcgbmd1b2kg Y2hhLCBuZ3VvaSBtZSB0aG9uIFBodSBNdWEsIGNoYWMgbmh1bmcgbmd1b2kgZG9jIG5odSBjaHVu ZyB0YSwgDQpjaGFuZyBhaSBtb25nIG11b24gbW90IHN1IHNhbmcgdGFvIGNheSBjdWMgZG8hDQoN ClNvbmcgbnVvYyBtdWEgbHUgbHVvbiBsYSBoaWVtIGhvYSB2b2kgdGluaCBtYW5nIGNvbiBuZ3Vv aSwgZGFjIGJpZXQgdm9pIHRyZSB0aG8sIG5oYXQgbGEgDQpkYXQgbnVvYyB0YSBsYSBkYXQgbnVv YyBjdWEgbmh1bmcgZG9uZyBzb25nLiBOaHVuZyBjb24gY28gbW90IGRvbmcgc29uZy0gbW90IGhp ZW0gDQpob2EgY29uIGxvbiBob24sIGRhbmcgc28gaG9uLSBzdSB2byBjYW0gY3VhIGNvbiBuZ3Vv aSBjbyB0cmFjaCBuaGllbSwgY2hheSBsYW5oIGxlbywgDQphbSB0aGFtIHRyb25nIG5odW5nIGNv biB0aW0uIEFpIGRvIGRhIG5vaSwgbW90IGNvbiBuZ3VvaSBtYXQgZGksIGxhIG5vaSBiYXQgaGFu aCB2b2kgY2EgDQpnaWEgZGluaC4gTmh1bmcgbmllbSB0aW4gbWF0IGRpLCBsYSBub2kgYmF0IGhh bmggdm9pIGNhIG1vdCBkYW4gdG9jLg0KDQpYaW4gY2EgeGEgaG9pIGNodW5nIHRhLCB0cm9uZyBk byBjbyBjYWMgb25nLCBjYWMgYmEuLi50dSBxdWFuIGNodWMgZGVuIHRhbiB0aHVvbmcgZGFuLCAN CnRyb25nIGRvIGNvIHRvaSwgY28gYW5oLCBjbyBjaGksIGNvIGNhYyBhbmgsIGNhYyBjaGkuLi4g ZHVuZyBkZSBjaG8gbm9pIGJhdCBoYW5oIGRvLCBhbiANCm1vbi4NCg0KQW5oOiBWdSBubyBwaGFv IGhvYSBvIE15IERpbmgsIEFuaCBLaW5oIHRlIE5vbmcgdGhvbg0KDQoiS2hvbmcgc28gbWF0Li4u dm8sIGNoaSBzbyBtYXQgLi4ubGFwIHRydW9uZyINCg0KRG8gbGEgY2F1IG5vaSBudWEgZHVhLCBu dWEgdGhhdCB2YSByYXQgaGFpIGh1b2MgY3VhIEdTLiBUU0tIIEhvIE5nb2MgRGFpLCBhbSBjaGkg bW90IA0KZG9pIHNvbmcgdGluaCB0aGFuIGNvIHRoYXQgdHVuZyBuZ3UgdHJpIHRyb25nIGtob25n IGl0IGNvbiBuZ3VvaSwgbWEgbmd1b2kgdmlldCBiYWkgbmF5IA0KbGllbiB0dW9uZyBkZW4sIGto aSBkb2MgYmFpIHZpZXQgIkNhbiBjbyBuaHVuZyBLaW0gTmdvYyBtb2kpIGN1YSB0YWMgZ2lhIERv IENoaSBOZ2hpYSANCmRhbmcgdHJlbiBWaWV0TmFtTmV0IG5nYXkgNy0xMCBtb2kgZGF5LCBuaGFu IGJvIHBoaW0gQmkgdGh1IFRpbmggdXksIGRhbmcgcGhhdCB0cmVuIFZUVjEuDQoNCg0KQm8gcGhp bSBkdW9jIGtoYWkgcXVhdCwgZHVvYyBkdW5nIG5lbiB0dSBjdW9jIGRvaSBjdWEgbW90IGNvbiBu Z3VvaSBjbyB0aHVjLCB2YSBkYSB0cm8gDQp0aGFuaCBtb3QgbmhhbiB2YXQgbGljaCBzdS4gRG8g bGEgb25nIEtpbSBOZ29jLCBuZ3V5ZW4gQmkgdGh1IFRpbmggdXkgVmluaCBQaHVjIChuYW0gDQox OTY4IGhhaSB0aW5oIFZpbmggUGh1YyB2YSBQaHUgVGhvIHNhcCBuaGFwIHRoYW5oIHRpbmggVmlu aCBQaHUsIG9uZyB0aWVwIHR1YyBnaXUgY2h1YyANCnZ1IEJpIHRodSB0aW5oIHV5IFZpbmggUGh1 IGNobyBkZW4gbmFtIDE5NzcpLCBtb3Qgbmd1b2kgbGFuaCBkYW8gbyBjbyBzbywgZGkgZGF1IHRy b25nIA0KY29uZyBjdW9jIERvaSBtb2kgdm9pIGNodSB0cnVvbmcgImtob2FuIGhvIiAoZ2lhbyBy dW9uZyBkYXQgY2hvIG5vbmcgZGFuKS4gU2F1IG5heSwgDQpjaHUgdHJ1b25nIGRvIGxhbSBjbyBz byBjaG8gdmllYyByYSBkb2kgY2hpbmggc2FjaCAiS2hvYW4gMTAiLCBnb3AgcGhhbiBraWNoIHRo aWNoIHN1IA0KcGhhdCB0cmllbiBub25nIG5naGllcCwgZGVtIGxhaSBsb2kgaWNoIGNobyBuZ3Vv aSBsYW8gZG9uZy4NCg0KTmh1bmcgY3VuZyBjaGluaCB2aSAiZGkgdHJ1b2MgdGhvaSBkYWkiIG1h IG9uZyBLaW0gTmdvYywgY29uIG5ndW9pIGNvIGNhaSB0ZW4gZ29pIHJhdCANCmRhbmcgcXV5LCBs YWkgYmkgdGhvaSBkYWkgY3VhIG9uZy0gY3VhIGNvIGNoZSBxdWFuIGx5IGJhbyBjYXAsIGNobyAi bGVuIGJvIHh1b25nIHJ1b25nIjogDQpCaSBraWVtIGRpZW0sIHZhIHBoYWkgdHUgcGhlIGJpbmgg bmdoaWVtIHR1Yy4gVGhhbmcgNSBuYW0gMTk3NywgdGFpIERhaSBob2kgRGFpIGJpZXUgDQpEYW5n IGJvIHRpbmggVmluaCBQaHUgbGFuIHRodSBJSUksIG9uZyB4aW4gcnV0IGtob2kgY2h1YyBCaSB0 aHUgVGluaCB1eSBWaW5oIFBodS4gTmFtIA0Kc2F1LCAxOTc4LCBvbmcgdmUgaHV1Lg0KDQpOaHVu ZyBuYW0gdGhhbmcgY3VhIHRob2kgYmFvIGNhcCwgaGluaCB0aHVjIGtpZW0gZGllbSB0aGkgbmhl IG5oYW5nLCBuaHVuZyAiYm9uZyANCm1hIiBjdWEgc3Uga2llbiBkbyB0aGF0IGtpbmgga2h1bmcg dm9pIG1vdCBjb24gbmd1b2kgdHVuZyBjbyBxdXllbiBjaHVjIGNhbyBjYXAgbmh1IA0Kb25nLiBD aGFjIGNoYW4sIG5vIGFtIGFuaCBraG9uZyBpdCBuaHVuZyBjYW4gYm8gbGFuaCBkYW8ga2hhYyBj byBkYXUgb2Mgc2FjIHNhbywgY28gDQpraGF0IHZvbmcgZG9pIG1vaSwgbXVvbiB0aW0ga2llbSBt b3QgbG9pICJ0aG9hdCBuZ2hlbyIgY2hvIGRhbiB0b2MsIG5odW5nIGN1bmcgdmkgdGhlIA0KbWEg a2hvbmcgZGFtIGRhbmggZG9pIGNhIHRoYW5oIGRhbmggbGFuICJub2kgY29tIiBjdWEgZ2lhIGRp bmgsIHZvIGNvbiwgY3VhIGNoaW5oIA0KbWluaC4NCg0KQmkga2ljaCBtb3QgZGFuIHRvYyBjaGFt IHBoYXQgdHJpZW4gdGhpIHJhdCB0aHVjLCBjb24gY2FpIGFtIGFuaCB0aGkgcmF0ICJhbyIsIG5o dW5nIGxhaSANCm1hbmcgc3VjIG5hbmcgbmdhbiBjYW4hDQoNClZpIHRoZSwgY2hvIGR1IGhpZW4g bmF5LCBjbyBjaGUgcXVhbiBseSB4YSBob2kgZGEgZGkgZHVvYyBuaHVuZyBidW9jIGRhaSB0cm9u ZyBjb25nIA0KY3VvYyBEb2kgbW9pLCBjaHVuZyB0YSB2YW4gbHVvbiBwaGFpIGRvaSBtYXQgdm9p IG1vdCB0aHVjIHRlIGRhbmcgYnVvbiBuYXk6ICJOaGlldSBjYW4gDQpibyBkdW9jIGRhbmggZ2lh IGxhIGxpZW0ga2hpZXQsIHRyb25nIHNhY2ggbmh1bmcgbmhpbiBreSB0aGkgaGF1IG5odSBobyBr aG9uZyBsYW0gZ2ksIA0Ka2hvbmcgdmEgY2hhbSB2b2kgYWksIGNoaSB0aHUgdGhlLCBjaG8gdGhv aS4uLiBUaGFpIGRvICJ0cnVuZyBkdW5nIiBheSByYXQgImFuIGRpZW0iIHRyb25nIA0KYm9pIGNh bmggY28gY2hlLCBjaGluaCBzYWNoIGNvbiBuaGlldSBiYXQgY2FwLi4uQ2hpbmggY2FpICJ0cnVu ZyBkdW5nIiBheSBsYWkgY2FuIHRybyBzdSANCnBoYXQgdHJpZW4sIGtoaWVuIG1vaSB2aWVjIGNo dW5nIGNoaW5oLCB0aGlldSBkdXQga2hvYXQgdmEgbWluaCBiYWNoIi4NCg0KVmEgdmkgdGhlLCAi Tmh1bmcgbmd1b2kgZHVuZyBvICJraG9hbmcgZ2l1YSIsIGNodW5nIGNodW5nLCB2byB0aHVvbmcg dm8gcGhhdC0gY2FpIHNhbiANCnBoYW0gYmFvIGNhcCBuYW5nIG5lIGRvIGhvYSByYSB2YW4ga2hh IHBobyBiaWVuIHRyb25nIGNvbmcgdGFjIGNhbiBibyBoaWVuIG5heS4gS2hvbmcgDQppdCBuZ3Vv aSBzb25nIG5oYW4gbmhhdCwga2hvbmcgYmFuIHNhYywga2hvbmcgY2hpbmgga2llbiwgbmh1bmcg InNvbmcga2hvZSIgdmkgImJlbiANCm5hbyIgY3VuZyBjYW4gaG8iDQoNCkhvIC0gY28gdGhlIHNv bmcga2hvZSwgcmF0IGtob2UuIE5odW5nIGRhbiB0b2MgdGhpIHlldSwgcXVvYyBnaWEgdGhpIHll dSAtIGJvaSBzdSB0cmkgdHJlLCANCmtob25nIHBoYXQgdHJpZW4gbm9pLCBraG9uZyByYSBraG9p IGNhaSAiYmF5IHRydW5nIGJpbmgiLg0KDQpDdW5nIHZpIHRoZSwgbmd1eWVuIEJpIHRodSBUaW5o IHV5IFZpbmggUGh1YyBLaW0gTmdvYyBraG9uZyBjb24gc29uZywgbmh1bmcgdGVuIA0KdHVvaSBv bmcsIG5oYW4gY2FjaCBsYW5oIGRhbyB2aSBkYW4gY3VhIG9uZywgdmFvIGx1YyBuYXksIGxhaSBk dW9jIG5oYWMgbmhvIGRlbiwgZHVvYyANCnN1eSBuZ2FtLCBraG9uZyBwaGFpIGNoaSBuaHUgbW90 IGNvbiBuZ3VvaSBjdSB0aGUsIG1hIG5odSBtb3QgImhpZW4gdHVvbmciLiBOZ3VvaSANCmxhbmgg ZGFvIGRhbSBkdW5nIGNhbSBkb2kgbW9pIHR1IGR1eSB0cmkgdHJlLCB4byBjdW5nIHZhIGJhbyB0 aHUgY3VhIGNoaW5oIG1pbmgsIA0KZGUgaGFuaCBkb25nIHRydW9jIGRvaSBob2kgY3VhIGNvbmcg ZG9uZyBkb2kgbmdoZW8sIHR1dCBoYXUuDQoNClR1IGNodSB0cnVvbmcgImNodWkiIGN1YSBtb3Qg ZGlhIHBodW9uZywgYmllbiB0aGFuaCBjaGluaCBzYWNoIGNvbmcga2hhaSBtb3QgcXVvYyBnaWEu IA0KU3UgdmluaCBkYW5oIG9uZyAtIEh1YW4gY2h1b25nIEhvIENoaSBNaW5oIGNhbyBxdXkgZHVv YyBuaGEgbnVvYyB0cnV5IHRhbmcgbW9pIGRheSBsYSBzdSBnaGkgbmhhbiBkdW5nIGRhbi4NCg0K Q2h1bmcgdGEgY28gdGhlIGtob25nIGNvIG5oaWV1IG5odW5nIGNvbiBuZ3VvaSBLaW0gTmdvYyBj dSB0aGUsIG5odW5nIHJhdCBjYW4gY28gDQpuaHVuZyB0dSBkdXkgdmEgcGhhbSBjYWNoIEtpbSBO Z29jIHRyb25nIGNhYyBxdWFuIGNodWMgbGFuaCBkYW8sIHRydW9jIGhldCBsYSB2b2kgDQpuZ2Fu aCBtaW5oLg0KDQpTdSBkb2kgdGhheSBzbyBwaGFuIG1vdCBjb25nIGRvbmcgZGFuIGRlbiBkb2kg dGhheSBzbyBwaGFuIG1vdCBkYW4gdG9jLCBiYXQgZGF1IHR1IHN1IHkgDQp0aHVjIHZhIGR1bmcg Y2FtIG5oaW4gbmhhbiByYSBuaHVuZyB2YXQgY2FuIHRyb25nIHR1IGR1eSBjdWEgY2hpbmggbWlu aC4gU3UgZG9pIHRoYXkgDQpheSwgdmFuIHJhdCBjYW4gY2EgdHJpIHZhIGR1bmcuIFRyaSBkZSBz YW5nIHN1b3QgbmdoaSBkdW5nLCBob3AgcXV5IGx1YXQgcGhhdCB0cmllbi4gDQpEdW5nIGRlIGR1 IG5naGkgbHVjLCBiYW4gbGluaCB2aSBkYW4sIGRhbiB0aGFuLi4uDQoNCk5odW5nIG11b24gdmF5 LCB4YSBob2kgdGEgY3VuZyBjYW4gcGhhaSBjbyBtb3Qga2hvbmcga2hpIHNpbmggaG9hdCB0aW5o IHRoYW4gbW9pLCB2YW4gDQptaW5oIHZhIHZhbiBob2EsIHNvbmcgcGhhbmcgdmEgbWluaCBiYWNo LiBEbyBsYSBuZ3VvaSBjbyB0aGFtIHF1eWVuIGJpZXQgbGFuZyBuZ2hlIHZhIA0KdG9uIHRyb25n IG5odW5nIHkga2llbiBraGFjIGJpZXQsIGR1bmcgdm9pIHZhICJxdXkgY2h1cCIgY2FwIGR1b2ku DQoNCkJvaSBtYXQgdm8sIGNvIGtoaSBuaGlldSBiYWMgY2FuZyAuLi50aGljaCwgdGhpY2ggbGFt LCB2aSBiaWV0IGRhdSBzZSBjbyB2byBtb2kgKCEpLiBOaHVuZyANCm1hdCBsYXAgdHJ1b25nIGxh IG1hdC4uLiAidGF0IGNhIi4gTWEgcmF0IGhpZW0gYWkgY28gdGhlIGNoYXAgbmhhbiBtYXQgdGF0 IGNhLCBkZSBtYSAiZGFuIA0KdGhhbiIuDQoNCkNoYW4gbHkga2hvbmcgcGhhaSBvIGtlIG1hbmgs IGNoYW4gbHkgbyB0aHVjIHRpZW4uIENhdSBjaHV5ZW4gIm9uZyBLaW0gTmdvYyIgbGEgYmFpIA0K aG9jIGxpY2ggc3UgaGllbiBkYWksIG5oYW4gdGllbiByYXQgZGF0IGdpYSwgc2F1IHNhYywgdGhh bSB0aGlhLg0KDQpOaHVuZyBkb2kgbmF5LCBjbyBuaGlldSBuZ3VvaSBkYW0gImRhbiB0aGFuIiBu aHUgb25nIEtpbSBOZ29jIGtob25nPyBDbyBuaGlldSANCm5ndW9pIGNvIGNhIHRyaSB2YSBkdW5n IGRlIHZpIGRhbiwgcXVlbiB0aGFuIGtob25nPw0KDQoiQ29uIGRlIiwgImNvbiByb2kiIHZhIGNh dSBjaHV5ZW4gImtob24gbmhhIGRhaSBjaG8iDQoNCkNvIGNoZSBxdWFuIGx5IHRoaSB0cnVvbmcg dHJlIHRydW5nIGRhIHRoYXkgdGhlIGNobyBjbyBjaGUgcXVhbiBseSBiYW8gY2FwIGdpYSBsYW8g aG9uIDIwIA0KbmFtIHJvaS4gTmh1bmcgaGluaCBuaHUgY2hhbmcga2luaCB0ZSB0aGkgdHJ1b25n IHZhbiBjaHVhIHRydW9uZyB0aGFuaD8gTW9pIGRheSwgbmdheSANCjctMTAsIFRTIFRyYW4gRGlu aCBUaGllbiwgVmllbiB0cnVvbmcgVmllbiBLaW5oIHRlIFZpZXQgTmFtIHRyYSBsb2kgcGhvbmcg dmFuIGN1YSANClZpZXROYW1OZXQgdm9pIG5odW5nIHBoYXQgbmdvbiBjdWMga3kgYW4gdHVvbmcs IGx5IGdpYWkgc3UgImNoYW0gbG9uIiBjdWEgImNoYW5nIi4NCg0KVFMgVHJhbiBEaW5oIFRoaWVu IGNobyByYW5nOiAiS2luaCB0ZSB0dSBuaGFuIG8gVmlldCBOYW0gY2h1YSBkdW9jIGRvaSB4dSBu aHUgbW90IA0KZG9uZyBsdWMgdGFuZyB0cnVvbmcuIENvIGxlLCBkaWV1IGF5IGJhdCBuZ3VvbiB0 dSBtb3QgZGluaCBraWVuLCB0aGllbiBraWVuLCBtb3Qgc3UgImRvbmcgDQpkaW5oIiB2YW8gcXVh biBuaWVtIHZlIHZhaSB0cm8gY2h1IGRhbyBjdWEga2luaCB0ZSBuaGEgbnVvYy4NCg0KQm9pIHRo ZW8gVFMgVHJhbiBEaW5oIFRoaWVuLCAiRG9hbmggbmdoaWVwIHR1IG5oYW4gY2hpZW0gdG9pIDk1 JSB0b25nIHNvIGRvYW5oIA0KbmdoaWVwIChETikgVmlldCBOYW0sIG5odW5nIHZvbiBsaWVuZyBj aGkgY2hpZW0gY28gMzAlIHRob2ksIGNvbiBsYWksIDUwJSBsYSBjdWEga2h1IA0KdnVjIG5oYSBu dW9jIHZhIGNvbiBsYWkgbGEga2h1IHZ1YyBkYXUgdHUgdHJ1YyB0aWVwIG51b2MgbmdvYWkgKEZE SSkuIDkwJSBzbyBkb2FuaCANCm5naGllcCB0dSBuaGFuIGRvIGxhaSBsYSBuaG8gdmEgdnVhLCBu aHVuZyBsYSB0aGVvIHRpZXUgY2h1YW4gVmlldCBOYW0uIENvbiBuZXUgdGhlbyANCmNodWFuIHF1 b2MgdGUsIHRoaSBkbyBsYSBuaHVuZyBETiBzaWV1IG5obywgbGkgdGkiLg0KDQpOaGluIHRvbmcg dGhlLCBxdXkgbW8gbmh1IHRoZSBjaHVuZyB0byB0cmluaCBkbyBjb24geWV1LCB0aGFtIGNoaSBy YXQgeWV1LiBNYWMgZHUgdmF5LCANCmRvbmcgZ29wIGN1YSBraHUgdnVjIHR1IG5oYW4gbGFpIGNv IGdpYSB0cmkgcmF0IGxvbi4gS2h1IHZ1YyBuYXkgdGFvIHJhIHJhdCBuaGlldSB2aWVjIA0KbGFt Li4uLlRyb25nIGtoaSBkbywga2h1IHZ1YyBuaGEgbnVvYyBjaGkgdGFvIHZpZWMgbGFtIGNobyBj aHVhIGRlbiAxMCUgbGFvIGRvbmcuIA0KQ29uIG5ldSB0aW5oIHNvIGxhbSB2aWVjIHRyb25nIERO IG5oYSBudW9jIGNvIGxlIGNoaSBraG9hbmcgNSUiLi4uDQoNClJvIHJhbmcsIHZvaSBjYWNoIGN1 IHh1IG5odSB2YXksIGNoaSBjbyB0aGUgbm9pIGNhYyBETiBuaGEgbnVvYyBoaWVuIHZhbiBsYSBj b24gZGUsIGNhYyANCkROIHR1IG5oYW4gaGllbiB2YW4gbGEuLi4gY29uIHJvaS4gTWEgY29uIGRl IHRoaSBubyBjbyBodSBjbyBob24sIGNvIGxhbSB0aGF0IHRob2F0IGRlbiANCnRvaSB0ZSB0aWVu IHRodWUgY3VhIGRhbiB0aGkgdmFuIHBoYWkgdGh1b25nLCBwaGFpIGNobyB0aWVuIG51b2kgZHVv bmcgdGllcC4uLg0KDQpDdW5nIGNoaW5oIHZpIGR1b2MgY2hpZXUgY2h1b25nLCB1dSBkYWksIG1h IG5odW5nIHRoYW5nIGNvbiBkZSBuYXkgbHVvbiBsYW0geGEgaG9pIA0KYmF0IGFuLCB0aGFtIGNo aSBwaGFuIG5vLiBWaSBjbyB2dSB0aGFtIG5odW5nLCBhbiBjYXAgbmFvIHhheSByYSB0YWkgY2Fj IEROIHR1IG5oYW4tIA0KY29uIHJvaSBraG9uZywgaGF5IGNoaSB4YXkgcmEgbyBjYWMgdGhhbmcg Y29uIGRlLSBETiBuaGEgbnVvYz8NCg0KVFMgVHJhbiBEaW5oIFRoaWVuIGRhIGNoaSByYSBjYWkg Y290IGxvaSBjdWEgInBodW9uZyBwaGFwIGRvaSB4dSIgbmhhdCBiZW4gdHJvbmcsIG5oYXQgDQpi ZW4ga2hpbmggbmF5LiBEbyBsYSAiVmFuIGRlIGNvIGNoZS4uLlh1YXQgcGhhdCB0dSBtb3QgY2Fp IG5oaW4gdGhpZW4ga2llbiB0dSB0cnVvYyBkZSANCmxhaS4gRGVuIGtoaSBjaHV5ZW4gc2FuZyB0 aGkgdHJ1b25nLCBnaWFpIHRoaWNoIGNobyB0dW9uZyBtaW5oIGtoYWkgbmllbSAidmFpIHRybyBj aHUgZGFvIiANCm5heSBsYWkga2hvbmcgcm8gcmFuZywgY28ga2hpIGNvbiBiaSBuZSB0cmFuaCwg ImtpZW5nIGt5Ii4NCg0KUXVhbiBuaWVtIGxpbmggdnVjIGNodSB5ZXUsIG5nYW5oIG5naGUgdXUg dGllbiwgbmdhbmggbXVpIG5ob24gdm9pIHZhaSB0cm8gY2h1IGRhbyBjdWEgDQpETk5OIGxhbiBs b24gbmhhdSBxdWEsIHRoYW0gY2hpLCBkb25nIG5oYXQgbmhhdS4gS2V0IGN1YyBsYSBETk5OIGN1 IGR1b25nIG5oaWVuIA0Kbmh1IGxhIG5nYW5oIG11aSBuaG9uLCBuZ2FuaCBjaHUgbHVjLiBEbyBk bywgZHVvYyB1dSB0aWVuLCB1dSBkYWkgbWEga2hvbmcgY2FuIHBoYWkgDQpiaWVuIGx1YW4gZ2kg dGhlbSB2ZSBoaWV1IHF1YS4uLiBDYWNoIGxhbSBuaHUgdmF5IGNodWEgYmFvIGRhbSBzdSBtaW5o IGJhY2ggdmUgdGhlIA0KY2hlLCBjbyBjaGUiLg0KDQpUaGUgbmh1bmcsIGhlIGx1eSBraG9uZyBk dW5nIG8gZG8uIFZpZXQgTmFtIGNodW5nIHRhIGRhIGdpYSBuaGFwIFdUTywgbmh1bmcgY28gDQpu aHVuZyBjaHV5ZW4gZ2lhIGtpbmggdGUgY2hvIHJhbmcsIHRyZW4gdHJ1b25nIHF1b2MgdGUsIFZp ZXQgTmFtIHZhbiBjaHVhIGR1b2MgY29uZyANCm5oYW4gY28gbmVuIGtpbmggdGUgdGhpIHRydW9u Zy4gTWEgbmV1IHZheSwgbmV1IHZhbiB0b24gdGFpIHN1IGRvaSB4dSBiYXQgY29uZyBraWV1IGNv biANCmRlLCBjb24gcm9pIHZvaSBjYWMgdGhhbmggcGhhbiBraW5oIHRlLCB0aGkgY28gbnVvYyBu Z29haSBuYW8gZGFtIG1hbyBoaWVtICJkYXUgdHUiIGNobyANCnN1ICJjaGFtIGhpZXUsIGNoYW0g bG9uIiBjdWEgY2hhbmcgdHJhaSBraW5oIHRlIHRoaSB0cnVvbmcgVmlldCBOYW0ga2hvbmc/DQoN Ck5ndW9pIHZpZXQgYmFpIG5heSBob2kgbmhvIHJhdCBoYXkgYmkgY2hhIG1lIG1hbmcgdmkgY2Fp IHRvaSBkYW5oIGhhbmggYmF0IG5hdCBjaGksIGJhdCBiZSANCmVtLCBuaHVuZyByYSBjaG8gbXVh IGxhbiBuYW8gY3VuZyBiaSBobzogIkNoaSBkdW9jIGNhaSBraG9uIG5oYSwgZGFpIGNobyEiDQpI dS4uLmh1Li4uIktob24gbmhhLCBkYWkgY2hvIi4gQ2FjIGN1IG5vaSBjYW0gY28gc2FpIQ0KDQoi Q28ga2llbmcuLi5jbyBsb2kiDQoNCk5nYXkgNy0xMCwgY3VuZyB0cmVuIFZpZXROYW1OZXQgY28g YmFpIHZpZXQ6ICJCZW5oIHRyaSB0cmUga2hpIGJhdSBjdSB2YW8gbXVhIiwgbmV1IA0KaGllbiB0 dW9uZzogIkN1IGdhbiBkZW4gbXVhIGRhaSBob2kgZGFuZywgYmF1IGN1IHF1b2MgaG9pLCBob2kg ZG9uZyBuaGFuIGRhbi4uLnRoaSAidGhvaSANCnRpZXQgY2hpbmggdHJpIiBub25nIGRhbiBsZW4s IGhhdSBuaHUgbmhpZXUgaG9hdCBkb25nIHRyb25nIGRvaSBzb25nIGtpbmggdGUgeGEgaG9pIGJp IA0KY2hhbSBsYWkgZG8gc3UgdHJpIHRyZSBjdWEgY2FjIGNvIHF1YW4gcXVhbiBseSIuDQoNCk9p LCBvaS4gQ2FpICJoaWVuIHR1b25nIiBuYXkgbm8gInRyZSBsYXUiIHRoZSBraG9uZyBiaWV0LiBW aSBubyBjbyB0dSB0aG9pIGJhbyBjYXAsIGtoaSBtYSANCm5ndW9pIHZpZXQgYmFpIG5heSBjb24g cmF0IG5vbiBkYWkuIERlbiBnaW8sIGtodW9uIG1hdCBuZ3VvaSB2aWV0IGJhaSBkYSBjbyBuaGll dSAibmVwIA0KZ2FwIHRob2kgZ2lhbiIgdGhpIGRpZW4gbWFvICJoaWVuIHR1b25nIiBuYXksIG5v IHZhbiB5IG5ndXllbi4gS2luaCBuZSENCg0KQ29uIG5obyBuZ2F5IHh1YSwgbW9pIGxhbiBjaHVh biBiaSBiYXUgYmFuLCB0aGkga2hvbmcga2hpIHhhIGhvaSBubyBuYW8gbmhpZXQgbGFtLiBDdSAN CnZhbyBjaG8sIG5oaW4gY2FjIGhhbmcgdGhpdCB0aGkgYmlldDogVGh1IGxvbiwgbG9uZyBsb24s IGNoYW4gZ2lvIGxvbi4uLmUgaGUsIG1hIHRob25nIA0KdGh1b25nIG1hdCBoYW5nIG5heSBoYW5n IG5nYXkgcmF0IGtoYW4gaGllbS4gVGhpIG5ndW9jIGxhaSwgbyBjYWMgY28gcXVhbiBjb25nIHF1 eWVuLCANCmtob25nIGtoaSBsYW0gdmllYyBjdWEgbmhpZXUgdmkgbGFpICJ0aHUgdGhlIiBiYXkg bmhpZXUuIEhvIGdpb25nIG5odSBnYWkgZGUgLSB5ZXUgbmVuIA0Ka2hvbmcgZGFtIHJhIGdpby4g TWEgZ2FpIGRlIHRoaSBuaHUgY2FjIGJvLCBjYWMgbWUgbmhhIHRhIGx1b24gZGFuOiAiQ28ga2ll bmcgY28gbGFuaCANCmNvbiBhIg0KDQpZIGhldCBuaGEgYmFvIFRyYW4gVHJvbmcgVGh1YyBkYSB2 aWV0OiAiVm9pIGNhYyB2aSBjaG8gZHUgYmlldCBjaGFjIGNoYW4gbWluaCBzZSBkdW9jIA0KImNv IGNhdSBsYWkiIHRoaSB2YW4gY28gdGFtIGx5IHRodSB0aGUuIFZvaSB2YW5nIGNoaSB2aWVjIGt5 IGdpYXkgcGhlcCBjaG8gZHUgYW4gbmF5LCANCmNodW9uZyB0cmluaCBubywgYm9pIG1vdCBzbyBz dWF0IG5obyBjbyBraGkgbWF0IGdoZSBuaHUgY2hvaS4gQm9pIGJpZXQgZGF1IGFpIGRvIGRhbmcg DQpsYW0gbGUgdmkgdHJpIGN1YSBtaW5oIHZhIGRhbmcgY2hvIG1vdCBjbyBob2kgZGUgcmEgdGF5 Pw0KDQpOaHVuZyB2aSBkYW5nIHZhbiBkb25nIHZhIGt5IHZvbmcgdmFvIG1vdCB2aSB0cmkgY2Fv IGhvbiB0aGkgbGFpIGNhbmcgYW4gYmluaCBiYXQgZG9uZywgDQpjaG8gc2F1IGJhdSBjdSwgbW9p IGNodXllbiB5ZW4gb24gcm9pIHRoaSBjbyBtdW9uIG1hbmcgZ2kgZGF1IGNodXllbiBxdXllbiB2 YSBsb2ksIGx1YyANCm5heSBtYSBzbyBzYXkgbW90IGNodXQgbGEgaHUgY2h1eWVuLg0KDQpLaG9u ZyBjaGkgbmh1bmcgbmd1b2kgY28gY2h1YyBjbyBxdXllbiBtYSBuZ2F5IGRvYW5oIG5naGllcCBj dW5nIGNvIG5odW5nIHRpbmggDQp0b2FuLiBNb3QgZG9hbmggbmhhbiBraW5oIGRvYW5oIGJhdCBk b25nIHNhbiBjbyB0YW0gY28gbGF1IG5heSBkYSBxdWEgcXVlbiB2b2kgY2h1eWVuIA0KY2hheSBj aG90IHZheSBtYSBnaW8gZGF5IGN1bmcgcGhhaSBkZSBkYXQgdHJvbmcgY2h1eWVuIGNodW5nIGNo aS4gQm9pIGNvIHRoZSAiZHVvbmcgDQpkYXkiIGxhbSBhbiBzYXAgdG9pIHNlIGNvIHN1IGRvaSB0 aGF5LiIuDQoNCk5odW5nIGN1bmcga2hvbmcgaGFuIGNoaSBob2FuIHRvYW4gbGEgc3UgImtpZW5n IGN1Ii4NCg0KTyBtb3QgdmkgdGhlIGtoYWMsIGtob25nIGtoaSBheSBubyBoaSBodWMsIGhvaSBo YSwgaG9hbiBoaSwgaGFvIGh1Yy4gSG9pIGhhIG5odSBuaGEgYmFvIA0KVHJhbiBUcm9uZyBUaHVj IHZpZXQ6ICJDbyBiaWV0IGJhbyBkb2FuaCBuZ2hpZXAgaHVvbmcgbG9pIHR1IHN1IHV1IGFpIGN1 YSBuaHVuZyBxdWFuIA0KdGhhbSBzYXAgYnVvYyByYSBraG9pICJ2dSBkYWkgY2hpbmggdHJpIi4g VGFtIGx5IHZldCBjaHV5ZW4gdGF1IGN1b2kgZ2l1cCBjaG8gY2EgaGFpIGJlbiANCmN1bmcgY28g bG9pLiINCg0KTmh1bmcgZHUgImJ1b2MgdmFvIiBoYXkgImJ1b2MgcmEiLCB0aGkgJ2NhaSBnaGUi IHZhbiBsdW9uIGxhIG5oYW4gdmF0IHRydW5nIHRhbSwgbGEgDQptaWVuZyBuYW0gY2hhbSBreSBk aWV1LiBObyBsYW5nIGxlLCBsYW5oIGx1bmcsIGxhbSBsaSwgbWEgcXV5ZW4gbHVjIHZvIGJpZW4u IE5vIGh1dCANCnRoYW0gdm9uZyBjdWEgY29uIG5ndW9pIGtob25nIGdpb2kgaGFuLiBObyBjdW5n IGxhaSBjaGkgcGhvaSBraG9uZyBjaGkgaGFuaCB2aSwgY2FjaCANCnh1IHRoZSBjdWEgbW90IHF1 YW4gY2h1YyBjdSB0aGUsIG1vdCBkb2FuaCBuZ2hpZXAgY3UgdGhlLCBtYSBjb24gdG9hbiBibyB0 YW0gbHksIHN1YyANCmtob2UgY3VhIHhhIGhvaS4gQW4gdGh1IGxvbiwgbmh1bmcgcGhhaSAidGh1 IHRoZSIuIFRob2kgdGhlIHRoZSB0aG9pIHRob2kgcGhhaSB0aGUuIFRoaSBjYWkgDQpjaHV5ZW4g dHJpIHRyZSB0cm9uZyBjYWMgY28gcXVhbiBxdWFuIGx5IGxhIGNodXllbiAnZGVuIGhlbiBlbSBs YWkgbGVuIiwgY2FjIGJhYyBhISANCg0KR2FpIGRlLCBkZSByYSBjb24gdGhpIHBoYWkga2llbmct IGNvIGtpZW5nIGNvIGxhbmgNCkNhaSBnaGUsIGRlIHJhLi4udGllbiwgdGhpIGN1bmcgcGhhaSBr aWVuZy0gY28ga2llbmcuLi4gY28gbG9pIA0KQ2hpIGtob25nIGJpZXQgZGllbiBtYW8gY2FpIGhp ZW4gdHVvbmcgInRodSB0aGUiIG5heSBubyB0cmUgZGVuIGJhbyBnaW8gbmhpPyANCg0KaHR0cDov L3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0xNS1kb2FuaC1uZ2hpZXAteGluLXRh aS10cm8teGF5LWNhdS1kaWEtcGh1b25nLWtoaW5oLWtob25nLW5oYW4gVGFjIGdpYTogSG9hbmcg SHVvbmcNCg0KRG9hbmggbmdoaWVwICd4aW4nIHRhaSB0cm8geGF5IGNhdSwgZGlhIHBodW9uZyAn a2hpbmgnIGtob25nIG5oYW4NCg0KQ2FjIG5oYSBoYW8gdGFtIGRhbmggdGllbmcgc2FuIGxvbmcg Z29wIHN1YyB4YXkgY2F1IGNobyBjYWMgJ2NoaW0gc2FvJyBxdWEgc29uZyB0aW0gDQpjaHUuIFRo ZSBuaHVuZywgdGhhaSBkbyBjdWEgbGFuaCBkYW8gaHV5ZW4gRG9uZyBHaWFuZyBsYWkgbmh1IG5n dW9jIGNoaWV1IHZvaSBiYXUgDQpuaGlldCBodXlldCBkYW5nIHNvaSBjdWEgaG8uDQoNCiJEYW4g Y2FuIG5odW5nIHF1YW4ga2hvbmcgdm9pIg0KDQpUcm9uZyBwaG9uZyBzdSByYSBuZ2F5IDkvMTAg Y3VhIGJhbyBUdW9pIFRyZSwgaGluaCBhbmggbmh1bmcgZHVhIHRyZSB0aG9uIFBodSBNdWEsIHhh IA0KSm8gTmdheSwgaHV5ZW4gRG9uZyBHaWFuZywgdGluaCBRdWFuZyBOYW0gaGFuZyBuZ2F5IHBo YWkgZGF0IGRpdSBjb25nIG5oYXUgbG9pIHF1YSANCnNvbmcgZGVuIHRydW9uZyBkYSBnYXkgeHVj IGRvbmcgbWFuaCBjaG8gZG9jIGdpYS4gVHVhbiBWaWV0IE5hbSBkYSB2aSBuaHUgZGFuICdjaGlt IA0Kc2FvIHF1YSBzb25nJyBraGkgZGUgY2FwIGRlbiBjYXUgY2h1eWVuIHRyZW4gYmFpIFBoYXQg bmdvbiAmIEhhbmggZG9uZyBuZ2F5IDE1LzEwLg0KDQpIaW5oIGFuaCBnb2kgbmhvIGxhaSBjYW5o IG5odW5nIG5ndW9pIGRhbiBkdSBkYXkgJ2JheSBxdWEgc29uZycgUG9rbyBjdWEgbmd1b2kgZGFu IA0KaHV5ZW4gTmdvYyBIb2kgKHRpbmggS29uIFR1bSkgdmFpIHRoYW5nIHRydW9jLiBTYXUga2hp IG5odW5nICduZ3VvaSBiYXknIHh1YXQgaGllbiANCnRyZW4gcGh1b25nIHRpZW4gdHJ1eWVuIHRo b25nLCBuaGlldSBuaGEgaGFvIHRhbSBjdW5nIG1vdCBzbyBjbyBxdWFuIGJhbyBjaGkgZGEgZHVu ZyANCnJhIHF1eWVuIGdvcCB4YXkgZHVvYyA0IGNheSBjYXUgcXVhIHNvbmcgUG9rbyBjaG8gbmd1 b2kgZGFuLg0KDQpUdW9uZyB0dSwgYmFpIHBob25nIHN1ICdjaGltIHNhbyBzYW5nIHNvbmcnIGN1 YSBUdW9pIFRyZSBuZ2F5IGxhcCB0dWMgbmhhbiBkdW9jIHN1IA0KcXVhbiB0YW0gY3VhIGR1IGx1 YW4sIGNhYyBuaGEgaGFvIHRhbSBjdW5nIGRhbmggdGllbmcgc2FuIGxvbmcgZ29wIHN1YyB4YXkg Y2F1IGNobyBjYWMgDQonY2hpbSBzYW8nIHF1YSBzb25nLg0KDQpUaGUgbmh1bmcsIHRoYWkgZG8g Y3VhIGxhbmggZGFvIGh1eWVuIERvbmcgR2lhbmcgbGFpIG5odSBuZ3VvYyBjaGlldSB2b2kgYmF1 IG5oaWV0IA0KaHV5ZXQgZGFuZyBzb2kgY3VhIGhvLg0KDQooQW5oIGNodXA6IGNhYyBlbSBuaG8g bG9pIHNvbmcgZGkgaG9jIC0gU2FuZyBzb25nLi4uIHRpbSBjaHUuKSANCg0KTmdheSAxMy8xMCwg dHJlbiBibG9nIGN1YSBtaW5oLCBuaGEgYmFvIFRydW9uZyBEdXkgTmhhdCAoYmFvIERhaSBEb2Fu IEtldCkgdHVvbmcgdGh1YXQgY2F1IGNodXllbiBzYXU6IA0KDQpTYW5nIHF1YSAxMi0xMCwgbW90 IGRvYW5oIG5naGllcCB0YWkgRGEgTmFuZyBuaG8gdG9pIGJhbyBjaG8gbGFuaCBkYW8gaHV5ZW4g RG9uZyANCkdpYW5nIGhvaSB4ZW0geWV1IGNhdSB0aGUgbmFvIGRlIGhvIG11b24gZ2l1cCBodXll biB4YXkgY2F5IGNhdSBuYXkuIFRvaSBkaWVuIGNobyANCm9uZyBEaW5oIFRoYWkgTG9uZywgQ2h1 IHRpY2ggaHV5ZW4sIHNvIG1heSBkaSBkb25nIDA5MDMuLi4gdGhvbmcgYmFvIHZpZWMgbmF5IHZh IGhvaTogDQp0b25nIGR1IHRpbmggZGUgeGF5IG1vdCBjYXkgY2F1IG5odSB2YXkgdW9jIGJhbyBu aGlldS4gT25nIExvbmcgYmFvIGtob2FuZyAzIHR5LiBWYWkgDQpwaHV0IHNhdSwgdG9pIGRpZW4g YmFvIGxhaSBsYW4gMiB2b2kgb25nIExvbmc6IEhvIG11b24gY2hvIGh1eWVuIHRyb24gMyB0eSBk ZSB4YXkgY2F5IA0KY2F1IG5heSwgeG9uZyBjaG8gb25nIExvbmcgc28gZGllbiB0aG9haSBjdWEg bmhhIGhhbyB0YW0gbm8gdm9pIGxvaSBkYW46IG9uZyBkaWVuIA0KbmdheSBjaG8gaG8gbGllbiBs YWMgeGVtIHRoZSBuYW8gZGUgbmhhbiB0aWVuLg0KDQpDaHUgdGljaCBMb25nIGFtIHUuIENobyBt YWkgZGVuIHNhbmcgbmF5IDEzLTEwLCB2YW4gY2h1YSB0aGF5IG9uZyBDaHUgdGljaCBodXllbiAN CmNhbSBtYXkgZGllbi4gS2hvbmcgYmlldCBvbmcgZGFuZyBiYW4gY2h1eWVuIGdpPyBIYXkgb25n IHF1ZW4/IEhheSBvbmcgbmdoaSByYW5nIA0KdmllYyB4YXkgY2F1IGNobyBkYW4gbGEga2hvbmcg Y2FuIHRoaWV0PyBIYXkgaHV5ZW4gRG9uZyBHaWFuZyBjaGUga2hvbmcgbXVvbiBuaGFuPw0KQ2F1 IGNodXllbiBsYXAgdHVjIG5oYW4gZHVvYyB2byBzbyBwaGFuIGhvaSwgYnVjIHh1YyB2b2kgdGhh aSBkbyBjdWEgb25nIENodSB0aWNoIA0KaHV5ZW4uIERlIGxhbSBybyB0aHVjIGh1LCBwaG9uZyB2 aWVuIFR1YW4gVmlldCBOYW0gZGEgbGllbiBsYWMgdm9pIG5oYSBiYW8gVHJ1b25nIA0KRHV5IE5o YXQgdmEgbmhhIGhhbyB0YW0gbm8gdGhpIGRldSBuaGFuIGR1b2MgY2F1IHRyYSBsb2k6IGNobyBk ZW4gdGhvaSBkaWVtIG5heSANCihjaGlldSAxNS8xMCksIHZhbiBjaGFuZyBjbyBhaSB0dSBodXll biBEb25nIEdpYW5nIGxpZW4gbGFjIHZvaSBoYWkgbmd1b2kgdmUgY2F1IGNodXllbiB0cmVuLg0K DQpOaGEgaGFvIHRhbSAoR0QgbW90IGRvYW5oIG5naGllcCB4YXkgZHVuZywgZGUgbmdoaSBraG9u ZyBuZXUgdGVuIHZpIGx5IGRvICJraG9uZyANCm11b24gYmkgaGlldSBsYW0gY28gdGluaCBnYXkg Y2h1eWVuIGx1bSB4dW0gZGUgZGFuaCBib25nIHRlbiB0dW9pIikgY2hvIGJpZXQ6IFNhdSBraGkg DQpkb2MgYmFpIHBob25nIHN1IGN1YSBUdW9pIFRyZSwgYW5oIGhldCBzdWMgbG8gbGFuZyBjaG8g dGluaCBtYW5nIG5odW5nIGR1YSB0cmUuIA0KQW5oIG11b24gdGFpIHRybyB0b2FuIGJvIGtpbmgg cGhpIHhheSBjYXUsIHNvIHRpZW4gMyB0eSBuaHUgb25nIExvbmcgbm9pLCBkZSBjYXkgDQpjYXUg ZHVvYyB4YXkgY2FuZyBuaGFuaCBjYW5nIHRvdCBjaG8gY2FjIGVtLg0KDQoiS2hvbmcgbXVvbiBy YSBtYXQgbmVuIG5obyBhbmggVHJ1b25nIER1eSBOaGF0IGxpZW4gaGUgZ2l1bSwgbmh1bmcgc3Ug dGhvIG8gY3VhIA0KcGhpYSBEb25nIEdpYW5nIGxhbSB0b2kgYnVvbiBxdWEuIFZ1YSByb2kgdG9p IG1vaSBuZ2hlIGxvYW5nIHRob2FuZyBiYW8gRGFuIFRyaSBkYSB0byANCmNodWMgcXV5ZW4gZ29w IGR1b2MgMSw1IHR5IHJvaS4gVG9pIHNlIGdvcCB2b2kgRGFuIHRyaSA1MDAgdHJpZXUsIGJhbmcg dGllbiBtYXQgaG9hYyBzbyANCnZhdCBsaWV1IHhheSBkdW5nIHR1b25nIGR1b25nIiwgYW5oIG5v aS4NCg0KQ29uIG5oYSBiYW8gVHJ1b25nIER1eSBOaGF0IGJ1YyB4dWM6ICJLaG9uZyBuaHVuZyBE b25nIEdpYW5nIGNoYW5nIGRvYWkgaG9haSBnaSANCmRlbiB0YW0gaHV5ZXQgY3VhIGRvYW5oIG5n aGllcCwgbWEgY29uIGNvIGNhY2ggdW5nIHh1IHZvIGN1bmcga3kgbGE6IHRoYXkgdmkgZ29pIGRp ZW4gDQp0aG9haSB0cmEgbG9pIChkaWVuIHRob2FpIFRydW9uZyBEdXkgTmhhdCBkYW5nIGNvbmcg a2hhaSB0cmVuIGJsb2cpIG1vdCBuZ3VvaSB0ZW4gRG8gDQpUYWkgKHRydW5nIHRlbiBvbmcgUGhv IGNodSB0aWNoIHRodW9uZyB0cnVjIGh1eWVuIERvbmcgR2lhbmcpIHZhbyBibG9nIGN1YSBhbmgg dmlldCBtb3QgY29tbWVudCBuaHUgc2F1IChuZ3V5ZW4gdmFuKToNCiJLaW5oIGd1aSBhbmggVHJ1 b25nIER1eSBOaGF0IQ0KU2F1IGtoaSBkb2MgYmFpIGJhbyBjdWEgYW5oIHZvaSB0aWV1IGRlOiAi RGFuIGNhbiBuaHVuZyBxdWFuIGtob25nIHZvaSIuIFRvaSBkYSBsaWVuIGxhYyANCnZvaSBhbmgg TG9uZywgbmd1eWVuIENodSB0aWNoIFVCTkQgaHV5ZW4gRG9uZyBHaWFuZyAoa2UgdHUgMjQvOS8y MDEwIGRhIHZlIG5oYW4gDQpuaGllbSB2dSB0YWkgVUJNVFRRVk4gdGluaCkgdGhpIGNvbmcgbmhh biBhbmggY28gZGllbiB0aG9haSBjaG8gYW5oLCBuaHVuZyBkbyBsdWMgDQpkbyBhbmggTG9uZyBk YW5nIGR1IGxlIGt5IG5pZW0gdGFpIHRpbmgsIG5lbiBjbyBxdWVuIGtob25nIGRpZW4gbGFpLiBU b2kgbmdoaSB2aWVjIG5heSANCmFuaCBuZW4gdGhvbmcgY2FtLCB2aSBhbmggTG9uZyBkYSBjaHV5 ZW4gdmUgdGluaCwga2hvbmcgY29uIHRyYWNoIG5oaWVtIGxhIENodSB0aWNoIA0KVUJORCBodXll biB0YWkgdGhvaSBkaWVtIGFuaCBsaWVuIGxhYy4NCg0KRG9pIHZvaSB2YW4gZGUgbWEgYW5oIGdp b2kgdGhpZXUsIGNhIG5oYW4gdG9pIHJhdCB0cmFuIHRyb25nIHZhIGRhbmcgcmF0IGNhbiBzdSBn aXVwIGRvIA0KY3VhIGNhYyBuaGEgaGFvIHRhbSBnaXVwIGNobyBuaGFuIGRhbiBEb25nIEdpYW5n LiBOZ2F5IDEyLzEwLzIwMTAsIHRvaSBkYSB0cnVjIHRpZXAgDQpsYW0gdmllYyB2b2kgYW5oIEJp bmgsIHBob25nIHZpZW4gYmFvIGRpZW4gdHUgRGFuIFRyaSB2YSBjaHVuZyB0b2kgZGEgdGhvbmcg bmhhdCBuaG8gDQpiYW8gZGllbiB0dSBEYW4gVHJpIGtldSBnb2kgY2FjIG5oYSBoYW8gdGFtIGdp dXAgZG8gY2hvIGh1eWVuIHhheSBkdW5nIGNheSBjYXUgbmF5LiANCg0KRG8gdmF5LCB2b2kgdHUg Y2FjaCBjYSBuaGFuIHRvaSB4aW4gY2FtIG9uIGFuaCBkYSBjbyBuaGEgeSBnaXVwIGNobyBkaWEg cGh1b25nIHZhIGN1bmcgDQptb25nIGFuaCBoZXQgc3VjIHRob25nIGNhbSBjaG8gYW5oIExvbmcs IG5ndXllbiBDaHUgdGljaCBVQk5EIGh1eWVuIi4NCg0KTmh1bmcgYW5oIE5oYXQgY2hvIGJpZXQs IGNhIGhhaSBsYW4gYW5oIGdvaSBkaWVuIHRob2FpIGNobyBvbmcgTG9uZyB2ZSBraG9hbiB0aWVu IHRhaSANCnRybywgb25nIGRldSBuZ2hlIG1heSB2b2kgdHUgY2FjaCBsYSBDaHUgdGljaCBodXll biBEb25nIEdpYW5nLg0KDQoiTWEga2UgY2Egb25nIExvbmcgZGEgdmUgdGluaCBsYW0sIGtob25n IGxlIHZpZWMgc29uZyBjaGV0IGN1YSBuZ3VvaSBkYW4gbyBodXllbiBvbmcgDQpraG9uZyBjYW4g cGhhaSBxdWFuIHRhbSBudWE/IiwgYW5oIE5oYXQgYnVjIHh1Yy4NCg0KQmkgInZ1IG9hbiIgbGFt IENodSB0aWNoPyENCg0KUGhvbmcgdmllbiBkYSBjbyBnYW5nIGxpZW4gbGFjIHZvaSBvbmcgRGlu aCBUaGFpIExvbmcuIExhbiB0aHUgbmhhdCwgcGhvbmcgdmllbiBkdW9jIA0KdHJhIGxvaSAiZGFu ZyBob3AiOyBsYW4gdGh1IGhhaSAidG9pIGRhbmcgYmFuIGxpZW4gaG9hbiBjaGlhIHRheSI7IGxh biB0aHUgYmEsIG9uZyBMb25nIGNobyANCmJpZXQgY2h1eWVuIGFuaCBOaGF0IGdvaSBsYSBjbyB0 aGF0LCB2YSBvbmcgY3VuZyBjaHVhIGxpZW4gbGFjIGxhaSBjYSBhbmggTmhhdCB2YSBuaGEgaGFv IHRhbS4NCg0KR2lhaSB0aGljaCBseSBkbywgb25nIExvbmcgbm9pOiAidG9pIGtob25nIG5hbSBy byBtYXkgc28gZGllbiB0aG9haSBkbywgdG9pIGtob25nIGxhbSANCnZpZWMgcXVhIGRpZW4gdGhv YWksIG5oYSBoYW8gdGFtIG5hbyBjbyBsb25nIG11b24gZG9uZyBnb3AsIGRlIG5naGkgZGVuIFVC TkQgaHV5ZW4gRG9uZyBHaWFuZyBsYW0gdmllYyBjdSB0aGUiIA0KDQpQaG9uZyB2aWVuIGxhaSBo b2k6IDMgdHkgbGEgc28gdGllbiByYXQgbG9uLCBkdSB4YXkgdHJvbiBjYXkgY2F1LCB0YWkgc2Fv IG9uZyBraG9uZyBibyByYSBjaGkgDQp2YWkgcGh1dCBnb2kgY3UgZGllbiB0aG9haS4gRGF1IGRh eSB0YXQgbWF5LiBDbyBsZSBvbmcgYmFuIHRpZXAgY3VvYyBsaWVuIGhvYW4gY2hpYSB0YXk/IQ0K TWF5IHBodXQgc2F1LCBkYXUgZGF5IGtpYSBjaHUgZG9uZyBnb2kgbGFpLCBzYXUga2hpIG5vaSBt b3QgdGhvaSBtb3QgaG9pIHZlICJzdSBib2kgbmhvIA0KY3VhIGFuaCBUcnVvbmcgRHV5IE5oYXQi IHZhICJ0YWkgc2FvIGJhbyBjaGkgY3UgYnVhIHZheSBsYW0gcGhpZW4gdG9pIiwgInRvaSBzZSBr aWVuLi4uIiANCm5ndW9pIGRhdSBkYXkgdmFuIGtoYW5nIGRpbmggbGEgRGluaCBUaGFpIExvbmcs IG5odW5nIGNobyBiaWV0IG9uZyBraG9uZyBjb24gbGEgQ2h1IHRpY2ggDQpodXllbiBEb25nIEdp YW5nIG51YSwgdmEgY29uZyB2aWVjIGN1YSBEb25nIEdpYW5nIG9uZyBraG9uZyBuYW0uDQoNCkhv aTogVmF5IHNhbyB0YWkgYmFpIHZpZXQgbmdheSAxMC8xMCBjdWEgVHVvaSBUcmUsIG9uZyB2YW4g dHJhIGxvaSB2b2kgdHUgY2FjaCBsYSBDaHUgdGljaCANCkRvbmcgR2lhbmcgKE9uZyBEaW5oIFRo YWkgTG9uZyAtIGNodSB0aWNoIFVCTkQgaHV5ZW4gRG9uZyBHaWFuZyAtIG5oaW4gbmhhbjogIA0K IlRvaSB1bmcgY3UgZGFpIGJpZXUgSERORCBvIHhhIG5heSBuZW4gbW9pIGtoaSB2ZSB0aWVwIHh1 YyBiYSBjb24sIHRvaSBjdW5nIHBoYWkgbG9pIHBoYWkgDQpib2ksIGJhIGNvbiBjbyB5IGtpZW4g cmF0IGdheSBnYXQsIHRvaSBjdW5nIHhvdCBsb25nIi4gVGhvbiBQaHUgTXVhIGhpZW4gY28gMjUg aG8gDQp2b2kgZ2FuIDIwMCBuaGFuIGtoYXUsIHRyb25nIGRvIGNvIGhvbiAxNSBlbSBob2MgY2Fw IEkgbW9pIG5nYXkgcGhhaSBxdWEgc29uZyBWb2kgDQpyb25nIGhvbiAzMG0gZGVuIHRydW9uZy4g VGhlbyBvbmcgTG9uZywgbXVhIGhlIG51b2MgY2FuIHRoaSBuZ3VvaSBsb24sIHRyZSBjb24gY28g dGhlIGxvaSANCnF1YSBzb25nIG5odW5nIGRlbiBtdWEgbHUsIG51b2MgY2FvIGNoYXkgeGlldCB0 aGkgdmllYyBib2kgcXVhIHNvbmcgY3VhIG5ndW9pIGxvbiBjdW5nIHJhdCBuZ3V5IGhpZW0gLSBU dW9pIFRyZSkuDQoNCkxlIHJhLCBvIGN1b25nIHZpIGNodSB0aWNoIGh1eWVuLCB2YSBuZXUgInhv dCBsb25nIiB0aGF0LCB0dSBsYXUgb25nIGRhIHBoYWkgY2h1IGRvbmcgZG9uIA0KZGFvIGdvIGN1 YSBjYWMgbm9pLCBrZXUgYmVuIG5vIGdvaSBiZW4ga2lhIGRlIGxhbSBjYXUgY2hvIGRhbiBjaHUg a2hvbmcgcGhhaSBkb2kgZGVuIA0KbHVjIGJhbyBkYW5nIG9uZyBtb2kgdGhheSBuZ3V5IGhpZW0u IFJvaSBraGkgbmd1b2kgdGEgbmdvIHkgImRhbmciIGNheSBjYXUgbGVuIHRhbiB0YXkgb25nIGN1 bmcgaG8gaHVuZyBraG9uZyBuaGFuLg0KDQpPbmcgTG9uZyBkYXAgbG9pLCBvbmcgc2UuLi4ga2ll biBiYW8gVHVvaSBUcmUgdmEgYW5oIFRydW9uZyBEdXkgTmhhdCB2ZSB0b2kgZHVhIHRob25nIA0K dGluIHNhaSwgInZ1IiBjaG8gb25nIGxhIGNodSB0aWNoIGh1eWVuLCB0cm9uZyBraGkgb25nIGRh IHRob2kgY2h1YyB2dSBuYXkgZHVvYyBnYW4gDQptb3QgdGhhbmcgImhpZW4gZGFuZyBjaG8gcGhh biBjb25nIGNvbmcgdGFjIG1vaSIgLSBuaHUgb25nIG5vaS4gTWEgbmV1IGtob25nIG5oYW0sIA0K dmkgdHJpIGNvbmcgdGFjIG1vaSBjdWEgb25nIG8gVUJNVFRRVk4gdGluaCwgbGEgbm9pIGR1b2Mg bmhhbiwgY2FwIHBoYXQsIHN1IGR1bmcgdGllbiBoYW5nIHZpZW4gdHJvIQ0KDQpUaGFvIG5hbywg dHJvbmcga2hpIGNhYyBlbSBob2Mgc2luaCBoYW5nIG5nYXkgaGFuZyBnaW8gZGFuaCBkdSB0aW5o IG1hbmcgcXVhIHNvbmcsIA0KY29uIG9uZyB0aGkgZGFuZyBiYW4gcm9uIHZvaSBzdSBkaS8gbyBj dWEgbWluaCwgeGVuIGdpdWEgbmh1bmcgbGUga3kgbmllbSwgaG9pIGhvcCwgDQp0aWVjIGNoaWEg dGF5LCBuZW4ga2hvIGxvbmcgZ29pIC0gbmdoZSBkdW9jIG1vdCBjdSBkaWVuIHRob2FpIHRyb24g dmVuLg0KDQpOZ3VvaSB2aWV0IGNob3QgbmhvIGRlbiBtb3QgY29tbWVudCB0cm9uZyBibG9nIFRy dW9uZyBEdXkgTmhhdDogIkNodSB0aWNoIExvbmcgbGFtIHZheSANCmxhIGR1bmcgcm9pLCBwaGFp IGRhbSBiYW8gZHVuZyBxdXkgdHJpbmggbWEuIFNhdSBraGkgdGllcCBuaGFuIHRob25nIHRpbiwg Q2h1IHRpY2ggTG9uZyANCnBoYWkgY2h1eWVuIHh1b25nIHBob25nIEtULUtULCBQaG9uZyBYRENC LiBIYWkgcGhvbmcgbmF5IGxhbSB0byB0cmluaCBsaWVuIA0KcGhvbmcgZ3VpIGNobyBsYW5oIGRh byBVQk5EIGh1eWVuLiBVQk5EIGh1eWVuIGhvcCwgbmV1IHRob25nIG5oYXQgdGhpIGxhbSB0byB0 cmluaCANCmNodXllbiBzYW5nIEh1eWVuIHV5LiBIdXllbiB1eSB4ZW0geGV0IGNhYyB5ZXUgdG8s IHlldSBjYXUgeGFjIG1pbmggdGhvbmcgdGluLCB0aGFuIA0KbmhhbiwgeSBkbyBuaGEgaGFvIHRh bS4uLiBOZXUgZG9uZyB5IHRoaSB0cmEgbG9pIGJhbmcgdmFuIGJhbiBjaG8gVUJORC4gVUJORCB0 byBjaHVjIA0KY3VvYyBob3AgSERORCBkb3QgeHVhdCBkZSB4aW4geSBraWVuIGRhaSBiaWV1LiBO ZXUgdGhvbmcgbmhhdCB0aGkgVUJORCBjbyBjb25nIHZhbiANCnhpbiB5IGtpZW4gY3VhIFVCTkQg dGluaCwgVUJORCB0aW5oIGxhaSBsYW0geSBuaHUgY3UuIFZhIGRlbiB0ZXQgQ29uZyBnbyBtb2kg Y28gY2h1IA0KdHJ1b25nIGRvbmcgeSBjaG8gcGhlcCB0YW5nIGNhdS4gTHVjIG5heSBuaGEgaGFv IHRhbSBjaGFjIGRhIG1vbiBuaGlldCBodXlldCIuDQoNCktob25nIGR1IGtpZW4gbmhhbiBzYXAg eGVwIGxhaSBjYWkgJ3F1eSB0cmluaCcgbG9hbmcgbmdvYW5nIGN1YSBjYXUgY2h1eWVuIG5heSwg bmd1b2kgDQp2aWV0IGNoaSBiYW4ga2hvYW4gY2F1IG5vaSBjdWEgbmhhIGhhbyB0YW0gRGEgTmFu ZzogInRvaSBtdW9uIHRyYW8gdGFuIHRheSBzbyB0aWVuIA0KY2hvIG5oYSB0aGkgY29uZywgaG9h YyB0cnVjIHRpZXAgdGh1IGNoaSBtdWEgdmF0IGxpZXUgdmEgdGhpIGNvbmcgZHUgYW4sIHRvaSBj aGkgbXVvbiBkYW0gYmFvIA0Kc28gdGllbiBjdWEgbWluaCBkdW9jIHN1IGR1bmcgY2hvIG1vdCBj YXkgY2F1IHRyb24gdmVuIi4gQ28gcGhhaSB2aSB0aGUgbWEgb25nIGNodSB0aWNoIA0Kc2FwIGxl bi94dW9uZyB2aSB0cmkgJ2NhcCAtIHBoYXQnIGtob25nIHZ1aSBjaGFuZz8NCg0KQ2F1IG5vaSBk YW4gZ2lhbiAncXVhbiBjbyBjYW4uLi4nIGtoaSBkYW8gdmkgdHJpIGNodSBuZ3UsIHRybyBuZW4g aG9hbiB0b2FuIGNoaW5oIHhhYyB2ZSBjYSANCm5naGlhIGRlbiB2YSBuZ2hpYSBib25nIHRyb25n IHRydW9uZyBob3AgbmF5OiAiRGFuIGNvIGNhbiBuaHVuZyBxdWFuIGNodWEgdm9pLCBEYW4gDQpj byB2b2kgKGRpIGhvYykgZGFuIGxvaSAoc29uZykgZGFuIHNhbmciDQoNClRob2kgdGhpLCBuaGEg aGFvIHRhbSB2YSBjYWMgZW0gbmhvIGNvIGtpZW4gbmhhbiwgZG9pIHZheS4uLiANCg0KaHR0cDov L3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC9DdS1sb3QtdGF5LXZpZWMtbW9pLWNo YXktOTQyMDM1LyBMZSBOaHVuZyAwNTo0NCwgMTQvMTAvMjAxMCAoR01UKzcpDQoNClRodSB0dW9u ZzogQ3UgJ2xvdCB0YXknLCB2aWVjIG1vaSAnY2hheScNCg0KLSBLZXQgcXVhIGJhbiBkYXUgY3Vh IGtoYW8gc2F0IHRydWMgdHV5ZW4gdmUgY2FpIGNhY2ggaGFuaCBjaGluaCBkbyBVTkRQIHBob2kg aG9wIHZvaSANClZpZXROYW1OZXQgdGh1YyBoaWVuIGNobyB0aGF5LCBnYW4gNzAlIG5ndW9pIGRh biBraGkgZHVvYyBob2kgdHJhIGxvaSByYW5nIGhvIHBoYWkgDQpkdWEgdGhlbSB0aWVuIG1vaSBn aWFpIHF1eWV0IGR1b2MgY29uZyB2aWVjIGxpZW4gcXVhbiBkZW4gdGh1IHR1YyBoYW5oIGNoaW5o Lg0KDQoqIEdhbiAxLjUwMCBuZ3VvaSAnaGllbiBrZScgY2FpIGNhY2ggaGFuaCBjaGluaA0KDQpL aGFvIHNhdCBkdW9jIHRpZW4gaGFuaCB0cmVuIGRpZW4gcm9uZywgdm9pIHN1IHRoYW0gZ2lhIGN1 YSBuZ3VvaSBkYW4gdGh1b2MgbmhpZXUgbmdhbmggDQpuZ2hlIGtoYWMgbmhhdSwgdHUgZG9hbmgg bmhhbiBjaG8gZGVuIGNvbmcgY2h1Yywgbm9uZyBkYW4sIG5vaSB0cm8uIENvIHRvaSAxLjQ2NiBu Z3VvaSANCmRhbiBvIDYzIHRpbmgsIHRoYW5oIGRhIHRoYW0gZ2lhLCB0dSBIYSBOb2kgY2hvIGRl biBjYWMgdGluaCB2dW5nIHNhdSwgdnVuZyB4YS4NCg0KUGhhbiB1bmcgY2h1bmcgY3VhIG5ndW9p IGRhbiB0aGFtIGdpYSBraGFvIHNhdCwgZG8gbGEgbW9pIGtoaSBwaGFpICJjYXkiIGRlbiBjdWEg Y29uZyANCnF1eWVuLCBwaGFpIGNvICJwaG9uZyBiaSBsb3QgdGF5IiB2YSBkdWEgdmFvIGNhYyBt b2kgcXVhbiBoZSB0aGkgbW9pIG1vbmcgZHVvYyB2aWVjLg0KQ28sIGxvdCB0YXkgdmEgcXVhbiBo ZSB0b3QNCg0KRHVuZyBkYXUgYmFuZyBuaHVuZyB0aHUgdHVjIGdheSBwaGllbiBoYSBuaGF0IGNo byBkYW4gY2hpbmggbGEgdGh1IHR1YyBsaWVuIHF1YW4gZGVuIA0KZ2lheSBjaHVuZyBuaGFuIHF1 eWVuIHN1IGR1bmcgZGF0IChnYW4gNDUlKS4gVGluaCB0cmFuZyByYWMgcm9pIHRyb25nIGNhcCBn aWF5IGNodW5nIA0KbmhhbiBkaWVuIHJhIG8gaGF1IGhldCBjYWMgdGluaCB0aGFuaCwgdHUgSGEg Tm9pIGNobyBkZW4gVmluaCBMb25nLCBQaHUgVGhvLi4uIEtlIA0KdGllcCBsYSBjYWMgbG9haSB0 aHUgdHVjIGNhcCBwaGVwIHhheSBkdW5nIG5oYSwga2hpZXUgbmFpIHRvIGNhbywgZGFuZyBreSBo byBraGF1LCBiYW8gaGllbSB4YSANCmhvaSwgdGh1ZSBuaGEgZGF0LCBkYW5nIGt5IGtpbmggZG9h bmguLi4NCg0KKEFuaCBjaHVwOiBCaWV1IGRvIG1pbmggaG9hIC1EdW5nIGRhdSBiYW5nIG5odW5n IHRodSB0dWMgZ2F5IHBoaWVuIGhhIG5oYXQgbGEgdGh1IHR1YyANCmxpZW4gcXVhbiBkZW4gZ2lh eSBjaHVuZyBuaGFuIHF1eWVuIHN1IGR1bmcgZGF0KSANCg0KUmllbmcgbyBIYSBOb2ksIHRpbmgg dHJhbmcgcGhpZW4gaGEgZHVvYyBuZ3VvaSBkYW4gcGhhbiBhbmggZGllbiByYSBvIGhhdSBoZXQg Y2FjIHF1YW4gDQpuaHUgQ2F1IEdpYXksIEJhIERpbmgsIEhvYW5nIE1haS4uLiB2YSBtb3Qgc28g c28uDQoNCkRvIHZheSwgbmhvIGNvLCAibG90IHRheSIgdmEgInF1YW4gaGUgdG90IiBsYSBiYSBj aGlhIGtob2EgZGUgbW8gY2FuaCBjdWEgdGh1IHR1Yy4NCg0KTW90IGRvYW5oIG5oYW4gbyBOYW0g RGluaCBjaGlhIHNlOiAiQ3UgcGhhaSBsb3QgdGF5IGNobyBjYW4gYm8gbW9pIHhvbmcgdmllYyIu IENvbiANCm5ndW9pIGtoYWMgbyBIYSBOb2kgY2hvIHJhbmcsICJwaGFpIHF1YW4gaGUgdG90LCBw aGFpIGNoaSB0aWVuLCBuZXUga2hvbmcgdGhpIGtob25nIGJhbyANCmdpbyB4b25nIGR1b2Mgdmll YyIuDQoNCkNvbiBtb3Qgbmd1b2kgZGFuIG8gTG9uZyBBbiB0aGkgbmV1IGtpbmggbmdoaWVtIHRh byBtb2kgcXVhbiBoZSB0b3QsIHBob25nIGJpIHRhbiB0aW5oIA0KY2h1IGRhby4gQmkgcXV5ZXQg Y3VhIGFuaCBsYSB4aW4gc28gZGllbiB0aG9haSBjdWEgY2FuIGJvIGRlIGNvIGNvIGdhcCByaWVu ZywgImdpYXkgDQp0byBraWV1IGdpIGN1bmcgc2FpLCBuZXUga2hvbmcgY28gcGhvbmcgYmkgbmFt IGdvbiB0cm9uZyBobyBzbyIuDQoNCk5odW5nIGRvaSBraGksICJwaG9uZyBiaSIgcm9pIG1hIHZh biBjaHVhIHhvbmcgdmllYy4NCg0KTW90IG51IG5oYW4gdmllbiBsYW0gaGFuaCBjaGluaCBvIEhh IE5vaSBwaGFuIGFuaCwga2hpIGNhbiBsYW0gdGh1IHR1YyBnaSBkbywgY2hpIGRldSANCnBoYWkg ZGkgZGkgdmUgdmUgcmF0IG5oaWV1IGxhbi4gIk1vaSBsYW4gZGVuIGxhaSBwaGF0IHNpbmggdGhl bSBjaHV5ZW4gdGhpZXUgZ2lheSB0by4gU2F1IA0Ka2hpIGR1YSB0aGVtIHBob25nIGJpIHRoaSBk dW9jIG5oYW4gaG8gc28gdmEgaGVuIHR1YW4gc2F1IHNlIGdvaSBsYWkuIE5odW5nIGRvaSB0dWFu IHNhdSANCnRvaSBnb2kgbGFpIHRoaSBoZW4gc2Uga2llbSB0cmEgbGFpIGhvIHNvLiBTYXUgbmhp ZXUgbGFuIHRvaSBnb2kgaG9pIGtldCBxdWEgdGhpIGxhaSBub2kgbGEgZG9pIA0Kc2VwIGR1eWV0 LiBEYSBnYW4gMiB0dWFuIHJvaSwgdmFuIGNodWEgY28gY2F1IHRyYSBsb2kgY3UgdGhlIi4NCg0K VmF5IGxhIHNpbmggcmEgY2h1eWVuIGNoYXkgZGVuICJjbyIgZGUgZ2lhaSBxdXlldCBtbyBidW5n IG5odW5nIGtob25nIGJpZXQgYmFvIG5oaWV1IA0KdGllbiBjaG8geHVlLg0KDQoiQ28gc2FuIG1v dCBkdW9uZyBkYXkgeHV5ZW4gc3VvdCB0dSB2ZSBiYW4gdmUsIGRvIGRhYywgY2FwIGdpYXkgZGVu IGN1YyB0aHVlLiBOZXUgdHUgDQpsYW0gZGkgdG9pLCBkaSBsdWksIGJpIGhhbmggc2FwIGNoZXQg bHVvbi4gVG90IG5oYXQgY3UgcXVhbmcgcmEgMSBjdWMgdGllbiByb2kgbmdvaSBydW5nIGR1aSAN CmNobyBuZ2F5IGxheSIsIG1vdCBuaGFuIHZpZW4ga2UgdG9hbiBsYW0gdmllYyBvIFRQLkhDTSBj aGlhIHNlIGtpbmggbmdoaWVtIGRpIHhpbiBjYXAgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHN1IGR1 bmcgZGF0Lg0KDQpNb3Qga3kgc3UgY29uZyBuZ2hlIHRob25nIHRpbiBvIEhhIE5vaSBjaHV5ZW4g c2FuZyBraW5oIGRvYW5oIGN1bmcgdGFtIHN1OiAiS2hpIGRhbmcgDQpreSBraW5oIGRvYW5oIG5n YW5oIG5naGUgbW9pLCBraG9uZyB0aGUgZG9hbiBkdW9jIG1pbmggcGhhaSBkaSB4aW4gbyBkYXUs IGdpYWkgZGFwIHRhaSANCmNhYyBjbyBxdWFuIG5oYSBudW9jIGxhIGNoaSB2YW8gYmFuZyBodW9u ZyBkYW4gbWEgZGljaCB2dSBtb2kgdGhpIGtob25nIGNvIHJvaS4gVG90IA0KbmhhdCBsYSB0aW0g bmd1b2kgcXVlbiBsYW0gY29uZyB0eSBsdWF0IGdpdXAgZG8sIGhvIGNvIGtpbmggbmdoaWVtIGxh Y2ggbHVhdCIuDQoNCk5nYXkga2hpIGJpbmggY2hvbiAidGh1IHR1YywgY28gcXVhbiBsYW0gdGh1 IHR1YyB0aHVhbiBsb2kgbmhhdCIgdGhpIGRhIHBoYW4gbmd1b2kgZGFuIA0KY3VuZyBnaWFpIHRo aWNoIG1vaSB2aWVjICJkYXUgeHVvaSBkdW9pIGxvdCIgdmFuIGxhIG5obyBsb3QgdGF5LCBxdWFu IGhlIHRvdCB2YSBjby4gDQpDYSBiaWV0IG1vaSBjbyB0cnVvbmcgaG9wIHR1IHRpbiBjaG8gcmFu ZyBtaW5oIGhpZXUgcm8gcXV5IHRyaW5oIHRodSB0dWMgY3VuZyBuaHUgbmhvIGNhbiBibyANCm5p ZW0gbm8sIHRhbiB0aW5oLiANCg0KQ2h1YSBoYWkgbG9uZyB2ZSBjb25nIGNodWMNCg0KQm9pIHZh eSwgY3VuZyBkZSBoaWV1IGtoaSBoYXUgaGV0IG5ndW9pIGRhbiB0aGFtIGdpYSBraGFvIHNhdCBr aG9uZyBoYWkgbG9uZyB2ZSBnaWFpIA0KcXV5ZXQgdGh1IHR1YyBoYW5oIGNoaW5oIG8gZGlhIHBo dW9uZyBoby4gQ28gdG9pIGhvbiBudWEgc28gbmd1b2kgdHJhIGxvaSBjaG8gcmFuZyBobyANCmto b25nIG5oYW4gZHVvYyBuaHVuZyB0aG9uZyB0aW4gcm8gcmFuZyB2ZSB0aHUgdHVjIGNhbiBsYW0u IEtob25nIHBoYWkgYWkgY3VuZyBuaGFuIA0KZHVvYyBsaWNoIGhlbiB0cmEga2V0IHF1YSBnaWFp IHF1eWV0IHRodSB0dWMgdmEgcmF0IG5oaWV1IHRyb25nIHNvIG5odW5nIG5ndW9pIG5oYW4gZHVv YyANCmxpY2ggaGVuIHBoYW4gYW5oIHJhbmcgY29uZyBjaHVjIG5oYSBudW9jIGN1bmcga2hvbmcg ZHVvYyBkdW5nIGhlbiBjaG8gbGFtLiBUcmluaCBkbyANCm5naGllcCB2dSBjdWEgZG9pIG5ndSBj b25nIGNodWMgZGEgc28gZHVvYyBjaG8gbGEgY2h1YSB0b3QuDQoNCihBbmg6IEtob25nIHBoYWkg cGh1b25nIG5hbyBjdW5nIGNvIHRob25nIHRpbiBybyByYW5nIHZlIHRodSB0dWMgaGFuaCBjaGlu aCBuaHUgDQpVQk5EIHBodW9uZyBOZ3V5ZW4gRHUsIEhhIE5vaS4gQW5oOiBWQSkNCg0KTW90IHRy b25nIG5odW5nIGdpYWkgcGhhcCBkdW9jIGRhIHNvIG5ndW9pIHRyYSBsb2kga2hhbyBzYXQgKDYw JSkgZGUgeHVhdCwgZG8gbGEgY2FuIA0KcGhhaSBjYWkgY2FjaCB0aHUgdHVjIGhhbmggY2hpbmgg dGhlbyBodW9uZyB0aHVhbiBsb2ksIGRvbiBnaWFuIGNobyBuZ3VvaSBkYW4uDQoNCkdpYWkgcGhh cCBjYXAgYmFjaCB0aWVwIHRoZW8gbGEgZG9pIG1vaSB2YSBuYW5nIGNhbyBjaGF0IGx1b25nIGRv aSBuZ3UgY2FuIGJvIGNvbmcgDQpjaHVjLCBjaHUgdHJvbmcgeGF5IGR1bmcgbmd1b2kgZ2lvaSB2 ZSBjaHV5ZW4gbW9uLCBjbyBkdWMgZG8gdmEgdHJhY2ggbmhpZW0uIFNvbmcgDQpzb25nIGxhIG5o aWVtIHZ1IGNhaSBjYWNoIGJvIG1heSBoYW5oIGNoaW5oIG5oYSBudW9jIHRoZW8gaHVvbmcgZGFt IGJhbyB0aW5oIGhpZXUgDQpxdWEgdmEgdGlldCBraWVtIG5nYW4gc2FjaC4gQ2h1eWVuIG5odW5n IGRpY2ggdnUgY29uZyBraG9uZyBuaGF0IHRoaWV0IHBoYWkgZG8gY28gcXVhbiANCm5oYSBudW9j IGN1bmcgdW5nIGNobyBkb2FuaCBuZ2hpZXAsIHRvIGNodWMgeGEgaG9pLCB0byBjaHVjIHBoaSBD aGluaCBwaHUgZGFtIG5oaWVtLg0KDQpOZ29haSByYSwgbmhpZXUgbmd1b2kgY3VuZyBraWVuIG5n aGkgcGhhaSB0aGlldCBsYXAgY2hlIGRvIHRpZW4gbHVvbmcgY2FuaCB0cmFuaCB0aGVvIHZpIA0K dHJpIGNvbmcgdGFjIGN1YSBjb25nIGNodWMgY3VuZyBuaHUgdGFvIHJhIGNvIGNoZSBjaG8gbmd1 b2kgZGFuIHZhIGJhbyBjaGkgdGhhbSBnaWEgcGhhdCANCmhpZW4sIHRvIGNhbyBuaHVuZyBoYW5o IHZpIHRpZXUgY3VjIGN1YSBjb25nIGNodWMgdHJvbmcgdGh1YyB0aGkgY29uZyB2dS4NCg0KS2hv bmcgdGhlIHRoaWV1IG5odW5nIGdpYWkgcGhhcCBraGFjIGxpZW4gcXVhbiBkZW4gY29uZyBuZ2hl IG5odSBjbyBjaGUgbW90IGN1YSwgbW90IA0KY3VhIGxpZW4gdGhvbmcsIGRheSBtYW5oIHRyaWVu IGtoYWkgY2FjIHVuZyBkdW5nIHZlIGNvbmcgbmdoZSB0aG9uZyB0aW4uLi4NCg0KVHUgbmdheSA4 LzYgZGVuIDE1LzkvMjAxMCwgVmlldE5hbU5ldCB2YSBDaHVvbmcgdHJpbmggUGhhdCB0cmllbiBM aWVuIGhvcCBxdW9jIHRhaSANClZpZXQgTmFtIChVTkRQKSBsYW4gZGF1IHRpZW4gdGh1YyBoaWVu IGtoYW8gc2F0IHRyZW4gbWFuZyBJbnRlcm5ldCAodGFpIA0Kd3d3LmhpZW5rZWNjaGMudm4gLSB0 cmFuZyB3ZWIgbmF5IGRhIGhldCBoaWV1IGx1YykgZGUgaG9pIHZlIGtpbmggbmdoaWVtIHZhIGNh bSBuaGFuIA0KY3VhIG5ndW9pIGRhbiBraGkgdHVvbmcgdGFjIHZvaSBjYWMgY28gcXVhbiBoYW5o IGNoaW5oIG8gZGlhIHBodW9uZyBub2kgaG8gc2luaCBzb25nIA0KdmEgbGFtIHZpZWMuIA0KDQpL aGFvIHNhdCBuaGFtIGhvIHRybyBuaHVuZyBubyBsdWMgY3VhIENoaW5oIHBodSB0cm9uZyB2aWVj IGRheSBtYW5oIGNhaSBjYWNoIGhhbmggDQpjaGluaCB2YSBkb24gZ2lhbiBob2EgdGh1IHR1Yy4g S2hhbyBzYXQgdGFwIHRydW5nIGhvaSBjYW0gbmhhbiBjdWEgbmd1b2kgZGFuIHZlIGtldCBxdWEg DQpjYWkgY2FjaCB0aHUgdHVjIGhhbmggY2hpbmggbyBkaWEgcGh1b25nLCB2ZSBraW5oIG5naGll bSB0aHVjIHRlIGtoaSBjYXkgZGVuIGN1YSBjb25nLCANCmtoaSBkaSBsYW0gdGh1IHR1YyBoYW5o IGNoaW5oLCB2YSBuaG8gbmd1b2kgZGFuIGNoaSByYSB0aHUgdHVjIG5hbyBydW9tIHJhIG5oYXQg dmEgdGh1YW4gDQpsb2kgbmhhdC4NCg0KS2hhbyBzYXQgY3VuZyBsYXkgeSBraWVuIGN1YSBuZ3Vv aSBkYW4gdmUgbW90IHNvIGRpbmggaHVvbmcgY2FpIGNhY2ggaGFuaCBjaGluaCB0cm9uZyANCnRo b2kgZ2lhbiB0b2kuIEtoYW8gc2F0IGRhIHRodSBodXQgZHVvYyAxLjQ2NiBjYXUgdHJhIGxvaSBj byBoaWV1IGx1YywgdHJvbmcgZG8gNjIsNDglIGxhIA0KbmFtIGdpb2kgdmEgMzcsNTIlIGxhIG51 IGdpb2kuIE5ndW9pIHRyYSBsb2kga2hhbyBzYXQgZGVuIHR1IDYzIHRpbmgsIHRoYW5oIHBobywg dHJvbmcgZG8gDQo0OSw4NiUgdHUgY2FjIHRoYW5oIHBobyB0cnVjIHRodW9jIHRydW5nIHVvbmcu IA0KDQpIeSB2b25nIHJhbmcga2hhbyBzYXQgbGEgY2F1IG5vaSBnaXVhIG5ndW9pIGRhbiB2b2kg Q2hpbmggcGh1LCBnb3AgcGhhbiBwaGFuIGFuaCB5IA0Ka2llbiB2YSBuZ3V5ZW4gdm9uZyBjdWEg bmd1b2kgZGFuIGRvaSB2b2kgcXVhIHRyaW5oIGNhaSBjYWNoIGhhbmggY2hpbmggbyBWaWV0IE5h bS4gDQoNCmh0dHA6Ly93d3cuZ2FueGEuY29tL05ld3MvRGV0YWlsTmV3cy5waHA/SUROZXdzPTMw MzYgMTQvMS8yMDEwDQoNClRodSB0dW9uZzogVGh1IHRodWUgYmF5IGdpbyAiY3VhIGRvaSIgbmhp ZXUgbGFtLiBEYW5nIGxlIHBoYWkgZG9uZyAxMCBkb25nIHRoaSB0aG9uZyBkb25nIHZvaSBjYW4g Ym8gdGh1ZSBjaGkgbm9wIG1vdCBudWEsIHBoYW4gY29uIGxhaSBsYSBjaGlhIGNoYWMgDQoNCmh0 dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9Cby10cnVvbmctTmd1eWVuLVNpbmgtSHVuZy1jYW4tZ2lh aS10cmluaC1yby10cnVvYy1raGktcm9pLUJvLVRhaS1jaGluaC80MDEzODU0MC8xNTcvICAxOC81 LzIwMDYsIDA1OjQ5IEdNVCs3IA0KDQpRdW9jIGhvaSB0aGFvIGx1YW4gdmUgdGluaCBoaW5oIGtp bmggdGUsIHhhIGhvaTogRGF1IHhvdCB2b2kgbmd1b24gdm9uIGJpLi4uIGJ1b25nIHRoYSANCg0K VGh1IHR1b25nOiAiUXVhIHZ1IHRpZXUgY3VjIGRvbmcgdHJvaSBvIFBNVTE4LCBjaHVuZyB0YSBt b2kgZ2lhdCBtaW5oIHZlIGN1bmcgY2FjaCBxdWFuIGx5IHZvbiBPREEiIC0gREIgTGUgVmFuIEN1 b25nIChUaGFuaCBIb2EpIG5vaSAtICJOZ3V5ZW4gbmhhbiBsYSBkbyBjbyBjaGUgcXVhbiBseSB0 aGlldSBtaW5oIGJhY2giIA0KDQotDQpodHRwOi8vdGlubmhhbmh2bi5pbmZvLzIwMTAvMDcvdGh1 LXR1b25nLW5ndXllbi10YW4tZHVuZy1jaGFtLXh1LWx5LWFuLXRoYW0tbmh1bmctZGUtZ2F5LWhv YWktbmdoaS5odG1sIEp1bHkgOSwgMjAxMA0KDQpPbmcgTmd1eWVuIFRhbiBEdW5nIC0gVGh1IHR1 b25nLCBUcnVvbmcgQmFuIGNoaSBkYW8gVHJ1bmcgdW9uZyB2ZSBwaG9uZywgY2hvbmcgdGhhbSBu aHVuZyANCg0KaHR0cDovL215Lm9wZXJhLmNvbS9UaGFuaE5pZW5RdW9jTm9pL2Jsb2cvc2hvdy5k bWwvMTg5NjE1MzIgIDExLzEwLzIwMTAsIDEwOjAyOjEwIA0KDQpCYSBIYWkgVGFtIGNoaSBydW90 IGN1YSBUaHUgVHVvbmcgTmd1eWVuIFRhbiBEdW5nIGxhbSBDaHUgdGljaCBUYXAgZG9hbiBUYW4g VGFvICANCg0KaHR0cDovL3d3dy5raWVuZ2lhbmdzb3V2ZW5pcnMuY29tL0RvYy9LaGlldUtpZW4v TGFuRGF0S0cuaHRtIFRoYW5oIFF1YW5nLCBwaG9uZyB2aWVuIFJGQSAtICAyMDEwLTA4LTAyDQoN ClRodSB0dW9uZzogRHUgYW4gbGFuIGJpZW4gbGFpIGxhbiBkYXQgY3VhIGRhbiAoZHUgYW4gY3Vh IHRhcCBkb2FuIFRhbiBUYW8pICAgICAgICAgICAgICAgICAgICAgICAgIA0KDQpNb3QgdHJvbmcg bmh1bmcgcmFjIHJvaSB2ZSBkYXQgZGFpIGRhaSBkYW5nIHZhIGdheSBuaGlldSBjaHUgeSB0cm9u ZyBudW9jIGNvIGxlIA0KbGEgdnUgbyBSYWNoIEdpYSCWIHRhaSBub2kgZ29pIGxhICJraHUgbGFu IGJpZW4iIEtpZW4gR2lhbmcuIA0KDQooQW5oOiBNb3QgS2h1IGRvIHRoaSBtb2kgZGFuZyB4YXkg ZHVuZyB0YWkgS2h1IGxhbiAgYmllbiBSYWNoIEdpYSwgS2llbiBHaWFuZy4gUGhvdG8gY291cnRl c3kgb2YgZGFubGVudGllbmcubmV0KQ0KDQpUaHVjIGNoYXQgY3VhIGR1IGFuIGxhbiBiaWVuIEtp ZW4gR2lhbmcgcmEgc2FvPyBOZ3VvaSBkYW4gYmkgYW5oIGh1b25nIHBoYW4gdW5nIG5odSANCnRo ZSBuYW8/IFRoYW5oIFF1YW5nIHRpbSBoaWV1IHZhbiBkZSBuYXksIG1vaSBxdXkgdmkgdGhlbyBk b2kgc2F1IGRheToNCg0KTGFuIG5ndW9jIHZvIGRhdCBjYW5oIHRhYw0KDQpEdSBhbiBtYSBjaGlu aCBwaHUgY2hvIHBoZXAgY2hpbmggcXV5ZW4gS2llbiBHaWFuZyBsYW4gcmEgYmllbiB0cmVuIGRp ZW4gdGljaCA0MjAgDQpoZWN0YSBkZSBtbyByb25nIGRhdCBzaW5oIHNvbmcgY2hvIGN1IGRhbiBk aWEgcGh1b25nLCBuaGF0IGxhIGdpdXAgbmh1bmcgaG8gbmdoZW8gY28gDQpkYXQgY3UgdHJ1LCBo YW4gbGEgZGlldSB0b3QgZGVwIHRyZW4gbHkgdGh1eWV0LiBOaHVuZyBkdSBhbiBheSBkYSBnYXkg cGhhbiB1bmcgZGFuZyBrZSANCmN1bmcgbmhpZXUgbm9pIHVhdCB1YyBjdWEgY3UgZGFuIG8gUGh1 b25nIEFuIEhvYSB2YSBQaHVvbmcgVmluaCBCYW8gdGh1b2MgVFAgUmFjaCANCkdpYSB0cm9uZyAx MiBuYW0gbmF5LCBraGkgY29uZyB0cmluaCAibGFuIGJpZW4iICB0cm8gdGhhbmggbGFuIG5ndW9j IHZvIGRhdCBjYW5oIHRhYyB2YSANCnNpbmggc29uZyBsYXUgbmFtIGN1YSBuZ3VvaSBkYW4uDQoN CkNhY2ggbmF5IGl0IGxhdSwgdGFwIGNoaSBQaGFwIEx5IGN1YSBIb2kgTHVhdCBHaWEgVmlldCBO YW0gcGhhaSBrZXQgbHVhbiByYW5nIHZvaSANCiJxdXlldCBkaW5oIGN1YSBjaGluaCBwaHUgY2hv IEtpZW4gR2lhbmcgbGFuIGJpZW4gNDIwIGhhLCB2aWVjIFVCTkQgdGluaCBLaWVuIEdpYW5nIA0K dGh1IGhvaSA0NSBoZWN0YSBkYXQgY3VhIGRhbiBsYSBkbyBCYW4gUXVhbiBseSBDb25nIHRyaW5o IGxhbiBiaWVuICJjaGUgcmEiIHZhIGR1b2MgVUIgDQp0aW5oICJPSyIuIE1vaSBkYXksIGJhbyBQ aGFwIEx1YXQgY3VuZyBrZXQgbHVhbiByYW5nICJLaWVuIEdpYW5nIGxvaSBkdW5nIGxhbiBiaWVu IGRlIA0KbGFuIGRhdCBkYW4iLg0KDQpDaHVhIGNvIHF1eWV0IGRpbmggY3VvaSBjdW5nIGN1YSBj aGluaCBwaHUgdGhpIHRhaSBzYW8gY2hpbmggcXV5ZW4gS2llbiBHaWFuZyBsYWkgDQpyYSBxdXll dCBkaW5oIGN1b25nIGNoZSBkYXQgY3VhIGRhbiB2YSBjaG8gZG8gbGEgZHVuZyBkdW9jPyAgIA0K DQpDdSBkYW4gS2llbiBHaWFuZw0KDQpIYW5oIGRvbmcgY3VhIGdpb2kgY2FtIHF1eWVuIEtpZW4g R2lhbmcgZ2F5IHBoYW4gbm8gbmd1b2kgZGFuIGRpYSBwaHVvbmcsIG5odSBtb3QgDQpjdSBkYW4g bmhhbiB4ZXQ6DQoiRGFuZyB2YSBOaGEgbnVvYyBjaHUgdHJ1b25nIGxhbiBiaWVuIG1vIHJvbmcg ZG8gdGhpIFJhY2ggR2lhIHRoaSBjaHUgdHJ1b25nIGRvIGJpIA0KdGluaCBLaWVuIEdpYW5nIHZh IEJhbiBRdWFuIGx5IER1IGFuIExhbiBiaWVuIGxvaSBkdW5nIGxhbiB0aGVtIDQ1IGhlY3RhIGRh dCBjdWEgZGFuLiANCk11YyBkaWNoIGN1YSBobyBsYSBuaGFtIGJvaSB0aHVvbmcgZ2lhIHJlLCBy ZSBob24ga2luaCBwaGkgYm8gcmEgZGUgbGFuIGJpZW4uIEhvIGR1bmcgdHUgDQpsYSAiY2hpbmgg dHJhbmcgZG8gdGhpIiB2YSBsb2kgZHVuZyB2aWVjIGxhbiBiaWVuIGRlIGxheSBkYXQgY3VhIGRh bi4gSGllbiBuYXkgY2h1bmcgdG9pIA0KZGFuZyB0aHVhIGtpZW4gdmllYyBjaGluaCBxdXllbiB0 aW5oIEtpZW4gR2lhbmcgaG8gdHJvLCBiYW8gY2hlIGNobyBCYW4gUXVhbiBseSBEdSBhbiANCkxh biBiaWVuIGxheSBkYXQgY3VhIGRhbiBuaGFtIGJvaSB0aHVvbmcgdm9pIGdpYSByZSBtYXQgdHJv bmcga2hpIGtob25nIHJhIHF1eSBkaW5oIHRodSANCmhvaSBkYXQuIFZ1IG5heSAxMiBuYW0gcm9p LCBoaWVuIGxhIDIwMTAsIGhvIHRpbmggZ2lhIGRhdCBuYW0gMTk5OCB2b2kgZ2lhIGxhIDEzLjIw MCANCmRvbmcuIA0KDQpLaGkgY2h1bmcgdG9pIHRodWEgbGVuIGNoaW5oIHBodSB0aGkgY2hpbmgg cGh1IGNoaSBkYW8geHVvbmcsIHlldSBjYXUgS2llbiBHaWFuZyBnaWFpIA0KcXV5ZXQgZHV0IGRp ZW0sIGdpYWkgcXV5ZXQgdGluaCB0aGVvIGdpYSB2YW5nIHRydW90IGdpYSwgdGllbiBtYXQgZ2lh IHZhIHRpbmggbGFpIGNobyBjaHVuZyANCnRvaS4gTmh1bmcgbGF5IGdpYSBtb2MgY28gc28gYmFu IGRhdSB0aW5oIHRpZW4gdHJ1b3QgZ2lhIHZhIG1hdCBnaWEgY3VuZyBiYW5nIG5naGlhIHZvaSAN CmRvbmcgdGllbiBWaWV0IE5hbSBtYXQgZ2lhIGhpZW4gbmF5IGxhIDEyIG5hbS4gQ28gbmdoaWEg bGEgaG9pIGRvIGFuaCBnaWFvIG1pZW5nIGRhdCANCm5heSB2YSBtdWEgZHVvYyAxIGx1b25nIHZh bmcgdGhpIG5nYXkgaG9tIG5heSBhbmggY3VuZyBjaGkgbXVhIGR1b2MgMSBsdW9uZyB2YW5nIA0K dGhvaS4gQ29uIG5oYSBkYXUgdHUgbGF5IGRhdCwgaG8gYmFuIHZvaSBnaWEgaGllbiBoYW5oIGxh IHR1IDIgdHJpZXUgdG9pIDYgdHJpZXUgZG9uZy8xIG0yLiINCg0KKEFuaCBjaHVwOiBUYXAgZG9h biBUYW4gVGFvIC0gSVRBIEdST1VQIGRhdSB0dSBLaHUgZG8gdGhpIG1vaSB0YWkgS2h1IGxhbiBi aWVuIFJhY2ggR2lhLCANCktpZW4gR2lhbmcuIFF1YW4gZGFvIG5oYW4gdGFvIEhhaSBBdS0gQW4g SG9hLiBQaG90byBjb3VydGVzeSBvZiBkYW5sZW50aWVuZy5uZXQpIA0KIA0KTW90IGRhbiBvYW4g a2hhYyBvIGRpYSBwaHVvbmcgbmF5IGNobyBiaWV0IHRoZW06DQogIkNodW5nIHRvaSBnb2kgZG9u IHRodWEgbGVuIGNoaW5oIHBodSwgdGhpIGRvYW4gVGhhbmggdHJhIGNoaW5oIHBodSB4dW9uZyBu b2kgdmllYyBuYXkgDQpsYSB2aWVjIGN1YSBjaGluaCBwaHUsIHZhIGNoaSBjbyBjaGluaCBwaHUg bW9pIHRyYSBsb2kgbGEgY2hpbmggcXV5ZW4gS2llbiBHaWFuZyBkdW5nIA0KaGF5IGRhbiB0aHVh IGtpZW4gbGEgZHVuZy4gQ2hvIHRvaSBnaW8gcGh1dCBuYXksIGNodWEgY28gcXV5ZXQgZGluaCBj dW9pIGN1bmcgbm9pIHJhbmcgDQpLaWVuIEdpYW5nIGxhIGR1bmcuIENodWEgY28gcXV5ZXQgZGlu aCBjdW9pIGN1bmcgY3VhIGNoaW5oIHBodSB0aGkgdGFpIHNhbyBjaGluaCBxdXllbiANCktpZW4g R2lhbmcgbGFpIHJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIGRhdCBjdWEgZGFuIHZhIGNobyBkbyBs YSBkdW5nIGR1b2M/IE8gZGF5IHF1YW4gDQp0b2EgbGEgY2hpbmggcGh1LiBNYSBjaGluaCBwaHUg Y2h1YSBjbyBxdXlldCBkaW5oIHNhdSBjdW5nIG5hbyBoZXQuIENodW5nIHRvaSBsYSBjb25nIA0K ZGFuIGN1YSBkYXQgbnVvYyBjbyBjaGluaCBxdXllbiwgY28gZG9hbiB0aGUsIGNvIGRhbmcgbGFu aCBkYW8sIHRoaSBjaHVuZyB0b2kgY2hpDQpiaWV0IHRodWEga2llbiBtYXkgb25nIGRvIGNodSBi aWV0IHRodWEga2llbiBhaSBiYXkgZ2lvLiBCYW8gY2hpIGNobyB0b2kgZ2lvIHBodXQgbmF5IHZh biANCmRvbmcgdGluaCB2b2kgY2h1bmcgdG9pIGxhIGNoaW5oIHF1eWVuIEtpZW4gR2lhbmcgbGFt IHNhaS4iIA0KDQpEdSBiaSBjdSBkYW4gZGlhIHBodW9uZyB2YSBjYSBiYW8gY2hpIGdhbiBuaHUg ZG9uZyBsb2F0IHBoYW4gZG9pLCBuaHVuZyBnaW9pIGNhbSANCnF1eWVuIGRpYSBwaHVvbmcgeGVt IGNodW5nIG5odSAiY2F1IGdpbyIgZGUgdGllcCB0dWMgaGFuaCBkb25nIGJpZW4gZHUgYW4gImxh biBiaWVuIiANCnRoYW5oICJsYW4gZGF0IGRhbiIsIG5odSBtb3QgY3UgZGFuIGtoYWMgbW8gdGE6 DQoiRGFuIGhvYW4gbmdoZW5oIG5odW5nIGJhaSBiYW8gYXkuIEhvIGxlbiB0aWVuZyB1bmcgaG8g Y2FjIGJhaSBiYW8gdmEgY2hvIFV5IGJhbiB0aW5oIA0Kc3VhIHNhaS4gTmh1bmcgbWEgdGluaCB2 YSBCYW4gUXVhbiBseSBDb25nIHRyaW5oIExhbiBiaWVuIGxvaSBkdW5nIGN1IGtlbyBkYWkgdGhv aSBnaWFuIA0Kcm9pIHRoYXkgZW0gZW0gdGhpIGJhdCBkYXUgbGFtIHRpZXAsIGNodSBraG9uZyBz dWEgZG9pLiINCg0KVGh1IGhvaSBoYXkgY3VvcCBkYXQ/DQoNClBodW9uZyB0aWVuIGN1YSB2aWVj IGN1b25nIGNoZSBkYXQgZGFpIHRyb25nIG51b2MsIGtlIGNhIHZ1ICJsYW4gYmllbiBLaWVuIEdp YW5nIiBsdW9uIA0KbGEgdm8gbHVjLCBuaHUgbW90IGRhbiBvYW4gdnVhIHJvaSBtbyB0YToNClRo YW0gY2hpIGNvIG5ndW9pIGRhbiBwaGF0IGJpZXUgbGEgIm1heSBvbmcgYW4gY3VvcCBkYXQgY3Vh IHRvaSBjaHUga2hvbmcgcGhhaSB0aHUgaG9pIA0KZGF0IGN1YSB0b2kuIDUwMCBtMiBtYSB0b2kg Y2hpIG11YSBsYWkgZHVvYyBjbyA1IG0yIHRoaSBsYSBhbiBjdW9wIGRhdCBjdWEgdG9pIGNobyBj b24gZ2kgDQpudWE/Ig0KDQpDdSBkYW4gS2llbiBHaWFuZw0KDQoiQ2hpbmggcXV5ZW4gZHVuZyBi aWVuIHBoYXAgY3VvbmcgY2hlIGNodW5nIHRvaS4gSG8gcmF0IGRvbmcsIHRvaSBjdW9uZyBjaGUg Y28gbWF5IA0KY2h1YyBobyBkYW4gdGhpIGxhbSBzYW8gY2h1bmcgdG9pIGRvIGR1b2MuIENodW5n IHRvaSB0aHVhIGx1YyBsdW9uZyBjb25nIGFuIHZlIHZpZWMgDQpob20gcm9pIGhvIGN1b25nIGNo ZSwgbG9pIG5ndW9pIHRhIHJhIGtoaSBuZ3VvaSB0YSBkdW5nIHRyZW4gZGF0IGN1YSBtaW5oIHZh IGNoaSB5ZXUgY2F1IA0Kbmd1bmcgdGhpIGNvbmcgdGhvaS4gTWEgeWV1IGNhdSBuYXkgbGEgaG9w IGx5LCB2aSBuZ3VvaSB0YSBjaHVhIG5oYW4gdGllbiBib2kgdGh1b25nLCANCmRhbmcgdHJvbmcg dm9uZyB0aHVhIGtpZW4gdGhpIGxhbSBzYW8gY2hpbmggcXV5ZW4gY2hvIHRoaSBjb25nIHRyZW4g ZGF0IG5ndW9pIHRhIGR1b2MuIA0KQ2h1bmcgdG9pIGNoaSBjaG9uZyBkbyBiYW5nIHZhbiBiYW4s IGJhbmcgdGh1YSBraWVuLCBiYW5nIGJhbyBjaGkuIE5odW5nIGhvIHZhbiBjdSANCmxhbSwgaG8g bGFtIGJ1YSwgbGFtIGNhbiAtIHRvaSBjaG8gbGEgbGFtIGNhbi4gVGhhbSBjaGkgY28gbmd1b2kg ZGFuIHBoYXQgYmlldSBsYSAibWF5IA0Kb25nIGFuIGN1b3AgZGF0IGN1YSB0b2kgY2h1IGtob25n IHBoYWkgdGh1IGhvaSBkYXQgY3VhIHRvaS4gNTAwIG0yIG1hIHRvaSBjaGkgbXVhIGxhaSANCmR1 b2MgY28gNSBtMiB0aGkgbGEgYW4gY3VvcCBkYXQgY3VhIHRvaSBjaG8gY29uIGdpIG51YT8iLiBI aWVuIG5heSwga2hpIGhvcCBkYW4gbGFpLCB0aGkgDQpobyBub2kgcm8gcmFuZyB0aWVuIGJvaSB0 aHVvbmcgMSBtMiBraG9uZyBkdSBtdWEgMSBrZyBjYSBsaW5oIGNobyBjb24gY2hhdSBhbi4iDQoN CkhhdSBxdWEgbHVvbiBsYSBzdSB0aHVhIHRoaWV0IHRyb25nIHN1IGNoaXUgZHVuZyBjdWEgbmd1 b2kgZGFuOg0KIk5ndW9pIHRhIGNhbSBxdXllbiB0aGkgbWluaCBraG9uZyB0cmEgbG9pIGR1b2Mu IEhvIGNhbSBxdXllbiB0aGkga2hpIGhvIGhhbmggZG9uZyANCm5odSB2YXkgY28gdGhlIGxhIGhv IGJpZXQgZG8sIG5odW5nIG5ndW9pIHRhIGNhbSBxdXllbiB0aGkgbmd1b2kgdGEgY3UgbGFtLiBN aW5oIGtob25nIA0KdGhlIG5hbyBjdW9uZyBsYWkgZHVvYy4iDQoNCihBbmg6IE1vdCBLaHUgZG8g dGhpIG1vaSBkYW5nIHhheSBkdW5nIHRhaSBtb3QgcGhhbiBLaHUgbGFuIGJpZW4gUmFjaCBHaWEs IEtpZW4gR2lhbmcuIFBob3RvIGNvdXJ0ZXN5IG9mIGRhbmxlbnRpZW5nLm5ldCkNCg0KU3UgdHVu ZyBob2FuaCB0cmFuZyB0cm9uIHZhIHR1eSB0aWVuIGRvIGN1YSBnaW9pIGNhbSBxdXllbiBkaWEg cGh1b25nICB0dW9uZyBwaGFuIHZvaSANCmxvaSBodWEgdG90IGRlcCBjdWEgZ2lvaSBsYW5oIGRh byBWaWV0IE5hbSBkYW5oIGNobyBuZ3VvaSBkYW4gcGhhaSBkaSBkb2kgY2hvIG8uIE1vdCBjdSAN CmRhbiB2dWEgbGVuIHRpZW5nIGdpYWkgdGhpY2ggdGhlbTogDQoiNDUgaGVjdGEgZGF0IGRvIHRo aSBjdWEgMjUyIGhvIGRhbiBiaSBjaG8gbGEgdHJvbmcgcXV5IGhvYWNoLiBSb2kgaG8gbGlldCBr ZSB0cm9uZyB2YW4gDQpiYW4gbGEgZGF0IG5vbmcgbmdoaWVwIGxvYWkgNCwgY28gbmdoaWEgbGEg ZGluaCBnaWEgZGF0IGRvIHRoaSBjdWEgY2h1bmcgdG9pIG5odSBnaWEgZGF0IG8gDQpuZ29haSBy dW9uZywgbyBkYXUgeGEgeG9pIGxhbS4gTWEgdG9pIG5naGkgYmF5IGdpbyBkYXQgbyBoYW5nIGN1 bmcgbmdvIGhlbSBuYW8gY3VuZyANCmtob25nIGNvIGNhaSBnaWEgbmF5IG51YS4gVHJvbmcga2hp IGRvLCBSYWNoIEdpYSBkdW9jIG5oYSBudW9jIGNvbmcgbmhhbiBsYSBkYXQgZG8gdGhpIA0KbG9h aSAzLiBNYSBoaWVuIG5oaWVuIGRhdCBjdWEgdG9pIC0gbyBuZ2F5IFRQIFJhY2ggR2lhIJYgY3Vu ZyBwaGFpIGxhIGRhdCBkbyB0aGkgbG9haSAzLCANCmNobyBsYW0gZ2kgY28gZGF0IG5vbmcgbmdo aWVwIGxvYWkgNC4gDQpCYXkgZ2lvIGNodW5nIHRvaSB5ZXUgY2F1IGhvIGxheSBkYXQgY3VhIGNo dW5nIHRvaSB0aGkgcGhhaSBjbyBxdXlldCBkaW5oIHRodSBob2kgZGF0LCB2YSANCmxheSBkYXQg ZGUgbGFtIGdpIHRoaSBwaGFpIGdoaSByby4gTmV1IGR1bmcgdGhpIGN1IGxheS4gQ29uIHRpZW4g dGhpIGNoaW5oIHBodSBkYSBxdXkgZGluaCwgDQpkYXQgZGFpIHBoYWkgZGVuIGJ1IHRoZW8gZ2lh IHRoaSB0cnVvbmcuIE1hIGdpYSB0aGkgdHJ1b25nIG8gZGF5IGJhbyBuaGlldSB0aGkgYW5oIG11 YSANCnBoYWkgdHJhIGNobyBjaHVuZyB0b2kgbmh1IHZheSBkZSBjaHVuZyB0b2kgZHVuZyBzbyB0 aWVuIGRvIGRpIGNobyBraGFjIG11YSBkdW9jIG1pZW5nIA0KZGF0IGN1bmcgYmFuZyB2YSB0aGFt IGNoaSB0b3QgZGVwIGhvbiBkYXQgY3UgliB0aGVvIHkgY3VhIG9uZyBUb25nIEJpIHRodS4gT25n IGF5IGRhIA0Kbm9pIHJhbmcgbmd1b2kgYmkgdGh1IGhvaSBkYXQgcGhhaSBjbyBub2kgbyBtb2kg YmFuZyB2YSB0b3QgaG9uIG5vaSBvIGN1LiBOaHVuZyBiYXkgZ2lvIA0KbWllbmcgZGF0IGN1YSB0 b2kgdG9pIDUgbmdhbiBtMiwgcm9pIHNhdSBraGkgbmhhbiB0aWVuIGJvaSB0aHVvbmcgdG9pIGRp IG11YSBsYWkgZGF0IG1vaSANCmNodWEgZHVvYyA1MDAgbTIsIHRoaSBsYW0gc2FvIGJhbmcgdmEg dG90IGhvbiBkYXQgY3UgZHVvYyA/IERpZXUgbmF5IGRhdSBjbyBkdW5nIHZvaSANCmNodSB0cnVv bmcgY3VhIGRhbmcgdmEgbmhhIG51b2MgaHVhIGhvIHRybyBjaG8gbmh1bmcgbmd1b2kgYmkgdGh1 IGhvaSBkYXQgZHVvYyBkZXAgDQpob24sIHRvdCBob24sIGdpYXUgY28gaG9uLiBNYSBjaGluaCBx dXllbiBLaWVuIEdpYW5nIG5heSBsYSBhaSA/IENoaW5oIHF1eWVuIG5heSBjdW5nIA0KbGEgbW90 IGJvIHBoYW4gY3VhIGRhbmcsIGN1YSBuaGEgbnVvYyBjaG8gYWkgPyBDYXUgcGhhdCBiaWV1ICJt YXkgb25nIGFuIGN1b3AgZGF0IGN1YQ0KdG9pIGNodSBraG9uZyBwaGFpIGxhIHRodSBob2kgZGF0 IGN1YSB0b2kiLCB0aGkgdG9pIGNobyBsYSBhbiBjdW9wLiBTdSB0aGF0IGxhIG5odSB2YXkuDQoN ClZhbiB0aGVvIGRhbiBvYW4gbmF5LCB0aGkgaGFuaCBkb25nIGN1b25nIGNoZSBkYXQgZGFpIHRp ZXAgZGllbiBnYXkgc3UgcGhhbiBubyBjaG8gdGF0IA0KY2EgY3UgZGFuIG8ga2h1IHZ1YyBuYXk6 DQoNCkN1IGRhbiBLaWVuIEdpYW5nDQoiR2lhIGRpbmggdG9pIHZhIG1vdCBzbyBobyB4dW5nIHF1 YW5oIGN1bmcgYmkgbGF5IGRhdCBuaHUgdmF5LCB0b2kgbm9pIHRoYXQsIG5oaWV1IG5ndW9pIA0K a2hvbmcgYmlldCBwaGFpIG5vaSBjYWNoIG5hbyBkYXkuIEhvIG5vaSBsdWF0IHBoYXAgY3VhIFZp ZXQgTmFtIHNhbyBreSBjdWMgcXVhLiBTYW8gbWEgDQpub2kgbW90IGRhbmcsIGxhbSBtb3Qgbmdh LiBUaGF0IGxhIGt5IGN1Yy4gTWEgbHVhdCB0aGkgbm9pIHJvIHJhbmcgcmFuZyBsYXkgZGF0IGN1 YSBkYW4gDQpwaGFpIHJhIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQuIEtob25nIGNvIHF1eWV0IGRp bmggdGh1IGhvaSBkYXQgbWEgZGVtIGNvbmcgYW4gZGVuIA0KY3VvbmcgY2hlIG5ndW9pIHRhLCBs b2kgbmd1b2kgdGEgcmEga2hvaSBkYXQgY3VhIG1pbmguIFRvaSBiaSB0dW9jIGRvYXQgcXV5ZW4g cXVhbiBseSANCmRhdCBjdWEgbWluaCAyOCBuYW0gbmF5IHJvaS4gTWllbmcgZGF0IG5heSB0b2kg Ym8gdGllbiByYSBtdWEgMjggbmFtIHJvaS4gQ2h1bmcgYXkgdGhvaSANCmdpYW4gYmlldCBiYW8g bmhpZXUgdGhheSBkb2ksIG1hIHRhaSBzYW8gZGF0IGRhaSBjdWEgdG9pLCB0b2kga2hvbmcgZHVv YyBsYW0gZ2lheSB0bywga2hvbmcgDQpkdW9jIGNhcCBzbyBkby4gVGFpIHNhbyBkYXQgY3VhIHRv aSBxdXkgaG9hY2ggdG9pIDI4IG5hbSBtYSBjaHVhIGNobyB0dWkgdG9pIGxhbSBnaWF5PyANCkJh dCBjdSBuZ3VvaSBuYW8gbyB0cm9uZyBraHUgdnVjIGJpIGxheSBkYXQgbmF5IGRldSBwaGFuIG5v IG5odSB2YXkuIg0KDQpUaHVhIHF1eSB2aSwgdHJ1b2MgdGluaCBjYW5oIGN1YSBkYW4gb2FuIG5o dSB2YXksIGNhdSB0cmEgbG9pIGN1YSBxdWFuIGNodWMgZGlhIHBodW9uZyANCnZhbiB0aHVvbmcg bGEgdHJhbmggbmUsIG5odSBtb3QgdmllbiBjaHVjIHRoaSB4YSBSYWNoIEdpYSBjaG8gYmlldDoN Cg0KVmllbiBjaHVjIFJhY2ggR2lhOiJDYWkgbmF5IHRvaSBraG9uZyBiaWV0LCBjYWkgbmF5IHRv aSBraG9uZyByYW5oIiAoY3VwIG1heSkuDQoNClRyb25nIGtoaSBjdSBkYW4gbyBjYWMgcGh1b25n IEFuIEhvYSB2YSBWaW5oIEJhbywgVFAgUmFjaCBHaWEgcGhhaSBjaGl1IGR1bmcgaGFuaCANCmRv bmcgY3VvbmcgY2hpZW0gZGF0IGRhaSBjdWEgZ2lvaSBjYW0gcXV5ZW4gZGlhIHBodW9uZywgdGhp IGRhbiBvYW4ga2hhcCBudW9jIGR1b2MgDQpiaWV0IGN1bmcgbGFtIGNhbmggdHVvbmcgdHUsIGto aWVuIGNvIGxhbiBNUyBOZ3V5ZW4gSG9uZyBRdWFuZyBvIFNhaSBHb24gcGhhaSB0aG90IA0KbGVu IHJhbmcgdGluaCB0cmFuZyBuYXkgImRhIGxlbiB0aGF1IHRyb2kgeGFuaCIgcm9pLiANCg0KaHR0 cDovL3d3dy52aWV0aW5mby5ldS90aW4tdmlldC1uYW0vdGh1LXR1b25nLWR1bmctc2UtY28tcXV5 ZW4tbHVjLXZvLWJpZW4uaHRtbCAoVGhlbyBCQkMpIDIyLTEyLTIwMTAgMTQ6MTEgDQoNClRodSB0 dW9uZyBOZ3V5ZW4gVGFuIER1bmcgc2UgY28gInF1eWVuIGx1YyB2byBiaWVuIiAgDQoNCk5odW5n IHRpbiB0dWMgdHJ1b2MgRGFpIGhvaSBYSSBkYSBoZSBsbyB0ZW4gdHVvaSBjdWEgY2FjIG5oYW4g dmF0IHNlIGxhbmggZGFvIFZpZXQgTmFtIHRyb25nIG5hbSBuYW0gdG9pIGRheS4gDQpPbmcgTmd1 eWVuIFBodSBUcm9uZywgNjYgdHVvaSwgc2UgdHJvIHRoYW5oIFRvbmcgQmkgdGh1IERhbmcgQ29u ZyBzYW4gVmlldCBOYW0uDQpPbmcgVHJ1b25nIFRhbiBTYW5nLCA2MSB0dW9pLCBzZSBsYSBDaHUg dGljaCBudW9jLCB2YSBvbmcgUGhhbSBRdWFuZyBOZ2hpLCA2MSB0dW9pLCBzZSBnaXUgY2h1YyBD aHUgdGljaCBRdW9jIGhvaSB0cm9uZyBraGkgb25nIE5ndXllbiBUYW4gRHVuZywgNjEgdHVvaSwg c2UgdGllcCB0dWMgbGEgVGh1IHR1b25nLg0KDQpEbyB0dW9pIHRydW5nIGJpbmggY3VhIGNhYyBu aGEgbGFuaCBkYW8gbmF5IHNlIG8gbXVjIHRyZW4gNjIgc28gdm9pIHR1b2kgdHJ1bmcgYmluaCBj dWEgZ2FuIDkwIHRyaWV1IGRhbiBWaWV0IE5hbSBsYSBraG9hbmcgMjguIA0KDQpOaGEgVmlldCBO YW0gaG9jIG5ndW9pIFVjLCBHaWFvIHN1IENhcmwgVGhheWVyLCB2dWEgdHJvIHZlIHNhdSBjaHV5 ZW4gZGkgY2hpbiBuZ2F5IHRvaSBWaWV0IE5hbSwgbm9pIHZlIGNhYyB0aW4gdHVjIG5oYW4gc3Ug bW9pIG5oYXQuIFRyb25nIGN1b2MgcGhvbmcgdmFuIHZvaSBwaG9uZyB2aWVuIE5ndXllbiBIdW5n LCBvbmcgY3VuZyBub2kgdmUgbmh1bmcgcnVpIHJvIHRpZW0gdGFuZyBvIFZpZXQgTmFtIHZhIG1v aSBxdWFuIGhlIFZpZXQgTmFtIC0gVHJ1bmcgUXVvYy4gDQoNCi0gUFY6IFF1YXkgdHJvIGxhaSB2 b2kgZ2hlIHRodSB0dW9uZywgbmhpZXUgY2hpIHRyaWNoIGRhIG5oYW0gdmFvIG9uZyBEdW5nIHZh IG1vaSBkYXkgdGFpIFF1b2MgaG9pIGRhIGNvIGtldSBnb2kgZGlldSB0cmEgZG9pIHZvaSBvbmcu IERheSBjbyBwaGFpIGxhIG1vdCBwaGFuIGN1YSBjdW9jIGRhdSB0cmFuaCBnaXVhIGNhYyBwaGUg bmhvbSBraG9uZz8gDQoNCkdpYW8gc3UgQ2FybCBUaGF5ZXI6IENoYWMgY2hhbiBsYSBuaHUgdmF5 LiBOZXUgY2h1bmcgdGEgbmhvIGxhaSB0aGkgaG9pIG5hbSAyMDA3LCBsYSBsdWMgY2FjIGNvbmcg dGFjIGNodWFuIGJpIGRhdSB0aWVuIGNobyBkYWkgaG9pIERhbmcgYmF0IGRhdSwgdmEgY2hvIHRv aSBnaXVhIG5hbSAyMDA5LCBuZ3VvaSB0YSBsYXAgcmEgbW90IHV5IGJhbiBkZSB4ZW0geGV0IHZh biBkZSBuaGFuIHN1LiBNb2kgdGh1IGRldSBkdW9jIHBoYW4gYW5oIHRyb25nIGdpYWkgZG9hbiBu YXkga2hpIGNodW5nIHRhIHRoYXkgb25nIER1bmcgcGhhaSBkb2kgcGhvIHZvaSB0aW5oIHRyYW5n IGxhbSBwaGF0IGNhbywga2luaCB0ZSB0b2FuIGNhdSBzdXkgdGhvYWksIHZhbiBkZSBraGFpIHRo YWMgYmF1eGl0ZSwgY2EgdHJvbmcga2hpYSBjYW5oIG1vaSB0cnVvbmcgbGFuIHF1YW4gaGUgdm9p IFRydW5nIFF1b2MuIENoaSB0cmljaCBraGFpIHRoYWMgYmF1eGl0ZSBjdW5nIG1hbmggdHJvIGxh aSBzYXUgdGhhbSBob2EgbyBIdW5nYXJ5IHZhIHRoZW0gdmFuIGRlIFZpbmFzaGluLiANCk5odW5n IGRpZW0gcXVhbiB0cm9uZyBsYSBvbmcgRHVuZyBkYSBuaGFuIHRyYWNoIG5oaWVtIHRyb25nIHZ1 IFZpbmFzaGluIHZhIHRyYW5oIGR1b2MgY2FjIGN1b2MgdGFuIGNvbmcuIE9uZyBEdW5nIGRhIHRo dWEgbmhhbiBsYSBvbmcgY2hpdSB0cmFjaCBuaGllbSB2YSBjbyB5IG5vaSAiY2FjIG9uZyBjb24g bXVvbiBnaSBob24gbyBtb3QgdGh1IHR1b25nIG51YSIuIA0KDQpOZXUgb25nIE5ndXllbiBUYW4g RHVuZyB0aWVwIHR1YyBnaXUgdmkgdHJpIHRodSB0dW9uZywgY2h1bmcgdGEgaGF5IHRodSBuaGlu IHZhbyBub2kgY2FjIDIyIG5ndW9pLiANClRyb25nIHNvIG5heSBjbyBuYW0gbmd1b2kgZHVvYyBi YXUgcmEgdHUgRGFpIGhvaSBWSUlJLCB0dWMgY28gbmFtIG5hbSB0aGFtIG5pZW4gaG9uIA0Kb25n IER1bmcsIGJheSBuZ3VvaSBkdW9jIGJhdSBsZW4gdHUgRGFpIGhvaSBJWCwgdHJvbmcgZG8gY28g YmFuIHRoYW4gb25nIHZhIDEwIG5ndW9pIA0KdHUgRGFpIGhvaSBYLiANCk5hbSBuYXkgbmh1bmcg bmd1b2kgZHVvYyBiYXUgdHUgRGFpIGhvaSBWSUlJIHNlIG5naGkgaHV1IHZhIGtoaSBjbyBiYXUg Y3UgUXVvYyBob2kgDQpzYXAgdG9pLCBvbmcgRHVuZyBzZSBjaHVhbiBiaSBub2kgY2FjIG1vaSB2 YSBzZSBjbyBjbyBob2kgdG90IGhvbiBkZSBkYXkgbmh1bmcgbmd1b2kgDQpoYW0gcGhhbmggb25n IHJhIGtob2kgbm9pIGNhYy4NClNlIGtob25nIGNvbiBhaSBjYW8gY2FwIGhvbiBvbmcgdHJvbmcg bm9pIGNhYyBudWEuDQpUcnVvYyBkYXkgUGhvIFRodSB0dW9uZyBOZ3V5ZW4gU2luaCBIdW5nIGRv bmcgdmFpIHRybyBoYW0gcGhhbmggdmkgb25nIGNvIG5oaWV1IA0Ka2luaCBuZ2hpZW0gdHJvbmcg Qm8gQ2hpbmggdHJpIHZhIEJhbiBDaGFwIGhhbmggVHJ1bmcgdW9uZyBob24gb25nIER1bmcgY2h1 IGtob25nIA0KcGhhaSBsYSB2ZSBjaHVjIHZ1Lg0KT25nIER1bmcgZGEgZHVhIHJhIGxvaSBodWEg dmUgbW90IG51b2MgVmlldCBOYW0gbWFuaCBob24sIHRvdCBob24gdmEgdG9jIGRvIHRhbmcgdHJ1 b25nIEdEUCBsb24gaG9uLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0tpZW4tR2lhbmct WGVtLXhldC12dS1raWVuLUtodS1sYW4tYmllbi1UUC1SYWNoLUdpYS83MDA5NzMxNS8xNTcvIFZp ZXQgQmFvIChUaGVvX1RpZW5fUGhvbmcpIDEzLzkvMjAwNywgMDk6MTkgR01UKzcgDQoNClRodSB0 dW9uZzogVnUga2llbiBLaHUgbGFuIGJpZW4gVFAgUmFjaCBHaWEgliBOaGFuIGRhbiBtb2kgbW9u IGNobyBLZXQgbHVhbiBjdWEgVGh1IFR1b25nIA0KDQpEb2FuIFRoYW5oIHRyYSBjdWEgdGhhbmgg dHJhIENoaW5oIHBodSBkYSB4ZW0geGV0IHZ1IDQ3IGhvIGRhbiBraGlldSBuYWkgdmllYyBjaGlu aCANCnF1eWVuIHRodSBob2ksIGdpYWkgdG9hIGRhdCB0YWkgRHUgYW4gKERBKSBLaHUgZG8gdGhp IG1vaSBsYW4gYmllbiBUUC4gUmFjaCBHaWEsIEtpZW4gDQpHaWFuZy4NCg0KKEFuaDogTW90IGdv YyBraHUgbGFuIGJpZW4gVFAuIFJhY2ggR2lhKQ0KDQpUaHVjIGhpZW4geSBraWVuIGNoaSBkYW8g Y3VhIFBobyBUaHUgdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcsIERvYW4gVGhhbmggdHJhIGN1YSAN CnRoYW5oIHRyYSBDaGluaCBwaHUgZG8gb25nIEJ1aSBUaGFuaCBNaW5oLCB0aGFuaCB0cmEgdmll biBWdSA1IGxhbSB0cnVvbmcgZG9hbiBkYSB2ZSANCmxhbSB2aWVjIHRhaSB0aW5oIEtpZW4gR2lh bmcgeHVuZyBxdWFuaCB2dSA0NyBobyBkYW4ga2hpZXUgbmFpIHZpZWMgY2hpbmggcXV5ZW4gdGh1 IA0KaG9pLCBnaWFpIHRvYSBkYXQgdGFpIER1IGFuIChEQSkgS2h1IGRvIHRoaSBtb2kgbGFuIGJp ZW4gVFAuIFJhY2ggR2lhLCBLaWVuIEdpYW5nLiANCg0KS2hpIHRpZXAgeHVjIHZvaSBkb2FuIFRo YW5oIHRyYSBDaGluaCBwaHUsIGRhaSBkaWVuIDQ3IGhvIGRhbiBidWMgeHVjOiBUaW5oIEtpZW4g R2lhbmcgDQpkYSB0aHVjIGhpZW4gZHUgYW4gbGFuIGJpZW4gc2FpIHZvaSB0aW5oIHRoYW4gY2hp IGRhbyBjdWEgQ2hpbmggcGh1IHRhaSBjYWMgUUQgMTE3OCB2YSANCjM5NC4NCg0KVGhlbyBkbywg Y2FjIFFEIG5heSBjaGkgbm9pIERBIGxhbiByYSBiaWVuIDQyMCBoYSBjaHUga2hvbmcgbm9pIGxh eSBkYXQgY3VhIGRhbiB2YSBjaGkgDQpsYXkgNTAwbSB0dSBkZSBxdW9jIHBob25nIHJhIHBoaWEg YmllbiBUYXkgbmh1bmcgdGluaCBsYWkgbGF5IGNhIGRhdCBjdWEgZGFuIHBoaWEgdHJvbmcgZGUg cXVvYyBwaG9uZy4NCg0KQ2hpbmggcXV5ZW4gY29uIGNvIGNhYyBzYWkgcGhhbSBuZ2hpZW0gdHJv bmcga2hhYyBuaHU6IEtob25nIGNvIHF1eWV0IGRpbmggdGh1IGhvaSANCmRhdCBjdWEgZGFuIG5o dW5nIHR1eSB0aWVuIGRlbiBuaGEgZGFuIGNhbSBtb2MgImh1IiBzZSBjdW9uZyBjaGUsIGdpYWkg dG9hOyBHaWEgZGVuIGJ1IA0KY2hpIDUuMDAwZC9tMiwgbmh1bmcgcGhhbiBsbyBiYW4gbGFpIGNo byBuZ3VvaSBraGFjIHR1IDUwMCBuZ2FuIJYgMSB0cmlldSBkb25nL20yIGxhIGtob25nIHRob2Eg ZGFuZy4NCg0KTmdvYWkgcmEsIHF1YSB0cmluaCB0aHVjIGhpZW4gZHUgYW4gKGRhIDEwIG5hbSkg bmh1bmcgdGluaCBraG9uZyBjbyBwaHVvbmcgYW4gYmFvIHZlIA0KaG9hIG1hdSBjaG8gZGFuLCBn YXkgbmdhcCB1bmcsIGhvYSBtYXUgY2hldCwgZG9pIHNvbmcgbmd1b2kgZGFuIHZ1bmcgZHUgYW4g bGFvIGRhbywgYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KQ3VuZyB0aGVvIG5ndW9pIGRhbiwgc2Fp IHBoYW0gbG9uIG5oYXQgbGEgdmllYyBjaHVhIHRodSBob2ksIGJvaSB0aHVvbmcgZGF0IGN1YSBk YW4gDQp4b25nIG5odW5nIGNoaW5oIHF1eWVuIHZhIG5nYW5oIGNodWMgbmFuZyBkYSBwaGFuIGxv IGJhbiBuZW4uIE5nYXkgY2Egbmh1bmcgbmd1b2kgDQpkdW9jIGNhcCBzbyBkbyBjdW5nIGtoaWV1 IG5haSwgdmkgbmhpZXUgbmFtIHF1YSBkYXQgY3VhIGhvIHZhbiBuYW0gdHJlbiBnaWF5LCBubyBu Z2FuIA0KaGFuZyBtdWEgZGF0IHZhbiBwaGFpIHRyYSwgbXVvbiB4YXkgY2FpIG5oYSBkZSBvIGN1 bmcga2hvbmcgZHVvYy4gSGllbiBjbyAyOTQgbG8gZGF0IA0Kdm9pIGNodW5nIGRvIGNhaSBzbyBk byAoY2h1IHlldSBjdWEgY2FuIGJvLCBjb25nIGNodWMpIGNob25nIGxlbiBkYXQgY3VhIGNhYyBo byBkYW4gDQpkYW5nIGtoaWV1IG5haSBub2kgdHJlbi4NCg0KUGhvIENodSB0aWNoIFVCTkQgdGlu aCBLaWVuIEdpYW5nIG9uZyBWYW4gSGEgUGhvbmcgY2hvIHJhbmc6IFRpbmggZGEgbmhpZXUgbGFu IA0Ka2llbSB0cmEgdmEgbmhhbiB0aGF5IGtob25nIGNvIHNhaSBzb3QgbmFvIHRyb25nIHF1YSB0 cmluaCB0aHVjIGhpZW4gREEgS2h1IGRvIHRoaSBtb2kgDQpsYW4gYmllbiBUUC5SYWNoIEdpYSB0 aGVvIGNhYyBRRCBjdWEgVGh1IHR1b25nLiBUdXkgbmhpZW4gb25nIFBob25nIGN1bmcgdGh1YSBu aGFuIA0KY28gc2FpIHRyb25nIGNhY2ggbGFtLCB0cnV5ZW4gZGF0LCB0cmllbiBraGFpLCB2aSBu aHUga2hvbmcgZ2lhbyBRRCB0aHUgaG9pIGRhdCBkZW4gdHVuZyANCmhvIGRhbi4gDQoNCkNvbiBv bmcgQnVpIFRoYW5oIE1pbmggliBUaGFuaCB0cmEgQ2hpbmggcGh1IGxhaSBjaG8gcmFuZzogUUQg MTE3OCBjdWEgQ2hpbmggcGh1IA0KY28gY28gbmhpZXUgZGllbSBjaHVhIGR1b2Mgcm8gcmFuZywg ZGUgbmhhbiBkZW4gaGlldSBuaGFtLg0KDQpEZSBjbyBjYW4gY3UgdHJpbmggQ2hpbmggcGh1LCBk b2FuIFRoYW5oIHRyYSBzZSBjdW5nIHZvaSBuZ2FuaCBjaHVjIG5hbmcgdmEgbmd1b2kgZGFuIA0K ZG8gZGFjIGxhaSB0aHVjIHRlIGRhdCB0cm9uZyB2dW5nIGR1IGFuIGRlIHhlbSB4ZXQsIGtldCBs dWFuLiBWYSBjaGkgY28gQ2hpbmggcGh1IG1vaSBrZXQgDQpsdWFuIGR1b2MgVUJORCB0aW5oIEtp ZW4gR2lhbmcgbGFtIGR1bmcgaGF5IHNhaT8gDQoNCkhvbmcgTGluaA0KDQpbREEgbGFuIGJpZW4g ZHVvYyBuZ3V5ZW4gUGhvIFRodSB0dW9uZyBOZ28gWHVhbiBMb2Mga3kgcGhlIGR1eWV0IHRhaSBR RCAxMTc4LCBuZ2F5IA0KMzAvMTIvMTk5NywgZGllbiB0aWNoIDQyMCBoYS4gRGVuIDIwMTUgYm8g dHJpIGtob2FuZyA1IHZhbiBkYW4uIEtodSB2dWMgbmF5IGRhbmcgcXVpIA0KaG9hY2ggS2h1IGhh bmggY2hpbmggdGFwIHRydW5nIDE2IHRhbmcsIFRydSBzbyBVQk5EIHRpbmggMjAgaGEsIGJlbmgg dmllbiwgdHJ1b25nIA0KaG9jLCBzaWV1IHRoaSwgbmhhIGhhbmcsIGtoYWNoIHNhbiBjYW8gdGFu Zy4uLl0gDQoNCmh0dHA6Ly93d3cuaXRhZXhwcmVzcy5jb20udm4vdGluX2l0YS90YW5fdF9vX2hv bV9uYXkvc19raV9uL3RoYXBfdHVuZ190aF90X25nX25ndXlfbl90X25fZHVuZ192YV9waHVfbmhh bl90aGFtX3BoYXAgMjAvMDkvMjAwNyAzOjI0IHBtICBLaW0gVHV5ZW4gKE5ndW9uOiBUVFhWTikg DQoNClRodSB0dW9uZzogVGFwIGRvYW4gVGFuIFRhbyB0aGFwIHR1bmcgVGh1IHR1b25nIE5ndXll biBUYW4gRHVuZyB2YSBwaHUgbmhhbiB0aGFtIFBoYXAgDQoNCmh0dHA6Ly93d3cuc2dncC5vcmcu dm4vdGhvbmd0aW5jYW51b2MvMjAxMC8xMC8yNDE1NTkvIDI4LzEwLzIwMTAsIDA5OjM3IChHTVQr NykNCg0KRHVuZyBkdSBhbiB4YXkgZHVuZyBkYW8gbmhhbiB0YW8gSGFpIEF1IA0KDQooU0dHUCkg liBVQk5EIHRpbmggS2llbiBHaWFuZyB2dWEgY2hhcCB0aHVhbiBjaHUgdHJ1b25nIGNobyBDb25n IHR5IGNvIHBoYW4gRGF1IA0KdHUgY29uZyBuZ2hpZXAgVGFuIFRhbyAoSVRBQ08pIGR1bmcgdHJp ZW4ga2hhaSAyIGR1IGFuOiBRdXkgaG9hY2ggeGF5IGR1bmcgZGFvIG5oYW4gDQp0YW8gSGFpIEF1 ICh0YWkga2h1IGRvIHRoaSBsYW4gYmllbiBUUCBSYWNoIEdpYSkgdmEgUXV5IGhvYWNoIHhheSBk dW5nIGtodSBjb25nIA0KbmdoaWVwIJYgZG8gdGhpIGNoYXQgbHVvbmcgY2FvIHRhaSBodXllbiBL aWVuIEx1b25nLCBkb25nIHRob2kgY2hhcCBuaGFuIGNobyBJVEFDTyANCmRpZXUgY2hpbmggcXV5 IGhvYWNoIGNhbmcgbnVvYyBzYXUgTmFtIER1IChodXllbiBLaWVuIEhhaSkgZG8geGV0IHRoYXkg a2hvbmcgaGlldSBxdWEuLi4gDQoNCihDdSB0cmkgcXVhbiB0YW06IFZheSBsYSBuZ3VvaSBkYW4g UmFjaCBHaWEgLSBLaWVuIEdpYW5nIHBoYWkgY2hpdSBraG8gc28sIG9hbiB1YyANCmJhbyBuaGll dSBuYW0gdHJvaSBjaGkgdmkgbmh1bmcgZHUgYW4gImtob25nIGhpZXUgcXVhIiBjdWEgY29uZyB0 eSBUYW4gVGFvIG1hICANCmNoaSBIYWkgY3VhIG9uZyB0aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5n IGxhbSBjaHUgdGljaCkgDQoNCmh0dHA6Ly9kYW5sYW1iYW8ud29yZHByZXNzLmNvbS8yMDEwLzEy LzA0L2RhLW4lRTElQkElQjVuZy1raG9uZy10aGFtLW5odW5nLXZhLWMlRTElQkElQTVtLWMlRTEl QkIlQURhLXNpbmgtdmllbi1oJUUxJUJCJTg3LXQlRTElQkElQTFpLWNoJUUxJUJCJUE5Yy8gMDQv MTIvMjAxMCANCg0KT25nIE5ndXllbiBUYW4gRHVuZyBjbyBiYW5nIHRhaSBjaHVjIGx1YXQgDQoN Cmh0dHA6Ly90dG5nYnQud29yZHByZXNzLmNvbS8yMDEwLzA3LzE3L3MlRTElQkIlOTFuZy1jaHVu Zy12JUUxJUJCJTlCaS10aG9uZy10aW4tZGEtY2hpJUUxJUJCJTgxdS8gUC5MLlQuIDctMjAxMCAN Cg0KVGh1IHR1b25nOiBWaWVjIGRpZXUgZG9uZywgYm8gbmhpZW0gb25nIFRydW9uZyBDaGkgVHJ1 bmcgdmFvIGNodWMgdnUgVGh1IHRydW9uZyBUYWkgQ2hpbmggbGEgdmkgcGhhbSBsdWF0IGNvbmcg Y2h1YyANCg0KLSBPbmcgVHJ1b25nIENoaSBUcnVuZyBtb2kgYmkga3kgbHVhdCB2ZSBEYW5nIHRy ZW4gY3VvbmcgdmkgdXkgdmllbiBiYW4gY2FuIHN1IGRhbmc7IHRyb25nIGtoaSBkbyBvbmcgbGFp IHZpIHBoYW0ga3kgbHVhdCB0cmVuIGN1b25nIHZpIGNoaW5oIHF1eWVuIChsYSB0aHUgdHJ1b25n IGJvIFRhaSBjaGluaCkuIFZlIG5ndXllbiB0YWMga2hpIG1vdCBjYW4gYm8sIGNvbmcgY2h1YyBk YSBiaSBreSBsdWF0IHZlIGRhbmcgdGhpIHBoYWkgYmkga3kgbHVhdCBjaGkgaXQgdHVvbmcgZHVv bmcgdmUgbWF0IGNoaW5oIHF1eWVuISBLaG9uZyBybyBCbyB0cnVvbmcgVGFpIGNoaW5oIGRhIGJh biBoYW5oIHF1eWV0IGRpbmgga3kgbHVhdCBuYXkgY2h1YT8gTmV1IGNodWEsIGNvIHZpIHBoYW0g bHVhdCBjb25nIGNodWMga2hvbmc/IFZpIGRpZXUgbGUgZGFuZyBxdWkgZGluaDogZGFuZyBraG9u ZyBsYW0gdGhheSBuaGEgbnVvYyEgDQoNCi0gVGhlbyB0aW4gY3VhIEJhbyBEaWVuIHR1IENoaW5o IHBodSBuZ2F5IDMvNy8yMDEwLCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHZ1YSANCmt5IGNh YyBxdXlldCBkaW5oIGJvIG5oaWVtLCBibyBuaGllbSBsYWkgY28gdGhvaSBoYW4gNSBUaHUgdHJ1 b25nIGNhYyBCbzogR2lhbyBkdWMgdmEgDQpEYW8gdGFvLCBUYWkgY2hpbmgsIE5vaSB2dSwgVHUg cGhhcCB2YSBZIHRlLg0KT25nIFRydW9uZyBDaGkgVHJ1bmcsIFBobyBCaSB0aHUgVGluaCB1eSwg Q2h1IHRpY2ggVUJORCB0aW5oIEJhYyBLYW4sIGR1b2MgYm8gDQpuaGllbSBnaXUgY2h1YyBUaHUg dHJ1b25nIEJvIFRhaSBjaGluaC4NClZpZWMgYm8gbmhpZW0gbmF5LCBtb3QgZGFuZyAiYW4gY29t IHRydW9jIGtlbmcgIiBkYSB2aSBwaGFtIE11YyAyLCBEaWV1IDgyIGN1YSBMdWF0IA0KQ29uZyBj aHVjIHZhIE11YyAyLCBNdWMgMyBjdWEgRGlldSAyNyAtIENhYyBxdXkgZGluaCBsaWVuIHF1YW4g ZGVuIGNhbiBibywgY29uZyBjaHVjIA0KYmkga3kgbHVhdCBjdWEgIE5naGkgZGluaCAzNS8yMDA1 L05ELUNQIHZlIHZpZWMgeHUgbHkgY2FuIGJvIGNvbmcgY2h1Yy4NCg0KTXVjIDIgY3VhIERpZXUg MjcgcXV5IGRpbmg6ICJDYW4gYm8gY29uZyBjaHVjIGJpIGt5IGx1YXQgYmFuZyBtb3QgdHJvbmcg Y2FjIGhpbmggdGh1YyANCnR1IGtoaWVuIHRyYWNoIGRlbiBjYWNoIGNodWMgdGhpIGtob25nIGR1 b2MgbmFuZyBuZ2FjaCBob2FjIGJvIG5oaWVtIHZhbyBjYWMgY2h1YyB2dSANCmNhbyBob24gdHJv bmcgdGhvaSBoYW4gaXQgbmhhdCBsYSBtb3QgbmFtLCBrZSB0dSBraGkgY28gcXV5ZXQgZGluaCBr eSBsdWF0Ii4NCg0KTXVjIDMgY3VhIERpZXUgMjcgcXV5IGRpbmg6ICJDYW4gYm8sIGNvbmcgY2h1 YyBiaSB4dSBseSBreSBsdWF0IGJhbmcgbW90IHRyb25nIGNhYyANCmhpbmggdGh1YyBraGllbiB0 cmFjaCwgY2FuaCBjYW8sIGhhIGJhYyBsdW9uZywgaGEgbmdhY2ggdGhpIHR1eSB0aGVvIHRpbmgg Y2hhdCwgbXVjIGRvIHZpIA0KcGhhbSBjbyB0aGUgZHVvYyBibyB0cmkgY29uZyB0YWMgY3UgaG9h YyBjaHV5ZW4gY29uZyB0YWMga2hhYy4uLiINCg0KTXVjIDIgY3VhIERpZXUgODIgY3VhIEx1YXQg Q29uZyBjaHVjIDIwMDggYmFuIGhhbmggY2FjIHF1eSBkaW5oIGtoYWMgbGllbiBxdWFuIGRlbiAN CmNhbiBibywgY29uZyBjaHVjIGJpIGt5IGx1YXQ6ICJDYW4gYm8sIGNvbmcgY2h1YyBiaSBreSBs dWF0IHR1IGtoaWVuIHRyYWNoIGRlbiBjYWNoIGNodWMgDQp0aGkga2hvbmcgdGh1YyBoaWVuIHZp ZWMgbmFuZyBuZ2FjaCwgcXV5IGhvYWNoLCBkYW8gdGFvLCBibyBuaGllbSB0cm9uZyB0aG9pIGhh biAxMiANCnRoYW5nLCBrZSB0dSBuZ2F5IHF1eWV0IGRpbmgga3kgbHVhdCBjbyBoaWV1IGx1Yy4u LiINCg0KVGhlbyB0aW4gY3VhIFZpZXRuYW1uZXQgZHVhIG5nYXkgMS85LzIwMDk6ICJTYW5nIG5h eSAoMS85LzIwMDkpLCBsYW5oIGRhbyBVeSBiYW4gDQpLaWVtIHRyYSBUcnVuZyB1b25nIGxhbSB2 aWVjIHZvaSBCYW4gVGh1b25nIHZ1IFRpbmggdXkgQmFjIEthbiBkZSBjb25nIGJvIHF1eWV0IA0K ZGluaCBraGllbiB0cmFjaCBQaG8gQmkgdGh1IFRpbmggdXksIENodSB0aWNoIFVCTkQgdGluaCBU cnVvbmcgQ2hpIFRydW5nLg0KVGhlbyBRdXlldCBkaW5oIHNvIDE2MzQgliBRRC9VQktUVFcgbmdh eSA3LzgvMjAwOSwgdHUgdGhhbmcgNC8yMDAyIGRlbiB0aGFuZyANCjMvMjAwOCwgdHJlbiBjdW9u ZyB2aSBVeSB2aWVuIEJhbiBjYW4gc3UgRGFuZywgVGh1IHRydW9uZyBCbyBUYWkgY2hpbmgsIG9u ZyBUcnVvbmcgDQpDaGkgVHJ1bmcgZGEgY28ga2h1eWV0IGRpZW0sIHZpIHBoYW0gdHJvbmcgdmll YyBjaGkgZGFvIGFwIG1hIGhhbmcgaG9hIGRvaSB2b2kgbWF0IA0KaGFuZyBkYXUgdGh1IHRydXll biBoaW5oIGt5IHRodWF0IHNvOyBjaG8gaG9hbiB0aHVlIG5oYXAga2hhdSBkb2kgdm9pIGNhYyBk b2FuaCBuZ2hpZXAgDQpuaGFwIGtoYXUgaGFuZyBob2EgZGUga2luaCBkb2FuaCwgc2F1IGRvIHh1 YXQgdmFvIGtodSBjaGUgeHVhdCB2YSB4dSBseSBrZXQgcXVhIHRoYW5oIA0KdHJhIGRvaSB2b2kg Q29uZyB0eSBjbyBwaGFuIFRhbiBUYW8uDQoNCk9uZyBUcnVuZyBjdW5nIGt5IGJhbiBoYW5oIENv bmcgdmFuIHNvIDg4NDIvQlRDLVRDVCBodW9uZyBkYW4gZGFuZyBreSBsYWkgdGhvaSANCmdpYW4g YmF0IGRhdSBodW9uZyB1dSBkYWkgbWllbiwgZ2lhbSB0aGUgdGh1IG5oYXAgZG9hbmggbmdoaWVw OyB0aGlldSBjaGkgZGFvLCBraWVtIHRyYSANCnZpZWMgVG9uZyBjdWMgVGh1ZSB4b2Egbm8gY2hv IG1vdCBzbyBkb2FuaCBuZ2hpZXAgdmEgZG9uZyB5IHRyb25nIHZpZWMgeG9hIG5vIGNobyANCk5o YSBtYXkgdGh1b2MgbGEgQ3V1IExvbmc7IGNoYW0gaHVvbmcgZGFuIHRodWMgaGllbiBjaGluaCBz YWNoIHV1IGRhaSB0aGVvIEx1YXQgDQpUaHVlIHRodSBuaGFwIGRvYW5oIG5naGllcCBzdWEgZG9p IGNvIGhpZXUgbHVjIHR1IDEvMS8yMDA0LCBkYW4gZGVuIG1vdCBzbyBkb2FuaCANCm5naGllcCBs b2kgZHVuZyBsYW0gdHJhaSwgdmkgcGhhbSBwaGFwIGx1YXQgYmkga2hvaSB0byB2dSBhbiwga2hv aSB0byBiaSBjYW4sIHRyb25nIGRvIGNvIA0KY2FuIGJvIGN1YSBCbyBUYWkgY2hpbmguDQpOaHVu ZyBraHV5ZXQgZGllbSwgdmkgcGhhbSBuZXUgdHJlbiBsYW0gdGhhdCB0aHUgbmdhbiBzYWNoIE5o YSBudW9jIHZvaSBzbyB0aWVuIGxvbiwgDQphbmggaHVvbmcgZGVuIHV5IHRpbiBjdWEgQm8gVGFp IGNoaW5oLi4uIg0KDQpOaHUgdmF5LCB0aG9pIGhpZXUgdGh1IGx5IGt5IGx1YXQgY3VhIG9uZyBU cnVvbmcgQ2hpIFRydW5nIHR1IDEvOS8yMDA5IGRlbiBuYXkgY2h1YSB0b2kgDQoxIG5hbSBuaHVu ZyBkYSBkdW9jIGJvIG5oaWVtIGN1b25nIHZpIFRodSB0cnVvbmcgQm8gVGFpIGNoaW5oIGxhIHZp IHBoYW0gTmdoaSBkaW5oIA0KMzUvMjAwNS9ORC1DUCB2YSBMdWF0IENvbmcgY2h1YyBuYW0gMjAw OCEgQm9pIHZpOiBLaGkgZHVvYyBibyBuaGllbSBjaHVjIHZ1IENodSANCnRpY2ggdGluaCBCYWMg S2FuIG9uZyBUcnVvbmcgQ2hpIFRydW5nIGR1b2MgaHVvbmcgcGh1IGNhcCBjaHVjIHZ1IGxhIDEs MjU7IG5odSB2YXkgDQpraGkgb25nIFRydW9uZyBDaGkgVHJ1bmcgZHVvYyBibyBuaGllbSBUaHUg dHJ1b25nIEJvIFRhaSBjaGluaCwgaGUgc28gcGh1IGNhcCB0cmFjaCANCm5oaWVtIGR1b2MgbmFu ZyBsZW4gMSwzLi4uOyAoUUQgMTAwMi9R0C1UVGcgZGlldSBkb25nLCBibyBuaGllbSBvbmcgVHJ1 b25nIENoaSBUcnVuZyAtIGNodSB0aWNoIFVCTkQgdGluaCBCYWMgS2FuLCBnaXUgY2h1YyBUaHUg dHJ1b25nIGJvIFRhaSBjaGluaCBkbyANCm9uZyBOZ3V5ZW4gVGFuIER1bmcga3kgbmdheSAzMC8w Ni8yMDEwLCBoaWV1IGx1YyBrZSB0dSBuZ2F5IGt5KS4gIA0KDQpUaHUgMiwgdmllYyBibyBuaGll bSAgb25nIFRydW9uZyBDaGkgVHJ1bmcgdmFvIGNodWMgdnUgVGh1IHRydW9uZyBCbyB0YWkgY2hp bmggbm9pIA0KbWEgb25nIFRydW9uZyBDaGkgVHJ1bmcgIGRhIHZpIHBoYW0gdmEgYmkga3kgbHVh dDsgeGV0IHRoZW8gdGluaCBjaGF0IHZpIHBoYW0gbGEgbmdoaWVtIA0KdHJvbmc6ICJsYW0gdGhh dCB0aHUgbmdhbiBzYWNoIE5oYSBudW9jIHZvaSBzbyB0aWVuIGxvbiwgYW5oIGh1b25nIGRlbiB1 eSB0aW4gY3VhIEJvIFRhaSANCmNoaW5oIiAtIGx5IHJhIG9uZyBUcnVvbmcgQ2hpIFRydW5nIHBo YWkgZHVvYyBkaWV1IGNodXllbiBzYW5nIGNvbmcgdGFjIGtoYWMgbW9pIGR1bmcgDQp2b2kgY2Fj IHF1eSBkaW5oIGN1YSBOZ2hpIGRpbmggMzUgdmEgTHVhdCBDb25nIGNodWMuIA0KDQpodHRwOi8v d3d3LmJhb21vaS5jb20vSW5mby9MdWF0LVBob25nLWNob25nLXRoYW0tbmh1bmctY3VuZy1iaS10 cmVvLzE0NC81MjEzNDE2LmVwaSBTYWlnb25UaW1lcyANCg0KVGh1IHR1b25nOiBMdWF0IFBob25n IGNob25nIHRoYW0gbmh1bmcgY3VuZyBiaSB0cmVvDQoNCihUQktUU0cpIC0gTHVhdCBQaG9uZyBj aG9uZyB0aGFtIG5odW5nIGRhIGR1b2MgUXVvYyBob2kgdGhvbmcgcXVhIHR1IG5hbSAyMDA1LiAN ClZvaSA3IGNodW9uZywgOTIgZGlldSBraG9hbiwgTHVhdCBQaG9uZyBjaG9uZyB0aGFtIG5odW5n IGRhIHF1eSBkaW5oIGtoYSBuaGlldSBiaWVuIA0KcGhhcCBuaGFtIHBob25nIHZhIGNob25nIHRo YW0gbmh1bmcgLSBtb3QgdHJvbmcgbmh1bmcgcXVvYyBuYW4gbyBudW9jIHRhIGhpZW4gbmF5Lg0K THVhdCBnaWEgVnUgWHVhbiBUaWVuICgqKSANCg0KVHV5IG5oaWVuLCBuYW0gbmFtIHRyb2kgcXVh LCBkdSBMdWF0IFBob25nIGNob25nIHRoYW0gbmh1bmcgdmFuIGNvIGhpZXUgbHVjIHRoaSBoYW5o IA0Kbmh1bmcgaGllbiB0dW9uZyB0aGFtIG5odW5nIGxhaSBraG9uZyBoZSBnaWFtLiBDbyByYXQg bmhpZXUgbmd1eWVuIG5oYW4gZGFuIGRlbiB0aW5oIA0KdHJhbmcgbmF5LCBzb25nIG1vdCB0cm9u ZyBuaHVuZyBuZ3V5ZW4gbmhhbiBxdWFuIHRyb25nIHBoYWkga2UgZGVuIGxhIGtoYSBuaGlldSBx dXkgDQpkaW5oIHRyb25nIEx1YXQgUGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBkYW5nLi4uIGJpIHRy ZW8uDQoNClRydW9jIGhldCBjb25nIGtoYWksIG1pbmggYmFjaCBsYSBuaGFuIHRvIGRhYyBiaWV0 IHF1YW4gdHJvbmcgZGUgcGhvbmcgbmd1YSB0aGFtIA0Kbmh1bmcuIFZpIHZheSwgTHVhdCBQaG9u ZyBjaG9uZyB0aGFtIG5odW5nIGRhIGRhbmggdHUgZGlldSAxMSBkZW4gZGlldSAzMyBxdXkgZGlu aCANCnZlIG5ndXllbiB0YWMgdmEgbm9pIGR1bmcgY29uZyBraGFpLCBtaW5oIGJhY2ggdHJvbmcg aG9hdCBkb25nIGN1YSBjbyBxdWFuLCB0byBjaHVjLCANCmRvbiB2aSwgdmUgaGluaCB0aHVjIGNv bmcga2hhaSwgdmUgY2FjIGxpbmggdnVjIHBoYWkgY29uZyBraGFpLiANCg0KUXV5IGRpbmggY3Vh IHBoYXAgbHVhdCBkYSBybyB2YSBkYXkgZHUuIFNvbmcsIHJhdCBkYW5nIHRpZWMsIHBoYW4gbG9u IG5odW5nIHF1eSBkaW5oIGRvIA0KY2hpIHRvbiB0YWkgdHJlbiB2YW4gYmFuIGx1YXQuIENoYW5n IGhhbiwgY2h1YSBiYW8gZ2lvIG5ndW9pIGRhbiBkdW9jIGRvYyBtb3QgYmFvIGNhbyANCmNvbmcg a2hhaSBuYW8gdmUgdmllYyBtdWEgc2FtIGNvbmcgdmEgeGF5IGR1bmcgY28gYmFuIGN1YSBjYWMg Y28gcXVhbiBjb25nIHF1eWVuLiANCkN1bmcgY2h1YSBiYW8gZ2lvIGNvIG1vdCBiYW8gY2FvIGNv bmcga2hhaSB2ZSB2aWVjIHN1IGR1bmcgZGF0LCB2ZSBxdWFuIGx5IGR1IGFuIGRhdSANCnR1IHhh eSBkdW5nLiBWaWVjIGNvbmcga2hhaSwgbWluaCBiYWNoIHRyb25nIHF1YW4gbHkgZG9hbmggbmdo aWVwIGN1YSBOaGEgbnVvYyBsYWkgDQpjYW5nLi4uIHhhIHZvaSBob24gbnVhLiBTdSBhbSB0aGFt IGRvIHZvIGN1YSBWaW5hc2hpbiBsYSBtb3QgdmkgZHUgc2luaCBkb25nIG5oYXQuDQoNClRodSBo YWksIGRpZXUgMzUgTHVhdCBQaG9uZyBjaG9uZyB0aGFtIG5odW5nIHF1eSBkaW5oIHZlIGtpZW0g dHJhIHZhIHh1IGx5IHZpIHBoYW0gdmUgDQpjaGUgZG8sIGRpbmggbXVjLCB0aWV1IGNodWFuIHF1 eSBkaW5oOiAiTmd1b2kgY28gaGFuaCB2aSB2aSBwaGFtIHF1eSBkaW5oIHZlIGNoZSBkbywgDQpk aW5oIG11YywgdGlldSBjaHVhbiBwaGFpIGJpIHh1IGx5IHRoZW8gcXV5IGRpbmggY3VhIHBoYXAg bHVhdCIgdmEgIk5ndW9pIGNobyBwaGVwIHN1IA0KZHVuZyB2dW90IGNoZSBkbywgZGluaCBtdWMs IHRpZXUgY2h1YW4gcGhhaSBib2kgdGh1b25nIHBoYW4gZ2lhIHRyaSBtYSBtaW5oIGNobyBwaGVw IA0Kc3UgZHVuZyB2dW90IHF1YTsgbmd1b2kgc3UgZHVuZyB2dW90IGNoZSBkbywgZGluaCBtdWMs IHRpZXUgY2h1YW4gY28gdHJhY2ggbmhpZW0gbGllbiANCmRvaSBib2kgdGh1b25nIHBoYW4gZ2lh IHRyaSBkdW9jIHN1IGR1bmcgdnVvdCBxdWEuLi4iLiANCg0KVHJvbmcgdGh1YyB0ZSwgcXV5IGRp bmggbmF5IGN1bmcgYmkuLi4gbGFuZyBxdWVuLiBUdSBuYW0gMjAwNiBkZW4gbmF5LCBuYW0gbmFv IEtpZW0gDQp0b2FuIE5oYSBudW9jIGN1bmcgY29uZyBibyBrZXQgcXVhIGtpZW0gdG9hbiB2YSBj aG8gYmlldCBzbyB0aWVuIGNoaSBzYWkgY2hlIGRvIHRyb25nIA0KY2FjIGJvLCBuZ2FuaC4uLiBs ZW4gdG9pIGhhbmcgY2h1YyB0aSBkb25nLiBOaHVuZyBjYSBuZ3VvaSBjaGkgdmEgbmd1b2kgY2hv IHBoZXAsIGNodWEgDQpjbyBhaSBiaSAieHUgbHkgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0 Ii4NCg0KVGh1IGJhLCBuaHVuZyBxdXkgZGluaCB2ZSBtaW5oIGJhY2ggdGFpIHNhbiwgdGh1IG5o YXAgZHVvYyBxdXkgZGluaCB0dSBkaWV1IDQ0IGRlbiANCmRpZXUgNTMgY3VuZyBkYSB2YSBkYW5n IGR1b2MgdGh1YyBoaWVuICJudWEgdm9pIi4gTmd1eWVuIG5oYW4gcXVhbiB0cm9uZyBuaGF0IGRh biBkZW4gDQp0aW5oIHRyYW5nICJudWEgdm9pIiB0cm9uZyB0aHVjIGhpZW4gcXV5IGRpbmggdmUg dmFuIGRlIG5heSBsYSB2aWVjIGtlIGtoYWkgdGFpIHNhbiB2YSB0aHUgDQpuaGFwIGN1YSBjYWMg cXVhbiBjaHVjLCBjb25nIGNodWMsIHZpZW4gY2h1YyB0aHVvYyBkaWVuIHBoYWkga2Uga2hhaSBs YWkga2hvbmcgZHVvYyANCmNvbmcga2hhaS4gS2hvYW4gMSBkaWV1IDUwIEx1YXQgUGhvbmcgY2hv bmcgdGhhbSBuaHVuZyBxdXkgZGluaDogIktoaSBjbyB5ZXUgY2F1IHZhIA0KdGhlbyBxdXlldCBk aW5oIGN1YSBjbyBxdWFuLCB0byBjaHVjIGNvIHRoYW0gcXV5ZW4sIGJhbiBrZXQgbHVhbiB2ZSBz dSBtaW5oIGJhY2ggdHJvbmcgDQprZSBraGFpIHRhaSBzYW4gZHVvYyBjb25nIGtoYWkgdGFpIGNh YyBkaWEgZGllbSBzYXUgZGF5Li4uIi4gTmh1IHZheSwgdmllYyBrZSBraGFpIHRhaSBzYW4sIA0K dGh1IG5oYXAgdmUgdGh1YyBjaGF0IGtob25nIGNvIHRhYyBkdW5nIGdpIGRlIG5oYW4gZGFuIGdp YW0gc2F0IHRodSBuaGFwIGN1YSBuaHVuZyBkb2kgDQp0dW9uZyBjYW4gZ2lhbSBzYXQuIA0KSG9u IG51YSwgdmllYyBrZSBraGFpIG1vdCBjYWNoIGhpbmggdGh1YyBjdW5nIGtob25nIGNobyBiaWV0 IGR1b2Mgbmd1b24gZ29jIG5odW5nIA0Ka2hvYW4gdGh1IG5oYXAgYmF0IG1pbmggY3VhIG5odW5n IGtlIHRoYW0gbmh1bmcuIA0KDQpUaHUgdHUsIHF1eSBkaW5oIHZlIGNoZSBkbyB0cmFjaCBuaGll bSBjdWEgbmd1b2kgZHVuZyBkYXUgY28gcXVhbiwgdG8gY2h1YywgZG9uIHZpIGtoaSANCmRlIHhh eSByYSB0aGFtIG5odW5nIGN1bmcgZGFuZyB0cm9uZyB0aW5oIHRyYW5nICJkYW5oIHRyb25nLCBi byBkdWkiLiBLaG9uZyBpdCB2dSB0aGFtIA0Kbmh1bmcgbmdoaWVtIHRyb25nIHhheSByYSBuaHVu ZyBuZ3VvaSBkdW5nIGRhdSBjbyBxdWFuIHZhbiB1bmcgZHVuZyB0YWkgdmkuIA0KDQpUaHUgbmFt LCBtdWMgNiBjaHVvbmcgSUkgTHVhdCBQaG9uZyBjaG9uZyB0aGFtIG5odW5nIHF1eSBkaW5oIHZl IGNhaSBjYWNoIGhhbmggDQpjaGluaCwgZG9pIG1vaSBjb25nIG5naGUgcXVhbiBseSB2YSBwaHVv bmcgdGh1YyB0aGFuaCB0b2FuIG5oYW0gcGhvbmcgbmd1YSB0aGFtIA0Kbmh1bmcuIENhaSBjYWNo IGhhbmggY2hpbmggbGEgbGluaCB2dWMgZHVvYyB0cmllbiBraGFpIHJhbSByby4gU29uZywga2V0 IHF1YSB0aHVjIHN1IGhheSANCmNvbiByYXQga2hpZW0gdG9uLiBWaWVjIHRhbmcgY3VvbmcgYXAg ZHVuZyBraG9hIGhvYywgY29uZyBuZ2hlIHRyb25nIHF1YW4gbHkgY3VuZyBkaWVuIA0KcmEgcmF0 IGNoYW0gY2hhcC4gDQoNClF1YW4gdHJvbmcgaG9uLCBkaWV1IDU4IEx1YXQgUGhvbmcgY2hvbmcg dGhhbSBuaHVuZyBxdXkgZGluaCB2ZSBkb2kgbW9pIHBodW9uZyANCnRodWMgdGhhbmggdG9hbiB2 b2kgbm9pIGR1bmcgdGhhbmggdG9hbiBxdWEgdGFpIGtob2FuIHZvaSBjYWMga2hvYW4gY2hpIG5n YW4gc2FjaCBuaGEgDQpudW9jLiBLaW5oIG5naGllbSB0dSBjYWMgbnVvYyBwaGF0IHRyaWVuIGNo byB0aGF5LCBoYW4gY2hlIHRoYW5oIHRvYW4gYmFuZyB0aWVuIG1hdCBsYSANCmJpZW4gcGhhcCBk YWMgYmlldCBxdWFuIHRyb25nIGRlIHBob25nIG5ndWEgdGhhbSBuaHVuZywgdHJvbiBsYXUgdGh1 ZS4gVHV5IG5oaWVuLCBkYSANCm5hbSBuYW0gdHUgbmdheSBMdWF0IFBob25nIGNob25nIHRoYW0g bmh1bmcgY28gaGlldSBsdWMsIHF1eSBkaW5oIG5ldSB0cmVuIHZhbiBjaGkgDQpsYS4uLiBxdXkg ZGluaCB0cmVuIGdpYXkuIEtoaSB2aWVjIHN1IGR1bmcgdGllbiBtYXQgY29uIHR1IGRvIG5odSBo aWVuIG5heSB0aGkgdmllYyAia2llbiANCnF1eWV0IGRhdSB0cmFuaCBwaG9uZyBjaG9uZyB0aGFt IG5odW5nIiBzZSBtYWkgbWFpIGNoaSBsYSBraGF1IGhpZXUgbWEgdGhvaS4gDQoNClZhbiBkZSBx dWFuIHRyb25nIGxhLCBhaSBjbyBkdSBkdW5nIGtoaSBkZSBxdXlldCBkaW5oIGFwIGR1bmcgY2Fj IGJpZW4gcGhhcCBjdW5nIHJhbiBuYXk/DQoNCigqKSBDaHUgdGljaCBIRFRWIC0gQ29uZyB0eSBU dSB2YW4gVkZBTSBWaWV0IE5hbSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDMwLzIwMTAwNzIxMDAxNTU5LmFzcHggMjEvMDcvMjAxMCAwOjE2IA0KDQpDaHVh IGtob2kgdG8gdnUgYW4gaGluaCBzdSB0YWkgVGFwIGRvYW4gVmluYXNoaW4gdmkgY2h1YSBuaGFu IGR1b2MgaG8gc28gdHUgVUIgS2llbSB0cmEgVC5VICghPykgDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOC8yMDEwMDcwOTAxMDYyMy5hc3B4IFRoYWkgU29u IDA5LzA3LzIwMTAgMTowNiANCg0KVGh1IHR1b25nOiBYdSBseSBhbiB0aGFtIG5odW5nIHF1YSBj aGFtICAgDQoNCk1vdCB0cm9uZyBuaHVuZyBoYW4gY2hlIGxvbiBuaGF0IHRyb25nIGNvbmcgdGFj IFBDVE4gZHVvYyBuaGlldSBkYWkgYmlldSBwaGFuIGFuaCBsYSB2aWVjIHh1IGx5IGFuIHRoYW0g bmh1bmcgcXVhIGNoYW0uIA0KT25nIER1b25nIFRoYW5oIEJhYywgUGhvIGNoYW5oIHZhbiBwaG9u ZyBUcnVuZyB1b25nIERhbmcsIGR1YSByYSB0aG9uZyBrZTogdHUga2hpIHBoYXQgaGllbiwgZGll dSB0cmEgY2hvIHRvaSB4ZXQgeHUgDQptb3QgdnUgdGhhbSBuaHVuZyBuaGFuaCBuaGF0IGN1bmcg cGhhaSBtYXQgMTIgdGhhbmcsIGNoYW0gbmhhdCA1MCB0aGFuZywgdGluaCB0cnVuZyBiaW5oIGxh IDMwIHRoYW5nLiANCg0KIk5odSB2YXkgbGEgY2hhbSBxdWEsIHZ1YSBraG9uZyBkYXAgdW5nIGR1 b2MgeWV1IGNhdSBjdWEgY3VvYyBkYXUgdHJhbmggY2hvbmcgdGhhbSBuaHVuZywgdnVhIGdheSBy YSBzdSBob2FpIG5naGkgDQp0cm9uZyBuaGFuIGRhbiIgKC0gT25nIER1b25nIFRoYW5oIEJhYywg UGhvIGNoYW5oIHZhbiBwaG9uZyBUcnVuZyB1b25nIERhbmcgY2hvIGJpZXQuKQ0KDQotIE1vdCBz byB2dSB2aWVjIGtlbyBkYWkgbmhpZXUgbmFtIHZhICJkYSBkaSBkYSBsYWkiIGdpdWEgY2FjIGNv IHF1YW4gdG8gdHVuZyBkbyBxdWFuIGRpZW0ga2hhYyBiaWV0LiBOZ3V5ZW4gbmhhbiANCmxhIGRv IGNvIGNoZSBwaG9pIGhvcCBob2FjIHRoaWV1IGNhYyBjb25nIGN1IGRlIGRpbmggdGluaCwgZGlu aCBsdW9uZyB2dSBhbi4NCg0KLSBDaHVhIHRoYW5oIGxhcCBkdW9jIHRydW5nIHRhbSBnaWFtIGRp bmggcXVvYyBnaWEgbmVuIHJhdCB2dW9uZyB0cm9uZyB2aWVjIGdpYW0gZGluaCB0aGlldCBoYWkg Y2FjIHZ1IGFuIHRoYW0gbmh1bmcgbG9uLiANCg0KLSBWdSBhbiB0aWV1IGN1YyB0YWkgQ29uZyB0 eSB4YW5nIGRhdSBoYW5nIGtob25nIGtob2kgdG8gdHUgbmFtIDIwMDQgbmh1bmcga2VvIGRhaSBk ZW4gbmF5IHZpIGNvIG5oaWV1IGtldCBxdWEgZ2lhbSBkaW5oIGtoYWMgbmhhdS4gDQoNCi0gdnUg bXVhIGJhbiAzIHRyaWV1IGNvIHBoaWV1IHhheSByYSB0YWkgTmdhbiBoYW5nIENvbmcgdGh1b25n IFZOLCBjdW5nIGRvIG5oaWV1IHkga2llbiBraGFjIG5oYXUgdmUgbXVjIGRvIHRoaWV0IGhhaSBu ZW4gZGVuIG5heSBjaHVhIHRoZSB0aHVjIGhpZW4gY2FjIGJ1b2MgdG8gdHVuZyBjdW9pIGN1bmcu IA0KDQotIFZpZWMgZ2lhbSBzYXQgaG9hYyBjbyBjaGUgcXVhbiBseSB0cm9uZyBtb3Qgc28gbGlu aCB2dWMga2luaCB0ZSBoaWVuIG5heSBkYW5nIHRhbyByYSBuaGlldSBrZSBobyBjaG8gdGhhbSBu aHVuZywgDQp0cm9uZyBkbyB0aGUgaGllbiBybyB0YWkgY2FjIHRhcCBkb2FuLCB0b25nIGNvbmcg dHkgbmhhIG51b2MuDQoNCi0gVGhvaSBnaWFuIHF1YSB2aWVjIHh1IGx5IHRyYWNoIG5oaWVtIG5n dW9pIGR1bmcgZGF1IHZhbiBjb24gcmF0IGhhbiBjaGUgdmEgY2h1YSBuZ2hpZW0uIFZpZWMgeHUg bHkgdGhlbyBraWVuIG5naGkgDQpjdWEgY28gcXVhbiB0aGFuaCB0cmEgaG9hYyBraWVtIHRvYW4g bmhhIG51b2MgY29uIGJpIHhlbSBuaGUuIA0KDQotIFBobyB0b25nIEtpZW0gdG9hbiBOaGEgbnVv YyAtIG9uZyBIb2FuZyBIb25nIExhYywgY2hvIGJpZXQ6ICJUcm9uZyBoYWkgbmFtIHF1YSwgY2h1 bmcgdG9pIGRhIGNodXllbiBjbyBxdWFuIGNodWMgbmFuZyANCjMtNCB2dSBjbyBkYXUgaGlldSBz YWkgcGhhbSwgdGhhbSBuaHVuZywgbmh1bmcgdmllYyB4dSBseSBkZW4gZGF1IHRoaSBjaHVuZyB0 b2kgY3VuZyBraG9uZyBkdW9jIHJvIi4gDQoNCiogTmhpZXUgdGFwIGRvYW4gImh1b25nIG5oYW0i IHV1IGRhaSB0dSBDaGluaCBwaHUgDQoNCk9uZyBIb2FuZyBIb25nIExhYyAtIFBobyB0b25nIEtp ZW0gdG9hbiBOaGEgbnVvYywgY2hvIGJpZXQ6IA0KDQotIDYgdGhhbmcgZGF1IG5hbSAyMDEwLCBj byBxdWFuIEtpZW0gdG9hbiBOaGEgbnVvYyBkYSBrZXQgdGh1YyA1MCBjdW9jIGtpZW0gdG9hbiwg cXVhIGRvIGtpZW4gbmdoaSB4dSBseSBzYWkgcGhhbSB2ZSANCnRhaSBjaGluaCB2b2kgc28gdGll biBsZW4gdG9pIHRyZW4gMTggbmdhbiB0aSBkb25nLiANCg0KLSBEYW5nIGNodSB5LCBraWVtIHRv YW4gTmhhIG51b2MgZGEgcGhhdCBoaWVuIGtoYSBuaGlldSB0cnVvbmcgaG9wIGh1b25nIHNhaSBj aGluaCBzYWNoIHRyb25nIGtodW9uIGtobyB0aHVjIGhpZW4gY2FjIA0KY2h1b25nIHRyaW5oIGhv IHRybyBjaG9uZyBzdXkgZ2lhbSBraW5oIHRlIHRoZW8gTmdoaSBxdXlldCBzbyAzMCBjdWEgQ2hp bmggcGh1LiBDYWMgY2hpbmggc2FjaCBuYXkgY2hpIHV1IHRpZW4gY2hvIGNhYyBkb2FuaCBuZ2hp ZXAgdnVhIHZhIG5obyBuaHVuZyBkYSBjbyBraG9uZyBpdCB0YXAgZG9hbiwgdG9uZyBjb25nIHR5 IDkwLCA5MSBjdW5nIGR1b2MgaHVvbmc7IGN1IHRoZTogDQoNCkNvbmcgdHkgQ1AgdGFpIGJhbyBo aWVtIGR1b2MgbWllbiBnaWFtIDE2IHRpIGRvbmc7IA0KVG9uZyBjb25nIHR5IGRhdSB0dSB2YSBr aW5oIGRvYW5oIHZvbiBuaGEgbnVvYyAoU0NJQykgZHVvYyBtaWVuIGdpYW0gMzUgdGkgZG9uZzsN ClRvbmcgY29uZyB0eSBjb25nIG5naGllcCB4aSBtYW5nIGR1b2MgbWllbiBnaWFtIDIxIHRpIGRv bmcuLi4gDQoNCktpZW0gdG9hbiBOaGEgbnVvYyBkZSBuZ2hpIGNhYyBjbyBxdWFuIHNvbSBsYW0g cm8gbmh1bmcgc2FpIHBoYW0gbmdoaWVtIHRyb25nIG5heS4gDQoNCi0NCmh0dHA6Ly92aWV0bmFt bmV0LnZuL2NoaW5odHJpLzIwMDgvMTIvODE4MzQ3LyAwODozOSwgMTMvMTIvMjAwOCAoR01UKzcp DQoNClRodSB0dW9uZzogVmFuIHRoaWV1IGNoZSB0YWkgYmFvIHZlIG5ndW9pIHRvIGNhbyB0aGFt IG5odW5nIA0KDQpEYW4ga2hvbmcgZGFtIHRvIGNhbyB0aGFtIG5odW5nIHZpIHNvIGJpIHRyYSB0 aHUgDQpUaGVvIGRpZXUgdHJhIHRhaSA5IHRpbmggZG8gVHJ1bmcgdGFtIE5naGllbiBjdXUgcGhh dCB0cmllbiBobyB0cm8gY29uZyBkb25nIA0KKENFQ09ERVMpIHRodW9jIExIIGNhYyBIb2kgS2hv YSBob2MgdmEgS3kgdGh1YXQgVmlldCBOYW0gKFZVU1RBKSB2YSBEU1EgUGhhbiANCkxhbiB0aHVj IGhpZW4sIG5oaWV1IG5ndW9pIGRhbiBuaGFuIGJpZXQgZHVvYyBjYWMgaGFuaCB2aSB0aGFtIG5o dW5nIGN1YSBuaHVuZyBuZ3VvaSANCmNvIGNodWMsIGNvIHF1eWVuIG5odW5nIGhhdSBoZXQga2hv bmcgZGFtIHRvIGNhbyB2aSBzbyBiaSB0cmEgdGh1LiAgIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0u dmlldG5hbW5ldC52bi8yMDEwLTExLTIyLXBoYWktY2hpLWx1Yy1uYXktY28tb25nLXNhdS1kYW4g VGFjIGdpYTogR1MgVHVvbmcgTGFpIA0KDQpDYW4gbGFtIHRpbmggdGhhbiBTYXUgRGFuISANCg0K VHJvbmcgbmh1bmcgZGllbiBiaWVuIGRvbiBkYXAgdHJ1b2MgdGhlbSBEYWkgaG9pIFhJLCBkYXkg bGEgY2F1IG5vaSBiYXQgcmEgZ2l1YSBuaHVuZyBuZ3VvaSBjdW5nIG1vdCBtb2kgYmFuIGtob2Fu IHRydW9jIHZhbiBudW9jLiANCg0KTFRTOiBOaGFuIG5nYXkgc2luaCBjbyBUaHUgdHVvbmcgVm8g VmFuIEtpZXQsIEdTIFR1b25nIExhaSBjbyBiYWkgdmlldCAiUGhhaSBjaGkgbHVjIG5heSBjbyBv bmcgU2F1IERhbiIsIA0KZ3VpIGdhbSBuaHVuZyBzdXkgbmdoaSwgdHJhbiB0cm8gdmUgZGF0IG51 b2MuIFR1YW4gVmlldCBOYW0gdHJhbiB0cm9uZyBnaW9pIHRoaWV1Lg0KDQoqIE9uZyBTYXUgRGFu IHZvaSBiaWV1IHR1b25nIFRob25nIE5oYXQgdG8gcXVvYw0KKiBYYXkgZHVuZyBEYW5nIC0gdHJh biB0cm8gbG9uIGN1YSBhbmggU2F1IERhbg0KKiBBbmggU2F1IERhbiBuZ2hpIHZlIG1vdCBRdW9j IGhvaSB0aGF0IHN1IGRhaSBkaWVuIGRhbg0KDQpUcm9uZyBoYW5oIGxhbmcgaG9pIHRydW9uZyBn aXVhIGdpbyBnaWFpIGxhbzsgYmVuIHRhY2ggY2EgcGhlIGltIGxhbmcgbmhhbSBuaGkgZGUgdGhl bSANCmRhbmcgbG9uZyBuaHVuZyBzdXkgdHUsIGhheSBnaXVhIGNhdSBjaHV5ZW4gY3VhIG5odW5n IG5ndW9pIGdhcCBuaGF1IHRheSBiYXQgbWF0IA0KbXVuZyByYW0gcmFuIG5odW5nIGRvbiBkb2Fu IHBoYW0gYmluaCB2ZSBuaHVuZyBzdSBraWVuIGRhbmcgZGllbiByYSwga2hvbmcgaGVuIG1hIA0K Z2FwLCBjYXUgInBoYWkgY2hpIiBheSB0aG90IHJhIG1vdCBjYWNoIHRoYXQgbmdhdSBuaGllbiwg bmh1bmcgbmdoaSBjaG8ga3kgbGFpIGhvYSByYSBsYSANCmNoYW5nIG5nYXUgbmhpZW4gdGkgbmFv Lg0KDQpUaGkgY2hhbmcgcGhhaSB0aHVvbmcgdGh1YyBhLGIsYyBjdWEgdHJpZXQgaG9jIGJpZW4g Y2h1bmcgY3VhIG1vdCB0aG9pIGhvYyB0aHVvYyBsb25nIGRhIA0KZGF5IHJhbmcgY2FpIHRhdCBu aGllbiB0aG9uZyBxdWEgY2FpIG5nYXUgbmhpZW4gZGUgYmlldSBoaWVuIHJhIGRvIHNhbz8gTmd1 b2kgdGEga2hhbyANCmtoYXQgZHVvYyBuZ2hlIG5odW5nIHkgdHVvbmcgZHVvYyBkdWMga2V0LCBj aGF0IGxvYyB0dSBtb3QgZG9pIHRyYWkgbmdoaWVtIHRyb25nIG1hdSANCmx1YSBjaGllbiB0cmFu aCBsdW9uIGR1bmcgbyBub2kgZGF1IHNvbmcgbmdvbiBnaW8sIHRyb25nIGJhbSBkYXAgY3VhIG5o dW5nIHRpbSB0b2kgDQpraG9uZyBjYW0gY2hpdSB0cm9pIGJ1b2MgYm9pIG5odW5nIGdpYW8gZGll dSBkYSBiaWVuIHRoYW5oIG5naGkgcXV5ZXQsIG5oYW0gZ29wIHBoYW4gDQp0cmEgbG9pIG5odW5n IGNhdSBob2kgbG9uIGN1YSBkYXQgbnVvYyBkdW9jIGRhdCByYSB0aGF0IGJ1YyB4dWMgbWEgb25n IFNhdSBEYW4gZGEgdHVuZyANCmxhbSwgdHVuZyBkYXkgZHV0Lg0KDQpEYXkgZHV0IGNobyBkZW4g a2hpIGRvdCBuZ290IHJhIGRpIGtoaSBuaHVuZyBraWVuIG5naGkgbm9uZyBib25nLCBuaHVuZyBi dWMgdGh1IHRhbSANCmh1eWV0IHZhbiBjb24gZG8uIE5odW5nIGtpZW4gbmdoaSB2ZSBkb2kgbm9p LCBkb2kgbmdvYWksIHZlIGNoaW5oIGRvbiBEYW5nLCB2ZSB0aGF0IHN1IA0KbW8gcm9uZyBkYW4g Y2h1IHRyb25nIGNhY2ggbGFtIG5oYW4gc3UgZGFpIGhvaSwgdmUgZGFpIGRvYW4ga2V0IGRhbiB0 b2MsIHZlIHF1YW4gdGFtIA0KZ2lhaSBxdXlldCBuaHVuZyBidWMgeHVjIGN1YSBkYW4sIG5oYXQg bGEgbm9uZyBkYW4gdm9pIHZhbiBkZSBkYXQgZGFpIHRyb25nIHF1eSBob2FjaCBkbyB0aGksIHRy b25nIGNvbmcgbmdoaWVwIGhvYS4uLg0KDQpEbyBsYSBzdSBtaWV0IG1haSwgcXV5ZXQgbGlldCB0 cm9uZyBuaHVuZyBidWMgdGh1LCBuaHVuZyBsb2kgZ29wIHkgdHJ1YyB0aWVwIHZvaSBuaHVuZyAN Cm5ndW9pIGdpdSB0cm9uZyB0cmFjaCB0cnVvYyBkYW4uIk5naGUgaGF5IGtob25nIGxhIGNodXll biBjdWEgY2FjIGFuaCBheSwgY29uIGNodXllbiANCmN1YSBtaW5oIHRoaSBwaGFpIGtpZW4gbmhh biB2YSBtZW0gbW9uZyBjaGFuIHRpbmggdGh1eWV0IHBodWMsIHRyb25nIG11b2kgZGlldSwgbmd1 b2kgDQp0YSBuZ2hlIG1pbmggbW90IGRpZXUgY3VuZyBkYSBsYSB0b3QiLCBkbyBsYSBkaWV1IG9u ZyBTYXUgRGFuIHRodW9uZyBub2kgcmEuIFZhIGNvIGxlIA0Kbmh1bmcgZGlldSBvbmcgY2h1YSBu b2kgcmEsIG5odW5nIGRpZXUgY29uIHUga2luIHRyb25nIHRhbSB0dSBkZSBzdXkgZGkgbmdoaSBs YWkgeGVtIA0KZHVhIHJhIHRoZSBuYW8gY2hvIGR1bmcgbHVjIHRoaSBjaGFjIGtobyBtYSBiaWV0 IGR1b2MgaGV0LiBCbyBvYyBkYXkgYXAgc3V5IHR1IHZhIHRyYWkgDQp0aW0gbWFuaCBtZSBkYXAg Y3VuZyBuaGlwIHZvaSBjdW9jIHNvbmcgY3VhIGRhbiBjdWEgY29uIG5ndW9pIGF5IGtob25nIG1v dCBnaWF5IA0Kbmd1bmcgbmdoaS4uIA0KDQpLaG9uZyBjaGl1IGx1aSBidW9jIHRydW9jIGJhdCBj dSBjYW4gbmdhaSBuYW8gbmh1bmcgb25nIGxhaSBoZXQgbXVjIGtoaWVuIHRyaSB2YSBuaGFuIA0K bmFpIHRodXlldCBwaHVjIG5odW5nIGRvbmcgY2hpLCBkb25nIGRvaSBjdWEgbWluaCwgdHJvbmcg ZG8gY28gbmh1bmcgbmd1b2kgZG8gbWluaCANCnRydWMgdGllcCBkaXUgZGF0LCBodWFuIGx1eWVu LCBjdW5nIHN1eSBuZ2hpIGRlIHRpbSBjYWNoIHRyYSBsb2kgbmh1bmcgY2F1IGhvaSBsb24gY3Vh IGRhdCANCm51b2MgZGFuZyBidWMgeHVjIGRhdCByYS4NCg0KVm9pIG9uZywgZGFpIGRvYW4ga2V0 IGRhbiB0b2MsIHRyb25nIGRvIHR1IHR1b25nIGtob2FuIGR1bmcgdmEgaG9hIGhvcCBjbyB5IG5n aGlhIHJhdCANCnRoaWV0IHRodWMgdmFvIGx1YyBuYXkgZG9pIHZvaSBkYXQgbnVvYyBwaGFpIHRy YWkgcXVhIG5nb3QgbnVhIHRoZSBreSBjaGllbiB0cmFuaCwga2hvbmcgDQptb3QgZ2lhIGRpbmgg VmlldCBOYW0gbmFvIGtob25nIGdhbmggY2hpdSBuaHVuZyBub2kgZGF1IG1hdCBtYXQuIEN1bmcg dHJlbiBzdXkgbmdoaSBkbywgDQpvbmcgZG9uIG5oaWV1IHN1YyBsdWMgY2hvIHZpZWMga2V0IG5v aSBhbmggY2hpIGVtIHRyaSB0aHVjIHRyb25nIG51b2MgdmEgZGFuZyBvIG51b2MgDQpuZ29haSBj dW5nIG5oYXUgY2hhbiB0aGFuaCBob3AgdGFjIG5naGllbiBjdXUgZGUgZ29wIHBoYW4gdGFvIG5l biBzdWMgYmF0IG1vaSBjaG8gc3UgDQpuZ2hpZXAgcGhhdCB0cmllbiBkYXQgbnVvYyB0cm9uZyBi b2kgY2FuaCBtb2kgY3VhIHRoZSBnaW9pLg0KDQpDaGkgbWF5IG5nYXkgdHJ1b2Mga2hpIGRvdCBu Z290IHJhIGRpIG9uZyBjb24gZGFuaCB0aGkgZ2lvIHRpZXAgbWF5IHRyaSB0aHVjIGRlbiB0dSBN eSwgDQpjaGFuIHRpbmggZG9uZyB2aWVuIHRhbSBuZ3V5ZW4gY3VhIGNhYyB2aSBheSBtdW9uIHRh byByYSBtb3QgYnVvYyBob3AgdGFjIG1vaS4gIk1pbmggDQp0aW4gcmFuZywgdHV5IGNvbiBuaHVu ZyBkaWVtIGJhdCBkb25nLCBzb25nIGNobyBnYXAgZHVvYyBuaGF1IGxhaSBsYSBkaWV1IHF1eWV0 IGRpbmgsIA0KY2FuIGNodSBkb25nIGNoaWEgdGF5IHJhLCBtYW5oIGRhbiBidW9jIHRvaSwgbW90 IGN1YyBkaWVuIG1vaSBzZSBtbyByYSIsIG9uZyB0cmEgbG9pIG1vaSANCmJhbiBraG9hbiBjdWEg bWF5IGFuaCBlbS4NCg0KTW90IGxhbiBraGFjLCB0cnVvYyB2YWkgc3Uga2llbiBkYW5nIHhheSBy YSwgb25nIHRhbSBzdTogIlRvaSBkYSB0cnVjIHRpZXAgbm9pIHRoYW5nOiANCmR1bmcgbGFtIHZh eSwgdmkgY2FjaCBuYXkgdGhpIGNoaSBvbmcgYmFuIGtpYSBsYSB2byB0YXkgaG9hbiBuZ2hlbmgg bmh1bmcgZHVvaSBjb24gbWF0IA0KY3VhIGJlIGJhbiBnYW4geGEga2hhYyB0aGkgVmlldCBOYW0g c2UgeHVvbmcgbW90IGJhYywgcm9pIGNhaSBnaWEgcGhhaSB0cmEgc2UgcmF0IGRhdCIuDQoNCk5n YW0gbmdoaSBsYWksIGtoaSBjYWkgY2F1IGhvaSBsb24gY2h1YSBjbyBjYWNoIHRyYSBsb2kgdGhh dCB0dW9uZyBtaW5oIHRoaSBuaHVuZyBnaWFpIA0KcGhhcCBraG8gbWEgdmVuIHRvYW4gZHVvYy4g TWEgdGhhdCByYSwgY2F1IGhvaSBsb24gYXkgY3VuZyB0dW5nIGxhIG1vaSBiYW4ga2hvYW4gY3Vh IA0KbmhpZXUgdGhlIGhlLiBDYWkgdHUgdGhvIGN1YSBtb3QgdGhvaSB4YW8gZG9uZyBsb25nIG5n dW9pIG5odSBraHVheSBkb25nIHRybyBsYWk6ICJNYXQgDQpjdWksIG1hdCBuZ2hpZW5nLCBtYXQg bmdvYW5oIHNhdS8gUXVheSB0aGVvIHRhbSBodW9uZyBob2kgdHJvaSBzYXUvTW90IGNhdSBob2kg bG9uLiANCktob25nIGxvaSBkYXAvIltIdXkgQ2FuXS4NCg0KQ3VuZyBsYWkgbGEgbmdhdSBuaGll biB0aG9pLCBuaHVuZyBzdSBsaWVuIHR1b25nIG5nYXUgbmhpZW4gcXVhaSBxdXkgdmUgbW90IHRo b2kgeHVhIGN1IA0KbmF5IGN1IGFtIGFuaCBtYWkgbmh1IG1vdCBjb25nIGh1b25nIHRyb25nIHN1 eSB0dSB2ZSB0aG9pIGN1b2MuIENoYW5nIG5oZSBsaWNoIHN1IGxhcCANCmxhaSAiTW90IGNhdSBo b2kgbG9uLiBLaG9uZyBsb2kgZGFwIj8NCg0KU3VjIGNvbmcgaHVvbmcgY3VhIG5odW5nIHN1eSB0 dSBsaWVuIG1hY2ggbm9pIHF1YSBraHUgdm9pIGhpZW4gdGFpIGNhbmcgbGFtIHhvbiB4YW5nIA0K dGhlbSBuaHVuZyBidWMgeHVjIGhvbSBuYXksIHNvbmcgbm9pIGxhIGtob25nIGNvIGxvaSBkYXAg Y2hvIGNhdSBob2kgbG9uIGN1YSBkYXQgbnVvYyANCnRoaSBlIGtob25nIHRob2EgZGFuZy4gQ3Vu ZyB2b2kgYmFvIGJvIG9jIHRyaXUgbmFuZyBzdXkgdHUga2hhYywgbmV1IGRvYyBreSBuaHVuZyBz YWNoIA0KYmFvIHZpZXQgdmUgVm8gVmFuIEtpZXQgdHJvbmcgc3VvdCB0aG9pIGdpYW4gcXVhIGtl IHR1IGtoaSBvbmcgbmFtIHh1b25nIGN1bmcgZGEgdGhheSANCnJhIGR1b2MgcGhhbiBuYW8gY2Fj aCBvbmcgZ29wIHBoYW4gdHJhIGxvaSBuaHVuZyBjYXUgaG9pIGxvbiBjdWEgZGF0IG51b2Mga2hp ZW4gY2hvIA0KY2h1eWVuICJwaGFpIGNoaSIgbGFpIGNhbmcgeG9uIHhhbmcgdGhlbS4NCg0KVmEg cm9pLCAicGhhaSBjaGkiIG5odW5nIHN1eSB0dSB2YSBraWVuIG5naGkgY3VhIG9uZyBkdW9jIGNv bmcgYm8gY2hvIG1vaSBuZ3VvaSBiaWV0IGRlIA0KY3VuZyBvbmcgc3V5IG5naGkgdmEgY2hpYSBz ZSB0aGkgY2hhYyBjaGFuIHNlIHRhbyBuZW4gbmh1bmcgZG90IHBoYSBuaGFtIHRyYSBsb2kgY2hv IGNhdSANCmhvaSBsb24gY3VhIGRhdCBudW9jLiBDbyBsYW4gb25nIGJhdCBjdW9pIGtlIGxhaSBy YW5nIGNvIG1heSBhbmggbm9pIHNhbiBzYW5nIG5naGUgDQpuaHVuZyBraWVuIG5naGksIG5odW5n IGRvbmcgZ29wIGN1YSBvbmcsIG5odW5nIGxhIGN1YSBjYSBuaGFuIG9uZyBjaHUga2hvbmcgbmVu IGxhIA0KY3VhIG1vdCBuaG9tIG5ndW9pIGN1bmcgdm9pIG9uZyBoaW5oIHRoYW5oIG5odW5nIGtp ZW4gbmdoaSBkby4gDQoNCiJOZ3VvaSB0YSBjdSBuZ2hpIG5odSB0b2kgbGEgdGhpZW4gdGFpLCBu Z2hpIHJhIGR1b2MgdGF0IGNhIi4gT25nIGN1b2kgZG9uIGhhdS4gIlRvaSB0cmEgDQpsb2ksIG5o dW5nIGdpIGxhbSBkdW9jIGxhIGRvIGFuaCBlbSBnb3AgdmFvLCB0b2kgdGhhbmggdGFtIGxhbmcg bmdoZSB2YSBjaGF0IGxvYyBuaHVuZyANCmNhaSBkdW5nIGNhaSBoYXkgZGUgY2h1eWVuIHRoYW5o IGdpYWkgcGhhcCwgdGhhbmgga2llbiBuZ2hpLCB2b2kgeSB0aHVjIHRyYWNoIG5oaWVtIGNhIA0K bmhhbi4gS2hvbmcgY28gYW5oIGVtIGN1bmcgZ29wIHN1YywgbGFtIHNhbyB0b2kgbmdoaSByYSBo ZXQgZHVvYy4gVG9pIHNhbiBzYW5nIGNvIHN1IA0KYmFvIGxhbmggY2hpbmggdHJpIHZlIG5odW5n IG5ndW9pIHRvaSBtb2kgY3VuZyBsYW0gdmllYyB2b2kgdG9pIGRlIGdpdXAgdG9pIHRpbSB0b2ks IGdvaSANCmNobyB0b2kgbmh1bmcgc3V5IG5naGkgIi4NCg0KVGFtIHZvYyB0cmkgdHVlIGRhbmcg a2luaCBwaHVjIGN1YSBvbmcga2hvaSBuZ3VvbiB0dSBjYWNoIG9uZyBiaWV0IHRhcCBob3AsIGJp ZXQgbGFuZyANCm5naGUuIE9uZyBzYW4gc2FuZyBsYW0gbmd1b2kgaG9jIHRybyBkZSB0cm8gdGhh bmggbmd1b2kgdGhheS4gU3VjIG1hbmggImRhbmcgc28iIGN1YSANCm9uZyBTYXUgRGFuIGxhIG8g Y2hvIG5heSBkYXkuIFRyZW4geSBuZ2hpYSBkbyBtYSBub2ksIHRoaSBjaHV5ZW4gInBoYWkgY2hp IiBub2kgdHJlbiBjbyANCnRoZSBraG9uZyBjYW4gZGF0IHJhLCB2aSB0dSB0dW9uZyB2YSBzdWMg bWFuaCBjdWEgb25nIFNhdSBEYW4gdmFuIG5hbSB0cm9uZyBkYW4sIHRyb25nIA0KZG9uZyBjaGkg ZG9uZyBkb2kgY3VhIG9uZywgZHVvbmcgbmhpZW4gbGEgdHJvbmcgbmh1bmcgbmd1b2kgY2h1YSB0 aG9haSBob2EsIGJpZW4gY2hhdCwgDQpuaHVuZyBob2MgdHJvIHBoYW4gYm9pIHRoYXkuDQoNCkNv biBuZXUgY2F1IG5vaSB2YW4gY3UgcGhhaSBiYXQgcmEgInBoYWkgY2hpIGx1YyBuYXkgY28gb25n IFNhdSBEYW4iIHRoaSBjYW4gcGhhaSBibyANCnN1bmcgdGhlbSBjYXUgInBoYWkgY2hpIGRhbyBh eSBuZ3VvaSB0YSBuZ2hlIG9uZyBTYXUgRGFuIi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9uZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTExMjAxMDYzMi5hc3B4IFROIE5NIFRMIDEyLzEx LzIwMTAgMTowNiANCg0KTmd1b2kgdG8gY2FvIHRoYW0gbmh1bmcgcGhhaSBkdW9jIGJhbyB2ZSAg DQoNCiogRHUga2llbiBjaGF0IHZhbiB0YWkgUXVvYyBob2k6IFZpbmFzaGluLCBkaWVuLCBiYXV4 aXRlLCBsb2MgZGF1Li4uIA0KDQpDaGlldSBxdWEgMTEuMTEsIHRoYW8gbHVhbiB0YWkgdG8gdmUg ZHUgbHVhdCBUbyBjYW8sIGhhdSBoZXQgY2FjIHkga2llbiBwaGF0IGJpZXUgZGV1IGNobyANCnJh bmcgZHUgbHVhdCBuYXkgcmF0IGNhbiB0aGlldCwgbmh1bmcgY2FuIGxhbSBybyBuaHVuZyBxdXkg ZGluaCBsaWVuIHF1YW4gdG9pIHZpZWMgYmFvIHZlIA0Kbmd1b2kgdG8gY2FvIChOVEMpLiANCg0K REIgVnUgSG9uZyBBbmggKEhhIE5vaSkgbm9pIGhpZW4gbmF5IG5ndW9pIGR1bmcgY2FtIHRvIGNh byBjYWMgaGFuaCB2aSB2aSBwaGFtIA0KZGFuZyBjaGl1IHJhdCBuaGlldSB0aGlldCB0aG9pLCBi aSBkZSBkb2EsIHRydSB1bSBuaHVuZyBraG9uZyBjbyBjbyBxdWFuIG5hbyBkdW5nIHJhIGJhbyAN CnZlLiBDbyB0cnVvbmcgaG9wIGxpZW4gdHVjIGJpIG5lbSBwaGFvLCBuZW0gY2hhdCB0aGFpIHZh byBuaGEgbmh1bmcga2hpIGdvaSBjb25nIGFuIGRlbiANCnRoaSBjb25nIGFuIGxhcCBiaWVuIGJh biByb2kgYm8gZGF5OyBjaGluaCBxdXllbiBkaWEgcGh1b25nIHRoaSBjaG8gcmFuZyBOVEMgY2hp IGxhIA0KY29uZyBkYW4gYmluaCB0aHVvbmcgbmVuIGtob25nIGNvIGNoZSBkbyBiYW8gdmUuLi4g DQoNCiJOZ3VvaSBkYW4gdGhvIG8gdm9pIGNhaSB4YXUgdmkgc28ga2hvbmcgZHVvYyBnaSBtYSBj b24gbWFuZyB2YSB2YW8gdGhhbiIsIERCIEFuaCANCm5vaSB2YSBkZSBuZ2hpOiAiUGhhaSBxdXkg ZGluaCBybyBxdXllbiBkdW9jIGJhbyB2ZSBjdWEgTlRDIGNodSBraG9uZyB0aGUgcXV5IGRpbmgg DQpjaHVuZyBjaHVuZyBuaHUgZHUgbHVhdC4gQ28gY2hlIHRhaSBkb2kgdm9pIG5ndW9pIGJhbyB2 ZSBOVEMga2hvbmcgaG9hbiB0aGFuaCBuaGllbSANCnZ1Ii4NCg0KRG9uZyBxdWFuIGRpZW0gdHJl biwgREIgTGUgVGhhbmggQmluaCAoVFAuSENNKSBjaG8gcmFuZzogIlRodWMgdGUgbyBUUC5IQ00g Y2hvIA0KdGhheSBOVEMgcmF0IGxvIHNvIHZpIGNvIHRydW9uZyBob3AgdG8gY2FvIHhvbmcgbG8g dGhvbmcgdGluIHJhIG5nb2FpLCBiaSBkZSBkb2EgY2Egbmd1b2kgDQp0aGFuLCB0aGFtIGNoaSBi aSBoYW5oIHh1IGtpZXUgeGEgaG9pIGRlbi4gTmh1bmcgY2FjIHF1eSBkaW5oIHRyb25nIGx1YXQg Y2h1YSBnaWFpIHF1eWV0IA0KZHVvYyBiYW8gdmUgYmkgbWF0IE5UQyIuDQoNCkRCIENodSBTb24g SGEgKEhhIE5vaSkgbmV1IHRpbmggaHVvbmc6ICJWaSBkdSwgbmhhbiB2aWVuIHRvIGNhbyBsYW5o IGRhbyBjdWEgaG8gY28gDQpoYW5oIHZpIHZpIHBoYW0sIHNhdSBraGkgdGhhbmgga2llbSB0cmEs IG5ndW9pIGJpIHRvIGNhbyBkdSBjbyB0aHVhIG5oYW4gbGFtIHNhaSB2YSBjbyANCmhhbmggdmkg c3VhIHNhaSBuaHVuZyB2aSBoYW5oIHZpIGRvIGNodWEgbmFuZyB0b2kgbXVjIGJpIGNhY2ggY2h1 YyBob2FjIGRpZXUgY2h1eWVuIA0KY29uZyB0YWMga2hhYywgdmFuIHRpZXAgdHVjIGxhIGxhbmgg ZGFvIGN1YSBuZ3VvaSBkdW5nIHJhIHRvIGNhbzsgdHJvbmcgdHJ1b25nIGhvcCBuYXkgDQpsYW0g dGhlIG5hbyBkZSBiYW8gdmUgTlRDIGtob25nIGJpIHRydSBkYXA/Ii4NCg0KS2hlbiB0aHVvbmcg TlRDIGR1bmcNCg0KIk5lbiBjbyBxdXkgZGluaCBkb2kgdm9pIHZpZWMgdG8gY2FvIGR1bmcgc3Ug dGhhdCBraGkgY28gbGllbiBxdWFuIHRvaSB0YWkgc2FuLCBsb2kgaWNoIA0KdmF0IGNoYXQgdGhp IGNvIHR5IGxlICUgdGh1b25nIHRyZW4gc28gdGllbiBkdW9jIHRodSBob2kgZG9pIHZvaSB2aWVj IHRvIGNhbyBkdW5nIiBEQiBMZSBWYW4gVGFtIC0gQ2FuIFRobw0KDQpEQiBMZSBWYW4gVGFtIChD YW4gVGhvKSBkZSBuZ2hpOiAiS2hvbmcgdGhlIGNoYXAgbmhhbiB2aWVjIG5ldSBhbmggdG8gY2Fv IGR1bmcgdGhpIA0KZHVvYyBuaGFuIGJhbmcga2hlbiwgdHJvbmcga2hpIG5ldSB0byBjYW8gc2Fp IHRoaSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gaGluaCBzdS4gTmVuIGNvIA0KcXV5IGRpbmggZG9p IHZvaSB2aWVjIHRvIGNhbyBkdW5nIHN1IHRoYXQga2hpIGNvIGxpZW4gcXVhbiB0b2kgdGFpIHNh biwgbG9pIGljaCB2YXQgY2hhdCB0aGkgDQpjbyB0eSBsZSAlIHRodW9uZyB0cmVuIHNvIHRpZW4g ZHVvYyB0aHUgaG9pIGRvaSB2b2kgdmllYyB0byBjYW8gZHVuZyIuDQoNCihBbmg6REIgTGUgVmFu IFRhbSwgQ2FuIFRobyBkYW5nIHBoYXQgYmlldSB2ZSBkdSBsdWF0IFRvIGNhbyAtYW5oOiBOZ29j IFRoYW5nKSAgDQoNClRoZW8gREIgRGFuZyBIdXllbiBUaGFpIChIYSBOb2kpOiAiRG9pIHZvaSBu aHVuZyBkb24gdGh1IG5hYyBkYW5oIG5odW5nIGNvIG5vaSANCmR1bmcgdG8gY2FvIHJvIHJhbmcs IGNvIGRpYSBkaWVtLCB0aG9pIGdpYW4sIGNvIGNodW5nIGN1IGN1IHRoZSB0aGkgdmFuIHBoYWkg Y2FuIGNvIGNhY2ggZGUgZ2lhaSBxdXlldCIuDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAwOS9DaG9uZy10aGFtLW5odW5nLVNvLW1hdC1jaHVjLW1hdC1xdXllbi05MzQyNzUv IExlIE5odW5nIDE0OjAwLCAwOC8wOS8yMDEwIChHTVQrNykNCg0KQ2hvbmcgdGhhbSBuaHVuZzog U28gbWF0IGNodWMsIG1hdCBxdXllbg0KDQotIFRoZW8gbmh1bmcgbmd1b2kgZGFuIGRhbSBkdW9u ZyBkYXUgdm9pIHRpZXUgY3VjLCBjaG9uZyB0aGFtIG5odW5nLCB0aGkgY28gbmhpZXUgDQpkYW5n IHZpZW4gY2hpIHNvbmcgbHVvbmcgdGhpZW4gbWEga2hvbmcgZHUgZHVuZyBraGkgZGF1IHRyYW5o LCBob2FjIGNoaSBkYW0gbGVuIGN1bmcgDQpjYXAgdGFpIGxpZXUgY2h1IGtob25nICJyYSBtYXQi LiANCg0KT25nIFBodW5nIENoaSBDb25nLCBDaGFuaCB2YW4gcGhvbmcgSERORCB2YSBVQk5EIHF1 YW4gTyBNb24gKENhbiBUaG8pOiANCiJEYW5nIHZpZW4gaXQgbmd1b2kgZGFtIG5vaSIgDQoNCk5o aWV1IGd1b25nIGRpZW4gaGluaCBsYSBjYWMgY3V1IGNoaWVuIGJpbmgsIGNhbiBibyBodXUgdHJp IHRhaSBob2kgbmdoaSBiaWV1IGR1b25nIGNhIA0KbmhhbiBjbyB0aGFuaCB0aWNoIGNob25nIHRo YW0gbmh1bmcgZGEgbm9pIHJhbmcgaG8gYmkgdHJ1IGRhcCB2aSBjaG9uZyB0aGFtIG5odW5nLiAN CkNvbiBvbmcgZGFuZyBsYSBtb3QgQ2hhbmggVmFuIHBob25nIGN1YSBVQk5EIHF1YW4gbWEgbGFp IHRoYW0gZ2lhIGNob25nIHRoYW0gDQpuaHVuZyB0aWNoIGN1YyB0aGkgY28gYmkgZ2F5IHN1YyBl cCBuYW8ga2hpIGxhbSB2aWVjIGtob25nPyANCg0KLSBBbmggaHVvbmcgY2h1LiBUb2kgYmkgbW9p IHRvaSBtb2kgbHVpLiBNaW5oIGRhdSB0cmFuaCBjaG9uZyB0aGFtIG5odW5nIG5odW5nIGJpIGNv aSANCm5odSBuZ3VvaSBkaSB2dSBraG9uZy4gVHJvbmcgbHVjIGNodW5nIGN1IHRvaSBkdWEgcmEg YmkgcGhvdCBsbyB0aGkgaG8gcXVheSBsYWkgcGhpYSB0b2kgDQpidW9jIHRvaSB0b2kgY2h1eWVu IG5heSBjaHV5ZW4ga2lhLiBEbyBtb2kgbGEgZGlldSBkYXUgbG9uZy4gDQpUcnVvYyBkZW4gbmF5 LCB0b2kgY3VuZyBjaHVhIHRoYXkgZG9uZyBjaGkgY2hhbmggdmFuIHBob25nIG5hbyB0aGFtIGdp YSBkYXUgdHJhbmggDQpwaG9uZyBjaG9uZyB0aGFtIG5odW5nIGtpZXUgbmh1IHRvaS4NClRvaSB0 aGkgdGhhbSBnaWEgdGljaCBjdWMgdHUgbGFuIHRodSBuaGF0IHZhbyBuYW0gMTk5OCAtIDIwMDMs IHBoYW5oIHBodWkgcmEgbmhpZXUgdmkgDQpsYW5oIGRhbyBiYW4gdGFpIHNhbiBuaGEgbnVvYyB0 aWNoIHRodSBjdWEgY2hlIGRvIGN1LCB0aGFtIG8uIA0KDQpHaWEgZGluaCB0b2kgYmkgeGEgaG9p IGRlbiBiYW8gdmF5IG5oYSBoYW5nIHRoYW5nIHRyb2ksIG1hbmcgZ2F5IGdvYyBtYSB0YXUgZGkg bG9uZyANCnZvbmcsIHZhbyBuaGEgaGFtIGhlLCBub2kgdG9pIGRpIGNobyBuYXkgY2hvIGtpYSBk YW0gcGhhdCBiaWV1IG5heSBuby4gVG9pIHJhdCBuZ2FjIA0KbmhpZW4gdmkgY2hvIHJhbmcgZGF5 IGxhIGNodXllbiBub2kgYm8sIHBoYXQgYmlldSBub2kgYm8gc2FvIGxhaSBsaWVuIHF1YW4geGEg aG9pIGRlbi4gDQpOaHVuZyBraGkgYmFvIGNvbmcgYW4gdmEgcXVhbiB1eSB0aGkga2hvbmcgYWkg eSBraWVuIGdpIGhldC4gDQoNCkxhbmggZGFvIHF1YW4gdHJhIHRodSB0b2kgYmFuZyBjYWNoIHJh IGxlbmggY2hvIFVCTkQgY2FjIHhhIGtob25nIHRyYSBubyBjaG8gZ2lhIGRpbmggDQp0b2ksIGRl IGtob25nIGNoZSBraW5oIHRlLCBraHVuZyBibyB0aW5oIHRoYW4gdG9pLiBNYXkgbWFuIGNvIGFu aCBlbSB0cmVuIHF1YW4ga2h1IHBoYXQgDQpoaWVuIHJhIHZ1IHZpZWMsIGR1YSBsdWMgbHVvbmcg ZGFjIG5oaWVtIHh1b25nIG5oYSBiYW8gdmUgbmVuIGN1b2kgY3VuZyBkYW0gbmd1b2kgeGF1IA0K ZG8gbW9pIGJvIGNoYXkuIA0KDQpMYW4gdGh1IGhhaSB0dSBuYW0gMjAwOCBkZW4gbmF5LCBraGkg cGhhdCBoaWVuIHNhaSB0cmFpLCB0b2kgZGEgcGhhbiB0aWNoIGNhbiBuZ2FuLiBUaGFtIA0KY2hp IGRhdSB0cmFuaCBuZ2F5IHRhaSBjdW9jIGhvcC4gTmh1bmcga2hvbmcgY28gY2h1eWVuIGJpZW4g dGhpIHRvaSBwaGFpIGd1aSBkb24gZGF1IA0KdHJhbmggdm9pIGNoaW5oIGNhYyBkb25nIGNoaSBj dWEgbWluaC4gDQoNCkNodWEgY28gc3UgdHJhIHRodSBnaSBuaHUgbGFuIHRydW9jIG5odW5nIGxh bmggZGFvIGRvaSB4dSB2b2kgdG9pIGNvIHZlIGxhbmggbHVuZywgdGhhbiANCnRyb25nIGhvbiwg dGhhbSBjaGkgZ29pIHkgY2hvIHRvaSBuZ2hpIGh1dSB0cnVvYyB0dW9pLiBOaHVuZyBsYW4gbmF5 IGNvIGNhYyBjYW4gYm8gVmFuIA0KcGhvbmcgQmFuIGNoaSBkYW8gVFUgcGhvbmcgY2hvbmcgdGhh bSBuaHVuZyBkZW4gZ2FwIHRvaSwgaG9pIGhhbiBjbyBiaSB0cnUgZGFwLCB0cmEgDQp0aHUga2hv bmcsIG5lbiB0b2kgY3VuZyB0aGF5IGtob25nIG5hbiBsb25nLiANCg0KVGF0IG5oaWVuIGN1bmcg YnVvbiBraGkgcGhhaSBub2kgdGh1YyB0ZSBwaHUgcGhhbmcgbGEgYmluaCB0aHVvbmcgY2FjIGxh bmggZGFvIGR1bmcgbyANCmJ1YyBub2kgdmUgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBtYSBraG9u ZyBsaWVuIHF1YW4gZGVuIGFpLCBraG9uZyB4dSBseSBhaSB0aGkgZGUuIA0KTmh1bmcgaGUgY28g bmd1b2kgZGF1IHRyYW5oIGRvaSBnaWFpIHF1eWV0IGNhYyB2dSB2aWVjLCBkYW5nIGxlIHBoYWkg aG9hbiBuZ2hlbmggdGhpIA0KbGFuaCBkYW8gc2Uga2hvIGNoaXUuIEhvYWMgdGhvdCByYSB2b2kg dG9pIHJhbmcgc2FvIGtob25nIGxhbSBnaSBtYSB0b2kgbmdheSBjaGkga2llbSANCmNodXllbiBk aSB0aHVhIGd1aS4gDQoNCkN1b2kgbmFtIHZ1YSByb2ksIHRvaSBsYW0gYmFvIGNhbyBjdWEgY2hp IGJvIGd1aSBsZW4gY2FwIHRyZW4sIGRlIHJhIHBodW9uZyBodW9uZyBnaWFpIA0KcXV5ZXQgdGhh bSBuaHVuZywgZGFuZyBsZSBjYXAgdHJlbiBwaGFpIG11bmcgbW9pIGR1bmcsIHRoaSBsYWkgaGFt IGhlIGRvaSB4dSBseSB0b2kgdmkgDQpraG9uZyBub3AgYmFuIGJhbyBjYW8gbWF1IGhvbmcsIG1v dCBjaGlldS4gDQoNCkNoaXUgbmhpZXUgc3VjIGVwIG5odW5nIGx5IGRvIG5hbyBraGllbiBvbmcg a2hvbmcgbmFuIGxvbmc/IA0KDQotIENoYW5oIHZhbiBwaG9uZyBtYSBsZW4gdGllbmcgdG8gY2Fv IHRoYW0gbmh1bmcgdGhpIGtob25nIGRlIGRhdS4gQ2FjIGxhbmggZGFvIGN1bmcgDQpjbyBuaGll dSBjYWNoIGRvaSB4dSBnYXkga2hvIGRlIGNobyB0b2ksIGhvYWMgZGFuIHhlcCBkZSBkb2kgcGhv IHZvaSB0b2kuIA0KDQpOaHVuZyB0b2kgdGhpIGtob25nIG5nYWkuIEhvbSB2dWEgcm9pIHNvIGtl dCBiYSBuYW0gaG9jIHRhcCBkYW8gZHVjIEhvIENoaSBNaW5oLCB0b2kgDQpjdW5nIGxlbiB0aGFu ZyBkaWVuIGRhbiBjaGkgcmEgY2FpIGR1bmcsIGNhaSBzYWkgdmEgaGluaCB0aHVjIHh1IGx5LiBU YXQgbmhpZW4sIG8gdmkgdHJpIGN1YSANCnRvaSBtYSBsYW0gdmF5IGtob25nIGNvIGxvaSBjaG8g bWluaC4gDQoNCk5nYXkgeHVhIGRpIGtoYW5nIGNoaWVuIGh5IHNpbmggY2hldCBjaG9jLCBiYXkg Z2lvIGRpIGxhbSwgYW4gbHVvbmcgbmhhIG51b2MgZG8gdGh1ZSANCmRhbiBkb25nIHRoaSBwaGFp IGxhbSB2aWVjIGNobyB4dW5nIGRhbmcgdm9pIGRvbmcgZ29wIGN1YSBkYW4uIFBoYWkgdGhhbSBn aWEgYmFvIHZlIA0KY29uZyBseSwgeGF5IGR1bmcgZG9pIG5ndSBjYW4gYm8gc2FvIGNobyB0aGF0 IHRvdC4NCg0KVG9pIGtob25nIG5nYWkgdHJ1YyB0aWVwIGxhbSB2aWVjIHZvaSBxdWFuIHV5LCB1 eSBiYW4gdmEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nLiBUb2kgY28gDQpkdSBjbyBzbyBjaHVuZyBj dSwgdG9pIHRyYW5oIGx1YW4sIGRhdSB0cmFuaCwgcGhhbiB0aWNoIHF1eWV0IGxpZXQuIFZhbiBk ZSBuYW8gY2FjIGRvbmcgY2hpIA0KbGFuaCBkYW8gdGhheSB0cmEgZ2lhIHZvaSB0b2kga2hvbmcg ZHVvYyB0aGkgaG8gaHVhLiBIdWEgc2UgdGllbiBoYW5oIGNoaSBkYW8gbGFtLCBuaHVuZyANCmRh eSBkdWEuIE5oaWV1IHZ1IHZpZWMgY2hhbmcgaGFuIG5odSBjaHV5ZW4gbWF5IHBoYXQgZGllbiB2 dWEgcm9pIHJhdCBkb24gZ2lhbi4gTGFwIGhvIA0Kc28gZ2lhIGRlIHF1eWV0IHRvYW4sIGR1bmcg bWF5IGN1IHRoYXkgbWF5IG1vaSwgbGFwIGhvIHNvIGdpYSB2YSBjb24gZGF1IGdpYSBkZSBkb2kg cGhvIA0KZG9hbiBraWVtIHRyYSwgbmdoaWEgbGEgaGFpIGxhbiBsYW0gZ2lhIGhvIHNvLiBLaGkg Y29uZyBhbiB0aHUgbHkgaG8gc28gZGUgZGlldSB0cmEgdGhpIGhvIA0KbGFpIHRpZW4gaGFuaCBk YW5oIHRyYW8gdGFpIGxpZXUgZGUgY2hheSB0b2kuIA0KDQpUb2kgZGVtIHRhdCBjYSBuaHVuZyB2 YW4gZGUgbmF5IHJhIGRhdSB0cmFuaCB0cnVjIGRpZW4gdm9pIHRydW9uZyBjb25nIGFuLCB2b2kg cXVhbiB1eSwgDQp1eSBiYW4gbmhhbiBkYW4uIExhbSByYXQgcXV5ZXQgbGlldC4gQ2FjIGRvbmcg Y2hpIGRldSBjbyB5IGtpZW4gY29uZyBhbiBwaGFpIGxhbSByby4gVG9pIA0KY2hvIHJhbmcgY2hp IGNhbiAxMCBuZ2F5IGxhIGxhbSB4b25nLiBOaHVuZyB0aHVjIHRlIGRhIGtlbyBkYWkgY2EgbmFt IHRyb2kgbmF5IG1hIGNodWEgDQp4b25nLiANCg0KTmh1IG9uZyBxdWFuIHNhdCB0aGkgdmllYyBk YXUgdHJhbmggdmEgdHUgcGhhdCBoaWVuIGhhbmggdmkgdGhhbSBuaHVuZyB0cm9uZyBub2kgYm8g Y2FjIA0KY28gcXVhbiwgZG9uIHZpIGhpZW4gbmF5IG5odSB0aGUgbmFvPyBDbyBuaGlldSB2dSB2 aWVjIGR1b2MgcGhhbmggcGh1aSBuaG8gZGF1IHRyYW5oIA0Kbm9pIGJvIGhvYWMgc3UgdGhhbSBn aWEgY3VhIGNhcCB1eSBEYW5nIGtob25nPyANCg0KLSBOaGluIGNodW5nLCBjYW4gYm8gdGFpIGRp YSBwaHVvbmcsIGNhYyB2aSB0cnVvbmcgbmdhbmgsIGRhbmcgdmllbiwgcmF0IGl0IG5ndW9pIGRh bSBsZW4gDQp0aWVuZyBub2kgdGhhbmcgdmFuIGRlLiANCkFuaCBlbSBzbyBiaSB0cnUgZGFwLiBB aSBkaW5oIGNhaSB0aWVuZyBjaG9uZyB0aGFtIG5odW5nIHJvaSB0aGkgbXVvbiBkb2kga2hvbmcg ZHVvYyANCmRlIGJhdC4gTmh1IHRvaSwgY2hvIG5hbyBraG8gaG8gc2UgcGhhbiBjb25nIHRvaSBk aS4gQ29uIGNobyBuYW8gbmdvbiBsYW5oIGhvYWMgdmkgdHJpIA0KcXVhbiB0cm9uZywgbmd1b2kg dGEgbm9pOiAiRG9uZyBjaGkgdGhhbmcgdGhhbiBxdWEsIGRlIG1hdCBsb25nIGFuaCBlbSwga2hv bmcgdGFwIGhvcCANCmR1b2MgbHVjIGx1b25nIi4gDQpUb2kga2hvbmcgZG9uZyB0aW5oIHZvaSBs b2kgc29uZyBjdWEgY2FjIGRhbmcgdmllbiBkdSBraG9uZyB2aSBwaGFtIHBoYXAgbHVhdCBuaHVu ZyANCmxhaSBraG9uZyBib2MgbG8gdGhhaSBkbywgcXVhbiBkaWVtLCBwaGUgcGhhbiBjYWMgaGFu aCB2aSBwaGFtIHBoYXAsIGxvaSBkdW5nIHF1YW4gbHkgDQpuaGEgbnVvYyBkZSBsYW0gZGlldSBz YWkgdHJhaSwgY2hpIGdpdSBhbiB0b2FuIGNobyByaWVuZyBtaW5oLiBEYW5nIHZpZW4gY2hpIHNv bmcgbHVvbmcgDQp0aGllbiBtYSBraG9uZyBkdSBkdW5nIGtoaSBkYXUgdHJhbmggdm9pIG1vaSBz dSBiYXQgbHVvbmcuIFR1eSBnaXUgZHVvYyBtaW5oIG5odW5nIA0KYmFjIG5odW9jIHZlIGNoaW5o IHRyaSwgZGFvIGR1Yy4gTmFuZyBob24gbGEgZHVuZyB0dW5nIGJhbyBjaGUsIG1hdCBoZXQgeSBj aGkgY2hpZW4gZGF1LiANCg0KKEFuaDogT25nIExlIERhbzogQ2hpIGNvIHRoZSBkYXUgdHJhbmgg a2hpIGRhdCB2YW4gZGUgdG9uIHZvbmcgZGF0IG51b2MgbGVuIHRyZW4gaGV0LiBBbmg6IExOKQ0K DQpPbmcgTGUgRGFvICg4NCB0dW9pLCBuZ3V5ZW4gdXkgdmllbiBUaHVvbmcgdnUgVGluaCB1eSBM YW0gRG9uZywgQmkgdGh1IGh1eWVuIHV5IA0KRHVjIFRyb25nKTogIlRvaSBkdWEgdmFvIG5odW5n IGRhbmcgdmllbiBjb3QgY2FuIiANCg0KQmkgcXV5ZXQgZGF1IHRyYW5oIHRoYW5oIGNvbmcgbGEg cGhhaSB0YXAgaG9wIGx1YyBsdW9uZywgZ2F5IGR1bmcgbG9uZyB0aW4uIA0KDQpDYWkga2hvIGN1 YSBkYXUgdHJhbmggY2hvbmcgdGhhbSBuaHVuZyBsYSBuaHVuZyBuZ3VvaSBiaWV0IG1hIGtob25n IGRhbSBub2kuIENhbiBibyANCmxhbSB2aWVjIHRyb25nIGNvIHF1YW4gbmhhIG51b2MgY2FuZyBr aG9uZyBkYW0gZGF1IHRyYW5oIG1vdCBwaGFuIHZpIHNvIG1hdCBjaHVjIG1hdCANCnF1eWVuLCBw aGFuIGtoYWMgdmkgc28gYW5oIGh1b25nIGRlbiB0aGFuaCB0aWNoIGNodW5nIGN1YSB0YXAgdGhl LiANCg0KVHJvbmcgY28gcXVhbiBuaGEgbnVvYyBjbyBtb3QgYm8gcGhhbiBraG9uZyBkYW0gbm9p IG5odW5nIGxhaSBiaWV0IG5oaWV1IGNodXllbi4gQm9pIA0KdmkgdHJvbmcgaGUgdGhvbmcgdGhp IG5nb2FpIG5odW5nIG5ndW9pIHRoYW0gbywgbmh1bmcgbmhpZXUsIHZhbiBjb24gbmhpZXUgY2Fu IGJvIHRvdC4gDQpCaSBxdXlldCBkYXUgdHJhbmggbGEgbmV1IGNodW5nIHRvaSBnaXUgZHVvYyBi aSBtYXQgY2hvIGhvIGxhIGhvIHNlIGN1bmcgY2FwIHRob25nIHRpbi4gDQpOaHVuZyBjYW4gYm8g ZG8ga2hvbmcgZGFtIGRhdSB0cmFuaCBuaHVuZyBjbyB0aGUgY3VuZyBjYXAgdGhvbmcgdGluLCB0 b2FuIGJvIGhvIHNvLCANCmdpYXkgdG8sIG5naGkgcXV5ZXQuIA0KDQpDaGkgY28gdGhlIGRhdSB0 cmFuaCBraGkgZGF0IHZhbiBkZSB0b24gdm9uZyBkYXQgbnVvYywgcXV5ZW4gbG9pIGRhdCBudW9j IGxlbiB0cmVuIGhldC4gDQoNCkN1bmcgcGhhaSB0aG9uZyBjYW0gdm9pIG5odW5nIG5ndW9pIGto b25nIGRhbSBkYXUgdHJhbmguIFZpIG5ndW9pIHRoYW0gbmh1bmcgbGEgDQpuaHVuZyBuZ3VvaSBj byBjaHVjLCBjbyBxdXllbi4gRGF1IHRyYW5oIGxhIGR1bmcgZGVuIG5vaSBjb20gY3VhIGhvLCBx dXllbiBsb2kgY3VhIGhvLCANCnRoYW0gY2hpIGhvIHRoYXkgbWEgcGhhaSBsYW0gdGhpbmggaG9h YyBibyBxdWEgdmkgc28gbWF0IGNodWMsIHNvIHRydSBkYXAuIA0KDQpDbyBtb3QgZGlldSBhbiB1 aSBsYSBuaHVuZyBkYW5nIHZpZW4gdG90IGJheSBnaW8ga2hvbmcgZGF1IHRyYW5oIHRydWMgdGll cCBudWEgbmh1bmcgaG8gDQpsYWkgZGF1IHRyYW5oIGJhbmcgY29uIGR1b25nIGJpIG1hdCwgdGhv bmcgcXVhIG5odW5nIG5ndW9pIG5odSBjaHVuZyB0b2kgZGF5Lg0KDQpodHRwOi8vdmlldG5hbW5l dC52bi9jaGluaHRyaS8yMDEwMDkvQ2hvbmctdGhhbS1uaHVuZy1NdW9uLWRvaS1raG9uZy1haS1j aG8tbmdvYy1kYXUtZGF5LTkzNDEwNC8gTGUgTmh1bmcgMTc6MTQsIDA3LzA5LzIwMTAgKEdNVCs3 KQ0KDQpDaG9uZyB0aGFtIG5odW5nOiBLaG9uZyBhaSBkYW0gbm9pIG1vaSBkYW5nIHNvDQoNCi0g T25nIFBodW5nIENoaSBDb25nLCBDaGFuaCB2YW4gcGhvbmcgSERORCB2YSBVQk5EIHF1YW4gTyBN b24gKENhbiBUaG8pIG5obyANCmxhaSB0aG9pIGRpZW0gY2FtIGdvLiBOYW0gMTk5OSwgb25nIHRv IGNhbyB0aGFtIG5odW5nIG5lbiB4YSBob2kgZGVuIGRlbiBiYW8gdmF5IG5oYSwgDQpkZSBkb2Eg dGluaCBtYW5nLCBjYXUgY3V1IGxlbiBjaGluaCBxdXllbiB0aGkgY2hpbmggcXV5ZW4gbmluIHRo aW5oLiBNYXkgbmhvIGx1YyBsdW9uZyANCmRhYyBiaWV0IGN1YSBRdWFuIGtodSA5IGJhbyB2ZSAi Y2h1IG5ldSBraG9uZyBiYXkgZ2lvIHRvaSBraG9uZyBjb24gc29uZyBkdW5nIG8gZGF5Ii4NCg0K TmhpZXUgZ2lvdCBudW9jIG1hdCBkYSByb2kgdHJlbiBkaWVuIGRhbiBIb2kgbmdoaSB0b2FuIHF1 b2MgYmlldSBkdW9uZyBjYSBuaGFuIGNvIA0KdGhhbmggdGljaCBjaG9uZyB0aGFtIG5odW5nIHNh bmcgbmF5ICg3LzkpLg0KDQoiRGV1IGJpIHRvbiB0aHVvbmciDQoNCk5odSBvbmcgUGh1bmcgQ2hp IENvbmcsIG5nb2FpIG5odW5nIHRodWEgdGhpZXQga2luaCB0ZSwgcm9pIGNvbiBjYWkga2hvbmcg eGluIGR1b2MgDQp2aWVjIGxhbSwgdGhpIGNvbiBkdW9uZyBjaGluaCB0cmkgY3VhIG9uZyAibXVv biBkb2kga2hvbmcgYWkgY2hvIG5nb2MgZGF1IGRheSIuIE9uZyANCkNvbmcga2UsIGxhbmggZGFv IGdpYWkgdGhpY2ggImRvbmcgY2hpIENvbmcgdGhhbmcgdGhhbiBxdWEsIG1hdCBsb25nIG5vaSBi bywga2hvbmcgdGFwIA0KaG9wIGR1b2MgYW5oIGVtLCBraG8gY2hvIHRhcCB0aGUuIExhbmggZGFv IGRlIGRhdCwgY2FuaCBnaWFjIi4NCg0KKEFuaDogVHJvbmcgODggZ3VvbmcgZGllbiBoaW5oLCBj byA0NiBuZ3VvaSB0byBjYW8gdGhhbSBuaHVuZywgNDIgbmd1b2kgcGhhdCBoaWVuIHh1IA0KbHkg dGhhbSBuaHVuZy4gMTYvODggbGEgY2FuIGJvIG5nYW5oIGNvbmcgYW4sIDggbmhhIGJhby4gQW5o OiBMTikgDQoNCkNoaSBEdW9uZyBUaGkgTXkgQW5oIChDYW4gVGhvKSBsYW0gY2EgSG9pIHRydW9u ZyBsYW5nIGRpIGtoaSB2dWEgcm9tIHJvbSBudW9jIG1hdCANCnZ1YSBjaGlhIHNlICJkbyBjaG9u ZyB0aWV1IGN1YyBtYSB0b2kgYmkgdHJ1IGRhcCwgY28gbGFwLCBjYXQgbHVvbmcsIG1hdCB2aWVj IGxhbSwgY2hvbmcgDQpkYXUgb20iLiANCg0KTnUgY3V1IGNoaWVuIGJpbmggcXVhbiBUYXkgSG8g KEhhIE5vaSkgTmd1eWVuIFRoaSBOZ2EgbmdheSBraGkgYnVvYyBsZW4gYnVjIGRpZW4gDQpkYW4g ZGEgdGhvbmcgYmFvLCBiYSB2dWEgYmkgeGEgaG9pIGRlbiAiZGFuIG1hdCIuIENvbiB0cnVvYyBk bywga2hvbmcgaXQgbGFuIG5ndW9pIHBodSANCm51IGR1bmcgY2FtIG5heSBiaSBkb2EgY2F0IGdh biBjaGFuLg0KDQpNb2kgbmd1b2kgdGhhbSBnaWEgZGF1IHRyYW5oIHZvaSB0aGFtIG5odW5nIGxh aSBiaSAiYmFvIHZheSIgdGhlbyBkaWV1IGtpZW4sIGhvYW4gY2FuaCANCmtoYWMgbmhhdS4NCg0K Q2FjaCBkYXkgaXQgbGF1LCBkdSBsdWFuIGhhbiB2YW4gY29uIG5obyB2dSB2aWVjIENvIHF1YW4g ZGlldSB0cmEgYmF0IHF1YSB0YW5nIERvYW4gDQpUaWVuIER1bmcsIG5ndXllbiBQaG8gVG9uZyBn aWFtIGRvYyBCSURWLi4uIE5ndW9pIHRvIGNhbyB2dSB2aWVjIGRpbmggZGFtIG5heSwgb25nIA0K SG9hbmcgVmFuIEtoYW5oIChUR0QgQ29uZyB0eSBjbyBwaGFuIGRldCBtYXkgeHVhdCBraGF1IEhh aSBQaG9uZykgZHVuZyBsZW4gcGhhbiANCnRyYW4gZ2l1YSBob2kgbmdoaSAibmhpZXUgbmd1b2kg Y2hvIHJhbmcgdG9pIGxhIG5ndW9pIGR1YSBob2kgbG8gZGUgbmhhbiBnb2kga2ljaCBjYXUgY3Vh IA0KQ2hpbmggcGh1Ii4NCg0KTmh1bmcgaGF1IHF1YSBvbmcgS2hhbmggcGhhaSBjaGl1IGxhIHRv YW4gYm8gdGFpIHNhbiB2YW4gdGllcCB0dWMgYmkgQklEViBwaG9uZyB0b2EsIA0Ka2hvbmcgY28g dm9uIHNhbiB4dWF0LCBraG9uZyBjbyB0aWVuIHRyYSBsdW9uZyBjb25nIG5oYW4gaGF5IGRvbmcg dGh1ZS4gS2hvIGtoYW4gDQpjaG9uZyBjaGF0LCBjb25nIHR5IGN1YSBvbmcgZHVuZyB0cnVvYyBu Z3VvbmcgY3VhIHBoYSBzYW4uDQoNCk5oaWV1IG5ndW9pIGRhbiB4ZW0gYmFvIGNoaSBuaHUgY2hv IGR1YSBjaG8gcGhvbmcgY2hvbmcgdGhhbSBuaHVuZy4gTmh1bmcgdGFpIGRpZW4gDQpkYW4sIG51 IG5oYSBiYW8gUGhhbiBUaGkgVGhhbmggSHVvbmcgY2hhbSByYWkga2UgbGFpIGNhdSBjaHV5ZW4g bWluaCBiaSBiYWMgZGFpLCBoYSANCmx1b25nLCBydXQgdGhlLi4uIG5odSB0aGUgbmFvIGtoaSB0 byBjYW8gdGhhbSBuaHVuZyBvIGJhbyBOZ3VvaSBjYW8gdHVvaS4gQ2F1IGNodXllbiANCmtob25n IGR1b2Mga2UgbGllbiBtYWNoIGJvaSBuaHVuZyBnaW90IG51b2MgbWF0IG5naGVuIG5nYW8uIA0K DQpOaHVuZyBub2kgYnVvbiBkb25nIGxhaSB0cm9uZyB0YW0gdHUgbmh1bmcgbmd1b2kgZGFuIGR1 bmcgY2FtIG1vdCBtaW5oIGR1bmcgbGVuIA0KInZhYyB0dSB2YSBoYW5nIHRvbmciIGxhIHRoYWkg ZG8gdGhpZXUgdGhpZW4gY2hpIGN1YSBjaGluaCBxdXllbiwgc3UgbWV0IG1vaSBjdWEgbmd1b2kg DQp0aGFuIHZpIGNobyByYW5nIGhvIGRhbmcgdHUgImdheSB0aHUgY2h1b2Mgb2FuIi4gVGhlbyBv bmcgTGUgRGFvICg4NCB0dW9pLCBuZ3V5ZW4gdXkgDQp2aWVuIFRodW9uZyB2dSBUaW5oIHV5IExh bSBEb25nLCBCaSB0aHUgaHV5ZW4gdXkgRHVjIFRyb25nKSwgbmhpZXUgZG9uZyBjaGkgY3VhIA0K b25nIGRhIG5hbiBsb25nIGJvIGN1b2MgbnVhIGNodW5nLiBDb24gbGFpLCAiZGV1IGJpIHRvbiB0 aHVvbmciLiANCg0KQ2hvIHh1IGx5LCBjYW4gYm8gZHVvYyBuZ2hpIHBoZXAgZGkgZHUgbGljaCAN Cg0KU3UgbmFuIGxvbmcga2hvbmcgY2hpIGJhdCBuZ3VvbiB0dSB2aWVjIGJpIGhhbSBkb2EsIHRv IGNhbywgImRhbiBtYXQiIG1hIG5ndXllbiBuaGFuIA0Kc2F1IHhhIHZpIG5oaWV1IHZ1IGtob25n IGR1b2MgeHUgbHkgcm90IHJhby4gQ2FuIGJvIHNhaSBwaGFtIGtob25nIG5odW5nIGtob25nIGJp IGt5IA0KbHVhdCBtYSBjb24gZHVvYyBkZSBiYXQuDQoNCihBbmg6IE9uZyBQaGFuIFZhbiBEbyAo Q2F1IEdpYXksIEhhIE5vaSkgY3VuZyBwaG9pIGhvcCBwaGF0IGhpZW4gMTQgdmFuIGRlIHNhaSAN CnBoYW0sIHF1YW4gQ2F1IEdpYXkgZGEgZGlldSBjaHV5ZW4gQ2h1IHRpY2gsIHBobyBDaHUgdGlj aCBwaHVvbmcgTmdoaWEgRG8gdmEgbmhpZXUgDQpjYW4gYm8ga2hhYy4gQW5oOiBMZSBOaHVuZykN Cg0KTmh1IG5ob20gZGF1IHRyYW5oIGNob25nIHRoYW0gbmh1bmcgbyBMYW0gRG9uZyBjdWEgb25n IExlIERhbywgc2F1IDEwIG5hbSB0aGVvIA0KZHVvaSBtb3QgdnUgdmllYyBkYSBnaWFuaCB0aGFu ZyBsb2kgdmEgdGh1IGhvaSBnYW4gMzAgdHkgZG9uZyBjaG8gTmhhIG51b2MuIEhhaSBjYW4gYm8g DQpodXllbiBkYSBiaSBreSBsdWF0Lg0KDQpOaHVuZywgZGFuZyBuZ2FjIG5oaWVuLCB0aGVvIG9u ZyBMZSBEYW8sIGxhIG5odW5nIGNhbiBibyBjaHUgbXV1IGRvIHRpbmggcXVhbiBseSBsYWkgDQpk dW9jIGRlIGJhdCwgY2F0IG5oYWMsIHRoYW0gY2hpIGR1b2MgVHJ1bmcgdW9uZyB0YW5nIGh1YW4g Y2h1b25nLg0KDQoiTmV1IGtob25nIGtpZW4gcXV5ZXQgZGF1IHRyYW5oIGRlIG5nYW4gY2hhbiwg aGFuIGNoZSBzYWkgcGhhbSwgY3VuZyBjbyBuaWVtIHRpbiBjdWEgDQpkYW4gdm9pIERhbmcgdGhp IG1vaSBtYXQgY2FuIGJvLCBtYXQgdGFpIHNhbi4gRGUgdGluaCB0cmFuZyBraG9uZyBhaSBkYW0g bm9pIG1vaSB0aGF0IA0KZGFuZyBzbyIsIG9uZyBEYW8gdGhhIHRoaWV0Lg0KDQpWaSBjYW4gYm8g Y28gNjAgbmFtIHR1b2kgRGFuZyB0cmFuIHRybzogIlh1IGx5IG5odSB2dWEgcXVhIGtob25nIGNv IHRpbmggcmFuIGRlLCBuZ2FuIA0KY2hhbi4gQ2FjIHZ1IHZpZWMgZGF1IHRyYW5oIHZvaSBjYW4g Ym8gbGEgbmh1bmcgY3VvYyBkYXUgdHJhbmgga2hvbmcgY2FuIHN1YywgbmhpZXUgbHVjIA0KY2Fu LCBvIGR1LCBiYW8gY2hlLCBuZSB0cmFuaCwgZGUgZG9hLCBtdWEgY2h1b2MiLg0KDQpDaGluaCBu aHVuZyAiZ29jIGtodWF0IiB0cm9uZyBjb25nIHRhYyBjYW4gYm8gZGEga2hpZW4gY2hvIGN1b2Mg ZGF1IHRyYW5oIG5nYXkgY2FuZyANCmtobyBraGFuLiAiTmh1bmcgbmd1b2kgY28gdHJhY2ggbmhp ZW0gc28gZHVuZyBjaGFtIG5lbiBraG9uZyBhaSBkYW0gbm9pIiAoYmEgDQpOZ3V5ZW4gVGhpIEhv YSAtIEhhIE5vaSkuIA0KDQpDaGFuaCB2YW4gcGhvbmcgVUJORCBodXllbiBPIE1vbiAoQ2FuIFRo bykgYnVvbiBiYSBrZSwgbGFuaCBkYW8ga2hpIGR1bmcgdHJlbiANCmJ1YyBub2kgdmUgcGhvbmcg Y2hvbmcgdGhhbSBuaHVuZyB0aGkgcmF0IHRyb2ksIG5odW5nIGtoaSBjbyBhaSBkbyBsZW4gdGll bmcgdG8gY2FvIGhvYWMgDQpraWVuIG5naGkgdGhpIHNlIGNvIGNhaSBuaGluIHRoaWV1IHRoaWVu IGNhbSwgdGhhbSBjaGkga2hvIGNoaXUgdmEgY2hvIHJhbmcgbmd1b2kgZG8ga2llbSANCmNodXll biBnYXkgbWF0IGRvYW4ga2V0IG5vaSBibywgYW5oIGh1b25nIHRoYW5oIHRpY2guDQoNCk9uZyBD b25nIGtlLCBuaGlldSBjYW4gYm8gdGhhbSBuaHVuZyBkYSBiaSBreSBsdWF0LCBkaWV1IHZlIHBo b25nIE5vaSB2dSBjaG8ga2V0IHF1YSANCmRlIHh1IGx5IG5odW5nIHZhbiBkdW9jIG5oYW4gMTAw JSBsdW9uZywgaHVvbmcgcGh1IGNhcCBjaHVjIHZ1LCB0aGFtIGNoaSBkdW9jIG5naGkgDQpwaGVw IGRpIGR1IGxpY2ggbnVvYyBuZ29haS4gSG9hYyBuaHUgY2hhbmggVGhhbmggdHJhIG1vdCBxdWFu IGJpIGtldCB0b2kgdGhhbSBuaHVuZyANCmhvbiA1IHRoYW5nLCBtb2kgbm9wIDEwMC8xODUgdHJp ZXUgZG9uZyBuaHVuZyB2YW4gdGFpIGNodWMuDQoNCkJhbyB2ZSBuZ3VvaSB0byBjYW8NCg0KRGVu IGhvaSBuZ2hpIHR1b25nIGRvaSBtdW9uIGRvIGJhbiBob3AsIFBobyBUaHUgdHVvbmcgVHJ1b25n IFZpbmggVHJvbmcgZGFuaCBnYW4gDQptb3QgdGllbmcgZG9uZyBobyBkZSB0cmluaCBiYXkgcXV5 ZXQgdGFtIGN1YSBEYW5nIGNob25nIHRoYW0gbmh1bmcuIFBobyBUaHUgdHVvbmcgDQptdW9uIHJh dCBuaGlldSBoaW5oIGFuaCB0aG8gY2EuDQoNCihBbmg6IE9uZyBQaHVuZyBDaGkgQ29uZyBjdW5n IFBobyBUaHUgdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcuIEFuaDogTGUgTmh1bmcpDQoNClBobyBU aHUgdHVvbmcgbmhhbiB0cmFjaCBuaGllbSB2ZSB2aWVjIGNoYW0geHUgbHkgY2FjIHZ1IHZpZWMg dmEga2hhbmcgZGluaCwgdmllYyB0dSANCnBoYXQgaGllbiB0aGFtIG5odW5nIHRyb25nIGhlIHRo b25nIGNvbiBoYW4gY2hlLg0KDQpPbmcgVHJvbmcgZ2lhbyBCYW4gY2hpIGRhbyBUcnVuZyB1b25n IHBob25nLCBjaG9uZyB0aGFtIG5odW5nIHBob2kgaG9wIEJvIENvbmcgYW4gDQpuZ2F5IHRyb25n IHRoYW5nIDkgaG9hbiB0aGllbiBxdXkgY2hlIGJhbyB2ZSBuZ3VvaSB0byBjYW8gdGhhbSBuaHVu Zy4gDQoNClZpZWMgY2FuIGxhbSBuZ2F5IGxhIHJhIHNvYXQgY2FjIHZ1IHZpZWMgbWEgbmh1bmcg bmd1b2kgdG8gY2FvIHRoYW0gbmh1bmcgZGEga2llbiBuZ2hpIA0Kbmh1bmcgY2h1YSBkdW9jIHh1 IGx5LCBkYWMgYmlldCBjYWMgdnUgbWEgb25nIERhbywgb25nIENvbmcuLi4gZGFuZyBkZSB4dWF0 LiANCg0KLQ0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0xNS12aS1w aGFtLXh1YXQta2hhdS1sYW8tZG9uZy12YW4tZ2lvLWNhby1kYW5oLWtoZS0gR2lhIFZhbiANCg0K Q2hpbmggcGh1OiBWaSBwaGFtIHh1YXQga2hhdSBsYW8gZG9uZyAtIFZhbiAiZ2lvIGNhbyBkYW5o IGtoZSIhDQoNClRoZW8gYmFvIGNhbyBjdWEgQm8gTERUQiAtIFhIIGNobyBiaWV0LCB0cm9uZyBz byAxNjEgZG9hbmggbmdoaWVwIFhLTEQgY2hpIGNvIA0Ka2hvYW5nIDMwJSBjYWMgZG9hbmggbmdo aWVwIGhvYXQgZG9uZyBjbyBoaWV1IHF1YSBjYW8sIDUwJSBkb2FuaCBuZ2hpZXAgaG9hdCBkb25n IA0KaGlldSBxdWEgdHJ1bmcgYmluaCwgY29uIGxhaSBjYWMgZG9hbmggbmdoaWVwIGhvYXQgZG9u ZyBrZW0gaGlldSBxdWEuDQoNCkNvbiBzbyBiYW8gY2FvIG5heSBjaG8gdGhheSBob2F0IGRvbmcg WEtMRCBvIG51b2MgdGEgZGFuZyBjbyBuaHVuZyBiYXQgY2FwIGNodWEgDQpkdW9jIGtoYWMgcGh1 Yy4NCg0KVmkgcGhhbSBuaGlldSwgeHUgbHkgY2hhbmcgYmFvIG5oaWV1DQoNCk1hYyBkdSB0aGVv IGJhbyBjYW8gY3VhIEJvIExhbyBkb25nIGNoaSBjbyAzMCUgZG9hbmggbmdoaWVwIFhLTEQgaG9h dCBkb25nIGNvIA0KaGlldSBxdWEsIGNvbiBsYWkgY2FjIGRvYW5oIG5naGllcCBob2F0IGRvbmcg Y28gaGlldSBxdWEgdHJ1bmcgYmluaCB2YSBrZW0gaGlldSBxdWEgDQpuaHVuZyB0aGVvIEJvIExE VEIgLSBYSCB0aW5oIGRlbiB0aGFuZyA2IG5hbSAyMDEwIGNoaSBjbyA0IGRvYW5oIG5naGllcCBi aSB0aHUgaG9pIA0KZ2lheSBwaGVwIChUcm9uZyBkbyAxIGRvYW5oIG5naGllcCBraG9uZyBkYXAg dW5nIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQsIDEgZG9hbmggDQpuZ2hpZXAgY28gbmhpZXUgdmkg cGhhbSB2YSAyIGRvYW5oIG5naGllcCBjaGFtIGR1dCBob2F0IGRvbmcgZG8ga2VtIGhpZXUgcXVh KS4NCg0KRGlldSBuYXkgZGF0IHJhIGNhdSBob2kgcGhhaSBjaGFuZyB2aWVjIHh1IHBoYXQgZG9h bmggbmdoaWVwIFhLTEQgdmkgcGhhbSBjaHVhIA0KbmdoaWVtIG5lbiB2YW4gY29uIG5oaWV1IGRv YW5oIG5naGllcCBob2F0IGRvbmcga2VtIGhpZXUgcXVhPy4NCg0KVHJhIGxvaSB2ZSB2YW4gZGUg bmF5IHRyb25nIGJ1b2kgbGFtIHZpZWMgdm9pIFV5IGJhbiB0aHVvbmcgdnUgUXVvYyBob2kgaG9p IGRhdSB0aGFuZyANCjkgdnVhIHF1YSwgb25nIE5ndXllbiBMdW9uZyBUcmFvLCBDaHUgdGljaCBI aWVwIGhvaSBYS0xEIChCbyBMRFRCWEgpIGdpYWkgdGhpY2g6IA0KIk5oaWV1IGRvYW5oIG5naGll cCBYS0xEIGhvYXQgZG9uZyBjbyBoaWV1IHF1YSB0cnVuZyBiaW5oIHZhIGtlbSBoaWV1IHF1YSBu aHVuZyANCmtob25nIHRoZSB0aHUgaG9pIGdpYXkgcGhlcCBjdWEgaG8gZHVvYyB2aSB0aGVvIGx1 YXQgdGhpIGNodWEgdGhlIHRodSBob2kgZ2lheSBwaGVwLiANCkN1IHRoZSwgY28gZG9hbmggbmdo aWVwIG1vdCBuYW0gY2hpIGR1YSBkdW9jIDEwMCBsYW8gZG9uZyBkaSBYS0xEIG5odW5nIGRvYW5o IG5naGllcCANCmxhaSBraG9uZyB2aSBwaGFtIGdpIGNhIi4NCg0KKEFuaDogTGFvIGRvbmcgVmll dCBOYW0gdGFpIE1hbGF5c2lhLiBBbmg6IFRpbiB0dWMgT25saW5lKSANCg0KR2lhaSB0aGljaCBj dWEgb25nIFRyYW8gZGEgYmkgb25nIE5ndXllbiBOaHUgTG9pIHBoYW4gYmFjLCBraGkgb25nIExv aSBkdWEgcmEgZGFuIA0KY2h1bmcgdGhvaSBnaWFuIGdhbiBkYXkgdGluaCB0cmFuZyBsdWEgZGFv IFhLTEQgdmFuIGRpZW4gcmEgdmEgY28gY2hpZXUgaHVvbmcgbmdoaWVtIA0KdHJvbmcsIHRyb25n IGRvIGNvIGNhIHRydW9uZyBob3AgZ2lhbSBkb2MgY2hpIG5oYW5oIGN1YSBjb25nIHR5IFhLTEQg bmdhbmcgbmhpZW4gIGt5IA0KaG9wIGRvbmcgdm9pIG5ndW9pIGxhbyBkb25nIGxhIHNhaSBsdWF0 IG5odW5nIGNodWEgYmkgeHUgbHkuIA0KDQpCYW8gY2FvIGN1YSBuZ2FuIGhhbmcgQ2hpbmggc2Fj aCB4YSBob2kgVmlldCBOYW0gbW9pIGRheSBjdW5nICBkdWEgcmEgZGFuaCBzYWNoIA0Ka2hvbmcg aXQgZG9hbmggbmdoaWVwIFhLTEQgdmkgcGhhbS4gQ3UgdGhlIG5odSBjb25nIHR5IEluY29tZXgg Y2hpZW0gZHVuZyBjdWEgbGFvIA0KZG9uZyAzMTMgdHJpZXUgZG9uZywgY29uZyB0eSBIYW50ZWNo IDIwIHRyaWV1IGRvbmcsIGNvbmcgdHkgUXVpbmltZXggMTggdHJpZXUgZG9uZywgDQpUcmFueGVj byAxNSB0cmlldSBkb25nLCAxOSBjb25nIHR5IHR1eWVuIGR1bmcgbGFvIGRvbmcgdGFpIFRoYW5o IEhvYSBkYSBkdW9jIGdpYWkgbmdhbiANCjksNDk1IHRpIGRvbmcgY2hvIDMxMyBsYW8gZG9uZyBu aHVuZyBsYW8gZG9uZyB2YW4gY2h1YSB4dWF0IGNhbmggZHVvYyB2b2kgdGhvaSBnaWFuIA0KY2hv IGRvaSBpdCBuaGF0IGxhIGhhaSB0aGFuZy4uLg0KDQpDbyBraG9uZyBpdCBzYWkgcGhhbSBuZXUg Y2hpZXUgdGhlbyBsdWF0IGR1YSBuZ3VvaSBsYW8gZG9uZyBkaSBsYW0gdmllYyBvIG51b2Mgbmdv YWkgdGhpIA0KcGhhaSBiaSB4dSBwaGF0IG5hbmcsIHRoYW0gY2hpIGNvIHRoZSBiaSB0aHUgaG9p IGdpYXkgcGhlcCBuaHVuZyBraG9uZyBoaWV1IGhvIHZhbiBiaW5oIA0KY2hhbiBuaHUgdmFpLCBj aHVhIGJpIGNhYyBjbyBxdWFuIGNodWMgbmFuZyB4dSBseT8uDQoNClRpbmggdHJhbmcgZG9hbmgg bmdoaWVwIHZpIHBoYW0gY2FjIHF1eSBkaW5oIHZlIHBoYXAgbHVhdCB4dWF0IGtoYXUgbGFvIGRv bmcgeGF5IHJhIA0Kbmd1eWVuIG5oYW4gY29uIHh1YXQgcGhhdCB0dSBzdSB0aGlldSBzYXUgc2F0 IHRyb25nIHF1YW4gbHkgY3VhIGNhYyBjbyBxdWFuIGNodWMgbmFuZy4NCg0KTmhpZXUgZG9hbmgg bmdoaWVwIFhLTEQgY28gbmFuZyBsdWMgeWV1IA0KDQpUaHVjIHRlIGNobyB0aGF5IHRyb25nIHRv bmcgc28gaG9uIDE2NyBkb2FuaCBuZ2hpZXAgWEtMRCB0cmVuIGNhIG51b2MgaGllbiBuYXkgY28g cmF0IA0KaXQgZG9hbmggbmdoaWVwIGNvIG5hbmcgbHVjIGhvYXQgZG9uZyBjbyBoaWV1IHF1YS4g Q2hpbmggb25nIE5ndXllbiBWYW4gVGh1YW4sIENodSANCm5oaWVtIFV5IGJhbiBQaGFwIGx1YXQg UXVvYyBob2kgZGEgY28geSBraWVuIHRyb25nIGJ1b2kgaG9wIGN1YSBVeSBiYW4gdGh1b25nIHZ1 IA0KUXVvYyBob2k6IEhpZW4gbmF5IG8gbnVvYyB0YSBjbyBxdWEgbmhpZXUgZG9hbmggbmdoaWVw IFhLTEQgdHJvbmcga2hpIG5hbmcgbHVjIGN1YSANCnBoYW4gZG9uZyBkb2FuaCBuZ2hpZXAgbGFp IGtlbS4NCg0KKEFuaDogVHJvbmcgbmFtIHF1YSwgcmF0IG5oaWV1IGxhbyBkb25nICBWaWV0ICBO YW0gdmUgbnVvYyB0cnVvYyBoYW4uKQ0KDQpPbmcgVGh1YW4gY29uIGRhdCByYSBjYXUgaG9pOiAi VGFpIHNhbyBraG9uZyB0YXAgdHJ1bmcgdmFvIG5odW5nIGRvYW5oIG5naGllcCBtYW5oIA0KZHUg bmFuZyBsdWM/IENvIG5odW5nIGRvYW5oIG5naGllcCBtb3QgbmFtIGtob25nIGR1YSBkdW9jIDEw MCBsYW8gZG9uZyBkaSBtYSANCmtob25nIGJpIHJ1dCBnaWF5IHBoZXAsIHZheSB0aGFpIGRvIGN1 YSBjbyBxdWFuIHF1YW4gbHkgdm9pIGNhYyBkb2FuaCBuZ2hpZXAgdGhlIG5hbz8iIA0KDQpOaHVu ZyB2aSBwaGFtIGx1YSBkYW8gWEtMRCB0cm9uZyB0aG9pIGdpYW4gcXVhIGNobyB0aGF5IHRodW9u ZyB4YXkgcmEgbyBjYWMgZG9hbmggDQpuZ2hpZXAgWEtMRCBraG9uZyB0aGF0IHN1IGNvIG5hbmcg bHVjLCBob2FjIG5hbmcgbHVjIGtlbS4gTmh1bmcgdGh1YyB0ZSBraGkgZG9hbmggDQpuZ2hpZXAg WEtMRCB2aSBwaGFtIGxhaSBjaHVhIGR1b2MgY28gcXVhbiBxdWFuIGx5IHh1IGx5IG1vdCBjYWNo IG5naGllbSBtaW5oIG1hIA0KY2h1IHlldSBjaGkgeWV1IGNhdSBkb2FuaCBuZ2hpZXAgc2FpIHBo YW0gc3VhIHNhaSByb2kgY2hvIHF1YSwgZGlldSBuYXkga2hpZW4gY2hvIGNhYyANCmRvYW5oIG5n aGllcCBzYWkgcGhhbSBkZSAibG9uIHRodW9jIiB2YSB0YWkgcGhhbSB0cm8gbGFpLg0KDQpOaGlu IG5oYW4gdHUgZ29jIGRvIG5hbmcgbHVjIGN1YSBkb2FuaCBuZ2hpZXAgWEtMRCBhbmggaHVvbmcg ZGVuIHF1eWVuIGxvaSBjdWEgDQpuZ3VvaSBsYW8gZG9uZywgb25nIEJ1aSBTeSBMb2ksIFBobyBD aHUgbmhpZW0gVXkgYmFuIGNhYyB2YW4gZGUgeGEgaG9pIGN1bmcgY2hvIGJpZXQsIA0KdmllYyBu Z3VvaSBsYW8gZG9uZyBiaSBsdWEgZGFvIFhLTEQgbmdheSBjYW5nIG5oaWV1IGNvbiB4dWF0IHBo YXQgdHUgbmd1eWVuIG5oYW4gY2FwIA0KZ2lheSBwaGVwIGNobyBjYWMgdGFwIGRvYW4gdmEgdG9u ZyBjb25nIHR5Lg0KDQoiSGF1IGhldCBraGkgY2FwIGdpYXkgcGhlcCBob2F0IGRvbmcgWEtMRCBs YSBjYXAgcGhlcCBjaG8gY2FjIHRhcCBkb2FuLCBjYWMgIHRvbmcgDQpjb25nIHR5IGRlbiBraGkg Y2h1eWVuIHh1b25nIGxhbSB2aWVjIHRoaSB0YXAgZG9hbiBob2FjIHRvbmcgY29uZyB0eSBsYWkg Z2lhbyBjaG8gbW90IA0KZ2lhbSBkb2MgZG9jIGxhcC4gQ2hpbmggdmkgbGUgbmF5IG5lbiBraGkg Y2FjIGRvYW5oIG5naGllcCBYS0xEIHJhIGRvaSByb2kgdGhhbmggbGFwIA0KY2FjIGNoaSBuaGFu aCwgbWEgY2FjIGNoaSBuaGFuaCBsYWkga2VtIHhhIHZlIG5hbmcgbHVjIG5lbiBjbyBuaGlldSBz YWkgcGhhbSBuaHUgDQpjaHV5ZW4gbmh1b25nIGxhbyBkb25nIGN1YSBjYWMgY2hpIG5oYW5oIGdp dWEgY29uZyB0eSBuYXkgdm9pIGNvbmcgdHkga2hhYywgdGhhbSBjaGkgDQpsYSBtdW9uIGdpYXkg cGhlcC4uLiIsIG9uZyBMb2kgY2hvIGJpZXQuDQoNCk5hbmcgbHVjIGN1YSBjYWMgZG9hbmggbmdo aWVwIFhLTEQgeWV1IGR1b2MgYmEgVHJ1b25nIFRoaSBNYWksIGNodSBuaGllbSB1eSBiYW4gDQpD YWMgdmFuIGRlIHhhIGhvaSBjdWEgUXVvYyBob2ksIGtoYW5nIGRpbmggcXVhIGJhbyBjYW8gZ2lh bSBzYXQgY3VhIFF1b2MgaG9pIHZlIGhvYXQgDQpkb25nIG5heS4gVGhlbyBiYSBNYWksIHF1eSBt byBob2F0IGRvbmcgY3VhIHBoYW4gZG9uZyBkb2FuaCBuZ2hpZXAgY29uIG5oby4gVHJvbmcgDQp0 b25nIHNvIDE2NyBkb2FuaCBuZ2hpZXAgZHVvYyBjYXAgcGhlcCBjaGkgY28gMTcgZG9hbmggbmdo aWVwIG1vaSBuYW0gZHVhIGR1b2MgdHUgDQoxLjAwMCBsYW8gZG9uZyByYSBudW9jIG5nb2FpIGxh bSB2aWVjIHRybyBsZW4sIDI5IGRvYW5oIG5naGllcCBkdWEgZHVvYyB0dSA1MDAgLSAxLjAwMCAN CmxhbyBkb25nIHJhIG51b2MgbmdvYWkgbGFtIHZpZWMsIDUwIGRvYW5oIG5naGllcCBkdWEgZGkg ZHVvYyB0dSAzMDAgLSA1MDAgbGFvIGRvbmcgdmEgDQo1MiBkb2FuaCBuZ2hpZXAgZHVhIGRpIGR1 b2MgZHVvaSAxMDAgbGFvIGRvbmcgbW9pIG5hbS4NCg0KVGhlbyBiYSBUcnVvbmcgVGhpIE1haSwg Y28gcXVhbiBxdWFuIGx5IGhpZW4gdGhvaSBjaHVhIHF1YW4gbHksIGtpZW0gc29hdCB2YSBkYW5o IGdpYSANCmR1b2MgaG9hdCBkb25nIGN1YSBjYWMgZG9hbmggbmdoaWVwIHh1YXQga2hhdSBsYW8g ZG9uZy4gTW90IGNvbmcgY3UgZGUga2llbSBzb2F0IHZpZWMgDQpuZ2hpZW0gdHVjIHRodWMgaGll biBob3AgZG9uZyBjdWEgZG9hbmggbmdoaWVwIGxhIGRhbmcga3kgY2hhcCB0aHVhbiBob3AgZG9u ZyB2b2kgY28gDQpxdWFuIHF1YW4gbHkgbWEgdGh1YyBjaGF0IGxhIHRoYW0gZGluaCBjYXAgcGhl cCBuaHVuZyB2aWVjIG5heSBraG8gdHJhbmgga2hvaSBoaW5oIHRodWMuIA0KDQpodHRwOi8vcGhh cGx1YXR0cC52bi8yMDEwMDYzMDExNTQxNDk5OXAwYzEwMTUvbW9pLW5hbS1raG9hbmctMTIwMDAt bmd1b2ktY2hldC1kby10YWktbmFuLWxhby1kb25nLmh0bSBIQSBMSU5IIDAxLzA3LzIwMTAgLSAx Mjo1OCBBTQ0KDQpUaHUgdHVvbmc6IE1vaSBuYW0ga2hvYW5nIDEyLjAwMCBuZ3VvaSBjaGV0IGRv IHRhaSBuYW4gbGFvIGRvbmcgDQoNCihQTCktIERvIGxhIGNvbiBzbyBkbyBCbyBMYW8gZG9uZy1U aHVvbmcgYmluaCB2YSBYYSBob2kgKExELVRCJlhIKSBkdWEgcmEgdGFpIGxvcCANCnRhcCBodWFu IHBodW9uZyBwaGFwIHRvIGNodWMgdHJ1eWVuIHRob25nIGFuIHRvYW4gdmUgc2luaCBsYW8gZG9u ZyBjaG8gY2FuIGJvIG5nYW5oIA0KbGFvIGRvbmcgdmEgY28gcXVhbiBiYW8gY2hpIGtodSB2dWMg bWllbiBUcnVuZy1UYXkgTmd1eWVuLg0KDQpMb3AgdGFwIGh1YW4gZG8gQm8gTEQtVEImWEgsIEJv IFRob25nIHRpbiB2YSBUcnV5ZW4gdGhvbmcgcGhvaSBob3AgdG8gY2h1YyB0YWkgVFAgSHVlIG5n YXkgMzAtNi4NCg0KQm8gTEQtVEImWEggY2hvIGJpZXQgdGhlbSB0cm9uZyBzbyAxMjAuMDAwLTEz MC4wMDAgbmd1b2kgYmkgdGFpIG5hbiBsYW8gZG9uZyBoYW5nIG5hbSwgY28ga2hvYW5nIDEwJSBu Z3VvaSBjaGV0LiANCg0KVGhlbyBvbmcgUGhhbSBHaWEgTHVvbmcsIFBobyBDdWMgdHJ1b25nIEN1 YyBBbiB0b2FuIGxhbyBkb25nIChCbyBMRC1UQiZYSCksIA0KdGluaCBoaW5oIHRhaSBuYW4gbGFv IGRvbmcgbyBWaWV0IE5hbSB2YW4gZGFuZyBkaWVuIGJpZW4gaGV0IHN1YyBwaHVjIHRhcC4gTmd1 eWVuIG5oYW4gDQpjaHUgeWV1IGxhIGRvIG5ndW9pIHN1IGR1bmcgbGFvIGRvbmcgdmkgcGhhbSB0 aWV1IGNodWFuIGFuIHRvYW4uIE5ndW9pIHN1IGR1bmcgbGFvIA0KZG9uZyBjdW5nIGNodWEgaHVh biBsdXllbiBhbiB0b2FuIGNobyBuZ3VvaSBsYW8gZG9uZy4gRGFjIGJpZXQsIGhpZW4gY28gaG9u IDkwJSANCmRvYW5oIG5naGllcCB0aGlldSBibyBtYXkgZ2lhbSBzYXQgbmd1b2kgbGFvIGRvbmcg dmUgdGh1YyBoaWVuIGNhYyBxdXkgZGluaCBhbiB0b2FuIHZlIHNpbmggbGFvIGRvbmcuIA0KDQpo dHRwOi8vY2h1eWVudHJhbmcudHVvaXRyZS52bi9WaWVjbGFtL0luZGV4LmFzcHg/QXJ0aWNsZUlE PTM5NzEwNiZDaGFubmVsSUQ9MjY5IDI1LzA4LzIwMTAsIDExOjIxIChHTVQrNykNCg0KVGFpIG5h biBsYW8gZG9uZzogVGhvbmcgdGluIHR1IEJvIExELVRCJlhIIGNobyBiaWV0IHRob2kgZ2lhbiBx dWEgY2EgbnVvYyB4YXkgDQpyYSB0cmVuIDIuNjAwIHZ1IHRhaSBuYW4gbGFvIGRvbmcgbGFtIDIu NjgwIG5ndW9pIGJpIG5hbiAodGFuZyB0cmVuIDM0JSBzbyB2b2kgDQpjdW5nIGt5IG5hbSAyMDA5 KSwgdHJvbmcgZG8gMjY2IG5ndW9pIGNoZXQsIDUyNSBuZ3VvaSBiaSB0aHVvbmcgbmFuZy4gDQoN CkNhYyBkaWEgcGh1b25nIGR1bmcgZGF1IHZlIGNhYyB2dSB0YWkgbmFuIGxhIFRQLkhDTSwgSGEg Tm9pLCBCaW5oIER1b25nLCBRdWFuZyANCk5pbmguLi4gY2h1IHlldSB0cm9uZyBsaW5oIHZ1YyB4 YXkgZHVuZywga2hhaSB0aGFjIG1vIHZhIHN1IGR1bmcgZGllbi4gDQoNCmh0dHA6Ly90dW9pdHJl LnZuL0NoaW5oLXRyaS1YYS1ob2kvNDE4MDA5L1RhaS1uYW4tZ2lhby10aG9uZy1uYW0tMjAxMC1I b24tMTEwMDAtbmd1b2ktY2hldC5odG1sIFRVQU4gUEhVTkcgMjkvMTIvMjAxMCwgMDc6NTQgKEdN VCs3KQ0KDQpUaHUgdHVvbmc6IFRhaSBuYW4gZ2lhbyB0aG9uZyAyMDEwIHZhbiBuZ2hpZW0gdHJv bmcgLSBraG9uZyBkYXQgZHVvYyBtdWMgdGlldSBnaWFtIDUlIHNvIG5ndW9pIGNoZXQgDQoNCmh0 dHA6Ly9oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9YYS1ob2kvNDE5MTMzLzExNDQ5LW5ndW9p LWNoZXQtdmktdGFpLW5hbi1naWFvLXRob25nLW5hbS0yMDEwLmh0bSAgVFRYVk4gMjgvMTIvMjAx MCAyMDoxMw0KDQoxMS40NDkgbmd1b2kgY2hldCB2aSB0YWkgbmFuIGdpYW8gdGhvbmcgbmFtIDIw MTAgLSBUaGlldCBoYWkgcmF0IGxvbiB2ZSBuZ3VvaSB2YSBjdWEgDQoNClRyb25nIG5hbSAyMDEw LCBjYSBudW9jIHhheSByYSAxNC40NDIgdnUgdGFpIG5hbiBnaWFvIHRob25nLCBsYW0gMTEuNDQ5 IG5ndW9pIGNoZXQsIA0KMTAuNjMzIG5ndW9pIGJpIHRodW9uZywgc28gdm9pIG5hbSAyMDA5IHRh bmcgMS43NzggdnUsIGdpYW0gNDcgbmd1b2kgY2hldCwgdGFuZyAyLjU0NCANCm5ndW9pIGJpIHRo dW9uZy4gDQoNCkNhYyBjb24gc28gdHJlbiBkYSBkdW9jIGNvbmcgYm8gdHJvbmcgYmFvIGNhbyBj dWEgVXkgYmFuIEFuIHRvYW4gZ2lhbyB0aG9uZyBRdW9jIGdpYSANCnRhaSBIb2kgbmdoaSBBbiB0 b2FuIGdpYW8gdGhvbmcgdG9hbiBxdW9jIHZhIHRyaWVuIGtoYWkgY2h1b25nIHRyaW5oIGhhbmgg ZG9uZyBuYW0gDQoyMDExLCBkaWVuIHJhIG5nYXkgMjgvMTIuDQoNClRoZW8gVXkgYmFuIEFuIHRv YW4gZ2lhbyB0aG9uZyBRdW9jIGdpYSwgbmFtIDIwMTAsIGhhbmggbGFuZyBwaGFwIGx5IGNobyBj b25nIHRhYyANCmJhbyBkYW0gdHJhdCB0dSBhbiB0b2FuIGdpYW8gdGhvbmcgZGFuZyBkYW4gZHVv YyBob2FuIHRoaWVuLiBDb25nIHRhYyB0dXllbiB0cnV5ZW4sIHBobyANCmJpZW4gZ2lhbyBkdWMg cGhhcCBsdWF0IGFuIHRvYW4gZ2lhbyB0aG9uZyBkdW9jIHRpZXAgdHVjIGRheSBtYW5oIHZvaSBu aGlldSBoaW5oIHRodWMgZGEgDQpkYW5nLiBDb25nIHRhYyB0dWFuIHRyYSBraWVtIHNvYXQsIHh1 IGx5IHZpIHBoYW0gZHVvYyBjb2kgdHJvbmcsIHZ1YSBjdW9uZyBjaGUgdGhpIGhhbmggcGhhcCBs dWF0LCB2dWEgZ2lhbyBkdWMgcmFuIGRlIGNvIHRhYyBkdW5nIHBob25nIG5ndWEuDQoNCk5oaWV1 IGNvbmcgdHJpbmggZ2lhbyB0aG9uZyBkdW9jIHRhbmcgY3VvbmcgZHV5IHR1LCBiYW8gZHVvbmcg Y29uZyB0cmluaCBnaWFvIHRob25nLCANCnRpZXAgdHVjIHJhIHNvYXQgbG9haSBibyBjYWMgYmll biBiYW8gaGlldSBkdW9uZyBibyBiYXQgaG9wIGx5LCBibyBzdW5nIGNhYyBiaWVuIGJhbyBoaWV1 IA0KbyBuaHVuZyBkaWVtIGNhbiB0aGlldCwgbmhhbmggY2hvbmcgeHUgbHksIGtoYWMgcGh1YyBj YWMgImRpZW0gZGVuIiBkYSBkdW9jIHhhYyBkaW5oLCANCnhvYSBibyBkdW9uZyBuaGFuaCBkYXUg bm9pIHRyYWkgcGhlcCB2YW8gcXVvYyBsby4gDQoNClR1eSBuaGllbiwgY29uZyB0YWMgYmFvIGRh bSB0cmF0IHR1IGFuIHRvYW4gZ2lhbyB0aG9uZyB0cm9uZyBuYW0gMjAxMCB2YW4gY29uIG5odW5n IA0KbWF0IHRvbiB0YWksIGhhbiBjaGUsIGRvaSBob2kgY28gdGhlbSBuaHVuZyBubyBsdWMgbW9p IHRyb25nIGNvbmcgdGFjIGRhbSBiYW8gdHJhdCB0dSBhbiANCnRvYW4gZ2lhbyB0aG9uZyBuYW0g MjAxMS4gQ3UgdGhlIG5odSB2aWVjIHZpIHBoYW0gY2FjIHF1eSBkaW5oIHZlIHRyYXQgdHUgYW4g dG9hbiBnaWFvIA0KdGhvbmcgY29uIGRpZW4gcmEgbmhpZXUgdmEgcGh1YyB0YXA7IFRpbmggdHJh bmcgaG9jIHNpbmgsIHNpbmggdmllbiB2aSBwaGFtIHBoYXAgbHVhdCB2ZSANCnRyYXQgdHUgYW4g dG9hbiBnaWFvIHRob25nIG5nYXkgY2FuZyBuZ2hpZW0gdHJvbmc7IENvbiB4YXkgcmEgbmhpZXUg dnUgdGFpIG5hbiBnaWFvIA0KdGhvbmcgZ2F5IGhhdSBxdWEgZGFjIGJpZXQgbmdoaWVtIHRyb25n OyBVbiB0YWMgZ2lhbyB0aG9uZyB2YW4geGF5IHJhIHRhaSBIYSBOb2kgdmEgDQpUaGFuaCBwaG8g SG8gQ2hpIE1pbmggdmFvIGdpbyBjYW8gZGllbSB0YWkgbW90IHNvIHR1eWVuLCBraHUgdnVjIHRy b25nIGRpZW0gcGh1YyB0YXAgDQpkbyBwaHVvbmcgdGllbiB0YW5nIGNhbzsgdGluaCBoaW5oIHR1 IHRhcCBkaSB4ZSBtb3RvIHBob25nIG5oYW5oOyBsYW5nIGxhY2ggZ2F5IG1hdCB0cmF0IA0KdHUg Y29uZyBjb25nIHZhbiBkaWVuIHJhIHRhaSBIYSBOb2ksIFRoYW5oIHBobyBIbyBDaGkgTWluaCwg VnVuZyBUYXUsIExvbmcgQW4uLi4NCg0KLQ0KaHR0cDovL3ZpY29uZ2Rvbmcudm4vbmV3cy92aWV3 LmFzcHg/bmV3c0lkPTE0MjczNzMgMTAvMDUvMjAwOSAwNzoyOSBQTQ0KDQpUaHUgdHVvbmc6IE5n dW9pIHRpZXUgZHVuZyBWaWV0IE5hbSBkdW9jIGJhbyB2ZSBrZW0gIA0KDQpIYW5nIGxvYXQgdnUg dmllYyB4YW0gaGFpIHF1eWVuIGxvaSBuZ3VvaSB0aWV1IGR1bmcgbmh1IGdpYW4gbGFuIHhhbmcg ZGF1LCANCnN1YSAibmdoZW8gZGFtLCBjaHVhIG1lbGFtaW4iLCBYYW5nIGNodWEgYWNldG9uIGdh eSBob25nIGRvbmcgY28gZ2FuIG1heSwgDQpoYW5nIHRheGkgZ2lhbiBkb2kgdGF4aW1ldCwgbnVv YyB0dW9uZyBjaHVhIGNoYXQgMy1NUENEIGdheSB1bmcgdGh1LCBzdWEgDQpkb25nIGhvcCBraG9u ZyBkdW5nIHRyb25nIGx1b25nLiBTdWEgdHVvaSBwaGEgdHUgc3VhIGJvdC4gDQoNCk51b2MgbWFt IG5oYW4gbWFjIGxhIG51b2MgbWFtIGNhIGhvaSBCYWMgQXUsIHNhdSBwaGFpIGNhaSBjaGluaCBs YWkgbGEgDQpudW9jIG1hbSBodW9uZyBjYSBob2ksIHJvaSBsYWkgY2h1YSB1cmUsIHJhdSBjdSBx dWEgcGh1biB0aHVvYyBraWNoIHRoaWNoIA0Kdm8gdG9pIHZhLiBIYW5nIGdpYSwgaGFuZyBuaGFp LCBoYW5nIGtlbSBjaGF0IGx1b25nIHRyYW4gbGFuLC4uLk5odW5nIGNodWEgDQpjbyB2dSBraWVu IG5hbyB2ZSB2aSBwaGFtIHF1eWVuIGN1YSBuZ3VvaSB0aWV1IGR1bmcsIGNodWEgRE4gZ2lhbiBk b2kgbmFvIGJpIGNvIHF1YW4gY2h1YyBuYW5nIGRpZW0gbWF0IGNoaSB0ZW4uIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDcvMjAxMDExMTkyMzIxNDYuYXNw eCBIb2FuZyBWaWV0IC0gUC5UaGFuaCAxOS8xMS8yMDEwIDIzOjIxIA0KICANClRodSB0dW9uZzog QmF0IGx1YyB2b2kgZ2lhbiBsYW4geGFuZyBkYXUgICANCiAgDQpUaW5oIHRyYW5nIGdpYW4gbGFu IHhhbmcgZGF1LCBjYSB2ZSBkbyBsdW9uZyBsYW4gY2hhdCBsdW9uZywgZGFuZyBkaWVuIGJpZW4g bmdheSBjYW5nIA0KdGluaCB2aSB0cm9uZyBraGkgIm1hdCB0cmFuIiB0aGFuaCB0cmEga2llbSBz b2F0IGNvbiBsb2kgbG9uZy4gDQpEbyBsYSBuaGFuIGRpbmggY3VhIG5oaWV1IGRhaSBiaWV1IHRy b25nIGRpcCB0b25nIGtldCA1IG5hbSBob2F0IGRvbmcgcXVhbiBseSBkbyBsdW9uZyANCigyMDA2 IC0gMjAxMCkgZG8gQ2hpIGN1YyBUaWV1IGNodWFuIC0gRG8gbHVvbmcgLSBDaGF0IGx1b25nIChU Q0RMQ0wpIFRQLkhDTSB0byANCmNodWMgc2FuZyAxOS4xMS4NCg0KTXVhIDEgbGl0IGRvbmcgdGhp ZXUgdG9pIDAsMiAtIDAsMjUgbGl0DQoNClR1IGRhdSBuYW0gZGVuIG5heSwgVGhhbmggdHJhIFNv IEtob2EgaG9jIHZhIENvbmcgbmdoZSBUUC5IQ00gZGEgcGhhdCBoaWVuIDMvMjYgDQpjdWEgaGFu ZyBiYW4geGFuZyBraG9uZyBkYXQgdHJpIHNvIG9jdGFuLCAyLzE1IGNheSB4YW5nIGdpYW4gbGFu IHZlIHNhaSBzbyBjb3QgZG8gdmEgYmFuIA0KeGFuZyBraG9uZyBkYXQgY2hhdCBsdW9uZy4uLiBO Z29haSByYSwgY29uIGNvIGhpZW4gdHVvbmcgZ2lhbiBsYW4gY2hhdCBsdW9uZyB4YW5nIGRhdSAN CnRyb25nIHF1YSB0cmluaCB2YW4gY2h1eWVuIHR1IGRvYW5oIG5naGllcCBkYXUgbW9pIGRlbiBj dWEgaGFuZyBiYW4gbGUuIEN1bmcga2hvbmcgaXQgDQp0cnVvbmcgaG9wIG5ndW9pIGRhbiBraGll dSBuYWkgdmUgaGFuaCB2aSBnaWFuIGxhbiB4YW5nIGRhdSBjdWEgY2FjIGNodSBjdWEgaGFuZyB4 YW5nIA0Kbmh1bmcgY28gcXVhbiBxdWFuIGx5IGtobyB4dSBseSB2aSBraG9uZyBjbyBjaHVuZyBj dS4gDQogDQooQW5oOiBYYW5nIGRhdSwgbGluaCB2dWMgZGFuZyB4YXkgcmEgbmhpZXUgdmkgcGhh bSB2ZSBkbyBsdW9uZywgY2hhdCBsdW9uZyAtIEFuaDogRC5ELk1pbmgpIA0KDQpEYWkgZGllbiBD aGkgY3VjIFF1YW4gbHkgdGhpIHRydW9uZyAoUUxUVCkgVFAuSENNIHRodWEgbmhhbiBoaWVuIHR1 b25nIGdpYW4gbGFuIHZlIA0KZG8gbHVvbmcgZGllbiBiaWVuIHBodWMgdGFwLCB0aW5oIHZpLCB2 b2kgbmhpZXUgdnUgZ2lhbiBsYW4gbGllbiB0aWVwIHhheSByYS4gQ2FjIGhpbmggdGh1YyANCmdp YW4gbGFuIHZlIGRvIGx1b25nIHBobyBiaWVuIG5odSBwaGEgbmllbSBwaG9uZyBkZSBsYW0gc2Fp IGxlY2ggZG9uZyBobyBkbywgc3UgZHVuZyANCmNvdCBib20ga2hvbmcgcXVhIGtpZW0gZGluaCwg dmEgZ2FuIGRheSBsYSBnYW4gY29uIGNoaXAgZGllbiB0dSB2YW8gdHJ1IGJvbSBkZSBkaWV1IA0K a2hpZW4gdHUgeGEgcmF0IGtobyBwaGF0IGhpZW4uIEtldCBxdWEga2llbSB0cmEgY3VhIGNoaSBj dWMgY2hvIHRoYXksIGNvIGNvdCBib20gZG9uZyANCnRoaWV1IGdhcCAxLDUgLSAzIGxhbiBtdWMg Y2hvIHBoZXAsIHRoYW0gY2hpIGNvIG5vaSBtdWEgMSBsaXQgeGFuZyBkYXUgYmkgZG9uZyB0aGll dSB0b2kgDQowLDIgLSAwLDI1IGxpdC4gTmdvYWkgcmEgY29uIGNvIGhpZW4gdHVvbmcgcGhhIHhh bmcgY2hhdCBsdW9uZyB0aGFwIHZhbyB4YW5nIGNoYXQgbHVvbmcgDQpjYW8gZGUgYmFuLiANCg0K RGF1IHRoYW5nIDExLjIwMTAsIERvYW4ga2llbSB0cmEgbGllbiBuZ2FuaCB4YW5nIGRhdSBjdWEg VFAuSENNIGRhIHBoYXQgaGllbiA3IGN1YSANCnhhbmcgZ2lhbiBsYW4geGFuZyBkYXUuIFRyb25n IGRvIGNvIG5oaWV1IGN1YSBoYW5nIHZ1YSBiYW4geGFuZyBkb20gdnVhIGRvbmcgdGhpZXUgDQpu aHU6IEN1YSBoYW5nIDE0MzQgUGhhbSBUaGUgSGllbiAoUC41LCBRLjgpIGN1YSBDb25nIHR5IFRO SEggVE0gRFYtU1ggeGFuZyBkYXUgDQpIb2FuZyBUdWFuICgxMi4yMzIgbGl0IHhhbmcgQTkyIGRv bSwgMiB2b2kgYm9tIHRoaWV1IHhhbmcpOyBDdWEgaGFuZyBjdWEgRE5UTiBUTSANCktpbSBRdWUg dGFpIEQxMi8yMiB0aW5oIGxvIDEwLCBQLkJpbmggVHJpIERvbmcsIFEuQmluaCBUYW4gKDEyLjM3 MiBsaXQgeGFuZyBBOTIgZG9tLCANCjEgdm9pIGRvbmcgdGhpZXUgeGFuZykuIEROVE4gVE0gS2lt IFF1ZSBjdW5nIGJpIENoaSBjdWMgUUxUVCBwaGF0IGhpZW4gZ2lhbiBsYW4gDQp0YWkgMy85IGNv dCBib20geGFuZyBkYXUga2hvbmcgZGF0IHlldSBjYXUgdmUgZG8gbHVvbmcuLi4gDQoNClRydW9j IHkga2llbiBjaG8gcmFuZyAicmF0IGtobyBuZ2FuIGNoYW4sIG5oYXQgbGEgdHJ1b25nIGhvcCBn YW4gY2hpcCBkaWVuIHR1IHZhbyB0cnUgDQpib20iLCBvbmcgRG8gVmlldCBIdW5nLCBUcnVvbmcg cGhvbmcgRG8gbHVvbmcgZHVuZyB0aWNoIC0gbHV1IGx1b25nIHRodW9jIFRydW5nIA0KdGFtIEt5 IHRodWF0IFRDRExDTCAzIChRdWF0ZXN0IDMpLCBraGFuZyBkaW5oIG5ldSBtdW9uIHRoaSAiYmFu ZyB5IGNoaSB2YSBxdXllbiBsdWMgDQpjdWEgbWluaCwgY2FjIGNvIHF1YW4gcXVhbiBseSBuaGEg bnVvYyBob2FuIHRvYW4gY28gdGhlIHF1YW4gbHkgZHVvYyB0aW5oIHRyYW5nIGdhbiANCmNoaXAg Z2lhbiBsYW4geGFuZyBkYXUiLiAiSG9hdCBkb25nIHRyZW4gbWF0IHRyYW4ga2llbSB0cmEgZG8g bHVvbmcgY2hhdCBsdW9uZyB4YW5nIGRhdSANCmhpZW4gbmF5IHF1YSBrZW0uIFRoZW8gdG9pLCBu ZXUgeWV1IGNhdSBjYWMgY3VhIGhhbmcgeGFuZyBkYXUgaW4gaG9hIGRvbiBjaG8ga2hhY2ggDQpo YW5nIHNhdSBraGkgZG8geGFuZyBzZSBnaXVwIGdpYW0gZ2lhbiBsYW4gdmUgZG8gbHVvbmcgeGFu ZyBkYXUsIG5oYXQgbGEgYmFuZyBjb24gY2hpcCIsIA0Kb25nIEh1bmcgZ29wIHkuDQoNCktob25n IHF1YW4gbHkgZHVvYyBwaHVvbmcgdGllbiBkbyBsdW9uZw0KDQpOaGlldSBsYW5oIGRhbyBDaGkg Y3VjIFRDRExDTCBjYWMgdGluaCB0aHVhIG5oYW4gZGVuIG5heSB2YW4ga2hvbmcgcXVhbiBseSBk dW9jIA0KcGh1b25nIHRpZW4gZG8gbHVvbmcsIGRvIGxhIG5ndXllbiBuaGFuIGRhbiBkZW4gdGlu aCB0cmFuZyBnaWFuIGxhbiBwaG8gYmllbi4gT25nIA0KTmd1eWVuIE1pbmggVGh1b25nLCBDaGkg Y3VjIHRydW9uZyBDaGkgY3VjIFRDRExDTCBDYW4gVGhvLCBjaG8gcmFuZyB0aWVuIHRodSBkbyAN CmdpYW4gbGFuIHF1YSBsb24ga2hpZW4gZG9hbmggbmdoaWVwIHRpbSBtb2kgY2FjaCBkZSBsYWNo IGx1YXQuIFRyb25nIGtoaSBkbywgaGUgdGhvbmcgDQp2YW4gYmFuIHBoYXAgbHVhdCB2ZSBraWVt IHNvYXQga2luaCBkb2FuaCB4YW5nIGRhdSBjb24gbmhpZXUga2UgaG8uIE5oYW4gbHVjLCBjbyBz byB2YXQgDQpjaGF0IHBodWMgdnUgY2hvIGNvbmcgdGFjIHRoYW5oLCBraWVtIHRyYSwgcXVhbiBs eSB2aSBwaGFtIGRvIGx1b25nIHZ1YSB0aGlldSBsYWkgdnVhIA0KeWV1LiBMb2kgZHVuZyBrZSBo byBwaGFwIGx1YXQgdmUgZ2lvaSBoYW4gc2FpIHNvIGNobyBwaGVwIG5lbiBkZSBkYW4gZGVuIHZp ZWMgY2h1IGtpbmggDQpkb2FuaCBjYXkgeGFuZyBtb2Mgbm9pIHZvaSB0aGFuaCB0cmEgdmllbiBs YWNoIGx1YXQsIHZhIG5ndW9pIHRpZXUgZHVuZyBsYW5oIGR1LiANCg0KRG9uZyBxdWFuIGRpZW0s IG9uZyBIdW5nIGNvbiBjaGkgcm8gbmh1bmcgYmF0IGNhcCB0cm9uZyBjb25nIHRhYyBraWVtIHRy YSwga2llbSBzb2F0IA0KZG8gbHVvbmcgZ2F5IG5oaWV1IHRoaWV0IGhhaSBjaG8gbmd1b2kgdGll dSBkdW5nLCBraG9uZyBjaGkgdm9pIG1hdCBoYW5nIHhhbmcgZGF1LiANCg0KQ2hhbmcgaGFuLCBo YXUgaGV0IGRvbmcgaG8gbnVvYyBkbyBUcnVuZyB0YW0gS3kgdGh1YXQgVENETENMIDMga2llbSB0 cmEgZGV1IHBoYXQgDQpoaWVuIHNhaSBzbyByYXQgbG9uLiBOaHVuZyBraGkgcGhhdCBoaWVuIGRv bmcgaG8gY2hheSBzYWksIG5ndW9pIGRhbiBwaGFpIHRvaSBsdWkga2hpZXUgbmFpIA0KbmhpZXUg bGFuIHRoaSBkb24gdmkgY2FwIG51b2MgbW9pIGNoaXUgYm9pIHRodW9uZy4gIlRydW9uZyBob3Ag bmd1b2kgZGFuIGtob25nIHBoYXQgDQpoaWVuIGR1b2MgdGhpIHNhbz8gVGFpIHNhbyBraGkgcGhh dCBoaWVuIHNhaSBwaGFtLCB0aGFuaCB0cmEga2hvbmcgeHUgcGhhdCBkb24gdmkgbmF5PyANCkNv IHRpbmggdHJhbmcgdnVhIGRhIGJvbmcgdnVhIHRob2kgY29pLCB2dWEgbGEgcXVhbiBseSB2dWEg bGEga2llbSBkaW5oLCB0aGkgbGFtIHNhbyANCmtoYWNoIHF1YW4gZHVvYz8iLCBvbmcgSHVuZyBk YXQgY2F1IGhvaS4NCg0KQ2hpIGN1YyBRTFRUIFRQLkhDTSBjdW5nIHhhYyBkaW5oIGtob25nIGNo aSB4YW5nIGRhdSBtYSBjYWMgbWF0IGhhbmcga2hhYyBjdW5nIA0KYmkgZ2lhbiBsYW4gdHJhbiBs YW4gbmh1IHRodWMgcGhhbSwgZHVvYyBwaGFtLCBteSBwaGFtLCBjb25nIG5naGUgcGhhbSwgcGhh biBib24sIA0KZ2lvbmcgY2F5IHRyb25nLCBuZ3V5ZW4gcGh1IGxpZXUsIGtoaSBkb3QsIGdhcywg ZGllbiwgbnVvYy4uLiANCg0KT25nIE5ndXllbiBIdW5nIERpZXAsIFZ1IHRydW9uZyBWdSBEbyBs dW9uZyAoVG9uZyBjdWMgVENETENMKSwgdGhhbmcgdGhhbjogDQoiSGllbiB2YW4gY29uIHF1YSBu aGlldSBoYW5oIHZpIHZpIHBoYW0gdmUgeGFuZyBkYXUsIGhhbmcgZG9uZyBnb2kgc2FuLiBEYXkg bGEgdHJhY2ggDQpuaGllbSBjdWEgY28gcXVhbiBxdWFuIGx5IG5oYSBudW9jIHZlIGxpbmggdnVj IG5heSB2aSBobyBodW9uZyBsdW9uZyBkbyBkb2FuaCBuZ2hpZXAgdmEgbmd1b2kgZGFuIGRvbmcg Z29wIi4gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0RvaS1zb25nLzIwMTAvMDQvM0JBMUIy NkYvIDIzLzQvMjAxMCwgMDk6MzcgR01UKzcNCg0KVGh1IHR1b25nOiBOZ3VvaSBtaWVuIFRydW5n IGNoYXQgdmF0IHZpIHRoaWV1IGRpZW4gDQoNCkRvIHhvIGRpIG11YSBtYXkgcGhhdCBkaWVuLCBi b20gbnVvYyBtYXkgZHUgdHJ1IHZhbyB4bywgY2hhdSBob2FjIHJ1IG5oYXUgcmEgYmllbiwgaG8g DQp0cm9uIG5hbmcuLi4gU2FuIHh1YXQsIHNpbmggaG9hdCBjdWEgbmd1b2kgZGFuIFRoYW5oIEhv YSwgTmdoZSBBbiwgQmluaCBEaW5oLCBRdWkgDQpOaG9uLi4uIGJpIGRhbyBsb24ga2UgdHUga2hp IGxpY2ggY2F0IGRpZW4gbHVhbiBwaGllbiBkdW9jIHRodWMgaGllbiB0dSBjdW9pIHRoYW5nIDMu DQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0RvaS1zb25nLzIwMTAvMDQvM0JBMUIxRjYvIDIy LzQvMjAxMCwgMTI6MTMgR01UKzcNCg0KVGh1IHR1b25nOiBCZW5oIHZpZW4gbWllbiBUcnVuZyBr aG8gdmkgY3VwIGRpZW4gDQoNCk5hbmcgbm9uZyBrZW0gdGhlbyBkaWVuIGN1cCBsaWVuIHR1YyB0 YWkgY2FjIGNvIHNvIHkgdGUgbWllbiBUcnVuZyB0cm9uZyBuaHVuZyBuZ2F5IA0KcXVhIGRhIGto aWVuIGhhbmcgbmdoaW4gYmVuaCBuaGFuIGtob24ga2hvLiBDbyBub2kgZGllbiBtYXQgNiBidW9p IHRyb25nIHR1YW4ga2hpZW4gDQpjb25nIHRhYyBraGFtLCBjaHVhIGJlbmggZ2FwIG5oaWV1IGto byBraGFuLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjYv MjAxMDA2MjYwMzIxNTUuYXNweCANCg0KVGh1IHR1b25nOiBNaWVuIFRydW5nIGNvIG5ndXkgY28g bWF0IHRyYW5nIGhhbmcgdmFuIGhlYy10YSBsdWEgdmkgaGFuIA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzQvMjAxMDA4MTcwMjA2MzQuYXNweCAxNy8wOC8y MDEwIDI6MDYgDQoNClRodSB0dW9uZzogQ2FuaCBiYW8gc2luaCB2YXQgbmdvYWkgbGFpICAgDQog IA0KSG9uIDEwMCBsb2FpIHNpbmggdmF0IG5nb2FpIGxhaSAoU1ZOTCkgZGFuZyBoaWVuIGRpZW4g dGFpIFZOIGxhIG1vaSBuZ3V5IGxvbiBjaG8gbW9pIA0KdHJ1b25nIHNpbmggdGhhaSwgbmh1OiBv YyBidW91IHZhbmcsIHJ1YSB0YWkgZG8sIGNheSBtYWkgZHVvbmcuLi4gQ28gbG9haSBTVk5MIGRh IGdheSByYSANCm5oaWV1IHRhYyBoYWkgZGFuZyBrZSBjaG8gbW9pIHRydW9uZyBzaW5oIHRoYWku IE1vaSBkYXkgbmhhdCwgdmllYyBtb3QgY29uZyB0eSBvIENhbiANClRobyBuaGFwIGtoYXUgNDAg dGFuIHJ1YSB0YWkgZG8gbGEgdGllbmcgY2h1b25nIGJhbyBkb25nIHZlIHRodWMgdHJhbmcgcXVh biBseSBTVk5MIGdheSBoYWkuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vcHNrcy8yMDEw MDgvQmFjLXNpLU5naGVvLSstdGh1Yy10aG9pLSstY2h1cC1naXV0LSstdHJ1Yy1sb2ktOTI4Njk4 LyBDYW0gUXV5ZW4gKFRodWMgaGllbikgMDc6MzEsIDEzLzA4LzIwMTAgKEdNVCs3KQ0KDQpUaHUg dHVvbmc6IEJhYyBzeSBuZ2hlbyArIHRodWMgdGhvaSArIGNodXAgZ2l1dCArIHRydWMgbG9pDQoN CkdTLCBWaWVuIHN5IFBoYW0gU29uZywgbmd1eWVuIEJvIHRydW9uZyBCbyBZIHRlLCBDaHUgdGlj aCBUb25nIGhvaSBZIGhvYyBWaWV0IE5hbSANCmJheSB0bzogTHVvbmcgdGhhcCBuaHVuZyBkb2kg c29uZyBjYW8gbGEgY28gY2FpIGdpIGRvIGtob25nIGR1b2MgbWluaCBiYWNoIHZhIHRoaWV1IA0K bmhhbiBkYW8NCkNvIHRoZSBub2kgYnVjIHRyYW5oIHZlIHRodSBuaGFwIGN1YSBjYW4gYm8gbmdh bmggeSB0ZSBoaWVuIG5heSByYXQgbmhpZXUgbWF1IHNhYzogbm9pIA0KcmF0IGNhbywgbm9pIHJh dCB0aGFwLCB0cm9uZyBjdW5nIG1vdCBub2kgY3VuZyBjbyB0aW5oIHRyYW5nIG5heS4gRGFjIGJp ZXQgbmh1bmcgbm9pIG5odSANClRQIEhDTSB0aGkgdGh1IG5oYXAgY3VhIGJhYyBzeSBjb24gY2Fv IGhvbiBuaGlldSBzbyB2b2kgSGEgTm9pLg0KU29uZyBjYW4gbmhpbiBuaGFuIHZlIGNvIGJhbiB0 aGkgZGFpIG5nbyBjaGluaCB0aHVjIGN1YSBOaGEgbnVvYyBkb2kgdm9pIG5nYW5oIHkgbGEgDQp0 aGFwIHRvYW4gZGllbiAodHUgbHVvbmcgaGFuZyB0aGFuZyBkZW4gdGllbiBjb25nIG1vLCB0aWVu IGNvbmcgbGFtIHRodSB0aHVhdCwgdnYuLi4pLiANClRoYW0gY2hpIGNvIG5oaWV1IGNobyBxdWEg dGhhcCAobmh1IGJlbmggdmllbiB2ZSBsYW8sIHBob25nLCB0YW0gdGhhbiwgLi4uKS4gRGlldSBu YXkgDQpudW9jIHRhIGJpIGFuaCBodW9uZyB0dSBMaWVuIFhvLCBjb2kgbmdhbmggeSBsYSBuZ2Fu aCAiY29uZyBuZ2hpZXAgbmhlIi4gDQoNCiJOaHVuZyBraG9uZyBwaGFpIGFpIGN1bmcgY28gY2Fj aCB0YW5nIHRodSBjaGluaCBkYW5nLCBob3AgcGhhcC4gQ2h1bmcgdGEgZGEgdGhheSBiYW8gDQpj aGkgbm9pIHZlIGhvYSBob25nIGNobyBiYWMgc3kga2UgZG9uIHRodW9jIChjdW5nIGhhbmcgdHJh bSB0cmlldS90aGFuZyksIHRpZW4gYmlldSB4ZW4sIA0KcGhvbmcgYmksIHF1YSBjYXAsIHJvaSBi YW8gY2h1eWVuIHRpZXUgY3VjIGtoYWMsIHZ2Li4uIERvIGxhIG5odW5nIGNhY2ggdGFuZyB0aHUg dHJhaSB2b2kgDQp5IGR1Yy4gVmkgdGhlLCBraGkgdGhheSBiYWMgc3kgbHVvbmcgdGhhcCBuaHVu ZyBjbyBkb2kgc29uZyBjYW8gbGEgZHUgbHVhbiB0aGF5IGNvIGNhaSBnaSANCmRvIGtob25nIGR1 b2MgbWluaCBiYWNoIHZhIHRoaWV1IG5oYW4gZGFvLiBEYXkga2hvbmcgcGhhaSBjYXUgY2h1eWVu IGN1YSByaWVuZyANCm5nYW5oIHkgbWEgbGEgY2F1IGNodXllbiB4YSBob2kiLSBHUyBQaGFtIFNv bmcNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMzLzIwMTAw ODA5MDEwMjQ2LmFzcHggVGhhbmggVHVuZyAtIFRpZW4gRGF0IDA5LzA4LzIwMTAgMTowMiANCg0K VGh1IHR1b25nOiBWaWVuIHBoaSBjb25nIGNhbyBob24gdHUgICANCiAgDQpIaWVuIG5heSwgbyBo ZSB0aG9uZyBiZW5oIHZpZW4gKEJWKSBjb25nLCBuZ29haSBtdWMgZ2lhIHRpbmggY2hvIG5ndW9p IGJlbmggdGhlbyANCnF1eSBkaW5oIGN1YSBOaGEgbnVvYywgdGhpIGNvbiBjbyBuaGlldSBsb2Fp IGhpbmggZGljaCB2dSB2b2kgZ2lhIGNhIG11b24gaGluaCANCnZhbiB0cmFuZy4uLiBWYSwgbXVj IGdpYSB0YWkgbW9pIEJWIGNvbmcgY3VuZyBkdW9jIHhheSBkdW5nIHJhdCBraGFjIG5oYXUuIA0K DQpNdW9uIGR1b2MgaHVvbmcgY2FjIG11YyBnaWEga2h1bmcgY3VhIE5oYSBudW9jIHF1eSBkaW5o LCBuZ3VvaSBiZW5oIHRodW9uZyBraG9uZyANCmR1b2MgcGh1YyB2dSB0YW4gdGluaCBuZW4gYnVv YyBwaGFpIGNob24gZGlldSB0cmkgImRpY2ggdnUiIG8gbmdheSB0YWkgQlYgY29uZyANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvIFRoZW8gTGFvIERvbmcgMDEwNDIv MjAxMDEwMTIxMDIwNDEuYXNweCAxMi8xMC8yMDEwIDEwOjIwIA0KDQpUaHUgdHVvbmc6IFRyZSBl bSBiaSBiYW8gbHVjIHZhIHhhbSBoYWkgdGluaCBkdWMgLSBTT1MhICAgDQogIA0KQ3VvYyBob2kg dGhhbyBQaG9uZywgY2hvbmcgYmFvIGx1YywgeGFtIGhhaSB0cmUgZW0gZHVvYyBCbyBMRFRCWEgg dG8gY2h1YyB2b2kgc3UgDQp0aGFtIGdpYSBjdWEgbmhpZXUgdG8gY2h1YyBjaG8gdGhheSwgbmFu IHRyZSBlbSBiaSBiYW8gbHVjIHZhIHhhbSBoYWkgdGluaCBkdWMgbmdheSBtb3QgDQpnaWEgdGFu Zy4gTmFuIG5oYW4gcXVhIG5obyB0dW9pIGtob25nIGNvIGtoYSBuYW5nIGJhbyB2ZSBiYW4gdGhh biBtaW5oLiANCg0KVmF5IGFpIHNlIGxhIG5ndW9pIGJhbyB2ZSBjYWMgZW0sIG5ldSBjaGkgZHVu ZyBvIG11YyBiYW8gdmUgdHJlbiB2YW4gYmFuLCBnaWF5IHRvIHRoaSAiaGFuZyByYW8iIGJhbyB2 ZSBjYWMgZW0gcXVhIGxhIHF1YSBtb25nIG1hbmguDQoNCk5odWMgbmhvaQ0KDQpIYXUgaGV0IGNh YyBlbSBiaSBiYW8gbHVjIHZhIHhhbSBoYWkgdGluaCBkdWMgKFhIVEQpIGNoaSBkdW9jIHhhIGhv aSBiaWV0IGRlbiBxdWEgDQp0aG9uZyB0aW4gdHJlbiBiYW8gY2hpLiBOZ2F5IGNhIGNhYyBjYW4g Ym8gZGlldSB0cmEga2hpIHRodSBseSBjYWMgdnUgYW4gYmFvIGx1YyB2YSB4YW0gDQpoYWkgdGlu aCBkdWMgdHJlIGVtIGN1bmcga2hvbmcgdGhlIGx5IGdpYWkgbm9pIHZpIHNhbyBtYSBuaHVuZyBv bmcgYm8sIGJhIG1lLCBuaHVuZyANCm5ndW9pIHJ1b3QgdGhpdCBsYWkgZGFuZyB0YW0gZGFuaCBk YXAsIGdheSB0aHVvbmcgdGljaCBuYW5nIGNobyBjaGluaCBkdWEgY29uIG1pbmggc2luaCANCnJh PyBOZ3V5ZW4gbmhhbiBjaHUgeWV1IGR1b2MgdmllbiBkYW4gcmFuZyBkbyBydW91LCBkbyBob2Fu IGNhbmgga2luaCB0ZSBraG8ga2hhbiwgZG8gDQp1YyBjaGUgdHJvbmcgY3VvYyBzb25nIGdpYSBk aW5oLi4uDQoNCkR1IGx1YW4ga2hvbmcga2hvaSBiYW5nIGhvYW5nIHZhIGNhbSBwaGFuIGtoaSBu Z3VvaSBjaGEgZGEgbWF0IGhldCB0aHUgdGluaCBraGkgY2hvbiANCmNvbiBnYWkgbWluaCBkZSB0 aHVjIGhpZW4gaGFuaCB2aSBtYXQgaGV0IHRpbmggbmd1b2kuIENhdSwgY2h1IFhIVEQgdm9pIGNo YXUuIE5odW5nIA0KZW0gYmUgbW9pIGNoaSA1IC0gNiB0dW9pIGRhIHRybyB0aGFuaCBuYW4gbmhh biBiaSBYSFRELiBEb2kgdHVvbmcgeGFtIGhhaSBjdW5nIGNoaSBnYXAgDQpkb2ksIGJhIHR1b2kg Y2FjIG5hbiBuaGFuLCB0aGFtIGNoaSBsYWkgbGEgbmh1bmcgbmd1b2kgcXVlbiBiaWV0IHRyb25n IGxvaSB4b20uIENoYSBtZSANCmN1YSBjYSBiaSBjYW8gbGFuIG5hbiBuaGFuIGtoaSBjbyBtYXQg dGFpIHRvYSBkZXUgdGhheSAia2hvIGFuLCBraG8gbm9pICJ2b2kgbmhhdSBib2kgaG8gDQp2b24g dHVuZyAibXVhIGxhbmcgZ2llbmcgZ2FuIiBraGkgdG9pIGx1YSwgdGF0IGRlbiBjbyBuaGF1LiBN b3QgYmFuIGFuIGR1b2MgdHV5ZW4sIG1vdCANCmtlIHRoaSB0dW9uZyBsYWkgZ2FuIGxpZW4gdm9p IG5odW5nIG5nYXkgdGhhbmcgZ2lhbSBnaXUsIGNhaSB0YW8uIE5hbiBuaGFuIHRoaSBiaSB0b24g DQp0aHVvbmcgdGFtIGx5IHZhICJub2kgZGF1IiBkbyBkYSBkZW8gZHVvaSBnYW4gaGV0IHR1b25n IGxhaSBjdWEgY3VvYyBkb2kgbmd1b2kgY29uIGdhaS4gDQoNCkNoaSBOZ3V5ZW4gVGhpIE0gKCBU YW4gS3ksIE5naGUgQW4pIGRhdSBkb24gbm9pIHJhbmc6IFRvaSBiaSBuZ3VvaSBoYW5nIHhvbSBo YW0gDQpoYWkgbmFtIDEyIHR1b2ksIGRlbiBuYXkgZGEgMjkgdHVvaSwgdG9pIHZhbiBraG9uZyB0 aGUgcXVlbiB2YSB0aG9hdCBraG9pIGNhbmggImhhaSANCmh1bmciIHZhbiBpbiBkYW0gdHJvbmcg dGFtIHRodWMuIFRvaSBzbyBkYW4gb25nLiBWYSB0b2kgZGEgcGhhaSB0cmFpIHF1YSB0aG9pIGdp YW4gZGFpIA0KZGlldSB0cmkgbW9pIHRhbSBjYW4gYmFuZyBkdW9jIGN1b2Mgc29uZy4gVmkgdmF5 LCBtb2kga2hpIGJhbyBjaGkgdGhvbmcgdGluIHZlIHZ1IHRyZSBlbSANCmJpIHhhbSBoYWkgdGlu aCBkdWMsIHRvaSBsYWkgaGluaCBkdW5nIHJhIG5vaSBob2FuZyBsb2FuLCBkYXUgZG9uIGRlbiB0 YW4gY3VuZyBtYSBtaW5oIA0KZGEgcGhhaSBodW5nIGNoaXUgdHUgMTcgbmFtIHZlIHRydW9jLiBU cmFpIHRpbSB0b2kgbGFpIGRhdSwgdG9pIGxhaSBuZ29pIGhhbmcgdGllbmcgZG9uZyBobyANCmRl IGNhdSBuZ3V5ZW4gY2hvIGNhYyBlbSBiZSBnYWkgZHVuZyBwaGFpIGxhbSB2YW8gY2FuaCBuaHUg dG9pIGhpZW4gbmF5Lg0KDQpWYW4gY2hpIGxhIGNhbmggYmFvDQoNClRoZW8gc28gbGlldSB0aG9u ZyBrZSBjdWEgQm8gTERUQlhILCBnYW4gMS4wMDAgdHJlIGVtIGJpIHhhbSBoYWkgbW9pIG5hbSB2 YSBnaWEgDQp0YW5nIHRoZW8gbW9pIG5hbS4gTmFtIDIwMDUgY28gMjAwIGVtIGdhaSBiaSBYSFRE IHRoaSBkZW4gbmFtIDIwMDkgZGEgY28gdG9pIHRyZW4gDQo4MDAgZW0uIFRoZW8gQm8gTERUQlhI IHRoaSBjb24gc28gdHJlbiBjaGkgbGEgY29uIHNvIGR1b2MgZ2lhIGRpbmggdHJpbmggYmFvIHZv aSBjYWMgDQpjbyBxdWFuIGNodWMgbmFuZywgY29uIG5oaWV1IHRydW9uZyBob3AgZ2lhIGRpbmgg bG8gbmdhaSBjaG8gdHVvbmcgbGFpIGN1YSBjb24sIGdpYSBkaW5oIA0Ka2UgaGFtIGhhaSBkZW4g Y2F1IHhpbiwgYm9pIHRodW9uZyBuZW4ga2hvbmcgZGVuIHRvIGNhby4gRGF1IGxvbmcgbmhhdCBs YSB0aSBsZSBiZSBnYWkgDQpkdW9pIDYgdHVvaSBiaSBYSFREIG5nYXkgbW90IG5oaWV1ICgxMyw1 JSksIGNhYyBlbSBnYWkgbyB2dW5nIG51aSwgdnVuZyBzYXUgdGh1b25nIGJpIHhhbSBoYWkgbmhp ZXUgbmhhdC4gDQoNCkNoaSBIb2FuZyBUaGkgTmcgKFRQSENNKSB2dWEga2hvYyB2dWEgbm9pIHZv aSBCUyBkaWV1IHRyaSBjdWEgQlYgUGh1IHNhbjogVm8gDQpjaG9uZyB0b2kgdG9pIG5nYXkgZGF1 IHRhdCBtYXQgdG9pIGxvIGtpZW0gYW4gbnVvaSBjYWMgY29uLCBvbmcgYmEgdGhpIG8geGEga2hv bmcgYmlldCBndWkgDQpnYW0gYWkgdHJvbmcgaG8sIGNoaSBsb24gdHJvbmcgZW0gYmUsIGNodW5n IHRvaSBjdW5nIGtob25nIGNvbiBjYWNoIG5hbyBob24sIGRlbiBraGkgDQp4YXkgcmEgY2h1eWVu IHZvaSBjb24gZ2FpIHRoaSBjdW5nIGNoaSBiaWV0IGNhbiByYW5nIG1hIGNoaXUuIE9uZyBoYW5n IHhvbSBjbyBjb24gdHJhaSANCmhhbSBoaWVwIGNvbiBnYWkgdG9pIGhvIGN1bmcgdG90LCBoaWVu IGxhbmggaGF5IGdpdXAgbmd1b2kga2hhYywgY2hhdSBubyBjdW5nIGNoaSB2aSBoYXkgDQp4ZW0g cGhpbSBhbmggbmVuIGxhbSBsaWV1IG1hIHRob2ksIHRvIGNhbyBubyB0aGkgY3VuZyBjaGFuZyBp Y2ggZ2kuDQoNClJvIHJhbmcgY2FjIGVtIGJlIGdhaSBiaSBYSFREIGNodWEgdGh1YyBzdSBkdW9j IGJhbyB2ZS4gR2lhIGRpbmggY28sIGNoaW5oIHF1eWVuLCANCmRvYW4gdGhlLCBuaGEgdHJ1b25n IGRldSBjbywgbmh1bmcgY2h1YSB0YW8gZHVvYyB0aGFuaCBoYW5nIHJhbyBkZSBiYW8gdmUgY2Fj IGVtIHRydW9jIA0KbmFuIFhIVEQgZGFuZyBuZ2F5IGNhbmcgbGFuIHJvbmcgdHJvbmcgeGEgaG9p LCBuaGF0IGxhIGRvaSB2b2kgY2FjIGVtIGJlIGdhaSBvIHZ1bmcgDQpub25nIHRob24sIG1pZW4g bnVpLiBCYWkgdG9hbiAiYmFvIHZlIGNhYyBlbSBnYWkiIHRydW9jIG5hbiBYSFREIGNodWEgY28g bG9pIGdpYWksIGR1IA0KY28gcXVhIG5oaWV1IGN1b2MgaG9pIHRoYW8sIG5oaWV1IHZhbiBiYW4g cGhhcCBxdXksIG5odW5nICB0aHVjIHRoaSB0cm9uZyBjdW9jIHNvbmcgdGhpIA0KY29uIHF1YSBu aGlldSBraG9hbmcgY2FjaCBtYSBjaHVhIHRodSBoZXAgZHVvYy4gDQogDQpodHRwOi8vdmlldG5h bW5ldC52bi9jaGluaHRyaS8yMDEwMTAvVGFuZy10cnVvbmctdnVvdC1rZS1ob2FjaC1uaHVuZy1j aGF0LWx1b25nLXZhbi10aGFwLTkzODk0OS8gIFBoYW0gSHV5ZW4gMTE6MzQsICAgMDIvMTAvMjAx MCAoR01UKzcpDQogDQpUaHUgdHVvbmc6IFRhbmcgdHJ1b25nIG5odW5nIGNoYXQgbHVvbmcgdmFu IHRoYXAgLSBMYW0gcGhhdCBkaWVuIGJpZW4gYmF0IG9uDQoNClV5IGJhbiBLaW5oIHRlIGN1YSBR dW9jIGhvaSBjYW5oIGJhbzogS2luaCB0ZSB2aSBtbyB2YW4gdGhpZXUgbmVuIHRhbmcgdnVuZyBj aGFjLiBDaGF0IA0KbHVvbmcgdGFuZyB0cnVvbmcgdGhhcCwgdGllbSBhbiBraG9uZyBpdCBiYXQg dHJhYy4NCg0KQ2hpIHNvIGdpYSB0aWV1IGR1bmcgKENQSSkgbmFtIG5heSBkdSBraWVuIGR1b2kg OCUsIGtob25nIGRhdCBtdWMgdGlldSBRdW9jIGhvaSBnaWFvIGxhIGR1b2kgaG9hYyBiYW5nIDcl LiANCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9UaW4tVHVjL0x1b25nLWNodWEtdGFuZy1n aWEtZGEtdGFuZy12dS12dS8yMDg1MyAgTWluaCBOaGF0IC0gVGhhbmggVGhvIDE1LjExLjIwMTAg MTY6MzkgKEdNVCArIDcpIA0KDQpUaHUgdHVvbmc6IEx1b25nIGNodWEgdGFuZywgZ2lhIGRhIHRh bmcgdnUgdnUgDQoNCihMRE8pIC0gVHJ1b2Mgbmh1bmcgYmllbiBkb25nIGN1YSBnaWEgdmFuZywg VVNEIHZhIHRob25nIHRpbiBzZSB0YW5nIGx1b25nIHR1IA0KMS41LjIwMTEsIG5oaWV1IG1hdCBo YW5nIGx1b25nIHRodWMsIHRodWMgcGhhbSBsYWkgdGllcCB0dWMgZHVvYyBkYSB0YW5nIHZ1IHZ1 LiBDYWMgYmEgDQpub2kgdHJvIGtldSB0cm9pIGtoaSBnaWEgY2EgInBoaSBtYSIgdmEgY2h1YSBj byBkYXUgaGlldSBkdW5nIGxhaS4NCg0KUGhpZW4gY2hvIG5nYXkgZGF1IHR1YW4gdmFuIGRvbmcg ZHVjLCB0YXAgbmFwLCB0dXkgbmhpZW4gdHJlbiBraHVvbiBtYXQgY2FjIGJhIG5vaSB0cm8gDQpk ZXUgcGhhbmcgcGhhdCBuZXQgdXUgdHUsIGxvIGxhbmcsIG5oaWV1IGJhIG5vaSB0cm8gdnVhIG11 YSBoYW5nIHZ1YSBsYW0gYmFtLCBjYXUgY28gdmkgDQpnYW4gbmh1IHRhdCBjYSBjYWMgbWF0IGhh bmcgZGV1IHRhbmcgZ2lhLiBUdSB0aGl0IGxvbiwgdGhpdCBibywgdG9tLCBjYSwgcmF1IHhhbmgg ZGVuIGdpYSANCnZpLCBtYW0gbXVvaS4uLiB0YXQgY2EgZGV1IHRhbmcgMi0zIGdpYSwgY28gdGh1 IGxlbiBkZW4gMTAgZ2lhLg0KDQooQW5oOiBHaWEgdGhpdCBsb24gdGFuZyB0dSAxMC0yMC4wMDBk L2tnIChBbmg6IE0uTikuDQoNCjhoMzAgcGh1dCBzYW5nLCB0YWkgY2hvIENhdSBEaWVuLCBnaWEg dGhpdCBsb24gYmEgY2hpLCB0aGl0IG1vbmcsIHRoaXQgdmFpIGRldSBjbyBnaWEgY2h1bmcgDQps YSA3NS4wMDBkL2tnLCB0aGl0IHRoYW46IDc1LTgwLjAwMGQva2cgKHRhbmcgMTAuMDAwZC9rZyks IGNhIHRyYW0sIGNhIGNoZXAgdGFuZyBuaGUsIHRvbSANCnN1IHZ1YTogMTgwLjAwMGQva2cgKHRh bmcgMzAuMDAwZC9rZykgZ2EgdGFtIGhvYW5nIHNvbmcgNzUuMDAwZC9rZywgZ2EgdGFtIGhvYW5n IHRoaXQgDQpzYW46IDExMC4wMDBkL2tnICh0YW5nIDIwLjAwMCBkL2tnIHNvIHZvaSB0cnVvYyBE YWkgbGUpKS4NCg0KTmhpZXUgYmEgbm9pIHRybyBuZ2FuIG5nbywgZGFuIGRvLCBjYW4gbmhhYyBr aGkgY2hvbiBtdWEgdGh1YyBwaGFtLiBOaGlldSBuZ3VvaSBjdSANCm5hbmcgbGVuLCBkYXQgeHVv bmcgdmEgZGFuZyBsb25nIHBoYWkgY2FuIHJhbmcgbXVhIHZpIGtob25nIHRoZSBuaGluIGFuLCBj aGkgY28gZGlldSANCmtob25nIGRhbSBtdWEgbmhpZXUgbmh1IHRydW9jLiBDaGkgRG8gVGhpIE5n YSAtIG8gUGh1IERpZW4gLSBUdSBMaWVtIC0gSGEgTm9pIHZ1YSANCm1vIGtoYXUgdHJhbmcgdnVh IHRoYW4gdGhvOiAidHJ1b2Mga2lhIHRoaSBtdWEgNSBsYW5nIHRoaXQgY2hvIGNhIG5oYSB0aGkg bmF5IGdpYW0gY29uIDItDQozIGxhbmcuIE1heSBob20gRGFpIGxlIHRoaSBiYW8gY2FtIHhlLCBj YW0gZHVvbmcgbmVuIHRoaXQgdGFuZyBnaWEsIG5heSBjbyBjYW0gZHVvbmcgDQpudWEgZGF1IG1h IGdpYSBjYSBjb24gdGFuZyBob24sIGN1IGRhIG5heSBraG9uZyBiaWV0IGRlbiBUZXQgY29uIHRh bmcga2lldSBnaSBudWEhIg0KDQpHaWFpIHRoaWNoIHZlIGhpZW4gdHVvbmcgdGFuZyBnaWEsIGNo aSBOZ3V5ZW4gVGhpIEx5IC0gYmFuIHRoaXQgY2hvIENhdSBEaWVuIGNobyBiaWV0OiANCiJUaGl0 IGxvbiB0YW5nIDEwIGdpYSBzbyB2b2kgdHJ1b2MgRGFpIGxlLiBHaWEgbXVhIHZhbyB0YWkgbG8g bW8sIGNodWEgcGhhbiBsb2FpIGRhIA0KNTguMDAwZC9rZyByb2ksIGdpYSB0aGl0IHRhbmcgbmh1 IHRoZSBuYXkgYmFuIGtob25nIGNoYXkgaGFuZyBiYW5nIHRydW9jIG1hIGxhaSBjdW5nIA0Ka2hv bmcgbmhpZXUgaG9uIGR1b2MhIi4NCg0KS2hvbmcgbmh1bmcgdGhpdCwgY2EsIHRvbSB0YW5nIGdp YSBtYSByYXUgeGFuaCBjdW5nIHRhbmcga2hvbmcga2VtOyByYXUgbXVvbmc6IA0KMy4wMDBkL2Jv ICh0YW5nIDEuMDAwZC9ibyksIGJhcCBjYWk6IDEwLjAwMGQva2cgKHRhbmcgMi0gMy4wMDBkL2tn KSwgY2EgY2h1YTogMTcuMDAwZC9rZyANCih0YW5nIDItIDMuMDAwZC9rZyksIHN1IGhhbzogNi4w MDBkL2N1LiBEYW8gcXVhIGhhbmcga2hvIHR1IG51b2MgbWFtIGRlbiBkYXUgYW4sIG1pIA0KY2hp bmgsIGdhbyB0ZSB0aHUgZ2kgY3VuZyB0YW5nLiBEYXUgYW4gU2ltcGx5IDM3LjAwMGQvMSBsaXQg KHRhbmcgMi4wMDBkLzFsaXQpLCBudW9jIG1hbSANCkNoaW4gc3UgMjcuMDAwZC8xIGxpdCAodGFu ZyAyLjAwMCBkLzFsaXQpLCBnYW8gQmFjIGh1b25nOiAxNC4wMDBkL2tnICh0YW5nIDMuMDAwZC9r ZykuIA0KRGF5IGxhIGNobyBvIHZlbiBuZ29haSBvLCBnYW4gbmhhdCB2b2kgbm9pIGN1bmcgY2Fw IHRodWMgcGhhbS4NCg0KRGljaCBwaGlhIHRydW5nIHRhbSwgdGFpIGNobyBOZ2hpYSBUYW4gLSBD YXUgR2lheSBnaWEgY2EgZGEga2hhYyB4YSBuaGF1LCBuaGF0IGxhIGNhYyANCmxvYWkgdGhpdCwg Y2EsIGdhLCBjaGVuaCBsZWNoIG5oYXQgbGEgcmF1IHhhbmg7IHJhdSBtdW9uZyA1LjAwMGQvYm8s IHRoaXQgYmEgY2hpOiANCjcwLjAwMGQva2csIHRoaXQgYm8gMTUwLjAwMGQva2csIGdhIHRhbSBo b2FuZyB0aGl0IHNhbjogMTMwLjAwMGQva2csIHRydW5nIGdhIGNvbmcgbmdoaWVwIA0KdHUgMTMu MDAwZC9jaHVjIGxlbiAxOC4wMDBkL2NodWMuIEFuaCBUcmFuIER1YyBMdW9uZyAtIFRobyB4YXkg LSBuZ3VvaSBIYSANCk5hbTogIkJheSBnaW8gZGkgY2hvIG11YSBjYWkgZ2kgY3VuZyBkYXQ7IHRo aXQgYmEgY2hpIGN1bmcga2hvbmcgZGFtIG11YSBuaGlldSwgcmF1IHRoaSANCnF1YSBkYXQsIGdp YSB2aSwgbWFtIG11b2kgY3VuZyB2YXkuLi4gdGllbiB0aHVlIG5oYSB0cm8gY2h1IGN1bmcgZG9p IHRhbmcgbWEgdGllbiBjb25nIHRoaSANCmtob25nIHRhbmciLg0KDQpUaHVjIHBoYW0gdGFuZyBn aWEgbmVuIGhhdSBoZXQgY2FjIHF1YW4gYW4gdHUgY29tLCBwaG8gZGVuIGNhYyBxdWFuIGNvYyB2 aWEgaGUgaGFuZyANCnhvaSwgdHJ1bmcgdml0IGxvbiBjdW5nIHRhbmcgZ2lhIHRoZW8uICJNb2kg bmdheSBhbiBiYXQgcGhvLCBidW4gYmluaCBkYW4gMTUuMDAwIGRvbmcgdGhpIA0KbWF5IGhvbSBu YXkgcGhhaSB0cmEgMjAuMDAwIGRvbmcsIGdpYSBjYSB0aGUgbmF5IHRoaSBtb3QgdGhhbmcgY2hv IGNvbiBhbiBkdW9jIG1heSANCmJ1YSBwaG8iLSBDaGkgQnVpIFRoYW5oIEh1b25nLSBDbyBOaHVl IGxhYyBkYXUgY2hpYSBzZS4NCg0KUXVhIGtoYW8gc2F0LCBjYWMgdGlldSB0aHVvbmcgdGFpIGNh YyBjaG8gY2hvIGJpZXQsIGdpYSBjYSB0YW5nIGxhIGRvIHRob25nIHRpbiBzYXAgdGFuZyANCmx1 b25nLiBCZW4gY2FuaCBkbyBsYSBkbyB2dWEgcm9pIGRpY2ggYmVuaCBuaGlldSwgbmhpZXUgZ2lh IGRpbmggZ2lhbSBib3QgY2hhbiBudW9pIG8gDQpxdXkgbW8gbG9uLCBjaGkgbnVvaSBjYW0gY2h1 bmcsIHRoYW0gY2hpIGJvIGNodW9uZyB0cmFpIGtob25nLiBWaSB2YXkgbmd1b24gY3VuZyBiaSAN CnRodSBoZXAgbWEgbmh1IGNhdSB0aGkga2hvbmcgZ2lhbSwgY2hpbmggdmkgdmF5IG1hIGdpYSBj YSB0YW5nIGxhIGRpZXUgZHVvbmcgbmhpZW4uDQoNClRodWMgdGUgY2hvIHRoYXksIHN1IGJpZW4g ZG9uZyBnaWEgY3VhIGNhYyBjaG8gdHJ1eWVuIHRob25nLCBjaG8gY29jIGxvbiBob24gc28gdm9p IGNhYyANCnNpZXUgdGhpLiBWYXkgcGhhaSBjaGFuZyBkYSBjbyB0aW5oIHRyYW5nICJUYXQgbnVv YyB0aGVvIG11YSIgY3VhIGNhYyB0aWV1IHRodW9uZyBtb2kgDQpkaXAgdGFuZyBsdW9uZz8NCg0K WSBraWVuIGJhbiBkb2M6DQpUaGFvIEhhbmggMTcvMTEvMjAxMCAwMzo1Njo1MSBQTTogICANCg0K QmkgbWF0IHRhbmcgbHVvbmcgZGUgdGhpIHRydW9uZyBraG9uZyBkYXkgZ2lhDQoNCkNhY2ggZGF5 IDMwIG5hbSB2ZSB0cnVvYywgbmV1IGFpIGNvbiBzb25nIGRhIHR1bmcgbmdoZSBjYXUgbm9pOiAi TmhhIG51b2MgdGFuZyBsdW9uZywgDQpraG9uZyBiYW5nLi4uIHRhbmcgZ2lhIiwgY29uIGJheSBn aW8gZGFuIG5naGVvIGNvIGNhdSAiTmhhIG51b2MgdGFuZyBsdW9uZyBraG9uZyBiYW5nIA0KdGhp IHRydW9uZyB0YW5nIGdpYSIuIEN1bmcgdmFuIGRlIGF5IG5odW5nIG5vIGNvIGtoYWMgbmhhdSBy YW5nIHRydW9jIGRheSBOaGEgbnVvYyANCnRhbmcgZ2lhIGxhIG11YyBkaWNoIGNhbiBkb2kgbmVu IGtpbmggdGUgY2h1bmcgY29uIGJheSBnaW8gZ2lhIHRhbmcgdnVuIHZ1dCBkYSBsYW0gZ2lhdSAN CmNobyBtb3QgYm8gcGhhbiB0dSBiYW4gdmEgbGFtIG5naGVvIGRpIG5oYW5oIGNob25nIG5odW5n IG5ndW9pIHZvbiBkYSBuZ2hlbyBuaHUgY2FuIA0KYm8gaHV1IHRyaSwgY29uZyBuaGFuLCBub25n IGRhbiB2YSBjYWMgZ2lhIGRpbmggY2hpbmggc2FjaC4gVG9pIGRvbmcgdGluaCB5IGtpZW4gYmFu IA0KRGF0YW5sYSBtb2kgbGFuIG5oYSBudW9jIGNvbmcgYm8gZGlldSBjaGluaCB0aWVuIGx1b25n IGxhIGNvIGhvaSBkZSB0aGkgdHJ1b25nIGRhdCBuaGF1IA0KdGFuZyBnaWEuIFRodSBsYW0gYmFp IHRvYW4gbmhhbSBtb2kgbmFtIE5oYSBudW9jIGRpZXUgY2hpbmggdGFuZyBsdW9uZyBjbyBiYW4g dHJlbiANCmR1b2kgMTMlIG5odW5nIE5oYSBudW9jIGNvbmcgYm8gdHJ1b2MgdGhvaSBnaWFuIDYg dGhhbmcsIG5odSB2YXkgNiB0aGFuZyBkbyBuZ3VvaSANCm5oYW4gbHVvbmcgcGhhaSBjaGl1IGNh bmggdGhpIHRydW9uZyB0YW5nIGdpYSwgZG9uZyBuZ2hpYSBjdW9jIHNvbmcgbmd1b2kgbmdoZW8g ZGEgdHV0IA0KbHVpIHRob2kgZ2lhbiB0dW9uZyBkdW9uZy4gRG8gZG8sIGtoaSB0YW5nIGx1b25n IHRoaSBkb25nIGx1b25nIHRodWMgbmhhbiB0cm8gdmUgdm8gDQpuZ2hpYS4gVGhlbyB0b2ksIHRy dW9jIGtoaSBjb25nIGJvIGRpZXUgY2hpbmggdGllbiBsdW9uZywgTmhhIG51b2MgcGhhaSBjbyBi aWVuIHBoYXAgcXVhbiBseSBnaWEgY2EgdGhpIHRydW9uZy4gDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA1My8yMDEwMTIyOTIzNDgzNi5hc3B4IEhWIFFUIFFN TiAgMjkvMTIvMjAxMCAyMzo0OCANCg0KVGh1IHR1b25nOiBIYW5nIG5oaWV1LCBnaWEgdmFuIHRh bmcgIA0KICANCk1hYyBkdSBoYW5nIGhvYSBkYW5nIHJhdCBkb2kgZGFvIG5odW5nIGdpYSBjYSBu aGlldSBtYXQgaGFuZyB0aGlldCB5ZXUgdmFuIGN1IGRvbmcgbG9hdCB0YW5nLiANCg0KVGFuZyBu Z2F5IGRhdSBuYW0gbW9pIA0KDQpUaGVvIGRhaSBkaWVuIG5oaWV1IHNpZXUgdGhpIG8gVFAuSENN LCBuZ2F5IHRyb25nIHRoYW5nIDEuMjAxMSwgaGFuZyBuZ2FuIG1hdCBoYW5nIHNlIA0KdGFuZyBn aWEgdm9pIG11YyB0YW5nIHBobyBiaWVuIGtob2FuZyAxMCUuIE5oaWV1IG1hdCBoYW5nIHNlIGNo aW5oIHRodWMgYXAgZHVuZyBnaWEgDQptb2kgbmdheSBuZ2F5IDEuMS4yMDExLiBEYWkgZGllbiBz aWV1IHRoaSBDaXRpbWFydCBjaG8gYmlldDogIk5oYSBjdW5nIGNhcCBuYW8gY3VuZyBndWkgDQp0 aG9uZyBiYW8gdGFuZyBnaWEgaGFuZy4gU28gbWF0IGhhbmcgdGFuZyBnaWEgbmhpZXUgZGVuIG11 YyBraG9uZyB0aGUga2llbSBzb2F0LiBNdWMgDQp0YW5nIGdpYSBwaG8gYmllbiBraG9hbmcgMTAl LCBtb3Qgc28gbmhvbSBoYW5nIHRhbmcgZGVuIDIwJSIuIE5ob20sIG5nYW5oIGhhbmcgDQpuYW8g Y3VuZyBjbyBtYXQgaGFuZyB0YW5nIGdpYS4gVHJvbmcgZG8gbmhpZXUgbmhvbSBoYW5nIGRhIHRh bmcgZ2lhIHRyb25nIHRoYW5nIDExIHZhIA0KMTIuMjAxMCBuYXkgbGFpIHRpZXAgdHVjIHRhbmcg Z2lhIG5nYXkgZGF1IG5hbSBtb2kgZHVvbmcgbGljaC4gQ2FjIGxvYWkgc3VhLCBkYXUgYW4sIHRo dWMgDQpwaGFtIGRvbmcgaG9wLCB0aHVjIHBoYW0ga2hvLCBudW9jIGdpYWkga2hhdCBsYSBjYWMg bmhvbSBtYXQgaGFuZyB0YW5nIGdpYSBtYW5oIA0KbmhhdC4gRGF1IHRoYW5nIDEuMjAxMSwgc2Fu IHBoYW0gc3VhIGN1YSBIYW5jbywgRnJpc28uLi4gc2UgdGFuZyBnaWEgdHUgMyUgLSAxMCUuIENv bmcgDQp0eSBDUCBreSBuZ2hlIHRodWMgcGhhbSBWaWV0IE5hbSAoVmlmb24pIHRob25nIGJhbyB0 YW5nIGdpYSAyMCBtYXQgaGFuZyBidW4sIHBobywgDQpjaGFvLCBodSB0aWV1Li4uIGFuIGxpZW4g dm9pIG11YyB0YW5nIHR1IDUlIC0gMTUlLiBUcmEsIGNhZmUgVHJhbSBBbmggdGFuZyBnaWEgMTgg bWF0IA0KaGFuZy4gQ29uZyB0eSBUTkhIIHBlcmZldHRpIFZhbiBNZWxsZSAoVmlldCBOYW0pIGN1 bmcgdGhvbmcgYmFvIHRhbmcgZ2lhIGhhbmcuLi4gTyANCm5ob20gaGFuZyB0aHVjIHVvbmcgdGhp IGNhIHBoZSB0YW5nIGdpYSBtYW5oIG5oYXQgdm9pIG11YyB0YW5nIGtob2FuZyAyMCUuIE9uZyAN Ckh1eW5oIEh1dSBUdWFuIC0gcXVhbiBseSBzaWV1IHRoaSBDaXRpbWFydCBCaW5oIFRoYW5oLCBj aG8gYmlldDogIkRvIGdpYSBoYW5nIGhvYSANCmNodW5nIHRhbmcgY2FvIGtob2FuZyAzMCUgLSA0 MCUgc28gdm9pIG5hbSBuZ29haSBuZW4gZ2lvIHF1YSBnb2kgc2FuIG5hbSBuYXkgdGFuZyANCmto b2FuZyAxMCUgc28gdm9pIG5hbSBuZ29haS4gRGF5IGxhIHRpbmggaGluaCBjaHVuZyBjdWEgdGhp IHRydW9uZyIuDQoNClRhbmcgY3VvbmcgY29uZyB0YWMga2llbSB0cmENCg0KVHJ1b2MgdGh1YyB0 ZSBraGkgZ2lhIGR1b25nIHRhbmcgY2FvLCBDaGkgY3VjIFF1YW4gbHkgdGhpIHRydW9uZyAoUUxU VCkgVFAuSENNIGRhIA0KcGhhdCBoaWVuIEROVE4gVE0tRFYgQmluaCBNYWkgKHNvIDE0OEIgLSAx NDhDIEdvIERhdSwgUC5UYW4gUXV5LCBRLlRhbiBQaHUpIGNvIA0KZGF1IGhpZXUgZ2FtIGR1b25n IGtoaSBkZSB0b24ga2hvIDE1LjExNCBrZyBkdW9uZy4gVnUgdmllYyBkYW5nIGR1b2MgUUxUVCBj aHV5ZW4gDQpzYW5nIGNvIHF1YW4gZGlldSB0cmEgbGFtIHJvLiBUcm9uZyBuYW0gMjAxMCwgUUxU VCBUUCBsYXAgYmllbiBiYW4gNjExIHZ1IHZpIHBoYW0gDQpsaWVuIHF1YW4gZGVuIGdpYS4gSGll biBTbyBDb25nIHRodW9uZyBUUC5IQ00gZGEgY28gY29uZyB2YW4gY2hpIGRhbyBDaGkgY3VjIFFM VFQgDQp0YW5nIGN1b25nIGNvbmcgdGFjIGtpZW0gdHJhLCBkYWMgYmlldCBsYSBoYW5nIGJpbmgg b24gdGhpIHRydW9uZyBkZSBraXAgdGhvaSBwaGF0IGhpZW4sIA0KeHUgbHkgdmkgcGhhbSBnaWFu IGxhbiB0aHVvbmcgbWFpLiAgDQoNCkdpYSBvIHNpZXUgdGhpICJub25nIiBuaHUgdmF5IHRoaSBj byB0aGUgaGluaCBkdW5nIGdpYSBvIGNhYyBjaG8gbGUgdGFuZyBjbyBuYW8uIENobyBkdSANCnRo aXQgZ2lhIHN1YywgZ2lhIGNhbSBraG9uZyBjbyBkYXUgaGlldSBraGFuIGhpZW0gbmh1bmcgZ2lh IHRoaXQgZ2EgdmFuIHRhbmcga2hvYW5nIA0KNS4wMDAgZG9uZy9rZyBzbyB2b2kgaG9pIGdpdWEg dGhhbmcgMTIuMjAxMC4gR2lhIGJhbiBsZSBnYSBjb25nIG5naGllcCA0MC4wMDAgLSA0NS4wMDAg DQpkb25nL2tnLCBnYSBUYW0gaG9hbmcga2hvYW5nIDYzLjAwMCBkb25nL2tnLCBnYSB0YSBob24g MTAwLjAwMCBkb25nL2tnLiBHaW9pIGtpbmggDQpkb2FuaCBkdSBkb2FuIGdpYSB0aGl0IGhlbyBz ZSB0YW5nIG1hbmggdmFvIGRpcCBUZXQgZHVvbmcgbGljaCBkbyBuaHUgY2F1IHRhbmcgbWFuaCB2 YSANCmtlbyBkYWkgZGVuIGNhbyBkaWVtIGxhIGNhbiBUZXQgTmd1eWVuIGRhbi4gTmd1eWVuIG5o YW4gZG8gZ2lhIHRodWMgYW4gY2hhbiBudW9pIHRhbmcgDQpxdWEgbWFuaC4gR2lhIGR1b25nIG8g bXVjIGNhbywgZ2lhIGJhbiBidW9uIGtob2FuZyAyMi4wMDAgLSAyMy4wMDAgZG9uZy9rZywgZ2lh IGJhbiANCmxlIHR1IDIyLjUwMCAtIDI1LjAwMCBkb25nL2tnLiBEYWMgYmlldCwgZ2lhIHRodWMg cGhhbSBraG8gdGFuZyB0dSAzMCUgLSA3MCUsIHRoYW0gY2hpIA0KY28gbWF0IGhhbmcgdGFuZyBn YW4gMTAwJSBzbyB2b2kgbmFtIG5nb2FpLiBHaWEgYmFuaCBtdXQgY3VuZyB0YW5nIGtob2FuZyAz MCUgc28gdm9pIG5hbSBuZ29haS4gIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jNzI4L3M3Mjgt NDQ2Mzk1L2NoaS1zby1naWEtdGlldS1kdW5nLTIwMTAtdm90LWxlbi1tdWMtMTE3NS5odG0gQW4g SGEgMjQvMTIvMjAxMCAtIDE0OjUyIA0KDQpUaHUgdHVvbmc6IENoaSBzbyBnaWEgdGlldSBkdW5n IDIwMTAgdm90IGxlbiBtdWMgMTEsNzUlIC0gUXVhIGNoaSB0aWV1IFF1b2MgaG9pIGdpYW8gKDcl KSCWIFRodSB0dW9uZyBraG9uZyBob2FuIHRoYW5oIG5oaWVtIHZ1IA0KDQooRGFuIHRyaSkgLSBT byBsaWV1IFRvbmcgY3VjIFRob25nIGtlIHZ1YSBjb25nIGJvIGNobyBiaWV0LCBjaGkgc28gZ2lh IHRpZXUgZHVuZyAoQ1BJKSANCmhhbmcgMTIgdGFuZyB0b2kgMSw5OCUgc28gdm9pIHRoYW5nIHRy dW9jIGRhIGtlbyBjaGkgc28gY2h1bmcgY3VhIGNhIG5hbSB2b3QgbGVuIG11YyAyIG9uIHNvOiAx MSw3NSUuDQoNCihBbmg6IEdpYSB0aWV1IGR1bmcgdGhhbmcgdGV0IGR1IGJhbyBzZSBjb24gdGFu ZykgDQogDQpUaGVvIHNvIGxpZXUgdHUgVG9uZyBjdWMgVGhvbmcga2UsIENQSSB0aGFuZyAxMiB0 YW5nIG8gMTAvMTEgbmhvbSBoYW5nIHRyb25nIHJvIGhhbmcgDQpob2EgZHVhIHZhbyB0aW5oIGNo aSBzbyBnaWEgdGlldSBkdW5nLCB2b2kgbXVjIHRhbmcgdHUgMCwwNyAtIDMsMzElLiBSaWVuZyBu aG9tIGJ1dSBjaGluaCB2aWVuIHRob25nIGdpYW0gMCwwMiUuDQoNCkRhbiBkYXUgdmUgbXVjIHRh bmcgZ2lhIG1hbmggbmhhdCB0cm9uZyB0aGFuZyBsYSBuaG9tIGhhbmcgYW4gdmEgZGljaCB2dSBh biB1b25nOyANCnRyb25nIGRvLCBsdW9uZyB0aHVjIHRhbmcgNCw2NyUsIHRodWMgcGhhbSB0YW5n IDMsMjglLCBhbiB1b25nIG5nb2FpIGdpYSBkaW5oIHRhbmcgDQoxLDg2JS4gVGllcCB0aGVvIGxh IG5ob20gbmhhIG8gdmEgdmF0IGxpZXUgeGF5IGR1bmcgdm9pIG11YyB0YW5nIDIsNTMlLg0KDQpD YWMgbmhvbSBoYW5nIGhvYSBjbyBtdWMgdGFuZyB0cmVuIDElIGdvbTogbWF5IG1hYywgbXUgbm9u LCBnaWF5IGRlcCB0YW5nIDEsODElOyANCmRvIHVvbmcsIHRodW9jIGxhIHRhbmcgMSwzJTsgaGFu ZyBob2EgdmEgZGljaCB2dSBraGFjIHRhbmcgMSwwNiUuIENhYyBuaG9tIGNvbiBsYWkgY28gDQpt dWMgdGFuZyBkdW9pIDElIGdvbSB0aGlldCBiaSB2YSBkbyBkdW5nIGdpYSBkaW5oOyB2YW4gaG9h IGdpYWkgdHJpIHZhIGR1IGxpY2g7IGdpYW8gDQp0aG9uZzsgdGh1b2MgdmEgZGljaCB2dSB5IHRl LiBHaWFvIGR1YyBsYSBuaG9tIHRhbmcgdGhhcCBuaGF0ICh0YW5nIDAsMDclKS4NCg0KQ3VuZyB0 cm9uZyB0aGFuZyBuYXksIGNoaSBzbyBnaWEgdmFuZyB2YSBVU0QgdGFuZyBsYW4gbHVvdCA1LDQz JSB2YSAyLDg2JSBzbyB2b2kgDQp0aGFuZyB0cnVvYy4gTmV1IHNvIHNhbmggdm9pIHRoYW5nIDEy LzIwMDksIGNoaSBzbyBnaWEgdmFuZyB0YW5nIDMwJSwgVVNEIHRhbmcgOSw2OCUuDQoNCk5odSB2 YXksIHZvaSBtdWMgdGFuZyAxLDk4JSBzbyB2b2kgdGhhbmcgdHJ1b2MsIGNoaSBzbyBnaWEgdGll dSBkdW5nIGN1YSBjYSBuYW0gMjAxMCANCmRhIHZvdCBsZW4gbXVjIDExLDc1JS4gVm9pIG11YyB0 YW5nIG5heSwgQ1BJIGJpbmggcXVhbiBjYSBuYW0gMjAxMCB0YW5nIDksMTklIHNvIA0Kdm9pIGJp bmggcXVhbiBjYSBuYW0gMjAwOS4NCg0KWGV0IHRoZW8gZGlhIHBodW9uZywgY2hpIHNvIGdpYSB0 aWV1IGR1bmcgY3VhIGNhYyB0aW5oIGNvIG11YyB0YW5nIG5odTogSGEgTm9pIHRhbmcgDQoxLDgz JTsgVFBIQ00gdGFuZzEsNjElOyBIYWkgUGhvbmcgdGFuZyAxLDk2JTsgVGhhaSBOZ3V5ZW4gdGFu ZyAyLDAxJTsgR2lhIExhaSANCnRhbmcgMiwyMSUuLi4NCg0KVGhlbyBkYW5oIGdpYSB0dSBjYWMg Y2h1eWVuIGdpYSwgY2hpIHNvIGdpYSB0aWV1IGR1bmcgdGhhbmcgMTIgdmEgY2EgbmFtIDIwMTAg dGFuZyANCm5nb2FpIGR1IGtpZW4gbGEgZG8gdGFjIGRvbmcgdHVvbmcgaG8gcGh1YyB0YXAsIGN1 bmcgbHVjIGN1YSBuaGlldSBuZ3V5ZW4gbmhhbiBraGFjIA0KbmhhdS4gRGllbiBoaW5oIGxhIGRv IGRpY2ggYmVuaCB0cmVuIGdpYSBzdWMgdmEgZ2lhIGNhbSB0cmVuIGNhIG51b2MgY2h1YSBkdW9j IGtob25nIA0KY2hlLCB0b2MgZG8gdGFpIGRhbiBzYXUgZGljaCBiZW5oIGNvbiBjaGFtLCB0aGll biB0YWkgbmFuZyBuZSwgbWF0IGJhbmcgZ2lhIGx1b25nIHRodWMgDQp0aGUgZ2lvaSB0YW5nIGNh by4uLiANCg0KTmdvYWkgcmEsIGNoaSBzbyBnaWEgdGFuZyBjb24gZG8gdmllYyBzdSBkdW5nIG5n dW9uIHZvbiBkYXUgdHUga2hvbmcgaGlldSBxdWEga2VvIHRoZW8gY2hpbmggc2FjaCB0aWVuIHRl IHBoYWkgZGFwIHVuZy4uLiAgDQoNCmh0dHA6Ly93d3cudHV5ZW5naWFvLnZuL0hvbWUva2hvYWdp YW8vdG9uaG9hdGRvbmdraG9hZ2lhbzIvMjAxMC8xMC8yNTE3MC5hc3B4IEtpbSBUaGFvIDEyOjAn IDIzLzEwLzIwMTANCg0KVGh1IHR1b25nOiBDaGluaCBwaHUgcXVhbiBseSB2aSBtbyBjaHVhIHRv dCANCg0KTmdheSAyMi8xMCwgUXVvYyBob2kgdGhhbyBsdWFuIG8gdG8gdmUgdGluaCBoaW5oIHRo dWMgaGllbiBLZSBob2FjaCBwaGF0IHRyaWVuIGtpbmggdGUtDQp4YSBob2kgbmFtIDIwMTAgdmEg S2UgaG9hY2ggcGhhdCB0cmllbiBraW5oIHRlLXhhIGhvaSAoS1QtWEgpIG5hbSAyMDExLg0KDQpD YWMgZGFpIGJpZXUgUXVvYyBob2kgZGV1IGJheSB0byBzdSBkb25nIHRpbmggdm9pIEJhbyBjYW8g Y3VhIENoaW5oIFBodS4gVHV5IG5oaWVuLCANCm5oaWV1IGRhaSBiaWV1IFF1b2MgaG9pIGN1bmcg Y2hvIHJhbmcsIENoaW5oIHBodSwgY2FjIGNvIHF1YW4gY3VhIENoaW5oIHBodSwgdGFtIHF1YW4g DQpseSB2aSBtbyBjaHVhIHRvdC4NCg0KRGFpIGJpZXUgTmd1eWVuIERhbmcgS2luaCAoSGEgTm9p KSBjaG8gcmFuZywgYmVuIGNhbmgga2V0IHF1YSBkYXQgZHVvYywgbmhpZXUgY2hpIHRpZXUgDQpx dWFuIHRyb25nIGNodWEgZGF0LCBkbyBsYSBuaHVuZyB2YW4gZGUgZGFuZyBiYXQgY2FwLiBUaGVv IGRhaSBiaWV1IE5ndXllbiBEYW5nIEtpbmgsIA0Kbmd1eWVuIG5oYW4gY2h1IHF1YW4gbGEgQ2hp bmggcGh1LCBjYWMgY28gcXVhbiBjdWEgQ2hpbmggcGh1LCB0YW0gcXVhbiBseSB2aSBtbyBjaHVh IA0KdG90LCB0dW5nIHZpZWMgZGlldSBoYW5oIGNodWEgdG90Lg0KIA0KRGFpIGJpZXUgTmd1eWVu IERhbmcgS2luaCBwaGFuIHRpY2gsIHRob25nIGtlIGNhYyBiYW8gZ2FuIGRheSBkZXUgY28gbmV1 LCB0YW5nIHRydW9uZyANCmtpbmggdGUgdGhpZXUgdnVuZyBjaGFjLCBjbyBjYXUgY2h1eWVuIGRp Y2ggY2hhbSwgY28gc28gaGEgdGFuZyB2YW4geWV1IGtlbSwgaGlldSBxdWEgDQpraW5oIHRlIHRo YXAsIG5odW5nIG5oYXAgc2lldSwgYm9pIGNoaSBjYW8sIGdpYSBjYSB0YW5nLi4uIG5odSB2YXkg bGEgdGFtIHF1YW4gbHkgdmkgbW8gDQpjaHVhIHRvdC4gVGhlbyBkYWkgYmlldSBLaW5oIHRoaSBu aGlldSBuZ3VvaSBjaG8gcmFuZywgQ2hpbmggcGh1IGN1IG5naGUgdmEgcXV5ZXQgY2h1IA0KY2h1 YSBzYXUgc2F0LiAgDQoNCkRhaSBiaWV1IE5ndXllbiBUaGkgSG9hIChIYSBOb2kpIGR1YSByYSB2 aSBkdSBjdSB0aGUsIHRyb25nIGRvdCB0aGVvIGRvYW4gZGVuIE5oYSBtYXkgDQpMb2MgZGF1IER1 bmcgUXVhdCBnYW4gZGF5LCBraGkgaG9pIHZlIGhpZXUgcXVhIGtpbmggdGUgdGhpIGRhIGtob25n IG5oYW4gZHVvYyBjYXUgdHJhIA0KbG9pIG5hby4gIk5oYSBtYXkgZGFuZyBiaSBsbywgY28gdGhv bmcgdGluIG5vaSBsYSBiaSBsbyByYXQgbmFuZyIsIGJhIEhvYSBub2kuDQogDQpEb25nIHRpbmgg dm9pIHkga2llbiBjYW4gZGUgY2FvIHRyYWNoIG5oaWVtIGN1YSBuZ3VvaSBkdW5nIGRhdSwgZGFp IGJpZXUgRGFuZyBWYW4gDQpLaGFuaCBjdW5nIGRlIG5naGksIGNhbiBkYW5oIGdpYSBjb25nIHRh YyBsYW5oIGRhbywgY2hpIGRhbywgZGlldSBoYW5oIGN1YSBDaGluaCBwaHUgDQp0cm9uZyBuaGll bSBreSBxdWEsIG5oYXQgbGEgdmFpIG5hbSBnYW4gZGF5LCBkYWMgYmlldCBsYSB0cmFjaCBuaGll bSBjYSBuaGFuIGN1YSBuaHVuZyANCm5ndW9pIGR1bmcgZGF1IHRyb25nIHZpZWMgZGUgeGF5IHJh IG5odW5nIHlldSBrZW0gdHJvbmcgY2hpIGRhbywgZGlldSBoYW5oLg0KIA0KRGFpIGJpZXUgVHJh biBUaGkgUXVvYyBLaGFuaCAoSGEgTm9pKSBkZSBuZ2hpIFF1b2MgaG9pLCBuZ2F5IHRhaSBreSBo b3AgbmF5IGNhbiBsYXkgDQpraWVuIHZlIHN1IHRpbiBuaGllbSBjdWEgUXVvYyBob2kgdm9pIGNh YyB0aGFuaCB2aWVuIENoaW5oIHBodSwgY3VuZyBsYSBnb3AgcGhhbiBjaG8gDQpuaGFuIHN1IERh aSBob2kgRGFuZyB0b2kgZGF5LiAiUGhhaSBsYXkgeSBraWVuIHRpbiBuaGllbSBuZ2F5IHRhaSBr eSBob3AgbmF5IGNodSBraG9uZyANCnRoZSBkZSBkZW4ga3kgaG9wIHNhdSIsIGJhIEtoYW5oIG5o YW4gbWFuaC4NCg0KQ2FjIGNoaSB0aWV1IEtpbmggdGUgLSBYYSBob2kgY2h1YSBzYXQgdGh1Yw0K DQpWZSB2YW4gZGUgY2hpIHRpZXUgS1QtWEgsIGRhaSBiaWV1IERhbmcgVmFuIEtoYW5oIGRlIG5n aGksIFF1b2MgaG9pIG5lbiBuZ2hpZW4gY3V1IA0KZGUgeWV1IGNhdSBDaGluaCBwaHUgZHVhIHJh IG5odW5nIGNoaSB0aWV1IEtULSBYSCBzYXQgdGh1YyB0ZSB4YSBob2ksIHRhYyBkb25nIHRpY2gg Y3VjIA0KZGVuIGRpZXUgaGFuaCBjdWEgQ2hpbmggcGh1IHZhIG1hbmcgbGFpIGhpZXUgcXVhIGNo byB4YSBob2kuIA0KDQpEYW5oIGdpYSBjYW8gbmh1bmcgbm8gbHVjIGN1YSBDaGluaCBwaHUgdHJv bmcgdmllYyB0aHVjIGhpZW4gY2FjIGtlIGhvYWNoIEtULVhILCANCm5odW5nIGRhaSBiaWV1IFBo YW0gVGhpIExvYW4gY3VuZyBkZSBuZ2hpIENoaW5oIHBodSBjYW4geGVtIHhldCwgZ2lhaSBxdXll dCBuaHVuZyANCmJhdCBjYXAgbmh1IGdpdWEgdGhhbmggdGhpIHZhIG5vbmcgdGhvbjsga2luaCB0 ZSB2aSBtbyBwaGF0IHRyaWVuIGNodWEgYmVuIHZ1bmcsIG5oYXAgDQpzaWV1IG5nYXkgY2FuZyB0 YW5nLiBEYWkgYmlldSBMb2FuIGRlIG5naGksIGNhbiBjbyBkYW5oIGdpYSBsYWkgY2hhdCBsdW9u ZyBjYWMgY2hpIHRpZXUgDQpLVC1YSCBuYXkuIFZpIGR1LCBHRFAgbmFtIDIwMTAgY3VhIFZpZXQg TmFtIHRhbmcgdHJ1b25nIHZ1b3Qga2UgaG9hY2gsIG5odW5nIG11YyANCnRhbmcgdHJ1b25nIG5h eSB0YXAgdHJ1bmcgbyBuaHVuZyBsaW5oIHZ1YyBuYW8sIGNvIHBoYWkgbGEgbmh1bmcgbGluaCB2 dWMgbXVpIG5ob24gDQpraG9uZywgbmh1bmcgbGluaCB2dWMgbWEgZGF0IG51b2MgY2FuIHBoYXQg dHJpZW4gdGhpIGNvIHRhbmcgdHJ1b25nIGhheSBraG9uZz8gDQogDQpEYWkgYmlldSBEYW8gVHJv bmcgVGhpLCBQaG8gQ2h1IG5oaWVtIFV5IGJhbiBWYW4gaG9hIEdpYW8gZHVjIFRoYW5oIFRoaWV1 IG5pZW4gJiANCk5oaSBkb25nIGN1YSBRdW9jIGhvaSBsbyBsYW5nLCBjbyBuaHVuZyBjaGkgdGll dSBxdWFuIHRyb25nIGNodWEgZGF0LiBMYW0gcGhhdCBuaHVuZyANCnRoYW5nIGN1b2kgbmFtIHRh bmcgbmhhbmgsIG5ldSBraG9uZyBjbyBiaWVuIHBoYXAga2hvbmcgY2hlIHF1eWV0IGxpZXQgc2Ug a2hvIGtoYW4uIA0KTW90IHNvIGNoaSB0aWV1IHZlIG1vaSB0cnVvbmcsIHZhbiBob2EsIHhhIGhv aSBraG9uZyBkYXQsIG5ndXllbiBuaGFuIG1vdCBwaGFuIGxhIGRvIA0KY2FjIGNoaSB0aWV1IGNo dWEgc2F0IHRodWMgdmEgbW90IHBoYW4gZG8gY2h1bmcgdGEgbGFtIGNodWEgdG90LiANCg0KaHR0 cDovL3R1b2l0cmUudm4vS2luaC10ZS8yMjQzMTMvR2lhLWNhLXRhbmctY2FvLXRhYy1kb25nLXhh dS1kZW4tZG9pLXNvbmctbmd1b2ktZGFuLmh0bWwgS0hJRVQgSFVORyB0aHVjIGhpZW4gMTQvMTAv MjAwNywgMDc6MzQgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBHaWEgY2EgdGFuZyBjYW8gdGFjIGRv bmcgeGF1IGRlbiBkb2kgc29uZyBuZ3VvaSBkYW4NCg0KVFQgLSBUcmFvIGRvaSBuZ2FuIHZvaSBU dW9pIFRyZSB2ZSB0aW5oIGhpbmggcGhhdCB0cmllbiBraW5oIHRlIC0geGEgaG9pIG5hbSAyMDA3 LCBvbmcgDQpMRSBRVU9DIERVTkcsIHBobyBjaHUgbmhpZW0gVXkgYmFuIEtpbmggdGUgUXVvYyBo b2ksIG5vaToNCg0KLSBUYW5nIHRydW9uZyBuaHVuZyB2YW4gdHJlbiBjbyBzbyBwaGF0IGh1eSB2 b24gdmEgc3UgZHVuZyBsYW8gZG9uZyBsYSBjaGluaCBjaHUgY2hhdCANCmx1b25nLCBoYW0gbHVv bmcgZ2lhIHRyaSB0YW5nIHRoZW0sIHN1YyBjYW5oIHRyYW5oIGN1YSBoYW5nIGhvYS4uLiB2YW4g Y29uIHJhdCBoYW4gY2hlLiANCkdpYSBoYW5nIGhvYSB0aWV1IGR1bmcgY3VuZyB0YW5nIHJhdCBj YW8sIGR1IGJhbyBraG9hbmcgOC04LDUlIHRhYyBkb25nIHhhdSBkZW4gZG9pIA0Kc29uZyBjdWEg bmhhbiBkYW4sIGRhYyBiaWV0IGxhIGJvIHBoYW4gZGFuIGN1IGNvIHRodSBuaGFwIHRoYXAsIG5o dW5nIG5ndW9pIG5naGVvLCANCm5odW5nIG5ndW9pIGh1b25nIGx1b25nLiANCg0KTXVjIHRhbmcg R0RQIGN1YSBraHUgdnVjIG5vbmcgbmdoaWVwIGNoaSBkYXQgMyw1JSBtYSBnaWEgY2EgdGFuZyB0 b2kgOCUgdGhpIG5ndW9pIA0KZGFuIGtodSB2dWMgbmF5IHNlIGJpIHR1dCBoYXUgdmEga2hvYW5n IGNhY2ggZ2l1YSBjYWMga2h1IHZ1YyBuZ2F5IGNhbmcgbG9uLiBTdSB0YW5nIA0KZ2lhIGN1bmcg c2UgYW5oIGh1b25nIGxvbiBkZW4gY2hpbmggc2FjaCBjdWEgTmhhIG51b2Mga2hpZW4gbmhpZXUg Y2hpbmggc2FjaCBraG9uZyANCmNvbiB0aGljaCBob3AuDQoNCiogVGh1YSBvbmcsIG5odW5nIGJh dCBjYXAgZGFuZyBzYXUgdGFuZyB0cnVvbmcgbm9pIGxlbiBkaWV1IGdpIHRyb25nIHN1IGRpZXUg aGFuaCBjdWEgQ2hpbmggcGh1Pw0KDQotIENoaW5oIHBodSBjb24gY2hhbSB2YSBjaHVhIGNvIG1v dCBjaGllbiBsdW9jIHJvIHJhbmcuIFR1bmcgbGluaCB2dWMsIHR1bmcgbG9haSBoYW5nIA0KaG9h IHZhbiBjaHVhIGNvIGNoaWVuIGx1b2MgYmFpIGJhbiBkYWkgaGFuIHZhIHRydW5nIGhhbi4gQ2h1 bmcgdGEgdmFuIHRoYSBub2kgY2hvIHRoaSANCnRydW9uZy4gDQoNCiogTmh1IHZheSBzdSB0YW5n IHRydW9uZyBjdWEgbmFtIG5heSBjaHVhIGhhbiBkYW5nIG11bmc/DQoNCi0gVGFuZyB0cnVvbmcg bm9pIGNodW5nIHRoaSB0b3Qgbmh1bmcgZGkgdmFvIGN1IHRoZSB4ZW0gYmFvIG5oaWV1IHRhbmcg bG9wIGRhbiBjdSBkdW9jIA0KaHVvbmcgbG9pIHR1IHN1IHRhbmcgdHJ1b25nIG5heSBsYWkgY2h1 YSBoYW4gZGEgdG90LiBDbyByYXQgbmhpZXUgYm8gcGhhbiBkYW4gY3Uga2hvbmcgDQpkdW9jIGh1 b25nIGxvaSB0dSB0YW5nIHRydW9uZyB2aSB0aHUgbmhhcCBjdWEgaG8gcmF0IHRoYXAgdmEgcGhh aSBjaGl1IGdpYSB0aWV1IGR1bmcgcmF0IA0KY2FvLiBPIG1pZW4gbnVpLCBzYXUgbW90IG5hbSB0 aHUgbmhhcCBjdWEgbmd1b2kgZGFuIHZhbiB0aGUuIFZpIHZheSwgY2h1YSBwaGFpIHRhbmcgDQp0 cnVvbmcgY2FvIG1hIGRvaSBzb25nIGN1YSBuZ3VvaSBkYW4gZGEgZHVvYyBjYWkgdGhpZW4uIE5n dW9pIGRhbiBjbyBraGkga2hvbmcgcXVhbiANCnRhbSB0YW5nIHRydW9uZyB0aGUgbmFvIG1hIGNo aSBjYW4gYmlldCBuYW0gbmF5IGhvbiBkdW9jIG5hbSBuZ29haSBjYWkgZ2ksIGR1b25nIHNhIA0K dGhlIG5hbywgZGllbiB0aGUgbmFvLCBkb2kgc29uZyByYSBzYW8uLi4gDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ny8yMDEwMTExNzEwNDIzMy5hc3B4IEJh byBDYW0gMTcvMTEvMjAxMCAxMDo0MiANCg0KVGh1IHR1b25nOiBEYW4gYnVjIHh1YyB2aWVjIGdp YSBjYSB0YW5nIGNhbyANCg0KR2lhIGNhIHRhbmcgY2FvIHZhIGdpYWkgcGhhcCBraWVtIGNoZSBn aWEgY2EgY2FjIG1hdCBoYW5nIHRoaWV0IHlldSwgdGFjIGRvbmcgbG9uIGRlbiBkb2kgDQpzb25n IG5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIGN1bmcgbGEgdmFuIGRlIG5oaWV1IERCUUggdGFwIHRy dW5nIGNoYXQgdmFuIGNhYyB0aGFuaCANCnZpZW4gQ2hpbmggcGh1IHZhIGNhYyBibyB0cnVvbmcu DQoNCkRCIE5ndXllbiBRdXkgTmhvbiAoUXVhbmcgTmFtKSBuZXUgdGluaCB0cmFuZzogaGllbiBu YXkgZ2lhIGNhIG1vdCBzbyBtYXQgaGFuZyANCnRoaWV0IHlldSBuaHUgbHVvbmcgdGh1YywgdGh1 YyBwaGFtLCBoYW5nIHRpZXUgZHVuZywgc3VhLCB0aHVvYyBjaHVhIGJlbmggdmFuIHRpZXAgdHVj IA0KdGFuZyBjYW8uIENvIG1hdCBoYW5nIHRhbmcgZGVuIGdhbiAyMCUgYW5oIGh1b25nIGRlbiBk b2kgc29uZyBuaGFuIGRhbiwgZGFjIGJpZXQgbGEgDQpub25nIGRhbiwgbmd1b2kgbGFtIGNvbmcg YW4gbHVvbmcuIENoaSBzbyBnaWEgdGlldSBkdW5nIDkgdGhhbmcgZGF1IG5hbSB0aGVvIGJhbyBj YW8gDQpjdWEgQ2hpbmggcGh1IHRhbmcgNiw1JSwgZHUgYmFvIG5odW5nIHRoYW5nIGN1b2kgbmFt IHNlIHRpZXAgdHVjIHRhbmcgY2FvLCBraG8gY28gdGhlIA0Ka2llbSBzb2F0IG8gOCUgdGhlbyBu Z2hpIHF1eWV0IGN1YSBRSCAoZ2FuIFRldCBOZ3V5ZW4gZGFuLCB0YW5nIGx1b25nKSBuZXUga2hv bmcgY28gDQpnaWFpIHBoYXAga2llbSBjaGUsIHF1YW4gbHkgY2hhdCBjaGUuIERCIG5heSAiZGUg bmdoaSBCbyB0cnVvbmcgQ29uZyB0aHVvbmcgY2hvIGJpZXQgDQpuZ3V5ZW4gbmhhbiB2aSBzYW8/ IFRyYWNoIG5oaWVtIGN1YSBibyB0cm9uZyB2aWVjIHF1YW4gbHkgZ2lhIG5odSB0aGUgbmFvPyBH aWFpIHBoYXAgDQpuYW8gZGUga2llbSBzb2F0IHZhIGJpbmggb24gZ2lhIGNhLCBuaGF0IGxhIGRv aSB2b2kgbmh1bmcgbWF0IGhhbmcgdGhpZXQgeWV1IGN1YSBkb2kgc29uZyANCm5oYW4gZGFuPyIu DQoNCkRCIERvIE1hbmggSHVuZyAoVGhhaSBOZ3V5ZW4pIGN1bmcgY2hhdCB2YW4gQm8gdHJ1b25n IFRhaSBjaGluaCAidGluaCBoaW5oIGdpYSBjYSANCnRhbmcgY2FvIGxhbSBjaG8gZG9pIHNvbmcg bmhpZXUgbmd1b2kgcmF0IGtobyBraGFuLCBsYW0gY2hvIGNhYyBjb24gc28gdmUgdGFuZyB0cnVv bmcgDQpnaWFtIHkgbmdoaWEuIERlIG5naGkgQm8gdHJ1b25nIGNobyBiaWV0IG5ndXllbiBuaGFu IChuaGF0IGxhIG5ndXllbiBuaGFuIGNodSBxdWFuKSANCmN1YSB0aW5oIGhpbmggdGFuZyBnaWEg Y2FvIGhpZW4gbmF5PyBUcmFjaCBuaGllbSBjdWEgQm8gVGFpIGNoaW5oIHRyb25nIHZpZWMgdGhh bSBtdXUgDQp2b2kgQ2hpbmggcGh1IHZhIHRodWMgaGllbiBjYWMgY2hpbmggc2FjaCBxdWFuIGx5 LCBkaWV1IHRpZXQsIGtpZW0gY2hlIHRhbmcgZ2lhPyIuDQoNClF1YW4gdGFtIGRhYyBiaWV0IGRl biBnaWEgdGh1b2MgdGFuZyBjYW8gaGllbiBuYXksIERCIFRydW9uZyBUaGkgQW5oIChUUC5IQ00p IGNoYXQgDQp2YW4gQm8gdHJ1b25nIFRhaSBjaGluaCBWdSBWYW4gTmluaDogQ3UgdHJpIGNobyBy YW5nIE5oYSBudW9jIGNodWEga2llbSBzb2F0IGR1b2MgDQpnaWEgdGh1b2MgdGFuIGR1b2MsIGNo dWEgZGlldSB0aWV0IGR1b2MgZ2lhIHRodW9jIGRhdSB2YW8sIGRhdSByYSwgc3UgcGhvaSBob3Ag Z2l1YSBjYWMgDQpibywgbmdhbmgsIGRpYSBwaHVvbmcsIG5oYXQgbGEgZ2l1YSBCbyBUYWkgY2hp bmggdmEgQm8gWSB0ZSBjaHVhIHBoYW4gZGluaCBybyB0aGFtIA0KcXV5ZW4uIERlIG5naGkgQm8g dHJ1b25nIGNobyBiaWV0IGFpIGNoaXUgdHJhY2ggbmhpZW0gY2hpbmggdmUgdGluaCB0cmFuZyB0 aGEgbm9pIGdpYSANCnRodW9jIGhpZW4gbmF5LiBUaG9pIGdpYW4sIGdpYWkgcGhhcCBnaSBkZSBz b20gb24gZGluaCBnaWEgdGh1b2M/DQoNCkN1bmcgbW9pIHF1YW4gdGFtLCBEQiBIdXluaCBOZ2hp YSAoRGEgTmFuZykgY3VuZyBjaGF0IHZhbiBCbyB0cnVvbmcgWSB0ZSAidmllYyANCnF1YW4gbHkg TmhhIG51b2MgdmEgZ2lhIHRodW9jIGhpZW4gbmF5IG5odSB0aGUgbmFvPyBUcmFjaCBuaGllbSBj dWEgQm8gWSB0ZSBkZW4gZGF1PyANCkR1IGtpZW4gY28gdGFuZyB2aWVuIHBoaSBoYXkga2hvbmc/ IExvIHRyaW5oIG5odSB0aGUgbmFvPyIgdHJ1b2MgeSBraWVuIGN1IHRyaSBjaG8gcmFuZyANCiJn aWEgbmhpZXUgbWF0IGhhbmcgdGh1b2MgbmdvYWkgdGhpIHRydW9uZyB0YW5nLCBjb25nIHZvaSB2 aWVjIEJvIFkgdGUgZHUga2llbiBzZSB0YW5nIA0KdmllbiBwaGkgZGFuZyB0aHVjIHN1IGNob25n IGNoYXQgdGhlbSBraG8ga2hhbiBjaG8gbmd1b2kgYmVuaCIuIA0KDQpodHRwOi8vd3d3Nzcudmll dG5hbW5ldC52bi92bi9jaGluaC10cmkvMjM1OS9uaGEtdGFpLXRyby1xdWFuLW5nYWktdGllbi1k b25nLW1hdC1naWEtLWxhbS1waGF0LXRhbmctbWFuaC5odG1sIFh1YW4gTGluaCAwNy8xMi8yMDEw IDA1OjE3OjI5IFBNIChHTVQrNykgDQoNClRodSB0dW9uZzogQ2FjIG5oYSB0YWkgdHJvIHF1YW4g bmdhaSB0aWVuIGRvbmcgbWF0IGdpYSwgbGFtIHBoYXQgdGFuZyBtYW5oIA0KDQotIFRyb25nIGto aSBJTUYsIFdCIG5oYW4gZGluaCBsYW0gcGhhdCBkYSB0YW5nIG1hbmgsIGNvIHRoZSB0YW5nIGRl biBoYWkgY29uIHNvIG5hbSANCm5heSwgQm8gdHJ1b25nIEtlIGhvYWNoIC0gRGF1IHR1IGNobyBo YXkgQ2hpbmggcGh1IGRhbmcgbm8gbHVjIGRlICJsYW0gcGhhdCB0cm9uZyB0YW0gDQpraWVtIHNv YXQiIHZvaSBkdSBiYW8gbyBtdWMgOCw1JS4NCiAgDQpBcCBsdWMgbGFtIHBoYXQgZ2lhIHRhbmcs IHN1IG1hdCBnaWEgY3VhIHRpZW4gZG9uZyBkYSBsYW0gbm9uZyBob2kgbmdoaSBOaG9tIHR1IHZh biANCmNhYyBuaGEgdGFpIHRybyBjaG8gVmlldCBOYW0gKENHKSBraGFpIG1hYyBzYW5nIG5heSAo Ny8xMikuIENhYyBuaGEgdGFpIHRybyBsbyBuZ2FpIHZhbiANCmRlIG5heSBjbyB0aGUgbGFtIGFu aCBodW9uZyBsb25nIHRpbiBjdWEgaG8gdG9pIG9uIGRpbmgga2luaCB0ZSB2aSBtby4NCg0KTG8g dGllbiAibWF0IGdpYSBsaWVuIHR1YyINCg0KQmFvIGNhbyBjdWEgTmdhbiBoYW5nIFRoZSBnaW9p IHRhaSBWaWV0IE5hbSAoV0IpIGNobyBoYXkgZGVuIGN1b2kgdGhhbmcgMTEsIHRpIGxlIGxhbSAN CnBoYXQgZHVuZyBvIG11YyAxMSwxJSwgMTEgdGhhbmcgZGF1IG5hbSAgOSw2JS4gTGFtIHBoYXQg Z2lhIGx1b25nIHRodWMgaGFuZyBuYW0gbGVuIA0KZGVuIDE0LDglLCBtdWMgY2FvIG5oYXQga2Ug dHUgdGhhbmcgNC8yMDA5LiBXQiBkdSBiYW8gbGFtIHBoYXQgY2hvIGNhIG5hbSBuYXkgc2UgDQp2 YW8ga2hvYW5nIDEwLDUlIC0gY2FvIGhvbiBtdWMgOCUgbWEgUXVvYyBob2kgZGUgcmEuDQogDQpD dW5nIGtoYW5nIGRpbmggbGFtIHBoYXQgZGEgdGFuZyBtYW5oLCBkdSBraWVuIGNvIHRoZSB0YW5n IGhhaSBjb24gc28gdHJvbmcgbmFtIG5heSwgDQpvbmcgTWFzYXRvIE1peWF6YWtpLCBxdWFuIGNo dWMga2h1IHZ1YyBjdWEgUXV5IFRpZW4gdGUgcXVvYyB0ZSAoSU1GKSBiYXQgYmVuaDogIkdpYSAN Cmx1b25nIHRodWMsIHRodWMgcGhhbSBjYW8gaG9uIGRhIGdvcCBwaGFuIGxhbSB0YW5nIGxhbSBw aGF0LCBjYXUgbm9pIGRpYSBjYW8gY3VuZyB2b2kgDQpzdSBtYXQgZ2lhIGN1YSBWTkQgY3VuZyBk b25nIHZhaSB0cm8gcXVhbiB0cm9uZyBsYW0gbGFtIHBoYXQgdGFuZyIuICAgDQoNCklNRiBraHV5 ZW4gY2FvIFZpZXQgTmFtIHRoYXQgY2hhdCBjaGluaCBzYWNoIHRpZW4gdGUgZGUga2hvaSBwaHVj IG1vdCBjYWNoIGNvIHRyYXQgdHUgDQpjYWMgZGlldSBraWVuIHRyZW4gdGhpIHRydW9uZyBuZ29h aSBob2kgdmEga2llbSBjaGUgYXAgbHVjIGxhbSBwaGF0LiBUcm9uZyBraGkgZG8sIHZvaSANCnRh bmcgdHJ1b25nIHRpbiBkdW5nIGR1IGtpZW4gc2UgdnVvdCBxdWEgbXVjIHRpZXUgbmFtIG5heSBs YSAyNSUsIElNRiBjaG8gcmFuZyBkYXkgbGEgDQptdWMgInF1YSBjYW8iIGRvaSB2b2kgbmVuIGtp bmggdGUuIFRoYW0gaHV0IHRodW9uZyBtYWkgdGFuZyBsZW4gbXVjIDEsMyB0eSBVU0QgdHJvbmcg DQp0aGFuZyAxMSB2YSBtdWMgdGhhbSBodXQgdGFpIGtob2FuIHZhbmcgbGFpIChraG9uZyBrZSB2 YW5nKSBkdW9jIGR1IGJhbyBvIG11YyBkdW9pIA0KNyUgY3VhIEdEUCB2YW4gY29uIHJhdCBsb24u DQogIA0KSUZNIGJheSB0byBsbyBuZ2FpIHZpZWMgdHkgZ2lhIFZORCBkYSBwaGFpIGNoaXUgYXAg bHVjICJtYXQgZ2lhIGxpZW4gdHVjIiBrZSB0dSBtdWEgaGUsIA0KbWFjIGR1IGRhIGR1b2MgcGhh IGdpYSAyLDElIHRyb25nIHRoYW5nIDggdmEgY2FjIGxhaSBzdWF0IGNoaW5oIHNhY2ggZGEgZHVv YyB0YW5nIHRoZW0gDQoxMDAgZGllbSBjbyBiYW4gdmFvIHRoYW5nIDExLiBUeSBnaWEgdGhpIHRy dW9uZyB0dSBkbyBkYSBuYW0gbmdvYWkgYmllbiBkbyBjdWEgdHkgZ2lhIA0KY2hpbmggdGh1YyBr aG9hbmcgMTAlLiAgDQogDQpCbyB0cnVvbmcgS2UgaG9hY2ggLSBEYXUgdHUgVm8gSG9uZyBQaHVj IGNobyBoYXkgImtpZW0gc29hdCBsYW0gcGhhdCB2YSBtdWMgdGlldSBsYSANCnZhbiBkZSBsb24i LiAiTXVjIHRpZXUgbGEga2llbSBzb2F0IGxhbSBwaGF0IHZhIGNvbiBzbyBsYW0gcGhhdCBraG9u ZyBxdWEgNyUuIFRyb25nIGt5IA0KaG9wIFF1b2MgaG9pIDggdnVhIHF1YSBkYSB0aGF5IHZhbiBk ZSBraWVtIGNoZSBsYW0gcGhhdCBsYSBraG8gdGh1YyBoaWVuIHZhIGR1IGJhbyBjYSANCm5hbSBu YXkgbGEgOCw1JS4gU2F1IGRvLCBkbyB0aW5oIGhpbmggZGllbiBiaWVuIGN1YSB0aGFuZyAxMCB2 YSB0aGFuZyAxMSBkbyBtb3Qgc28gaG9hdCANCmRvbmcgdHJvbmcgbGluaCB2dWMgbmdhbiBoYW5n LCByb2kgdGkgZ2lhLCB0aGllbiB0YWksIG5lbiBhbmggaHVvbmcgdHJ1YyB0aWVwIGRlbiB2YW4g ZGUgDQpsYW0gcGhhdCBraGllbiBjb24gc28gZGEgbGVuIDksNTglLiBDaGluaCBwaHUgZGFuZyBj byBnYW5nIGRlIGxhbSBwaGF0IHRyb25nIHRhbSBraWVtIA0Kc29hdC4gVmEgaHkgdm9uZyAyMDEx IHNlIGdpdSBvIG11YyA3JSIsIG9uZyBub2kuDQogIA0KTG8gbGFuZyBsYW0gcGhhdCBjYW8gY3Vu ZyBuaHUgc3UgbWF0IGdpYSBjdWEgdGllbiBkb25nIHRhbyByYSBraG8ga2hhbiB0cm9uZyBib2kg Y2FuaCANCmtpbmggdGUgdGhlIGdpb2kgZGFuZyBkaWVuIHJhIGRheSBiYXQgdHJhYywgRGFpIHN1 IE5oYXQgQmFuIFlhc3Vha2kgVGFuaXpha2kgY2hvIHJhbmcgDQoiQ2hpbmggcGh1IGNhbiB0aHVj IGhpZW4gbmh1bmcgYmllbiBwaGFwIGhpZXUgcXVhIG1hbmggbWUgZGUga2hvaSBwaHVjIGxvbmcg dGluIGN1YSANCm5oYSB0YWkgdHJvIHZhbyB0aWVuIGRvbmcsIHNvbSBvbiBkaW5oIHRoaSB0cnVv bmcgdGllbiB0ZSBub2kgZGlhIi4gIA0KIA0KVHJhbmggZ2lhaSBwaGFwICJnaWF0IGN1YyINCg0K VHJ1b2Mgbmh1bmcgbG8gbmdhaSBjdWEgY2FjIG5oYSB0YWkgdHJvIHZlIGxhbSBwaGF0IHRhbmcg bWFuaCwgVGhvbmcgZG9jIE5nYW4gaGFuZyANCk5oYSBudW9jIFRyYW4gVmFuIEdpYXUgY2hvIGhh eSBkYSB0aWVuIGhhbmggY2hpbmggc2FjaCBkaWV1IGNoaW5oIGxhaSBzdWF0IGNodSBjaG90LCAN CmJhdCBkYXUgdGh1YyBoaWVuIGNoaW5oIHNhY2ggdGhhdCBjaGF0IHRpZW4gdGUuDQoNCiJDaHVu ZyB0b2kgbW9pIGRpZXUgY2hpbmggbW90IHRoYW5nIHZhIHZhbiB0aWVwIHR1YyB0aGVvIGRvaSIs IG9uZyBHaWF1IGNobyBoYXkuIFRyb25nIA0KYmFuIHRoYW8gZGFpIDUgdHJhbmcgbHV1IGhhbmgg dGFpIGhvaSBuZ2hpLCBUaG9uZyBkb2MgY3VuZyBkYSBkdWEgcmEgY2hpIHRpZXQgMyBuaG9tIGdp YWkgDQpwaGFwIGRpZXUgaGFuaCBjaGluaCBzYWNoIHRpZW4gdGUuDQogIA0KT25nIGtoYW5nIGRp bmggImNhYyBjb25nIGN1IGNoaW5oIHNhY2ggdGllbiB0ZSBkdW9jIHN1IGR1bmcgbGluaCBob2F0 LCBnb3AgcGhhbiBobyB0cm8gDQptdWMgdGlldSB0YW5nIHRydW9uZyBraW5oIHRlIHZhIGtpZW0g c29hdCBsYW0gcGhhdCIuIENobyByYW5nICJtYWMgZHUgY28gbmhpZXUgdGllbiBibyIsIA0Kb25n IEdpYXUgbmhhbiBkaW5oIHRoaSB0cnVvbmcgdGllbiB0ZSwgbmdvYWkgaG9pIGN1YSBWaWV0IE5h bSBjb24gbmhpZXUgdGhhY2ggdGh1YyBwaGlhIA0KdHJ1b2MsIG5oYXQgbGEgdGluaCBvbiBkaW5o IGRlIHRhbyBsb25nIHRpbiB2dW5nIGNoYWMsIGxhdSBkYWkgZG9pIHZvaSB0YW0gbHkgeGEgaG9p IHZhIHRhbSANCmx5IHRoaSB0cnVvbmcuDQoNClRyb25nIGtoaSBkbywgTmdhbiBoYW5nIFBoYXQg dHJpZW4gY2hhdSBBIChBREIpIGNobyByYW5nIGNoaW5oIHNhY2ggdGhhdCBjaGF0IHRpZW4gdGUg DQpjb25nIGJvIHRyb25nIHRoYW5nIDExIHZ1YSBxdWEgInRpY2ggY3VjIG5odW5nIGNodWEgZHUi LiBWaWV0IE5hbSBuZW4gdGhpZXQgbGFwIG1vdCANCmNoaW5oIHNhY2ggdGllbiB0ZSBkYWkgaGFu IHJvIHJhbmcgbmhhbSBkaW5oIGh1b25nIGRhdCBkdW9jIG1vdCBtdWMgbGFtIHBoYXQgZ2FuIGhv biANCmxhbSBwaGF0IHRydW5nIGJpbmggdHUgMiBkZW4gNCUgY3VhIGNhYyBudW9jIEFTRUFOIHRy b25nIGtodSB2dWMuIA0KIA0KV0IgdGhpIGNobyByYW5nIFZpZXQgTmFtIGNhbiBkYW0gYmFvIHN1 IG5oYXQgcXVhbiB4dXllbiBzdW90IGNhYyBtdWMgdGlldSBjdWEgY2hpbmggDQpzYWNoIHRpZW4g dGUgbmh1IGxhaSBzdWF0LCB0aW4gZHVuZywgdG9uZyBwaHVvbmcgdGllbiB0aGFuaCB0b2FuLCB0 eSBnaWEuLi4gbmhhbSB0cmFuaCB0aW5oIA0KdHJhbmcgZGlldSBjaGluaCB2b2kgdmFuZyB2YSBj YWMgZ2lhaSBwaGFwICJnaWF0IGN1YyIga2hpIHRodWMgdGhpIGNoaW5oIHNhY2ggdGllbiB0ZS4N CiAgDQpUbyBjaHVjIG5heSBuaGFuIGRpbmggYmFuIHRoYW4gbXVjIHRpZXUgaG9hY2ggZGluaCBj aGluaCBzYWNoIGN1YSBWaWV0IE5hbSBkdW9uZyANCm5odSBkYSBjbyBzdSAidGhpZW4gdmkgY28g aHV1IiwgY29pIHRyb25nIG11YyB0aWV1IHRhbmcgdHJ1b25nIGNhbyBob24gbGEgZHV5IHRyaSBv biBkaW5oIA0Ka2luaCB0ZSB2aSBtby4gS2hpIHBoYWkgZG9pIG1hdCB2b2kgdGkgbGUgbGFtIHBo YXQgY2FvIGhvbiBkdSBraWVuLCB0aGkgY2hpbmggcGh1IGR1bmcgDQpkZW4gY2FjIGNvIGNoZSBo YW5oIGNoaW5oIC0gbmh1IGtpZW0gc29hdCBnaWEgY2EgdmEgcXV5IGJpbmggb24gZ2lhIC0gZGUg a2llbSBzb2F0IGxhbSANCnBoYXQsIG1hYyBkdSBjYWMgYmllbiBwaGFwIG5heSBraG9uZyBkdW9j IHN1IGR1bmcgdGh1b25nIHh1eWVuIHZhIHRodW9uZyB0cm9uZyBjYWMgDQp0cnVvbmcgaG9wIGNh biB0aGlldC4gIA0KIA0KIktoaSBuZW4ga2luaCB0ZSB0cm8gbmVuIHBodWMgdGFwIGhvbiwgaG9p IG5oYXAgc2F1IGhvbiB2YW8gbmVuIGtpbmggdGUgdGhlIGdpb2ksIFZpZXQgDQpOYW0gc2UgY2Fu IGNvIGNhYyBjaGluaCBzYWNoIHRoYW4gdGhpZW4gdm9pIHRoaSB0cnVvbmcgaG9uIGRlIGRhdCBk dW9jIG11YyB0aWV1IGJpbmggb24gDQpnaWEsIHRyb25nIGRvIGJhbyBnb20gdmllYyBzdSBkdW5n IG5oaWV1IGhvbiBjaGluaCBzYWNoIGNhbmggdHJhbmggdmEgY2hpbmggc2FjaCB0aWVuIA0KdGUi Lg0KDQpUaGVvIElNRiwgY2FjIGxhaSBzdWF0IGNoaW5oIHNhY2ggdmFuIGNvbiByYXQgdGhhcCBk ZSBjbyB0aGUgbmdhbiBjaGFuIGt5IHZvbmcgbWFuaCBtZSANCmN1YSB0aGkgdHJ1b25nIHZlIHN1 IGdpYW0gZ2lhIGN1YSBWTkQgdmEgbGFtIHBoYXQgY2FvIGhvbi4gIkNodW5nIHRvaSB0aW4gbGEg Y2hpbmggcGh1IA0KbmVuIHRoZW8gZHVvaSBtb3QgZ29pIGdhbiBrZXQgY2FjIGJpZW4gcGhhcCB0 aGF0IGNoYXQgbWEgbmVuIGdvbSBjbyBzdSB0YW5nIGxhaSBzdWF0IA0KY2hpbmggc2FjaCBjYW8g aG9uIG51YSB2YSBzdSBjdW5nIGNvIG5nYW4gc2FjaCBsb24gaG9uIi4NCg0KQ3VuZyBjbyBuZ2Fu IHNhY2ggbmhhbSBnaWFtIHR5IGxlIG5vIGNvbmcgdHJlbiBHRFAgY3VuZyBsYSBjYW4gdGhpZXQu ICJWb2kgaGF1IGhldCBjYWMgDQpiaWVuIHBoYXAga2ljaCB0aGljaCBraW5oIHRlIGRhIGhldCBo aWV1IGx1YyB2YW8gY3VvaSBuYW0gMjAwOSwgdmllYyBnaWFtIHRoYW0gaHV0IG5nYW4gDQpzYWNo IHRvbmcgdGhlIHR1IGR1b2kgOSUgR0RQIHRyb25nIG5hbSAyMDA5IHh1b25nIGtob2FuZyA1LDUl IEdEUCB0cm9uZyBuYW0gbmF5IA0KbGEgdHJvbmcgdGFtIHRheSwgbWllbiBsYSBDaGluaCBwaHUg dGhhdCBjaGF0IGNoaSB0aWV1IiwgcXVhbiBjaHVjIElNRiBuaGFuIGRpbmguDQoNCkxpZXUgY28g VmluYXNoaW4gdGh1IGhhaT8NCiANCkRvIGxhIGNhdSBob2kgdGFuIERhaSBzdSBBbmggQW50b255 IFN0b2tlcyBuZXUga2hpIHF1YW4gdGFtIHRvaSB2YW4gZGUgcXVhbiBseSBkb2FuaCANCm5naGll cCBuaGEgbnVvYyAoRE5OTikuICJMYW0gdGhlIG5hbyBkZSBnaW9pIGRhdSB0dSBjbyBsb25nIHRp biB2YW8gY2FjaCBDaGluaCBwaHUgDQpwaGF0IGhpZW4gcmEgVmluYXNoaW4gdmEgY2FjaCBodW9u ZyBkYW4gY2FjIGNvbmcgdHkgaG9hdCBkb25nIGhpZXUgcXVhIGhvbiB0aGVvIGNvIGNoZSANCnRo aSB0cnVvbmc/IERvIGxhIGNhY2ggZGUgdGFuZyBjdW9uZyBsb25nIHRpbiB2YSBkdWEgcmEgdGhv bmcgZGllcCBtYW5oIG1lIGNobyBnaW9pIGRhdSANCnR1IiwgRGFpIHN1IHBoYXQgYmlldS4NCg0K RGFpIHN1IE15IE1pY2hlYWwgTWljaGFsYWsgY3VuZyBkYXQgY2F1IGhvaSB2ZSBrZSBob2FjaCBj dWEgQ2hpbmggcGh1IGRlIGtob25nIGNvIA0KdGhlbSBtb3QgdnUgVmluYXNoaW4geGF5IHJhIGN1 bmcgbmh1IHZpZWMgY28gcGhhbiBob2EgY2FjIEROTk4gcGhhaSBtYW5oIG1lLCBoaWV1IA0KcXVh IGhvbi4gDQpHaWFtIGRvYyBBREIgS29uaXNoaSBjaG8gaGF5IGNhbiBkYW0gYmFvIHRpbmggdHJh Y2ggbmhpZW0sIHRhbmcgY3VvbmcgZ2lhbSBzYXQgaG9hdCANCmRvbmcgY3VhIEROTk4sIHF1YW4g bHkgdG90IGRlIHRyYW5oIG5odW5nIHJ1aSBybyBjbyB0aGUgeGF5IHJhLCBsYW0gInJhbyBjYW4i IGNobyBzdSANCnBoYXQgdHJpZW4ga2luaCB0ZSBxdW9jIGdpYSBjdW5nIG5odSB0YW8gc3UgY2Fu aCB0cmFuaCBiaW5oIGRhbmcgZ2l1YSBjYWMgdGhhbmggcGhhbiANCmRvYW5oIG5naGllcC4gIA0K IA0KQm8gdHJ1b25nIFZvIEhvbmcgUGh1YyBraGFuZyBkaW5oOiAiVmluYXNoaW4gbGEgbW90IGJh aSBob2MgZGF1IGxvbmcgY2hvIFZpZXQgTmFtLiANCkNoaW5oIHBodSBzZSBraG9uZyBkZSB4YXkg cmEgdHJ1b25nIGhvcCB0dW9uZyB0dSBudWEuIENodW5nIHRvaSBzZSB0YW5nIGN1b25nIGNhYyB2 YW4gDQpiYW4gcGhhcCBsdWF0LCBuaHUgTHVhdCBraWVtIHRvYW4sIG5oYW0gbmFuZyBjYW8gdmFp IHRybyBjdWEga2llbSB0b2FuIHZhIHlldSBjYXUgY29uZyANCmtoYWksIG1pbmggYmFjaCB0aG9u ZyB0aW4ga2llbSB0b2FuIi4NCk9uZyBQaHVjIGN1bmcgbm9pIFZpZXQgTmFtIHF1eWV0IHRhbSB0 aHVjIGhpZW4gbG8gdHJpbmggY2FpIGNhY2ggRE5OTiBzb25nIGRvIHRoaSANCnRydW9uZyB2b24g Y2h1bmcgbGFpIG5lbiB0aWVuIHRyaW5oIGNvIHBoYW4gaG9hIGNoYW0uIFZlIGRhdSB0dSBjdWEg RE5OTiwgb25nIGNobyANCmhheSBMdWF0IEROTk4gdHJ1b2MgZGF5IGtoaSBjaHV5ZW4gZG9pIGNv IHkgdHVvbmcgdGFvIGNobyBETk5OIGNvIHF1eWVuIGNodSBkb25nIA0KdHJvbmcgZGF1IHR1IGtp bmggZG9hbmgsIHNvbmcgInF1ZW4iIG1vdCBkaWV1LiBEbyBsYSB0YWkgc2FuIGtob25nIHBoYWkg Y3VhIG5odW5nIA0Kbmd1b2kgbGFtIGdpYW0gZG9jIEROTk4gbWEgbGEgdGFpIHNhbiBjdWEgZGFu LCBuaHVuZyBsYWkgdHJhbyBxdXllbiBuaHUgdGFpIHNhbiB0dSANCm5oYW4gbmVuIGRhbiBkZW4g dGluaCB0cmFuZyBkYXUgdHUgdHJhbiBsYW4sIGtlbSBoaWV1IHF1YS4gTmh1bmcgbHVhdCBuYXkg aGV0IGhpZXUgbHVjIHR1IDEvNyB2dWEgcXVhLiANCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4v VGhvaS1TdS81MTgwNTcvTWFtLWNvbS10aG9pLWJhby1naWEuaHRtbCBOZy5IaWVuIFBoLlR1eWVu IEguVHVhbiBQLkFuaCBOZy4gSHV5ICAwNzozMyAwOC8xMS8yMDEwIA0KDQpUaHUgdHVvbmc6IE1h bSBjb20gdGhvaSAnYmFvIGdpYScNCg0KKiBCYW8gZ2lhIGJhIG1pZW4gDQoNClRQIC0gTW90IG5n YXkgZGkgY2hvIGN1bmcgY2FjIGNvbmcgbmhhbiwgc2luaCB2aWVuIG1vaSB0aGF5IGNvbiBiYW8g Z2lhIGRhbmcga2hpZW4gDQpjdW9jIHNvbmcgbmh1bmcgbmd1b2kgcGh1IHRodW9jLCBuZ3VvaSB0 aHUgbmhhcCB0aGFwIGJpIGRhbyBsb24uDQoNCihBbmg6IE1vIHJhdSwgY29uIGNhIGN1bmcgZHVh IG5oYXUgdGFuZyBnaWEgLiBBbmg6IEhvbmcgVmluaCkgDQoNCktob24ga2hvDQpDbyBtYXQgbyBr aHUgdnVjIEtpbSBDaHVuZywgS2ltIE5vIChEb25nIEFuaCwgSGEgTm9pKSwgbm9pIHRybyBjdWEg aGF1IGhldCBjb25nIA0KbmhhbiBLaHUgY29uZyBuZ2hpZXAgQmFjIFRoYW5nIExvbmcgbW9pIHRo YXkgc3VjIGNhbiBjdWEgY29uIGJhbyBnaWEuIA0KDQpDaGkgRHVvbmcgVGhpIFR1eWVuICgyMiB0 dW9pLCBxdWUgUGh1IEJpbmgsIFRoYWkgTmd1eWVuKSwgeGFjaCBtbyByYXUgY2FpIHZvaSBtYXkg DQpjb24gY2Egcm8gcGhpIGJhbmcgaGFpIG5nb24gdGF5LCB2dWEgdmUgZGF1IGNvbmcgeG9tIHRy byBkYSB0aGFuOiAiU28gZGVuIGNhaSBnaSBjdW5nIA0KdGFuZyBnaWEuIERhbyB0cnVvYywgaGFp IGNoaSBlbSBtb2kgbmdheSBjaGkga2hvYW5nIDI4LTMwIG5naGluIGRvbmcgbGEgY28gYnVhIGFu IHRhbSANCmR1b2MsIG5odW5nIG5heSBtdW9uIGNvIGJ1YSBhbiBuaHUgdmF5IHBoYWkgbWF0IDQ1 LTUwIG5naGluIGRvbmcuIEJvaSB0aGUsIGRhbmggDQpnaWFtIG1vaSB0aHUgbW90IHRpIi4gSGFp IGNoaSBlbSBUdXllbiBkZXUgbGEgY29uZyBuaGFuLCBUdXllbiBsYW0gY2hvIEN0eSBQYW5hc29u aWMsIA0KY29uIGVtIGdhaSBsYW0gY2hvIG1vdCBDdHkga2hhYy4NCg0KVHV5ZW4gY2hvIGJpZXQs IGx1b25nIDEsNSB0cmlldSBkb25nL3RoYW5nLCB0aGVtIGNhYyBraG9hbiBwaHUgY2FwIGN1bmcg ZHVvYyAxLDkgdHJpZXUgDQpkb25nLCBuaHVuZyB0cnUgZGkgY2FjIGtob2FuLCB0aHVjIGxpbmgg bW9pIHRoYW5nIGNoaSAxLDcgdHJpZXUgZG9uZywgZW0gZ2FpIGN1bmcga2hvYW5nIA0KZG8uIA0K DQpYb2F5IHhvIHRyb25nIGNhbiBwaG9uZyBraG9hbmcgOCBtMiwgVHV5ZW4gbm9pOiAiVGllbiB0 cm8gZGEgNTAwIG5naGluIGRvbmcvdGhhbmcsIA0KY2h1YSBrZSBkaWVuIG51b2MsIHJvaSB0aWVu IGRpIGhvYyB0aGVtIGNodW5nIGNoaSB0aW4gaG9jLCB0aWVuIGd1aSBjaG8gYm8gbWUgc3VhIA0K bmhhLi4uRGkgbGFtIG1heSBuYW0sIGNvIHRpY2ggY29wIGl0IHZvbiBkZSBkb2kgbmdoZSBraGkg bGF5IGNob25nLCBuaHVuZyBjdW5nIGtobyIuDQoNCk8geG9tIHRybyBjYW5oIGRvLCBPYW5oICgy MiB0dW9pLCBxdWUgVGhhbmggVGh1eSwgUGh1IFRobykgbGFtIG8gQ3R5IEFzYWhpIGNobyBiaWV0 LCANCm1vaSB0aGFuZyB0aHUgbmhhcCBkdW9jIGtob2FuZyAxLDkgdHJpZXUgZG9uZywgbmh1bmcg bGF5IGx1b25nIHhvbmcsIGxhaSB0YXkgdHJhbmcuIFJhdSANCmR1YSwgdGhpdCB0aGEgdGFuZyBj aG9uZyBtYXQsIGNvIG5nYXkgdGhpdCBsb24gdGFuZyA1LjAwMCBkb25nL2tnLiANCg0KTW9pIGRh eSwgbmdoZSBkYXUgbHVvbmcgdHJvbmcgZG9hbmggbmdoaWVwIHNlIHRhbmcsIGNodSBuaGEgdHJv IGRhIGRlbiBkdWEgdHJhdCwgdHV5ZW4gDQpibyB0dSB0aGFuZyBuYXkgdGllbiBuaGEgdGFuZyB0 dSA0MDAgbGVuIDQ1MCBuZ2hpbiBkb25nL3RoYW5nLCB0aWVuIGRpZW4gMS41MDAgbGVuIDIuMDAw IA0KZG9uZy9zbywgdGllbiBudW9jIDcwIG5naGluIGRvbmcvdGhhbmcsIHZpIHR1IHRoYW5nIG5h eSBjbyBudW9jIG1heS4gDQoNCkNhbSBiYXQgbXkgdG9tIGNvbiBhbiBkbywgT2FuaCBjaGlhIHNl OiAiQ2h1YSBoZXQgZGF1IGFuaCBvaSwgdHVhbiB0b2ksIGVtIGNvIHRvaSA2IA0KZGFtIGN1b2kg byBxdWUgZGFuZyBjaG8sIHRvYW4gbGEgYmFuIHRoYW4gaG9pIGRpIGhvYywgZGkgbGFtLiBMdW9u ZyBraG9uZyBkdSB0aWVuIGRpIA0KZGFtIGN1b2ksIG5oaW4gYW4sIG5oaW4gdW9uZyBkYSBkYW5o LCBkaSB2YXkgY3VuZyBraG8gdmkgYmFuIGJlIGN1bmcgbmh1IG1pbmgiLiANCg0KRG9pIHZvaSBn aWEgZGluaCBjb25nIG5oYW4gdHJlLCBudW9pIGNvbiBuaG8gY2FuZyBraG8ga2hhbi4gQ2hpIFRy YW4gVGhpIFBodW9uZyAocXVlIA0KSGllcCBIb2EsIEJhYyBHaWFuZyksIGxhbSBvIEN0eSBQYW5h c29uaWMgZGFuZyBiZSBjaGF1IG5obyBjaG8gYmlldCwgbHVvbmcgY2hpIGR1b2MgDQoxLDcgdHJp ZXUgZG9uZy90aGFuZywgbmh1bmcgdGllbiBzdWEsIHRodWMgYW4gY2hvIGNvbiBjdW5nIGdhbiAy IHRyaWV1IGRvbmcvdGhhbmcuIA0KDQoiVGhhbmcgdHJ1b2MsIHZvIGNob25nIHRodWUgbmd1b2kg dHJvbmcgY2hhdSBoZXQgMSwyIHRyaWV1IGRvbmcvdGhhbmcsIG5odW5nIHRoYXkgY29uIA0Kb20g c3VvdCwgbmVuIGNob25nIGJhdCBuZ2hpIHZpZWMsIHRyb25nIGNvbi4gTmF5IGtob25nIHBoYWkg dHJhIHRpZW4gdHJvbmcgdHJlLCBuaHVuZyBsYWkgDQptYXQgc3VhdCBsdW9uZywgZW0gY3VuZyBj aHVhIGJpZXQgcGhhaSB4b2F5IHRoZSBuYW8iLg0KDQpOYXkgYmFvIGdpYSB0cmFuIGNhIGJhIG1p ZW4sIG5lbiBvIERhIE5hbmcgZG9pIHNvbmcgY29uZyBuaGFuIGN1bmcgcmF0IGtobyBraGFuLiA5 IGdpbyANCm5odSB0aHVvbmcgbGUsIGFuaCBOZ3V5ZW4gSHV1IFR1YW4gKDQ5IHR1b2ksIHRydSBr aWV0IDU4IGR1b25nIFRyYW4gQ2FvIFZhbiwgVFAgRGEgDQpOYW5nKSBiYXQgZGF1IGNvbmcgdmll YyBkaSBjaG8gQ29uLCBwaHUgdHJhY2ggbmF1IGFuIGNobyBkb2kgY29uZyBuaGFuIEN0eSBYYXkg ZHVuZyANCnNvIDcuIA0KDQooQW5oOiBUaHVjIHBoYW0gdGFuZyBnaWEgYW5oIGh1b25nIHRydWMg dGllcCB0b2kgZG9pIHNvbmcgY3VhIHNpbmggdmllbiBkYW5nIHRybyANCmhvYyB0YWkgY2FjIHRo YW5oIHBobyBsb24gLiBBbmg6IFh1YW4gUGh1KSANCg0KQ2F0IGdpYW0gY2EgcmF1IHhhbmgNCg0K R2lhIGRpbmggY3VuZyB2YW8gbG9haSBraGEsIG5odW5nIG1heSBob20gbmF5LCBiYWMgTG9hbiwg cXVhbiBIYWkgQmEgVHJ1bmcgKEhhIA0KTm9pKSwgZGkgY2hvIGRldSB4dXl0IHhvYSBraGkgdGhh eSBnaWEgbW9pIHRodSBkZXUgbmhpY2ggbGVuIG5oYW5oIGNob25nLiBHaWEgdGhpdCBsb24gDQps b2FpIG5nb24gbW9pIGhvbSB0cnVvYyBsYSA3MCBuZ2hpbi9rZyB0aGkgaGFpIGhvbSBzYXUgZGEg dGFuZyBob24gNzUgbmdoaW4va2cuIFRoYXkgdmkgDQptdWEgbmhpZXUgdGhpdCwgY2EuLi5iYWMg TG9hbiB0aGF5IGJhbmcgdHJ1bmcsIGRhdS4uLg0KDQpOaHVuZywgImhhaSBodW5nIiBuaGF0IGxh IHJhdSB4YW5oLiBUYWkgbmhpZXUgY2hvLCBnaWEgbW90IGN1IHh1IGhhbyB0YW5nIHR1IDUgbGVu IDcgDQpuZ2hpbiwgbW90IGNheSB4dXAgbG8gZ2lhIGhvbiAxMCBuZ2hpbiwgc2FwIGJhbmcgbnVh IGNhbiBnYW87IG1vdCBjYW4gY2FpIHhhbmggZ2lhIA0KImRvaSIgZ2FwIGRvaSwgdGhhbmggMTAg bmdoaW4gZG9uZy4uLg0KDQpUaGUgbmVuLCBnaWEgZGluaCBiYWMgTmd1eWVuIFRoaSBIdW9uZyBv IGh1eWVuIEdpYSBMYW0sIEhhIE5vaSwgbW9pIGhvbSBkaSBjaG8sIA0KZGV1IG11YSAyIC0gMyBs b2FpIHJhdSB4YW5oLCB2ZSBhbiBjaG8gIm1hdCBydW90IiwgdGhpIG5heSAieG90IHJ1b3QiLCBj aGkgZGFtIG11YSBtb3QgDQpsb2FpIHJhdSBjaG8gYnVhIGNvbSBnaWEgZGluaC4NCg0KTW9uIGFu IHNhbmcgcGhvIGJpZW4gbGEgdHJ1bmcgdml0IGxvbiBkdW9jIG5oaWV1IG5ndW9pIHRoaWNoLCB0 aGkgbmF5IGRhIHRhbmcgdHUgMyw1IA0KbmdoaW4vcXVhIHRoYW5oIDUgbmdoaW4vcXVhLCBraGll biBuaGlldSBuZ3VvaSB0aHUgbmhhcCB0aGFwIHBoYWkgZGFuIGRvICJhbiBtb3QgaGF5IA0KaGFp PyIuIA0KDQpIZXQgcXVhIGRheSBoYW5nIHJhdSwgYW5oIGRlbiBob2kgY2FjIHF1YXkgaGFuZyBj YSwgdGhpdC4uLiBuaHVuZyBkZXUgbGFjIGRhdSBuZ2FvIG5nYW4gDQp2aSBnaWEgY2EgbW9pIG5n YXkgbW90IHRhbmcuIEtobyBraGFuIGxhbSBhbmggVHVhbiBtb2kgY2hvbiBkdW9jIGJvIHJhdSBt dW9uZywgDQptdW5nIHRvaSB2YSB0aGVtIGl0IGN1IGNhaS4gR2lhIGR1b2Mga2hhbyBzYXQgbWVt IGhvbiBjYWMgaGFuZyBraGFjIG5odW5nIGJvIHJhdSANCm11b25nIGxlbiBkZW4gNS4wMDAgZG9u ZywgbXVuZyB0b2kgNi4wMDAgZG9uZywgdGhhbSBjaGkgY3UgY2FpIG5obyBjbyBnaWEgMTAuMDAw IGRvbmcuLi4gDQoNCjIwIGNvbmcgbmhhbiB0cm9uZyB0byBuaHVuZyBtb2kgbmdheSB0aWVuIGFu IGNoaSB0cmVuIGR1b2kgMjUwLjAwMCBkb25nLiBBbmggVHVhbiANCmJhbzogR2lhIHRhbmcgbWFu aCBraG9hbmcgZ2FuIDEgdGhhbmcgZG8gbGFpIGRheS4gQ2EgbmhvbSB0YW5nIHRoZW0gNTAgLSA3 MCBuZ2hpbiANCmRvbmcgY2hvIG1vdCBuZ2F5IGFuIG5odW5nIGNoYW5nIHRoYW0gdmFvIGRhdS4g VGhhbSBjaGkgY28gdGFuZyB0aWVuIG5odW5nIHRodWMgYW4gdmFuIHRoaWV1Lg0KDQoiQW5oIGVt IGJhbyBuaGF1IG11YSBiYW8gZ2lhIG5lbiBiYW0gYnVuZyBjbyBjaGkgZHVuZyB0YW0uIENodSB5 ZXUgYW4gbm8gDQpsYXkgc3VjIGRpIGxhbSwgY2h1IGFuIG5nb24gdGhpIGhpZW0gbGFtIiAtIGFu aCBUcmFuIENvbmcgSHVuZywgY29uZyBuaGFuIHRyb25nIG5ob20gYW5oIFR1YW4gbm9pIHRoZW0u IA0KVGhlbyBjYWMgY29uZyBuaGFuLCB0cnVuZyBiaW5oIHRobyB4YXkgbW9pIG5nYXkgY2hpIHRo dSBuaGFwIHRyZW4gZHVvaSANCjEwMC4wMDAgZG9uZy4gVHJ1IHRpZW4gbmhhLCB0aWVuIHNpbmgg aG9hdCBjYSBuaGFuLCBtb2kgbmdheSBhbiBobyB0YW4gDQp0aWVuIGJvIHJhIDEwIG5naGluIGRv bmcuIENvbiBsYWkgdGljaCBnb3AgZ3VpIHZlIGdpYSBkaW5oIG8gcXVlLiBUdXkgbmhpZW4sIA0K dHJ1b2MgZGEgdGFuZyBnaWEsIGNhYyBjb25nIG5oYW4gcGhhaSBibyB0aGVtIDIuMDAwIC0gMy4w MDAgZG9uZy9uZ2F5IHZheSBtYSBjaGF0IGx1b25nIGJ1YSBhbiBtb2kgbmdheSBtb3QgZ2lhbSBz dXQuIA0KDQoiQW5oIGVtIGRhbmcgYmFuIG5oYXUgdGFuZyA1LjAwMCAtIDYuMDAwIGRvbmcgbnVh IG1vaSBkdS4gTmV1IHRoZSB0aGkgbW9pIA0KbmdheSB0b2kgY2hpIHRpZXQga2llbSBkdW9jIDMw LjAwMCAtIDQwLjAwMCBkb25nLCBjaGFuZyBsYSBiYW8gc28gdm9pIG5odSANCmNhdSBjaGkgdGll dSwgaG9jIHBoaSBjdWEgdm8gY29uIG8gbmhhIiAtIGFuaCBIdW5nIGFpIG5nYWkuIA0KDQpYb2F5 IHhvIA0KDQpCdWEgY29tIGN1YSBuaG9tIHNpbmggdmllbiBWdSBUaGkgTHkgKDIwIHR1b2ksIHF1 ZSBEYWMgTGFjKSwgdHJ1b25nIERIIA0KS2llbiB0cnVjIERhIE5hbmcgdGFpIGNhbiBwaG9uZyAz MzggZHVvbmcgSG9hbmcgRGlldSBraGEgZGFtIGJhYy4gTmdvYWkgDQptb24gY2FuaCBjYWksIG1h bSBjb20gdGhlbSBkaWEgdHJ1bmcgcmFuIGNobyA1IG5ndW9pIGFuLiAiQnVhIHRydW9jIGJvbiAN CmVtIGRpIGNobyBoZXQgY28gMzUuMDAwIGRvbmcgbW90IG5nYXksIGdpbyB0YW5nIHRoZW0gMTUu MDAwIGRvbmcgbWEgY3VuZyBjaGkgZHVvYyBjbyB0aGUiIC0gTHkgYmFvLiANCg0KKEFuaDogNy4w MDAgZG9uZywgTHkgY2hpIG11YSBkdW9jIHZhaSBjb25nIHJhdSBjYWkgY2hvIG1vdCBuZ2F5IGFu LikNCg0KVGhheSB2aSBhbiBoYWkgYnVhIHhvbSB0dSBuaHUgbW9pIGtoaSwgbmF5IG5ob20gc2lu aCB2aWVuIGNodSB5ZXUgdGFwIHRydW5nIA0KY2hvIGJ1YSB0cnVhLCBjb24gbGFpIGJ1YSB0b2kg YW4gcXVhIGxvYS4gSG9pIGNodXllbiwgTHkgY3VvaSB0cnU6ICJDb24gZ2FpIGFuIGJ1b2kgdG9p IGl0IGRlIGdpYW0gY2FuIG1hIi4NCg0KRG9pIHBobyB2b2kgZ2lhIGNhIHRhbmcsIGtob25nIGNo aSBjbyBjYXUgYnVhIGFuIHRoYXkgZG9pLCBuaGlldSBzaW5oIHZpZW4gDQp0aWV0IGdpYW0gaGV0 IG11YywgY2hvbiBjYWNoICJnb3AgZ2FvIHRob2kgY29tIGNodW5nIiBkZSBjdW5nIG5oYXUgdnVv dCBjb24gYmFvIGdpYS4gDQoNCiJCb24gZW0gYW4gdHJ1bmcgbGEgY2h1IHlldSwgdGhpbmggdGhv YW5nIGNodXllbiBxdWEgbW9uIGNoYSBjYS4gSXQgYW4gdGhpdCANCmxhbSB2aSB0aGl0IGRhdCBt YSBnaWEgbGFpIHRhbmcuIEhvbSBuYW8gdGhlbSBhbiB0aGl0IHRoaSBtdWEgbW9uIHRoaXQgZ2Eg DQpjb25nIG5naGllcCBnaWEgY2hpIHR1IDM1LjAwMCBkb25nL2tnIiAtIE51IHNpbmggRGFpIGhv YyBLaWVuIHRydWMgRGEgTmFuZyBWdSBUaGkgTHkgDQoNCiJCb24gbmFtIG5ndW9pIGdvcCBuaGF1 IGRpIGNobyB0aGkgZGUgbXVhIGRvIGhvbi4gTW90IG1pbmggZW0gY28gbmdheSBnYW4gDQoyMC4w MDAgZG9uZyBtYSBjaGFuZyBtdWEgZHVvYyBnaS4gU2FuZyBkYXkgY2EgYm9uIGN1bmcgdGFuIHRp ZW4sIG1vaSBuZ3VvaSANCjE1LjAwMCBkb25nL25nYXkiIC0gTmd1eWVuIFRoaSBUaHV5IFRyYW5n LCBzaW5oIHZpZW4gS2UgdG9hbiwgdHJ1b25nIENEIE5naGUgTmd1eWVuIFZhbiBUcm9pIChEYSBO YW5nKSBib2MgYmFjaC4gDQoNClNpbmggdmllbiBIYSBOb2kgY3VuZyBjaGFuZyBraGEgaG9uLiBC YW4gUGhhbSBRdW9jIFZpbmggKHF1ZSBvIFRoYW5oIE1pZW4sIEhhaSANCkR1b25nKSwgc2luaCB2 aWVuIG5hbSA0IERhaSBob2MgRGFuIGxhcCBUaGFuZyBMb25nLCB0cm8gbyBsYW5nIHNpbmggdmll biBIYWNpbmNvIA0KKE5oYW4gQ2hpbmgsIFRoYW5oIFh1YW4pIGNobyBoYXk6ICJUcnVvYyBkYXks IG1vaSBzdWF0IGhvIGJhbiAxNS4wMDAgZG9uZywgbmF5IA0KY2h1IHF1YW4gbmFuZyBsZW4gMTgu MDAwLTIwLjAwMCBkb25nLiBOZ29haSB0aWVuIHBob25nIHRyYSBjbyBkaW5oIGhhbmcgdGhhbmcs IA0KYm8gbWUgY2hvIHRoZW0gMSwyIHRyaWV1IGRvbmcgZGUgYW4gdmEgdGlldSB2YXQuIE5odW5n IG5heSBjaGFjIGVtIHBoYWkgYmFvIGJvIA0KZ3VpIHRoZW0gdGllbiBtb2kgZHUsIGtob25nIGR1 b2MgY2hhYyBwaGFpIGRvbiB0aGVtIGJ1YSBhbiBtaSB0b20gbW9pIGR1Ii4NCg0KS2hvbmcgY2hp IGNvbSBzaW5oIHZpZW4sIGNhYyBxdWFuIGNvbSB2YW4gcGhvbmcgY3VuZyBuYW5nIGdpYS4gQW5o IFRyYW4gVmlldCBYdWFuLCANCm5oYW4gdmllbiB2YW4gcGhvbmcgbW90IEN0eSB0YWkgcGhvIEhv IERhYyBEaSAoSGEgTm9pKSBjaG8gaGF5LCBiaW5oIHRodW9uZyBjaGkgDQoyNS0zMCBuZ2hpbiBk b25nL3N1YXQsIHRoaSBuYXkgY2h1IHF1YW4gbmFuZyBsZW4gMzAtNDAgbmdoaW4sIGNvbSByYW5n IHRoYXAgY2FtIHR1IDIwIGxlbiAyNSBuZ2hpbiBkb25nLiANCg0KR2lhIGxlbiwgZ2lvaSB2YW4g cGhvbmcgdGh1b25nIHJ1IG5oYXUgYW4gYnVuIGRhdSwgaG9hYyBsYW0gYmF0IHBobywgYmFuaCBk YSBjaG8gDQpxdWEgYnVhLiBDb24gYW5oIExlIEh1eSBUdWFuLCBreSBzdSB4YXkgZHVuZywgbmhh IG8ga2h1IEhhIERpbmggKEhhIE5vaSkgY2hvIGJpZXQ6IA0KIk1vaSBzYW5nIHJhLCBxdWFuIGJ1 biBtb2MgY2FuaCBuaGEgZGEgdHJ1bmcgYmllbjogYmF0IGJpbmggdGh1b25nIHRhbmcgdHUgMTUg bGVuIA0KMjAgbmdoaW4gZG9uZywgYmF0IGl0IGhvbiAxNSBuZ2hpbiBkb25nLCBkaSBjYXQgdG9j IGN1bmcgdGFuZyB0aGVtIDUgbmdoaW4gZG9uZy4uLiANCkFuIHVvbmcsIGRpIGxhaSBwaHVjIHRh cCwgdG9pIGRhbmggbyBsYWkgY29uZyB0cnVvbmcgKERhaSBsbyBUaGFuZyBMb25nKSB2b2kgYW5o IA0KZW0gY29uZyBuaGFuLCBjdW9pIHR1YW4gbW9pIGRhbSB2ZSBuaGEsIHRpZXQga2llbSB0aWVu Ii4NCg0KVFBIQ006IEdpYSBsdW9uZyB0aHVjLCB0aHVjIHBoYW0gdGFuZyBtYW5oDQoNClRoZW8g bmhhbiBkaW5oIGN1YSBiYSBOZ3V5ZW4gVGhhbmggSGEgLSBQaG8gR2lhbSBkb2MgQ29uZyB0eSBj aG8gZGF1IG1vaSBub25nIHNhbiANClRodSBEdWMsIGNobyBiaWV0OiBOZ2F5IDctMTEgZ2lhIGNh IG8gbW90IHNvIGNobyB2YW4gbyBtdWMgY2FvLiANCg0KVGFpIGNobyBOZ3V5ZW4gVGhhaSBCaW5o IChxdWFuIDEpLCB4YSBsYWNoIERhIExhdCBkdW9jIGJhbiB2b2kgZ2lhIDYwLjAwMCBkb25nL2tn LCANCmR1YSBsZW8gMTQuMDAwIGRvbmcva2csIGNhIGNodWEgMTcuMDAwIGRvbmcva2cuLi4gQmlu aCBxdWFuIG1vaSBraWxvZ2FtIHJhdSBjdSB0YW5nIA0KMi4wMDAgLSA0LjAwMCBkb25nLiBHaWEg dGhpdCBoZW8sIHRoaXQgYm8gY2FjIGxvYWkgY3VuZyB0YW5nIDEuMDAwIC0gMi4wMDAgZG9uZyBt b2kgDQpraWxvZ2FtLiBEYWMgYmlldCwgY2FjIG1hdCBoYW5nIHRodXkgaGFpIHNhbiBraG8gY3Vu ZyBjbyBtdWMgdGFuZyB0dSA0MC4wMDAgLSA2MC4wMDAgDQpkb25nL2tnIHNvIHZvaSB0cnVvYy4N Cg0KVGlldSB0aHVvbmcgdGFpIGNhYyBjaG8gY2hvIGJpZXQgZG8gYW5oIGh1b25nIGN1YSBtdWEg bHUgbmVuIG5ndW9uIGhhbmcgdHUgbWllbiANClRydW5nIGR1YSB2YW8gY28gbXVjIHRhbmcgbWFu aCBuaGF0LCB0cm9uZyBkbyBnaWEgY2EgYmllbiB0YW5nIDEwLjAwMCAtIDEyLjAwMCANCmRvbmcv a2cuIE9uZyBZZW4gLSBiYW4gaGFuZyB0YWkgY2hvIE5ndXllbiBUaGFpIEJpbmggY2hvIGJpZXQ6 ICJOaGEgY3VuZyBjYXAgdGFuZyBnaWEgDQpuaHVuZyB0b2kgY3VuZyBraG9uZyBkYW0gdGFuZyBu aGlldSB2aSBraGFjaCBrZXUgcXVhLiBHaWEgY2FvIG5lbiBoYW5nIGJhbiBjdW5nIA0KY2hhbSBo b24gc28gdm9pIHRydW9jIi4NCg0KVGhpIHRydW9uZyBnYW8gbmh1bmcgbmdheSBxdWEgY3VuZyBj byBuaGlldSBiaWVuIGRvbmcuIENoaSBtb2kgbWF5IG5nYXkgZGF1IHRoYW5nIA0KMTEsIGdpYSBn YW8gYmFuIGxlIGRhIHRhbmcgYmluaCBxdWFuIDEuMDAwIC0gMi4wMDAgZG9uZy9rZy4gDQoNCktl dCBxdWEga2hhbyBzYXQgc28gYm8gdGFpIGNhYyBkaWEgcGh1b25nIGNobyB0aGF5LCBuaHVuZyBu Z2F5IGN1b2kgdGhhbmcgMTAgdnVhIHF1YSwgDQpnaWEgY2EgY2FjIG1hdCBoYW5nIHRoaWV0IHll dSBkYSB0YW5nIGtoYSBtYW5oLCB0cm9uZyBkbyB0YW5nIGdpYSBuaGlldSBuaGF0IHZhIGdheSB0 YWMgDQpkb25nIHRhbSBseSBuaGF0IGNobyBuZ3VvaSB0aWV1IGR1bmcgbGEgY2FjIG1hdCBoYW5n IGx1b25nIHRodWMsIHRodWMgcGhhbSB0dW9pIHNvbmcuIA0KDQpodHRwOi8vd3d3LmF0cHZpZXRu YW0uY29tL3ZuL3Rob25ndGlubmdhbmgvNzM4NzUvaW5kZXguYXNweCAuKHRoZW8gVE4pIDI5LzEy LzIwMTAsIDE1OjUyIEdNVCs3IA0KDQpOaHUgY2F1IGJ1YyB0aGlldCBkaWV1IGNoaW5oIG11YyB0 aHVlIHRodSBuaGFwIGNhIG5oYW4NCg0KR2lhIGNhIGxlbyB0aGFuZyBjaG9uZyBtYXQsIGxhbSBw aGF0IGNhIG5hbSBsZW4gdG9pIDExLDc1JSBkYW5nIHRhbyBuZW4gZ2FuaCBuYW5nIGNobyANCm5n dW9pIG5vcCB0aHVlIHRodSBuaGFwIGNhIG5oYW4gKFROQ04pLg0KDQpCb2kgY2FuaCBoaWVuIG5h eSBkYW5nIGRvaSBob2kgcGhhaSBjbyBzdSBkaWV1IGNoaW5oIHZlIG11YyB0aHVlIGNobyBwaHUg aG9wIHZvaSB0aW5oIA0KaGluaCBtb2kuDQoNClRoZW8gdGluaCB0b2FuIGN1YSBMdWF0IFRodWUg VE5DTiB0cnVvYyBraGkgeGF5IGR1bmcsIG5hbSAyMDA1LTIwMDYgKHRob2kgZGllbSBsYW0gDQpw aGF0IGR1b2kgMSBjb24gc28pLCBtdWMgZ2lhbSB0cnUgY2hvIG1vaSBuZ3VvaSB0aHUgbmhhcCBs YSA0IHRyaWV1IGRvbmcvdGhhbmcsIDEgbmd1b2kgDQpwaHUgdGh1b2MgMSw2IHRyaWV1IGRvbmcv dGhhbmcuIE5odW5nIGhpZW4gbmF5IGxhbSBwaGF0IGRhIG8gbXVjIDIgY29uIHNvLCBraGllbiBj aGkgDQpwaGkgc2luaCBob2F0IGRhdCBkbyBob24sIGxhbSBjaG8gdHVpIHRpZW4gY3VhIG5ndW9p IGRhbiBiaSB0ZW8gZGkuDQoNClZpIHZheSwgbmh1IGNhdSBidWMgdGhpZXQgaGllbiBuYXkgbGEg Qm8gVGFpIGNoaW5oIGNvIHBodW9uZyBhbiBkaWV1IGNoaW5oIGRlIENoaW5oIHBodSANCnRyaW5o IFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2kgc3VhIGRvaSBsYWkgbXVjIHRodWUgc3VhdCwgZ2lh bSBib3QgZ2FuaCBuYW5nIGNobyANCm5ndW9pIG5vcCB0aHVlLg0KDQpUdXkgbmhpZW4sIG5odW5n IG1vbmcgbXVvbiB0cmVuIGRhbmcgdnVvbmcgcGhhaSBuaGlldSByYW8gY2FuIHZhIGtobyBjbyB0 aGUgZHVvYyANCnRodWMgdGhpLCBpdCBuaGF0IGxhIHRyb25nIG5hbSAyMDExLiBUcmFvIGRvaSB2 b2kgVGhhbmggTmllbiwgVGh1IHRydW9uZyBCbyBUYWkgY2hpbmggDQpEbyBIb2FuZyBBbmggVHVh biBjaG8gYmlldCwgdHJvbmcgbmFtIDIwMTEgUXVvYyBob2kga2hvbmcgY28gY2h1b25nIHRyaW5o IHN1YSBkb2kgDQpMdWF0IFRodWUgVE5DTi4gVHJvbmcgTHVhdCBUaHVlIFROQ04gaGllbiBoYW5o IGN1bmcga2hvbmcgcXV5IGRpbmgga2hpIGxhbSBwaGF0IA0KdGFuZywgZ2lhIGNhIHRhbmcgYmFv IG5oaWV1ICUgdGhpIENoaW5oIHBodSBraWVuIG5naGkgVXkgYmFuIFRodW9uZyB2dSBRdW9jIGhv aSBzdWEgDQpkb2kgbXVjIHRodWUgbmF5LiAiVHJ1b2Mga2hpIHhheSBkdW5nIGx1YXQsIGN1bmcg ZGEgdGhhbyBsdWFuIGt5IGNvIG5lbiBxdXkgZGluaCBoYXkgDQpraG9uZy4gU2F1IGRvLCBjYWMg eSBraWVuIGRldSB0aG9uZyBuaGF0IHZhIHF1eWV0IGRpbmgsIGtob25nIHF1eSBkaW5oIGRpZXUg Y2hpbmggdHJvbmcgDQp0cnVvbmcgaG9wIGdpYSBjYSBjbyBiaWVuIGRvbmciLCBvbmcgVHVhbiBu b2kuDQoNCkJvIFRhaSBjaGluaCBjaHVhIHNhbiBzYW5nIGNobyBwaHVvbmcgYW4gZ2lhbSB0aHVl IFROQ04sIG5odW5nIG5oaWV1IGNodXllbiBnaWEsIA0KY3VuZyBuaHUgbmd1b2kgbm9wIHRodWUg Y2hvIHJhbmcsIGNhbiBwaGFpIGNvIHN1IGRpZXUgY2hpbmggZGUgcGh1IGhvcCB2b2kgdHVuZyBi b2kgDQpjYW5oLCBkaWV1IGtpZW4gY3UgdGhlIGN1YSBuZW4ga2luaCB0ZS4gTGFtIHBoYXQgY2Fv IG5hbSBuZ29haSBzdSBtb25nIG11b24sIGR1IGRvYW4gDQpjdWEgdGF0IGNhIG1vaSBuZ3VvaSwg a2hpIGRhIHhheSByYSByb2kgdGhpIGNhYyBjaGluaCBzYWNoIGtoYWMgcGhhaSBjbyBzdSB0aGF5 IGRvaS4gDQoiRG9hbmggbmdoaWVwIHhhbmcgZGF1IGtobyBraGFuIHRoaSBkdW9jIGdpYW0gdGh1 ZSBuaGFwIGtoYXUgNCBsYW4gdHJvbmcgbmFtIDIwMTAsIA0Ka2UgY2EgZ2FzLCBzYXQgdGhlcC4u LiBMYW0gcGhhdCBjYW8gbGVuIHRvaSBnYW4gMTIlLCBuZ3VvaSBkYW4gY3VuZyBwaGFpIGR1b2Mg cXV5ZW4gDQpodW9uZyBuaHVuZyB1dSBkYWkgZG8sIGNodSBraG9uZyBjaGkgbGEgY2h1eWVuIHRh bmcgbHVvbmcga2hvbmciLCBtb3QgY2h1eWVuIGdpYSANCmtpZW4gbmdoaS4NCg0KVGhlbyBtb3Qg bGFuaCBkYW8gVG9uZyBjdWMgVGh1ZSwga2hvIGtoYW4gbG9uIG5oYXQgaGllbiBkYW5nIHRvbiB0 YWkgZG9pIHZvaSBzYWMgdGh1ZSANClROQ04sIGxhIHZpZWMgY28gcXVhbiB0aHVlIGtob25nIHF1 YW4gbHkgbm9pIHRodSBuaGFwIHRodWMgdGUgY3VhIG5ndW9pIG5vcCB0aHVlLiAiRG9pIA0Kdm9p IGNhYyBobyBraW5oIGRvYW5oIGNhIHRoZSwgdGh1IHRoZW8gY28gY2hlIGtob2FuLiBOaHVuZyBr aG9uZyBhaSBiaWV0IGR1b2MgZG9hbmggdGh1IA0KY3VhIGhvIGhhbmcgdGhhbmcgbGEgYmFvIG5o aWV1IiAtIG9uZyBub2ksIHZhIGNobyBiaWV0IHRoZW0sIGR1IG1vaSBjYSBuaGFuIGNvIG1vdCBt YSANCnNvIHRodWUsIGNvIHF1YW4gdGh1ZSB0aHVjIGhpZW4ga2hhdSB0cnUgdGFpIG5ndW9uLCBu aHVuZyB0aHVjIHRlIGNvIHZvIHNvIGNhYyB0aHUgbmhhcCANCmtoYWMga2hvbmcgdGhvbmcga2Ug ZHVvYy4gQ2hpbmggbG8gaG9uZyBuYXkgZGEgZ2F5IHRoYXQgdGhvYXQgY2hvIG5nYW4gc2FjaCwg Y3VuZyBuaHUgDQpjaHVhIGNvIHN1IGJpbmggZGFuZyBnaXVhIG5ndW9pIHRodSBuaGFwIGNhbyB2 YSB0aHUgbmhhcCB0aGFwLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMTAzLzIwMTEwMTEwMjMyNjU0LmFzcHggTmdvYyBNaW5oIDEwLzAxLzIwMTEgMjM6MjYg DQoNClRodSB0dW9uZzogUXVpIGRpbmggdmUgdGh1ZSB0aHUgbmhhcCBjYSBuaGFuIGNhbiBraG9h IGhvYyBob24gLSBjYW4ga2hvYW4gdGh1IHN1YyBkYW4gICAgDQogIA0KTW90IHRyb25nIG5odW5n IHZhbiBkZSBub25nIGhpZW4gbmF5IGxhIFRodWUgdGh1IG5oYXAgY2EgbmhhbiAoVE5DTikuIE5v IGtob25nIA0KY2hpIHh1YXQgcGhhdCB0dSBzdSBnaWFtIGdpYSBjdWEgZG9uZyB0aWVuLCBtYSBj b24gbyB0aW5oIHRoYW4ga2hvYW4gdGh1IHN1YyBkYW4gdmEgDQp0aHVhbiB0aWVuIGNobyBjbyBj aGUgZGlldSBjaGluaCB0aHVlLiANCg0KVGluaCB0dSBraGkgTHVhdCBUaHVlIFROQ04gY28gaGll dSBsdWMgZGVuIG5heSBsYSAyIG5hbSwgZ2lhIHRpZXUgZHVuZyBkYSB0YW5nIHRyZW4gDQoxOSUs IGdpYSB0cmkgZG9uZyB0aWVuIGNoaSBjb24ga2hvYW5nIDg0JS4gDQoNCkRpZXUgbmF5IGtoaWVu IGNobyBtdWMgZ2lhbSB0cnUgY2hvIGJhbiB0aGFuIG5ndW9pIG5vcCB0aHVlIHR1IDQgdHJpZXUg ZG9uZyBjaGkgdGh1YyANCmNvbiAzLDM2IHRyaWV1IGRvbmcuIERlIGRhbSBiYW8gZHVvYyBzdWMg bXVhIG5odSB0cnVvYywgY29uIHNvIG5heSBwaGFpIHRhbmcgbGVuIDQsNzYgDQp0cmlldSBkb25n LiBUdW9uZyB0dSwgbXVjIGdpYW0gdHJ1IGNobyBuZ3VvaSBwaHUgdGh1b2MgbGEgMSw2IHRyaWV1 IGRvbmcgY2hpIHRodWMgY29uIA0KMSwzNCB0cmlldSBkb25nIC0gY2FuIHBoYWkgdGFuZyBsZW4g MSw5IHRyaWV1IGRvbmc7IG11YyB0aHUgbmhhcCBsYW0gY2FuIGN1IHhhYyBkaW5oIGxhIA0Kbmd1 b2kgcGh1IHRodW9jIDUwMCBuZ2hpbiBkb25nIGNoaSB0aHVjIGNvbiA0MjAgbmdoaW4gZG9uZyAt IGNhbiBwaGFpIHRhbmcgbGVuIDYwMCANCm5naGluIGRvbmcuIE11YyB0aHUgbmhhcCBjaGl1IHRo dWUgc2F1IGtoaSB0cnUgdHJ1b3QgZ2lhIGRhIGtob25nIGNvbiBkYW0gYmFvIGR1b2MgDQptdWMg c29uZyB0b2kgdGhpZXUgZGUgbmd1b2kgZGFuIGNvIHRoZSBkb25nIGdvcCBjaG8gbmdhbiBzYWNo IG5oYSBudW9jIChOU05OKS4gDQoNCktoaSB0eSBsZSBkb25nIHZpZW4gR0RQIHZhbyBOU05OIGRh IGdpYW0gdHUgdHJlbiBkdW9pIDI4JSB4dW9uZyBjb24gMjIgLSAyMyUuIEtoaSANCmNoaWVjIGJh bmggR0RQIGNvbiBuaG8sIG5ldSB0YW4gdGh1IHZvaSB0eSBsZSBjYW8gdGhpIGNoYW5nIG5odW5n IGtob25nIGtob2FuIHRodSBzdWMgDQpkYW4gbWEgY29uIGtob25nIG51b2kgZHVvbmcgbmd1b24g dGh1IGRlIGNvIHRoZSBsYW0gY2hvIGNoaWVjIGJhbmggR0RQIHRvIGhvbiwgcGhhbiANCnBoYW4g Y2hpYSBnaXVhIG5ndW9pIHNhbiB4dWF0LCBkb2FuaCBuZ2hpZXAgdmEgTmhhIG51b2MgZGV1IHRv IHJhLg0KDQpWaWVjIHF1eSBkaW5oIG11YyB0aHUgbmhhcCBjaGl1IHRodWUgY3UgdGhlIHRyb25n IGx1YXQgdGh1ZSBoaWVuIGhhbmggY3VuZyBhbmggaHVvbmcgDQpraG9uZyB0b3QgZGVuIHZpZWMg ZGlldSBjaGluaCAtIGRvIGxhIGNvIGNoZSBkaWV1IGNoaW5oLiBDaGFuZyBsZSBtb2kga2hpIGNv IHN1IHRoYXkgZG9pIA0KdmUgZ2lhIHRpZXUgZHVuZyBoYXkgbXVjIHRpZXUgY3VhIGNoaW5oIHNh Y2ggbGFpIHBoYWkgdGhheSBkb2kgbHVhdCwgbWEgbHVhdCBkbyBRSCBiYW4gDQpoYW5oLCBtb3Qg bmFtIFFIIGNoaSBob3AgY28gaGFpIGxhbi4uLiBEbyBsYSBjaHVhIG5vaSBkZW4gY2FjIHRodSB0 dWMgdHUgY2FjIGNvIHF1YW4gDQpsaWVuIHF1YW4sIHJvaSBkZW4gdm9uZyB0cmllbiBraGFpIHRo dWMgaGllbi4uLiBDaHVhIGtlIGx1YXQgY29uIGNvIHF1YSBuaGlldSBtdWMgdGluaCANCnRodWUg dmEgdGh1ZSBzdWF0Lg0KDQpWaSB2YXksIHhpbiBraWVuIG5naGk6IA0KDQpNb3QsIG5hbmcgbXVj IGdpYW0gdHJ1IGNobyBiYW4gdGhhbiBjYW8gaG9uLCBuaHVuZyBraG9uZyBwaGFpIHRpbmggYmFu ZyBzbyB0dXlldCBkb2ksIA0KbWEgYmFuZyBraG9hbmcgOSAtIDEwIGxhbiBtdWMgbHVvbmcgdG9p IHRoaWV1OyBraGkgbmFvIGx1b25nIHRvaSB0aGlldSB0YW5nIHRoaSBjdSBkaWNoIA0KbGVuIHRo ZW8gc28gbGFuIGRvLCBraG9uZyBwaGFpIGNobyBzdWEgbHVhdC4NCg0KSGFpLCBtdWMgZ2lhbSB0 cnUgY2hvIG5ndW9pIHBodSB0aHVvYyB0aW5oIGJhbmcgNDAlIG11YyBnaWFtIHRydSBjaG8gYmFu IHRoYW4gbmd1b2kgDQpub3AgdGh1ZS4NCg0KQmEsIG11YyB0aHUgbmhhcCBsYW0gY2FuIGN1IHhh YyBkaW5oIGxhIG5ndW9pIHBodSB0aHVvYyBiYW5nIHZvaSBtdWMgbHVvbmcgdG9pIHRoaWV1Lg0K DQpCb24sIGRpZXUgY2hpbmggdGhlbyBjbyBjaGUgdHUgZG9uZywga2hvbmcgcGhhaSBjaG8gc3Vh IG5naGkgZGluaCBoYXkgbHVhdC4NCg0KTmFtLCBkb24gNyBtdWMgdGh1ZSBzdWF0IGhpZW4gbmF5 IGNvbiAzIG11YzogdHUgbXVjIHRodSBuaGFwIGNoaXUgdGh1ZSBkZW4gMzAgdHJpZXUgDQpkb25n L3RoYW5nOiB0aHVlIHN1YXQgbGEgMTAlOyB0cmVuIDMwIGRlbiA2MCB0cmlldSBkb25nL3RoYW5n OiB0aHVlIHN1YXQgMjAlOyB0cmVuIDYwIA0KdHJpZXUgZG9uZy90aGFuZzogdGh1ZSBzdWF0IGxh IDMwJS4NCg0KWGluIGN1bmcgY2FwIHRoZW0gdGhvbmcgdGluOiBOYW0gMjAxMCwgdHkgbGUgdGh1 IE5TTk4gZGEgdnVvdCBkdSB0b2FuIDksMyUsIHRyb25nIGRvIA0KdGh1IG5vaSBkaWEgdnVvdCA3 JSwgcmllbmcgdGh1ZSBUTkNOIHZ1b3QgdG9pIDIxLDIlLiBWaWVjIHRodSB0aHVlIHRoZW8gdGlu aCB0aGFuIA0Ka2hvYW4gdGh1IHN1YyBkYW4gc2UgZ2l1cCBrZXQgcXVhIHRodSBuZ2FuIHNhY2gg dGFuZyBsZW4gdHJvbmcgbGF1IGRhaS4gICANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZu L05ld3MvUGFnZXMvMjAxMDUxLzIwMTAxMjE1MjI0NTA2LmFzcHggTi5UcmFuIFRhbSAtIFRoYW5o IFh1YW4gMTUvMTIvMjAxMCAyMjo0NSANCg0KVGh1IHR1b25nOiBCYXQgaG9wIGx5IHRodWUgdGh1 IG5oYXAgY2EgbmhhbjogIk5hbSB0b2MiIG5ndW9pIGxhbSBjb25nIGFuIGx1b25nICANCg0KS2hv bmcgY2hpIGJhdCBob3AgbHkgdmUgbmd1b25nIGNoaXUgdGh1ZSwgY2hpbmggc2FjaCB0aHVlIHRo dSBuaGFwIGNhIG5oYW4gKFROQ04pIA0KaGllbiBuYXkgY2h1IHlldSBjaGkgIm5hbSBuZ3VvaSBj byB0b2MiIGxhIG5odW5nIGRvaSB0dW9uZyBsYW0gY29uZyBhbiBsdW9uZywgcmF0IA0KbmhpZXUg bmd1b2kgY28gdGh1IG5oYXAgY2FvIGtoYWMgZGEgbGFjaCB0aHVlIGJhbmcgbmhpZXUgY2FjaC4g DQoNCk1vdCBjaHV5ZW4gZ2lhIHR1bmcgbmhpZXUgbmFtIGNvbmcgdGFjIHRyb25nIG5nYW5oIHRo dWUgY2hvIGJpZXQsIHRyb25nIGtob2FuZyB0aG9pIA0KZ2lhbiAyIG5hbSBhcCBkdW5nIHRodWUg VE5DTiwgY28gcXVhbiB0aHVlIGNoaSBsYW0gZHVvYyBjb25nIHZpZWMgdG9uZyBob3AsIGR1YSB2 YW8gDQpkaWVuIHRodSB0aHVlIG5oaWV1IGxvYWkgdGh1IG5oYXAsIGNvbiB2aWVjIGxhbSB0aGUg bmFvIGRlIHF1YW4gbHkgZGF5IGR1IGNhYyBsb2FpIHRodSANCm5oYXAgZGUgdGFvIGNvbmcgYmFu ZyB2ZSB0aHVlIHRoaSBjaHVhIGRhbSBkdW9uZyBkdW9jLiANCg0KQ28gdGhlIHRoYXkgZGF1IHRp ZW4gbGEgcXV5IGRpbmggdGF0IGNhIGNhIG5oYW4gY28gdGh1IG5oYXAgcGhhaSBjbyBtYSBzbyB0 aHVlIChNU1QpLCANCk1TVCBuYXkgc2UgZHVvYyBuaGFwIHZhbyBtYXkgZGUgcXVhbiBseSBuaHVu ZyBjaG8gdG9pIGdpbyBNU1QgdmFuIGNodWEgZHVvYyBuaGFwLiANClZpIHZheSByYXQga2hvIHF1 YW4gbHkgZGF5IGR1IHRodSBuaGFwIGN1YSBjYWMgY2EgbmhhbiBjbyB0aHUgbmhhcCBjaGl1IHRo dWUuIFRpbmggaGluaCANCm5heSBkYW4gZGVuIHJhdCBuaGlldSBjYSBuaGFuIGNvIHRodSBuaGFw IGNhbyBuaHVuZyBraG9uZyBwaGFpIG5vcCB0aHVlIGRheSBkdS4gDQoNCkNoYW5nIGhhbiBtb3Qg Z2lhbmcgdmllbiBkYWkgaG9jIGRpIGRheSBvIDMgdHJ1b25nIGRhaSBob2MsIG1vaSBub2kga2hp IG5oYW4gdGh1IG5oYXAgDQpvbmcgY2hpIHBoYWkgdGFtIG5vcCAxMCUgbGEgeG9uZywgdHJvbmcg a2hpIHRoZW8gcXV5IGRpbmggcGhhaSBjb25nIHRodSBuaGFwIG8gY2EgMyBub2kgDQpyb2kgbW9p IHRpbmggdGh1ZSB0aGVvIGJpZXUgdGh1ZSBzdWF0IGx1eSB0aWVuLiBNb3Qgbmd1b2kgY28gMSBj YW4gbmhhIG8gUS4xLCBjYW4ga2hhYyBvIA0KUS4xMiwgY2EgaGFpIGRldSBjaG8gdGh1ZSBuaHVu ZyBjaGkga2Uga2hhaSB2b2kgY28gcXVhbiB0aHVlIDEgY2FuIG5oYSBvIFEuMTIgdGhvaS4gQ28g DQpxdWFuIHRodWUga2hvbmcgdGhlIG5hbyBwaGF0IGhpZW4gbmd1b2kgbmF5IGdpYXUgdGh1IG5o YXAgbW90IGNhbiBuaGEgdmkga2hvbmcgY28gZHUgbGlldS4gDQoNClRoYW5oIGxhcCBjb25nIHR5 IGRlIGR1b2MgdHJ1IGNoaSBwaGkgbGEgY2FjaCBtYSBuaGlldSBuZ3VvaSBjbyB0aHUgbmhhcCBj YW8gZGFuZyBhcCANCmR1bmcuIE9uZyBNaW5oIChRLjExLCBUUC5IQ00pLCBQaG8gVEdEIG1vdCBu Z2FuIGhhbmcgY28gdGh1IG5oYXAgdHUgbHVvbmcgcGh1IA0KY2FwLCB0aWVuIHRodW9uZyBjdWEg Y2h1YyBkYW5oIFBobyBUR0QgbmdhbiBoYW5nIHZhIGNhYyBob2F0IGRvbmcga2luaCBkb2FuaCwg ZGF1IHR1IA0Ka2hhYyBsYSAxMDAgdHJpZXUgZG9uZy90aGFuZy4gTmV1IGtoYWkgdG9hbiBibyB0 aHUgbmhhcCBvIG5nYW4gaGFuZyBub2kgb25nIE1pbmggbGFtIA0KdmllYyB0aGkgdm9pIDIgbmd1 b2kgcGh1IHRodW9jIHZhIGJhbiB0aGFuIG9uZyBjaGkgZHVvYyB0aW5oIGxhIDcsMiB0cmlldSBk b25nLCB0aWVuIHRodWUgDQpUTkNOIG1vaSB0aGFuZyBwaGFpIGRvbmcgbGEgMjIsMzUgdHJpZXUg ZG9uZywgY2hpZW0gMjIsMzUlLiBUaGUgbGEgb25nIE1pbmggdGhhbmggDQpsYXAgbW90IGNvbmcg dHksIG5nb2FpIHRydSB0aHUgbmhhcCBjaGluaCB0aHVjIHR1IG5nYW4gaGFuZywgY2FjIHRodSBu aGFwLCBjaGkgcGhpIGxpZW4gDQpxdWFuIGtoYWMgZHVvYyBkdWEgaGV0IHZhbyBjb25nIHR5IGRl IGR1b2Mga2hhdSB0cnUuICJWaWVjIHRoYW5oIGxhcCBjb25nIHR5IGR1b2MgcGhlcCANCnRydSBk aSBjYWMga2hvYW4gY2hpIHBoaSBob3AgbHksIHBoYW4gbG9pIG5odWFuIGNvbiBsYWkgbW9pIGNo aXUgdGh1ZSBzdWF0IDI1JS4gRGF5IGxhIA0KZGllbSBjbyBsb2kgaG9uIG5oaWV1IG5ldSBzbyB2 b2kgdGh1ZSBUTkNOLCBib2kgdGh1ZSBUTkNOIGtob25nIGNobyB0cnUgcmEgY2FjIA0Ka2hvYW4g Y2hpIHBoaSBob3AgbHkgdmEgbXVjIHRodWUgc3VhdCBjYW8gbmhhdCBsZW4gZGVuIDM1JSIsIG9u ZyBNaW5oIG5vaS4NCg0KTW90IHRydW9uZyBob3Aga2hhYywgYmEgTGFuLCBjaHV5ZW4gZ2lhIHR1 IHZhbiB0YWkgY2hpbmggY28gbXVjIHRodSBuaGFwIGtob2FuZyAxNTAgDQp0cmlldSBkb25nL3Ro YW5nLCB0aHVlIFROQ04gcGhhaSBkb25nIGxhIDUzLDE1IHRyaWV1IGRvbmcvdGhhbmcuIEJhIExh biBkYSB0aGFuaCBsYXAgDQpjb25nIHR5IHZhIGNoaSBwaGkgZHVvYyB0cnUgZ29tIHRpZW4gdGh1 ZSBuaGEgMjAgdHJpZXUgZG9uZywgdGllbiBsdW9uZyBjaG8gbWluaCwgdGllbiANCnRodWUgdGFw IHZ1LCB0aWVuIGRpZW4sIGRpZW4gdGhvYWksIHRpZXAga2hhY2guLi4sIHNvIGxvaSBuaHVhbiBj b24gbGFpIHBoYWkgY2hpdSB0aHVlIHRodSANCm5oYXAgZG9hbmggbmdoaWVwIGNoaSBjb24ga2hv YW5nIDEwMCB0cmlldSBkb25nLCBzbyB0aHVlIHBoYWkgbm9wIGNoaSBsYSAyNSB0cmlldSBkb25n LCANCmJhbmcgbW90IG51YSBzbyB2b2kgc28gdGh1ZSBUTkNOIGxlIHJhIGJhIExhbiBwaGFpIG5v cC4gDQoNClRoZW8gbW90IGNodXllbiBnaWEgdmUgdGh1ZSB0YWkgVFAuSENNLCB2aWVjIGxhY2gg dGh1ZSBub2kgdHJlbiBkdWEgdHJlbiBjbyBzbyBjaGluaCANCnNhY2ggdGh1ZSBUTkNOIGNvbiBu aGlldSBkaWVtIGNodWEgaG9wIGx5LiBPIG5oaWV1IG51b2MsIHRodWUgVE5DTiBjaGkgdGluaCBz YXUga2hpIA0KZGEgdHJ1IGRpIGNhYyBraG9hbiBjaGkgcGhpIGhvcCBseSwgY29uIG8gVk4gdGhp IGtob25nIGR1b2MuIFRpZW4gc2kgTGUgVGhhbSBEdW9uZyCWIA0KVHJ1b25nIGtob2EgUXVhbiB0 cmkga2luaCBkb2FuaCB0cnVvbmcgRGFpIGhvYyBOZ2FuIGhhbmcgVFAuSENNIC0gY2hvIHJhbmcg Y2hpbmggDQp2aSBtdWMga2hhdSB0cnUgdGh1ZSBUTkNOIGNodWEgaG9wIGx5IG1vaSBuYXkgc2lu aCB0aWV1IGN1Yy4gTHVhdCB0aHVlIFROQ04gbmVuIGNobyANCnBoZXAgY2EgbmhhbiBkdW9jIGR1 YSB2YW8gbW90IHNvIGNoaSBwaGkgaG9wIGxlIHRhbyByYSB0aHUgbmhhcCwgY28gaG9hIGRvbiBj aHVuZyB0dSBkZSANCnRhbyBzdSBkb25nIGJvIGdpdWEgY2FjIHNhYyB0aHVlLCBraWNoIHRoaWNo IG5ndW9pIGRhbiBsYXkgaG9hIGRvbiBraGkgbXVhIGhhbmcuDQoNClZvaSBjaGluaCBzYWNoIHRo dWUgVE5DTiBoaWVuIG5heSwgY28gdGhlIHRoYXkgbmh1bmcgbmd1b2kgbGFtIGNvbmcgYW4gbHVv bmcgY2hpdSANCnRoaWV0IG5oYXQsIHRyb25nIGtoaSBobyBraG9uZyBwaGFpIGxhIGRvaSB0dW9u ZyBjbyB0aHUgbmhhcCBjYW8gbmhhdC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA1MC8yMDEwMTIxMTAwMjQzNi5hc3B4IFRoYW5oIFh1YW4gMTEvMTIvMjAx MCAwOjI0IA0KDQpUaHUgdHVvbmc6IEJhdCBob3AgbHkgdGh1ZSB0aHUgbmhhcCBjYSBuaGFuICAg DQoNCkdpYSBjYSB0YW5nIGxpZW4gdHVjIHRyb25nIG5odW5nIG5hbSBxdWEgZGEga2hpZW4gY2hv IG11YyBnaWFtIHRydSBnaWEgY2FuaCwga2hvYW5nIGNhY2ggZ2l1YSBjYWMgYmFjIHRodWUuLi4g dHJvbmcgTHVhdCBUaHVlIHRodSBuaGFwIGNhIG5oYW4gdHJvIG5lbiBxdWEgbGFjIGhhdS4gDQoN CkxvaSB0aG9pIA0KDQpMdWF0IFRodWUgdGh1IG5oYXAgY2EgbmhhbiAoVE5DTikgbWF0IDMgbmFt IGRlIHNvYW4gdGhhbywgbGF5IHkga2llbiByb25nIHJhaSBjdWEgY2FjIA0KY28gcXVhbiBiYW4g bmdhbmgsIG5ndW9pIGRhbiBkb25nIGdvcCB2YSBkdW9jIFF1b2MgaG9pIHRob25nIHF1YSB0YWkg a3kgaG9wIHRodSAyIA0KbmdheSAyMC4xMS4yMDA3LCBjbyBoaWV1IGx1YyB0dSBuZ2F5IDEuMS4y MDA5LiBEaWVtIHRpZW4gYm8gY3VhIHRodWUgVE5DTiBsYSB4ZXQgZ2lhbSANCnRydSBnaWEgY2Fu aCwgYmFvIGdvbSB0cnUgY2hvIG5ndW9pIGNvIHRodSBuaGFwIDQgdHJpZXUgZG9uZy90aGFuZyB2 YSBuZ3VvaSBwaHUgdGh1b2MgDQoxLDYgdHJpZXUgZG9uZy90aGFuZy4gTXVjIGdpYW0gdHJ1IGdp YSBjYW5oIG5heSBkdW9jIGR1YSByYSB0dSBuYW0gMjAwNSAtIDIwMDYgZGUgYXAgZHVuZyBjaG8g bmFtIDIwMDkgbmVuIGRhbmcgdHJvIG5lbiBxdWEgbG9pIHRob2ksIGJhdCBob3AgbHkuIA0KDQoo QW5oOiBNdWMgY2hpZXQgdHJ1IGdpYSBjYW5oIGRvaSB2b2kgbmd1b2kgbm9wIHRodWUgVE5DTiBr aG9uZyB0aGVvIGtpcCBnaWEgY2EgdGFuZyBoYW5nIG5hbSAtIGFuaDogRC5ELk1pbmgpICANCg0K S2hpIGR1YSByYSBtdWMgY2hpZXQgZ2lhbSANCjQgdHJpZXUgZG9uZy9uZ3VvaS90aGFuZyBjaG8g Y2EgbmhhbiB2YSAxLDYgdHJpZXUgZG9uZy9uZ3VvaS90aGFuZyBjaG8gbmd1b2kgcGh1IHRodW9j LCANCkJhbiBzb2FuIHRoYW8gbHVhdCBjYW4gY3UgdmFvIGNoaSBzbyB0cnVvdCBnaWEsIHRhbmcg dHJ1b25nIGtpbmggdGUuIFRoZSBuaHVuZyBkaWVuIGJpZW4gDQpsYW0gcGhhdCBuaHVuZyBuYW0g c2F1IGRvIHRhbmcgbWFuaCBob24gbXVjIGR1IGJhbyB0aGkgY28gcXVhbiBjaHVjIG5hbmcgdmFu IGtob25nIA0KY28gdGhheSBkb2kgbXVjIGdpYW0gdHJ1IGdpYSBjYW5oIGNobyBwaHUgaG9wIHZv aSB0aHVjIHRlLiANCg0KQ3UgdGhlLCBuZ2F5IHNhdSBraGkgbHVhdCB0aHVlIG5heSBkdW9jIHRo b25nIHF1YSB0aGkgY2hpIHNvIGxhbSBwaGF0IDIgbmFtIDIwMDcgdmEgDQoyMDA4IG8gbXVjIHRy ZW4gMiBjb24gc28sIGxhbiBsdW90IGxhIDEyLDYzJSB2YSAyMiwzMyUuIDExIHRoYW5nIGRhdSBu YW0gMjAxMCBsZW4gDQo5LDU4JS4gSGF5IGxheSB4YW5nIGxhbSBtb3QgdmkgZHUuIE5ldSBuaHUg bmFtIDIwMDYsIGdpYSB4YW5nIGxhIDEyLjAwMCBkb25nL2xpdCB0aGkgDQpoaWVuIG5heSwgZ2lh IHhhbmcgZGEgdGFuZyBsZW4gaG9uIDE2LjAwMCBkb25nL2xpdCwgY28gbHVjIGdpYSB4YW5nIGxl biAxNy4wMDAgZG9uZy9saXQuIA0KVmllYyBnaWEgeGFuZyB0YW5nIGRhIGtlbyB0aGVvIGdpYSBj YSBjYWMgbWF0IGhhbmcga2hhYyB0YW5nIHZhIGtoaWVuIGNobyBtdWMgZ2lhbSB0cnUgDQpjdWEg dGh1ZSBUTkNOIHRybyBuZW4gcXVhIGxvaSB0aG9pLiAgDQoNCk5odW5nIG5ndW9pIGNvIGNvbiBk YW5nIGRpIGhvYyB0aGkgbXVjIGdpYW0gdHJ1IDEsNiB0cmlldSBkb25nL3RoYW5nL25ndW9pIGto b25nIA0Ka2hhbSBub2kgdHJvbmcgYm9pIGNhbmggaG9jIHBoaSwgdmllbiBwaGksIGdpYSBzdWEs IGdpYSB0aHVjIHBoYW0gdGFuZyByYXQgbWFuaCBzbyB2b2kgdHJ1b2MgZGF5LiANCg0KVGhlbyBt b3QgY2h1eWVuIGdpYSB0aHVlLCBMdWF0IFRodWUgVE5DTiBkYSBraG9uZyBjbyBzdSBrZSB0aHVh IFBoYXAgbGVuaCBUaHVlIHRodSANCm5oYXAgZG9pIHZvaSBuZ3VvaSBjbyB0aHUgbmhhcCBjYW8g dHJ1b2MgZG8uIFRoZW8gZGlldSAzMCBjdWEgcGhhcCBsZW5oIG5heTogIlRyb25nIA0KdHJ1b25n IGhvcCBnaWEgY2EgdGhpIHRydW9uZyBiaWVuIGRvbmcgdHUgMjAlIHRybyBsZW4gdGhpIENoaW5o IHBodSB0cmluaCBVeSBiYW4gDQpUaHVvbmcgdnUgUXVvYyBob2kgZGlldSBjaGluaCBjYWMgbXVj IGJhbmcgdGllbiBtYXQgdHJvbmcgYmlldSB0aHVlIHRodSBuaGFwIGNobyBwaHUgaG9wIi4gDQoN CkJhdCBob3AgbHkNCg0KTW90IHF1eSBkaW5oIHRyb25nIEx1YXQgVGh1ZSBUTkNOIGhpZW4gbmF5 IGRhbmcgZ2F5IGJ1YyB4dWMgZG8gbGEgdGh1IG5oYXAgbGFtIGNhbiANCmN1IGRlIHhhYyBkaW5o IG5ndW9pIHBodSB0aHVvYyBkdW9jIGFwIGR1bmcgZ2lhbSB0cnUgbGEgbXVjIHRodSBuaGFwIGJp bmggcXVhbiB0aGFuZyANCnRyb25nIG5hbSB0dSB0YXQgY2EgY2FjIG5ndW9uIHRodSBuaGFwIGto b25nIHZ1b3QgcXVhIDUwMC4wMDAgZG9uZy4gTmd1b25nIDUwMC4wMDAgDQpkb25nIGtob25nIGNo aSBsb2kgdGhvaSBzbyB2b2kgZ2lhIGNhIHRpZXUgZHVuZyBtYSBjb24gbG9pIHRob2kgbmdheSBj YSB2b2kgY2h1YW4gbmdoZW8gDQpoaWVuIG5heSBjdWEgVFAuSENNIGxhIDEgdHJpZXUgZG9uZy90 aGFuZy4gDQoNCkFuaCBOYW0sIG5oYW4gdmllbiBtYXJrZXR0aW5nIG1vdCBjb25nIHR5IHRhaSBR LjEgY2hvIGJpZXQsIGNvbiBnYWkgYW5oIGRhbmcgbGEgc2luaCANCnZpZW4gY28gZGkgbGFtIHRo ZW0gdm9pIG11YyB0aHUgbmhhcCAxIHRyaWV1IGRvbmcvdGhhbmcuIE11YyBuYXkgY3VuZyBjaGkg ZHUgdGllbiBtdWEgDQpzYWNoIHZvLCB4YW5nIHhlLCBjb20gdHJ1YS4uLiwgdmFuIHBodSB0aHVv YyBjaHUgeWV1IHZhbyBnaWEgZGluaCB0dSBob2MgcGhpLCBhbiB1b25nLCANCmtoaSBiZW5oIHRh dC4uLiBuaHVuZyBsYWkga2hvbmcgZHVvYyBjb2kgbGEgbmd1b2kgcGh1IHRodW9jLiBUcmVuIHRo dWMgdGUsIG5nYXkgc2F1IGtoaSANCm11YyBxdXkgZGluaCBuZ3VvaSBwaHUgdGh1b2MgY28gdGh1 IG5oYXAgdHJlbiA1MDAuMDAwIGQvdGhhbmcga2hvbmcgZHVvYyBjaGlldCB0cnUgZ2lhIA0KY2Fu aCBraGkgdGluaCB0aHVlIFROQ04gZHVvYyBiYW4gaGFuaCBkYSBjbyBuaGlldSB5IGtpZW4gcGhh biBkb2kuIERlbiB0aG9pIGRpZW0gbmF5LCANCmdpYSBjYSB0aWV1IGR1bmcgZGEgdGFuZyByYXQg bWFuaCB0aGkgIm5ndW9uZyBraG9uZyBwaHUgdGh1b2MiIHRyZW4gNTAwLjAwMCBkb25nIGRhIHRy byANCm5lbiBxdWEgbG9pIHRob2ksIGdheSBidWMgeHVjIGNobyByYXQgbmhpZXUgbmd1b2kuICJU cm9uZyB0aW5oIGhpbmggZ2lhIGNhIGhpZW4gbmF5LCBjbyBhaSANCnNvbmcgZHVvYyBiYW5nIHNv IHRpZW4gbmF5IGtob25nPyIgLSBhbmggTmFtIGJ1YyB4dWMuICANCg0KQ2EgbmhhbiBkb25nIHRo dWUgbmhpZXUgaG9uIERODQoNClRoZW8gYmlldSB0aHVlIGx1eSB0aWVuIHR1bmcgcGhhbiwgc2F1 IGtoaSB0cnUgZGkgcGhhbiBjaGlldCB0cnUgZ2lhIGNhbmgsIDUgdHJpZXUgZG9uZyB0aHUgDQpu aGFwIGRhdSB0aWVuIHNlIGNoaXUgbXVjIHRodWUgNSUgKGJhYyAxKSwgNSB0cmlldSBkb25nIHRo dSBuaGFwIHRpZXAgdGhlbyBjaGl1IHRodWUgc3VhdCANCjEwJSAoYmFjIDIpLCA4IHRyaWV1IGRv bmcgdGllcCB0aGVvIG51YSBjaGl1IHRodWUgc3VhdCAxNSUgKGJhYyAzKSwgMTQgdHJpZXUgZG9u ZyB0aHUgDQpuaGFwIHRpZXAgdGhlbyBjaGl1IHRodWUgc3VhdCAyMCUgKGJhYyA0KSwgMjAgdHJp ZXUgZG9uZyB0aWVwIHRoZW8gY2hpdSB0aHVlIHN1YXQgMjUlIA0KKGJhYyA1KSwgMjggdHJpZXUg ZG9uZyB0aWVwIHRoZW8gbnVhIGNoaXUgdGh1ZSBzdWF0IDMwJSAoYmFjIDYpIHZhIHRodSBuaGFw IHRyZW4gMjggdHJpZXUgDQpkb25nIGNoaXUgdGh1ZSBzdWF0IDM1JSAoYmFjIDcpLg0KDQpMdWF0 IHN1IFRyYW4gWG9hIC0gR2lhbSBkb2MgQ29uZyB0eSBsdWF0IFROSEggTWluaCBEYW5nIFF1YW5n IG5oYW4gZGluaCwgdm9pIG11YyANCmtob2kgZGllbSBjaGl1IHRodWUgdGhhcCBjb25nIHRoZW0g a2hvYW5nIGNhY2ggdGh1IG5oYXAgZ2l1YSBjYWMgYmFjIHRodWUgcXVhIG5nYW4gDQpuZW4gbmhp ZXUgdHJ1b25nIGhvcCByb2kgdmFvIG11YyB0aHVlIGJhYyAyICh0aHVlIHN1YXQgMTAlKS4gTW90 IG5ndW9pIGRvYyB0aGFuIHNvbmcgDQp0YWkgVFAuSENNIHZvaSB0aHUgbmhhcCB0cmVuIDEwIHRy aWV1IGRvbmcvdGhhbmcgbWEgY2hpdSBtdWMgdGh1ZSBzdWF0IDEwJSB0aGkgY3VuZyANCmNhbiB4 ZW0geGV0LiAiVm9pIHRvYyBkbyBnaWEgY2EgdGFuZyBuaGFuaCwgc29uZyBvIHRoYW5oIHBobyBj byBuaGlldSBjaGkgcGhpIHBoYXQgc2luaCANCmNhbyBob24gbyBub25nIHRob24gbmh1IHRpZW4g ZG8gcmFjLCBndWkgeGUuLi4gQ2FjIG11YyB0aHVlIGRlIHJhIGR1bmcgZGF0IG5hbmcgcXVhIHZh byANCm11YyB0aWV1IHRhbmcgdGh1IGNobyBuZ2FuIHNhY2ggbWEgbmVuIGNvIGNoaW5oIHNhY2gg bnVvaSBkdW9uZyBuZ3VvbiB0aHUiIC0gTFMgVHJhbiBYb2Egbm9pLiANCg0KRG8gbGEgY2h1YSBr ZSwgdHJvbmcga2hpIG5oaWV1IG51b2MgY2hvIHBoZXAgY2EgbmhhbiB0cnUgZGkgY2FjIGNoaSBw aGkgaG9wIGx5IGtoaSBjbyBob2EgDQpkb24gY2h1bmcgdHUsIGtodXllbiBraGljaCBuZ3VvaSBk YW4gdGlldSBkdW5nLCBraG9hbmcgY2FjaCBjaGl1IHRodWUgZ2l1YSBjYWMgYmFjIGNhbyANCm5l biBWaWV0IE5hbSBzZSBnYXAga2hvIGtoYW4ga2hpIHRodSBodXQgbGFvIGRvbmcgbnVvYyBuZ29h aSBoYXkgbGFvIGRvbmcgdHJvbmcgbnVvYyANCmNvICJjaGF0IHhhbSIuIEJvaSBuZXUgZHVvYyBj aG9uLCBuZ3VvaSBsYW8gZG9uZyBzZSBjaG9uIGRvbmcgdGh1ZSBvIG51b2MgbmdvYWkuIERpZXUg DQpuYXkgZ2F5IHRoYXQgdGh1IHRodWUgdHJvbmcgbnVvYy4gQ2hpbmggdmkgdmF5LCB0aGVvIGNh YyBjaHV5ZW4gZ2lhLCBraG9hbmcgY2FjaCB0aHUgDQpuaGFwIGNoaXUgdGh1ZSBnaXVhIGNhYyBi YWMgY2FuIGR1b2MgbmdoaWVuIGN1dSBrZW8gZ2lhbiByYS4NCg0KVHJvbmcgdHJ1b25nIGhvcCBz byBzYW5oIHRodWUgVE5DTiB2b2kgdGh1ZSB0aHUgbmhhcCBkb2FuaCBuZ2hpZXAgdHJvbmcgbnVv YyBzZSB0aGF5IA0Kcm8gc3Uga2hvbmcgaG9wIGx5LiBNb3QgZG9hbmggbmdoaWVwIHNhdSBraGkg dHJ1IGRpIGNhYyBjaGkgcGhpIG5odSB0aWVuIGx1b25nLCB0aWVuIHRodWUgDQpuaGEsIHRpZW4g bXVhIHNhbSwgY2hpIHBoaSBob3AgbHkuLi4gY28gbG9pIG5odWFuIDEwMCB0cmlldSBkb25nIHNl IGRvbmcgdGh1ZSB0aHUgbmhhcCANCmRvYW5oIG5naGllcCAyNSB0cmlldSBkb25nIChtdWMgdGh1 ZSBzdWF0IDI1JSkuIFRyb25nIGtoaSBtb3QgY2EgbmhhbiwgY28gdGh1IG5oYXAgDQoxMDAgdHJp ZXUgZG9uZyBtYSBraG9uZyBjYW4gYmlldCBjYSBuaGFuIG5heSBjbyBwaGFpIGRhdSB0dSBnaSBk ZSBjbyBtdWMgdGh1IG5oYXAgbmF5IA0KaGF5IGtob25nIHRoaSBtdWMgdGh1ZSBkb25nIGxhIDI1 LDE1IHRyaWV1IGRvbmcuDQoNCkJpZXUgdGh1ZSBzdWF0IHRodWUgVE5DTiANCg0KKk11YyBjaGl1 IHRodWUgKG5hbSkgY3VhIFZpZXQgTmFtICh0cmlldSBkb25nKToNCiANCkRlbiA2MDogIHRodWUg c3VhdCA1JQ0KVHJlbiA2MCBkZW4gMTIwOiB0aHVlIHN1YXQgMTAlDQpUcmVuIDEyMCBkZW4gMjE2 OiAgdGh1ZSBzdWF0IDE1JSANClRyZW4gMjE2IGRlbiAzODQ6IHRodWUgc3VhdCAyMCUNClRyZW4g Mzg0IGRlbiA2MjQ6IHRodWUgc3VhdCAyNSUNClRyZW4gNjI0IGRlbiA5NjA6IHRodWUgc3VhdCAz MCUNClRyZW4gOTYwOiB0aHVlIHN1YXQgMzUlDQoNCipNdWMgY2hpdSB0aHVlIChuYW0pIGN1YSBU aGFpIExhbjogDQoNCjE1MC4wMDAgYmFodCAodHVvbmcgZHVvbmcgOTAuMDAwLjAwMCBkKTogdGh1 ZSBzdWF0IDAlDQoxNTAuMDAxIC0gNTAwLjAwMCBiYWh0ICh0dW9uZyBkdW9uZyA5MC4wMDAuNjAw IC0gMzAwLjAwMC4wMDAgZCk6IHRodWUgc3VhdCAxMCUgDQo1MDAuMDAxIC0gMS4wMDAuMDAwIGJh aHQgKHR1b25nIGR1b25nIDMwMC4wMDAuNjAwIC0gNjAwLjAwMC4wMDAgZCk6IHRodWUgc3VhdCAy MCUgDQoxLjAwMC4wMDAgLSA0LjAwMC4wMDAgYmFodCAodHVvbmcgZHVvbmcgNjAwLjAwMC42MDAg LSAyLjQwMC4wMDAuMDAwIGQpOiB0aHVlIHN1YXQgMzAlIA0KNC4wMDAuMDAxIGJhaHQgdHJvIGxl biAodHUgMi40MDAuMDAwLjYwMCBkIHRybyBsZW4pOiB0aHVlIHN1YXQgMzclIA0KDQoqTXVjIGNo aXUgdGh1ZSAobmFtKSBjdWEgU2luZ2Fwb3JlIChTR0QpOiANCg0KMjAuMDAwICgzMjAuMDAwLjAw MCBkKTogdGh1ZSBzdWF0IDAlDQoyMC4wMDEgLSAzMC4wMDAgKDMyMC4wMTYuMDAwIC0gNDgwLjAw MC4wMDAgZCk6IHRodWUgc3VhdCAgMyw1MCUgDQozMC4wMDEgLSA0MC4wMDAgKDQ4MC4wMTYuMDAw IC0gNjQwLjAwMC4wMDAgZCk6IHRodWUgc3VhdCA1LDUwICUNCjQwLjAwMSAtIDgwLjAwMCAoNjQw LjAxNi4wMDAgLSAxLjI4MC4wMDAuMDAwIGQpOiB0aHVlIHN1YXQgOCw1MCUNCjgwLjAwMSAtIDE2 MC4wMDAgKDEuMjgwLjAxNjAuMDAwIC0gMi41NjAuMDAwLjAwMCBkKTogdGh1ZSBzdWF0IDE0JQ0K MTYwLjAwMSAtIDMyMC4wMDAgKDIuNTYwLjAxNi4wMDAgLSA1LjEyMC4wMDAuMDAwIGQpOiB0aHVl IHN1YXQgMTclDQozMjAuMDAxIC0gNjQwLjAwMCAoNS4xMjAuMDE2LjAwMCAtIDEwLjI0MC4wMDAu MDAwIGQpOiB0aHVlIHN1YXQgMjAlDQoNCkNhbiB4ZW0geGV0IG1pZW4sIGdpYW0gdGh1ZSBUTkNO IA0KDQoiTmh1bmcgbmFtIHNvYW4gdGhhbyBMdWF0IFRodWUgVE5DTiBsYSBuaHVuZyBuYW0gbmVu IGtpbmggdGUga2hhIG9uIGRpbmgsIG5odW5nIDQgDQpuYW0gZ2FuIGRheSwga2luaCB0ZSB0cm9u ZyBudW9jIGRhIGNvIGJpZW4gZG9uZyBraG8gZHUgYmFvLiBDaGluaCB2aSB2YXkgbWEgY2FjIG11 YyANCmNoaWV0IHRydSBnaWEgY2FuaCBjdWEgTHVhdCBUaHVlIFROQ04gZGEgdHJvIG5lbiBsYWMg aGF1LiBUaHVlIFROQ04gdmFuIGNoaSB0YXAgdHJ1bmcgDQp2YW8gbmh1bmcgbmd1b2kgbGFtIGNv bmcgYW4gbHVvbmcgbGEgY2h1IHlldSwgdHJvbmcga2hpIGRvIGx1b25nIGxhaSBraG9uZyB0YW5n IHRoZW8gDQpraXAgYmllbiBkb25nIGN1YSBnaWEgY2EgaGFuZyBob2EuIA0KDQpSaWVuZyBkb2kg dm9pIGtob2FuZyBjYWNoIHRodSBuaGFwIGNoaXUgdGh1ZSBnaXVhIGNhYyBiYWMgdGh1ZSBzdWF0 IGhpZW4gbmF5IGR1bmcgbGEgDQpxdWEgdGhhcC4gWGF5IGR1bmcgdGh1ZSBUTkNOIGNhbiBodW9u ZyBkZW4gdHVvbmcgbGFpLCB0aHUgbmhhcCBjdWEgbmd1b2kgZGFuIHNlIG5nYXkgDQpjYW5nIHRh bmcgbGVuIG5lbiBraG9hbmcgY2FjaCBjaGl1IHRodWUgY2FuIHBoYWkgY28gZG8gZ2lhbiBuaGF0 IGRpbmggZGUga2hvbmcgcXVhIGxvaSANCnRob2kuIER1IGNvIG5oaWV1IGJhdCBjYXAgbmh1bmcg bW9pIGxhbiB0aGF5IGRvaSBsdWF0IGxhIGtob25nIHBoYWkgZGUuIENoaW5oIHZpIHZheSANCnRy b25nIGJvaSBjYW5oIGtobyBraGFuIGhpZW4gbmF5LCBDaGluaCBwaHUgbmVuIHhlbSB4ZXQgZGVu IHZpZWMgbWllbiBnaWFtIHRodWUgDQpUTkNOIGRvaSB2b2kgbmh1bmcgbmd1b2kgbGFtIGNvbmcg YW4gbHVvbmcsIHZhbiBkZSBuYXkgZGEgZHVvYyB0aHVjIGhpZW4gdHJvbmcgdGhvaSANCmdpYW4g cXVhIi4gLSBUUyBEaW5oIFRoZSBIaWVuIA0KDQpTb20gbmFuZyBtdWMgY2hpZXQgdHJ1IGdpYSBj YW5oIA0KDQoiQ2FjIG5hbSB0cm8gbGFpIGRheSwgbHVvbmcgY28gYmFuIGN1bmcgZGEgZHVvYyBk aWV1IGNoaW5oIG5oaWV1IGxhbiwgc2FwIHRvaSBkYXkgc2UgY29uIA0KZHVvYyBkaWV1IGNoaW5o IGxhbiBudWEuIENoaW5oIHZpIHZheSBtYSBtdWMgY2hpZXQgdHJ1IGdpYSBjYW5oIGtoaSBjaGl1 IHRodWUgVE5DTiBkYSANCnRybyBuZW4gbGFjIGhhdS4gVGh1b25nIHRoaSBraGkgdHkgbGUgdHJ1 b3QgZ2lhIHRhbmcgMjAlIHRoaSBjYWMgbXVjIGNoaWV0IHRydSBjYW4gY28gdGluaCANCnRvYW4g bGFpLiBUaGUgbmh1bmcgY28gY2hlIGhpZW4gbmF5IGNodWEgdGhlIGRpZXUgY2hpbmggbXVjIGNo aWV0IHRydSBnaWEgY2FuaCBjdWEgTHVhdCANClRodWUgVE5DTiBib2kgUXVvYyBob2kgbW9pIHF1 eWV0IGRpbmggZHVvYyB2YW4gZGUgbmF5LCB0cm9uZyBraGkgZG8gdGFpIGt5IGhvcCBRdW9jIA0K aG9pIGxhbiBuYXkgTHVhdCBUaHVlIFROQ04ga2hvbmcgZHVvYyBkZSBjYXAgZGVuIG5lbiBwaGFp IGRvaSBkZW4ga3kgaG9wIHNhdS4gVGhlbyANCnRvaSwgbXVjIGNoaWV0IHRydSBnaWEgY2FuaCBj aG8gYmFuIHRoYW4gbmd1b2kgbm9wIHRodWUgY28gdGhlIHhlbSB4ZXQgbmFuZyBsZW4gbXVjIDUg DQp0cmlldSAtIDYgdHJpZXUgZG9uZy90aGFuZyB2YSBxdXkgZGluaCBybyBjYW4gY3UgZGUgbGFt IGNvIHNvIGRpZXUgY2hpbmggbXVjIGNoaWV0IHRydSBuYXkuIERvbmcgdGhvaSwgbXVjIGNoaWV0 IHRydSBjaG8gbmd1b2kgcGh1IHRodW9jIGN1bmcgY2FuIG5hbmcgbGVuLCBjaHUgbXVjIDEsNiB0 cmlldSANCmRvbmcvdGhhbmcgaGllbiBuYXkgdGhpIHZpZWMgbnVvaSBjb24gYW4gaG9jIHF1YSBs YSBraG9uZyB0aGUiLiAtIFRTIE5ndXllbiBWYW4gVGh1YW4gKFRydW9uZyBraG9hIEtlIHRvYW4g LSBUYWkgY2hpbmggLSBOZ2FuIGhhbmcsIERIIE1vIFRQLkhDTSkgDQoNCmh0dHA6Ly92aWV0YmFv LnZuL0tpbmgtdGUvR2lhLWNhLXRhbmctY2FvLXRodS1uaGFwLXRhbmctY2hhbS1Nb2ktbG8tbG9u LzU1MTQ1NjkwLzg4LyAgMDMvNC8yMDA3IDE0OjQyIEdNVCs3IA0KDQpUaHUgdHVvbmc6IEdpYSBj YSB0YW5nIGNhbywgdGh1IG5oYXAgdGFuZyBjaGFtIC0gTW9pIGxvIGxvbiANCg0KaHR0cDovL2Vk aXRvci50dWFudmlldG5hbS5uZXQvMjAxMC0wOS0yNy1tdW9uLW11YS1uaGEtbmhpbi0yMS1uYW0t a2hvbmctYW4tdW9uZz9zdGFnZT1MaXZlJmxvY2FsZT12aV9WTiBQaGFtIEh1bmcgMDYvMTAvMjAx MCAwNjowMCBHTVQrNw0KDQpUaHUgdHVvbmc6IE11b24gbXVhIG5oYSAtIE5oaW4uLi4gMjEgbmFt IGtob25nIGFuIHVvbmcgDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDEtMzEt bXVhLXNhbS1jb25nLXNhbi1jby1ob2ktdHUtdHVpLTIgVHJhbiBUcm9uZyBUaHVjIDAxLzAyLzIw MTAgMDY6MzAgR01UKzcNCg0KVGh1IHR1b25nOiBNdWEgc2FtIGNvbmcgc2FuLCBjbyBob2kgdHUg dHVpIA0KDQpWdSB0aGFtIG5odW5nIHRyb25nIG11YSBzYW0gY29uZyBzYW4gbmhpbiB0dSAiRGUg YW4gMTEyIiBjaGkgbGEgcGhhbiBuaG8gY3VhIHRhbmcgYmFuZyBsb24gDQp2ZSB0aW5oIHRyYW5n IGxhbmcgcGhpIHZhIHRoYW0gbmh1bmcgdHJvbmcgYm8gbWF5IGNvbmcgcXV5ZW4sIGtoaSBtYSB2 aWVjIG11YSBzYW0gY29uZyBzYW4gDQp0dSBsYXUgbmF5IGR1IGRhIGR1b2MgaHVvbmcgZGFuIGJv aSBuaGlldSBxdWkgZGluaCBkYXUgdGhhdSB0dW9uZyBjaHVuZyBjaGF0IGNoZSwgbmh1bmcgdmFu IA0KY29uIHF1YSBuaGlldSBrZSBobyBjaG8gZG9uZyB0aWVuIG5nYW4gc2FjaCBjaGF5IHZhbyB0 dWkgcmllbmcuIA0KDQpodHRwOi8vd3d3LnhhbHVhbi5jb20vbW9kdWxlcy5waHA/bmFtZT1OZXdz JmZpbGU9YXJ0aWNsZSZzaWQ9MTU4OTc5DQoNClRodSB0dW9uZzogRGUgYW4gMTEyIHBoYSBzYW4s IDIzIGNhbiBibyAicnV0IHJ1b3QiIGdvbSBjYSBQaG8gQ2h1IG5oaWVtIFZhbiBwaG9uZyBDaGlu aCBwaHUgKHR1b25nIGR1b25nIHRodSB0cnVvbmcpIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmll dG5hbW5ldC52bi8yMDEwLTEwLTIxLWdpb2ktbGFtLWNoaW5oLXNhY2gtdmlldC1xdWVuLWNoaWVu LWx1b2MtbG8tZHUtYW4gTmd1eWVuIEx1b25nIEhhaSBLaG9pIChOZ3VvbjogVmlldG5hbU5ldCkg MjIvMTAvMjAxMCAwNjowMCBHTVQrNyANCg0KVGh1IHR1b25nOiBHaW9pIGxhbSBjaGluaCBzYWNo IFZpZXQgcXVlbiBjaGllbiBsdW9jLCBsbyBkdSBhbiANCg0KRG9pIG5ndSBob2FjaCBkaW5oIGNo aW5oIHNhY2ggY3VhIFZpZXQgTmFtIGdhbiBuaHUgYm8gcm9pIHF1YW4gbHkgY2hpZW4gbHVvYywg c2EgdmFvIA0KcXVhbiBseSB0dW5nIGR1IGFuIGN1IHRoZSwgbWEgbyBjYWMgZHUgYW4gY3VuZyBr aG9uZyBjbyBzdSB0aGFtIHZhbiBsYW4gbmhhdS4gRG8gbGEgbGkgDQpkbyBWaWV0IE5hbSBiaSBs YW0gdmFvIGtodW5nIGhvYW5nIG8ga2hhdSBob2FjaCBkaW5oIGNoaW5oIHNhY2gsIGtoYXUgbWF0 IGNvdCB0dS4NCg0KTW8gaGluaCByYSBxdXlldCBkaW5oIHRoZW8gbGUgdGhvaSBxdWFuIGxpZXUg Y2hpIGNvIHRoZSB2YW4gaGFuaCBtb3QgbmVuIGtpbmggdGUgZGFuZyBjYXAgDQp0aGFwLiBEZSB4 YXkgZHVuZyBkdW9jIG5odW5nIGNoaW5oIHNhY2gga2hhIGRpIGNvIHRoZSBkdWEgZGF0IG51b2Mg ZGkgZGVuIG1vdCBkYW5nIA0KY2FwIHF1b2MgZ2lhIGNhbyBob24sIG5oYXQgdGhpZXQgcGhhaSBk dW5nIGRlbiBtbyBoaW5oIHJhIHF1eWV0IGRpbmggdGllbiB0aWVuIFsxXS4NCg0KTHVjIG5heSwg bmV1IGNodW5nIHRhIGRhbSBxdXlldCBkb2FuIG5nYXkgbyBraGF1IGRhdSB0aWVuLCBraGF1IHRh aSBjYXUgdHJ1YyB0aWVuIHRyaW5oIA0KeGF5IGR1bmcgcXV5ZXQgc2FjaCwgYmF0IGRhdSBiYW5n IHZpZWMgeGF5IGR1bmcgbHVjIGx1b25nIHRoaW5rIHRhbmtzLCB0aGkgY29uIHRhdSBkYXQgDQpu dW9jIHNlIGNvIGNvIGhvaSBkZSBkaSBkZW4gbW90IGNoYW4gdHJvaSBtb2ksIGNvbiBuZXUgbmd1 b2MgbGFpLCBjb24gdGF1IGRhIHZ1b25nICJsb2kgDQpuZ3V5ZW4gdGFpIG5ndXllbiIgYXkgc2Ug dmluaCB2aWVuIGJpIGRvYSBkYXkgdHJvbmcgdnVuZyB0YW0gYmFvLCB2YSBjYWkgIm5naGllcCIg bWEgDQpjaGluaCBtaW5oIHZhIGNvbiBjaGF1IHBoYWkgdHJhIGtob25nIGhlIG5oZSBjaHV0IG5h by4NCg0KUXVlbiBjaGllbiBsdW9jLCBsbyBkdSBhbg0KDQpYZXQgbyBtYXQgdG8gY2h1YyBxdWEg dHJpbmggcmEgcXV5ZXQgc2FjaCwgbmd1eWVuIG5oYW4gZGF1IHRpZW4ga2hpZW4gVmlldCBOYW0g a2h1bmcgDQpob2FuZyB0cm9uZyB2aWVjIGhvYWNoIGRpbmggY2hpbmggc2FjaCB0cnVvYyBoZXQg bGEgc3UgdmFuZyBib25nIGx1YyBsdW9uZyB0dSBkdXkgY2hpZW4gDQpsdW9jIGNodXllbiBuZ2hp ZXAuDQoNCjEuIE8gbW90IHNvIG51b2MgcGhhdCB0cmllbiwgY2hpbmggdHJpIHRyZW4gZGluaCBj aG9wIGx1YyBuYW8gY3VuZyBuYW8gbG9hbiB2YSBjYW5nIHRoYW5nLCANCm5odSB0cm9uZyB0cnVv bmcgaG9wIE5oYXQgQmFuLCB0aHVvbmcga2hvYW5nIG1vdCBuYW0gdGhpIHRoYXkgbW90IHRodSB0 dW9uZy4gVGhlIA0Kbmh1bmcsIGNoaW5oIHNhY2ggY3VhIGhvIHRoaSBsdW9uIG1pbmggYmFjaCB2 YSBraG9hIGhvYy4gRG8gbGEgbmhvIGx1YyBsdW9uZyB0dSBkdXkgDQpjaGllbiBsdW9jIGNodXll biBuZ2hpZXAgdmEgZG9pIG5ndSBxdWFuIGx5IGt5IHRyaSBjdWEgY2hpbmggcGh1IGxhbSB2aWVj IGRvYyBsYXAgdm9pIA0KY2FjIGRvbmcgaHVvbmcgY2hpbmggdHJpIHRyZW4gZGluaCBjaG9wLg0K DQpOdW9jIHRhIHRoaSBjaGluaCB0cmkgdHJlbiBkaW5oIGNob3AgcmF0IG9uIGRpbmgsIG5odW5n IGRvIHRoaWV1IGNhYyB0aGluayB0YW5rcyBjaHV5ZW4gDQp0cmFjaCB2YSBkdW9jIGRhaSBuZ28g eHVuZyBkYW5nLCBuZW4gY2hhdCBsdW9uZyBjaGluaCBzYWNoIGtob25nIGNhbywgdGh1b25nIHRo aWV1IA0KbmhhdCBxdWFuLCBkZSBnYXkgdGFtIGx5IGJhdCBhbiBjaG8geGEgaG9pLCBkYWMgYmll dCBsYSBvIG5odW5nIGxpbmggdnVjIGxpZW4gcXVhbiBkZW4gDQpkb25nIGRhbyBuaGFuIGRhbi4g DQoNCjIuIEdzLiBLZW5pY2hpIE9obm8sIEdpYW0gZG9jIERpZW4gZGFuIFBoYXQgdHJpZW4gVmll dCBOYW0gY3VuZyBkYSBuaGFuIHhldCBuaHUgc2F1IA0KdmUgY2F1IHRydWMgY3VhIHRpZW4gdHJp bmggcmEgcXV5ZXQgc2FjaCBvIG51b2MgdGE6DQoNCiJWaWV0IE5hbSBjbyBxdWEgbmhpZXUgY2hp ZW4gbHVvYyBuZ2FuaC4gTW9pIGNoaWVuIGx1b2MgY2hpIGRvIHZhaSBuZ3VvaSBsYW0sIHRyb25n IA0KdGhvaSBnaWFuIG5nYW4sIHZvaSBjaGF0IGx1b25nIGtob25nIGNhby4gQ2hpbmggcGh1IGx1 YSBjaG9uIHV1IHRpZW4gdmEgcXV5ZXQgZGluaCBrZSANCmhvYWNoLg0KDQpPIGJhdCBraSBjaGlu aCBzYWNoIG5hbywgdmllYyB4YXkgZHVuZyBkZXUgcXVhIHBoYW4gdGFuLCB2YSBjbyBxdWEgbmhp ZXUgc3UgY2hvbmcgbGFuIA0KKC4uLikgdmEga2hvbmcgbW90IGNvIHF1YW4gbmFvIGNoaXUgdHJh Y2ggbmhpZW0gY2h1IGRhbyIgWzJdDQoNCjMuIE8gY2FjIG51b2MgcGhhdCB0cmllbiwgdHJvbmcg Y2F1IHRydWMgY3VhIHRpZW4gdHJpbmggeGF5IGR1bmcgY2hpbmggc2FjaCwgbmh1bmcgdGhhbmgg DQp0byBzYXUgbGEga2hvbmcgdGhlIHRoaWV1Og0KDQotIEx1YyBsdW9uZyBuZ2hpZW4gY3V1IGNo aW5oIHNhY2ggY2h1eWVuIG5naGllcCAodGhpbmsgdGFua3MpIGN1YSBjaGluaCBwaHUNCg0KLSBD YWMgdGhpbmsgdGFua3MgY3VhIHhhIGhvaSBkYW4gc3UgKGJhbyBnb20gY2FjIGNvIHNvIG5naGll biBjdXUgcGhpIGNoaW5oIHBodSB2YSBjYWMgDQpuaG9tIHhhIGhvaSwgdHJvbmcgZG8gY28gY2Fj IG5ob20gbG9pIGljaCkNCg0KLSBDYWMgdGhpbmsgdGFua3MgZGlhIHBodW9uZw0KDQpUcm9uZyBj YXUgdHJ1YyBjdWEgcXVhIHRyaW5oIGhvYWNoIGRpbmggY2hpbmggc2FjaCBjdWEgbnVvYyB0YSBo aWVuIG5heSwgbHVjIGx1b25nIHR1IA0KZHV5IGNoaWVuIGx1b2MgcXVhIGl0LiBUaGVvIHRpZXUg Y2hpIHZhIGRhbmggZ2lhIGN1YSBKLkcuIE1jR2FubiwgY2h1IG5oaWVtIHRydW9uZyANCnRyaW5o IG5naGllbiBjdXUgIkNhYyB0aGluayB0YW5rcyB2YSBuaHVuZyB4YSBob2kgY29uZyBkYW4iLCBE SCBQZW5uc3lsdmFuaWEsIE15LCANCm51b2MgdGEgaGllbiBuYXkgY2hpIGNvIDkgdGhpbmsgdGFu a3MgWzNdLg0KDQpNYXQga2hhYywgbHVjIGx1b25nIHR1IGR1eSBjaGllbiBsdW9jIGN1YSBWaWV0 IE5hbSBraG9uZyBjaGkgcXVhIGl0LCBtYSBjb24gY28gbW90IHZpIA0KdHJpIG1vIG5oYXQgdHJv bmcgcXVhIHRyaW5oIGhvYWNoIGRpbmggY2hpbmggc2FjaCwgbmhhdCBsYSBuaHVuZyBjaGluaCBz YWNoIGxvbi4gTW90IHNvIA0Kbmd1b2kgdHJvbmcgc28gaG8gdGh1b25nIGxlbiB0aWVuZyBwaGFu IGJpZW4gY2hpbmggc2FjaCwgbmh1bmcgdHJvbmcgdGluaCB0cmFuZyAic3UgZGEgDQpyb2kiLg0K DQpCYW4gdGhhbiBjYWMgbmhhIGxhbmggZGFvIG8gaGFuZyBjaGluaCBraGFjaCBjdWEgZGF0IG51 b2MgZHVvbmcgbmh1IGRhbmcgZGFtIG5oaWVtIA0KcmF0IG5oaWV1IGNodWMgbmFuZyBtb3QgbHVj OiB2dWEgdHUgZHV5IGNoaWVuIGx1b2MsIHZ1YSB0byBjaHVjIGhhbmggZG9uZyBkZSB0aHVjIHRo aSANCmNoaWVuIGx1b2MgZG8sIHZ1YSBwaGFpIGRhbSBuaGllbSBtb3Qgc28gY29uZyB2aWVjIGhh bmggY2hpbmggdGhlbiBjaG90IGN1YSBuZ3VvaSANCnF1YW4gbHkuDQoNCkNvbiBvIGhhbmcgY2h1 eWVuIGdpYSwgdmUgbWF0IGRhaSBuZ28sIGNhYyBjaHV5ZW4gZ2lhIHRhaSBjYWMgQm8sIG5nYW5o IHRydW5nIHVvbmcgDQpkYW5nIGR1b2MgZG9pIGRhaSB0aGVvIGNhY2ggbmF5Og0KDQoiTW90IHRo dSB0cnVvbmcgeGluIGdpYXUgdGVuIGtlIHJhbmcsIG9uZyBjaGkgZHVvYyBjYXAgNyB0cmlldSBk b25nIGRlIHNvYW4gdGhhbyB2YSBsYXkgeSANCmtpZW4gY2hvIG1vdCB0aG9uZyB0dSwgMTUgdHJp ZXUgZG9uZyBjaG8gbW90IG5naGkgZGluaCAoLi4uKS4gVHJvbmcga2hpIGRvLCBtb3Qgc28gY2h1 eWVuIA0KdmllbiBjaGluaCBjbyB0cmluaCBkbyBjYW8gY28gdGhlIGdpdXAgb25nIHNvYW4gdGhh byBuaHVuZyB2YW4gYmFuIHF1YW4gdHJvbmcgZG8gbGFpIA0KaHVvbmcgbHVvbmcgdGhhbmcgdm9u IHZlbiBjbyAyIHRyaWV1IGRvbmcvdGhhbmcsIGtobyBtYSBudW9pIHRoYW4gY2h1IGR1bmcgbm9p IGRlbiANCmdpYSBkaW5oLiBNb3Qgc28gbmd1b2kgZGEgY28geSBkaW5oIHJhIGRpLiBEZSBnaXUg bGFpIG5odW5nIG5oYW4gdmllbiBuYXksIG9uZyB0aHUgDQp0cnVvbmcgZGEgcGhhaSBkdWEgdmFv IG1vaSBxdWFuIGhlIHJpZW5nIGRlIHhpbiB2aWVjIGNobyB2byBjdWEgbmh1bmcgY2h1eWVuIHZp ZW4gZG8uIA0KT25nIG5vaTogIkNobyBuZW4gZHVuZyB0cmFjaCBuaHVuZyBjaGluaCBzYWNoIGN1 YSBjaHVuZyB0b2ksIG5ldSBjbyBnaSBjaHVhIGR1bmciIFs0XQ0KDQpOaG9tIFRodSBTYXUgZGEg ZG9uZyBnb3AgdGljaCBjdWMgY2hvIGNvbmcgY3VvYyBEb2kgbW9pIGN1YSBkYXQgbnVvYy4NCg0K NC4gS2hvbmcgY2hpIHZlIG1hdCBkYWkgbmdvIG1hIGNhIHZlIG1hdCB0aW5oIGNodXllbiBuZ2hp ZXAgY3VhIGx1YyBsdW9uZyBob2FjaCBkaW5oIA0KcXV5ZXQgc2FjaCBjdW5nIGNvIGJhdCBjYXAu DQoNCk1vdCBtYXQsIGhvIGN1bmcgcGhhaSBkYW0gbmhpZW0gY2h1YyBuYW5nIGN1YSAibmh1bmcg Y29uIG5ndW9pIHR1IGR1eSI6IHR1IGR1eSANCmNoaWVuIGx1b2MsIHNvYW4gdGhhbyBjaGluaCBz YWNoLCBuZ2hpZW4gY3V1IGtob2EgaG9jLCB0aGFtIG11dSBjaG8gbGFuaCBkYW8sIG5odW5nIA0K bWF0IGtoYWMsIHZhbiBsYSBtb3Qga2hhdSBtYXQgdHJvbmcgY2h1b2kgaGFuaCBjaGluaCwgaG8g cGhhaSB0aHVjIGhpZW4gY2h1YyBuYW5nIHZhbiANCmhhbmggY2FjIHRodSB0dWMgdHJvbmcgY29u ZyB2aWVjIGJpbmggdGh1b25nIGN1YSBjYWMgQm8uDQoNCkRvIGxhIGNodWEga2UgZGVuIG11YyBk YWkgbmdvIHF1ZSBxdWF0IG5odSB0cmVuLCBobyBraG9uZyB0aGUga2hvbmcgImxhbSB0aGVtIGJl biANCm5nb2FpIiBkZSBob2FuIHRoYW5oIHRyYWNoIG5oaWVtIHZvaSBnaWEgZGluaC4gSG8gZ2Fu IG5odSBibyByb2kgcXVhbiBseSBjaGllbiBsdW9jLCBzYSANCnZhbyBxdWFuIGx5IHR1bmcgZHUg YW4gY3UgdGhlLg0KDQpLaGkgdmlldCBjYWMgZHUgYW4gY2hpZW4gbHVvYywgaG8gZ2FuIG5odSBj aGkgYmlldCBkZW4gQm8gY3VhIG1pbmggbWEga2hvbmcgdGhhbSB2YW4geSANCmtpZW4gY3VhIGNh YyBuaG9tIHhhIGhvaSBjbyBsaWVuIHF1YW4gKHZhIG1hdCBraGFjLCBjYWMgbmhvbSB4YSBob2kg bmF5IGN1bmcgZGFuZyBnYXAgDQp2YW4gZGUgY2FuIGR1b2MgY2F1IHRydWMgbGFpKSwga2hvbmcg dGhhbSB2YW4geSBraWVuIGN1YSBCbywgbmdhbmgga2hhYywga2hvbmcgdGhhbSANCnZhbiB5IGtp ZW4gdHUgY2FjIHRydW9uZyBkYWkgaG9jLCB2aWVuIG5naGllbiBjdXUuDQoNCkRvIGxhIGxpIGRv IFZpZXQgTmFtIGJpIGxhbSB2YW8ga2h1bmcgaG9hbmcgbyBraGF1IGhvYWNoIGRpbmggY2hpbmgg c2FjaCwga2hhdSBtYXQgDQpjb3QgdHUuIE8gaGF1IGhldCBuaHVuZyBjaGllbiBsdW9jIHF1YW4g dHJvbmcgY3VhIFZpZXQgTmFtLCBuaHUgY2hpZW4gbHVvYyBiaWVuLCBjaGllbiANCmx1b2MgY29u ZyBuZ2hpZXAsIGNoaWVuIGx1b2MgZ2lhbyBkdWMuLi4sIGNodW5nIHRhIGNvIHRoZSB0aGF5LCBW aWV0IE5hbSBjaHVhIHRob2F0IGtob2kgDQp0dSBkdXkga2UgaG9hY2gsIHR1IGR1eSB0cmVuIGNv IHNvIG5odW5nIGNoaSB0aWV1IHRoYXkgdmkgbmh1bmcgbXVjIHRpZXUsIGxvYWkgdHUgZHV5IGRh IA0Ka2hpZW4gY2h1IG5naGlhIHhhIGhvaSB0aGF0IGJhaSB0aGUga2kgdHJ1b2MuDQoNCkNodWEg YmlldCBsYW0gY2h1IHN1IHRoYXQgYmFpDQogDQpEZSB0aGF5IGhldCBiYW4gY2hhdCB2YSBoYXUg cXVhIGN1YSB0YXQgY2Egbmh1bmcgZGlldSB0cmVuLCBraG9uZyBzdSBkdW5nIGx1YyBsdW9uZyAN Cm5naGllbiBjdXUgY2hpZW4gbHVvYyBjaHV5ZW4gbmdoaWVwIHZhIGtob25nIHhheSBkdW5nIGx1 YyBsdW9uZyBuYXksIGNoaSBjYW4gbmhpbiB2YW8gDQptb3QgdmFpICJtYXUgbmdoaWVuIGN1dSIg ZGllbiBoaW5oLg0KDQpEdSBhbiBkYXUgdGllbiBkdW9jIGNvbmcga2hhaSwgRGUgYW4gMTEyLCAi VGluIGhvYyBob2EgcXVhbiBseSBoYW5oIGNoaW5oIE5oYSBudW9jIA0KZ2lhaSBkb2FuIDIwMDEt MjAwNSIsIGxhIG1vdCB0cm9uZyBuaHVuZyB2aSBkdSB0aWV1IGJpZXUuIER1IGFuIG5heSBsYW0g VmlldCBOYW0gdGlldSANCnRvbiAxLjE1OSw2IHR5IGRvbmcsIG5odW5nIGtldCBxdWEgZHV5IG5o YXQgdGh1IGR1b2MgbGEgbmh1bmcgbmd1b2kgcXVhbiBseSBkZSBhbiBwaGFpIA0KdmFvIHR1Lg0K DQpLaG9uZyBjbyBtb3QgdGhpbmsgdGFuayBuYW8gZGFtIG5oaWVtIGtoYXUgZGF1IHRpZW4sIGto YXUgbmdoaWVuIGN1dSBzYWNoIGx1b2MgdmEgDQp2YWNoIG1vdCBsbyB0cmluaCBoYW5oIGRvbmcg Y3UgdGhlIGR1YSB0cmVuIHNhY2ggbHVvYyBheSwgY2hvIG5lbiwgbmh1IG5oYW4geGV0IGN1YSBU aWVuIA0Kc2kgTmd1eWVuIFRyb25nIC0gbmd1eWVuIENoYW5oIHZhbiBwaG9uZyBCYW4gY2hpIGRh byBxdW9jIGdpYSB2ZSBDTlRULCAibmh1bmcgdmFuIA0KZGUgY3VhIGhlIHRob25nIGxvbiBraG9u ZyBkdW9jIHBoYW4gdGljaCIsICJ0cmllbiBraGFpIG1vdCB2aWVjIGxvbiBtYSBraG9uZyBjaHVh biBiaSANCmt5IHZlIG1vaSBtYXQiIFs1XS4NCg0KSGUgcXVhIGxhLCBuZ3VvaSBxdWFuIGx5IERl IGFuIDExMiwgZHVvbmcgdGhvaSBsYSBDaGFuaCBWYW4gcGhvbmcgQ2hpbmggcGh1LCB4YWkgdGll biANCnF1b2MgZ2lhIGtob25nIGdpb25nIGNhY2ggY3VhIG1vdCBudW9jIHZhbiBtaW5oLCBtYSBn aW9uZyBraWV1IHhhaSB0aWVuIGN1YSBuaHVuZyANCm9uZyBob2FuZyBBIFJhcCB0cm9uZyB0cnV5 ZW4gIk5naGluIGxlIG1vdCBkZW0iIFs2XSwgY29uIGNhY2ggdG8gY2h1YyB0aWVuIHRyaW5oIHJh IA0KcXV5ZXQgZGluaCBjdWEgaG8gdGhpIGhvaSBnaW9uZy4uLiBtb3QgaG9pIGtpbiBbN10uDQoN ClR1eSB2YXksIHRoYXQgYmFpIGNvIHRpbmggY2hpZW4gbHVvYyBuYW0gbyBraGF1ICJjb24gbmd1 b2kiIGN1YSBEdSBhbi4gVHVuZyByYSBtb3QgDQpuZ3VvbiB0YWkgY2hpbmgga2hvbmcgbG8gZGUg dHJhbmcgYmkgY2FjIHBodW9uZyB0aWVuIGRpZW4gdHUgY2hvIGJvIG1heSBoYW5oIGNoaW5oIGN1 YSANCm5oYSBudW9jLCB0cm9uZyBraGkgaGUgdGhvbmcgY29uIG5ndW9pIHZhbiBoYW5oIGhlIHRo b25nIHRoaWV0IGJpIGRvIHRoaSB2YW4gbmh1IGN1LCBjaGkgDQpxdWVuIHZvaSBtbyBoaW5oIHZh biBoYW5oIGN1LCB0aGkgaGUgdGhvbmcgdGhpZXQgYmkgImhpZW4gZGFpIiBjdW5nIHZvIGR1bmcu IEtoaSBtb3QgdmkgDQp0dW9uZyB0cmFvIG5odW5nIGNoaWVuIGhhbSBraG9uZyBsbyBjaG8gbW90 IGRvaSBxdWFuIGNodWEgdHVuZyBiaWV0IHF1YSwgdGhpIGNoaWVuIGhhbSANCmNhbmcgbWFuaCBi YW8gbmhpZXUsIHRoYXQgYmFpIGNhbmcgbmFuZyBuZSBiYXkgbmhpZXUuDQoNClRoYXQgYmFpIGxh IG1lIHRoYW5oIGNvbmcsIG5ldSBjb24gbmd1b2kgZHUgbmd1b24gbHVjIHRyaSB0dWUgZGUgbGFt IGNodSBzdSB0aGF0IGJhaSBheS4gDQpOZ3VvYyBsYWksIHRoYXQgYmFpIGNoaSBjbyB0aGUgbGEg bWUgY3VhIHRoYXQgYmFpLiBOYW0gMTk1Mywgc2F1IHRoYXQgYmFpIGN1YSBjaGllbiBkaWNoIA0K TmEgU2FuLCBEYWkgdHVvbmcgVm8gTmd1eWVuIEdpYXAgdGFwIGhvcCBuaHVuZyBzaSBxdWFuIGdp b2kgbmhhdCBjdWEgbWluaCwgbGFwIG1vdCANCm5ob20gbmdoaWVuIGN1dSB2ZSBuZ2hlIHRodWF0 IHRpZXUgZGlldCB0YXAgZG9hbiBjdSBkaWVtLiBOaHVuZyBwaGF0IGtpZW4gdHJpIHRodWMgY3Vh IA0KbmhvbSBuYXkgbGEgbW90IHRyb25nIG5odW5nIG5lbiB0YW5nIHRyaSB0dWUgZ2l1cCBEYWkg dHVvbmcsIHRyb25nIGNoaWVuIGRpY2ggRGllbiBCaWVuIA0KUGh1IHNhdSBkbywgdnVvdCBsZW4g dHJlbiBsb2kga2h1eWVuICJkYW5oIG5oYW5oIHRoYW5nIG5oYW5oIiBiYW5nIGNoaWVuIHRodWF0 ICJiaWVuIA0Kbmd1b2kiIGNvIHRpbmggZHV5IHkgY2hpIGN1YSBjYWMgY28gdmFuIFRydW5nIFF1 b2MsIHZhIGR1YSByYSBuaHVuZyBxdXlldCBkaW5oIHNhbmcgDQpzdW90LCB0YW8gbmVuIGNoaWVu IHRoYW5nIGx1bmcgbGF5IGN1YSBkYW4gdG9jLg0KDQpEZW4gZGF1IHRoZSBreSBYWEksIHNhdSB0 aGF0IGJhaSBjdWEgRHUgYW4gMTEyLCBraG9uZyBtb3QgdGhpbmsgdGFuayBuYW8gZHVvYyB0aGFu aCANCmxhcCBkZSBuZ2hpZW4gY3V1IHRoYXQgYmFpIG5vaSB0cmVuIGRlIHJ1dCBraW5oIG5naGll bS4gVHUgZG8gZGVuIG5heSwgVmlldCBOYW0gdGllcCB0dWMgDQp0aHVjIGhpZW4gaGFuZyBsb2F0 IGtlIGhvYWNoIGtob25nIGxvIG1hIGtob25nIGNvIG5naGllbiBjdXUgY2hpZW4gbHVvYyBkaSBr ZW06IHRhcCANCmRvYW4ga2luaCB0ZSwgbW8gcm9uZyBIYSBOb2ksIHRoYW5oIHBobyB2ZW4gU29u ZyBIb25nLCBkdW9uZyBzYXQgY2FvIHRvYy4uLg0KDQpEbyBsYSBjaHVhIGtlIG5odW5nICJjaGll biBsdW9jIiBtb2kgdGluaCBtb3QgbmhhIG1heSB4aSBtYW5nLCBtb3QgbmhhIG1heSBkdW9uZywg DQptb3QgY2FuZyBiaWVuLCBtb3QgdHJ1b25nIGRhaSBob2MsIHZhIEdzLiBOZ3V5ZW4gTGFuIER1 bmcgY29uIGNobyBiaWV0IGxhIHRyb25nIG5nYW5oIA0KY29uZyBuZ2hlIHNpbmggaG9jICJjaHVu ZyB0YSBkYXUgdHUgY2hvIG1vaSB0aW5oIG1vdCBwaG9uZyBudW9pIGNheSBtbyByYXQgdG9uIGtl bSBtYSANCm5oaWV1IG5vaSBjaGFuZyBiaWV0IGR1bmcgbGFtIGdpIiBbOF0NCg0KRGVuIGdpdWEg bmFtIDIwMTAsIGRvIHN1IGRvIHZvIGN1YSB0YXAgZG9hbiBWaW5hc2hpbiwgY2FjIGNodXllbiBn aWEgY3VhIFZpZXQgTmFtIA0KdGllbiBoYW5oIHBoYW4gdGljaCBtbyBoaW5oICJ0YXAgZG9hbiBr aW5oIHRlIG5oYSBudW9jIiBtb3QgY2FjaCB0b2FuIGRpZW4gbyB0YW0gY2hpZW4gDQpsdW9jLiBD YXUgaG9pIGRhdCByYSBsYSwgdHJ1b2Mga2hpIHJhIHF1eWV0IGRpbmgsIHRhaSBzYW8gQ2hpbmgg cGh1IGtob25nIHRpbSBraWVtIG5odW5nIA0Kbmh1bmcgcGhhbiB0aWNoIGF5Pw0KDQpUdSBjaHUg dHJpIHR1ZQ0KDQpNb3Qga2hpIGtob25nIHhheSBkdW5nIHZhIGtob25nIHN1IGR1bmcgbHVjIGx1 b25nIHR1IGR1eSBjaGllbiBsdW9jIGNodXllbiBuZ2hpZXAsIA0KdGhpIGhlIHF1YSB0YXQgeWV1 IGxhLCBxdWEgdHJpbmggeGF5IGR1bmcgY2hpbmggc2FjaCBiaSBsZSB0aHVvYyB2YW8gbmdvYWkg YmFuZy4NCg0KVmkgZHUgdGlldSBiaWV1IGxhIGNoaWVuIGx1b2MgcGhhdCB0cmllbiBnaWFvIHRo b25nIHZhbiB0YWkgY3VhIG51b2MgdGEuIFRyb25nIHN1b3QgaG9uIDEwIA0KbmFtIHF1YSwgbmd1 b2kgeGF5IGR1bmcgY2hpZW4gbHVvYyBnaWFvIHRob25nIHRvYW4gcXVvYyBjaG8gVmlldCBOYW0g bGEgSklDQSBjdWEgDQpOaGF0LCB0dSBWaXRyYW5zcyAxIGRlbiBWaXRyYW5zcyAyLiBWYSBWaWV0 IE5hbSBkZSB4dWF0IE5oYXQgY2hvIHZheSBPREEgZGUgeGF5IGR1bmcgDQp0dW5nIHRpZXUgbXVj IHRyb25nIGNhaSB0b25nIHRoZSBjaHVuZyBheS4NCg0KTmh1IHZheSwgcGhpYSBOaGF0IGxhbSBj aHUgdHUgQSBkZW4gWjoga2hvbmcgY2hpIHZvbiB2YXksIHRpZW4gbGFpLCBreSB0aHVhdCwgdGhp IHBoYW4gDQp4YXkgZHVuZywgbWEgY2EgdHJpIHRodWMsIGhpZXUgYmlldCB2ZSB0aHVjIHRpZW4g Y3VhIGNoaW5oIGNodW5nIHRhLCB0dSBrZSBob2FjaCB0b25nIHRoZSANCmNodW5nIGRlbiB0dW5n IGR1IGFuIGN1IHRoZS4NCg0KVmlldCBOYW0gZ2FuIG5odSBjaGFuZyBwaGFpIGxhbSBnaS4gQ2hp IGNhbiBreSB2YW8gdG8gZ2lheSB2YXkgbm8gdmEgY2F1IGR1b25nIGN1IHRoZSANCm1vYyBsZW4u DQoNCkRheSBsYSBtb3QgIm1hdSBuZ2hpZW4gY3V1IiBkaWVuIGhpbmggZGUgVmlldCBOYW0gbmhh biB0aHVjIGNoaW5oIHhhYyB0aHVjIHRyYW5nIGN1YSANCmNoaW5oIG1pbmguIEtob25nIGFpIGNv IHRoZSBwaHUgbmhhbiBkb25nIGdvcCBjdWEgdHUgdmFuIG51b2MgbmdvYWkgZG9pIHZvaSBzdSBw aGF0IA0KdHJpZW4gY3VhIFZpZXQgTmFtLiBUdXkgbmhpZW4sIG5nYXkgY2EgdHJvbmcgdHJ1b25n IGhvcCBwaGlhIHR1IHZhbiBudW9jIG5nb2FpIG5naGllbiANCmN1dSBtb3QgY2FjaCBraG9hIGhv YywgZGF0IGRlbiBuaHVuZyBrZXQgcXVhIG5naGllbiBjdXUgY29uZyB0YW0sIHRodWMgc3Ugdmkg bG9pIGljaCANCmN1YSAiZGFuIGJhbiB4dSIsIHRoaSBkaWV1IG5heSB2YW4ga2hvbmcgdGhlIGNo YXAgbmhhbiBkdW9jLiBCb2kgbGUsIGRpZXUgbmF5IGtob25nIGdpIA0Ka2hhYyBob24gbGEgc3Ug Y28gbGFwIHZhIG5vIGxlIHZlIG1hdCB0cmkgdHVlIGN1YSBjaHVuZyB0YS4NCg0KS2hvbmcgbW90 IGRhbiB0b2MgY2hhbSB0aWVuIG5hbyBjbyB0aGUgaGllbiBkYWkgaG9hIHRoYW5oIGNvbmcgYmFu ZyAiY2FpIGRhdSIgY3VhIGtlIA0Ka2hhYyBtYSBraG9uZyBjbyAiYm8gbmFvIiBjdWEgcmllbmcg bWluaC4NClR1IGNodSB0cm9uZyB0cmkgdHVlIGxhIGNvIHNvIGRlIHR1IGNodSB0cm9uZyBraW5o IHRlLCB2YSB0dSBjaHUgdHJvbmcga2luaCB0ZSBsYSBuZW4gdGFuZyANCmN1YSBkb2MgbGFwIGNo aW5oIHRyaSwgY2hvIG5lbiBzdSBubyBsZSB0cm9uZyB0cmkgdHVlIHBoYWkgZHVvYyBjaGFtIGR1 dC4gDQoNClsxXSBUYWkgY2F1IHRydWMgdGllbiB0cmluaCB4YXkgZHVuZyBxdXlldCBzYWNoDQpo dHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEwLTA3LTA3LXRhaS1jYXUtdHJ1Yy10aWVuLXRy aW5oLXhheS1kdW5nLXF1eWV0LXNhY2gNClsyXSBYaW4geGVtOiAiVk4gY28gcXV5IHRyaW5oIGxh bSBjaGluaCBzYWNoIGNvIG1vdCBraG9uZyBoYWkiLA0KaHR0cDovL3R1YW52aWV0bmFtLm5ldC92 bi1jby1xdXktdHJpbmgtbGFtLWNoaW5oLXNhY2gtY28tbW90LWtob25nLWhhaQ0KWzNdIFhlbTog SmFtZXMgRy4gTWNHYW5uLCBUSEUgR0xPQkFMICJHTy1UTyBUSElOSyBUQU5LUyIsIFRoZSBMZWFk aW5nIFB1YmxpYyBQb2xpY3kgUmVzZWFyY2ggT3JnYW5pemF0aW9ucyBJbiBUaGUgV29ybGQsIFRo aW5rIFRhbmtzIGFuZCBDaXZpbCBTb2NpZXRpZXMgUHJvZ3JhbSwgVW5pdmVyc2l0eSBvZiBQZW5u c3lsdmFuaWEsIDIwMDgsIHAuIDE1DQpbNF0gVHUgR2lhbmcsIEJhdCBvbiB2aSBtbyB2YSBjbyBo b2kgdGFpIGNvIGNhdSBodHRwOi8vd3d3LnNndHQuY29tLnZuL2RldGFpbDIzLmFzcHg/bmV3c2lk PTY0NzcwJmZsZD1IVE1HLzIwMTAvMDMyNS82NDc3MA0KWzVdIFhlbTogRGUgYW4gMTEyIHRoYXQg YmFpOiBMYW5nIHBoaSBoYW5nIHRyYW0gdGkgZG9uZw0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdGlu bm9pYmF0LzIwMDYvMDQvNTYwMDUyLw0KWzZdIFhlbTogTmh1bmcgY2hpZXUgJ3hhaSB0aWVuIG5o dSBudW9jJyBjdWEgRGUgYW4gMTEyIGh0dHA6Ly93d3cudGllbnBob25nLnZuL1RpYW55b24vSW5k ZXguYXNweD9BcnRpY2xlSUQ9MTAwMDk0JkNoYW5uZWxJRD0zDQpbN10gWGVtOiAiVnVhIiB0aGFv IHR1bmcgdHJvbmcgRGUgYW4gMTEyDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvVnVh LXRoYW8tdHVuZy10cm9uZy1kZS1hbi0xMTIvMjAwNzkvNTU3NDgubGFvZG9uZw0KWzhdIDYwMCB0 cmlldSBVU0QgY28gdnVjIGRheSBub2kgbmdhbmggY29uZyBuZ2hpZXAgdmkgc2luaCB2YXQgaG9j Pw0KaHR0cDovL3NndHQudm4vR29jLW5oaW4vMTEzMDk3LzYwMC10cmlldS1VU0QtY28tdnVjLWRh eS1ub2ktbmdhbmgtY29uZy1uZ2hpZXAtdmktc2luaC12YXQtaG9jLmh0bWwgDQoNCmh0dHA6Ly92 aWV0YmFvLnZuL1hhLWhvaS9EZS1hbi0xMTItdGhhdC1iYWktTGFuZy1waGktaGFuZy10cmFtLXRp LWRvbmcvNDUxOTA4NzQvMTU3LyBNYWkgUGh1b25nMTMvNC8yMDA2LCAwMDo0NCBHTVQrNw0KDQpU aHUgdHVvbmc6IERlIGFuIDExMiB0aGF0IGJhaSAtIExhbmcgcGhpIGhhbmcgdHJhbSB0aSBkb25n IQ0KDQpEZSBhbiAiVGluIGhvYyBob2EgcXVhbiBseSBoYW5oIGNoaW5oIE5oYSBudW9jIGdpYWkg ZG9hbiAyMDAxLTIwMDUiIC0gZHVvYyBUaHUgDQp0dW9uZyBDaGluaCBwaHUgYmFuIGhhbmggdGhl byBRdXlldCBkaW5oIDExMiBuZ2F5IDI1LzcvMjAwMSAtIGRhIGtldCB0aHVjLiBOaGluIGxhaSAN CmtldCBxdWEgY3VhIGRlIGFuIG5heSAoRGUgYW4gMTEyKSwgbmhpZXUgbmd1b2kga2hvbmcga2hv aSB0aWVjIG51b2kga2hpIG1vdCBraG9hbiBuZ2FuIA0Kc2FjaCBOaGEgbnVvYyBkYSBsYW5nIHBo aSBtYSBraG9uZyB0aHUgZHVvYyBrZXQgcXVhIG5hbyBuaHUgbXVjIHRpZXUgYmFuIGRhdS4NCg0K Iktob25nIHBoYW4gbWVtIG5hbyByYSBob24iDQoNCjIgbXVjIHRpZXUgZGFuZyBjaHUgeSBuaGF0 IHRyb25nIHNvIDYgbXVjIHRpZXUgY3UgdGhlIGN1YSBEZSBhbiAxMTIgbGEgeGF5IGR1bmcgbW90 IGhlIA0KdGhvbmcgY2FjIHRydW5nIHRhbSB0aWNoIGhvcCB2YSBwaGF0IHRyaWVuIG1vdCBzbyBw aGFuIG1lbSBkdW5nIGNodW5nLiBUcnVuZyB0YW0gdGljaCANCmhvcCBiYW8gZ29tIGNhYyB0cnVu ZyB0YW0gdGhvbmcgdGluIGR1b2MgZGllbiB0b2FuIGhvYSBjdWEgY2FjIHRpbmgsIHRoYW5oIHBo by4gS2luaCANCnBoaSB4YXkgZHVuZyBtb3QgdHJ1bmcgdGFtIG5odSB2YXkga2hvYW5nIDQgdGkg ZG9uZy4gRGVuIGhldCBuYW0gMjAwNSwgaGF1IGhldCBjYWMgDQp0aW5oLCB0aGFuaCB0cm9uZyBj YSBudW9jIGRldSBkYSBkdW9jIGNoaSB0aWVuIGRlIG11YSBtYXkgbW9jLCBub2kgbWFuZy4gVHJ1 bmcgdGFtIGRhIA0Kbmh1bmcgdmllYyB0aWNoIGhvcCB0aG9uZyB0aW4gdGhpIGNodWEgY28gZGlh IHBodW9uZyBuYW8gbGFtIGR1b2MuIE5nYXkgY2EgVFAuSENNIA0KY3VuZyBjaHVhIHRoZSBsYW0g ZHVvYyB2aWVjIHRpY2ggaG9wIHRob25nIHRpbiBjdWEgdGF0IGNhIGNhYyBxdWFuIGh1eWVuLCBi YW4gbmdhbmggdHJlbiANCmRpYSBiYW4gcGh1YyB2dSBjaG8gdmllYyBxdWFuIGx5IHRoZW8gZGUg YW4uIFNvIHRpZW4gaG9uIDIwMCB0aSBkb25nIGRvIG5nYW4gc2FjaCBkYXUgdHUgDQpjaG8gbXVj IHRpZXUgbmF5IHhlbSBuaHUgbmVtIHF1YSBjdWEgc28uDQoNClZvaSBtdWMgdGlldSBwaGF0IHRy aWVuIG1vdCBzbyBwaGFuIG1lbSBkdW5nIGNodW5nLCBCYW4gZGlldSBoYW5oIERlIGFuIDExMiAo QkRIIA0KMTEyKSBkYSBreSBob3AgZG9uZyB0cmllbiBraGFpIDMgcGhhbiBtZW0gZHVuZyBjaHVu ZyBjaG8gY2FjIHRpbmgsIHRoYW5oIHBobyB0cnVjIA0KdGh1b2MgdHJ1bmcgdW9uZyB0dSB0aGFu ZyAyLjIwMDUuIERvIGxhIHBoYW4gbWVtIGhlIHRob25nIHRpbiB0b25nIGhvcCBraW5oIHRlIHhh IGhvaTsgDQpoZSBxdWFuIGx5IHZhbiBiYW4gdmEgaG8gc28gY29uZyB2aWVjOyB0cmFuZyB0aG9u ZyB0aW4gZGllbiB0dSBwaHVjIHZ1IGRpZXUgaGFuaCAod2ViKS4gDQpUaW5oIGRlbiBuYXkgY28g NDAgdGluaCwgdGhhbmggZGEgY2FpIGRhdCBjYSAzIHBoYW4gbWVtIGR1bmcgY2h1bmcgbmF5IHZv aSBraW5oIHBoaSANCmhvbiAxODAgdGkgZG9uZy4gVGhlIG5odW5nLCBtb3QgbnVhIGNhYyB0aW5o IHRoYW5oIGRvIHhhYyBuaGFuIHR5IGxlIHZhbiBoYW5oIGR1b2MgY2hpIA0KZGF0IHR1IDM0IC0g MzYlLiBNb3QgY2h1eWVuIGdpYSB0cm9uZyBuZ2FuaCBDTlRUIG5oYW4geGV0OiAiS2hvbmcgY28g cGhhbiBtZW0gbmFvIA0KcmEgaG9uIi4gVGFpIFRQLkhDTSwgdHJ1b2Mga2hpIDMgcGhhbiBtZW0g ZHVuZyBjaHVuZyBkdW9jIGNhaSBkYXQsIG1vdCBzbyBxdWFuIA0KaHV5ZW4gdmEgc28gbmdhbmgg ZGEgc3UgZHVuZyBjYWMgdHJhbmcgZGlldSBoYW5oIHRhYyBuZ2hpZXAgdmEgcXVhbiBseSB2YW4g YmFuIHZvaSBob24gDQoyMCBwaGFuIG1lbSBraGFjIG5oYXUuIENhYyB0cmFuZyBkaWV1IGhhbmgg bmF5IGNvIHV1IGRpZW0gbGEgdGljaCBob3AgZHVvYyBjYWMgcGhhbiANCm1lbSBkYSB2YSBzZSB0 cmllbiBraGFpIHZhbyBtb3QgdHJhbmcgZGlldSBoYW5oIGRlIHF1YW4gbHkgdGFwIHRydW5nLiBU cm9uZyBraGkgZG8sIA0KdHJhbmcgVGhvbmcgdGluIGRpZW4gdHUgcGh1YyB2dSBkaWV1IGhhbmgg Y3VhIEJESCAxMTIgY2hpIGNvIGtoYSBuYW5nIGxpZW4ga2V0IChsaW5rKSANCnZvaSBjYWMgdHJh bmcgdGluIGtoYWMgbmh1bmcga2hvbmcgY28ga2hhIG5hbmcgdGljaCBob3AgY2FjIHBoYW4gbWVt IHVuZyBkdW5nLg0KDQpUaGFuZyA0LzIwMDUsIFNvIEJ1dSBjaGluaCAtIFZpZW4gdGhvbmcgKEJD VlQpIFRQLkhDTSBkYSBsaWVuIHR1YyBndWkgY29uZyB2YW4gY2hvIA0KQm8gQkNWVCB2ZSB2aWVj IGtob25nIHRoZSBzdSBkdW5nIGNhYyBwaGFuIG1lbSBkdW5nIGNodW5nIG5heS4gU28gQkNWVCBU UCBjaG8gDQpyYW5nIHBoYW4gbWVtIGR1bmcgY2h1bmcgY3VhIEJESCAxMTIgZG8gcXVhIGRvbiBn aWFuIG5lbiBraG9uZyB0aGUgdGhheSB0aGUgZHVvYyANCnBoYW4gbWVtIGRhbmcgZHVvYyBzdSBk dW5nIHRhaSBjYWMgZG9uIHZpIChWYW4gcGhvbmcgVUJORCBUUC5IQ00gZGFuZyBzdSBkdW5nIA0K cGhhbiBtZW0gcXVhbiBseSB2YW4gYmFuIHZhIGhvIHNvIGNvbmcgdmllYyBkbyB0byBjaHVjIFVO RFAgdGFpIHRybywgc2F1IGtoaSB0cmllbiANCmtoYWkgdGhpIGRpZW0gNiB0aGFuZyBkYSBkYXAg dW5nIG5odSBjYXUgcXVhbiBseSBraG9pIGx1b25nIHZhbiBiYW4sIGhvIHNvIGNvbmcgdmllYyBy YXQgDQpsb24gdmEgcGh1YyB0YXApLiBDb25nIHZhbiBzbyAxNjAgZG8gR2lhbSBkb2MgU28gQkNW VCBMZSBNYW5oIEhhIGt5LCBnaGkgcm86ICJQaGFuIA0KbWVtIGR1bmcgY2h1bmcgY3VhIEJESCAx MTIgY2hpIHRodWMgaGllbiBkdW9jIGNodWMgbmFuZyBkaWVuIHR1IGhvYSBzbyBjb25nIHZhbiAN CnZhby1yYS4gQ2hpIHBoaSB0cmllbiBraGFpIGNobyBtb2kgcGhhbiBtZW0gdHJlbiBkaWEgYmFu IHRoYW5oIHBobyBsYSAyLDEgdGkgZG9uZy4gTmh1IA0KdmF5LCB2aWVjIHRyaWVuIGtoYWkgY2Fj IHBoYW4gbWVtIGR1bmcgY2h1bmcgbmF5IHJhdCB0b24ga2VtIHRyb25nIGtoaSBoaWV1IHF1YSBy YXQgDQp0aGFwIi4gRG8gZG8sIFNvIEJDVlQgZGEga2llbiBuZ2hpIG5lbiB0YW0gbmd1bmcgdHJp ZW4ga2hhaSBkaWVuIHJvbmcgY2FjIHBoYW4gbWVtIA0KbmF5IHRhaSBUUC5IQ00gbWEgY2hpIHRy aWVuIGtoYWkgdGhpIGRpZW0gdGFpIDEtMiBkb24gdmkgZGUgeGVtIHhldCwgZGFuaCBnaWEgbGFp Lg0KDQpCYW4gZGlldSBoYW5oIHlldSBrZW0/DQoNClRyb25nIEhvaSBuZ2hpIHRvbmcga2V0IGNv bmcgdGFjIGNhaSBjYWNoIGhhbmggY2hpbmggdmFvIGRhdSB0aGFuZyA0IHZ1YSBxdWEsIFBobyBj aHUgDQp0aWNoIHRodW9uZyB0cnVjIFVCTkQgVFAuSENNIE5ndXllbiBUaGllbiBOaGFuIGRhIHRo dWEgbmhhbiB2aWVjIHRyaWVuIGtoYWkgRGUgYW4gDQoxMTIgY2h1YSBtYW5nIGxhaSBoaWV1IHF1 YSBjYW8gZG8gQkRIIGtob25nIGNvIGNodXllbiBtb24sIGNodWEgY28gY28gcXVhbiBxdWFuIGx5 IA0KY2h1eWVuIG5nYW5oLiBDb24gbmhvIHRydW9jIGRvLCBtb3QgZHUgYW4gY3VuZyB0ZW4gY3Vu ZyBkdW9jIHRyaWVuIGtoYWkgdHJvbmcgZ2lhaSANCmRvYW4gMTk5Ni0xOTk4IHZvaSBraW5oIHBo aSBraG9hbmcgMTUwIHRpIGRvbmcgbmh1bmcgY3VuZyBraG9uZyB0aHUgZHVvYyBrZXQgcXVhIGdp LiANCkR1b25nIG5odSBiYWkgaG9jIHRoYXQgYmFpIGRvIGNodWEgZHVvYyB4ZW0geGV0IGt5IGNh bmcuIFRpZW4gc2kgTmd1eWVuIFRyb25nIJYgDQpuZ3V5ZW4gQ2hhbmggdmFuIHBob25nIEJhbiBj aGkgZGFvIHF1b2MgZ2lhIHZlIENOVFQgLSBuaGFuIHhldDogIk5nYXkgdHUgZGF1LCBraGkgDQpz YXAgdHJpZW4ga2hhaSBEZSBhbiAxMTIsIHRvaSBkYSBub2kga2hvbmcgbmhpbiB0aGF5IGtoYSBu YW5nIHRoYW5oIGNvbmcgY3VhIGR1IGFuIGRvIA0Kbmh1bmcgYXUgdHJpIGtoaSB2YSBjaGFtIG5o dW5nIHZhbiBkZSBjdWEgaGUgdGhvbmcgbG9uIGtob25nIGR1b2MgcGhhbiB0aWNoIG5naGllbSAN CnR1Yy4gQ2h1bmcgdGEgY28gbW90IHVvYyBtbyBxdWEgbG9uIG1hIGxhaSBraG9uZyBoaWV1IGhl dCBuaHVuZyBraG8ga2hhbiBjdWEgbm8uIERlIA0KYW4gMTEyIHZ1b3QgcXVhIHRhbSB0cmluaCBk byBoYW5oIGNoaW5oIGN1YSBudW9jIHRhIGN1bmcgbmh1IHF1YSB0YW0gY3VhIG5odW5nIG5ndW9p IA0KdGh1YyBoaWVuIG5vLiBLaGkgdHJpZW4ga2hhaSBtb3QgdmllYyBsb24gbWEga2hvbmcgY2h1 YW4gYmkga3kgdmUgbW9pIG1hdCB0aGkgdGhhdCBiYWkgbGEgY2h1eWVuIHRhdCB5ZXUiLg0KDQpo dHRwOi8vd3d3Mi5sYW9kb25nLmNvbS52bi9Ib21lL0hhdS1waGEtc2FuLURlLWFuLTExMi1QaGFu LWN1bmctbGFuZy1waGktcGhhbi1tZW0tdm8tZHVuZy8yMDA3OS81NTU3OC5sYW9kb25nIDE3LzA5 LzIwMDcgODoyMiBBTQ0KDQpUaHUgdHVvbmc6IEhhdSBwaGEgc2FuIERlIGFuIDExMiAtIFBoYW4g Y3VuZyBsYW5nIHBoaSwgcGhhbiBtZW0gdm8gZHVuZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL2NoaW5odHJpLzIwMTAxMC9Tb3QtcnVvdC12b2ktY2FpLWNhY2gtOTQxOTA5LyAxMDo1Nywg VGh1IFR1LCAxMy8xMC8yMDEwIChHTVQrNykNCg0KVGh1IHR1b25nOiBOZ3VvaSBkYW4gc290IHJ1 b3Qgdm9pIGNhaSBjYWNoIA0KDQpDYSBxdWFuIGNodWMgQm8gTm9pIHZ1IC0gY28gcXVhbiBDaGlu aCBwaHUgY2h1IHRyaSBjYWkgY2FjaCBoYW5oIGNoaW5oIChDQ0hDKSwgbGFuIA0KZGFpIGRpZW4g MjMgdGluaCwgdGhhbmggcGhpYSBCYWMgY28gbWF0IG8gSGEgTG9uZyBuZ2F5IDEyLzEwIGRldSB0 byByYSBzb3QgcnVvdCB2b2kgdG9jIA0KZG8gY2FpIGNhY2ggY3VuZyBuaHUgbXVjIGRvIGRhdSB0 dSB0aWVuIGJhYyB2YW8gY29uZyBjdW9jIG5heS4gVGllbiBsdW9uZyB2YW4gbGEgYnVjIHh1YyBs b24gbmhhdC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0 Ni8yMDEwMTExMDAyMjY0NS5hc3B4IE5ndXlldCBNaW5oIDEwLzExLzIwMTAgMjoyNiANCg0KVGh1 IHR1b25nOiBDYW4gY2h1eWVuIHR1IGR1eSBxdWFuIGRhbiBzYW5nIGhhdSBkYW4gIA0KDQpDYWkg Y2FjaCBUVEhDIG5oaW4gdHUgZ29jIGRvIHRyYWNoIG5oaWVtIHZvaSBuaGFuIGRhbiwgZGFjIGJp ZXQgdHUgZ29jIGRvICJ2aSBkYW4gcGh1YyB2dSIgbGEgY2h1YSBkYXQgDQoNCktpZW4gbmdoaSBu YXkga2hvbmcgbW9pLCBuaHVuZyBubyB2YW4gbWFuZyB0aW5oIHRob2kgc3Uga2hpIGNhYyBEQlFI IHRoYW8gbHVhbiB0YWkgDQpuZ2hpIHRydW9uZyBuZ2F5IDkuMTEgdmUgdmllYyB0aHVjIGhpZW4g Y2FpIGNhY2ggdGh1IHR1YyBoYW5oIGNoaW5oIChUVEhDKS4gDQoNClRpZW4gaG9pIGxvIHRybyB0 aGFuaC4uLiBtb3QgVFRIQyENCg0KVGhlbyBEQiBQaGFtIFRoaSBIYWkgKERvbmcgTmFpKSwgYmFv IGNhbyBjdWEgQ2hpbmggcGh1IGNobyB0aGF5IDEwIG5hbSBxdWEgcXVhIA0KdHJpbmggY2FpIGNh Y2ggVFRIQyBjdWEgY2FjIGJvLCBuZ2FuaCwgZGlhIHBodW9uZyBkYSBjbyBidW9jIGNodXllbiB2 YSBkYXQgZHVvYyANCm5odW5nIHRoYW5oIHR1dSBraGEgcXVhbiwgbmh1bmcgbmV1IG5oaW4gdHUg Z29jIGRvIHRyYWNoIG5oaWVtIHZvaSBuaGFuIGRhbiwgZGFjIGJpZXQgDQp0dSBnb2MgZG8gInZp IGRhbiBwaHVjIHZ1IiBsYSBjaHVhIGRhdC4gDQoNCiJLaGkgZ2lhbSBzYXQgdGFpIGRpYSBwaHVv bmcgbmd1b2kgZGFuIHZhbiBrZXUgbGEgcmF0IGN1YyBraG8sIHJhdCBzbyBraGkgcGhhaSBkZW4g Y2FjIGNvIA0KcXVhbiBuaGEgbnVvYyBkZSB4aW4gZ2lheSBjaHVuZyBuaGFuIGNodSBxdXllbiBk YXQsIHhpbiBnaWF5IHBoZXAgeGF5IGR1bmcgbmhhIG8sIHhpbiANCnZheSB2b24sIHhpbiBjYXAg cGhlcCBraW5oIGRvYW5oLiBOZ3VvaSBkYW4gcGhhaSBkaSBsYWkgcmF0IG5oaWV1IGxhbiBkZW4g cmF0IG5oaWV1IGNvIA0KcXVhbi4gTW9pIGxhbiBkZW4gbGEgbW90IGxhbiBjaG8gZG9pLCBjaG8g ZHVvYyBuaGFuIGhvIHNvLCBjaG8gZHVvYyBjYXAgZ2lheSBoZW4sIGNobyANCmRlbiBoZW4gdGhl byBsdWF0IGRpbmgsIGNobyBkdW9jIG5vcCBnaWF5IGRvbmcgdGh1ZSwgY2hvIG5vcCB0aHVlLCBj aG8gbmhhbiBrZXQgcXVhIiwgDQpEQiBIYWkgZGFuIGNodW5nIHZhIGNobyBiaWV0IGRvICJraG9u ZyBwaGFpIGxhIGNodXllbiBjYSBsZSIuDQoNCkRhYyBiaWV0LCBEQiBuYXkgZG9uZyB0aW5oIHZv aSBCYW8gY2FvIHRoYW0gdHJhIGN1YSBVeSBiYW4gVHUgcGhhcCB2ZSBjb25nIHRhYyBwaG9uZywg DQpjaG9uZyB0aGFtIG5odW5nIG5hbSAyMDEwLCB5IGtpZW4gdGhhbyBsdWFuIGN1YSBjYWMgREJR SCB0YWkgaG9pIHRydW9uZyB2ZSB2aWVjIA0KIm5ndW9pIGRhbiwgZG9hbmggbmdoaWVwIChETikg c2FuIHNhbmcgZHVhIGhvaSBsbyBkZSBkdW9jIHZpZWMgdmEgY2FuIGJvIGNvbmcgY2h1YyANCihD QkNDKSBjdW5nIHNhbiBzYW5nIG5oYW4gdGllbiBob2FjIGdvaSB5IGR1YSB0aWVuIGRlIHRodWMg aGllbiBuaGllbSB2dSwgeGVtIGRvIG5odSANCmxhIG1vdCBUVEhDIHRyb25nIHF1eSB0cmluaCBj YWkgY2FjaCBUVEhDIi4gIlN1IHBodWMgdnUgdGFuIHR1eSBjdWEgbmh1bmcgImRheSB0byANCm5o YW4gZGFuIiB0aGVvIHkga2llbiBjdWEgY3UgdHJpIHZhbiBjb24gcmF0IGRhaSB2YSByYXQgeGEg dHJvbmcgdGllbiB0cmluaCBjYWkgY2FjaCBUVEhDIiwgDQpEQiBIYWkgbmhhbiBtYW5oLg0KDQpD byByYXQgbmhpZXUgbmd1eWVuIG5oYW4gbWEgdGhlbyBEQiBIdXluaCBOZ2hpYSAoRGEgTmFuZyks IG1vdCB0cm9uZyBuaHVuZyB0b24gdGFpIA0KY3VhIGNhaSBjYWNoIFRUSEMgeHVhdCBwaGF0IHR1 IHRyYWNoIG5oaWVtIGN1YSBuZ3VvaSBkdW5nIGRhdSBjYWMgYm8sIGJhbiwgbmdhbmgsIGRpYSAN CnBodW9uZyBjaHVhIGR1b2MgbmhhbiBtYW5oIHZhIHRhcCB0cnVuZyBsYW0gcm8uIENvbiB0aGVv IERCIE5ndXllbiBOZ29jIE1pbmggDQooTmluaCBUaHVhbiksIG5ndXllbiBuaGFuIGRhbiB0b2kg YnVjIHh1YyBjdWEgbmd1b2kgZGFuIHZhIEROIGtoaSBjbyBjaHV5ZW4gZGVuIGNvIA0KcXVhbiBj b25nIHF1eWVuIGxhIGRvIFRUSEMgZHVvYyBiYW4gaGFuaCAidGhvbmcgdGh1b25nIHh1YXQgcGhh dCB0dSBuaHUgY2F1IHF1YW4gbHkgDQpzYW8gY2hvIHRodWFuIGxvaSBjdWEgY28gcXVhbiBjb25n IHF1eWVuLCBjaHUgaXQgbmdoaSBkZW4gcXV5ZW4gbG9pIGN1YSBuZ3VvaSBkYW4gaG9hYyANCmRv aSB0dW9uZyBjbyBsaWVuIHF1YW4iLiBEQiBMeSBLaWV1IFZhbiAoUXVhbmcgVHJpKSBjaG8gcmFu Zywgbmd1eWVuIG5oYW4gbG9uIG5oYXQgDQpkYW4gdG9pIG5odW5nIGJhdCBjYXAsIGtobyBraGFu IHRyb25nIGhhbiBjaGUgY2FpIGNhY2ggVFRIQyBsYSB5IHRodWMgdHJhY2ggbmhpZW0sIGRhbyAN CmR1YyBjb25nIHZ1IGN1YSBDQkNDLg0KDQoiTmd1b2kgZGFuIHZhbiBrZXUgbGEgcmF0IGN1YyBr aG8sIHJhdCBzbyBraGkgcGhhaSBkZW4gY2FjIGNvIHF1YW4gbmhhIG51b2MgLSBEYWkgYmlldSAN ClBoYW0gVGhpIEhhaSAtIERvbmcgTmFpIiANCg0KVGhhbSBkbyBjaGkgc28gaGFpIGxvbmcgY3Vh IG5ndW9pIGRhbg0KDQpUaGVvIERCIFRyYW4gVGhpIExvYyAoQmFjIEthbiksIGRlIHRodWMgaGll biB0b3QgY2FpIGNhY2ggVFRIQywgZGlldSBxdWFuIHRyb25nIA0Ka2hvbmcgY2hpIGxhIHZpZWMg dGh1YyBoaWVuIHBoYXAgbHVhdCB2ZSBsaW5oIHZ1YyBuYXkgIm1hIHBoYWkgdGh1YyBoaWVuIHRv dCBjbyBjaGUgZ2lhbSANCnNhdCB2aWVjIHRodWMgdGhpIGNvbmcgdnUgY3VhIGhvLCB4dSBseSBu Z2hpZW0gbWluaCBjYWMgaGFuaCB2aSBuaGFuIHZhIG1vaSBnaW9pIGhvaSBsbyANCmRvaSB2b2kg Q0JDQywgdmllbiBjaHVjIHRodWMgdGhpIGNhYyBUVEhDIi4gQ3VuZyB2b2kgZG8gbGEgdG8gY2h1 YyBuZ2hpZW4gY3V1IHRyaWVuIA0Ka2hhaSBjaGUgZG8gdGllbiBsdW9uZyBjYW5oIHRyYW5oLCBj YWkgdGhpZW4gZG9pIHNvbmcgQ0JDQzsgc3VhIGRvaSBMdWF0IENCQ0MgdGhlbyANCmh1b25nIHRh byBjbyBjaGUgY2FuaCB0cmFuaCB0cm9uZyBDQkNDIHZhICJ0YW8gY28gY2hlIGdpYW0gc2F0IGxh biBuaGF1IHRyb25nIGRvaSBuZ3UgDQpuYXkiLg0KDQpDdW5nIGJhbiB2ZSB2YW4gZGUgbmF5LCBE QiBQaGFtIFBodW9uZyBUaGFvIChUUC5IQ00pIGNobyByYW5nLCB0cm9uZyBxdWEgdHJpbmggY2Fp IA0KY2FjaCBUVEhDLCAidHJhY2ggbmhpZW0gdGhhaSBkbyBwaHVjIHZ1IGN1YSBjb25nIGNodWMg Y28gdGllbiBibywgY28gdGhlbSBudSBjdW9pLCANCm5odW5nIGtob25nIGl0IENCQ0MgY29uIHNv IHRyYWNoIG5oaWVtLCBjb24gcm9pIHJvdCB0aW5oIHRyYW5nIGJhIGtob25nOiBraG9uZyBjdW9p LCANCmtob25nIGdpYWkgdGhpY2gsIG5vaSB2b2kgZGFuIGtob25nIGNodSBuZ3UuIEtlIGNhIGRh biBjb24ga2V1IGxhIGNvbiBiYSBraG86IGN1YSBraG8gDQp2YW8sIG5ndW9pIGtobyBnYXAsIHZl IG1hdCBraG8gY29pIi4gRGUgY2hhbiBjaGluaCwgYmEgVGhhbyBraWVuIG5naGkgY2FuIHRoaSBk aWVtIHRoaSANCnR1eWVuLCBjYW5oIHRyYW5oIGNvbmcga2hhaSBtb3Qgc28gY2h1YyBkYW5oLCBk b2kgbW9pIGNhY2ggZGFuaCBnaWEgY29uZyBjaHVjIGxhbSBzYW8gDQpjaG8gc2F0LCBkdW5nLCBj byBjaGluaCBzYWNoIHRodSBodXQgbmhhbiB0YWkgdmEgdGllcCB0dWMgZG9pIG1vaSBwaHVvbmcg dGh1YyBob2F0IGRvbmcgDQpjdWEgY2FjIGRvbiB2aSBzdSBuZ2hpZXAgY29uZywgZGljaCB2dSBj b25nLiBEYWMgYmlldCwgdGh1b25nIHh1eWVuIGtoYW8gc2F0LCB0aGFtIGRvIA0KY2hpIHNvIGhh aSBsb25nIGN1YSBuZ3VvaSBkYW4gdmUga2V0IHF1YSBjYWkgY2FjaCBUVEhDLg0KDQpEQiBCdWkg VGhpIEhvYSAoRGFrIE5vbmcpIGN1bmcgZG9uZyB0aW5oIG5oYW4gZGluaCAieWV1IHRvIGNvbiBu Z3VvaSBwaGFpIGR1b2MgZGFjIA0KYmlldCBxdWFuIHRhbSB0cm9uZyBjYWkgY2FjaCBUVEhDIiB2 YSBjaG8gcmFuZyAiY2FuIG1pbmggYmFjaCBjYWMgcXV5IGRpbmggdmUgdHJhY2ggDQpuaGllbSwg dGhhbSBxdXllbiBjdWEgZG9pIG5ndSBDQkNDIGRlIG5oYW4gZGFuIGdpYW0gc2F0LiBLaWVuIHF1 eWV0IHh1IGx5IENCQ0MgY28gDQpoYW5oIHZpIG5odW5nIG5oaWV1IHBoaWVuIGhhIG5oYW4gZGFu Ii4NCg0KTGlldSB0aHVvYyBtYW5oIGNobyB2YW4gZGUgbmF5LCB0aGVvIERCIEhvIFRoaSBUaHUg SGFuZyAoVmluaCBMb25nKSBsYSAidHJ1b2MgaGV0IA0KY2FuIGRvaSBtb2kgbW90IGNhY2ggY28g YmFuIHZlIHR1IGR1eSwgY2h1eWVuIHR1IHF1YW4gZGFuIGxhIGNoaW5oIHNhbmcgaGF1IGRhbiBs YSANCmNoaW5oLiBIYXUgZGFuIHZlIG1hdCBjaGluaCBzYWNoLCBwaGFwIGx1YXQgdGhlbyB0aW5o IHRoYW4gY2hpbmggcXV5ZW4gbGEgY29uZyBib2MgY3VhIA0KZGFuIG5odSBCYWMgSG8gdmFuIHRo dW9uZyBuaGFuIG1hbmgiLiBDdW5nIHRoZW8gREIgbmF5LCBjaGluaCBxdXllbiBsYSBjdWEgZGFu LCBkbyANCmRhbiBiYXUgcmEgdmEgbnVvaSBkdW9uZyBiYW5nIHN1IGdvcCBjb25nLCBnb3Agc3Vj LCBnb3AgY3VhIGN1YSBuZ3VvaSBkYW4gdGhpIHBoYWkgDQpwaHVjIHZ1IHRhbiB0dXkgbmd1b2kg ZGFuLg0KDQpUcnVvYyBkYSBzbyBraWVuIG5naGkgY3VhIERCUUggdmUgdmllYyByYSBOZ2hpIHF1 eWV0IGNodXllbiBkZSB2ZSBnaWFtIHNhdCBjYWkgY2FjaCANClRUSEMsIFBobyBjaHUgdGljaCBR SCBVb25nIENodSBMdXUsIGtoaSBrZXQgbHVhbiBwaGllbiB0aGFvIGx1YW4sIGNobyBiaWV0IFV5 IGJhbiANClRWUUggc2UgY2hpIGRhbyBjYWMgY28gcXVhbiBodXUgcXVhbiBuZ2hpZW4gY3V1IHhh eSBkdW5nIGR1IHRoYW8gTmdoaSBxdXlldCBjdWEgDQpRSCB2ZSB2YW4gZGUgbmF5IHZhIHRyaW5o IFFIIHhlbSB4ZXQgdGhvbmcgcXVhIHRhaSBtb3QgcGhpZW4gaG9wIGtoYWMgdHJvbmcga3kgaG9w IHRodSA4Lg0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzQxMDE5NS9UaHUt dHVjLWhhbmgtY2hpbmgtRGFuLXZhbi1nYXAta2hvLmh0bWwgQ0FNIFZBTiBLSU5IIDEwLzExLzIw MTAsIDA4OjE3IChHTVQrNykgDQoNClRodSB0dW9uZzogVGh1IHR1YyBoYW5oIGNoaW5oIC0gRGFu IHZhbiBnYXAga2hvIA0KDQpUVCAtIE5nYXkgOS0xMSwgUXVvYyBob2kgdGhhbyBsdWFuIG8gaG9p IHRydW9uZyB2ZSB2YW4gZGUgbGllbiBxdWFuIGRlbiBtb2kgbmd1b2kgZGFuOiANCmNhaSBjYWNo IHRodSB0dWMgaGFuaCBjaGluaC4gRGFuZyBsdXUgeSwgY2h1IGRlIG5heSBkdW9jIENoaW5oIHBo dSB2YSBuaGlldSBkYWkgYmlldSBjbyANCnkga2llbiB0aG9uZyBuaGF0OiB0aHUgdHVjIGhhbmgg Y2hpbmggY29uIHJ1b20gcmEsIG5oaWV1IGtoZSwgdmFuIGNvbiBuYW4gc2FjaCBuaGlldSwgdm9p IHZpbmguLi4NCg0KKEFuaDogRGFpIGJpZXUgVHJhbiBEdSBMaWNoIC0gQW5oOiBWLkRVTkcpIA0K DQpUaGVvIGJhbyBjYW8gZ2lhbSBzYXQgdmllYyB0aHVjIGhpZW4gY2FpIGNhY2ggdGh1IHR1YyBo YW5oIGNoaW5oIChUVEhDKSB0cm9uZyBtb3Qgc28gDQpsaW5oIHZ1YyBsaWVuIHF1YW4gdHJ1YyB0 aWVwIGRlbiBjb25nIGRhbiB2YSBkb2FuaCBuZ2hpZXAgY3VhIFV5IGJhbiBUaHVvbmcgdnUgUXVv YyANCmhvaSwgbmhpZXUgZGlhIHBodW9uZyBkYSB0dSB5IGJhbiBoYW5oIGNhYyBxdXkgZGluaCB0 cmFpIGx1YXQgZGUgdGFvIHRoZW0gVFRIQy4gTmh1IHZlIA0KbGluaCB2dWMgY2FwIHBoZXAgeGF5 IGR1bmcsIHF1eSBkaW5oIHBoYWkgY28gY2FtIGtldCBjaGl1IHRyYWNoIG5oaWVtIHZvaSB2aWVj IGh1IGhvbmcgDQpjdWEgY29uZyB0cmluaCBsaWVuIGtlLCBwaHVvbmcgYW4gcGhhIGRvIGNvbmcg dHJpbmguLi4gZHVvYyBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIA0Ka2hhbmcgZGluaCBsYSB0 cmFpIHF1eSBkaW5oLg0KDQpDdW5nIHRoZW8gYmFvIGNhbyBnaWFtIHNhdCwgY2FpIGNhY2ggVFRI QyBjb24gZ2FwIHRybyBuZ2FpIGJvaSB0aG9pIHF1ZW4gcXVhbiBseSB0aGVvIA0KY28gY2hlIHF1 YW4gbGlldSwgeGluIC0gY2hvIHZhIGR1bmcgY2hhbSBkZW4gbG9pIGljaCBjdWMgYm8gY3VhIG5o aWV1IGNvIHF1YW4sIGNhbiBiby4gDQpUcm9uZyBxdWFuIGx5IG5oYSBudW9jIHZhbiBjb24gZGF0 IHJhIHRodSB0dWMga2hvbmcgY2FuIHRoaWV0LCBsYW0gaGFuIGNoZSBxdXllbiBjdWEgDQpuZ3Vv aSBkYW4uDQoNClZhbiBjb24gaGFjaCBzYWNoLCBuaHVuZyBuaGlldSBkYW4NCg0KW09uZyBQaGFt IEtob2kgTmd1eWVuIChibyB0cnVvbmcgQm8gVGFpIG5ndXllbiAtIG1vaSB0cnVvbmcpOiBMdWF0 IGRhdCBkYWkgbW9pIHNlIGRvbiBnaWFuIGhvYSB0aHUgdHVjIGhhbmggY2hpbmggDQpCbyBUYWkg bmd1eWVuIC0gbW9pIHRydW9uZyBkYSB0aGFuaCBsYXAgbmFtIGRvYW4gY29uZyB0YWMgZGkgdG9u ZyBrZXQgdGh1YyBoaWVuIA0KTHVhdCBkYXQgZGFpLiBIaWVuIGJvIGRhbmcgZHUgdGhhbyBkZSBj dW9uZyBMdWF0IHN1YSBkb2kgYm8gc3VuZyBMdWF0IGRhdCBkYWksIA0KdHJvbmcgZG8gbGFuIGRh dSB0aWVuIG1vdCBkdSBsdWF0IHNlIGRhbmggdHJvbiBtb3QgY2h1b25nIHF1eSBkaW5oIGNhYyBU VEhDIA0KdHJvbmcgZGF0IGRhaSBuaHU6IHRyaW5oIHR1IGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5 ZW4gc3UgZHVuZyBkYXQsIHF1eSBkaW5oIHZlIA0KY2h1eWVuIG5odW9uZyBkYXQgZGFpLi4uIER1 IGx1YXQgbW9pIHNlIHR1eWV0IGRvaSB0aGVvIHRpbmggdGhhbiB0aW5oIGdvbiBUVEhDLCB0YW8g dGh1YW4gbG9pIGNobyBkYW4uXSANCg0KRGFpIGJpZXUgUGhhbSBQaHVvbmcgVGhhbywgY2h1IHRp Y2ggSERORCBUUC5IQ00sIGNobyByYW5nIHRhaSBuaGlldSBjbyBxdWFuIG5oYSANCm51b2MsIHRo YWkgZG8gaGFuaCBjaGluaCB0aGUgaGllbiBxdWEgbmh1bmcgYmllbiBjaGkgZGFuIGRhIGNvIHRo YXkgZG9pIGRhbmcgbXVuZyB0aGVvIA0KY2FpIGNhY2ggVFRIQy4gTmh1bmcgYmllbiBiYW8gInh1 b25nIHhlLCB4dWF0IHRyaW5oIGdpYXkgdG8iIHRhaSBuaGlldSBjbyBxdWFuIGRhIGR1b2MgDQpj aHV5ZW4gc2FuZyAiVnVpIGxvbmcgZGUgeGUgZHVuZyBub2kgcXV5IGRpbmgiLCAiVnVpIGxvbmcg bGllbiBoZSBxdWEgdGh1b25nIHRydWMiLg0KDQpUdXkgbmhpZW4gdGhlbyBiYSBUaGFvLCBuaGll dSBxdXkgdHJpbmgsIFRUSEMgdmFuIGNvbiBydW9tIHJhLCB0aG9pIGdpYW4gdGh1YyBoaWVuIHRp bmggDQpiYW5nIG5hbSBuaHUgdGh1IHR1YyBsaWVuIHF1YW4gZGF1IHR1LCBuZ2hpZW0gdGh1IGNv bmcgdHJpbmguLi4gTmhpZXUgY2FuIGJvIHRpZXAgZGFuIA0Ka2hvbmcgY3VvaSwga2hvbmcgbm9p LiBEYW4gdmFuIGdhcCAiYmEga2hvIjogY3VhIGtobyB2YW8sIG5ndW9pIGtobyBnYXAsIHZlIG1h dCBraG8gDQpjb2kuLi4NCg0KRGFpIGJpZXUgTmd1eWVuIE1pbmggSG9uZyAoTmdoZSBBbikgY2h1 YSBoYWkgbG9uZyBuZ2F5IG8gVFRIQyBkYXUgdGllbiBsYSBuZ3VvaSANCmRhbiBwaGFpIHZpZXQg ZG9uIHhpbi4gIlRpZXUgZGUgbmd1b2kgZGFuIGRhIHBoYWkgbm9pIHhpbiB0aGkgYW5oIG5oYSBu dW9jIGNvIHF1eWVuIGNobyANCmhvYWMga2hvbmcsIGhheSBjaG8gbHVjIG5hbyBjdW5nIGR1b2Mi LiANCg0KT25nIEhvbmcgbmV1IHRodWMgdGUgVFRIQyBvIGNhcCBjYW8gbmh1IGNodSB0aWNoLCBi aSB0aHUgdGluaCB0aGkgcmF0IG5oYW5oIG5odW5nIA0KeHVvbmcgZHVvaSB0aGkgcmF0IGxhdS4g Q2FjICJjdWEiIGRvLCB0aGVvIG9uZyBIb25nLCBuaGlldSBub2kgZGEgInJ1dCBraW5oIG5naGll bSIsIA0Ka2hvbmcgY2F1IGNvLCBraG9uZyBub2kga2hvbmcgbGFtLCB0aGFtIGNoaSB0cmEgbG9p IHJhdCBuZ290IG5nYW8sICJlbSBzZSBnaWFpIHF1eWV0LCBtYWkgDQpzZSBjbyIgbmh1bmcgdGh1 YyB0ZSBjdW9pIGN1bmcgbGEgY2EgdGhhbmcga2hvbmcgY28uICJUaGVvIHRvaSwgdmllYyBjYXAg Z2lheSBwaGVwIGRhbmcgDQp0b3QsIGNhcCBnaWF5IGNodSBxdXllbiBzdSBkdW5nIGRhdCBjdW5n IGRhbmcgdG90IG5odW5nIG5odW5nIGNhaSBkbyBjaGkgdG90IGtoaSBjbyANCnBob25nIGJpLiBD byB0aWVuIHRoaSBobyBkZW4gdGFuIG5oYSBsYW0gY2hvLCBuZXUga2hvbmcgdGhpIGNoYW0iIC0g b25nIEhvbmcgcGhhbiBuYW4uDQoNClRoZW8gZGFpIGJpZXUgUGhhbSBUaGkgTG9hbiAtIGNodSB0 aWNoIEhEUVQgVGFwIGRvYW4gVmlldCBBLCBzdSBjaHV5ZW4gcXV5ZW4gY29uIA0KZGFuZyB0b24g dGFpIG8gY2FjIGNvIHF1YW4gdGh1ZSBraGkgImNvIHRydW9uZyBob3AgZHVhIHZhbiBiYW4ga2hv bmcgZGF1LCBraG9uZyBjaHUga3kgDQpuaHVuZyBiYXQgZG9hbmggbmdoaWVwIG5vcCB0aHVlIHRh bmcgZ2FwIG5oaWV1IGxhbiIuDQoNClZlIHRodSB0dWMga2hvbmcgdGh1YW4gbG9pIGNobyBkYW4s IGJhIExvYW4gbmV1IHZpIGR1OiAiTmh1IHRodSB0dWMgeHUgbHkgdmkgcGhhbSBnaWFvIA0KdGhv bmcsIG5ndW9pIHZpIHBoYW0gYmkgdGFtIGdpdSBnaWF5IHRvIHJvaSBwaGFpIGRlbiBraG8gYmFj IG5vcCB0aWVuLCB0aW0gY2FuaCBzYXQgZGUgbGF5IA0KbGFpIGdpYXkgdG8uIE5oaWV1IG5ndW9p IG5nYWkgcGhpZW4gaGEgbmVuIGRhIHBoYWkgaG9pIGxvIi4gQmEgTG9hbiBkZSBuZ2hpIGNhaSBj YWNoIHRodSANCnR1YyBuYXkgdGhlbyBodW9uZyBidW9jIGNodSB4ZSBub3Aga3kgcXV5IG8gbmdh biBoYW5nLCBraGkgdmkgcGhhbSB0aGkgY2FuaCBzYXQgY2hpIGNhbiANCmd1aSBiaWVuIGxhaSBk ZW4gbmdhbiBoYW5nIGRlIHRydS4gTmh1IHRoZSB2dWEgZG8gcGhpZW4gaGEsIHZ1YSB0cmFuaCBk dW9jIG5hbiBtYWkgbG8uDQoNCkRhaSBiaWV1IE5ndXllbiBUaGkgVGh1IEhhIChHaWEgTGFpKSBu ZXUgbW90IG1lbmggZGUga2hhYzogeSB0aHVjIHR1YW4gdGh1IGx1YXQgcGhhcCANCmNhYyBjbyBx dWFuIG5oYSBudW9jIGNodWEgbmdoaWVtLCBjb24gdHV5IHRpZW4uIE5oaWV1IHF1eSBkaW5oIGNo aSB0YW8gdGh1YW4gbG9pIGNobyBjbyANCnF1YW4gbmhhIG51b2MsIGRheSBraG8ga2hhbiB2ZSBu Z3VvaSBkYW4uIFRoZW8gYmEgSGEsIGJhbyBjYW8gY3VhIENoaW5oIHBodSBuZXUgZGEgDQpkb24g Z2lhbiBob2EgMzAlIFRUSEMgbmh1bmcgY2hpIHBoaSBnaWFtIGNodWEgZGF0IHlldSBjYXUgbGEg Y28geWV1IHRvIGNhaSBjYWNoIGNodWEgDQpkdW5nIGNoby4NCg0KTGFwIGNvIHF1YW4gY2h1eWVu IHRyYWNoIGtpZW0gc29hdCBUVEhDDQoNCk5oaWV1IGRhaSBiaWV1IHNhdSBraGkgdGhhbyBsdWFu IGRhIGRlIHh1YXQgbW90IHNvIGdpYWkgcGhhcCBkZSBuZ3VvaSBkYW4gYm90IGtobyB2aSANClRU SEMuIERhaSBiaWV1IEhvIFRoaSBUaHUgSGFuZyAoVmluaCBMb25nKSBkZSBuZ2hpIGNhbiBkb2kg bW9pIGNvIGJhbiB0dSBkdXksIA0KY2h1eWVuIHR1ICJxdWFuIGRhbiIgc2FuZyAiaGF1IGRhbiIg ZGUgeGF5IGR1bmcgdGhlIGNoZSBwaHUgaG9wLiAiTyBTaW5nYXBvcmUsIG5ndW9pIA0KZGFuIG11 b24gY2h1eWVuIG5oYSBjaGkgY2FuIGJhbywgY2hpbmggcXV5ZW4gcGhhaSB0dSBsYW0gY2FjIHRo dSB0dWMsIHRyb25nIGtoaSB0YWkgVk4gDQpuZ3VvaSBkYW4gcGhhaSBsYW0gdHUgQS1aIi4gQmEg SGFuZyBjaG8gcmFuZyBjaGluaCBuaG8gbmVuIGhhbmggY2hpbmggbmhhbmggbmhheSwgDQpsaW5o IGhvYXQgbWEgU2luZ2Fwb3JlIHRoaW5oIHZ1b25nIGR1b2Mgbmh1IGhpZW4gbmF5LiBCYSBkb25n IHRob2kgY2FuaCBiYW86IGNhbiBjYW5oIA0KZ2lhYyBraGEgbmFuZyB0aHUgdHVjIGN1IHZ1YSBj YXQgZGkgdGhpIHRodSB0dWMgbW9pIG1vYyBsZW4uIENhbiBwaGF0IHRyaWVuIGRpY2ggdnUgY29u ZyANCmRlIG5ndW9pIGRhbiBraG9uZyBwaGFpIGxvIGxvdCwgc2luaCByYSAiY28iIHRodSB0dWMu DQoNCkRhaSBiaWV1IE5ndXllbiBWYW4gQmEgKEtoYW5oIEhvYSkgZGUgbmdoaSB4ZW0gbGFpIGNh IGhlIHRob25nIGhhbmggY2hpbmggZGUgZ2lhbSANClRUSEMuIFRoZW8gb25nIEJhLCBDaGluaCBw aHUgZGEgZ2lhbSBzbyBibyBkZSBnaWFtIGRhdSBtb2ksIG5odW5nIGNvIHZlIGRlbiBuYXkgDQpk YXUgbW9pIGtob25nIGdpYW0gbWEgY29uIHRhbmcgdm9pIHNvIHRvbmcgY3VjLCBjdWMgdGFuZyBy YXQgbmhpZXUuIA0KDQpEYWkgYmlldSBOZ3V5ZW4gSHV1IE5ob24gKERvbmcgVGhhcCkgbmV1IG1h dCBkYW5nIHNvIGtoYWMgY3VhIFRUSEMgaGFuaCBkYW4gbGEgDQppbSBsYW5nLiAiU3UgdmllYyBn aWFpIHF1eWV0IDMwIG5nYXksIG5odW5nIG5nYXkgZGF1IGhvIGtob25nIHRyYSBsb2ksIGRlbiBz YXQgbmdheSB0aHUgDQozMCBtb2kgdGhvbmcgYmFvIHRoaWV1LCBwaGFpIGJvIHN1bmciLiBPbmcg TmhvbiBkZSBuZ2hpIHBoYWkgdGFuZyBwaHUgY2FwIGNobyBjb25nIA0KY2h1YyBkZSB0cmFuaCAi c3UgaW0gbGFuZyBkYW5nIHNvIiBraWV1IG5heS4gT25nIGNobyByYW5nIFZOIG5lbiBob2MgdGFw IGtpbmggbmdoaWVtIA0KY2FjIG51b2MsIG5odSBJbmRvbmVzaWEgZ2lhbyBibyB0dSBwaGFwIGJh biBoYW5oIGNhYyB2YW4gYmFuIHF1eSBkaW5oIFRUSEMsIHRyYW5oIGRlIA0KY2FjIGJvIHR1IHNv YW4gdGhhbyBxdXkgZGluaCB0aGVvIGxvaSBpY2ggY3VhIG5nYW5oIG1pbmguDQoNCkRhaSBiaWV1 IFBoYW0gVGhpIEhhaSAoRG9uZyBOYWkpIGNobyByYW5nIG5ndW9pIGRhbiBkYW5nICJ0aWVuIG1h dCB0YXQgbWFuZyIgdmkgc2luaCANCnJhIG5oaWV1IGxvYWkgImNvIiBUVEhDLiBCYSBkZSBuZ2hp IGJhbiBoYW5oIHF1eSBkaW5oIGRlIG1vIHJvbmcgZGljaCB2dSB0dSB2YW4sIGdpdXAgDQpuZ3Vv aSBkYW4gY28gbmh1IGNhdS4gRG9uZyB0aG9pIGNhbiBsdWF0IGhvYSB2YW4gZGUgVFRIQy4NCg0K RGFpIGJpZXUgTmd1eWVuIFBodW9jIChCZW4gVHJlKSBjaG8gcmFuZyBuaGlldSBjbyBxdWFuIGto b25nIGNoaXUgZ2lhaSBxdXlldCB2aWVjIGNobyANCmRhbiBtYSBjdSBkbyBjaG8gVFRIQyB2YSBj byBjaGUuIE9uZyBkZSBuZ2hpOiAiQ2hpbmggcGh1IG5lbiBjbyBjbyBxdWFuIGNodXllbiANCnRy YWNoIGtpZW0gc29hdCBUVEhDIi4NCg0KRGFpIGJpZXUgVHJhbiBEdSBMaWNoIChUUC4gSENNKSBj aG8gcmFuZyBraG9uZyBuZW4gZHVuZyBsYWkgbyBkZSBhbiAzMCBtYSAiY2FuIGNvIA0Kbmh1bmcg ZGUgYW4gNjAsIDkwIHRpZXAgdGhlbyBtb2kgZ2lhaSBxdXlldCBkdW9jIHRpbmggaGluaCBjYWkg Y2FjaCBUVEhDIi4gRGFpIGJpZXUgVnUgDQpUaWVuIExvYywgY2h1IHRpY2ggUGhvbmcgVGh1b25n IG1haSB2YSBjb25nIG5naGllcCBWTiwgY3VuZyBuZXUga3kgdm9uZyBjdWEgY29uZyANCmRvbmcg ZG9hbmggbmhhbiBsYSBDaGluaCBwaHUgbm9pIGl0IGxhbSBuaGlldSBkZSBkZW0gbGFpIGxvaSBp Y2ggZG9uZyBkZW0gZHVvYyBjaG8gaG8gDQpuaHUgZ2lhbSB0aG9pIGdpYW4sIGNoaSBwaGkuLi4N Cg0KRG9uIGdpYW4gNS4wMDAgdGh1IHR1YyBoYW5oIGNoaW5oDQoNCkdpYWkgZGFwIG5odW5nIGJh biBraG9hbiwgZ29wIHkgY3VhIGNhYyBkYWkgYmlldSwgQm8gdHJ1b25nIC0gQ2h1IG5oaWVtIFZh biBwaG9uZyANCkNoaW5oIHBodSBOZ3V5ZW4gWHVhbiBQaHVjIGNobyBiaWV0IGRvbmcgdGluaCB2 b2kgYmFvIGNhbyBnaWFtIHNhdCBjdWEgUXVvYyBob2kga2hpIA0KY2hvIHJhbmcgdmFuIGNvbiBz dSBuaHVuZyBuaGlldSBnYXkga2hvIGN1YyBjaG8gbmd1b2kgZGFuLCBkb2FuaCBuZ2hpZXAgdGFp IG5oaWV1IGNvIA0KcXVhbiBuaGEgbnVvYywgZG9uZyB0aG9pIGR1IGRhIHRpZW4gaGFuaCBkZW4g Z2lhaSBkb2FuIDMgbmh1bmcgZGUgYW4gMzAgbW9pIGNvIGtldCBxdWEgDQpidW9jIGRhdS4gDQpU aGVvIG9uZyBQaHVjLCBkZSBkb24gZ2lhbiBob2EgNS4wMDAgVFRIQyBzZSBwaGFpIHN1YSBob24g MS4wMDAgdmFuIGJhbiBvIHRydW5nIA0KdW9uZywgbW9pIGRpYSBwaHVvbmcgcGhhaSBzdWEga2hv YW5nIDUwIHZhbiBiYW4gbnVhLiAiS2hpIG5hbyBzdWEgeG9uZyBuZ3VvaSBkYW4gDQptb2kgY2hp bmggdGh1YyBkdW9jIGh1b25nIGxvaSIgLSBvbmcgUGh1YyBub2kgdmEgZGUgbmdoaSBRdW9jIGhv aSB1dSB0aWVuIGR1YSB2YW8gDQpjaHVvbmcgdHJpbmggeGF5IGR1bmcgcGhhcCBsdWF0IHZpZWMg eGF5IGR1bmcgbW90IGx1YXQgc3VhIG5oaWV1IGx1YXQsIG1vdCBwaGFwIGxlbmggDQpzdWEgZG9p IG5oaWV1IHBoYXAgbGVuaCBkZSBjYWkgY2FjaCBUVEhDLiBPbmcgTmd1eWVuIFh1YW4gUGh1YyBo dWEgc2Ugbm8gbHVjIGhvbiANCm51YSBkZSB0byBjaHVjIHRodWMgaGllbiB0aGFuaCBjb25nIGRl IGFuIDMwLCBraWVtIHNvYXQgY2hhdCBjaGUgdmllYyBiYW4gaGFuaCBUVEhDIGRlIA0KZGVtIGxh aSBsb2kgaWNoIHRoaWV0IHRodWMgY2hvIG5ndW9pIGRhbiwgeGEgaG9pLiANCg0KaHR0cDovL3Ry YW5kb25nY2hhbi5ibG9nc3BvdC5jb20vMjAwOC8xMi9hdS1ub2ktYm8tYW5oLWJhLXZhLWFuaC10 dS5odG1sIER1b2MgZGFuZyBib2kgVHJhIFR1IERvIHZhbyBsdWMgMDE6NTggDQoNCkRhdSBkYSBu b2kgYm8gYW5oIEJhIHZhIGFuaCBUdSAgIA0KDQpCYSBEdW5nIHR1YyBUaHUgdHVvbmcgTmd1eWVu IFRhbiBEdW5nIHZhIFR1IFNhbmcgdHVjIFRodW9uZyB0cnVjIEJhbiBiaSB0aHUgDQpUcnVvbmcg VGFuIFNhbmcgY3VuZyB0dW9pIG5oYXUgKHR1b2kgU3V1IDE5NDkpOyBjdW5nIGxhIGRhbiBtaWVu IE5hbTsgY3VuZyB2YW8gQm8gDQpDaGluaCB0cmkgKEJDVCkgbW90IG5hbTsgY3VuZyBrZSB2YWkg c2F0IGNhbmggdHJvbmcgImN1b2MgY2hpZW4iIERhaSBob2kgWCAoZGF1IG5hbSANCjIwMDYpIGRl IG5hbmcgY2FuaCBtaWVuIE5hbSBsZW4gdGhhbmggdGhlIGx1YyBtYW5oIG5oYXQgdHJvbmcgRGFu Zy4gTmh1bmcgYmF5IGdpbyANCnRoaSBjdW5nIHR1b25nIG5oYXUgdGFuIHRhYywgc3V0IGRhdSBt ZSB0cmFuLiANCg0KU3UgdmllYyBiYXQgZGF1IGNvIHR1IHNhdSBEYWkgaG9pIFgsIGFuaCAzIGxl biBuaHUgZGlldSwgdXkgdGluIHRyYW4gdHJlLCB0aGFvIHR1bmcgdGF0IGNhIA0KbW9pIGx1YyBs dW9uZyB0dSBraW5oIHRlIGRlbiBhbiBuaW5oLiBIaW5oIGFuaCBhbmggMyBsdWMgZG8gdGhhdCBs YSAic2FuZyBuZ29pIiwgYWkgY3VuZyANCmJhbyByYW5nIGFuaCAzIHNlIHRybyB0aGFuaCBtb3Qg Im5nb2kgc2FvIHNhbmciIGR1YSBkYXQgbnVvYyBsZW4gbW90IHRhbSBjYW8gbW9pLCB0cm9uZyAN Cm51b2MgbmdvYWkgbnVvYyBjYSBoZXQgbG9pLCBsZW4gdGFuIG1heSB4YW5oIGxhbSBhbmggMyBj dW5nIHR1b25nIG1pbmggdGhlIHRoYXQuIA0KVHJvbmcga2hpIGRvIGFuaCA0IHJhdCBhbSB1Yywg bmdoaSByYW5nIG1pbmggZGEgaG8gdHJvIGhldCBtaW5oIGNobyAiYmFuIiAzLCBuaHVuZyBnaW8g DQpiYW4gMyBraG9uZyBiaWV0IG5ndW9pIGJpZXQgdGEsIG11b24gbGFuIGx1b3QgY2EgbWluaC4g VHUgZG8gYW5oIDQgYmF0IGRhdSB0aGUgaGllbiB0aGUgDQpsdWMgY3VhIG1pbmguIEFuaCA0IGto ZW8gbGVvIGR1bmcgZGFuaCBuZ2hpYSBUb25nIEJpIHRodSBkZSBoYW5oIHN1LCBtYSBUaHVvbmcg DQp0cnVjIEJhbiBCaSB0aHUgdGhpIGN1bmcgdGhheSBtYXQgVEJUIGRlIGdpYWkgcXV5ZXQgbmhp ZXUgdmllYyBjdWEgQmFuIEJpIHRodSBkdW9jIHF1YSANCmRpIGNodS4gQW5oIDQgInF1YW4geHV5 ZW4iIGdhbiBoZXQgbW9pIHZpZWMsIGRlbiBtdWMgbmd1eWVuIENodSB0aWNoIFF1b2MgaG9pIA0K Tmd1eWVuIFZhbiBBbiBjaGFvIGFuaCA0IGxhICJjaGFvIFBobyBUb25nIEJpIHRodSIuIA0KVmEg dHUgdGluaCBoaW5oIGRvIGRhIGhpbmggdGhhbmggMiBwaGU6IGJlbiBCYW4gYmkgdGh1IChhbmgg NCkgdmEgYmVuIENoaW5oIHBodSAoYW5oIDMpIA0KZGF1IG5oYXUgcXV5ZXQgbGlldC4gWGluIGtl IG5naGUgdmFpIGNodXllbi4NCg0KVGh1IG5oYXQgbGEgdnUgbmhhIG1heSB0aGVwIFBvc2NvIG8g dmluaCBWYW4gUGhvbmcuIER1IGFuIG5heSBkYXUgdGllbiBsYSBhbmggMyBreSANCmRvbmcgeSBj aHUgdHJ1b25nLCBkdSByYW5nLCB0cnVvYyBkbyBhbmggMyBjdW5nIGRvbmcgeSBtb3QgY2h1IHRy dW9uZyBraGFjLiBCYW8gY2hpIA0KbGVuIHRpZW5nIHZlIGtoYSBuYW5nIG8gbmhpZW0gbW9pIHRy dW9uZy4gQW5oIDQgbGF5IGNvIG5heSBwaGFuIGNvbmcsIHlldSBjYXUgcGhhaSANCnhlbSB4ZXQg Y2FuIHRoYW4uIEtob25nIGhpZXUgdm8gdGluaCBoYXkgY28geSBtYSBuZ2F5IHNhdSBkbyB2YWkg dHVhbiwgdmFvIGdpdWEgdGhhbmcgNSANCnZ1YSByb2ksIGJlbiBIYW4gUXVvYyBiYXQgbmdvIG1v aSBhbmggNCBkaSB0aGFtIG51b2MgaG8uIFRoaSByYSBxdWEgZG8gUG9zY28gdGllcCBkb24gDQph bmggNCBuaHVuZyBtb3Qgb25nIGhvYW5nLCBkdWEgYW5oIDQgZGkgYmFuZyBtYXkgYmF5IHRydWMg dGhhbmcgZGUgdHJ1YyB0aWVwIHhlbSBzdSANCnF1aSBtbyB2YSBraG9uZyBvIG5oaWVtIGN1YSBQ b3NjbyB0cm9uZyB2aWVjIHNhbiB4dWF0IHRoZXAuIFZlIG51b2MsIGFuaCA0IHRvIHRoYWkgZG8g DQptdW9uIG5naGllbiBjdXUga3kgZGUgYW4gUG9zY28gVmFuIFBob25nLCB0aGkgZHVuZyBtb3Qg Y2FpIGFuaCAzIHRoYXkgZG9pLiBHaW8gdGhpIGFpIA0KY3VuZyBiaWV0IGRlIGFuIG5heSBkYSBi aSBhbmggMyBreSBsb2FpIHZpIC4uLiBraG9uZyBkYW0gYmFvIG1vaSB0cnVvbmcuDQoNClRydW9j IGRvIHZhaSB0aGFuZyBjbyB2dSBjdW5nIGxpZW4gcXVhbiBkZW4gSGFuIFF1b2MgZGF1IHR1IHBo YXQgdHJpZW4gc29uZyBIb25nIA0KZ2lvbmcgbmh1IHNvbmcgSGFuIGN1YSBhbmggMyB1bmcgaG8g dGhpIGxhaSBiaSBhbmggNCBwaGFuIGRvaSBxdXlldCBsaWV0LCBkdWEgcmEgQkNUIA0KcXV5ZXQg ZGluaCBsYW0gYW5oIDMgdGh1YSB2YSByYXQgY2F5IGN1Lg0KDQpOaHVuZyBjYWkgZGF1IG5oYXQg Y3VhIGFuaCAzIGxhIGhpZW4gbmF5IHF1eWVuIGRpZXUgaGFuaCBraW5oIHRlIGRhIGtob25nIGNv biBkdW9jICJ0dSANCnR1bmcgdHUgdGFjIiBuaHUgdHJ1b2MgdGhvaSBreSBsYW0gcGhhdCBwaGkg bWEgbnVhLiBDdW9pIHRoYW5nIDMvMjAwOCBsYW0gcGhhdCB0YW5nIHZvdCwgDQphbmggMyBob2Fu ZyBob3QgcmEgOCBuaG9tIGdpYWkgcGhhcCB2YSB0aHUgY2hvIGRvbmcgYmFvIGNhIG51b2MsIHZh aSBuZ2F5IG5nYXkgc2F1IGRvIA0KYW5oIDQgZHVhIHJhIEJDVCB0aG9uZyBxdWEgbW90IGtldCBs dWFuIHZlIHRpbmggaGluaCBsYW0gcGhhdCB0cm9uZyBkbyBjbyB5IGNoaSB0cmljaCBzdSANCnll dSBrZW0gY3VhIGFuaCAzIHZhIGNvIG1vdCBzbyBkaWVtIGtob25nIGRvbmcgbmhhdCB2b2kgOCBu aG9tIGdpYWkgcGhhcC4gRGVuIGhvaSANCm5naGkgVHJ1bmcgdW9uZyA3IChnaXVhIHRoYW5nIDcp IHRoaSByYSBuZ2hpIHF1eWV0IGdpYW8gY2hvIEJDVCBjaGkgZGFvIHZlIGtpbmggdGUsIGNvIA0K bmdoaWEgcmFuZyBxdXllbiBoYW4gdm9uIGNvIGN1YSBhbmggMyB2ZSB2aWVjIG5heSBiaSBoYW4g Y2hlLiBCQ1QgdGhpIGdpYW8gY2hvIGFuaCA0IA0KdGhlbyBkb2kgdmEgYmFvIGNhbyBkZSB4dWF0 IGNobyBCQ1QuIFJvaSBkZW4gZGF1IHRoYW5nIDEwICh0dWMgbGEgY2h1YSBkYXkgMiw1IHRoYW5n IA0Kc2F1KSBUcnVuZyB1b25nIGxhaSBob3AgZGUgYmFuIGRhYyBiaWV0IHZlIGtpbmggdGUuIEtl dCBxdWEgbGEgYW5oIDMgYmkgeWV1IHRoZS4gVHJvbmcgbHVjIA0KZG8gdGhpIGFuaCA0IHh1YXQg aGllbiB0YWkgY2FjIGJvIFRhaSBjaGluaCB2YSBibyBLZSBob2FjaCBEYXUgdHUgZGUgY2hpIGRh byBtb3QgY2FjaCANCiJkYW5oIGNoaW5oIG5nb24gdGh1YW4iIHRoYXkgbWF0IGNobyBCQ1QuDQoN ClRpbmggaGluaCBraG8ga2hhbiBjYXAgYmFjaCB0aGUgbmF5LCBuZ3VvaSBkYSBraG9uZyBnaW9p IG1hIGNvbiBkYXUgbmhhdSBuaHUgdGhlIG5heSANCnRoaSBrZXQgcXVhIGxhbSBjaGkgbWEgdG90 IGR1b2MuDQoNClRpbiBtb2kgbmhhdCBsYSBCQ1Qgc2UgaG9wIGtoYW4gdmFvIGN1b2kgdHVhbiBu YXkgZGUgYmFuIHZlIHZpZWMgTmhhdCBjYXQgdmllbiB0cm8uIFZhbiANCmRlIG5heSB0aHVjIHJh IGRhIGR1b2MgZGUgY2FwIGRlbiBtb3QgbGFuIHRydW9jIGRheSwgdmFvIHRoYW5nIDYgdnVhIHJv aS4gTmh1bmcgaG9tIA0KbmF5IG1vaSB0aGF0IGxhIGNob2FuZyBraGkgbmdoZSB0aW4gTmhhdCBk dW5nIHRhdCBjYSBjYWMga2hvYW4gT0RBIGNhIG1vaSBsYW4gZGFuZyANCnRodWMgaGllbiB0aGkg bW9pIGJpZXQgcmFuZyBoZXQgdGh1b2MgY2h1YSByb2kuIERlIHJvaSB4ZW0sIHNhcCB0b2kgbGEg SGFuIFF1b2Mgcm9pIERhaSBMb2FuLi4uIHNlIHJhIGNoaWV1IGRvYy4gDQoNCmh0dHA6Ly9ibG9n MW5ndW9pdmlldC5ibG9nc3BvdC5jb20vMjAxMC8xMC9hbmctY3N2bi10cm9uZy10aW5oLXRyYW5n LWhpZW0tbmdoZW8uaHRtbCBOZ2hpZW0gVmFuIFRoYWNoIDIwLzEwLzIwMTAgDQoNClRydW9uZyBU YW4gU2FuZywgTmd1eWVuIFRhbiBEdW5nIGNhbmggdHJhbmggbmdheSBjYW5nIG5oaWV1IGJlIGJv aSAgDQoNClRyb25nIHN1IGNhbmggdHJhbmggdm9pIG9uZyBEdW5nLCB0aGVvIG1vdCB0aG9uZyB0 aW4gcmF0IGNoaW5oIHhhYywgb25nIFNhbmcgZGEgbGFtIA0KbW90IHNhaSBsYW0gbG9uIGxhIHZ1 IERhbmcgRGFuIGNodS4gUXVhIE5ndXllbiBTeSBCaW5oLCBvbmcgU2FuZyBtdW9uIG11b24gdGF5 IExlIA0KQ29uZyBEaW5oLCBUcmFuIEh1eW5oIER1eSBUaHVjLCBOZ3V5ZW4gVGllbiBUcnVuZywg bGFtIGR1bmcgY3UgZGUgZGFuaCBwaGEgb25nIA0KRHVuZyB0cm9uZyBkYW5oIG5naGlhIGRvaSBs YXAgZGFuIGNodS4gVHJhbiBIdXluaCBEdXkgVGh1YyBkdW9jIHRyYW8gbmh1bmcgdGFpIGxpZXUg DQpkZSB0byBnaWFjIE5ndXllbiBUYW4gRHVuZyB0aGFtIG5odW5nIHRyZW4gY2FjIGJsb2cgY3Vh IG1pbmguIE5odW5nIG9uZyBTYW5nIGRhIA0KZHVuZyBuaHVuZyBuZ3VvaSBxdWEga2VtLiBQaGUg b25nIER1bmcgcGhhdCBnaWFjIGR1b2MgdmEgYmF0IGNhIGJvbi4gVHJ1b2Mgbmh1bmcgDQpjaHVu ZyBjbyBraG9uZyB0aGUgY2hvaSBjYWksIHRhdCBjYSBkYSBuaGFuaCBjaG9uZyBuaGFuIHRvaSB2 YSB4aW4ga2hvYW4gaG9uZy4gVHJ1b2MgZG8gDQpobyB0byByYSBtYW5oIGJhbyBiYW8gbmhpZXUg dmkgY2F5IGNvIG8gZHUgb25nIFNhbmcgdGhpIHNhdSBkbyBobyBraGllcCBuaHVvYyBiYXkgDQpu aGlldSB2aSB0aGF5IG9uZyBEdW5nIGRhIHRoYW5nLiBCaWVuIGJhbiBuaGFuIHRvaSBjdWEgaG8g dHJvbmcgZG8gY28gc3UgbGllbiBoZSB2b2kgcGhlIA0KVHJ1b25nIFRhbiBTYW5nIGR1b2MgZ3Vp IGxlbiBCbyBDaGluaCB0cmksIGtoaWVuIG9uZyBTYW5nIHBoYWkgIm5oYW4ga2h1eWV0IGRpZW0g bGEgDQpkYSB0aGlldSBjYW5oIGdpYWMiLiBTYXUgdnUgbmF5LCB2YW4gZGUgb25nIFNhbmcgbGFt IFRvbmcgYmkgdGh1IGhhdSBuaHUga2hvbmcgY29uIGRhdCANCnJhIG51YS4gTmh1bmcgbmh1IHRo ZSBjbyB2ZSBxdWEgY2h1IHF1YW4sIGNvaSB0aHVvbmcgbXV1IG1lbyBjdWEgb25nIFNhbmcgdmEg dmF5IA0KY2FuaCBtYSBvbmcgZGEgdGFvIHJhIHRyb25nIGhvbiBtdW9pIG5hbSBnaXUgdmFpIHRy byBiYW4gcGhhdCBvbiBodWUgdHJvbmcgY2h1YyB2dSANClRydW9uZyBiYW4gS2luaCB0ZSBUcnVu ZyB1b25nIHZhIFRodW9uZyB0cnVjIEJhbiBiaSB0aHUuIE9uZyBTYW5nIGRhIGNodXllbiBzYW5n IGxpZW4gDQprZXQgdm9pIGNhYyBvbmcgTmd1eWVuIFBodSBUcm9uZyB2YSBIbyBEdWMgVmlldCwg dmEgZGFuIGRhbiB0cmFuaCB0aHUgZHVvYyBraG9pIGRhbmcgDQp2aWVuIGxvIG5nYWkgYmFuIHRp bmggYW5oIGNoaSB2YSBkdW5nIHR1bmcgdGhhbSBuaHVuZyBjdWEgb25nIER1bmcuIA0KDQpodHRw Oi8vdHJhbmRvbmdjaGFuLmJsb2dzcG90LmNvbS8yMDA4LzEyL2N1b2MtY2hpZW4tY3VhLWFuaC1i YS1hbmgtdHUtdGllcC1kaWVuLmh0bWwgRHVvYyBkYW5nIGJvaSBUcmEgVHUgRG8gdmFvIGx1YyAy MjoyOSANCg0KQ3VvYyBjaGllbiBjdWEgYW5oIEJhIGFuaCBUdSB0aWVwIGRpZW4gcXV5ZXQgbGll dCAtIGJhdCBjaGFwIGR1bmcgaGF5IHNhaSANCg0KQ3VvYyBkYXUgZGEgZ2l1YSBhbmggMyBEdW5n IHZhIGFuaCA0IFNhbmcgZGEgZGVuIGhvaSBxdXlldCBsaWV0IG5oYXQsIG5vIGNhbmcgdGhhbmcg DQpkZW4gbXVjIG1hIG5oaWV1IG5ndW9pIHRpbiByYW5nIHNlIGxhIG1vdCBtYXQgbW90IGNvbiBj aHUga2hvbmcgdGhlIGR1bmcgbGFpIG8gbXVjIA0KdGhvYSBoaWVwIHRodW9uZyB0aGF5IGdpdWEg Y2FjIHBoZSBjYW5oIHRyb25nIERhbmcgdHJ1b2MgZGF5Lg0KDQpCYXkgZ2lvIGFuaCA0IGtpZW4g cXV5ZXQgY2hhbiB0YXQgY2Egbmh1bmcgZ2kgYW5oIDMgbGFtIGJhdCBjaGFwIGxhIG5vIGR1bmcg aGF5IHNhaSwgdG90IA0KaGF5IHhhdS4gVmkgZHUgbmh1IHF1eWV0IGRpbmggZHVuZyAxIHR5IFVT RCBraWNoIGNhdSBiYW5nIGNhY2ggYnUgbGFpIHN1YXQgZGEgYmkgVXkgDQpiYW4gVGh1b25nIHZ1 IFF1b2MgSG9pIHlldSBjYXUgZHVuZyBsYWkgdmkgZHVuZyBkZW4gbmdhbiBzYWNoIG1hIGtob25n IGNvIHBoZSANCmNodWFuIGN1YSBRdW9jIEhvaS4gQ2FpIG5heSB0aGkgdG90LCB1bmcgaG8gYW5o IDQgdmkgYWkgY3VuZyBiaWV0IHJhbmcga2ljaCBjYXUgbmh1IHRoZSANCmNoYW5nIHF1YSBkZSBj dXUgY2FjIGRhaSBnaWEgZGFuZyBubyBuZ2FuIGhhbmcgYmkgZGF0LiBOaHVuZyBjYWkgZGUgeHVh dCBjdWEgYW5oIDMgdmUgDQp2aWVjIHRhbSBkdW5nIGhheSBob2FuIG5vcCB0aHVlIFROQ04gYmkg YW5oIDQgY2FuIHRoaSBsYSBjaHV5ZW4geGF1LiBDaGFuZyBiaWV0IGFuaCAzIA0KY28gdGh1YyBz dSBuZ2hpIGNobyBkYW4ga2hvbmcga2hpIGRlIG5naGkgaG9hbiwgZHVuZyB0aGkgaGFuaCBsdWF0 IHRodWUgVE5DTiwgbmhpZXUgDQpuZ3VvaSBiYW8gcmFuZyBuZXUgY28gdGhpIHRhaSBzYW8ga2hv bmcgZGUgbmdoaSB0dSBzb20ga2hpIGNvIHJhdCBuaGlldSBuZ3VvaSBsZW4gdGllbmcgDQpjYW5o IGJhbyB2YSBrZXUgZ29pIGRpZXUgbmF5IG1hIGRlIHRvaSBnaW8gY2hvdCwgbmh1bmcgcm8gcmFu ZyBsYSBjYWkgbmF5IHJhdCBjYW4gdGhpZXQgZGUgDQpkYW4gZG8ga2hvLiBVQlRWUUggZGEgdHUg Y2hvaSBkZSBuZ2hpIG5heSBjdWEgQ2hpbmggcGh1IHZpIHZpZW4gZGFuIGR1IHRodSBkaWV1IGx1 YXQsIA0KcGhhaSBjaGkgY2FpIGdpIGhvIGN1bmcgdG9uIHRyb25nIGx1YXQgcGhhcCBuaHUgdGhl IHRoaSBkYW4gZG8ga2hvIGJpZXQgbWF5Lg0KDQpHaW9pIGFtIGhpZXUgY2hpbmggdHJ1b25nIG5o YW4gZGluaCByYW5nIGFuaCA0IGxhbSB0aGUgbGEgZHVuZyB2aSBuZXUgZGUgYW5oIDMgZHVuZyAN CnRpZW4ga2ljaCBjYXUgeGFpIGNobyBkYWkgZ2lhIHRoaSB0aW5oIHRyYW5nIGJvbmcgYm9uZyBu Z2FuIGhhbmcgdmEgdHkgZ2lhIGNvIHRoZSBrZW8gZGFpIA0KdGhlbSBkdW9jIDMgZGVuIDQgdGhh bmcgbnVhOyBuZXUgZGUgYW5oIDMgbGF5IGRpZW0gdm9pIGRhbiB2ZSB2aWVjIGR1bmcsIGhvYW4g ZG9uZyANCnRodWUgVE5DTiB0aGkgdGluaCBoaW5oIHNlIGxheSBsYXQgdGhlbSBkdW9jIHZhaSB0 aGFuZyBudWEuIFRyb25nIGtoaSBkbyBob2kgbmdoaSBUcnVuZyANCnVvbmcgZ2l1YSBuaGllbSBr eSB0aGkgY2hhbSBuaGF0IHRoYW5nIDIuMjAwOSBwaGFpIHRvIGNodWMsIGtob25nIHRoZSBjaGFt IGhvbi4gQW5oIA0KNCBtdW9uIG1vaSBuZ3VvaSBuaGluIHRoYXkgY2FpIHN1IGJpIGRhdCB0aGF0 IHN1IGN1YSBoaWVuIHRyYW5nIGtpbmggdGUgeGEgaG9pLiBNb3QgdGhhbiANCmNhbiBjdWEgYW5o IDQgbm9pIHZ1aSByYW5nICJkZSBudW9jIGNhbiB0aGkgYmlldCB0aGFuZyBuYW8gbWFjIHF1YW4s IHRoYW5nIG5hbyBraG9uZyIuIA0KSG9tIHF1YSBuZXUgeGVtIFRWIG1vaSBuZ3VvaSBzZSB0aGF5 IGFuaCA0IGRlbiBUb25nIENvbmcgdHkgU0NJQyBjaGkgZGFvLCBuZ2hlIA0KYmFvIHJhbmcgYW5o IDQgcmFuIGRlIGdoZSBsYW0sIGx1YyBsdW9uZyBuYXkgcGhhaSBuYW0gaW0uIEFuaCAzIGRhbmcg aGV0IHN1YyB0dWMgZ2lhbiANCm5odW5nIGNodWEgY28gY2FjaCBuYW8gZGUgcGhhbiBjb25nLCBu aHVuZyBhbmggMyB2b24gbm9pIHRpZW5nIGxhIHRhbyBiYW8gdmEgbGlldSBsaW5oIA0KbmVuIGNo dWEgYmlldCBkdW9jIGdpbyBjaG90IHNlIHR1bmcgcmEgY2hpZXUgZ2kgYmF0IG5nbyBoYXkga2hv bmcuIA0KDQpDb24gY2FjIGRhaSBnaWEgYmF5IGdpbyBjdW5nIGtob25nIGNvbiBkdSBzdWMgZGUg YnVuZyB0aWVuIHJhIGtoaSBjYW4gdGhpZXQgdGhlbyBsZW5oIGN1YSANCnF1YW4gdGhheSBuaHUg dHJ1b2MgZGF5IG51YSwgY2FjIGR1b25nIGtpbmggdGFpIGRhIGJpIGJpdC4gVHJvbmcgdHVhbiB0 b2kgc2UgcGhhaSBjbyBxdXlldCANCmRpbmggdmUgbmdheSB0byBjaHVjIGhvaSBuZ2hpIFRydW5n IHVvbmcsIGtoaSBkbyBzZSBiaWV0IGR1b2MgY2FuIGNhbiBkYXUgZGEgc2UgbmdoaWVuZyB2ZSBi ZW4gbmFvLiANCg0KaHR0cDovL3d3dy52aWV0aW5mby5ldS90aW4ta2luaC10ZS92dS12aW5hc2hp bi1raGllbi1jYWMtbmhhLWRhdS10dS1jYW0tdGglRTElQkElQTV5LWIlRTElQkElQTV0LWFuLmh0 bWwgV1NKLCBEYW4gVHJpIDIzLTA5LTIwMTAgMDg6MDUNCg0KVnUgVmluYXNoaW4ga2hpZW4gY2Fj IG5oYSBkYXUgdHUgY2FtIHRoYXkgYmF0IGFuIA0KDQpTdSBzdXkgc3VwIGN1YSBtb3QgdHJvbmcg bmh1bmcgY29uZyB0eSBxdW9jIGRvYW5oIGhhbmcgZGF1IG8gVmlldCBOYW0gZGFuZyBib2MgbG8g DQpuaHVuZyBoYW4gY2hlIGN1YSBjb25nIGN1b2MgY2hhbiBodW5nIGtpbmggdGUgVmlldCBOYW0u DQoNCkNhYyBwaGFpIHZpZW4gY3VhIHRvIFdhbGwgU3RyZWV0IEpvdXJuYWwgZGEgdGh1YXQgbGFp IG5odW5nIHZ1IHZpZWMgeG9heSBxdWFuaCBUYXAgZG9hbiANClZpbmFzaGluIGRhbmcgYmkga2h1 bmcgaG9hbmcgdGFpIGNoaW5oIHZhIGR1YSByYSBuaGFuIGRpbmggdnVhIGtlIHRyb25nIGJhaSB0 dW9uZyB0aHVhdCBob20gdGh1IFR1LiANCkJhaSB0dW9uZyB0aHVhdCBjaG8gYmlldCBWaW5hc2hp biBkYW5nIG5vIGdhbiA1IHRpIGRvIGxhIHZhIHRpZW4gaGFuaCB0YWkgY28gY2F1LCB0cm9uZyAN Cmx1YyBnaW9pIGRhdSB0dSBuZXUgbGVuIG5naGkgdmFuIGxhIFZpZXQgTmFtIGNvIGtoYSBuYW5n IGJ1IGxvIGNobyBjYWMgZG9hbmggbmdoaWVwIG5oYSBudW9jIHRyb25nIGJhbyBsYXUgbnVhLiAN Cg0KTmVuIGtpbmggdGUgVmlldCBOYW0gbm9pIGNodW5nIHZhbiB0aWVwIHR1YyB0YW5nIHRydW9u ZywgYmF0IGNoYXAgdnUga2h1bmcgaG9hbmcgbm8gDQpuYW4gY3VhIFZpbmFzaGluLiBNYWMgZHUg dmF5LCBuaHVuZyBidW9jIHNhaSBsYW0gdm9pIFZpbmFzaGluIGRhIGtoaWVuIGNobyBjYWMgbmhh IA0KZGF1IHR1IGNhbSB0aGF5IGJhdCBhbi4gVHJvbmcgbHVjIGNhYyB0aGkgdHJ1b25nIGNodW5n IGtob2FuIG8gbmh1bmcgbnVvYyBsYW5nIGdpZW5nIA0Kbmh1IEluZG9uZXNpYSB2YSBQaGlsaXBw aW5lcyB0YW5nIGNhbyB0b2kgbXVjIGt5IGx1YywgY2hpIHNvIGNodW5nIGtob2FuIGNoaW5oIGN1 YSBWaWV0IA0KTmFtIGRhIHN1dCBnaWFtIDgsMyUgdHUgZGF1IG5hbSB0b2kgbmF5LCBnaXVhIGx1 YyBjYWMgbmhhIGRhdSB0dSBsbyBuZ2FpIHZlIGtoYSBuYW5nIA0KZHV5IHRyaSB0aSBsZSB0YW5n IHRydW9uZyBjYW8gY3VhIG5lbiBraW5oIHRlIFZpZXQgTmFtLiANCg0KVGhlbyB0aW4gdHVjIGJh byBjaGkgVmlldCBOYW0sIGNhYyBzbyBsaWV1IHRob25nIGtlIGNodWEgZGF5IGR1IGNobyB0aGF5 IFZpbmFzaGluIGNvbiANCm5vIGNhYyBuZ2FuIGhhbmcgbW90IGtob2FuIHRpZW4gbGVuIHRvaSA4 NiBuZ2FuIHRpIGRvbmcgdm9pIHRpZW4gbGFpIGhhbmcgbmFtIGtob2FuZyAxMCANCm5nYW4gdGkg ZG9uZy4gDQpNb2kgZGF5IFF1eSBUaWVuIHRlIFF1b2MgdGUgY2FuaCBiYW8gcmFuZyBuaHVuZyBr aG9hbiB2YXkgY3VhIFZpbmFzaGluIG1hIGtob25nIA0KZHVvYyBjaGluaCBwaHUgY29uZyBraGFp IGJhbyBsYW5oIHNlIGtob25nIGR1b2MgcGhhbiBhbmggdHJvbmcgZGluaCBuZ2hpYSBubyBjb25n LCANCm5odW5nIGtob2FuIHZheSBuYXkgZHVvYyB4ZW0gbGEgcGhhbiBjaGltIGN1YSB0YW5nIGJh bmcgdmEgdGFvIHJ1aSBybyBsYW0gY2hvIG5vIGNvbmcgY3VhIFZpZXQgTmFtIHhhdSBkaS4gDQoN Cmh0dHA6Ly92bnI1MDAudm4vMjAxMC0xMC0yMi1uby1jb25nLWtoby1oaWV1LW5ndW9uZy1uYW8t YW4tdG9hbiBUYWMgZ2lhOiBQaGFtIEh1eWVuLSBUaHV5IENodW5nIC0gTGFuIEFuaCANCg0KTm8g Y29uZzogS2hvIGhpZXUgbmd1b25nIG5hbyBhbiB0b2FuIA0KDQpUSU4gTElFTiBRVUFODQoqIFF1 YW4gbHkgbm8gY29uZyAtIG5vaSBsbyBjaGFuZyBjdWEgcmllbmcgYWkNCiogTm8gY29uZyBkYSBv IG11YyA1Miw2JSBHRFAgDQoqIFR1IG11IGNodXllbiB0cmEgbm8gdGhheSBjaG8gVmluYXNoaW4N CiogTm8gY29uZyBjdWEgVmlldCBOYW0gY28gdHJvbmcgZ2lvaSBoYW4gYW4gdG9hbj8NCg0KKFZO UjUwMCkgLSBRdW9jIGhvaSBraG9hIFhJLCBubyBjb25nIGtob2FuZyAzMC00MCUgR0RQLCBjYWMg ZG9uZyBjaGkgYmFvIGNvbiBhbiANCnRvYW4sIDUwJSBtb2kgbWF0IGFuIHRvYW4uIERlbiBuYXks IGRhIHZheSB0cmVuIDUwJSwgY2FjIGRvbmcgY2hpIGJhbyB2YW4gYW4gdG9hbiwgZGFpIA0KYmll dSBRdW9jIGhvaSBOZ3V5ZW4gTWluaCBUaHV5ZXQgYmFuIGtob2FuLg0KDQpWYW4gZGUgbm8gY29u ZyB2YSBoaWV1IHF1YSBkb25nIHZvbiBOaGEgbnVvYyB0aWVwIHR1YyBkdW9jICJ4b2kiIGxlbiB0 YWkgcGhpZW4gdGhhbyANCmx1YW4gdG8gY2hpZXUgMjIvMTAgdmUgdGluaCBoaW5oIHRodWMgaGll biBrZSBob2FjaCBuZ2FuIHNhY2ggTmhhIG51b2MgMjAxMCwgZHUgdG9hbiANCjIwMTEgdmEgbmd1 eWVuIHRhYyBwaGFuIGJvIE5nYW4gc2FjaCBuYW0gMjAxMS4NCg0KTGFwIGxvIG5ndW9uZyBhbiB0 b2FuIG5vIGNvbmcNCg0KRGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0IChMYW5nIFNvbiksIGJh eSB0bzogIlRyb25nIGJhbyBjYW8gY3VhIENoaW5oIHBodSwgY28gY2hpIA0KZGUgdHJhIG5vIG5o dW5nIGNodWEgdGhheSBjbyB0aHUgdHUgdmF5IG5vLCB0cm9uZyBraGkgZGF5IGRhbmcgbGEgdmll YyBtYSBkYW4gdGEgcmF0IHF1YW4gDQp0YW0sIGtoaSBtYSBubyBjb25nIGxlbiBkZW4gaG9uIDU2 JSBHRFAuDQoNClRoZW8gcXV5IGRpbmggY3VhIEx1YXQgUXVhbiBseSBubyBjb25nLCBRdW9jIGhv aSBjbyB0aGFtIHF1eWVuIHhhYyBkaW5oIHNvIHZheSBubyANCmN1YSBuYW0gdGFpIGNoaW5oLCBu aHUgZGluaCB2YXkgYWksIHZheSBsYW0gZ2kuIERlIFF1b2MgaG9pIGNvIHkga2llbiB0aGkgcGhh aSBjbyBiYW8gDQpjYW8sIG5odW5nIHRyb25nIGJhbyBjYW8gbmF5IGtob25nIGNvLiINCg0KT25n IFRodXlldCBuaGFuIG1hbmgsIHBoYWkgeGVtIHhldCBubyBjb25nIGRlbiBtdWMgbmFvIGxhIGhl dCBuZ3VvbmcgYW4gdG9hbi4gQm9pIA0KdGhlbyBvbmcsIENoaW5oIHBodSB2YW4gY29uIGNodWEg cm8gcmFuZyB0cm9uZyB2YW4gZGUgbmF5Lg0KDQoiVHJ1b2MgZGF5LCBraGkgdG9pIHRoYW0gZ2lh IGtob2EgWEksIG5vIGNvbmcga2hvYW5nIDMwLTQwJSB0aGkgY2FjIGRvbmcgY2hpIGJhbyBjb24g DQphbiB0b2FuLCA1MCUgbW9pIG1hdCBhbiB0b2FuLiBEZW4gbmF5IGRhIHZheSB0cmVuIDUwJSwg Y2FjIGRvbmcgY2hpIGJhbyB2YW4gYW4gdG9hbiwgDQpjbyBudW9jIHZheSAyMDAlIGNvLCBuaHUg TXksIE5oYXQuIE5odW5nIG1pbmggc28gdm9pIGhvIGtob25nIGR1b2MhIiBkYWkgYmlldSBUaHV5 ZXQgY2hpYSBzZS4NCg0KT25nIGNobyByYW5nIHRyb25nIGt5IGhvcCBuYXksIENoaW5oIHBodSBw aGFpIGJhbyBjYW8gdm9pIFF1b2MgaG9pIHJhdCBjdSB0aGUgdmUgbm8gDQpjb25nLiBDaGluaCBw aHUgY2FuIGx5IGdpYWkgdm9pIFF1b2MgaG9pIG5vIGNvbmcgbGEgZ2ksIGRlbiBuZ3VvbmcgbmFv IGxhIGFuIHRvYW4sIGNhbiANCmN1IGtob2EgaG9jIG5hbyBkZSB0aW5oLi4uIHRoaSBRdW9jIGhv aSBtb2kgeWVuIHRhbS4gRGFuZyBuYXkgUXVvYyBob2kga2hvbmcgYmlldCANCnRob25nIHRpbiBn aSBtYSBjdSBxdXlldCwgcm9pIG5hbSBzYXUgbGFpIG5oYW4ga2h1eWV0IGRpZW0uDQoNClRydW9j IGRheSwgdHJvbmcgbmhpZXUgbGFuIHBoYXQgYmlldSB2b2kgYmFvIGNoaSwgQm8gVGFpIGNoaW5o IGNobyByYW5nLCB0aG9uZyBsZSBxdW9jIHRlIA0KbGEuLi4gZHVvaSA1MCUgR0RQIGxhIGFuIHRv YW4uIFNvbmcgZGVuIG5heSwgbXVjIGR1b2MgY2hvIGxhIGFuIHRvYW4gdGhlbyB5IGtpZW4gY3Vh IA0KVXkgYmFuIFRhaSBjaGluaCAtIE5nYW4gc2FjaCBOaGEgbnVvYyBsYWkgbGEgImR1b2kgNjAl Ii4NCg0KVmF5IDEgdHkgVVNELCBMb2MgZGF1IER1bmcgUXVhdCBjbyBuZ3V5IGNvIGxvDQoNClRo ZW8gRGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0LCByaWVuZyBOaGEgbWF5IGxvYyBkYXUgRHVu ZyBRdWF0IGRhIHZheSBraG9hbmcgMSAgDQp0eSBVU0QgZGUgZGF1IHR1LCBsYWkgc3VhdCBsYSA3 LDUlLiBNb3QgbmFtLCBwaGFpIHRyYSA3NSB0cmlldSBVU0QsIGxpZXUgdGF0IGNhIHNvIGRhdSAN CkR1bmcgUXVhdCBzYW4geHVhdCByYSBjbyBkdSB0cmEgbm8gaGF5IGtob25nPw0KDQpDdW5nIGxp ZW4gcXVhbiB0b2kgY2h1IGRhdSB0dSBjdWEgTmhhIG1heSBMb2MgZGF1IER1bmcgUXVhdCwgbmhp ZXUgeSBraWVuIGRhaSBiaWV1IA0KUXVvYyBob2kgdG8gdmUga2hvbmcgZG9uZyB0aW5oIHZvaSB2 aWVjIENoaW5oIHBodSBzZSByb3QgdGhlbSAzLjUwMCB0eSBkb25nIHZvbiBOZ2FuIA0Kc2FjaCBj aG8gVGFwIGRvYW4gRGF1IGtoaSBRdW9jIGdpYSAoUFZOKS4gTXVjIG5heSBjaGllbSB0b2kgNjcl IHZvbiBOZ2FuIHNhY2ggDQpkYW5oIGNobyBjYWMgZG9hbmggbmdoaWVwIE5oYSBudW9jIG5hbSAy MDExLg0KDQpCYSBUcmFuIFRoaSBRdW9jIEtoYW5oLCBkYWkgYmlldSBIYSBOb2ksIG5vaSwgbmd1 b24gTmdhbiBzYWNoIE5oYSBudW9jIG5lbiBkYXUgdHUgDQp1dSB0aWVuIGNobyBuaHVuZyBkb2kg dHVvbmcgdGhpZXQgdGh1YyBraGFjIG5odSBjaG8gZGllbiwgYm9pIG5nYW5oIGRpZW4gZGFuZyB0 aGlldSB2b24gDQpuYW5nLiBWb24gY2hvIGNvbmcgdHJpbmggZGllbiBjaHUgeWV1IGNvIG5ndW9u IHR1IEFEQiwgdmF5IHRodW9uZyBtYWkgdHJvbmcgbnVvYyB2byANCmN1bmcga2hvIGtoYW4sIHRy b25nIGtoaSB0aGlldSBkaWVuIGRhbmcgcmF0IGNhcCBiYWNoLg0KDQpEYWkgYmlldSBUcmFuIER1 IExpY2ggKFRQLkhDTSkgZGUgbmdoaSwgQ2hpbmggcGh1IHNlIHBoYWkgbGFtIHJvIHZpZWMgcGhh biBibyAzLjUwMCANCnR5IGRvbmcgY2hvIFRhcCBkb2FuIG5heSB2YSB2aWVjIHBoYW4gYm8gZG8g cGhhaSBkbyBRdW9jIGhvaSBxdXlldCBkaW5oLg0KDQpIaWVuIG5heSwgdm9uIGRhdSB0dSBuaGEg bnVvYyBkYW5oIGNobyBjYWMgVGFwIGRvYW4sIGRlbiBraGkgY28gbG9pIG5odWFuIHRoaSBsYWkg dGh1IHZlIA0KY2hvIFRhcCBkb2FuIGRvLg0KDQpPbmcgTGljaCBjdW5nIGRlIG5naGksIENoaW5o IHBodSBuZW4gZ2lhaSB0cmluaCBjYSB2aWVjIGxvaSB0dWMgY3VhIFBWTi4gS2hvYW4gbG9pIA0K bmh1YW4gY3VhIFRhcCBkb2FuIGxhIGN1YSBDaGluaCBwaHUgdXkgdGhhYyBjaG8gdGFwIGRvYW4g YmFuIHRhaSBuZ3V5ZW4sIGhheSBkbyBsYSBsb2kgDQp0dWMgY3VhIHJpZW5nIHRhcCBkb2FuLg0K DQpCb2kgY2hpIHRhbmcgY2FvIGN1bmcgbGEgZG8gY2hpIGNobyBjYWMgdGFwIGRvYW4gY2h1YSBo aWV1IHF1YS4gVGhlbyBjYWMgZGFpIGJpZXUgdGluaCANCnRvYW4sIG11YyBib2kgY2hpIG5hbSAy MDEwIGxhIHRvaSA3JSBjaHUga2hvbmcgcGhhaSBsYSBkdW9pIDYlIG5odSBDaGluaCBwaHUgYmFv IGNhby4NCg0KRGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0IGJvIHN1bmc6IERlbiBiYXkgZ2lv IGNhYyB0YXAgZG9hbiBraW5oIHRlLCBjYWMgY29uZyB0eSANCm5oYSBudW9jIHZhbiBiYW8gY2Fw LCBjdSBoZXQgdm9uIHJvaSBsYWkgcm90IHZvbi4gVmluYXNoaW4gZGEgdGh1YSBsbyByb2kgbmh1 bmcgdmFuIHRpZXAgDQp0dWMgcm90IHRoZW0gNzAwIHRyaWV1IGRvIGxhIHZvaSBsYWkgc3VhdCBj YW8gaG9uIGxhaSBzdWF0IHRyYSBjaG8gbmdhbiBoYW5nIFZpZXQgTmFtIGRvbmcgDQpuZ2hpYSB2 b2kgdmllYyBraG9uZyB2YXkgbmdhbiBoYW5nIFZpZXQgTmFtIG51YSBtYSB2YXkgbmdhbiBoYW5n IG51b2MgbmdvYWkuDQpUcm9uZyBraGkgZG8sIG5odW5nIG51b2MgZG9uZyB0YXUgaGFuZyBkYXUg ZGEgYmF0IGRhdSB0aGF5IG5nYW5oIGRvbmcgdGF1IGFuaCBodW9uZyANCmRlbiBtb2kgdHJ1b25n LCBsYWkga2hvbmcgZGFuZyBiYW8gbmhpZXUgdmEgdGltIGNhY2ggcnV0IHJhIHRoaSBWaWV0IE5h bSBsYWkgcmF0IGhvYW4gaGkgDQpwaGFuIGRhdSBjaGllbSB2aSB0cmkgdGh1IDMsIHRodSA0IG5o dW5nIHJvaSBjdW5nIHRodWEgbG8uDQoNClJ1dCBraW5oIG5naGllbSB0dSB2dSBWaW5hc2hpbiwg b25nIFRyYW4gRHUgTGljaCBkZSBuZ2hpLCBRdW9jIGhvaSBjYW4gYmFuIGhhbmggTmdoaSANCnF1 eWV0IHlldSBjYXUgdGFwIGRvYW4sIHRvbmcgY29uZyB0eSBuaGEgbnVvYyBjb25nIGtoYWkgYmFv IGNhbyB0YWkgY2hpbmggbmh1IGNhYyBjb25nIA0KdHkgbmllbSB5ZXQgdHJlbiB0aGkgdHJ1b25n IGNodW5nIGtob2FuLiBMYW0gbmh1IHZheSBzZSBnaXVwIG5oYW4gZGFuIGRlIGRhbmcgZ2lhbSBz YXQgDQpob2F0IGRvbmcgY3VhIHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgbmhhIG51b2MsIGRvbmcg dGhvaSwgYmFvIGRhbSBjb25nIGJhbmcgZ2l1YSBjYWMgDQpkb2FuaCBuZ2hpZXAuIA0KDQpOZ2Fu IHNhY2ggdGhlbSAib2FuIGx1bmciIHZpIG5odW5nIHF1eWV0IGRpbmggbmdhdSBodW5nPw0KDQpL aG9uZyBjaGkgY2h1eWVuIHZheSBubyBkZSBwaGF0IHRyaWVuIGtpbmggdGUsIFBobyBDaHUgbmhp ZW0gVXkgYmFuIFZhbiBob2EsIEdpYW8gDQpkdWMgdmEgVGhhbmggdGhpZXUgbmllbiBuaGkgZG9u ZyBOZ3V5ZW4gTWluaCBUaHV5ZXQgY29uIGRhbiBjaHVuZyB2ZSBtb3Qgc28gcXV5ZXQgDQpkaW5o IGRhdSB0dSB2YW8gZ2lhbyBkdWMgZ2FuIGRheSBtYW5nIG1hdSBzYWMgbmdhdSBodW5nLCBraGll biBuZ2FuIHNhY2ggdGhlbSAib2FuIA0KbHVuZyIuDQpPbmcgVGh1eWV0IGxheSB2aSBkdTogZ2lh byBkdWMgeGF5IGR1bmcgdGhlbSBtYXkgdHJ1b25nIGRhaSBob2MgeHVhdCBzYWMga2hvbmcgYmll dCB0dSANCmRhdSByYS4gQ2h1bmcgdGEgbW9pIG51b2MgbmdvYWkgdmFvIHhheSBkdW5nIDUgdHJ1 b25nIGRhaSBob2MgdmEgY2hpbmggcGh1IFZpZXQgTmFtIA0KZG9uZyBjaGkgcGhpIHR1IDIwMCBk ZW4gMzAwIHRyaWV1IGRvIGxhIHZhbyBtb2kgdHJ1b25nIGRvLCB2aSBjaGkgdG9uZyBzbyB0aWVu IGxhIDEgdGkgcnVvaSANCmRvIGxhIDMwIG5naGluIHRpIFZpZXQgTmFtLiBDb24gc28gbmF5IHR1 b25nIGR1b25nIHZvaSBtb3QgY29uZyB0cmluaCB0cm9uZyBkaWVtIGN1YSANCnF1b2MgZ2lhLg0K VHJvbmcga2hpIGRvIHF1YW4gZGllbSB4YXkgZHVuZyBjYWMgdHJ1b25nIGRhaSBob2MgbmF5IHRo ZSBuYW8gdGhpIGtob25nIGNvIGFpIGJhbyBjYW8uDQpEYWkgYmlldSBOZ3V5ZW4gTWluaCBUaHV5 ZXQga2UgbGFpIGNhdSBjaHV5ZW4gZGkgZ2lhbSBzYXQgdGFvIHRydW9uZyBEYWkgaG9jIFZpZXQg DQpEdWMuIFRydW9jIGRheSBuaHVuZyBraG9hIGRhdSBjaGkgdHV5ZW4gc2luaCAyOCBuZ3VvaSBu aHVuZyBjaGluaCBwaHUgZGF1IHR1IDIwMC0NCjMwMCB0cmlldSBkbyB2YSBjaGkgNjAlIG5nYW4g c2FjaCB0aHVvbmcgeHV5ZW4gY2hvIHRydW9uZy4gSG9jIHBoaSAxNSBuZ2hpbiBkbyBtb3QgDQpu YW0sIG1vaSBuYW0gQ2hpbmggcGh1IGNvIGNoaW5oIHNhY2ggaG8gdHJvIHRoZW0gbW9pIGVtIDcu NTAwIGRvIGRlIGtodXllbiBraGljaCANCmNhYyBlbSB2YW8gaG9jLiBWYW4gZGUgbGEgY2FjIGVt IGRvIGtob25nIHBoYWkgbGEgY29uIG5oYSBuZ2hlbywgaG9jIGhhbmgga2hvbmcgeHVhdCANCnNh YyB2YSBjdW5nIGNoYW5nIHBoYWkgbGEgY29uIGNoYXUgdGh1b25nIGJpbmggbGlldCBzaSBnaSBj YS4NClZpIHZheSwgbmV1IG5vaSBnaWFvIGR1YyBsYSBxdW9jIHNhY2ggaGFuZyBkYXUgdGhpIHhp biBraWVuIG5naGkgZG9uZyBjaGkgbmFvIHRoYW0gZHUgDQpEYWkgaG9pIHBoYWkgYmFuIHRoYXQg ImhhbmcgZGF1Ii4gTm9pIDIwJSBkYW5oIGNobyBnaWFvIGR1YyBuaHVuZyBnaWFvIGR1YyBsYSBj YSBkYW8gDQp0YW8gY2FuIGJvIGNoaW5oIHRyaSB0dSBodXllbiwgaGUgdGhvbmcgYW4gbmluaCBx dW9jIHBob25nLi4uLmNodSBraG9uZyBwaGFpIGhvYW4gdG9hbiANCmNobyBjYWMgY2hhdSwgdmEg bmh1IHZheSBkYW4gcGhhaSBibyB0aWVuIHR1aSByYSAtIG9uZyBUaHV5ZXQgYmFuIGtob2FuLiAN Cg0KIk5ldSBtaW5oIGN1IHllbiB0YW0gdm9pIHRhdCBjYSBiZSBtYXQgb24gZGluaCB0aGUgbmF5 LCBraG9uZyB0aW5oIGRlbiBzb25nIG5nYW0gdGhpIGNvIA0KbHVjIG1pbmggc2UgcGhhaSB0cmEg Z2lhIiAtIERhaSBiaWV1IE5ndXllbiBNaW5oIFRodXlldCBrZXQgbHVhbi4gDQoNCmh0dHA6Ly90 dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAtMTEtMDctc28tbGlldS10aG9uZy1rZS10aGF0 LWdpYS1raG8tcGhhbi0gVnUgVGhhbmggVHUgQW5oIFRCS1RTRyANCg0KU28gbGlldSB0aG9uZyBr ZTogVGhhdCAtIGdpYSBraG8gcGhhbiENCg0KVHJvbmcgY29uZyB0YWMgdGhvbmcga2Uga2luaCB0 ZSwgVmlldCBOYW0gaGF5IHR1ICJzYW5nIHRhbyIgcmEgbmh1bmcgZGluaCBuZ2hpYSByaWVuZywg DQpraG9uZyBuaGF0IHRoaWV0IHR1b25nIGRvbmcgdm9pIHRob25nIGxlIHF1b2MgdGUuDQpUaGFt IGh1dCBuZ2FuIHNhY2ggY3VhIFZpZXQgTmFtIHNvIHZvaSBHRFAgdHJvbmcgbmFtIDIwMDkgbGEg YmFvIG5oaWV1PyBCbyBUYWkgDQpjaGluaCBub2kgNiw5JSwgUXV5IFRpZW4gdGUgcXVvYyB0ZSAo SU1GKSBkdWEgcmEgY29uIHNvIDgsOSUsIGNvbiBFY29ub21pc3QgDQpJbnRlbGxpZ2VuY2UgVW5p dCAoRUlVKSB1b2MgdGluaCA5LDYlLiBUaGF0IGtobyBkZSBjbyB0aGUga2hhbmcgZGluaCB0cm9u ZyBuaHVuZyBjb24gc28gDQpuYXksIGNvbiBzbyBuYW8gcGhhbiBhbmggZHVuZyBuaGF0IHRodWMg dHJhbmcgY2FuIGNhbiBuZ2FuIHNhY2ggY3VhIFZpZXQgTmFtLg0KDQpUdW9uZyB0dSBuaHUgdmF5 LCBkb2kgdm9pIG5oaWV1IGNoaSBiYW8gdmkgbW8gY28gYmFuIGtoYWMgbmh1IG5vIGNvbmcgdmEg ZHUgdHJ1IG5nb2FpIA0KaG9pLCBtb2kgbmd1b24gc28gbGlldSBkdWEgcmEgbW90IGtoYWMuIE5n dXllbiBuaGFuIGN1YSB0aW5oIHRyYW5nIG5heSBuYW0gbyBkYXU/IA0KDQpUcm9uZyBjb25nIHRh YyB0aG9uZyBrZSBraW5oIHRlLCBWaWV0IE5hbSBoYXkgdHUgInNhbmcgdGFvIiByYSBuaHVuZyBk aW5oIG5naGlhIHJpZW5nLCANCmtob25nIG5oYXQgdGhpZXQgdHVvbmcgZG9uZyB2b2kgdGhvbmcg bGUgcXVvYyB0ZS4gDQoNCkxheSB2aSBkdSBuaHUgbm8gY29uZyBjaGFuZyBoYW4uIE1hYyBkdSBk b2FuaCBuZ2hpZXAgbmhhIG51b2MgKEROTk4pIHRodW9jIGtodSANCnZ1YyBjb25nLCBjbyBuZ2hp YSBsYSBuZXUgRE5OTiBraG9uZyB0cmEgZHVvYyBubyB0aGkgZHVvbmcgbmhpZW4gTmhhIG51b2Mg cGhhaSBjaGl1IA0KdGhheSB0cmFjaCBuaGllbSwgdGhlIG5odW5nIHRoZW8gZGluaCBuZ2hpYSBj dWEgQm8gVGFpIGNoaW5oIG5vIGNvbmcgbGFpIGtob25nIGJhbyANCmdvbSBubyBjdWEgRE5OTi4N Cg0KQ2FjaCBjYW4gZG9pIHRodSAtIGNoaSBuZ2FuIHNhY2ggY3VhIHRhIGN1bmcga2hhYyB0aGUg Z2lvaSBvIGhhaSBkaWVtIHF1YW4gdHJvbmcuIFRodSANCm5oYXQsIHBoYW4gdHJhIG5vIGdvYyBk dW9jIHRpbmggdmFvIGNoaSBuZ2FuIHNhY2g7IHZhIHRodSBoYWksIGNhYyBraG9hbiB0aHUsIGNo aSBuZ29haSBkdSANCnRvYW4gKGNvbiBnb2kgbGEgbmdvYWkgbmdhbiBzYWNoKSBraG9uZyBkdW9j IGR1YSB2YW8gY2FuIGRvaSBuZ2FuIHNhY2ggdG9uZyBob3AuIERpZXUgDQpuYXkgY28gbmdoaWEg bGEgcGhhbiBsb24gY2FjIGtob2FuIGhvIHRybyBwaGF0IHRyaWVuIGNoaW5oIHRodWMgKE9EQSkg dmEgbmd1b24gdGh1IHR1IA0KdHJhaSBwaGlldSBjaGluaCBwaHUgYmkgZHVhIHJhIG5nb2FpIG5n YW4gc2FjaC4NCg0KVmkgdGllbiBjdWEgQ2hpbmggcGh1IHZpIHZheSBjbyBoYWkgbmdhbiwgbW90 IG5nYW4gbGEgdHJvbmcgbmdhbiBzYWNoLCBtb3QgbmdhbiBsYSBuZ29haSANCm5nYW4gc2FjaC4g VmllYyBraG9uZyBjb25nIGJvICJuZ2FuIiBuZ29haSBuZ2FuIHNhY2ggbW90IG1hdCBkaSBuZ3Vv YyBsYWkgZGlldSAzIGN1YSANCkx1YXQgTmdhbiBzYWNoIDIwMDIgdmUgY29uZyBraGFpLW1pbmgg YmFjaCwgbWF0IGtoYWMgZHVhIHJhIG1vdCBidWMgdHJhbmgga2hvbmcgDQp0cnVuZyB0aHVjIHZl IHN1YyBraG9lIGN1YSBuZW4gdGFpIGtob2EgcXVvYyBnaWEuDQoNCkNhYyB0byBjaHVjIHF1b2Mg dGUga2hpIHRpbmggdG9hbiBjYWMgY2hpIGJhbyB0aG9uZyBrZSBsdW9uIHBoYWkgY2FuIGN1IHZh byBtb3QgZGluaCANCm5naGlhIHRob25nIG5oYXQuIE5odW5nIHZpIG1vdCBzbyBkaW5oIG5naGlh IGN1YSB0YSBraGFjIG5ndW9pIG5lbiBkZSB0cmFuaCB2aWVjICJzbyANCnNhbmggY2FtIHZvaSB0 YW8iLCBobyB0aHVvbmcgcGhhaSB0aW5oIHRvYW4gbGFpIGNhYyBjaGkgYmFvIHRob25nIGtlIHRo ZW8gbW90IGRpbmggbmdoaWEgDQpjaHVuZy4gDQoNClZvaSBuZ3VvbiBzbyBsaWV1IGtob25nIGRh eSBkdSB2YSBuaGlldSBraGkgdHUgbXUsIHRoYW0gY2hpIGJpIG1hdCAobmh1IHNvIGxpZXUgdmUg ZHUgDQp0cnUgbmdvYWkgaG9pIGNoYW5nIGhhbiksIGtob25nIHRoZSB0cmFuaCBraG9pIHRpbmgg dHJhbmcgdW9jIHRpbmggY3VhIGNhYyB0byBjaHVjIHF1b2MgdGUgDQp2ZW5oIHNhaSBkYW5nIGtl IHNvIHZvaSB0aG9uZyBrZSBjaGluaCB0aHVjIGN1YSBDaGluaCBwaHUgbmh1IGRhIG1pbmggaG9h IG8gdHJlbi4NCg0KVGhpIHRydW9uZyBsdW9uIGNhbiB0aG9uZyB0aW4gZGUgcmEgcXV5ZXQgZGlu aC4gS2hpIHRoaWV1IHRob25nIHRpbiBjaGluaCB0aHVjLCBob2FjIA0KdGhvbmcgdGluIG1vaSBu Z3VvbiBtb3QgcGhhY2gsIGNhYyB0YWMgbmhhbiB0aGFtIGdpYSB0aGkgdHJ1b25nIGJ1b2MgcGhh aSB0dSBwaGFuIHhldCANCm5lbiBzdSBkdW5nIHRob25nIHRpbiBuYW8uDQoNClRyb25nIG5oaWV1 IHRydW9uZyBob3AsIGRpZXUgbmF5IGNoYXAgdGhlbSBjYW5oIGNobyBuaHVuZyB0aG9uZyB0aW4g ZG9uIHRob2ksIHRob2kgdGh1YyANCnRoZW0gaGFuaCB2aSAiYmF5IGRhbiIga2hpZW4gdGFtIGtp ZW0gc29hdCBjYWMgYmllbiBzbyB2aSBtbyB0dW90IG5oYW5oIGtob2kgdGFtIHRheSANCmN1YSBD aGluaCBwaHUuDQpDYWMgbmhhIGxhbSBjaGluaCBzYWNoIGN1bmcgY2FuIHRob25nIHRpbiBjaGlu aCB4YWMgZGUgY28gdGhlIGhpZXUgdGh1YyB0cmFuZyBjdWEgbmVuIA0Ka2luaCB0ZSwgdHUgZG8g ZHVhIHJhIGNhYyBjaGluaCBzYWNoIHRoaWNoIGhvcC4gUXVvYyBob2kgZGFuZyBwaGFpIHRoYW0g dHJhIHZpZWMgdGh1YyANCmhpZW4gY2FjIGNoaSB0aWV1IHBoYXQgdHJpZW4ga2luaCB0ZSAtIHhh IGhvaSBuYW0gMjAxMCBjdW5nIG5odSBzYXAgcGhhaSBxdXlldCBkaW5oIGNhYyANCmNoaSB0aWV1 IHBoYXQgdHJpZW4ga2luaCB0ZSAtIHhhIGhvaSBuYW0gMjAxMS4gVm9pIHRpbmggdHJhbmcgc28g bGlldSB0aG9uZyBrZSB0aGlldSBtaW5oIA0KYmFjaCwga2hvbmcgZGF5IGR1IHZhIGtlbSB0dW9u ZyB0aGljaCB2b2kgdGhvbmcgbGUgcXVvYyB0ZSwgdGhhdCBxdWEga2hvIGRlIGNhYyBkYWkgYmll dSANCmNvIHRoZSBob2FuIHRoYW5oIHRyYWNoIG5oaWVtIGN1YSBtaW5oLg0KDQpNb3QgdGh1b2Mg ZG8gdG90IGxhIGRpZXUga2llbiBjYW4gZGUgcmEgcXV5ZXQgZGluaCBkdW5nIGRhbi4gVHJhaSBs YWksIG1vdCB0aHVvYyBkbyB0b2kgDQpkZW0gbGFpIHJ1aSBybyBjaG8gbmd1b2kgcmEgcXV5ZXQg ZGluaC4gVGhpZXUgdGh1b2MgZG8gdG90IHZpIG5vIGtob25nIHRvbiB0YWkgbGEgbW90IGxlLCAN Cm5odW5nIGNvIHRpbmggY2hvaSBibyB0aHVvYyBkbyB0b3QgZGUgc3UgZHVuZyB0aHVvYyBkbyBz YWkgbGFpIGxhIG1vdCBsZSBraGFjLg0KDQpEYXQgbnVvYyBkYSB0cmFpIHF1YSBnYW4gbW90IHBo YW4gdHUgdGhlIGt5IGRvaSBtb2kgdmEgaG9pIG5oYXAsIGRlbiBiYW8gZ2lvIGNodW5nIHRhIA0K bW9pIGNvIG1vdCBoZSB0aG9uZyB0aG9uZyBrZSBraW5oIHRlIGNvbmcga2hhaSwgbWluaCBiYWNo LCBoYWkgaG9hIHZvaSB0aG9uZyBsZSBxdW9jIHRlIA0KdmEgdGhlbyBraXAgeWV1IGNhdSBwaGF0 IHRyaWVuIGN1YSBkYXQgbnVvYz8gDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2M3Ni9zNzYtNDMy NjE1L25vLWNvbmctY3VhLXZpZXQtbmFtLWNvLWNvbi1hbi10b2FuLmh0bSBOZ3V5ZW4gSGllbiAy OC8xMC8yMDEwIC0gMDk6MTIgDQoNCk5vIGNvbmcgY3VhIFZpZXQgTmFtIGNvIGNvbiBhbiB0b2Fu PyANCg0KVGhlbyBxdWFuIGRpZW0gY3VhIERCUUggLSBUUy4gQ2FvIFN5IEtpZW06ICJUcnVvYyBk YXksIENoaW5oIHBodSBkYSBuaGlldSBsYW4gDQpiYW8gY2FvIG5vIGNvbmcgZHVvaSBjb24gc28g NDYlIGhheSA0MiUsIDQxJSBHRFAsIHRvaSBjaG8gbGEgZHVvYy4gQ29uIGNvbiBzbyBkdWEgcmEg aGllbiBuYXkgY2FuIHBoYWkgZHVvYyBjaHUgeSIuIA0KIA0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDQ0LzIwMTAxMDI3MDAyNDExLmFzcHggQW5oIFZ1IDI3LzEw LzIwMTAgMDoyNCANCg0KVGh1IHR1b25nOiBLaG8gaGEgbGFpIHN1YXQgZG8gbGFtIHBoYXQgIA0K ICANCk11YyB0aWV1IGhhIGxhaSBzdWF0IChMUykgInZhbyAxMCwgcmEgMTIiIGN1YSBDaGluaCBw aHUgZGFuZyBuZ2F5IGNhbmcgdHJvIG5lbiBraG8gdGh1YyANCmhpZW4gaG9uIGtoaSBraGEgbmFu ZyBraWVtIHNvYXQgbGFtIHBoYXQgOCUgY28gbmd1eSBjbyBiaSAidm8ga2UgaG9hY2giLiANCg0K TWVvIG1vIHZpIGRvbmcgdGh1YW4NCg0KVGhlbyBvbmcgQ2FvIFNpIEtpZW0sIG5ndXllbiBUaG9u ZyBkb2MgTmdhbiBoYW5nIChOSCkgTmhhIG51b2MsIHZ1YSBxdWEgY2FjIE5IIA0KZGEgdGh1YyBo aWVuIGRvbmcgdGh1YW4gZHVhIExTIGh1eSBkb25nIHh1b25nIDExJS9uYW0gZGUgdGFvIHRpZW4g ZGUgaGEgbGFpIHZheS4gVHV5IA0KbmhpZW4sIG5oaWV1IE5IIG5obyBzdWMgY2FuaCB0cmFuaCB5 ZXUgdmFuIGR1eSB0cmkgbyBtdWMgY2FvIGhvbiwgYmFuZyBjYWNoIHRhbmcgcXVhLCANCmtodXll biBtYWkuIERhYyBiaWV0LCBtb3QgdmFpIE5IIHBoYXQgaGFuaCBnaWF5IHRvIGNvIGdpYSBuZ2Fu IGhhbiBkdW9pIGRhbmcga3kgcGhpZXUgDQp2b2kgTFMgdGh1b25nIGNhbyBob24gbWF0IGJhbmcg Y2h1bmcuICJEb25nIHRodWFuIGtoaWVuIExTIGRpIHRyYWkgdm9pIHF1eSBsdWF0IHRoaSANCnRy dW9uZywgZGlldSB0YXQgeWV1IGRhbiB0b2kgdGluaCB0cmFuZyBOSCBwaGFpICJsYWNoIiBkZSB0 dSBjdXUgbWluaCBjaHUga2hvbmcgY29uIA0KY2FjaCBuYW8ga2hhYyIsIG9uZyBLaWVtIG5vaS4g DQoNCihBbmg6IE11YyB0aWV1IGhhIExTIGhpZW4gZGFuZyBraG8gdGh1YyBoaWVuIC0gQW5oOiBE Lk4uVCkgDQoNCkRpZXUgZGFuZyBsbyBuZ2FpIGhvbiwgdGhlbyBvbmcgQ2FvIFNpIEtpZW0sIGNo aSBzbyBDUEkgY3VhIDEwIHRoYW5nIGRhIHRhbmcgNyw1OCUsIA0KZ2FuIGJhbmcgbXVjIHRpZXUg a2llbSBzb2F0IGxhbSBwaGF0IGNhIG5hbSBsYSA4JS4gTmV1IGhhIExTIGh1eSBkb25nIHNlIGto aWVuIG5ndW9pIA0KZ3VpIHRpZW4gZSBuZ2FpLCBxdWF5IHNhbmcgdmFuZyB2YSBVU0QgdmkgTFMg Y3VhIG5odW5nIHRhaSBzYW4gbmF5IGRhbmcgbmdheSBjYW5nIHRhbmcgDQptYW5oLiBLaGkgZG8s IG5ndW9uIHZvbiBodXkgZG9uZyBjdWEgTkggc3V0IGdpYW0sIGNhbmcgZ2F5IGtobyBraGFuIGhv biBjaG8gbXVjIA0KdGlldSBoYSBMUywgdGh1YyBkYXkgdGFuZyB0cnVvbmcga2luaCB0ZS4NCg0K RG9uZyBxdWFuIGRpZW0gdHJlbiwgYmEgRHVvbmcgVGh1IEh1b25nLCBUb25nIHRodSBreSBIaWVw IGhvaSBOZ2FuIGhhbmcgVmlldCBOYW0gDQpkdSBiYW8gZGVuIGN1b2kgbmFtIGxhbSBwaGF0IGNv IHRoZSBzZSB0YW5nIGtob2FuZyA5JS4gTFMgaHV5IGRvbmcgMTElL25hbSB2YW4gDQpkYW0gYmFv IHRodWMgZHVvbmcgY2hvIG5ndW9pIGd1aSB0aWVuLiBOaHVuZyBuZXUgZ2lhIHZhbmcgY29uIGJp ZW4gZG9uZyBiYXQgdGh1b25nLCANCnR5IGdpYSBiYXQgb24uLi4gbmh1IHRob2kgZ2lhbiBxdWEg dGhpIG11YyBMUyAxMSUvbmFtIGtob25nIGR1IHN1YyBoYXAgZGFuIG5ndW9pIGd1aS4gDQoiTmV1 IGdpYSB0cmkgVk5EIG5nYXkgY2FuZyBjaGl1IG5oaWV1IGFwIGx1YyB0aGkga2UgaG9hY2gsIGxv IHRyaW5oIGhhIExTIHNlIGtobyB0aGFuaCANCmhpZW4gdGh1YyIsIGJhIEh1b25nIG5oYW4gZGlu aC4NCg0KVG9uZyBnaWFtIGRvYyBtb3QgTkggdGFpIGtodSB2dWMgcGhpYSBOYW0gdGhhbmcgdGhh biBjaG8gYmlldCwgaGEgTFMgdGhlbyBkb25nIHRodWFuIA0Ka2hpZW4gbmd1b24gdm9uIGh1eSBk b25nIGN1YSBuZ2FuIGhhbmcgc3V0IGdpYW0gZGFuZyBrZS4gVGhlbyBrZSBob2FjaCBzYXAgdG9p IE5IIHNlIA0KcGhhdCBoYW5oIHRpZXAga3kgcGhpZXUgZG90IDIga2hvYW5nIDQwMC01MDAgdGkg ZG9uZywgc2F1IGtoaSBkYSBwaGF0IGhhbmggdGhhbmggY29uZyANCjEuMTAwIHRpIGRvbmcgZG90 IDEgdm9pIGxhaSBzdWF0IDExLDIlL25hbSwgZGUgcGh1YyB2dSBjaG8gbmh1IGNhdSBkYXUgdHUg dGluIGR1bmcsIGNobyANCnZheSBzYW4geHVhdCBraW5oIGRvYW5oIGN1YSBjYWMga2hhY2ggaGFu Zy4gDQoNCkNvIHRoZSB0aGF5IGRvaSBsbyB0cmluaCAidmFvIDEwLCByYSAxMiIgDQoNCkR1b25n IGNvbmcgTFMgYmkgbmFuIHRoYW5nIGxhIGhlIHF1YSB0YXQgeWV1IGtoaSBDaGluaCBwaHUgY2hv IHBoZXAgdGh1YyBoaWVuIGNvIGNoZSANCkxTIHRob2EgdGh1YW4gbmh1bmcgbGFpIGJ1b2MgcGhh aSBoYSBMUy4gSGF1IHF1YSwgY2FjIE5IIGdpYW0gTFMgaHV5IGRvbmcgdGhlbyBzdSANCmRvbmcg dGh1YW4sIG5odW5nIExTIGNobyB2YXkgbW9pIGNoaSBjbyB2YWkgTkggaGEgeHVvbmcgMTEsNSUv bmFtLCB2YSBjaGkgdGh1b2MgY2FjIA0KbGluaCB2dWMgY2FuIHV1IHRpZW4gbmh1IHh1YXQga2hh dSwgRE4gdnVhIHZhIG5oby4gDQoNCk11YyB0aWV1IGhhIExTIGRhbmcgbmdheSBjYW5nIHhhIGto aSBDaGluaCBwaHUgdnVhIG11b24gZGFtIGJhbyBtdWMgdGlldSB0YW5nIA0KdHJ1b25nIDYsNSUs IHRob25nIHF1YSB2aWVjIGhhIExTIGRlIHRhbmcgY3VuZyB0aW4gZHVuZyByYSBuZW4ga2luaCB0 ZSwgdnVhIG11b24gZGFtIA0KYmFvIGtpZW0gc29hdCBsYW0gcGhhdCBvIG11YyB0aGFwLiBDaGlu aCBkaWV1IG5heSBkYSBraGllbiBjaG8gY2FjIEROIHZhIG5nYW4gaGFuZyANCmRhbmcgbG9heSBo b2F5IG5odSBnYSBtYWMgdG9jLiANCg0KVGhlbyBvbmcgS2llbSwgbGFtIHBoYXQgY2FvIGxhbSBj aG8gbXVjIHRpZXUgaGEgTFMga2hvIHRodWMgaGllbiBob24gdmkgZ2lhIGRvbmcgdGllbiANCmR1 b2MgYmlldSBoaWVuIGJvaSBjaGkgc28gZ2lhIENQSS4gQ2hpIHNvIGdpYSBjYW8sIGRvbmcgdGll biBiaSBtYXQgZ2lhLCB0aGkgTFMga2hvbmcgdGhlIA0KaGEuIFZpIHZheSwgY2FuIHBoYWkgY28g bmh1bmcgZ2lhaSBwaGFwIGRlIG5nYW4gZGEgdGFuZyBjdWEgbGFtIHBoYXQsIHRhbyB0aWVuIGRl IGNhYyBOSCANCmhhIExTLiBCZW4gY2FuaCBkbywgTkggTmhhIG51b2MgY2FuICJjaGkgdmllbiIg Y2hvIGNhYyBOSCBuaG8sIGx1YyB5ZXUgdHJhbmggdGluaCANCnRyYW5nIGNhYyBOSCBuYXkgbmFu ZyBMUyBodXkgZG9uZyBiYW5nIG5oaWV1IGNhY2gga2hhYyBuaGF1LiBPbmcgS2llbSBraWVuIG5n aGksIA0KTkggbXVvbiBnaWFtIExTIHBoYWkgZ2lhbSBkdW9jIGNoaSBwaGksIGRvbmcgdGhvaSBO SCBOaGEgbnVvYyBobyB0cm8gYmFuZyBjYWNoIGNobyANCmhvIHN1IGR1bmcgbmdoaWVwIHZ1IHRo aSB0cnVvbmcgbW8gbmh1IGNobyB2YXkgdGFpIGNhcCB2b24sIHRhaSBjaGlldCBraGF1IGR1bmcg ZGlhIGNoaSwgDQpsaWV1IGx1b25nIGhvcCBseS4NCg0KVm9pIHN1IHRoYW4gdHJvbmcgbmhhdCBk aW5oLCBiYSBIdW9uZyBjaG8gYmlldCwgaGllbiBIaWVwIGhvaSBOSCBkYW5nICJuZ2hlIG5nb25n IiANCmRpZW4gYmllbiB0aGkgdHJ1b25nLiBOZXUgZGVuIG5nYXkgMTAuMTEsIGhvYWMgY2hhbSBu aGF0IDE1LjExLCBuZ3VvbiB2b24gaHV5IGRvbmcgc3V0IA0KZ2lhbSwgdHJvbmcgYm9pIGNhbmgg bGFtIHBoYXQgY2FvLCBnaWEgdmFuZyBiYXAgYmVuaCwgdHkgZ2lhIGJhdCBvbiBuaHUgdnVhIHF1 YSwgaGllcCBob2kgDQpzZSBuZ29pIGxhaSB2b2kgY2FjIHRoYW5oIHZpZW4ga2llbiBuZ2hpIHhp biBwaGVwIGNobyBkaWV1IGNoaW5oIGxvIHRyaW5oICJ2YW8gMTAsIHJhIDEyIiANCmNobyBwaHUg aG9wIHZvaSBkaWV1IGtpZW4gY3VhIG5lbiBraW5oIHRlLiANCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQxLzIwMTAxMDA4MjMxNjE3LmFzcHggQW5oIFZ1IFRo YW5oIFh1YW4gTWFpIFBodW9uZyAwOC8xMC8yMDEwIDIzOjE2IA0KDQpUaHUgdHVvbmc6IExhaSBz dWF0IGNhbywgZG9hbmggbmdoaWVwIGdhcCBraG8gIC0gbGFtIHBoYXQgY28geHUgaHVvbmcgdGFu ZyAtIE5IIGdhcCBraG8ga2hhbiB2ZSB2b24NCiAgDQpMYWkgc3VhdCAoTFMpIGR1bmcga2h1bmcg dmEgY28geHUgaHVvbmcgdGFuZyBkYW5nIHRhbyBhcCBsdWMgbG9uIGxlbiBjYWMgZG9hbmggbmdo aWVwIChETikgdHJvbmcgbnVvYy4gDQoNCk5hbmcgbHVjIGNhbmggdHJhbmggdGhhcA0KDQpPbmcg Tmd1eWVuIFR1YW4gQW5oIC0gUGhvIHRvbmcgZ2lhbSBkb2MgQ29uZyB0eSBjbyBwaGFuIChDVENQ KSB0aHV5IHNhbiBVdCBYaSwgDQpjaG8gYmlldDogIkRvIEROIGtpbmggZG9hbmggbGluaCB2dWMg bm9uZyBuZ2hpZXAgbmVuIGNvIGR1b2MgTFMgdmF5IDEyJSAtIA0KMTIsNSUvbmFtIGRvaSB2b2kg dGllbiBkb25nIHZhIDUlIC0gNiUvbmFtIGRvaSB2b2kgVVNELiBNdWMgTFMgbmF5IGR1b2MgZGFu aCBnaWEgDQpsYSB0b3QgdHJlbiB0aGkgdHJ1b25nIGhpZW4gbmF5LiBUaGUgbmh1bmcgdHJvbmcg Ym9pIGNhbmggY2FjIG51b2MgdHJlbiB0aGUgZ2lvaSBkYW5nIG5vaSANCmxvbmcgdGllbiB0ZSB2 b2kgTFMgdGhhcCBkZSBobyB0cm8gaGFuZyBob2EgeHVhdCBraGF1IHRoaSBtdWMgTFMgbWEgRE4g dmF5IHRyb25nIG51b2MgDQp2YW4gY29uIHJhdCBjYW8uIENvIHRoZSBrZSByYSBMUyBjdWEgY2Fj IGRvbmcgdGllbiBuaHUgeWVuIE5oYXQsIFVTRCBvIG11YyBnYW4gDQowJS9uYW0sIHRyb25nIGto aSBkbyBMUyBtYSBjYWMgRE4gdmF5IFVTRCB0cm9uZyBudW9jIHRyYSB0dSA1JSAtIDYlL25hbSwg Y2FvIGdhcCANCjUtNiBsYW4iLiANCiANCihBbmg6IExhaSBzdWF0IGNobyB2YXkgbyBWaWV0IE5h bSBjYW8gaG9uIG5oaWV1IGxhbiBzbyB2b2kgdGhlIGdpb2kgLSBBbmg6IEQuRC5NaW5oKSAgIA0K DQpUaGVvIGJhIFRyYW4gVGhpIFRoYW5oIFR1eWVuIC0gS2UgdG9hbiB0cnVvbmcgVHJ1bmcgdGFt IGRpZW4gbWF5IEdpYSBUaGFuaCANCihUUC5IQ00pLCBob3AgZG9uZyB2YXkgY3VhIEROIHZvaSBu Z2FuIGhhbmcgKE5IKSB2dWEgZHVvYyBkaWV1IGNoaW5oIGdpYW0gY29uIA0KZ2FuIDE0JSBzbyB2 b2kgbXVjIDE0LDQlL25hbSB0cnVvYyBkby4gVm9pIG11YyBMUyBuYXksIEROIGNoaSB2YXkgdGhl byB0dW5nIGRvbiANCmhhbmcga2hpIGNhbiB0aGlldCB2b2kgdGhvaSBnaWFuIG5nYW4gY2h1IGto b25nIGRhbSB2YXkgbmhpZXUuIFRyb25nIGtoaSBkbywgZ2lhbSBkb2MgDQptb3QgZG9hbmggbmdo aWVwIG1heSB0YWkgVFAuSENNIGNobyBiaWV0IGhvcCBkb25nIHZheSBjdWEgY29uZyB0eSB2YW4g ZGFuZyBvIG11YyANCjE0JSAtIDE1JS9uYW0gKHR1eSBob3AgZG9uZykuIERlbiBuYXkgRE4gdmFu IGNodWEgbmhhbiBkdW9jIGJhdCBreSBkaWV1IGNoaW5oIA0KZ2lhbSBMUyBuYW8uIERpZXUgbmF5 IGN1YyBreSBraG8ga2hhbiB2aSBETiBkYW5nIGNodWFuIGJpIHNhbiB4dWF0IGhhbmcgaG9hIGNo byBtdWEgDQp0aWV1IHRodSBraG8ga2hhbiBuaHVuZyB2YW4ga2hvbmcgZGFtIHZheSB0aGVtLiAN Cg0KT25nIERvIER1eSBUaGFpIC0gVG9uZyBnaWFtIGRvYyBDb25nIHR5IFRoZXAgVmlldCwgbmhh biB4ZXQgbmV1IEROIG5hbyBzdSBkdW5nIHR5IA0KbGUgdm9uIHZheSBxdWEgbmhpZXUgdHJvbmcg aG9hdCBkb25nIHNhbiB4dWF0IHNlIGdhcCBraG8ga2hhbi4gQm9pIHR5IHN1YXQgbG9pIG5odWFu IG5vaSANCmNodW5nIGN1YSBuaGlldSBuZ2FuaCBraW5oIGRvYW5oIGhpZW4gdmFuIGNoaSBjYW8g aG9uIExTIE5IIG1vdCB0aS4gIlZvaSBtdWMgTFMgdmF5IA0KMTUlL25hbSwgRE4gbG8gdG9uIHRh aSBjdW5nIGtoby4gVmkgdmF5IHNlIGhpZW0gY28gRE4gZGFtIGRhdSB0dSBtbyByb25nIHNhbiB4 dWF0IA0KaGF5IGRhdSB0dSB2ZSBjb25nIG5naGUuLi4gVHUgZG8gbmFuZyBsdWMgY2FuaCB0cmFu aCBjdWEgRE4gVmlldCBOYW0ga2hvbmcgdGhlIGR1b2MgDQpuYW5nIGxlbiIsIG9uZyBUaGFpIG5v aS4gRG9uZyBxdWFuIGRpZW0gdHJlbiwgb25nIE5ndXllbiBCYW5nIFRhbSAtIENodSB0aWNoIEhE UVQgDQpDVENQIHNhbiB4dWF0IGtpbmggZG9hbmggWE5LIEJpbmggVGhhbmggKEdJTCksIGNobyBy YW5nOiBHSUwgc2FuIHh1YXQgY2h1IGx1YyBkZSANCnh1YXQga2hhdSBuZW4gY2hpIHZheSBuZ29h aSB0ZSAoY28gbmdvYWkgdGUgdGh1IHZlIGJhbiBsYWkgY2hvIE5IKSBuZW4gTFMgdGhhcCBob24g dmF5IA0KdGllbiBkb25nLiBUdXkgbmhpZW4gdm9pIG11YyBMUyB2YXkgbmdvYWkgdGUgNiUvbmFt LCB2YW4gY2FvIGhvbiByYXQgbmhpZXUgc28gdm9pIG11YyANCjEtMiUvbmFtIG8gbmhpZXUgbnVv YyB0cmVuIHRoZSBnaW9pLiBOaHUgdmF5LCBjYWMgRE4gdHJvbmcgbnVvYyBraG9uZyB0aGUgdGlu aCBkZW4gDQpjaHV5ZW4gZ2lhbSBnaWEgYmFuIHZpIGNoaSBwaGkgc3UgZHVuZyB2b24gY29uIGto YSBjYW8uIA0KDQpUcm9uZyBraGkgZG8sIHRoZW8ga2UgaG9hY2gga2luaCBkb2FuaCBjdWEgbW90 IHNvIEROIGRhbmcgbmllbSB5ZXQgdHJlbiBzYW4gY2h1bmcgDQpraG9hbiwgbXVjIGxvaSBuaHVh biBzYXUgdGh1ZSB0cmVuIHZvbiBkaWV1IGxlIHBobyBiaWVuIG8gbXVjIDE1JSAtIDE3JS9uYW0u IFR1eSANCm5oaWVuIG5odSBuaGlldSBuYW0gdHJ1b2MsIHZpZWMgY28gZGF0IGR1b2Mga2UgaG9h Y2ggZGUgcmEgaGF5IGtob25nIGxhaSBsYSBtb3QgY2h1eWVuIA0Ka2hhYy4gDQoNCkxvaSBuaHVh biBnaWFtDQoNClNvIHZvaSBMUyBkYXUgbmFtIDIwMTAsIExTIGh1eSBkb25nIHZhIGNobyB2YXkg aGllbiBuYXkgZGEgZ2lhbSBjaHV0IGl0LiBOaHVuZyBMUyANCmNodW5nIHRyZW4gdGhpIHRydW9u ZyB2YW4gbyBtdWMgY2FvLiBNdWMgTFMgcGhvIGJpZW4gZG9pIHZvaSBsaW5oIHZ1YyBzYW4geHVh dCBraW5oIA0KZG9hbmgga2hvYW5nIDEzJSAtIDE0JS9uYW07IGNhYyBETiB4dWF0IGtoYXUsIGto YWNoIGhhbmcgdHJ1eWVuIHRob25nLCBjbyBxdWFuIGhlIA0Kc3UgZHVuZyBkaWNoIHZ1IHRvdCBk dW9jIGNhYyBOSCBhcCBkdW5nIExTIHR1IDEyJSAtIDEyLDUlL25hbS4gQ29uIGNobyB2YXkgbGlu aCB2dWMgDQpwaGkgc2FuIHh1YXQsIGNhYyBOSCBoaWVuIGFwIGR1bmcgbXVjIExTIHBobyBiaWVu IHR1IDE1JSAtIDE3JS9uYW0gdHV5IHRoZW8gbGluaCB2dWMgDQpraW5oIGRvYW5oIHZhIG11YyBk aWNoIHN1IGR1bmcgdm9uLiBSaWVuZyBjaG8gdmF5IHRpZXUgZHVuZywgbW90IHNvIE5ILCBjb25n IHR5IHRhaSANCmNoaW5oIGFwIGR1bmcgbXVjIExTIHRyYSBnb3AgbGVuIGRlbiAzMyUgLSA0Niw1 JS9uYW0uIA0KDQpPbmcgTGUgWHVhbiBOZ2hpYSAtIFBobyBjaHUgdGljaCBVeSBiYW4gR2lhbSBz YXQgdGFpIGNoaW5oIHF1b2MgZ2lhLCBjaG8gYmlldCB0cm9uZyBraGkgDQpjYWMgbnVvYyBraGFj IGRhbmcgYXAgZHVuZyBtdWMgTFMgdGhhcCB0aGkgVmlldCBOYW0gYXAgZHVuZyBtdWMgTFMgY2hv IHZheSB0cnVuZyCWIA0KZGFpIGhhbiB0aGVvIHRob2EgdGh1YW4gcGhvIGJpZW4gMTQlIC0gMTUl L25hbSBsYSBxdWEgY2FvLiBMYW0gcGhhdCBjdWEgVmlldCBOYW0gbyANCm11YyA4JS9uYW0sIHRy b25nIGtoaSBMUyBodXkgZG9uZyAxMSUgLSAxMiUvbmFtIGxhbSBjaG8gTFMgdGh1YyBkdW9uZyBv IG11YyAzIJYgDQo0JS9uYW0gbGEgY2FvLiBEbyBkbyBETiB2YXkgdm9uIGRhdSB0dSwgc2FuIHh1 YXQga2luaCBkb2FuaCBzZSBraG8ga2hhbiBob24uIA0KDQpPbmcgTmdoaWEgY2hvIGhheTogIlRo b25nIGtlIGN1YSBjaHVuZyB0b2kgZ2FuIGRheSBjaG8gdGhheSBsb2kgbmh1YW4gY3VhIGNhIGto b2kgRE4gDQp2YSBOSCBkZXUgZ2lhbSIuIFRoZW8gZG8sIDYgdGhhbmcgZGF1IG5hbSAyMDEwIHNv IHZvaSBjdW5nIGt5IG5hbSBuZ29haSwgbG9pIG5odWFuIA0KdHJlbiB0b25nIHRhaSBzYW4gY3Vh IG5ob20gbmdhbmggbmd1eWVuIHZhdCBsaWV1IGdpYW0gdHUgNyUgLSA4JSB4dW9uZyA2LDIlLCBj b25nIA0KbmdoZSBnaWFtIHR1IDksOTUlIHh1b25nIDYsMzclLCBkaWNoIHZ1IGNvbmcgY29uZyBn aWFtIHR1IDUsMDElIHh1b25nIDMlLiBDb24gbmV1IA0Kc28gc2FuaCBsb2kgbmh1YW4gcm9uZyB0 cmVuIHZvbiB0dSBjbyB0aGkgZ2lhbSBtYW5oIGhvbi4gRG9pIHZvaSBuZ2FuaCBuZ3V5ZW4gdmF0 IGxpZXUgDQpnaWFtIHR1IDE0JSAtIDE1JSB4dW9uZyAxMCw2JSwgY29uZyBuZ2hlIHR1IDE3LDQl IHh1b25nIDExLDElIHZhIGRpY2ggdnUgY29uZyANCmNvbmcgdHUgMTEsOTMlIHh1b25nIDcsMjMl LiBOZ29haSByYSwgdHkgbGUgbm8gdHJlbiB2b24gY2h1IHNvIGh1dSBjdW5nIGRhIGdpYW0gDQp4 dW9uZyAxLDc1JSAoY3VuZyBreSBuYW0gbmdvYWkgbGEgMSw4MyUpLCBjaHVuZyB0byBETiBpdCB2 YXkgaG9uLiANCg0KT25nIExlIFh1YW4gTmdoaWEgY2hvIHJhbmcgTFMgaHV5IGRvbmcgdmEgY2hv IHZheSBwaGFpIGdpYW0geHVvbmcgInZhbyAxMCAtIHJhIDEyIiANCm5odSBDaGluaCBwaHUgeWV1 IGNhdSB0aGkgdGhpIHRydW9uZyBtb2kgY28gdGhlIGNoYXAgbmhhbi4gDQoNCkxhaSBzdWF0IGdp YW0gY2hhbSB2aSBsYW0gcGhhdCB0YW5nDQoNClRyb25nIHRob25nIGNhbyBwaGF0IGRpIG5nYXkg OC4xMCwgTkggTmhhIG51b2MgVmlldCBOYW0gdGh1YSBuaGFuIExTIGNobyB2YXkgY3VhIA0KY2Fj IE5IIGNvIGdpYW0gbmh1bmcgY2h1YSB0aGVvIG11YyBjaGkgZGFvIGN1YSBDaGluaCBwaHUgZG8g bGFtIHBoYXQgY28geHUgaHVvbmcgDQp0YW5nIHRybyBsYWksIGNhYyBOSCB2YW4gZ2FwIGtobyBr aGFuIHRyb25nIGh1eSBkb25nIHZvbi4gDQoNClRoZW8gYmFvIGNhbywgdHJvbmcgcXV5IDMsIExT IGh1eSBkb25nIFZORCBkYW8gZG9uZyBvIG11YyAxMCw1OSUtMTEsMiUvbmFtLCANCmdpYW0gMCwy JS0wLDMlL25hbSBzbyB2b2kgY3VvaSBxdXkgMi4gTFMgY2hvIHZheSBWTkQgbmdhbiBoYW4gMTIl LTEzLDUlL25hbSANCmRhbmggY2hvIGxpbmggdnVjIG5vbmcgbmdoaWVwLCB4dWF0IGtoYXUsIERO IHZ1YSB2YSBuaG87IGNhYyBsb2FpIExTIGNobyB2YXkga2hhYyBwaG8gDQpiaWVuIG8gbXVjIDEz JS0xNSUvbmFtLiBMUyBodXkgZG9uZyBiYW5nIFVTRCB0YW5nIGtob2FuZyAwLDElLTAsMyUvbmFt IHNvIHZvaSANCmN1b2kgcXV5IDIgdmEgTFMgY2hvIHZheSBiYW5nIFVTRCBpdCBiaWVuIGRvbmcu IFRoZW8gZGFuaCBnaWEgY3VhIE5IIE5oYSBudW9jLCBkaWVuIA0KYmllbiB0aWVuIHRlLCB0aW4g ZHVuZywgbmdvYWkgaG9pIHRyb25nIHF1eSAzIGRldSBvbiBkaW5oLiBUdXkgbmhpZW4sIExTIGNo dWEgdGhlIGdpYW0gDQp0aGVvIGNoaSBkYW8gY3VhIENoaW5oIHBodSB2aSBsYW0gcGhhdCBjbyB4 dSBodW9uZyB0YW5nLCBOSCBnYXAga2hvIGtoYW4gdmUgdm9uLiANCg0KaHR0cDovL3ZucjUwMC52 bi8yMDEwLTEwLTA5LXZhdC1sb24tdm9pLWxhaS1zdWF0LWNhby1uaGF0LXRoZS1naW9pLSAwOS8x MC8yMDEwIDA3OjE1IEdNVCs3IENhbmggVGhhaSANCg0KVGh1IHR1b25nOiBEb2FuaCBuZ2hpZXAg dmF0IGxvbiB2b2kgbGFpIHN1YXQgY2FvICJuaGF0IHRoZSBnaW9pIg0KDQogKFZOUjUwMCkgLSBS YXQgbmhpZXUgZG9hbmggbmdoaWVwIGR1b2MgaG9pIGRldSBub2k6IGNvbmcgdmllYyB0aGkgY3Ug cGhhaSBjbyBnYW5nIA0KbGFtLCBjbyBnYW5nIGR1eSB0cmksIGNobyB0aG9pIGNvIG1vaSwgY2h1 IGxhbSBhbiBnaSBkdW9jIGtoaSBsYWkgc3VhdCBuZ2FuIGhhbmcgZGEgIm51b3QgDQpjaHVuZyIg aGF1IGhldCBsb2kgbmh1YW4ga2luaCBkb2FuaCwgdGhhbSBjaGkgbWF5IG5hbSBxdWEgZGV1IHBo YWkgYnUgbG8hDQoNCkxUUzogTmdhbiBoYW5nIE5oYSBudW9jIGRhIG5vIGx1YyB0aW0gY2FjIGdp YWkgcGhhcCBkZSBoYSBsYWkgc3VhdCB0cmVuIHRoaSB0cnVvbmcsIHR1eSANCm5oaWVuLCBtdWMg Z2lhbSBjaGkgbGEgIm5obyBnaW90Ii4gVmF5LCBnb2MgY3VhIHZhbiBkZSBuYW0gbyBkYXU/IFRh aSBzYW8gVGhvbmcgdHUgMTkgDQpzdWEgZG9pIG1vdCBzbyBkaWV1IFRob25nIHR1IDEzIGRhIGR1 b2MgYmFuIGhhbmggbWEgdGluaCBoaW5oIHZhbiBpdCBzdXkgY2h1eWVuPw0KDQpCYWkgdmlldCBk dW9pIGRheSBjdWEgZG9jIGdpYSAtIGxhIG1vdCBkb2FuaCBuaGFuIC0gZGFpIGRpZW4gY2hvIHRp ZW5nIG5vaSBkb2FuaCBuZ2hpZXAsIA0KYnVjIHh1YyB2ZSBjaGluaCBzYWNoIGxhaSBzdWF0IGhp ZW4gbmF5IGRhbmcgbGFtIGFuaCBodW9uZyBkZW4gaG9hdCBkb25nIHNhbiB4dWF0LCBraW5oIA0K ZG9hbmggY3VhIGhvLCB0dXkgbGEgcXVhbiBkaWVtIHJpZW5nLCBuaHVuZyBjbyBuaGlldSBjYXUg aG9pIHRoaWV0IHRodWMgZGF0IHJhIGNhbiBkdW9jIA0KdHJhIGxvaSB0aGF1IGRhby4NCg0KRGll biBkYW4gVk5SNTAwIHhpbiBnaW9pIHRoaWV1IHZvaSBkb2MgZ2lhIHZhIHJhdCBtb25nIG5oYW4g ZHVvYyB5IGtpZW4gcGhhbiBob2kgdHUgDQpjbyBxdWFuIGNodWMgbmFuZyBsaWVuIHF1YW4sIHkg a2llbiBkb25nIGdvcCBjdWEgY2FjIGNodXllbiBnaWEga2luaCB0ZSwgbmhhIHF1YW4gbHkgdmEg DQpkb2MgZ2lhIGNhIG51b2MuDQoNCk1vaSB0aG9uZyB0aW4geGluIGd1aSB2ZTogdm5yNTAwQHZp ZXRuYW1uZXQudm4gaG9hYyBuaGFuIHZhbyBwaGFuIFRoYW8gbHVhbiBjdW9pIGJhaS4gDQpYaW4g dHJhbiB0cm9uZyBjYW0gb24uDQoNCkJhbyBnaW8gaGV0IGRvaSAiVGhvbmcgdHUiPyBEb2FuaCBu Z2hpZXAgZGFuZyBwaGFpIGx1b24gdGhhcCB0aG9tIGNobyBjaGluaCBzYWNoIQ0KDQpMYWkgc3Vh dCB0cmFpIHBoaWV1IGNoaW5oIHBodSAxMCUsIGxhaSBzdWF0IGNvIGJhbiBjdWEgTmdhbiBoYW5n IE5oYSBudW9jIDglL25hbSwgbGFpIA0Kc3VhdCBodXkgZG9uZyB2b24gaGF5IHRpZXQga2llbSB0 YWkgbXVjIFZORCAxMSUvbmFtIHZhIFVTRCA0LDclLTUsMiUvbmFtLCBsYWkgDQpzdWF0IGtob25n IGt5IGhhbiA0LDglL25hbSwgbGFpIHN1YXQgY2hvIHZheSBkb2FuaCBuZ2hpZXAgaG9uIDEzLTIw JS9uYW0sIGxhaSBzdWF0IA0KY2hvIHZheSBsaWVuIG5nYW4gaGFuZyA4LTklL25hbS4uLiBUYXQg Y2EgZGV1IHF1YSBjYW8gc28gdm9pIHRpbmggaGluaCBjaHVuZyBjdWEgbmVuIA0Ka2luaCB0ZSB0 aGUgZ2lvaSENCg0KR2lvaSBoYW4gInN1YyBjaGl1IGR1bmciIGN1YSBkb2FuaCBuZ2hpZXAgbGEg Z2k/DQoNClRob25nIHR1IDEzIGN1YSBOZ2FuIGhhbmcgTmhhIG51b2MgKE5ITk4pIGJhbiBoYW5o IG5nYXkgMjAvMDUvMjAxMCBjbyBoaWV1IGx1YyANCnRoaSBoYW5oIG5nYXkgMS8xMC8yMDEwIHRo aSBuZ2F5IDI3LzA5LzIwMTAsIE5ITk4gbGFpIGJhbiBoYW5oIFRob25nIHR1IDE5IGRlICJzdWEg DQpkb2kgbW90IHNvIGRpZW0gbWF1IGNob3QgY3VhIFRob25nIHR1IDEzIiEgVGllcCB0aGVvIHZp ZWMgdGh1YyBoaWVuIHNlIHJhIHNhbz8gQ28gaGlldSANCnF1YSBraG9uZz8NCg0KVmFuIGRlIGNh YyBjaGkgdGlldCBub2kgZHVuZyBjdWEgVGhvbmcgdHUgMTMgdmEgVGhvbmcgdHUgMTkga2hvbmcg ZHVvYyBiYW4gbyBkYXksIA0KY2h1bmcgdGEgY2hpIGRlIGNhcCBkZW4gdmllYyBjYWNoIHRodWMg YmFuIGhhbmggY2FjIHZhbiBiYW4gaGFuaCBjaGluaCB0aGVvIGxvaSAic2FpIHZhIA0Kc3VhIiBo YXkgImNoYXkgdGh1IHZhIHN1YSBzYWkiIGRvaSB2b2kgY2FjIGNoaW5oIHNhY2ggcXVhbiB0cm9u ZywgY2FjIHZhbiBiYW4gcGhhcCBsdWF0IA0KY28gdGFjIGRvbmcgYW5oIGh1b25nIGxvbiBkZW4g bmVuIGtpbmggdGUgeGEgaG9pIG5odSBoaWVuIG5heS4NCg0KQ2FjIGRvYW5oIG5naGllcCBWaWV0 IE5hbSBkYW5nIGNoaXUgYXAgbHVjIGNhbmggdHJhbmggdHJvbmcga2luaCBkb2FuaCByYXQgbG9u IHZpIHBoYWkgDQpraW5oIGRvYW5oIHRyb25nIG1vaSB0cnVvbmcgbGFpIHN1YXQgY2FvICJuaGF0 IHRoZSBnaW9pIi4gRGUgbWluaCBjaHVuZyBkaWV1IG5heSBjaHVuZyANCnRhIHRodSB0aW0ga2ll bSB4ZW0sIHRyb25nIG5lbiBraW5oIHRlIHRoZSBnaW9pIGhpZW4gbmF5IGNvIHF1b2MgZ2lhIG5h byBjbyBob2kgZHUgY2FjIA0KbG9haSBsYWkgc3VhdCBjYW8gbmdhdCBuZ3Vvbmcgbmh1IFZpZXQg TmFtPw0KDQpUYWkgc2FvIGxhaSBzdWF0IGNvIGJhbiBjdWEgbmdhbiBoYW5nIG5oYSBudW9jIGxh IDglL25hbSwgY3VuZyB0aHVvYyBsb2FpICJuaGF0IHRoZSANCmdpb2kiPyBUYWkgc2FvIGNhIGNh YyBuZ2FuIGhhbmcgdmEgY2EgZG9hbmggbmdoaWVwIGRldSBwaGFpIHRoYXAgdGhvbSBkb2kgdGhl byBsYWkgc3VhdCANCmNvIGJhbiBoYW5nIHRoYW5nIHZhIGNhYyBjaGluaCBzYWNoIG5odSB0eSBs ZSBkdSB0cnUgYmF0IGJ1b2MsIGxhaSBzdWF0IHRhaSBjaGlldCBraGF1LCBsYWkgDQpzdWF0IGxp ZW4gbmdhbiBoYW5nLCB0eSBnaWEgVVNELi4uLnYudi4uIHZvaSBuaGlldSBub2kgbG8gYXUgbmh1 IHZheT8NCg0KQ2FjIG5oYSBsYW0gY2hpbmggc2FjaCBsYWkgZG9pIHRoZW8gY2hpIHNvIGdpYSB0 aWV1IGR1bmcgaGFuZyB0aGFuZyAoQ1BJKSBkZSByb2kgZHVhIHJhIA0KY2FjIGNoaW5oIHNhY2gg Y3VuZyB0aGVvIGtpZXUgImhhbmcgdGhhbmciIGdpb25nIG5odSAiY2hheSBjaG8iIG5heT8NCg0K VmUgcGhpYSBOZ2FuIGhhbmcgTmhhIG51b2MsIGNvIHF1YW4gbmF5IGNvIGtobyBraGFuIGdpIG1v aSBraGkgZGlldSBjaGluaCBjaGluaCBzYWNoIA0KdmEgYmFuIGhhbmggY2hpbmggc2FjaD8gQ2Fj IG5ndXllbiBseSBjbyBiYW4gaGF5IGNvbmcgdGh1YyB2YW4gaGFuaCBkdW9jIHN1IGR1bmcgdGFp IA0KTmdhbiBoYW5nIE5oYSBudW9jIGhheSBjbyBjaGUgInJhIHF1eWV0IGRpbmgiIGNvIGRlIGRh bmcgZHVvYyBuaGFuIGJpZXQ/IENvIHF1eSBsdWF0IA0KbmFvIG8gZGF5PyBDbyBkb25nIGNvIGto YWNoIHF1YW4gaGF5IGNodSBxdWFuIG5hbyBvIGRheT8gQWkgbGEgbmd1b2kgY2hpdSB0cmFjaCAN Cm5oaWVtPyBDYSBuaGFuIGhheSB0YXAgdGhlPw0KDQpUcm8gbGFpIHZpZWMgYmFuIGhhbmggY2Fj IHRob25nIHR1IGN1YSBOZ2FuIGhhbmcgTmhhIG51b2MgdmEgY2FjIGNoaW5oIHNhY2ggdGFpIGNo aW5oIA0KZHVvYyBkdWEgcmEsIGNodW5nIHRhIHRoYXkgInRpbmggZG9uZyBibyIgdmEgInRpbmgg bmhhdCBxdWFuIiBkZXUgY2h1YSBkdW9jIHJvIHJhbmcuDQoNClZpIGR1OiB0cm9uZyBuYW0gMjAw OCwgbmFtIDIwMDkgY2FjIGNoaW5oIHNhY2ggdGhhdCBjaGF0IHRpbiBkdW5nIGRvdCBuZ290IHZh IHF1YSBtdWMgDQpkYSBnb3AgcGhhbiBnYXkgcmEgdmllYyAidGhhbmcgZ2FwIiB0b2MgZG8gcGhh dCB0cmllbiBraW5oIHRlIGN1YSBkb2FuaCBuZ2hpZXAsIG5oaWV1IA0KZG9hbmggbmdoaWVwIGxh bSB2YW8gY2FuaCAic29uZyBkbywgY2hldCBkbyIgdGhhbSBjaGkgcGhhIHNhbiwgZGVwIHRpZW0h DQoNCktoaSBraHVuZyBob2FuZyBraW5oIHRlIHRoZSBnaW9pIGRpZW4gcmEsIHZpZWMgaG8gdHJv IGxhaSBzdWF0IDQlIGNobyBkb2FuaCBuZ2hpZXAgdG9pIHRheSANCm5odW5nIGRvYW5oIG5naGll cCBuYW8sIGR1bmcgZG9pIHR1b25nIGhheSBjaHVhLCBoaWV1IHF1YSByYSBzYW8gcGhhaSBjaG8g Y2FjIGtldCBsdWFuIA0KdGhhbmggdHJhIHZlIGhlIHRob25nIG5nYW4gaGFuZyBtYSBzbyBibyBj byBuaGlldSBzYWkgcGhhbSBuaHUgY2FjIGJhbyBkYSBkdWEgdGluLg0KDQpNb3Qgbmd1b2kgYmFu IGNvIGxhbiBjaG8geGVtIGhhaSB2YW4gYmFuIHF1eWV0IGRpbmggdmUgdGh1IHR1YyBkYXQgZGFp IGRvaSB2b2kgaG8gZGFuIA0KY3VhIFVCTkQgbW90IHF1YW4gdGFpIFRQLkhDTSwgdHJvbmcgY3Vu ZyBtb3QgbmdheSBuaHVuZyBjbyBoYWkgbm9pIGR1bmcgaG9hbiB0b2FuIA0KdHJhaSBuZ3VvYyBu aGF1LCByYXQgbWF1IHRodWFuLCBtb3QgY3VhIENodSB0aWNoIHZhIG1vdCBjdWEgUGhvIGNodSB0 aWNoLiBTYXUgZG8sIGhvIA0KbmhhbiByYSBzYWkgc290IHZhIHN1YSBjaHVhIGJhbmcgY2FjaCBy YSBtb3QgcXV5ZXQgZGluaCBraGFjIGh1eSBibyBtb3QgdHJvbmcgaGFpIHF1eWV0IA0KZGluaCB0 cnVvYyB2YSBkYSBnYXkgcmEgdGhpZXQgaGFpIGNobyBraG8gY2h1IGxhIG5ndW9pIGRhbiB0cm9u ZyBxdXlldCBkaW5oIG5heSENCg0KVGhvbmcgdHUgMTMgZ2F5IHJhIG1vdCBzdSBxdWFuIG5nYWkg ZG9pIHZvaSBjYSBoZSB0aG9uZyBuZ2FuIGhhbmcgdmEgZG9hbmggbmdoaWVwLCBkZSANCnJvaSBz YXUgaG9uIDQgdGhhbmcgY2hvIGRvaSBkdW9jIHR1IHN1YSBiYW5nIG1vdCBUaG9uZyB0dSAxOSBr aGFjIHZvaSBub2kgZHVuZyBtb2kuDQoNClRyb25nIHRob2kgZ2lhbiBjaG8gZG9pIHZ1YSBxdWEs IGNhYyBuZ2FuIGhhbmcgdmEgZG9hbmggbmdoaWVwIHJvaSB2YW8gdGhlIGJpIGRvbmcsIA0Ka2hv bmcgYmlldCB0cnVvYyB0aW5oIGhpbmggc2UgZGllbiBiaWVuIHRpZXAgdGhlbyByYSBzYW8/IE5n YW4gaGFuZyBuZ2FwIG5ndW5nIGtob25nIA0KZGFtIGNobyB2YXkgdGhpIGRvYW5oIG5naGllcCBr aG9uZyBjbyB0aWVuIHRyaWVuIGtoYWkgY2FjIGR1IGFuIGtpbmggZG9hbmgsIGtlbyB0aGVvIA0K bW9pIHZpZWMgZGluaCB0cmUuDQoNClZpZWMgYmFuIGhhbmggVGhvbmcgdHUgMTMgcm9pIHRvaSBU aG9uZyB0dSAxOSBraWV1IG5heSwga2hvbmcga2hhYyBnaSB2aWVjIGJhbiBoYW5oIA0KY2hpbmgg c2FjaCB0aGF0IGNoYXQgdGluIGR1bmcgZG90IG5nb3Qgbmh1IHRyb25nIHF1eSBJIG5hbSAyMDA4 IHZhIG5hbSAyMDA5LCBraGkgbGFpIA0Kc3VhdCBjaG8gdmF5IHRhbmcgY2FvIGRlbiAxNSUtMjAl L25hbSB2YSBkdXkgdHJpIHRyb25nIHRob2kgZ2lhbiBkYWkgcXVhIHN1YyBjaGl1IGR1bmcgDQpj dWEgZG9hbmggbmdoaWVwIG5odSBoaWVuIG5heS4NCg0KQ2FjIHZhbiBiYW4gY2hpbmggc2FjaCBi YW4gaGFuaCBjdSBuaHUgZGFuZyAiY2FuIHZhbyBkdW9pIG5oYXUiLCBsYW0gZGF1IGxhbiBuaGF1 LCB2YSANCnRhdCBjYSBkZXUgdGhpZXQhDQoNClJhdCBuaGlldSBkb2FuaCBuZ2hpZXAgZHVvYyBo b2kgZGV1IG5vaTogY29uZyB2aWVjIHRoaSBjdSBwaGFpIGNvIGdhbmcgbGFtLCBjbyBnYW5nIGR1 eSANCnRyaSwgY2hvIHRob2kgY28gbW9pLCBjaHUgbGFtIGFuIGdpIGR1b2Mga2hpIGxhaSBzdWF0 IG5nYW4gaGFuZyBkYSAibnVvdCBjaHVuZyIgaGF1IGhldCANCmxvaSBuaHVhbiBraW5oIGRvYW5o LCB0aGFtIGNoaSBtYXkgbmFtIHF1YSBkZXUgcGhhaSBidSBsbyEgSG8gbGFtIGNoYW5nIHF1YSB2 aSBuZXUgDQpraG9uZyB0aWVwIHR1YyB0aGkgY2hpIHBoaSB0aGFuaCBseSBkb2FuaCBuZ2hpZXAg Y29uIGNhbyBob24gbmhpZXUsIG5ldSBwaGFpIGRlcCBibyBsYW0gDQpsYWkgY2FpIG1vaSBoYXkg ZG9uZyBjdWEgZG9hbmggbmdoaWVwIQ0KDQpEZW4gZ2lvLCBoZSB0aG9uZyBuZ2FuIGhhbmcgdmFu IGRhbmcgdHJvbmcgdGluaCB0cmFuZyBsdW5nIHR1bmcga2hvbmcgYmlldCBsYW0gc2FvIGRlIA0K aGEgbGFpIHN1YXQgY2hvIHZheSBkb2kgdm9pIGRvYW5oIG5naGllcC4NCg0KVmkgeGV0IGNobyBj dW5nIHZhbiBwaGFpIGRlICJkb2FuaCBuZ2hpZXAgc29uZyIgdGhpIG5lbiBraW5oIHRlIHRodWMg bW9pIHNvbmchIE1vaSANCiJudW9pIiBkdW9jIGNhYyBjaHUgdGhlIHZhIGtoYWNoIHRoZSBraGFj IQ0KDQpDaHVuZyB0YSBnaW9uZyBuaHUgbW90IGJlbmggbmhhbiBsbyB1b25nIHRodW9jIGRpZXUg dHJpIGJlbmggcXVhIGxpZXUgKGRvIGRhIGRheSBsYWkgDQpzdWF0IGNhYyBsb2FpIHRhbmcgcXVh IGNhbykgbmF5IGRlbiBsdW90ICJsaWV1IHRodW9jIHF1YSBtdWMgbmF5IiBxdWF5IGxhaSBjbyBo YWkuIExhbSANCnN1eSBuaHVvYyBjbyB0aGUgbmd1b2kgYmVuaCwgZ2F5IHJhIGNhYyBiZW5oIGto YWMuDQoNCkdpYWkgcXV5ZXQgYmFpIHRvYW4gbGFpIGJhbmcgY2FjaCBrZXUgZ29pIGNhYyBuZ2Fu IGhhbmcgImRvbmcgdGh1YW4iIGhhIGxhaSBzdWF0IHRyb25nIA0Ka2hpIG5odSBjYXUgdmEgbmFu ZyBsdWMgY3VhIG1vaSBuZ2FuIGhhbmcgZGV1IGtob25nIG5odSBuaGF1LCBkaWV1IG5heSBjbyB0 cm8gbmVuIA0KImNodSBxdWFuLCBkdXkgeSBjaGkiIQ0KDQpOdXQgdGhhdCBoYXkgY2FjIGNodW9u ZyBuZ2FpIGRhbmcgbmFtIG8gZGF1PyBUYWkgc2FvIE5nYW4gaGFuZyBOaGEgbnVvYyB2b2kgY2Fj IA0KY29uZyBjdSB0cm9uZyB0YXkga2hvbmcgdHUgbGFtIG1vdCBzbyB2aWVjIHRyb25nIHRhbSB0 YXkgbWluaCBuaHUgY2F0IGdpYW0gbGFpIHN1YXQgY28gDQpiYW4sIGhhIGxhaSBzdWF0IHRyYWkg cGhpZXUgY2hpbmggcGh1IHZhIG1vdCBzbyBkb25nIHRhYyBkaWV1IGNoaW5oIGtoYWMgbWEgbGFp IGtldSBnb2kgDQpkb2FuaCBuZ2hpZXAgImRvbmcgdGh1YW4iIGNoaXUgdGhpZXQ/IA0KDQpNb3Qg dmFuIGRlIGtoYWMgZHVvYyBkYXQgcmEgbGE6IHN1YyBjaGl1IGR1bmcgY3VhIGRvYW5oIG5naGll cCBkb2kgdm9pIGxhaSBzdWF0IG5nYW4gDQpoYW5nIGxhIGJhbyBuaGlldSAlIHZhIG5odSB0aGUg bmFvPyBEYXkgY3VuZyBsYSBzdWMgY2hpdSBkdW5nIGN1YSBtb2kgbmd1b2kgZGFuIHZpIA0KImRh biIgbGEgbmd1b2kgdGlldSBkdW5nIHNhbiBwaGFtIGN1YSBkb2FuaCBuZ2hpZXAuDQoNCkNhYyBu aGEgbGFtIGNoaW5oIHNhY2ggdGFpIGNoaW5oLCBuZ2FuIGhhbmcgY28gdGhhbSB2YW4gZG9hbmgg bmdoaWVwIHRydW9jIGtoaSByYSANCmNoaW5oIHNhY2g/IENvIHBob25nIHZhbiwgaG9wIGJhbywg dGltIGhpZXUsIGxhcCBuZ2hpZW4gY3V1IHNhdSBuYW8gdHJ1b2Mga2hpIHJhIGNoaW5oIA0Kc2Fj aD8NCg0KTmV1IG5odW5nIG5hbSBxdWEsIHR1IDIwMDggZGVuIG5heSwgY2FjIGRvYW5oIG5naGll cCBsdW9uIGtldSB0aHVhIGxvIHRoaSBsb2kgbmh1YW4sIA0KdGhlbyBxdXkgbHVhdCB0aGkgdHJ1 b25nIGx1b24gY28gbmd1b2kgdGhhbmcga2UgdGh1YSB0cmVuIHRodW9uZyB0cnVvbmcsIHRoYXQg c3UgZGFuZyANCm5hbSB0cm9uZyB0dWkgYWk/IENvIGtoaSBuYW8gbW90IHNvIGNoaW5oIHNhY2gg dGFpIGNoaW5oIHRpZW4gdGUgdGhpZXUgc290IGRhIHZhIGRhbmcgDQpkaWVuIHJhPyBQaGF0IHRy aWVuIGtpbmggdGUgdGFpIGhhdSBoZXQgY2FjIHF1b2MgZ2lhIHRyb25nIGtodSB2dWMgRG9uZyBO YW0gQSBkZXUgY28gDQp0b2MgZG8gcGh1YyBob2kgc2F1IGtodW5nIGhvYW5nIGtpbmggdGUgdG90 IGhvbiwgY2FvIGhvbiBjaHVuZyB0YSB0cm9uZyBuYW0gbmF5IQ0KIA0KWSBraWVuIGJpbmggbHVh biANCg0KTmh1a2hpMDQgMSB0dWFuIHRydW9jOiANCg0KQ29uICJtYSIgbGFtIHBoYXQgZGFuZyBk b2EgY2hpbmggY2h1bmcgdGEuIEdpYW0gY2hpIHRpZXUgY29uZywgaGEgbGFpIHN1YXQsIGNoaW5o IHNhY2ggDQp0aWVuIHRlIGhvcCBseSBzZSBnaWFpIHRob2F0IGNobyBjYWMgZG9hbmggbmdoaWVw Lg0KQ3Uga2VvIGRhaSB0aW5oIHRyYW5nIG5heSwgY2h1bmcgdGEgc2Ugc29tIHBoYWkgZG9pIG1h dCB2b2kgbmh1bmcga2hvIGtoYW4gbG9uIGhvbiBudWEgDQp0cm9uZyB0aG9pIGdpYW4gdG9pLg0K Q2FjaCBsYW0gY3VhIE5ITk4gdGhvaSBnaWFuIHF1YSBjaGkgbWFuZyB0aW5oICJ0aHUgbmdoaWVt IiBkb2kgdm9pIGhlIHRob25nIGNhYyANCk5nYW4gaGFuZyB0aHVvbmcgbWFpIHZhIGRvYW5oIG5n aGllcC4gDQoNCkh1bmcgMSB0dWFuIHRydW9jOiAgDQpUb2kgbmdoaSwgTmdhbiBoYW5nIG5oYSBu dW9jIFZldCBOYW0ga2hvbmcgbmdoaSBkZW4gcmFuZyBuZ3VvaSBWaWV0IE5hbSBkYW5nIG5naGVv IGRpIHZpIGxhbSBwaGF0LCBraG9uZyBiaWV0IHJhbmcgZG9hbmggbmdoaWVwIGRhbmcgdGhvaSB0 aG9wIGNobyBjaGluaCBzYWNoLCANCnZhIGNhbmcga2hvbmcgYmlldCBjdXUgdGhpIHRydW9uZyBj aHVuZyBraG9hbiwgbW90IGNhY2ggaHV5IGRvbmcgdm9uIGhpZXUgcXVhIGN1YSBkb2FuaCBuZ2hp ZXAuICAgDQoNCmh0dHA6Ly90aHVvbmd0cnVvbmcuY29tLnZuL2luZGV4LnBocC90cmFuZy1jaHUv cGhhcC1sdWF0LzMzMi1ob2FuLXRoaWVuLXBoYXAtbHVhdC1iYW8tdmUtbmd1b2ktdGlldS1kdW5n IDA0IC8gMDYgLyAyMDA5IA0KDQpUaHUgdHVvbmc6IFZhbiBkZSBiYW8gdmUgcXV5ZW4gbG9pIG5n dW9pIHRpZXUgZHVuZyAgZHVvYyBkdSBsdWFuIHJhdCBxdWFuIHRhbSANCnZhIGR1b2MgY29pIGxh IG1vdCB0cm9uZyBuaHVuZyB2YW4gZGUgcXVhbiB0cm9uZyBuaGFtIGJhbyBkYW0gdG9jIGRvIA0K dGFuZyB0cnVvbmcgbHVvbiBkaSBkb2kgdm9pIGNoYXQgbHVvbmcgdGFuZyB0cnVvbmcuIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMTgwMjM4 MzIuYXNweCBOZ3V5ZW4gSGFuZyAxOC8xMC8yMDEwIDI6MzggDQoNClRodSB0dW9uZzogS2hvIGdp YW0gbGFpIHN1YXQgLSBETiBkYW5nIHBoYWkgY2hpdSBsYWkgc3VhdCBjYW8gbmhhdCB0aGUgZ2lv aSAgDQoNCiogQmFpIHRvYW4gZ2lhbSBsYWkgc3VhdCBjYW4gY28gbmh1bmcgY2hpbmggc2FjaCB0 aGlldCB0aHVjIHR1IHBoaWEgY28gcXVhbiBkaWV1IGhhbmggDQpjaHUga2hvbmcgY2hpIGxhIGhv IGhhbyBuaHUgaGllbiBuYXkuIA0KDQpOZ2F5IDE1LjEwLCBtb3Qgc28gbmdhbiBoYW5nIChOSCkg Y29uZyBibyBnaWFtIGxhaSBzdWF0IChMUykgdGhlbyBkb25nIHRodWFuIHZvaSBIaWVwIA0KaG9p IE5nYW4gaGFuZyBuaHVuZyBuaGlldSBkb2FuaCBuZ2hpZXAgKEROKSBsYWkgcGhhbiBhbmgsIGhv IHZhbiBuaGFuIGR1b2MgInRyYXQiIA0KdGFuZyBMUyBjaG8gY2FjIGhvcCBkb25nIHZheSB2b24u IE5naGUgY28gdmUgdm8gbHkgbmh1bmcgZGF5IGNoaW5oIGxhICJiYW4gY2hhdCB0aGF0IiANCmN1 YSB2aWVjIGdpYW0gTFMgaGllbiBuYXkuIA0KDQpNb3QgRE4gY28gdHJ1IHNvIHRhaSBRLjMgKFRQ LkhDTSkgY2hvIGJpZXQsIHZhaSBuZ2F5IHRydW9jIHRob2kgZGllbSBOSCBnaWFtIExTIHRoZW8g DQpkb25nIHRodWFuIHZvaSBIaWVwIGhvaSBOZ2FuIGhhbmcsIGNvbmcgdHkgb25nIGRhIG5oYW4g ZHVvYyBxdXlldCBkaW5oIHRhbmcgTFMgdHUgDQoxNSUvbmFtIGxlbiAxNSw1JS9uYW0gY2hvIGhv cCBkb25nIGRhbmcgdmF5IHRhaSBtb3QgbmdhbiBoYW5nLiBUaGVvIGRvLCB0dSBuYXkgZGVuIA0K Z2l1YSB0aGFuZyAxLjIwMTEsIGNvbmcgdHkgb25nIHBoYWkgY2hpdSBtdWMgTFMgMTUsNSUuICJU aHVjIHJhLCBjaHVuZyB0b2kgY3VuZyBjaGFuZyANCnRyb25nIG1vbmcgZ2kgZ2lhbSBMUyB2aSBt dWMgZ2lhbSBodXkgZG9uZyBjdWEgY2FjIE5IIHF1YSB0aGFwLiBOaHVuZyBpdCBuaGF0IGN1bmcg DQpkdW5nIHRhbmcgY2h1IGxhbSB0aGUgbmF5IHRoaSBjaGFuZyBraGFjIG5hbyBkYW5oIGx1YSBr aGFjaCBoYW5nIiwgdmkgbmF5IGJ1YyB4dWMuIERheSANCmN1bmcgbGEgYnVjIHh1YyBjaHVuZyBj dWEgbmhpZXUgRE4gdmEgY2EgbmhhbiBkYW5nIHZheSB2b24gTkggaGllbiBuYXkuIFR1eSBuaGll biwgDQpyYXQga2hvIGRlICJiYXQgbG9pIiBjYWMgTkggdHJvbmcgbmh1bmcgdHJ1b25nIGhvcCBu YXkgYm9pIGhvcCBkb25nIHZheSB2b24gZ2l1YSBOSCANCnZhIGtoYWNoIGhhbmcgZGV1IHF1eSBk aW5oIDMgdGhhbmcgZGlldSBjaGluaCBMUyBtb3QgbGFuLiBWaSB2YXksIHRydW9jIGdpbyBnaWFt IExTLCANCmhhdSBoZXQgaG9wIGRvbmcgZGVuIGhhbiBkaWV1IGNoaW5oIGRldSBkdW9jIGNhYyBO SCBkYXkgTFMgdGFuZyBsZW4gbW90IGNhY2ggaG9wIA0KcGhhcC4NCg0KVHJlbiB0aHVjIHRlLCBk dSBkb25nIHRodWFuIGdpYW0gTFMgbmh1bmcgY28gcmF0IG5oaWV1IHlldSB0byBraGllbiB2aWVj IGdpYW0gTFMgY3VhIA0KY2FjIE5IIHRhaSB0aG9pIGRpZW0gbmF5IHJhdCBraG8uICBEYXUgdGll biBsYSBjaGkgc28gZ2lhIHRpZXUgZHVuZyAoQ1BJKSBkYW5nIGNvIHh1IA0KaHVvbmcgdGFuZyBj YW8uIENQSSB0aGFuZyA5IGRhIHRhbmcgZG90IGJpZW4gbGVuIG11YyAxLDMxJSBzbyB2b2kgdGhh bmcgOCwgbGFtIGRheSBsZW4gDQpuaHVuZyBxdWFuIG5nYWkgdmUgbGFtIHBoYXQgdnVvdCBtdWMg dGlldSBkYXQgcmEuIER1b25nIG5oaWVuLCBraGkgQ1BJIHRhbmcgdGhpIExTIA0Ka2hvbmcgdGhl IGdpYW0gdmkgbmV1IGdpYW0sIE5IIHNlIGtob25nIHRoZSBodXkgZG9uZy4gVGh1IGhhaSBsYSBj YWMgY2h1b25nIHRyaW5oIA0Ka2h1eWVuIG1haSB2YW4gZGEsIGRhbmcgdmEgc2UgZHVvYyBjYWMg TkggdHJpZW4ga2hhaSBkZSBjYW5oIHRyYW5oIGh1eSBkb25nIHRyb25nIA0Kbmh1bmcgdGhhbmcg Y3VvaSBuYW0ga2hpZW4gY2hpIHBoaSB2b24gYmkgZGF5IGxlbiBjYW8uIE5vaSBMUyAxMSUgbmh1 bmcgbmV1IHRpbmggDQp0aGVtIGNhYyBjaHVvbmcgdHJpbmggbmF5IHRoaSBMUyBodXkgZG9uZyB0 aHVjIHRlIGxlbiB0b2kgMTIlLSAxMyUuIFZpIHZheSwga2hvIGNvIHRoZSANCmh5IHZvbmcgTFMg Y2hvIHZheSBzZSBnaWFtIHh1b25nLiBEYWMgYmlldCwgdmllYyBjYWMgRE4sIGNhYyB0YXAgZG9h biBraW5oIHRlIHBoYXQgDQpoYW5oIG1vdCBsdW9uZyB0cmFpIHBoaWV1IGNvIGdpYSB0cmkgY3Vj IGxvbiB2b2kgTFMgdHUgMTQlLTE2JSBsYSBtb3QgY2FuIHRybyByYXQgbG9uIA0KY2hvIHZpZWMg Z2lhbSBMUyB0dSBwaGlhIGNhYyBOSC4NCg0KTmFuZyBsdWMgdGFpIGNoaW5oIHlldSBuaHVuZyBM UyBtYSBjYWMgRE4gcGhhaSBjaGl1IGxhaSBkYW5nIGNhbyBuaGF0IHRoZSBnaW9pLiBWaWVjIA0K bmF5IGRhbmcgbGFtIGdpYW0gc3VjIGNhbmggdHJhbmggY3VhIGhhbmcgaG9hIHRyb25nIG51b2Mg dHJlbiB0aGkgdHJ1b25nIHRoZSBnaW9pLiBWaSANCnZheSwgdmllYyBnaWFtIExTIGxhIHlldSBj YXUga2hhbiB0aGlldCBoaWVuIG5heS4gDQoNClR1eSBuaGllbiwgYmFpIHRvYW4gZ2lhbSBMUyBj YW4gY28gbmh1bmcgY2hpbmggc2FjaCB0aGlldCB0aHVjIHR1IHBoaWEgY28gcXVhbiBkaWV1IA0K aGFuaCBjaHUga2hvbmcgY2hpIGxhIGhvIGhhbyBuaHUgaGllbiBuYXkuICANCg0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL2tpbmh0ZS8yMDEwMTEvVmFuZy1sYW8tbmh1LXRlbi1iYW4tZGVuLW1v Yy1reS1sdWMtMzUzLXRyaWV1bHVvbmctOTQ2NDIwLyBIYSBMaW5oIDExOjQ0LCAwOC8xMS8yMDEw IChHTVQrNykNCg0KVGh1IHR1b25nOiBHaWEgdmFuZyBsYW8gbGVuIG1vYyBreSBsdWMgMzUsMyB0 cmlldS9sdW9uZyAtIGR1b25nIG5odSBjaHVvaSBuZ2F5IHRhbmcgZ2lhIHZhbiBjaHVhIGNoYW0g ZHV0DQoNClRhaSBUUC5IQ00sIGdpYSB2YW5nIFNKQyBtYSBjYWMgZG9hbmggbmdoaWVwIGJhbiBy YSBjdW5nIGRhIGxlbiAzNSwzNSB0cmlldSBkb25nL2x1b25nLg0KDQpNb3Qgc28gdGllbSB2YW5n IG8gSGEgTm9pIGNobyBiaWV0LCBjaG8gZHUgZ2lhIGRhbmcgbyBtdWMgY2FvIGt5IGx1YyBuaHVu ZyBuaHUgY2F1IG11YSB2YW5nIHZhbiBraGEgbG9uLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vTmV3cy9QYWdlcy8yMDEwNDYvMjAxMDExMDgxMDAxNTguYXNweCAwOC8xMS8yMDEwIDEw OjAxIA0KDQpUaHUgdHVvbmc6IFZhbmcgdHJvbmcgbnVvYyB0YW5nLCB2YW5nIHRoZSBnaW9pIGdp YW0gIA0KICANCihUTk8pIE1vIGN1YSBwaGllbiBnaWFvIGRpY2ggZGF1IHR1YW4gKDguMTEpLCBn aWEgdmFuZyB0cm9uZyBudW9jIHRpZXAgdHVjIHh1IGh1b25nIHRhbmcuIFRyb25nIGtoaSBkbywg Z2lhIHZhbmcgdGhlIGdpb2kgZGlldSBjaGluaCBnaWFtIG5oZS4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTEwODE0MDE1Ni5hc3B4IExlIFRy YW4gMDgvMTEvMjAxMCAxNDowMSANCg0KVGh1IHR1b25nOiBLeSBsdWMgbW9pIGN1YSBnaWEgdmFu ZywgMzUsODIgdHJpZXUgZG9uZy9sdW9uZyAgDQogIA0KKFROTykgTHVjIDE1IGdpbyAxMCBwaHV0 LCB2YW5nIFNKQyAtIEhhIE5vaSBtdWEgYmFuIG8gbXVjIDM1LDcgLSAzNSw4MiB0cmlldSBkb25n L2x1b25nLiANCg0KTXVjIHRhbmcgdHVvbmcgdHUgY3VuZyBkdW9jIGFwIGR1bmcgY2hvIHZhbmcg U0pDIHRhaSB0aGkgdHJ1b25nIFRQLkhDTTogbXVhIHZhbyANCjM1LDcgdHJpZXUgZG9uZy9sdW9u ZywgYmFuIHJhIDM1LDggdHJpZXUgZG9uZy9sdW9uZy4gDQoNCk5odSB2YXksIGdpYSB2YW5nIHRh bmcgdGhlbSAxNTAuMDAwIGRvbmcvbHVvbmcgc28gdm9pIGx1YyAxMyBnaW8gNDAgcGh1dCBjaGll dSBuYXkuICANClZhbmcgbWllbmcgU0JKIG11YSBiYW4gY3VuZyB0aG9pIGRpZW0gbGFuIGx1b3Qg bGEgMzUsNzQgLSAzNSw4NCB0cmlldSBkb25nL2x1b25nLg0KVmFuZyBtaWVuZyBjdWEgQ29uZyB0 eSB2YW5nIGJhYyBkYSBxdXkgQmFvIFRpbiBNaW5oIENoYXUgZ2lhbyBkaWNoIG8gbXVjIDM1LDc1 IC0gMzUsODUgdHJpZXUgZG9uZy9sdW9uZy4NCg0KR2lhIHZhbmcgbWllbmcgUGh1b25nIEhvYW5n IFBOSi1Eb25nQSBCYW5rIGN1YSBDb25nIHR5IHZhbmcgYmFjIGRhIHF1eSBQaHUgTmh1YW4gDQoo UE5KKSBuaWVtIHlldCB2b2kgbXVjIGdpYSB0dW9uZyB1bmcgbXVhIHZhbyAzNSw2NSB0cmlldSBk b25nL2x1b25nIHZhIGJhbiByYSAzNSw4IHRyaWV1IGRvbmcvbHVvbmcuDQoNCiogQ2hpZXUgbmF5 ICg4LjExKSwgZ2lhIHZhbmcgdHJvbmcgbnVvYyB0aWVwIHR1YyB0YW5nIGxlbiBtdWMgY2FvIG5o YXQgY2h1YSB0dW5nIA0KY28gdHJvbmcgbGljaCBzdSBraGkgZ2lhIHZhbmcgdGhlIGdpb2kgdmEg Z2lhIFVTRCB0cmVuIHRoaSB0cnVvbmcgdHUgZG8gdGFuZyBtYW5oIA0KdHJvIGxhaS4gS3kgbHVj IG1vaSAzNSw3NSB0cmlldSBkb25nL2x1b25nIGRlIGRhbmcgZHVvYyB0aGlldCBsYXAuIA0KDQpE byBsYSBtdWMgZ2lhIGN1YSB2YW5nIG1pZW5nIGN1YSBDb25nIHR5IHZhbmcgYmFjIGRhIHF1eSBC YW8gVGluIE1pbmggQ2hhdSAoSGEgTm9pKS4gDQoNClRoZW8gZG8sIGdpYSB2YW5nIG1pZW5nIGN1 YSBjb25nIHR5IG5heSB2YW8gY2hpZXUgbmF5IGRhIHRhbmcgbWFuaCwgZ2lhbyBkaWNoIG8gDQpt dWMgY2FvIG5oYXQgdHJlbiB0aGkgdHJ1b25nOiAzNSw1IHZhIDM1LDc1IHRyaWV1IGRvbmcvbHVv bmcgKG11YSB2YW8gLSBiYW4gcmEpLg0KDQpUcm9uZyBraGkgZG8sIHNhdSBuaGlldSBsYW4gdGhh eSBkb2kgZ2lhIGxpZW4gdHVjLCBsdWMgMTMgZ2lvIDQwIHBodXQsIGdpYSB2YW5nIA0KU0pDIHRh aSBUUC5IQ00gbmllbSB5ZXQgbyBtdWMgMzUsNTUgdHJpZXUgZG9uZy9sdW9uZyAobXVhIHZhbykg dmEgMzUsNjUgdHJpZXUgZG9uZy9sdW9uZyAoYmFuIHJhKS4NCg0KR2lhbyBkaWNoIHZhbmcgU0pD IHRhaSB0aGkgdHJ1b25nIEhhIE5vaSBjbyBjdW5nIG11YyBnaWEgbXVhIHZhbyBuaHVuZyBiYW4g cmEgY2FvIA0KaG9uIDIwLjAwMCBkb25nL2x1b25nIHNvIHZvaSB0aGkgdHJ1b25nIFRQLkhDTSwg byBtdWMgMzUsNjcgdHJpZXUgZG9uZy9sdW9uZy4NCk5odSB2YXksIGdpYSB2YW5nIHRhbmcgMzIw LjAwMCBkb25nL2x1b25nIHNvIHZvaSBsdWMgOSBnaW8gc2FuZyBuYXksIGRvbmcgdGhvaSANCnRh bmcgNDUwLjAwMCBkb25nL2x1b25nIHNvIHZvaSBnaWEgZG9uZyBjdWEgY3VvaSB0dWFuIHF1YS4g RGF5IGxhIG11YyBnaWEgY2FvIG5oYXQgdHUgdHJ1b2MgZGVuIG5heSBkbyBTSkMgY29uZyBiby4g DQoNCk11YyBnaWEgdGFpIGNhYyBjb25nIHR5IHZhbmcgYmFjIGRhIHF1eSBraGFjIGN1bmcgZGll dSBjaGluaCB0YW5nLiBHaWEgdmFuZyBtaWVuZyANCmhpZXUgU0JKIGN1YSBDb25nIHR5IHZhbmcg YmFjIGRhIHF1eSBOZ2FuIGhhbmcgU2Fjb21iYW5rIG11YSB2YW8gdmEgYmFuIHJhIGN1bmcgDQp0 aG9pIGRpZW0gbGFuIGx1b3QgbGVuIG11YyAzNSw1IHRyaWV1IGRvbmcvbHVvbmcgdmEgMzUsNjQg dHJpZXUgZG9uZy9sdW9uZy4NCg0KVmFuZyBtaWVuZyBQaHVvbmcgSG9hbmcgUE5KLURvbmdBIEJh bmsgY3VhIENvbmcgdHkgdmFuZyBiYWMgZGEgcXV5IFBodSBOaHVhbiAoUE5KKSANCm5pZW0geWV0 IHZvaSBtdWMgZ2lhIHR1b25nIHVuZyBtdWEgdmFvIDM1LDUgdHJpZXUgZG9uZy9sdW9uZyB2YSBi YW4gcmEgMzUsNyB0cmlldSBkb25nL2x1b25nLg0KDQpDdW5nIHRob2kgZGllbSB0aGVvIGJhbmcg ZGllbiB0dSBLaXRjbywgZ2lhIHZhbmcgZ2lhbyBuZ2F5IHRyZW4gdGhpIHRydW9uZyBjaGF1IEEg DQpkYW5nIG8gbXVjIDEuMzkxLDUgVVNEL291bmNlLCB0YW5nIDMgVVNEL291bmNlIHNvIHZvaSBt dWMgZ2lhIG1vIGN1YSBzYW5nIG5heS4NCg0KQmVuIGNhbmggZG8sIGdpYSBVU0QgdHJlbiB0aGkg dHJ1b25nIHR1IGRvIHRhaSBUUC5IQ00gZGEgdGFuZyBtYW5oIHRybyBsYWkgdHJvbmcgDQpjaGll dSBuYXksIGRhbyBkb25nIHR1IDIwLjc1MCAtIDIwLjk1MCBkb25nL1VTRC4NCg0KaHR0cDovL3d3 dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ2LzIwMTAxMTA5MDkxMDUxLmFzcHgg TGUgVHJhbiAwOS8xMS8yMDEwIDk6MDAgDQoNCkdpYSB2YW5nIGNoYW0gbW9jIDM4IHRyaWV1IGRv bmcvbHVvbmcgIA0KICANCihBbmg6IEdpYSB2YW5nIHRhbmcgZGllbiBjdW9uZyB0cm9uZyBuaHVu ZyBuZ2F5IHF1YSAtIEFuaDogVGhhbmggSGFpKSANCg0KKFROTykgU2FuZyBuYXkgKDkuMTEpLCBn aWEgdmFuZyB0cm9uZyBudW9jIHRpZXAgdHVjIHRhbmcgbGVuIG11YyBjYW8gbmhhdCBjaHVhIHR1 bmcgY28gDQp0cm9uZyBsaWNoIHN1LCB0cm9uZyBraGkgZ2lhIHZhbmcgdGhlIGdpb2kgdGFuZyB0 aGVtIGtob2FuZyA4IFVTRC9vdW5jZS4gS3kgbHVjIG1vaSBjdWEgDQpnaWEgdmFuZyB0cm9uZyBu dW9jOiAzOCB0cmlldSBkb25nL2x1b25nIGRlIGRhbmcgZHVvYyB0aGlldCBsYXAgdHJvbmcgc2Fu ZyBuYXkuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ni8y MDEwMTExMDIzNDMxOS5hc3B4IFh1YW4gQW5oIFRoYW5oIEx1b25nIChnaGkpIDEwLzExLzIwMTAg MjM6NDMgDQoNCk5ndXllbiBUaG9uZyBkb2MgTmdhbiBoYW5nIE5oYSBudW9jIENhbyBTeSBLaWVt OiBDaHUgdHJ1b25nIGR1bmcsIHRyaWVuIGtoYWkgY2hhbSAgDQogIA0KTmd1eWVuIFRob25nIGRv YyBOZ2FuIGhhbmcgTmhhIG51b2MsIERCUUggQ2FvIFN5IEtpZW0gbmhhbiBtYW5oIG5odSB2YXkg a2hpIHRyYW8gZG9pIA0Kdm9pIGJhbyBjaGkgYmVuIGxlIFF1b2MgaG9pLCBzYW5nIDEwLjExLCB2 ZSBoaWVuIHR1b25nIGdpYSB2YW5nIHRhbmcgZG90IGJpZW4gdHJvbmcgbmh1bmcgbmdheSBxdWEu ICANCg0KVmllYyBoYW4gY2hlIGNobyB2YXkgdmFuZyB0cm9uZyBib2kgY2FuaCBnaWEgdmFuZyB0 cm9uZyBudW9jIHRhbmcgY2FvIGNvIHBoYWkgbGEgDQpuZ3V5ZW4gbmhhbiBnb3AgcGhhbiBraGll biBnaWEgdmFuZyB0cm9uZyBudW9jIGRpZW4gYmllbiB0aGF0IHRodW9uZz8NCg0KSGFuIGNoZSBj aG8gdmF5IHZhbmcgbGEgY2h1IHRydW9uZyBkdW5nIG5odW5nIGNhbiBwaGFpIGR1b2MgYXAgZHVu ZyB0cm9uZyBkaWV1IGtpZW4gDQp2YSBib2kgY2FuaCBjdSB0aGUuIFRoZW8gdG9pIGNvIDMgbmd1 eWVuIG5oYW4gZGFuIHRvaSB0aW5oIHRyYW5nIGdpYSB2YW5nIGJpZW4gZG9uZyBiYXQgDQp0aHVv bmcgbmh1IHZ1YSBxdWEuIFRodSBuaGF0IGxhIGRvIGdpYSB2YW5nIHRoZSBnaW9pIHRhbmcgcmF0 IG5oYW5oLiBUaHUgaGFpIGxhIGdpYSB2YW5nIA0KdHJvbmcgbnVvYyBkb2kgbGVuIHRoZW8gZ2lh IHZhbmcgdGhlIGdpb2kgZG8gY2hpIHBoaSBuaGFwIHZhbmcsIHR5IGdpYSB0YW5nLiBMeSBkbyBj dW9pIA0KY3VuZyBsYSB0YW0gbHkuIEhpZW4gbmF5LCBvIFZpZXQgTmFtIGJhdCBkb25nIHNhbiB2 YSBjaHVuZyBraG9hbiBiYXAgYmVuaCwgdGFtIGx5IA0Kbmd1b2kgZGFuLCBuaGEgZGF1IHR1IG5o byBsYSBnaXUgdmFuZy4gDQoNCkJhIGx5IGRvIGRvIGNoYXAgbGFpLCBjb25nIHZvaSB2aWVjIGhh biBjaGUgY2hvIHZheSB2YW5nIGtoaWVuIGNobyB0aW5oIGhpbmggZ2lhIHZhbmcgDQpjYW5nIHRh bmcgbGVuLCB0aGkgdHJ1b25nIHRodSBoZXAgbGFpLiBUaGVvIHRvaSwgdmFuIGRlIGRvIGNvIHRo ZSBnaWFpIHF1eWV0IHRoZW8gbmd1eWVuIA0Kbmhhbi4gR2lhIHZhbmcgdGhlIGdpb2kgY2FvIHRo aSB0YSBraG9uZyB0aGUgdGFjIGRvbmcsIGRhbmggcGhhaSBjaG8gY2FjIGJpZW4gcGhhcCBkaWV1 IA0KY2hpbmggY3VhIHF1b2MgdGUuIEdpYSB2YW5nIHRyb25nIG51b2MgdGhpIHRhIGNvIHRoZSB0 YWMgZG9uZyBvIG11YyB0eSBnaWEsIG5odW5nIGhpZW4gdGFpIA0KY3VuZyBjaHVhIHRhYyBkb25n IGR1b2MuIFZheSB0aGkgY2hpIGNvIGdpYWkgcXV5ZXQgdmFuIGRlIHRhbSBseSwgdHVjIGxhIGxh bSBjaG8gdGhvbmcgDQp0aW4gbWluaCBiYWNoLCBuZ3VvaSB0YSBkbyBkbyB4byBjaGF5IHRoZW8g dGhvbmcgdGluLiANCg0KKEFuaDogT25nIENhbyBTeSBLaWVtIC0gQW5oOiBOZ29jIFRoYW5nKQ0K DQpWaWVjIGR1YSByYSBnaWFpIHBoYXAgdGhhdCBjaGF0IHZpZWMgY2hvIHZheSB2YW5nIGNvIGR1 bmcgImRpZW0gcm9pIiBoYXkga2hvbmcsIHRodWEgb25nPw0KDQpUaHVjIGNoYXQgdmllYyBkdWEg cmEgY2FjIGJpZW4gcGhhcCBkaWV1IGNoaW5oIGxhIGR1bmcgdGhvaSBkaWVtLiBOaHVuZyB2aWVj IGdpYSB2YW5nIA0KdGFuZyB2b3QgdHJvbmcgdGhvaSBkaWVtIHR1bmcgcmEgYmllbiBwaGFwIHRo YXQgY2hhdCBjaG8gdmF5IHZhbmcgY2FuZyBsYW0gY2hvIHRhbSBseSANCm5ndW9pIGRhbiBiaSBo b2FuZyBtYW5nLiBIbyBjaG8gcmFuZyB0aGkgdHJ1b25nIHZhbmcgZGFuZyBraGFuIGhpZW0gdmEg Y2FuZyBraWNoIA0KdGhpY2ggdGFtIGx5IG11YSB2YW5nIGRlIGR1IHRydSwgcGhvbmcgdHJ1b25n IGhvcCBtYXQgdGFpIHNhbi4gVmEgZGlldSBkbyB2byBoaW5oIHRydW5nIA0KdGFjIGRvbmcgdHJv IGxhaSB0aGkgdHJ1b25nIHZhbmcgdmEgZ2lhIHZhbmcgdGllcCB0dWMgZGF5IGxlbiBraGkgbWEg dGFtIGx5IGJheSBkYW4geHVhdCANCmhpZW4uIFZpIHZheSwgdG9pIGNobyByYW5nIGR1YSByYSBn aWFpIHBoYXAgdGhhdCBjaGF0IGNobyB2YXkgdmFuZyBwaGFpIGRpIGN1bmcgdm9pIG1vdCBzbyAN CmdpYWkgcGhhcCBuZ2hpZXAgdnUgY2h1eWVuIHNhdSBraGFjLCBtYW5nIHRpbmggZG9uZyBiby4g DQoNCkN1bmcgdGhvaSBkaWVtIG5heSBuYW0gbmdvYWksIGdpYSB2YW5nIHRyb25nIG51b2MgdGFu ZyBjYW8gbmh1bmcgc2F1IGRvIGdpYW0geHVvbmcgDQpraGkgTmdhbiBoYW5nIE5oYSBudW9jIHF1 eWV0IGRpbmggY2hvIHBoZXAgbmhhcCB2YW5nLiBUYWkgdGhvaSBkaWVtIGRvLCBvbmcgZGEgbm9p IA0KcmFuZyBiaWVuIHBoYXAgY3VhIE5ITk4gbGEgY2hhbSwgY29uIGxhbiBuYXkgdGhpIHNhbyB0 aHVhIG9uZz8NCg0KRGlldSBoYW5oIGJhbyBnaW8gY3VuZyBwaGFpIGNvIGR1IGJhbywgcGhhbiBk b2FuLiBWZSBjaHUgdHJ1b25nLCB0aGVvIGRhbmggZ2lhIGN1YSB0b2kgDQpsYSBkdW5nLCBuaHVu ZyBoYW5oIGRvbmcgbGFpIGNoYW0uIENodSB0cnVvbmcgdmUgdmFuZywgVVNELCB0eSBnaWEgdmEg bGFpIHN1YXQgbGEgZHVuZywgDQpraXAgdGhvaSwgbmh1bmcgdHJpZW4ga2hhaSB0aGkga2hvbmcg YW4gbmhhcC4gQ2h1IHRydW9uZyB2YSB0cmllbiBraGFpIGxhIGhhaSB2YW4gZGUgDQpraGFjIG5o YXUuIFZpIGR1LCBybyByYW5nIGxhIGNvIHF1eSBsdWF0IGdpYSB2YW5nIHRhbmcgbyBnaWFpIGRv YW4gY3VvaSBuYW0sIGRhYyBiaWV0IGxhIHRhbSBseSANCm5ndW9pIGRhbiBkaSBtdWEgdmFuZyB2 YW8gZ2lhaSBkb2FuIGN1b2kgbmFtLCBuZXUgYW5oIGNobyBuaGFwIG5nYXkgdmFuZyB0aGkgdGlu aCBoaW5oIA0Kc2Uga2hhYywgaG9hYyBVU0QgdGFuZyB0aGkgY28gYmllbiBwaGFwIGRpZXUgdGll dCBuZ2F5IHRoaSBnaWEgc2UgeHVvbmcuIE5ndW9pIHRhIGNoaSANCm5oaW4gdmFvIGhhbmggZG9u ZyBjdSB0aGUuIENhYyBuaGEgZGF1IGNvIGJhbyBnaW8gY3VuZyBxdWFuIHNhdCByYXQga3kgaGFu aCBkb25nIGN1YSANCmNvIHF1YW4gbmhhIG51b2MsIGNodSBraG9uZyBjaGkgbmdoZSBjYWMgdHV5 ZW4gYm8uIE5ldSBobyB0aGF5IGtoYSBuYW5nIE5oYSBudW9jIA0KaGFuaCBkb25nIHRoaSBobyBz ZSBidW5nIGhhbmcgaG9hIGN1YSBtaW5oIHJhIHRoaSB0cnVvbmcuIE5odSB2dWEgcXVhLCBnaWEg dmFuZyB2YSANClVTRCBjdSBiaWVuIGxvYW4gbGEgZG8gaG8gdGhheSB0YSBjaGkgbW9pIG5vaSBt YSBjaHVhIGxhbSwgbmVuIGhvIGdhbSBsYWkgZGUgbGFtIGdpYS4gDQpEbyBkbywgY28gdGhlIG5v aSBvIFZpZXQgTmFtLCB2YW4gZGUgdGFtIGx5IGRvaSBraGkgY29uIHRhYyBoYWkgbmFuZyBuZSBo b24gY2Egbmh1bmcgDQpnaWFpIHBoYXAgdGhpZXUga2lwIHRob2kgaGF5IGtob25nIGR1bmcgdGhv aSBkaWVtDQoNClZpZWMgY2FwIHF1b3RhIG5oYXAga2hhdSB2YW5nIGNvIGxhbSB0YW5nIHRoZW0g YXAgbHVjIGRvaSB2b2kgbmd1b24gY3VuZyBuZ29haSB0ZT8NCg0KTmhhIG51b2MgY2hpIGNhcCBx dW90YSBuaGFwIHZhbmcsIGNodSBraG9uZyBjdW5nIGNhcCBVU0QgZGUgbmhhcCB2YW5nLiBEb2Fu aCANCm5naGllcCBodXkgZG9uZyBkdW9jIHZvbiB0cmVuIHRoaSB0cnVvbmcgdm9pIG11YyBnaWEg Y28gbG9pIHRoaSBobyBzZSB0aWVuIGhhbmggbmhhcCANCnZhbmcuIERpZXUgZG8gcmF0IHRvdC4g S2hvbmcgaGUgYW5oIGh1b25nIGRlbiB2YW4gZGUgY3VuZyBjYXUgbmdvYWkgdGUuIE1hIHJvIHJh bmcgbGEgDQp2aWVjIGRvIGxhaSB0aGFtIGdpYSBkaWV1IGhvYSBnaWEgdGhpIHRydW9uZzogZ2lh IHZhbmcgZ2lhbSB4dW9uZywgbWEgVVNEIHRodSBob2kgdmUgZG8gDQphcCBsdWMgY2hvIG5ndW9u IGN1bmcgbmdvYWkgdGUuIC4gDQoNCkJvIFRhaSBjaGluaCBkZSBuZ2hpIHRhbmcgdGh1ZSB4dWF0 IGtoYXUgdmFuZyBsZW4gMjAlIA0KDQpOaGFtIHBodWMgdnUgY29uZyB0YWMgYmFuIGhhbmggQmll dSB0aHVlIHh1YXQgbmhhcCBraGF1IG5hbSAyMDExLCBuZ2F5IDkuMTEsIEJvIFRhaSANCmNoaW5o IGRhIGNvIGNvbmcgdmFuIHhpbiB5IGtpZW4gbW90IHNvIGJvLCBuZ2FuaCB2ZSB2aWVjIGRpZXUg Y2hpbmggdGh1ZSBzdWF0IHh1YXQga2hhdSANCm1vdCBzbyBtYXQgaGFuZy4gVHJvbmcgZG8gbXVj IHRodWUgeHVhdCBraGF1IGRvaSB2b2kgbWF0IGhhbmcgdmFuZyBkdSBraWVuIHNlIGxhIDIwJSwg DQpiYW5nIHZvaSBtdWMgdGh1ZSB4dWF0IGtoYXUgY3VhIGNhYyBsb2FpIHF1YW5nIGtpbSBsb2Fp IHF1eS4gDQoNClRoZW8gVGhvbmcgdHUgMjE2LzIwMDkvVFQtQlRDIG5nYXkgMTIuMTEuMjAwOSBj dWEgQm8gVGFpIGNoaW5oIHF1eSBkaW5oIG11YyB0aHVlIA0Kc3VhdCBjdWEgQmlldSB0aHVlIHh1 YXQga2hhdSwgYmlldSB0aHVlIG5oYXAga2hhdSB1dSBkYWkgdGhlbyBkYW5oIG11YyBtYXQgaGFu ZyBjaGl1IA0KdGh1ZSB0aGkgaGllbiBuYXkgbWF0IGhhbmcgdmFuZyBraG9uZyBuYW0gdHJvbmcg ZGFuaCBtdWMgbWF0IGhhbmcgcGhhaSBjaGl1IHRodWUgeHVhdCBraGF1LiANCg0KaHR0cDovL3d3 dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ2LzIwMTAxMTEwMDA1NDA0LmFzcHgg Tmd1eWVuIEtoYW5oIDEwLzExLzIwMTAgMDo1NCANCg0KVGh1IHR1b25nOiBDYW4gcGhvaSBob3Ag ZG9uZyBibyAgDQogIA0KQ28gdGhlIG5vaSwgaG9tIHF1YSBsYSBtb3QgcGhpZW4gImRpZW4gbG9h biIgY3VhIGdpYSB2YW5nIHZvaSBtdWMgdGFuZywgZ2lhbSBjdWMgbG9uIA0Ka2hpZW4gZ2lvaSBk YXUgdHUgdmEgbmd1b2kgZGFuIGRldSB0aG90IHRpbS4gTGFuIGRhdSB0aWVuIHRyZW4gdGhpIHRy dW9uZywgY2FjIGNvbmcgdHkgDQpraW5oIGRvYW5oIHZhbmcgbmllbSB5ZXQgZ2lhIG11YSAtIGJh biBjaGVuaCBuaGF1IHRvaSA1MDAuMDAwIGRvbmcgLSAxIHRyaWV1IA0KZG9uZy9sdW9uZyBuaHVu ZyB2YW4ga2hvbmcgY2hhbiBkdW9jIGxhbiBzb25nIG11YSB2YW5nIHR1IHRyb25nIGRhbi4gDQoN ClRydW9jIHRpbmggaGluaCBuYXksIE5nYW4gaGFuZyBOaGEgbnVvYyAoTkhOTikgZGEgdGhvbmcg YmFvIGNobyBwaGVwIG5oYXAga2hhdSANCnZhbmcgZGUgYmluaCBvbiB0aGkgdHJ1b25nIHRyb25n IG51b2MuIFF1eWV0IGRpbmggbmF5IGRhIGNvIGhpZXUgcXVhLCBkYXkgZ2lhIHZhbmcgZ2lhbSAN Cm1hbmggdmUgbXVjIDM2LDcgdHJpZXUgZG9uZy9sdW9uZyBraGkgZG9uZyBjdWEgcGhpZW4gZ2lh byBkaWNoIG5nYXkgaG9tIHF1YS4gVHV5IA0KbmhpZW4sIGhhdSBoZXQgeSBraWVuIGRldSBjaG8g cmFuZywgYmllbiBwaGFwIG5heSBjaGkgbWFuZyB0aW5oIG5oYXQgdGhvaSwga2hvbmcgdGhlIGJp bmggDQpvbiB0aGkgdHJ1b25nIHZhbmcgdmUgbGF1IGRhaS4gRGlldSBuYXkgbGEgZGUgaGlldSBi b2kgYmllbiBwaGFwIG5oYXAga2hhdSB2YW5nIGRhIGR1b2MgDQpOSE5OIHN1IGR1bmcgaG9pIGRh dSB0aGFuZyAxMCB2dWEgcXVhLiBLZXQgcXVhIGxhIGdpYSB2YW5nIHZhbiBjdSB0YW5nLCB0aGFt IGNoaSANCm5nYXkgY2FuZyB0YW5nIG1hbmgsIGNhbmcga2hvIGtpZW0gc29hdDsgZ2lhIHZhbmcg dHJvbmcgbnVvYyB2YSB0aGUgZ2lvaSB2YW4gbGllbiB0dWMgY28gDQoiZG8gdmVuaCIuIA0KDQpQ aGFpIGtoYW5nIGRpbmggbGEsIGNodSB0cnVvbmcgY2hvIG5oYXAga2hhdSB2YW5nIGxhIGR1bmcg bmh1bmcgbmhhcCBiYW8gbmhpZXUgZGUgZHUgDQpkbyBlcC1waGUgY2hvIHRoaSB0cnVvbmcgcGhh aSBkdW9jIHRpbmggdG9hbiBjYW4gdHJvbmcuIERhYyBiaWV0LCBOSE5OIGNhbiBwaGFuIHVuZyAN Cm5oYW5oIGhvbiwgZHV0IGtob2F0IGhvbiB0cm9uZyBib2kgY2FuaCBuaGF5IGNhbSBoaWVuIG5h eS4gRG9uIGN1IG5odSBob20gcXVhLCBraGkgDQpOSE5OIHRob25nIGJhbyBjaG8gcGhlcCBuaGFw IGtoYXUgdmFuZywgZ2lhIHZhbmcgbGFwIHR1YyBnaWFtIG1hbmguIE5odW5nIHNhdSBraGkgDQpu Z2hlIG5nb25nLCB0aGF5IGNodWEgY29uZyBibyBzbyBsdW9uZyBuaGFwIGtoYXUsIGdpYSB2YW5n IGxhaSAiY2hvbSIgbGVuIHZpIG5oaWV1IHkgDQpraWVuIGNobyByYW5nLCBjbyB0aGUgZGF5IGxh ICJkb24gZ2lvIiBjdWEgTkhOTiBkZSBiaW5oIG9uIHRoaSB0cnVvbmcuIERlbiBraGkgbW90IHNv IA0KZG9uIHZpIGNobyBiaWV0IHNvIGx1b25nIG5oYXAga2hhdSBjdSB0aGUsIGdpYSB2YW5nIG1v aSBkdW9pIHN1YyBnaWFtIHZlIDM2LDcgdHJpZXUgDQpkb25nL2x1b25nIG5odSBub2kgdHJlbi4g VHVvbmcgdHUgbmh1IHZpZWMgZGlldSBoYW5oIHR5IGdpYS4gRGEgMSB0dWFuIGtlIHR1IGtoaSBO SE5OIA0KdHV5ZW4gYm8gImJvbSIgVVNEIHJhIHRoaSB0cnVvbmcgbmh1bmcgY2hvIGRlbiBoZXQg bmdheSBob20gcXVhIHZhbiBraG9uZyBoZSBjbyANCmRvbmcgdGluaCBnaSB2ZSB2aWVjIG5heSBr aGllbiBnaWEgVVNEIGxpZW4gdHVjIHRhbmcuIERvIGxhIGNodWEga2UgZGVuIHZpZWMgdGhpZXUg bmhhdCANCnF1YW4gdHJvbmcgY29uZyBibyB0aG9uZyB0aW4gZ2l1YSBjYWMgY28gcXVhbiBjaHVj IG5hbmcgZ2F5IGhvYW5nIG1hbmcsIGJhdCBvbiBjaG8gDQpuaGlldSBuZ3VvaS4gTmh1IHZpZWMg VXkgYmFuIEdpYW0gc2F0IHRhaSBjaGluaCBjb25nIGJvIGNvIGhvbiA0NS4wMDAgdGkgZG9uZyBi aSBydXQgcmEgDQpraG9pIGhlIHRob25nIE5IIGRlIG11YSB2YW5nLCBVU0Qgbmh1bmcgTkhOTiBs YWkga2hhbmcgZGluaCBraG9uZyBoZSBjbyBjaHV5ZW4gDQpuYXkuIA0KDQpQaGFuIHVuZyBuaGFu aCwgZHV0IGtob2F0LCBraXAgdGhvaSBsYSBkaWV1IGNhbiB0aGlldC4gVHV5IG5oaWVuLCBjYWMg YmllbiBwaGFwIHRyZW4gY3VuZyANCmNoaSBsYSB0aW5oIHRoZS4gR29jIGN1YSB2YW4gZGUgbGEg bm9pIGxvIGxhbSBwaGF0IGRhbmcgbGFuIHJvbmcgdHJvbmcgbmd1b2kgZGFuLCBkYW4gZGVuIA0K dGFtIGx5IHRpY2ggdHJ1IHZhbmcsIFVTRC4gVGhlbyB0aWVuIHNpIExlIFRoYW0gRHVvbmcsIFRy dW9uZyBraG9hIFF1YW4gdHJpIGtpbmggDQpkb2FuaCwgREggTmdhbiBoYW5nIFRQLkhDTSwgZGUg Z2lhaSBxdXlldCB2YW4gZGUgbmF5IGNhbiBjbyBzdSBwaG9pIGhvcCBkb25nIGJvIA0KY3VhIG5o aWV1IGNvIHF1YW4gY2h1YyBuYW5nIGNodSBraG9uZyBjaGkgcmllbmcgTkhOTi4gRG8gbGEgc3Ug cXV5ZXQgbGlldCBjdWEgQm8gDQpDb25nIHRodW9uZyB0cm9uZyB2aWVjIHF1YW4gbHkgZ2lhOyBk dW5nIG5nYXkgYm9pIGNoaSBuZ2FuIHNhY2g7IGNhYyBkdSBhbiB0aGlldSBoaWV1IA0KcXVhIHBo YWkgZHVvYyBuZ3VuZyB0dWMgdGhpLi4uIkxhbSBwaGF0IHZ1YSBkbyB0aWVuLCB2dWEgZG8gaGFu ZyBuZW4gbW90IG1pbmggTkhOTiANCmtob25nIHRoZSBsYW0gZHVvYywgY2FuIGNvIHN1IHBob2kg aG9wIHZhIHRyaWVuIGtoYWkgZG9uZyBibywgYW4ga2hvcCB2b2kgbmhhdS4gQ28gbmh1IA0KdmF5 IG1vaSBvbiBkaW5oIGxvbmcgZGFuIHZhIG9uIGRpbmggdGhpIHRydW9uZyItIHRpZW4gc2kgRHVv bmcgbm9pLiAgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEw NDYvMjAxMDExMDkwMTE0MTcuYXNweCBOLlRyYW4gVGFtIDA5LzExLzIwMTAgMToxNCANCg0KR2lh IGNhIGN1b2kgbmFtDQogIA0KQ2FjIHNpZXUgdGhpIG8gVFAuSENNIHRyb25nIG1heSBuZ2F5IHF1 YSB4YXkgcmEgY2FuaCB0dW9uZyBuZ3VvaSBkYW4gY2hvIGRvaSBoYW5nIA0KZ2lvIGRlIG11YSBk dW9uZyBiYW4gdGhlbyBnaWEgYmluaCBvbiwgcmUgaG9uIGJlbiBuZ29haSB0dSA1LTYgbmdhbiBk b25nL2tnLiBOaGlldSANCm5ndW9pIHBoYWkgdmF0IHZhIG5odSB2YXkgY28gbmdoaWEgbGEgZ2lh IGNhIG1vaSB0aHUgZGEgZ2F5IGFwIGx1YyBsb24gZGVuIG11YyBtb2kgDQpuZ3VvaSBwaGFpIGNv IGdhbmcgZGUgdGlldCBraWVtIG1vdCBjYWNoIGNhbiB0aGlldCBkZSB0aGljaCB1bmcgdm9pIGhv YW4gY2FuaC4gDQoNCkdpYSBjYSB0YW5nIGNhbyB0YWMgZG9uZyBkZW4gbmhpZXUgZG9pIHR1b25n LCBuaHVuZyBhcCBsdWMgcm8gbmhhdCBsZW4gZG9pIHNvbmcgbmd1b2kgDQpkYW4sIGRhYyBiaWV0 IGxhIGJvIHBoYW4gbmd1b2kgdGh1IG5oYXAgdHJ1bmcgYmluaCAtIHRoYXAsIG5odW5nIG5ndW9p IG1hIHR5IGxlIGNoaSB0aWV1IA0KY2hvIGx1b25nIHRodWMsIHRodWMgcGhhbSBoYW5nIG5nYXkg Y2hpZW0gcGhhbiBsb24gdHJvbmcgdG9uZyB0aHUgbmhhcC4gDQoNCk1vdCBiYW4gZG9jIGN1YSBC YW8gVGhhbmggTmllbiwgY2hpIEhpZW4sIGhvbSBxdWEgZGllbiB0aG9haSBjaGlhIHNlIHZvaSBj aHVuZyB0b2kgdmUgDQpub2kga2hvIGdhbmggbmFuZyBjaGkgdGlldSBoYW5nIG5nYXkuIExhbSBu aGFuIHZpZW4gdmFuIHBob25nIG8gbW90IGNvIHF1YW4gbmhhIA0KbnVvYywgdGh1IG5oYXAgbW9p IHRoYW5nIGNhIGx1b25nIHZhIHBodSBjYXAgZHVvYyA2IHRyaWV1IGRvbmcuIEJpbmggdGh1b25n LCB0aHUgbmhhcCANCm5heSBkYSBraG9uZyBjYW8gbyBtb3Qgbm9pIGRhdCBkbyBuaHUgVFAuSENN LCBnaW8gdGhpIGtob2FuIHRodSBuaGFwIGRvIGRhIHRoYXAgaGFuIA0KZGkga2hpIGdpYSBjYSBt b2kgdGh1IG5nb2FpIGNobyB0YW5nIHZ1biB2dXQuIENoaSB0aWV1IGNobyB0aWVuIGNobywgdGll biBkaWVuLCB0aWVuIG51b2MuLi4gDQpjdWEgdm8gY2hvbmcgdmEgbW90IGR1YSBjb24gbmhhIGNo aSBiYXkgZ2lvIGRhIGxlbiB0b2kgMTAgdHJpZXUgZG9uZyBtb2kgdGhhbmcuIENhIG5oYSANCmNo aSBkYW5nIGRhdSBkYXUgdm9pIGJhaSB0b2FuIGNoaSB0aWV1IHNpbmggaG9hdCBoYW5nIG5nYXks IHRpY2ggbHV5IGNobyBjb24gYW4gaG9jLCBtdWEgDQpuaGEuLi4gVmEgdGhlbyBjaGkgSGllbiwg ZG8gbGEgbHkgZG8gdGFpIHNhbyBjaGkgdmEgbmhpZXUgbmd1b2kgcGhhaSBibyBjb25nIHhlcCBo YW5nIGNobyANCm11YSBkdW9uZyBnaWEgcmUuDQoNClRhbSBseSBiYXQgYW4gY3VuZyBiYW8gdHJ1 bSBsZW4gZG9hbmggbmdoaWVwLiBDaGkgcGhpIGRhdSB2YW8gdGFuZyBjb25nIHZvaSB0eSBnaWEg YmllbiANCmRvbmcgdGhvaSBnaWFuIHF1YSBraGllbiBuaGlldSBkb2FuaCBuZ2hpZXAgImJvbmcg ZHVuZyBtYXQgdGllbiIuIENoYW5nIGhhbiwgVG9uIEhvYSANClNlbiBtYXQgMjAwIHRpIGRvbmcg dHJvbmcgdm9uZyAxIG5hbSBxdWEgY2hpIHZpIGdpYSBVU0QgdGFuZyAobmhhcCB0aGVwIGRlIHNh biB4dWF0KSwgDQpuaHVuZyBraG9uZyB0aGUgdGFuZyBnaWEgYmFuIHNhbiBwaGFtIGJvaSBraGFj aCBoYW5nIGtob25nIGNoYXAgbmhhbjsgbmhpZXUgZG9hbmggDQpuZ2hpZXAga2hhYyBsYWkgcXV5 ZXQgZGluaCB0YW5nIGdpYSBiYW4gdHVuZyBkb3Qga2hpIGNhYyBzYW4gcGhhbSBjdW5nIGxvYWkg dGFuZyBnaWEuLi4gDQpLaGkgZG8sIG5ndW9pIHRpZXUgZHVuZyB0cm8gbmVuIGRhbiBkbyBob24g dHJ1b2MgY2FjIHNhbiBwaGFtIHRhbmcgZ2lhLCBkb2FuaCB0aHUgY3VhIA0KZG9hbmggbmdoaWVw IGdpYW0uIA0KDQpHaWEgY2EgZGllbiBiaWVuIG5odSBoaWVuIG5heSBjb24gZ2F5IGtobyBraGFu IGNobyB2aWVjIHRodWMgaGllbiBjYWMga2UgaG9hY2ggZGF1IHR1LCANCmtoaSBtb2kgZHUgdG9h biBkZXUgY28gdGhlIGJpIHBoYSBzYW4uIFRoZW8gVFMgVHJhbiBEdSBMaWNoLCBQaG8gdHJ1b25n IGRvYW4gZGFpIGJpZXUgDQpRdW9jIGhvaSBUUC5IQ00sIG5ndXllbiBuaGFuIHNhdSB4YSBjdWEg Y2hpIHNvIGdpYSB0aWV1IGR1bmcgKENQSSkgYmF0IG9uIHh1YXQgcGhhdCB0dSANCmNhbiBjbyBj dWEgY28gY2F1IG5lbiBraW5oIHRlIFZpZXQgTmFtLCBraGkgcGhhaSBsdW9uIHVuZyBwaG8gdm9p IG5oYXAgc2lldSwga2hpZW4gY2FuIA0KY2FuIHRoYW5oIHRvYW4gcXVvYyB0ZSBtYXQgY2FuIGRv aS4gVmkgdGhhbSBodXQgdGFpIGtob2FuIHZhbmcgbGFpIGxvbiBuZW4gYXAgbHVjIGxlbiBnaWEg DQp0cmkgZG9uZyB0aWVuLCBsZW4gdHkgZ2lhLi4uIGN1bmcgbG9uLCB2YSBkbyBkbywgdmllYyBr aWVtIGNoZSBsYW0gcGhhdCBsYSByYXQga2hvIGtoYW4uIENvbiANCnRoZW8gY2h1eWVuIGdpYSBr aW5oIHRlIFZvIERhaSBMdW9jLCBjaG8gZHUgQ1BJIG5hbSAyMDEwIGN1YSB0YSBjbyB0aGFwIGhv biBuYW0gMjAwOSANCnRoaSB2YW4gcmF0IGNhbyBzbyB2b2kgdGhlIGdpb2ksIG5nYXkgVHJ1bmcg UXVvYyBjaGkgc28gQ1BJIGNvIHh1IGh1b25nIHRhbmcgbmh1bmcgY3VuZyANCmNoaSBraG9hbmcg MyUuIENQSSBjYW8gc2UgZGFuIHRvaSBuaGlldSBoYXUgcXVhIGJhdCBsb2kgdmUgdGluIGR1bmcs IGRhdSB0dSB2YSBkb2kgc29uZyBuZ3VvaSBkYW4uIA0KDQpNb2kgZGF5LCBCbyB0cnVvbmcgQ2h1 IG5oaWVtIFZhbiBwaG9uZyBDaGluaCBwaHUgTmd1eWVuIFh1YW4gUGh1YyBub2kgY2hpIHNvIGxh bSANCnBoYXQgbmFtIG5heSBjbyB2dW90IGNoaSB0aWV1IDglIGhheSBraG9uZyBjb24gcGhhaSBj aG8gdmFvIG5odW5nIGJpZW4gcGhhcCBkb25nIGJvLCANCnF1eWV0IGxpZXQgY3VhIGNhYyBibyBu Z2FuaCB0cm9uZyB0aG9pIGdpYW4gdG9pIHZhIHF1eWV0IHRhbSBnaXUgbyBtdWMgMSBjb24gc28u IE5odW5nIA0KeGVtIHJhIG11YyB0aWV1IG5heSBraG8gdGh1YyBoaWVuIGJvaSB0aGVvIHRodW9u ZyBsZSwgY3VvaSBuYW0gZ2lhIGNhIHRodW9uZyB0YW5nIGNhby4gDQoNCmh0dHA6Ly92bnI1MDAu dm4vMjAxMC0xMS0wNC11c2QtdGFuZy1naWEtbmdoaWNoLWx5LW5nb2FpLWhvaS1jaGktY28tby12 aWV0LW5hbSBMZSBLaGFjIDA0LzExLzIwMTAgMTY6MzAgR01UKzcNCg0KVVNEIHRhbmcgZ2lhIC0g TmdoaWNoIGx5IG5nb2FpIGhvaSBjaGkgY28gbyBWaWV0IE5hbSANCg0KKFZFRikgLSBHaWEgdHJp IGRvbmcgVVNEIGRhbmcgZ2lhbSB0cmVuIHRvYW4gdGhlIGdpb2kgbmh1bmcgbyBWaWV0IE5hbSBu byBsYWkgdGFuZyBtYW5oLiBEYXkgbGEgbW90IG5naGljaCBseSB2YSBkYSBnYXkgcmEgbmh1bmcg dGFjIGhhaSBsb24gY2hvIG5lbiBraW5oIHRlLg0KDQpZIGtpZW4gYmFvIGRvYzoNClRoYW5nbG9u ZyA1LzExLzIwMTA6IA0KIA0KTmh1bmcgbmhhIHF1YW4gbHkgdmkgbW8gdmFuIG1hYyBtb3QgY2Fu IGJlbmgga2luaCBuaWVuIGxhOiBtb2kga2hpIHRoaSB0cnVvbmcgY2hvIGRlbiANCmxlbiBjb24g c290IHZlIHR5IGdpYSBuZ29haSB0ZSB2YSBnaWEgdmFuZyB0aGkgY2h1bmcgdGEgbGFpIGdhbiB0 b2kgY2hvIGxhIGhpZW4gdHVvbmcgbHVuZyANCmRvYW4gdGhpIHRydW9uZyBob2FjIHRhbSBseSBi YXkgZGFuIGRhdSBjbyB0cnVjIGxvaS52LnYuIFRodWMgY2hhdCBnaWEgdGhpIHRydW9uZyBjaG8g DQpkZW4gaGllbiBuYXkgZGEgcGhhbiBhbmggZHVuZyBxdWFuIGhlIGN1bmcgY2F1IHZlIG5nb2Fp IHRlIGN1YSBuZW4ga2luaCB0ZS4gQmlldSBoaWVuIG8gDQpoYWkgbHkgZG86IFRodSBuaGF0IGxh IGx1b25nIG5nb2FpIHRlIGdpYW8gZGljaCBuZ29haSBuZ2FuIGhhbmcgaGllbiBuYXkga2hvbmcg bmhvLSANCmNodWEgY28gbmh1bmcgdGhvbmcga2UgY3UgdGhlIG5odW5nIHRoaWV0IG5naGkgbm8g Y28ga2hvbmcga2VtIGNhYyBnaWFvIGRpY2ggbmdvYWkgaG9pIA0KdHJvbmcgY2FjIG5nYW4gaGFu Zy4gVGh1IGhhaSBsYSBtb2kga2hpIHR5IGdpYSBjaG8gZGVuIHRoYXkgZG9pIHRoaSBjYWMgbmdh biBoYW5nIHRodW9uZyANCm1haSBjdW5nIHRhdCBudW9jIHRoZW8gbXVhIHZhIHRoYXkgZG9pIHRo ZW8gKGR1b2kgbmhpZXUgaGluaCB0aHVjKS4gQ2hpIGNvIG5oYSBudW9jIGxhIA0KbXVvbiBkaWV1 IHRpZXQgdHkgZ2lhIHRoZW8gbW90IGtpZXUgcmllbmcgY3VhIG1pbmguIFBoYWkgY2hhbmcgZG8g bGEgbW90IGNhY2ggZGlldSBoYW5oIA0KcXVhbiBseSB0aGVvIGtpZXUgbWVuaCBsZW5oIHZhIGR1 eSB5IGNoaS4gDQoNCkNodW5nIHRhIGNhbiBkYXQgY2F1IGhvaSB0YWkgc2FvIFRydW5nIFF1b2Mg Y28gdGhlIG5lbyB0eSBnaWEgZG9uZyBORCB0ZSB2YW8gZG9uZyBVU0QgDQp0YWkgYmEgbmh1IHZh eSBnYW4gY2h1YyBuYW0gdHJvaSBtYSBraG9uZyBjYW4gZGlldSBjaGluaCBsaWVuIHR1YyB0eSBn aWEgZG9uZyBub2kgdGUuIA0KTmh1IHZheSBiYWkgdG9hbiBuYW0gbyBjYWMgY2hpbmggc2FjaCB0 YWkgY2hpbmggdmkgbW8ga2hhYyBjaHUga2hvbmcgcGhhaSBjaGkgZG9uIA0KdGh1YW4gbGEgYmFp IHRvYW4gdGhheSBkb2kgYmllbiBkbyB0eSBnaWEuIA0KDQpDaHVuZyB0YSBjaHVhIHF1ZW4gbmh1 bmcgY2F1IGNodXllbiB4dWEgY28gdGhhdCAxMDAlIG8gbnVvYyB0YSBkbyBsYTogQ28gbmd1b2kg bm9uZyANCmRhbiBzYXAgdmUgZ2lhIGJhbiBkaSBjb24gYm8gaG9uZyBsYXkgdGllbiBndWkgdGlj aCBraWVtIGRlIGhhbmcgdGhhbmcgY28gdGllbiBsYWkgdGluaCANCmR1b25nIHR1b2kgZ2lhLiBU aGUgbmh1bmcgY2hpIHZhaSBuYW0gc2F1LCBkbyBWTkQgbWF0IGdpYSBkZW4gbm9pIG1hIHNvIHRp ZW4gZ3VpIHRpY2ggDQpraWVtIG5hbSBuYW8gbmF5IHJ1dCByYSBjaGkgZHUgdGllbiBtdWEgbW90 IHNvaSBkYXkgdGh1bmcuIENhdSBjaHV5ZW4gbmdoZSB0aGF0IGRhdSANCmxvbmcgbmh1bmcgZG8g bGEgdGh1YyB0ZSBkbyBzdSBtYXQgZ2lhIGtodW5nIGtoaWVwIGN1YSBkb25nIFZOLiBNYSBuZ2F5 IGRvIGN1bmcgY28gYWkgDQpiaWV0IHR5IGdpYSBkb25nIG5nb2FpIHRlIGhheSBnaWEgdmFuZyBs YSBnaSBkZSBkbyB0b2kgY2hvIG5vLiBWYW4gZGUgYmFvIHRvYW4gdGFpIHNhbiB2aSANCnRoZSBk YSBhbiBzYXUgdmFvIHkgdGh1YyBjdWEgbmd1b2kgZGFuIFZOIGRlbiB0YW4gbmdheSBuYXkuIA0K DQpDaGkgY28gZGlldSBybyByYW5nIGxhIGtob25nIG5lbiBkbyB2YW4gZGUgbGFtIHBoYXQgbGEg ZG8gdHkgZ2lhIG5nb2FpIHRlLCBtYSBuZ3V5ZW4gDQpuaGFuIGNodSB5ZXUgbGEgZG8gZHUgdGh1 YSBsdW9uZyB0aWVuIG1hdCAodGllbiBWTkQpIHRyb25nIGx1dSB0aG9uZy4gTm8gbGEgaGUgcXVh IA0KdG9uZyBob2EgY3VhIGNhYyBseSBkbyBzYXU6IA0KLSBDaGkgdGlldSBuZ2FuIHNhY2ggcXVh IGxvbiBtYSBraG9uZyBjbyBoaWV1IHF1YSB0dW9uZyB4dW5nIGxhbSB0YW5nIGN1YSBjYWkgY2hv IHhhIGhvaS4gDQotIENoaSBwaGkgcXVhbiBseSBoYW5oIGNoaW5oIHF1YSBjYW8gdHJvbmcga2hp IGNoaW5oIHNhY2ggY2FpIHRpZW4gdGllbiBsdW9uZyBraG9uZyBkdWEgDQp0cmVuIGNvIHNvIGhv cCBseSBob2EgKHRhbmcgbHVvbmcgbWEga2hvbmcgbGFtIHRhbmcgdG9uZyBjaGkgcGhpIHRpZW4g bHVvbmcpIG1hIGNoaSANCmNoYXkgdGhlbyBsYW0gcGhhdCBkb25nIHRpZW4uIERpZXUgbmF5IGNo YW5nIGtoYWMgZ2kgZG8gdGhlbSBkYXUgdmFvIGx1YSBraGllbiB0eSBnaWEgDQpkb25nIFZOIGNh bmcgbWF0IGdpYS4gDQotIENvIHZhbiBkZSB0cm9uZyBuZW4ga2luaCB0ZSBoYW5nIGhvYSwgY3Vu ZyBraG9uZyBkYXAgdW5nIGR1b2MgY2F1LiBTYW4geHVhdCB0cm9uZyANCm51b2Mga2hvIGtoYW4s IGtpbmggdGUga2hvbmcgcGhhdCB0cmllbiB0aGVvIGtpcCBuaHUgY2F1IHRpZXUgZHVuZywgaG9h YyBkb25nIHRpZW4gY2hpIA0KdGlldSBraG9uZyBoaWV1IHF1YSBjdWEgbmdhbiBzYWNoIG5oYSBu dW9jIGxhaSB2b25nIGxhaSBnYXkgYXAgbHVjIGNobyBjaGkgc28gaGFuZyB0aWV1IA0KZHVuZyB2 YSBuaHUgY2F1IHRpY2ggbHV5IGxhbSBkYXkgZ2lhIHZhbmcgdmEgbmdvYWkgdGUgdm90IGxlbi4g DQotIENvIGhheSBraG9uZyB2aWVjIHBoYXQgaGFuaCB0aWVuIG1hdCByYSBsdXUgdGhvbmcgcXVh IGxvbi4gS2hvbmcgcGhhaSB0dSBuaGllbiBtYSANCmRvbmcgVVMkIGtoaSByYSBkb2kgZGEgZHVv YyBiYW8gZGFtIGJhbmcgbHVvbmcgdmFuZyBkdSB0cnUgdHJvbmcgcXVvYyBraG8uIE5ldSBOTiAN CmN1IHBoYXQgaGFuaCB0aWVuIGRvbmcgbW90IGNhY2ggZGluaCB0aW5oICh5IGNoaSkgbWEga2hv bmcgZHVhIHRyZW4gY28gc28gbW90IG5ndXllbiBseSANCnRhaSBjaGluaCBuYW8gdGhpIGRvbmcg dGllbiBWTiBtYXQgZ2lhIGN1bmcgbGEgZHVvbmcgbmhpZW4uIENhY2ggZGlldSBoYW5oIG5heSBr aG9uZyANCmtoYWMgZ2kgbW9jIHR1aSBob3AgcGhhcCB0YWkgc2FuIGN1YSBuaGFuIGRhbiwgZGFj IGJpZXQgbGEgbmh1bmcgbmd1b2kgbGFtIGNvbmcgYW4gDQpsdW9uZy4gDQpUcmVuIGRheSBjaGkg bGEgbW90IHZhaSBzdXkgbmdoaSwgbmh1bmcgdGhpZXQgbmdoaSBjaHVuZyB0YSBuZW4gbmhpbiBu aGFuIHNhdSB4YSBtb3QgDQpjaHV0IGtob25nIG5lbiBkbyBidWEgY2hvIG5odW5nIGx5IGRvIG5o byBsZSBtYSBjaGkgbGEgaGUgcXVhIGN1YSBuaHVuZyBuZ3V5ZW4gbmhhbiBjaGluaC4NCg0KaHR0 cDovL3ZucjUwMC52bi8yMDEwLTEwLTE5LXVzZC12dW90LTIwLTAwMC1kb25nLXZhLWxvaS1kb24t dGFuZy10eS1naWEgTGUgS2hhYw0KDQpUaHUgdHVvbmc6IFVTRCB2dW90IDIwLjAwMCBkb25nIHZh IGxvaSBkb24gdGFuZyB0eSBnaWENCg0KKFZOUjUwMCkgLSBHaWEgVVNEIHRpZXAgdHVjIHRhbmcg Y2FvLCBkYW4gZG8geG8gZGkgbXVhIGRvIGxvIG5nYWkgVVNEIHRpZXAgdHVjIHRhbmcgDQpnaWEu IEFwIGx1YyB0YW5nIGdpYSBjb25nIHZvaSBiaWVuIGRvbmcgdGFtIGx5IGRhbmcga2hpZW4gY2hv IG5odW5nIHRpbiBkb24gdmUgdGFuZyB0eSANCmdpYSBkdW9jIGRpcCB0dW5nIHJhLg0KDQpDaGll dSBuZ2F5IDE5LzEwLCBnaWEgVVNEIHRyZW4gdGhpIHRydW9uZyBIYSBOb2kgdGllcCB0dWMgdGFu ZyB2YSBjaGluaCB0aHVjIHZ1b3QgcXVhIA0Kbmd1b25nIDIwLjAwMCBkb25nL1VTRC4NCg0KR2lh IFVTRCBnaWFvIGRpY2ggdGFpIGNobyBVU0QgdHUgZG8gSGEgVHJ1bmcgbGllbiB0dWMgdGhheSBk b2ksIGRlbiBkYXUgZ2lvIGNoaWV1LCBnaWEgDQpVU0QgZGEgbGVuIG11YyAxOS45NzAgLSAyMC4w MzAgZG9uZy9VU0QsIHRhbmcgdGllcCBraG9hbmcgMzAgZG9uZy9VU0Qgc28gdm9pIGN1b2kgDQpn aW8gc2FuZyBuYXkuIERvIHZheSwgbmhpZXUgZGllbSB0aHUgbXVhIG5nb2FpIHRlIHRybyBuZW4g Y2FuIHRyb25nLCBraG9uZyBkYW0gY29uZyBibyANCmdpYSB0cnVvYyBjaGkgYmFvIGtoaSBraGFj aCBob2kgbXVhLg0KDQpDb24gdHJvbmcgaGUgdGhvbmcgbmdhbiBoYW5nLCBVU0QgZGFuZyBjbyBk YXUgaGlldSBjYW5nIGN1bmcuIFR5IGdpYSBsaWVuIG5nYW4gaGFuZyANCnZhbiBnaXUgbyBtdWMg MTguOTMyIFVTRC4NCg0KVHJvbmcga2hpIGRvLCB0eSBnaWEgZ2lhbyBkaWNoIFVTRCB0YWkgY2Fj IG5nYW4gaGFuZyB0aHVvbmcgbWFpIGRhIGxlbiBkZW4gbXVjIDE5LjQ5MCANCi0gMTkuNTAwIGRv bmcvVVNELCB0aGFtIGNoaSBjbyBnaWFvIGRpY2ggY2hvdCB0b2kgMTkuOTkwIGRvbmcgLiBHaWEg VVNEIGRhIG5hbmcgbGVuIA0Ka2ljaCB0cmFuLCBnaWEgbXVhIHZhbyB2YSBiYW4gcmEgZ2FuIHNh dCBuaGF1IGxhIHRpbmggdHJhbmggY2hvIHRoYXkgY2FjIG5nYW4gaGFuZyBkYW5nIA0KcmF0IGto byBraGFuIHZlIG5ndW9uIGN1bmcgZGF1IHZhby4NCg0KVGhlbyBWbkV4cHJlc3MsIG1vdCBuZ2Fu IGhhbmcgbG9uIGRhIGxpZW4gdHVjIGRhbmggdGllbmcgdm9pIE5nYW4gaGFuZyBOaGEgbnVvYyBk ZSANCm5naGkgY3VuZyB1bmcgbmdvYWkgdGUuIE5nYW4gaGFuZyBuYXkgY28gbmhpZXUga2hhY2gg aGFuZyBsYSBkb2FuaCBuZ2hpZXAgeGFuZyBkYXUsIA0KZGllbiwgdm9pIGRvbiBoYW5nIG5oYXAg a2hhdSBsZW4gdG9pIHZhaSB0cmFtIHRyaWV1IFVTRC4NCg0KIkRheSBraG9uZyBwaGFpIGxhIG5o dW5nIG1hdCBoYW5nIG5hbSB0cm9uZyBkYW5oIG11YSBkdW9jIHV1IHRpZW4gY3VuZyB1bmcgbmdv YWkgdGUsIA0Kbmh1bmcgY2h1bmcgdG9pIGN1bmcga2hvbmcgZGFtIGJhbiBjaG8gaG8gY2FvIGhv biBnaWEgdGhpIHRydW9uZy4gTmh1bmcgYmFuIHRoYW4gDQpjaHVuZyB0b2kgY3VuZyBraG9uZyB4 b2F5IGRhdSByYSBtdWMgZ2lhIHRoZW8gdHJhbiBxdXkgZGluaCBoaWVuIG5heSIsIHZpIGNhbiBi byBwaHUgDQp0cmFjaCBraW5oIGRvYW5oIG5nb2FpIHRlIGN1YSBuZ2FuIGhhbmcgbmF5IHRoYW4g dGhvLg0KDQpIaWVuIG5heSwgY2FjIG5nYW4gaGFuZyB2YW4gbmllbSB5ZXQgdHkgZ2lhIG8gbXVj IGtpY2ggdHJhbiAxOS41MDAgZG9uZywgbmh1bmcgdGhlbyANCm5oaWV1IGRvYW5oIG5naGllcCwg Z2lhIGdpYW8gZGljaCB0aHVjIHRlIGtob25nIHRoYXAgaG9uIHRoaSB0cnVvbmcgdHUgZG8gYmFv IG5oaWV1Lg0KRGF5IGxhIHRpbmggdHJhbmcgZGEgbmhpZXUgbGFuIHhheSByYSB2YSBrZXQgY3Vj IGN1b2kgY3VuZyBsYSB0eSBnaWEgc2UgZHVvYyBkaWV1IGNoaW5oLg0KDQpBbmg6IFVTRCB0YW5n IGdpYSBraGllbiB0aW4gZG9uIHRhbmcgdHkgZ2lhIHJvIGxlbi4gKEFuaDogVk5SKQ0KDQpDaGlu aCB2aSB0cmFuZyB0aGFpIGhpZW4gbmF5LCBuZW4gbmd1b2kgZGFuIHRvIHJhIGxvIGxhbmcgZG8g ZG9uIGRpIG11YSBVU0QgbGFtIGNobyB0aGkgDQp0cnVvbmcgY28gbW90IG5nYXkgdm8gY3VuZyBz b2kgZG9uZy4gQ2FjIHRpbiBkb24gdmUga2hhIG5hbmcgZGlldSBjaGluaCB0eSBnaWEgZGEgYmF0 IA0KZGF1IGR1b2MgZG9uIHRob2kgdHJlbiB0aGkgdHJ1b25nIHR1IGRvLg0KDQpEZW4gdGhvaSBk aWVtIG5heSwgTmdhbiBoYW5nIE5oYSBudW9jIHZhbiBjaHVhIGNvIGJhdCBjdSBwaGFuIHVuZyBu YW8gdHJ1b2MgZGllbiANCmJpZW4gY3VhIFVTRCBtb2kgZGF5LiBDYWMgY2h1eWVuIGdpYSB2ZSBu Z29haSBob2kgdHUgbmdhbiBoYW5nIEJJRFYgY2hvIHJhbmcsIHR5IGdpYSANCmdpYW0gdGhvaSBn aWFuIHF1YSBjaGkgdGFtIHRob2kgdHJvbmcgZGlldSBraWVuIGNodWEgY28gYmF0IGN1IGdpYWkg cGhhcCBiaW5oIG9uIG5hbyANCmR1b2MgY29uZyBiby4NCg0KVHJvbmcga2hpIGRvLCB0YW0gbHkg Y2h1bmcgdmFuIG5oYW4gZGluaCB0eSBnaWEgdGllcCB0dWMgY2hpdSBzdWMgZXAgbG9uIHRyb25n IGNhYyB0aGFuZyANCmN1b2kgbmFtIG5heS4gRGlldSBuYXkgZGEgbGFtIHRhbmcgdGFtIGx5IGdh bSBnaXUgbmdvYWkgdGUgdmEgZGFuaCBjdW9jIHZhbyB2aWVjIA0KTkhOTiBzZSBkaWV1IGNoaW5o IHRhbmcgdHkgZ2lhIHRoZW0gMi0zJSBudWEgZGVuIGN1b2kgbmFtLg0KDQpIaWVuIHR1b25nIGNh dSBsb24gaG9uIGN1bmcgZGFuZyB0cm8gbmVuIHBobyBiaWVuLiBUaW5oIHRyYW5nIGJpbmggbmd1 bmcgbmdvYWkgdGUgY28gDQpkYXUgaGlldSB0cm8gbmVuIHRyYW0gdHJvbmcgaG9uLCBnaW9uZyBu aHUgcXV5IElJSS8yMDA5IG5ldSBOZ2FuIGhhbmcgTmhhIG51b2Mga2hvbmcgDQpjbyBiaWVuIHBo YXAgdGljaCBjdWMsIGN1IHRoZSBkZSBraG9pIHRob25nIGR1b2Mgbmd1b24gY3VuZyBuZ29haSB0 ZSwgZ2lhbSBjYXUgbmdvYWkgdGUsDQpkYWMgYmlldCBjYXUgZGF1IGNvLiBWYSB2aWVjIGRpZXUg Y2hpbmgsIGNhbiB0aGllcCB0aGkgdHJ1b25nIHZvaSBkbyB0cmUgbmh1IGhpZW4gbmF5IHRoaSAN CnJhdCBraG8gZGUgdHkgZ2lhIGNvIHRoZSBvbiBkaW5oIHZhIGRhbyBkb25nIHRyb25nIGJpZW4g ZG8gY2hvIHBoZXAuDQoNCk5odW5nIGRvbiBkb2FuIFVTRCB0YW5nIGdpYSB0aHVjIGNoYXQgZGEg YmF0IGRhdSBhbSBpIHR1IGN1b2kgcXV5IElJSSBraGkgVVNEIGJhdCBkYXUgDQpjbyBkYXUgaGll dSBjYW5nIHRoYW5nLiBUcm9uZyBraGkgZG8sIG5oYW4gZGluaCB0dSBjYWMgZGluaCBjaGUgdGFp IGNoaW5oIGxvbiBkZXUgbWFuZyANCmxhaSBuaHVuZyBiYXQgbG9pIGNobyB0eSBnaWEuDQoNCk1v aSBkYXkgbmhhdC4gU3RhbmRhcmQgQ2hhcnRlcmVkIGRhIGNvIGR1IGJhbyB0aWVuIGRvbmcgc2Ug dGllcCB0dWMgZ2lhbSBnaWEuIFRoZW8gZHUgDQpiYW8gbmF5LCB0eSBnaWEgc2UgbyBtdWMgMTku OTAwIGRvbmcgZG9pIG1vdCBVU0QgdmFvIGN1b2kgbmFtIG5heSB2YSAyMC44MDAgZG9uZyBhbiAN Cm1vdCBVU0QgdHJvbmcgbmFtIDIwMTEuDQoNClRydW9jIG1hdCBraG8gY28gc3UgYmllbiBkb25n DQoNClF1YW4gc2F0IHRoaSB0cnVvbmcgdGllbiB0ZSB0cm9uZyBudW9jLCBjaHV5ZW4gZ2lhIHRh aSBjaGluaCBjYW8gY2FwIEJ1aSBLaWVuIFRoYW5oIGR1YSANCnJhIHF1YW4gZGllbSwgdHUgZGF1 IG5hbSB0b2kgbmF5IE5nYW4gaGFuZyBOaGEgbnVvYyBkYSBoYWkgbGFuIGRpZXUgY2hpbmggdHkg Z2lhIGJpbmggDQpxdWFuIGxpZW4gbmdhbiBoYW5nIFVTRC9WTkQgdGFuZyB0cmVuIDUlLCBkYXkg bGEgdmllYyBsYW0gcmF0IGNhbiB0aGlldCB2YSBwaGFuIG5hbyANCnBoYW4gYW5oIGdpYSB0cmkg dGh1YyBjdWEgVk5ELg0KDQpIaWVuIHRhaSwgdHJlbiB0aGkgdHJ1b25nIHR1IGRvIGNoaSBzbyBn aWEgdmFuZyB2YSBVU0QgZGFuZyB0YW5nIGtoYSBjYW8sIGN1bmcgdm9pIGRvIA0KQ1BJIChjaGkg c28gZ2lhIHRpZXUgZHVuZykgdGhhbmcgOS8yMDEwIGN1bmcgdGFuZyBtYW5oLiBOaGFwIHNpZXUg Y2h1YSBjbyBkYXUgaGlldSANCmdpYW0sIHRhbyByYSBuZ3V5IGNvIG1hdCBjYW4gZG9pIG5nb2Fp IHRlIHRoZW8gY2hpZXUgaHVvbmcgYW0sIGRpZXUgbmF5IHNlIGtoaWVuIE5nYW4gDQpoYW5nIE5o YSBudW9jIGR1bmcgdHJ1b2MgYmFpIHRvYW4gZGlldSBjaGluaCB0eSBnaWEgaG9pIGRvYWkuDQoN Ck5odW5nIG5ldSB0aWVwIHR1YyB0aHVjIGhpZW4gZGlldSBjaGluaCB0eSBnaWEgbyB0aG9pIGRp ZW0gY3VvaSBuYW0gc2UgdGFvIHRoZW0gYXAgbHVjIA0KbGVuIGNoaSBzbyBDUEksIGN1bmcgbmh1 IGdpYW0gbmFuZyBsdWMgY2FuaCB0cmFuaCB4dWF0IGtoYXUgZG8gaG9hdCBkb25nIHNhbiB4dWF0 IHRyb25nIA0KbnVvYyBkYW5nIHBodSB0aHVvYyBuaGlldSB2YW8gbWF5IG1vYywgbmd1eWVuIHBo dSBsaWV1IG5oYXAga2hhdS4gVmkgdmF5IHZpZWMgdGh1YyANCmhpZW4gZGlldSBjaGluaCB0eSBn aWEgdHJ1b2MgaGF5IHNhdSBUZXQsIE5nYW4gaGFuZyBOaGEgbnVvYyBzZSBjYW4gcGhhaSBjYW4g bmhhYyB2YSByYXQgDQp0aGFuIHRyb25nLg0KDQoiVHV5IG5oaWVuIGN1bmcgY28gbW90IHRodWFu IGxvaSwgZGFjIGRpZW0gbyBWaWV0IE5hbSB0aG9pIGRpZW0gcXV5IElWIGx1b25nIGtpZXUgaG9p IA0KdGh1b25nIGdpYSB0YW5nIGRvdCBiaWVuLCBuZ3VvbiBjdW5nIG5heSBzZSBnb3AgcGhhbiBn aWFtIGFwIGx1YyBkdSB0cnUgbmdvYWkgdGUsIiBvbmcgDQpUaGFuaCBub2kgdm9pIHBob25nIHZp ZW4gVFRYVk4uDQoNCkdpdSBkYSB0YW5nIENQSSB2YSBvbiBkaW5oIHRoaSB0cnVvbmcgdGllbiB0 ZSBsYSBtb3QgdHJvbmcgbmh1bmcgbmhpZW0gdnUgcXVhbiB0cm9uZyANCmhhbmcgZGF1IHR1IG5h eSBkZW4gY3VvaSBuYW0uDQoNClh1IGh1b25nIHRhbmcgQ1BJIGNvbmcgdGhlbSB0YW0gbHkgbG8g bmdhaSBraGkgVVNEIHRhbmcgZ2lhIHRyZW4gdGhpIHRydW9uZyB0dSBkbyANCmtoaWVuIGRhbiBj aHVuZyBraG9uZyBjb24gaHVuZyB0aHUgZ3VpIFZORCB0cm9uZyBuZ2FuIGhhbmcgbWEgY2h1eWVu IHNhbmcgZGF1IHR1IA0KY2FjIHZhbyBjYWMgdGFpIHNhbiBraGFjIG5odSB2YW5nLCBiYXQgZG9u ZyBzYW4uLi4gbmhhbSBiYW8gdmUgdGFpIHNhbiBjdWEgbWluaCB2YSBreSANCnZvbmcgc2luaCBs b2kgdHUgdmllYyB0cnVvdCBnaWEuDQoNCktob25nIGNoaSBuZ3VvaSBkYW4sIG5nYXkgY2Egbmhp ZXUgZG9hbmggbmdoaWVwIHRoYXkgdmkgZG8gdGllbiB2YW8gc2FuIHh1YXQgbGFpIGN1bmcgDQpx dWF5IHNhbmcgZGF1IHR1IHRhaSBjaGluaCAoZ2FtIGdpdSBuZ29haSB0ZSwgbHVvdCBzb25nIHRy ZW4gdGhpIHRydW9uZyBjaHVuZyBraG9hbiBoYXkgDQp0aGFtIGNoaSBsYSBkYXUgY28gbmd1eWVu LCBuaGllbiB2YXQgbGlldS4uLiBjaG8ga2llbSBjaGVuaCBsZWNoKS4NCg0KT25nIFZvIFRyaSBU aGFuaCwgUGhvIFZpZW4gdHJ1b25nIFZpZW4gTmdoaWVuIGN1dSBRdWFuIGx5IGtpbmggdGUgVHJ1 bmcgdW9uZywgY2hvIA0KcmFuZywgZGllbiBiaWVuIHRodWMgdGllbiBjdWEgdGhpIHRydW9uZyB0 aWVuIHRlIGRhbmcga2h1eWVuIGtoaWNoIG5ndW9pIGRhbiBjaHV5ZW4gc2FuZyANCmRhdSBjbyB0 YWkgY2hpbmggdmEgZGlldSBuYXkgdGh1YyBzdSBsYSBtb3QgYW4gaG9hIHZvaSBuZW4ga2luaCB0 ZS4gVGllbiBuaGFuIHJvaSB0cm9uZyANCmRhbiBzZSBuYW0gImNoZXQiIHZhbyBjYWMgZHUgYW4g YmF0IGRvbmcgc2FuLCB2YW8gdmFuZywgdmFvIFVTRCBjaG8gInNvbmciIGxlbiB0aGF5IHZpIA0K ZGF1IHR1IHZhbyBzYW4geHVhdCwga2luaCBkb2FuaCB0aG9uZyBxdWEgaGUgdGhvbmcgbmdhbiBo YW5nIHRodW9uZyBtYWkuDQoNCk9uZyBDYW8gU2kgS2llbSwgQ2h1IHRpY2ggSG9pIGRvYW5oIG5n aGllcCBuaG8gdmEgdnVhIFZpZXQgTmFtLCBjaG8gcmFuZywgY29uZyB0YWMgDQpkaWV1IGhhbmgg dHkgZ2lhLCBsYWkgc3VhdCBkYW5nIGR1bmcgZ2l1YSBuZ2EgYmEgZHVvbmcuDQoNCkhpZW4gbmF5 LCBuZ2FuIGhhbmcgbXVvbiBodXkgZG9uZyB0aGkgcGhhaSB0YW5nIGxhaSB0aWV0IGtpZW0sIGRh biBkZW4gbGFpIHN1YXQgY2hvIHZheSANCnZ1b3QgcXVhIHN1YyBjaGl1IGR1bmcgY3VhIGRvYW5o IG5naGllcC4gIk5odSBjYXUgdm9uIHZheSBjdWEgY2FjIGRvYW5oIG5naGllcCBWaWV0IA0KTmFt IGxlbiB0b2kgODAlIGRlbiA5MCUgY3VhIGNhYyBrZSBob2FjaCwgZHUgYW4gc2FuIHh1YXQga2lu aCBkb2FuaC4gVHJvbmcga2hpIGRvLCBjbyANCnJhdCBpdCBkb2FuaCBuZ2hpZXAgY28gZHUgdXkg dGluIGRlIHR1IGh1eSBkb25nIHZvbiB0cm9uZyB4YSBob2ksIGNvbiBsYWkgZGEgcGhhbiB2YW4g cGhhaSANCnZheSB2b24gdHUgbmdhbiBoYW5nLiBEbyBkbywgbG9pIG5odWFuIGN1YSBjYWMgZG9h bmggbmdoaWVwIHNhbiB4dWF0IHZhIGN1bmcgY2FwIGRpY2ggDQp2dSBkYW5nIGdpYW0sIHRyb25n IGRvIGNvIGNhIG5nYW5oIG5nYW4gaGFuZywiIE9uZyBDYW8gU2kgS2llbSBjaG8gaGF5Lg0KDQpW aSB2YXksIG9uIGRpbmggdGhpIHRydW9uZyB0aWVuIHRlIHZvaSB0eSBnaWEgaG9wIGx5IGxhIGJp ZW4gcGhhcCBjYW4gdGhpZXQgdmEgbGF1IGRhaS4gVGllbiANCmRvbmcgbWFuaCBsZW4gdHV5IGxh bSBnaWFtIGtoYSBuYW5nIHh1YXQga2hhdSB0cnVvYyBtYXQgbmh1bmcgbm9pIHNvIGhhaSBtYXQg Z2lhIA0KZG9uZyB0aWVuIHRoZW8gZG8gY3VuZyBnaWFtIGRpLCB0dSBkbyBraGljaCB0aGljaCBk b25nIHZvbiBkYXUgdHUgZG8gdmFvIHNhbiB4dWF0Lg0KDQpIYW5nIGhvYSBkb2kgZGFvLCBkYSBk YW5nIGNodW5nIGxvYWksIGNoYXQgbHVvbmcgbmFuZyBjYW8gc2UgdGlldSBkaWV0IGR1b2Mgc3Ug ZG9jIA0KcXV5ZW4sIGVwIGdpYSBjdW5nIG5odSBnaWFtIHRoaWV1IG5oYXAga2hhdSBoYW5nIHRp ZXUgZHVuZywgcXVhIGRvIGFwIGx1YyBDUEkgY3VuZyB0dSAga2hhYyBnaWFtLg0KDQpZIGtpZW4g YmFuIGRvYzogDQpUaWVudGFkbzogDQpUaW4gZG9uIGxhaSBkdW5nIGNobyBtYSB4ZW0sIGxhbiB0 cnVvYyBjdW5nIHRoZS4gVGhvbmcgZG9jIE5ndXllbiBWYW4gR2lhdSB0dXllbiBibyANCmtob25n IHRhbmcsIGhhaSBob20gc2F1IHRhbmcgMSBwaGF0IDE5LjAwMC0xOS41MDAgZG9uZy9VQ1NELiBD aG9hbmchDQpIb20gbmF5IGxhaSBub2kgbmh1IHZheS4gSGF5IGRvaSAoTnUgcG9nYWR5ISkgDQoN ClllbGxvd3BpbmU6IA0KVk5EIHNlIHRpZXAgdHVjIG1hdCBnaWEsIGRvIGxhIGRpZXUgYWkgY3Vu ZyBoaWV1IGNoaSBjbyBOSE5OIGxhIHBodSBuaGFuLiBNYXUgY2hvdCANCmN1YSB2YW4gZGUgdmFu IHNlIGxhIGFwIGx1YyBnaXVhIHRhbmcgdHJ1b25nIGtpbmggdGUgdmEgbGFtIHBoYXQuIE5ldSBO SE5OIGtob25nIA0KZHV0IGtob2F0IHRyb25nIGNodXllbiBuYXkgdGhpIGtobyBsb25nIGNhaSB0 aGllbiB0aW5oIGhpbmguIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9UaG9pU3UvcGhh cGx1YXR4YWhvaS52bi9LaHUtdnVpLWNob2ktY2hvLXRyZS1lbS1vLWNhYy1kby10aGkvNDkxNDU5 Ny5lcGkgSGFpIFllbiAyNi8wOS8yMDEwIDA3OjAxIA0KDQpUaHUgdHVvbmc6IFRoaWV1IGRpZW0g dnVpIGNob2kgY2hvIHRyZSBlbSANCg0KKFBMJlhIKSBUaGlldSBzYW4gY2hvaSwgdHJlIGVtIHRo dW9uZyBwaGFpIGRlbiBjYWMgbmhhIHZhbiBob2EgY29uZyBkb25nIJYgdm9uIGxhIA0KZGllbSBz aW5oIGhvYXQgY2h1bmcgZGFuaCBjaG8gbW9pIGRvaSB0dW9uZyBkYW4gY3UuDQoNCiJRdXkgaG9h Y2gga2h1IGRvIHRoaSBiYW4gZGF1IGNvIGtodSB2dWkgY2hvaSwgZ2lhaSB0cmkgY2hvIHRyZSBl bSBuaHVuZyBzYXUgZG8gdGh1b25nIA0KYmkgZGlldSBjaGluaCwgY2h1eWVuIHRoYW5oIGRhdCB4 YXkgbmhhIiAtIExhIGdpYWkgdHJpbmggY3VhIFRodSB0cnVvbmcgQm8gS0gmRFQgDQpOZ3V5ZW4g VGhlIFBodW9uZyB0YWkgcGhpZW4gZGlldSB0cmFuIHZlIHRoaWV1IGtodSB2dWkgY2hvaSBjaG8g dHJlIGVtIHZ1YSBkdW9jIFV5IA0KYmFuIFZhbiBob2EgLSBHaWFvIGR1YyBUaGFuaCB0aGlldSBu aWVuICYgbmhpIGRvbmcgY3VhIFF1b2MgaG9pIHRvIGNodWMuDQogDQpLaG9uZyBjb24gZGF0IHhh eSBraHUgdnVpIGNob2kgY2hvIHRyZSBlbT8NCg0KVGhlbyBVeSBiYW4gVkgtR0RUVE4mTkQgUXVv YyBIb2ksIGhpZW4gbmF5LCB0cm9uZyB0aGlldCBrZSB4YXkgZHVuZyBjYWMgdGhpZXQgDQpjaGUg dmFuIGhvYSwgdHJ1b25nIGhvYywgdHJ1bmcgdGFtIHZhbiBob2EtIHRoZSB0aGFvLi4uIG5oaWV1 IG5vaSBjaHVhIHRpbmggZGVuIHZpZWMgZGFuaCANCmtodSB2dWMgcmllbmcgZGUgeGF5IGR1bmcg Y2FjIGhhbmcgbXVjLCBjb25nIHRyaW5oIHBodWMgdnUgbmh1IGNhdSB2dWkgY2hvaSwgZ2lhaSB0 cmkgDQpjaG8gdHJlIGVtLiBSYXQgaGllbSB0aW5oLCBUUCBxdXkgZGluaCB0eSB0cm9uZyBuZ2Fu IHNhY2ggaGFuZyBuYW0gZGF1IHR1IGNobyB2aWVjIHhheSANCmR1bmcsIHF1YW4gbHksIHN1IGR1 bmcgY2FjIGtodSB2dWkgY2hvaSBjaG8gdHJlIGVtLiANCg0KTmhpZXUgdHJlIGVtIGRhIGJvbmcg dHJlbiB2aWEgaGUgdmkgdGhpZXUgZGllbSB2dWkgY2hvaQ0KIA0KQmFvIGNhbyBjdWEgVHJ1bmcg dW9uZyBEb2FuIFROQ1MgSG8gQ2hpIE1pbmgsIGNhIG51b2MgaGllbiBtb2kgY2hpIGNvIDI0OSBu aGEgDQp0aGlldSBuaGkgY2FwIGh1eWVuIG5odW5nIHRodWMgdGllbiBuaGlldSAibmhhIHRoaWV1 IG5oaSIgY2hpIGNvIHRlbiBtYSBraG9uZyBjb24gY28gc28uIA0KSG9hYyBjbyBjbyBzbyBuaHVu ZyB0cmFuZyB0aGlldCBiaSBkYSBodSBob25nIG5oaWV1OyB0aGFtIGNoaSwgY28gZGlhIHBodW9u ZyBjaGkgY29uIA0Ka2hvYW5nIDMwJSBzbyBjbyBzbyB2YW4gaG9hIGRhIGRhdSB0dSBoaWVuIGNv biBzdSBkdW5nIGR1b2MuIERhbmcgY2h1IHksIHRhaSBuaGlldSBkaWEgDQpwaHVvbmcsIHZ1bmcg bWllbiwga2UgY2Ega2h1IHZ1YyB0aGFuaCB0aGksIHF1eSBkYXQgZHVuZyBkZSBibyB0cmkgeGF5 IGR1bmcga2h1IHZ1aSANCmNob2kgY2hvIHRyZSBlbSBoaWVuIGtob25nIGNvbi4NCg0KVGhpZXUg c2FuIGNob2ksIHRyZSBlbSB0aHVvbmcgcGhhaSBkZW4gY2FjIG5oYSB2YW4gaG9hIGNvbmcgZG9u ZyCWIHZvbiBsYSBkaWVtIHNpbmggDQpob2F0IGNodW5nIGRhbmggY2hvIG1vaSBkb2kgdHVvbmcg ZGFuIGN1LiBUaGFtIGNoaSwgdnVpIGNob2kgbyBjYWMgdmlhIGhlLCBsb25nIGxlIA0KZHVvbmcg LSBub2kgbWEgbmd1eSBoaWVtIGx1b24gcmluaCByYXAsIGNobyBjaHVjLiBDaHVhIGtlLCBuaGll dSB0cmUgZW0gY2hvbiBjYWMgdHJvIA0KZ2FtZSBvbmxpbmUgZGF5IHRpbmggYmFvIGx1Yywga2lj aCBkb25nIGRlIGdpYWkgdHJpLi4uDQoNCiJEYWkgY28iIGNobyBjYWMgQm8gImRlIHkiIQ0KDQpU aGVvIFV5IGJhbiBWSC1HRFRUTiZORCBRdW9jIEhvaSBtYWMgZHUgdHUgbmFtIDIwMDAsIFRodSB0 dW9uZyBkYSBnaWFvIEJvIA0KVmFuIGhvYS1UaGUgdGhhbyYgRHUgbGljaCAiY2h1IHRyaSwgcGhv aSBob3Agdm9pIGNhYyBjbyBxdWFuIGNvIGxpZW4gcXVhbiB2YSBVQk5EIA0KY2FjIGNhcCB4YXkg ZHVuZyBxdXkgaG9hY2ggdG9uZyB0aGUgdmEgY2hpbmggc2FjaCBobyB0cm8sIHBoYXQgdHJpZW4g Y2FjIGNvIHNvIHZhbiBob2EsIA0KdnVpIGNob2ksIGdpYWkgdHJpIGNobyB0cmUgZW0iLiBUdXkg bmhpZW4sIGRlbiB0aGFuZyA4LTIwMTAsIHR1YyBkYSAxMCBuYW0gc2F1IGtoaSBkdW9jIA0KZ2lh byBuaGllbSB2dSwgQm8gbmF5IHZhbiBjaHVhIGNodSBkb25nIHBob2kgaG9wIHZvaSBjYWMgYm8s IG5nYW5oIGh1dSBxdWFuIHRyaWVuIA0Ka2hhaSB0aHVjIGhpZW4uIA0KDQpDdW5nIHZvaSBzdSB0 YWMgdHJhY2ggY3VhIEJvIFZILVRUJkRMLCBCbyBUYWkgbmd1eWVuICYgTW9pIHRydW9uZyBjdW5n IHRyZSBuYWkgDQp0cm9uZyB2aWVjIHhheSBkdW5nIHF1eSBob2FjaCwga2UgaG9hY2ggc3UgZHVu ZyBkYXQsIGRhbmggcXV5IGRhdCBkZSB4YXkgZHVuZyBraHUgdnVpIA0KY2hvaSwgZ2lhaSB0cmkg Y2hvIHRyZSBlbS4gDQoNCkdpYWkgdHJpbmggdmUgc3UgY2hhbSB0cmUgY3VhIG1pbmgsIEJvIHRy dW9uZyBCbyBWSC1UVCZETCBjaG8gcmFuZywgZG8gQm8gY28gcXVhIA0KbmhpZXUgdmllYyBtYSAi bGFtIHZpZWMgbmF5IHRoaSBxdWVuIHZpZWMga2hhYyIgKD8hKSBDb24gVGh1IHRydW9uZyBIdXlu aCBWaW5oIEFpIHRoaSANCiJkbyIgdGFpIHZpZWMgImtob25nIGNvIGRhdSBtb2kiLiBUaGVvIG9u ZyBBaSwgbmhpZW0gdnUgbmF5IHRydW9jIGRvIFV5IGJhbiBEYW4gc28sIA0KR2lhIGRpbmggJiBU cmUgZW0gZGFtIG5oaWVtOyBuaHVuZyBzYXUga2hpIGdpYWkgdGhlLCBzYXAgbmhhcCwgVXkgYmFu IG5heSBraG9uZyBjb24gDQp0b24gdGFpIG5lbiBxdXkgaG9hY2ggYmkgImJvIHJvaSIuIA0KDQpo dHRwOi8vdHVvaXRyZS52bi9HaWFvLWR1Yy8zODAxNjMvRHUtbWluaC10cmVuLWRheS10aGVwLWRl LXF1YS1zb25nLWRlbi10cnVvbmcuaHRtbCAyMy8wNS8yMDEwLCAxOTo1MiAoR01UKzcpIA0KDQpU aHUgdHVvbmc6IFRyZSBlbSBwaGFpIGR1IG1pbmggdHJlbiBkYXkgdGhlcCBkZSBxdWEgc29uZyBk ZW4gdHJ1b25nDQoNCkRhIG5oaWV1IHRoYW5nIG5heSwgaGFuZyBjaHVjIGhvIGRhbiB0cnUgYmVu IGtpYSBzb25nIHRodW9jIGxhbmcgTm9uZyBOb2ksIHhhIA0KRGFrIE5vbmcgdmEgbmhhbiBkYW4g dGh1b2MgdGlldSBraHUgMTU0IHhhIERhayBBbmcga2hpIHF1YSBzb25nIFBvS28gcGhhaSBkdSBt aW5oIA0KdHJlbiBkYXkgdGhlcC4gDQoNCk5ndW9pIGRhbiBzdSBkdW5nIGRheSB0aGVwIGJ1b2Mg dmFvIGhhaSBiZW4gYm8gc29uZywgcm9pIHN1IGR1bmcgcm9uZyByb2MgdHJ1b3QgdHJlbiANCmRh eSB0aGVwIHJvaSB0cmVvIG5ndW9pIHBoaWEgZHVvaSBkZSBxdWEgc29uZy4NCg0KaHR0cDovL3Zu cjUwMC52aWV0bmFtbmV0LnZuL2NvbnRlbnQuYXNweD9pZD03NjUgNy8yMS8yMDEwIDExOjM1OjE5 IEFNIChHTVQrNykNCg0KVGh1IHR1b25nOiAiR2lhIGJhbiBxdXllbiB0cnV5ZW4gaGluaCBkYSBi aSBkYXkgY2FvIGJhdCBob3AgbHkhIiAgDQoNCiJDYWMgZG9hbmggbmdoaWVwIGNoYXkgZHVhIGNh bmggdHJhbmggbXVhIGJhbiBxdXllbiBwaGF0IHNvbmcgY2FjIGdpYWkgYm9uZyBkYSBxdW9jIA0K dGUgZGEgZGF5IGdpYSBiYW4gcXV5ZW4gY2FvIGxlbiBtdWMgYmF0IGhvcCBseS4gVGhpZXQgdGhv aSBsb24gbmhhdCBsYWkgZG8gZGF1IG5ndW9pIHRpZXUgDQpkdW5nLiBEaWV1IG5heSBjYW4gcGhh aSB4ZW0geGV0IGxhaSIgLSBvbmcgTHV1IFZ1IEhhaSwgQ3VjIHRydW9uZyBDdWMgUGhhdCB0aGFu aCANCnRydXllbiBoaW5oIHZhIFRob25nIHRpbiBkaWVuIHR1IChCbyBUaG9uZyB0aW4gdmEgVHJ1 eWVuIHRob25nKSBjaG8gYmlldCwgdHJvbmcgY3VvYyANCnRyYW8gZG9pIHZvaSBWbkVjb25vbXkg DQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jbnR0LzIwMTAwNy9DdW9jLWRpLWRvbmctY2hp LWR1b2MtZ2lhbS0xMDE1LTkyMTgxNi8gSGEgUGh1b25nIDEzOjM1LCAxMi8wNy8yMDEwIChHTVQr NykNCg0KVGh1IHR1b25nOiBETiB4aW4gZ2lhbSBnaWEgY3VvYyBkaSBkb25nIDIwJSwgY2hpIGR1 b2MgY2hvIGdpYW0gMTAtMTUlIC0gbmd1b2kgZGFuIHBoYWkgY2hpdSB0aGlldA0KDQpDbyBxdWFu IHF1YW4gbHkgbmhhIG51b2MgY3VhIGNoaW5oIHBodSB2dWEgcmEgY29uZyB2YW4geWV1IGNhdSBj YWMgZG9hbmggbmdoaWVwIA0KbmFtIG5heSBjdW9jIHZpZW4gdGhvbmcgZGkgZG9uZyBjaGkgZHVv YyBnaWFtIHR1IDEwLTE1JSAoZG9uZyB0aG9pIHR1IG5heSBkZW4gaGV0IA0KbmFtIHNlIGNoaSBk dW9jIGdpYW0gY3VvYyBtb3QgZG90IG1hIHRob2kuKQ0KDQpUcnVvYyBkbywgMyBkb2FuaCBuZ2hp ZXAgVmlldHRlbCwgTW9iaUZvbmUgdmEgVmluYVBob25lIGRhIHRyaW5oIEJvIHBodW9uZyBhbiBn aWFtIGN1b2Mgdm9pIG11YyBnaWFtIHRvaSBkYSAyMCUuIA0KDQpHaWFtIGN1b2MgZHVvYyBkYW5o IGdpYSBsYSBnaWFpIHBoYXAgImNvbmcgYmFuZyIgY2hvIHRhdCBjYSBuZ3VvaSBzdSBkdW5nIHNv IHZvaSANCmtodXllbiBtYWkgdmkga2h1eWVuIG1haSBjaGkgZHVvYyBhcCBkdW5nIHRyb25nIG1v dCB0aG9pIGdpYW4gbmdhbiBjaG8gbW90IG5ob20gZG9pIHR1b25nIGtoYWNoIGhhbmcuIA0KDQpE dSBraWVuIGN1b2kgbmFtIGNhYyBjbyBxdWFuIHF1YW4gbHkgbmhhIG51b2MgbW9pIGJhbiBoYW5o IHBodW9uZyBwaGFwIHhhYyBkaW5oIGdpYSANCnRoYW5oOyBoaWVuIHRhaSBnaWEgdGhhbmggZGlj aCB2dSB2aWVuIHRob25nIHZhbiBwaGFpIGR1YSB0cmVuIGJhbyBjYW8gY3VhIGRvYW5oIG5naGll cC4gDQooUm8gcmFuZyBuaHVuZyBzdSBjaGFtIHRyZSBtYW5nIHRpbmggY2hhdCAidGh1IHR1YyBo YW5oIGNoaW5oIiBuYXkgZGEga2ltIGhhbSB0aGkgDQp0cnVvbmcsIG5ndW9pIGRhbiB0aWVwIHR1 YyBwaGFpIGNoaXUgdGhpZXQpIA0KDQpodHRwOi8vd3d3NzcudmlldG5hbW5ldC52bi92bi9jaGlu aC10cmkvMjA3MC90cmluaC1sdWF0LWJpZW4tdGhhbmctMy1uYW0tc2F1Lmh0bWwgTGUgTmh1bmcg MDMvMTIvMjAxMCAwNjo0NDoyNiBQTSAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IFRyaW5oIEx1YXQg QmllbiB0aGFuZyAzIG5hbSBzYXUgLSBUcmkgaG9hbiBxdWEgbGF1IA0KDQotIFRhaSBreSBob3Ag Y3VvaSBjdW5nIGN1YSBuaGllbSBreSBRdW9jIGhvaSBraG9hIFhJSSAoZGF1IHRoYW5nIDMvMjAx MSksIGNhYyBkYWkgYmlldSANCnNlIHhlbSB4ZXQsIHRoYW8gbHVhbiB2ZSBMdWF0IEJpZW4gVmll dCBOYW0uDQoNCkdhbiBudWEgdGhvaSBnaWFuIGRhbmggZ2lhIG5oaWVtIGt5IA0KDQpWYXkgbGEg c2F1IG5oaWV1IGxhbiB0cmkgaG9hbiwgZHUgYW4gTHVhdCBCaWVuIFZpZXQgTmFtIHRpZXAgdHVj IGR1b2MgQ2hpbmggcGh1IGRlIHh1YXQgDQpibyBzdW5nIHZhbyBjaHVvbmcgdHJpbmgga3kgaG9w IHRodSA5Lg0KDQpUaGVvIGR1IGtpZW4gY2h1b25nIHRyaW5oIGR1b2MgVmFuIHBob25nIFF1b2Mg aG9pIGRvYyB0YWkgYnVvaSB0aGFvIGx1YW4gbyBVeSBiYW4gDQpUaHVvbmcgdnUgUXVvYyBob2kg Y2hpZXUgbmF5ICgzLzEyKSwgZHUga2llbiB0cm9uZyBreSBob3AgdGh1IDkgc2FwIHRvaSwgUXVv YyBob2kgc2UgDQp4ZW0geGV0LCB0aG9uZyBxdWEgNSBkdSBhbiBsdWF0IGtoYWMgbmh1IEx1YXQg VGh1IGRvOyBMdWF0IGtpZW0gdG9hbiBkb2MgbGFwLi4uDQogDQpRdW9jIGhvaSBjdW5nIHNlIGRh bmggNiw1IG5nYXkgKHRyb25nIHRvbmcgc28gMTQgbmdheSBob3ApIGRlIHRoYW8gbHVhbiBjYWMg YmFvIGNhbyANCmNvbmcgdGFjIGNhIG5oaWVtIGt5ICgyMDA3LTIwMTEpIGN1YSBRdW9jIGhvaSwg Y2FjIGNvIHF1YW4gY3VhIFF1b2MgaG9pLCBDaHUgdGljaCANCm51b2MsIFRodSB0dW9uZywgQ2hh bmggYW4gVG9hIGFuIG5oYW4gZGFuIHRvaSBjYW8sIFZpZW4gdHJ1b25nIFZpZW4ga2llbSBzYXQg bmhhbiANCmRhbiB0b2kgY2FvLg0KDQpDYWMgYmFvIGNhbyAga2hhYyB2ZSBjb25nIHRhYyBwaG9u ZywgY2hvbmcgdGhhbSBuaHVuZywgZG9pIG5nb2FpLCB0aW5oIGhpbmggcXVvYyANCnBob25nLCBh biBuaW5oIHNlIGR1b2MgZ3VpIGRhaSBiaWV1IHR1IG5naGllbiBjdXUuDQoNCkt5IGhvcCB0aHUg OSBkdSBraWVuIGtlbyBkYWkgdHUgMS8zIGRlbiAxNy8zLzIwMTEuDQoNClRhbmcgY3VvbmcgZG9p IHRob2FpDQoNCkRhbmggZ2lhIGt5IGhvcCB0aHUgOCB2dWEgcXVhLCBVeSBiYW4gVGh1b25nIHZ1 IFF1b2MgaG9pIGNobyByYW5nLCBob2F0IGRvbmcgY2hhdCANCnZhbiBkYW5nIGNvIHN1YyB0aHUg aHV0IG5nYXkgY2FuZyBjYW8uIEtob25nIGtoaSBjaGF0IHZhbiBzb2kgbm9pLCB0aGFuZyB0aGFu IHZhIHRyYWNoIA0KbmhpZW0uIENhYyB2YW4gZGUgZHVhIHJhIHBoaWVuIGNoYXQgdmFuIHRhcCB0 cnVuZywgZHVvYyB0cmFvIGRpIGRvaSBsYWksIGRpIGRlbiBjdW5nIHZhbiBkZS4NCg0KRGFpIGJp ZXUgUXVvYyBob2kgZGFuaCB0aG9pIGdpYW4gbmdoaWVuIGN1dSBreSBsdW9uZywgZHVhIHJhIG5o dW5nIGNhdSBob2kgc2FjIHNhbywgY28gDQpseSBsZSB0aHV5ZXQgcGh1Yywgc2F0IHZvaSB0aW5o IGhpbmggdGh1YyB0ZSB2YSBkdW5nIHZvaSB0YW0gbmd1eWVuIGN1YSBjdSB0cmkuIA0KDQpUaG9p IGdpYW4gdG9pLCBjYW4gdGllcCB0dWMgcGhhdCBodXkgdmEgdGFuZyBjdW9uZyBob24gbnVhIHRp bmggdHJhbmggbHVhbiwgZG9pIHRob2FpLCBkaSANCmRlbiBjdW5nIHZhbiBkZS4NCg0KRGFjIGJp ZXQsIGNhbiBjaHUgZG9uZyBnaWFtIHNhdCB2aWVjIHRodWMgaGllbiBsb2kgaHVhIGN1YSBjYWMg dGhhbmggdmllbiBDaGluaCBwaHUuIERlIA0KY2FvIHRpbmggdGhhbiB0cmFjaCBuaGllbSBjdWEg ZGFpIGJpZXUgUXVvYyBob2kgdHJvbmcgdmllYyBsdWEgY2hvbiwgZGUgeHVhdCB2YW4gZGUgZHVh IA0KcmEgY2hhdCB2YW4gdmEgbmdoaWVuIGN1dSBjaHVhbiBiaSBjaGF0IHZhbiBjbyBjaGF0IGx1 b25nIGNhby4NCg0KTW90IHNvIGhhbiBjaGUga2hhYyBjdW5nIGNhbiBkdW9jIGtoYWMgcGh1YyBu aHUgY29uIGNvIG5oaWV1IGJhbyBjYW8gY3VhIENoaW5oIHBodSANCnR1eSBkYWkgbmh1bmcgY2h1 YSBkYXkgZHUgdmUgbm9pIGR1bmcsIHRoaWV1IG5odW5nIHRob25nIHRpbiBjbyBiYW4sIGNhbiB0 aGlldCwgZ2F5IG5lbiANCm5oaWV1IHRoYWMgbWFjIGNobyBkYWkgYmlldSBRdW9jIGhvaS4gQ2hh bmcgaGFuLCBiYW8gY2FvIHZlIHRpbmggaGluaCBob2F0IGRvbmcgY3VhIA0KVGFwIGRvYW4gY29u ZyBuZ2hpZXAgdGF1IHRodXkgVmlldCBOYW0gKFZpbmFzaGluKS4gDQoNClZpZWMgY3VuZyBjYXAg ZGF5IGR1IHRob25nIHRpbiBkZW4gZGFpIGJpZXUgUXVvYyBob2kgY29uIGhhbiBjaGUsIHRyb25n IGRvIGNvIG5odW5nIG5vaSANCmR1bmcgcXVhbiB0cm9uZyBtYSBkYWkgYmlldSBRdW9jIGhvaSBx dWFuIHRhbS4NCg0KRGF5IGxhIG5odW5nIGhhbiBjaGUgY2FuIHNvbSBraGFjIHBodWMuIA0KDQpo dHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTEwMTEwLXZpZWMtdGhvbmctcXVhLWx1 YXQtYmllbi1jdWEtdmlldC1uYW0tbmdheS1jYW5nLWNhcC10aGlldCBUaGFuaCBQaHVvbmcgMTAv MS8yMDExIA0KDQpUaHUgdHVvbmc6IFZpZWMgdGhvbmcgcXVhIEx1YXQgQmllbiBjdWEgVmlldCBO YW0gbmdheSBjYW5nIGNhcCB0aGlldCANCiANCihBbmg6IE1vdCBkYW8gdGh1b2MgcXVhbiBkYW8g VHJ1b25nIFNhIGN1YSBWaWV0IE5hbSCWIFJldXRlcnMpDQoNClZhbyBkYXUgdGhhbmcgMTIvMjAx MCBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIHRob25nIGJhbyBsYSB0YWkga3kgaG9wIHRodSA5 ICggdHUgDQoxLzMgZGVuIDE3LzMvMjAxMSApLCB0dWMgbGEga3kgaG9wIGN1b2kgY3VuZyBjdWEg UXVvYyBob2kgZHVvbmcgbmhpZW0sIGNhYyBkYWkgYmlldSBzZSANCnhlbSB4ZXQgdGhvbmcgcXVh IGR1IGFuIEx1YXQgQmllbiBWaWV0IE5hbSwgdnVhIGR1b2MgY2hpbmggcGh1IGRlIG5naGkgYm8g c3VuZyB2YW8gDQpjaHVvbmcgdHJpbmguIA0KDQpIaWVuIGdpbyBjaHVhIHRoZSBkdSBkb2FuIGxh IEx1YXQgQmllbiBjbyBzZSBkdW9jIFF1b2MgaG9pIHRob25nIHF1YSB2YW8ga3kgaG9wIHRvaSAN CmhheSBraG9uZywgYm9pIGxlIGx1YXQgbmF5IGRhIGR1b2Mgc29hbiB0aGFvIHR1IDEwIG5hbSBu YXksIG5odW5nIGN1IGJpIGRvaSBkaSBkb2kgbGFpIA0KbmhpZXUgbGFuLiBHYW4gZGF5IG5oYXQs IEx1YXQgQmllbiBWaWV0IE5hbSBkYSBkdW9jIGR1YSByYSB0aGFvIGx1YW4gZGUgZHVvYyB0aG9u ZyANCnF1YSB0YWkga3kgaG9wIHRodSA3IHZhbyB0aGFuZyA1LzIwMTAsIG5odW5nIGN1b2kgY3Vu ZywgdmFpIG5nYXkgdHJ1b2Mga2hpIGtoYWkgbWFjIGt5IA0KaG9jLCBVeSBiYW4gVGh1b25nIHZ1 IFF1b2MgaG9pIGxhaSBydXQgZHUgYW4gTHVhdCBuYXkgcmEga2hvaSBjaHVvbmcgdHJpbmgsIHZv aSBseSBkbyBsYSANCnZhbiBiYW4gY2h1YSBkdW9jIGhvYW4gY2hpbmgsIGtoaWVuIG5oaWV1IGRh aSBiaWV1IHRoYWMgbWFjLCBuZXUgY2F1IGhvaSBwaGFpIGNoYW5nIA0KZGF5IGxhIG1vdCB2YW4g ZGUgIm5oYXkgY2FtIiAoIHkgbXVvbiBub2kgbGEgZHVuZyBjaGFtIHZvaSBUcnVuZyBRdW9jICks IG5lbiBjaHVhIA0KZGFtIHRob25nIHF1YSA/DQoNClZpZXQgTmFtIGxhIG1vdCBxdW9jIGdpYSB2 ZW4gYmllbiwgdHVjIGxhIGNvIGxvaSB0aGUgdmEga2hhIG5hbmcgdGllbiByYSBiaWVuLCB0cm8g dGhhbmggDQptb3QgbnVvYyBtYW5oIHZlIGJpZW4uIFZ1bmcgYmllbiBWaWV0IE5hbSBuYW0gdHJl biBkdW9uZyB0aG9uZyB0aHVvbmcgaHV5ZXQgbWFjaCANCmdpdWEgY2FjIGRhaSBkdW9uZywgY28g dGFpIG5ndXllbiBkYSBkYW5nIHZhIGRvaSBkYW8sIGNvIHZpIHRyaSBjaGllbiBsdW9jIHF1YW4g dHJvbmcsIA0Kbmh1bmcgbGFpIGxhIG5vaSBjbyBuaGlldSB0cmFuaCBjaGFwIGxhbmggdGhvLCBj aHUgeWV1IGxhIHZvaSBUcnVuZyBRdW9jIHRyZW4gaGFpIHF1YW4gDQpkYW8gSG9hbmcgU2EgLSBU cnVvbmcgU2EuDQoNCk5hbSAxOTc3LCBWaWV0IE5hbSBkYSB0dW5nIHJhIFR1eWVuIGJvIGN1YSBj aGluaCBwaHUgdmUgY2FjIHZ1bmcgYmllbiBWaWV0IE5hbSB2YSANCm5hbSAxOTk0LCBRdW9jIGhv aSBWaWV0IE5hbSBkYSB0aG9uZyBxdWEgbmdoaSBxdXlldCBwaGUgY2h1YW4gQ29uZyB1b2MgY3Vh IExpZW4gDQpoaWVwIHF1b2MgdmUgbHVhdCBiaWVuIG5hbSAxOTgyLiBOZ29haSByYSwgVmlldCBO YW0gY3VuZyBkYSByYSBtb3Qgc28gdmFuIGJhbiBwaGFwIGx5IA0Ka2hhYyBsaWVuIHF1YW4gZGVu IGNodSBxdXllbiBiaWVuIGRhby4NCg0KTmh1bmcsIG5odSB0aWVuIHNpIE5ndXllbiBIb25nIFRo YW8sIERhaSBob2MgUXVvYyBnaWEgSGEgTm9pIGRhIG5oYW4gbWFuaCB0cm9uZyANCm1vdCBiYWkg dmlldCBkYW5nIHZhbyBuYW0gbmdvYWkgdHJlbiBUYXAgY2hpIE5naGllbiBjdXUgTGFwIHBoYXAg RGllbiB0dSwgdHJ1YyB0aHVvYyANClF1b2MgaG9pIFZpZXQgTmFtLCAiY2FjIHZhbiBiYW4gcGhh cCBseSBoaWVuIGhhbmggY3VhIFZpZXQgTmFtIG1vaSBjaGkgbmV1IG5odW5nIA0Kbmd1eWVuIHRh YyBjaHVuZyB2ZSB4YWMgZGluaCBwaGFtIHZpLCBjaGUgZG8gcGhhcCBseSBjdWEgY2FjIHZ1bmcg YmllbiB2YSB0aGVtIGx1YyBkaWEgDQpWaWV0IE5hbSwgY2h1YSBjdSB0aGUgaG9hIGNvbmcgdGFj IHF1YW4gbHkgTmhhIG51b2MgdmUgYmllbiwgbmVuIGhpZXUgbHVjIHBoYXAgbHkgY29uIA0KdGhh cCIuIA0KDQpIb24gbnVhLCB0aGVvIHRpZW4gc2kgTmd1eWVuIEhvbmcgVGhhbywgTmhhIG51b2Mg VmlldCBOYW0gY2h1YSBjbyBtb3QgdmFuIGJhbiBsdWF0IA0KbWFuZyB0aW5oIHRvbmcgdGhlIHhh YyBkaW5oIHBoYW0gdmksIGNoZSBkbyBwaGFwIGx5IGN1YSB0dW5nIHZ1bmcgYmllbiB2YSB0aGVt IGx1YyBkaWEgDQpjdWEgVmlldCBOYW0uIENhYyBxdXkgZGluaCB0aWVuIGJvIGN1YSBsdWF0IGJp ZW4gcXVvYyB0ZSwgZGFjIGJpZXQgbGEgQ29uZyB1b2MgTHVhdCBiaWVuIA0KMTk4MiBjaHVhIGR1 b2Mgbm9pIGx1YXQgaG9hLiBUdXllbiBibyAxOTc3IHZhIFR1eWVuIGJvIDE5ODIgbW9pIGNoaSBs YSB2YW4gYmFuIGNhcCANCkNoaW5oIHBodSB2YSBkYSBib2MgbG8gbW90IHNvIGhhbiBjaGUgc28g dm9pIG5vaSBkdW5nIGN1YSBDb25nIHVvYyBMdWF0IGJpZW4gMTk4Mi4gDQoNCk5nb2FpIHJhLCB0 aGVvIHRpZW4gc2kgTmd1eWVuIEhvbmcgVGhhbywgdmllYyBxdWFuIGx5IGJpZW4gY3VhIFZpZXQg TmFtIGNvbiBjaG9uZyANCmNoZW8sIGNodWEgaGlldSBxdWEsIGNobyBuZW4sIGNhbiBwaGFpIHhh eSBkdW5nIG1vdCB2YW4gYmFuIGx1YXQgInRob25nIG5oYXQsIGRvbmcgYm8gDQp2YSB0dW9uZyBk b2kgaG9hbiBjaGluaCB2ZSBiaWVuIGN1YSBWaWV0IE5hbSINCg0KTmh1IGNhdSB0aG9uZyBxdWEg THVhdCBCaWVuIFZpZXQgTmFtIGNhbmcgdHJvIG5lbiBjYXAgdGhpZXQsIGJvaSB2aSBoYWkgbnVv YyB0cmFuaCBjaGFwIA0KY2h1IHF1eWVuIGJpZW4gZGFvIHZvaSBWaWV0IE5hbSBsYSBUcnVuZyBR dW9jIHZhIFBoaWxpcHBpbmVzIGRldSBkYSByYSBuaGlldSBsdWF0IGRlIA0Ka2hhbmcgZGluaCBj aHUgcXV5ZW4gY3VhIGhvLiBOZ3VvaSBkYW4gbyBjYWMgdnVuZyBiaWVuIHZhIG5oYXQgbGEgbmd1 IGRhbiB0aHVvbmcgDQp4dXllbiBiaSBUcnVuZyBRdW9jIGJhdCBibywgZGFuaCBkYXAsIGN1b3Ag Ym9jLCBraGkgZGFuaCBjYSBuZ2F5IHRyZW4gdnVuZyBiaWVuIFZpZXQgDQpOYW0sIGN1bmcgbmdh eSBjYW5nIGRvaSBwaGFpIGNvIEx1YXQgQmllbiBkZSBiYW8gdmUgaG8uDQoNClRyb25nIGJhaSBw aG9uZyB2YW4gdHJlbiB0byBUdWFuIFZpZXQgTmFtIGR1b2MgZGFuZyBuZ2F5IDYvMTEvMjAxMCwg Q2h1IG5oaWVtIFV5IA0KYmFuIEFuIG5pbmggUXVvYyBwaG9uZyBMZSBRdWFuZyBCaW5oIGRhIG5v aSBybyA6ICJUYSB2YW4gY2h1YSBjbyBibyBsdWF0IG5hbyBxdXkgDQpkaW5oIHNhdSBzYWMgdmUg Y2h1IHF1eWVuIGJpZW4sIHRyb25nIGtoaSBkbyBjYWMgbnVvYyBkYSB0dXllbiBibywgY29pIGRv IGxhIGxhbmggdGhvIA0KYmllbiBjdWEgaG8uIFRyb25nIGNhYyBkYW8gbHVhdCBsaWVuIHF1YW4g Y3VhIG51b2MgdGEgbW9pIGNvIGx1YXQgYmllbiBnaW9pIHF1b2MgZ2lhIGxhIA0Kbm9pIHZlIGNo dSBxdXllbiBiaWVuLCBuaHVuZyBtb2kgY2hpIG5vaSBvIHRhbSByaWEgbmdvYWkgY3VhIGR1b25n IGxhbmggaGFpIHRob2ksIGNodSANCmN1bmcgY2h1YSBub2kgZ2kgZGVuIGNodSBxdXllbiBiaWVu LCBkYW8uIEJvaSB2YXkgbGF1IG5heSB2YW4gY3UgYXAgZHVuZyBDb25nIHVvYyBsdWF0IA0KYmll biBuYW0gMTk4MiBjdWEgTEhRLiINCg0KT25nIExlIFF1YW5nIEJpbmggY2hvIGJpZXQgOiAiVHJ1 bmcgUXVvYyBiYXkgZ2lvIHR1eWVuIGJvIGR1b25nIGx1b2kgYm8sIGhhbmcgbmdheSANCmhvIGN1 IGNobyB0YXUgaGFpIGdpYW0sIHRoYW0gY2hpIGNhIG1heSBiYXkgZGluaCB2aSBwaGF0IGhpZW4g bmV1IG5ndSBkYW4gdGEgdnVvdCBkdW9uZyANCmRvIGxhIGhvIGJhdC4gTWEgbHVhdCBjdWEgaG8g cXV5IGRpbmggcm9pLCBobyBub2kgcmFuZyBkbyBsYSBjdWEgVHJ1bmcgUXVvYyBuZW4gdmkgcGhh bSANCmxhIGJhdC4gQ29uIG51b2MgdGEgY3VuZyBub2kgZG8gbGEgY2h1IHF1eWVuIGN1YSB0YSB2 YSB0dXllbiB0cnV5ZW4gY2hvIG5ndSBkYW4gbmh1IHZheS4gDQpOZ3UgZGFuIGN1IGRhbmggYmF0 LCBjb24gaG8gdGhpIGNobyBsYSB0YSB2aSBwaGFtIG5lbiBiYXQgYm8uIERvIHZheSwgZGEgZGVu IGx1YyBraG9uZyANCnRoZSB0cnUgdHJ1IGR1b2MgbnVhIHZpZWMgYmFuIGhhbmggTHVhdCB2ZSBi aWVuIHZhIHhheSBkdW5nIEJvIHF1eSB0YWMgdW5nIHh1IGJpZW4gDQpEb25nIG1hbmcgdGluaCBy YW5nIGJ1b2MgcGhhcCBseSBjYW8uIg0KDQpWZSBwaGFuIG5oYSBzdSBob2MgRHVvbmcgVHJ1bmcg UXVvYywgdm9pIHR1IGNhY2ggZGFpIGJpZXUgUXVvYyBob2ksIG9uZyBjdW5nIGRhIHR1bmcgDQpk ZSBuZ2hpIG5oYW5oIGNob25nIHRob25nIHF1YSBMdWF0IEJpZW4sIHR1eSBjaG8gcmFuZyBwaGFp IHJhdCB0aGFuIHRyb25nIHZlIG5vaSBkdW5nIA0KYm8gbHVhdCwgbWEgb25nIGNobyBsYSByYXQg cGh1YyB0YXAgdmEgc2UgbGEgY28gc28gcXVhbiB0cm9uZyBjaG8gY2FjIGN1b2MgdGh1b25nIHRo dXlldCANCnNhdSBuYXkgdm9pIGNhYyBudW9jIGNvIGxpZW4gcXVhbiBkZW4gY2h1IHF1eWVuIGJp ZW4gZGFvIGN1YSBWaWV0IE5hbS4gDQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZu LzIwMTAtMTEtMDMtZG9pLW5vLWx1YXQtYmllbiBUYWMgZ2lhOiBMYW4gQW5oIDA0LzExLzIwMTAg MDQ6MzAgR01UKzcNCg0KRGFpIGJpZXUgUXVvYyBob2k6ICJEb2kgbm8iIGx1YXQgYmllbiANCg0K VFJPTkcgTVVDIE5BWSAoRG9jIHRoZW0pIA0KKiAiRG9pIG5vIiBsdWF0IGJpZW4NCiogTWVrb25n IHZhIGN1b2MgY2hpZW4gbmd1b24gbnVvYw0KKiBOZ2hpIHRydW9uZyBraG9uZyBjb24gZG9uZyBj dWEgYmFvIG5oYXUNCiogIkxhcCBkYW4gcXVhbiB0dSB2ZSBiaWVuIGRlIGdpdSBjaHUgcXV5ZW4g YmllbiBkYW8iDQoNCkNodSBuaGllbSBVeSBiYW4gQW4gbmluaCBRdW9jIHBob25nIGN1YSBRdW9j IGhvaSwgb25nIExlIFF1YW5nIEJpbmggY2hvIHJhbmcsIGRlIA0KYmFvIHZlIGFuIHRvYW4gY2hv IG5ndSBkYW4sIFF1b2MgaG9pIGtob25nIHRoZSB0cnUgdHJ1IG1haSB2aWVjIHRob25nIHF1YSBs dWF0IGJpZW4sIA0Ka2hvbmcgdGhlIGN1IHZpbiBsaSBkbyB0ZSBuaGkgbWEgZ2FjIGxhaS4NCg0K REJRSCBjYW4gZHVvYyB0aG9uZyB0aW4gY2hpbmggeGFjIHZlIHRpbmggaGluaCBCaWVuIERvbmcN Cg0KVGh1YSBvbmcsIHZpIHNhbyBuaHVuZyB2YW4gZGUgbm9uZyBsaWVuIHF1YW4gdHJ1YyB0aWVw IGRlbiBkb2kgc29uZyAgbmd1b2kgZGFuLCBhbiBuaW5oIA0KcXVvYyBnaWEgbmh1IGNodSBxdXll biBiaWVuIGRhbywgYW4gdG9hbiBjaG8gbWFuZyBzb25nIG5ndSBkYW4gZGFuaCBiYXQgaGFpIHNh biB4YSANCmJvLi4uIHZhbiBjaHVhIGR1b2MgZHVhIHZhbyBuZ2hpIHRyaW5oIGNoaW5oIHRodWMg dGFpIGt5IGhvcCBRSCBsYW4gbmF5Pw0KDQpWYW4gZGUgbmF5IG5oYXkgY2FtIHZpIGxpZW4gcXVh biBkZW4gYW4gbmluaCBxdW9jIGdpYSB2YSBkb2kgbmdvYWkuIERhbiB0YSBjdW5nIGhpZXUgDQpi aWV0IHZhIGR1b2Mgc3UgZG9uZyB0aHVhbiBuaHVuZyB2aSB0b24gdHJvbmcgeSBraWVuIGxhbmgg ZGFvIHZhIHRhcCB0aGUgbmVuIHRob2kuDQoNCkNvbiB0b2kgdmFuIG5vaSBRdW9jIGhvaSBuZW4g Y28gcXV5IGRpbmggaG9wIGNvbmcga2hhaSwga2hpIGNhbiB0aGlldCB0aGkgaG9pIG5naGkga2lu LiANCktpbiB0dWMgbGEgaG9wIG5vaSBibyAoUXVvYyBob2kgbnVvYyBuYW8gY3VuZyBsYW0gbmh1 IHZheSBjYSkuIFZpZWMgbmF5IGNhbiB0aGlldCBkZSANCnRob25nIHRpbiBjaG8gZGFpIGJpZXUg bmFtIGR1b2MgdGluaCBoaW5oIGJpZW4gRG9uZyB0aHVjIHRlIGhpZW4gbmF5IHRoZSBuYW8uDQoN ClRoZW8gcXVhbiBzYXQgdGhpIG1heSBreSBob3AgZ2FuIGRheSwgbW90IHNvIHZpIERCUUggY3Vu ZyBkYSBjaGF0IHZhbiBraGEgZ2F5IGdhdCANCnh1bmcgcXVhbmggY2h1eWVuIGJhbyB2ZSBxdXll biBsb2kgaG9wIHBoYXAgY3VhIG5ndSBkYW4gVmlldCBOYW0gIHRyZW4gYmllbj8NCg0KTm9pIGNo byBjb25nIGJhbmcsIGNodW5nIHRhIGN1bmcgZGEgY28gbmhpZXUgbm8gbHVjIGRlIGJhbyB2ZSBu Z3UgZGFuLiBCbyBRdW9jIHBob25nIA0KdmEgQm8gQ29uZyBhbiBkYSBob3AgbGllbiB0dWMsIGhv cCBoYW5nIG5nYXkgZGUgdGltIGNhY2ggeHUgbGkgY2FjIHN1IGNvLiBDYWMgY2FwLCANCm5nYW5o IGN1bmcgY28gbmh1bmcgY3VvYyBjb25nIGR1IGNoaW5oIHRodWMsIGxhbmggZGFvIGNhYyBiZW4g ZGEgY28gcmF0IG5oaWV1IGN1b2MgdHJhbyBkb2kgdmUgdmFuIGRlIG5ndSBkYW4gdHJlbiBiaWVu Lg0KDQpUaGVvIGRvaSBIb2kgbmdoaSBCbyB0cnVvbmcgcXVvYyBwaG9uZyBBU0VBTiBtbyByb25n IHRoYXkgcm8gZGlldSBuYXkuIA0KDQpUb2kgY2hvIHJhbmcsIHZlIHZpZWMgbmF5IHBoYWkgcmF0 IGtpZW4gdHJpLiBUcnVvYyBuaGF0IGxhbSB0aGUgbmFvIGRlIHRob25nIG5oYXQgdm9pIG5oYXUN CiB0aHVjIGhpZW4gdG90IG5ndXllbiB0YWMgdW5nIHh1IGJpZW4gRG9uZyBjdWEgY2FjIG51b2Mg bGllbiBxdWFuLg0KDQpOaHVuZyBjbyB2ZSBuaHUgc3UgYW4gdG9hbiBjdWEgbmd1IGRhbiBWaWV0 IGtoaSBkYW5oIGJhdCBjYSB0cmVuIHZ1bmcgYmllbiB0aHVvYyBjaHUgDQpxdXllbiBkYXQgbnVv YyB2YW4gY2h1YSBkdW9jIGNhaSB0aGllbiBuaGlldT8NCg0KSGllbiBuYXkgY2FjIG51b2MgbGll biBxdWFuIHRyb25nIGtodSB2dWMgZGFuZyB4YXkgZHVuZyBCbyBxdXkgdGFjIHVuZyB4dSBCaWVu IERvbmcNCiBtYW5nIHRpbmggcmFuZyBidW9jIHBoYXAgbGkgY2FvIGhvbiwgdGhheSB0aGUgY2hv IFR1eWVuIGJvIHZlIHVuZyB4dSB0cmVuIEJpZW4gRG9uZyANCm5hbSAyMDAyLg0KDQpWaWV0IE5h bSBsYSB0aGFuaCB2aWVuIHRpY2ggY3VjIGRlIGxhbSB2aWVjIG5heSB2YSBkdW9jIHN1IGRvbmcg dGluaCBjYW8gY3VhIGNhYyBudW9jIA0KQVNFQU4uIEx1YyBuYXkgcmF0IGNhbiBzdSB0aGFtIGdp YSBjdWEgVHJ1bmcgUXVvYyBudWEuIFhheSBkdW5nIGR1b2MgQm8gUXV5IHRhYyANCnVuZyB4dSBt YW5nIHRpbmggcmFuZyBidW9jIHRoaSBjbyBjbyBzbyBwaGFwIGxpIGRlIGRhdSB0cmFuaC4NCg0K VGluaCB0aGFuIGxhIGxhbSB0aGUgbmFvIGRlIEJpZW4gRG9uZyBvbiBkaW5oLCBtb2kgdHJhbmgg Y2hhcCBwaGFpIGdpYWkgcXV5ZXQgYmFuZyANCnRodW9uZyBsdW9uZywgaG9hIGJpbmggdHJhbmgg ZHVuZyB2dSBsdWMuDQoNCkRvIGxhIHZlIGRvaSBuZ29haS4gQ29uIHZlIGRvaSBub2ksIHBoYWkg bGFtIHNhbyB0YW5nIGN1b25nIHR1eWVuIHRydXllbiBnaWFvIGR1YyB2ZSANCmJpZW4gZGFvIGNo byBuZ3UgZGFuLiBEYWMgYmlldCBtb2kgbmd1IGRhbiwgbW9pIG5ndW9pIGRhbiBwaGFpIHRvbiB0 cm9uZyBwaGFwIGx1YXQgdHJlbiANCmJpZW4sIHBoYXAgbHVhdCBWaWV0IG5hbSB2YSBwaGFwIGx1 YXQgY2FjIG51b2MuDQoNClBoYWkgc29tIHRob25nIHF1YSBsdWF0IEJpZW4NCg0KQ28geSBraWVu IGNobyByYW5nIG5ndSBkYW4gVmlldCBOYW0gYmkgImJhdCBuYXQiIHRodW9uZyB4dXllbiBob24g bmd1IGRhbiBjYWMgbnVvYyANCmxhbiBjYW4sIGN1bmcgZGFuZyBjbyB0cmFuaCBjaGFwIHZlIGNo dSBxdXllbiBiaWVuIGRhbyB0YWkga2h1IHZ1YyBiaWVuIERvbmcuIFRyb25nIA0Ka2hpIGRvLCBM dWF0IGJpZW4gVmlldCBOYW0gdmFuIGNvbiBsYSBkdSBhbiBsdWF0IHRyZW8sIHZpIG5oaWV1IGxp IGRvIGRhIG1heSBsYW4gdHJpIGhvYW4sIA0Ka2hvbmcgZHVhIHZhbyBuZ2hpIHRyaW5oIFF1b2Mg aG9pLi4uDQoNCk5odW5nIHZ1IGJhdCBnaXUgdGF1IGNhIGN1YSBuZ3UgZGFuIGxhIGRvIGJlbiBr aWEgaG8gYmFvIG5ndSBkYW4gY3VhIHRhIHhhbSBwaGFtIGNodSANCnF1eWVuIGN1YSBobywgYmVu IHRhIGN1bmcga2hhbmcgZGluaCBkbyBsYSBjaHUgcXV5ZW4gaG9wIHBoYXAgY3VhIHRhIG5lbiBj dSB4YXkgcmEgbmh1bmcgdnUgYmF0IGdpdSBuaHUgdmF5Lg0KDQpUcnVuZyBRdW9jLCBQaGlsbGlw aW5lLCBJbmRvbmVzaWEgZGEgYmFuIGhhbmggcmF0IG5oaWV1IGRhbyBsdWF0IHZlIGJpZW4uIEhv IHR1eWVuIGJvIA0KY2h1IHF1eWVuIHF1b2MgZ2lhIHRyb25nIGNhYyBkYW8gbHVhdCBkby4NCg0K VGEgdmFuIGNodWEgY28gYm8gbHVhdCBuYW8gcXV5IGRpbmggc2F1IHNhYyB2ZSBjaHUgcXV5ZW4g YmllbiB0cm9uZyBraGkgZG8gY2FjIG51b2MgZGEgDQp0dXllbiBibywgY29pIGRvIGxhIGxhbmgg dGhvIGJpZW4gY3VhIGhvLiBUcm9uZyBjYWMgZGFvIGx1YXQgbGllbiBxdWFuIGN1YSBudW9jIHRh IG1vaSBjbyANCmx1YXQgYmllbiBnaW9pIHF1b2MgZ2lhIGxhIG5vaSB2ZSBjaHUgcXV5ZW4gYmll biwgbmh1bmcgbW9pIGNoaSBub2kgbyB0YW0gcmlhIG5nb2FpIGN1YSANCmR1b25nIGxhbmggaGFp IHRob2ksIGNodSBjdW5nIGNodWEgbm9pIGdpIGRlbiBjaHUgcXV5ZW4gYmllbiwgZGFvLg0KDQpC b2kgdmF5IGxhdSBuYXkgdmFuIGN1IGFwIGR1bmcgQ29uZyB1b2MgbHVhdCBiaWVuIG5hbSAxOTgy IGN1YSBMSFEuIFR1IG1pbmggdmFjaCByYQ0KIGRvIGNoaW5oIHBodSBjb25nIGJvLiBRdW9jIGhv aSBjdW5nIGNodWEgY28gY29uZyBibyBuYW8gdHJ1IHZpZWMgY28gcmEgbmdoaSBxdXlldCBwaGUg DQpjaHVhbiBDb25nIHVvYyBsdWF0IGJpZW4gbmFtIDE5ODIuIFZpIHZheSwgbmd1IGRhbiBjdSB0 aGVvIGR1b25nIHR1eWVuIGJvIGN1YSBjaGluaCANCnBodSBkZSBkaS4NCg0KVHJ1bmcgUXVvYyBi YXkgZ2lvIHR1eWVuIGJvIGR1b25nIGx1b2kgYm8sIGhhbmcgbmdheSBobyBjdSBjaG8gdGF1IGhh aSBnaWFtLCB0aGFtIGNoaQ0KY2EgbWF5IGJheSBkaW5oIHZpIHBoYXQgaGllbiBuZXUgbmd1IGRh biB0YSB2dW90IGR1b25nIGRvIGxhIGhvIGJhdC4gTWEgbHVhdCBjdWEgaG8gcXV5IA0KZGluaCBy b2ksIGhvIG5vaSByYW5nIGRvIGxhIGN1YSBUcnVuZyBRdW9jIG5lbiB2aSBwaGFtIGxhIGJhdC4N Cg0KQ29uIG51b2MgdGEgY3VuZyBub2kgZG8gbGEgY2h1IHF1eWVuIGN1YSB0YSB2YSB0dXllbiB0 cnV5ZW4gY2hvIG5ndSBkYW4gbmh1IHZheS4gIE5ndSANCmRhbiBjdSBkYW5oIGJhdCwgY29uIGhv IHRoaSBjaG8gbGEgdGEgdmkgcGhhbSBuZW4gYmF0IGJvLg0KDQpEbyB2YXksIGRhIGRlbiBsdWMg a2hvbmcgdGhlIHRydSB0cnUgZHVvYyBudWEgdmllYyBiYW4gaGFuaCBMdWF0IHZlIGJpZW4gdmEg eGF5IGR1bmcgDQpCbyBxdXkgdGFjIHVuZyB4dSBiaWVuIERvbmcgbWFuZyB0aW5oIHJhbmcgYnVv YyBwaGFwIGx5IGNhby4NCg0KWGF5IGR1bmcgTHVhdCBjaHV5ZW4gc2F1IHZlIGJpZW4gZGFvIGxh IG5oaWVtIHZ1IGN1YSBRdW9jIGhvaS4gVHJ1b2MgYW4gdG9hbiBjdWEgY2FjIA0KdGF1IGNhIFZp ZXQgTmFtIGxpZW4gdGllcCBiaSBkZSBkb2Egbmh1IHZheSwgdHJhY2ggbmhpZW0gUXVvYyBob2kg dHJvbmcgdmllYyBiYW8gdmUgbmd1IA0KZGFuIHRoZSBuYW8/DQoNClF1b2MgaG9pIGNvIGhhaSBj aHVjIG5hbmcgbGEgbGFtIGx1YXQgdmEgZ2lhbSBzYXQgdGh1YyBoaWVuIHBoYXAgbHVhdC4gTWEg bHVhdCBiaWVuIGRhIA0KbGFtIGRlbiAzIG5oaWVtIGtpIHJvaSBtYSB2YW4gY2h1YSB0aG9uZyBx dWEgZHVvYyB0aGkgc2FvIFF1b2MgaG9pIGdpYW0gc2F0LiBOZ2F5IGNhIA0Ka2hpIHRhIGdpYW0g c2F0IGNvIHRoZSBkdW9jIHRoaSBjdW5nIHRoaWV1IGNhbiBjdSBwaGFwIGxpIHRyb25nIG51b2Mu DQoNClZpIHZheSwgdHJ1b2MgbWF0IFF1b2MgaG9pIGxhbSBzYW8gdGhvbmcgcXVhIGR1b2MgbHVh dCBiaWVuLg0KDQpVeSBiYW4gUXVvYyBwaG9uZyBBbiBuaW5oIGhpZW4gbmF5IGRhbmcga2llbiBu Z2hpIHBoYWkgc29tIHRob25nIHF1YSBsdWF0IGJpZW4gY2FuZyANCnNvbSBjYW5nIHRvdC4gQ2h1 bmcgdG9pIGRlIG5naGkgdG90IG5oYXQgbmFtIDIwMTEgaG9hYyAyMDEyIGxhIGN1bmcuDQoNCkJh eSBnaW8gY3UgZGVuIGhvaSBuZ2hpIG5hbyBkbyBsYWkgYmFvIHRlIG5oaSBuZW4gZ2FjIGxhaS4g VHJvbmcga2hpIGRvLCBjYWMgbnVvYyBiYW4gDQpoYW5oIHJhdCBuaGlldSByb2ksIHRoYW0gY2hp IGJhbiBoYW5oIHF1eSBkaW5oIGJhbyB2ZSAgYmllbiwgaGFpIGRhbyByYXQgY3UgdGhlIG5ldSBh aSB4YW0NCnBoYW0gdGhpIHh1IGxpIHRoZSBuYW8uIFRyb25nIGRvLCBjbyBxdXkgZGluaCB0cnVv bmcgaG9wIGNhbiB0aGlldCBzdSBkdW5nIG5odW5nIGJpZW4gDQpwaGFwIGRhYyBiaWV0IGJhbmcg dnUga2hpLCBiYW4gY2FuaCBjYW8gbmV1IGtob25nIHJhIHRoaSBiYW4gdGlldSBkaWV0Lg0KDQpU cnVvYyBuaHVuZyBnaSBkYSBkaWVuIHJhLCBybyByYW5nIHJhbmggZ2lvaSB0cmVuIGJpZW4gbGEg cmF0IG1vbmcgbWFuaCwgdmF5IG9uZyBjbyBkZSANCnh1YXQgZ2lhaSBwaGFwIGdpIGRlIGJhIGNv biBuZ3UgZGFuIHRhIGR1b2MgYW4gdG9hbiBob24ga2hpIGxhbSBhbiB0cmVuIGJpZW4/DQoNCkJp ZW4gY3VhIHRhIG5lbiBkYW4gdGEgY28gcXV5ZW4gZGFuaCBiYXQgY2EgdmEgY28gcXV5ZW4gaG9h dCBkb25nIHRyb25nIGxhbmggdGhvIGN1YSB0YS4NCkNhYyBudW9jIGNvIHRyYW5oIGNoYXAgZG8g cGhhaSBsYW0gdGhlIG5hbyB0b24gdHJvbmcgbmd1eWVuIHRhYyB1bmcgeHUgYmllbiBEb25nIGhp ZW4gDQpuYXkgZGEga2kga2V0LiBHaXUgbmd1eWVuIHRyYW5nIHRoYWkgaGllbiBuYXksIGN1bmcg bmhhdSBraGFpIHRoYWMgdmEgbmV1IGNvIGNobyBuYW8gDQp0cmFuaCBjaGFwIHRoaSBwaGFpIGdp YWkgcXV5ZXQgdm9pIG5oYXUgYmFuZyB0aHVvbmcgbHVvbmcgaG9hIGJpbmguDQoNClRvdCBuaGF0 IHRob25nIGJhbyBjaG8gbmhhdSwgZ2l1IGhvYSBraGkuIFRhIGRvaSB2b2kgY2FjIG51b2MgZGEg dGhlLCBjYWMgbnVvYyBjdW5nIG5lbiB0b24gdHJvbmcgbmh1IHRoZS4gDQoNCmh0dHA6Ly92bmV4 cHJlc3MubmV0L0dML1RoZS1naW9pLzIwMTAvMTAvM0JBMjI0QTYvIDMwLzEwLzIwMTAsIDEwOjI2 IEdNVCs3IA0KDQpRdWFuIGhlIFZpZXQgLSBNeTogDQoNCk15IGRlIHh1YXQgbmFuZyBjYXAgcXVh biBoZSB2b2kgVmlldCBOYW0gDQoNCkhvbSBxdWEgMjkvMTAvMjAxMCwgTmdvYWkgdHJ1b25nIE15 IEhpbGxhcnkgQ2xpbnRvbiBkYSBkZW4gSGEgTm9pIHZhIGJheSB0byB5IG11b24gDQpuYW5nIGNh cCBxdWFuIGhlIGhhaSBudW9jIHRyb25nIGN1b2MgZ2FwIHZvaSBvbmcgVGh1IHR1b25nIE5ndXll biBUYW4gRHVuZy4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMTAv TmdvYWktdHJ1b25nLU15LVRpbS1naWFpLXBoYXAtbGF1LWRhaS12YW4tZGUtQmllbi1kb25nLTk0 NTE0MS8gTGluaCBUaHUgMTE6MzgsIDMwLzEwLzIwMTAgKEdNVCs3KQ0KDQpPbmcgTmd1eWVuIFRh biBEdW5nIHRyaSBob2FuIG5hbmcgY2FwIHF1YW4gaGUgVmlldCCWIE15Og0KDQpOZ29haSB0cnVv bmcgTXkgdHJvIGxhaSBWaWV0IE5hbSB0dSAyOSBkZW4gMzAvMTAgZHUgSG9pIG5naGkgY2FwIGNh byBEb25nIEEgKEVBUykgDQp2YSB0aGFtIGR1IGNhYyBob2F0IGRvbmcgYmVuIGxlLiANCg0KVGhl byBDb25nIHRob25nIHRpbiBkaWVuIHR1IENoaW5oIHBodSwgdGFpIGN1b2MgZ2FwIHNvbmcgcGh1 b25nIGJlbiBsZSB2b2kgVGh1IHR1b25nIA0KVmlldCBOYW0sIE5nb2FpIHRydW9uZyBNeSBraGFu ZyBkaW5oIGNhbSBrZXQgbmFuZyBtb2kgcXVhbiBoZSBob3AgdGFjIHZvaSBWaWV0IE5hbS4NCg0K VHJvbmcgZG8gdGFuZyBjdW9uZyBob3AgdGFjIGdpdWEgaGFpIHF1b2MgZ2lhIHRyZW4gbGluaCB2 dWMga2luaCB0ZSwgdGh1b25nIG1haSwgZGF1IHR1LCANCnkgdGUsIHVuZyBwaG8gYmllbiBkb2kg a2hpIGhhdSwgZ2lhbyBkdWMgZGFvIHRhby4uLiBib2kgaGFpIG51b2MgY29uIG5oaWV1IHRpZW0g bmFuZyBkZSANCnRyaWVuIGtoYWkgcXVhbiBoZSBkb2kgdGFjIHZpIGxvaSBpY2ggY2h1bmcgY3Vh IG1vaSBxdW9jIGdpYS4NCg0KSG9hbiBuZ2hlbmggeSB0dW9uZyBjdWEgTmdvYWkgdHJ1b25nIEhp bGxhcnkgQ2xpbnRvbiB2ZSB2aWVjIG5hbmcgY2FwIHF1YW4gaGUgaGFpIG51b2MsIA0Kb25nIFRo dSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgY2hvIGJpZXQgZGEgZ2lhbyBjaG8gY2FjIGNvIHF1YW4g aHV1IHF1YW4gbmdoaWVuIGN1dSB2YSB0cmFvIGRvaSB2b2kgTXkgdmUgdmFuIGRlIG5heSEgIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMjEw MTMxNDUuYXNweCBOZ29jIE1pbmggMjEvMTAvMjAxMCAxOjMxIA0KDQpCaWVuIERvbmc6IDkgbmd1 IGRhbiBtYXQgdGljaCB0cmVuIGJpZW4gIA0KICANCkNoaWV1IDIwLjEwLCBvbmcgTmd1eWVuIFZh biBBcCwgQ2h1IHRpY2ggVUJORCBILkhhdSBMb2MgKFRoYW5oIEhvYSkgY2hvIGJpZXQ6IA0KbW90 IGNoaWVjIHRhdSBjYXUgbXVjIGN1YSBuZ3UgZGFuIHRyb25nIHhhIE5ndSBMb2MsIEguSGF1IExv YyB2b2kgOSBuZ3UgZGFuIGRpIGNhdSANCm11YyBuZ29haSBiaWVuIGRhIG1hdCBsaWVuIGxhYyA1 IG5nYXkgbmF5LiANCg0KQ2hpZWMgdGF1IG1hdCB0aWNoIGxhIGN1YSBhbmggTmd1eWVuIFZhbiBI b3AgKHhhIE5ndSBMb2MsIEguSGF1IExvYyksIHNvIGRhbmcga3kgVEggDQo5MDQ1NSBUUywgY29u ZyBzdWF0IDExMCBDViwgcmEga2hvaSB0dSBuZ2F5IDkuOS4gVGhlbyB0aG9uZyB0aW4gdHUgY2Fj IHRodXllbiBiYW4sIG5nYXkgDQoxNi4xMCwgc2F1IGtoaSBuZ2hlIGRhaSBiYW8gY28gZ2lvIG11 YSBkb25nIGJhYyB2YSBob2kgdHUgY2EgcmFuaCB0aGFwLCBhbmggSG9wIGNvIGRpZW4gDQpkYW0g Y2hvIGRvYW4gdGF1IGN1bmcgdGhvbiBkaSB2ZS4gQ2hpZXUgY3VuZyBuZ2F5LCBkb2FuIHRhdSBj dW5nIHhhIGRhIHZlIGRlbiBibyBhbiB0b2FuLCANCmNvbiB0YXUgY3VhIGFuaCBIb3Aga2hvbmcg dGhheS4gVUJORCB4YSBOZ3UgTG9jIHZhIGdpYSBkaW5oIGRhIHRpbSBtb2kgY2FjaCANCmxpZW4g bGFjLCBkaWVuIGRhbSBuaHVuZyB2YW4ga2hvbmcgY28gdGluIHR1YyBnaS4gTmdheSAxOCB2YSAx OS4xMCwgZ2lhIGRpbmggY3VhIGNhYyBuZ3UgDQpkYW4gbWF0IHRpY2ggdG8gY2h1YyB0aHVlIG11 b24gNyBwaHVvbmcgdGllbiBjdW5nIHRob24gZGUgZGkgdGltIGtpZW0sIG5hbSBiYXQgdGhvbmcg DQp0aW4gdmEgYmFvIGNhbyBzdSB2aWVjIHZvaSBCYW4gQ2hpIGh1eSBQQ0xCIHRpbmggVGhhbmgg SG9hIHZhIFVCTkQgaHV5ZW4gSGF1IExvYywgDQpUcmFtIGJpZW4gcGhvbmcgaG8gdHJvIHRpbSBr aWVtIGNoaWVjIHRodXllbiBtYXQgdGljaC4gVHV5IG5oaWVuIGRhIDUgbmdheSB0cm9pIHF1YSB2 YW4gDQpjaHVhIGNvIHRob25nIHRpbiBnaSB2ZSBjaGllYyB0YXUgdmEgY2FjIG5ndSBkYW4uIA0K DQpodHRwOi8vdm4ubmV3cy55YWhvby5jb20vdHRvLzIwMTAxMDI4L3RwbC10aGFuaC1ob2EtdGll cC10dWMtaG8tdHJvLWdpYS1kaW5oLTktZWYxNmM1OS5odG1sIA0KDQo5IG5ndSBkYW4gVGhhbmgg SG9hIGJpIG1hdCB0aWNoIHRyZW4gYmllbiBob20gMTYtMTAtMjAxMCwgZ29tOiAgDQoNCjEuIEFu aCBOZ3V5ZW4gVmFuIEhvcCAoMjYgdHVvaSwgdGh1eWVuIHRydW9uZyksIA0KMi4gTmd1eWVuIFZh biBMb2MgKDMxIHR1b2kpLCANCjMuIERvbmcgVmFuIFNvbiAoMjYgdHVvaSksIA0KNC4gTmd1eWVu IFZhbiBUaGFuZyAoMjYgdHVvaSksIA0KNS4gTmd1eWVuIFZhbiBTdXUgKDQ3IHR1b2kpLCANCjYu IFRyYW4gVmFuIEJpbmggKDI2IHR1b2kpLCANCjcuIE5ndXllbiBWYW4gVGh1ICg1NCB0dW9pKSwg DQo4LiBIb2FuZyBWYW4gS2hvYSAoMjYgdHVvaSkgZGV1IHRydSB0YWkgeGEgTmd1IExvYywgdmEg DQo5LiBOZ3V5ZW4gVmFuIEhhaSAoMjYgdHVvaSkgdHJ1IHRhaSB4YSBNaW5oIExvYywgaHV5ZW4g SGF1IExvYy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0 NC8yMDEwMTAzMDAwMTIzMC5hc3B4IFF1YW5nIER1YW4gTmdvYyBNaW5oIDMwLzEwLzIwMTAgMDox MiANCg0KVGh1IHR1b25nOiBUaW0ga2llbSBuZ3VvaSBtYXQgdGljaCAtIEtob25nIGhlIHRoYXkg cGh1b25nIHRpZW4gdGltIGtpZW0gY3VhIGNoaW5oIHBodSAgICANCiAgDQpTYXUgaG9uIDEwIG5n YXkgdGltIGtpZW0gdHJvbmcgdm8gdm9uZywgbmdheSAyOC4xMCwgY2hpbmggcXV5ZW4geGEgTmd1 IExvYywgaHV5ZW4gDQpIYXUgTG9jIChUaGFuaCBIb2EpIHZhIGdpYSBkaW5oIGRhIGxhbSBsZSBj aGlldSBob24gdGFwIHRoZSBjaG8gOSBuZ3UgZGFuIGJpIG1hdCB0aWNoIA0KdHJlbiBiaWVuLiAN Cg0KTW90IGxlIHRhbmcgdGFwIHRoZSBkdW9jIHRvIGNodWMgbmdheSB0cmVuIGJvIGJpZW4sIHRy b25nIHN1IGRhdSBkb24gZGVuIHRvdCBjdW5nLiBRdWEgDQp2dSB2aWVjIG5heSBjaG8gdGhheSwg dmllYyB0aW0ga2llbSBjdXUgbmFuIHRyZW4gYmllbiBkYW5nIGJvYyBsbyBuaGlldSBiYXQgY2Fw LiBTdSANCnBoYW4gdW5nIGN1YSBjYWMgbHVjIGx1b25nIHZhIGNoaW5oIHF1eWVuIGRvaSB2b2kg bWFuZyBzb25nIGN1YSBuZ3VvaSBkYW4gdHJvbmcgdnUgDQp2aWVjIG5heSBkYSB0aGlldSBsaW5o IGhvYXQsIG5ldSBraG9uZyBtdW9uIG5vaSBsYSB0YWMgdHJhY2guICANCg0KTmh1IFRoYW5oIE5p ZW4gZGEgdGhvbmcgdGluOiBOZ2F5IDE2LjEwLCBjaGllYyB0YXUgY2F1IG11YyBUSCA5MDQ1NSBU UyBjdWEgYW5oIA0KTmd1eWVuIFZhbiBIb3AsIHhhIE5ndSBMb2MsIGh1eWVuIEhhdSBMb2MgKFRo YW5oIEhvYSkgYmkgbWF0IHRpY2gga2hpIGRhbmcgdHJlbiBkdW9uZyANCnRybyB2ZSBkYXQgbGll biB0cmFuaCBhcCB0aGFwIG5oaWV0IGRvaS4gR2lhIGRpbmggY3VhIGNhYyBuZ3UgZGFuIG1hdCB0 aWNoIHZhIA0KY2hpbmggcXV5ZW4geGEgTmd1IExvYyBwaGFpIHRvIGNodWMgdGh1ZSBtdW9uIHBo dW9uZyB0aWVuIGRlIHRpbSBraWVtLCBuaHVuZyANCmtob25nIG1hbmcgbGFpIGtldCBxdWEuIA0K DQooQW5oOiBMZSBjaGlldSBob24gdGFwIHRoZSBjaG8gOSBuZ3UgZGFuIGN1YSB4YSBOZ3UgTG9j IGJpIG1hdCB0aWNoIHRyZW4gYmllbiAtIEFuaDogTi5NKSANCg0KVHJhbyBkb2kgdm9pIFRoYW5o IE5pZW4gbmdheSAyOS4xMCwgb25nIE5ndXllbiBWYW4gTmd1LCBDaHUgdGljaCBVQk5EIHhhIE5n dSANCkxvYywgaHV5ZW4gSGF1IExvYyAoVGhhbmggSG9hKSBjaG8gYmlldDogVm9pIGNodWMgbmFu ZyBjdWEgbWluaCwgbmdheSBzYXUga2hpIG5hbSANCmJhdCBkdW9jIHRob25nIHRpbiAoMTcuMTAp LCBjaGluaCBxdXllbiBkaWEgcGh1b25nIGRhIGJhbyBjYW8gc3UgdmllYyB2b2kgQmFuIGNoaSBo dXkgDQpQQ0xCIHRpbmggVGhhbmggSG9hIHZhIFVCTkQgaHV5ZW4gSGF1IExvYywgVHJhbSBiaWVu IHBob25nIGRlIG5naGkgaG8gdHJvIHRpbSANCmtpZW0gY2hpZWMgdGh1eWVuIG1hdCB0aWNoLiBU dXkgbmhpZW4sIHRyb25nIHN1b3Qgbmh1bmcgbmdheSB0aW0ga2llbSAoMTgtMjUuMTApLCANCmto b25nIGhlIHRoYXkgYm9uZyBkYW5nIGN1YSBjYWMgcGh1b25nIHRpZW4gdGltIGtpZW0gY3V1IG5h biBjdWEgY2FjIGNvIHF1YW4gY2h1YyANCm5hbmcsIG1hIGNoaSBjbyBjYWMgcGh1b25nIHRpZW4g dGF1IGNhIGN1YSBuZ3UgZGFuIHR1IHJhIGJpZW4gdGltIGNoaWVjIHRhdSBjYSBtYXQgdGljaC4N CkNhcCB0cmVuIGN1bmcgY2hpIGN1IGRhaSBkaWVuIHh1b25nIGRvbmcgdmllbiBjaGlhIHNlIHZv aSBiYSBjb24sIGNvbiBsYWkgaG8gY3VuZyANCmNoYW5nIGJpZXQgcGhhaSBsYW0gZ2kgdmkga2hv bmcgY28gcGh1b25nIHRpZW4uLi4gDQoNCktoaSBkdW9jIGhvaTogTGlldSBjbyBwaGFpIGRvIGto b25nIHhhYyBkaW5oIGR1b2MgdG9hIGRvIGN1YSBjaGllYyB0YXUgY2EgbWF0IHRpY2gsIG5lbiAN CmNvbmcgdGFjIHRpbSBraWVtIGRhIGtob25nIGR1b2MgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIHRy aWVuIGtoYWk/IE9uZyBOZ3UgY2hvIGJpZXQ6IA0KIk5ldSB2aW4gdmFvIGx5IGRvIG5heSBkZSBn aWFpIHRoaWNoIGNobyB2aWVjIGNoYW0gdHJlIHRyb25nIGNvbmcgdGFjIHRpbSBraWVtIG5ndSBk YW4gDQpsYSBraG9uZyBkdW5nLiBCb2kgdHJvbmcgYmFvIGNhbyBndWkgY2FjIGNhcCwgY3VuZyBu aHUgY2FjIGRhaSBkdXllbiBoYWksIHRvaSBkYSBnaGkgcmF0IA0Kcm8gdG9hIGRvIHRydW9jIGto aSBjaGllYyB0YXUgY2EgY3VhIGFuaCBIb3AgYmkgbWF0IGxpZW4gbGFjICh0YXQgbmhpZW4gY2hp IGxhIHVvYyBsdW9uZyANCnRob2kpLiBUaGFtIGNoaSBuZXUga2hvbmcgeGFjIGRpbmggZHVvYyB0 b2EgZG8sIHRoaSBjYWMgZG9uIHZpIGN1dSBuYW4gY3VuZyBwaGFpIHRpZXAgDQp4dWMgdm9pIG5o dW5nIG5ndSBkYW4gY3VhIGNhYyB0YXUgY3VuZyBkYW5oIGNhIHZvaSBjaGllYyB0YXUgYmkgbWF0 IHRpY2ggZGUgaG9pLCBuYW0gYmF0IA0KdGhvbmcgdGluIG1vaSBkdW5nIGNodS4gTmh1bmcgbmdh eSBjYSB2aWVjIG5heSBjdW5nIGtob25nLiBWaSB2YXkgY2hpbmggcXV5ZW4gZGlhIA0KcGh1b25n IHZhIGdpYSBkaW5oIGNhYyBuZ3UgZGFuIGJpIG1hdCB0aWNoIGNoaSBjb24gYmlldCB0cm9uZyBj aG8gdmFvIHZpZWMgdGltIGtpZW0gY3VhIA0KY2hpbmggY2FjIG5ndSBkYW4gdHJvbmcgeGEgbWEg dGhvaSIuDQoNCk9uZyBOZ3V5ZW4gVmFuIE5ndSBjaG8gYmlldCB0aGVtOiAiRGEgbmhpZXUgbGFu IGNodW5nIHRvaSBraWVuIG5naGkgdm9pIGNhcCB0cmVuIGxhIA0Ka2hpIG5oYW4gZHVvYyB0aW4g YmFvIGNvIHRhdSBnYXAgbmFuIG8gdG9hIGRvIG5hbyB0aGkgbW9uZyBjYWMgY28gcXVhbiBodXUg cXVhbiwgZGFjIA0KYmlldCBsYSBVeSBiYW4gUXVvYyBnaWEgdGltIGtpZW0gY3V1IG5hbiB2YSBV eSBiYW4gVGltIGtpZW0gY3V1IG5hbiB0aW5oIFRoYW5oIEhvYSANCnNvbSB0cmllbiBraGFpIG5n YXkgY2FjIHBodW9uZyBhbiB1bmcgY3V1IGRlIGN1dSBuZ3UgZGFuLiBUdXkgbmhpZW4gZGVuIHRo b2kgZGllbSANCm5heSwgY2h1bmcgdG9pIHZhbiBraG9uZyBuaGFuIGR1b2MgYmF0IGt5IG1vdCB0 YXUgY3V1IHRybyBuYW8gY3VhIGhhaSBjbyBxdWFuIHRyZW4gZ2l1cA0KIGRvIGNhIi4gDQoNCkto aSBsaWVuIGxhYyB2b2kgY2FjIGNhcCBjaGluaCBxdXllbiB2YSBjYWMgbHVjIGx1b25nIGxpZW4g cXVhbiBkZSB0aW0gaGlldSB2ZSBjb25nIHRhYyANCnRpbSBraWVtIDkgbmd1IGRhbiBjdWEgeGEg Tmd1IExvYyBiaSBtYXQgdGljaCB0cmVuIGJpZW4sIGNodW5nIHRvaSBkZXUgbmhhbiBkdW9jIGNh dSANCnRyYSBsb2kgZGFpIGxvYWk6ICJDaHVuZyB0b2kgY28gYmlldCB2dSB2aWVjLCBjbyBiYW8g Y2FvIGxlbiBjYXAgdHJlbiwgY29uIHZpZWMgdGltIA0Ka2llbSB0aGUgbmFvIHRoaSBjaHVuZyB0 b2kga2hvbmcgbmFtIGR1b2MiLiBDbyBjYW0gZ2lhYyBuaHUsIHRydW9jIHZ1IHZpZWMgY2FjIGNh cCBjaGkgDQpjbyBtb2kgdmllYyBiYW8gY2FvIGxlbiBjYXAgdHJlbiB2YSBjb2kgbmh1IHRoZSBs YSBkYSBob2FuIHRoYW5oIG5oaWVtIHZ1LiBDb24gdmllYyB0aW0ga2llbSANCnRoZSBuYW8ga2hv bmcgdGh1b2MgdHJhY2ggbmhpZW0gY3VhIG1pbmguIFZheSwgbmd1IGRhbiBzZSBiaWV0IHRyb25n IGNheSB2YW8gYWkga2hpIA0Ka2hvbmcgbWF5IHRhdSBjYSB4YXkgcmEgc3UgY28/IEhheSBobyB2 YW4gY3UgcGhhaSB0cm9uZyBjaG8gdmFvIHN1IHRpbSBraWVtIGN1YSBjaGluaCANCm5odW5nIG5n dSBkYW4gdHJvbmcgbGFuZyB0cm9uZyB4YSBtYSB0aG9pLiBOaHVuZyBiYW4ga2hvYW4sIGJ1YyB4 dWMgY3VhIG5ndSBkYW4gbGEgDQpkaWV1IGhldCBzdWMgZGUgaGlldSB2aSBjaHV5ZW4gY3VhIDkg bmd1IGRhbiBtYXQgdGljaCBjdW5nIGNvIHRoZSBsYSB0dW9uZyBsYWkgY3VhIGhvLiANCg0KVmFu IGJpZXQsIHZpZWMgdGltIGtpZW0gbmh1bmcgbmd1IGRhbiBiaSBtYXQgdGljaCB0cmVuIGJpZW4g bGEgaGV0IHN1YyBraG8ga2hhbiwgbmh1bmcgDQpnaWEgbmh1IGNhYyBwaHVvbmcgdGllbiB0aW0g a2llbSBjaHV5ZW4gbmdoaWVwIGN1YSBOaGEgbnVvYyB4dWF0IGhpZW4sIHllbSB0cm8gY2FjIA0K dGF1IGN1YSBjYWMgbmd1IGRhbiwgY3VuZyB0aW0ga2llbSwgdGhpIHBoYW4gbmFvIHNlIHRyYW4g YW4gZHVvYyB0aW5oIHRoYW4gY3VhIG5ndW9pIGRhbi4gDQpWYSBob24gdGhlLCBubyBsYW0gY2hv IGJhIGNvbiBuZ3UgZGFuIGRvIHR1aSBwaGFuLCBnaXVwIGhvIGNvIHRoZW0gbmdoaSBsdWMgZGUg dGllcCB0dWMgDQp2dW9uIGxlbiwga2llbiBjdW9uZyBiYW0gYmllbi4uLg0KDQpEYSBuZ3VuZyB0 aW0gNSBuYW4gbmhhbiB2dSB4ZSBraGFjaCBiaSBjdW9uIHRyb2kgDQoNCkhvbSBxdWEgMjkuMTAs IG9uZyBOZ3V5ZW4gSGFpIE5hbSwgUGhvIGNodSB0aWNoIFVCTkQgSC5OZ2hpIFh1YW4gKEhhIFRp bmgpIGNobyANCmJpZXQsIGx1YyBsdW9uZyBjaHVjIG5hbmcgZGEgbmd1bmcgdGltIGtpZW0gdGhp IHRoZSA1IG5hbiBuaGFuIGNvbiBsYWkgdHJvbmcgdnUgeGUga2hhY2ggDQo0OEstNTg2OCBiaSBj dW9uIHRyb2kgdmFvIHJhbmcgc2FuZyBuZ2F5IDE4LjEwIHRhaSB4YSBYdWFuIExhbSAoSC5OZ2hp IFh1YW4sIEhhIA0KVGluaCkuIE5ndW9pIHRoYW4gY3VhIDUgbmFuIG5oYW4geGF1IHNvIG5heSBz YXUgMTEgbmdheSBjaG8gZG9pIGtob25nIGNvIGtldCBxdWEsIA0KY3VuZyBkYSB0cm8gdmUgcXVl LiANCg0KVHJhbyBkb2kgdm9pIFBWIFRoYW5oIE5pZW4gY2hpZXUgcXVhLCBQaG8gY2h1IHRpY2gg VUJORCB0aW5oIEhhIFRpbmggTmd1eWVuIE5oYXQgDQpjaG8gYmlldDogIkNodW5nIHRvaSBkYSBs YW0gaGV0IHN1YyBtaW5oLCBodXkgZG9uZyBuaHVuZyBnaSBjbyB0aGUgZGUgaHkgdm9uZyB0aW0g a2llbSANCm5odW5nIG5ndW9pIGNvbiBsYWkuIE5odW5nIGRhIDExIG5nYXkgbmF5IHJvaSBuZW4g dmllYyB0aW0ga2llbSBjYW5nIHRybyBuZW4ga2hvIGtoYW4gDQp2YSBraG9uZyBjb24gaHkgdm9u ZyBnaSIuIFZlIHRyYWNoIG5oaWVtIGN1YSBjYWMgbmdhbmggY2h1YyBuYW5nIHRyb25nIHZpZWMg ZGUgeGUgDQpraGFjaCA0OEstNTg2OCB2dW90IHJhbyBjaGFuIG8gdGhpIHhhIEhvbmcgTGluaCBr aGkgbnVvYyBsdSBkYW5nIG8gbXVjIHJhdCBuZ3V5IGhpZW0gDQpkYW4gZGVuIHZ1IHRhaSBuYW4g dGhhbSBraG9jIG5heSwgb25nIE5oYXQgY2hvIGJpZXQgZGEgZ2lhbyBDb25nIGFuIEguTmdoaSBY dWFuIGRpZXUgDQp0cmEgcmEgc29hdCBsYWkgdHUgZGF1LCBsYW0gcm8gdHJhY2ggbmhpZW0gY3Vh IHR1bmcgYmVuIGRlIGNvIGh1b25nIHh1IGx5LiAiQ2hhYyBjaGFuIA0KcGhhaSB4dSBseSBuZ2hp ZW0sIGtob25nIHRoZSBuZSB0cmFuaCIsIG9uZyBOaGF0IG5vaS4gKEtoYW5oIEhvYW4pIA0KDQpR dWFuZyBCaW5oIGNvbiAxNiBuZ3VvaSBtYXQgdGljaCANCg0KVGhlbyBiYW8gY2FvIGN1YSBjYWMg Y28gcXVhbiBjaHVjIG5hbmcgdGluaCBRdWFuZyBCaW5oLCBoaWVuIGNvbiAxNiBuZ3VvaSBtYXQg dGljaCANCihjaGkgdHJvbmcgZG90IG11YSBsdSBsYW4gMSksIHRhdCBjYSBkZXUgbGEgdGh1eWVu IHZpZW4gdmEgbmd1IGRhbiBiaSBuYW4gdHJlbiBiaWVuLiBUcm9uZyANCmRvIGNvIHRhdSBjYSBR Qi05Mzg5M1RTIG8geGEgUXVhbmcgUGh1YywgSC5RdWFuZyBUcmFjaCB2b2kgNyBuZ3UgZGFuIGdv bTogTmd1eWVuIA0KTmdvYyBUaWVuLCBOZ3V5ZW4gVGllbiBEdW5nLCBOZ3V5ZW4gVGhlIEFuaCwg Tmd1eWVuIFZhbiBIYWkgKGN1bmcgbyB4YSBRdWFuZyANClBodWMpLCBOZ3V5ZW4gVmFuIFNvaSwg Tmd1eWVuIFZhbiBUaW5oIChjdW5nIG8geGEgUXVhbmcgVGhvKSB2YSBOZ3V5ZW4gVGhhbmggDQpU YW0gKHhhIEJhYyBUcmFjaCwgSC5CbyBUcmFjaCkgZGVuIG5heSB2YW4gYmF0IHZvIGFtIHRpbi4g R2lhIGRpbmgsIGJhbiBiZSB0byBjaHVjIGRpIA0KdGltIGtpZW0gbyBjYWMgdGluaCBsYW4gY2Fu IG5odW5nIHR1eWV0IGtob25nIGNvIHRpbiB0dWMgZ2kuIA0KDQpPbmcgTmd1eWVuIE5nb2MgR2lh aSAtIHRodW9uZyB0cnVjIEJhbiBjaGkgaHV5IFBDTEItVEtDTiB0aW5oIFF1YW5nIEJpbmggY2hv IA0KYmlldDogIlNhdSBraGkgbmhhbiB0aG9uZyB0aW4gY28gdGF1IGJpIG5hbiB0cmVuIGJpZW4s IGNodW5nIHRvaSBkYSB0aG9uZyBiYW8gbGVuIGNhcCB0cmVuIA0KdmEgdG8gY2h1YyB0aW0ga2ll bTsgdGF1IGhhaSBxdWFuIGN1bmcgZHVvYyBsZW5oIHRoYW0gZ2lhIHRpbSBraWVtLiBTYXUgbmhp ZXUgbmdheSByYSANCnNvYXQgdGFpIGNhYyB0b2EgZG8gYmFvIHRhdSBnYXAgbmFuIG5odW5nIGto b25nIGNvIGtldCBxdWEgZ2kgbmVuIGx1YyBsdW9uZyBjdXUgbmFuIGdvbSANCmhhaSBxdWFuIHZh IGJpZW4gcGhvbmcga2V0IHRodWMgbmhpZW0gdnUiLiBUcmEgbG9pIGNhdSBob2kgY3VhIFBWOiAi QmFuIGNoaSBodXkgUENMQi0NClRLQ04gdGluaCBjbyB0aG9uZyBiYW8gZGVuIGNhYyBudW9jIHRy b25nIGtodSB2dWMgaGF5IHRpbmggYmFuIHZlIG5odW5nIHRydW9uZyBob3AgDQpuZ3UgZGFuIHZh IHRhdSB0aHV5ZW4gbWF0IHRpY2ggdHJlbiBraG9uZz8iLCBvbmcgR2lhaSBub2k6ICJUcm9uZyBu aHVuZyBsYW4gYmFvIGNhbyANCnRpbmggaGluaCBsdXQgYmFvIGN1YSBjaHVuZyB0b2kgbGVuIEJh biBjaGkgZGFvIFBDTEIgVC5VIHZhIFV5IGJhbiBRdW9jIGdpYSB0aW0ga2llbSANCmN1dSBuYW4g ZGV1IGNvIG5odW5nIG5vaSBkdW5nIGRvLiBDb24gdmllYyB0byBjaHVjLCB0aG9uZyBiYW8gdGhl IG5hbyBsYSBjdWEgY2FwIHRyZW4iLiANCihULlEuTmFtKSANCg0KQ2h1YSBjbyBxdXkgZGluaCB2 ZSB0aG9pIGdpYW4gdGltIGtpZW0gDQoNCk9uZyBOZ3V5ZW4gWHVhbiBEaWV1LCBUb25nIGN1YyBw aG8gVG9uZyBjdWMgVGh1eSBsb2kga2llbSBVeSB2aWVuIHRodW9uZyB0cnVjIEJhbiANCmNoaSBk YW8gUGhvbmcgY2hvbmcgbHV0IGJhbyBULlUgY2hvIGJpZXQsIGhpZW4gY2FjIGx1YyBsdW9uZyBj dXUgaG8gY3V1IG5hbiB2YW4gZGFuZyANCm5vIGx1YyB0aW0ga2llbSBuaHVuZyBuZ3VvaSBtYXQg dGljaCB0cm9uZyBoYWkgZG90IG11YSBsdSBkYWMgYmlldCBsb24gdnVhIHF1YS4gVGhvbmcgDQp0 aHVvbmcgdmllYyB0aW0ga2llbSBuaHVuZyBuZ3VvaSBtYXQgdGljaCBkbyBiaSBudW9jIGx1IGN1 b24gdHJvaSwgaG9hYyBiaSBkYXQgZGEgdnVpIA0KbGFwLi4uIGdhcCByYXQgbmhpZXUga2hvIGto YW4gbmh1bmcgZHUgdHJvbmcgYmF0IGt5IGhvYW4gY2FuaCBuYW8sIGNhYyBsdWMgbHVvbmcgdmFu IA0KbHVvbiBzYW4gc2FuZyB2YSBubyBsdWMgbyBtdWMgY2FvIG5oYXQuIERheSBraG9uZyBjaGkg bGEgbWVuaCBsZW5oIG1hIGNvbiBsYSB0cmFjaCANCm5oaWVtIHZhIHRpbmggY2FtIGN1YSBjaHVu ZyB0YSBkb2kgdm9pIG5ndW9pIGdhcCBuYW4uICJDYWMgbHVjIGx1b25nIGRhIGxhbSBoZXQgc3Vj IA0KbWluaCBtYSB2YW4ga2hvbmcgY28ga2V0IHF1YSB0aGkgaG9hdCBkb25nIHRpbSBraWVtIHNl IGR1bmcgbGFpIHZhIGNvbmcgYm8gbGEga2hvbmcgDQp0aW0gdGhheS4gSGllbiBuYXkgY2h1bmcg dGEgY2h1YSBjbyBxdXkgZGluaCBjdSB0aGUgbGEgc2UgdG8gY2h1YyB0aW0ga2llbSBjYWMgbmFu IG5oYW4gDQptYXQgdGljaCB2aSB0aGllbiB0YWkgdHJvbmcga2hvYW5nIHRob2kgZ2lhbiBuaGF0 IGRpbmggbmFvIGRvIHRoaSBzZSBkdW5nIGxhaSwga2hvbmcgY28gcXV5IA0KZGluaCBsYSBjaGkg dGltIGtpZW0gdHJvbmcgMTAgbmdheSBoYXkgMjAgbmdheS4gVmllYyB0aWVwIHR1YyB0aW0ga2ll bSBoYXkga2hvbmcgcGh1IA0KdGh1b2MgdmFvIHR1bmcgdGluaCBodW9uZywgaG9hbiBjYW5oIGN1 IHRoZS4gQ2hhbmcgaGFuLCBiaWV0IGNoYWMgbmFuIG5oYW4gZGFuZyBiaSBtYWMgDQprZXQgdHJv bmcgZG9uZyBkYXQgZGEgdGhpIGR1dCBraG9hdCBwaGFpIGh1eSBkb25nIGx1YyBsdW9uZywgcGh1 b25nIHRpZW4gZGFvIGRhdCB0aW0gDQpjaG8gYmFuZyB0aGF5IG1vaSB0aG9pIiwgb25nIERpZXUg bm9pLiANCg0KVHJ1bmcgdHVvbmcgTmd1eWVuIFNvbiBIYSwgbmd1eWVuIENoYW5oIHZhbiBwaG9u ZyBVeSBiYW4gUXVvYyBnaWEgdGltIGtpZW0gY3V1IA0KbmFuIGNobyBiaWV0IHRoZW0sIGtoaSBu aGFuIGR1b2MgdGhvbmcgdGluIHZlIGNhYyB0cnVvbmcgaG9wIG1hdCB0aWNoIHZpIHRoaWVuIHRh aSwgVXkgDQpiYW4gUXVvYyBnaWEgdGltIGtpZW0gY3V1IG5hbiBzZSBkaWV1IGRvbmcgbHVjIGx1 b25nLCBwaG9pIGhvcCB2b2kgY2FjIGx1YyBsdW9uZyBraGFjIA0KbyBkaWEgcGh1b25nIHRoYW0g Z2lhIHRpbSBraWVtLiBLaGkgY2FjIGx1YyBsdW9uZyBkYSBubyBsdWMgaGV0IHN1YyBtYSB2YW4g a2hvbmcgdGltIA0KdGhheSBjYWMgbmFuIG5oYW4sIGNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgc2Ug dGhvbmcgdGluIHZhIHRodXlldCBwaHVjIGdpYSBkaW5oIG5ndW9pIA0KZ2FwIG5hbiBkb25nIHkg ZHVuZyB0aW0ga2llbS4gU2F1IGRvLCBjaGluaCBxdXllbiBkaWEgcGh1b25nIGNoaW5oIHRodWMg dGhvbmcgYmFvIGxhIA0Ka2hvbmcgdGltIHRoYXkgdmEgZHVuZyBjYWMgaG9hdCBkb25nIHRpbSBr aWVtLiANCg0KLQ0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vVFEta2hhaS10aGFjLXNvbmct TWUtS29uZy12YS1uZ3V5LWNvLWdpZXQtY2hldC1EQlNDTC8xMjIvMjg1MjU2Mi5lcGkNCg0KVGh1 IHR1b25nOiBUUSBraGFpIHRoYWMgc29uZyBNZSBLb25nIHZhIG5ndXkgY28gZ2lldCBjaGV0IERC U0NMDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOC8yMDEw MDcwOTAwNTE0NS5hc3B4IENoaSBOaGFuICAwOS8wNy8yMDEwIDA6NTEgDQoNClRodSB0dW9uZzog U29uZyBDdXUgTG9uZyBjaGkgY29uICJUaGF0IExvbmciDQoNCkR1b2kgdGFjIGRvbmcgY3VhIHR1 IG5oaWVuIHZhIGNvbiBuZ3VvaSwgc29uZyBDdXUgTG9uZyBoaWVuIGNoaSBjb24gNyBjdWEgZGFu ZyBob2F0IGRvbmcuLi4uIA0KDQoyIGN1YSBzb25nIGNoZXQgZGFuIC0gRG8gbGEgY3VhIEJhIExh aSB2YSBjdWEgQmF0IFNhYyAoQmFzc2FjKS4gSGFpIGN1YSBzb25nIG5heSBkYSANCm5ndW5nIGNo YXkgZG8gYm9pIHR1IHZhIHhheSBkdW5nIGNvbmcgdHJpbmggZ2lhbyB0aG9uZyB0aHV5IGxvaS4g RGF5IGxhIGtldCBsdWFuIGN1YSANClZpZW4gRGlhIGNoYXQgKFZpZW4gS2hvYSBob2MgdmEgQ29u ZyBuZ2hlIFZpZXQgTmFtKSBzYXUgcXVhIHRyaW5oIG5naGllbiBjdXUga2VvIGRhaSANCm8gY2Fj IGN1YSBzb25nIHZhIHZ1bmcgdmVuIGJpZW4gREJTQ0wgaG9uIDUwIG5hbS4gDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxNTAyMTYzNi5hc3B4 IFRvIFZhbiBUcnVvbmcgMTUvMDcvMjAxMCAyOjE2IA0KDQpUaHUgdHVvbmc6IE1lIEtvbmcgZGFu ZyBraGF0ICAgDQogIA0KWHVhIG5heSwgbmd1b2kgdGEgdGh1b25nIG5vaSBkZW4gdmllYyBwaG9u ZyBjaG9uZyBsdSwgbmh1bmcgdHJvbmcgbmh1bmcgbmFtIGdhbiBkYXkgDQpkbyB0YWMgZG9uZyBj dWEgY29uIG5ndW9pIHZhIGFuaCBodW9uZyBjdWEgYmllbiBkb2kga2hpIGhhdSwgbmd1b24gbnVv YyBzb25nIE1lIA0KS29uZyBkYW5nIGR1bmcgdHJ1b2Mgbmd1eSBjbyBjYW4ga2lldCBoYXkgbm9p IGNhY2gga2hhYyBzb25nIE1lIEtvbmcgZGFuZyBraGF0IGxhaSANCnRybyB0aGFuaCB2YW4gZGUg dHJvbmcgeWV1IHRyb25nIGNvbmcgdGFjIHF1YW4gbHkgdGFpIG5ndXllbiBudW9jLiANCg0KTmd1 eWVuIG5oYW4gZ2F5IGNhbiBraWV0IG5ndW9uIG51b2Mgc29uZyBNZSBLb25nIG5nb2FpIHlldSB0 byB0dSBuaGllbiBkbyB0YWMgZG9uZyANCmN1YSBiaWVuIGRvaSBraGkgaGF1LCBjb24gZG8gY2Fj IGhvYXQgZG9uZyBjdWEgY29uIG5ndW9pLiBUcnVuZyBRdW9jIGRhIHZhIGRhbmcgdGllbiANCmhh bmggeGF5IGR1bmcgOCBuaGEgbWF5IHRodXkgZGllbiBvIHRodW9uZyBsdXUgc29uZyBNZSBLb25n LiBUYWMgZG9uZyB4YXUgZG8gY2FjIA0KbmhhIG1heSB0aHV5IGRpZW4gbWFuZyBsYWkgbGEgbGFt IHRoYXkgZG9pIGNoZSBkbyBkb25nIGNoYXksIGx1b25nIHBodSBzYSwgdGh1eSBzYW4gdmEgDQpn YXkgeG9pIGxvIG8gaGEgbHV1LiANCg0KRGUgZG9uZyBiYW5nIHNvbmcgQ3V1IExvbmcgdmFuIGdp dSB2dW5nIHZhaSB0cm8gYW4gbmluaCBsdW9uZyB0aHVjIHF1b2MgZ2lhLCBub2kgc2FuIA0KeHVh dCB0aHV5IHNhbiB2YSBjYXkgYW4gdHJhaSBsb24gbmhhdCBjYSBudW9jLCBkb2kgaG9pIE5oYSBu dW9jIGNvIHN1IHF1YW4gdGFtIHRoaWNoIA0KZGFuZyB0cm9uZyBjaGllbiBsdW9jIGRhdSB0dSBj aG8gbm9uZyBuZ2hpZXAsIG5vbmcgdGhvbiB2YSBjaGluaCBzYWNoIGRvaSB2b2kgbmd1b2kgDQpu b25nIGRhbi4gUGhhdCB0cmllbiBiZW4gdnVuZywgdGFwIHRydW5nIHZhIG5hbmcgY2FvIGxhdSBk YWkgcGhvbiB2aW5oIGN1YSB4YSBob2kgdGhlbyANCnRob2kgZ2lhbiBraG9uZyB0aGUgdGFjaCBy b2kgbmd1b24gbnVvYyBiZW4gdnVuZy4gDQoNCkNodW5nIHRhIGRhbmcgcGhhaSB0cmFpIHF1YSBu aHVuZyBuZ2F5IG9pIGJ1YyBjaHVhIHR1bmcgY28uIEtob25nIHBoYWkgY2hpIHJpZW5nIHNvbmcg DQpNZSBLb25nIG1hIGNhYyBjb24gc29uZyBraGFjIG8gVmlldCBOYW0gdmFvIG11YSBraG8gZGV1 IGtoYXQsIGNvIG5ndXkgY28gY2FuIGtpZXQuIA0KSGllbiBuYXksIHZpZWMgcXVhbiBseSBsdXUg dnVjIHNvbmcgdmFuIGNvbiBjaG9uZyBjaGVvIGdpdWEgMiBCbyBUYWkgbmd1eWVuIHZhIE1vaSAN CnRydW9uZywgQm8gTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBub25nIHRob24uIERhIGRlbiBs dWMgQ2hpbmggcGh1IGNhbiBwaGFpIG5naGkgZGVuIA0KdmllYyBob3AgbmhhdCBtb3QgY28gcXVh biwgbGF5IHRodWMgdGUgdmUgY2FpIHRoaWVuIGN1b2Mgc29uZyBjdWEgbmd1b2kgZGFuIGxhbSB0 aHVvYyBkbyANCmhpZXUgcXVhIHF1YW4gbHkuIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi90aGVn aW9pL2hvc28vMjAwOS8wOC84NjI2NzYvIDEwOjQ0LCAxMC8wOC8yMDA5IChHTVQrNykNCg0KVGh1 IHR1b25nOiBDaGllbiBsdW9jIGJpIG1hdCBjdWEgVHJ1bmcgUXVvYyB2b2kgTWVrb25nIA0KDQpU cm9uZyBuaGlldSB0aGFwIG5pZW4sIGNoaWVuIGx1b2MgY3VhIFRydW5nIFF1b2MgbGEgdGh1YyBo aWVuIG5odW5nIGR1IGFuIHZlIHNvbmcgTWVrb25nIHRyb25nIGltIGxhbmcgdmEgYmkgbWF0LiBU cnVuZyBRdW9jIHhheSBkYXAgTWFud2FuICgxOTg2LTE5OTMpIG8gbW90IGtodSB2dWMgeGEgeG9p IHZhIGtob25nIHRoYW0gdmFuIGJhdCBrZSBudW9jIG5hbyB2dW5nIGhhIG5ndW9uLg0KDQooQ3Ug dHJpIHF1YW0gdGFtOiBjYWNoIGRhbmggInRodXkgY29uZyIgY3VhIFRydW5nIFF1b2MgZGEgY28g dHUgdGhvaSB0cnVuZyBjbyAtIGdheSBsdXQgbG9pLCBoYW4gaGFuLCBtYXQgbXVhLCBjaGV0IGNo b2MsIHRhbiBwaGEsIGh1eSBkaWV0IC0gIm5oYXQgdGh1eSwgbmhpIGhvYSIsIHZvIGN1bmcgdGFu IGJhbykuDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5MTIvU2EtbWFjLWdp dWEtc29uZy1Ib25nLTg4MzQwMy8gMDU6NTcsIDEwLzEyLzIwMDkgKEdNVCs3KQ0KDQpUaHUgdHVv bmc6ICdTYSBtYWMnIGdpdWEgc29uZyBIb25nDQoNClNvbmcgSG9uZyB0cm8gZGF5IG8gbXVjIGt5 IGx1YyBraG9uZyBjb24gbGEgbG9pIGNhbmggYmFvIHZlIHN1IGJpZW4gZG9pIGtoaSBoYXUuDQoN ClNvbmcgSG9uZyBjYW4gbmh1IHRoZSBuYXkgbGEgc3Uga2llbiBoeSBodXUgY3VhIGhvbiB0cmFt IG5hbSBxdWEuIFR1eSBuaGllbiBsb2kgY2FuaCBiYW8gdmUgc3Uga2hhYyBuZ2hpZXQgbmF5IHRo aSANCmRhIGR1b2MgY2hpbmggbm8gY2FuaCBiYW8gbyBuaHVuZyBuYW0gdHJ1b2MuDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyNy8yMDEwMDYyODAwMTEzNy5h c3B4IDI4LzA2LzIwMTAgMDoxMSANCg0KVGh1IHR1b25nOiBUaHV5IGRpZW4gSG9hIEJpbmggIm1h dCIgNTAwIHRyaWV1IG0zIG51b2MgIA0KICANCkNvIHkga2llbiBkYXQgdmFuIGRlIHZpZWMgdGhp ZXUgbnVvYyBjdWEgY2FjIG5oYSBtYXkgdGh1eSBkaWVuIHBoaWEgQmFjIGxhIGRvIGhvYXQgDQpk b25nIGN1YSBjYWMgbmhhIG1heSB0aHV5IGRpZW4gVHJ1bmcgUXVvYy4gVHJvbmcgbXVhIGtobyAy MDA5LTIwMTAsIGRvbmcgY2hheSB0cmVuIA0KY2FjIHNvbmcgdHUgVHJ1bmcgUXVvYyB2YW8gVk4g ZGF0IG11YyB0aGFwIG5oYXQgdHJvbmcgbGljaCBzdSwgdHJvbmcga2hpIG5oaWV1IHRob2kgDQpk aWVtIFRydW5nIFF1b2MgdGljaCBudW9jIHBoaWEgdGh1b25nIG5ndW9uIG5odW5nIGxhaSBraG9u ZyB4YSBudW9jIGR1bmcgdGhvaSBkaWVtIA0KcGhpYSBWTiBjYW4uIA0KDQpUaG9pIGdpYW4gdGlj aCBudW9jIGNoZW5oIGxlY2ggKHBoaWEgVHJ1bmcgUXVvYyBsYSBnaXVhIHRoYW5nIDcgdHJvbmcg a2hpIA0KVk4gbWFpIGN1b2kgdGhhbmcgOCkga2hpZW4gdmllYyB0aWNoIG51b2MgY2hvIGNhYyBo byB0aHV5IGRpZW4gdHJvIG5lbiBwaHUgdGh1b2MgdmEgZ2FwIA0Ka2hvIGtoYW4gaG9uLCBkYWMg YmlldCB0cm9uZyB0aG9pIGRpZW0ga2hvIGhhbiBoaWVuIG5heS4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAwOS8yMDEwMDIyNzIzNTcwNy5hc3B4IDI3LTAy LTIwMTAgMjM6NTcgDQoNClRodSB0dW9uZzogTWUgS29uZyBzdXkga2lldCANCg0KQ2FjIGRhcCB0 aHV5IGRpZW4gdHJlbiB0aHVvbmcgbmd1b24gc29uZyBNZSBLb25nIGRhbmcga2hpZW4gREJTQ0wg cGhpIG5oaWV1LCBzb25nIHJhY2ggY2hhbmcgY2hpdCBkb2kgbWF0IHZvaSBraG8gaGFuLiANCk5o dW5nIHRhYyBoYWkgZGVuIHNpbmggdGhhaSwgbW9pIHRydW9uZywgZG9pIHNvbmcuLi4gY3VhIG5n dW9pIGRhbiBEQlNDTCBkYW5nIGhpZW4gaGllbi4gDQoNCk11YSBraG8gaGFuIHRhbiBraG9jIA0K DQpUYWkgdGhpIHhhIFZpIFRoYW5oIChIYXUgR2lhbmcpLCBudW9jIG1hbiBkYSB4YW0gbmhhcCBz YXUgdmFvIGNhYyB4YSBUYW4gVGllbiwgSG9hIFRpZW4gdmEgSG9hIEx1dS4NCg0KVGFpIFRpZW4g R2lhbmcsIG51b2MgbWFuIGRhIHhhbSBuaGFwIHZhbyBkYXQgbGllbiB0cmVuIDM1IGttIA0KDQpU YWkgQmVuIFRyZSwgbnVvYyBtYW4gZGEgeGFtIG5oYXAgc2F1IHZhbyBkYXQgbGllbiB0cmVuIDIz IGttLiBYYW0gbWFuIGtlbyB0aGVvIHRpbmggdHJhbmcgdGhpZXUgbnVvYyBuZ290IG8gY2FjIHhh IA0KdmVuIGJpZW4gbmh1IFRoYW5oIFBodW9jLCBUaHVhIER1YywgVGhvaSBUaHVhbiAoaHV5ZW4g QmluaCBEYWkpOyBwaGFpIGRpIGRvaSBoYXkgbXVhIG51b2MgbmdvdCB2b2kgZ2lhIDIuMDAwIGRv bmcvNDAgbGl0IHZlIHN1IGR1bmcuIA0KDQpUYWkgQ2FuIFRobywgeGFtIG1hbiBkYSBsYW4gc2F1 IHZhbyBodXllbiBWaW5oIFRoYW5oLiANCg0KVGFpIEFuIEdpYW5nLCBuaGlldSBrZW5oIG5vaSBk b25nIGdhbiBuaHUgdHJvIGRheTsgbmd1b2kgZGFuIHZ1bmcgbnVpIFRyaSBUb24sIFRpbmggQmll biBwaGFpIGRpIG11YSBudW9jIHNhY2ggdm9pIGdpYSAyLjAwMCBkb25nLzMwIGxpdC4gDQoNCk1l IEtvbmcgZGFuZyBiaSAic2F0IHRodW9uZyINCg0KVGhlbyB0aWVuIHNpIER1b25nIFZhbiBOaSwg R2lhbSBkb2MgVHJ1bmcgdGFtIFRodWMgbmdoaWVtIGRhIGRhbmcgc2luaCBob2MgSG9hIEFuIC0g RGFpIGhvYyBDYW4gVGhvLCB2aWVjIHhheSBjYWMgZGFwIA0KdGh1eSBkaWVuIGRhIGtlbyB0aGVv IG5oaWV1IHRhYyBkb25nIG5odSBsdSB2ZSBtdW9uIGhvbiBuaHVuZyBrZXQgdGh1YyBzb20gaG9u LiANCg0KVGllbiBzaSBOaSBjaG8gcmFuZyB2aWVjIGNhYyBkYXAgdGh1eSBkaWVuIHRodW9uZyBu Z3VvbiB0cnUgbnVvYywga2hvbmcgY2hvIGJpZXQgbHVjIG5hbyB4YSBudW9jIGx1YyBuYW8ga2hv bmcsIA0KY2FuZyBnYXkga2hvIGtoYW4gdHJvbmcgbXVhIGtobyBoYW4uIA0KDQpIYSBsdXUgbmd1 eSBraG9uDQoNCkNhYyBudW9jIHZ1bmcgaGEgbHV1IGRhbmcgbG8gbGFuZyB2ZSBuaHVuZyB0YWMg ZG9uZyB0aWV1IGN1YyB4YXkgcmEga2hpIGRvbmcgY2hheSBkdW9pIG5heSBob2FuIHRvYW4gcGh1 IHRodW9jIA0KdmFvIHF1eSB0cmluaCB2YW4gaGFuaCBjdWEgY2FjIGRhcCB0aHV5IGRpZW4gdHJl biB0aHVvbmcgbHV1IHNvbmcgTWUgS29uZy4gDQoNCk5ldSBnYXAgbmFtIGx1IGxvbiwga2hpIGRp bmggbHUgdmUgZ2FwIGhvIGRhIGRheSBudW9jLCBraG9uZyBjb24ga2hhIG5hbmcgY2F0IGx1LCBj byB0aGUgZ2F5IGx1IGxvbiBob24gY2hvIGhhIGx1dS4gDQpDb24gdmFvIG5odW5nIG5hbSBsdSB2 dWEgdmEgbmhvLCBwaGlhIGhhIGx1dSAtIGRhYyBiaWV0IGxhIERCU0NMIC0gc2UgY28gbmh1bmcg YW5oIGh1b25nIG5oYXQgZGluaCB0cm9uZyBjYSBtdWEgbHUgdmEgbXVhIGtpZXQuDQoNCmh0dHA6 Ly90aW5uaGFuaHZpZXRuYW0ubmV0L3Rpbi10dWMveGEtaG9pL3RodS10dW9uZy1uZ3V5ZW4tdGFu LWR1bmctaG9pLWtpZW4tdG9uZy1iaS10aHUtY2h1LXRpY2gtdHJ1bmctcXVvYy1oby1jYW0tZGFv LzIzNjk1NCAxODo1NiAzMC8wNC8yMDEwIFRUWFZOIChUaWVuIFBob25nKSANCg0KT25nIFRodSB0 dW9uZyBOZ3V5ZW4gVGFuIER1bmcgdGhhbSBUcnVuZyBxdW9jIA0KDQooQW5oIGNodXA6IG9uZyBO Z3V5ZW4gVGFuIER1bmcgdmEgIG9uZyBIbyBDYW0gRGFvIC0gQW5oOiBUVFhWTi4pDQoNCk9uZyBI byBDYW0gRGFvIGhvYW4gbmdoZW5oIHZhIGRhbmggZ2lhIGNhbyB2aWVjIFRodSB0dW9uZyBOZ3V5 ZW4gVGFuIER1bmcgdGhhbSANClRydW5nIFF1b2MgdmEgdGhhbSBkdSBMZSBLaGFpIG1hYyBUcmll biBsYW0gVGhlIGdpb2kgVGh1b25nIEhhaSwgdGhlIGhpZW4gQ2hpbmggDQpwaHUgVmlldCBOYW0g dmEgY2EgbmhhbiBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHJhdCBjb2kgdHJvbmcgdmEgdW5n IGhvIFRydW5nIFF1b2MgdG8gY2h1YyBzdSBraWVuIG5heS4gDQoNCkhhaSBiZW4gbmhhbiBtYW5o IHkgbmdoaWEgY3VhIE5hbSBIdXUgbmdoaSBWaWV0IC0gVHJ1bmcgMjAxMCwgbmhhdCB0cmkgdGll cCB0dWMgYXAgDQpkdW5nIG5oaWV1IGJpZW4gcGhhcCB0aGlldCB0aHVjIG5oYW0gdGh1YyBkYXkg cXVhbiBoZSBob3AgdGFjIGdpdWEgaGFpIG51b2Mga2hvbmcgDQpuZ3VuZyBwaGF0IHRyaWVuLCBk aSB2YW8gY2hpZXUgc2F1IHRoZW8gcGh1b25nIGNoYW0gMTYgY2h1IHZhIHRpbmggdGhhbiA0IHRv dC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0MS8yMDEw MTAwNzAwMzQ0My5hc3B4IEhpZW4gQ3UgMDcvMTAvMjAxMCAwOjM0IA0KDQpUcnVuZyBRdW9jIGJh dCBnaXUgdGF1IGNhIFZpZXQgTmFtIHZhIGRvaSBub3AgNzAuMDAwIG5oYW4gZGFuIHRlICANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMyLzIwMTAwODA2MDAx ODEyLmFzcHggMDYvMDgvMjAxMCAwOjE4IA0KDQpUcnVuZyBRdW9jIHRpZW4gaGFuaCBraGFvIHNh dCBkaWEgY2hhbiB0YWkga2h1IHZ1YyBkYW8gVHJpIFRvbiAodGh1b2MgcXVhbiBkYW8gSG9hbmcg U2EpLCBzYW4gbGFwLCBtbyByb25nIGRhbyBUcmkgVG9uIA0KDQpodHRwOi8vdml0aW5mby5jb20u dm4vTU11Y3Rpbi9RdWFuc3UvVEhTSy9MQTc3MTIxL2RlZmF1bHQuaHRtbCAyNy8wNS8yMDEwLCAy Mjo0NyhHTVQrNykgQ2FvIFBob25nICh0aGVvIFRIWCkNCg0KVHJ1bmcgUXVvYyBuZ2FuZyBuaGll biBsYXAgZGF0IHRyYW0gZGllbiB0aG9haSBkaSBkb25nIHRyZW4gZGFvIENodSBUaGFwIHRodW9j IHF1YW4gZGFvIFRydW9uZyBTYSBjdWEgVmlldCBOYW0gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxMjA0MjMwOC5hc3B4IDEyLzA3LzIwMTAg NDoyMyANCg0KVHJ1bmcgUXVvYyB0aG9uZyBxdWEgIkN1b25nIHlldSBxdXkgaG9hY2ggeGF5IGR1 bmcgdmEgcGhhdCB0cmllbiBkYW8gZHUgbGljaCBxdW9jIHRlIA0KSGFpIE5hbSAyMDEwLTIwMjAi IC0gZHVhIEhvYW5nIFNhIHZhIFRydW9uZyBTYSB2YW8gcXV5IGhvYWNoIHhheSBkdW5nIHZhIHBo YXQgdHJpZW4gDQpkYW8gZHUgbGljaCBxdW9jIHRlIEhhaSBOYW07IHZpIHBoYW0gbmdoaWVtIHRy b25nIGNodSBxdXllbiBjdWEgVk4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8y MDEwMDUvVGF1LWNhLVZpZXQtTmFtLWxhaS1iaS10YXUtVHJ1bmctUXVvYy1iYXQtZ2l1LTkwODI2 MC8xNDo1MywgMDYvMDUvMjAxMCAoR01UKzcpDQoNClRhdSBjYSBWaWV0IE5hbSBsYWkgYmkgdGF1 IFRydW5nIFF1b2MgYmF0IGdpdSAgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8y MDEwLzA2LzNCQTFDRTE0LyAxMi82LzIwMTAsIDA5OjM1IEdNVCs3DQoNCiJUYXUgbGEiIGxhaSBk YW0gY2hpbSB0YXUgZGFuaCBjYSBWaWV0IE5hbSANCiANClJhbmcgc2FuZyAxMi82LzIwMTAgdGF1 IGRhbmggY2EgY3VhIHRodXllbiB0cnVvbmcgVm8gWHVhbiBUaWVuIGN1bmcgMTcgbmd1IGRhbiBk YW8gDQpMeSBTb24gKFF1YW5nIE5nYWkpIHRyZW4gZHVvbmcgaGFuaCBuZ2hlIHR1IFRydW9uZyBT YSB2ZSB2dW5nIGJpZW4gQmluaCBEaW5oIGRhIGJpIA0KdGF1IGxhIGRhbSBjaGltIHJvaSBibyBj aGF5Lg0KDQpUaGVvIGNhYyBuZ3UgZGFuIGdhcCBuYW4sIHNhdSBwaGllbiBiaWVuIG8gVHJ1b25n IFNhIHRybyB2ZSwgaG8gZGFuaCBiYXQgZHVvYyBraG9hbmcgDQoyMCB0YW4gdGh1eSBzYW4sIGR1 IGtpZW4gdmUgZGVuIGRhbyBMeSBTb24gdmFvIGNoaWV1IDEyLzYgZGUgYmFuIGNhIHZhIG5naGkg bmdvaSBjaHVhbiANCmJpIGFuIFRldCBEb2FuIG5nbyAobXVuZyA1LzUpLiBUdXkgbmhpZW4sIGto b2FuZyAyaCBzYW5nIG5heSwgdGF1IHZlIGRlbiBjYWNoIGRhbyANCk5ob24gQ2hhdSAoQ3UgTGFv IFhhbmgpIDEyIGhhaSBseSB0aGkgYmkgdGF1IGxhIGRhbSBjaGltLiByb2kgYm8gY2hheS4NCg0K aHR0cHM6Ly9hbmxlMjAud29yZHByZXNzLmNvbS8yMDEwLzA1LzMxLzQxNjEvIE5ndXllbiBUcm9u ZyBWaW5oIDMxLzA1LzIwMTAgDQoNClNhbyBwaGFpIGhhIG1pbmggZGVuIHRoZT8gDQoNClRyZW4g dGhlIGdpb2kgZ2l1YSBjYWMgcXVvYyBnaWEgYmF0IGtlIGxvbiwgbmhvLCBnaWF1IG5naGVvIGRl dSBiaW5oIGRhbmcuIFRyb25nIHF1YW4gaGUgDQpnaWFvIGRpY2ggdmEgdGhhbSB2aWVuZyB4YSBn aWFvIHBoYWkgZG9pIGRhbmcgKG5nYW5nIGNhcCkuIENodSB0aWNoIHRoYW0gdmEgaG9pIGRhbSB2 b2kgDQpUb25nIHRob25nIGhvYWMgbmd1b2MgbGFpLCB0dXkgdGhlbyB0ZW4gZ29pIG5ndXllbiB0 aHUgY3VhIHR1bmcgbnVvYzsgVGh1IHR1b25nIGRvbiANCnRpZXAgdmEgaG9pIGRhbSB2b2kgbmhh dTsgQm8gdHJ1b25nIHZvaSBCbyB0cnVvbmcuDQoNClRyb25nIGNodXllbiB0aGFtIFRydW5nIFF1 b2MgbW9pIHJvaSBjdWEgQm8gdHJ1b25nIFF1b2MgcGhvbmcgUGh1bmcgUXVhbmcgVGhhbmggDQp0 aGkgQm8gdHJ1b25nIFF1b2MgcGhvbmcgVHJ1bmcgUXVvYyBkb24gdmEgaG9pIGRhbSwgY29uIENo dSB0aWNoIG51b2MsIFRodSB0dW9uZyANClRydW5nIFF1b2MgbGEgY2FwIGNhbyBob24gY28gdGll cCBoYXkga2hvbmcgY29uIHR1eSBoby4gVGFpIHNhbyBjbyBjaHV5ZW4gUGhvIENodSB0aWNoIA0K UXVhbiB1eSBUdSBUYWkgSGF1IHRpZXAgdmEgQm8gdHJ1b25nIFBodW5nIFF1YW5nIFRoYW5oIHBo YWkgYmFvIGNhbyB2b2kgVHUgVGFpIA0KSGF1PyBOZW4gbmhvIFR1IFRhaSBIYXUgY2hpIGxhIGRv bmcgY2FwIChuZXUga2hvbmcgbm9pIGxhIGR1b2kgY2FwKSB2b2kgb25nIFBodW5nIA0KUXVhbmcg VGhhbmguIFRydW9jIGRheSBvIG51b2MgdGEgY2FwIERhbmcgdHJvbmcgcXVhbiBkb2kgY2FvIG5o YXQgY3VuZyBnb2kgbGEgUXVhbiANCnV5IFRydW5nIHVvbmcuIEJpIHRodSB0aHUgbmhhdCBob2Fj IFRvbmcgYmkgdGh1IGtpZW0gQmkgdGh1IFF1YW4gdXksIFV5IHZpZW4gQm8gDQpDaGluaCB0cmkg Qm8gdHJ1b25nIFF1b2MgcGhvbmcgbGEgUGhvIGJpIHRodSBRdWFuIHV5IFRydW5nIHVvbmcuIFNh dSB0YSB0aGF5IGRvaSBnb2kgDQpjYXAgRGFuZyBjYW8gbmhhdCB0cm9uZyBxdWFuIHN1IGdvaSBs YSBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyB2YW4gVG9uZyBiaSB0aHUgDQpEYW5nIGtpZW0g QmkgdGh1IGRhbmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nLCBCbyB0cnVvbmcgUXVvYyBwaG9uZyBQ aHVuZyBRdWFuZyANClRoYW5oLCBVeSB2aWVuIEJvIENoaW5oIHRyaSBsYSBQaG8gYmkgdGh1IERh bmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nLCBuZ2FuZyBjYXAgdm9pIA0KUGhvIGNodSB0aWNoIHF1 YW4gc3UgdHJ1bmcgdW9uZyBUcnVuZyBRdW9jIChjaGkgbGEgdGVuIGdvaSBraGFjIG5oYXUpLiBC byB0cnVvbmcgDQpQaHVuZyBRdWFuZyBUaGFuaCBjb24gYmlldSB0aGkgdHJ1b2Mgb25nIFR1IGxv aSBiaWV0IG9uIHN1IGdpdXAgZG8gY3VhIFRydW5nIFF1b2Mgdm9pIA0KbG9pIGxlIHJhdCBkYW0g ZGEgdGhhbmgga2luaC4gDQoNCk5hbSAxOTc1IHNhdSBuZ2F5IHRvYW4gdGhhbmcgY3VhIG51b2Mg dGEsIGtoaSBsYW0gRGFpIHN1IG8gQmFjIEtpbmgsIHRydW9jIGN1b2MgbWl0IA0KdGluaCBsb24g byBxdWFuZyB0cnVvbmcgVGhpZW4gQW4gTW9uIHRvaSBjdW5nIGRhIGJheSB0byBsb25nIGJpZXQg b24gY3VhIE5oYSBudW9jIHZhIA0KbmhhbiBkYW4gdGEgZG9pIHZvaSBzdSBnaXVwIGRvIHRvIGxv biBjdWEgRGFuZyBDb25nIHNhbiwgQ2hpbmggcGh1IHZhIG5oYW4gZGFuIFRydW5nIA0KUXVvYyB0 cm9uZyBjdW9jIGtoYW5nIGNoaWVuIGNob25nIFBoYXAgdmEgY2hvbmcgTXkgY3VhIG5oYW4gZGFu IFZpZXQgTmFtLCB2b2kgDQpuaHVuZyBsb2kgbGUgY2hhbiB0aGFuaCB2YSB0aGFtIHRoaWV0IChk YXUgYmlldCByYW5nIHZpZWMgZ2l1cCBkbyB0YSBkYW5oIE15IGN1bmcgY28gbG9pIA0KaWNoIGN1 YSBUcnVuZyBRdW9jKS4gTmh1bmcgZGVuIG5hbSAxOTc5IERhbmcgVGlldSBCaW5oIGh1eSBkb25n IG1heSBxdWFuIGRvYW4gDQpzYW5nIGRhbmggdGEsIHRhbiBwaGEgYm9uIHRpbmggYmllbiBnaW9p IGN1YSB0YSB2YSBnaWV0IGhhaSBkb25nIGJhbyB0YSwgdGhpIHR1IFRydW5nIFF1b2MgDQpkYSBw aHUgZGluaCBhbiB0aW5oIGN1YSBjaHVuZyB0YSBkb2kgdm9pIGhvLCBsYW0gc2FvIHRvaSBjbyB0 aGUgY2FtIG9uIGR1b2MgbnVhPyBOb2kgZGF1IA0KMTk3OSBsdW9uIG5ob2kgdHJvbmcgbG9uZyB0 b2kuIENoYWMgY3VuZyBraG9uZyBkZW4gbm9pIHRyb25nIGxvbmcgQm8gdHJ1b25nIFBodW5nIA0K UXVhbmcgVGhhbmgga2hvbmcgY28gY2h1dCBkYXUgbmFvLg0KDQpUb2kgbGFpIG5naGkgZGVuIG5o dW5nIGNodXllbiB0aGFtIG5oaWV1IHRpbmgsIHRoYW5oIFRydW5nIFF1b2MgY3VhIFRodSB0dW9u ZyANCk5ndXllbiBUYW4gRHVuZy4gS2hpIHRoaSBUaHUgdHVvbmcgaG9pIGRhbSB2b2kgQ2h1IHRp Y2ggdGluaCwga2hpIHRoaSBsYW0gdmllYyB2b2kgUGhvIA0KYmkgdGh1Li4uIE5ldSB0b2kga2hv bmcgbmhhbSB0aGkgbW9pIGRheSwga2hpIHRoYW0gVHJpZXQgR2lhbmcsIFRodSB0dW9uZyBkdW9j IFBobyANCmNodSB0aWNoIENoaW5oIGhpZXAgdGllcCAobmh1IFBobyBDaHUgdGljaCBNYXQgdHJh biBUbyBxdW9jIGJlbiB0YSkuIFRoYXQga2hvbmcgYmluaCANCnRodW9uZyEgRHUgY28ga2VtIGNv aSBkaSBjaGFuZyBudWEgdGhpIG9uZyBOZ3V5ZW4gVGFuIER1bmcgY3VuZyBkdW9uZyBkdW9uZyBs YSANClRodSB0dW9uZyBjdWEgbW90IG51b2MuIFRhaSBzYW8gbGFpIHR1IGhhIG1pbmggeHVvbmcg bmdhbmcgaGFuZyB2b2kgbW90IHRpbmggY3VhIA0Kbmd1b2kgdGE/IQ0KDQpUb2kgbGFtIERhaSBz dSBudW9jIHRhIG8gQmFjIEtpbmggdHUgbmFtIDE5NzQtMTk4Ny4gRG8gbGEgdGhvaSBreSBxdWFu IGhlIGhhaSBudW9jIA0KeGF1IGRlbiBoZXQgbXVjLiBWaSBsYSBEYWkgc3UgbGF1IG5hbSBuZW4g dG9pIHRybyB0aGFuaCAiVHJ1b25nIGRvYW4gbmdvYWkgZ2lhbyIgKHRoZW8gDQpxdXkgdW9jIHF1 b2MgdGUpLiBDbyBuaHVuZyBjaHV5ZW4gbnVvYyBjaHUgbmhhIHRvIGNodWMgZGkgdGhhbSBxdWFt IGNhYyBkaWEgcGh1b25nLCANCmhvIGtob25nIG11b24gY2hvIHRvaSB0aGF5IG1hdCBjYWMgRGFp IHN1IHBoYXQgYmlldSB5IGtpZW4gdm9pIHR1IGNhY2ggVHJ1b25nIGRvYW4sIA0KbXVvbiBEYWkg c3Uga2hhYyBub2kgdGhheSwgdG9pIG5oYXQgZGluaCBraG9uZyBjaGl1LCBjdW9pIGN1bmcgaG8g ZHVvaSBseSBwaGFpIHRob2kuDQoNClRvaSB0aHVvbmcgZHVvYyBtb2kgbGVuIEJvIE5nb2FpIGdp YW8gZ2FwIGxhbmggZGFvIEJvIE5nb2FpIGdpYW8gY3VhIGhvIGRlIG5naGUgaG8gDQpwaGFuIGRv aSB2aWVjIG5heSB2aWVjIGtpYSwgdG9pIHBoYWkgdHJhbmggY2FpIHZvaSBobywgbHVvbiBsdW9u IHRvaSBsYSBuZ3VvaSBub2kgZHVvYyBsb2kgDQpjdW9pIGN1bmcsIGtob25nIHRoZSBkZSBuaHVj IHF1b2MgdGhlLiANCg0KR2lvIGRheSwgdHJ1b2MgaGFuaCB4dSBjdWEgY2FjIHZpIG5odSB0cmVu LCB0b2kga2hvbmcgY29uIGJpZXQgbm9pIHRoZSBuYW8sIGNoaSBtdW9uIGNodWkgeHVvbmcgZGF0 LiANCg0KaHR0cDovL3d3dy50aG9uZ2x1YW4ub3JnL3ZuL21vZHVsZXMucGhwP25hbWU9TmV3cyZm aWxlPWFydGljbGUmc2lkPTUyNzcgUGhvbmcgVHJhbiAxMS8xMS8yMDEwIDAwOjUzOjA4IEVTVA0K DQpPbiBnaWEgZ2FwIG9hbiBnaWENCg0KTmhhbiBkaXAgVGh1YSB0dW9uZyB0aGllbiB0cmlldSBz YW5nIHh1IEFuIE5hbSBYYSBOZ2hpYSBob3AgQS1TYW0gKEFTRUFOKSwgVGUgDQp0dW9uZyBOZ3V5 ZW4gVGFuIER1bmcgZHVvYyBkaXAgYmFpIGtpZW4gVGh1YSB0dW9uZyBPbiBHaWEgQmFvIGN1YSBu dW9jIGxhbmcgZ2llbmcgDQoiaHV1IChiYXQpIGhhbyIgbmVuIGhpIGhhIGhpIGh1bmcgbmh1IGxh biB0aGF5IHBoYW8uDQoNClRlIHR1b25nIG51b2MgdGEgZGFuZyBiaSBzYXkgc29uZyBib2kgY29u IHRodXllbiBWaW5hLXNpbiwgY2hvbmcgY2hhbmggbmh1IGdhaSBraG9uZyANCmNob25nIG1hIGNo dWEuIE9uIFRodWEgdHVvbmcgZHVvYyBUZSB0dW9uZyB0YSBtb2kgdmFvIGRpbmggZGUgY2F1IHZp ZW4gdHUgZHV5LiANCg0KU2F1IGNoYXUgQm8gRGFvIG15IHR1dSBkZSB2aW5oIGRhbmggdGluaCBu Z2hpYSAiTXVvaSBTYXUgQ2h1IFZhbmciLCBUZSB0dW9uZyBudW9jIA0KdGEgbW9pIHJ1dCByZSBr aW5oIHRodWEgVGh1YSB0dW9uZyAibnVvYyBsb24iOg0KDQotIFRodWEgbmdhaSBkYW5nIGNodW5n IHRvaSByYXQgbG8gbmdhaSB2ZSB2aWVjIG5nYWkgdHV5ZW4gYm8gdm9pIFRheSBwaHVvbmcgbGEg bmdhaSBzZSANCmNhaSB0byBjaGluaCB0cmkuIFRoYXQgbmd1eSwgdGhhbSBjaGkgbmd1eSBjaG8g bnVvYyBjaHVuZyB0b2kuIENodW5nIHRvaSBsdW9uIGx1b24gbGF5IA0KY2h1IHRydW9uZyBkdW9u ZyBsb2kgY3VhIFRydW5nIFF1b2MgbGFtIGtpbSBjaGkgbmFtLiBOZXUgVHJ1bmcgUXVvYyBkb2kg bW9pIGNoaW5oIA0KdHJpIHRoaSBjaHVuZyB0b2kgcGhhaSB0aGVvIGd1b25nIG5odW5nIG5nYXQg bW90IG5vaSBkYXQgbnVvYyBjaHVuZyB0b2kgYmF5IGdpbyBuaHUgbW8gDQpjYW5oIGhlLCBib24g cGhhbiBkb25nIGNoaSBjaG8gaGUgbW8gY3VhIGNoaW5oIHRyaSBsYSB1YSBsZW4gZHVvaSBjaHVu ZyB0b2kgdmUgdnVvbi4NCg0KVGh1YSB0dW9uZyBudW9jIGxvbiBjdW9pIG5nYXQgbmdoZW86IA0K DQotIFRlIHR1b25nIHRoYXQgdGhhIHZheSB0aGkgbGFtIHNhbyB0cmkgcXVvYyBkdW9jLiBDaHVu ZyB0b2kgbXVvbiBrZSAiUnVuZyBNbyIgY3VhIA0KVGFvIFRoYW8gZGUgcnUgbmd1IGRhbiBjaHVu ZyB0aG9pLiBUZSB0dW9uZyBjbyBiaWV0IGNodXllbiBUYW8gVGhhbyB2ZSBydW5nIG1vIGRlIA0K cXVhbiBzaSBxdWVuIGNvbiBraGF0IGtob25nPw0KDQotIERhISBUaHVhIG5nYWksIG5oYW4gZGFu IG51b2MgdG9pIHR1IHZ1YSBjaGkgZGFuIGRldSB0aHVvYyBsb25nIHN1IFRydW5nIEhvYS4gUGhp bSANClRhbSBRdW9jIENoaSB0aGkgaG9jIHNpbmggbWF1IGdpYW8gZGEgcGhhaSBjb2kgcm9pLg0K DQotIEhhbyBuaGFuISBRdXkgcXVvYyBkdW5nIGxhIGxhbmcgZ2llbmcgIk11b2kgU2F1IENodSBW YW5nIiBjdWEgVHJ1bmcgUXVvYy4NCg0KRHVvYyBsb2kgbmh1IGNvaSB0YW0gbG9uZyAocm9pIG5o dSB0byB2byksIFRlIHR1b25nIG51b2MgdGEgYmVuIG1hbmggZGFuIHRodWE6DQoNCi0gVGh1YSBU aHVhIHR1b25nIHZpZWMga2hhaSB0aGFjIGJhdXhpdGUgbyBjYW8gbmd1eWVuIG51b2MgdG9pIGRh bmcgZGF0IGRhbmcgY2h1bmcgdG9pIA0KdmFvIHRoZSBtb3QgbWF0IG1vdCBjb24uIE5ldSB0aWVw IHR1YyBraGFpIHRoYWMgdGhpIGRhbiBzZSBub2kgbG9hbiBtYXQuIFhpbiBuZ2FpIGNobyANCnBo ZXAgY2h1bmcgdG9pIHRhbSBuZ3VuZywga2hpIG5hbyB0aW5oIGhpbmggbmd1b2kgZGkgdGhpIGNo dW5nIHRvaSBsYWkgZGUgcXV5IHF1b2MgdGllcCANCnR1Yywgbmh1IHZheSBkdW9jIGtob25nIGEu IA0KDQpUaHVhIHR1b25nIGN1b2kgZ2FuOg0KDQotIE5nYWkgY28gYmlldCBjYXUgbm9pICJOaGF0 IG5nb24ga3kgaHVhIHR1IG1hIG5hbiB0cnV5IiBjdWEgbmd1b2kgVHJ1bmcgSG9hIGtob25nPyAN CkNodW5nIHRvaSBkYSBibyByYSBoYW5nIHR5IGRvbGxhciBzYW0gc3VhIG1heSBtb2MsIHhheSBk dW5nIGNvbmcgdHJpbmgsIGNodWEga2UgaGFuZyANCmNodWMgdHJpZXUgZG9sbGFyIGNobyBsYW5o IGRhbyBkYW5nIGN1YSBuZ2FpIGRlIFRydW5nIFF1b2MgdHJ1bmcgdGhhdS4gTmV1IHF1eSBxdW9j IGJvaSANCnRodW9uZyBkYXkgZHUgdGhpIGNodW5nIHRvaSBiYW5nIGxvbmcgbmdheS4NCg0KLSBY aW4gbmdhaSB0aG9uZyBjYW0sIEdEUCBjdWEgY2h1bmcgdG9pIGNoaSBjbyAxMDAgdHkgZG9sbGFy ICwgbGF5IGRhdSByYSB2YWkgdHkgZGUgYm9pIHRodW9uZy4NCg0KLSBHRFAgY2hpIGNvIDEwMCB0 eSBuaHVuZyBsb2kgbmh1YW4gbmdvYWkgc28gc2FjaCBjdWEgY2FjIG5nYWkgY2EgbWF5IHRyYW0g dHkga2lhIG1hLiANCg0KLSBPaSEgb2FuIGNobyBjaHVuZyB0b2kgcXVhLg0KDQotIEFpIGxhIG9h biBnaWEgdGhpIFRydW5nIFF1b2MgYmlldCByb2kuIFRoZSBuZ2FpIGR1b2MgY2hpYSBiYW8gbmhp ZXUgdHJvbmcgdnUgcGhhIHNhbiBWaW5hc2hpbiBuaGk/DQoNClRlIHR1b25nIG51b2MgdGEgbGFj IGRhdSBxdWF5IHF1YXksIG5vaSBjaGFuZyBsZW4gbG9pLCBuaHUgbmd1b2kgbWFjIG5naGVuIHRy YWkgYm8gaG9uLiBUaHVhIHR1b25nIG51b2MgbG9uIHZvIHZhaSBUZSB0dW9uZyBhbiB1aToNCg0K LSBOZ2FpIGN1IGFuIHRhbSwgVHJ1bmcgUXVvYyBraG9uZyBiYW8gZ2lvIHF1YXkgbHVuZyBsYWkg dm9pIG5odW5nIG51b2MgbmhhdCBkYSB0cnVuZyANCnRoYW5oLiBOZXUgcXV5IHF1b2Mga2hvbmcg dmUgaHVhIHZvaSBkZSBxdW9jIE15IGNob25nIGxhaSBUcnVuZyBRdW9jIHRoaSBzb25nIGNvIHRo ZSANCmNhbiBudWkgY28gdGhlIG1vbiBuaHVuZyB0aW5oIGxhbmcgZ2llbmcgIk11b2kgU2F1IENo dSBWYW5nIiBjdWEgaGFpIG51b2MgY2h1bmcgdGEgDQpraG9uZyBiYW8gZ2lvIHBoYWkgbGF0LiBI YWkgbnVvYyBDYW8gTWllbiB2YSBMYW8sIGFuaCBlbSBjdWEgY2h1bmcgdG9pIGRhIGh1YSBraG9u ZyANCmJhbyBnaW8gdGhhbiB0aGllbiB2b2kgZGUgcXVvYyBNeS4gTmdhaSBjdSBkZSBjaHVuZyB0 b2kga2hhaSB0aGFjIGJhdXhpdGUgdHJlbiBjYW8gDQpuZ3V5ZW4gcXV5IHF1b2MgdGhpIG11b24g Y28gZHVvbmcgY2FvIHRvYyBsYSBjbyBjYW8gdG9jLCBtdW9uIGNvIGRhdCBoaWVtIGxhIGNvIGRh dCANCmhpZW0uIFRydW5nIFF1b2Mga2hvbmcgdGhpZXUgZ2kgY2EuIE5ldSB2aSBraGFpIHRoYWMg YmF1eGl0ZSBtYSBkYW4gY2h1bmcgbm9pIGxvYW4gdGhpIA0KY2h1bmcgdG9pIHNlIHZpZW4gdHJv IHZ1IGtoaSwgcXVhbiB0cmFuZyBxdWFuIGR1bmcsIGtlIGNhIHF1YW4gZG9pIG5odSBob2kgY2h1 bmcgdGEgZGFuaCANCk15IGF5Lg0KDQotIFhpbiBkYSB0YSBxdXkgcXVvYy4NCg0KLSBUaGUgVmll dCBOYW0gY29uIG5ob20gbmdvIGJpZW4gTmFtIEhhaSBjdWEgVHJ1bmcgUXVvYyBudWEga2hvbmc/ DQoNCi0gVGh1YSBuZ2FpIHZ1bmcgYmllbiBsdW9pIGJvIGN1YSBUcnVuZyBRdW9jIGxpZW0gaGV0 IGJpZW4gY3VhIGNodW5nIHRvaSwgaGFuZyB0cmlldSANCm5ndSBkYW4gbnVvYyB0b2kgbGF5IGdp IG1hIHNvbmc/DQoNCi0gQ2FjIG5nYWkgcGhhaSBuaG8gTmFtIEhhaSBsYSBxdXllbiBsb2kgY290 IGxvaSBjdWEgVHJ1bmcgUXVvYyBuZW4gbGEgdnVuZyBiaWVuIGJhdCANCmtoYSB0cmFuaCBjaGFw LiBEYWkgaG9pIGRhbmcgMTEgY3VhIG5nYWkgc2FwIHRvaSByb2kuIFRvaSBkdW9jIGNodSB0aWNo IEhvIENhbSBEYW8gY2hpIA0KdGhpIHRoZW8gc2F0IGRhaSBob2kgY3VhIGNhYyBuZ2FpIGRlIHVu ZyBobyBuaHVuZyBkb25nIGNoaSB0cnVuZyBoaWV1IHZvaSB0aW5oIGh1dSBuZ2hpIA0KY3VhIGhh aSBudW9jIGNodW5nIHRhLiBUaG9pIGNodW5nIHRhIHRyYW8gZG9pIG5odSB2YXkgY3VuZyB0aGFu ZyBsb2kgbGFtIHJvaS4gWGluIGtpZXUgdHUgDQpuZ2FpLg0KDQpUZSB0dW9uZyBudW9jIHRhIHRp ZW4ga2hhY2ggcmEgdmUgdHJvbmcgbG9uZyBudWEgbXVuZyBudWEgbG8uIE11bmcgdmkgZHVvYyB0 aHVhIHR1b25nIA0KdGhpZW4gdHJpZXUgInR1IHZhbiIgbXV1IGtlIHBob25nIHRoYW4sIGxvIHZp IGtob25nIGJpZXQgcGhlIGRpY2ggY28geHVpIGJheSBkdW9jIGJvbiANCmxvYW4gdGhhbiB0cm9u ZyBRdW9jIEhvaSB0cnVhdCBjYWkgZ2hlIHRlIHR1b25nIGN1YSBtaW5oIGtob25nLiBWZSBuaGEg dGFtIHN1IHZvaSBwaHUgDQpuaGFuIHRoaSBkdW9jIG5ndW9pIGRhdSBnb2kgdGF5IGFwIGxheSBL aWV1IG1hIGFuIHVpIHJhbmc6IA0KIlRyYW0gbmFtIHRyb25nIGNvaSBuZ3VvaSB0YSwNCkNodSB0 YWkgY2h1IG1lbmgga2hlbyBsYSBnaGV0IG5oYXUuDQpUcmFpIHF1YSBtb3QgY3VvYyBiZSBkYXUs DQpOaHVuZyBkaWV1IHNhcCB0b2kgdGhhdCBkYXUgY2FpIGRhdS4iDQooUGh1IG5oYW4ga2hvbmcg dGh1b2MgS2lldSBuZW4gbmhvIGxvbiBjYXUgY3VvaS4gWGluIG5oYW4gZGFuIHhhIGxvaSBjaG8p IA0KDQpQaG9uZyBUcmFuDQoocXVhbiBjaHUgUGhvbmcgVHJhbiBxdWFuKSANCg0KaHR0cDovL3R1 YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMS0wMy1uYW5nLWJpZW4tZG9uZy10aGFuaC1s b2ktaWNoLWNvdC1sb2ktdHJ1bmctcXVvYy1kYWktZG90LSBUYWMgZ2lhOiBMaWVuIGhvcCBUYW8g YmFvDQoNClRodSB0dW9uZzogIkRvbmcgY2hpIHRvdCIgbGEgdGhlIG5heSB1Pw0KDQpUcnVuZyBR dW9jIG5hbmcgQmllbiBEb25nIHRoYW5oIGxvaSBpY2ggY290IGxvaSAoZ2lvbmcgbmh1IHZvaSBU YXkgVGFuZyB2YSBEYWkgTG9hbikgDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL1Nw ZWNpYWxUb3BpYy9TcHJhdGx5UGFyYWNlbHMNCg0KVHJ1bmcgUXVvYyB0aGlldCBsYXAgZG9uIHZp IGhhbmggY2hpbmggZGUgcXVhbiB0cmkgaGFpIHF1YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBT YSANCg0KaHR0cDovL3ZpZXRpbmZvLmV1LzEyNy84NTc2MC90YXUtY2EtbGFpLWJpLWJhdC1naXUt dGF1LWRvaS10aWVuLWNodW9jLmh0bSAyNi0wMy0yMDEwIDEyOjA0DQoNClRhdSBjYSBWTiBiaSBU cnVuZyBRdW9jIGJhdCBnaXUsIGRvaSB0aWVuIGNodW9jIA0KDQpNb3QgdGF1IGRhbmggYmF0IGN1 YSBuZ3UgZGFuIHhhIEJpbmggQ2hhdSwgaHV5ZW4gQmluaCBTb24sIFF1YW5nIE5nYWkgdGFpIHZ1 bmcgYmllbiANCkhvYW5nIFNhIHRodW9jIGNodSBxdXllbiBjdWEgVmlldCBOYW0gbGFpIGJpIFRy dW5nIFF1b2MgYmF0IGdpdSBkb2kgdGllbiBjaHVvYyAxNTAgdHJpZXUgZG9uZy4uLg0KDQpUb2Fu IGJvIDEyIHRodXllbiB2aWVuLCB0aHV5ZW4gdHJ1b25nIHZhIHRhdSBiaSBiYXQgZ2l1IGR1YSB2 ZSBkYW8gUGh1IExhbS4gDQoNCi0NCmh0dHA6Ly9iYW90b3F1b2MuY29tLzIwMTAvMDYvMTEvcGh1 bmctcXVhbmctdGhhbmgtbGEtbmclQzYlQjAlRTElQkIlOURpLW4lQzYlQjAlRTElQkIlOUJjLW5h by8gUGhhbSBUcmFuIDEwLzA2LzIwMTAgMTEvNi8yMDEwIDU6MjEgQU0gICANCg0KT25nIEJvIHRy dW9uZyBRdW9jIHBob25nIGxhIG5ndW9pIG51b2MgbmFvPyANCg0KVGhlbyBkb2kgaG9hdCBkb25n IGN1YSBjYWMgdmllbiBjaHVjIGxhbmggZGFvIGN1YSBkYW5nIHZhIG5oYSBudW9jIFZpZXQgTmFt IGRvaSBraGkgDQpjdW5nIHRoYXkgY2hvdCBkYSB0dSBob2k6IEtob25nIGJpZXQgbmd1b2kgbmF5 IHNpbmggcmEgbyBkYXUgaGF5IGxhIG5ndW9pIG51b2MgbmFvIA0KbWEgYW4gbm9pIGtob25nIGNv biBjaHV0IG1hdSB0aGl0IFZpZXQgTmFtIGdpIGNhPyANCg0KRGllbiBoaW5oIGNobyB0cnVvbmcg aG9wIGxhIGRvbmcgbmF5IGxhIFBodW5nIFF1YW5nIFRoYW5oLCBEYWkgdHVvbmcsIEJvIHRydW9u ZyANClF1b2MgcGhvbmcuIE9uZyBUaGFuaCBkYSBkdWEgcmEgbmh1bmcgbG9pIHR1eWVuIGJvIHJh dCBraG8gbmdoZSB2ZSB0aW5oIGhpbmggYW4gbmluaCANCnRhaSBCaWVuIERvbmcgdmEgZGlldSBk dW9jIGdvaSBsYSAiaGV0IHN1YyB0aGFuIHRpbmgsIGh1dSBuZ2hpLCBsYW5nIGdpZW5nLCBkb25n IGNoaSwgYW5oIA0KZW0gdmEgbGEgbmh1bmcgbmd1b2kgYmFuIHRvdCBjdWEgbmhhdSIga2hpIGRl IGNhcCBkZW4gbW9pIGdpYW8gaGFvIHZvaSBUcnVuZyBRdW9jLg0KDQpCb2kgY2FuaCBjdWEgbmh1 bmcgbG9pIHR1eWVuIGJvIG5heSBsYSBIb2kgbmdoaSBBbiBuaW5oIGNoYXUgQSBsYW4gdGh1IDkg aGF5IGNvbiBkdW9jIA0KZ29pIGxhIERvaSB0aG9haSBTaGFuZ3JpLUxhIDkgdmUgYW4gbmluaCBj aGF1IEEgliBUaGFpIEJpbmggRHVvbmcgZGllbiByYSB0cm9uZyBoYWkgDQpuZ2F5IDUgdmEgNi82 LzIwMTAgdGFpIGtoYWNoIHNhbiBTaGFuZ3JpLUxhLCBUYW4gR2lhIEJhLg0KDQpUaGVvIGNhYyB0 aG9uZyB0aW4gY3VhIHBoaWEgVmlldCBOYW0gdGhpIGNvIDI4IG51b2MgdGhhbSBnaWEsIHRyb25n IGRvIGNvIFRvbmcgdGhvbmcsIA0KVGh1IHR1b25nLCBQaG8gVGh1IHR1b25nLCBCbyB0cnVvbmcg UXVvYyBwaG9uZywgQm8gdHJ1b25nIE5nb2FpIGdpYW8sIFRvbmcgdGhhbSANCm11dSB0cnVvbmcg dmEgbW90IHNvIGhvYyBnaWEsIG5oYSBuZ2hpZW4gY3V1IGNoaWVuIGx1b2MgY3VhIGNhYyBudW9j IGNoYXUgQS1UaGFpIEJpbmggRHVvbmcuDQoNClNvIFRhdSB4YW5oIGNhIG1hdA0KDQpOaHVuZyB0 cm9uZyBkaWVuIHZhbiBjaGluaCB0aHVjIHRhaSBIb2kgbmdoaSBob20gNi82ICgyMDEwKSwgUGh1 bmcgUXVhbmcgVGhhbmggZGEgDQpraG9uZyBub2kgbW90IGNodSBuYW8gdmUgdGluaCBoaW5oIEJp ZW4gRG9uZyB2YSBzdSBkZSBkb2EgdHJ1YyB0aWVwIHZvaSBWaWV0IE5hbSBjdWEgDQpUcnVuZyBR dW9jLg0KDQpIYXkgY3VuZyBkb2M6ICJWb2kgVmlldCBOYW0sIGtoYWMgdm9pIGRpZW4gZGFuIG5h bSAyMDA5LCBraGkgQm8gdHJ1b25nIFBodW5nIFF1YW5nIA0KVGhhbmggbmV1IHZhbiBkZSB0cmFu aCBjaGFwIEJpZW4gRG9uZywgdmEgdHJvbiBtb3QgYnVvaSwgY2FjIGRhaSBiaWV1IGN1bmcgdGhh byBsdWFuIHZlIA0KdmFuIGRlIEJpZW4gRG9uZyB2YSBzdSBnaWEgdGFuZyBzdWMgbWFuaCBxdWFu IHN1IGN1YSBUcnVuZyBRdW9jLCBuYW0gbmF5LCBiYWkgcGhhdCANCmJpZXUgY3VhIEJvIHRydW9u ZyBRdW9jIHBob25nIFZpZXQgTmFtIGhvYW4gdG9hbiBraG9uZyBkZSBjYXAgZGVuIHZhbiBkZSBu YXkuDQoNClRhaSBwaGllbiB0aGFvIGx1YW4sIG9uZyBUaGFuaCBuaGFuIGR1b2MgaGFpIGNhdSBo b2kgbGllbiBxdWFuIGRlbiB2YW4gZGUgQmllbiBEb25nIHZlIA0KdmFpIHRybyBjdWEgY2FjIHRv IGNodWMga2h1IHZ1YyB0cm9uZyB2aWVjIGdpYWkgcXV5ZXQgdmFuIGRlIEJpZW4gRG9uZy4gVmkg Y3UgdG9hIGN1bmcgDQpnaWFpIHRoaWNoIHJvIGxpIGRvIG5ldSBjYXUgaG9pIGxhIHR1IGNoaW5o IG1vaSBxdWFuIG5nYWkgY3VhIEJvIHRydW9uZyBRdW9jIHBob25nIE15LiANCk1vdCB2aSBraGFj IGRhdCB0aGFuZyB2YW4gZGUgY2FuZyB0aGFuZyBvIEJpZW4gRG9uZywgZGFjIGJpZXQgZ2l1YSBU cnVuZyBRdW9jIHZvaSBWaWV0IE5hbS4NCg0KRGFwIGxvaSwgQm8gdHJ1b25nIFBodW5nIFF1YW5n IFRoYW5oIGNobyBoYXkgInZhbiBkZSBhbiBuaW5oIGhhbmcgaGFpIGNhYyBxdW9jIGdpYSANCmRl dSBoZXQgc3VjIHF1YW4gdGFtIi4gVHV5IG5oaWVuLCB0aW5oIGhpbmggQmllbiBEb25nICJjaHVh IGNvIHZhbiBkZSBnaSBjYW5nIHRoYW5nIGxhbSIuDQoNCk9uZyBraGFuZyBkaW5oLCBnaXUgZ2lu IG1vaSB0cnVvbmcgaG9hIGJpbmgsIG9uIGRpbmggZGUgY3VuZyBob3AgdGFjIHBoYXQgdHJpZW4g dHJvbmcgDQpraHUgdnVjIGxhIG5odSBjYXUga2hhY2ggcXVhbiBjdWEgY2FjIG51b2MgdmEgY2Fj IGJlbiBjYW4gZG9pIHRob2FpIGRlIGdpYWkgcXV5ZXQgY2FjIA0KdmFuIGRlLg0KDQpIaWVuIG5h eSBWaWV0IE5hbSBkYW5nIHR1bmcgYnVvYyBkb2kgdGhvYWkgdm9pIGNhYyBudW9jIGNvIGxpZW4g cXVhbiBkZSBnaWFpIHF1eWV0IA0KdHJhbmggY2hhcCB0cmVuIHRpbmggdGhhbiBjdWEgVHV5ZW4g Ym8gdmUgY2FjaCB1bmcgeHUgY3VhIGNhYyBiZW4gbyBCaWVuIERvbmcgKERPQykuIA0KRG8gbGEg Z2l1IG5ndXllbiBoaWVuIHRyYW5nLCBraG9uZyBsYW0gcGh1YyB0YXAgdGhlbSB0aW5oIGhpbmgs IGR1bmcgYmllbiBwaGFwIGhvYSANCmJpbmggZGUgZ2lhaSBxdXlldCB0cmFuaCBjaGFwLCBraG9u ZyBkZSBkb2Egc3UgZHVuZyB2dSBsdWMgdmEgc3UgZHVuZyB2dSBsdWMgdmEgZGFtIA0KcGhhbiB0 cmVuIGNvIHNvIGxhbmcgZ2llbmcgaHV1IG5naGksIHRpbmggdGhhbiBhbmggZW0uDQoNClZvaSBU cnVuZyBRdW9jLCBoYWkgbnVvYyBkYSBnaWFpIHF1eWV0IHRoYW5oIGNvbmcgY2FjIHZhbiBkZSB2 ZSBiaWVuIGdpb2kgdHJlbiBiby4gVmluaCANCkJhYyBibyBuYXkgY3VuZyBkdW9jIHBoYW4gZ2lv aSByYXQgcm8gcmFuZy4gVHV5IG5oaWVuLCAidHJlbiBiaWVuIHRoaSBkdW5nIGxhIGNvIHRyYW5o IA0KY2hhcC4uLiBDaHVuZyB0b2kgdmEgVHJ1bmcgUXVvYyBjb24gY28gdGluaCB0aGFuIGRvbmcg Y2hpLCBsYW5nIGdpZW5nIGh1dSBuZ2hpLiBWYW4gZGUgDQpzZSBkdW9jIGdpYWkgcXV5ZXQgdGhl byBodW9uZzogZGUgZ2lhaSBxdXlldCB0cnVvYywga2hvIGdpYWkgcXV5ZXQgc2F1Ii4gKFBodW9u ZyBMb2FuLCANCmJhbyBUdWFuIFZpZXQgTmFtIG5nYXkgMDgvMDYvMjAxMCkNCg0KQ3VuZyB0cm9u ZyBuZ2F5IDgtNi0yMDEwLCBiYW8gUXVhbiBEb2kgTmhhbiBEYW4gdmEgbmhpZXUgYmFvIGtoYWMg ZGEgZGFuZyBjdW9jIGRvaSANCnRob2FpIGdpdWEgb25nIFRoYW5oIHZhIGJhbyBjaGkgdGFpIEhh IE5vaSB2ZSBjaHV5ZW4gZGkgU2luZ2Fwb3JlIHZhIG5odW5nIGhvYXQgZG9uZyANCmN1YSBvbmcg VGhhbmggcGhpYSBzYXUgSG9pIG5naGkgU2hhbmdyaS1MYSA5Lg0KDQpOZ2FjIG5oaWVuIHRoYXks IHRyb25nIGN1b2MgdHJhbyBkb2kgbmF5LCBvbmcgVGhhbmggZGEgY2FuaCBnaWFjOiAiQ2h1bmcg dGEgcGhhaSBoZXQgDQpzdWMgc2FuZyBzdW90LCB0aW5oIHRhbyBkZSBraG9uZyBiaSBjYWMgbHVj IGx1b25nIGNoaWEgcmUgcXVhbiBoZSBWaWV0IE5hbSCWIFRydW5nIA0KUXVvYywgY2hpYSByZSBn aXVhIERhbmcsIE5oYSBudW9jIHZvaSBuaGFuIGRhbiB2ZSB2YW4gZGUgQmllbiBEb25nIi4NCg0K VmUgdGluaCBoaW5oIEJpZW4gRG9uZyB0aGkgUGh1bmcgUXVhbmggVGhhbmggZGEgZGllbiB0YSBu aHUga2hvbmcgY28gY2h1eWVuIGdpIHhheSANCnJhIGdpdWEgVmlldCBOYW0gdmEgVHJ1bmcgUXVv YyB0aGVvIG5odSBjYWNoIG5vaSBkdW9pIGRheTogDQoNCkg6IJYgVGh1YSBCbyB0cnVvbmcsIEhv aSBuZ2hpIGNvIGxvIGxhbmcgdmUgdmFuIGRlIGxhbiBsdW90IHN1YyBtYW5oIHF1YW4gc3UgY3Vh IG1vdCANCm51b2MgbmFvIGRvIHRyb25nIGtodSB2dWMga2hvbmc/IA0KDQpEOiCWIE5vaSBjaHVu ZywgaGllbiBuYXksIGNodWEgZGVuIG11YyBuaHUgdmF5LiBWaSBkdSBiYXkgZ2lvIFRydW5nIFF1 b2MgbGEgbW90IG51b2MgDQpsb24sIG1vdCBudW9jIFhIQ04sIG1vdCBudW9jIGRvbmcgZGFuLCBr aW5oIHRlIHBoYXQgdHJpZW4gbWEgY28gZHVvbmcgbG9pIGRvaSBuZ29haSANCmhvYSBiaW5oLCBx dWFuIGhlIGh1dSBuZ2hpIHZvaSBjYWMgbnVvYyBsYW5nIGdpZW5nLCBjYWMgbnVvYyB0cm9uZyBr aHUgdnVjLCB0cm9uZyBkbyBjbyANClZpZXQgTmFtIHRoZW8gdGluaCB0aGFuIGRvaSB0YWMsIGhv cCB0YWMgdG9hbiBkaWVuLCBwaHVvbmcgY2hhbSAxNiBjaHUgdmFuZyB2YSB0aW5oIA0KdGhhbiA0 IHRvdCB0aGkgZG8gbGEgZGlldSBraWVuIHRodWFuIGxvaSBjaG8gY2h1bmcgdGEgY2h1IGtob25n IHBoYWkgbGEgbW9pIGRlIGRvYSwgdGhhY2ggDQp0aHVjIHZvaSBjaHVuZyB0YSIgKHBodW9uZyBj aGFtIDE2IGNodSB2YSB0aW5oIHRoYW4gNCB0b3Q6ICJsYW5nIGdpZW5nIGh1dSBuZ2hpLCBob3Ag dGFjIA0KdG9hbiBkaWVuLCBvbiBkaW5oIGxhdSBkYWksIGh1b25nIHRvaSB0dW9uZyBsYWkiIHZh ICJsYW5nIGdpZW5nIHRvdCwgYmFuIGJlIHRvdCwgZG9uZyBjaGkgDQp0b3QsIGRvaSB0YWMgdG90 IikNCg0KVHJ1bmcgUXVvYyBkYSB0dXllbiBibyBzZSB4YXkgZHVuZyBtb3QgbnVvYyBUcnVuZyBR dW9jIGhvYSBiaW5oIHZhIHRoZSBnaW9pIGhhaSBob2EsIA0Ka2h1IHZ1YyBob2EgYmluaCwgZ2l1 IG1vaSB0cnVvbmcgb24gZGluaCBkZSB0aWVwIHR1YyBjb25nIGN1b2MgeGF5IGR1bmcgZGF0IG51 b2MuIERvIGxhIA0Kbmh1bmcgZGlldSBraWVuIHRodWFuIGxvaS4uLi4NCg0KLi4uVHJvbmcgdGll cCB4dWMgc29uZyBwaHVvbmcsIHRvaSBjbyB0aWVwIHh1YyB2b2kgZG9uZyBjaGkgVGh1b25nIHR1 b25nIE1hIEhpZXUgDQpUaGllbiwgUGhvIFRvbmcgdGhhbSBtdXUgdHJ1b25nIFF1YW4gZ2lhaSBw aG9uZyBuaGFuIGRhbiBUcnVuZyBRdW9jLiBUcmVuIHRpbmggDQp0aGFuIGhldCBzdWMgdGhhbiB0 aW5oLCBodXUgbmdoaSwgbGFuZyBnaWVuZywgZG9uZyBjaGksIGFuaCBlbSB2YSBsYSBuaHVuZyBu Z3VvaSBiYW4gdG90IA0KY3VhIG5oYXUsIGhhaSBiZW4gdHJhbyBkb2kgdGhhbiB0aW5oLCBjb2kg bW8sIHRoYW5nIHRoYW4gdGF0IGNhIGNhYyB2YW4gZGUuIFF1YW4gdHJvbmcgbGEgDQpraG9uZyBs YW0gbm9uZyBsZW4gdGluaCBoaW5oIG8gQmllbiBEb25nLg0KDQpUcmVuIEJpZW4gRG9uZywgdGlu aCBoaW5oIGhvYXQgZG9uZyBjdWEgY2h1bmcgdGEgaGV0IHN1YyBiaW5oIHRodW9uZy4gVmFuIGxh bSwgdmFuIA0KaG9hdCBkb25nIGtpbmggdGUsIGhhbmcgaGFpLCBkdSBsaWNoLCBsYW0gYW4gYmlu aCB0aHVvbmcsIGtob25nIGNvIHZhbiBkZSBnaSB0cm8gbmdhaSBjYS4NCg0KQ29uIHRyYW5oIGNo YXAgZ2l1YSAyIGJlbiBsYSBsYXUgZGFpLCBkbyB2YW4gZGUgbGljaCBzdSBkZSBsYWkuIENodW5n IHRhIGhpbmggZHVuZywgdHJvbmcgDQptb3QgZGF0IG51b2MgY3VuZyBjbyBuaHVuZyB0aW5oIGNv biB0cmFuaCBjaGFwIG5oYXUgdmUgZGlhIGdpb2kgaGFuaCBjaGluaCwgdHJvbmcgdGluaCANCmN1 bmcgY28gaHV5ZW4sIGNvIHhhLCBjbyBsYW5nIHRyYW5oIGNoYXAsIHRoYW0gY2hpIHRyb25nIG1v dCBuaGEgY3VuZyBjaGEgY3VuZyBtZSBjdW5nIA0KY29uIHRyYW5oIGNoYXAgZGF0IGRhaSBkbyBj aGEgbWUgZGUgbGFpIGh1b25nIGhvIGxhIGhhaSBxdW9jIGdpYS4gTWEgY2FpIG5heSBsYSBkbyBs aWNoIHN1IA0KZGUgbGFpIHRoaSBkbyBsYSBkaWV1IG1hIGNodW5nIHRhIGNvIHRoZSBoaWV1IGR1 b2MuDQoNCk5odW5nIGRpZXUgcXVhbiB0cm9uZyBjdWEgdGhlIGhlIGNodW5nIHRhIGxhIHBoYWkg ZHVuZyBvIHRhbSBjYW8gY2hpZW4gbHVvYywgbG9pIGljaCBjdWEgDQpxdW9jIGdpYSwgY3VhIGRh biB0b2MsIGRlIGNodW5nIHRhIGdpdSBkdW9jIGNodSBxdXllbiBsYW5oIHRoby4NCg0KQmF5IGdp bywgY2h1bmcgdGEgbmdheSBjYW5nIGhvaSBuaGFwIHNhdSBob24gdmFvIG5lbiBraW5oIHRlIHRo ZSBnaW9pLiBNb3QgcXVvYyBnaWEgY28gDQphbmggaHVvbmcgZGVuIHRhdCBjYSBjYWMgcXVvYyBn aWEga2hhYywgdHV5IHRodW9jIGxhbiBuaGF1LiBOZW4gbmV1IG1vdCBudW9jIG1hdCBvbiANCmRp bmggdGhpIGNhYyBudW9jIGtoYWMgY3VuZyBiaSBhbmggaHVvbmcuDQoNCkNobyBuZW4gY2FjIG51 b2MgY28gbmhhbiB0aHVjIGdpb25nIG5oYXUgbGEgcGhhaSBnaXUgaG9hIGJpbmggb24gZGluaCBv IHRyZW4gYmllbiANCkRvbmcsIGJhbmcgZGFtIHBoYW4gaHV1IG5naGkgdHJlbiB0aW5oIHRoYW4g bGFuZyBnaWVuZywgYW5oIGVtLCB0aW5oIHRoYW4gZG9uZyBjaGksIHRpbmggDQp0aGFuIGx1YXQg cGhhcCBxdW9jIHRlOiBkbyBsYSBET0MsIENvbmcgdW9jIGx1YXQgYmllbiBuYW0gMTk4MiwgbWEg dGltIGdpYWkgcGhhcCBoYWkgDQpiZW4gY28gdGhlIGNoYXAgbmhhbiBkdW9jLg0KDQpEYWMgYmll dCwgY2h1bmcgdGEgY3VuZyBwaGFpIGNodSB5IGtob25nIGRlIGNobyBjYWMgbnVvYyBraGFjIGtp Y2ggZG9uZyB2YW4gZGUgbmF5LiANCktob25nIGRlIGNhYyBsdWMgbHVvbmcgeGF1IHN1IGR1bmcg dmFuIGRlIEJpZW4gRG9uZyBkZSBraWNoIGRvbmcsIGNoaWEgcmUgcXVhbiBoZSANClZpZXQgTmFt LVRydW5nIFF1b2MsIGNoaWEgcmUgcXVhbiBoZSBnaXVhIERhbmcsIE5oYSBudW9jIHZvaSBuaGFu IGRhbiBjaHVuZyB0YSIuDQoNCkxvaSB0dXllbiBibyBjdWEgUGh1bmcgUXVhbmcgVGhhbmgga2hv bmcgdGhlIGR1b2MgY29pIGxhIGxvaSBub2kgY3VhIG1vdCBCbyB0cnVvbmcgDQpRdW9jIHBob25n IGNvIGJvbiBwaGFuIGJhbyB2ZSBsYW5oIHRoby4gQ28gNCB2YW4gZGUgY2FuIGxhbSBybzoNCg0K VGh1IG5oYXQsIGxhbSBnaSBjbyBjaHV5ZW4gIlRyZW4gQmllbiBEb25nLCB0aW5oIGhpbmggaG9h dCBkb25nIGN1YSBjaHVuZyB0YSBoZXQgc3VjIA0KYmluaCB0aHVvbmc/Ig0KDQpDaGkgY28gbW90 IG5ndW9pIGRpZW4gaGF5IGtob25nIHBoYWkgbGEgbmd1b2kgVmlldCBOYW0gbW9pIGNvIHRoZSBw aGF0IG5nb24gdm8gdHJhY2ggDQpuaGllbSByYW5nIG5ndW9pIGRhbiBWaWV0IE5hbSBiYXkgZ2lv ICIgdmFuIGxhbSwgdmFuIGhvYXQgZG9uZyBraW5oIHRlLCBoYW5nIGhhaSwgZHUgDQpsaWNoLCBs YW0gYW4gYmluaCB0aHVvbmcsIGtob25nIGNvIHZhbiBkZSBnaSB0cm8gbmdhaSIgbyBCaWVuIERv bmcuDQoNClZheSBuaHVuZyBuZ3UgZGFuIFZpZXQgTmFtIHR1IHRpbmggUXVhbmcgTmdhaSwgZGFj IGJpZXQgdHUgZGFvIEx5IFNvbiByYSBkYW5oIGNhIA0KcXVhbmgga2h1IHZ1YyBxdWFuIGRhbyBI b2FuZyBTYSBiaSBxdWFuIFRhdSBkYW0gdGh1bmcgdGh1eWVuIGNobyBjaGV0IGNoaW0gZHVvaSAN CmxvbmcgYmllbiwgYmkgYmF0LCBkYW5oLCB0aWNoIHRodSB0YWkgc2FuLCBkb2kgdGllbiBjaHVv YyB2YSBiaSB2dSBvYW4gY2FvIHZhIGRhIGRhbmggY2EgDQp0cm9uZyB2dW5nICJsYW5oIHRobyBj dWEgYm9uIGN1b3AiIGxhIGJpbmggdGh1b25nIGE/DQoNCkxhIEJvIHRydW9uZyBRdW9jIHBob25n LCBjaGFuZyBsZSBUaGFuaCBraG9uZyBoYXkgYmlldCBnaSBkZW4gY2FpIGxlbmggYmF0IGhvcCBw aGFwLCANCnZpIHBoYW0gbmdoaWVtIHRyb25nIGNodSBxdXllbiBsYW5oIHRobyBjdWEgVmlldCBO YW0gY3VhIFRydW5nIFF1b2Mga2hpIEJhYyBLaW5oIHJhIA0KbGVuaCBjYW0gZGFuaCBjYSB0cm9u ZyB2dW5nIEJpZW4gRG9uZyB0dSBuZ2F5IDE2LTUgZGVuIDEvOC8yMDEwIGRlIGNobyBsdWMgbHVv bmcgDQpIYWkgcXVhbiBUYXUgdGhhbyB0dW5nIHR1YW4gdHJhIHZhIGJhbyB2ZSBjaG8gaXQgbmhh dCA3MDAgdGh1eWVuIGRhbmggY2EgY3VhIFRhdSBkYW5oIGJhdCB0dSANCmRvIHR1IEhvYW5nIFNh IHh1b25nIFRydW9uZyBTYT8NCg0KVGh1IG5oaSwgdGFpIHNhbyBvbmcgVGhhbmggZGEgcXVhIG1h dSBxdWVuIGh1b25nIGhvbiBjdWEgNjQgbmd1b2kgbGluaCBjdWEgUXVhbiBkb2kgDQpOaGFuIGRh biBkYSBibyBtaW5oIG8gdHJhbiBoYWkgY2hpZW4gVHJ1b25nIFNhIHZvaSBRdWFuIFRhdSBuZ2F5 IDE0LTMtMTk4OCBkYW4gdG9pIA0KdGhhbSBraWNoIG1hdCA4IGRhbyBjdWEgUXVhbiBkYW8gbmF5 IHZhbyB0YXkgVHJ1bmcgUXVvYy4gVmEgdHUgZG8gdG9pIG5heSwgSGFpIHF1YW4gDQpUYXUgdmFu IHRodW9uZyB4dXllbiB0aGF5IHF1YW4sIHRhbmcgdmllbiwgeGF5IGNhYyBjbyBzbyBxdWFuIHN1 IHZhIGJhaSBkYXAgbWF5IGJheSANCnRydWMgdGhhbmcsIHRoaWV0IGtlIGNhYyBjYXUgVGF1LCBi YWkgZGF1IGNobyBjYWMgVGF1IGJlIGNhcCBiZW4uDQoNCkRheSBsYSBjaHVhIGtlIGRlbiB4dW9u ZyBtYXUgY3VhIG5nb3QgNjAgY2hpZW4gc2kgSGFpIHF1YW4gVmlldCBOYW0gQ29uZyBIb2EgZGEg Ym8gDQptaW5oIHRhaSBjaGllbiB0cnVvbmcgSG9hbmcgU2EgbmFtIDE5NzQga2hpIHF1YW4gVHJ1 bmcgUXVvYyB0YW4gY29uZyB2YSBjaGllbSBxdWFuIA0KZGFvIG5heS4NCg0KVmEgSG9hbmcgU2Eg bmdheSBuYXkgZGEgYmllbiB0aGFuaCBtb3QgY2FuIGN1IEhhaSBxdWFuIGNvIHNhbiBiYXksIGJl biB0YXUgdmEga2h1IGR1IGxpY2ggY3VhIEJhYyBLaW5oIQ0KDQpUaHUgYmEsIG9uZyBUaGFuaCBj dW5nIGNodW5nIG1pbmgga2hvbmcgYmlldCBnaSB2ZSBuaHVuZyBiYWkgdmlldCBoaWV1IGNoaWVu IGtoaWV1IA0Ka2hpY2gsIGRlIGRvYSB2YSBtaWV0IHRoaSBWaWV0IE5hbSBjdWEgbW90IHNvIGJh byBEaWVuIHR1IGN1YSBOaGEgbnVvYyBUcnVuZyBIb2EsIA0KdHJvbmcgdGhvaSBnaWFuIHR1IHRo YW5nIDIgbmFtIDIwMTAgZGVuIG5heSwgZGEgY29uZyBraGFpIHRodWMgZ2l1YyBjaGluaCBxdXll biBUcnVuZyANClF1b2MgaGF5IHNhbiBzYW5nIGx1YyBsdW9uZyBkZSBkYW5oIGNoaWVtIG1hdSBj aG9uZyB0YXQgY2EgY2FjIGRhbyBtYSBjYWMgYmFvIG5heSANCm5vaSBsYSBjdWEgVHJ1bmcgSG9h IG8gQmllbiBEb25nLg0KDQpOZ29haSByYSwgb25nIFRoYW5oIGN1bmcgZGEgcXVlbiBoYW4gbyBu aHVjIGN1YSBjdW9jIGNoaWVuIHRyYW5oIDYgdGluaCBiaWVuIGdpb2kgbmFtIA0KMTk3OSBraGkg YmkgRGFuZyBUaWV1IEJpbmgsIGx1YyBheSBjYW0gcXV5ZW4gbyBUcnVuZyBRdW9jLCAiZGF5IGNo byBWaWV0IE5hbSBtb3QgDQpiYWkgaG9jIiBuZW4gZGEgY2EgdHVuZyBjYWkgYmF5ICJwaHVvbmcg Y2hhbSAxNiBjaHUgdmFuZyB2YSB0aW5oIHRoYW4gNCB0b3QiIHhhbyBxdXlldCANCmN1YSBuaGEg Y2FtIHF1eWVuIEJhYyBLaW5oLg0KDQpUcmEgbG9pIGNhdSBob2k6ICJCbyB0cnVvbmcgbm9pLCBh biBuaW5oIG8gQmllbiBEb25nIHJhdCBxdWFuIHRyb25nLCB2YXkgSG9pIG5naGkgbmhpbiANCm5o YW4gdGhlIG5hbyB2ZSBuaHVuZyB0cmFuaCBjaGFwIG8gZGF5PyBDbyBuaHVuZyBuZ3V5IGNvIG5h byB2b2kgYW4gbmluaCBraHUgdnVjIHZhIA0KY28gZ2lhaSBwaGFwIGRlIGdpYWkgcXV5ZXQgbm8/ DQoNCk9uZyBUaGFuaCBkYXA6ICJUcmFuaCBjaGFwIHRyZW4gQmllbiBEb25nIGNvIHRoZSBjb2kg bGEgdHJhbmggY2hhcCBnaXVhIDUgbnVvYywgNiBiZW4uIA0KTmh1bmcgbmV1IGRlIHhheSByYSB4 dW5nIGRvdCBxdWFuIHN1IHRoaSBubyBhbmggaHVvbmcgZGVuIGNhYyBxdW9jIGdpYSwga2hvbmcg Y2hpIGtodSANCnZ1YyBEb25nIE5hbSBBIG1hIGNhIGtodSB2dWMgY2hhdSBBIJYgVGhhaSBCaW5o IER1b25nIHZhIHRoYW0gY2hpIGxhIGNhIHRoZSBnaW9pLiANCk5ldSB4YXkgcmEsIG5vIGNvbiBs YSB0aGFtIGhvYSBkb2kgdm9pIGNhYyBudW9jIG8ga2h1IHZ1YyBuYXksIGRvIGRvLCBkYW0gYmFv IG1vaSANCnRydW9uZyBob2EgYmluaCwgb24gZGluaCwgaG9wIHRhYyB2YSBjdW5nIG5oYXUgcGhh dCB0cmllbiBsYSBsb2kgaWNoIHF1b2MgZ2lhIGN1YSBjYWMgDQpudW9jLiBDaG8gbmVuLCBjYWMg bnVvYyBwaGFpIGhldCBzdWMgYmluaCB0aW5oLCBoZXQgc3VjIGtpZW0gY2hlLCBwaGFpIHh1IGx5 IG5vIG8gdGFtIA0KY2FvIGNoaWVuIGx1b2MgdmkgbG9pIGljaCBraG9uZyBwaGFpIGNoaSBjdWEg cXVvYyBnaWEsIGN1YSBraHUgdnVjIG1hIGNvbiBjdWEgdGhlIGdpb2kiLg0KDQpLZXQgbHVhbiwg b25nIFRoYW5oIGtodXllbiBjYW86ICJEZSBnaWFpIHF1eWV0IHZhbiBkZSBuYXkgdGhpIHBoYWkg YmFuZyBkYW0gcGhhbiBob2EgDQpiaW5oLCBwaGFpIGJhbmcgVHV5ZW4gYm8gdmUgY2FjaCB1bmcg eHUgY3VhIGNhYyBiZW4gbyBCaWVuIERvbmcgKERPQyksIGJhbmcgbHVhdCANCnBoYXAgcXVvYyB0 ZSwgYmFuZyBDb25nIHVvYyBsdWF0IGJpZW4gbmFtIDE5ODIgY3VhIExpZW4gSG9wIHF1b2MuIENo dW5nIHRhIHBoYWkgaGV0IA0Kc3VjIHNhbmcgc3VvdCwgdGluaCB0YW8gZGUga2hvbmcgYmkgY2Fj IGx1YyBsdW9uZyBjaGlhIHJlIHF1YW4gaGUgVmlldCBOYW0gliBUcnVuZyANClF1b2MsIGNoaWEg cmUgZ2l1YSBEYW5nLCBOaGEgbnVvYyB2b2kgbmhhbiBkYW4gdmUgdmFuIGRlIEJpZW4gRG9uZyIu DQoNCk5odW5nICJsdWMgbHVvbmcgY2hpYSByZSBWaWV0IE5hbSB2YSBUcnVuZyBRdW9jIiBsYSBs dWMgbHVvbmcgbmFvIGhheSBkYXkgY2hpIGxhIHRoYWkgDQpkbyBraGllcCBzbyBUcnVuZyBRdW9j IG1hIG9uZyBUaGFuaCBkYSB0dSB2ZSByYSBjb24gTmdhbyBPcCBkZSBodSBkb2EgbW9pIG5ndW9p Pw0KDQpET0Mgbm9pIGdpPw0KDQpIb24gbnVhIFR1eWVuIGJvIHZlIGNhY2ggdW5nIHh1IGN1YSBj YWMgYmVuIG8gQmllbiBEb25nIChEZWNsYXJhdGlvbiBvZiB0aGUgQ29uZHVjdCANCm9mIFBhcnRp ZXMgliBET0MpIGdpdWEgY2FjIG51b2MgdHJvbmcga2hvaSBBU0VBTiAoSGllcCBob2kgQ2FjIFF1 b2MgZ2lhIERvbmcgTmFtIA0KQSkgdm9pIE5oYSBudW9jIENvbmcgaG9hIE5oYW4gZGFuIFRydW5n IEhvYSBkdW9jIGt5IHRhaSBOYW0gVmFuZyAoQ2FvIE1pZW4pIA0KbmdheSAwNC8xMS8yMDAyIGto b25nIGNvIHJhbmcgYnVvYyBwaGFwIGx5IG5lbiBraG9uZyBudW9jIG5hbyBiYXQgYnVvYyBwaGFp IHR1YW4gdGhlby4NCg0KRGFpIGJpZXUgVHJ1bmcgSG9hIGt5IHRyb25nIFR1eWVuIGJvIE5hbSBW YW5nIGxhIERhYyBwaGFpIHZpZW4sIFBobyBCbyB0cnVvbmcgDQpOZ29haSBnaWFvIFdhbmcgWWkg Y28gbm9pIGR1bmcgMyBkaWVtIHF1YW4gdHJvbmcgbmh1IHNhdToNCg0KMSkgQ2FjIGJlbiBraGFu ZyBkaW5oIGxhaSBzdSB0b24gdHJvbmcgdmEgY2FtIGtldCBjdWEgbWluaCBkb2kgdm9pIHF1eWVu IHR1IGRvIGhhbmcgaGFpIA0KdmEgcXV5ZW4gdHUgZG8gYmF5IG5nYW5nIHF1YSB2dW5nIHRyb2kg cGhpYSB0cjZlbiBCaWVuIERvbmcgbmh1IGRhIGR1b2MgcXV5IGRpbmggYm9pIA0KY2FjIG5ndXll biB0YWMgcGhvIGNhcCBjdWEgbHVhdCBwaGFwIFF1b2MgdGUsIGtlIGNhIENvbmcgdW9jIExpZW4g aG9wIHF1b2MgdmUgTHVhdCANCmJpZW4gbmFtIDE5ODIuDQoNCjIpIENhYyBiZW4gbGllbiBxdWFu IGNhbSBrZXQgZ2lhaSBxdXlldCBuaHVuZyB0cmFuaCBjaGFwIGxhbmggdGhvIHZhIHF1eWVuIHRh aSBwaGFuIA0KYmFuZyBjYWMgYmllbiBwaGFwIGhvYSBiaW5oLCBraG9uZyBkZSBkb2Egc3UgZHVu ZyBoYXkgc3UgZHVuZyB2dSBsdWMsIHRob25nIHF1YSB0aGFtIA0Ka2hhbyB5IGtpZW4gdmEgdGho dW9uZyBsdW9uZyBodXUgbmdoaSBnaXVhIGNhYyBxdW9jIGdpYSBjbyBjaHUgcXV5ZW4gdHJ1YyB0 aWVwIGxpZW4gDQpxdWFuLCBwaHUgaG9wIHZvaSBjYWMgbmd1eWVuIHRhYyBwaG8gY2FwIGN1YSBs dWF0IHBoYXAgcXVvYyB0ZSwgdHJvbmcgZG8gY28gQ29uZyB1b2MgDQpMaWVuIGhvcCBxdW9jIHZl IEx1YXQgYmllbiBuYW0gMTk4Mi4NCg0KMykgQ2FjIGJlbiBsaWVuIHF1YW4gY2FtIGtldCB0dSBr aWVtIGNoZSBraG9uZyB0aWVuIGhhbmggY2FjIGhvYXQgZG9uZyBsYW0gcGh1YyB0YXAgDQpob2Fj IGdpYSB0YW5nIGNhYyB0cmFuaCBjaGFwIHZhIGFuaCBodW9uZyB0b2kgaG9hIGJpbmggdmEgb24g ZGluaCwga2UgY2Ega2hvbmcgdGllbiBoYW5oIA0KY2FjIGhvYXQgZG9uZyBkdWEgbmd1b2kgZGVu IHNpbmggc29uZyB0cmVuIGNhYyBkYW8sIGJhaSBkYSBuZ2FtLCBiYWkgY2F0IG5nYW0sIGRhaSBk YSANCm5nYW0gdmEgbmh1bmcgY2F1IHRydWMga2hhYyBoaWVuIGNodWEgY28gbmd1b2kgZGluaCBz b25nIHZhIHh1IGx5IGNhYyBiYXQgZG9uZyBtb3QgDQpjYWNoIHhheSBkdW5nLg0KDQpOaHVuZyBw aGlhIFRydW5nIFF1b2MgdmFuIHR1IHR1bmcgdHUgdGFjIHRoYW8gdHVuZyB2YSBkYW5nIHRpbSBj YWNoIGRvYyBxdXllbiB2dW5nIA0KYmllbiBxdWFuIHRyb25nIG5heSBiYW5nIGFwIGx1YyBxdWFu IHN1IG5oYW0gdGhhbmcgdmFvIFZpZXQgTmFtIGxhIHF1b2MgZ2lhIGNvIHZpIHRyaSANCmNoaWVu IGx1b2MgcXVhbiB0cm9uZyBuaGF0IHRyb25nIGtodSB2dWMuDQoNClZheSBtYSBvbmcgVGhhbmgg dmFuIG5nYXkgdGhvIGNhIHR1bmcgbGFwIHRydW9uZyBjdWEgVHJ1bmcgUXVvYyBkdWEgcmEgdGFp IEhvaSBuZ2hpIA0KVGFuIEdpYSBCYTogIlRydW5nIFF1b2MgdGhpIHR1eWVuIGJvLCBraG9uZyBj byBiYSBxdXllbiwga2hvbmcgYmFuaCB0cnVvbmcgdmEgbHVvbiANCmx1b24gcGhhaSB4YXkgZHVu ZyBraHUgdnVjIGhhaSBob2EsIHRoZSBnaW9pIGhhaSBob2EsIGdpdSBtb2kgdHJ1b25nIGhvYSBi aW5oIG9uIGRpbmggZGUgDQpwaGF0IHRyaWVuIGRhdCBudW9jIFRydW5nIFF1b2MuIENhaSBkbyBj dW5nIGxhIHBodSBob3Agdm9pIGxvaSBpY2ggY2h1bmcgY3VhIGNhYyBudW9jIA0KdHJvbmcga2h1 IHZ1YyBoaWVuIG5heSIuDQoNClZheSBuZ3VvaSBkYWkgZGllbiBUcnVuZyBIb2EgZGEgbm9pIGdp ID8gQmFvIFF1YW4gRG9pIE5oYW4gRGFuIG5nYXkgVGh1IEJheSwgDQowNS8wNi8yMDEwLCBkYSB0 cmluaCB0cm9uZyBkaWNoIGx1b24gbW90IGRvYW46ICJUaHVvbmcgdHVvbmcgTWEgSGlldSBUaGll biBjdW5nIG5vaSANCnRoZW0gcmFuZywgVHJ1bmcgUXVvYyBoaWVuIG5heSBraG9uZyBjbyB5IGRv IGJhbmggdHJ1b25nLCBiYSBxdXllbiBuaHUgbmhpZXUgeSBraWVuIA0KcXVhbiBuZ2FpLiAiTmdh eSBuYXkgbmhpZXUgbmd1b2kgdmFuIG5oaW4gc3UgcGhhdCB0cmllbiBjdWEgVHJ1bmcgUXVvYyB2 b2kgc3UgbmdoaSANCm5nYWkgdmEgbG8gbGFuZyByYW5nLCBraGkgVHJ1bmcgUXVvYyBtYW5oIGxl biBzZSBiYW5oIHRydW9uZywgYmEgcXV5ZW4gZ2lvbmcgbmh1IG5oaWV1IA0KcXVvYyBnaWEgcGh1 b25nIFRheSB0dW5nIGxhbS4gVmUgbXVjIGRvIG5hbyBkbywgbmh1bmcgbG8gbGFuZyBjdWEgaG8g Y28gdGhlIGhpZXUgDQpkdW9jLiBUcm9uZyBsaWNoIHN1IGhpZW4gZGFpLCBjaHUgbmdoaWEgYmEg cXV5ZW4gZGEgZ2F5IG5oaWV1IGtobyBkYXUgY2hvIGNvbiBuZ3VvaSANCnRyZW4ga2hhcCB0aGUg Z2lvaS4gQ2h1bmcgdGEga2hvbmcgYmFvIGdpbyBkdW9jIHF1ZW4gbmh1bmcgYmFpIGhvYyBsaWNo IHN1LiBNYXkgbWFuIA0KdGhheSwgbmh1bmcgYmFpIGhvYyB2YSBuaHVuZyBnaWEgdHJpIHRyYWkg cXVhIHRob2kgZ2lhbiBjbyB0aGUgZGFuIGNodW5nIHRhIHZ1b3QgcXVhIA0Kbmh1bmcgdm9uZyB4 b2F5IHRyZW4gY29uIGR1b25nIHBoaWEgdHJ1b2MiLg0KDQpSbyB0aGF0IGxhIG5nbyBuZ2hlY2gs IG5ldSBjdSB0aW4gdmFvIG5odW5nIGxvaSBub2kgImR1b25nIG1hdCIgbyBkYXUgbW9pIGNob3Qg bHVvaSBjdWEgDQpuZ3VvaSBUYXUgdGhpIGNoYW5nIGtoYWMgbmFvIGRlbSB0aG9jIGdpb25nIGRp IGRvaSBsYXkgbWF5IGdvaSBtaSBhbiBsaWVuIQ0KDQpCYWMgS2luaCBub2kgaG8ga2hvbmcgYmEg cXV5ZW4sIG5odW5nIFRhdSBkYSBhbiBoaWVwIFZpZXQgTmFtIG8gdHJlbiBkYXQgbGllbiBxdWEg DQpIaWVwIGRpbmggdmUgQmllbiBnaW9pIGdpdWEgVmlldCBOYW0gdmEgVHJ1bmcgUXVvYyBuYW0g MTk5OSB2YSBiYXkgZ2lvIG8gQmllbiBEb25nIA0KcXVhIEhpZXAgZGluaCBwaGFuIGRpbmggVmlu aCBCYWMgQm8gbmFtIDIwMDAuIFRydW5nIFF1b2MgY29uIHR1IGJpYSByYSByYW5oIGdpb2kgDQps YW5oIHRobyBjdWEgbWluaCBvIEJpZW4gRG9uZyBiYW5nIGRpZW4gdGljaCBjaGllbSB0dSA4MCBk ZW4gODUgcGhhbiB0cmFtIHRyb25nIGNhaSANCmhpbmggTHVvaSBCbyBiYW8gZ29tIGhldCBjYSAy IFF1YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBTYSBjdWEgVmlldCBOYW0uDQoNClRodSB0dSwg dmF5IG1hIHRhaSBzYW8gb25nIFRoYW5oIGxhaSBiaWEgcmEgInZhbiBkZSBsaWNoIHN1IGRlIGxh aSIgZGUgYmllbiBtaW5oIGNobyBhbSANCm11dSBjdWEgVGF1IG11b24gY2hpZW0gZG9uZyBsYW5o IHRobyBjdWEgVmlldCBOYW0/DQoNCk9uZyBUaGFuaCBoYXkgZHVhIGJhbmcgY2h1bmcgcmEgZGUg YmFvIHZlIGNobyBxdWFuIGRpZW0gY3VhIG1pbmgsIG5ldSBraG9uZyB0aGkgbGFwIA0KbHVhbiBo byBkbyBuYXkgY2hpIG5lbiBjb2kgbGEgaGFuaCBkb25nICJub2kgZ2lhbyBjaG8gZ2lhYyIuICAN Cg0KVGFpIHNhbyBhbmggZW0gImh1dSBuZ2hpIiB2b2kgbmhhdSBtYSBQaHVuZyBRdWFuZyBUaGFu aCBraG9uZyBkYW0ga2hhbmcga2hhaSANCnRydW9jIFRydW5nIFF1b2MgbWEgbGFpIGR1bmcgbmhp ZXUgbG9pIGxlIGRlIG1vbiB0cm9uIHZhIGJvIGRvIEJhYyBLaW5oIHRhaSBIb2kgbmdoaSANClF1 b2MgdGUgcXVhbiB0cm9uZyBuYXk/IFZhIHZvaSB0dSBjYWNoIGxhIEJvIHRydW9uZyBRdW9jIHBo b25nIHRhaSBzYW8gb25nIFRoYW5oIGRhIA0KZGFuaCBtYXQgZGFuaCBkdSBjdWEgdG8gcXVvYyB2 YSBjdWEgY2hpbmggbWluaCwgaGF5IGxhIG9uZyBUaGFuaCBraG9uZyBjb24gbGEgbmd1b2kgVmll dCBOYW0gbnVhPyANCg0KaHR0cDovL25ndW9pLXZpZXQuY29tL2Fic29sdXRlbm0vYW5tdmlld2Vy LmFzcD9hPTEwNTg3MyZ6PTEgTW9uZGF5LCBEZWNlbWJlciAyMSwgMjAwOQ0KDQpUdW9uZyBQaHVu ZyBRdWFuZyBUaGFuaCAibm9pIHNhaSBzdSB0aGF0Ig0KIA0KQm8gVHJ1b25nIFF1b2MgUGhvbmcg SG9hIEt5IFJvYmV0IEdhdGVzIChiZW4gcGhhaSkgZG9uIEJvIFRydW9uZyBRdW9jIFBob25nIA0K UGh1bmcgUXVhbmcgVGhhbmggdmFvIE5ndSBHaWFjIERhaSBuZ2F5IDE1IFRoYW5nIE11b2kgSGFp LCAyMDA5IHZ1YSBxdWEuIChIaW5oOiANCkFGUC9HZXR0eSBJbWFnZXMpDQoNClNBTiBKT1NFLCBD QSAoTlYpIC0gQm8gdHJ1b25nIFF1b2MgcGhvbmcgVmlldCBOYW0sIFR1b25nIFBodW5nIFF1YW5n IFRoYW5oLCANCmtoaSB0cmEgbG9pIHBob25nIHZhbiBjdWEgVGhvbmcgVGFuIFhhIFZpZXQgTmFt IChUVFhWTikgdmUgY2h1eWVuIHRoYW0gTXksIG5vaSANCnJhbmcsIG9uZyBkYSBkZSBuZ2hpIHZv aSBoYWkgbmdoaSBzaSBNeSBuaGlldSBhbmggaHVvbmcgKEphbWVzIFdlYmIgdmEgSm9obiBNY0Nh aW4pLCANCm5nYW4gY2hhbiAiRHUgbHVhdCBOaGFuIHF1eWVuIFZpZXQgTmFtIiB0aGFvIGx1YW4g byBUaHVvbmcgVmllbiB2YSBkYSBkdW9jICJkb25nIA0KdGluaC4iIE5odW5nIG1vdCBkaWVuIHRo dSBjdWEgdmFuIHBob25nIE5naGkgU2kgSmFtZXMgSC4gV2ViYiBnb2kgY2hvIEJhYyBTaSANCk5n dXllbiBYdWFuIE5nYWksIHBodSBuaGFuIHZpZWMgbmF5Lg0KDQoiTmdheSAxNyBUaGFuZyBNdW9p IEhhaSwgMjAwOSwga2hpIHRvaSB0aGF5IHRob25nIHRhbiB4YSBWTiBkYW5nIGNhaSB0aW4gZG8s IHRvaSBnb2kgDQpkaWVuIHRob2FpIGhvaSB2YW4gcGhvbmcgY3VhIE5naGkgU2kgV2ViYiBsaWVu IHZhIGR1b2MgaG8gdHJhIGxvaSBiYW5nIGRpZW4gdGh1IHBodSANCm5oYW4gaG9hbiB0b2FuLiIg QmFjIFNpIE5ndXllbiBYdWFuIE5nYWkgY2hvIGJhbyBOZ3VvaSBWaWV0IGJpZXQgaG9tIFRodSBI YWkgMjEgVGhhbmcgTXVvaSBIYWksIDIwMDkuDQoNClZpIGtob25nIG11b24gdGlldCBsbyBkYW5o IHRpbmggbmd1b2kgY3VuZyBjYXAgdGluLCBCYWMgU2kgTmdhaSBkb2MgY2hvIE5ndW9pIFZpZXQg bm9pIA0KZHVuZyBjdWEgYnVjIGRpZW4gdGh1IHR1IHZhbiBwaG9uZyBOZ2hpIFNpIFdlYmIgdHJv bmcgZG8gY28gY2F1LCAiVGhlIGlzc3VlIG9mIA0KVmlldG5hbSBIdW1hbiBSaWdodHMgQmlsbCB3 ZXJlIG5vdCByYWlzZWQgaW4gdGhlIG1lZXRpbmciIChWYW4gZGUgdmUgRHUgTHVhdCBOaGFuIA0K UXV5ZW4gVmlldCBOYW0gZGEga2hvbmcgZHVvYyBuZXUgcmEgdHJvbmcgY3VvYyB0aWVwIHh1Yykg Z2l1YSBvbmcgUGh1bmcgUXVhbmcgDQpUaGFuaCB2b2kgTmdoaSBTaSBXZWJiLg0KDQpUaGVvIGxv aSBCYWMgU2kgTmdhaSwgbmd1b2kgeGFjIG5oYW4gdm9pIG9uZyB2ZSBub2kgZHVuZyBjdW9jIHRp ZXAgeHVjIGdpdWEgbmdoaSBzaSANCldlYmIgdmEgQm8gVHJ1b25nIFF1b2MgUGhvbmcgUGh1bmcg UXVhbmcgVGhhbmggbmdheSAxNSBUaGFuZyBNdW9pIEhhaSwgMjAwOSwgDQpkYSBjbyBtYXQgdHJv bmcgY3VvYyBob3AuIE9uZyBOZ2FpIGtob25nIG11b24gdGlldCBsbyBkYW5oIHRhbmggdmllbiBj aHVjIHZhbiBwaG9uZyANCk5naGkgU2kgV2ViYiBjdW5nIG5odSBraG9uZyBtdW9uIGNvbmcgYm8g dGF0IGNhIG5vaSBkdW5nIGJ1YyBkaWVuIHRodS4gT25nIGNoaSBub2kgDQpidWMgZGllbiB0aHUg Y29uIGdvbSBuaGlldSBjaGkgdGlldCBraGFjIGxpZW4gcXVhbiBkZW4gY3VvYyB0aWVwIHh1YyBn aXVhIE5naGkgU2kgV2ViYiANCnZhIG9uZyBUaGFuaC4NCg0KTmdheSAxNyBUaGFuZyBNdW9pIEhh aSwgMjAwOSwgVFRYVk4gcGhvIGJpZW4gY3VvYyBwaG9uZyB2YW4gY3VhIGNvIHF1YW4gbmF5IHZv aSANCkJvIFRydW9uZyBRdW9jIFBob25nIFBodW5nIFF1YW5nIFRoYW5oLiBUcm9uZyBjdW9jIHBo b25nIHZhbiwgb25nIFRoYW5oIG5vaSANCiJUcm9uZyBjdW9jIGdhcCB2b2kgY2FjIFRodW9uZyBO Z2hpIFNpIEphbWVzIEguV2ViYiB2YSBKb2huIE1jQ2FpbiwgdG9pIGRhIGRlIG5naGkgDQp2b2kg aG8gdHJlbiBjdW9uZyB2aSB2YSBraGEgbmFuZyBjdWEgbWluaCwgbmdhbiBraG9uZyBkdWEgZHUg bHVhdCBuaGFuIHF1eWVuIGNobyBWaWV0IA0KTmFtIHJhIFRodW9uZyBWaWVuLCBobyBkYSBkb25n IHRpbmgga2hvbmcgZGUgdmllYyBkbyB4YXkgcmEuIg0KDQpOaHUgdmF5LCBvbmcgVGhhbmggZGEg Im5vaSB0aGF5IiBuZ2hpIHNpIE15IGRpZXUgaG8ga2hvbmcgbm9pIHZhIGN1bmcga2hvbmcgdGhh byANCmx1YW4gdm9pIG9uZy4NCg0KIkRpZXUgdG9pIGR1b2MgeGFjIG5oYW4gdHJhaSBuZ3VvYyBo b2FuIHRvYW4gdm9pIG5odW5nIGdpIG9uZyBCbyBUcnVvbmcgUXVvYyBQaG9uZyANClZpZXQgTmFt IGRhIG5vaSB0cm9uZyBjdW9jIHBob25nIHZhbiBiYW8gY2hpLiIgT25nIE5nYWkgbm9pLCAiVG9p IG5nYWMgbmhpZW4gdmEgdGhheSANCnNvYyBraGkgdGhheSBvbmcgYm8gdHJ1b25nIFF1b2MgUGhv bmcgVk4gbGFpIGRhbiBsb2kgdmkgbmdoaSBzaSBNeSB2ZSBtb3QgZGUgdGFpIA0Ka2hvbmcgaGUg ZHVvYyBuZXUgcmEgdHJvbmcgY3VvYyBnYXAgbWF0LiINCg0KRHVvYyBiaWV0LCBCYWMgU2kgTmdh aSBjdW5nIGRhIGdhcCBUaHVvbmcgTmdoaSBTaSBKYW1lcyBILiBXZWJiIG5nYXkgMTYgVGhhbmcg Q2hpbiwgMjAwOSB2dWEgcXVhLiANCkRpcCBuYXksIEJhYyBTaSBOZ2FpIGNobyBoYXksIFRodW9u ZyBWaWVuIEhvYSBLeSBxdWEgYmFuIHJvbiB2b2kgdmFuIGRlIGJhbyBoaWVtIHkgDQp0ZSBjaG8g ZGFuIGNodW5nIG5lbiBwaGFpIHNhbmcgbmFtIHRvaSBEdSBsdWF0IE5oYW4gUXV5ZW4gVmlldCBO YW0gbW9pIGR1b2MgcXVhbiB0YW0gdHJvIGxhaS4gQ3VuZyBjbyB0aGUgDQptb3Qgc28gbmdoaSBz aSBzZSBjaG9uZyB2YSBjaGkgbXVvbiB0aGFvIGx1YW4sIGhvcCB0YWMsIGR1b2kgY2FjIGhpbmgg dGh1YyBraGFjIGNodSBraG9uZyBtdW9uIGR1bmcgbHVhdC4NCg0KQmluaCBsdWFuIHZlIHN1IHZp ZWMgVHVvbmcgUGh1bmcgUXVhbmcgVGhhbmggbm9pIHNhaSBzdSB0aGF0IHZlIGN1b2MgZ2FwIGdv IFROUyANCldlYmIsIEdpYW8gU3UgTmd1eWVuIE5nb2MgQmljaCwgbmd1eWVuIEdpYW0gZG9jIEJh biBWaWV0IE5ndSBEYWkgQSBDaGF1IFR1IERvLCANCm5vaSB2b2kgTmd1b2kgVmlldCByYW5nLCAi VG9pIG5naGkgbGEgY28gdGhlIG9uZyBQaHVuZyBRdWFuZyBUaGFuaCBkYSBkZW0gdmFuIGRlIA0K bmhhbiBxdXllbiByYSwgbmhhYyB0b2kgdmFuIGRlIG5oYW4gcXV5ZW4gdmkgaG8gcmF0IGxvIHJh bmcgZHUgbHVhdCBuaGFuIHF1eWVuIGNvIHRoZSBzZSANCmR1b2MgdGhvbmcgcXVhIG8gVGh1b25n IFZpZW4sIG5odW5nIG1hIHBoaWEgTXkgY2hhYyBjaGFuIGxhIGhvIGtob25nIHRyYSBsb2kgdmkg ZG9uIA0KZ2lhbiBkbyBsYSB2aWVjIGN1YSBuZ3VvaSBNeSB2aSBobyBraG9uZyBiYW4gcmEgdmFu IGRlIG5vIG5nb2FpIGRlIGN1YSBuZ2hpIHRyaW5oIHRoYW5oIA0KcmEgY28gbGUgdGluaCB0cmFu ZyBubyBsYSBuaHUgdmF5LCBvbmcgVGhhbmggbGFpIG5vaSByYW5nIGxhIG9uZyBNY0NhaW4gdmEg b25nIFdlYmIgY28gDQpodWEgaGVuIHRoaSB0b2kgc28gcmFuZyBkaWV1IGRvIGxhIGtob25nIGNv LiINCg0KT25nIFBodW5nIFF1YW5nIFRoYW5oIGRlbiB0aGFtIE15IHZhbyBjYWMgbmdheSB0dSAx MiBkZW4gMTUgVGhhbmcgTXVvaSBIYWksIA0KMjAwOS4gT25nIGRhIGRlbiBOZ3UgR2lhYyBEYWkg dGhhbyBsdWFuIHZvaSBCbyBUcnVvbmcgUXVvYyBQaG9uZyBSb2JlcnQgR2F0ZXMgdmEgDQpub2kg ZHVuZyBjdW9jIGdhcCBraG9uZyBkdW9jIGJhbyBjaGkgdHVvbmcgdGh1YXQgbmh1bmcgZGlldSBu Z3VvaSB0YSBtdW9uIGJpZXQuIA0KTmh1bmcgVFRYVk4ga2hpIGR1YSBjdW9jIHBob25nIHZhbiBv bmcgVGhhbmggbGVuIG1hbmcgdGhpIHRoYXkgdHJvbmcgZG8gY28gY2F1LCANCiJUb2kgY3VuZyBk YSBkZSBuZ2hpIHZvaSBjYWMgVGh1b25nIE5naGkgU2kgSmFtZXMgSC5XZWJiIHZhIEpvaG4gTWND YWluIHZhbiBkb25nIA0KUXVvYyBIb2kgTXkgZ28gYm8gbGVuaCBjYW0gdmFuIGJhbiB2dSBraGkg c2F0IHRodW9uZyBkb2kgdm9pIFZpZXQgTmFtLiBIYWkgdGh1b25nIA0KbmdoaSBzaSBodWEgc2Ug dGhhbyBsdWFuIHZvaSBjYWMgZG9uZyBuZ2hpZXAgY3VhIG1pbmggdmUgdmFuIGRlIG5heS4iIChU TikgDQoNCmh0dHA6Ly8xbmd1b2l2aWV0LndvcmRwcmVzcy5jb20vMjAxMC8wMi8wOS9kJWM2JWEx bi10JWUxJWJiJTkxLWNhby0lZTElYmIlYTd5LXZpZW4tY2hpbmgtdHIlZTElYmIlOGItYiVlMSVi YiU5OS1raWVtLWIlZTElYmIlOTktdHIlYzYlYjAlZTElYmIlOWZuZy1xdSVlMSViYiU5MWMtcGhv bmctcGh1bmctcXVhbmctdGhhbmgvDQoNCkxHVDogR2FuIGRheSBjbyAxIGxhIGRvbiBjdWEgdGFj IGdpYSBOZ3V5ZW4gSG9uZyBIYWkgZGFpIGRpZW4gY2hvIGNhYyB0dW9uZyBsaW5oIA0KbyBCbyBR dW9jIHBob25nLCB0byBjYW8gbmh1bmcgc2FpIHBoYW0gbmdoaWVtIHRyb25nIHRyb25nIHF1YW4g ZG9pLCB0cm9uZyBCbyBxdW9jIHBob25nIA0KdmEgbGllbiBxdWFuIHRvaSBCbyB0cnVvbmcgQm8g UXVvYyBwaG9uZyBQaHVuZyBRdWFuZyBUaGFuaC4gQ2h1bmcgdG9pIHhpbiBkYW5nIGxhaSwgZ2lv aSB0aGlldSBjdW5nIGJhbiBkb2MuICANCg0KRG9uIHRvIGNhbyBVeSB2aWVuIENoaW5oIHRyaSBi byBraWVtIEJvIHRydW9uZyBRdW9jIHBob25nIFBodW5nIFF1YW5nIFRoYW5oDQogDQpDb25nIGhv YSB4YSBob2kgY2h1IG5naGlhIFZpZXQgTmFtIA0KRG9jIGxhcCAtIHR1IGRvIC0gaGFuaCBwaHVj IA0KKioqDQpIYSBOb2ksIG5nYXkgMjggdGhhbmcgMTEgbmFtIDIwMDkNCg0KRG9uIFRvIENhbyAN Cg0KS2luaCBndWk6IA0KMS4gRC9jIE5vbmcgRHVjIE1hbmggLSBUb25nIGJpIHRodSBVQlRXIERh bmcgQ1NWTiwNCjIuIEQvYyBOZ3V5ZW4gTWluaCBUcmlldCAtIENodSB0aWNoIG51b2MgQ0hYSENO IFZpZXQgTmFtLCANCjMuIEQvYyBOZ3V5ZW4gUGh1IFRyb25nIC0gQ2h1IHRpY2ggUXVvYyBob2kg bnVvYyBDSFhIQ04gVmlldCBuYW0sIA0KNC4gRC9jIE5ndXllbiBUYW4gRHVuZyAtIFRodSB0dW9u ZyBDaGluaCBwaHUgbnVvYyBDSFhIQ04gVmlldCBOYW0sDQo1LiBEL2MgVHJ1b25nIFRhbiBTYW5n IC0gIFVWQkNUIC0gVGh1b25nIHRydWMgYmFuIGJpIHRodSBUVyBEYW5nLA0KNi4gRC9jIFRydW9u ZyBWaW5oIFRyb25nIC0gVVZCQ1QgLSBQaG8gVC5UdW9uZyBudW9jIENIWEhDTiBWaWV0IE5hbSwN CjcuIEQvYyBOZ3V5ZW4gU2luaCBIdW5nIC0gUGhvIFQuVHVvbmcgbnVvYyBDSFhIQ04gVmlldCBO YW0sDQo4LiBEL2MgTGUgSG9uZyBBbmggLSBVVkJDVCAtIEJvIHRydW9uZyBDb25nIEFuLA0KOS4g RC9jIFRvIEh1eSBSdWEgLSBVVkJDVCAtIFRydW9uZyBCYW4gVHUgdHVvbmcgVmFuIGhvYSBUVywN CjEwLiBEL2MgTmd1eWVuIFZhbiBUcmkgLSBVVkJDVCAtIFRydW9uZyBiYW4ga2llbSB0cmEgVFcg RGFuZywNCjExLiBEL2MgSG8gRHVjIFZpZXQgLSBVVkJDVCAtIFRydW9uZyBiYW4gVG8gY2h1YyBU VywgDQoxMi4gRC9jIFBoYW0gR2lhIEtoaWVtIC0gVVZCQ1QgLSBQaG8gVC5UdW9uZyBDaGluaCBw aHUgbnVvYyBDSFhIQ04gVmlldCBOYW0gDQoxMy4gRC9jIFBoYW0gUXVhbmcgTmdoaSAtIFVWQkNU IC0gQmkgdGh1IHRoYW5oIHV5IEhhIE5vaSwgDQoxNC4gRC9jIExlIFRoYW5oIEhhaSAtIFVWQkNU IF8gQmkgdGh1IHRoYW5oIHV5IFRQIEhvIENoaSBNaW5oIA0KMTUuIEQvYyBOZ3V5ZW4gVGhpZW4g TmhhbiAtIFBobyBULlR1b25nIENoaW5oIHBodSBudW9jIENIWEhDTiBWaWV0IE5hbSwgDQoxNi4g RC9jIEhvYW5nIFRydW5nIEhhaSAtIFBobyBUaHUgdHVvbmcgQ2hpbmggcGh1IG51b2MgQ0hYSENO IFZpZXQgTmFtLCANCjE3LiBEL2MgTGUgVmFuIER1bmcgLSBDaHUgbmhpZW0gVG9uZyBjdWMgY2hp bmggdHJpIFFORFZOLA0KMTguIEQvYyBOZ3V5ZW4gS2hhYyBOZ2hpZW0gLSBUb25nIHRoYW0gbXV1 IHRydW9uZyBRRE5EVk4sDQoxOS4gRC9jIE5ndXllbiBIdXkgSGlldSAtIFRodSB0cnVvbmcgQm8g cXVvYyBwaG9uZywgDQoyMC4gRC9jIFBoYW4gVHJ1bmcgS2llbiAtIFRodSB0cnVvbmcgQm8gcXVv YyBwaG9uZywgDQoyMS4gRC9jIFRydW9uZyBRdWFuZyBLaGFuaCAtIFRodSB0cnVvbmcgQm8gcXVv YyBwaG9uZywgDQoyMi4gRC9jIE5ndXllbiBWYW4gRHVvYyAtIFRodSB0cnVvbmcgQm8gcXVvYyBw aG9uZywgDQoyMy4gRC9jIE5ndXllbiBDaGkgVmluaCAtIFRodSB0cnVvbmcgQm8gcXVvYyBwaG9u ZywgDQoyNC4gTGFuaCBkYW8gVG9uZyBjdWMgY2hpbmggdHJpIFF1YW4gZG9pIG5oYW4gZGFuIFZp ZXQgTmFtLCANCjI1LiBMYW5oIGRhbyBUb25nIGN1YyBIYXUgY2FuIFF1YW4gZG9pIG5oYW4gZGFu IFZpZXQgTmFtLCANCjI2LiBMYW5oIGRhbyBUb25nIGN1YyBLeSB0aHVhdCBRRE5EVk4NCjI3LiBM YW5oIGRhbyBUb25nIGN1YyBDb25nIG5naGllcCBRdW9jIHBob25nIFFETkRWTg0KMjguIExhbmgg ZGFvIFRvbmcgY3VjIFRpbmggYmFvIC0gUURORFZOIChUb25nIGN1YyBJSSkgDQoyOS4gTGFuaCBk YW8gQm8gVHUgbGVuaCBRdWFuIGtodSAxIA0KMzAuIExhbmggZGFvIEJvIFR1IGxlbmggUXVhbiBr aHUgMiANCjMxLiBMYW5oIGRhbyBCbyBUdSBsZW5oIFF1YW4ga2h1IDMgDQozMi4gTGFuaCBkYW8g Qm8gVHUgbGVuaCBRdWFuIGtodSA0IA0KMzMuIExhbmggZGFvIEJvIFR1IGxlbmggUXVhbiBraHUg NSANCjM0LiBMYW5oIGRhbyBCbyBUdSBsZW5oIFF1YW4ga2h1IDcgDQozNS4gTGFuaCBkYW8gQm8g VHUgbGVuaCBRdWFuIGtodSA5IA0KMzYuIExhbmggZGFvIEJvIFR1IGxlbmggLSBRdWFuIGNodW5n IFBob25nIGtob25nIC0gS2hvbmcgcXVhbiwgIA0KMzcuIExhbmggZGFvIEJvIFR1IGxlbmggUXVh biBjaHVuZyBIYWkgcXVhbiwgDQozOC4gTGFuaCBkYW8gQm8gVHUgbGVuaCAtIEJpbmggY2h1bmcg dGFuZyAtIFRoaWV0IGdpYXAgDQozOS4gTGFuaCBkYW8gQm8gVHUgbGVuaCAtIEJpbmggY2h1bmcg UGhhbyBiaW5oIA0KNDAuIExhbmggZGFvIEJvIFR1IGxlbmggLSBCaW5oIGNodW5nIEhvYSBob2Mg DQo0MS4gTGFuaCBkYW8gQm8gVHUgbGVuaCAtIEJpbmggY2h1bmcgQ29uZyBiaW5oIA0KNDIuIExh bmggZGFvIEJvIFR1IGxlbmggLSBUaG9uZyB0aW4gbGllbiBsYWMgDQo0My4gTGFuaCBkYW8sIGNo aSBodXkgQmluaCBkb2FuIDEyIA0KNDQuIExhbmggZGFvLCBjaGkgaHV5IEJpbmggZG9hbiAxNQ0K NDUuIExhbmggZGFvLCBjaGkgaHV5IEJpbmggZG9hbiAxNiANCjQ2LiBMYW5oIGRhbyAtIFRvbmcg Y29uZyB0eSBWaWVuIHRob25nIHF1YW4gZG9pIChWaWV0dGVsKQ0KNDcuIExhbmggZGFvIC0gQ2hp IGh1eSBjYWMgaG9jIHZpZW4sIG5oYSB0cnVvbmcgdHJvbmcgUXVhbiBkb2ksIA0KNDguIENhYyBk b25nIGNoaSBVeSB2aWVuIFRydW5nIHVvbmcgRGFuZy4NCg0KRG9uZyBraW5oIGd1aToNCjEuIEQv YyBOZ3V5ZW4gWHVhbiBQaHVjIC0gQm8gdHJ1b25nIC0gQ2h1IG5oaWVtIFZhbiBwaG9uZyBDaGlu aCBwaHUgDQoyLiBEL2MgUGh1bmcgSHV1IFBodSAtIFVWVFcgRGFuZywgUGhvIGJhbiB0aHVvbmcg dHJ1YyBCYW4gdHUgdHVvbmcgVmFuIEhvYSBUVywgDQozLiBEL2MgTmd1eWVuIEJhYyBTb24gLSBV VlRXIERhbmcgLSBQaG8gQmFuIHR1IHR1b25nIFZhbiBob2EgVFcgDQo0LiBEL2MgTmd1eWVuIFRo aSBEb2FuIC0gUGhvIGNodSB0aWNoIG51b2MgQ0hYSENOVk4gDQo1LiBEL2MgVG9uZyBUaGkgUGhv bmcgLSBQaG8gQ2h1IHRpY2ggUXVvYyBob2kgbnVvYyBDSFhIQ05WTiANCjYuIEQvYyBMZSBLaGEg UGhpZXUgLSBOZ3V5ZW4gVG9uZyBiaSB0aHUgVFcgRGFuZyBDU1ZOIA0KNy4gRC9jIFBoYW0gVmFu IFRyYSAtIE5ndXllbiBCbyB0cnVvbmcgQm8gUXVvYyBwaG9uZywgDQo4LiBEL2MgQ2h1IG5oaWVt IFV5IGJhbiBraWVtIHRyYSBEYW5nIHV5IFFTVFcgLSBCbyBRdW9jIHBob25nIA0KOS4gRC9jIFRy YW4gSGFuaCAtIENodSB0aWNoIFRXIGhvaSBDQ0IgVmlldCBOYW0gDQoxMC4gRC9jIFRyYW4gRHVj IEx1b25nIC0gTmd1eWVuIENodSB0aWNoIG51b2MgQ0hYTkNOIFZpZXQgTmFtIA0KMTEuIENhdSBs YWMgYm8gaHV1IHRyaSBUaGFuZyBMb25nIC0gSGEgTm9pIA0KMTIuIDYzIChzYXUgbXVvaSBiYSkg Qm8gY2hpIGh1eSBxdWFuIHN1IHRpbmgsIHRoYW5oIHBobyB0cmVuIGNhYyBudW9jLA0KDQpLaW5o IHRodWEgY2FjIGRvbmcgY2hpOiANCg0KQ2h1bmcgdG9pIGR1b2MgYmlldCBjYWMgZG9uZyBjaGkg bGFuaCBkYW8gRGFuZywgTmhhIG51b2MsIGNoaW5oIHBodSBiYW4gcmF0IG5oaWV1IGNvbmcgDQp2 aWVjIGRlIHRhcCB0cnVuZyBsbyBjaG8gRGFuZywgY2hvIGRhbiwgdHJvbmcgYm9pIGNhbmggZGF0 IG51b2MgZGFuZyBnYXAgcGhhaSBjYWMgdHJhbiANCmJhbyBsdSBob2FuaCBoYW5oIGNhYyB0aW5o IG1pZW4gVHJ1bmcgdmEgVGF5IE5ndXllbiBnYXkgdGhpZXQgaGFpIHF1YSBsb24gdmUgbmd1b2kg dmEgDQpjdWEuIE1hdCBraGFjIGNhYyBkb25nIGNoaSBkYW5nIHBoYWkgdGFwIHRydW5nIGxhbmgg ZGFvLCBkaWV1IGhhbmggZGF0IG51b2MgdnVvdCBxdWEgDQpjdW9jIGtodW5nIGhvYW5nIHRvYW4g Y2F1IHRyb25nIGRvIGNvIG51b2MgdGEuIE1hYyBkdSB2YXkgY2h1bmcgdG9pIGRhaSBkaWVuIGNh YyBkb25nIA0KY2hpIHR1b25nIGxpbmgsIHNpIHF1YW4gdGh1b2MgY28gcXVhbiBCbyBRdW9jIHBo b25nLCB4aW4gY28geSBraWVuIHF1YSBsYSBkb24gbmF5IGd1aSANCmRlbiBjYWMgZG9uZyBjaGkg bGFuaCBkYW8gRGFuZywgTmhhIG51b2MsIFF1b2MgaG9pLCBDaGluaCBwaHUsICBnaWFuaCB0aG9p IGdpYW4geGVtIA0KeGV0LCBuZ2hpZW4gY3V1IG5vaSBkdW5nIGNodW5nIHRvaSB4aW4gZHVvYyB0 cmluaCBiYXkgdHJvbmcgZG9uIHRvIGNhbyBkb25nIGNoaTogUGh1bmcgDQpRdWFuZyBUaGFuaCAt IEJvIHRydW9uZyBCbyBRdW9jIHBob25nLiBLaGkgYmFvIGNhbyB2b2kgY2FjIGRvbmcgY2hpIHRo b25nIHRpbiBuYXkgDQpjaHVuZyB0b2kgY2FtIG5oYW4gdGh1YyBsb25nIHZvIGN1bmcgZGF1IGRv biwgeG90IHhhIGNobyBkb25nIGRvaSwgZG9uZyBjaGkgY3VhIG1pbmggDQpkYW5nIG1hYyBwaGFp IG5odW5nIHNhaSBsYW0gdm8gY3VuZyB0cmFtIHRyb25nIG1hIGxhaSBsYSAxIGRvbmcgY2hpIGNo aSBodXkgZHVuZyBkYXUgDQpRdWFuIGRvaS4gQ2h1bmcgdG9pIGRhbmggZ2lhIG1vdCBjYWNoIGto YWNoIHF1YW4gbyBjb24gbmd1b2kgbmF5IGRhbiBkYW4gZGFuZyBidW9jIA0Kc2F1IHZhbyB2dW5n IGJ1biBuaG8gbmhvcCBtYSBraG9uZyBjbyBsb2kgbmFvIHRob2F0IHJhIGR1b2MuIENodW5nIHRv aSBkYW5nIHRhbiBtYXQgDQpjaHVuZyBraWVuIG5odW5nIHZpZWMgbGFtIHBoaSBuaGFuIHRpbmgg Y3VhIDEgdmkgQm8gdHJ1b25nIGRhbmcgdGhhIHN1YyB2byB2ZXQgdGllbiBjdWEsIA0KY29uZyBx dXkgY3VhIFF1YW4gZG9pIG1hIGRvIGxhIGJhbyBtbyBob2ksIG51b2MgbWF0LCBjb25nIHN1YyBj dWEgbmhhbiBkYW4gZG9uZyBnb3AgDQpkZSB0YXAgdHJ1bmcgeGF5IGR1bmcgUXVhbiBkb2kgZHUg c3VjIGxvbiBtYW5oLCBzYW4gc2FuZyBkYW5oIHRoYW5nIG1vaSBrZSB0aHUgeGFtIGx1b2MuIA0K DQpEaWVtIHRodSBuaGF0Og0KDQpEb25nIGNoaSBCbyB0cnVvbmcgZGEgbGllbiBrZXQgbGFtIGFu IHJhdCBjaGF0IGNoZSB2b2kgZG9uZyBjaGkgRGFpIHRhOiBWdW9uZyBEaW5oIA0KRHVuZyAtIEdp YW0gZG9jIENvbmcgdHkgeGFuZyBkYXUgUXVhbiBkb2kgKGxhIGRvbmcgaHVvbmcgdm9pIHZvIEJv IHRydW9uZyBQaHVuZyANClF1YW5nIFRoYW5oKSBkYSB0dSBkb25nIGJhbiByYSB0aGkgdHJ1b25n IGhvbiAyMDAwIChob24gaGFpIG5nYW4pIG0zIHhhbmcgZGF1IHR1IGNhYyANCmtobyBkdSB0cnUg c2FuIHNhbmcgY2hpZW4gZGF1IGRlIGFuIGNoZW5oIGxlY2ggZ2lhLiBRdWEgY2FjIGN1b2MgYmFu IHhhbmcgZGF1IG5heSwgQm8gDQp0cnVvbmcgbmhhbiB0cmVuIDEwMCB0eSBkb25nIHR1IHRheSBk b25nIGNoaSBWdW9uZyBEaW5oIER1bmcgaG9pIGxvIGNoby4gU28geGFuZyBkYXUgDQp0dSB5IG1h bmcgYmFuIGxhIHhhbmcgZGF1IGJhbyBkYW0gY2hvIGNvbmcgdGFjIHNhbiBzYW5nIGNoaWVuIGRh dSwgdmkgcGhhbSBuZ2hpZW0gDQp0cm9uZyBjb25nIHRhYyB0cnVjIGNoaWVuIHNhbiBzYW5nIGNo aWVuIGRhdSwgbWFjIGR1IGNhbiBibyB0cm9uZyB0b2FuIHF1YW4gcmF0IGJhdCBiaW5oLCANCmxl biBhbiBuaHVuZyBibyB0cnVvbmcgdmFuIHF1eWV0IGRpbmggZGUgdGh1YyBoaWVuLiANCg0KLSBE L2MgVnVvbmcgRGluaCBDdW5nIGNvbiB0aGFtIG11dSB2b2kgQm8gdHJ1b25nIGtob25nIHhpbiB5 IGtpZW4gbGFuaCBkYW8sIGNoaSBodXkgDQpUb25nIGN1YyBIYXUgY2FuIHR1IHkgdGh1IGhvaSAz IGtobyB4YW5nIGRhdSB0aHVvYyBxdXllbiBxdWFuIGx5IGN1YSBUb25nIGN1YyBIYXUgDQpjYW4g KDEga2hvIHRhaSB0aGFuaCBwaG8gSGFpIFBob25nLCAgMSBraG8gdGFpIHRoYW5oIHBobyBEYSBO YW5nLCAxIGtobyB0YWkgdGhhbmggcGhvIA0KTmhhIFRyYW5nKSBkZSBnaWFvIGNobyBkb25nIGNo aSBEdW5nIHRydWMgdGllcCBxdWFuIGx5IGtpbmggZG9hbmggbGF5IHRpZW4gbGFpIGhvaSBsbyBj aG8gDQpCbyB0cnVvbmcuIERlbiBraGkgbGFuaCBkYW8sIGNoaSBodXkgVG9uZyBjdWMgSGF1IGNh biBwaGF0IGhpZW4gdmEgY28geSBraWVuLCBkb25nIGNoaSANCkR1bmcgY28geGluIGxvaSBsYW5o IGRhbyBjaGkgaHV5IFRvbmcgY3VjIG5odW5nIHRyZW4gdGh1YyB0ZSB2YW4gdGh1YyBoaWVuIHRo ZW8gcXV5ZXQgDQpkaW5oIGN1YSBCbyB0cnVvbmcuIA0KDQotIExhbmggZGFvIEJvIFF1b2MgcGhv bmcgcGhhbiBjb25nIGRvbmcgY2hpIFRodW9uZyB0dW9uZyBOZ3V5ZW4gVmFuIER1b2MgdGh1IA0K dHJ1b25nIEJRUCBjaHV5ZW4gdGhlbyBkb2kga2hvaSBuZ2FuIHNhY2ggcXVvYyBwaG9uZyB2YSB4 YXkgZHVuZyBjbyBiYW4gZHVvYyBxdXllbiANCmt5IG11YSBsb2FpIHhhbmcgZGF1IChDVDEpIGRh eSBsYSBsb2FpIHhhbmcgZHVuZyBjaG8gbWF5IGJheSBsdXllbiB0YXAgU1NDRCB0aHVvYyANCnF1 YW4gY2h1bmcgcGhvbmcga2hvbmcgLSBraG9uZyBxdWFuLiBUaG9pIGRpZW0gZG9uZyBjaGkgdGh1 IHRydW9uZyBreSBnaWEgeGFuZyBkYXUgDQooQ1QxKSBvIGdpYSB0aGFwIG5odW5nIGRvIHZpZWMg dGhhbSBtdXUgY3VhIGRvbmcgY2hpIFZ1b25nIERpbmggRHVuZyB2b2kgQm8gdHJ1b25nIA0Kc2Fp LCBuaHVuZyBCbyB0cnVvbmcgdmFuIHJhIHF1eWV0IGRpbmggaHV5IGJvIHF1eWV0IGRpbmggdHJl biwga2hvbmcgbXVhIG51YS4gU2F1IGdhbiANCjEgdGhhbmcgZ2lhIHhhbmcgZGF1IGxlbiBjYW8s IGtob25nIG11YSBkdW9jIGxvYWkgeGFuZyBkYXUgbmF5IG51YSwgcXVhbiBjaHVuZyBQSy0NCktR IGtob25nIGNvIHhhbmcgZGUgaHVhbiBsdXllbiwgbHV5ZW4gdGFwIHNhbmcgc2FuIGNoaWVuIGRh dSBnYXkgcmEgdGFtIGx5IGhvYW5nIA0KbWFuZywgZGFvIGRvbmcgdHJvbmcgY29uZyB0YWMgdHJ1 Yywgc2FuIHNhbmcgY2hpZW4gZGF1IGN1YSBxdWFuIGNodW5nIFBLLUtRLiBUaWVwIGRvIA0KbGEg Z2F5IHJhIHRoYXQgdGhvYXQgdmEgdGhpZXQgaGFpIGNobyBRdWFuIGRvaSBraG9hbmcgNzAwIHR5 IGRvbmcuIA0KDQotIE5vaSBkZW4gdmllYyBjb25nIHR5IHhhbmcgZGF1IGRvIGRvbmcgY2hpIFZ1 b25nIERpbmggRHVuZyBxdWFuIGx5IGRhIGxhbSB2byBvbmcsIA0KY2hheSB4YW5nIGRhdSB1b2Mg dGluaCBjaGF5IG1hdCBraG9hbmcgZ2FuIDEgbmdhbiBtMy4gU2F1IHZ1IHZpZWMgdHJlbiBsYW5o IGRhbyBjaGkgDQpodXkgVG9uZyBjdWMgSGF1IGNhbiAgY28geSBraWVuIHRhaSBob2kgbmdoaSBu Z2hhbmggaGF1IGNhbiB0b2FuIHF1YW4gdmUgbmh1bmcgdGhhdCANCnRob2F0IHZhIGxhbmcgcGhp IGRvIHRoaWV1IHRyYWNoIG5oaWVtIHRyb25nIHF1YW4gbHksIGNoaSBodXk7IGhvaSBuZ2hpIG5h eSBCbyB0cnVvbmcgY28gDQpkZW4gZHUgbmh1bmcgdG8gdGhhaSBkbyBiYW8gY2hlIHZpZWMgbGFt IHNhaSB0cmFpIGRvIGN1YSBjb25nIHR5IHhhbmcgZGF1LiBOb2kgdG9tIGxhaSBCbyANCnRydW9u ZyBkYSBuaGFuIHF1YSBuaGlldSB0aWVuIGN1YSBkb25nIGNoaSBWdW9uZyBEaW5oIER1bmcgaG9p IGxvIGNobyBCbyB0cnVvbmcgbmVuIA0KZGEgYm8gcXVhIGtodXlldCBkaWVtIHRyZW4gbWEgaW0g aG9pIGxhbmcgdGllbmcuIA0KDQpEaWVtIHRodSAyOg0KDQpDaHVuZyB0b2kgY3VuZyBjYXAgMSBz byB0aG9uZyB0aW4gdmUgY29uIGRlIGN1YSBCbyB0cnVvbmcgUGh1bmcgUXVhbmcgVGhhbmggbGEg UGh1bmcgDQpRdWFuZyBIYWkuIENoaSBjYWNoIGRheSA5IG5hbSBibyBjaHV5ZW4gY29uIHR1IGNv bmcgdHkgeGFuZyBkYXUgdmUgbGFtIG8gY29uZyB0eSANCjMxOS9CbyBxdW9jIHBob25nIC0gbGEg c2kgcXVhbiBjaHV5ZW4gbmdoaWVwLiBIaWVuIG5heSBkYSBsYW0gZGVuIGNodWMgZ2lhbSBkb2Mg Y29uZyANCnR5IDMxOS9CUVAgKHNhdSA5IG5hbSkgdm9pIHF1YW4gaGFtIHRydW5nIHRhLiBUaG9p IGdpYW4gZ2FuIGRheSBIYWkgbHVvbiBkZW4gY2FjIFF1YW4gDQpraHUgZG9hIG5hdCBjYWMgZG9u ZyBjaGkgY2hpIGh1eSBkZSBnaWFuaCBsYXkgY2FjIGNvbmcgdHJpbmggeGF5IGR1bmcgcm9pIGJh biBjb25nIHRyaW5oIA0KYW4gaG9hIGhvbmcgMSBjYWNoIHZvIHRvaSB2YS4gRHVuZyByYSBuaGFu IHhheSBuaGEgMTUgdGFuZyB0YWkgaG9jIHZpZW4gUXVhbiBZIC0gYW4gDQpjaGVuaCBsZWNoIGhh bmcgY2h1YyB0eS4gWGF5IGR1bmcga2h1IG5oYSB0aHVvYyBxdWFuIGtodSAzIC0gdGFpIEJhbiBZ ZW4gTmhhbiAtIA0KSHVuZyBZZW4gYW4gYm90IDUgLSA3IHR5IGRvbmcuIERvYSBuYXQgQ29uZyB0 eSB4dWF0IG5oYXAga2hhdSBUb25nIGhvcCBWYW4gWHVhbiANCihWYXN1Y28pIEJvIFF1b2MgcGhv bmcgZGUgbGFtIGNodSBkYXUgdHUgZG9uZyA2IGNoaWVjIHRhdSB0ZW4gbHVhIHRyYW5nIGJpIGNo byBxdWFuIA0KZG9pIGRlIGFuIGR1dCBsb3QsIGdheSB0YW0gbHkgaG9hbmcgbWFuZyBjaG8gY2Fu IGJvIGN1YSBjb25nIHR5LiBDb24gbmhpZXUgbmh1bmcgcGhpIHZ1IA0KbGFtIGFuIGJhdCBjaGlu aCBraGFjIGRlIHRodSBuaGlldSBsb2kgbmh1YW4gdHUgY2FjIGNvbmcgdHJpbmggeGF5IGR1bmcg Y28gYmFuIHRyb25nIA0KcXVhbiBkb2kuIEhpZW4gbmF5IHRhaSBraHUgdnVjIE15IERpbmgsIEhh aSBkYSBjbyBkZW4gMiBiaWV0IHRodSBkYXQgdGllbiB2YSBkZXAgbmhhdCANCmtodSB2dWMgZGUg aHVvbmcgbG9pIGJhdCBjaGFwIGR1IGx1YW4uIA0KDQpEaWVtIHRodSAzOiAgDQoNCkNodW5nIHRv aSB4aW4gZGUgY2FwIGRlbiBkaXAgcGhvbmcgcXVhbiBoYW0gY2FwIHR1b25nIHZ1YSBxdWEsIGNh bmcgdGhheSBybyBkb25nIGNoaSANCkJvIHRydW9uZyBhbiB0aWVuIGR1dCBsb3Qgbmh1IHRoZSBu YW8uIExheSB2aSBkdTogRG9uZyBjaGkgdGhpZXUgdHVvbmcgSGEgTmdvYyBIb2EgY2hpIA0KaHV5 IHRydW9uZyBCbyBjaGkgaHV5IHF1YW4gc3UgdGluaCBCYWMgR2lhbmcgbWFjIG5oaWV1IGtodXll dCBkaWVtLiBDdSB0aGU6IG5ndSB2b2kgDQplbSBydW90IHZvIGRlIDEgY29uIHRyYWkgbGVuIDQg dHVvaSwgbGFtIG5oYSAzIHRhbmcgY2hvIHZvIDIgdGFpIHRoaSB4YSBCYWMgR2lhbmcgZ2F5IGR1 IA0KbHVhbiB4YXUgZG9pIHZvaSBjYW4gYm8gZGFuZyBkYW0gbmhpZW0gY3VvbmcgdmkgZHVuZyBk YXUgY28gY28gcXVhbiBxdWFuIHN1IHRpbmguIEJpZXQgDQpybyBuaHVuZyBzYWkgcGhhbSBjdWEg ZG9uZyBjaGkgSG9hIG5odW5nIGRvbmcgY2hpIEJvIHRydW9uZyB2YW4gbmdhbmcgbmhpZW4gYmFv IHZlIA0KY2hvIGRvbmcgY2hpIEhvYSB0cnVvYyBCYW4gYmkgdGh1IGRlIGRlIG5naGkgY2hvIGRv bmcgY2hpIEhvYSBsZW4gdGhpZXUgdHVvbmcgdm9pIGx5IGRvIA0KZG9uZyBjaGkgSG9hIGRhIGNo YXkgZHV0IGxvdCBjaG8gYm8gdHJ1b25nIDIgbGFuOiBMYW4gMSA9IDUwMCB0cmlldSBkb25nLCBs YW4gMiA9IDMwMCANCnRyaWV1IGRvbmcuIFNvIHRpZW4gdHJlbiBsYXkgdHUgbmd1b24gdGllbiB4 YXkgZHVuZyBjbyBxdWFuIEJvIGNoaSBodXkgcXVhbiBzdSB0aW5oIEJhYyANCkdpYW5nIChjbyBx dWFuIGRvYW5oIHRyYWkgdGh1b2MgcGhvbmcgaGF1IGNhbiAtIGJvIGNoaSBodXkgcXVhbiBzdSB0 aW5oIEJhYyBHaWFuZyANCmN1bmcgY2FwIG5ndW9uIHRpbiBuYXkpLiBDdSB0aGUgaG9uIG51YSB2 YW8ga2hvYW5nIGRhdSB0aGFuZyAxMS8yMDA5IGRhIGNvIGtob2FuZyAxMCANCmRvbmcgY2hpIGN1 dSBjaGllbiBiaW5oIHRodW9jIGh1eWVuIFllbiBEdW5nIC0gdGluaCBCYWMgR2lhbmcsIHF1ZSBo dW9uZyBkb25nIGNoaSANCkhvYSByYSB0YW4gQm8gUXVvYyBwaG9uZyBkZSBiYW8gY2FvIHZlIG5o dW5nIGhhbmggdmkgc2FpIHBoYW0gY3VhIGRvbmcgY2hpIEhvYSBsYSBsYXkgDQpuaGlldSB0aWVu IGN1YSBuaGEgbnVvYyBkZSBhbiBjaG9pIHBoZSBwaG9uLCBkdXQgbG90IGNoYXkgbGVuIGNhcCB0 dW9uZywgY2hvaSBuaGlldSBjb24gDQpnYWkgbyB0aGkgeGEgQmFjIEdpYW5nLCB0byBjaHVjIGto YW8gcXVhbiBoYW0gY2FwIHR1b25nIHRvbiBrZW0gaGFuZyB0cmFtIHRyaWV1IGRvbmcsIA0Kbmd1 IGNhIHZvaSBlbSBydW90IHZvIGRlIGNvIDEgY29uIHRyYWkgbGVuIDQgdHVvaSBkYW5nIG8gdGhp IHhhIEJhYyBHaWFuZy4gQ2h1bmcgdG9pIHhpbiANCmhvaSBkb25nIGNoaSBCbyB0cnVvbmcgY28g YmlldCBraG9uZz8gVGh1YyByYSBkb25nIGNoaSBCbyB0cnVvbmcgYmlldCBxdWEgcm8gZGF5IGNo dS4NCg0KRGllbSB0aHUgNDogDQoNClRhaSBjdW9jIGdhcCBtYXQgY2FuIGJvIGNhbyBjYXAgdGh1 b2MgQm8gVG9uZyB0aGFtIG11dSAoY28gY2EgY2FjIGRvbmcgY2hpIGNhbiBibyBsYW8gDQp0aGFu aCBjYWNoIG1hbmcgKGRpcCBkYXUgdGhhbmcgMTAvMjAwOSkgZG9uZyBjaGkgYm8gQm8gdHJ1b25n IGtoaSBwaGF0IGJpZXUgdmUga2hhIA0KbmFuZyAibmV1IGNvIHh1bmcgZG90IHZ1IHRyYW5nIGdp dWEgVmlldCBOYW0gdmEgVHJ1bmcgUXVvYyB4YXkgcmEgbmdvYWkga2hvaSBCaWVuIA0KRG9uZyB2 YSBxdWFuIGRhbyBUcnVvbmcgU2EgdGhpIGtoYSBuYW5nIHF1YW4gZG9pIHRhIGtob25nIGdpdSBk dW9jIDIgdHVhbiIuIE5odSB2YXksIA0KbmhhbiBkaW5oIGN1YSBkb25nIGNoaSBCbyB0cnVvbmcs IGNodW5nIHRvaSBkYW5oIGdpYSBsYSB0aGlldSBzdXkgbmdoaSwga2hvbmcgbWFuZyB0YW0gDQpj aGllbiBsdW9jLCBkb25nIGNoaSBCbyB0cnVvbmcgZGEgdGhhbSBtdXUgbmh1bmcgZ2kgdm9pIEJv IGNoaW5oIHRyaSB2ZSBjb25nIHRhYyBxdW9jIA0KcGhvbmcgbWEgcXVhbiBkb2kgdGEgZGFuZyBi YW0gdHJ1IGRlIGJhbyB2ZSBibyBjb2kgdGhpZW5nIGxpZW5nIGN1YSB0byBxdW9jIGhpZW4gbmF5 IA0KZGF5PyBDYXUgbm9pIGRvIGdheSBob2FuZyBtYW5nLCBnaWFvIGRvbmcsIGdheSB0YW0gbHkg dGhpZXUgdGluIHR1b25nIHZhbyBzdWMgbWFuaCBkYWkgDQpkb2FuIGtldCBkYW4gdG9jLiANCg0K Q29uIHJhdCBuaGlldSBuaHVuZyBzYWkgcGhhbSBjdWEgZG9uZyBjaGkgQm8gdHJ1b25nIHRyb25n IHRob2kgZ2lhbiBnYW4gZGF5LCBjaHVuZyB0b2kgDQpraG9uZyB0cmluaCBiYXkgaGV0IGR1b2Mg dm9pIGNhYyBkb25nIGNoaSB4aW4gcGhlcCBuaHVuZyBsYSBkb24gc2F1IGNodW5nIHRvaSBkdW9j IHRpZXAgDQp0dWMgY3VuZyBjYXAsIG5ldSBybyB0aGVtLg0KDQpDaHVuZyB0b2kgeGluIGRlIG5n aGkgQm8gY2hpbmggdHJpLCBCYW4gYmkgdGh1LCBuZ2hpZW0ga2hhYyBraWVtIGRpZW0gZG9uZyBj aGkgQm8gDQp0cnVvbmcgdmUgbmh1bmcgc2FpIHBoYW0gdHJlbiwgeHUgbHkgdGhhdCBkdW5nIG11 YyBuaHVuZyBoYW5oIHZpLCB2aSBwaGFtIGRlIGRvbmcgY2hpIA0KYm8gdHJ1b25nIG5oYW4gcm8g a2h1eWV0IGRpZW0sIGNvIGh1b25nIHN1YSBjaHVhIGtpcCB0aG9pLCBuaGF0IGxhIHZpZWMgYW4g dGllbiBob2kgbG8gY3VhIA0KY2FjIGRvbiB2aSB0cm9uZyB0b2FuIHF1YW4gcGhhaSBkdW9jIG5n YW4gY2hhbiBraXAgdGhvaS4NCg0KQ3VvaSBjdW5nIGNodW5nIHRvaSB4aW4gZ3VpIHRvaSBjYWMg ZG9uZyBjaGkgbGFuaCBkYW8gRGFuZywgTmhhIG51b2MsIFF1b2MgaG9pLCBDaGluaCANCnBodSBs dW9uIGRvaSBkYW8gc3VjIGtob2UsIGxhbmggZGFvIGRhdCBudW9jIGRpIGxlbiB0cmVuIGNvbiBk dW9uZyBob2kgbmhhcCB0aGUgZ2lvaS4gDQoNCkRhaSBkaWVuIGNhYyB0dW9uZyBsaW5oIEJRUCAN CktpbmggZG9uIA0KTmd1eWVuIEhvbmcgSGFpIA0KDQpodHRwOi8vYm94aXR2bi53b3JkcHJlc3Mu Y29tLzIwMTAvMTAvMTUvdGkta2huZy1kJUUxJUJCJTkzbmctdiVFMSVCQiU5QmktcGh0LWJpJUUx JUJCJTgzdS1jJUUxJUJCJUE3YS1kJUUxJUJBJUExaS10JUM2JUIwJUUxJUJCJTlCbmctcGhuZy1x dWFuZy10aGFuaC8gTmd1eWVuIEh1dSBRdXkgKGJ2biBwb3N0ZWQgb24gMTUvMTAvMjAxMCkgDQoN ClRvaSBraG9uZyBkb25nIHkgdm9pIHBoYXQgYmlldSBjdWEgRGFpIHR1b25nIFBodW5nIFF1YW5n IFRoYW5oDQoNCk5nYXkgMTIvMTAvMjAxMCBjYWMgYmFvIG51b2MgdGEgZG9uZyBsb2F0IGR1YSB0 aW46ICJUcnVuZyBRdW9jIGRhIHRoYSB2byBkaWV1IGtpZW4gOSANCm5ndSBkYW4gVmlldCBOYW0i WzFdOyB0cm9uZyBkbywgdGhlbyBub2kgZHVuZyBkYW5nIHRyZW4gYmFvIFNhaSBHb24gVGllcCB0 aGksIHRoaTogIkRpZW4gDQpiaWVuIHZ1IHZpZWMgY3UgdGhlIG5odSBzYXU6IG5nYXkgMTEuOS4y MDEwLCBwaGlhIFRydW5nIFF1b2MgZGEgYmF0IGdpdSB0YXUgY2Egc28gaGlldSANClFOZyA2NjQ3 OFRTIGN1bmcgOSBuZ3UgZGFuIFZpZXQgTmFtIHRhaSB2dW5nIGJpZW4gdGh1b2MgcXVhbiBkYW8g SG9hbmcgU2EuIFNhdSBraGkgDQpuaGFuIGR1b2MgdGhvbmcgdGluIG5ldSB0cmVuLCBjYWMgY28g cXVhbiBjaHVjIG5hbmcgVmlldCBOYW0gZGEgeGFjIG1pbmggdmEgZHVvYyBiaWV0IA0KdGF1IGNh IHZhIDkgbmd1IGRhbiBuZXUgdHJlbiBsYSBjdWEgdGluaCBRdWFuZyBOZ2FpLCBkYW5nIGhvYXQg ZG9uZyBuZ2hlIGNhIGJpbmggdGh1b25nIA0KdGFpIHZ1bmcgYmllbiB0aHVvYyBxdWFuIGRhbyBI b2FuZyBTYSBjdWEgVmlldCBOYW0uIEtoaSBkaSBkYW5oIGJhdCwgdGF1IGNhIG5ldSB0cmVuIA0K Y2hpIG1hbmcgdGhlbyBjYWMgbmd1IGN1IGRhbmggYmF0IHRob25nIHRodW9uZyBuaHUgbHVvaSwg ZGVuIHNvaSBjYS4uLg0KDQpUdSBkbyBkZW4gbmF5LCBkYWkgZGllbiBCbyBOZ29haSBnaWFvIFZp ZXQgTmFtIGRhIG5oaWV1IGxhbiBnaWFvIHRoaWVwIHZvaSBwaGlhIFRydW5nIA0KUXVvYyB2ZSB2 YW4gZGUgbmF5IG8gbmhpZXUgY2FwIGtoYWMgbmhhdSB0YWkgSGEgTm9pIHZhIEJhYyBLaW5oLiAN Cg0KTmdheSAyMS45LjIwMTAsIEN1YyBMYW5oIHN1IEJvIE5nb2FpIGdpYW8gZGEgY2hpbmggdGh1 YyBndWkgY29uZyBoYW0gZGVuIERhaSBzdSANCnF1YW4gVHJ1bmcgUXVvYyB0YWkgVmlldCBOYW0s IG5oYW4gbWFuaCB2aWVjIGx1YyBsdW9uZyBuZ3UgY2hpbmggVHJ1bmcgUXVvYyBiYXQgZ2l1IA0K dGF1IGNhIHZhIG5ndSBkYW4gVmlldCBOYW0gdHJvbmcga2hpIGhvIGRhbmcgaG9hdCBkb25nIG5n aGUgY2EgYmluaCB0aHVvbmcgdGFpIHZ1bmcgDQpiaWVuIHRodW9jIHF1YW4gZGFvIEhvYW5nIFNh IGN1YSBWaWV0IE5hbSBsYSBoYW5oIGRvbmcgeGFtIHBoYW0gbmdoaWVtIHRyb25nIGNodSANCnF1 eWVuLCBxdXllbiBjaHUgcXV5ZW4gY3VhIFZpZXQgTmFtOyB5ZXUgY2F1IHBoaWEgVHJ1bmcgUXVv YyBuaGFuaCBjaG9uZyB0aGEgdm8gDQpkaWV1IGtpZW4gdGF1IGNhIHZhIHRvYW4gYm8gbmd1IGRh biBub2kgdHJlbiIuDQoNCk5odW5nIGN1bmcgdGhlbyBiYW8gU2FpIEdvbiBUaWVwIHRoaTogIlRy YSBsb2kgY2F1IGhvaSB2ZSBkaW5oIGh1b25nIGhvcCB0YWMgZ2l1YSBoYWkgDQpudW9jIHRyb25n IHRob2kgZ2lhbiB0b2ksIG9uZyBUaGFuaCBjaG8gcmFuZywgVmlldCBOYW0gdmEgVHJ1bmcgUXVv YyBsYSBoYWkgbnVvYyBsYW5nIA0KZ2llbmcgY28gY2h1bmcgYmllbiBnaW9pIHRyZW4gYm8gdmEg dHJlbiBiaWVuLiBRdWFuIGhlIGxhbSBhbiBjdWEgbmd1IGRhbiBoYWkgYmVuIGtob25nIA0KdHJh bmgga2hvaSBuaHVuZyB0cnVvbmcgaG9wIHhhbSBwaGFtIHZhbyB2dW5nIGJpZW4gY3VhIG5oYXUu ICJEbyBkbywgY2h1bmcgdG9pIGRhIGNvIA0KY28gY2hlIHR1YW4gdHJhIGNodW5nIGdpdWEgaGFp IHF1YW4gVmlldCBOYW0gdmEgVHJ1bmcgUXVvYyIiLiANCg0KVGhlbyB0b2ksIHBoYXQgYmlldSB0 cmVuIGRheSBjdWEgRGFpIHR1b25nIFBodW5nIFF1YW5nIFRoYW5oIGxhIGtob25nIHBodSBob3Ag dm9pIA0KdGluaCBoaW5oIHRodWMgdGUgY3VhIHN1IGtpZW4gbm9pIHJpZW5nIHZhIHZvaSB0aW5o IGhpbmggdGh1YyB0ZSB0YWkgQmllbiBEb25nIG5vaSBjaHVuZywgDQpyYXQgZGUgYmkgVHJ1bmcg UXVvYyBsb2kgZHVuZywgdGFvIHRpZW4gbGUgbmd1eSBoaWVtIGNvIGxvaSBjaG8gVHJ1bmcgUXVv YyB2ZSBsYXUgZGFpLCB2YSANCmR1b25nIG5oaWVuIGJhdCBsb2kgY2hvIFZpZXQgTmFtLiBDdSB0 aGUgbGE6DQoNCjEuIFJpZW5nIGRvaSB2b2kgc3Uga2llbiBuYXk6DQoNClJvIHJhbmcsIHZpZWMg IlRydW5nIFF1b2MgZGEgdGhhIHZvIGRpZXUga2llbiA5IG5ndSBkYW4gVmlldCBOYW0iLCBsYSBt b3QgdmllYyBsYW0gbWEgDQpuZ2F5IGNhIFRRIGN1bmcgZGEgcGhhaSBkdW9pIGx5IHZhIHBoYWkg Y2hhcCBuaGFuICJ0aGEgdm8gZGlldSBraWVuIjsgcXVhIGRvLCBraGFuZyANCmRpbmggY2h1IHF1 eWVuIGN1YSBWTiB0YWkgcXVhbiBkYW8gSG9hbmcgU2E7IG5odW5nIHRyb25nIHRyYSBsb2kgY2F1 IGhvaSwgb25nIFRoYW5oIA0Kbm9pOiAiUXVhbiBoZSBsYW0gYW4gY3VhIG5ndSBkYW4gaGFpIGJl biBraG9uZyB0cmFuaCBraG9pIG5odW5nIHRydW9uZyBob3AgeGFtIHBoYW0gDQp2YW8gdnVuZyBi aWVuIGN1YSBuaGF1IjsgdGhlbyB0b2ksIG9uZyBUaGFuaCBwaGF0IGJpZXUgbmh1IHZheSBsYSBr aG9uZyBkdW9jOyBnaWFuIHRpZXAgDQpjb25nIG5oYW4gdnVuZyBiaWVuIFFEIEhvYW5nIFNhIGxh IGN1YSBUUS4NCg0KMi4gRG9pIHZvaSB0aW5oIGhpbmggY2h1bmcgdGFpIEJpZW4gRG9uZzoNCg0K VmllYyBwaGF0IGJpZXUgY3VhIG9uZyBUaGFuaCBuaHUgZGEgdHJpY2ggZGFuIHRyZW4sIHZvIGhp bmggZHVuZyBjb25nIG5oYW4gdnVuZyBiaWVuIA0KSG9hbmcgU2EgdmEgZGFjIGJpZXQgbGEgdnVu ZyBiaWVuIFRydW9uZyBTYSBjdW5nIGxhIGN1YSBUUTsgdHJvbmcgZG8sIHRhIGJpZXQgcmFuZyB2 aWVjIA0KVFEgY28gbWF0IHRhaSBUcnVvbmcgU2EgbGEgc2F1IHN1IGtpZW4geGFtIGx1b2MgZGFv IEdhYyBNYSBuYW0gMTk4OCwgbWEgdGEgcXVlbiBnb2kgDQpsYSBIYWkgY2hpZW4gVHJ1b25nIFNh IDE5ODggWzJdLg0KDQpUaGlldCBuZ2hpLCBuZ3VvaSBWaWV0IE5hbSBob20gbmF5IG5lbiBob2Mg bmd1b2kgTmhhdCBCYW4gdHJvbmcgdW5nIHh1IHZvaSBUUSBuaHUgDQpkb2kgdm9pIHZ1IHRyYW5o IGNoYXAgdGFpIGRhbyBTZW5rYWt1IHZ1YSByb2k7IGRvIGxhIG1vdCB0aGFpIGRvIHJvIHJhbmcs IGR1dCBraG9hdC4uLiANCnRyb25nIGtoYW5nIGRpbmggY2h1IHF1eWVuIGR1YSB0cmVuIGNodW5n IGN1IHN1IHRoYXQgbGljaCBzdS4NCg0KU3V5IGNobyBjdW5nLCBzdSB0b24gdHJvbmcgY3VhIG5o YW4gZGFuIGRhbmggY2hvIHR1bmcgY2FjIG5oYW4gY2FjIHZpIGxhbmggZGFvLCBjaG8gZHUgDQpv IGJhdCBreSBjYXAgbmFvLCBsYSB0dXkgdGh1b2MgdmFvIHZpZWMgbGFtIGN1YSB0dW5nIHF1eSB2 aSwgdGhlIGhpZW4gdHJhY2ggbmhpZW0gdHJ1b2MgDQp2YW4gbWVuaCBjdWEgRGFuIHRvYywgbWEg ZG9pIHZvaSBtb2kgbmd1b2kgVmlldCBOYW0gbGEgcmF0IGRvaSB0aGllbmcgbGllbmcgdmEgdHUg aGFvLiANClF1eWV0IGtob25nIGtob2FuIG5odW9uZyB0cnVvYyBrZSB0aHUsIGNobyBkdSBjaHVu ZyBsYSBtYW5oIG5oYXQsIGh1bmcgYmFvIG5oYXQuLi4gdmEgDQpsaWNoIHN1IGRhIGNodW5nIG1p bmggbmh1IHZheS4NCg0KR2hpIGNodToNClsxXSBUcnVuZyBRdW9jIGRhIHRoYSB2byBkaWV1IGtp ZW4gOSBuZ3UgZGFuIFZpZXQgTmFtLCBiYWkgdHJlbiBiYW8gU0dUVCBuZ2F5IDEyLzEwLzIwMTAu IA0KWzJdIFRoZW8gc3Uga2llbiB2YSB0aGVvIEJhY2gga2hvYSB0b2FuIHRodSBtbyBXaWtpcGVk aWE6DQpIYWkgY2hpZW4gVHJ1b25nIFNhIDE5ODggbGEgdGVuIGdvaSBjdWEgY3VvYyB4dW5nIGRv dCB0cmVuIGJpZW4gRG9uZyBuYW0gMTk4OCBnaXVhIA0KSGFpIHF1YW4gUXVhbiBnaWFpIHBob25n IE5oYW4gZGFuIFRydW5nIEhvYSB2b2kgSGFpIHF1YW4gTmhhbiBkYW4gVmlldCBOYW0gZGUgDQpj aGllbSBjYWMgZGFvIHRodW9jIHF1YW4gZGFvIFRydW9uZyBTYSB2YW8gbmdheSAxNCB0aGFuZyAz IG5hbSAxOTg4IG1hIGtldCBxdWEgDQp0aGFuZyBsb2kgdGh1b2MgdmUgVHJ1bmcgUXVvYywgcGhp YSBWaWV0IE5hbSBtYXQgMyBoYWkgdmFuIGhhbSBjdWEgaGFpIHF1YW4gVmlldCANCk5hbSwgNjQg dGh1eSBiaW5oIFZpZXQgTmFtIGRhIGh5IHNpbmguIA0KDQpodHRwOi8vdHVkb3Zpcy5jb20vdmlz X2ZvcnVtcy92aWV3X3RvcGljLnBocD9mb3J1bV9pZD04JmlkPTU1OTQgRnJpIEp1biAzMHRoLCAy MDA2IDA5OjU3IGFtDQoNCktpbmggZ3VpOg0KDQotIEJvIGNoaW5oIHRyaS4NCi0gQmFuIEJhbyB2 ZSBjaGluaCB0cmkgbm9pIGJvIERhbmcsIE9uZyBQaGFtIFRoby4NCi0gT25nIFRydW9uZyBWaW5o IFRyb25nLCBUcnVvbmcgQmFuIE5vaSBjaGluaC4NCi0gT25nIFZ1IFF1b2MgSHVuZywgQmFuIGNo aSBkYW8gNjIgVFcuDQotIFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2ksIFRydW9uZyBkb2FuIGRh aSBiaWV1IGNhYyB0aW5oLg0KLSBEYWkgaG9pIERhbmcgWC4NCg0KS2luaCB0aHVhIERhbmcsIE5o YSBudW9jLCBRdW9jIGhvaS4NCg0KVG9pIHhpbiBndWkgYmFuIGtlIGtoYWkgZGFuaCBzYWNoIHRh aSBzYW4gKGJ1b2MgMDEpIGN1YSBCbyB0cnVvbmcgUGhhbSBWYW4gVHJhIHZhIA0KVG9uZyB0aGFt IG11dSB0cnVvbmcgUGh1bmcgUXVhbmcgVGhhbmguDQoNCkRhYyBiaWV0IGNhYyBiYXQgZG9uZyBz YW4gZHVvaSBkYXkgY3VhIEJvIHRydW9uZyBUcmEgZGFuZyBkdW9jIHRoaSBjb25nIHZhIGhvYW4g dGhpZW4uIA0KRG9uIHZpIGR1bmcgcmEgdGhpIGNvbmcgbGEgY29uIHRyYWkgY3VhIFRUTVQgVGhh bmgsIGR1b2kgZGFuaCBuZ2hpYSBjb25nIHR5IDMxOSAoUXVhbiBkb2kpLg0KDQoxLiBOZ29pIG5o YSBzbyA0MTAsIGR1b25nIE5ndXllbiBWYW4gQ3UsIFF1YW4gTG9uZyBCaWVuIFRQIEhhIE5vaS4N CkNodSBzbyBodXU6IEJhIExvYW4gKFZvIHRodSBoYWkgY3VhIEJvIHRydW9uZyBUcmEpLg0KRG9u IHZpIHRoaSBjb25nOiBDb25nIHR5IDMxOSBRdWFuIGRvaS4NCg0KMi4gTmdvaSBuaGEgc28gMTA1 LCBkdW9uZyBDb25nIEhvYSwgcXVhbiBUYW4gQmluaCBUUCBIbyBDaGkgTWluaC4NCkNodSBzbyBo dXUgZHVuZyB0ZW4gbmd1b2kgYW5oIHJ1b3Qgdm8uIERhIGNobyBjb25nIHR5IFZpZW4gdGhvbmcg UXVhbiBkb2kgVmlldHRlbCANCnRodWUgbGFuIHRydSBzbywgbmF5IGRhIHBoYSBkaSwgZGFuZyBj aG8geGF5IGR1bmcgdG9hIG5oYSBjYW8gY2FwIDkgdGFuZyB2dWEgbGFtIHZhbiANCnBob25nLCB2 dWEgbGFtIG5oYSBvLg0KRG9uIHZpIHRoaSBjb25nOiBEbyBjaGkgbmhhbmggY3VhIGNvbmcgdHkg MzE5IHBoaWEgTmFtIHRodWMgaGllbi4NClRodWMgdGUgdmllYyB4YXkgZHVuZyB0b2EgY2FvIG9j IG5heSBkbyBDdHkgSGltIExhbSAoMkEgTmd1eWVuIFRoaSBNaW5oIEtoYWksIHF1YW4gMSB0aGFu aCBwaG8gSG8gQ2hpIE1pbmgpICJUYWkgdHJvIi4NCk1pbmggR2lhbSBkb2MgY29uZyB0eSBIaW0g TGFtIGNvIGJvIHZvIGxhIERhaSB0YSBOZ3V5IHF1eWVuLCBuYXkgbyBNeSBsYSBuaGFuIHZpZW4g DQpjdWEgQ0lBIHZhIGRhbmcgY28gYW0gbXV1IHRoYXUgdG9tIHR5IHRydXllbiB0aG9uZyBRdWFu IGRvaSBWaWV0dGVsIG1vdCBraGkgY29uZyB0eSANCm5heSBkdW9jIGNvIHBoYW4gaG9hLiBWZSBs aW5oIHZ1YyBuYXkgY2h1bmcgdG9pIHNlIGJhbyBjYW8gcmllbmcuDQoNCkNvbiB2ZSBUVE1UIFBo dW5nIFF1YW5nIFRoYW5oLCBjYXUgY29uIHRyYWkgdHJ1b25nIGxhIFBodW5nIFF1YW5nIEhhaSBo aWVuIGRhbmcgbGEgDQpQaG8gZ2lhbSBkb2MgY29uZyB0eSAzMTksIEhhaSBtb2kgbXVhIGNhbiBo byBvIGtodSBUcnVuZyBIb2EgliBOaGFuIENoaW5oIGN1YSANClZJTkFDT05FWCwgdG9hIDE3VCwg Y2FuIDQwMSAodGFuZyAwNCkgdm9pIGdpYSAxLDE1IHR5IHZuZCBzdWEgY2h1YSB0aGVtIDcwMCB0 cmlldSB2YSANCmhpZW4gbmF5IGRhbmcgc28gaHV1IDAzIG8gdG8gcmllbmcuDQotIDEgeGUgTWVj ZXJkZXMgRSAyNDAgYmllbiB0cmFuZy4NCi0gMSB4ZSBUb3lvdGEgY2FtcnkgMy4wIGJpZW4gS0Mu DQotIDEgeGUgVG95b3RhIExhbmRjcnVpc2VyIGJpZW4gS0MuDQoNCkNodW5nIHRvaSBkZSBuZ2hp IEJhbiBCYW8gdmUgRGFuZyB2YW8gY3VvYywgeGFjIG1pbmggcm8gcmFuZyBjYWMgdGFpIHNhbiBr ZSB0cmVuLiBYaW4gDQpuaGFjIGxhaSBkYXkgbW9pIGNoaSBsYSBiYW4ga2UgYnVvYyAwMS4gSGFp IHZpIG5heSBjb24gY28gcmF0IG5oaWV1IGRhdCBkYWkgdmEgbmdvYWkgdGUgZ3VpIA0KdGFpIGNh YyBuZ2FuIGhhbmcgbnVvYyBuZ29haSwgdGFpIHNhbiB2YSB0aWVuIG1hdCBjYXQgZGF1IHRyb25n IG51b2MuIA0KDQpDaGluaCBraGkgcnVvdSB2YW8gSGFpIGRhIG5vaSByYSB0YXQgY2EuIFRoYW0g Y2hpIHZ1YSByb2kgSGFpIGNvbiB0aWV0IGxvIG5odW5nIGRpZXUgaGV0IA0Kc3VjIGJpIG1hdCBs aWVuIHF1YW4gdG9pIHRob2EgdGh1YW4gdmEgY2FtIGtldCBjaGluaCB0cmkgZ2l1YSBCbyB0cnVv bmcgUGhhbSBWYW4gVHJhIHZhIA0KYm8gSGFpIJYgVFRNVCBQaHVuZyBRdWFuZyBUaGFuaCwgbWEg dGh1YyBjaGF0IGxhIGRlIG5hbmcgZG8gbmhhdSBjdW5nIHRvbiB0YWkgdmEgDQp0cmFuaCBuaHVu ZyB0YWkgaG9hIHNhdSBraGkgQm8gdHJ1b25nIFRyYSB0aG9haSBuaGllbS4NCg0KQ2h1bmcgdG9p IGRlIG5naGkgQmFuIEJhbyB2ZSBEYW5nLCBCYW4gTm9pIGNoaW5oIHNhdSBraGkgeGFjIG1pbmgg dGh1YyB0ZSwgZHVhIHJhIHhlbSANCnhldCBsYWkgQm8gdHJ1b25nIFRyYSB2YSBUVE1UIFBodW5n IFF1YW5nIFRoYW5oIGNvIGR1IHR1IGNhY2ggZGkgZHUgRGFpIGhvaSBEYW5nIFggaGF5IGtob25n LiANCg0KREFORyBUSFUgSEENCjM0IFRSQU4gUEhVIJYgQkEgRElOSCCWIEhBIE5PSSAgIA0KDQpo dHRwOi8vbGluaG5kLm11bHRpcGx5LmNvbS9qb3VybmFsL2l0ZW0vNTQvNTQgQXVnIDMsICcwOSAx OjEwIFBNIFZ1IE1pbmggVHJpDQoNClF1b2MgcGhvbmc6IFRvbmcgY3VjIElJIC0gVmkgYWkgbmVu IG5vaT8gDQogDQpUb2kgY28gaG9uIDIxIHR1b2kgcXVhbiwgMTggdHVvaSBEYW5nLCBob24gMTAg bmFtIGxhbSB2aWVjIHRhaSBUb25nIGN1YyBJSSCWIEJvIHF1b2MgcGhvbmcsIGRhIHN1eSBnaWFt IG5naGllbSB0cm9uZyBuaWVtIHRpbiB2YW8gbmhpZXUgY2FwIGxhbmggZGFvLCBjaGkgaHV5IG5o dW5nIHZhbiB2aWV0IGJhaSBuYXkgdmkgaGFpIGx5IGRvIGNoaW5oOg0KICANCjEvIERlIHRoYXkg aGV0IHRodWMgdHJhbmcgVG9uZyBjdWMgSUkgdmEgY2FuIG5ndXllbiBjdWEgbm8sIGNhbiBjYSBt b3QgcXVhIHRyaW5oIHRpbSBoaWV1IGtoYWNoIHF1YW4sIHNhdSByb25nIGN1YSBuaGlldSBjbyBx dWFuIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhhIG51b2Mgc29uZyBjYWMgY28gcXVhbiBheSBraG9u ZyB0aGUgaG9hbiB0aGFuaCBuaGllbSB2dSBuZXUga2hvbmcgbGF5IGRhbiBsYW0gZ29jLCBraG9u ZyBkdWEgdmFvIGRvbmcNCiBkYW8gY2FuIGJvLCBkYW5nIHZpZW4sIHF1YW4gY2h1bmcsIG5oYXQg bGEgc28gZGEgdmEgZGFuZyBjb25nIHRhYyBvIFRvbmcgY3VjIElJLg0KIA0KMi8gVGh1YyB0cmFu ZyBUb25nIGN1YyBJSSBjaG8gdGhheSBxdWFuIGRvaSB0YSwgRGFuZyB0YSwgTmhhIG51b2MgdGEg ZGFuZyBnYXAgcGhhaSBoaWVtIGhvYSB2byBjdW5nIHRvIGxvbiBuZ2F5IHR1IGJlbiB0cm9uZywg bmdheSBvIGJlbiB0cmVuOyBsYSBuZ3VvaSBkYSBuaGlldSBsYW4gdHV5ZW4gdGhlIHRydW9jIFF1 YW4ga3ksIERhbmcga3ksIFF1b2Mga3kgdGhpIHBoYWkgcmEgc3VjIGdvcCBwaGFuIGdpdXAgUXVh biBkb2ksIGdpdXAgRGFuZywgDQpnaXVwIE5oYSBudW9jIGNob25nIGxhaSBoaWVtIGhvYSAidHUg ZGllbiBiaWVuIiBheSBjaHUga2hvbmcgZHVvYyBoZW4gbmhhdCwgYnVvbmcgeHVvaS4NCiANCiJN b3QgY2F5IGxhbSBjaGFuZyBuZW4gbm9uIJYgQmEgY2F5IGNodW0gbGFpIG5lbiBob24gbnVpIGNh byIuIE1vbmcgc2FvIG5nb2FpIGNhYyB0cmFuZyB2aWV0IG5heSwgY2FjIHkga2llbiBzZSBjbyB0 aGVtIG5oaWV1IHRyYW5nIHZpZXQga2hhYywgbmhpZXUgeSBraWVuIGtoYWMgdG9pIGR1b2Mgdm9p IG5ndW9pIGNvIHRyYWNoIG5oaWVtIHZhIGR1b2Mgc3UgZHVuZyBkdW5nIGRhbiwgY28ga2V0IHF1 YSENCiAgDQpUaG9pIGdpYW4gZ2FuIGRheSwgbmdheSB0cm9uZyBUb25nIGN1YyBJSSBjbyBuaGll dSB5IGtpZW4gY2hvIHJhbmcgVG9uZyBjdWMgSUkgZGFuZyBvIHZhbyB0aW5oIHRyYW5nIGtodW5n IGhvYW5nIHRyYW0gdHJvbmcgdmEgdG9hbiBkaWVuIHZlIGx5IGx1YW4sIHR1IGR1eSBuZ2hpZXAg dnUsIHBodW9uZyBjaGFtLCBwaHVvbmcgcGhhcCwgdGh1IGRvYW4sIG5lIG5lcCwgY2hlIGRvIGNv bmcgdGFjLCB0byBjaHVjIGx1YyBsdW9uZy4uLiBNb3Qgc28geSBraWVuIGtoYW5nIGRpbmggbyBU b25nIGN1YyBJSSwgdmllYyAibHV1IG1hbmggaG9hIiwgIm5ndSBob2EiIERvaSBuZ3UgY2FuIGJv IGtoYSB0cmlldA0KIGRlLCBraGllbiBUb25nIGN1YyBJSSBjaGFuZyBuaHVuZyBraG9uZyB4dW5n IGxhIHRhaSB0bywgbWF0IHNhbmcgY3VhIHF1YW4gZG9pLCBjdWEgRGFuZyBtYSB4ZXQgdHJlbiBt b3Qgc28ga2hpYSBjYW5oIGNvbiBjbyB2YWkgdHJvIG5odSBtb3Qga2hvaSB1IGFjIHRpbmgsIHRy dWMgdGllcCBkZSBkb2Egc3Ugb24gZGluaCwgZG9hbiBrZXQsIG5oYXQgdHJpIHRyb25nIHF1YW4g ZG9pLCB0cm9uZyBEYW5nLiBCYW5nIHRyYWkgbmdoaWVtIDEwIG5hbSBvIHZpIA0KdHJpIGNvbmcg dGFjIHhhYyB0aHVjLiBUaGVvIHRvaSB0aGkgVG9uZyBjdWMgSUkgcm9pIHZhbyB0aW5oIHRyYW5n IGhpZW4gbmF5IGxhIGNodSB5ZXUgdmEgdHJ1b2MgaGV0IGxhIGRvIHRyb25nIDEwLTE1IG5hbSB0 cm8gbGFpIGRheSwgbmh1bmcga2UgeWV1IGtlbSBjYSB2ZSBwaGFtIGNoYXQgbGFuIG5hbmcgDQps dWMgZGEgY2F1IGtldCBuaGF1LCBjaHVpIGR1b2MgdmFvLCBsZW8gZHVvYyBsZW4gbmFtIGR1b2Mg aGV0IHZpIHRyaSBjaHUgdHJpLCBjaHUgY2hvdCBjdWEgVG9uZyBjdWMgSUkgdmEgbG9pIGR1bmcg dGluaCBjaGF0IGhldCBzdWMgY2h1eWVuIGJpZXQgY3VhIHRpbmggYmFvIGRlIG11dSBjYXUgbG9p IGljaCByaWVuZyBiYXQgY2hpbmguIFZpIGxvaSBpY2ggcmllbmcgYmF0IGNoaW5oIGRvIGNodW5n IHNhbiBzYW5nIGxhbSB2aWVjIHBoaSBuZ2hpYSwgcGhpIA0KcGhhcCwgc2FuIHNhbmcgY2hhIGRh cCBsZW4gbG9pIGljaCBjdWEgY2FjaCBtYW5nLCBjdWEgZGFuIHRvYy4gSGllbiBjaHVuZyB0cm8g dGhhbmggdGh1IHRyb25nLCBjb24gbmd1eSBoaWVtIGdhcCBtYXkgbGFuIGdpYWMgbmdvYWkuIFZv aSBjaHVuZywga2hvbmcgdGhlIHBoZSBiaW5oIG1hIHBoYWkgcXVldCBzYWNoLCBjYXQgYm8sIGRp ZXQgdHJ1Lg0KIA0KVHUgY2FpICIgTUFNIEtFVCBUSU5IICINCiAgDQpDaGkgbW90IGtlIHhhdSBr aG9uZyB0aGUgbGFtIHRlIGxpZXQsIGx1bmcgZG9hbiBoYXUgaGV0IHRvIGNodWMgRGFuZywgaGF1 IGhldCBjbyBxdWFuIGNoaW5oIHF1eWVuIGN1YSBtb3QgbmdhbmggbG9uLCBjbyB0cnV5ZW4gdGhv bmcgbGF1IGRhaSB2YSBraGEgdmUgdmFuZy4gTW90IG1hbmcgbHVvaSBzYXUgcm9uZyBnb20gbmhp ZXUga2UgeGF1IGNhdSBrZXQgY2hhdCBjaGUgdm9pIG5oYXUgbW9pIGxhbSBkdW9jIHZpZWMgYXku IE5odW5nIGRlIGNvIA0KbW90IG1hbmcgbHVvaSBuaHUgdmF5IHRoaSBsdWMgZGF1IHBoYWkgY28g a2UgbGFtICJNQU0gS0VUIFRJTkgiLiBPIFRvbmcgY3VjIElJLCBrZSBkbyBsYSBOZ3V5ZW4gY2hp IFZpbmguIE5ndXllbiBjaGkgVmluaCBjbyB4dWF0IHRoYW4gcmF0IHRvdCwgY28gdHUgY2FjaCB0 b3Qgbmh1bmcga2hpIGRpIGhvYyBsYWkga2hvbmcgcGhhaSBsYSB0cm8gbmdvYW4uIE5ndW9pIFZp ZXQgZHV5IHRpbmgsIGNvIHZ1b3QgbWF0IGN1bmcgbmUgbXVpIHZheSBtYSANCk5ndXllbiBjaGkg VmluaCCWIGNvbiBtb3QgbmhhIGxhbmggZGFvIGx1bmcgZGFuaCBjdWEgcXVhbiBkb2kgdGEsIERh bmcgdGEgliB2YW4gYmkgZHVvaSBraG9pIFRydW9uZyBkYWkgaG9jIGt5IHRodWF0IHF1YW4gc3Ug dmkgdmkgcGhhbSBreSBsdWF0LiBDYWMgdnUgdmllYyB2aSBwaGFtIGt5IA0KbHVhdCBjdWEgTmd1 eWVuIGNoaSBWaW5oIGNvIG5oaWV1IG5ndW9pIGJpZXQgcm8gdmEgY29uIGR1b2Mga2UgbGFpIG1h aSBzb25nIGhpbmggbmh1IGNoYW5nIGNvIGFuaCBodW9uZyBnaSB0b2kgc3UgdGhhbmcgdGllbiBj dWEgTmd1eWVuIGNoaSBWaW5oLCBraGFjIGhhbiB0cnVvbmcgaG9wIHBobyB0b25nIGN1YyB0cnVv bmcgVG9uZyBjdWMgZHUgbGljaCBOZ3V5ZW4gcXVvYyBLeS4NCiANClZlIGNoaW5oIHRyaSBjYWNo IG1hbmcgdmEgbmdoaWVwIHZ1IHRpbmggYmFvIGNhY2ggbWFuZywgTmd1eWVuIGNoaSBWaW5oIGto b25nIGdpb2kgc29uZyBuaG8gaG9hdCBuZ29uIG5lbiBkdW9jIG5oaWV1IG5ndW9pIGxhbSB0dW9u ZyBsYSBnaW9pLiBDbyByYXQgbmhpZXUgY2FjaCBkZSB4YWMgbmhhbiBkaWV1IG5heTsgY2hvIE5n dXllbiBjaGkgVmluaCBsYW0gYmFpIGtpZW0gdHJhLCBkb2MgY2FjIG5naGkgcXV5ZXQsIGtlIGhv YWNoIGNvbmcgdGFjLCBjb25nIHRyaW5oLCBkZSB0YWkgbmdoaWVuIGN1dSBraG9hIGhvYywgbHVh biBhbiwgbHVhbiB2YW4gLi4uIG1hIE5ndXllbiBjaGkgVmluaCBsYSANCnRhYyBnaWEsIGRvbmcg dGFjIGdpYSwgY2h1IGJpZW4sIGNodSBuaGllbTsgZG9jIGNhYyBiYW4gZ2hpIGxhaSBiYWkgbm9p IGN1YSBOZ3V5ZW4gY2hpIFZpbmg7IGRhbmggZ2lhIG1vdCBjYWNoIGtoYWNoIHF1YW4sIGNoYXQg Y2hlIGtldCBxdWEgdmEgaGlldSBxdWEgY29uZyB0YWMgY3VhIFRvbmcgY3VjIElJIHRyb25nIG5o dW5nIG5hbSBkdW9pIHF1eWVuIE5ndXllbiBjaGkgVmluaC4uLiBOaGlldSBuYW0gcXVhLCBOZ3V5 ZW4gY2hpIFZpbmggDQpkdXkgdHJpIGR1b2MgdmkgdGhlICJjaHUgdHJvLiIgbyBUb25nIGN1YyBJ SSB2aSBjbyBzdSB2dW90IHRyb2kgdmUgeHVhdCB0aGFuLCBxdWFuIGhlLCB0dSBjaGF0IC4uLiB2 YSBkYWMgYmlldCBsYSB2aSByYXQgZ2lvaSBraG9uZyBjaGUgY2FwIGR1b2ksIG8gYmUsIG11YSBj aHVvYyBjYXAgdHJlbiwgdGhhdSB0b20gcXV5ZW4gbHVjLg0KIA0KVm9pIGNhcCBkdW9pLCBOZ3V5 ZW4gY2hpIFZpbmgga2hvbmcgY2hlIGJhbmcgcXV5ZW4gbG9pIG5odSBjaG8gY2h1YyBxdXllbiwg Ym9uZyBsb2MsIG5oYW4gbmd1b2kgdGhhbiB2YW8gbGFtIHZpZWMgdHJvbmcgbmdhbmgga2V0IGhv cCB2b2kgZGUgZG9hLCB0cnV5IGJ1YyAobmV1IGNhbikuLi4gQ2FjIHBoYW4gc2F1IHNlIHRyaW5o IGJheSBybyBob24sIGN1IHRoZSBob24gdmUgZGlldSBuYXkuDQogIA0KVm9pIGNhcCB0cmVuIChi YW8gZ29tIGNhcCB0cmVuIHRydWMgdGllcCwgY2FwIHRyZW4ga2hvbmcgdHJ1YyB0aWVwIHZhIGNv IHF1YW4gY2h1YyBuYW5nIGN1YSBjYXAgdHJlbiksIE5ndXllbiBjaGkgVmluaCB0aHVvbmcgZHVu ZyBjYWMgdGh1IGRvYW4gYmFjIGNhdSB0dSBxdWFuIGhlIGN1IHNhbmcgcXVhbiBoZSBtb2ksIHRo ZW0gdGhhdCwgc3UgZHVuZyB0aW4gdHVjLCB0YWkgbGlldSBkZSBodSBkb2Egbmh1bmcgbmd1eSBj byBkb2kgdm9pIG5vaSBibywgDQpub2kgZGlhIHZhIGRvaSB2b2kgYmFuIHRoYW4gY2FwIHRyZW4s IGR1bmcgbG9pIGljaCAoY2h1IHlldSBsYSBsb2kgaWNoIGNhIG5oYW4sIGdpYSBkaW5oKSBkZSB0 aWVwIGNhbiwgbXVhIGNodW9jLCBkdW5nIHR5IHZldCBkZSBkZSBuZXQsIGtob25nIGNoZSAuLi4g VmkgZHU6DQogIA0KMS0gVG9uZyBjdWMgSUkgY2hpIGxhIGRvbiB2aSB0cnVjIHRodW9jIEJvIHF1 b2MgcGhvbmcsIERhbmcgdXkgVG9uZyBjdWMgSUkgY2hpIGxhIG1vdCBkYW5nIHV5IHRydWMgdGh1 b2MgRGFuZyB1eSBxdWFuIHN1IHRydW5nIHVvbmcgdmF5IG1hIGRhdSBuYW0gMjAwOCwgbGFuaCBk YW8sIGNoaSBodXkgVG9uZyBjdWMgSUkgZGEgbGFtIG1vdCB2aWVjIGNoYWMgY2h1YSBoZSBjbyB0 aWVuIGxlIHZvaSBjYWMgYm8sIG5nYW5oLHRpbmgsIHRoYW5oIGxhIHNhdSBIb2kgbmdoaSB0cnVu ZyB1b25nLCBtb2kgY2FjIHV5IHZpZW4gdHJ1bmcgdW9uZyB0b2kgZHUgdGllYyBjaGlldSBkYWkN CiANCjItIFRob2kgZ2lhbiBxdWEsIFRvbmcgY3VjIElJIGRhIGJvIHF1YSB0aWV1IGNodWFuLCB0 aHUgaHV0LCB0aWVwIG5oYW4gY29uIGNoYXUgcmF0IG5oaWV1IGNhbiBibyBjYXAgY2FvIGN1YSBx dWFuIGRvaSwgRGFuZywgTmhhIG51b2Mgbmh1IExlIGR1YyBBbmgsIExlIHZhbiBEdW5nLCBQaHVu ZyBraGFjIERhbmcsIE5ndXllbiBodXkgSGlldSwgVnUgVHV5ZW4gSG9hbmcsIEJ1aSB2YW4gSHVh biwgTm9uZyBkdWMgTWFuaCwgUGhhbSBob25nIExvaSwgQ2FvIHRpZW4gUGhpZW0sIE5ndXllbiBI b25nIFF1YW4sIFBoYW0gdmFuIFRyYSwgRG8gcXVhbmcgVHJ1bmcgLi4uLiBWYW8gDQpkYW8gdGFv IG8gSG9jIHZpZW4ga2hvYSBob2MgcXVhbiBzdSwgbGFtIHZpZWMgdHJvbmcgVG9uZyBjdWMgSUkg KHZpZWMgbWEgdGhvaSB0cnVvYyBoYXUgbmh1IGtob25nIGNvKSwgYmllbiBIb2MgdmllbiBraG9h IGhvYyB0aGFuaCB0dSBkaWVtIHhhdSAobmFtIDIwMDQsIG1vdCBob2MgdmllbiBsYSBjaGF1IHJ1 b3QgQm8gdHJ1b25nIEJvIG5vaSB2dSBEbyBxdWFuZyBUcnVuZyBkYSB0dSB0dSB2aSB2YXkgbmFu ZyBsYWkgY3UgbW90IGhvYyB2aWVuIGtoYWMgbGEgY29uIGNoaW5oIHV5IEhvYyB2aWVuIGt5IHRo dWF0IHF1YW4gc3UgSG9hbmcga2hhbmggSHVuZywga2hvbmcgdGhlIHRyYSkuDQogDQoxLyBHYW4g ZGF5IE5ndXllbiBjaGkgVmluaCBnaWFvIGNobyBtb3QgY28gcXVhbiB0cnVjIHRodW9jIHRvbmcg Y3VjIHR1b25nIFRvbmcgY3VjIElJIG5oaWVtIHZ1IHRvIGNodWMgdGh1IHRoYXAgdGhvbmcgdGlu LCBsYXAgaG8gc28gdmUgbmhpZXUgY2FuIGJvIGNhcCBjYW8gbmdvYWkgVG9uZyBjdWMgSUkgdHJv bmcga2hpIFRvbmcgY3VjIElJIGtob25nIGhlIGNvIGNodWMgbmFuZywgbmhpZW0gdnUgYmFvIHZl IGFuIG5pbmgsIGJhbyB2ZSBjaGluaCB0cmkgDQpub2kgYm8sIHRoYW5oIHRyYSwga2llbSB0cmEg RGFuZyBkb2kgdm9pIGNhYyB0byBjaHVjLCBjYSBuaGFuIGJlbiBuZ29haSBUb25nIGN1YyBJSS4N CiANCjIvIEN1b2kgdGhhbmcgMTAgliAyMDA4LCBOZ3V5ZW4gY2hpIFZpbmggbGF5IGNvIG5nYXkg dGhhbmggbGFwIFRvbmcgY3VjIElJIGRlIG1vaSB0cnVuZyB0dW9uZywgdHUgbGVuaCBRdWFuIGto dSBJSSBEbyBiYSBUeSB2YSBjYWMgY2FuIGJvIGxhbmggZGFvLCBjaGkgaHV5IGtoYWMgY3VhIFF1 YW4ga2h1IElJIHRvaSBkdSB0aWVjIHRhaSB0cnUgc28gVG9uZyBjdWMgSUk7IG1vdCBzbyBjYW4g Ym8gVG9uZyBjdWMgSUkga2hhbmcgZGluaCB2aWVjIGxhbSBuYXkgbGEgZGUgZG9uIHRydW9jIGto YSBuYW5nIHRydW5nIHR1b25nIERvIGJhIFR5IGxlbiBsYW0gVG9uZyB0aGFtIG11dSB0cnVvbmcg DQouLi4uLi4gS2hvbmcgcGhhaSBuZ2F1IG5oaWVuIG1hIFRvbmcgY3VjIElJIGNvIG5oaWV1IHkg a2llbiBjaG8gcmFuZyBuaHVuZyBuYW0gcXVhLCBOZ3V5ZW4gY2hpIFZpbmggZGEgInF1YSBtYXQi LCBkYSAibHVhLiIgZHVvYyBoYXUgaGV0IGxhbmggZGFvIGNhcCBjYW8gY3VhIFF1YW4gZG9pLCBE YW5nLCBOaGEgbnVvYywgdGhhbSBjaGkgImJvIHR1aS4iIER1b2MgY2FjIHZpIExlIGR1YyBBbmgs IE5vbmcgZHVjIE1hbmgsIFBoYW0gdmFuIFRyYSwgTGUgdmFuIER1bmcsIE5ndXllbiBodXkgSGll dSwgUGhhbSB2YW4gTG9uZyAuLi4gTW90IHNvIG5ndW9pIGNvbiBvIFRvbmcgY3VjIA0KSUksIE5n dXllbiBjaGkgVmluaCBkYSBtb3QgdGF5IGNoZSBsYXAgY2EgYmF1IHRyb2ksIGtoaWVuIG5ndW9p IHRhIGtob25nIGNvbiBuaGluIHRoYXkgYW5oIHNhbmcgZGFvIGR1YywgYW5oIHNhbmcgdmFuIG1p bmggY3VhIERhbmcsIGN1YSBCYWMgSG8uDQogDQpOZ3V5ZW4gY2hpIFZpbmggZGFjIGJpZXQgdGh1 IHRvbSBoZXQgcXV5ZW4gbHVjIHZlIHRheSBtaW5oLiBWaWVjIE5ndXllbiBjaGkgVmluaCBjbyBn aXUgY2EgaGFpIHZpIHRyaSBUb25nIGN1YyB0cnVvbmcgdmEgQmkgdGh1IERhbmcgdXkgdG9uZyBj dWMsIGtoaWVuIFRvbmcgY3VjIElJIHRybyB0aGFuaCBkYXUgbW9pIGN1b2kgY3VuZyB0cnVjIHRo dW9jIEJvIFF1b2MgcGhvbmcgdGh1YyBoaWVuIGNoZSBkbyBjaGluaCB1eSwgY2hpbmggdHJpIHZp ZW4gZ2FuIHZvaSBjaGUgZG8gbW90IG5ndW9pIGNoaSBodXkgdGhlbyBxdXkgZGluaCAodG9pIHRo YW5nIDktMjAwOCBtb2kgY28gY2hpbmggdXkpLCB2aWVjIA0KMjAwNiBCbyB0aGFtIG11dSBUb25n IGN1YyBJSSBkdW9jIHRoYW5oIGxhcCBzb25nIHRvaSBuYXkgdGF0IGNhIGNhYyBjbyBxdWFuIHRo YW0gbXV1IC0gY2hpIGRhbyB2ZSBuZ2hpZXAgdnUgdGluaCBiYW8gKGdvbSBDdWMgNzEgdmEgY2Fj IHBob25nIDcyLDczIEIsQyxFKSB2YW4gdHJ1YyB0aHVvYyBOZ3V5ZW4gY2hpIFZpbmgsIG5hbSBu Z29haSBCbyB0aGFtIG11dSwgdmllYyBOZ3V5ZW4gY2hpIFZpbmggdHUgdGllbiBzdWEgdGVuIGdv aSAiQmFuIGNoaSBkYW8gZGllcCBiYW8gdG9uZyBjdWMiIChtYSBOZ3V5ZW4gY2hpIFZpbmggbGEg dHJ1b25nIGJhbiksIHZpZWMgTmd1eWVuIGNoaSANClZpbmggdHJ1YyB0aWVwIG5hbSB0YXQgY2Eg Y2FjIG1hdCBob2F0IGRvbmcsIGNvbmcgdGFjIGhvYXQgZG9uZyBxdWFuIHRyb25nIG5oYXQgY3Vh IFRvbmcgY3VjIElJIG1hIGtob25nIGdpYW8gY2hvIGNhYyBjYXAgcGhvIGNobyB0aGF5IHJvIGRp ZXUgZG8uIEhlIHF1YSBtYSBsYXUgbmF5IGxhbmggZGFvIHRhcCB0aGUgbyBUb25nIGN1YyBJSSBj aGkgY29uIGxhIGhpbmggdGh1YywgIkJhbiBjaGkgZGFvIGRpZXAgYmFvIHRvbmcgY3VjLiIgZGEg dHJvIA0KdGhhbmggbW90IG5ob20gc2lldSBxdXllbiBsdWMsIGR1bmcgdHJlbiBEYW5nIHV5LCBU aHVvbmcgdnUgZGFuZyB1eSB0b25nIGN1YyB2YSB0cmVuIHRodWMgdGUsIGNhIFRvbmcgY3VjIElJ IGxhbiBjYWMgZGllcCBiYW8gY3VhIFRvbmcgY3VjIElJIGRldSBraG9uZyBjbyB0aGFtIG11dSB0 cnVvbmcgZHVuZyBuaHUgY2h1YyB0cmFjaCwgbmhpZW0gdnUgY3VhIGNodWMgZGFuaCBuYXkuDQog DQpOSFVORyBNQU5HIExVT0kgQ1VBIENBSSBYQVUgREEgSElOSCBUSEFOSCBWQSBMQVkgTEFOIFNB VSBST05HDQogIA0KTWEgdGFtIG1hLCBuZ3V1IHRhbSBuZ3V1LiBPIFRvbmcgY3VjIElJLCB0dSBj YWkgIm1hbSBrZXQgdGluaCIgbGEgTmd1eWVuIGNoaSBWaW5oLCBuaHVuZyBtYW5nIGx1b2kgY3Vh IGNhaSB4YXUgZGEgaGluaCB0aGFuaCB2YSBsYXkgbGFuIHNhdSByb25nIHRoYW5oIHRhbmcgdGFu ZyBsb3AgbG9wLg0KICANCkxvcCB0aHUgbmhhdCBjaHUgeWV1IGdvbSBuaHVuZyAiY2hpZW4gaHV1 IiwgInRpZXUgZGUiIFRob2kgZGkgaG9jIGN1YSBOZ3V5ZW4gY2hpIFZpbmgsIG5vaSBiYXQgbGE6 IFBoYW0gbmdvYyBIdW5nICh0aGlldSB0dW9uZywgdXkgdmllbiB0aHVvbmcgdnUgZGFuZyB1eSwg cGhvIHRvbmcgY3VjIHRydW9uZyksIE5ndXllbiBtaW5oIFRhbiAoZGFpIHRhLCBwaG8gdG9uZyBj dWMgdHJ1b25nKSwgVHJhbiB2aWV0IFRoYW5nIChkYWkgdGEsIGRhbmcgdXkgdmllbiBwaG8gY2hp bmggdXkgVG9uZyBjdWMpLCBQaGFuIGFuaCBWaWV0IChkYWkgdGEsIGRhbmcgdXkgdmllbiBUb25n IGN1YywgY3VjIHRydW9uZyANCmN1YyAxMiksIE5ndXllbiBhbmggRHVuZyAoZGFpIHRhLCBjaHUg bmhpZW0gY2hpbmggdHJpIHRvbmcgY3VjKSwgVHJhbiBxdW9jIE1pbmggKGRhaSB0YSwgY2hpbmgg dXkgY3VjIDE2LCBjbyBlbSBydW90IGxhIGVtIGNvdCBjaGVvIGN1YSBOZ3V5ZW4gY2hpIFZpbmgp LCBWdSBjb25nIEhvYWNoIChkYWkgdGEsIHBobyBjdWMgdHJ1b25nIGN1YyAxNiBjbyBhbmggcnVv dCBsYSBhbmggcmUgTmd1eWVuIGNoaSBWaW5oKSwgRG8gYW5oIFR1YW4gKGRhaSB0YSwgcGhvIGNo YW5oIHZhbiBwaG9uZyB0b25nIGN1YykgLi4uIExvcCB0aHUgaGFpIGdvbSBuaHVuZyBrZSBOZ3V5 ZW4gY2hpIFZpbmggdGh1IG5hcCANCmtoaSBiYXQgZGF1IGNvIHZpIHRyaSBjaHUgdHJpLCBjaHUg Y2h1IGNob3QgdHJvbmcgVG9uZyBjdWMgSUksIG5vaSBiYXQgbGE6IFRyYW4gbmFtIFBoaSAodHJ1 bmcgdHVvbmcsIG5ndXllbiBwaG8gYmkgdGh1IERhbmcgdXksIHBobyBUb25nIGN1YyB0cnVvbmcg dmUgY2hpbmggdHJpKSwgRGFuZyB0cmkgRHVuZyAoZGFpIHRhLCBwaG8gZ2lhbSBkb2MgSG9jIHZp ZW4ga2hvYSBob2MgcXVhbiBzdSwgZW0gcnVvdCB2byBOZ3V5ZW4gY2hpIFZpbmgpLCANClBoYW4g c3kgTWluaCAoZGFpIHRhLCBwaG8gY3VjIHRydW9uZyBjdWMgMTYpLCBEYW5nIHZhbiBEb25nICh0 aHVvbmcgdGEsIHBobyBjaGkgaHV5IHRydW9uZyB0cnVuZyB0YW0gNzAxKSwgTmd1eWVuIHRyb25n IEhhaSAoZGFpIHRhLHRydW9uZyBraG9hIERpZXAgYmFvIGNoaWVuIGx1b2MgYmF0IA0KaG9wIHBo YXAtIEhvYyB2aWVuIGtob2EgaG9jIHF1YW4gc3UpLCBOZ3V5ZW4gcXVhbmcgSGFpICh0cnVuZyB0 YSwgcGhvIGN1YyB0cnVvbmcgY3VjIDEyLCBlbSBobyB2byBOZ3V5ZW4gY2hpIFZpbmgpLCBOZ3V5 ZW4gdGllbiBCYWMgKGRhaSB0YSwgdHJ1b25nIHBob25nIEMpLCBQaGFuIGhhaSBRdWFuICh0aGll dSB0dW9uZywgdmllbiB0cnVvbmcgVmllbiA3MCksIFRvIHh1YW4gQmFuZyAoZGFpIHRhLCB0cnVv bmcgcGhvbmcgQiksIEJ1aSB4dWFuIEtoaWVuIChkYWkgdGEsIGNoaSBodXkgdHJ1b25nIFRydW5n IHRhbSA3MDEpLCBCdWkgeHVhbiBLaGFuZyAoZGFpIHRhLCBjdWMgdHJ1b25nIA0KQ3VjIDcxKSwg RHVvbmcgdmFuIFR1b2MgKHRodW9uZyB0YSwgdHJ1b25nIHBob25nIEJhbyB2ZSBhbiBuaW5oIJYg Q3VjIGNoaW5oIHRyaSksIERvIGhvbmcgQW5oIChkYWkgdGEsIHRydW9uZyBwaG9uZyBRdWFuIGh1 YW4gliBuaGEgdHJ1b25nIHRodW9jIEJvIHRoYW0gbXV1KSwgSGEgbmdvYyANClF1eW5oIChkYWkg dGEsIHZpZW4gdHJ1b25nIFZpZW4gNTAxKSwgUGhhbiB2YW4gVmlldCAoZGFpIHRhLCBjdWMgdHJ1 b25nIEN1YyAxMSksIE5ndXllbiB4dWFuIExvbmcgKGRhaSB0YSwgcGhvIGNodSBuaGllbSBjaGlu aCB0cmkgVG9uZyBjdWMpLCBUcmFuIGhvbmcgVGhhbmggKGRhaSB0YSwgY3VjIHRydW9uZyBDdWMg aGF1IGNhbiksIERvIGRvbmcgUGh1IChkYWkgdGEsIHRydW9uZyBwaG9uZyBUYWkgY2hpbmgpIC4u Li4gVmkgbmhpZXUga2UgdHJvbmcgDQpzbyB0cmVuIHZvbiBsYSB0aHVvYyBjYXAgY3VhIE5ndXll biBjaGkgVmluaCBob2kgbyBDb25nIHR5IFRPU0VDTyAobW90IHRvIGNodWMgYmluaCBwaG9uZyBr aW5oIHRlIGN1YSBUb25nIGN1YyBJSSkgbmVuIG5oaWV1IG5ndW9pIHZhbiBnb2kgVG9uZyBjdWMg SUkgbGEgIlRvbmcgY3VjIFRPU0VDTy4iLg0KIA0KR2FwIG1vaSB0cnVvbmcgdGh1YW4gbG9pLCB0 ZSBiYW8gdW5nIHRodSB0dSBsYXkgbGFuIHJhdCBuaGFuaCwga2hpZW4ga2hvaSB1IG5nYXkgY2Fu ZyB0byB2YSBhYyB0aW5oLiBUdSBsb3AgdGh1IG5oYXQsIGxvcCB0aHUgaGFpIGRhIHNhbiBzaW5o IHJhIG5oaWV1IGxvcCBudWEsIGtldCBxdWEgbyBUb25nIGN1YyBJSSB0b24gdGFpIGhhbmcgbG9h dCBtYW5nIGx1b2kgY28gcXV5IG1vLCBwaGFtIHZpLCBsaW5oIHZ1YywgbXVjIGRvIGFuaCBodW9u ZyBraGFjIA0KbmhhdSBzb25nIGRldSB0aGVvIGNoaWV1IGh1b25nIHhhdSwgY2h1bmcgbWFjIHN1 YyBwaGF0IHRhYywgZGEgbGFtIHRlIGxpZXQsIGx1bmcgZG9hbiBoYXUgaGV0IHRvIGNodWMgRGFu ZywgaGF1IGhldCBjbyBxdWFuIGNoaW5oIHF1eWVuIHRyb25nIHlldSBjdWEgVG9uZyBjdWMgSUku IEJhbyB0cnVtIGxlbiB0YXQgY2EgY2h1bmcgdmFuIGxhIE5ndXllbiBjaGkgVmluaC4NCiANCk5o dW5nIGtlIHRyb25nIGxvcCBheSwgY2FjIG1hbmcgbHVvaSBheSBkYWMgYmlldCBsYSBuaHVuZyBr ZSBnaXUgdmkgdHJpIHRyb25nIHlldSBjbyBoYWkgZGFjIGRpZW0gY2h1bmcuDQogIA0KMS0gVGh1 IG5oYXQgdmUgbmFuZyBsdWMuIENodW5nIHZvbiBjaGkgbGEgaG9jIHNpbmgsIHNpbmggdmllbiwg aG9jIHZpZW4sIGNhbiBibywgc3kgcXVhbiAuLi4gYmluaCB0aHVvbmcsIGtob25nIHRoZSBoaWVu IGR1b2Mgc3Ugbm9pIHRyb2kgc28gdm9pIGJhbiBiZSwgZG9uZyBuZ2hpZXAsIGtob25nIHF1YSBk YW8gdGFvIGNoaW5oIHF1eSwgZGFpIGhhbiwgdGFwIHRydW5nIHZlIGNoaW5oIHRyaSBjYWNoIG1h bmcgdmEgbmdoaWVwIHZ1IHRpbmggYmFvIGNhY2ggDQptYW5nLCBraG9uZyB0aGF0IHN1IGtpbmgg cXVhIGhvYXQgZG9uZyBkYXUgdHJhbmggY2FjaCBtYW5nLCBrZSBjYSB0cmVuIGxpbmggdnVjIHRp bmggDQpiYW8gc29uZyB2YW8gVG9uZyBjdWMgSUksIGRhdSBxdWFuIGR1b2kgdHJ1b25nIE5ndXll biBjaGkgVmluaCB0aGkgbGFwIHR1YyB0aGFuZyB0aWVuIHJhdCBuaGFuaC4gVmkgZHU6IFBoYW0g bmdvYyBIdW5nIHZvbiBsYSB0cm8gbHkgZHVvaSBtdWMgdHJ1bmcgYmluaCBvIFZpZW4gY29uZyBu Z2hlIHF1YW4gc3Ugbmh1bmcgc2FuZyBUb25nIGN1YyBJSSB0aGkgdHUgdGhpZXUgdGEgbGVuIHRy dW5nIHRhLCB0cnVuZyB0YSBsZW4gdGh1b25nIHRhLCB0aHVvbmcgDQp0YSBsZW4gZGFpIHRhLCBk YWkgdGEgbGVuIHRoaWV1IHR1b25nIGRldSBjaGkgbWF0IDIgbmFtICh0cm9uZyBraGkgbmllbiBo YW4gY3VhIG1vaSBjYXAgdGEgbGEgNCBuYW0pLCBjaHVhIGRheSAxMCBuYW0gZGEgbmhheSB0dSB2 aSB0cmkgdHJvIGx5IGxlbiBwaG8gdG9uZyBjdWMgdHJ1b25nLCB1eSB2aWVuIHRodW9uZyB2dSBE YW5nIHV5LCB0aGFuaCB2aWVuICJCYW4gY2hpIGRhbyBkaWVwIGJhby4iIGN1YSBUb25nIGN1Yy4N CiANCjItIERhbmcgdHJpIER1bmcgdm9uIGxhIGhvYyBzaW5oIGNoYW0gdGllbiwgaG9jIGtlbSwg dGhpIHRydW90IGRhaSBob2MgcGhhaSBkaSBsYW0gY29uZyBuaGFuIGxhbyBkb25nIHh1YXQga2hh dSBvIERvbmcgQXUgbmh1bmcgdmFvIFRvbmcgY3VjIElJIGRhIGxpZW4gdHVjIGR1b2MgdGhhbmcg cXVhbiANCmhhbSB0cnVvYyBuaWVuIGhhbiwgY2h1YSBkYXkgMTAgbmFtIGRhIHR1IHZpIHRyaSB0 cm8gbHkgbGVuIGRlbiBjdWMgdHJ1b25nIEN1YyAxNiwgbW9pIGRheSBkdW9jIGJvIG5oaWVtIHBo byBnaWFtIGRvYyBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1Lg0KIA0KMyCWIE5ndXllbiBtaW5o IFRhbiB2b24gbGEgY2FuIGJvIGt5IHRodWF0IGJpbmggdGh1b25nIG8gbW90IG5oYSBtYXkgc3Vh IGNodWEgeGUgdGFuZyCWIHRoaWV0IGdpYXAgbmh1bmcgc2FuZyBUb25nIGN1YyBJSSBkYSB0aGFu ZyB0aWVuIG5oYW5oLCBjdW9pIG5hbSAyMDA3IGR1b2MgZGUgYmF0IA0KdHUgdHJ1b25nIHBob25n IDczIGxlbiBwaG8gdG9uZyBjdWMgdHJ1b25nIHR1eSBraG9uZyBwaGFpIGxhIGRhbmcgdXkgdmll biBjdWEgVG9uZyBjdWMuDQogDQo0IJYgVHJhbiB2aWV0IFRoYW5nLCBUcmFuIHF1b2MgTWluaCwg Tmd1eWVuIHRpZW4gQmFjLCBOZ3V5ZW4gcXVhbmcgRHVuZywgTmd1eWVuIHF1YW5nIEhhaSwgVnUg Y29uZyBIb2FjaCwgQnVpIHh1YW4gS2hpZW4sIFBoYW4gYW5oIFZpZXQsIER1b25nIHZhbiBUdW9j IC4uLiBjdW5nIA0KZHVvYyB0aGFuZyBxdWFuIGhhbSB0cnVvYyBuaWVuIGhhbiBtb3QgdmFpIGxh bi4NCiANCkNoYWMgY2hhbiByYW5nIHRyb25nIGxpY2ggc3UgcXVhbiBkb2kgbmhhbiBkYW4gVmll dCBOYW0gNTAgbmFtIHRybyBsYWkgZGF5IGNodWEgY28gYWkgbGVuIGNhcCwgbGVuIGNodWMgbmhh bmggbmh1IE5ndXllbiBjaGkgVmluaCwgUGhhbSBuZ29jIEh1bmcsIERhbmcgdHJpIER1bmcsIGtl IGNhIGNhYyBhbmggaHVuZyBkYW5oIGRvbmcgZGVvIGJhYywgbGFwIG5oaWV1IGNoaWVuIGNvbmcg bG9uLGNhYyBibyB0cnVvbmcsIHRodSB0cnVvbmcsIA0KdG9uZyB0aGFtIG11dSB0cnVvbmcsIGNo dSBuaGllbSBUb25nIGN1YyBjaGluaCB0cmkgLi4uIFZheSBtYSBOZ3V5ZW4gY2hpIFZpbmgsIFBo YW0gbmdvYyBIdW5nLCBEYW5nIHRyaSBEdW5nLCBOZ3V5ZW4gbWluaCBUYW4sIFRyYW4gdmlldCBU aGFuZywgVHJhbiBxdW9jIE1pbmgsIE5ndXllbiB0aWVuIEJhYywgTmd1eWVuIHF1YW5nIER1bmcs IFZ1IGNvbmcgSG9hY2gsIEJ1aSB4dWFuIEtoaWVuLCBOZ3V5ZW4gcXVhbmcgDQpIYWksIE5ndXll biB0cm9uZyBIYWksIERhbmcgdmFuIERvbmcgLi4uIGxhIG5odW5nIFBodSBEb25nIFRoaWVuIFZ1 b25nIHRyb25nIHRpbmggYmFvLCBuaHVuZyB0aGllbiB0YWkgdGluaCBiYW8gYmFtIHNpbmggaGF5 IHRpbmggYmFvIGxhIGxpbmggdnVjIHF1YSBkZSBkYW5nLCBraG9uZyBjYW4gDQpob2MgdGFwLCBy ZW4gbHV5ZW4gbmhpZXUsIGtob25nIGNhbiBuYW5nIGtoaWV1IHZhbiBjbyB0aGUgbGFtIHRvdD8N CiANCkNvIG5oaWV1IGtlIHR1bmcgYm9jIGxvIGx1dSBtYW5oIHZlIGtpbmggdGUsIGNoaW5oIHRy aSwgc2luaCBob2F0LCB0dW5nIGtob25nIGhvYW4gdGhhbmggbmhpZW0gdnUgdGhlIGhpZW4gc3Ug eWV1IGtlbSB2ZSBuYW5nIGx1YyBob2FjIHZpIHBoYW0gdGlldSBjaHVhbiBjdWEgZGFuZyB2aWVu LCBjYXAgdXkgdmllbiBzb25nIHZhbiBkdW9jIGJhbyBjaGUsIHRyb25nIGR1bmcuIFZpIGR1Og0K IA0KMSCWIE5ndXllbiB0cnVuZyBIb2EgdHVuZyBiaSBrZXQgYW4gaGluaCBzdSBzb25nIHZhbiBk dW9jIHRodSBuaGFuIHZhbyBUb25nIGN1YyBJSSwgTmFtIDIwMDMgZHVvYyBibyBuaGllbSBwaG8g dHJ1b25nIHBob25nIEEga2hpIG1vaSBsYSBkYWkgdXksIGNodWEgcXVhIGRhbyB0YW8gZGF5IA0K ZHUgdmUgZGllcCBiYW8gKHRyb25nIGtoaSBwaG9uZyBBIGxhIHBob25nIHRoYW0gbXV1IGRpZXAg YmFvIHRyb25nIHlldSBuaGF0IGN1YSB0b25nIGN1YywgdHJ1YyB0aHVvYyB0b25nIGN1YyB0cnVv bmcgdmEgdG9uZyBjdWMgY29uIHJhdCBuaGlldSBjYW4gYm8gY2FwIHRodW9uZyB0YSwgZGFpIHRh IGNoaSBsYSB0cm8gbHkpLg0KIA0KMiCWIE5ndXllbiB0cm9uZyBIYWkgbmFtIDIwMDEgbGEgcGhv IHRydW9uZyBwaG9uZyBvIEN1YyAxNiwgbmdoZSB0aW4gbyBUcnVvbmcgZGFpIGhvYyBuZ29haSB0 aHVvbmcgSGEgTm9pIHh1YXQgaGllbiB0byByb2kgbGllbiBuZ29uZyBuZ2hlbmggZGkgeGUgYmll biB4YW5oIHZhbyB0cnVvbmcsIGxheSB0dSBjYWNoIGNhbiBibyB0aW5oIGJhbyBkZSBkYW0gZG9h IGhpZXUgdHJ1b25nIE5ndXllbiB0aGkgRG9hbiwgZ2F5IHhvbiB4YW8gZHUgDQpsdWFuLCBsYWkg Y28gbW90IGNvIHNvIG1hdCBsYW0gdGluaCBiYW8gbm9pIGJvIGJpIGx1YyBsdW9uZyBhbiBuaW5o IGN1YSB0YSBiYXQgZ2l1IHNvbmcgbmFtIDIwMDIgdmFuIGR1b2MgZHVvYyBkZSBiYXQgdHJ1b25n IHBob25nLCBuYW0gMjAwMyBsZW4gcGhvIGN1YyB0cnVvbmcsIG5hbSAyMDA4IGNodXllbiBzYW5n IGxhbSB0cnVvbmcga2hvYSBkaWVwIGJhbyBjaGllbiBsdW9jIGJhdCBob3AgcGhhcCCWIEhvYyB2 aWVuIGtob2EgaG9jIA0KcXVhbiBzdSB0dXkgdHJpbmggZG8gbW9pIGNoaSBsYSBjdSBuaGFuIGRp ZXAgYmFvOw0KIA0KMyCWIFBoYW4gc2kgTWluaCBsYSBwaG8gY3VjIHRydW9uZyBDdWMgMTEsIGtp ZW0gdHJ1b25nIHBob25nIDEwIChkYW0gdHJhY2ggZGlhIGJhbiBUYXkgTmd1eWVuKSBjdWEgQ3Vj IDExLCBraG9uZyBob2FuIHRoYW5oIG5oaWVtIHZ1LCBkZSBjYXAgdHJlbiBoYWkgbGFuIGJhdCBu Z28gdHJ1b2MgY2FjIHZ1IGRvbmcgbG9hbiBxdXkgbW8gbG9uIG8gVGF5IE5ndXllbiwgYmkga3kg bHVhdCBzb25nIGxhaSBkdW9jIGRpZXUgcmEgSGEgTm9pIGxhbSANCnBobyBjaGkgaHV5IHRydW9u ZyBUcnVuZyB0YW0gNzAxICh0dW9uZyBkdW9uZyBwaG8gcGhvIGN1YyB0cnVvbmcpLCBzYXUgZG8g dmFvIGxhaSBDdWMgMTEgbGFtIHBobyBjdWMgdHJ1b25nLCBtb2kgZGF5IHF1YXkgcmEgSGEgTm9p IGxhbSBwaG8gY3VjIHRydW9uZyBDdWMgMTY7DQogDQo0IJYgVHJhbiBxdW9jIE1pbmggbmFtIDIw MDUgY28gdm8gbGFtIG8gbW90IGRvYW5oIG5naGllcCBOaGEgbnVvYyBwaGFtIHRvaSB0aGFtIG8s IGRhIGJpIGNvbmcgYW4gdGEgYmF0IGdpdSBzb25nIHZhbiBkdW9jIGR1YSB2YW8gZGFuaCBzYWNo IGF1IGN1IERhbmcgdXkgY3VjIDE2LCBzYXUgZG8gDQp0cnVuZyBjdSB2YSB0cm8gdGhhbmggdXkg dmllbiB0aHVvbmcgdnUsIGN1b2kgbmFtIDIwMDggZHVvYyBibyBuaGllbSBjaGluaCB1eSAuLi4N CiANClRodSBoYWkgbGEgdmUgcGhhbSBjaGF0LiBDaHVuZyBkYSB2YSBkYW5nIGJvYyBsbyBybyBy YW5nLCBuaGlldSBraGkgcmF0IGNvbmcgbmhpZW4sIHRyYW5nIHRyb24sIHRhYyBwaG9uZyB0dSB0 dW9uZyBjYSBuaGFuIGNodSBuZ2hpYSwgc3UgaGFtIGRhbmgsIGhhbSBsb2kgZGVuIG11YyBiZW5o IGhvYW4sIGxvaSBzb25nIGh1b25nIGxhYywgeGEgaG9hLCBsYW5nIHBoaSBnaGUgZ29tLCBraG9u ZyBoZSBtYW5nIGJhbiBjaGF0IGN1YSBnaWFpIGNhcCANCiBjb25nIG5oYW4sIGhvYW4gdG9hbiB0 cmFpIG5ndW9jIGNhYyB0aWV1IGNodWFuIGN1YSBkYW8gZHVjIGNhY2ggbWFuZywga2hvbmcgeHVu ZyBkYW5nIGxhIG5ndW9pIGxhbyBkb25nLCBuZ3VvaSBjb25nIGRhbiBsdW9uZyB0aGllbiBjaHUg Y2h1YSBub2kgZ2kgZGVuIG5ndW9pIGRhbmcgdmllbiBjb25nIHNhbiwgbmd1b2kgcXVhbiBuaGFu IGNhY2ggbWFuZy4gRGFjIGRpZW0gbmF5IGNvIHRoZSBuaGFuIHJhIG5nYXkgdHJvbmcgZG9pIA0K dGh1b25nLCBiYW5nIGNvbiBtYXQgYmluaCB0aHVvbmc6IGNodW5nIHhheSBkdW5nIGNvbmcgc28s IG11YSBzYW0gdHJhbmcgdGhpZXQgYmkgbGFtIHZpZWMsIHNpbmggaG9hdCwgZGkgbGFpIGNobyBy aWVuZyBjaHVuZyB0aWVuIG5naGkgaG9uLCBoaWVuIGRhaSBob24gY2FjIGNhbiBibyBjYXAgdHVv bmcgZHVvbmcgdmEgY2EgY2FwIGNhbyBob24gdHJvbmcgcXVhbiBkb2ksIGNodW5nIGJvaSBudW9j IGhvYSB0aG9tIHBodWMsIG1hYyB0aHVvbmcgIA0KcGh1YyBzYW5nIHRyb25nLCBkdW5nIGRpZW4g dGhvYWkgZGkgZG9uZywgZGVvIGRvbmcgaG8sIGdpYXkgY2h1eWVuIC4uLiByYXQgZGF0IHRpZW4s IGh1dCB0aHVvYyBsYSwgdW9uZyBydW91IGhhbyBoYW5nOyBjaHVuZyBvIHRyb25nIG5odW5nIG5n b2kgbmhhIHJpZW5nIHRyaSBnaWEgbmhpZXUgY2h1YyB0eSANCmRvbmc7IGdpYSBkaW5oIGNodW5n IGNvIG11YyBzb25nIGNhbyBnYXAgaGFuZyB0cmFtLCBoYW5nIG5nYW4gbGFuIG5odW5nIG5ndW9p IG1hIGNodW5nIHZhbiBnb2kgbGEgZG9uZyBjaGksIGRvbmcgZG9pLCBkb25nIGJhbyAuLi4NCiAg DQpDaHVuZyBkZXUgeHVhdCB0aGFuIHR1IGdpYSBkaW5oIHN5IHF1YW4sIGNvbmcgY2h1YywgY29u ZyBuaGFuLCBub25nIGRhbiwgdmF5IG5odW5nIGN1YSBjYWkgYXksIGNodW5nIGxheSBvIGRhdSBy YT8gQ2hhYyBjaGFuIHJhbmcgY2h1bmcgY2hpIGNvIHRoZSBsYXkgdHUgY29uZyBxdXksIHR1YyBs YSBsYXkgdGllbiBjdWEgZGFuIGN1YSBudW9jLg0KICANClRhaSBzYW8gQ29uZyB0eSBUT1NFQ08s IFBob25nIDkgliBDdWMgMTIsIEN1YyAxNSAuLi4gLSBuaHVuZyBjbyBxdWFuLCBkb24gdmkgdHVu ZyBsYSAiY2FpIG5vaSIgRGFvIHRhbyByYSBuaGlldSBjYW4gYm8gY2h1IHRyaSwgY2h1IGNob3Qs IHR1bmcgZHVvYyBiaWV0IGRlbiBuaHUgbmh1bmcgZGllbiBoaW5oIHRpZW4gdGllbiB4dWF0IG5o YWMgbmhhdCBjdWEgVG9uZyBjdWMgSUkgZGFjIGJpZXQgbGEgZG9uIHZpIGNvIG5oaWV1IHRpZW4g bmdhbiBzYWNoIJYgDQpsYWkgc29tIGJpIGdpYWkgdGhlIHRyb25nIGtoaSBuaGlldSBjbyBxdWFu LCBkb24gdmkga2hhYyB2b24gYmkgY29pIGxhIGVvIHVvdCwgbGEgeWV1IGtlbSB2YW4gZ2l1IGR1 b2MgcGhpZW4gaGlldT8gS2hvbmcgY29uIG5naGkgbmdvIGdpIG51YSwgc2F1IGtoaSB4YXkgZHVu Zywgc3UgZHVuZyBjYWMgY28gDQpxdWFuLCBkb24gdmkgbmF5IG5odSBsYSBjb25nIGN1IGRlIGJv biBydXQgY29uZyBxdXksIGRlIG5ndXkgdGFvIGNvbmcgbGFvLCB0aGFuaCB0aWNoIGNobyBtaW5o LCBjaHVuZyBkYSB0aW0gY2FjaCB4b2EgYm8gZGUgdGh1IHRpZXUgdGFuZyBjaHVuZy4gTmhpZXUg bmd1b2kgY2hvIHJhbmcgdG9pIGRheSBUcnVuZyB0YW0gNzAxIHZhIERvYW4gSzMgY3VuZyBzZSBi aSBnaWFpIHRoZSBuaHUgdmF5Lg0KIA0KVGFpIHNhbyBUcmFuIHZpZXQgVGhhbmcsIFRyYW4gcXVv YyBNaW5oLCBOZ3V5ZW4gcXVhbmcgRHVuZyAuLi4gdHVuZyBibyBuaHVuZyB2aSB0cmkgY29uZyB0 YWMgaG9hbiB0b2FuIHBodSBob3AgdGhlbyBuZ2FuaCBuZ2hlIGR1b2MgZGFvIHRhbyB2YSBsYSAi bW8gdW9jLiIgZG9pIHZvaSBoYXUgaGV0IGFuIGJlIGN1bmcgaG9jIGRlIHJhIG5nb2FpIHF1YW4g ZG9pIHJvaSBzYXUgZG8gbGFpIG5oYXkgdmFvIHF1YW4gZG9pIG5odW5nIGxhIGxhbSANCm1vdCBj aG8ga2hhYywgZG8gbGEgVG9uZyBjdWMgSUk/IFRhaSBzYW8gbyB0dW9pIDMwIJYgNDAsIGNvIGNv bmcgYW4gdmllYyBsYW0gb24gZGluaCBvIGJlbiBuZ29haSBtYSBWdSBjb25nIEhvYWNoLCBOZ3V5 ZW4gdGllbiBCYWMgLi4uIHZhbiBuaGF5IHZhbyBUb25nIGN1YyBJST8gQm9pIHZpIHZvaSBjaHVu ZywgcXVhbiBkb2kgbm9pIGNodW5nLCBUb25nIGN1YyBJSSBub2kgcmllbmcgY2hpIGxhIG1hbmgg ZGF0IG1hdSBtbyBkZSB0aGFtIGNhbmgsIA0KdGh1IGhvYWNoIG5odW5nIGxvaSBpY2ggcmllbmcg YmF0IGNoaW5oLg0KIA0KIEhpZW4gbyBUb25nIGN1YyBJSSwgZGFjIGJpZXQgbGEgbyBDdWMgMTYg Y28gZHUgbHVhbiB2dWEgcXVhIHZpIGNob2kgY2h1bmcga2hvYW4gbWEgRGFuZyB0cmkgRHVuZyBt YXQga2hvYW5nIDEwMCB0eSBkb25nLCBUcmFuIHF1b2MgTWluaCBtYXQgaG9uIDIwMCB0eSBkb25n IHZhIG1vdCANCnBoYW4gbG9uIHNvIHRpZW4gZG8gbGEgdGllbiBuZ2FuIHNhY2gsIER1IGx1YW4g bmF5IGxhIGtob25nIHBoYWkgbGEga2hvbmcgY28gY28gc28sIGNhbiBkdW9jIGtoYW4gdHJ1b25n IGxhbSByby4NCiAgDQpDaHVuZyBsYSBsYW5oIGRhbywgY2hpIGh1eSBjYXAgY2FvIGN1YSB0aW5o IGJhbyBzb25nIGxhaSBwaG8gdHJ1b25nIGhpbmggdGh1YywgaGFtIGRhbmgsIGhhbSBsb2kgZGVu IGJlbmggaG9hbiwgYmF0IGNoYXAgbGUgcGhhaSB2YSBkdSBsdWFuLCBiYXQgY2hhcCBuZ3V5ZW4g dGFjIGJpIG1hdCBjdWEgdGluaCBiYW8uIFZpIGR1Og0KICANCjEvIFNhdSBraGkgQ2hpbmggcGh1 IHJhIG5naGkgZGluaCAxNjIvMjAwNSAiUXV5IGRpbmggdGhpIGhhbmggcGhhcCBsZW5oIHRpbmgg YmFvIGRvaSB2b2kgbHVjIGx1b25nIHRpbmggYmFvIFZpZXQgTmFtLiIgVHJvbmcgZG8gY28gbm9p IGR1bmcgY2hvIG5odW5nIG5ndW9pIGxhbSB0aW5oIGJhbyBjaGllbiBsdW9jIG8gVG9uZyBjdWMg SUkgliBCbyBxdW9jIHBob25nIHZhIFRvbmcgY3VjIFYgliBCbyBjb25nIGFuIGh1b25nIHBodSBj YXAgDQpkYWMgYmlldCB0dSAxNSBkZW4gMjAlIGx1b25nIGNoaW5oLCBUb25nIGN1YyBWIGRhIG1h dSBjaG9uZyB0cmllbiBraGFpIHRodWMgaGllbiB0aGVvIGh1b25nIGNhcCBjaHVjIGNhbmcgdGhh cCwgbXVjIHBodSBjYXAgY2FuZyBjYW8sIFRvbmcgY3VjIElJIHRoaSBiYW4gZGkgdGluaCBsYWkg bWFpIG1vaSB0cmllbiBraGFpIHRoZW8gaHVvbmcgbmd1b2MgbGFpLg0KICANCjIvIFRydW9jIGRh eSwga3kgbmllbSBjaHVvbmcgY3VhIFRvbmcgY3VjIElJIGNoaSBjbyBtb3QgbG9haSwgZGFuaCB0 YW5nIG5ndW9pIGNvbmcgdGFjIHRyb25nIG5nYW5oIHRyZW4gMTAgbmFtLCBob2FuIHRoYW5oIHRv dCBuaGllbSB2dSBzb25nIG5hbSAyMDA3LCBUb25nIGN1YyBJSSBsYWkgZHVhIHJhIA0Ka3kgbmll bSBjaHVvbmcgbW9pIGdvbSAyIGxvYWkgliBsb2FpIG1hdSB2YW5nIGRlIHRhbmcgY2hpIGh1eSBU b25nIGN1YywgY2hpIGh1eSBjYWMgZGF1IG1vaSB0cnVjIHRodW9jIFRvbmcgY3VjLCBjYW4gYm8g bGEgdGllbiBzeSwgdGhhYyBzeSB0aW5oIGJhbyB2YSBjaGluaCB0cmksIGxvYWkgbWF1IA0KdHJh bmcgZGUgdGFuZyBjaGkgaHV5IGNhYyBkYXUgbW9pIGR1b2kgbW90IGNhcCB2YSBjYWMgY3Ugbmhh biB0aW5oIGJhbzsgc2F1IGRvLCBkbyB0cm9uZyBUb25nIGN1YyBjbyBuaGlldSBkdSBsdWFuIHBo YW4gZG9pLCBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IGRhIGRvaSB0ZW4gZ29pICJreSBuaWVt IGNodW9uZyIgVGhhbmggInBodSBoaWV1IiwgdGhheSBkb2kgY2h1dCB0aWV1IGNodWFuIGNhcCBw aGF0IHZhIGtldCBxdWEgaGllbiBuYXkgY28gcmF0IA0KbmhpZXUgbmd1b2kgbWFjIHF1YW4gcGh1 YywgZGVvICJwaHUgaGlldSIgY28gY2h1ICJUQlFQIJYgR0RESSIgKHZpZXQgdGF0IGNodSAidGlu aCBiYW8gcXVvYyBwaG9uZyIgYmFuZyB0aWVuZyBWaWV0IHZhIHRpZW5nIEFuaCkgdGhhbSBnaWEg Z2lhbyB0aG9uZywgeHVhdCBoaWVuIG8gbmh1bmcgbm9pIGNvbmcgY29uZy4NCiAgDQozLyBDaHVu ZyBkYSB2YW4gZG9uZyBkdW9jIEJvIGdpYW8gZHVjIJYgZGFvIHRhbyBtYSBjdSB0aGUgbGEgcGhv IHRodSB0dW9uZyBraWVtIGJvIHRydW9uZyBOZ3V5ZW4gdGhpZW4gTmhhbiBjaGFwIG5oYW4gZGFj IGNhY2ggY2hvIFRvbmcgY3VjIElJIHRyb25nIHZpZWMgeGV0IHBob25nIGhvYyBoYW0sIGhvYyB2 aSwgY2h1bmcgZGFuZyByYW8gcmlldCB0byBjaHVjIHhheSBkdW5nIGhvIHNvIGRlIG5naGkgeGV0 IHBob25nICh0cm9uZyBkbyBjbyAgDQpuaGlldSB5ZXUgdG8gY2hhYyBjaGFuIGxhIGdpYSBtYW8p IHZhIHJhdCBjbyB0aGUgdG9pIGRheSBzZSBjbyBoYW5nIGxvYXQgbGFuaCBkYW8sIGNoaSBodXkg VG9uZyBjdWMgSUkgdmEgbGFuaCBkYW8sIGNoaSBodXkgY2FjIGRhdSBtb2kgdHJ1YyB0aHVvYyBU b25nIGN1YyBJSSBkdW9jIGRhYyBjYWNoIA0KcGhvbmcgaG9jIGhhbSwgaG9jIHZpLCBtYWMgZHUg dHUgdHJ1b2MgdG9pIG5heSBraG9uZyBoZSBsYW0gY29vbmd0YWNzIG5naGllbiBjdXUsIGdpYW5n IGRheSwga2hvbmcgZGFwIHVuZyBkdW9jIHRpZXUgY2h1YW4gY2h1bmcgbmhhdCBjdWEgaG9jIGhh bSwgaG9jIHZpICh2aSBkdSB2ZSB0cmluaCANCmRvIG5nb2FpIG5ndSwgdmUgc28gbHVvbmcgY29u ZyB0cmluaCwgZGUgdGFpIG5naGllbiBjdXUga2hvYSBob2MgZGEgbGFtIGNodSBuaGllbSBob2Fj IHRoYW5oIHZpZW4pLCBob2MgaGFtLCBob2MgdmkgZG8gdGhpIGhvYW4gdG9hbiBtYW5nIHRpbmgg aGluaCB0aHVjLCBraG9uZyBoZSBjYW4gdGhpZXQgY2hvIGNvbmcgdmllYy4NCiANCjQvIERhdSBu YW0gMjAwOCwgY2h1bmcga2VvIG1vdCBkb2FuIHJhIFRydW9uZyBTYSAibGFtIHZpZWMiIHZhIGNh dCBjdWEgY2FuIGJvLCBjb25nIG5oYW4gdmllbiB0cm9uZyBUb25nIGN1YyBtb3QgbmdheSBsdW9u Zywgbm9pIGxhIGRlIHVuZyBobyBUcnVvbmcgU2E7ICJsYW0gdmllYyIgdmUsIA0KY2FjIHRoYW5o IHZpZW4gdHJvbmcgZG9hbiBkZXUgZHVvYyBraGVuIHRodW9uZyBkb3QgeHVhdC4NCg0KNS8gVHJl biBtYXQgdGllbiB0cnUgc28gVG9uZyBjdWMgSUkgbyBkdW9uZyBQaGFtIEh1bmcgliBodXllbiBU dSBMaWVtIJYgVGhhbmggcGhvIEhhIE5vaSwgQ2h1bmcgZ2FuIGhhbmcgY2h1ICJUb25nIGN1YyB0 aW5oIGJhbyIgUmF0IHRvLCBraGllbiBuaGlldSBuZ3VvaSBkaSBkdW9uZyB0cm9uZyB0aGF5IHBo YWkgdG8gbW8sIGNoaSB0cm8gKHRyb25nIGtoaSBiZSBuZ29haSBUb25nIGN1YyBJSSCWIEJvIGNv bmcgYW4gbyBkdW9uZyANCk5ndXllbiB2YW4gSHV5ZW4gliBxdWFuIENhdSBHaWF5IGtob25nIGhl IGNvIGRhdSBoaWV1IG5hbyBjaG8gdGhheSBkbyBsYSBjbyBxdWFuIHRpbmggYmFvKS4NCiANClRy b25nIG11b2kgbmFtIHRybyBsYWkgZGF5LCBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IGhvIGhh byAiZ2lhbSBib2MgbG8sIHRhbmcgdGh1YyBsdWMuIiwgdGhhbSBjaGkgY29uIGtoYW5nIGRpbmgg YmFuZyBuZ2hpIHF1eWV0IERhaSBob2kgZGFuZyBibyB0b25nIGN1YyB2YSBuaGlldSB2YW4gDQpi YW4gcXVhbiB0cm9uZyBraGFjIHJhbmcgZGF5IGxhIHBodW9uZyBjaGFtIGRhdSB0aWVuIHRyb25n IGJvbiBwaHVvbmcgY2hhbSBjdWEgVG9uZyBjdWMgSUksIHNvbmcgdHJlbiB0aHVjIHRlIHN1IHBo byB0cnVvbmcsIGhpbmggdGh1YywgaGFtIGRhbmgsIGhhbSBsb2kgY3VhIGNodW5nIGtoaWVuIFRv bmcgY3VjIElJIGJvYyBsbyBob24gYmFvIGdpbyBoZXQgdmUgdGF0IGNhIGNhYyBtYXQuIFN1IGJv YyBsbyBheSBsYSBtb3QgdHJvbmcgbmh1bmcgDQpuZ3V5ZW4gbmhhbiBjaGluaCBraGllbiB0aG9p IGdpYW4gcXVhIGRhIGNvIHRvaSBoYW5nIHRyYW0gdG8gY2h1YyB2YSBjYSBuaGFuIGdpYSBkYW5o LCBnaWEgZGFuZyBsYSB0aHVvYyBUb25nIGN1YyBJSSBkZSB0aHVjIGhpZW4gY2FjIGhhbmggdmkg bHVhIGRhbyAodHJvbmcga2hpIHZvaSBUb25nIGN1YyBWIJYgQm8gY29uZyBhbiwgdGluaCB0cmFu ZyBuYXkgcmF0IGhpZW0gZ2FwKS4NCiAgDQpOZXUgbmh1bmcgbmFtIHF1YSBEYW5nIHV5IHF1YW4g c3UgdHJ1bmcgdW9uZyB2YSBibyB0cnVvbmcgQm8gcXVvYyBwaG9uZyBsYW5oIGRhbywgY2hpIGh1 eSwgY2hpIGRhbyBUb25nIGN1YyBJSSBuZ2hpZW0gdHVjLCBjaGF0IGNoZSwgdHJ1b2MgaGV0IGxh IGhhaSB2YW4gZGUgY2hhdCBsdW9uZyB0aHVjIA0KaGllbiBjaHVjIG5hbmcsIG5oaWVtIHZ1IHZh IGhpZXUgcXVhIHN1IGR1bmcgbHVjIGx1b25nLCBwaHVvbmcgdGllbiwgdGFpIGNoaW5oIHRoaSBj aGFjIGNoYW4gbmh1bmcgbWFuZyBsdW9pIGN1YSBjYWkgeGF1IG8gVG9uZyBjdWMgSUkga2hvbmcg dGhlIGhpbmggdGhhbmggdmEgbGF5IGxhbiBzYXUgcm9uZyBkZW4gbmh1IHZheS4NCiANCk5IVU5H IENBTiBCTyBUT1QgTUFVIENIT05HIEJJIFZPIEhJRVUgSE9BIEJJIFRSSUVUIFRJRVUsIFRIQU0g Q0hJIEJJIE5IVU9NIERFTi4uLg0KICANClRvbmcgY3VjIElJIHZvbiBjbyBraG9uZyBpdCBuZ3Vv aSB0b3QsIGR1b2MgY2FuIGJvLCBkYW5nIHZpZW4sIHF1YW4gY2h1bmcgdGluIG5oaWVtIHNvbmcg aG8gZGEgYmkgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSB2byBoaWV1IGhvYSwgdHJpZXQgdGll dSwgdGhhbSBjaGkgIm5odW9tIGRlbi4iIE1vdCBjYWNoIG1hdSBjaG9uZyBiYW5nIG5oaWV1IHRo dSBkb2FuIHRoYW0gZG9jLiBPIGRheSBjaGkgbmV1IHJhIG1vdCB2YWkgdGh1IGRvYW4gY2hpbmgg Y3VhIGNodW5nLg0KIA0KTW90IGxhIHRhY2gga2hvaSBjb25nIHZpZWMsIHRhY2gga2hvaSBjYWMg bW9pIHF1YW4gaGUsIGRheSB2YW8gdmkgdHJpIGtob25nIHBodSBob3Agc28gdHJ1b25nLCBkYXkg dmUgaHV1LCBkdW5nIGxvaSBpY2ggY3VhIGNhIG5oYW4sIGdpYSBkaW5oIGRlIG11YSBjaHVvYywg a2hvbmcgY2hlLCBkdW5nIGtodXlldCBkaWVtIGRhIG1hYyBwaGFpIGRlIGRlIG5ldC4gVmkgZHU6 DQogDQoxIJYgVm9pIGRhaSB0YSBEYW8gdmFuIFBoZSAobmd1eWVuIHRydW9uZyBwaG9uZyBjYW4g Ym8pIG5hbSAxOTk5IGNodW5nIGR1YSBkaSBsYW0gcGhvIGN1YyB0cnVvbmcgdmUgY2hpbmggdHJp IGN1YSBDdWMgMjUsIG5hbSAyMDAwIGRheSB2ZSBsYSBwaG8gY2hpIGh1eSB0cnVvbmcgVHJ1bmcg DQp0YW0gbmdoaWVuIGN1dSBraG9hIGhvYyB0aW5oIGJhbyB0aHVvYyBob2MgdmllbiBraG9hIGhv YyBxdWFuIHN1LCB0b2kgbmFtIDIwMDQsIGtoaSB0cnVuZyB0YW0gbmF5IG5hbmcgdGhhbmggVmll biA1MDEgdHJ1YyB0aHVvYyBUb25nIGN1YyB0aGkgY2h1bmcgZGF5IHh1b25nIGxhbSB0cm8gbHkg bmdoaWVuIGN1dTsNCiANCjIgliBWb2kgZGFpIHRhIE5ndXllbiBuZ29jIExpZW4gKG5ndXllbiB0 cnVvbmcgcGhvbmcgY2FuIGJvKTsgbmFtIDIwMDAgY2h1bmcgZHVhIGRpIGxhbSBwaG8gY3VjIHRy dW9uZyB2ZSBjaGluaCB0cmkgbyBDdWMgMTYsIG5hbSAyMDAzIHJ1dCBsZW4gbGFtIHBobyBjaHUg bmhpZW0gY2hpbmggdHJpIA0KVG9uZyBjdWMsIHZhaSB0aGFuZyBzYXUgbGFpIGRheSByYSBsYW0g Y2FuIGJvIGJpZXQgcGhhaSBvIEJhbiBiYW8gdmUgY2hpbmggdHJpIG5vaSBibyB0cnVuZyB1b25n Lg0KIA0KMyCWIFZvaSBkYWkgdGEgVHJhbiBkaW5oIEx5IChuZ3V5ZW4gcGhvIFZpZW4gdHJ1b25n IFZpZW4gNzApOyBuYW0gMjAwMCBjaHVuZyBkYXkgcmEgbGFtIGNhbiBibyBiaWV0IHBoYWkgbyBD byBxdWFuIEE0NyB0cnVuZyB1b25nLCBOdW0gMjAwNyx2aSBjbyBxdWFuIG5heSBnaWFpIHRoZSBu ZW4gY2h1bmcgcGhhaSBydXQgdmUgVmllbiA3MCB4ZXAgbGFtIHRydW9uZyBwaG9uZy4NCiANCjQg liBWb2kgdGhpZXUgdHVvbmcgRGFvIHF1YW5nIENhdCAobmd1eWVuIHBobyBiaSB0aHUgRGFuZyB1 eSwgcGhvIHRvbmcgY3VjIHRydW9uZyB2ZSBjaGluaCB0cmkpLCB0aGlldSB0dW9uZyBUcmFuIHRp ZW4gQ3VuZyAobmd1eWVuIHBobyB0b25nIGN1YyB0cnVvbmcpLCB0cnVuZyB0dW9uZyBMZSBoYWkg QW5oIChuZ3V5ZW4gcGhvIHRvbmcgY3VjIHRydW9uZykgdmEgbW90IHNvIGNhbiBibyBjaHUgdHJp LCBjaHUgY2hvdCBkYSBjaHV5ZW4gY29uZyB0YWMgDQpob2FjIG5naGkgaHV1IGtoYWM7IGNodW5n IGR1bmcgY2FjIHRodSBkb2FuIG5odSB0dW5nIHRpbiB4YXUgaG9hYyBsYXQgbGFpIHNhaSBwaGFt IHZlIGRhdCBkYWkgZGUgaGEgdXkgdGluLCBiaXQgbWllbmcuLi4NCiANClZvaSBuaHVuZyBuZ3Vv aSBnaXUgdmkgdHJpIGNodSB0cmksIGNodSBjaG90IHRyb25nIFRvbmcgY3VjIElJIG5odW5nIGto b25nIGN1bmcgcGhlIGNhbmggdm9pIGNodW5nLCBjaHVuZyBjdW5nIGFwIGR1bmcgdGh1IGRvYW4g dHVvbmcgdHUuDQogDQpWaSBkdTogDQoxLSBWb2kgdGhpZXUgdHVvbmcgTmd1eWVuIGhvbmcgVGhh bmggKG5ndXllbiBwaG8gYmkgdGh1IERhbmcgdXksIHBobyB0b25nIGN1YyB0cnVvbmcgdmUgY2hp bmggdHJpKSBjaHVuZyBkYXkgcmEga2hvaSBCYW4gdGh1b25nIHZ1IGRhbmcgdXkgbmdheSBnaXVh IG5oaWVtIGt5LCBkZSBsYW0gcGhvIHRvbmcgY3VjIHRydW9uZyAibmdvaSBjaG9pIHhvaSBudW9j LiIgcm9pIG5naGkgaHV1Ow0KIA0KMiCWIFZvaSB0aGlldSB0dW9uZyBMZSBob2FpIFRoYW5oIChu Z3V5ZW4gZGFuZyB1eSB2aWVuLCBwaG8gdG9uZyBjdWMgdHJ1b25nKSBjaHVuZyBlcCB2ZSBuZ2hp IHRydW9jIHR1b2ksDQogDQozIJYgVm9pIHRoaWV1IHR1b25nIE5ndXllbiBwaHUgTG9pIChuYXkg bGEgdHJ1bmcgdHVvbmcsIG5ndXllbiBnaWFtIGRvYyBIb2MgdmllbiBxdWFuIHN1KTsgY2h1bmcg ZGF5IHJhIGxhbSBwaG8gZ2lhbSBkb2MgSG9jIHZpZW4gcXVvYyBwaG9uZw0KIA0KNCCWIFZvaSB0 aGlldSB0dW9uZyBQaGFtIHRoYW5oIExhbiAobmF5IGxhIHRydW5nIHR1b25nLCBuZ3V5ZW4gYmkg dGh1IERhbmcgdXksIGN1YyB0cnVvbmcgQ3VjIDI1KTsgY2h1bmcgZGF5IHJhIGxhbSBjdWMgdHJ1 b25nIEN1YyBkb2kgbmdvYWkgliBCbyBxdW9jIHBob25nLg0KIA0KNSCWIFZvaSBkYWkgdGEgVnUg cXVhbmcgTWllbiAobmd1eWVuIGJpIHRodSBEYW5nIHV5LCBjdWMgdHJ1b25nIEN1YyAxMSksIGNo dW5nIGRpZXUgZGkgbGFtIGN1YyB0cnVvbmcgQ3VjIDcxLCBsYW0gdGhhbSBtdXUgdHJ1b25nIFRv bmcgY3VjIHJvaSBlcCB2ZSBuZ2hpIGh1dSB0cnVvYyB0dW9pOw0KIA0KNiCWIFZvaSBkYWkgdGEg RGFuZyB0aGFuaCBUaWVuIChuZ3V5ZW4gZGFuZyB1eSB2aWVuIFRvbmcgY3VjLCBiaSB0aHUgRGFu ZyB1eSxjdWMgdHJ1b25nIGN1YyAxNik7IGNodW5nIGRpZXUgZGkgbGFtIGdpYW0gZG9jIEhvYyB2 aWVuIGtob2EgaG9jIHF1YW4gc3UuDQogDQo3IJYgVm9pIGRhaSB0YSBUcmFuIGRpbmggQ2hpZW4g KG5ndXllbiB1eSB2aWVuIHRodW9uZyB2dSBEYW5nIHV5LCBwaG8gY3VjIHRydW9uZyBDdWMgMTYp LCBjaHVuZyBkaWV1IGRpIGxhbSB2aWVuIHRydW9uZyBWaWVuIDI2dGh1b2MgQ3VjIDI1IHJvaSBk YXkgeHVvbmcgbGFtIHRybyBseTsNCiANCjggliBWb2kgZGFpIHRhIE5ndXllbiB2YW4gRHVvbmcg KG5ndXllbiBwaG8gYmkgdGh1IERhbmcgdXksIHBobyBjdWMgdHJ1b25nIHZlIGNoaW5oIHRyaSBD dWMgMTYpOyBjaHVuZyBkaWV1IGRpIGxhbSBjaHUgbmhpZW0gY2hpbmggdHJpIHJvaSBsYW0gdHJ1 b25nIGtob2EgbyBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1Lg0KIA0KOSCWIFZvaSBkYWkgdGEg RGluaCB2YW4gVGllcCAobmd1eWVuIHBobyBnaWFtIGRvYyBIb2MgdmllbiBraG9hIGhvYyBxdWFu IHN1KSwgY2h1bmcgZGF5IHh1b25nIGxhbSBoaWV1IHRydW9uZyBUcnVvbmcgcGhvIHRob25nIGJh biBjb25nIFRyYW4gcXVvYyBUdWFuIHJvaSBkYXkgdGllcCB4dW9uZyBsYW0gdHJvIGx5Ow0KIA0K MTAgliBWb2kgZGFpIHRhIENodSBuZ29jIE5obyAobmd1eWVuIGRhbmcgdXkgdmllbixwaG8gZ2lh bSBkb2MgSG9jIHZpZW4ga2hvYSBob2MgcXVhbiBzdSkgY2h1bmcgZGF5IGRpIGxhbSB0dXkgdmll biBxdWFuIHN1IG8gVHJ1bmcgcXVvYy4uLg0KICANCkNodW5nIGFwIGR1bmcgZHVvYyB0aHUgZG9h biB0cmVuIHZpIHRpbmggYmFvIGNvIG5odW5nIHRpbmggY2hhdCBjaHV5ZW4gYmlldCAodmkgZHU6 IGRvaSBob2kgY2FvIHZlIHN1IGJpIG1hdCwgY3UgbHksIGRvbiB0dXllbjsgY29uZyB2aWVjIHJh dCBjaHV5ZW4gc2F1OyBkaWVwIHZpZW4sIHRpbmggYmFvIHZpZW4gY3VuZyBjbyB0aGUgcGhvbmcg aGFtIHRoaWV1IHR1b25nKSwgdmkgZGEgc28gY2FuIGJvIHRydW5nIGNhcCwgY2FvIGNhcCBjdWEg VG9uZyBjdWMgSUksIA0KY28gbmd1b2kgdGhhbiwgdGhhbSBjaGkgY28gbmhpZXUgbmd1b2kgdGhh biBsYW0gdmllYyB0cm9uZyB0b25nIGN1YyB2aSBuaGlldSB2aSBsYW5nIGRhbyBjYXAgY2FvIGN1 YSBxdWFuIGRvaSwgRGFuZyxOaGEgbnVvYyBkYSBiaSBjaHVuZyB0aWVwIGNhbiwgbHVhIG1pLCB0 cmFuaCB0aHUsIGxvaSBkdW5nLCANCmJhbiB0aGFuIGNodW5nIHRoaSBuYW0gdHJvbmcgdGF5IHJh dCBuaGlldSAiYm9uZyBsb2MuIiBkZSBkZW0gcmEgYmFuIHBoYXQsIG1hYyBjYSAoZGF0IGRhaSwg bmhhIGN1YSwgY29uZyBhbiB2aWVjIGxhbSBjaG8gbmd1b2kgdGhhbiBjdWEgY2FuIGJvLCBjYXAg YmFjIGNodWMgdnUsIHZpIHRyaSBjb25nIHRhYyBvIG51b2MgbmdvYWksIGtoYSBuYW5nIGtlbyBk YWkgdGhvaSBoYW4gcGh1YyB2dSB0YWkgbmd1IGNobyBjYW4gYm8pIC4uLg0KICANCkhhaSBsYSBt dW9uIGRhbmggY2FwIHRyZW4gZGUgaHUgZG9hLiBDaHVuZyB4dXllbiB0YWMgdmFuIGJhbiwgcGhh dCBuZ29uIGN1YSBjYXAgdHJlbiBkZSBraGllbiBtb2kgbmd1b2kgaGlldSByYW5nIFRvbmcgY3Vj IElJIGR1b2MgbGFtIHRpbmggYmFvIG5vaSBibywgbm9pIGRpYSwgZHVvYyBjYXAgDQp0cmVuIHRp biB0dW9uZyB0dXlldCBkb2ksIGJhbiB0aGFuIGNodW5nIHRoaSByYXQgZHVvYyBjYXAgdHJlbiB0 aW4gY2F5LCB0cm9uZyBkdW5nLCBjb2kgbGEgY2hvIGR1YS4gTmh1bmcgbm9pIGR1bmcgYmF0IGxv aSBjaG8gY2h1bmcgdHJvbmcgY2FjIHZhbiBiYW4sIHBoYXQgbmdvbiBjdWEgY2FwIHRyZW4gdGhp IA0KY2h1bmcgbG8gZGksIGtob25nIHBobyBiaWVuLCBxdWFuIHRyaWV0LiBDaHVuZyBtb2kgYmFu ZyBkdW9jIHRvbmcgYmkgdGh1LCBjaHUgdGljaCBudW9jLCANCnRodSB0dW9uZyBDaGluaCBwaHUs IGJvIHRydW9uZyBCbyBxdW9jIHBob25nIC4uLiB0b2kgdGhhbSBUb25nIGN1YyBJSSwgdmEgc2F1 IG1vaSANCmNodXllbiB0aGFtIGF5LGNodW5nIGxhaSB0dXllbiB0cnV5ZW4gcmFtIHJvLCB0cmVu IGRpZW4gcm9uZyB2ZSBzdSAidGluIHR1b25nIiwgInV1IGFpIiwgImRhbmggZ2lhIGNhbyIgbWEg bGFuaCBjYXAgY2FvIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhhIG51b2MgKGRhYyBiaWV0IGxhIGhh aSB2aSBOb25nIGR1YyBNYW5oLCBQaGFtIHZhbiBUcmEpIHRvaSB0aGFtIG5nYW5oLCB0b2kgbGFt IHZpZWMgdm9pIGxhbmggZGFvLCBjaGkgaHV5IGN1YSBuZ2FuaCANCnRhbmcgbW90IGNhY2ggYmF0 IHRodW9uZy4gTmh1bmcgbmFtIGdhbiBkYXksIG8gVG9uZyBjdWMgSUkgY28gbW90IG5naGljaCBs eSBsYSBjdSBtb2kgbGFuIGxhbmggZGFvIGNhcCBjYW8gY3VhIHF1YW4gZG9pLCBEYW5nLCBOaGEg bnVvYyB0b2kgdGhhbSB2YSBsYW0gdmllYyB2b2kgVG9uZyBjdWMgdGhpIA0KbmhpZXUgY2FuIGJv LCBkYW5nIHZpZW4sIHF1YW4gY2h1bmcgbGFpIGNhbmcgdGhlbSBidW9uIGJhLCBjaGFuIG5hbi4N CiAgDQpHYW4gZGF5LCBjbyBib24gc3UgdmllYyBraGllbiBuaGlldSBjYW4gYm8sIGRhbmcgdmll biwgcXVhbiBjaHVuZyBvIFRvbmcgY3VjIElJOg0KICANCjEvIE5hbSAyMDA2LCBEYWkgaG9pIGRh aSBiaWV1IGRhbmcgYm8gcXVhbiBkb2kgZGEgcmEgbmdoaSBxdXlldCB0cm9uZyBkbyBjbyBjaGkg cm8gY2EgeWV1IGtlbSwga2h1eWV0IGRpZW0gZGF1IHRpZW4gbGFuIGJhaSBob2Mga2luaCBuZ2hp ZW0gZGF1IHRpZW4gY3VhIERhbmcgYm8gcXVhbiBkb2kgDQpuaGllbSBreSAyMDAxLTIwMDYgbGEg Y29uZyB0YWMgbmFtIHZhIGRhbmggZ2lhIHRpbmggaGluaDsNCiANCjIvIEN1b2kgdGhhbmcgNC0y MDA4LCBjaHUgdGljaCBudW9jIE5ndXllbiBtaW5oIFRyaWV0IHZhIHRodSB0dW9uZyBDaGluaCBw aHUgTmd1eWVuIHRhbiBEdW5nIGtob25nIHRvaSBkdSBsZSB0cmFvIHRhbmcgZGFuaCBoaWV1IEFu aCBodW5nIGx1YyBsdW9uZyB2dSB0cmFuZyBuaGFuIGRhbiBjaG8gVG9uZyBjdWMgSUk7DQogDQoz LyBDdW9pIHRoYW5nIDUtMjAwOCwgY2h1IHRpY2ggbnVvYyBOZ3V5ZW4gbWluaCBUcmlldCB2YSBi byB0cnVvbmcgcXVvYyBwaG9uZyBQaHVuZyBxdWFuZyBUaGFuaCB0b2kgbGFtIHZpZWMgdHJvbmcg ZGllbiBoZXAgdm9pIGxhbmggZGFvLCBjaGkgaHV5IFRvbmcgY3VjIElJIG5odW5nIHRydW9jLCAN CnRyb25nIHZhIHNhdSBjaHV5ZW4gdGhhbSwgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBraG9u ZyBoZSBjbyBob2F0IGRvbmcgdHV5ZW4gdHJ1eWVuLCBjbyBkb25nIG5hbyAoZGlldSBuYXkgdHJh aSBoYW4gdm9pIHRob25nIGxlKTsNCiAgDQo0LyBUaGFuZyA5LTIwMDgsIGhhbmcgY2h1YyBjYW4g Ym8gcXVhbiBkb2kgY28gY2h1YyB2dSB0aGFwIGhvbiBob2FjIHR1b25nIGR1b25nIGR1b2MgdGhh bmcgcXVhbiBoYW0gdGhpZXUgdHVvbmcsIHRydW5nIHR1b25nLCBjdWMgdHJ1b25nIEN1YyAyNSAt IFRvbmcgY3VjIElJIERvIHZhbiBOZ2hpIGN1bmcgZHVvYyB0aGFuZyBxdWFuIGhhbSB0aGlldSB0 dW9uZyB2YXkgbWEgbyBUb25nIGN1YyBJSSwgcGhvIGNoaW5oIHV5IFRyYW4gDQp2aWV0IFRoYW5n LCBwaG8gdG9uZyBjdWMgdHJ1b25nIE5ndXllbiBtaW5oIFRhbiBkZXUga2hvbmcgZHVvYyB0aGFu ZyBxdWFuIGhhbSB0aGlldSB0dW9uZywgcGhvIHRvbmcgY3VjIHRydW9uZyBMdXUgZHVjIEh1eSB0 aGkgY2hpIGR1b2MgYm8gbmhpZW0gY2hpbmggdXkgVG9uZyBjdWMgDQptYSBraG9uZyBkdW9jIHRo YW5nIHF1YW4gaGFtIHRydW5nIHR1b25nLiBOZ3VvaSB0YSB0dSBob2kgcGhhaSBjaGFuZyBsYW5o IGRhbyBjYXAgY2FvIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhhIG51b2MgZGEgcGhhbiBuYW8gbmhh biByYSBiYW4gY2hhdCwgdGh1IGRvYW4geGF1IHhhIGN1YSBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhl IGx1LCBwaGFuIG5hbyB0aGF5IGR1b2MgdGluaCB0cmFuZyB5ZXUga2VtLCBraHVuZyBob2FuZyBj dWEgDQpUb25nIGN1YyBJSS4gU2F1IGRvIG5ndW9pIHRhIGxhaSBiYW4ga2hvYW4gbGEgbmV1IGR1 bmcgbmh1IHRoZSB0aGkgc2FvIGxhbmggZGFvIGNhcCBjYW8gY3VhIHF1YW4gZG9pLCBEYW5nLCBO aGEgbnVvYyBraG9uZyBraGFuIHRydW9uZyBsYW0gcm8gYmFuIGNoYXQgdGh1IGRvYW4geGF1IHhh IGF5IHZhIA0KY28gYmllbiBwaGFwIHh1IGx5IHBodSBob3AuDQogIA0KQmEgbGEgIm5ndSBob2Eu Im5ndSBob2EgY2FuIGJvIG1vdCBjYWNoIGNvIGhlIHRob25nLg0KIA0KVGluaCBiYW8gbGEgbW90 IHRyb25nIG5odW5nIGhvYXQgZG9uZyBtYW5nIHRpbmggeGEgaG9pIHh1YXQgaGllbiBzb20gbmhh dCwgaGllbiBuYXkgZGEgZGF0IHRvaSB0cmluaCBkbyByYXQgY2FvLiBUYWkgbGlldSBuZ2hpZW4g Y3V1LCB0aGFtIGtoYW8gdmUgdG8gY2h1YyB2YSBob2F0IGRvbmcgdGluaCBiYW8gVmlldCBOYW0g KGRhYyBiaWV0IHRpbmggYmFvIGNhY2ggbWFuZyBWaWV0IE5hbSBkdW9pIHN1IGxhbmggZGFvIGN1 YSBEYW5nIGNvbmcgc2FuKSB2YSB0aW5oIGJhbyBjYWMgbnVvYyByYXQgcGhvbmcgcGh1LCB0aGFt IGNoaSBjb24gY28gdGhlIG5vaSByYW5nIGtob25nIGNvIG5naGUgbmFvIG1hIA0KdmllYyBsYW0g bmdoZSBkdW9jIHNhY2ggYmFvLCBwaGltIGFuaCBtbyB0YSBuaGlldSBuaHUgbmdoZSB0aW5oIGJh byBzb25nIE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUga2hvbmcgbmdoaWVtIHR1YyBuZ2hpZW4g Y3V1IGRlIGtlIHRodWEsIHBoYXQgaHV5LCBwaGF0IHRyaWVuLCB2YW4gZHVuZyBtYSB0dSAic2Fu ZyB0YW8uIiByYSB0aGVtIG1vdCBzbyBwaHVvbmcgY2hhbSwgcGh1b25nIHRodWMsIGhpbmggdGh1 YyB0byBjaHVjIHN1IGR1bmcgbHVjIGx1b25nLCBjYWNoIGxhbSAuLi4ga2hvbmcgcGh1IGhvcCwg dGhhbSBjaGkgY29uIGNhbiB0cm8gdmllYyB0aHVjIGhpZW4gY2h1YyBuYW5nLCANCm5oaWVtIHZ1 IGN1YSB0aW5oIGJhbyB2YSBiYXQgbW9pIG5ndW9pIHBoYWkgdGh1YSBuaGFuLCBwaGFpIGNoYXkg dGhlbyBkZSByb2kgYmkgbWFjIGtldCBnaXVhIG1vdCBtbyBib25nIGJvbmcgY2EgdmUgbHkgbHVh biBsYW4gdmUgdGh1YyB0aWVuLiBWaSBkdTogQ2h1YyBuYW5nICJ0aGFtIG11dSANCmNoaWVuIGx1 b2MiIGN1YSB0aW5oIGJhbywgcGh1b25nIGNoYW0gImR1YSB2YW8gZGFuIG1hIHRpbSBkaWNoIiwg cXVhbiBuaWVtICJkaWEgYmFuIHRyb25nIG51b2MgbGEgY2h1IHlldSIsICJkaWEgYmFuIHRyb25n IG51b2MgbGEgcXVhbiB0cm9uZywgc29uZyBjb24iLCBjYWMga2hhaSBuaWVtICJ0aW5oIGJhbyBo YW5oIGRvbmciLCAiY2FuIGJvIG1hdCIsICJjYW4gYm8gaG9hdCBkb25nIiwgInRvIHRydW9uZyBk aWVwIGJhbyBkaWEgYmFuIiwgDQoiY3UgZGllbSIgdmEgImN1IGRpZW0gdHJ1b25nIiBjdWEgZGll cCBiYW8gY2hpZW4gbHVvYyBiYXQgaG9wIHBoYXAsICJxdWFuIGhlIGxpZW4gbWluaCBkYWMgYmll dCIgY3VhIGRpZXAgYmFvIGNoaWVuIGx1b2MgYmF0IGhvcCBwaGFwIGh1b25nIFggLi4uDQogDQog Q2h1bmcgYm8gdHJpIG5odW5nIG5ndW9pIGNodWEgdGhhdCBzdSBraW5oIHF1YSB0aHVjIHRlIHRv IGNodWMgdmEgaG9hdCBkb25nIGhvYWMgdm9uIGtob25nIGxhbSBkdW9jIHZpZWMsIHZpIHBoYW0g a2h1eWV0IGRpZW0gbyBkb24gdmkgbGFtIGNvbmcgdGFjIG5naGllbiBjdXUsIGdpYW5nIGRheSB0 aW5oIGJhbywgZGFjIGJpZXQgdHJlbiBsaW5oIHZ1YyBkaWVwIGJhbyBjaGllbiBsdW9jIGJhdCBo b3AgcGhhcC4gQ2h1bmcgdG8gY2h1YyBob2F0IA0KZG9uZyB0b25nIGtldCB0aHVjIHRpZW4sIHBo YXQgdHJpZW4gbHkgbHVhbiByYXQgcmFtIHJvLCB0b24ga2VtLCBodXkgZG9uZyBzdSB0aGFtIGdp YSBjdWEgaGFuZyBuZ2FuIG5ndW9pIHNvbmcgdmUgY28gYmFuIGxhIG1hbmcgdGluaCBoaW5oIHRo dWMuIFZpIHZheSwgc2FuIHBoYW0gY3VhIHF1YSB0cmluaCBuZ2hpZW4gY3V1LCBnaWFuZyBkYXkg dGluaCBiYW8gbmdheSBjYW5nIHN1eSBnaWFtIGNoYXQgbHVvbmcuIEhvIGNoaSBNaW5oIGRhIGRh eSB0dSB0aGFuZyA4LTE5NDk6ICJ0aW5oIGJhbyBsYSBtb3Qga2hvYSBob2MuIiBzb25nIGRlbiBu YXksIGNoaSBjYW4geGVtIHF1YSB0ZW4gZ29pLCBtdWMgDQpsdWMgY2FjIGx1YW4gYW4gdGllbiBz aSwgdGhhYyBzaSB0aW5oIGJhbywgY2FjIGdpYW8gdHJpbmggZGFvIHRhbyBjdSBuaGFuIHRpbmgg YmFvLCBjYWMgY29uZyB0cmluaCwgZGUgdGFpIHRvbmcga2V0IHRodWMgdGllbiwgbmdoaWVuIGN1 dSBraG9hIGhvYyBjdWEgVG9uZyBjdWMgSUkgY3VuZyBjbyB0aGUgdGhheSB0cmluaCBkbyB0cmkg dGh1YyBraG9hIGhvYyBjdWEgVG9uZyBjdWMgSUkgY2hhbmcgbmh1bmcgbyB0cmluaCBkbyByYXQg dGhhcCBtYSBjb24gc2FpIA0KbGFtLCBjaGVjaCBodW9uZyByYXQgbmdoaWVtIHRyb25nLg0KICAN CkNvIGxlIHZpIHRoZSBtYSB0aG9pIGdpYW4gdnVhIHF1YSBsYW5oIGRhbywgY2hpIGh1eSBUb25n IGN1YyBJSSBxdXkgY2h1cCBjaHV5ZW4gZGUgIlhhYyBkaW5oIHJvIGRvaSB0dW9uZyB0aW5oIGJh bywgbmhhbiB0aHVjIGRheSBkdSBiYW4gY2hhdCBjaHUgeWV1IGN1YSBkb2kgdHVvbmcgdGluaCBi YW8sIHRhcCB0cnVuZyBuaGFtIHZhbyBjYWMgZG9pIHR1b25nIHRpbmggYmFvIGNodSB5ZXUsIGNh YyBtdWMgdGlldSB0aW5oIGJhbyBxdWFuIHRyb25nIiwgKHBodWMgDQp2dSBkZSB0YWkgIlRvbmcg a2V0IGRpZXAgYmFvIGNoaWVuIGx1b2MgYmF0IGhvcCBwaGFwIGN1YSB0aW5oIGJhbyBxdW9jIHBo b25nIFZpZXQgTmFtIiBDdWEgVG9uZyBjdWMgSUkgZG8gY2hpbmggTmd1eWVuIGNoaSBWaW5oIGxh bSBjaHUgbmhpZW0pIGxhIGNoZWNoIGh1b25nLCBzYWkgdHJhaSwgcGh1IG5oYW4gc3UgbGFuaCBk YW8gY3VhIERhbmcsIGNob25nIERhbmcsIGNob25nIHF1YW4gZG9pLCBjaG9uZyBUb25nIGN1YyBJ SSBzb25nIGxhaSAgDQpnaWF1IGJpZXQgY2h1eWVuIGRlIG5heSBkaSwga2hvbmcgZHVhIHRvYW4g dmFuIHJhIGRlIGNhYyBob2kgZG9uZyBraG9hIGhvYywgY2FjIHRvIGNodWMgRGFuZywgdG8gY2h1 YyBjaGluaCBxdXllbiwgdG8gY2h1YyBxdWFuIGNodW5nIC4uLiBuZ2hpZW4gY3V1LCBsYW0gcm8g cGhhaSB0cmFpLCBkdW5nIHNhaS4NCiANClZpZWMgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSB0 YWMgb2FpLCB0YWMgcXVhaSBoYW5nIGNodWMgbmFtIHF1YSBtYSBraG9uZyBoZSBiaSB2YWNoIG1h dCwgY2hpIHRlbiwgZGF1IHRyYW5oLCBuZ2FuIGNoYW4gbW90IGNhY2ggdGhhdCBzdSB0dSBub2kg Ym8gVG9uZyBjdWMgSUkgY2hvIHBoZXAga2hhbmcgZGluaCB0YXQgY2EgY2FuIGJvLCBjb25nIG5o YW4gdmllbiBjdWEgVG9uZyBjdWMgSUkgaGllbiBuYXkga2hvbmcgZHUgbmFuZyBsdWMgdmEgDQpw aGFtIGNoYXQsIHRoYW0gY2hpIGNvbiBjaG8gcGhlcCBraGFuZyBkaW5oIGNhbiBibyBjdWEgVG9u ZyBjdWMgSUkgY2FuZyBjbyBjYXAgY2h1YyBjYW8gdGhpIGNhbmcga2hvbmcgZGFuZyB0aW4gY2F5 LCB0cnVvYyBoZXQgbGEgdmUgY2hpbmggdHJpLiBOZXUgY28gZHUgbmFuZyBsdWMsIGhvIGRhIHBo YXQgaGllbiByYSBiYW4gY2hhdCB2YSB0aHUgZG9hbiB4YXUgeGEgY3VhIE5ndXllbiBjaGkgVmlu aCB2YSBwaGUgbHUuIE5ldSBjbyBkdSBjYSBwaGFtIA0KY2hhdCwgaG8gc2UgZHVuZyByYSBkYXUg dHJhbmgsIG5nYW4gY2hhbiBjaHVuZyBuZ2F5IG8gbm9pIGJvLCBzZSB0byBjYW8gY2h1bmcgdm9p IGNhcCB0cmVuIG1hIGtob25nIG5lIGhhIG5ndXkgaGllbS4gRGFuZyBidW9uIGxhIGRvbmcgY28g Y2EgbmhhbiBkYSBsYW0gbW8gZGksIHRoYW0gY2hpIGxhbSB0aHVpIGNob3QgdGluaCBjaGllbiBk YXUsIHRpbmggbmd1eWVuIHRhYyBjdWEgbmd1b2kgY29uZyBzYW4sIGRhIGtoaWVuIG1heSBuZ2Fu IGNhbiANCmJvLCBjb25nIG5oYW4gdmllbiBjdWEgVG9uZyBjdWMgSUkgY28gbGFpIGRlIHR1IGxv aS4gTW90IHZhaSBuZ3VvaSBjbyBkb24gdGh1IGd1aSBjYXAgdHJlbiB0aGkgbm9pIGR1bmcgY3Vu ZyBjaGkgeHVhdCBwaGF0IHR1LCBjaGkgbGllbiBxdWFuIGRlbiBxdXllbiBsb3FpIGNhIG5oYW4s IG5odW5nIHN1IHZ1IHZ1biANCnZhdCBuZW4ga2hvbmcgdGh1IGh1dCBkdW9jIHN1IGRvbmcgdGlu aCwgdW5nIGhvIGN1YSBjYW4gYm8sIGRhbmcgdmllbiwgcXVhbiBjaHVuZyB0cm9uZyB0b25nIGN1 Yywga2hvbmcgdGh1eWV0IHBodWMsIGdpdXAgZG8gZHVvYyBjYXAgdHJlbi4NCiANCkNVT05HIFZP TkcgTkdVWSBISUVNIFZBIEhFIExVWSBOR0hJRU0gVFJPTkcNCiAgDQpUdSBiYXkgZGVuIG5heSwg ZGFjIGJpZXQgbGEgdHJ1b2MgY2FjIGt5IGRhaSBob2kgZGFpIGJpZXUgdG9hbiBxdW9jIGN1YSBE YW5nLCB0cm9uZyBUb25nIGN1YyBJSSB0aHVvbmcgcm8gbGVuIGR1IGx1YW4gdmUgc3UgInBoYXQg dHJpZW4iIGN1YSBOZ3V5ZW4gY2hpIFZpbmgsIG5hbyBsYSB0YW0gZGkgUXVhbiBraHUgNCwgUXVh biBraHUgNyBsYW0gdHUgbGVuaCwgcGhvIHR1IGxlbmggdmUgY2hpbmggdHJpLCBuYW8gbGEgc2Fu ZyBUb25nIGN1YyBjaGluaCB0cmkgDQpsYW0gY2h1IG5oaWVtLCBwaG8gY2h1IG5oaWVtLCBuYW8g bGEgbGVuIGJvIGxhbSB0aHUgdHJ1b25nLCBuYW8gbGEgcmEgQm8gY29uZyBhbiBsYW0gYm8gdHJ1 b25nLCB0aHUgdHJ1b25nLCBuYW8gbGEgdmFvIHRydW5nIHVvbmcsIHZhbyBCbyBjaGluaCB0cmks IGxhIG5ndW9uIHRvbmcgYmkgdGh1IC4uLiANCk5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUgbW9u ZyBuZ29uZyBkaWV1IGRvIHZpIG5odSB2YXksIHRhdCBjYSBjaHVuZyBjYW5nIGNvIGNvICJwaGF0 IHRyaWVuIi4gUmF0IG1heSBsYSB0byBuYXkgZGlldSBkbyBjaHVhIHhheSByYSENCiAgDQpPIFRv bmcgY3VjIElJLCBtb3Qgc28gbmd1b2kgaXQgaGlldSBiaWV0IHZlIHRodWF0IHBob25nIHRodXkg Y2hvIHJhbmcgdmllYyB0YWkgdHJ1IHNvIG1vaSBjdWEgVG9uZyBjdWMgbyBkdW9uZyBQaGFtIEh1 bmcgliBodXllbiBUdSBMaWVtIJYgdGhhbmggcGhvIEhhIE5vaSwgYW4gbmd1IG5nYXkgY29uZyBj aGluaCBsYSBtb3QgdHJ1IGRhIGNob25nIHRyb2kgY29uIHR1b25nIGRhaSBIbyBjaGkgTWluaCB2 b2kgY2hpZW4gc2kgdGluaCBiYW8gdGhpIGJpIA0KZGF5IHNhbmcgdHJhaSwgbyB0cnVvYyBuaGEg bmdoaSwgbyBiZW4gaG9uZyBuaGEgYW4gY2hvIHRoYXkgbW90IGNhY2ggZGF5IGR1LCBybyByYW5n IGN1b25nIHZvbmcgY3VhIE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUuIE5ldSBkZSB5IHJhbmcg byBjYWMgY29uZyBzbyBuaHUgVXkgYmFuIG5oYW4gZGFuIHRoYW5oIHBobyBIbyBjaGkgTWluaCwg SG9jIHZpZW4gY2hpbmggdHJpIHZhIGhhbmggY2hpbmggcXVvYyBnaWEgSG8gY2hpIA0KTWluaCwg SG9jIHZpZW4gcXVvYyBwaG9uZywgSG9jIHZpZW4gaGF1IGNhbiwgdHVvbmcgZGFpIEJhYyBkZXUg ZHVvYyBkYXQgbmdheSB0cnVvYyBtYXQgdG9hIG5oYSBjaGluaCwgdGFpIHZpIHRyaSB0cmFuZyB0 cm9uZyBuaGF0LCB0aG9hbmcgZGFuZyBuaGF0IHRoaSBzZSB0aGF5IHkga2llbiB0cmVuIGtob25n IHBoYSBsYSBraG9uZyBjbyBjbyBzby4NCiAgDQpWaSBjdW9uZyB2b25nIGF5IG1hIE5ndXllbiBj aGkgVmluaCB2YSBwaGUgbHUgZGEgbGVvIGxhIGhhdSBoZXQgbHVjIGx1b25nLCBwaHVvbmcgdGll biBjdWEgVG9uZyBjdWMgSUkgbGFtIHNhaSBjaHVjIG5hbmcsIG5oaWVtIHZ1IHRhcCB0cnVuZyB2 YW8gbGFtIHRpbmggYmFvIG5vaSBibywgbm9pIGRpYSwgDQp0aHVjIGNoYXQgbGEgbGFtIGFuIG5p bmgsIHBoYW4gZ2lhbi4NCiANCiBNdW9uIGxhcCAiY29uZyIgbG9uLCBtdW9uIGx1dSBkYW5oIHN1 IHNhY2ggbmh1bmcgYmlldCBtaW5oIGtob25nIGR1IHN1YyBuaGFtIHZhbyBjYWMgbXVjIHRpZXUg dGluaCBiYW8gcXVhbiB0cm9uZyBjdWEgY2FjIGRvIHR1b25nIHRpbmggYmFvIGNodSB5ZXUgbmh1 IE15LCBUcnVuZyBxdW9jLCBUaGFpIExhbiwgY2h1bmcgbGFpIHF1YXkgcmEgbmhhbSBjYW4gdmFv IGNhYyB0aGFuZyB0byB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmkgbyBudW9jIHRhLCANCnRydWMg dGllcCBnYXkgbmVuIHRpbmggdHJhbmcgbmdoaSBseSwgY2hpYSByZSwgcm9pIHJlbi4gQ2h1bmcg ZGEgaHUgZG9hIGNhcCB0cmVuIGxhICJjYWMgcGhhbiB0dSBjbyBob2ksIGh1dSBraHV5bmggcmF0 IGRhIGRhbmc6IHRyZSAtIGdpYSwgZHVvbmcgY2h1YywgbmdoaSBodXUsIHNvLCB0cnVuZy1jYXAg DQpjYW8sIGxvIG1hdC1naWF1IG1hdCAuLi4gQ2h1bmcgY28gaGF1IGhldCBraGFwIGNhYyBkaWEg YmFuLCBjYWMgY2FwLCBjYWMgbmdhbmgsIGNhYyBnaW9pLi4uIE1vaSBxdWFuIGhlIGdpdWEgY2h1 bmcgcmF0IGNoYW5nIGNoaXQsIHRpbmggdmksIGtobyBuaGFuIGJpZXQuIENvIGRhdSBoaWV1IG5o aWV1IGtlIGNvbiBjaGltIHJhdCBzYXUsIGtob25nIGl0IGtlIGhpZW4gZGFuZyBuYW0gY3Vvbmcg dmkgcmF0IGNhbyB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmksIGNvIGtlIGJpIHRpbmggYmFvIG51 b2MgbmdvYWkgKGNodSB5ZXUgbGEgQ0lBKSBjYXUgbW9jIG11YSBjaHVvYywga2hvbmcgY2hlLiBU aW0gcmEgZHUgDQp5ZXUgdG8gZGUgdmFjaCBtYXQsIGNoaSB0ZW4gdHVuZyBkb2kgdHVvbmcgbGEg bmhpZW0gdnUgY3VjIGt5IGNhcCB0aGlldCBuaHVuZyBjdW5nIHJhdCANCmtobyBraGFuIGN1YSB0 aW5oIGJhbyIsIGRhIHRodSBuaGFwLCB0YW8gZHVuZyB0aG9uZyB0aW4gdmUgaGFuZyBuZ2FuIGNh biBibyBxdWFuIJYgZGFuIJYgY2hpbmggZGFuZywgdHJvbmcgZG8gY28gaGFuZyB0cmFtIG5ndW9p IHR1IGNhcCB1eSB2aWVuIHRydW5nIHVvbmcgdHJvIGxlbiBuaHUgTmd1eWVuIA0KdmFuIEFuLCBO Z3V5ZW4gbWFuaCBDYW0sIExlIHZhbiBDaGF1LCBWbyB2YW4gQ3VvbmcsIFBoYW4gRGllbiwgUGhh bSB0aGUgRHV5ZXQsIExlIHZhbiBEeSwgSHV5bmggRGFtLCBUcmFuIGRpbmggRGFuZywgVHJhbiBi YWNoIERhbmcsIE5ndXllbiBraG9hIERpZW0sIExlIHR1IERvbmcsIFZvIG5ndXllbiBHaWFwLCBW dSBob2FuZyBIYSwgTGUgdGhhbmggSGFpLCBIb2FuZyB0cnVuZyBIYWksIFRyYW4gSG9hLCBWdSBx dW9jIEh1bmcsIFZvIGR1YyBIdXksIFRyYW4gcXVvYyBIdW9uZywgTmd1eWVuIHZhbiBIdW9uZywg UGhhbiB2YW4gS2hhaSwgUGhhbSANCmdpYSBLaGllbSwgVnUgS2hvYW4sIFZvIHZhbiBLaWV0LCBQ aGFuIG5odSBMYW0sIE5ndXllbiBkaW5oIExvYywgSG8geHVhbiBNYW4sIFZ1IE1hbywgQ2h1IGh1 eSBNYW4sIE5ndXllbiBhbmggTWluaCwgTWFpIHZhbiBOYW0sIE5ndXllbiB0aGkga2ltIE5nYW4s IEhvIE5naGluaCwgVHJhbiBtaW5oIE5nb2MsIExlIGtoYSBQaGlldSwgS3NvciBQaHVvYywgTmd1 eWVuIHBob25nIFF1YW5nLCBOZ3V5ZW4gUXV5ZXQsIFRydW9uZyB0YW4gU2FuZywgTGUgaG9hbmcg UXVhbiwgVHJhbiB0cm9uZyBUYW4sIE5ndXllbiBiYSBUaGFuaCBOZ3V5ZW4gDQpwaHVjIFRoYW5o LCBWbyB2aWV0IFRoYW5oLCBEb2FuIGR1eSBUaGFuaCwgTmd1eWVuIHZhbiBUaHVhbiwgTmdvIHll biBUaHksIE5ndXllbiBraGFuaCBUb2FuLCBNYSB0aGFuaCBUb2FuLCBQaGFuIHZhbiBUcmFuZywg Tmd1eWVuIG5nb2MgVHJ1dSwgVHJhbiB2YW4gVHJ1eWVuLCBOZ3V5ZW4gdmFuIFR1LCBOZ3V5ZW4g VHksIExlIGRhbmggWHVvbmcsIHNvbmcgdGh1IGhvaSBoYW5nIG1heSBjaHVjIG5hbSBxdWEgDQpj aHVuZyBkYSB2YWNoIHRyYW4gZHVvYyBiYW8gbmhpZXUgdGVuIGNvIGhvaSwgaHV1IGtodXluaD8g Q2h1bmcgZHVuZyBsZW4gaG8gc28gdmUgbmhvbSBUNCAoVHJhbiBiYWNoIERhbmcsIFRyYW4gdmFu IEdpYXUsIFRyYW4gdHJvbmcgVGFuLCBUcmFuIHZhbiBUYW8pIGNvIGFtIG11dSBkdWEgbWllbiBO YW0gbHkga2hhaSB0aGFuaCBtb3QgbnVvYyB2b2kgbGEgY28gbmVuIHZhbmcgc2FvIGRvLCBjaHVu ZyBkaSBkYXUgdHJvbmcgdmllYyANCnF1eSBrZXQgU29uIFR1bmcgdmEgbmhvbSBDaGlldSBuZ28g dmFuLCBOZ28gVGh1YyB2YSBuaG9tIERpY2ggaG9jIC4uLiBsYSBjbyBob2ksIGNhcCB0aWVuIGh1 dSBraHV5bmgsIHBoYW4gZG9uZywgbGEgbmd1b2kgY3VhIGRpY2gga2hpZW4gbmhpZXUgZGllbSBj aHVhIGRvbmcgdGh1YW4gbyBub2kgYm8sIG5vaSBkaWEgZGFuZyByYSBjbyB0aGUgdHJhbyBkb2kg ZGUgZGkgdG9pIGRvbmcgdGh1YW4sIG5oYXQgdHJpIHRyZW4gY28gc28gbG9pIGljaCANCmNodW5n IGN1YSBkYW4gdG9jLCBjdWEgY2FjaCBtYW5nIGNhYmdmIHRybyBuZW4gYmF0IGRvbmcgaG9uLCB0 aGFtIGNoaSBjb24gZGkgdG9pIGRvaSBraGFuZy4gQ2h1bmcgdGh1IHRoYXAsIGJhbyBjYW8gbmhp ZXUgdGluIHhhdSB2ZSBoYW5nIGxvYXQgdHJpIHRodWMgY28gdGVuIHR1b2kgbmh1IA0KTmd1eWVu IGRpbmggRGF1LCBUdW9uZyBMYWksIFRyYW4gZHUgTGljaCwgTmd1eWVuIG5nb2MgVHJhbiBzb25n IHZlIGNvIGJhbiBuaHVuZyB0aW4gZG8gZGV1IGtob25nIHhhYyB0aHVjLiBDYSBWaWV0IGtpZXUg dmUgbnVvYyBsYW0gYW4gbmh1IENoYXJsZXMgRHVjLCBEaW5oIGh1dSBEdWMsIE5ndXllbiBuZ29j IE15LCBIYSB0b24gVmluaCwgY29uZyBkYW4gVmlldCBOYW0gcmEgbnVvYyBuZ29haSBsYW0gYW4g bmh1IE5ndXllbiANCmNoaSBEdW5nLCBOZ3V5ZW4gY2FuaCBTb24sIE5ndXllbiBuaGF0IFRpZW4s IFZvIG5ndXllbiBUdWUsIFBoYW0gbmhhdCBWdW9uZyBsYW4gY29uZyBkYW4gVmlldCBOYW0gbGFu IG8gdHJvbmcgbnVvYyBuaHUgVHJ1b25nIGdpYSBCaW5oLCBIdXluaCBwaGkgRHVuZywgTWFpIGtp ZXUgTGllbiBkZXUgYmkgY2h1bmcgbmdoaSBuZ28sIHRoZW8gZG9pIHF1eSBjaHVwIHRodSBob2kg Y2h1bmcgZGEgY2h1bmcgbWluaCBkdW9jIGFpIA0KdHJvbmcgc28gZG8gbGEgcGhhbiBib2ksIHBo YW4gZG9uZywgbGEgbmd1b2kgY3VhIHRpbmggYmFvIE15PyBEaSB2YW8gbm9pIGJvIGJhbiBMYW8s IGJhbiBDYW1wdWNoaWEgdGhpIGNodW5nIGN1bmcgbmdoaSBuZ28gdGhlbyBkb2kgcXV5IGNodXAg aGFuZyBsb2F0IGNhYyB2aSBsYW5oIGRhbyBjYXAgDQpjYW8gbmh1IE51LWhhYyBQaHVtLXhhLXZh biwgTy1zYS1DYW4gVGhhbS1tYS10aGUtdmEsIFhvbS14YS12YXQgTGVuaC14YS12YXQsIFRob29u Zy14aW5nIFRoYW0gbWEgdm9uZyhjdWEgTGFvKSwgSHVuIFNlbiwgQ2hpYSBTaW0gU28gS2hlbmgg KGN1YSBDYW1wdWNoaWEpIGxhIHRoYW4gTXksIHRoYW4gVHJ1bmcgUXVvYywgdGhhbiBUaGFpIExh biwgY2hvbmcgVmlldCBOYW0gc29uZyB0aHUgaG9pIGRpZXUgZG8gY28gYmFvIA0KbmhpZXUgcGhh biB0cmFtIGxhIHN1IHRoYXQ/DQogIA0KRHVvbmcgbmh1IGFpIGtob25nIHVuZyBobyBOZ3V5ZW4g Y2hpIFZpbmggdmEgcGhlIGx1IHRoaSBkZXUgYmkgYm9uIGNodW5nIHF1eSBjaHVwIGxhIGRpY2gs IGxhIG5ndW9pIGN1YSB0aW5oIGJhbyBNeSwgZGV1IGJpIGNodW5nIHZ1IGNhbyxib2kgbmhvLGxh dCBkby4gQ2h1bmcgdnVhIGhvIGhhbyAiYmFvIHZlIHRvbmcgYmkgdGh1IGxhIGJhbyB2ZSBEYW5n IiB2dWEgdGltIG1vaSBjYWNoLCBkdW5nIG1vaSB0aHUgZG9hbiCWIGtlIGNhIG5odW5nIA0KY2Fj aCwgbmh1bmcgdGh1IGRvYW4geGF1IHhhIG5oYXQsIGJpIG9pIG5oYXQgliBkZSBkYW5oIHRoYW5n IHZhbyB0b25nIGJpIHRodSBMZSBraGEgUGhpZXUsIGNob25nIGxhaSB2aWVjIHRvbmcgYmkgdGh1 IExlIGtoYSBQaGlldSB0YWkgY3UuIENodW5nIGJhbyAibGF0IGFuLiIgTGEgZG9uIG5oYW0gDQpo aWVtIGJhYyBuaGF0IG1hIHRoZSBsdWMgdGh1IGRpY2ggZG8gTXkgZHVuZyBkYXUgbmhhbSB2YW8g Y2FjaCBtYW5nIG51b2MgdGEgc29uZyB2b2kgY2FjIGhhbmggZG9uZyBuaGFtIHZhbyBOZ3V5ZW4g bWFuaCBDYW0sIFBoYW4gRGllbiwgVHJhbiBiYWNoIERhbmcsIFZvIG5ndXllbiBHaWFwLCBMZSBr aGEgUGhpZXUsIFRydW9uZyB0YW4gU2FuZywgVHJhbiB0cm9uZyBUYW4sIFZvIHZpZXQgVGhhbmgs IFZvIHRoaSANClRoYW5nLi4uIHRoaSBjaHVuZyB4dW5nIGRhbmcgbGEgYmFjIHRoYXkgdmUgImxh dCBhbi4iLiBDaHVuZyBjaGluaCBsYSBrZSBwaGF0IGNhbyBjbyBkbyBkZSBjaG9uZyBsYWkgY28g ZG8uDQogDQogTmhpZXUgbmd1b2kgbyBUb25nIGN1YyBJSSByYXQgbG8gbmdhaSBraGkgdGhheSBn aXVhIHRob2kgYmluaCwga2hhIG5hbmcgeGF5IHJhIGNoaWVuIHRyYW5oIGRhIGR1b2MgRGFuZyBu aGFuIGRpbmggcXVhIG1heSBreSBkYWkgaG9pIGxhIGtob25nIGNvIG1hIE5ndXllbiBjaGkgVmlu aCB2YSBwaGUgbHUgbGFpIHhheSBkdW5nIGx1YyBsdW9uZyB0cmluaCBzYXQgYm8gZG9pIG5hbSB0 cm9uZyBkb2kgaGluaCBDdWMgcXVhbiBiYW8gcm9pIEN1YyAgDQp0aW5oIGJhbyB2b24gY2hpIG8g Y2FwIHRpZXUgZG9hbiB0aG9pIGNob25nIFBoYXAsIGNob25nIE15LCBjYXAgdHJ1bmcgZG9hbiB0 aG9pIGNoaWVuIHRyYW5oIGhhaSBkYXUgYmllbiBnaW9pIHBoaWEgQmFjIHZhIHBoaWEgVGF5IE5h bSBsZW4gdGhhbmggMyBkb2FuICJ0aW5oIGJhbyBoYW5oIGRvbmciIA0KbGEgSzMsNzQsOTQgY2Eg YmEgZGV1IGNvIHF1eSBtbyBjYXAgbHUgZG9hbiAoZG9hbiB0cnVvbmcgZHVvYyB0aGFuZyBxdWFu IGhhbSB0b2kgZGFpIHRhKSwgZGUgZG8gdGF5IGNoYW4gdGhhbiB0aW4gbmhhdCBjdWEgTmd1eWVu IGNoaSBWaW5oIG5hbSwgZGV1IGRvbmcgbyBjYWMgZG8gdGhpIGxvbiBiYWMgDQpuaGF0IGN1YSBk YXQgbnVvYywgZGV1IHRyaWVuIGtoYWkgbmhpZXUgaG9hdCBkb25nIGRpZXAgYmFvIHZhIGRldSBk dW9jIHRyYW5nIGJpIGNhYyB2dSBraGksIHRyYW5nIHRoaWV0IGJpIGRhYyBjaHVuZywgdHJvbmcg ZG8gY28gbWF5IGNodWMgeGUgdGhpZXQgZ2lhcC4NCiANCiBIbyB0dSBob2k6ICJUaW5oIGJhbyBo YW5oIGRvbmciIHRodWMgY2hhdCBsYSBnaT8gVGFpIHNhbyBjYWMgZG9hbiAidGluaCBiYW8gaGFu aCBkb25nIiBkbyBsYWkgcXV5IG1vIGxvbiBuaHUgdmF5IHRyb25nIGtoaSBxdXkgbW8gbHVjIGx1 b25nIHRyaW5oIHNhdCBibyBkb2kgY3VhIGNhYyBxdWFuIGtodSwgDQpxdWFuIGRvYW4sIHF1YW4g Y2h1bmcsIGJpbmggY2h1bmcgY2hpIG8gY2FwIHRpZXUgZG9hbj8gQ2h1bmcgbmhhbSB2YW8gZG9p IHR1b25nIHRhYyBjaGllbiBuYW8/IFJvIHJhbmcgbG8gbmdhaSBjdWEgaG8ga2hvbmcgcGhhaSBs YSB2byBjby4NCiAgDQpWaSBjdW9uZyB2b25nIGF5IG1hIE5ndXllbiBjaGkgVmluaCB2YSBwaGUg bHUgZGEgdGltIG1vaSBjYWNoIHRpZXAgY2FuLCB0cmFuaCB0aHUsIGxvaSBkdW5nIGxhbmggZGFv IGNhbyBuaGF0IGN1YSBxdWFuIGRvaSxEYW5nLCBOaGEgbnVvYy4gQ2h1bmcgaGlldSBybyBkbyBs YSBjYWNoIGNvIGhpZXUgcXVhIGNhbyBuaGF0IGRlIG5oYXkgdm90LCBkaSB0YXQsIGRvbiBkYXUs IGRvdCBjaGF5IGdpYWkgZG9hbiB0cm9uZyB2aWVjIHRoYW5nIHF1YW4gliBwaGF0IA0KdGFpIGN1 YSBjaHVuZy4gSGllbiB0cm9uZyBUb25nIGN1YyBJSSBjbyBuaGlldSB5IGtpZW4gY2hvIHJhbmcg Tmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBkYSByYXQgdGhhbmggY2NvbmcgZG9pIHZvaSB0b25n IGJpIHRodSBOb25nIGR1YyBNYW5oLCBuZ3V5ZW4gY28gdmFuIGJhbiBjaGFwIGhhbmggdHJ1bmcg dW9uZyBkYW5nIExlIGR1YyBBbmgsIG5ndXllbiBibyB0cnVuZyBCbyBxdW9jIHBob25nIFBoYW0g dmFuIFRyYSwgY2h1IG5oaWVtIA0KVG9uZyBjdWMgY2hpbmggdHJpIExlIHZhbiBEdW5nLCB0aHUg dHJ1b25nIEJvIHF1b2MgcGhvbmcgTmd1eWVuIGh1eSBIaWV1LCBkYSBzdSBkdW5nIGR1b2MgbmFt IHZpIG5heSBsYW0gY2hvIGR1YSwgbGFtIGNhaSBvIGNoZSBjaHUgeWV1IGNobyBjYWMgdmllYyBs YW0gcGhpIG5naGlhLCBwaGkgcGhhcCBjdWEgY2h1bmcuIE5ndW9pIHRhIHN1eSBnaWFtIG5pZW0g dGluIHZhbyBsYW5oIGRhbyBjYXAgY2FvIGN1YSBRdWFuIGRvaSwgDQpEYW5nLCBOaGEgbnVvYyB2 YSBuZXUgcmEgbmhpZXUgbmdoaSB2YW4sIHRoYWMgbWFjLiBWaSBkdToNCiANCiAxIJYgRGUgbGFt IGNvbmcgdGFjIHRoYW0gbXV1IHRhYyBjaGllbiBjYW4gbmFtIGR1b2MgYmEgbm9pIGR1bmcgbGEg dGluaCBoaW5oIGRpY2gsIHRpbmggaGluaCB0YSB2YSBkaWV1IGtpZW4gY2hpZW4gdHJ1b25nLCB0 cm9uZyBkbyB0aW5oIGhpbmggZGljaCBsdW9uIGR1b2Mgbm9pIHRvaSBkYXUgdGllbiB0cm9uZyBj YWMga2UgaG9hY2ggdGFjIGNoaWVuLCBxdXlldCB0YW0gY2hpZW4gZGF1IGN1YSBuZ3VvaSBjaGkg aHV5IHF1YW4gc3UgY2FjIGNhcCwgdmF5IA0KdGhpIHRhaSBzYW8gbGFpIGR1YSBDdWMgdGluaCBi YW8gcmEga2hvaSBCbyB0b25nIHRoYW0gbXV1LCBuYWcgbm8gbGVuIHRoYW5oIFRvbmcgY3VjIHRp bmggDQpiYW8gdmEgZHV5IHRyaSBtYWkgaGluaCB0aHVjIHRvIGNodWMgbmF5IGJhdCBjaGFwIHN1 IHBoYW4gZG9pIHR1IG5oaWV1IGNhbiBibyBjYXAgY2FvIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhh IG51b2MsIGNhIGR1b25nIGNodWMgbGFuIGRhIG5naGkgaHV1PyBLaG9uZyBjbyB0aW5oIGJhbywg DQpraG9uZyB0cnVjIHRpZXAgY2hpIGh1eSB0aW5oIGJhbyBsaWV1IEJvIHRvbmcgdGhhbSBtdXUg dmEgdG9uZyB0aGFtIG11dSB0cnVvbmcuIGNvIGNvbiBiYW8gaGFtIGRheSBkdSB5IG5naGlhIG5o dSB0ZW4gZ29pPyAobHV1IHkgcmFuZyBkdSB0aGFvIHRvbmcga2V0IDUwIG5hbSBjb25nIHRhYyB0 aGFtIA0KbXV1IGNoaWVuIGx1b2MgY3VhIEJvIHRvbmcgdGhhbSBtdXUgY3VuZyBnaGkgcm8gcmFu ZyBCbyB0b25nIHRoYW0gbXV1IGRhIHNhaSBsYW0ga2hpIGRvbmcgeSBjaG8gQ3VjIHRpbmggYmFv IHRhY2ggcmEga2hvaSBCbyB0b25nIHRoYW0gbXV1KTsNCiAgDQoyIJYgQ29uZyB0YWMgY2FuIGJv IHRyb25nIHF1YW4gZG9pIHZvbiByYXQgY2hhdCBjaGUgdmkgeWV1IGNhdSB2ZSBwaGFtIGNoYXQg ZGFvIGR1YywgcGhhbSBjaGF0IGNoaW5oIHRyaSwgdHJpbmggZG8gY2h1eWVuIG1vbiwgYmFuIGxp bmggbmdoaWVwIHZ1IC4uLiBkb2kgdm9pIGNhbiBibyBsYSBjYW8sIA0KY2h1YyB2dSB2YSBjYXAg YmFjIGx1b24gZ2FuIGxpZW4gdm9pIG5oYXUsIGNhcCBiYWMgdGhpIGNvIG5pZW4gaGFuIHZhIHRh dCBjYSBkYSBkdW9jIGx1YXQgaG9hLCB2YXkgbmhvIGFpIG1hIG5odW5nIGtlIGNvIG5oaWV1IHR5 IHZldCwgeWV1IGtlbSBjYSB2ZSBwaGFtIGNoYXQgbGFuIHZlIG5hbmcgbHVjIG5odSBOZ3V5ZW4g Y2hpIFZpbmgsIFBoYW0gbmdvYyBIdW5nLCBEYW5nIHRyaSBEdW5nLCBOZ3V5ZW4gbWluaCBUYW4s IFRyYW4gdmlldCANClRoYW5nLCBUcmFuIHF1b2MgTWluaCwgTmd1eWVuIHF1YW5nIER1bmcsIE5n dXllbiB0cm9uZyBIYWksIE5ndXllbiBxdWFuZyBIYWksIA0KRGFuZyB2YW4gRG9uZywgTmd1eWVu IHRpZW4gQmFjIGxhaSB0aGFuZyBxdWFuIHRpZW4gY2h1YyBuaGFuaCBuaHUgdGhlPw0KIA0KIDMg liBUYWkgc2FvIG5hbSAyMDAxIFBoYW0gdmFuIFRyYSBsYWkga3kgbmdoaSBxdXlldCAxODIgY3Vh IFRodW9uZyB2dSBkYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZywgY2hvIHBoZXAgVG9uZyBjdWMg SUkgbW90IGNvIHF1YW4gdHJ1YyB0aHVvYyBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyANCnZh IGJvIHRydW9uZyBCbyBxdW9jIHBob25nIJYgdHJ1YyB0aWVwIGJhbyBjYW8gdGluIHR1YyB2b2kg dG9uZyBiaSB0aHUsIGNodSB0aWNoIG51b2MsIHRodSB0dW9uZyBjaGluaCBwaHUgdGhheSB2aSBk ZSBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyBob2FjIGJvIHRydW9uZyBCbyBxdW9jIHBob25n IA0KYmFvIGNhbz8gVHJvbmcgc28gY2FjIGNvIHF1YW4gY2FwIHR1b25nIGR1b25nIFRvbmcgY3Vj IElJIGN1YSBCbyBxdW9jIHBob25nIHZhIEJvIGNvbmcgYW4gY28gY28gcXVhbiBuYW8gZHVvYyBw aGVwIGJhbyBjYW8gbmh1IHZheSBraG9uZz8NCiANCiA0IJYgVGFpIHNhbyBuYW0gMjAwNiBQaGFt IHZhbiBUcmEgbGFpIGt5IHZhbiBiYW4gY2hvIHBoZXAgdG9uZyBjdWMgdHJ1b25nIFRvbmcgY3Vj IElJIJYgbW90IG5ndW9pIGtob25nIHBoYWkgbGEgdXkgdmllbiB0cnVuZyB1b25nLCB1eSB2aWVu IERhbmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nIGt5IHF1eWV0IGRpbmggdGhhbmcgcXVhbiBoYW0g Y2hvIGNhbiBibyB0b2kgY2FwIHRydW5nIHRhIHRyb25nIGtoaSB0dSBsZW5oIGNhYyBxdWFuIGto dSwgDQpxdWFuIGNodW5nIChkYSBwaGFuIGxhIHV5IHZpZW4gdHJ1bmcgdW9uZywgdXl2aWVuIERh bmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nKSBsdWMgZG8gY2hpIGR1b2Mga3kgcXV5ZXQgZGluaCB0 aGFuZyBxdWFuIGhhbSBjaG8gY2FuIGJvIHRvaSBjYXAgdGhpZXUgdGE/DQogDQogNSCWIFRhaSBz YW8gMTAgLTE1IG5hbSBxdWEgZGEgZGUgeGF5IHJhIGNhYyB2dSB2aWVjIHJhdCBuZ2hpZW0gdHJv bmcgbmh1IHZ1IFQ0LCB2dSBBMTAsdnUgU2F1IFN1IGRhIGRlIGNhcCB0cmVuIGhhaSBsYW4gYmF0 IG5nbyB0cnVvYyBjYWMgaGFuaCBkb25nIGdheSByb2kgcXV5IG1vIGxvbiBvIFRheSBOZ3V5ZW4s IGJhdCBuZ28gdHJ1b2MgdnUgTHkgVG9uZyxiYXQgbmdvIHRydW9jIG5oaWV1IHN1IGtpZW4gcXVh biB0cm9uZyBvIGNhYyANCm51b2MsIGRhIGNvIG5oaWV1IGNhbiBibyBjaHUgdHJpLCBjaHUgY2hv dCBiaSBreSBsdWF0IHRoYW0gY2hpIGJpIGR1YSByYSB4ZXQgc3UgZGEga2hvbmcgbGFtIHRvdCBu aGllbSB2dSBsYW0gYW0gbXV1IHRodSBkb2FuIGNhYyBkb2kgdHVvbmcgdGluaCBiYW8sIG11YyB0 aWV1IHRpbmggYmFvIGRvaSB2b2kgZGFuIHRvYyB0YSwgY2FjaCBtYW5nIG51b2MgdGEgaGF1IG5o dSBkYSBraG9uZyBjbyB0aGVtIGNhIG5oYW4gbmFvIGxhcCBjaGllbiBjb25nIG1vaSANCmR1b2Mg cGhvbmcgdGFuZyBkYW5oIGhpZXUgQW5oIGh1bmcgbHVjIGx1b25nIHZ1IHRyYW5nIG5oYW4gZGFu IG1hIHRoYW5nIDQtMjAwOCBUb25nIGN1YyBJSSB2YW4gZHVvYyBwaG9uZyB0YW5nIGRhbmggaGll dSBBbmggaHVuZyBsdWMgbHVvbmcgdnUgdHJhbmcgbmhhbiBkYW4/IFN1eSANCmNobyBjdW5nIHRo aSBkYW5oIGhpZXUgYXkgY2FuIGNobyBhaT8gTHV1IHkgcmFuZyB2b2kgdGluaCBiYW8gZGFjIGJp ZXQgbGEgdm9pIGRpZXAgYmFvIGRvIA0Kc3UgY2kgcGhvaSBjdWEgeWV1IGNhdSBjdSBsaSwgZG9u IHR1eWVuIHRyb25nIHRvIGNodWMgaG9hdCBkb25nIG1hIHNvIGNhIG5oYW4gQW5oIGh1bmcgbHVv biBuaGlldSBob24gaGFuIHNvIHRhcCB0aGUgQW5oIGh1bmcgdmEgY2EgdGhvaSBjaG9uZyBQaGFw LCB0aG9pIGNob25nIE15IGxhbiB0aG9pIA0KY2hpZW4gdHJhbmggaGFpIGRhdSBiaWVuIGdpb2kg bmdhbmggdGluaCBiYW8gcXVhbiBzdSBkZXUgY2h1YSBkdW9jIHBob25nIHRhbmcgZGFuaCBoaWV1 IEFuaCBodW5nIHR1eSBkYSBjbyBoYW5nIGNodWMgZG9uIHZpIEFuaCBodW5nLCBoYW5nIHRyYW0g Y2EgbmhhbiBBbmggaHVuZy4gQ3VuZyANCmNhbiBub2kgdGhlbSBsYSB0cm9uZyB0b25nIGN1YyBJ SSBkYW5nIGNvIGR1IGx1YW4gcmFuZyB2dWEgcXVhIE5ndXllbiBDaGkgVmluaCB2YSBwaGUgbHUg ZGEgYm8gcmF0IG5oaWV1IHRpZW4gZGUgImNoYXkgQW5oIGh1bmciDQogDQogVHJvbmcgdGhvaSBn aWFuIHF1YSB0YWMgZ2lhIGN1YSBiYWkgdmlldCBuYXkgZGEgZ3VpIDUgbGEgZG9uIHRvaSBEYW5n IHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyx0aHUgdHJ1b25nIGJvIFF1b2MgUGhvbmcgdGhhbSBjaGkg dm9pIGNhIFV5IGJhbiBraWVtIHRyYSB0cnVuZyB1b25nLCBraWVuIG5naGkgbmh1bmcgdmFuIGRl IGtob25nIGNoaSB0cnVjIHRpZXAgbGllbiBxdWFuIGRhbmggZHUsc2luaCBtZW5oIGNoaW5oIHRy aSB2YSBzdSBhbiB0b2FuIGN1YSANCm1pbmggliBtb3QgY2FuIGJvIHRydW5nIGNhcCBjdWEgUXVh biBkb2ksIGN1YSBEYW5nIJYgbWEgY29uIHRydWMgdGllcCBsaWVuIHF1YW4gY2hhdCBsdW9uZyBj aGluaCB0cmksY2hhdCBsdW9uZyBuZ2hpZXAgdnUga2hhIG5hbmcgaG9hbiB0aGFuaCBjaHVjIG5h bmcsbmhlbSB2dSBjdWEgdG9uZyBjdWMgSUkgliBtb3QgY28gcXVhbiBjbyBtYXQgdHJvbmcgeWV1 IGN1YSBRdWFuIGRvaSxjdWEgRGFuZywgY3VhIE5oYSBudW9jLCBsaWVuIHF1YW4gDQp2aWVjIGNo YXAgaGFuaCBuZ3V5ZW4gdGFjIHRvIGNodWMsIGhvYXQgZG9uZyBjdWEgcXVhbiBkb2ksY3VhIERh bmcsIHBoYXAgbHVhdCBjdWEgTmhhIG51b2MuIERhbmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nLCB0 aHUgdHJ1b25nIEJvIHF1b2MgcGhvbmcgdmEgVXkgYmFuIGtpZW0gdHJhIHRydW5nIA0KdW9uZywg dGh1IHRydW9uZyBCbyBxdW9jIHBob25nIHZhIFV5IGJhbiBraWVtIHRyYSB0cmEgdHJ1bmcgdW9u ZyBkYSBjaGFtIHRyZSwgaG9pIGhvdCANCnRyb25nIHZpZWMgeGVtIHhldCwgZ2lhaSBxdXlldCwg dXkgdmllbiB0aHVvbmcgdnUgRGFuZyB1eSBxdWFuIHN1IHRydW5nIHVvbmcgTGUgdmFuIER1bmcg Y29uIGt5LCBtb3QgdmFuIGJhbiBndWkgVXkgYmFuIGtpZW0gdHJhIHRydW5nIHVvbmcgliBEYW5n IHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyB0aGkga2hvbmcgdHJ1YyB0aWVwIGdhcCBnbywgbGF5IHkg a2llbiBjdWEgY2FjIHRvIGNodWMgZGFuZywgdG8gY2h1YyBjaGluaCBxdXllbiANCmNhcCBjbyBz byBub2kgdGFjIGdpYSBiYWkgdmlldCBuYXkgY29uZyB0YWMgdmEgeSBraWVuIGN1YSBjYW4gYm8g Y28gbmhpZXUgbmFtIGNvbmcgdGFjIHRyb25nIG5nYW5oIHRpbmggYmFvIHF1YW4gc3UsIGRhYyBi aWV0IGxhIGNhYyBjYW4gYm8gZG8gdGFjIGdpYSBiYWkgdmlldCBuYXkgZ2lvaSB0aGlldSB0aGVv IA0KZGUgbmdoaSBjdWEgY2hpbmggVG8gY29uZyB0YWMgbWEgY29uIGdvaSB5IGxhbmggZGFvLCBj aGkgaHV5IFRvbmcgY3VjIElJIHZhIHRhYyBnaWEgYmFpIHZpZXQgbmF5IGN1bmcga2V0IHRodWMg dnUgdmllYyAuLi4gVmllYyBuYXkgY3VuZyB2b2kgbmh1bmcgdmllYyBkYSBuZXUgbyB0cmVuIGNo byB0aGF5IHJhdCANCnJvIHJhbmcgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSB0aGF0IHN1IGxh IG5odW5nIG1hbSBiZW5oIHZvIGN1bmcgbmd1eSBoaWVtLCBjaGFuZyBuaHVuZyBsYW0gaHUgaG9u ZyBoZXQgY28gcXVhbiB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4gc3UgLSB0YWkgbWF0IGN1 YSBxdWFuIGRvaSwgDQpjdWEgRGFuZywgY3VhIE5oYSBudW9jLCBuZXUga2hvbmcgbWF1IGNob25n IHF1ZXQgc2FjaCwgY2F0IGJvLCBkaWV0IHRydSB0aGkgaGF1IHF1YSB0aGF0IGtob24gbHVvbmcu DQogIA0KVmkgY3Vvbmcgdm9uZyBheSBtYSBOZ3V5ZW4gQ2hpIFZpbmggdmEgcGhlIGx1IGRhIHBo b3QgbG8sIGJlIGNvbmcgbmhpZXUgbmd1eWVuIHRhYywgeWV1IGNhdSwgcXV5IGNoZSwgcXV5IGRp bmggLi4uIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhhIG11b2MgdmEgYmFuIHRoYW4gdGluaCBiYW8u DQogDQogQ2FjIHZhbiBiYW4gY28gdGluaCBwaGFwIHF1eSBjdWEgcXVhbiBkb2ksIERhbmcsIE5o YSBudW9jIGRldSB4YWMgZGluaCBDdWMgdGluaCBiYW8gliBCbyB0b25nIHRoYW0gbXV1IHRydW9j IGtpYSwgVG9uZyBjdWMgSUkgliBCbyBxdW9jIHBob25nIGhpZW4gbmF5IGxhICJjbyBxdWFuIHRp bmggYmFvIHF1YW4gc3UuIiwgIkx1YyBsdW9uZyB0aW5oIGJhbyB0aHVvYyBCbyBxdW9jIHBob25n LiIsIGF5dmF5IGNodW5nIGxhaSBjb25nIGtoYWkgZ29pIFRvbmcgY3VjIElJIGxhIFRvbmcgY3Vj IHRpbmggYmFvIHF1b2MgcGhvbmcsIGxhaSBtbyB4ZSBraGFpIG5pZW0gInF1b2MgcGhvbmcuIi4g DQpUaGVvIHkgY2h1bmcgZGUgeGF5IGR1bmcgdG8gY2h1YywgdHJpZW4ga2hhaSBob2F0IGRvbmcg dHJlbiBtb2kgbGluaCB2dWMsIGtlIGNhIGxpbmggdnVjIG5vaSBkaWEsIG5vaSBibyB2YSBjYWMg bGluaCB2dWMgY28gdGhlIG5vaSBsYSBraG9uZyBnYW4gZ2kgdm9pIGNvbmcgdGFjIHF1YW4gc3Us IHF1b2MgDQpwaG9uZy4gQ2h1bmcgbHVhIGRvaSBjYXAgdHJlbiwgZ3VpIGxlbiBuaGlldSAidGlu IHRpbmggYmFvLiIgS2hvbmcgcm8gbmd1b24gdGluLCB0cnVvbmcgaG9wIHRodSB0aW4sIGtob25n IGtoYW5nIGRpbmggZHVvYyBkbyB4YWMgdGh1YyBjdWEgbm9pIGR1bmcgdGhvbmcgdGluLCB0cm9u ZyBkbyBjaGllbSB0eSBsZSBsb24gbmhhdCB2YSBjdW5nIGdheSB0YWMgaGFpIG5oYXQgbGEgdGlu IHZlIG5vaSBiby4gVGluIGNvIG5vaSBkdW5nIHhhdSB2ZSBuZ3VvaSBuYXkgDQp0aGkgY2h1bmcg Z3VpIGNobyBuZ3VvaSBraGFjLCBnYXkgbmVuIHN1IG5naGkga3ksIGNoaWEgcmUsIHJvaSByZW4u IFJhdCBuaGlldSB0aG9uZyB0aW4gbGEgZG8gY2h1bmcgdGhlbSB0aGF0LCBuZ3V5IHRhbyBuaGFt IHZ1IGNhbywgYm9pIG5obywgbGF0IGRvLiBUaGFtIGNoaSBjaHVuZyBjb24gdHJ1YyB0aWVwIA0K aG9hYyBnaWFuIHRpZXAgKHN1IGR1bmcgbmh1bmcgImNvbmcgdGFjIHZpZW4ia2lldSBuaHUgRGFu ZyBkaW5oIExvYW4pIHBoYXQgdGFuIHJhIGRpZW4gcm9uZyBtb3Qgc28gdGhvbmcgdGluIGxvYWkg bmF5LCBjaGFuZyBoYW4gdGhvbmcgdGluIHZlIFZvIG5ndXllbiBHaWFwLCB2ZSBOZ3V5ZW4gbmFt IA0KS2hhbmguIE5hbSAyMDAxLCB0cnVvYyBEYWkgaG9pIElYIGN1YSBEYW5nLCBiaSB0byBjYW8g bGEgbGFtIHRpbmggYmFvIG5vaSBibyBzYWkgDQpuZ3V5ZW4gdGFjLCBjaHVuZyBsaWVuIHRvIGNo dWMgY2h1cCBsYWkgZHVvaSBkYW5nIGZpbGUgbWF5IHRpbmggcm9pIHRpZXUgaHV5IGNhYyB2YW4g YmFuIHRpbiB0dWMsIHRhaSBsaWV1IGNvIGxpZW4gcXVhbiBkZSB4b2EgZGF1IHZldCwgZGUgcGhv bmcgdGluaCBoaW5oIGRpZW4gYmllbiB0aGVvIGh1b25nIGJhdCBsb2kgY2hvIGNodW5nLiBTYXUg ZG8gY2h1bmcgdmFuIGR1eSB0cmkgdG8gY2h1YyB2YSBob2F0IGRvbmcgdGh1IHRoYXAsIHh1IGx5 LCBiYW8gY2FvIHRpbiANCnR1YyB2ZSBub2kgYm8uIExvYWkgdGluIG5heSBkdW9jIGdvaSBsYSB0 aW4gcmllbmcsIGR1b2MgY2h1eWVuIGxlbiBOZ3V5ZW4gY2hpIFZpbmggcXVhIGJhbiBBIGN1YSBj dWMgZGllcCBiYW8sIHF1YSBQaG9uZyA3MyBjdWEgVG9uZyBjdWMgbWEga2hvbmcgcXVhIHBob25n IG5naGllbiBjdXUgDQp0b25nIGhvcCBjdWEgY3VjIGRpZXAgYmFvLCBraG9uZyBxdWEgY2EgVmll biA3MCBjdWEgVG9uZyBjdWMgbGEgY2FjIGNvIHF1YW4gY28gY2h1YyBuYW5nIHh1IGx5IHRpbiB0 dWMuIE8gY2FjIHBob25nIGRpZXAgYmFvLCBjdWMgZGllcCBiYW8gY29uIGNvIHRhbSBseSBjb2kg dHJvbmcgdGluIHJpZW5nIA0KaG93biBjYWMgdGluIGtoYWMuIGNodW5nIHF1YSBsYSAiZGFuaCBj aGV0LCBuZXQga2hvbmcgY2h1YSIuDQogIA0KQ2FuIG5vaSB0aGVtIHJhbmcgY2h1YyBuYW5nLCBu aGllbSB2dSB2dWEgY28gcXVhbiB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4gc3UgZGEgZHVv YyBxdWFuIGRvaSwgRGFuZywgTmhhIG51b2MgeGFjIGRpbmggcmF0IHJvIHJhbmcuIE5ldSBoaWV1 IGR1bmcgY2h1YyBuYW5nLCBuaGllbSB2dSBheSB2YSBsYSBjYW4gYm8sIGRhbmcgdmllbiwgcXVh biBjaHVuZyB0b3QgdGhpIG5ndW9pIHRhIHNlIGtob25nIGJhbyBnaW8gY3VuZyBjYXAgdGluIHR1 YyANCnRpbmggYmFvIG5vaSBibyBjaG8gVG9uZyBjdWMgSUkuIFZlIGNvIGJhbiwgY2hpIGNvIGhh aSBsb2FpIG5ndW9pIHRodSB0aGFwLCBjdW5nIGNhcCB0aW4gdHVjIHRpbmggYmFvIG5vaSBibyBj aG8gVG9uZyBjdWMgSUk6DQogIA0KMSCWIE5odW5nIG5ndW9pIGNvIHRyaW5oIGRvIG5oYW4gdGh1 YyB5ZXUga2VtLCBoaWV1IHNhaSBjaHVjIG5hbmcsIG5oaWVtIHZ1IGN1YSBUb25nIGN1YyBJSS4N CiANCjIgliBOaHVuZyBuZ3VvaSBoaWV1IGR1bmcgY2h1YyBuYW5nIGN1YSBUb25nIGN1YyBJSSBu aHVuZyBtdW9uIHRob25nIHF1YSwgbXVvbiBkdWEgdmFvIFRvbmcgY3VjIElJIGRlIHRodWMgaGll biByaWVuZy4gUm8gcmFuZyBsYSB2b2kgbmd1b24gdGluIG5odSB2YXkgdGhpIG5vaSBkdW5nIHRo b25nIHRpbiByYXQga2hvIG1hIGNodWFuIHhhYy4NCiANCiBDaHVuZyBudXAgYm9uZyBuZ3V5ZW4g dGFjIG5naGllcCB2dSwgeWV1IGNhdSBuZ2hlIG5naGllcCBkZSBiZSBjb25nIGNhYyBtYXQgY29u ZyB0YWMgdG8gY2h1YywgY2FuIGJvLCBraWVtIHRyYSwgdGhpIGR1YSCWIGtoZW4gdGh1b25nLCBj aGluaCBzYWNoIC4uLiB0aGVvIGJhbyBkYW0gbmd1eWVuIHRhYyBiaSBtYXQsIGJhbyBkYW0geWV1 IGNhdSBjdSBseSwgZG9uIHR1eWVuLCB0aW5oIGdvbiB2YXkgbWEgY2h1bmcgbGllbiB0dWMgeGFv IHRyb24gZG9pIA0Kbmd1IGNhbiBibyB0aGVvIGNoaWV1IG5nYW5nLCB0b2kgdGFuIGNhcCB0aGFw IG5oYXQgbGEgY2FuIGJvIGhvYXQgZG9uZyAoY28gY2FuIGJvIG1hdCBjaGkgdHJvbmcgZGFtIGJh IG5hbSBtYSBkYSAncXVhIHRheS4iIENhIGNodWMgY2FuIGJvIGhvYXQgZG9uZykuIEhpZW4gbyBU b25nIGN1YyBJSSBjbyBuaGlldSBjYW4gYm8gdHVuZyBnaXUgdmkgdHJpIGNodSB0cmksIGNodSBj aG90IG8gMi80LCB0aGFtIGNoaSC+LCA0LzQsIGN1YyBkaWVwIGJhbyBjaGllbiANCmx1b2MgYmF0 IGhvcCBwaGFwICh2YSB0dW9uZyBkdW9uZykgY3VhIHRvbmcgY3VjLCB2aSBkdTogUGhhbiBzeSBN aW5oICh0cnVvbmcgcGhvbmcgbyBDdWMgMTIsIHBobyBjdWMgdHJ1b25nIEN1YyAxMSwgcGhvIGNo aSBodXkgdHJ1b25nIFRydW5nIHRhbSA3MDEgcm9pIHBobyBjdWMgdHJ1b25nIEN1YyAxNiksIE5n dXllbiBxdWFuZyBIYWkgKHBobyBwaG9uZyBvIEN1YyAxMSwgdHJ1b25nIHBob25nIG8gQ3VjIDE2 IHJvaSBwaG8gQ3VjIA0KMTIpLCBUcmFuIGJhIER1bmcgKHRydW9uZyBwaG9uZyBvIEN1YyAxMiwg cGhvIGN1YyB0cnVvbmcgQ3VjIDExY2hpIGh1eSB0cnVvbmcgVHJ1bmcgdGFtIDcwMSwgY3VjIHRy dW9uZyBDdWMgMTEgcm9pIGN1YyB0cnVvbmcgQ3VjIDE2KSwgUGhhbiB2YW4gVmlldCAocGhvIGN1 YyB0cnVvbmcgQ3VjIDEyIHJvaSBjdWMgdHJ1b25nIEN1YyAxMSksIFRyYW4gdGllbiBQaHVvbmcg KHBobyBwaG9uZyBvIGNhYyBDdWMgMTUsMTYsMTIsIHRydW9uZyANCnBob25nIG8gVHJ1bmcgdGFt IDcwMSkuLi4gVHJvbmcgaG9uIDggbmFtIE5ndXllbiBjaGkgVmluaCBsYW0gdG9uZyBjdWMgdHJ1 b25nLCByYXQgbmhpZXUgdmkgdHJpIGNodSB0cmksIGNodSBjaG90IG8gVG9uZyBjdWMgSUkgbGll biB0dWMgYmkgdGhheSBkb2kgbmd1b2kgbmFtIGdpdTsgbyBkYXkgY2hpIG5ldSB2aSBkdSB2b2kg dmkgdHJpIGNodSB0cmkgdG9uZyBjdWMgdmEgY2h1IHRyaSBjYWMgZGF1IG1vaSB0cnVjIHRodW9j IHRvbmcgY3VjOyBwaG8gdG9uZyANCmN1YyB0cnVvbmcgdmUgY2hpbmggdHJpIChuYXkgbGEgY2hp bmggdXkpIJYgMyBuZ3VvaSwgY2h1IG5oaWVtIGNoaW5oIHRyaSBUb25nIGN1YyCWIDQgbmd1b2ks IGNoYW5oIHZhbiBwaG9uZyBUb25nIGN1YywgLSAzIG5ndW9pIGN1YyB0cnVvbmcgQ3VjIDE2IJYg NSBuZ3VvaSwgY3VjIHRydW9uZyANCkN1YyAxMSCWIDMgbmd1b2ksIGN1YyB0cnVvbmcgQ3VjIDI1 IJYgMyBuZ3VvaSwgQ2hpIGh1eSB0cnVvbmcgVHJ1bmcgdGFtIDcwMSCWIDQgbmd1b2ksIGN1YyB0 cnVvbmcgQ3VjIDcxIJYgMyBuZ3VvaSwgcGhvIGdpYW0gZG9jIHZlIGNoaW5oIHRyaSAobmF5IGxh IGNoaW5oIHV5KSBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1IC0gNSBuZ3VvaSwgcGhvIGN1YyB0 cnVvbmcgdmUgY2hpbmggdHJpIChuYXkgbGEgY2hpbmggdXkpIEN1YyAxNiCWIDQgDQpuZ3VvaSwg cGhvIGN1YyB0cnVvbmcgdmUgY2hpbmggdHJpIChuYXkgbGEgY2hpbmggdXkpIEN1YyAyNSCWIDQg bmd1b2ksIHRydW9uZyBwaG9uZyA3MyCWIDUgbmd1b2ksIHRydW9uZyBwaG9uZyBDIJYgNCBuZ3Vv aSwgcGhvIGNodSBuaGllbSBjaGluaCB0cmkgVG9uZyBjdWMgliA5IG5ndW9pIChiaWVuIA0KY2hl IHRodW9uZyB4dXllbiBsYSAyKSwgcGhvIGNoYW5oIHZhbiBwaG9uZyBUb25nIGN1YyCWIDUgbmd1 b2kgKGJpZW4gY2hlIHRodW9uZyB4dXllbiBsYSAxKSwgZG9hbiB0cnVvbmcgRG9hbiBLMyCWIDMg bmd1b2ksIGRvYW4gdHJ1b25nIERvYW4gNzQgLTMgbmd1b2ksIGRvYW4gdHJ1b25nIA0KRG9hbiA5 NCCWIDQgbmd1b2kgLi4uIENvIG5oaWV1IGNhcCB1eSBiaSBjaHVuZyBkaWV1IGNodXllbiBjb25n IHRhYyBxdWEgbnVhLCB0aGFtIGNoaSBsYSB0b2FuIGJvIGNhcCB1eSB2aWVuLCBjbyBuaGlldSBj YW4gYm8gYmkgY2h1bmcgZGlldSBjaHV5ZW4ga2hvbmcgdGhlbyBxdXkgaG9hY2guIFZpIGR1Og0K IA0KMSCWIERhaSBob2kgZGFpIGJpZXUgZGFuZyBibyBraG9hIGhvYyBxdWFuIHN1IHRoYW5nIDEw IJYgMjAwNSBiYXUgRGFuZyB1eSBnb20gMTMgbmd1b2ksIERhbmcgdXkgYmF1IEJhbiB0aHVvbmcg dnUgZ29tIDQgbmd1b2ksIGRlbiBuYXksIG1vaSBxdWEgbnVhIG5oaWVtIGt5IG1hIHNvIA0KdGhh eSBtb2kgdm9pIERhbmcgdXkgbGEgOS8xMywgdm9pIEJhbiB0aHVvbmcgdnUgZGEgbGEgMy80ICh0 cm9uZyBkbyBjbyBiaSB0aHUpOw0KIA0KMiCWIERhaSBob2kgZGFpIGJpZXUgZGFuZyBibyBjdWMg MTYgY3VvaSBuYW0gMjAwNSBiYXUgRGFuZyB1eSBnb20gMTMgbmd1b2ksIERhbmcgdXkgYmF1IEJh biB0aHVvbmcgdnUgZ29tIDQgbmd1b2ksIGRlbiBuYXkgY3VuZyBtb2kgcXVhIG51YSBuaGllbSBr eSBtYSBzbyB0aGF5IG1vaSANCnZvaSBEYW5nIHV5IGxhIDkvMTMsIHZvaSBCYW4gdGh1b25nIHZ1 IGRhIGxhIDMvNCAodHJvbmcgZG8gY28gYmkgdGh1LCBwaG8gYmkgdGh1KSwgdmkgdHJpIGJpIHRo dSB2YSBtb3QgdmFpIHZpIHRyaSBraGFjIGRhIHRoYXkgdG9pIGxhbiB0aHUgYmEuIENodW5nIGNv biBiZSBjb25nIGNhIHF1eWV0IGRpbmggY3VhIHRyZW4uIER1b2MgYmlldCBuYW0gMjAwNCB0cmVu IGNvIHF1eWV0IGRpbmggZ2lhaSB0aGUgQ3VjIDE1IGNhIHZlIHRvIGNodWMgRGFuZyBsYW4gdG8g DQpjaHVjIGNoaW5oIHF1eWVuIGRlIHNhdCBuaGFwIHZhbyBDdWMgMTYsIHNvbmcgY2h1bmcgbGFp IHBobyBiaWVuIGxhIHRyZW4gY28gcXV5ZXQgZGluaCBnaWFpIHRoZSBjYSBoYWkgY3VjIDE1LCAx NiBkZSB0aGFuaCBsYXAgQ3VjIDE2IG1vaTsgdHJlbiBjbyBzbyBkbywgY2h1bmcgZ2lhaSB0aGUg bHVvbiBjYWMgDQp0byBjaHVjIERhbmcsIHRvIGNodWMgY2hpbmggcXV5ZW4gY3VhIEN1YyAxNiBy b2kgdGhhbmggbGFwIGNhYyB0byBjaHVjIERhbmcsIHRvIGNodWMgY2hpbmggcXV5ZW4gbW9pLCB0 cm9uZyBkbyBjbyBzbyBjYW4gYm8gbGFuaCBkYW8sIGNoaSBodXkgQ3VjIDE1IGN1IChsYSBuZ3Vv aSBjdWEgY2h1bmcpIGNoaWVtIHBoYW4gbG9uIHZpIHRyaSBjaHUgdHJpLCBjaHUgY2hvdC4gS2hp IGF5IG5oaWV1IHkga2llbiBjaG8gcmFuZyBDdWMgMTUgZGEgImRhbyANCmNoaW5oIHRoYW5oIGNv bmciIGRvaSB2b2kgQ3VjIDE2Lg0KIA0KQ2FpIHR1IGRlIHllbiB0aGkgdmFuIGxhIGNhaSB0dSwg dmFuIGR1bmcgZHVvYyBkby4gTmV1IHRoYW8gbGFwLCBkaSBjaHV5ZW4gbmhpZXUgbGFuIHRoaSBn byBjbyB0b3QgZGVuIGRhdSwgY2FpIHR1IHZhbiBraG9uZyB0cmFuaCBraG9pIGx1bmcgbGF5LCB4 b2Mgc2VjaCByb2kgYmllbiB0aGFuaCBkb25nIGN1aS4gUXVhIHN1ICJsdWFuIGNodXllbi4iY3Vh IE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUsIG5odW5nICJjYWkgdHUgY2FuIGJvLiIgbyBUb25n IGN1YyBJSSBkYSB0aGF0IHN1IGh1IGhvbmcsIGtob25nIGR1bmcgZHVvYyBudWEuDQogIA0KQ2h1 bmcgbGFtIGRpZXAgYmFvIG5odW5nIGtob25nIHRvIGNodWMgeGF5IGR1bmcgZGllcCB2aWVuLCB0 aW5oIGJhbyB2aWVuIG1hIG5naGkgcmEga2hhaSBuaWVtICJjYW4gYm8gbWF0IiwgImNhbiBibyBk aWVuIEIuIiBkZSBkdWEgdHUgYmVuIG5nb2FpIHF1YW4gZG9pIHZhbyB0byBjaHVjIGRpZXAgYmFv IGhhbmcgbmdhbiBuZ3VvaSBtYSBuZXUgeGV0IHRoZW8gbmd1eWVuIHRhYywgeWV1IGNhdSBjdWEg ZGllcCBiYW8gY2hpZW4gbHVvYyB0aGkgIA0KaG9hbiB0b2FuIGtob25nIGNvIGtoYSBuYW5nIGRp ZXAgYmFvIChkYWMgYmlldCBsYSB2ZSBtYXQgcXVhbiBzdSkuIFBoYW4gbG9uIHNvIG5heSBsYSBu Z3VvaSB0aGFuIHF1ZW4gY3VhIGNodW5nLiBWb2kgY2FjICJjb25nIHRhYyB2aWVuIG1hdCJjdW5n IGNvIHRpbmggdHJhbmcgdHVvbmcgdHUuIERpZXUga3kgbGEgbGEgdHJvbmcgc28gImNhbiBibyBt YXQiLCAiY29uZyB0YWMgdmllbiBtYXQiIGRvIGNvIHJhdCBuaGlldSBuZ3VvaSBkYW5nIGxhbSB2 aWVjIHRyb25nIGNhYyBjbyBxdWFuIHF1YW4gliBkYW4gliBjaGluaCCWIGRhbmcgY3VhIHRhLCBt b3Qgc28gbmd1b2kgY29uIGxhIGNhbiBibyBjYXAgDQpjdWMglnZ1IC0gdmllbiB0cm8gbGVuLiBU cmVuIGtoYXAgdGhlIGdpb2ksIHR1IHh1YSB0b2kgbmF5LCBjaGkgY28gY2h1bmcgbGFtIGRpZXAg YmFvIGNoaWVuIGx1b2MgbWEga2hvbmcgeGF5IGR1bmcgZGllcCB2aWVuLCB0aW5oIGJhbyB2aWVu LiBIaWVuIG8gY2FjIGNvIHF1YW4gdGhhbSBtdXUsIGNoaSBkYW8sIA0KYmFvIGRhbSwgY2FjIG5o YSB0cnVvbmcsIHZpZW4gbmdoaWVuIGN1dSBjdWEgVG9uZyBjdWMgSUkgY28gaGFuZ3RyYW0gImNh biBibyBtYXQuIiwgImNhbiBibyBkaWVuIEIiIG5odSB2YXkgdHJvbmcga2hpIGhhbmcgdHJhbSBz eSBxdWFuIHRydW5nLCBjYW8gY2FwIGRhIHRvdCBuZ2hpZXAgY2FjIGhvYyB2aWVuLCBuaGEgdHJ1 b25nIHF1YW4gc3UsIGRhIGtpbmggcXVhIHRodWMgdGllbiBob2F0IGRvbmcgcXVhbiBzdSwgdm9u IHRodW9jICJkaWVuIA0KQSIsIHZvbiBsYW0gY29uZyB0YWMgdGhhbSBtdXUsIGNoaSBkYW8sIGJh byBkYW0sIG5naGllbiBjdXUsIGdpYW5nIGRheSB0aW5oIGJhbywgbmhpZXUgbmd1b2kgY29uIGR1 b2MgZGFvIHRhbyB0aGVtIHZlIG5nb2FpIG5ndSwga2luaCB0ZSwga2hvYSBob2MgLSBjb25nIG5n aGUsIGRhIGNvIG1vdCBzbyANCm5hbSBjb25nIHRhYyBvIG51b2MgbmdvYWkgLi4uIGxhaSBiaSBj aHVuZyBkYXkgcmEgImRpZW4gQi4iIGRlIG5nb2kgY2hvaSB4b2kgbnVvYy4gQ28gdGhlIG5vaSBk dSBsYW5nIHBoaSBuaGFuIGx1YyBvIFRvbmcgY3VjIElJIGxhIGhldCBzdWMgdG8gbG9uLg0KIA0K Q2h1bmcgZHVuZyB0byBjaHVjIHZhIGhvYXQgZG9uZyBkaWVwIGJhbyBsYW0gYmluaCBwaG9uZywg ZHVuZyBrZSBob2FjaCBkaWVwIGJhbyBsYW0gY29uZyBjdSBjaHUgeWV1IGRlIGJvbiBydXQgY29u ZyBxdXkuIENvIHRoZSBraGFuZyBkaW5oIHRyb25nIDEwIG5hbSB0cm8gbGFpIGRheSwgdGF0IGNh IGNhYyBrZSBob2FjaCBkaWVwIGJhbyBjbyBtdWMga2luaCBwaGkgZGFuZyBrZSBjdWEgVG9uZyBj dWMgSUkgZGV1IGl0IG5oaWV1IG1hYyBzYWkgDQpwaGFtIHZlIG1hdCBraW5oIHRlLCB0YWkgY2hp bmguIE5ldSB0aGFuaCB0cmEsIGtpZW0gdHJhLCBraWVtIHRvYW4gbW90IGNoYWMgY2hhdCBjaGUs IGNoYWMgY2hhbiBzZSBwaGF0IGhpZW4gcmEgbmhpZXUgdnUgdGhhbSBuaHVuZyBsb24sIG5oaWV1 IHRlbiB0aGFtIG5odW5nIGxvbi4NCiANClRyZW4gdGh1YyB0ZSBOZ3V5ZW4gY2hpIFZpbmggdmEg cGhlIGx1IGRhIGJpZW4gVG9uZyBjdWMgSUkgdGhhbmggY2FpIGFvIG5oYSBvIGRvIGRpZXUgbGVu aCwgY2hlIGRvIGN1YSBxdWFuIGRvaSwgZGlldSBsZSwgcXV5IGNoZSwgcXV5IGRpbmggY3VhIERh bmcsIEhpZW4gcGhhcCwgcGhhcCBsdWF0IGN1YSBOaGEgbnVvYyBkZXUgYmkgY2h1bmcgYmllbiBi YW8gdGhlbyBodW9uZyBjbyBsb2kgY2hvIGNodW5nLiBDaHVuZyBkYSB4byBkbyBuZ3V5ZW4gdGFj IJYgY2hvIGR1YSwgY2hvIGJhdSB2aXUgY3VvaSBjdW5nIGN1YSBjYW4gYm8sIGRhbmcgdmllbiwg cXVhbiBjaHVuZywgZGEgdm8gaGlldSBob2EgDQpraGEgdHJpZXQgZGUgY2FjIGNhcCB1eSBEYW5n IHZhIGNhYyBjbyBxdWFuIGNoaW5oIHRyaSB0cm9uZyBjb25nIHRhYyBsYW5oIGRhbywgY29uZyB0 YWMgRGFuZyCWIGNvbmcgdGFjIGNobmhzIHRyaSBsaWVuIHF1YW4gdmllYyB0aHVjIGhpZW4gbmhp ZW0gdnUgY2hpbmggdHJpIHRydW5nIHRhbSwgZGEgbGFtIHRlIGxpZXQsIGx1bmcgZG9hbiBwaGFu IGxvbiB0byBjaHVjIERhbmcsIHBoYW4gbG9uIGNvIHF1YW4gY2hpbmggcXV5ZW4gbyBUb25nIGN1 YyBJSS4NCiANClZpIGN1b25nIHZvbmcgYXkgbWEgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBk YSBkYXkgVG9uZyBjdWMgSUkgdmFvIHRpbmggdHJhbmcga2h1bmcgaG9hbmcgdHJhbSB0cm9uZyB2 YSB0b2FuIGRpZW4sIGh1dSBkYW5oIHZvIHRodWMga2hpZW4gcXVhbiBkb2kgdmEgRGFuZyBjbyBu aHUgbGFuZywgY28gbWF0IG5odSBtby4NCiANClRyb25nIGxpY2ggc3UgY3VhIG1pbmgsIGRheSBs YSBsdWMgY28gcXVhbiB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4gc3UgY28gdG8gY2h1YyB2 b2kgcXV5IG1vIGxvbiBuaGF0IChnYXAgaGFuZyBjaHVjIGxhbiB0aG9pIGNob25nIE15KSwgY28g bHVjIGx1b25nIGRvbmcgZGFvIGJhYyBuaGF0LCBjbyBjbyBzbyB2YXQgY2hhdCAtIGt5IHRoYXQg dmEgY28gc28gcGhhcCBseSBkYXkgZHUgbmhhdCwgdGh1YW4gbG9pIG5oYXQsIGNvIG1heSBjaHVj IHBobyBnaWFvIHN1LCB0aWVuIHN5LCB0aGFjIHN5LCBjdSBuaGFuIHRpbmggYmFvIChkaWV1IG1h IG1heSBjaHVjIG5hbSB0cnVvYyBraG9uZyBoZSBjbyB2YSANCmNvIGxlIFZpZXQgTmFtIGxhIG51 b2MgbWEgdGkgbGUgdGhhYyBzeSwgY3UgbmhhbiB0aW5oIGJhbyBxdWFuIHN1IHRyZW4gdG9uZyBz byBkYW4gY2FvIG5oYXQgdGhlIGdpb2kpLCBtYXkgdHJhbSB0cm8gbHkgbmdoaWVwIHZ1IGdpb2kg KGR1b2MgY29uZyBuaGFuIG8gY2FjIGt5IHRoaSBvIGNhcCBjdWMgdmEgDQpjYXAgdG9uZyBjdWMp LCBjbyBjYSBuZ2FuIHN5IHF1YW4gY2FwIGNhbyAodm9pIGdhbiBtb3QgY2h1YyBzeSBxdWFuIGNh cCB0dW9uZyksIGNvIG5odW5nIHRhaSBsaWV1IG1hbmcgbmh1bmcgY2FpIHRlbiByYXQga2V1IG5o dSAiTmh1bmcgdmFuIGRlIGNvIGJhbiB2ZSBseSBsdWFuIHZhIG5naGUgdGh1YXQgdGluaCBiYW8g VmlldCBOYW0iICh0aGFuZyA0LTE5OTcpLCAiTHkgbHVhbiB2YSBuZ2hlIHRodWF0IGRpZXAgYmFv IGNoaWVuIGx1b2MgYmF0IA0KaG9wIHBoYXAgY3VhIG5nYW5oIHRpbmggYmFvIHF1YW4gc3UgVmll dCBOYW0gdHJvbmcgZ2lhaSBkb2FuIGNvbmcgbmdoaWVwIGhvYSwgaGllbiBkYWkgaG9hIGRhdCBu dW9jIiwodGhhbmcgNC0xMDA3KSwgIk5odW5nIGJhaSBob2Mga2luaCBuZ2hpZW0gY3VhIDUwIG5h bSB4YXkgZHVuZywgY2hpZW4gDQpkYXUgdmEgdHJ1b25nIHRoYW5oIGN1YSBkaWVwIGJhbyBjaGll biBsdW9jIGJhdCBob3AgcGhhcCB0cm9uZyBuZ2FuaCB0aW5oIGJhbyBxdW9jIHBob25nIFZpZXQg TmFtLiIsICh0aGFuZyAxMC0xOTk5KSwgIkdpYW8gdHJpbmggbHkgbHVhbiBuZ2hlIHRodWF0IGRp ZXAgYmFvIGJhdCBob3AgDQpwaGFwIiwgKGdvbSA0IHRhcCwgbmFtIDIwMDIpLCAiIFRvbmcga2V0 IDYwIG5hbSB4YXkgZHVuZywgY2hpZW4gZGF1IHZhIHRydW9uZyB0aGFuaCBjdWEgVGluaCBiYW8g cXVvYyBwaG9uZyBWaWV0IE5hbSAobmFtIDIwMDUpIiwgIkNoaWVuIGx1b2MgdGluaCBiYW8gcXVv YyBwaG9uZyANCm5odW5nIG5hbSBkYXUgdGhlIGt5IDIxICh0b2kgbmFtIDIwMjApIiAodGhhbmcg MS0yMDA2KSwgY28gaGFuZyBjaHVjIGRlIHRhaSwgY29uZyB0cmluaCAibmdoaWVuIGN1dSBraG9h IGhvYy4iIGR1IGRlIHhldCBkYWMgY2FjaCBwaG9uZyBob2MgaGFtIGdpYW8gc3UsIHBobyBnaWFv IHN1LCBob2MgdmkgDQp0aWVuIHN5IGNobyB2YWkgY2h1YyBjYW4gYm8gY2h1IHRyaSwgY2h1IGNo b3QsIGxhaSBkYW5nIG8gdHJvbmcgbW9pIHRydW9uZyBob2F0IGRvbmcgY28gdGhlIG5vaSBsYSBy YXQgdGh1YW4gbG9pIJYgbnVvYyB0YSBjbyBxdWFuIGhlIGhvYSBiaW5oLCBodXUgbmdoaSwgaG9w IHRhYyB2YSBwaGF0IHRyaWVuIHZvaSANCnRhdCBjYSBjYWMgbnVvYyCWIHNvbmcgY29uZyB0YWMg Y2hhbmcgbmh1bmcga2hvbmcgcGhhdCB0cmllbiBtYSBjb24gY28gbmhpZXUgYnVvYyB0aHV0IGx1 aS4gVG9uZyBjdWMgSUkgZGEgbG8gbGlldSBkaW5oIGNodW0gaG9uIGJhbyBnaW8gaGV0LCBkYSB0 cm8gbmVuIHJldSByYSwgaHUgaG9hIGNhIHZlIA0KY2hpbmggdHJpIGxhbiBuZ2hpZXAgdnUsIHRo YXQgc3UgdHJvIHRoYW5obW90IGNhaSBib25nIGJvbmcgeGEgcGhvbmcgdmEgZGFuZyBjaHVjIHZv IA0KdHJvbmcgdmllYyB0aHVjIGhpZW4gY2h1YyBuYW5nLCBuaGllbSB2dS4gVmllYyBOZ3V5ZW4g Y2hpIFZpbmggdmEgcGhlIGx1IGxpZW4gdHVjIGR1YSByYSB2YSB0aHVvbmcgeHV5ZW4gbmhhbiBt YW5oIGNhYyAibmd1eSBjby4iIERlIGRvYSBUb25nIGN1YyBJSSBjYSB0dSBiZW4gbmdvYWkgbGFu IG8gbm9pIGJvLCBub2kgZGlhIGNhbmcgY2hvIHRoYXkgVG9uZyBjdWMgSUkgZGFuZyByYXQgeWV1 IGtlbS4gTmV1IHRoYXQgc3UgbWFuaCB2ZSBjaGluaCANCnRyaSB2YSBuZ2hpZXAgdnUsIHRoYXQg c3UgbGFtIHRvdCBjaHVjIG5hbmcsIG5oaWVtIHZ1LCBUb25nIGN1YyBJSSBkYSBjaGFuZyBwaGFp IHNvIGhhaSANCmRpZXUgZ2ksIGRhIGNoYW5nIGNhbiBkYW4gcmEgY2FjICJuZ3V5IGNvICIgZGUg YmllbiBtaW5oLCBsYXAgbGllbSBjaG8gbWluaC4NCiAgDQpOZ3V5ZW4gY2hpIFZpbmggdmEgcGhl IGx1IGx1b24gbGEgbG9pIHJhbmcgVG9uZyBjdWMgSUkgbGEgdHJvbmcgZGllbSBwaGF0IGhpZW4s IGRhbmggcGhhIGN1YSBjYWMgdGhlIGx1YyB0aHUgZGljaCBkb2kgdm9pIGRhbiB0b2MgdGEsIGNh Y2ggbWFuZyBudW9jIHRhIHNvbmcgdGh1IGhvaSAxMC0xNSBuYW0gcXVhIGRhIGNvIGJhbyBuaGll dSBuZ3VvaSBjdWEgVG9uZyBjdWMgSUkgYmkgY2FjIHRoZSBsdWMgdGh1IGRpY2ggYmF0IGJvLCBn aWV0IGhhaT8gQ2hhYyANCmNoYW4gbGEgaXQgaG9uIHNvIGJpIGx1YyBsdW9uZyBjYW5oIHNhdCwg YW4gbmluaCB0YSBiYXQgZ2l1LiBUcmVuIHRodWMgdGUsIGNoaW5oIE5ndXllbiBjaGkgVmluaCB2 YSBwaGUgbHUgbW9pIHBoYSBob2FpIHRvbmcgY3VjIElJIHRvYW4gdG9hbiBkaWVuIG5oYXQsIHRy aWV0IGRlIG5oYXQuIFRydW9jIHN1IHBoYSANCmhvYWkgZ2hlIGdvbSBjdWEgY2h1bmcsIHRydW9j IHRodWMgdHJhbmcgYmkgZGF0IGN1YSBUb25nIGN1YyBJSSBoaWVuIG5heSwgY28gbmd1b2kgbmV1 IGNhdSBob2k6UGhhaSBjaGFuZyBjaHVncyBsYSAiZGllcCB2aWVuIGFuaCBodW9uZyIgY3VhIGNh YyB0aGUgbHVjIHRodSBkaWNoPw0KICANCkRhbmggZ2lhIG5odSB2YXkgdmUgTmd1eWVuIENoaSBW aW5oIHZhIHBoZSBsdSBjbyBxdWEgbXVjIGtob25nPyBIb2FuIHRvYW4ga2hvbmcgbmV1IG5obyBy YW5ndGhhbmcgNi0xOTUxLCB0cm9uZyB0aHUgZ3VpIEhvaSBuZ2hpIHRpbmggYmFvIEhvIGNoaSBN aW5oIGRhIHZpZXQ6ICIgVGF0IGNhIG1vaSBjb25nIHRhYywgbmhhdCBsYSBjb25nIHRhYyB0aW5o IGJhbyBwaGFpIGtpZW4gcXV5ZXQgdHJhbmggbmh1bmcgYmVuaCBjaHUgcXVhbiwga2hpbmggDQpk aWNoLCBoaWV1IGRhbmgsIGNhIG5oYW4gY2h1IG5naGlhLiBEbyBsYSBuaHVuZyBrZSBkaWNoICJ2 byBhbmgsIHZvIGhpbmguIiBDbyBuZXAgdHJvbmcgdGFtIGx5IGN1YSBjYW4gYm8gdmEgbmd1eSBo aWVtIGhvbiBtYXkgUGhvbmcgTmhpIFBoYXAgY29uZyBsYWkiLiBIb2FuIHRvYW4ga2hvbmcgDQpu ZXUgbmV1IGRhIGRvYyBoYW5nIGxvYXQgdGluIHR1YywgdGFpIGxpZXUgbWEgdHJvbmcgZG8gVG9u ZyBjdWMgSUkgbmhhbiBkaW5oIE5ndXllbiBtYW5oIENhbSwgUGhhbiBEaWVuLCBUcmFuIGJhY2gg RGFuZyBWbyBuZ3V5ZW4gR2lhcCwgTmd1eWVuIG5hbSBLaGFuaCwgVHJ1b25nIA0KdGFuIFNhbmcs IFZvIHZpZXQgVGhhbmgsIFBoYW4gdmFuIFRyYW5nLCBOZ3V5ZW4gbmdvYyBUcnV1IC4uLiBsYSBj byB5ZXUgdG8gZGljaC4gSG9hbiB0b2FuIGtob25nIG5ldSBkYW5oIGdpYSB0aHVjIHRyYW5nIFRv bmcgY3VjIElJIGhpZW4gbmF5IG1vdCBjYWNoIGtoYWNoIHF1YW4sIGNoYXQgY2hlLCB0aGVvIGR1 bmcgcGh1b25nIHBoYXAgdHUgZHV5IHZhdCBiaWVuIGNodW5nLCBkdXkgdmF0IGxpY2ggc3UgdmEg dGhlbyBkdW5nIHlldSBjYXUgY3VhIA0KdmllYyB0aHVjIGhpZW4gY2h1YyBuYW5nLCBuaGllbSB2 dS4NCiAgDQpIbyBjaGkgTWluaCBkYXk6ICJDYW4gYm8gbGEgZ29jIGN1YSBjb25nIHZpZWMuIi4g VHJvbmcgbGljaCBzdSBob24gNTMgbmFtIGN1YSBtaW5oLCB0aW5oIGJhbyBjaGllbiBsdW9jIHZl IHF1YW4gc3UgZGEgbmhpZXUgbGFuIGR1b2MgdGllcCBtYXUsIHRoYXkgbWF1LCBjdSB0aGUgbGEg ZHVvYyBkaWV1IGhhbmcgbG9hdCBjYW4gYm8gdHUgYmVuIG5nb2FpIHZhbyBuYW0gY2FjIHZpIHRy aSwgY2h1IGNob3QgdmEgcmF0IG5oaWV1IG5ndW9pIHRyb25nIHNvIG5heSANCmRhIG1hdSBjaG9u ZyB0cm8gdGhhbmggZGllcCB2aWVuLCB0aW5oIGJhbyB2aWVuIGdpb2ksIHRybyB0aGFuaCBjYW4g Ym8gdGhhbSBtdXUsIGNoaSBkYW8sIGJhbyBkYW0sbmdoaWVuIGN1dSBjaHUgdHJpLCBjaHUgY2hv dCB0cm9uZyBtb3QgdGhvaSBnaWFuIGRhaS4NCiANClZpIGR1OiBNYWkgQmFvLCBQaGFuIEJpbmgs IFZ1b25nIHRodWMgQ2hhdSwgUGhhbiBEaW5oLCBOZ3V5ZW4gaHV1IERhLCBQaGFuIGNoaSBIaWV1 LCBUcmFuIEhpZXUsIFZ1IGRpbmggSG9lLCBUcmFuIHZhbiBIb2ksIFRyYW4gcXVvYyBIdW9uZywg Tmd1eWVuIG1hbmggS29hdCwgTmd1eWVuIHZhbiBLeSwgUGh1bmcgaG9uZyBMYW0sIE5ndXllbiB4 dWFuIE1hbmgsIE5ndXllbiB2YW4gTWluaCwgTGUgdHJvbmcgDQpOZ2hpYSwgVnUgbmdvYyBOaGEs IEJhY2ggbmdvYyBQaGFjaCwgTGUgaG9uZyBQaHUsIFZ1IGh1dSBSdWF0LCBUcmFuIFNpbmgsIExl IENoaW5oLCBOZ3V5ZW4gdHJvbmcgVGUsIFZ1IFRoYW5nLCBOZ3V5ZW4gZGFjIFRoYW4sIFBoYW4g c3kgVGhpLCBUb25nIHRyYW4gVGh1YXQsIExlIGh1dSBUaHV5LCBOZ3V5ZW4gdGh1YyBUaW5oLCBO Z3V5ZW4gbmh1IFZhbiwgRGluaCB0aGkgVmFuIC4uLg0KIA0KTmF5IGRhbmcgbyB0cm9uZyB0aW5o IHRyYW5nIGtodW5nIGhvYW5nIHRyYW0gdHJvbmcgdmEgdG9hbiBkaWVuLCBkYW5nIGJpIGNodXll biBob2EgdGhhbmgga2hvaSB1IGFjIHRyb25nIGxvbmcgcXVhbiBkb2ksIHRyb25nIGxvbmcgRGFu ZywgaXQgbmhpZXUgcGhhdCB0YWMgdG9pIGJvIG9jIGN1YSBxdWFuIA0KZG9pLCBjdWEgRGFuZyB0 aGkgcm8gcmFuZyB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4gc3UgY2FuIGR1b2MgbWF1IGNo b25nIHF1ZXQgc2FjaCwgY2F0IGJvLCBkaWV0IHRydSB0YW4gZ29jIG5odW5nIG1hbmcgbHVvaSB4 YXUgeGEsIGNhbiBkdW9jIG1hdSBjaG9uZyB0aGF5IG1hdSB0cmlldCBkZSANCmRlIHRydW9jIGhl dCBsYSB0cm9uZyBzYWNoIHZlIGNoaW5oIHRyaSwgc2F1IGRvIGxhIGtob2UgbWFuaCB2ZSBuZ2hp ZXAgdnUgY2h1IGtob25nIHBoYWkgDQp0aGF5IG1hdSBkYSB0cmVuIHhhYyBjaGV0LCBkdXkgdHJp IG1vdCBUb25nIGN1YyBJSSBjdWEgTmd1eWVuIGNoaSBWaW5oIG1hIGtob25nIGNvIE5ndXllbiBj aGkgVmluaC4gRG8gbGEga2V0IGx1YW4gY3VhIGJhaSB2aWV0IG5heS4NCiANCkhhIE5vaSBuZ2F5 IDE2LTEyLTIwMDgNClZ1IE1pbmggVHJpDQpEaWEgY2hpOiBQaG9uZyAxMzAyLSBuaGEgSEgxIJYg S2h1IGRvIHRoaSBZZW4gSG9hDQpQaHVvbmcgWWVuIEhvYSCWIHF1YW4gQ2F1IEdpYXkgliBUUCBI YSBOb2kNCkRUOiAwNDIyLjEyMS4wNzMgLSBEVEREOiAwOTAuMjE2LjM2MzMgDQoNCmh0dHA6Ly92 aWV0YmFvLnZuL0tpbmgtdGUvRGEtZGVuLWx1Yy1xdWFuLWRvaS1raG9uZy1uZW4tbGFtLWtpbmgt dGUvMTA5OTQ1MDEvODcvIDI5LzEvMjAwNywgMTE6MTMgR01UKzcgDQoNCiJEYSBkZW4gbHVjIHF1 YW4gZG9pIGtob25nIG5lbiBsYW0ga2luaCB0ZSINCg0KSG9pIG5naGkgVFcgNCB2dWEga2V0IHRo dWMgZGEgdGhvbmcgbmhhdCBjaHV5ZW4gY2FjIGRvYW5oIG5naGllcCBsYW0ga2luaCB0ZSBkb24g DQp0aHVhbiBjdWEgY28gcXVhbiBEYW5nLCBxdWFuIGRvaSwgY29uZyBhbiBzYW5nIGNvIHF1YW4g TmhhIG51b2MgcXVhbiBseSB0dSBuYW0gMjAwNy4gDQpUaGVvIE5ndXllbiBUb25nIEJpIHRodSBM ZSBLaGEgUGhpZXUgdmllYyBsYW0gbmF5IHNlIHRhbyByYSBtb2kgdHJ1b25nIGtpbmggZG9hbmgg DQpiaW5oIGRhbmcgaG9uLg0KDQooQW5oOiBOZ3V5ZW4gVG9uZyBCaSB0aHUgTGUgS2hhIFBoaWV1 LiBBbmg6IFZUQy4pIA0KDQotIE9uZyBuZ2hpIHNhbyBraGkgY28gbmhpZXUgZG9hbmggbmdoaWVw IHRyb25nIGNhYyBsaW5oIHZ1YyBuaHUgY29uZyBhbiwgcXVhbiBkb2kgbGFtIA0Ka2luaCB0ZT8N Cg0KLSBUaHVjIHRlIG1hIG5vaSwga2hpIGNodW5nIHRhIG1vaSBkaSB0dSBjaGllbiB0cmFuaCBy YSBob2EgYmluaCwgdGhvaSBkaWVtIGRvIGRhdCBudW9jIA0Kdm8gY3VuZyBraG8ga2hhbiBtb2kg bmd1b2kgcGhhaSBjaHVuZyBzdWMsIGNodW5nIGxvbmcuIFF1YW4gZG9pIGN1bmcgbmh1IGNvbmcg YW4gDQpjdW5nIHBoYWkgdGhhbSBnaWEgbGFtIGtpbmggdGUsIHRodW9uZyBtYWkuIFRob2kgZGll bSB0dSBuYW0gMTk3NSBkZW4gMTk5MCB0aGkgdmllYyANCm5heSBsYSBjYW4gdGhpZXQuIE5odW5n IG5ldSBjdSBrZW8gZGFpIGRlbiB0aG9pIGRpZW0gbmF5IHJvIHJhbmcgbGEga2hvbmcgY29uIHBo dSBob3AgDQpudWEuIFZpIHF1YW4gZG9pIGhheSBjb25nIGFuIGN1bmcgdGhlIHRob2ksIGRldSBj byBuaGllbSB2dSBjaGluaCB0cmkgcmF0IHJvIHJhbmcgbGEgcGhhaSANCnRhcCB0cnVuZyBiYW8g ZGFtIGFuIG5pbmggcXVvYyBnaWEuIENobyBuZW4gZGEgZGVuIGx1YyBwaGFpIGNodXllbiBjYWMg ZG9hbmggbmdoaWVwIA0KbGFtIGtpbmggdGUgdGh1b2MgY2FjIGNvIHF1YW4gRGFuZywgbHVjIGx1 b25nIHZ1IHRyYW5nLCBNYXQgdHJhbiBUbyBxdW9jIHZhIGNhYyBkb2FuIA0KdGhlIGNoaW5oIHRy aSAtIHhhIGhvaSBzYW5nIGNobyBjYWMgY28gcXVhbiBOaGEgbnVvYyBxdWFuIGx5Lg0KDQotIE9u ZyBiaW5oIGx1YW4gZ2kgdmUgcXV5ZXQgc2FjaCBjaHV5ZW4gY2FjIGRvYW5oIG5naGllcCBsYW0g a2luaCB0ZSBkb24gdGh1YW4gY3VhIGNvIA0KcXVhbiBEYW5nLCBxdWFuIGRvaSwgY29uZyBhbiBz YW5nIGNvIHF1YW4gTmhhIG51b2MgcXVhbiBseT8NCg0KLSBRdXlldCBzYWNoIG5heSBzZSBnb3Ag cGhhbiB0YW8gcmEgbW90IG1vaSB0cnVvbmcga2luaCBkb2FuaCB0b3QgaG9uLiBDbyBuaHUgdmF5 IHRoaSANCmNvIGNoZSB0aGkgdHJ1b25nIG1vaSBjbyB0aGUgcGhhdCBodXkgdGFjIGR1bmcsIHZh IHN1IGNhbmggdHJhbmggbGFuaCBtYW5oIG1vaSBjbyB0aGUgDQp4YXkgcmEuIE5ndW9pIHRhIGto b25nIHRoZSBjYW5oIHRyYW5oIGJpbmggZGFuZyB2YSB0cnVuZyB0aHVjIG5ldSBuaHUgbW9pIG5n dW9pIG8gbW90IA0KdmkgdGhlIHJhdCBraGFjIG5oYXUuIE5nb2FpIHJhLCBkaWV1IG5heSBjdW5n IHNlIGJhbyBkYW0gbWluaCBiYWNoIGNobyBjYSBoZSB0aG9uZyB0aGVvIA0Kbmd1eWVuIHRhYzog ZGEga2luaCBkb2FuaCB0aGkgcGhhaSB0dWFuIHRodSBjYWMgY2h1YW4gbXVjIG5odSBuaGF1Lg0K DQotIFRodWMgdGUgY2FjIGRvYW5oIG5naGllcCBuYW0gdHJvbmcgY28gcXVhbiBEYW5nLCBxdWFu IGRvaSBkZXUgZHVvYyBodW9uZyBuaHVuZyB1dSANCmRhaSBuaGF0IGRpbmguIEdpbyBkYXkga2hp IG5odW5nIGRpZXUga2llbiB0aHVhbiBsb2kga2hvbmcgY29uIG51YSwgY2FjIGRvbiB2aSBuYXkg c2UgDQpnYXAgcGhhaSBraG8ga2hhbiBnaT8NCg0KLSBDaGFuZyBjbyBnaSBraG8ga2hhbiBjYS4g Q28gbmdhbiBzYWNoIGN1YSBOaGEgbnVvYyBjYXAgcm9pLCBoYW5nIG5hbSBuaGEgTnVvYyBzZSAN CmNhcCBjaG8gY2FjIGRvbiB2aSBuYXkgZHUgY2hpIGR1bmcuIFZpZWMgY2h1eWVuIGdpYW8gbmF5 IHhlbSByYSBjb24gYm90IGRpIG1vdCBraGF1IGxvIA0KdG9hbiwgZ2l1cCBjaG8gY2FjIGRvbiB2 aSBuYXkgY2h1eWVuIHRhbSBob24gdmFvIHRyb25nIHRyYWNoIGRhIGR1b2MgZ2lhby4gQ2h1IGJh eSBnaW8gDQpjdSByYWkgcmEgdGhpIGtob25nIG5lbi4gTmhpZXUgbnVvYyB0cmVuIHRoZSBnaW9p LCBxdWFuIGRvaSBjbyBsYW0ga2luaCB0ZSBkYXUgc29uZyBobyANCnZhbiBtYW5oIHRob2kuDQoN Ci0gTW90IHNvIGRvYW5oIG5naGllcCBuaHUgQ29uZyB0eSBpbiBUaWVuIGJvIGhheSBUb25nIGNv bmcgdHkgVmllbiB0aG9uZyBxdWFuIGRvaSANCihWaWV0dGVsKSwgbmV1IG5odSBjaHV5ZW4gZ2lh byBjaG8gTmhhIG51b2MgdGhpIG5lbiBnaWFvIGNobyBkb24gdmkgbmFvIHF1YW4gbHk/DQoNCi0g Q2FpIG5heSB0aGkgcGhhaSB0aW5oLiBDb25nIHR5IFZpZW4gdGhvbmcgcXVhbiBkb2kgZ2lvIGRh eSBjdW5nIGRhbmcgYmF0IHRheSB2YW8gY28gDQpwaGFuIGhvYS4NCg0KLSBUaW5oIHRoYW4gbGEg bmdheSB0cm9uZyBuYW0gMjAwNyBzZSBiYXQgdGF5IHZhbyBjaHV5ZW4gZ2lhbywgbGlldSBjbyBn YXAgcXVhIGtob25nLCANCnRodWEgb25nPw0KDQpQaGFpIGxhbSB0dW5nIGJ1b2MsIGxhbSBjbyBs byB0cmluaCwgc29uZyBkdXQga2hvYXQgbmFtIDIwMDcgcGhhaSBsYW0gbmh1bmcga2hhdSBjbyBi YW4uIA0KDQpodHRwOi8vd3d3LnRpbm1vaS52bi9EYXQtcXVvYy1waG9uZy10aGFuaC1uaGEtaGFu Zy1iYWktZG8teGUtMTI5NzQzMy5odG1sIEhhaSBDaGF1IDA1OjQzIDIzLzEyLzIwMDkgDQoNClF1 b2MgcGhvbmc6IERhdCBxdW9jIHBob25nIHRoYW5oIG5oYSBoYW5nLCBiYWkgZG8geGUgKHRhaSBE YSBOYW5nKSANCg0KLSBMYW4gZGF1IHRpZW4sIHkga2llbiBjdSB0cmkgdmUgc3UgZHVuZyBkYXQg cXVvYyBwaG9uZyBzYWkgbXVjIGRpY2ggZHVvYyBwaGFuIGFuaCB0YWkga3kgaG9wIEhETkQgVFAg RGEgTmFuZy4NCiANClhheSBraS1vdCBjaG8gdGh1ZQ0KIA0KVGFpIGt5IGhvcCB0aHUgMTUgSERO RCBUUCBEYSBOYW5nIGtob2EgVklJLCBDaHUgdGljaCBNVFRRIFZOIFRQIERhIE5hbmcgDQpOZ3V5 ZW4gVGhhbmggUXVhbmcgY2hvIGhheSwgY3UgdHJpIGNhYyBxdWFuIENhbSBMZSwgVGhhbmggS2hl LCBOZ3UgSGFuaCBTb24uLi4gDQpwaGFuIGFuaCBtb3Qgc28gZG9uIHZpIHF1YW4gZG9pIGRvbmcg dHJlbiBkaWEgYmFuIHN1IGR1bmcgZGllbiB0aWNoIGRhdCBkdW9jIE5oYSBudW9jIA0KZ2lhbyBx dWFuIGx5LCBuaGF0IGxhIGRvYyB0dXllbiB2ZW4gYmllbiBTb24gVHJhIC0gRGllbiBOZ29jLCB0 dXllbiBRTDE0IEIuLi4geGF5IGR1bmcgDQpuaGEgbmdoaSwga2ktb3QgY2hvIHRodWUsIG5oYSBo YW5nIGRlIGtpbmggZG9hbmgsIGNobyB0aHVlIGJhaSBkbyB4ZS4uLiBsYSBraG9uZyBkdW5nIHZv aSANCm11YyBkaWNoIHBodWMgdnUgbmhpZW0gdnUgcXVvYyBwaG9uZy4NCiANCihBbmg6IEN1IHRy aSBxdWFuIE5ndSBIYW5oIFNvbiBjaG8gaGF5IGNvIG5oaWV1IGRpZW4gdGljaCBkYXQgcXVvYyBw aG9uZyB0cmVuIHR1eWVuIA0KZHVvbmcgdmVuIGJpZW4gU29uIFRyYSAtIERpZW4gTmdvYyBiaSBr aGFpIHRoYWMgbGFtIGRpY2ggdnUuIEFuaDogSEMpIA0KDQpEb24gY3Ugbmh1IG8ga2h1IHZ1YyBI b2EgUGhhdCAocXVhbiBDYW0gTGUpIGNvIGhhaSBkb24gdmkgcXVhbiBkb2kgZG9uZyB0cmVuIGR1 b25nIA0KVHJ1b25nIENoaW5oIGRhIGNobyB0aHVlIG1hdCBiYW5nIGxhbSBzYW4gdGFwIGxhaSBv IHRvLCBraW5oIGRvYW5oIHNhdCB0aGVwLCBuaGEgaGFuZywgDQpxdWFuIGNhIHBoZS4uLiBnYXkg b24gYW8sIG1hdCB0cmF0IHR1IHRhaSBkaWEgcGh1b25nLiANCiANCkN1IHRyaSBxdWFuIEhhaSBD aGF1IGN1bmcgY2hvIGhheSBkb24gdmkgcXVhbiBkb2kgZG9uZyB0cmVuIGR1b25nIFRoYW5oIFNv biB4YXkgDQpuaGlldSBraS1vdCBjaG8gdGh1ZSwgc3UgZHVuZyBkaWVuIHRpY2ggZGF0IGN1YSBk b24gdmkgY2hvIHRodWUgZGF1IHhlIG8gdG8uLi4NCiANCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9J bmZvL0xhbmctcGhpLWRhdC1jb25nLXRyZW4tdHV5ZW4tcGhvLWRhdC1uaGF0LWhhbmgtdGluaC8x NDQvNTMyNTU4Mi5lcGkgVHVlIEtoYW5oICgxdGhhbmcgdHJ1b2MpIA0KDQpRdW9jIHBob25nOiBM YW5nIHBoaSBoYW5nIG5nYW4gbTIgZGF0IGNvbmcgdHJlbiB0dXllbiBwaG8gImRhdCBuaGF0IGhh bmggdGluaCIgKG8gSGEgTm9pKSAgDQoNCihWbk1lZGlhKSAtIE5nYXkgbWFpICg3LzEyKSwgdGhh bmggcGhvIEhhIE5vaSBzZSBraGFpIG1hYyBreSBob3AgdGh1IDIyIEhvaSBkb25nIA0KbmhhbiBk YW4gKEhETkQpIHRoYW5oIHBoby4gR3VpIGRlbiBreSBob3AgbGFuIG5heSwgbmhpZXUgeSBraWVu IGN1IHRyaSBidWMgeHVjIHZlIA0KdGluaCB0cmFuZyBsYW5nIHBoaSBkYXQgY29uZywgdHJvbmcg ZG8gY28gY2Egbmh1bmcga2h1ICJkYXQgdmFuZyIgdHJlbiBjb24gcGhvIHR1bmcgDQpkdW9jIGNo byBsYSAiZGF0IG5oYXQgaGFuaCB0aW5oIi4NCg0KTGFuZyBwaGksIHN1IGR1bmcgc2FpIG11YyBk aWNoIA0KDQpUcm9uZyBjYWMgeSBraWVuIG1hIGN1IHRyaSBIYSBOb2kgcXVhbiB0YW0gZ3VpIGRl biBreSBob3AgbGFuIG5heSwgdmllYyBzdSBkdW5nIGRhdCANCmNvbmcga2hvbmcgaGlldSBxdWEs IGdheSBsYW5nIHBoaSBjaG8gbmhhIG51b2MgZHVvYyBjdSB0cmkgcXVhbiB0YW0gZGFjIGJpZXQu DQoNCkRvbiBjdSBuaHUgdHJ1b25nIGhvcCBYaSBuZ2hpZXAgZ2lvbmcgY2F5IHRyb25nIFllbiBL aGUgKGRhdCB0YWkgeGEgWWVuIFRodW9uZywgDQpodXllbiBHaWEgTGFtKSwgeGF5IGR1bmcgMjkg a2kgb3QgZGUgZ2lvaSB0aGlldSBzYW4gcGhhbSwgbmh1bmcgZGEgY2hvIHRodWUgdmEgc3UgDQpk dW5nIGtob25nIGR1bmcgbXVjIGRpY2guIEhheSB0cnVvbmcgaG9wIENvbmcgdHkgQ28gcGhhbiBn b20gc3UgQmF0IFRyYW5nIHRhaSB4YSANCkJhdCBUcmFuZywgY3UgdHJpIGNobyByYW5nIHN1IGR1 bmcga2hvbmcgaGlldSBxdWEsIGdheSBsYW5nIHBoaSB2ZSBkYXQgZGFpIG5lbiBkZSBuZ2hpIA0K VUJORCBUaGFuaCBwaG8ga2llbSB0cmEsIHRodWhvaS4gDQoNCkN1bmcgdHJlbiBkaWEgYmFuIGh1 eWVuIEdpYSBMYW0sIGhpZW4gbmF5IENvbmcgdHkgdmF0IHR1IG5vbmcgbmdoaWVwIEdpYSBMYW0s IHRhaSB4YSANCkR1b25nIFhhLCBtYWMgZHUga2hvbmcgaG9hdCBkb25nIGRhIGxhdSBuaHVuZyBk YXQgdGllcCB0dWMgZGUgaG9hbmcgaG9hLCBnYXkgbGFuZyANCnBoaS4gQ3UgdHJpIGRlIG5naGkg VUJORCBUaGFuaCBwaG8geGVtIHhldCwgdGh1IGhvaSBkYXQgZ2lhbyBVQk5EIHhhIHF1YW4gbHks IHN1IA0KZHVuZyBkdW5nIG11YyBkaWNoLiANCg0KSGllbiBuYXksIHRyb25nIGtoaSBuZ3VvaSBk YW4gZGFuZyBkYWMgYmlldCB0aGlldSBkYXQgY2FuaCB0YWMsIHNhbiB4dWF0IHRoaSBkYXQgYmFp IHRodW9jIA0KeGEgVGh1b25nIENhdCBoaWVuIGRhbmcgZHVvYyB4YSBreSBob3AgZG9uZyBjaG8g Y2FjIGRvYW5oIG5naGllcCB0aHVlLiBDdSB0cmkgZGUgbmdoaSANClVCTkQgVGhhbmggcGhvIGNo aSBkYW8ga2llbSB0cmEsIGdpYWkgcXV5ZXQgZ2lhbyBsYWkgZGF0IGNobyBuaGFuIGRhbiBzYW4g eHVhdC4gDQoNCkN1IHRyaSBjdW5nIGJ1YyB4dWMgdmUgdHJ1b25nIGhvcCA4IGdpYW4gbmhhIGto byBjdWEgQ29uZyB0eSBsdW9uZyB0aHVjIERvbmcgRGEgdHJlbiANCmRpYSBiYW4gcGh1b25nIFBo dW9uZyBMaWV0IGhheSBuaGEgNTkgcGhvIEtodW9uZyBUcnVuZyBjdWEgY28gc28gc2FuIHh1YXQg dGhhbSBsZW4uIA0KQ2hvIHJhbmcsIGhpZW4gdGFpIGNhYyBjbyBzbyBuYXkgZGFuZyBzdSBkdW5n IHNhaSBtdWMgZGljaCwgY3UgdHJpIGRlIG5naGkgVGhhbmggcGhvIA0KZ2lhbyBjaG8gcXVhbiBx dWFuIGx5IGRlIHhheSBkdW5nIG5oYSB2YW4gaG9hIGNobyBjdW0gZGFuIGN1LiANCg0KRGFjIGJp ZXQsIGhpZW4gY28gdmllYyBoYW5nIG5nYW4gbTIgZGF0IFF1b2MgcGhvbmcgY3VhIFF1YW4ga2h1 IFRodSBkbyBjaG8gdHUgbmhhbiANCnRodWUgYmFuIGJpYSAocXVhbiBiaWEgSGlldSBiZW8pIHRh aSBwaG8gWGEgRGFuLiBEYXkgbGEgY29uIHBobyB0dW5nIGR1b2MgY2hvIGxhIGNvIGdpYSANCiJk YXQgbmhhdCBoYW5oIHRpbmgiIHZhIGN1IHRyaSBkYSBraWVuIG5naGkgbmhpZXUgbGFuIG5odW5n IGhpZW4gY2h1YSBkdW9jIGdpYWkgcXV5ZXQuIA0KDQooQW5oOiBDdSB0cmkgYnVjIHh1YyB2aSBk YXQgdmFuZyB0cmVuIGR1b25nIFhhIERhbiBjdWEgQm8gUXVvYyBQaG9uZyBkdW9jIGNobyB0aHVl IA0KbGFtIHF1YW4gYmlhIC0gdHJvbmcgYW5oOiBQaGlhIHRydW9jIHF1YW4gYmlhIEhpZXUgYmVv KSANCg0KaHR0cDovL3RpbnRoaXRydW9uZy5iYXRkb25nc2FuLmNvbS52bi90cC1oby1jaGktbWlu aC1kYXQtcXVvYy1waG9uZy1jb25nLXZpZW4tY2F5LXhhbmgtdGhhbmgtbmhhLTdCclJpaFBadW9R MS5odG1sIFRoZW8gVGllbiBQaG9uZyAxMS8wNy8yMDA4LCAxNjoyMyBHTVQrNyANCg0KUXVvYyBw aG9uZzogRGF0IHF1b2MgcGhvbmcgdGhhbmggbmhhIG8gKHRhaSBUUCBIQ00pISANCg0KRG8gbGEg a2V0IHF1YSBnaWFtIHNhdCBjb25nIHRhYyBxdWFuIGx5IG5oYSBudW9jIHZlIHN1IGR1bmcgZGF0 IHRyZW4gZGlhIGJhbiBkbyBCYW4gDQpLaW5oIHRlIJYgTmdhbiBzYWNoIChLVE5TKSBIb2kgZG9u ZyBuaGFuIGRhbiBUUEhDTSB0aHVjIGhpZW4gdmEgdnVhIGNvbmcgYm8uIA0KDQooQW5oOiBOaGEg byBtb2MgbGVuIHRyYWkgcGhlcCB0cmVuIGRhdCBxdW9jIHBob25nIG8gcGh1b25nIFRhbiBDaGFu aCBIaWVwLCBxdWFuIDEyLikNCg0KVGFpIHhhIERvbmcgVGhhbmggKGh1eWVuIEhvYyBNb24pLCBj b25nIHRhYyBxdWFuIGx5IGRhdCBxdW9jIHBob25nIHRoaWV1IGNoYXQgY2hlIA0KZGFuIGRlbiB0 aW5oIHRyYW5nIGJpIGNoaWVtIGR1bmcgeGF5IG5oYSBvIG5odSBraHUgc3UgMzE3IHBob25nIGto b25nIGtob25nIHF1YW4gdm9pIGRpZW4gdGljaCA1LDMgaGEuIA0KDQpodHRwOi8vdmlldGJhby52 bi9YYS1ob2kvRGF0LXF1b2MtcGhvbmctbmh1bmctbGFtLWtpbmgtdGUvNDAyMzMxMjcvMTU3LyBR LlRoYW5oIFBIVUMgSFVZIC0gQ0hJIE1BSSAgMDgvMTIvMjAwNywgMDc6MjggR01UKzcgDQoNClF1 b2MgcGhvbmc6IERhdCBxdW9jIHBob25nIG5odW5nICJsYW0ga2luaCB0ZSIgDQoNClZ1IFhheSBk dW5nIHRyYWkgcGhlcCBUcnVuZyB0YW0gV2hpdGUgUGFsYWNlOg0KDQooQW5oOiBUb2EgbmhhIFdo aXRlIFBhbGFjZSB0YWkgc28gMTk0IEhvYW5nIFZhbiBUaHUsIFEuUGh1IE5odWFuIEFuaDogQ0hJ IE1BSSkgIA0KDQpTYXUga2hpIFRUIHRob25nIHRpbiB0b2EgbmhhIHRydW5nIHRhbSBob2kgbmdo aSB0aWVjIGN1b2kgV2hpdGUgUGFsYWNlIGtob25nIHBoZXAgDQpob2FuaCB0cmFuZyB0YWkgcXVh biBQaHUgTmh1YW4sIFRQLkhDTSBjdWEgY29uZyB0eSBUYXkgTmFtLCBsYWkgY28gdGluIGNobyBy YW5nIHRvYSANCm5oYSBuYXkgZHVvYyB4YXkgZHVuZyB0aGVvIGR1bmcgcXVpIGRpbmggY3VhIEJv IFF1b2MgcGhvbmcuIFRodWMgaHUgdGhlIG5hbz8NCg0KKiBDaHUgZGF1IHR1IFdoaXRlIFBhbGFj ZSB2YW4ga2hvbmcgY3VuZyBjYXAgaG8gc28gdGhpZXQga2UNCiogQ29uZyB0cmluaCBob2FuaCB0 cmFuZy4uLiB4YXkga2hvbmcgcGhlcCENCg0KVGhlbyBobyBzbyBjaHVuZyB0b2kgY28gZHVvYywg dHJlbiBnaWF5IHRvIFRydW5nIHRhbSB0aWVjIGN1b2kgdmEgaG9pIG5naGkgV2hpdGUgUGFsYWNl IA0KY28gdGVuIGxhIGNvbmcgdHJpbmggbmhhIGhhbmcgTmFtIEJhYyBkbyBDb25nIHR5IHNhbiB4 dWF0IC0gdGh1b25nIG1haSAtIHh1YXQgbmhhcCANCmtoYXUgVGF5IE5hbSAoZ29pIHRhdCBsYSBD b25nIHR5IFRheSBOYW0gLSB0aHVvYyBRdWFuIGtodSA3KSBsYW0gY2h1IGRhdSB0dSB4YXkgZHVu ZyANCnRyZW4ga2h1IGRhdCBjbyBtdWMgZGljaCBzdSBkdW5nIGxhIGRhdCBhbiBuaW5oIHF1b2Mg cGhvbmcsIGNodWEgZHVvYyBjaHV5ZW4gZG9pIG11YyANCmRpY2ggc3UgZHVuZy4NCg0KQm8gUXVv YyBwaG9uZzogcGhhaSBob2FuIHRoYW5oIHRodSB0dWMgdmUga2hhaSB0aGFjIGRhdCBsYW0ga2lu aCB0ZSB0aGVvIGx1YXQgcGhhcA0KDQpOZ2F5IDE4LTgtMjAwNiwgQm8gUXVvYyBwaG9uZyBjbyBj b25nIHZhbiBkb25nIHkgY2hvIFF1YW4ga2h1IDcgbGFtIHRodSB0dWMgY2h1eWVuIA0KdGFtIGto dSBkYXQgc3UgZHVuZyBjaG8gbXVjIGRpY2ggcXVvYyBwaG9uZyBzYW5nIGRhdCBsYW0ga2luaCB0 ZSAoa2hvYW5nIDIyNS42NDNtMiksIA0KdHJvbmcgZG8gY28ga2h1IGRhdCAxOTQgSG9hbmcgVmFu IFRodSwgcXVhbiBQaHUgTmh1YW4gdm9pIGtodW9uIHZpZW4gNy4zODJtMi4NCg0KQ29uZyB2YW4g Y3VhIEJvIFF1b2MgcGhvbmcgbmV1IHJvOiBRdWFuIGtodSA3IGNvIHRyYWNoIG5oaWVtIGxhbSB2 aWVjIHZvaSBjYWMgY28gDQpxdWFuIGNodWMgbmFuZyB2YSBVQk5EIFRQLkhDTSBkZSBob2FuIHRo YW5oIGNhYyB0aHUgdHVjIHZlIHF1YW4gbHksIHN1IGR1bmcgdmEgDQpraGFpIHRoYWMgY2FjIGto dSBkYXQgdHJlbiB2YW8gbXVjIGRpY2gga2luaCB0ZSB0aGVvIHF1aSBkaW5oIGN1YSBwaGFwIGx1 YXQgaGllbiBoYW5oLiANClZpZWMgdHJpZW4ga2hhaSB0aHVjIGhpZW4gY2hpIGR1b2MgdGllbiBo YW5oIHNhdSBraGkgUXVhbiBraHUgNyBkYSBob2FuIHRoYW5oIGNhYyB0aHUgDQp0dWMgbGllbiBx dWFuIHZlIHF1YW4gbHkga2hhaSB0aGFjIGNhYyBraHUgZGF0IHRyZW4gc2FuZyBsYW0ga2luaCB0 ZSB0aGVvIGR1bmcgcXVpIGRpbmggDQpjdWEgcGhhcCBsdWF0Lg0KDQpUaGUgbmh1bmcsIHZhbyB0 aG9pIGRpZW0gY3VvaSB0aGFuZyA1LTIwMDcga2hpIHRvIHF1YW4gbHkgdHJhdCB0dSBkbyB0aGkg cGh1b25nIDksIHF1YW4gDQpQaHUgTmh1YW4gcGhvaSBob3AgY3VuZyBkb2kgcXVhbiBseSB0cmF0 IHR1IGRvIHRoaSBxdWFuIFBodSBOaHVhbiwgdGhhbmggdHJhIFNvIFhheSANCmR1bmcgdGllbiBo YW5oIGtpZW0gdHJhIGRhIHhhYyBkaW5oIGNvbmcgdHJpbmggZGFuZyB0aGkgY29uZyBuaHVuZyBr aG9uZyBoZSBjbyBnaWF5IA0KcGhlcCBjdWEgY28gcXVhbiBuaGEgbnVvYyBjbyB0aGFtIHF1eWVu IHRoZW8gcXVpIGRpbmggY3VhIHBoYXAgbHVhdCB2YSB0aW5oIHRoYW4gY29uZyANCnZhbiBjdWEg Qm8gcXVvYyBwaG9uZy4NCg0KVGhlbyBTbyBYYXkgZHVuZywgY2FuIGN1IHRoZW8gbmdoaSBkaW5o IDE4MSAoaHVvbmcgZGFuIHRoaSBoYW5oIEx1YXQgZGF0IGRhaSkgdmEgY29uZyANCnZhbiBjdWEg Qm8gUXVvYyBwaG9uZyB0aGkgQ29uZyB0eSBUYXkgTmFtIGRhIGxhbSB0cmFpIHF1aSBkaW5oIGN1 YSBwaGFwIGx1YXQgdmUgZGF0IA0KZGFpLiBDdSB0aGUsIHhheSBkdW5nIG5oYSBoYW5nIGtpbmgg ZG9hbmggdGllYyBjdW9pIGxhIG5nb2FpIG11YyBkaWNoIHF1b2MgcGhvbmcgDQpuaHVuZyBraG9u ZyBjaHV5ZW4gc2FuZyBoaW5oIHRodWMgZ2lhbyBkYXQgY28gdGh1IHRpZW4gc3UgZHVuZyBkYXQg aG9hYyB0aHVlIGRhdCB0aGVvIA0KcGh1b25nIGFuIHNhbiB4dWF0LCBraW5oIGRvYW5oIGRhIGR1 b2MgQm8gUXVvYyBwaG9uZyB4ZXQgZHV5ZXQuDQoNCk1vdCBsYW5oIGRhbyBTbyBYYXkgZHVuZyBj aG8gcmFuZyBjYW4gY3UgdGhlbyB0cmluaCB0dSwgdGh1IHR1YyBkYXUgdHUgeGF5IGR1bmcgdGhp IHZpZWMgDQp4YXkgZHVuZyBuaGEgaGFuZyB0aWVjIGN1b2kgY3VhIGNvbmcgdHkgVGF5IE5hbSBw aGFpIHR1YW4gdGh1IHRoZW8gY2FjIHF1aSBkaW5oIGN1YSANCkx1YXQgeGF5IGR1bmcgdmEgY2Fj IHZhbiBiYW4gcGhhcCBsdWF0IGtoYWMgY28gbGllbiBxdWFuLiBDaHUgZGF1IHR1IGNvbmcgdHJp bmggVHJ1bmcgDQp0YW0gdGllYyBjdW9pIHZhIGhvaSBuZ2hpIFdoaXRlIFBhbGFjZSBkYSBraG9u ZyBsYW0gZHVuZyBxdWkgZGluaCB2ZSB4aW4gcGhlcCB4YXkgZHVuZyANCnRyb25nIGtoaSBkYXkg bGEgY29uZyB0cmluaCBwaHVjIHZ1IG11YyBkaWNoIGRhbiBzdSwga2hvbmcgdGh1b2MgZGllbiBk dW9jIG1pZW4gZ2lheSBwaGVwLiANCg0KVHUgc3UgdmllYyB0cmVuLCBTbyBYYXkgZHVuZyB2dWEg Z3VpIHZhbiBiYW4gZGUgeHVhdCBVQk5EIFRQIGtpZW4gbmdoaSBCbyBRdW9jIA0KcGhvbmcgdGhh bmggdHJhIHRvYW4gZGllbiBxdWEgdHJpbmggZGF1IHR1IHhheSBkdW5nIG5oYSBoYW5nIE5hbSBC YWMgdGFpIHNvIDE5NCBIb2FuZyANClZhbiBUaHUsIHBodW9uZyA5LCBxdWFuIFBodSBOaHVhbiBk byBDb25nIHR5IFRheSBOYW0gbGFtIGNodSBkYXUgdHUuDQoNClZpIHNhbyBXaGl0ZSBQYWxhY2Ug a2hvbmcgYmkgZGluaCBjaGkgdGhpIGNvbmc/DQoNCldoaXRlIFBhbGFjZSBraG9pIGNvbmcgZ2l1 YSB0aGFuZyA0LTIwMDcgdmEgdGhpIGNvbmcga2VvIGRhaSBob24gYmF5IHRoYW5nIG1vaSB4b25n LiANClZpIHNhbyBxdWFuIGx5IGRvIHRoaSBxdWFuIFBodSBOaHVhbiB2YSB0aGFuaCB0cmEgeGF5 IGR1bmcgVFAgYmlldCBjaHV5ZW4geGF5IGR1bmcgDQpraG9uZyBwaGVwIG5odW5nIHZhbiBkZSBj b25nIHRyaW5oIHhheSBkdW5nIGhvYW4gdGF0IG1hIGtob25nIHF1eWV0IGRpbmggZGluaCBjaGkg dGhpIA0KY29uZz8NCg0KVGhlbyBnaWFpIHRyaW5oIG5nYXkgNy0xMi0yMDA3IGN1YSB0aGFuaCB0 cmEgeGF5IGR1bmcgKFNvIFhheSBkdW5nIFRQLkhDTSksIG5nYXkgDQoyOC01LTIwMDcgKGhvbiBt b3QgdGhhbmcgc2F1IGtoaSBDb25nIHR5IFRheSBOYW0ga2hvaSBjb25nIGNvbmcgdHJpbmgpIHRo YW5oIHRyYSB4YXkgDQpkdW5nIG5oYW4gZHVvYyB0aG9uZyB0aW4gdHUgcXVhbiBseSBkbyB0aGkg cXVhbiBQaHUgTmh1YW4gdmUgY29uZyB0cmluaCBuYXkgbmVuIGRhIGN1IA0KbW90IG5oYW4gdmll biBjdW5nIHh1b25nIGhpZW4gdHJ1b25nIHZvaSBxdWFuIGx5IGRvIHRoaSBxdWFuIFBodSBOaHVh biBkZSBraWVtIHRyYS4gDQpUdXkgbmhpZW4sIGNodSBkYXUgdHUgdmEgY2FjIGJlbiB0aGkgY29u ZywgdHUgdmFuIGdpYW0gc2F0IGJhdCBob3AgdGFjIGtob25nIGN1bmcgY2FwIGhvIA0Kc28uIENo aSBodXkgdHJ1b25nIGNvbmcgdHJpbmggKG9uZyBQaGFtIFZpZXQgSHVuZykgdHJhIGxvaSB2b2kg ZG9hbiBraWVtIHRyYSBsYSBjb25nIA0KdHJpbmggcGh1YyB2dSBhbiBuaW5oIHF1b2MgcGhvbmcg bmVuIG11b24gY3VuZyBjYXAgaG8gc28gcGhhcCBseSBwaGFpIGR1b2Mgc3UgY2hvIA0KcGhlcCBj dWEgQm8gdHUgbGVuaCBRdWFuIGtodSA3IQ0KDQpOZ2F5IDE4LTEwLTIwMDcgKGNvbmcgdHJpbmgg ZGEgeGF5IGR1bmcgeG9uZyBwaGFuIHRobywgZGFuZyB0cm9uZyBnaWFpIGRvYW4gaG9hbiANCnRo aWVuKSwgdGhhbmggdHJhIFNvIFhheSBkdW5nIHRyaWV1IHRhcCBtb3QgY3VvYyBob3AgY28gc3Ug dGhhbSBnaWEgY3VhIHRoYW5oIHRyYSBCbyANClF1b2MgcGhvbmcsIGRhaSBkaWVuIEJvIHR1IGxl bmggUXVhbiBraHUgNyB2YSBjaHUgZGF1IHR1LiBUYWkgYnVvaSBsYW0gdmllYywgdGhhbmggdHJh IA0KQm8gUXVvYyBwaG9uZyB2YSBDdWMgSGF1IGNhbiBRdWFuIGtodSA3IHZhbiBjaG8gcmFuZyB2 aWVjIGRhdSB0dSB4YXkgZHVuZyBuaGEgaGFuZyANCk5hbSBCYWMgKHNhdSBuYXkgbW9pIGRvaSBs YSBUcnVuZyB0YW0gV2hpdGUgUGFsYWNlKSBjdWEgY29uZyB0eSBUYXkgTmFtIGxhIGR1bmcgDQp0 aGVvIHF1aSB0cmluaCBkYXUgdHUgeGF5IGR1bmcgY3VhIEJvIFF1b2MgcGhvbmcoIT8pLg0KDQpU dXkgbmhpZW4sIHNhdSBraGkgeGVtIGhvIHNvIGRvIGNvbmcgdHkgVGF5IE5hbSBjdW5nIGNhcCwg dGhhbmggdHJhIFNvIFhheSBkdW5nIGtldCANCmx1YW4gdmllYyB4YXkgZHVuZyBjb25nIHRyaW5o IHR1eSBuYW0gdHJlbiBraHVvbiB2aWVuIGRhdCBxdW9jIHBob25nIG5odW5nIGNvIG11YyANCmRp Y2ggZGFuIHN1IChraW5oIGRvYW5oIHRpZWMgY3VvaSkgbmVuIHF1YSB0cmluaCB0aGkgY29uZyBj aHVhIGRheSBkdSB0aHUgdHVjOiB0aGlldSB2YW4gDQpiYW4gdGhvYSB0aHVhbiB0b25nIHRoZSBt YXQgYmFuZyBkbyBTbyBxdWkgaG9hY2ggLSBraWVuIHRydWMgY2FwLCBraG9uZyBjbyBnaWF5IHBo ZXAgDQp4YXkgZHVuZyBjdWEgY28gcXVhbiBuaGEgbnVvYyBjbyB0aGFtIHF1eWVuICh0aGVvIGNo dW5nIHRvaSBkdW9jIGJpZXQsIGRvaSB2b2kgY29uZyANCnRyaW5oIGRhbiBzdSwgZGF5IGxhIGNh YyBsb2FpIGdpYXkgdG8gcXVhbiB0cm9uZyB2YSBiYXQgYnVvYyBwaGFpIGNvIHRydW9jIGtoaSBr aG9pIGNvbmcgDQp4YXkgZHVuZyBjb25nIHRyaW5oKS4NCg0KTmh1IHZheSwgY28gdGhlIG5vaSBu Z2F5IHNhdSBidW9pIGxhbSB2aWVjIHZvaSBjaHUgZGF1IHR1IHZhIGRhaSBkaWVuIEJvIHF1b2Mg cGhvbmcsIA0KcXVhbiBraHUgNywgdGhhbmggdHJhIHhheSBkdW5nIGRhIGNvIGNvIHNvIGtoYW5n IGRpbmggY29uZyB0cmluaCB4YXkgZHVuZyB0b2EgbmhhIA0KV2hpdGUgUGFsYWNlIGxhIGNvbmcg dHJpbmggeGF5IGR1bmcga2hvbmcgcGhlcCBuaHVuZyB2aSBzYW8gdmFuIGtob25nIHJhIHF1eWV0 IGRpbmggDQpkaW5oIGNoaSB0aGkgY29uZyB0aGVvIGR1bmcgcXVpIGRpbmggbWEgZGUgY29uZyB0 cmluaCB0aWVwIHR1YyB0aGkgY29uZywgaG9hbiB0aGFuaCB2YSANCmR1YSB2YW8gc3UgZHVuZyAo Y3VvaSB0aGFuZyAxMS0yMDA3KT8gVGhlbyBnaWFpIHRyaW5oIGN1YSB0aGFuaCB0cmEgeGF5IGR1 bmcsIGx5IGRvIGxhIA0KImNvbmcgdHJpbmggZHVvYyB4YXkgZHVuZyB0cmVuIGRhdCBxdW9jIHBo b25nIGNvIGNodSB0cnVvbmcgY3VhIEJvIFF1b2MgcGhvbmcgdmEgDQpkdW9jIEJvIHR1IGxlbmgg cXVhbiBraHUgNyBjaGFwIHRodWFuIG5lbiBraG8geGFjIGRpbmggZHVvYyBtdWMgZGljaCBzdSBk dW5nLiBEbyB2YXkgDQpraG9uZyB0aGUgYmFuIGhhbmggcXV5ZXQgZGluaCBkaW5oIGNoaSB0aGkg Y29uZyBjb25nIHRyaW5oIi4NCg0KU2Uga2llbSBkaW5oIGNoYXQgbHVvbmcgY29uZyB0cmluaA0K DQpIaWVuIG5heSB0YWkgV2hpdGUgUGFsYWNlIHRodW9uZyB4dXllbiBjbyB0byBjaHVjIGNhYyB0 aWVjIGN1b2kgdm9pIHNvIGx1b25nIGhhbmcgbmdhbiANCnRodWMga2hhY2ggdGFwIHRydW5nIGN1 bmcgbW90IGx1Yy4gTGlldSBtb3QgY29uZyB0cmluaCB4YXkgZHVuZyBraG9uZyBwaGVwLCBjaHVh IGR1b2MgDQpjbyBxdWFuIGNodWMgbmFuZyBraWVtIGRpbmggdmUgY2hhdCBsdW9uZyB4YXkgZHVu ZyBjbyBkYW0gYmFvIGFuIHRvYW4gY2hvIHZpZWMgdG8gDQpjaHVjIHRpZWMsIGhvaSBuZ2hpIGRv bmcgbmd1b2kgaGF5IGtob25nPyBUaGVvIG1vdCBsYW5oIGRhbyBTbyBYYXkgZHVuZyBUUC5IQ00s IA0KdHJ1b2Mgbmd1eSBjbyBjb25nIHRyaW5oIHhheSBkdW5nIGtob25nIHBoZXAsIGtob25nIGRh bSBiYW8gY2hhdCBsdW9uZyBjbyB0aGUgZ2F5IA0Kbmd1eSBoaWVtIGNobyBuaGlldSBuZ3VvaSBr aGkgc3UgZHVuZywgc28gZGFuZyB4ZW0geGV0IGtoYSBuYW5nIHRpZW4gaGFuaCBraWVtIGRpbmgg DQpjaGF0IGx1b25nIGNvbmcgdHJpbmggZGUgY28gaHVvbmcgeHUgbHkuIFRyb25nIHR1YW4gdG9p LCBzbyBzZSB4aW4geSBraWVuIFVCTkQgVFAgY2hvIA0KdGFtIG5ndW5nIGhvYXQgZG9uZyBraW5o IGRvYW5oLCBzdSBkdW5nIGNvbmcgdHJpbmggbmF5IHRyb25nIG1vdCB0aG9pIGdpYW4gZGUgY2hv IGtldCANCnF1YSBraWVtIGRpbmggY2hhdCBsdW9uZyBjaGluaCB0aHVjIHR1IGNvIHF1YW4gY2h1 YyBuYW5nLiANCg0KVHJhbyBkb2kgdm9pIHBob25nIHZpZW4gYmFvIGRhaSBiZW4gbGUga3kgaG9w IEhETkQgVFAuSENNIHZlIGNvbmcgdHJpbmggeGF5IGR1bmcgDQpraG9uZyBwaGVwIFdoaXRlIFBh bGFjZSAocXVhbiBQaHUgTmh1YW4pLCBDaHUgdGljaCBVQk5EIFRQIExlIEhvYW5nIFF1YW4gY2hv IA0KYmlldCBoaWVuIHZhbiBkZSBkYW5nIGR1b2MgY2FjIGRvbiB2aSBjaHVjIG5hbmcga2llbSB0 cmEsIFVCTkQgVFAgbW9pIG5hbSBiYXQgZHVvYyANCnRob25nIHRpbiBidW9jIGRhdSB2ZSB2YW4g ZGUgbmF5Lg0KDQpMaWVuIHF1YW4gZGVuIGRhdCBkbyBxdW9jIHBob25nIHF1YW4gbHksIG9uZyBR dWFuIGNobyBiaWV0IFVCTkQgVFAgZGEgY28gdHJhbyBkb2kgDQp2b2kgQm8gUXVvYyBwaG9uZyB2 YSBkZSBuZ2hpIG5ldSBraG9uZyBzdSBkdW5nIHRoaSBjaHV5ZW4gZ2lhbyBjaG8gZGlhIHBodW9u ZyBxdWFuIA0KbHkuIENvbiBuZXUgc3UgZHVuZyB2YW8gY2FjIG11YyBkaWNoIGtpbmggdGUgY2Fu IHBoYWkgbGFtIHRodSB0dWMsIGRhbSBiYW8gcXVpIGhvYWNoIA0KZHVuZyBxdWkgZGluaC4gVUJO RCBUUCBjdW5nIGRhIGRlIG5naGkgQm8gUXVvYyBwaG9uZyByYSBzb2F0LCBraWVtIHRyYSBuaHVu ZyBub2kgY2h1YSBsYW0gZHVuZyBxdWkgZGluaC4gDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9k YXRfcXVvY19waG9uZ19ib19raG9uZ19oYXlfa2luaF9kb2FuaF8tMy0yMTIyMTYyOS5odG1sIEh1 eSBEdWMgKFNHVFQpIDEzLzEyLzIwMDcgLSAwMzoxMyAgIA0KDQpRdW9jIHBob25nOiBEYXQgcXVv YyBwaG9uZyAtIEJvIGtob25nIGhheSBraW5oIGRvYW5oID8NCg0KKEFuaDogV2hpdGUgUGFsYWNl LCAidHJ1bmcgdGFtIHRpZWMgY3VvaSIgbG9uZyBsYXkgdHJlbiBwaGFuIGRhdCB0aHVvYyBxdWFu IGRvaSkgDQoNCk5oaWV1IHRpZWMgY3VvaSBkYSBiaSBidW9jIHBoYWkgY2h1eWVuIHR1ICJOaGEg VHJhbmciIHJhIHNhbiB2YW4gZG9uZyBRdWFuIGtodSA3IHRvIA0KY2h1Yy4gV2hpdGUgUGFsYWNl IGRhbmcgYmkgZGluaCBjaGkgaG9hdCBkb25nLiBCbyBraG9uZyAidHJ1bmcgdGFtIHRpZWMgY3Vv aSIgc2FuZyANCnRyb25nIGJhYyBuaGF0IG5heSBkdW5nIGxhIGxhbmcgcGhpIHZhLCBjaGFjIGNo YW4sIGNvIG5oaWV1IGNvIGRhdSwgY2h1IHJlIHNlIGJ1b24uIA0KTmh1bmcsIGNvIG5odW5nIGNh aSBnaWEgZG9pIGtoaSBjdW5nIHBoYWkgdHJhIGRlIGR1eSB0cmkgcGhlcCBudW9jLiANCg0KVHJv bmcgcXVhbiBkb2ksIGtob25nIHBoYWkgbGEga2hvbmcgY28gbmh1bmcgInRpZW4gbGUiLCBkZSBj aHUgZGF1IHR1IGNvbmcgdHJpbmggbmF5IA0KbnVvbmcgdmFvLCBuZW4gbW9pIHhheSBjYSBtb3Qg Y29uZyB0cmluaCB0byBsb24gdGhlIG1hIGtob25nIGNhbiAicGhlcCB0YWMiIGdpIHR1IHBoaWEg DQpjaGluaCBxdXllbiBkaWEgcGh1b25nIGNhLiBDaG8gZHUgcXVhbiBkb2kgY28gbmh1bmcgcXV5 IGRpbmggcmF0IHJpZW5nIHZhICJkdW5nLCBzYWkiIA0Kcm9pIHNlIGR1b2MgcGhhbiBkaW5oIHJh IHNhbywgdGhpIFdoaXRlIFBhbGFjZSBybyByYW5nIGRhIG1vIGxhaSBtb3QgY2F1IGNodXllbiBy YXQgY2FuIA0KZHVvYyB0aWVwIHR1YyBkZW0gcmEgYmFuIGx1YW4uIA0KDQpXaGl0ZSBQYWxhY2Ug Y2hpIGxhIG1vdCBwaGFuIG5obyB0cm9uZyBzbyBob24gMjI1IG5naGluIG1ldCB2dW9uZyAiZGF0 IHF1b2MgcGhvbmciIA0KbmFtIHRyb25nIGRpYSBiYW4gdGhhbmggcGhvIGRhbmcgZHVvYyBjaHV5 ZW4gc2FuZyAibGFtIGtpbmggdGUiLiBOaGEgbyBoYXkgdHJ1bmcgdGFtIA0KdGllYyBjdW9pIGto b25nIHBoYWkgbGEgbmh1bmcgImJpIG1hdCBxdWFuIHN1IiBkZSB0cm8gdGhhbmggIm5nb2FpIGxl IiB2YSBkdW5nIG5nb2FpIHRyYXQgDQp0dSBwaGF0IHRyaWVuIHRvbmcgdGhlIGN1YSB0aGFuaCBw aG8uIEd1b25nIG1hdCBTYWkgR29uIHNlIHJhIHNhbywgbmV1IHRyZW4gbmh1bmcgcGhhbiANCmRh dCAicXVhbiBzdSIgYXksICJkbyB0aGkgaG9hIiBzZSBkaWVuIHJhIHJpZW5nICJtb3QgY29pIiB0 aGVvIGN1bmcgY2FjaCBtYSAiTmhhIFRyYW5nIiANCmRhIGxhbS4gRGF0IG5odW5nIGhvYXQgZG9u ZyB0aHVhbiB0dXkgZGFuIHN1IGR1b2kgbW90IHRyYXQgdHUgaGFuaCBjaGluaCwga2hvbmcgbmh1 bmcgDQpsYSBuZ3V5ZW4gdGFjIGJhdCBraGEgeGFtIHBoYW0gY3VhIHBoYXAgbHVhdCBtYSBjb24g bGEgbG9pIGljaCBjdWEgY2hpbmggcXVhbiBkb2kuIA0KDQpUcm9uZyBzdW90IGdhbiBoYWkgdGhh cCBreSBxdWEsIGRhIGNvIG5oaWV1IGtodSAiZGF0IHF1YW4gc3UiIGRvdCBuaGllbiAidHJvIHR1 b25nIiB2YSANCnR1IGRvIHh1YXQgaGllbiBuaHVuZyBraHUgbmhhIG8ga2hvbmcgY28gaGEgdGFu Zy4gUGhhbiBsb24gbmh1bmcga2h1IHZ1YyBkbyBkdW9jIGNhYyANCmRvbiB2aSBxdWFuIGRvaSBj YXAgZGF0IGNobyBibyBkb2kgeGF5IG5oYSBtYSBraG9uZyBjbyBtb3Qgc3UgcGhvaSBob3AgbmFv IHZvaSBjaGluaCANCnF1eWVuLiBIYXUgcXVhIGxhIGNoaW5oIGdpYSBkaW5oIG5odW5nIG5ndW9p IGxpbmggZG8gZGEgcGhhaSBzb25nIG5oaWV1IG5hbSBiZW4gbW90IA0KdGhhbmggcGhvIGhpZW4g ZGFpIG1hIGtob25nIGNvIG51b2Mgc2FjaCwga2hvbmcgY28gaG8ga2hhdSwgZGllbiB0aGkgY2F1 LCBtYWMgcGhhcCANCnBodTsgY2hpbmggcXV5ZW4gdGhpIG5oaWV1IG5vaSBraG9uZyBjb2kgZG8g bGEgbmh1bmcgdnVuZyB0aHVvYyB0aGFtIHF1eWVuIGN1YSBtaW5oIA0KZGUgdmFuIGhvaSB0cmF0 IHR1LiBEYSBjbyAieG9tIHZpZGVvIGRlbiIgeHVhdCBoaWVuIGhvaSBjdW9pIHRoYXAgbmllbiAx OTgwLCBkYXUgMTk5MCBvIA0Kbmh1bmcga2h1IGRhdCBuaHUgdGhlLiANCg0KTmh1bmcgdmFuIGRl IGtob25nIGNoaSBsYSB0cmF0IHR1IHhhIGhvaSBoYXkgZGlldSBraWVuIGhhIHRhbmcuIFR1IHRo YW5nIDgvMjAwNiwgcXVhbiANCmRvaSBkb25nIHkgZGUgY2hvIFF1YW4ga2h1IDcgY2h1eWVuIDIy NS42NDNtIDIgZGF0IHNhbmcgbGFtIGtpbmggdGUuIE5naGlhIGxhIHNvIGRhdCANCmF5IGRhIGto b25nIGNvbiBwaHVjIHZ1IGNobyBtdWMgZGljaCBhbiBuaW5oLCBxdW9jIHBob25nLiBUcmVuIHRo dWMgdGUsIHNvIGRhdCBxdWFuIA0KZG9pIHF1YW4gbHkgbWEga2hvbmcgZHVuZyBjaG8gbXVjIGRp Y2ggcXVvYyBwaG9uZyBjb24gcm9uZyBsb24gaG9uLiBLaG9pIHRhaSBzYW4gYXkgDQpsZSByYSBw aGFpIGR1b2Mgc3UgZHVuZyBkZSBwaGF0IHRyaWVuIGtpbmggdGUuIE5odW5nLCBoYW5nIGNodWMg bmFtIHNhdSBjaGllbiB0cmFuaCwgDQpjaHVuZyB2YW4gZHVvYyBnaXUgdHJvbmcga2h1b24gdmll biBjYWMgZG9hbmggdHJhaSBkZSBnaW8gZGF5IHRoYW5oICJ0cnVuZyB0YW0gdGllYyANCmN1b2ki IGtpZXUgV2hpdGUgUGFsYWNlLiANCg0KQ2FjIGRvbiB2aSBxdWFuIGRvaSBjdW5nIGNvIG5odW5n IGx5IGRvIGtoaSBjYXAgZGF0IGNobyBjYWMgc2kgcXVhbi4gTmh1bmcgbmd1b2kgbGluaCANCm5h eSBkYSByYSBjaGllbiB0cnVvbmcgbWEga2hvbmcgaGUgbmdoaSBkZW4gbmhhIHZhIGRhdC4gSG8g ZGEgaHkgc2luaCByYXQgbmhpZXUgdmEgaG8gDQp4dW5nIGRhbmcgZHVvYyBkZW4gZGFwLiBUdXkg bmhpZW4sIG5ldSAibmhhIG8iIGtob25nIHRybyB0aGFuaCBtb3QgY2hpbmggc2FjaCBjaHVuZyAN CmNobyBibyBkb2kgdmEgdmllYyBjYXAgZGF0IGN1IGRpZW4gcmEgbmh1IGNhY2ggbWEgY2FjIGRv biB2aSBkb25nIHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gDQp2YW4gbGFtLCB0aGkgbmh1bmcgbmd1 b2kgbGluaCBjdW5nIGh5IHNpbmggdG8gbG9uLCBuaHVuZyB2aSBzYXUgY2hpZW4gdHJhbmgga2hv bmcgbWF5IA0KbWFuIGR1b2MgZG9uZyBxdWFuIHRhaSBIYSBOb2kgaGF5IFRQIEhvIENoaSBNaW5o LCBzZSBraG9uZyBjbyBjbyBtYXkgY28gZHVvYyBuaGEgdmEgZGF0LiANCg0KRGUgcXVhbiBkb2kg ZGkga2luaCBkb2FuaCBraG9uZyBuaHVuZyB0YW8gcmEgbW90IG1vaSB0cnVvbmcgYmF0IGJpbmgg ZGFuZyBnaXVhIGNhYyANCmRvYW5oIG5naGllcCBtYSB2aWVjIGNvIHNvIGN1YSBxdWFuIGRvaSBk dW9jIGR1bmcgZGUga2luaCBkb2FuaCBraWV1IG5odSAidGllYyBjdW9pIiANCmN1bmcgc2UgdGFv IHJhIG1vdCBoaW5oIGFuaCBraG9uZyBoYXkgIA0KDQpOaHVuZyBnaSBtYSBjaHVuZyB0YSBjaHVu ZyBraWVuIG8ga2h1IHZ1YyBIb2FuZyBIb2EgVGhhbSwgQ29uZyBIb2EsIGtodSB2dWMgDQpkdW9u ZyAzLjIuLi4gdHJ1b2MgZGF5LCBjaG8gdGhheSwga2hvbmcgdGhlIHRpZXAgdHVjIHN1IGR1bmcg dGFpIG5ndXllbiBkYXQgZGFpIHRoZW8ga2lldSANCiJjaGllbiBsb2kgcGhhbSIuIEhvbiBoYWkg dHJhbSBuZ2hpbiBtZXQgdnVvbmcgZGF0IGRhbmcgZHVvYyBwaGkgcXVhbiBzdSBob2EgaGllbiAN Cm5heSwgdmEgbmh1bmcga2h1IGRhdCBob2kgY2hpZW4gdHJhbmggbGEga2h1IHF1YW4gc3UsIG5h eSBraG9uZyBjb24gc3UgZHVuZyBjaG8gbXVjIA0KZGljaCBhbiBuaW5oLCBxdW9jIHBob25nIG51 YSwgcGhhaSBkdW9jIGN1IHh1IG5odSB0YWkgc2FuIHF1b2MgZ2lhLiBQaGFpIGR1b2MgcXV5IA0K aG9hY2ggc3UgZHVuZyB2YSBwaGF0IHRyaWVuIGtpbmggdGUsIHBoYXQgdHJpZW4gZG8gdGhpIHNh byBjaG8gY28gbG9pIG5oYXQuIEhvYW4gdG9hbiBjbyANCnRoZSBkYXUgZ2lhIGRlIHN1bmcgdmFv IGNvbmcgcXV5IHNvIHRhaSBzYW4gbmF5LiBWYSwgbG9pIGljaCB0aHUgZHVvYyB0dSBkbywgc2Ug bGEgZGFvIGx5IA0KbmV1IGR1b2MgZGFuaCBwaGFuIGxvbiBob2FjIHRhdCBjYSwgZGUgY2hhbSBs byBuaGEgY3VhIGNobyBjYWMgcXVhbiBuaGFuLCBkdSBobyBkYW5nIA0KZG9uZyBxdWFuIG8gYmll biBjdW9uZyBoYXkgaGFpIGRhby4gDQoNClN1IGtpZW4sIGRhdCBxdWFuIHN1LCBzYXUga2hpIHBo YSBkbyB0dW9uZyBjaGUsIHh1YXQgaGllbiBtb3QgY29uZyB0cmluaCBjaG8gdHUgbmhhbiB0aHVl IA0Ka2luaCBkb2FuaCB0aWVjIGN1b2ksIGNobyB0aGF5LCBuZ2hpIHF1eWV0IGN1YSBob2kgbmdo aSBUcnVuZyB1b25nIDQgbGEgaGV0IHN1YyBkdW5nIGRhbiANCmtoaSBjaGkgcmEgcmFuZywgcGhh aSAiY2h1eWVuIG5odW5nIGRvYW5oIG5naGllcCBsYW0ga2luaCB0ZSBkb24gdGh1YW4gdGh1b2Mg Y28gcXVhbiANCkRhbmcsIGx1YyBsdW9uZyB2dSB0cmFuZy4uLiBzYW5nIGNhYyBjbyBxdWFuIG5o YSBudW9jIHF1YW4gbHkga2UgdHUgbmFtIDIwMDciLiANCg0KVGhhbmcgMTEgbmFtIDIwMDQsIGRh aSB0dW9uZyBQaGFtIFZhbiBUcmEgZGEgYmFvIHZlIHZpZWMgcXVhbiBkb2kgbGFtIGtpbmggdGUg a2hpIA0Kb25nIG5vaSB0cnVvYyBRdW9jIGhvaSByYW5nOiAiSGllbiBzdWF0IGFuIGN1YSBibyBk b2kgbW90IG5nYXkgY2hpIGNvIDkuMDAwIGRvbmcuIFBoYWkgDQpsYW0gKGtpbmggdGUpIHRoZW0g bW9pIGJvIHN1bmcgZHVvYyA5LjAwMCBkb25nIG51YSIuIExhcCBsdWFuIGRvIGtob25nIHRoZSBk dW5nIHZ1bmcgDQp2aSwgbmV1IHF1YSB0aHVjIGJ1YSBjb20gbmd1b2kgY2hpZW4gc2kgY2FuIDE4 LjAwMCBoYXkgdGhhbSBjaGkgMjguMDAwIGRvbmcgbW90IG5nYXkgDQp0aGkgbmdhbiBzYWNoIHNl IHBoYWkgbG8gY2hvIGR1LiBOaGFuIGRhbiBjbyB0aGUgZG9uZyB0aHVlIHRoZW0gdGhheSB2aSBk ZSBjaG8gY2hpZW4gc2kgDQpkb2kuIENodWEga2UsIG5ldSBzbyB0YWkgc2FuIGF5IHRodWMgc3Ug ZHVvYyBraGFpIHRoYWMgaGlldSBxdWEsIHRodSBuaGFwIGN1YSBuZ2FuIHNhY2ggDQpzZSBraGEg aG9uIHJhdCBuaGlldS4gDQoNCkRlIHF1YW4gZG9pIGRpIGtpbmggZG9hbmgga2hvbmcgbmh1bmcg dGFvIHJhIG1vdCBtb2kgdHJ1b25nIGJhdCBiaW5oIGRhbmcgZ2l1YSBjYWMgDQpkb2FuaCBuZ2hp ZXAgbWEgdmllYyBjbyBzbyBjdWEgcXVhbiBkb2kgZHVvYyBkdW5nIGRlIGtpbmggZG9hbmgga2ll dSBuaHUgInRpZWMgY3VvaSIgDQpjdW5nIHNlIHRhbyByYSBtb3QgaGluaCBhbmgga2hvbmcgaGF5 LiBLaG9uZyBwaGFpIG5nYXUgbmhpZW4gbWEgImFuaCBibyBkb2kiIGRhIHR1bmcgDQpsYSBtb3Qg aGluaCBhbmggZGVwIHRyb25nIGxvbmcgZGFuIGNodW5nLiBCaWVuIGN1b25nLCBoYWkgZGFvIGto b25nIHBoYWkgbGEgZGEgImhldCANCmJvbmcgeGFtIGxhbmciLCAiZ2l1IHRyb24gdHVuZyB0YWMg ZGF0LCB0YWMgYmllbiBjdWEgb25nIGNoYSIgbW9pIGxhIHN1IG1lbmggdGhpZW5nIA0KbGllbmcg bWEgdG8gcXVvYywgbWEgbmhhbiBkYW4gdHJvbmcgY2F5LiBLaG9uZyBuaGF0IHRoaWV0IHBoYWkg cXVhbiBseSBuaGlldSBkYXQsIG5oaWV1IA0KbmhhLCBraW5oIG5naGllbSB0dSBoYWkgY3VvYyBr aGFuZyBjaGllbiBjaG8gdGhheSByYW5nLCBraGkgY2FuLCBkYW4gc2UgcGhhIG5oYSBsYW0gY2F1 LCANCmNhdCBkYXQgbGFtIGR1b25nIGNobyBxdWFuIGRvaS4gDQoNCmh0dHA6Ly9oYW5vaW1vaS5j b20udm4vbmV3c2RldGFpbC9YYS1ob2kvMzk2NTkzL2hlLWxvLWtodWF0LXRhdC1zYXUtdGh1b25n LXZ1LWJhbi1sdWEtbm9uLmh0bSAgMDkvMTEvMjAxMCAwNzowMCAgVG9uZyBOZ29jIFRoYW5oICAN Cg0KUXVvYyBwaG9uZzogS2h1YXQgdGF0IHNhdSB0aHVvbmcgdnUgImJhbiBsdWEgbm9uIiB0YWkg VG9uZyBDb25nIHR5IFRoYW5oIEFuIC0gQlFQDQoNCihITk0pLSBOYW0gMTk5NywgZHVvYyBUaHUg dHVvbmcgQ2hpbmggcGh1IGdpYW8gaG9uIDkuMDAwbTIgZGF0IGRlIHhheSBkdW5nIA0KVHJ1bmcg dGFtIEtob2EgaG9jIHRodSBuZ2hpZW0gY29uZyBuZ2hlIHZhdCBsaWV1IHhheSBkdW5nIHZhIGt5 IHRodWF0IHhheSBkdW5nLCANClRvbmcgQ29uZyB0eSBUaGFuaCBBbiBkYSB0dW5nIGJ1b2MgY2h1 eWVuIGRvaSBtdWMgZGljaCBzdSBkdW5nIHZhIGN1b2kgY3VuZyANCiJiYW4gbHVhIG5vbiIga2h1 IGRhdCB2YW5nIGxheSBzbyB0aWVuIDEwMCB0eSBkb25nLiBLaG9uZyBjaGkgYmFuICJkYXQgdmFu ZyIgDQp2b2kgZ2lhIGJlbywgVG9uZyBDb25nIHR5IFRoYW5oIEFuIGNvbiBjbyBuaGlldSBzYWkg cGhhbSBuZ2hpZW0gdHJvbmcgdHJvbmcgDQpxdWFuIGx5IHRhaSBjaGluaCwgcXVhbiBseSBkYXUg dHUuLi4gdGFpIGR1IGFuIFRoYW5oIEFuIFRvd2VyIDIxIExlIFZhbiBMdW9uZy4gVHUgZGF5LCBu aHVuZyBzYWkgcGhhbSBkYW4gZHVvYyBoZSBsby4uLg0KDQpEb2kgInZhbmciIGxheSAiY2hpIg0K DQooQW5oOiBLaHUgZGF0ICJiYW4gbHVhIG5vbiIgY3VhIFRvbmcgQ29uZyB0eSBUaGFuaCBBbi4g QW5oOiBUaGFuaCBUdW5nKSANCg0KVGhhbmggbGFwIG5hbSAxOTk2LCBsYSB0aWVuIHRoYW4gY3Vh IEJpbmggZG9hbiAxMSAoQm8gUXVvYyBwaG9uZyksIG1vdCB0aG9pIFRvbmcgDQpDb25nIHR5IChU Q1QpIFRoYW5oIEFuIG5vaSBkYW5oIGxhIG1vdCBkb2FuaCBuZ2hpZXAgaGFuZyBkYXUgY3VhIHF1 YW4gZG9pIHRyb25nIGxpbmggDQp2dWMgeGF5IGxhcC4gVmF5IG5odW5nLCBjaGkgc2F1IHRob2kg Z2lhbiBuZ2FuLCBUQ1QgVGhhbmggQW4gbGllbiB0aWVwIGdhcCBraG8ga2hhbiB2ZSANCnRhaSBj aGluaCwgbm8geGF1IGNob25nIGNoYXQgbGVuIHRvaSBjb24gc28gaGFuZyB0cmFtIHR5IGRvbmcu IE5hbSAxOTk3LCBUQ1QgVGhhbmggQW4gDQpkdW9jIFRodSB0dW9uZyBDaGluaCBwaHUgZ2lhbyB0 aHVhIGRhdCBjbyBkaWVuIHRpY2ggOS4xNzQsM20yIHRhaSBwaHVvbmcgTmhhbiBDaGluaCwgDQpx dWFuIFRoYW5oIFh1YW4sIEhhIE5vaSBkZSB4YXkgZHVuZyBUcnVuZyB0YW0gS2hvYSBob2MgdGh1 IG5naGllbSBjb25nIG5naGUgdmF0IA0KbGlldSB4YXkgZHVuZyB2YSBreSB0aHVhdCB4YXkgZHVu Zy4gRG8gdnVvbmcgbWFjIHRyb25nIHZpZWMgYmFuIGdpYW8gbW9jIGdpb2ksIGdpYWkgdG9hIA0K ZGVuIGJ1IHRhaSBraHUgZGF0IG5heSwgbmFtIDIwMDQsIFRvbmcgY3VjIEhhdSBjYW4gZGEgeGF5 IGR1bmcgVHJ1bmcgdGFtIEtob2EgaG9jIA0KdGh1IG5naGllbSB0YWkgbW90IGRpYSBkaWVtIGto YWMsIGRvbmcgdGhvaSBjbyBjb25nIHZhbiBndWkgQm8gUXVvYyBwaG9uZyB4aW4gY2h1eWVuIA0K ZG9pIG11YyBkaWNoIHN1IGR1bmcgbWFuaCBkYXQgdGFpIHBodW9uZyBOaGFuIENoaW5oLiBOZ2F5 IDE2LTItMjAwOSwgQm8gUXVvYyANCnBob25nIGNvIENvbmcgdmFuIHNvIDYzNy9CUVAgLSBUTSBk ZSBuZ2hpIFVCTkQgdGhhbmggcGhvIEhhIE5vaSB0aHUgaG9pIGRpZW4gdGljaCANCmRhdCB0cmVu LCBnaWFvIFRDVCBUaGFuaCBBbiBxdWFuIGx5IGRlIHhheSBkdW5nIGNodW5nIGN1IGdpYSBkaW5o LCBrZXQgaG9wIGRpY2ggdnUgDQp0aHVvbmcgbWFpIHZhIHRydSBzbyBsYW0gdmllYy4gU2F1IGto aSB4ZW0geGV0LCBuZ2F5IDMxLTEyLTIwMDksIFVCTkQgVFAgSGEgTm9pIGRhIA0KYmFuIGhhbmgg UXV5ZXQgZGluaCBzbyA2OTIyL1FELVVCTkQsIGNobyBwaGVwIFRDVCBUaGFuaCBBbiBjaHV5ZW4g ZG9pIG11YyBkaWNoIA0Kc3UgZHVuZyA4LjMzNG0yIGRhdCBxdW9jIHBob25nIHNhbmcgeGF5IGR1 bmcgZGFuIGR1bmcsIGRvbmcgdGhvaSB0aHUgaG9pIDgwNm0yIGRhdCANCnRhaSBwaHVvbmcgTmhh biBDaGluaCwgZ2lhbyBkb24gdmkgbmF5IHRodWMgaGllbiBkdSBhbiBkYXUgdHUgeGF5IGR1bmcg a2h1IGNodW5nIGN1IGRlIA0KYmFuIHZhIHZhbiBwaG9uZyBsYW0gdmllYyBjaG8gdGh1ZS4gDQoN ClR1eSBuaGllbiwgdHJlbiB0aHVjIHRlLCB0cnVvYyBraGkgY28gdmFuIGJhbiBkb25nIHkgY2h1 eWVuIGRvaSBtdWMgZGljaCBzdSBkdW5nIGRhdCBjdWEgDQpVQk5EIFRQIEhhIE5vaSwgbmdheSAx LTYtMjAwOSwgb25nIEJ1aSBRdWFuZyBWaW5oIC0gVG9uZyBHaWFtIGRvYyBUQ1QgVGhhbmggDQpB biBkYSBreSBrZXQgaG9wIGRvbmcgaG9wIHRhYyBraW5oIGRvYW5oIHNvIDA5LzIwMDkvSERIVEtE IHZvaSA0IGRvYW5oIG5naGllcCBjbyANCnBoYW4gbmdvYWkgcXVhbiBkb2ksIGdvbTogQ29uZyB0 eSBQaGF0IHRyaWVuIG5oYSBIYSBOb2kgc28gNDEsIENvbmcgdHkgVGFpIG5ndXllbiwgDQpDb25n IHR5IERhdSB0dSB2YSBwaGF0IHRyaWVuIFRheSBCYWMgdmEgQ29uZyB0eSBEYXUgdHUgeGF5IGR1 bmcgSGFpIFZhbiwgZG8gQ29uZyB0eSANCkRhdSB0dSBwaGF0IHRyaWVuIG5oYSBIYSBOb2kgc28g NDEgbGFtIGRhaSBkaWVuIGRlIHhheSBkdW5nIHRvYSBuaGEgdmFuIHBob25nIDEyIHRhbmcsIA0K Y2h1bmcgY3UgMjQgdGFuZyB2YSA5IGJpZXQgdGh1IG5oYSB2dW9uLCBtb2kgY2FuIGNhbyAzLDUg dGFuZy4gVGllbmcgbGEgaG9wIHRhYyBraW5oIA0KZG9hbmgsIHNvbmcgdmUgYmFuIGNoYXQsIFRD VCBUaGFuaCBBbiBkYSAiYmFuIGx1YSBub24iIHRvYW4gYm8gZHUgYW4uIA0KDQpUaGVvIGhvcCBk b25nIHNvIDA5LzIwMDkvSERIVEtEIG5nYXkgMS02LTIwMDksICJ2b24gZ29wIiBjdWEgVENUIFRo YW5oIEFuIGxhIA0KdG9hbiBibyB0aHVhIGRhdCBkaWVuIHRpY2ggOS4xNzQsM20yIHRhaSBwaHVv bmcgTmhhbiBDaGluaCwgZG9pIGxhaSBUQ1QgVGhhbmggQW4gZHVvYyANCmh1b25nIDEwMCB0eSBk b25nIGxvaSBuaHVhbiB1bmcgdHJ1b2MgKHNhdSBraGkgdHJ1IHRodWUgdGh1IG5oYXAgZG9hbmgg bmdoaWVwIGNoaSBjb24gDQpsYWkgNzUgdHkgZG9uZyksIGtlbSB0aGVvICJkYWMgcXV5ZW4iIGdp b2kgdGhpZXUgZGFuaCBzYWNoIGJhbiAyIGNhbiBiaWV0IHRodSwgMjAlIHNhbiANCmNodW5nIGN1 IHR1b25nIGR1b25nIDQwIGNhbiBobyBjaG8gY2FjIGRvaSB0dW9uZyB0cm9uZyBub2kgYm8gcXVh biBkb2kgdHJlbiBuZ3V5ZW4gdGFjIA0KdGhhbmggdG9hbiBkYXkgZHUgY2hvIGRvaSB0YWMgbW9p IGNoaSBwaGkgZHVvYyBCbyBRdW9jIHBob25nIHBoZSBkdXlldC4gQ3VuZyB0aGVvIGhvcCANCmRv bmcgbmF5LCBzYXUga2hpIG5oYW4gMTAwIHR5IGRvbmcgbG9pIG5odWFuIHVuZyB0cnVvYywgVENU IFRoYW5oIEFuIHNlIHJ1dCBraG9pIGR1IA0KYW4sIGdpYSB0dSB2YWkgdHJvIGxhbSBjaHUgZGF1 IHR1LCBtb2kgdmFuIGRlIHZlIHBodW9uZyBhbiBraW5oIGRvYW5oLCBnaWEgdGh1ZSwgZ2lhIA0K Y2h1eWVuIG5odW9uZy4uLiBwaGlhIGRvaSB0YWMgZHVvYyB0b2FuIHF1eWVuIHF1eWV0IGRpbmgu IA0KDQpEYW5nIGNodSB5LCB2YW8gdGhvaSBkaWVtIGdpdWEgbmFtIDIwMDksIGtodSBkdSBhbiBj byB2aSB0cmkgZGFjIGRpYSwgbmFtIHRhaSBnb2MgaGFpIA0KY29uIGR1b25nIE5ndXkgTmh1IEtv biBUdW0gdmEgTGUgVmFuIFRoaWVtIGNvIGdpYSB0cmkga2hvbmcgZHVvaSAxMDAgdHJpZXUgDQpk b25nL20yLiBWb2kgdG9uZyBkaWVuIHRpY2ggZHUgYW4gdHJlbiA5LjAwMG0yLCBUQ1QgVGhhbmgg QW4gZGEgc28gaHV1IG1vdCBraHUgDQoiZGF0IHZhbmciIHR1b25nIGR1b25nIDEuMDAwIHR5IGRv bmcuIFZheSBuaHVuZywgdm9pIGJhbiBob3AgZG9uZyBuYXksIFRDVCANClRoYW5oIEFuIGRhIGJh biBsdW9uIHRydSBzbyBsYW0gdmllYyBjaG8gZG9pIHRhYyBraW5oIGRvYW5oICghPykgDQoNCkN1 bmcgdm9pIHRpbmggY2hhdCBsaWVuIGtldCBraW5oIGRvYW5oIHR1b25nIHR1LCBuZ2F5IDE4LTEx LTIwMDksIG9uZyBWaW5oLCBUb25nIEdpYW0gDQpkb2MgVENUIFRoYW5oIEFuIHRpZXAgdHVjIGt5 IGhvcCBkb25nIGtob25nIHNvIHZvaSBDb25nIHR5IGNvIHBoYW4gVHUgdmFuIGRhdSB0dSANCnhh eSBkdW5nIEJhIERpbmggZGUgeGF5IGR1bmcgZHUgYW4gIlRoYW5oIEFuIFRvd2VyIiB0cmVuIGRp ZW4gdGljaCA0LjkxMG0yIHRhaSBkaWEgDQpjaGkgMjEgTGUgVmFuIEx1b25nLCBwaHVvbmcgTmhh biBDaGluaCwgcXVhbiBUaGFuaCBYdWFuLiBUaHVvbmcgdnUgImJhbiBsdWEgbm9uIiANCmxhbiB0 aHUgaGFpIGRlbSBsYWkgY2hvIFRDVCBUaGFuaCBBbiBzbyB0aWVuICJsb2kgbmh1YW4iIHZlbiB2 ZW4gMTUwIHR5IGRvbmcuIA0KDQpOaGFuIGRpbmggdmUgaGFpIGhvcCBkb25nIGhvcCB0YWMga2lu aCBkb2FuaCAia2hvIGhpZXUiIGN1YSBUQ1QgVGhhbmggQW4sIGxhbmggZGFvIA0KbW90IGRvbiB2 aSB0aGFuaCB2aWVuIHRodW9jIFRDVCBUaGFuaCBBbiBjaHVhIHhvdDogIlRyb25nIGtoaSBjYWMg ZG9uIHZpIHRoYW5oIHZpZW4gDQpwaGFpIHZhdCB2YSB0aW0ga2llbSBjYWMgZHUgYW4gdGhpIGhh aSBkdSBhbiBsb24gdm9pIHRvbmcgc28gdHJlbiAxNC4wMDBtMiBkYXQgY3VhIFRDVCANCmxhaSBi aSBtYW5nIGJhbiBjaG8gbmd1b2kgbmdvYWkgdm9pIGdpYSBxdWEgcmUgbWF0LiBOZXUgbHVjIGRv IFRDVCBjb25nIGtoYWkgdGhvbmcgdGluLCANCmNoYWMgY2hhbiBuaGlldSBkb24gdmkgdGhhbmgg dmllbiBzZSBuaGlldCB0aW5oIGRvbiBuaGFuISIgIA0KKGNvbiB0aWVwKSANCg0KaHR0cDovL3Rp bnR1Yy50aW1uaGFuaC5jb20vcGhhcC1sdWF0LzIwMTAwMzA0LzM1QUEwRUUyL0JhdC1jaHUta2hv LWhhbmctcXVhbi10cmFuZy1xdWFuLWR1bmctcXVpLW1vLWxvbi5odG0gMDQvMDMvMjAxMCAwOTox MTowMA0KDQpRdW9jIHBob25nOiBRdWFuIHRyYW5nLCBxdWFuIGR1bmcgbG90IHJhIHRoaSB0cnVv bmcgcXVpIG1vIGxvbiANCg0KTmdheSAzLTMsIFRydW5nIHRhIE5ndXllbiBIb2FuZyBUdWFuLCBU cnVvbmcgQ29uZyBhbiBxdWFuIFRhbiBQaHUgliBUUEhDTSwgY2hvIA0KYmlldCwgY28gcXVhbiBD U0RUIENvbmcgYW4gcXVhbiBuYXkgZGEga2hvaSB0byB2dSBhbiwga2hvaSB0byBiaSBjYW4gdmEg YmF0IHRhbSBnaWFtIDQgDQp0aGFuZyBkZSBkaWV1IHRyYSBkb2kgdm9pIFRvIFR1YW4gQW5oLCBu Z3UgNDgvMi83IExlIFZhbiBQaGFuIChQLiBQaHUgVGhvIEhvYSwgUS5UYW4gDQpQaHUpLCB2aSBk YSBjbyBoYW5oIHZpICJCdW9uIGJhbiBoYW5nIGNhbSIuDQoNCihNdSBrZXBpIGN1YSBzaSBxdWFu IHF1YW4gZG9pIHZhIG5vbiBjdWEgQ1MgMTEzLCBDU0dUIHRodSB0YWkgY29uZyB0eSBkbyBvbmcg IFRvIFR1YW4gQW5oKGFuaCBuaG8pIGxhbSBjaHUpIA0KDQpTYXUga2hpIGJhdCBnaXUgZG9pIHR1 b25nLCBsdWMgbHVvbmcgY29uZyBhbiB0aWVuIGhhbmgga2hhbSB4ZXQgbmhhIHZhIGNvbmcgdHkg ZG8gVG8gDQpUdWFuIEFuaCBsYW0gY2h1LCBwaGF0IGhpZW4gdmEgdGh1IGdpdSBob24gMzAgY2h1 bmcgbG9haSBoYW5nIGNhbSwgbmh1OiBjb25nLCByb2kgZGllbiwgDQpkdWkgY3VpLCBwaHUgaGll dSwgcXVhbiBhbyBjdWEgbHVjIGx1b25nIGNvbmcgYW4geGEuLi4gDQoNClRydW9jIGRvLCBiYW8g Tmd1b2kgTGFvIERvbmcgbmdheSAyNS02LTIwMDkgdmEgMjYtNi0yMDA5IGRhIHRob25nIHRpbiwg dmFvIG5nYXkgMjQtDQo2LTIwMDksIERvaSBRdWFuIGx5IHRoaSB0cnVvbmcgcGhvaSBob3Agdm9p IERvaSBDYW5oIHNhdCBkaWV1IHRyYSBUb2kgcGhhbSB2ZSB0cmF0IHR1IA0KcXVhbiBseSBraW5o IHRlIHZhIGNodWMgdnUgKHRhbSB2aWV0IHRhdCBsYSBDU0RUIFFMS1QtQ1YpIENvbmcgYW4gcXVh biBUYW4gUGh1IA0Ka2llbSB0cmEgQ29uZyB0eSBUTkhIIFNYLVhOSyBUYWkgTGFuIEFuaCwgbyBz byA0OC8yLzcgTGUgVmFuIFBoYW4gdmEgQ29uZyB0eSBDbyANCnBoYW4gU1gtVE0tWE5LIFBodWMg VGhvIG8gc28gMDA3IGNodW5nIGN1IFZ1b24gTGFpIChkb2kgZGllbiBDb25nIHR5IFRhaSBMYW4g DQpBbmgpLiANCg0KVGFpIDIgY29uZyB0eSBuYXksIGx1YyBsdW9uZyBjaHVjIG5hbmcgcGhhdCBo aWVuIGhhbmcgY2h1YyBjaHVuZyBsb2FpIGNhYyBtYXQgaGFuZyANCnF1YW4gdHJhbmcgcXVhbiBk dW5nLCBsYSBuaHVuZyBtYXQgaGFuZyBjYW0ga2luaCBkb2FuaCwgbmh1OiBub24gY29pLCBub24g a2VwcGksIGJpYSANCnRhcCBiYW4sIGxldSB0cnVuZyBkb2ksIGFvIGdpYXAgY2hvbmcgZGFuLCBn aWF5IGNhcCB0dW9uZywgZGFvIGdhbSBjYW8gc3UsIGJhdCBkdSwgcXVhbiANCmFvIHJhbiByaS4u LiBjdWEgcXVhbiBkb2k7IEtoaWVuIG5odWEgY28gY2h1IFBvbGljZSBkdW5nIGNobyBjYW5oIHNh dCBjaG9uZyBiYW8gZG9uZywgDQpkdWkgY3VpLCBub24gY28gbHVvaSBzYXQgY3VhIGNhbmggc2F0 IGNvIGRvbmcsIG5vbiBuaHVhIGN1YSBDYW5oIHNhdCAxMTMsIGdheSB0aW4gaGlldSANCmdpYW8g dGhvbmcsIG5vbiBiYW8gaGllbSBtYXUgdmFuZyBjdWEgY2FuaCBzYXQgZ2lhbyB0aG9uZywgYW8g Z2lhcCBjaG9uZyBkYW4sIG1heSBwaGEgDQpzb25nIGRpZW4gdGhvYWkgZGkgZG9uZy4uLiANCg0K KEFuaDogTm9uIDExMyBjdWEgVHVhbiBBbmggYmkgdGh1IGdpdSkgDQoNCk5nb2FpIHJhLCBsdWMg bHVvbmcgY2h1YyBuYW5nIGNvbiBwaGF0IGhpZW4gQ29uZyB0eSBUYWkgTGFuIEFuaCBraW5oIGRv YW5oIGNhYyBtYXQgDQpoYW5nIGNoaSBkYW5oIGNobyBjYWMgaG9hdCBkb25nIHF1YW4gc3UsIG5o dTogbWF5IGJhbiB0YXAgTUJUIDAzICgyMDA2KSBjbyBibyB0aGlldCANCmJpIHRhbyB0aWVuZyBu bywgbW8gaGluaCBkb25nIGR1bmcgZGUgaHVhbiBsdXllbiBjYXUgdGFvIGhvYXQgZG9uZyBjdWEg c3VuZyBBSywgc3VuZyANCkFLIGJhbiBraWVtIHRyYSBiYW5nIGxhemUsIGRhbiBLNTYgKGR1bmcg Y2hvIHN1bmcgQUsgdmEgc3VuZyBDS0MpLCBsdXUgZGFuIHRhcCBiYW5nIA0Ka2ltIGxvYWkgKGRh bmcgcXVhIG5hLCBxdWEgdHJ1bmcpLCBob3AgZGFuIHN1bmcgYm8gYmluaCBoZSBJIHZhIGhlIElJ Li4uIA0KDQpEYW5nIGNodSB5LCB0cm9uZyB0YXAgYmFvIGdpYSBkYWkgaGFuZyBjaHVjIHRyYW5n IGN1YSBDb25nIHR5IFRhaSBMYW4gQW5oIGNvIGRlbiAyOTggDQpjaHVuZyBsb2FpIGhhbmcgImRv YyIsIG5odTogb25nIG5ob20gYmFuIGRlbSAobG9haSAxIG1hdCksIGdpYSAxMy0xNSB0cmlldSBk b25nL2NhaTsgDQpvbmcgbmhvbSBiYW4gZGVtIChsb2FpIDIgbWF0KSwgZ2lhIDIyLTI1IHRyaWV1 IGRvbmcvY2FpICh4dWF0IHh1IHR1IE15KTsgbWF5IHBoYSBzb25nIA0KKGJhbiBraW5oIDE1IG0g liAyNSBtLCBnaWEgMzgtNTggdHJpZXUgZG9uZy9jYWkpLCB0aGFtIGNoaSBjbyBjYS4uLiBib2Mg cGhhIGxvYWkga2hvaSB2YSANCm9uZyAoZHVuZyBkZSBodWFuIGx1eWVuIHRyb25nIHF1YW4gc3Up IHZhIHN1bmcgQjQwIHZhIEI0MSAoY28ga2VtIHRoZW8gZGFuIHRhcCkgdm9pIA0KZ2lhIGJhbiAz LDUgLSAzLDcgdHJpZXUgZG9uZy9raGF1Lg0KDQooQW5oOiBLaWVtIGtlIGhhbmcgY3VhIFRvIFR1 YW4gQW5oKSANCg0KVGhpZXUgdGEgSG8gVmlldCBUdWFuLCBQaG8gdHJ1b25nIERvaSBDU0RUIFFM S1QtQ1YgQ29uZyBhbiBxdWFuIFRhbiBQaHUsIGNobyANCmJpZXQgc2F1IGtoaSBjbyBrZXQgcXVh IGdpYW0gZGluaCB0dSBjbyBxdWFuIGhhdSBjYW4gY3VhIHF1YW4gZG9pIHZhIGNvbmcgYW4gdmUg Y2FjIG1hdCANCmhhbmcgdHJlbiBsYSBoYW5nIGNhbSwgY28gcXVhbiBDU0RUIGRhIGJhdCBraGFu IGNhcCBUbyBUdWFuIEFuaCBraGkgZG9pIHR1b25nIG5heSANCmRhbmcgZGkgdHJlbiBkdW9uZy4g THVjIGJhdCBkb2kgdHVvbmcsIGNvbmcgYW4gY29uIHRodSBnaXUgZHVvYyBtb3Qgc28gaGFuZyBj YW0gbmh1IA0Kcm9pIGRpZW4sIGR1aSBjdWksIGNvbmcuLi4gdHJlbiBvdG8gbWEgVHVhbiBBbmgg ZGFuZyBsdXUgdGhvbmciLiANCg0KVGhlbyB0cnVuZyB0YSBOZ3V5ZW4gSG9hbmcgVHVhbiwgVHJ1 b25nIENvbmcgYW4gcXVhbiBUYW4gUGh1LCBkYXkgbGEgbG9haSBhbiBkYXUgDQp0aWVuIHRyZW4g ZGlhIGJhbiBUUEhDTSBkbyBjbyBxdWFuIENTRFQgQ29uZyBhbiBxdWFuIFRhbiBQaHUgZGlldSB0 cmEgdmEga2hvaSB0by4gDQpEZSBxdWEgbWF0IGNvIHF1YW4gcGhhcCBsdWF0LCBiaSBjYW4gVG8g VHVhbiBBbmggZHVuZyB0aHUgZG9hbiBsYXAgcmEgbW90IHNvIGNvbmcgdHkgDQpyb2kgZGUgbmd1 b2kga2hhYyBkdW5nIHRlbiwgY29uIG1pbmggdGhpIGR1bmcgcmEgZGlldSBraGllbi4gVHV5IG5o aWVuIHF1YSBkaWV1IHRyYSwgZG9pIA0KdHVvbmcgbmF5IGRhIHRodWEgbmhhbiBoYW5oIHZpIHZp IHBoYW0gcGhhcCBsdWF0LiBIaWVuIHZ1IGFuIHZhbiBkYW5nIG1vIHJvbmcgZGlldSB0cmEiLiAN Cg0KaHR0cDovL25ld3Muc29jYmF5LmNvbS9kaWVuX2JpZW5fbW9pX25oYXRfdmVfdnVfcGhhdF9o aWVuX2tob19oYW5nX3F1YW5fdHJhbmdfcXVhbl9kdW5nX3RhaV90cGhjbV90cnV5X2N1dV90cmFj aF9uaGllbV9oaW5oX3N1Xy02MTIwNDU5MzctMjUxNjU4MjQwIG5sZC5jb20udm4gLSAwMzowOCAx NS0wNy0yMDA5IA0KDQpEaWVuIGJpZW4gbW9pIG5oYXQgdmUgdnUgcGhhdCBoaWVuIGtobyBoYW5n IHF1YW4gdHJhbmcgcXVhbiBkdW5nIHRhaSBUUCBIQ00gDQoNClRydXkgY3V1IHRyYWNoIG5oaWVt IGhpbmggc3UgDQoNCkRvIGxhIGNoaSBkYW8gY3VhIFVCTkQgVFBIQ00gdmUgdnUgdmllYyB0cmVu LiAoVmllYyJiYW4idHJlIG1vIGNvaSBvIFRydW9uZyBUaWEgDQpTYW5nLCBDb25nIGFuIHRoaSB4 YSBCYW8gTG9jIGRhbmcgZGlldSB0cmEgbGFtIHJvLCB0dWFuIHNhdSBzZSBjbyBrZXQgcXVhKSAg DQoNClZhbiBwaG9uZyBVQk5EIFRQSENNIHZ1YSBjbyB2YW4gYmFuIHRydXllbiBkYXQgeSBraWVu IGN1YSBQaG8gQ2h1IHRpY2ggVUJORCANClRQIE5ndXllbiBUaGkgSG9uZywgdGhvbmcgbmhhdCBk ZSBuZ2hpIGN1YSBDaGkgY3VjIFFMVFQgVFBIQ00gdmUgdmllYyBjaHV5ZW4gDQpnaWFvIGhvIHNv IHZ1IHZpIHBoYW0gY3VhIENvbmcgdHkgVE5ISCBTWC1YTksgVGFpIExhbiBBbmggKENvbmcgdHkg VGFpIExhbiBBbmgpIA0KdmEgQ29uZyB0eSBDbyBwaGFuIFNhbiB4dWF0IFRodW9uZyBtYWkgWE5L IFBodWMgVGhvIChDb25nIHR5IFBodWMgVGhvKSBjaG8gQ29uZyANCmFuIFRQIGRlIHRydXkgY3V1 IHRyYWNoIG5oaWVtIGhpbmggc3UuIA0KDQooQW5oOiBIYW5nIHF1YW4gdHJhbmcgcXVhbiBkdW5n IGR1b2MgcGhhdCBoaWVuIHRhaSBraG8gY3VhIENvbmcgdHkgVE5ISCBTWC1YTksgVGFpIExhbiBB bmguIEFuaDogVC5USUVOKSANCg0KRGF1IGhpZXUgdG9pIHBoYW0gDQoNClRoZW8gVUJORCBUUCwg Q29uZyB0eSBUYWkgTGFuIEFuaCB2YSBDb25nIHR5IFBodWMgVGhvLCBkbyBvbmcgVG8gVHVhbiBB bmggbGFtIA0KZGFpIGRpZW4gY28gZGF1IGhpZXUgdG9pIHBoYW06IEtpbmggZG9hbmggcXVhbiB0 cmFuZywgY29uZyBjdSBobyB0cm8gZHVvYyBzdSBkdW5nIHRyb25nIA0KbHVjIGx1b25nIHZ1IHRy YW5nIHZvaSBzbyBsdW9uZyBsb24sIHRyaSBnaWEgaGFuZyBob2EgdHJlbiA2MDAgdHJpZXUgZG9u ZywgdmkgcGhhbSBxdXkgDQpkaW5oIGN1YSBOZ2hpIGRpbmggNTkvMjAwNi9ORC1DUCBuZ2F5IDEy LTYtMjAwNiBjdWEgQ2hpbmggcGh1IHF1eSBkaW5oIGNoaSB0aWV0IA0KTHVhdCBUaHVvbmcgbWFp IHZlIGhhbmcgaG9hLCBkaWNoIHZ1IGNhbSBraW5oIGRvYW5oLCBoYW4gY2hlIGtpbmggZG9hbmgg dmEga2luaCANCmRvYW5oIGNvIGRpZXUga2llbi4gDQoNClVCTkQgVFAgZ2lhbyBDb25nIGFuIFRQ IGNvIHRyYWNoIG5oaWVtIHRpZXAgbmhhbiBobyBzbyB2aSBwaGFtIGN1YSBDb25nIHR5IFRhaSBM YW4gDQpBbmggdmEgQ29uZyB0eSBQaHVjIFRobywga2llbSB0cmEsIHhhYyBtaW5oLCB4dSBseSB0 aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQsIGJhbyBjYW8gDQprZXQgcXVhIGNobyBVQk5EIFRQ LiBVQk5EIFRQIGN1bmcgeWV1IGNhdSBDb25nIGFuIFRQIGNoaSBkYW8gQ29uZyBhbiBxdWFuIFRh biANClBodSBjbyBiaWVuIHBoYXAgYmFvIHZlIGRhbmggZHUsIHRpbmggbWFuZyBjdWEgY2FuIGJv IGxhbmggZGFvIERvaSBRdWFuIGx5IFRoaSB0cnVvbmcgDQooUUxUVCkgVGFuIFBodSB2YSB4dSBs eSBuZ2hpZW0gY2FjIGhhbmggdmkgZGUgZG9hIGN1YSBvbmcgVG8gVHVhbiBBbmguICAgDQoNCkNo aWV1IDE0LSA3LCBvbmcgUGhhbSBUaGFuaCBCaW5oLCBEb2kgdHJ1b25nIERvaSBRTFRUIHF1YW4g VGFuIFBodSwgY2hvIGJpZXQgbW9pIA0KdGh1IGRhIGR1b2MgY2h1YW4gYmkgeG9uZyBuaHUgYmll biBiYW4gYmFuIGdpYW8sIGhvIHNvLCBjaHVuZyB0dSBsaWVuIHF1YW4gZGVuIGhvYXQgDQpkb25n IGtpbmggZG9hbmggY3VhIGhhaSBjb25nIHR5IHRyZW4uIFRyb25nIGRvIGNvIG5odW5nIHNvIHNh Y2gsIGNodW5nIHR1IGNodW5nIG1pbmggDQpvbmcgVG8gVHVhbiBBbmggbGEgY2h1IGN1YSBoYWkg Y29uZyB0eSBuYXkuIFRhbmcgdmF0IGhhbmcgcXVhbiB0cmFuZywgcXVhbiBkdW5nIHZvaSANCjM4 IG1hdCBoYW5nIGRhbmcgZHVvYyBuaWVtIHBob25nIHRhbSBnaXUgdGFpIGtobyBjb25nIHNhbiBj dWEgUGhvbmcgVGFpIGNoaW5oIEtlIA0KaG9hY2ggcXVhbiBUYW4gUGh1LiBDdW5nIHRoZW8gb25n IEJpbmgsIGNobyBkZW4gY3VvaSBnaW8gY2hpZXUgY3VuZyBuZ2F5IHBoaWEgY29uZyANCmFuIHZh biBjaHVhIGxpZW4gaGUgdm9pIGRvaSBkZSB0aWVwIG5oYW4gYmFuIGdpYW8uIA0KDQpUYXUgdGFu IGhhbmcgaG9hIA0KDQpRdWEgcGhhbiBhbmggY3VhIG5ndW9pIGRhbiB4YSBEYWkgTGFvLCB0aGkg eGEgQmFvIExvYywgTGFtIERvbmcsIHRyb25nIGNhYyBuZ2F5IHR1IA0KMTEgZGVuIDE0LTcsIHF1 YW4gbHkgQ29uZyB0eSBUTkhIIFNhbiB4dWF0IFRodW9uZyBtYWkgVGhhbmggTmdhIChoYXkgY29u IGdvaSBsYSANCkNvbmcgdHkgQW5oIE5nYSwgZG8gb25nIFRvIFR1YW4gQW5oIGxhcCBuZW4pLCBk YSBjaG8gbmhhbiB2aWVuIGRlbiBkb24gdG9hbiBibyBzbyANCmhhbmcgaG9hIGdvbSBxdWFuIGFv LCBnaWF5IGRlcCwgbXUgYmFvIGhvIGNvbmcgYW4sIGFvIGNob25nIGRhbiwgcGhhbyBib2kuLi4g cmEga2hvaSANCmtobyBoYW5nIGN1YSBjb25nIHR5IHRhaSBzbyA2NjdCIFF1b2MgbG8gMjAsIHhh IERhaSBMYW8uIEhpZW4gdGFpLCBjb25nIHR5IG5heSBjaGkgY29uIA0KdmFpIG5oYW4gdmllbiB2 YSB2YWkgYm8gYmFuIGdoZS4gDQoNCltMaWVuIHF1YW4gZGVuIHZpZWMgY28gaGF5IGtob25nIHZp ZWMgImJhbiIgdHJlIG1vIGNvaSBvIFRydW9uZyBUaWEgU2FuZyAoZG8gb25nIFRvIA0KVHVhbiBB bmggbGFtIGNodSkgdm9pIGdpYSAyMCB0cmlldSCWIDI1IHRyaWV1IGRvbmcvZW0gbmh1IEJhbyBO TEQgZGEgdGhvbmcgdGluLCBtb3QgDQpjYW4gYm8gY28gcXVhbiBkaWV1IHRyYSBDb25nIGFuIHRo aSB4YSBCYW8gTG9jIGNobyBiaWV0IHZ1IHZpZWMgZGFuZyBkdW9jIGRpZXUgdHJhIGxhbSANCnJv LiBUdXkgY2h1YSBjbyBrZXQgbHVhbiBjaGluaCB0aHVjIG5odW5nIHF1YSB0aW0gaGlldSBkdW5n IGxhIGNvIGhpZW4gdHVvbmcgY2FuIGJvIA0KVHJ1b25nIFRpYSBTYW5nICJiYW4iIHRyZSByYSBj b25nIGRvbmcgdm9pIGdpYSBjYW8uIENvbiB0aHVvbmcgdGEgTmd1eWVuIFZhbiBUaGlldCwgDQpU cnVvbmcgQ29uZyBhbiB0aGkgeGEgQmFvIExvYywgY2hvIGJpZXQgdHJvbmcgdHVhbiBzYXUgc2Ug Y28ga2V0IHF1YSBkaWV1IHRyYSB2dSB2aWVjLl0gDQoNCkNvIHRoZSBiaSBwaGF0IHR1IHRvaSA1 IG5hbSANCg0KQmF0IGt5IG5ndW9pIG5hbyBjbyBuYW5nIGx1YyB0cmFjaCBuaGllbSBoaW5oIHN1 IHZhIGRhdCBkbyB0dW9pIHRoZW8gbHVhdCBkaW5oIG1hIGNvIA0KaGFuaCB2aSBwaGFtIHRvaSB4 YW0gcGhhbSBkZW4gY2hlIGRvIHF1YW4gbHkgdnUga2hpIHRobyBzbywgY29uZyBjdSBobyB0cm8g Y3VhIE5oYSANCm51b2Mgdm9pIGxvaSBjbyB5LCBjdSB0aGUgbGEgdGh1YyBoaWVuIG1vdCB0cm9u ZyBuaHVuZyBoYW5oIHZpOiBjaGUgdGFvIC0gdGFuZyB0cnUgLSB2YW4gDQpjaHV5ZW4gLSBzdSBk dW5nIC0gbXVhIGJhbiB0cmFpIHBoZXAgaGF5IGNoaWVtIGRvYXQgdnUga2hpIHRobyBzbyAoc3Vu ZyBob2ksIGN1bmcgbm8sIA0KZGFvIGdhbSwgbHVvaSBsZSwgZ2lhbywgbWFjLCBkaW5oIGJhLCBt YSB0YXUsIHF1YSBkYW0gYmFuZyBraW0gbG9haSBob2FjIHZhdCByYW4sIGNhYyBsb2FpIA0KY29u KSBob2FjIGNvbmcgY3UgaG8gdHJvIChjYWMgbG9haSByb2kgY2FvIHN1LCByb2kgZGllbiwgZGF5 IGRpZW4sIGdhbmcgdGF5IGRpZW47IGNhYyBsb2FpIA0KbHV1IGRhbiBjYXksIHN1bmcgaG9hYyBi aW5oIHhpdCBob2kgY2F5LCBuZ2F0LCBkb2MsIGdheSBtZSwgc3VuZyBiYW4gZGFuIG5odWEsIGNh byBzdTsgDQpzdW5nIHZhIGRhbiBiYW4gZGluaCwgc3VuZyBiYW4gbGFzZXIsIHN1bmcgYmFuIHR1 IHRydW9uZy4uLikgc2UgYmkgdHJ1eSBjdXUgdHJhY2ggbmhpZW0gDQpoaW5oIHN1IG5ldSBkYSBi aSB4dSBwaGF0IHZpIHBoYW0gaGFuaCBjaGluaCB2ZSBoYW5oIHZpIG5heSBob2FjIGRhIGJpIGtl dCBhbiB2ZSB0b2kgbmF5LCANCmNodWEgZHVvYyB4b2EgYW4gdGljaCBtYSBjb24gdmkgcGhhbSAo ZGlldSAyMzMgliBCbyBMdWF0IEhpbmggc3UgMTk5OSkuIA0KDQpNdWMgaGluaCBwaGF0IGN1YSB0 b2kgcGhhbSBuYXkgZHVvYyBjaGlhIHRoYW5oIGhhaSBraHVuZyB2YSBoaW5oIHBoYXQgYm8gc3Vu ZzogUGhhdCB0dSANCnR1IDMgdGhhbmcgZGVuIDIgbmFtIChhcCBkdW5nIHZvaSB0cnVvbmcgaG9w IHBoYW0gdG9pIGNvIGR1IGRhdSBoaWV1IGNhdSB0aGFuaCBjbyBiYW4pIA0KaG9hYyBwaGF0IHR1 IHR1IDEgbmFtIGRlbiA1IG5hbSAoYXAgZHVuZyBkb2kgdm9pIGNhYyB0cnVvbmcgaG9wIHBoYW0g dG9pIGNvIHRvIGNodWM7IA0KdmF0IHBoYW0gcGhhcCBjbyBzbyBsdW9uZyBsb247IHZhbiBjaHV5 ZW4gbXVhIGJhbiBxdWEgYmllbiBnaW9pOyBnYXkgaGF1IHF1YSBuZ2hpZW0gDQp0cm9uZzsgdGFp IHBoYW0gbmd1eSBoaWVtKS4gTmdvYWkgaGluaCBwaGF0IGNoaW5oLCBuZ3VvaSBwaGFtIHRvaSBj b24gY28gdGhlIGJpIHBoYXQgDQp0aWVuIHR1IDUgdHJpZXUgZG9uZyBkZW4gNTAgdHJpZXUgZG9u ZzsgcGhhdCBxdWFuIGNoZSBob2FjIGNhbSBjdSB0cnUgdHUgMSBuYW0gZGVuIDUgDQpuYW0uICAo THVhdCBzdSBMZSBOZ3V5ZW4gUXV5bmggVGhpKSANCg0KVG9tIHRhdCB2dSB2aWVjIA0KDQpOZ2F5 IDI0LTYsIGx1YyBsdW9uZyBRTFRUICAgcXVhbiBUYW4gUGh1IC0gVFBIQ00gcGhvaSBob3Agdm9p IERvaSBDU0RUIHRvaSBwaGFtIA0KdmUgdHJhdCB0dSBxdWFuIGx5IGtpbmggdGUgdmEgY2h1YyB2 dSBDb25nIGFuIHF1YW4gVGFuIFBodSwga2llbSB0cmEgdmEgcGhhdCBoaWVuIHRhaSANCkNvbmcg dHkgVE5ISCBTWC1YTksgVGFpIExhbiBBbmggKHNvIDQ4LzIvNyBMZSBWYW4gUGhhbiwgcGh1b25n IFBodSBUaG8gSG9hLCANCnF1YW4gVGFuIFBodSkgbG8gaGFuZyBxdWFuIHRyYW5nLCBxdWFuIGR1 bmcgY28gcXV5IG1vIGxvbi4gTmdvYWkgbW90IG1heSBwaGEgc29uZyANCnZhIG5oaWV1IG1hdCBo YW5nIG5odSBub24gY29pLCBub24ga2VwaSwgYmlhIHRhcCBiYW4gY3VhIHF1YW4gZG9pLi4uIEx1 YyBsdW9uZyBraWVtIHRyYSANCmN1bmcgcGhhdCBoaWVuIGhhbmcgY2h1YyBjaHVuZyBsb2FpIG1h dCBoYW5nIHF1YW4gdHJhbmcsIHF1YW4gZHVuZyBjaHVhIHRhaSB0cnUgc28gDQpDb25nIHR5IENv IHBoYW4gU1gtVE0tWE5LIFBodWMgVGhvIChzbyAwMDcgY2h1bmcgY3UgVnVvbiBMYWksIGN1bmcg Y3VhIENvbmcgdHkgDQpUYWkgTGFuIEFuaCwgZG8gb25nIFRvIFR1YW4gQW5oIGxhbSBkYWkgZGll bikuICAgIA0KDQpodHRwOi8vdnRjLnZuLzctNjAwMC9waGFwLWx1YXQvbXVhLWJhbi1kby1kdW5n LWNvbmctYW4tcXVhbi1kb2ktY29pLWNodW5nLXBoYW0tdG9pLmh0bSAoVGhlbyBDQU5EKSAwNy8w OS8yMDA2IDExOjM3IA0KDQpRdW9jIHBob25nOiBIYW5nIHF1YW4gdHJhbmcgZHVvYyBtdWEgYmFu IGNvbmcga2hhaSBvIGR1b25nIExlIER1YW4gLSBIYSBOb2kgKHRyYWkgcGhhcCBsdWF0KSANCg0K TmdoaSBkaW5oIDU5LzIwMDYvQ1AgY3VhIENoaW5oIHBodSBxdXkgZGluaCBxdWFuIHRyYW5nLCB0 cmFuZyBwaHVjLCBjb25nIGN1IGhvIHRyby4uLg0KIHRodW9jIGx1YyBsdW9uZyBDb25nIGFuIHZh IFF1YW4gZG9pIGxhIG1hdCBoYW5nIE5oYSBudW9jIGNhbSBsdXUgdGhvbmcgdHJlbiB0aGkgDQp0 cnVvbmcuIFR1eSBuaGllbiwgcXVhIGtpZW0gdHJhIDMga2lvdCB0YWkgZHVvbmcgTGUgRHVhbiwg SGEgTm9pLCBjbyBxdWFuIGNodWMgbmFuZyBkYSANCnRodSBnaXUgNDAgYmFvIGhhbmcgaG9hIGxh IGRvIGR1bmcgY3VhIGx1YyBsdW9uZyBDb25nIGFuLCBRdWFuIGRvaS4NCiANClNhbmcgNi85LCBE b2FuIGNvbmcgdGFjIGxpZW4gbmdhbmggY3VhIFRQIEhhIE5vaSBnb206IERvaSBDaG9uZyBidW9u IGxhdSBoYW5nIGNhbSAtIA0KUGhvbmcgQ1NEVCB0b2kgcGhhbSB2ZSBUVFFMS1QgdmEgQ1YgLSBD b25nIGFuIFRQIEhhIE5vaSwgY28gc3UgcGhvaSBob3AgY3VhIERvaSANClF1YW4gbHkgdGhpIHRy dW9uZyBzbyA0IHRodW9jIENoaSBjdWMgUXVhbiBseSB0aGkgdHJ1b25nIFRQIEhhIE5vaSBkYSB0 aWVuIGhhbmgga2llbSANCnRyYSBoYW5oIGNoaW5oIDMga2lvdCBzbyA5LCBzbyAxMCB2YSAxMSB0 aHVvYyBzbyAxMjIgZHVvbmcgTGUgRHVhbiwgcXVhbiBIb2FuIEtpZW0gDQooY2h1IGtpbmggZG9h bmgga2lvdCBzbyA5IHZhIDExIGxhIERvIERhbmcgVGh1eTsga2lvdCBzbyAxMCBsYSBOZ3V5ZW4g VGhpIE5nb3QpLiBDYWMgDQpobyBraW5oIGRvYW5oIGRldSBraG9uZyB4dWF0IHRyaW5oIGR1b2Mg Z2lheSB0byBkYW5nIGt5IGtpbmggZG9hbmggaG9hYyBuZ3VvbiBnb2MgDQpoYW5nIGhvYS4NCiAN ClF1YSBraWVtIHRyYSB0YWkgMyBraW90IG5heSBkYSB0aHUgZ2l1IDQwIGJhbyBoYW5nIGhvYSBn b20gcXVhbiBhbyBzaSBxdWFuIFF1YW4gZG9pIHRodSANCmRvbmcgdmEgeHVhbiBoZSAobmhpZXUg Ym8gcXVhbiBhbyBjb24gbmd1eWVuIG1hYyBDdWMgUXVhbiBuaHUgVG9uZyBjdWMgSGF1IGNhbik7 IA0KcXVhbiBhbyBzaSBxdWFuIHRodSBkb25nLCB4dWFuIGhlIGN1YSBsdWMgbHVvbmcgYW4gbmlu aDsgZ2lheSwgZGVwLCBtdSBsdW9pIHRyYWksIGR1aSBjdWkgDQpjYW8gc3UsIHRoYXQgbHVuZywg cGh1IGhpZXUsIHF1b2MgaHV5LCBjYXJhdmF0IGN1YSBsdWMgbHVvbmcgQ29uZyBhbi4gVHJvbmcg c28gaGFuZyBob2EgDQpiaSB0aHUgZ2l1LCBkYW5nIGNodSB5IGNvIGtob2FuZyB0cmVuIDQ1MCBj aGllYyBkdWkgY3VpIGNhbyBzdS4uLg0KIA0KLiBUaGVvIE5naGkgZGluaCA1OS8yMDA2L0NQIGN1 YSBDaGluaCBwaHUgcXV5IGRpbmggcXVhbiB0cmFuZywgdHJhbmcgcGh1YywgY29uZyBjdSBobyAN CnRyby4uLiB0aHVvYyBsdWMgbHVvbmcgQ29uZyBhbiB2YSBRdWFuIGRvaSBsYSBtYXQgaGFuZyBO aGEgbnVvYyBjYW0gbHV1IHRob25nIHRyZW4gdGhpIA0KdHJ1b25nLiBDYWMgaG8gdHJlbiBkYSBr aGFpIG5oYW4gdmllYyBraW5oIGRvYW5oIG5odW5nIG1hdCBoYW5nIGJpIHRodSBnaXUgbGEgdmkg cGhhbSANCnBoYXAgbHVhdC4gSGllbiBjYWMgY28gcXVhbiBjaHVjIG5hbmcgZGFuZyBkaWV1IHRy YSBsYW0gcm8gbmd1b24gaGFuZyBkbyBkYXUgbWEgY28gdGFpIDMga2lvdCBuYXkuDQpOZ29haSAz IGtpb3Qgbm9pIHRyZW4sIHZhbiBjb24ga2hhIG5oaWV1IGtpb3Qga2hhYyB0cmVuIGR1b25nIExl IER1YW4ga2luaCBkb2FuaCBuaHVuZyBtYXQgaGFuZyBOaGEgbnVvYyBjYW0gbHV1IHRob25nLiAN Cg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vQ29uZy1iby1rZXQtcXVhLWtpZW0tdG9hbi0y MDA5LU5oaWV1LXNhaS1waGFtLXRyb25nLXF1YW4tbHktZGF0LWRhaS80NS80NjMxOTg0LmVwaSA3 LzIwMTANCg0KUXVvYyBwaG9uZzogVG9uZyBjb25nIHR5IFZpZW4gdGhvbmcgUXVhbiBkb2kga2hh aSB0aHVlIHNhaSAxNjYgdHkgZG9uZyANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2Uv aW5fZGVwdGgvVmlldG5hbWVzZS1leC1zb2xkaWVycy1mYW1pbGllcy1wcm90ZXN0LWZhaWxlZC1m b3JlaWduLWxhYm91ci1kZWFsLTAzMDUyMDEwMTEyOTQ2Lmh0bWwgUkZBIDA1LjAzLjIwMTANCg0K UXVvYyBwaG9uZzogQmlldSB0aW5oIHRhaSBWaW5oIHRvIGNhbyBsYW5oIGRhbyBRdWFuIEtodSA0 IGx1YSBkYW8gDQoNCktob2FuZyAxMDAgbmd1b2kgcGhhbiBsb24gbGEgY2FjIGN1dSBibyBkb2kg ZGEgdGFwIHRydW5nIGJpZXUgdGluaCB0cnVvYyB0cnUgc28gY28gcXVhbiANClF1YW4gS2h1IDQg byB0aGFuaCBwaG8gVmluaCBuZ2F5IGhvbSBxdWEuDQoNCihBbmg6IEhvbSA0LTMtMjAxMCBob24g MTAwIG5ndW9pIHh1b25nIGR1b25nIGJpZXUgdGluaCBvIHRoYW5oIHBobyBWaW5oLCB0byBjYW8g bGFuaCBkYW8gUXVhbiBLaHUgNCBsdWEgZGFvIGNoaWVtIGRvYXQgdGFpIHNhbi4gSGluaCBkbyB0 aGluaCBnaWEgZ3VpIGRlbiBSRkEpIA0KDQpMeSBkbyBobyBkdWEgcmEgbGEgY2FjIGNhcCBsYW5o IGRhbyBxdWFuIGRvaSBvIGRheSBkYSBsYXkgdGllbiBkYXQgY29jIGN1YSBuaHVuZyBuZ3VvaSAN CmxpbmggdmEgaHVhIGhlbiBsYSBzZSBjaG8gaG8gZGkgeHVhdCBraGF1IGxhbyBkb25nIG8gbnVv YyBuZ29haSBuaHVuZyBraG9uZyB0aHVjIGhpZW4gDQpsb2kgaHVhIGRvLg0KDQpOaHVuZyBuZ3Vv aSBiaWV1IHRpbmggbm9pIHJhbmcgdGhpZXUgdGEgRGFuZyBEaW5oIFRpZW4sIFBobyB0aGFtIG11 dSB0cnVvbmcgU3UgRG9hbiANCjMyNCBkYSBodWEgdm9pIDk5IHRhbiBiaW5oIGxhIHNlIHRpbSB2 aWVjIGNobyBobyBvIE5hbSBIYW4gcXVhIG1vdCBjbyBxdWFuIHR1eWVuIGR1bmcgDQpsYW8gZG9u ZyBzYXUga2hpIGhvIGhvYW4gdGF0IG5oaWVtIHZ1IHZhbyBuYW0gMjAwOCB2YSAyMDA5Lg0KDQpP bmcgVGllbiBzYXUgZG8gZGEgZ2lvaSB0aGlldSBobyB2b2kgYmEgTmd1eWVuIFRoaSBLaW0gSG9h LCBnaWFtIGRvYyBjbyBzbyB0dXllbiANCmR1bmcgdmEgeWV1IGNhdSBobyBkYXQgY29jLCB2b2kg dG9uZyBzbyB0aWVuIGxlbiBkZW4gNSw0IHR5IGRvbmcsIHR1b25nIGR1b25nIDI5MCwwMDAgZG8g DQpsYS4gQ2hhIGN1YSBtb3QgbmFuIG5oYW4gY2hvIGJpZXQgbW9pIGdpYSBkaW5oIHBoYWkgbm9w IGNobyBUaWVuIHZhIEhvYSBsYSAxMjAgdHJpZXUgDQpkb25nLg0KDQooQW5oOiBOaHVuZyBuZ3Vv aSBiaWV1IHRpbmggdG8gY2FvIGhvIGJpIGx1YSBkYW8gZGkgeHVhdCBraGF1IGxhbyBkb25nLiBI aW5oIGRvIHRoaW5oIGdpYSBndWkgZGVuIFJGQSkgIA0KDQpNb3Qgbmd1b2kga2hhYyBub2kgcmFu ZyAgaG8gZGEgYmlldSB0aW5oIHZhbyBuYW0gbmdvYWkgdHJ1b2MgdHJ1IHNvIGN1YSBzdSBkb2Fu IDMyNCBvIA0KRG8gTHVvbmcgbmh1bmcga2hvbmcgIG5oYW4gZHVvYyBwaGFuIGhvaS4gDQoNClZp IHRoZSBjYWMgZ2lhIGRpbmggcXV5ZXQgZGluaCB0YXAgdHJ1bmcgYmlldSB0aW5oIHRydW9jIHRy dSBzbyBRdWFuIEtodSA0IG8gdGhhbmggcGhvIA0KVmluaC4gTmh1bmcgbmd1b2kgYmlldSB0aW5o IGN1bmcgZGEgZ3VpIGRvbiBraGlldSBuYWkgZGVuIENodSB0aWNoIG51b2MgdmEgQm8gUXVvYyAN CnBob25nIG5odW5nIHZhbiBjaHVhIGR1b2MgZ2lhaSBxdXlldC4NCg0KWSBraWVuIGJhbiBkb2M6 IA0KTmd1eWVuIFRoYWkgTmluaCAwNS8wMy8yMDEwIDIyOjM5LCBub2kgZ3VpIFZ1bmcgdGF1Og0K VGh1b25nIHRoYXkgY2FjIGRvbmcgZG9pIGN1YSB0b2kgc2F1IG1heSBuYW0gcGh1YyB2dSBxdWFu IG5ndSwgZ2lvIGRheSB2b2kgaHkgdm9uZyBkaSANCnh1YXQga2hhdSBsYW8gZG9uZyBkZSB0aG9h dCBuZ2hlby4gVnUgbmF5IG5ldSB4dSBraG9uZyBraGVvIGhhdSBxdWEgc2Uga2hvbmcgbHVvbmcs IA0KdmkgdHUgbmF5IHZpZWMgbWF0IGRhdCBkYWkgdmEgbmhpZXUgb2FuIGtodWF0IGtoYWMgbnVh IGN1bmcgc2UgYmkgbmhhbiBkYW4gYmlldSB0aW5oIHBoYW4gZG9pLg0KDQooaHR0cDovL3d3dy55 b3V0dWJlLmNvbS93YXRjaD92PXJWWmhWX01yU0ZVDQpDbGlwIGJpZXUgdGluaCB0YWkgVmluaCB0 byBjYW8gbGFuaCBkYW8gUXVhbiBLaHUgNCBsdWEgZGFvKSANCg0KaHR0cDovL3RpbnR1Yy54YWxv LnZuLzAwMTY2Nzg3NzI4Ni9IYV9Ob2lfTW90X3F1YW5fbmhhbl9kYXBfdHVfbGF5X3N1bmdfQUtf NTAwX3ZpZW5fZGFuLmh0bWwgMTEvMjAxMCANCg0KUXVvYyBwaG9uZzogUXVhbiBuaGFuIGRhcCB0 dSBsYXkgc3VuZyBBSywgNTAwIHZpZW4gZGFuIA0KDQpTdSB2aWVjIHhheSByYSB2YW8gc2FuZyBu YXksIDE2LzExIGtoaSBtb3QgY2hpZW4gc2kgdmUgYmluaCBUcnVuZyBkb2FuIDE0MSBkb25nIHRh aSBkaWEgDQpiYW4gaHV5ZW4gU29jIFNvbiAoSGEgTm9pKSBwaGEgdHUgdnUga2hpLCBsYXkgZGkg MSBraGF1IHN1bmcgQUsgdmEgNTAwIHZpZW4gZGFuLg0KDQpUaG9uZyB0aW4gYmFuIGRhdSB0dSBj byBxdWFuIGNvbmcgYW4sIGtob2FuZyA2aDMwIG5nYXkgMTYvMTEsIENvbmcgYW4gaHV5ZW4gU29j IFNvbiANCm5oYW4gdGluIGJhbyB2ZSB2aWVjIG1vdCBjaGllbiBzaSB2ZSBiaW5oIHRhaSBUcnVu ZyBkb2FuIDE0MSBTdSBkb2FuIDMxMiBkb25nIHRhaSBWZSANCkxpbmgsIHhhIFBodSBOaW5oLCBT b2MgU29uIGRhIHBoYSB0dSB2dSBraGksIGxheSBkaSAxIGtoYXUgc3VuZyBBSyB2YSA1MDAgdmll biBkYW4uIA0KQnVvYyBkYXUgbGFtIHJvLCBxdWFuIG5oYW4gbmF5IGxhIFRyYW4gVmFuIExpbmgg KFNOIDE5OTEsIG8geG9tIDEyLCB0aG9uIEtpbSBUYW4sIEtpbSBTb24sIEhvYSBCaW5oKS4gDQoN CkRlIG1hbmcgdGhlbyBkdW9jIHNvIGRhbiBkdW9jIG5heSwgTGluaCBkYSBkdW5nIDUwMCB2aWVu IGRhbiB0cm9uZyBtb3QgeG8gdmEgY2hheSB0cm9uIGtob2kgZG9uIHZpLg0KDQpRdWEgbmd1b24g dGluIHRyaW5oIHNhdCwgY28gcXVhbiBjb25nIGFuIHhhYyBkaW5oIHNhdSBraGkgdHUgZG9uIHZp IHJhIHRvaSB0aG9uIFBodSBNYSwgDQp4YSBQaHUgTmluaCwgZG9pIHR1b25nIG5heSBiYW4gNCBo b2FjIDUgcGhhdCBzdW5nIGNoaSB0aGllbiByb2kgdGllcCB0dWMgYm8gdHJvbi4gSGllbiANCkNB IGh1eWVuIFNvYyBTb24gcGhvaSBob3AgQ28gcXVhbiBDU0RUIGhpbmggc3UgdGh1b2MgU3UgZG9h biAzMTIgdG8gY2h1YyB0cnV5IHRpbSBUcmFuIFZhbiBMaW5oLiANCg0KaHR0cDovL3ZpZXRiYW8u dm4vWGEtaG9pL0tpZW0tc29hdC1xdWFuLXN1LWN1b25nLWRvYXQtdGllbi1jdWEtcXVhbi1uaGFu LzMwMTIwMDE0LzE1Ny8gTWluaCBIYSAyOC81LzIwMDYsIDE3OjAwIEdNVCs3IA0KDQpRdW9jIHBo b25nOiBLaWVtIHNvYXQgcXVhbiBzdSBjdW9uZyBkb2F0IHRpZW4gY3VhIHF1YW4gbmhhbiANCg0K VHJvbmcga2hpIGxhbSBuaGllbSB2dSB0YWkgYmVuIHhlIEdpYSBMYW0sIGtpZW0gc29hdCB2aWVu IHF1YW4gc3UgUGhhbiBUaGFuaCBOZ2hpIA0KKFNOIDE5ODIpIHBoYXQgaGllbiBtb3QgcXVhbiBu aGFuIHZpIHBoYW0gZGlldSBsZW5oIHF1YW4gZG9pIG5lbiBkYSAidHJhbmggdGh1IiBkb2EgDQpu YXQgdGltIGNhY2ggY3VvbmcgZG9hdCB0aWVuLg0KDQpWdSB2aWVjIHhheSByYSBuZ2F5IDI2LzUs IHZhIE5naGkgZGEgYmkgY29uZyBhbiBwaHVvbmcgR2lhIFRodXkgYmF0IHF1YSB0YW5nIGtoaSBk dWEgDQpxdWFuIG5oYW4gdmkgcGhhbSBsYSBiaW5oIG5oYXQgTmd1eWVuIFRyb25nIFRoaWV1IHZh byBuaGEgdmUgc2luaCwgeWV1IGNhdSBub3AgcGhhdCANCjEwMCBuZ2hpbiBkb25nIChUaGlldSBj aGkgY28gNTAgbmdoaW4gZG9uZykuDQoNCkNvbmcgYW4gcGh1b25nIEdpYSBUaHV5IGRhIGxhcCBo byBzbyB2dSB2aWVjIGNodXllbiBjbyBxdWFuIEtpZW0gc29hdCBxdWFuIHN1IHF1YW4ga2h1IFRo dSBkbyB4dSBseS4NCg0KaHR0cDovL3RpbjM2NS5pbmZvLzIwMTAvMDEvMTkvYiVFMSVCQSVBRnQt Y29jLWNvbi10aW4tJUUxJUJCJTlGLWh1JUUxJUJBJUJGLyAxOS0wMS0yMDEwIA0KDQpRdW9jIHBo b25nOiBUaWV1IGRvaSB0cnVvbmcgYmF0IGNvYyBjb24gdGluIChvIEh1ZSkgDQoNCmh0dHA6Ly90 aW50dWMudGltbmhhbmguY29tL3BoYXBfbHVhdC8yMDA4MDUxMS8zNUE3ODQ2Qi8gMTEvMDUvMjAw OCAwOTo1Mjo1NiANCg0KUXVvYyBwaG9uZzogVnUgc2FpIHBoYW0gbyBUcnVvbmcgVGhpZXUgc2lu aCBxdWFuIGRhbiB0b2MgUXVhbiBraHUgNSAtIENhYyBiaSBjYW8gZGV1IA0KZHVvYyBodW9uZyBh biB0cmVvIJYgRHUgbHVhbiBraG9uZyBkb25nIHRpbmggDQoNClNhdSBoYWkgbmdheSB4ZXQgeHUs IHNhbmcgbmdheSAxMC01LCBUb2EgYW4gUXVhbiBzdSBRdWFuIGtodSA1IGRhIHR1eWVuIHBoYXQg YmkgY2FvIExlIA0KVmFuIE1pbmggKG5ndXllbiBoaWV1IHRydW9uZyBUcnVvbmcgVGhpZXUgc2lu aCBxdWFuIGRhbiB0b2MgUXVhbiBraHUgNSkgMzYgdGhhbmcgdHU7IA0KUGhhbiBUaGFuaCBOaGFt IChuZ3V5ZW4gcGhvIGNoaSBodXkgdHJ1b25nIHZlIGNoaW5oIHRyaSwgYm8gY2hpIGh1eSBCbyBk b2kgYmllbiANCnBob25nIHRpbmggR2lhIExhaSkgMjQgdGhhbmcgdHUuIA0KDQpOZ3V5ZW4gVGhh bmggQ29uZyAobmd1eWVuIHRydW9uZyBiYW4gZGFvIHRhbykgMzAgdGhhbmcgdHU7IFBoYW0gUXVv YyBDaGluaCANCihuZ3V5ZW4gcGhvIGJhbiBkYW8gdGFvKSAzMCB0aGFuZyB0dTsgTmd1eWVuIFZh biBUaGFuaCAobmd1eWVuIHBobyBraG9hIGdpYW8gdmllbikgDQoyOCB0aGFuZyB0dTsgTmd1eWVu IFF1YW5nIFR1YW4gKG5ndXllbiBjYW4gYm8gYm8gY2hpIGh1eSBRdWFuIHN1IHRpbmggR2lhIExh aSkgMTggDQp0aGFuZyB0dSwgVnUgUXVhbmcgVGhpZXUgKG5ndXllbiBjYW4gYm8gYm8gY2hpIGh1 eSBCbyBkb2kgYmllbiBwaG9uZyB0aW5oIEdpYSBMYWkpIDE1IA0KdGhhbmcgdHUgdmEgRHVvbmcg VmFuIE5naGllcCAobmd1eWVuIGNhbiBibyBibyBjaGkgaHV5IEJvIGRvaSBiaWVuIHBob25nIHRp bmggR2lhIA0KTGFpKSAxOCB0aGFuZyB0dSwgY3VuZyB2ZSB0b2kgImxvaSBkdW5nIGNodWMgdnUg cXV5ZW4gaGFuIHRyb25nIGtoaSB0aGkgaGFuaCBjb25nIHZ1IiwgdGF0IA0KY2EgY2FjIGJpIGNh byBkZXUgZHVvYyBjaG8gaHVvbmcgYW4gdHJlby4gDQoNClRvYSBjb24gYXAgZHVuZyBoaW5oIHBo YXQgcGh1IGNhbSBkYW0gbmhpZW0gY2h1YyB2dSBkb2kgdm9pIGNhYyBiaSBjYW8gdmEgdGljaCB0 aHUgDQpzdW5nIGNvbmcgcXV5IHRvbmcgc28gdGllbiBob24gOTAwIHRyaWV1IGRvbmcgZGEgdGh1 IHRyYWkgcGhlcCBjdWEgY2FjIGhvYyB2aWVuIHRyb25nIA0KcXVhIHRyaW5oIGR1IHRoaS4gDQoN Ck1vdCB2dSBhbiBraGFjIGN1bmcgbGllbiBxdWFuIGRlbiB2aWVjIGhvcCBseSBob2EgaG8gc28g Y2hvIDI3NiBuZ3VvaSBraG9uZyBwaGFpIHF1YW4gDQpuaGFuIGR1b2MgbG90IHZhbyBkdSB0aGkg byBUcnVvbmcgVGhpZXUgc2luaCBxdWFuIGRhbiB0b2MgUXVhbiBraHUgNSwgY2hpZXUgMTAtNSwg VG9hIA0KYW4gUXVhbiBzdSBRdWFuIGtodSA1IGRhIGR1YSByYSB4ZXQgeHUgdmEgdHV5ZW4gcGhh dCBiaSBjYW8gTmd1eWVuIFZhbiBEdW9uZyANCihuZ3V5ZW4gVHJ1b25nIHBob25nIFRvIGNodWMg bGFvIGRvbmcgdGllbiBsdW9uZyBCaW5oIGRvYW4gMTUpIG11YyBhbiAxNSB0aGFuZyB0dSB2ZSAN CnRvaSAibG9pIGR1bmcgY2h1YyB2dSBxdXllbiBoYW4gdHJvbmcga2hpIHRoaSBoYW5oIGNvbmcg dnUiLCBuaHVuZyBjaG8gaHVvbmcgYW4gdHJlby4gDQoNClZpZWMgaG9wIGx5IGhvYSBobyBzbyBj aG8gMi4zNTUgdHJ1b25nIGhvcCBjYW4gYm8sIGdpYW8gdmllbiwgaG9jIHNpbmggLi4uYmVuIG5n b2FpIA0KKGtob25nIHBoYWkgbGEgcXVhbiBuaGFuKSB2YW8gdGhpIHRyYWkgcGhlcCBvIFRydW9u ZyBUaGlldSBzaW5oIHF1YW4gZGFuIHRvYyBRdWFuIGtodSA1IA0KdHJvbmcgbmhpZXUgbmFtIGxp ZW4gdm9pIG11YyBkaWNoIHRodSBsb2kgY2hvIG5oYSB0cnVvbmcgdmEgY2EgbmhhbiBsYSBwaGFt IHRvaSByYXQgDQpuZ2hpZW0gdHJvbmcuIFRoZW8gZGlldSAyODEgQm8gbHVhdCBoaW5oIHN1LCBo YW5oIHZpIHBoYW0gdG9pIGN1YSBjYWMgYmkgY2FvIHRyZW4gZGV1IGJpIA0KdHJ1eSB0byBvIGto b2FuIDIgdmEgbXVjIGFuIHRoYXAgbmhhdCB0dSA1IG5hbSB0dSB0cm8gbGVuIG5odW5nIFRvYSBh biBRdWFuIHN1IFF1YW4gDQpraHUgNSBjaGkgdHV5ZW4gcGhhdCBjYWMgYmkgY2FvIGR1b2kga2h1 bmcgaGluaCBwaGF0IHRoYXAgbmhhdCB2YSBkZXUgY2hvIGh1b25nIGFuIHRyZW8uIA0KTmdvYWkg cmEsIGN1bmcgbGllbiBxdWFuIGRlbiBkdW9uZyBkYXkgaG9wIGx5IGhvYSBobyBzbyBxdWFuIG5o YW4gY2hvIGtob2FuZyA4MDAgDQp0cnVvbmcgaG9wIGRlIGR1IHRoaSBuaHVuZyBjbyBxdWFuIGRp ZXUgdHJhIGhpbmggc3UgUXVhbiBkb2FuIDMgZGEgZGluaCBjaGkgZGlldSB0cmEsIA0Ka2hpZW4g ZHUgbHVhbiBraG9uZyBkb25nIHRpbmguICANCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3My MC0zNjE1NDQvUm9pLW1heS1iYXktcXVhbi1zdS1oYWktcGhpLWNvbmctaHktc2luaC5odG0gMTMv MTEvMjAwOSAtIDA3OjU3IA0KDQpRdW9jIHBob25nOiBSb2kgbWF5IGJheSBxdWFuIHN1IG8gWWVu IEJhaSAgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDEwLzA1LzNCQTFDNjY4 LyAzMC81LzIwMTAsIDAwOjQ1IEdNVCs3DQoNClF1b2MgcGhvbmc6IE5vIG1heSBiYXkgcXVhbiBz dSBvIEJpbmggRGluaA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8wNy8z QkExREQyNS8gNy83LzIwMTAsIDIxOjM2IEdNVCs3DQogDQpRdW9jIHBob25nOiBSb2kgbWF5IGJh eSBxdWFuIHN1IG8gbmdvYWkgdGhhbmggSGEgTm9pIA0KDQotDQpodHRwOi8vd3d3LmJiYy5jby51 ay92aWV0bmFtZXNlL3dvcmxkbmV3cy9zdG9yeS8yMDA3LzEwLzA3MTAyM19wYXJhY2VsdG91cmlz bS5zaHRtbCAyMy8xMC8yMDA3IC0gMTRoNTYgR01UDQoNClRydW5nIFF1b2MgbW8gcm9uZyBkdSBs aWNoIEhvYW5nIFNhDQoNCkN1YyBEdSBsaWNoIHRpbmggSGFpIE5hbSAoVHJ1bmcgUXVvYykgbW9p IHRob25nIHF1YSBtb3QgZHUgYW4gcGhhdCB0cmllbiBkdSBsaWNoIA0KbyBraHUgdnVjIGJpZW4g ZG9uZywgdHJvbmcgZG8gY28gcXVhbiBkYW8gSG9hbmcgU2EuDQoNClRyZW4gdGh1YyB0ZSwgVHJ1 bmcgUXVvYyBiYXQgZGF1IHRpZW4gaGFuaCBjYWMgdG91ciB0aGFtIHF1YW4gdGFpIGRvIG1vdCB2 YWkgDQpuYW0gdHJ1b2MgdmEgc3UgZHVuZyB0YXUgdGh1eWVuIHF1YW4gc3UgZGUgdmFuIGNodXll biBkdSBraGFjaC4NCg0KVG8gTmhhdCBiYW8gTGFvIGRvbmcgY3VuZyB0cmljaCBsb2kgbW90IHF1 YW4gY2h1YyBjaGluaCBwaHUgVHJ1bmcgUXVvYyBub2kgDQpyYW5nIGR1IGxpY2ggc2UgbWFuZyBs YWkgbmh1bmcgbG9pIGljaCBraW5oIHRlIGxvbiBjaG8gSG9hbmcgU2EgY3VuZyBuaHUgDQpjdW5n IGNvIGNodSBxdXllbiBjdWEgVHJ1bmcgUXVvYyBkb2kgdm9pIHF1YW4gZGFvIG5heS4uIA0KDQpo dHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDA1L1RhdS1jYS1WaWV0LU5hbS1sYWkt YmktdGF1LVRydW5nLVF1b2MtYmF0LWdpdS05MDgyNjAvMTQ6NTMsIDA2LzA1LzIwMTAgKEdNVCs3 KQ0KDQpUYXUgY2EgVmlldCBOYW0gbGFpIGJpIHRhdSBUcnVuZyBRdW9jIGJhdCBnaXUgDQoNClRy ZW4gdGF1LCBuZ29haSB0aHV5ZW4gdHJ1b25nIERhbmcgVGFtIGNvbiBjbyAxMSB0aHV5ZW4gdmll biBkZXUgdHJ1IHRhaSBjYWMgeGEgY3VhIA0KaHV5ZW4gQmluaCBTb24sIFF1YW5nIE5nYWkuIEto aSB0YXUgb25nIFRhbSBiaSBiYXQgZ2l1LCB0b2FuIGJvIHNvIGhhaSBzYW4gZGFuaCBkdW9jIA0K Y3VuZyBwaHVvbmcgdGllbiBtYXkgbW9jIGJpIGN1b3Agc2FjaC4gDQoNCmh0dHA6Ly92aXRpbmZv LmNvbS52bi9NTXVjdGluL1F1YW5zdS9USFNLL0xBNzcxMjEvZGVmYXVsdC5odG1sIDI3LzA1LzIw MTAsIDIyOjQ3KEdNVCs3KSBDYW8gUGhvbmcgKHRoZW8gVEhYKQ0KDQpUcnVuZyBRdW9jIHR1IHkg bGFwIGRhdCB0cmFtIGRpZW4gdGhvYWkgZGkgZG9uZyB0cmVuIGRhbyBDaHUgVGhhcCBjdWEgVmll dCBOYW0gDQoNClZpZWMgVHJ1bmcgUXVvYyB0dSB5IGxhcCBkYXQgdGhpZXQgYmkgdmllbiB0aG9u ZyB0cmVuIGRhbyBDaHUgVGhhcCANCnRodW9jIGNodSBxdXllbiBsYW5oIGhhaSBWaWV0IE5hbSBs YSBtb3QgaGFuaCBkb25nIHNhaSB0cmFpLCB2aSBwaGFtIA0KbmdoaWVtIHRyb25nIGNodSBxdXll biB0cmVuIGJpZW4gY3VhIFZpZXQgTmFtLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDYwMDE4MTIuYXNweCAwNi8wOC8yMDEwIDA6MTggDQoN ClRydW5nIFF1b2MgdGllbiBoYW5oIGtoYW8gc2F0IGRpYSBjaGFuIHRhaSBraHUgdnVjIGRhbyBU cmkgVG9uICh0aHVvYyBxdWFuIGRhbyBIb2FuZyANClNhKSwgc2FuIGxhcCwgbW8gcm9uZyBkYW8g VHJpIFRvbiANCg0KVHUgY3VvaSB0aGFuZyA1LjIwMTAgZGVuIG5heSwgcGhpYSBUUSBkYSBzdSBk dW5nIHRhdSBraGFvIHNhdCBNL1YgV2VzdGVybiBTcGlyaXQgY3VuZyANCm5oaWV1IHRhdSBiYW8g dmUgdGllbiBoYW5oIGtoYW8gc2F0IGRpYSBjaGFuIHRhaSBraHUgdnVjIGRhbyBUcmkgVG9uLCBx dWFuIGRhbyBIb2FuZyBTYSANCnZhIHRhaSBjYWMgbG8gZGF1IGtoaSAxNDEsIDE0MiB2YSAxNDMg dHJlbiB0aGVtIGx1YyBkaWEgVk4sIGNhY2ggZGFvIEx5IFNvbiwgdGluaCBRdWFuZyANCk5nYWkg a2hvYW5nIDkwLTExNiBoYWkgbHkuIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9UaGUtZ2lv aS8yMDEwLzA0LzNCQTFCMzM0LyAyNi80LzIwMTAsIDA5OjIwIEdNVCs3DQoNClRydW5nIFF1b2Mg dHVhbiB0cmEgdGh1b25nIHh1eWVuIG8gVHJ1b25nIFNhDQoNCkNvIHF1YW4gcXVhbiBseSBuZ3Ug bmdoaWVwIFRydW5nIFF1b2MgaG9tIHF1YSBjaG8gYmlldCBkYSBiYXQgZGF1IHZpZWMgdHVhbiB0 cmEgDQp0aHVvbmcgeHV5ZW4gbyBraHUgdnVjIHF1YW4gZGFvIFRydW9uZyBTYSBjdWEgVmlldCBO YW0uDQoNCld1IFpodWFuZywgZ2lhbSBkb2MgY3VjIHF1YW4gbHkgbmdoZSBjYSBvIEJpZW4gRG9u ZywgdGh1b2MgQm8gTm9uZyBuZ2hpZXAgVHJ1bmcgDQpRdW9jLCBjaG8gYmlldCBobyB2dWEgZHVh IGhhaSB0YXUgTmd1IGNoaW5oIDMwMSB2YSAzMDIgZGVuIHRoYXkgdGhlIGNobyBoYWkgdGF1IHNv IGhpZXUgDQozMTEgdmEgMjAyLiBDYWMgY3VvYyB0dWFuIHRyYSB0aHVvbmcgeHV5ZW4gZGEgYmF0 IGRhdSB0dSBkYXUgdGhhbmcgNCwgdGFpIGtodSB2dWMgcXVhbiANCmRhbyBUcnVvbmcgU2EsIFd1 IG5vaS4gDQoNCld1IG5vaSBjYWMgdGF1IG5heSBkdW9jIGRpZXUgZGkgZGUgaG8gdG9uZyB0YXUg dGh1eWVuIGRhbmggY2EgY3VhIG5ndSBkYW4gVHJ1bmcgUXVvYyANCnRyZW4gQmllbiBEb25nLCB2 YSAia2hhbmcgZGluaCBxdXllbiBkYW5oIGJhdCB0cmVuIHZ1bmcgYmllbiIgcXVhbmggVHJ1b25n IFNhLiANCg0KKEFuaDogVGF1IG5ndSBjaGluaCAzMTEgY3VhIFRydW5nIFF1b2MgY28gdGFpIHRy b25nIDQuNTAwIHRhbiwgdHVuZyBsYSBtb3QgdGF1IGNoaWVuISkgICANCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ1LzIwMTAxMTA0MDAxNDMwLmFzcHggVHJv bmcgS2hhIDA0LzExLzIwMTAgNjoyMCANCg0KVHJ1bmcgUXVvYyB0YXAgdHJhbiB0cmVuIGJpZW4g RG9uZyAgDQogIA0KU2F1IGN1b2MgdGFwIHRyYW4gZHVvYyBkdWEgdGluIGdhbiBkYXkgbmhhdCBo b2kgdGhhbmcgNywgVHJ1bmcgUXVvYyBsYWkgdnVhIHRodWMgaGllbiANCmRpZW4gdGFwIGxvbiB0 cmVuIGJpZW4gRG9uZyAoa2hvbmcgcGhhaSBiaWVuIEhvYSBEb25nIC0gTlYpLiANCg0KUXVhbiBk b2kgZ2lhaSBwaG9uZyBuaGFuIGRhbiBUcnVuZyBRdW9jIChQTEEpIGRhIHRodWMgaGllbiBtb3Qg Y3VvYyB0YXAgdHJhbiBiYW4gZGFuIA0KdGhhdCBxdXkgbW8gbG9uIG1hbmcgdGVuIEdpYW8gTG9u ZyAyMDEwIG8gYmllbiBEb25nIGhvbSAyLjExLCBuaHVuZyBkZW4gaG9tIHF1YSANCnRydXllbiB0 aG9uZyBudW9jIG5heSBtb2kgZHVhIHRpbi4gVGhlbyB0byBHbG9iYWwgVGltZXMsIGN1b2MgdGFw IHRyYW4gZGllbiByYSB0cmVuIGJpZW4gDQpsYW4gdHJlbiBibyB2b2kgc3UgdGhhbSBnaWEgY3Vh IGtob2FuZyAxLjgwMCBiaW5oIHNpIGN1bmcgaXQgbmhhdCAxMDAgdGF1IGNoaWVuLCB0YXUgZG8g DQpibywgdGF1IG5nYW0gdmEgbWF5IGJheS4gVHJ1eWVuIHRob25nIFRydW5nIFF1b2Mga2hvbmcg ZHVhIHJvIHZpIHRyaSBjaGluaCB4YWMgY3VhIA0KY3VvYyB0YXAgdHJhbiBuaHVuZyB0aGVvIEFQ LCBsdWMgbHVvbmcgbGluaCB0aHV5IGRhbmggYm8gY3VhIFBMQSBkYSBkaWVuIHRhcCBkb2MgYm8g DQpiaWVuIGN1YSBkYW8gSGFpIE5hbS4gVGhlbyBHbG9iYWwgVGltZXMsIHF1YW4gc2F0IGRvdCBk aWVuIHRhcCBuZ29haSBjYWMgcXVhbiBjaHVjIA0KY3VhIEJvIFF1b2MgcGhvbmcgVHJ1bmcgUXVv YywgY29uIGNvIDIwMCBkdSBob2Mgc2luaCB0dSA0MCBudW9jIGtoYWMgbmhhdSBkYW5nIGhvYyAN CnRhaSBjYWMgdHJ1b25nIHF1YW4gc3UgbyBudW9jIG5heS4NCg0KKFRhdSBjaGllbiBUcnVuZyBR dW9jIHRhcCB0cmFuIHRyZW4gYmllbiBEb25nIC0gQW5oOiBjaGluYW5ld3MuY29tKQ0KDQpHbG9i YWwgVGltZXMgZGFuIGxvaSBtb3Qgc2kgcXVhbiBnaWF1IHRlbiBjaG8gYmlldCBjdW9jIHRhcCB0 cmFuIG5oYW0gcGhvIHRydW9uZyBraGEgDQpuYW5nIGN1YSBsdWMgbHVvbmcgbGluaCB0aHV5IGRh bmggYm8gY3VhIFBMQSwgZG9uZyB0aG9pIGhvYyB0YXAga2luaCBuZ2hpZW0gdHUgY2FjIA0KbnVv YyBraGFjLiBUdXkgbmhpZW4sIGdpb2kgcXVhbiBzYXQgY28gbmh1bmcgcGhhbiB0aWNoIHRyYWkg bmd1b2MgdmUgbXVjIGRpY2ggdGhhdCBzdSANCmN1YSBzdSBraWVuIG5heS4gVGhlbyBtb3Qgc28g bmhhIHBoYW4gdGljaCwgY3VuZyBuaHUgY3VvYyB0YXAgdHJhbiBob2kgdGhhbmcgNywgZG90IA0K ZGllbiB0YXAgbGFuIG5heSBuaGFtIHBoYW4gdW5nIHN1IGhpZW4gZGllbiBjdWEgTXkgdHJvbmcg a2h1IHZ1Yy4gQmFjIEtpbmggdmFuIGx1b24gDQpwaGFuIGRvaSBraWNoIGxpZXQgbmh1bmcgdHV5 ZW4gYm8gY3VhIE5nb2FpIHRydW9uZyBNeSBIaWxsYXJ5IENsaW50b24gdmUgdmFuIGRlIA0KdHJh bmggY2hhcCB0YWkgYmllbiBEb25nIGN1bmcgbmh1IGNhbmcgdGhhbmcgZ2FuIGRheSBnaXVhIFRy dW5nIFF1b2MgdmEgTmhhdCBCYW4uIA0KDQoiRGF5IGxhIG1vdCBjdW9jIHRhcCB0cmFuIGJpbmgg dGh1b25nIG5odW5nIG5vIGN1bmcgZHVhIHRyZW4gdGluaCBoaW5oIGdhbiBkYXkgdHJvbmcgDQpr aHUgdnVjIiwgR2xvYmFsIFRpbWVzIGRhbiBsb2kgY2h1eWVuIGdpYSB2ZSBoYWkgcXVhbiBMeSBU aWV0IHRhaSBCYWMgS2luaCBub2ksICJUcnVuZyANClF1b2MgbXVvbiBjaG8gdGhheSBzdWMgbWFu aCBjdWEgaGFpIHF1YW4iLiBUcm9uZyBraGkgZG8sIG9uZyBUb25nIFRpZXUgUXVhbiwgbW90IA0K bmhhIGJpbmggbHVhbiAiY2hpbmggdGhvbmciIHRodW9uZyB4dWF0IGhpZW4gdHJlbiB0cnV5ZW4g aGluaCBxdW9jIGdpYSBUcnVuZyBRdW9jLCBiYWMgDQpibyBuaHVuZyBuaGFuIGRpbmggdHJlbi4g IkRheSBjaGkgbGEgZG9uZyB0aGFpIGJpbmggdGh1b25nIG5oYW0ga2llbSB0cmEga2hpIHRhaSBx dWFuIA0Kc3UgdmEgbmFuZyBsdWMgY2hpZW4gZGF1Iiwgb25nIFRvbiBub2kgdm9pIHRvIFRoZSBO ZXcgWW9yayBUaW1lcy4NCg0KVHJvbmcga2hpIGRvLCB0YWkgSG9pIG5naGkgQ2FwIGNhbyBBU0VB TiAxNyB2YSBIb2kgbmdoaSBDYXAgY2FvIERvbmcgQSB2dWEgZGllbiByYSANCnRhaSBIYSBOb2ks IGNhYyBiZW4gbGllbiBxdWFuIGRldSBjYW0ga2V0IGdpYWkgcXV5ZXQgdHJhbmggY2hhcCBvIGJp ZW4gRG9uZyBiYW5nIA0KYmllbiBwaGFwIGhvYSBiaW5oIGR1YSB0cmVuIGx1YXQgcGhhcCBxdW9j IHRlLCBkYWMgYmlldCBsYSBDb25nIHVvYyBMSFEgdmUgTHVhdCBCaWVuIA0KbmFtIDE5ODIuIENh YyBudW9jIGtoYW5nIGRpbmggdG9uIHRyb25nIFR1eWVuIGJvIHZlIGNhY2ggdW5nIHh1IGN1YSBj YWMgYmVuIG8gYmllbiBEb25nIA0KdmEgeHVjIHRpZW4gaGluaCB0aGFuaCBCbyBxdXkgdGFjIHVu ZyB4dSBvIGJpZW4gRG9uZy4gDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2Uvdmll dG5hbS9zdG9yeS8yMDA3LzA3LzA3MDcxOV9zdGltZXNfc3ByYXRseXMuc2h0bWwgMTkvNy8yMDA3 IDE5aDI1IEdNVCBCYWkgY3VhIFJvZ2VyIE1pdHRvbiBkYW5nIHRyZW4gYmFvIFRoZSBTdHJhaXRz IFRpbWVzLCBTaW5nYXBvcmUgDQoNCkRpZW4gYmllbiBtb2kgdGFpIFRydW9uZyBTYQ0KDQpDYW5n IHRoYW5nIGRhbmcgZGFuZyBsZW4gZ2l1YSBUcnVuZyBRdW9jIHZhIFZpZXQgTmFtIHh1bmcgcXVh bmggcXV5ZW4ga2llbSANCnNvYXQgcXVhbiBkYW8gVHJ1b25nIFNhIChTcHJhdGx5cykgc2F1IGto aSBsYWkgeGF5IHJhIG1vdCB2dSBkdW5nIGRvIGJhbyBsdWMgbnVhIA0KdHJvbmcga2h1IHZ1YyBu Z29haSBraG9pIGdpYXUgZGF1IGx1YSBuYXkuDQoNClRhdSBoYWkgcXVhbiBUcnVuZyBRdW9jIGhv bSA5LzcgZGEgbmEgc3VuZyB2YW8gbW90IHNvIHRodXllbiBkYW5oIGNhIGN1YSBuZ3UgDQpkYW4g VmlldCBOYW0gdHJvbmcgdnVuZyBiaWVuIGdhbiBUcnVvbmcgU2EsIGNhY2ggVFAgSG8gQ2hpIE1p bmggMzUwa20uDQpDYWMgbmd1b24gdGluIHF1YW4gc3Ugbm9pIG5nYXkgOS83IGhhaSB0YXUgY2hp ZW4gY28gZG9uZyBCUFMtNTAwIGN1YSBWaWV0IE5hbSANCmRvIE5nYSB0aGlldCBrZSBkYSB2b2kg dmEgZGVuIGhpZW4gdHJ1b25nIG5odW5nIHBoYWkgZHVuZyB0dSB4YSB2aSBob2EgbHVjIHF1YSBt YW5oIHR1IHRhdSBUcnVuZyBRdW9jLiANCg0KaHR0cDovL215Lm9wZXJhLmNvbS9Bby1UcmFuZy1P aS9ibG9nL3Nob3cuZG1sLzE0NjcyMTEyIA0KDQpOZW4gdW5nIGhvIHBob25nIHRyYW8gaW4ga2hh dSBoaWV1IEhTLlRTLlZOIChuZ2FuIGNhbiB2aWVjIGxhbSB5ZXUgbnVvYyBsYSB0cmFpIGRhbyBs eSkgDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2UvdmlldG5hbS8yMDEwLzEwLzEw MTAyOV9jaGluYV92aWV0bmFtX3Njcy5zaHRtbCAwODo1OCBHTVQgLSAyOS8xMC8yMDEwIA0KDQpW aWV0LVRydW5nIGJhbiB2ZSBCaWVuIERvbmcgdHJvbmcga2hpIFRydW5nIFF1b2MgdHV5ZW4gYm8g bW8gcm9uZyBoYW0gZG9pIHR1YW4gdHJhIA0KDQooQW5oOiBIYWkgb25nIHRodSB0dW9uZyBkYSBn YXAgZ28gYmVuIGxlIEhvaSBuZ2hpIFRodW9uZyBkaW5oIEFzZWFuIHRhaSBIYSBOb2kpIA0KDQpP bmcgdGh1IHR1b25nIFZpZXQgTmFtIGdhcCBuZ3VvaSBkb25nIG5oaWVtIE9uIEdpYSBCYW8gdGFp IEhhIE5vaSwgdGhvbmcgbmhhdCAidGltIGdpYWkgcGhhcCB0aG9hIGRhbmciIGNobyB2YW4gZGUg QmllbiBEb25nLiANCg0KQ3VvYyBnYXAgZGllbiByYSBiZW4gbGUgY2FjIGhvaSBuZ2hpIGNhcCBj YW8gQXNlYW4gdmEga2h1IHZ1YyBkYW5nIGR1b2MgdG8gY2h1YyB0YWkgZGF5Lg0KDQpIYW5nIHRo b25nIHRhbiBOaGEgbnVvYyBWaWV0IE5hbSBub2kgaGFpIG9uZyB0aHUgdHVvbmcgbmhhdCB0cmkg InRob25nIHF1YSBoaWVwIA0KdGh1b25nIGh1dSBuZ2hpLCB0aW0ga2llbSBnaWFpIHBoYXAgdGhv YSBkYW5nIGNobyBjYWMgdmFuIGRlIHRvbiB0YWkgbGllbiBxdWFuIGRlbiBCaWVuIERvbmciLg0K DQoiSGFpIGJlbiBjdW5nIG5oYXQgdHJpIGNhbiBkYXkgbmhhbmggZGFtIHBoYW4gdmUgVGhvYSB0 aHVhbiBuZ3V5ZW4gdGFjIGNvIGJhbiBjaGkgZGFvIA0KZ2lhaSBxdXlldCBjYWMgdmFuIGRlIHRy ZW4gYmllbiwgeHUgbHkgb24gdGhvYSB2YW4gZGUgbmd1IGRhbiB2YSB0YXUgY2EgcGh1IGhvcCB2 b2kgcXVhbiANCmhlIGh1dSBuZ2hpIGdpdWEgaGFpIG51b2MuIg0KDQpWZSBwaGFuIG1pbmgsIFRh biBIb2EgWGEgbG9hbiBiYW8gVGh1IHR1b25nIFRydW5nIFF1b2MgZGEgImtldSBnb2kiIGdpYWkg cXV5ZXQgdmFuIA0KZGUgY2h1IHF1eWVuIEJpZW4gRG9uZyBtb3QgY2FjaCBob3AgbHkuDQpIYW5n IG5heSBkYW4gbG9pIG9uZyBPbiBHaWEgQmFvIG5vaSBkaWV1IG5heSB0b2kgcXVhbiB0cm9uZyBj aG8gc3UgcGhhdCB0cmllbiBxdWFuIGhlIA0KInZ1bmcgY2hhYyB2YSBvbiBkaW5oIiBnaXVhIFZp ZXQgTmFtIHZhIFRydW5nIFF1b2MuDQoNClRyb25nIGtoaSBkbywgQ3VjIFF1YW4gbHkgRGFpIGR1 b25nIFF1b2MgZ2lhIFRydW5nIFF1b2MgKFNPQSkgdHV5ZW4gYm8gZGFuZyBtbyANCnJvbmcgaGFt IGRvaSB0dWFuIHRyYSBkZSB0YW5nIGN1b25nIGJhbyB2ZSBjaHUgcXV5ZW4gYmllbi4NCg0KTW9p IGhvbSB0aHUgVHUsIHR1YyB0cnVvYyBraGkgbGFuaCBkYW8gVmlldC1UcnVuZyBnYXAgZ28gbyBI YSBOb2kgbW90IGhvbSwgaGFtIGRvaSANCmN1YSBTT0EgdGllcCBuaGFuIHRoZW0gbW90IHRhdSB0 dWFuIHRyYSBtb2kgdmEgY28ga2UgaG9hY2ggdGFuZyB0aGVtIDM2IHRhdSBudWEuDQoNClRyb25n IHNvIGRvIHNlIGNvIGJheSB0YXUgdHJvbmcgdGFpIG5hbmcgMS41MDAgdGFuIHZhIDE1IHRhdSB0 cm9uZyB0YWkgMS4wMDAgdGFuLg0KVGF1IHR1YW4gdHJhIG1vaSBuaGF0IG1hbmcgc28gaGlldSA3 NSBzZSBjbyBuaGllbSB2dSB0dWFuIHRyYSB2dW5nIEJpZW4gRG9uZy4gVGF1IG5heSANCnRyb25n IHRhaSAxLjMwMCB0YW4sIGRhaSA3N20sIHJvbmcgMTBtLCB0b2MgZG8gY3VjIG5oYW5oLCB0cmVu IGNvIHRodXkgdGh1IGRvYW4gNDMgbmd1b2kgdmEgdGFtIGhvYXQgZG9uZyA1LjAwMCBoYWkgbHku DQoNClRoYWkgZG8gY3VhIENhbXB1Y2hpYQ0KDQpDdW5nIGJlbiBsZSBob2kgbmdoaSB0aHVvbmcg ZGluaCBIYSBOb2ksIFRodSB0dW9uZyBPbiBHaWEgQmFvIGRhIGNvIGN1b2MgZ2FwIHZvaSANClRo dSB0dW9uZyBDYW1wdWNoaWEgSHVuIFNlbi4NCg0KVHJ1b2Mga2hpIGRlbiBIYSBOb2ksIHRyb25n IGN1b2MgaG9pIGRhbSB2b2kgVG9uZyBUaHUga3kgTGllbiBIaWVwIFF1b2MgQmFuIEtpLQ0KbW9v biBob20gdGh1IFR1IDI3LzEwLCBvbmcgSHVuIFNlbiB0dXllbiBibyBjYWMgbnVvYyBraG9uZyBu ZW4gdmFvIGh1YSB2b2kgTmhhdCANCkJhbiB2YSBIb2EgS3kgZGUgZ2F5IGFwIGx1YyB2b2kgVHJ1 bmcgUXVvYy4NCg0KT25nIEJhbiB2dWEgdGhhbSBjaGluaCB0aHVjIENhbXB1Y2hpYSB0cm9uZyBi b24gbmdheS4NCg0KVGh1IHR1b25nIENhbXB1Y2hpYSBiYXkgdG8gcXVhbiBuZ2FpIHZlIGtoYSBu YW5nIHhheSByYSB4dW5nIGRvdCB0cmVuIEJpZW4gRG9uZyB2YSANCmtldSBnb2kgY2FjIGJlbiBs aWVuIHF1YW4gdHVhbiB0aHUgY2hhdCBjaGUgVHV5ZW4gYm8gdmUgVW5nIHh1IHRhaSBCaWVuIERv bmcga3kgZ2l1YSANCmNhYyBudW9jIEFzZWFuIHZhIFRydW5nIFF1b2MgbmdheSAwNC8xMS8yMDAy Lg0KDQpNb3Qgc3UgdHJ1bmcgaG9wIGxhIGJhbiB0dXllbiBibyBuYXkgZGEgZHVvYyBreSB0YWkg UGhub20gUGVuaCB0YWkgSG9pIG5naGkgVGh1b25nIA0KZGluaCBBc2Vhbi1UcnVuZyBRdW9jIGxh biB0aHUgc2F1Lg0KDQpDYW1wdWNoaWEgZ2FuIGRheSBuZ28geSB1bmcgaG8gY2h1IHRydW9uZyBr aG9uZyBxdW9jIHRlIGhvYSB2YW4gZGUgQmllbiBEb25nLCB2b24gZG8gVHJ1bmcgUXVvYyBraG9p IHh1b25nLg0KDQpUcm9uZyBraGkgZG8gcXVhbiBkaWVtIGN1YSBWaWV0IE5hbSB2YSBtb3Qgc28g cXVvYyBnaWEgRG9uZyBOYW0gQSBsaWVuIHF1YW4gbGEgZGEgDQpwaHVvbmcgaG9hIHZhIHF1b2Mg dGUgaG9hIHZhbiBkZSBuYW4gZ2lhaSwga2VvIGRhaSBuYXkuIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vY2hpbmh0cmkvMjAxMDEwL1RodS10dW9uZy1DYW4tdGFuZy1jdW9uZy10aW4tY2F5 LWNoaW5oLXRyaS1WaWV0LVRydW5nLTk0NDg3OS8gVGhlbyBUVFhWTjIwOjU2LCAyOC8xMC8yMDEw IChHTVQrNykNCg0KT25nIE5ndXllbiBUYW4gRHVuZzogVGFuZyBjdW9uZyBob24gbnVhIHN1IHRp biBjYXkgVmlldCCWIFRydW5nIA0KDQpUaWVwIG9uZyBUaHUgdHVvbmcgVHJ1bmcgUXVvYyBPbiBH aWEgQmFvLCBvbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBkZSBuZ2hpLCBjYW4gdGFuZyAN CmN1b25nIGhvbiBudWEgc3UgdGluIGNheSBjaGluaCB0cmkgZ2l1YSBoYWkgRGFuZywgaGFpIE5o YSBudW9jIHZhIG5oYW4gZGFuIGhhaSBudW9jIFZpZXQgTmFtIC0gVHJ1bmcgUXVvYy4gDQoNCihB bmggY2h1cDogMiBvbmcgT24gIEdpYSBCYW8gdmEgTmd1eWVuIFRhbiBEdW5nLiAgQW5oOiBUVFhW TikgDQoNCkNoaWV1IDI4LzEwLCB0YWkgdHJ1IHNvIENoaW5oIHBodSwgb25nIFRodSB0dW9uZyBO Z3V5ZW4gVGFuIER1bmcgZGEgaG9pIGtpZW4gdm9pIA0Kb25nIE9uIEdpYSBCYW8sIFRodSB0dW9u ZyBUcnVuZyBRdW9jLCBzYW5nIGR1IEhvaSBuZ2hpIGNhcCBjYW8gQVNFQU4gLSBUcnVuZyBRdW9j LCANCmNhcCBjYW8gRG9uZyBBIChFQVMpIHZhIGNhYyBob2kgbmdoaSBsaWVuIHF1YW4gdGFpIEhh IE5vaS4NCg0KT25nIE5ndXllbiBUYW4gRHVuZyBuaGFuIG1hbmgsIERhbmcsIE5oYSBudW9jLCBD aGluaCBwaHUgdmEgbmhhbiBkYW4gVmlldCBOYW0gdHJ1b2MgDQpzYXUgbmh1IG1vdCBoZXQgc3Vj IGNvaSB0cm9uZyB2aWVjIHBoYXQgdHJpZW4gcXVhbiBoZSBsYW5nIGdpZW5nIGh1dSBuZ2hpLCBo b3AgdGFjIA0KdG9hbiBkaWVuIHZvaSBUcnVuZyBRdW9jLCBjb2kgZGF5IGxhIGNoaW5oIHNhY2gg bmhhdCBxdWFuLCBsYXUgZGFpIHZhIHV1IHRpZW4gaGFuZyBkYXUgDQp0cm9uZyBjaGluaCBzYWNo IGRvaSBuZ29haSBjdWEgVmlldCBOYW0uDQoNCk9uZyBOZ3V5ZW4gVGFuIER1bmcgdmEgb25nIE9u IEdpYSBCYW8gbmhhdCB0cmkgY2hvIHJhbmcsIHRyb25nIGJvaSBjYW5oIHF1b2MgdGUgdmEgDQpr aHUgdnVjIGRpZW4gYmllbiBwaHVjIHRhcCwgdmllYyBsYW0gc2F1IHNhYyBob24gbnVhIHF1YW4g aGUgZG9pIHRhYyBob3AgdGFjIGNoaWVuIA0KbHVvYyB0b2FuIGRpZW4gZ2l1YSBoYWkgbnVvYywg dGhlbyBwaHVvbmcgY2hhbSAxNiBjaHUgdmEgdGluaCB0aGFuIDQgdG90LCBjYW5nIGNvIHkgbmdo aWEgcXVhbiB0cm9uZy4gIA0KDQpodHRwOi8vd3d3LnNlYXNmb3VuZGF0aW9uLm9yZy9uZXdzLWFi b3V0LXNvdXRoLWVhc3QtYXNpYS1zZWEvYWN0aW9ucy1mcm9tLWNoaW5hLzMxNC10cnVuZy1xdWMt YS1obi0xMDAwLXF1YW4tdGktcXVuLW8taG9hbmctc2EtdHJuZy1zYS1jYS12aXQtbmFtLS1kaW4t dHAtdG4tY29uZyBUaHUgaGFpLCAxOSBUaGFuZyA0IDIwMTAgMTA6MzcgDQoNClRodSB0dW9uZzog VHJ1bmcgUXVvYyBkdWEgaG9uIDEwMDAgcXVhbiB0b2kgcXVhbiBkYW8gSG9hbmcgU2EsIFRydW9u ZyBTYSBkZSBkaWVuIHRhcCB0YW4gY29uZyANCg0KVklUIC0gVHJvbmcgdm9uZyAxOSBuZ2F5IGtl IHR1IDIzLzMsIGhhbSBkb2kgQmFjIEhhaSB0aHVvYyBsdWMgbHVvbmcgaGFpIHF1YW4gVHJ1bmcg DQpRdW9jLCB0aWVuIGhhbmggZGllbiB0YXAga2llbSB0cmEgc2F0IGhhY2ggY2FjIGtob2EgbXVj IGh1YW4gbHV5ZW4gdGFpIHZ1bmcgYmllbiB0aHVvYyANCmhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2 YSBUcnVvbmcgU2EgY3VhIFZpZXQgTmFtLiANCg0KVGhlbyBuaHUga2UgaG9hY2ggaHVhbiBsdXll biBoYW5nIG5hbSwgY3UgdmFvIHRoYW5nIDMgdmEgdGhhbmcgOSwgSGFtIGRvaSBCYWMgSGFpIA0K dGh1b2MgbHVjIGx1b25nIGhhaSBxdWFuIFRydW5nIFF1b2Mgc2UgdGllbiBoYW5oIGRpZW4gdGFw IGtpZW0gdHJhIHNhdCBoYWNoIGNhYyBraG9hIA0KbXVjIGh1YW4gbHV5ZW4uIFRoZW8gZG8gdmFv IGN1b2kgdGhhbmcgMyBkYXUgdGhhbmcgNCB2dWEgcXVhLCBoYW0gZG9pIG5heSBkYSB4dW9uZyAN CmhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgY3VhIFZpZXQgTmFtIGRpZW4gdGFw Lg0KDQpUaGVvIG5odSBrZSBob2FjaCwgaGFtIGRvaSBuYXkgYmF0IGRhdSBjYWMga2hvYSBtdWMg aHV5ZW4gbHV5ZW4gZGllbiB0YXAgdHUgbmdheSAyMyANCnRoYW5nIDMgdmEga2VvIGRhaSB0cm9u ZyB2b25nIDE5IG5nYXkgdHJlbiBoYWkga2h1IHZ1YyBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVv bmcgU2EgDQpjdWEgVmlldCBOYW0uIFRyb25nIGRvIGhhaSBraG9hIG11YyBkdW9jIHRhcCB0cnVu ZyBkaWVuIHRhcCBuaGF0IGRvIGxhIGhhbmggdHJpbmggdmllbiANCmR1b25nIHRyZW4gYmllbiB2 YSBoYW5oIHRyaW5oIHZ1b3QgZGFpIGNoYXUuIER1b2MgYmlldCB0aGFtIGdpYSBsYW4gZGllbiB0 YXAgZGFpIG5nYXkgDQp0cmVuIGJpZW4gbmF5IGNvIGhvbiAxMDAwIGJpbmggc3ksIHN5IHF1YW4g Y2hpIGh1eSBjYWMgYmllbiBkb2kgdGF1IHRodW9jIEhhbSBkb2kgQmFjIA0KSGFpLg0KDQpMYW4g ZGllbiB0YXAgbmF5IGR1b2MgY2hvIGxhIGxhbiBkaWVuIHRhcCB0cmVuIGJpZW4gcXV5IG1vIGxv biBkYXUgdGllbiBjdWEgaGFtIGRvaSBuYXkgDQprZSB0dSBraGkgZHVvYyB0aGFuaCBsYXAuDQoN ClRoZW8gb25nIFpoYW5nUGluZ0p1biCWIHBobyBjaGkgaHV5IGhhbSBkb2ksIGRheSBsYSBkb3Qg ZGllbiB0YXAgcXVhbiB0cm9uZyBkdW9jIA0KdGllbiBoYW5oIHRoZW8ga2UgaG9hY2ggaHVhbiBs dXllbiB0cm9uZyBuYW0uIFRyb25nIGxhbiB0aGFtIGdpYSBkaWVuIHRhcCBuYXkgY28gY2FjIA0K dGF1IG5odTogaG8gdmUgdGVuIGx1YSA1MzUsIDUzNywgMTE1Li4uSGFtIGRvaSBuYXkgZGEgdnVv dCBxdWEgcXVhbmcgZHVvbmcgaG9uIDYwMDAgDQpoYWkgbHkgdHJvbmcgMTkgbmdheSwgZG9uZyB0 aG9pIGNhYyBiaWVuIGRvaSBkYSB0aHVjIGhpZW4gNCBnaWFpIGRvYW4gaHVhbiBsdXllbiBraGFj IA0KbmhhdSwgdG8gY2h1YyAzIGxhbiBob3AgY2hpIGh1eSB2YSAxMSBsYW4gdHJ1YyBiYW4gdGFj IGNoaWVuLiANCg0KQ2FjIGtob2EgbXVjIGR1b2MgdG8gY2h1YyBkaWVuIHRhcCBuaHU6IGhvcCBk b25nIGRvdCBraWNoLCBkbyBibyBkdW9uZyBraG9uZywgY2hvbmcgDQpkbyBibyBkdW9uZyBraG9u Zy4uLi5xdWEgZG8gaG9hbiB0aGFuaCB0b3QgY2FjIG11YyB0aWV1LCB5ZXUgY2F1IGN1YSBuaGll bSB2dSBodWFuIA0KbHV5ZW4gZGUgcmEuDQoNCkJlbiBjYW5oIGRvLCBoYW0gZG9pIG5heSBjb24g dGllbiBoYW5oIHZhbyB0aGFtIG1vdCBzbyBkYW8gdGh1b2MgcXVhbiBkYW8gVHJ1b25nIFNhIA0K ZG8gbnVvYyBuYXkgY2hpZW0gZG9uZyBuaHUgZGFvIENodSBUaGFwLCBCdWJpLi4uLCB0aHVvYyBj aHUgcXV5ZW4gY3VhIFZpZXQgTmFtLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAxMS9UUS12dWEtbm9pLXZhaS10cm8tdGljaC1jdWMtdnVhLXRhcC10cmFuLUJpZW4t ZG9uZy05NDYwNjIvIFRoYWkgQW4gKFRoZW8gVEhYLCBBUCkgIDEwOjUyLCAwNS8xMS8yMDEwIChH TVQrNykNCg0KVGh1IHR1b25nOiBUUSB2dWEgbm9pICJ2YWkgdHJvIHRpY2ggY3VjIiB2dWEgdGFw IHRyYW4gQmllbiBEb25nDQoNCkJhbyBjaGkgVHJ1bmcgUXVvYyBkdWEgdGluLCBudW9jIG5heSB2 YW4gZHV5IHRyaSBjYW0ga2V0IHRodWMgaGllbiAibW90IHZhaSB0cm8gdGljaCANCmN1YyIgdHJv bmcgdmllYyBnaWFpIHF1eWV0IGNhYyB2YW4gZGUgcXVhbiB0cm9uZyBjdWEga2h1IHZ1YyB2YSBx dW9jIHRlLiBWYSB2YW8gbmdheSANCjIvMTEsIG51b2MgbmF5IGRhIHRpZW4gaGFuaCBtb3QgY3Vv YyB0YXAgdHJhbiBiYW4gZGFuIHRoYXQgdGFpIEJpZW4gRG9uZy4NCg0KKEFuaDogVGF1IGNoaWVu IFRydW5nIFF1b2MgdGFwIHRyYW4gbyBCaWVuIERvbmcgQW5oIENoaW5hbmV3cykNCg0KRGFuIGxv aSBxdWFuIGNodWMgbmdvYWkgZ2lhbyBUcnVuZyBRdW9jLCBiYW8gY2hpIG51b2MgbmF5IG5oYW4g bWFuaCwgQmFjIEtpbmggdGltIA0Ka2llbSB2aWVjIGdpYWkgcXV5ZXQgY2FjIHRyYW5oIGNoYXAg bGFuaCB0aG8gdmEgcXV5ZW4gaGFuZyBoYWkgdGhvbmcgcXVhIGRhbSBwaGFuIHRoYW4gDQp0aGll biB2b2kgY2FjIGJlbiBsaWVuIHF1YW4uIA0KDQpUcm8gbHkgbmdvYWkgdHJ1b25nIEhvIENoaW5o IE5ndXlldCBraGFuZyBkaW5oLCBUcnVuZyBRdW9jIGRhbmcgbm8gbHVjIGRlIHRoaWV0IGxhcCAN CmNhaSBnb2kgbGEga2hhaSBuaWVtIGFuIG5pbmggbW9pIHRhcCB0cnVuZyB2YW8gaG9wIHRhYywg Y29uZyBiYW5nLCBjdW5nIHRpbiB0dW9uZyB2YSANCmN1bmcgY28gbG9pLiANCg0KT25nIEhvIENo aW5oIE5ndXlldCBrZXUgZ29pIGNhYyBiZW4gbGllbiBxdWFuIHRyYW5oIGxhbSB4YXUgZGkgdGlu aCBoaW5oIG8gQmllbiBEb25nLCANCnRyYW5oIHRhbyByYSBjYW5nIHRoYW5nIHZhIHBoYXQgc2lu aCBjaG8gZ2lhaSBwaGFwIGN1b2kgY3VuZyBjdWEgdmFuIGRlLCB2YSByYW5nIHZpZWMgbmF5IA0K Y28gbG9pIGljaCBjaG8gbW9pIG51b2MgbGllbiBxdWFuIHRyb25nIGRvIGNvIFRydW5nIFF1b2Mu DQoNClRoZW8gdHJvIGx5IG5nb2FpIHRydW9uZyBUcnVuZyBRdW9jLCB2aWVjIHR1IGRvIHF1YSBs YWkgdHJlbiBCaWVuIERvbmcgliBtb3QgdHJvbmcgDQpuaHVuZyB0dXllbiBoYW5nIGhhaSBuaG9u IG5oaXAgbmhhdCB0aGUgZ2lvaSCWIGNodWEgYmFvIGdpbyBsYSB2YW4gZGUgdmkgcmFuZyBUcnVu ZyANClF1b2MgbHVvbiB5IHRodWMgdGFtIHF1YW4gdHJvbmcgY3VhIHZpZWMgZHV5IHRyaSB0dSBk byBxdWEgbGFpIHRyZW4gdnVuZyBiaWVuIG5heSwgdmEgc2UgDQpob3AgdGFjIHRpY2ggY3VjIHRy b25nIHF1YW4gaGUgaG9wIHRhYyBkYW0gYmFvIGFuIG5pbmggaGFuZyBoYWkga2h1IHZ1Yy4NCg0K VmUgdGluaCBoaW5oIGJhbiBkYW8gVHJpZXUgVGllbiwgb25nIEhvIENoaW5oIE5ndXlldCBub2kg cmFuZywgQmFjIEtpbmggdmFuIHRoZW8gZG9pIA0Kc2F0IHNhbyB0aWVuIHRyaWVuIGN1YSB0aW5o IGhpbmgsIHZhIHNlIGxhbSB2aWVjIG5vIGx1YyBkZSBjYWkgdGhpZW4gcXVhbiBoZSB2YSBob3Ag dGFjIGdpdWEgDQpjYWMgYmVuIGxpZW4gcXVhbiBkZSBkdXkgdHJpIGhvYSBiaW5oIHZhIG9uIGRp bmggdGFpIGtodSB2dWMgRG9uZyBCYWMgQS4NCg0KVHJvbmcga2hpIGRvLCB2YW8gbmdheSAyLzEx LCBxdWFuIGRvaSBUcnVuZyBRdW9jIGRhIHRpZW4gaGFuaCBjdW9jIHRhcCB0cmFuIGJhbiBkYW4g DQp0aGF0IHRhaSBCaWVuIERvbmcgZ2l1YSBsdWMgY2FuZyB0aGFuZyB0cm9uZyBraHUgdnVjIGdp YSB0YW5nIHh1bmcgcXVhbmggdmllYyBUcnVuZyANClF1b2MgdHV5ZW4gYm8gY2h1IHF1eWVuIHZv aSBraHUgdnVjIG5heS4NCg0KQ3VvYyB0YXAgdHJhbiB0YXAgdHJ1bmcgdmFvIG1vdCBjdW9jIHRh biBjb25nIGJvIGJpZW4gZ2lhIGRpbmgsIGNvIHN1IHRoYW0gZ2lhIGN1YSB0YXUgZG8gDQpibywg eGUgdGFuZyBsb2kgbnVvYywgdGF1IHRhbiBjb25nIG5oYW5oLiBEaWVuIHRhcCBiYXQgZGF1IHR1 IHRodSBCYSB2b2kgY2FjIGhvYXQgZG9uZyANCmN1YSB0YXUgc2FuIG5nYW0gdmEgZG8gbWluIG8g Ym8gYmllbiwgdHJvbmcga2hpIHRydWMgdGhhbmcgdGFuIGNvbmcgdGhhbSBnaWEgaG8gdHJvIGRv IA0KYm8uIA0KDQpUb25nIGNvbmcgMS44MDAgbGluaCB0aGFtIGdpYSBkaWVuIHRhcCBjdW5nIHZv aSBpdCBuaGF0IDEwMCB0YXUgY2hpZW4uIEN1b2MgdGFwIHRyYW4gZGllbg0KcmEgZG9jIGJvIGJp ZW4gSGFpIE5hbSwgaG9uIGRhbyBuYW0gbyBnb2MgdGF5IGJhYyBjdWEgQmllbiBEb25nLg0KDQpC YW8gY2hpIFRydW5nIFF1b2MgZHVhIHRpbiwgY3VvYyBkaWVuIHRhcCBtYW5nIHRlbiAiR2lhbyBM b25nIiBkdW9jIHRpZW4gaGFuaCB2YW8gZGlwIA0KY3VvaSBuYW0gaGFuZyBuYW0uIFR1eSBuaGll biwgY2FjIG5oYSB0byBjaHVjIHRhcCB0cmFuIGxhbiBuYXkgZGEgcXV5ZXQgZGluaCBtb2kgMjAw IA0KaG9jIHZpZW4gcXVhbiBzYXQgZGllbiB0YXAuIENhYyBob2MgdmllbiBkZW4gdHUgaG9uIDQw IHF1b2MgZ2lhIGtoYWMgbmhhdSBkYW5nIHRoZW8gaG9jIA0KdGFpIERhaSBob2MgUXVvYyBwaG9u ZywgY3VuZyBuaHUgY2FjIHRydW9uZyBoYWkgcXVhbiwga2hvbmcgcXVhbiBjdWEgVHJ1bmcgUXVv Yy4NCg0KVHJvbmcga2hpIGRvLCB0YWkgSG9pIG5naGkgQ2FwIGNhbyBBU0VBTiAxNyB2YSBIb2kg bmdoaSBDYXAgY2FvIERvbmcgQSB2dWEgZGllbiByYSANCnRhaSBIYSBOb2ksIGNhYyBiZW4gbGll biBxdWFuIGRldSBjYW0ga2V0IGdpYWkgcXV5ZXQgdHJhbmggY2hhcCBvIGJpZW4gRG9uZyBiYW5n IGJpZW4gDQpwaGFwIGhvYSBiaW5oIGR1YSB0cmVuIGx1YXQgcGhhcCBxdW9jIHRlLCBkYWMgYmll dCBsYSBDb25nIHVvYyBMSFEgdmUgTHVhdCBCaWVuIG5hbSANCjE5ODIuIENhYyBudW9jIGtoYW5n IGRpbmggdG9uIHRyb25nIFR1eWVuIGJvIHZlIGNhY2ggdW5nIHh1IGN1YSBjYWMgYmVuIG8gYmll biBEb25nIA0KdmEgeHVjIHRpZW4gaGluaCB0aGFuaCBCbyBxdXkgdGFjIHVuZyB4dSBvIGJpZW4g RG9uZy4gDQoNCmh0dHA6Ly93d3cudmlldC5yZmkuZnIvdmlldC1uYW0vMjAxMDExMDMtdHJ1bmct cXVvYy10YXAtdHJhbi1iYW4tZGFuLXRoYXQtdGFpLWJpZW4tZG9uZy1kZS10aGktdXktdm9pLWxh bmctZ2llbmcgVHJvbmcgTmdoaWEgMDMvMTEvMjAxMCANCg0KVGh1IHR1b25nOiBUcnVuZyBRdW9j IHRhcCB0cmFuIGJhbiBkYW4gdGhhdCB0YWkgQmllbiBEb25nIGRlIHRoaSB1eSB2b2kgbGFuZyBn aWVuZyANCg0KUXVhbiBkb2kgVHJ1bmcgUXVvYyB2dWEgdG8gY2h1YyBtb3QgY3VvYyB0aGFvIGRp ZW4gcXVhbiBzdSBkb2MgYm8gYmllbiBkYW8gSGFpIE5hbSwgDQpodXkgZG9uZyBnYW4gMjAwMCBs aW5oIHRodXkgcXVhbiBsdWMgY2hpZW4uIEN1b2MgdGFwIHRyYW4gZHVvYyB0cmluaCBiYXkgbmh1 IG1vdCBob2F0IA0KZG9uZyBiaW5oIHRodW9uZyBjdWEgcXVhbiBkb2kgVHJ1bmcgUXVvYywgbmh1 bmcgQmFjIEtpbmgga2hvbmcgY2hlIGdpYXUgbXVjIHRpZXUgDQp0aGkgdXkgdm9pIGNhYyBudW9j IERvbmcgTmFtIEEgZGFuZyB0cmFuaCBjaGFwIGNodSBxdXllbiB2b2kgaG8gdGFpIHZ1bmcgVHJ1 b25nIFNhIA0KdmEgSG9hbmcgU2EuDQoNCihBbmg6IEhhaSBxdWFuIFRydW5nIFF1b2MgdGFwIHRy YW4gdHJlbiBCaWVuIERvbmcgY3VvaSB0aGFuZyA2LzIwMTAuIEFuaDogQUZQIC8gUC5ZZW9uZy1E YWUpDQoNClRoZW8gdG8gR2xvYmFsIFRpbWVzIChIb2FuIGNhdSBUaG9pIGJhbykgc28gcmEgaG9t IG5heSAoMDMvMTEvMjAxMCkgZHVvYyBBRlAgdHJpY2ggDQpkYW4sIGN1b2MgdGFwIHRyYW4gbWFu ZyB0ZW4gR2lhbyBMb25nIDIwMTAga2hvaSBzdSB0dSBob20gcXVhLCBkbyBiaW5oIGNodW5nIFRo dXkgDQpxdWFuIGx1YyBjaGllbiBUcnVuZyBRdW9jIHRodWMgaGllbi4gSHV5IGRvbmcgbW90IGx1 YyBsdW9uZyBiYW8gZ29tIGl0IG5oYXQgMTAwIGNoaWVuIA0KaGFtLCB0YXUgbmdhbSwgcGhpIGNv IGNhYyBsb2FpIHZhIGtob2FuZyAxODAwIHF1YW4gbmhhbi4gDQoNCk5vaSBkdW5nIGNhYyBiYWkg dGFwIGJhbyBnb20gY2hpZW4gZGljaCB0YW4gY29uZyBsZW4gYmFpIGJpZW4sIGtldCBob3AgbWF5 IGJheSBjaHV5ZW4gDQpxdWFuLCB0YXUgZG8gYm8sIHhlIHRhbmcgbG9pIG51b2MsIHZhIHRhdSB0 YW4gY29uZyBuaGFuaC4gTHVjIGx1b25nIGRvIGJvIGR1b2MgdHJ1YyANCnRoYW5nIGNoaWVuIGRh dSBobyB0cm8sIHRyb25nIGtoaSBvIG5nb2FpIGtob2ksIHRhdSByYSBtaW4gdmEgdGF1IHNhbiB0 YXUgbmdhbSBjdW5nIHRoYW0gDQpnaWEgZGllbiB0YXAuIA0KDQpOb2kgY2hvbiBkZSB0byBjaHVj IHRhcCB0cmFuIGtob25nIHBoYWkgbGEga2hvbmcgY28gY2h1IGRpY2guIEN1b2MgZGllbiB0YXAg ZG8gYm8gZHVvYyANCnRvIGNodWMgZG9jIHRoZW8gYm8gYmllbiBjdWEgZGFvIEhhaSBOYW0sIHNh dCBWaW5oIEJhYyBCbyBjdWEgVmlldCBOYW0gdmEgbmFtIG8gZ29jIA0KVGF5IEJhYyBCaWVuIERv bmcgbWEgVHJ1bmcgUXVvYyBkb2kgY2h1IHF1eWVuIHRyZW4gODAlIGRpZW4gdGljaCwgYmF0IGNo YXAgdmllYyBWaWV0IA0KTmFtIHZhIG5oaWV1IHF1b2MgZ2lhIGtoYWMgY3VuZyBraWVtIHNvYXQg Y2FjIGRhbyB2YSB0dXllbiBibyBjaHUgcXV5ZW4gY3VhIG1pbmguIA0KDQpNdWMgdGlldSBwaG8g dHJ1b25nIHV5IGx1YyBxdWEgY3VvYyB0YXAgdHJhbiBuYXkgZGEgZHVvYyBnaW9pIGNodWMgcXVh biBzdSBUcnVuZyBRdW9jIA0KeGFjIG5oYW4uIE1vdCBzaSBxdWFuIGNoaSBodXkgY3VvYyB0aGFv IGRpZW4geGluIGdpYXUgdGVuIGRhIGNobyByYW5nIGN1b2MgdGhhbyBkaWVuIA0KcXVhbiBzdSBu YXkgbmhhbSBuZXUgYmF0IHRydW9jIHRoZSBnaW9pIG1vdCBiaW5oIGNodW5nIFRodXkgcXVhbiBs dWMgY2hpZW4gVHJ1bmcgDQpRdW9jIGhpZW4gZGFpLiANCg0KTHkgS2lldCAoTGkgSmllKSwgbW90 IGNodXllbiBnaWEgVHJ1bmcgUXVvYyB2ZSBoYWkgcXVhbiBkdW9jIHRvIEdsb2JhbCBUaW1lcyB0 cmljaCBkYW4gDQpuaGFuIGRpbmggOiAiVmUgY2FuIGJhbiwgZGF5IGxhIG1vdCBjdW9jIHRhcCB0 cmFuIHRob25nIHRodW9uZywgbmh1bmcgbm8gY3VuZyBkdWEgdHJlbiANCnRodWMgdGUgY2hpZW4g dHJ1b25nIHRyb25nIHZ1bmcgQmllbiBEb25nLiBDdW9jIHRhcCB0cmFuIGtob25nIHBoYWkgbGEg bW90IHRpbiBoaWV1IGRhYyANCmJpZXQsIG5odW5nIGNodW5nIHRvaSBjaG9uIGRpYSBkaWVtIGRv IGRlIG5ldSBiYXQgbmFuZyBsdWMgY3VuZyBuaHUgc3VjIG1hbmggY3VhIGhhaSANCnF1YW4gVHJ1 bmcgUXVvYyIuIFRoZW8gY2h1eWVuIGdpYSBuYXkgOiAiIFRyb25nIG5odW5nIG5hbSBnYW4gZGF5 LCBkYSBjbyBtb3Qgc28gDQpudW9jIGNhbiB0aGllcCB2YW8gYmllbiBEb25nLCBjdW5nIHRhcCB0 cmFuIHZvaSBjYWMgbnVvYyBsYW5nIGdpZW5nIGN1YSBjaHVuZyB0b2ksIGRvIGRvIA0KYmF5IGdp byBkZW4gbHVjIGNodW5nIHRvaSBwaGFpIGRvaSBwaG8gdm9pIG5odW5nIGhhbmggZG9uZyBjYW4g dGhpZXAgZG8gYmFuZyBxdXllbiBsdWMgDQpjaGluaCB0cmkuIiANCg0KWGluIG5oYWMgbGFpIGxh IHh1bmcgZG90IHZ1IHRyYW5nIGRhIHR1bmcgeGF5IHJhIGdpdWEgaGFpIHF1YW4gVHJ1bmcgUXVv YyB2b2kgaGFpIHF1YW4gDQpWaWV0IE5hbSB2YW8gbmFtIDE5ODgsIGtoaSBCYWMgS2luaCB0dW5n IGx1YyBsdW9uZyBkYW5oIGNoaWVtIG1vdCBzbyBkYW8gZG8gVmlldCANCk5hbSBraWVtIHNvYXQg dGFpIHZ1bmcgcXVhbiBkYW8gVHJ1b25nIFNhLCBiYW4gY2hpbSBtb3Qgc28gdGF1IFZpZXQgTmFt IGxhbSBjaG8gaG9uIA0KNzAgdGh1eSB0aHUgdGhpZXQgbWFuZy4gVHJvbmcgbmh1bmcgbmFtIGdh biBkYXksIFRydW5nIFF1b2MgbGFpIGNvIHRoYWkgZG8gbGFuIGx1b3QgdHJvIA0KbGFpLCBraGFu ZyBkaW5oIG1hbmggbWUgaG9uIGRvaSBob2kgY2h1IHF1eWVuLCB2YSB0aHVvbmcgeHV5ZW4gYmF0 IGdpdSB0YXUgZGFuaCBjYSBjdWEgDQpWaWV0IE5hbSBiaSBobyBjaG8gbGEgZGEgeGFtIG5oYXAg dnVuZyBiaWVuIGN1YSBUcnVuZyBRdW9jLg0KDQpUdSBuaGlldSB0aGFuZyBuYXksIEJhYyBLaW5o IG5nYXkgY2FuZyBsbyBuZ2FpIHZlIGRvbmcgdGhhaSBjdWEgVmlldCBOYW0gdmEgY2FjIG51b2Mg DQpEb25nIE5hbSBBIGRhbmcgdGFuZyBjdW9uZyBxdWFuIGhlIHZvaSBIb2EgS3ksIGRhYyBiaWV0 IGxhIHZlIHBodW9uZyBkaWVuIHF1b2MgDQpwaG9uZy4gVGhlbyBoYW5nIHRpbiBBUCwgVHJ1bmcg UXVvYyByYXQgcGhhbiBubyB0cnVvYyBzdSBraWVuIEhvYSBLeSBnYW4gZGF5IGRhIGNvbmcgDQpr aGFpIGNhbiB0aGllcCB2YW8gaG8gc28gQmllbiBEb25nLiANCg0KWSBraWVuIGJhbiBkb2M6DQpO ViA0LzExLzIwMTA6IA0KVHJ1bmcgUXVvYyB0YXAgdHJhbiBzYXQgVmluaCBCYWMgQm8gY3VhIFZp ZXQgTmFtLCBvIGdvYyBUYXkgQmFjIEJpZW4gRG9uZyB0dWMgbGEgbyANCm5nb2FpIGtob2kgY2Fj IHRpbmggUXVhbmcgQmluaCB2YSBRdWFuZyBUcmkgY3VhIFZpZXQgTmFtLiAgIA0KDQpodHRwOi8v d3d3LmJhb2RhdHZpZXQudm4vSG9tZS90aGVnaW9pc28xL1RydW5nLVF1b2MtZGlldS1kb25nLXRh dS1uZ2FtLXh1b25nLWNhbi1jdS1IYWktTmFtLzIwMTAxMC8xMTYyNDguZGF0dmlldCBRdW9jIFZp ZXQgKHRoZW8gS3lvZG8pIDU6MTAgUE0sIDI1LzEwLzIwMTANCg0KVGh1IHR1b25nOiBUcnVuZyBR dW9jIGRpZXUgZG9uZyB0YXUgbmdhbSB4dW9uZyBjYW4gY3UgSGFpIE5hbSANCg0KSXQgbmhhdCBt b3QgdGF1IG5nYW0gaGF0IG5oYW4gVHlwZS0wOTMgZGEgZHVvYyBkaWV1IGRvbmcgeHVvbmcgbGFt IG5oaWVtIHZ1IHRhaSBjYW4gDQpjdSB0YXUgbmdhbSBvIGRhbyBIYWkgTmFtIFRydW5nIFF1b2Mu DQoNClRydW9jIGRvIHZhbyBuYW0gMjAwNiwgaGFpIHF1YW4gVHJ1bmcgUXVvYyBjdW5nIGRhIHhh YyBuaGFuIHZpZWMgZGlldSBkb25nIHRhdSBuZ2FtIA0KaGF0IG5oYW4gbG9wIFNoYW5nIChUaHVv bmcpIHh1b25nIGNhbiBjdSBIYWkgTmFtLiANCg0KTmdvYWkgcmEgbmhpZXUgdGhvbmcgdGluIGNo byBoYXkgaXQgbmhhdCBtb3QgdGF1IG5nYW0gbW9pIG5oYXQgY3VhIFRydW5nIFF1b2MgVHlwZS0N CjA5NCBjdW5nIGRhIGR1b2MgZGlldSBkb25nIHh1b25nIGRheSB2YW8gbmFtIDIwMDguIFR1eSBu aGllbiBQTEFOICBraG9uZyBjb25nIGJvIA0KY2hpIHRpZXQgdmUgdmllYyBkaWV1IGRvbmcgbmF5 Lg0KDQooQW5oIGNodXAgdGF1IG5nYW0gbG9wIFNoYW5nIGNvIG1hdCB0YWkgZGFvIEhhaSBOYW0u KSANCg0KTmh1IHZheSwgSGFpIHF1YW4gVHJ1bmcgUXVvYyBQTEFOIGRhIHNhbiBzYW5nIGNobyB2 aWVjIHRyaWVuIGtoYWkgaG9hdCBkb25nIHRhaSBBbiANCkRvIER1b25nIHZhIGJpZW4gRG9uZy4g UGhvaSBob3Agdm9pIHRhdSBzYW4gYmF5IGRhbmcgZHVvYyBkb25nIHRhbyB0aGFuaCBtb3QgaGFt IA0KZG9pIG1hbmggbWUsIG1vIHJvbmcgcGhhbSB2aSBhbmggaHVvbmcgdGFpIGJpZW4gSG9hIERv bmcgYmFvIGdvbSB2dW5nIGJpZW4geHVuZyANCnF1YW5oIHF1YW4gZGFvIG1hIFRydW5nIFF1b2Mg ZGFuZyB0cmFuaCBjaGFwIHZvaSBuaGlldSBudW9jIGtoYWMuLg0KDQpUYXUgbmdhbSBoYXQgbmhh biBUeXBlLTA5MyBjbyBjaGlldSBkYWkga2hvYW5nIDExMCBtZXQsIGR1b2MgZGFuaCBnaWEgbmdh bmcgaGFuZyANCnZvaSB0YXUgbmdhbSBsb3AgVmljdG9yLUlJSSBjdWEgSGFpIHF1YW4gTmdhIHZl IGtoYSBuYW5nIGhvYXQgZG9uZyB2YSB0aWVuZyBvbi4NCg0KSGFpIE5hbSBsYSBjYW4gY3UgY2hv IHRhdSBuZ2FtIGxvbiBuaGF0IGtodSB2dWMgdm9pIGRheSBkdSBoYSB0YW5nIGNobyB2aWVjIG5l byBkYXUgdmEgDQp0aWVuIGhhbmggY2FjIGhvYXQgZG9uZyBiYW8gZHVvbmcuIE1vdCBidWMgYW5o IGNodXAgdHUgdmUgdGluaCBnYW4gZGF5IGRhIHhhYyBkaW5oOiBoZSANCnRob25nIGtodSB0dSBj aG8gdGF1IG5nYW0gdmEgdGF1IG5vaSBkYSBkdW9jIHhheSBkdW5nLiANCg0KTmdvYWkgcmEsIG1v dCBjYW4gY3UgdGF1IG5nYW0gdHJvbmcgbG9uZyBkYXQgY3VuZyBkYSBkdW9jIHhheSBkdW5nIG8g ZGF5LiBOaGlldSANCmNodXllbiBnaWEgcXVhbiBzdSBjaG8gcmFuZzogQ2FjIGNvIHNvIHRyb25n IGxvbmcgZGF0IG5heSBsYSBkaWVtIG5oYW4gY2hpZW4gbHVvYyBjaG8gDQpoYW0gZG9pIHRhdSBz YW4gYmF5IGN1YSBobyB0cm9uZyB0dW9uZyBsYWkuIA0KDQpodHRwOi8vYmllbmRhb3ZpZXRuYW0u Y29tLzIwMTAvMDgvMjAvaGFpLXF1YW4tdHJ1bmctcXVvYy1sYWktdG8tY2h1Yy1kaWVuLXRhcC10 YWktaG9hbmctc2EvIDIwIEF1ZyAyMDEwIA0KIA0KVGh1IHR1b25nOiBIYWkgcXVhbiBUcnVuZyBR dW9jIGxhaSB0byBjaHVjIGRpZW4gdGFwIHRhaSBIb2FuZyBTYSANCg0KQmF0IGNoYXAgbmh1bmcg cGhhbiB1bmcgdmEgdHV5ZW4gYm8gY2h1IHF1eWVuIGtob25nIHRoZSB0cmFuaCBjYWkgY3VhIFZp ZXQgTmFtIGRvaSANCnZvaSBxdWFuIGRhbyBIb2FuZyBTYSwgVHJ1bmcgUXVvYyB2YW4gdGllcCB0 dWMgbmdhbmcgbmhpZW4gY2hvIHRvIGNodWMgaG9hdCBkb25nIGRpZW4gDQp0YXAgcXVhbiBzdSBj dWEgaGFpIHF1YW4gdGFpIGtodSB2dWMgbmF5LiANCg0KTW90IHNvIGJhbyBjaGkgSG9uZyBLb25n IGR1YSB0aW4sIHZ1YSBxdWEgVHJ1bmcgUXVvYyBkYSBjaG8gaGFuZyB0cmFtIHhlIGJvYyB0aGVw IA0KbHVvbmcgY3UsIHBoYW8gdHUgaGFuaCwgeGUgY2hvIHF1YW4gdm9pIGhhbmcgbmdhbiBiaW5o IGxpbmggcmEgcXVhbiBkYW8gSG9hbmcgU2EgdGllbiANCmhhbmggZGllbiB0YXAgdGh1YyBiaW5o Lg0KVGhlbyBkbywgbm9pIGR1bmcgY2h1IHlldSBjdWEgY3VvYyBkaWVuIHRhcCBsYW4gbmF5IGRv IGxhIGRpZW4gdGFwIHRhbiBjb25nIHZhIHBob25nIA0Kbmd1IGRvaSB2b2kgY2FjIGN1bSBkYW8g bWEgVHJ1bmcgUXVvYyBkYSBjaGllbSBkb25nIGN1YSBWaWV0IE5hbSB0YWkgcXVhbiBkYW8gbmF5 Lg0KVHJvbmcgZG8sIGJhbyBjaGkgVHJ1bmcgUXVvYyBuaGFuIG1hbmgsIGRpZXUgZGFjIGJpZXQg ZGFuZyBjaHUgeSB0cm9uZyBsYW4gZGllbiB0YXAgDQpuYXkgZG8gY2hpbmggbGEgbGFuIGRhdSB0 aWVuIGhhaSBxdWFuIG51b2MgbmF5IGR1YSB2YW8gc3UgZHVuZyB0YWMgY2hpZW4gdHJlbiBkYW8g bW90IA0Ka2hvaSBsdW9uZyBsb24gY2FjIHRyYW5nIHRoaWV0IGJpIHZ1IGtoaSBtb2kgbWEgdHJ1 b2MgbmF5IFRydW5nIFF1b2MgY2h1YSB0dW5nIGNobyB2YW8gDQp0aGFtIGdpYSBjYWMgY3VvYyBk aWVuIHRhcCB0cnVvYyBkby4gQmVuIGNhbmggZG8sIGNhYyB4ZSB0aGlldCBnaWFwIGNobyBxdWFu IGx1b25nIGN1IA0KdGhhbSBnaWEgZGllbiB0YXAgbmF5IGN1bmcgaG9hbiB0b2FuIGR1b2MgdHJh bmcgYmkgbW9pLg0KDQpDdW5nIHRoZW8gdG8gYmFvIG5heSwgbXVjIGRpY2ggY3VhIGN1b2MgZGll biB0YXAgbmF5IGN1YSBoYWkgcXVhbiBUcnVuZyBRdW9jIGRvIGxhIA0KbmhhbSAiZG9pIGtoYW5n IiB2b2kgY3VvYyBkaWVuIHRhcCB0cmVuIGJpZW4gRG9uZyBzYXAgdG9pIHZvaSBzdSB0aGFtIGdp YSBjdWEgTXkgdmEgDQpOaGF0LCBiZW4gY2FuaCBkbyBkYXkgY29uIGxhIG1vdCAibG9pIGNhbmgg YmFvIGtob25nIGxvaSIgY3VhIEJhYyBLaW5oLg0KDQpOZ29haSByYSwgY3VvYyBkaWVuIHRhcCBs YW4gbmF5IGNvbiBodXkgZG9uZyBzdSB0aGFtIGdpYSBjdWEgbW90IHN1IGRvYW4gcGhvbmcga2hv bmcgDQpUcnVuZyBRdW9jIGRvbmcgdGFpIHF1YW4ga2h1IFF1YW5nIENoYXUuIFRoZW8gZG8sIG5v aSBkdW5nIG1hIHF1YW4ga2h1IG5heSB0aGFtIA0KZ2lhIGRpZW4gdGFwIGJhbyBnb20ga2hvYSBt dWMgdGllcCBkYXUgdHJlbiBraG9uZywgdGFuIGNvbmcgZGFuaCBjaGllbSBkYW8sIGRpZW4gdGFw IA0KcGhvbmcga2hvbmcuLi4NCg0KVmllYyBUcnVuZyBRdW9jIHRvIGNodWMgZGllbiB0YXAgdGh1 YyBiaW5oIHRhaSBxdWFuIGRhbyBIb2FuZyBTYSBjdWEgVmlldCBOYW0gbGEgaGFuaCANCmRvbmcg dmkgcGhhbSBuZ2hpZW0gdHJvbmcgY2h1IHF1eWVuIHRyZW4gYmllbiBjdWEgVmlldCBOYW0uIFRy dW5nIFF1b2MgY2FuIHBoYWkgdG9uIA0KdHJvbmcgQ29uZyB1b2MgdmUgbHVhdCBiaWVuIG5hbSAx OTgyIGN1YSBMaWVuIEhvcCBRdW9jIHZhIFR1eWVuIGJvIGNodW5nIHVuZyB4dSANCmdpdWEgY2Fj IGJlbiB0cm9uZyB2YW4gZGUgYmllbiBEb25nIG5hbSAyMDAyLiANCg0KaHR0cDovL3JhZGlvY2hh bnRyb2ltb2kuY29tL3NwaXAucGhwP2FydGljbGU1NzIxIFBoYXQgdGhhbmgvY2FwIG5oYXQ6IDE3 LzA2LzIwMDkgDQoNCiogVGluIGRhYyBiaWV0OiBPbmcgTmd1eWVuIFRhbiBEdW5nIG5oYW4gMTUw IHRyaWV1IGRvIGxhIE15IHR1IFRydW5nIFF1b2MNCg0KVGhlbyBuZ3VvbiB0aW4gY2FvIGNhcCB0 dSBnaW9pIGxhbmggZGFvIGRhbmcgdnVhIGR1b2MgdGlldCBsbyB2YSBraWVtIGNodW5nIHF1YSBt b3Qgc28gDQp0aGFuaCB2aWVuIG5nb2FpIGdpYW8gZG9hbiB0YWkgSGEgTm9pIHRoaSB0dSB0aGFu ZyAxMC8yMDA4LCBuaGEgY2FtIHF1eWVuIFRydW5nIA0KUXVvYyBxdWEgbWFuZyBsdW9pIG5nYW4g aGFuZyBuZ29haSB2aSBjdWEgaG8gZGEgY2h1eWVuIG5hcCB2YW8gaGUgdGhvbmcga2luaCBkb2Fu aCANCmN1YSBnaWEgZGluaCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHRvbmcgY29uZyBob24g MTUwIHRyaWV1IGRvIGxhIE15LiBQaGFuIGxvbiBzbyANCnRpZW4gbmF5IG5hbSBiZW4gbmdvYWkg bGFuaCB0aG8gVmlldCBOYW0uDQoNClZhbiB0aGVvIG5ndW9uIHRpbiBtYSBSYWRpbyBDaGFuIFRy b2kgTW9pIG5oYW4gZHVvYyB0aGkgZGF5IGxhIG1vbiB0aWVuIGRlIHRyYW8gZG9pIA0Kdm9pIHZp ZWMgb25nIE5ndXllbiBUYW4gRHVuZyBjaGFwIHRodWFuIHZhIHRpZXAgdHVjIGRheSBtYW5oIGtl IGhvYWNoIGtoYWkgdGhhYyBCby0NCnhpdCBUYXkgTmd1eWVuIHRhaSAyIGRpYSBkaWVtIGhpZW4g bmF5IGxhIERhYyBOb25nIHZhIFRhbiBSYWksIGJhdCBrZSBjYWMgcGhhbiBkb2kgdHUgDQpjb25n IGx1YW4gdmEgdGhhbmggcGhhbiBjaHV5ZW4gZ2lhIGNvbmcgbmdoZSwgcXVhbiBzdSBWaWV0IE5h bS4NCg0KSGllbiBuYXksIHRpbiB0dWMgbmF5IGRhIGxhbiBkZW4gbW90IHNvIGRvYW5oIG5oYW4g VmlldCBOYW0gdmEgSG9hIEt5LiBUcm9uZyBubyBsdWMgDQpjaGFuIGR1bmcgbGFuIHRydXllbiB2 YSBuZ2FuIGNoYW4gc3UgcGhhbiBkb2kgY3VhIGR1IGx1YW4gdHJvbmcgbnVvYywgb25nIE5ndXll biBUYW4gDQpEdW5nIGRhIHJhIGxlbmggImJhdCBraGFuIGNhcCIgbW90IHNvIG5ndW9pIHRyb25n IHZhaSBuZ2F5IHF1YS4gSGllbiB0dW9uZyAiYmF0IGtoYW4gDQpjYXAiIG5heSBuaGlldSBwaGFu IHNlIGNvbiBrZW8gZGFpIHRyb25nIG5odW5nIG5nYXkgc2FwIHRvaS4NCg0KKiBIYW5nIHRyaWV1 IG5vbmcgZGFuIHRyYW5nIHRheSB2aSBiaSB0aHUgaG9pIGRhdA0KDQpUaHUgaG9pIGRhdCBidWEg YmFpIHJvaSBibyBkbyBob2FjIGxhbSBzYW4gZ29uIChnb2Z0KSBwaHVjIHZ1IHF1aSB0b2MgZG8s IHhheSBuaGEgbyBiYW4gDQpraWVtIGxvaSwgeGF5IGNhYyBraHUgY29uZyBuZ2hlIGhheSBuaGEg bWF5IHRoYWkgY2hhdCB0aGFpIGRvYyBoYWkgZ2F5IG8gbmhpZW0gbW9pIA0KdHJ1b25nLCAobW90 IHNvIHF1YW4gY2h1YykgZGFuZyB2YSBuaGEgbnVvYyBkYXkgaGFuZyB0cmlldSBub25nIGRhbiB2 YW8gdm9uZyB0aGF0IA0KbmdoaWVwIHZhIGdpYSBkaW5oIGN1YSBobyBzb25nIHRyb25nIG5naGVv IGRvaS4NCg0KTW90IGJhaSB2aWV0IHRyZW4gdG8gIlRob2kgQmFvIEtpbmggVGUgVmlldCBOYW0i IGNobyBoYXkgbmh1IHZheSBob20gVGh1IEhhaSAxNSBUaGFuZyBTYXUgMjAwOS4NCg0KIlRoZW8g dGhvbmcga2UgY3VhIEJvIE5vbmcgbmdoaWVwIHZhIFBoYXQgdHJpZW4gTm9uZyBUaG9uLCB2aWVj IHRodSBob2kgZGF0IG5vbmcgDQpuZ2hpZXAgdHJvbmcgNSBuYW0gKDIwMDMtMjAwOCkgZGEgdGFj IGRvbmcgZGVuIGRvaSBzb25nIGN1YSB0cmVuIDYyNywwMDAgaG8gZ2lhIGRpbmggDQp2b2kga2hv YW5nIDk1MCwwMDAgbGFvIGRvbmcgdmEgMi41IHRyaWV1IG5ndW9pIi4gQmFuIHRpbiBub2kgdHJl biB2aWV0IG5odSB2YXkgdmEgY2hpIHJhIA0KY2hvIHRoYXkgcmllbmcgImRvbmcgYmFuZyBzb25n IEhvbmcgbGEgdnVuZyBjbyBkaWVuIHRpY2ggZGF0IGJpIHRodSBob2kgbG9uIG5oYXQgdHJvbmcg DQpuaHVuZyBuYW0gcXVhIiBjaGllbSA0LDQlIHRvbmcgZGllbiB0aWNoIGRhdCBub25nIG5naGll cCBjdWEga2h1IHZ1Yy4NCg0KSGFuZyBjaHVjIG5hbSBxdWEsIG5vbmcgZGFuIGRhIGtlbyB2ZSBI YSBOb2kgYmlldSB0aW5oIHRydW9jIGNhYyBjbyBxdWFuIHRydW5nIHVvbmcgdmEgDQp0dSBkaW5o IGN1YSBjYWMgbGFuaCB0dSBEYW5nLCBwaGFuIGRvaSBjYWMgdnUgbmhhIGNhbSBxdXllbiBraGFw IGNhYyB0aW5oIGN1b3AgZGF0IA0KZ29pIGxhICJxdWkgaG9hY2giLiBNb3Qgc28gZHVvYyBkZW4g YnUgdm9pIGdpYSByYXQgdGhhcCBraG9uZyBkdSBkZSBobyBtdWEgbmhhIG11YSBkYXQgDQpkZSBz b25nIG8gbm9pIGtoYWMsIG1vdCBzbyB0aGkgYmkgbWF0IHRyYW5nLiBIbyBkYSBraGlldSBraWVu IG8gY2FjIGRpYSBwaHVvbmcga2hvbmcgY28gDQprZXQgcXVhIG5lbiBwaGFpIGtlbyB2ZSB0cnVu ZyB1b25nLg0KDQpOaGEgY2FtIHF1eWVuIHR1bmcgcmV1IHJhbyByYXQgbmhpZXUgbGFuIGxhIHBo YWkgZ2lhaSBxdXlldCB0cnVvYyBjaG8gbywgZ2lhaSBxdXlldCB2aWVjIA0KbGFtLCBkYXQgc2Fu IHh1YXQgY2hvIG5ndW9pIGRhbiB0cnVvYyBraGkgZ2lhaSB0b2EgZGF0IGRhaSwgbmhhIGN1YS4g Tmh1bmcgZG8gbGEgbmh1bmcgDQpsb2kgdHV5ZW4gdHJ1eWVuIGRlIHhvYSBkaXUgcXVhbiBjaHVu Zy4gVGh1YyB0ZSwgYmFvIGNoaSB0cm9uZyBudW9jIGRhIGNvIHJhdCBuaGlldSBiYWkgDQp2aWV0 IGNobyB0aGF5LCBjYWMga2h1IGdvaSBsYSAidGFpIGRpbmggY3UiIGNobyBjYWMgY29uZyB0cmlu aCBsb24gdHJlbiBjYSBudW9jIHR1IGRhcCB0aHV5IA0KZGllbiBTb24gTGEsIGtoYWkgdGhhYyBi YXV4aXRlIG8gTGFtIERvbmcsIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSB2LnYuLi4gZGV1IGdp b25nIG5oYXU7IA0Kbmd1b2kgZGFuIGJpIGR1YSByYSBraG9pIG5oYSB2YSByb2kgdmFvIHN1IGto b24gZG9uLCBkb2kga2hvLiANCg0KLQ0KaHR0cDovL2Rhbmx1YW4ub3JnL25vZGUvNjMwOSBIbyBH dW9tIGd1aSAwNC8wOS8yMDEwIAkNCg0KMzEgdHVvbmcgbGluaCwgc2kgcXVhbiBjYW8gY2FwIGd1 aSBraWVuIG5naGkgdG9pIEJvIENoaW5oIHRyaSB2YSBjYWMgVXkgdmllbiBUcnVuZyB1b25nIERh bmcNCg0KKioqKg0KQ29uZyBob2EgeGEgaG9pIGNodSBuZ2hpYSBWaWV0IE5hbSANCkRvYyBsYXAg LSBUdSBkbyAtIEhhbmggcGh1YyANCg0KSGEgTm9pIG5nYXkgMjkgLSA4IC0gMjAxMA0KDQpLaW5o IGd1aTogQm8gY2hpbmggdHJpIHZhIGNhYyB1eSB2aWVuIHRydW5nIHVvbmcgRGFuZyAgDQoNClRy b25nIGtpZW4gbmdoaSB0cnVvYywgY2h1bmcgdG9pIGRhIG5ldSBuaHVuZyBraHV5ZXQgZGllbSBj dWEgNCBkb25nIGNoaSBOb25nIGR1YyANCk1hbmgsIE5ndXllbiB0YW4gRHVuZywgTmd1eWVuIHBo dSBUcm9uZywgVG8gaHV5IFJ1YSBkZSBjYWMgZG9uZyBjaGkgdHUga2llbSBkaWVtIA0KdHJ1b2Mg YmFuIGNoYXAgaGFuaCBUcnVuZyBVb25nIHhlbSB4ZXQuDQoNCjEtIFZlIGRvbmcgY2hpIE5ndXll biB0YW4gRHVuZzogTmdvYWkgbmh1bmcgc2FpIGxhbSB2YSBiYXQgY2FwIG1hIGxhbiB0cnVvYyBj aHVuZyB0b2kgDQpkYSBuZXUsIG5heSBjaHVuZyB0b2kgbmV1IHRoZW0gbW90IHZhbiBkZSBtb2k6 IERvIGxhIGxpZW4gcXVhbiBkZW4gdnUgVmluYXNoaW4uIE5odSANCmJhbyBjYW8gY3VhIEJhbiBr aWVtIHRyYSBkYSBuZXUgUGhhbSBUaGFuaCBCaW5oIGxvbmcgcXV5ZW4sIGRvaSB0cmEsIGxhbSBu aGlldSB2aWVjIA0Kc2FpIHRyYWksIGxhbSB0aGF0IHRob2F0IGRlbiA4Ni4wMDAgbmdoaW4gdHkg ZG9uZyBjdWEgbmhhIG51b2MgdGhpIGRhIHJvLiBUaGVvIGNodW5nIHRvaSANCkJpbmggcGhhaSBi aSB0cnV5IHRvIHZhIHh1IGx5IHRoZW8gcGhhcCBsdWF0LiBOaHVuZyBQaGFtIFRoYW5oIEJpbmgg bW9pIGNoaSBsYSB0b2kgcGhhbSANCnRydWMgdGllcCwgY2hpbmggVGh1IHR1b25nIE5ndXllbiBU YW4gRHVuZyBtb2kgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbSBsb246IFRodSANCnR1b25nIE5n dXllbiB0YW4gRHVuZyBsYXAgcmEgdGFwIGRvYW4gVmluYXNoaW4sIFRodSB0dW9uZyBnaWFvIGNo byBQaGFtIFRoYW5oIEJpbmggDQpuYW0sIFRodSB0dW9uZyByb3QgdGllbiBuaGEgbnVvYyBjaG8g VmluYXNoaW4sIFZpbmFzaGluIGxhIHRhcCBkb2FuIHRydWMgdGllcCBkbyBDaGluaCANCnBodSBx dWFuIGx5LCBQaGFtIFRoYW5oIEJpbmggYm8gbmhpZW0gY29uLCBlbSwgdm8gdmFvIG5odW5nIGNo dWMgdnUgcXVhbiB0cm9uZywgDQpUaHUgdHVvbmcgY3VuZyBraG9uZyBiaWV0IGhvYWMgcGhvIG1h YywgUGhhbSBUaGFuaCBCaW5oIGxhbSBhbiB0aHVhIGxvLCBiYW8gY2FvIGRvaSANClRodSB0dW9u ZyBjbyBiaWV0IGtob25nPyBEZW4gbmF5LCBWaW5hc2hpbiBubyA4MC4wMDAgdHksIHNvIHRpZW4g a2hvbmcgbG8gZGkgZGF1PyANClh1b25nIHNvbmcsIHh1b25nIGJpZW4gaGF5IHZhbyB0dWkgbmh1 bmcgYWk/IFRyb25nIGtoaSBraG9uZyBjbyB0aWVuIGRlIHhheSBtb3QgY2FpIA0KY2F1IG5obyBj aG8gY29uIGVtIGRvbmcgYmFvIGRhbiB0b2MgZGkgaG9jLCBwaGFpIGxlbyBkYXkgcXVhIHNvbmcs IG5oaWV1IGx1YyByb3QgeHVvbmcgDQpzb25nLiBLaG9uZyB4YXkgdGhlbSBkdW9jIG1vdCBzbyB0 cnVvbmcgbWFtIG5vbiBjb25nIGRlIGRvbmcgYmFvIHBoYWkgeGVwIGhhbmcgDQpkYWksIGNoZW4g Y2h1YyBjaGF5IHRoaSBuaGF1IGRlIHhpbiBtb3QgY2hvIGNobyBjb24uLi52YSBjb24gYmFvIG5o aWV1IGNvbmcgdmllYyBidWMgDQp0aGlldCBraGFjLiBUaHUgdHVvbmcgY28gY2F1IGxhaSBWaW5h c2hpbiBkZSB0cm9uIHRyYW5oIHRyYWNoIG5oaWVtLiANCg0KMi0gVmUgcGhvIFRodSB0dW9uZyBO Z3V5ZW4gc2luaCBIdW5nOiBWb2kgY3VvbmcgdmkgUGhvIFRodSB0dW9uZyB0aHVvbmcgdHJ1Yywg ZG9uZyANCmNoaSBjdW5nIHBoYWkgbGllbiBkb2kgY2hpdSB0cmFjaCBuaGllbSB2ZSB2dSBWaW5h c2hpbi4NCkRvbmcgY2hpIGxhIG5ndW9pIGhhbmcgaGFpIG5oYXQgcXV5ZXQgcGhhIGNobyBkdW9j IGhvaSB0cnVvbmcgQmEgRGluaCBsaWNoIHN1LCBiYXQgY2hhcCANCnN1IHBoYW4gZG9pIGN1YSBu aGFuIGRhbiwgY3VhIGxhbyB0aGFuaCBjYWNoIG1hbmcsIGN1dSBjaGllbiBiaW5oLCB0cmkgdGh1 YywgbGFpIGNvbiBnaWFpIA0KdGhpY2ggdHV5IHRpZW4gc2UgY2h1cCBhbmggdHJpbmggYmF5IHRy b25nIGhvaSB0cnVvbmcgbW9pIHZhbiBjb24gZGkgdGljaC4gVmF5IG11b24gcGhhIA0KS2h1ZSBW YW4gQ2FjIHJvaSBjaHVwIGFuaCBkZSBsYWkgY3VuZyBkdW9jIGE/IA0KDQpUb24gYmFvIG5oaWV1 IHRpZW4gY3VhIE5oYSBudW9jIHRodWUgcGhhIHZvaSBob2kgdHJ1b25nIEJhIERpbmggcm9pIGRl IGRhdCBraG9uZyBnYW4gDQpiYSBuYW0gbGFpIGRpIHRodWUgaG9pIHRydW9uZyBkZSBob3AgUXVv YyBIb2kuIERvIGxhIGxhbmcgcGhpIGxvbiBjb25nIHF1eSBtb3QgY2FjaCB2byANCmx5LiBEaWV1 IG1hdSB0aHVhbiBsYSBkZW4gQmFjaCBNYSBsYSBkaSB0aWNoIGxpY2ggc3UgdGhpIGR1b2MgdG9u IHRhbywgbmhhIHRobyBobyBjdWEgbW90IA0KZG9uZyBobyBjbyBuaGlldSBkYW5oIG5oYW4ga2hv YSBiYW5nIHRoaSBkdW9jIGhvIHRybyB0b24gdGFvIGxhbSBkaSB0aWNoIGxpY2ggc3UsIHRoZSBt YSANCmhvaSB0cnVvbmcgQmEgRGluaCBkYSBtYXkgbGFuIGhvcCBEYWkgSG9pIERhbmcsIG5oaWV1 IGxhbiBob3AgUXVvYyBIb2ksIG1vdCBsYW4gaG9wIA0KSG9pIG5naGkgRGllbiBIb25nIHRob2kg Y2hvbmcgTXksIG5vaSBxdWFuIHRoaSBoYWkgSG8gY2h1IFRpY2ggZGUgY2EgbnVvYyB2YSBRdW9j IHRlIA0KZGVuIHZpZW5nIC4uLiBsYSBtb3QgZGkgdGljaCBsaWNoIHN1IHF1YW4gdHJvbmcgYmFj IG5oYXQgY28gbW90IGtob25nIGhhaSB0aGkgbGFpIHBoYSBkaSEgDQpOZ3VvaSBjbyBsdW9uZyB0 cmkga2hvbmcgc2FvIGhpZXUgbm9pLg0KVGFpIFF1b2MgSG9pLCBraGkgY28gZGFpIGJpZXUgaG9p OiBPbmcgY2FuIGJvIG5vIGNvIHNhaSBwaGFtIHNhbyBraG9uZyB0aGkgaGFuaCBreSANCmx1YXQ/ IFBobyBUaHUgVHVvbmcgdHJhIGxvaTogS3kgbHVhdCB0aGkga2hvbmcgY28gbmd1b2kgbGFtIHZp ZWMhIFRoYXQgbGEgdHV5IHRpZW4sIGNvaSANCnRodW9uZyBkb2kgdGhvYWkgdmEgdG8gcmEgdHJp bmggZG8gdmUgY29uZyB0YWMgY2FuIGJvIHRoYXAuIENhYyBkb25nIGNoaSBUcnVvbmcgQ2hpbmgs IA0KUGhhbSBWYW4gRG9uZywgTGUgRHVhbiBtYXQgY29uIGNvIG5ndW9pIGxhbSB0aGF5IHZpZWMg a2lhIG1hISBHaW9pIGNodXllbiBtb24gbmh1IA0KR2lhbyBTdSBUb24gVGhhdCBUdW5nIG1hdCBj byBuZ3VvaSB0aGF5IGR1b2MsIGh1b25nIGNoaS4uLg0KRG9uZyBjaGkgTmd1eWVuIFNpbmggSHVu ZyBjbyB4dSBodW9uZyBhcCBkYXQgdmEgaGFuIGNoZSBkYW4gY2h1OiANClZlIGR1IGFuIGR1b25n IHNhdCBjYW8gdG9jIHRyb25nIGtoaSB0aGFvIGx1YW4gZGFpIGJpZXUgY29uIGNvIHkga2llbiBr aGFjIHRoaSBQaG8gdGh1IA0KdHVvbmcgZ2lvIHRheSBjaGVtIHh1b25nLCB0dXllbiBibyBraG9u ZyB0aGUga2hvbmcgbGFtIGR1b25nIHNhdCBjYW8gdG9jLiBEbyBsYSB0aGlldSANCmxlIGRvIHRy dW9jIFF1b2MgSG9pIHZhIGxhIGFwIGRhdC4NClRyb25nIGtoaSBuZ2hpIHF1eWV0IHZhIGxhbmgg ZGFvIG5vaSBtbyByb25nIGRhbiBjaHUgbyBjbyBzbyB0aGkgUGhvIFRodSBUdW9uZyANCk5ndXll biBTaW5oIEh1bmcgbmdoaSByYSBzYW5nIGtpZW4gY2hvIGxhbSB0aGkgZGllbSBibyBIb2kgZG9u ZyBuaGFuIGRhbiBRdWFuLCANCkh1eWVuLCBQaHVvbmcgKFZpIHBoYW0gaGllbiBwaGFwKS4gTWEg ZGEgbGFtIHRoaSBkaWVtIGR1IHRoZSBuYW8gY3VuZyB0b25nIGtldCBsYSB0b3QgDQpob24sIGhh eSBob24uIFRoZSBsYSBuZ3VvaSBkYW4gbWF0IHF1eWVuIGJhdSByYSBjbyBxdWFuIGhheSBtYXQg bWluaCBkZSBnaWFtIHNhdCBjbyANCnF1YW4gaGFuaCBjaGluaCB0cnVjIHRpZXAga2llbiBuZ2hp LCBwaGUgYmluaCBjaHUgdGljaCwgcGhvIGNodSB0aWNoIFF1YW4sIEh1eWVuLCANClBodW9uZyB0 cm9uZyBjYWMga3kgaG9wLCBob2FjIGJhaSBtaWVuIGhvIGtoaSBjbyBzYWkgcGhhbSBuZ2hpZW0g dHJvbmcuIEJhbyByYW5nIHRvYW4gDQpkYW4gdHJvbmcgUXVhbiwgSHV5ZW4sIFBodW9uZyBkdW9j IGJhdSB0cnVjIHRpZXAgY2h1IHRpY2ggdGhlIGxhIGRhbiBjaHUgY2h1IGdpPyBNb2kgDQpuZ3Vv aSBkYW4gZGV1IGNvIHF1eWVuIGdpYW0gc2F0LCBraWVuIG5naGkgcGhlIGJpbmggY2hpbmggcXV5 ZW4uIERvIGxhIG5vaSBjaG8gcmEgdmUgDQpuZ3V5ZW4gdGFjIHRoZSB0aG9pLCB0aHVjIHRlIHRy ZW4gZ2lvaSB0aGlldSBvbmcsIGJhIG5hbyB1bmcgY3Ugbmd1b2kgZGFuIG5hbyBjbyBiaWV0IGFp IGxhIA0KYWksIGN1bmcgYm8gcGhpZXUgY2hvIHhvbmcgdGhvaS4gDQpDaHUgdGljaCBjbyBzYWkg cGhhbSBkZW4gbWF5IGN1bmcga2hvbmcgdGhlIGhvcCBjdSB0cmkgdG9hbiBRdWFuLCBIdXllbiwg UGh1b25nIGRlIA0KYmFpIG1pZW4gZHVvYy4gQ29uIG5vaSByYW5nIHRydW9uZyBob3AgZG8gZGEg Y28gY2FwIHRyZW4gY2FjaCBjaHVjLiBOaHVuZyBjYXAgdHJlbiBiYW4gDQpuaGlldSB2aWVjIHRo dW9uZyBpdCBzYXQgdGh1YyB0ZSBiZW4gZHVvaSwgdGh1b25nIGR1b2MgbmdoZSBjaHUgdGljaCBj YXAgZHVvaSBiYW8gY2FvLCANCnBoYW4gbmhpZXUgbGEgdGhhbmggdGljaCwgaG9uIG51YSBjYXAg dHJlbiBjdW5nIGNvIGl0IG5ndW9pIHRoaWV0IGRpZW4gdm8gdHUuIA0KQWkgY3VuZyBiaWV0IGRl biBuaHUgdmkga2hhaSBxdW9jIGNvbmcgdGhhbiBEYWkgVHVvbmcgVm8gTmd1eWVuIEdpYXAgZ3Vp IGJhbyBuaGlldSANCnRodSBjaG8gbGFuaCBkYW8gRGFuZyB2YSBRdW9jIEhvaSBjb24ga2hvbmcg ZHVvYyBjaHUgeSwgdGhpIG5ndW9pIGRhbiBndWkgdGh1IGtpZW4gDQpuZ2hpLCBwaGUgYmluaCwg dG8gY2FvIGNodSB0aWNoIHRoaSBkaSBkZW4gZGF1LCBraG9uZyBraGVvIGNvbiBiaSB0cnUgZGFw IGRpIG51YSBraWEuIEN1IA0KdGhlbyB0dSB0dW9uZyB2YSB4dSBodW9uZyBjdWEgUGhvIHRodSB0 dW9uZyBOZ3V5ZW4gU2luaCBIdW5nIHRoaSBkb2MgZG9hbiwgY2h1eWVuIA0KcXV5ZW4gY2FuZyBk ZSBiZSBwaGF0IHRyaWVuLg0KDQpUcm9uZyBuaGllbSBreSBjdWEgZG9uZyBjaGkgTmd1eWVuIFRh biBEdW5nIHZhIGRvbmcgY2hpIE5ndXllbiBTaW5oIEh1bmcsIGRhdCANCnJ1b25nIG1hdCByYXQg bmhpZXUgZG8gZGF1IHR1IGRpYSBvYyBxdWEgbmhpZXUsIGRvIGRpYSBwaHVvbmcgY2hvIHRodWUg ZGF0IGRhaSBoYW4gY3VuZyANCm5oaWV1IHZhIDE0MCBzYW4gZ29sZDsgcnVuZyBtYXQgY3VuZyBu aGlldSBkbyBsYW0gdGFjIHRhbiBwaGEga2hvbmcgdHJ1bmcgdHJpLCBkbyBjaGF5IA0KcnVuZywg dmEgY2hvIHRodWUgcnVuZyBkYWkgaGFuOyBraG9hbmcgc2FuIGJpIGtoYWkgdGhhYyB0cm9tIGJ1 YSBiYWk7IGxhbSBwaGF0IGRvbmcgdGllbiANCm1hdCBnaWEsIG5lbiBnaWEgY2EgdGFuZyB2b3Qs IGhvYyBwaGkgdGFuZywgdmllbiBwaGkgdGFuZywgbmd1b2kgbmdoZW8ga2hvbiBraG87IG5oYXAg DQpzaWV1IGhhbmcgbmFtIG5oaWV1LCBkdSB0cnUgbmdvYWkgdGUgbW9uZywgaGFuZyBzYW4geHVh dCB0cm9uZyBudW9jIGtobyBjYW5oIHRyYW5oLCAgDQp0aGFtIG5odW5nIGtob25nIGNob25nIGR1 b2Mgbmh1IGxvaSBodWEgYmFuIGRhdSBuZW4gaGFpIGRvbmcgY2hpIG1hdCB0aW4gbmhpZW0gdm9p IA0KZGFuLiBOZ2hpIHJhbmcgY2FjIGRvbmcgY2hpIG5lbiB0dSBraWVtIGRpZW0gdHJ1b2MgQmFu IGNoYXAgaGFuaCBUcnVuZyB1b25nIHZhIHhpbiB0dSANCm5oaWVtLg0KS2luaCBjaGFvIQ0KTmh1 bmcgY2FuIGJvIGNhY2ggbWFuZyBsYW8gdGhhbmggdmEgbmh1bmcgZGFuZyB2aWVuIHRhbSBodXll dCB2b2kgRGFuZyB2b2kgRGFuDQoNCkRBTkggU0FDSCBUVU9ORyBMSU5ILCBTSSBRVUFOIENBTyBD QVAgVEhBTSBHSUEgS0lFTiBOR0hJIA0KMS0gVGh1b25nIHR1b25nIE5ndXllbiBOYW0gS2hhbmgg LSBuZ3V5ZW4gVVZUVUQsIG5ndXllbiBQaG8gQ2h1IG5oaWVtIFRDQ1QuDQoyLSBUcnVuZyB0dW9u ZyBOZ3V5ZW4gUXVvYyBUaHVvYyAtIG5ndXllbiBVVlRVRCwgbmd1eWVuIFR1IGxlbmggUUs0LCBu Z3V5ZW4gDQpQaG8gQ2h1IHRpY2ggSG9pIENDQlRXLg0KMy0gVGhpZXUgdHVvbmcgTmd1eWVuIFRy b25nIFZpbmgsIGxhbyB0aGFuaCBjYWNoIG1hbmcsIG5ndXllbiBVVlRXRCwgbmd1eWVuIA0KY2hp bmggdXkgUUs0LCBuZ3V5ZW4gRGFpIHN1IFZpZXQgTmFtIHRhaSBUcnVuZyBRdW9jLg0KNC0gVHJ1 bmcgdHVvbmcgTGUgSHV1IER1Yywgbmd1eWVuIHBobyBUdSBsZW5oIFFLOyBuZ3V5ZW4gQ3VjIHRy dW9uZyBDdWMgdGFjIGNoaWVuIA0KLSBCbyBUVE0uDQo1LSBUcnVuZyB0dW9uZyBOZ3V5ZW4gWHVh biBNYXUsIGxhbyB0aGFuaCBjYWNoIG1hbmcsIG5ndXllbiBDaGluaCB1eSBQSy0gS1EsIA0Kbmd1 eWVuIHBobyBjaHUgbmhpZW0gVUJLVCBEYW5nIHV5IFF1YW4gc3UgVFcuDQo2LSBUaGlldSB0dW9u ZyBIdXluaCBEYWMgSHVvbmcsIGxhbyB0aGFuaCBjYWNoIG1hbmcsIG5ndXllbiBUaHUgdHJ1b25n IExEIC0gVEIgLSANClhIOyBuZ3V5ZW4gQ2hpbmggdXkga2llbSBUdSBsZW5oIHF1YW4gdGluaCBu Z3V5ZW4gVmlldCBOYW0gdGFpIExhby4NCjctIFRoaWV1IHR1b25nIE5ndXllbiBIdXUgQW5oLCBs YW8gdGhhbmggY2FjaCBtYW5nLCBuZ3V5ZW4gQ3VjIHRydW9uZyBDdWMgZG9pIA0KbmdvYWkgQm8g UXVvYyBwaG9uZy4NCjgtIFRoaWV1IHR1b25nIFRyYW4gTWluaCBEdWMsIGNhbiBibyB0aWVuIGto b2kgbmdoaWEsIG5ndXllbiBwaG8gVHUgbGVuaCBxdWFuIGtodSBUcmkgDQpUaGllbiwgUGhvIFZp ZW4gdHJ1b25nIEhvYyB2aWVuIEhhdSBjYW4uDQo5LSBUaGlldSB0dW9uZyBUbyBUaHVhbiwgY2Fu IGJvIHRpZW4ga2hvaSBuZ2hpYSwgbmd1eWVuIFBobyBUdSBsZW5oIC0gVGhhbSBtdXUgDQp0cnVv bmcgcGhhbyBiaW5oLg0KMTAtIFRoaWV1IHR1b25nIE5ndXllbiBIdXUgWWVuLCBjYW4gYm8gdGll biBraG9pIG5naGlhLCBuZ3V5ZW4gVHUgbGVuaCBiaW5oIGNodW5nIA0KY29uZyBiaW5oLg0KMTEt IFRoaWV1IHR1b25nIEJ1aSBRdXksIG5ndXllbiBQaG8gVHUgbGVuaCBUYW5nIHRoaWV0IGdpYXAu DQoxMi0gTWFpIFZ5OiBsYW8gdGhhbmggY2FjaCBtYW5nLCBuZ3V5ZW4gVGh1IHRydW9uZyBCbyBW YW4gSG9hIC0gVGhvbmcgdGluLCA3NCBuYW0gDQpob2F0IGRvbmcgY2FjaCBtYW5nLCBIdWFuIGNo dW9uZyBEb2MgbGFwIEhhbmcgMy4NCjEzLSBWdSBUaHVhbiwgQ2FuIGJvIGxhbyB0aGFuaCBjYWNo IG1hbmcsIEh1YW4gY2h1b25nIERvYyBsYXAgSGFuZyAzLg0KMTQtIERhaSB0YSBUcmFuIEJhLCBD Q0IsIDg1IHR1b2kgZG9pLCA2NCB0dW9pIGRhbmcsIDQ2IHR1b2kgcXVhbi4NCjE1LSBEYWkgdGEg UGhhbSBIaWVuLCBsYW8gdGhhbmggY2FjaCBtYW5nLg0KMTYtIERhaSB0YSBOZ3V5ZW4gVmFuIFR1 eWVuLCBjYW4gYm8gdGllbiBraG9pIG5naGlhLg0KMTctIERhaSB0YSBUcmFuIE5ndXllbiwgY2Fu IGJvIHRpZW4ga2hvaSBuZ2hpYS4NCjE4LSBEYWkgdGEgTmd1eWVuIEh1eSBWYW4gKEtpbSBTb24p LCBjaGllbiBzaSBWaWV0IE5hbSBnaWFpIHBob25nIHF1YW4uDQoxOS0gRGFpIHRhIE5nb2MgVGF0 LCA4NSB0dW9pIGRvaSwgNjAgbmFtIHR1b2kgZGFuZy4NCjIwLSBEYWkgdGEgTGUgVmFuIFRyb25n LCBjaGllbiBzaSBiaSB0dSBkYXkuDQoyMS0gRGFpIHRhIExlIE1haSBBbmgsIENDQiwgbHVhdCBn aWEsIGNhbiBibyBUVyBEb2FuLCBjYW4gYm8gQ1AgMjUgVFcsIENCIFZpZW4gS2llbSBzYXQgVG9p IGNhby4NCjIyLSBEYWkgdGEgVGEgQ2FvIFNvbiwgTmd1eWVuIHBobyB0aGFtIG11dSB0cnVvbmcg UUsyLg0KMjMtIERhaSB0YSBUcmFuIFRoZSBEdW9uZywgQ2h1IG5oaWVtIHBoYW8gYmluaCBRdWFu IGtodSBUaHUgRG8uDQoyNC0gSG8gU2kgQmFuZywgaHV5IGhpZXUgNjAgbmFtIHR1b2kgZGFuZywg Y2FuIGJvIHRpZW4ga2hvaSBuZ2hpYSwgODUgbmFtIHR1b2kgZG9pLCA2MyBuYW0gdHVvaSBkYW5n Lg0KMjUtIE5ndXllbiBWYW4gQmUsIDg2IHR1b2kgZG9pLCBsYW8gdGhhbmggY2FjaCBtYW5nIHRp ZW4ga2hvaSBuZ2hpYSwgdGllbiBib2kgQ29uZyBBbiBLaGFuaCBIb2EsIGNoaWVuIHNpIDIzLTEw IG1hdCB0cmFuIE5oYSBUcmFuZy4NCjI2LSBMZSBIdXUgSGEsIDY0IG5hbSB0dW9pIGRhbmcsIFR1 IGxlbmggY2hpZW4gZGljaCBUYXkgQmFjIC4NCjI3LSBOZ3V5ZW4gVGhpIEN1b25nLCBDYW4gYm8g dGllbiBraG9pIG5naGlhLCBIdWFuIGNodW9uZyBEb2MgTGFwIEhhbmcgQmEsIDY0IG5hbSB0dW9p IGRhbmcuDQoyOC0gVHJhbiBEdWMgUXVlLCBDaHV5ZW4gdmllbiB2YW4gdGFpLCBkYSBuZ2hpIGh1 dSwgdGhhbSBnaWEgZ2lhbyBsaWVuIHRob2kgY2hvbmcgUGhhcCB0YWkgdnVuZyB0YW0gY2hpZW0g SGEgTm9pLCBIdWFuIGNodW9uZyBraGFuZyBjaGllbiBIYW5nIE5oYXQuIA0KMjktIERhaSB0YSBU cmFuIERpbmgsIG5ndXllbiBwaG8gY2h1IG5oaWVtIGNoaW5oIHRyaS4NCjMwLSBOZ3V5ZW4gVmFu IENodW9uZywgQ2FuIGJvIENQIDM4IEJLVFROIGh1dSB0cmkuDQozMS0gTmd1eWVuIFRoaSBEaWVt LCBDaHUgdGljaCBUaGFuaCBuaWVuIHh1bmcgcGhvbmcgeGEgVHJ1bmcgVmFuLCBkYW5nIHZpZW4s IDc5IHR1b2kgZG9pLg0KDQpodHRwOi8vd3d3LnRvLXF1b2MubmV0L21lbW8vdG9xdW9jJTIwMDYw LTEwMC90b3F1b2MlMjAwODcvMCwsMTAyLmh0bWwgU28gODcgTmdheSAxNZYwNZYyMDEwIA0KDQpM R1Q6IFhpbiBnaW9pIHRoaWV1IGxhIHRodSBjdWEgMTcgdmkgTGFvIHRoYW5oLCBUdW9uZyBsYW5o LCBTaSBxdWFuLCBDYW4gYm8sIERhbmcgdmllbiwNCkNodXllbiB2aWVuIGNhbyBjYXA7IGd1aSB0 aHUgZG9pIE5vbmcgRHVjIE1hbmggdmEgQm8gY2hpbmggdHJpIHBoYWkga2llbSBkaWVtIG5odW5n IHNhaSBwaGFtIGtlbyBkYWksIHRydW9jIERhaSBob2kgMTEuICAgDQoNClRodSBndWk6IEJvIENo aW5oIHRyaSAtIEJhbiBCaSB0aHUgVHJ1bmcgVW9uZyB2YSBjYWMgVXkgdmllbiBCQ0hUVSBLaG9h IDEwDQoNCkhhIE5vaSwgbmdheSAyMiB0aGFuZyA0IG5hbSAyMDEwDQoNCk1vdCB0cm9uZyBuaHVu ZyBuaGllbSB2dSBjbyBiYW4gbmhhdCBjdWEgRGFpIGhvaSBkYWkgYmlldSB0b2FuIHF1b2MgY3Vh IERhbmcgc2FwIGRlbiANCihEYWkgaG9pIDExKSBsYSBiYXUgY3UgZHVvYyBCYW4gY2hhcCBoYW5o IFRXIGdvbSBuaHVuZyBkYWkgYmlldSB1dSB0dSBuaGF0IGN1YSBEYW5nLCANCm5odW5nIG5ndW9p IGd1b25nIG1hdSB2ZSBwaGFtIGNoYXQgZGFvIGR1YyBjYWNoIG1hbmcsIGNvIGJhbiBsaW5oIGNo aW5oIHRyaSB2dW5nIA0KdmFuZyBuaGF0LCBraWVuIGRpbmggbXVjIHRpZXUgbHkgdHVvbmcgZG9j IGxhcCBkYW4gdG9jIGdhbiBsaWVuIGNodSBuZ2hpYSB4YSBob2ksIGNvIHkgY2hpIA0KZGF1IHRy YW5oIGtpZW4gY3VvbmcgYmFvIHZlIGRvYyBsYXAsIGNodSBxdXllbiBxdW9jIGdpYSwgY28gdGFt IG5oaW4gY2hpZW4gbHVvYyB2YSBuYW5nIA0KbHVjIHRvIGNodWMgY2hpIGRhbyB0aHVjIGhpZW4g dGhhbmcgbG9pIG5naGkgcXV5ZXQgZGFpIGhvaS4gVG9uZyBiaSB0aHUgdmEgY2FjIHV5IHZpZW4g Qm8gDQpjaGluaCB0cmkgcGhhaSBsYSBuaHVuZyBuZ3VvaSB1dSB0dSBuaGF0IHRyb25nIEJDSC5U LlcuIER1dCBraG9hdCBraG9uZyBkZSBuaHVuZyANCm5ndW9pIGNvIGRpbmggZGVuIHRoYW0gbmh1 bmcgdmEgbmh1bmcgbmd1b2kgVmlldCBnb2MgbnVvYyBuZ29haSB2YW8gQkNILlQuVy4NCg0KRGUg Y28gZHVvYyBtb3QgQkNIIFQuVyBjbyBkYXkgZHUgY2FjIHRpZXUgY2hpIG5vaSB0cmVuLCBjb25n IHRhYyBuaGFuIHN1IGRhaSBob2kgY2FuIA0KZHVvYyB0aWVuIGhhbmggY29uZyBraGFpLCBkYW4g Y2h1LCBraGFjaCBxdWFuLCB0cm9uZyBzYW5nIHZhIHZvaSB0cmFjaCBuaGllbSBjYW8gY3VhIA0K bW9pIGRhaSBiaWV1Lg0KDQpOaGFuIHRodWMgcm8sIGRheSBkdSB0cmFjaCBuaGllbSB2YSBuZ2hp YSB2dSBuZ3VvaSBkYW5nIHZpZW4gZ2hpIHRyb25nIGRpZXUgbGUgRGFuZywgDQoNCmNodW5nIHRv aSBuaHVuZyBjYW4gYm8gY2FvIGNhcCBkYSBuZ2hpIGNhYyBjaHVjIGRhbmggY29uZyB0YWMgdHJv bmcgYmllbiBjaGUgbmhhIG51b2MsIA0KZGEgODAsIDkwIHR1b2kgZG9pOyA2MCCWIDcwIHR1b2kg RGFuZywgZGEgZGVtIGNhIHRhbSB0cmkgdmEgc3VjIGx1YyBjdWEgZG9pIG1pbmggY29uZyANCmhp ZW4gY2hvIHN1IG5naGllcCBjYWNoIG1hbmcgdmUgdmFuZyBjdWEgRGFuZywgY3VhIGRhbiB0b2Ms IHhpbiBkdW9jIGRvbmcgZ29wIG1vdCBzbyANCnkga2llbiB2ZSBjb25nIHRhYyBuaGFuIHN1IGRh aSBob2k6DQoNCjEuIFBoYWkgZGFtIGJhbyBjYWMgZGFpIGJpZXUgdmUgZHUgZGFpIGhvaSBjbyBk YXkgZHUgY2FjIHRpZXUgY2hpIGNhbiB0aGlldCwgcGhhaSBsYSBuaHVuZyANCm5ndW9pIHV1IHR1 IG5oYXQgdmUgcGhhbSBjaGF0LCBkYW8gZHVjLCBuYW5nIGx1Yy4gQm8gY2hpbmggdHJpLCBCYW4g QmkgdGh1IFQuVy4ga2hvYSAxMCANCnZhIEJhbiB0aGFtIHRyYSB0dSBjYWNoIGRhaSBiaWV1IGNh biBkZSBjYW8gdHJhY2ggbmhpZW0sIHJhIHNvYXQga3kgbHVvbmcsIGtlIGNhIHZvaSANCm5odW5n IGRhaSBiaWV1IGxhIHV5IHZpZW4gVC5XIGtob2EgMTAgZGUgcGhhdCBoaWVuIHZhIHRyaW5oIGRh aSBob2kgeGVtIHhldCB0dSBjYWNoIA0Kbmh1bmcgZGFpIGJpZXUgdnVhIHF1YSBjbyB2aSBwaGFt IGt5IGx1YXQgdmEgbmh1bmcgdmEgY28gZGF1IGhpZXUgdmkgcGhhbSBreSBsdWF0LCANCm5odW5n IG5ndW9pIGNvIGRpbmggZGVuIHRoYW0gbmh1bmcsIG5odW5nIGRhaSBiaWV1IGxhIG5ndW9pIFZp ZXQgZ29jIG51b2MgbmdvYWkuDQoNCjIuIERhbmggc2FjaCBkZSBiYXUgQkNIIFQuVyBwaGFpIHRv bmcgaG9wIHR1IDMgbmd1b246DQoNCi0gTW90IHBoYW4gY2hvIEJDSC5ULlcgY3UgZGUgY3UgKGto b2FuZyA2MCUpLg0KLSBNb3QgcGhhbiBraG9uZyBuaG8gbmVuIGRlIGNhYyBEYW5nIGJvLCBjYWMg ZGFuZyB2aWVuLCBkb2FuIGRhaSBiaWV1IGRlIGN1Lg0KLSBNb3QgcGhhbiBuZW4ga2h1eWVuIGto aWNoIGRhaSBiaWV1IHR1IHVuZyBjdS4NCg0KRGFuaCBzYWNoIGRlIGJhdSAodGluaCBjYSBjaGlu aCB0aHVjIHZhIGR1IGtodXlldCkgbmVuIGNvIHNvIGR1IGl0IG5oYXQgMjUlIHNvIHZvaSBzbyBj YW4gYmF1Lg0KDQpEYW5oIHNhY2ggYmF1IEIuQy5ULCBCYW4gYmkgdGh1LCBVQktUVFcgY2FuIGNv IHNvIGR1IGl0IG5oYXQgMjUlLiANCg0KRGFuaCBzYWNoIGJhdSBjaHVjIGRhbmggY3UgdGhlIG5l biBjbyB0dSAyIG5ndW9pIHRybyBsZW4uDQoNCi0gTmVuIGRlIGRhaSBob2kgdHJ1YyB0aWVwIGJh dSBUb25nIGJpIHRodS4gVmkgbGUgZG8gdmllYyB0aG9uZyBxdWEgZGlldSBsZSBzdWEgZG9pIG5l biBsYW0gdHJ1b2MgbHVjIGJhdSBjdS4gDQoNCjMuIEJDSCBULlcuIGtob2EgMTEga2hvbmcgbmVu IHZ1b3Qgc28gbHVvbmcgMTUwLCBraG9uZyBuZW4gY28gY2F1IHJhaSBkZXUgQm8sIG5nYW5oLCAN CnRpbmgsIHRoYW5oIG5hbyBjdW5nIGNvIHV5IHZpZW4gVC5XLiwgcXVhbiB0cm9uZyBsYSBjaGF0 IGx1b25nLg0KDQpUcmUgaG9hIGxhIGNhbiwgbmh1bmcga2hvbmcgcXVhIGN1bmcgbmhhYyB2ZSB0 dW9pIHRhYywgbWEgY2FuIG1vdCBzdSBrZSB0aHVhLCBoYWkgaG9hIA0KZ2l1YSBjYWMgZG8gdHVv aS4gQ3VuZyBjYW4gY28gbmdvYWkgbGUgdmUgdHVvaSB0YWMgdm9pIGNodWMgZGFuaCBUb25nIGJp IHRodS4gTmV1IGNvIA0KZG9uZyBjaGkgdXUgdHUgbm9pIHRyb2kgaG9uIGNhIHRyb25nIGNhYyBk YW5nIHZpZW4gdXUgdHUsIHBoYW0gY2hhdCBkYW8gZHVjIGd1b25nIG1hdSwgDQp0dXlldCBkb2kg dHJ1bmcgdGhhbmggdm9pIGx5IHR1b25nLCB2b2kgZGFuLCB2b2kgbnVvYywgY28gbmFuZyBsdWMs IGNvIHRhbSBuaGluIHhhLCBjbyBiYW4gDQpsaW5oIGNoaW5oIHRyaSB2dW5nIHZhbmcsIGNvIHkg Y2hpIHR1IGN1b25nIHR1IGNodSwgY28gdGluaCB0aGFuIGRhdSB0cmFuaCBiYW8gdmUgZG9jIGxh cCANCmNodSBxdXllbiB2YSBsb2kgaWNoIHF1b2MgZ2lhLCB0YWMgcGhvbmcgZGFuIGNodSwgY28g dXkgdGluIHRyb25nIERhbmcgdHJvbmcgZGFuLCBjbyBraGEgDQpuYW5nIGRvYW4ga2V0IHRvYW4g RGFuZywgdG9hbiBkYW4gdG9jIHRoaSB2YW4gZGUgdHVvaSBraG9uZyBkYXQgcmEsIG1pZW4gbGEg Y29uIGR1IHN1YyBraG9lIGRhbSBkdW9uZyB0cm9uZyB0cmFjaC4NCg0KNC4gRGFpIGhvaSB0b2Fu IHF1b2MgY3VhIERhbmcgbGFuIHRodSAxMSwgcGhhaSB0aHVjIHN1IGRhbiBjaHUsIHBoYWkgdGhl IGhpZW4gdG90IHRpbmggDQp0aGFuIHBoZSBiaW5oLCB0dSBwaGUgYmluaCwgcGhhaSBjbyB0aW5o IGNoaWVuIGRhdSwgcGhhaSB0cmFuaCBsdWFuIGRlIHRpbSByYSBjYWkgZHVuZyBjYWkgDQpzYWks IGtob25nIG5lbiBwaGF0IGJpZXUgdGhlbyBkb24gZGF0IGhhbmcuIEJvIGxvaSB0aGFtIGx1YW4g dHJhbmcgZ2lhbmcgZGFpIGhhaSwgbm9pIHZhaSANCmNhdSAibmhhdCB0cmkgdm9pIGJhbyBjYW8i IHJvaSBrZSBsZSB0aGFuaCB0aWNoIGN1YSB0aW5oIG1pbmgsIG5nYW5oIG1pbmggbW90IGNhY2gg dm8gYm8uDQoNCkNhYyB2YW4gZGUgY2h1bmcgY3VhIGRhaSBob2kgY2FuIGR1b2MgdGllbiBoYW5o IHRyb25nIGNhYyBwaGllbiBob3AgY29uZyBraGFpLCBoZXQgc3VjIA0KaGFuIGNoZSBuaHVuZyBj dW9jIGhvcCByaWVuZyB0YWkgY2FjIGRvYW4gZGFpIGJpZXUsIGtob25nIG5lbiBxdWEgbGFtIGR1 bmcgY2FjIHBoaWVuIA0KaG9wIHRydSBiaS4gQ2FuIGRhbmggdG9pIGRhIHRob2kgZ2lhbiBkYWkg aG9pIGNobyB2aWVjIHRoYW8gbHVhbiB0cmFuaCBsdWFuIHRhaSBob2kgdHJ1b25nLg0KDQo1LiBI aWVuIHRhaSBzbyBkYW5nIHZpZW4gdHJvbmcgZG9pIG5ndSBjYW4gYm8gaHV1IHRyaSBjYWMgY2h1 YyBkYW5oIHRyb25nIGJpZW4gY2hlIG5oYSANCm51b2MgdmEgdGhlbyBsdWF0IGxhbyBkb25nIGNo aWVtIGdpYSBtb3QgbnVhIHRyb25nIHRvbmcgc28gdHJlbiAzLDEgdHJpZXUgZGFuZyB2aWVuLiAN CkRhbmcgdmllbiBraG9uZyBodXUgdHJpIHZlIERhbmcsIGhvIHZhbiBjbyBkYXkgZHUgdHJhY2gg bmhpZW0sIG5naGlhIHZ1LCBxdXllbiBsb2kgDQp0cm9uZyBEYW5nLCBobyBwaGFpIGR1b2MgZG9p IHh1IGJpbmggZGFuZyBuaHUgbmh1bmcgZGFuZyB2aWVuIGR1b25nIGNodWMsIGR1b25nIA0KcXV5 ZW4uIFZpIGxlIGRvIHRyb25nIGRhaSBob2kgRGFuZyBjYWMgY2FwIGNobyBkZW4gZGFpIGhvaSB0 b2FuIHF1b2MgY3VhIERhbmcsIGhvIGNhbiANCmNvIG1vdCB0eSBsZSB0aGljaCBkYW5nIHRyb25n IHRoYW5oIHBoYW4gZGFpIGJpZXUgZGFpIGhvaSBjYWMgY2FwLiBOZXUgZHUgdGlldSBjaHVhbiB2 YSANCnN1YyBraG9lIGhvIGNvIHF1eWVuIHVuZyBjdSB2YW8gY2FjIGNhcCB1eSBEYW5nIHR1IGNv IHNvIHF1YW4sIGh1eWVuLCB0aW5oIHRoYW5oIGRlbiBULlcuDQoNCjYuIERlIGdpdXAgY2FjIGRv bmcgY2hpIHRyb25nIEJvIGNoaW5oIHRyaSwgQmFuIGJpIHRodSBULlcgRGFuZyBraWVtIGRpZW0g dHJhY2ggbmhpZW0gDQpjdWEgbWluaCB0cnVvYyBCQ0guVC5XIHZhIHRydW9jIGRhaSBob2ksIHJ1 dCByYSBkdW9jIG5odW5nIGJhaSBob2MgY2FuIHRoaWV0IGtob25nIA0Kbmh1bmcgY2hvIGJhbiB0 aGFuIG1hIGNvbiBjaG8gbmh1bmcgZG9uZyBjaGkgZ2l1IGNhYyB0cm9uZyB0cmFjaCB0cm9uZyBC byBjaGluaCB0cmkgLSANCkJhbiBCaSB0aHUgVC5XLiBraG9hIDExLCBjaHVuZyB0b2kgc2UgbGFu IGx1b3QgdGhhbSBnaWEgeSBraWVuLCB0cnVvYyBtYXQgdHJvbmcgcGhhbSB2aSANCmJ1YyB0aHUg bmF5LCB4aW4gZHVvYyBnb3AgeSB2b2kgNCBkb25nIGNoaToNCg0KbCwgVm9pIFRvbmcgYmkgdGh1 IE5vbmcgRHVjIE1hbmgsIG5vaSB0aHVjIGxhIGNhIGJhbiB0aGFuIGNodW5nIHRvaSBjdW5nIG5o dSBkdSBsdWFuIA0KZG9uZyBkYW8gY2FuIGJvLCBkYW5nIHZpZW4gdGhhdCB2b25nIHZlIG5odW5n IGdpIG1pbmggbW9uZyAgZG9pIHZhIGh5IHZvbmcgbyAyIG5oaWVtIA0Ka3kgVG9uZyBiaSB0aHUg Y3VhIGRvbmcgY2hpLiBEdSBsdWFuIGNoZSBuaGlldSBob24ga2hlbiBiYW4gbGluaCBjaGluaCB0 cmkgY3VhIGRvbmcgY2hpIA0KdHJvbmcgdW5nIHh1IHZvaSBuaGlldSBzdSBraWVuLCBuaGlldSBj b25nIHZpZWMgY2EgZG9pIG5vaSB2YSBkb2kgbmdvYWkuIE5ndW9pIHRhIGtob25nIA0KbHkgZ2lh aSBkdW9jIGRvIGxhIGRvIG5hbmcgbHVjIGhheSBkbyBzdWMgZXAgbmFvIGRvPyBEdSBsdWFuIG5o aWV1IGNhbiBibyBkYW5nIHZpZW4gY2hvIA0KcmFuZyB0cm9uZyBsdWMgZG9uZyBjaGkgY2h1YSB0 aHVjIGhpZW4gZGF5IGR1IGNodWMgbmFuZyBUb25nIGJpIHRodSAodmllYyBjaGluaCBjdWEgDQpt aW5oKSB0cm9uZyB4YXkgZHVuZyBEYW5nIGxhaSBsYW4gc2FuIHNhbmcgdmllYyBjdWEgQ2h1IHRp Y2ggbnVvYyB2YSBUaHUgdHVvbmcgKHRob2EgDQp0aHVhbiwga3kga2V0IHZvaSBjYWMgY2hpbmgg cGh1IG51b2MgbmdvYWkgbW90IHNvIG5vaSBkdW5nIHRodW9jIGNodWMgbmFuZyBuaGEgbnVvYyku IA0KQ28gZHUgbHVhbiBjaG8gcmFuZyBkb25nIGNoaSBkYSB2aSBwaGFtIG5ndXllbiB0YWMgdHJv bmcgcXVhbiBoZSB2b2kgbnVvYyBuZ29haSBvIA0Kbmh1bmcgdmFuIGRlIG1hIEJvIGNoaW5oIHRy aSBjaHVhIGJhbiBiYWMuDQoNCkxhIFRvbmcgYmkgdGh1IHNvbmcgaXQgdGhheSBkb25nIGNoaSBj aHUgZG9uZyBwaGF0IGhpZW4gdmEgZGUgeHVhdCBuaHVuZyB2YW4gZGUgY2FuIA0KYmFuLCBuaHVu ZyB2YW4gZGUgYnVjIHh1YyBjdWEgRGFuZywgY3VhIGRhdCBudW9jIGRlIEJvIGNoaW5oIHRyaSBi YW4gYmFjIHRoYW8gbHVhbi4gDQpDaGFuZyBoYW4gbmh1OiBwaGEgYm8gaG9pIHRydW9uZyBCYSBE aW5oIHNhdSBraGkgY28gcGhhbiB1bmcgcXV5ZXQgbGlldCBjdWEgbGFvIHRoYW5oIA0KY2FjaCBt YW5nLCBjdWEgY2FjIG5oYSBraG9hIGhvYywgY3VhIGRhIHNvIG5oYW4gZGFuOyBjaG8gbnVvYyBu Z29haSBkYXUgdHUga2hhaSB0aGFjIA0KQm8teGl0IFRheSBuZ3V5ZW47IHZhbiBkZSBjaHUgcXV5 ZW4gdHJlbiBiaWVuIGRhbzsgdmFuIGRlIGNvbmcgbmdoaWVwIHF1b2MgcGhvbmcsIA0KaGllbiBk YWkgaG9hIHF1YW4gZG9pOyBjYWMgdmFuIGRlIG5vaSBjb20gdmUgc2FpIHBoYW0gY3VhIFRvbmcg Y3VjIElJLCB2YSBOZ3V5ZW4gQ2hpIA0KVmluaC4gTmd1eWVuIENoaSBWaW5oIHBoYW0gY2hhdCB4 YXUgeGEsIGxhbSBuaGlldSBzYWkgdHJhaSwgRGFpIHR1b25nIFZvIE5ndXllbiBHaWFwIA0KZ3Vp IHRodSBjaG8gVC5CLlQga2hvbmcgbmVuIGRlIGJhdCBUcnVuZyB0dW9uZywgZC9jIE5vbmcgRHVj IE1hbmggdHJhIGxvaSBEYWkgdHVvbmcgDQpsYSAia2hvbmcgdGhhbmcgVHJ1bmcgdHVvbmcsIGNv biBjaHVhIGJpZXQgZHVhIGRpIGRhdSBkZSByZW4uLi4gbHV5ZW4iLCBuaHVuZyByb2kgdmFuIGRl IA0KYmF0IFRydW5nIHR1b25nIHZhIFRodSB0cnVvbmcgcXVvYyBwaG9uZywgY29uIHRhbmcgaHVh biBjaHVvbmcgY2FvIG51YSAobWEgZC9jIGxhaSBsYSANCkJpIHRodSBEYW5nIHV5IHF1YW4gc3Up LCBkZSBtb3Qgc28gbm9pIGNhcCB1eSBjYW4gdGhpZXAgc2F1IHZhbyB2aWVjIHRydXkgdG8geGV0 IHh1OyBjYWMgDQp2dSBhbiBtYSBCQ0ggVC5XLiBraG9hIDgsIGJhbiBnaWFvIGNobyBULlcga2hv YSA5LiANCg0KTGEgbmd1b2kgZHVuZyBkYXUgQm8gY2hpbmggdHJpLCB2b2kgdHJhY2ggbmhpZW0g Y2h1IHlldSB0cm9uZyB2aWVjIHhheSBkdW5nIERhbmcsIGRhIA0KZGUgbmh1bmcgdmFuIGRlIGNv dCBsb2kgdHJvbmcgRGFuZyBuaHUgZGFuIGNodSBub2kgYm8ga2hvbmcgdGh1YyBoaWVuLCB4YXkg ZHVuZyBkb2kgDQpuZ3UgY2FuIGJvIGRhbmcgdmllbiBsYW0gcXVhIGl0LiBUZSBxdWFuIGxpZXUg Y2h1eWVuIHF1eWVuIGRvYyBkb2FuIHBoYXQgdHJpZW4gbWFuaDsgDQpwaGUgYmluaCB0dSBwaGUg YmluaCBkYW4gZGFuIHZhbmcgYm9uZyB0cm9uZyBzaW5oIGhvYXQgY3VhIGNhYyB0byBjaHVjIERh bmcsIHR1IGNvIHNvIA0KZGVuIFQuVy4sIGRlbiBCbyBjaGluaCB0cmkuIEhhaSBuaGllbSBreSBy b2kgbWEgY2FpIGdvaSBsYSBtb3QgYm8gcGhhbiBraG9uZyBuaG8gY2FuIA0KYm8gZGFuZyB2aWVu IGNvIGNodWMgY28gcXV5ZW4gdGlldSBjdWMgY2hhbmcgbmh1bmcga2hvbmcgZHVvYyB0aHUgaGVw IG1hIGxhaSBsb24gZGFuIA0KbGVuLiBNYXQgZGFuIGNodSB2YSBjYW4gYm8gaHUgaG9uZyBkYSBs YW0gY2hvIERhbmcgbWF0IHRpbiBuaGllbSBxdWEgbG9uLiBOaGlldSBkdSANCmx1YW4gY2hvIHJh bmcgVG9uZyBiaSB0aHUgZGEgbG9pIGR1bmcgY2h1YyBxdXllbiBkZSBnbyBlcCBub2kgYXkgbm9p IGtpYSBkdWEgY29uIHRyYWksIA0KY29uIGdhaSwgY29uIHJlIHZhbyBjYWMgY2h1YyBkYW5oIG1h IG5hbmcgbHVjLCBwaGFtIGNoYXQsIGRhbyBkdWMga2hvbmcgdHVvbmcgeHVuZy4NCg0KMiwgRG9u ZyBjaGkgKGQvYykgdXkgdmllbiBCLkMuVCBOZ3V5ZW4gUGh1IFRyb25nOiBRdWEgaGFpIG5oaWVt IGt5IHRoYW0gZ2lhIEJvIGNoaW5oIA0KdHJpLCB2b2kgdmFpIHRybyBsYSBCaSB0aHUgVGhhbmgg dXkgSGEgTm9pLCBDaHUgdGljaCBIb2kgZG9uZyBseSBsdWFuIFQuVy4sIENodSB0aWNoIA0KUXVv YyBob2ksIHR1eSBjbyBsYW0gZHVvYyBtb3Qgc28gdmllYywgbmh1bmcgc28gdm9pIHRyb25nIHRy YWNoIHRoaSBjb24gbmhpZXUgaGFuIGNoZS4gDQpDYSBtb3QgdGhvaSBnaWFuIGRhaSBsYSBCaSB0 aHUgVGhhbmggdXkgSGEgTm9pIGRlIHRoYW5oIHBobyBxdWEgdHJpIHRyZTsgZGUgbmhpZXUgY2Fu IGJvIA0KZGluaCBkZW4gdGlldSBjdWMgdmUgdGFpIHNhbiwgdGFpIGNoaW5oLCBuaGEgZGF0LCBj byBjYSBDaHUgdGljaCB2YSBtb3Qgc28gUGhvIGNodSB0aWNoIA0KdGhhbmggcGhvLiBOZ2hpZW0g dHJvbmcgbGEgZGUgY2hvIENodSB0aWNoIGxvaSBkdW5nIGNodWMgcXV5ZW4gbGFtIGdpYXUsIGR1 bmcgdGllbiANCmNvbmcgcXV5IG11YSBvIHRvIHF1YSBkYXQsIHF1YSBzYW5nIGRlIGR1bmcgKG5n dW9pIHRhIGJhbyByYW5nIDMwMDAgY29uIHRyYXUgY3VhIG5vbmcgDQpkYW4pLiBMZW4gVC5XLiB2 b2kgY3VvbmcgdmkgQ2h1IHRpY2ggSG9pIGRvbmcgbHkgbHVhbiBjaHVhIHRoYXkgcGhhdCBoaWVu IGR1b2MgdmFuIGRlIA0KZ2kgbW9pIHZlIGx5IGx1YW4sIG5oaWV1IGR1IGx1YW4gY2hvIGRvbmcg Y2hpIGdpYW8gZGlldSwgc2FvIGNoZXAuDQoNCkxhIENodSB0aWNoIFF1b2MgaG9pIGNodWEgcGhh dCBodXkgZGFuIGNodSwgdHJpIHR1ZSBjdWEgY2FjIGRhaSBiaWV1IHZhIHF1eWVuIGx1YyBjYW8g DQpuaGF0IGN1YSBxdW9jIGhvaSBjaGkgeGluIG5ldSBtb3QgdmFpIHZpZWMgZGllbiBoaW5oOg0K DQotIFZpZWMgcGhhIGJvIGhvaSB0cnVvbmcgQmEgRGluaCwgbW90IGRpIHRpY2ggbGljaCBzdSBj YWNoIG1hbmcgdGlldSBiaWV1IGN1YSB0aG9pIGt5IGRhdSANCnhheSBkdW5nIENOWEggbyBtaWVu IEJhYywgZ2FuIHZvaSBuaGlldSBob2F0IGRvbmcgY3VhIEJhYyBIbzsgZ2FuIHZvaSAxMCBuaGll bSBreSANClF1b2MgaG9pIHZvaSBuaGlldSBkYWkgaG9pIERhbmcgdG9hbiBxdW9jIHZheSBtYSBi YXQgY2hhcCBjYWMga2llbiBuZ2hpIHRhbSBodXlldCBjdWEgDQpkb25nIGRhbyBjYWMgbmhhIGxh byB0aGFuaCBjYWNoIG1hbmcsIGNhYyBuaGFuIHNpIHRyaSB0aHVjLCBjYWMgbmhhIGtob2EgaG9j LCBuaGEgcXVhbiANCmx5IHZhIHR1eWV0IGRhaSBkYSBzbyBuaGFuIGRhbiwgZG9uZyBjaGkgZGEg dGh1eWV0IHBodWMgYmFuZyBkdW9jIFF1b2MgaG9pIGJpZXUgcXV5ZXQgDQp0aG9uZyBxdWEuDQoN Ci0gVmllYyBtbyByb25nIHRodSBkbyBIYSBOb2ksIHhvYSBkaSBoYW4gbW90IHRpbmggZGUgbmhh cCB2YW8gbW90IGRvbiB2aSBraGFjIHZheSBtYSANCkNodSB0aWNoIFF1b2MgaG9pIGtob25nIGNo dSBkb25nIGR1YSB2YW4gZGUgdHJvbmcgZGFpIGRvIHJhIFF1b2MgaG9pIGJhbiBiYWMgdGhhdSBk YW8sIA0KZHVhIFF1b2MgaG9pIHZhbyB0aW5oIHRoZSAidmllYyBkYSByb2kiLCBjaGFuZyBsYW0g dGhlIG5hbyBraGFjIGR1b2MhDQoNCi0gVmFuIGRlIGRhdSB0dSBraGFpIHRoYWMgQm8teGl0IG8g VGF5IE5ndXllbiwgbW90IHZpZWMgbGllbiBxdWFuIGRlbiBhbiBuaW5oIC0gcXVvYyANCiBwaG9u ZyBraG9uZyBuaHVuZyBvIFRheSBOZ3V5ZW4gbWEgdm9pIGNhIG51b2M7IGxpZW4gcXVhbiBkZW4g bW9pIHRydW9uZyBraG9uZyANCm5odW5nIG8gVGF5IE5ndXllbiBtYSB2b2kgbmhpZXUgdGluaCB0 aGFuaCBOYW0gYm87IGxpZW4gcXVhbiBkZW4gbG9pIGljaCBkb25nIGJhbyANCnRoaWV1IHNvIFRh eSBOZ3V5ZW47IGxpZW4gcXVhbiBkZW4gdmFuIGRlIGR1IHRydSB0YWkgbmd1eWVuIGxhdSBkYWkg Y3VhIGRhdCBudW9jLCB2YXkgDQptYSBraGkgZGkgdGhhbSBUaWVwIEtoYWMsIGtpZXUgYmFvIGhv aSwgZC9jIG5vaSBsYSB2YW4gZGUgbmhvIFF1b2MgaG9pIGtob25nIGNhbiBiYW4uDQpLaGkgaG9w IFF1b2MgaG9pLCBQaG8gVGh1IHR1b25nIE5ndXllbiBTaW5oIEh1bmcgbm9pIGRheSBsYSBjaHUg dHJ1b25nIGxvbiBjdWEgDQpEYW5nIHZhIE5oYSBudW9jLiBLaGkgbW90IHNvIGRhaSBiaWV1IHF1 b2MgaG9pIGRlIG5naGkgYmFuIHRoYW8sIHRoaSBDaHUgdGljaCBRdW9jIGhvaSANCmNhdCBraG9u ZyBjaG8gYmFuLCBub2kgcmFuZyB2YW4gZGUgZGEgZHVvYyBxdXlldCBkaW5oLg0KDQozLCBEb25n IGNoaSBOZ3V5ZW4gVGFuIER1bmcNCg0KUXVhIG1vdCBuaGllbSBreSBsYW0gUGhvIHRodSB0dW9u ZyB0aHVvbmcgdHJ1YyB2YSBtb3QgbmhpZW0ga3kgbGFtIFRodSB0dW9uZywgZC9jIA0KZGEgbGFt IGR1b2MgbW90IHNvIHZpZWMgbmh1IHhheSBkdW5nIGNvIHNvIHZhdCBjaGF0LCBtbyBtYW5nIGR1 b25nIHNhLCB4YXkgbmhpZXUgY2F1LCANCmNvIG5odW5nIGNhdSBoaWVuIGRhaSwgc2FuIGJheSwg YmVuIGNhbmcsIHBoYXQgdHJpZW4gZHUgbGljaCwgdGh1IGh1dCBkYXUgdHUsIGtpbmggdGUgY28g DQpwaGF0IHRyaWVuIChuaHVuZyBraG9uZyB2dW5nIGNoYWMpIGNvIGdvcCBwaGFuIG5hbmcgY2Fv IHZpIHRoZSBjdWEgbnVvYyB0YSB0cmVuIHRydW9uZyANCnF1b2MgdGUgdi52Li4uIA0KTmh1bmcg Y28gbmhpZXUgdmllYyB5ZXUga2VtLCBraG9uZyB0b3Q6DQotIEtob25nIGxhbSB0cm9uIHRyYWNo IG5oaWVtIHF1YW4gbHkgdGFpIHNhbiBOaGEgbnVvYy4NCg0KKyBEZSBsYW0gdGFjIHBoYSBydW5n IHJhdCBuaGlldSwgcnVuZyBjaGF5IG5oaWV1LCBsYWkgYmFuIHJ1bmcgbWF0IHJ1bmcgbmhpZXUg cXVhLCANCmNodW5nIHRvIFRodSB0dW9uZyBraG9uZyBxdWFuIGx5IGR1b2MgcnVuZy4NCisgTmhp ZXUgbm9pLCB0aGFuLCBraG9hbmcgc2FuIGNhYyBsb2FpICJiaSB0aG8gcGhpIiB2YSBraGFpIHRo YWMgYnVhIGJhaS4NCisgVGFpIGNoaW5oIHRoYXQgdGhvYXQgbmhpZXUsIGRvIHRoYW0gbmh1bmcs IGxhbmcgcGhpLiBCYW4gZGF1IFRodSB0dW9uZyBub2kgcmF0IGhhbmcsIA0Kbmh1bmcga2hvbmcg bmdhbiBjaGFuIGR1b2MsIGN1IHBoYXQgdHJpZW4sIHRpZW4gZGF1IHR1IHZhbyBjaGluaCBwaHUg ZGllbiB0dSBjb2kgbmh1IA0KbWF0IGtob25nLCBraG9uZyBkdW9jIHZpZWMgZ2ksIGRvIFZhbiBw aG9uZyBjaGluaCBwaHUgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIG5odW5nIHJvaSBjdW5nIHRyb2ku DQoNCi0gVGhpZW4gdmUgdGh1IGh1dCBkYXUgdHUgZGlhIG9jLCBudW9jIG5obyBtYSBkZSBwaGF0 IHRyaWVuIGhvbiB0cmFtIHNhbiBnb24sIGRlIGNobyANCmJhbiBkYXQgdHJhaSBwaGVwIG5oaWV1 IG5lbiBtYXQgcnVvbmcsIGRhdCByYXQgbmhpZXUgbmhhdCwgbm9uZyBkYW4gdGhhdCBuZ2hpZXAu DQoNCi0gSGFuZyBob2EgbnVvYyBuZ29haSB0cmFuIG5nYXAgdGhpIHRydW9uZywgbmhhcCBzaWV1 IGxpZW4gbWllbiwgc28gdGllbiBsb24uDQoNCi0gTGFtIHBoYXQga2hvbmcgaGFuIGNoZSBkdW9j LCB0aWVuIG1hdCBnaWEsIG1vaSB0aHUgbmh1IGNhdSBjdWEgZGFuIGdpYSBjYSB0YW5nIHZvdCwg Y28gdGh1IDEwMCUuDQoNCi0gVmF5IG5vIG51b2MgbmdvYWkgbmhpZXUgbmhhdCwgY2hvIGNhIGR1 IGFuIGtob25nIGNhbiBnYXAuDQoNCi0gTmdvYWkgcmEga2hhIG5oaWV1IGR1IGx1YW4gY2FjIHRp bmggbWllbiBOYW0sIGtlIGNhIG8gS2llbiBHaWFuZyBjaG8gcmFuZyBkb25nIGNoaSANCnZhIGdp YSBkaW5oIGNvIG5odW5nIGJpZXUgaGllbiB2ZSB0YWkgc2FuIGtob25nIG1pbmggYmFjaCwgeGF5 IG5oYSB0aG8gaG8gcXVhIGxvbiwgcXVhIA0KcXVpIG1vIGhvYW5oIHRyYW5nIHRvbiBkZW4gNDAg dHkgKHRyb25nIGtoaSBkbyB0aGkgSG9pIHRydW9uZyBCYSBEaW5oIGxpY2ggc3UgcXVhbiB0cm9u ZyANCmJhYyBuaGF0IGxhaSBwaGEgZGkpLg0KDQo0LCBEb25nIGNoaSBUbyBIdXkgUnVhIFVWIEJD VCBUcnVvbmcgYmFuIFR1IHR1b25nIFZhbiBob2EgVC5XLiwgY28ga2hhIG5oaWV1IGR1IA0KbHVh biB0dSBEbyBTb24sIHR1IEhhaSBQaG9uZyBjaG8gcmFuZyB0aG9pIGt5IG8gVGhhbmggdXkgSGFp IFBob25nIGRvbmcgY2hpIGRhIGRlIHhheSANCnJhIG5oaWV1IHZ1IHZpZWMgdGlldSBjdWMgdmUg bmhhIGRhdCwga2VvIGRhaSBraG9uZyBkdW9jIHh1IGx5IG5naGllbSBtaW5oLiBMZW4gVC5XLiAN CnZvaSB2YWkgdHJvIENodSB0aWNoIEhvaSBkb25nIGx5IGx1YW4sIGRvbmcgY2hpIGxhbSBkdW9j IHF1YSBpdCwgbmh1b2MgZGllbSBsb24gbGEgdGhpZXUgDQp0aHVjIHRlIGRvIHZheSBraG9uZyBw aGF0IGhpZW4gZHVvYyB2YW4gZGUgbmFvIG1hbmcgdGluaCBzYW5nIHRhbywgZGUgZ2lhbyBkaWV1 LCBzYW8gDQpjaGVwLiBWb2kgY2h1YyBkYW5oIFRydW9uZyBiYW4gVHUgdHVvbmcgVmFuIGhvYSBU LlcuLCBkdSBsdWFuIGNobyByYW5nIGNhIHZlIG1hdCBseSANCmx1YW4sIHR1IGR1eSBxdWEgbmdo ZW8gbmFuLCBtYSBuYW5nIGx1YyBob2F0IGRvbmcgdGh1YyB0aWVuIGN1bmcgcmF0IGhhbiBjaGUs IGRlIHF1YSANCm5oaWV1IHRpZXUgY3VjIHBoYXQgc2luaCB0cmVuIG1hdCB0cmFuIHR1IHR1b25n IJYgdmFuIGhvYSB0b2kgY2FwIGRvIGJhbyBkb25nLCBkYW4gZGVuIGJpIA0KZG9uZywgZG9pIHBo byBsdW5nIHR1bmcsIGRpIHRvaSBzdSBkdW5nIG5oaWV1IGNhYyBiaWVuIHBoYXAgaGFuaCBjaGlu aCwgbWVuaCBsZW5oLCBjYW0gDQpkb2FuIGxhbSBjaG8gdGluaCBoaW5oIGRhIHJvaSBjYW5nIHJv aSByYW0gdGhlbS4gDQpQaGF0IGRvbmcgaG9jIHR1IHR1b25nIGRhbyBkdWMgSG8gQ2hpIE1pbmgs IHR1b25nIHJhbmcgZGUgY2hpbmggZG9uIHR1IHR1b25nLCBuaHVuZyANCm5odW5nIG5ndW9pIG5h bSBxdXllbiBvIGNhYyBjYXAgbGEgZG9pIHR1b25nIGNhbiBob2MgbGEgY2hpbmggdGhpIGtob25n IG1heSBhaSBob2MsIA0Kbmh1bmcgY2FuIGJvIHRoYW0gbmh1bmcsIHF1YW4gbGlldSwgaGFjaCBk aWNoIHRoaSBraG9uZyBjbyBiaWV1IGhpZW4gZ2kgY2h1eWVuIGJpZW4gDQp0aGFuaCByYSB0b24g dGllbiB2byBpY2guIFR1eWVuIHRydXllbiBjaGkgbW90IGNoaWV1IHRvIGhvbmcsIGFpIG5vaSBs ZW4gc3UgdGhhdCB0aGkgY2FtLCANCmNvaSBsYSBrZSB4YXUuDQoNCkNhIDQgZG9uZyBjaGkgZGV1 IGRhIHRoYW0gZ2lhIDIgZGVuIDMgbmhpZW0ga3kgQkNIIFQuVy4gdmEgbmh1bmcgYmF0IGNhcCB2 YSBraHV5ZXQgDQpuaHVvYyBkaWVtIGN1YSBjYWMgZG9uZyBjaGksIHRpbiBuaGllbSBjdWEgY2Fj IGQvYyB0cm9uZyBkYW5nIHZpZW4gdmEgbmhhbiBkYW4gZ2lhbSANCnN1dCwgbW9uZyByYW5nIG5o aWVtIGt5IHRvaSBkYXkgKERhaSBob2kgMTEpIGNhYyBkb25nIGNoaSBuZW4gdGhvaSB1bmcgY3Us IG5odW9uZyBjaG8gDQpjaG8gY2FjIGRvbmcgY2hpIGtoYWMgZGUgY2hvIGxvbmcgdGluIGRvaSB2 b2kgRGFuZyBkdW9jIG5hbmcgbGVuLCBUbyBxdW9jLCBkYW4gdG9jIHBoYXQgDQp0cmllbiBuaGFu aCB2YSBjYWMgZC9jIGN1bmcga2hvbmcgbWFuZyB0aWVuZyB0aGFtIHF1eWVuLCBjbyB2aS4NCg0K WGluIGd1aSBkZW4gQm8gY2hpbmggdHJpIC0gQmFuIEJpIHRodSBULlcuIGxvaSBjaGFvIGtpbmgg dHJvbmcgdmEgY2h1YyBjYWMgZG9uZyBjaGkgY3VuZyANCnZvaSBCQ0ggVC5XLiBjaHVhbiBiaSB0 b3QgbmhhdCBjaG8gRGFpIGhvaSBkYWkgYmlldSB0b2FuIHF1b2MgY3VhIERhbmcgY2EgdmUgdmFu IGtpZW4gDQp2YSBuaGFuIHN1IGRhaSBob2kuDQogDQpEYW5oIHNhY2ggZG9uZyBreSB0ZW4NCg0K TGUgSHV1IER1YyCWIFRydW5nIFR1b25nIEYuNjUwIDg3IHR1b2kgZG9pIJYgNjQgdHVvaSBEYW5n IHRoYW0gZ2lhIG1hdCB0cmFuIFZpZXQgDQpNaW5oIHR1IHRoYW5nIDEwIG5hbSAxOTQzOiBUb2kg bmhhdCB0cmkgaG9hbiB0b2FuLCB4aW4gY2hvIGJvIHN1bmcgMiBkaWVtOg0KDQoxLiBWb2kgZG9u ZyBjaGkgTm9uZyBEdWMgTWFuaCAtIEtodXlldCBkaWVtIHRyYW0gdHJvbmcgbmhhdCBsYSBuZ2Eg aGFuIHZhbyBib24gDQpUcnVuZyBRdW9jLCBraG9uZyB0aGF5IGR1b2MgYW0gbXV1IG11b24gZG9p IGN1YSBUcnVuZyBRdW9jIGxhIG11b24gbnVvdCBjaHVuZyANCm51b2MgdGEsIGtob25nIHRoYXkg cXVhIDQwMDAgbmFtIGR1bmcgbnVvYyB2YSBnaXUgbnVvYywgY2hpIFZ1b25nIHRyaWV1IG5hbyBu aHUgDQpuaHVvYyBjaGF5IHRoZW8gYm9uIFRydW5nIFF1b2MgbGEgbWF0IG51b2MgaGF5IHNhbz8g Q2FuIGtpZW0gZGllbSBuZ2hpZW0ga2hhYyANCnRydW9jIGtoaSBuZ2hpIHZpZWMgZGUgbGFtIGd1 b25nIGNobyBuaHVuZyBkb25nIGNoaSBraGFjIHRyYW5oIHZldCB4ZSBkbyBuYXQgY3VhIGRvbmcg DQpjaGkgTm9uZyBEdWMgTWFuaC4NCg0KMi4gVm9pIGRvbmcgY2hpIE5ndXllbiBUYW4gRHVuZyB0 b2kgY3VuZyBuaGF0IHRyaSBuaHUgYmFuIHRyaW5oIGJheS4gVG9pIHRoYXkgZ2FuIGRheSANCmRv bmcgY2hpIER1bmcgY28gbW90IGNodSBkb25nIGRhbmcgaG9hbiBuZ2hlbmggbGEgZGEgbmhhdCB0 cmkgdm9pIEJvIFF1b2MgUGhvbmcgcXVhIA0KTmdhIG11YSBzYW0gdGF1IG5nYW0gdmEgbWF5IGJh eSBNaWMgMjkgdmUgdHJhbmcgYmkuIFZ1IGtoaSB0b2kgdGFuIG1vaSBnaXUgZHVvYyANClRydW9u ZyBTYSB2YSBjaG9uZyBsYWkgZHVvYyBtb2kga2UgeGFtIGx1b2MgdHUgcGhpYSBkb25nIFRvIFF1 b2MuIERlIG5naGkgZG9uZyBjaGkgDQpEdW5nIHRpZXAgdHVjIHVuZyBobyBCbyBRdW9jIFBob25n IG5lbiBkZSBOZ2EgdmFvIGxhaSBjYW4gY3UgQ2FtIFJhbmgsIGNvIG5odSB2YXkgDQp0aGkgbW9p IGRhcCB0YW4gbW9pIGFtIG11dSBiYW5oIHRydW9uZyBtdW9uIGNoaWVtIG51b2MgdGEgdHJ1b2Mg aGV0IGxhIGJvbiAiQWMgYmEgllRydW5nIFF1b2MiDQoNCk5ndXllbiBUcm9uZyBWaW5oIJYgTmd1 eWVuIFVWVFcgRGFuZyCWIExhbyB0aGFuaCBjYWNoIG1hbmcuDQoNCkh1eW5oIERhYyBIdW9uZyCW IFRoaWV1IFR1b25nLCBDaGluaCB1eSBRdWFuIGtodSwgVHUgbGVuaCBraWVtIENoaW5oIFV5IHF1 YW4gDQp0aW5oIG5ndXllbiB2YSBjaHV5ZW4gZ2lhIHF1YW4gc3UgdGFpIExhbywgVGh1IFRydW9u ZyBCbyBMYW8gRG9uZyAtIFRodW9uZyBCaW5oIFhhIEhvaS4NCk5ndXllbiBIdXkgVmFuIChLaW0g U29uKSCWIExhbyB0aGFuaCBjYWNoIG1hbmcgliA1MCB0dW9pIERhbmcuDQpOZ3V5ZW4gVGhpIEN1 b25nIJYgQ2FuIGJvIHRpZW4ga2hvaSBuZ2hpYSwgNjQgdHVvaSBEYW5nLCBIdWFuIGNodW9uZyBE b2MgbGFwIGhhbmcgMy4NClRyYW4gRHVjIFF1ZSCWIExhbyB0aGFuaCBjYWNoIG1hbmcsIENodXll biBWaWVuIGRhIG5naGkgaHV1Lg0KSHV1IEFuaCCWIFRoaWV1IFR1b25nLCBMYW8gdGhhbmggY2Fj aCBtYW5nLCBuZ3V5ZW4gY3VjIHRydW9uZyAuLi5CbyBRdW9jIFBob25nLg0KVHJhbiBCYSCWIEN1 dSBjaGllbiBiaW5oIE5hbSB0aWVuLCA4NSB0dW9pIGRvaSwgNDYgdHVvaSBxdWFuLCA2NCB0dW9p IGRhbmcuDQpMZSBIdXUgSGEgliBMYW8gdGhhbmggY2FjaCBtYW5nLCBUcnVvbmcgYmFuIHRvIGNo dWMgbGllbiBraHUgdXkgSVYsIGNodXllbiB2aWVuIHR1IA0KdmFuIGN1YSBjYWMgb25nIEh1eW5o IFRhbiBQaGF0LCBEbyBNdW9pLg0KTGUgTWFpIEFuaCCWIExhbyB0aGFuaCBjYWNoIG1hbmcsIGN1 dSBjaGllbiBiaW5oICwgZ2FuIDUwIHR1b2kgZGFuZy4NCk5ndXllbiBOYW0gliBMYW8gdGhhbmgg Y2FjaCBtYW5nLCBjdXUgY2FuIGJvIGNhYyBCYW4gVFcgRGFuZywgY3V1IGNhbiBibyBUVyBEb2Fu IFROTEQuDQpQaGFtIFZhbiBIaWVuIJYgRGFpIFRhLCBMYW8gdGhhbmggY2FjaCBtYW5nLg0KVHJh biBOZ3V5ZW4gliBMYW8gdGhhbmggY2FjaCBtYW5nLCA4NiB0dW9pIGRvaSwgNjAgdHVvaSBkYW5n LCA0MCB0dW9pIHF1YW4uDQpOZ3V5ZW4gQmEgQmFvIJYgQ2FuIGJvIHZpZW4gbmdoaWVuIGN1dSBC byBjb25nIG5naGllcCwgNzUgdHVvaSBkb2ksIDQ1IHR1b2kgZGFuZy4NCk5ndXllbiBWYW4gVHV5 ZW4gliBEYWkgVGEgUURORCBWaWV0IE5hbSwgTGFvIHRoYW5oIGNhY2ggbWFuZywgODUgdHVvaSBk b2ksIDYzIHR1b2kgZGFuZy4NClZ1IFRodWFuIJYgTGFvIHRoYW5oIGNhY2ggbWFuZywgODUgdHVv aSBkb2ksIDYwIHR1b2kgZGFuZywgSHVhbiBjaHVvbmcgZG9jIGxhcC4NCkxlIE1pbmggQ2hhdSCW IExhbyB0aGFuaCBjYWNoIG1hbmcsIDUwIHR1b2kgZGFuZy4NCk5ndXllbiBWYW4gQmUgliBMYW8g dGhhbmggY2FjaCBtYW5nIHRpZW4ga2hvaSBuZ2hpYSwgODYgdHVvaSBkb2kuDQpOZ3V5ZW4gVmFu IE1hdSCWIFRydW5nIFR1b25nLCBMYW8gdGhhbmggY2FjaCBtYW5nLCA5MCB0dW9pIGRvaSwgZ2Fu IDcwIHR1b2kgZGFuZy4gDQoNCi0NCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDIt MjctdHVvbmctZG9uZy1zeS1uZ3V5ZW4tY2FuaC1iYW8tdmllYy1jaG8tbnVvYy1uZ29haS10aHVl LXJ1bmcgVGh1IEhhIDI3LzAyLzIwMTAgMDY6MDAgR01UKzcgDQoNClRyYWNoIG5oaWVtIHBoYWkg bGVuIHRpZW5nIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEwLTAyLTI3LXR1b25n LWRvbmctc3ktbmd1eWVuLWNhbmgtYmFvLXZpZWMtY2hvLW51b2MtbmdvYWktdGh1ZS1ydW5nIFRo dSBIYSAyNy8wMi8yMDEwIDA2OjAwIEdNVCs3IA0KDQpUdW9uZyBEb25nIFN5IE5ndXllbiBjYW5o IGJhbyB2aWVjIGNobyBudW9jIG5nb2FpIHRodWUgcnVuZw0KDQotIER1b2MgYmlldCBvbmcgZGEg Y28gdGh1IGd1aSBjYWMgY2FwIGxhbmggZGFvIGNvIHRoYW0gcXV5ZW4gY2FuaCBiYW8gbmd1eSBj byB0dSB2aWVjIGNobyBudW9jIG5nb2FpIHRodWUgZGF0IHJ1bmcgZGF1IG5ndW9uIGRhaSBoYW4u IFZpIHNhbyBvbmcga2hvbmcgZG9uZyB0aW5oIHZvaSB2aWVjIG5heT8NCg0KQWkgbGFtIGdpIHRv aSBraG9uZyBiaWV0IG5odW5nIHRvaSB0aGF5IGRheSBsYSBtb3QgdHJhY2ggbmhpZW0gcGhhaSBs ZW4gdGllbmcuDQpEYWMgZGllbSBudW9jIHRhIG5obyBob24gbW90IHRpbmggY3VhIFRydW5nIFF1 b2MsIGNoaWV1IG5nYW5nIGhlcCwgY2hpZXUgZGFpIGRhaSwgZG8gZG9jIG51aSBkbyByYSBiaWVu IHJhdCBnYW4sIGNhYyBjb24gbHUgcXVldCBuaGFuaCBuZ2FuZyB0aWVuZyBkb25nLCB0aGllbiB0 YWkgeGF5IHJhIGxpZW4gdHVjLCBtb2kgdHJ1b25nIG5nYXkgY2FuZyB4YXUgZGksIGRhYyBiaWV0 IG51b2MgYmllbiBkYW5nIG1hdCB0aGVtIGRpZW4gdGljaCBydW9uZyBkb25nIGJhbmcuIERheSBs YSBtb3QgaGllbSBob2EgY3VjIGxvbiBsaWVuIHF1YW4gZGVuIGFuIG5pbmggbmhpZXUgbWF0IGN1 YSBxdW9jIGdpYS4NCk5nb2FpIGNodXllbiBjaGF0IHJ1bmcgZGF1IG5ndW9uIGdheSBsdSBsdXQg dG9pIGNvbiBiYW4ga2hvYW4gbyBjaG8gbmhpZXUgZGlhIGRpZW0gY2hvIHRodWUgY28gdmkgdHJp IGNoaWVuIGx1b2MgdmEgZGlhIGNoaW5oIHRyaSB0cm9uZyB5ZXUuIE5obyBsYWkgY2FjIHRob2kg a2hhbmcgY2hpZW4sIHRhdCBjYSBjYWMgdGluaCBkZXUgY28gY2FuIGN1IGxhIGNhYyB2dW5nIHJ1 bmcgbnVpLCBraGFuZyBjaGllbiBjaG9uZyBQaGFwIHRhIGNvIFZpZXQgQmFjLCBraGFuZyBjaGll biBjaG9uZyBNeSB0YSBjbyBydW5nIFRydW9uZyBzb24gdmEgdnVuZyBUYXkgTmFtIEJvLiBOaHVu ZyBkYXQgcnVuZyBkYXUgbmd1b24gbmF5IGRldSBuYW0gdHJvbmcgZGF0IGNhbiBjdSBob2FjIG8g dnVuZyBiaWVuIGdpb2kuIFZpIGR1LiBOZ2hlIEFuIGRhbmcgY2hvIHRodWUgbyBUdW9uZyBEdW9u ZywgUXV5IENoYXUsIFF1eSBIb3AgZGF5IGxhIDMgZGlhIGJhbiBwaGVuIGRhdSBxdW9jIGdpYS4g TGFuZyBTb24gY3VuZyB2YXkuDQoNCkRhbmcsIE5oYSBudW9jIHRhIHRyb25nIHRob2kgZG9pIG1v aSBjYW4gc3UgZHVuZyBkYXQgY2hvIGNhYyBtdWMgdGlldSBsYSBjYW4gdGhpZXQgbmh1bmcgcGhh aSBjYW4gbmhhYyBreSBxdXkgbW8sIGRpYSBkaWVtLCB0aW5oIHR1bmcgbWV0IGRhdC4gVHJvbmcg a2hpIGRhbiB0YSBjb24gdGhpZXUgZGF0LCB0aGlldSBuaGEsIHRoaWV1IHZpZWMgbGFtLCB0cmll dCBkZSBraG9uZyBiYW4sIGtob25nIGNobyBudW9jIG5nb2FpIHRodWUgZGFpIGhhbiBkZSBraW5o IGRvYW5oLCB0cm9uZyBydW5nIG5ndXllbiBsaWV1LCBkaWEgb2MsIHNhbiBnb24sIHNvbmcgYmFj Li4uDQoNClR1eSBkYSBtdW9uLCBuaHVuZyBuZ2F5IHR1IGJheSBnaW8sIGJhdCBjdSBjYXAgbmFv IGRldSBwaGFpIHRyYW4gdHJvbmcgdHVuZyB0YWMgZGF0IGN1YSBxdW9jIGdpYS4gSGFtIGxvaSBu aGF0IHRob2ksIHZhbiBkYWkgZG8gdmFvIGRhdSBjaGF1IGNoYXQuIE1hdCBjdWEgY2FpIGNvIHRo ZSBsYW0gbGFpIGR1b2MsIGNvbiBtYXQgZGF0IGxhIG1hdCBoYW4uDQoNCk5oaWV1IHkga2llbiBw aGFuIGRvaSwgY2hpbmggcXV5ZW4gdGluaCB2YW4ga3kNCg0KLSBDbyB5IGtpZW4gY2hvIHJhbmcg a2llbiBuZ2hpIGN1YSBvbmcgYmF0IG5ndW9uIHR1IHZpZWMgdGhpZXUgdGhvbmcgdGluIGNoaW5o IHhhYywgZG8gZG8gcGhhbiB1bmcgbmh1IHZheSBsYSBjbyBwaGFuIGN1YyBkb2FuPw0KDQpUb2kg Y28gdGhvbmcgdGluIGNodSBraG9uZyBwaGFpIGNoaSBuZ2hlIG5vaSBkYXUgZG8uIFNvIGRpIHRv aSBjbyB0aG9uZyB0aW4gbGEgZG8gYW5oIGVtIG8gYm8gY2hpIGh1eSBxdWFuIHN1IHRpbmggdmEg Y29uZyBhbiBiYW8gbGVuLiBOZ2F5IGtoaSBuaGFuIGR1b2MgdGluIGJhbyB0b2kgZGEgZ29pIHZl IGNhYyBkaWEgcGh1b25nIGRlIGhvaSwgbGFuaCBkYW8gdGluaCBjdW5nIGNvbmcgbmhhbiB2b2kg dG9pIGxhIGNvIGNodXllbiBkby4NCg0KTyBtb3Qgc28gZGlhIHBodW9uZywgY29uZyBhbiB2YSBi byBjaGkgaHV5IHF1YW4gc3UgdGluaCBkYSBsZW4gdGllbmcgbmdhbiBjYW4gbmh1bmcgY2hpbmgg cXV5ZW4gdmFuIGt5LiBUaGFtIGNoaSwgY28gbm9pIENodSB0aWNoIHRpbmgga2kgY2hvIG51b2Mg bmdvYWkgdGh1ZSBkYXQgcnVuZyBkYXUgbmd1b24uDQoNCkhvaSBhbmggVm8gVmFuIEtpZXQgbGFt IFBobyBUaHUgdHVvbmcsIGFuaCBLaWV0IGNvIGdpYW8gY2hvIHRvaSBsYW0gZGFjIHBoYWkgdmll biBoYWkgdmllYzogTW90IGxhIGxhbSBzYW8gY2hhbSBkdXQgZHVvYyB2aWVjIGRvdCBydW5nOyBI YWkgbGEgdGFtIHRob2kgZGluaCBjaGkgdmllYyB4dWF0IGtoYXUgZ28uIEFuaCBLaWV0IGNobyBk ZW4gbHVjIGN1b2kgZG9pIHZhbiBjb24gdHJhbiB0cm8gdm9pIDIgcGhhbiB2aWVjIG5heS4NCg0K VHJvbmcgbW90IHZhbiBiYW4gdXkgcXV5ZW4gY2hvIHRvaSwgYW5oIGdoaSBybyBnaWFvIGRvbmcg Y2hpIERvbmcgU3kgTmd1eWVuIGNvIHF1eWVuIHh1IGxpIHRhaSB0cmFuIGtob25nIGNhbiBiYW8u IEdheSBnYXQgZGVuIHRoZSB0cm9uZyB2aWVjIGdpdSBydW5nIGdpdSBkYXQuIERlIGRvbmcgYmFv IGNvIHN1YyB0cm9uZyBydW5nLCBhbmggS2lldCBjb24gY2hvIGNobyBnYW8gdHUgcGhpYSBOYW0g cmEgdGllcCB0cm8uDQoNClRyb25nIGJheSBuYW0gZHVvYyBEYW5nLCBDaGluaCBwaHUgZ2lhbyBw aHUgdHJhY2ggY2h1b25nIHRyaW5oIDMyNywgdG9pIGRhIGN1bmcgY2FjIGJvLCBjYWMgZGlhIHBo dW9uZyBsYW4gbG9pIGtoYXAgbW9pIG5lbyBydW5nLCB2ZW4gYmllbiwgY2FjIGRhbzsgZGEgdHVu ZyBsZW8gbmhpZXUgbmdvbiBudWkgY2FvIGhhbmcgMTAwMG0sIHR1IGJ1b2MgY2hhbiwgcXVhIG9u ZyBuaG9tIGRhIHRhbiBtYXQgdGhheSBjYW5oIHRhbiBwaGEgcnVuZyBkZSBsYW0gbnVvbmcgcmF5 LCBjaGF0IHBoYSBnbyBxdXkgZGUgc3UgZHVuZyB2YSB4dWF0IGtoYXUuDQoNCk1vaSBuZ3V5IGhh aSBjdWEgdmllYyB0YW4gcGhhIHJ1bmcgZGF1IG5ndW9uIHRoZSBuYW8gbW9pIG5ndW9pIGRldSBk YSByby4gQm9pIHZheSwgdHJvbmcgcnVuZyBkYXUgbmd1b24gbGEgdmFuIGRlIHNvbmcgY29uLCBs YSBzaW5oIG1lbmggY3VhIG5ndW9pIGRhbiwgY2h1bmcgdGEga2hvbmcgY2hpIHRyb25nIHJ1bmcg bWEgY29uIHBoYWkgYmFvIHZlIHJ1bmcuDQoNCkRhIGNobyB0aHVlIGhvbiAzMDAgbmdhbiBoYSBy dW5nDQoNCi0gRGVuIG5heSBvbmcgZGEgbmhhbiBkdW9jIHBoYW4gaG9pIG5hbyB2ZSBraWVuIG5n aGkgY3VhIG1pbmggY2h1YT8NCg0KS2hpIHRvaSBndWkga2llbiBuZ2hpIGxlbiB0aGkgY28gbmhh biBkdW9jIGRpZW4gdGhvYWkgY3VhIFRodSB0dW9uZy4gVGh1IHR1b25nIG5vaSB2b2kgdG9pIGxh IGRhIG5oYW4gZHVvYyB0aHUgdmEgZGFuZyBnaWFvIGNobyBCbyBOb25nIG5naGllcCBkaSBkaWV1 IHRyYSB0aHVjIHRlLiBCbyBOb25nIG5naGllcCBjdW5nIGRhIHRodWMgaGllbiBjaGkgZGFvIGN1 YSBUaHUgdHVvbmcgZGlldSB0cmEgeG9uZyB2YSBndWkgbGFpIGJhbmcgdmFuIGJhbiBjaG8gdG9p Lg0KDQotIEtldCBxdWEgZGlldSB0cmEgY3VhIEJvIE5vbmcgbmdoaWVwIHJhIHNhbywgdGh1YSBv bmc/DQoNCkJvIE5vbmcgbmdoaWVwIGRvbmcgeSB2b2kgdG9pIHZpZWMgMTAgdGluaCBjaG8gbnVv YyBuZ29haSB0aHVlIHJ1bmcgZGF1IG5ndW9uIGxhIHN1IHRoYXQuIEJvIGRhIHRydWMgdGllcCBr aWVtIHRyYSB0YWkgMiB0aW5oIExhbmcgU29uLCBRdWFuZyBOaW5oLiBOZ29haSByYSB0b25nIGhv cCB0dSBiYW8gY2FvIGN1YSA4IHRpbmggQ2FvIEJhbmcsIE5naGUgQW4sIEhhIFRpbmgsIFF1YW5n IE5hbSwgQmluaCBEaW5oLCBLb24gVHVtIHZhIEJpbmggRHVvbmcuIDEwIHRpbmggbmF5IGRhIGNo byAxMCBETiBudW9jIG5nb2FpIHRodWUgZGF0IHJ1bmcgZGF1IG5ndW9uIGRhaSBoYW4gKDUwIG5h bSkgdHJvbmcgcnVuZyBuZ3V5ZW4gbGlldSB2b2kgdG9uZyBkaWVuIHRpY2ggaG9uIDMwMCBuZ2Fu IGhhLCB0cm9uZyBkbyBETiB0dSBIb25na29uZywgRGFpIExvYW4sIFRydW5nIFF1b2MgY2hpZW0g dHJlbiAyNjQgbmdhbiBoYSwgODclIG8gY2FjIHRpbmggeHVuZyB5ZXUgYmllbiBnaW9pLg0KRG8g bGEgbW90IHRhbSBuaGluIHJhdCBuZ2FuIQ0KDQotIEdpb2kgY2h1YyBkaWEgcGh1b25nIGtoaSBk dW9jIHBob25nIHZhbiBkYSBiYWMgYm8gcXVhbiBuZ2FpIHZvaSBseSBkbyBjYWMgZHUgYW4gZGV1 IGRhIGR1b2MgY2FuIG5oYWMga3kgbHVvbmcgdmkgbG9pIGljaCBjdWEgY29uZyBkb25nIGRhbiBj dS4gT25nIG5naGkgc2FvIHZlIGxhcCBsdWFuIG5heT8NCg0KTm9pIG5odSB0aGUgbGEga2hvbmcg dGh1eWV0IHBodWMuDQpOZ2F5IHRyb25nIGJhbyBjYW8gY3VhIEJvIE5vbmcgbmdoaWVwIGN1bmcg ZGEgeGFjIG5oYW4gbW90IHN1IHRoYXQgbGEgbW90IHNvIG5vaSBkYSB0aHUgaG9pIGRhdCBjdWEg ZGFuIChkYXQgbGFtIG5naGllcCB0aHVjIHRlIGRhIGNvIGNodSkgZGUgZ2lhbyBjaG8gbnVvYyBu Z29haSB0aHVlLg0KDQpUaGVvIHR1IG5oaWVuLCBkYW4gZG9uZyBiYW5nIHBoYWkgY28gcnVvbmcs IG5ndW9pIG1pZW4gbnVpIHBoYWkgY28gcnVuZy4gTmF5IGNobyB0aHVlIGhldCBkYXQgcnVuZyB0 aGkgbmd1b2kgZGFuIHNlIG11dSBzaW5oIHRoZSBuYW8sIGRpZXUgZG8gY2FuIHBoYWkgbGFtIHJv LiBCYW8gbmhpZXUgY3VvYyBraGFuZyBjaGllbiBjdWEgdGEgY3VuZyBjaGkgdmkgbXVjIHRpZXUg bmd1b2kgY2F5IGNvIHJ1b25nLCBuZ3VvaSBkYW4gbWllbiBudWkgY28gcnVuZy4gQ2FjaCBtYW5n IHRoYW5oIGNvbmcgY3VuZyBuaG8gbXVjIHRpZXUgZG8gbWEgbmd1b2kgZGFuIGh1b25nIHRoZW8u DQoNClZpZWMgbG8gY2hvIGRhbiBwaGFpIGxhIHZpZWMgZGF0IGxlbiBoYW5nIGRhdSwgdHJ1b2Mg Y2EgdmllYyB0aHUgbmdhbiBzYWNoLiBDdSBkdWEgdmFvIG5odW5nIGxhcCBsdWFuIG5odSB0YW5n IHRodSBuZ2FuIHNhY2ggZGUgY28gbmh1bmcgcXV5ZXQgZGluaCB2aSBkdSBuaHUgY2hvIG5ndW9p IG51b2MgbmdvYWkgdGh1ZSBkYWkgaGFuIGRhdCBydW5nIGRhdSBuZ3VvbiBsYSBtb3QgdGFtIG5o aW4gcmF0IG5nYW4hDQoNClNhbyBraG9uZyB0dSBob2kgdmkgc2FvIGNhYyBETiBudW9jIG5nb2Fp IGxhaSBjaG9uIHRodWUgZGF0IGNodSB5ZXUgbyBMYW5nIFNvbiwgQ2FvIEJhbmcsIFF1YW5nIE5p bmgsIGRhYyBiaWV0IG8gTmdoZSBBbiwgSGEgVGluaCwgUXVhbmcgQmluaCwgbm9pIGNvIHRydWMg ZHVvbmcgNywgZHVvbmcgOCBzYW5nIExhbywgZHVvbmcgZGkgbGVuIFRheSBOZ3V5ZW4/IFJvIHJh bmcgZG8gbGEgbmh1bmcgdGluaCB4dW5nIHlldSBiaWVuIGdpb2ksIGNvIG5odW5nIHZpIHRyaSBk aWEgY2hpZW4gbHVvYyBtYW5nIHRpbmggY290IHR1LiBCYW4gdGhhbiBkYW4gbnVvYyBtaW5oIGN1 bmcgZGFuZyB0aGlldSB2aWVjIGxhbS5WYSBraGkgZGEgdGh1ZSBkdW9jIHJvaSB0aGkgbGlldSBo byBjbyBzdSBkdW5nIGxhbyBkb25nIGxhIG5ndW9pIFZpZXQgTmFtIGhheSBsYSBkdWEgbmd1b2kg Y3VhIGhvIHNhbmc/DQoNCkxheSBuZ2F5IHZpIGR1IHZpZWMgY2hvIG51b2MgbmdvYWkgdGh1ZSBk YXQgbyBEbyBTb24uIFRvaSBkYSB0cnVjIHRpZXAgZGVuIGtpZW0gdHJhLCB4dW5nIHF1YW5oIGto dSB2dWMgZG8sIGhvIGNobyBkb25nIG5odW5nIGNvdCBtb2MgdG8gbmh1IGNvdCBtb2MgYmllbiBn aW9pIHZhIGtob25nIGNobyBuZ3VvaSBWaWV0IHZhbyBkby4gQ2FuIHZlIGN1YSB0b2kgdGllcCBj YW4geGluIHZhbyBobyBjdW5nIGtob25nIGNobywgZGVuIGtoaSB0b2kgdHJ1YyB0aWVwIHh1b25n IHhlLCBsYW0gY2FuZyBxdWEgbW9pIHZhbyBkdW9jLg0KDQpWaWVjIG1vdCBzbyBkaWEgcGh1b25n IG5vaSByYW5nIGNvIG5odW5nIHZpIHRyaSBjaG8gbmd1b2kgbnVvYyBuZ29haSB0aHVlIHZpIGJh byBsYXUgbmF5IHZhbiBkZSB0cm9uZywgbm9pIG5odSB2YXkgbGEgdm8gdHJhY2ggbmhpZW0sIGRp YSBiYW4gYW5oIHF1YW4gbGkgbWEgZGUgbmh1IHRoZSB0dWMgbGEgZGEga2hvbmcgbGFtIHRyb24g bmhpZW0gdnUuIEhvaSB0b2kgZGkgbGFtIGR1IGFuIDMyNywgdG9pIHJvIGxhbSwgZGFuIG1pbmgg bHVjIG5hbyBjdW5nIHRoaWV1IGRhdCwgbXVvbiBsYW0gZHUgYW4gY29uIGtob25nIGNvIG1hIGxh bSwgc2FvIGNvIGRhdCBkZSBraG9uZyBkdW9jLg0KDQpLaWVuIG5naGkgZGluaCBjaGkgbmdheSBu aHVuZyBkdSBhbiBjaHVhIGt5DQoNCi0gVmF5IHRoZW8gb25nLCBjaHVuZyB0YSBjYW4gcGhhaSBs YW0gZ2kgdHJ1b2MgaGllbiB0cmFuZyBuYXk/IA0KDQpNb3Qgc28gdGluaCBkYSBsbyBreSB2b2kg ZG9hbmggbmdoaWVwIG51b2MgbmdvYWkgY2FuIHRpbSBjYWNoIHRodXlldCBwaHVjIGhvIGtob2Fu IGNobyBkb25nIGJhbyB0YWkgY2hvIHRyb25nLiBEYWMgYmlldCBjYWMgdGluaCB0aHVvYyB2dW5n IHh1bmcgeWV1IGJpZW4gZ2lvaSwgbmh1bmcgdGluaCBjaHVhIGt5IGRpbmggY2hpIG5nYXkuIFRo YXkgdmFvIGRvLCBodXkgZG9uZyBjYWMgZG9hbmggbmdoaWVwIHRyb25nIG51b2MgZGF1IHR1LCBr ZXQgaG9wIHN1IGR1bmcgbW90IHBoYW4gdm9uIGNodW9uZyB0cmluaCA1IHRyaWV1IGhhIHJ1bmcg ZGUgdGh1YyBoaWVuLg0KDQpDYWMgdGluaCBjaGkgZGFvIGNhYyBodXllbiwgY2FjIGxhbSB0cnVv bmcgbGFwIHJhIGJvIHBoYW4gY2h1eWVuIHRyYWNoLiBUcm9uZyB2b25nIG1vdCBuYW0sIGNoaW5o IHRodWMgZ2lhbyBraG9hbiBkYXQsIGtob2FuIHJ1bmcgY2hvIHR1bmcgaG8uIFRyb25nIGJhbiwg dHJvbmcgeGEgY2FwIHNvIGRvIHF1eWVuIHNvIGh1dSBzdSBkdW5nIGRhdCBydW5nIHZhbyBtdWMg ZGljaCB0cm9uZyBydW5nIHBob25nIGhvIGtldCBob3AgcnVuZyBraW5oIHRlLg0KVHUgZGF5LCB0 b2kgZGUgbmdoaSBtbyByb25nIGNodW9uZyB0cmluaCB4b2EgZG9pIGdpYW0gbmdoZW8gbyBtaWVu IG51aSB0aGFuaCBjaHVvbmcgdHJpbmggbGFtIGdpYXUgY2hvIGRvbmcgYmFvIG1pZW4gbnVpLCBr ZXQgaG9wIGJvIHRyaSB0YWkgZGluaCBjdSBjdWEgY2FjIGNvbmcgdHJpbmguIERpZXUga2llbiBs YW0gZ2lhdSBvIG1pZW4gbnVpIHRvdCBob24gbyBkb25nIGJhbmcuDQoNCkRhdCBkYWkgbGEgdGh1 IHRhaSBzYW4gbmhheSBjYW0sIG11b24gZG9pLCB2aSBoaWVuIHRhaSB2YSB0dW9uZyBsYWkgY3Vh IGRhbiB0b2MsIGhheSB0aW5oIHRvYW4gY2hhdCBjaGUgdHVuZyB0YWMgZGF0IGNobyBjYWMgbXVj IGRpY2ggY2FuIHN1IGR1bmcuDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL2luX2Rl cHRoL0NoaW5hLUhvbmdrb25nLWFuZC1UYWl3YW4tdG8tbGVhc2UtVmlldG5hbS1yaXZlcmhlYWQt Zm9yZXN0JTIwLTAyMTIyMDEwMTIwODUzLmh0bWwgTWFjIExhbSwgcGhvbmcgdmllbiBkYWkgUkZB IDIwMTAtMDItMTINCg0KVGh1IHR1b25nOiBDaG8gVHJ1bmcgUXVvYyB0aHVlIHJ1bmcgYmllbiBn aW9pIA0KDQpUaG9uZyB0aW4gdmUgdmllYyBoYWkgdGluaCBMYW5nIFNvbiB2YSBRdWFuZyBOaW5o IGRhIGN1bmcgdm9pIG5oaWV1IHRpbmgga2hhYyBhbSB0aGFtIGNobyAxMCBkb2FuaCBuZ2hpZXAg bnVvYyBuZ29haSB0aHVlIGRhdCBydW5nIGRhdSBuZ3VvbiBkYWkgaGFuICg1MCBuYW0pIGRlIHRy b25nIHJ1bmcgbmd1eWVuIGxpZXUgdm9pIHRvbmcgZGllbiB0aWNoIGhvbiAzMDUgbmdoaW4gaGEs IHRyb25nIGRvIEhvbmcgS29uZywgRGFpIExvYW4sIFRydW5nIFF1b2MgY2hpZW0gdHJlbiAyNjQg bmdoaW4gaGEsIG8gY2FjIHRpbmggbWllbiBiaWVuIGdpb2kuIA0KDQpNYWMgTGFtIHRoZW8gZG9p IGNhdSBjaHV5ZW4gcXVhIGJhaSBwaG9uZyB2YW4gVGhpZXUgVHVvbmcgTmd1eWVuIFRyb25nIFZp bmgsIG5ndW9pIGN1bmcgdm9pIFRydW5nIFR1b25nIERvbmcgU2kgIE5ndXllbiB2dWEgZ3VpIGtp ZW4gbmdoaSBsZW4gQmFuIEJpIFRodSAgeWV1IGNhdSBsYW0gcm8gdmllYyBuYXkuDQoNCkhvbiAz MDAgbmdoaW4gaGEgcnVuZyBkYXUgbmd1b24gDQoNCk1hYyBMYW06IFRodWEgVGhpZXUgVHVvbmcs IGNhbSBvbiBvbmcgZGEgY2hvIHBoZXAgY2h1bmcgdG9pIHRodWMgaGllbiBjdW9jIHBob25nIHZh biBuYXkuIFRodWEgb25nLCBtb2kgZGF5IGNvIHRob25nIHRpbiBjaG8gYmlldCBtdW9pIHRpbmgg ZG9jIGJpZW4gZ2lvaSB2YSBjbyB0aW5oIG8gZGF1IG5ndW9uIGRhIGFtIHRoYW0gY2hvIFRydW5n IFF1b2MsIEhvbmcgS29uZywgRGFpIExvYW4gdGh1ZSBydW5nIHRyb25nIHRob2kgaGFuIDUwIG5h bS4gVGhpZXUgdHVvbmcgY3VuZyB2b2kgVHJ1bmcgdHVvbmcgRG9uZyBTeSBOZ3V5ZW4gZGEgZ3Vp IHRodSBraWVuIG5naGkgbGVuIHRodSB0dW9uZyBjaGluaCBwaHUsIHhpbiBvbmcgY2hvIGJpZXQg dGhlbSBtb3QgaXQgY2hpIHRpZXQgdmUgdmllYyBuYXkuDQoNClRoaWV1IFR1b25nIE5ndXllbiBU cm9uZyBWaW5oOiBDYWkgbmF5IGxhIGRvIGNhYyB0aW5oIGhvIGxhbS4gVGF0IG5oaWVuIHRyYWNo IG5oaWVtIHRodW9jIHZlIFRodSB0dW9uZyB2aSB0aHUgdHVvbmcga2hvbmcgcXVhbiBseSBkdW9j IA0KDQpNYWMgTGFtOiBWYW5nIHRodWEgVGhpZXUgdHVvbmcsIHRoZW8gdmFuIGJhbiBtYSBjaHVu ZyB0b2kgZHVvYyBiaWV0IHRoaSBzbyBsdW9uZyBydW5nIGRhdSBuZ3VvbiBjaG8gY2FjIG51b2Mg dGh1ZSBsZW4gdG9pIDI2NCBuZ2FuIGhlYyB0YSBydW5nIGRhdSBuZ3Vvbi4gRG9uZyB0aGFpIG5h eSBxdWEgbmd1eSBoaWVtIHZhIGFpIGN1bmcgdGhheSByYW5nIGtoaSBjaG8gdGh1ZSBydW5nIGRh dSBuZ3VvbiBuaHUgdmF5IHRoaSBoYSBuZ3VvbiBzZSBnYXAga2hvIGtoYW4gbmhhdCBsYSB2YW4g ZGUgY2hhdCBjYXksIHBoYSBydW5nIG8gbmhpZW0gbW9pIHRydW9uZyB2YSBhbiBuaW5oIHF1b2Mg cGhvbmcuIFRob25nIHRpbiBtYSBUaGlldSB0dW9uZyBuaGFuIGR1b2MgdGhpIGRvIGtoYSB0aW4g Y28gY2FvIGhheSBraG9uZyB0aHVhIG9uZz8NCg0KVGhpZXUgVHVvbmcgTmd1eWVuIFRyb25nIFZp bmg6IEFuaCBob2kgbGEgbm8gY28gY2hpbmggeGFjIGhheSBraG9uZz8gQ2FpIG5heSBsYSBsYSB0 aG8gZGF1IHRpZW4gY3VhIGRvbmcgY2hpIERvbmcgU3kgTmd1eWVuIHBoYXQgaGllbiB0aW5oIFF1 YW5nIE5pbmggdmEgTmdoZSBBbiwgYmFvIGNhbyBsZW4gQm8gQ2hpbmggVHJpIHRoaSBibyB0cnVv bmcgTm9uZyBOZ2hpZXAgdmEgUGhhdCBUcmllbiBOb25nIFRob24gbW9pIGN1IGRvYW4gbGllbiBu Z2FuaCBkaSBraWVtIHRyYSBjYWMgdGluaCB0aGkgc2F1IGtoaSB2ZSBrZXQgbHVhbiBsYSBuaHUg dGhlLiBEYXkgbGEga2V0IGx1YW4gY3VhIGJvIHRydW9uZyBOb25nIE5naGllcCB2YSBQaGF0IFRy aWVuIE5vbmcgVGhvbiBjaHUga2hvbmcgcGhhaSB0dSBhaSBuZ2hpIHJhIGRhdS4gQ2h1bmcgdG9p IGN1bmcgY2FuIGN1IHZhbyBjYWkgYmFvIGNhbyBuYXkgY3VhIG9uZyBCbyB0cnVvbmcgDQoNCk1h YyBMYW06IFRodWEgVGhpZXUgVHVvbmcgbmV1IGRvIGNoaW5oIHhhYyAxMDAlIG5odSB2YXkgdGhp IHRoaWV1IHR1b25nIGRhIGhvaSB5IHZvaSB0cnVuZyB0dW9uZyBEb25nIFN5IE5ndXllbiB2YSB2 YW4gZGUgbmF5IGxpZW4gcXVhbiBkZW4gcXVvYyBwaG9uZyByYXQgbGEgcm8uDQpUaGlldSBUdW9u ZyBOZ3V5ZW4gVHJvbmcgVmluaDogQ2EgcXVvYyBwaG9uZywgY2EgdGFpIG5hbiBjaG8gbmhhbiBk YW4gbyBtaWVuIGhhIGR1LiBDYSBjYW4gbnVvYyBjYWMgbmd1b24gdGh1eSBsb2kuIFRvaSBkYSBu b2kgZGF5IGR1IHRyb25nIGNhaSB0aG8gY3VhIHRvaSBndWkgY2hvIHRydW5nIHVvbmcuIA0KDQpN YWMgTGFtOiBUaGlldSB0dW9uZyBkYSBndWkgY2hvIHRydW5nIHVvbmcgdmF5IG9uZyBkYSBuaGFu IGR1b2MgcGhhbiBob2kgaGF5IGNodWE/DQpUaGlldSBUdW9uZyBOZ3V5ZW4gVHJvbmcgVmluaDog Q2h1YSBjby4uY2h1bmcgdG9pIGd1aSwgZG9uZyBjaGkgTmd1eWVuIGN1bmcgZ3VpIGNobyB0cnVu ZyB1b25nLCB0b2kgY3VuZyBndWkgY2hvIHRydW5nIHVvbmcgcGhhbiB0aWNoIGxvaSBoYWkuIERv bmcgY2hpIERvbmcgU3kgTmd1eWVuIGN1bmcgbmh1IHRvaSBkZSBuZ2hpIGR1bmcgbmdheSBsYXAg dHVjIGhheSBsYSBodXkgbmh1bmcgaG9wIGRvbmcgYXkgZGkuIENvbiBuaGEgY2FtIHF1eWVuIG5n dW9pIHRhIGdpYWkgcXV5ZXQgbmh1IHRoZSBuYW8gdGhpIHRvaSBjaHVhIGJpZXQNCg0KaHR0cDov L3d3dy50dW9pdHJlLmNvbS52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTEwMzA4MyZD aGFubmVsSUQ9MyAxNC8xMC8yMDA1LCAxMTo0MyAoR01UKzcpDQoNClRodSB0dW9uZzogTWF0IHJ1 bmcgbyBWaWV0IE5hbSBsYSBuZ3V5ZW4gbmhhbiBjaHUgeWV1IGRhbiB0b2kgaG9hbmcgbWFjIGhv YQ0KDQpEaWV1IHRyYSBjdWEgQm8gTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBOb25nIHRob24g dnVhIGNobyBiaWV0LCBoaWVuIG5heSwgVmlldCBOYW0gZGFuZyB4YXkgcmEgaGllbiB0dW9uZyBz YSBtYWMgaG9hIGN1YyBibywgdm9pIGtob2FuZyBnYW4gNyw5IHRyaWV1IGhhIHRyb25nIHRvbmcg c28gdHJlbiA5LDMgdHJpZXUgaGEgZGF0IHR1IG5oaWVuIGJpIGhvYW5nIGhvYS4gDQoNCkRpZW4g dGljaCBuYXkgZGEgdmEgZGFuZyBjaGl1IHRhYyBkb25nIG1hbmggYm9pIG5ndXkgY28gc2EgbWFj IGhvYSwgYmFvIGdvbToNCg0KLSA3IHRyaWV1IGhhIGRhdCB0cm9uZyBiaSB0aG9haSBob2EgZGll biByb25nLCBkYXQgZGEgb25nIGhvYTsgDQotIFRyZW4gODUwLjAwMCBoYSBkYXQgYmkgbmhpZW0g bWFuLCBwaGVuLCB4b2kgbW9uLCBraG8gaGFuLCBjYXQgYmF5Li4uIHRoZW8gbXVhIGhvYWMgdmlu aCB2aWVuLCBwaGFuIGJvIGNodSB5ZXUgdGFpIGNhYyB0aW5oIFRheSBOZ3V5ZW4sIFRheSBCYWMs IFR1IEdpYWMgTG9uZyBYdXllbiB2YSBOYW0gVHJ1bmcgQm8uIA0KDQpVb2MgdGluaCwgcXVhIHRy aW5oIHNhIG1hYyBob2EgbyBudW9jIHRhIG1vaSBuYW0gbGFtIG1hdCBkaSBoYW5nIGNodWMgaGEg ZGF0IG5vbmcgbmdoaWVwIGRvIGFuaCBodW9uZyBjdWEgY2F0IGJheSwgY2F0IGNoYXkgdmEgaGFu ZyB0cmFtIGhhIGRhdCBkYW4gdGhvYWkgaG9hIG5naGllbSB0cm9uZy4NCk1hdCBydW5nIG8gVmll dCBOYW0gbGEgbmd1eWVuIG5oYW4gY2h1IHlldSBkYW4gdG9pIGhvYW5nIG1hYyBob2EsIGdheSBz dXkgdGhvYWkgbW9pIHRydW9uZywgbHUgbHV0IHZhIGhhbiBoYW4uIFRodSB0cnVvbmcgQm8gTm9u ZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBOb25nIHRob24gSHVhIER1YyBOaGkgY2hvIGJpZXQgbmh1 IHZheSB0YWkgSG9pIHRoYW8gdGh1YyBoaWVuIENvbmcgdW9jIGNob25nIHNhIG1hYyBob2Egc2Fu ZyA4LTktMjAwNCB0YWkgSGEgTm9pLg0KVGh1IHRydW9uZyBIdWEgRHVjIE5oaTogTWF0IHJ1bmcg byBWaWV0IE5hbSBsYSBuZ3V5ZW4gbmhhbiBjaHUgeWV1IGRhbiB0b2kgaG9hbmcgbWFjIGhvYQ0K VGhlbyBUaHUgdHJ1b25nIEh1YSBEdWMgTmhpLCBtYWMgZHUgbW90IGxvYXQgY2h1b25nIHRyaW5o IG5odSBDaHVvbmcgdHJpbmggMzI3IHBodSB4YW5oIGRhdCB0cm9uZyBkb2kgdHJvYywgdmEgRHUg YW4gdHJvbmcgbW9pIG5hbSB0cmlldSBoZWN0YSBydW5nIGRhIG5hbmcgZG8gY2hlIHBodSBsZW4g MzYlIHNvbmcgdmllYyBwaHVjIGhvaSBydW5nIHZhbiBjaHVhIGRhcCB1bmcgZHVvYyBuaHUgY2F1 IHBoYXQgdHJpZW4gZG9pIHNvbmcga2luaCB0ZS14YSBob2kgY3VhIG5oYW4gZGFuIGRpYSBwaHVv bmcsIHlldSBjYXUgcGhvbmcgaG8gdmEgY2h1YSBoYW4gY2hlIHRpY2ggY3VjIHF1YSB0cmluaCBo b2FuZyBtYWMgaG9hLiANClNhIG1hYyBob2EgY28gbmdoaWEgbGEgc3Ugc3V5IHRob2FpIGN1YSBk YXQgZGFpIHRhaSBjYWMgdnVuZyBraG8gaGFuLCBiYW4ga2hvIGhhbiwgdnVuZyBhbSBudWEga2hv IGhhbg0KDQpodHRwOi8vd3d3LnR1b2l0cmUuY29tLnZuL1RpYW55b24vSW5kZXguYXNweD9BcnRp Y2xlSUQ9MzQ4NzE2JkNoYW5uZWxJRD0zDQoNClRodSB0dW9uZyB0cmEgbG9pIGNoYXQgdmFuIHRy dW9jIFF1b2MgaG9pOg0KDQoiVG9pIGNodWEgeHUgbHkga3kgbHVhdCBkb25nIGNoaSBuYW8iLSBU aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nDQoNCk5vaSB0aWVwIGNhdSBjaHV5ZW4gY2h1IHRpY2gg dGluaCBIYSBHaWFuZyBuYW0gbGFuIGtob25nIGNoYXAgaGFuaCBjaGkgZGFvIGN1YSBUaHUgdHVv bmcsIGRhaSBiaWV1IFRyYW4gVGhpIFF1b2MgS2hhbmggKEhhIE5vaSkgZGF0IHJhIG5odW5nIHRo YWMgbWFjOg0KIlZpIHNhbyBUaHUgdHVvbmcgY2h1YSB0aHVjIGhpZW4gaGV0IG5oaWVtIHZ1LCBx dXllbiBoYW4gZHVvYyBwaGFwIGx1YXQgZ2lhbywgbmhhdCBsYSB0aHVjIGhpZW4gcXV5ZW4gbWll biBuaGllbSwgY2FjaCBjaHVjIG1vdCBzbyBsYW5oIGRhbyBVQk5EIHRpbmgsIFRQIHRydWMgdGh1 b2MgdHJ1bmcgdW9uZyBkYSBraG9uZyB0dWFuIHRodSBjaGkgZGFvIGN1YSBjYXAgdHJlbj8gVGh1 IHR1b25nIGNvbiBnYXAga2hvIGtoYW4gZ2kgaGF5IG5nYWkgeHUgbHkgY2FuIGJvIGxhbmggZGFv IGNhcCBkdW9pIGNvIHNhaSBwaGFtPyIuIA0KDQpCbyBzdW5nIHRoZW0gY2hvIHRoYWMgbWFjIGN1 YSBiYSBLaGFuaCwgZGFpIGJpZXUgTmd1eWVuIERpbmggWHVhbiAoVGF5IE5pbmgpIG5oYWM6IA0K IlRodSB0dW9uZyBkYSBuaGlldSBsYW4gcGhhdCBiaWV1IG5ldSBkaWEgcGh1b25nIG5hbyBkZSBt YXQgcnVuZyB0aGkgbGFuaCBkYW8gZGlhIHBodW9uZyBkbyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0u IFRyb25nIG5hbSB2dWEgcXVhIGNodW5nIHRhIG1hdCByYXQgbmhpZXUgcnVuZywgbW9pIG5hbSBt YXQgNTEuMDAwaGEgcnVuZywgbmh1bmcgVGh1IHR1b25nIGNodWEga3kgbHVhdCBhaS4gVmF5IHhp biBob2kga2hpIG5hbyBUaHUgdHVvbmcgc2UgbGFtIHZpZWMgbmF5PyIuDQoNClRodSB0dW9uZyBO Z3V5ZW4gVGFuIER1bmcga2hhbmcgZGluaCBjbyBuaGlldSBsYW5oIGRhbyBkaWEgcGh1b25nIHJh dCBuZ2hpZW0gdHVjLCByYXQgdHJhY2ggbmhpZW0gdm9pIG1lbmggbGVuaCBjdWEgY2FwIHRyZW4s IG5naGkgcXV5ZXQgY3VhIGNhcCB0cmVuLCBjbyB0cmFjaCBuaGllbSB2b2kgbmhhbiBkYW4sIHZv aSBkYXQgbnVvYy4uLiBPbmcgY3VuZyB0aHVhIG5oYW4gdmFuIGNvbiBtb3QgYm8gcGhhbiBjaHVh IG5naGllbS4gDQoNClRodSB0dW9uZyBub2kgdGllcDogIlh1IGx5IGt5IGx1YXQgY3VuZyBwaGFp IHRoZW8gdHJpbmggdHUgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCwgdGhlbyB0aW5oIGNoYXQsIG11 YyBkbyBjdWEgdHVuZyBzdSB2aWVjLCB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQgdmEgcXV5 IGRpbmggY3VhIERhbmcuIFZpZWMgbmF5IENoaW5oIHBodSBjdW5nIG5odSBUaHUgdHVvbmcgaGV0 IHN1YyBjbyBnYW5nIGxhbSBkYXkgZHUgY2h1YyBuYW5nLCBuaGllbSB2dSwgcXV5ZW4gaGFuIGN1 YSBtaW5oLiANClRvaSBuaG8gZG9uZyBjaGkgUGhhbSBWYW4gRG9uZyAtIGNvIGxlIGxhbSB0aHUg dHVvbmcgbGF1IG5oYXQgLSBjbyBsYW4gbm9pIGNodWEgeHUgbHkga3kgbHVhdCBtb3QgZG9uZyBj aGkgbmFvLiBIb24gYmEgbmFtIG5heSB0b2kgbGFtIHRodSB0dW9uZyBjdW5nIGNodWEgeHUgbHkg a3kgbHVhdCBtb3QgZG9uZyBjaGkgbmFvLCBjaGFjIGxhIGN1bmcgcGhhaSBob2MgdGhlbyBkb25n IGNoaSBQaGFtIFZhbiBEb25nLiBUcmVuIHRpbmggdGhhbiBkbywgcmF0IG1vbmcgY2EgaGUgdGhv bmcgY2hpbmggdHJpIGN1YSBjaHVuZyB0YSBjbyB0cmFjaCBuaGllbSBjdW5nIG5oYXUsIGNhYyBk b25nIGNoaSBkdW5nIGRhdSBkaWEgcGh1b25nIG1hIG5naGllbSB0dWMgdGh1YyBoaWVuIG5oaWVt IHZ1IHRoaSBjaHVuZyB0YSBjdW5nIGtob25nIG1vbmcgbXVvbiBjbyBreSBsdWF0LCBjbyB4dSBs eSIuDQoNCmh0dHA6Ly9kYW5sdWFuLm9yZy9ub2RlLzM0OTINCg0KVGh1IHR1b25nOiBNb2kgbmd1 b2kgY28gY2FjaCByaWVuZyBkZSBsdW9uIGxhY2ggdmEgdG9uIHRhaS4gVGF0IGNhIGRldSAia2hv biIsIGtob25nIGFpIGNoaXUgImRhaSIgY2EuIEtldCBxdWEgdG9uZyBob3AgbGEgZGF0IG51b2Mg dmFuIHRpZXAgdHVjIHF1YW4gcXVhaSB0cm9uZyBkb2MgdGFpIHZhIGxhYyBoYXUuIA0KDQpodHRw Oi8vdmkud2lraXBlZGlhLm9yZy93aWtpL05ndXklRTElQkIlODVuX1QlRTElQkElQTVuX0QlQzUl QTluZw0KDQpOZ3V5ZW4gVGFuIER1bmcNCg0KVHUgdGhhbmcgOSBuYW0gMTk5Nywgb25nIGR1b2Mg UXVvYyBob2kgdGhvbmcgcXVhIGdpdSBjaHVjIFBobyBUaHUgdHVvbmc7IHNhdSBkbyBnaXUgY2h1 YyB2dSBQaG8gVGh1IHR1b25nIHRodW9uZyB0cnVjLg0KDQpUdSBuZ2F5IDI3IHRoYW5nIDYgbmFt IDIwMDYgliBkZW4gbmF5LCBOZ3V5ZW4gVGFuIER1bmcgZHVvYyBsYW0gVGh1IHR1b25nIC4NCg0K aHR0cDovL3d3dy50dW9pdHJlLmNvbS52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTEw MzA4MyZDaGFubmVsSUQ9MyAxNC8xMC8yMDA1LCAxMTo0MyAoR01UKzcpDQoNClZpZXQgTmFtOiA5 LDMgdHJpZXUgaGEgZGF0IHR1IG5oaWVuIGJpIGhvYW5nIGhvYSAodHVvbmcgZHVvbmcgMjglIGRp ZW4gdGljaCBjYSBudW9jKQ0KDQpodHRwOi8vd3d3LnR1b2l0cmUuY29tLnZuL1RpYW55b24vSW5k ZXguYXNweD9BcnRpY2xlSUQ9MzQ4NjMyJkNoYW5uZWxJRD0zIDE5LzExLzIwMDksIDIyOjIyIChH TVQrNykNCihUcmljaCB0cmEgbG9pIGNoYXQgdmFuIGN1YSBUaHUgdHVvbmcgTmd1eWVuIFRhbiBE dW5nKQ0KDQpUcm9uZyA1IG5hbSB2dWEgcXVhIG1vaSBuYW0gY2h1bmcgdGEgbWF0IDUxIG5naGlu IGhhIHJ1bmcsIHRyb25nIGRvIDIwIG5naGluIGhhIHJ1bmcgZG8gY2h1eWVuIGRvaSBzYW5nIG11 YyBkaWNoIGtoYWMgDQoNCih0cm9uZyBraGkgcGhhcCBsdWF0IHF1eSBkaW5oIHRyZW4gMjAwIGhh IHJ1bmcgZGFjIGR1bmcgdmEgMS4wMDAgaGEgcnVuZyBzYW4geHVhdCBwaGFpIHRyaW5oIFF1b2Mg aG9pIHZhIGNoaSBjbyBUaHUgdHVvbmcgbW9pIGNvIHF1eWVuIGRpZXUgY2hpbmggY2FjIGtodSBy dW5nIGRhYyBkdW5nIHZhIHZ1b24gcXVvYyBnaWEpIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFt Lm5ldC8yMDEwLTAyLTI3LXR1b25nLWRvbmctc3ktbmd1eWVuLWNhbmgtYmFvLXZpZWMtY2hvLW51 b2MtbmdvYWktdGh1ZS1ydW5nIDI3LzAyLzIwMTAgMDY6MDAgR01UKzcgVGh1IEhhDQoNClRodSB0 dW9uZzogQ2hvIG51b2MgbmdvYWksIGNodSB5ZXUgbGEgVHJ1bmcgUXVvYywgdGh1ZSBkYXQgcnVu ZyBkYWkgaGFuIDUwIG5hbSBob24gMzAwLjAwMCBoYSAoZ2FwIDIsNyBsYW4gZGllbiB0aWNoIGto dSBIb25na29uZyBjdWEgVHJ1bmcgUXVvYykNCg0KIk1vdCB0YW0gbmhpbiByYXQgbmdhbiEiDQoN Cmh0dHA6Ly9uZ3VvaWNhb3R1b2kub3JnLnZuL1N0b3J5LmFzcHg/bGFuZz12biZ6b25lcGFyZW50 PTAmem9uZT0yOCZJRD04MjEgIDE2LzA5LzIwMDggMTA6MDYgQU0NCg0KVGh1IHR1b25nOiBEbyB0 aGkgaG9hLCBub25nIGRhbiB0aGlldSBkYXQgc2FuIHh1YXQNCg0KaHR0cDovL3d3dy50aWVucGhv bmcudm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0xNjYyMjQmQ2hhbm5lbElEPTE1IDE1 LzA3LzIwMDksIDExOjU4DQoNCktvbiBUdW06IERvaSBuZ2hlbyB2aSB0aGlldSBkYXQgc2FuIHh1 YXQNCg0KaHR0cDovL2RhbGF0aG9hLmNvbS9kaWVuZGFuL3Nob3d0aHJlYWQucGhwP3Q9Mzg5MQ0K DQpMYW0gRG9uZzogVHJlbiA4LjkwMCBobyBub25nIGRhbiB0aGlldSBkYXQgc2FuIHh1YXQNCg0K aHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL0Rhbi1LaG9uZy1jby1kYXQtc2FuLXh1YXQt Y2FuLWJvLVZ1YS1ydW5nLzIwMDc3LzQ1MDI3Lmxhb2RvbmcgMjowMCBBTSwgMTEvMDcvMjAwNw0K DQpUaHVhIFRoaWVuIC0gSHVlOiBEYW4gLSBraG9uZyBjbyBkYXQgc2FuIHh1YXQ7IGNhbiBibyAt ICJWdWEgcnVuZyINCg0KVHJvbmcga2hpIGhhbmcgdHJhbSBobyBkYW4geGEgRHVvbmcgSG9hLCAo aHV5ZW4gSHVvbmcgVGh1eSwgdGluaCBUVCAtIEh1ZSksIGRhYyBiaWV0IGxhIG5ndW9pIGRhbiBr aHUgdGFpIGRpbmggY3UgS2hlIFNvbmcgY3VhIGR1IGFuIHhheSBkdW5nIGhvIGNodWEgbnVvYyBU YSBUcmFjaCBkYW5nIG5naGVvIHZhIGRvaSB2aSBraG9uZyBjbyBkYXQgZGUgc2FuIHh1YXQsIHRy b25nIHJ1bmcsIHRoaSBtb3Qgc28gY2FuIGJvIHhhIGxvaSBkdW5nIGNodWMgcXV5ZW4gY2hpZW0g aGFuZyB0cmFtIGhlY3RhIGRhdCBjaG8gZ2lhIGRpbmgsIGhvIGhhbmcuDQoNCmh0dHA6Ly93d3cu dHVvaXRyZS5jb20udm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0zNDg3MTYmQ2hhbm5l bElEPTMNCg0KVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZzogIlRvaSBjaHVhIHh1IGx5IGt5IGx1 YXQgZG9uZyBjaGkgbmFvIg0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS9waGFwbHVhdC8y MDA5LzA5Lzg3MDEzOS8gMTk6NTksIDIzLzA5LzIwMDkgKEdNVCs3KQ0KDQpRdWFuZyBOYW06IFBo YSBydW5nIGJhbyB0b24gJ3RydW9jIG1hdCcga2llbSBsYW0NCg0KaHR0cDovL3d3dy5uZWEuZ292 LnZuL1N1a2llbl9Ob2liYXQvVGlua2hhYy90aGFuZzVfMjAwOS91bzUuaHRtbCAyMi8wNS8yMDA5 IDE1OjQ0DQoNCktpZW4gR2lhbmc6IFJ1bmcgUGh1IFF1b2MgbGFpIGJpIHRhbiBwaGENCg0KaHR0 cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL1BoYS1ydW5nLXRyaWV1LW5hbS10dW9pLzIwMDk5 LzE1Mzc1OC5sYW9kb25nIDg6MDEgQU0sIDAzLzA5LzIwMDkNCg0KR2lhIExhaTogUGhhICJydW5n IiB0cmlldSBuYW0gdHVvaSENCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML0tob2EtaG9j LzIwMDgvMTAvM0JBMDc0RDYvIFRodSBzYXUsIDEwLzEwLzIwMDgsIDEwOjUwIEdNVCs3DQoNClRo dSB0dW9uZzogTmFuIHBoYSBydW5nIGRhbmcgc28gaG9uIGtodW5nIGhvYW5nIHRhaSBjaGluaA0K DQpodHRwOi8vd3d3LnJmaS5mci9hY3R1dmkvYXJ0aWNsZXMvMTE5L2FydGljbGVfNTcyNy5hc3Ag ICBEdWMgVGFtIDE3LzExLzIwMDkgMTY6MDQgVFUNCg0KVGh1IHR1b25nOiBUYWkgVmlldCBOYW0s IG5hbiBwaGEgcnVuZyBsYW0gZ2lhIHRhbmcgdGFjIGhhaSBjdWEgYmllbiBkb2kga2hpIGhhdSBk b2kgdm9pIGRhIGRhbmcgc2luaCB0aGFpDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhh cC1sdWF0L0hvbi0zLjMwMC1oYS1ydW5nLXR1LW5oaWVuLVRhbmgtTGluaC1iaS10YW4tcGhhLzcw MDcwMTAxLzIxOC8gVGh1IHNhdSwgMDEgVGhhbmcgbXVvaSBoYWkgMjAwNiwgMTA6MzggR01UKzcg DQoNCkhvbiAzLjMwMCBoYSBydW5nIHR1IG5oaWVuIFRhbmggTGluaCBiaSB0YW4gcGhhDQoNCmh0 dHA6Ly9iYXV4aXRldmlldG5hbS5pbmZvL2MvMTM4MDIuaHRtbA0KDQpUaHUgdHVvbmc6IFJ1bmcg ZHVvbmcgbWF0LCBiYW8gZHUgaG9uDQoNCkNvbiBiYW8gc28gOSB0cmFuIHF1YSBtaWVuIFRydW5n IGRhIGtob25nIGdhcCBiYXQga3kgdmF0IGNoZSBjaGFuIG5hby4NCg0KRGkgZG9jIGJvIGJpZW4g dHUgRGEgTmFuZyB2YW8gZGVuIFNhIEh1eW5oIChRdWFuZyBOZ2FpKSwgbmh1bmcgcnVuZyBkdW9u ZyAtIGR1b2MgeGVtIGxhIHZhdCBjYW4gZ2lvIGJhbyB0dSBiYW8gZG9pIG5heSAtIGRhIGJpIGRv biB0cnVpIGNoaSBjb24gdHJvIGxhaSBuaHVuZyBjb24gY2F0IHRyYW5nLg0KDQpodHRwOi8vd3d3 LnNnZ3Aub3JnLnZuL3Rob25ndGluY2FudW9jLzIwMDkvNy8xOTY1NTAvDQpNT0kgTUlFTiBEQVQg TlVPQw0KDQpIZSBsdXkgdHUgbmFuIHBoYSBydW5nIG8gUXVhbmcgTmFtOiBIZSBzaW5oIHRoYWkg dGlldSBkaWV1LCBkYW4gdm9vYyBxdXkgImtldSBjdXUiDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1Ry YW5nLWJhbi1kb2MvQmFvLWRvbmctbmFuLXBoYS1ydW5nLW8tZGVvLU5nYW5nLzQwMTg5Mjg4LzQ3 OC8gVGh1IHNhdSwgMDIgVGhhbmcgYmEgMjAwNywgMDk6MTEgR01UKzcgCQkNCg0KVGh1IHR1b25n OiBCYW8gZG9uZyBuYW4gcGhhIHJ1bmcgbyBkZW8gTmdhbmcNCg0KaHR0cDovL3Zvdm5ld3Mudm4v SG9tZS9Mb2ktZHVuZy1jaHUtdHJ1b25nLWRlLXBoYS1ydW5nLzIwMDg5LzEzMTU0LnZvdiAxMTow MCBBTSwgMjcvMDkvMjAwOA0KDQpUaHUgdHVvbmc6IExvaSBkdW5nIGNodSB0cnVvbmcgZGUgcGhh IHJ1bmcgKG8gUXVhbmcgQmluaCkNCg0KQ2hpIHRyb25nIHZvbmcgY2h1YSBkYXkgMSB0aGFuZywg Z2FuIDI2MCBoYSBydW5nIHR1IG5oaWVuIHRyb25nIGtodSB2dWMgdnVuZyBkZW0gdnVvbiBRdW9j IGdpYSBQaG9uZyBOaGEgS2UgQmFuZyAodGluaCBRdWFuZyBCaW5oKSBiaSBjaGF0IGhhLCBkb3Qg dHJ1aS4gDQoNCmh0dHA6Ly93d3cuYmFvYmluaGRpbmguY29tLnZuL2tpbmh0ZS1waGF0dHJpZW4v MjAwOS8yLzcyMjQwLyA3OjQzJywgMjQvMi8gMjAwOSAoR01UKzcpDQoNClRodSB0dW9uZzogVGhh eSBnaSBxdWEgdnUgcGhhIHJ1bmcgcGhvbmcgaG8gbyBBbiBMYW8NCg0KSGFuZyBjaHVjIGhhIGRh dCBsYW0gbmdoaWVwIHRhaSB4YSBBbiBIb2EgZGEgYmkgbW90IHNvIG5ndW9pIGxhbiBjaGllbSwg cGhhIGhhaS4gVHJvbmcgc28gbmh1bmcgbmd1b2kgcGhhIHJ1bmcgY29uIGNvIG1vdCBzbyBjYW4g Ym8gY2h1IGNob3QgY3VhIHhhIHZhIGNhbiBibyBsYW0gbmdoaWVwIGh1eWVuLg0KDQpodHRwOi8v dmlldGJhby52bi9YYS1ob2kvUXVhbmctQmluaC1Uby1iYW8tdmUtY2hhdC1waGEtcnVuZy1waG9u Zy1oby83MDA5MTEwMy8xNTcvIFRodSBiYSwgMTAgVGhhbmcgYmF5IDIwMDcsIDE1OjQ4IEdNVCs3 IA0KDQpUaHUgdHVvbmc6IFRvIGJhbyB2ZS4uLiBjaGF0IHBoYSBydW5nIHBob25nIGhvIChvIFF1 YW5nIEJpbmgpIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0luZGV4LmFzcHg/ QXJ0aWNsZUlEPTE0Mzk4MyZDaGFubmVsSUQ9MTIgIDIwLzExLzIwMDgsIDEyOjIxDQoNClRodSB0 dW9uZzogTG9pIGR1bmcgdHJvbmcgcnVuZyBkZSBwaGEgcnVuZyBvIFBodSBZZW4gDQoNCiJEYWkg Y29uZyB0cnVvbmciIHBoYSBydW5nIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUv Q29uZy1raGFpLXBoYS1ydW5nLW8tRHVjLUNvLzIwMDg0LzgyOTM4Lmxhb2RvbmcgODoyMiBBTSwg MDMvMDQvMjAwOA0KDQpUaHUgdHVvbmc6IENvbmcga2hhaSBwaGEgcnVuZyBvIER1YyBDbyAobyBH aWEgTGFpKSANCg0KaHR0cDovL3d3dy5idHYub3JnLnZuL2NodXllbi1kZS9waGFwLWx1YXQvbGFt LXRhYy10YW4tcGhhLXJ1bmctZGUtYXJnaWEtbGFpLw0KDQpUaHUgdHVvbmc6IExhbSB0YWMgInRh biBwaGEiIHJ1bmcgRGUgQXItR2lhIExhaSANCg0KaHR0cDovL2NlbWEuZ292LnZuL21vZHVsZXMu cGhwP25hbWU9Q29udGVudCZvcD1kZXRhaWxzJm1pZD0zNjQwIDEzLzA0LzIwMDYNCg0KVGh1IHR1 b25nOiBOaHVjIG5ob2kgbmFuIHBoYSBydW5nIA0KDQpodHRwOi8vd3d3LnhhbHVhbi5jb20vbW9k dWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9ODY5NzYNCg0KVGh1IHR1b25nOiBU dSB0aWVuIHBoYSBydW5nIChvIFBodSBZZW4pIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZu L0hvbWUvTGFpLXBoYS1ydW5nLWxheS1kYXQtby1DaHUtUHJvbmcvMjAwODQvODMyNDMubGFvZG9u ZyA4OjU1IEFNLCAwNC8wNC8yMDA4DQoNClRodSB0dW9uZzogTGFpIHBoYSBydW5nIGxheSBkYXQg byBDaHUgUHJvbmcgKEdpYSBMYWkpIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIwLTc3 MjE1L2dpYS1sYWktZGFpLWdpYS1kaW5oLWdpYW0tZG9jLWxhbS10cnVvbmctcGhhLXJ1bmcuaHRt DQoNClRodSB0dW9uZzogRGFpIGdpYSBkaW5oIGdpYW0gZG9jIGxhbSB0cnVvbmcgcGhhIHJ1bmcg LSBQaGEgcnVuZyB0cmllbiBtaWVuDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9naWFfbGFpX3Nv dF9nb190cmFjJTJDX2R1YV9uaGF1X3BoYV9ydW5nJTJDX2RvX25oYV9iYW4tMS0yMTIzOTAwOS5o dG1sDQoNClRodSB0dW9uZzogIlNvdCIgZ28gdHJhYywgZHVhIG5oYXUgcGhhIHJ1bmcsIGRvIG5o YS4uLiBiYW4NCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzIwLTQ0OTYyNzUyMi92dW5nX2RlbV9w aG9uZ19uaGFfa2VfYmFuZ19ob25fNDAwX2hhX3J1bmdfYmlfdGhhbV9zYXQuaHRtbCBQaGFwIGx1 YXQgVFBIQ00gLSAwNi8wOS8yMDA4DQoNClRodSB0dW9uZzogVnVuZyBkZW0gUGhvbmcgTmhhLUtl IEJhbmcgLSBIb24gNDAwIGhhIHJ1bmcgYmkgInRoYW0gc2F0Ig0KDQpodHRwOi8vdGludHVjLnhh bG8udm4vMDAtMjQ1OTY4MDY1L2JpbmhfZGluaF90YWlfZGllbl9uYW5fcGhhX3J1bmdfbGFtX251 b25nX3JheS5odG1sIENBTkQgLSAwNy8wNy8yMDA4DQoNClRodSB0dW9uZzogVGFpIGRpZW4gbmFu IHBoYSBydW5nIGxhbSBudW9uZyByYXkgKG8gQmluaCBEaW5oKSANCg0KaHR0cDovL3RpbnR1Yy54 YWxvLnZuLzAwLTE1MDMwODMxMjcvYmluaF9kaW5oX3BoYV9ydW5nX2RlX2toYWlfdGhhY190aXRh bi5odG1sIFNHR1AgLSAyNS8wOC8yMDA2DQoNClRodSB0dW9uZzogUGhhIHJ1bmcgZGUga2hhaSB0 aGFjIHRpdGFuIChuZ29haSBkaWVuIHRpY2ggZHVvYyBjYXAgcGhlcCwga2hvbmcgZHVuZyBxdXkg ZGluaCwgbyBCaW5oIERpbmgpDQoNCmh0dHA6Ly93d3cuYmFvYmluaGRpbmguY29tLnZuL2tpbmh0 ZS1waGF0dHJpZW4vMjAwOS84Lzc5MDk5LyA4OjE0LCAzLzgvIDIwMDkgKEdNVCs3KSANCg0KVGh1 IHR1b25nOiBUaWVwIGRpZW4gdGluaCB0cmFuZyBwaGEgcnVuZywgbGFuIGNoaWVtIGRhdCBsYW0g bmdoaWVwDQoNCmh0dHA6Ly92b3ZuZXdzLnZuL0hvbWUvUGh1LVllbi1UYWktZGllbi1uYW4tcGhh LXJ1bmctdGFpLWNhYy1raHUtdGFpLWRpbmgtY3UvMjAwOTIvMTA2MTI2LnZvdiBDYXAgbmhhdCBs dWMgOiAxMDoxNiBBTSwgMjcvMDIvMjAwOQ0KIA0KVGh1IHR1b25nOiBUYWkgZGllbiBuYW4gcGhh IHJ1bmcgdGFpIGNhYyBraHUgdGFpIGRpbmggY3UgKG8gUGh1IFllbikgIA0KDQpodHRwOi8vZXZh LnZuL25ld3MvZGV0YWlsLzY2LzE5MTIxLw0KDQpUaHUgdHVvbmc6IEhhdSBxdWEgdHUgbmFuIHBo YSBydW5nDQoNClNhdSBjb24gbHUga2luaCBob2FuZywgbmd1b2kgZGFuIGh1eWVuIERvbmcgWHVh biAoUGh1IFllbikgZGllbSBtYXQgbmd1eWVuIG5oYW4ga2hpZW4gdnVuZyB0cnVuZyBuYXkgY2hp dSBkYWkgaG9hIHRoaWVuIHRhaSwgY28gbW90IHBoYW4gbG9uIGRvIHJ1bmcgcGhvbmcgaG8gYmkg dGFuIHBoYSEgDQoNCmh0dHA6Ly93d3cuYmFvYW5oZGF0bXVpLnZuL3ZjbXMvaHRtbC9uZXdzX2Rl dGFpbC5waHA/bmlkPTQ2MTUgMjE6MTMsIDE0LzA4LzIwMDcNCg0KVGh1IHR1b25nOiBOYW4gcGhh IHJ1bmcgdmFuIHRpZXAgZGllbiAobyBDYSBNYXUpIA0KDQpodHRwOi8vd3d3LnBoYXBsdWF0dHAu dm4vbmV3cy94YS1ob2kvdmlldy5hc3B4P25ld3NfaWQ9MjUzMDU0ICBDQU8gVFUgVEhBTkggMTAt MDUtMjAwOSAyMzozNzo0NiBHTVQgKzcNCg0KVGh1IHR1b25nOiBEaSB0aW0gbmdvdW4gZ29jIHRv aSBhYyANCg0KU3UgYnVvbmcgdGhhIHRyb25nIG1vdCB4YSBob2kgYmkgbmd1eWVuIHRodXkgaG9h LiBRdWFuIGx5IHlldSBrZW0gbGFtIGNvIGNoZSBsZWNoIGNodWFuLCB4YSBob2kgY2FuZyB0aGVt IHBodWMgdGFwLg0KDQpodHRwOi8vd3d3Lm5lYS5nb3Yudm4vdGhvbmd0aW5tdC9ub2lkdW5nL3Zu bjFfMTBfNl8wNS5odG0gKFZOTiwgMTAvNi8yMDA1KQ0KDQpUaHUgdHVvbmc6IFBoYSBydW5nIGxh IG5ndXllbiBuaGFuIGNoaW5oIGN1YSBsdSBxdWV0IG8gVk4gDQoNCmh0dHA6Ly93d3cudHVvaXRy ZS5jb20udm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0zNDg3MTYmQ2hhbm5lbElEPTMN Cg0KVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZzogIlRvaSBjaHVhIHh1IGx5IGt5IGx1YXQgZG9u ZyBjaGkgbmFvIiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNi9D aG8tbnVvYy1uZ29haS10aHVlLWRhdC1ydW5nQ2hpbmgtcGh1LW5vaS0xMC1RSC1iYW8tMTgtOTE1 NTIzLyAxNDo0MSwgMTEvMDYvMjAxMCAoR01UKzcpDQoNClRodSB0dW9uZzogQ2hvIG51b2Mgbmdv YWkgdGh1ZSBkYXQgcnVuZyAtIENoaW5oIHBodSBub2kgMTAsIFFIIGJhbyAxOCANCg0KaHR0cDov L3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC9OdW9jLW5nb2FpLXRodWUtZGF0LXJ1 bmdkYS1jYXQtYm90LWRpZW4tdGljaC1zYXQtYmllbi1naW9pLTk0NDA2Ny8gMjE6NDUsIDIzLzEw LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IEJhbyBjYW8gY3VhIENoaW5oIHBodSBjbyBzbyBs aWV1IHNhaSBsZWNoIHZlIHZpZWMgbnVvYyBuZ29haSB0aHVlIGRhdCBydW5nICANCg0KQmFvIGNh byBjdWEgQ2hpbmggcGh1IGd1aSBRdW9jIGhvaSwgZGUgbmdheSAyMC8xMCwgY29uIHNvIHRob25n IGtlIHRyb25nIGJhbyBjYW8gbGFuIG5heSBraGFjIHNvIHZvaSBiYW8gY2FvIGhvaSB0aGFuZyA2 OiANCg0KLSBDaGluaCBwaHUgY2hvIHJhbmcsIHRpbmggZGVuIG5nYXkgMTAvOC8yMDEwLCBjYSBu dW9jIGhpZW4gY28gOCBkdSBhbjsgdHJvbmcga2hpIHRob25nIGtlIGN1IGxhIDEwIGR1IGFuIChj aGVuaCBsZWNoIDIgZHUgYW4pOyANCg0KLSBUb25nIGRpZW4gdGljaCBkYXQgZHUga2llbiBzdSBk dW5nIGN1YSBjYWMgZHUgYW4gbmF5IGxhIDM0Mi4wMDBoYTsgdGhvbmcga2UgY3UgbGEgMzA1LjM1 Myw0IGhhIChjaGVjaCBsZWNoIDM2LjY0Niw2IGhhKS4gDQoNCk5odSB2YXkgc28gbGlldSBjdWEg Q2hpbmggcGh1IGJhbyBjYW8gUXVvYyBob2kgdGhheSBkb2kgbmhpZXUsIHRoaWV1IGNoaW5oIHhh Yy4gDQoNCi0NCmh0dHA6Ly93MTMudm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAxMC8wMS8z QkExN0JFRS8gMTUvMS8yMDEwLCAwMDozNSBHTVQrNw0KDQpUaHUgdHVvbmc6IFZpZWMgdGh1IGhv aSBkYXQgbGFtIGR1IGFuIG5oYSBvIGRvIHRoaSBzbyBjaG8gbmFvIGN1bmcgY28gdGlldSBjdWMu IA0KDQpodHRwOi8vdm92bmV3cy52bi9Ib21lL05naGljaC1seS1ub25nLXNhbi1WaWV0LzIwMTAx LzEzMzM1MS52b3YgNDoxMCBQTSwgMjcvMDEvMjAxMA0KDQpUaHUgdHVvbmc6IE5naGljaCBseSBu b25nIHNhbiBWaWV0IA0KDQpOb25nIHNhbiB0cm9uZyBudW9jIGNoYXQgdmF0IHRpbSB0aGkgdHJ1 b25nIHRpZXUgdGh1LCBuaHVuZyBub25nIHNhbiBuZ29haSB0aGkgaGllbiBkaWVuIGtoYXAgbm9p DQoNCkxhIG1vdCBxdW9jIGdpYSBub25nIG5naGllcCwgdm9pIG5oaWV1IG1hdCBoYW5nIG5vbmcg c2FuIHh1YXQga2hhdSBkdW5nIGhhbmcgZGF1IHRoZSBnaW9pIG5odW5nIG1vaSBuYW0sIG51b2Mg dGEgbGFpIHBoYWkgYm8gcmEgbW90IGx1b25nIG5nb2FpIHRlIGxvbiBkZSBuaGFwIGtoYXUgZHUg bG9haSBub25nIHNhbiwgdHUgcmF1IGN1LCB0cmFpIGNheSwgZGVuIHRodWMgYW4gY2hhbiBudW9p LCBtdW9pLCBzdWEuIA0KTmdoaWNoIGx5IG5heSBkYSB0b24gdGFpIG5oaWV1IG5hbSBuYXksIHJh dCBjYW4gZHVvYyBiYW4gdGhhbyB0aW0gaHVvbmcgZ2lhaSBxdXlldC4NCg0KaHR0cDovL3RpbnR1 Yy54YWxvLnZuLzAwLTUyODQ0MDMzMS9udW9jX25vbmdfbmdoaWVwX3Nhb19vX2F0X25oYXBfbm9u Z19zYW5fcmF1X2N1X25vaV9raG9uX2Rvbl9uYnNwLmh0bWwgMjYtMS0yMDEwIDExOjM4IFBNDQoN ClRodSB0dW9uZzogUmF1IGN1IG5vaSBraG9uIGRvbiAtIE1vdCBuYW0gbmhhcCAzMDAgdHJpZXUg VVNEIHJhdSwgcXVhIA0KDQpLaW0gbmdhY2ggbmhhcCBraGF1IHJhdSwgcXVhIGN1YSBWTiB0cm9u ZyBuYW0gMjAwOSBkYXQgZ2FuIDMwMCB0cmlldSBVU0QsIHRhbmcgNDAsMyUgc28gdm9pIG5hbSB0 cnVvYy4gDQpUcm9uZyBkbyBuaGlldSBuaGF0IGxhIHR1IFRydW5nIFF1b2Mgdm9pIHRyZW4gMTYw IHRyaWV1IFVTRCwgY2hpZW0gNTklIHRyb25nIHRvbmcga2ltIG5nYWNoIG5oYXAga2hhdSByYXUs IHF1YSBjdWEgY2EgbnVvYy4gDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0tpbmgtdGUvMzkwOTk3L011 YS10YW0tdHJlLXR1LVRydW5nLVF1b2MuaHRtbCAyMC8wNy8yMDEwLCAwNDoyMiAoR01UKzcpIA0K DQpUaHUgdHVvbmc6IE5oYXAga2hhdSAiaGFuZyBsYSIgDQoNCiJIYW5nIGxhIiBvIGRheSBsYSBu aHVuZyBzYW4gcGhhbSBtYSB0cm9uZyBudW9jIGNvIHRoZSBtYW5oIHZlIHZ1bmcgbmd1eWVuIGxp ZXUsIA0KbmhhbiBjb25nLCBreSB0aHVhdCBkb24gZ2lhbi4uLiBuaHVuZyBsYWkgZGFuZyBkdW9j IG5oYXAga2hhdSBvIGF0IHZhbyB0aGkgdHJ1b25nIFZOLg0KDQpUaW5oIHRyYW5nIG8gYXQgbmhh cCBraGF1ICJoYW5nIGxhIiBkYSBjaG8gdGhheSB2aWVjIHF1YW4gbHkgY3VuZyBuaHUgY2FjIGNo aW5oIHNhY2ggDQpsaWVuIHF1YW4gZGVuIGhhbmcgbmhhcCBraGF1IGNvbiBjaHVhIHRoZW8gc2F0 IGRpZW4gYmllbiB0aHVjIHRlIHRyZW4gdGhpIHRydW9uZy4NCg0KaHR0cDovL3R1b2l0cmUudm4v S2luaC10ZS8zOTA5OTcvTXVhLXRhbS10cmUtdHUtVHJ1bmctUXVvYy5odG1sIDIwLzA3LzIwMTAs IDA0OjIyIChHTVQrNykgDQoNClRodSB0dW9uZzogTmhhcCBraGF1ICJoYW5nIGxhIiAtIE11YSB0 YW0gdHJlIHR1IFRydW5nIFF1b2MNCg0KVFQgLSBUYW0gdHJlLCBtYXQgaGFuZyB0dW9uZyBuaHUg Y2hpIGNvIHRoZSBtYW5oIG8gVk4sIHRoZSBuaHVuZyB0dSBkYXUgbmFtIGRlbiBuYXkgDQpsdW9u ZyBoYW5nIG5oYXAgdmUgY2hpIHJpZW5nIG8gVFAuSENNIGRhIGxlbiBkZW4gaGFuZyB0cmFtIHRh bi4gR2lvIGRheSB0YW0gbmdvYWkgDQpkYW5nIGR1b2MgYmFuIHJvbmcgcmFpIHRhaSBzaWV1IHRo aSwgY2hvIHZhIGNhYyBjdWEgaGFuZyB0YXAgaG9hLg0KDQpodHRwOi8vdHVvaXRyZS52bi9LaW5o LXRlLzM5MTIwNy9OYW0tbmdvYWktdHVuZy1ob2FuaC5odG1sIDIxLzA3LzIwMTAsIDA3OjI2IChH TVQrNykgDQoNClRodSB0dW9uZzogTmhhcCBraGF1ICJoYW5nIGxhIiAtIE5hbSBuZ29haSB0dW5n IGhvYW5oDQoNClRUIC0gVHUgbmFtIGxpbmggY2hpIGRlbiBuYW0ga2ltIGNoYW0sIG5hbSBkdWkg Z2EsIG5hbSBtZW8gZGVuLi4uIGxhbiBsdW90IGR1b2MgbmhhcCANCnZhbyBWaWV0IE5hbSwgZGFu IGxhbiBhdCBuYW0gc2FuIHh1YXQgdHJvbmcgbnVvYy4gTWF0IGhhbmcgbmhhcCBraGF1IG5heSBk YSB4dWF0IGhpZW4gDQpraG9uZyBjaGkgbyBjYWMgc2lldSB0aGkgbWEgY29uIGR1b2MgYmFuIHJv bmcgcmFpIHRhaSBjYWMgY2hvIHZ1bmcgdmVuLg0KDQpUdW9uZyB0dSBjYSByb3QsIGhhbmggdGF5 LCB0b2ksIGd1bmcgVHJ1bmcgUXVvYyB2YSBuaGlldSBtYXQgaGFuZyB0cmFpIGNheSBuZ29haSBu aGFwIA0Kbmh1IGRhbywgbHV1LCBxdXl0LCBvaSwgY2h1b2kuLi4gbmhhcCBraGF1IHR1IFRydW5n IFF1b2MsIFBoaWxpcHBpbmVzLi4uIG5hbSBjdW5nIGRhIGxlbiANCmxvaSB2YW8gbW9pIG5nb2Mg bmdhY2ggdmEgImxhbSBtdWEgbGFtIGdpbyIgdHJlbiB0aGkgdHJ1b25nIG5vbmcgc2FuIHZhIHRy YWkgY2F5IFZpZXQgTmFtLg0KDQpodHRwOi8vdHVvaXRyZS52bi9LaW5oLXRlLzM5MTM4NS9DaGkt aGFuZy10cmlldS1VU0QtbmhhcC1jYW0tZ2FvLmh0bWwgMjIvMDcvMjAxMCwgMDI6MTkgKEdNVCs3 KSANCg0KVGh1IHR1b25nOiBOaGFwIGtoYXUgImhhbmcgbGEiIC0gWHUgZ2FvIHBoYWkgbmhhcCBn YW8hIA0KDQpUVCAtIFR1eSBsYSB4dSBnYW8sIGNvIG5hbmcgbHVjIHh1YXQga2hhdSBkdW5nIHRo dSBoYWkgdGhlIGdpb2kgbmh1bmcgaGFuZyB0aGFuZyBsdW9uZyANCmdhbyBuaGFwIHZhbyBWTiB2 YW4gdGFuZy4gTmhhIG5oYXAga2hhdSBjaG8gcmFuZyBraW5oIGRvYW5oIGdhbyBuZ29haSBzbyB2 b2kgZ2FvIA0KdHJvbmcgbnVvYyB0aWVuIGxhaSBjdW5nIGNoaSBiYW5nIG5oYXUgbmh1bmcgZ2Fv IG5nb2FpIGRlIG5oYXAsIGRlIGJhbi4NCg0KaHR0cDovL3R1b2l0cmUudm4vS2luaC10ZS8zOTEz ODUvQ2hpLWhhbmctdHJpZXUtVVNELW5oYXAtY2FtLWdhby5odG1sIDIyLzA3LzIwMTAsIDAyOjE5 IChHTVQrNykgDQoNClRodSB0dW9uZzogTmhhcCBraGF1ICJoYW5nIGxhIiAtIENoaSBoYW5nIHRy aWV1IFVTRCBuaGFwIGNhbSBnYW8NCg0KVFQgLSBJdCBhaSBuZ2hpIHJhbmcgbnVvYyB0YSBtb2kg bmFtIHNhbiB4dWF0IHRyZW4gMzUgdHJpZXUgdGFuIGx1YSwgbGFpIHBoYWkgbmhhcCBraGF1IA0K aGFuZyBuZ2FuIHRhbiBjYW0gZ2FvIGRlIHNhbiB4dWF0IHRodWMgYW4gY2hhbiBudW9pLg0KDQpU aGVvIGJhIFBoYW4gSG9uZyBMaWVuLCBjaHV5ZW4gZ2lhIHBoYW4gdGljaCBjdWEgQ29uZyB0eSBO Z2hpZW4gY3V1IHZhIHBoYW4gdGljaCB0aGkgDQp0cnVvbmcgKEFncm9tb25pdG9yKSwgbW90IG51 b2MgeHVhdCBraGF1IGdhbyBsb24gbmh1IFZOLCBtb2kgbmFtIGN1bmcgY2FwIDUtNiB0cmlldSAN CnRhbiBjYW0gZ2FvIGNobyB0aGkgdHJ1b25nIHRodWMgYW4gY2hhbiBudW9pLCB2aWVjIHBoYWkg bmhhcCBraGF1IGNhbSBnYW8gbmdheSBjYW5nIA0KbmhpZXUgbGEgZGlldSBjYW4gcGhhaSB4ZW0g bGFpIHZlIG1hdCBjaGllbiBsdW9jIHBoYXQgdHJpZW4gbmdhbmggdGh1YyBhbiBjaGFuIG51b2ku IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzYvMjAxMDA5 MDUyMzI4MTYuYXNweCBRdWFuZyBEdWFuIDA1LzA5LzIwMTAgMjM6MjggDQoNClRodSB0dW9uZzog VHJlbiAzNDYuMDAwIGNvbiBoZW8gY3VhIDI5IHRpbmggbWFjIGJlbmggdGFpIHhhbmggLSB0aGll dSB2YWMteGluIHBob25nIGRpY2ggIA0KDQpEaWNoIGJlbmggbmF5IHZhbiBkYW5nIHRhbiBjb25n IGRhbiBoZW8gY3VhIDI5IHRpbmgsIHRoYW5oIHRyZW4gdG9hbiBxdW9jIHZhIGRpZW4gYmllbiAN CnJhdCBwaHVjIHRhcDsgbmd1eSBjbyBsYXkgbGFuIHRyZW4gZGllbiByb25nIHJhdCBjYW8uIFRp bmggZGVuIG5heSwgZGEgY28gdHJlbiAzNDYuMDAwIGNvbiANCmhlbyBtYWMgYmVuaCwgdHJvbmcg ZG8gMTY5Ljg4NCBjb24gYmkgY2hldCB2YSB0aWV1IGh1eS4gDQpIaWVuIG1vaSBjbyAyMDAgbmdh biBsaWV1IHZhYy14aW4gcGhvbmcgZGljaCBoZW8gdGFpIHhhbmggbmhhcCB2ZSAodHUgVHJ1bmcg UXVvYyksICANCnBoYW4gYm8gY2hvIDIxIGRpYSBwaHVvbmcgZGUgdGh1YyBoaWVuIHRpZW0gcGhv bmcgdGhpIGRpZW0uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwNDAvMjAxMDEwMDEyMzU2MjIuYXNweCBBbmggVnUgIDAxLzEwLzIwMTAgMjM6NTYgDQoNClRo dSB0dW9uZzogQXAgbHVjIHR5IGdpYSAtIGNoaSB0YW5nLCBjaHVhIGJhbyBnaW8gZ2lhbSANCg0K S2UgdHUgZGF1IHR1YW4gdG9pIG5heSwgZ2lhIFVTRCB0cmVuIHRoaSB0cnVvbmcgdHUgZG8gZGEg dGFuZyBuaGlldCB0cm8gbGFpLCBjYWMgbmdhbiBoYW5nIA0KdGh1b25nIG1haSBjdW5nIG5pZW0g eWV0IGdpYSBtdWEgdmFvIC0gYmFuIHJhIHNhdCB2YSBraWNoIHRyYW4uIA0KDQpDbyBtb3QgdGh1 YyB0cmFuZyBkYSB4YXkgcmEgbGF1IG5heSwgbGEgdHkgZ2lhIHRyb25nIG1heSBjaHVjIG5hbSBx dWEgY2hpIGNvIHRhbmcga2hvbmcgDQpiYW8gZ2lvIGdpYW0uIE5nYW4gaGFuZyBuaGFuIG51b2Mg Y2hvIHJhbmcsIHZhbiBkZSAiaG9jIGJ1YSIgbmhhdCBjdWEgdHkgZ2lhIGRvIHRoYW0gDQpodXQg Y2FuIGNhbiB0aHVvbmcgbWFpLCBuaGFwIHNpZXUgY2FvICg5IHRoYW5nIGtob2FuZyA4LDYgdGkg VVNEKSBnYXkgYXAgbHVjIGxlbiBkdSB0cnUgDQpuZ29haSBob2kuIFRyb25nIGtoaSBkbywgbmdv YWkgdGUgZGkgdmFvIGNoaSBjbyB0aGUgdHJvbmcgY2hvIGNodSB5ZXUgdHUgbmd1b24gdm9uIGdp YW4gDQp0aWVwIChGSUkpLCBraWV1IGhvaSwgRkRJLiBOaHVuZyBGSUkgZGFuZyBnaWFtIG1hbmgs IG5ndW9uIGtpZXUgaG9pIGJpbmggcXVhbiBkYXQgNyB0aSANClVTRC9uYW0sIG5odW5nIGN1bmcg a2hvbmcgbmhpZXUuIA0KDQpWZSBuZ3VvbiBGREksIHRoZW8gb25nIE5ndXllbiBOZ29jIEJhbywg VnUgdHJ1b25nIFZ1IENoaW5oIHNhY2ggdGllbiB0ZSwgbGEgbmd1b24gDQpjbyB2YWkgdHJvIGhl dCBzdWMgcXVhbiB0cm9uZy4gVHV5IG5oaWVuIHRob2kgZ2lhbiBxdWEsIG1hYyBkdSBsdW9uZyB2 b24gZGFuZyBreSB2YSBnaWFpIA0KbmdhbiB0b3QsIG5odW5nIEZESSBsYWkgdGh1b25nICJjaGF5 IiB2YW8gYmF0IGRvbmcgc2FuLCBraG9uZyBkaSB2YW8gbmdhbmggY29uZyANCm5naGllcCB2YSBz YW4geHVhdCBwaHVjIHZ1IHh1YXQga2hhdSBkZSB0aHUgdmUgbmdvYWkgdGUuICJLaG9uZyB0aGUg Y2FuIGRvaSBkdW9jIGNhbiANCmNhbiB0aGFuaCB0b2FuLCBuZXUgRkRJIGN1IGNoYXkgdmFvIGNh YyBsaW5oIHZ1YyBwaGkgc2FuIHh1YXQiLCBvbmcgQmFvIG5vaS4NCg0KRGUgZ2lhbSBib3QgYXAg bHVjIHZlIHR5IGdpYSwgZ2lhbSB0YW0gbHkga3kgdm9uZywgZ2FtIGdpdSBVU0QgY3VhIG5ndW9p IGRhbiwgdGhlbyANCm9uZyBHaWF1IJYgVGhvbmcgZG9jIE5ITk4sIG5nb2FpIGNoaW5oIHNhY2gg ZGlldSBoYW5oIHR5IGdpYSB0b3QgcGhhaSBnaWFpIGR1b2MgYmFpIA0KdG9hbiB2ZSBuaGFwIHNp ZXUuIA0KQ2h1bmcgbmFvIHRoYW0gaHV0IHRodW9uZyBtYWkgY29uIGRpZW4gcmEgZG8gbmhhcCBz aWV1LCBjYW4gY2FuIHZhbmcgbGFpIHZhbiBiaSBhbSwgDQpjYW4gY2FuIHRoYW5oIHRvYW4gdG9u ZyB0aGUgbWF0IGNhbiBkb2kgdGhpIGFwIGx1YyBkb2kgdm9pIHR5IGdpYSBzZSBraG9uZyBiYW8g Z2lvIGNoYW0gZHV0Lg0KDQpodHRwOi8vd3d3LnZuZXAub3JnLnZuL1dlYi9Db250ZW50LmFzcHg/ ZGlzdGlkPTk2NjcmbGFuZz12aS1WTiAoMjcvMDIvMjAxMCkNCg0KVGh1IHR1b25nOiBuaGFwIHNp ZXUgdHUgVHJ1bmcgUXVvYyBraG9hbmcgY2h1bmcgMTUtMTYgdHkgZG8gbGEuDQoNCkN1IHRoZSB0 YSBkYW5nIHh1YXQgc2lldSB2b2kgdG9hbiB0aGUgZ2lvaSBraG9hbmcgMyB0eSBkbyBsYSwgdHJv bmcga2hpIG5oYXAgc2lldSB0dSANClRydW5nIFF1b2Mga2hvYW5nIGNodW5nIDE1LTE2IHR5IGRv IGxhLiBCb2kgdmF5IG1vaSBjbyBjaHV5ZW4gbmhhcCBzaWV1IHRyZW4gMTIgdHkuIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDQwMDUwMTAu YXNweCAwNC8xMC8yMDEwIDA6NTAgDQoNClRodSB0dW9uZzogTmhhcCBzaWV1IHR1IFRydW5nIFF1 b2MgdGFuZyBzbyB2b2kgbmFtIDIwMDkgDQoNClRoZW8gVXkgYmFuIEtpbmggdGUgUXVvYyBob2ks IDkgdGhhbmcgcXVhIFZOIG5oYXAgc2lldSA4LDYgdGkgVVNEIHZhIGR1IGtpZW4gY2EgbmFtIGxh IDEzLDUgdGkgVVNELCB0YW5nIDUlIHNvIG5hbSAyMDA5DQoNCmh0dHA6Ly90dWFudmlldG5hbS5u ZXQvMjAxMC0wOC0wNi12aWV0LW5hbS10cnVvYy1kb25nLXRoYWMtY29uZy1uZ2hpZXAtY3VhLXRy dW5nLXF1b2MgR1MgVHJhbiBWYW4gVGhvICAodHJpY2gpIA0KDQpUaHUgdHVvbmc6IFZpZXQgTmFt IHZvaSBuZW4gY29uZyBuZ2hpZXAgbW9uZyBtYW5oLCBwaHUgdGh1b2MNCg0KTmVuIGNvbmcgbmdo aWVwIFZpZXQgTmFtIHF1YSBtb25nIG1hbmgsIHBodSB0aHVvYyBuaGlldSB2YW8gc2FuIHBoYW0g dHJ1bmcgZ2lhbiANCm5oYXAgdHUgVHJ1bmcgUXVvYyAtIEdTIFRyYW4gVmFuIFRobyB0cmFuIHRy by4NCg0KQ2F1IGhvaSBkdW9jIGRhdCByYSBvIGRheSBsYTogc3UgdHJvaSBkYXkgY3VhIFRydW5n IFF1b2MgdHJvbmcgc2FuIHh1YXQgdmEgeHVhdCBraGF1IA0KaGFuZyBjb25nIG5naGllcCBkYW5n IHZhIHNlIHRhYyBkb25nIG5odSB0aGUgbmFvIGRlbiBjb24gZHVvbmcgY29uZyBuZ2hpZXAgaG9h IGN1YSANClZpZXQgTmFtPyANCg0KVmlldCBOYW0gdm9pIG5lbiBjb25nIG5naGllcCBtb25nIG1h bmgsIHBodSB0aHVvYw0KDQpIaWVuIG5heSB0cm9uZyBjbyBjYXUgeHVhdCBraGF1IGN1YSBWaWV0 IE5hbSB0dXkgaGFuZyBjb25nIG5naGllcCBjaGllbSBraG9hbmcgNjAlIA0Kbmh1bmcgY2h1IHll dSBsYSBuaHVuZyBuZ2FuaCBkdW5nIG5oaWV1IGxhbyBkb25nIGdpYW4gZG9uLiBUaGVtIHZhbyBk bywgc2FuIHh1YXQgY2FjIA0KbWF0IGhhbmcgbmF5IHBoYWkgcGh1IHRodW9jIHZhbyBuZ3V5ZW4g bGlldSB2YSBzYW4gcGhhbSB0cnVuZyBnaWFuIG5oYXAga2hhdS4gQ2FjIGxvYWkgDQptYXkgbW9j LCBuaHVuZyBzYW4gcGhhbSBjbyBoYW0gbHVvbmcga3kgbmFuZyBsYW8gZG9uZyBjYW8sIGNoaSBj aGllbSBkbyAxMCUgdG9uZyANCnh1YXQga2hhdS4NCg0KUmllbmcgbWF1IGRpY2ggdm9pIFRydW5n IFF1b2MsIGNvIGNhdSBjdWEgVmlldCBOYW0gY29uIHlldSBob24gbnVhLg0KDQpNYXUgZGljaCBo YWkgbnVvYyB0YW5nIG5oYW5oIHR1IG5hbSAyMDAwIG5odW5nIG5nYXkgY2FuZyBtYXQgcXVhbiBi aW5oLiBUdSBuYW0gDQoyMDAwIGRlbiBuYW0gMjAwOSwgZG9pIHZvaSBUcnVuZyBRdW9jLCBuaGFw IGtoYXUgY3VhIFZpZXQgTmFtIHRhbmcgMTEgbGFuIG5odW5nIA0KeHVhdCBraGF1IGNoaSB0YW5n IDUgbGFuLiBUdSBuYW0gMjAwMyBUcnVuZyBRdW9jIHZ1b3QgTmhhdCB0cm8gdGhhbmggbnVvYyBj byB0aGkgcGhhbiANCmxvbiBuaGF0IHRyb25nIHRvbmcgbmhhcCBraGF1IGN1YSBWaWV0IE5hbSB2 YSBzYXUgZG8gbmdheSBjYW5nIGJvIHhhIE5oYXQgQmFuLiBEbyANCm5oYXAga2hhdSB0YW5nIG5o YW5oLCBuaGFwIHNpZXUgY3VhIFZpZXQgTmFtIGRvaSB2b2kgVHJ1bmcgUXVvYyBuZ2F5IGNhbmcg bW8gcm9uZy4gDQpOYW0gMjAwOSwgcmllbmcgbmhhcCBzaWV1IHZvaSBUcnVuZyBRdW9jICgxMSw1 IHRpIFVTRCkgY2hpZW0gdG9pIDkwJSB0b25nIG5oYXAgc2lldSBjdWEgVmlldCBOYW0uDQoNCk5o aW4gY28gY2F1IHh1YXQga2hhdSBjdWEgVmlldCBOYW0gc2FuZyB0aGkgdHJ1b25nIFRydW5nIFF1 b2MgdGEgdGhheSBuZ3V5ZW4gbGlldSB2YSANCm5vbmcgc2FuIHBoYW0gY2hpZW0gdmkgdHJpIGFw IGRhby4gVGhlbyBEdWEgdHJlbiB0aG9uZyBrZSBuaGFwIGtoYXUgY3VhIFRydW5nIFF1b2MsIDcg DQptYXQgaGFuZyB4dWF0IGtoYXUgc2FuZyBUcnVuZyBRdW9jIGNvIGtpbSBuZ2FjaCBjYW8gbmhh dCAobmFtIDIwMDcpIGRldSBuYW0gdHJvbmcgMiANCm5ob20gbmd1eWVuIGxpZXUgdmEgbm9uZyBw aGFtLiBSaWVuZyB0aGFuIGRhIGRhIGNoaWVtIGdhbiAzMCUuIEhhbmcgY29uZyBuZ2hpZXAgDQpj aGkgY2hpZW0gMTIlIChuYW0gMjAwNykuDQoNCkNvIGNhdSBuYXkgaGF1IG5odSBraG9uZyB0aGF5 IGRvaSB0cm9uZyAxMCBuYW0gcXVhLiBDYWMgbG9haSBtYXkgbW9jICh2YSBsaW5oIGtpZW4pIA0K ZHVuZyBjaG8gdmFuIHBob25nLCBjaG8gY29uZyBuZ2hlIHRob25nIHRpbiwgY2hvIGRpZW4gbHVj LC4uLiBnYW4gZGF5IGJhdCBkYXUgeHVhdCBraGF1IA0Kc2FuZyBUcnVuZyBRdW9jIGRvIGtldCBx dWEgY3VhIGNoaWVuIGx1b2MgdHJpZW4ga2hhaSBjaHVvaSBjdW5nIHVuZyBjdWEgY2FjIGNvbmcg dHkgDQpOaGF0IG5odSBDYW5vbiwgU3VtaWRlbiwgSGl0YWNoaSAoY2FjIGNvbmcgdHkgbmF5IGRh dSB0dSB2YW8gbWllbiBCYWMgVmlldCBOYW0gZGUgDQpibyBzdW5nIHZhbyBtYW5nIGx1b2kgc2Fu IHh1YXQgY3VhIGhvIG8gdnVuZyBIb2EgTmFtIFRydW5nIFF1b2MpLiBUdXkgbmhpZW4sIG5odW5n IA0Kc2FuIHBoYW0gbmF5IG1vaSBjaGkgY2hpZW0gbW90IHRpIHRyb25nIG5obyB0cm9uZyB0b25n IHh1YXQga2hhdSBjdWEgVmlldCBOYW0gc2FuZyB0aGkgDQp0cnVvbmcgVHJ1bmcgUXVvYy4gDQoN Ck5oaW4gc2FuZyBjbyBjYXUgbmhhcCBraGF1IGN1YSBWaWV0IE5hbSB0dSBUcnVuZyBRdW9jIHRh IHRoYXkgaGFuZyBjb25nIG5naGllcCANCmNoaWVtIHZpIHRyaSBhcCBkYW8gKGNoaWVtIHRvaSA3 NSUgdmFvIG5hbSAyMDA3KS4gVGF0IGNhIDIwIG1hdCBoYW5nIGNvIGtpbSBuZ2FjaCANCm5oYXAg a2hhdSBuaGlldSBuaGF0IGRldSBsYSBoYW5nIGNvbmcgbmdoaWVwLiANCkNhYyBsb2FpIGhhbmcg bmF5IGNvIHRoZSBjaGlhIHJhIHRoYW5oIDMgbmhvbTogdGh1IG5oYXQgbGEgbmd1eWVuIHZhdCBs aWV1IGhvYWMgc2FuIHBoYW0gDQp0cnVuZyBnaWFuIG5odSB0aGVwIGRlIGNoZSBiaWVuIHRoYW5o IHBoYW0gdGlldSBkdW5nLCBoYWkgbGEgY2FjIGxvYWkgbWF5IG1vYyAodmEgYm8gDQpwaGFuLCBs aW5oIGtpZW4pIG5odSB4ZSBob2ksIGtoaSBjdSAgZHVuZyBjaG8gYnV1IGNoaW5oIHZpZW4gdGhv bmcsIHZhIG5ob20gdGh1IGJhIGxhIA0KY2FjIGxvYWkgc2FuIHBoYW0gdHJ1bmcgZ2lhbiBuZ2Fu aCBkZXQgbWF5IG5odSB0byBzb2kgdG9uZyBob3AsIHZhaSBib25nLCB2YWkgbWF5IG5vaSANCnks Li4uIA0KDQpEaWV1IG5heSBjaG8gdGhheSBuZW4gY29uZyBuZ2hpZXAgVmlldCBOYW0gcXVhIG1v bmcgbWFuaCwgcGh1IHRodW9jIG5oaWV1IHZhbyBzYW4gDQpwaGFtIHRydW5nIGdpYW4gbmhhcCB0 dSBUcnVuZyBRdW9jLiBOZXUgeGV0IGRlbiBxdWEgdHJpbmggcGhhdCB0cmllbiBraW5oIHRlLCBW aWV0IE5hbSANCmxlIHJhIHBoYWkgY28gbG9pIHRoZSBjYW5oIHRyYW5oIHRyb25nIGxpbmggdnVj IHZhaSBzb2kgKHRydSBsb2FpIHNvaSBjYW8gY2FwIGNodW5nIGxvYWkgZGFjIA0KYmlldCBuaHUg dG8gc29pIHRvbmcgaG9wKS4gVHV5IG5oaWVuIHRyZW4gdGh1YyB0ZSwgY2FjIHNhbiBwaGFtIG5o dSB2YWkgZGV0IG1heSBoYXkgZGV0IA0Ka2ltIGhhdSBoZXQgVmlldCBOYW0gcGhhaSBuaGFwIHR1 IFRydW5nIFF1b2MuIA0KDQpUcm9uZyB2YWkgbmdhbmggbmFtIHRyb25nIGRheSBjaHV5ZW4gY3Vu ZyB1bmcgdG9hbiBjYXUgY3VhIGNhYyBjb25nIHR5IGRhIHF1b2MgZ2lhIA0KKGNhYyBsb2FpIG1h eSBkdW5nIGNobyB2YW4gcGhvbmcgbmh1IG1heSB0aW5oIHhhY2ggdGF5LCBtYXkgaW4sLi4uKS4g VmlldCBOYW0gY28geHVhdCANCmtoYXUgc2FuZyBUcnVuZyBRdW9jIG5odW5nIGtpbSBuZ2FjaCBj b24gcmF0IG5oby4gDQoNCk1hdSBkaWNoIG8gYmllbiBnaW9pIHF1YSAzIGN1YSBraGF1IGNoaW5o IGN1bmcgbWFuZyB0aW5oIGNoYXQgdHVvbmcgdHUuIFRhaSBjdWEga2hhdSANCkxhby1DYWktSGEg S2hhdSAoVmFuIE5hbSksIFZpZXQgTmFtIHh1YXQga2hhdSBub25nIGxhbSB0aHV5IHNhbiB2YSBu aGFwIHBoYW4gYm9uLCANCnRodW9jIHRydSBzYXUsIHYudi4uIExhbmcgU29uLUJhbmcgVHVvbmcg KFF1YW5nIFRheSkgbGEgY3VhIGtoYXUgY2h1eWVuIG5oYXAgY2FjIGxvYWkgDQptYXkgbW9jLCB0 aGlldCBiaSB0dSBUcnVuZyBRdW9jIHZhbyBWaWV0IE5hbS4gVGFpIGN1YSBraGF1IE1vbmcgQ2Fp LURvbmcgSHVuZyANCihRdWFuZyBUYXkpIFZpZXQgTmFtIHh1YXQga2hhdSB0aGFuIHZhIG5oYXAg aGFuZyBjb25nIG5naGllcCB0aWV1IGR1bmcuIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0LzIw MTAtMDgtMDYta2h1eWV0LWRpZW0tY3VhLXZuLWxhLWRlLW1vLWhpbmgtcGhhdC10cmllbi10aGVv LWNoaWV1LXJvbmctcXVhLWxhdSBUdWFuIFZpZXQgTmFtIDA2LTA4LTIwMTAgDQoNClRodSB0dW9u ZzogS2h1eWV0IGRpZW0gY3VhIFZOIGxhIGRlIG1vIGhpbmggcGhhdCB0cmllbiB0aGVvIGNoaWV1 IHJvbmcgcXVhIGxhdQ0KDQpOZ3V5ZW4gQm8gdHJ1b25nIGJvIHRodW9uZyBtYWkgVHJ1b25nIERp bmggVHV5ZW4gY2hvIHJhbmc6ICJLaHV5ZXQgZGllbSBjdWEgVmlldCANCk5hbSBsYSBkYSBkZSBt byBoaW5oIHBoYXQgdHJpZW4gdGhlbyBjaGlldSByb25nIHF1YSBsYXUuIENhbiBuZ3V5ZW4gbyBj aG8gY2h1bmcgdGEgZGEgDQpraG9uZyB0YW8gcmEgdGhlIGNoZSBkZSBjbyB0aGUgY2h1eWVuIG5n YXkgZHVvYy4gQ2hvIG5lbiB0b2kgZGF5LCBjYWkgbmFvIGNodXllbiBuaGFuaCANCnNhbmcgY2hp ZXUgc2F1IHRoaSBwaGFpIGNodXllbiBuZ2F5LCBjYWkgbmFvIGNodWEgY28gZGlldSBraWVuIHBo YWkgY2hhcCBuaGFuIGRlIGNodXllbiANCmRhbiIuDQoNCmh0dHA6Ly90dWFudmlldG5hbS5uZXQv MjAxMC0wOC0wNi1kdS1raG8ta2hhbi1sdWMtZGF1LWNhaS10aWVuLWJvLXJvaS1zZS10aGFuZy0g VHVhbiBWaWV0IE5hbSAodGh1YyBoaWVuKTA3LzA4LzIwMTAgMDY6MDAgR01UKzcgDQoNCkNhbiBw aGFpIGtob2kgZG9uZyB0YWkgY2F1IHRydWMgbmVuIGtpbmggdGUgLSBEdSBraG8ga2hhbiBsdWMg ZGF1IG5odW5nIGNhaSB0aWVuIGJvIHJvaSBzZSB0aGFuZyANCg0KTmd1eWVuIEJvIHRydW9uZyBi byB0aHVvbmcgbWFpIFRydW9uZyBEaW5oIFR1eWVuIGNobyByYW5nOiAiQ2FuIHBoYWkga2hvaSBk b25nLCANCnBoYWkgcXV5ZXQgdGFtIHRhaSBjYXUgdHJ1YyBuZW4ga2luaCB0ZS4gVmkgZGF5IGxh IG1vdCBnaWFpIHBoYXAgcXVhbiB0cm9uZyBkZSBwaGF0IHRyaWVuIA0KbmhhbmggdmEgYmVuIHZ1 bmcuIFRvaSB0aW4gRGFpIGhvaSBzZSBxdXlldCBkaW5oLiBWYSwgdm9pIGtob25nIGtoaSBEYWkg aG9pIHNlIGNodXllbiB0dSANCnF1eWV0IHRhbSBzYW5nIGhhbmggZG9uZyIuIA0KDQpodHRwOi8v dm5yNTAwLnZpZXRuYW1uZXQudm4vY29udGVudC5hc3B4P2lkPTkyOCA4LzYvMjAxMCAxMTozOTo0 MCBBTSAoR01UKzcpIA0KDQpLaG9uZyB0aGUgImRpIGhvYSB2aSBxdWkiIHZvaSBuaGEgdGhhdSBU cnVuZyBRdW9jIA0KDQpOaGlldSBjb25nIHRyaW5oIGRvIG5oYSB0aGF1IFRydW5nIFF1b2MgdGh1 YyBoaWVuIGNoYW0gdGllbiBkbyB0b2kgMS0yIG5hbSwgbmh1bmcgdmkgDQp0aG9pIHF1ZW4gY2Eg bmUsIGRpIGhvYSB2aSBxdWkgaG9hYyB2aSBuaGlldSBseSBkbyBraGFjLCBtYSBjaHUgZGF1IHR1 IFZpZXQgTmFtIGl0IGtoaSANCiJwaGF0IGR1b2MiIG5oYSB0aGF1LCBreSBzdSBUcnVvbmcgVmFu IFRoaWVuIGNoaWEgc2Ugdm9pIFZOUjUwMCAgDQoNCktob25nIGNoYXQgY2hlIG5nYXkgdHUga2hh dSBsdWEgY2hvbiBuaGEgdGhhdQ0KDQpNb3QgYmF0IGNhcCBoaWVuIG5heSBsYSBxdXkgZGluaCBw aGFwIGx1YXQgaGllbiBoYW5oIGNhbSBuZXUgY3UgdGhlIG5ndW9uIGdvYyB4dWF0IHh1IA0KaGFu ZyBob2EsIHRoaWV0IGJpIHRyb25nIGhvIHNvIG1vaSB0aGF1LCB0cm9uZyBraGkgZG8gZHUgdG9h biBnaWEgZ29pIHRoYXUgbGFpIHBoYWkgZHVvYyANCmxhcCB0cmVuIGNvIHNvIGhvIHNvIHRoaWV0 IGtlIHZhIHRoaWV0IGJpIHBoYWkgZHVvYyB4YWMgZGluaCBybyBuZ3VvbiBnb2MgeHVhdCB4dS4g DQoNClF1eSBkaW5oIG5heSB2byBoaW5oIHRydW5nIGRhbmggZG9uZyB2ZSBtYXQgZ2lhIGN1YSBj YWMgdGhpZXQgYmkgY28geHVhdCB4dSB0dSBUcnVuZyANClF1b2Mgdm9pIGNhYyB0aGlldCBiaSB0 dSBjYWMgbnVvYyBHNywgZGFuIGRlbiBsb2kgdGhlIHJhdCBsb24gY2hvIGNhYyBuaGEgdGhhdSBU cnVuZyANClF1b2Mga2hpIHRoYW0gZ2lhIGRhdSB0aGF1Lg0KDQpodHRwOi8vdm5yNTAwLnZpZXRu YW1uZXQudm4vY29udGVudC5hc3B4P2lkPTg2MCA3LzMwLzIwMTAgNToxMjo0NCBQTSAoR01UKzcp DQoNClRodSB0dW9uZzogVHJ1bmcgUXVvYyBraG9uZyAibWFuIiBGREksIGNoaSBtdW9uIHRoYW5n IHRoYXUgDQoNClZpZWMgVHJ1bmcgUXVvYyBsYSBuaGEgdGhhdSBudW9jIG5nb2FpIGxvbiBuaGF0 IG8gbnVvYyB0YSBjdW5nIG5hbSB0cm9uZyBtdWMgdGlldSBsb24gDQpjdWEgY2hpbmggcGh1IG51 b2MgbmF5OiB0aGF1IGtob2FuIGNvbmcgdHJpbmggKHRvbmcgdGhhdSBFUEMpIGxheSBjaGF1IEEg bGEgY2hpbmgsIHJvaSANCm1vIHJvbmcgc2FuZyBjaGF1IFBoaS4uLiBOaGlldSBkb2FuaCBuZ2hp ZXAgVHJ1bmcgUXVvYyBjaG8gYmlldCBsYSBraGkgbmhhbiB0aGF1IGNhYyANCmNvbmcgdHJpbmgg byBudW9jIG5nb2FpLCBkb2FuaCBuZ2hpZXAgZHVvYyBuaGEgbnVvYyBobyB0cm8ga2luaCBwaGkg ZGkgeHVjIHRpZW4gZGF1IHR1LiANClZpIHZheSwgY2FjIGRpZXUga2llbiBjYW5oIHRyYW5oIGRl IHRydW5nIHRoYXUgY3VhIGRvYW5oIG5naGllcCBUcnVuZyBRdW9jIGNhbmcgZHVvYyB0aHVhbiBs b2kuIA0KDQpodHRwOi8vdm5yNTAwLnZpZXRuYW1uZXQudm4vY29udGVudC5hc3B4P2lkPTg3MiBQ aGFtIEh1eWVuIDcvMzEvMjAxMCA1OjMwOjU5IFBNIChHTVQrNykNCg0KVmlldCBOYW0gIm5oYXAg c2lldSIgRVBDIHR1IFRydW5nIFF1b2MgDQoNCjkwJSBjYWMgY29uZyB0cmluaCBkaWVuLCBraGFp IGtob2FuZywgZGF1IGtoaSwgbHV5ZW4ga2ltLCBob2EgY2hhdC4uLiBjdWEgVmlldCBOYW0gaGll biANCmRldSBkbyBkb2kgdGFjIFRydW5nIFF1b2MgZGFtIG5oaWVtOyBMYW4gc2FuIGhhdSBoZXQg bGluaCB2dWMgY29uZyBuZ2hpZXAgdGh1b25nIG5ndW9uIGN1YSBWaWV0IE5hbSANCg0KaHR0cDov L3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0wNy1hc2VtLTgtdmEtbmh1bmctdGhv bmctZGllcC1jdWEtdGh1LXR1b25nIEh1eW5oIFBoYW4gOC8xMC8yMDEwIA0KDQpUaHUgdHVvbmc6 IEFTRU0gOCB2YSBuaHVuZyB0aG9uZyBkaWVwIGN1YSBvbmcgVGh1IHR1b25nIA0KDQpDYWMga3kg aG9pIG5naGkgdGh1b25nIGRpbmggQSAtIEF1IChBU0VNIFN1bW1pdCksIGtlIHR1IEFTRU02LCBs dW9uIGxhIG1vdCBreSBuaWVuIA0KbmdvdCBuZ2FvIHZhIGRhbmcgbmhvIGRvaSB2b2kgbmd1b2kg ZHVuZyBkYXUgY2hpbmggcGh1IFZpZXQgTmFtLg0KDQpUdSB0aW4sIG5hbmcgZG9uZyB2YSBuaGll dSBzYW5nIGtpZW4/DQoNClZvaSBBU0VNNiwgbmFtIDIwMDYsIHRhaSBIZWxzaW5raSAoUGhhbiBM YW4pLCBvbmcgTmd1eWVuIFRhbiBEdW5nLCBkYSBjbyBjbyBob2kgdHUgDQpnaW9pIHRoaWV1IGhp bmggYW5oIGN1YSBtaW5oIGxhIG1vdCB0YW4gVGh1IHR1b25nIGRheSAidHUgdGluIiwgIm5hbmcg ZG9uZyIgdmEgImRheSB5IA0KdHVvbmciLCB0cnVvYyBuZ3V5ZW4gdGh1IGN1YSBraG9hbmcgYm9u IGNodWMgdGhhbmggdmllbiBraGFjIHRodW9jIGhhaSBjaGF1IGx1YyBBIJYgDQpBdSwgY3VuZyBu aHUgZ2lvaSB0cnV5ZW4gdGhvbmcgcXVvYyB0ZS4gT25nIGRhIGNvIDIgYmFpIHBoYXQgYmlldSBx dWFuIHRyb25nLCB2YSBnYXAgMTIgDQp0cnVvbmcgZG9hbiBraGFjLCB2YSBkdWEgcmEgMiBzYW5n IGtpZW4uIA0KDQpWb2kgQVNFTTcgdGFpIEJhYyBLaW5oIChUcnVuZyBRdW9jKSxvbmcgVGh1IHR1 b25nIFZpZXQgTmFtIGNvIDEgYmFpIHBoYXQgYmlldSBxdWFuIA0KdHJvbmcsIGdhcCAxMSB0cnVv bmcgZG9hbiBraGFjLCBuaHVuZyBsYWkgZHVhIHJhIDMgc2FuZyBraWVuLiBEYWMgYmlldCwgQVNF TTcgY3VuZyBkYW5oIA0KZGF1IGNodXllbiB0aGFtIGNoaW5oIHRodWMgVHJ1bmcgUXVvYyBkYXUg dGllbiBjdWEgb25nIE5ndXllbiBUYW4gRHVuZywgc2F1IGhhaSBuYW0gdGllcCBxdWFuIGN1b25n IHZpIFRodSB0dW9uZy4NCg0KU2F1IGN1b2MgaG9pIGRhbSB2b2kgbmd1b2kgZG9uZyBjYXAgcGhp YSBjaHUgbmhhIGR1eSBuaGF0IHRhaSBCYWMgS2luaCBsYW4gZG8gKGhhbmcgDQpsb2F0IGN1b2Mg Z2FwIHRpZXAgc2F1IGRvIGN1YSBoYWkgb25nIFRodSB0dW9uZyBkZXUgZGllbiByYSB0YWkgY2Fj IGRpYSBwaHVvbmcga2hhYyBjdWEgDQpUcnVuZyBRdW9jKSwgb25nIE5ndXllbiBUYW4gRHVuZyB2 YSBvbmcgT24gR2lhIEJhbyBkYSBreSB0dXllbiBibyBjaHVuZywgdHJvbmcgZG8gDQpraGFuZyBk aW5oIHJhbmcgaGFpIGJlbiBraG9uZyBuZW4gY28gbmh1bmcgaGFuaCBkb25nIGRvbiBwaHVvbmcg Z2kgbGFtIHBodWMgdGFwIA0KdGhlbSB0cmFuaCBjaGFwIG8gQmllbiBEb25nLCBuaGF0IGxhIGhh aSBxdWFuIGRhbyBUcnVvbmcgU2EgdmEgSG9hbmcgU2EuIA0KDQpWb2kgQVNFTTgsIGRpZW4gcmEg dGFpIEJydXNzZWxzIChCaSksIG5ndW9pIGR1bmcgZGF1IGNoaW5oIHBodSBWaWV0IE5hbSB2YW4g dGllcCB0dWMgDQpnaXUgZHVvYyBwaG9uZyBkbyB2YSBoaW5oIGFuaCBxdW9jIHRlIGN1YSBtaW5o IChiZW4gY2FuaCBoaW5oIGFuaCB0cm9uZyBudW9jIGxhIG1vdCANCnRodSB0dW9uZyBxdXlldCBs aWV0IHRyb25nIGNhIHN1eSBuZ2hpLCBoYW5oIGRvbmcgdmEgc3VhIHNhaSkgdm9pIDIgYmFpIGJh aSBwaGF0IGJpZXUgcXVhbiANCnRyb25nLCA1IGN1b2MgZ2FwIHNvbmcgcGh1b25nLCB2YSBoYWkg c2FuZyBraWVuIGRvbmcgZ29wIHF1YW4gdHJvbmcuDQoNCk9uZyBUaHUgdHVvbmcgVmlldCBOYW0g bGEgbW90IHRyb25nIG5odW5nIGRpZW4gZ2lhIGNoaW5oIHRyb25nIGhhaSBwaGllbiBob3AgcXVh biANCnRyb25nIHZvaSBjaHUgZGUgbm9uZyBsYSAiVGFuZyBjdW9uZyBoaWV1IHF1YSBjbyBjaGUg cXVhbiB0cmkga2luaCB0ZSB0YWkgY2hpbmggdG9hbiBjYXUiICANCnZhICJQaGF0IHRyaWVuIGJl biB2dW5nIi4gVGhlbyBUaHUgdHJ1b25nIE5nb2FpIGdpYW8gRG9hbiBYdWFuIEh1bmcsIG9uZyBU aHUgdHVvbmcgDQpOZ3V5ZW4gVGFuIER1bmcgZGEgZHVvYyBuaGlldSB2aSB0cnVvbmcgZG9hbiBr aGFjIGRhbmggZ2lhIGNhbyB2aSBzdSBuYW5nIGRvbmcsIHRpY2ggDQpjdWMgdmEgY2h1IGRvbmcg Y3VhIG1pbmgsIGtoaSBkaWVuIGRhbiBuYW8gb25nIGN1bmcgdGhhbSBkdSwgY3VuZyBkb25nIGdv cCB5IGtpZW4uDQoNCkhhaSBzYW5nIGtpZW4gbWEgVmlldCBOYW0gbGEgZG9uZyB0YWMgZ2lhLCBj dW5nIHZvaSBQaGFuIExhbiwgSGFuIFF1b2MsIEFuaCB2YSBEdWMsIA0KbGEgdG8gY2h1YyBEaWVu IGRhbiAiVGFuZyB0cnVvbmcgWGFuaCIgdmEgRGllbiBkYW4gIk1hbmcgbHVvaSBhbiB0b2FuIHhh IGhvaSBjaG8gbW9pIA0Kbmd1b2kiLiBNb3QgdGhhbmggdmllbiBjdWEgZG9hbiB0aHUgdHVvbmcs IGdpYXUgdGVuLCBnaWFpIHRoaWNoIHJhbmcgaGFpIHkgdHVvbmcgdHJlbiBsYSANCmN1YSBWaWV0 IE5hbSwgbmh1bmcgcGhpYSBWaWV0IE5hbSBwaGFpIHZhbiBkb25nIDQgbnVvYyBub2kgdHJlbiB1 bmcgaG8gZGUgdHJvIHRoYW5oIA0Kc2FuZyBraWVuIGtpZW4gY2h1bmcgY3VhIDUgbnVvYyBjaG8g Y28gc3VjIG5hbmcgbmhhbSB0aHV5ZXQgcGh1YyBjYWMgdGhhbmggdmllbiBjb24gDQpsYWkgZGUg ZGFuZyBjaGFwIHRodWFuLg0KDQpDdW5nIHRoZW8gdmkgY2h1eWVuIGdpYSB2ZSBBU0VNIG5heSwg bWFjIGR1IG5odW5nIHZhbiBkZSB0YWkgQVNFTSBpdCBtYW5nIHRpbmggDQpyYW5nIGJ1b2MsIGNo dSB5ZXUgbGEgZG9pIHRob2FpLCB0aGF5IHZpIGJhbiBnaWFpIHBoYXAgY3UgdGhlIGNobyB2aWVj IGhvcCB0YWMgbmh1IEFQRUMsIA0Kbmh1bmcgc2FuZyBraWVuIG5vaSB0cmVuIGl0IG5oYXQgY3Vu ZyBjaHVuZyB0byBkdW9jIHN1IG5oYXkgYmVuIHZhIHkgdGh1YyB0cmFjaCBuaGllbSANCmNhbyBj dWEgbGFuaCBkYW8gVmlldCBOYW0gZG9pIHZvaSBuaHVuZyB2YW4gZGUgbWFuZyB0aW5oIHRvYW4g Y2F1Lg0KDQpWYSB0cmVuIGhldCwgZG8gdHJ1eWVuIGRpIHRob25nIGRpZXAgdmUgbW90IFZpZXQg TmFtIG5hbmcgZG9uZywgdHJhY2ggbmhpZW0sIG11b24gDQpkb25nIHZhaSB0cm8gdGljaCBjdWMg dmEgeGF5IGR1bmcgdHJlbiB0aGUgZ2lvaSB2YSB2b2kgdGhlIGdpb2ksIG5oYXQgbGEgdHJvbmcg a2hpIG51b2Mga2hhYyANCm11b24gInBodWkgdGF5IiB0cmFjaCBuaGllbSB2b2kgdGhlIGdpb2ku DQoNCiJIb24gbnVhLCBzYW5nIGtpZW4gY3VhIFZpZXQgTmFtIHRodSBodXQgZHVvYyBzdSBjaHUg eSBjdWEgY2FjIG51b2MsIHZpIG1vdCBseSBkbyBxdWFuIA0KdHJvbmcgbGEgZGV1IHh1YXQgcGhh dCB0dSBuaHVuZyB0cmFpIG5naGllbSwgY2EgdGhhbmggY29uZyBsYW4gdGhhdCBiYWksIGhheSBu aHVuZyB2YW4gZGUgDQptYSBWaWV0IE5hbSBkYW5nIHBoYWkgZG9pIG1hdCIsIGNodXllbiBnaWEg bmF5IG5vaSB0aGVtLg0KDQpOaHVuZyB0aG9uZyBkaWVwIGR1b2MgY2hvIGRvaQ0KDQpOaGFuIGRp bmggdHJlbiBybyByYW5nIGRhIGR1b2MgdGh1YyB0ZSB4YWMgbmhhbi4NCg0KVmllYyBuaHVuZyBu dW9jIGRhbmcgYmkgcGh1b25nIFRheSwgZHVuZyBkYXUgbGEgTXksIGNhbSB2YW4gbmh1IEN1YmEs IE15YW5tYXIsIA0KaGF5IENIRENORCBUcmlldSBUaWVuLCB0dSBuaGlldSBuYW0gbmF5IGRhIHF1 YW4gdGFtIGhvYyBob2kga2luaCBuZ2hpZW0gZG9pIG1vaSB2YSANCm1vIGN1YSBjdWEgVmlldCBO YW0sIGJvaSwgcm8gcmFuZyBWaWV0IE5hbSBkYSBjbyBuaHVuZyB0cmFpIG5naGllbSBkYXUgZG9u IG5oYXQgdmUgDQp0aG9pIGt5IGJpIGNhbSB2YW4gdmEgbmh1bmcga2luaCBuZ2hpZW0gdGhhbmgg Y29uZyBkYW5nIGtlIGtoaSBxdXlldCBkaW5oIG1vIGN1YSwgaG9pIA0KbmhhcCB2YSBkYW4gY2h1 eWVuIGRvaSBuZW4ga2luaCB0ZSB0aGVvIGNvIGNoZSB0aGkgdHJ1b25nLg0KDQpIYXkgbmh1bmcg c2FuZyBraWVuIGR1YSByYSB0YWkgQVNFTTggdnVhIHJvaSBsYSBuaHVuZyB2YW4gZGUgcmF0IGxv biBtYSBWaWV0IE5hbSANCmRhbmcgcGhhaSBkb2kgbWF0LCBuaGF0IGxhIGxpZW4gcXVhbiB0b2kg dGFuZyB0cnVvbmcgYmVuIHZ1bmcgdHJvbmcgbW9pIGxpZW4gcXVhbiBjaGF0IA0KY2hlIHZvaSBh biB0b2FuIHhhIGhvaS4gVGh1IHRydW9uZyBEb2FuIFh1YW4gSHVuZyBuaGFuIHhldCByYW5nIHJv IHJhbmcgb25nIFRodSANCnR1b25nIFZpZXQgTmFtIGRhIHR1eWVuIGJvIHZvaSB0aGUgZ2lvaSBy YW5nIGhvIGRhIHhhYyBkaW5oIGNvbiBkdW9uZyBjdWEgMTAgbmFtIHNhcCANCnRvaSBraG9uZyBw aGFpIGNoaSB0YXAgdHJ1bmcgdmFvIHRhbmcgdHJ1b25nIG5oYW5oLCBtYSBwaGFpIHF1YW4gdGFt IGRhYyBiaWV0IHRvaSB5ZXUgdG8gDQpiZW4gdnVuZy4gDQoNCiJUdWMgbGEgcGhhaSBxdWFuIHRh bSBjYSBraW5oIHRlLCB4YSBob2kgdmEgbW9pIHRydW9uZy4gQ2h1IGNvbiBub2kgcmllbmcgdmUg a2luaCB0ZSwgDQpjaHVuZyB0YSBkZXUgYmlldCBtdW9uIGRhdCB0YW5nIHRydW9uZyBHRFAgY2Fv IGtob25nIGtobyBtYS4uLiIsIFRodSB0cnVvbmcgSHVuZyBibyANCmx1bmcgbG9pIG5oYW4geGV0 Lg0KDQpDaHV5ZW4gZ2lhIGtpbmggdGUgUGhhbSBDaGkgTGFuLCB0aGFuaCB2aWVuIEJhbiBOZ2hp ZW4gY3V1IGN1YSB2aSB0aHUgdHVvbmcgdGllbiANCm5oaWVtLCBkYSBub2kgcm8gcmFuZyB0cm9u ZyBjYSB0aG9pIGt5IHZ1YSBxdWEgVmlldCBOYW0gZGEgZGF0IGR1b2MgbXVjIHRhbmcgdHJ1b25n IGNhbyANCmNodSB5ZXUgbGEgbmhvIGtoYWkgdGhhYyB0YWkgbmd1eWVuIHZhIHRoYW0gZHVuZyB2 b24sIGR1IGNobyBwaGFuIGxvbiBsYSB2b24gdmF5LCB0cm9uZyANCm1vIGhpbmggdGFuZyB0cnVv bmcgdGhlbyBiZSByb25nLg0KDQoiVGh1IHR1b25nIG5vaSB2ZSBwaGF0IHRyaWVuIGJlbiB2dW5n LCBoYXkgdGFuZyB0cnVvbmcgeGFuaCwgdHVjIGxhIFZpZXQgTmFtIHBoYWkgbmhhbmggDQpjaG9u ZyB0YXAgdHJ1bmcgdmFvIGhpZXUgcXVhLCBuYW5nIHN1YXQgZGUgbmFuZyBjYW8ga2hhIG5hbmcg Y2FuaCB0cmFuaCwgdHVjIGxhIHBoYWkgZGF1IA0KdHUgbmhpZXUgdmFvIGtob2EgaG9jIGNvbmcg bmdoZSIsIGJhIENoaSBMYW4gZ2lhaSB0aGljaCBjYWNoIGhpZXUgY3VhIG1pbmguDQoNCkJhIENo aSBMYW4gbmhhbiB4ZXQgdGhlbSByYW5nIHRoZW8gcXVhbiBuaWVtIGhpZW4gaGFuaCBjdWEgY29u ZyBkb25nIHF1b2MgdGUsIGJhbyB2ZSANCm1vaSB0cnVvbmcgYmFvIGdvbSBiYW8gdmUgbW9pIHRy dW9uZyB0aGllbiBuaGllbiBraG9pIG5odW5nIHRhYyBuaGFuIGRvYyBoYWkgbmh1IG51b2MgDQp0 aGFpLCBraWVtIHNvYXQgY2hhdCBjaGUgdmllYyBraGFpIHRoYWMgdGFpIG5ndXllbiwgdmEgaGFu IGNoZSBzdSBkdW5nIGNhYyB0aGlldCBiaSBjb25nIA0KbmdoZSB0aGFwLCB0aWV1IGhhbyBuaGll dSBuYW5nIGx1b25nIHZhIHRhbyByYSBvIG5oaWVtLg0KDQpDdW5nIHRoZW8gYmEgQ2hpIExhbiwg aG9hdCBkb25nIGtoYWkgdGhhYyB0YWkgbmd1eWVuIG8gVmlldCBOYW0gY2h1IHlldSBuYW0gdmll YyB0YW4gDQpraGFpIGNhYyBtbyB0aGFuLCBtb2kgZGF5IGxhIGtoYWkgdGhhYyBibyB4aXQsIHF1 YW5nIHNhdC4uLiwgcGhhIHJ1bmcgZGUga2hhaSB0aGFjIGdvLCBjdW5nIA0Kbmh1IGtoYWkgdGhh YyBuZ3VvbiBudW9jIGxhbSB0aHV5IGRpZW4uDQoNCiJLaGkgZHVhIHJhIHRob25nIGRpZXAgdmUg dGFuZyB0cnVvbmcgYmVuIHZ1bmcsIHRhbmcgdHJ1b25nIHhhbmgsIHRvaSBuZ2hpLCBsYW5oIGRh byANCmNoaW5oIHBodSBWaWV0IE5hbSBkYSBydXQgcmEgYmFpIGhvYyBkYXQgZ2lhIHR1IHN1IHRh bmcgdHJ1b25nIG5vbmcgY3VhIFRydW5nIFF1b2MsIG1vdCANCnNvIG51b2Mga2hhYyIsIFRodSB0 cnVvbmcgSHVuZyBuaGFuIHhldCwgbWEgcXVlbiBraG9uZyBub2kgcmFuZyBWaWV0IE5hbSBjdW5n IGNoaW5oIA0KbGEgYmFpIGhvYyBjdWEgbWluaC4NCg0KQ29uIGJhIENoaSBMYW4gY2hvIHJhbmcg Y28gdGhlIGNhYyBuaGEgZGF1IHR1LCBoYXkgY2hlIHRhbyB0aGlldCBiaSB0dSBuaHVuZyBudW9j IHBoYXQgDQp0cmllbiB0cm9uZyB2YSBuZ29haSBBU0VNLCBxdWEgY2FjIHBodW9uZyB0aWVuIHRy dXllbiB0aG9uZyBjbyB0aGUgaGlldSB0aG9uZyBkaWVwIGN1YSANCm9uZyBUaHUgdHVvbmcgbGEg VmlldCBOYW0gc2UgcXVhbiB0YW0gZGFjIGJpZXQgdG9pIGNhYyBjb25nIG5naGUsIHRoaWV0IGJp IHRpZXQga2llbSBuYW5nIA0KbHVvbmcgdmEgdGhhbiB0aGllbiB2b2kgbW9pIHRydW9uZywgdGhh eSB2aSBuaHVuZyBjb25nIG5naGUsIHRoaWV0IGJpIGdpYSByZSwgbmh1bmcgdGh1IA0KZGljaCB2 b2kgbW9pIHRydW9uZywgdHJvbmcgeHUgaHVvbmcgcGhvIGJpZW4gdHUgdHJ1b2MgZGVuIG5heS4g DQoNCihDdSB0cmkgcXVhbiB0YW06IE5odSB2YXksIGR1bmcgbmh1IGNhYyBjaHV5ZW4gZ2lhIHRy b25nIHZhIG5nb2FpIG51b2MgZGEgcGhhbiB0aWNoLCBjbyANCnRoZSB0aGF5IHJvIGxhIG9uZyBO Z3V5ZW4gVGFuIER1bmcgbG9pIG5vaSB0cmFpIG5ndW9jIHZvaSB2aWVjIGxhbS4gTm9pIHBoYXQg dHJpZW4gYmVuIA0KdnVuZywgaGF5IHRhbmcgdHJ1b25nIHhhbmgsIHR1YyBsYSBwaGFpIG5oYW5o IGNob25nIHRhcCB0cnVuZyB2YW8gaGlldSBxdWEsIG5hbmcgc3VhdCBkZSANCm5hbmcgY2FvIGto YSBuYW5nIGNhbmggdHJhbmgsIHR1YyBsYSBwaGFpIGRhdSB0dSBuaGlldSB2YW8ga2hvYSBob2Mg Y29uZyBuZ2hlLCBxdWFuIHRhbSANCmRhYyBiaWV0IHRvaSBjYWMgY29uZyBuZ2hlLCB0aGlldCBi aSB0aWV0IGtpZW0gbmFuZyBsdW9uZyB2YSB0aGFuIHRoaWVuIHZvaSBtb2kgdHJ1b25nLCANCm5o dW5nIHRyZW4gdGh1YyB0ZSwgdHJvbmcgdGhvaSBnaWFuIG9uZyBEdW5nIGxhbSBUaHUgdHVvbmcs IFZpZXQgTmFtIHBoYW4gbG9uIG5oYXAgDQpraGF1IGNvbmcgbmdoZSwgdGhpZXQgYmkgZ2lhIHJl LCB0aHUgbmdoaWNoIHZvaSBtb2kgdHJ1b25nIHZhIGNodSB5ZXUgbmhhcCB2ZSB0dSBUcnVuZyBR dW9jKSAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMy8y MDEwMDgxNTIyMjUzNi5hc3B4IDE1LzA4LzIwMTAgMjI6MjUgDQoNClRodSB0dW9uZzogSGUgbHV5 IGN1YSBjaG9uIHRoYXUgZ2lhIHJlICANCiAgDQooTmh1bmcgY29uZyBuaGFuIFRydW5nIFF1b2Mg bGFtIGNhYyBjb25nIHZpZWMgZ2lhbiBkb24gdHJlbiBjb25nIHRydW9uZyBOaGEgbWF5IG5oaWV0 IGRpZW4gSGFpIFBob25nIDEgLSBBbmg6IE0uSCkNCg0KKiBUcnVuZyBRdW9jIGxhIG5oYSB0aGF1 IG51b2MgbmdvYWkgbG9uIG5oYXQgdGFpIFZOIA0KDQpUcnVuZyBRdW9jIChUUSkgZGFuZyBsYSBu aGEgdGhhdSBudW9jIG5nb2FpIGxvbiBuaGF0IFZOIC0gb25nIER1b25nIENoYW4sIENodSB0aWNo IA0KSGllcCBob2kgRG9hbmggbmdoaWVwIFRRIHRhaSBWTiBjaG8gYmlldCBuaHUgdmF5IHRhaSBE aWVuIGRhbiBkb2kgdGhvYWkgdm9pIGNhYyBkb2FuaCANCm5naGllcCBUUSBkYW5nIGhvYXQgZG9u ZyBraW5oIGRvYW5oIHZhIGRhdSB0dSB0YWkgVk4sIHRvIGNodWMgdGFpIEhhIE5vaSBuZ2F5IA0K MTYuNy4yMDEwLiBDbyB0aGUgdGhheSBnaSB0dSB2YW4gZGUgbmF5PyANCg0KVFEgZGEgdmEgZGFu ZyB0aGFuZyB0aGF1IGhhbmcgbG9hdCBkdSBhbiBFUEMgKHRoaWV0IGtlIC0gY3VuZyB1bmcgdmF0 IHR1IHRoaWV0IGJpIC0geGF5IA0KbGFwKS4gVGhlbyBvbmcgVGEgVmFuIEh1b25nLCBWdSB0cnVv bmcgVnUgTmFuZyBsdW9uZywgQm8gQ29uZyB0aHVvbmcsIHVvYyB0aW5oIHNvIA0KZHUgYW4gbWEg bmhhIHRoYXUgVFEgZGFuZyBsYW0gdG9uZyB0aGF1IEVQQyBob2FjIGdpdSB2YWkgdHJvIGNoaW5o IHRyb25nIGxpZW4gZG9hbmggDQp0cnVuZyB0aGF1IGxlbiBkZW4ga2hvYW5nIDgwJSBkdSBhbiBu aGlldCBkaWVuIHRoYW4gZGEga3kga2V0IGhvcCBkb25nIHRyb25nIFRvbmcgc28gDQpkbyBkaWVu IDYgKHRvbmcgY29uZyBjbyBnYW4gNDAgZHUgYW4gdHJvbmcgdG9uZyBzbyBkbyBkaWVuIG5heSwg a2UgY2Egbmh1bmcgZHUgYW4gZGFuZyANCmRhbSBwaGFuKS4gRGlldSBkYW5nIG5vaSBsYSBuaGll dSBjb25nIHRyaW5oIGxvbiBkbyBuaGEgdGhhdSBUUSB0aGkgY29uZyBjbyB0aWVuIGRvIGkgYWNo LCANCmdhcCByYXQgbmhpZXUgdHJ1YyB0cmFjIGtoaSBkaSB2YW8gdmFuIGhhbmguIA0KDQpHaWEg cmUgbGEgdGhhbmcgDQoNClRoZW8gb25nIFRhIFZhbiBIdW9uZywgaGUgdGhvbmcgdGhpZXQgYmkg cXVhbiBseSBkaWV1IGtoaWVuLCBjb25nIG5naGUgY2FvIGN1YSBUUSANCnRodWEga2VtIGNhYyBu dW9jIEc3LCBuaHVuZyBkaWV1IHF1YW4gdHJvbmcgbGEgZ2lhIHRoYXUgcmUgaG9uIGNhYyBuaGEg dGhhdSB0aHVvYyBjYWMgbnVvYyBHNy4gDQpEbyBsYSB1dSB0aGUgZ2l1cCBjYWMgbmhhIHRoYXUg VFEgdHJ1bmcgdGhhdSByYXQgbmhpZXUgdHJvbmcgdGhvaSBnaWFuIHF1YS4gDQoNCiJDbyBkdSBh biBnaWEgY3VhIG5oYSB0aGF1IFRRIHJlIGNoaSBiYW5nIG51YSBjYWMgbmhhIHRoYXUga2hhYywg dHJvbmcga2hpIEx1YXQgRGF1IA0KdGhhdSBoaWVuIGtob25nIHBoYW4gYmlldCBuZ3VvbiBnb2Mg eHVhdCB4dSBjdWEgdGhpZXQgYmksIGhpZW4gbmhpZW4gcGhhaSBjaG9uIGxvYWkgZ2lhIHJlIA0K aG9uLiBCb2kgdGhlLCBjYWMgbmhhIHRoYXUgVFEgdnVvdCBxdWEgZHVvYyBuZ3VvbmcgY2hvIHBo ZXAgdGhhbSBnaWEgbGEgaG8gdGhhbmcgDQp0aGF1Iiwgb25nIEh1b25nIGNobyBiaWV0LiANCg0K IkJvIHRydW9uZyBCbyBDb25nIHRodW9uZyBkYSBjaGkgZGFvIHZhIHlldSBjYXUgY2FjIGNodSBk YXUgdHUgYmFvIGNhbyBsYW0gcm8gdGluaCANCmhpbmggaG9wIHRhYyB2b2kgY2FjIG5oYSB0aGF1 IFRRLCByYSBzb2F0IGJ1YyB0cmFuaCB0b25nIHRoZSBkZSB4dSBseSB2b2kgdHVuZyB0cnVvbmcg aG9wIA0KY3UgdGhlIi4gT25nIFRhIFZhbiBIdW9uZywgVnUgdHJ1b25nIFZ1IE5hbmcgbHVvbmcs IEJvIENvbmcgdGh1b25nIA0KDQoiTmhpbiBjYWNoIG5oYSB0aGF1IFRRIG1hbmcgdGhlbyBjYSB0 aGlldCBiaSB2ZSBzaW5oIGNvbmcgbmdoaWVwLCBjYSBsYW8gZG9uZyBkb24gZGVwIA0Kc2FuZyBk dSBhbiBOaGEgbWF5IGRhbSBDYSBNYXUgbGEgZHUgdGhheSwgY2h1IGRhdSB0dSBkdW9jIGdpYSBy ZSBuaHVuZyB4YSBob2kgbGFpIA0KdGhpZXQgaGFpIG5oaWV1Ii4gQmEgVHJhbiBUaGkgSGEsIFBo byB0b25nIGdpYW0gZG9jIFRhcCBkb2FuIGRhdSBraGkgVk4gDQoNCk11YyBnaWEgcmUgdnVvdCB0 cm9pIG1hIG5oYSB0aGF1IFRRIGRlIHh1YXQgY3VuZyBsYSBtb3QgdHJvbmcgY2FjIHlldSB0byBk ZSBDaGluaCBwaHUgDQpjaG8gcGhlcCBtbyByb25nIGR1IGFuIER1eWVuIEhhaSwgVmluaCBUYW4g KG5oYSB0aGF1IFRhcCBkb2FuIGRpZW4ga2hpIERvbmcgDQpQaHVvbmcgZHUgdGhpIGNvbmcgZHUg YW4gSGFpIFBob25nIDEgY2hhbSB0aWVuIGRvIGhvbiAyMCB0aGFuZyBuaHVuZyB2YW4gdHJ1bmcg dGhhdSANCmR1IGFuIER1eWVuIEhhaSAxIHZhIGR1b2MgcGhlcCB0aGFtIGdpYSB0aGF1IHRoZW0g ZHUgYW4gRHV5ZW4gSGFpIDMpLiANCg0KVGhlbyBxdXkgZGluaCBjdWEgTHVhdCBEYXUgdGhhdSBo aWVuIGhhbmgsIGtoaSBsYXAgaG8gc28gbW9pIHRoYXUgcGhhaSBkdWEgcmEgeWV1IGNhdSANCnRv aSB0aGlldSBkaWVtIGt5IHRodWF0ICh0cmVuIDcwJSksIHZvaSBnb2kgdGhhdSBreSB0aHVhdCBj YW8gZG9pIGhvaSBkaWVtIHRyZW4gODAlIHJvaSANCm1vaSB4ZXQgZGVuIHRpZXUgY2hpIHRhaSBj aGluaC4gVGhlbyBjYWMgY2h1eWVuIGdpYSB2ZSBkYXUgdGhhdSwgbyB2b25nIHNvIHR1eWVuIG5h eSwgY2FjIA0KbmhhIHRoYXUgZHUga2VtIHZlIGNodXllbiBtb24sIGtpbmggbmdoaWVtIGRldSBk ZSBkYW5nIHZ1b3QgcXVhIG5ldSB0aHVlIHR1IHZhbiBnaW9pIA0KaG9hYyBsaWVuIGRhbmggdm9p IGNhYyBuaGEgdGhhdSBjbyBkdSBuYW5nIGx1YyBraW5oIG5naGllbS4gTm9pIG5odSBvbmcgTmd1 eWVuIFZhbiANClRodSwgQ2h1IHRpY2ggSGllcCBob2kgQ28ga2hpLCBMdWF0IERhdSB0aGF1IGNo aSBjYW4gY3UgY2h1IHlldSB2YW8gZ2lhIHJlLCBuZXUgdmF5IHRoaSANCmtob25nIGFpIGNhbmgg dHJhbmggZHVvYyB2b2kgbmhhIHRoYXUgVFEuIERpZXUgbmF5IGRhbiBkZW4gbW90IHRodWMgdGUs IG5oaWV1IGR1IGFuIA0KbmhhIHRoYXUgRVUsIE5oYXQgQmFuIG5naGUgZGVuIFRRIGRhICJzbyIs IGtob25nIHRoYW0gZ2lhIGRhdSB0aGF1Lg0KDQpPbmcgTmdvIE5nb2MgUXV5LCBQaG8gY3VjIHRy dW9uZyBDdWMgRGF1IHRoYXUgKEJvIEtILURUKSBjaG8gYmlldCByYXQgbmhpZXUgZHUgYW4gDQpk aWVuIGxvbiBwaGFpIHN1IGR1bmcgdm9uIHZheSB0aHVvbmcgbWFpIGN1YSBUUSwgdmkgdmF5IHZp ZWMgYnVvYyBwaGFpIGNob24gbmhhIHRoYXUgDQpudW9jIG5heSBsYSBkdW9uZyBuaGllbi4gDQoN ClRoZW8gb25nIFRhIFZhbiBIdW9uZywgY28gbmh1bmcgZHUgYW4gdHJvbmcgaG8gc28gbW9pIHRo YXUgcXV5IGRpbmggYWkgdHJ1bmcgdGhhdSANCnBoYWkgZGFuIHhlcCB2b24gY2hvIGR1IGFuLCB2 YSBuaGlldSBkdSBhbiBkaWVuIHBoYWkgc3UgZHVuZyBwaGFuIGxvbiB0aW4gZHVuZyBjdWEgVFEg DQoobW9pIGRheSBuaGF0IGxhIGR1IGFuIG5oaWV0IGRpZW4gVmluaCBUYW4gMiB2dWEga2hvaSBj b25nIHZvaSA4NSUgdm9uIHZheSB0dSBOZ2FuIA0KaGFuZyBYdWF0IG5oYXAga2hhdSBUUSB2YSB2 b24gT0RBIGN1YSBUUSkuIE5oYSB0aGF1IGNhYyBudW9jIEc3IGN1bmcgZGFuIHhlcCANCmR1b2Mg dm9uLCBuaHVuZyBnaWEgdGhhdSBxdWEgY2FvIG5lbiBjaHUgZGF1IHR1IGtob25nIGNob24uDQoN Ck5odW5nIGhlIGx1eQ0KDQpIYWkgZHUgYW4gbmhpZXQgZGllbiBRdWFuZyBOaW5oIDEgKFRhcCBk b2FuIGRpZW4ga2hpIFRodW9uZyBIYWkgbGFtIHRvbmcgdGhhdSksIG5oaWV0IA0KZGllbiBIYWkg UGhvbmcgMSAoVGFwIGRvYW4gZGllbiBraGkgRG9uZyBQaHVvbmcgbGFtIHRvbmcgdGhhdSkgdnVh IHF1YSBkYSB2YW4gaGFuaCANCnRoaWV1IG9uIGRpbmgsIGJpIGNoYXkgbG8sIGhvbmcgaG9jIHRo aWV0IGJpLiANCg0KKE5nYXkgMy44LCB0YWkgTmhhIG1heSBuaGlldCBkaWVuIEhhaSBQaG9uZyAo bmhhIHRoYXUgVFEgbGFtIHRvbmcgdGhhdSBFUEMpIHhheSByYSB2dSANCm5vIGhvYSBjaGF0IGxh bSAyIGNvbmcgbmhhbiB0aGlldCBtYW5nLCA0IG5ndW9pIGJpIHRodW9uZyAtIEFuaDogSGFpIFZh bikNCg0KVGhlbyBjaHUgZGF1IHR1IGR1IGFuIEhhaSBQaG9uZyAxIGxhIENvbmcgdHkgQ1Agbmhp ZXQgZGllbiBIYWkgUGhvbmcsIFRvIG1heSAxIHBoYXQgDQpkaWVuIHR1IHRoYW5nIDkuMjAwOSBu aHVuZyBjaGkgc2F1IG1vdCB0aGFuZyBob2F0IGRvbmcgZGEgZ2FwIHN1IGNvIGh1IGhvbmcgYm8g cXVhIA0KbmhpZXQgKG5oYSB0aGF1IGJ1b2MgcGhhaSB0aGF5IHRoZSA5MCBvbmcgcXVhIG5oaWV0 IHZhIGhlIHRob25nIGRpZW4pIHZhIGNhYyBzdSBjbyBraGFjIA0Kbmh1IHhpIGhvaSBkdW9uZyBv bmcsIHRydWMgdHJhYyBoZSB0aG9uZyB0dWFuIGhvYW4gbnVvYy4uLg0KDQpPbmcgVGh1IGNobyBy YW5nLCBraGllbSBraHV5ZXQgbyBjaG8gY2h1bmcgdGEgY2h1YSBjbyBoYW5nIHJhbyBreSB0aHVh dCBkZSBraWVtIHRyYSANCmNvbmcgbmdoZSwgdGhpZXQgYmkgY3VhIG5oYSB0aGF1IFRRLiBOaGEg dGhhdSBjaGluaCBUUSBzYXUga2hpIHRoYW5nIHRoYXUgZGEgcGhhbiBkZXUgDQpnaWFvIGNobyBu aGEgdGhhdSBuaG8gaG9uIG5lbiBjaGF0IGx1b25nIHR1bmcgZ29pIHRoYXUgZGVuIGRhdSBjaHVh IGRlIGtoYW5nIGRpbmguDQoNCk1vdCBzbyBkdSBhbiBuaGEgdGhhdSBUcnVuZyBRdW9jIGxhbSB0 b25nIHRoYXUgRVBDIA0KDQorIE5oYSBtYXkgbmhpZXQgZGllbiBEdXllbiBIYWkgMSAoVHJhIFZp bmgpIGRvIFRhcCBkb2FuIGRpZW4ga2hpIERvbmcgUGh1b25nIGxhbSANCnRvbmcgdGhhdSBFUEMg dm9pIHRyaSBnaWEgaG9wIGRvbmcga2hvYW5nIDEsNCB0aSBVU0QuIE5oYSB0aGF1IG5heSBjdW5n IGR1b2MgY2hvIHBoZXAgDQptbyByb25nIGxhbSB0aGF1IGR1IGFuIER1eWVuIEhhaSAzLiANCg0K KyBOaGlldCBkaWVuIFZpbmggVGFuIDIgKEJpbmggVGh1YW4pIGRvIG5oYSB0aGF1IFNoYW5naGFp IEVsZWN0cmljIEdyb3VwIENvbXBhbnkgDQpMdGQgKFNFQykgbGFtIHRvbmcgdGhhdSBFUEMuIA0K DQorIER1IGFuIE5oYSBtYXkgbmhpZXQgZGllbiBIYWkgUGhvbmcgSSB2YSBJSSB2b2kgNCB0byBt YXkgdm9pIHRvbmcgY29uZyBzdWF0IDEuMjAwIA0KTVcuIEdvaSB0aGF1IGNoaW5oIChFUEMpIGRv IGxpZW4gZG9hbmggbmhhIHRoYXUgVGFwIGRvYW4gZGllbiBraGkgRG9uZyBQaHVvbmcgDQooVHJ1 bmcgUXVvYykgdmEgTWFydWJlbmkgKE5oYXQgQmFuKSBsYW0gdG9uZyB0aGF1LiANCg0KKyBEdSBh biBuaGlldCBkaWVuIFF1YW5nIE5pbmggMSB2YSAyIGRvIG5oYSB0aGF1IFNFQyBsYW0gdG9uZyB0 aGF1IEVQQy4gDQoNCisgRHUgYW4gVHJ1bmcgdGFtIE5oaWV0IGRpZW4gS2llbiBMdW9uZyBkbyBU YXAgZG9hbiBUYW4gVGFvIGNodSBkYXUgdHUsIG5oYSB0aGF1IA0KQ2hpbmEgSHVhZGlhbiBFbmdp bmVlcmluZyAoQ0hFQykgbGFtIHRvbmcgdGhhdSBFUEMsIGdvaSB0aGF1IHRyaSBnaWEgMiB0aSBV U0QuIA0KDQpNb3QgaGUgbHV5IGtoYWMgbGEga2hpIGNhYyBuaGEgdGhhdSBUUSB0aGFuZyB0aGF1 LCBraG9uZyBjaGkgZG9hbmggbmdoaWVwIHNhbiB4dWF0IA0KdGhpZXQgYmkgdHJvbmcgbnVvYyBr aG9uZyBjbyBjbyBob2kgbGFtIHRoYXUgcGh1LCBtYSBuZ2F5IGNhIG5odW5nIGxhbyBkb25nIHBo byB0aG9uZyANCmN1bmcga2hvbmcgY2hlbiBjaGFuIG5vaSBraGkgbW9pIG5oYSB0aGF1IFRRIGRl dSAiY29uZyIgdGhlbyBtb3Qgc28gbHVvbmcgbmhhbiBjb25nLCANCmtlIGNhIGxhbyBkb25nIHBo byB0aG9uZyByYXQgbG9uLiBUcm9uZyBraGkgUXV5ZXQgZGluaCA4NyAobmdheSAxOS41LjIwMDQp IGN1YSBUaHUgDQp0dW9uZyBDaGluaCBwaHUgYmFuIGhhbmggUXV5IGNoZSBRdWFuIGx5IGhvYXQg ZG9uZyBjdWEgbmhhIHRoYXUgbnVvYyBuZ29haSB0cm9uZyANCmxpbmggdnVjIHhheSBkdW5nIHF1 eSBkaW5oOiB0b25nIHRoYXUgbnVvYyBuZ29haSBjaGkgZHVvYyBkdWEgdmFvIFZOIG5odW5nIGNo dXllbiANCmdpYSBxdWFuIGx5IGtpbmggdGUga3kgdGh1YXQgdmEgbGFvIGRvbmcgdGF5IG5naGUg Y2FvIG1hIFZOIGtob25nIGRhcCB1bmcgZHVvYy4gDQoNCkRhaSBkaWVuIGNobyB0aWVuZyBub2kg Y3VhIGNhYyBkb2FuaCBuZ2hpZXAgY28ga2hpLCB0aGlldCBiaSB0cm9uZyBudW9jLCBvbmcgTmd1 eWVuIFZhbiANClRodSBjaGlhIHNlLCBkb2FuaCBuZ2hpZXAgdHJvbmcgbnVvYyByb2kgdmFvIGNh bmggbWF0IGhldCB2aWVjIGRvIG5oYSB0aGF1IFRRIHRoYW5nIA0KdGhhdSBvIGF0LiANCg0KVm9p IG5oYSB0aGF1IGNhYyBudW9jIEc3IHRydW9jIGRheSwgbmhhIHRoYXUgcGh1IFZOIGNvIHRoZSB0 aHVjIGhpZW4gdG9pIDMwJSBraG9pIA0KbHVvbmcgdHJpZW4ga2hhaSBnb2kgdGhhdSBFUEMgbmhv IGR1b2MgZ2lhbyBjaGUgdGFvIHNvIGx1b25nIGxvbiBrZXQgY2F1IHRoZXAgaGF5IGNhYyANCnRo aWV0IGJpIHBoaSB0aWV1IGNodWFuLiBOaHVuZyBraGkgbmhhIHRoYXUgVFEgdGhhbmcgdGhhdSwg aG8gbWFuZyBzYW5nIFZOIHR1IG5ndW9pIA0KbGFvIGRvbmcgZGVuIGNhaSBidS1sb25nLCBvYyB2 aXQsIHRoaWV0IGJpIG5hbyBraG9uZyBuaGFwIHR1bmcgcGhhbiBkdW9jIHRoaSBobyBsYXAgcmFw IA0Kbmd1eWVuIGNoaWVjIHJvaSBtYW5nIHNhbmcuICJEaWV1IHRvaSB0aGF5IGtobyBoaWV1IG5o YXQgbGEgUXV5ZXQgZGluaCA4NyBkYSBybywgbmh1bmcgDQpuaGlldSBjaHUgZGF1IHR1IG1hYyBu aGllbiBjb2kgdmllYyBuaGEgdGhhdSBUUSBtYW5nIGxhbyBkb25nIHBobyB0aG9uZyBzYW5nIG5o dSBjaHV5ZW4gZGEgcm9pIiwgb25nIFRodSBiYW4ga2hvYW4uDQoNClRyb25nIG1vdCBjdW9jIGhv cCBkYXUgdGhhbmcgOCB0YWkgQm8gQ29uZyB0aHVvbmcsIGJhIFRyYW4gVGhpIEhhLCBQaG8gdG9u ZyBnaWFtIGRvYyANClRhcCBkb2FuIGRhdSBraGkgVk4gdGhhbmcgdGhhbiBub2k6IE5oaW4gY2Fj aCBuaGEgdGhhdSBUUSBtYW5nIHRoZW8gY2EgdGhpZXQgYmkgdmUgDQpzaW5oIGNvbmcgbmdoaWVw LCBjYSBsYW8gZG9uZyBkb24gZGVwIHNhbmcgZHUgYW4gTmhhIG1heSBkYW0gQ2EgTWF1IGxhIGR1 IHRoYXksIGNodSANCmRhdSB0dSBkdW9jIGdpYSByZSBuaHVuZyB4YSBob2kgbGFpIHRoaWV0IGhh aSBuaGlldS4gVHV5IG5oaWVuLCBraG9uZyBwaGFpIGNodSBkYXUgdHUgbmFvIA0KY3VuZyBuaGlu IHJhIGR1b2MgZGlldSBuYXkuIA0KDQpUaGVvIG9uZyBIdW9uZywgZGlldSBuYXkgY28gdGhlIGhh biBjaGUgbmV1IGNodSBkYXUgdHUgbmdheSB0cm9uZyBobyBzbyBtb2kgdGhhdSB0YWNoIA0KYmFj aCBybyBwaGFuIHZpZWMgbmFvIHBoYWkgZGFuaCBjaG8gbmhhIHRoYXUgdHJvbmcgbnVvYy4gDQoN ClhlbSB4ZXQgbGFpIGNvIGNoZSBkYXUgdGhhdSB1dSBhaSBnaWEgcmUgaGllbiBuYXkgbGEgZGll dSBtYSBuaGlldSBuaGEgdGhhdSBraWVuIG5naGkuIA0KIlRyb25nIGRhdSB0aGF1IGNhbiBkdW5n IGxlbiBuaHVuZyBoYW5nIHJhbyBraGF0IGtoZSBob24gZGUgZGFtIGJhbyBjaGF0IGx1b25nIGR1 IGFuLCANCmNoYW5nIGhhbiBobyBzbyBtb2kgdGhhdSBjaGkgcm8gY2hhdCBsdW9uZyB0aGlldCBi aSBjaGkgY2hhcCBuaGFuIGN1YSBHNyBob2FjIHBoYWkgZHVvYyANCmtpZW0gY2h1bmcgdHJlbiB0 aGUgZ2lvaSwgdGhpIGl0IG5oYSB0aGF1IFRRIGNvIHRoZSBkYXAgdW5nIGR1b2MiLCBvbmcgSHVv bmcgbm9pLiANCg0KTWFpIEhhDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1Bh Z2VzLzIwMTAzNC8yMDEwMDgxOTAxMjc1Ni5hc3B4IDE5LzA4LzIwMTAgMToyNyANCg0KVGh1IHR1 b25nOiAiQmF5IiBkYXUgdGhhdSBnaWEgcmUgIA0KICANCk5oYSBtYXkgbmhpZXQgZGllbiBIYWkg UGhvbmcsIG5vaSBuaGEgdGhhdSBUcnVuZyBRdW9jIGR1YSBuaGlldSBsYW8gZG9uZyBwaG8gdGhv bmcgDQpzYW5nIGxhbSB2aWVjLCB2dWEgY2hhbSB0aWVuIGRvLCB2dWEgY29pIHRodW9uZyBhbiB0 b2FuIGxhbyBkb25nLiBUcm9uZyBhbmg6IEhpZW4gDQp0cnVvbmcgdnUgbm8ga2hvIGNodWEgaG9h IGNoYXQgaG9tIDMuOCAtIEFuaDogUC5ILlMNCg0KIkJheSIgZGF1IHRoYXUgZ2lhIHJlIGtob25n IGNoaSB4dWF0IHBoYXQgdHUgbmhhIHRoYXUgbnVvYyBuZ29haSBtYSBjb24gdHUgY2EgY28gY2hl LCANCm5hbmcgbHVjLCB0cmluaCBkbyBjdWEgcGhpYSBWaWV0IE5hbS4gDQoNClRTIE5ndXllbiBU aGFuaCBTb24gLSBUR0QgQ29uZyB0eSBuYW5nIGx1b25nIFNvbmcgSG9uZyAtIGxhIG5ndW9pIHR1 bmcgdHJ1YyB0aWVwIA0Kc29hbiB0aGFvIGNhYyBiYW8gY2FvIGRhdSB0dSwgaG8gc28gbW9pIHRo YXUsIHRpZXUgY2h1YW4geGV0IHRoYXUsIHRoYW0gZ2lhIGNoYW0gdGhhdSwgDQpkYW0gcGhhbiBo b3AgZG9uZyBjbyBsaWVuIHF1YW4gZGVuIHZpZWMgdHJpZW4ga2hhaSBjYWMgZHUgYW4gZGllbiBO YSBEdW9uZywgQ2FvIA0KTmdhbiwgQ2FtIFBoYSBjdWEgVGFwIGRvYW4gdGhhbiAtIGtob2FuZyBz YW4gVk4gKFRLVikgdmEgdHVuZyBsYW0gVEdEIENvbmcgdHkgY28gDQpwaGFuIG5oaWV0IGRpZW4g Q2FtIFBoYSBkYSBjaGlhIHNlIG5odW5nICJraW5oIG5naGllbSB4dW9uZyBtYXUiIHRydW9jIG5o YSB0aGF1IA0KVHJ1bmcgUXVvYy4NCg0KVFMgTmd1eWVuIFRoYW5oIFNvbiBwaGFuIHRpY2g6IFRy b25nIGNhYyBobyBzbyBkdSB0aGF1IGN1YSBtaW5oLCBjYWMgbmhhIHRoYXUgKGtlIGNhIA0KY2Fj IG5oYSB0aGF1IHRodW9jIGNhYyBudW9jIEc4KSBjdW5nIHNhbiBzYW5nIGR1YSByYSBjYWMgImJh eSIgbyBtb2kgbm9pLiBOaGlldSBuaGEgDQp0aGF1IHNhdSBraGkgbXVhIGhvIHNvIG1vaSB0aGF1 IGRvIHBoaWEgY2h1IGRhdSB0dSAoQ0RUKSBWTiBwaGF0IGhhbmgsIGhvIHRoYW5oIGxhcCANCm1v dCB0aWV1IGJhbiBnb20gY2FjIGNodXllbiBnaWEgdmUga3kgdGh1YXQsIGtpbmggdGUgdmEgbHVh dCBkZSBuZ2hpZW4gY3V1IHJhdCBreSBobyBzbyANCm1vaSB0aGF1IG5oYW0gdGltIHJhIGNhYyBj aG8gImhvIiBkZSBzYXUgZG8ga2hvbiBraGVvICJjYWkgYmF5IiB0cm9uZyBobyBzbyBkYXUgdGhh dS4NCg0KTG8gaG9uZyB0dSBjbyBjaGUNCg0KKiBMbyBob25nIHRyb25nIGhvIHNvIG1vaSB0aGF1 IHRodW9uZyB4dWF0IHBoYXQgdHUgZGF1LCB0aHVhIG9uZz8NCg0KLSBSYXQgdGllYywgbG8gaG9u ZyBjbyBjaGUgZG8gY2h1bmcgdGEgZ2F5IHJhLiBWaSBkdSwgSG9pIGRvbmcgcXVhbiB0cmkgY3Vh IFRLViAoaGF1IGhldCANCmxhIG5odW5nIG5ndW9pIGNodXllbiBuZ2FuaCBraGFpIHRoYWMgbW8p IGR1b2MgdHJhbyBxdXllbiBxdWEgbG9uIHNvIHZvaSBjaHV5ZW4gbW9uIA0KY3VhIG1pbmggKHZl IG5oYSBtYXkgZGllbikgbmh1bmcgdHJvbmcgbW90IHNvIHRydW9uZyBob3AgbGFpIGtob25nIGJp ZXQgc3UgZHVuZyBob2FjIA0Kc3UgZHVuZyBraG9uZyBkdW5nIGNhYyBjaHV5ZW4gZ2lhIHRoaSBs YW0gc2FvIGNvIGR1b2MgY2FjIHF1eWV0IGRpbmggZHVuZyBkYW4gKG5nb2FpIA0KdmllYyBkdWEg dmFvIGdpYSByZSkuDQoNCktpZXUgY2hvbiB0aGF1IHRoZW8gdGlldSBjaGkgImdpYSByZSIgbmh1 IGN1YSBjaHVuZyB0YSBoaWVuIG5heSBkYSB2YSBkYW5nIGR1b2MgY2FjIG5oYSANCnRoYXUgVHJ1 bmcgUXVvYyAoVFEpIHRhbiBkdW5nIHRyaWV0IGRlLiBIbyBjbyB0aGUgYm8gZ2lhIGN1YyB0aGFw IGRlIHRoYW5nIHRoYXUgdmkgY2hpIA0KY2FuIG1hbmcgaG9wIGRvbmcgdmUgaG8gY28gdGhlIGR1 b2MgdmF5IHRpZW4gdm9pIGxhaSBzdWF0IHV1IGRhaSB0dSBDaGluaCBwaHUgVFEuIFRodWMgDQpy YSBhaSBjdW5nIGJpZXQgY3VhIHJlIGxhIGN1YSBvaSwgY2FjIHNhbiBwaGFtIGRldSBjbyBjaHVu ZyBtb3QgbXVjIGdpYSB0aGkgdHJ1b25nLCBjbyANCm11YyBnaWEgc2FuIHh1YXQgbmhhdCBkaW5o LiBEdSBjbyBsb2kgdGhlIG5oYW4gY29uZyBoYXkgZHVvYyBobyB0cm8gdGhpIHNhbiBwaGFtIGN1 YSANClRRIGN1bmcgY2hpIGNvIHRoZSByZSBob24gY3VhIEVVIGhheSBNeSB0dSA1JS0xMCUgbGEg Y3VuZywgbmV1IHJlIGhvbiB0b2kgMTUgdGhhbSANCmNoaSAyMCUgbGEgcGhpIGx5LiBWb2kgbXVj IGdpYSByZSBuaHUgdGhlIHRoaSBjaGkgY28gaGFuZyBrZW0gY2hhdCBsdW9uZy4NCg0KKiBIaWVu IG5heSBuaGlldSBjb25nIHRyaW5oIGxvbiBDRFQgdGh1b25nIGt5IGhvcCBkb25nIEVQQyBuaGFt IGRhbSBiYW8ga2V0IHF1YSANCmN1b2kgY3VuZyBjdWEgZHUgYW4geGF5IGR1bmcuIE5odW5nIHRo dWMgdGUgY2FjaCBsYW0gbmF5IHRyb25nIG5oaWV1IGR1IGFuIGxhaSBraG9uZyANCmhpZXUgcXVh IG5odSBtb25nIG11b24sIHRhaSBzYW8gdmF5LCB0aHVhIG9uZz8NCg0KIC0gSG9wIGRvbmcgdG9u ZyB0aGF1IEVQQyBsYSBkYXUgdGhhdSB0cm9uIGdvaSwgY2hpYSBraG9hIHRyYW8gdGF5LiBDYWMg bmhhIHRoYXUgYmlldCB0cmlldCANCmRlIGxvaSBkdW5nIGtoYWkgbmllbSAidHJvbiBnb2kiIG5h eS4gQ28gdHJ1b25nIGhvcCBuaHUgdGFpIE5oYSBtYXkgbmhpZXQgZGllbiBRdWFuZyANCk5pbmgs IHRyb25nIGhvIHNvIGRhdSB0aGF1IENEVCBkYSB0aW5oIGN1IHRoZSBraWNoIHRodW9jIG1vbmcg Y29jIG5oYSBtYXksIG5odW5nIGhvIA0KbGFtIG5obyBob24uIEtoaSBDRFQgImtpZW4gbmdoaSIg dGhpIGhvIG5vaSBsYSB0aGVvIHRpbmggdG9hbiBjdWEgaG8gY2hpIGNhbiBuaG8gbmh1IA0KdmF5 IGxhIGR1LiBIYXkgbmh1IGR1IGFuIGRpZW4gTmEgRHVvbmcsIHRhIHRoaWV0IGtlIG1vbmcgbmhh IG1heSBsYSBjb2MgbmhvaSBiZSB0b25nIA0KY290IHRoZXAgKHZ1YSBkYXQgdnVhIGJlbiksIG5o dW5nIG5oYSB0aGF1IGxhbSBtb25nIGJlICh2dWEgcmUgdnVhIG5oYW5oKSB2aSB0aGVvIGhvIA0K bW9uZyBiZSBsYSAidG90IGxhbSByb2kiLiBPIE5oYSBtYXkgbmhpZXQgZGllbiBRdWFuZyBOaW5o LCBuaGEgdGhhdSBUUSBkdWEgc2FuZyBkYXkgDQpkaWVuIGNvIHRpZXQgZGllbiBuaG8gaG9uIHNv IHZvaSBxdXkgZGluaCB0cm9uZyBob3AgZG9uZy4gQ0RULCBnaWFtIHNhdCBwaGF0IGhpZW4ga2hv bmcgDQpjaG8gaG8gbGFwLCBobyB0YW0gZGUgbyBuZ29haSwgbmh1bmcga2hpIGNodSBuaGEgZGkg a2hvaSwgaG8gbGFpIGNobyB2YW8gbGFwLiBOaGEgbWF5IA0KbmhpZXQgZGllbiBDYW8gTmdhbiBj dW5nIHhheSByYSB0aW5oIHRyYW5nIHR1b25nIHR1LiBOaGEgbWF5IG5oaWV0IGRpZW4gSGFpIFBo b25nIGN1bmcgDQp0aGUuIEtoaSBraWVtIHRyYSwgcGhhdCBoaWVuIGRvbmcgY28gbmhhcCBraGF1 IGRhIHF1YSBzdSBkdW5nLCBkdW9jIHNvbiB0dXQgbGFpLCBuaHVuZyANCm5oYSB0aGF1IGNhbSBr ZXQgZG9uZyBjbyBuYXkgc2UgaG9hdCBkb25nIHRvdCB0cm9uZyB0aG9pIGhhbiBiYW8gaGFuaC4g VmFuIGRlIGxhIG8gY2hvIA0Kc2F1IGtoaSBkaSB2YW8gdmFuIGhhbmgsIG5ldSBjbyBkb25nIGRh dCB0aGkgbmhhIG1heSBtb2kgZG8sIGNvbiBraG9uZyBjbyB0aGkgbW9uZyBuaGEgDQptYXkgdmFu ICJkYW0gYmFvIi4gSGV0IGJhbyBoYW5oICh0aHVvbmcgbGEgMjQgdGhhbmcsIG8gTmEgRHVvbmcg aGF5IFF1YW5nIE5pbmggDQpraG8gY28ga2hhIG5hbmcgeGF5IHJhIGRvbmcgZGF0LCB2YSBkb25n IGNvIGRpZW4ga2hpIGF5IGNoYWMgY2hhbiBzZSB2YW4gY2hheSB0b3QpIGxhIA0KbmhhIHRoYXUg aGV0IHRyYWNoIG5oaWVtLiBTYXUgZG8gbmV1IGNvIHRydWMgdHJhYywgY2hpIGNvIG5lbiBraW5o IHRlIGdhbmggaGF1IHF1YSwgY29uIA0KZGFpIGRpZW4gQ0RUIGNvIGtoaSBjdW5nIGRhLi4uIHZl IGh1dS4gDQoNCiAqIEN1bmcgdmkgdGhhdSBFUEMgbWEgbmhhIHRoYXUgVHJ1bmcgUXVvYyAiY28g Y28iIG1hbmcgcmF0IG5oaWV1IGxhbyBkb25nIHBobyANCnRob25nIHNhbmcgbGFtIHZpZWM/DQoN Ci0gVG9pIGJpZXQgaG8gdGh1b25nIGNvICJiYWkiIHRyYSBsdW9uZyBjdWMgcmUsIHJlIGhvbiBj YSBjaHUgVmlldCBOYW0gdHJhIGNobyBuaGFuIGNvbmcgDQpWaWV0IE5hbS4gVmkgZHUsIHZvaSBt dWMgdGluaCBnaWEgY2hpIDIwLjAwMC0zMC4wMDAgZC9uZ2F5IGNvbmcgdmEgYW4gaGV0IDUuMDAw IGQvYnVhLCANCmhvICJtb2kiIGNvbmcgbmhhbiBWaWV0IE5hbSB2YW8gbGFtLCBsaWV1IGNvIG5n dW9pIFZOIG5hbyBjaGFwIG5oYW4gbGFtIHZvaSBtdWMgDQpnaWEgYXk/IEN1b2kgY3VuZyB2b2kg bXVjIGNoaSBwaGkgc2lldSByZSBuaHUgdmF5LCBjb25nIG5oYW4gVHJ1bmcgUXVvYyBsYWkgdmFv IGxhbS4gDQpDbyB0aGUga2hpIHZlIG51b2MsIGNvbmcgbmhhbiBjdWEgaG8gY29uIG5oYW4gdGhl bSBraG9hbiB0aWVuICJ0cm8gZ2lhIiBuYW8gZG8ga2hvbmcgDQpiaWV0IGNodW5nLg0KDQoiRGFt IHBoYW4gaG9wIGRvbmcgdm9pIGNhYyBuaGEgdGhhdSBUUSwgdHJvbmcgZGEgc28gY2FjIHRydW9u ZyBob3AgbGEga2hhIGRlIGRhbmcsIGhvIA0KcmF0IG1lbSBkZW8sIHRyZW4gYmFuIGRhbSBwaGFu IGNvIHRoZSBnYXQgZGF1IGNoYXAgbmhhbiBjYWMgeWV1IGNhdSBjdWEgQ0RULiBOaHVuZyANCnNh dSBkbywgdGh1b25nIG5odW5nIGNobyBhbmggaHVvbmcgZGVuIGdpYSBjYSwgaG9wIGRvbmcgbW90 IGRhbmcsIGhvIGxhbSBtb3QgbmVvLCANCm1pZW4gbGEgY2hpIHBoaSB0aGFwIGRlIGNvIGdpYSBy ZS4gRGlldSBuYXkgbmd1b2Mgdm9pIGNhYyBuaGEgdGhhdSBHOCwgaG8gY3VjIGt5IGNoaSBseSwg DQoiY28gY3VhIiB2YSBjdW5nIG5oYWMgdHJvbmcgZGFtIHBoYW4sIG5odW5nIGtoaSBobyBkYSBk YXQgYnV0IGt5IGhvcCBkb25nIHRoaSBDRFQgY28gDQp0aGUgeWVuIHRhbSwgaG8gc2UgdHVhbiB0 aHUgdmEgdGh1YyBoaWVuIG5naGllbSB0dWMgbmh1bmcgY2FtIGtldCB0cm9uZyBob3AgZG9uZy4g DQoNCktob25nIGNoaSBibyB0aGF1IGdpYSB0aGFwLCBuaGEgdGhhdSBUUSBjb24gdGh1b25nIGNh bSBrZXQgdGllbiBkbyBzaWV1IHRvYywgbmhhIG1heSANCmRpZW4gNDAwIE1XIGhvIG5vaSBjaGkg bGFtIHRyb25nIDM2IHRoYW5nLiBDRFQgY2hheSB0aGVvIHRoYW5oIHRpY2gsIGNoYXAgdGh1YW4g bmhhIA0KdGhhdSwgbmh1bmcgcm9pIGtoaSB0aGkgY29uZywgY28ga2hpIDYwIHRoYW5nIGhvIGNo dWEgbGFtIHhvbmciLiANCihUUyBOZ3V5ZW4gVGhhbmggU29uKQ0KDQpQaGFpIGxhbSB0aGUgbmFv Pw0KDQoqIFRodWEgb25nLCB0YWkgc2FvIGNodW5nIHRhIGtob25nIHRoZSBwaGF0IGR1b2Mgbmhh IHRoYXUgbmV1IG5odSBobyBjaGFtIHRpZW4gZG8gaGF5IA0KY2hhdCBsdW9uZyBkdSBhbiBrZW0/ DQoNCi0gVHJ1b2MgaGV0LCBzbyB0aWVuIENEVCBnaXUgbGFpIGNodWEgdGhhbmggdG9hbiBjaG8g bmhhIHRoYXUgKGNvaSBuaHUgdGllbiBkYXQgY29jKSANCnRodW9uZyBraG9uZyBkdSBsb24gZGUg ZXAgbmhhIHRoYXUgcGhhaSB0aHVjIGhpZW4gZHVuZyBjYWMgY2FtIGtldCBiYW8gaGFuaC4gS2hp IHZpIA0KcGhhbSBob3AgZG9uZywgbGUgcmEgbXVjIHRpZW4gcGhhdCBuaGEgdGhhdSBwaGFpIGR1 IGxvbiBkZSB4YXkgbW90IG5oYSBtYXkga2hhYyBuZXUgDQpjb25nIHRyaW5oIGdhcCBzdSBjby4g VHJvbmcgbmhpZXUgaG9wIGRvbmcgY3VhIFRLViwgY2h1IGRhdSB0dSBsYWkgIm5hbSBkYW5nIGx1 b2kiLCANCnRpZW4gZGF0IGNvYyBkZSBsYWkga2hvbmcgZHUgc3VhIGNodWEgbmh1bmcgaHUgaG9u ZyB0aHVvbmcgZ2FwLiBOaHUgTmhhIG1heSBuaGlldCANCmRpZW4gTmEgRHVvbmcsIENhbyBOZ2Fu IHNvIHRpZW4gQ0RUIGNhbiBwaGF0IG5oYSB0aGF1IGNvbiBsb24gaG9uIG5oaWV1IGxhbiB0aWVu IA0KQ0RUIGdpdSBsYWkgY3VhIG5oYSB0aGF1LiBTbyB0aWVuIGRhdCBjb2MgZGUgbGFpIHF1YSBp dCwgbmhhIHRoYXUgc2FuIHNhbmcgYm8gbW9uIHRpZW4gZG8gDQpjaHUga2hvbmcga2hhYyBwaHVj IG5odW5nIHNhaSBwaGFtLg0KDQpOaGF0IGxhIHRyb25nIHRydW9uZyBob3AgZHUgYW4gc3UgZHVu ZyB2b24gT0RBIGhheSBkdW9jIHRyaWVuIGtoYWkgdGhlbyBwaHVvbmcgdGh1YyANCiJ0aW4gZHVu ZyBjdWEgbmd1b2kgYmFuIiBuaHUgY2FjIGR1IGFuIGRvbmcgU2luaCBRdXllbiBoYXkgZGllbiBD YW8gTmdhbi4gTmhhIG1heSANCmtob25nIGRhdCB5ZXUgY2F1IG5odSB5IHR1b25nIGJhbiBkYXUg bmh1bmcgcGhpYSBDRFQgY3VuZyBraG9uZyB0aGUgcGhhdCBuaGEgdGhhdSB2aSANCm5oYSB0aGF1 IGRhIG5oYW4gdGllbiB0cnVjIHRpZXAgdHUgY2FjIG5nYW4gaGFuZyBUUS4gDQoNCkNodW5nIHRh IGRpIHZheSBuaHVuZyBraG9uZyBkdW9jIGNhbSB0aWVuIHZlLCBjdW9pIGN1bmcgdGllbiBjdWEg cGhpYSBUUSBsYWkgY2hheSB2YW8gDQpjb25nIHR5IFRRLCBjaHVuZyB0YSBuaGFuIHNhbiBwaGFt IGNoYXQgbHVvbmcga2VtIHZhIHBoYWkgZ2FuaCBuby4gVHJvbmcgaGllcCBkaW5oIA0KdmF5IHZv biBraG9uZyBjbyByYW5nIGJ1b2Mga3kgdmUgZGlldSBraG9hbiBnaWFpIG5nYW4sIGNodW5nIHRh IGtob25nIG5hbSBkdW9jIA0KcXV5ZW4gY2h1IGRvbmcgdHJvbmcgdmllYyBjaGkgdGllbiwgZ2lh aSBuZ2FuIG1hYyBkdSBzbyB0aWVuIGRvIHRhIGRhIGR1b2MgdmF5IHZhIHBoYWkgdHJhIA0Kbm8u DQoNCiAqIExpZXUgdGEgY28gdGhlIGR1YSB0aG9uZyB0aW4gbmhhIHRoYXUga2VtIGNoYXQgbHVv bmcgdmFvIG1vdCBkYW5oIHNhY2ggZGVuIHZhIGNhbSANCm5oYSB0aGF1IG5heSBkdSB0aGF1IHRh aSBWaWV0IE5hbT8NCg0KLSBDYWkgZG8gY28gdGhlLCBuaHVuZyBuaGlldSBuaGEgdGhhdSB0b2kg bGFpIG1hbmcgZGFuaCBtb3QgbmhhIHRoYXUga2hhYywgZG9pIGxvdCBkdW9pIA0KbW90IGNhaSB0 ZW4ga2hhYywgbGFwIG1vdCBjb25nIHR5IGtoYWMgZGUgdmFvIHRoYW0gZ2lhIGR1IGFuLiBUaGUg dGhpIGRhbmggc2FjaCBuYXkgDQpjdW5nIGtob25nIGNvIGdpYSB0cmkuDQoNCiAqIFZheSB0aGVv IG9uZywgY2h1bmcgdGEgcGhhaSBsYW0gZ2kgdmEgbGFtIG5odSB0aGUgbmFvPw0KDQogLSBUaHVv bmcgY2FjIG5oYSBxdWFuIGx5IGJpZXQgbm9pIHBoYWkgbGFtIGdpLiBOaHVuZyBub2kgcGhhaSBs YW0gbmh1IHRoZSBuYW8gdGhpIGNoaSBjbyANCmNhYyBjaHV5ZW4gZ2lhLiBWaSBkdSwgbm9pIFZO IGNodW5nIHRhIHBoYWkgbGFtIHJhIGRvbmcgcmEgbmhvbSB0aGkgYWkgY3VuZyBub2kgZHVvYy4g DQpOaHVuZyBub2kgbGFtIHRoZSBuYW8gZGUgY28gZG9uZyA5OSw5OSUgaGF5IGNvIGFsdW1pbmEg Pjk4JSB0aGkgY2hpIGNvIGNhYyBjaHV5ZW4gDQpnaWEgbW9pIGJpZXQuIENoaW5oIHZpIHZheSwg ZGUgY2FpIHRoaWVuIHRpbmggaGluaCwgbmVuIGxhbSBuaHUgeSBraWVuIGN1YSBjYWMgY2h1eWVu IGdpYSANCmNvIHRhbSwgY28gdGFpLCBjbyBraW5oIG5naGllbS4gRG9pIG5ndSBjaHV5ZW4gZ2lh IGN1YSBWTiBuaGlldSBuaHVuZyBsYWkga2hvbmcgbWFuaCANCih2aSBjaHVhIGR1b2Mgc3UgZHVu ZyBkdW5nIG11YyksIG5oYXQgbGEgdHJvbmcgY29uZyB0YWMgZGF1IHRoYXUgcXVvYyB0ZS4gVmkg dmF5LCB0cm9uZyANCmRhdSB0aGF1LCBraGF1IGRhbyB0YW8sIHN1IGR1bmcgdmEgYmlldCBuZ2hl IHRoZW8geSBraWVuIGNodXllbiBnaWEgbGEgcmF0IHF1YW4gdHJvbmcuDQoNClRoYW5oIFBob25n DQoodGh1YyBoaWVuKQ0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8y MDEwMzUvMjAxMDA4MjMyMzU0MTEuYXNweCAyMy8wOC8yMDEwIDIzOjU0IA0KDQpUaHUgdHVvbmc6 IER1IGFuIFZlIHNpbmggbW9pIHRydW9uZyBUUC5IQ00gKGx1dSB2dWMgTmhpZXUgTG9jIC0gVGhp IE5naGUpIC0gIA0KDQpIYXUgcXVhIGN1YSAiYmF5IiB0aGF1IGdpYSB0aGFwICAtIFR1b25nIHJl IGhvYSBkYXQNCg0KIENhYyBoYW5nIG11YyB4YXkgZHVuZyBkb2MgdGhlbyB0dXllbiBrZW5oIE5o aWV1IExvYyAtIFRoaSBOZ2hlIGRhbmcgbmFtIGltIGJhdCANCmRvbmcgLSBBbmg6IERpZXAgRHVj IE1pbmgNCg0KTWF5IHRoYW5nIHF1YSwgY2FjIGhhbmcgbXVjIHhheSBkdW5nIGRvYyB0aGVvIHR1 eWVuIGtlbmggTmhpZXUgTG9jIC0gVGhpIE5naGUgKE5MLQ0KVE4pIHRodW9jIGR1IGFuIFZlIHNp bmggbW9pIHRydW9uZyBUUC5IQ00gZGEgYW4gYmluaCBiYXQgZG9uZyBkbyBjaG8gY2hvbiBuaGEg dGhhdSANCm1vaSB0aGF5IHRoZSBuaGEgdGhhdSBDU0NFQyAoVHJ1bmcgUXVvYykgYmkgY2F0IGhv cCBkb25nIHRoaSBjb25nLiANCg0KVmllYyBuaGEgdGhhdSBDU0NFQyBiaSBjYXQgaG9wIGRvbmcg dGhpIGNvbmcgY2h1IHlldSBkbyBOZ2FuIGhhbmcgVGhlIGdpb2kgKFdCKSANCmtob25nIHRpZXAg dHVjIHRhaSB0cm8gdm9uIGRvaSB2b2kgY2FjIGR1IGFuIGRvIG5oYSB0aGF1IFRydW5nIFF1b2Mg bmF5IHRoaSBjb25nLiBUcnVvYyANCmRvLCBXQiBkYSBkdWEgbmhhIHRoYXUgQ1NDRUMgdmFvICJk YW5oIHNhY2ggZGVuIiwgZGF5IGxhIGRhbmggc2FjaCBuaGEgdGhhdSB2aSANCnBoYW0sIGJpIGNh bSB0aGFtIGdpYSBkYXUgdGhhdSBtb3Qgc28gbmFtIG8gY2FjIGR1IGFuIGRvIFdCIHRhaSB0cm8g dm9uIHZpIGNvIG1vdCBkb24gDQp2aSBjdWEgQ1NDRUMgdGhpIGNvbmcgbyBQaGlsaXBwaW5lcyBs aWVuIHF1YW4gZGVuIHRoYW0gbmh1bmcuDQoNCkNobyBkYXUgdGhhdSBsYWkNCg0KR29pIHRoYXUg c28gMTAgKGNhaSB0YW8ga2VuaCBOTC1UTikgdHJ1b2MgZGF5IGRvIENTQ0VDIHRoaSBjb25nLiBH b2kgdGhhdSBnb20gY28gDQpoYW5nIG11YyBkb25nIGN1IGJhbiwgdGllbiBkbyB0aGkgY29uZyBk YSBkYXQgOTElOyBoYW5nIG11YyBnaWEgY28gZGF0IG1vaSBkYXQgMzklIHZhIA0KaGFuZyBtdWMg bmFvIHZldCBrZW5oIE5MLVROIGRhdCA3OSUgKHRpbmggZGVuIGN1b2kgdGhhbmcgNy4yMDEwKS4g DQoNCkR1IGFuIFZlIHNpbmggbW9pIHRydW9uZyBUUC5IQ00gKGx1dSB2dWMgTkwtVE4pIGNvIHBo YW0gdmkgYW5oIGh1b25nIHRyZW4gZGllbiANCnRpY2ggMzMsMiBrbTIgY3VhIDcgcXVhbiBraHUg dnVjIG5vaSB0aGFuaCwgdm9pIGtob2FuZyAxLDIgdHJpZXUgZGFuLiANCg0KRHUgYW4gY28gdG9u ZyBtdWMgZGF1IHR1IDE5OSw5NiB0cmlldSBVU0QgKHRoZW8gcXV5ZXQgZGluaCBwaGUgZHV5ZXQg ZHUgYW4ga2hhIHRoaSksIA0Kbmh1bmcgZGVuIG5heSBkYSBkdW9jIGRpZXUgY2hpbmggdG9uZyBt dWMgZGF1IHR1IGxhIDMxNiw3OSB0cmlldSBVU0QsIHR1b25nIGR1b25nIA0KNS42NjAgdGkgZG9u ZyAodGluaCB0aGVvIHR5IGdpYSB0YWkgdGhvaSBkaWVtIDEgVVNEPTE3Ljg2NyBkb25nKSwgdHJv bmcgZG8gdm9uIHZheSBPREEgDQpsYSAyOTMsOTQgdHJpZXUgVVNELCB2b24gZG9pIHVuZyBsYSAy Miw4NSB0cmlldSBVU0QuIEhpZXAgZGluaCB0aW4gZHVuZyB2YXkgdm9uIHRodWMgDQpoaWVuIGR1 IGFuIG5heSBjbyBoaWV1IGx1YyB2YW8gbmdheSAzLjIuMjAwMiB2YSBuZ2F5IGhldCBoYW4gbGEg MzEuMTIuMjAwNyB2YSBkYSBkdW9jIGdpYSBoYW4gZGVuIG5nYXkgMzEuMTIuMjAxMS4gDQoNCldC IGRhIGJvIHN1bmcgY2hvIGR1IGFuIDkwIHRyaWV1IFVTRCBkZSBkYXUgdGhhdSwgY2hvbiBjYWMg bmhhIHRoYXUgbW9pIHRoaSBjb25nIGNhYyANCnBoYW4gdmllYyBjb24gbGFpIGN1YSBnb2kgdGhh dSBzbyAxMC4gT25nIFBoYW4gQ2hhdSBUaHVhbiwgR2lhbSBkb2MgQmFuIHF1YW4gbHkgZHUgYW4g DQpWZSBzaW5oIG1vaSB0cnVvbmcgVFAuSENNIChsdXUgdnVjIE5MLVROKSBjaG8gYmlldCwgY2Fj IHBoYW4gdmllYyBjb24gbGFpIHNlIGR1b2MgDQpjaGlhIHRoYW5oIDUgZ29pIHRoYXUgbmhvIGdv bTogMTBBIChkaSBkb2kgZG9hbiBvbmcgY2FwIG51b2MgZHVvbmcga2luaCAyLjAwMCBtbSk7IA0K MTBCIChnaWEgY28gZGF0IG1vdCBzbyBkb2FuKTsgMTBDICh0aWVwIHR1YyBuYW8gdmV0IGtlbmgg TkwtVE4pOyAxMEQgKHRpZXAgdHVjIHRoaSBjb25nIA0KZG9uZyBjdSBiYW4gZG9jIHRoZW8gYm8g a2VuaCB2YSBnaWEgY28gY2FjIG1vIGNhdSk7IDEwRSAobGFwIGRhdCBsYW4gY2FuLCB0cm9uZyBj YXkgeGFuaCANCnZhIGxhcCBkYXQgaGUgdGhvbmcgY2hpZXUgc2FuZyBjb25nIGNvbmcpLiBUcm9u ZyA1IGdvaSB0aGF1IG5heSwgY28gMiBnb2kgZHVvYyBjaGkgZGluaCANCnRoYXUgbGEgMTBBIHZh IDEwQywgMyBnb2kgY29uIGxhaSBkYXUgdGhhdS4NCg0KVGhlbyBvbmcgVGh1YW4sIHRyb25nIGNh YyBjb25nIHZpZWMgY29uIGxhaSBjdWEgZ29pIHRoYXUgc28gMTAsIGtobyBuaGF0IGxhIHZpZWMg ZGkgZG9pIA0KZG9hbiBvbmcgY2FwIG51b2MgZHVvbmcga2luaCAyLjAwMCBtbSBkYW5nIG5hbSBk dW9pIGxvbmcga2VuaCBOTC1UTiBraHUgdnVjIGNhdSANCkRpZW4gQmllbiBQaHUuIER1b25nIG9u ZyBuYXkgY2FwIG51b2MgY2hvIGtodSB2dWMgdHJ1bmcgdGFtIHRoYW5oIHBobywgZG8gdmF5IHRy dW9jIGtoaSANCmNhdCBvbmcgZGUgZGkgZG9pLCBwaGFpIGxhcCBkYXQgbW90IGRvYW4gb25nIG51 b2MgdGFtIHRob2kgZGUgdmllYyBjdW5nIGNhcCBudW9jIA0Ka2hvbmcgYmkgZ2lhbiBkb2FuLiBO aGEgdGhhdSBtb2kgZHVvYyBjaGkgZGluaCB0aWVwIHR1YyB0aGkgY29uZyAoZ29pIHRoYXUgMTBB KSBsYSBUb25nIA0KY29uZyB0eSBjYXAgbnVvYyBTYWkgR29uIChTYXdhY28pLiBTYXdhY28gc2Ug a3kgaG9wIGRvbmcgdm9pIENvbmcgdHkgVERXIGN1YSBNeSwgDQpkdSBraWVuIGRlbiB0aGFuZyA0 LjIwMTEgc2UgdGhpIGNvbmcgeG9uZy4gDQoNClRyb25nIGtoaSBkbywgY2FjIGdvaSB0aGF1IHRo aSBjb25nIGNhYyBoYW5nIG11YyB0aG9hdCBudW9jIG11YSBkYSBkYXQgOTclLiBUdXkgbmhpZW4s IA0KMyUgY29uIGxhaSBsYSBuaHVuZyBwaGFuIHZpZWMga2hvIG5oYXQsIHZpIGRheSBsYSBuaHVu ZyBkb2FuIGNvbmcgdGhvYXQgbnVvYyBuYW0gDQpuZ2FuZyBxdWEgZHVvbmcgc2F0LiBEdSBkYSBk YXQga2hvaSBsdW9uZyBuaHUgdGhlLCBzb25nIHRoZW8gb25nIFRodWFuLCBoZSB0aG9uZyBjb25n IA0KdGhvYXQgbnVvYyBtb2kgZHVvYyBsYXAgZGF0IHRyZW4gZHVvbmcgcGhvIHRyb25nIHBoYW0g dmkgZHUgYW4gY2h1YSB0aGUgcGhhdCBodXkgdGFjIA0KZHVuZyB2aSB0dXllbiBjb25nIGJhbyBj b24gYmkgdGFjIDIgZG9hbiBjaHVhIHRoaSBjb25nIHhvbmcuIA0KDQoiWHVvbmcgc29uZyIgZGFu ZyBiaSB0YWMNCg0KSGFuZyBtdWMgY2hpbmggY3VhIGR1IGFuIGxhIGhlIHRob25nIHRob2F0IG51 b2MgdGhhaSwgdHJvbmcgZG8gZ29pIHRoYXUgc28gNyAoeGF5IGR1bmcgDQp0dXllbiBjb25nIGJh bywgdGhpZXQgYmkgdGFjaCBkb25nIHZhIG1pZW5nIHhhIG5nYW0pIGRvIG5oYSB0aGF1IGxpZW4g ZGFuaCBUTUVDLQ0KQ0hFQyAzIChUcnVuZyBRdW9jKSB0aGkgY29uZy4gRGF5IGxhICJ4dW9uZyBz b25nIiBjdWEgY2EgZHUgYW4sIHR1eWVuIGNvbmcgYmFvIGNvIA0KdG9uZyBjaGlldSBkYWkgZ2Fu IDkuMDAwbSwgdGluaCBkZW4gbmF5IGRhIGRhdCA5NiUuIA0KDQpPbmcgUGhhbiBDaGF1IFRodWFu IGNobyBiaWV0LCBnb2kgc28gNyBoaWVuIG5heSBjb24gMiBkb2FuIGNvbmc6IE1vdCBkb2FuIGRh aSBraG9hbmcgDQozMDBtIHR1IGdpZW5nIFMyOC1TMjkgbyBraHUgdnVjIGNhdSBEaWVuIEJpZW4g UGh1IHZhIGRvYW4gbmFtIGR1b2kgbG9uZyBzb25nIFNhaSANCkdvbiBkYWkga2hvYW5nIDE4MG0u IERvYW4gMzAwbSBoaWVuIG5heSBjaHVhIHRoaSBjb25nIGR1b2MgbGEgZG8gcGhhaSBjaG8gZGkg ZG9pIA0KbW90IGRvYW4gZHVvbmcgb25nIGNhcCBudW9jIGR1b25nIGtpbmggMi4wMDAgbW0sIG5h bSBuZ2FuZyBkdW9pIGxvbmcga2VuaCBOTC0NClROLCBjYW5oIGNhdSBEaWVuIEJpZW4gUGh1LiBU cm9uZyBraGkgZG8sIGRvYW4gY29uZyBkYWkga2hvYW5nIDMwMG0gZHVvaSBsb25nIHNvbmcgDQpT YWkgR29uICh0dSBibyB0YXkgc2FuZyBibyBkb25nKSB0cnVvYyBkYXkgVE1FQy1DSEVDIDMgZGEg dGhpIGNvbmcgZHVvYyAxIGRvYW4gZGFpIA0Ka2hvYW5nIDEyMG0sIG5odW5nIGRvIHRoaWV0IGJp IGRhdSBraWNoIG9uZyBnYXAgcGhhaSBzdSBjbyBtYWMga2V0IGR1b2kgbG9uZyBzb25nICh0b2kg DQpnaW8gdmFuIGNodWEgbGF5IGxlbiBkdW9jKSwgbmVuIG5oYSB0aGF1ICBraG9uZyB0aGUgdGll cCB0dWMgdGhpIGNvbmcuIFRydW9jIHRpbmggaGluaCANCm5heSwgVUJORCBUUC5IQ00gdmEgV0Ig ZGEgdGhvbmcgbmhhdCBjaHV5ZW4gcGhhbiB2aWVjIGNvbiBsYWkgY3VhIGRvYW4gY29uZyBuYXkg DQp0aGFuaCBnb2kgdGhhdSA3QiwgZ2lhbyBkbyBuaGEgdGhhdSBDb25nIHR5IHRob2F0IG51b2Mg ZG8gdGhpIFRQLkhDTSB0aHVjIGhpZW4gYmFuZyANCm5ndW9uIHZvbiBuZ2FuIHNhY2ggVFAgKGR1 IHRvYW4ga2hvYW5nIDcwIHRpIGRvbmcpLiANCg0KQ29uZyB0eSB0aG9hdCBudW9jIGRvIHRoaSBU UC5IQ00gZGEgaG9wIHRhYyB2b2kgbW90IGNvbmcgdHkgY3VhIFRoYWkgTGFuIGRlIHRodWMgaGll biANCnRpZXAgMTgwbSBjb25nIGNvbiBsYWkuIEhpZW4gY29uZyB0eSBjdWEgVGhhaSBMYW4gZGFu ZyBraGFvIHNhdCwgbGFwIHBodW9uZyBhbiB0aGkgDQpjb25nLCBkdSBraWVuIGtob2FuZyB0aGFu ZyAxMSBob2FjIHRoYW5nIDEyIHNlIGJhdCBkYXUgdGhpIGNvbmcgdmEgZGVuIGtob2FuZyB0aGFu ZyANCjMuMjAxMSBzZSBob2FuIHRoYW5oLg0KDQpUb2FuIGR1IGFuIHNlIGhvYW4gdGhhbmggdmFv IGN1b2kgbmFtIDIwMTEgdGhlbyBIaWVwIGRpbmggdGluIGR1bmcgYm8gc3VuZywgY2hhbSA0IA0K bmFtIHNvIHZvaSBIaWVwIGRpbmggdGluIGR1bmcgdmF5IHZvbiBnb2MuIA0KDQpUdW9uZyByZSBo b2EgZGF0DQoNClZpZWMgZHUgYW4gVmUgc2luaCBtb2kgdHJ1b25nIChsdXUgdnVjIE5MLVROYSkg dGhpIGNvbmcgaSBhY2gsIGJlIGJvaSBzdW90IG5oaWV1IG5hbSANCnF1YSBsYSBoYXUgcXVhIGN1 YSB2aWVjIGNob24gdGhhdSBnaWEgcmUgbWEgVGhhbmggTmllbiBkYSBwaGFuIGFuaC4gDQoNCkNh IDIgZ29pIHRoYXUgeHVvbmcgc29uZyBjdWEgZHUgYW4gbGEgZ29pIDcgdmEgZ29pIDEwIGRldSBy b2kgdmFvIGNhbmggY2hhbSB0cmUga2VvIGRhaSwgDQpiYXQgbmd1b24gdHUgdmllYyAyIG5oYSB0 aGF1IFRydW5nIFF1b2MgZGV1IHRydW5nIHRoYXUgdm9pIG11YyBnaWEgdGhhcCBtb3QgY2FjaCBi YXQgDQpob3AgbHkuIA0KDQpUcm9uZyBkbywgbGllbiBkYW5oIG5oYSB0aGF1IFRNRUMtQ0hFQyAz IHRydW5nIHRoYXUgZ29pIHNvIDcgdm9pIGdpYSB0aGFwIGhvbiBkdSANCnRvYW4gZ29pIHRoYXUg ZGVuIDIwIC0gMzAlLiBUYWkgZ29pIHRoYXUgc28gMTAsIG5oYSB0aGF1IENTQ0VDIGRhIGJvIHRo YXUgaGFuZyBtdWMgDQpjaGluaCBkaSBkb2kgb25nIGNhcCBudW9jIHBoaSAyLjAwMCAobyBraHUg dnVjIGNhdSBEaWVuIEJpZW4gUGh1KSB2b2kgZ2lhIGNoaSBiYW5nIDI1IJYgDQozNSUgc28gdm9p IGNhYyBuaGEgdGhhdSBraGFjLiBIYXUgcXVhIGxhIGdvaSB0aGF1IHNvIDcgdGhpIGNvbmcgaSBh Y2ggdmEgYmUgYm9pIHN1b3QgDQpuaGlldSBuYW0gcXVhLCBkYW5nIGxlIHBoYWkgaG9hbiB0aGFu aCB0dSB0aGFuZyAxMS4yMDA2LCBzb25nIGRlbiBuYXkgdmFuIGNodWEgeG9uZy4gDQpDb24gbmhh IHRoYXUgQ1NDRUMgc2F1IGtoaSBob2FuIHRoYW5oIHhvbmcgY2FjIHBoYW4gdmllYyBuaGUgbmhh bmcga2hhYywgZGEgY28gdGluaCANCnRyaSBob2FuIHRoaSBjb25nIGhhbmcgbXVjICJraG8gbnVv dCIgbmhhdCBsYSBkaSBkb2kgb25nIGNhcCBudW9jIHBoaSAyLjAwMCwgYm9pIG5oYSANCnRoYXUg ZGEgYm8gZ2lhIHF1YSB0aGFwIG5lbiBjYW5nIHRoaSBjb25nIGNhbmcgdGh1YSBsby4gDQoNClRT IFRvIFZhbiBUcnVvbmcgLSBuZ3V5ZW4gVmllbiB0cnVvbmcgVmllbiBRdXkgaG9hY2ggdGh1eSBs b2kgbWllbiBOYW0gLSBwaGFuIHRpY2gsIA0KZG9uIGdpYSBkdSB0b2FuIGdvaSB0aGF1IGFwIGR1 bmcgdGFpIFZOIHZvbiBkYSBvIG11YyB0aGFwIHZhIGxhYyBoYXUgc28gdm9pIHRpbmggaGluaCAN CnRodWMgdGUuIERvIGxhIGNodWEga2UgdmllYyB0aGkgY29uZyB0YWkgbW90IGRvIHRoaSBsb24g bmh1IFRQLkhDTSBsdW9uIHRvbiBrZW0gaG9uIA0KbmhpZXUgc28gdm9pIGNhYyBkbyB0aGkgbmhv IChsdW9uZyBjb25nIG5oYW4gY2FvIGhvbiwgdmF0IGxpZXUgZGF0IGhvbiwgY2FjIGNvbmcgdHJp bmggDQp0aWVuIGljaCBkYXkgZGFjIGtlbyB0aGVvIGNoaSBwaGkgZGkgZG9pIHRvbiBrZW0gaG9u Li4uKSwgc29uZyBkb24gZ2lhIE5oYSBudW9jIGtob25nIA0KcGhhbiBhbmggZHVvYyBjYWMgZGll dSBraWVuIGRhYyB0aHUgbmF5LiBEdSBhbiBWZSBzaW5oIG1vaSB0cnVvbmcgbGEgZHUgYW4gcXVv YyB0ZSANCm5odW5nIGxhaSBhcCBkdW5nIGRvbiBnaWEgVk4gbmVuIHRodWMgdGUgbmdheSBkdSB0 b2FuIGdvaSB0aGF1IGR1YSByYSBkYSBraG8gZGFtIGJhbyANCmtpbmggcGhpIGNvIGJhbiBkZSB0 aHVjIGhpZW4gZ29pIHRoYXUuIEJvaSB2YXksIG5oYSB0aGF1IGR1YSByYSBtdWMgZ2lhIHF1YSB0 aGFwIHNvIHZvaSANCmR1IHRvYW4gdGhpIGtob25nIGNhY2ggZ2kgZGFtIGJhbyBkdW9jIGNoYXQg bHVvbmcgdmEgdGllbiBkbyBjb25nIHRyaW5oLiBUaGVvIFRTIA0KVHJ1b25nLCBraGkgZG9uIGdp YSBnb2kgdGhhdSBraG9uZyB0aGVvIGtpcCBnaWEgdGhpIHRydW9uZywgY2FjIG5oYSB0aGF1IG11 b24gbGFtIHRvdCANCmJ1b2MgcGhhaSBibyBnaWEgY2FvIGhvbiBkdSB0b2FuIGNvbiBuZXUga2hv bmcgdGhpIGJvIGdpYSB0aGFwIGRlIHBoYSBnaWEuIEJvIGdpYSBxdWEgDQp0aGFwIHRyZW4gY28g c28gZHUgdG9hbiBkYSBvIG11YyB0aGFwIG5naGlhIGxhIG5oYSB0aGF1IGNhbSBjaGFjIHRodWEg bG8sIGNhbmcgbGFtIGNhbmcgDQpsbyB2YSBkYXkgbGEgbmd1eWVuIG5oYW4gY2hpbmgga2hpZW4g bmhhIHRoYXUgY3UgY2hheSBpIGhldCBuYW0gbmF5IHNhbmcgbmFtIGtoYWMuIA0KDQpDbyB0aGUg dGhheSwgYmFuIGRhdSBuaGEgdGhhdSB0cnVuZyB0aGF1IHZvaSBnaWEgdGhhcCBob24gZHUgdG9h biwgc29uZyBsYWkgdGhpIGNvbmcgY2hheSANCmkgdmEgbGllbiB0dWMgImRlIiBnb2kgdGhhdSBt b2kga2hpZW4gZ2lhIHRyaSBnb2kgdGhhdSB0YW5nIGdhcCBuaGlldSBsYW4uIE5odSB2YXksIHR1 b25nIA0KbGEgdGEgbXVhIGR1b2MgY29uZyB0cmluaCByZSBuaHVuZyBob2EgcmEgbGFpIGRhdCBn YXAgbmhpZXUgbGFuLCBjaHVhIGtlIG5odW5nIGxhbmcgcGhpIA0KdmEgdGhpZXQgaGFpIHZvIGhp bmgga2hpIG5ndW9pIGRhbiBiaSB0cmkgaG9hbiBodW9uZyB0aHUgbmh1bmcgZ2lhIHRyaSBkbyBj YWMgY29uZyB0cmluaCANCmhhIHRhbmcgbmF5IG1hbmcgbGFpLiANCg0KVm8gbHkgbG9uIG5oYXQg bGEgbmhhIHRoYXUgdmFuIHVuZyBkdW5nIHZpIGJvIHRoYXUgZ2lhIHRoYXAgdmEgc2F1IGRvIHRh Y2ggcGhhbiBjb25nIA0KdmllYyBiYXQgbG9pIGRlIGR1biBkYXkgY2hvIG5oYSB0aGF1IGtoYWMg bWEga2hvbmcgYmkgbW90IGJpZW4gcGhhcCBjaGUgdGFpIG5hby4gDQoNCk9uZyBQaGFuIFBodW5n IFNhbmggLSBQaG8gY2h1IHRpY2ggdGh1b25nIHRydWMgSGllcCBob2kgS2hvYSBob2Mga3kgdGh1 YXQgeGF5IGR1bmcgDQpUUC5IQ00gLSBjaG8gcmFuZywgdmllYyBibyB0aGF1IGdpYSB0aGFwIGxh IG1vdCBrZSBobyB0cm9uZyBMdWF0IERhdSB0aGF1IHJhdCBjYW4gcGhhaSANCnhlbSBsYWkuIEJv aSB0cmVuIHRodWMgdGUsIGdpYSBibyB0aGF1IGNoYXAgbmhhbiBkdW9jIGNoaSBkdW9jIHBoZXAg Y2hlbmggbGVjaCBraG9hbmcgDQo1JSBzbyB2b2kgZHUgdG9hbiBnb2kgdGhhdS4gVHJvbmcga2hv YW5nIDUlIG5heSwgbmhhIHRoYXUgY28gdGhlIHZ1biB2ZW4gYmFuZyBjYWNoIHRvIA0KY2h1YyB0 aGkgY29uZyBtb3QgY2FjaCBob3AgbHksIGtob2EgaG9jLCB0aW5oIGdpYW4gYm8gbWF5IGRpZXUg aGFuaC4uLiBDb24gbmV1IGdpYSBibyANCnRoYXUgcXVhIHRoYXAsIG5oYSB0aGF1IGNoaSBjb24g Y2FjaCBoYSBjaGF0IGx1b25nIGNvbmcgdHJpbmggaG9hYyB0cm9uZyBxdWEgdHJpbmggdGhpIA0K Y29uZyB0aW0gY2FjaCAidmUiIHJhIG5oaWV1IGtob2FuIHBoYXQgc2luaC4gT25nIFNhbmggY2hv IHJhbmcgY2FuIHhheSBkdW5nIHF1eSBkaW5oIGtob25nIA0KY2hlIGdpYSBzYW4gKGdpYSB0b2kg dGhpZXUpIHRyb25nIGRhdSB0aGF1LCBkZSB0cmFuaCB0aW5oIHRyYW5nIG5oYSB0aGF1IGNvIHkg Ym8gZ2lhIA0KdGhhdCB0aGFwIGRlIHRydW5nIHRoYXUsIGJhdCBjaGFwIGNoYXQgbHVvbmcgdmEg dGllbiBkbyBjb25nIHRyaW5oLiBNYXQga2hhYywgY2FuIG5hbmcgY2FvIA0KdmFpIHRybyBjdWEg Y2h1IGRhdSB0dSB2YSB0dSB2YW4gdHJvbmcgcXVhIHRyaW5oIHRoYW0gZGluaCBsdWEgY2hvbiBu aGEgdGhhdSwgYm9pIGNhYyB5ZXUgDQp0byB2ZSBuYW5nIGx1Yywga3kgdGh1YXQsIHRhaSBjaGlu aC4uLiBjdWEgbmhhIHRoYXUgY3VuZyBjdWMga3kgcXVhbiB0cm9uZywgdGhheSB2aSBsYXkgZ2lh IA0KZ29pIHRoYXUgbGFtIHlldSB0byAiY2hvdCIgZGUgY2hvbiBuaGEgdGhhdSBuaHUgaGllbiBu YXkuIA0KDQpOLlR1YW4gRGF0IC0gTWFpIFZvbmcgDQoNCmh0dHA6Ly9uaGFxdWFubHkudm4vZGll bXRpbi8yMDEwLTEyLTMwL05naGljaC1seS10dS1jYWktYm9uZy1uaGFwLXNpZXUtVHJ1bmctUXVv Yy00NzI1Lmh0bWwgMjAxMC0xMi0zMCANCg0KVGh1IHR1b25nOiBOZ2hpY2ggbHkgdHUgY2FpIGJv bmcgbmhhcCBzaWV1IFRydW5nIFF1b2MgDQoNCk5oYXAgc2lldSBxdWEgbG9uIHR1IFRydW5nIFF1 b2Mga2hvbmcgY2hpIGxhIGNhdSBjaHV5ZW4gdGhhbSBodXQgY2FuIGNhbiB0aHVvbmcgbWFpIA0K Y3VhIFZpZXQgTmFtLiBWaWVjIGRlIHR5IHRyb25nIGhhbmcgbmhhcCBraGF1IHR1IFRydW5nIFF1 b2MgcXVhIGxvbiBkYW5nIHRpZW0gYW4gbmh1bmcgbmdoaWNoIGx5IGtobyBoaWV1Lg0KIA0KTFRT OiBUcnVuZyBRdW9jIGxhIGNvbmcgeHVvbmcga2hvbmcgbG8gY3VhIGNhIHRoZSBnaW9pLiBEaWVu IHRob2FpLCBtYXkgdGluaCwgdGhvaSANCnRyYW5nIG1heSBtYWMgY3VhIG5odW5nIGhhbmcgbm9p IHRpZW5nIG8gTXksIFkgY3VuZyBkdW9jIGdpYSBjb25nLCBoYXkgbXVhIGxpbmgga2llbiANCnR1 IFRydW5nIFF1b2MuIE1vdCBudW9jIGxhbmcgZ2llbmcgc2F0IG5hY2ggbmh1IFZpZXQgTmFtIGJp IGN1b24gdmFvIGRvbmcgY2hheSBuaGFwIA0Ka2hhdSBtYW5nIHRlbiBUcnVuZyBRdW9jIGF1IGN1 bmcgbGEgZGUgaGlldS4gRG9pIGtoaSwgdmllYyBuaGFwIGtoYXUgdmEgcGh1IHRodW9jIG1vdCAN CnNvIG5nYW5oIGhhbmcgZHVvYyBjb2kgbGEgbGUgdGF0IHlldSB0cm9uZyB4dSB0aGUgdG9hbiBj YXUgaG9hLg0KDQpOaHVuZyBkaWV1IGRheSBkdXQsIHRyYW4gdHJvIG5oYXQgdHJvbmcgY2F1IGNo dXllbiBuYXkgbGEgY2h1bmcgdGEgZGEgdGh1YyBzdSB0aW5oIHRhbyBkZSANCnRpbSBsb2kgcmll bmcgY2hvIG1pbmgga2hpIHBoYWkgZG9uIG5oYW4gZG9uZyBjaGF5IG8gYXQgaGFuZyBob2EgdHUg bnVvYyBiYW4/DQoNCkN1b24gdGhlbyBjb25nIG5naGUgcmUNCg0KVHJvbmcgY2FpIGJvbmcgbmhh cCBzaWV1IHZvaSBUcnVuZyBRdW9jLCBuZ2hpY2ggbHkgZGF1IHRpZW4gbGEgVmlldCBOYW0gZGFu ZyBuaGFwIA0Ka2hhdSBjaHUgeWV1IG1heSBtb2MsIHRoaWV0IGJpLCBjb25nIG5naGUgbGVuIHRv aSBoYW5nIHR5IFVTRCB0dSBtb3QgbnVvYyBraG9uZyBwaGFpIA0KY28gY29uZyBuZ2hlIG5ndW9u IHZhIGhpZW4gZGFpLg0KDQpDaHVuZyB0YSBwaGFpIGRpIG11YSB0aGlldCBiaSBtYXkgbW9jIG8g bnVvYyBuZ29haSBsYSBib2kgdHJvbmcgbnVvYyBjaHVhIHNhbiB4dWF0IA0KZHVvYy4gTmh1bmcg Y2h1bmcgdGEgbGFpIGx1YSBjaG9uIGRvaSB0YWMgY3VuZyBjYXAgY2h1IHlldSBsYSBUcnVuZyBR dW9jIGJvaSBseSBkbzogZ2lhIA0KcXVhIHJlLiBOaHVuZywga2hpIGJpIG1lIGRhbSBib2kgY29u ZyBuZ2hlIGdpYSByZSBjdWEgVHJ1bmcgUXVvYywgZ2lvIGRheSwgbmhpZXUgDQpuZ2FuaCBjb25n IG5naGllcCBjdWEgVmlldCBOYW0gZGFuZyBsYW5oIGNoaXUgaGF1IHF1YSBuYW5nIG5lLg0KDQpD byBsZSwgImFuIHF1YSBkYW5nIiBuZ2F5IHRyb25nIGx1YyBuYXkgbGEgbmdhbmggZGllbiENCg0K Q2hvIHRvaSBuYXksIGhhdSBoZXQgY2FjIGR1IGFuIG5oaWV0IGRpZW4gdGhhbiBjdWEgVmlldCBO YW0gZGV1IGRvIFRydW5nIFF1b2MgbGFtIA0KdG9uZyB0aGF1IEVQQywga2VtIHRoZW8gZG8gbGEg c3UgZHVuZyB0aGlldCBiaSwgY29uZyBuZ2hlIGN1YSBudW9jIG5heSAuIFZhIG5odSBjYWMgDQpx dWFuIGNodWMgQm8gQ29uZyBUaHVvbmcga2hhbmcgZGluaCwgZ2lhIGNoaSBiYW5nIG1vdCBudWEg Y3VhIGNhYyBudW9jIEc3LiBTb25nIHJvdCANCmN1YywgZHUgYW4gbmhpZXQgZGllbiBuYW8gY3Vu ZyBjaGFtIHRpZW4gZG8sIGNoYXkga2hvbmcgb24gZGluaCwga2hvbmcgdGluIGNheSwgbWEgbHkg DQpkbyBtdW9uIHRodW8gdGh1b25nIGxhOiBzdSBjbyBreSB0aHVhdCBwaGF0IHNpbmguIA0KDQpU cnVvYyBRdW9jIGhvaSB2dWEgcXVhLCBCbyB0cnVvbmcgQm8gQ29uZyBUaHVvbmcgVnUgSHV5IEhv YW5nIG5vaSByYW5nLCBuaHVuZyBzdSANCmNvIGt5IHRodWF0IG8gY2FjIG5oYSBtYXkgbmhpZXQg ZGllbiBkbyBUcnVuZyBRdW9jIGxhbSB0b25nIHRoYXUgRVBDIGNoaSBsYSAia2hpZW0gDQpraHV5 ZXQiLiBOaHVuZyB2b2kgQm8gdHJ1b25nIEJvIEtILURUIFZvIEhvbmcgUGh1YywgaGUgbHV5IGN1 YSBraGllbSBraHV5ZXQgZG8gDQp0aGF0IG5ndXkgaGFpOiBjYWMgZHUgYW4gbmhpZXQgZGllbiB0 cm9uZyB0b25nIHNvIGRvIGRpZW4gNiBkZXUgY2hhbSwgY28gbmh1bmcgY2FpIGNoYW0gDQoyIG5h bSwgY28gbmh1bmcgY2FpIGNoYW0gMyBuYW0uDQoNCkR1IGxhIHJlLCBuaHVuZyBtb2kgZHUgYW4g bmhpZXQgZGllbiBreSB2b2kgbmhhIHRoYXVUcnVuZyBRdW9jLCBWaWV0IE5hbSBjdW5nIHBoYWkg Ym8gDQpyYSBpdCBuaGF0IHR1IDMwMC01MDAgdHJpZXUgVVNELCB0cm9uZyBraGkgZG8sIGNhIG51 b2MgdmFuIHRoaWV1IGRpZW4gZGFpIGRhaS4NCg0KTyBtb3Qgc28gZHUgYW4gZGllbiwgVmlldCBO YW0gcXV5ZXQgZGluaCBuaGFwIGtoYXUgdGhpZXQgYmksIG1heSBtb2MgVHJ1bmcgUXVvYyBjb24g DQpib2ksIGRvaSB0YWMgbnVvYyBiYW4gZGEga2VtIHRoZW8gc3UgaG8gdHJvIGNobyB2YXkgdm9u IHF1YSBoYXAgZGFuLiBWYSAiYmkga2ljaCIgc2UgDQpraG9uZyBkdW5nIGxhaSBkb24gZ2lhbiBs YSBvIHZpZWMgdGhpZXUgZGllbiENCg0KTW90IGNodXllbiBnaWEga3kgdGh1YXQgbyBtb3Qgbmhh IG1heSBuaGlldCBkaWVuIHBoYW4gdGljaCwgbmhpZXUgZHUgYW4gZGllbiBnaWFvIGNobyANCm5o YSB0aGF1IFRydW5nIFF1b2MgY29uIGJvaSBtb2kgcmFuZyBidW9jLCA4NSUgbmd1b24gdm9uIGNo byBkdSBhbiBjdW5nIGxhIGRvIHZheSANCmN1YSBUcnVuZyBRdW9jLiBDaGluaCBuaGEgdGhhdSBk byBsYSB0cnVuZyBnaWFuIGxvIHZvbiB2YXkgY2hvIFZpZXQgTmFtLg0KDQpEZW4ga2hpLCB0aGll dCBiaSBuaGFwIHZlIGtob25nIGRhbSBiYW8gY2hhdCBsdW9uZywgbGllbiB0dWMgaG9uZyBob2Ms IGNodSBkYXUgdHUgdm9pIHZhaSANCnRybyBsYSBuZ3VvaSBuZ2hpZW0gdGh1IG8gdGhlICJrZXQg Y3VuZyIuIFZpIG5ldSBjaHUgZGF1IHR1IGtob25nIG5naGllbSB0aHUgdGhpZXQgYmksIA0KZHUg YW4gc2Uga2hvbmcgdGhlIGdpYWkgbmdhbiB2b24sIGRhbiB0b2kgdGhpZXUgdm9uLiBDb24gbmV1 IG5naGllbSB0aHUsIHZvbiBkdW9jIGdpYWkgDQpuZ2FuIHRoaSBoZSBsdXkgbmhpbiB0aGF5IHJv IGxhLCBjaGFwIG5oYW4gY2hhdCBsdW9uZyBuaGEgbWF5IGRpZW4gbGEga2hvbmcgZGF0LCBwaGFw IHBodS4NCg0KQ2hvIHRvaSB0aG9pIGRpZW0gbmF5ICgyOS8xMi8yMDEwKSwgbmhpZXQgZGllbiBI YWkgUGhvbmcgZG8gVHJ1bmcgUXVvYyBsYW0gdG9uZyB0aGF1IA0KRVBDIGRhIGxhaSBuZ3VuZyBo b2F0IGRvbmcgY2EgMiB0byBtYXkgdmEgbmhhIHRoYXUgdmFuIGRhbmcgbG9heSBob2F5IHZvaSB2 aWVjIHN1YSANCmNodWEgdGhpZXQgYmkhDQoNCk5odW5nIHRoaWV0IGJpIHBodSBjdWEgVHJ1bmcg UXVvYyB0YWkgbmhhIG1heSBuYXkgbHVvbiB4YXkgcmEgdHJpZW4gbWllbiBuaHVuZyBob25nIA0K aG9jLCAga2VvIHRoZW8gY2EgZGF5IGNodXllbiBkb25nIGJvIGN1bmcgdGUgbGlldC4gTmhhIG1h eSBuYXkgZGEgY2hhbSB0aWVuIGRvIHRvaSBob24gDQoyIG5hbSB2YSB2YW8gdGhhbmcgMi8yMDEx LCBzZSBwaGFpIGJhbiBnaWFvIGNobyBjaHUgZGF1IHR1Lg0KDQpUaGF0IGtobyBkYW0gYmFvIHJh bmcsIHZpZWMgbmdoaWVtIHRodSBjb25nIHRyaW5oIGR1IGFuIG5heSB0aWVuIHRvaSwgbGEgZG8g Y2hhdCBsdW9uZyANCmt5IHRodWF0IGRhbSBiYW8geWV1IGNhdSwgaGF5IGRvIHN1YyBlcCBnaWFp IG5nYW4gdm9uLCBzdWMgZXAgdGhpZXUgZGllbj8NCg0KVHJvbmcgbmh1bmcgY29uZyB0cmluaCBs b24sIGxpZW4gcXVhbiBhbiBuaW5oIG5hbmcgbHVvbmcgbmh1IGRpZW4sIGRhbmcgbGUgY2hhdCBs dW9uZyANCnZhIHRpZW4gZG8gcGhhaSBsYSB5ZXUgdG8gY2FuIGNvIG5oYXQuIE5odW5nIGRlbiBu YXksIHZpIHNhbyBjYWMgY2h1IGRhdSB0dSwgY2FjIG5oYSBxdWFuIA0KbHkgVmlldCBOYW0gbGFp IHZhbiBjaGFwIG5oYW4gbHVhIGNob24gbmhhcCBraGF1IG5odW5nIHRoaWV0IGJpIGRheSBjaHV5 ZW4gY3VhIFRydW5nIA0KUXVvYyBtYSB0aHVjIHRlIHRob2kgZ2lhbiBxdWEsIGhvYXQgZG9uZyAi Y2hhcCBjaGVuZyIgbmh1IHZheT8NCg0KQ2h1bmcgdGEgYmkgY3VvbiB0aGVvIGNvbmcgbmdoZSBn aWEgcmUgY3VhIFRydW5nIFF1b2MgbWEgcXVlbiBtYXQgbmh1bmcgdmFuIGRlIGxvbiBsYW8gaG9u Lg0KDQpHYXkgb25nIGRhcCBsdW5nIG9uZw0KDQpDYXUgY2h1eWVuIGN1YSBuZ2FuaCB0aGVwIGN1 bmcga2hvbmcgZGUgY2hpdSBnaSEgTmhhcCBzaWV1IGN1YSBuZ2FuaCB0aGVwIHJhdCBsb24uIA0K VGhlbyBvbmcgTmd1eWVuIFRpZW4gTmdoaSwgUGhvIENodSB0aWNoIEhpZXAgaG9pIHRoZXAgVmll dCBOYW0sIHR1IFRydW5nIFF1b2MsIA0KY2h1bmcgdGEgdmFuIHBodSB0aHVvYyB0aGVwIGNhbiBu b25nLCB0aGVwIGNhbiBuZ3VvaSB0b2kgMjklLiBEYWMgYmlldCwgdGhlcCBjdW9uIHhheSANCmR1 bmcgdGhpIHBodSB0aHVvYyB0b2kgMzQlIG5oYXAgdHUgVHJ1bmcgUXVvYy4NCg0KKEFuaDogQ29u ZyBuZ2hlIGxvIGNhbyBsYWMgaGF1IGN1YSBUcnVuZyBRdW9jIHNlIGFuaCBodW9uZyBzdWMgY2Fu aCB0cmFuaCBuZ2FuaCB0aGVwIChhbmg6IFAuSCkNCg0KVGhlcCBjdW9uIFRydW5nIFF1b2MgdmFv IFZpZXQgTmFtIGhpZW4gdmFuIGJpIGFwIHRodWUgbmhhcCBraGF1IDEwJSwgbmh1bmcgZ2lhIGJh biANCmRhIGdpYSByZSBob24gdGhlcCB0cm9uZyBudW9jIHRvaSAzMDAuMDAwLTUwMC4wMDAgZG9u Zy90YW4uIE5oaWV1IGRvYW5oIG5naGllcCB0aGVwIA0KVmlldCBOYW0gZGlldSBkdW5nLiBUaGkg cGhhbiB0aGVwIGN1b24gVmlldCBOYW0gYmkgdGh1IGhlcCB0dSAyNyUgdHJ1b2MgZGF5LCBjaGkg Y29uIA0KMTglLiANCg0KRGlldSBnaSBzZSBkZW4gdm9pIG5nYW5oIHRoZXAgVmlldCBOYW0gdHJv bmcgNCBuYW0gdG9pLCBraGkgdmllYyBnaWFtIHRodWUgdG9pIDAlIG5oYXAgDQpraGF1IGhhbmcg aG9hIHR1IFRydW5nIFF1b2MgYmF0IGRhdSBjbyBoaWV1IGx1YyB0aGVvIEhpZXAgZGluaCB0aHVv bmcgbWFpIHR1IGRvIA0KQVNFQU4gKyBUcnVuZyBRdW9jPyBUaGVwIFRydW5nIFF1b2Mgc2UgY28g dGhlIG8gYXQgY2hpZW0gbGluaCB0aGkgdHJ1b25nIG8gVmlldCANCk5hbSBib2ksIGdpYSB0aGVw IFZpZXQgTmFtIGUga2hvIGxvbmcgY2FuaCB0cmFuaCBub2khDQoNCk5vaSB2ZSBuZ3V5ZW4gbmhh biBzYXUgc2EgaG9uLCBvbmcgTmd1eWVuIFRpZW4gTmdoaSBwaGFuIHRpY2g6IGxvaSB0aGUgY2Fu aCB0cmFuaCBjdWEgDQpuaGlldSBkb2FuaCBuZ2hpZXAgdGhlcCBWaWV0IE5hbSBsYSByYXQgeWV1 LCBraGkgbWEgY2hpbmggaG8gZGEgbmhhcCBraGF1IHZhIHNhbiB4dWF0IA0KYmFuZyBjb25nIG5n aGUgdGhlcCByZSB0aWVuLCBsYWMgaGF1IGN1YSBUcnVuZyBRdW9jLg0KDQpIb2kgbmFtIDIwMDcs IGNvbiBzb3QgY2FjIGR1IGFuICBsdXllbiBwaG9pIHRoZXAgbm9pIGxlbiwgaGFuZyBsb2F0IGNh YyBkb2FuaCBuZ2hpZXAgDQp0aGVwIGR1YSBuaGF1IG11YSBsbyBkaWVuLCBsbyBjYW8gY3VhIFRy dW5nIFF1b2MgdmUgdm9pIGdpYSB2byBjdW5nIGhhcCBkYW4uDQoNClRvaSBuYXksIG5odW5nIGNv bmcgdHkgbmh1IEhvYSBQaGF0LCBEaW5oIFZ1LCBWYW4gTG9pLi4uIHZhbiBkZXUgc3UgZHVuZyBs byBkaWVuIGR1b2kgDQoyMC00MCB0YW4gbWUuIENvbmcgbmdoZSBsbyBjYW8gaGllbiBkYWkgbmhh dCwgZGFuZyBkdW9jIHN1IGR1bmcgbGEgbG8gMzUwbTMgY3VhIEhvYSBQaGF0Lg0KDQpOZ2hpY2gg bHkgbmFtIG8gY2hvLCBjYWMgbG9haSBjb25nIG5naGUgbmF5IGRldSBkYSBkdW9jIHBoaWEgVHJ1 bmcgUXVvYyB0aGFpIGJvLCBjYW0gDQpzdSBkdW5nIHR1Li4uIG5hbSAyMDA1Lg0KDQpUaHUgaG9p LCBzYXUgdmFpIG5hbSB0b2ksIGdpdWEgbW90IGJlbiBsYSB0aWV1IGhhbyB0b2kgNzAwa1doIGRp ZW4vdGFuIHBob2kgdm9pIG1vdCBiZW4gDQpsYSB0aWV1IGhhbyA0MDBrV2gvdGFuIHBob2ksIG1v dCBiZW4gbGEgdG9uIHRvaSA0MC01MCB0YW4gZGF1L3RoZXAgdGhhbmggcGhhbSwgdmEgbW90IA0K YmVuIGxhIGNoaSBtYXQgMjgtMzIgdGFuIGRhdS90aGVwIHRoYW5oIHBoYW0gdGhpIGNhYyBkb2Fu aCBuZ2hpZXAgdGhlcCBWaWV0IE5hbSBoYSBnaWEgDQp0aGFuaCB0aGUgbmFvIGRlIGNhbmggdHJh bmggdm9pIFRydW5nIFF1b2M/DQoNCkNodWEga2UsICJjb24gZGFvIGhhaSBsdW9pIiBjaG8gdGhp IHRydW9uZyB0aGVwIFZpZXQga2hpIGNob2kgdm9pIFRydW5nIFF1b2MgbGEgbyBjaG86IA0KdGhl cCBUcnVuZyBRdW9jIGN1bmcgcmF0IGRhIGRhbmcgY2h1bmcgbG9haS4gQ2hhdCBsdW9uZyB0aGVw IHRydW5nIHVvbmcgdmEgdGhlcCBkaWEgDQpwaHVvbmcgbyBUcnVuZyBRdW9jIGNhY2ggbmhhdSBt b3QgdHJvaSBtb3QgdnVjLiBUaGVwIGN1b24gdGh1b25nIGtob25nIGluIG5oYW4gbWFjIA0KbGVu IHRydWMgdGllcCBzYW4gcGhhbSwga2hpIHZlIFZpZXQgTmFtLCBkbyB2YW8gY2FjIGN1YSBoYW5n IGJhbiBsZSwga2hvbmcgYWkgY28gdGhlIA0Ka2llbSBjaHVuZyBub2kuIFRoZXAgVHJ1bmcgUXVv YyBuaGFwIGtoYXUgZG8gbGEgbG9haSBnaSB2YSBsaWV1IGNvIHRyYSB0cm9uIGdhbiBtYWMgDQp0 aGVwIFZpZXQgaGF5IGtob25nPw0KDQpOZXUgbmh1IGNhdSBjaHV5ZW4gbmhhcCBzaWV1IGN1YSBu Z2FuaCBkaWVuLCBuZ2FuaCB0aGVwIHZ1b25nIG8gZGllbSBkZW4gdmUgdGhpZXQgYmkgDQpjb25n IG5naGUgdGhpIHRyb25nIG5ob20gaGFuZyB0aWV1IGR1bmcgbmhhcCB0dSBUcnVuZyBRdW9jLCBt b3Qgbm9pIGxvIGtoYWMgZGFuZyBoaWVuIA0KaGllbiBuZ2F5IGNhbmcgcm8uDQoNCk5oaWV1IGNh dSBjaHV5ZW4gYW0gaSBkdSBsdWFuIHZ1YSBxdWEgdmUgY2hhdCBsdW9uZywgdmUgZG8gYW4gdG9h biBjdWEgaGFuZyBtYXkgbWFjLCANCnRodWMgcGhhbSwgZG8gYW4uLi4gbmhhcCBraGF1IGRldSAi ZGluaCIgdG9pIG5ndW9uIGdvYyBUcnVuZyBRdW9jLg0KDQpWaSBkdSBuaHUgdmFpIFRydW5nIFF1 b2MsIGNoaWVtIHRvaSA5MCUgdGhpIHRydW9uZyB2YWkgVmlldCBOYW0uIE1vaSB0aGFuZyAyLzIw MTAsIA0KVHJ1bmcgdGFtIGt5IHRodWF0IGRvIGx1b25nIGNoYXQgbHVvbmcgVmlldCBOYW0gZGEg cGhhdCBoaWVuIHRvaSAzIGxvIHZhaSB4dWF0IHh1IHR1IA0KVHJ1bmcgUXVvYyBjbyBoYW0gbHVv bmcgZm9ybWFsZGVoeWRlIGNhbywgbGEgY2hhdCBnYXkgdW5nIHRodSwgdnVvdCB0aWV1IGNodWFu IGNobyANCnBoZXAuDQoNClRoYW5nIDMsIENoaSBjdWMgcXVhbiBseSB0aGkgdHJ1b25nIFRQLkhD TSBkYSBwaGF0IGhpZW4gdHJvbmcgNy42MDggc29pIGRheSBjaHV5ZW4sIA0KbGFjIHRheSwgbmhh biB4aSBtYSB0dSBUcnVuZyBRdW9jLCBjbyBkZW4gNy41MDAgbW9uIGNodWEgY2hhdCBjaGkgdmEg Y2FkaW1pLg0KDQpDaHVhIGtlLCBtb3QgbG9hdCBuaHVuZyB2dSB2aWVjIGtoYWMga2hpZW4gbmd1 b2kgdGlldSBkdW5nIHRybyBuZW4gc28gaGFuZyBUcnVuZyBRdW9jIA0Kbmh1IHN1YSBuaGllbSBt ZWxhbWluLCByYXUgcXVhIGNvIG5oaWV1IHRodW9jIHRydSBzYXUsICBkbyBjaG9pIGNodWEgY2hh dCBkb2MgaGFpLi4uIFZhIA0Kbmh1bmcgbmdheSBnYW4gZGF5LCBkdSBsdWFuIGxhaSBybyBsZW4g dGhvbmcgdGluIHNhIHRlIGxhdSBjdWEgVHJ1bmcgUXVvYyBjaHVhIGNoYXQgdW5nIHRodS4NCg0K Vmkgbmh1IGNhdSBtYSBWaWV0IE5hbSBwaGFpIG5oYXAga2hhdSBsb24gbmd1b24gaGFuZyBob2Eg VHJ1bmcgUXVvYyB2YSB0cnVvYyBtYXQsIA0KbmV1IHBoYWkgbGVwIHZlIHRyb25nIGNhaSBib25n IG5oYXAgc2lldSB0dSBUcnVuZyBRdW9jLCBjYXUgaG9pIHF1YW4gdHJvbmcgZGF0IHJhIHZhIGNh biANCmR1b2Mgc29tIGdpYWkgcXV5ZXQgdHUgY28gcXVhbiBxdWFuIGx5OiBDaHVuZyB0YSBkYSBu aGFwIGhvcCBseSwgbmhhcCBkdW5nIGRlIGRhcCB1bmcgDQptdWMgdGlldSBDTkgtSERIIGRhdCBu dW9jLCBuYW5nIGNhbyBuYW5nIGx1YyBjYW5oIHRyYW5oIGNobyBuZW4gc2FuIHh1YXQgVmlldCBO YW0gaGF5IGNodWE/ICANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvaW5fZGVwdGgv Q2hpbmVzZS1iaWRkZXJzLXdvbi1FUEMtY29udHJhY3RzLXBsZWFzZS1ibGFtZS1vdXJzZWx2ZXMt Tk5ndXllbiUyMC0wOTA2MjAxMDE1NTAzMi5odG1sIE5hbSBOZ3V5ZW4sIHBob25nIHZpZW4gUkZB IDIwMTAtMDktMDYgDQoNCk5naGkgdmFuIFRydW5nIFF1b2MgdGhhbmcgdGhhdSBuaG8gImRpIGRl bSIgDQoNCkNoaW5oIHBodSBkYW5nIGNodWFuIGJpIGJhbyBjYW8gdmUgaGUgbHV5IGNob24gbmhh IHRoYXUgZ2lhIHJlIG1hIGJhbyBjaGkgcGhhbiBhbmguIA0KVGhlbyBkbywgVHJ1bmcgUXVvYyB0 cnVuZyB0aGF1IDkwJSBjYWMgY29uZyB0cmluaCB0aHVvbmcgbmd1b24gbyBWaWV0IE5hbS4NCg0K KEFuaCBjaHVwOiBMZSBreSBrZXQgSG9wIGRvbmcgc2F1IGtoaSBDb25nIHR5IENoaW5hIEh1YWRp YW4gRW5naW5lZXJpbmcgKENIRUMpIA0KVHJ1bmcgUXVvYyB0cnVuZyB0aGF1IEVQQyBEdSBhbiBO aGEgbWF5IG5oaWV0IGRpZW4gS2llbiBMdW9uZyB0aHVvYyBUcnVuZyB0YW0gDQpEaWVuIGx1YyBL aWVuIEx1b25nLCB0aW5oIEtpZW4gR2lhbmcsIGhvbSAzMC0wNi0yMDEwLikgIA0KDQpMb2kgYmF0 IGNhcCBoYWkNCg0KQmFvIGNoaSBtbyB4ZSB0aW5oIHRyYW5nIG5oYSB0aGF1IFRydW5nIFF1b2Mg Ym8gdGhhdSBnaWEgdGhhcCwgdGhhbmcgdGhhdSBvIGtoYXAgY2FjIA0KY29uZyB0cnVvbmcgZHUg YW4uIEhlIHF1YSBjdWEgdGluaCB0cmFuZyBuYXkgbGEgbG9pIGJhdCBjYXAgaGFpIHZpIHBoYW0g Y2hhdCBjb25nIHRyaW5oIA0KdGh1b25nIHRoYXAsIHRob2kgZ2lhbiB0aGkgY29uZyBrZW8gZGFp LCBkbyBsYSBjaHVhIG5vaSBkZW4gc3Uga2llbiBuaGEgdGhhdSwgZG9pIG5ndSANCmNodXllbiB2 aWVuIGNvbmcgbmhhbiB4YXkgZHVuZyBWaWV0IE5hbSB0cm8gdGhhbmggbmh1bmcgbmd1b2kgZHVu ZyBiZW4gbGUgY2FjIGRhaSANCmNvbmcgdHJ1b25nIGN1YSBkYXQgbnVvYyBtaW5oLg0KDQpPbmcg VnUgS2hvYSwgQ2h1IFRpY2ggSGllcCBIb2kgTmhhIFRoYXUgWGF5IER1bmcgVk4gcGhhdCBiaWV1 IHRyZW4gVGhhbmggTmllbiANCk9ubGluZSwgSGllcCBIb2kgZGEgY2FuaCBiYW8gdHUgbmh1bmcg bmFtIDE5OTQsIDE5OTUgdmUgbmd1eSBjbyBsb24gY3VhIGRhdSB0aGF1IGdpYSANCnRoYXAgbGEg cGhhIHNhbiBkdSBhbiwgdm8gdGllbiBkby4gVHV5IG5oaWVuIG5odW5nIGtodXllbiBjYW8gdmUg dmFuIGRlIG5heSBraG9uZyBkdW9jIGNodSB5LiAgDQoNCk5oaWV1IHkga2llbiBkYXQgdmFuIGRl IHZlIGNvIGNoZSBjaGluaCBzYWNoIHZhIGx1YXQgbGUsIG5odW5nIHRyZW4gdGh1YyB0ZSB5ZXUg dG8gY29uIA0Kbmd1b2kgbGEgcXVhbiB0cm9uZyBob24gY2EuIA0KDQpUUyBOZ3V5ZW4gUXVhbmcg QSBjaHV5ZW4gZ2lhIG5naGllbiBjdXUgZG9jIGxhcCB0dSBIYSBOb2kgbmhhbiBkaW5oIHZlIHZh biBkZSBuYXk6IA0KIlRoYW0gbmh1bmcgbyB0cm9uZyBuaHVuZyBkdSBhbiBkYXUgdHUgbG9uIHRo aSByYXQgdGh1b25nIHhheSByYSAgbmV1IGNodSBkYXUgdHUgdmEgDQpuaGEgdGhhdSBsYWkgJ2Rp IGRlbScgdm9pIG5oYXUgdHJ1b2Mgcm9pIHRoaSBsdWMgZG8gbGEgdm8gcGh1b25nIHZhIHBoYWkg Y28gbmh1bmcgDQpnaWFpIHBoYXAga2hhYyBkZSBnaWFpIHF1eWV0LCBjaHUgY29uIGNoaSBiYW5n IGNhYyB0aHUgdHVjIGRhdSB0aGF1IHRoaSBraG9uZyBub2kuIA0KS2hpIGNhYyBjaHUgZGF1IHR1 IG1hIGhhbSBnaWEgcmUgdGhpIG5oaWV1IGtoaSBkYW4gZGVuIGNoYXQgbHVvbmcga2VtLiBNb3Qg bmhhIG1heSANCmxvbiBkdW9jIHNpbmggcmEsIHZvbmcgZG9pIGN1YSBubyAzMC00MCBuYW0gdmEg bHVjIGRvIG5vIGtlbyB0aGVvIGhlIHF1YSBtYSB2YWkgdGhlIA0KaGUgbW9pIGNvIHRoZSAgc3Vh IGR1b2MgdGhpIGRheSBsYSBtb3QgZGlldSByYXQgbGEgbmd1eSBoaWVtLiINCg0KTmd1b2kgVFEg ZGFtIHRyYWNoIG1vaSB2aWVjPw0KDQooQW5oIGNodXA6IERhaSBkaWVuIFhpIG5naGllcCBUVFRC IFF1YW5nIE1pbmggdmEgZGFpIGRpZW4gVGFwIGRvYW4gQ01DIFRydW5nIA0KUXVvYyBreSBob3Ag ZG9uZyB0b25nIHRoYXUgRS5QLkMgZHUgYW4geGkgbWFuZyBUcnVvbmcgU29uLCBIYWkgUGhvbmcs IGhvbSANCjE1LzA1LzIwMTAuIFBob3RvIGNvdXJ0ZXN5IG9mIGNvbmd0aHVvbmcuY29tLnZuKQ0K DQpUYWkgVmlldCBOYW0gdmllYyBjYWMgbmhhIHRoYXUgVHJ1bmcgUXVvYyB0aGFuZyB0b2kgOTAl IGNhYyBob3AgZG9uZyB0b25nIHRoYXUgRVBDLCANCnRoaWV0IGtlLW11YSBzYW0teGF5IGR1bmcg Y29uIGdvaSBsYSBob3AgZG9uZyBjaGlhIGtob2EgdHJhbyB0YXkgbWFuZyB0b2kgbmhpZXUgaGUg cXVhLiANCkNoYW5nIGhhbiBuaHUgbmd1b2kgVHJ1bmcgUXVvYyBkYW0gdHJhY2ggdGF0IGNhIG1v aSB2aWVjLCBuZ2F5IGNhIGNvbmcgbmhhbiB2ZSBzaW5oIA0KY2FjIGNvbmcgdHkgVHJ1bmcgUXVv YyBjdW5nIG1hbmcgdGhlbyB0dSBudW9jIGhvLiBWb2kgZ2lhIHRoYW5nIHRoYXUgcmUsIG5oYSB0 aGF1IA0KVHJ1bmcgUXVvYyBtdWEgc2FtIHRyYW5nIHRoaWV0IGJpIG1heSBtb2MgdmF0IGxpZXUg c2FuIHh1YXQgbyBudW9jIGhvLCBjaGF0IGx1b25nIGNhYyANCmNvbmcgdHJpbmgga2hpIGhvYW4g dGhhbmggbGEgbW90IHZhbiBkZSBkdW9jIGR1IGx1YW4gcXVhbiB0YW0uIERhbmcgcXVhbiBuZ2Fp IGxhIGNhYyANCmdvaSB0b25nIHRoYXUgRVBDIGRhbSB0cmFjaCB0aHVjIGhpZW4gY2FjIGNvbmcg dHJpbmggdGh1b25nIG5ndW9uIG5odSBraGFpIGtob2FuZywgDQpsdXllbiBraW0sIG5oYSBtYXkg ZGllbi4gICAgDQoNClRoZW8gVFMgTmd1eWVuIFF1YW5nIEEsIGNodXllbiBnaWEgbmdoaWVuIGN1 dSBkb2MgbGFwIG8gSGEgTm9pIGNhY2ggbGFtIEVQQyBsYSANCnRoZW8gdGhvbmcgbGUgcXVvYyB0 ZSwgbmh1bmcgbyBWaWV0IE5hbSB2aWVjIHNvYW4gdGhhbyB2YSBhcCBkdW5nIGRpZXUga2llbiBk dSB0aGF1IG5odSANCnRoZSBuYW8gbGFpIGxhIGNodXllbiBraGFjLiBPbmcgbm9pOiAiRGF1IHRp ZW4gcGhhaSB0aG9hIG1hbiB0YXQgY2EgdGh1IHR1YyB2ZSBtYXQgaGluaCANCnRodWMsIHNhdSBk byBwaGFpIHRob2EgbWFuIHRhdCBjYSB5ZXUgY2F1IHZlIG1hdCBreSB0aHVhdCB2ZSBtYXQgY2hh dCBsdW9uZy4gTmh1bmcgeWV1IA0KY2F1IHZlIG1hdCBreSB0aHVhdCwgY2hhdCBsdW9uZyBuaHUg dGhlIG5hbywgbmV1IGNodSBkYXUgdHUga2hvbmcgbmV1IGR1b2MgbW90IGNhY2ggcm8gDQpyYW5n IGNoYXQgY2hlIHRoaSBuaHVuZyAnb25nJyBkYW5nIGxlIGJpIGxvYWkgY3VuZyBjbyB0aGUgbG90 IHZhby4gU2F1IGRvIGRlbiBidW9jIGN1b2kgDQpjdW5nIHRhdCBjYSBuaHVuZyBuZ3VvaSBjb24g bGFpIG1vaSB0aW5oIGRlbiBhaSB0cmEgZ2lhIHRoYXAsIGNodXllbiBkbyBsYSBkbyB0YWkgbmFu ZyBhbSANCmhpZXUgY3VhIGNodSBkYXUgdHUgbWEgY28gdGhlIGxvdCB2YW8gbmh1bmcgbmhhIHRo YXUga2hvbmcgZGF0IGNoYXQgbHVvbmcuIiAgDQogICAgICAgDQpLaWVuIHRydWMgU3UgVHJhbiBU aGFuaCBWYW4gbyBIYSBOb2ksIG1vdCBuZ3VvaSBjbyBuaGlldSBoaWV1IGJpZXQgdmUgZG9pIHNv bmcgeGEgaG9pIA0KSG9hIEx1YyBkYWMgYmlldCBxdWFuIG5nYWkgdmUgdGluaCB0cmFuZyBjb25n IHR5IFRydW5nIFF1b2MgdGhvbmcgbGluaCBjYWMgY29uZyB0cnVvbmcgDQpkdSBhbiBvIFZpZXQg TmFtOiAiRHVhIGdpYSB0aGFwIGRlIHRoYW5nIHRoYXUgZGF1IGNvIG5naGlhIGxhIGxhbSBkdW9j IHRvdCwgbWEgbmd1b2kgdGEgDQpjYW4ga2llbSB0cmEgeGVtIHF1aSB0cmluaCBjb25nIG5naGUs IGNhYyBnaWFpIHBoYXAga3kgdGh1YXQgZGUgbGFtIHNhbyB0aWV0IGtpZW0gZHVvYyANCnZhdCB0 dSwgdGlldCBraWVtIGxhbyBkb25nIGRlIHJhIGR1b2MgaGlldSBxdWEgbW9pIGxhIHZpZWMgcXVh biB0cm9uZy4iIA0KDQpOaGFuIGRpbmggY3VhIGtpZW4gdHJ1YyBzdSBUcmFuIFRoYW5oIFZhbiB2 dWEgbmV1LCBjbyBsZSBiYXQgY3Ugbmd1b2kgY2h1IGRhdSB0dSBuYW8gDQpjdW5nIGJpZXQsIGNh YyBjaHUgZGF1IHR1IGR1IGFuIHF1YW4gdHJvbmcgbyBWaWV0IE5hbSBsYSBjYWMgdGFwIGRvYW4s IHRvbmcgY29uZyB0eSBuaGEgDQpudW9jIGtob25nIHRoZSBraG9uZyBiaWV0LiBWYW4gZGUgbGEg Y2h1eWVuIFRydW5nIFF1b2MgdGhhbmcgdGhhdTogZ29jIGtodWF0IGtob25nIA0KbmFtIG8gZ2lh IHJlLiAgIA0KDQpodHRwOi8vdm5lY29ub215LnZuLzIwMTAxMTIyMDg1NzUwNjM0UDBDOTkyMC90 aGlldS1kaWVuLXRvaS14aW4tbmhhbi10cmFjaC1uaGllbS5odG0gTkdVWUVOIFZVIDIyLzExLzIw MTAgMjE6MjYgKEdNVCs3KSANCkt5IGhvcCB0aHUgOCwgUXVvYyBob2kga2hvYSBYSUk6IA0KDQpU aHUgdHVvbmc6IE5oYXAgc2lldSB2YSAicnVpIHJvIHZpIG1vIiANCg0KQmVuIGNhbmggbmh1bmcg YnVjIHh1YyB2ZSBkaWVuLCBuaGFwIHNpZXUgY3VuZyBsYSBxdWFuIG5nYWkgdGhlIGhpZW4gdHJv bmcgY2hhdCB2YW4gDQpkYW5oIGNobyBCbyB0cnVvbmcgVnUgSHV5IEhvYW5nLg0KDQpEYWkgYmll dSBUcmFuIER1IExpY2ggKFRwLkhDTSkgbmhhYyBsYWksIHRhaSBtb3Qga3kgaG9wIHRydW9jLCBv bmcgZGEgbmV1IHZhbiBkZSB2b2kgDQpCbyB0cnVvbmcgbGEgbmVuIGtpbmggdGUgZ2lhIGNvbmcs IHR5IGxlIG5vaSBkaWEgaG9hIHF1YSB0aGFwIGxhIG5ndXllbiBuaGFuIGRhbiBkZW4gbmhhcCAN CnNpZXUuIEJvIHRydW9uZyBjdW5nIGRvbmcgdGluaCB2YSBjbyBodWEgbGEgQm8gc2UgY28gZ2Fu ZyBkZSB4dWF0IGNoaW5oIHNhY2gsIGJpZW4gcGhhcCANCmRlIHR1bmcgYnVvYyBnaWFtIG5oYXAg c2lldS4gVmF5IEJvIGRhIHRodWMgaGllbiBsb2kgaHVhIHRoZSBuYW8gdHJvbmcgMyBuYW0gcXVh Pw0KDQpRdWFuIG5nYWkgdmUgdGluaCB0cmFuZyBuaGFwIHNpZXUgdHUgVHJ1bmcgUXVvYyB2YSBW aWV0IE5hbSAidHJvIHRoYW5oIG1vdCBub2kgZ2lhIA0KY29uZyIsIGRhaSBiaWV1IExpY2ggZGF0 IHZhbiBkZSAibmV1IG5odSBkb24gbmhhcCBzaWV1IHZhbyBtb3QgbnVvYyB0aGkgcGhhaSBjaGFu ZyBkYXkgDQpsYSBzdSBydWkgcm8gdmUgdmkgbW8iPw0KDQpQaGFuIHRyYSBsb2ksIGJlbiBjYW5o IGNhYyBjaGluaCBzYWNoIGhhbiBjaGUgbmhhcCBraGF1LCBCbyB0cnVvbmcgSG9hbmcgY3VuZyBj aG8gYmlldCANCkJvIGRhbmcgY2h1YW4gYmkgaG9hbiB0aGFuaCBiYW8gY2FvIHZvaSBDaGluaCBw aHUgZGUgYW4gdmUgeHVhdCBuaGFwIGtoYXUgY2hvIGdpYWkgDQpkb2FuIG5hbSAyMDExLTIwMTUs IHNlIGNvIG5oaWV1IGJpZW4gcGhhcCBjdSB0aGUgaG9uIG51YSBkZSB0YW5nIGNhbyBob24gbnVh IHR5IGxlIHNhbiANCnBoYW0sIHR5IGxlIHNhbiB4dWF0IHRyb25nIG51b2MsIGdpYW0gbmhhcCBr aGF1LiANCg0KVmUgdmllYyBsYW0gc2FvIGtoYWMgcGh1YyBkdW9jIHRpbmggdHJhbmcgbmhhcCBz aWV1LCB0cnVvYyBoZXQgZG9pIHZvaSBtb3Qgc28gZG9pIHRhYyBjdSANCnRoZSwgdGhlbyBCbyB0 cnVvbmcsIHRoaSBtb3QgdHJvbmcgbmh1bmcgZ2lhaSBwaGFwIGNhbiBwaGFpIGR1b2MgcXVhbiB0 YW0gbGEgcGhhaSBkYSANCmRhbmcgaG9hIGNhYyB0aGkgdHJ1b25nIHh1YXQvbmhhcCBraGF1LCBr aG9uZyBuZW4gcXVhIHRhcCB0cnVuZyB2YW8gbW90IHRoaSB0cnVvbmcgZGUgDQp0cmFuaCBydWkg cm8uIA0KDQpUcnVvYyBraGkgdHJhIGxvaSBjaGF0IHZhbiB0cnVjIHRpZXAsIHRhaSB2YW4gYmFu IHRyYSBsb2kgY2hhdCB2YW4gY2FjIHZpIGRhaSBiaWV1IFF1b2MgaG9pIA0KdmUgY2FjIGdpYWkg cGhhcCBkZSBoYW4gY2hlIG5oYXAgc2lldSwgQm8gdHJ1b25nIEhvYW5nIGN1bmcgY2hvIGJpZXQs IGR1IGtpZW4gZGVuIDIwMTUgDQpzZSBkdWEgdHkgbGUgbmhhcCBzaWV1IHh1b25nIDE0JSwgdmEg ZHUgdGluaCB2YWkgbmFtIHNhdSAyMDE1IHNlIHRpZW4gdG9pIGNhbiBiYW5nIGNhbiANCmNhbiB0 aHVvbmcgbWFpLg0KDQpEYSBkb2MgdmFuIGJhbiBuYXksIHR1eSBuaGllbiAibmh1bmcgYmllbiBw aGFwIGNob25nIG5oYXAgc2lldSBtYSBkb25nIGNoaSBCbyB0cnVvbmcgDQp0cmEgbG9pIG8gZGF5 IHRvaSB0aGF5IGtob25nIGNhbiBjbyIsIGRhaSBiaWV1IExpY2ggbmhhbiB4ZXQuICANCg0KaHR0 cDovL3ZucjUwMC52aWV0bmFtbmV0LnZuL2NvbnRlbnQuYXNweD9pZD05OTkgUGhhbSBIdXllbiA4 LzEyLzIwMTAgMTo1NzowMCBQTSAoR01UKzcpDQoNClRodSB0dW9uZzogS2hvbiBraG8gdmkgY2hh eSB0aGVvICJ0aWVuIGRvIiBraWV1IG5oYSB0aGF1IFRydW5nIFF1b2MgDQoNCktob25nIGl0IGNo dSBkYXUgdHUgVmlldCBOYW0gZ2lvIGRheSBkYW5nIGtob24ga2hvIHZpIGNoYXkgdGhlbyBuaHVu ZyBzdSBjbyB0aGlldCBiaSANCmN1YSBuaGEgdGhhdSBUcnVuZyBRdW9jLCBjaGF5IHRoZW8gbG9p IGh1YSB2ZSB0aWVuIGRvIHN1YSBjaHVhIGN1bmcgbmh1LCB0b2F0IG1vIGhvaSBraGkgDQp0aGlu aCB0aG9hbmcgbGFpIG5oYW4gZHVvYyAieWV1IHNhY2giIHRhbmcgZ2lhIHRpZW4gdmF0IGxpZXUu IA0KDQpodHRwOi8vZWNvbm9teS52bi9BcnRpY2xlZGV0YWlsLmFzcHg/aWQ9MTU3MyBQaGFtIEh1 eWVuIChWZWYudm4pIDEwLzAxLzIwMTEgDQogICAgICANClRodSB0dW9uZzogVmkgZGFuZyBraGkg bGUgdGh1b2Mgdm9uIHZheSBUcnVuZyBRdW9jIA0KDQpOaGlldSBkdSBhbiBjdWEgVmlldCBOYW0g cGhhaSB0aHVlIG5oYSB0aGF1IFRydW5nIFF1b2MgYm9pIG1vdCBseSBkbyAiYmF0IGtoYSANCmto YW5nIjogbmd1b24gdm9uIHZheSB0dSBjaGluaCBUcnVuZyBRdW9jLiBWYSBraGkgZHUgYW4gY28g dmFuIGRlIHZlIGNoYXQgbHVvbmcgDQp0aGkgY2FjIGNodSBkYXUgdHUgVmlldCBOYW0gY2hpIGNv biBudW9jICJuZ2FtIGJvIGhvbiBsYW0gbmdvdCIgDQoNCkNhaSBraG8geHUga2hpIG5oYW4gdm9u IGN1YSBUcnVuZyBRdW9jDQoNClRydW5nIFF1b2Mga2hvbmcgcGhhaSBsYSBudW9jIHRodW9jIG5o b20gY3VuZyBjYXAgdm9uIGhvIHRybyBwaGF0IHRyaWVuIE9EQSBsb24gDQpjaG8gVmlldCBOYW0s IGN1bmcga2hvbmcgcGhhaSBsYSBudW9jIGJvIHZvbiBkYXUgdHUgdHJ1YyB0aWVwIChGREkpIHRo dW9jIFRPUCAxMCBvIA0KVmlldCBOYW0uDQoNCk5ldSB0aW5oIHRoZW8gc28gY2FjIGR1IGFuIEZE SSBjb24gaGlldSBsdWMsIGhvbiAyMCBuYW0gcXVhLCBGREkgdHUgVHJ1bmcgUXVvYyBjaGkgY28g DQozLDE4NCB0eSBVU0QsICBkdW5nIHRodSAxNCB2YSBjaGllbSA0JSB0b25nIHZvbiBGREkgY3Vh IDkyIHF1b2MgZ2lhLCB2dW5nIGxhbmggdGhvIGRhIA0KZGVuIFZpZXQgTmFtLiBSaWVuZyBuYW0g MjAxMCwgVHJ1bmcgUXVvYyAgZHVuZyB0aHUgMTEgdm9pIHRvbmcgdm9uIDM2NCw2IHRyaWV1IFVT RCwgDQpjaGkgY2hpZW0gaG9uIDElIHRvbmcgdm9uIEZESSBjYSBuYW0gY3VhIFZpZXQgTmFtLg0K DQpUaGUgbmh1bmcsIHRodWMgY2hhdCwgZG9uZyB2b24gVHJ1bmcgUXVvYyBjaGF5IHZhbyBWaWV0 IE5hbSBsYWkga2hvbmcgaGUgbmhvLg0KQ2hvIHRvaSBuYXksIGNodWEgY28gYm8gbmdhbmggbmFv IHRob25nIGtlIGN1IHRoZSwgVmlldCBOYW0gZGEgdmF5IGJhbyBuaGlldSB0aWVuIA0KY3VhIFRy dW5nIFF1b2MuIENoaSB0aGF5IHJhbmcsIG8gaGF1IGtoYXAgY2FjIG5nYW5oIGNvbmcgbmdoaWVw LCBuYW5nIGx1b25nIGN1YSANClZpZXQgTmFtLCB2b24gdmF5IHV1IGRhaSBsYWkgc3VhdCB0aGFw IHR1IFRydW5nIFF1b2MgZGFuZyBkb25nIHZhaSB0cm8gcmF0IHF1YW4gDQp0cm9uZywgY2h1IHll dSBsYSB0dSBkYXUgbW9pIE5nYW4gaGFuZyBYdWF0IG5oYXAga2hhdSBUcnVuZyBRdW9jIChDaGlu YSBFeGltYmFuaykuDQpEb24gY3Ugbmh1ICBvIG5nYW5oIGRpZW4sIHRyb25nIHRvbmcgc28gOSBk dSBhbiBuaGlldCBkaWVuIGRvIFRhcCBkb2FuIFRoYW4gLSBLaG9hbmcgDQpzYW4gbGFtIGNodSBk YXUgdHUsIGhpZW4gY28gNCBkdSBhbiB2YXkgdm9uIHRpbiBkdW5nIHh1YXQga2hhdSBob2FjIE9E QSBjdWEgVHJ1bmcgUXVvYy4NCg0KKEFuaDogVHJ1bmcgUXVvYyBuaGFwIHZhbyBjYWMgZHUgYW4g ZGllbiBjaHUgeWV1IHRoaWV0IGJpIHBodS4gLSBhbmg6IEwuTSkNCg0KRG8gbGEgY2FjIGR1IGFu IG5oaWV0IGRpZW4gQ2FvIE5nYW4sIFNvbiBEb25nLCBDYW0gUGhhLCBNYW8gS2hlIGRldSBjaHUg eWV1IHZheSB0aW4gDQpkdW5nIHh1YXQga2hhdSBjdWEgbmdhbiBoYW5nIENoaW5hIEV4aW1iYW5r LiBEdSBhbiBjbyB0b25nIHZvbiBkYXUgdHUgaXQgbmhhdCBjdW5nIA0KaG9uIDMuNTAwIHR5IGRv bmcuIENhYyBkdSBhbiBkaWVuIGN1YSBUYXAgZG9hbiBEaWVuIGx1YyBWaWV0IE5hbSAoRVZOKSBj dW5nIHZheSB0dSANCm5nYW4gaGFuZyBuYXkga2hvbmcgaGUgaXQsIHZpIGR1IG5odSBkdSBhbiBu aGlldCBkaWVuIFF1YW5nIE5pbmggMSB2YSAyLCBkdSBhbiBIYWkgDQpQaG9uZyAxIHZhIDIsIGR1 IGFuIG5oaWV0IGRpZW4gVW9uZyBCaSBtbyByb25nLi4uDQoNCk1vaSBkYXkgbmhhdCwgMTgvMTIv MjAxMCwgIEJvIFRhaSBjaGluaCBjdW5nIGRhIGt5IGhpZXAgZGluaCB2YXkgMzAwIHRyaWV1IFVT RCB2b2kgDQpDaGluYSBFeGltYmFuayBjaG8gZHUgYW4gbmhpZXQgZGllbiBWaW5oIFRhbiAyICgy IHg2MDBNVykuDQoNClRydW5nIGJpbmggbW9pIGR1IGFuIGRpZW4gY29uZyBzdWF0IDMwME1XIHRy byBsZW4gY3VhIFZpZXQgTmFtIGNvIHRvbmcgdm9uIGRhdSB0dSANCnRyZW4gNTAwIHRyaWV1IFVT RC4gTmV1IGR1IGFuIHZheSB0dSBDaGluYSBFeGltYmFuayB0aGkgbmd1b24gdm9uIG5heSB0aHVv bmcgY2hpZW0gDQpraG9hbmcgODUlIHRvbmcgdm9uIGRhdSB0dS4NCk5odSB2YXksIHVvYyB0aW5o LCB0b25nIHZvbiB2YXkgY3VhIFRydW5nIFF1b2MgY2hpIHJpZW5nIGNobyBuZ2FuaCBkaWVuIFZp ZXQgTmFtIGRhIA0KbGEgY29uIHNvIGhhbmcgdHkgVVNELg0KDQpLaG9uZyBjaGkgbGEgbmdhbmgg ZGllbiwgbmd1b24gdGluIGR1bmcgdXUgZGFpIGN1YSBFeGltYmFuayBjb24gY28gbWF0IG8gbmhp ZXUgZHUgYW4gDQp0cm9uZyBkaWVtIGN1YSBjYWMgbmdhbmggY29uZyBuZ2hpZXAga2hhYy4gVmkg ZHUgbmh1IG5nYW5oIGhvYSBjaGF0IHZvaSBkdSBhbiBkYW0gdHUgDQp0aGFuIGNhbSBOaW5oIEJp bmggZG8gVG9uZyBjb25nIHR5IEhvYSBjaGF0IFZpZXQgTmFtIGxhbSBjaHUgZGF1IHR1LCBjdW5n IHN1IGR1bmcgDQpuZ3VvbiB2b24gNTAwIHRyaWV1IFVTRCB0aGVvIGhpZXAgZGluaCB0aW4gZHVu ZyB4dWF0IGtoYXUga3kgdm9pIFRydW5nIFF1b2MuIER1IGFuIA0Kc2FuIHh1YXQga2h1b24gbWF1 IHZhIHRydWMgaW4gbmh1YSBjdWEgVG9uZyBjb25nIHR5IE5odWEgVmlldCBOYW0gY3VuZyB2YXkg dGluIGR1bmcgDQp1dSBkYWkgY3VhIENoaW5oIHBodSBUcnVuZyBRdW9jIHRyaSBnaWEgNTAgdHJp ZXUgTmhhbiBkYW4gdGUuDQoNClRyYW8gZG9pIHZvaSBQVi4gVkVGLCBtb3QgbGFuaCBkYW8gbyBC byBDb25nIFRodW9uZyB0dW5nIGNoaWEgc2UsIGtoaSBjYWMgbmhhIHRoYXUgDQpUcnVuZyBRdW9j IHZhbyBWaWV0IE5hbSwgbmhhbiB0aGF5IGRpZW0geWV1IGxhIHRoaWV1IHZvbiwgaG8gbmhhbmgg Y2hvbmcgZGF0IHZhbiBkZTogDQpuZXUgcGhpYSBUcnVuZyBRdW9jIGxvIHRodSB4ZXAgdm9uIGR1 b2MgY2hvIGR1IGFuIHRoaSBidSBsYWksIGhheSBnaWFvIGR1IGFuIGRvIGRlIGhvIGxhbS4NCg0K Vm9pIG1vdCBsb2kgZGUgbmdoaSBoYXAgZGFuIG5odSB2YXkgdGhpIHF1YSB0aHVjLCBjYWMgY2h1 IGRhdSB0dSBWaWV0IE5hbSBraG8gbG9uZyB0dSANCmNob2kuIFRoZW8gdGhvbmcgbGUgcXVvYyB0 ZSwga2hpIGRhIG5oYW4gdm9uIHZheSBjdWEgbW90IG51b2MsIGNodSBkYXUgdHUgc2UgcGhhaSB0 byANCmNodWMgZGF1IHRoYXUgaGFuIGNoZSwgY2hpIG1vIHRoYXUgY2hvIGNhYyBuaGEgdGhhdSBu dW9jIGNobyB2YXkgdGhhbSBnaWEuIERvIGxhIGx5IGRvIA0KYmF0IGtoYSBraGFuZyBkZSBjYWMg ZHUgYW4gbG9uIHRyZW4gY3VhIFZpZXQgTmFtIHBoYWkgY2hvbiBuaGEgdGhhdSBUcnVuZyBRdW9j IHZhIA0KbmhhcCBraGF1IGxvbiB0aGlldCBiaSwgbWF5IG1vYyBjdWEgbnVvYyBuYXkuDQoNClRy byBkaSBtYWMgbnVpLCB0cm8gbGFpIG1hYyBzb25nDQoNCk5odW5nIGxlIHRodW9uZywgc3UgaGFw IGRhbiBjdWEgbW90IGNoaW5oIHNhY2ggdmUgdm9uIG5odSB2YXkgYmFvIGdpbyBjdW5nIGNvIHRp bmggaGFpIA0KbWF0LiBDaGluaCBzYWNoIHZheSB2b24gY3VhIFRydW5nIFF1b2MgY28gdGhlIHJh dCAgdGhvbmcgdGhvYW5nLCBuaHVuZyBkb2kga2hpLCBjdW5nIA0KY28gdmkgZGFuZyBtYSBjYWMg Y2h1IGRhdSB0dSBWaWV0IE5hbSBjaGkgY29uIG51b2MgIm5nYW0gYm8gaG9uIGxhbSBuZ290Ii4g DQoNCihBbmg6IEtoYXUgeHVjIHhpIHRhaSBkYXkgbG8gbyBuaGEgbWF5IG5oaWV0IGRpZW4uIEFu aDogTC5NKSANCiANCk1vdCBjaHV5ZW4gZ2lhIHRyb25nIG5nYW5oIGNhdCBuZ2hpYSB2b2kgVkVG IHJhbmcsIG5nYW4gaGFuZyBjdWEgVHJ1bmcgUXVvYyAtIHZvaSB0dSANCmNhY2ggbGEgbmd1b2kg dGhhbSBkaW5oIGhvIHNvIHZheSB2b24sIGNvIHF1eWVuIGtpZW0gZHV5ZXQgY2FjIGRpZXUga2ll biBreSB0aHVhdCB0cm9uZyANCmR1IGFuLiBEaWV1IGtpZW4gZG8gbGlldSB0aGljaCBob3Agdm9p IGNhYyBuaGEgdGhhdSBjdWEgbnVvYyBobyBraG9uZz8gVHUgZG8sIGhvIGNvIA0KcXV5ZW4gZG9p IGhvaSBwaGFpIGhhIHRoYXAgbW90IHNvIHRpZXUgY2hpIGRlIGNhYyBuaGEgdGhhdSBUcnVuZyBR dW9jIGNvIGNvIGhvaSB0aGFtIGdpYSANCnRoaSBtb2kgY2hvIHZheSB2b24uDQoNClZvaSBraW5o IG5naGllbSAzMCBuYW0gdHJvbmcgbmdhbmggZGllbiwgdmkgY2h1eWVuIGdpYSBuYXkgcGhhbiB0 aWNoLCBnaWEgZHUgaGlldSBzdWF0IA0KbG8gaG9pIG5oaWV0IGRpZW4gdHJvbmcgaG8gc28gbW9p IHRoYXUgbW90IGR1IGFuIG5oaWV0IGRpZW4gdGhhbiwgbmV1IGNoaSBuYW5nIGxlbiAxJSBkZSAN CmRhbSBiYW8gY2hhdCBsdW9uZywgdGhpIG5nYXkgbGFwIHR1YywgaGFuZyBsb2F0IGNhYyBuaGEg dGhhdSBUcnVuZyBRdW9jIHNlIGJpIHJvdCB2aSANCmtob25nIGRhdCB5ZXUgY2F1LiBOaHVuZywg Y2hpIGNhbiBoYSAxJSBoaWV1IHN1YXQgbG8gaG9pIHRoZW8gZGUgbmdoaSBjdWEgTmdhbiBoYW5n IA0KVHJ1bmcgUXVvYywgZ2lhIHRoYW5oIG1heSBtb2MsIHRoaWV0IGJpIGRhIGdpYW0gdG9pIDIw LTMwJSAuIFZpIHlldSB0byBraW5oIHRlIGRvLCB0aG9uZyANCnRodW9uZywgY2EgYmVuIGRpIHZh eSB2YSBiZW4gY2hvIHZheSBkZXUgY2hhcCBuaGFuLg0KDQpNb3QgZGFjIGRpZW0ga2hhYywgdGhl byB2aSBjaHV5ZW4gZ2lhIG5heSBxdWFuIHNhdCwgdHJvbmcgaG8gc28gbW9pIHRoYXUgY2FjIGR1 IGFuIG5oaWV0IA0KZGllbiwgbmV1IGNodSB0cm9uZyBjaGF0IGx1b25nLCBiYW8gZ2lvIGN1bmcg Y28gY2F1LCJ5ZXUgY2F1IHRoaWV0IGJpIEc3IGhvYWMgY2hhdCBsdW9uZyANCnR1b25nIGR1b25n Ii4gTmh1bmcgdm9pIG5oaWV1IGR1IGFuIG5oaWV0IGRpZW4gbWEgdmF5IHZvbiBUcnVuZyBRdW9j IHRoaSB0aHVvbmcsIA0Kbmh1bmcgZG9uZyBjaHUgZ2hpIGRpZXUga2llbiBuaHUgdmF5IHNlIGJp IGdhY2ggYm8uIERlbiBraGkgZHUgYW4gZGkgdmFvIHRyaWVuIGtoYWksIGNodSANCmRhdSB0dSBW aWV0IE5hbSBzZSB2byBjdW5nIGtobyB4dSBraGkgcm9pIHZhbyB0aW5oIGh1b25nIHBoYWkgY2hh cCBuaGFuIGNhYyB0aGlldCBiaSANCmtlbSBjaGF0IGx1b25nIG1vdCBjYWNoIG1pZW4gY3Vvbmcu DQoNClZpIGNodXllbiBnaWEgZ2lhbSBzYXQga3kgdGh1YXQgdGFpIG1vdCBkdSBhbiBuaGlldCBk aWVuIGNoaWEgc2UsIGNhbiBjdSBkZSBnaWFtIHNhdCBjaGF0IA0KbHVvbmcgdGhpZXQgYmkgbmhh cCBjaG8gZHUgYW4gY2hpIGNvIGR1eSBuaGF0IDEgdG8gZ2lheSBkbyBuaGEgdGhhdSBjdW5nIGNh cCB2b2kgdGlldSBkZSAgDQoiUVVBTElUWSBDRVJUSUZJQ0FURSIsIGdvaSBsYSBwaGlldSBjaGF0 IGx1b25nLiBOaHVuZywgaGluaCB0aHVjIHRyaW5oIGJheSB2YSAgbm9pIA0KZHVuZyB0aG9uZyB0 aW4gbGFpIHJhdCBzbyBzYWkuDQoNCk8gdG8gcGhpZXUgY2hhdCBsdW9uZyBuYXksIGNoaSBjbyB0 ZW4gdGhpZXQgYmksIG5oYSBtYXkgc2FuIHh1YXQsIG1hIHNvIGRvbmcgZ29pLCBtYSBzbyANCmRh dCBoYW5nIHZhIGRvbmcgY2h1IGRlIHRoaWV0IGJpIGRhIGRhdCBjaHVhbiBjdWEgbmhhIG1heS4u Liwga2hvbmcgY28gdGhvbmcgdGluIGNhbiBjdSANCnRoZW8gbW90IHRpZXUgY2h1YW4gcXVvYyB0 ZSwgcXVvYyBnaWEgbmFvLiBQaGFuIGt5IHhhYyBuaGFuIHBoaWV1LCBsdWMgbGEgZ2lhbSBkb2Mg bmhhIA0KbWF5IG8gVHJ1bmcgUXVvYywgbHVjIGxhIG1vdCBjYW4gYm8gdGhheSBtYXQgZ2lhbSBk b2Mga3kuDQoNClZpIGt5IHN1IHRhaSBkdSBhbiBuYXkgbmhhbiBkaW5oLCBjYWMgcGhpZXUgbmF5 IGdpb25nIG5odSBwaGlldSB4dWF0IHh1b25nLiBObyBkb24gZ2lhbiANCnRvaSBtdWMgY2hhbmcg Y2FuIGluIHBoaWV1IG8gVHJ1bmcgUXVvYyBtYSBjbyB0aGUgaW4gcmEgbmdheSB0YWkgY29uZyB0 cnVvbmcgVmlldCBOYW0gDQpuaHUgbW90IGxvYWkgdmFuIGJhbiB0aG9uZyB0aHVvbmcuDQoNClRy b25nIGtoaSBkbywgaG9wIGRvbmcga3kgdm9pIG5oYSB0aGF1IFRydW5nIFF1b2MgdGh1b25nIGNo aSBnaGksIHRoaWV0IGJpIGRlbiBjb25nIA0KdHJ1b25nIHBoYWkgY28gInBoaWV1IGNoYXQgbHVv bmciLCBuaHVuZyBraG9uZyBtbyB0YSBybywgcGhpZXUgY2hhdCBsdW9uZyBheSBuaHUgdGhlIA0K bmFvLiBSb3QgY3VjLCBraGkgY2FjIHRhaSBsaWV1IGNodW5nIG5oYW4gY2hhdCBsdW9uZyBjaGkg dm9uIHZlbiBjbyB0aGUsIGNoaW5oIG5odW5nIA0Kbmd1b2kgZ2FjIGN1YSB2ZSBjaGF0IGx1b25n IGR1IGFuIHRybyBuZW4gdHUgbXUsIGJvIHRheSBkZSB0aGFtIGRpbmggdGhpZXQgYmksIHZhIGNo aSBraGkgDQpuaGEgbWF5IHZhbiBoYW5oLCBwaGF0IHNpbmggdHJ1YyB0cmFjIG1vaSBiaWV0IHRo aWV0IGJpIC4uLiBrZW0gY28gbmFvLg0KDQpCYW4gZGF1LCBjYWMgZ2lhbSBzYXQgdmllbiBjbyB0 aGUgdHUgY2hvaSBraG9uZyBuZ2hpZW0gdGh1IHRoaWV0IGJpIGtlbSBjaGF0IGx1b25nLCANCm5o dW5nIHJvaSB4YXkgcmEgdHJhbmggbHVhbiB2b2kgbmhhIHRoYXUgdmEgbmh1bmcgYXAgbHVjIHR1 IG5oaWV1IHBoaWEuLi4gY29uZyB2b2kgdmllYyANCm5oYSBtYXkgbGFpIHZheSB2b24gY3VhIGNo aW5oIFRydW5nIFF1b2MsIGNhYyBnaWFtIHNhdCBreSB0aHVhdCBjdWEgVmlldCBOYW0gc2UgYnVv YyANCiJwaGFpIiBuZ2hpZW0gdGh1IGNvbmcgdHJpbmggZHUgY2h1YSBkYXQgeWV1IGNhdS4gQm9p IHRoZW8gdmkgY2h1eWVuIGdpYSBuYXksIG5ldSBraG9uZyANCm5naGllbSB0aHUgdGhpZXQgYmks IHZhbiBkZSBnaWFpIG5nYW4gdm9uIGN1YSBkdSBhbiBjdW5nIGdhcCBraG8ga2hhbi4NCg0KVGh1 YyB0ZSBuYXkgY3VuZyBkYSB4YXkgcmEgdm9pIG5oaWV0IGRpZW4gQ2FvIE5nYW4gY2FjaCBkYXkg MyBuYW0uIE1hYyBkdSBuZ2hpZW0gdGh1IA0KYmFuIGdpYW8gY2hvIGNodSBkYXUgdHUgcm9pLCBu aHVuZyBuaGEgbWF5IG5heSBkYSBwaGFpIGhvYXQgZG9uZyB0cm9uZyB0aW5oIHRyYW5nIHZ1YSAN CmNoYXksIHZ1YSBzdWEgY2h1YSwgY2FpIHRpZW4gdGllcC4NCg0KVHVuZyB0cmEgbG9pIHRyZW4g VkVGLCBWdSB0cnVvbmcgVnUgQ29uZyBuZ2hpZXAgbmFuZywgQm8gQ29uZyBUaHVvbmcgY2hvIHJh bmcsIHBoYWkgDQp0YW5nIGN1b25nIGtoYXUgZ2lhbSBzYXQgdGhpZXQgYmkgY3VhIFRydW5nIFF1 b2MgZGVuIGNvbmcgdHJ1b25nLCBuaHVuZyBuaHVuZyBjYXUgDQpjaHV5ZW4gdHJlbiBkYSBjaG8g dGhheSwga2hpIGNodSBkYXUgdHUgbGFpIGxhIG5ndW9pIGRpIHZheSBjdWEgcGhpYSBudW9jIG5o YSB0aGF1IHRoaSBtb2kgDQpzdSB0aGF0IGtoby4gVmllYyBuaGFuIGJhbiBnaWFvIG5oYSBtYXkg ZGllbiBoYXkga2hvbmcgZGEgYmllbiB0aGFuaCBjYXUgY2h1eWVuIHRybyBkaSANCm1hYyBudWks IHRybyBsYWkgbWFjIHNvbmcuIA0KDQpodHRwOi8vdm5yNTAwLnZpZXRuYW1uZXQudm4vY29udGVu dC5hc3B4P2lkPTkwOSBQaGFtIEh1eWVuIDgvNC8yMDEwIDEyOjMxOjM5IFBNIChHTVQrNykNCg0K IlJhIHJpYSIsIGRvaSB2aWVjIGtoaSBUcnVuZyBRdW9jIHRydW5nIHRoYXUgDQogDQpOZXUgbmh1 IGNhYyBudW9jIEc3IGxhbSB0b25nIHRoYXUsIG5ndW9pIFZpZXQgTmFtIGNvbiBjbyAzMCUga2hv aSBsdW9uZyBjb25nIHZpZWMgDQpkZSBsYW0sIGNvbiBraGkgVHJ1bmcgUXVvYyBsYW0gdG9uZyB0 aGF1LCBkb2FuaCBuZ2hpZXAgVmlldCBOYW0gcmEgcmlhIGhldCAtIG9uZyANCk5ndXllbiBWYW4g VGh1LCBDaHUgdGljaCBIaWVwIGhvaSBjbyBraGkgVmlldCBOYW0gdHJhbiB0cm8sIHRyYW8gZG9p IHZvaSBQViBEaWVuIGRhbiANClZOUjUwMC0gVmlldE5hbU5ldC4NCg0KVHUgbmFtIDIwMDgsIEhp ZXAgaG9pIG5heSBkYSAieG9pIiBsZW4gdmFuIGRlIGNhbiB4ZW0geGV0IGxhaSBjbyBjaGUgZGF1 IHRoYXUgaGllbiBuYXkgDQp0cnVvYyB0aW5oIHRyYW5nIGRlIG5oYSB0aGF1IFRydW5nIFF1b2Mg byBhdCBjaGllbSBsaW5oIHRoaSB0cnVvbmcgdGhhdSBjYWMgY29uZyB0cmluaCANCmRhdSB0dSBj b25nIG5naGllcCB2YSBuYW5nIGx1b25nIG8gVmlldCBOYW0uIFR1eSBuaGllbiwgc2F1IG5oaWV1 IHZhbiBiYW4gdmEgdHJpbmggYmF5IA0KeSBraWVuIHRydW9jIENoaW5oIHBodSwgY2F1IGNodXll biBuYXkgdmFuIGNodWEgZHVvYyBjbyBxdWFuIGNodWMgbmFuZyBxdWFuIHRhbSB4ZW0gDQp4ZXQg dGhhdSBkYW8uDQoNCk5oYSB0aGF1IFRydW5nIFF1b2MgcmF0IG11dSBtZW8gZGUgZG9pIHBobyB2 b2kgZG9hbmggbmdoaWVwIFZpZXQgTmFtLiBIbyBiaWV0IHRhIA0KbGFtIGR1b2MgdGh1bmcsIGxv IG51bmcsIGJpbmggYmUsIHRoaSBobyBjaG8gZ2lhIGN1YyB0aGFwLCAxOC4wMDAtMTkuMDAwIGRv bmcva2csIGJhbiANCnRoYW4gbXVhIHRoZXAgZGEgMTUuMDAwLTE2LjAwMCBkb25nL2tnIHJvaSB0 aGkgY29uIGRhdSBjbyB0aG9pIGdpYSBkby4gUm8gcmFuZywgY2h1IHRoYXUgDQpUcnVuZyBRdW9j IGtob25nIG11b24gc3UgZHVuZyB0aGF1IHBodSBWaWV0IE5hbS4gTmh1bmcgY2FpIGdpIG1hIHRh IGxhbSBkdW9jIHRoaSANCmhhIGdpYSBoZXQgY28sIGtoaWVuIHRhIGtob25nIGNhbmggdHJhbmgg bm9pLiBEYXkgbGEgbW90IGxvYWkgcGhhIGdpYSBtYSBjaHVuZyB0YSBiaWV0IHJvLCANCm5odW5n IGtob25nIGNvIGNvIGNoZSBuYW8sIG1vdCBkb2kgc2FjaCBuYW8gY2EuIA0KDQpEb2FuaCBuZ2hp ZXAgVmlldCBOYW0gcmEgcmlhDQoNCi0gVGh1YSBvbmcsIHNhdSBXVE8sIHRvbmcgdGhhdSBUcnVu ZyBRdW9jIG1vaSBidW5nIG5vLiBPbmcgY28gY2FtIG5oYW4gdGhlIG5hbyB2ZSANCnN1IGtoYWMg YmlldCBjdWEgY2FjIGdvaSB0aGF1IFRydW5nIFF1b2MgdmEgY2FjIG51b2MgRzcsIE5oYXQgQmFu IHRydW9jIGRvPw0KDQotIFRydW9jIGtoaSB0YSB2YW8gV1RPIHRoaSBwaGFuIGxvbiBjYWMgZHUg YW4gZGllbiwgeGkgbWFuZyBkZXUgbGEgc2FuIHBoYW0gY3VhIGNhYyANCm51b2MgRzcsIHZpIGR1 IG5odSB4aSBtYW5nIEhvYW5nIFRoYWNoLCBTb25nIEdpYW5oLCBOZ2hpIFNvbiwgU2FvIE1haSwg Y2FjIG5oYSBtYXkgDQpuaGlldCBkaWVuIFBodSBNeSwgUGhhIGxhaSAxLCBQaGEgTGFpIDIgbmh1 bmcgY2h1bmcgdGEgY28gdmllYyBsYW0uIA0KDQpUb2kga2hhbmcgZGluaCByYW5nLCBjYWMgbmhh IHRoYXUgY2hhdSBBdSwgTmhhdCBCYW4sIGhvIGNvIHRoZSBraGFpIHRoYWMgdHJpZXQgZGUgdmll YyANCmdpYW8gY2hvIGNhYyBuaGEgdGhhdSBwaHUgVmlldCBOYW0gY2hlIHRhbyBzbyBsdW9uZyBs b24ga2V0IGNhdSB0aGVwIHZhIHRoaWV0IGJpIHBoaSB0aWV1IA0KY2h1YW4uIFZvaSBjYWMgZG9p IHRhYyBuYXksIGNoaSBpdCByYSwgY2h1bmcgdGEgY28gY29uZyBhbiB2aWVjIGxhbSwgY2hpZW0g ZHVvYyBraG9hbmcgDQozMCUga2hvaSBsdW9uZyB0cmllbiBraGFpIGdvaSB0aGF1IEVQQy4NCg0K U2F1IFdUTywgbmhhIHRoYXUgVHJ1bmcgUXVvYyBvIGF0IHZhbyB2YW8gdGhpIGxhcCB0dWMsIGNo dW5nIHRhIGR1bmcgbmdvYWkgcmlhIGhldCB2YSANCm1hdCB2aWVjLiBIbyBraG9uZyBoZSBsYW0g bmh1IEc3LiBLaGkgVHJ1bmcgUXVvYyB0aGFuZyB0aGF1IHRoaSBsYW8gZG9uZyBobyBkZW0gc2Fu ZywgDQpzYW4gdmF0IGhvIGNodXllbiBzYW5nLCBidSBsb25nIG9jIGl0IGN1bmcgbGEgY3VhIGhv LiBDb24gVmlldCBOYW0gdGhpIGR1bmcgbmdvYWkgDQpuaGluLCBtYWMgZHUgZG8gbGEgdGhpIHRy dW9uZyBjdWEgbWluaC4gDQoNCjEwIG5oYSBtYXkgbmhpZXQgZGllbiB0aGFuIDMwME1XIGRldSBk byBUcnVuZyBRdW9jIGxhbSwgZG9hbmggbmdoaWVwIGNodW5nIHRhIGNoaSANCmR1bmcgbmdvYWkg dmEgdGhpZXUgdmllYy4gTmd1b2kgVHJ1bmcgUXVvYyB0dSBkYXUgZGF1IGNodXllbiB2ZSBsYW0s IGRhbmggcGhhbiB2aWVjIA0KY3VhIGxhbyBkb25nIHRyb25nIG51b2MsIHRyb25nIGtoaSwgY2h1 bmcgdGEgcGhhaSBkaSB4dWF0IGtoYXUgbGFvIGRvbmcuIFRvaSB0aGF5IHJhdCBsYSANCmx1bmcu DQoNCi0gTmh1IHZheSwgdmllYyBjYWMgdG9uZyB0aGF1IFRydW5nIFF1b2Mga2hvbmcgc3UgZHVu ZyBsdWMgbHVvbmcgdHJvbmcgbnVvYyBjdWEgdGEgbGEga2hvbmcgZHVuZyBxdWkgZGluaD8NCg0K LSBDaHVuZyB0YSBxdWFuIGx5IG5oYSB0aGF1IG51b2MgbmdvYWkgY28gbmh1bmcgY2FpIGtob25n IHJvIHJhbmcuIFRoZW8gUUQgODcgbmdheSANCjE5LzUvMjAwNCBjdWEgVGh1IHR1b25nLCB0b25n IHRoYXUgbnVvYyBuZ29haSBwaGFpIHRodWMgaGllbiBxdWkgZGluaDogdmllYyB0dXllbiBsYW8g DQpkb25nIG51b2MgbmdvYWkgdGhpIGNoaSBkYW5nIGt5IGR1YSB2YW8gVmlldCBOYW0gbmh1bmcg Y2h1eWVuIGdpYSBxdWFuIGx5IGtpbmggdGUga3kgDQp0aHVhdCB2YSBuZ3VvaSBjbyB0YXkgbmdo ZSBjYW8gbWEgVmlldCBOYW0ga2hvbmcgZHUga2hhIG5hbmcgZGFwIHVuZy4gDQoNCkRpZW0gcXVh biB0cm9uZyB0aHUgaGFpIGxhIHRvbmcgdGhhdSBudW9jIG5nb2FpIHBoYWkgdGh1YyBoaWVuIGhv cCBkb25nIGxpZW4gZGFuaCBkYSBreSANCmtldCB2b2kgbmhhIHRoYXUgVmlldCBOYW0sIGhvYWMg dGh1YyBoaWVuIGNhYyBjYW0ga2V0IHN1IGR1bmcgbmhhIHRoYXUgVmlldCBOYW0gZGEgDQpkdW9j IHF1aSBkaW5oIGtoaSBkdSB0aGF1LCBjaGFvIHRoYXUuIA0KDQpUb2kgY3UgdGhhYyBtYWMgbW90 IGRpZW0gbGEsIHRhaSBzYW8gdHJvbmcgY2FjIGR1IGFuIG1hIFRydW5nIFF1b2MgdGhhbmcgdGhh dSwga2hvbmcgdGhheSBhcCBkdW5nIGRpZW0gY3VhIFFEODcgdHJlbj8NCg0KVG9pIGtob25nIGhp ZXUgdGFpIHNhbywgcXVpIGNoZSBkbywgY2h1bmcgdGEgbGFpIGtob25nIGRlIGNhcCBkZW4gdm9p IGNhYyBuaGEgdGhhdSB0cm9uZyANCmNhYyBob3AgZG9uZyB0b25nIHRoYXUgbWEgY2h1IGRhdSB0 dSBkYSBreSB2b2kgbmhhIHRoYXUgVHJ1bmcgUXVvYywgaGF5IGxhIHZpIGFwIGx1YyANCmdpYSBy ZSAgcm9pIHRoaSBjaHVuZyB0YSBjaGFwIG5oYW4/IFZhIHRvbmcgdGhhdSBsYXkgY28gcmFuZywg bmFuZyBsdWMgbGFvIGRvbmcgY2h1bmcgdGEgDQpraG9uZyBkYXAgdW5nPyBOaHVuZyBybyByYW5n LCBjYWMgbmhhIG1heSBkaWVuIG1hIFRydW5nIFF1b2MgbGFtIGN1bmcgY2hhbSB0aWVuIA0KZG8s IGRlbiBuYXkgMi0zIG5hbSBuaHUgbmhpZXQgZGllbiBIYWkgUGhvbmcsIFF1YW5nIE5pbmg/DQoN CkNhaSBkbywgY2h1bmcgdGEgY2h1YSB2YWNoIHJhIGR1b2MgbW90IGNhY2ggIGNvbmcga2hhaSwg c29uZyBwaGFuZyB2b2kgY2FjIG5oYSB0aGF1IA0KVHJ1bmcgUXVvYy4gRGF5IGxhIGRpZXUgbWEg dG9pIHRoYXkgcmF0IHRoYWMgbWFjLiANCg0KQ3VuZyBtb3QgY29uZyBzdWF0IG5oaWV0IGRpZW4g MzAwTVcsIG5odW5nIHRoaWV0IGJpIGNoaW5oIG5odSBsbyBob2kuLi4gdGhpIGN1YSBHNyANCnBo YWkgaG9uIFRydW5nIFF1b2MuIENvbiBjYWMga2V0IGNhdSB0aGVwLCB0aGlldCBiaSBwaGkgdGll dSBjaHVhbiwgbWEgY2FjIG51b2MgRzcgZGEgDQpnaWFvIGxhaSBjaG8gdGhhdSBwaHUgVmlldCBO YW0gbGFtIHRoaSBjaGFjIGNoYW4sIHRvdCBob24gc28gdm9pIGNhYyB0aGlldCBiaSBtYSBUcnVu ZyANClF1b2MgaGllbiBkYW5nIGRlbSB2YW8gbGFtLg0KDQotIFR1eSBuaGllbiwgdHJvbmcgY3Vv YyBjYW5oIHRyYW5oIG5heSwgcGhhaSBjaGFuZywgZG8gbmFuZyBsdWMgY3VhIG5oYSB0aGF1IFZp ZXQgTmFtIGtlbT8gDQoNCi0gVG9pIGtoYW5nIGRpbmggbGEgY2h1bmcgdGEgbGFtIGR1b2MuIFRy dW9jIGRheSwgZG9hbmggbmdoaWVwIFZpZXQgTmFtIGRldSBkYSB0aGFtIA0KZ2lhIHNhdSB0cm9u ZyBjYWMgZ29pIHRoYXUgbWEgRzcgbGFtLCB2aSBkdSBuaHUgbmhpZXQgZGllbiBQaGEgTGFpIDIg ZG8gU3VtaXRvbW8gZHVuZyANCmRhdSB0byBob3AgbmhhIHRoYXUsIGRldSB0aHVlIG5oYSB0aGF1 IFZpZXQgTmFtIG5odSBDb21hLCBMaWxhbWEuLi4gc2FuIHh1YXQgY2FjIHNhbiANCnBoYW0gY28g a2hpIHZhIHBoaSB0aWV1IGNodWFuIGxvIGhvaS4gDQoNCkhvYWMgbmhpZXQgZGllbiBQaHUgTXks IG5oYSB0aGF1IE1pdHN1YmlzaGkgdGh1ZSB0b2FuIGJvIHBoYW4gY2hlIHRhbyB0aGlldCBiaSBj byBraGksIA0Ka2V0IGNhdSB0aGVwLCBjYWMgYm9uIGJlIGxvbiBkZXUgZG8gQ29tYSwgY29uIGxh cCBkYXQgZG8gTGlsYW1hLCBkYW0gYmFvIHRpZW4gZG8gdmEgY2hhdCANCmx1b25nIGNvbmcgdHJp bmguIA0KDQpSbyByYW5nLCBjaHVuZyB0b2kgZGEgY28gdHJ1YyB0aWVwIGt5IGR1b2MgY2FjIGRv biB0aGF1IG5odSB0aGUgdmEga2hpIGxhbSB2aWVjIHZvaSBHNywgDQpjaHVuZyB0YSBob2MgaG9p IGR1b2Mga2luaCBuZ2hpZW0gcXVhbiBseSBjdWEgaG8uIA0KDQpDb24gbmh1IGJheSBnaW8sIFRy dW5nIFF1b2MgbGFtIHRoYXUgbGEgdGEgY2hpdSBjaGV0ISANCg0KLSBUaHVhIG9uZywgbm9pIHZh eSwgc3UgeHVhdCBoaWVuIHRvbmcgdGhhdSBUcnVuZyBRdW9jIGRhbmcgZ2F5IGtobyBjaG8gbmdh bmggY28ga2hpIFZpZXQgTmFtPyANCg0KLSBWdWEgcm9pLCBjaHVuZyB0YSBjbyBOUSAxOCBub2kg dmUgbm9pIGRpYSBob2EsIHRvaSB0cmFuIHRybyBsYW0sIG5odW5nIG5ldSBraG9uZyBsYW0gdGhp IGNvIGtoaSB0aGkgY2hldCBkb2kuIA0KDQpOYW0gbmdvYWksIHhheSBsYXAsIGNvIGtoaSBWaWV0 IE5hbSBjb24gc29uZyBkdW9jIG5obyBkdSBhbiBnb2kgZGF1IGN1YSBuYW0gMjAwOCANCm5odW5n IG5hbSBuYXkgdGhpIGtob25nIGNvIHZpZWMuIE5oaWV1IGNvbmcgdHkgeG9heSBzbyBraG9uZyBj byB2aWVjIGRlIGxhbS4gVHJvbmcgDQpraGkgbW90IG5hbSwgY2h1bmcgdGEgZGF1IHR1IHZhaSBj aHVjIHR5IGRlIG11YSBzYW0gdGhpZXQgYmkgbGFtIG5oYSBtYXksIG5odW5nIGNodW5nIA0KdGEg a2hvbmcgdGFjaCByYSBkdW9jLiBWYSBuaHVuZyBjYWkgbWEgY2h1bmcgdGEgY3UgZ2lhbyB0b25n IHRoYXUgVHJ1bmcgUXVvYyBtb3QgZ29pIA0KbGEgY2h1bmcgdGEgbWF0IHRyYW5nLiANCg0KLSBU aGVvIG9uZywgcXVhbiBkaWVtIGN1YSBDaGluaCBwaHUgdHJvbmcgdmllYyBuYXkgY2FuIG5odSB0 aGUgbmFvPyANCg0KLSBDaGluaCBwaHUgVmlldCBOYW0gcGhhaSBuZ2hpIGRlbiBuaHVuZyBjbyBj aGUgZGUgY2FjIHRvbmcgdGhhdSBuYXkgcGhhaSBzdSBkdW5nIGx1YyANCmx1b25nIGxhbyBkb25n IHRyb25nIG51b2MgY3VuZyBuaHUgbHVjIGx1b25nIGNoZSB0YW8gY28ga2hpIHRyb25nIG51b2Mu IA0KDQpodHRwOi8vdm5yNTAwLnZpZXRuYW1uZXQudm4vY29udGVudC5hc3B4P2lkPTg5OSBCYW5n IER1b25nICh0b25nIGhvcCkgOC8zLzIwMTAgNTozNzoyOCBQTSAoR01UKzcNCg0KVGh1IHR1b25n OiBUcnVuZyBRdW9jIHRydW5nIHRoYXUsIG5obyBjaHV5ZW4gY2hpZWMgeGUgbWF5IA0KDQpCYW4g Y2h1eWVuIGNoYXQgbHVvbmcgY3VhIGNhYyBkdSBhbiBjb25nIHRyaW5oIG1hIFRydW5nIFF1b2Mg dGhhbmcgdGhhdSB0YWkgVmlldCBOYW0sIA0KbmhpZXUgZG9jIGdpYSBWTlI1MDAgZGEgdmkgcmFu ZywgZGlldSBkbyBnaW9uZyBuaHUgY2h1eWVuIGRpIHNvIG1vdCBjaGllYyBtYXkgVHJ1bmcgDQpR dW9jIHZhIHhlIG1heSBOaGF0Lg0KDQpTYXUgYmFpIGJhbyAiVHJ1bmcgUXVvYyB0cnVuZyB0aGF1 IDkwJSBjYWMgZHUgYW4gdGh1b25nIG5ndW9uIiBjdWEgdGFjIGdpYSBQaGFtIA0KSHV5ZW4gZGFu ZyB0cmVuIERpZW4gZGFuIFZOUjUwMCBob20gMi84LCBuaGlldSBiYW4gZG9jIGtoYXAgbm9pIGRh IGd1aSBlbWFpbCBiYXkgdG8gDQp5IGtpZW4gdmEgdHJvbmcgZG8sIGtob25nIGl0IGJhbiBkb2Mg Y2hvIGJpZXQsIGJhbiB0aGFuIHR1bmcgbGEga3kgc3UsIGNodXllbiBnaWEgbGFtIHZpZWMgDQps YXUgbmFtIHRhaSBjYWMgY29uZyB0cmluaCBtYSBUcnVuZyBRdW9jIGxhbSB0b25nIHRoYXUgRVBD LiANCg0KVHJ1bmcgUXVvYyB0cnVuZyB0aGF1OiByZSBtYSBraG9uZyBjaHVuZyBob2EgZGF0DQoN CkJhbiBkb2MgdHViaSBob2FuZyAoZW1haWw6IGguLi5AeWFob28uZGUpIGd1aSB0aHUgY2hpYSBz ZTogIk5ldSBjaGkgZG9uIHRodWFuIGxhIHZpIGx5IA0KZG8ga2luaCB0ZSB0aGkgdHJ1b25nLCBu aHUgdmllYyBhaSBibyB0aGF1IHJlIHRoaSB0aGFuZyBkZSBjaG9uIG5oYSB0aGF1IFRydW5nIFF1 b2MgdGhpIHRvaSANCnRoYXksIGNoYSByZSBjaHV0IG5hbyEiLg0KDQoiTWluaCB0aGEgbXVhIG1v dCBjaGllYyB4ZSBkYXQgaG9uIG1vdCB0aSBuaHVuZyBsYSBoYW5nIHRvdCBjdWEgQW5oLCBQaGFw LCBEdWMsIE15LCANCk5oYXQuLi55ZW4gdGFtIHhhaSBsYXUgZGFpLCBjb24gaG9uIG11YSBjaGll YyB4ZSByZSBuaHVuZyBjYSB0YW5nLCBsYWMgaGF1LCBoYXkgc3VhIGNodWEgDQp0b2kgbHVpLi4u Y2hhbSBnaWFvIGhhbmcgY3VhLi4uVHJ1bmcgUXVvYyIsIGRvYyBnaWEgdHViaWhvYW5nIGdpYWkg YmF5Lg0KDQpCYW4gZG9jIG5heSB0cmFuIHRybyB2aWV0OiAiQmFuIG5naGkgZGlldSBnaSBzZSB4 YXkgcmEgdHJvbmcgbmF5IG1haSB0aGFtIGNoaSBsYSB0cm9uZyANCm5nYXkgaG9tIHF1YT8gQm9p IHZpIHJpZW5nIGNodXllbiBjaGFtIHRpZW4gZG8gZGEgbGEgdGhpZXQgaGFpIHRyb25nIG5nYXkg aG9tIHF1YSByb2kgDQpjaHUgY2hhIG5vaSBkYXUgY2hvIHhhIHhvaSEiLg0KDQpUYW0gc3UgbmF5 IGN1YSAidHViaSBob2FuZyIgbmhhYyBjaHVuZyB0YSBuaG8gbGFpIHRob2kgZGFpIGhvYW5nIGtp bSBob2kgZGF1IG5odW5nIA0KbmFtIDIwMDAsIGtoaSBraGFwIFZpZXQgTmFtIHRyYW4gbmdhcCB4 ZSBtYXkgVHJ1bmcgUXVvYyBjbyBnaWEgY2hpIGJhbmcgNS02IHRyaWV1IA0KZG9uZy9jaGllYywg cmUgYmFuZyAxLzIgZGVuIDEvMyBjdWEgeGUgbWF5IFRoYWkuIFZhIHJvaSBzYXUgZG8sIG5odW5n IGNoaWVjIHhlIG5heSBjaGkgDQpjaGF5IGR1b2MgZGFtIHRoYW5nLCBtb3QgbmFtIGxhLi4uIGhv bmcuIA0KDQpSYXQgdGhhbmcgdGhhbiwgZG9jIGdpYSBRdWFuZy1WTlRLIChxdWFuZy4uLkB2aW5h dG9rZW4uY29tKSwgdGFpIFRQLkhDTSB2aWV0OiANCiJDaHVuZyB0YSBwaGFpIHhhYyBuaGFuIHJh bmcsIGNvbmcgbmdoZSBUcnVuZyBRdW9jIGR1bmcgc2F1IGNhYyBudW9jIEc3LCBNeSB2YSANCk5o YXQgcmF0IHhhLiBUb2kgZSByYW5nIHNhdSAxMC0xNSBuYW0gc2F1IG1heSBtb2MgVHJ1bmcgUXVv YyB0cm8gdGhhbmggcGhlIGxpZXUsIHRhbmcgDQpjaGkgcGhpIHZhbiBoYW5oIHZhIGJhbyB0cmks IGhpZXUgcXVhIHRoYXAuLi4NCg0KQm9pIHRoZSwgbmV1IGN1IHRpbmggdHJhbmcgaGllbiBuYXks IGRhdSB0aGF1IG1hIHhldCB2ZSBnaWEgbGEgaG9hbiB0b2FuIGtob25nIGR1bmcuIA0KQ2h1bmcg dGEgcGhhaSB4ZXQgY2EgdmUgY29uZyBuZ2hlLCB0dW9pIHRobyB0aGlldCBiaSBjb25nIG5naGUs IGNoaSBwaGkgdmFuIGhhbmgsIGJhbyB0cmkgDQp2YSBjaHVuZyB0YSBuZW4gY2hpYSBib3QgZGUg Y2hvbiBjYWMgbmhhIHRoYXUgcGh1b25nIFRheSwgY29uZyBuZ2hlIGNhbyBob24sIGJhbiBkb2Mg DQpRdWFuZy1WTlRLIGdvcCB5LiANCg0KaHR0cDovL3ZucjUwMC52aWV0bmFtbmV0LnZuL2NvbnRl bnQuYXNweD9pZD05NDkgUGhhbSBIdXllbiA4LzgvMjAxMCAxMjo1NzoxNCBBTSAoR01UKzcpDQoN CkRvaSBzYWNoIG5hbyBjaG8gYmkga2lwICJnaWEgcmUiIGN1YSBUcnVuZyBRdW9jPyANCg0KWG90 IHhhIHRoYXksIHN1IG5vIGx1YyBjdWEgY2FjIGRvYW5oIG5naGllcCAoRE4pIGNvIGtoaSwgeGF5 IGxhcCBWaWV0IE5hbSB2YSB2aWVjIGJhbiANCmtlIHNhY2ggdW5nIHBobyB2b2kgYmkga2lwIGdp YSByZSBjdWEgbmhhIHRoYXUgVHJ1bmcgUXVvYyBsYWkgZ2FwIGtobyBuZ2F5IHR1IGNoaW5oIA0K Im9uZyB0aHVlIiB2YSBsdWF0IERhdSB0aGF1IGhpZW4gaGFuaC4NCg0KS2hpIGNoaW5oIHNhY2gg dGh1ZSAiYm8gcm9pIiBuZ3VvaSBuaGENCk5vaSBjaHV5ZW4gcmUgLSBkYXQsIG9uZyBUcmFuIFZh biBRdWFuZywgVG9uZyBnaWFtIGRvYyBDb25nIHR5IHRoaWV0IGJpIGRpZW4gRG9uZyANCkFuaCBn aWFpIGJheTogIlRob2kga3kgdHJ1b2MsIG1heSBiaWVuIGFwIDIyMGtWIGNvIGdpYSB0cnVuZyBi aW5oIHRyZW4gdGhlIGdpb2kgbGEgMiw3IA0KdHJpZXUgVVNEL21heSwgZ2lhIFRydW5nIFF1b2Mg bGEgMiw0IHRyaWV1IFVTRC9tYXkgdmEgY2h1bmcgdG9pIGNoaSBibyBnaWEgdGhhdSBjbyAxLDkg DQp0cmlldSBVU0QvbWF5LiBTYXUgbmF5LCBjaHVuZyB0b2kgZ2lhbSB4dW9uZyAxLDcgdHJpZXUg VVNEL21heSByb2kgMSw0IHRyaWV1IFVTRCB2YSB2YW4gdHJ1bmcgdGhhdS4iIA0KDQpOaGlldCBk aWVuIFF1YW5nIE5pbmggMSBnYXAgbmhpZXUgc3UgY28NCg0KIk5odW5nIG5heSwgY2h1bmcgdG9p IGRhIGdpYW0geHVvbmcgMSwzIHRyaWV1IFVTRC9tYXkgcm9pIHZhIHZhbiBraG9uZyB0cnVuZyB0 aGF1LCANCmJvaSBjbyBvbmcgVHJ1bmcgUXVvYyBuaGF5IHZhbywgY29uIGJvIGdpYSB0aGFwIGhv biBudWEuIDIwIGRvbiB2aSBzYW4geHVhdCB0aGlldCBiaSANCmRpZW4gZGV1IG5odSBjaHVuZyB0 b2ksIGNhbmcgcmEgZGUgdGltIHZpZWMsIHRpbSBkb24gaGFuZywiIG9uZyBRdWFuZyBjaGlhIHNl Lg0KDQoiTmd1b2kgdGEgaG9pIHRhaSBzYW8gbWluaCBraG9uZyBsYW0gcmUgaG9uIFRydW5nIFF1 b2MgZGk/IE5odW5nLCBsYW0gc2FvIG1hIHJlIGNobyANCmR1b2MiLCBvbmcgUXVhbmcgdGhvdCBs ZW4uDQoNCkxpZXQga2UgcmEgdGhpIHRoYXk6IFZvaSB0aGlldCBiaSBkaWVuLCB4dWF0IGtoYXUg Y3VhIFRydW5nIFF1b2MgZHVvYyBobyB0cm8gaG9hbiB0aHVlIHRvaSANCjEzJSwgbGFpIHZheSBu Z2FuIGhhbmcgY2hpIDYlIHZhIGNvbmcgY2FjIHV1IGRhaSBraGFjLCBuaGEgdGhhdSBUcnVuZyBR dW9jIGR1b2MgdG9pIA0KMjctMjglIGhvIHRyby4gRG8gbGEgY2h1YSBrZSwgVHJ1bmcgUXVvYyBj b24gY28gY2hpbmggc2FjaCB0aHVvbmcgY2hvIHR1bmcgbmhhIHh1YXQgDQpraGF1IGtoaSBjbyB0 aGFuaCB0aWNoLCBjdSB0aGUgYmFuZyBjYW4gaG8sIHhlIGhvaS4gDQoNClNvIHNhbmggcmEsIG8g dGEsIGxhaSB2YXkgbmdhbiBoYW5nIHRvaSAxMi0xNyUvbmFtLiBWYW8gV1RPLCB0aHVlIG5oYXAg a2hhdSB0aGlldCBiaSANCmRpZW4gZ2lhbSB4dW9uZyA1JS4gVm9pIHN1IGNoZW5oIGxlY2ggdXUg ZGFpIGRvIHRoaSBsYW0gc2FvLCBjaHVuZyB0b2kgdGhhbmcgbm9pPyIgb25nIFF1YW5nIHBoYW4g dGljaC4gDQoNCkNhdSBjaHV5ZW4gY3VhIG9uZyBRdWFuZyBuaHUgImdhaSBkdW5nIGNobyBuZ3Vh IiBjdWEgbmhpZXUgZG9hbmggbmdoaWVwIGtoYWMuIA0KDQpCYSBQaGFtIFRoaSBUaHUgSGEsIFBo byB0b25nIEdpYW0gZG9jIFRhcCBkb2FuIGRhdSBraGkgVmlldCBOYW0gKFBWTikgY3VuZyBidWMg DQp4dWMga2hhbmcgZGluaDogIlJpZW5nIHRodWUgbGEgdGEgdGh1YSByb2kiLg0KQmEga2U6ICJD aHVuZyB0b2kgbGFtIG1vdCBnaWFuIGtob2FuIGRhdSBraGkgZ2lhIDIwMCB0cmlldSBVU0QsIG5o dW5nIGRhIG1hdCA0MCB0cmlldSANClVTRCBsYSB0aHVlIG5oYXAga2hhdSB0aGlldCBiaSwgdGh1 ZSBWQVQgdmEgdGh1ZSB0aHUgbmhhcCBjYSBuaGFuIGNobyBjaHV5ZW4gZ2lhIG51b2MgDQpuZ29h aS4gVHJvbmcga2hpIGRvLCBkb24gdmkgY29uIGN1YSBQVk4gZGkgbXVhIG1vdCBnaWFuIGtob2Fu IG8gU2luZ2Fwb3JlIHZlIHRoaSANCmtob25nIG1hdCB4dSB0aHVlIG5hbywgdmEgZ2lhIGNoaSBj byAxODIgdHJpZXUgVVNEISBUdWMgbGEsIHR1IG1pbmggbGFtIG1hIGNvbiBkYXQgaG9uIA0KY2Eg ZGkgbmhhcCEgDQoNCiJDaGluaCBzYWNoIHRodWUgbmh1IHZheSB0aGkgRE4gVmlldCBOYW0gY2Fu aCB0cmFuaCBsYW0gc2FvIGR1b2MhIiwgYmEgSGEgbm9pLg0KDQpTb20gbGFwIG5nYXkgaGFuZyBy YW8ga3kgdGh1YXQNCg0KVmlldCBOYW0gdmFuIGRhbmcgdHJvbmcgcXVhIHRyaW5oIGNvbmcgbmdo aWVwIGhvYSBkYXQgbnVvYy4gVmEgdm9pIGNvIGNoZSBkYXUgdGhhdSANCnRoZW8gZ2lhIGhpZW4g bmF5LCBWaWV0IE5hbSBzZSB0cm8gdGhhbmggdGhpIHRydW9uZyB0aWV1IHRodSB0aGlldCBiaSBt YXkgbW9jIGN1YSBUcnVuZyANClF1b2MhIA0KDQpOaHVuZywgbm9pIGxvIGtob25nIGR1bmcgbGFp IG8gdmllYyBuaGFwIHNpZXUhIEx1YXQgRGF1IHRoYXUgaGllbiBoYW5oIGtob25nIHlldSBjYXUg DQp2ZSB4dWF0IHh1IHRoaWV0IGJpLiBDaGluaCBjaHUgZGF1IHR1IFZpZXQgTmFtIGN1bmcga2hv IGxvbmcga2llbSBzb2F0IG5vaSB2YW4gZGUgY2hhdCANCmx1b25nIHRoaWV0IGJpIGN1YSBjYWMg bmhhIHRoYXUgImdpYSByZSIgbmF5Lg0KDQpUYXAgZG9hbiBEYXUga2hpIFZpZXQgTmFtIGR1b2Mg Y29pIGxhICJkdW5nIGNhbSIga2hpIGdpYW8gbmhpZXQgZGllbiBOaG9uIFRyYWNoIGNobyANCkxp bGFtYSB0aHVjIGhpZW4NCkJhIEhhIGNoaWEgc2U6ICJDaHVuZyB0b2kgcmF0IG5nYWkgbmhhIHRo YXUgVHJ1bmcgUXVvYy4gRG9pIGtoaSwgbmhhIHRoYXUgVHJ1bmcgUXVvYyANCmR1bmcgdGhpZXQg YmkgdGhlbyB0aWV1IGNodWFuIGN1YSBobywgbWEgbWluaCBraG9uZyBuYW0gZHVvYywgdGlldSBj aHVhbiBjdWEgaG8gbGlldSBjbyANCm5nYW5nIGJhbmcgcXVvYyB0ZT8iLg0KDQpUcm9uZyBraGks IG5oaW4gY2FjaCBobyBtYW5nIHRoZW8gY2EgdGhpZXQgYmkgdmUgc2luaCBjb25nIG5naGllcCwg Y2EgbGFvIGNvbmcgZG9uIGRlcCANCnNhbmcgbyBkdSBhbiBjdWEgY2h1bmcgdG9pIG8gQ2EgTWF1 IGxhIGR1IHRoYXksIEROIGR1b2MgZ2lhIHJlIG5odW5nIHhhIGhvaSBsYWkgdGhpZXQgDQpuaGll dSwgYmEgSGEgZHVjIGtldC4NCg0KT25nIFRyYW4gVmFuIFF1YW5nIG5oYW0gdGluaDogQ28gdG9p IDUwLTYwJSBjYWMgZHUgYW4gbHVvaSBkaWVuIHRyb25nIHRvbmcgc28gZG8gNiANCmRlbiBuYXkg ZGEgInJvaSIgdmFvIHRheSBuaGEgdGhhdSBUcnVuZyBRdW9jLiBTbyB2b2kgdG9uZyBuaHUgY2F1 IHZvbiBsYSAxLDUgdHkgVVNELCANCmNodW5nIHRhIGRhIHBoYWkgbmhhcCBzaWV1IHR1IFRydW5n IFF1b2MgdG9pIDYwMC03MDAgdHJpZXUgVVNELg0KDQoiVHV5IG5oaWVuLCBkYW5nIG5nYWkgaG9u IGxhIG5ldSBtYWkga2lhLCBuaHVuZyB0aGlldCBiaSBtYXkgYmllbiBhcCBjdWEgVHJ1bmcgUXVv YyANCmhvbmcsIHRoaSByaWVuZyB2aWVjIG1hbmcgdmUgbnVvYyBzdWEgY2h1YSBkYSBsYSByYXQg dG9uIGtlbSwgbGFpIGRlIGJpIGhvIGJhdCBiaSB2YSANCmtob25nIGJpZXQgY2h1bmcgdGEgc2Ug cGhhaSBzdWEgbGF1IG5odSB0aGUgbmFvPyIuDQoNCkNhbmggYmFvIGN1YSBvbmcgUXVhbmcgbGEg Y3VuZyBiYXQgbmd1b24gdHUgY2hpbmggYmFpIGhvYyB2ZSBjYWMgc3UgY28gZGllbiBtYSBFVk4s IA0KVEtWIGRldSBkYSBxdWEgdGhhbSB0aGlhLCBuaHUgdmllYyBob25nIG1heSBiaWVuIGFwIDUw MGtWIG8gbmhhIG1heSBQaHUgTXksIHJvaSANCmNhYyBob25nIGhvYyBvIG5oaWV0IGRpZW4gSGFp IFBob25nLCBRdWFuZyBOaW5oIHZ1YSBxdWEuIEtob25nIGNoaSBsYW0gdGFuZyB0aGVtIGFwIA0K bHVjIHRoaWV1IGRpZW4sIGNodSBkYXUgdHUgVmlldCBOYW0gZGEgcGhhaSB0b24gbW90IGtob2Fu IGNoaSBwaGkga2hvbmcgbmhvIGRlIHRyYSBjaG8gDQpjYWMgY2h1eWVuIGdpYSBudW9jIG5nb2Fp ICJrZW8gc2FuZyIgZG9uZyBkYW8gZGUgc3VhIGNodWEuDQogDQpUcm9uZyBraGksIG5ldSBjYWMg bWF5IGJpZW4gYXAgZG8gbmV1IGxhIGN1YSB0cm9uZyBudW9jIHRoaSB2aWVjIHN1YSBjaHVhIGNo aSBtYXQgNzUgDQpuZ2F5IHZhIGdpYSB0aGFuaCBzdWEgcmUgaG9uIDcgbGFuLiANCg0KT25nIExl IFZhbiBLZXQsIFZ1IHBobyBWdSBLaW5oIHRlIGNvbmcgbmdoaWVwLCBCbyBLSERUIGNobyBiaWV0 OiAiVnVhIHJvaSwgY2h1bmcgDQp0b2kgY28ga2llbSB0cmEgY2FjIG5oYSBtYXkgbmhpZXQgZGll biBkbyBUcnVuZyBRdW9jIGxhbSB0aGkgaGF1IGhldCwgdGhpZXQgYmkgY2hpbmggDQpraG9uZyBo b25nIG1hIGhvbmcgbmhpZXUgbyB0aGlldCBiaSBwaHUgdHJvIG5odSB2YW4sIG9uZywgZHVvbmcg b25nLCBtYXkgbmdoaWVuLCB0aGFpIA0KeGkuIFZhLCBjaGluaCBuaHVuZyB0aGlldCBiaSBuYXkg byB0cm9uZyBudW9jIGN1bmcgZGEgc2FuIHh1YXQgZHVvYyIuDQogDQpEZSBuZ2FuIG5ndWEgc2Fu IHBoYW0ga2VtIGNoYXQgbHVvbmcgdGhpIHZpZWMgeGF5IGR1bmcgaGFuZyByYW8ga3kgdGh1YXQg cGhhaSBkdW9jIA0KZ2FwIHJ1dCB0aHVjIGhpZW4uIFRoZW8gb25nIE5ndXllbiBWYW4gVGh1LCBD aHUgdGljaCBIaWVwIGhvaSBjbyBraGkgVmlldCBOYW0sIGNodSANCmRhdSB0dSBjYW4geWV1IGNh dSBuaGEgdGhhdSBUcnVuZyBRdW9jIGNodW5nIG1pbmggbmFuZyBsdWMgZHV5IHR1LCBiYW8gZHVv bmcgY2hvIA0KdGhpZXQgYmkgY2hpbmgsIHBoYWkgY28gY28gc28gYmFvIGR1b25nIG8gVmlldCBO YW0sIGhvYWMgbGllbiBkb2FuaCB2b2kgRE4gVmlldCBOYW0uIA0KTmV1IGtob25nLCBob25nIHRo aWV0IGJpIGNoaW5oIG1hIG5oYSB0aGF1IGJhbyAxIG5hbSBtb2kgc3VhIHhvbmcgbGEgY2h1IGRh dSB0dSBWaWV0IA0KTmFtIGNoaXUgY2hldC4gDQogDQoiTGFtIHZheSBsYSBkZSBidW9jIGhvIHBo YWkgY28gZGF1IHR1IEZESSB2YW8gVmlldCBOYW0uIE5ldSBjaHVuZyB0YSBjdSBsYW0gbmh1IGhp ZW4gDQpuYXksIGhhbmcgcmFvIGt5IHRodWF0IGxvbmcgbGVvIHRoaSBjaGluaCBjb24gY2hhdSBj aHVuZyB0YSBzZSBraG8sIGNoaSBkaSBsbyBzdWEgY2h1YSANCnRob2kiLCBvbmcgVGh1IG5vaS4g DQogDQpWZSBsYXUgZGFpLCBjaGFjIGNoYW4gbHVhdCBEYXUgdGhhdSBzZSBwaGFpIHN1YSBkb2kh ICBPbmcgTGUgVmFuIEtldCBjaG8gaGF5LCBCbyBLSC0NCkRUIGRhbmcgbmdoaWVuIGN1dSBsYW0g c2FvIGRlIGxvYWkgYm8gInRpZXUgY2hpIGdpYSByZSIgdHJvbmcgZGF1IHRoYXUgdmEgY2hhYyBj aGFuLCB2aWVjIA0KbmF5IHNlIHBoYWkgdHJpZW4ga2hhaSB0cm9uZyBDaGluaCBwaHUga2hvYSB0 b2kuLy4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMzLzIw MTAwODE1MjIyNTM2LmFzcHggTWFpIEhhIDE1LzA4LzIwMTAgMjI6MjUgDQoNClRodSB0dW9uZzog SGUgbHV5IGN1YSBjaG9uIHRoYXUgZ2lhIHJlICANCg0KKEFuaCBjaHVwOiBOaHVuZyBjb25nIG5o YW4gVHJ1bmcgUXVvYyBsYW0gY2FjIGNvbmcgdmllYyBnaWFuIGRvbiB0cmVuIGNvbmcgdHJ1b25n IE5oYSBtYXkgbmhpZXQgZGllbiBIYWkgUGhvbmcgMSAtIEFuaDogTS5IKQ0KDQoqIFRydW5nIFF1 b2MgbGEgbmhhIHRoYXUgbnVvYyBuZ29haSBsb24gbmhhdCB0YWkgVk4gDQoNClRydW5nIFF1b2Mg KFRRKSBkYW5nIGxhIG5oYSB0aGF1IG51b2MgbmdvYWkgbG9uIG5oYXQgVk4gLSBvbmcgRHVvbmcg Q2hhbiwgQ2h1IHRpY2ggDQpIaWVwIGhvaSBEb2FuaCBuZ2hpZXAgVFEgdGFpIFZOIGNobyBiaWV0 IG5odSB2YXkgdGFpIERpZW4gZGFuIGRvaSB0aG9haSB2b2kgY2FjIGRvYW5oIA0KbmdoaWVwIFRR IGRhbmcgaG9hdCBkb25nIGtpbmggZG9hbmggdmEgZGF1IHR1IHRhaSBWTiwgdG8gY2h1YyB0YWkg SGEgTm9pIG5nYXkgMTYuNy4yMDEwLiANCkNvIHRoZSB0aGF5IGdpIHR1IHZhbiBkZSBuYXk/IA0K DQpUUSBkYSB2YSBkYW5nIHRoYW5nIHRoYXUgaGFuZyBsb2F0IGR1IGFuIEVQQyAodGhpZXQga2Ug LSBjdW5nIHVuZyB2YXQgdHUgdGhpZXQgYmkgLSB4YXkgDQpsYXApLiBUaGVvIG9uZyBUYSBWYW4g SHVvbmcsIFZ1IHRydW9uZyBWdSBOYW5nIGx1b25nLCBCbyBDb25nIHRodW9uZywgdW9jIHRpbmgg c28gDQpkdSBhbiBtYSBuaGEgdGhhdSBUUSBkYW5nIGxhbSB0b25nIHRoYXUgRVBDIGhvYWMgZ2l1 IHZhaSB0cm8gY2hpbmggdHJvbmcgbGllbiBkb2FuaCANCnRydW5nIHRoYXUgbGVuIGRlbiBraG9h bmcgODAlIGR1IGFuIG5oaWV0IGRpZW4gdGhhbiBkYSBreSBrZXQgaG9wIGRvbmcgdHJvbmcgVG9u ZyBzbyANCmRvIGRpZW4gNiAodG9uZyBjb25nIGNvIGdhbiA0MCBkdSBhbiB0cm9uZyB0b25nIHNv IGRvIGRpZW4gbmF5LCBrZSBjYSBuaHVuZyBkdSBhbiBkYW5nIA0KZGFtIHBoYW4pLiBEaWV1IGRh bmcgbm9pIGxhIG5oaWV1IGNvbmcgdHJpbmggbG9uIGRvIG5oYSB0aGF1IFRRIHRoaSBjb25nIGNv IHRpZW4gZG8gaSBhY2gsIA0KZ2FwIHJhdCBuaGlldSB0cnVjIHRyYWMga2hpIGRpIHZhbyB2YW4g aGFuaC4gDQoNCkdpYSByZSBsYSB0aGFuZyANCg0KVGhlbyBvbmcgVGEgVmFuIEh1b25nLCBoZSB0 aG9uZyB0aGlldCBiaSBxdWFuIGx5IGRpZXUga2hpZW4sIGNvbmcgbmdoZSBjYW8gY3VhIFRRIA0K dGh1YSBrZW0gY2FjIG51b2MgRzcsIG5odW5nIGRpZXUgcXVhbiB0cm9uZyBsYSBnaWEgdGhhdSBy ZSBob24gY2FjIG5oYSB0aGF1IHRodW9jIGNhYyANCm51b2MgRzcuIERvIGxhIHV1IHRoZSBnaXVw IGNhYyBuaGEgdGhhdSBUUSB0cnVuZyB0aGF1IHJhdCBuaGlldSB0cm9uZyB0aG9pIGdpYW4gcXVh LiANCg0KIkNvIGR1IGFuIGdpYSBjdWEgbmhhIHRoYXUgVFEgcmUgY2hpIGJhbmcgbnVhIGNhYyBu aGEgdGhhdSBraGFjLCB0cm9uZyBraGkgTHVhdCBEYXUgDQp0aGF1IGhpZW4ga2hvbmcgcGhhbiBi aWV0IG5ndW9uIGdvYyB4dWF0IHh1IGN1YSB0aGlldCBiaSwgaGllbiBuaGllbiBwaGFpIGNob24g bG9haSBnaWEgcmUgDQpob24uIEJvaSB0aGUsIGNhYyBuaGEgdGhhdSBUUSB2dW90IHF1YSBkdW9j IG5ndW9uZyBjaG8gcGhlcCB0aGFtIGdpYSBsYSBobyB0aGFuZyANCnRoYXUiLCBvbmcgSHVvbmcg Y2hvIGJpZXQuIA0KDQoiQm8gdHJ1b25nIEJvIENvbmcgdGh1b25nIGRhIGNoaSBkYW8gdmEgeWV1 IGNhdSBjYWMgY2h1IGRhdSB0dSBiYW8gY2FvIGxhbSBybyB0aW5oDQogaGluaCBob3AgdGFjIHZv aSBjYWMgbmhhIHRoYXUgVFEsIHJhIHNvYXQgYnVjIHRyYW5oIHRvbmcgdGhlIGRlIHh1IGx5IHZv aSB0dW5nIHRydW9uZyANCmhvcCBjdSB0aGUiLSBPbmcgVGEgVmFuIEh1b25nLCBWdSB0cnVvbmcg VnUgTmFuZyBsdW9uZywgQm8gQ29uZyB0aHVvbmcgDQoNCiJOaGluIGNhY2ggbmhhIHRoYXUgVFEg bWFuZyB0aGVvIGNhIHRoaWV0IGJpIHZlIHNpbmggY29uZyBuZ2hpZXAsIGNhIGxhbyBkb25nIGRv biBkZXAgDQpzYW5nIGR1IGFuIE5oYSBtYXkgZGFtIENhIE1hdSBsYSBkdSB0aGF5LCBjaHUgZGF1 IHR1IGR1b2MgZ2lhIHJlIG5odW5nIHhhIGhvaSBsYWkgDQp0aGlldCBoYWkgbmhpZXUiLSBCYSBU cmFuIFRoaSBIYSwgUGhvIHRvbmcgZ2lhbSBkb2MgVGFwIGRvYW4gZGF1IGtoaSBWTiANCg0KTXVj IGdpYSByZSB2dW90IHRyb2kgbWEgbmhhIHRoYXUgVFEgZGUgeHVhdCBjdW5nIGxhIG1vdCB0cm9u ZyBjYWMgeWV1IHRvIGRlIENoaW5oIHBodSANCmNobyBwaGVwIG1vIHJvbmcgZHUgYW4gRHV5ZW4g SGFpLCBWaW5oIFRhbiAobmhhIHRoYXUgVGFwIGRvYW4gZGllbiBraGkgRG9uZyANClBodW9uZyBk dSB0aGkgY29uZyBkdSBhbiBIYWkgUGhvbmcgMSBjaGFtIHRpZW4gZG8gaG9uIDIwIHRoYW5nIG5o dW5nIHZhbiB0cnVuZyB0aGF1IA0KZHUgYW4gRHV5ZW4gSGFpIDEgdmEgZHVvYyBwaGVwIHRoYW0g Z2lhIHRoYXUgdGhlbSBkdSBhbiBEdXllbiBIYWkgMykuDQoNClRoZW8gcXV5IGRpbmggY3VhIEx1 YXQgRGF1IHRoYXUgaGllbiBoYW5oLCBraGkgbGFwIGhvIHNvIG1vaSB0aGF1IHBoYWkgZHVhIHJh IHlldSBjYXUgDQp0b2kgdGhpZXUgZGllbSBreSB0aHVhdCAodHJlbiA3MCUpLCB2b2kgZ29pIHRo YXUga3kgdGh1YXQgY2FvIGRvaSBob2kgZGllbSB0cmVuIDgwJSByb2kgDQptb2kgeGV0IGRlbiB0 aWV1IGNoaSB0YWkgY2hpbmguIFRoZW8gY2FjIGNodXllbiBnaWEgdmUgZGF1IHRoYXUsIG8gdm9u ZyBzbyB0dXllbiBuYXksIGNhYyANCm5oYSB0aGF1IGR1IGtlbSB2ZSBjaHV5ZW4gbW9uLCBraW5o IG5naGllbSBkZXUgZGUgZGFuZyB2dW90IHF1YSBuZXUgdGh1ZSB0dSB2YW4gZ2lvaSANCmhvYWMg bGllbiBkYW5oIHZvaSBjYWMgbmhhIHRoYXUgY28gZHUgbmFuZyBsdWMga2luaCBuZ2hpZW0uIE5v aSBuaHUgb25nIE5ndXllbiBWYW4gDQpUaHUsIENodSB0aWNoIEhpZXAgaG9pIENvIGtoaSwgTHVh dCBEYXUgdGhhdSBjaGkgY2FuIGN1IGNodSB5ZXUgdmFvIGdpYSByZSwgbmV1IHZheSB0aGkgDQpr aG9uZyBhaSBjYW5oIHRyYW5oIGR1b2Mgdm9pIG5oYSB0aGF1IFRRLiBEaWV1IG5heSBkYW4gZGVu IG1vdCB0aHVjIHRlLCBuaGlldSBkdSBhbiANCm5oYSB0aGF1IEVVLCBOaGF0IEJhbiBuZ2hlIGRl biBUUSBkYSAic28iLCBraG9uZyB0aGFtIGdpYSBkYXUgdGhhdS4NCk9uZyBOZ28gTmdvYyBRdXks IFBobyBjdWMgdHJ1b25nIEN1YyBEYXUgdGhhdSAoQm8gS0gtRFQpIGNobyBiaWV0IHJhdCBuaGll dSBkdSBhbiANCmRpZW4gbG9uIHBoYWkgc3UgZHVuZyB2b24gdmF5IHRodW9uZyBtYWkgY3VhIFRR LCB2aSB2YXkgdmllYyBidW9jIHBoYWkgY2hvbiBuaGEgdGhhdSANCm51b2MgbmF5IGxhIGR1b25n IG5oaWVuLiANClRoZW8gb25nIFRhIFZhbiBIdW9uZywgY28gbmh1bmcgZHUgYW4gdHJvbmcgaG8g c28gbW9pIHRoYXUgcXV5IGRpbmggYWkgdHJ1bmcgdGhhdSANCnBoYWkgZGFuIHhlcCB2b24gY2hv IGR1IGFuLCB2YSBuaGlldSBkdSBhbiBkaWVuIHBoYWkgc3UgZHVuZyBwaGFuIGxvbiB0aW4gZHVu ZyBjdWEgVFEgDQoobW9pIGRheSBuaGF0IGxhIGR1IGFuIG5oaWV0IGRpZW4gVmluaCBUYW4gMiB2 dWEga2hvaSBjb25nIHZvaSA4NSUgdm9uIHZheSB0dSBOZ2FuIA0KaGFuZyBYdWF0IG5oYXAga2hh dSBUUSB2YSB2b24gT0RBIGN1YSBUUSkuIE5oYSB0aGF1IGNhYyBudW9jIEc3IGN1bmcgZGFuIHhl cCANCmR1b2Mgdm9uLCBuaHVuZyBnaWEgdGhhdSBxdWEgY2FvIG5lbiBjaHUgZGF1IHR1IGtob25n IGNob24uDQoNCk5odW5nIGhlIGx1eQ0KDQpIYWkgZHUgYW4gbmhpZXQgZGllbiBRdWFuZyBOaW5o IDEgKFRhcCBkb2FuIGRpZW4ga2hpIFRodW9uZyBIYWkgbGFtIHRvbmcgdGhhdSksIG5oaWV0IA0K ZGllbiBIYWkgUGhvbmcgMSAoVGFwIGRvYW4gZGllbiBraGkgRG9uZyBQaHVvbmcgbGFtIHRvbmcg dGhhdSkgdnVhIHF1YSBkYSB2YW4gaGFuaCANCnRoaWV1IG9uIGRpbmgsIGJpIGNoYXkgbG8sIGhv bmcgaG9jIHRoaWV0IGJpLiANCg0KQW5oIGNodXA6IE5nYXkgMy44LCB0YWkgTmhhIG1heSBuaGll dCBkaWVuIEhhaSBQaG9uZyAobmhhIHRoYXUgVFEgbGFtIHRvbmcgdGhhdSBFUEMpIA0KeGF5IHJh IHZ1IG5vIGhvYSBjaGF0IGxhbSAyIGNvbmcgbmhhbiB0aGlldCBtYW5nLCA0IG5ndW9pIGJpIHRo dW9uZyAtIEFuaDogSGFpIFZhbg0KDQpUaGVvIGNodSBkYXUgdHUgZHUgYW4gSGFpIFBob25nIDEg bGEgQ29uZyB0eSBDUCBuaGlldCBkaWVuIEhhaSBQaG9uZywgVG8gbWF5IDEgcGhhdCANCmRpZW4g dHUgdGhhbmcgOS4yMDA5IG5odW5nIGNoaSBzYXUgbW90IHRoYW5nIGhvYXQgZG9uZyBkYSBnYXAg c3UgY28gaHUgaG9uZyBibyBxdWEgDQpuaGlldCAobmhhIHRoYXUgYnVvYyBwaGFpIHRoYXkgdGhl IDkwIG9uZyBxdWEgbmhpZXQgdmEgaGUgdGhvbmcgZGllbikgdmEgY2FjIHN1IGNvIGtoYWMgDQpu aHUgeGkgaG9pIGR1b25nIG9uZywgdHJ1YyB0cmFjIGhlIHRob25nIHR1YW4gaG9hbiBudW9jLi4u DQoNCk9uZyBUaHUgY2hvIHJhbmcsIGtoaWVtIGtodXlldCBvIGNobyBjaHVuZyB0YSBjaHVhIGNv IGhhbmcgcmFvIGt5IHRodWF0IGRlIGtpZW0gdHJhIA0KY29uZyBuZ2hlLCB0aGlldCBiaSBjdWEg bmhhIHRoYXUgVFEuIE5oYSB0aGF1IGNoaW5oIFRRIHNhdSBraGkgdGhhbmcgdGhhdSBkYSBwaGFu IGRldSANCmdpYW8gY2hvIG5oYSB0aGF1IG5obyBob24gbmVuIGNoYXQgbHVvbmcgdHVuZyBnb2kg dGhhdSBkZW4gZGF1IGNodWEgZGUga2hhbmcgZGluaC4NCg0KTW90IHNvIGR1IGFuIG5oYSB0aGF1 IFRydW5nIFF1b2MgbGFtIHRvbmcgdGhhdSBFUEMgDQorIE5oYSBtYXkgbmhpZXQgZGllbiBEdXll biBIYWkgMSAoVHJhIFZpbmgpIGRvIFRhcCBkb2FuIGRpZW4ga2hpIERvbmcgUGh1b25nIGxhbSAN CnRvbmcgdGhhdSBFUEMgdm9pIHRyaSBnaWEgaG9wIGRvbmcga2hvYW5nIDEsNCB0aSBVU0QuIE5o YSB0aGF1IG5heSBjdW5nIGR1b2MgY2hvIHBoZXAgDQptbyByb25nIGxhbSB0aGF1IGR1IGFuIER1 eWVuIEhhaSAzLiANCg0KKyBOaGlldCBkaWVuIFZpbmggVGFuIDIgKEJpbmggVGh1YW4pIGRvIG5o YSB0aGF1IFNoYW5naGFpIEVsZWN0cmljIEdyb3VwIENvbXBhbnkgDQpMdGQgKFNFQykgbGFtIHRv bmcgdGhhdSBFUEMuIA0KDQorIER1IGFuIE5oYSBtYXkgbmhpZXQgZGllbiBIYWkgUGhvbmcgSSB2 YSBJSSB2b2kgNCB0byBtYXkgdm9pIHRvbmcgY29uZyBzdWF0IDEuMjAwIA0KTVcuIEdvaSB0aGF1 IGNoaW5oIChFUEMpIGRvIGxpZW4gZG9hbmggbmhhIHRoYXUgVGFwIGRvYW4gZGllbiBraGkgRG9u ZyBQaHVvbmcgDQooVHJ1bmcgUXVvYykgdmEgTWFydWJlbmkgKE5oYXQgQmFuKSBsYW0gdG9uZyB0 aGF1LiANCg0KKyBEdSBhbiBuaGlldCBkaWVuIFF1YW5nIE5pbmggMSB2YSAyIGRvIG5oYSB0aGF1 IFNFQyBsYW0gdG9uZyB0aGF1IEVQQy4gDQoNCisgRHUgYW4gVHJ1bmcgdGFtIE5oaWV0IGRpZW4g S2llbiBMdW9uZyBkbyBUYXAgZG9hbiBUYW4gVGFvIGNodSBkYXUgdHUsIG5oYSB0aGF1IA0KQ2hp bmEgSHVhZGlhbiBFbmdpbmVlcmluZyAoQ0hFQykgbGFtIHRvbmcgdGhhdSBFUEMsIGdvaSB0aGF1 IHRyaSBnaWEgMiB0aSBVU0QuIA0KDQpNb3QgaGUgbHV5IGtoYWMgbGEga2hpIGNhYyBuaGEgdGhh dSBUUSB0aGFuZyB0aGF1LCBraG9uZyBjaGkgZG9hbmggbmdoaWVwIHNhbiB4dWF0IA0KdGhpZXQg YmkgdHJvbmcgbnVvYyBraG9uZyBjbyBjbyBob2kgbGFtIHRoYXUgcGh1LCBtYSBuZ2F5IGNhIG5o dW5nIGxhbyBkb25nIHBobyB0aG9uZyANCmN1bmcga2hvbmcgY2hlbiBjaGFuIG5vaSBraGkgbW9p IG5oYSB0aGF1IFRRIGRldSAiY29uZyIgdGhlbyBtb3Qgc28gbHVvbmcgbmhhbiBjb25nLCANCmtl IGNhIGxhbyBkb25nIHBobyB0aG9uZyByYXQgbG9uLiBUcm9uZyBraGkgUXV5ZXQgZGluaCA4NyAo bmdheSAxOS41LjIwMDQpIGN1YSBUaHUgDQp0dW9uZyBDaGluaCBwaHUgYmFuIGhhbmggUXV5IGNo ZSBRdWFuIGx5IGhvYXQgZG9uZyBjdWEgbmhhIHRoYXUgbnVvYyBuZ29haSB0cm9uZyANCmxpbmgg dnVjIHhheSBkdW5nIHF1eSBkaW5oOiB0b25nIHRoYXUgbnVvYyBuZ29haSBjaGkgZHVvYyBkdWEg dmFvIFZOIG5odW5nIGNodXllbiANCmdpYSBxdWFuIGx5IGtpbmggdGUga3kgdGh1YXQgdmEgbGFv IGRvbmcgdGF5IG5naGUgY2FvIG1hIFZOIGtob25nIGRhcCB1bmcgZHVvYy4gDQoNCkRhaSBkaWVu IGNobyB0aWVuZyBub2kgY3VhIGNhYyBkb2FuaCBuZ2hpZXAgY28ga2hpLCB0aGlldCBiaSB0cm9u ZyBudW9jLCBvbmcgTmd1eWVuIFZhbiANClRodSBjaGlhIHNlLCBkb2FuaCBuZ2hpZXAgdHJvbmcg bnVvYyByb2kgdmFvIGNhbmggbWF0IGhldCB2aWVjIGRvIG5oYSB0aGF1IFRRIHRoYW5nIA0KdGhh dSBvIGF0LiANCg0KVm9pIG5oYSB0aGF1IGNhYyBudW9jIEc3IHRydW9jIGRheSwgbmhhIHRoYXUg cGh1IFZOIGNvIHRoZSB0aHVjIGhpZW4gdG9pIDMwJSBraG9pIA0KbHVvbmcgdHJpZW4ga2hhaSBn b2kgdGhhdSBFUEMgbmhvIGR1b2MgZ2lhbyBjaGUgdGFvIHNvIGx1b25nIGxvbiBrZXQgY2F1IHRo ZXAgaGF5IGNhYyANCnRoaWV0IGJpIHBoaSB0aWV1IGNodWFuLiBOaHVuZyBraGkgbmhhIHRoYXUg VFEgdGhhbmcgdGhhdSwgaG8gbWFuZyBzYW5nIFZOIHR1IG5ndW9pIA0KbGFvIGRvbmcgZGVuIGNh aSBidS1sb25nLCBvYyB2aXQsIHRoaWV0IGJpIG5hbyBraG9uZyBuaGFwIHR1bmcgcGhhbiBkdW9j IHRoaSBobyBsYXAgcmFwIA0Kbmd1eWVuIGNoaWVjIHJvaSBtYW5nIHNhbmcuICJEaWV1IHRvaSB0 aGF5IGtobyBoaWV1IG5oYXQgbGEgUXV5ZXQgZGluaCA4NyBkYSBybywgbmh1bmcgDQpuaGlldSBj aHUgZGF1IHR1IG1hYyBuaGllbiBjb2kgdmllYyBuaGEgdGhhdSBUUSBtYW5nIGxhbyBkb25nIHBo byB0aG9uZyBzYW5nIG5odSANCmNodXllbiBkYSByb2kiLCBvbmcgVGh1IGJhbiBraG9hbi4NCg0K VHJvbmcgbW90IGN1b2MgaG9wIGRhdSB0aGFuZyA4IHRhaSBCbyBDb25nIHRodW9uZywgYmEgVHJh biBUaGkgSGEsIFBobyB0b25nIGdpYW0gZG9jIA0KVGFwIGRvYW4gZGF1IGtoaSBWTiB0aGFuZyB0 aGFuIG5vaTogTmhpbiBjYWNoIG5oYSB0aGF1IFRRIG1hbmcgdGhlbyBjYSB0aGlldCBiaSB2ZSAN CnNpbmggY29uZyBuZ2hpZXAsIGNhIGxhbyBkb25nIGRvbiBkZXAgc2FuZyBkdSBhbiBOaGEgbWF5 IGRhbSBDYSBNYXUgbGEgZHUgdGhheSwgY2h1IA0KZGF1IHR1IGR1b2MgZ2lhIHJlIG5odW5nIHhh IGhvaSBsYWkgdGhpZXQgaGFpIG5oaWV1LiBUdXkgbmhpZW4sIGtob25nIHBoYWkgY2h1IGRhdSB0 dSBuYW8gDQpjdW5nIG5oaW4gcmEgZHVvYyBkaWV1IG5heS4gDQoNClRoZW8gb25nIEh1b25nLCBk aWV1IG5heSBjbyB0aGUgaGFuIGNoZSBuZXUgY2h1IGRhdSB0dSBuZ2F5IHRyb25nIGhvIHNvIG1v aSB0aGF1IHRhY2ggDQpiYWNoIHJvIHBoYW4gdmllYyBuYW8gcGhhaSBkYW5oIGNobyBuaGEgdGhh dSB0cm9uZyBudW9jLiANClhlbSB4ZXQgbGFpIGNvIGNoZSBkYXUgdGhhdSB1dSBhaSBnaWEgcmUg aGllbiBuYXkgbGEgZGlldSBtYSBuaGlldSBuaGEgdGhhdSBraWVuIG5naGkuIA0KIlRyb25nIGRh dSB0aGF1IGNhbiBkdW5nIGxlbiBuaHVuZyBoYW5nIHJhbyBraGF0IGtoZSBob24gZGUgZGFtIGJh byBjaGF0IGx1b25nIGR1IGFuLCANCmNoYW5nIGhhbiBobyBzbyBtb2kgdGhhdSBjaGkgcm8gY2hh dCBsdW9uZyB0aGlldCBiaSBjaGkgY2hhcCBuaGFuIGN1YSBHNyBob2FjIHBoYWkgZHVvYyANCmtp ZW0gY2h1bmcgdHJlbiB0aGUgZ2lvaSwgdGhpIGl0IG5oYSB0aGF1IFRRIGNvIHRoZSBkYXAgdW5n IGR1b2MiLCBvbmcgSHVvbmcgbm9pLiANCg0KaHR0cDovL3ZucjUwMC52aWV0bmFtbmV0LnZuL2Nv bnRlbnQuYXNweD9pZD04NzIgUGhhbSBIdXllbiA3LzMxLzIwMTAgNTozMDo1OSBQTSAoR01UKzcp DQoNClRodSB0dW9uZzogVmlldCBOYW0gIm5oYXAgc2lldSIgRVBDIHR1IFRydW5nIFF1b2MgDQoN CjkwJSBjYWMgY29uZyB0cmluaCBkaWVuLCBraGFpIGtob2FuZywgZGF1IGtoaSwgbHV5ZW4ga2lt LCBob2EgY2hhdC4uLiBjdWEgVmlldCBOYW0gaGllbiANCmRldSBkbyBkb2kgdGFjIFRydW5nIFF1 b2MgZGFtIG5oaWVtOyBMYW4gc2FuIGhhdSBoZXQgbGluaCB2dWMgY29uZyBuZ2hpZXAgdGh1b25n IG5ndW9uIGN1YSBWaWV0IE5hbSANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAw OC8wNS83ODE2MTMvIDExOjI1IDA2LzA1LzIwMDggKEdNVCs3KQ0KDQpUaHUgdHVvbmc6ICJOaHVu ZyB5ZXUga2VtLCBiYXQgY2FwIHRyb25nIHF1YW4gbHksIGRpZXUgaGFuaCBjdWEgQ2hpbmggcGh1 IHRob2kgZ2lhbiBxdWEgbGEgbmd1eWVuIG5oYW4gdHJ1YyB0aWVwIA0KbGFtIGNobyBuaHVuZyB5 ZXUga2VtIHZvbiBjbyBjdWEgbmVuIGtpbmggdGUgYm9jIGxvIHJvIGhvbiB2YSB0YWMgZG9uZyBz YXUgcm9uZyBob24iDQoNCi0NCmh0dHA6Ly90aW50dWNvbmxpbmUudmlldG5hbW5ldC52bi92bi90 aHVvbmduaGF0LzQ1MjYzNC9pbmRleC5odG1sIE5nbyBNYWkgUGhvbmcvRGFuIFZpZXQgMDgvMDcv MjAxMCAwNjoxNCAoR01UICs3KQ0KDQpUaHUgdHVvbmc6IDE4MDAgY29udGFpbmVyIG1hYyBrZXQg dGFpIGN1YSBraGF1IE1vbmcgQ2FpIC0gTGllbiB0aWVwICJhbiBkb24iDQoNCktob2FuZyAxLjgw MCBjb250YWluZXIgaGFuZyB0YW0gbmhhcCB0YWkgeHVhdCBxdWEgVHJ1bmcgUXVvYyBiaSBhY2gg bGFpIHRhaSBjdWEga2hhdSANCk1vbmcgQ2FpIHN1b3QgdHUgdHJ1bmcgdHVhbiB0aGFuZyBOYW0g ZGVuIG5heSwgdHJvbmcgZG8sIG5vbiBudWEgbGEgaGFuZyBkb25nIGxhbmggdmEgDQpraG9uZyBp dCBoYW5nIG5vbmcgc2FuLg0KDQpMaWVuIHRpZXAgImFuIGRvbiINCg0KTW9pIG5nYXksIGN1IG1v dCBjb250YWluZXIgaGFuZyBkb25nIGxhbmgsIGNodSBoYW5nIHBoYWkgIm51b25nIiBkdXQgMiB0 cmlldSBkb25nIHRyYSANCmNobyBwaGkgbHV1IGtobyB2YSB0aWVuIGRpZW4gYmFvIHF1YW4uIE9u ZyBEaW5oIFZpZXQgRHVuZyAtIFBobyBDaGkgY3VjIEhhaSBxdWFuIA0KTW9uZyBDYWkgY2hvIGJp ZXQ6IFR1IDMwLTYgZGVuIDQtNywgcGhpYSBUcnVuZyBRdW9jIGNobyB0aG9uZyBxdWFuLCBnaWFp IHRvYSBkdW9jIDEzMiANCiJjb25nIiBuaHVuZyBsdW9uZyBoYW5nIGRvbiB0dSB0cm9uZyByYSB0 aGVtIGdhbiAxMDAgeGUgdmEgc2F1IDUgbmdheSBraGFpIHRob25nLCBjdWEga2hhdSBtYXUgZGlj aCBsYWkgZG90IG5nb3Qga2hlcCBoYW4sIGNvaSBuaHUgdGluaCB0cmFuZyB1IGRvbmcgdmFuIHkg bmd1eWVuLiINCg0KKEFuaCBjaHVwOiBYZSBjb250YWluZXIgbmFtIGNobyB4dWF0IGhhbmcgbyBN b25nIENhaSkNCg0KSGFuZyB0b24gZG9uZyBvIGRheSBjaHUgeWV1IGxhIGhhbmcgdGFtIG5oYXAg dGFpIHh1YXQsIGJhbyBnb206IEhhbmcgdGh1YyBwaGFtIGRvbmcgDQpsYW5oOyBydW91LCB0aHVv YyBsYTsgbmh1YSBwaGUgbGlldSwgeGFtIGxvcDsgZG8gZGllbiB0dSBjdS4uLiBHYW5oIGNoaXUg bW9pIHRoaWV0IHRob2kgbmF5IA0Ka2hvbmcgcGhhaSBsYSBhaSBraGFjIG5nb2FpIGNhYyBkb2Fu aCBuaGFuLiBIbyBsYW0gdmFvIHRpbmggdHJhbmcgInRybyBkaSBtYWMgbnVpLCB0cm8gbGFpIA0K bWFjIHNvbmciLiBCb2kgZHVhIGR1b2MgY2h1eWVuIGhhbmcgdHUgY2FuZyBIYWkgUGhvbmcgaG9h YyBjYWMga2hvIG5nb2FpIHF1YW4gdHUgDQpwaGlhIHRyb25nIHJhIHRvaSBjYWMgY3VhIGtoYXUg UXVhbmcgTmluaCBsYSBjYSBtb3QgaGFuaCB0cmluaCBraG9uZyBoZSBkZSBkYW5nLiBNb3Qgc28g DQpjdWEga2hhdSBuaG8gbmh1IEhvYW5oIE1vLCBCYWMgUGhvbmcgU2luaCBjdW5nIG8gdHJvbmcg dGluaCB0cmFuZyB0dW9uZyB0dS4NCg0KMS44MDAgY29udGFpbmVyIGhhbmcgdGFtIG5oYXAgdGFp IHh1YXQgYmkgYWNoIHRhYyBrZW8gZGFpIGhpZW4gbmF5IGN1bmcgbGEgaGUgcXVhIHRhdCB5ZXUg DQpjdWEgbW90IHF1YSB0cmluaCBsYW0gYW4gbWEga2hvbmcgaGlldSBkdW9jIG5ndW9pIGN1bmcg bmh1IGtob25nIGNoaXUgaG9jIG5odW5nIGJhaSANCmhvYyB0dSBjaGluaCBrZSBsaWVuIHRpZXAg InZhdCBsb25nIiB0YS4NCg0KT25nIEhvYW5nIFR1IEhvYW4gLSBUcnVvbmcgQ2hpIGN1YyBIYWkg cXVhbiBCaW5oIExpZXUgY2hvIGhheTogIlRvbmcgc28gaGFuZyBhY2ggDQp0YWMgdGFpIGN1YSBr aGF1IEhvYW5oIE1vIHRyb25nIDIgdGhhbmcgdnVhIHF1YSBraG9hbmcgMjAwIGNvbnRhaW5lci4g Tmh1bmcgc2FuIGJhaSBvIA0KZGF5IGNoaSBjbyBzdWMgY2h1YSB0b2kgZGEgMzAgeGUuIFZpIHZh eSwgZGUgYmFvIHF1YW4gZHVvYyBoYW5nLCBjYWMgZG9hbmggbmdoaWVwIGRhbmggDQpkbyB2ZSBj dWEga2hhdSBNb25nIENhaS4gTW90IHNvIHF1YXkgdHJvIGxhaSBoZSB0aG9uZyBraG8gbmdvYWkg cXVhbiBIYWkgUGhvbmcuIg0KDQpUcm9uZyBraGkgZG8sIGhhbmcgbmhhcCBraGF1IHZhbyBWaWV0 IE5hbSBjYWMgY3VhIGtoYXUgUXVhbmcgTmluaCB2YW4gaG9hbiB0b2FuIA0KYmluaCB0aHVvbmcs IGtob25nIGhlIGdhcCBiYXQga3kgcmFvIGNhbiBuYW8gbmdvYWkgTHVhdCBUaHVlIGhhaSBxdWFu LiBLaG9uZyBkZSBnaSANCmdpYWkgdGhpY2ggZHVvYywgcmFuZyB0YWkgc2FvIGRvaSB0YWMgcGhp YSBiZW4ga2lhIGx1b24gInNvbSBuYW5nIGNoaWV1IG11YSIsIG5nb2F0IA0KbmdvZW8gdm9pIHZv IHNvIGx5IGRvIGtob25nIHNhbyBsdW9uZyBkdW9jLiBDaGkgYmlldCByYW5nLCByYXQgbmhpZXUg bmhhIGJ1b24gVmlldCBOYW0gDQpsaWVuIHRpZXAgYmkgImFuIGRvbiIsIGtob2Mga2hvbmcgcmEg bnVvYyBtYXQgbmh1IHZ1IGNhbyBzdSBiaSBlcCBnaWEgdGFpIE1vbmcgQ2FpIG5oaWV1IA0KbmFt IHRydW9jIGRheSB2YSBnYW4gbmhhdCBsYSB2dSBkdWEgaGF1IHBoYWkgZG8gdGhhbyB0YWkgY3Vh IGtoYXUgTGFuZyBTb24gaG9pIGRhdSBuYW0gDQpuYXkuDQoNCktob25nIGhpZXUgaGV0IGRvaSB0 YWMNCg0KVHJlbiB0aHVvbmcgdHJ1b25nLCBjaHV5ZW4gImFuIGRvbiIsIHRoYW0gY2hpIHRyYW5n IHRheSBsYSBzdSB0aHVvbmcgdGluaC4gTmh1bmcgY2hhbmcgDQpsZSBjYWMgbmFuIG5oYW4gY3Ug Y2hpdSBwaGFuIGN1YSBjb24gY3V1IG1haT8NCg0KQnVvbiBiYW4gdm9pIG1vdCBsYW5nIGdpZW5n IHR1bmcgbGFtIG5lbiAiQ29uIGR1b25nIHRvIGx1YSIgY2FjaCBuYXkgaGFuZyBuZ2hpbiBuYW0g DQpkdW5nIHhlbSBsYSB2aWVjIGdpYW4gZG9uLiBEb2FuaCBuaGFuIFRydW5nIFF1b2MgdHVuZyB0 aWVuIG11YSB0aGFuIHRpZXUgbmdhY2ggY3VhIA0KUXVhbmcgTmluaCBuaHVuZyBkYW8gaG8gY2hv biB4dW9uZyBkdSB0cnUgY2hvIGxhdSBkYWk7IGRvYW5oIG5oYW4gVHJ1bmcgUXVvYyBtdWEgDQpz YSBzdW5nIG1lIG8gVmFuIERvbiBkZSByb2kgY2hvIHNpbmggc2FuIGNvbmcgbmdoaWVwIHZhIGNo aSB0cm9uZyBtb3QgdGhvaSBnaWFuIG5nYW4sIA0Kc2FuIHBoYW0gbmF5IHF1YXkgdHJvIGxhaSBj aGllbSBsaW5oIHRoaSB0cnVvbmcgbm9pIG1hIG5vIHJhIGRpIHZvaSBnaWEgcmUgYmF0IG5nbzsg ZG9hbmggDQpuaGFuIFRydW5nIFF1b2MgaG8gInRodW9uZyB2YW5nIGhhIGNhbSIgdGh1IGdpIFZp ZXQgTmFtIGR1YSBzYW5nIGN1bmcgc2FuIHNhbmcgbXVhIA0KaGV0LiBOaHVuZyBjaGkgc2F1IG1v dCB2YWkgY3UgInRoYSBtb2kiLCBjYWMgdGh1b25nIG5oYW4gVmlldCBOYW0gdGhpIG5oYXUgdmFj IGhhbmcgDQoieG9uZyByYSIgYmFvIG5oaWV1LCB0aHVhIGxvIGJheSBuaGlldS4uLg0KDQpDbyB2 byBzbyBuaHVuZyBiYWkgaG9jIHZlIGNhY2ggdGluaCB0b2FuICJjYW4gY28iLCB0aGFtIGhhdSBj dWEgb25nIGJhbiB0aHVvbmcgZ2lhIA0KbGFuZyBnaWVuZyBiZW4ga2lhIGhhbmcgcmFvIHRodWUg cXVhbiBjaGFuZyBkZSBnaSBiaWV0IHRydW9jLiBOaHVuZyBjbyBtb3QgZGlldSB0YXQgY2EgDQpk ZXUgbmhpbiB0aGF5LCBkbyBsYSBoZSB0aG9uZyBxdWFuIGx5IGJpZW4gbWF1IGN1YSBkb2kgdGFj IGR1b2MgdGhpZXQgbGFwIHZhIGRpZXUgaGFuaCANCmN1YyBreSBjaGF0IGNoZS4NCg0KTW90IG1l bmggbGVuaCBiYW4gcmEgdmUgZ2lhIGNhIGxhcCB0dWMgbXVvbiBuZ3VvaSBuaHUgbW90LiBIb20g bmF5IG5oYXAgZ2ksIHh1YXQgZ2ksIA0KbmhhdCBuaGF0IGNhYyB0aHVvbmcgZ2lhIGRldSBtb3Qg dGllbmcgbm9pIG5odSBuaGF1LiBDYWMgY2hpbmggc2FjaCBjdWEgaG8gY3VuZyBuaHUgDQp2YXks IGRhIGtob25nIGtodXllbiBraGljaCwgdGhpIHRydW9jIHNhdSBuaHUgbW90LCBhaSBidW9jIHF1 YSwgbGFwIHR1YyBzZSBjaGl1IHN1IHRydW5nIA0KcGhhdCBuZ2hpZXQgbmdhIGN1YSBsdWF0IHBo YXAuDQoNCkNvbiBjYWMgZG9hbmggbmhhbiBWaWV0IE5hbT8gSGllcCBob2ksIG5naGllcCBkb2Fu IGNvIGN1bmcgbmh1IGtob25nOyBoZSB0aG9uZyANCnF1YW4gbHkgYmllbiBtYXUgbGEgbW90IGJv IG1heSAibmdvaSBjaG9pIHhvaSBudW9jIiwgY2hpZW4gbHVvYyB0byBjaHVjIGtpbmggZG9hbmgg DQpraG9uZzsgY2hpbmggc2FjaCBkaWV1IHBob2kgY2h1bmcgY3VuZyBraG9uZy4gQ2FjIGRvYW5o IG5naGllcCBtYW5oIGFpIG5heSBsYW0sIHNhbiANCnNhbmcgcGhhIGdpYSwgYm8gYmFuIG1pZW4g bGEgbWluaCBjbyBsb2kuDQoNCkhhdSBxdWEgY3VhIHRpbmggdHJhbmcgYmkgZG9uZyB0aHVvbmcg eHV5ZW4sIHRodW9uZyB4dXllbiB0aGF0IGJhaSwgY3VuZyBjaGluaCBsYSB2aSB0aGkgDQp0cnVv bmcgcGhpYSBWaWV0IE5hbSBraG9uZyBkdW9jIHRvIGNodWMgbW90IGNhY2ggaGlldSBsdWM7IGto b25nIGNvIHRob25nIHRpbiBodXUgaWNoLCANCmtob25nIGhpZXUgaGV0IGRvaSB0YWMgbmVuIGx1 b24gbHVvbiByb2kgdmFvIHRoZSBiaSBuZ3VvaSB0YSBkaWV1IGtoaWVuLg0KDQotDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDYyMzAxNTguYXNw eCBNLlBodW9uZyAtIEEuVnUgLSBILlZpZXQgLSBRLlRodWFuIDA2LzEwLzIwMTAgMjM6MDEgDQoN ClRodSB0dW9uZzogR2lhIGNhIGxlbyB0aGFuZyAgDQogIA0KKiAgVmFuZywgVVNEIGRpZW4gYmll biBiYXQgdGh1b25nIA0KDQpDaGkgbW9pIHZhbyBkYXUgdGhhbmcgMTAgbmh1bmcgbmhpZXUgbWF0 IGhhbmcgdGlldSBkdW5nIGRhIGNob24gcm9uIHRhbmcgZ2lhLCBiYW8gaGlldSANCmNobyBuaGll dSBkb3QgYmllbiBkb25nIHRpZXAgdGhlbyB2YW8gdGhvaSBkaWVtIGN1b2kgbmFtLiANCg0KVGh1 YyBwaGFtIHRhbmcgdHUgNS0xMCUNCg0KTmdheSB0dSBkYXUgdGhhbmcgMTAsIGNvIGRlbiBoYW5n IHRyYW0gbWF0IGhhbmcgdGFpIGNhYyBzaWV1IHRoaSBkYSB0aG9uZyBiYW8gdGFuZyBnaWEsIA0K bmhpZXUgbmhhdCBsYSBjYWMgbmhvbSBoYW5nIG5oYXAga2hhdS4gDQoNClRhaSBUUC5IQ00sIGRh aSBkaWVuIHNpZXUgdGhpIENpdGltYXJ0IHZhIHNpZXUgdGhpIEhhIE5vaSBjaG8gYmlldDogIkRh dSB0aGFuZyAxMCBuYXkgY28gDQpkZW4gaG9uIDEwMCBtYXQgaGFuZyB0YW5nIGdpYSwgbXVjIHRh bmcgdHUgNSAtIDEwJS4gQ2FjIG5ob20gaGFuZyB0YW5nIGdpYSBkb3QgbmF5IGxhIA0KbXkgcGhh bSwgdGh1YyBwaGFtLCBiYW5oIGtlbywgZGF1IGFuLCBzdWEuLi4iLiBUYWkgaGUgdGhvbmcgQmln IEMsIHRodWMgcGhhbSBkb25nIGxhbmggDQpjdWEgTnV0aWZvb2QsIENhZG92aW1leCwgTmVzdGxl LCBIdW9uZyBTb24sIFNhbyBWaWV0Li4uIHRhbmcga2hvYW5nIDUlLiBUYWkgaGUgdGhvbmcgDQpD by5vcCBtYXJ0LCBiYSBuaG9tIGhhbmcgbmhhcCBraGF1IGxhIHJ1b3UsIG51b2MgZ2lhaSBraGF0 LCBkbyBob3Agdm9pIGtob2FuZyA1MCBtYXQgDQpoYW5nIHRhbmcgZ2lhIHR1IDUgLSAxMCUuIEdp YSBtb3Qgc28gbG9haSBiaWEgbmhhcCBraGF1IHRyZW4gdGhpIHRydW9uZyB0YW5nIHR1IDEwLTE1 JTogDQpiaWEgSGVpbmVrZW4gbG9uIGNhbyAoNTUwIG1sL2xvbikgbmhhcCBraGF1IHRhbmcgaG9u IDUwLjAwMCBkb25nL3RodW5nLiANCg0KS2hhIG5hbmcgQ1BJIG1vaSB0aGFuZyB0YW5nIDAsNSUg DQoNCiJUeSBnaWEgVVNEL1ZORCBkdW9jIGRpZXUgY2hpbmggdGhlbSAyLDElIGN1bmcga2VvIGdp YSBjYWMgbmhvbSBoYW5nIG5oYXAga2hhdSANCnRhbmcgbGVuLCB0aGVvIHRpbmggdG9hbiB0eSBn aWEgdGFuZyAyLDElIGtlbyBjaGkgc28gQ1BJIHRhbmcgMCwzJS4gVHUgbmF5IGRlbiBjdW9pIG5h bSwgDQpDaGluaCBwaHUgZGEgY28gY2h1IHRydW9uZyBraG9uZyB0YW5nIGdpYSBkaWVuLCBjaGkg ZGFvIGtpZW0gc29hdCBjaGF0IGNoZSBnaWEgdGh1b2MgDQpjaHVhIGJlbmgsIHR5IGdpYSBob2kg ZG9haSBjdW5nIG9uIGRpbmguLi4gTmV1IGNhYyB5ZXUgdG8gdHJlbiBkdW9jIGtpZW0gc29hdCB0 aGkga2hhIA0KbmFuZyBjaGkgc28gQ1BJIHNlIHRhbmcga2hvYW5nIDAsNSUvdGhhbmcuIiAoLSBP bmcgTGUgWHVhbiBOZ2hpYSwgUGhvIGNodSB0aWNoIFV5IA0KYmFuIEdpYW0gc2F0IHRhaSBjaGlu aCBxdW9jIGdpYSkgDQoNClRoZW8gZGFpIGRpZW4gY2FjIHNpZXUgdGhpLCBkb3QgdGFuZyBnaWEg bmF5IGNodSB5ZXUgcm9pIHZhbyBjYWMgbWF0IGhhbmcgbmhhcCBraGF1LiBMeSANCmRvIGNhYyBu aGEgY3VuZyBjYXAgaGFuZyBkdWEgcmEgbGEgZG8gdHkgZ2lhIFVTRCB0YW5nLCBuZ3V5ZW4gbGll dSB0YW5nLCBnaWEgbmhhbiBjb25nIA0KdGFuZy4gDQpUaHVjIHBoYW0gdHVvaSBzb25nICh0aGl0 IGhlbywgdGhpdCBnYSwgdGhpdCBibywgdG9tIGNhKSBjdW5nIHRhbmcgZ2lhLiBNb3Qgc28gc2ll dSB0aGkgY2hvIA0KYmlldCwgZ2lhIHRoaXQgZ2EgdGFuZyBuaGUsIHRyb25nIGtoaSB0aGl0IGhl byB0YW5nIGtob2FuZyAzLjAwMCAtIDUuMDAwIGRvbmcva2cuIEdpYSB0aHVjIA0KcGhhbSB0dW9p IHNvbmcgY3VhIFZpc3NhbiBjdW5nIHRhbmcga2hvYW5nIDUlIHNvIHZvaSBjYWNoIGRheSBtb3Qg dGhhbmcuIFRhaSBjYWMgY2hvIA0KbGUsIGdpYSB0aHVjIHBoYW0gY29uIHRhbmcgY2FvIGhvbiBn aWEgc2lldSB0aGkgdHUgMy4wMDAgLSAxMC4wMDAgZG9uZy9rZyB0dXkgbWF0IGhhbmcuIA0KDQpU aGVvIGdpb2kga2luaCBkb2FuaCwgZHVvbmcgY2F0IGxhIG1hdCBoYW5nIGNvIG5ndXkgY28gdGFu ZyBnaWEgbWFuaCBuaGF0IHRyb25nIHRob2kgDQpnaWFuIHRvaSBkbyBuaHUgY2F1IGR1bmcgZHVv bmcgc2FuIHh1YXQgYmFuaCBrZW8gbGEgcmF0IGxvbi4gSGllbiBnaWEgZHVvbmcgZGFuZyBkdW5n IG8NCiBtdWMgcmF0IGNhby4gRGF1IGFuIGxhIG1hdCBoYW5nIGRhIHRhbmcgZ2lhIGxpZW4gdHVj IHN1b3QgdGhvaSBnaWFuIHF1YSB2YSBtb2kgZGF5IGRhIA0KdGFuZyB0aGVtIHR1IDUgLSA4JS4N Cg0KTmhpZXUgc3VjIGVwIHRhbmcgZ2lhIA0KDQpUaGVvIHRpZW4gc2kgTGUgRGFuZyBEb2FuaCwg dGhhbmcgMTAgdGh1b25nIHhheSByYSBuaGlldSBjb24gYmFvLCBtdWEgbG9uIG8gbWllbiANClRy dW5nLCBtaWVuIE5hbSwgbHUgY2hhbSBvIERCU0NMIGJhdCBkYXUgdGFuZyBuZW4ga2hhIG5hbmcg Z2lhIGx1b25nIHRodWMsIGhhbmcgaG9hIA0Kc2luaCBob2F0IHRyb25nIG11YSBsdSB0YW5nIHRh aSBuaGlldSBkaWEgcGh1b25nLiBOaHVuZyB0aGFuZyBjdW9pIG5hbSBsYSB0aG9pIGRpZW0gY2Fj IA0KRE4gY2h1YW4gYmkgbHVvbmcgaGFuZyBob2EgY2hvIG5odSBjYXUgVGV0IE5ndXllbiBkYW4g VGFuIE1hbyAyMDExIChjdW9pIHRoYW5nIDEsIA0KZGF1IHRoYW5nIDIuMjAxMSksIG5odSBjYXUg dGh1IG11YSwgdGFtIHRydSBoYW5nIGhvYSB0YW5nIGNhbyBsYSBzdWMgZXAgdGFuZyBnaWEgaGFu ZyANCmhvYSBuaHVuZyB0aGFuZyBjdW9pIG5hbS4gR2lhIHRoaSB0cnVvbmcgdGhlIGdpb2kgY2Fj IG1hdCBoYW5nIHBob2kgdGhlcCwgcGhhbiBib24sIA0Kbmd1eWVuIGxpZXUgc2FuIHh1YXQgdGh1 b2MgY28ga2hhIG5hbmcgdGFuZywgdGFjIGRvbmcgdmFvIHNhbiB4dWF0IHZhIGdpYSBjYSB0cm9u ZyBudW9jLiANClR5IGdpYSB0YW5nIGN1bmcga2hpZW4gY2FjIGhhbmcgaG9hIGtoYWMgbmh1OiBn YXMsIHNhdCB0aGVwLCBzdWEsIHRodW9jLi4uIHRhbmcgZ2lhIHRoZW8uIA0KDQpOZXUgbXVvbiBr aWVtIHNvYXQgQ1BJIG8gbXVjIDglL25hbSwgdHUgbmF5IGRlbiBjdW9pIG5hbSBDUEkgc2UgY2hp IGR1b2MgdGFuZyANCmtob2FuZyAxLDQ4JS4gQ2hpIGNhbiBtb3QgY3UgdGFuZyBkb3QgYmllbiBu aHUgdGhhbmcgOSwgY2hhYyBjaGFuIG11YyB0aWV1IHNlIGtob25nIA0KdGhlIHRodWMgaGllbi4g DQoNCkdpYSBnYXMsIGdpYXkgY3VuZyB0YW5nIA0KDQpUaGVvIEhpZXAgaG9pIEdpYXkgdmEgYm90 IGdpYXkgVmlldCBOYW0gKFZQUEEpLCBnaWEgY2FjIHNhbiBwaGFtIGdpYXkgZHUgYmFvIHNlIHRh bmcgDQp0aGVtIGl0IG5oYXQgMTAlIHR1IG5heSBkZW4gY3VvaSBuYW0gZG8gZ2lhIG5ndXllbiBs aWV1IGJvdCBnaWF5IG5oYXAga2hhdSB2YW4gbyBtdWMgDQpjYW8uIEhpZW4gbmdhbmggZ2lheSBw aGFpIG5oYXAga2hhdSBwaGFuIGxvbiBsdW9uZyBib3QgZ2lheSB0dSBDYW5hZGEsIEluZG9uZXNp YSwgDQpOZ2EsLi4uIFRoZW8gb25nIENhbyBUaWVuIFZpIC0gVEdEIENvbmcgdHkgZ2lheSBTYWkg R29uIC0gY29uZyB0eSBkYW5nIHhlbSB4ZXQgdmEgDQpuaGlldSBraGEgbmFuZyBzZSBjbyBtb3Qg ZG90IGRpZXUgY2hpbmggdGFuZyBnaWEgYmFuIHJhIHZvaSBtdWMgdGFuZyB0cnVuZyBiaW5oIGto b2FuZyANCjUlLiANCg0KR2lhIGdhcyBjdW5nIGRhIHRhbmcgdGhlbSAxNC4wMDAgLSAxNS4wMDAg ZG9uZy9iaW5oIDEyIGtnIHR1IG5nYXkgMS4xMCB2dWEgcXVhLiBDYWMgDQpjb25nIHR5IGdhcyBn aWFpIHRoaWNoIGxhIGRvIGdpYSBnYXMgdGhlIGdpb2kgdGhhbmcgMTAgdGFuZyB0aGVtIGtob2Fu ZyA1Miw1IFVTRC90YW4gc28gDQp2b2kgdGhhbmcgOS4gTW90IGRvYW5oIG5naGllcCAoRE4pIGdh cyBjaG8gYmlldCBraGEgbmFuZyB0YW5nIGdpYSB0cm9uZyBuaHVuZyB0aGFuZyB0b2kgDQpjdW5n IGNvIHRoZSBjb24geGF5IHJhIGRvIGNhYyBudW9jIGNoYXUgQXUsIE15IGJ1b2MgdmFvIG11YSBk b25nIG5lbiBuaHUgY2F1IHZlIA0KbmFuZyBsdW9uZyB0YW5nIGNhby4gDQoNCkhhbmcgYmluaCBv biBnaWEgbmhhcCBuaG9tIA0KDQpUaGVvIGtlIGhvYWNoLCBrZSB0dSAxLjcgZGVuIGhldCBUZXQg Tmd1eWVuIGRhbiwgSGEgTm9pICJyb3QiIDUwMCB0aSBkb25nIGNobyBjYWMgRE4sIA0KNDAwIHRp IGRvbmcgdGFtIHVuZyB0cnVvYyBjaG8gRE4gbXVhIGhhbmcgaG9hLCBkdSB0cnUgdm9pIGxhaSBz dWF0IDAlLCAxMDAgdGkgZG9uZyBkdW5nIA0KY2hvIGNhYyB0aW5oIHRoZSBraGFuIGNhcCBob24g bmh1IGJhbyBsdSwgdGhpZW4gdGFpLiBUdXkgbmhpZW4sIHRob2kgZ2lhbiBxdWEga2hpIGdpYSBj YSANCnRhbmcgbWFuaCB0aGkgaGFuZyBiaW5oIG9uIGN1bmcgbmhhcCBuaG9tIHRhbmcgdGhlby4g DQoNClRoZW8gb25nIE5ndXllbiBUaWVuIFRob2EsIEN1YyB0cnVvbmcgQ3VjIFF1YW4gbHkgZ2lh LCBkZSBiaW5oIG9uIGdpYSB0aHVjIHN1IGhpZXUgDQpxdWEsIGNhYyBtYXQgaGFuZyBwaGFpIGR1 b2MgcGhhbiBjYXAgY2hvIGRpYSBwaHVvbmcgcXVhbiBseS4gUGhhaSB5ZXUgY2F1IGRhbmcga3ks IGtlIA0Ka2hhaSBnaWEgZGUgbG9haSB0cnUgY2FjIHlldSB0byBiYXQgaG9wIGx5LiBLaWVtIHNv YXQgY2hhdCBjYWMgcGh1b25nIGFuIGdpYSBETiBkYSBkYW5nIA0Ka3kuIE5nb2FpIHJhLCB5ZXUg Y2F1IEROIHRpZXQga2llbSBjaGkgcGhpLCBrZSBjYSBnaWFtIGxhaSBkZSBiaW5oIG9uIHRoaSB0 cnVvbmcuIA0KDQpLaWVtIHNvYXQgZ2lhbiBsYW4gZ2lhIA0KDQpPbmcgTmd1eWVuIEFuaCBUdWFu IC0gUGhvIGN1YyB0cnVvbmcgQ3VjIFF1YW4gbHkgZ2lhIC0gY2hvIGJpZXQsIGRlIGNhYyBETiBu Z2hpZW0gDQp0dWMgdGh1YyBoaWVuIHZpZWMgZGFuZyBreSB2YSBrZSBraGFpIGdpYSB0aGVvIFRo b25nIHR1IDEyMiAoY28gaGlldSBsdWMgdHUgMS4xMCksIEN1YyANClF1YW4gbHkgZ2lhIHNhdSBr aGkgeGluIHkga2llbiBjdWEgY2FjIGJvLCBuZ2FuaCBkYSBiYW4gaGFuaCBkYW5oIHNhY2ggY2Fj IGNvbmcgdHksIGNhIA0KbmhhbiwgdG8gY2h1YyBwaGFpIGRhbmcga3kgdmEga2Uga2hhaSBnaWEu IA0KDQpOZ2FuaCB4aSBtYW5nIGdvbSA4IEROOyB0aGVwIHhheSBkdW5nIGNvIDE4IEROOyBraGkg aG9hIGxvbmcgNSBETjsgdGhhbiBjbyBUYXAgDQpkb2FuIHRoYW4ga2hvYW5nIHNhbjsgcGhhbiBi b24gaG9hIGhvYyAxMSBETjsgdGh1b2MgYmFvIHZlIHRodWMgdmF0OiAzNiBETjsgdGh1b2MgdGh1 IA0KeTogMTAgRE47IG11b2k6IDEwIEROOyBkdW9uZyBhbjogOCBETjsgdGhvYyBnYW86IFRDVCBs dW9uZyB0aHVjIE1pZW4gTmFtIHZhIFRDVCANCmx1b25nIHRodWMgTWllbiBCYWMuLi4gDQoNClZv aSB4YW5nIGRhdSwgdGF0IGNhIGNhYyBkYXUgbW9pIGtpbmggZG9hbmggZGV1IHBoYWkgZGFuZyBr eS4gUmllbmcgbWF0IGhhbmcgc3VhIGJvdCANCmNobyB0cmUgZW0gZHVvaSA2IHR1b2kgY28gNyBE TiBwaGFpIGRhbmcga3kgZ2lhIGdvbTogTmVzdGxlIFZOLCBEdW9jIHBoYW0gM0EsIENvbmcgDQp0 eSBzdWEgTWVpamkgVmlldCBOYW0sIENvbmcgdHkgVGllbiBUcmllbiwgU2VyeXVuZywgTWVhZCBK b25oc29uLCBGcmllc2RsYW4gDQpDYW1waW5hLi4uIFRoZW8gb25nIFR1YW4sIGNhYyBtYXQgaGFu ZyB0YW5nIGdpYSBiYXQgaG9wIGx5IHNlIGJpIGRpbmggY2hpIG11YyBnaWEgdmEgDQp5ZXUgY2F1 IHRodWMgaGllbiBtdWMgZ2lhIGN1IGxpZW4ga2UgdHJ1b2Mga2hpIHRhbmcuIE5hbmcgaG9uIGxh IHBoYXQgY2FuaCBjYW8sIHBoYXQgdGllbiwgDQp0dW9jIGdpYXkgcGhlcCBraW5oIGRvYW5oLiAN Cg0KQm8gVGFpIGNoaW5oIGN1bmcgYmFuIGhhbmggVGhvbmcgdHUgc28gMTU0LzIwMTAvVFQtQlRD IHZlIHF1eSBjaGUgdGluaCBnaWEgbW9pIA0KbmhhbSBraWVtIHNvYXQgdGluaCB0cmFuZyBnaWFu IGxhbiBraGkgY2FjIEROIHRodWMgaGllbiBkYW5nIGt5LCBrZSBraGFpIGdpYSB2b2kgY28gcXVh biANCnF1YW4gbHkuIERpZW0gbW9pIGN1YSBUaG9uZyB0dSAxNTQgbGEga2hvbmcgcXV5IGRpbmgg Z2lvaSBoYW4gdHkgbGUgdHVuZyBsb2FpIGNoaSBwaGkgZGUgDQpzbyBzYW5oLCBkb2kgY2hpZXUg a2hpIHRpbmggdG9hbiBnaWEgdGhhbmggc2FuIHBoYW0uIFRob25nIHR1IG1vaSBwaGFuIGJpZXQg cm8gY2FjIGNoaSANCnBoaSBob3AgbHksIGhvcCBsZSBkdW9jIHBoZXAgdGluaCB2YW8gY28gY2F1 IGdpYSB0aGFuaDsgY29uIGNhYyBsb2FpIGNoaSBraG9uZyBkdW9jIHRpbmggDQp2YW8gY2hpIHBo aSBob3AgbHksIGhvcCBsZSBkZSB4YWMgZGluaCBnaWEgdGhhbmggc2FuIHBoYW0gdGh1YyBoaWVu IHRoZW8gcXV5IGRpbmggY3VhIA0KcGhhcCBsdWF0IGhpZW4gaGFuaC4gDQoNClRoZW8gb25nIE5n dXllbiBWYW4gVHJ1eWVuLCBUcnVvbmcgcGhvbmcgQ2hpbmggc2FjaCB2ZSBnaWEgdmEgdGhhbSBk aW5oIGdpYSAtIEN1YyANClF1YW4gbHkgZ2lhLCBxdXkgZGluaCBtb2kgY2hvIGJpZXQgdGhlIG5h byBsYSBjYWMga2hvYW4gY2hpIHBoaSBob3AgbHksIGhvcCBsZSBjaHUga2hvbmcgDQpxdXkgZGlu aCB0aGFuaCBtb3QgdHkgbGUgY3UgdGhlIG5odSBxdXkgZGluaCBjdS4NCg0KLQ0KaHR0cDovL3Vz LjI0aC5jb20udm4vdGhpLXRydW9uZy10aWV1LWR1bmcvZGFuLWtob2MtdmktMi10cmlldS10YW4t bHVhLWUtYzUyYTMwNzc5Ny5odG1sIDAyLzA3LzIwMTAsIDEwOjMwDQoNClRodSB0dW9uZzogRGFu IGtob2MgdmkgMiB0cmlldSB0YW4gbHVhIGUgLSBMdWEgdSBkb25nLCB0aGlldSBraG8gY2h1YSAo MjAxMCkNCg0KTmd1b2kgbm9uZyBkYW4gREJTQ0wgZGFuZyBuZ29pIHRyZW4gZG9uZyBsdWEga2hp IGhvIGtob25nIGJhbiBkdW9jIGx1YS4gVGFpIHRob2kgDQpkaWVtIG5heSwgdW9jIHRpbmggY2Fj IHRpbmggdnVuZyBEQlNDTCBkYW5nIGNvIGhvbiAyIHRyaWV1IHRhbiBsdWEgY2h1IHlldSBsYSBs dWEgdnUgaGUgDQp0aHUgZGFuZyBiaSBlLCAga2hvbmcgdGlldSB0aHUgZHVvYy4NCg0KQ2hpZXUg MjMvNi8yMDEwLFRpZW4gc2kgTGUgVmFuIEJhbmggLSBWaWVuIHRydW9uZyBWaWVuIEx1YSBEQlND TCBjaG8gYmlldDogRGVuIGN1b2kgdGhhbmcgNyB0b2ksIGtoaQ0KbHVhIGhlIHRodSB0aHUgaG9h Y2ggY28gYmFuIGhvYW4gdGF0IHZvaSB0b25nIHNhbiBsdW9uZyBraG9uZyBkdW9pIDQgdHJpZXUg dGFuLCBsdW9uZyBsdWEgDQp0cm9uZyBkYW4gbHVjIGRvIHNlIHJhdCBsb24gbWEgY2h1IHlldSBs YSBsdWEgY2hhdCBsdW9uZyB0aGFwLCByYXQga2hvIGJhbi4gRGF5IHNlIGxhIGFwIGx1YyBsb24s IA0KdGllcCB0dWMgbGFtIGdpYSBsdWEgZ2lhbSBtYW5oLCBnYXkgdGhpZXQgaGFpIGNobyBub25n IGRhbi4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL1Nhbi1sdW9uZy1sdWEtVnUtRG9u Zy0tWHVhbi1kYXQtZ2FuLTE5Mi10cmlldS10YW4vMTQ4LzQ0NzY2MDguZXBpDQoNClNhbiBsdW9u ZyBsdWEgdnUgRG9uZyCWIFh1YW4gMjAxMCwgY2EgbnVvYywgZGF0IGdhbiAxOSwyIHRyaWV1IHRh biANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDI3LzIwMTAw NzAxMDEyMjM2LmFzcHggMDEvMDcvMjAxMCAxOjIyIE0uTg0KDQpDaGkgbXVhIHRhbSB0cnUgdG9p IGRhIDEgdHJpZXUgdGFuIHF1eSBnYW8gdnUgaGUgdGh1IDIwMTAgICANCg0KSG9tIHF1YSAzMC42 LCBUaHUgdHVvbmcgQ2hpbmggcGh1IGRhIGNvIHF1eWV0IGRpbmggOTkzL1FELVRUZyBjaGkgZGFv IG11YSB0YW0gdHJ1IA0KdG9pIGRhIDEgdHJpZXUgdGFuIHF1eSBnYW8gdnUgaGUgdGh1IDIwMTAs IHRob2kgaGFuIG11YSB0YW0gdHJ1IHRyb25nIDIgdGhhbmcgLSB0aW5oIHR1IG5nYXkgMTUuNyBk ZW4gMTUuOS4gDQoNClRodSB0dW9uZyBnaWFvIEJvIENvbmcgdGh1b25nIGNodSB0cmksIHBob2kg aG9wIHZvaSBCbyBOTi1QVE5UIGh1b25nIGRhbiBIaWVwIGhvaSANCkx1b25nIHRodWMgVmlldCBO YW0gdG8gY2h1YyB2aWVjIHBoYW4gZ2lhbyBjaG8gY2FjIGRvYW5oIG5naGllcCBtdWEgc28gbHVh LCBnYW8gdGFtIA0KdHJ1IHRyZW4sIGNvIHRpbmggZGVuIGtldCBxdWEgZGEgdGh1YyBoaWVuIG11 YSBsdWEsIGdhbyBkb2kgdm9pIHZ1IGRvbmcgeHVhbiAyMDA5LTIwMTAuIA0KDQpDYWMgZG9hbmgg bmdoaWVwIHRodWMgaGllbiBtdWEgbHVhLCBnYW8gdGFtIHRydSB0aGVvIGNvIGNoZSB0aGkgdHJ1 b25nLCB0dSBjaGl1IHRyYWNoIA0KbmhpZW0gdmUgaGlldSBxdWEga2luaCBkb2FuaC4gTmdhbiBz YWNoIE5oYSBudW9jIGhvIHRybyAxMDAlIGxhaSBzdWF0IHRpZW4gdmF5IG11YSANCmx1YSwgZ2Fv IHRhbSB0cnUsIHRob2kgZ2lhbiB0YW0gdHJ1IGR1b2MgaG8gdHJvIGxhaSBzdWF0IHRvaSBkYSBs YSA0IHRoYW5nIC0gdGluaCB0dSBuZ2F5IDE1LjcgZGVuIDE1LjExLg0KDQpOZ2FuIGhhbmcgTmhh IG51b2MgVmlldCBOYW0gc2UgY2hpIGRpbmggbW90IHNvIG5nYW4gaGFuZyB0aHVvbmcgbWFpIHRo dWMgaGllbiBjaG8gdmF5IG11YSBsdWEsIGdhbyB0YW0gdHJ1Lg0KDQpodHRwOi8vd3d3LnJmYS5v cmcvdmlldG5hbWVzZS9WaWV0bmFtZXNlTmV3cy92aWV0bmFtbmV3cy9WRkEtdG8tbWVldC1sb2Nh bC1vZmZpY2lhbHMtY29tcGFuaWVzLWZvci1yaWNlLXN0b3JhZ2UtcHJvZ3JhbS0wNzA2MjAxMDIy MDY1Ny5odG1sIFJGQSAwNi4wNy4yMDEwDQoNCkNhbiB0YW5nIGN1b25nIHh1YXQga2hhdSBnYW8g ZGUgZ2lhbSB0b24ga2hvDQoNCkhpZW4gbmF5IG5vbmcgZGFuIGRvbmcgYmFuZyBzb25nIEN1dSBM b25nIHRydSBsdWEgZGF5IG5oYSB2aSBnaWEgeHVvbmcgdGhhcCBkdW9pIGdpYSB2b24sIG11b24g YmFuIGN1bmcga2hvbmcgY28gdGh1b25nIGxhaSBkZW4gbXVhLiAgDQoNCmh0dHA6Ly93d3cudGhl c2FpZ29udGltZXMudm4vSG9tZS9raW5oZG9hbmgvZGF1dHUvMzY2NzUvIFZhbiBOYW0gMjUvNi8y MDEwLCAxNjo0MyAoR01UKzcpIA0KDQpDaGFtIGNvbmcgYm8gZ2lhIHRoYW5oIHNhbiB4dWF0IGx1 YSB2dSBoZSB0aHUgMjAxMA0KDQpQaHVvbmcgcGhhcCB0b2kgdXUgbmhhdCBoaWVuIG5heSBjaGlu aCBsYSBwaGFpIHRodSBtdWEgbHVhIHRhbSB0cnUuIFRyb25nIGRpZXUga2llbiBoaWVuIA0KbmF5 LCByYXQgY2FuIGNvIHN1IGNhbiB0aGllcCBjdWEgQ2hpbmggcGh1IGRlIGxhbSBzYW8gbm9uZyBk YW4gYmFuIGx1YSBjbyBsYWksIGRvYW5oIA0KbmdoaWVwIHRpZXUgdGh1IGN1bmcga2hvbmcgYmkg bG8sIG9uZyBIdXluaCBNaW5oIEh1ZSAtIFRvbmcgdGh1IGt5IEhpZXAgaG9pIGx1b25nIA0KdGh1 YyBWaWV0IE5hbSAoVkZBKSwgIGNobyBoYXkuIA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5h bWVzZS9pbl9kZXB0aC9Gb3JnZXQtdGhlLTMwLWJlbmVmaXQtc2NoZW1lLU5OZ3V5ZW4tMDcxNTIw MTAxNDAzNTQuaHRtbCBOYW0gTmd1eWVuIDIwMTAtMDctMTUNCg0KVGh1IHR1b25nOiBWYW4gZGUg YmFvIGRhbSBnaWEgbHVhIGRlIG5vbmcgZGFuIGxhaSAzMCUga2hvbmcgZHVvYyB0aHVjIHRoaSAg DQoNClZ1IGhlIHRodSAyMDEwIGx1YSBkYXkgYm8gbmh1bmcgbm9uZyBkYW4gdGhhdCB2b25nIHZp IGdpYSB0aGFwIHRoYW0gY2hpIGtob25nIGNvIA0Kbmd1b2kgbXVhLiBDaGluaCBwaHUgZ2lhaSBj dXUgYmFuZyBxdXlldCBkaW5oIG11YSB0YW0gdHJ1IHRoZW8gZ2lhIHRoaSB0cnVvbmcsIA0KQm8g Q29uZyBUaHVvbmcgYW4gZGluaCBtdWMgZ2lhIGx1YSB0b2kgdGhpZXUgMy41MDBkL2tnIGdhbiBz YXQgZ2lhIHRoYW5oIHNhbiB4dWF0LiANCg0KR2lhIHRoYW5oIGNhbywgdGh1IG11YSB0aGFwDQoN ClRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgY2hpIGRhbyBwaGFpIG11YSBsdWEgY2hvIG5vbmcg ZGFuIHZvaSBnaWEgYmFvIGRhbSBjbyBsYWkgDQp0dSAzMCUgdG9pIDQwJS4gVHV5IHZheSBjaGkg ZGFvIGN1YSBUaHUgdHVvbmcgY2h1YSBiYW8gZ2lvIGR1b2MgdGh1YyBoaWVuIG1vdCBjYWNoIA0K bmdoaWVtIHR1Yy4NCg0KIk5vbmcgZGFuIG5oaWV1IGJ1YyB4dWMgbGFtIG5odW5nIGJpZXQgbGFt IHNhbyBiYXkgZ2lvLCBtaW5oIGxhbSBjdSBsYW0gY2hpbmggcGh1IA0Kbm9pIGN1IG5vaSwgbmh1 bmcgbWF5IG9uZyB0aHVvbmcgbGFpIG5hbSBkYW8gZGFuZyBjYW4gaGV0IHJvaSwgbm9uZyBkYW4g Y2hpIG5hbSBkYW5nIA0KbHVvaSB0aG9pLiItIE1vdCBub25nIGRhbiBEQlNDTA0KDQpEb2kgdm9p IHZ1IGx1YSBoZSB0aHUgMjAxMCBkYW5nIHUgZG9uZywgVGh1IHR1b25nIHF1eWV0IGRpbmggY2hv IG11YSB0YW0gdHJ1IDEgdHJpZXUgDQp0YW4gZ2FvLCBuaHVuZyBsYW4gbmF5IHhhYyBkaW5oIEhp ZXAgSG9pIEx1b25nIFRodWMgbXVhIHRoZW8gZ2lhIHRoaSB0cnVvbmcgdmEgdHUgY2hpdSANCnRy YWNoIG5oaWVtIHZlIGhpZXUgcXVhIGtpbmggZG9hbmguIA0KDQpUaGVvIHF1eWV0IGRpbmggbmF5 LCBkb2FuaCBuZ2hpZXAgbXVhIHRhbSB0cnUgZHVvYyB2YXkgdm9uIGtob25nIHRpbmggbGFpIGRv IG5nYW4gDQpzYWNoIE5oYSBudW9jIGhvIHRyby4gTmdheSAxMC83IHNhdSBuaGlldSB0cmFuaCBj YWksIEJvIENvbmcgVGh1b25nIGRlIG5naGkgSGllcCBIb2kgDQpMdW9uZyBUaHVjIFZpZXQgTmFt IHRyaWVuIGtoYWkgY2hvIGNhYyB0aGFuaCB2aWVuIG11YSB0YW0gdHJ1IGdhbyB0dW9uZyBkdW9u ZyBnaWEgbHVhIA0KdG9pIHRoaWV1IDMuNTAwZC9rZywgbXVjIGdpYSBuYXkgdGhhcCBob24gNTAw IGRvbmcva2cgc28gdm9pIGdpYSBzYW4gNC4wMDBkL2tnIG1hIA0KSGllcCBIb2kgTHVvbmcgVGh1 YyBWaWV0IE5hbSB0aHVjIGhpZW4gdHJvbmcgdnUgZG9uZyB4dWFuIGRhdSBuYW0uICANCg0KTmd1 b2kgdHJvbmcgbHVhIGRvbmcgYmFuZyBzb25nIEN1dSBMb25nIHBoYW4gdW5nIGRheSBhdSBsbyB2 aSBnaWEgc2FuIG11YSBsdWEgcXVhIA0KdGhhcDoNCg0KIk5vbmcgZGFuIG5oaWV1IGJ1YyB4dWMg bGFtIG5odW5nIGJpZXQgbGFtIHNhbyBiYXkgZ2lvLCBtaW5oIGxhbSBjdSBsYW0gY2hpbmggcGh1 IA0Kbm9pIGN1IG5vaSwgbmh1bmcgbWF5IG9uZyB0aHVvbmcgbGFpIG5hbSBkYW8gZGFuZyBjYW4g aGV0IHJvaSwgbm9uZyBkYW4gY2hpIG5hbSBkYW5nIA0KbHVvaSB0aG9pLiBHaGUgaXQgbGFtLCB0 aHVvbmcgbGFpIG11YSBsdWEgdHVvaSBkZSB2ZSB0dSBzYXkgaG8ga2hvbmcgZGUgbm9uZyBkYW4g cGhvaSBzYXkuIA0KTHVhIHR1b2kgaG8gdGluaCBoZXQgcm9pIG11YSByZSBsYW0gY2hpIGNvIDIu NjAwZC0yLjcwMGQva2cgdGhhbmggdGh1IGNvIHNvIG5ndW9pIGJhbiwgc28gDQpraGFjIGdpdSBs dWEgbGFpLiIgICAgDQoNClRoZW8gQm8gTm9uZyBOZ2hpZXAgUGhhdCBUcmllbiBOb25nIFRob24s IHZ1IGhlIHRodSBub2kgY2h1bmcgYmFvIGdvbSBsdWEgc29tLCB2dSANCmNoaW5oIHZhIGx1YSBt dW9uIGNvIHRoZSBkYXQgaG9uIDggdHJpZXUgdGFuIG5lbiBjYW4ga2hhaSB0aG9uZyB0aGkgdHJ1 b25nIHh1YXQga2hhdSBkZSANCnRyYW5oIHUgZG9uZy4gVHJvbmcgY3VvYyBob3AgbmdheSA5Lzcg byBUUC5IQ00sIGRhaSBkaWVuIGNhYyB0aW5oIGRvbmcgYmFuZyBzb25nIEN1dSANCkxvbmcgZGV1 IGtldSBnb2kgSGllcCBIb2kgTHVvbmcgVGh1YyBuaGFuaCBjaG9uZyB0cmllbiBraGFpIG11YSBs dWEgdGFtIHRydSBjaG8gbm9uZyBkYW4uIA0KDQpNb3QgeSBraWVuIGRpZW4gaGluaCBkdW9jIGJh byBjaGkgdHJpY2ggdGh1YXQgY2hvIHRoYXkgc3UgbHVuZyB0dW5nIGN1YSBrZSBob2FjaCBnaWFp IGN1dSANCnRoaSB0cnVvbmcuIFRoZW8gZG8sIFBobyBjaHUgdGljaCBUaGFuaCBwaG8gQ2FuIFRo byBOZ3V5ZW4gVGhhbmggU29uIHBoYXQgYmlldSwgdnUgDQpkb25nIHh1YW4gY28gZ2lhIHRoYW5o IHRoYXAgdmEgZ2lhIG11YSBjYW8sIG5heSB2dSBoZSB0aHUgZ2lhIHRoYW5oIGNhbyBsYWkgbXVh IHRoYXAgdGhpIA0KbWF1IHRodWFuIHF1YS4gTmV1IENoaW5oIHBodSBxdWkgZGluaCBkb2FuaCBu Z2hpZXAgbXVhIHRoZW8gZ2lhIHRoaSB0cnVvbmcgdGhpIGNvIGNhbiANCk5oYSBudW9jIGhvIHRy byBoYXkga2hvbmcgdmEgZG9hbmggbmdoaWVwIGNvIGNoYWMgZHVuZyB0aWVuIGhvIHRybyBkZSBt dWEgbHVhIGdhby4gDQoNCkdpYSB0aGFuaCBzYW4geHVhdCBsdWEgdmEgbXVjIGNvIGxhaSBsYSBt b3QgdmFuIGRlIGdheSBuaGlldSB0cmFuaCBjYWksIGNodW5nIHRvaSB0cmljaCANCm5oYW4gZGlu aCBjdWEgVFMgTGUgVmFuIEJhbmgsIFZpZW4gdHJ1b25nIFZpZW4gbHVhIHZ1bmcgZG9uZyBiYW5n IHNvbmcgQ3V1IExvbmc6DQoNCiJUaG9uZyB0aHVvbmcgVmllbiBsdWEgY2h1bmcgdG9pIHRpbmgg cGhpIGRhdSB0dSB0cnVjIHRpZXAsIHNhbiB4dWF0IGx1YSB0aHVvbmcgcGhhbSBkYXUgDQp0dSB0 dSAxMiB0b2kgMTQgdHJpZXUgZG9uZyBtb3QgaGVjLXRhLiBUcm9uZyB2dSBkb25nIHh1YW4sIG5h bmcgc3VhdCBiYSBjb24gbGFtIHR1IDYgdG9pIDcgDQp0YW4vaGEgdGhpIGdpYSB0aGFuaCB0dSAy LjAwMGQgdG9pIDIuNTAwZC9rZy4gQ29uIHZ1IGhlIHRodSBjdW5nIGRhdSB0dSAxMiB0b2kgMTQg dHJpZXUgDQpkb25nL2hhIG1hIGNoaSBkdW9jIDQgdG9pIDUgdGFuIHRoaSBjaGkgcGhpIGdpYSB0 aGFuaCBwaGFpIHR1IDMuMDAwZC9rZy4gVm9uIDMuMDAwZCBtYSANCmJhbiAzLjMwMGQtMy41MDBk L2tnIHRoaSBiYSBjb24gbGFpIGtob25nIGRhbmcga2UuIENodWEga2UgY28gbmh1bmcgbHVjIHBo b2kgc2F5IGtob25nIA0KZGFtIGJhbyBiaSBodSBob25nIGhhbyBodXQgdGhpIG5ndW9pIHRhIGto b25nIGNvIGxhaS4iDQoNClRpbmggZGVuIHRydW5nIHR1YW4gdGhhbmcgNywgY2FjIGRvYW5oIG5n aGllcCB2dW5nIGRvbmcgYmFuZyBzb25nIEN1dSBMb25nIGRhbmcgdG9uIA0Ka2hvIGtob2FuZyAx IHRyaWV1IDUwMCBuZ2FuIHRhbiBnYW8sIHBoYW4gbG9uIGxhIGdhbyBkb25nIHh1YW4gbXVhIHZv aSBnaWEgY2FvIGNodWEgdGhlIA0KeHVhdCBraGF1LiBOaHUgdmF5IG5ldSBraG9uZyBnaWFpIHBo b25nIGtobywgbXVvbiBtdWEgdmFvIGN1bmcga2hvbmcgY28gY2hvIGRlIGNodWEuIA0KDQpIaWVu IG5heSB0aGkgdHJ1b25nIHh1YXQga2hhdSBnYW8gdHJhbSBsYW5nLCBIaWVwIEhvaSBMdW9uZyBU aHVjIFZpZXQgTmFtIGtodXllbiANCmtoaWNoIGRvYW5oIG5naGllcCB4dWF0IGJhbiBnYW8ga2hv bmcgaGFuIGNoZSBuaHUgbmh1bmcgbmFtIHRydW9jLCBjaGkgeWV1IGNhdSBraG9uZyANCmdpYW0g Z2lhIGR1b2kgMzAwIFVTRC90YW4uVmlldCBOYW0gZHUga2llbiB4dWF0IGtoYXUgdHUgNiB0cmll dSB0b2kgNiB0cmlldSAyMDAgbmdhbiB0YW4gDQpnYW8gdHJvbiBuYW0gMjAxMCwgbXVjIHRodWMg eHVhdCBudWEgbmFtIHZ1YSBxdWEga2hvYW5nIDMsNSB0cmlldSB0YW4gdHJpIGdpYSAxLDMgdHkg VVNELg0KDQoiVm9uIDMuMDAwZCBtYSBiYW4gMy4zMDBkLTMuNTAwZC9rZyB0aGkgYmEgY29uIGxh aSBraG9uZyBkYW5nIGtlLiBDaHVhIGtlIGNvIG5odW5nIA0KbHVjIHBob2kgc2F5IGtob25nIGRh bSBiYW8gYmkgaHUgaG9uZyBoYW8gaHV0IHRoaSBuZ3VvaSB0YSBraG9uZyBjbyBsYWkuIi1UUyBM ZSBWYW4gDQpCYW5oLCBUcnVvbmcgVmllbiBsdWEgREJTQ0wNCg0KVmlldCBOYW0gZGEgcGhhdCB0 cmllbiBzYW4geHVhdCBsdWEgZ2FvIHF1YSBuaGFuaCwgdHUgY2hvIHBoYWkgbmhhcCBsdW9uZyB0 aHVjIG1vaSBuYW0gDQpkYSB0cm8gdGhhbmggbnVvYyB4dWF0IGtoYXUgZ2FvIGxvbiB0aHUgbmhp IHRoZSBnaW9pLiBUdXkgdmF5IGNhYyBjaHV5ZW4gZ2lhIGNobyByYW5nLCANCmhvYXQgZG9uZyBz YW4geHVhdCB2YSB0aWV1IHRodSBsdWEgZ2FvIGN1YSBWaWV0IE5hbSBraG9uZyBjbyBiYWkgYmFu LiBEb2FuaCBuZ2hpZXAgDQptdWEgZ2FvIGtob25nIG11YSBsdWEgbmVuIGNoaSBjbyB0aHVvbmcg bGFpIG11YSBsdWEgY2hvIG5vbmcgZGFuLiBDYSBudW9jIGNoYXkgdGhlbyANCnNhbiBsdW9uZyB2 YSBraW0gbmdhY2gsIHh1YXQga2hhdSBuaGlldSBuaHVuZyBsYSBzYW4geHVhdCBuaG8gdGh1IGdv bSB0dSBoYW5nIHRyaWV1IA0KY2FuaCBkb25nIG5obyBiZSBjdWEgbm9uZyBkYW4uIFZ1YSBsdWEg eHVhdCBraGF1IGRvbmcgYmFuZyBzb25nIEN1dSBMb25nLCB0cmVuIHRodWMgDQp0ZSBraG9uZyBj byBoZSB0aG9uZyBraG8gY28gdGhlIHRvbiB0cnUgbm9pIG1vdCB2dSBtdWEuIEx1YyBuYW8gY3Vu ZyBwaGFpIHF1YXkgdm9uZyBiYW4gcmEgDQp0aGkgbW9pIG11YSB2YW8gZHVvYywgY2h1eWVuIHRv biB0cnUgaGFuZyBuYW0gZGUgZ2l1IGdpYSBuaHUgY3VvbmcgcXVvYyBnYW8gVGhhaSBMYW4gDQps YSBkaWV1IGtob25nIGFpIGRhbSBuZ2hpIHRvaS4gDQoNCi0NCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyNi8yMDEwMDYyNTAwMDAwNS5hc3B4IA0KDQpUaHUgdHVv bmc6IEhhbmcgbG9hdCBkdSBhbiBkaWVuIGNoYW0gdGllbiBkbyAtIERvIGxhIG1vdCB0cm9uZyBu aHVuZyBuZ3V5ZW4gbmhhbiBjaGluaCANCmRhbiBkZW4gdGluaCB0cmFuZyB0aGlldSBkaWVuIG5o dSBoaWVuIG5heS4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Bza3MvMjAxMDA2L1RoYS1u b2ktZ2lhLXRodWMtcGhhbS1jaHVjLW5hbmctTmd1b2ktbXVhLWxhbmgtZHUtOTE1MTk2LyAxMC8w Ni8yMDEwIChHTVQrNykNCg0KVGh1IHR1b25nOiBUaGEgbm9pIGdpYSB0aHVjIHBoYW0gY2h1YyBu YW5nIC0gTmd1b2kgbXVhIGxhbmggZHUNCg0KVGhpIHRydW9uZyB0aHVjIHBoYW0gY2h1YyBuYW5n IGRhbmcgcGhhdCB0cmllbiBtYW5oIG1lLiBOaHVuZyBjYWMgcXV5IGRpbmggdmUgcXVhbiBseSB0 aHVjIHBoYW0gY2h1YyBuYW5nIA0KZGFuZyB0byByYSBxdWEgbGFjIGhhdS4gUGhhbiBxdWFuIGx5 IGdpYSBjdWEgbWF0IGhhbmcgbmF5IGRhbmcgYmkgdGhhIG5vaSBob2FuIHRvYW4uDQoNCi0NCmh0 dHA6Ly93d3cuYmFvYmFja2FuLm9yZy52bi9jaGFubmVsLzExMDMvMjAxMDA1L0JhYy1LYW4teGV0 LXh1LW5ob20tdHJvbS1jYXAteGUtbWF5LWxpZW4tdGluaC0xOTQzOTQzLyAxMDo0OCcgMjcvMDUv MjAxMCAoR01UKzcpDQoNCkFOVFQ6IFRyb20gY2FwIHhlIG1heSBob2FuaCBoYW5oIC0gbGllbiB0 aW5oIA0KDQpodHRwOi8vZGZjLnZuL3hhLWhvaS9waGEtZHVvbmctZGF5LXRyb20tY2FwLXhlLW1h eS1zYW5nLWNhbXB1Y2hpYS10aWV1LXRodS8xODkxMi5kZmMNCg0KQU4tVFQ6IHRyb20gY2FwIHhl IG1heSBzYW5nIENhbXB1Y2hpYSB0aWV1IHRodQ0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9Q aGFwLWx1YXQvMjAwOC8wOS8zQkEwNjQzMS8gOS85LzIwMDgsIDExOjM2IEdNVCs3DQoNClRodSB0 dW9uZzogVHJvbSBjYXAgdHVuZyBob2FuaCBraGFwIG5vaSAtIENvIHRodSBwaGFtIGFuIHRyb20g MjMgeGUgbWF5IG1hIHZhbiBjaHVhIGJpIGJhdCANCg0KaHR0cDovL3d3dy5hbm5pbmh0aHVkby52 bi90aWFueW9uL2luZGV4LmFzcHg/YXJ0aWNsZWlkPTcwMzE5JmNoYW5uZWxpZD04MCAyMi8wMy8y MDEwLCAxODowNg0KDQpUaHUgdHVvbmc6IFRyb20gY2FwIGhhbmcgdHJhbSB4ZSBtYXkgdGFpIGNh YyBraHUgY2h1bmcgY3UNCg0KTmhpZXUgZG9pIHR1b25nIGRhIGN1YSB0cm9tIGNhcCBoYW5nIHRy YW0geGUgbWF5IGNhYyBsb2FpIHRhaSBjYWMga2h1IGNodW5nIGN1IGN1YSBuZ3VvaSBkYW4gDQoN Cmh0dHA6Ly90aW50dWMueGFsby52bi8wMC0xMDI4NTA2MjE3L2JvX2NoaW5oX3RyaV9sYW1fdmll Y192b2lfYmFuX3RodW9uZ192dV9kYW5nX3V5X2NvbmdfYW5fdHJ1bmdfdW9uZy5odG1sP21vZGU9 cHJpbnQgUFYgdmEgVFRYVk4gIDMwLzcvMjAxMCANCg0KVGh1IHR1b25nOiBUaW5oIGhpbmggdHJh dCB0dSBhbiB0b2FuIHhhIGhvaSBuaGlldSBoYW4gY2hlIA0KDQotIENvbmcgdGFjIG5hbSwgcGhh biB0aWNoLCBkdSBiYW8gdGluaCBoaW5oIHZhIHRoYW0gbXV1IGNoaWVuIGx1b2MgdHJvbmcgY29u ZyB0YWMgDQpkYW0gYmFvIGFuIG5pbmggdHJlbiBtb3Qgc28gbGluaCB2dWMgY29uIGhhbiBjaGUu IA0KDQotIEFuIG5pbmgsIHRyYXQgdHUgY2FjIGRpYSBiYW4gdHJvbmcgZGllbSBjaHVhIHRoYXQg dnVuZyBjaGFjLiANCg0KLSBDb25nIHRhYyBwaGF0IGhpZW4sIGRhdSB0cmFuaCB2b2kgbW90IHNv IGxvYWkgdG9pIHBoYW0gbW9pIHh1YXQgaGllbiwgdG9pIHBoYW0gDQpraW5oIHRlLCB0aGFtIG5o dW5nIGNodWEga2lwIHRob2k7IA0KDQotIERpZXUgdHJhLCB4dSBseSBtb3Qgc28gdnUgdGhhbSBu aHVuZyBjb24ga2VvIGRhaS4gDQoNCi0gQ29uZyB0YWMgdHUgdHVvbmcsIGdpYW8gZHVjIGNoaW5o IHRyaSBvIG1vdCBzbyBub2kgY2h1YSBuaGF5IGJlbiwga2lwIHRob2kuIA0KTW90IGJvIHBoYW4g Y2FuIGJvLCBkYW5nIHZpZW4sIGNoaWVuIHNpIHR1IHR1b25nIHRydW5nIGJpbmggY2h1IG5naGlh LCBsYW0gdmllYyANCmNhbSBjaHVuZywgdGluaCBjaGllbiBkYXUgdmEgdGluaCB0aGFuIHRyYWNo IG5oaWVtIGNodWEgY2FvOyBtb3Qgc28gaXQgdGhpZXUgcmVuIA0KbHV5ZW4gdHUgZHVvbmcsIHZp IHBoYW0ga3kgbHVhdCwgdmkgcGhhbSBwaGFtIGNoYXQsIGRhbyBkdWMsIHZpIHBoYW0gcGhhcCBs dWF0LiANCg0KaHR0cDovL3d3dy5raW5odGVub25ndGhvbi5jb20udm4vU3RvcnkvYmFuZG9jLzIw MTAvMy8yMjI4MS5odG1sIDAxLzAzLzIwMTAtMTE6MDEgQU0gDQoNClRodSB0dW9uZzogU2FjaCBt ZSB0aW4gZGkgZG9hbiBiYXkgYmFuIGNvbmcga2hhaSBraGFwIG5vaSANCg0KaHR0cDovL2RhbnRy aS5jb20udm4vYzIwMi9zMjAyLTQwMDgzNi9tZS10aW4tZGktZG9hbi12YW4tY29uLXBoby1iaWVu Lmh0bSAwNy8wNi8yMDEwIC0gMDk6MDcNCg0KVGh1IHR1b25nOiBNZSB0aW4gZGkgZG9hbiBsYSBw aG8gYmllbiAtIG1vaSBuZ3VvaSBkZXUgYmlldCBraG9uZyBsZSBDaGluaCBwaHUgbGFpIGtob25n IGJpZXQgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8y MDEwMDkyMjAxMTQyOS5hc3B4IFRoYW5oIERvbmcgLSBCdWkgQ2hpZW4gMjIvMDkvMjAxMCAxOjE0 IA0KDQpUaHUgdHVvbmc6ICJDb25nIGRhbiBraG9uZyBxdW9jIHRpY2giICANCg0KTW90IGJvIHBo YW4gbmd1b2kgZGFuIGRlbiBsdWMgY2hldCBjdW5nIGNodWEgdGhlIGhvYW4gdGhhbmggdGFtIG5n dXllbiBjaGluaCBkYW5nIGxvIGNhaSANCnNvIGhvIGtoYXUgY2hvIGdpYSBkaW5oIHZhIGNhYyBj b24gZHVvYyBjYWkgZ2lheSBDTU5ELCBtYWMgZHUgZGEgbmhpZXUgbGFuIGRlIGRhdCB2b2kgY2Fj IGNvIHF1YW4gY28gdGhhbSBxdXllbi4NCg0KKEFuaCBjaHVwOiBCYSBIdWUgdmEgY2FjIGNvbiBj aGF1IGRlbiBnaW8gbmF5IHZhbiBtbyBjbyBkdW9jIHNvIGhvIGtoYXUgLSBBbmg6IFRoYW5oIERv bmcpDQoNCktoaSBQViBUaGFuaCBOaWVuIHRpbSBkZW4gbmhhLCBvbmcgVGluaCB2dWEgcXVhIGRv aSA0IG5nYXkuIE5oaW4gY2FuIG5oYSB0cmFuaCwgdmFjaCANCmRhdCwgeGFjIHhvIGR1IHRoYXkg Z2lhIGRpbmggb25nIFRpbmgga2hvIGtoYW4gdGhlIG5hby4gQmVuIGRpIGFuaCBjaG9uZywgYmEg SHVlIHRob24gDQp0aHVjOiAiT25nIG5oYSB0b2kgY2hvIGRlbiBsdWMgY2hldCBjdW5nIGNodWEg dGhlIGhvYW4gdGhhbmggdGFtIG5ndXllbiBsbyBjYWkgc28gaG8gDQpraGF1IGNobyBnaWEgZGlu aCB2YSBjYWMgY29uIGR1b2MgY2FpIGdpYXkgQ01ORCIuIA0KDQpEbyBsYSBiaSBraWNoIGN1YSBn aWEgZGluaCBvbmcgVHJhbiBUaGFuaCBUaW5oIHZhIGJhIEh1eW5oIEh1ZSBvIDE0M0EvNiBkdW9u ZyBCbyANCkdhLCB0byA2LCBhcCAxLCB4YSBBbiBQaHUgVGF5IChodXllbiBCaW5oIENoYW5oLCBU UC5IQ00pLiBPbmcgVGluaCBxdWUgbyBRdWFuZyANCk5nYWksIGtldCBob24gdm9pIGJhIEh1ZSB0 YWkgU2FpIEdvbiB0cnVvYyBuYW0gMTk3NS4gTmFtIDE5ODksIGhvIGRvbiB2ZSBkaWEgY2hpIHRy ZW4gDQpzb25nIGNobyBkZW4gbmF5LiBPbmcgVGluaCBjbyBobyBraGF1IG8gUXVhbmcgTmdhaSB2 YSBjbyBDTU5ELCBiYSBIdWUgdGhpIGdpYSBkaW5oIHR1IA0KdGFuLCBnaWF5IHRvIG1hdCBoZXQs IGNoaSBjb24gQ01ORCwgbmhhIGtob25nIGNvIGNodSBxdXllbiBuZW4gdmllYyBuaGFwIGtoYXUg DQpUUC5IQ00gbGEga2hvbmcgdGhlLiBCYSBIdWUgY28gNCBuZ3VvaSBjb24sIGdpYXkgdG8gdHV5 IHRoYW4gY3VhIGhvIGNoaSBjbyB2b24gdmVuIA0Ka2hhaSBzaW5oLiBOZ3VvaSBjb24gbG9uIG5h eSBkYSAzMyB0dW9pLCBuaG8gbmhhdCAyNiB0dW9pLCB0YXQgY2Ega2hvbmcgZHVvYyBob2MgaGFu aCANCmRlbiBub2kgZGVuIGNob24uIEtoaSB0cnVvbmcgdGhhbmgsIG1vIHVvYyBuaG8gbmhvaSBs YSB4aW4gdmFvIGxhbSBjb25nIG5oYW4gY3VhIA0KY2FjIGNvbmcgdHksIHhpIG5naGllcCBjdW5n IHRybyBuZW4geGEgdm9pLiANCg0KW1RpZXAgeHVjIHZvaSBUaGFuaCBOaWVuLCBvbmcgTmd1eWVu IFZhbiBDaGllbiwgUGhvIGJpIHRodSBEYW5nIHV5IHhhIHZhIG9uZyANCk5ndXllbiBLaW0gS2hh bmgsIFBobyBjaHUgdGljaCBVQk5EIHhhIEFuIEJpbmgsIGRldSBjaG8gYmlldCBzZSB0aWVuIGhh bmggeGVtIHhldCwgDQp4YWMgbWluaCB2ZSB0cnVvbmcgaG9wIGN1YSBvbmcgTHVvbmcgWHVhbiBU aGFuaC4gIkRheSBsYSBtb3QgdGhpZXUgc290IGN1YSBkaWEgDQpwaHVvbmcgY2h1bmcgdG9pIGto aSBhbmggVGhhbmggc29uZyB0cmVuIGRpYSBiYW4gZGEgbGF1IG1hIGtob25nIGNvIGdpYXkgdG8g Z2kgY2EuIA0KVHJ1b2MgbWF0LCBjaHVuZyB0b2kgc2UgaHVvbmcgZGFuIGFuaCBUaGFuaCBsYW0g ZG9uIGRlIFVCTkQgeGEgeGFjIG5oYW4gdmUgdGluaCANCnRyYW5nIGN1IHRydSBuaGFtIGdpdXAg YW5oIGNvIGRpZXUga2llbiBkZW4gdGFtIHRydSB2YSBzaW5oIHNvbmcgdGFpIFRQLkhDTSIsIG9u ZyANCkNoaWVuIG5vaS5dIA0KDQpOZ3VvaSBjb24gbG9uIHRlbiBsYSBUcmFuIFRoYW5oIEhhaSBk YSBsYXAgZ2lhIGRpbmggdmEgZGEgY28gMyBjb24uIFZpIGtob25nIGNvIENNTkQgDQpuZW4ga2hv bmcgdGhlIGRhbmcga3kga2V0IGhvbiwga2hhaSBzaW5oIGNobyBjYWMgY29uIHRoaSBsYW0gZHVv YyBuaHVuZyB2aSBraG9uZyBjbyBobyANCmtoYXUgbmVuIHR1b25nIGxhaSBjdWEgbmh1bmcgZHVh IGNvbiBjaGFuZyBiaWV0IHJhIHNhby4gQ29uIG5ndW9pIGNvbiBnYWkgdGh1IGJhIGxhIA0KVHJh biBUaGkgS2ltIEN1YyBtdW9uIHhpbiB2YW8gY29uZyB0eSBuaHVuZyBub2kgbmhhbiB2aWVjIGto b25nIGNoYXAgbmhhbiB2aSBraG9uZyANCmNvIENNTkQuIEtoaSBDdWMgbGF5IGNob25nLCBkdSBj aG9uZyBjbyBobyBraGF1IG5odW5nIHZvIGNob25nIHZhbiBraG9uZyB0aGUgZGFuZyANCmt5IGtl dCBob24uLi4NCg0KVGllcCB4dWMgdm9pIGNodW5nIHRvaSwgb25nIFZvIER1YyBNYW5oLCBUbyB0 cnVvbmcgdG8gNiwgYXAgMSwgeGEgQW4gUGh1IFRheSwgbm9pOiANCiJEYXkgbGEgYnVjIHh1YyBr aG9uZyBjaGkgY3VhIGdpYSBkaW5oIGJhIEh1ZSBtYSBjb24gY3VhIGJhbiB0aGFuIHRvaSB2YSBi YSBjb24gbyBkYXkuIA0KQ28gY3VvYyBob3AgbmFvIHRvaSBjdW5nIHBoYW4gYW5oLCBtb25nIG1v aSBjYXAgdHJlbiBiYW5nIGNhY2ggbmFvIGRvIHhlbSB4ZXQsIGdpYWkgDQpxdXlldCwgZ2l1cCBj aG8gY2FjIGNoYXUgbGFtIGR1b2MgQ01ORCBuaHVuZyB2YW4ga2hvbmcgZHVvYy4gTHkgZG8geGEg ZHVhIHJhIGxhIGRvIA0Ka2h1IG5heSBiaSBnaWFpIHRvYSwga2hvbmcgY2hvIG5oYXAgaG8ga2hh dSwga2hvbmcgY28gaG8ga2hhdSB0aGkga2hvbmcgdGhlIGNhcCBDTU5EIi4gDQoNClRyb2kgdGhl byBkb25nIGRvaS4uLg0KDQpDb24gdHJ1b25nIGhvcCBjdWEgb25nIEx1b25nIFh1YW4gVGhhbmgg KHRlbiBnb2kga2hhYyBsYSBMZSBEYWkgUGh1b25nLCBzaW5oIG5hbSANCjE5NDgpIG1hIGNodW5n IHRvaSB0aWVwIHh1YyB0aGkgaG9hbiB0b2FuIGtoYWMuIE1lIG9uZyBsYXkgbW90IG5ndW9pIGxp bmggUGhhcCBnb2MgUGhpIA0Kcm9pIHNpbmggcmEgb25nLiBOYW0gMTk3MSBvbmcgZGkgYm8gZG9p IHZhIHNhdSBnaWFpIHBob25nIHRoaSByYSBxdWFuLiBTYXUgbW90IHRob2kgZ2lhbiANCnNvbmcg byBxdWUsIG9uZyBUaGFuaCBibyB2ZSBUUC5IQ00gbGFuZyB0aGFuZyByb2kgZG8ga2hvbmcgY28g Z2lheSB0byB0dXkgdGhhbiBuZW4gYmkgDQoidGh1IGdvbSIgZHVhIGRpIGxhbyBkb25nIHRhcCB0 cnVuZyBnYW4gNSBuYW0gdGFpIGh1eWVuIFBodSBHaWFvLCB0aW5oIFNvbmcgQmUgY3UgKG5heSBs YSBCaW5oIER1b25nKS4gDQoNClNhdSBraGkgaGV0IHRob2kgZ2lhbiBsYW8gZG9uZywgb25nIFRo YW5oIGdhcCBiYSBOZ28gVGhpIFRodSBIYSwgbmd1b2kgY3VuZyBjYW5oIG5nbyANCnZhIHRybyB0 aGFuaCB2byBjaG9uZy4gU2F1IGRvIHZvIGNob25nIG9uZyBzaW5oIGNvbiBnYWkgZGF1IGxvbmcg bGEgTGUgVGhpIEhvbmcgDQpOaHVuZy4gR2lhIGRpbmggbmhvIGN1YSBvbmcgdHJvaSBkYXQgdGhl byBkb25nIGRvaSBoZXQgbm9pIG5heSBkZW4gbm9pIGtoYWMsIGN1b2kgY3VuZyANCmRpbmggY3Ug byBhcCA0QiAoYXAgU3VvaSBEYXQgY3UpIC0gbm9pIGNoaSBxdXkgdHUgdmFpIG5vYyBuaGEgZGFu IGRpIGN1IHR1IGRvIHR1IG1pZW4gDQpCYWMsIHRodW9jIHhhIFRhbiBMYXAsIGh1eWVuIERvbmcg UGh1LCB0aW5oIEJpbmggUGh1b2MuIE5hbSAxOTkyLCB2byBjaG9uZyBvbmcgc2luaCANCnRoZW0g bmd1b2kgY29uIHRyYWksIGRhdCB0ZW4gbGEgTGUgTWluaCBIYWkuIERvIGN1b2Mgc29uZyBxdWEg a2hvIGtoYW4sIHZhIGxhaSBzdW90IG5nYXkgDQpjaGkgYmlldCB2YW8gcnVuZyBkb24gY3VpLCBi ZSBtYW5nLCBkb3QgdGhhbiBraWVtIHNvbmcgbmVuIHZvIGNob25nIG9uZyBjaGFuZyBiaWV0IGdp IA0KZGVuIGhvIGtoYXUsIGdpYXkgdG8gdHV5IHRoYW4gY2hvIG1pbmggdmEgbGFtIHRodSB0dWMg a2hhaSBzaW5oIGNobyBjYWMgY29uLiBWYWkgbmFtIHNhdSANCmhvIHJvaSBub2kgbmF5IGRlbiBh cCBUYW4gVGhpbmggKGFwIE51b2MgVmFuZyBjdSksIHhhIEFuIEJpbmgsIGh1eWVuIFBodSBHaWFv LCB0aW5oIA0KQmluaCBEdW9uZy4gTmFtIDIwMDQsIGJhIEhhIGJpIGJlbmggcXVhIGRvaSwgTGUg TWluaCBIYWkgbHVjIG5heSBkYSAxOCB0dW9pLCBibyBxdWUgDQpyYSB0aGkgeGEgaG9jIG5naGUg a2llbSBzb25nLiBPbmcgVGhhbmggdmFuIG8gbGFpIGFwIFRhbiBEaW5oIGN1bmcgY28gY29uIGdh aSBkYXUsIGx1YyANCm5heSBjdW5nIGRhIGxheSBjaG9uZy4gQ3VvYyBzb25nIGN1IHRoZSB0cm9p IGRpIGNobyBkZW4gZGF1IHRoYW5nIDcuMjAxMCwgYW5oIFZ1IFZhbiANCkR1YyAobmd1IFAuMTEs IFEuR28gVmFwLCBUUC5IQ00pLCBsYSBsYW5nIGdpZW5nIGN1IGN1YSBvbmcgVGhhbmggMjAgbmFt IHRydW9jIHRhaSANCmFwIDRCLCBtdW9uIGR1YSBvbmcgdmUgVFAuSENNIGRlIGdpdXAgb25nIGNv IGN1b2Mgc29uZyBzYW5nIHN1YSBob24gdGhpIG1vaSAiYmF0IG5ndWEiIA0KbGEgb25nIFRoYW5o IGhvYW4gdG9hbiBraG9uZyBjbyBnaWF5IHRvIGdpIHR1eSB0aGFuLg0KDQpMYW4gdGhlbyB0aG9u ZyB0aW4gb25nIFRoYW5oIGN1bmcgY2FwLCBUaGFuaCBOaWVuIGRhIGN1bmcgYW5oIFZ1IFZhbiBE dWMgZHVhIG9uZyANCmxlbiBhcCBEb25nIFNlbiAoeGEgQW4gQmluaCwgaHV5ZW4gUGh1IEdpYW8s IHRpbmggQmluaCBEdW9uZykgdGltIGdhcCBvbmcgVG9uZyBWYW4gDQpTYW0sIG5ndXllbiBsYSBj aGluaCB0cmkgdmllbiBEYWkgZG9pIDYsIFRpZXUgZG9hbiAzLCBMdSBkb2FuIDIyLCBRdWFuIGRv YW4gNC4gT25nIFNhbSANCnhhYyBuaGFuIG9uZyBUaGFuaCB0dW5nIHRoYW0gZ2lhIGN1bmcgZG9u IHZpIG1pbmggdmEgcmF0IGJhdCBuZ28gdHJ1b2MgaG9hbiBjYW5oIHRybyANCnRyZXUgY3VhIG5n dW9pIGRvbmcgZG9pIGN1IG5heS4gIlRvaSBtb25nIGNhYyBjYXAgdGhhbSBxdXllbiBzb20geGVt IHhldCBob2FuIGNhbmggDQp2YSBkaWV1IGtpZW4gY3UgdHJ1IGN1YSBhbmggVGhhbmggZGUgZ2l1 cCBhbmggYXkgbmhhcCBobyBraGF1IHZhIGxhbSBnaWF5IHRvIHR1eSB0aGFuLCANCnNvbSBvbiBk aW5oIGN1b2Mgc29uZyBjdW5nIGNvbiBjaGF1IG5odSBiYW8gbmd1b2kga2hhYyIsIG9uZyBTYW0g bm9pLiANCg0KaHR0cDovL3d3dy52ZmVqLnZuL3ZuL2NoaV90aWV0LzE3MTkxL2NodW5nX21pbmhf dGh1X2RpZW5fdHVfX19uaWVtX21vbmdfZG9pX2N1YV9kYW4gMDYvMDgvMjAwOSwgMTI6NTc6MDAg UE0gDQoNClRodSB0dW9uZzogQ2h1bmcgbWluaCB0aHUgZGllbiB0dSAtIG5pZW0gbW9uZyBkb2kg Y3VhIGRhbiAtIEtlIGhvYWNoIGRhIHRodWMgaGllbiBkZW4gZGF1PyANCg0KKFZGRUopIC0gVHJv bmcga2UgaG9hY2ggdG9uZyB0aGUgcGhhdCB0cmllbiBDaGluaCBwaHUgZGllbiB0dSBWaWV0IE5h bSBkZW4gbmFtIDIwMTAsIA0KY28gZHVhIHJhIG11YyB0aWV1IHBoYW4gZGF1IHRvaSAyMDEwLCAy NSBwaGFuIHRyYW0gZGFuIGRvIHRoaSBzZSBzdSBkdW5nIGNodW5nIG1pbmggdGh1IGRpZW4gdHUu IA0KDQpLZSBob2FjaCBkYSBjbyBWaWV0IE5hbSB0YSBkYSB0aHVjIGhpZW4gZGVuIGRhdSBoYXkg a2UgaG9hY2ggdHJlbiB2YW4gdmFuIGNvbiBuYW0gDQp0cmVuIGJhbiBnaWF5IG1hIGNodWEgZHVv YyB0cmllbiBraGFpPw0KIA0KVGh1YyByYSwgbmV1IFZpZXQgTmFtIHN1IGR1bmcgY2h1bmcgbWlu aCB0aHUgZGllbiB0dSB0aGF5IGNobyBjaHVuZyBtaW5oIHRodSB0cnV5ZW4gDQp0aG9uZyBsYSBy YXQgdG90LCB2aSBjb25nIG5naGUgbW9pIHNlIG1hbmcgbGFpIHJhdCBuaGlldSB0aWVuIGljaCBj aG8gZGFuLCBnaXVwIGNhYyBjbyBxdWFuIA0KY2h1YyBuYW5nIHF1YW4gbHkgdG90IHNvIGxpZXUu DQoNClN1IGR1bmcgY2h1bmcgbWluaCB0aHUgZGllbiB0dSwgZGFuIHNlIHRpZXQga2llbSBkdW9j IHJhdCBuaGlldSB0aG9pIGdpYW4uIEhvIA0Kc2Uga2hvbmcgcGhhaSBkZW0gbmhpZXUgbG9haSBn aWF5IHRvIHRyb25nIGJvcCB2YSBzZSB0cmFuaCBkdW9jIHZpZWMgcXVlbiBob2FjIA0KbWF0IGdp YXkgdG8sIGxhbSBnaWFtIGJvdCBibyBtYXkgY29uZyBrZW5oIGN1YSBjYWMgY28gcXVhbiBuaGEg bnVvYy4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jbnR0LzIwMTAwOS9RdWFuLXRodWUt YmFvLXRyYS10cnVvYy1yYS1zb2F0LTIwMDAwMC1kaWVtLWdpYW8tZGljaC05MzczNjcvIDExOjM4 LCAgMjQvMDkvMjAxMCAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IFRoZW8gdGluIHR1YyBtb2kgZGF5 IHR1IEN1YyBjYW5oIHNhdCBxdWFuIGx5IGhhbmggY2hpbmggdmUgdHJhdCB0dSB4YSBob2kgLSBC byBDb25nIGFuLCBkZSBhbiBjbyBzbyBkdSBsaWV1IGNodW5nIG1pbmggdGh1IGRpZW4gdHUsIGR1 IGtpZW4gY3VvaSBuYW0gMjAxMSBtb2kgZHVvYyB0cmllbiBraGFpISANCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDQxLzIwMTAxMDEwMDIxMjM5LmFzcHggTmdv IEhvbmcgU29uIDEwLzEwLzIwMTAgMjoxMiANCg0KVGh1IHR1b25nOiBNb3QgcGh1IG51IGJpIGJh biBzYW5nIFRydW5nIFF1b2MsIHRob2F0IG5hbiB0cm8gdmUgbmh1bmcgQ29uZyBhbiB0dSBjaG9p LCBjaHVhIGdpYWkgcXV5ZXQgZ2lheSB0byANCg0KVHJvIHZlIHNhdSAxNiBuYW0gYmkgYmFuIHNh bmcgVHJ1bmcgUXVvYyAgDQogIA0KRG8gbGEgdHJ1b25nIGhvcCBjdWEgY2hpIFRyYW4gVGhpIFR1 eWV0LCBvIHhvbSBCYWMsIHRob24gVHJ1bmcgVGluIDIsIHRoaSB0cmFuIFR1eSANClBodW9jLCBo dXllbiBUdXkgUGh1b2MsIHRpbmggQmluaCBEaW5oLiANCg0KS2hpIGRhbmcgc29uZyBjdW5nIGdp YSBkaW5oLCBuYW0gMTk5NCBjbyBtb3QgcGh1IG51IHRlbiBWaW5oLCBxdWUgbyBCYSBWaSwgSGEg VGF5IA0Kc29uZyBnYSBuZ2hpYSBuaHUgdm8gY2hvbmcgdm9pIG1vdCBuZ3VvaSBkYW4gb25nIGN1 bmcgeG9tIGN1YSBjaGkgVHV5ZXQsIHJ1IGNoaSByYSANCkJhYyB0aGFtIHRodSBkbyBIYSBOb2ku IFZpIGNhIHRpbiBuZW4gY2hpIG5naGUgdGhlbyB2YSBiaWV0IHRpY2ggc3VvdCAxNiBuYW0gcXVh LiBOYW0gDQpkbyBjaGkgVHV5ZXQgMjggdHVvaSB2YSBjaHVhIGxhcCBnaWEgZGluaC4gDQoNCkJp IGx1YSBxdWEgYmllbiBnaW9pIA0KDQpLaGkgZGVuIEhhIE5vaSwgVmluaCBraG9uZyBkdWEgY2hp IFR1eWV0IGRpIHRoYW0gdGh1IHRodSBkbyBuaHUgZGEgaHVhIG1hIGR1YSBjaGkgbGVuIA0KdGhh bmcgY3VhIGtoYXUgTGFuZyBTb24gYmFuZyB4ZSBraGFjaC4gS2hpIHhlIGRhIHF1YSBwaGlhIFRy dW5nIFF1b2MsIGNoaSBUdXlldCBtb2kgDQpwaGF0IGhpZW4gcmEgbWluaCBiaSBkdWEgZGkgYmFu LiBDaGkgZGluaCBiYW8gY29uZyBhbiBUcnVuZyBRdW9jIHZlIHRpbmggdHJhbmcgYmkgYmF0IA0K Y29jIGN1YSBtaW5oLCBuaHVuZyBWaW5oIGRhIGdvaSA0IG5ndW9pIGRhbiBvbmcgdG8gY2FvLCBr aG9lIG1hbmggZGVuIGRhbmggdmEgZGUgZG9hLCANCmJ1b2MgY2hpIHBoYWkgZGkgdGhlbyBjaHVu Zy4NCg0KU2F1IGRvIGNoaSBkdW9jIGJhbiBjaG8gbW90IG5ndW9pIGRhbiBvbmcgdHJlbiA1MCB0 dW9pLCBuZ3VvaSBWaWV0IGdvYyBIb2EsIGdpYSA2MDAgDQpuaGFuIGRhbiB0ZSwgdm9pIGxvaSBo dWEgbGEgbXVhIGNoaSBkZSBjdW5nIGRpIGJ1b24gYmFuLiBTYXUgZG8sIG5ndW9pIGRhbiBvbmcg bmF5IChjaGkgDQpraG9uZyBiaWV0IHRlbikgYmFuIGNoaSBjaG8gbW90IG5ndW9pIGRhbiBvbmcg a2hhYyAzNSB0dW9pLCB0ZW4gbGEgTHVhbiBBIERpIChwaGllbiBhbSANCnRpZW5nIFF1YW5nIERv bmcgc2FuZyB0aWVuZyBWaWV0KS4gTHVhbiBBIERpIG11YSBjaGkgdmUgbGFtIHZvIHZvaSBnaWEg Mi43MDAgbmhhbiBkYW4gDQp0ZS4gTHVjIG5heSwgY2hpIGdhcCBtb3Qgc28gcGh1IG51IFZpZXQg TmFtIGN1bmcgYmkgYmF0IGNvYyBzYW5nIFRydW5nIFF1b2MgZGUgYmFuIA0KbGFtIHZvLCBraHV5 ZW4gY2hpIG5lbiBjaGFwIG5oYW4gaG9hbiBjYW5oIHZpIG5ldSBraG9uZyB0aHVhbiB0aGVvIGNv IHRoZSBiaSBiYW4gdmFvIA0KY2FjIG8gY2h1YSBtYWkgZGFtLCB2YSBuaHUgdmF5IHRpbmggY2Fu aCBjb24gY28gdGhlIGJpIGRhdCBob24uIA0KDQpOZ2hlIHRoZW8gbG9pIGtodXllbiBjdWEgbmd1 b2kgY3VuZyBjYW5oIG5nbywgY2hpIGNoYXAgbmhhbiBsYW0gdm8gTHVhbiBBIERpLiBUdSBkbyAN CmNoaSBzb25nIHZvaSBMdWFuIEEgRGkgdGFpIHhhIE1vIENvIFhhbSwgaHV5ZW4gWGluIFBoaW5n LCB0aW5oIFF1YW5nIERvbmcsIFRydW5nIA0KUXVvYy4gDQoNCk5oYXAgY2FuaCAibGF1IiB2ZSBx dWUNCg0KTmhpbiBkYW5nIHZlIGtoYWMga2hvIGN1YSBjaGksIGtoaSBjaHVuZyB0b2kgaG9pIGNo aSBkdW9jIGRvaSB4dSBuaHUgdGhlIG5hbywgY2hpIHRyYSBsb2kgDQpiYW5nIHRodSB0aWVuZyBW aWV0IHJvIHJhbmcgbmh1bmcgZ2lvbmcgaG9pIGN1bmcgdmEgY2hhbSB2aSBkYSAxNiBuYW0geGEg cXVlIGh1b25nLCANCnJhbmcgTHVhbiBBIERpIGRvaSB4dSB0b3Qgdm9pIGNoaSwga2hvbmcgZGFu aCBkYXAsIGhhbmggaGEgY2hpLiBUaG9pIGdpYW4gZGF1IGNoaSByYXQgc28gDQpoYWkgdmkgY28g ZG9uLCBjaGkgY28gbW90IG1pbmgsIGxhaSBsYW4gZGF1IHhhIHF1ZSwga2hvbmcgYmlldCB0aWVu ZyBUcnVuZyBRdW9jLiBOaHVuZyANCnJvaSBxdWEgdGhvaSBnaWFuLCBjaGkgaG9hIG5oYXAgZGFu IHZvaSBjdW9jIHNvbmcgbW9pLiBDaGkgY28gMiBjb24gdm9pIG5ndW9pIGRhbiBvbmcgDQpuYXku IENvbiBkYXUgMTUgdHVvaSwgY29uIHRodSBoYWkgZHVvYyAxMCB0dW9pIHZhIGRldSBsYSBjb24g dHJhaS4NCg0KVGhvaSBnaWFuIGRhdSBzYXUga2hpIGxhbSB2byBMdWFuLCBjaGkgbyBuaGEgbGFt IHZpZWMgbmhhLCBzYXUgZG8gY2hpIGRpIGxhbSBvIG1vdCB4aSANCm5naGllcCBzYW4geHVhdCBk byBkYSB4dWF0IGtoYXUuIEN1b2Mgc29uZyB2YXQgY2hhdCBjdWEgY2hpIG8gbXVjIHRydW5nIGJp bmgsIGR1IGFuLiBDaGkgDQpiYW8gbm9pIGNoaSBzb25nIGNvIGtob2FuZyA0IGRlbiA1IG5ndW9p IGN1bmcgYmkgYmF0IGNvYyBkZSBiYW4gbGFtIHZvIGRhbiBvbmcgVHJ1bmcgDQpRdW9jLiBUaGVv IGNoaSwga2hvYW5nIDEwIG5hbSB0cm8gdmUgdHJ1b2MsIHRpbmggdHJhbmcgcGh1IG51IFZpZXQg TmFtIGJpIGJhdCBjb2MgeGF5IA0KcmEgbmhpZXUsIGhpZW4gbmF5IHRpbmggdHJhbmcgbmF5IGRh IGdpYW0uDQoNCihBbmggY2h1cDogQ2hpIFRyYW4gVGhpIFR1eWV0IHNhdSAxNiBuYW0geGEgcXVl IHRybyB2ZSkNCg0KVmkgeGEgcXVlIG5lbiBjaGkgVHV5ZXQgcmF0IG5obyBuaGEuIE5hbSAxOTk5 LCBkdW9jIHBoZXAgY3VhIEx1YW4sIGNoaSBxdXlldCBkaW5oIHRybyANCnZlIFZpZXQgTmFtIHRo YW0gcXVlLCBuaHVuZyBraGkgZGkgZGVuIGdhbiBjdWEga2hhdSwgY2hpIGJpIGN1b3AgaGV0IHRp ZW4gYmFjLCB0dSB0cmFuZyANCm5lbiBraG9uZyB0aGUgdmUgcXVlIGR1b2MuIExhbiBuYXksIGN1 bmcgZHVvYyBwaGVwIGN1YSBMdWFuLCBjaGkgbGFpIHF1eWV0IHRhbSB2ZSBxdWUuIA0KTmh1bmcg dmkgY2h1YSBuaGFwIGtoYXUgZHVvYyBvIFRydW5nIFF1b2MsIGtob25nIGNvIGJhdCBjdSBnaWF5 IHRvIHR1eSB0aGFuIGhvcCBwaGFwIA0KbmFvIG5lbiBraG9uZyB0aGUgbGFtIGNhYyB0aHUgdHVj IG5oYXAgY2FuaCwgY2hpIGJ1b2MgcGhhaSBkaSAibGF1IiB2ZSBxdWUgc2F1IGtoaSBjaGkgDQox MDAgbmhhbiBkYW4gdGUgY2hvIG1vdCBuaG9tIG5ndW9pIGNodXllbiBkdWEgbmd1b2kgcXVhIGxh aSBiaWVuIGdpb2kgVmlldCAtIFRydW5nLiANCkhvIGR1YSBjaGkgInZ1b3QgYmllbiIgYmFuZyB0 aHV5ZW4gcXVhIHNvbmcgTW9uZyBDYWksIHRoZW8gZHVvbmcgc29uZyB0cm8gdmUgVmlldCANCk5h bS4NCg0KTW9uZyBkdW9jIGxhbSBsYWkgZ2lheSB0byB0dXkgdGhhbg0KDQpDaGkgVHV5ZXQgdmUg dG9pIFR1eSBQaHVvYywgQmluaCBEaW5oIHZhbyBuZ2F5IDIuMTAuMjAxMC4gU2F1IDE2IG5hbSB4 YSBxdWUsIHRlbiBjdWEgDQpjaGkga2hvbmcgY29uIHRyb25nIGhvIGtoYXUgdmkgZ2lhIGRpbmgg Y28gbmhpZXUgYmllbiBkb25nLiBDaGkgZGEgYmFvIHZvaSBDb25nIGFuIA0KaHV5ZW4gVHV5IFBo dW9jIHZlIHN1IGNvIG1hdCBjdWEgbWluaCB0YWkgcXVlIG5oYSB2YSBkZSBuZ2hpIGR1b2MgY2Fw IGNhYyBnaWF5IHRvIHR1eSANCnRoYW4gZGUgZHVvYyAibmhhcCBraGF1IiBob3AgcGhhcC4gVHV5 IG5oaWVuLCBjbyBxdWFuIGNvbmcgYW4gdHJhIGxvaSByYW5nIHRydW9uZyBob3AgDQpjdWEgY2hp IGxhIGNodWEgY28gdGllbiBsZSBuZW4gY2h1YSBnaWFpIHF1eWV0IGR1b2MuDQoNCkhpZW4gbmF5 IG5ndW9pIHBodSBudSBkYW5nIHRodW9uZyBuYXkgZGFuZyBjYW4gZ2lheSB0byB0dXkgdGhhbiBo b3AgcGhhcCBkZSBjbyB0aGUgZGkgDQpsYWkgdGh1YW4gdGllbi4gTW9uZyBtdW9uIGN1YSBjaGkg bGEgc2UgZHVhIGNhYyBjb24gY3VhIGNoaSB2ZSB0aGFtIHF1ZSBuZ29haSwgbmh1bmcgdmkgDQpr aG9uZyBjbyBnaWF5IHRvIHR1eSB0aGFuIG5lbiB2aWVjIGRpIGxhaSwgZ2lhbyBkaWNoIHJhdCBr aG8ga2hhbi4NCg0KKFkga2llbiBiYW4gZG9jOg0KVGh1dHVjLWhhbmhjaGluaEB5YWhvby5jb206 IFN1IHZpZWMgbmF5IGdhbiB0dW9uZyB0dSBuaHUgbmd1b2kgbWF0IGdpYXkgdG8gZGkgdHJpbmgg DQpiYW8geGluIGNhcCBsYWksIGhvYWMgbmh1IG5ndW9pIGdhcCBuYW4sIG1hdCB0aWNoIG5heSB0 cm8gdmU7IGtob25nIGhpZXUgc2FvIGNvIHF1YW4gDQpjb25nIGFuIGxhaSBjaHVhIGdpYWkgcXV5 ZXQ7IG5ndW9pIGRhbiBnYXAgbmFuIGRhIGtobyBzbyBsYW0gcm9pLCBuZW4gbmhpZXQgdGluaCBn aXVwIGRvIGRhbiBtb2kgcGhhaS4pIA0KDQpodHRwOi8vdmkud2lraS5vcmcNCg0KT25nIFRodSB0 dW9uZyBOZ3V5ZW4gVGFuIER1bmcgLSBuZ3V5ZW4gbGEgVGh1IHRydW9uZyBCbyBDb25nIGFuICh0 cnVvYyBkYXkgY28gdGVuIGxhIEJvIE5vaSB2dSkgIA0KDQpodHRwOi8vZGFubGFtYmFvLndvcmRw cmVzcy5jb20vMjAxMC8xMS8xOC92aWRlby1jJUUxJUJBJUFEbi1jJUUxJUJBJUEzbmgtY29uZy1h bi1iJUUxJUJBJUFGdC1nYWktbSVFMSVCQSVBMWktZGFtLXh1Yy1waCVFMSVCQSVBMW0tbmhhbi1w aCVFMSVCQSVBOW0taCVFMSVCQiU4RC8gUG9zdGVkIG9uIDE4LzExLzIwMTAgYnkgQmFvIERhbiAN Cg0KVGh1IHR1b25nOiBWaWRlbyBjYW4gY2FuaCBDb25nIGFuIHh1YyBwaGFtIG5oYW4gcGhhbSBw aHUgbnUgKG8gUXVhbmcgTmluaCkgDQoNCihEb2FuIGNsaXAgdHJlbiBjbyBuaHVuZyBjYW5oIHZh IGxvaSB0aG9haSBraG9uZyBwaHUgaG9wIHZvaSBiYW4gZG9jIGNodWEgdHJ1b25nIHRoYW5oLiBD YWMgYmFuIGNhbiBjYW4gbmhhYyB0cnVvYyBraGkgeGVtKQ0KDQpNb3QgdmlkZW8gY2xpcCBjbyBu b2kgZHVuZyAiY29uZyBhbiBiYXQgZ2FpIG1haSBkYW0gdmEgcXVheSB2aWRlbyBsYWkiIHZ1YSBk dW9jIHBoYXQgDQp0YW4gdHJlbiBuaGlldSB0cmFuZyBtYW5nIHhhIGhvaS4NCg0KTmd1b2kgeGVt IG5naGUgZHVvYyByYXQgcm8gbmh1bmcgY2F1IHJhIGxlbmggZGF5IHZlIHRoaSB1eSwgZG9hIG5h dCAibWF5LCB0YW8iIGN1YSBtb3QgDQpjb25nIGFuIHRydW9jIDIgY28gZ2FpIGR1b2MgY2hvIGxh IGNvIGhhbmggdmkgbWFpIGRhbSB0cm9uZyBjbGlwLCBuaHUgImNvbiBuYXkgbWF5IA0KZHVuZyBk YXkgdGFvIGNodXAga2lldSBhbmgsIG5oYW5oISIsICJkYW5nIGhhaSB0YXkgcmEsIGQuIG1lIG1h eSIsICJxdWF5IG1hdCByYSBkYXkiLi4uIA0KDQpDbyBpdCBuaGF0IDQgbmd1b2kgZGFuIG9uZyB0 cm9uZyBjbGlwIJYgcXVheSB2aWRlbyB2YSBnaGkgY2hlcCCWIGR1b2MgaGlldSBsYSBjYWMgbmhh biANCnZpZW4gZGFuZyBsYXAgYmllbiBiYW4ga2hpIDIgY28gZ2FpIHRyb25nIHRpbmggdHJhbmcg aG9hbiB0b2FuIGtob2EgdGhhbi4gSGFpIGNvIGdhaSBiaSBlcCANCmJ1b2MgcGhhaSBkdW5nIG5n YW5nIG1hdCB2YSBkYW5nIHRheSwga2hvbmcgdGhlIGNoZSBkYXkgZHVvYyB0aGFuIHRoZSB0cm9u ZyBraGkgYmkgdGh1IA0KaGluaCBiYW5nIGRpZW4gdGhvYWkgY2FtIHRheS4gDQoNClZhbyBuaHVu ZyBnaWF5IGN1b2kgY3VhIGNsaXAsIG5ndW9pIHhlbSB0aGF5IG1vdCB0cm9uZyBoYWkgY28gc2F1 IGtoaSBiaSBlcCBidW9jIGR1bmcgDQpkYXkgdGhhbiB0aGUgbG9hIGxvIGRhIHN1cCB4dW9uZyBj YW5oIGdpdW9uZyBvbSBtYXQga2hvYyB0cm9uZyB0aWVuZyBxdWF0IHRoYW8gY3VhICANCm5ndW9p IGRhbiBvbmcgdGhhdSBoaW5oLCAibWF5IGtob2MgY2FpIGdpPyIgDQoNClZpZGVvIGNsaXAgbmF5 IGNvIGRvIGRhaSBob24gMSBwaHV0IHJ1b2kgZGEgZ2F5IHNvYywgbGFtIGNhIHRoZSBnaW9pIGRh bmcgeG9uIHhhbyBiYW4gdGFuLiANCkNhYyB5IGtpZW4gZHVvYyBnaGkgbmhhbiBkZXUgbGVuIGFu IG1hbmggbWUgaGFuaCB2aSBjdWEgbmh1bmcgdmllbiBjaHVjIGNvbmcgdnUgVmlldCBOYW0gdHJv bmcgY2xpcCB4dWMgcGhhbSBuYW5nIG5lIG5oYW4gcGhhbSBuZ3VvaSBwaHUgbnUuIA0KDQpodHRw Oi8vYm94aXR2bi53b3JkcHJlc3MuY29tLzIwMTAvMDgvMjQvbSVFMSVCQiU5OXQtdiVFMSVCQiVB NS1uLWwlRTElQkIlOUJuLW5oJUUxJUJBJUE1dC1uJUM2JUIwJUUxJUJCJTlCYy1iJUUxJUJBJUEz eS1uYW0tbmF5LWNoJUM2JUIwYS1kJUM2JUIwJUUxJUJCJUEzYy14JUUxJUJCJUFELWwvIE5vbmcg ZGFuIEJpbmggRHVvbmcgIChidm4gcG9zdCBvbiAyNC8wOC8yMDEwIDM6NDAgc2FuZykgIA0KDQpU aHUgdHVvbmc6IFRpbmggdGhhbiBiYW8gdmUgbmd1b2kgZGFuIGRhdSB0cmFuaCB2b2kgdGhhbSBu aHVuZyByYXQga2VtIA0KDQpNb3QgdnUgYW4gbG9uIG5oYXQgbnVvYywgYmF5IG5hbSBuYXkgY2h1 YSBkdW9jIHh1IGx5ISANCg0KQ2hpbmggcXV5ZW4gdGluaCBCaW5oIER1b25nIHRodSBob2kgdmEg Ym9pIHRodW9uZyBkYXQgdHJhaSBwaGFwIGx1YXQgLSBDdW9uZyBidWMgbmd1b2kgZGFuDQoNClNh aSBwaGFtIGRvbmcgdHJvaSwgbmh1bmcgY2h1YSBkb25nIHRvaSBDaGluaCBwaHUgDQoNCiJOZ3Vv aSB0byBjYW8ga2hpZXUgbmFpIHZhIHlldSBjYXUgdGhhbmggdHJhIiBraG9uZyBkdW9jIGFpIGhv aSB0b2kgdmEga2hvbmcgZHVvYyBiaWV0IHRpIGdpIHZlIGtldCBxdWEgdGhhbmggdHJhLiAgDQoN ClNhdSB0aGFuaCB0cmEsIGNoaW5oIHF1eWVuIHRyYSB0aHUgbmh1bmcgbmd1b2kga3kgZG9uIHZh IGRpIGtoaWV1IGtpZW4sIHRhbiBiYW8gdmEga2hvYyBsaWV0IGhvbiB0cnVvYy4gDQooWGluIHhl bSBjaGkgdGlldCBvIHBoYW4gdGllcCB0aGVvKSANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEw MDMyNDEwNTI0NjI5N1AwQzE3L2JvLWNvbmctYW4tZHVvYy1jaHV5ZW4tbmh1b25nLWRhdC10YWkt NDAtaGFuZy1iYWktdmEtNTQtdHJhbi1odW5nLWRhby5odG0gUC5WIDExOjMyIChHTVQrNykgLSAy NC8zLzIwMTAgDQoNClRodSB0dW9uZzogQ2FuIHhlbSB4ZXQgbGFpIGNodSB0cnVvbmcgY2h1eWVu IG5odW9uZyBkYXQgdGFpIHRydSBzbyA0MCBIYW5nIEJhaSB2YSA1NCBUcmFuIEh1bmcgRGFvIA0K IA0KVGhlbyBuZ3VvbiB0aW4gdHUgQ29uZyBUaG9uZyB0aW4gZGllbiB0dSBDaGluaCBwaHUsIFRo dSB0dW9uZyBkYSBjaGFwIHRodWFuIGNodSANCnRydW9uZyBkYXUgdHUgeGF5IGR1bmcgdHJ1IHNv IGxhbSB2aWVjIG1vaSBjdWEgMyB0b25nIGN1YyBjYW5oIHNhdCB0aHVvYyBCbyBDb25nIGFuIHRh aSANCnBodW9uZyBNYWkgRGljaCwgcXVhbiBDYXUgR2lheSwgdGhhbmggcGhvIEhhIE5vaS4NCg0K RGUgbGF5IGtpbmggcGhpIGRhdSB0dSB4YXkgZHVuZyB0cnUgc28gbGFtIHZpZWMgbW9pIGN1YSAz IHRvbmcgY3VjIHRyZW4sIFRodSB0dW9uZyBkb25nIA0KeSBjaG8gQm8gQ29uZyBhbiBkdW9jIGJh biB0YWkgc2FuIHRyZW4gZGF0IHZhIGNodXllbiBuaHVvbmcgcXV5ZW4gc3UgZHVuZyBkYXQgdGhl byBnaWEgDQp0aGkgdHJ1b25nLCBkdW5nIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQsIHRhaSBzbyA0 MCBIYW5nIEJhaSB2YSA1NCBUcmFuIEh1bmcgRGFvLCBxdWFuIA0KSG9hbiBLaWVtLCB0aGFuaCBw aG8gSGEgTm9pLCB2b2kgZGllbiB0aWNoIGRhdCBsYSAxMy4zMDMsOCBtMiwgaGllbiBkbyBCbyBD b25nIGFuIA0KcXVhbiBseS4NCg0KKEN1IHRyaSBxdWFuIHRhbTogTmV1IEJvIENvbmcgYW4ga2hv bmcgY2FuIHN1IGR1bmcgdHJ1IHNvIHZhIGRhdCB0YWkgNDAgSGFuZyBCYWkgdmEgNTQgDQpUcmFu IEh1bmcgRGFvIG51YSB0aGkgdHJhIGxhaSB0aGFuaCBwaG8gSGEgTm9pIHF1YW4gbHkgaGF5IENo aW5oIHBodSBnaWFvIGNobyBjbyBxdWFuIA0Ka2hhYyBxdWFuIGx5LCBjaHUga2hvbmcgaGlldSBz YW8gbGFpIGRpbmggZGVtIGJhbiBkZSBsYXkgdGllbiwgbGFtIGtpbmggcGhpLiBIb24gbnVhLCAN CjIgbm9pIG5heSBjbyB0aGUgbGEgZGkgdGljaCBob2FjIGxhIGJpZXQgdGh1IGNvIGNhbiBiYW8g dG9uOyBuZW4gY2hhbmcsIGNhbiB4ZW0geGV0IGxhaSBxdXlldCBkaW5oIG5heS4pIA0KDQpodHRw Oi8vd3d3LnRoYXVraW5odmlldG5hbS5jb20vaW5kZXgucGhwL2JhbmRvY3ZpZXQvY3NndC1kYW5o LW5ndW9pLXRyZW4tYmFvLWNoZS1kdW9pLWNvbi10aWVwLXR1Yy8xNzQzMjIuc24gDQoNClRodSB0 dW9uZzogQ2FuaCBzYXQgZGFuaCBuZ3VvaSAtIFRyZW4gYmFvIGNoZSwgZHVvaSBjb24gdGllcCB0 dWMhIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjgvMjAx MDA3MDkwMTA2MjMuYXNweCBUaGFpIFNvbiAwOS8wNy8yMDEwIDE6MDYgDQoNClRodSB0dW9uZzog Q2hhbSB2YSBjb24gdGhpZXUgY2h1IGRvbmcgZGF1IHRyYW5oIGNob25nIHRoYW0gbmh1bmcgDQoN ClBobyB0b25nIEtpZW0gdG9hbiBOaGEgbnVvYyAtIG9uZyBIb2FuZyBIb25nIExhYywgY2hvIGJp ZXQ6ICJUcm9uZyBoYWkgbmFtIHF1YSwgY2h1bmcgdG9pIGRhIGNodXllbiBjbyBxdWFuIGNodWMg bmFuZyAzIC0gNCB2dSBjbyBkYXUgaGlldSBzYWkgcGhhbSwgdGhhbSBuaHVuZywgbmh1bmcgdmll YyB4dSBseSBkZW4gZGF1IHRoaSBjaHVuZyB0b2kgY3VuZyBraG9uZyBkdW9jIHJvIi4gDQoNCk9u ZyBIb2FuZyBIb25nIExhYyAtIFBobyB0b25nIEtpZW0gdG9hbiBOaGEgbnVvYywgY2hvIGJpZXQg dGhlbTogRGFuZyBjaHUgeSwga2llbSB0b2FuIE5oYSBudW9jIGRhIHBoYXQgaGllbiBraGEgbmhp ZXUgdHJ1b25nIGhvcCBodW9uZyBzYWkgY2hpbmggc2FjaCB0cm9uZyBraHVvbiBraG8gdGh1YyBo aWVuIGNhYyBjaHVvbmcgdHJpbmggaG8gdHJvIGNob25nIHN1eSBnaWFtIGtpbmggdGUgdGhlbyBO Z2hpIHF1eWV0IHNvIDMwIGN1YSBDaGluaCBwaHUuIENhYyBjaGluaCBzYWNoIG5heSBjaGkgdXUg dGllbiBjaG8gY2FjIGRvYW5oIG5naGllcCB2dWEgdmEgbmhvIG5odW5nIGRhIGNvIGtob25nIGl0 IHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgOTAsIDkxIGN1bmcgZHVvYyBodW9uZzsgY3UgdGhlOiAN Cg0KLSBDb25nIHR5IENQIHRhaSBiYW8gaGllbSBkdW9jIG1pZW4gZ2lhbSAxNiB0aSBkb25nOyAN Ci0gVG9uZyBjb25nIHR5IGRhdSB0dSB2YSBraW5oIGRvYW5oIHZvbiBuaGEgbnVvYyAoU0NJQykg ZHVvYyBtaWVuIGdpYW0gMzUgdGkgZG9uZzsNCi0gVG9uZyBjb25nIHR5IGNvbmcgbmdoaWVwIHhp IG1hbmcgZHVvYyBtaWVuIGdpYW0gMjEgdGkgZG9uZy4uLiANCg0KS2llbSB0b2FuIE5oYSBudW9j IGRlIG5naGkgY2FjIGNvIHF1YW4gc29tIGxhbSBybyBuaHVuZyBzYWkgcGhhbSBuZ2hpZW0gdHJv bmcgbmF5LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ3 LzIwMTAxMTIwMDEzNjA3LmFzcHggQmFvIENhbSAodGh1YyBoaWVuKSAyMC8xMS8yMDEwIDE6MzYg DQoNClRodSB0dW9uZzogQ2hhbSB0aHVjIGhpZW4gZGF1IGdpYSBiaWVuIHNvIHhlIGxhIHRoaWV1 IHRpbmggdGhhbiB0cmFjaCBuaGllbSANCg0KUGhvIGNodSBuaGllbSBVeSBiYW4gS2luaCB0ZSBj dWEgUUggTGUgUXVvYyBEdW5nIGtoYW5nIGRpbmggbmh1IHZheSBraGkgdHJhbyBkb2kgDQp2b2kg UFYgVGhhbmggTmllbiB4b2F5IHF1YW5oIHZhbiBkZSBkYXUgZ2lhIGJpZW4gc28gKEJTKSB4ZSBk ZXAgY2h1YSBkdW9jICJsdWF0IGRpbmgiIA0KYm9pIGNvbiBuaGlldSBraHVjIG1hYyB2ZSBxdWFu IGRpZW0uLi4gDQoNClRodWEgb25nLCB0dSBuYW0gMjAwOSwgVGh1IHR1b25nIGRhIGdpYW8gY2Fj IEJvIFRhaSBjaGluaCwgQ29uZyBhbiwgVHUgcGhhcCBuZ2hpZW4gDQpjdXUsIGJhbiBoYW5oIHRo b25nIHR1IGxpZW4gdGljaCBodW9uZyBkYW4gdmllYyBiYW4gZGF1IGdpYSBxdXllbiBzdSBkdW5n IGJpZW4ga2llbSANCnNvYXQgZGVwIGdhbiBjaG8gbyB0bywgbW8gdG8sIHhlIGdhbiBtYXksIG5o dW5nIGRlbiB0aG9pIGRpZW0gbmF5IHRob25nIHR1IHZhbiBjaHVhIA0KZHVvYyBiYW4gaGFuaCB2 aSBjYWMgYm8gY2h1YSB0aG9uZyBuaGF0IHF1YW4gZGllbS4gT25nIGJpbmggbHVhbiBuaHUgdGhl IG5hbyB2ZSBzdSANCmNoYW0gdHJlIG5heT8NCg0KUXVhbiBkaWVtIGN1YSB0b2kgbGEgZG9uZyB5 IGtpZW4gdm9pIGNodSB0cnVvbmcgY3VhIFRodSB0dW9uZyBnaWFvIEJvIFRhaSBjaGluaCBjaHUg dHJpIA0KdGh1YyBoaWVuLiBCb2kgdmkgbmh1IGNhdSBjdWEgeGEgaG9pIG5ndW9pIHRhIHRoaWNo IG5odW5nIHNvIGRlcCBkZSBnaWFpIHF1eWV0IHZlIG1hdCANCnRhbSBseS4gTmd1b2kgZGFuIHNh biBzYW5nIHRyYSB0aWVuIGNhbyBkZSBjbyBCUyB4ZSBkZXAsIE5oYSBudW9jIHRodSBkdW9jIG5o aWV1IHRpZW4uIA0KTmh1IHRoZSB0aGkgdmllYyBkYXUgZ2lhIEJTIHhlIGRlcCByYXQgY28gbG9p IGNobyBuZ2FuIHNhY2gsIGxhaSB2dWEgY29uZyBraGFpLCBtaW5oIGJhY2ggDQpjaG8gbmh1bmcg bmd1b2kgY2FuIEJTIHhlIGRlcCwga2hvbmcgcGhhaSAiZGkgbmdhbSIgZGUgY28gZHVvYyBCUyB4 ZSBtb25nIG11b24uIA0KVmllYyBkYXUgZ2lhIGxhIGhldCBzdWMgY2FuIHRoaWV0IHZhIG5lbiBs YW0gY2FuZyBzb20gY2FuZyB0b3QuDQoNCihBbmg6IE9uZyBMZSBRdW9jIER1bmcgdHJhIGxvaSBQ ViBUaGFuaCBOaWVuIGJlbiBsZSBreSBob3AgUUggY2hpZXUgMTguMTEgLSBBbmg6IE4uTSkgDQoN Ck1vdCB0cm9uZyBuaHVuZyB2YW4gZGUgZHVvYyBjaG8gbGEga2h1YyBtYWMga2hpZW4gZGVuIHRo b2kgZGllbSBuYXkgdGhvbmcgdHUgaHVvbmcgDQpkYW4gdmllYyBiYW4gZGF1IGdpYSBxdXllbiBz dSBkdW5nIEJTIHhlIHZhbiAiYm9uZyBjaGltIHRhbSBjYSIgbGEgY2EgbmhhbiB0cnVuZyBkYXUg DQpnaWEgQlMgZG8gY28gZHVvYyBxdXllbiBkaW5oIGRvYXQgc3UgZHVuZyBoYXkga2hvbmcuIFRo ZW8gb25nIHRoaSBjbyBuZW4gY29pIGRvIGxhIHRybyANCm5nYWkgbG9uIGRlIGNoYW0gdHJlIHRo dWMgaGllbiB2aWVjIGRhdSBnaWEgbWEgb25nIGNobyBsYSBpY2ggbnVvYywgbG9pIG5oYSBuaHUg ZGEgbm9pIA0KdHJlbj8NCg0KTHkgZG8gZG8ga2hvbmcgcGhhaSBsYSBxdWFuIHRyb25nIHZhIGNo dSB5ZXUuIEJheSBnaW8gbmVuIHF1eSBkaW5oIEJTIGRvIGNoaSBkdW9jIGdhbiANCnZvaSBjaGll YyB4ZSBjdSB0aGUgY3VhIG5ndW9pIHNvIGh1dSBiaWVuIHRob2kuIEtoaSBjaHV5ZW4gc2FuZyBu Z3VvaSBraGFjIHRoaSBjbyB0aGUgDQpxdXkgZGluaCBOaGEgbnVvYyB0aHUgbGFpIHNvIGRvIGhv YWMgbGEgYmllbiBjdSBkaSB0aGVvIHhlIHZhIG5ndW9pIG5hbyBzbyBodXUgeGUgdGhpIA0Kbmd1 b2kgZG8gc3UgZHVuZyBCUy4gVmkgdmF5IGtob25nIG5lbiBsYXkgZG8gbGFtIGx5IGRvIGNvIGJh biBkZSBjaHVuZyB0YSBjaGFtIHRodWMgDQpoaWVuLg0KDQpUaGVvIGtlIGhvYWNoIHRoaSBkZW4g bmdheSA2LjEyIHRvaSwgY2h1bmcgdGEgYmF0IGRhdSBkdWEgdmFvIHN1IGR1bmcga2hvIGJpZW4g a2llbSANCnNvYXQgNSBzby4gRHUgbHVhbiBsbyBuZ2FpIG5ldSBsdWkgbGFpIHRob2kgZGllbSBi YW4gaGFuaCB0aG9uZyB0dSB2YSBjaGFtIHRyZSB0aHVjIGhpZW4gDQpkYXUgZ2lhIHRoaSBraG8g QlMgZGVwIGN1bmcgc2Uga2hvbmcgY29uIG1hIGRlbSByYSBkYXUgZ2lhIHNhdSBuYXksIHNlIHRo YXQgdGh1IG5nYW4gDQpzYWNoIHJhdCBsb24uIFRoZW8gb25nIHRoaSBuZW4gY2hvbiBnaWFpIHBo YXAgZ2k/DQoNClRvaSBjaG8gcmFuZyB2aWVjIGJhbiBoYW5oIHF1eSBkaW5oIHZlIGRhdSBnaWEg QlMgdmEgY2FuIHRodWMgaGllbiB0cnVvYyB0aG9pIGRpZW0gc3UgDQpkdW5nIGJpZW4geGUgNSBz bywga2hvbmcgY28gZ2kgbGEga2hvIGNhLiBMYW0gY2FuZyBzb20gY2FuZyB0b3QuIENvIG5oaWV1 IHRodSBjb24ga2hvIA0KdGh1YyBoaWVuIGhvbiBtYSBjaHVuZyB0YSBjb24gbGFtIGR1b2MuIEdp YWkgcGhhcCBvIGRheSBsYSBjdSBjb25nIGtoYWkgdHJlbiBtYW5nIGRlIA0KbGF5IHkga2llbiBu Z3VvaSBkYW4uIE5odW5nIEJTIGRlcCB0aGkgbWluaCBjdW5nIGNvIHRoZSBoaW5oIGR1bmcgcmEg ZHVvYy4gVGh1IGhhaSANCm51YSBsYSBjdSB0aG9uZyBiYW8gcm9uZyByYWksIGFpIHRoaWNoIHNv IG5hbyBuZ3VvaSB0YSBzZSBiYW8gbmhhdSBjdW5nIGRhdSBnaWEuIENvIG5ndW9pIA0KdGhpY2gg Y2hvbiBzbyA2LCBuZ3VvaSB0aGljaCBjaG9uIHNvIDgsIG5ndW9pIHRoaWNoIGNob24gc28gOS4u LiB0aGkgbW90IGxhIG1pbmggY2hvbiByYSANCmR1b2MgbW90IHBoYW4sIHRodSBoYWkgbGEgdGhv bmcgYmFvIGRlIG5ndW9pIGRhbiB0dSBjaG9uLiBOZXUgZGUgbmd1b2kgZGFuIHR1IGNob24gdGhp IA0KbW90IG5ndW9pIGNob24gZ2lhIHNlIGNhbyBob24gbXVjIGJpbmggdGh1b25nLCBoYWkgbmd1 b2kgdHJvIGxlbiBjdW5nIHRoaWNoIGNob24gYmllbiANCmRvIHRoaSBkYXUgZ2lhLiBDaHV5ZW4g ZG8gcmF0IGxhIGRlLCBuZW4gdGh1YyBoaWVuIHNvbSwgbWEgdHUgY2FpIGRvIHRhIG1vaSBjbyBr aW5oIA0KbmdoaWVtIGxhbSBuaHVuZyB0aHUga2hhYy4gVmkgZHUgbmh1IHNhdSBuYXkgZGF1IGdp YSBraG9hbmcgc2FuIHNlIGNvIGtpbmggbmdoaWVtIA0KbGFtIHRvdCBob24uDQoNCkNhYyBuaGEg Y2h1eWVuIG1vbiBjdW5nIHNlIHRoYW0gZHUgYmFuZyBjYWNoIGRlIHh1YXQgdmFpIHBodW9uZyBh biB2YSBjdW5nIGNvbmcgDQpraGFpIHRyZW4gbWFuZyBkZSBuZ3VvaSBkYW4geGVtIHBodW9uZyBh biBuYW8gaGF5IG5oYXQgdGhpIGNob24uIE5ldSBsYXkgbHkgZG8gdmkgDQpuaHVuZyB0cm8gbmdh aSB0cmVuIChraG8geGFjIGRpbmggYmllbiA1IHNvIG5odSB0aGUgbmFvIGxhIGRlcCwgaGF5IHZ1 b25nIG1hYyBvIHF1eWVuIA0KZGluaCBkb2F0IHN1IGR1bmcgY3VhIG5ndW9pIHRydW5nIGRhdSBn aWEuLi4gLSBQVikgZGUgY2hhbSB0aHVjIGhpZW4gdmllYyBkYXUgZ2lhIGxhIA0KdGhpZXUgdGlu aCB0aGFuIHRyYWNoIG5oaWVtIGhvYWMgbXVvbiBjaGFuIGNodSwgbmFuIG5hIGNhaSBnaSBkbywg aG9hYyBtdW9uIGR1eSB0cmkgY28gDQpjaGUgY3Ugdm9uIG5oaWV1IGJhdCBjYXAgbmh1IGhpZW4g bmF5Lg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjgvMjAx MDA3MDkwMTA2MjMuYXNweCBUaGFpIFNvbiAwOS8wNy8yMDEwIDE6MDYgDQoNClRodSB0dW9uZzog TW90IHNvIHZ1IHZpZWMga2VvIGRhaSBuaGlldSBuYW0gdmEgImRhIGRpIGRhIGxhaSIgZ2l1YSBj YWMgY28gcXVhbiB0byB0dW5nIGRvIHF1YW4gZGllbSBraGFjIGJpZXQuIA0KTmd1eWVuIG5oYW4g bGEgZG8gY28gY2hlIHBob2kgaG9wIGhvYWMgdGhpZXUgY2FjIGNvbmcgY3UgZGUgZGluaCB0aW5o LCBkaW5oIGx1b25nIHZ1IGFuLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDI4LzIwMTAwNzA5MDEwNjIzLmFzcHggVGhhaSBTb24gMDkvMDcvMjAxMCAxOjA2 IA0KDQpUaHUgdHVvbmc6IENodWEgdGhhbmggbGFwIGR1b2MgdHJ1bmcgdGFtIGdpYW0gZGluaCBx dW9jIGdpYSAgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDEwLzA5LzNC QTIwOTYwLyAyMS85LzIwMTAsIDEwOjI3IEdNVCs3DQoNCkFOVFQ6IFhheSByYSBuaGlldSB2dSBn aWV0IG5ndW9pIHRoZSBoaWVuIHN1IHN1eSB0aG9haSBkYW8gZHVjIG5naGllbSB0cm9uZyAodGFp IEhhIE5vaSkNCkNhYyB2dSBhbiBtYW5nIG5nYXkgY2FuZyBuZ2hpZW0gdHJvbmcsIG1hbmcgdGlu aCBjaGF0IHRhbiBiYW8gdmEgdGluaCB2aSBuaHUgY2F0IGNvLCBjaGF0IGRhdSwgcGhhbiB0aGF5 IGhheSBkb3QgeGFjLi4uIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAx MC8wOS8zQkEyMDk2MC8gMjEvOS8yMDEwLCAxMDoyNyBHTVQrNw0KDQpBTlRUOiBTbyB2dSBjdW9w IHhlIG1heSwgdGFpIHNhbiBjdWEgbGFpIHhlIHRheGkgZGllbiBiaWVuIHBodWMgdGFwLCB0YW5n IHRoZW8gdHVuZyBuYW0gKHRhaSBIYSBOb2kpLiANClRyb25nIGhvbiAzLjAwMCB2dSB4YXkgcmEg Y28gZGVuIDcwMCBsYSBjdW9wIHhlIG1heSwgaG9uIDE1MCB2dSBjdW9wIHRhaSBzYW4gdGFpIHhl IHRheGkgDQoNCmh0dHA6Ly93d3cuYmFvYmluaHRodWFuLmNvbS52bi92bi9kZWZhdWx0LmFzcHg/ Y2F0X2lkPTU3MiZuZXdzX2lkPTI0NTUxDQoNCkFOVFQ6ICJCdW5nIHBoYXQiLi4uIHRyZSBob2Eg dG9pIHBoYW0gLSBUb2kgcGhhbSBuZ2F5IGNhbmcgdHJlIGhvYS4uLg0KDQpUcm9uZyBoYW5nIGxv YXQgY2FjIHZ1IGFuIGdpZXQgbmd1b2ksIGN1b3AgdGFpIHNhbiwgaGllcCBkYW0uLi4gY3VhIG5o dW5nIHRoYW5nIGRhdSBuYW0gDQoyMDA5LCBoYXUgaGV0IGh1bmcgdGh1IGRldSBjb24gcmF0IHRy ZSBkdW9pIDI1IHR1b2ksIHRoYW0gY2hpIGNoaSBtb2kgMTYgLSAxNyB0dW9pLiAgIA0KDQpodHRw Oi8vdm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwOC8xMi8zQkEwOTg5Mi8gMTcvMTIvMjAw OCwgMTc6NDAgR01UKzcgDQoNCkFOVFQ6IDIgbmd1b2kgYmkgZ2lldCBibyB2YW8gdGh1bmcgeG9w ICh0YWkgVFAgSENNKSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDkvQ2hp LXRpZXQtdnUtY2F0LWNvLWxhbmgtZGFvLVFQaHUtTmh1YW4tdGFpLW5oYS1yaWVuZy05MzY2OTEv IDE3OjM0LCAyMC8wOS8yMDEwIChHTVQrNykgDQoNCkFOVFQ6IEhhaSBsYW5oIGRhbyBxdWFuIFBo dSBOaHVhbiBiaSBzYXQgaGFpIChUUC5IQ00pIA0KDQoyIHRoYW5oIG5pZW4gdGltIGRlbiBuaGEg aGFuaCBodW5nLCBjYXQgY28gMyBuZ3VvaSBwaHUgbnUuIA0KRG9uZyBkYW8gY2FuaCBzYXQgZGEg dG9pIGJhdCBodW5nIHRodS4gMyBuYW4gbmhhbiBkdW9jIGNodXllbiBkaSBjYXAgY3V1IGJhbmcg eGUgInRheGkiICgxIG5ndW9pIGNoZXQsIDIgbmd1b2kgYmkgdGh1b25nIG5hbmcpIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTcxMzIwMDku YXNweCAxNy8wNy8yMDEwIDEwOjIwIA0KDQpBTlRUOiBOZ3VvaSBkaSBkdW9uZyB0aGlldCBtYW5n IHZpLi4uICJkaW5oIHRhYyIgDQoNCmh0dHA6Ly9ubGQuY29tLnZuLzIwMTAwODI3MDU0MTE2OTIz UDBDMTA3Ny9kaW5oLXRhYy1sYWktaG9hbmgtaGFuaC1vLWhhLW5vaS5odG0gMjcvMDgvMjAxMCAw NTo0MUdNVCs3DQoNCkFOVFQ6ICJEaW5oIHRhYyIgbGFpIGhvYW5oIGhhbmggbyBIYSBOb2kgDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8yMDEwMDkyMjE1 MTQwNS5hc3B4IDIyLzA5LzIwMTAgNToxNCANCg0KQU5UVDogVGFpIGRpZW4gbmFuIGdhaSBkaW5o IHhlIGhvaSBkZSB0cm9tIHRpZW4gKG8gVFAgSENNKSAtIHRpbmggaGluaCBBTlRUIHJhdCBrZW0g ICAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8yMDEw MDkyMzE1NTg1NC5hc3B4IFRyaSBRdWFuZyAgMjUvMDkvMjAxMCA4OjU4IA0KDQpBTlRUOiBOaHVu ZyAiaGllcCBzaSIgY2hvbmcgImRpbmggdGFjIiBiaSBkZSBkb2EgKHRhaSBUUCBIQ00pIA0KDQoo Tmh1bmcgImhpZXAgc2kiIGNob25nICJkaW5oIHRhYyIgLSBLeSAxOiBDYW4gY2hvaSAiYmlldCBi YXkiIGJlbiB4YSBsbykgDQoNCihUTk8pIFRodWMga2h1eWEgZGF5IHNvbSB2YSBzYW4gc2FuZyBj aGFwIG5oYW4gbmd1eSBoaWVtLCBuaGlldSBiYW4gdHJlIGRhbmcgbmdheSANCm5nYXkgdGhhbSBs YW5nIHZvaSBob2F0IGRvbmcgY2hvbmcgImRpbmggdGFjIiB2YSBjdXUgbmd1eSBjaG8gaGFuZyBu Z2FuIHRydW9uZyBob3AgYmkgDQpjYW4gZGluaCB0cmVuIGR1b25nLiANCg0KUFYgYmFvIFRoYW5o IE5pZW4gT25saW5lIHZ1YSBjbyBuaHVuZyBuZ2F5IHJvbmcgcnVvaSBjdW5nIGNhYyBkb2kgY2hv bmcgImRpbmggdGFjIiANCnZhIHZhIHhlIGx1dSBkb25nIHRhaSBUUC5IQ00uDQoNCkNhbiBjaG9p ICJiaWV0IGJheSIgYmVuIHhhIGxvDQoNCkR1b2kgY2hhbiBjYXUgdnVvdCB0cmFtIDIgKHhhIGxv IEhhIE5vaSksIG5ndW9pIHRhIGRlIGRhbmcgbmhhbiByYSBtb3QgY2FuIGNob2kgdGFtIGJvIA0K ZHVvYyBkdW5nIGxlbiBib2kgYm9uIG1pZW5nIHRvbiBtb25nIG1hbmgsIGtob25nIGRpZW4gdmEg Y3VuZyBjaGFuZyBjbyBudW9jLiANCkRvIGNoaW5oIGxhIG5vaSBtYSBkb2kgdmEgeGUgbHV1IGRv bmcgUXVhbiBkb2FuIFEuOSAoVFAuSENNKSBsYW0gY2hvdCAidmFuIHBob25nIiANCmRlIGhhbmcg bmdheSB1bmcgY3V1IGNobyBuaHVuZyB0cnVvbmcgaG9wIGJpIGNhbiBkaW5oIHRyZW4gZHVvbmcu DQoNCihBbmggY2h1cDogVGFuIGNodWFuIGJpIGRvIG5naGUgdmEgeGUgY2hvIGtoYWNoIGNhbiBk aW5oIC0gQW5oOiBUcmkgUXVhbmcpIA0KDQpHb25nIG1pbmggbXV1IHNpbmgNCg0KQmF5IGdpbyBz YW5nLCBOaGF0IFRhbiB2YSBUdWFuIFZ1LCBoYWkgdGhhbmggdmllbiB4b25nIHhhbyBjdWEgZG9p IHZhIHhlIGx1dSBkb25nIA0KUXVhbiBkb2FuIFEuOSwgdmFjIGRvIG5naGUgbGVuIHhlIGJhdCBk YXUgbW90IG5nYXkgbGFtIHZpZWMgbW9pLiANCk5oaWVtIHZ1IGN1YSBobyBsYSBkYW8gbW90IHZv bmcgZG9jIHhhIGxvIEhhIE5vaSwgdHUgbmdhIHR1IFRodSBEdWMgZGVuIG5nYSBiYSBUYW4gDQpW YW4gZGUuLi4gbmhhdCBkaW5oLiANCg0KQ2hvYyBjaG9jLCBUYW4gbGFpIG5oYXkgcGhvYyB4dW9u ZyB4ZSByb2kgY3VpIG5ndW9pIGx1b20gdHVuZyBjYXkgZGluaCBoaW5oIGFjaCBybyBibyANCnZh byBjYWkgdHVpIG5oby4gRGFuZyBuZ3VvaSBjb20gbmhvbSBjdWEgY2hhbmcgdHJhaSAyMSB0dW9p IHRybyBuZW4gbW8gYW8gdmEgY2hlbmggDQp2ZW5oIGdpdWEgbmh1bmcgbGFuIHhlIGNvIGx1b3Qg YmFuZyBiYW5nLCBhbSBhbyB0cmVuIGR1b25nLiANCg0KKEFuaCBjaHVwOiBEbyBjaHVhIGR1b2Mg dHJhbmcgYmkgbWF5IGh1dCBkaW5oIG5lbiBUYW4gdmEgY2FjIGJhbiB0cm9uZyBkb2kgcGhhaSBs dW9tIA0KZGluaCBiYW5nIHRheSAtIEFuaDogVHJpIFF1YW5nKQ0KDQpTYXUgbW90IG5hbSBydW9p IGhvYXQgZG9uZywgZG9pIGN1YSBUYW4gdmEgVnUgdmFuIGNodWEgZHVvYyBzYW0gbWF5IGh1dCBk aW5oIHZhIGhvIA0KcGhhaSBsdW9tIGJhbmcgdGF5IGtob25nIG5lbiByYXQgY3VjLiANCg0KIkRv IGx1b20gdGF5IG5lbiBtb2kgbmdheSBib24gbWluaCB0aHUga2hvbmcgZHVvYyBuaGlldSBkaW5o IGNobyBsYW0uIERhIHNvIGxhIGxvYWkgDQpkaW5oIGxhIGhpbmggY29uIGFjaCBybywgY29uIGxh aSBsYSBkaW5oIGNoaS4gUGhhaSBjaGkgZG9pIGN1YSBtaW5oIGR1b2Mgc2FtIG1heSBodXQgZGlu aCANCnRoaSBjb25nIHZpZWMgY3VuZyBzZSBoaWV1IHF1YSBob24iLCBUYW4gbm9pLiANCg0KVGFu IHZhIFZ1IGRldSBsYSBibyBkb2kgdmEgZGFuIHF1YW4geHVhdCBuZ3UsIGhvIHRpbmggbmd1eWVu IHRoZW8gZHVvaSBjb25nIHZpZWMgdGhhbSANCmxhbmcgdHJlbiBuZ2F5IHR1IG5odW5nIG5nYXkg ZGF1IHRoYW5oIGxhcCBjaG8gZHUga2hvIGtoYW4gdHJhbSBiZS4gDQoNClRob25nIHF1YSBoYWkg c28gZGllbiB0aG9haSAibm9uZyIgMDEyMjY2ODI2MjYgLSAwMTIyNjY4MjcyNywgbW9pIG5nYXkg ZG9pIHZhIHhlIA0KUXVhbiBkb2FuIFEuOSBjaGlhIHJhIGhhaSBjaG90LCBsYW0gdmllYyB0dSA3 IGdpbyBzYW5nIGRlbiAxOCBnaW8gdG9pLiBIZSBjbyBuZ3VvaSBnb2kgDQpkaWVuIGx1YyBuYW8g dGhpIHRoYW5oIHZpZW4gY3VhIGRvaSBjbyBtYXQgbHVjIGRvIGRlIGhvIHRyby4gDQoNCiJUaGFt IGNoaSBzYXUga2hpIGRhIHRhbiBjYSwgY28ga2hhY2ggY2F1IGN1dSBuZ2F5IGdpdWEgMjIgZ2lv IGRlbSwgYm9uIG1pbmggY3VuZyANCnBoYWkgY2hheSByYSB2YSBzdWEgZ2l1cCIsIFRhbiBub2ku IA0KDQpNb2kgbGFuIHZhLCBjYWMgdGhhbmggdmllbiB0cm9uZyBkb2kga2llbSBkdW9jIHR1IDgu MDAwIGRvbmcgZGVuIDEwLjAwMCBkb25nIHR1eSANCmtob2FuZyBjYWNoIGRpIGNodXllbiB4YSBo YXkgZ2FuLiBUaW5oIHJhIG1vaSBuZ2F5IGNhIGRvaSBib24gdGhhbmggdmllbiBjaGkga2llbSAN CmR1b2Mga2hvYW5nIHR1IDgwLjAwMCBkb25nIGRlbiAxMDAuMDAwIGRvbmcgdmEgdGF0IGNhIGRl dSBzb25nIHF1YSBuZ2F5IGJhbmcgc28gdGllbiANCml0IG9pIGRvLiANCg0KKEFuaCBjaHVwOiBD YWMgdGhhbmggdmllbiB0cm9uZyBkb2kgdmEgeGUgbHV1IGRvbmcgUXVhbiBkb2FuIFEuOSBkYW5n IGdvbmcgbWluaCB2b2kgDQpjaHV5ZW4gY29tIGFvIGdhbyB0aWVuIHR1bmcgbmdheSBkZSBiYW0g dHJ1IHZvaSBjb25nIHZpZWMgdGhhbSBsYW5nIC0gQW5oOiBUcmkgUXVhbmcpDQoNCiJDbyBsYW4g Ym9uIG1pbmggdnVhIHZhIHhlIHhvbmcgY2hvIGtoYWNoIG5oaW4gbGFpIHRoYXkgaGFpIGJhbmgg eGUgY3VhIG1pbmggeGVwIGxlcCANCmx1YyBuYW8ga2hvbmcgYmlldCwgZGFuaCBnb2kgZGllbiBj YXUgY3V1IGRvbmcgZG9pIiwgVHVhbiBWdSBrZSBnaW9uZyBjaHVhIGNoYXQuICAgDQoNCiJIaWVu IG5heSBkb2kgdmEgeGUgbHV1IGRvbmcgUS45IHZhbiBjaHVhIGNvIGR1b2MgbWF5IGh1dCBkaW5o LiBRdWFuIGRvYW4gZGEgZGUgeHVhdCANCnJvaSBuaHVuZyBsYW5oIGRhbyBxdWFuIHZhbiBkYW5n IHhlbSB4ZXQuIFNhcCB0b2ksIGNodW5nIHRvaSBzZSBtdWEgNSBjaGllYyB4ZSBtYXkgaG9hIA0K Z2lhIGRlIGhvIHRybyBjaG8gY2FjIGJhbiBsYW0gdmllYywgZG9uZyB0aG9pIHZhbiBkb25nIHRo ZW0gY2FjIG5oYSB0YWkgdHJvIGRlIGNhaSB0aGllbiANCmN1b2Mgc29uZyBjdWEgY2FjIHRoYW5o IHZpZW4sIHZhIGRhYyBiaWV0IGNodW5nIHRvaSBzZSBtdWEgYmFvIGhpZW0gdGFpIG5hbiBjaG8g Y2FjIGJhbiANCnllbiB0YW0gbGFtIHZpZWMuIA0KQW5oIGVtIHRyb25nIGRvaSBjdW5nIGNvIHNh bmcga2llbiB0aW0gbWF0IGJhbmcgbW8gcm9uZyB0aGFuaCBkaWVtIHZ1YSBuaGFuIHJ1YSB4ZSAN CnZ1YSBsYW0gY29uZyB0YWMgc3VhIHZhIHhlIGx1dSBkb25nIGRlIGdpdXAgZG8gY2hvIG5ndW9p IGdhcCBuYW4uIFF1YW4gZG9hbiBzZSBobyB0cm8gDQpraW5oIHBoaSBkZSBjYWMgYmFuIGxhbSB0 aHUgbmdoaWVtIG1vIGhpbmggbmF5IiAtIEFuaCBDYW8gVGhhbmggQmluaCwgQmkgdGh1IFF1YW4g DQpkb2FuIFEuOS4NCg0KVHJvbmcgbW90IG5hbSBydW9pIHF1YSwgZGEgdHVuZyBjbyBuaGlldSB0 aGFuaCB2aWVuIHBoYWkgdHUgYm8gY29uZyB2aWVjIHZhIHhlIGx1dSANCmRvbmcgZ2l1YSBjaHVu ZyBkZSB0aW0gdmllYyBraGFjIHZpIHRodSBuaGFwIGtob25nIGR1IHNvbmcuIA0KDQpUdW9uZyB0 dSBuaHUgdmF5LCBtb3Qgc28gdGhhbmggdmllbiB0cm9uZyBiYSBkb2kgdmEgeGUgbHV1IGRvbmcg Y3VhIFF1YW4gZG9hbiANClEuVGh1IER1YyAgY3VuZyBnYXAga2hvbmcgaXQga2hvIGtoYW4uIE1h eSBtYW4gbGEgbW90IHNvIHRoYW5oIHZpZW4ga2hhYyBjbyB0aWVtIHN1YSANCnZhIHhlIHJpZW5n IG5lbiBjdW5nIHR1b25nIHRybyBsYW4gbmhhdSBkZSBzb25nIHZhIGN1bmcgbGFtIHRvdCBjb25n IHRhYyBkdW9jIGdpYW8uDQpDYW4gY2hvaSAiZGkgZG9uZyINCg0KQ2FjIHRoYW5oIHZpZW4gdHJv bmcgZG9pIGN1YSBLaW0gQ2hpIHRyYW5oIG5hbmcgdHJ1IG11YSB0cm9uZyAidmFuIHBob25nIiA0 bTIgZHVuZyANCnRyZW4gbmVuIGRhdCBnbyBnaGUgYW0gdGhhcCBkdW9pIGdhbSBjYXUgdnVvdCB0 cmFtIDIuIEJlbiB0cm9uZyBsYSBsaW5oIGtpbmggY2FjIGxvYWkgZG8gDQpuZ2hlIHZhIHN1YSB4 ZSBjdSBreSB2YSBjYWkgbWF5IGJvbSBuaG8uIA0KDQogKEFuaCBjaHVwOiAiVmFuIHBob25nIiBj dWEgZG9pIHZhIHhlIGx1dSBkb25nIFF1YW4gZG9hbiBRLjkgdGh1b25nIHh1eWVuIGJpIHRyb20g DQoiZG9uIiBkbyAtIEFuaDogVHJpIFF1YW5nKQ0KDQpEb2kgdHJ1b25nIGRvaSB2YSB4ZSBsdXUg ZG9uZyBRdWFuIGRvYW4gUS45IEtpbSBDaGkgZ28gZ28gdmFvIHRhbSB0b24gdHJhbmcgY29tIGNv cCANCm5vaTogIkNhaSBjaG9pIG5heSBib24gbWluaCBkYSBjaHV5ZW4gZGkgY2h1eWVuIGxhaSBt YXkgY2hvIHJvaSBkbywgaGllbiB0YWkgbm8gdGFtICJxdWEgDQpjYW5oIiBsYWkgZGF5LiBDbyBr aGkgdmFpIGJhIG5nYXkgbGFpICJiYXkiIHNhbmcgY2hvIGtoYWMga2hvbmcgY2h1bmcgdmkgZHUg c2FvIGJvbiANCm1pbmggY3VuZyBraG9uZyBkdW9jIHBoZXAgdHUgeSBkdW5nIGNhaSBjaG9pIG5o dSB0aGUiLiANCg0KQ2hpIGRhICJkdW9jIiB0cmF0IHR1IGRvIHRoaSBwaHVvbmcgbW9pIGxlbiBs YW0gdmllYyBtYXkgbGFuIHZpIHR1IHkgZHVuZyAidmFuIHBob25nIiANCnRyZW4gbGUgZHVvbmcg ZG9jIHhhIGxvLiANCg0KIlZhbiBkZSBuYW0gbyBjaG8gYm9uIG1pbmgga2hvbmcgY28gbm9pIGRl IGR1bmcgdGllbSB2YSBzdWEgeGUgdmEgZGUgbGFtIG5vaSB0cnUgbmd1IA0KaGFuZyBuZ2F5IGto aSBsYW0gdmllYy4gRG9pIGNoaSBjb24gdHJvbmcgY2hvIHZhbyBzdSB0aG9uZyBjYW0gY3VhIGNo aW5oIHF1eWVuIGRpYSANCnBodW9uZyBjaHUgZ2lvIGN1bmcga2hvbmcgYmlldCBwaGFpIGxhbSBz YW8iLCBDaGkgZ2lhaSB0aGljaC4gDQoNCkRhIGtobyBsYWkgY29uIGdhcCBlbywgdGhhbmcgbmFv IGNhbiBjaG9pIGN1YSBkb2kgQ2hpIGN1bmcgYmkgYm9uIGRhbyBjaGljaCBnaGUgInRoYW0iIA0K ZGV1IGRhbiAzLTQgbGFuLiBNb2kgdHVhbiB0cnVvYywgdG9hbiBibyBkbyBuZ2hlLCBtYXkgYm9t IG1hIGRvaSBkZSBsYWkgZGEgYmkgdHJvbSBjYXkgDQpjdWEgZG90IG5oYXAgdmFvICJkb24gZGVw IiBzYWNoIHNlLg0KDQooQW5oIGNodXA6IE1vaSBuZ2F5LCBuaG9tIGN1YSBUYW4gdGh1IGx1b20g ZHVvYyBraG9uZyBpdCBiYXkgZGluaCBjdWEgYm9uICJkaW5oIA0KdGFjIiAtIEFuaDogVHJpIFF1 YW5nKQ0KDQpEYW5nIHJhbSByYW4gdHJvIGNodXllbiBnaXVhIHRydWEsIGRpZW4gdGhvYWkgVGFu IGRvdCBuZ290IHJlbyBsZW4uIExhbiBuYXkga2hvbmcgcGhhaSANCmN1b2MgZ29pIGNhdSBjdXUg dHUgbmd1b2kgZ2FwIG5hbiB0cmVuIGR1b25nIG1hIGxhIHRpbiBuaGFuIGRlIGRvYSBjdWEga2Ug bGEgbWF0IHZvaSBub2kgDQpkdW5nICJzYWMiIG11aSB4YSBob2kgZGVuOiAiQWkgY2hvIHR1aSBi YXkgdmEgeGUgbmdvYWkgZHVvbmcuIENvaSBjaHVuZyB0YW8gZG8hIi4gDQpUYW4gZG9jIHRpbiBu aGFuIGNobyBjYSBkb2kgbmdoZSB4b25nIHJvaSBjdW9pOiAiQ2h1eWVuIG5heSB4YXkgcmEgbmh1 IGNvbSBidWEuIFR1aSANCm5heSBuaGFuIGNhIHRyYW0gdGluIG5oYW4gbmh1IHZheSByb2kuIENv biBjbyBuaGlldSB2dSBuaGEgbWF5LCBnb2kgZGllbiBxdWF5IHJvaSwgDQpraHVuZyBibyB0aW5o IHRoYW4gbnVhIGtpYSEiLg0KDQpWZSBuYW4gYmkgbmhhbiB0aW4sIGdvaSBkaWVuIGtodW5nIGJv LCBjYWMgdGhhbmggdmllbiB2YSB4ZSBsdXUgZG9uZyBjdWEgUS5UaHUgRHVjIA0KY3VuZyBnYXAg dGh1b25nIHh1eWVuLiBWYSB0aGFtIGNoaSwgbW90IHRyb25nIGJhIGRvaSB2YSB4ZSBsdXUgZG9u ZyBjdWEgcXVhbiANCm5heSBkYSB0dW5nIGJpIG1vdCBkYW0gZG9uZyBjb24gZG8gdGllcCBjYW4g ZG9hIG5hdCBoYW5oIGh1bmcsIHJhdCBtYXkga2hvbmcgY28gYWkgYmkgdGh1b25nIHRpY2guICAg DQooQ29uIHRpZXApIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwMzkvMjAxMDA5MjMwOTIzMjEuYXNweCAyMy8wOS8yMDEwIDk6MjMgDQoNCkFOVFQ6IE5hbiBk dWEgeGUgbmdheSBjYW5nIHRhbmcgKHRhaSBUUC5IQ00pICANCiAgDQpodHRwOi8vdmlldGJhby52 bi9Bbi1uaW5oLVBoYXAtbHVhdC9IYWktRHVvbmctYmF0LTItY2FuaC1zYXQtbmhhbi1ob2ktbG8v NDAwODExOTAvMjE4LyAzMS81LzIwMDUsIDA4OjE5IEdNVCs3DQoNCkFOVFQ6IGNhbmggc2F0IG5o YW4gaG9pIGxvICh0YWkgSGFpIER1b25nKSANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0Nh bmgtc2F0LWdpYW8tdGhvbmctbmhhbi1ob2ktbG8tbGFtLWhpZXUtbHVjLXBoYXAtbHVhdC1iaS1u aG9uLzY1MDg5MzQ0LzE1Ny8gMTgvNC8yMDA3LCAxMToyMSBHTVQrNyANCg0KQU5UVDogQ2FuaCBz YXQgZ2lhbyB0aG9uZyBuaGFuIGhvaSBsbyBsYW0gaGlldSBsdWMgcGhhcCBsdWF0IGJpICJuaG9u Ii4gRG8gbGEgbW90IA0KdHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZGFuIGRlbiB0aW5oIHRyYW5n IGdpYW8gdGhvbmcgcGh1YyB0YXAsIHRhaSBuYW4gdGFuZyBjYW8gdHJvbmcgdGhvaSBnaWFuIHF1 YS4gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDEwMjM5MjE0OTYvMTVfY2FuaF9zYXRfZ2lh b190aG9uZ19uaGFuX2hvaV9sb190YXBfdGhlLmh0bWwgVGhlbyBWbkV4cHJlc3MsIFRpZW4gUGhv bmcgLSAxMy8wMS8yMDA2DQoNCkFOVFQ6IDE1IGNhbmggc2F0IGdpYW8gdGhvbmcgbmhhbiBob2kg bG8gdGFwIHRoZSAobyBRdWFuZyBOaW5oKQ0KDQpTbyB0aWVuIGR1YSAtIG5oYW4gaG9pIGxvIGRh IGR1b2MgaG8gbm9wIGxhaSBsYSAzLDUgdHJpZXUgZG9uZy4gVHV5IG5oaWVuLCBtb3Qgbmd1b24g dGluIA0Ka2hhYyBjaG8gaGF5LCBzbyB0aWVuIHNhaSBwaGFtIHRyb25nIHZ1IHZpZWMgbmF5IGxv biBob24gY29uIHNvIHRyZW4gbmhpZXUgbGFuLCB2YSBzbyANCm5ndW9pIGxpZW4gcXVhbiBraG9u ZyBjaGkgZHVuZyBsYWkgbyAxNSBuZ3VvaS4gDQoNCihDdSB0cmkgcXVhbiB0YW06IFZvaSBraGF1 IGhpZXUgImNoaSBiaWV0IGNvbiBkYW5nIGNvbiBtaW5oIiwgbmdhbmggY29uZyBhbiANCmtobyBt YSBkYW8gdGFvIGR1b2Mgbmh1bmcgbmd1b2kgdmkgbnVvYyB2aSBkYW4gdGh1YyBzdTsgY29uIGVt IGN1YSBuaGFuIGRhbiANCmNobyB2YW8gcGh1YyB2dSB0cm9uZyBuZ2hhbmggY29uZyBhbiByYXQg ZGUgYmkgb25nIExlIEhvbmcgQW5oIGxhbSBjaG8gaHUgaG9uZzsgaGVuIG5oYXQuKSANCg0KaHR0 cDovL3d3dy52dGMudm4vNy0yMzI4NzEvcGhhcC1sdWF0L25oYW4taG9pLWxvLTItY2FuaC1zYXQt Z2lhby10aG9uZy1iaS1waGF0LXR1Lmh0bSAzMC8xMS8yMDA5IDIyOjE5IA0KDQpBTlRUOiBDYW5o IHNhdCBnaWFvIHRob25nIG5oYW4gaG9pIGxvIHZhIG1vaSBnaW9pIGhvaSBsbyAobyBUaWVuIEdp YW5nKSANCg0KaHR0cDovL3d3dy5idXktc2VsbC52bi9zaG93dGhyZWFkLnBocD90PTIyOTE3DQoN CkFOVFQ6IFRlIE5hbiBNYWkgRGFtLi4uc29zLi4uISEhIQ0KDQpodHRwOi8vZGllbXRpbi5jb20v UGhhcC1sdWF0XzcvTWFpLWRhbS10cm9uZy1xdWFuLXBob183XzMyMTU3LyBOZ3VvbjogTmdvaVNh by5uZXQgLSAwNy0xMC0yMDA3IA0KDQpBTlRUOiBNYWkgZGFtIHRyb25nIHF1YW4gcGhvDQoNCmh0 dHA6Ly90aW50dWNvbmxpbmUudmlldG5hbW5ldC52bi92bi94YWhvaS8zOTM5NzAvaW5kZXguaHRt bDIzLzA2LzIwMDkgMTY6MzYgKEdNVCArNykNCg0KQU5UVDogUmEgZG9uZyBiYW4gZGFtDQoNCmh0 dHA6Ly9iYWl2aWV0LnBoYW52aWVuLmNvbS8yMDA4LzUvMjQvZGF1LWxvbmctbmdoZS1kZS1tdW9u LWJhbi1jb24uaHRtbA0KDQpUaHUgdHVvbmc6IERhdSBsb25nIG5naGUgZGUgbXVvbiwgYmFuIGNv biANCg0KRGlldSBMdW9uZyBtb3QgYmFuIHRodW9jIHZ1bmcgcnVuZyBudWkgeGEgeG9pIGN1YSBo dXllbiBEYSBCYWMsIHRpbmggSG9hIEJpbmgsIGNvIG5oaWV1IGNvIGdhaSBibyBydW5nIHh1b25n IHBobyAiYmFuIGhvYSIuICJOZ29haSB0ZSBuYW4gbWFpIGRhbSwgVGFuIE1pbmggY29uIGNvIHRo ZW0gbmdoZSBkZSBtdW9uLiBEYXUgbG9uZyBsYW0hIg0KDQpEaSB0dSBkYXUgYmFuIGRlbiBjdW9p IGJhbiwgY2hpIHRoYXkgZGFuIG9uZyBjb24gdHJhaSwgbmd1b2kgZ2lhIHZhIHRyZSBjb24uIFBo dSBudSAgbm9pZGF5IGRpIGRhdSBoZXQuIEhvIGRpIGxhbSBudW9uZz8gIkxhbSBudW9uZyBnaSBi YXkgZ2lvLCBkYSB2YW8gdnUgZGF1LiBEaSB4dW9uZyB0aGFuaCBwaG8gIGxhbSAiY2F2ZSIgbGEg Y2hpbmgiIC0gQ2hpIERpbmggVGhpIE5nYSwgY2hpIGhvaSB0cnVvbmcgcGh1IG51ICB4b20gRGll dSBMdW9uZyBraG9uZyBuZ2FuIG5nYWkgbm9pIHZvaSBjaHVuZyB0b2kuIA0KDQoiTGEgZG9pIHRo YXQuIE5vaSBkYXksIHBodSBudSAgbGFpIHJvaSBibyBiYW4gbGFuZyB4dW9pIHh1b25nIHRoYW5o IHBobyAga2llbSB0aWVuLCBkYW4gb25nIG8gbmhhIGNhbSBiYW4sIG51b2kgdHJlIGNvbi4gQ2hp IE5nYSAga2UgdGllcDogIlRydW9jIGRheSwgbW9pIG5ndW9pIGN1dHVvbmcgY2hpIGVtIHJ1IG5o YXUgeHVvbmcgSG9hIEJpbmgsIHJvaSBzYW5nIGNhIFh1YW4gTWFpIChDaHVvbmcgTXkuSGEgVGF5 KSBsYW0gdmllYy4gQWkgY3VuZyB0dW9uZyB0aGF0IHZpIGRvIGxhIGNob24gZG8gdGhpLCBraWVt IGR1b2N2aWVjIG1hIGxhbSBsYSBkZS4gTmdoZSBjaGkgZW0gZG9uIG5oYXUgdmllYyBnaSBkbyBi byBhbiBsYW0uIFN1IHZpZWNkdW9jIGdpYXUga2luIGJ1bmcgY2hvIGRlbiBtb3QgbmdheSwgQ29u ZyBhbiAgSG9hIEJpbmggdHJpZXQgcGhhIGNhYyBoYW5nIGRvbmcgaG9hdCBkb25nICBtYWkgZGFt LiBHaWEgZGluaCwgY2hvbmcgY29uLCBjYSBiYW4gbW9pIHZvIGxlIHJhLCBuZ3VvaSB0aGFuIGhv IHJvaSBibyBiYW4gbGFuZyBkZXUgc2EgbmdhIHZhbyBjb24gZHVvbmcgIG1haSBkYW0iLiANCg0K Q2hvbmcgZXAgdm8gbGFtIGdhaSAiYmFuIGhvYSINCg0KTmh1bmcgZHVhIHRyZSBiaSBkYXQgbXVh IHR1Li4uIHRyb25nIGJ1bmcNCg0KQ2hpIERpbmggVGhpIE5nYSB0aG9uZyBrZSBtb3QgY29uIHNv IGdheSBzb2MsIGtoaSBjaGkgY2hhYyBjaGFuIGNobyByYW5nIG8gRGlldSBMdW9uZyBjbyAxMiB0 cnVvbmcgaG9wICJtYSBjdSIgImhhbmggbmdoZSIgbGF1IG5hbSBvIHRoYW5oIHBobyAgSG9hIEJp bmggdmEgWHVhbiBNYWksIEhhIFRheS4gVGhpbmggdGhvYW5nIGNhYyBjbyBheSBsYWkgdGF5IHhh Y2ggbmFjaCBtYW5nLCBiYW5oIGtlbyxxdWFuIGFvLCB0aWVuIGJhYyAgY2hvIGdpYSBkaW5oLCBy b2kgY29uIG1vIGxvbiBtbyBnYSBsaWVuIGhvYW4gIGxpbmggZGluaCBtdW5nIGdpYSBkaW5oICBk b2FuIHR1IHNhdSBuaHVuZyB0aGFuZyBuZ2F5IHhhIGNhY2guIE1vaSBsYW4gcXVheSB0cm8gbGFp IGNob24gIm5nbyBsaWV1IHR1b25nIGhvYSIgbGEgeSBuaHUgcmFuZyBsYWkgcnUgcmUgdGhlbSB2 YWkgYmEgZW0gMTcsIDE4IHR1b2kgYm8gbmhhIHRoZW8uIEFpIGNvIGhvaSBkaSBsYW0gZ2ksIGJv biB0cmUgdGhhbiBuaGllbiB0cmEgbG9pICJlbSBkaSBsYW0gQ2F2ZSIuDQoNCk1vaSBuaGF0IGxh IGNvIGVtIEx1b25nIFRoaSBDYW5oICgxOCB0dW9pKSBibyBuaGEgcmEgZGkgY28gbW90IHRob2kg Z2lhbiwgZGEgdGhheSB2YWMgbW90IGNhaSBidW5nIHRvIHV5Y2ggdmUsIG5odW5nIG5nYXkgY2Eg Q2FuaCBjdW5nIG5hbyBjbyBiaWV0IGJvIGN1YSBubyBsYSBhaSBkYXUuIEdpYSBkaW5oIENhbmgg ZGFuZyB0aW5oIGRlbiBudW9jIGx1YyBDYW5oIHNpbmggZHVhIGJlIGtpYSByYSB0aGkgc2Ugbmdh eSBsYXAgdHVjIHJhbyBiYW4uDQoNCkNhaSBsYWMgZGF1IGJ1b24gYmEgY3VhIG9uZyBQaG8gY2h1 IHRpY2ggeGENCg0KS2hvbmcgcGhhaSBib25nIGR1bmcgY2FjIGJhbiBjdWEgVGFuIE1pbmggY28g dGhlbSBjYWkgbmdoZSAiZGUgbXVvbiIuIA0KIk1heSBuYW0gdHJ1b2Mgbmd1b2kgdGEgY2hpIGJh biBuaHVuZyBkdWEgY29uIGtob25nIGNvIGNoYSwgbWUgY2h1bmcgbGEgbmh1bmcgZ2FpICBtYWkg ZGFtIA0KaG9hdCBkb25nICBkdW9pICJwaG8gSG9uZyBLb25nIiAodGhhbmggcGhvIEhvYSBCaW5o KSwgbmF5IGxhaSBzYW5nIGNhIG5odW5nIGNoYXUgY28gY2EgY2hhIG1lIGhhbiBob2kuIA0KTmd1 b2kgVGFuIE1pbmggY29pIGRlIHRodWUgbGEgbW90Im5naGUiIG1hdCByb2kiIC0gb25nIEhhIFZh biBUYW0gYnVvbiBiYSB0YW0gc3UuIA0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEt aG9pLzIwMDgvMTAvM0JBMDc5NTQvDQoNCkFOVFQ6IFBobyAnZGVuIGRvJyB2ZW4gZG8NCg0KN2gg dG9pLCB0dXllbiBkdW9uZyA3MiAoZ2lhcCByYW5oIEhhIE5vaSB2YSBIb2EgQmluaCkgdHJhbiBu Z2FwIGRlbiBoaWV1IGRvIGxvIG1vIHR1IGNhYyBxdWFuIGNhIHBoZS4gS2hhY2ggdnVhIGR1bmcg eGUgdmFvIHF1YW4sIG5odW5nIGNvIGdhaSBtYWMgcXVhbiBzb29jIGN1biBjb24sIGFvIHhlIHNh dSBsYW8gcmEuDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMTM0LTIyODc2Ni9sYW5oLXNv bmctbHVuZy1vLXBoby1kZW4tZG8tc29uLXRheS5odG0NCg0KTGFuaCBzb25nIGx1bmcgbyBwaG8g ImRlbiBkbyIgU29uIFRheQ0KDQpLaG9uZyBjaGkgbm9pIHRpZW5nIHZvaSBkYWMgc2FuIGdhIHJp LCBnYSBnaWEsIGdhIGxlbyBkb2kuLi4gZG9hbiBYdWFuIE1haSwgSG9hIExhYyAtIFNvbiBUYXku IGxhdSBuYXkgZHVvYyBiaWV0IGRlbiBuaHUgImRhdCIgY3VhICJHYSBtb25nIGRvIi4NCg0KQmFt IHRoZW8gdHJ1YyBkdW9uZyBxdW9jIGxvLCBsZW4gbG9pIHZhbyBjYWMga2h1IGRhbiBjdSBtb2ks IG5odW5nICJkb25nIiwgImxvIiBkdWEgbmhhdSBtb2MgbGVuIG5odW5nIHF1YW46IE1hdC14YSwg TmhhIG5naGksIENhIHBoZSwgS2FyYW9rZSBnb2kgZGF1LCB0YW0gcXVhdCwgdGh1IGdpYW4uLi4g R2l1YSBuZ3VvaSBxdWUga2llbmcgbGEgbmh1bmcga2h1b24gbWF0IGxhIHRhIHNvbiBwaGFuLCB2 YXkgYW8gY3VuIGNvbi4gVnVuZyBxdWUgeWVuIHRpbmggZGEgYmkgYW5oIGRlbiBkbywgZGVuIHZh bmcgbGFtIGhpdSBoYXQuDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAw Ny8xMC8zQjlGQjRDMi8gDQoNCkFOVFQ6IFBobyAndmF5JyBnaXVhIHRodSBkbw0KDQpodHRwOi8v d3d3LmZvcnZuLmNvbS9mb3J1bXMvdGluLXRiLWMtdGhqLWItbmctbmhiLXQvMTE0Mi1iai1iLW0t ZC1nLW0tdHJnLW4tZC1qLWItbmctcGhiLWhnLW5iLWktaGotbi00MC1nZy1pLW1iLWktZGctbS1u aGliLW0taGl2Lmh0bWwgDQoNCkFOVFQ6IEJ1b20gZGVtIHRyZW4gZHVvbmcgcGhvIEhhIE5vaTog aG9uIDQwJSBnYWkgbWFpIGRhbSBuaGllbSBISVYNCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0 L0dML1hhLWhvaS8yMDA2LzA1LzNCOUU5QTk1Lw0KDQpBTlRUOiBHYW4gMS4zMDAgZ2FpIGJhbiBk YW0gZGFuZyBoYW5oIG5naGUgdGFpIEhhIE5vaQ0KDQpEbyBsYSBzbyBsaWV1IHZ1YSBkdW9jIENo aSBjdWMgcGhvbmcgY2hvbmcgdGUgbmFuIHhhIGhvaSBIYSBOb2kgY29uZyBiby4gVHJ1b2MgZG8s IHR1IGN1b2kgbmFtIDIwMDUsIGhhaSBuZ2FuaCBjb25nIGFuLCBsYW8gZG9uZyB0aGFuaCBwaG8g ZGEgdGllbiBoYW5oIG1vdCBjdW9jIGRpZXUgdHJhIGR1b2MgZ2hpIG5oYW4gbGEgcXV5IG1vIG5o YXQgdHUgdHJ1b2MgZGVuIG5heSwgbmhhbSBkYW5oIGdpYSBkdW5nIHRpbmggaGluaCBtYWkgZGFt IHRyZW4gZGlhIGJhbi4gDQoNCkdhaSBsYW5nIGFwIGRhbyBnYWkgcGhvDQoNClRyb25nIDEuMjgw IGdhaSBtYWkgZGFtIGhvYXQgZG9uZyB0YWkgSGEgTm9pLCBkdW9jIGxhcCBobyBzbyB0aGVvIGRv aSBxdWFuIGx5LCB0aGkgY28gdG9pIDg4NSBuZ3VvaSBkZW4gdHUgY2FjIDQzIHRpbmggdGhhbmgu IERvbmcgZGFvIG5oYXQgbGEgdGluaCBsYW5nIGdpZW5nIEhhIFRheSB2b2kgMTAxIGNvLCBrZSBk ZW4gbGEgUGh1IFRobyAoODcpLCBUaGFuaCBIb2EgKDcxKSwgTmFtIERpbmggKDU2KSwgVGhhaSBO Z3V5ZW4gKDQ1KS4gDQoNClRoZW8gY2FjIGNhbiBibyBkaWV1IHRyYSwga2V0IHF1YSBuYXkgcGhh biBhbmggZHVuZyBxdXkgbHVhdCBsYSBnYWkgYmFuIGRhbSB0aHVvbmcga2hvbmcgaG9hdCBkb25n IHRhaSBkaWEgcGh1b25nIG1pbmggdmkgc28gYmkgcGhhdCBoaWVuLiANCg0KVHJvbmcgc28gMzk3 IGdhaSBiYW4gZGFtIGNvIGhvIGtoYXUgSGEgTm9pIHRoaSA0IHF1YW4gbm9pIHRoYW5oIGN1IGNo aWVtIG5oaWV1IG5oYXQsIGR1bmcgZGF1IGxhIEhhaSBCYSBUcnVuZyB2b2kgODMgY28sIERvbmcg RGEgKDgwKSwgSG9hbiBLaWVtICg1MikgdmEgQmEgRGluaCAoNDYpLg0KDQpJdCBuaGF0IGxhIHF1 YW4gQ2F1IEdpYXkgY2hpIGNvIDUgZ2FpIGJhbiBkYW0gY28gaG8ga2hhdSB0cnVvbmcgdHJ1IHRh aSBxdWFuLiANCg0KTmhpZW0gSElWIHZhbiB2byB0dSBkaSBraGFjaA0KDQpUaGVvIGtldCBxdWEg ZGlldSB0cmEsIGNvIDE0LDklIHRyb25nIHNvIDEuMjgwIGdhaSBtYWkgZGFtIG5vaSB0cmVuIGRh IGJpIG5oaWVtIEhJViB2YSBraG9hbmcgbW90IG51YSBjb24gc28gbmF5IGRhbmcgbWFjIGNhYyBi ZW5oIHhhIGhvaSBuaHUgbGF1LCBnaWFuZyBtYWksIHN1aSBjYW8uLi4gTWFjIGJlbmgsIG5odW5n IGdhbiAxLzMgc28gZ2FpIGJhbiBkYW0gdGhpbmggdGhvYW5nIG1vaSBkdW5nIGJhbyBjYW8gc3Us IHZhIGNhIGJpZXQgY28gNSwyJSBzbyBjbyBraG9uZyB4YWkgZGVuIGRvIGJhbyB2ZS4gU3Ugdm8g dHUgcXVhbiBoZSB0aW5oIGR1YyBkYW5nIGRheSBuaGFuaCB0b2MgZG8gbGF5IG5oaWVtIEhJViBy YSBjb25nIGRvbmcuIA0KDQpUaGVvIGNhYyBjYW4gYm8gZGlldSB0cmEsIGNvIG1vdCBudWEgc28g Z2FpIG1haSBkYW0ga2hvbmcgYmlldCBob2FjIHR1IGNob2kgdHJhIGxvaSBuZ3VvaSBtdWEgZGFt IGxhbSBuZ2hlIGdpLiBOaHVuZyB0cm9uZyBzbyBuaHVuZyBuZ3VvaSB0cmEgbG9pLCBkYSB4dWF0 IGhpZW4gY2EgbmhvbSBjb25nIGNodWMgbmhhIG51b2MsIGhvYyBzaW5oLCBzaW5oIHZpZW4uIA0K DQpodHRwOi8vdm5leHByZXNzLm5ldC9WaWV0bmFtL1BoYXAtbHVhdC8yMDA4LzA0LzNCQTAxODEy LyANCg0KQU5UVDogQmFvIGtlIGNoZW0gY29uZyBhbiAnZ2lhaSB2YXknIGdhaSBtYWkgZGFtDQoN Cmh0dHA6Ly93d3cudGluMjQ3LmNvbS9jYW5oX3NhdF9kaV9jdW9wX2JpX3R1b2NfcXVhbl90aWNo LTYtMjEyMTM4ODcuaHRtbCB2bkV4cHJlc3MubmV0IDA2LzAyLzIwMDcgLSAyMDo0MyANCg0KQU5U VDogQ2FuIGJvIGNhbmggc2F0IGRpZXUgdHJhIGRpIGN1b3AgLSBjbyBrZSBob2FjaCAtIGNvIHRv IGNodWMgIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL0hhLU5vaS1H aWV0LW5ndW9pLWN1b3Atbmdhbi1oYW5nLTk0NDE0Ni8gMTM6NTAsIDI0LzEwLzIwMTAgKEdNVCs3 KQ0KDQpBTlRUOiBHaWV0IG5ndW9pLCBjdW9wIG5nYW4gaGFuZyBuZ2F5IHRhaSBIYSBOb2kNCg0K aHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvQ2FuaC1zYXQtbWEtdHV5LWRpLWJ1 b24taGVyb2luLzEwOTQyODkzLzIxOC8gMjAvMS8yMDA2LCAwOTo1MyBHTVQrNyANCg0KQU5UVDog Q2FuaCBzYXQgbWEgdHV5IGRpIGJ1b24gaGVyb2luIA0KDQpodHRwOi8vdnR2LnZuL0FydGljbGUv R2V0Lzg0NDY4ICANCg0KQU5UVDogQ29uZyBhbiBwaHUgdHJhY2ggZGlhIGJhbiBuaGFuIGhvaSBs byBjdWEgY29uIGJ1b24gbWEgdHV5ICh0YWkgSGEgTm9pKSANCg0KaHR0cDovL3BoYXBsdWF0dHAu dm4vMjAxMDA5MTQxMTIyMTM4NHAxMDE1YzEwNzQvY28tZ2FpLXRyZS1iaS1naWV0LWdpYXUteGFj LXRyb25nLXRodW5nLW51b2MtZGEuaHRtIDE1LzA5LzIwMTAgLSAxMjoxNyBBTQ0KDQpBTlRUOiBU aGVtIDEgY28gZ2FpIHRyZSBiaSBnaWV0LCBnaWF1IHhhYyB0cm9uZyB0aHVuZyBudW9jIGRhICh0 YWkgVFAgSENNKSANCg0KaHR0cDovL3d3dy5pbmZvLnZuL2xhd3MvY3JpbWluYWwvMzM5OTEtY2Fu LWItY29uZy1hbi1xdW4tbHktdGgtdHJuZy1idW9uLWx1LXFzaWV1LXhlcSAwOToxMCAyMDEwIDEx OjEzIA0KDQpBTlRUOiBDYW4gYm8gY29uZyBhbiwgcXVhbiBseSB0aGkgdHJ1b25nIGJ1b24gbGF1 ICJzaWV1IHhlIiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvUGhhcC1sdWF0LzIwMTAvMDYv M0JBMUNENjUvIDExLzYvMjAxMCwgMDk6MjcgR01UKzcNCg0KQU5UVDogQ2FuaCBzYXQgY2FtIGRh dSBuaG9tICd4aW4gZGV1JyBuZ3VvaSBkaSBkdW9uZyANCg0KaHR0cDovL3d3dy50aW4yNDcuY29t L3NlX3R1b2NfcXVhbl90aWNoXzJfY2FuaF9zYXRfcGNjY19kaV9jdW9wX2dpYXQtMS0yMTQyMzA3 OS5odG1sIDEyLzA1LzIwMDkgLSAyMzo1NyAtIFZpZXROYW1OZXQudm4NCg0KQU5UVDogQ2FuaCBz YXQgUENDQyBkaSBjdW9wIGdpYXQNCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAt bHVhdC8yMDA5LzA3LzNCQTExMzY1Lw0KDQpBTlRUOiBIb2F0IGRvbmcgdG9pIHBoYW0gY28gZGF1 IGhpZXUgcGh1YyB0YXAgdm9pIHZpZWMgbW90IHNvIGJhbmcgbmhvbSB4YSBob2kgZGVuIGR1bmcg dnUga2hpIHRyaWV0IGhhIG5oYXUgDQoNCmh0dHA6Ly93d3cuZG90aGkubmV0L05ld3MvVGluLXR1 Yy9Eb2ktc29uZy1kby10aGkvMjAwOS8wOC8zQjlBRTgwNC8gMjkvOC8yMDA5LCAwNzo1OCBHTVQr Nw0KDQpBTlRUOiBYYXkgbmhhIHRyZW4gZGF0IG5vbmcgbmdoaWVwIA0KDQpodHRwOi8vbmxkLmNv bS52bi8yMDA5MTAwMjA4Mjc0NTU0MVAwQzEwMTkvaGEtdGluaC10aGF5LWdpYW8taGllcC1kYW0t aG9jLXNpbmguaHRtIDAyLzEwLzIwMDkgMjA6MjdHTVQrNw0KDQpBTlRUOiBUaGF5IGdpYW8gaGll cCBkYW0gaG9jIHNpbmggDQoNCmh0dHA6Ly90aW50dWNzby5uZXQvdjI2ODczLWN1b3AtdGFpLXNh bi1yb2ktaGllcC1kYW0uaHRtbCAyNi8wNy8yMDEwIC0gMTA6MzANCg0KQU5UVDogQ3VvcCB0YWkg c2FuIHJvaSBoaWVwIGRhbQ0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vaGFfbm9pX25ob21fdHJh aV9sYW5nX2hpZXBfZGFtX3RhcF90aGVfbGluaF9hbi02LTQwNTAuaHRtbCAgVGllblBob25nLnZu IDA4LzA0LzIwMDggLSAyMjoyMSAgDQoNCkFOVFQ6IE5ob20gJ3RyYWkgbGFuZycgaGllcCBkYW0g dGFwIHRoZSANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2JhdF9jb2NfZ2FpX2JpYV9vbV9sZW5f ZG9pX2hpZXBfZGFtX3RhcF90aGUtNi0xMTQ0NS5odG1sIHZuRXhwcmVzcy5uZXQgIDI1LzA0LzIw MDggLSAwOToyMCANCg0KQU5UVDogQmF0IGNvYyBwaHUgbnUgbGVuIGRvaSBoaWVwIGRhbSB0YXAg dGhlIChoYWkgbGFuIHRyb25nIG1vdCB0dWFuKSANCg0KaHR0cDovL3d3dy5naWFvZHVjLmVkdS52 bi9uZXdzL3hhLWhvaS02ODAvdGhhbmgtaG9hLWJhdC1raGFuLWNhcC1iYWMtc2ktaGllcC1kYW0t Y28tZ2lhby0xNDIxNzcuYXNweCAwNi8xMC8yMDEwLCAwNzowNCAoR01UKzcpDQoNCkFOVFQ6IEJh YyBzaSBoaWVwIGRhbSBjbyBnaWFvIA0KDQpodHRwOi8vd3d3LnBoYXBsdWF0dHAudm4vbmV3cy94 YS1ob2kvdmlldy5hc3B4P25ld3NfaWQ9MjUzMDU0ICBDQU8gVFUgVEhBTkggMTAtMDUtMjAwOSAy MzozNzo0NiBHTVQgKzcNCg0KVGh1IHR1b25nOiBEdW5nIGxhIGNoZW0hIFN1IGJ1b25nIHRoYSB0 cm9uZyBtb3QgeGEgaG9pIGJpIG5ndXllbiB0aHV5IGhvYS4gUXVhbiBseSB5ZXUga2VtIGxhbSBj byBjaGUgbGVjaCBjaHVhbiwgeGEgaG9pIGNhbmcgdGhlbSBwaHVjIHRhcC4NCg0KaHR0cDovL2J1 enoueXVtZS52bi94ZW0tYnV6ei90cmFuLWxvdC1jdW9wLWN1YS1kYW5nLXR1bmctaG9hbmgtdGFp LWJlbi14ZS1taWVuLWRvbmcuYWN0eWJveS4zNUE1MzNFNS5odG1sDQoNCkFOVFQ6IFRyYW4gbG90 LCBjdW9wIGN1YSBkYW5nIHR1bmcgaG9hbmggDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9C dW5nLXBoYXQtbmFuLXRyb20tY2FwLXBodS10dW5nLW8tdG8vMTEwNDYxMjYvMTU3LyAyMy8yLyAy MDA4LCAxMTozMyBHTVQrNw0KDQpBTlRUOiBCdW5nIHBoYXQgbmFuIHRyb20gY2FwIHBodSB0dW5n IG8gdG8NCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvVmlldG5hbS9YYS1ob2kvMjAwOC8wMi8zQjlG RjNDNi8gMTgvMi8yMDA4LCAwOToxOCBHTVQrNw0KDQpUaHUgdHVvbmc6IFRyb20gY2FwIGhvYW5o IGhhbmggdGFpIGNhYyB0dXllbiB4ZSBidXl0DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9OZXdzL1BhZ2VzLzIwMDk0MS8yMDA5MTAwNzAwMzU1NS5hc3B4IERhbSBIdXkgLSBEaW5oIE11 b2kgMDcvMTAvMjAwOSAwOjM1IA0KDQpUaHUgdHVvbmc6IEhhbmcgdHJvbSBjYXAgZGF5IHJheSEg LSBOYW4gImJlIGtpbmgsIG1vYyBkZW4iIC0gbmh1bmcga2h1IGNobyBoYW5nIHRyb20gY2FwIGR1 b2MgbXVhIGJhbiBtb3QgY2FjaCBoZXQgc3VjIGRlIGRhbmcuDQoNCmh0dHA6Ly90dW9pdHJlLnZu L0NoaW5oLXRyaS1YYS1ob2kvMTM4NTQwL0JvLXRydW9uZy1OZ3V5ZW4tU2luaC1IdW5nLWNhbi1n aWFpLXRyaW5oLXJvLXRydW9jLWtoaS1yb2ktQm8tVGFpLWNoaW5oLmh0bWwgMTgvMDUvMjAwNiwg MDU6NDkgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBEYWkgYmlldSBRdW9jIGhvaSBOZ3V5ZW4gTWlu aCBUaHV5ZXQgZGUgbmdoaSAiVGh1IHR1b25nIHZhIENoaW5oIHBodSBuZW4geGluIGxvaSB0b2Fu IGRhbiIgDQoNCkJlbiBoYW5oIGxhbmcgUXVvYyBob2ksIGJhbyBUdW9pIFRyZSBkYSB0cmFvIGRv aSB2b2kgRGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0IHZlIGxvaSBkZSBuZ2hpIGN1YSBvbmcu IA0KDQoqIFR1b2kgVHJlOiBWaSBzYW8gb25nIGR1YSByYSBkZSBuZ2hpICJUaHUgdHVvbmcgdmEg Q2hpbmggcGh1IG5lbiB4aW4gbG9pIHRvYW4gZGFuIj8NCg0KKiBEYWkgYmlldSBOZ3V5ZW4gTWlu aCBUaHV5ZXQ6IFRvaSB0aGF5IGRheSBsYSB5IGNodW5nLCBuZ3V5ZW4gdm9uZyBjdWEgY3UgdHJp IG1hIHRvaSB0aWVwIA0KeHVjLiBDdSB0cmkgbm9pIHJhbmc6IGJlbiBjYW5oIHV1IGRpZW0sIHF1 YW4gbHkgbmhhIG51b2MgY29uIHJhdCBuaGlldSBraHV5ZXQgZGllbSwgY2EgDQp2ZSBraW5oIHRl IC0geGEgaG9pIGxhbiBtYXQgbWF0IGNhbiBibyAoY2FuIGJvIGh1IGhvbmcpIHZhIHV5IHRpbiBn aWFtIHN1dC4gVmEgbmh1IHRoZSB0aGkgbmd1b2kgZHVuZyBkYXUgcGhhaSBjaGl1IHRyYWNoIG5o aWVtLiANCg0KLSANCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDYvS2ll bi1xdXlldC1kdW5nLWNoby1udW9jLW5nb2FpLXRodWUtZGF0LXJ1bmctOTE1NjIzLyAwNTo1Miwg MTIvMDYvMjAxMCAoR01UKzcpDQoNCidLaWVuIHF1eWV0IGR1bmcgY2hvIG51b2MgbmdvYWkgdGh1 ZSBkYXQgcnVuZycgDQoNCkNodSBuaGllbSBVQiBRdW9jIHBob25nIC0gQW4gbmluaCBMZSBRdWFu ZyBCaW5oIGtoYW5nIGRpbmggY2FuIGtpZW4gcXV5ZXQgZHVuZyANCnZpZWMgY2FwIGRhdCBydW5n IGNobyBjYWMgY29uZyB0eSBudW9jIG5nb2FpIHRodWUuDQoNClRhaSBwaGllbiBjaGF0IHZhbiBL eSBob3AgdGh1IGJheSAtIFFIIGtob2EgWElJICwgRGFpIGJpZXUgTGUgUXVhbmcgQmluaCBsYSBu Z3VvaSANCmN1bmcgY2FwIHNvIGxpZXUgMTggdGluaCBjaG8gbnVvYyBuZ29haSB0aHVlIGRhdCBy dW5nLCB0aGF5IGNobyBjb24gc28gMTAgbWEgQ2hpbmggcGh1IGJhbyBjYW8uDQoNCmh0dHA6Ly93 d3cucmZhLm9yZy92aWV0bmFtZXNlL3Byb2dyYW1zL1Jldmlld09ubGluZURvbWVzdGljUHJlc3Mv RmFybWVycy1iZWluZy1wYXVwZXJpemluZy1ubmd1eWVuLTA3MDQyMDA5MTA1OTEzLmh0bWwgTmFt IE5ndXllbiwgcGhvbmcgdmllbiBkYWkgUkZBIDIwMDktMDctMDQNCg0KVGh1IHR1b25nOiBOb25n IGRhbiBkYW5nIGJpIGJhbiBjdW5nIGhvYSANCg0KTmh1IG1vdCBzdSBraWVuIGNodWEgdHVuZyBj bywgbW90IG5oYSBraG9hIGhvYyBub2kgdGllbmcgZGFuZyBzb25nIG8gdHJvbmcgbnVvYyBkYSBj b25nIGtoYWkgDQpuaGFuIGRpbmggdHJlbiBiYW8gZGllbiB0dSBWaWV0bmFtIE5ldCByYW5nLCBu b25nIG5naGllcCBub25nIHRob24gVmlldCBOYW0ga2VtIHBoYXQgdHJpZW4gDQpob2FuIHRvYW4g bGEgZG8gY28gY2hlLCBkbyBkdW9uZyBsb2ksIHF1eWV0IGRpbmggY3VhIGxhbmggZGFvLiBEbyBs YSBoYXUgcXVhIGN1YSB2aWVjIGJvYyANCmxvdCBub25nIG5naGllcCBkZSBkb24gbHVjIGNobyBj b25nIG5naGllcCBob2EuDQoNCkdTVlMgRGFvIFRoZSBUdWFuIGRhIGtob25nIG5nYW4gbmdhaSBu b2kgdGhhbmcgcmFuZyBub25nIGRhbiBWaWV0IE5hbSBkYW5nIGJpIGJhbiBjdW5nIGhvYS4gDQpD aHVuZyB0b2kgdHJpY2ggZG9jIG5ndXllbiB2YW4gbG9pIG9uZyBub2k6DQoNCiJOaGluIHR1IGdv YyBkbyBjaGluaCB0cmkgLSB4YSBob2ksIG5vbmcgZGFuIFZpZXQgTmFtIGxhIG5odW5nIG5ndW9p IGl0IGR1b2MgaHVvbmcgbG9pIHR1IA0KZG9pIG1vaSBuaGF0LiBOb25nIGRhbiBjb24gcXVhIG5n aGVvLCBpdCBkdW9jIGh1b25nIHBodWMgbG9pIHhhIGhvaSBuaHUgZ2lhbyBkdWMsIHkgdGUuLi4g DQp0aGlldSB2aWVjIGxhbSBvIG5vbmcgdGhvbiB2YSBidW9jIHBoYWkgZGkgY3UgcmEgdGhhbmgg cGhvIGxhbSB0aHVlIHZvaSBnaWEgbGFvIGRvbmcgcmUgbWF0Lg0KTm9uZyBkYW4gZGFuZyBiaSBi YW4gY3VuZyBob2EsIHZhIGRvIGxhIG5ndXkgY28gZ2F5IGJhdCBvbiB4YSBob2kuIE5odSBvIFRy dW5nIFF1b2MgYmF5IGdpbywgDQpiYW8gbG9hbiBvIG5vbmcgdGhvbiB4YXkgcmEgbmhpZXUgbGFt LCBheSBsYSBoYXUgcXVhIGN1YSBzdSBiYW4gY3VuZyBob2Egbm9uZyBkYW4uIiANCg0KaHR0cDov L3JhZGEudm4vdGluLXR1Yy9UaW4tdHVjLzIwMTAvOS8yMi81NTg2LmFzcHgNCg0KVGh1IHR1b25n OiBEYXQgaG9hbmcgdmkuLi4gZG8gdGhpIGhvYSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZu L3Bza3MvMjAxMDA1L05vbmctZGFuLUhhLU5vaS10aGFwLXRob20tbm9pLWxvLWNoby1tYXQtZGF0 LTkxMDM1OS8gMDc6MzAsIDE3LzA1LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IFNhbiBnb2xm ICJ0cmVvIiBkYXQsIG5vbmcgZGFuIHRyZW8gbmlldSANCg0KaHR0cDovL25ndW9pY2FvdHVvaS5v cmcudm4vU3RvcnkuYXNweD9sYW5nPXZuJnpvbmVwYXJlbnQ9MCZ6b25lPTI4JklEPTgyMSAoVGh1 IEJhLCAxNi8wOS8yMDA4LTEwOjA2IEFNKQ0KDQpUaHUgdHVvbmc6IERvIHRoaSBob2EsIG5vbmcg ZGFuIHRoaWV1IGRhdCBzYW4geHVhdCANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tLzM5X25vbmdf ZGFuX29fZGJzY2xfa2hvbmdfY29fZGF0X3Nhbl94dWF0LTEtMjEzMDAzMzMuaHRtbCBWaWV0TmFt TmV0LnZuIDA5LzEwLzIwMDggLSAwOTo1MyAgIA0KDQpUaHUgdHVvbmc6IDM5JSBub25nIGRhbiBv IERCU0NMIGtob25nIGNvIGRhdCBzYW4geHVhdCANCg0KaHR0cDovL3d3dy5raW5odGVub25ndGhv bi5jb20udm4vU3Rvcnkva2luaHRlLXRoaXRydW9uZy9rdHRyb25nbnVvYy8yMDA5LzUvMTg0NDcu aHRtbCAyNS8wNS8yMDA5LTExOjMwIEFNDQoNClRodSB0dW9uZzogRGlldSBoYW5oIHh1YXQga2hh dSBnYW8gdGhpZXUgbGluaCBob2F0IC0gTm9uZyBkYW4gY2hpdSB0aGlldCANCg0KaHR0cDovL2Rv YW5obmdoaWVwMjRnLnZuL2RpZXUtaGFuaC14dWF0LWtoYXUtZ2FvLXRoaWV1LXRpbmgtY2h1eWVu LW5naGllcC0xNDguaHRtbCAyMi8xMS8yMDA5IGJ5IDI0Zw0KDQpEaWV1IGhhbmggeHVhdCBraGF1 IGdhbzogVGhpZXUgdGluaCBjaHV5ZW4gbmdoaWVwIC0gR2lhIGx1YSBnYW8gc3V0IGdpYW0gZG8g Y2hpbmggc2FjaCBkaWV1IGhhbmggDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTA0NS8yMDEwMTEwMTE3MDgzNS5hc3B4IE5ndXllbiBNaSAtIFRyaSBRdWFuZyAw MS8xMS8yMDEwIDE3OjA4IA0KS3kgaG9wIHRodSA4IFF1b2MgaG9pIGtob2EgWElJOg0KDQpUaHUg dHVvbmc6IERhdSB0dSBjaG8gbm9uZyBuZ2hpZXAsIG5vbmcgdGhvbiBjb24gcXVhIGl0ICAgDQoN CihBbmg6IERCIEhvYW5nIFRoaSBCaW5oIG5ldSBjYWMgdmFuIGRlIHZlIG5vbmcgbmdoaWVwLCBu b25nIHRob24gLSBBbmg6IE5nb2MgVGhhbmcpIA0KDQooVE5PKSBUcm9uZyBidW9pIGNoaWV1IG5h eSAoMS4xMSksIHZhbiBkZSBkYXUgdHUgY2hvIG5vbmcgdGhvbiB2YSBjaGFtIGxvIGNobyBkb2kg DQpzb25nIGN1YSBuZ3VvaSBub25nIGRhbiBkYSBkdW9jIGNhYyBkYWkgYmlldSAoREIpIGRhdCBy YS4gQmVuIGNhbmggZG8sIGNoaSBzbyB0aWV1IGR1bmcgDQpkYW5nIHZ1b3QgcXVhIGNoaSB0aWV1 LCBsYW0gcGhhdCBjYW8gZGFuIGRlbiB0YW5nIHRydW9uZyBraG9uZyBiZW4gdnVuZyBjdW5nIGxh IG5vaSBsbyANCmN1YSBuaGlldSBEQiBRdW9jIGhvaSAoUUgpLiANCg0KKiBLaG9uZyB0aGUga2V1 IHRoaWV1IGRpZW4gbWFpIA0KDQpDYW4gbG8gdHJpbmggZGF1IHR1IGNobyBub25nIG5naGllcCAN Cg0KVGhlbyBIb2EgdGh1b25nIERhbmggTmh1b25nICh0aW5oIEtpZW4gR2lhbmcpLCBudW9jIHRh IGxhIG51b2Mgbm9uZyBuZ2hpZXAgdm9pIDcwJSANCmRhbiBzbyBsYSBub25nIGRhbi4gVGhlIG5o dW5nLCBoaWVuIG5heSwgbXVjIGRhdSB0dSBjaG8gbm9uZyBuZ2hpZXAsIG5vbmcgdGhvbiBjaGkg DQpjaGllbSAyMCUgR0RQLiBOaHUgdmF5IGxhIHF1YSBpdC4NCg0KQ3VuZyB5IGtpZW4gdHJlbiwg REIgTmd1eWVuIFZhbiBTb24gKHRpbmggVHV5ZW4gUXVhbmcpIGRhbmggZ2lhOiBEYXUgdHUgY3Vh IENoaW5oIA0KcGh1IGNobyBub25nIG5naGllcCwgbm9uZyB0aG9uIGNodWEgdHVvbmcgeHVuZy4g TXVjIHNvbmcgY3VhIG5ndW9pIG5vbmcgZGFuIHNvIHZvaSANCmNhYyB0aGFuaCBwaGFuIGtoYWMg Y2h1YSBkb25nIGRldS4gTmd1b2kgZGFuIGNhbmcga2hvIGtoYW4gaG9uIHRyb25nIHZpZWMgdGll cCBjYW4gDQpjYWMgbmd1b24gdm9uIHZheSBobyB0cm8gc2FuIHh1YXQuDQoNCkNoaW5oIHZpIHRo ZSwgREIgU29uIGRlIG5naGk6ICJDaGluaCBwaHUgY2FuIGJhbyBjYW8gcm8gdHJ1b2MgUUggY29u IHNvIGRhdSB0dSB2YW8gDQpub25nIG5naGllcCwgbm9uZyB0aG9uOyBsbyB0cmluaCBkYXUgdHUg Y2hvIG5vbmcgbmdoaWVwLCBub25nIHRob24uIExvIHRyaW5oIG5heSBjYW4gDQpwaGFpIGR1b2Mg dGh1YyBoaWVuIG1vdCBjYWNoIG5naGllbSB0dWMsIGNhbiBjbyIuICANCg0KQmVuIGNhbmggZG8s IERCIEhvYW5nIFRoaSBCaW5oICh0aW5oIENhbyBCYW5nKSBub2kgdGhlbTogIkdpYSBjYSwgdmF0 IHR1IHNhbiB4dWF0IA0Kbm9uZyBuZ2hpZXAgbmdheSBtb3QgdGFuZyBuZW4gc2FuIHBoYW0gZGF1 IHJhIGN1YSBuZ3VvaSBub25nIGRhbiBzYXUga2hpIHRydSBoZXQgY2hpIA0KcGhpIHRoaSBsb2kg Y2hhbmcgZHVvYyBiYW8gbmhpZXUuIFR1IGJhbyBuYW0gcXVhLCBub25nIGRhbiBWTiB2YW4gcm9p IHZhbyBob2FuIGNhbmggDQpkdW9jIG11YSBnaWEgdGhhcCIuDQoNCkRpZXUgbmF5IGRhIGxhbSBj aG8gY2FjIERCIGRhdCByYSBjYXUgaG9pIHZlIGtoYSBuYW5nIGR1IGJhbyB0aGkgdHJ1b25nLCBn aWEgY2EsIHRyYWNoIA0KbmhpZW0gZGluaCBodW9uZyBwaGF0IHRyaWVuIG5vbmcgbmdoaWVwIGN1 YSBDaGluaCBwaHUgdmEgY2FjIGJvLCBuZ2FuaCBsaWVuIHF1YW4uDQoNCkRCIFRyYW4gSG9uZyBW aWV0ICh0aW5oIEhhdSBHaWFuZykgbmV1IGRhbiBjaHVuZyBjdSB0aGUgbGEgdHJvbmcgdnUgRG9u ZyBYdWFuIHZ1YSANCnF1YSwgbm9uZyBkYW4gYmFuIGx1YSBvIGF0IHRoZW8gZHUgYmFvIGdpYSBj dWEgbmhhIG51b2MsIHNvbmcgc2F1IGtoaSBoZXQgdnUsIGdpYSB0YW5nIG8gDQphdCBuaHVuZyBu b25nIGRhbiBraG9uZyBjb24gZ2FvIGJhbi4gDQoNCk5oYW0gaG8gdHJvIGNobyBob2F0IGRvbmcg c2FuIHh1YXQgY3VhIG5ndW9pIG5vbmcgZGFuLCBuaGlldSBEQiBraWVuIG5naGkgQ2hpbmggcGh1 IA0KbWllbiBnaWFtIHRodWUgZGF0IG5vbmcgbmdoaWVwIGRlbiBuYW0gMjAyMC4NCg0KTm9uZyBk YW4gcGhhaSBkdW9jIGhvYyBuZ2hlLCBkdW9jIHZheSB0aW4gZHVuZyBkZSBzYW4geHVhdC4gTmdv YWkgcmEsIENoaW5oIHBodSBjdW5nIA0KY2FuIG1vIHJvbmcgbWFuZyBsdW9pIGdpYW8gZHVjIGRh byB0YW8gZGF5IG5naGUgbyBtaWVuIG51aSwgdnVuZyBzYXUsIHZ1bmcgeGEgdmEgdnVuZyANCmNv IG5oaWV1IGRvbmcgYmFvIGRhbiB0b2MgdGhpZXUgc28uIERvbmcgdGhvaSBkYXUgdHUgbmhpZXUg aG9uIG51YSB0cm9uZyBsaW5oIHZ1YyBkb2kgDQpzb25nIHZhbiBob2Egbm9uZyB0aG9uLg0KDQpC ZW4gY2FuaCBkbywgY2FjIERCIFFIIGN1bmcgZGUgbmdoaSBDaGluaCBwaHUgc29tIGJhbiBoYW5o IGNodWFuIG5naGVvIG1vaSB2YSBnYW4gDQpjYWMgbXVjIHRpZXUgZ2lhbSBuZ2hlbyB2b2kgdGll dSBjaGkgeGF5IGR1bmcgbm9uZyB0aG9uIG1vaS4NCg0KREIgTmd1eWVuIFRoaSBLaGEgKHRpbmgg VHJhIFZpbmgpIGNobyBiaWV0LCB0aGVvIGJhbyBjYW8gY3VhIENoaW5oIHBodSB0aGkgaGUgc28g Z2lhIA0KdHJpIGdpYSB0YW5nIHRyZW4gZ2lhIHRyaSBzYW4geHVhdCBub25nIG5naGllcCBkYW5n IGdpYW0uIFZpIHZheSwgZGUgbmdoaSBDaGluaCBwaHUgDQp0YXAgdHJ1bmcgZGF1IHR1IGNobyBu b25nIHRob24gbmh1OiB0aHV5IGxvaSwgZGUgYmFvLCBobyB0cm8gdm9uIGNobyBub25nIGRhbiwu Li4gZGUgZ2lhIHRhbmcgY2hpIHNvIG5heS4NCg0KVGFuZyB0cnVvbmcga2hvbmcgY2FuIGNvDQoN CiJCb2kgY2hpIG5nYW4gc2FjaCBuYW0gc2F1IGx1b24gY2FvIGhvbiBuYW0gdHJ1b2M7IGR1IG5v IG5hbSBzYXUgbHVvbiBjYW8gaG9uIG5hbSANCnRydW9jOyBkYXUgdHUgdGhpZXUgdGFwIHRydW5n LCBjaHVhIGRhdCBoaWV1IHF1YSBuaHUgbW9uZyBtdW9uLi4uIiBsYSBuaHVuZyBjaGkgdGlldSAN CmNodWEgZGF0IHRoZW8gYmFvIGNhbyBjdWEgQ2hpbmggcGh1LCBkdW9jIG5oaWV1IERCIHF1YW4g dGFtIHBoYW4gdGljaC4NCg0KKEFuaDogREIgVHJhbiBWYW4gVGh1YyB5ZXUgY2F1IENoaW5oIHBo dSBsYW0gcm8gbmd1eWVuIG5oYW4gdmUgYm9pIGNoaSwgbGFtIHBoYXQgdmEgDQpubyBjb25nIC0g QW5oOiBOZ29jIFRoYW5nKSANCg0KREIgVHJhbiBWYW4gVGh1YyAodGluaCBWdW5nIHRhdSkgZGEg eWV1IGNhdSBDaGluaCBwaHUgbGFtIHJvIG5ndXllbiBuaGFuIHZlIGNhYyBjaGkgDQp0aWV1IGNo dWEgZGF0IHRyZW4uDQoNCkRCIFRyYW4gSG9uZyBWaWV0ICh0aW5oIEhhdSBHaWFuZykgY2hvIHJh bmcgdG9jIGRvIHRhbmcgdHJ1b25nIHZ1b3Qga2UgaG9hY2ggdHJvbmcgDQpib2kgY2FuaCBkdWEg dmFvIGdpYSBuaGFuIGNvbmcgcmUsIG5vIGNvbmcgdGFuZywgdGFuZyB0aHUgbmdhbiBzYWNoIE5o YSBudW9jIG1hIGtob25nIA0KZ2lhbSBib2kgY2hpIGxhIGtpZXUgdGFuZyB0cnVvbmcga2hvbmcg Y2FuIGNvLiAgDQoNCkhpZW4gbmF5LCBjaGkgc28gdGFuZyBnaWEgdGlldSBkdW5nIGN1YSBudW9j IHRhIGRhbmcgbyBtdWMgOCw3NSUgKHNvIHZvaSBjaGkgdGlldSBRSCBkZSANCnJhIGxhIDcsOCUp LiBEQiBWaWV0IGRhbmggZ2lhOiBMYSBkbyBib2kgY2hpIGxvbiwgdmF5IG5vIHRob2FpIG1haSwg Z2F5ICJib2kgdGh1YyIuIFZpZWMgDQpjaGkgc28gZ2lhIHRpZXUgZHVuZyB0YW5nIGNhbyBkYSBr aGllbiBjaG8gbWFjIGR1IEdEUCB0YW5nIG5odW5nIG11YyBzb25nIGN1YSBuZ3VvaSANCmRhbiB0 YW5nIGtob25nIGR1b2MgYmFvIG5oaWV1LCB0aHUgbmhhcCBjdWEgbmd1b2kgZGFuIGtob25nIHRo ZSB0aGVvIGtpcCB2b2kgbXVjIHRhbmcgDQpnaWEuDQoNCkNoaW5oIHZpIHZheSwgREIgVmlldCBk ZSBuZ2hpOiBDaGluaCBwaHUgbmVuIHRhbmcgY3Vvbmcgb24gZGluaCBraW5oIHRlIHZpIG1vLCBn aWFtIA0KbGFtIHBoYXQsIGdpYW0gYm9pIGNoaSBuZ2FuIHNhY2guIFRyb25nIGRvLCBEQiBWaWV0 IG5oYW4gbWFuaCB0cm9uZyBjYWMgY2hpIHRpZXUgZGUgcmEgDQoiQ2hpbmggcGh1IG5lbiB0aGF5 IGRvaSBraGFpIG5pZW0ga2llbSBzb2F0IGxhbSBwaGF0IGJhbmcga2hhaSBuaWVtIGtpZW0gY2hl IGxhbSBwaGF0IA0Kdmkga2hhaSBuaWVtIGtpZW0gc29hdCBsYW0gcGhhdCBsYSBraG9uZyBybyBy YW5nLCBkb25nIHRob2kgdGkgbGUgbGFtIHBoYXQgY3VhIG51b2MgdGEgDQpkYW5nIGNhbyBob24g bmhpZXUgc28gdm9pIG11YyB0cnVuZyBiaW5oIGN1YSB0aGUgZ2lvaSIuDQoNCkRlIGdpYW0gYm9p IGNoaSBuZ2FuIHNhY2gsIG5oaWV1IEJEIGRhIGRlIG5naGkgQ2hpbmggcGh1IGtpZW4gcXV5ZXQg cnV0IGRhdSB0dSBkb2kgdm9pIA0Kbmh1bmcgZHUgYW4ga2hvbmcgaGlldSBxdWEsIHRyYW5oIGRh dSB0dSBkYW4gdHJhaS4NCg0KTmdheSBtYWkgKDIuMTEpLCBRSCB0aWVwIHR1YyBwaGllbiBsYW0g dmllYy4gDQoNCmh0dHA6Ly90dWFudmlldG5hbS5uZXQvMjAxMC0wNy0xOC1kYS1kZW4tbHVjLWto b25nLW5vaS1raG9uZy1kdW9jLWtob25nLWxhbS1raG9uZy1kdW9jIFRvIFZhbiBUcnVvbmcgMTkv MDcvMjAxMCAwNjowMCBHTVQrNyANCg0KVGh1IHR1b25nOiAiRGEgZGVuIGx1YyBraG9uZyBub2kg a2hvbmcgZHVvYywga2hvbmcgbGFtIGtob25nIGR1b2MiIA0KDQpUdSBraGFpIG5pZW0gcGhhdCB0 cmllbiBiZW4gdnVuZywgbmhpbiB2YW8gY28gY2F1IGtpbmggdGUgY3VhIFZpZXQgTmFtIGhpZW4g bmF5IHRoYXkgcm8gc3UgYmF0IGNhcCBwaGFpIHRoYXkgZG9pLiANCg0KVHkgbGUgZGF1IHR1IGNo byBraHUgdnVjIElJIGJhbyBnb20gY29uZyBuZ2hpZXAsIGtoYWkgdGhhYywgY2hlIGJpZW4gdmEg eGF5IGR1bmcgcmF0IA0KY2FvLiBOYW0gMjAwMCwgdHkgbGUgZGF1IHR1IGNobyBraHUgdnVjIElJ IGxhIDQxJSwgZGVuIG5hbSAyMDA3IGxhIDQ3JSBuaHVuZyB0eSBsZSBnaWEgDQp0YW5nIHRoZW0g bGFpIGdpYW0gdHUgMzQlIHh1b25nIDI3JSBjbyBuZ2hpYSBsYSBob2F0IGRvbmcga2VtIGhpZXUg cXVhLiANCg0KVHkgbGUgbmhhcCBzaWV1IGtodSB2dWMgSUkgY2hpZW0gZGVuIDkwJSB0b25nIGdp YSB0cmkgbmhhcCBraGF1LCBraG9uZyBuaHVuZyBnYXkgdGFjIA0KZG9uZyBsb24gZGVuIGJhdCBv biB2aSBtbyBtYSBjb24gbGEgbmd1eWVuIG5oYW4gY2hpbmggZ2F5IG8gbmhpZW0gbW9pIHRydW9u ZyBtYSBjYSB4YSBob2kgcGhhaSBnYW5oIGNoaXUuDQoNCkNoaW5oIHBodSBjYW4gdGluaCB0b2Fu IGxhaSBkZSBkaWV1IGNoaW5oIHRhbmcgdHkgbGUgZGF1IHR1IGNobyBLaHUgdnVjIEkgKG5vbmcs IGxhbSwgdGh1eSBzYW4pIHZhIEtodSB2dWMgSUlJIChkaWNoIHZ1KS4gDQoNCkxpY2ggc3UgZGEg Y2h1bmcgbWluaCwgZGF0IG51b2MgdGEgbW9pIGtoaSBjbyBraHVuZyBob2FuZyBraW5oIHRlIHhh IGhvaSB0aGkgY2hpbmgga2h1IA0KdnVjIEkgbGEgbm9uZyBuZ2hpZXAgbGFpIGxhIGN1dSBjYW5o IGNobyBuaGEgbnVvYywgdHJvbmcga2hpIHRodWMgdGUgZGF5IGNoaW5oIGxhIGtodSB2dWMgDQpi aSBkb2kgeHUgYmF0IGNvbmcgbmhhdCBjYSB2ZSBkYW8gbmdoaWEsIGxhbiBkYW8gbHkuIA0KIA0K QmFuIER1IHRoYW8gQ3VvbmcgbGluaCBjdWEgRGFuZyBsYW4gbmF5ICh0cmluaCBEYWkgaG9pIFhJ KSBjb24gY29pIG5oZSB2YWkgdHJvIG5vbmcgbmdoaWVwIGhvbiB0cnVvYyBkYXkuIA0KDQpodHRw Oi8vbWV2YWNvbi5jb20vc2hvd3RocmVhZC5waHA/MzgtdGglRTElQkIlQTctdCVDNiVCMCVFMSVC QiU5Qm5nLXRoJUM0JTgzbS1UcnVuZy1RdSVFMSVCQiU5MWMgMjEtMTAtMjAwOCAxMjoxNCBQTSBO aGEgVHJhbiBSRkEgMjAwOC0xMC0yMA0KDQpTYW4geHVhdCBsdWEgZ2FvIGN1YSBWTiB2YW4gbGFj IGhhdSANCg0KSGFpIGxhbiBsdWEgZ2FvIGJpIHUgZG9uZyB0aGlldCBoYWkgaGFuZyB0cmFtIHR5 IGRvbmcgdmkgdGhpZXUga2hvIGNodWENCg0KVHJvbmcgbGljaCBzdSB4dWF0IGtoYXUgZ2FvIG8g Vk4gZGEgeGF5IHJhIDIgbGFuIGx1YSBnYW8gYmkgdSBkb25nLiBMYW4gdHJ1b2MgdmFvIG5hbSAx OTk3LCANCmRvbmcgYmFuZyBzb25nIEN1dSBMb25nIHUgZG9uZyA0IHRyaWV1IHRhbiBsdWEgaGFu ZyBob2EsIGNoaW5oIHBodSBzYW4gc2FuZyB0YWkgdHJvIHRpZW4gZGUgDQpkb2FuaCBuZ2hpZXAg bXVhIGhldCBzbyBsdWEgbmF5IGNobyB4dWF0IGtoYXUsIGx1YyBkbyBraG8gY2h1YSBjdWEgdG9h biBibyBtaWVuIFRheSBjaHVhIHRvaSANCjQwMCBuZ2FuIHRhbiwgdGh1IG11YSBsdWEgYmlldCB0 cnUgdmFvIGRhdS4gTmFtIDE5OTcgbm9uZyBkYW4gZG9uZyBiYW5nIHNvbmcgQ3V1IExvbmcgdGhp ZXQgDQpoYWkgaGFuZyB0cmFtIHR5IGRvbmcgdmkgbHVhIHJvdCBnaWEgdmEga2hvbmcgYmFuIGR1 b2MuDQoNCk5hbSAyMDA4IGxpY2ggc3UgZGEgdGFpIGRpZW4sIHZ1bmcgZG9uZyBiYW5nIHNvbmcg Q3V1IExvbmcgZGFuZyB1IGRvbmcgbmhpZXUgdHJpZXUgdGFuIA0KbHVhIGhlIHRodSB2YSB0aHUg ZG9uZy4gTHVhIHJvdCBnaWEsIGNoaW5oIHBodSBjaGkgZGFvIG11YSBoZXQgNCB0cmlldSB0YW4g bHVhIGhhbmcgaG9hIGNobyANCmRhbiwgbmh1bmcgZG9hbmggbmdoaWVwIGRhdSBjb24ga2hvIHRy dSBnYW8gdmkgZGF1IHJhIHh1YXQga2hhdSBiaSBiZSB0YWMuIA0KDQooTmFtIG5heSAyMDEwLCBz YW4geHVhdCBsdWEgZ2FvIGR1b2MgbXVhIGJvaSB0aHUgbmh1bmcgY2hpbmggc2FjaCBobyB0cm8s IHRodSBtdWEgY3VhIGNoaW5oIHBodSBpdCBob24sIA0KZ2lhIHRodSBtdWEgdGhhcCwgdGllcCB0 dWMgdGhpZXUga2hvIGNodWEudi52LiBuZW4gdGluaCB0cmFuZyB1IGRvbmcgdGFpIGRpZW4gdmEg bmd1b2kgbm9uZyBkYW4gbGFpIHBoYWkgY2hpdSB0aGlldC4pIA0KDQpodHRwOi8vd3d3LmJhb21v aS5jb20vSG9tZS9UaGlUcnVvbmcvbm9uZ25naGllcC52bi9Ob25nLWRhbi1iaS1jdW9uLXZhby12 b25nLXhvYXktbHVhbi1xdWFuLzUyMDc0NjEuZXBpIEQuVC5DaGFuaCCWIFRoYW5oIFZhbiAxNi8x MS8yMDEwIDExOjE0IA0KDQpUaHUgdHVvbmc6IE5vbmcgZGFuIGJpIGN1b24gdmFvIHZvbmcgeG9h eSBsdWFuIHF1YW4gDQoNCkdpYSBwaGFuIGJvbiB0YW5nIGxlbiBkb3QgbmdvdCB2YSBkYW5nIGR1 bmcgbyBtdWMgcmF0IGNhbyBsYW0gY2hvIG5oaWV1IG5vbmcgZGFuIGxvIA0KbGFuZy4gTW90IGxh biBudWEsIG5vbmcgZGFuIHJvaSB2YW8gdm9uZyB4b2F5IGx1YW4gcXVhbiBib2kgZGF1IHZhby4u Lg0KDQpCQU8gR0lBIFZBIEhFIExVWSAgDQoNCkdpYSBwaGFuIGJvbiB0YW5nIG1hbmggbmdheSB0 dSBkYXUgdnUgZGEga2VvIGNoaSBwaGkgc2FuIHh1YXQgdGFuZyB0aGVvLiBUcm9uZyBraGkgZG8s IA0KY28gZGVuIDkwJSBub25nIGRhbiBEQlNDTCBsYSBtdWEgcGhhbiBib24gdGhpZXUgZGVuIGN1 b2kgdnUgdmEgdGh1b25nIG11YSBvIGNhYyANCmRhaSBseSBjYXAgSUksIElJSSBuZW4gcGhhaSBj aGl1IGdpYSByYXQgY2FvLiBUaGVvIHRpbmggdG9hbiwgbmV1IG11YSBvIGRhaSBseSBuaG8gdmEg bXVhIA0KdGhpZXUgdGhpIGdpYSBwaGFuIGJvbiBzZSB0aWVwIHR1YyB0YW5nIHRoZW0gdHUgMTAg ZGVuIDE1JSBzbyB2b2kga2hpIG11YSB0cmEgdGllbiBuZ2F5Lg0KDQpPbmcgRGFuaCBEYW5oLCBv IHhhIExvbmcgVGhhbmgsIEdpb25nIFJpZW5nLSBLaWVuIEdpYW5nIGNobyBiaWV0LCBnaWEgZGlu aCBjbyAyaGEgDQpydW9uZywgdnUgRFggbmF5IGNhbiBwaGFpIGRhdSB0dSBraG9hbmcgNzAwLTc1 MGtnIHBoYW4gaG9hIGhvYyBjYWMgbG9haS4gRG8ga2hvbmcgY28gDQp0aWVuIG1hdCBuZW4gZGFu aCBwaGFpIGJvcCBidW5nIG11YSBjaGl1IHZvaSBnaWEgY2FvIHZhIHBoYWkgY2hpdSBsYWkgdG9p IGN1b2kgdnUuIE9uZyANCkRhbmggdGluaCB0b2FuOiAiVm9pIGx1b25nIHBoYW4gYm9uIGNobyAy aGEgZGF0IGx1YSB0aGkgbW9pIHZ1IGdpYSBkaW5oIHR1aSBtYXQgZHV0IHRyZW4gDQoyIHRyaWV1 IGRvbmcgdGllbiBjaGVuaCBsZWNoIGRvIG11YSBjaGl1IHZhIG11YSBvIGRhaSBseSBjYXAgSUlJ IHBoYWkgY2hpdSBuaGlldSB0YW5nIG5hYyANCnRydW5nIGdpYW4uIE5odSB2YXksIHZvaSAzIHZ1 IGx1YS9uYW0gdGhpIG5vbmcgZGFuIGRhIG1hdCBraG9uZyBzbyB0aWVuIGtob2FuZyA2LTcgDQp0 cmlldSBkb25nIGNobyByaWVuZyBraG9hbiB0cmEgbGFpIHBoYW4gYm9uIi4gDQoNClRyb25nIGJv aSBjYW5oIGtobyBraGFuIGNob25nIGNoYXQga2hvIGtoYW4gbmh1IG5hbSBuYXksIG5ldSBkZW4g a2hpIHRodSBob2FjaCBtYSANCmdpYSBsdWEgY2hpIG8gbXVjIDQuMDAwIGRvbmcva2cgdGhpIGNh bSBjaGFjIG5vbmcgZGFuIHNlIGtob25nIGNvIGxhaS4gVnUgbHVhIHNhdSBub25nIA0KZGFuIGxh aSB0aWVwIHR1YyBjYWkgdm9uZyBsdWFuIHF1YW4gbXVhIGNoaXUgZGVuIGN1b2kgdnUsIGtobyBt YSB0aG9hdCByYSBkdW9jLg0KDQpPbmcgTGUgSG9uZyBDaGF1LCBtb3Qgbm9uZyBkYW4gbyBraHUg dnVjIExvIEdhY2gsIHhhIEx1b25nIFBoaSAoVHJpIFRvbiwgQW4gDQpHaWFuZykgdGhhbiBwaGll biwgY2hpIGNvbiBob24gMTAgbmdheSBudWEgbGEgeHVvbmcgZ2lvbmcgdnUgZG9uZyB4dWFuIG5o dW5nIG9uZyB2YW4gDQpjb24gbmdhbiBuZ2FpIGNodWEgZGVuIGRhaSBsaSBWVE5OIGRlIG11YSBw aGFuIGJvbiwgdGh1b2MgQlZUViB2aSBnaWEgY2EgZGFuZyB0YW5nIA0KcXVhIGNhby4gTmhpZXUg ZGFpIGxpIHRoYW4gdGhpZXQgYmFvIG9uZyByYW5nIGNobyB0aGVtIG1vdCB0aG9pIGdpYW4gbnVh IHhlbSBnaWEgcGhhbiBjbyANCmhhIHh1b25nIGNodXQgbmFvIGtob25nIHJvaSBoYXkgbXVhLiBU aG9uZyB0aHVvbmcsIHRydW9jIGtoaSBnaWVvIHNhIGtob2FuZyAxNSBuZ2F5IA0KbGEgb25nIGRh IGxvIGNodSBkYW8gcGhhbiB0aHVvYyBkZSBzYW4gdHJvbmcgbmhhIGNobyBzdSBkdW5nLg0KDQog T25nIENoYXUgY2hvIGJpZXQsIHRydW5nIGJpbmggbW9pIGNvbmcgZGF0IHN1IGR1bmcga2hvYW5n IDUwIGtnIHBoYW4gYm9uIGhvbiBob3AsIA0KdHVvbmcgZHVvbmcgNTAwIG5nYW4gZG9uZy9jb25n LiBWb2kgdG9uZyBkaWVuIHRpY2ggZGF0IGNhbmggdGFjIDIxMCBjb25nLCBtb2kgbmFtIA0Kb25n IENoYXUgc3UgZHVuZyB0cmVuIDEwIHRhbiBwaGFuIGJvbiBjYWMgbG9haS4gVGhlIG5odW5nIG5h bSBuYXkgbHUgdmUga2VtLCBsdW9uZyANCnBodSBzYSBib2kgZGFwIGNobyBydW9uZyBkb25nIGto b25nIG5oaWV1IHRoaSBuZ3VvaSBub25nIGRhbiBtdW9uIGxhbSBsdWEgZGF0IG5hbmcgDQpzdWF0 IGNhbiBzdSBkdW5nIG5oaWV1IHBoYW4gYm9uIGhvbi4gSGllbiB0YWkgY2FjIGRhaSBsaSBWVE5O IGNobyBvbmcgYmlldCBsYSBnaWEgcGhhbiANCmRhbmcgdGFuZyBsZW4ga2hvYW5nIDEwMCBuZ2Fu IGRvbmcvYmFvLg0KIE9uZyBDaGF1IG5vaTogUGhhbiBsb24gYmEgY29uIG5vbmcgZGFuIGxhbSBy dW9uZyBub2kgZGF5IGRldSBtdWEgcGhhbiB0aGlldSBvIGNhYyANCmRhaSBsaSBWVE5OIHZhIHBo YWkgY2hpdSBrZSB0aGVtIDEwLjAwMCCWIDIwLjAwMCBkb25nL2JhbyBwaGFuLiBEYSB2YXkgbmV1 IHRvaSBuZ2F5IA0KdGh1IGhvYWNoIG1hIGtob25nIGJhbiBsdWEgZGUgdHJhIG5vIG5nYXkgdGhp IGNhYyBkYWkgbGkgc2UgdGluaCB0aGVtIDMlIHRpZW4gbG9pIG51YSB0aGkgDQpub25nIGRhbiBj YW5nIGNob25nIGNoYXQga2hvIGtoYW4uDQoNClRhaSBhcCBWaW5oIFBodW9jLCB4YSBWaW5oIEJp bmggKENoYXUgVGhhbmgsIEFuIEdpYW5nKSwgYW5oIE5ndXllbiBUaGFuaCBQaHVvbmcgDQpjYW5o IHRhYyBkdW9jIGhvbiAzMCBjb25nIGRhdCBydW9uZyBjaG8gYmlldCwgbWF5IG5nYXkgbmF5IHRo YXkgZ2lhIHBoYW4gdGFuZyBsZW4gdnVuIA0KdnV0IG1hIGFuaCBraG9uZyBraG9pIGxvIGF1LiBC b2kgdnUgbXVhIHZ1YSBxdWEgbWFjIGR1IGdpYSBwaGFuIGJvbiBjb24gbmFtIG8gbXVjIA0KY2hh cCBuaGFuIGR1b2Mgbmh1bmcgbGFtIGx1YSBkYSBjaGl1IGxvLiBCYXkgZ2lvIGdpYSBwaGFuIGRv aSBsZW4gdGhlbSBnYW4gMTAwIG5nYW4gDQpkb25nL2JhbyB0aGkgZ2lhIHRoYW5oIHNhbiB4dWF0 IHNlIHRhbmcgY2FvIGhvbiBudWEuIE5ldSBnaWEgbHVhIGdpdSBkdW9jIG5odSBoaWVuIG5heSAN CihnYW4gNi4wMDAgZG9uZy9rZykgbWF5IHJhIG5vbmcgZGFuIGNvIHRoZSBjbyBsYWkgY2h1dCBp dC4gTmh1bmcgdGhlbyBhbmggUGh1b25nLCBkaWV1IA0KZG8ga2hvIGtoYSBuYW5nIGRpZW4gcmEs IHZpIGN1IHZhbyB2dSB0aHUgaG9hY2ggcm8gbGEgZ2lhIGx1YSBjdW5nIGJhdCBkYXUgdHV0IGRv Yy4gDQoNCkxBTSBTQU8gR0lBTSBHSUEgVEhBTkg/DQoNCk9uZyBOZ3V5ZW4gSHV1IEFuLCBDaGkg Y3VjIHRydW9uZyBDaGkgY3VjIEJWVFYgQW4gR2lhbmcgY2hvIGJpZXQsIGR1IGtpZW4gdG9hbiAN CnRpbmggc2UgeHVvbmcgZ2lvbmcga2hvYW5nIDIzMC4wMDAgaGEuIE5hbSBuYXkgYmEgY29uIG5v bmcgZGFuIHBoYWkgZG9pIG1hdCB2b2kgcmF0IA0KbmhpZXUga2hvIGtoYW4gdHJvbmcgc2FuIHh1 YXQgbm9uZyBuZ2hpZXAuIE1vdCBtYXQgYmEgY29uIHBoYWkgY2hpdSBzdSB0YW5nIGNoaSBwaGkg c2FuIA0KeHVhdCBuaHUgdmUgc2luaCBkb25nIHJ1b25nLCBjaHVvdCBkb25nLCBvYyBidW91IHZh bmcgZ2F5IGhhaSwgZ2lhIGx1YSBnaW9uZyBjdW5nIGRhbmcgDQp0YW5nIGNhby4uLiBQaGFuIGJv biwgdGh1b2MgQlZUViBkYW5nIHRhbmcga2hvYW5nIDE1JSAtIDIwJSBzbyB2b2kgdnUgdHJ1b2Ms IGtlbyBnaWEgDQp0aGFuaCBzYW4geHVhdCB0YW5nIHRoZW8uIA0KDQpUcnVvYyB0aW5oIGhpbmgg a2hvIGtoYW4gbmh1IGhpZW4gbmF5LCBvbmcgQW4ga2h1eWVuIGNhbyBiYSBjb24gbmVuIGFwIGR1 bmcgdHJpZXQgZGUgDQpjaHVvbmcgdHJpbmggMSBwaGFpIDUgZ2lhbSBkZSB0aWV0IGtpZW0gY2hp IHBoaSBzYW4geHVhdC4gVHJvbmcgZG8gcGhhaSBkYW0gYmFvIHZpZWMgDQp0cmFuaCBzdSBkdW5n IHRodWEgY2FjIGxvYWkgcGhhbiBib24sIGdpYW0gc28gbGFuIGJvbSB0dW9pIG51b2MgY2hvIHJ1 b25nIGx1YSBvIG5odW5nIA0KdGhvaSBkaWVtIGtob25nIGNhbiB0aGlldC4gTmdvYWkgcmEgYmEg Y29uIG5lbiBhcCBkdW5nIEtIS1QgZGUgdHJhbmggdGhhdCB0aG9hdCBzYXUgdGh1IA0KaG9hY2gg bHVhLg0KDQpUaGVvIG9uZyBBbiwgbmV1IGJhIGNvbiB0aHVjIGhpZW4gZHVuZyB0aGVvIGtodXll biBjYW8gY3VhIG5nYW5oIG5vbmcgbmdoaWVwIHRoaSBzZSANCmdpYW0gY2hpIHBoaSBzYW4geHVh dCBtb3QgY2FjaCBkYW5nIGtlLiBWZSB2YW4gZGUgcGhhbiBib24gdGFuZyBnaWEsIG9uZyBBbiBj aG8gYmlldCANCnRoZW0sIHRpbmggY3VuZyBkYSB0aGFuaCBsYXAgY2FjIGRvYW4ga2llbSB0cmEg bGllbiBuZ2FuaCBkZSB0aHVvbmcgeHV5ZW4ga2llbSB0cmEgY2FjIA0KZGFpIGxpIHBoYW4gcGhv aSB2YSBiYW4gbGUgcGhhbiBib24sIHRodW9jIEJWVFYgdHJlbiBkaWEgYmFuIG5oYW0gdHJhbmgg dHJ1b25nIGhvcCBjYWMgDQpkYWkgbGkgY28gdGluaCBnaGltIGhhbmcsIHRhbyBuZW4gY29uIHNv dCBnaWEgZ2F5IGtobyBraGFuIGNobyBub25nIGRhbiB0cm9uZyB0aG9pIGdpYW4gDQpzYXAgdG9p Lg0KDQpPbmcgUGh1IEtoaSBOZ3V5ZW4sIFBHRCBUcnVuZyB0YW0gS05LTiBLaWVuIEdpYW5nIGNo byBiaWV0LCB0aG9uZyB0aHVvbmcgY2hpIHBoaSANCmRhdSB0dSB2dSBEWCBjdWEgbm9uZyBkYW4g S2llbiBHaWFuZyB2YW8ga2hvYW5nIDE1LTE2IHRyaWV1IGRvbmcvaGEuIFRyb25nIGRvLCBjaGkg DQpwaGkgcGhhbiBib24gY2hpZW0gMzAlLCB0aHVvYyBCVlRWIDMwJSwgY29uIGxhaSBsYSBjaGkg cGhpIGxhbSBkYXQsIGdpb25nLCBib20gdHVvaSANCnZhIGNvbmcgY2hhbSBzb2MuIFR1eSBuaGll biwgY2hpIHBoaSBuYXkga2hvbmcgY28gZGluaCBtYSB0YW5nIGdpYW0gdGhlbyB0dW5nIHZ1IGRv IGxlIA0KdGh1b2MgdmFvIHRpbmggaGluaCB0aG9pIHRpZXQgdmEgZ2lhIGNhIHZhdCB0dSBkYXUg dmFvLiANCg0KTmFtIG5heSwgZ2lhIHRoYW5oIHNhbiB4dWF0IGNoYWMgY2hhbiBzZSB0YW5nIGRv IHRpbmggaGluaCB0aG9pIHRpZXQgYmF0IGxvaSB2YSBnaWEgZGF1IA0KdmFvIGRhbmcgdGFuZyBu b25nLiBHaWEgdGhhbmggc2FuIHh1YXQgbHVhIHRydW5nIGJpbmggdnUgRFggMjAwOS0yMDEwIGN1 YSBub25nIGRhbiANCktpZW4gR2lhbmcgbGEgMi40MDAgZG9uZy9rZy4gVHV5IG5oaWVuLCB0cm9u ZyBib2kgY2FuaCB2dSBEWCBuYW0gbmF5LCB2b2kgdmllYyBnaWEgY2EgDQp2YXQgdHUgdGFuZyAz MC00MCUgY29uZyB2b2kgbmh1bmcgY2hpIHBoaSBraGFjIHRhbmcgdGhlbyBuaHUgbGFtIGRhdCwg Ym9tIHR1b2ksIGRvIA0Kbmd1eSBjbyBkaWNoIGJlbmguLi4gdGhpIGdpYSB0aGFuaCBiaW5oIHF1 YW4gY28gdGhlIHNlIHRhbmcgbGVuIDIuODAwLTMuMDAwIGRvbmcva2cuIE5ldSANCm5vbmcgZGFu IGtob25nIGFwIGR1bmcgdHJpZXQgZGUgY2FjIGJpZW4gcGhhcCBkZSBrZW8gZ2lhIHRoYW5oIHh1 b25nIHRoaSBsb2kgbmh1YW4gc2UgcmF0IHRoYXAuDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2My MC9zMjAtNDQzODA3L3F1YW5nLW5nYWktbmhpZXUtbm9uZy1jdS1jdWEtY2h1b25nLXRyaW5oLTMw YS1zYXAtdGhhbmgtc2F0LXZ1bi5odG0gQmFpIHZhIGFuaDogVHJhIEJhbiAgMTQvMTIvMjAxMCAt IDAzOjIzIA0KDQpUaHUgdHVvbmc6IE5oaWV1IG5vbmcgY3UgY3VhIENodW9uZyB0cmluaCAzMGEg c2FwIHRoYW5oIHNhdCB2dW4sIHRyb25nIGtoaSBuZ3VvaSBkYW4gDQpkYW5nIHJhdCBjYW4gaG8g dHJvIHRoZW0gdmUgZ2lvbmcgY2F5IHRyb25nIHZhIHZhdCBudW9pIA0KDQooRGFuIHRyaSkgLSBU aHVjIGhpZW4gZHUgYW4gaG8gdHJvIG5vbmcgY3UgY2hvIG5vbmcgZGFuIGNhYyB4YSBkYWMgYmll dCBraG8ga2hhbiB0aHVvYyANCkNodW9uZyB0cmluaCAzMGEsIGdpYWkgZG9hbiAyLCByaWVuZyBo dXllbiB2dW5nIGNhbyBUYXkgVHJhIChRdWFuZyBOZ2FpKSwgNSBuYW0gcXVhIA0KZGEgZHVvYyBk YXUgdHUgMjU1IG1heSBzYW4geHVhdCBub25nIG5naGllcCBuaHVuZyBwaGFuIGxvbiB0cm9uZyBz byBkbyBraG9uZyBkdW9jIHN1IA0KZHVuZy4NCg0KU28gbWF5IG5vbmcgY3UgZ29tIDI0IG1heSB4 YXkgeGF0LCAxNzggbWF5IHR1b3QgbHVhLCA0NyBtYXkgY2F0IGx1YSwgNjcgYmluaCBwaHVuIA0K dGh1b2MgdmEgNjI2IGNvbmcgY3Ugc2FuIHh1YXQga2hhYywgdHJpIGdpYSA2MCB0eSBkb25nLiBO aHVuZyBkbyBraG9uZyBuYW0gZHVvYyBuaHUgDQpjYXUgY3VhIG5ndW9pIGRhbiBuZW4gcGhhbiBs b24gc28gbm9uZyBjdSBkdW9jIHRyYW5nIGJpIG5heSBraG9uZyBkdW9jIG5vbmcgZGFuIHN1IA0K ZHVuZy4gDQogDQpYYSBUcmEgUGhvbmcgZHVvYyBjYXAgNSBtYXkgeGF5IHhhdCwgc2F1IGhhaSB0 aGFuZyBob2F0IGRvbmcgMiBtYXkgdGhpIG5ndW5nIGhhbi4gDQpIaWVuIGNhIDUgbWF5IHhheSB4 YXQgbmF5IGR1b2MgeGEgZHVuZyBsdW9pIHNhdCByYW8gbGFpLiBMeSBkbyBsYSBzbyBsdWEgY3Vh IGRvbmcgYmFvIA0KQ29yIHRhaSBkYXkgcXVhIGl0IG5lbiB0YWkgZGlhIHBodW9uZyBuYXkgZGEg Y28gbW90IG1heSB4YXkgeGF0IGN1YSB0dSBuaGFuLCBkdSBkZSB4YXkgDQp4YXQgY2hvIHRvYW4g Ym8gbmh1IGNhdSB0cm9uZyB4YSB2YSBjYWMgdnVuZyBsYW4gY2FuLiANCiANCihBbmg6ICJFIiBt YXkgeGF5IHhhdCkgDQogDQpUb2FuIGh1eWVuIFRheSBUcmEgaGllbiBjbyAyNCBtYXkgeGF5IHhh dCBkdW9jIGNhcCBjaG8gMzcgdGhvbiBuaHVuZyBkZXUga2hvbmcgDQpzdSBkdW5nLiBIYW5nIGxv YXQgbWF5IGJhbSBkYXQgY3VuZyBkdW9jIGNhcCBjaG8gY2FjIHhhIG5odW5nIGRldSBibyBob2Fu ZyBuZ29haSANCnJ1b25nIHZpIGRpZW4gdGljaCBjYXkgbHVhIG51b2MgcXVhIGl0IHZhIG5obyBs ZSBuZW4gbWF5IGJhbSBkYXQga2hvbmcgcGhhdCBodXkgdGFjIGR1bmcuIA0KIA0KSGFuZyBjaHVj IG1heSBjYXQgbHVhIGRlbyB2YWkgdmEgbWF5IHR1b3QgbHVhIGN1bmcgYmkgInhlcCB4byIgdmkg ZGFuIGtob25nIHN1IGR1bmcgDQpkdW9jLiBYYSBUcmEgVHJ1bmcgY2h1YSBkdW9jIDUgaGEgZGll biB0aWNoIGx1YSBudW9jIG5odW5nIHZhbiBkdW9jIGRhdSB0dSAzMCBtYXkgDQp0dW90IGx1YSBo YW5nIGNodWMgbWF5IGJvbSB0aHVvYy4gT25nIEhvIFZhbiBCYSwgZ2lhIGxhbmcgbyB0aG9uIFhh bmggeGEgVHJhIFRydW5nIA0Kbm9pOiAiTGFuZyBuYXkgY28gYmEgY2hvbSBsdWEgbnVvYyAoa2hv YW5nIDEgc2FvKSBuaHVuZyBjdW5nIGR1b2MgY2FwIG1vdCBtYXkgdHVvdCANCmx1YSwgbW90IG1h eSBjYXQgbHVhIGRlbyB2YWkuIFRyb25nIGtoaSBjaGkgY2FuIGhhaSBwaHUgbnUgdmEgbW90IG5v bmcgZGFuLCBjYXQgbW90IGJ1b2kgDQpsYSB4b25nLiBTdSBkdW5nIG1heSBjYWkgdGh1IG1heSBt b2MgbmF5LCBkYW4gbGFuZyBraG9uZyBjbyB4YW5nIGRhdSBjaG8gbm8gdW9uZyBkYXUgbmVuIGNh dCB2YW8ga2hvIHRob2kiLg0KDQooQW5oOiBOZ3VvaSBkYW4gY2hpIGR1bmcgY3VvYyBkZSBsYW0g ZGF0KSAgDQoNClRyb25nIGtoaSBzbyBtYXkgbm9uZyBjdSB0cmkgZ2lhIGhhbmcgY2h1YyB0eSBk b25nIGJpIGJvIHBoaSB0aGkgZGlldSBtYSBuZ3VvaSBkYW4gZGFuZyANCnJhdCBjYW4gbmh1IGhv IHRybyB0aGVtIHZlIGdpb25nIGNheSB0cm9uZyB2YSB2YXQgbnVvaSB0aGkgbGFpIGtob25nIGRh cCB1bmcgY2hvIGJhIGNvbiANCmRhbiB0b2MgQ29yIGN1YSBodXllbiB2dW5nIGNhbyBuYXkuIA0K DQpodHRwOi8vdmlldGJhby52bi9LaW5oLXRlL0NodW9uZy10cmluaC1taWEtZHVvbmcteG9pLXF1 YS1kYW5nLzMwMTE5ODE4Lzg3LyAgMjcvNS8gMjAwNiwgMDg6NTcgR01UKzcgTmd1eWVuIEJpbmgg LSBUaGFuaCBQaG9uZw0KDQpUaHUgdHVvbmc6IENodW9uZyB0cmluaCBtaWEgZHVvbmcgMTAwMDAg dGkgZG9uZyAieG9pIiBxdWEgZGFuZyANCg0KUGhhdCBkb25nIHR1IG5hbSAyMDAyLCBjYSBudW9j IHJvIGxlbiBwaG9uZyB0cmFvIHRyb25nIG1pYSwgeGF5IGR1bmcgbmhhIG1heSBkdW9uZyB0aGVv IA0KY2h1b25nIHRyaW5oIDUgdHJpZXUgdGFuIGR1b25nIGN1YSBDaGluaCBwaHUuIFRoZSBuaHVu ZyBuZ2F5IHR1IGtoaSBkdW9jIGtob2kgZG9uZywgDQp0aW5oIHRyYW5nIHRoYXQgdGhvYXQgdGFp IHNhbiwgZ2lhbiBkb2kgdHJvbmcgcXVhbiBseS4uLiBkYSBkaWVuIHJhIHRyYW0gdHJvbmcuIEtl dCBxdWEgDQpkaWV1IHRyYSBtb2kgZGF5IGRhIG5ldSByYSBuaHVuZyBjb24gc28ga2luaCBob2Fu ZyENCg0KVHUgbmFtIDIwMDIsIGNhIG51b2MgZGEgeGF5IGR1bmcgNDQgbmhhIG1heSBkdW9uZywg dG9uZyBjb25nIHN1YXQgdGhpZXQga2UgbGEgODIuOTUwIA0KdGFuIG1pYS9uZ2F5LiBUb25nIHNv IHZvbiBkYXUgdHUsIG1vIHJvbmcsIHhheSBkdW5nIG1vaSBjYWMgbmhhIG1heSBsZW4gdG9pIDEw LjA1MCB0aSBkb25nLCANCnRyb25nIGRvIGNvIGhvbiA2LjY3NyB0aSBkb25nIHRoaWV0IGJpIHZh IGhvbiAzLjM3MiB0aSBkb25nIHhheSBsYXAuIFRvbmcgc2FuIGx1b25nIGR1b25nIA0KZGF0IHRy ZW4gbW90IHRyaWV1IHRhbi4NCg0KVHV5IG5oaWVuIGRlbiB0aG9pIGRpZW0gbmF5LCB0aW5oIHRy YW5nIHRhaSBjaGluaCBjdWEgY2FjIG5oYSBtYXkgZHVvbmcgdHJlbiB0b2FuIHF1b2MgDQpsYSBo ZXQgc3VjIHRoZSB0aGFtIHZvaSBzbyBubyBraG9hbmcgdHJlbiA1LjAwMCB0aSBkb25nIHZhIGRh IHNvIG1hdCBraGEgbmFuZyBjaGkgdHJhLiANClRyb25nIHNvIG5vIG5heSBjbyB0b2kga2hvYW5n IDEuMDAwIHRpIGRvbmcgdmF5IG51b2MgbmdvYWkuIERhIHNvIGNhYyBkb2FuaCBuZ2hpZXAgKERO KSANCmRhIGtob25nIHRyYSBkdW9jIG5vIG51b2MgbmdvYWkuIEhlIHRob25nIE5nYW4gaGFuZyBO b25nIG5naGllcCB2YSBQaGF0IHRyaWVuIG5vbmcgdGhvbiANClZpZXQgTmFtIGN1bmcgZGEgcGhh aSBkdW5nIHJhIHRyYSB0aGF5IGtob2FuIG5vIGJhbyBsYW5oIHZhIGNobyB2YXkgbmhhbiBubyBi YXQgYnVvYyBjdWEgDQoxNiBETiB0cmVuIDE3LDQgdHJpZXUgVVNELiANCg0KaHR0cDovL3ZpZXRi YW8udm4vS2luaC10ZS9LaWVuLUdpYW5nLU5oYS1tYXktZHVvbmctZG9uZy1jdWEtbm9uZy1kYW4t bGFvLWRhby83MDA3ODYyOC80Ny8gSG9uZyBMaW5oIChUaGVvX1RpZW5fUGhvbmcpIDAyLzMvMjAw NywgMTU6NDEgR01UKzcgDQoNClRodSB0dW9uZzogTmhhIG1heSBkdW9uZyBLaWVuIEdpYW5nIDEx IHRyaWV1IFVTRCAnZGFwIGNoaWV1JyAtIG5vbmcgZGFuIGxhbyBkYW8gDQoNClRQIJYgVHJvbmcg a2hpIG5ndW9pIHRyb25nIG1pYSBvIEtpZW4gR2lhbmcgZGFuZyBsYW8gZGFvIHZpIHNhbiBwaGFt IHRyb25nIHJhIGtob25nIA0KYWkgbXVhLCBob2FjIG11YSB2b2kgZ2lhIGJlbyB0aGkgbmhhIG1h eSBkdW9uZyAtIG1vdCB0cm9uZyBuaWVtIHR1IGhhbyBjdWEgbmdhbmggY29uZyANCm5naGllcCBj aGUgYmllbiB0aW5oIG5heSBkYW5nLi4uIGRhcCBjaGlldS4NCg0KR2lhIG1pYSB0YWkgdnVuZyBV IE1pbmggVGh1b25nIHR1IDMwMCBkb25nL2tnLCBuYXkgeHVvbmcgY29uIDE3MCBkb25nL2tnIG5o dW5nIA0Ka2hvbmcgY28gbmd1b2kgbXVhLiAgTmd1b24gdGluIHR1IFNvIE5OJlBUTlQgdGluaCBL aWVuIEdpYW5nIGNobyBoYXksIE5oYSBtYXkgDQpkdW9uZyBLaWVuIEdpYW5nIGR1b2MgZGF1IHR1 IHhheSBkdW5nIGdpYSAxMSB0cmlldSBVU0QsIHRyZW4gbW90IHZ1bmcgZGF0IA0KKGh1eWVuIEdp b25nIFJpZW5nKSBob2FuIHRvYW4ga2hvbmcgY28gbmd1eWVuIGxpZXUgbWlhLg0KDQpEbyBob2F0 IGRvbmcgdGh1YSBsbyBuZW4gVUJORCB0aW5oIEtpZW4gR2lhbmcgZGFuZyByYW8gYmFuLCBuaHVu ZyBxdWEgMyBsYW4gZGF1IGdpYSANCnZhbiBjaHVhIGNvIG5ndW9pIG11YS4gVnVhIHJvaSBDdHkg VE5ISCBLaWVuIER1bmcgdHJhIDMgdHJyaWV1IFVTRCBuaHVuZyB0aW5oIGRhbmcgDQpjaGFuIGNo dSB4aW4geSBraWVuIGNhcCB0cmVuLiANCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21l L1RvbmctR0QtbGF5LTE3Ny10aS1jaG9pLWNodW5nLWtob2FuLWxhbS1naWFtLWRvYy1DdHktbW9p LzIwMTA2LzE4NzM1Ny5sYW9kb25nIDg6MjAgQU0sIDA4LzA2LzIwMTANCg0KVGh1IHR1b25nOiBU b25nIEdEICJsYXkgMTcsNyB0aSBjaG9pIGNodW5nIGtob2FuIiB2YW4gZHVvYyBibyBuaGllbSBs YW0gZ2lhbSBkb2MgQ3R5IG1vaSAoMTAwJSB2b24gbmhhIG51b2MpIA0KDQpPbmcgUGhhbSBOaHUg SG9hIHRob2kgY29uIGxhIFRvbmcgR0Qga2llbSBDaHUgdGljaCBIRFFUIEN0eSBDUCBtaWEgZHVv bmcgDQpMYSBOZ2EgKE1ETE4sIDUxJSB2b24gbmhhIG51b2MsIHRydSBzbyBEaW5oIFF1YW4tIERv bmcgTmFpKSBkYSBkYXUgdHUgaG9uIA0KMTcsNyB0aSBkb25nIHZhbyBjaHVuZyBraG9hbiBraGkg Y2h1YSBjbyBuZ2hpIHF1eWV0IGN1YSBIRFFUIEN0eSwga2hpZW4gDQpNRExOIGhpZW4gZGFuZyBl IGNvIHZvaSBraG9hbiBsbyBjaHVuZyBraG9hbiBob24gMTAgdGkgZG9uZy4gDQpWdSB2aWVjIG9u ZyBQaGFtIE5odSBIb2EgdHVuZyBnYXkgYnVjIHh1YyBjaG8gY28gZG9uZy4NCk1vaSBkYXksIG9u ZyBIb2EgbGFpIGR1b2MgYm8gbmhpZW0gbGFtIEdEIEN0eSBUTkhIIG1vdCB0aGFuaCB2aWVuIG1p YSBkdW9uZyBUcmEgVmluaCAoMTAwJSB2b24gbmhhIG51b2MpLiANClZpZWMgb25nIFBoYW0gTmh1 IEhvYSAgZHVvYyBibyBuaGllbSBsYW0gR0QgQ3R5IE1EVFYgKERCU0NMKSBnYXkgeG9uIHhhbyBj byBkb25nIEN0eSBNRExOIChodXllbiBEaW5oIFF1YW4gLSBEb25nIE5haSkuDQpDYW4gbm9pIHRo ZW0sIHF1YSB0aGFuaCB0cmEgdGFpIEN0eSBNRExOIHRyb25nIHRob2kgZ2lhbiB0dSBuYW0gMjAw NSAtIDIwMDcgKHRob2kgZHVvbmcgbmhpZW0gY3VhIG9uZyBIb2EpLCANCkN1YyBUaHVlIERvbmcg TmFpIHBoYXQgaGllbiBkb24gdmkgbmF5IGRhIGtoYWkgc2FpIGxhbSBnaWFtIHNvIHRodWUgcGhh aSBub3AgDQpob24gNSw0IHRpIGRvbmcgdmEgdGFuZyBzbyB0aHVlIGR1b2MgZ2lhbSBsZW4gZGVu IGhvbiA5LDIgdGkgZG9uZy4gVGhhbmggdHJhIA0KQ3VjIFRodWUgRG9uZyBOYWkgY29uIHBoYXQg aGllbiBDdHkgZGFuZyBnaXUgdHJhaSBwaGVwIDEwLDQgdGkgZG9uZyB0aWVuIGx1b25nIA0KdmEg Y2FjIGtob2FuIHBodSBjYXAgY3VhIENCQ05WIHRyb25nIHZvbmcgMyBuYW0gKDIwMDUgLSAyMDA3 KSBtYSBraG9uZyBjaGkgdHJhIA0KY2hvIG5ndW9pIGxhbyBkb25nIHRoZW8gVGhvbmcgdHUgMTM0 LzIwMDcvVFQtQlRDIG5nYXkgMjMuMTEuMjAwNyBjdWEgQm8gVGFpIGNoaW5oLiANCg0KaHR0cDov L3ZpZXRiYW8udm4vS2luaC10ZS9DaHVvbmctdHJpbmgtbWlhLWR1b25nLXhvaS1xdWEtZGFuZy8z MDExOTgxOC84Ny8gIDI3LzUvIDIwMDYsIDA4OjU3IEdNVCs3IE5ndXllbiBCaW5oIC0gVGhhbmgg UGhvbmcNCg0KQ2h1b25nIHRyaW5oIG1pYSBkdW9uZyAtIFRoYW0gbmh1bmcgaG9hbmggaGFuaA0K DQpUaGVvIGJhbyBjYW8gY3VhIGNvIHF1YW4gY2h1YyBuYW5nIHRoaSBjbyBuaGlldSBuZ3VvbiB0 aW4gcGhhbiBhbmgsIHRyb25nIHZpZWMgbmhhcCB0aGlldCBiaSANCmN1YSBUcnVuZyBRdW9jIGNv IHN1IHRob25nIGRvbmcgZGUgbmFuZyBnaWEgaGFuZyB0cmlldSBVU0QgdHJlbiBtb3QgZGF5IGNo dXllbi4gDQoNCk5odW5nIHRoaWV0IGJpIG5heSBjdWEgVHJ1bmcgUXVvYyB0dXkgbW9pIG5odW5n IGRhIGxhYyBoYXUgdmUgY29uZyBuZ2hlLiANCg0KQ3VuZyBuaGFwIHRoaWV0IGJpIGN1YSBUcnVu ZyBRdW9jLCBjdW5nIGNvbmcgc3VhdCAoMS4wMDAgdGFuIG1pYS9uZ2F5KSBuaHVuZyBnaWEgbmhh cCBjaGVuaCBuaGF1IA0KaGFuZyBjaHVjIHRpIGRvbmc6IE5oYSBtYXkgZHVvbmcgU29uIExhIDY1 IHRpIGRvbmc7IG5oYSBtYXkgbyB0aW5oIEtvbiBUdW0gbmhhcCA3MCB0aTsgQmluaCBUaHVhbiAN Cjc1LDIgdGkgdmEgVHJpIEFuIGxhIDc2IHRpIGRvbmcuLi4NCg0KaHR0cDovL3ZpZXRiYW8udm4v S2luaC10ZS9DaHVvbmctdHJpbmgtbWlhLWR1b25nLXhvaS1xdWEtZGFuZy8zMDExOTgxOC84Ny8g IDI3LzUvIDIwMDYsIDA4OjU3IEdNVCs3IE5ndXllbiBCaW5oIC0gVGhhbmggUGhvbmcNCg0KVGh1 IHR1b25nOiBDaHVvbmcgdHJpbmggbWlhIGR1b25nIC0gVGhhbSBuaHVuZyBob2FuaCBoYW5oICh0 aWVwKQ0KDQpUYWkgZHUgYW4gTmhhIG1heSBkdW9uZyBRdWFuZyBOYW0sIGNodSBkYXUgdHUgdmEg QmFuIHF1YW4gbHkgbmhhIG1heSBkYSBkdW9jIGNhYyBkb2kgdGFjIA0KZ2lhbyBtYXkgbW9jIHRo aWV0IGJpIGN1LCBraG9uZyBkdW5nIGNodW5nIGxvYWksIGtob25nIGR1bmcgZGFuaCBtdWMgaG9w IGRvbmcgdmEgY29uZyBzdWF0IA0KdGhpZXQga2Ugbmh1bmcgdmFuIHR1IHkgbmhhbiB2YSBsYXAg ZGF0Lg0KVHJvbmcga2hpIG5oYSBtYXkgY2h1YSBkYXQgY2FjIHRob25nIHNvIGt5IHRodWF0LCBj aHVhIGNvIGhvIHNvIG5naGllbSB0aHUga3kgdGh1YXQuLi4gbmh1bmcgDQpjaHUgZGF1IHR1IGRh IGt5IGJpZW4gYmFuIG5naGllbSB0aHUgdGFtIHRob2kgZGUgdGhhbmggdG9hbiA1JSB0aWVuIGJh byBoYW5oIGNobyBkb2kgdGFjLiANCkNhYyBoYW5oIHZpIG5heSBkYSBnYXkgdGhpZXQgaGFpIGNo byBOaGEgbnVvYyAxNDMuODMwIFVTRCB2YSBob24gMSw1IHRpIGRvbmcuDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAyNS8yMDEwMDYxNzAwNDQ0OC5hc3B4IDE3 LzA2LzIwMTAgMDo0NCANCg0KVGh1IHR1b25nOiBDaHVhIGtpZW0gc29hdCBkdW9jIHZhdCB0dSBu b25nIG5naGllcCAgDQoNClJhdSwgdGhpdCBsb24sIHRoaXQgZ2EgZGV1IGNvIHZpIGtodWFuIGdh eSBuZ28gZG9jLi4uIGRvIGxhIHRob25nIHRpbiBkdWEgcmEgdGFpIGN1b2MgaG9wIA0KYmFuIGNh YyBiaWVuIHBoYXAga2llbSBzb2F0IHZhdCB0dSBub25nIG5naGllcCwgZG8gQm8gTk4tUFROVCB0 byBjaHVjIHNhbmcgMTYuNi4gDQoNCk5ndXllbiBuaGFuIGN1YSB0aW5oIHRyYW5nIHRyZW4gbGEg ZG8gY2h1YSBraWVtIHNvYXQgZHVvYyBjYWMgY28gc28gZ2lldCBtbyAtIENoaSAzLDYlIGNvIHNv IGdpZXQgbW8gZHVvYyBraWVtIHNvYXQgDQoNCjUwJSBtYXUgcGhhbiBib24ga2VtIGNoYXQgbHVv bmcNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI0LzIwMTAw NjA3MDAzODI2LmFzcHggMDcvMDYvMjAxMCAwOjM4IA0KDQpUaHUgdHVvbmc6IEdpYXQgbWluaCB2 aSB0b24gdGhhdCwgbGFuZyBwaGkga2hhaSB0aGFjIHRhaSBuZ3V5ZW4NCg0KS2hhaSB0aGFjIHRh aSBuZ3V5ZW4ga2hvYW5nIHNhbiAtIENhcCBwaGVwIG8gYXQgdmkgbG9pIGljaCB0cnVvYyBtYXQg IC0gS2hhaSB0aGFjIGdhcCBnYW4gMTUgbGFuIHF1eSBob2FjaCBjaG8gcGhlcCANCg0KLSAyIG5h bSBudWEgY2FuIGtpZXQgdGhhbiwgMzAgbmFtIG51YSBjYW4ga2lldCBkYXUga2hpIA0KDQotIER1 IGtpZW4gbmFtIG5heSB4dWF0IGtoYXUgMTAgdHJpZXUgdGFuIHRoYW4gdHJvbmcga2hpIG5odSBj YXUgdGhhbiBsYSAzNyB0cmlldSB0YW4uIA0KTmh1bmcgbmh1IGNhdSB0aGFuIHNlIHRhbmcgbGVu IDk0IHRyaWV1IHRhbiB2YW8gbmFtIDIwMTUgdmEgMzA4IHRyaWV1IHRhbiB2YW8gbmFtIDIwMjUu IA0KDQpOaHUgdmF5IG5hbSAyMDE1IGNodW5nIHRhIHBoYWkgbmhhcCAzNCB0cmlldSB0YW4gdGhh biwgbmFtIDIwMjUgbmhhcCAyMjggdHJpZXUgdGFuIHRoYW4uIA0KDQpUcnVvYyBkYXksIGNodW5n IHRhIHR1bmcgbmdoZSB2ZSBoYWkgdGFjLCBsYW0gdGFjLCBuYXkgeHVhdCBoaWVuIHRoZW0gbmhp ZXUgdGFjIG1vaSwgZG8gbGEgdmFuZyB0YWMsIHRoaWVjIHRhYywgcXVhbmcgdGFjLCB0aGFuIHRh YywgZGEgdGFjLCBjYXQgdGFjLi4uIENodW5nIHRhIGtob25nIGtob2kgZ2lhdCBtaW5oIHRydW9j IGNvbiBzbyB0b24gdGhhdCwgbGFuZyBwaGkgdHJvbmcga2hhaSB0aGFjIHRoYW4gaGFtIGxvIGxh IDQwIC0gNjAlLCBBcGF0aXQgbGEgMjYgLSA0MyUsIHF1YW5nIGtpbSBsb2FpIHR1IDE1IC0gMzAl LCBkYXUga2hpIGxlbiBkZW4gZ2FuIDUwJS4uLiBDYWMgdGhhdCB0aG9hdCBsYW5nIHBoaSBuYXkg bGFtIG1hdCBkaSBoYW5nIHRyYW0gdGkgZG9uZyBuZ2FuIHNhY2ggbmhhIG51b2MuIChEQiBRdW9j IGhvaSBMZSBOaHUgVGllbiAtIFF1YW5nIFRyaSkgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2No aW5odHJpLzIwMTAwNi9LaGFpLXRoYWMta2hvYW5nLXNhbi1BaS1jaGktZGllbS1jaG8tZG9hbmgt bmdoaWVwLTkxNjQ4Ni8gMTg6NDksIDE2LzA2LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IEto YWkgdGhhYyBraG9hbmcgc2FuIC0gQWkgJ2NoaSBkaWVtJyBjaG8gZG9hbmggbmdoaWVwPw0KDQpD aG8gcmFuZyBkb25nIGJhbyBuaHVuZyB2dW5nIGdpYXUga2hvYW5nIHNhbiBkYW5nICJuZ2hlbyB0 cmVuIGRvbmcgdmFuZywgY2hldCB0cmVuIGRvbmcgdGh1b2MiLCBCaSB0aHUgSGEgU29uIE5oaW4g KEdpYSBMYWkpIHZpIHZvbiwgY2FjICJuYW5nIHRpZW4iIGtob2FuZyBzYW4gYmF5IGdpbyBkYSBk ZW4gbXVjIHBoYWkgdGhhbjogIkFuaCBvaSBkdW5nIHF1YXkgZW0gbnVhLCBlbSBzYXAga2lldCBz dWMgcm9pLiBOZXUgZW0gY2hldCB0aGkgbW9pIG5ndW9pIHNlIGNoZXQgc2F1IGVtIGtob25nIGxh dSIuDQoNCk5naGljaCBseSBkdW9jIG5oaWV1IGJpIHRodSBjYWMgdGluaCBnaWF1IHRhaSBuZ3V5 ZW4gbmV1IHJhLCBkbyBsYSBjYW5nIG8gbmh1bmcgbm9pIGdpYXUgdGFpIG5ndXllbiwgZGFuIGNh bmcgbmdoZW8sIGR1b25nIHhhIGhvbmcsIGJlbmggdGF0IHZhIHRlIG5hbiB4YSBob2kgdHJhbiBs YW4uDQoNCkRhbiwgZG9hbmggbmdoaWVwLCB0aW5oLCBUcnVuZyB1b25nICBoYXkgY2hpIG1vdCBu aG9tIGxvaSBpY2ggaHVvbmcgbG9pIHR1IGtob2FuZyBzYW4/IENhdSBob2kgZHVvYyBkZSBjYXAg bmhpZXUgYm9pIGRpYSBwaHVvbmcgdGhpIHRoYW4gbmdoZW8sIE5oYSBudW9jIG5vaSB0aGF0IHRo dS4NCg0KJ0RpYSBwaHVvbmcgY2hpIHF1YW4gZHVvYyBydW5nLCBuZ3VvbiBudW9jIGNodSBraG9h bmcgc2FuIGR1b2kgbG9uZyBkYXQgdGhpIGNoaXUsIG5vaSBnaSBkZW4gDQp2aWVjIHF1eSBob2Fj aCBxdWFuIGx5LCB2aSBkYXkgbGEgZG9jIHF1eWVuIGN1YSBCbyBUTiZNVCcNCiJDYWMgZHUgYW4g ZG8gZGlhIHBodW9uZyBjYXAgcGhlcCBjaHUgeWV1IHZpIGxvIGxvdCB0aG9uZyB0aW4gaG9hYyBU cnVuZyB1b25nICJjaGkgZGllbSIgY2h1IA0KZGlhIHBodW9uZyBsYW0gc2FvIGJpZXQgZHVvYyBj aG8gbmFvIGNvIG1vIHZhbmcsIG1vIGRhIHF1eSIgLSBCaSB0aHUgR2lhIExhaSBIYSBTb24gTmhp biBjaG8gYmlldC4NCg0KQmkgdGh1IENhbyBCYW5nIE5ndXllbiBUaGkgTnVvbmcgdGhhbjogIk5v aSBuYW8gY28gbmhpZXUga2hvYW5nIHNhbiBkYW5nIGR1b2Mga2hhaSB0aGFjIHRoaSANCm5oYW4g ZGFuIGNhbmcgY2hpdSBuaGlldSBraG8ga2hhbiwgbmh1IGR1b25nIHhhIGhvbmcsIGRpIGxhaSBr aG8ga2hhbiwgbW9pIHRydW9uZyBudW9jLCANCm1vaSB0cnVvbmcgc29uZyBiaSBvIG5oaWVtIG5n aGllbSB0cm9uZy4gRGF0IGRhaSBzYW4geHVhdCBiaSB4YW0gcGhhbSB2YSBuZ2F5IGNhbmcgYmkg Z2lhbSBkYW4uIA0KTmd1b24gdGh1IGN1YSBkaWEgcGh1b25nIHJhdCB0aGFwIi4gDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNzIyMzU1Mi5h c3B4IE1haSBIYSAwNy8xMC8yMDEwIDIyOjM1IA0KDQpUaHUgdHVvbmc6IFRoaWV1IHRoYW4gdHJv bmcgbnVvYywgdGh1YSB0aGFuIHh1YXQga2hhdSAgIA0KIA0KRHUgYmFvIG5hbSAyMDE1IFZOIHBo YWkgbmhhcCBraGF1IHRoYW4gLSBBbmg6IFBoYW0gSGFpIFNhbSANCg0KTmdhbmggdGhhbiBtb2kg bmFtIHh1YXQga2hhdSB4YXAgeGkgNDAlIC0gNTAlIHRvbmcgc2FuIGx1b25nIGtoYWkgdGhhYywg bmh1bmcgbmhpZXUgDQpuaGEgbWF5IHhpIG1hbmcgbGFpIGRhbmcgcGhhaSBuZ3VuZyB0cmUgc2Fu IHh1YXQgdmkgdGhpZXUgdGhhbi4gVmkgZGF1IGNvIG5naGljaCBseSBuYXkgPyANCg0KT25nIFZ1 IE1hbmggSHVuZywgUGhvIHRvbmcgZ2lhbSBkb2MgVGFwIGRvYW4gdGhhbiBraG9hbmcgc2FuIFZO IChUS1YpIGNobyBiaWV0LCANCmR1IGtpZW4gbmFtIDIwMTAgdGhhbiBraGFpIHRoYWMgdHJvbmcg bnVvYyBkYXQgMjUgdHJpZXUgdGFuLCB4dWF0IGtoYXUgMTggdHJpZXUgdGFuLiANCkx1b25nIHh1 YXQga2hhdSBuYXkgY28gc3V0IGdpYW0gc28gdm9pIG5hbSAyMDA5IChnaWFtIDYgdHJpZXUgdGFu KSwgc29uZyBraG9uZyBwaGFpIGRvIA0KVEtWIGNodSBkb25nIGRpZXUgY2hpbmggZ2lhbSwgbWEg ZG8gc3UgZGlldSBjaGluaCBjaGluaCBzYWNoIG5hbmcgbHVvbmcgY3VhIG1vdCBzbyANCm51b2Mu DQoNCkhvYXQgZG9uZyBjYW0gY2h1bmcgdmkgdGhpZXUgdGhhbg0KDQpUdSBkYXUgbmFtIHRvaSBu YXksIG5ndW9uIHRoYW4gY3VuZyBjYXAgY2hvIGNhYyBuaGEgbWF5IHRydWMgdGh1b2MgVG9uZyBj b25nIHR5IENvbmcgDQpuZ2hpZXAgeGkgbWFuZyBWTiAoVmljZW0pIGx1b24gdHJvbmcgdGluaCB0 cmFuZyBiYW8gZG9uZy4gVGhlbyBkYWkgZGllbiBWaWNlbSwgdHJ1bmcgDQpiaW5oIG1vaSBuZ2F5 IGNhYyBuaGEgbWF5IHhpIG1hbmcgY3VhIFZpY2VtIGNhbiA1LjAwMCB0YW4gdGhhbiBjYW0gbG9h aSAzIHZhIDQsIA0Kbmh1bmcgbHVvbmcgdGhhbiBUS1YgY3VuZyB1bmcgY2hpIGRhcCB1bmcgZHVv YyAxLzIgc28gdm9pIHlldSBjYXUuIE5odW5nIG5nYXkgZ2FuIA0KZGF5LCB0aW5oIHRyYW5nIG5h eSBjbyBkdW9jIGNhaSB0aGllbiwgbmh1bmcgdmFuIG1vaSBjaGkgZGFwIHVuZyBkdW9jIGtob2Fu ZyAzLjUwMCAtIDQuMDAwIHRhbi4NCg0KVGhlbyBseSBnaWFpIGN1YSBsYW5oIGRhbyBUS1YsIGRv IG5odSBjYXUgdGhhbiBjaG8gbmdhbmggeGkgbWFuZyB0YW5nIHRvaSAzNCUgdHJvbmcgDQpuYW0g MjAwOSwgdHJvbmcga2hpIG5hbmcgbHVjIHNhbiB4dWF0IGN1YSBUS1YgY2hpIHRhbmcgdHJ1b25n IDUlL25hbSwgY2FjIGxvYWkgdGhhbiANCnRvdCBuZ2F5IGNhbmcga2hhbiBoaWVtLCBkYW4gdG9p IHRpbmggdHJhbmcgY3VuZyBraG9uZyBkdSBjYXUuIE1hdCBraGFjLCBjYWMgbmhhIG1heSB4aSAN Cm1hbmcgc3UgZHVuZyBjb25nIG5naGUgbGFjIGhhdSBuZW4gaGF1IGhldCBkZXUgZHVuZyB0aGFu IGNhbSBkYWMgY2h1bmcgMywgM2IgZGUgZG90IA0KbG8sIHRyb25nIGtoaSBzYW4gbHVvbmcgbG9h aSB0aGFuIG5heSBraG9uZyBuaGlldS4NCg0KTmh1bmcgZGFpIGRpZW4gY3VhIFZpY2VtIGtoYW5n IGRpbmgsIGNvbmcgbmdoZSBjYWMgbmhhIG1heSB4aSBtYW5nIGhpZW4gbmF5IGtob25nIA0KaGUg bGFjIGhhdSAoVmljZW0gY2hpZW0gMzglIHRvbmcgc2FuIGx1b25nIHRvYW4gbmdhbmgpLCBjYWMg bmhhIG1heSB0dSBuaGFuIHZhIGNhYyANCnRvbmcgY29uZyB0eSBraGFjIGNvIHNhbiB4dWF0IHhp IG1hbmcsIGRldSBzdSBkdW5nIGNvbmcgbmdoZSBjdWEgY2hhdSBBdSwgTmhhdCBCYW4uIA0KVGhl byB2aSBkYWkgZGllbiBuYXksIHZhbiBkZSBsYSBvIGNobyBuaHUgY2F1IHRpZXUgdGh1IG5oaWV0 IGRpZW4sIHRoZXAsIHhpIG1hbmcgZGV1IHRhbmcgDQp0cm9uZyBraGkgbmd1b24gY3VuZyB0aGFu IGNobyB0cm9uZyBudW9jIGNvIGhhbi4gTW90IHNvIG5oYSBtYXkgdHJvbmcgVmljZW0gZGEgcGhh aSANCm5ndW5nIGxvIGRvIHRoaWV1IHRoYW4uIA0KDQpUS1YgZG8gY2hvIGNvIGNoZSBnaWEgDQoN ClRoZW8gb25nIEh1bmcsIGRpZW4sIHhpIG1hbmcgZGV1IGR1b2MgbG9pIG5oaWV1IGRvIGNoZW5o IGxlY2ggZ2lhIHRoYW4gdHJvbmcgbnVvYyB2YSANCnh1YXQga2hhdS4gR2lhIHRyb25nIG51b2Mg cXVhIHRoYXAga2hpZW4gVEtWIGNhbmcgYmFuIGNhbmcgbG8sIGFuaCBodW9uZyBsb24gZGVuIA0K aGFuZyB0cmFtIG5naGluIGxhbyBkb25nIHRyb25nIHRhcCBkb2FuLiANCg0KTW9pIGRheSwgVEtW IGRhIGtpZW4gbmdoaSBsZW4gQm8gQ29uZyB0aHVvbmcgeGVtIHhldCBkaWV1IGNoaW5oIGdpYSB0 aGFuIGNobyBkaWVuIA0KdGhlbyBjbyBjaGUgdGhpIHRydW9uZyB0dSBuYW0gMjAxMS4gVEtWIGNo byByYW5nLCB0dXkgZ2lhIHRoYW4gYmFuIGNobyBkaWVuIGRhIGR1b2MgDQpjaGluaCB0YW5nIHR1 IG5nYXkgMS4zIG5hbSBuYXksIG5odW5nIGNoaSBiYW5nIDU0JSAtIDU5JSBnaWEgYmFuIGNobyBj YWMgaG8ga2hhYyANCnRyb25nIG51b2MgdmEgYmFuZyAzNiUgLSA0MCUgZ2lhIHh1YXQga2hhdSB0 aGFuIGN1bmcgY2h1bmcgbG9haS4gR2lhIHRoYW4gYmFuIGNobyANCmNhYyBuZ2FuaCBnaWF5LCBw aGFuIGJvbiwgeGkgbWFuZyBkYSBkdW9jIGRpZXUgY2hpbmggdGhlbyBuZ3V5ZW4gdGFjIGJhbmcg OTAlIGdpYSANCnh1YXQga2hhdSBjdW5nIHRob2kgZGllbSwgbmh1bmcgZG8gZ2lhIHh1YXQga2hh dSB0YW5nIHZhIHR5IGdpYSBuZ29haSB0ZSB0YW5nIG5lbiANCnRoYW4gYmFuIGNobyBjYWMgaG8g bmF5IGxhaSBjaGkgY29uIGJhbmcgNjAlIGdpYSB4dWF0IGtoYXUgY28gY3VuZyBjaGF0IGx1b25n Lg0KDQoiQ2hpbmggc2FjaCBzdSBkdW5nIHRoYW4gZG9pIHZvaSBjYWMgaG8gc3UgZHVuZyBsb24g cGhhaSBkaWV1IGNoaW5oLiBHaWEgZGllbiwgZ2lhIA0KdGhhbiBkdW5nIGNoYW0gdG9pIG5oaWV1 IGxpbmggdnVjLCBuaGlldSBuZ3VvaSwgbmh1bmcgY2FuZyBkZSBsYXUga2h1bmcgZ2lhIG5odSBo aWVuIA0KbmF5IGNhbmcga2hvbmcgdGh1YW4gbG9pIGNobyBwaGF0IHRyaWVuLiBOZXUgbmdhbmgg dGhhbiBnaWFpIHF1eWV0IGR1b2MgdmFuIGRlIGdpYSB0aGFuIA0KdHJvbmcgbnVvYyB0aGkgeHVh dCBraGF1IHNlIGR1b2MgaGFuIGNoZSBkYW5nIGtlIiwgb25nIEh1bmcgbm9pLiANCg0KVHJvbmcg a2hpIGNobyBkb2kgZ2lhIHRoYW4gYmFuIGNobyBjYWMgaG8gbG9uIGR1b2MgZGlldSBjaGluaCwg VEtWIGNobyBiaWV0IHBoYWkgDQp4dWF0IGtoYXUsIHRodSBsb2kgbmh1YW4gYnUgbGFpIGtob2Fu IGxvIGRvIGdpYSB0aGFuIHRyb25nIG51b2MgcXVhIHJlLiBUdXkgbmhpZW4sIHRoZW8gDQp0aW5o IHRvYW4sIHRvaSBuYW0gMjAxNSwgVk4gc2UgYmF0IGRhdSBwaGFpIG5oYXAga2hhdSB0aGFuIHZv aSBraG9pIGx1b25nIGxvbiAoZHUgDQpraWVuIHRoaWV1IGtob2FuZyA2IHRyaWV1IHRhbiB0aGFu IGNobyBjYWMgbmhhIG1heSBuaGlldCBkaWVuIHRyZW4gY2EgbnVvYykuIE1hdCBraGFjLCANCnZp ZWMgbmhhcCBraGF1IHRoYW4gZHVvYyBkdSBiYW8gc2UgcmF0IGtobyBraGFuLiBOaHVuZyB0aGF5 IHZpIGhhbiBjaGUgeHVhdCBraGF1LCANCmdpYWkgcGhhcCBUS1YgZHVhIHJhIGxhIGRlIHh1YXQg TmhhIG51b2MgZ2lhaSBxdXlldCB0aHUgdHVjLCBnaWFvIHRoZW0gY2FjIHZ1bmcgdGFpIA0Kbmd1 eWVuIG1vaSBjaG8gdGFwIGRvYW4uIA0KDQpUaGVvIG1vdCBjaHV5ZW4gZ2lhLCB0cnVvYyBraGkg dGluaCBkZW4gdmllYyBuaGFuIHRoZW0gdnVuZyB0aGFuIG1vaSwgbmdhbmggdGhhbiANCnBoYWkg aGFuIGNoZSBkdW9jIHRoYXQgdGhvYXQsIGxhbmcgcGhpIHRyb25nIHF1YSB0cmluaCBraGFpIHRo YWMgdGhhbiBoaWVuIG5heSwgZGFjIGJpZXQgDQpsYSBkb2kgcGhvIHZvaSB0aW5oIHRyYW5nIHh1 YXQgbGF1IHRoYW4uIE1hdCBraGFjLCBjbyBsZSBkYSBkZW4gbHVjIFRLViBjYW4gZGlldSB0aWV0 IA0KaG9wIGx5IGhvbiB0eSBsZSBnaXVhIGx1b25nIHRoYW4gZGFuaCBjaG8gdGlldSB0aHUgdHJv bmcgbnVvYyB2YSBsdW9uZyB0aGFuIHh1YXQga2hhdS4NCiBCb2kgdG9jIGRvIHRhbmcgdHJ1b25n IHNhbiB4dWF0IHRoYW4gZGFuZyBxdWEgdGhhcCBzbyB2b2kgdG9jIGRvIHRhbmcgdHJ1b25nIG5o dSBjYXUgDQpzdSBkdW5nIGN1YSBjYWMgaG8gbG9uIG5odSBuaGlldCBkaWVuLCB4aSBtYW5nLCB0 aGVwLCB0cm9uZyBraGkgdGhvaSBkaWVtIHBoYWkgbmhhcCANCmtoYXUgdGhhbiBkYW5nIHRvaSBy YXQgZ2FuLiAgICAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIw MTA0NC8yMDEwMTAyNzIzNDQ0NS5hc3B4IE5NaW5oIFRMdW9uZyBUTWFpIDI3LzEwLzIwMTAgMjM6 NDQgDQoNClRodSB0dW9uZzogUGhhaSB4ZW0gbGFpIGNoaWVuIGx1b2Mga2hvYW5nIHNhbiAgDQoN CihBbmg6IERCIE5ndXllbiBEYW5oLCBHaWEgTGFpOiBDYW4gcXV5IGRpbmggdmllYyBkaW5oIGdp YSB0YWkgbmd1eWVuIGtob2FuZyBzYW4gZGUgbGFtIGNvIHNvIGNobyB0byBjaHVjIGRhdSBnaWEg LSBBbmg6IE5nb2MgVGhhbmcpDQoNCkhvbSBxdWEgMjcuMTAsIFFIIHRoYW8gbHVhbiB0YWkgaG9p IHRydW9uZyB2ZSBkdSBsdWF0IEtob2FuZyBzYW4gKHN1YSBkb2kpLiBEdSBsdWF0IA0KS2hvYW5n IHNhbiAoc3VhIGRvaSkgZHVhIHJhIHF1eSBkaW5oIGJhdCBidW9jIGRhdSBnaWEga2hpIGNhcCBw aGVwIGtoYWkgdGhhYyBraG9hbmcgc2FuIA0Kbmh1bmcgbGFpIGJvIGRpIHF1eSBkaW5oIHBoYWkg ZGluaCBnaWEgdGFpIG5ndXllbiBraG9hbmcgc2FuIHRydW9jIGtoaSBkYXUgZ2lhIHNvIHZvaSAN Ckx1YXQgS2hvYW5nIHNhbiBoaWVuIGhhbmguIA0KDQpEQiBOZ3V5ZW4gRGFuaCAoR2lhIExhaSkg ZGUgbmdoaSwgZHUgbHVhdCBzdWEgZG9pIGNhbiBwaGFpIHF1eSBkaW5oIHZpZWMgZGluaCBnaWEg dGFpIA0Kbmd1eWVuIGtob2FuZyBzYW4gZGUgbGFtIGNvIHNvIGNobyB0byBjaHVjIGRhdSBnaWEu IA0KDQpDdW5nIHF1YW4gZGllbSwgREIgTmdoaWVtIFZ1IEtoYWkgKERpZW4gQmllbikgY3VuZyB0 aGFjIG1hYyB0cnVvYyB2aWVjIGR1IHRoYW8gDQpMdWF0IHN1YSBkb2kgbGFuIG5heSBsYWkgYm8g aGV0IHF1eSBkaW5oIGRpbmggZ2lhIHRydW9jIGtoaSBkYXUgZ2lhIHF1eWVuIGtoYWkgdGhhYyAN Cmtob2FuZyBzYW4gbmh1IGJhbiBkYXUgZHUga2llbi4gIkRhdSBnaWEgbWEga2hvbmcgZGluaCBn aWEgdGhpIHRvaSBraG9uZyBoaWV1IG5odSB0aGUgDQpuYW8sIHRhdCBuaGllbiBjbyBxdXkgZGlu aCBnaWFvIGNobyBDaGluaCBwaHUgbmh1bmcgZGF5IGxhIHRhaSBzYW4gcXVvYyBnaWEsIHRhaSBz YW4gY3VhIA0KdG9hbiBkYW4sIGNobyBuZW4gdmFuIGRlIGRhdSBnaWEsIGRpbmggZ2lhIHRyb25n IGx1YXQgbmF5IHBoYWkgcXV5IGRpbmggbmh1bmcgZGlldSBjYW4gDQp0aGlldCB0b2kgdGhpZXUs IHRyZW4gY28gc28gZG8gbW9pIGRlIENoaW5oIHBodSBxdXkgZGluaCBjdSB0aGUiLCBvbmcgS2hh aSBub2kuIA0KDQpMaWVuIHF1YW4gdG9pIHF1eSBkaW5oIGRhdSBnaWEgcXV5ZW4ga2hhaSB0aGFj IGtob2FuZyBzYW4sIERCIFRyYW4gRGluaCBOaGEgKEJhIFJpYSCWIA0KVnVuZyBUYXUpIGtob25n IGdpYXUgZHVvYyB0aGF0IHZvbmcga2hpIGNobyByYW5nLCBuaHVuZyBxdXkgZGluaCB0cm9uZyBk dSBsdWF0IChzdWEgDQpkb2kpIHZlIHZpZWMgY2FwIHBoZXAgaGF5IGRhdSBnaWEga2hhaSB0aGFj IGtob2FuZyBzYW4gY2h1YSBnaWFpIHF1eWV0IGR1b2MgdmFuIG5hbiBjYXAgDQpwaGVwIHJhdCB0 cmFuIGxhbiB0aG9pIGdpYW4gcXVhLCBnYXkgdGhhdCB0aG9hdCBuZ2hpZW0gdHJvbmcgdGFpIG5n dXllbiBraG9hbmcgc2FuIGN1YSBkYXQgDQpudW9jLiAiTHVhdCBwaGFpIHF1eSBkaW5oIGxhbSB0 aGUgbmFvIGRvIGNodSB5ZXUgbGEgZGF1IGdpYSBxdXllbiBraGFpIHRoYWMga2hvYW5nIHNhbiwg DQpuZXUga2hvbmcgYWkgdGhhbSBnaWEgZGF1IGdpYSB0aGkgbW9pIG5naGkgZGVuIGNodXllbiBj YXAgcGhlcCIuIA0KDQpUaGUgbmFvIGxhIGtob2FuZyBzYW4gcXVhbiB0cm9uZz8NCg0KREIgVHJh biBIb25nIFZpZXQgKEhhdSBHaWFuZykgbmhhbiB4ZXQsIHF1eSBkaW5oIHRoZSBuYW8gbGEga2hv YW5nIHNhbiBxdWFuIHRyb25nIA0KdHJvbmcgZHUgbHVhdCBjaHVhIHJvIHJhbmcsIG1pbmggYmFj aC4gIkNhbiBsYW0gcm8ga2hhaSBuaWVtIHRoZSBuYW8gbGEga2hvYW5nIHNhbiBxdWFuIA0KdHJv bmcgdHJvbmcgZHUgbHVhdCwgZG9uZyB0aG9pIHF1eSBkaW5oIHJvIG1vdCBzbyBraG9hbmcgc2Fu IGtob25nIGR1b2MgeHVhdCBraGF1IHRobywgDQp0cnVvYyBoZXQgY28gdGhlIGxhIHRoYW4gZGEg aG9hYyBzYXQsIHRpdGFuIiwgREIgbmF5IGRlIG5naGkuIA0KDQpDaGlhIHNlIG1vaSBsbyB2ZSBh biBuaW5oIG5hbmcgbHVvbmcgcXVvYyBnaWEsIERCIE5ndXllbiBEaW5oIFh1YW4gKFRheSBOaW5o KSBjaG8gDQpyYW5nLCBwaGFpIGNvIG1vdCBjaGllbiBsdW9jIHZlIGtob2FuZyBzYW4sIGRhYyBi aWV0IGxhIG5odW5nIGtob2FuZyBzYW4gY2hpZW4gbHVvYy4gREIgDQpuYXkgZGFuIGNhdSBjaHV5 ZW4gbmh1bmcgdmllYyB4YXkgcmEgdm9pIFRydW5nIFF1b2MsIE5oYXQgdmEgY2hhdSBBdSB0cm9u ZyB2YW4gZGUgDQpraGFpIHRoYWMgZGF0IGhpZW0gdnVhIHF1YSwgcm9pIGNhY2ggdGlldCBraWVt IHRhaSBuZ3V5ZW4gZGF1IG1vIGN1YSBobzsgdmEgZHVhIHJhIA0Ka2h1eWVuIG5naGk6ICJOaHVu ZyBjYWkgZ2kgbWEgdGFpIG5ndXllbiB0aGUgZ2lvaSBjYW4ga2lldCBob2FjIGxhIGhhbiBjaGUg dGhpIGNodW5nIHRhIA0KcGhhaSBjbyBjaGllbiBsdW9jIHV1IHRpZW4gY2hvIGNhYyBkb2FuaCBu Z2hpZXAgdHJvbmcgbnVvYywgcGh1YyB2dSB0cm9uZyBudW9jIHRydW9jLiANClBoYWkgeGVtIHhl dCBsYWkgdmllYyB4YXkgZHVuZyBjaGllbiBsdW9jIGtob2FuZyBzYW4gdmEgY28gbW90IGNoaWVu IGx1b2MgeHVhdCBraGF1IA0KY2hvIHJvIHJhbmcgZGUgc2F1IG5heSBjaHVuZyB0YSBjb24gY28g dGFpIG5ndXllbiBtYSBzdSBkdW5nIi4NCg0KRGFuZyBjaHUgeSwgdHJvbmcgcXVhIHRyaW5oIHRo YW8gbHVhbiwgbW90IHNvIERCUUggZGUgbmdoaSBwaGFpIHF1eSBkaW5oIHJvIHRyYWNoIA0Kbmhp ZW0gdG8gY2h1YywgY2EgbmhhbiwgY28gcXVhbiBxdWFuIGx5IG5oYSBudW9jIHBoYWkgY2hpdSB0 cmFjaCBuaGllbSB4dSBseSBoYXUgcXVhIA0Ka2hpIHhheSByYSBzdSBjbyBydWkgcm8gbW9pIHRy dW9uZyBkbyBraGFpIHRoYWMga2hvYW5nIHNhbi4gDQoNCkRCIERvIE1hbmggSHVuZyAoVGhhaSBO Z3V5ZW4pIGNobyBiaWV0LCB0YWkgZGlldSAyNCBjbyBxdXkgZGluaCB0byBjaHVjLCBjYSBuaGFu IGhvYXQgDQpkb25nIGtob2FuZyBzYW4gcGhhaSB0aHVjIGhpZW4gY2FjIGdpYWkgcGhhcCB2YSBj aGl1IG1vaSBjaGkgcGhpIGRlIGJhbyB2ZSwgY2FpIHRhbyBwaHUgDQpob3AgbW9pIHRydW9uZyBu aHVuZyBsYWkgZG9uZyBraHVuZyB0cm9uZyAzIHRhaSBsaWV1OiBNb3QgbGEgZHUgYW4gZGF1IHR1 OyBIYWkgbGEgYmFvIA0KY2FvIGRhbmggZ2lhIHRhYyBkb25nIG1vaSB0cnVvbmc7IEJhIGxhIGJh biBjYW0ga2V0IGJhbyB2ZSBtb2kgdHJ1b25nLiAiTmV1IG5vaSBuaHUgDQpCbyB0cnVvbmcgQm8g VGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nIHZ1YSBub2ksIHZpIGR1IGRvaSB2b2kgZHUgYW4ga2hh aSB0aGFjIGJhdXhpdGUgbyANClRheSBOZ3V5ZW4gdGhpIGRvIG1vaSBjaGkgbGEgbHkgdGh1eWV0 IHRob2kgYm9pIHZpIG5vIGNoaSBsYSBkdSBhbiwgYmFvIGNhbyBkYW5oIGdpYSB0YWMgDQpkb25n IG1vaSB0cnVvbmcgaGF5IGJhbiBjYW0ga2V0LiBOaHVuZyBhaSBkYW0gZGFtIGJhbyB0aHVjIHRl IGtoaSBiYXQgZGF1IGtoYWkgdGhhYyANCnRoaSBubyBjb24gcGhhdCBzaW5oIG5odW5nIGdpIHZl IHZhbiBkZSBtb2kgdHJ1b25nIG51YS4gQ2hvIG5lbiB0b2kgbmdoaSBuZXUgY2hpIHF1eSANCmRp bmggbmh1bmcgZ2lhaSBwaGFwLCBjaGkgcGhpIG5heSBjaGkgZG9uZyBraHVuZyB0cm9uZyAzIHRh aSBsaWV1IGRvIHRoaSBjbyBsZSB0YXkgdGEgbGFpIGJ1b2MgdGEiLCBvbmcgSHVuZyBiYXkgdG8u IA0KDQpTYW5nIGN1bmcgbmdheSwgUUggdGhhbyBsdWFuIHRhaSB0byB2ZSBkdSBhbiBMdWF0IFBo b25nLCBjaG9uZyBtdWEgYmFuIG5ndW9pLiBZIGtpZW4gDQpjdWEgY2FjIERCUUggdGhvbmcgbmhh dCBjaG8gcmFuZyBjYW4gYmFuIGhhbmggbHVhdCBuYXksIG5odW5nIGR1IGx1YXQgbGFpIHNvYW4g dGhhbyANCnF1YSBzbyBzYWksIGtobyBjbyB0aGUgZHVhIHJhIGJpZXUgcXV5ZXQgbmV1IGtob25n IGR1b2MgdmlldCBsYWksIGJvIHN1bmcgdmEgY2hpbmggbHkgY2hpIA0KdGlldCBob24uIERCIE5n dXllbiBCYSBUaGlldSwgVHJhbiBOZ29jIFZpbmggKEhhaSBQaG9uZykgbmhhbiB4ZXQgZHUgYW4g bHVhdCBuYXkgDQp0aGlldSBuaHVuZyBjaGUgdGFpIGN1IHRoZSwgeGV0IHh1IGhheSB4dSBseSBj YWMgaGFuaCB2aSB2aSBwaGFtIHBoYXAgbHVhdCB0aGVvIGx1YXQgbmFvIA0KKEJvIGx1YXQgSGlu aCBzdSwgUGhhcCBsZW5oIEtoaWV1IG5haSB0byBjYW8sIEx1YXQgVG8gdHVuZyBoYW5oIGNoaW5o Li4uKSwgY2h1YSBjbyBxdXkgZGluaCBybyByYW5nLiANCg0KaHR0cDovL2RhbnRyaS5jb20udm4v YzIwL3MyMC00MDI5OTcvbnVvYy10aGlldC1kYW4tbmdoZW8tdmkta2hhaS1raG9hbmcuaHRtIDE3 LzA2LzIwMTAgLSAwMzoyNCAxNy8wNi8yMDEwIC0gMDM6MjQgDQoNClRodSB0dW9uZzogTnVvYyB0 aGlldCwgZGFuIG5naGVvIHZpLi4uIGtoYWkga2hvYW5nDQoNClRvbiB0aGF0IGtob2FuZyBzYW4g dGhhbiB0b2kgNDAlLCB4YW5nIGRhdSB0b2kgNTAlLiBOYW0gMjAwNSBsbyB0YXkgbmh1bmcgdmlh IHRoYW4ga2hhaSB0aGFjIGxhdSB0b2kgNDEuMDAwIGhhLiANCihOb2kgZHVuZyB0aGFvIGx1YW4g dGFpIFF1b2MgaG9pIDE2LzYvMjAxMCkNCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAwNy9DaHV5ZW4tbmh1b25nLWtoYWkta2hvYW5nLVRoYW4tdHJvbmctdm9pLXNhbi1z YXUtY2FjLWJvLTkyNDM1NC8gTGUgTmh1bmcgMDU6NTIsIDI0LzA3LzIwMTAgKEdNVCs3KQ0KDQpU aHUgdHVvbmc6IEtoYWkgdGhhYyB0YWkgbmd1eWVuIGtpZXUuLi4gY2h1IG5naGlhIHRodWMgZGFu ISANCg0KQ2h1eWVuIG5odW9uZyBraGFpIGtob2FuZyAtIE1hbmggZGF0IHBoYXQgc2luaCB0aGFt IG5odW5nIC0gVGhhbiB0cm9uZyB2b2kgJ3NhbiBzYXUnIGNhYyBibw0KDQpUaHVjIHRlLCBuaGll dSBkdSBhbiBraGFpIGtob2FuZyAidHUgdHJlbiB0cm9pIHJvaSB4dW9uZyIsIGhvaSB0aW5oIGto b25nIGJpZXQsIGhvaSBodXllbiBraG9uZyBoYXksIGhvYSByYSBkbyBjYWMgYm8gY2FwIHF1eWVu Lg0KDQpUaGVvIFRydW9uZyBCYW4gRGFuIG5ndXllbiBUcmFuIFRoZSBWdW9uZywgdmllYyBOaGEg bnVvYyBiYXQgZGVuIHhhbmggY2hvIGRvYW5oIA0KbmdoaWVwIGNodXllbiBuaHVvbmcgZ2lheSBw aGVwIGRhIHNpbmggcmEgbW90IGxvcCBuZ3VvaSBjaHV5ZW4gbG8gY2hheSBjaG90IGdpYXkgcGhl cCwgDQpidW9uIGJhbiBkdSBhbi4NCg0KVHJvbmcgdHJ1b25nIGhvcCBuaHUgdmF5LCBjYW4gcXV5 IGRpbmggZGlldSBraWVuIGN1IHRoZSBkZSBkdW9jIHBoZXAgY2h1eWVuIG5odW9uZyANCmN1bmcg bmh1IGNvIGNoZSBraWVtIHNvYXQgY2hhdCBjaGUuDQoNCkNodSBuaGllbSBVQiBQaGFwIGx1YXQg Tmd1eWVuIFZhbiBUaHVhbiB0aGkgZGUgeHVhdCBjdW9uZyBxdXlldCBkdW5nIG5nYXkgdmllYyAN Cnh1YXQga2hvYW5nIHNhbiB0aG8gdmkgImx1YXQgcGhhaSB0aGUgaGllbiB0cmFjaCBuaGllbSB2 b2kgdGhlIGhlIHNhdSBjaHUga2hvbmcgZHVvYyBxdXllbiB0YW4gdGh1IGJhbmcgaGV0Ii4NCg0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Bza3MvMjAxMDA2L0x1YXQtaG8tY2FwLXBoZXAtbmhp ZXUtdGh1LW5nYW4tc2FjaC1jaGFuZy1kdW9jLWJhby1uaGlldS05MTU5MzkvIDA3OjM2LCAxNC8w Ni8yMDEwIChHTVQrNykNCg0KVGh1IHR1b25nOiBMdWF0IGhvIC0ga2hhaSB0aGFjIG5oaWV1LCB0 aHUgbmdhbiBzYWNoIGNoYW5nIGJhbyBuaGlldSEgTyBuaGllbSBtb2kgdHJ1b25nIGRhdSBuZ3Vv biByYXQgbmdoaWVtIHRyb25nISANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3Mv UGFnZXMvMjAxMDQxLzIwMTAxMDA3MDAzNDQzLmFzcHggSGllbiBDdSAwNy8xMC8yMDEwIDA6MzQg DQoNClRodSB0dW9uZzogVGF1IGNhIFZOIGJpIGJhdCBnaXUgLSBQaGlhIFRydW5nIFF1b2MgZG9p IG5vcCA3MC4wMDAgbmhhbiBkYW4gdGUgIA0KDQpEYWkgdGEgQnVpIFBodSBQaHUgLSBQaG8gY2hp IGh1eSB0cnVvbmcgQm8gY2hpIGh1eSBCbyBkb2kgYmllbiBwaG9uZyBRdWFuZyBOZ2FpIGNobyAN CmJpZXQsIHBoaWEgVHJ1bmcgUXVvYyBkb2kgbm9wIDcwLjAwMCBuaGFuIGRhbiB0ZSAoa2hvYW5n IGhvbiAyMDMgdHJpZXUgZG9uZykgbW9pIHRoYSANCnRhdSBjYSBRTmctNjY0NzhUUyB2YSBuZ3Ug ZGFuIHRyZW4gdGF1LiANCg0KVGF1IFFOZy02NjQ3OFRTIGRvIG9uZyBNYWkgUGh1bmcgTHV1LCBv IHhhIEFuIEhhaSwgaHV5ZW4gZGFvIEx5IFNvbiAoUXVhbmcgDQpOZ2FpKSBsYW0gdGh1eWVuIHRy dW9uZywgdHJlbiB0YXUgY28gOSBsYW8gZG9uZywga2hpIGhhbmggbmdoZSBvIHZ1bmcgYmllbiB0 aHVvYyBxdWFuIA0KZGFvIEhvYW5nIFNhIGRhIGJpIHBoaWEgVHJ1bmcgUXVvYyBiYXQgZ2l1IGhv bSAxMS45IHZ1YSBxdWEuIERheSBsYSBsYW4gdGh1IDMgdGF1IGNhIA0KY3VhIG9uZyBMdXUgYmkg dGF1IG51b2MgbmdvYWkgYmF0IHZhIGdpYW0gZ2l1IGtoaSBkYW5nIGRhbmggYmF0IHRyZW4gdnVu ZyBiaWVuIHF1YW4gDQpkYW8gSG9hbmcgU2EuIA0KDQpTYW5nIDYuMTAsIHRhaSBjdW9jIGhvcCBw aGllbiB0aHVvbmcga3kgdGhhbmcgOSwgVUJORCB0aW5oIFF1YW5nIE5nYWkgY2hvIGJpZXQsIGhp ZW4gDQpjYSB0aW5oIHZhbiBjb24gMjIgdGF1LCA5OCBuZ3UgYmkgbnVvYyBuZ29haSBnaWFtIGdp dS4gIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL05ndS1kYW4tZHVv Yy1UcnVuZy1RdW9jLXRoYS12YW4tY2h1YS12ZS05NDE4OTkvIENhcCBuaGF0IGx1YyAxMDowOSwg VGh1IFR1LCAxMy8xMC8yMDEwIChHTVQrNykNCg0KVGh1IHR1b25nOiBOZ3UgZGFuIGR1b2MgVHJ1 bmcgUXVvYyB0aGEgdmFuIGNodWEgdmUgKDkgbmd1IGRhbiBiaSBUcnVuZyBRdW9jIGJhdCBnaXUg aG9tIDExLzkpDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC95ZXUtY2F1 LVRydW5nLVF1b2MtY3VuZy10aW0tOS1uZ3UtZGFuLWNodWEtdHJvLXZlLTk0MjE5OS8gWHVhbiBM aW5oIDE3OjQzLCBUaHUgTmFtLCAxNC8xMC8yMDEwIChHTVQrNykNCg0KWWV1IGNhdSBUcnVuZyBR dW9jIGN1bmcgdGltIDkgbmd1IGRhbiBjaHVhIHRybyB2ZQ0KDQotIENoaWV1IG5heSAoMTQvMTAp LCBCbyBOZ29haSBnaWFvIFZpZXQgTmFtIGRhIGd1aSBjb25nIGhhbSBkZW4gRGFpIHN1IHF1YW4g VHJ1bmcgDQpRdW9jIGRlIG5naGksIG1vdCBsYW4gbnVhLCBraWVtIHRyYSwgcGhvaSBob3AgdGlt IGtpZW0gdGF1IGNhIHZhIDkgbmd1IGRhbiBWaWV0IE5hbSBiaSANCnBoaWEgVHJ1bmcgUXVvYyBi YXQgZ2l1IHZhIHRoYSwgY2h1YSB0cm8gdmUgbmh1IGR1IGtpZW4uIA0KDQoqIFRydW5nIFF1b2Mg ZGEgdGhhIDkgbmd1IGRhbiBWaWV0IGJpIGJhdA0KKiBZZXUgY2F1IFRydW5nIFF1b2MgdGhhIHZv IGRpZXUga2llbiB0YXUgY2EgVmlldCBOYW0NCg0KTmd1b2kgcGhhdCBuZ29uIEJvIE5nb2FpIGdp YW8gTmd1eWVuIFBodW9uZyBOZ2EgdHJvbmcgY3VvYyBob3AgYmFvIHRodW9uZyBreSANCmNoaWV1 IG5heSB0YWkgSGEgTm9pIGRhIGNobyBiaWV0IHRob25nIHRpbiB0cmVuLiANCg0KVGF1IGNhIGNv IGR1IG5oaWVuIGxpZXUgZGUgdHJvIHZlPw0KDQpUaGVvIGJhIE5nYSwgaG9tIDkvMTAsIHBoaWEg VHJ1bmcgUXVvYyB0aG9uZyBiYW8gZGEgcXV5ZXQgZGluaCB0aGEgdGF1IGNhIFFOZyANCjY2NDc4 VFMgdmEgOSBuZ3UgZGFuIGN1YSB0aW5oIFF1YW5nIE5nYWkuIENoaWV1IDExLzEwLCBwaGlhIFRy dW5nIFF1b2MgdGhvbmcgYmFvIA0KdmFvIGx1YyAxM2ggY3VuZyBuZ2F5LCA5IG5ndSBkYW4gdmEg dGF1IGNhIFZpZXQgTmFtIGRhIGxlbiBkdW9uZyB2ZSBuaGEuIA0KDQpUaGVvIGR1IGtpZW4sIHRh dSBjYSB2YSA5IG5ndSBkYW4gc2UgdmUgZGVuIG5oYSB0cm9uZyB0b2kgMTIvMTAuIFR1eSBuaGll biwgZGVuIHNhbmcgDQoxMy8xMCwgZHVvYyBiaWV0IHRhdSBRTmcgNjY0NzhUUyB2YSA5IG5ndSBk YW4gdmFuIGNodWEgdmUgZGVuIG5oYSwgZGFpIGRpZW4gQm8gTmdvYWkgDQpnaWFvIFZpZXQgTmFt IGRhIGdhcCBkYWkgZGllbiBEYWkgc3UgcXVhbiBUcnVuZyBRdW9jIHlldSBjYXUgcGhpYSBUcnVu ZyBRdW9jIHBob2kgDQpob3AgdGltIGtpZW0gdGF1IGNhIHZhIG5ndSBkYW4gVmlldCBOYW0sIGRv bmcgdGhvaSBkZSBuZ2hpIHBoaWEgVHJ1bmcgUXVvYyBraWVtIHRyYSANCnhlbSBraGkgZHVvYyB0 aGEsIHRhdSBRTmcgNjY0NzhUUyAiY28gZHVvYyBjdW5nIGNhcCBkYXkgZHUgbmhpZW4gbGlldSB2 YSBjYWMgdHJhbmcgDQp0aGlldCBiaSBjYW4gdGhpZXQgZGFtIGJhbyBhbiB0b2FuIGNobyB0YXUg Y2EgdmEgbmd1IGRhbiBraG9uZyIuDQoNClRvaSAxMy8xMCwgRGFpIHN1IHF1YW4gVHJ1bmcgUXVv YyB0aG9uZyBiYW8gY2hvIEJvIE5nb2FpIGdpYW8gVmlldCBOYW0gcmFuZyBraGkgZGEgDQpxdXll dCBkaW5oIHRoYSwgInBoaWEgVHJ1bmcgUXVvYyBjaGl1IHRyYWNoIG5oaWVtIGRhbSBiYW8gYW4g dG9hbiBjaG8gdGF1IGNhIHZhIG5ndSANCmRhbiBWaWV0IE5hbS4gUGhpYSBUcnVuZyBRdW9jIGRh IGN1bmcgY2FwIGR1IG5oaWVuIGxpZXUgdmEgdHJhbmcgdGhpZXQgYmkgY2FuIHRoaWV0IGNobyAN CnRhdSBjYSBWaWV0IE5hbSB0cnVvYyBraGkgdGhhIHRhdSIuDQoNClZhbyBsdWMgMTNoIG5nYXkg MTEvMTAsIHRhdSBRTmcgNjY0NzhUUyBkYSBsZW4gZHVvbmcgdHJvIHZlLiBUdXkgbmhpZW4sIHNh dSBkbywgdGF1IA0KcXVheSB0cm8gbGFpIGRlIG5naGkgY3VuZyBjYXAgdGhlbSBuaGllbiBsaWV1 IHZhIGRhIGR1b2MgcGhpYSBUcnVuZyBRdW9jIGRhcCB1bmcuIERvIA0KZGFuZyBjbyBhcCB0aGFw IG5oaWV0IGRvaSB0cmVuIEJpZW4gRG9uZyBuZW4gVHJ1bmcgUXVvYyBraHV5ZW4gY2FvIG5ndSBk YW4gVmlldCBOYW0gDQpjbyB0aGUgbyBsYWkgdGhlbSBtb3QgdmFpIG5nYXkgbnVhIG5odW5nIG5n dSBkYW4gVmlldCBOYW0gdmFuIHF1eWV0IGRpbmggdmUgbmdheSB2YSANCmRhIGt5IGNhbSBrZXQg dHUgY2hpdSB0cmFjaCBuaGllbSB2ZSBxdXlldCBkaW5oIG5heS4gVmEgZGVuIHRvaSAxMS8xMCwg dGF1IGNhIHZhIG5ndSBkYW4gDQpWaWV0IE5hbSB2YW4gbGVuIGR1b25nIHRybyB2ZSBzYXUga2hp IGR1b2MgdGhhLg0KDQpEYWkgZGllbiBEYWkgc3UgcXVhbiBUcnVuZyBRdW9jIG5vaSBkYSBiYW8g Y2FvIHZlIG51b2MgeSBraWVuIGN1YSBCbyBOZ29haSBnaWFvIFZpZXQgDQpOYW0sIGRvbmcgdGhv aSBzZSB0aG9uZyBiYW8gY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGN1YSBUcnVuZyBRdW9jIHBob2kg aG9wIHRpbSBraWVtIA0KdGF1IGNhIHZhIG5ndSBkYW4gVmlldCBOYW0uIA0KDQpDaGlldSAxNC8x MCwgQm8gTmdvYWkgZ2lhbyBWaWV0IE5hbSBkYSBndWkgY29uZyBoYW0gZGVuIERhaSBzdSBxdWFu IFRydW5nIFF1b2MsIA0KbW90IGxhbiBudWEsIHlldSBjYXUgcGhpYSBUcnVuZyBRdW9jIHBob2kg aG9wIHRpbSBraWVtIHRhdSBRTmcgNjY0NzhUUyB2YSA5IG5ndSANCmRhbiwgbmV1IGNvIHRob25n IHRpbiB0aGkga2lwIHRob2kgdGhvbmcgYmFvIGNobyBwaGlhIFZpZXQgTmFtLiANCg0KUXVhbiB0 YW0gZ2lhIHRhbmcNCg0KVGFpIGN1b2MgaG9wIGJhbywgcGhvbmcgdmllbiB0cm9uZyB2YSBuZ29h aSBudW9jIGRhdCBjYXUgaG9pIGNobyBuZ3VvaSBwaGF0IG5nb24gQm8gDQpOZ29haSBnaWFvIHZl IHZ1IHZpZWM6IA0KDQpSZXV0ZXJzIDogTmh1bmcgdnUgdmllYyBuaHUgdGhlIG5heSBkYSBiYW8g Z2lvIHhheSByYSBjaHVhIGtoaSBtYSBuZ3UgZGFuIHRoYSB4b25nIGxhaSANCmJpIG1hdCB0aWNo PyBQaGlhIFRydW5nIFF1b2MgZGEgZ2lhaSB0aGljaCBuaHUgdGhlIG5hbyB2aWVjIHRoYSBuZ3Ug ZGFuIFZpZXQgTmFtPyBCbyANCk5nb2FpIGdpYW8gY28gdGhvYSBtYW4gc3UgaG9wIHRhYyBjdW5n IG5odSBjYXUgdHJhIGxvaSBjdWEgcGhpYSBUcnVuZyBRdW9jPw0KDQpUcnVvYyBoZXQsIG5ldSB0 cmkgbmhvIGN1YSB0b2kgdG90LCB0b2kgY2h1YSBnaGkgbmhhbiB0cnVvbmcgaG9wIG5hbyBuZ3Ug ZGFuIGRhIGR1b2MgdGhhIA0KdmUgdmEgbWF0IHRpY2ggbyB0cmVuIGR1b25nLiBOZ2F5IGtoaSBz dSB2aWVjIHhheSByYSwgVmlldCBOYW0gZGEga2hhbmcgZGluaCB2b2kgcGhpYSANClRydW5nIFF1 b2NybyBsYXAgdHJ1b25nIGN1YSBtaW5oIGxhIHZpZWMgYmF0IGdpdSB0YXUgY2EgdmEgbmd1IGRh biBWaWV0IE5hbSB0cm9uZyBraGkgDQpobyBkYW5nIGhvYXQgZG9uZyBuZ2hlIGNhIGJpbmggdGh1 b25nIHRhaSB2dW5nIGJpZW4gdGh1b2MgcXVhbiBkYW8gSG9hbmcgU2EgY3VhIFZpZXQgDQpOYW0g bGEgeGFtIHBoYW0gY2h1IHF1eWVuLCBxdXllbiBjaHUgcXV5ZW4gY3VhIFZpZXQgTmFtLCB5ZXUg Y2F1IFRydW5nIFF1b2MgdGhhIA0KbmdheSB2YSB2byBkaWV1IGtpZW4gdGF1IGNhIHZhIG5ndSBk YW4gYmkgYmF0IGdpdS4gDQoNCkhpZW4gbmF5IHBoaWEgVHJ1bmcgUXVvYyB0aG9uZyBiYW8gY2hv IGNodW5nIHRvaSBsYSBobyBkYSB0aGEgbmd1IGRhbiB2YSB0YXUgY2EgVmlldCANCk5hbS4gQ2h1 bmcgdG9pIG5naGkgdmllYyBsYW0gbmh1IHZheSBsYSBwaHUgaG9wLg0KDQpBRlA6IExpZXUgY28g Y2hhYyB0YXUgY2EgY3VhIFZpZXQgTmFtIGRhIGJhdCBkYXUgcm9pIGNhbmcgY3VhIHBoaWEgVHJ1 bmcgUXVvYyBjaHVhPyANClRhdSBkYSByb2kgY2FuZyBuYW8sIGxpZXUgY28gY2hhYyBjaGFuIGR1 b2MgdGhhIGNodWEgaGF5IHZhbiBjb24gYmkgZ2lhbSBnaXUsIHRodWEgYmE/IA0KDQpUb2kgc2Ug a2llbSB0cmEgbGFpIHZvaSBwaGlhIFRydW5nIFF1b2MgZGlhIGRpZW0gbWEgdGF1IGNhIHZhIG5n dSBkYW4gVmlldCBOYW0gZGEgcm9pIA0KZGUgbGVuIGR1b25nIHRybyB2ZSBuaGEuIEJheSBnaW8g Y2h1bmcgdGEgcGhhaSBjaG8gY2FjIG5ndSBkYW4gdmUsIG5odW5nIHBoaWEgVHJ1bmcgDQpRdW9j IGRhIHRob25nIGJhbyBjaG8gY2h1bmcgdG9pIHZhIGN1bmcgZGEga2hhbmcgZGluaCBsYWkgdm9p IGNodW5nIHRvaSBsYSB0YXUgY2EgdmEgbmd1IA0KZGFuIGRhIGR1b2MgdGhhLiANCg0KUXVhbiBk b2kgbmhhbiBkYW46IFNhdSBraGkgcGhpYSBWaWV0IE5hbSB5ZXUgY2F1IFRydW5nIFF1b2MgaG9w IHRhYyB0aW0ga2llbSB0YXUgY2EgDQp2YSBuZ3UgZGFuIFZpZXQgTmFtIGJpIG1hdCB0aWNoLCBw aGlhIFRydW5nIFF1b2MgdHJhIGxvaSByYSBzYW8/IENvbmcgdGFjIHRpbSBraWVtIGRhIA0KYmF0 IGRhdSB0cmllbiBraGFpIGNodWE/DQoNCk5odSBjYWMgYmFuIGJpZXQsIGRpIHRyZW4gYmllbiBr aG9uZyBnaW9uZyBkaSB0cmVuIGRhdCBsaWVuLiBTdSB2aWVjIG1vaSBkaWVuIHJhLiBOZXUgZHVu ZyANCnRoZW8gdGhvbmcgdGluIHBoaWEgVHJ1bmcgUXVvYyBjdW5nIGNhcCwgdG9pIDExLzEwLCBj YWMgbmd1IGRhbiBsZW4gZHVvbmcgdHJvIHZlLCBuZXUgDQpkdW9uZyBkaSBiaW5oIHRodW9uZyB0 aGkgY3VuZyBwaGFpIHRvaSBuZ2F5IDEyLzEwLCBjbyB0aGUgdG9pIG11b24sIGhvYWMgdHJvbmcg bmdheSANCjEzLzEwLCBjYWMgbmd1IGRhbiBtb2kgY28gdGhlIHZlIGRlbiBuaGEuIA0KDQpEZW4g c2FuZyAxMy8xMCwga2hpIGNodWEgdGhheSB0YXUgY2EgdmEgbmd1IGRhbiB0cm8gdmUsIEJvIE5n b2FpIGdpYW8gVmlldCBOYW0gZGEgZ2FwIA0KRGFpIHN1IHF1YW4gVHJ1bmcgUXVvYyBkZSB5ZXUg Y2F1IHhhYyBtaW5oIHRob25nIHRpbiB2YSBkYSB5ZXUgY2F1IFRydW5nIFF1b2MgcGhvaSANCmhv cCB0aW0ga2llbS4gVmEgcGhpYSBUcnVuZyBRdW9jIGNobyBiaWV0IGRhIHRob25nIGJhbyB2ZSBu dW9jIHkga2llbiBjdWEgQm8gTmdvYWkgDQpnaWFvLCBkb25nIHRob2kgc2UgdGhvbmcgYmFvIGNh YyBjbyBxdWFuIGNodWMgbmFuZyBjdWEgVHJ1bmcgUXVvYyBwaG9pIGhvcCB0aW0ga2llbSANCnRh dSBjYSB2YSBuZ3UgZGFuIFZpZXQgTmFtLiBDaHVuZyB0YSBzZSB0aWVwIHR1YyB0aGVvIGRvaSBz dSB2aWVjIHZhIGNodW5nIHRvaSBoeSB2b25nIA0KY28gdGhvbmcgdGluIHRvdCBsYW5oIHRob25n IGJhbyBjaG8gY2FjIGJhbi4gDQoNClJldXRlcnM6IExpZXUgY29uIGNvIG5ndSBkYW4gVmlldCBO YW0gbmFvIGJpIFRydW5nIFF1b2MgZ2lhbSBoaWVuIG5heSBraG9uZz8gQ28gDQpiYW8gbmhpZXUg dGF1IGNhIHZhIG5ndSBkYW4gVmlldCBOYW0gdHVuZyBnYXAgdmFuIGRlIG5odSB0aGUgbmF5IHRy b25nIHF1YSBraHU/IEJhIGxhIA0Kbmd1b2kgbGFtIHZpZWMgdHJvbmcgQm8gTmdvYWkgZ2lhbyBs YXUgbmFtLCB0aGVvIGJhIHRpbmggaGluaCBuYXkgaGllbiBuYXkgZGFuZyB0cm8gbmVuIA0KeGF1 IGRpIGhheSBraGEgaG9uPw0KDQpUaGVvIHRob25nIHRpbiBjaHVuZyB0b2kgY28gZGVuIHRob2kg ZGllbSBoaWVuIHRhaSwgVHJ1bmcgUXVvYyBraG9uZyBjb24gZ2lhbSBnaXUgbmd1IA0KZGFuIG5h byBjdWEgVmlldCBOYW0uIFRvaSBiaWV0IHBob25nIHZpZW4gdGhpY2ggc3Ugc28gc2FuaC4gTmh1 bmcga2UgY2EgdG9pIGRhIGxhbSB2aWVjIA0KbyBCbyBOZ29haSBnaWFvIGhvbiAyMCBuYW0gdGhp IGRvaSB2b2kgdG9pIHNvIHNhbmggbmh1IHZheSBraG9uZyBwaGFpIGRlLiANCg0KQ2h1bmcgdG9p IGN1bmcgY28gbmh1bmcgc28gbGlldSB0aG9uZyBrZSBuaHVuZyBzbyBsaWV1IGRvIGtob25nIGR1 b2MgYmFvIGRhbSBjaGFjIA0KY2hhbiAxMDAlIHZpIGNvIG5odW5nIHRydW9uZyBob3AgYmkgdGFt IGdpdSwgbmd1IGRhbiB0cm8gdmUgbmdheSwgdGhhbSBjaGkgY28ga2hpIA0KY2hpbmggcXV5ZW4g ZGlhIHBodW9uZywgY2hpbmggcXV5ZW4gdHJ1bmcgdW9uZyBraG9uZyBkdW9jIHRob25nIGJhby4g Q28gbmh1bmcgDQp0cnVvbmcgaG9wIG5ndSBkYW4gYmkgZ2l1IGxhdSBob24gdmEgcGhhaSB0cmFp IHF1YSBkYXUgdHJhbmggbmdvYWkgZ2lhbywgcXVhIG5oaWV1IGxhbiANCmdpYW8gdGhpZXAgZ2l1 YSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIGhhaSBiZW4gdGhpIG5ndSBkYW4gbW9pIGR1b2Mg dHJvIHZlLiBDbyBtb3QgDQpkaWV1IHRvaSBjbyB0aGUga2hhbmcgZGluaCB2b2kgcGhvbmcgdmll biBsYSBzdSBxdWFuIHRhbSBkZW4gbmh1bmcgdnUgdmllYyBuaHUgdGhlIG5heSANCnRhbmcgbGVu IHJhdCBuaGlldSB0cm9uZyB0aG9pIGdpYW4gZ2FuIGRheS4NCg0KRGllbiBiaWVuIHZ1IHZpZWMg dHUgMTEvOSBkZW4gY2hpZXUgMTQvMTA6IA0KDQotIDExLzk6IFRydW5nIFF1b2MgYmF0IGdpdSB0 YXUgY2Egc28gaGlldSBRTmcgNjY0NzhUUyBjdW5nIDkgbmd1IGRhbiBWaWV0IE5hbSB0YWkgDQp2 dW5nIGJpZW4gdGh1b2MgcXVhbiBkYW8gSG9hbmcgU2EuIA0KDQotIFNhdSBraGkgbmhhbiBkdW9j IHRob25nIHRpbiwgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIFZpZXQgTmFtIGRhIHRpZW4gaGFuaCB4 YWMgbWluaCB2YSANCmR1b2MgYmlldCB0YXUgY2EgY3VuZyA5IG5ndSBkYW4gbGEgY3VhIHRpbmgg UXVhbmcgTmdhaSwgZGFuZyBob2F0IGRvbmcgbmdoZSBjYSBiaW5oIA0KdGh1b25nIHRhaSB2dW5n IGJpZW4gdGh1b2MgcXVhbiBkYW8gSG9hbmcgU2EgY3VhIFZpZXQgTmFtLiBLaGkgZGkgZGFuaCBi YXQsIHRhdSBjYSBjaGkgDQptYW5nIHRoZW8gY2FjIG5ndSBjdSBkYW5oIGJhdCB0aG9uZyB0aHVv bmcgbmh1IGx1b2ksIGRlbiBzb2kgY2EuLi4NCg0KLSBCbyBOZ29haSBnaWFvIFZpZXQgTmFtIGRh IG5oaWV1IGxhbiBsYW0gdmllYyB2b2kgcGhpYSBUcnVuZyBRdW9jIHZlIHZhbiBkZSBuYXkgbyAN Cm5oaWV1IGNhcCBraGFjIG5oYXUgdGFpIEhhIE5vaSB2YSBCYWMgS2luaC4gVHJvbmcgZG8sIGNv IDQgbGFuIG8gY2FwIHRodSB0cnVvbmcgdm9pIERhaSANCnN1IFRydW5nIFF1b2MgdGFpIFZpZXQg TmFtLCAxIGxhbiBndWkgY29uZyBoYW0gZGVuIERhaSBzdSBxdWFuIFRydW5nIFF1b2MgdGFpIFZp ZXQgDQpOYW0sIG5vaSBybyB2aWVjIGJhdCBnaXUgdGF1IGNhIHZhIG5ndSBkYW4gVmlldCBOYW0g dHJvbmcga2hpIGhvIGRhbmcgaG9hdCBkb25nIG5naGUgDQpjYSBiaW5oIHRodW9uZyB0YWkgdnVu ZyBiaWVuIHRodW9jIHF1YW4gZGFvIEhvYW5nIFNhIGN1YSBWaWV0IE5hbSBsYSBoYW5oIGRvbmcg eGFtIA0KcGhhbSBuZ2hpZW0gdHJvbmcgY2h1IHF1eWVuLCBxdXllbiBjaHUgcXV5ZW4gY3VhIFZp ZXQgTmFtLCB5ZXUgY2F1IHBoaWEgVHJ1bmcgDQpRdW9jIHRoYSBuZ2F5IHZhIHZvIGRpZXUga2ll biB0YXUgY2EgUU5nIDY2NDc4VFMgdmEgOSBuZ3UgZGFuIG5vaSBkYW5nIGJpIGJhdCBnaXUuIA0K DQotIDkvMTA6IFRydW5nIFF1b2MgcXV5ZXQgZGluaCB0aGEgdGF1IGNhIFFOZyA2NjQ3OFRTIHZh IDkgbmd1IGRhbiBjdWEgdGluaCBRdWFuZyANCk5nYWkuIER1IGtpZW4gdGF1IGNhIHZhIDkgbmd1 IGRhbiB2ZSBkZW4gbmhhIHRvaSAxMi8xMC4gVHV5IG5oaWVuLCBkZW4gY2hpZXUgMTQvMTAsIHRh dSANCmNhIHZhIG5ndSBkYW4gdmFuIGNodWEgdHJvIHZlLiANCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQyLzIwMTAxMDE0MjM1NTU0LmFzcHggVHJ1b25nIFNv biAgSGllbiBDdSAxNC8xMC8yMDEwIDIzOjU1IA0KDQpOZ29uZyBjaG8gOSBuZ3UgZGFuIHRybyB2 ZSANCg0KKiBUb2kgMTEuMTAsIHRhdSBjYSB2YSBuZ3UgZGFuIFZOIGRhIGxlbiBkdW9uZyB0cm8g dmU/DQoqIEJvIE5nb2FpIGdpYW8geWV1IGNhdSBwaGlhIFRydW5nIFF1b2MgcGhvaSBob3AgdGlt IGtpZW0gdGF1IFFOZy02NjQ3OFRTIHZhIDkgbmd1IGRhbiBWTiANCg0KTWFjIGR1IGNhYyBjbyBx dWFuIGNodWMgbmFuZyBvIFF1YW5nIE5nYWkgZGEgdGltIG1vaSBjYWNoIGxpZW4gbGFjIHZvaSB0 YXUgY2EgUU5nLQ0KNjY0NzhUUyBjdW5nIDkgbmd1IGRhbiBvIGh1eWVuIGRhbyBMeSBTb24sIHRo ZW8gdGhvbmcgdGluIGRhIGR1b2MgVHJ1bmcgUXVvYyB0aGEgdm8gDQpkaWV1IGtpZW4gaG9tIDEx LjEwLCBuaHVuZyBkZW4gdG9pIHF1YSB0YXUgY2EgdmEgOSBuZ3UgZGFuIG5heSB2YW4gYmF0IHRh bS4NCg0KKEFuaDogQmEgUGhhbSBUaGkgTGFuIGxvIGxhbmcgY2hvIHNvIHBoYW4gY2hvbmcgY29u IC0gQW5oOiBIaWVuIEN1KQ0KDQpNYXQgaG9hbiB0b2FuIGxpZW4gbGFjIA0KDQpUaGVvIHRpbmgg dG9hbiBjdWEgY2FjIGxhbyBuZ3UgbyBodXllbiBkYW8gTHkgU29uLCBuZXUgZHVvYyB0aGEsIHRh dSBjYSBRTmctNjY0NzhUUyANCmRvIG9uZyBNYWkgUGh1bmcgTHV1ICh4YSBBbiBIYWkpIGxhbSB0 aHV5ZW4gdHJ1b25nIGN1bmcgY2FjIG5ndSBkYW4gZGkgdHJlbiB0YXUgc2UgdmUgDQpkZW4gTHkg U29uIHZhbyBkZW0gMTIgaG9hYyBjaGFtIG5oYXQgbGEgbmdheSAxMy4xMC4gU29uZyBzYXUgaGFp IG5nYXkgbW9uIG1vaSBkb2kgY2hvIA0Kbmh1bmcgdmFuIGNoYW5nIHRoYXkgdGFtIGhvaSwgZ2lh IGRpbmggdmEgbmd1b2kgdGhhbiBjYWMgbmd1IGRhbiB0cmVuIGRhbyBsdW9uIA0KdHJvbmcgdGlu aCB0cmFuZyB0aGFwIHRob20sIGxvIGF1LiBCYSBQaGFtIFRoaSBMYW4gKGNvbiBnb2kgbGEgYmEg RG9pLCB2byBjdWEgdGh1eWVuIA0KdHJ1b25nIEx1dSkgbmh1IG5nb2kgdHJlbiBsdWEsIGxvIGxh bmcga2hvbmcgYmlldCBzbyBwaGFuIGN1YSBjaG9uZyBjdW5nIGhhaSBjb24gDQp0cmFpIE1haSBD aGkgVGFtLCBNYWkgVmFuIEhhbyB2YSBjb24gcmUgQnVpIFZhbiBNaW5oIGdpbyByYSBzYW8uDQog DQooQW5oOiBDaGlldSAxNC4xMCwgbmhpZXUgbmd1IGRhbiBMeSBTb24gcmEgYmVuIG1vbiBtb2kg Y2hvIG5ndW9pIHRoYW4gdHJvIHZlIEFuaDogDQpIaWVuIEN1KQ0KDQpTdW90IDIgbmdheSBxdWEs IGR1IGdpYSBkaW5oIGNhYyBuZ3UgZGFuIG8gTHkgU29uIG5oaWV1IGxhbiBnb2kgZGllbiB0aG9h aSBkaSBkb25nLCBjYWMgDQptYXkgSWNvbSB0cmVuIGRhbyBsaWVuIHR1YyAibm9pIHNvbmciIHZh IHRob25nIGJhbyB2b2kgY2FjIHRhdSBjYSBraGFjIGRhbmcgZGFuaCBiYXQgDQpvIG5ndSB0cnVv bmcgSG9hbmcgU2EgZGUgdGltIGtpZW0gbmh1bmcgdmFuIGtob25nIGxpZW4gbGFjIGR1b2Mgdm9p IHRhdSBjYSBRTmctDQo2NjQ3OFRTLiBEZW4gY2hpZXUgMTQuMTAsIGNhYyBjbyBxdWFuIGNodWMg bmFuZyBvIFF1YW5nIE5nYWkgY3VuZyBuZ3VvaSB0aGFuIGN1YSANCmNhYyBuZ3UgZGFuIHZhbiBr aG9uZyBiaWV0IHRhdSBjYSBRTmctNjY0NzhUUyBjdW5nIDkgbmd1IGRhbiBkYW5nIG8gZGF1LiAg DQoNCkhvaSAxNiBnaW8gY2hpZXUgMTQuMTAgKGdpbyBIYSBOb2kpLCB0cmEgbG9pIFBWIFRoYW5o IE5pZW4gcXVhIGRpZW4gdGhvYWksIG9uZyBOZ3V5ZW4gDQpUaGUgVHVuZywgY2FuIGJvIFBob25n IENoaW5oIHRyaSBEYWkgc3UgcXVhbiBWTiB0YWkgVHJ1bmcgUXVvYywgY2hvIGJpZXQgaGllbiB2 YW4gDQpjaHVhIGNvIHRob25nIHRpbiBnaSB2ZSB0aW5oIGhpbmggY3VhIDkgbmd1IGRhbiBWTiB2 YSB0YXUgUU5nLTY2NDc4VFMuIA0KDQpUaGVvIG9uZyBOZ3V5ZW4gVGhlIFR1bmcsIHRyb25nIGNh YyB2dSBiYXQgZ2l1IHRhdSBjYSBjdWEgbmd1IGRhbiBWTiB0cnVvYyBkYXksIGNvIA0KdHJ1b25n IGhvcCBkYWkgZGllbiBWTiBuaGFuIGJhbiBnaWFvIG5ndSBkYW4gdHUgcGhpYSBUUSB2YSBjdW5n IGNvIHRydW9uZyBob3AgcGhpYSANClRRIHRoYSB2YSBuZ3UgZGFuIHR1IHRybyB2ZS4gVHJvbmcg dnUgdmllYyBsYW4gbmF5LCBwaGlhIFRRIGtob25nIGJhbiBnaWFvIG1hIGNoaSANCnRob25nIGJh byBsYSBkYSB0aGEgY2FjIG5ndSBkYW4uIE9uZyBUdW5nIGNobyBiaWV0IGhpZW4gRGFpIHN1IHF1 YW4gVk4gbyBUUSB2YW4gdGllcCANCnR1YyB5ZXUgY2F1IHBoaWEgVFEgcGhvaSBob3AgdGltIGtp ZW0gdmEgdGhvbmcgdGluIGNobyBwaGlhIFZOIHZlIHRpbmggaGluaCB0YXUgUU5nLQ0KNjY0NzhU UyB2YSA5IG5ndSBkYW4gVk4uIChOZ3V5ZW4gUGhvbmcpICANCg0KVHJhbyBkb2kgdm9pIFBWIFRo YW5oIE5pZW4sIG9uZyBWbyBYdWFuIEh1eWVuLCBDaHUgdGljaCBVQk5EIGh1eWVuIEx5IFNvbiwg bm9pOiANCiJLaG9uZyBjbyB0aG9uZyB0aW4gZ2kgY2EuIE1pdCBtdS4gQ2hpbmggcXV5ZW4gZGlh IHBodW9uZyB2YSBuZ3UgZGFuIGRhbmcgbG8gc290IHZvIi4NCiBPbmcgSHV5ZW4gbmhhbiBkaW5o LCBjbyB0aGUgaG8ga2hvbmcgY29uIHBodW9uZyB0aWVuIGxpZW4gbGFjLCBrZSBjYSBtYXkgSWNv bSBuZW4gaG8gDQpraG9uZyB0aGUgYmFvIHZlIGNobyBnaWEgZGluaCB2YSBjYWMgY28gcXVhbiBj aHVjIG5hbmcuICJOZXUgbmh1IHRoZSwgIGhvIGJ1b2MgcGhhaSBkbyANCmRhbSB0aW0gZHVvbmcg dHJvIHZlIHRyb25nIGtoaSB0aG9pIHRpZXQgdHJlbiBiaWVuIHJhdCB4YXUsIG5ldSB0YXUgZ2Fw IHN1IGNvIHRoaSB0aW5oIG1hbmcgDQpjdWEgaG8gYmkgZGUgZG9hIiwgb25nIEh1eWVuIG5vaS4N Cg0KTmdheSB0cm9uZyBjaGlldSAxNC4xMCwgVUJORCB0aW5oIFF1YW5nIE5nYWkgY28gY29uZyB2 YW4gaG9hIHRvYyBndWkgVXkgYmFuIFF1b2MgDQpnaWEgdGltIGtpZW0gY3V1IG5hbiB2YSBDdWMg TGFuaCBzdSAtIEJvIE5nb2FpIGdpYW8gY28gYmllbiBwaGFwIHRvIGNodWMgdGltIGtpZW0gY3V1 IA0KbmFuLiANCg0KVHUgY2h1IHRhdSB0aGFuaCBjb24gbm8gdmkgYmkgVHJ1bmcgUXVvYyBiYXQN Cg0KVHJ1b2MgZG8sIHJhdCBuaGlldSB0cnVvbmcgaG9wIHRhdSBjYSBRdWFuZyBOZ2FpIGN1bmcg cm9pIHZhbyB0aW5oIGNhbmgga2hvbiBraG8ga2hpIGJpIA0KcGhpYSBUcnVuZyBRdW9jIGJhdCBn aXUuIERvIGxhIHNhdSBraGkgdGhhIHRhdSwgdGhhIG5ndSBkYW4gbmh1bmcgcGhpYSBUcnVuZyBR dW9jIGxhaSANCnRpY2ggdGh1IHRvYW4gYm8gbmd1IGx1b2kgY3UsIG1heSBJY29tLCBkaW5oIHZp IHZhIHRhbSBuZ3UsIGNoaSBjaHVhIGR1IG5oaWVuIGxpZXUgY2hvIGhvIA0KY2hheSB0dSBxdWFu IGRhbyBIb2FuZyBTYSB2ZSBkZW4gUXVhbmcgTmdhaS4gRGllbiBoaW5oIG5odSB0YXUgY2EgUU5n LTk1MDMxVFMsIA0KY29uZyBzdWF0IDEwNSBDViBjdWEgb25nIE5ndXllbiBUYW4gTHUgKDU3IHR1 b2ksIG8geGEgQmluaCBDaGF1LCBILkJpbmggU29uKSwgdHJlbiANCnRhdSBjbyAxMyBsYW8gZG9u ZyBiaSBUcnVuZyBRdW9jIGJhdCBnaXUgbmdheSAxLjguMjAwOS4gS2hpIGR1b2MgdGhhIHZlIHRo aSBjaGllYyB0YXUgDQpjaGkgY29uIGxhIGNhaSB4YWMuIE9uZyBMdSBrZSBzYXUgMTIgbmdheSBn aWFtIGdpdSwgdHJ1b2Mga2hpIHRoYSB2ZSwgcGhpYSBUcnVuZyBRdW9jIA0KYmF0IG5ndSBkYW4g a3kgZ2lheSwgbGFuIHRheSAodG9hbiB0aWVuZyBUcnVuZyBRdW9jKSBuaHVuZyB0aWNoIHRodSBj YSBtYXkgSWNvbSwgZGluaCB2aSANCnZhIHRhbSBuZ3UgY2hpIGNvbiBkdSBzbyBkYXUgdmUgZGVu IG5vaS4gIkNodW5nIHRvaSBwaGFpIGRvIGRhbSBwaHVvbmcgaHVvbmcgYmFuZyANCmtpbmggbmdo aWVtIGJhbyBuaGlldSBuYW0gZGkgYmllbiwgZG8gZGFtIHRyZW4gYmllbiBzdW90IGdhbiA0MCBn aW8gZG9uZyBobyBtb2kgdHJvIHZlIA0KbmhhIGFuIHRvYW4gZGF5LiBOZXUgbmh1IGx1YyBkbyBi aWVuIGRvbmcsIGNoYXkgY2hlY2ggbW90IGNodXQgbGEgaGV0IGRhdSB0aGkgY2h1YSBiaWV0IA0K c28gcGhhbiBjdWEgdHVpIHR1aSByYSBzYW8iLCB0aHV5ZW4gdHJ1b25nIEx1IG5obyBsYWkuDQoN CkRhIHR1bmcgYmkgcGhpYSBUcnVuZyBRdW9jIHRhbiBjb25nLCBiYXQgZ2l1IDQgbGFuIHRyb25n IHZvbmcgY2h1YSBkYXkgNSBuYW0gcXVhLCBuZ3UgDQpkYW4gVGlldSBWaWV0IExhICh0aG9uIENo YXUgVGh1YW4gQmllbiwgeGEgQmluaCBDaGF1LCBILkJpbmggU29uKSB2YW4gY2h1YSBoZXQgYW0g DQphbmguIE9uZyBMYSBjaG8gYmlldCBraG9uZyBjaGkgYmkgdGljaCB0aHUgdGF1LCBuZ3UgbHVv aSBjdSwgdGhvbmcgdGluIGxpZW4gbGFjLCBkb2kgdGllbiANCmNodW9jIG1hIG1vaSBsYW4gYmkg YmF0IGdpYW0gZ2l1LCBwaGlhIFRydW5nIFF1b2MgY29uIGRvaSB4dSB0aG8gYmFvLCBhbiB1b25n IGtoYW0gDQpraG8uICJBaSBhbiBuaGFuaCB0aGkgZHVvYyAyIGNoZW4gY29tLCBjaGFtIHRoaSBj aGkgY29uIDEgY2hlbi4gUXVhbiBhbyBjaGkgY29uIG1vdCBibyANCnRyZW4gbmd1b2kgbmVuIHRh bSB4b25nIGxvIGdpYXQsIG1hYyBsYWkgbmdheSIsIG9uZyBMYSBrZS4gRG8gYmkgVHJ1bmcgUXVv YyA0IGxhbiBiYXQgDQpnaXUsIGdpYSBkaW5oIG9uZyBMYSBoaWVuIHRybyB0aGFuaC4uLiBjb24g bm8gdm9pIHNvIHRpZW4gbGVuIGRlbiBob24gNjAwIHRyaWV1IGRvbmcuIA0KDQpUaGVtIG1vdCBu Z2F5IGRhaSBob24gdGhlIGt5IG51YSB0cm9pIHF1YS4gTmhpZXUgZ2lhIGRpbmggbmd1IGRhbiBv IEx5IFNvbiBtb24gbW9pIA0KY2hvIGNob25nLCBjb24gbGFpIHRoYXQgdGhldSB0cm8gdmUgbmhh IHZvaSB0YW0gdHJhbmcgZGF5IGxvIGxhbmcuIE5nb2FpIGtob2ksIGJpZW4gdmFuIA0KbXUgbWl0 LiBNdWEgdmFuIHhvaSB4YS4gVGF1IGNhIFFOZy02NjQ3OFRTIGN1bmcgOSBuZ3UgZGFuIGtob25n IGJpZXQgbyBodW9uZyBuYW8uDQoNCkJvIE5nb2FpIGdpYW8geWV1IGNhdSBwaGlhIFRydW5nIFF1 b2MgcGhvaSBob3AgdGltIGtpZW0gdGF1IFFOZy02NjQ3OFRTIHZhIDkgbmd1IA0KZGFuIFZOIA0K DQpIb20gcXVhIDE0LjEwLCB0cmEgbG9pIGNhdSBob2kgY3VhIHBob25nIHZpZW4gZGUgbmdoaSBj aG8gYmlldCB0aG9uZyB0aW4gdmUgdGF1IGNhIFFOZy0NCjY2NDc4VFMgY3VuZyA5IG5ndSBkYW4g Vk4gYmkgcGhpYSBUcnVuZyBRdW9jIGJhdCBnaXUgbmdheSAxMS45LjIwMTAgdGFpIHZ1bmcgYmll biANCnRodW9jIHF1YW4gZGFvIEhvYW5nIFNhIGN1YSBWTiwgbmd1b2kgcGhhdCBuZ29uIEJvIE5n b2FpIGdpYW8gVk4gTmd1eWVuIFBodW9uZyANCk5nYSBjaG8gYmlldDogVGhlbyB0aG9uZyBiYW8g Y3VhIHBoaWEgVHJ1bmcgUXVvYywgOSBuZ3UgZGFuIHZhIHRhdSBjYSBWTiBkYSBsZW4gDQpkdW9u ZyB2ZSBuaGEgbHVjIDEzIGdpbyBuZ2F5IDExLjEwLjIwMTAuIERlbiBzYW5nIDEzLjEwLCBkdW9j IGJpZXQgdGF1IFFOZy02NjQ3OFRTIA0KdmEgOSBuZ3UgZGFuIHZhbiBjaHVhIHZlIGRlbiBuaGEs IEJvIE5nb2FpIGdpYW8gZGEgZ2FwIERhaSBzdSBxdWFuIFRydW5nIFF1b2MgdmEgeWV1IA0KY2F1 IHBoaWEgVHJ1bmcgUXVvYyBwaG9pIGhvcCB0aW0ga2llbSB0YXUgY2EgdmEgbmd1IGRhbiBWTiwg ZG9uZyB0aG9pIGRlIG5naGkgcGhpYSANClRydW5nIFF1b2Mga2llbSB0cmEgeGVtIGtoaSBkdW9j IHRoYSB0YXUgUU5nLTY2NDc4VFMgY28gZHVvYyBjdW5nIGNhcCBkYXkgZHUgDQpuaGllbiBsaWV1 IHZhIGNhYyB0cmFuZyB0aGlldCBiaSBjYW4gdGhpZXQgZGFtIGJhbyBhbiB0b2FuIGNobyB0YXUg Y2EgdmEgbmd1IGRhbiBraG9uZy4gDQoNCkN1bmcgdGhlbyBiYSBOZ2EsIHRvaSAxMy4xMCwgZGFp IGRpZW4gRGFpIHN1IHF1YW4gVHJ1bmcgUXVvYyB0aG9uZyBiYW86IFBoaWEgVHJ1bmcgDQpRdW9j IGRhIGN1bmcgY2FwIGR1IG5oaWVuIGxpZXUgdmEgdHJhbmcgdGhpZXQgYmkgY2FuIHRoaWV0IGNo byB0YXUgY2EgVk4gdHJ1b2Mga2hpIHRoYSB0YXUuIA0KVmFvIGx1YyAxMyBnaW8gbmdheSAxMS4x MCwgdGF1IFFOZy02NjQ3OFRTIGRhIGxlbiBkdW9uZyB0cm8gdmUsIG5odW5nIHNhdSBkbyB0YXUg DQpxdWF5IHRybyBsYWkgZGUgbmdoaSBjdW5nIGNhcCB0aGVtIG5oaWVuIGxpZXUgdmEgZGEgZHVv YyBwaGlhIFRydW5nIFF1b2MgZGFwIHVuZy4gRG8gDQpkYW5nIGNvIGFwIHRoYXAgbmhpZXQgZG9p IHRyZW4gYmllbiBEb25nIG5lbiBwaGlhIFRydW5nIFF1b2MgZGEga2h1eWVuIGNhbyBuZ3UgZGFu IA0KVk4gY28gdGhlIG8gbGFpIHRoZW0gbW90IHZhaSBuZ2F5IG51YSwgbmh1bmcgbmd1IGRhbiBW TiB2YW4gcXV5ZXQgZGluaCB2ZSBuZ2F5IHZhIGRhIA0Ka3kgY2FtIGtldCB0dSBjaGl1IHRyYWNo IG5oaWVtIHZlIHF1eWV0IGRpbmggbmF5LiBUb2kgMTEuMTAsIHRhdSBjYSB2YSBuZ3UgZGFuIFZO IGRhIGxlbiBkdW9uZyB0cm8gdmUuIA0KDQpDaGlldSAxNC4xMCwgQm8gTmdvYWkgZ2lhbyBWTiBk YSBndWkgY29uZyBoYW0gZGVuIERhaSBzdSBxdWFuIFRydW5nIFF1b2MgdGFpIFZOIA0KbW90IGxh biBudWEgeWV1IGNhdSBwaGlhIFRydW5nIFF1b2MgcGhvaSBob3AgdGltIGtpZW0gdGF1IFFOZy02 NjQ3OFRTIHZhIDkgbmd1IGRhbiANClZOOyBuZXUgY28gdGhvbmcgdGluIGdpIHRoaSBraXAgdGhv aSB0aG9uZyBiYW8gY2hvIHBoaWEgVk4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwNDIvMjAxMDEwMTYwMTA0MzEuYXNweCBCYW4gQ1RCRCAodG9uZyBob3Ap IEhpZW4gQ3UgLSBRLkR1YW4gLSBILlRyYSAxNi8xMC8yMDEwIDE6MDQgDQoNClRodSB0dW9uZzog Q2FuIGh1eSBkb25nIG1vaSBsdWMgbHVvbmcgdGltIGtpZW0gbmd1IGRhbiANCiAgDQpQaG8gdGh1 IHR1b25nIFBoYW0gR2lhIEtoaWVtIGRhIGNoaSBkYW8gY2FjIGJvLCBuZ2FuaCBjaHVjIG5hbmcg dmEgZGlhIHBodW9uZyBodXkgDQpkb25nIG1vaSBsdWMgbHVvbmcgdGltIGtpZW0gOSBuZ3UgZGFu IG1hIFRydW5nIFF1b2MgdGhvbmcgYmFvIGRhIHRoYSB2ZS4gVHV5IG5oaWVuIA0KZGVuIDIzIGdp byBob20gcXVhLCBUcnVuZyB0YW0gUGhvaSBob3AgdGltIGtpZW0gY3V1IG5hbiBoYW5nIGhhaSBr aHUgdnVjIDIgdmFuIGNodWEgbmhhbiBkdW9jIGxlbmggZGlldSB0YXUgcmEga2hvaS4uLiANCg0K RGVuIHRvaSBxdWEgMTUuMTAsIHZhbiBjaHVhIGNvIHRob25nIHRpbiBnaSB2ZSB0YXUgY2EgUU5n LTY2NDc4VFMgY3VuZyA5IG5ndSBkYW4gbyANCmh1eWVuIGRhbyBMeSBTb24gbWEgVHJ1bmcgUXVv YyB0aG9uZyBiYW8gZGEgdGhhIGhvbSAxMS4xMC4gDQoNCihBbmg6IEJhIE5ndXllbiBUaGkgWGkg bG8gbGFuZyBjaG8gdGluaCBtYW5nIGN1YSBjaG9uZyAtIEFuaDogSGllbiBDdSkgDQoNCkx5IFNv biBub25nIHJ1b3QNCg0KS2hvbmcga2hpIGJ1b24gYmEgYmFvIHRydW0gbGVuIGRhbyBMeSBTb24u IERpIGRlbiBkYXUgY3VuZyBuZ2hlIG5ndW9pIGRhbiBob2kgdmEgYnVjIA0KeHVjOiAiU2FvLCBj byB0aG9uZyB0aW4gZ2kgdmUgOSBhbmggZW0gbmd1IGRhbiBraG9uZy4gQmFvIGdpbyB2ZSBkZW4g ZGFvPyIuLi4gQmEgDQpOZ3V5ZW4gVGhpIFhpIC0gdm8gY3VhIGxhbyBuZ3UgTmd1eWVuIERhbmcg KDYzIHR1b2kpIC0gbmd1IGRhbiBuaGlldSB0dW9pIG5oYXQgdHJvbmcgDQpzbyA5IG5ndSBkYW4g ZGkgdHJlbiB0YXUgY2EgUU5nLTY2NDc4VFMsIGN1IGNodWMga2hvYyBvYTogIk5naGUgbm9pIGR1 b2MgdGhhIG1heSBidWEgDQpyb2kgbWEgZ2lvIGNodWEgZGVuIG5vaSBsYSBzYW8gaG9pIHRyb2ku IENhYyBjbyBxdWFuIG5oYSBudW9jIG1hIGtob25nIG1hdSBjaG9uZyB0aW0gDQpraWVtIHRoaSBi aWVuIGRvbmcgbmh1IHRoZSBuYXksIHRpbmggbWFuZyBjdWEgbWF5IG5ndSBkYW4gZGkgdHJlbiB0 YXUgbmd1eSB0byIuIA0KDQpEYXQgdmFuIGRlIG5heSB2b2kgb25nIFZvIFh1YW4gSHV5ZW4gLSBD aHUgdGljaCBVQk5EIGh1eWVuIEx5IFNvbiwgb25nIEh1eWVuIHJhdSANCnJpIGNobyByYW5nLCB2 aWVjIHRvIGNodWMgdGltIGtpZW0gdGF1IGNhIFFOZy02NjQ3OFRTIGN1bmcgOSBuZ3UgZGFuIGN1 YSBkaWEgcGh1b25nIA0KbGEgdnVvdCBxdWEgdGFtIGN1YSBodXllbiBuZW4gY2hpIG5obyBVQk5E IHRpbmggUXVhbmcgTmdhaSB2YSBjYWMgY28gcXVhbiBjaHVjIA0KbmFuZyBvIFRydW5nIHVvbmcu IFRoZW8gb25nIE5ndXllbiBYdWFuIEh1ZSAtIENodSB0aWNoIFVCTkQgdGluaCBRdWFuZyBOZ2Fp OiB2aWVjIA0KdGF1IGNhIFFOZy02NjQ3OFRTIGN1bmcgOSBuZ3UgZGFuIEx5IFNvbiBkdW9jIFRy dW5nIFF1b2MgdGhvbmcgYmFvIHRoYSBob20gMTEuMTAgDQpuaHVuZyBkZW4gY2hpZXUgdG9pIDE1 LjEwIHZhbiBjaHVhIHZlIGRlbiBkaWEgcGh1b25nIGxhIGRpZXUgYmF0IHRodW9uZywgYm9pIA0K dGhvbmcgdGh1b25nIHRhdSBjYSBjaGF5IHR1IEhvYW5nIFNhIHZlIGRlbiBMeSBTb24gY2hpIG1h dCAyIG5nYXkgMSBkZW0uIA0KDQpDYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIHRpbmggUXVhbmcg TmdhaSBkZW4gZ2lvIGN1bmcgY2hpIGR1bmcgbWF5IEljb20gbGllbiBsYWMgDQp2b2kgdGF1IGNh IFFOZy02NjQ3OFRTIGRvbmcgdGhvaSB5ZXUgY2F1IGNhYyB0YXUgY2EgUXVhbmcgTmdhaSBkYW5n IGRhbmggYmF0IHRyZW4gDQpraHUgdnVjIGJpZW4gcXVhbiBkYW8gSG9hbmcgU2EgdGltIGtpZW0s IGN1dSBoby4gTmh1bmcgdG9pIG5heSwgdmFuIGtob25nIGxpZW4gbGFjIA0KZHVvYyB2b2kgdGF1 IG5heS4gSG8gbWF0IHRpY2ggaG9hbiB0b2FuLg0KDQpUcm9uZyBraGkgZG8sIGhvbSBxdWEgMTUu MTAsIGRvYW4gY29uZyB0YWMgY3VhIEJvIE5nb2FpIGdpYW8gZG8gb25nIEJ1aSBRdW9jIFRoYW5o IC0gDQpDdWMgdHJ1b25nIEN1YyBMYW5oIHN1IChCbyBOZ29haSBnaWFvKSBjdW5nIGRhIGxhbSB2 aWVjIHZvaSBVQk5EIHRpbmggUXVhbmcgTmdhaSANCmRlIHRob25nIGJhbyBtb3Qgc28gdmFuIGRl IGxpZW4gcXVhbiBkZW4gdmllYyB0aW0ga2llbSB0YXUgY2EgUU5nLTY2NDc4VFMgY3VuZyA5IG5n dSANCmRhbiBvIGh1eWVuIGRhbyBMeSBTb247IGNoaWEgc2Ugbmh1bmcgbG8gbGFuZyBtYSBuZ3Ug ZGFuIEx5IFNvbiBkYW5nIGNoaXUgZHVuZyBzdW90IA0Kbmh1bmcgbmdheSBxdWEsIGRvbmcgdGhv aSB0cmFvIHRhbmcgMTAgdHJpZXUgZG9uZyBkZW4gY2FjIGdpYSBkaW5oIG5ndSBkYW4gZGkgdHJl biB0YXUgY2EgDQpub2kgdHJlbi4gDQoNClRoZW8gQm8gTmdvYWkgZ2lhbywgY2hpZXUgMTUuMTAs IHRhaSBjdW9jIGdhcCBnaXVhIGRhaSBkaWVuIERhaSBzdSBxdWFuIFZOIHRhaSBUUSB2YSANCmRh aSBkaWVuIEJvIE5nb2FpIGdpYW8gVFEsIHBoaWEgVFEgY2hvIGJpZXQsIHR1IGNoaWV1IDE0LjEw LCBjYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIA0KVFEgZGEgdHJpZW4ga2hhaSBjb25nIHRhYyB0 aW0ga2llbSBiYW5nIHRhdSB0dWFuIHRyYSB0aGVvIHR1eWVuIGR1b25nIG1hIHRhdSBjYSBRdWFu ZyANCk5nYWkgZHUga2llbiB2ZSBudW9jLiBUdSBjaGlldSBxdWEgMTUuMTAsIHBoaWEgVHJ1bmcg UXVvYyBkYSB0cmllbiBraGFpIHRoZW0gY29uZyB0YWMgDQp0aW0ga2llbSBiYW5nIG1heSBiYXkg dHJ1YyB0aGFuZyB2YSBzZSB0aG9uZyBiYW8gY2hvIHBoaWEgVk4gbmdheSBzYXUga2hpIGNvIGtl dCBxdWEuDQoNCkh1eSBkb25nIG1vaSBsdWMgbHVvbmcgdGltIGtpZW0gDQoNCk5nYXkgMTUuMTAs IHRyb25nIHZhbiBiYW4gZ3VpIFRvbmcgY3VjIFRodXkgc2FuIChCbyBOTiAtIFBUTlQpLCBIb2kg TmdoZSBjYSBWTiBkYSANCmRlIG5naGkgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIFZOIGNhbiBjbyBi aWVuIHBoYXAgcGhvaSBob3AgdG8gY2h1YyB0aW0ga2llbSB0YXUgY2EgDQpRTmcgNjY0NzggVFMg Y3VuZyA5IG5ndSBkYW4sIHRhbyBkaWV1IGtpZW4gZ2l1cCBkbyB0aGFuIG5oYW4gY3VhIGNhYyBu Z3UgZGFuIGRlIGJhIA0KY29uIHllbiB0YW0gdGllcCB0dWMgc2FuIHh1YXQuDQoNCkNoaWV1IGN1 bmcgbmdheSwgUGhvIHRodSB0dW9uZyBDaGluaCBwaHUgUGhhbSBHaWEgS2hpZW0gZGEgY2h1IHRy aSBjdW9jIGhvcCB2b2kgY2FjIA0KYm8sIG5nYW5oIHZlIHZpZWMgdGllcCB0dWMgdGltIGtpZW0s IGN1dSBobyBjdXUgbmFuIHRhdSBjYSBRTmcgNjY0NzggVFMgdmEgOSBuZ3UgZGFuLiANCg0KTmd1 b24gdGluIHR1IEJvIE5nb2FpIGdpYW8gY2hvIGJpZXQsIHRhaSBjdW9jIGhvcCwgUGhvIHRodSB0 dW9uZyBQaGFtIEdpYSBLaGllbSBuaGFuIA0KbWFuaCwgRGFuZyB2YSBOaGEgbnVvYyBoZXQgc3Vj IHF1YW4gdGFtIGRlbiBzdSB2aWVjIG5heS4gVHJvbmcgdGhvaSBkaWVtIGhpZW4gbmF5LCANCm5o aWVtIHZ1IHF1YW4gdHJvbmcgbmhhdCBsYSB0YXAgdHJ1bmcgdGltIGtpZW0sIGN1dSBkYW4uIFBo byB0aHUgdHVvbmcgY2hpIGRhbyBjYWMgYm8sIA0KbmdhbmggY2h1YyBuYW5nIHZhIGRpYSBwaHVv bmcgaHV5IGRvbmcgbW9pIGx1YyBsdW9uZywgYmFvIGdvbTogaGFpIHF1YW4sIGJpZW4gcGhvbmcs IA0KY2FuaCBzYXQgYmllbiwgbHVjIGx1b25nIGN1dSBobyBjdXUgbmFuLCB0YXUgdGh1eWVuIGRh biBzdSB0aGFtIGdpYSB0aW0ga2llbSB0YXUgUU5nIA0KNjY0NzggVFMgdmEgOSBuZ3UgZGFuLiBC byBOZ29haSBnaWFvIHRpZXAgdHVjIHlldSBjYXUgcGhpYSBUcnVuZyBRdW9jIHBob2kgaG9wIHRp bSANCmtpZW0gdmEgdGFvIGRpZXUga2llbiB0aHVhbiBsb2kgY2hvIGNvbmcgdmllYyBjdXUgaG8g Y3V1IG5hbiBjdWEgcGhpYSBWTi4gQm8gTk4tDQpQVE5ULCBVQk5EIHRpbmggUXVhbmcgTmdhaSBj byBoaW5oIHRodWMgaG8gdHJvIGdpYSBkaW5oIGNhYyBuZ3UgZGFuLiANCg0KSG9tIHF1YSwgVXkg YmFuIFF1b2MgZ2lhIFRpbSBraWVtIGN1dSBuYW4gZGEgcGhhdCB0aG9uZyBiYW8gdGltIGtpZW0g Y3V1IG5hbiBoYW5nIA0KaGFpIHZlIHRhdSBjYSBRTmcgNjY0NzggVFMuIFRydW9jIGRvIG1vdCBu Z2F5LCBVeSBiYW4gUXVvYyBnaWEgdGltIGtpZW0gY3V1IG5hbiANCmN1bmcgZGEgZGUgbmdoaSBC byBUdSBsZW5oIEJvIGRvaSBiaWVuIHBob25nIHRob25nIGJhbyBjaG8gYmllbiBwaG9uZyBjYWMg dGluaCB2YSANCnRoYW5oIHBobyB2ZW4gYmllbiB2YSBuZ3UgZGFuIFZOIGRhbmcgaG9hdCBkb25n IHRyZW4gYmllbiBEb25nIHBob2kgaG9wIHRpbSBraWVtIHRhdSANCnZhIGNhYyBuZ3UgZGFuLg0K DQpUdXkgY28gbmh1bmcgZG9uZyB0aGFpIG5odSB2YXksIG5odW5nIGRlbiAyMyBnaW8gdG9pIHF1 YSwgb25nIFRyYW4gVmFuIExvbmcgLSBHaWFtIA0KZG9jIFRydW5nIHRhbSBQaG9pIGhvcCB0aW0g a2llbSBjdXUgbmFuIGhhbmcgaGFpIGtodSB2dWMgMiAtIE1SQ0MgRGEgTmFuZyBjaG8gDQpiaWV0 LCB0cnVuZyB0YW0gdmFuIGNodWEgbmhhbiBkdW9jIGxlbmggZGlldSBjYWMgdGF1IGN1dSBuYW4g Y3VhIE1SQ0MgRGEgTmFuZyByYSANCmtob2kgdGhhbSBnaWEgdGltIGtpZW0gdGF1IGNhIFFOZyA2 NjQ3OC9UUyBjdWEgbmd1IGRhbiBRdWFuZyBOZ2FpLg0KDQpDYW4gY28gbmh1bmcgaGFuaCBkb25n IHRpY2ggY3VjDQoNCkJhaSB2aWV0IE5nb25nIGNobyA5IG5ndSBkYW4gdHJvIHZlIGRhbmcgdHJl biBUaGFuaCBOaWVuIHNvIHJhIG5nYXkgMTUuMTAgZGEgbmhhbiANCmR1b2MgbmhpZXUgeSBraWVu IHBoYW4gaG9pLiBOaGlldSBiYW4gZG9jIGJheSB0byBzdSB4b3QgeGEsIG1vbmcgbW9pLCBuaHVu ZyBjdW5nIGNvIA0KbmhpZXUgeSBraWVuIHlldSBjYXUgTmhhIG51b2MgY2FuIHBoYWkgY28gaGFu aCBkb25nIGN1IHRoZS4NCg0KQ2FuIGNvIGNoaW5oIHNhY2ggaG8gdHJvIGNobyBuZ3UgZGFuIA0K DQpUb2kgdGhhdCBzdSB0aGF5IGxvIGxhbmcgY3VuZyB2b2kgY2FjIGdpYSBkaW5oIGN1YSBuZ3Ug ZGFuLCBraGkgYmlldCB0aW4gY2FjIG5ndSBkYW4gZGEgDQpkdW9jIHRoYSBtYSB2YW4gY2h1YSB2 ZSBkZW4gbmhhLiBUb2kgY3VuZyBsbyBsYW5nIGtoaSBiaWV0IGhvIGRhIGRhdSB0dSB2b24gbGll bmcgZGUgbGFtIA0Ka2luaCB0ZSB2YXkgbWEgZ2lvIHRybyB0aGFuaCB0cmFuZyB0YXkgdmEgbm8g bmFuIGNoaSB2aSBuaHVuZyBseSBkbyBoZXQgc3VjIHBoaSBseS4gVG9pIA0KdGhpZXQgbmdoaSBO aGEgbnVvYyB0YSBwaGFpIGNvIGNoaW5oIHNhY2ggaG8gdHJvIGNobyBjYWMgZ2lhIGRpbmggbmd1 IGRhbi4gVmllYyBobyBkZW4gDQpIb2FuZyBTYSBkYW5oIGJhdCBjYSBjdW5nIGxhIG1vdCBkb25n IHRoYWkga2hhbmcgZGluaCBjaHUgcXV5ZW4gY3VhIFZOLiBOZXUgTmhhIA0KbnVvYyBkZSBtYWMg Y2FjIGdpYSBkaW5oIG5ndSBkYW4gZ2FuaCBjaGl1IGhldCBtb2kgcnVpIHJvIHRoaSBob2kgc2F1 IG5heSBjb24gYWkgZGFtIA0KcmEgdnVuZyBiaWVuIEhvYW5nIFNhIGRlIGRhbmggYmF0IG51YSBr aG9uZy4gDQpOZ3V5ZW4gVmFuIENhbiAobmd1eWVudmFuY2FuMThAeWFob28uY29tLnZuKQ0KDQpD b24gbmd1b2kgbGEgdGh1IHRhaSBzYW4gcXV5IG5oYXQNCg0KQ2hpbGUgZGEgZ2lhaSBjdXUgdGhh bmggY29uZyAzMyB0aG8gbW8ga2V0IGR1b2kgZG8gc2F1IDcwMG0uIERpZXUgZG8gY2hvIHRoYXkg ZHVvYyBzdSANCnF1YW4gdGFtIGR1bmcgbXVjIGN1YSBjYWMgbmhhIGxhbmggZGFvIENoaWxlLCB2 YSBjdW5nIGNobyB0aGF5IHJhbmcgc2luaCBtYW5nIGNvbiANCm5ndW9pIGxhIHRodSBxdXkgZ2lh IG5oYXQsIGNvbmcgZGFuIGN1YSBobyBjdW5nIGxhIHRhaSBzYW4gcXVvYyBnaWEuIFRyb25nIGto aSBkbywgOSBuZ3UgDQpkYW4gVmlldCBOYW0gYmkgVHJ1bmcgUXVvYyBiYXQgZ2l1IHZhIGtoaSBo byB0aGEgdmEgdGhvbmcgYmFvIGNobyBEYWkgc3UgcXVhbiBWaWV0IE5hbSANCnRhaSBUcnVuZyBR dW9jLCB0aGUgbmh1bmcgZGVuIHRob2kgZGllbSBuYXkgOSBzaW5oIG1hbmcgY29uIG5ndW9pIFZp ZXQgTmFtIA0Ka2hvbmcgYmlldCBzb25nIGNoZXQgdGhlIG5hby4gDQpOZ3V5ZW4gVGhvbmcgTWlu aCAoVFAgQ2FuIFRobykgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTA0Mi8yMDEwMTAxNjE2MzMwNi5hc3B4IFRyaSBRdWFuZyAtIEguQyAxNi8xMC8yMDEwIDE1 OjQwIA0KDQo5IG5ndSBkYW4gTHkgU29uIGRhbmcgbyBkYW8gVHJ1IENhdSwgSG9hbmcgU2E/ICAN CiAgDQooVE5PKSBTYXUgbmhpZXUgbGFuIGxpZW4gbGFjIHF1YSBkaWVuIHRob2FpLCBkYXUgZ2lv IHRydWEgbmF5ICgxNi4xMCkgY2h1bmcgdG9pIGRhIGdhcCANCmR1b2MgY28gTWFpIFRoaSBIdWUs IGNvbiBnYWkgb25nIE1haSBQaHVuZyBMdXUgLSB0aHV5ZW4gdHJ1b25nIHRhdSBjYSBRTmctNjY0 NzggVFMgDQpiaSBtYXQgdGljaCBtYXkgbmdheSBxdWEsIHZhIGR1b2MgY28gSHVlIGNobyBiaWV0 IGtob2FuZyAxMiBnaW8gNDAgdHJ1YSBuYXkgb25nIEx1dSANCmRhIGdvaSBkaWVuIHZlIGNobyBj byB2YSBub2kgcmFuZyB0YXUgUU5nLTY2NDc4IFRTIGJpIGNoZXQgbWF5LCBtb2kgbmd1b2kgZGFu ZyBvIGRhbyANClRydSBDYXUsIEhvYW5nIFNhLiANCg0KIkhpZW4gbmF5IHRhdSBjdWEgYmEgdG9p IGJpIGNoZXQgbWF5LCBkYW5nIG5lbyBsYWkgZGFvIFRydSBDYXUgKGhheSBjb24gZ29pIGxhIGRh byBQaHUgDQpMYW0sIHRodW9jIHF1YW4gZGFvIEhvYW5nIFNhLCBWaWV0IE5hbSAtIFBWKS4NCg0K QmEgdG9pIG5vaSBraG9uZyBkdW9jIG5oaWV1LCBjaGkgbmhvIHRvaSBjaHV5ZW4gbG9pIGxhaSBj aG8gY28gcXVhbiBjaHVjIG5hbmcgbyBWaWV0IA0KTmFtIGNobyB0YXUgY3V1IGhvIHJhIGRhbyBU cnUgQ2F1IGRlIGtlbyB0aHV5ZW4gdmUgZ2l1cC4NCg0KSGllbiBnaW8gdGhpIHRpbmggaGluaCBz dWMga2hvZSBjdWEgYmEgdG9pIHZhIGNhYyB0aHV5ZW4gdmllbiBkZXUga2hvZSBtYW5oLCBraG9u ZyBhaSBiaSANCmdpIGhldCIsIGNvIE1haSBUaGkgSHVlIGNobyBiaWV0IHF1YSBkaWVuIHRob2Fp Lg0KDQpDYWMgY28gcXVhbiBjaHVjIG5hbmcgUXVhbmcgTmdhaSB2YW4gY2h1YSBkdWEgcmEgY2Fj IHRob25nIHRpbiBjaGluaCB0aHVjIHZlIHZpZWMgbmF5IA0KdmEgY2hvIGJpZXQgZGFuZyB0aWVu IGhhbmggeGFjIG1pbmguDQoNCkNodW5nIHRvaSBzZSB0aWVwIHR1YyB0aG9uZyB0aW4gZGVuIGJh biBkb2Mgbmh1bmcgZGllbiBiaWVuIG1vaSBuaGF0IHZlIHZ1IDkgbmd1IGRhbiBMeSBTb24gbWF0 IHRpY2ggbmF5LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDQxLzIwMTAxMDA3MTc1NjEzLmFzcHggTmd1eWVuIFR1IDA3LzEwLzIwMTAgMTc6NTYgDQoNClNv bmcgZGFuaCB0cm9pIGRhdCB0YXUsIGJhIG5ndSBkYW4gbWF0IHRpY2ggIA0KICANCihUTk8pIFRy dW5nIHRhbSBQaG9uZyBjaG9uZyBsdXQgYmFvIEtodSB2dWMgbWllbiBUcnVuZyAtIFRheSBOZ3V5 ZW4gY2hvIGJpZXQsIHZhbyANCnNhbmcgbmF5IDcuMTAsIHRhdSBjYSBRTmcgLSA0NDUzMyBjdWEg bmd1IGRhbiBQaGFtIEhvaSAodGhvbiBUaGFjaCBCaSAxLCB4YSBQaG8gDQpUaGFuaCwgaHV5ZW4g RHVjIFBobywgUXVhbmcgTmdhaSkgdHJvbmcgbHVjIG5lbyBkYXUgdGFpIGNhbmcgU29uZyBHaWFu aCAoUXVhbmcgDQpCaW5oKSB0aGkgYmkgc29uZyBkYW5oIHRyb2kgZGF0LiANCkJhIG5ndSBkYW4g TWFpIFh1YW4gVHUgKDQ1IHR1b2kpLCBNYWkgSGlldSAoMjEgdHVvaSksIE5ndXllbiBWYW4gUXVh ICg1NSB0dW9pLCANCmN1bmcgdHJ1IHRob24gVGhhY2ggQmkgMSkgdGhlbyB0YXUgbWF0IHRpY2gu IA0KDQpDdW5nIGx1YyBkbywgdGF1IGNhIFFOZyAtIDQ5NzY5IFRTIGN1YSBvbmcgRG9uZyBWaWV0 IExvbmcgKDYxIHR1b2ksIHRydSBQaG8gUXVhbmcsIA0KRHVjIFBobywgUXVhbmcgTmdhaSkga2hp IG5lbyBkYXUgdGFpIFNvbmcgR2lhbmggKFF1YW5nIEJpbmgpIHRoaSBiaSBtb3QgcGh1b25nIHRp ZW4gDQp0YXUgc2F0IChjaHVhIHJvIHRlbiB2YSBzbyBoaWV1KSB0b25nIGR1dCBkYXkgbmVvIGto aWVuIHRhdSBvbmcgTG9uZyBiaSBtYWMgY2FuLg0KDQpOZ29haSByYSwgaGFpIHRhdSBjYSBRTmcg LSAxMTE1MSBjdWEgb25nIE5ndXllbiBDaHVhICh0cnUgeGEgVGluaCBLeSwgaHV5ZW4gU29uIA0K VGluaCwgUXVhbmcgTmdhaSkgdmEgdGF1IFFOZyAtIDk0MzE5IGN1YSBvbmcgUGhhbSBWYW4gRW0g KHRydSB4YSBQaG8gVGhhbmgsIGh1eWVuIA0KRHVjIFBobywgUXVhbmcgTmdhaSkgYmkgY2hldCBt YXkgbyB2dW5nIGJpZW4gUXVhbmcgQmluaCwgdHV5IG5oaWVuIGNhYyB0YXUgbmF5IA0KZGEga2hh YyBwaHVjIHN1IGNvIHZhIHRyZW4gZHVvbmcgdHJvIHZlIGRhdCBsaWVuLg0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDIvMjAxMDEwMTcwMTU0MTQuYXNweCBU cnVvbmcgU29uIEhpZW4gQ3UgTWluaCAxNy8xMC8yMDEwIDE6NTQgDQoNClRpbSBkdW9jIHR1bmcg dGljaCA5IG5ndSBkYW4gIA0KDQoqIENhdSBjaHV5ZW4gYnVvbiBjdWEgY29uIGdhaSB0aHV5ZW4g dHJ1b25nIA0KDQpDaGlldSBxdWEgMTYuMTAsIG5pZW0gdnVpLCBuaWVtIGhhbmggcGh1YyBuZ2Fw IHRyYW4gZG9pIHZvaSBuZ3UgZGFuIGh1eWVuIGRhbyBMeSBTb24gDQooUXVhbmcgTmdhaSkga2hp IG5oYW4gZHVvYyB0aG9uZyB0aW4gdGF1IGNhIFFOZy02NjQ3OCBjdW5nIDkgbmd1IGRhbiB2YW4g YmluaCBhbiBzYXUgDQpuaGlldSBuZ2F5IGJhdCB0aW4gdHVjLiANCg0KKEFuaCBjaHVwOiBOZ2hl IHRpbiBjb24sIGNoYXUgY29uIHNvbmcsIG5odW5nIHZhbiBjaHVhIGhldCBidW9uIGxvIC0gQW5o OiBQLkEpIA0KDQoiR2lvbmcgYmEgYnVvbiBsYW0uLi4iIA0KDQpDaGlldSAxNi4xMCwgY2h1bmcg dG9pIHRpbSBnYXAgZHVvYyBjaGkgTWFpIFRoaSBCaWNoIEh1ZSAoc2luaCBuYW0gMTk5MCksIGto aSBjaGkgZGFuZyANCmJvYyBoYW5oLCB0b2kgdGh1ZSB0YWkgbW90IGNvbiBoZW0gbmhvIHRyZW4g ZHVvbmcgUGhhbiBIdXkgSWNoLCBQLjEyLCBRLkdvIFZhcCwgDQpUUC5IQ00uIFZ1YSBnYXAgY2h1 bmcgdG9pLCBIdWUgbm9pIHRyb25nIG51b2MgbWF0OiAiRW0ga2hvbmcgbmdvIGR1b2MgbmdoZSBn aW9uZyANCmN1YSBiYSB2YW8gY2hpZXUgbmF5LiBUaGF0IGtobyB0aW4uIEJ1YSBnaW8sIGNhIG5o YSBjdSBuZ2hpIHJhbmcgc2Uga2hvbmcgY29uIGdhcCBsYWkgYmEsIA0KaGFpIGVtIHZhIGNob25n IGVtIG51YSEiLg0KDQpSb2kgY2hpIEh1ZSBrZSBsYWkgdm9pIGdpb25nIHh1YyBkb25nOiAiVnVh IGRpIGxhbSBwaHUgaG8gdmUgZGVuIG5oYSB0cm8ga2hvYW5nIDEgZ2lvIA0KY2hpZXUsIGRhbmcg ZG9uIGNvbSBhbiwgYm9uZyBlbSBuaGFuIGR1b2MgY3UgZGllbiB0aG9haSBtYW5nIHNvIGxhOiAw MDg3MDc2MzY3MjQ5NyANCmdvaSB2YW8gZGllbiB0aG9haSBkaSBkb25nLiBMaW5oIHRpbmggY28g Y2h1eWVuIHhheSByYSwgZW0gaG9pIGhvcCBjYW0gbWF5IG5naGUgbWEgdGltIA0Kbmh1IG11b24g cm90IHJhIG5nb2FpLiBCYSBjdSBnb2kgdGVuIGVtIGhvYWk6IEh1ZSBoYSEgQmEgZGF5IG1hISBE dW5nIHJvaSwgZG8gbGEgZ2lvbmcgDQpjdWEgYmEuLi4iLiANCg0KVHJvbmcgY29uIHh1YyBkb25n IGRlbiB0b3QgZG8sIGNoaSBraG9uZyBub2kgZHVvYyBsb2kgbmFvLCBtYSBjaGkgbmdoZSBvIGRh dSBkYXkgYmVuIA0Ka2lhLCBiYSBub2kgdm9pIGdpb25nIGJ1b24gbGFtOiBTYXUga2hpIGR1b2Mg VHJ1bmcgUXVvYyB0aGEgdmUgdmFvIG5nYXkgMTEuMTAsIG1vaSANCm5ndW9pIGxpZW4gcXVheSBo dW9uZyB0cm8gdmUgbmhhLiBOaHVuZyBkbyB0YXUgYmkgY2hldCBtYXkgbmVuIGxlbmggZGVuaCB0 cmVuIGJpZW4gcm9pIA0KdGF1IFRydW5nIFF1b2MgbGFpIGRhbiB2ZSBUcnUgQ2F1ICh0aHVvYyBx dWFuIGRhbyBIb2FuZyBTYSwgVk4pLg0KDQoiQmEgY2hpIGNvIG5vaSB0YWkgc2FvIG1heSBuZ2F5 IHF1YSBraG9uZyBsaWVuIGxhYyB2ZSB2b2kgZ2lhIGRpbmggaGF5IGRhdCBsaWVuIFZOPyIsIA0K Y2h1bmcgdG9pIGhvaS4gQ2hpIEh1ZSB0aG9uIHRodWM6ICJCYSBub2kga2hpIGJpIFRydW5nIFF1 b2MgYmF0IGdpdSBobyBkYSB0aHUgZ2l1IGRvIA0KZGFjLCBsYXkgaGV0IG1heSBibyBkYW0gdGhp IHNhbyBsaWVuIGxhYyBkdW9jIHZvaSBhaSEgS2hpIGJhIGJpIGJhdCBsYWkgc2F1IGtoaSB0aGEg dGhpIGJhIA0Kbm9pIGhvIGNobyBiYSBnb2kgZGllbiB0aG9haSB2ZSBuaGEgdmFpIHBodXQgZGUg YmFvIHRpbi4gRG8gZGllbiB0aG9haSBvIG5oYSBtYSBiaSBodSANCmtob25nIHRoZSBsaWVuIGxh YyBkdW9jIG5lbiBiYSBnb2kgY2hvIGVtIi4gDQoNCkNoaSBIdWUga2UgdGllcDogIkJhIGN1IG5v aSB0b2ksIG5vaSBsdWkgcmFuZyBzdWMga2hvZSBjdWEgYmEsIGhhaSBlbSB2YSB0aGFuZyBNaW5o IA0KKGNob25nIGNoaSBIdWUgLSBQVikgZGV1IGtob2UgbWFuaCwga2hvbmcgYWkgYmkgZ2kgaGV0 LiBOb2kgbWEgdmEgY2EgbmhhIGN1IHllbiB0YW0gdmEgDQpsaWVuIGhlIHZvaSBjYWMgY28gcXVh biBjaHVjIG5hbmcgZHVhIHRhdSBjdXUgaG8gcmEgVHJ1IENhdSBkYXQgYmEgdmEgbW9pIG5ndW9p IHZlIA0KbmhhIi4gDQoNCkNoaSBIdWUgY2hvIGJpZXQsIHRydW9jIGRheSBnaWEgZGluaCBjaGkg Y3VuZyBraGEgZ2lhIG5obyB2YW8gbmdoZSBkYW5oIGNhIGN1YSBiYS4gDQpLaG9hbmcgbmFtIDIw MDMsICB0YXUgZGFuaCBjYSBjdWEgYmEgY3UgYmkgcGhpYSBUcnVuZyBRdW9jIGJhdCBnaXUgbGll biB0dWMgZGVuIDMtNCBsYW4gDQpuZW4gZ2lhIGRpbmggc3V5IHN1cCBkYW4uIENoaSBIdWUgbm9p IG1heSBsYW4gdHJ1b2MgYmkgVHJ1bmcgUXVvYyBiYXQsIGNvIHF1YW4gY2h1YyANCm5hbmcgVk4g Y2FuIHRoaWVwIHRoaSBjaGkga2hvYW5nIG51YSB0aGFuZyBzYXUgbGEgdGF1IGN1YSBiYSBjaGkg ZHVvYyB0aGEgdmUsIGNodSBraG9uZyANCmJpIG1hdCB0aWNoIGxhdSBuaHUgbGFuIG5heS4gDQoN ClR1IHNvIGRpZW4gdGhvYWkgYmEgZ29pIHZlLCBjaGkgSHVlIGNobyBiaWV0IGRhIG5oaWV1IGxh biBsaWVuIGxhYyBsYWkgZGUgbW9uZyBuZ2hlIGdpb25nIA0Kbm9pIGN1YSBiYSwgaGFpIGVtIHZh IGNob25nLCBuaHVuZyBraG9uZyB0aGUgbmFvIGxpZW4gbGFjIGR1b2MuICJOZ2hlIGdpb25nIGJh IGJ1b24gYmEsIA0KZW0gdGhheSB0aHVvbmcgYmEgcXVhLiBUcnVvYyBraGkgZGkgYmllbiwgYmEg Y29uIHlldSBkbyBiaSB0ZSB4ZSwgbmh1bmcgYmEgdmFuIGRpIGJpZW4gDQpkZSBraWVtIHRpZW4g bnVvaSBnaWEgZGluaCIsIGNoaSBIdWUgbGFpIGtob2MuLi4gDQoNClRydW9jIGtoaSBjaGlhIHRh eSBjaHVuZyB0b2ksIGNoaSBIdWUga2hhbiB0aGlldCBkZSBuZ2hpIHF1YSBiYW8gVGhhbmggTmll biBuaG8gY2FjIGNvIHF1YW4gDQpodXUgcXVhbiBWTiBuaGFuaCBjaG9uZyBnaXVwIGRvLCBzb20g ZHVhIG5ndW9pIHRoYW4gY3VhIGNoaSB2ZSBkYXQgbGllbiBhbiB0b2FuLiANCg0KaHR0cDovL3d3 dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDE5MDE0MzEwLmFzcHgg UXVhbmcgRHVhbiAxOS8xMC8yMDEwIDE6NDMgDQoNCjMgcGh1b25nIGFuIGR1YSA5IG5ndSBkYW4g dmFvIGJvICANCiAgDQpIb20gcXVhIDE4LjEwLCB0YWkgY3VvYyBob3AgZ2lhbyBiYW4gdHJ1YyB0 dXllbiB0cmllbiBraGFpIGNhYyBiaWVuIHBoYXAgZG9pIHBobyB2b2kgYmFvIA0KbHUsIEJvIHRy dW9uZyBCbyBOTi1QVE5UIENhbyBEdWMgUGhhdCBkYSBkZSBuZ2hpIGNvIHF1YW4gY2h1YyBuYW5n IFZpZXQgTmFtIA0KeWV1IGNhdSBwaGlhIFRydW5nIFF1b2MgdGllcCB0dWMgY3VuZyBjYXAgZGF5 IGR1IG5odSB5ZXUgcGhhbSBjaG8gOSBuZ3UgZGFuIHRyZW4gDQp0YXUgY2EgUU5nLTY2NDc4VFMs IGRvIG9uZyBNYWkgUGh1bmcgSGlldSBsYW0gY2h1IHRhdSwgZGUgY2FjIG5ndSBkYW4gdHJ1IHRy YW5oIGJhbyBNZWdpIGFuIHRvYW4gdHJlbiBkYW8uIA0KDQpEYWkgZGllbiBVeSBiYW4gUXVvYyBn aWEgdGltIGtpZW0gY3V1IG5hbiBjaG8gYmlldCwgaGllbiB0YXUgY2EgUU5nLTY2NDc4VFMgZGFu ZyBiaSANCmh1IGhvbmcgbmFuZy4gSGllbiBjbyAzIHBodW9uZyBhbiBkZSBkdWEgOSBuZ3UgZGFu IHZhIHRhdSBjYSBuYXkgdmUgZGF0IGxpZW4uIA0KDQpNb3QgbGEsIHBoaWEgVHJ1bmcgUXVvYyBw aG9pIGhvcCB2b2kgY2h1IHRhdSBraGFjIHBodWMgc3UgY28gY3VhIHRhdSBRTmctNjY0NzhUUywg DQpraGkgdGhvaSB0aWV0IHRodWFuIGxvaSB0aGkgdGFvIGRpZXUga2llbiBjaG8gbmd1IGRhbiB0 YSB2YW8gYm8uIEhhaSBsYSwgdGF1IGR1b2Mga2hhYyBwaHVjIA0KeG9uZyBuaHVuZyBraG9uZyBk YW0gYmFvIGFuIHRvYW4sIHlldSBjYXUgcGhpYSBUcnVuZyBRdW9jIHRob25nIGJhbyBxdWEgZHVv bmcgDQpuZ29haSBnaWFvIHRydW9jIDQgbmdheSB0cnVvYyBraGkgdGF1IGNhIFFOZy02NjQ3OFRT IHJvaSBkYW8gdmUgZGF0IGxpZW4gZGUgY2FjIHRhdSBjYSANCmN1YSBuZ3UgZGFuIHRhIGRhbmcg aG9hdCBkb25nIGdhbiBkbyBob2FjIHRhdSBoYWkgcXVhbiBWaWV0IE5hbSBkb24gdmUuIFRodSBi YSwgaGFpIA0KYmVuIGRvbmcgeSBkZSB0YXUgVmlldCBOYW0gdmFvIGRhbyBkdWEgbmd1IGRhbiB2 YSB0YXUgY2EgY3VhIG9uZyBIaWV1IHZlIFF1YW5nIE5nYWkuDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAxODAxMDUyMy5hc3B4IEhpZW4gQ3Ug MTgvMTAvMjAxMCAxOjA1IA0KDQpUaHUgdHVvbmcgliBOZ29haSBnaWFvOiBEaWEgcGh1b25nIGRh bmcgY2hvICJ0aW4gaGlldSIgY3V1IGRhbiAgDQogIA0KVGF1IGNhIFFOZy02NjQ3OFRTIGN1bmcg OSBuZ3UgZGFuIG5hbSB0YWkgZGFvIFRydSBDYXUgZGFuZyBjYXUgY3V1IGNhYyBjbyBxdWFuIA0K Y2h1YyBuYW5nIHNvbSBkdWEgaG8gdHJvIHZlIGRvYW4gdHUgdm9pIGdpYSBkaW5oLiBEbyB2YXkg dmFuIGRlIGRhdCByYSBsYSBjbyBxdWFuIG5hbyANCmNoaXUgdHJhY2ggbmhpZW0gdmllYyBjdXUg aG8/IA0KDQpEZSBjYXAgdmFuIGRlIG5heSwgY2hpZXUgaG9tIHF1YSBvbmcgVm8gWHVhbiBIdXll biwgQ2h1IHRpY2ggVUJORCBodXllbiBMeSBTb24sIA0KY2hvIHJhbmcgZHUgcmF0IG11b24gdGF1 IGNhIFFOZy02NjQ3OFRTIGN1bmcgOSBuZ3UgZGFuIHNvbSB0cm8gdmUgZGF0IGRhbyBuaHVuZyAN Cmh1eWVuIGxhaSBraG9uZyBjbyB0aGFtIHF1eWVuLCBjaGkgbW9uZyBjaG8gVUJORCB0aW5oIFF1 YW5nIE5nYWkgdmEgY2FjIG5nYW5oIA0KY2h1YyBuYW5nIG8gVC5VLiBUaGVvIG9uZyBIdXllbiwg bmV1IGR1b2MgY2hhcCB0aHVhbiBjdWEgY2FwIHRyZW4sIFVCTkQgaHV5ZW4gTHkgDQpTb24gc2Ug bGFwIHR1YyBkaWV1IDIgdGF1IGNhIHJhIEhvYW5nIFNhIGR1YSBuZ3UgZGFuIHRybyB2ZS4NCg0K VHJvbmcga2hpIGRvLCBvbmcgTmd1eWVuIFh1YW4gSHVlLCBDaHUgdGljaCBVQk5EIHRpbmggUXVh bmcgTmdhaSwgbGFpIGJhbyB0aW5oIA0KZGFuZyBjaG8gInRpbiBoaWV1IiB0dSBCbyBOZ29haSBn aWFvIGNhbiB0aGllcCB2b2kgcGhpYSBUcnVuZyBRdW9jIChUUSkgdGhvbmcgbmhhdCANCmNhY2gg dGh1YyBiYW4gZ2lhbyB0YXUgY2EgUU5nLTY2NDc4VFMgY3VuZyA5IG5ndSBkYW4gTHkgU29uLiBP bmcgSHVlIGNobyByYW5nIA0KVUJORCB0aW5oICJkYSBzYW4gc2FuZyAzIHBodW9uZyBhbiIuIA0K DQpEbyBsYSBwaG9pIGhvcCB2b2kgQm8gUXVvYyBwaG9uZyBjYXQgY3UgMiBtYXkgYmF5IHRydWMg dGhhbmcgdW5nIHRydWMgdGFpIHNhbiBiYXkgQ2h1IA0KTGFpIChRdWFuZyBOYW0pIGRlIGtoaSBj byAidGluIGhpZXUiIHR1IEJvIE5nb2FpIGdpYW8gbGEgc2FuIHNhbmcgYmF5IHJhIGRhbyBUcnUg Q2F1LiANClBodW9uZyBhbiB0aHUgMiBsYSBkaWV1IHRhdSBjdXUgbmFuIGhhbmcgaGFpIHJhIEhv YW5nIFNhIHZhIHBodW9uZyBhbiB0aHUgMyBsYSB5ZXUgY2F1IA0KcGhpYSBUUSBsYWkgZGF0IHRh dSBjYSBRTmctNjY0NzhUUyBjdW5nIDkgbmd1IGRhbiB2ZSBkZW4gVk4gZGUgYmFuIGdpYW8gY2hv IGNhYyBjbyBxdWFuIGNodWMgbmFuZy4gDQoNCiJUaW5oIFF1YW5nIE5nYWkgc2UgdG8gY2h1YyBs ZSB0aWVwIGRvbiBuZ3UgZGFuIGhldCBzdWMgY2h1IGRhby4gTmdvYWkgY2hpbmggc2FjaCBobyAN CnRybyBuZ3UgZGFuIGdhcCBuYW4gZGEgYmFuIGhhbmgsIHRpbmggY3VuZyBkYW5nIGtldSBnb2kg Y2FjIGRvYW5oIG5naGllcCwgY2FjIG5oYSBoYW8gDQp0YW0gdHJvbmcgdmEgbmdvYWkgdGluaCB1 bmcgaG8sIGdpdXAgZG8gbmhhbSBjaGlhIHNlIHZvaSBuaHVuZyBraG8ga2hhbiBtYSBnaWEgZGlu aCANCmNhYyBuZ3UgZGFuIGRhbmcgZ2FuaCBjaGl1IGRlIHZ1b3QgcXVhLCBvbiBkaW5oIGN1b2Mg c29uZyB2YSB0aWVwIHR1YyBiYW0gYmllbiIsIG9uZyBIdWUgbm9pLg0KDQpIb24gbHVjIG5hbyBo ZXQsIG5ndSBkYW4gTHkgU29uIGRhbmcgdHJvbmcgY2hvLCBkYXQgdHJvbiBuaWVtIHRpbiB2YW8g Y2FjIGNvIHF1YW4gY2h1YyANCm5hbmcgbyBWTiBnaXVwIGRvIGRlIG5ndW9pIHRoYW4gY3VhIGhv IGRhbmcgZ2FwIG5hbiBvIHF1YW4gZGFvIEhvYW5nIFNhIHNvbSB0cm8gdmUgbmhhLiANCg0KaHR0 cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0xNy1uZ29haS1naWFvLXRydW8t Yy1oZS10LWN1LXUtbmd1by1pLSBUaGVvIFRhbSBuaGluDQoNClRodSB0dW9uZyAtIE5nb2FpIGdp YW86IFRydW9jIGhldCAuLi4gY3V1IG5ndW9pIC0gbmdhbmggbmdvYWkgZ2lhbyBjaHVhIGRhcCB1 bmcgZHVvYyB5ZXUgY2F1IG5heSANCg0KTmdheSB4dWEsIHZpZWMgdHV5ZW4gdHJhY2ggc3UgdGhh biBkYWkgZGllbiBjaG8gZGF0IG51b2MgdGEgbyBjYWMgbGFuIHF1b2MgbGEgcmF0IGhlIHRyb25n LiANCkNhYyB2aSBuYXkgZGEgZGVtIGxhaSBuaGlldSBuaWVtIHZpbmggaGFuaCBjaG8gZGF0IG51 b2MsIGtlIGNhIGtoaSBheSwgZGF0IG51b2MgdGEgY29uIGxhIA0KbW90IHF1b2MgZ2lhIGJlIG5o by4NCg0KTmd1eWVuIER1LCBOZ28gVGhpIE5oYW0sIE1hYyBEaW5oIENoaSBjb24gZHVvYyBsdXUg ZGFuaCBuaHUgbmh1bmcgZGFuaCBuaGFuIGxvbiANCnR1ICJuZ2hpZXAiIGF5Lg0KDQpOZ2F5IG5h eSwgY29uZyB0YWMgbmdvYWkgZ2lhbyBkYW5nIGR1bmcgbyB0dXllbiBkYXUgY3VhIGNvbmcgY3Vv YyBob2kgbmhhcC4gTmdvYWkgDQpnaWFvLCBuZXUgbGFtIHRvdCwgc2UgbGEgbmd1b2kgZGkgdGll biBwaG9uZywgbGEgZGluaCBodW9uZyBjaG8gc3UgbmdoaWVwIGdpYW8gdGh1b25nIHZvaSANCnRo ZSBnaW9pIGJlbiBuZ29haSB2YSBnb3AgcGhhbiBkZW0gbGFpIG5odW5nIG5ndW9uIGxvaSBsb24g Y2hvIGRhdCBudW9jLg0KDQpOaHVuZyBob24gaGV0LCB0cm9uZyBtb3Qgc28gZGlhIGhhdCwgbmdv YWkgZ2lhbyBjb24gZ29wIHBoYW4gdG9uIGNhbyBuaHVuZyBnaWEgdHJpIFZpZXQgDQpOYW0sIGdp biBnaXUgbmh1bmcgZ2lhIHRyaSBraW5oIHRlIGhvYWMgbmhhbiBtYW5nIGNobyBjb24gbmd1b2kg Y3VhIGNvbmcgZGFuIG51b2MgDQptaW5oIGtoaSBjbyB0cmFuaCBjaGFwLCB4dW5nIGRvdC4NCg0K RGUgbGFtIGR1b2MgdmllYyBkbywgdGluaCBoaW5oIG1vaSB5ZXUgY2F1IG5nYW5oIG5nb2FpIGdp YW8gcGhhaSBjbyB0dSB0aGUgc2FuIHNhbmcsIA0KY2h1IGRvbmcgdmEgc2FuZyB0YW8gdHJvbmcg aGFuaCB4dS4NCg0KTmhpZXUgbm9pLCBuaGlldSBsdWMgbmdhbmggbmdvYWkgZ2lhbyBjaHVhIGRh cCB1bmcgZHVvYyB5ZXUgY2F1IG5heS4NCg0KTmFtIDIwMDcgY2hpIHRhaSBtb3QgbnVvYyBNYWxh eXNpYSBkYSBjbyBoYW5nIHRyYW0gbGFvIGRvbmcgVmlldCBOYW0gYmkgImRvdCB0dSIuDQpUcnVv YyB2YSBzYXUgZG8sIG5oaWV1IGxhbyBkb25nIGN1YSB0YSBiaSBuZ3VvYyBkYWkgbmdoaWVtIHRy b25nIG5odW5nIHBoYW4gbG9uIGhvIGRldSANCmJhdCBsdWMsIGRvbiBsZSB2YSBjaGl1IG1vaSB0 aGlldCB0aG9pLCBrZSBjYSBuaGFuIG1hbmcgaG8uIA0KQ28gdHJ1b25nIGhvcCwgY2hhIGN1YSBt b3QgbGFvIGRvbmcgeHVhdCBraGF1IHRhaSBNYWxheXhpYSBxdWUgbyB0aW5oIFZpbmggUGh1YyBu aGFuIA0KZHVvYyB0aW4gaGlldSBjYXAgY3V1IGN1YSBjb24gbWluaCB2YSBkb25nIGRvaSwgZGEg cGhhaSB0dSB0aGFuIHZhbiBkb25nIG5odW5nIHRoZSANCm1hbmggcXVhbiBoZSB0cm9uZyBjb25n IGRvbmcsIHF1ZW4gYmlldCAgZGUgdGltIGNhY2ggY3V1IGNvbiB2ZSBtb3QgY2FjaCB2byBjdW5n IGdpYW4gDQpuYW4sIHZhdCB2YS4NCkNhY2ggdW5nIHh1IGN1YSBjbyBxdWFuIG5nb2FpIGdpYW8g dGEgbyBudW9jIG5heSB0aHVvbmcgZGkgc2F1IGNhYyBzdSBraWVuLCBraGkgbW9pIHN1IA0KZGEg YW4gYmFpIHZhIHBoYW4gdGhpZXQgdGhvaSB0aHVvbmcgdGh1b2MgdmUgY29uZyBkYW4gdGEuDQoN Ck5odW5nIG5nYXkgbmF5LCBuZXUgdHUgcGhpYSBjYWMgY28gcXVhbiBuZ29haSBnaWFvIHRhIG8g VHJ1bmcgUXVvYyBjbyB0aG9uZyBiYW8gdmUgDQpuaHVuZyBzdSB0cm8gZ2l1cCB0b2kgdGhpZXUg Y2hvIGNoaW4gY29uZyBkYW4gUXVhbmcgTmdhaSBkdW9jIHRoYSB2ZSBkZSBobyBjbyBuaHVuZyAN CmRpZXUga2llbiBhbiB0b2FuIHRvaSB0aGlldSBraGkgdnVvdCBiaWVuIGNhIHNhdSBuaHVuZyBu Z2F5IHRoYW5nIGJpIGNhbSBnaXUgdGhpIG5oYW4gZGFuIA0KYW0gbG9uZyBiaWV0IGJhby4gVHUg bmdoaWEgY3UgYXksIGNvbmcgZG9uZyBzZSB0aGF5IGR1b2Mgc3VjIG1hbmggZG9hbiBrZXQsIGRh biB0b2MgDQp2b24gY28gdHUgbmdhbiB4dWEgZGUgdnVvdCBxdWEgbmh1bmcga2h1YyBxdWFuaCBu aG9jIG5oYW4gaG9tIG5heS4gQ28gcXVhbiBuZ29haSANCmdpYW8gY3VhIHRhIG8gVHJ1bmcgUXVv YyBraG9uZyBraG8gZGUgdGllcCB4dWMsIGRvbmcgdmllbiBob2FjIGhvIHRybyBjaG8gYmEgY29u IGdhcCANCm5hbiBraGkgaG8gZHVvYyB0cmEgdmUuDQoNCkNodW5nIHRhIHZvIGN1bmcgeHVjIGRv bmcga2hpIHRoYXkgbmdheSAxMy8xMC8yMDEwIGRpY2ggdGhhbiBUb25nIHRob25nIEJvbGl2aWEg c2FuZyANCnRhbiBDaGlsZSBkZSBkb24gY29uZyBkYW4gZHV5IG5oYXQgY3VhIG51b2MgbWluaCBk dW9jIGN1dSB0aG9hdCB0dSB0YWkgbmFuIHNhcCBoYW0gbW8uDQpDaHVuZyB0YSBjdW5nIHZvIGN1 bmcgeHVjIGRvbmcga2hpIHRoYXkgaG9pIG5hbSAyMDA1IFRodSB0dW9uZyBBdXN0cmFsaWEgSm9o biANCkhvd2FyZCAgdHJ1YyB0aWVwIGNhbiB0aGllcCB2b2kgZ2lvaSBodXUgdHJhY2ggU2luZ2Fw b3JlIGRlIHhpbiBnaWFtIGFuIHR1IGhpbmggY2hvIG1vdCANCmNvbmcgZGFuIFVjIGdvYyBWaWV0 IHBoYW0gdG9pIGRhbmcgY2hvIGFuIHR1IGhpbmggdGFpIFNpbmhnYXBvcmUgLiBTYXUga2hpIGto b25nIGR1b2MgDQpwaGlhIFNpbmdhcG9yZSBjaGFwIHRodWFuLCB2aSB0aHUgdHVvbmcgbmF5IGRh IHhpbiBuaGEgY2h1YyB0cmFjaCBTaW5nYXBvcmUgY2hvIHRvaSANCnBoYW0gTmd1eWVuIFR1b25n IFZhbiAgZHVvYyBnYXAgZ2lhIGRpbmggbWluaCB0cnVvYyBraGkgaGFuaCBxdXlldCB2YSBTaW5n YXBvcmUgZGEgDQpjaGFwIG5oYW4uDQoNCkRvIGxhIG5odW5nIG5naGlhIGN1IHRoYXQgc3UgY2Fv IGNhLCBtaW5oIGNodW5nIHRhbSB2YSB0YW0gZGFuZyBraW5oIHF1eSBjdWEgbmd1b2kgDQpsYW5o IGRhbyBkYXQgbnVvYyB2YSBsYW0gY2hvIHV5IHRpbiBjdWEgcmllbmcgY2FjIHZpIGRvIGN1bmcg bmh1IHR1IHRoZSBjdWEgZGF0IG51b2MgY2FjIA0KdmkgZG8gZHVvYyBuZSB0cm9uZyB0cmVuIHRy dW9uZyBxdW9jIHRlLg0KDQpTdSBtZW5oIGNhbyBjYSwgdGFtIGxvbmcgbmhhbiBiYW4sIGhhbmgg ZG9uZyBraXAgdGhvaSBsYSBuaHVuZyBwaGFtIGNoYXQga2hvbmcgdGhlIA0KdGhpZXUgY3VhIG5o YSBuZ29haSBnaWFvLCBjdWEgY29uZyB0YWMgbmdvYWkgZ2lhbyB0cm9uZyBiYXQgY3UgdGhvaSBk YWkgbmFvLiANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvVmlldG5hbWVzZU5ld3Mv dmlldG5hbW5ld3MvQXNzb2NpYXRpb24tb2YtRmlzaGVybWVuLWluLVF1YW5nLU5nYWktcHJvcG9z ZXMtdG8tc3RvcC1DaGluZXNlLWZpc2hpbmctYm9hdHMtaW52YWRpbmctVmlldG5hbWVzZS1vZmZz aG9yZSUyMCUyMC0xMDA3MjAxMDE3NTMxOC5odG1sICAgUkZBIDA3LjEwLjIwMTANCg0KVGh1IHR1 b25nOiBDYW4gbmdhbiBjaGFuIHRhdSBkYW5oIGNhIFRRIHhhbSBwaGFtIHZ1bmcgYmllbiANCg0K Q2hpbmggcGh1IGNhbiBjbyBiaWVuIHBoYXAgbmdhbiBjaGFuIHZpZWMgdGF1IGRhbmggY2EgVHJ1 bmcgUXVvYyB4YW0gcGhhbSB2dW5nIGJpZW4gVmlldCBOYW0ga2hhaSB0aGFjIGhhaSBzYW4gdHJh aSBwaGVwLiBEYXkgbGEgZGUgbmdoaSBjdWEgSG9pIG5naGUgY2EgdGluaCBRdWFuZyBOZ2FpIGRl IG5naGkgbGVuIEhvaSBOZ2hlIGNhIFZpZXQgTmFtIGRlIGtpZW4gbmdoaSBjaGluaCBwaHUgdmEg Y2FjIGJhbiwgTmdhbmggY28gbGllbiBxdWFuLg0KDQpUaG9pIGdpYW4gZ2FuIGRheSwgY2FjIHRh dSBkYW5oIGNhIFRydW5nIFF1b2MgdGh1b25nIHh1eWVuIHhhbSBwaGFtIHZ1bmcgYmllbiBWaWV0 IE5hbSwgY28ga2hpIGNoaSBjYWNoIGRhbyBMeSBTb24ga2hvYW5nIHZhaSBjaHVjIGhhaSBseSB2 ZSBwaGlhIERvbmcgQmFjLiBDaHUgdGljaCBIb2kgbmdoZSBjYSB0aW5oIFF1YW5nIE5nYWksIG9u ZyBQaGFuIEh1eSBIb2FuZyBjaG8gYmlldCBuaHUgdGhlLiANCg0KQ3VuZyB0aGVvIEhvaSBuZ2hl IGNhIFRpbmggUXVhbmcgTmdhaSwgdGF1IHRodXllbiBUcnVuZyBRdW9jIGRlbiBkYW5oIGJhdCB0 cm9tIHZ1YSBsYSB0aHV5ZW4gdG8sIGxhaSB0aHVvbmcga2VvIGRlbiByYXQgZG9uZywgbmVuIGNh YyBuZ3UgZGFuIFZpZXQgTmFtIHRodW9uZyB0cmFuaCBuZSwgdmEga2hvbmcgdGhlIGtoYWkgdGhh YyBkdW9jIGhhaSBzYW4uICANCg0KaHR0cDovL2hheWRhbmh0aG9pZ2lhbi53b3JkcHJlc3MuY29t LzIwMTAvMTAvMDgvYiVFMSVCQSVBM28tdiVFMSVCQiU4Ny1uZyVDNiVCMC1kYW4tbGEtYiVFMSVC QSVBM28tdiVFMSVCQiU4Ny1jaCVFMSVCQiVBNy1xdXklRTElQkIlODFuLyBHTSBwb3N0ZWQgMjAx MC0xMC0wOA0KDQpUaHUgdHVvbmc6IEJhbyB2ZSBuZ3UgZGFuIGxhIGJhbyB2ZSBjaHUgcXV5ZW4g DQoNClRoZW0gbW90IHZ1IHRhdSBkYW5oIGNhIGN1YSBWaWV0IE5hbSBiaSBwaGlhIFRydW5nIFF1 b2MgYmF0IGdpdSB2YSBkb2kgdGllbiBjaHVvYywga2hpIHRhdSBuYXkgZGFuZyBkYW5oIGJhdCB0 YWkga2h1IHZ1YyBxdWFuIGRhbyBIb2FuZyBTYS4gTmh1bmcgZGllbiB0aWVuIHh1bmcgcXVhbmgg dnUgdmllYyBtb2kgbmF5IHRoZSBuYW8/DQoNCkFuaCBjaHVwOiBUYXUgbmd1IGNoaW5oIGN1YSBU cnVuZyBRdW9jIGRhbmcgYmF0IHRhdSBjYSBWaWV0IE5hbS4NCg0KVHJ1bmcgUXVvYyBsYWkgYmF0 IGdpdSBtb3QgdGF1IGRhbmggY2EgVmlldCBOYW0NCg0KVGhvbmcgdGluIHRydXllbiB0aG9uZyBj aGluaCB0aHVjIGN1YSBjaGluaCBwaHUgVmlldCBOYW0gY2hvIGJpZXQgdmFvIG5nYXkgNSB0aGFu ZyAxMCB2dWEgcXVhLCBEYWkgc3UgcXVhbiBUcnVuZyBRdW9jIHRhaSBIYSBOb2kgZ2FwIEJvIE5n b2FpIGdpYW8gY2hpbmggcXV5ZW4gVmlldCBOYW0gY2hvIGJpZXQgaG8gcXV5ZXQgZGluaCB4dSBw aGF0IGNodSB0YXUgY2EgUU5nNjY0NzhUUyBtYSBobyBiYXQgaG9pIG5nYXkgMTEgdGhhbmcgOSB0 YWkga2h1IHZ1YyBxdWFuIGRhbyBIb2FuZyBTYSB2ZSBkaWV1IG1hIGhvIGNobyBsYSBkYSBzdSBk dW5nIHRodW9jIG5vIGRlIGRhbmggYmF0IGNhLiANCg0KVHJ1bmcgUXVvYyBidW9jIHBoaWEgZ2lh IGRpbmggY2h1IHRhdSBiaSBiYXQgcGhhaSBub3AgNzAgbmdhbiBOaGFuIGRhbiB0ZSwgdHVvbmcg ZHVvbmcgMjAwIHRyaWV1IGRvbmcgVmlldCBOYW0uIFNhdSBraGkgbm9wIHBoYXQsIFRydW5nIFF1 b2Mgc2UgdGhhIHRhdSB2YSBjaGluIG5ndSBkYW4gdHJlbiBkbyB2ZS4NCg0KVHJ1bmcgUXVvYyBi dW9jIHBoaWEgZ2lhIGRpbmggY2h1IHRhdSBiaSBiYXQgcGhhaSBub3AgNzAgbmdhbiBOaGFuIGRh biB0ZSwgdHVvbmcgZHVvbmcgMjAwIHRyaWV1IGRvbmcgVmlldCBOYW0uIFNhdSBraGkgbm9wIHBo YXQsIFRydW5nIFF1b2Mgc2UgdGhhIHRhdSB2YSBjaGluIG5ndSBkYW4gdHJlbiBkbyB2ZS4NCg0K RHVvYyBiaWV0IHRhdSBRTmc2NjQ3OFRTIGN1YSB0aHV5ZW4gdHJ1b25nIE1haSBQaHVuZyBMdXUs IGhpZW4gbmd1IHRhaSB4YSBBbiBIYWksIGh1eWVuIEx5IFNvbiwgdGluaCBRdWFuZyBOZ2FpLiAN Cg0KVGluIHR1YyBjaG8gYmlldCBwaGlhIGNvIHF1YW4gY2h1YyBuYW5nIFZpZXQgTmFtIHNhdSBr aGkgbmhhbiBkdW9jIHRob25nIHRpbiB0YXUgUU5nNjY0NzhUUyBiaSBiYXQsIGRhIGNvIHhhYyBt aW5oIHZhIGtoYW5nIGRpbmggY2hpZWMgdGF1IHZhIGNoaW4gbmd1IGRhbiB0cmVuIGRvIHRodW9j IHRpbmggUXVhbmcgTmdhaS4gVGF1IGJpIGJhdCBraGkgZGFuZyBob2F0IGRvbmcgbmdoZSBjYSBi aW5oIHRodW9uZyB0YWkgdnVuZyBiaWVuIHF1YW4gZGFvIEhvYW5nIFNhIGN1YSBWaWV0IE5hbS4g VHJlbiB0YXUgY2hpIGNvIG5odW5nIGxvYWkgbmd1IGN1IHRob25nIHRodW9uZyBjaHUga2hvbmcg dGhlIG1hbmcgY2hhdCBuby4gRGlldSBuYXkgZHVvYyBvbmcgQnVpIFBodSBQaHUsIGRhaSB0YSBw aG8gY2hpIGh1eSB0cnVvbmcgQm8gY2hpIGh1eSBCbyBEb2kgQmllbiBQaG9uZyBRdWFuZyBOZ2Fp IGtoYW5nIGRpbmggaG9tIDYgdGhhbmcgMTAgdnVhIHF1YS4gT25nIG5heSBjaG8gcmFuZyBuZ3Ug ZGFuIGR1b2MgdHV5ZW4gdHJ1eWVuIHJhdCBreSB2ZSBuaHVuZyB2YW4gZGUgbGllbiBxdWFuIHZp ZWMgZGFuaCBiYXQgaGFpIHNhbiB0cmVuIGJpZW4uDQoNCk1vdCBuZ3VvaSBkYW4geGEgQW4gSGFp LCBkaWEgcGh1b25nIGN1IHRydSBjdWEgdGF1IFFOZzY2NDc4VFMgY3VuZyBjaG8gYmlldCB2ZSBx dWEgdHJpbmgga2llbSB0cmEgdGF1IHRodXllbiB0cnVvYyBraGkgcmEga2hvaToNClRhdSBiaSBi YXQga2hpIGRhbmcgaG9hdCBkb25nIG5naGUgY2EgYmluaCB0aHVvbmcgdGFpIHZ1bmcgYmllbiBx dWFuIGRhbyBIb2FuZyBTYSBjdWEgVmlldCBOYW0uIFRyZW4gdGF1IGNoaSBjbyBuaHVuZyBsb2Fp IG5ndSBjdSB0aG9uZyB0aHVvbmcgY2h1IGtob25nIHRoZSBtYW5nIGNoYXQgbm8uDQpIdXllbiwg eGEsIGRvbiBiaWVuIHBob25nIHR1eWVuIHRydXllbiBsYSBuZ3UgZGFuIGRpIGRhbmggYmF0IHRh aSB2dW5nIGJpZW4gY3VhIG1pbmggaG9wIHBoYXAsIGtob25nIGxhbSBnaSB0cmFpIGx1YXQuIEhv IGtpZW0gc29hdCBjaGF0IGNoZSBsYW0uIEtoaSB4dWF0IGJlbiBobyBraWVtIHRyYSBuZ2hlIG5n aGllcCBsYW0gYW4sIHNvIGxhbyBkb25nLCBuZ3V5ZW4gcXVhbiBvIGRhdSwgaGllbiBjdSBuZ3Ug dGFpIGRhdSwgeHVhdCBiZW4gZGkgZGVuIHZ1bmcgYmllbiBuYW8uIFRhdCBjYSBkZXUgZHVvYyBr aWVtIHRyYSByYXQgY2hhdC4NCg0KKEFuaDogTmd1IGRhbiBWaWV0IE5hbSBiaSBUcnVuZyBRdW9j IGJhdCBsZW4gdGF1IG5hbSAyMDA5LiBBbmggbWluaCBob2EsIG5ndW9uIGJhbyBUUSkgDQoNCk5n dW9pIGRhbiBYYSBBbiBIYWkgY2hvIGJpZXQgdmllYyBobyB0cm8gY2hvIGdpYSBkaW5oIG5odW5n IG5ndSBkYW4gZGFuZyBiaSBwaGlhIFRydW5nIFF1b2MgYmF0IGdpdSBkb2kgdGllbiBjaHVvYyBu aHUgc2F1Og0KQ2hpIGNvIG5odW5nIGNvIHF1YW4gdHUgdGhpZW4sIHBoYXQgdGhhbmgsIHRydXll biBoaW5oLCBiYW8gY2hpLCBidXUgZGllbiBob2FjIG5odW5nIGNvIHNvIGtpbmggZG9hbmggLi4u IGNvIGNobyBpdCBuaGlldSBnaSBkbyBuaHUgdHJpZXUgZG9uZywgYm9uIG5hbSB0cmFtIG5nYW4g ZG9uZywgY2FpIGRpZW4gdGhvYWkuLi4gbmh1IGtoaSBiaSB0YWkgbmFuLCBtYXQgdGF1Li4uIE5o YSBudW9jIGNodWEgY28gY2hlIGRvIHUgZGFpIGdpIGNobyBuZ3UgZGFuLg0KQ29uIGdpYWkgcXV5 ZXQgdGluaCBoaW5oIHR1eSBnaWFpIHF1eWV0IGdpdWEgaGFpIGJvIG5nb2FpIGdpYW8uIERhbiBj dSBuZ2hpIGRvIGxhIGtlIHNpbmggbmhhaSBjaG8gZ2lhIGRpbmggbmVuIHBoYWkgZGkgbGFtLCBj aHUga2hvbmcgbmdoaSBnaSBkZW4gYmF0IGJvLi4uDQoNCk5ndSBkYW4gVmlldCBOYW0gY28gdGh1 YyBzdSBkdW9jIGJhbyB2ZT8NCg0KVGF1IFFOZzY2NDc4VFMgY3VhIG9uZyBNYWkgUGh1bmcgTHV1 IHR1bmcgYmkgcGhpYSBUcnVuZyBRdW9jIGJhdCBoYWkgbGFuIGtoaSBkYW5nIGRpIGRhbmggYmF0 IGhhaSBzYW4gdGFpIGtodSB2dWMgcXVhbiBkYW8gSG9hbmcgU2EuIExhbiB0aHUgbmhhdCB0cm9u ZyBuYW0gMjAwNS4gTGFuIGRvIGJpIHBoYXQgNzAgbmdhbiBuaGFuIGRhbiB0ZS4gTGFuIHRpZXAg dGhlbyBob2kgdGhhbmcgdHUgbmFtIG5heSwgY3VuZyBiaSBwaGF0IDcwIG5nYW4gbmhhbiBkYW4g dGUgdmEgdGljaCB0aHUgaGV0IG1heSBtb2MsIG5ndSBjdS4uLkdpYSBkaW5oIGNobyBiaWV0IGhh aSBsYW4gZG8gcGhhaSBjaGF5IHZheSBubyBkZSB0cmEgY2h1b2MgdGF1IHZlLiBOYXkgZ2lhIGRp bmggdmFuIGNvbiBubyB0aWVuIGN1YSBoYWkgbGFuIHRydW9jLiANCg0KKEFuaDogQ28gbHVjIG5n dSBkYW4gVk4gZHUgZGFuZyB0cm9uZyBtdWEga2hhaSB0aGFjLCBuaHVuZyBwaGFpIG5hbSBibyBk byBsZW5oIGNhbSBtYSBwaGlhIFRydW5nIFF1b2MgZHVhIHJhIG5odSBob2kgdGhhbmcgbmFtIHZ1 YSBxdWEuIEFGUCkNCiANCktob25nIGNoaXUgZHVuZyBkdW9jIHZvaSBjYWNoIGhhbmggeHUgdHJv bmcgdmFuIGRlIG5heSBsYXUgbmF5LCBuaGlldSBuZ3UgZGFuIFZpZXQgDQpOYW0gZGFuZyBwaGFp IHR1IGJvIG5naGUgZGFuaCBiYXQgdHJlbiBiaWVuLCBtb3QgbmdoZSB0cnV5ZW4gdGhvbmcgdHUg YmFvIGRvaSBuYXkgY3VhIA0KY2hhIG9uZyBobywgdmEgY3VhIGhvIHRoZW8gbmh1IHBob25nIHN1 IGR1b2MgZGFuZyB0cmVuIHRyYW5nIEJhdXhpdGUgVmlldCBOYW0gaG9tIA0KbmdheSBuYW0gdGhh bmcgMTAgdnVhIHF1YSBjdWEgbW90IG5ndW9pIFBoYXAsIG9uZyBBbmRyZSBNZW5yYXMuIE9uZyBu YXkgZGEgbmhhcCANCnRpY2ggVmlldCBOYW0gdm9pIHRlbiBIbyBDdW9uZyBRdXlldC4gT25nIGRp IGRlbiBoYWkgeGEgQW4gVmluaCB2YSBBbiBIYWkgdHJlbiBkYW8gDQpMeSBTb24gbW9pIGhvbSAy MSB0aGFuZyA5IHZ1YSByb2ksIDEwIG5nYXkgc2F1IGtoaSBjaGllYyB0YXUgUU5nNjY0NzhUUyBi aSBwaGlhIA0KVHJ1bmcgUXVvYyBiYXQgZ2l1LiBNdWMgdGlldSBtdW9uIGN1bmcgbmd1IGRhbiBk aWEgcGh1b25nIHRodWMgaGllbiBtb3QgY2h1eWVuIGRpIHJhIA0KbW90IHNvIGRhbyB2YSByYW5n IHNhbiBobyB0aHVvYyBIb2FuZyBTYSBkZSBnaXVwIGJhbyB2ZSBkaWV1IG1hIGNoaW5oIHRhYyBn aWEgZ29pIGxhIA0KkWNvbmcgYmluaJIgY2hvIG5ndSBkYW4gVmlldCBOYW0uIFRoZSBuaHVuZyBr ZSBob2FjaCBjdWEgb25nIGJhdCB0aGFuaCB2aSBjYWMgY28gDQpxdWFuIGNodWMgbmFuZyB0YWkg UXVhbmcgTmdhaSBsYW4gdHJhbmggY2FwIHBoZXAgY2hvIG9uZy4NCg0KWSBraWVuIGJhbiBkb2M6 DQoNCk5nb2MgRHVjIDA4LzEwLzIwMTAgMDg6MTk6DQoNClZpIHN1IG5odSBuaHVvYyB0cnVvYyB0 aGUgbHVjIGN1YSBUcnVuZyBRdW9jLCBjaG8gbmVuIFRydW5nIFF1b2MgbmdheSBjYW5nIGxvbmcg DQpoYW5oIG5nYW5nIG5oaWVuLCBiYXQgZGFuIGxhbiBiaWVuLiBOZXUga2hvbmcgY28gdGFtIGRl IGxhbmggZGFvIFF1b2MgZ2lhICwgdGhpIGhheSBuZW4gDQpuaHVvbmcgbGFpIGNobyBuaHVuZyBu Z3VvaSB0aGF0IHN1IHZpIGRhbiB2aSBudW9jLiBEdW5nIHZpICBsb2kgaWNoIGNhIG5oYW4gY3Vu ZyBjbyBkaWEgDQp2aSwgdGhhbSBjaHVjLCB0aGFtIHF1eWVuIG1hIGhhaSBkYW4gaGFpIG51b2Mu DQoNCk1hbmggLSBOaW5oIEJpbmggMDgvMTAvMjAxMCAwMToyNzoNCktpY2ggbGlldCBsZW4gYW4g VHJ1bmcgUXVvYzsgImxhbmcgZ2llbmcgdG90LCBkb2kgdGFjIHRvdCwgZG9uZyBjaGkgdG90IiBn aSBtYSBuaHUgY3VvcCBiaWVuIENhcmliZSwgY3VvcCBjdWEgZGFuIG5naGVvIFZOLg0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTIwNDEyMjAu YXNweCBIaWVuIEN1IDEyLzA3LzIwMTAgNDoxMiANCg0KVGh1IHR1b25nOiBDaGlhIHNlIHRpbmgg dGhhbiwgdmF0IGNoYXQgdm9pIG5ndSBkYW4gliBjYW4gdmFpIHRybyBjdWEgQ2hpbmggcGh1ICAN CiANClZhaSBuYW0gdHJvIGxhaSBkYXksIHNvIHZ1IHRhdSBjYSBjdWEgbmd1IGRhbiBWTiBiaSB0 YXUgImxhIiB0b25nIGNoaW0gaG9hYyBiaSBiYXQgZ2l1LCBiaSANCnRpY2ggdGh1IHRhdSwgZG9p IHRpZW4gY2h1b2Mga2hpIGRhbmcgaGFuaCBuZ2hlIG5nYXkgdnVuZyBiaWVuIGNodSBxdXllbiBj dWEgVk4gbmdheSANCmNhbmcgdGFuZyBraGllbiBuZ3UgZGFuIGNhbmcgdGhlbSBwaGFwIHBob25n LCBsbyBsYW5nIG1vaSBraGkgcmEga2hvaS4gS2hvbmcgaXQgY2h1IHRhdSANCmNhIGJvbmcgY2hv YyB0cm8gdmUgdHJvbmcgY2FuaCB0cmFuZyB0YXksIG5vIG5hbiBjaG9uZyBjaGF0Li4uIA0KDQpU aGVvIHRob25nIGtlLCBjaGkgcmllbmcgbyBRdWFuZyBOZ2FpLCBob24gbW90IG5hbSBxdWEgKHR1 IHRoYW5nIDUuMjAwOS02LjIwMTApLCBkYSANCmNvIGl0IG5oYXQgMTIgdGF1IGNhIGJpIG51b2Mg bmdvYWkgYmF0IGdpdSwgYmkgdG9uZyBjaGltLiANCg0KTW9pIGRheSBuaGF0LCByYW5nIHNhbmcg MTIuNiwgdGF1IFFOZy05NjE5MyBUUyBjdWEgb25nIFZvIFh1YW4gVGllbiB0cmVuIGR1b25nIGRp IA0KbGFuIGJhdCBoYWkgc2FtIG8gdnVuZyBiaWVuIHRodW9jIHF1YW4gZGFvIFRydW9uZyBTYSB0 cm8gdmUgTHkgU29uLCBkZW4gY2FjaCBkYW8gTmhvbiANCkNoYXUsIFRQIFF1eSBOaG9uIChCaW5o IERpbmgpIGtob2FuZyAzMCBoYWkgbHksIHRoaSBiYXQgbmdvIGJpIG1vdCB0YXUgbG9uIHRvbmcg Y2hpbS4gDQpUdXkgMTggbmd1IGRhbiBkaSB0cmVuIHRhdSB0aG9hdCBjaGV0IG5odW5nIG9uZyBU aWVuIGJpIHRoaWV0IGhhaSBnYW4gMSw1IHRpIGRvbmcuDQoNCkRhIHR1bmcgY2h1bmcga2llbiBj YW5oIHZvIGNvbiwgdGhhbiBuaGFuIGNhYyBuZ3UgZGFuIG5nYXkgbmdheSB0aGFuIHRobyBuaGlu IHZlIHBoaWEgDQpiaWVuIHhhLCBudW9jIG1hdCBuZ2FuIGRhaSwgY2hvIG1vbmcgdGluIGNob25n LCBjb247IGNhbmggaG8gdHJvIHZlIHZvaSB2ZSBtYXQgdGhhdCB0aGFuIA0Kc2F1IGtoaSBiaSAi bmhhbiB0YWkiIHRyZW4gYmllbiwgY2h1bmcgdG9pIGNhbmcgdGhhdSBoaWV1IG5odW5nIHZhdCB2 YSwgbmhvYyBuaGFuIG1hIG5ndSBkYW4gDQpjYWMgbGFuZyBjaGFpIG5naGVvIGRhICJkYXAgYmFu ZyBzb25nLCBnaW8iIG8gbm9pIHRydW5nIGtob2kgZGUgbXV1IHNpbmguDQoNClNhbiBzZSBraG8g a2hhbiB2b2kgbmd1IGRhbiwgZ2FuIDEgbmFtIHF1YSB0aW5oIFF1YW5nIE5nYWkgbGEgZGlhIHBo dW9uZyBkYXUgdGllbiANCnRyb25nIGNhIG51b2MgZGEgdHJpY2ggbmdhbiBzYWNoIGhvIHRybyAz IHRoYW5nIGx1b25nIHRodWMgY2hvIGNhYyBnaWEgZGluaCBuZ3UgZGFuIGdhcCANCm5hbiAibmhh biB0YWkiLCB2b2kgbW9pIGtoYXUgbGEgMTUga2cgZ2FvL3RoYW5nLCBkb25nIHRob2kgdHV5IHRo ZW8gdHVuZyB0cnVvbmcgaG9wIGN1IA0KdGhlIGNvbiBkdW9jIGhvIHRybyB0dSA0MC0xMjAgdHJp ZXUgZG9uZy90YXUgdGh1eWVuIGJpIG51b2MgbmdvYWkgdGljaCB0aHUuIFR1eSBuaGllbiwgDQp0 aGVvIFNvIE5OLVBUTlQgUXVhbmcgTmdhaSwgcXVhIDMgZG90IHhldCBkdXlldCBtb2kgY2hpIGNv IDQvMTIgY2h1IHRhdSBiaSBudW9jIA0KbmdvYWkgYmF0IGdpdSBkdSBkaWV1IGtpZW4gaG8gdHJv IHRpZW4uIA0KDQpDaGluaCBzYWNoIGhvIHRybyBuZ3UgZGFuIGdhcCBuYW4gdHJlbiBiaWVuIGN1 YSBVQk5EIHRpbmggUXVhbmcgTmdhaSBiYW4gaGFuaCBsYSBtb3QgDQpxdXlldCBkaW5oIGhvcCBs b25nIGRhbi4gU29uZywgY2hpbmggc2FjaCBuYXkgbW9pIGNoaSBsYSBnaWFpIHBoYXAgdGluaCB0 aGUgZ2l1cCBnaWEgZGluaCANCmNhYyBuZ3UgZGFuIHZ1b3QgcXVhIGtobyBraGFuIHRydW9jIG1h dC4gQm9pIG11b24gcmEga2hvaSwgYmFtIGJpZW4gZGFpIG5nYXksIG5ndSBkYW4gDQpjYW4gcGhh aSBjbyB0YXUgY29uZyBzdWF0IGxvbiwgdHJpIGdpYSBtb2kgdGF1IGxlbiBkZW4gaG9uIGNhIHRp IGRvbmcsIHRyb25nIGtoaSBkbyB0cm9uZyANCnRheSBobyBjaGFuZyBjbyBnaSwgdGhhbSBjaGkg bmhpZXUgbmd1b2kgY29uIGxhbSB2YW8gY2FuaCBubyBuYW4uIA0KDQpEbyB2YXksIHRpbmggUXVh bmcgTmdhaSBkYW5nIGRlIHJhIG1vdCB5IHR1b25nIHRoYW5oIGxhcCBRdXkgaG8gdHJvIGNobyBu Z3UgZGFuIGtoaSANCmJpIHRhdSAibGEiIHRvbmcgY2hpbSwgYmkgbnVvYyBuZ29haSBiYXQuLi4g ZGUgbmd1IGRhbiBjbyBkaWV1IGtpZW4gdGllcCB0dWMgYmFtIGJpZW4uIA0KT25nIFRydW9uZyBO Z29jIE5oaSAtIFBobyBjaHUgdGljaCBVQk5EIHRpbmggY2hvIHJhbmcsIGRheSBsYSBtb3QgeSB0 dW9uZyBoYXkgbmh1bmcgZGUgDQpiaWVuIHRoYW5oIGhpZW4gdGh1YyBjYW4gcGhhaSBjbyBzdSBj aHVuZyB0YXkgZ29wIHN1YyBjdWEgY2EgY29uZyBkb25nLg0KDQotDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzEvMjAxMDA4MDEwMDAyNTEuYXNweCAoUS5EdWFu KSAxLzgvMjAxMCANCg0KTmdheSAzMS43LCBCYW4gY2hpIGRhbyBQaG9uZywgY2hvbmcgbHV0IGJh byBULlUgY2hvIGJpZXQsIFVCTkQgdGluaCBRdWFuZyBOZ2FpIGRhIGNvIGNvbmcgDQp2YW4gZGUg bmdoaSBULlUgaG8gdHJvIDEwIHRpIGRvbmcgZGUgY2hpIGhvIHRybyBjaG8gZ2lhIGRpbmggY28g bmd1b2kgYmkgbmFuLCB0aGlldCBoYWkgDQp0YXUgdGh1eWVuIGRvIG11YSBiYW8gZ2F5IHJhOyBk b25nIHRob2kgY2FuIHRoaWVwIHZvaSBwaGlhIFRydW5nIFF1b2Mgc29tIGJhbiBnaWFvIDIzIG5n dSBkYW4gDQpkbyBUcnVuZyBRdW9jIGN1dSBuYW4gY2hvIGNvIHF1YW4gY2h1YyBuYW5nIGN1YSBW TiBkZSBkdWEgaG8gdmUgbnVvYy4gDQotDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3 cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDIwMTI4MjIuYXNweCBUcmFuIFRhbSAtIFF1ZSBIYSAtIFQu TmhhbiAgMDIvMDgvMjAxMCAxOjI4IA0KDQpUaHUgdHVvbmc6IEJhaSBiaWVuIGN1YSBhaT8gIA0K ICANCkNhdSB0cmEgbG9pIGNoYWMgY2hhbiBsYTogYmFpIGJpZW4ga2hvbmcgcGhhaSBjdWEgbmd1 b2kgZGFuLiBCYW5nIGNodW5nIGxhIG5ldSBkaSBkb2MgYm8gDQpiaWVuIFF1YW5nIE5hbSwgTmlu aCBUaHVhbiwgQmluaCBUaHVhbiwgQmEgUmlhLVZ1bmcgVGF1Li4uIGhheSB0YW4gY2EgUGh1IFF1 b2MsIGNvIA0KdGhlIGRlIGRhbmcgdGhheSByYW5nIGNhYyByZXNvcnQsIGtoYWNoIHNhbiBkYW5n IHZheSBraW4gbWF0IHRpZW4gYmllbi4gDQoNCk8gYmllbiBuaHVuZyBraG9uZyB0aGF5IGR1b2Mg YmllbiwgZG8gbGEgdGh1YyB0cmFuZyBkYW5nIGJ1b24gY3VhIG5ndW9pIGRhbiBzb25nIHZlbiAN CmJpZW4gUGh1IFF1b2MsIE11aSBOZSwgTmluaCBUaHVhbiwgUXVhbmcgTmFtLi4uDQoNCkJhaSBi aWVuIGJpIHBoYW4gbG8gLSBQaGUgYm8gdGhlIG1hbmggLSBEdSBhbiAiYnVhIHZheSIgLSBOZ3Vv aSBkYW4gYnVjIHh1Yw0KDQoiQ2h1bmcgdG9pIGRhIG5vaSBuaGlldSBsYW4gcm9pLCBjaG8gbmFv IHR1IHhhIHh1YSBsYSBkdW9uZyBkaSB0aGkgZGUgZHVvbmcgY2hvIGRhbiANCmNodW5nIHRvaSBk aTsgbmh1bmcgaG8ga2hvbmcgbmdoZSBtYSBiYW4gaGV0IGNhIGR1b25nIGRpIGN1YSBkYW4gY2hv IGNhYyBraHUgZHUgbGljaC4gDQpWaWVjIGxhbSBrZSBiYW8gdmUgYm8gYmllbiBtYW5oIGFpIG5h eSBsYW0uIEJheSBnaW8gbmdheSBjYSBraHUgbWlldSBIYW0gVGllbiBjdWEgDQpkYW4gbGFuZyBj aHVuZyB0b2kgY3VuZyBiaSBkZSBkb2EgeG9hIHNvIHRydW9jIG5hbiB4YW0gdGh1YyBiaWVuLiBC YW8gZG9pIHNpbmggc29uZyB0YWkgDQpkYXkgbWEgZ2lvIGtob25nIGNvIGR1b25nIHh1b25nIGJp ZW4sIGJ1YyB4dWMgbGFtIGNodSBuaHVuZyBjaHVuZyB0b2kgbm9pIGNvIGFpIG5naGUgDQpkYXUi ICgtT25nIE1haSBVbSwgNzUgdHVvaSAtIEJhbiBxdWFuIGx5IGRpbmggbGFuZyBIYW0gVGllbiwg VFAgUGhhbiBUaGlldCkgDQoNCiJDYSBraHUgcGhvIDEsIFAuSGFtIFRpZW4gY2h1bmcgdG9pIGNv biBraG9hbmcgNjAgaG8gZGFuIHZvaSBob24gMTIwIHRodW5nIGNoYWksIHRvaSANCnJhIGJpZW4g c2FuZyB2YW8gYm8ga2llbSBzb25nIHF1YSBuZ2F5LiBOaHVuZyBoaWVuIGNodW5nIHRvaSBjaGkg Y29uIDEyIG1ldCBuZ2FuZyBibyANCmJpZW4gc2F0IHZvaSBraHUgZHUgbGljaCBIb2EgQmluaCwg Y2hpIG5oaWNoIHRodW5nIHNhbmcgaGFpIGJlbiBsYSBiaSBiYW8gdmUgY3VhIGtodSBkdSANCmxp Y2ggeHVhIGR1b2kgbmdheS4gQ28gbmhhIGNoaSBxdWEga2hvaSBjb24gZHVvbmcgbGEgeHVvbmcg Ymllbiwgbmh1bmcgcGhhaSBkaSB2b25nIA0KbWF5IGNheSBzbyBtb2kgY28gZHVvbmcgeHVvbmcg YmllbiIgKC1BbmggVHJ1b25nIExlIFF1YW5nIC0gZGFuIGNoYWksIFAuSGFtIFRpZW4sIA0KVFAg UGhhbiBUaGlldCkgDQoNCihBbmggY2h1cDogQmFpIG5lbyB0aHVuZyBjaGkgY28gMTIgbWV0IG5n YW5nIGN1YSBob24gNjAgaG8gZGFuIGNoYWkgdmEgY3VuZyBsYSBkdW9uZyANCnh1b25nIGJpZW4g ZHV5IG5oYXQgY3VhIGtodSBwaG8gMSwgUC5IYW0gVGllbiwgbm9pIGR1b2MgbWVuaCBkYW5oIGxh ICJ0aHUgZG8gcmVzb3J0IiAtIEFuaDogUXVlIEhhKQ0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vTmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDIyMjU1NDUuYXNweCAwMi8wOC8yMDEwIDIy OjU1IA0KDQpUaHUgdHVvbmc6IEJhaSBiaWVuIGN1YSBhaT8gIE11b24gdGFtIGJpZW4gcGhhaSB4 aW4hDQoNCihBbmggY2h1cDogQmFpIGJpZW4gbyBOaW5oIFRodWFuIGJpICJraG9hIiBraW4gYmFu ZyB0dW9uZyByYW8gLSBBbmg6IFQuTmhhbikNCg0KTWFuZyB0aWVuZyBkaSBjaG9pIGJpZW4gTXVp IE5lLCBQaHUgUXVvYywgUXVhbmcgTmFtLi4uIG5odW5nIG5oaWV1IGRvYW4ga2hhY2ggcGhhaSAN CnRhbSBiaWVuICJrZSIgbyBjYWMgYmFpIGJpZW4gY3VhIG1vdCBzbyBraGFjaCBzYW4sIHJlc29y dC4gS2hvbmcgdGhlIHRpbSByYSBiYWkgdGFtIGRlcCBvIA0Kbmh1bmcgbm9pIG5heSwgdmkgdGF0 IGNhIGRldSBkYSBjbyBjaHUuICAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTAzMi8yMDEwMDgwNTAyNDgyOC5hc3B4IE5UVGFtIDA1LzA4LzIwMTAgMjo0OCAN Cg0KQ2hpZW0gZG9hdCBxdXllbiBsb2kgbmd1b2kgZGFuICANCiAgDQpLaG9uZyBjaGkgcXV5ZW4g bG9pIGN1YSBuZ3VvaSBkYW4gYmkgY2hpZW0gZG9hdCwgdmllYyAiY2FwIGJhaSBiaWVuIiB0cmFu IGxhbiBjaG8gbmhhIA0KZGF1IHR1IGNvbiBoYW4gY2hlIGtoYSBuYW5nIHBoYXQgdHJpZW4gY3Vh IGR1IGxpY2ggYmllbiBWTi4gDQoNCihBbmggY2h1cDogTmFuIHhhbSB0aHVjLCBvIG5oaWVtIG5n YXkgY2FuZyBuZ2hpZW0gdHJvbmcgZG8geGF5IGR1bmcgdHJhbiBsYW4gYmVuIA0KY2FuaCBiYWkg YmllbiAtIEFuaDogRC5ELk0pDQoNClBoYWkgYmluaCBkYW5nIHRydW9jIGJpZW4NCg0KVGhlbyBv bmcgTmd1eWVuIFZhbiBNeSAoR2lhbSBkb2MgQ29uZyB0eSBsdSBoYW5oIEx1YSBWaWV0KSwgdGh1 YyB0cmFuZyBuaGEgZGF1IHR1IA0KbGF5IGJhaSBiaWVuIGxhbSBjdWEgcmllbmcga2hpZW4gbmd1 b2kgZGFuIHZhIGR1IGtoYWNoIGJpIGhhbiBjaGUgY2hvIHRhbSBiaWVuIGxhIHJhdCANCmtobyBr aGFjIHBodWMuICJDaHUgZGF1IHR1IHJlc29ydCBTb2toYSA1IHNhbyBvIGJhaSBiaWVuIFNpaGFu b3VrIFZpbGxlIChDYW1wdWNoaWEpIGNvIA0KY2hpZXUgZGFpIDEga20gdHJ1b2MgZGF5IGtob25n IGNobyBuZ3VvaSBuZ29haSB2YW8uIE5odW5nIHNhdSBuYXkgZGEgY2hvIG5ndW9pIGRhbiwgDQpk dSBraGFjaCB0YW0gYmllbiB2b2kgbXVjIHRodSBwaGkgcGh1IGhvcCB2YSBkdW9jIHN1IGR1bmcg Y2FjIGRpY2ggdnUuLi4gTGlldSBjYWMgDQpyZXNvcnQgbyBiYWkgYmllbiBWTiBjbyBkYW0gbGFt IG5odSB2YXkga2hvbmc/Iiwgb25nIE15IGRhdCBjYXUgaG9pLiANCg0KT25nIFBoYW4gRGluaCBI dWUsIEdpYW0gZG9jIENvbmcgdHkgZHUgbGljaCBWb25nIFRyb24gVmlldCBjaG8gcmFuZywgbmhp ZXUgcmVzb3J0LCANCmtoYWNoIHNhbiB2ZW4gYmllbiwga2UgY2Egbmh1bmcgcmVzb3J0IDIgLSAz IHNhbywgInNvIGh1dSIgY2hpZXUgZGFpIG1hdCBiaWVuIHJvbmcgbG9uIA0Kbmh1IGxhIGxvaSB0 aGUgY2FuaCB0cmFuaCBuaHVuZyBraG9uZyBzdSBkdW5nIGhldC4gQ2hpbmggcXV5ZW4gZGlhIHBo dW9uZyBuZW4gInRodSANCmhvaSIgbW90IHBoYW4gYmFpIGJpZW4gZGUgcGh1YyB2dSBjb25nIGRv bmcuIERvaSB2b2kgbmh1bmcgdHJ1b25nIGhvcCBraG9uZyBjbyANCmR1b25nIHJhIGJpZW4sIGNo aW5oIHF1eWVuIG5lbiB0aHVvbmcgbHVvbmcgdm9pIGNhYyBjaHUgZGF1IHR1IGNvIGRpZW4gdGlj aCBkYXQgbG9uLCANCmRhbmggbW90IHBoYW4gZGF0IGxhbSBkdW9uZyB4dW9uZyBjYS4gQmVuIGNh bmggZG8sIGNoaW5oIHF1eWVuIHZhbiBjbyB0aGUgdGhhbmcgdGF5IA0KdGh1IGhvaSBjYWMgZHUg YW4gInRyZW8iIGxhdSBuYW0gdmVuIGJpZW4gZGUgbGFtIGJhaSBiaWVuIGNodW5nLg0KICANCkhh dSBxdWEgY3VhICJraG9hIiBtYXQgdGllbiBiaWVuDQoNCkNoaWEgc2Ugdm9pIFRoYW5oIE5pZW4s IG9uZyBUcmFuIEh1bmcgVmlldCwgUGhvIHRvbmcgZ2lhbSBkb2MgVG9uZyBjb25nIHR5IGR1IGxp Y2ggDQpTYWkgR29uIChTYWlnb250b3VyaXN0KSwgY2hvIGJpZXQsIG5ldSBjYWMgcmVzb3J0IG8g bmh1bmcgYmFpIGJpZW4gbm9pIHRpZW5nLCBkYWMgYmlldCBvIA0KTXVpIE5lIGR1b2MgeGF5IGR1 bmcgYmVuIHBoaWEgdGF5IHBoYWkgKGJlbiBraWEgZHVvbmcsIGtob25nIG5hbSBuZ2F5IGNhbmgg YmFpIGJpZW4gDQotIFBWKSB0aGkga2hvbmcgZ2lhbiBwaGF0IHRyaWVuIHNlIHJhdCBsb24uIENo dSBuaHUgYmF5IGdpbywgY2FjIHJlc29ydCBkZXUgYW4gbmd1IGJlbiANCm1lcCBiaWVuLCBuZW4g bmV1IG11b24gcGhhdCB0cmllbiBvIGJlbiBraWEgZHVvbmcgY3VuZyBraG9uZyBkdW9jLiBWaSBk dSBraGFjaCBjaGFuZyANCmRhaSBnaSBvIG5odW5nIGtoYWNoIHNhbiBiZW4ga2lhIGR1b25nIHZh IHBoYWkgZGkgdGFtIG8gYmFpIGJpZW4ga2hvbmcgdGh1b2MgcXVhbiBseSANCmN1YSBraGFjaCBz YW4gbWEgbWluaCBsdXUgdHJ1LiANCg0KQ3VuZyBxdWFuIGRpZW0sIG9uZyBUcmFuIFZpbmggTG9j LCBHaWFtIGRvYyBDb25nIHR5IGR1IGxpY2ggTGFjIEhvbmcsIGtoYW5nIGRpbmggDQpuaHVuZyBi YWkgYmllbiBub2kgdGllbmcgdGhlIGdpb2kgZGV1IHJhdCAicXV5IHRyb25nIiBraG9uZyBnaWFu IHZlbiBiaWVuIGJhbmcgY2FjaCANCmtob25nIGNhcCBkYXQgY2hvIG5oYSBkYXUgdHUgeGF5IGR1 bmcgbyBkby4gTmh1IGJhaSBiaWVuIEJvcmFjYXkgKFBoaWxpcHBpbmVzKSwgQmFsaSANCihJbmRv bmVzaWEpLCBQaHVrZXQgKFRoYWkgTGFuKSwgSGF3YWlpLi4uLCBraG9uZyBnaWFuIGJhaSBiaWVu IGxhIGtob25nIGdpYW4gY2h1bmcsIA0Ka2hvbmcgZHVvYyB4YXkgZHVuZy4gIlRodWMgdGUgbyBW TiwgdmllYyB4YXkgZHVuZyBraGFjaCBzYW4sIG5oYSBoYW5nIHNhdCBiZW4gbWVwIA0KYmllbiB2 byB0aW5oIGJpZW4gYmFpIGJpZW4gdGhhbmggY3VhIHJpZW5nIG5oYSBkYXUgdHUsIGtoaWVuIGto dSB2dWMgYmVuIHRyb25nIGtob25nIHRoZSANCnBoYXQgdHJpZW4gY28gc28gaGEgdGFuZyBkdSBs aWNoIiwgb25nIExvYyBwaGF0IGJpZXUuIA0KDQpLaG9uZyBuaHVuZyB0aGUsIHZpZWMgeGF5IGR1 bmcgY29uZyB0cmluaCB2ZW4gbWVwIGJpZW4gY29uIGxhbSBiaWVuIGRhbmcga2hvbmcgZ2lhbiAN Cm15IHF1YW4uIFRpZW4gc2kgRG8gUXVvYyBUaG9uZywgUGhvIHRvbmcgZ2lhbSBkb2MgQ29uZyB0 eSBkdSBsaWNoIEJlbiBUaGFuaCwgY2hvIA0KcmFuZyBwaGF0IHRyaWVuIGR1IGxpY2ggc2luaCB0 aGFpIGJpZW4gbmVuIGhhaSBob2Egdm9pIGNhbmggcXVhbiB0aGllbiBuaGllbiB4dW5nIHF1YW5o LiANCkRpZXUgbmF5IG8gVk4ga2hvbmcgZHVvYyBjaHUgdHJvbmcuICJUaGVvIHRvaSwgY2FuIHBo YWkgcXV5IGhvYWNoIHJvIHJhbmcga2h1IHZ1YyBiYWkgDQpiaWVuIG5hbyBkdW9jIHhheSBkdW5n IG5oYSBjYW8gdGFuZywga2h1IHZ1YyBuYW8ga2hvbmcuIFZpIGR1IG8gUGh1IFF1b2MsIGtodSB2 dWMgdGhpIA0KdHJhbiBEdW9uZyBEb25nIGNvIHRoZSB4YXkgbmhhIGNhbyB0YW5nIHZpIHR1b25n IGxhaSBwaGF0IHRyaWVuIGxvbiBob24uIE5odW5nIG5odW5nIA0Kbm9pIGtoYWMgbmh1IGJhaSBU cnVvbmcgdGhpIGtob25nIHRoZS4gVHVvbmcgdHUsIHZlbiBiaWVuIFRQIFBoYW4gVGhpZXQgY28g dGhlIHhheSBuaGEgDQpjYW8gdGFuZywgY29uIHZlbiBiaWVuIE11aSBOZSBsYSBraG9uZyBuZW4i LCBvbmcgVGhvbmcgbm9pLiANCg0KQmllbiBsYSB0YWkgbmd1eWVuIGR1IGxpY2ggbG9uIG5oYXQg Y3VhIFZOLCBsYSBsb2kgdGhlIHNvIHNhbmggdm9pIGNhYyBkaWVtIGRlbiB0cm9uZyBraHUgDQp2 dWMuIE5ldSBraG9uZyBjbyBjaGllbiBsdW9jIHJvIHJhbmcgdHJvbmcgdmllYyBraGFpIHRoYWMg dGFpIG5ndXllbiBiaWVuLCBkZSBiYWkgYmllbiBiaSANCmNhYyBuaGEgZGF1IHR1IG1hYyBzdWMg Y2hpZW0gZHVuZyBuaHUgaGllbiBuYXksIHRoaSB0b2kgbW90IGx1YyBuYW8gZG8sIGxvaSB0aGUg YXkgc2UgDQpuaGFuaCBjaG9uZyBiaWVuIG1hdC4gDQoNCmh0dHA6Ly92bnI1MDAudmlldG5hbW5l dC52bi9jb250ZW50LmFzcHg/aWQ9MTAzNyBUaHVhbiBIYWkgKHRvbmcgaG9wKSA4LzE3LzIwMTAg MTA6MjM6MDIgQU0gKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IEhldCBjaG8gdGh1ZSBydW5nLCBsYWkg Y2hvIHRodWUgYmllbiANCg0KTW90IHNvIGRpYSBwaHVvbmcgZGEgeGUgcmFvIGtoaSB0aHVjIGhp ZW4gY2h1IHRydW9uZyBnaWFvIG1hdCBudW9jIGJpZW4gY2hvIG5ndW9pIA0KZGFuLiBWaWV0IE5h bSBkYSBjbyBiYWkgaG9jIGtpbmggbmdoaWVtIHR1IHZpZWMgY2hvIG51b2MgbmdvYWkgY2hvIHRo dWUgcnVuZywgbmF5IGxhaSANCmRlbiBiaWVuLiBDaHVhIGJpZXQgdGh1ZSB0aHUgZHVvYyBsYSBi YW8sIG5odW5nIGNodW5nIHRhIHNlIHBoYWkgZG9pIG1hdCBuZ3V5IGNvIHRpZW0gDQphbiAgdmUg dGFpIG5ndXllbiwgbW9pIHRydW9uZywgeGEgaG9uIG51YSBsYSBjaHUgcXV5ZW4uDQoNCkRpZW4g ZGFuIFZOUjUwMCB0b25nIGhvcCBiYWkgdmlldCB2ZSB0aW5oIHRyYW5nIGNobyBudW9jIG5nb2Fp IHRodWUgbGFpIG1hdCBiaWVuIGhpZW4gDQpuYXksIG1vaSBkb2MgZ2lhIHRoYW0ga2hhbyB2YSBk b25nIGdvcCB5IGtpZW4gcXVhIHZucjUwMEB2aWV0bmFtbmV0LnZuLg0KDQpUdSB0aHVjIGhpZW4g Y2h1IHRydW9uZyBjaG8gbmd1IGRhbiB0aHVlIGRpZW4gdGljaCBtYXQgYmllbiBkZSBudW9pIHRy b25nIHRodXkgc2FuIA0KKFF1eWV0IGRpbmggMTIzKSwgZGVuIG5heSBtb3Qgc28gZGlhIHBodW9u ZyBkYSB2YSBkYW5nIGNvIHh1IGh1b25nIHV1IHRpZW4gY2hvIGNhYyANCmNodSBkYXUgdHUgbnVv YyBuZ29haSB0aHVlIGRlIGtpbmggZG9hbmggZGljaCB2dSBkdSBsaWNoLCBjb25nIG5naGllcCB2 YSBraGFpIHRoYWMgdGh1eSANCmhhaSBzYW4uIE5ndW9pIGRhbiBvIEtoYW5oIEhvYSBkYW5nIGJp IGdhdCByYSBuZ29haSBuaHVvbmcgY2hvIGNobyBuaGEgZGF1IHR1IG51b2MgDQpuZ29haS4NCg0K VHUgZ2lhbyBjaG8gbmd1IGRhbi4uLiANCg0KVmllYyBjaGluaCBxdXllbiBjYWMgZGlhIHBodW9u ZyBjYXAgcGhlcCBkYXUgdHUgY2hvIGNhYyBjaHUgZHUgYW4gdmVuIGJpZW4ga2luaCANCmRvYW5o IGtoYWNoIHNhbjsgbmhhIGhhbmc7IHJlc29ydDsgbnVvaSB0cm9uZyB0aHV5IHNhbiBkYW5nIGNv IG5ndXkgY28gbWF0IGJpZW4gdmVuIGJvIGJpIA0KImJhbSBuaG8gdmEgcGhvbmcgdG9hIi4gRGll biB0aWNoIG1hdCBudW9jIHZlbiBibyB0dSBRdWFuZyBOaW5oIGRlbiBLaGFuaCBIb2E7IA0KTmlu aCBUaHVhbjsgVnVuZyBUYXU7IEtpZW4gR2lhbmc7IFBodSBRdW9jIGRhbmcgY2h1eWVuIGRhbiBz YW5nIHF1eWVuIHN1IGR1bmcgY3VhIA0KY2FjIG9uZyBjaHUgdHUgbmhhbi4gTW90IHBoYW4ga2hv bmcgbmhvIHRyb25nIHNvIGRvIGxhIG5oYSBkYXUgdHUgbnVvYyBuZ29haS4NCg0KT25nIE5ndXll biBDaHUgSG9pIC0gUGhvIFRvbmcgY3VjIHRydW9uZyBUb25nIGN1YyBCaWVuIHZhIEhhaSBkYW8g KEJvIFROIC0gTVQgbGEgDQpCbyBjaHUgcXVhbiB2YSBjaGl1IHRyYWNoIG5oaWVtIHRydWMgdGll cCB2ZSB2YW4gZGUgbmF5KSBjaG8gYmlldDogWSB0dW9uZyBnaWFvIHF1eWVuIA0Kc3UgZHVuZyBt YXQgbnVvYyBjaG8gbmd1b2kgbnVvaSB0cm9uZyB2YSBraGFpIHRoYWMgdGh1eSBzYW4geHVhdCBw aGF0IHR1IFFEMTIzIGN1YSANCkNoaW5oIHBodSBuYW0gMjAwNiB2b2kgZG9pIHR1b25nIGxhIG5n dSBkYW4sIHBoYW0gdmkgZ2lhaSBxdXlldCBtb2kgY2hpIGR1bmcgbyBuZ2FuaCANCnRodXkgc2Fu LiBTYXUgcXV5ZXQgZGluaCBkbywgbmdhbmggdGh1eSBzYW4gZGEgY2hvIHRpZW4gaGFuaCB0aHUg byBtb3Qgc28gZGlhIHBodW9uZyANCm5odSBRdWFuZyBOaW5oLCBCaW5oIFRodWFuLCBLaWVuIEdp YW5nLi4uDQoNCk5nYXkga2hpIGJhbiBoYW5oIFFEIG5heSwgbmhpZXUgbmdhbmggZGEgY2hvIHJh bmcgcmF0IGtobyBraGEgdGhpIHZpIG1vdCB2dW5nIGJpZW4gDQpraG9uZyBwaGFpIGxhIGRvaSB0 dW9uZyBzdSBkdW5nIGN1YSByaWVuZyBuZ2FuaCB0aHV5IHNhbiwgdmEgY3VuZyBraG9uZyBwaGFp IGNoaSBjbyANCm5ndSBkYW4gbGEgbmd1b2kgaHVvbmcgbG9pLCBtYSBiYW4gY2hhdCBjdWEgaGUg dGhvbmcgdGFpIG5ndXllbiBiaWVuIC0gdmVuIGJpZW4gbmF5IGxhIA0KZG9pIHR1b25nIHN1IGR1 bmcgY3VhIG5oaWV1IG5nYW5oLCBjYWMgbmdhbmggdmEgbmd1b2kgaHVvbmcgZHVuZyBraGFjIG5o YXUgc2UgY3VuZyANCmtoYWkgdGhhYyBkdSBsaWNoLCBiYW8gdG9uLCB0aHV5IHNhbiwgZ2lhbyB0 aG9uZyBkdW9uZyBiaWVuLC4uLk1hdCBiaWVuLCBoYWkgZGFvIGhheSBub2kgDQpyb25nIHJhIGxh IGtob25nIGdpYW4gYmllbiwgZG8gbGEgbmh1bmcgaGUgdGhvbmcgdGFpIG5ndXllbiBjaGlhIHNl LCBuaGlldSBuZ2FuaCBraGFpIA0KdGhhYyBtYSBjaGkgZ2lhbyBjaG8gbW90IG5nYW5oLCBtb3Qg ZG9pIHR1b25nIHN1IGR1bmcgbGEga2hvIGtoYSB0aGkuDQoNClRyZW4gdGh1YyB0ZSwgY2FjIGhl IHRob25nIHRhaSBuZ3V5ZW4gYmllbiBuaHUgdmF5IGRhbmcgZHVvYyBzdSBkdW5nIGRhIG5nYW5o LCBuaHVuZyANCmxhaSBjaGkgZHVvYyBxdWFuIGx5IHRoZW8ga2lldSBkb24gbmdhbmgga2hpZW4g bWF1IHRodWFuIGxvaSBpY2ggbmF5IHNpbmguIFRodWMgdGUgZGEgY28gDQptb3Qgc28gZGlhIHBo dW9uZyBraGkgZ2lhbyBtYXQgYmllbiBjaG8gbW90IG5nYW5oIHRoaSBoaWVuIHR1b25nIGtoYWkg dGhhYyB0cmlldCBkZSBkYSANCm5heSBzaW5oLCBraGFpIHRoYWMgZ2FwIHZvaSBzdXkgbmdoaSAi bXVjIHRoYXQgbmhhbmgga2VvIG1haSBraWEgbmdoaSBxdXlldCB0aGF5IGRvaSANCmxhaSBkZW0g Z2lhbyBjaG8gbmdhbmgga2hhYyBsYSBtYXQgY28gaG9pIi4gDQoNCkN1bmcgdGhlbyBvbmcgSG9p LCBoaWV1IHF1YSBraGFpIHRoYWMsIHN1IGR1bmcgbW90ICJkb24gdmkgYmllbiIgY3VhIHRhIHNv IHZvaSB0aGUgZ2lvaSANCm1vaSBjaGkgYmFuZyAxLzEzMC4gQ2h1bmcgdGEgdmFuIGRhbmcgY28g dGhvaSBxdWVuIGtoYWkgdGhhYyBuaHVuZyB0aHUgdGhvIHNvLCBjaHUgDQpjaHVhIG5naGkgZGVu IHZpZWMga2hhaSB0aGFjIGNhYyBnaWEgdHJpIGRpY2ggdnUgY3VhIGJpZW4gZGUgY28gY3VhIGFu LCBjdWEgZGUuIERpZXUgdnVhIA0Kbm9pIGN1bmcgY28gbmdoaWEgbGEgcXV5IGhvYWNoIHN1IGR1 bmcgYmllbiwgaGFpIGRhbyBwaGFpIGRpIHRydW9jIG1vdCBidW9jIGRlIHN1IGR1bmcgDQpiaWVu IGRhdCBtdWMgdGlldTogZGEgbmdhbmgsIGRhIG11YyBkaWNoLCBkYSBsb2kgaWNoLiANCg0KLi4u Li4uY2h1eWVuIHNhbmcgbmhhIGRhdSB0dSBudW9jIG5nb2FpDQoNClF1YW5nIE5pbmggdmEgS2hh bmggSG9hIGxhIG5odW5nIGRpYSBwaHVvbmcgZGF1IHRpZW4gZ2lhbyBtYXQgbnVvYyBiaWVuIGNo byBkYW4uIA0KTXVjIGRpY2ggY2hpbmggY3VhIG1vIGhpbmggbmF5IGh1b25nIHRvaSBsYSBraGkg Z2lhbyBtYXQgbnVvYyBiaWVuLCBuZ3UgZGFuIGNvIGNodSANCnF1eWVuIHZlIGRpZW4gdGljaCBk dW9jIGdpYW8gZGUgeWVuIHRhbSBkYXUgdHUgc2FuIHh1YXQgZG9uZyB0aG9pIGhvIGN1bmcgZHVv YyB0aHVlIA0KZGllbiB0aWNoIG1hdCBudW9jIHZhIGR1b2MgdGhlIGNoYXAsIHZheSB2b24gbmdh biBoYW5nIHBoYXQgdHJpZW4gc2FuIHh1YXQsIGR1b2MgYm9pIA0KdGh1b25nIG5ldSB4YXkgcmEg dHJhbmggY2hhcC4gU28gZG8gdHJlbiBiaWVuIGtoaSBheSB0aHVjIHN1IHNlIGxhICJzbyB2YW5n IiB2b2kgbmh1bmcgDQpxdXllbiBsb2kgdHVvbmcgdHUgbmh1IHNvIGRvIHRyZW4gZGF0IGxpZW4u IA0KDQpUdSBjaHUgdHJ1b25nIGNobyBuZ3VvaSB0cm9uZyBudW9jIHRodWUgbnVvaSB0cm9uZyB0 aHV5IHNhbiwgaHV5ZW4gVmFuIERvbiAodGluaCANClF1YW5nIE5pbmgpIGRhICJ4ZSByYW8iIGNh cCBwaGVwIGNobyBjYWMgZG9hbmggbmdoaWVwIG51b2MgbmdvYWkgdGh1ZSBkaWVuIHRpY2ggbWF0 IA0KbnVvYy4gVHJlbiBkaWEgYmFuIGh1eWVuIGNvIHRvaSAxOSBkdSBhbiBudW9pIHRyb25nIHRo dXkgc2FuLCBkdSBhbiBpdCBjdW5nIHZhaSBoYSwgbmhpZXUgDQpuaHUgQ3R5IFROSEggVmlldCBN eSBudW9pIHRyb25nIHRodXkgc2FuIG8geGEgUXVhbiBMYW4gNTA2IGhhLCBDdHkgVE5ISCBCYWNo IA0KRGFuZyBudW9pIHRvbSBjb25nIG5naGllcCBvIHhhIEJpbmggRGFuIDIzNyBoYSwgZHUgYW4g Y3VhIEN0eSBUb0RpIG8geGEgRGFpIFh1eWVuIA0KNTY5IGhhLCBkdSBhbiBudW9pIG5nb2MgdHJh aSBjdWEgQ3R5IFROSEggVGFpaGV5byBTaGluanUgbyB4YSBCYW4gU2VuIERvbmcgWGEgMzAgDQpo YS4uLlRvbmcgaG9wIGxhaSBsYSBtb3QgZGllbiB0aWNoIGtob25nIGxvLiANCg0KQ2FjIGJhaSB0 YW0gZGVwIHZlbiBiaWVuIG8gRGEgTmFuZzsgUXVhbmcgTmFtOyBOaW5oIFRodWFuOyBQaHUgUXVv YyBjdW5nIGRhIHZhIA0KZGFuZyBkdW9jIGdpYW8gY2hvIGNhYyBuaGEgZGF1IHR1IHRyb25nIHZh IG5nb2FpIG51b2MgdHUga2hvYW5oIHZ1bmcgaG9hYyB0aHVlIGRhaSANCmhhbi4gTmhpZXUgZG9h biBibyBiaWVuIGRhIHRybyB0aGFuaCBiYXQga2hhIHhhbSBwaGFtIGtob25nIGNoaSBkb2kgdm9p IGR1IGtoYWNoIHZhIA0KbmdheSBjYSBjaGluaCBuaHVuZyBjdSBkYW4gc28gdGFpLg0KDQpIYXUg aGV0IGNvIHNvIHBoYXAgbHkgY3VhIG5odW5nIGR1IGFuIG5heSBkZXUgbGFtIHRoZW8gcXV5ZXQg ZGluaCBjdWEgdXkgYmFuIG5oYW4gZGFuLCANCmRvbiB2aSBkdW9jIGdpYW8gc29tIG5oYXQgbGEg dHUgbmFtIDE5OTkuIFRoZW8gb25nIEhvaSwgZHVvbmcgbmh1IG5odW5nIGR1IGFuIG5heSANCmdp b25nIG5odSBxdXlldCBkaW5oIGRhdSB0dSBjaHUga2hvbmcgcGhhaSBjYXAgZ2lheSBwaGVwIHN1 IGR1bmcgbWF0IGJpZW4uIE5odW5nIGdpbyANCmNvIG5vaSB2ZSB2aWVjIGNobyB0aHVlIG5heSBj byBraGkgZGlhIHBodW9uZyBsYWkgImNhaSIgcmFuZyBraG9uZyBjbyBsdWF0IHRoaSB0YW0gbGFt IA0KdGh1LCB2YXkgdGhvaSA/Li4uDQoNCkNvbiBvIHRpbmggS2hhbmggSG9hLCBjaGkgcmllbmcg bGluaCB2dWMgbnVvaSB0cm9uZyB0aHV5IHNhbiwgdGFpIHZpbmggVmFuIFBob25nIGNvIHRyZW4g DQoxLjAwMGhhIG1hdCBiaWVuIGRhIGR1b2MgZ2lhbyBjaG8gY2FjIGRvYW5oIG5naGllcCBudW9j IG5nb2FpIHZvaSB0aG9pIGhhbiB0b2kgZGEgMjAgDQpuYW0uIA0KDQpEb2FuaCBuZ2hpZXAgdGh1 ZSBkaWVuIHRpY2ggbG9uIG5oYXQsIGxhdSBuYW0gbmhhdCBsYSBDb25nIHR5IFROSEggTmdvYyBU cmFpIE5oYSANClRyYW5nIGN1YSBEYWkgTG9hbiB2b2kgNDQyaGEuIE5nb2FpIHJhLCBjb24gY28g bmh1bmcgZG9hbmggbmdoaWVwIG51b2MgbmdvYWkga2hhYyANCm5odSBDb25nIHR5IE5nb2MgVHJh aSBWaWV0IE5hbSAoTmhhdCBCYW4pIHRodWUgMzAwaGE7IENvbmcgdHkgTmdvYyBUcmFpIE5oYSBU cmFuZyANCihOaGF0IEJhbikgMTMwaGE7IENvbmcgdHkgTWFyaWZhcm0gKE5hIFV5KSAxMzZoYS4u LiBkZSBudW9pIG5nb2MgdHJhaSwgY2EgbG9uZy4uLg0KDQpDaHVhIGhldCwgbyBjYWMgaHV5ZW4g VmFuIE5pbmggdmEgTmluaCBIb2EsIGhhbmcgbmdhbiBoYSBtYXQgbnVvYyBjdW5nIGR1b2MgInRy YW8iIA0KdmFvIHRheSBjYWMgb25nIGNodSBudW9jIG5nb2FpIGRlIGtpbmggZG9hbmggZHUgbGlj aCwgY29uZyBuZ2hpZXAgZG9uZyB0YXUuLi4NCg0KS2hpIGR1b2MgaG9pIHZlIHRpbmggaGluaCBj aG8gdGh1ZSBtYXQgYmllbiBvIGRpYSBwaHVvbmcsIG9uZyBIdXluaCBOZ29jIFRobyCWIA0KVHJ1 b25nIHBob25nIFRhaSBuZ3V5ZW4gLSBNb2kgdHJ1b25nIGh1eWVuIFZhbiBOaW5oIG5vaTogQ2hp IGJpZXQgMiBkdSBhbiwgc28gY29uIGxhaSANCmtob25nIG5hbSBkdW9jIHZpIGtob25nIGR1b2Mg Y2FwIHRyZW4gdGhvbmcgYmFvICghPykuIENvbiBraGkgZHVvYyBob2kgdmUgdG9uZyBkaWVuIA0K dGljaCBtYXQgYmllbiBjdWEgaHV5ZW4gVmFuIE5pbmggdmEgY3VhIHZpbmggVmFuIFBob25nLCBv bmcgVGhvIGN1bmcuLi4gbGFjIGRhdS4NCg0KT25nIERhbyBWYW4gTHVvbmcgLSBUcnVvbmcgcGhv bmcgTm9uZyBuZ2hpZXAgaHV5ZW4gVmFuIE5pbmggY2hvIGJpZXQ6IFRodWMgaGllbiANCmNodSB0 cnVvbmcgZ2lhbyBtYXQgYmllbiwgbWF0IG51b2MgY2hvIGRhbiBudW9pIHRyb25nIHRodXkgc2Fu LCBodXllbiBkYSBob2FuIGNoaW5oIA0KcXV5IGhvYWNoIGN1IHRoZS4gVHV5IG5oaWVuLCBkZW4g bmF5IGNodWEgY28gaG8gZGFuIG5hbyBkdW9jIGdpYW8uDQoNClRyYSBsb2kgdmUgdmFuIGRlIGNo YW0gdHJlIGNhcCBtYXQgbnVvYywgbWF0IGJpZW4gY2hvIGRhbiwgYmEgTHVvbmcgVGhpIEhhaSAt IFBobyBDaHUgDQp0aWNoIGh1eWVuIFZhbiBOaW5oIGNobyBiaWV0OiBEYSBjbyBuaHVuZyBobyBk YW4gZ3VpIGRvbiBsZW4gVUJORCBodXllbiB4aW4gZHVvYyANCmdpYW8gbWF0IG51b2MsIG1hdCBi aWVuLiBIdXllbiBkYSBjaHV5ZW4gZG9uIHNhbmcgUGhvbmcgVGFpIG5ndXllbiAtIE1vaSB0cnVv bmcgZGUgDQpuZ2hpIHRoYW0gbXV1IG5odW5nIGNodWEgdGhheSB0cmEgbG9pLg0KDQpEdW9jIGJp ZXQsIGtob25nIGNoaSBvIGh1eWVuIFZhbiBOaW5oLCBuaGlldSBobyBkYW4gbnVvaSB0cm9uZyB0 aHV5IHNhbiBvIGN1bmcgZGFtIA0KTmhhIFBodSwgaHV5ZW4gTmluaCBIb2EgY3VuZyBkYW5nIGdh cCBraG8ga2hpIGRlIG5naGkgZ2lhbyBtYXQgbnVvYyBkZSB0aGFuaCBsYXAgY2FjIA0KdG8gbGll biBrZXQgc2FuIHh1YXQuICANCg0KTG9pIGJhdCBjYXAgaGFpDQoNCkdTIC0gVFMgTmd1eWVuIFRh YyBBbiAtIENodSB0aWNoIFV5IGJhbiBRdW9jIGdpYSBDaHVvbmcgdHJpbmggSGFpIGR1b25nIGhv YyBsaWVuIA0KY2hpbmggcGh1LCBiYXkgdG86IEhpZW4gbmF5LCBtYXQgZG8gZGFuIHNvIG51b2Mg dGEgbyBjYWMgdnVuZyB2ZW4gYmllbiByYXQgZG9uZyBuZW4gDQpwaGFuIG5oaWV1IGRhIGJpIGto YWkgdGhhYyBxdWEgbXVjLiBEbyBkbywgdmllYyBjaG8gbnVvYyBuZ29haSB2YW8gdGh1ZSBtYXQg YmllbiBzZSANCmNhbmcgZ2F5IGNhbmcgdGhhbmcsIG1hdCBhbiBuaW5oLiBSbyByYW5nLCBraGkg dGh1ZSBkdW9jIHJvaSwgY2FjIG9uZyBjaHUgbnVvYyBuZ29haSBzZSANCm5nYW4gbGFpLCBsYW0g bWF0IHF1eWVuIGdpYW8gdGhvbmcsIG1hdCBxdXllbiBraGFpIHRoYWMgdGFpIHZ1bmcgYmllbiBx dWUgaHVvbmcgY3VhIA0Kbmd1b2kgZGFuLiBCZW4gY2FuaCBkbywgdmllYyB0aHVlIG1hdCBiaWVu IGRlIGtpbmggZG9hbmggcXV5IG1vIGxvbiBjbyB0aGUgZ2F5IG5odW5nIA0KdGFjIGRvbmcga2hv biBsdW9uZyB2ZSBtb2kgdHJ1b25nLiANCg0KQ3VuZyB0aGVvIG9uZyBBbiwgdmllYyBjaG8gdGh1 ZSBtYXQgYmllbiBkZSBraW5oIGRvYW5oIGxhIHZpZWMga2hvbmcgbmVuIGxhbS4gUm8gcmFuZyAN Cm5ldSBjaGkgZGUgdGh1IG1vdCBzbyB0aWVuIGl0IG9pIHR1IHZpZWMgY2hvIHRodWUgbWF0IGJp ZW4gbWEgbGFtIG1hdCBjaHUgcXV5ZW4gY2EgbW90IA0KdnVuZyBiaWVuIHJvbmcgbG9uIHRoaSBk dW5nIGxhIG1vdCB2aWVjIGtob25nIGRhbmcgbGFtLiBOZXUga2hvbmcgc3V5IHhldCBjYW4gdHJv bmcsIA0KY2h1bmcgdGEgc2UgcGhhaSB0cmEgZ2lhIGRhdCB0cm9uZyBoaWVuIHRhaSB2YSB0dW9u ZyBsYWkuDQoNCkNvbiBvbmcgTmd1eWVuIENodSBIb2kgdGhpIGNobyByYW5nOiBiaWVuIGNvbiBs YSBjYXUgY2h1eWVuIGRhaSwgY2F1IGNodXllbiBraG9uZyANCmN1YSByaWVuZyBhaSwgbW90IGNv bmcgdmllYyBkYWkgc3UgY3VhIGNhIGRhbiB0b2MuIER1bmcgZGUsIG1vdCBrZSBjaGF0IG1heSBj YXkgZ28gcnVuZyANCmNvIHRoZSBiaSB4dSB0dSwgY29uIGRhbmcgdGFtIHBoYSB0YW4gbG9uZyBi aWVuIGxhaSBraG9uZyBhaSB0aGF5ISANCg0KLQ0KaHR0cDovL3R1YW52aWV0bmFtLm5ldC8yMDEw LTA3LTIzLWtob25nLXF1YW4tZHVvYy1iaWVuLWxhLWNvLXRvaS12b2ktdHVvbmctbGFpLSBIdXlu aCBQaGFuDQoNClRodSB0dW9uZzogS2hvbmcgcXVhbiBkdW9jIGJpZW4gbGEgY28gdG9pIHZvaSB0 dW9uZyBsYWkhDQoNCi0gQ2hhbSBiYW4gaGFuaCBjaGllbiBsdW9jIGJpZW4gIA0KDQotIFNhdSBi YSBuYW0gdGh1YyBoaWVuIGNoaWVuIGx1b2MgYmllbiBtYSB2YW4gY2h1YSBjbyBxdWkgaG9hY2gg a2hvbmcgZ2lhbiANCg0KIk1pbmggYmFuIGhhbmggY2hpZW4gbHVvYyBiaWVuIGRhIGNoYW0gbGFt IHJvaSwgbmh1bmcgICJvbmcgaGFuZyB4b20iIGxhaSBuaGF5IG5nYXkgDQp2YW8gdGh1YyBoaWVu IG5nYXkgY2hpZW4gbHVvYyBjdWEgbWluaC4gS2hpIGNoaWVuIGx1b2MgYmllbiBkdW9jIGNvbmcg Ym8gY3VvaSBuYW0gDQoyMDA3LCBsaWVuIHRpZXAgdHJvbmcgaGFpIG5hbSAyMDA4LTIwMDkgVHJ1 bmcgUXVvYyBvbiBhbyBjb25nIGJvIGR1b25nIGx1b2kgYm8sIHZvaSANCm11YyBkaWNoIGRheSBs dWkga2hvbmcgZ2lhbiBiaWVuIGN1YSBWaWV0IE5hbSB2YW8uIEhvbiBudWEsIGhvIHN1IGR1bmcg bW9pIGRpZW4gZGFuLCANCmNodSBraG9uZyBjaGkgY2hpbmggdHJpLCBkZSB0dXllbiB0cnV5ZW4u IiANCg0KIlZpZWMgVHJ1bmcgUXVvYyBkYXkgbHVpIGtob25nIGdpYW4gYmllbiBjdWEgdGEgZGEg dGFvIHJhIG1vdCBuZ3V5IGNvIHJhdCBsb24gdmUgbWF0IGFuIA0KbmluaCB2YSBvbiBkaW5oLCB2 YSB0aHUgaGVwIGtob25nIGdpYW4gYmllbiBjdWEgY2h1bmcgdGEiIA0KDQoiRGF1IHR1IHZhbyBr aW5oIHRlIGJpZW4gcGhhaSBjbyBkaWV1IGtpZW4sIHZhIG1vdCB0cm9uZyBuaHVuZyBkaWV1IGtp ZW4gZG8gbGEgdmFuIGRlIGFuIA0KbmluaC4gVG9pIHZhbiBub2kgbGEgbWluaCB4YXkgZHVuZyBj aGllbiBsdW9jIGtpbmggdGUgYmllbiB0cm9uZyBtb2kgdHJ1b25nIGN1YSBCaWVuIA0KRG9uZyBj b24gY2h1YSBkdW5nIG5odW5nIHlldSB0byBraG8gbHVvbmcgbyB0aGUga3kgMjEuIEhvbiBudWEs IHZvaSBjb25nIG5naGUsIG5hbmcgDQpsdWMga2hhaSB0aGFjIHRhaSBuZ3V5ZW4gdGhpZW4gbmhp ZW4gY3VhIGJpZW4gZGFvIGNvbiB5ZXUga2VtLCBwaHVvbmcgdGh1YyBxdWFuZyBjYW5oIA0KY2hh YyB2YW4gY29uIGR1b2MgYXAgZHVuZy4gDQoNClRvaSBuZ2hpLCB0cnVvYyBtYXQsIGRheSBjb24g bGEgdmFuIGRlIHBoYWkgYmFuIHJhdCBuaGlldSwgdmEgcmF0IGNhbiB0aHVjIGRheSBzdSBkYSAN CnBodW9uZyBob2EgdmEgZGEgZGFuZyBob2EgaG9wIHRhYyBxdW9jIHRlLCBuaHUgdG9pIGRhIG5v aS4gTmdvYWkgcmEsIHZlIGNhaSBuaGluIGRhaSBoYW4sIA0KcGhhaSBuaGFuaCBjaG9uZyB0aW0g Y2FjaCBkaSB0aGVvIHh1IGh1b25nIGNodW5nIGN1YSB0aGUgZ2lvaS4gVHVjIGxhLCBsYXkgZGFp IGR1b25nIG51b2kgZGF0IGxpZW4uDQoNCkNoYW5nIG5oaW4gZGF1IHhhLCBuZ2F5ICJvbmcgaGFu ZyB4b20iLiBUcnVuZyBRdW9jIGhpZW4gZGFuZyBkdWEgcmEgbmh1bmcgY2hpbmggc2FjaCANCnRo ZW8geHUgdGhlIGN1YSBNeSBjYWNoIGRheSAyNyBuYW0gbGEgZGFuIGRhbiBkb25nIGN1YSBiaWVu IHF1b2MgZ2lhLCBraG9uZyBraGFpIHRoYWMgDQp0aHV5IHNhbiwgbWEgc2UgcmEga2hhaSB0aGFj IHR1IGRhaSBkdW9uZyBkZSBudW9pIGRhdCBsaWVuLiBIb2kgZG8sIE15IGRhIGNodXllbiBzYW5n IA0Ka2hhaSB0aGFjIG5odW5nIHRhaSBuZ3V5ZW4gcGhpIHZhdCB0aGUsIG5odW5nIGdpYSB0cmkg ZGljaCB2dSBjdWEgY2FjIGhlIHNpbmggdGhhaSBjdWEgYmllbi4NCg0KTyBNeSwgdHJvbmcgbmFt IDIwMDQsIHRyb25nIHNvIDcyIHR5IFVTRCBjdWEga2luaCB0ZSBiaWVuIHZhIGRhaSBkdW9uZywg dGhpIDIzIHR5IFVTRCANCmRvIG5naGUgY2EgZ2lhaSB0cmkgdmEgZGljaCB2dSBiYW4gY2EgY2Fu aCB2YSBzYW4gaG8gZ29wIHZhby4gTWEgY2Ega2h1IGJhbyB0b24gZG8gDQpraG9uZyBkdW5nIGRl biB0aWVuIG5oYSBudW9jLCBob2FuIHRvYW4gZG8gdHUgbmhhbiwga2UgY2EgbnVvYyBuZ29haSBk YXUgdHUuIE15IGRhIGRpIA0KZGVuIG5lbiBraW5oIHRlIHNpbmggdGhhaSwgdnVhIGJlbiB2dW5n IHZ1YSBoaWV1IHF1YS4gVHJvbmcga2hpIGRvLCBjaHVuZyB0YSBudW9pIGJhc2EgDQp0cmVuIGRh dCBsaWVuLCByb2kgcmEgYmllbiBkYW5oIGJhdCwgY2hpIGJhbiBkdW9jIHZlbiB2ZW4gY28gNCwy IHR5IFVTRC4NCg0KTyBWaWV0IE5hbSwgY2hhbmcgaGFuLCB0aGF5IHZpIGRhbmggY2EgbyBWaW5o IE5oYSBUcmFuZywgY2h1bmcgdGEgeGF5IGtodSBiYW8gdG9uLCB2YSANCnBoYXQgdHJpZW4gbmdo ZSBjYSBnaWFpIHRyaSwgcm9pIGR1IGxpY2ggbGFuIGJpZW4uIFZhIHRpZW4gdGh1IGR1b2MgdHUg ZG8gbG9uIGhvbiBuaGlldSBuZ2hlIGRhbmggY2EuDQoNClR1eSBuaGllbiwgY3VuZyBjYWkga2hv IG8gZGF5LiBLaHUgYmFvIHRvbiBWaW5oIE5oYSBUcmFuZyBkYSBkdW9jIHRoaWV0IGxhcCwgbmh1 bmcgY2EgDQp0aGkgaGV0LCBjaGFuZyBjbyBnaSBkZSBuZ2FtIGtoaSBsYW4gYmllbiBudWEuIA0K VGh1IG5oYXQgbGEga2hvbmcgY28gbW90IGNvIGNoZSBwaG9pIGhvcCBsaWVuIG5nYW5oLCBtYW5o IGFuaCBuYW8gYW5oIGF5IGtoYWkgdGhhYy4gDQpUaHUgaGFpIGxhIGtob25nIGRhbSBiYW8gZHVv YyBzaW5oIGtlIGNobyA4IGtob20gZGFuIHRyZW4gZGFvLiBIbyBvIGRvIHR1IDMtNCBkb2kgcm9p LCANCmNodSB5ZXUgc29uZyBiYW5nIG5naGUgZGFuaCBjYSBvIFZpbmggTmhhIFRyYW5nLg0KDQpU b2kgZGEgZGUgbmdoaSBsYSBxdWkgaG9hY2ggZGUgeGFjIGRpbmggY2FjIHZ1bmcgY3VhIHNvbmcg dmVuIGJpZW4sIHZlbiBkYW8sIGRlIGxhbSByYW5nIA0Kc2FuIGhvIG5oYW4gdGFvLiBSb2kgbXVh IHRhdSBzYXQgY3VhIGRhbiBuZ2hlbyBkYW5oIGNoaW0geHVvbmcsIHRheSBzYWNoIGRpIHJvaSBz b24gDQpjaG9uZyBnaSB2YW8uIENoaSA1IG5hbSBzYXUsIHNhbiBobyBiYW0gdmFvIGxhIGhldCBn aSB0aG9pLiBTYXUga2hpIHRyYW5oIHZ1bmcgcXVvYyBwaG9uZyByYSwgDQpuaHVuZyB2dW5nIGR1 b2MgcGhlcCwgY2h1bmcgdGEgY2hvIGNoaW5oIHNhY2ggcmllbmcsIGNobyBudW9jIG5nb2FpIGRh dSB0dSB2YW8gZG8sIA0KZGUgbGFtIGtpbmggdGUgYmFvIHRvbi4gQ2h1bmcgdGEgdnVhIGNvIHRp ZW4sIHZ1YSBiYW8gdG9uIGR1b2MuIA0KDQpUcm9uZyBob2FuIGNhbmggVmlldCBOYW0sIGNvbmcg dGhlbSBzdSBtbyBjdWEgaG9uIG51YSB2ZSBjaGluaCBzYWNoIHZhIHRpbmggbGllbiANCm5nYW5o IGR1b2MgY29pIHRyb25nLCBuZW4gZGF1IHR1IHZhbyBkdSBsaWNoIGxhIGFuIHRvYW4gbmhhdC4g Qm9pIGR1IGxpY2ggdG9pIGNhYyBkYW8gZ2FuIA0KYm8sIHJvaSB2ZW4gYmllbiwga2hvbmcgaGUg ZG9uZyB0b2kgbmh1bmcga2h1IHZ1YyBuaGF5IGNhbSwgdmEgb24gZGluaCBkYXUgdHUgaG9uLiIt IEdpYW8gc3UgTmd1eWVuIENodSBIb2ksIA0KUGhvIFRvbmcgY3VjIHRydW9uZyBUb25nIGN1YyBC aWVuIHZhIEhhaSBkYW8sIEJvIFROTVQsIHBoYW4gdGljaC4gDQoNCmh0dHA6Ly93d3cudnR2NC52 bi9OZXdzRGV0YWlscy5hc3B4P05ld3NJRD0xMDkwNzYgDQoNClRodSB0dW9uZzogQmllbiBkYW8g Y2FuIGR1b2MgZGF1IHR1IG5oaWV1IGhvbiBudWEgLSBCaWVuIERvbmcgZGFuZyB0aHVjIHN1IHRy byB0aGFuaCBraG9uZyBnaWFuIHNpbmggdG9uIGN1YSBWaWV0IE5hbSANCg0KTmFtIDIwMDUsIGtp bmggdGUgYmllbiBjaGllbSAyMiUsIHZhIHRoZW8gZHUgYmFvLCBkZW4gbmFtIDIwMjAsIGtpbmgg dGUgYmllbiBzZSBjaGllbSBob24gNTAlIEdEUCBjdWEgY2EgbnVvYy4NCg0KTmh1bmcgbmhpbiB2 YW8gbXVjIGRhdSB0dSBjaG8gYmllbiBkYW8gaGllbiB0aG9pLCB0aGF5IHJhbmc6IG11YyBkbyBk YXUgdHUgcXVhIHRoYXAgc28gdm9pIG5odW5nIGdpIG1hIGJpZW4gZGFvIA0KZG9uZyBnb3AgdmFv IHRvbmcgR0RQIGN1YSBjYSBudW9jLg0KDQpUaGVvIE5naGkgcXV5ZXQgc28gMzgvMjAwOS9RSDEy IHZlIHBoYW4gYm8gbmdhbiBzYWNoIHRydW5nIHVvbmcgbmFtIDIwMTAsIA0KdHJvbmcgVG9uZyBz byBjaGkgY2FuIGRvaSBuZ2FuIHNhY2ggVHJ1bmcgdW9uZyAzNzAuNDM2IHR5IGRvbmcgdGhpIGNo aSBjaG8gDQpDaHVvbmcgdHJpbmggYmllbiBEb25nLCBoYWkgZGFvLCBjYW5oIHNhdCBiaWVuIGNo aSBjaGllbSAwLjQ2JSAoMTcwOCB0eSBkb25nKS4NCg0KKGdoaSBjaHU6IDE3MDggdHkgZG9uZyBj aGkgdHVvbmcgZHVvbmcgMzUlIHNvIG5vIGRvbmcgNTAwMCB0eSBkb25nIGN1YSBjaHVvbmcgdHJp bmggbWlhIGR1b25nIHRpbmggZGVuIGdpdWEgbmFtIDIwMDYpLg0KDQotDQpodHRwOi8vdmlldGJh by52bi9YYS1ob2kvSG9jLWdpYS1jYXAtYmFuZy10aGF0LXRyYW4tbGFuLzQwMjI3ODExLzE1Ny8g MDUvMTEvIDIwMDcsIDA2OjMwIEdNVCs3IA0KDQpUaHUgdHVvbmc6ICJIb2MgZ2lhLCBjYXAgYmFu ZyB0aGF0IiB0cmFuIGxhbiANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDA5MTEyNTA5MDQyNzEx MlAwQzk5MjAvY2h1YS1naWFvLXF1eWVuLXRoYW5oLWxhcC1kYWktaG9jLWNoby1iby10cnVvbmcu aHRtIE5HVVlFTiBMRSAxMDowMyAoR01UKzcpIC0gMjUvMTEvMjAwOSANCg0KVGh1IHR1b25nOiBU aGVvIEx1YXQgR2lhbyBkdWMsIHRoYW0gcXV5ZW4gdGhhbmggbGFwIHRydW9uZyBkYWkgaG9jIHRo dW9jIFRodSB0dW9uZyBDaGluaCBwaHUNCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAwNC9Nby10cnVvbmctZGUtZGFpLUtob25nLW5lbi10aHVvbmctZGlhLXBodW9uZy1r aWV1LWRvLTkwNDc3Ny8NCg0KVGh1IHR1b25nOiBNbyB0cnVvbmcgZGUgZGFpDQoNCkNhYyB0cnVv bmcgdGh1b25nIGtob25nIGRhdCBuaHVuZyB0aWV1IGNoaSBjbyBiYW4gbmh1IHNvIGx1b25nIHZh IGNoYXQgbHVvbmcgZG9pIG5ndSANCmdpYW5nIHZpZW4gY28gaHV1LCBkaWVuIHRpY2gsIHRoaWV0 IGJpIHRoaSBuZ2hpZW0sIHRodWMgaGFuaC4uLg0KDQpUcnVuZyBiaW5oIG1vaSB0aW5oIGNvIHRv aSA2LDUgdHJ1b25nIERILCBDRC4gNzglIHRyb25nIGRvIGxhIG5hbmcgY2FwIHR1IGNhYyBraG9h LCANCmNhYyB0cnVvbmcgY2FvIGRhbmcsIHRydW5nIGNhcC4gQ2hpIDIyJSB0aGFuaCBsYXAgbW9p Lg0KDQpUaW5oIHJpZW5nIGdpYWkgZG9hbiAyMDA1IC0gMjAwOSAobGEgZ2lhaSBkb2FuIG9uZyBO Z3V5ZW4gVGFuIER1bmcgbGFtIHRodSB0dW9uZyksIGNvIHRvaSAyMDAvMzEyIHRydW9uZyBESCwg Q0QgZHVvYyB0aGFuaCBsYXAuDQoNCk5oaWV1IGdpYW5nIHZpZW4gZGF5IHRvaSAxLjAwMCB0aWV0 L25hbSwgZ2FwIGdhbiA0IGxhbiBzbyB2b2kgcXV5IGRpbmguDQoNCk11YyB0aWV1IGRlbiAyMDE1 IGRhdCBpdCBuaGF0IDUwJSBHViB0cmluaCBkbyB0aWVuIHNpIG5odW5nIGRlbiBuYXkgbW9pIGRh dCAxMCwxNiUuIA0KDQpTdWF0IGRhdSB0dSB0dSBuZ2FuIHNhY2ggY2hvIDEgc2luaCB2aWVuIGxh IDIsNSB0cmlldSBkZW4gMyB0cmlldSBkb25nL25hbSAoZGluaCBtdWMgbGEgNiB0cmlldSBkb25n KS4NCg0KVHUga2hpIGNvIHF1eWV0IGRpbmggdGhhbmggbGFwIGRlbiBraGkgZHVvYyB0dXllbiBz aW5oIGtob2EgZGF1IHRpZW4sIHJhdCBuaGlldSB0cnVvbmcgDQpjaHVhIHRodWMgaGllbiBkb25n IGJvIDQgeWV1IGNhdSB2ZSBkYXQgZGFpLCBkb2kgbmd1LCB2b24gZGF1IHR1IHZhIGNhYyBkaWV1 IGtpZW4gZGFtIGJhbyBjaGF0IGx1b25nLiANCg0KaHR0cDovL3d3dy5iYW9kYXR2aWV0LnZuL1V0 aWxpdGllcy9QcmludFZpZXcuYXNweD9JRD02MzkyMiAxOS8xMC8yMDA5IC0gOTowMiBBTSBRdWFu ZyBEYW4NCg0KQ28gdGhvbmcgdGluIG11b24gbW8gdHJ1b25nIChESCkgcGhhaSBjbyBjaGkgcGhp ICJsb3QgdGF5IiB0dSAyIC0gNCB0eSBkb25nIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v Z2lhb2R1Yy90dXllbnNpbmgvMjAxMDAxL1hlLXJhb3R1eWVuLXNpbmgtUGhhdC10aWVuLXRydS1j aGktdGlldS1jaGktbGEtY2h1eWVuLW5oby04OTAyNzQvIDA3OjE4LCAxOS8wMS8yMDEwIChHTVQr NykNCg0KQ2FuZyBwaGF0LCBjYW5nIHRhbmcgJ3hlIHJhbycgdHV5ZW4gc2luaA0KDQpDbyB0cnVv bmcgZ29pIGRvaSBzbyB0aGkgc2luaCB0cnVuZyB0dXllbiBsZW4gZ2FwIDIgbGFuIGNoaSB0aWV1 IGR1b2MgZ2lhbyANCmR1IGJpZXQgc2UgImJpIiBwaGF0IHRpZW4gaGF5IGtoYXUgdHJ1IHZhbyBu YW0gc2F1IGN1bmcuLi4ga2U/IA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjUvczIwMi00MDcy OTIvbmVuLWdpYW8tZHVjLWNoYXktdGhlby10aGFuaC10aWNoLmh0bSAwNy8wNy8yMDEwIC0gMDk6 NTYgDQoNClRodSB0dW9uZzogTmVuIGdpYW8gZHVjIGNoYXkgdGhlbyAidGhhbmggdGljaCI/DQoN ClRpbmggdHJhbmcgImNoYXkgdGhlbyB0aGFuaCB0aWNoIiBraG9uZyBjaGkgdGhlIGhpZW4gbyBn aWFvIGR1YyBwaG8gdGhvbmcsIG1hIGNvbiBib2MgbG8gDQpjbyBwaGFuIG1hbmggbWUgaG9uIG8g YmFjIGRhaSBob2MsIGNhbyBkYW5nLg0KDQpHYW4gZGF5LCBuaHVuZyB0aG9uZyB0aW4gdHUgYmFp IGJhbzogIk5lbiBnaWFvIGR1YyB0aGFuaCB0aWNoIGxhbSB2YW4gZGUgZGFvIGR1YyB4YSBob2kg DQp0cmFtIHRyb25nIGhvbiIgZGFuZyB0cmVuIE5OVk4gKDctNi0yMDEwKSBkYSBkdW9jIGR1IGx1 YW4gcXVhbiB0YW0uIERvIGxhIGJhaSBiYW8gDQpnaGkgbGFpIGxvaSBwaGF0IGJpZXUgY3VhIDIg ZGFpIGJpZXUgcXVvYyBob2kgTmdvIFRoaSBNaW5oIChRdWFuZyBOaW5oKSB2YSBIdXluaCBWYW4g DQpUaSAoQmluaCBUaHVhbikuDQoNCkRvYyBkdW9jIGJhaSBiYW8sIHRvaSByYXQgaG9hbiBuZ2hl bmgsIHZhIGJheSB0byBuZ2F5IG5odW5nIGJ1YyB4dWMgYmF5IGxhdSB2ZSB0aW5oIA0KdHJhbmcg c3V0IGdpYW0gY3VhIEdEJiBEVCBudW9jIG5oYS4gVG9pIHJhdCBkb25nIHRpbmggdm9pIHkga2ll biBjdWEgZGFpIGJpZXUgTmdvIFRoaSANCk1pbmgga2hpIGRhaSBiaWV1IGRhdCBjYXUgaG9pIGhv YWkgbmdoaTogIi4uIHBoYWkgY2hhbmcgQ2hpbmggcGh1IG1vbmcgbXVvbiBuZ2FuaCANCmdpYW8g ZHVjIHBoYW4gZGF1IGRlIGNoYXkgdGhlbyB0aGFuaCB0aWNoLCBwaGFuIGRhdSBkZSBkYXQgMjAw IHNpbmggdmllbi8xdmFuIGRhbiB2YW8gDQpuYW0gMjAxMD8iLiBQaGFpIGNvbmcgbmhhbiB2b2kg bmhhdSByYW5nLCBuZW4gZ2lhbyBkdWMgY3VhIGNodW5nIHRhIGhpZW4gbmF5IGRhbmcgDQpjaGF5 IHRoZW8gdGhhbmggdGljaC4gTmV1IGtob25nIGNoYXkgdGhlbyB0aGFuaCB0aWNoIHRoaSBsYW0g c2FvIGNoaSB0cm9uZyB0aG9pIGdpYW4gMTEgDQpuYW0gdHUgMTk5OCBkZW4gMjAwOSBkYSBjbyAz MDQgdHJ1b25nIERIIC0gQ0QgZHVvYyB0aGFuaCBsYXAgdmEgbmFtIGhvYyAyMDA4LTIwMDkgDQp0 b25nIHF1eSBtbyBkYW8gdGFvIERILENEIGxhIDEuNzE5LjQ5OSBzaW5oIHZpZW4sIHRhbmcgZ2Fw IDEzIGxhbiBzbyB2b2kgbmFtIDE5ODc/IA0KVmEsIG5ldSBraG9uZyBjaGF5IHRoZW8gdGhhbmgg dGljaCB0aGkgbGFtIHNhbyB0eSBsZSBzaW5oIHZpZW4vc28gZGFuICgxIHZhbiBkYW4pIG5hbSAN CjE5OTcgbW9pIDgwLCBuYW0gMjAwOSBkYSBsZW4gMTk3LCBnYXAgMiw0NCAoc28gbGlldSBuYXkg bGF5IHRoZW8gYmFvIE5oYW4gRGFuIHNvIHJhIA0KbmdheSAxMy82LzIwMTApPyBRdWEgbGEgbmh1 bmcgY29uIHNvIGRhbmcga2luaCBuZ2FjLiBOZXUgdG9pIG5obyBraG9uZyBuaGFtIHRoaSB0cmVu IA0KdGhlIGdpb2kgY2h1YSBjbyBtb3QgcXVvYyBnaWEgbmFvIGNvIHRvYyBkbyBnaWFvIGR1YyB0 YW5nIG5oYW5oIG5odSB2YXkuIE5nYXkgeHVhIG1vdCANCmdpYSBkaW5oLCBtb3QgbGFuZyBjbyBt b3QgY2F1IGhvYyB0cm8gZGF1IERILCBDRCBkYSBsYSBjaHV5ZW4gdHJvbmcgZGFpOyBuZ2F5IG5h eSBtb3QgDQpnaWEgZGluaCAyLTMgY29uIGhvYyBESCwgbW90IGxhbmcgY28gbXVvaSBuZ3VvaSBo b2MgREggZGEgbGEgY2h1eWVuIGtob25nIGhpZW0uIENvIHRoZSBub2kga2hvbmcgc2FpIHJhbmcg REgsIENEIGRhbmcgbW8gY3VhIGNobyB0YXQgY2EgbW9pIGhvYyBzaW5oIHRvdCBuZ2hpZXAgVEhQ VCwgZGkgDQpuaGllbiBvIGRheSBjbyBuaHVuZyB0cnVvbmcgY2hhdCBsdW9uZyBkYW8gdGFvIGNh bywgbmh1bmcgY3VuZyBjbyBuaHVuZyB0cnVvbmcgY2hpIA0KY2FuIGNvIHRpZW4gbm9wIGR1IGxh IGR1b2MgaG9jLiANCg0KTmd1eSBoaWVtIGN1YSBuYW4gZ2lhbyBkdWMgREgsIENEIGhpZW4gbmF5 IGxhIGRhbyB0YW8gdHJhbiBsYW4sIHNvIGx1b25nIHRydW9uZyBraG9uZyANCmRpIGRvaSB2b2kg Y2hhdCBsdW9uZyBkYW8gdGFvIChjaGkgdGluaCByaWVuZyBzbyBnaWFuZyB2aWVuLCB0dSBuYW0g MTk4NyBkZW4gbmFtIDIwMDkgDQp0YW5nIDMgbGFuLCB0cm9uZyBsdWMgc28gc2luaCB2aWVuIHRh bmcgMTMgbGFuKS4gS2hvbmcgY2hpIGR1bmcgbyBkbywgZGFvIHRhbyB0cmFuIGxhbiBjb24gDQpj aHVuZyB0byBtb3QgZGlldSBsYSBtb2kgcXVhbiBoZSBnaXVhIGRhbyB0YW8gdmEgbmh1IGNhdSBz dSBkdW5nIGN1YSB4YSBob2kgbGEgbW9pIHF1YW4gDQpoZSAidHJvbmcgZGFuaCB4dW9pLCBrZW4g dGhvaSBuZ3VvYyIsIGRhbyB0YW8gdGhpIGN1IGRhbyB0YW8sIHZpZWMgbmh1IGNhdSB4YSBob2kg dGhpIHBoYW4gDQphaSBuYXkgbG8uIFRpbmggdHJhbmcgc2luaCB2aWVuIHNhdSBraGkgdG90IG5n aGllcCBraG9uZyBjbyB2aWVjIGxhbSBuZ2F5IGNhbmcgdGFuZywgbW90IA0KYm8gcGhhbiBraG9u ZyBuaG8gc2luaCB2aWVuIHNhdSBraGkgcmEgdHJ1b25nIGRhIGtob25nIGxhbSBkdW5nIG5naGUg bmdoaWVwIHRoZW8gDQpjaHV5ZW4gbW9uIGRhbyB0YW8sIGhvYWMgbGFvIGRvbmcgY2hhbiB0YXks IGJvIHBoaSBraWVuIHRodWMgaG9jIGR1b2MuIFF1YSBkdW5nIG5odSANCmxvaSBkYWkgYmlldSBO Z28gVGhpIE1pbmggIlZpZWMgY2hheSB0aGVvIHRoYW5oIHRpY2ggYXkgZGEgZ2F5IHJhIGhhdSBx dWEgbGEgY2hhdCBsdW9uZyANCmRhbyB0YW8gZ2lhbSBzdXQgdmEgZGEgc28gdGhhbmggbmllbiBk YW5nIHBoYWkgZ2FuaCBjaGl1Ii4gDQoNCkRhbyB0YW8gdHJhbiBsYW4gY29uIGRhbiBkZW4gdGlu aCB0cmFuZyBkYW5oIGRvbmcgdHJpbmggZG8sIG5hbmcgbHVjIGN1YSBjYWMgc2luaCB2aWVuLCAN CmJvaSB0YXQgY2EgY2FjIHNpbmggdmllbiBkZXUgY28gY3VuZyBtb3QgYmFuZyBjYXAgKGN1IG5o YW4pLCBjdW5nIG1vdCB0aG9pIGdpYW4gZGFvIHRhby4gDQpUb2kgY2hvIHJhbmcgZGlldSBuYXkg cmF0IG5ndXkgaGllbSwgYmF0IGNhcCB0cm9uZyB0dXllbiBkdW5nIChsb2kgdHV5ZW4gZHVuZyBr aG9uZyBjYW4gDQpjdSBjaHUgeWV1IHZhbyBuYW5nIGx1YyB0aHVjIHRpZW4pLCBraG9uZyB0YW4g ZHVuZyBkdW9jIG5oYW4gbHVjLCBibyBwaGkgbmh1bmcgbmd1b2kgDQp0YW0gaHV5ZXQsIGdheSBz dSB0aGlldCB0aG9pLCBnYXkgaG9haSBuZ2hpIHRyb25nIHhhIGhvaS4gTWEsIGRvaSB0dW9uZyBj aGl1IHRoaWV0IHRob2kgDQpuaGF0LCBjaGl1IGFuaCBodW9uZyBtYW5oIG5oYXQgdHJvbmcgdmFu IGRlIG5heSBsYSBuZ3VvaSBub25nIGRhbiB2YSBjb24gZW0gY3VhIGhvLiANCk1vdCBnaWEgZGlu aCBub25nIGRhbiBwaGFpIGNvIGdhbmcgcmF0IGxvbiBtb2kgbnVvaSBub2kgbW90IG5ndW9pIGNv biBob2MgZGFpIGhvYy4gQ29uIA0KZW0gbm9uZyBkYW4gZGkgaG9jIGN1bmcgaGV0IHN1YyBraG9u IGtoby4gSG8gdGhpZXUgbW9pIGRpZXUga2llbiB0aHVhbiBsb2kgZGUgcGh1YyB2dSANCmhvYyB0 YXAsIG5odW5nIGRhIHBoYW4gaG8gbGEgbmh1bmcgaG9jIHRybyBjbyBnYW5nLCBob2MgYmFuZyBu YW5nIGx1YyB0aHVjIHN1LCBib2kgZG8gbGEgDQpjb24gZHVvbmcgZHV5IG5oYXQgZ2l1cCBobyB0 aG9hdCBraG9pIGhvYW4gY2FuaCAoa2hhYyB2b2kgY2FjIGRvaSB0dW9uZyBraGFjKS4gTmh1bmcs IA0KcmEgdHJ1b25nLCBobyBraG9uZyBjbyB2aWVjIGxhbSwga2hvbmcgZHUgc3VjIGNhbmggdHJh bmggZG9pIHZvaSBuaHVuZyBjbyBjaGlldSwgY2F1IGFtIA0KKG5oYXQgbGEgdHJvbmcgdmFuIGRl IGNhbmggdHJhbmggdmFvIGNvbmcgdGFjIHRhaSBjbyBxdWFuIG5oYSBudW9jKS4gVG9pIGNobyBy YW5nIGRheSBsYSANCmJpZXUgaGllbiBjdWEgc3UgcGhhbiBob2EgZ2lhdSBuZ2hlbywgdmEgdmUg bGF1IGRhaSB0aW5oIHRyYW5nIHBoYW4gaG9hIG5heSBjYW5nIHRyYW0gDQp0cm9uZywga2luaCB0 ZSBjYW5nIGRpIGxlbiBzdSBwaGFuIGhvYSBjYW5nIGtob25nIHRoZSBnaWFpIHF1eWV0IHZpIGNv IG5oaWV1IG1vaSByYW5nIA0KYnVvYy4gTmhpbiB2ZSBiYW4gY2hhdCwgdGhpIGRvIGxhIGRvIGtp bmggdGUgdGhpIHRydW9uZywgbG9pIHNvbmcgdGh1YyBkdW5nLCBsb2kgdGlldSB0aHUgdmF0IGNo YXQgZGFuZyB0YWMgZG9uZywgY2hpIHBob2kgbWFuaCBtZSBsZW4gbW9pIG1hdC4gSGF5IGRhdCBt b3QgZ2lhIHRoaWV0LCBtb2kgbmd1b2ksIG5oYXQgbGEgbmh1bmcgb25nIHRoYXksIG5odW5nIG5o YSBxdWFuIGxpIGxhbSBkdW5nIGx1b25nIHRhbSBjdWEgbWluaCwga2hvbmcgdGhhbSANCmxhbSwg bHVvbiB0cmF1IGRvaSB2ZSBjaHV5ZW4gbW9uIG5naGllcCB2dSB2YSBkYW8gZHVjIG5naGUgbmdo aWVwLC4uLiB0aGkgY28gbGUgZ2lhbyBkdWMgDQpWaWV0IE5hbSB2YW4geHVuZyB2b2kgdHJ1eWVu IHRob25nIGxpY2ggc3UuIA0KDQpOb2kgdmUgdGh1YyB0cmFuZyBnaWFvIGR1YyBkYW8gdGFvIHRy YW4gbGFuLCBCYW8gTmhhbiBEYW4gc28gcmEgbmdheSAxMy82LzIwMTAsIHRyaWNoIGxvaSANCmN1 YSBkYWkgYmlldSBOZ3V5ZW4gTmdvYyBNaW5oIHRpbmggTmluaCBUaHVhbjogInRhaSBoYXUgaGV0 IGNhYyB0aW5oLCB0aGFuaCBwaG8gaGllbiANCm5heSBjYWMgdHJ1bmcgdGFtIGdpYW8gZHVjIHRo dW9uZyB4dXllbiBjdWEgU28gR2lhbyBkdWMgdmEgZGFvIHRhbywgY2FjIHRydW9uZyBjYW8gDQpk YW5nLCB0cnVvbmcgY2hpbmggdHJpLCB0cnVvbmcgZGF5IG5naGUsIGtlIGNhIHRydW9uZyBkYW8g dGFvIGJvaSBkdW9uZyBjYW4gYm8gY3VhIGNhYyANCmRvYW4gdGhlIGRldSBkdW9jIHBoZXAgbGll biBrZXQgdm9pIGNhYyB0cnVvbmcgZGFpIGhvYyBkZSB0byBjaHVjIGNhYyBjbyBzbyBnaWFvIGR1 YyBkYWkgDQpob2MgdGFpIGNodWMgcmF0IGRlIGRhbmcsIHRodSBodXQgc28gbHVvbmcga2hhIGxv biBjYWMgaG9jIHZpZW4gdGhlbyBob2MuIENhYyBjbyBzbyBkYW8gDQp0YW8gbmF5IGtob25nIHRo ZW8gbW90IHRpZXUgY2h1YW4gbmFvLCB0cnVvbmcga2hvbmcgcmEgdHJ1b25nLCBsb3Aga2hvbmcg cmEgbG9wLi4uIFZpZWMgDQp0byBjaHVjIHRoaSB0b3QgbmdoaWVwIGhldCBzdWMgc28gc2FpLCBk ZSBkYW5nLCB2YSB0aSBsZSB0b3QgbmdoaWVwIHBobyBiaWVuIGxhIDEwMCUiLg0KDQpEYXkgbGEg bW90IHZhbiBkZSBnYXkgYnVjIHh1YyBsb24gdHJvbmcgeGEgaG9pLiBEYW5nIGx1dSB5IGhvbiBk YXkgbGEgImhpbmggdGh1YyBraW5oIA0KZG9hbmggc2lldSBsb2kgbmh1YW4iLCBnaWFvIGR1YyBj aGF5IHRoZW8gYmFuZyBjYXAgKGhvYyBnaWEgYmFuZyB0aGF0KSBjb24gbGVvIHRoYW5nIA0Kc2Fu ZyBjYSBsaW5oIHZ1YyBkYW8gdGFvIHNhdSBkYWkgaG9jLiBOZ2F5IHh1YSBuZXUgbW90IHNpbmgg dmllbiB0b3QgbmdoaWVwIGRhaSBob2MgbG9haSANCmdpb2ksIHRoYXQgc3UgY28gbmFuZyBsdWMs IHRoaSBtb2kgIGR1b2MgZGFvIHRhbyB0aWVwIGJhYyBzYXUgZGFpIGhvYywgY29uIG5nYXkgbmF5 IGdhbiANCm5odSBxdWEgZGUgZGFuZyB0aGFtIGR1IGRhbyB0YW8gdGhhYyBzaS4gUXVhbiB0YW0g dHJ1b2MgdGllbiBsYSAidGllbiBkYXUiLCBjb24ga2hvbmcgDQpjYW4gYmFuIGtob2FuICJ0cmlu aCBkbyBvIGRhdSBkZSBob2MiLiBCb2ksIGNvIGNhbyBob2MgdGFwIHRydW5nLCBjaGluaCBxdXks IGNvIGNhbyBob2MgDQp0YWkgY2FjIHRydW5nIHRhbSBsaWVuIGtldCwga2hvbmcgdGFwIHRydW5n LCBraG9uZyBraG8gZGUgbHVhIGNob24gbm9pIGhvYyB0aGljaCBob3Agdm9pIA0KdHJpbmggZG8s IG1pZW4gbGEgY28gdGllbi4gVmF5IGtldCBxdWEgc2UgdGhlIG5hbz8gTW9pIG5ndW9pIGFpIGFp IGN1bmcgZGFuZyBob2FuZyBuaGFuIGhvYyB2aSB0aGFjIHNpLiBDbyB0aGUgY2EgeGEgaG9pIGJp ZXQgY2hhdCBsdW9uZyBnaWFvIGR1YyBjbyBwaGFuIGhvYSBnaXVhIG5ndW9pIGR1b2MgZGFvIA0K dGFvIGNoaW5oIHF1eSB2YSBuZ3VvaSBraG9uZyBkdW9jIGRhbyB0YW8gY2hpbmggcXV5LCBuaHVu ZyBOaGEgbnVvYyBkYSBjbyBjYWNoIGdpIGRlIA0KcGhhbiBiaWV0PyBDbyB0aGUgcGhhbiBiaWV0 IGR1b2MgZ2l1YSBtb3QgaG9jIHZpZW4gY2FtIGN1aSBob2MgdGFwLCBuZ2hpZW4gY3V1LCB2aWV0 IA0KZHVvYyBoYW5nIGNodWMgYmFpIGJhbyBjaG8gY2FjIHRhcCBjaGksIGhvYW4gdGhhbmggbHVh biB2YW4gbG9haSBnaW9pIHZvaSBtb3QgaG9jIHZpZW4gDQpsYW5nIG5oYW5nIG5odW5nIGN1bmcg aG9hbiB0aGFuaCBraG9hIGhvYywgbmV1IGNoaSBuaGluIHZhbyBoYWkgY2h1ICJ0aGFjIHNpIiBn aGkgbyANCmRhbmggbXVjIGhvIHNvPyBOaGEgbnVvYyBjbyBsdWMgbmFvIG5naGkgZGVuIGNhbiBw aGFpIHBoYW4gYmlldCB2YSBkb2kgeHUgKHR1b25nIHh1bmcgDQp2b2kgY2hlIGRvKSB2b2kgbmh1 bmcgbmd1b2kga2hhYyBuaGF1IG5heSBraG9uZyBoYXkgbGEgY3VuZyAuLi4gImJhbmggZHVjIG1v dCBtZXQiPyANCkNoaW5oIHZpIHZheSBtYSB2byBzbyBrZSBkYXUgY28sIGxvaSBkdW5nIGNhYyB0 cnVuZyB0YW0gbGllbiBrZXQgZGUgImNodWFuIGhvYSIsICJuYW5nIA0KY2FvIHRyaW5oIGRvIiBj dWEgbWluaCwgY2h1IHlldSB4dWF0IHBoYXQgdHUgbmh1IGNhdSB0aWVuIHRoYW4uIChUb2kgY3Vu ZyBjdW5nIGNhcCB0aGVtIG1vdCB5IG5obyB0aGUgbmF5OiBjaGFuZyBiaWV0IHRhaSBzYW8gbGFp IGNoaSBjbyBvIFZpZXQgTmFtIG1vaSBjbyBjYWMgR1MsIFBHUyBraG9uZyANCnRoYW0gZ2lhIGdp YW5nIGRheSwga2hvbmcgdGhhbSBnaWEgY2FjIHRydW5nIHRhbSBuZ2hpZW4gY3V1KS4gTmV1IHRp bmggdHJhbmcgbmF5IGtlbyANCmRhaSB0aGkgYmFuIGNoYXQgdGh1YyBzdSBjdWEgZ2lhbyBkdWMg c2UgYmkgZGkgbmd1b2MgbGFpLiBLaG9uZyBpdCBuZ3VvaSBuaGFuIGRpbmggIHJhbmcsIA0KY2h1 YSBiYW8gZ2lvIEdEJkRUIHh1b25nIGNhcCBkZW4gdmF5LCBib2kgbW9pIGJhbmcgY2FwIGRldSBj byB0aGUgZHVuZyB0aWVuIGRlIG11YSANCmR1b2MgZHVvaSBuaGlldSBoaW5oIHRodWMgdmEgY3Vu ZyBjbyB0aGUgZHVuZyB0aWVuIGRlIG11YSBkdW9jIGNobyBsYW0gdmllYyBiZW8gYm8uDQoNCkNo aW5oIHBodSBwaGFpIGxhbSBnaT8gQm8gR2lhbyBkdWMgdmEgRGFvIHRhbyBwaGFpIGxhbSBnaSBk ZSBuZ2FuIGNoYW4gdGh1YyB0cmFuZyB2YSANCm5odW5nIGhlIGx1eSBkYW5nIGJ1b24gbmF5PyBO ZXUga2hvbmcsIGhhdSBxdWEsIHRyZW4gbW9pIG1hdCwgY2FuZyB2ZSBzYXUgY2FuZyBraG9uZyAN Cmx1b25nIHRydW9jIGR1b2MuIA0KKFRocy4gTmd1eWVuIE1hbmggSGEgLSBWYW4gcGhvbmcgdG9u ZyBob3AgliBIdXllbiB1eSBUaGFjaCBIYSCWIEhhIFRpbmgpDQoNCkxUUyBEYW4gdHJpLSBRdWEg dGh1YyB0ZSBtYXQgdGhheSB0YWkgbmdoZSwgbW9pIG5ndW9pIGNvIGx1b25nIHRyaSBkZXUgdHJh biB0cm8gdmkgbmVuIA0KZ2lhbyBkdWMgY3VhIGNodW5nIHRhIGRhbmcgY2hheSB0aGVvIHNvIGx1 b25nLCBtYSBjaHVhIHF1YW4gdGFtIGR1bmcgbXVjIGRlbiBjaGF0IA0KbHVvbmcuIENoaW5oIHZp IHZheSBtYSBkYWkgaG9jLCBjYW8gZGFuZyB0YW5nIGxlbiB0aGF0IG5oYW5oLCBob2FuIHRvYW4g a2hvbmcgdHVvbmcgDQp4dW5nIHZvaSBkb2kgbmd1IGdpYW5nIHZpZW4gY3VuZyBuaHUgY28gc28g dmF0IGNoYXQgY2FuIHRoaWV0IGJhbyBkYW0gY2hvIGNoYXQgbHVvbmcgDQpkYW8gdGFvLiBWaWVj IGRhbyB0YW8gc2F1IGRhaSBob2MgY3VuZyBkYW5nIHRyb25nIHRpbmggdHJhbmcgYnVvbmcgbG9u Zywga2hvbmcgYmFvIGRhbSANCmNoYXQgbHVvbmcgY2h1YW4gbXVjIGNhbiB0aGlldC4NCg0KSGUg bHV5IGN1YSB0aW5oIHRyYW5nIG5heSwgYmFpIHZpZXQgdHJlbiBkYSBuZXUgbGVuIGtoYSByby4g Q2FjIGNhcCBsYW5oIGRhbyB2YSBxdWFuIGx5IA0KbmdhbmggZ2lhbyBkdWMgY3VuZyBkYSB0aGF5 IHJvIG1hdCB0cmFpIGN1YSB0aW5oIHRyYW5nIHBoYXQgdHJpZW4gbyBhdCBkYWkgaG9jIHZhIGNh byBkYW5nLCANCmRhIGRlIHJhIGtlIGhvYWNoIGNoYW4gY2hpbmggdmEgbmFuZyBjYW8gY2hhdCBs dW9uZyBnaWFvIGR1YyBkYWkgaG9jIHZhIGNhbyBkYW5nLg0KDQpUdXkgbmhpZW4sIGdpdWEgbm9p IHZhIGxhbSwgZ2l1YSBrZSBob2FjaCB2YSB0aHVjIGhpZW4gdGh1b25nIGNvbiBraG9hbmcgY2Fj aCBraGEgeGEuIA0KVGh1YyB0ZSBjdW9jIHZhbiBkb25nICJoYWkga2hvbmciIHRyb25nIG5nYW5o IGdpYW8gZHVjIGRhIGNobyB0aGF5IHJvIGRpZXUgZG8uDQoNCkJhbyBnaW8gbmVuIGdpYW8gZHVj IG51b2MgdGEgbW9pIGhldCBjaGF5IHRoZW8gdGhhbmggdGljaCwgbW9pIGRhdCB0b2kgbmh1bmcg bXVjIHRpZXUgDQp0aGVvIGNodWFuIG11YyBxdW9jIHRlIHZhIGRhcCB1bmcgZHVuZyBuaHUgY2F1 IGRheSBtYW5oIGNvbmcgbmdoaWVwIGhvYSwgaGllbiBkYWkgDQpob2EgY3VhIG51b2MgbmhhPyBU cmEgbG9pIGNhdSBob2kgbmF5LCB0cnVvYyBoZXQgdGh1b2MgdmUgdHJhY2ggbmhpZW0gdGh1b2Mg Y3VhIG5odW5nIA0Kbmd1b2kgY28gbmhpZW0gdnUgcXVhbiBseSBvIHRhbSB2aSBtbyBjdWEgbmdh bmggZ2lhbyBkdWMtZGFvIHRhby4NCg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4v MjAxMS0wMS0wNy1raGktdHJ1b25nLWRhaS1ob2MtbmFtLXRyb25nLXRheS1xdWFuLXRpbmgtIEhh IFZhbiBUaGluaCAoRGFpIGhvYyBLaG9hIGhvYyBIdWUpICAwOC8wMS8yMDExIDA2OjAwIEdNVCs3 IA0KDQpLaGkgdHJ1b25nIGRhaSBob2MgbmFtIHRyb25nIHRheSBxdWFuIHRpbmghIA0KDQpYaW4g aGF5IG1vIHJvbmcgdGhlbSBjYW5oIGN1YSBjdWEgcXV5ZW4gdHUgY2h1LCBnYW4gdm9pIHRyYWNo IG5oaWVtIHhhIGhvaSwgZGUgY2hvIA0KdGhheSB2YSB0cm8gY3VhIGhvbiAyMDAgdHJ1b25nIERI LCBDRCBuZ2hpZW4gY3V1LCBzYW5nIHRhby4gRHVuZyBkYXQgdGhlbSBjYWMgInZvbmcgDQpraW0g Y28iIGxlbiB0cmVuIGRhdSBjdWEgY3VhIGNhYyBvbmcgaGlldSB0cnVvbmcuIFZpIG5ldSB0aGUs IGRlbiBsdW90IG9uZyBoaWV1IHRydW9uZyBzZSANCnR1IHRyaWV0IHRpZXUgYm90IG1vaSB5IHR1 b25nIHNhbmcgdGFvLiANCg0KRGFpIGhvYyB2ZSBsYW5nDQoNCkNhY2ggZGF5IGl0IGxhdSwgZG9j IGRvbmcgdGluIHRyZW4gYmFvIHZlIGNodXllbiBrZSB0dSBuYXkgKHNhdSBraGkgRHUgdGhhbyBO Z2hpIGRpbmggDQpjdWEgQ2hpbmggcGh1IGR1b2MgY2hpbmggdGh1YyBiYW4gaGFuaCkgdmllYyAi UXV5IGRpbmggdHJhY2ggbmhpZW0gcXVhbiBseSBuaGEgbnVvYyANCnZlIGdpYW8gZHVjIiB0aGkg Q2h1IHRpY2ggdGluaCBjbyBxdXllbiBibyBuaGllbSwgY2FjaCBjaHVjIEhpZXUgdHJ1b25nIHRy dW9uZyBkYWkgaG9jIA0KKERIKSBjdW5nIG5odSBxdXlldCBkaW5oIHZlIHZpZWMgdGhhbmggbGFw IEhvaSBkb25nIHRydW9uZy4uLg0KDQpIaW5oIG5odSBjaHVuZyB0YSBkYW5nIGNvIHRpbmggcXVh eSBuZ3VvYyBiYW5oIHhlIGxpY2ggc3U/IEJvaSB0cnVvbmcgREggbW90IGtoaSANCmR1b2MgZGF0 IHZhbyBiYW4gdGF5ICJsYW0gbXVhIGxhbSBnaW8iIGN1YSBjaGluaCBxdXllbiBkaWEgcGh1b25n IHRoaSBzZSByYSBzYW8/IEhheSANCnRydW9uZyBESCBjYW5nIGNvIGNvIG1heSB0cm8gdGhhbmgg dHJ1b25nIHBobyB0aG9uZyBjYXAgNCBraG9uZyBob24ga2hvbmcga2VtLg0KDQpYdSBodW9uZyBj aHVuZyBjdWEgdGhlIGdpb2kgY2hpIHJvIHJhbmcgY2FuZyB0dSBjaHUgYmFvIG5oaWV1IHRoaSB0 cnVvbmcgREggY2FuZyBwaGF0IA0KaHV5IHN1YyBtYW5oIHNhbmcgdGFvIGJheSBuaGlldS4gUXVh biBseSBjYWMgdHJ1b25nIERIIHZlIHZhbiBkZSB0byBjaHVjIERhbmcgZGEgbGEgDQpxdWEgZHUs IHRhaSBzYW8gcGhhaSBiYW4gaGFuaCB0aGVtIHF1eSBjaGUgaGFuaCBjaGluaCBob2EgdHJ1b25n IERIPyBTdSBiYXQgY2FwIGN1YSANCiJtdWMgdGlldSIgbmF5IHNlIGRhbiBkZW4gcmF0IG5oaWV1 IGhhdSBxdWEgbmdoaWVtIHRyb25nLiANCg0KTmh1bmcgYXAgbHVjIG5oYW0gaGFuaCBjaGluaCBo b2EgbW9pIHRydW9uZyBESCB0aHVjIGNoYXQgbGEgY2FjaCAidG90IiBuaGF0IGxhbSBjaG8gDQpn aWFvIGR1YyBESCB0cm8gbmVuIHhvIGN1bmcgdmEgdSBsaSBob24uIERheSBsYSBkaWV1IGtobyBj aGFwIG5oYW4uIE5oaW4gcmEgY2FjIHF1b2MgDQpnaWEsIGNvIHRoZSB0aGF5IEJvIEdpYW8gZHVj IC0gVmFuIGhvYSAtIFRoZSB0aGFvIC0gS2hvYSBob2MgLSBDb25nIG5naGUgY3VhIE5oYXQgQmFu IA0KKGJhbmcgYmEgYm8gY3VhIFZpZXQgTmFtIGNvbmcgbGFpKSBjaGkgY28gMiB0aHUgdHJ1b25n IG1hIGhvIHZhbiBkaWV1IGhhbmggdG90PyBEbyBsYSANCmNodWEgbm9pIGRlbiBjaHV5ZW4gY3Vv bmcgcXVvYyBraW5oIHRlIHNvIDIgdGhlIGdpb2kgbmF5IGNoaSBuZ2FuZyBWaWV0IE5hbSB2ZSB0 eSBsZSANCmRhbiBzbyB0cmVuIGRpZW4gdGljaC4gQ29uIGNhaSBnb2kgbGEgInRhaSBuZ3V5ZW4i IGN1YSBobyBwaGFuIGxvbiBjaGkgbGEgYmFvIHRvIHZhIGRvbmcgDQpkYXQgbWEgdGhvaSAoTmhh dCBCYW4gY28gZGllbiB0aWNoIGxhIDM3Ny42MDBrbTIsIGRhbiBzbyAxMzAgdHJpZXUgdmEgVmll dCBOYW0gbGEgDQozMzEuMjEya20yLCBkYW4gc28gZ2FuIDkwIHRyaWV1KS4NCg0KQWkgZGFtIGJh byBkYW0gcmFuZyBjYWMgY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBzZSBraG9uZyBjbyBkaWV1IGtp ZW4gY2FuIHRoaWVwIG5nYXkgDQpjYW5nIHNhdSB2YSBuaGlldSBob24gdmUgdG8gY2h1YywgY28g Y2F1IGRvaSBuZ3UgZ2lhbmcgdmllbiB0aGVvIGhpbmggdGh1YyAiY29uIGNoYSANCmNoYXUgb25n IiBuaHUgbGF1IG5heSBkYSBwaGF0IHNpbmg/IE5ldSB0aGUgdGhpIGh5IHZvbmcgdGltIGtpZW0g dGFpIG5hbmcgY2hpIGxhIG5odW5nIA0KYW8gYW5oIHhhIHZvaSB2aSBuZ3V5ZW4gdGFjIHRoYXkg bmFvIHRybyBuYXkgdHUgbGF1IGRhIHF1eWV0IGRpbmggcGhhbiBsb24gZGVuIGNoYXQgbHVvbmcg DQpnaWFvIGR1Yy4NCg0KVHJ1b25nIERIIHNvIGRpIHRybyB0aGFuaCBuaHVuZyAibGF1IGRhaSIg Y3VhIHZpZWMgdGltIGtpZW0gY2hhbiBseSwga2hhbmcgZGluaCBjaGFuIA0KbHkgbGEgbmhvIG8g dGluaCBkb2MgbGFwIHR1b25nIGRvaSBjdWEgbm8uIENoYW5nIGhhbiwgY28gbmhpZXUgdmFuIGRl IGNodWEgbmVuIGRlIGNhcCANCm1vdCBjYWNoIHJvbmcgcmFpIHRyb25nIHhhIGhvaSB2aSBzdSB0 aGFtIHRoYXUsIHBoYW4gYmlldCBjdWEgY2FjIHRhbmcgbG9wIGN1IGRhbiBraG9uZyANCmdpb25n IG5oYXUsIG5odW5nIG8gZ2lhbmcgZHVvbmcsIG5vIGxhaSByYXQgY2FuIGNobyBuaHVuZyBnaWEg ZGluaCwgbmdoaWVuIGN1dS4gTGlldSANCmNhYyB2aSBxdWFuIGNhcCB0aW5oIGNvIGR1IHRyaW5o IGRvIGRlIHRoZW8gZG9pIC0gaGlldSBiaWV0IG5odW5nIHZhbiBkZSBkYW5nIG5naGllbiBjdXUg DQpkbyBraG9uZz8gTW90IGtoaSBobyBjbyBxdXllbiBjYWNoIGNodWMgaGlldSB0cnVvbmcgdGhp IGxlIHRhdCBuaGllbiBoaWV1IHRydW9uZywgdmkgZSBzbyANCmR1IGRpZXUgZGV1IGNobyByYW5n IG1vaSB5IHR1b25nIG1vaSBkZXUga2hvbmcgbmVuLCBraG9uZyBkdW9jIHZpICJxdWFuIHRyZW4i IGNodWEgDQpjaG8gcGhlcC4NCg0KVGFpIHNhbyBkYSBjbyBCbyBHRCB2YSBEVCwgZ2lvIGxhaSBj b3QgdGhlbSBtb3QgInZvbmcga2ltIGNvIiBtb2kgbGEgY2hpbmggcXV5ZW4gZGlhIA0KcGh1b25n PyBDaHVuZyB0YSBkYW5nIGxhbSBuZ3VvYyBsYWkgbW9uZyBtdW9uIGdpYW0gYm90IGNvIGNoZSB2 YSB0aHUgdHVjIGhhbmggDQpjaGluaC4gTm9pIGNhY2gga2hhYywgZG8gbGEgbm9pIG1vdCBkYW5n IGxhbSBtb3QgbmVvLiBIYXkgdGh1IGhpbmggZHVuZyBtb3Qgb25nIGhpZXUgDQp0cnVvbmcgbGFt IGdpIGN1bmcgc286IFNvIERIIGNhcCB0cmVuIChESCB2dW5nIGhvYWMgdHVvbmcgdHUgbmh1IHZ1 bmcgLSB2aSBkdSBuaHUgDQpESCBIdWUgY2FpIHRyaSBjYWMgdHJ1b25nIHRoYW5oIHZpZW4pLCBz byBCbyBHRCB2YSBEVCwgc28gQ2h1IHRpY2ggdGluaC4uLg0KDQpHaWFvIGR1YyBkYWkgaG9jIHhv IGN1bmcgdmEgdSBsaSBob24/DQoNCk5odW5nIGRpZXUgdnVhIGRhbiB0cmVuIGRheSB0aHVjIHJh IGNoaSBsYSBwaGFuIG5vaSBjdWEgdGFuZyBiYW5nLiBOaHVuZyBraHVhdCBsYXAgY3VhIA0KdmFu IGRlIGNodWEgYXAgZHVuZyBuZW4gY2h1YSBwaGF0IHRhYyB0YW0gZ29pIGNodW5nIGxhIG1vIGhp bmggImRhaSBob2MgdmUgbGFuZyIuIFRhaSANCnNhbyBjaHVuZyB0YSBjdSB0dSBkdXkgbHVhbiBx dWFuIHZlIHZpZWMgImFpIHF1YW4gbHkgYWkiIG1hIGtob25nIG5naGkgcmFuZyBjYWkgY2FuIA0K dHJvbmcgZG9pIG1vaSB0dSBkdXkgZ2lhbyBkdWMgaGllbiBuYXkgY2hpbmggbGEgdGhheSBkb2kg Y2FpIHRyaWV0IGx5IGNodW5nIGNodW5nIGN1YSBuby4gDQpUaGF5IGRvaSBjbyBjYXUgY2h1b25n IHRyaW5oLCBuYW5nIGNhbyBjaGF0IGx1b25nIGdpYW5nIHZpZW4gbW90IGNhY2ggdGh1YyBjaGF0 LCBjaHUgDQpraG9uZyBwaGFpIGRpIHRoZW8gY29uIGR1b25nIHZvbmcgdmVvIHRpbSBraWVtIG5o dW5nIHRpZW4gc2kgZ2lheT8uLi4NCg0KTmh1bmcgYXAgbHVjIG5oYW0gaGFuaCBjaGluaCBob2Eg bW9pIHRydW9uZyBESCB0aHVjIGNoYXQgbGEgY2FjaCAidG90IiBuaGF0IGxhbSBjaG8gDQpnaWFv IGR1YyBESCB0cm8gbmVuIHhvIGN1bmcgdmEgdSBsaSBob24uIERheSBsYSBkaWV1IGtobyBjaGFw IG5oYW4uIE5oaW4gcmEgY2FjIHF1b2MgDQpnaWEsIGNvIHRoZSB0aGF5IEJvIEdpYW8gZHVjIC0g VmFuIGhvYSAtIFRoZSB0aGFvIC0gS2hvYSBob2MgLSBDb25nIG5naGUgY3VhIE5oYXQgQmFuIA0K KGJhbmcgYmEgYm8gY3VhIFZpZXQgTmFtIGNvbmcgbGFpKSBjaGkgY28gMiB0aHUgdHJ1b25nIG1h IGhvIHZhbiBkaWV1IGhhbmggdG90PyBEbyBsYSANCmNodWEgbm9pIGRlbiBjaHV5ZW4gY3Vvbmcg cXVvYyBraW5oIHRlIHNvIDIgdGhlIGdpb2kgbmF5IGNoaSBuZ2FuZyBWaWV0IE5hbSB2ZSB0eSBs ZSANCmRhbiBzbyB0cmVuIGRpZW4gdGljaC4gQ29uIGNhaSBnb2kgbGEgInRhaSBuZ3V5ZW4iIGN1 YSBobyBwaGFuIGxvbiBjaGkgbGEgYmFvIHRvIHZhIGRvbmcgDQpkYXQgbWEgdGhvaSAoTmhhdCBC YW4gY28gZGllbiB0aWNoIGxhIDM3Ny42MDBrbTIsIGRhbiBzbyAxMzAgdHJpZXUgdmEgVmlldCBO YW0gbGEgDQozMzEuMjEya20yLCBkYW4gc28gZ2FuIDkwIHRyaWV1KS4NCg0KWGluIGhheSBtbyBy b25nIHRoZW0gY2FuaCBjdWEgY3VhIHF1eWVuIHR1IGNodSwgZ2FuIHZvaSB0cmFjaCBuaGllbSB4 YSBob2ksIGRlIGNobyANCnRoYXkgdmEgdHJvIGN1YSBob24gMjAwIHRydW9uZyBESCwgQ0Qgbmdo aWVuIGN1dSwgc2FuZyB0YW8uIER1bmcgZGF0IHRoZW0gY2FjICJ2b25nIA0Ka2ltIGNvIiBsZW4g dHJlbiBkYXUgY3VhIGN1YSBjYWMgb25nIGhpZXUgdHJ1b25nLiBWaSwgbmV1IHRoZSBkZW4gbHVv dCBvbmcgaGlldSB0cnVvbmcgc2UgDQp0dSB0cmlldCB0aWV1IGJvdCBtb2kgeSB0dW9uZyBzYW5n IHRhby4gDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL3ZpZXRuYW0veGEtaG9pL1Ro ZS1xdWFsaXR5LW9mLWVkdWNhdGlvbi1hdC11bml2ZXJzaXRpZXMtbGV2ZWwtaW4tVmlldG5hbS1z dGlsbC1pbnN1ZmZpY2llbnQtYW5kLWluYWRlcXVhdGUtREhpZXUtMDQxMzIwMTAyMjE1NTEuaHRt bCBEbyBIaWV1LCBwaG9uZyB2aWVuIFJGQSAyMDEwLTA0LTEzDQoNCk5vaSBsbyBjaGF0IGx1b25n IGdpYW8gZHVjIERhaSBob2MgLSBRdXkgbW8gdnVvdCB4YSBuYW5nIGx1Yw0KDQpOZ29haSBuaHVu ZyB0aGlldSB0aG9uIHZlIHRyYW5nIGJpLCBkaWV1IGtpZW4gaG9jIHRhcCwgYW4gbywgc2luaCB2 aWVuIGNvbiBwaGFpIGNoZW4gY2h1YywgDQpraG8ga2hhbiBsYW0gbW9pIHRpbSBtb3QgY2hvIG5n b2kgaGF5IGR1bmcgbm9pIGdpYW5nIGR1b25nLiANCg0KVGhlbyBxdXkgZGluaCBjdWEgYm8gZ2lh byBkdWMgdGhpICBkaWVuIHRpY2ggcGhvbmcgaG9jLCBnaWFuZyBkdW9uZyBwaGFpIGRhdCB0aWV1 IGNodWFuIA0KNm0yIGNobyBtb3Qgc2luaCB2aWVuLCB0cmVuIHRodWMgdGUgdGFpIGRhaSBob2Mg bHVhdCBIYSBOb2ksIG1vaSBzaW5oIHZpZW4gY2hpIGNoaWEgbmhhdSANCmNvIDAsNjUgbTIsIGNh YyB0cnVvbmcgZGFpIGhvYyBraW5oIHRlLCBreSB0aHVhdCBvIFNhaSBHb24gY2hpIGNvIGR1b2Mg MW0yLCBjaG8gbW9pIHNpbmggdmllbi4NCg0KQ28gbmhpZXUgdHJ1b25nIGhvcCBuaGEgdHJ1b25n IGR1bmcgbG9pIG5odWFuIGRhdSB0dSB2YW8gYmF0IGRvbmcgc2FuIHRoYXkgdmkgZG9uIG5nYW4g c2FjaCB2YW8gY29uZyB2aWVjIGRhbyB0YW8gDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwv MTk4NC8yMDEwMDgvRGFpLXR1b25nLVZvLU5ndXllbi1HaWFwLXRyYW4tdHJvLXZlLWdpYW8tZHVj LTE3NjMwOTAvIDEyLzA4LzIwMTAgMDk6NTU6MjEgDQoNCkRhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lh cCB0cmFuIHRybyB2ZSBnaWFvIGR1YzogTmhpbiBjaHVuZywgaGUgdGhvbmcgZ2lhbyBkdWMgdmEg ZGFvIA0KdGFvIGN1YSBudW9jIHRhIGRhbmcgdHV0IGhhdSB4YSBob24gc28gdm9pIG5oaWV1IG51 b2MgdHJvbmcga2h1IHZ1YyB2YSB0cmVuIHRoZSBnaW9pLiANCg0KVGh1YyB0cmFuZyBuYXkgZGEg c29tIGR1b2MgcGhhdCBoaWVuLiBEYW5nIHZhIE5oYSBudW9jIGRhIGNvIG5oaWV1IG5naGkgcXV5 ZXQgdmEgY2h1IA0KdHJ1b25nIGR1bmcgZGFuIG1hIGNodWEgZHVvYyB0aHVjIGhpZW4gbmdoaWVt IHR1Yy4gTWF5IG5hbSBxdWEsIGNodW5nIHRhIGRhIHRyYW4gdHJvIA0KdGltIHRvaSBjYWNoIGdp YWkgcXV5ZXQsIG5odW5nIHRpbmggaGluaCBjaHV5ZW4gYmllbiByYXQgY2hhbS4gQ2hvIGRlbiBu YXksIHZhbiBjb24gDQpuaHVuZyBxdWFuIGRpZW0ga2hhYyBuaGF1LCB0aGFtIGNoaSB0cmFpIG5n dW9jIG5oYXUgY2h1YSBkdW9jIGR1YSByYSB0cmFvIGRvaSwgYmFuIGJhYyANCmRlIHRpbSByYSBw aHVvbmcgc2FjaCBjaGFuIGNoaW5oIGNvIGhpZXUgcXVhLiBTdSB5ZXUga2VtLCBiYXQgY2FwIGtl byBkYWkgY3VhIGhlIHRob25nIA0KZ2lhbyBkdWMgdmEgZGFvIHRhbyBkYSBjbyBhbmggaHVvbmcg a2hvbmcgbmhvIGRlbiBzdSBwaGF0IHRyaWVuIGtpbmggdGUsIHZhbiBob2EgdmEgeGEgaG9pLg0K DQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9WaWV0bmFtZXNlTmV3cy92aWV0bmFtbmV3 cy9WaWV0bmFtLXMtbmF0aW9uYWwtYXNzZW1ibHktc3RhbmRpbmctY29tbWl0dGVlLWNhbGxzLWZv ci11bml2ZXJzaXR5LW92ZXJoYXVsLTA0MTYyMDEwMTg0MTUzLmh0bWwgUkZBIDE2LjA0LjIwMTAN Cg0KVGh1IHR1b25nOiBVQlRWUUggVmlldCBOYW0gY2hpIHJhIG5odW5nIGJhdCBjYXAsIGhhbiBj aGUgdHJvbmcgaG9hdCBkb25nIGN1YSBuaGlldSB0cnVvbmcgZGFpIGhvYyB0YWkgVmlldCBOYW0N Cg0KKyBEb2FuIGdpYW0gc2F0IGN1YSBRdW9jIGhvaSBWaWV0IE5hbSBiYW8gY2FvIHRyb25nIG5h bSBuYW0gcXVhIHZpZWMgY2FwIHBoZXAgdGhhbmggDQpsYXAgbW9pIGNhYyB0cnVvbmcgZGFpIGhv YywgY2FvIGRhbmcgZGUgZGFpLCBraGkgdHJ1b25nIGR1b2MgY2FwIHBoZXAgY2h1YSBkYXAgdW5n IGR1IA0Kbmh1bmcgZGlldSBraWVuIHZlIGNvIHNvIHZhdCBjaGF0LCBreSB0aHVhdCB2YSBkb2kg bmd1IGdpYW8gdmllbi4NCg0KKyBDbyBxdWFuIHF1YW4gbHkgTmhhIG51b2MgYnVvbmcgbG9uZyBx dWFuIGx5OyBraG9uZyB4dSBseSBuZ2hpZW0gbmh1bmcgc2FpIHBoYW0gZHVvYyBwaGF0IGhpZW4u IA0KDQpodHRwOi8vd3d3LnNnZ3Aub3JnLnZuL2NoaW5odHJpLzIwMTAvNC8yMjM2OTEvIDE3LzA0 LzIwMTAsIDAyOjA1IChHTVQrNykNCg0KVGh1IHR1b25nOiBVeSBiYW4gVGh1b25nIHZ1IFF1b2Mg aG9pIHlldSBjYXUgZ2lhaSB0aGUgY2FjIHRydW9uZyBkYWkgaG9jIHZpIHBoYW0NCg0KLSBHaWFt IHNhdCB2ZSB0aW5oIGhpbmggdGhhbmggbGFwIHRydW9uZyBjaG8gdGhheSwgaGF1IGhldCBjaHVh IGNhbiBjdSBkYXkgZHUgdmFvIG5odSANCmNhdSB2ZSBuaGFuIGx1YyBjdW5nIG5odSBraGEgbmFu ZyBkYXUgdHUgY3VhIGNhIG51b2MgdmEgdHVuZyBkaWEgcGh1b25nLCBjaHVhIGdhbiB2b2kgdmll YyBuYW5nIGNhbyBjaGF0IGx1b25nIHZhIGhpZXUgcXVhIGRhbyB0YW8uDQoNCkRhYyBiaWV0LCA1 IG5hbSBnYW4gZGF5ICgyMDA1LTIwMDkpLCB2aWVjIGNobyBwaGVwIHRoYW5oIGxhcCBtb2kgY2Fj IHRydW9uZyBDRCwgREggY28gcGhhbiBkZSBkYWksIHRyb25nIGtoaSBjYWMgZGlldSBraWVuIHZl IGNvIHNvIHZhdCBjaGF0LCBreSB0aHVhdCB2YSBkb2kgbmd1IGdpYW8gdmllbiANCmtob25nIGJh byBkYW0gKHRyb25nIGtob2FuZyB0aG9pIGdpYW4gbmF5LCBjYSBudW9jIGNvIHRvaSAyMDAgLyAz MTIgdHJ1b25nIERILCBDRCBkdW9jIHRoYW5oIGxhcCwgbmFuZyBjYXApLg0KDQotIE5oaWV1IHRy dW9uZyBtb2kgZHVvYyB0aGFuaCBsYXAgbmh1bmcgZGEgdHV5ZW4gc2luaCB2b2kgcXV5IG1vIGxv biwgdnVvdCBxdWEgbmFuZyANCmx1YyBkYW8gdGFvIChkb2kgbmd1IGdpYW8gdmllbiwgY28gc28g dmF0IGNoYXQsIHBob25nIGhvYywgdHJhbmcgdGhpZXQgYmkgdGh1YyBoYW5oLCB0aHUgdmllbi4u LiksIGRhbiB0b2kgaGUgcXVhIGNoYXQgbHVvbmcgZGFvIHRhbyBraG9uZyBiYW8gZGFtLg0KDQot DQpodHRwOi8vYm94bWF0aC52bi80cnVtL3RocmVhZHMvNzczMC1UaW4tdnVpLXRpbi12dWktTmd1 eWVuLVRoaWVuLU5oYW4tdGhvaS1kaWV1LWhhbmgtQm8tR2lhby1kdWMgMDItMDQtMjAxMCAxMToz NCBQTQ0KDQpUaW4gdnVpIHRpbiB2dWk6IE5ndXllbiBUaGllbiBOaGFuIHRob2kgZGlldSBoYW5o IEJvIEdpYW8gZHVjDQoNCmh0dHA6Ly93d3cudGhlZ2lvaW5ndW9pdmlldC5uZXQvc2hvd3RocmVh ZC5waHA/cD0zMTcxNiAwMi8wNC8yMDEwIDE3OjM0OjU5DQoNCktlIGJhdCB0YWkgbGFtIHRhbiBo b2FuZyBuZW4gR2lhbyBEdWMgc28gdHJhY2ggbmhpZW0sIHBodWkgdGF5IGJvIGNoYXkgdHJ1b2Mg a2hpIEJvIA0KR2lhbyBEdWMgcGhhIHNhbiAtIFBobyBUaHUgdHVvbmcgTmd1eWVuIFRoaWVuIE5o YW4gdGhvaSBraWVtIG5oaWVtIGNodWMgYm8gdHJ1b25nDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52 bi8yMDEwMDQwMjEwMzM0MjUyMnAxMDAwYzEwMDAvcGhvLXRodS10dW9uZy1uZ3V5ZW4tdGhpZW4t bmhhbi10aG9pLWRpZXUtaGFuaC1iby1naWFvLWR1Yy5odG0gMDIvMDQvMjAxMCwgMTA6NDUoR01U KzcpDQoNClBobyBUaHUgdHVvbmcga2llbSBCbyB0cnVvbmcgTmd1eWVuIFRoaWVuIE5oYW4gZHVv YyBzdSBkb25nIHkgY3VhIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgdGhvaSBraWVtIG5oaWVt IGdpdSBjaHVjIEJvIHRydW9uZyAgKHR1IDEvNC8yMDEwKQ0KDQpUaGVvIHF1eSBkaW5oIGhpZW4g aGFuaCwgUXVvYyBob2kgYm8gcGhpZXUgcGhlIGNodWFuIHZpZWMgbWllbiBuaGllbSB2YSBibyBu aGllbSBjaHVjIGRhbmggYm8gdHJ1b25nIHRoZW8gZGUgbmdoaSBjdWEgVGh1IHR1b25nLg0KDQoo Q3UgdHJpIHF1YW4gdGFtOiBOZXUgb25nIE5oYW4gcm9pIGJvIG5oaWVtIHZ1IHRydWMgdGllcCwg a2hpIGNodWEgZHVvYyBRdW9jIGhvaSBwaGUgY2h1YW4sIGxhIHZpIHBoYW0gcXVpIGRpbmguKQ0K DQpodHRwOi8vdm4uMzYwcGx1cy55YWhvby5jb20vcGhhbXZpZXRkYW9udi9hcnRpY2xlP21pZD00 NTM5IDAxOjM0IDAyLTA0LTIwMTANCiANCkJvIHRydW9uZyBOZ3V5ZW4gVGhpZW4gTmhhbjogIlRo YW5nIHRpZW4iIGhheSAiIGJvIHRyb25nIG1hIGNoYXkgbGF5IGR1aSI/DQoNCkRvaSBsb2kgcGhp IGxvIGN1YSBCbG9nIFBoYW12aWV0ZGFvbnY6IFBobyBUaHUgdHVvbmcgTmd1eWVuIFRoaWVuIE5o YW4ga2llbSBCbyB0cnVvbmcgQm8gR2lhbyBkdWMgdmEgRGFvIHRhbyBsYWkgdGh1eWVuIGNodXll biBjb25nIHRhYy4gT25nIHRob2kga2hvbmcga2llbSBuaGllbSBjaHVjIEJvIHRydW9uZyB2YSBu Z2hlIGRvbiBvbmcgc2UgY2h1eWVuIHNhbmcgZGFtIG5oYW4gY3VvbmcgdmkgQm8gdHJ1b25nIEJv IE5nb2FpIGdpYW8uLi4gDQoNCkNvIG1vdCB0aG9pIG1vaSBsYW4gbW8gQ29uZyBkaWVuIHR1IENo aW5oIHBodSwgbmd1b2kgZG9jIHRodW9uZyB4dXllbiB0aGF5IGhpbmggYW5oIG9uZyB4dWF0IGhp ZW4gbyB2aSB0cmkgdHJhbmcgdHJvbmcgZ29jIHRyYWkuIERhbiBjaHV5ZW4gcXVhbiBzYXQgc2F0 IGNoaW5oIHRydW9uZyAgZG9uIHJhbmc6IE9uZyBzYXAga2UgbmhpZW0gY2h1YyBUaHUgdHVvbmcg Y3VuZyBuZW4uLi4NCg0KT25nIE5ndXllbiBUaGllbiBOaGFuIGRhIHJhIGRpLCBkZSBsYWkgc2F1 IG9uZyBoYW5nIGxvYXQgbmh1bmcgdHV5ZW4gbmdvbiwgdHV5ZW4gYm8sIG5odW5nIGNoaW5oIHNh Y2ggZG9pIHZvaSBuZ2FuaCBnaWFvIGR1Yy1kYW8gdGFvIGRvIG9uZyBraG9pIHh1b25nIHJhdCBj aGkgbGEgdmFuZyBkb25nIHkgbmh1IHRyb25nIGhvaSBraGFpIHRydW9uZy4gQ2h1YSBhaSB0b25n IGtldCBkdW9jIG5odW5nIGNoaW5oIHNhY2gsIGNodSB0cnVvbmcgbGlldSBwaGFwIGNvIHZlIHNv YyBtYSBvbmcgZGUgcmEgZG8gY2hvIGRlbiBsdWMgb25nIHJhIGRpIGhpZXUgcXVhIGR1b2MgYmFv IG5oaWV1IHBoYW4gdHJhbT8gRG8gdmF5LCB2aWVjIHRodXllbiBjaHV5ZW4gY3VhIG9uZywgY28g bmd1b2kgdGhpIGRvYW4gb25nIHRoYW5nIHRpZW47IGNvIGtlIGxhaSBkb2FuIG9uZyBydXQgc29t IGRlIHRhbyBraG9hbmcgdHJvbmcgY2hvIGRhbSBjb24gb25nLCBjaGF1IGNoYSBjbyBjaG8gbWEg bmdvaSBsZW47IGN1bmcgY28gbmd1b2kgYmFvIG9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiAiYm8gdHJv bmcgbWEgY2hheSBsYXkgZHVpIi4uLiANCg0KT25nIHRhIGhvYSBjaHV5ZW4gZGkgdmkgdGhheSBu Z2FuaCBtYSBvbmcgcGh1IHRyYWNoIG5nYXkgY2FuZyBvYW5oIG5oYXUgdG86IGhvYyB0cm8gb2Fu aCBob2MgdHJvLCBkZW4gaG9jIHRybyBnYWkgY3VuZyBjaG9pIG5oYXUgbmh1IHhhIGhvaSBkZW47 IHJvaSB0aGkgaG9jIHRybyBvYW5oIHRoYXksIHRoYXkgb2FuaCBob2MgdHJvLCB0aGF5IG11YSBk YW0gaG9jIHRyby4uLmxpbmggdGluaCBoZXQgY2EgbGVuLg0KDQpDaHVjIG9uZyB0aHVvbmcgbG8g YmluaCBhbiB2YSBjaGFuIGN1bmcgZGEgbWVtIGtoaSBidW9jIHNhbmcgY3VvbmcgdmkgbW9pLiBP IGN1b25nIHZpIG1vaSBvbmcgbmVuICJwaGF0IGRvbmciIGl0IHRob2ksIG5odW5nICJwaGF0IiBj YWkgZ2kgdGhpIGxhbSBjaG8gY2hhYyBjYWkgZG8gcm9pIGhhbmcgInBoYXQiIHRpZXAhIEtoaSAi cGhhdCIgbmhpZXUgbWEgImRvbmciIGtob25nIGtpcCwgdGhpZW4gaGEgbGFpIGNobyBsYSBvbmcg cXVlbiAiZGFuaCB0cm9uZyBibyBkdWkiPz8/DQoNCmh0dHA6Ly9mcmVlbGVjb25nZGluaC53b3Jk cHJlc3MuY29tLzIwMTAvMDQvMDQvYnQtbmd1eSVFMSVCQiU4NW4tdGhpJUUxJUJCJTg3bi1uaGFu LXRoYW5nLXRpJUUxJUJBJUJGbi1oYXktYiVFMSVCQiU4Ri10ciVFMSVCQiU5MW5nLW1hLWNoJUUx JUJBJUExeS1sJUUxJUJBJUE1eS1kdWkvIDAxOjM0IDAyLTA0LTIwMTAgDQoNCkJUIE5HVVlFTiBU SElFTiBOSEFOOiBUSEFORyBUSUVOIEhBWSAiQk8gVFJPTkcgTUEgQ0hBWSBMQVkgRFVJIiA/IA0K DQpZIGtpZW4gZGllbiBkYW46DQoNCjEuIExheSBnaW9pICAtIDQvNC8yMDEwIDE3OjIzJzoNCg0K Q2FtIG9uIEdpb2ksIGJhYyBOaGFuIGRhIHJhIGRpLA0KDQpOaHUgdmF5IGxhIGdpb2kgZGEgbmdo ZSB0aGVvIGxvaSBraGFuIG5ndXllbiBjdWEgY29uIGRlIGNobyBiYWMgTmhhbiByYSBkaS4uLiAN Ck5naGUgYmFjIE5oYW4gZGllbiB0aHV5ZXQgdGhpIGJpZXQgbmdheSBiYWMgTmhhbiBjbyBraWVu IHRodWMgY3VhIG1vdCBjb24gTW90IFNhY2guICBCYWMgbmhpbiBjdW9jIGRvaSB2b2kgbW90IGxh bmcga2luaCBtYXUgaG9uZyB2YSBtb2kgdGh1IGRldSBkb24gZ2lhbi4gDQoNCk5ldSBkZSBjaG8g YmFjIE5oYW4gdmFvIGdoZSB0aHUgdHVvbmcga3kgdG9pIHRoaSBiYW8gZGFtIGxhIGNodW5nIHRh IG1hdCBudW9jIHZpIGJhYyBOaGFuIHNlIGJpIHhvIG11aSwgcXVheSBuaHUgZGUgYmFvIGt5IGRh dSBsYSBreSBkYXkuLi4NClRyYW5oIHZvIGR1YSBsYWkgZ2FwIHZvIGR1YSwga2hvIGhldCBjaG8g bm9pIC4uLg0KDQoyLiB0aGF5IGdpYW8gIC0gIDQvNC8yMDEwIDIwOjEzJzoNCg0KVG9pIGxhIG1v dCBnaWFvIHZpZW4gdmEgY2FtIHRoYXkgbmhlIGNhIG5ndW9pIG5ldSBkdW5nIGxhIGJhYyBOaGFu IGtob25nIGNvbiBnaXUgY2h1YyBibyB0cnVvbmcgQm8gR0QgbnVhLiBWaSB0dSBraGkgYmFjIGF5 IGxhbSBCbyB0cnVvbmcgYmFjIHJhIGtob25nIGJpZXQgYmFvIG5oaWV1IGN1b2MgdmFuIGRvbmcg bmF5IGN1b2MgdmFuIGRvbmcgbm8uIEN1IG1vaSBsYW4gYmFjIHJhIGN1b2MgdmFuIGRvbmcgbmFv IHRoaSBjYXAgZHVvaSByYW0gcm8gdHJpZW4ga2hhaS4gTW9pIGxhbiB0cmllbiBraGFpIGNhYyBj dW9jIHZhbiBkb25nIGN1YSBiYWMgdGhpIG5hbyBsYSBiYW5nIHJvbiBraGF1IGhpZXUgbmFvIGxh IGhvIHNvIHRodWMgaGllbiBjYWMgY3VvYyB2YW4gZG9uZyBjdWEgYmFjIGF5Li4uIE5ldSBsYW0g Y2h1YSBraXAgbWEgY2FwIHRyZW4ga2llbSB0cmEgY2h1YSBkdSB0aGkgYmkga2hpZW4gdHJhY2gs IGJpIGNhdCB0aGkgZHVhLi4uIA0KDQpUcm9pIGEsIG11b24gZGF5IHRvdCB0aGkgcGhhaSBkZSB0 aG9pIGdpYW4gY2hvIGdpYW8gdmllbiBsbyBjaHVhbiBiaSBiYWkgZ2lhbmcgY2h1LiBOZXUgY3Ug ZGFuaCB0aG9pIGdpYW4gY2hvIGNhYyBjdW9jIHZhbiBkb25nIHRoaSBjb24gZ2kgdGhvaSBnaWFu IGNobyB2aWVjIGRheSBob2MgbnVhLiBLaG9uZyBiaWV0IGJhYyBuZ2hpIHJvaSB0aGkgY2h1bmcg dG9pIGNvIHRob2F0IGR1b2MgY2FpIHZ1IGxhbSBobyBzbyAia2llbSBkaW5oIGNoYXQgbHVvbmcg Z2lhbyBkdWMga2hvbmciLiBCYWMgbXVvbiBsYW0gZ2kgdGhpIGxhbSBuaHVuZyBkdW5nIGxhbSBi byB0cnVvbmcgZ2lhbyBkdWMgbnVhIG5oYS4NCg0KMy4gRHVvbmcgIC0gIDUvNC8yMDEwIDEyOjMy JzoNCg0KS2hvbmcgdGhheSBhaSBub2kgY2h1eWVuIG9uZyBOaGFuIGt5IHF1eWV0IGRpbmggY29u ZyBuaGFuICh0aGFuaCBsYXApIHRydW9uZyBESCBIb25nIEJhbmcgLSB0cnVvbmcgZGFuIGxhcCB0 aGFuaCB0cnVvbmcgREggUXVvYyB0ZSBIQiwgdHJvbmcga2hpIHRydW9uZyBESCBuYXkgY28gcXVh IG5oaWV1IGJlIGJvaS4NCkNhaSB0cnVvbmcgbmF5LCB2YW4gY2h1YSBiaSB0aGFuaCB0cmENCg0K NC4gVHJhbiBWYW4gQmluaCAgLSAgMTEvNC8yMDEwIDE5OjMyJzoNCg0KQmFjIE5oYW4gcmEgZGkg bGEgZGUgbGVuIGNodWMgY2h1IGNvIHBoYWkgeHVvbmcgY2h1YyBkYXUgbWEgY2FjIGJhYyBub2kg dGhlLiBCYWMgcmEgZGkgZGUgbGFtIGNhaSBjaHV5ZW4gInRvIHRhYyIgaG9uIGNodSAiYmEgY2Fp IEdpYW8gZHVjIiB0aGkgYW4gdGh1YSBnaSwgbmhpZXUga2hpIGNodWEgc3UgZHVuZyBoZXQga2hh IG5hbmcgY3VhIEJhYyBheSBjaHUuIENodWMgQmFjIG8gY3VvbmcgdmkgbW9pIGdhdCBoYWkgbmhp ZXUgdGhhbmggY29uZyB2YSBuaGlldSAidGllbmcgdmFuZyB2b25nIiwgQmFjIG5oZS4NCg0KNS4g Q1QgLSAxNS80LzIwMTAgMTI6MzQnOg0KDQpIYXkgbGEgYmFjIE5oYW4gZGkgdHUgY2hvIGtob2Ug Y2h1IGxhbSBjaHVjIGdpIG8gVk4gbmF5IGN1bmcgYmkgZGFuIGNodWkgaGV0IGRvLiBOaGEgY2h1 YSBzYW4gc2FuZyBtb2kgYmFjIGRpIHR1IGRvLiBTdXkgbmdoaSBreSBuZ2hlIGJhYy5DaHVjIGJh YyB0aGFuaCBuaGFuLg0KDQpodHRwOi8vY2hhdXRoYW5oYS5jb20vc2hvd3RocmVhZC5waHA/cD0z MDY0MiAwMi0wNC0xMCwgMDU6MzEgUE0NCg0KRGllbiBkYW4gdHJ1b25nIFRIUFQgQ2hhdSBUaGFu aCBBIC0gVHJhbiBWYW4gT24NCg0KUmU6IFBobyBUaHUgdHVvbmcgTmd1eWVuIFRoaWVuIE5oYW4g cm9pIEJvIEdELURUDQoNCkRBTiBDSE9BIC0gS1kgRFVZRU4gMDktMDQtMTAsIDEwOjEyIEFNIDoN Cg0KVG9pIHRodWMgc3UgaG9haSBuZ2hpIG5odW5nIHBob25nIHRyYW8gZ2lhbyBkdWMsIG5odW5n IGN1b2MgdmFuIGRvbmcgdm9pIGNhY2ggbGFtIHh1YSANCmN1LCBuaHUgdHUgbmh1bmcgbmFtIDcw LTgwIGN1YSB0aGF5LiBDbyBtYXkgR0QgdmEgRFQgdGhpIGNvIGh1LCBxdWFuIGxpZXUsIHhvIGN1 bmcuLi4gTmdhbmggR0QtRFQgdmFuIGRpIHRoZW8gbG9pIG1vbiB2b24gY28uIA0KDQpDdW9uZyB2 aSBtb2ksIG5oaWVtIHZ1IG1vaSBjdWEgbmhhIGNoaW5oIHRyaSBOZ3V5ZW4gVGhpZW4gTmhhbiBj byB0aGUgInZpIG1vIiBob24sIG5odW5nIHRvaSBuZ2hpIG9uZyBjdW5nIGtob25nIHRoZSBuYW8g dGhhbmggdGhhbiBob24ga2hpIG5naGkgdmUgbmh1bmcga3kgdm9uZyBjdWEgDQpuZ3VvaSBkYW4g bmh1IHRvaSwgdHVuZyBndWkgZ2FtIG5oaWV1IHZhbyBuaGllbSBreSBHRCB2YSBEVCBkbyBvbmcg bGFtIEJvIHRydW9uZy4NCg0KSEIgMDMtMDQtMTAsIDA3OjQ4IFBNOiANCk5vaSB0aGF0LiBMZW4g bGFtIEJvIHRydW9uZyBibyBHaWFvIGR1YyBtYXkgbmFtIG5heSBtYSBjaHVhIGxhbSBnaSBkdW9j IGhldC4gDQoNClZpZW5raHVvbmcgMDktMDQtMTAsIDAzOjU1IFBNIDogDQoNClRyb25nIGxpY2gg c3UgY3VhIG1pbmgsIGNvIGxlIGNodWEgYmFvIGdpbyBuZ2FuaCBnaWFvIGR1YyBjdW5nIGx1YyB0 cmllbiBraGFpIG5oaWV1IA0KcGhvbmcgdHJhbyBuaHUgaGllbiBuYXkuLi4gQ3UgdGhlLCB0aGF5 IHZhIHRybyBjaGF5IG11b3QgbW8gaG9pLCBuaHVuZyBjaGF0IGx1b25nIGdpYW8gZHVjIHRoaSBj dSBnaWFtIGNoYW4gdGFpIGNoby4NCg0KaHR0cDovL3ZuLjM2MHBsdXMueWFob28uY29tL3BoYW12 aWV0ZGFvbnYvYXJ0aWNsZT9taWQ9NDUzOSAgKE5ndW9uOiBCbG9nIEhvIE5odSBIaWVuKQ0KIA0K VmF5IGxhLCBrZSB0dSBuZ2F5IDEuNC4yMDEwLCBvbmcgTmd1eWVuIFRoaWVuIE5oYW4ga2hvbmcg Y29uIGdpdSB0cm9uZyB0cmFjaCBCbyB0cnVvbmcgYm8gR2lhbyBkdWMgdmEgRGFvIHRhby4gDQoN ClRoYW5nIDYgbmFtIDIwMDYsIG9uZyBkdW9jIGJvIG5oaWVtIGxhbSBuZ3VvaSBkdW5nIGRhdSBt b3QgdHJvbmcgbmh1bmcgQm8gcXVhbiB0cm9uZyBuaGF0IGN1YSBDaGluaCBwaHU7IChjdW5nIGxh IG1vdCB0cm9uZyBuaHVuZyBCbyB0aWV1IG5oaWV1IHRpZW4gbmhhdCBjdWEgQ2hpbmggDQpwaHUp LiBUaGFuZyA4IG5hbSAyMDA3IG9uZyBkdW9jIFF1b2MgaG9pIHBoZSBjaHVhbiBsYW0gUGhvIHRo dSB0dW9uZyBDaGluaCBwaHUsIGtpZW0gY2h1YyBCbyB0cnVvbmcuIA0KDQpOZ2F5IHR1IGx1YyBu aGFtIGNodWMgQm8gdHJ1b25nLCBvbmcgZGEgZGUgcmEgY2hpbmggc2FjaCBjYWkgY2FjaCBuZW4g Z2lhbyBkdWMgVmlldCBOYW0gdm9pIHRpZXUgY2hpOiAiY2hvbmcgYmVuaCB0aGFuaCB0aWNoIHRy b25nIGhvYyB0YXAgdmEgdGlldSBjdWMgdHJvbmcgdGhpIGN1IiwgInhheSANCmR1bmcgbW90IHBo dW9uZyBwaGFwIGhvYyBzYW5nIHRhbywgdGh1YyBjaGF0LCBob2MgbGEgcGhhaSBkdW5nIGR1b2Mi LCAiZG9pIG1vaSBwaHVvbmcgcGhhcCBob2MgdGFwIHRoZW8geHUgaHVvbmcgdGllbiB0aWVuIGN1 YSB0aGUgZ2lvaSIuDQoNCk1vIGRhdSBuYW0gaG9jIDIwMDYgliAyMDA3IG9uZyB0aHVjIGhpZW4g Y3VvYyB2YW4gZG9uZyBoYWkga2hvbmc6ICJOb2kga2hvbmcgdm9pIHRpZXUgY3VjIHRyb25nIHRo aSBjdSIgdmEgIk5vaSBraG9uZyB2b2kgdmllYyBjaGF5IHRoZW8gdGhhbmggdGljaCIgYmF0IGJ1 b2MgdGF0IGNhIGNhYyBjbyANCnNvIGdpYW8gZHVjIHRyb25nIGNhIG51b2MgcGhhaSBsYW0gdGhl by4NCg0KTmFtIDIwMDcsIG5nYW5oIGdpYW8gZHVjIFZpZXQgTmFtIGNodW5nIGtoaWVuIG5oaWV1 IHZ1IHZpZWMgZ2F5IGNodSB5IGxvbiB0cm9uZyBkdSBsdWFuIHhhIGhvaSB2b2kgbXVjIGRvIGNh bzogdnUgImhhY2tlciIgQnVpIE1pbmggVHJpIHRhbiBjb25nIHRyYW5nIGNodSBjdWEgQm8gR2lh byANCmR1YyB2YSBEYW8gdGFvLCB2dSBIdXluaCBUaGkgTmdvYyBUcmFtOyBjYWMgdnUgY2hheSBk aWVtIHRoYW5oIHRpY2ggYmkgYm9jIHRyYW4gdmEgeHUgbHkgbmdoaWVtIGtoYWMsICB0aGFtIGNo aSB0aWV1IGN1YyBjb24gbGFuIGRlbiB0YW4gQm8gdmEgdG9pIGNhIGNhYyBjYW4gYm8gY2FwIGNh by4uLg0KDQpOYW0gaG9jIDIwMDcgliAyMDA4LCBvbmcgZHVhIHJhIGNodSB0cnVvbmcgIm5hbSBr aG9uZyIgZ29tOiAibm9pIGtob25nIHZvaSB0aWV1IGN1YyB0cm9uZyB0aGkgY3UgdmEgYmVuaCB0 aGFuaCB0aWNoLCBub2kga2hvbmcgdm9pIHZpIHBoYW0gZGFvIGR1YyBuaGEgZ2lhbyB2YSB2aWVj ICJuZ29pIA0KbmhhbSBsb3AiIChjaG8gaG9jIHNpbmgga2hvbmcgZGF0IGNodWFuIGxlbiBsb3Ap IHZhIChkYW5oIGNobyBjYWMgYmFjIGRhbyB0YW8gc2F1IHRydW5nIA0KaG9jKSBkYW8gdGFvIGto b25nIHRoZW8gbmh1IGNhdSB4YSBob2kiOyBkYXkgbWFuaCBjb25nIGN1b2MgInhhIGhvaSBob2Eg Z2lhbyBkdWMiIA0KbmhhbSAiSHV5IGRvbmcgdG9uZyB0aGUgc3VjIG1hbmggY3VhIHRvYW4geGEg aG9pIHBoYXQgdHJpZW4gZ2lhbyBkdWMgdmEgZGFvIHRhbyIuDQoNCkN1b2kgdGhhbmcgMTIgbmFt IDIwMDcsIG9uZyBkZSB4dWF0IG1vdCB5IGtpZW46ICJnaGkgc28gdGllbiBzaW5oIHZpZW4gdmF5 IG5vIHRyZW4gYmFuZyB0b3QgbmdoaWVwIjsgeSBraWVuIG1hIG9uZyBub2kgcmFuZyBjaGkgbGEg ImdvaSB5IiBuaHVuZyBkYW4gZGVuIG1vdCBjdW9jIHRyYW5oIGNhaSBnYXkgDQpnYXQsIGdvbSBy YXQgbmhpZXUgY2FjIG5oYW4gdmF0IGNvIHV5IHRpbiBvIG5oaWV1IG5nYW5oIG5naGUgdmk6ICJ0 aW5oIGNoYXQgY3VhIGJhbmcgdG90IG5naGllcCBraG9uZyBsaWVuIHF1YW4gZ2kgZGVuIHZheSBu byIuIE5odW5nIG9uZyB0aWVwIHR1YyBiYW8gdmUgcXVhbiBkaWVtIGN1YSBtaW5oOiANCiJWYXkg dGllbiwgbWEgdmF5IG5oYSBudW9jIGRlIGFuIGhvYywgdGFpIHNhbyBsYWkgbGEgbW90IHZpZWMg ZGFuZyB4YXUgaG8/Ii4NCg0KRGF1IG5hbSAyMDA4LCBvbmcgZGUgdHJpbmggY2hpbmggcGh1IHZl IHZpZWMgdGFuZyBob2MgcGhpIGNobyBnaWFvIGR1YyBiYWMgZGFpIGhvYywgdGFuZyB0cmFjaCBu aGllbSB0dSBjaHUgdGFpIGNoaW5oIGNobyBjYWMgdHJ1b25nIGRhaSBob2MuIE5nb2FpIHJhLCBv bmcgY29uIG5oYWMgbGFpIG1vdCANCmxhbiBudWEgdmUgY29uZyB0YWMgbmFuZyBjYW8gY2hhdCBs dW9uZyBnaWFvIGR1YyBkYWkgaG9jOyBkaWV1IG1hIG9uZyBkYSBkZSBjYXAga2hpIG1vaSBuaGFu IGNodWMuDQoNCk5hbSAyMDA2LCBuaGFuIHZ1IHRhbiBjb25nIHRyYW5nIGNodSBjdWEgQm8gR2lh byBkdWMgZG8gaG9jIHNpbmggQnVpIE1pbmggVHJpICB0aHVjIGhpZW4sIG9uZyBjbyB2aWV0IG1v dCBsYSB0aHUgY28gbmhhbiBkZSAiTm9pIGRhdSBjdWEgdG9pIHRyb25nIG5nYXkgMjAtMTEtMjAw Nj8gdHJvbmcgZG8gDQpraG9uZyBoaWV1IHZpIGx5IGRvIGdpIG9uZyBkdW9jIGJpZXQgdnUgdGFu IGNvbmcgY3VhIFRyaSB2YW8gdHJ1YSBuZ2F5IDIwIHRoYW5nIDExIHRyb25nIGtoaSB0aHVjIHRl IHZ1IHRhbiBjb25nIGN1YSBUcmkgZGllbiByYSAxIHR1YW4gc2F1IGRvLCB2YW8gbmdheSAyNyB0 aGFuZyAxMS4NCg0KTmFtIDIwMDcsIG9uZyBsYWkgdnVvbmcgdmFvIG1vdCB2dSB0YWkgdGllbmcg bmhvIGtoYWMgY3VuZyB2aSBwaGF0IGJpZXUgbG8gbG9pLCB0cm9uZyBtb3QgYnVvaSBwaG9uZyB2 YW4gdm9pIHBob25nIHZpZW4gYmFvIFNhaSBHb24gR2lhaSBQaG9uZywgb25nIHBoYXQgYmlldTog IkhvYyBwaGkgDQpjaGFjIGNoYW4gc2UgcGhhaSB0YW5nLCBjbyB0aGUgcGhhaSBjaGFwIG5oYW4g Y2EgdmllYyBzbyBuZ3VvaSBkaSBob2Mgc2UgZ2lhbSB2aSB0YW5nIGhvYyBwaGkhIiBkdSBCbyBk YSB0dXllbiBibyBuaGlldSBsYW46ICIuLnNlIGtob25nIGRlIGFpIHBoYWkgbmdoaSBob2Mgdmkg aG9jIHBoaS4uIi4gVnUgdmllYyANCmRhIGdheSBuZW4gZHUgbHVhbiBraGllbiBvbmcgcGhhaSB2 aWV0IG1vdCBidWMgdGh1IG5vaSByYW5nIFNHR1AgZGEgaGlldSBzYWkgeSBvbmcsIA0Kbmh1bmcg dG9pIG5heSB2YW4ga2hvbmcgdGhheSBTYWkgR29uIEdpYWkgUGhvbmcgZ28gYmFpIGJhbyBuYXkg ZGkgaGF5IGRpbmggY2hpbmggZ2kuDQoNCktoaSBtb2kgbmhhbSBjaHVjIEJvIHRydW9uZywgb25n IGRhIGRlbSBsYWkgYmlldCBiYW8gaGkgdm9uZyBjaG8gZ2lhbyBnaW9pLCBraGkgdGhhdSBoaWV1 IGN1b2Mgc29uZyBjbyBjdWMgY3VhIGhvLCByYW5nIHhvYSBibyBUYWkgY2h1YyBsYSBkYXAgdm8g bmlldSBjb20gY3VhIHJhdCBuaGlldSANCmdpYW5nIHZpZW4sIHJhbmcgdHUgMjAxMCBnaWFvIHZp ZW4gc2Ugc29uZyBkdW9jIGJhbmcgbmdoZSwgcmFuZywgIG5ldSBraG9uZyBkdWEgZHVvYyANCm5l biBHaWFvIGR1YyBudW9jIG5oYSBkaSBsZW4sIG9uZyBzZSBraG9uZyBsYW0gQm8gdHJ1b25nLi4u DQoNCk5heSBkYSBzYW5nIHF1eSBJSSBuYW0gMjAxMCwgbmhpZXUgZ2lhbyB2aWVuIGNhbiByYW5n IGxheSB0aW5oIHRoYW4geWV1IG5naGUgY2FtIGN1IGNobyBkZW4gMjAxMCBjdWEgb25nLiBCYSB0 aGFuZyBkYXUgbmFtLCBnaWEgY2EgbGVvIHRoYW5nLCBkb2kgc29uZyBuaGFuIGRhbiBub2kgY2h1 bmcsIA0Kbmh1bmcgbmd1b2kgY2FtIHBoYW4gbm9pIHJpZW5nIGtobyBraGFuLCB0aGlldSB0aG9u IHRyYW0gYmUuLi4gQ3VjIHRydW9uZyBDdWMgcXVhbiBsaSANCmdpYSBCbyBUYWkgY2hpbmggdGhp IG1haSBkaSBkb25nIHBoaW0gYmVuIFRydW5nIFF1b2MsIHZheSBtYSBCbyB0cnVvbmcgTmhhbiBs YWkgZGFuaCBsb25nIGR1dCBhbyByYSBkaS4gDQoNCk5odW5nIEJvIHRydW9uZyBsYSBuZ3VvaSB0 cm9uZyBraGkgdGlldCwgbm9pIGxhIGxhbS4gTmVuIEdpYW8gZHVjIG51b2MgbmhhLCBzYXUgYm9u IG5hbSBkdW9jIG5nYWkgY2FtIGN1b25nLCBraGUga2hlIGhhdCBjYXUgImVtIHZhbiBuaHUgbmdh eSB4dWEiLiBPbmcga2hvbmcgbGFtIEJvIHRydW9uZyBudWEgdGhhdC4gT25nIGxhbSBQaG8gdGh1 IHR1b25nLg0KQm8gdHJ1b25nIGRhIHJhIGRpIQ0KVGh1b25nIHRoYXkhDQoNCmh0dHA6Ly9sZW5k dW9uZy5uZXQvc3BpcC5waHA/YXJ0aWNsZTE5NjcyIDEwLzAxLzIwMDggIA0KDQpCbG9nZ2VyIFZO IGJpbmggY2hvbiBOSEFOIFZBVCBURSBIQUkgY3VhIG5hbSAyMDA3ICANCg0KVGhlbyBiYW8gRGll biBUdSBDaHVuZyBOaGFuIExpY2ggU3UsIG1vdCBjdW9jIHRoYW0gZG8gYmkgbWF0IGxpZW4gbWFu ZyBnaXVhIGNhYyANCm5ob20gdGhvbmcgdGluIHR1IGRvIHRyb25nIG51b2MgZGEgY3VuZyBxdXll dCBkaW5oIGJpbmggY2hvbiBkYW5oIGhpZXUgIk5oYW4gdmF0IGN1YSANCm5hbSAyMDA3IHZhIHh1 bmcgZGFuZyBkdW9jIHRoZW8gZG9pIHRyb25nIHN1b3QgbmFtIDIwMDgiIGNobyBvbmcgTmd1eWVu IFRoaWVuIA0KTmhhbiwgUGhvIHRodSB0dW9uZyBraWVtIEJvIHRydW9uZyBCbyBHaWFvIGR1YyAm IERhbyB0YW8gY3VhIE5oYSBudW9jIENTVk4uIEJhbiANCnRoYW0gZG8gbmF5IGRhIGR1b2MgYmkg bWF0IGd1aSBkaSB0cm9uZyBtb3QgdHVhbiBsZSBkZW4gaG9uIDEwMCB0cmFuZyBibG9nIGN1YSBj YWMgDQpuaG9tIHZhIGNhIG5oYW4gdGhvbmcgdGluIHR1IGRvIHRyb25nIG51b2MsIHZhIGN1b2kg Y3VuZyBob24gOTAlIGJsb2cgdGhhbSBnaWEgdHJhIGxvaSANCmRhIGN1bmcgeGFjIG5oYW4gZGFu aCBoaWV1IG5heSB4dW5nIGRhbmcgZHVvYyB0cmFvIGNobyBvbmcgTmd1eWVuIFRoaWVuIE5oYW4g dm9pIA0KbW90IHRoYW5oIHF1YSBkYW5nIG5nYWMgbmhpZW4gdmUgInZpZWMgdGh1YyBkYXkgbmhh bmggY2hvbmcgdmllYyB4dW9uZyBkb2MgZGVuIG11YyANCmRhbmcgeGF1IGhvIGN1YSBuZW4gZ2lh byBkdWMgVmlldCBOYW0sIHRyb25nIG5hbSAyMDA3LiINCg0KT25nIE5ndXllbiBUaGllbiBOaGFu IHNpbmggbmdheSAxMiB0aGFuZyA2IG5hbSAxOTUzIHRhaSBUaW5oIENhIE1hdSwgcXVlIHF1YW4g WGEgDQpQaHVvbmcgVHJhLCBIdXllbiBDaGF1IFRoYW5oLCBUaW5oIFRyYSBWaW5oLiBIaWVuIGRh bmcgY3Ugbmd1IHRhaSBzbyA3Mi8xIGR1b25nIA0KVHJhbiBRdW9jIFRvYW4sIFBodW9uZyA4LCBR dWFuIDMsIFNhaWdvbi4gVGhhbmcgNiBuYW0gMjAwNiBuaGFuIGNodWMgQm8gdHJ1b25nIEJvIA0K Z2lhbyBkdWMgJiBEYW8gdGFvLiBOYW0gMjAwNyBraWVtIGNodWMgUGhvIHRodSB0dW9uZyB0cm9u ZyBub2kgY2FjIG1vaSBjdWEgdGh1IHR1b25nIA0KQ1NWTiBOZ3V5ZW4gVGFuIER1bmcuIEtob2kg ZGF1IG5hbSB2aSB0cmkgbmdhbmggZ2lhbyBkdWMsIG9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiANCmdp ZW8gZHVvYyBpdCBuaGlldSB0aGllbiBjYW0gbm9pIGNvbmcgY2h1bmcgYm9pIGRhbmcgdmUgdHJp IHRodWMgYmUgbmdvYWkgY3VuZyBuaHUgY2hpZW4gDQpkaWNoIHRpZXAgY2FuIGNvbmcgY2h1bmcg bGllbiB0dWMgcXVhIGhpbmggYW5oIHZhIGNhYyBsb2kgcGhhdCBiaWV1IHZlIGNhbSBrZXQgdnVj IGRheSANCm5lbiBnaWFvIGR1YyBWaWV0IE5hbS4NCg0KVHV5IG5oaWVuLCBuaGFuaCBjaG9uZyBz YXUgZG8sIG5odW5nIHN1IHZpZWMgbGllbiB0aWVwIGN1YSBuZ2FuaCBnaWFvIGR1YyB4YXkgcmEg byBjYWMgDQpraGlhIGNhbmggY2h1IHF1YW4gdmEga2hhY2ggcXVhbiwgZGEgbmhhbmggY2hvbmcg bGFtIHJvIGdpYSB0cmkgdGhhdCBjdWEgdmkgcGhvIHRodSANCnR1b25nIGtpZW0gYm8gdHJ1b25n IGdpYW8gZHVjIG5heS4gVGhlbyBtb3QgdGhhbSBkbyBuaGFuaCBjdWEgZ2lvaSB0cmkgdGh1YyB2 YW8gdGhhbmcgDQoxMi0yMDA3IGRvIG5ob20gQ2h1bmcgbmhhbiBMaWNoIHN1IHRvIGNodWMsIGNv IHRvaSA3MiUgeGFjIG5oYW4gbGEga2hvbmcgY29uIG5pZW0gDQp0aW4gbm9pIG9uZyBOZ3V5ZW4g VGhpZW4gTmhhbiBudWEuIFN1IG5odSBuaHVvYyB2YSB0aGlldSBraGEgbmFuZyBnaWFpIHF1eWV0 IHZhbiBkZSANCmN1YSBvbmcsIGhheSBub2kgZHVuZyBob24gbGEgdHJhbmggbmUgdmEgY2hhbSB2 b2kgY2FjIGtob2kgcXV5ZW4gbHVjIERhbmcgQ1NWTiBkYW5nIA0KY2hpYSBuaGF1IGNhbSBuYW0g dHJvbmcgbmdhbmggZ2lhbyBkdWMgZGEga2hpZW4gY2FjIG5hbiBiYW8gaGFuaCB0cm9uZyB0cnVv bmcgaG9jIA0KbW9pIGx1YyBjYW5nIHRhbmcsIGt5IGN1b25nIGN1YSBob2MgZHVvbmcgdmEgdXkg dGluIGNodW5nIGN1YSBnaW9pIHN1IHBoYW0gYmkgc3V0IGdpYW0gDQp0cmFtIHRyb25nLg0KRGFu ZyBuZ2FjIG5oaWVuIGhvbiwgbGllbiBxdWFuIGRlbiBuaHVuZyB2YW4gZGUgbmF5LCBjaGkgdGhh eSBvbmcgaG8gaGFvIGRlIHRpbSBjYWNoIA0KeG9hIGRpdSBkdSBsdWFuIGNodSBraG9uZyBkdWEg cmEgZHVvYyBnaWFpIHBoYXAgY3UgdGhlIHZhIGhvcCBseSBuYW8gZGUgY2FpIHRoaWVuIHRpbmgg DQpoaW5oLiBOZ3V5ZW4gVGhpZW4gTmhhbiBjdW5nIG5vaSB0aWVuZyBsYSBuZ3VvaSBkZSBkYW5n IGJvYyBsbyBzdSBkb2MgZG9hbiBjdWEgbWluaCANCm5odW5nIG5nYXkgc2F1IGRvIGxhaSBuaGFu aCBjaG9uZyBjaHVhIGxhaSBiYW5nIG5odW5nIGxvaSBsZSBuZ3V5IGJpZW4gaGV0IHN1YyB0aW5o IA0Kbmd1b2kuIENhdSBub2kgbm9pIHRpZW5nIGN1YSBvbmcgdmFvIGRhdSBuYW0gMjAwNyBsYSAi SG9jIHBoaSBjaGFjIGNoYW4gc2UgcGhhaSB0YW5nLCANCmNvIHRoZSBwaGFpIGNoYXAgbmhhbiBj YSB2aWVjIHNvIG5ndW9pIGRpIGhvYyBzZSBnaWFtIHZpIHRhbmcgaG9jIHBoaSEiLiBMb2kgcGhh dCBiaWV1IG5heSANCmdheSBiYXQgYmluaCB0cm9uZyBuaGFuIGRhbiwgdmEgbWFjIGR1IHNhdSBk byBvbmcgTmhhbiBjaG9pIGxhIG1pbmgga2hvbmcgbm9pLCBjaG8gZHUgDQpiYW8gU2FpIEdvbiBH aWFpIFBob25nIHZhIGJhbyBTYWkgR29uIFRpZXAgVGhpLCBQaGFwIEx1YXQgVFAuSENNIGRhIHR1 bmcgcmEgY2h1bmcgDQpjdSBsYSBjYWMgYmFuZyBnaGkgYW0gZ2lvbmcgcGhhdCBiaWV1IGN1YSBv bmcuDQoNCk9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiBjdW5nIGJpIG5naGkgbmdvIGxhIGRhIHR1IHRh byBjaG8gbWluaCBzY2FuZGFsIGRlIHR1IGxhbSBkZXAgDQp0cm9uZyBtYXQgY29uZyBjaHVuZy4g TmFtIDIwMDYsIHRyb25nIHZ1IG1vdCBob2Mgc2luaCBoYWNrZXIgdGluaCBCZW4gVHJlIHRhbiBj b25nIA0KdmFvIHdlYnNpdGUgQm8gZ2lhbyBkdWMsIG9uZyBOaGFuIHR1bmcgcmEgbW90IGJ1YyB0 aHUgbm9pIHZlIGNodXllbiBuYXkgbWFuZyB0ZW4gbGEgDQoiTm9pIGRhdSBjdWEgdG9pIHRyb25n IG5nYXkgMjAtMTEtMjAwNiIsIG5oYW0gbm9pIHZlIGNodXllbiBjdWEgaGFja2VyIG5heS4gVGhl IA0Kbmh1bmcga2hvbmcgYWkgaGlldSBkdW9jIHZpIHNhbyBvbmcgbGFpIGJpZXQgdmEgZHVhIHJh IGxvaSB0YW0gdGluaCBjaG8gc3Uga2llbiwgdHJvbmcga2hpIA0KdGh1YyB0ZSB2dSB0YW4gY29u ZyBjdWEgaGFja2VyIG5heSBkaWVuIHJhIG1vdCB0dWFuIHNhdSBkbywgdmFvIG5nYXkgMjctMTEu IEtldCBxdWEgY3VhIA0KY3VvYyB0byBjaHVjIHRoaSBsYW4gMiwgY2FpIGNhY2ggZ2lhbyBkdWMs IHhhIGhvaSBob2EgZ2lhbyBkdWMuLi4gY3VhIG9uZyBOZ3V5ZW4gVGhpZW4gDQpOaGFuIGRhIGR1 YSBoYW5nIHRyYW0gbmdhbiB0cmUgZW0gcmEga2hvaSBuaGEgdHJ1b25nLg0KVGllbiBzaSBWdSBR dWFuZyBWaWV0LCBjaHV5ZW4gZ2lhIHRvYW4gdGhvbmcga2UgY3VhIExpZW4gSG9wIFF1b2MgZGEg Y2FuaCBiYW8gdGluaCANCnRyYW5nIG5heSB0dSB0aGFuZyA2LTIwMDcsIHZhIGR1IGtpZW4gbGEg c2UgY28gaG9uIDM1MC4wMDAgdHJlIGVtIG1pZW4gRG9uZyBOYW0gQm8gDQpraG9uZyB0aGUgdG9p IHRydW9uZy4gRGVuIG5heSB0aGkgY29uIHNvIG5heSBkYSB0YW5nIGdhcCBiYSBsYW4gdmEgdHJh aSByb25nIHR1IEJhYyBjaGkgTmFtLiANClRpbmggaGluaCBkYSBkZW4gbXVjIGRhbmcgYmFvIGRv bmcga2hpZW4gb25nIE5ndXllbiBLZSBIYW8sIE5ndXllbiBWdSB0cnVvbmcgVnUgVGlldSBob2Ms DQogQm8gR2lhbyBkdWMgZGFvIHRhbyBkYSBwaGFpIGtldSBsZW4gdm9pIGJhbyBjaGkgbGEgIlZp ZXQgTmFtIGRhbmcgdGllbSBhbiBxdW9jIG5hbiB0cmUgZW0gdGhhdCBob2MiLiANCkdpYW8gc3Ug Tmd1eWVuIExhbiBEdW5nLCBkYWkgYmlldSBRdW9jIGhvaSwgNTEgbmFtIGxhbSB0cm9uZyBuZ2Fu aCBnaWFvIGR1YywgY3VuZyBtdW9uIHZpZWMgcGhhdCBiaWV1IA0Kdm9pIHRydXllbiBoaW5oIHZh IGtldSBnb2kgb25nIE5ndXllbiBUaGllbiBOaGFuIGhheSBraG9hbiB0YXAgdHJ1bmcgdmFvIG5o dW5nIHZhbiBkZSBxdWEgc3VjIG1pbmggbWEgDQpuaGluIGxhaSBkaWV1IGNvIGJhbiBsYSBoZSB0 aG9uZyBzYWNoIGdpYW8ga2hvYSBkYSBraG9uZyBkdSB0cmkgdGh1YyBjaG8gdGhlIGhlIHRyZSBW aWV0IE5hbS4gDQpPbmcgTGFuIER1bmcgY2hpIHRyaWNoIGNhYyBjb25nIGN1b2MgY2FpIGNhY2gg Y3VhIG9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiBjaGkgbGEgaGluaCB0aHVjLCANCnZhIHNvbSBtdW9u IGdpIGN1bmcgc2UgcXVheSBsYWkgbG9pIG1vbiBiZSB0YWMgeHVhIGN1Li4uDQoNCk5hbSAyMDA4 LCB0b2FuIFZpZXQgTmFtIHN1bmcgc290IGtoaSBuZ2hlIHRpbiByYW5nIG9uZyBOZ3V5ZW4gVGhp ZW4gTmhhbiBzZSBkdWEgZGVuIA0KdmllYyBnaGkgdGllbiBubyB2YXkgZGkgaG9jIGN1YSBzaW5o IHZpZW4gdmFvIGJhbmcgdG90IG5naGllcCwgbmV1IHNpbmggdmllbiBkbyBjaHVhIHRyYSANCmhl dCB0aWVuIGNobyBuaGEgbnVvYy4gU2F1IGtoaSBnYXAgbmhpZXUgcGhhbiB1bmcgY3VhIGdpb2kg dHJpIHRodWMsIG9uZyBOaGFuIGxhaSBjaG9pIA0KcXVhbmggdmEgbm9pIHJhbmcgbWluaCBjaGkg bW9pIGdvaSB5IHZhbiBkZSBuYXkgdGhvaSBjaHUgY2h1YSBjbyBxdXlldCBkaW5oLCB0cm9uZyBr aGkgDQpjb25nIHZhbiBjdWEgb25nICJQaG8gdGh1IHR1b25nIiBkYSBnaWFvIHZpZWMgdGh1YyB0 aGkgdmllYyBnaGkgbm8gbGVuIGJhbmcgY2FwIGN1YSBzaW5oIA0KdmllbiBuYXkgY2hvLi4uIGNo aW5oIG9uZyAiQm8gdHJ1b25nIGdpYW8gZHVjIiCWIGN1bmcgY2hpbmggbGEgb25nLiBIYXUgaGV0 IGRhbiBjaHVuZyANCmN1bmcgbmh1IGdpb2kgdHJpIHRodWMgdHJvbmcgbmdhbmggZ2lhbyBkdWMg ZGV1IGJhbmcgaG9hbmcgdmkgc3V5IG5naGkgbmF5LiBEZW4gbXVjIA0Kb25nIFRyYW4gSG9uZyBR dWFuLCBjdXUgQm8gdHJ1b25nIEJvIGdpYW8gZHVjIGRhbyB0YW8gZGEgcGhhaSB0aG90IGxlbiAi Q2hpbmggc2FjaCBreSANCmxhIG5oYXQgdHUgdHJ1b2MgZGVuIG5heSIuDQoNCk5nYXkgNy0xLTIw MDgsIG9uZyBOZ3V5ZW4gVGFuIER1bmcgZGEgcGhhaSAiY3V1IG5ndXkiIGNobyBzdSBzdXkgc3Vw IHV5IHRpbiBjdWEgb25nIA0KTmd1eWVuIFRoaWVuIE5oYW4gYmFuZyBjYWNoIHR1eWVuIGJvIHRh bmcgMjIlIG5nYW4gc2FjaCBjaG8gZ2lhbyBkdWMsIG5oYW0geG9hIGRpdSANCmR1IGx1YW4gY3Vu ZyBuaHUgdGFtIGxhcCBkYXkga2hvYW5nIGxhbmcgYmF0IG1hbiBtYSBuZ3VvaSBkYW4gVmlldCBO YW0gZGFuZyBodW9uZyANCnZlIG9uZyBwaG8gdGh1IHR1b25nIC0gQm8gdHJ1b25nIEJvIEdpYW8g ZHVjIFZpZXQgTmFtLiBDaHVuZyB0YSBoYXkgY3VuZyBjaG8geGVtIA0Kb25nIE5oYW4gc2UgbGFt IGdpIHRyb25nIG5hbSAyMDA4IG5heS4gDQoNCkN1bmcgdGhlbyBiYWkgYmFvIG5heSwgb25nIE5n dXllbiBUaGllbiBOaGFuIGRhIGdpYW5oIGNoaWVuIHRoYW5nIGRheSB0aHV5ZXQgcGh1YyANCmNo byBkYW5oIGhpZXUgIk5oYW4gdmF0IGN1YSBuYW0iLiBUdXkgbmhpZW4gdHJvbmcgY3VvYyB0aGFt IGRvLCBtb3Qgc28gbmhhbiB2YXQga2hhYyANCmN1bmcgdG8gcmEgbGEgdW5nIGN1IHZpZW4gc2Fu ZyBnaWEgY2hvIGRhbmggaGlldSBuYXksIGJhbyBnb206IE9uZyBIbyBOZ2hpYSBEdW5nLCBCbyAN CnRydW9uZyBCbyBHaWFvIFRob25nIFZhbiBUYWkgQ1NWTiwgZHVvaSBuaGlldSBhcCBsdWMgZGEg bGVuIHRpZW5nIHhpbiBsb2kgdHJvbmcgdGhhbSANCmhvYSBzYXAgY2F1IENhbiBUaG8gZG8gQm8g b25nIGxhbSBjaHUgZGF1IHR1LiBUdXkgbmhpZW4gb25nIGtob25nIHRoZSBwaGEgdm8gdHJ1eWVu IA0KdGhvbmcgImxvaSBub2kgZ2lvIGJheSIgY3VhIGdpb2kgcXVhbiBjaHVjIGtoaSBkZW4gbmF5 IHRpZW4gdHJpbmggZGlldSB0cmEgdnUgdmllYyB2YW4gDQpjaHVhIGNvIGNodXllbiBiaWVuIG1v aS4gQ2hpbSB4dW9uZz8gRG9uZyB0aG9pIG5hbSBuYXkgb25nIER1bmcgY3VuZyBsYXAgZHVvYyAN CnRoYW5oIHRpY2ggcnVjIHJvIG1hIGJhdCBreSBhaSBkaSB4ZSBnYW4gbWF5IHRoYXkgbmFuZyBk YXUgbW9pIGNvIGRldSB0aGFtIHRoaWEuIE9uZyANCmRheSBodWEgaGVuIHZ1b3QgcXVhIG9uZyBO aGFuIHRyb25nIG5hbSAyMDA4IG5ldSBkYW5oIHRodWUgdGhhbmggY29uZyBvIHRvIHZhIHhlIA0K bWF5LiBPbmcgTGUgRG9hbiBIb3AsIEJvIHRydW9uZyBCbyBUaG9uZyB0aW4gLSBUcnV5ZW4gdGhv bmcgQ1NWTiwgbmd1b2kgcGhhdCBtaW5oIA0KcmEgYm9uIHRyb25nIHRyZW8gY28gYmFvIGNoaS4g WGVtIHJhIG5ldSB2YW4gZ2l1IGR1b2MgdGluaCB0aGFuIG5oaWV0IGh1eWV0IHRyb25nIHZpZWMg ZXAgDQpuZ29uIGx1YW4gImRpIGR1bmcgbGUgZHVvbmcgYmVuIHBoYWkiLCBvbmcgc2UgbHVvbiBs YSB1bmcgY3UgdmllbiBuYW5nIGt5LiBDdWMgdHJ1b25nIA0KQ3VjIE5naGUgdGh1YXQgQmlldSBk aWVuIENTVk4sIE9uZyBMZSBOZ29jIEN1b25nLCBjdW5nIHRvIHJhIGtob25nIGhlIGtlbSBjYW5o IA0KY2FjIGRvaSB0aHUga2hpIGxpZW4gdHVjIGJhbiBoYW5oIGNhYyB2YW4gYmFuIGNhbSBuaHUg Y2FtIEhTU1YgY2FjIHRydW9uZyBuZ2hlIHRodWF0IA0KdGhhbSBnaWEgYmlldSBkaWVuIGtpZW0g c29uZyB0YWkgdnUgdHJ1b25nLCBiYXIsIGthcmFva2UuLi4gY2FtIHBoYXQgaGFuaCBjYSBraHVj IG1hIA0KY2h1YSBkdW9jIG9uZyBjYXAgcGhlcCwgY2FtIHN1IGR1bmcgY2Ega2h1YyBjaHVhIGR1 b2MgcGhvIGJpZW4gdHJvbmcgZGllbiBhbmgsIGRvaSBxdXllbiBjYXAgdGhlIGhhbmggbmdoZSBj aG8gbmdoZSBzaS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDI0LzIwMTAwNjA4MDI0MDU2LmFzcHggMDgvMDYvMjAxMCAyOjQwIA0KDQpNbyB4ZSBnaWFvIGR1 YyBkYWkgaG9jDQoNCkNhcCBwaGVwIG1vIHRydW9uZyBkZSBkYWksIGNoYXQgbHVvbmcgZGFvIHRh byB0aGFwLCBkYWMgYmlldCBvIGhlIGtob25nIGNoaW5oIHF1eSwgDQpjaGFtIHRyZSB4dSBseSBj YWMgdHJ1b25nIHNhaSBwaGFtLi4uIGxhIG5odW5nIHZhbiBkZSBkdW9jIG5oaWV1IGRhaSBiaWV1 IFF1b2MgaG9pIA0KZGUgY2FwIHRyb25nIHBoaWVuIHRoYW8gbHVhbiB0YWkgaG9pIHRydW9uZw0K DQpodHRwOi8vd3d3LnNnZ3Aub3JnLnZuL2NoaW5odHJpLzIwMTAvNC8yMjM2OTEvIDE3LzA0LzIw MTAsIDAyOjA1IChHTVQrNykNCg0KVGh1IHR1b25nOiBRdXkgdHJpbmgsIHRodSB0dWMgdmEgZGll dSBraWVuIHRoYW5oIGxhcCB0cnVvbmcgKERIKSBjaHVhIGR1b2MgdGh1YyBoaWVuIGRheSBkdSwg bmdoaWVtIHR1Yy4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNi8x MC1zaW5oLXZpZW4tdGh1Yy1oYW5oLXRyZW4tMS1jb24tZWNoLTkxNDUyOC8gMDY6MDksIDA3LzA2 LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IDEwIHNpbmggdmllbiB0aHVjIGhhbmggdHJlbiAx IGNvbiBlY2gNCg0KaHR0cDovL3d3dy5zZ2dwLm9yZy52bi9jaGluaHRyaS8yMDEwLzQvMjIzNjkx LyAxNy8wNC8yMDEwLCAwMjowNSAoR01UKzcpDQoNClRodSB0dW9uZzogVHJ1b25nIERIIG5hbSB4 ZW4gZ2l1YSBxdWFuIG51b2MsIHF1YW4ga2FyYW9rZQ0KDQpNb3Qgc28gdXkgdmllbiBVQlRWUUgg cGhhdCBiaWV1OiAiVHJ1b25nIERIIG5hbSB4ZW4gZ2l1YSBxdWFuIG51b2MsIHF1YW4ga2FyYW9r ZSwgdGhhbSBjaGkgbmdheSBiZW4gY2FuaCBzYW4gdmFuIGRvbmcuLi4gdGhpIGxhbSBzYW8gZGFt IGJhbyBtb2kgdHJ1b25nIGhvYyB0YXAgZHVvYyEiIA0KDQpodHRwOi8vd3d3LnNnZ3Aub3JnLnZu L2NoaW5odHJpLzIwMTAvNC8yMjM2OTEvIDE3LzA0LzIwMTAsIDAyOjA1IChHTVQrNykgQU5IIFBI VU9ORw0KDQpUaHUgdHVvbmc6IFhhYyBkaW5oIGR1b2Mgc2FpIHBoYW0gbmh1bmcgY3VvaSBjdW5n IGxhaSBraG9uZyB4dSBseSBuZ2hpZW0gdHVjDQoNCkNvIHF1YW4gcXVhbiBseSBOaGEgbnVvYyBi dW9uZyBsb25nIHF1YW4gbHksIHhhYyBkaW5oIGR1b2Mgc2FpIHBoYW0gbmh1bmcgY3VvaSBjdW5n IA0KbGFpIGtob25nIHh1IGx5IG5naGllbSB0dWMuIA0KDQpWaSBkdTogQmFvIGNhbyBnaWFtIHNh dCBjaGkgcmEgREggUGhhbiBUaGlldCB2dW90IGNoaSB0aWV1IHR1eWVuIHNpbmggZGVuIGdhbiA5 MiUgKG5hbSBuZ29haSkuIENodW5nIHRvaSBjdW5nIG5naGUgQm8gZGEgeHUgbHksIG5odW5nIGN1 bmcgY28gdGhvbmcgdGluIHRyZW4gYmFvIGNoaSByYW5nIG5hbSANCm5heSBESCBQaGFuIFRoaWV0 IHZhbiB0aWVwIHR1YyBkdW9jIHR1eWVuIHNpbmguIA0KDQpDYWkgbWEgQm8gR0QtRFQgcGhhdCBE SCBQaGFuIFRoaWV0IHRodWMgcmEgY2hpbmggbGEgdHJ1IG5vIGN1YSBuYW0gdHJ1b2MsIHR1YyBs YSBibyBjaG8gcmFuZyBuYW0gdHJ1b2MgYW5oIHNhaSBwaGFtLCB0dXllbiB2dW90IHRoaSBuYW0g bmF5IHRvaSB0cnUgY3VhIGFuaC4gUGhhdCBraG9uZyB0aGUgDQpsYSBuaHUgdmF5IG1hIHBoYWkg Z2FwIHJhdCBuaGlldSBsYW4gY2FpIG1hIGFuaCBkYSB2aSBwaGFtLiBUcnVvbmcgdHV5ZW4gdnVv dCAxMCB0aGkgYm8gcGhhaSB0cnUgMTAwLiBDb24gaGllbiBuYXkgYm8gY2hpIGxhICJ0aHUgbm8i IGNhYyB0cnVvbmcsIHZpIHZheSBraG9uZyBsYW0gY2hvIGNhYyANCnRydW9uZyBzby4gUXVhbiBu aWVtIHBoYXQgaGllbiBuYXkgY2h1YSB0aG9hIGRhbmcsIHZpIG11YyBwaGF0IHZhbiBuaGUgaG9u IG5oaWV1IGxhbiBzbyB2b2kgY2FpIG1hIG5ndW9pIHZpIHBoYW0gZHVvYyBsb2kuDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMC8yMDEwMDcyMTA4NDAwOS5h c3B4IDIxLzA3LzIwMTAgODo0MCANCg0KVGh1IHR1b25nOiBHaWFvIGR1YyBkYWkgaG9jIC0gRGll bSB0aGkgZGF1IHZhbyB0aGFwDQoNClRydW9uZyBESCBUaWVuIEdpYW5nOiBOYW0gbmF5IDIwMTAs IGNvIDI5MyBUUyBkYXQgdHUgMTMgZGllbSB0cm8gbGVuIHRyb25nIGtoaSBjaGkgdGlldSBjdWEg DQp0cnVvbmcgbGEgODQwIFRTLiBWaSB2YXksIHRoZW8gaG9pIGRvbmcgdHV5ZW4gc2luaCBjdWEg dHJ1b25nIHRoaSBESCBUaWVuIEdpYW5nIGNvbiByYXQgbmhpZXUgY2hpIHRpZXUgTlYyLiANCg0K aHR0cDovL3d3dy5zZ2dwLm9yZy52bi9jaGluaHRyaS8yMDEwLzQvMjIzNjkxLyAxNy8wNC8yMDEw LCAwMjowNSAoR01UKzcpDQoNClRodSB0dW9uZzogR2lhbyBkdWMgRGFpIGhvYyAtIENoYXQgbHVv bmcgZGF1IHZhbywgZGF1IHJhIGRldSB0aGFwIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vTmV3cy9QYWdlcy8yMDEwMzUvMjAxMDA4MjYwMTA1MzguYXNweCAyNi8wOC8yMDEwIDE6MDUg DQoNClRodSB0dW9uZzogQ2FuIGNhaSBjYWNoIGNoZSBkbyBkYWkgbmdvICANCiAgDQpSYXQgbmhp ZXUgbmhhIHRvYW4gaG9jIFZpZXQgTmFtIGRhbmcgbGFtIHZpZWMgdGFpIG5odW5nIHRydW9uZyBE SCBob2FjIHZpZW4gbmdoaWVuIA0KY3V1IGRhbmggdGllbmcgbyBudW9jIG5nb2FpLCBuaHVuZyBp dCBuZ3VvaSB0cm8gdmUgbnVvYyBsYW0gdmllYyB2aSBjbyBjaGUgZGFpIG5nbyBuaGFuIA0KdGFp IGhpZW4gbmF5IGNodWEgdGhvYSBkYW5nLiANCg0KaHR0cDovL2RpZW5kYW5raWVudGh1Yy5uZXQv ZGllbmRhbi9zaG93dGhyZWFkLnBocD90PTEyMzY0ICAyMi8xLzIwMTANCg0KVGh1IHR1b25nOiA0 IGRpZW0vbW9uIHZhbiBsYSB0aGF5IGdpYW8gdHVvbmcgbGFpDQoNCk5odW5nIG5hbSBnYW4gZGF5 LCBkZSB0dXllbiBkdSBjaGkgdGlldSBkdW9jIGdpYW8sIGtob25nIGl0IHRydW9uZyBzdSBwaGFt IGRhIHBoYWkgeGV0IHR1eWVuIGRvdCAyLCBkb3QgMyB2b2kgbmh1bmcgdGhpIHNpbmgga2hvbmcg Y28gbmd1eWVuIHZvbmcgY2hvbiBuZ2hlIHRoYXkgbmdheSB0dSBkYXUuDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMi8yMDEwMDgwODEwMjAxNi5hc3B4IDA4 LzA4LzIwMTAgMTA6MjAgDQoNCkRpZW0gc2FuIERILUNEIDIwMTA6IGtob2kgQSAxMyBkaWVtLCBr aG9pIEI6IDE0IGRpZW0sIGtob2kgQzogMTQgZGllbSwga2hvaSBEOiAxMyBkaWVtLiANCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL2dpYW9kdWMvMjAxMDA4L0R1LWRvYW4tYmF0LW5nby12ZS1k aWVtLXNhbi1kYWktaG9jLW5hbS1uYXktOTI2ODcxLyBLaWV1IE9hbmggMDc6MjEsIDA1LzA4LzIw MTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IERpZW0gc2FuIGRhaSBob2MgdHUgbmFtIDIwMDQgLSAy MDEwIChOMDQgliBOMTApIHBoYW4gbmFvIGNobyB0aGF5IGtldCBxdWEgaG9jIHRhcCBnaWFtIHN1 dCANCg0KS2hvaSBBLSBOMDQ6IDE0LCBOMDU6IDE1LCBOMDY6IDEzLCBOMDc6IDE1LCBOMDg6IDEz LCBOMDk6IDEzLCBOMTA6IDEzIA0KDQpLaG9pIEItIE4wNDogMTUsIE4wNTogMTUsIE4wNjogMTQs IE4wNzogMTUsIE4wODogMTUsIE4wOTogMTQsIE4xMDogMTQgDQoNCktob2kgQy0gTjA0OiAxNSwg TjA1OiAxNCwgTjA2OiAxNCwgTjA3OiAxNCwgTjA4OiAxNCwgTjA5OiAxNCwgTjEwOiAxNCANCg0K S2hvaSBELSBOMDQ6IDE0LCBOMDU6IDE0LCBOMDY6IDEzLCBOMDc6IDIzLCBOMDg6IDEzLCBOMDk6 IDEzLCBOMTA6IDEzIA0KDQooQmFuZyBzbyBsaWV1IHRyZW4gcGhhbiBuYW8gY2hvIHRoYXkga2V0 IHF1YSBob2MgdGFwIGdpYW07IGtlbSBuaGF0IGxhIGNhYyBuYW0gMjAwOSwgMjAxMCkgDQoNCmh0 dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2UvdmlldG5hbS8yMDEwLzA2LzEwMDYxMF9zd2Vk ZW5fYW50aWNvcnJ1cHRpb24uc2h0bWwgMTAvNi8yMDEwIA0KDQpUaHUgdHVvbmc6IFRoYW0gbmh1 bmcgZ2lhbyBkdWMga2VvIGx1aSBWaWV0IE5hbSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL25ld3MvUGFnZXMvMjAxMDUwLzIwMTAxMjA5MjIyOTQ1LmFzcHggTmhvbSBQViBHaWFvIER1 YyAgMDkvMTIvMjAxMCAyMjoyOSANCg0KVGh1IHR1b25nOiBEdW5nIGRlICJ0YWkgY2h1YyIgdGhh bmggInRodSBwaGFtIiEgIA0KDQpDYWMgY28gcXVhbiBjbyB0cmFjaCBuaGllbSBjYW4gcGhhaSBj byBuaHVuZyB0aGF5IGRvaSBtYW5oIG1lIG8gbW9pIGtoYXUgZGUgeGEgaG9pIA0Ka2hvbmcgeGVt IG5ndW9pIHRvdCBuZ2hpZXAgaGUgZGFvIHRhbyB0YWkgY2h1YyAobmF5IGdvaSBsYSBoZSB2dWEg bGFtIHZ1YSBob2MpIGxhICJ0aHUgcGhhbSIgbnVhLiANCg0KKEFuaDogTG9wIHRhaSBjaHVjIENv bmcgbmdoZSB0aG9uZyB0aW4gLSBESCBLaG9hIGhvYyB0dSBuaGllbiAtIEFuaDogRGFvIE5nb2Mg VGhhY2gpIA0KDQpTaW5oIHZpZW4gKFNWKSBwaGFuIGxvbiBkZW4gbG9wIGRlIGRvaSBwaG8sIHRo aSBjdSBraG9uZyBuZ2hpZW0gdHVjLCBjb24gZ2lhbmcgdmllbiANCmx1b24gbWFuZyB0YW0gbHkg ZGF5IHRhaSBjaHVjIG5lbiBoZXQgc3VjIGxvIGxhLiANCg0KSGUgdnVhIGxhbSB2dWEgaG9jIChW TFZIKSBkYW5oIGNobyBuaHVuZyBkb2kgdHVvbmcgdnVhIGRpIGxhbSwgdnVhIGRpIGhvYyBuZW4g Y28gDQpkYWMgdGh1IGRhbyB0YW8gcmllbmcuIFRob2kgZ2lhbiBob2MgdmEgdGhpIHRodW9uZyB2 YW8gYnVvaSB0b2kgaG9hYyBuaHVuZyBuZ2F5IG5naGkgDQpjdW9pIHR1YW4uIERvIGN1bmcgbGEg bHVjIHNhdSBnaW8gbGFtIHZpZWMsIG5ndW9pIGhvYyBkYSBtZXQgbmhvYWkuIA0KDQpEZW4gbG9w IGNobyBjbyBtYXQgDQoNCkwuTi5IIC0gU1YgbmFtIDMgbmdhbmggS2UgdG9hbiwgdHJ1b25nIERI IEtpbmggdGUgVFAuSENNIC0gdGFtIHN1OiAiQ28gcmF0IG5oaWV1IA0KYnVvaSBob2MgbWluaCBk ZW4gbG9wIG5odW5nIGNoaSBkZSBuZ29pIGNobyBjbyBjaHUga2hvbmcgaGlldSBnaSBjYSB2aSBx dWEgbWV0LiAxNyBnaW8gDQo0NSBiYXQgZGF1IGdpbyBob2Mgbmh1bmcgcGhhaSB0b2kgaG9uIDE4 IGdpbyBtb2kgb24gZGluaCBsb3AuIFRoYXkgdmkgMjEgZ2lvIG1vaSBrZXQgDQp0aHVjIG5odW5n IG1ldCBxdWEgU1YgdGh1b25nIHlldSBjYXUgZHVvYyBuZ2hpIHR1IDIwIGdpbyAzMCwgdGhhbSBj aGkgbGEgMjAgZ2lvIi4gDQoNCktob25nIGNoaSB2YXksIGRvIGJhbiBiaXUgbmVuIFNWIG5naGkg aG9jIHJhdCBuaGlldS4gTG9wIGN1YSBILiBob24gMjAwIG5ndW9pIG5odW5nIA0KY2hpIGR1IHNp IHNvIHZhbyBuZ2F5IGRhdSBtb24gaG9jLCBuZ2F5IGNodWFuIGJpIGtldCB0aHVjIG1vbiBob2Mg dmEgbmh1bmcgYnVvaSB0aGkuIA0KQ29uIGJpbmggdGh1b25nIGNoaSA1MCAtIDYwIG5ndW9pIGRp IGhvYy4gDQoNClZlIHZpZWMgbmF5LCBtb3QgY2FuIGJvIHRydW9uZyBESCBLaW5oIHRlIFRQLkhD TSBjaG8gYmlldDogIlRydW9uZyBraG9uZyB0aGUgbmFvIA0KZGllbSBkYW5oIG5vaSB2aSBzbyBs dW9uZyBTViBxdWEgZG9uZy4gVHV5IG5oaWVuLCBvIHR1bmcgbW9uIGhvYywgZ2lhbmcgdmllbiBj byBjYWNoIA0KcXVhbiBseSBxdWEgYmFpIGtpZW0gdHJhIGRvdCB4dWF0LCBraWVtIHRyYSBnaXVh IGt5Ii4gDQoNCiJIYWkgaGluaCB0aHVjIGhvYyBuYXkgY28gYmFuIGdpb25nIG5oYXUuIENoaSBr aGFjIG8gY2hvIGhlIFZMVkggZHVvYyBtaWVuIGNhYyBtb24gDQpnaWFvIGR1YyBxdW9jIHBob25n IHZhIHRoZSBkdWMgdGhlIHRoYW8sIGNvbiBoZSBjaGluaCBxdXkgdGhpIGtob25nIiAtIFBHUy1U UyBIb2FuZyBEdWMgVHJ1b25nIHBob25nIFF1YW4gbHkgZGFvIHRhbyB0YWkgY2h1YyB0cnVvbmcg REggS2luaCB0ZSBUUC5IQ00gDQoNCk5nb2FpIGdpbyBob2MgdHJlbiBsb3AsIGNhYyBTViBuYXkg aGF1IG5odSBraG9uZyBjbyB0aG9pIGdpbyBkYXUgdHUgY2hvIGJhaSB2by4gTi5ILkgsIA0KaG9j IG5nYW5oIFF1YW4gdHJpIGtpbmggZG9hbmggKFFUS0QpIHRydW9uZyBESCBNbyBUUC5IQ00gY2hv IGhheSwgZHUga2V0IHRodWMgDQpuYW0gMiBuaHVuZyBILiBjdW5nIG5odSBuaGlldSBTViB0cm9u ZyBsb3AgY2h1YSBtb3QgbGFuIGRhdCBjaGFuIHRvaSB0aHUgdmllbi4gDQpUcm9uZyBraGkgZG8s IE4uSy5MIC0gU1YgbmFtIDMgbmdhbmggVGllbmcgQW5oLCB0cnVvbmcgREggS2hvYSBob2MgeGEg aG9pIHZhIG5oYW4gDQp2YW4gKERIUUcgVFAuSENNKSB0aGFuIHBoaWVuOiAiVHJ1b2Mga2hpIHZh byBob2MsIG1pbmggY28ga2hhIG5hbmcgbm9pIHZhIHZpZXQgDQp0aWVuZyBBbmggdHVvbmcgZG9p IGtoYSwgY29uIGdpbyBoYXUgbmh1IGtob25nIG5naGUsIGtob25nIG5vaSBkdW9jLiBCb2kgY28g bmh1bmcgDQpnaWFvIHRyaW5oIGhvYyBkdW9jIHh1YXQgYmFuIHR1IG5hbSAxOTg2LCBnaWFuZyB2 aWVuIG5oaWV1IG5ndW9pIGxvbiB0dW9pIG5lbiBjYWNoIGRheSANCmtob25nIGhhcCBkYW4gbmd1 b2kgaG9jIj8hDQoNCk5oYW4geGV0IHZlIGNodW9uZyB0cmluaCBkYW8gdGFvIGN1YSBoZSBWTFZI IHNvIHZvaSBoZSBjaGluaCBxdXksIFBHUy1UUyBIb2FuZyANCkR1YyAtIFRydW9uZyBwaG9uZyBR dWFuIGx5IGRhbyB0YW8gdGFpIGNodWMgdHJ1b25nIERIIEtpbmggdGUgVFAuSENNIG5vaTogIkhh aSANCmhpbmggdGh1YyBob2MgbmF5IGNvIGJhbiBnaW9uZyBuaGF1LiBUcm9uZyBkbywgY2h1b25n IHRyaW5oIGRhbyB0YW8sIGdpYW8gYW4gdmEgZ2lhbmcgDQp2aWVuIGRldSBzdSBkdW5nIGNodW5n LiBDaGkga2hhYyBvIGNobyBoZSBWTFZIIGR1b2MgbWllbiBjYWMgbW9uIGdpYW8gZHVjIHF1b2Mg DQpwaG9uZyB2YSB0aGUgZHVjIHRoZSB0aGFvIi4gVHV5IG5oaWVuLCBuZXUgbGFtIG1vdCBzbyBz YW5oIG5obyB2ZSBkYW8gdGFvIG5nb2FpIG5ndSANCmdpdWEgaGFpIGhlIG5heSB0cm9uZyBjdW5n IG1vdCB0cnVvbmcgc2UgdGhheSBjbyBzdSBjaGVuaCBsZWNoIGtoYSBsb24uIFRydW9jIG5hbSAN CjIwMTAsIGNodW9uZyB0cmluaCBob2MgY3VhIGhlIFZMVkggY3VhICB0cnVvbmcgREggS2luaCB0 ZSBUUC5IQ00ga2hvbmcgZGF5IG5nb2FpIA0Kbmd1IG1hIGNoaSB5ZXUgY2F1IFNWIGtoaSB0b3Qg bmdoaWVwIG5vcCBjaHVuZyBjaGkgQSBBbmggdmFuLiBUdSBuYW0gMjAxMCwgdHJ1b25nIA0KeWV1 IGNhdSBTViBwaGFpIHRoaSBkYXUgcmEgQW5oIHZhbiB0dW9uZyBkdW9uZyB0cmluaCBkbyBBIChu Z29haSB0cnUgbmdhbmggTmdvYWkgDQp0aHVvbmcgdHVvbmcgZHVvbmcgdHJpbmggZG8gQikuIFRy b25nIGtoaSBkbywgdm9pIGhlIGNoaW5oIHF1eSwgZGUgZHVvYyB4ZXQgY29uZyBuaGFuIA0KdG90 IG5naGllcCwgU1YgY2FuIGNvIGNodW5nIGNoaSBob2FjIGdpYXkgY2h1bmcgbmhhbiBkaWVtIFRP RUlDIGRhdCB0b2kgdGhpZXUgNTUwIA0KZGllbSAoTmdvYWkgdGh1b25nLCBEdSBsaWNoIHZhIEtp bmggZG9hbmggcXVvYyB0ZSkgdmEgNDUwIGRpZW0gKGNhYyBuZ2FuaCBraGFjKS4gIA0KDQpHaWFu ZyB2aWVuIGhvaSBob3QgDQoNClAuVCAtIFNWIHRoZW8gaGUgVkxWSCB0cnVvbmcgREggTmdhbiBo YW5nIFRQLkhDTSBjaG8gYmlldDogIkxvcCBob2MgY28gMTE5IA0Kbmd1b2ksIGRpIGhvYyB0aHVv bmcgeHV5ZW4ga2hvYW5nIDQwIC0gNTAgbmd1b2kuIFRoaSBjdSwgbmV1IGNobyBkZSBkb25nIHRo aSBjaHUgeWV1IGxhIA0KcXVheSBjb3AsIG5lbiB0aGF5IGNvIGN1bmcgdGh1b25nIGNobyBkZSBt by4gTm9pIGNodW5nIHZlIHRoaSBjdSBraG9uZyBuZ2hpZW0gbmdhdCANCmNobyBsYW0iLiANCg0K DQoiVGhpIGN1IGN1YyBreSBkb24gZ2lhbiwgYmFuIGNvIHRoZSBtYW5nIHRhaSBsaWV1IHZvIHR1 LCBuZXUga2hvbmcgbWFuZyB0YWkgbGlldSB0aGkgY28gDQp0aGUgY2hlcCBiYWkgY3VhIGJhbiBu Z29pIGdhbiwga2hvbmcgdGhpIGdvaSB2ZSBuaGEsIG5ndW9pIG5oYSBsZW4gbWFuZyAic2VhcmNo IiByb2kgZG9jIGNobyBtYSB2aWV0IiAtIEwuVi4gVCAtIFNWIHRoZW8gaG9jIGtob2EgUXVhbiB0 cmkga2luaCBkb2FuaCwgdHJ1b25nIERIIEtpbmggdGUgRGEgTmFuZw0KDQpMb3AgaG9jIHRodW9u ZyBkdSBtb2kgbHVhIHR1b2kgdmEgdGhhbmggcGhhbiBuZW4gdmllYyBuYW0gYmF0IGtpZW4gdGh1 YyByYXQga2hhYyBuaGF1LiANClRyb25nIGtoaSBkbyBnaWFuZyB2aWVuIGN1bmcgbWFuZyB0YW0g bHkgZGF5IGxvcCB0YWkgY2h1Yywga2hvbmcgbmhpZXQgdGluaCBiYW5nIGRheSANCmNoaW5oIHF1 eS4gTi4gLSBTViBsb3AgdGFpIGNodWMgbmdhbmggUVRLRCAoREggVGF5IE5ndXllbiksIG5vaSB0 aGFuZzogIk1vaSBraGkgdGhpIA0KaGV0IG1vbiwgbG9wIHZhbiB0aHVvbmcgY28gcXVhIGd1aSBi aWV1IHRoYXkgY28sIHRoYW0gY2hpIHZvaSBjYWMgZ2lhbmcgdmllbiBraG8gdGluaCwgDQpjb24g cGhhaSBndWkgcGhvbmcgYmkiLiANCg0KTC5WLlQgLSBTViB0aGVvIGhvYyBraG9hIFFUS0QsIHRy dW9uZyBESCBLaW5oIHRlIERhIE5hbmcsIGNobyBoYXk6ICJDYW5nIGhvYyBjYW5nIA0KdGhheSBn aWFuZyB2aWVuIGRhbyB0YW8gcXVhIGhvaSBob3QuIFNvIGdpYW5nIHZpZW4gZGFvIHRhbyBiYWkg YmFuIGNoaSBkZW0gdHJlbiBkYXUgbmdvbiANCnRheS4gQ28gaG9tIG1pbmggZGVuIGdhbiB0cnVv bmcgbW9pIG5oYW4gZHVvYyB0aG9uZyBiYW8gdHUgbG9wIHRydW9uZyBsYSBnaWFuZyB2aWVuIA0K Y2hvIG5naGkuIE1vdCBzbyBiYW4ga2hvbmcgbmhhbiBkdW9jIHRpbiBuaGFuIGRpZW4gdGhvYWkg Y3VhIGxvcCB0cnVvbmcsIGN1IHZheSBjaG8gDQpkZW4gZ2l1YSBidW9pIG1vaSBiaWV0IG5naGki ISAgVC4gYnVjIHh1YyBjaGlhIHNlIHRoZW06ICJUaGkgY3UgY3VjIGt5IGRvbiBnaWFuLCBiYW4g Y28gDQp0aGUgbWFuZyB0YWkgbGlldSB2byB0dSwgbmV1IGtob25nIG1hbmcgdGFpIGxpZXUgdGhp IGNvIHRoZSBjaGVwIGJhaSBjdWEgYmFuIG5nb2kgZ2FuLCANCmhvYWMgZ29pIHZlIG5oYSwgbmd1 b2kgbmhhIGxlbiBtYW5nICJzZWFyY2giIHJvaSBkb2MgY2hvIG1hIHZpZXQiIQ0KDQpOZy5NLkgg LSBTViBraG9hIFRodW9uZyBtYWkgLSBEdSBsaWNoIERIIEtpbmggdGUgRGEgTmFuZyAtIGN1bmcg dGh1YSBuaGFuOiAiQ2hhdCANCmx1b25nIGdpYW8gZHVjIHRhaSBjaHVjIGNodWEgdHVvbmcgeHVu ZyB2b2kgbmh1bmcgZ2kgZW0ga3kgdm9uZywgc28gdm9pIG11YyBob2MgcGhpIA0KcXVhIGNhbyB2 YSB0aG9pIGdpYW4gZW0gcGhhaSBibyByYSBob2MgdGFwLCB0aGkga2llbiB0aHVjIHRodSBsYWkg cXVhIGl0IG9pLiBMb3AgVGh1b25nIA0KbWFpIC0gRHUgbGljaCBjdWEgZW0gbmFtIGRhdSB0aWVu IGRlbiA2MC03MCBTViwgZG8gcXVhIGNoYW4gdHJ1b2Mga2lldSB0aGljaCB0aGkgZGF5LCANCmto b25nIHRoaSBuZ2hpIG5lbiBkZW4gbmFtIDQgY2hpIGNvbiBob24gMzAgU1YiLiAgIA0KDQpMaWVu IGtldCBkYW8gdGFvIHRyYW4gbGFuIA0KDQpIZSBWTFZIIGNoaWVtIGhvbiA0MCUgU1YgdG9hbiBx dW9jIA0KDQpUaGVvIHRob25nIGtlIGN1YSBCbyBHRC1EVCwgbmFtIGhvYyAyMDA2LTIwMDcgY2Eg bnVvYyBjbyAzMTEgdHJ1b25nIERILCBDRCB0aGkgDQoyMDAgdHJ1b25nIGRhbyB0YW8gbG9haSBo aW5oIGtob25nIGNoaW5oIHF1eS4gVHJvbmcgZG8gaGluaCB0aHVjIFZMVkggY2hpZW0ga2hvYW5n IA0KNjAlLiBDYSBudW9jIGNvIDg0My4wMDAgU1YgaGUgVkxWSCwgY2hpZW0ga2hvYW5nIGhvbiA0 MCUgdG9uZyBzbyBTViB0b2FuIHF1b2MuIA0KDQpWdSBUaG8gDQoNClRoZW8ga2V0IHF1YSAga2ll bSB0cmEgY3VhIEJvIEdELURUIG5hbSBob2MgMjAwNy0yMDA4LCBjbyBuaGlldSB0cnVvbmcgREgg ZGEgbGllbiANCmtldCB2b2kgcmF0IG5oaWV1IGRpYSBwaHVvbmcgZGUgZGFvIHRhbyBoZSB0YWkg Y2h1YyBraG9uZyBkYW0gYmFvIGNoYXQgbHVvbmcuIERvIGxpZW4gDQprZXQgdHJhbiBsYW4gbmVu IHF1YSB0cmluaCBkYW8gdGFvIGtob25nIGdhbiB2b2kgbmh1IGNhdSBzdSBkdW5nIG5oYW4gbHVj LiBWaWVjIHRodWMgDQpoaWVuIGxpZW4ga2V0IGRhbyB0YW8gbWFuZyB0aW5oIGxvaSBuaHVhbiBs YSBjaGluaC4gVmkgdmF5IG1vaSBjbyB0aW5oIHRyYW5nIG5odSB0cnVvbmcgDQpDRFNQIEhhaSBE dW9uZyBtbyBsaWVuIGtldCBkYW8gdGFvIG8gY2FjIGRpYSBwaHVvbmcgbmh1IEhhIE5hbSwgSGEg Tm9pLCBUaGFpIA0KTmd1eWVuLCBUaGFuaCBIb2E7IGNvbiBDRFNQIEhhIE5hbSB0aGkgZGkgbW8g Y2FjIGxvcCBsaWVuIGtldCBkYW8gdGFvIHRhaSBIYSBOb2ksIA0KSGFpIER1b25nLCBOZ2hlIEFu LiBUdW9uZyB0dSwgQ0RTUCBUaGFpIE5ndXllbiBkaSBtbyBjYWMgbG9wIGxpZW4ga2V0IGRhbyB0 YW8gdGFpIA0KVGhhbmggSG9hLCBIYSBOb2ksIFF1YW5nIE5pbmguIENvbiBDRFNQIFF1YW5nIE5n YWkgdGhpIG1vIGxpZW4ga2V0IGRhbyB0YW8gdGFpIEhhIA0KTm9pLCBOZ2hlIEFuLCBEYSBOYW5n Li4uIFZpZWMgbGllbiBrZXQgY3UgbG9hbmggcXVhbmggZGFuIGRlbiBjaGF0IGx1b25nIGRhbyB0 YW8gdGhhcC4gDQoNClRhaSBDYW4gVGhvLCB0cnVvbmcgVHJ1bmcgaG9jIEdpYW8gdGhvbmcgdmFu IHRhaSBtaWVuIE5hbSB0aG9pIGdpYW4gcXVhIGRhIGxpZW4ga2V0IA0Kdm9pIG5oaWV1IHRydW9u ZyBESCBkZSBkYW8gdGFvIGtob25nIGNoaW5oIHF1eSBuaGlldSBuZ2FuaCBiYWMgREguIFR1eSBs YSB0cnVvbmcgDQp0cnVuZyBjYXAgbmh1bmcgbGFpIGNvIGRvbiB2aSB0cnVjIHRodW9jICJUcnVu ZyB0YW0gREggdGFpIGNodWMiLiBOZ2F5IDI3LjIuMjAwOSwgUGhvIGdpYW0gZG9jIFNvIEdELURU IENhbiBUaG8gTmd1eWVuIFF1eSBEb24gdHJvbmcgYmFvIGNhbyBndWkgQm8gR0QtRFQgY3VuZyBj byANCnF1YW4gY2h1YyBuYW5nIHRhaSBUUCBDYW4gVGhvIGRhIG5oYW4gbWFuaCByYW5nOiAiRG9p IHZvaSBob2F0IGRvbmcgbGllbiBrZXQgZGFvIHRhbywgDQptb3Qgc28gY28gc28gZ2lhbyBkdWMg dGhpZXUgY2FjIGxvYWkgaG8gc28uIEN1IHRoZSwgdHJ1b25nIFRydW5nIGhvYyBHaWFvIHRob25n IHZhbiB0YWkgDQptaWVuIE5hbSB0aGlldSB2YW4gYmFuIGNoYXAgdGh1YW4gY3VhIGNhcCB0cmVu IHZlIHZpZWMgbW8gMiBsb3AgY2FvIGhvYyIuIFRyYW8gZG9pIHZvaSANClBWIFRoYW5oIE5pZW4g dmFvIHRob2kgZGllbSBkbywgUGhvIGNoYW5oIFRoYW5oIHRyYSBTbyBHRC1EVCBDYW4gVGhvIFRy YW4gTmdvYyANClNhdSBjaG8gYmlldDogIk1vdCB0cnVvbmcgdHJ1bmcgY2FwIG1hIGxpZW4ga2V0 IGRhbyB0YW8gY2EgY2FvIGhvYyB0aGkgcXVhIGxhIGhldCB5IGtpZW4uIFRydW9uZyB0cnVuZyBj YXAgc2FvIGxhaSBjbyBkb24gdmkgYmVuIGR1b2kgbGEgVHJ1bmcgdGFtIERIIHRhaSBjaHVjIj8g ICANCg0KVGluaCBkZW4gdGhhbmcgNC4yMDA4LCB0cnVvbmcgREggQmluaCBEdW9uZyBkYSBsaWVu IGtldCB2b2kgMjAgZG9uIHZpICh0dSBIdW5nIFllbiANCmRlbiBCYWMgTGlldSkgZGUgZGFvIHRh byBESCB0dSB4YSBuZ2FuaCBRVEtELiBOZ2F5IDI1LjUuMjAwOCwgcXVhbiBuaGFuIE5ndXllbiAN CkNvbmcgVGhhbmggdmEgbmh1bmcgU1Yga2hvYSAxLCAyLCAzIHRhaSBDYW4gVGhvLCBTb2MgVHJh bmcgZGEgY28gZG9uIGd1aSBUaGFuaCB0cmEgDQpCbyBHRC1EVCBwaGFuIGFuaCBUcnVuZyB0YW0g ZGFvIHRhbyB0dSB4YSBjdWEgdHJ1b25nIHZlIG5oaWV1IHZhbiBkZSBuaHUgdGhpIDQgbW9uIA0K dHJvbmcgMSBuZ2F5LCB0aHUgaG9jIHBoaSBiYW5nIGJpZW4gbGFpIGJhbiBsZSBraG9uZyBjbyBj b24gZGF1IGN1YSB0cnVvbmcuLi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTA1MS8yMDEwMTIxNDAwMzI0OS5hc3B4IFZ1IFRobyBIYSBBbmggMTQvMTIvMjAx MCAwOjMyIA0KDQpUaHUgdHVvbmc6IERlIHRhaSBjaHVjIGtob25nIHRoYW5oICJ0aHUgcGhhbSIg liBDYW4gbW90IGNodWFuIGRhdSByYSAgDQogIA0KTG9hdCBiYWkgS2hvbmcgZGUgdGFpIGNodWMg dGhhbmggInRodSBwaGFtIiBraG9pIGRhbmcgdHUgbmdheSAxMC4xMiBkYSBjdW5nIGNhcCBjaG8g DQpkb2MgZ2lhIGNhaSBuaGluIHRvYW4gZGllbiB2ZSBoZSBkYW8gdGFvIG5heS4gQ2hhdCBsdW9u ZyB5ZXUga2VtIGxhIGhlIHF1YSB0YXQgeWV1IGtoaSB0dSANCmNhcCBxdWFuIGx5IGRlbiBuZ3Vv aSBkYXksIG5ndW9pIGhvYyBkZXUgcXVhbiBuaWVtIGRheSBraG9uZyBwaGFpIGxhICJjaGluaCBw aGFtIi4gIA0KDQooQW5oOiBOZW4gY28gbW90IGNodWFuIGRhdSByYSBtb2kgZGFtIGJhbyBjaGF0 IGx1b25nLiBBbmg6IFNpbmggdmllbiBoZSB0YWkgY2h1YyANCnRydW9uZyBESCBTYW4ga2hhdSBk aWVuIGFuaCBIYSBOb2kgLSBBbmg6IE5nb2MgVGhhbmcpDQoNClh1IGh1b25nIGN1YSBnaWFvIGR1 YyBuZ2F5IG5heSBsYSBkYW5oIGNobyBtb2kgbmd1b2kgdmEgaG9jIHRhcCBzdW90IGRvaSBuZW4g dmllYyB0b24gDQp0YWkgY2FjIGhpbmggdGh1YyBkYW8gdGFvIGtoYWMgbmhhdSBsYSBkaWV1IHRh dCB5ZXUuIFZhbiBkZSBkYXQgcmEgbGEgZHUgZHVvYyBkYW8gdGFvIHRoZW8gDQpsb2FpIGhpbmgg bmFvIHRoaSBjaGF0IGx1b25nIGRhdSByYSBjYW4gcGhhaSBkdW9jIGtpZW0gc29hdCB0aGVvIGN1 bmcgbW90IGtldCBxdWEsIG1vdCANCmNodWFuIGNodW5nLCBuaHUgY2FjIG51b2MgZGFuZyBsYW0u IFR1eSBraG8ga2hhbiBuaHVuZyBCbyBHRC1EVCB2YSBjYWMgdHJ1b25nIGJhdCANCmJ1b2MgcGhh aSB0aGF5IGRvaSBtb2kgbW9uZyB4YSBob2kga2hvbmcgY29uIGRpbmgga2llbiB2b2kgdGFpIGNo dWMuIERpZXUgbmF5IGN1bmcgc2UgDQpraGllbiBjYWMgbmhhIHR1eWVuIGR1bmcgdHUgYm8gdHUg ZHV5IHhlbSB0cm9uZyBiYW5nIGNhcC4gDQoNClRoZW8gdGllbiBzaSBOZ3V5ZW4gSG9pIE5naGlh IC0gVHJ1b25nIGJhbiBEYW8gdGFvIERIIHZhIHNhdSBESCwgREggUXVvYyBnaWEgDQpUUC5IQ00g LSBkZSBuYW5nIGNhbyBjaGF0IGx1b25nIGhlIHRhaSBjaHVjLCBjYW4gcGhhaSBzaWV0IGNoYXQg Y2hhdCBsdW9uZyB0b2FuIGRpZW4sIG8gDQp0YXQgY2EgY2FjIGtoYXUsIGNhYyBnaWFpIGRvYW4g Y3VhIHF1YSB0cmluaCBkYW8gdGFvLCB0dSBkYXUgdmFvLCBxdWEgdHJpbmggaG9jIHRhcCwgZGF1 IHJhLiANCg0KIlRydW9jIG1hdCBjYWMgdHJ1b25nIGNhbiBhcCBkdW5nIGNodW9uZyB0cmluaCBk YW8gdGFvLCBjaHVhbiBkYXUgcmEgY2h1bmcgY2hvIGNhIGhlIA0KY2hpbmggcXV5IHZhIHRhaSBj aHVjLi4uIFZlIGxhdSBkYWksIGNhbiBjYWkgdGllbiBkYW4gaGUgdGFpIGNodWMsIHRoYW0gY2hp IG5lbiBraWVtIGRpbmggDQpjYWMgY2h1b25nIHRyaW5oIHRhaSBjaHVjIiAtIFRpZW4gc2kgTmd1 eWVuIEhvaSBOZ2hpYSBUcnVvbmcgYmFuIERhbyB0YW8gREggdmEgc2F1IERIIChESCBRdW9jIGdp YSBUUC5IQ00pIA0KDQpPbmcgTmdoaWEgdGh1YSBuaGFuOiAiRGlldSBuYXkgY28gdmUgYmF0IGto YSB0aGkgdm9pIHRpbmggaGluaCBoaWVuIG5heSwgdmkgc2UgY28gbHkgbHVhbiANCmtob25nIHR1 eWVuIGR1b2Mgbmd1b2kgaG9jLCBzYW5nIGxvYyBoZXQsIHJhdCBpdCBuZ3VvaSByYSB0cnVvbmcs IGNhYyBkaWV1IGtpZW4gZGFtIGJhbyANCmRlIGR1eSB0cmkgbG9wIGhvYyBub2kgcmllbmcgdmEg aGUgdGFpIGNodWMgIG5vaSBjaHVuZyBzZSBraG9uZyBjb24iLg0KDQoiTmh1bmcga2hvbmcgY28g Z2kgZGUgZGFpIG1hIGRlbSBsYWkgY2hhdCBsdW9uZyB0b3QgZHVvYy4gVHJ1b2MgbWF0IGNhYyB0 cnVvbmcgY2FuIGFwIA0KZHVuZyBjaHVvbmcgdHJpbmggZGFvIHRhbywgY2h1YW4gZGF1IHJhIGNo dW5nIGNobyBjYSBoZSBjaGluaCBxdXkgdmEgdGFpIGNodWMuIFR1IGRvIA0KbW9pIGNvIHRoZSB0 aW5oIGRlbiB2aWVjIGFwIGR1bmcgY2h1bmcgbWF1IHZhbiBiYW5nIGNodW5nIGNoaS4gVmUgbGF1 IGRhaSwgY2FuIGNhaSB0aWVuIA0KZGFuIGhlIHRhaSBjaHVjLCB0aGFtIGNoaSBuZW4ga2llbSBk aW5oIGNhYyBjaHVvbmcgdHJpbmggdGFpIGNodWMiLCBvbmcgTmdoaWEga2llbiBuZ2hpLiANCg0K VG8gY2h1YyBsYWkgY2h1IGtob25nIHBoYWkgeG9hIGRpIA0KDQoiTXVjIHRpZXUgY3VhIGhlIHRh aSBjaHVjIGxhIHBodWMgdnUgY2hvIG5odW5nIG5ndW9pIGRhbmcgZGkgbGFtIG11b24gbmFuZyBj YW8gdHJpbmggDQpkbyBuZ2hlIG5naGllcCwgaGF5IG11b24gZG9pIG5naGUgbW9pIGNobyBwaHUg aG9wIGhvbi4uLiBDbyBtb3QgdGh1YyB0ZSBraG9uZyB0aGUgDQpwaHUgbmhhbiBsYSB4YSBob2kg ZGEgbWF0IG5pZW0gdGluIHZhbyBjaGF0IGx1b25nIGRhbyB0YW8gY3VhIGNhYyBoZSBraG9uZyBj aGluaCBxdXkuIA0KVmFuIGRlIGNhbiBkdW9jIGhpZXUgcm8gdmEgbmhhbiB0aHVjIGR1bmcgZG8g bGEgbW9pIGxvYWkgaGluaCBkYW8gdGFvIGRldSBjbyBkYWMgZGllbSwgDQpuaHUgY2F1LCBtdWMg dGlldSwgbm9pIGR1bmcuLi4ga2hhYyBuaGF1LiBEbyBkbywgbmVuIHF1YW4gdGFtIHRvIGNodWMg bGFpIGhlIGRhbyB0YW8gbmF5IA0KY2hvIHRvdCBob24gY2h1IGtob25nIHBoYWkgbGEgeG9hIGRp IGhheSBydW9uZyBibyBuby4iIC0gVGguUyBUcmFuIERpbmggTHkgKFRydW9uZyBwaG9uZyANCkNv bmcgdGFjIHNpbmggdmllbiwgR2lhbSBkb2MgVHJ1bmcgdGFtIEhvIHRybyBzaW5oIHZpZW4gdmEg cXVhbiBoZSBkb2FuaCBuZ2hpZXApIA0KDQpDaG8gZGVuIG5heSwgREggQmFjaCBraG9hIChESFFH IFRQLkhDTSkgbGEgbW90IHRyb25nIHNvIGl0IGNhYyB0cnVvbmcgYXAgZHVuZyANCmNodW5nIGNo dW9uZyB0cmluaCBkYW8gdGFvIGNobyBjYSBoZSBjaGluaCBxdXkgdmEgdGFpIGNodWMuIE9uZyBO Z3V5ZW4gVGhhbmggTmFtIJYgDQpUcnVvbmcgcGhvbmcgRGFvIHRhbyBuaGEgdHJ1b25nIC0gY2hv IGJpZXQ6ICJUcnUgZG9pIHR1b25nIG5ndW9pIGhvYyB2YSB0aG9pIGdpYW4gDQpnaWFuZyBkYXkg a2hhYyBuaGF1LCBjb24gbGFpIGNodW9uZyB0cmluaCwgZ2lhbyBhbiB2YSBnaWFuZyB2aWVuIGRl dSBnaW9uZyBuaGF1IGdpdWEgaGFpIA0KaGUuIEtoaSBjaHVvbmcgdHJpbmggZGFvIHRhbyBjdWEg aGUgY2hpbmggcXV5IHRoYXkgZG9pIHRoaSBvIGhlIHRhaSBjaHVjIGN1bmcgdGhheSBkb2kgDQp0 aGVvLiBUdXlldCBkb2kga2hvbmcgY28gdmllYyBjYXQgbmdhbiBjaHVvbmcgdHJpbmggY3VhIGhl IHRhaSBjaHVjIHNvIHZvaSBjaGluaCBxdXkiLiANCg0KVHV5IG5oaWVuLCB2YW4gY2h1YSBjbyB0 cnVvbmcgbmFvIGtoYWMgYXAgZHVuZyBtb3QgY2h1YW4gZGF1IHJhIGNodW5nIGNobyBjYSBoYWkg aGUgbmF5LiANCg0KVGllbiBzaSBOZ3V5ZW4gS2ltIER1bmcgLSBWaWVuIE5naGllbiBjdXUgZ2lh byBkdWMgKHRydW9uZyBESCBTdSBwaGFtIFRQLkhDTSkgliANCmN1bmcgY2hvIHJhbmc6ICJDaHVu ZyB0YSBuZW4gdGh1YyBoaWVuIG5odSBvIGNhYyBudW9jIGNvIG5lbiBnaWFvIGR1YyBwaGF0IHRy aWVuOiBUYXQgY2EgDQpjYWMgY2h1b25nIHRyaW5oIGRhbyB0YW8gZGV1IGNvIGNhYyB5ZXUgY2F1 IG5odSBuaGF1IHR1IGRhdSB2YW8gY2hvIGRlbiBjaHVhbiBkYXUgcmEsIA0KY2hpIGNvIHF1YSB0 cmluaCBkYW8gdGFvIGhheSBwaHVvbmcgdGh1YyBkYW8gdGFvIGxhIGtoYWMgbmhhdSBkbyBkYWMg dGh1IGN1YSBuaHVuZyANCm5ndW9pIGRpIGxhbSBjaGkgY28gdGhlIGhvYyB2YW8gY2FjIGJ1b2kg dG9pLCBob2MgdHUgeGEsIHRyZW4gbWFuZyAgaGF5IGhvYyB0YXAgdHJ1bmcgdGhlbyANCm1vdCB0 aG9pIGdpYW4gY28gZGluaCBuYW8gZG8iLiBCYSBEdW5nIGx5IGdpYWk6ICJIaWVuIG5heSBxdXkg ZGluaCB2ZSBraWVtIGRpbmggY2hhdCANCmx1b25nIGN1YSBCbyBHRC1EVCBjdW5nIGRhIHlldSBj YXUgY2FjIHRydW9uZyBESCB2YSBDRCBwaGFpIGRhbSBiYW8gY2hhdCBsdW9uZyANCmNobyB0YXQg Y2EgY2FjIGNodW9uZyB0cmluaCB2YSBoZSBkYW8gdGFvLiBOaHUgdmF5LCBuZ3VvaSBob2Mgc2F1 IGtoaSByYSB0cnVvbmcgY2hpIGNvIA0KbW90IGJhbmcgY2FwIG1hIHRob2ksIGtob25nIGNvIHN1 IHBoYW4gYmlldCBuaHUgaGllbiBuYXkuIERpZXUgbmF5IGN1bmcgZG9uZyBuZ2hpYSANCnZvaSB2 aWVjIGNhYyB0cnVvbmcgcGhhaSBkYW0gYmFvIG1hdCBiYW5nIGNoYXQgbHVvbmcgY2hvIHRhdCBj YSBuaHVuZyBuZ3VvaSB0b3QgbmdoaWVwLiANClRhdCBuaGllbiwgc3Uga2hhYyBiaWV0IHZlIGNo YXQgbHVvbmcgbHVjIGRvIHNlIGxhIGRpZW0gcGhhbiBsb2FpIGhvYWMgdXkgdGluIGN1YSB0dW5n IHRydW9uZyIuIA0KDQpEb25nIHF1YW4gZGllbSwgUEdTLVRTIEhvYW5nIER1YyAtIFRydW9uZyBw aG9uZyBRdWFuIGx5IGRhbyB0YW8gdGFpIGNodWMgdHJ1b25nIA0KREggS2luaCB0ZSBUUC5IQ00g LSBjaG8gcmFuZzogIlZpZWMgZHV5IHRyaSBoaW5oIHRodWMgZGFvIHRhbyBuYXkgbGEgY2FuIHRo aWV0LCBib2kgbm8gDQpkYXAgdW5nIGR1b2Mgbmh1IGNhdSBob2MgdGFwIGN1YSByYXQgbmhpZXUg bmd1b2kgdGhlbyBxdWFuIG5pZW0gaG9jIHRhcCBzdW90IGRvaS4gVmFuIA0KZGUgY2FuIGJhbiBk ZW4gbGEgcGhhaSBsYW0gc2FvIGRhbSBiYW8gZHVvYyBjaGF0IGx1b25nIGRhbyB0YW8uIE5lbiBj aGFuZyBjYW4gY28gbW90IA0KY2h1YW4gZGF1IHJhIGNodW5nLCBtb3QgdmFuIGJhbmcgY2h1bmcg Y2hvIGNhIGhhaSBoZSBjaGluaCBxdXkgdmEgaGUgdnVhIGhvYyB2dWEgbGFtIi4NCg0KVGhheSBk b2kgY28gY2hlIHR1eWVuIGR1bmcgDQoNCkNhY2ggZGF5IDMgbmFtLCBHUyBOZ3V5ZW4gRGluaCBD b25nIC0gbmd1eWVuIENodSBuaGllbSBraG9hIFhheSBkdW5nLCB0cnVvbmcgDQpESCBYYXkgZHVu ZyBkYSB2aWV0IHRodSBndWkgQm8gdHJ1b25nIEJvIEdELURUIE5ndXllbiBUaGllbiBOaGFuIGx1 YyBiYXkgZ2lvIGRlIGNhbmggDQpiYW8gdmUgdGh1YyB0cmFuZyAicXVhIGRlbiB0b2kiIGN1YSBE SCBoZSB0YWkgY2h1Yy4gDQoNCk5lbiBuaGluIG5ndW9pIGhvbiBuaGluIGJhbmcgDQoNCiJTZSBs YSB2byBkb2FuIG5ldSBjaG8gcmFuZyBjaGkgc2luaCB2aWVuIGNoaW5oIHF1eSBtb2kgY28gY2hh dCBsdW9uZy4gVGh1YyB0ZSBjaG8gdGhheSANCm1vdCBibyBwaGFuIHNpbmggdmllbiBjaGluaCBx dXkgZGVuIGdpYW5nIGR1b25nIGRlLi4uIG5ndSwgaG9jIGhhbmggbG8gbW8sIG5vIGRpZW0gYm8g DQptb24sIGhvYyBwaGFuIG5odSBjaHVhIGNob20uIE5odW5nIHJvaSBzbyBzaW5oIHZpZW4gbmF5 IHZhbiB0b3QgbmdoaWVwLCByYSBkb2kgdm9pIHRhbSANCmJhbmcgY2hpbmggcXV5ICJkYW5oIGdp YSIuIE5oYSB0dXllbiBkdW5nIGtob25nIG5lbiBkdWEgaGFuIHZhbyBiYW5nIGNhcCBtYSBuZW4g DQoibmhpbiBuZ3VvaSIgdHJvbmcga2hhdSBwaG9uZyB2YW4sIHRodSB2aWVjIGRlIGNvIHN1IHNh bmcgbG9jLCBkYW5oIGdpYSBraGFjaCBxdWFuIHZhIA0KZHVhIHJhIG5odW5nIHF1eWV0IGRpbmgg ZHVuZyBkYW4uIiAtIFRyYW4gQ2FvIER1eWVuIA0KDQpPbmcgbm9pOiAiVHJvbmcgdGh1LCB0b2kg dmlldCB2aWVjIGRhbyB0YW8gdGFpIGNodWMgZGEgYmkgbGFtIGR1bmcsIG1vIHJvbmcgcXVhIG11 YyBzbyANCnZvaSBkaWV1IGtpZW4gdmEga2hhIG5hbmcgY3VhIG5ndW9pIGhvYywgbmd1b2kgZGF5 IHZhIGNvIHF1YW4gcXVhbiBseSwgbGFtIGNobyBjaGF0IA0KbHVvbmcgdHV0IGRvYyB0aGUgdGhh bSIuIFR1eSBuaGllbiwgb25nIG5nYW0gbmd1aTogIlNhdSBraGkgdGh1IGR1b2MgZ3VpIGRpIHRo aSB0b2kgY2hpIA0KbmhhbiBkdW9jIG5oaWV1IHkga2llbiB1bmcgaG8gdHUgcGhpYSB4YSBob2kg Y29uIEJvIEdELURUIGNoaSBob2kgYW0gbGEgZGEgbmhhbiBkdW9jIA0KdGh1LiBTYXUgZG8sIHRv aSBkdW9jIGJpZXQgbGEgQm8gR0QtRFQgY3VuZyBkYSB0byBjaHVjIGNhYyBjdW9jIGJhbiB0aGFv IGRlIGtoYWMgcGh1YyANCm5odW5nIGJhdCBjYXAuIFR1eSBuaGllbiwgbmh1bmcgZ2lhaSBwaGFw IG1hIEJvIGR1YSByYSBjaGkgbGEgaGluaCB0aHVjIG5lbiB0aHVjIHRyYW5nIA0KY3VhIGRhbyB0 YW8gdGFpIGNodWMgdmFuIGtob25nIHRoYXkgZG9pLCB0aGFtIGNoaSB0aGVvIGRhbmggZ2lhIGN1 YSB0b2kgbm8gY29uIHRlIGhhaSBob24gDQp0cnVvYyBkYXkuIENvIHJhdCBuaGlldSBuZ3V5ZW4g bmhhbiB0cm9uZyBkbyBjbyBzdSB2byB0cmFjaCBuaGllbSB0cm9uZyBjYWMgY29uZyBkb2FuIA0K dGhpIGN1LCBraWVtIHRyYSwgZGFuaCBnaWEiLiANCg0KS2hpIGRhdCB2YW4gZGUgbGFtIHRoZSBu YW8gZGUgbmFuZyBjYW8gY2hhdCBsdW9uZyBkYW8gdGFvIHRhaSBjaHVjLCBvbmcgcXVhIHF1eWV0 OiANCiJUdXllbiBzaW5oLCBxdWFuIGx5LCBkYXksIGhvYyB2YSBkYW5oIGdpYSBkZXUgY28gc28g aG8uIFZpIHZheSwgbXVvbiBkYW0gYmFvIGNoYXQgDQpsdW9uZyB0aGkgY2FuIHBoYWkgcmEgc29h dCBsYWkgdGF0IGNhIGNhYyBraGF1IG5heS4gRGFjIGJpZXQgbGEgdmUgdHV5ZW4gc2luaCB2YSBj aHVvbmcgDQp0cmluaCBkYW8gdGFvLiBNdW9uIGRheSBoaWV1IHF1YSB0aGkgY2h1b25nIHRyaW5o IHBoYWkgcGh1IGhvcCB2b2kgdHJpbmggZG8gY3VhIG5ndW9pIA0KaG9jLiBDaHVvbmcgdHJpbmgg dmEgbm9pIGR1bmcgZGFvIHRhbyBoZSB0YWkgY2h1YyBraG9uZyB0aGUgZGFuIHRyYWkgcXVhIG5o aWV1IG1vbiBuaHUgDQpoZSBjaGluaCBxdXkgaGllbiBuYXkuIA0KDQpDbyBjYXUga2llbiB0aHVj IGNhbiB0YXAgdHJ1bmcgZGUgbmFuZyBjYW8ga2llbiB0aHVjIG5naGUgbmdoaWVwIi4gTmdvYWkg cmEsIG9uZyBjb24gDQpraGFuZyBkaW5oOiAiTW90IGdpYWkgcGhhcCBraGFjIGNvIHRoZSBnaWFp IHF1eWV0IGR1b2MgdGFuIGdvYyBjdWEgdmFuIGRlIGxhIHBoYWkgdGhheSANCmRvaSBjbyBjaGUg dHV5ZW4gZHVuZywgZHVuZyBkdWEgdmFvIHRhbSBiYW5nLiBEYXkga2hvbmcgY2hpIGxhIHZhbiBk ZSBjdWEgcmllbmcgbmdhbmggDQpnaWFvIGR1YywgbWEgbm8gY29uIGR1bmcgdG9pIG1vdCBsb2F0 IGNoaW5oIHNhY2ggY3VhIG5oYSBudW9jLiBDaGluaCBzYWNoIGN1YSBuaGEgbnVvYyANCnRyb25n IHZpZWMgdGh1IG5oYW4sIGRlIGJhdCBjYW4gYm8sIGxlbiBsdW9uZywgZGV1IGR1YSB2YW8gdGFt IGJhbmcgbmVuIG5ndW9pIHRhIHBoYWkgZGkgDQoiY2hheSIuIFZhbiBkZSBuYXksIG5ldSBjaGkg cmllbmcgbWluaCBuZ2FuaCBnaWFvIGR1YyB0aGkga2hvbmcgZ2lhaSBxdXlldCBkdW9jLiBWaWVj IA0KdGhpIHR1eWVuIGNvbmcgY2h1YyB2YW8gY2FjIGNvIHF1YW4gbmhhIG51b2MgcGhhaSBtaW5o IGJhY2gsIGNvbmcga2hhaSwgdmEgdGh1YyBzdSBjbyANCmNvIGNoZSBsYSBjaG9uIG5ndW9pIHRh aSwgdGhpIHZpZWMgZGFvIHRhbyBtb2kgdGh1YyBjaGF0LiBEdW5nIHR1eWVuIGNob24gY2hpIGR1 YSB2YW8gdGFtIGJhbmciLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDM3LzIwMTAwOTA2MjMwNjE0LmFzcHggRGFuZyBOZ3V5ZW4gLSBUaGllbiBMb25nIDA2 LzA5LzIwMTAgMjM6MDYgDQoNClRodSB0dW9uZzogSG9jIHBoaSB0YW5nLCBjaGF0IGx1b25nIGNo dWEgdGFuZyAtIFRoaWV1IGh1dCB0cmFtIHRyb25nIGdpYW5nIHZpZW4gDQoNCkJhaSB0b2FuIHZl IGhvYyBwaGkgKEhQKSB2YSBjaGF0IGx1b25nIGNhbmcgdGhhbmcgbmhhdCBraGkgeGV0IGRlbiB5 ZXUgdG8gbmhhbiBsdWMuIEx1YyANCmx1b25nIGdpYW5nIHZpZW4gYmFjIERILUNEIGNodWEgZHUg bWFuaCBraGllbiBsbyB0cmluaCBIUCBkaSBjdW5nIGNoYXQgbHVvbmcga2hvbmcgDQpiaWV0IGJh byBnaW8gbW9pIHNvbSBzb25nIGhhbmguIA0KDQo2NCBzaW5oIHZpZW4vZ2lhbmcgdmllbiANCg0K VGhlbyBiYW8gY2FvIGN1YSBVeSBiYW4gVGh1b25nIHZ1IChVQlRWKSBRdW9jIGhvaSB0cm9uZyBj aHV5ZW4ga2hhbyBzYXQgZGF1IG5hbSANCjIwMTAgdGFpIGNhYyB0cnVvbmcgREgsIHR1IG5hbSAx OTg3IGRlbiAyMDA5IHNvIHNpbmggdmllbiAoU1YpIHRyZW4gY2EgbnVvYyB0YW5nIDEzIA0KbGFu IG5odW5nIHNvIGdpYW5nIHZpZW4gKEdWKSBjaGkgdGFuZyAzIGxhbiwgZG8gZG8gdHkgbGUgU1Yv R1YgcXVhIGNhbyBzbyB2b2kgcXV5IGRpbmguIA0KQm8gR0QtRFQgcXV5IGRpbmggMjggU1YvR1Yg bmh1bmcgbyBuaGlldSB0cnVvbmcsIHR5IGxlIG5heSBsZW4gdG9pIDQwLCB0aGFtIGNoaSBjbyAN CnRydW9uZyBkZW4gdHJlbiA2MC4gDQoNClRyb25nIG1vdCBsYW4gdmUgdGhhbSB0cnVvbmcgREgg Q29uZyBuZ2hpZXAgVFAuSENNLCBQaG8gdGh1IHR1b25nIE5ndXllbiBUaGllbiANCk5oYW4gZGF0 IHZhbiBkZTogIkxhbSBzYW8gZGUgZGFtIGJhbyBjaGF0IGx1b25nIGRhbyB0YW8ga2hpIGRvaSBu Z3UgR1YgcXVhIG1vbmcgc28gDQp2b2kgc28gbHVvbmcgU1Y/IERlIHBoYXQgdHJpZW4gZG9pIG5n dSBHViB0aGkgcmF0IGtobywgbmh1bmcgZGUgcGhhdCB0cmllbiBzbyBsdW9uZyBTViANCnRoaSBk ZSIuIFBobyB0aHUgdHVvbmcgY29uIGJhbiBraG9hbiB2ZSB0eSBsZSBTVi9HViBjdWEgdHJ1b25n LCB0aW5oIHRydW5nIGJpbmggbW9pIEdWIA0Ka2VtIGdhbiA0OCBTVi4gVGhvaSBkaWVtIGRvLCB0 cnVvbmcgREggQ29uZyBuZ2hpZXAgVFAuSENNIGNvIGhvbiA1Mi4wMDAgU1YgY2FjIA0KaGUgdm9p IDEuNTAwIGNhbiBibyB2aWVuIGNodWMsIHRyb25nIGRvIEdWIGNvIGh1dSBjbyAxLjA4NSBuZ3Vv aS4gQ28gMTIgR1YgbGEgIEdTLCANClBHUywgMTEwIEdWIGxhICBUUyB2YSBuZ2hpZW4gY3V1IHNp bmggKE5DUykuIEhpZW4gbmF5IHRydW9uZyBjbyB0cmVuIDgwLjAwMCBTViB0aGVvIA0KaG9jIGNh YyBiYWMgZGFvIHRhbyB2b2kgMTUgR1MsIFBHUywgMTEwIFRTIHZhIE5DUzsgODAwIHRoYWMgc2kg dmEgaG9jIHZpZW4gY2FvIGhvYy4gDQpOaHUgdmF5LCBzYXUgMyBuYW0sIHNvIFNWIGRhIHRhbmcg dm90IGxlbiAyOC4wMDAgbmd1b2kgbmh1bmcgdHJ1b25nIGNoaSB0aGVtIGR1b2MgMyANCkdWIGNv IGhvYyBoYW0gR1MsIFBHUywgZ2l1IG5ndXllbiBzbyBsdW9uZyBHViBjbyB0cmluaCBkbyBUUyB2 YSBOQ1MuIFRyb25nIGtoaSBkbywgDQpIUCBjdWEgREggQ29uZyBuZ2hpZXAgVFAuSENNIGRhIHRh bmcgdHUgbXVjIHRydW5nIGJpbmggMjUwLjAwMGQvdGhhbmcgKG5hbSAyMDA3KSANCmxlbiA0MDAu MDAwZC90aGFuZyAobmFtIDIwMDkpLCBsdW9uIGNhbyBob24gbXVjIHF1eSBkaW5oIGtob2FuZyAy NSAtIDMwJS4gDQoNClkga2llbjoNCg0KQ2FuIGNvbmcga2hhaSB2b2kgU1YNCiogIlRhbmcgSFAg dGhpIHBoYWkgeGV0IGRlbiBuaGlldSBtYXQsIHZhIHF1YW4gdHJvbmcgbGEgdHVpIGVtIGNvIGRp ZXUga2llbiBob2MgdG90IGhvbiANCmhheSBraG9uZy4gU2FwIHRvaSwgU1YgbmdhbmggWSBEdW9j IHBoYWkgZG9uZyBtdWMgdHJhbiBob2MgcGhpIGNhbyBuaGF0LiBTbyBsdW9uZyANClNWIGxpZW4g dHVjIHRhbmcsIHR1aSBlbSB0aHVjIHRhcCB0YWkgY2FjIGJlbmggdmllbiB0cm9uZyB0aW5oIHRy YW5nIHF1YSB0YWkga2VvIGRhaSBtYXkgDQpuYW0gbmF5IGtob25nIHRoYXkgZG9pLiBOZXUgdGFu ZyBIUCwgbmhhIHRydW9uZyBjdW5nIHBoYWkgdGhheSBkb2kgbW90IHNvIHF1eWVuIGxvaSANCnV1 IHRpZW4gY2hvIFNWIi4gTmd1eWVuIFRoaSBNeSBMb2FuIChTViBuYW0gMyBraG9hIFkgZGEga2hv YSwgREggWSBEdW9jICBUUC5IQ00pIA0KDQoqICJLaGkgdGFuZyBIUCwgY2FpIG1hIGNodW5nIGVt IGNhbiBsYSB0cnVvbmcgY29uZyBraGFpIGNoaSBwaGkgaG9wIGx5LCBjb25nIGJvIGNoaWVuIA0K bHVvYyBwaGF0IHRyaWVuLCBuaGF0IGxhIGNoYXQgbHVvbmcgZ2lhbmcgZGF5LiBIaWVuIHRhaSwg bmhpZXUga2hpIGVtIHZhIGNhYyBiYW4gdmFuIGNodWEgDQpoYWkgbG9uZyB2ZSBHVi4gS2hpIEdW IGdpYW5nLCByYXQgbmhpZXUgU1Yga2hvbmcgaGlldSBkdW9jIi4gTmd1eWVuIFRoaSBPYW5oIChT ViANCm5hbSB0aHUgMyBraG9hIFZhbiBob2MgdmEgTmdvbiBuZ3UsIHRydW9uZyBESCBLaG9hIGhv YyB4YSBob2kgdmEgTmhhbiB2YW4gLSBESCANClF1b2MgZ2lhIFRQLkhDTSkgDQoNCk5oaWV1IHRy dW9uZyBESCBraGFjIGN1bmcgdHJvbmcgdGluaCB0cmFuZyB0dW9uZyB0dS4gVGhlbyBiYW8gY2Fv IGN1YSB0cnVvbmcgREggU2FpIA0KR29uIHZvaSBkb2FuIGtpZW0gdHJhIGN1YSBVQlRWIFF1b2Mg aG9pIHZhbyB0aGFuZyAxLjIwMTAsIHRydW9uZyBjbyBraG9hbmcgMjIuMDAwIA0KU1Ygdm9pIDM3 MSBHVi4gVHV5IG5oaWVuLCB0aGVvIGJhbyBjYW8gIkJhIGNvbmcga2hhaSIgKERpZXUga2llbiBk YW8gdGFvLCBxdXkgbW8gZGFvIA0KdGFvOyBOZ3VvbiBsdWMgKHNvIGx1b25nLCB0cmluaCBkbyBn aWFvIHZpZW4pOyBUYWkgY2hpbmggdGh1IC0gY2hpKSB0cmVuIHdlYnNpdGUgY3VhIA0KdHJ1b25n LCBzbyBsdW9uZyBHViBjaGkgY28gIDM0MyBuZ3VvaSAoY2h1YSBrZSAxNDEgR1YgdGhpbmggZ2lh bmcpLCBuaHUgdmF5LCB0eSBsZSANClNWL0dWIGxhICA2NC8xLiANCg0KVHJ1b25nIERIIFRyYSBW aW5oIHRyb25nICJCYSBjb25nIGtoYWkiIGJhbyBjYW8gY28gNiBUUywgOTMgdGhhYyBzaSBsYSBH ViBjbyBodXUuIA0KRGVuIGtoaSBVQlRWIFF1b2MgaG9pIGtpZW0gdHJhLCBjaGkgY28gMSBUUyB2 YSA1MyB0aGFjIHNpIC4gDQoNClRoaWV1IGdpYW5nIHZpZW4gY2hhdCBsdW9uZyBjYW8NCg0KVHJ1 b2MgdGh1YyB0cmFuZyB0aGlldSBodXQgZG9pIG5ndSBHViwgY2FjIHRydW9uZyBESCBwaGFpIGxp ZW4gdHVjIHR1eWVuIG5ndW9pLiBUdSBuYW0gDQoyMDA3IGRlbiBuYXksIHRydW9uZyBESCBMdWF0 IFRQLkhDTSBsdW9uIHRob25nIGJhbyB0dXllbiBkdW5nIEdWLiBHYW4gY3VvaSBuYW0gDQoyMDA5 LCB0cnVvbmcgdGhvbmcgYmFvIHR1eWVuIGRlbiA0NSBHViBkYXkgY2FjIG1vbiBjaHV5ZW4gbmdh bmguIE5nb2FpIGNhYyB1bmcgdmllbiANCmNvIGhvYyB2aSBUUywgdGhhYyBzaSBkdW9jIHV1IHRp ZW4geGV0IHR1eWVuLCBjYWMgU1YgY3VhIHRydW9uZyBjaHVhIGR1b2MgY2FwIGJhbmcgdG90IA0K bmdoaWVwLCBjbyB0aGUgbm9wIGdpYXkgY2h1bmcgbmhhbiB0b3QgbmdoaWVwIHRhbSB0aG9pIGRl IHRoaSB0dXllbiBHVi4NCg0KTmh1bmcgdHJ1b25nIGNvIG1vIGNhYyBuZ2FuaCBtb2kgY2FuZyBw aGFpIGxpZW4gdHVjIHR1eWVuIEdWIGRlIGRhcCB1bmcgbmh1IGNhdSANCmdpYW5nIGRheS4gRG9u IGN1IG5odSB0aGFuZyA2IHZ1YSBxdWEsIGJvIG1vbiBEaWEgbHkga2luaCB0ZSB2YSBQaGF0IHRy aWVuIHZ1bmcsIGtob2EgDQpEaWEgbHksIHRydW9uZyBESCBLaG9hIGhvYyB4YSBob2kgdmEgTmhh biB2YW4gKERIIFF1b2MgZ2lhIFRQLkhDTSkgZGEgY28gdGhvbmcgDQpiYW8gdHV5ZW4gR1YuIA0K DQpUaHVjIHRyYW5nIG5heSBjb24gbmdoaWVtIHRyb25nIGhvbiBvIGNhYyB0cnVvbmcgREggdnVu Zy4gQ2FjIHRydW9uZyBuaHUgREggVGllbiANCkdpYW5nLCBBbiBHaWFuZyBsaWVuIHR1YyBkYW5n IHR1eWVuIGR1bmcgR1YgY3VhIHJhdCBuaGlldSBuZ2FuaC4gDQoNCk5nYXkgY2EgdHJ1b25nIGxv biB2YSBjbyBkb2kgbmd1IEdWIHRyaW5oIGRvIGNhbyBuaHUgREggS2hvYSBob2MgdHUgbmhpZW4g KERIIFF1b2MgDQpnaWEgVFAuSENNKSBjdW5nIHBoYWkgdGh1b25nIHh1eWVuIHRpbSB0aGVtIEdW LiBQR1MtVFMgRHVvbmcgQW5oIER1YywgUGhvIGhpZXUgDQp0cnVvbmcgdHJ1b25nLCBjaG8gYmll dDogIlRpbmggdGhlbyB0aWV1IGNoaSBjdWEgQm8gR0QtRFQgdmUgdHkgbGUgU1YvR1YgdGhpIHRy dW9uZyANCmRhcCB1bmcgeWV1IGNhdSBuaHVuZyB2YW4gcGhhaSB0dXllbiBsaWVuIHR1YyBkZSB0 aHUgaHV0IHRoZW0gbmhhbiBsdWMgY2hhdCBsdW9uZyBjYW8uIA0KSGllbiBzbyBsdW9uZyBHViBj dWEgdHJ1b25nIGtob25nIHRoaWV1IG5oaWV1IG5odW5nIGNoYXQgbHVvbmcgdmFuIGNodWEgZGF0 IHRhbSBjdWEgDQptb3QgdHJ1b25nIGNvIHRoZSBjYW5oIHRyYW5oIHZvaSB0aGUgZ2lvaSIuIE9u ZyBEdWMgZ2lhaSB0aGljaCB0aGVtIHZlIGNoYXQgbHVvbmcgDQpkb2kgbmd1IEdWOiAiTyBuaGll dSB0cnVvbmcsIHNvIGx1b25nIEdWIGRhIHRhbmcgaG9uIHJhdCBuaGlldSBzbyB2b2kgMTAgbmFt IHRydW9jIA0Kbmh1bmcgY2hhdCBsdW9uZyB2YW4ga2hvbmcgdGFuZyBkYW5nIGtlLiBUcm9uZyBr aGkgZG8sIGNhYyBHViBkYXUgZGFuIHBoYW4gbG9uIGRhIG5naGkgaHV1Ii4NCg0KVGhlbyBiYW8g Y2FvIGN1YSBVQlRWIFF1b2MgaG9pIGRhdSBuYW0gMjAxMCwgY2hpIGNvIDUwJSBHViBjYWMgdHJ1 b25nIERIIGhpZW4gbmF5IGRhdCB0cmluaCBkbyBzYXUgREguIA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDQwMDM3MjMuYXNweCBEaWV1IEhp ZW4gVnUgVGhvIDA0LzEwLzIwMTAgMDozNyANCg0KVGh1IHR1b25nOiBEYW8gdGFvIHRpbiBjaGkg bnVhIHZvaSAtIEJhaSAxOiBIYW5nIG5nYW4gc2luaCB2aWVuIGJpIHRob2kgaG9jICAgDQogIA0K S2hpIGNodXllbiB0dSBsb2FpIGhpbmggZGFvIHRhbyBuaWVuIGNoZSB0cnV5ZW4gdGhvbmcgc2Fu ZyB0aW4gY2hpIChUQykgdGhpIGNhbiB0aGF5IGRvaSANCmNhIGNodW9uZyB0cmluaCBkYW8gdGFv LCBkb2kgbmd1IGdpYW5nIHZpZW4sIGNvIHNvIHZhdCBjaGF0LCB0aHUgdmllbi4uLiBOaHVuZyBy YXQgbmhpZXUgDQp0cnVvbmcgREgsIENEIGNodWEgZHUga2hhIG5hbmcgbmVuIHRyZW4gdGh1YyB0 ZSwgVEMgaGllbiBuYXkgY29uIG51YSB2b2kuIA0KDQpUaGVvIGxvIHRyaW5oIGN1YSBCbyANCg0K R0QtRFQsIGRlbiBuYW0gMjAxMCB0YXQgY2EgY2FjIHRydW9uZyBESCwgQ0QgdHJvbmcgY2EgbnVv YyBwaGFpIGFwIGR1bmcgaGluaCB0aHVjIA0KZGFvIHRhbyBUQy4gVHV5IG5oaWVuIGNobyBkZW4g dGhvaSBkaWVtIGhpZW4gbmF5LCBjaGkgY28ga2hvYW5nIGhvbiAxMCUgc28gdHJ1b25nIA0KdGh1 YyBoaWVuIHZhIGRhIHZhcCBwaGFpIGtob25nIGl0IGtobyBraGFuLg0KDQpPIG5odW5nIHRydW9u ZyBiYXQgZGF1IGFwIGR1bmcgcXV5IGNoZSBkYW8gdGFvIG5heSB0aHVvbmcgeGF5IHJhIHRpbmgg dHJhbmcgY28gcmF0IGRvbmcgDQpzaW5oIHZpZW4gKFNWKSBiaSBidW9jIHRob2kgaG9jIG5nYXkg dHUgbmFtIGRhdSB0aWVuLiANCg0KRGllbiBoaW5oIGxhIHRydW9uZyBob3AgbyB0cnVvbmcgREgg QmFjaCBraG9hIERhIE5hbmcuIFZhbyBuYW0gaG9jIDIwMDgtMjAwOSwgaG9uDQoxLjAwMCBTViBy b2kgdmFvIGRpZW4gcGhhaSBidW9jIHRob2kgaG9jIGRvIGtob25nIGR1IGRpZW0uIFRydW9uZyBE SCBIYW5nIGhhaSAoSGFpIA0KUGhvbmcpLCBuYW0gZGF1IGFwIGR1bmcgcXV5IGNoZSBuYXkgY3Vu ZyBkYSByb2kgdmFvIHRpbmggdHJhbmcgdHVvbmcgdHUuIE1vaSBkYXkgbmhhdCANCmxhIHN1IGtp ZW4gY3VhIHRydW9uZyBESCBNbyAtIERpYSBjaGF0LiBOaGEgdHJ1b25nIGN1bmcgYmF0IG5nbyB2 b2kgODU2IFNWIG5hbSB0cm9uZyANCmRhbmggc2FjaCBidW9jIHRob2kgaG9jIHNhdSBraGkga2V0 IHRodWMgbmFtIGhvYyBkYXUgdGllbiBhcCBkdW5nIGhpbmggdGh1YyBkYW8gdGFvIFRDLg0KDQpE aWV1IGRhbmcgbm9pIGxhIHNvIHZvaSBxdXkgY2hlIGRhbyB0YW8gY3UgdGhpIG5odW5nIFNWIHRy ZW4ga2hvbmcgZGVuIG5vaSB0aHVvYyBkaWVuIA0KcGhhaSBkdW9pIGhvYy4gVmkgdmF5IGhhdSBo ZXQgY2FjIHRydW9uZyBkZXUgcGhhaSB0aW0gY2FjaCBkZSAidm90IiBsYWkgc28gU1Ygcm9pIHZh byANCnRpbmggdHJhbmcgbmF5LiBCYW4gZ2lhbSBoaWV1IERIIERhIE5hbmcgY2hpIGNobyB0aG9p IGhvYyAxNjEgU1Yga2VtIG5oYXQuIFNvIGNvbiBsYWkgDQpzZSBwaGFpIGtlbyBkYWkgdGhvaSBn aWFuIGhvYyB0YXAgdGhlbSAxIG5hbSBudWEgZGUgY2FpIHRoaWVuIGxhaSBkaWVtIGN1YSBtaW5o LiBUcnVvbmcgDQpESCBNbyAtIERpYSBjaGF0IGRhIGNodXllbiBzbyBTViBraG9uZyBkdSBkaWV1 IGtpZW4gaG9jIHRpZXAgREggc2FuZyBiYWMgQ0QuIA0KVHJ1b25nIERIIEhhbmcgaGFpIChIYWkg UGhvbmcpIGN1bmcgY28gY2FjaCB4dSBseSB0dW9uZyB0dS4gVHV5IG5oaWVuLCBjYWMgeHUgbHkg bmF5IA0KZGV1IGxhIG5odW5nIGJpZW4gcGhhcCBkb2kgcGhvIG5lbiB2aWVjIFNWIGJpIHRob2kg aG9jIGN1IGxpZW4gdHVjIGRpZW4gcmEgaGV0IHRydW9uZyBuYXkgDQpkZW4gdHJ1b25nIGtoYWMu IA0KDQpEbyBTViAiY2h1YSBxdWVuIj8gDQoNCkRpIGRhdSB0aHVjIGhpZW4geSB0dW9uZyBuYXkg bGEgdHJ1b25nIERIIEJhY2gga2hvYSBUUC5IQ00gKG5hbSAxOTkzKS4gU2F1IGRvIGRlbiANCmNh YyB0cnVvbmcgREggWGF5IGR1bmcgSGEgTm9pLCB0cnVvbmcgREggVGhhbmcgTG9uZy4gRGVuIG5h bSAyMDA3LCBjbyAxMiB0cnVvbmcgDQpESCB0aHVjIGhpZW4gZGFvIHRhbyB0aGVvIFRDLiBUaGFu ZyA4LjIwMDcsIEJvIEdELURUIGNobyByYSBkb2kgUXV5IGNoZSBkYW8gdGFvIERIIA0KdmEgQ0Qg aGUgY2hpbmggcXV5IHRoZW8gaGUgdGhvbmcgVEMuIEhpZW4gbmF5LCBjbyA1MCB0cnVvbmcgKDQ1 IERILCA1IENEIHRyb25nIHRvbmcgDQpzbyAxNTQgdHJ1b25nIERIIHZhIDIyOCB0cnVvbmcgQ0Qp IHRyZW4gY2EgbnVvYyB0aHVjIGhpZW4gY2hlIGRvIGRhbyB0YW8gdGhlbyBUQy4NCg0KSGF1IGhl dCBjYWMgdHJ1b25nIGx5IGdpYWkgdGluaCB0cmFuZyBuYXkgbGEgZG8gU1YgY2h1YSBxdWVuIHZv aSBoaW5oIHRodWMgZGFvIHRhbyBtb2kuIA0KUXV5IGNoZSBkYW8gdGFvIFRDIGRvaSBob2kgU1Yg cGhhaSB0dSBob2MsIHR1IG5naGllbiBjdXUgbmhpZXUgaG9uIHNvIHZvaSBuaWVuIGNoZS4gDQpN b3QgZG9uIHZpIFRDIGR1b2MgdGluaCBiYW5nIDE1IHRpZXQgbGVuIGxvcCB2YSAzMCB0aWV0IGNo dWFuIGJpIGNhIG5oYW4uIE5odW5nIGRhIHNvIA0KU1YgY2h1YSBxdWVuIHZvaSBjYWNoIGhvYyBu YXkuIEhvYyB0aGVvIFRDLCBjYW4gcGhhaSBjbyBsdWMgbHVvbmcgY28gdmFuIGhvYyB0YXAuIFR1 eSANCm5oaWVuLCBsdWMgbHVvbmcgbmF5IG8gY2FjIHRydW9uZyBjaHVhIHRvdCBuZW4gbmhpZXUg U1YgZGFuZyBreSBob2MgcXVhIHN1YyBzbyB2b2kga2hhIA0KbmFuZywgY3VuZyBidW9jIHBoYWkg Y2hhcCBuaGFuIGJpIHRob2kgaG9jLiANCg0KVGllcCB4dWMgdm9pIFRoYW5oIE5pZW4sIFBHUy1U UyBMZSBUcm9uZyBUaGFuZywgVHJ1b25nIHBob25nIERhbyB0YW8gREggTW8gLSBEaWEgDQpjaGF0 IGNobyByYW5nLCBRdXkgY2hlIDQzIHZlIGRhbyB0YW8gVEMgZHVhIHJhIHlldSBjYXUgY2FvIGhv biBzbyB2b2kgZGlldSBraWVuIHRodWMgdGUuIA0KIk5odW5nIFNWIHRoaSB2YW8gREggTW8gLSBE aWEgY2hhdCBjbyBob2MgbHVjIHZ1YSBwaGFpLiBWaSB2YXkga2hpIGRhbyB0YW8gdGhlbyBUQyAN Cm5oaWV1IGVtIGR1b2kgc3VjIGRvIHlldSBjYXUgY2FvIGhvbiBzbyB2b2kgZGFvIHRhbyB0aGVv IG5pZW4gY2hlLiBWaSBkdSwgZG9pIHZvaSBuaWVuIA0KY2hlLCA1IGxhIGRpZW0gdHJ1bmcgYmlu aCBuaHVuZyBzYW5nIFRDIHRoaSBkaWVtIHRydW5nIGJpbmggcGhhaSBsYSA1LDUiLCBvbmcgVGhh bmcgbHkgDQpnaWFpLg0KDQpUaGFjIHNpIE5ndXllbiBUaGkgVGhhbmggUGh1YywgZ2lhbmcgdmll biB0cnVvbmcgREggTmdvYWkgbmd1IC0gREggUXVvYyBnaWEgSGEgDQpOb2ksIGx5IGdpYWk6ICJZ ZXUgY2F1IFNWIG5hbSB0aHUgbmhhdCBwaGFpIG5nYXkgbGFwIHR1YyBjbyBraGEgbmFuZyB0dSBo b2MgdmEgdHUgDQpuZ2hpZW4gY3V1IGxhIGRpZXUga2hvIGtoYW4uIEJvaSBjYWMgZW0gZGEgcXVl biBjYWNoIGhvYyBvIHBobyB0aG9uZyB0aGVvIGtpZXUgbW90IA0KY2hpZXUsIHRoYXkgZG9jIHRy byBjaGVwLCB0aGF5IGdpYW5nIHRybyBnaGkiLi4uIA0KDQpCYXQgY2FwIHR1IG5oYSB0cnVvbmcN Cg0KVHJvbmcga2hpIGRvLCBuaGlldSBTViBjaG8gYmlldCwgdmllYyBibyB0cmkgZ2lvIGhvYyBj dWEgbmhhIHRydW9uZyBjdW5nIG5odSBjb25nIHRhYyANCnRodSB2aWVuIGNodWEgdGh1YyBzdSBo byB0cm8gY2hvIG5ndW9pIGhvYyB0aGVvIGhlIHRob25nIFRDLiBPIG5oaWV1IHRydW9uZyBESCwg dGh1IA0KdmllbiBjaGkgbW8gdmFvIG5odW5nIGdpbyBTViBsZW4gbG9wIG5lbiBoYXUgbmh1IGhv IGtob25nIGNvIG5vaSBkZSBkdW9jIHRob2EgbWFuIA0Kbmh1IGNhdSB0dSBob2MuIFZpZWMgdGlt IHRhaSBsaWV1IGN1bmcga2hvIGtoYW4gdmkga2hvbmcgcGhhaSBsdWMgbmFvIGN1bmcgY28gdGhl IHRpbSANCmR1b2MgZHVuZyB0YWkgbGlldSBtYSBnaWFuZyB2aWVuIGxpZXQga2UgbyB0aHUgdmll bi4gDQoNClRhaSBtb3QgaG9pIG5naGkgYmFuIHZlIERvaSBtb2kgcGh1b25nIHBoYXAgZ2lhbmcg ZGF5IERIIHRoZW8gaGUgdGhvbmcgVEMsIEdTLQ0KVFNLSCBMYW0gUXVhbmcgVGhpZXAsIG5ndXll biBWdSB0cnVvbmcgVnUgR2lhbyBkdWMgREgsIEJvIEdELURUIGN1bmcgY2hvIA0KcmFuZywga2hv aSBsdW9uZyBraWVuIHRodWMgdHJvbmcgZGFvIHRhbyBUQyBjdWEgVk4gY2FvIGhvbiBzbyB2b2kg a2h1IHZ1Yy4gSGllbiBjYWMgDQpudW9jIHRyb25nIGtodSB2dWMgcXV5IGRpbmggc28gbHVvbmcg VEMgdG9pIHRoaWV1IGhlIERIIDQgbmFtIGNoaSB2YW8ga2hvYW5nIHR1IA0KMTIwIC0gMTUwIGRv biB2aSBob2MgdHJpbmgsIGNvbiBvIFZOIHZhbyBraG9hbmcgMTgwIC0gMjAwIGRvbiB2aS4gDQoN ClRvbmcga2V0IG5hbSBob2MgMjAwNyAtIDIwMDgsIGNhYyB0cnVvbmcga2llbiBuZ2hpIEJvIEdE LURUIGNhbiBwaGFpIGRpZXUgY2hpbmggDQpob2FjIHhheSBkdW5nIGxhaSBjaHVvbmcgdHJpbmgg ZGFvIHRhbyBjaG8gcGh1IGhvcCB2b2kgdGluaCBoaW5oIHRodWMgdGUgaGllbiBuYXkuIFR1eSAN Cm5oaWVuLCBkZW4gbmF5LCBjYWMgcXV5IGRpbmggdmUgZGFvIHRhbyBUQyBkbyBCbyBHRC1EVCBi YW4gaGFuaCB2YW4gY2h1YSB0aGF5IGRvaS4gDQoNCkhvYyB0aGVvIHRpbiBjaGkgbGEgZ2k/IA0K DQpEYW8gdGFvIHRoZW8gaGUgdGhvbmcgVEMgeGVtIG5ndW9pIGhvYyBsYSB0cnVuZyB0YW0gY3Vh IHF1YSB0cmluaCBkYW8gdGFvLiBEYWMgdHJ1bmcgDQpjdWEgaGUgdGhvbmcgbmF5IGxhIGtpZW4g dGh1YyBkdW9jIGNhdSB0cnVjIHRoYW5oIGNhYyBob2MgcGhhbi4gDQoNCktob2kgbHVvbmcga2ll biB0aHVjIHRpY2ggZHVvYyBkYW5oIGdpYSB0aGVvIHRoYW5nIGRpZW0gY2h1IEEsIEIsIEMsIEQg ZHVvYyBjaHV5ZW4gDQp0aGFuaCBkaWVtIGNodSBuaHUgc2F1OiBMb2FpIGRhdDogZ29tOiBHaW9p IEEgKDgsNSAtIDEwKSwgS2hhIEIgKDcsMCAtIDgsNCksIFRydW5nIGJpbmggDQpDICg1LDUgLSA2 LDkpLCBUcnVuZyBiaW5oIHlldSBEICg0LDAgLSA1LDQpLiBMb2FpIGtob25nIGRhdDogS2VtIEYg KGR1b2kgNCwwKS4gU1YgY28gaG9jIA0KcGhhbiBiYXQgYnVvYyBiaSBkaWVtIEYgcGhhaSBkYW5n IGt5IGhvYyBsYWkgaG9jIHBoYW4gZG8gbyBtb3QgdHJvbmcgY2FjIGhvYyBreSB0aWVwIA0KdGhl byBjaG8gZGVuIGtoaSBkYXQgZGllbSBBLCBCLCBDIGhvYWMgRC4gDQoNCkhhbmcgdG90IG5naGll cCBkdW9jIHhhYyBkaW5oIHRoZW8gZGllbSB0cnVuZyBiaW5oIGNodW5nIHRpY2ggbHV5IGN1YSB0 b2FuIGtob2EgaG9jLCANCm5odSBzYXU6IGxvYWkgWHVhdCBzYWM6IHR1IDMsNiBkZW4gNDsgbG9h aSBHaW9pOiB0dSAzLDIgZGVuIDMsNTk7IGxvYWkgS2hhOiB0dSAyLDUgZGVuIDMsMTk7IA0KbG9h aSBUcnVuZyBiaW5oOiB0dSAyIGRlbiAyLDQ5LiANCihUcmljaCBRdXkgY2hlIDQzIHZlIGRhbyB0 YW8gREgsIENEIHRoZW8gVEMgZG8gQm8gR0QtRFQgYmFuIGhhbmggbmFtIDIwMDcpDQoNClJhYyBy b2kgdGhhbmcgZGllbSANCg0KSGFuZyB0cmFtIFNWIGtob2EgMjAwNi0yMDEwIHRydW9uZyBESCBE YSBOYW5nLCBraG9hIGRhdSB0aWVuIHRvdCBuZ2hpZXAgZGFvIHRhbyANCnRoZW8gaGUgVEMsIG5n YW8gbmdhbiB2b2kgbmhpZXUgcmFjIHJvaSB0cm9uZyBxdWEgdHJpbmggeGluIHZpZWMuIA0KDQoo QW5oOiBUaWVuIHNpIE5ndXllbiBUYW4gTGUgKGJpYSBwaGFpKSwgVHJ1b25nIHBob25nIERhbyB0 YW8gdHJ1b25nIERIIFN1IHBoYW0gRGEgDQpOYW5nIHRyYW8gZG9pIHZvaSBjYWMgdGFuIGN1IG5o YW4gdmUgdmllYyBjaHV5ZW4gZG9pIHRoYW5nIGRpZW0gNCBzYW5nIHRoYW5nIGRpZW0gMTAgliAN CkFuaDogRC5IKQ0KDQpDYW8gVGhpIEhvYSBub3AgZG9uIHhldCB0dXllbiBuZ2FjaCBnaWFvIHZp ZW4gVEhQVCBjdWEgU28gR0QtRFQgUXVhbmcgTmFtLiBDdW9pIA0KaGFuIG5vcCBobyBzbywgbmd1 b2kgdHJvbmcgU28gZ29pIGxlbiB2YSB0aG9uZyBiYW8sIGNhbiBwaGFpIGNvIGdpYXkgeGFjIG5o YW4gY3VhIG5oYSANCnRydW9uZyBxdXkgZG9pIGRpZW0gdHUgInRoYW5nIGRpZW0gNCIgc2FuZyAi dGhhbmcgZGllbSAxMCIgZGUgdGllbiB2aWVjIHhldCB0dXllbiB2aSBTbyANCmtob25nIGNvIG5n dW9pIG5nb2kgY29uZyB0cnUgbmhhbiBjaGlhIHZpZWMgbmF5LiANCg0KVGhlbyBUUyBOZ3V5ZW4g VGFuIExlLCBUcnVvbmcgcGhvbmcgRGFvIHRhbyB0cnVvbmcgREggU3UgcGhhbSBEYSBOYW5nLCBj byBnYW4gDQo1MDAgU1YgbW9pIHRvdCBuZ2hpZXAgZGVuIHhpbiBjYXAgbGFpIGJhbmcgZGllbSBj byB0aGFuZyBkaWVtIDQgdmEgdGhhbmcgZGllbSAxMCwgDQpkb25nIHRob2kgY2FwIGdpYXkgeGFj IG5oYW4ga2V0IHF1YSBjaHVuZyB0b2FuIGtob2EuIENoaSB0cnUgVFAgRGEgTmFuZywgY29uIGhh dSBoZXQgDQpuZ2FuaCBnaWFvIGR1YyBjYWMgdGluaCB0aGFuaCBraHUgdnVjIG1pZW4gVHJ1bmcg ZGV1IGtob25nIGRvbmcgeSB2b2kgdGhhbmcgZGllbSA0LCANCmJhdCBidW9jIGNhYyB0YW4gY3Ug bmhhbiBwaGFpIHZlIHRydW9uZyBxdXkgZG9pLiANCg0KVHJ1b25nIGhvcCBjdWEgSG9hIHNhdSBr aGkgcXV5IGRvaSBraG9uZyBiaSBhbmggaHVvbmcgZGVuIGtldCBxdWEgaG9jIHRhcC4gTmh1bmcg DQp0cnVvbmcgaG9wIGN1YSBOZ3V5ZW4gVGhpIE5nb2MgdGhpIGxhaSBsYSBtb3QgY2h1eWVuIGto YWMuIFRoZW8ga2V0IHF1YSBob2MgdGFwIGN1YSBoZSANClRDLCB0aGkgbmV1IHRpbmggdGhhbmcg ZGllbSA0LCBrZXQgcXVhIGN1YSBOZ29jIGxhIDMsMiwgZGF0IGxvYWkgZ2lvaS4gVGhlIG5odW5n LCBraGkgcXV5IA0KZG9pIHNhbmcgdGhhbmcgZGllbSAxMCwgdGhpIGNoaSBkYXQgNyw5OSAtIGto b25nIGR1IGRpZW0geGVwIGxvYWkgZ2lvaS4gTm9pIE5nb2MgeGluIHZpZWMgDQpjdW5nIGtob25n IGNoaXUgY29uZyBuaGFuIGtldCBxdWEgdG90IG5naGllcCBuYXkgbGEgbG9haSBnaW9pLCBib2kg Y2hvIHJhbmcsIDcsOTkgc2FvIGxhaSANCmRhdCBsb2FpIGdpb2khIA0KDQoiUmF0IG5oaWV1IGVt IHJvaSB2YW8gdGluaCBjYW5oIG5heSEgQ2hpdSwgY2h1bmcgdG9pIGN1bmcga2hvbmcgYmlldCBn aWFpIHF1eWV0IGxhbSBzYW8gDQpib2kgZG8gdmVuaCB0cm9uZyBraGkgcXV5IGRvaSBsYSB0YXQg eWV1IiwgVFMgTGUgbGFjIGRhdSBuZ2FvIG5nYW4uDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9uZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNDIzNTkwOC5hc3B4IE5odSBMaWNoIFRoaWVu IExvbmcgTXkgUXV5ZW4gVnUgVGhvIDA0LzEwLzIwMTAgMjM6NTkgIA0KICANClRodSB0dW9uZzog RGFvIHRhbyB0aW4gY2hpIG51YSB2b2kgLSBCYWkgMjogQ2FpIGdpIGN1bmcgdGhpZXUgICANCiAg DQooQW5oOiBMb3AgaG9jIHF1YSBkb25nIGtob25nIHBodSBob3Agdm9pIGhpbmggdGh1YyBkYW8g dGFvIHRoZW8gaGUgdGhvbmcgdGluIGNoaSAtIEFuaDogRC5OLlQpDQoNCkNhIHRydW9uZyBob2Ms IHNpbmggdmllbiBsYW4geGEgaG9pIGRldSBjaHVhIGtpcCB0aGF5IGRvaSB0dSBkdXkgdHUgaGUg bmllbiBjaGUgc2FuZyB0aW4gDQpjaGkgKFRDKSBkdSBkYW8gdGFvIHRoZW8gaGUgdGhvbmcgVEMg ZGEgY28gbWF0IG8gVmlldCBOYW0gIGhvbiAxNSBuYW0uIA0KDQpDaGF1IGNodWMgY2EgZGVtIGRl IGRhbmcga3kgDQoNClRoZW8gb25nIExlIFZhbiBLaHV5ZW4sIG5ndXllbiAgUGhvIHZ1IHRydW9u ZyBWdSBHaWFvIGR1YyBESCwgQm8gR0QtRFQsIGtoaSBkYW8gDQp0YW8gdGhlbyBuaWVuIGNoZSwg bW90IGNodXllbiBuZ2FuaCBjbyB0aGUgY2hpIGNhbiBtb3QgZ2lhbmcgdmllbiAoR1YpIHBodSB0 cmFjaCwgDQpuaHVuZyBkYW8gdGFvIFRDIGl0IG5oYXQgcGhhaSBjbyAyIEdWIHRybyBsZW4uIERh byB0YW8gdGhlbyBUQyBsYSBsYXkgbmd1b2kgaG9jIGxhbSANCnRydW5nIHRhbSBuZW4gU1YgaG9h biB0b2FuIGNvIHF1eWVuIGx1YSBjaG9uIHRob2kgZ2lhbiBob2MgdGFwIGhvcCBseSwgR1YgcGh1 IGhvcC4uLiANClR1eSBuaGllbiwgaGF1IGhldCBjYWMgdHJ1b25nIERIIGhpZW4gbmF5IGNodWEg ZGFwIHVuZyBkdW9jIGRpZXUga2llbiBuYXkgdmkgdGhpZXUgDQpHViwgY28gc28gdmF0IGNoYXQg Y2h1YSBkYXAgdW5nIGtpcC4uLg0KDQpUaGVvIGR1bmcgVEMsIG1vdCBtb24gaG9jIHNlIGR1b2Mg bW8gbGllbiB0dWMgdm9pIG5oaWV1IEdWIGRlIFNWIGNvIG5oaWV1IGx1YSBjaG9uIA0KcGh1IGhv cCB2b2kgaG9hbiBjYW5oIGN1YSBtaW5oLiBEaWV1IG5heSwgaGllbiBraG9uZyB0aHVjIGhpZW4g ZHVvYyBvIHBoYW4gbG9uIGNhYyANCnRydW9uZyBESCwgQ0QuICBEYW8gdGFvIHRoZW8gVEMgZG9p IGhvaSBjbyBzbyB2YXQgY2hhdCBwaGFpIGRhbSBiYW8gZHVvYyBuaHUgY2F1IGN1YSANClNWLiBU dXkgbmhpZW4sIGNvIHNvIHZhdCBjaGF0LCBwaG9uZyBob2MgbyBoYXUgaGV0IGNhYyB0cnVvbmcg ZGV1IGNvbiBxdWEgbmdoZW8gbmFuLCANCnRoYW0gY2hpIHRhbSBibywga2hvbmcgdGhlIGRhcCB1 bmcgZHVvYyB5ZXUgY2F1IGxpbmggaG9hdCwgbWVtIGRlbyBjdWEgdmllYyB0byBjaHVjIGxvcCBo b2MgdGhlbyBUQy4NCg0KIk5ndXllbiBuaGFuIGNoaW5oIGRhbiBkZW4gdmllYyBuaGlldSBTViBi aSB0aG9pIGhvYyBraGkgZGFvIHRhbyBUQyBsYSBkbyBzdSB0aGlldSB0cmFjaCANCm5oaWVtIGN1 YSBoZSB0aG9uZyBjbyB2YW4gaG9jIHRhcC4gSGUgdGhvbmcgbmF5IGNvIG5oaWVtIHZ1IGhvIHRy byBjaG8gU1YgdHJvbmcgdmllYyANCmx1YSBjaG9uIGtlIGhvYWNoIGhvYyB0YXAgcGh1IGhvcC4g TmV1IGhldCBob2Mga3kgMSwgU1YgY28ga2V0IHF1YSBob2MgdGFwIGtob25nIHRvdCB0aGkgDQpj byB2YW4gaG9jIHRhcCBwaGFpIGJhbyBkb25nIHZhIGh1b25nIGRhbiBkZSBTViBydXQgYm90IG1v biBob2MgdHJvbmcgaG9jIGt5IHRpZXAgdGhlbyANCmRlIHZ1YSB2b2kgc3VjIGhvYy4gVmkgdmF5 LCBtdW9uIHRoYW5oIGNvbmcgdHJvbmcgZGFvIHRhbyBUQywgY2FjIHRydW9uZyBwaGFpIGNodSB0 cm9uZyB4YXkgZHVuZyBkb2kgbmd1IG5heS4iIC0gVGllbiBzaSBMZSBWYW4gS2h1eWVuLCBuZ3V5 ZW4gUGhvIHZ1IHRydW9uZyBWdSBESCB2YSBzYXUgREggLSBCbyBHRC1EVC4gDQoNCkhpZXUgcGhv IG1vdCB0cnVvbmcgREggbyBIYSBOb2kgZGEgdGh1YyBoaWVuIGRhbyB0YW8gVEMgY2hvIGJpZXQ6 ICJPIG51b2MgbmdvYWksIA0KdHJvbmcgZ2lvIGhvYyBseSB0aHV5ZXQsIHZhaSB0cmFtIFNWIGNv IHRoZSBob2MgY2h1bmcgdHJvbmcgbW90IGdpYW5nIGR1b25nIGxvbiBkZSBuZ2hlIA0KYmFpIGdp YW5nIGN1YSBjYWMgZ2lhbyBzdSBnaW9pLiBOaHVuZyBzYW5nIGRlbiBnaW8gdGh1YyBoYW5oIGhv YWMgdGhhbyBsdWFuLCBsb3Agc2UgY2hpIA0KY29uIDIwLTMwIFNWL3Bob25nLiBDb24gbyBWaWV0 IE5hbSwgZHUgZ2lvIGx5IHRodXlldCBoYXkgdGhhbyBsdWFuLCBoYW5nIHRyYW0gU1YgdmFuIA0K YmkgIm5ob2kgbmhldCIgdmFvIG1vdCBwaG9uZyBob2MgY2h1bmciLiANCg0KU3UgdGhpZXUgdGhv biB2ZSBjbyBzbyB2YXQgY2hhdCB2YSBHViBraGllbiBTViBob2MgdGhlbyBUQyBsdW9uIGdhcCB0 cnVjIHRyYWMuIENvIA0KdHJ1b25nIG5odSBESCBLaW5oIHRlIHF1b2MgZGFuIEhhIE5vaSwgU1Yg cGhhaSBjaGF1IGNodWMgY2EgZGVtIGRlIGxlbiBtYW5nIGRhbmcga3kgbW9uIGhvYyBwaHUgaG9w LiBEbyBHViBraG9uZyBkdSwgcGhvbmcgb2MgY3VuZyB0aGlldSB0aG9uIG5lbiBzbyBsb3AgaG9j IGNoaSBjbyANCmhhbiwgbmV1IGtob25nIG5oYW5oIGNoYW4gU1Ygc2Uga2hvbmcgZGFuZyBreSBk dW9jLiBPbmcgTmd1eWVuIFF1YW5nIERvbmcsIA0KVHJ1b25nIHBob25nIERhbyB0YW8gREggS2lu aCB0ZSBxdW9jIGRhbiBjaGlhIHNlOiAiTmhhIHRydW9uZyBraG9uZyB0aGUgZGFwIHVuZyANCmR1 b2MgZGF5IGR1IG5odSBjYXUgY3VhIFNWIGJvaSBuYW5nIGx1YyBHViB2YSBnaWFuZyBkdW9uZyBj byBoYW4uIEtpbmggcGhpIGRhbyB0YW8gDQpraG9uZyBkdSBkZSBjaGkgcGhpIHRoaSBub2kgZ2kg ZGVuIHZpZWMgdHV5ZW4gdGhlbSBHViIuDQoNCktoYXAga2hpZW5nIHRyb25nIHF1YW4gbHkgDQoN ClZhbiBkZSBkYW5nIGxvIG5nYWkgbmhhdCBkb2kgdm9pIHZpZWMgZGFvIHRhbyB0aGVvIGhlIHRo b25nIFRDIGxhIHF1YW4gbHkuIFRoZW8gb25nIE5nbyANClRoZSBDaGksIEdpYW0gZG9jIEhvYyB2 aWVuIFRhaSBjaGluaCwgdGhpIGhpZW4gbmF5LCBCbyBHRC1EVCB5ZXUgY2F1IGNhYyB0cnVvbmcg cGhhaSANCmNodXllbiBzYW5nIGRhbyB0YW8gdGhlbyBUQyBuaHVuZyBjb25nIHRhYyBxdWFuIGx5 IHZhbiB0aHVjIGhpZW4gdGhlbyBuaWVuIGNoZS4gQ2hhbmcgDQpoYW4gZGFvIHRhbyBUQyB0aGkg cGhhaSB0dXllbiBzaW5oIHRoZW8gdHVuZyBob2Mga3kgIG5odW5nIGhpZW4gbmF5IHZpZWMgbmF5 IHZhbiB0aHVjIA0KaGllbiB0aGVvIHR1bmcgbmFtIGhvYy4NCg0KRGFjIGJpZXQsIGRhbyB0YW8g VEMgZG9pIGhvaSBwaGFpIGNvIG1vdCBkb2kgbmd1IHF1YW4gbHkgdmEgbmhhbiB2aWVuIGhhbmgg Y2hpbmggcmF0IA0KY2h1eWVuIG5naGllcC4gVHV5IG5oaWVuLCBoaWVuIGRvaSBuZ3UgbmF5IG8g Y2FjIHRydW9uZyBESCBoYXUgbmh1IGtob25nIGR1b2MgeGVtIHRyb25nLiBHUy1UU0tIIE5ndXll biBIdXUgVmlldCBIdW5nLCBESCBRdW9jIGdpYSBIYSBOb2ksIGNobyBiaWV0OiAiRGUgY2h1eWVu IA0Kc2FuZyBkYW8gdGFvIHRoZW8gVEMsIHZpZWMgZGF5IGN1YSBjYWMgR1YgY28gdGhlIGtob25n IHBoYWkgdGhheSBkb2kgbmhpZXUsIG5odW5nIGNvbmcgDQp2aWVjIHF1YW4gbHkgaGFuaCBjaGlu aCBzZSB0aGF5IGRvaSBjYW4gYmFuLCB0aGVvIGh1b25nIG5hbmcgbGVuIHJhdCBuaGlldS4gVHJh Y2ggbmhpZW0gDQpjdWEgbmh1bmcgbmd1b2kgcXVhbiBseSB2YSBuaGFuIHZpZW4gaGFuaCBjaGlu aCB0cm9uZyBoZSB0aG9uZyBkYW8gdGFvIHRoZW8gVEMsIGJlbiANCmNhbmggY2FjIGNvbmcgdmll YyBraGFjLCBsYSBnaXVwIFNWICh0cm9uZyBkbyBjbyBuaHVuZyBuZ3VvaSBxdWF5IGxhaSBob2Mg dGFwIHNhdSBuaGlldSBuYW0sIHRoYW0gY2hpIG5oaWV1IGNodWMgbmFtIGdpYW4gZG9hbikgbmhh biByYSBkdW5nIHRoaWVuIGh1b25nIHZhIHRyaW5oIGRvIGhvYyBsdWMgDQpjdWEgbWluaCwgZGFu ZyBreSB2YW8gZHVuZyBsb3AgbWluaCBjbyB0aGUgdmEgY2FuIHBoYWkgaG9jLiAiTyBNeSwgbmh1 bmcgbmd1b2kgcXVhbiANCmx5IHZhIG5oYW4gdmllbiBoYW5oIGNoaW5oIGRldSBkdW9jIGRhbyB0 YW8gcmF0IGJhaSBiYW4sIGtoYWMgdm9pIG8gbnVvYyB0YSwgYmF0IGt5IGFpIA0KY3VuZyBkZXUg bGFtIGR1b2MgdmllYyBuYXkiLCBHUyBIdW5nIGNhbmggYmFvLg0KDQpUaW4gY2hpLi4uIGhpbmgg dGh1YyANCg0KVHJ1b25nIERIIEx1YXQgVFAuSENNIGRhIGFwIGR1bmcgMTAwJSBtbyBoaW5oIGRh byB0YW8gaG9jIGNoZSBUQyB0dSBuYW0gaG9jIA0KMjAwOS0yMDEwLiBEdSB2YXksIHRhaSBidW9p IGRvaSB0aG9haSB2b2kgUEdTLVRTIE1haSBIb25nIFF1eSwgSGlldSB0cnVvbmcgdHJ1b25nIA0K REggTHVhdCBUUC5IQ00gdHJvbmcgdGhhbmcgNiB2dWEgcXVhLCBuaGlldSBTViB2YW4gY29uIHRo YWMgbWFjIHZlIGNhY2ggaG9jIG5heS4gDQoNClNWIGxvcCBIUzM0QiBwaGFuIGFuaDogIkhvYyB0 aGVvIFRDIHRoYXkgY28gZGF5IGtoYSBuaGFuaCwgbm9pIG5oYW5oIG5lbiBTViBraG8gDQp0aWVw IHRodSIuIFRyb25nIGtoaSBkbywgU1YgbG9wIExRMzQgaG9pOiAiVmkgc2FvIGhvYyB0aGVvIFRD LCBjaGkgbWFuZyB0aW5oIGhpbmggdGh1YywNCiBjb24gYmFuIGNoYXQgbGFpIGxhIHRoZW8gaG9j IHBoYW4/Ii4gRGFpIGRpZW4gbmhhIHRydW9uZyBnaWFpIHRoaWNoOiAiVmkgaG9jIGt5IGRhdSBh cCANCmR1bmcgbmVuIGNhbiBrZXQgaG9wLCBraGkgb24gZGluaCBzZSB0aHVjIGhpZW4gdmllYyBo b2MgdGhlbyBkdW5nIGJhbiBjaGF0Ii4gDQoNCkNvIHZhbiBob2MgdGFwIGNvIHZhaSB0cm8gcXVh biB0cm9uZyBkb2kgdm9pIFNWIGtoaSBob2MgdGhlbyBoZSB0aG9uZyBUQy4gVHV5IG5oaWVuLCAN ClNWIGxvcCBIUzM0QiBuZXUgdGluaCB0cmFuZzogIlNWIGdhcCBraG8ga2hhbiB0cm9uZyB0cmFv IGRvaSB2b2kgY28gdmFuIGhvYyB0YXAuIEdpdWEgDQpjbyB2YW4gaG9jIHRhcCB2YSBTViBjYW4g Y28gc3UgZ2FwIG1hdCB0aHVvbmcgeHV5ZW4gaG9uIGRlIHRyYW8gZG9pIHkga2llbiIuIFZlIHZh biBkZSANCm5heSwgQmFuIGdpYW0gaGlldSB0cnVvbmcgREggTHVhdCBUUC5IQ00gcGhhbiBob2k6 ICJEZSBuZ2hpIFNWIHN1IGR1bmcgdGh1IGRpZW4gdHUgDQpkZSB0cmFvIGRvaSB2b2kgY28gdmFu IGhvYyB0YXAiLiBTViBsb3AgVE0zNEIga2llbiBuZ2hpOiAiQ28gdmFuIGhvYyB0YXAgbmVuIGNo dSBkb25nIA0KaG9uIHRyb25nIHZpZWMgZ2l1cCBkbywgaG8gdHJvIFNWIHZlIG5naGUgbmdoaWVw LCB2aWVjIGxhbSwgY2FjaCB0aHVjIGx1YSBjaG9uIG1vbiBob2MiLiANCg0KWSBraWVuIHNpbmgg dmllbiANCg0KIlNhbmcgNyBnaW8gdmFvIGxvcCwgc28gYmFpIGdpYW5nIGJpIGdpYW0geHVvbmcg KDEgdGlldCBob2MgVEMgZHVvYyB0aW5oIGJhbmcgNTAgcGh1dCB0aGF5IHZpIDY3IHBodXQgbmh1 IHRydW9jIGRheSAtIFBWKS4gVGhlbSB2YW8gZG8gbGEgc3Ugc2FwIHhlcCBsaWNoIGhvYyBjdW5n IGNodWEgaG9wIGx5LiBTViBraG9uZyBkdSB0aG9pIGdpYW4gZGUgY2h1YW4gYmkgYmFpIGN1LiBT YXUgbW90IG5nYXkgaG9jIGxpZW4gdHVjIGR1b25nIG5odSBiaSBraWV0IHN1YywgdG9pIHZlIGNo dWEga2lwIHF1YXkgbGFpIHZvaSBzYWNoIHZvIGRhIGJpIGNhaSBiZW5oIGJ1b24gbmd1IGRhbmgg Z3VjLiBWYXkgdGhpIGNvIGNvbiBoaWV1IHF1YSBudWEga2hvbmc/Ii4gDQoiQ2h1bmcgZW0gY2Fu IGR1b2MgdGltIGhpZXUga3kgaG9uLCBkdW9jIGNvIHRob2kgZ2lhbiB0aGljaCB1bmcgdHUgdHUu IENodSB0aGUgbmF5IHRoaSBtZXQgbW9pIGxhbSB0aGF5IGNvIG9pISIuIChUcmljaCB0dSBkaWVu IGRhbiCVY3VhIFNWIHRydW9uZyBESCBLaG9hIGhvYyB4YSBob2kgdmEgbmhhbiB2YW4gREggUXVv YyBnaWEgSGEgTm9pKQ0KDQpZIGtpZW4gZ2lhbmcgdmllbiANCg0KVGllbiBzaSBUcnVvbmcgQ2hp IEhpZW4gKEhpZXUgcGhvIHRydW9uZyBESCBCYWNoIGtob2EgVFAuSENNKSANCg0KKiAiQ2FpIGto byB0cm9uZyB2aWVjIHRodWMgaGllbiBkYW8gdGFvIHRoZW8gVEMgaGllbiBuYXkgbGEgY2FjIGNo aW5oIHNhY2ggdmUgZGFvIHRhbyBjaHVhIG1pbmggYmFjaCB0dSBjaHVvbmcgdHJpbmggZGFvIHRh bywgZGUgY3VvbmcgY2hpIHRpZXQgZGVuIHR1IGR1eSBjdWEgZG9pIG5ndSB0aHVjIGhpZW4iLi1U aWVuIHNpIE5ndXllbiBUaWVuIER1bmcgKFRydW9uZyBwaG9uZyBEYW8gdGFvIHRydW9uZyBESCBT dSBwaGFtIGt5IHRodWF0IFRQLkhDTSkgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTAzNy8yMDEwMDkxMjIzMTU1My5hc3B4IFBoaSBMb2FuIE5ob20gUFYgMTIv MDkvMjAxMCAyMzoxNSANCg0KVGh1IHR1b25nOiBEdSBjYWNoIHRodSB0aWVuIGRhdSBuYW0gaG9j ICANCiAgDQpNYWMgZHUgbmdhbmggR0QtRFQgdG8gdmUgbmdhbiBjaGFuIGNhYyBraG9hbiB0aHUg bmdvYWkgcXV5IGRpbmgsIG5odW5nIG5nYXkgdHJvbmcgDQpuaHVuZyBuZ2F5IGRhdSBuYW0gaG9j LCBwaHUgaHV5bmggKFBIKSB2YW4gYnVjIHh1YyB2aSBsYW0ga2lldSB0aWVuIHRydW9uZy4gDQoN ClRhaSBEYSBOYW5nLCBuZ2F5IHR1IGRhdSBuYW0gaG9jLCBuZ2FuaCBHRC1EVCBkYSBiYW4gaGFu aCBuaGlldSBxdXkgZGluaCB2ZSB2aWVjIA0KdGh1IHF1eSBCYW4gZGFpIGRpZW4gY2hhIG1lIGhv YyBzaW5oIChIUykuIER1IHZheSwgdHJlbiB0aHVjIHRlLCBjdW5nIGNvIGtob25nIGl0IHRydW9u ZyANClRILCBCYW4gZGFpIGRpZW4gY2hhIG1lIEhTIGJhdCBjaGFwIHF1eSBkaW5oLCBrZXUgZ29p IGRvbmcgZ29wIG11YSB0aXZpLCBtYXkgdGluaC4gDQpQaG9uZyBHRCBxdWFuIFRoYW5oIEtoZSB2 dWEgbW9pIGtpZW0gdHJhIHRpbmggdHJhbmcgbGFtIHRodSB0YWkgdHJ1b25nIFRIIEh1eW5oIA0K TmdvYyBIdWUgdmEgcGhhdCBoaWVuIGNvIGxvcCB2YW4gZG9uZyBtb2kgUEggZG9uZyBnb3AgNTAw LjAwMGQgY2hvIHF1eSBob2F0IGRvbmcgDQpjdWEgQmFuIGRhaSBkaWVuIGNoYSBtZSBIUzsgMzAg bG9wIGtoYWMgdGhpIHZhbiBkb25nIFBIIHR1IDEwMC4wMDAgLSAyMDAuMDAwIGRvbmcuIA0KUGhv bmcgR0QtRFQgZGEgeWV1IGNhdSBuZ3VuZyB2aWVjIHRodSB0cmVuIHZhIGhvYW4gdHJhIGxhaSBz byB0aWVuIHZ1b3QgbXVjIHNhdSBraGkgY28gDQpxdXkgZGluaCB2ZSBtdWMgdGh1IHRyYW4gcXV5 IEhvaSBQSC4gVGhlbyBkbywgdHUgbmFtIGhvYyAyMDEwIC0gMjAxMSwgbXVjIHZhbiBkb25nIA0K Y2FvIG5oYXQgdHJvbmcgbW90IG5hbSBob2MgZG9pIHZvaSBtb2kgUEggbGEgMTAwLjAwMGQuIA0K DQpRdXkgdmUgc2luaCwgcXV5IENodSB0aGFwIGRvLi4uDQoNClRhaSBIdWUsIG5oaWV1IFBIIGNv IGNvbiBlbSBkYW5nIGhvYyB0YWkgdHJ1b25nIFRIIFh1YW4gUGh1IChUUCBIdWUpIGRhIHBoYWkg Im1hdCANCnRyb24sIG1hdCBkZXQiIHZvaSBjYWMga2hvYW4gdGh1IGRhdSBuYW0uIE5nb2FpIGhv YyBwaGkgbmh1IHF1eSBkaW5oLCBjYWMga2hvYW4gdGh1IA0Ka2hhYyBkdW9jIG5oYSB0cnVvbmcg bGlldCBrZSB0aGFuaCBtb3QgZGFuaCBtdWMgbmh1IHF1eSBIb2kgUEhIUywgcXV5IGRvaS4uLg0K DQpDb24gdGFpIHRydW9uZyBUSFBUIEguQi5UIChUUCBIdWUpLCBjYWMgSFMgdnVhIG5oYXAgaG9j IGR1b2MgbmhhbiBuZ2F5IG1vdCBnaWF5IA0KYmFvIG5vcCB0aWVuLCB0cm9uZyBkbyBjbyBnaGkg bmhpZXUgbG9haSBxdXkgbmh1OiBxdXkgdmUgc2luaCwgcXV5IENodSB0aGFwIGRvLCBxdXkgaG8g DQp0cm8gdGh1IHZpZW4uLi4gDQoNClZlIHZhbiBkZSBuYXksIG9uZyBMZSBUaHUsIENoYW5oIHRo YW5oIHRyYSBTbyBHRC1EVCB0aW5oIFRodWEgVGhpZW4gLSBIdWUgY2hvIGJpZXQ6IA0KImNhYyBr aG9hbiBtYSB0cnVvbmcgY29uZyBsYXAgZHVvYyBwaGVwIHRodSB0aGVvIHF1eSBkaW5oIGhpZW4g bmF5IGNoaSBjbyBob2MgcGhpICh0cnUgDQpiYWMgVEgpOyBjYWMga2hvYW4gbmh1IHhheSBkdW5n LCBsZSBwaGkgdHV5ZW4gc2luaCBraG9uZyBkdW9jIHBoZXAgdGh1IG51YS4gQ2FjIGtob2FuIA0K dGh1IG5odSBkb25nIHBodWMsIHRpZW4gYmFuIHRydSwgdGllbiBhbiB0cnVhIGRvaSB2b2kgbG9w IGhvYyAyIGJ1b2kvbmdheSwgbGFtIGJhbmcgdGVuLi4uIA0KbmhhIHRydW9uZyBjbyB0aGUgdGh1 IG5odW5nIGNoaSB0aHUga2hpIG5ndW9pIG5vcCB0dSBuZ3V5ZW4gdmEgc2F1IGtoaSB0aHVjIGhp ZW4gcGhhaSANCmR1b2MgcXV5ZXQgdG9hbiBkYW0gYmFvIGRhbiBjaHUgdmEgY29uZyBraGFpIHJv IHJhbmcuIERvaSB2b2kgY2FjIGtob2FuIHRodSBobyBuaHUgDQpxdXkgUEggcGhhaSBkbyBCYW4g ZGFpIGRpZW4gY2hhIG1lIEhTIHRodSwgcXV5IERvYW4gLSBEb2kgcGhhaSBkbyB0byBjaHVjIERv YW4gLSBEb2kgDQp0aHUsIGNhYyBraG9hbiB0aHUgQkhZVCwgYmFvIGhpZW0gdGhhbiB0aGUuLi4g bmhhIHRydW9uZyBwaGFpIHRob25nIGJhbyBybyBjaG8gUEggYmlldCANCm11YyBkaWNoIHRodSwg a2hvYW4gdGh1IG5hbyBsYSBiYXQgYnVvYywga2hvYW4gdGh1IG5hbyBsYSB0dSBuZ3V5ZW4iLiAN Cg0KVGhlIG5odW5nLCBvbmcgVGh1IGN1bmcgdGh1YSBuaGFuLCBiYXkgcmEgbmhpZXUga2hvYW4g dGh1IGRhdSBuYW0gaG9jIGhpZW4gZGEgdHJvIG5lbiANCnBobyBiaWVuIHRyb25nIG5oaWV1IHRy dW9uZyB0cmVuIGRpYSBiYW4gdGluaCB2b2kgbmhpZXUgaGluaCB0aHVjIHRodSBraGFjIG5oYXUu IEhhdSBoZXQgDQpjYWMgdHJ1b25nIGRldSBjbyB0aHUgdGhlbSBuaHVuZyBraG9hbiBuZ29haSBx dXkgZGluaC4gDQoNClNhbyBsYWkgImRhIHF1YSBib25nIiBzYW5nIHBodSBodXluaD8NCg0KVHJv bmcgYmFpIHRyYSBsb2kgdHJlbiBCYW8gVGhhbmggTmllbiBuZ2F5IDUuOSwgQm8gdHJ1b25nIEJv IEdELURUIFBoYW0gVnUgTHVhbiANCm5vaSByYW5nLCBtb3QgdHJvbmcgbmh1bmcgZ2lhaSBwaGFw IGNob25nIGxhbSB0aHUgY28gaGlldSBxdWEgbGEgUEhIUyBwaGFpIHBoYW4gdW5nIA0KdmEga2ll biBxdXlldCBraG9uZyBub3AgY2FjIGtob2FuIGtob25nIGRvbmcgeSwgbmdvYWkgcXV5IGRpbmgu IE5oaWV1IGJhbiBkb2MgZGEgY28geSANCmtpZW4gdmUgdmFuIGRlIG5heS4NCg0KQmFuIGRvYyBE YW8gVHJvbmcgSHVuZyBvIFRheSBIbywgSGEgTm9pIChkdGh1bmc5MTA5QHlhaG9vLmNvbSkgY2hv IHJhbmc6ICJOZ2hlIA0KdGhpIGNvIGx5LCBuaHVuZyBuZXUgUEggZGFtIGtob25nIG5vcCB0aGkg ZGEga2hhYyB0dSBsYXUgcm9pLiBUdSBuZ3V5ZW4gbmh1bmcgUEggbmFvIA0KZGFtICJoeSBzaW5o IiBjb24gbWluaC4gS2hvbmcgYmlldCBCbyB0cnVvbmcgZGEgdHVuZyBsYW0gUEggYmFvIGdpbyBj aHVhPyBUcm9uZyANCnZpZWMgdGh1IHRoaSBuaGEgdHJ1b25nIGxhIGJlbiB0aHUsIGJlbiBkZSBy YSBjYWMga2hvYW4gZGUgdGh1ICh0cm9uZyBkbyBjYWMga2hvYW4gdHUgDQpuZ3V5ZW4gdGhpIHRo b25nIHF1YSAiQmFuIGRhaSBkaWVuIFBISFMiKSwgY29uIFBIIGxhIGJlbiBiaSB0aHUuIFZheSBz YW8gQm8gdHJ1b25nIA0Ka2hvbmcga2V1IGdvaSBoYXkgYmF0IGJ1b2MgYmVuIGNodSBkb25nIHRo dSAobmhhIHRydW9uZykgcGhhaSB0aHUgY2hvIGR1bmcgbWEgbGFpICJkYSANCnF1YSBib25nIHRo dSIgc2FuZyBwaGlhIFBIIChiZW4gYmkgdGh1KSEgTmh1IHZheSBraGFjIGdpIHZpZWMgY29uZyBh biBjdSBsYW0gbmdvIGNobyANCmJvbiBhbiBjYXAgbWEgdHJhY2ggcmFuZyBuZ3VvaSBkYW4gYmkg YW4gY2FwIGtob25nIGNob25nIHRyYSBoaWV1IHF1YSEiLg0KDQpDb24gYmFuIGRvYyBjbyAibmlj ayBuYW1lIiBNaW5ocFRyYW4gLSBtaW5ocHQxOTY0QGhvdG1haWwuY29tIHRoaTogIk5ldSB0cmEg bG9pIA0Kbmh1IEJvIHRydW9uZyB0aGkgMTAwIG5hbSBzYXUgY3VuZyBraG9uZyBnaWFpIHF1eWV0 IGR1b2MgdmFuIGRlLiBCb2kgZ2lhaSBxdXlldCB2aWVjIA0KdGh1IGxhIHZpZWMgY3VhIGNhYyBu aGEgcXVhbiBseSwgdmF5IG1hIGxhaSBkYSBxdWEgYm9uZyB4dW9uZyBjaG8gZGFuIi4gVC4gTg0K DQpUaWVuICJ0cmFpIHR1eWVuIiB2YSBuaHVuZyBkaWNoIHZ1Li4uDQoNClRoZW8gZ2hpIG5oYW4g Y3VhIFBWLCBraGkgbGFtIHRodSB0dWMgbmhhcCBob2MsIG5odW5nIFBIIGNvIGNvbiB0aHVvYyBk aWVuIEhTIHRyYWkgDQp0dXllbiBvIHJhdCBuaGlldSB0cnVvbmcgVEggdHJlbiBkaWEgYmFuIFRQ IEhhIE5vaSBwaGFpIGRvbmcga2hvYW4gdGllbiBobyB0cm8gdHUgDQpuZ3V5ZW4uIE5vaSBsYSB0 dSBuZ3V5ZW4gbmh1bmcgY2hhYyBjaGFuIGtob25nIFBIIG5hbyBraG9uZyBub3AuIA0KDQpNb3Qg UEggY28gY29uIGhvYyB0cnVvbmcgVEggRGljaCBWb25nIEEgY2hvIGJpZXQ6ICJOYW0gbmF5LCBr aG9hbiB0aWVuIHR1IG5ndXllbiANCmRvaSB2b2kgSFMgdHJhaSB0dXllbiBkYSBsZW4gbXVjIDIg dHJpZXUgZG9uZy4gTmdvYWkgcmEsIGNvbiBjbyB0aGVtIHRpZW4gbGFwIGRhdCBtYXkgDQpkaWV1 IGhvYSwgbW9pIGNoYXUgcGhhaSBub3AgNjAwLjAwMCBkb25nIi4gTyBjYWMgdHJ1b25nIFRIIEtp bSBMaWVuLCBMZSBWYW4gVGFtLCANCk5hbSBUaGFuaCBDb25nLi4uIHNvIHRpZW4gdHUgbmd1eWVu IG5heSBtdWMgdGhhcCBuaGF0IGxhIDEgdHJpZXUgZG9uZy9IUy4NCg0KTyBtb3Qgc28gdHJ1b25n IG5nb2FpIGNvbmcgbGFwIG1hbmcgZGFuaCB0cnVvbmcgImNoYXQgbHVvbmcgY2FvIiB0aGkgUEgg Y3VuZyBub20gDQpub3Agdm9pIGhvYyBwaGkgdGFuZyB0dW5nIG5hbS4gTW90IFBIIGNvIGNvbiBo b2MgbG9wIDMgdHJ1b25nIFRIIGRhbiBsYXAgRG9hbiBUaGkgDQpEaWVtIGNobyBiaWV0OiIgTmFt IG5hbyBjdW5nIG5oYW4gZHVvYyB0aG9uZyBiYW8gdGFuZyBob2MgcGhpIi4gS2hvbmcgY2hpIGNv IGhvYyANCnBoaSwgUEggdHJ1b25nIG5heSBjb24gcGhhbiBuYW4gdmUgdmllYyBuaGEgdHJ1b25n IGtpbmggZG9hbmggdHJlbiBjYSBuaHVuZyBkaWNoIHZ1IA0Kbmh1IHhlIGR1YSBkb24gSFMsIHNh Y2gsIHRhaSBsaWV1IGhvYyB0aWVuZyBBbmguLi4gVmkgZHUsIHRpZW4geGUgdHJ1b25nIHRodSA1 MDAuMDAwIA0KZG9uZy90aGFuZy9jaGF1IG1hIG5oYSB0cnVvbmcgIm5ob2kiIHRvaSA4MCBjaGF1 L3hlLiBSYXQgbmhpZXUgUEggdGhhYyBtYWMgdmUgc2FjaCANCnRpZW5nIEFuaCBjdWEgdHJ1b25n IG5heS4gUXV5ZW4gTGV0J3MgR28gdHUgbG9wIDEgZGVuIGxvcCA1IGRldSBkYSBjbyBwaGllbiBi YW4gbW9pIHRhaSANCmJhbiBsYW4gMyByb2kgbWEgbmhhIHRydW9uZyB2YW4gYmF0IHRoZW8gcGhp ZW4gYmFuIGN1IHRhaSBiYW4gbGFuIDIuIFJhIG5nb2FpIG11YSB0aGkgDQpraG9uZyBjbyBuZW4g Y2hhYyBjaGFuIHBoYWkgbXVhIHRhaSB0cnVvbmcuICJTbyB2b2kgYm8gcGhpZW4gYmFuIDMgbXVh IG5nb2FpIHRoaSANCnRydW9uZyB2b2kgcGhpZW4gYmFuIDIgY3VhIG5oYSB0cnVvbmcgYmFuIGNo byBIUywgY2hlbmggbGVjaCB0b2kgNTAuMDAwIGRvbmcvYm8iLCBtb3QgDQpQSCBhbSB1Yy4NCg0K UEgga2hhYyB0aGkgdGhhbiBwaGllbjogIlF1eSBsb3AgY29uIG5oYSBtaW5oIG1vaSBjaGF1IG5v cCAxLDUgdHJpZXUgZG9uZy9uYW0gbWEgY28gDQpjaHUgbmhpZW0gdmFuIGNoZSBsYSBxdXkgbG9w IG1pbmggaXQgc28gdm9pIGNhYyBsb3Aga2hhYyIuIERpZXUgZGFuZyBub2kgbGEgcXV5IGNoaSBk YW5oIA0KY2hvIGNvIGNoaSB0aWV1IHZhbyB2aWVjIHNhbyBpbiB0YWkgbGlldSAodGhlbyBiYW8g Y2FvLCBjbyBjaGkgZ2FuIDUgdHJpZXUgY2hvIHZpZWMgc2FvIGluKSwgDQp0cm9uZyBraGkgZG8s IGNhYyBob2F0IGRvbmcgbmdvYWkga2hvYSBQSCB2YW4gcGhhaSBkb25nIGdvcCByaWVuZy4NCiAN CihBbmggY2h1cDogQmFuZyB0aG9uZyBiYW8gY2FjIGtob2FuIHRodSBkYXUgbmFtIGN1YSB0cnVv bmcgVGlldSBob2MgWHVhbiBQaHUsIFRQIEh1ZSkNCihBbmggY2h1cDogU28gdGh1IHRpZW4gZGF1 IG5hbSBjdWEgdHJ1b25nIFRpZXUgaG9jIE5ndXllbiBWaWV0IEhvbmcsIFEuMyBUUC5IQ00pDQoN Ck5odW5nIGtob2FuIHRpZW4gcmF0IGxhDQoNCk1hYyBkdSBjaHVhIGhvcCBQSCBkYXUgbmFtIG5o dW5nIHRyb25nIHNvIGRvbmcgdGllbiB0aGFuZyA5IGN1YSBIUyBsb3AgNSB0cnVvbmcgVEggDQpO Z3V5ZW4gVmlldCBIb25nLCBRLjMgKFRQLkhDTSkgY28gbmh1bmcga2hvYW4gdGllbiByYXQgbGEs IGdvbSB0aWVuIGRpZW46IDMuMDAwIA0KZG9uZy90aGFuZywgYmFvIG1hdSAtIGNhcCBkdW9uZzog NDAuMDAwIGRvbmcvdGhhbmcsIFBISFM6IDE1MC4wMDAgZG9uZy9uYW0sIHZpIHRpbmg6IA0KMzUu MDAwIGRvbmcvdGhhbmcsIGhvYSAtIHRoZSBkdWM6IDE2LjAwMCBkb25nL3RoYW5nLi4uIEFuaCBI dXkgLSBQSCBjdWEgdHJ1b25nIGJ1YyANCnh1YzogIkRhIGNvIGhvYyBwaGkgaG9jIDIgYnVvaSBk byBTbyBHRC1EVCBxdXkgZGluaCAzMC4wMDAgZG9uZy90aGFuZyBuaHVuZyBuaGlldSANCm5hbSBu YXkgdHJ1b25nIHZhbiB0aHUgdGhlbSB0aWVuIGhvYyBjYWMgbW9uIG5hbmcga2hpZXUgbmh1IHZp IHRpbmgsIHZlIHZhIHRoZSBkdWMuIA0KTmdvYWkgcmEsIEhTIHBoYWkgZG9uZyAzLjAwMCBkb25n IHRpZW4gZGllbiBtb2kgdGhhbmciLiANCg0KIkRheSBsYSBjaHV5ZW4gbXVvbiB0aHVvLiBOYW0g bmFvIFNvIGN1bmcgcGhhaSBuaGFjIG5obywgY2hhbiBjaGluaCB0aGFtIGNoaSBjb24gdG8gDQpj aHVjIGRvYW4ga2llbSB0cmEgeHVvbmcgY2FjIHRydW9uZy4gTmV1IFBIIGRvbmcgZ29wIHRyZW4g dGluaCB0aGFuIHR1IG5ndXllbiB0aGkgdmllYyANCnRodSBjaGkgcGhhaSBkbyBIb2kgUEggcXVh biBseSBjaHUgbmhhIHRydW9uZyB0dXlldCBkb2kga2hvbmcgZHVvYyBsaWVuIHF1YW4iIC0gT25n IA0KTmd1eWVuIEhvYWkgQ2h1b25nLCBQaG8gZ2lhbSBkb2MgU28gR0QtRFQgVFAuSENNIA0KDQpC YSBUcmFuIFRoaSBIYW5oLCBIaWV1IHRydW9uZyB0cnVvbmcgVEggTmd1eWVuIFZpZXQgSG9uZywg US4zIGdpYWkgdGhpY2g6ICJOZXUgDQpraG9uZyBjbyBob2kgUEggdmEgY2FjIGtob2FuIGRvbmcg Z29wIHR1IGhvIHRoaSB0cnVvbmcga2hvbmcgaG9hdCBkb25nIGR1b2MuIFRhdCBjYSANCmNhYyBr aG9hbiB0aHUgbmF5IGRldSBkdW9jIEJhbiBkYWkgZGllbiBjaGEgbWUgSFMgZG9uZyB5IHRyZW4g dGluaCB0aGFuIHR1IG5ndXllbiwgbmhhIA0KdHJ1b25nIGNoaSB0aHUgaG8iLiBCYSBIYW5oIGNo byByYW5nLCB0cnVvbmcgY28gMzAgbG9wIHRoaSBkdW9jIHBoYW4gbW90IGdpYW8gdmllbiANCihH VikgdGhlIGR1YyB2YSBtb3QgR1YgdmUuICJRdXkgZGluaCBjdWEgbmdhbmggbW9pIEdWIGRheSAy MCB0aWV0L3R1YW4sIGNvbiBIUyBwaGFpIA0KaG9jIDIgdGlldC90dWFuLiBOaHUgdmF5IHBoYWkg Y2FuIGRlbiAzIEdWIG1vaSBtb24uIDY1JSB0aWVuIHRodSBiYW4gdHJ1IHBoaSBjaGkgZHUgdHJh IA0KbHVvbmcgY2hvIGJhbyBtYXUgdHUgNTAwIC0gNjAwIG5nYW4gZG9uZy90aGFuZywgdm9pIG11 YyBsdW9uZyBkbywgYWkgY2hpdSBsYW0/IE1vaSANCnRoYW5nIHRydW9uZyB0b24gaXQgbmhhdCA2 IHRyaWV1IGRvbmcgdGllbiBkaWVuIHRyb25nIGtoaSBraW5oIHBoaSBjaGkgdHJhIGRpZW4gbnVv YyBjdW5nIA0KcGhhaSB0cmljaCB0dSBuZ3VvbiBob2MgcGhpIiwgYmEgSGFuaCBub2kuIA0KDQpD aGkgVHJhbmcsIGNvIGNvbiBob2MgbG9wIDIgdGFpIHRydW9uZyBUSCBIbyBUaGkgS3ksIFEuMTAs IGJ1YyB4dWM6ICJUYXQgY2EgY2FjIGtob2FuIA0KdGllbiBuaHUgaG8gdHJvIGJhbyBtYXUsIHZl IHNpbmggcGhpLCBiYW4gdHJ1IHBoaS4uLiBjaHVuZyB0b2kgZGV1IGRvbmcgZGF5IGR1LCBuZ29h aSByYSANCm1vaSB0aGFuZyBjb24gZG9uZyB0aGVtIDMwLjAwMCBkb25nIHRpZW4gaG9pIGNoYSBt ZSBIUyBuaHVuZyBtb2kgbmdheSBjb24gY2h1bmcgdG9pIA0KcGhhaSBuaGluIHRpZXUgdGllbiBk byBuaGEgdmUgc2luaCBxdWEgZG8gbWEga2hvbmcgY28gbmd1b2kgZG9uIGRlcC4gRGkgaG9jIHBo YWkgbWFuZyANCnRoZW8gbnVvYyB1b25nIGRvIG51b2MgbyB0cnVvbmcga2hvbmcgZHUuIEtob25n IGhpZXUgY2FjIGtob2FuIHRodSBkbyBuaGEgdHJ1b25nIGNoaSANCnRpZXUgdmFvIHZhbiBkZSBn aT8iLiANCg0KVGhlbyBnaGkgbmhhbiBjdWEgUFYsIGhhdSBoZXQgY2FjIHRydW9uZyBUSCB0YWkg VFAuSENNIGRldSB0aHUgdGhlbSB0aWVuIGhvYyB2aSB0aW5oIA0KbmdvYWkgaG9jIHBoaSBob2Mg MiBidW9pIHRoZW8gcXV5IGRpbmguIFR1eSBuaGllbiwgbW9pIHRydW9uZyB0aHUgbXVjIGtoYWMg bmhhdSB2YSBuYW0gdHJvbmcgbmh1bmcga2hvYW4ga2hhYyBuaGF1LiANCg0KaHR0cDovL3ZuZXhw cmVzcy5uZXQvR0wvRG9pLXNvbmcvMjAxMC8wOS8zQkEyMERDQi8gMjcvOS8yMDEwLCAxMDo0MCBH TVQrNw0KDQpUaHUgdHVvbmc6IEJlIGxvcCA0IGdheSB4dW9uZyB2YWkgdmkgZGVvIGNhcCBuYW5n IA0KDQpDYW4gY3UgdmFvIHRvbiB0aHVvbmcgY3VuZyB0aW5oIHRyYW5nIGNvdCBzb25nIGJpIHZl byB2YSBndSBsdW5nLCBiYWMgc2kgY2hvIHJhbmcgdmllYyBiZSANCnBoYWkgdmFjIGNhcCBuYW5n IGRpIGJvIG1vaSBuZ2F5IHZhIGtlbyBkYWkgdHJvbmcgbmhpZXUgbmFtIGNoaW5oIGxhIG5ndXll biBuaGFuIGdheSB4dW9uZyB2YWkuDQoNClkga2llbiBiYW4gZG9jICg2NikgDQpDaHVvbmcgdHJp bmggZ2lhbyBkdWMNCkhvYyBzaW5oIGN1YSB0b2kgbmdheSBuYW8gY3VuZyBtYW5nIHRyZW4gdmFp IGl0IG5oYXQgNSBrZyBzYWNoIHZvLiBDYW5nIG5nYXkgYm8gZ2lhbyANCmR1YyBjYW5nIGJhdCBt YW5nIG5oaWV1IHNhY2guIEhvIGluIGNhIG5odW5nIHF1eWVuIHZvIGJhaSB0YXAgZGUgaG9jIHNp bmgga2hvbmcgcGhhaSANCmNoZXAgZGUsIG5odW5nIHZhbiBiYXQgaG9jIHNpbmggcGhhaSBtYW5n IGNhIHZvIGRlIGdoaSBjaGVwLiAgDQooSG9hbmcgSGFuaCkgDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxMzIzNTY0OC5hc3B4IEJUaCBQLkwg MTMvMDkvMjAxMCAyMzo1NiANCg0KVGh1IHR1b25nOiBEdW5nIG1haSAidGhpIGRpZW0iIHRyZW4g aG9jIHRybyEgDQoNCjEyIG5hbSB2YW4gY29uICJ0aGkgZGllbSIgLSBOaGlldSBjaHVvbmcgdHJp bmggdGhpIGRpZW0gdHJvbmcgbW90IHRydW9uZyENCg0KQmF0IGRhdSB0dSBuYW0gaG9jIG5heSwg Y28gNSB0cnVvbmcgdGFpIFRQLkhDTSB0aGFtIGdpYSBkYXkgdGhpIGRpZW0gY2h1b25nIHRyaW5o IA0KcXVvYyB0ZSBjdWEgREggQ2FtYnJpZGdlICh2aWV0IHRhdCBDVCBDYW1icmlkZ2UpIGJhbyBn b20gdHJ1b25nIFRpZXUgaG9jIChUSCkgDQpOZ3V5ZW4gQmluaCBLaGllbSwgVEggTGUgTmdvYyBI YW4sIFRIIFRyYW4gSHVuZyBEYW8sIFRIQ1MgTmd1eWVuIER1IChRLjEpIHZhIA0KVEhDUyBMZSBR dXkgRG9uIChRLjMpLiBOaHUgdmF5IG8gY2FjIHRydW9uZyBuYXkgZGFuZyB0b24gdGFpIDMgQ1Qg Z2lhbmcgZGF5IHRpZW5nIA0KQW5oOiB0aWVuZyBBbmggcGhvIHRob25nIChiYWMgVEhDUykgaG9h YyB0aWVuZyBBbmggdHUgY2hvbiAoYmFjIFRIKSwgdGFuZyBjdW9uZyANCnRpZW5nIEFuaCAoVENU QSkgdmEgQ1QgQ2FtYnJpZGdlIHRyb25nIGRvIDIgQ1Qgc2F1IGRldSBsYSB0aGkgZGllbS4gRG8g bGEgY2h1YSBrZSANCm5hbSBob2MgbmF5LCB0dSBkdSBraWVuIHRpZW4gaGFuaCBkYWkgdHJhLCBC byBHRC1EVCBjaGkgdHJpZW4ga2hhaSBDVCB0aGkgZGllbSBkYXkgDQpuZ29haSBuZ3UgY2hvIEhT IGxvcCAzIHRhaSAxMDAgdHJ1b25nIFRIIG8gaG9uIDIwIHRpbmgsIHRoYW5oLiANCg0KMTIgbmFt IHZhbiBjb24gInRoaSBkaWVtIg0KDQpDVCBUQ1RBIGR1b2MgYmF0IGRhdSB0aGkgZGllbSB0dSBu YW0gaG9jIDE5OTgtMTk5OSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVuZyBEYW8gDQooUS4xKSB2b2kg Y2h1YSB0b2kgMTAwIEhTLiBTYW5nIG5hbSBob2MgdGh1IDIsIENUIHRpZXAgdHVjIGR1b2MgbW8g cm9uZyB0YWkgY2FjIHRydW9uZyANClRIIExlIE5nb2MgSGFuIChRLjEpLCBUSCBEaW5oIFRpZW4g SG9hbmcgKFEuMSksIFRIIE5ndXllbiBUaGFpIFNvbiAoUS4zKS4gRGVuIA0KbmF5LCBDVCBkYSB0 aGkgZGllbSBkdW9jIDEyIG5hbSB2YSBjbyAxNzIgdHJ1b25nIFRIIHZvaSBraG9hbmcgNDcuNTAw IEhTIHRoYW0gZ2lhLiANCk9uZyBOZ3V5ZW4gSG9haSBDaHVvbmcgLSBQaG8gZ2lhbSBkb2MgU28g R0QtRFQgVFAuSENNLCBjaG8gYmlldDogIlRyb25nIHRob2kgDQpkaWVtIGhpZW4gbmF5LCBDVCBj aHVhIHRoZSB0aHVjIGhpZW4gZGFpIHRyYSBkbyBjb24gbmh1bmcga2hvIGtoYW4gdmUgY28gc28g dmF0IGNoYXQsIA0KZG9pIG5ndSBnaWFvIHZpZW4uLi4gVHV5IG5oaWVuIFNvIGx1b24gZ2lhbyBx dXllbiBjaHUgZG9uZyBjaG8gY2FjIHRydW9uZyBUSCwgbmV1IA0KdHJ1b25nIG5hbyB0aGF5IGNv IGR1IGRpZXUga2llbiB0aGkgZGFuZyBreSB0aGFtIGdpYS4gTmFtIGhvYyBuYXksIHF1YSBwaGFu IGFuaCwgQ1QgY28gDQp0aGF5IGRvaSBkZSBnaWFtIGJvdCBhcCBsdWMgY2hvIHBodSBodXluaCBj dW5nIG5odSBIUywgZG8gbGEgY2FjIHRydW9uZyBraG9uZyB0aHVjIA0KaGllbiBraGFvIHNhdCBr aGEgbmFuZyBob2MgbmdvYWkgbmd1LiBDYWMgdHJ1b25nIFRIIHNlIHRvIGNodWMgY2hvIHBodSBo dXluaCBIUyBkYW5nIA0Ka3kgdGhhbSBnaWEgdmEgY2h1b25nIHRyaW5oIGJhdCBkYXUgdGh1YyBo aWVuIHR1IGhvYyBreSAyIi4gTmh1IHZheSBDVCBuYXkgZGEgZGllbiByYSANCjEyIG5hbSBuaHVu ZyBjaHVhIGJpZXQgYmFvIGdpbyBtb2kgY2hhbSBkdXQgZ2lhaSBkb2FuIHRoaSBkaWVtLiANCg0K VHJvbmcga2hpIGRvLCBuYW0gaG9jIG1vaSBuYXksIG5oaWV1IEhTIGxhaSBidW9jIHZhbyBjYWMg Q1QgdGhpIGRpZW0ga2hhYyB2b2kgbmh1bmcgDQp0aWV1IGNoaSB2YSBtdWMgZGljaCBraGFjIG5o YXUuDQoNCkRpZW4gaGluaCBsYSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVuZyBEYW8gKFEuMSkgaGll biBjbyAzOSBsb3AsIHRyb25nIGRvIGNvIDI0IGxvcCBUQSANCnR1IGNob24sIDEyIGxvcCBUQ1RB IHZhIDMgbG9wIENUIENhbWJyaWRnZS4gSG9jIHBoaSBjYWMgbG9wIG5heSBraGFjIG5oYXUgcm8g cmV0OiANCkxvcCBUQSB0dSBjaG9uIG1vaSB0aGFuZyBkb25nIDMwLjAwMCBkb25nLCBtb2kgdHVh biBob2MgMiB0aWV0OyBsb3AgVENUQSBkb25nIA0KMTEwLjAwMCBkb25nL3RoYW5nIChjbyBnaWFv IHZpZW4gbnVvYyBuZ29haSksIHR1YW4gaG9jIDggdGlldDsgdHJvbmcga2hpIGxvcCBDVCANCkNh bWJyaWRnZSBsYSAxNTAgVVNEL3RoYW5nLCB0dWFuIGhvYyA2IHRpZXQgdm9pIGdpYW8gdmllbiBu Z3VvaSBudW9jIG5nb2FpIGRvIERIIA0KQ2FtYnJpZGdlIGNoaSBkaW5oLiBDdW5nIHZvaSBzdSBj aGVuaCBsZWNoIGhvYyBwaGksIHNpIHNvIG8gY2FjIGxvcCBuYXkgY3VuZyBraGFjIG5oYXUgDQpk YW5nIGtlLiBMb3AgVEEgdHUgY2hvbiBzaSBzbyB0dSA0NSBIUyB0cm8gbGVuLCBUQ1RBIGxhIDM1 IC0gNDAgSFMsIGNvbiBsb3AgQ1QgDQpDYW1icmlkZ2UgY2hpIDI3LTI4IEhTL2xvcC4gDQoNCkhT IGNvIGNhbSBnaWFjIGJpIGRvaSB4dSBraG9uZyBjb25nIGJhbmcgDQoNCiJNdW9uIGFwIGR1bmcg bW90IG1vIGhpbmggbW9pIHBoYWkgdG8gY2h1YyB0aGkgZGllbSBuaHVuZyBwaGFpIGNvIHRob2kg aGFuIGRlIA0KY2h1eWVuIHNhbmcgbW90IGdpYWkgZG9hbiBtb2kgY2h1IGtob25nIHRoZSB0aGkg ZGllbSBoYW5nIGNodWMgbmFtIHRyb2kuIFZpZWMgbmF5IGFuaCANCmh1b25nIHJhdCBsb24gZGVu IHRhbSBseSBjdWEgY2EgSFMgdmEgZ2lhbyB2aWVuLiBEb2kgdm9pIGdpYW8gdmllbiwgZGkgZGF5 IG1hIGtob25nIGJpZXQgDQpzYW5nIG5hbSBjbyB0aWVwIHR1YyBkYXkgbW9uIG5heSBraG9uZywg a2hpIGRvLCB0YW0gbHkga2hvbmcgYW4gdGFtIHNlIGRhbiBkZW4ga2hvbmcgDQpjaHUgdGFtIGRh dSB0dSBnaWFvIGFuIGxhdSBkYWksIGtob25nIHRvYW4gdGFtIHRvYW4geSBjaG8gY29uZyB2aWVj IGhpZW4gdGFpLiBEb2kgdm9pIEhTIA0KY3VuZyB2YXksIG5hbSBuYXkgZHVvYyBob2Mgbmh1bmcg Y2h1YSBiaWV0IHNhbmcgbmFtIGNvIHRpZXAgdHVjIGhvYyBudWEga2hvbmcuIEhvbiANCm51YSwg Y2FjIG1vbiBob2MgdGhpIGRpZW0gdGh1b25nIGtob25nIGR1b2MgdGluaCB0cm9uZyBkaWVtIGNo aW5oIGtob2EgbmVuIEhTIA0KdGh1b25nIGl0IGNodSB0YW0gZGF1IHR1LiBDaHUga3kgdGhpIGRp ZW0gY2hvIDEgQ1QgaG9jIHRodW9uZyBsYSAzIG5hbSwgc2F1IGRvIHBoYWkgY28gDQp0b25nIGtl dCwgZGFuaCBnaWEuIE5ldSBjaHVhIGhvYW4gdGhpZW4gc2UgZGUgcmEgbmh1bmcgZGlldSBjaGlu aCB2YSB0aWVwIHR1YyB0aHVjIGhpZW4gDQp0aGkgZGllbSB0aGVtIDEgbmFtIG51YSwgdHV5IG5o aWVuIGtob25nIHRoZSBrZW8gZGFpIHF1YSA1IG5hbS4gDQoNClZpZWMgdG9uIHRhaSBjdW5nIGx1 YyAzIGNodW9uZyB0cmluaCB0cm9uZyBjdW5nIDEgdHJ1b25nIGhvYyB2b2kgc3Uga2hhYyBiaWV0 IHZlIGhvYyBwaGksIA0Kc2kgc28gbG9wLCBDVCBob2MgdmUgbWF0IHRhbSBseSBnaWFvIGR1YyBz ZSBnYXkgYW5oIGh1b25nIGxvbiBkZW4gc3UgcGhhdCB0cmllbiB0YW0gbHkgDQpjdWEgSFMsIG5o YXQgbGEgbyBsdWEgdHVvaSB0aWV1IGhvYy4gQ2FjIGVtIHNlIGNvIGNhbSBnaWFjLCBjbyBzdXkg bmdoaSBoaW5oIG5odSBtaW5oIA0KZGFuZyBiaSBkb2kgeHUga2hvbmcgY29uZyBiYW5nIHZvaSBj YWMgYmFuIGtoYWMuIiAtIFRoYWMgc2kgQnVpIFRoaSBUb2FuLCBUcnVvbmcgYm8gDQptb24gVGFt IGx5IGhvYyB0cnVvbmcgREggU2FpIEdvbiBiYXkgdG8uIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDYvMjAxMDExMTIwMTUwNDcuYXNweCBUdWUgTmd1eWVu ICh0aHVjIGhpZW4pIDEyLzExLzIwMTAgMTo1MCANCg0KQ2hpbmggcGh1OiBCYXQgbmhhbyBjaHVv bmcgdHJpbmggbGllbiBrZXQgLSBUcmFjaCBuaGllbSBjaGluaCB0aHVvYyB2ZSBCbyBHRC1EVCAg DQogIA0KR1MgRGFvIFRyb25nIFRoaSAoYW5oKSwgQ2h1IG5oaWVtIFV5IGJhbiBWYW4gaG9hIC0g R2lhbyBkdWMgLSBUaGFuaCBuaWVuIC0gVGhpZXUgDQpuaWVuIC0gTmhpIGRvbmcgY3VhIFF1b2Mg aG9pIGRhIHRyYSBsb2kgcGhvbmcgdmFuIGN1YSBUaGFuaCBOaWVuIHh1bmcgcXVhbmggdGluaCB0 cmFuZyANCmxvbiB4b24gdHJvbmcgbGllbiBrZXQgZGFvIHRhbyBnaXVhIGNhYyB0cnVvbmcgdHJv bmcgbnVvYyB2b2kgY2FjIGNvIHNvIGdpYW8gZHVjIG51b2MgDQpuZ29haS4gDQoNCk9uZyBub2k6 ICJUb2kgbmhhbiBtYW5oIHJhbmcgbGllbiBrZXQgZGFvIHRhbyBxdW9jIHRlIHRob2kgZ2lhbiBx dWEgY28ga2hpZW0ga2h1eWV0LCANCmNvIGhpZW4gdHVvbmcgdGlldSBjdWMgbmh1bmcgZGF5IGxh IGhpbmggdGh1YyBkYW8gdGFvIHJhdCBxdWFuIHRyb25nIHZhIGNhbiB0aGlldCBkZSBnaWFvIGR1 YyANClZOIGhvYSBuaGFwIHZvaSBnaWFvIGR1YyBxdW9jIHRlLiBDaGluaCB2aSBxdWFuIHRyb25n IG5odSB2YXkgbmVuIGNhbmcgcGhhaSBjbyBiaWVuIA0KcGhhcCBxdWFuIGx5IGNobyB0b3QsIG5l dSBraG9uZyBzZSBsYW0gYW5oIGh1b25nIHRvaSBjYWMgY2h1b25nIHRyaW5oIGxpZW4ga2V0IGNv IGNoYXQgDQpsdW9uZyIuDQoNCihBbmg6IEdTIERhbyBUcm9uZyBUaGkgQW5oOiBOZ29jIFRoYW5n KQ0KDQoqIFRoZW8gb25nLCB0aW5oIHRyYW5nIGJhdCBuaGFvIHRyb25nIGxpZW4ga2V0IGRhbyB0 YW8gdm9pIGNhYyBjbyBzbyBnaWFvIGR1YyBudW9jIG5nb2FpIGxhIGRvIGRhdT8NCg0KTW90IHNv IGNodW9uZyB0cmluaCBraG9uZyBjbyBwaGVwIHRoaSBraG9uZyBub2kgbGFtIGdpIHZpIGRvIGxh IHZpIHBoYW0gcGhhcCBsdWF0IHJvaSwgDQpjYW4gcGhhaSB4dSBseSBraWVuIHF1eWV0LiBEbyBs YSBuaHVuZyB0cnVvbmcgaG9wIGxhbSBkdW5nIGhpbmggdGh1YyBsaWVuIGtldCBkYW8gdGFvIGRl IA0KY28gaGFuaCB2aSBsdWEgZGFvIG5ndW9pIGhvYy4gVHV5IG5oaWVuLCBjbyBuaHVuZyBjaHVv bmcgdHJpbmgga2hvbmcgZGFtIGJhbyB1eSB0aW4sIA0KY2hhdCBsdW9uZyBtYSB2YW4gZHVvYyBj YXAgcGhlcCB0aGkgcm8gcmFuZyB2aWVjIHRoYW0gZGluaCBjYXAgcGhlcCBsYSBraG9uZyBuZ2hp ZW0gDQp0dWMsIHRyb25nIGRvIHRyYWNoIG5oaWVtIGNodSB5ZXUgbGEgY3VhIEJvIEdELURULg0K DQoqIFZheSB0aGVvIG9uZywgdHJhY2ggbmhpZW0gY3UgdGhlIGN1YSBjbyBxdWFuIHF1YW4gbHkg dmUgdmFuIGRlIG5heSByYSBzYW8/DQoNCkRheSBsYSBsaW5oIHZ1YyBkYWMgYmlldCBuZW4gY2Fu IHN1IHF1YW4gdGFtLCBxdWFuIGx5IGRhYyBiaWV0LiBDaGluaCBuaHVuZyBjbyBxdWFuIA0Ka2ll bSBkaW5oLCBjbyBxdWFuIGNodXllbiBtb24gdHJvbmcgbnVvYyBjbyB0cmFjaCBuaGllbSBwaGFp IGdpdXAgbmd1b2kgZGFuIGhpZXUgZHVvYyANCmNoYXQgbHVvbmcgdGh1YyBzdSBjdWEgbmh1bmcg Y2h1b25nIHRyaW5oIG5odSB2YXkgdmEgeGVtIG5vIGNvIHR1b25nIHh1bmcgdm9pIGNoaSBwaGkg DQptYSBobyBwaGFpIGRvbmcgZ29wIGhheSBraG9uZz8gVHJ1b2MgZGF5IHRvaSBsYW0gdmllYyBv IERIIFF1b2MgZ2lhIEhhIE5vaSwgYmFvIGdpbyANCmN1bmcgeWV1IGNhdSBjaHVvbmcgdHJpbmgg Y3VhIHRydW9uZyBkb2kgdGFjIHBoYWkgbmFtIHRyb25nIGRhbmggc2FjaCBuaHVuZyBjaHVvbmcg DQp0cmluaCBkYSBkdW9jIGtpZW0gZGluaCBib2kgY2FjIHRvIGNodWMgY28gdXkgdGluIHRyZW4g dGhlIGdpb2kuIFZpZWMgY2FwIHBoZXAgY2hvIGNhYyANCmNodW9uZyB0cmluaCBsaWVuIGtldCBk YW8gdGFvIGxhIG1vdCBuaGllbSB2dSByYXQgcXVhbiB0cm9uZywgdHJhY2ggbmhpZW0gdHJ1b2Mg aGV0IGxhIGN1YSANCkJvIEdELURULCBjdWEgbmh1bmcgY28gcXVhbiBkdW9jIGdpYW8gdGhhbSBx dXllbiBjYXAgcGhlcCB0cnVvYyBuaGFuIGRhbi4NCg0KKiBUaHVhIG9uZywgY28gbmh1bmcgY28g c28gZGFvIHRhbyAiY2h1aSIgZGVuIDgtOSBuYW0gbmh1bmcgY28gcXVhbiBxdWFuIGx5IGtob25n IGhlIA0KY28gZG9uZyB0YWMgeHUgbHkgZ2ksIGNoaSBraGkgZHUgbHVhbiBsZW4gYW4gbW9pIGxl biB0aWVuZyByYW5nICJjaHVvbmcgdHJpbmggZG8gY2h1YSBkdW9jIA0KY2FwIHBoZXAiLiBDbyBx dWFuIHF1YW4gbHkgdGh1YyBzdSBkYSBraG9uZyBiaWV0ICh0cnVvYyBraGkgZHUgbHVhbiBwaGF0 IGhpZW4pIGhheSBjbyBseSBkbyBuYW8ga2hhYz8NCg0KVGhlbyB0b2ksIGxlIHJhIEJvIEdELURU IHBoYWkgeHUgbHkgdHJ1b2Mga2hpIG5ndW9pIGhvYyBsZW4gdGllbmcuIEJvIEdELURUIHBoYWkg Y28gDQp0cmFjaCBuaGllbSBuZ2hpZW4gY3V1LCB0aW0gaGlldSB2YSBjb25nIGtoYWkgdGF0IGNh IG5odW5nIHRob25nIHRpbiBsaWVuIHF1YW4gZGVuIGNhYyANCmNodW9uZyB0cmluaCBkYW8gdGFv IGxpZW4ga2V0IGRlIG5ndW9pIGhvYyBiaWV0IHZhIGNvIHRyYWNoIG5oaWVtIG5nYW4gY2hhbiwg eHUgbHkgbmh1bmcgc2FpIHBoYW0uDQoNCiogVHJvbmcgdmFuIGRlIHRodSBjaGksIGxhbSBzYW8g bmd1b2kgaG9jIGNvIHRoZSBraWVtIHNvYXQgZHVvYyBsYSBtdWMgZG9uZyBnb3AgY3VhIGhvIA0K ZGEgeHVuZyBkYW5nIHZvaSBjaGF0IGx1b25nIGRhbyB0YW8gbWEgaG8gbmhhbiBkdW9jLCB0aHVh IG9uZz8NCg0KVGF0IG5oaWVuIGtoaSBkYSBob2F0IGRvbmcgY28gdGh1IGNoaSB0aGkgcGhhaSBj byBuZ3V5ZW4gdGFjIHZlIHF1YW4gbHkgdGFpIGNoaW5oIHZhIHRodSANCnRoZSBuYW8sIGNoaSBy YSBzYW8gcGhhaSBkdW9jIGNvbmcga2hhaSB0cnVvYyBraGkgdHV5ZW4gc2luaC4gSGllbiBuYXks IGNodWEgY28ga2h1bmcgaG9jIA0KcGhpIGRvaSB2b2kgdmFuIGRlIGxpZW4ga2V0IGRhbyB0YW8s IGtoaSB0aHVjIGhpZW4gY2h1b25nIHRyaW5oIGN1YSBudW9jIG5nb2FpIHRoaSBjaHVuZyANCnRh IGNoaSBxdWFuIGx5IGxhbSBzYW8gY2hvIG5vIGhvYXQgZG9uZyBuZ2hpZW0gdHVjLCBraG9uZyBs dWEgZGFvLCBraG9uZyBsYW0gaGFpIGRlbiBuZ3VvaSBkYW4uDQoNCktpZW0gdHJhIGhvYXQgZG9u ZyBsaWVuIGtldCBkYW8gdGFvDQoNCk5nYXkgMTEuMTEsIEJvIEdELURUIGRhIGJhbiBoYW5oIGh1 b25nIGRhbiB0aHVjIGhpZW4gbmhpZW0gdnUgdGhhbmggdHJhIG5hbSBob2MgDQoyMDEwLTIwMTEg ZG9pIHZvaSBjYWMgdHJ1b25nIERILCBDRCwgVENDTi4gVGhlbyBkbywgdHJvbmcgdGFtIG5hbSBo b2MgbmF5IGxhIHRoYW5oIA0KdHJhLCBraWVtIHRyYSB2aWVjIHRodWMgaGllbiBjYW0ga2V0IHRy b25nIGRlIGFuIHRoYW5oIGxhcCB0cnVvbmcgdmUgY28gc28gdmF0IGNoYXQsIGRvaSANCm5ndSBu aGEgZ2lhbywgY2h1b25nIHRyaW5oLCBnaWFvIHRyaW5oIG5oYW0gYmFvIGRhbSB2YSB0dW5nIGJ1 b2MgbmFuZyBjYW8gY2hhdCBsdW9uZyANCmRhbyB0YW8uIERheSBtYW5oIHRoYW5oIHRyYSwga2ll bSB0cmEgaG9hdCBkb25nIGxpZW4ga2V0IGRhbyB0YW87IGNhYyBjaHVvbmcgdHJpbmggZGFvIA0K dGFvIHRoZW8gaGluaCB0aHVjIHZ1YSBsYW0gdnVhIGhvYywgdHUgeGEsIHRyaW5oIGRvIHRoYWMg c2ksIHRpZW4gc2kuIChWdSBUaG8pIA0KDQoqIFR1eSBuaGllbiwgdGh1YyB0ZSBjaG8gdGhheSwg Y2h1bmcgdGEgdmFuIGRhbmcgdGhpZXUgbW90IGhhbmggbGFuZyBwaGFwIGx5IGRheSBkdSB2YSAN CmNoYXQgY2hlIG5lbiBtb2kgeGF5IHJhIGhpZW4gdHVvbmcgY2FjIHRydW9uZyBESCBuZ2FuZyBu aGllbiBkYW8gdGFvIHRyYWkgcGhlcCwga2hvbmcgDQpkYW0gYmFvIHZlIGNoYXQgbHVvbmcgY3Vu ZyBuaHUgZ2lhIHRyaSBjdWEgdmFuIGJhbmc/DQoNClRodWMgcmEga2hpIHN1YSBkb2ksIGJvIHN1 bmcgbW90IHNvIGRpZXUgY3VhIEx1YXQgR2lhbyBkdWMgdnVhIHF1YSBjaHVuZyB0b2kgY3VuZyBk YSANCnlldSBjYXUgQm8gR0QtRFQgcGhhaSB0YW5nIGN1b25nIG5odW5nIGRpZXUga2hvYW4gbGll biBxdWFuIGRlbiB2aWVjIGhvcCB0YWMgcXVvYyB0ZSANCnRyb25nIGdpYW8gZHVjLiBOaHVuZyB0 aHVjIHJhIGN1bmcgbW9pIGNoaSBibyBzdW5nIGR1b2MgbW90IHNvIGRpZXUgbWFuZyB0aW5oIG5n dXllbiANCnRhYyB2aSBjaHVuZyB0YSBjaHVhIGR1IGtpbmggbmdoaWVtIHRodWMgdGUsIGNodWEg Y28gc3UgY2h1YW4gYmkgZGF5IGR1IG5lbiBCbyBHRC1EVCANCmN1bmcgY2h1YSBkdWEgcmEgZHVv YyBuaHVuZyBxdXkgZGluaCBjaGF0IGNoZSB2ZSB2YW4gZGUgbmF5Lg0KDQpDaGluaCBib2kgdmF5 IHRvaSBjaG8gcmFuZyB0cm9uZyBMdWF0IEdpYW8gZHVjIERIIGRhbmcgeGF5IGR1bmcgdGhpIGNv IHF1YW4gc29hbiB0aGFvIA0KcGhhaSBkYXQgcmEgbmh1bmcgcXV5IGRpbmggcm8gcmFuZywgY3Ug dGhlIHRyb25nIHZpZWMgdGh1YyBoaWVuIGNhYyBjaHVvbmcgdHJpbmggbGllbiBrZXQgDQptYW5n IHRpbmggY2hhdCBxdW9jIHRlIG8gVk4gIHZlIGxpbmggdnVjIGdpYW8gZHVjIERILiBUcm9uZyBk bywgcGhhaSBuZXUgcm8gbmh1bmcgZGlldSANCmtpZW4gbmFvIGNhbiB2YSBkdSwgbmh1bmcgdGll dSBjaGkgY3UgdGhlIGRlIGNvIHRoZSBjYXAgcGhlcCBjaG8gbW90IGNodW9uZyB0cmluaCBsaWVu IA0Ka2V0IGRhbyB0YW8uDQoNCkNhbSBvbiBvbmchIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vbmV3cy9QYWdlcy8yMDEwMzkvMjAxMDA5MjYwMDQwNTIuYXNweCBMTiBESCAyNi8wOS8y MDEwIDA6NDAgDQoNClRodSB0dW9uZzogQmFvIGx1YyB0cm9uZyBnaW9pIHRyZSwgZG8gZGF1PyAt IFRvaSBwaGFtIG5nYXkgY2FuZyB0cmUgaG9hIA0KICANCk5odW5nIGJpIGNhbyB0cmUgdHVvaSB4 dWF0IGhpZW4gbyB0b2EgbmdheSBjYW5nIG5oaWV1IC0gYW5oOiBRdWFuZyBIaWVuDQoNCktob25n IGR1b2MgZ2lhbyBkdWMsIGh1YW4gbHV5ZW4sIGhvYWMga2hvbmcgaG9jIGNhY2ggZ2lhaSBxdXll dCBtYXUgdGh1YW4sIHRoaWV1IGtpZW0gDQpjaGUgYmFuIHRoYW4sIG5vbmcgbmF5LCBoYW5oIGRv bmcgYm9uZyBib3QgbXVvbiBjaHVuZyB0byBiYW4gdGhhbi4uLiBsYSBuaHVuZyBuZ3V5ZW4gDQpu aGFuIGRhbiBkZW4gaGFuaCB2aSBiYW8gbHVjIHRyb25nIGdpb2kgdHJlLiANCg0KaHR0cDovL3d3 dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNi0yMS1naWFvLWR1Yy10aWVwLXR1Yy1jaHV5ZW4tYmll bi10aGVvLWNoaWV1LWh1b25nLXRpZXUtY3VjLWlpLSBOZ3V5ZW4gVmFuIFR1YW4gdmEgTmd1eWVu IERpbmggTmd1eWVuIDIzLzA2LzIwMTAgMDY6MDAgR01UKzcNCg0KVGh1IHR1b25nOiBHaWFvIGR1 YyB0aWVwIHR1YyBjaHV5ZW4gYmllbiB0aGVvIGNoaWV1IGh1b25nLi4uIHRpZXUgY3VjIA0KDQpN b3QgdHJvbmcgbmh1bmcgdHUgZHV5IGNhbiB4b2EgYm8gbmdheSBsYSB0dSBkdXkgYmVuaCB0aGFu aCB0aWNoLCBiYXQga2UgdHUgZHV5IG5heSB4dWF0IHBoYXQgdHUgYXAgbHVjIGNoaW5oIHRyaSBo YXkgbWFjIGNhbSBkaWEgcGh1b25nLiANCg0KTGFtIHNhbyBjaHVuZyB0YSBjbyB0aGUgdGluIHR1 b25nIHJhbmcgY28gdHJ1b25nIGNoaSBtYXkgbmFtIHRydW9jIGRheSBjbyB0aSBsZSB0b3Qgbmdo aWVwIDAlLCBtYSBuYXkgdGhpIHRhbmcgbGVuIDkwJT8gTmV1IGRvIGtob25nIHBoYWkgbGEgdHJp ZXUgY2h1bmcgY3VhIGJlbmggdGhhbmggDQp0aWNoLCB0aGkgcmF0IGtobyBnaWFpIHRoaWNoIGJh bmcgbW90IGxpIGdpYWkga2hhYyBsb2dpYyBob24hDQoNCkRvIGRvLCB0cmFpIGxhaSB2b2kgY2Fj aCBkaWVuIGdpYWkgY3VhIFBobyBUVCwgY3V1IEJvIHRydW9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiBy YW5nIA0KIkNoYXQgbHVvbmcgIGhvYyBzaW5oIHRvdCBuZ2hpZXAgcGhvIHRob25nIHRhbmciLCBj aHVuZyB0b2kgbmdoaSByYW5nIG5odW5nIGJpZW4gY2h1eWVuIA0KdmUgY29uIHNvIHRpIGxlIHRv dCBuZ2hpZXAga2hvbmcgcGhhbiBhbmggY2hhdCBsdW9uZyBnaWFvIGR1YyB0YW5nLCBtYSBjaGkg cGhhbiBhbmggYmVuaCANCnRoYW5oIHRpY2ggZGFuZyB0YW5nLg0KDQpOYW0gMjAwNiwgdGkgbGUg dG90IG5naGllcCBUSFBUIG8gU29uIExhIGxhIDkxJSwgbmh1bmcgZ2lhbSB4dW9uZyBjaGkgY29u IDM5JSB0cm9uZyANCm5hbSAyMDA3LCB0YW5nIGxlbiA1NSUgdmFvIG5hbSAyMDA4LCByb2kgbGFp IGdpYW0geHVvbmcgY29uIDI0JSB0cm9uZyBuYW0gMjAwOSwgdmEgDQpuYXkgdGhpIHRhbmcgbGVu IDg5JS4gVGhhdCBraG8gY28gdGhlIHR1b25nIHR1b25nIHJhIG1vdCB5ZXUgdG8gbmFvIGtoYWMg Z2F5IHJhIG1vdCBzdSANCmJpZW4gY2h1eWVuIGJhdCB0aHVvbmcgbmh1IHRoZSwgbmV1IGtob25n IGRvIGJlbmggdGhhbmggdGljaCENCg0KTmd1b2MgbGFpIHZvaSBuaHVuZyBnaSBQaG8gVFQgTmd1 eWVuIFRoaWVuIE5oYW4gdmEgVGh1IHRydW9uZyBUcmFuIFF1YW5nIFF1eSANCm5oYW4geGV0IHZl IHRpbmggaGluaCBnaWFvIGR1YyB0aGVvIGNoaWV1IGh1b25nIHRpY2ggY3VjLCBjYWMga2V0IHF1 YSBwaGFuIHRpY2ggbmF5IGNobyANCnRoYXkgdGluaCBoaW5oIGdpYW8gZHVjIGRhbmcgdGllcCB0 dWMgYmllbiBjaHV5ZW4gdGhlbyBjaGlldSBodW9uZyB0aWV1IGN1Yy4gDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzNi8yMDEwMDkwMTAwNTA1OS5hc3B4IE5o b20gUFYgMDEvMDkvMjAxMCAwOjUxIA0KDQpUaHUgdHVvbmc6IE5naGV0IHRobyB0cm9uZyBsb3Ag aG9jICANCiAgDQpTaSBzbyB2dW90IGdhbiBnYXAgZG9pIHRoZW8gY2h1YW4gcXVvYyBnaWEsIG5o dW5nIG5odW5nIG5nb2kgdHJ1b25nIGNvIGNhYyBsb3AgaG9jIG5odSANCnZheSB2YW4gbGEgbmll bSBtb25nIHVvYyBjdWEgbmhpZXUgcGh1IGh1eW5oIGhvYyBzaW5oLiANCg0KQW5oIGNodXA6IEhv YyBzaW5oIG5nb2kgY2hlbiBjaHVjIHRyb25nIGxvcCBob2MgbyB0cnVvbmcgdGlldSBob2MgTmFt IFRoYW5oIENvbmcgDQooSGEgTm9pKSAtIEFuaDogQmljaCBOZ29jDQoNCk5nYXkgdHV1IHRydW9u Zywga2hpIHZ1YSBuaGFuIGxvcCwgbW90IGdpYW8gdmllbiAoR1YpIGNodSBuaGllbSBjdWEgdHJ1 b25nIFRpZXUgaG9jIA0KKFRIKSBMZSBWYW4gU3kgKFEuVGFuIEJpbmgsIFRQLkhDTSkgaG90IGhh aSBjaGF5IHZhbyBwaG9uZyBoaWV1IHRydW9uZyBub2k6ICJUaGF5IA0Kb2ksIGxvcCBlbSBjbyBk ZW4gNTcgaG9jIHNpbmggKEhTKSwgY28gbmhhbSBraG9uZyB0aGF5PyIuIA0KDQpDb24gY2hpIFQu TCwgcGh1IGh1eW5oIEhTIHRydW9uZyBUSCBMZSBOZ29jIEhhbiAoUS4xKSBjdW5nICJjaG9hbmci IGtoaSBuaGluIGRhbmggDQpzYWNoIGxvcCBjb24gbWluaCBjbyB0b25nIGNvbmcgNDkgSFMuLi4g DQoNCkNoaSBOZ29jLCBwaHUgaHV5bmggSFMgdHJ1b25nIFRIIEJhdSBTZW4gKFEuNSkgY2hvIGJp ZXQ6ICJDdSB0dW9uZyB0dW9uZyBjYW5oIDQ1IA0KZHVhIHRyZSBjaGVuIGNodWMgbmhhdSB0cm9u ZyAxIGxvcCBob2MgbWEgY2hpIGNvIDEgY28gZ2lhbyB2YSAxIGNvIGJhbyBtYXUgY2hhbSBzb2Mg Y2EgDQpuZ2F5IGxhIHRvaSB0aGF5IHNvIHF1YSBuaHVuZyBjaGFuZyBiaWV0IGxhbSBzYW8iLi4u DQoNCkRheSBraG9uZyBwaGFpIGNodXllbiBoaWVtIGdhcCBvIGNhYyB0cnVvbmcgVEggdGFpIFRQ LkhDTS4gT25nIFRhIFRhbiAtIFRydW9uZyANCnBob25nIEdEIFEuVGFuIFBodSwgY2hvIGJpZXQ6 ICJIaWVuIG5heSBxdWFuIGNvIDEgdHJ1b25nIFRIIGRhdCBjaHVhbiBxdW9jIGdpYSBjbyBzaSAN CnNvIHRoZW8gcXV5IGRpbmggbGEgMzUgSFMvbG9wLCBuaHVuZyB0cnVvbmcgY29uIGxhaSBiaW5o IHF1YW4gbGEgNDcuIFRyb25nIGRvIGNvIDIgDQp0cnVvbmcgcGhhaSBjaGl1IGFwIGx1YyBuYW5n IG5lIGxhIHRydW9uZyBUSCBMZSBMYWkgdmEgSHV5bmggVmFuIENoaW5oIi4gDQoNCk5hbSBuYXks IHRydW9uZyBUSCBMZSBMYWkgbmhhbiBob24gNjAwIEhTLCBzaSBzbyB0cnVuZyBiaW5oIG1vaSBs b3Aga2hvYW5nIDUzIC0gNTQuIA0KT25nIEh1eW5oIExvbmcsIEhpZXUgdHJ1b25nIG5oYSB0cnVv bmcgdGhvbmcgdGluOiAiQ28gbG9wIHNpIHNvIGxlbiBkZW4gNjAiLg0KRHVuZyBtaWNybyBnaWFu ZyBiYWkgbyBsb3AgMQ0KDQpUYWkgSGEgTm9pLCB0aW5oIHRyYW5nIG5heSBjb24gY2FuZyB0aGFu ZyBob24uIFRydW9uZyBUSCBLaW0gTGllbiAoUS5Eb25nIERhKSBsYSANCm1vdCB0cm9uZyBuaHVu ZyB0cnVvbmcgbWEgZGEgc28gcGh1IGh1eW5oIGRldSBtb25nIG11b24gY2hvIGNvbiB2YW8gbG9w IDEuIENoaW5oIHZpIA0KbHkgZG8gZG8sIG5hbSBuYW8gdHJ1b25nIG5heSBjdW5nIHJvaSB2YW8g dGluaCB0cmFuZyBxdWEgdGFpLCB0aHVvbmcgcGhhaSBjaGFwIG5oYW4gc2kgc28gDQp0b2kgaG9u IDYwIEhTL2xvcC4gVGhlbyBoaWV1IHRydW9uZyBuaGEgdHJ1b25nLCB0dSA0IG5hbSBuYXksIGNo aSB0aWV1IHR1eWVuIHNpbmggbG9wIDEgDQpjdWEgdHJ1b25nIGRldSB0YW5nLCB0aHVvbmcgbGEg NjAwIGhvYWMgNzAwIEhTLCB0cm9uZyBkbyB0eSBsZSBIUyB0cmFpIHR1eWVuIGx1b24gY2hpZW0g DQpraG9hbmcgNTAlLiBEYXkgbGEgbmd1eWVuIG5oYW4ga2hpZW4gc2kgc28gbG9wIGhvYyB0aHVv bmcgbGEga2hvYW5nIDY1IEhTLiBWaSB0aGUgdHUgDQp2YWkgbmFtIG5heSBuaGEgdHJ1b25nIHBo YWkgdHJhbmcgYmkgaGUgdGhvbmcgYW1wbGkgZGUgZ2lhbyB2aWVuIGdpYW5nIGJhaSBiYW5nIG1p Y3JvLiANCk1vdCBHViB0cnVvbmcgbmF5IHRhbSBzdTogIktoaSBjaHVhIHRyYW5nIGJpIG1pY3Jv IGRlIGdpYW5nIGJhaSwgc2F1IG1vdCBuZ2F5IGxlbiBsb3AgDQp0aGkgY2h1bmcgdG9pIGNhbSBn aWFjIG5odSBiaSBkdXQgaG9pLCB0aGFtIGNoaSB2ZSBuaGEga2hvbmcgZHUgc3VjIGRlIG5vaSBj aHV5ZW4gdm9pIA0KY2hvbmcsIGNvbiBudWEuLi4iLiANCg0KIkN1IHBoYWkgZXAgc2kgc28iDQoN Ck9uZyBCdWkgSHV1IFBodW9jLCBIaWV1IHRydW9uZyB0cnVvbmcgVEggTGUgVmFuIFN5IChRLlRh biBCaW5oKSBub2k6ICJBcCBsdWMgc2kgc28gDQpjb24gZG8gbmh1IGNhdSBob2MgYmFuIHRydSIu IE9uZyBUYSBUYW4sIFRydW9uZyBwaG9uZyBHRCBRLlRhbiBQaHUgdGhpIHRob25nIHRpbjogDQoi VHJ1b2MgZGF5IGNodW5nIHRhIGN1IG5naGkgbGEgY2FjIG5hbSBkZXAgdGhpIHNlIGdpYSB0YW5n IGRhbiBzbywga2VvIHRoZW8gc28gbHVvbmcgSFMgDQpuaGFwIGhvYyB0YW5nLiBUaHVjIHRlIGto b25nIHBoYWkgdmF5LCBtb2kgbmFtIHNvIEhTIGRldSB0YW5nIGJvaSBraG9uZyBjaGkgbGEgZGFu IHNvIA0KY28gaHV1IG1hIGNvbiBkbyBzbyBsdW9uZyBkYW4gbmhhcCBjdS4gVHJhY2ggbmhpZW0g Y3VhIHRydW9uZyBsYSBwaGFpIHRodSBuaGFuIGhldCBzbyANCmx1b25nIHRyZSB0cmVuIGRpYSBi YW4gbmVuIGN1IHBoYWkgZXAgc2kgc28uIERlIGdpYWkgcXV5ZXQgdGluaCB0cmFuZyBuYXkgY2hp IGNvIGNhY2ggZHV5IA0KbmhhdCBsYSBwaGFpIHhheSBkdW5nIG5oaWV1IHRydW9uZyBob24gbnVh Ii4gKEIuVCAtIFAuTCkgDQoNClRydW9uZyBUSCBOYW0gVGhhbmggQ29uZyAoUS5Eb25nIERhKSBj dW5nIGxhIGRpZW0gbm9uZywgbmFtIG5heSBzaSBzbyBjdW5nIGxlbiANCnRvaSBob24gNjAgSFMv bG9wLiBEb3QgdHV5ZW4gc2luaCB2dWEgcXVhLCBjaGkgcmllbmcgdHJlIGRpZW4gZHVuZyB0dXll biB2YW8gdHJ1b25nIGRhIA0KY28gdHJlbiA2MDAgSFMsIHRyb25nIGtoaSBkaWV1IGtpZW4gY28g c28gdmF0IGNoYXQgY3VhIHRydW9uZyBjaGkgZGFwIHVuZyBkdW9jIGtob2FuZyA1MDAgDQpIUy4N Cg0KTyBsdWEgdHVvaSBjYW4gZHVvYyByZW4gbHV5ZW4sIHVvbiBuYW4gdHUgY2FjaCBjYW0gYnV0 IGRlbiB0dSB0aGUgbmdvaSB0aGkgc2kgc28gY2FvIGdhbiANCmdhcCBkb2kgc28gdm9pIHF1eSBk aW5oIGtoaWVuIEhTIGtobyBkdW9jIHF1YW4gdGFtIGR1bmcgbXVjLiANCg0KIkR1IGdpYW8gdmll biBjbyBnaW9pIGRlbiBtYXksIG5oaWV0IHRpbmggZGVuIG1heSBjdW5nIGtob25nIHRoZSBkYXkg aG9jIGNvIGNoYXQgbHVvbmcgDQp2b2kgbG9wIGNvIHNpIHNvIHF1YSBjYW8gbmh1IHZheSIgLSBN b3QgcGh1IGh1eW5oIHRhaSBIYSBOb2kgDQoNCkNvIEJ1aSBUaGkgS2ltIER1bmcgLSBHViBsb3Ag MSB0cnVvbmcgVEggTmd1eWVuIFZhbiBUcm9pLCBRLjQsIFRQLkhDTSAtIGNobyANCnJhbmc6ICJU cmUgbG9wIDEgcmF0IGhpZXUgZG9uZyBuaHVuZyBsYWkgYmlldCBzbyBjbyBnaWFvIG5lbiB2aWVj IG51b2kga2hvbmcgdG9uIG5oaWV1IA0KdGhvaSBnaWFuIGJhbmcgdmllYyBkYXkgY2h1LiBUaG9p IGdpYW4gZGF1IGNvIGVtIGJpZXQgY2h1LCBjbyBlbSBjaHVhIGJpZXQsIHRyb25nIGRvIHRyZSAN CmJpZXQgY2h1IGhhdSBoZXQgbGFpIGR1b2MgZGF5IGtob25nIGR1bmcgY2h1YW4gbmVuIG5ldSBs b3AgcXVhIGRvbmcgdGhpIHF1YSB0aGF0IGNvIGdpYW8gDQpyYXQga2hvIi4gDQoNCkN1bmcgdGFt IHRyYW5nLCBtb3QgR1YgUS5UYW4gQmluaCB0aHVhIG5oYW46ICJMb3AgdG9pIGNvIDUwIEhTIG5l biBjYSBuZ2F5IGhhdSBuaHUgDQp0b2kga2hvbmcgdGhlIG5nb2kgbW90IGNobyBtYSBwaGFpIGtl bSBjYXAgdHVuZyB0cm8gbW90IGRlIGRhbSBiYW8gcmFuZyBob2MgdHJvIGN1YSANCm1pbmggZGEg dmlldCBkdW5nIG5ldCwgbmdvaSBkdW5nIHR1IHRoZSIuIA0KDQpLaG9uZyBjaGkgY28gY2hhdCBs dW9uZyBob2MgdGFwIGJpIGFuaCBodW9uZyBtYSBzdWMga2hvZSwgdGhpIGx1YyBjdWEgSFMgdHJv bmcgbmh1bmcgDQpsb3AgZG9uZyBjdW5nIHJhdCBkYW5nIGxvIG5nYWkuIE1vdCBjaGllYyBiYW4g aG9jIGR1b2MgdGhpZXQga2UgY2hvIDIgSFMgdGhpIG5heSBjbyB0b2kgIA0KMyBIUyAgbmdvaSBj aGVuIGNodWMuIEtob2FuZyBjYWNoIGdpdWEgY2FjIGJhbiBob2MgY3VuZyBzYW4gc2F0IG5oYXUs IGRheSBiYW4gZGF1IA0KY3VuZyBwaGFpIGtlIGdhbiBuZ2F5IGJ1YyBnaWFuZyBkZSB0YW4gZHVu ZyB0b2kgZGEgZGllbiB0aWNoLi4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3 cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDgyMzQ3MTAuYXNweCBEYW5nIE5ndXllbiAtIE1pbmggRHVu ZyBUaHV5IE5nYW4gIDA4LzEwLzIwMTAgMjM6NDcgDQoNClRodSB0dW9uZzogQ2FuIHF1YW4gbHkg ZGUgY2hvbmcgbHVhIGRhbyBkdSBob2MgIA0KDQpTYXUga2hpIFRoYW5oIE5pZW4gZGFuZyBsb2F0 IGJhaSBUaHVjIGh1IGR1IGhvYyBkaW5oIGN1LCBuaGlldSBiYW4gZG9jIGxpZW4gbGFjIGN1bmcg DQpjYXAgdGhlbSB0aG9uZyB0aW4uIFRyb25nIHNvIGRvLCBjbyB2dSB2aWVjIG1hbmcgZGF1IGhp ZXUgbHVhIGRhbyBuaHVuZyBuZ3VvaSBtdW9uIA0KZGluaCBjdSBiYW5nIGNvbiBkdW9uZyBkdSBo b2MuIA0KDQpEb25nIDMuMDAwIFVTRCwgMiBuYW0gY2h1YSBkdW9jIHBob25nIHZhbiANCg0KVGll cCB4dWMgdm9pIHBob25nIHZpZW4gVGhhbmggTmllbiwgY28gSC5OZyAodGh1b25nIHRydSB0YWkg dGluaCBWaW5oIExvbmcpIGNobyBiaWV0OiANClZhbyBraG9hbmcgdGhhbmcgMy4yMDA4LCBxdWEg bmd1b2kgcXVlbiwgY28gTmcuIGR1b2MgZ2lvaSB0aGlldSBkZW4gQ29uZyB0eSBkdSBob2MgDQpU aGFpIC0gT1NUIChjaGkgbmhhbmggNDQyIE5ndXllbiBUcmkgUGh1b25nLCBRLjEwLCBUUC5IQ00p LiBUYWkgZGF5LCBiYSBQaGFtIFRoaSANClF1eW5oIE5odSAtIFBobyBnaWFtIGRvYyBjb25nIHR5 LCBkYSB0dSB2YW4gTmcuIGxhbSBobyBzbyBkdSBob2MgdGFpIE15IHZhIGh1YSBoZW4gDQpzYXUg a2hpIHJhIHRydW9uZyBsYW0gdmllYyB0aGkgY28gdGhlIHhpbiBkdW9jIGRpbmggY3UuIA0KDQpC YSBOaHUgdHUgdmFuIHJhbmcgTmcuIHBoYWkgbm9wIGhvIHNvIHRydW9jIGJhbyBnb20gbW90IHNv IGdpYXkgdG8gY2FuIHRoaWV0IG5odSBob2MgDQpiYSwgYmFuZyB0b3QgbmdoaWVwIFRIUFQsIGJh bmcgZGllbS4uLiBkZSB4aW4gdGh1IG1vaSBuaGFwIGhvYy4gVHJ1b2MgdGllbiwgTmcuIHBoYWkg DQpub3Aga2hvYW4gdGllbiA1MDAgVVNEIGdvaSBsYSBwaGkgaGFuaCBjaGluaCBkb3QgMS4gU2F1 IGRvLCBOZy4gdGllcCB0dWMgZHVvYyB5ZXUgY2F1IA0Kbm9wIHRoZW0gMi41MDAgVVNEIGRlIGxv IGNhYyB0aHUgdHVjLCBnaWF5IHRvIHBob25nIHZhbiBkZSB4dWF0IGNhbmggKGdvaSBsYSBwaGkg aGFuaCANCmNoaW5oIGRvdCAyKS4gQmEgTmh1IGh1YSByYW5nIG5ldSBraG9uZyB4aW4gZHVvYyB0 aGkgdGh1YywgY29uZyB0eSBzZSB0cmEgdGllbiBsYWkuIFNhdSANCmtoaSBub3AgZGF5IGR1IGdp YXkgdG8sIHRpZW4gYmFjLCBkZW4gbmF5LCBzYXUgaG9uIDIgbmFtLCBOZy4gdmFuIGNodWEgZHVv YyBnb2kgcGhvbmcgDQp2YW4gbGFuIG5hby4gDQoNClRoZW8gdGhvbmcgdGluIHR1IFNvIEtlIGhv YWNoIC0gRGF1IHR1IFRQLkhDTSwgQ29uZyB0eSBPU1QgZHVvYyBkYW5nIGt5IGR1b2kgdGVuIA0K Q29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAoZGlhIGNoaSAzNi8xQiBMYW0gU29uLCBQ LjYsIFEuQmluaCBUaGFuaCksIG9uZyANClRyYW4gVGFuIFRoYWkgbGEgZ2lhbSBkb2MuIENvbmcg dHkgbmF5IHRob25nIGJhbyBnaWFpIHRoZSBuZ2F5IDkuMy4yMDEwLiBDb24gY2hpIG5oYW5oIA0K Q29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAodGFpIDQ0MiBOZ3V5ZW4gVHJpIFBodW9u ZywgUS4xMCkgY3VuZyBkYSBnaWFpIHRoZSANCm5nYXkgMjkuMTIuMjAwOS4NCg0KVHJ1b25nIGhv cCBjdWEgTmcuIGtob25nIHBoYWkgbGEgY2EgYmlldC4gVHJvbmcgY3VuZyBraG9hbmcgdGhvaSBn aWFuIHR1IGRhdSBuYW0gMjAwOCANCmRlbiBraG9hbmcgdGhhbmcgNy4yMDA5LCBuaGlldSBuZ3Vv aSB0aW0gZGVuIENvbmcgdHkgT1NUIHZhIGN1bmcgZHVvYyB0dSB2YW4gY3VuZyBtb3QgDQpub2kg ZHVuZy4gRGEgc28gY2FjIG5hbiBuaGFuIG5heSBkZXUgY2hvIGJpZXQgcGhhaSBkb25nIGhldCAy LjcwMCBVU0QgKHRydW9uZyBob3AgDQpjaGkgTmcuIGxhIDMuMDAwIFVTRCAtIFBWKSBwaGkgaGFu aCBjaGluaCB2YSB0aHUgdHVjLiBUaGFtIGNoaSBjbyBuZ3VvaSBjb24gZG9uZyANCmtob2FuZyAz LjUwMCAtIDQuMDAwIFVTRCBwaGkgbmF5LiBUaGVvIHF1eSBkaW5oIGN1YSBjb25nIHR5LCBuZ29h aSBwaGkgaGFuaCBjaGluaCAoc2UgDQpraG9uZyBkdW9jIHRyYSBsYWkgdm9pIGJhdCBjdSBseSBk byBuYW8pIHZhIGNhYyBjaGkgcGhpIHhpbiB0aGkgdGh1Yywgbmh1bmcgbmd1b2kgbm9wIGhvIA0K c28gY29uIHBoYWkgZG9uZyB0aGVtIHR1IDQuODAwIC0gNi4wMDAgVVNEIHBoaSBkaWNoIHZ1IG5l dSBsYXkgZHVvYyB0aGkgdGh1Yy4gDQoNClRoZW8gaG8gc28gdGFpIENvIHF1YW4gQ2FuaCBzYXQg ZGlldSB0cmEgQ29uZyBhbiBRLjEwIChUUC5IQ00pLCBjbyBnYW4gMjAgbmd1b2kgZGEgDQpndWkg ZG9uIHRvIGNhbyB2ZSB2aWVjIGJpIGx1YSBkYW8ga2hpIGRhbmcga3kgZHUgaG9jIHRhaSBDb25n IHR5IE9TVC4gRGF5IGxhIGNvbmcgdHkgZG8gDQpvbmcgVHJhbiBUYW4gVGhhaSBkdW5nIHRlbiBk b25nIHRob2kgbGEgZ2lhbSBkb2MuIA0KDQpMYXkgdGllbiB4b25nLCBjb25nIHR5IGdpYWkgdGhl DQoNCk5odW5nIHRpbmggdGlldCBzYXUgbmF5IG1hIGNhYyBuYW4gbmhhbiB0byBjYW8gZGVuIGNv IHF1YW4gY2FuaCBzYXQgZGlldSB0cmEgZGV1IGtoYSANCmdpb25nIG5oYXUuIFRoZW8gZG8sIHNh dSBtb3QgdGhvaSBnaWFuIGRhaSBraG9uZyB0aGF5IHRpbiB0dWMgKGtob2FuZyAyIG5hbSksIG5o dW5nIA0Kbmd1b2kgbmF5IGxpZW4gbGFjIHZvaSBiYSBOaHUgZGUgaG9pIGNobyBybyB2YW4gZGUu IEhvYWMgbmh1bmcgbmd1b2kgZGEgZGkgcGhvbmcgdmFuIA0KdGFpIExhbmggc3UgcXVhbiBNeSBu aHVuZyBuaGlldSBsYW4ga2hvbmcgbmhhbiBkdW9jIHRoaSB0aHVjLCBkYSB0aW0gZGVuIGNvbmcg dHkgZGUgDQpydXQgbGFpIHRpZW4uIFR1IGRheSwgbW9pIGNodXllbiBiYXQgZGF1IHZvIGxvLg0K DQpDaGkgTi4gLSBtb3Qgbmd1b2kgZGFuZyBreSBsYW0gdGh1IHR1YyBkdSBob2MgdGFpIENvbmcg dHkgT1NULCBrZSBsYWk6ICJLaGkgbW9pIG5ndW9pIA0KZ29pIGRpZW4gY2hvIGJhIE5odSwgYmEg dGEgY2hvIGJpZXQgbXVvbiBnaWFpIHF1eWV0IHRoaSBsZW4gY29uZyB0eSBnYXAgb25nIFRoYWkg LSBnaWFtIA0KZG9jLiBOaHVuZyBDb25nIHR5IE9TVCBkYSBraG9uZyBjb24gaG9hdCBkb25nIHRh aSBkaWEgY2hpIGN1IHZpIGhpZW4gbmF5IG5vaSBkYXkgbGEgDQptb3QgbmhhIGhhbmcgeWVuIHNh byEgRGVuIGx1YyBjaHVuZyB0b2kgdGltIGRlbiBuaGEgb25nIFRoYWkgdGhpIG5ndW9pIG5oYSBj aG8gYmlldCANCkNvbmcgdHkgT1NUIGRhIGdpYWkgdGhlLCBtb2kgdmllYyBoYXkgbGllbiBsYWMg dm9pIGJhIE5odS4uLiIuDQoNClRpbmggdHJhbmcgZHVuIGRheSB0cmFjaCBuaGllbSBuYXkga2Vv IGRhaSByYXQgbGF1IHZhIGNhIGJhIE5odSwgb25nIFRoYWkgaGllbiBuYXkgZGV1IA0KbGFuIHRy b24gbmh1bmcgbmd1b2kgbGFtIHRodSB0dWMgZHUgaG9jLiBUcm9uZyBraGkgZG8sIGhvYyBiYSBj aGluaCwgZ2lheSB0byBuaGEgZGF0Li4uIA0KZGV1IG5hbSB0cm9uZyB0YXkgYmEgTmh1IGtoaWVu IG5odW5nIG5ndW9pIG5vcCBkb24geGluIGR1IGhvYyBkZXUgcmF0IGtobyBraGFuIHRyb25nIA0K dmllYyB4b2F5IHhvIG5odW5nIGNvbmcgdmllYyBraGFjLiBUaGFtIGNoaSwgQ29uZyB0eSBPU1Qg Y29uIGxhbSBtYXQgaG8gY2hpZXUgY3VhIA0KY2hpIE5nLiBuaHVuZyBraGkgbGllbiBsYWMsIGJh IE5odSBraG9uZyBjaGl1IGJvaSB0aHVvbmcgbWEgY29uIGxvbiB0aWVuZyB0aGFjaCB0aHVjIA0K Y2hpIE5nLiBkaSB0byBjYW8uIA0KDQpUdSBraGkgY2FjIG5hbiBuaGFuIGd1aSBkb24gdG8gY2Fv IGNobyBkZW4gbmF5LCBjbyBxdWFuIGNhbmggc2F0IGRpZXUgdHJhIGRhIGxheSBsb2kga2hhaSAN CmN1YSBjYWMgbmFuIG5oYW4sIGN1bmcgbHVjIHRyaWV1IHRhcCBiYSBOaHUsIG9uZyBUaGFpIGNh IHRoYXkgMyBsYW4gbmh1bmcgY2h1YSBsYW4gbmFvIDIgDQpuZ3VvaSBuYXkgY28gbWF0ICghKS4g DQoNCkR1IGhvYyBjaHVhIGNoYWMgY28gdGhlIGRpbmggY3UNCg0KTGllbiBxdWFuIGRlbiBuaHVu ZyB2YW4gZGUgeGluIHRoaSB0aHVjIGR1IGhvYyB2YSBkaW5oIGN1IHRhaSBVYywgQ2FuYWRhLCBk YWkgZGllbiAyIA0KbnVvYyBuYXkgZGEgY28gbmh1bmcgZ2lhaSB0aGljaCBybyByYW5nLiANCg0K VHJhIGxvaSBjYXUgaG9pIFVjIGNvIGNoaW5oIHNhY2ggbmhhcCBjdSBkYW5oIGNobyBkdSBob2Mg c2luaCBuaHUgdGhlIG5hbywgZGFpIGRpZW4gVmFuIA0KcGhvbmcgVGhpIHRodWMgdmEgUXVvYyB0 aWNoIFRvbmcgbGFuaCBzdSBxdWFuIFVjIFRQLkhDTSBjaG8gYmlldDogDQpDbyBuaGlldSBkdSBo b2Mgc2luaCBxdXlldCBkaW5oIG5vcCBobyBzbyB4aW4gZGluaCBjdSB0YWkgVWMgc2F1IGtoaSBk YSBob2FuIHRhdCBraG9hIA0KaG9jLiBEYXkgbGEgbW90IHF1eSB0cmluaCBob2FuIHRvYW4gcmll bmcgYmlldCwgdmEga2hvbmcgY28gc3UgYmFvIGRhbSBuYW8gdmUgdmllYyBtb3QgDQpraGkgY28g ZHVvYyB0aGkgdGh1YyBkdSBob2MgdGhpIGR1IGhvYyBzaW5oIHNlIGhvaSBkdSB0YXQgY2EgY2Fj IGRpZXUga2llbiBkZSBkdW9jIGNoYXAgDQp0aHVhbiBkaW5oIGN1LiANCg0KRGluaCBjdSB0aGVv IGRpZW4gY28gdGF5IG5naGUgKEdlbmVyYWwgU2tpbGxlZCBNaWdyYXRpb24pIHBodSB0aHVvYyBj aHUgeWV1IHZhbyBuaHUgDQpjYXUgY3VhIHRoaSB0cnVvbmcgbGFvIGRvbmcgVWMuIFRpZXUgY2h1 YW4gZGUgZHVvYyBjYXAgdGhpIHRodWMgZGluaCBjdSB0aGVvIGRpZW4gY28gdGF5IA0KbmdoZSBj byB0aGUgdGhheSBkb2kgZGUgZGFwIHVuZyB2b2kgaG9hbiBjYW5oIGtpbmggdGUgY3VhIFVjLiBU YXQgY2EgZHVvbmcgZG9uIHhpbiB0aGkgDQp0aHVjIGRpbmggY3UgdGhlbyBkaWVuIGNvIHRheSBu Z2hlIGRldSBwaGFpIGRhcCB1bmcgZGF5IGR1IG5odW5nIHRpZXUgY2h1YW4gcGh1IGhvcCBkZSAN CnJhIHRyb25nIEx1YXQgRGkgdHJ1IFVjLCBraG9uZyBrZSBkdW9uZyBkb24gZG8gdHJ1b2MgZGF5 IGRhIHR1bmcgbyBVYyBoYXkgY2h1YS4gRGlldSANCnF1YW4gdHJvbmcgbWEgbmh1bmcgbmd1b2kg bWFuZyB0aGkgdGh1YyBkdSBob2MgY2FuIGx1dSB5IGxhIGJhdCBjdSBzdSB0aGF5IGRvaSBuYW8g DQp0cm9uZyB0aWV1IGNodWFuIGNhcCB0aGkgdGh1YyBkaW5oIGN1IHRoZW8gZGllbiBjbyB0YXkg bmdoZSBzZSBraG9uZyBhbmggaHVvbmcgZGVuIA0Kbmh1bmcgZGlldSBraWVuIGN1YSB0aGkgdGh1 YyBkdSBob2MuIA0KDQpEdSBob2Mgc2luaCBraG9uZyBuZW4gY28gcXV5ZXQgZGluaCBjaG9uIGx1 YSBuZ2FuaCBob2MgY2hpIHZvaSBoeSB2b25nIGRhdCBkdW9jIG11YyANCmRpY2ggZGluaCBjdSwg Ym9pIHZpIGNodW9uZyB0cmluaCBkaW5oIGN1IHRoZW8gZGllbiBjbyB0YXkgbmdoZSBzZSB0aWVw IHR1YyB0aGF5IGRvaSB2YSANCmRpZXUgY2hpbmggZGUgcGh1IGhvcCB2b2kgbmh1IGNhdSBjdWEg bmVuIGtpbmggdGUgVWMuIA0KDQpUaG9uZyB0aW4gY2hpIHRpZXQgdmUgbmh1bmcgeWV1IGNhdSBj dWEgdGhpIHRodWMgZGluaCBjdSB0aGVvIGRpZW4gY28gdGF5IG5naGUgY28gdHJlbiANCnRyYW5n IHdlYiBjdWEgQm8gTmhhcCBjdSB2YSBRdW9jIHRpY2ggKERJQUMpIHRhaSBkaWEgY2hpOiBodHRw Oi8vd3d3LmltbWkuZ292LmF1L3NraWxsZWQvZ2VuZXJhbC1za2lsbGVkLW1pZ3JhdGlvbi8uDQoN CktoaSBkdSBob2Mgc2luaCBjbyB5IGRpbmggeGluIHRoaSB0aHVjIGR1IGhvYyBkZSBkaW5oIGN1 IG8gQ2FuYWRhLCBjYW4gcGhhaSBsdXUgeSBuaHVuZyANCmRpZXUgc2F1OiANCg0KTmd1b2kgY28g dGhpIHRodWMgZHUgaG9jIGJhdCBidW9jIHBoYWkgdmUgbnVvYyBraGkgaGV0IGt5IGhhbiBjaG8g cGhlcCAodGhvbmcgdGh1b25nIA0KdGhlbyBkdW5nIHRob2kgaGFuIGhvYW4gdGhhbmggY2h1b25n IHRyaW5oIGhvYykgdmEgaG8gcGhhaSBjYW0ga2V0IHR1YW4gdGh1IGRpZXUga2llbiANCm5heSBr aGkgbm9wIGRvbiB4aW4gdGhpIHRodWMgZHUgaG9jLiBTaW5oIHZpZW4gbnVvYyBuZ29haSBjbyB0 aGUgdGhhbSBnaWEgbW90IHNvIGNodW9uZyANCnRyaW5oIGN1YSBDaGluaCBwaHUgQ2FuYWRhIGNo byBwaGVwIGhvIG8gbGFpIHZhIGxhbSB2aWVjIHRhaSBDYW5hZGEgc2F1IGtoaSBob2FuIHRoYW5o IA0KY2h1b25nIHRyaW5oIGhvYywgdmEgdHJvbmcgbW90IHNvIHRydW9uZyBob3AsIHNhdSBtb3Qg dGhvaSBnaWFuIGhvIG5vcCBkb24geGluIGRpbmggY3UuIA0KTmV1IGtob25nIGR1IGRpZXUga2ll biBkYXAgdW5nIG5odW5nIGNodW9uZyB0cmluaCBuaHUgdmF5LCBzaW5oIHZpZW4gbnVvYyBuZ29h aSBiYXQgDQpidW9jIHBoYWkgcm9pIGtob2kgQ2FuYWRhIGtoaSBoZXQgaGFuIHRoaSB0aHVjIGR1 IGhvYy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8y MDEwMDkxNTAwMjcyMC5hc3B4IERhbmcgTmd1eWVuIDE1LzA5LzIwMTAgMDoyNyAgDQoNClRodSB0 dW9uZzogVGh1YyBodSAiZHUgaG9jIGRpbmggY3UiICANCiAgDQpEZSBjYW5oIHRyYW5oIHZhIHRo dSBodXQgbmd1b2kgaG9jLCB0aG9pIGdpYW4gZ2FuIGRheSwgbmhpZXUgY29uZyB0eSBkdSBob2Mg ZHVhIHJhIGNoaWV1IA0KcXVhbmcgY2FvIG1vaTogIkR1IGhvYyBkZSBkaW5oIGN1IiEgDQoNCi0g Q29uZyB0eSBkdSBob2MgRHVjIFR1IChRLjEwIFRQLkhDTSkgaHVhIGhlbiB4aW4gdmlzYSBxdWEg TXkgZGluaCBjdSB0dSBTaW5nYXBvcmUgDQpjaG8gbmd1b2kgaG9jOyAgaG9jIHRhaSBTaW5nYXBv cmUsIGxhbSB2aWVjIHZhIGRpbmggY3UgdGFpIE15IHZvaSBjaHVvbmcgdHJpbmggaG9jIHZhIA0K bGFtIHkgdGEgY2hpIHBoaSBjdWEgY2h1b25nIHRyaW5oIG5heSBsYSAxNC45MDAgVVNEOw0KDQot IENvbmcgdHkgSGllcCBBIC0gbW90IGNvbmcgdHkgY2h1eWVuIHZlIHRodW9uZyBtYWkgeGF5IGR1 bmcgKFEuVGFuIEJpbmgsIFRQLkhDTSkgDQpub2kgY2FuIHR1eWVuIHNpbmggbmdhbmggRHVvYyBz YW5nIE15IGhvYyB2YSBkdW9jIGRpbmggY3Ugc2F1IGJhIG5hbSAobHV1IHk6IGJhbyB0cm9uIA0K Z29pIHZhIGJhbyBuZ2hlKS4gVHJvbiBnb2kgY2hvIG1vaSB0aHUgdHVjIGxhIDM1MDAwIFVTRCIs ICAidGhlIHhhbmgiIGR1b2MgY2FtIGRvYW4gDQpzZSBkdW9jIGNhcCBzYXUga2hvYW5nIDQgdGhh bmcgbyBNeS4NCg0KLSBWZSBjaHVvbmcgdHJpbmggRGlyZWN0IE51cnNlLCBoaWVuIG5heSBjdW5n IGNvIENvbmcgdHkgY28gcGhhbiBkYXUgdHUgTmd1b24gbmhhbiB0YWkgDQpxdW9jIHRlIGNoYXUg QSAoQUlUUkkpIHJhbyB0dXllbiBzaW5oLiBWZSBob2MgcGhpLCBob2MgYm9uZywgdXUgZGFpLCBo dWEgaGVuLi4uIGN1YSANCmNodW9uZyB0cmluaCwgY29uZyB0eSBuYXkgZ2lvaSB0aGlldSBjdW5n IHR1b25nIHR1IG5odSBDb25nIHR5IGR1IGhvYyBEdWMgVHUuIA0KDQpCbyBwaGFuIHZpc2EgY3Vh IExhbmggc3UgcXVhbiBNeSB0YWkgVFAuSENNIGtoYW5nIGRpbmg6ICJDYWMgY29uZyB0eSB0dSBu aGFuIHh1YyANCnRpZW4gY2FjIGNodW9uZyB0cmluaCBkdSBob2MgdGFpIE15IGtob25nIHRoZSBk YW0gYmFvIHZpZWMgY2FwIHZpc2EgbGFtIHZpZWMgaGF5IGRpbmggDQpjdSBzYXUga2hpIGhvYW4g dGF0IGtob2EgaG9jLiBDYWMgbG9haSB2aXNhIG5heSBwaGFpIGR1b2MgY2hhcCB0aHVhbiBib2kg Q2hpbmggcGh1IE15IA0KdmEgY28gZ2lvaSBoYW4gdmUgc28gbHVvbmcuIENhYyBkdW9uZyBkb24g eGluIHZpc2Egc2luaCB2aWVuIChTVikgcGhhaSBjaHVuZyB0byBkdW9jIDMgDQpkaWV1OiBsYSBu aHVuZyBTViBkaWNoIHRodWMsIHBoYWkgY28ga2hhIG5hbmcgY2hpIHRyYSBjaG8gcXVhIHRyaW5o IGhvYyB0YXAgdmEgY28ga2UgDQpob2FjaCB0cm8gdmUgVk4uIE5ldSBTViBraG9uZyB0aGUgdGh1 eWV0IHBodWMgZHVvYyB2aWVuIGNodWMgbGFuaCBzdSB2ZSBiYXQga3kgdmFuIGRlIA0KbmFvIHRy b25nIDMgZGlldSBuYXksIHRoZW8gcXV5IGRpbmggY3VhIGx1YXQgcGhhcCBNeSwgdGhpIHZpZW4g Y2h1YyBsYW5oIHN1IGtob25nIHRoZSANCmNhcCB2aXNhIGNobyBuZ3VvaSBkbyIuIA0KDQpUcm9u ZyBraGkgQm8gcGhhbiB2aXNhIGN1YSBMYW5oIHN1IHF1YW4gTXkgdGFpIFRQLkhDTSBkYSBraGFu ZyBkaW5oIG5odSB2YXksIG5oaWV1IA0KY29uZyB0eSBkdSBob2MgdmFuIGNhbSBkb2FuICJkYW0g YmFvIHhpbiBkdW9jIHZpc2EiLg0KDQooVHJ1bmcgdGFtIHR1IHZhbiBnaWFvIGR1YyBNeSAoRWR1 Y2F0aW9uVVNBKSBkYSBjbyB0YWkgSGEgTm9pIHZhbyBuZ2F5IDEzLjkgdmEgdHJ1b2MgDQpkbywg bmdheSA1LjggdGFpIFRQLkhDTTsgbGEgbmd1b24gdGhvbmcgdGluIGNoaW5oIHRodWMgY3VhIENo aW5oIHBodSBNeSB2ZSBkdSBob2MgdGFpIA0KTXkgdmEgY3VuZyBjYXAgdGhvbmcgdGluIG1pZW4g cGhpLCBjaGluaCB4YWMsIGtob25nIHRoaWVuIHZpIHZlIGNhYyBjbyBob2kgaG9jIHRhcCBjaG8g DQpTViB2YSBwaHUgaHV5bmggVmlldCBOYW0uIA0KTmdvYWkgcmEsIEJvIHBoYW4gdmlzYSBjdWEg TGFuaCBzdSBxdWFuIE15IHRhaSBUUC5IQ00gY3VuZyBjaG8gYmlldCBtb3Qgc28gdHJ1bmcgDQp0 YW0gdHUgdmFuIGR1IGhvYyB0aGluaCB0aG9hbmcgY28gdGh1IHBoaSBraGkgY3VuZyBjYXAgdGhv bmcgdGluIGNobyBTVi4gTmh1bmcgdGhvbmcgDQp0aW4gdmUgdmlzYSBkYSBjbyB0cmVuIHRyYW5n IHdlYiBodHRwOi8vaG9jaGltaW5oLnVzY29uc3VsYXRlLmdvdi9zdHVkZW50L3Zpc2EuaHRtbC4g U1YgDQpraG9uZyBjYW4gcGhhaSB0cmEgdGllbiBjaG8gbmh1bmcgdGhvbmcgdGluIHZlIHZpc2Eg bWEgY2FjIHRydW5nIHRhbSB0dSB2YW4gY3VuZyBjYXAgdmkgDQpuaHVuZyB0aG9uZyB0aW4gbmF5 IGR1b2MgdG9uZyBsYW5oIHN1IGN1bmcgY2FwIG1pZW4gcGhpIHRyZW4gd2Vic2l0ZSkgDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMS8yMDEwMDcyODAxMDYx Ny5hc3B4IDI4LzA3LzIwMTAgMTowNiANCg0KVGh1IHR1b25nOiBOZ2hpIGRpbmggOTcgY3VhIENo aW5oIHBodSB2ZSBxdWFuIGx5LCBzdSBkdW5nIGludGVybmV0LCBxdXkgZGluaCBjYWMgZGFpIGx5 IA0KcGhhaSBkdW5nIGN1bmcgY2FwIGRpY2ggdnUgc2F1IDIzIGdpbyBnYW4gbmh1IGtob25nIGNv IHRhYyBkdW5nIHRyZW4gdGh1YyB0ZS4gDQoNCi0NCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFt bmV0LnZuLzIwMTAtMTAtMTQtaG8tdHJvLWxhaS1zdWF0LW1vdC1uYW0tbmhpbi1sYWkgSHV5bmgg QnV1IFNvbiAoRE5TR0NUKSAoVGhlbyBEb2FuaCBuaGFuIFNhaSBHb24gQ3VvaSBUdWFuKSANCg0K VGh1IHR1b25nOiBIbyB0cm8gbGFpIHN1YXQgMjAwOSBuaGlldSBiYXQgY2FwIC0gS2llbSB0cmEg NSBuZ2FuIGhhbmcgZGEgcGhhaSB0cnV5IHRodSBoYW5nIGNodWMgdHkgZG9uZyANCg0KVmllYyAi ZGUgcmEgY2hpbmggc2FjaCBjaG8gdmF5IGRlIHJvaSBsYWkgbWF0IG5oaWV1IHRob2kgZ2lhbiwg bmd1b24gbHVjIGRlIHRodSBob2kgbGFpIGNhYyANCmtob2FuIHRoYXQgdGhvYXQgbmh1IHZheSBr aG9uZyBraGFjIGdpIHZpZWMgdGhhIGdhIHJhIGR1b2kuDQoNCkhvbiBtb3QgbmFtIG5oaW4gbGFp LCBnaWFpIHBoYXAgaG8gdHJvIGxhaSBzdWF0IHRyb25nIGNodW9uZyB0cmluaCBraWNoIGNhdSBu YW0gMjAwOSBjdWEgDQpDaGluaCBwaHUgc3UgZHVuZyBtb3Qgbmd1b24ga2luaCBwaGkgeGFjIGRp bmggdHUgbmdhbiBzYWNoIChraG9hbmcgMTcgbmdhbiB0eSBkb25nKSANCm5oYW0gbXVjIHRpZXUg Z2l1cCBkbyBjYWMgZG9hbmggbmdoaWVwIFZpZXQgTmFtIHZ1b3QgcXVhIHRob2kga3kgc3V5IHRo b2FpIGtpbmggdGUsIA0KaGF1IHF1YSBjdWEgY3VvYyBraHVuZyBob2FuZyB0YWkgY2hhbmggdG9h biBjYXUsIGJlbiBjYW5oIG5odW5nIGtldCBxdWEga2ljaCBjYXUgdGljaCANCmN1YyBkdW9jIGdo aSBuaGFuLCBkYSBjbyBuaHVuZyAicGhhbiB1bmcgcGh1IiBraG9uZyBtb25nIG11b24gZHVuZyBu aHUgZHUgZG9hbiANCmN1YSBuaGlldSBjaHV5ZW4gZ2lhIGtpbmggdGUsIG5nYW4gaGFuZyB0cnVv YyBkYXkuDQoNClRodSBuaGF0LCBraG9uZyBwaGFpIHRhdCBjYSBjYWMga2hvYW4gdGluIGR1bmcg dHUgcGhpYSBuZ2FuIGhhbmcgZHVvYyBOaGEgbnVvYyBobyB0cm8gDQpsYWkgc3VhdCBkZXUgZGVu IGR1b2MgZHVuZyBkb2kgdHVvbmcgZG9hbmggbmdoaWVwIGNhbiB2YXkuIFRodWMgdGUgY2hvIHRo YXkgbmhpZXUgDQpkb2FuaCBuZ2hpZXAgZGFuZyBkdW9jIHZheSBsYWkga2hvbmcgdmF5IGR1b2Ms IHRyb25nIHNvIGRvIGNhYyBkb2FuaCBuZ2hpZXAgdnVhIHZhIA0KbmhvIGNoaXUgbmhpZXUgdGhp ZXQgdGhvaSBuaGF0Lg0KDQpOZ3VvYyBsYWksIGNhYyB0b25nIGNvbmcgdHkgbmhhIG51b2MgdmEg Y2FjIGRvYW5oIG5naGllcCB0dSBuaGFuIGNvIG1hdSBtYXQgLSBuaHVuZyANCmRvYW5oIG5naGll cCBjbyB2b24gbG9uIC0gbGFpIGxhIG5odW5nIGRvaSB0dW9uZyBkdW9jIHZheSB1dSBkYWkgbmhp ZXUgbmhhdCwgdHJvbmcgZG8gY28gDQpjYSBjYWMga2hvYW4gdmF5IGtob25nIHBodSBob3Agdm9p IGNhYyBkaWV1IGtpZW4gZHVvYyBxdXkgZGluaCB0cm9uZyBxdXlldCBkaW5oIHNvIA0KMTMxLy9R RC1UVGcgY3VhIFRodSB0dW9uZyBDaGluaCBwaHUgdmEgdGhvbmcgdHUgc28gMDIvMjAwOS9UVC1O SE5OIGN1YSBOZ2FuIA0KaGFuZyBOaGEgbnVvYy4gUXVhIGtpZW0gdHJhLCBzbyB0aWVuIGxhaSBo byB0cm8gbGFpIHN1YXQgcGhhaSB0cnV5IHRodSB0dSBuaHVuZyBkb2FuaCANCm5naGllcCBuYXkg bGVuIGRlbiBoYW5nIGNodWMgdHkgZG9uZy4NCg0KVGh1IGhhaSwgZHUgY2hvIG5odW5nIHF1eSBk aW5oIHZlIGRpZXUga2llbiBjaG8gdmF5IHV1IGRhaSBraGEgbmdoaWVtIG5nYXQgdmkgY2FjIA0K a2hvYW4gaG8gdHJvIGxhaSBzdWF0IGxhIGtpbmggcGhpIHR1IG5nYW4gc2FjaCwgZGEgeGF5IHJh IGtob25nIGl0IGhpZW4gdHVvbmcgbG9pIGR1bmcgbXVjIA0KbGFpIHN1YXQgaG8gdHJvIHRoYXAg ZGUgdHJ1YyBsb2kgYmFuZyBjYWNoIHZhbiBkb25nIGRlIGR1b2MgdmF5IHV1IGRhaSB2b2kgbGFp IHN1YXQgdGhhcCB2YSANCmNobyB2YXkgbGFpIGhheSBndWkgdGllbiB0YWkgbmdhbiBoYW5nIHRo dW9uZyBtYWkgdm9pIGxhaSBzdWF0IGNhbyBob24gZGUgaHVvbmcgY2hlbmggDQpsZWNoLCBkYWMg YmlldCB0cm9uZyB0aW5oIGhpbmggY2FjIG5nYW4gaGFuZyB0aHVvbmcgbWFpIHRoaWV1IHRoYW5o IGtob2FuIG5naGllbSB0cm9uZyANCnZhIHBoYWkgaHV5IGRvbmcgbmd1b24gdGllbiBndWkgdm9p IGxhaSBzdWF0IGNhbyBuaHUgY3VvaSBuYW0gMjAwOSB2YSBkYXUgbmFtIDIwMTAuIA0KDQpCYW8g Y2FvIGtpZW0gdHJhIGNobyB0aGF5IG1vdCBzbyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IGxvbiBj dWEgTmhhIG51b2MgdHJhbmggdGh1IGRlIA0KZGFuZyBjYWMga2hvYW4gdGluIGR1bmcgZHVvYyBo byB0cm8gbGFpIHN1YXQgdGFpIGNhYyBuZ2FuIGhhbmcgdGh1b25nIG1haSByb2kgZHVuZyANCm5n dW9uIHRpZW4gZG8gY2hvIGNhYyBkb2FuaCBuZ2hpZXAga2hhYyB2YXkgbGFpIHZvaSBsYWkgc3Vh dCBjYW8gaG9uLiBNb3QgdG9uZyBjb25nIA0KdHkgbWF5IGRhIHZheSB0dSBtb3QgbmdhbiBoYW5n IHRodW9uZyBtYWkgcm9pIGNobyBjYWMgY29uZyB0eSBraGFjIHZheSBsYWkgaG9hYyBndWkgdGll biANCmNvIGt5IGhhbiBvIG1vdCBuZ2FuIGhhbmcga2hhYywgaHVvbmcgbXVjIGNoZW5oIGxlY2gg bGFpIHN1YXQgdHUgNyAtIDEyJS9uYW0uIA0KDQpUaHUgYmEsIHZpZWMgZG9hbmggbmdoaWVwIHN1 IGR1bmcgbmd1b24gdm9uIGNobyB2YXkgaG8gdHJvIGxhaSBzdWF0IGtob25nIGR1bmcgbXVjIA0K ZGljaCBsYSBraGEgcGhvIGJpZW4uDQpUYWkgaGF1IGhldCBjYWMgbmdhbiBoYW5nIHRodW9uZyBt YWkgZHVvYyBraWVtIHRyYSwgY28gcXVhbiBjaHVjIG5hbmcgcGhhdCBoaWVuIG5oaWV1IA0Ka2hv YW4gdmF5IGhvIHRybyBsYWkgc3VhdCB0YWkgbW90IHNvIHRhcCBkb2FuLCBkb2FuaCBuZ2hpZXAg bmhhIG51b2MgdmEgY2EgZG9hbmggbmdoaWVwIA0KdHUgbmhhbiBkYSBiaSBzdSBkdW5nIHNhaSBt dWMgZGljaCBob2FjIGtob25nIGR1IGdpYXkgdG8gaG9wIGxlIGRlIGR1b2MgZ2lhaSBuZ2FuLg0K DQpNYXQga2hhYywgY2FjIGRhbmcgc2FpIHBoYW0gdHJvbmcgdmllYyBzdSBkdW5nIHZvbiB2YXkg aG8gdHJvIGxhaSBzdWF0IG5nYW4gaGFuIGR1b2MgDQptbyB0YSBsYSBtdW9uIGhpbmggbXVvbiB2 ZS4gVGFpIG1vdCBuZ2FuIGhhbmcgdGh1b25nIG1haSBjbyBwaGFuLCB2aWVjIGtpZW0gdHJhIGNo byANCnRoYXkgY28gbmhpZXUgZGFuZyBzYWkgcGhhbSBraGFjIG5oYXUgbmh1IHRodWMgaGllbiBo byB0cm8gbGFpIHN1YXQgcXVhIHRob2kgZ2lhbiBzdSANCmR1bmcgdm9uIHZheSB0aHVjIHRlIHZv aSBzbyB0aWVuIGhvIHRybyBsYWkgc3VhdCBraG9uZyBkdW5nIHF1eSBkaW5oIGdhbiAyMSB0aSBk b25nLCBob2FjIA0KaG8gdHJvIGxhaSBzdWF0IGNobyBjYWMga2hvYW4gdmF5IG5vaSBsYSBkZSB0 aGFuaCB0b2FuIG11YSBoYW5nIGhvYSBuaHVuZyB0aHVjIHRlIGtob25nIA0KY28gaG9hdCBkb25n IG11YSBiYW4gbmFvIGNhLg0KDQpDdW9pIGN1bmcsIG1vdCBuaHVvYyBkaWVtIGN1bmcgY2FuIGR1 b2Mgbm9pIGRlbiBsYSB0dXkgdmllYyBobyB0cm8gbGFpIHN1YXQgc3UgZHVuZyANCm5ndW9uIHRp ZW4gdHUgbmdhbiBzYWNoIE5oYSBudW9jLCBuaHVuZyBjbyBjaGUgZ2lhbSBzYXQsIGtpZW0gdHJh IHZpZWMgc3UgZHVuZyBuZ3VvbiANCnRpZW4gaG8gdHJvIGNvbiBsb25nIGxlbyB2YSBjbyBuaGll dSBiYXQgY2FwLCBjbyB0aGUgdmkgZGF5IGxhIG1vdCBjaHUgdHJ1b25nIGNodWEgY28gdGllbiAN CmxlLCBob2FjIHZpIHZpZWMgdHJpZW4ga2hhaSBnb2kga2ljaCBjYXUgY2hvbmcga2h1bmcgaG9h bmcgcXVhIGdhcCBydXQgZ2lvbmcgbmh1IGNhYyBubyANCmx1YyBjdXUgaG8ga2hhbiBjYXAgbmhh bSBraGFjIHBodWMgaGF1IHF1YSBjdWEgYmFvIGx1dCwgaG9hYyB2aSBjYWMgbmhhIGhvYWNoIGRp bmggDQpjaGluaCBzYWNoIGNodWEgImJhbyBxdWF0IGhldCB0YXQgY2Egbmh1bmcgdHJ1b25nIGhv cCBjaG8gdmF5LCB4dSBseSBoZXQgY2FjIHZhbiBkZSBwaHVjIA0KdGFwIHRyb25nIHRodWMgdGll biBjaG8gdmF5IGN1YSBjYWMgdG8gY2h1YyB0aW4gZHVuZyIuDQoNCkR1IHNhbyBkaSBudWEsIGRh IHhheSByYSBjYWMgaGUgcXVhIGRhbmcgYnVvbiBjdWEgbW90IGNodW9uZyB0cmluaCBjaG9uZyBr aHVuZyBob2FuZyANCmtpbmggdGUgdHVuZyBkdW9jIGRhbmggZ2lhIGxhIG5oYW5oIGNob25nLCB0 aWNoIGN1YyB2YSBraXAgdGhvaSwgdmEgdHV5IHJhbmcgY2FjIGhlIHF1YSANCm5heSBjaGkgbW9p IGR1b2MgZ2hpIG5oYW4gdHUgdmllYyBraWVtIHRyYSB0YWkgNSBuZ2FuIGhhbmcgdGh1b25nIG1h aSBjbyBwaGFuLCBzbyB0aWVuIA0KaG8gdHJvIGxhaSBzdWF0IGtob25nIGR1bmcgcGhhaSB0cnV5 IHRodSBkYSBsZW4gZGVuIHZhaSBjaHVjIHR5IGRvbmcuDQoNCkNhdSBob2kgZGF0IHJhIGxhIG5l dSB0aHVjIGhpZW4gdmllYyB0aGFuaCB0cmEsIGtpZW0gdG9hbiB0b2FuIGJvIGNhYyBuZ2FuIGhh bmcsIHRvIGNodWMgDQp0aW4gZHVuZywgY2FjIGRvYW5oIG5naGllcCB0aGFtIGdpYSB2b2kgdG9u ZyBraW5oIHBoaSBkZSBobyB0cm8gbGFpIHN1YXQgY2hvIHZheSBuZ2FuIGhhbiANCmxhIDE3LjAw MCB0aSBkb25nIHZhIHRvbmcgc28ga2hvYW4gdmF5IHRodWMgdGUgZGEgZHVvYyBobyB0cm8gbmFt IDIwMDkgbGEgdHJlbiA0MDAuMDAwIHRpIA0KZG9uZywgc28gdGllbiBtYSBuZ2FuIHNhY2ggZGEg Ym8gcmEgZGUgaG8gdHJvIGxhaSBzdWF0IGNobyBjYWMga2hvYW4gdmF5IGtob25nIGR1bmcgcXV5 IA0KZGluaCBzZSBsYSBiYW8gbmhpZXU/DQpPbmcgTmdvIFZhbiBLaGFuaCwgVnUgdHJ1b25nIFZ1 IHRoYW5oIHRyYSBraG9pIG5vaSBjaGluaCB2YSBraW5oIHRlIHRvbmcgaG9wIGRhIG5oYW4gDQp4 ZXQgcmFuZyB0dXkgaGF1IGhldCBjYWMgbmdhbiBoYW5nIGR1b2Mga2llbSB0cmEgZGV1IGNvIHBo YXQgaGllbiBzYWkgcGhhbSwgc29uZyAiY2FjIA0Kc2FpIHBoYW0gc28gdm9pIHR5IHRyb25nIHNv IHRpZW4gaG8gdHJvIGNobyBkb2FuaCBuZ2hpZXAga2hvbmcgZGFuZyBrZSB2YSBraG9uZyBxdWEg DQpuZ2hpZW0gdHJvbmciLCB2YSAiY2FuIGNoaWEgc2Ugdm9pIGNhYyBuZ2FuIGhhbmcgdGh1b25n IG1haSBkbyB0aHVjIGhpZW4gbmhpZW0gdnUgDQpjaGluaCB0cmkgbmhhIG51b2MgZ2lhbyIuDQpO aHVuZyBtb3QgY2h1eWVuIGdpYSB0YWkgY2hpbmggbmdhbiBzYWNoIGRhIGNvIG1vdCBjYWkgbmhp biBraGFjLCBvbmcgY2hvIHJhbmcgdmllYyANCiJkZSByYSBjaGluaCBzYWNoIGNobyB2YXkgZGUg cm9pIGxhaSBtYXQgbmhpZXUgdGhvaSBnaWFuLCBuZ3VvbiBsdWMgZGUgdGh1IGhvaSBsYWkgY2Fj IA0Ka2hvYW4gdGhhdCB0aG9hdCBuaHUgdmF5IGtob25nIGtoYWMgZ2kgdmllYyB0aGEgZ2EgcmEg ZHVvaS4NClR1eSBuaGllbiwgZGUgbmdhbiBzYWNoIGtob25nIGJpIHRoYXQgdGhvYXQsIHZpZWMg cmEgc29hdCwga2llbSB0cmEsIHRydXkgdGh1IGxhaSBjYWMga2hvYW4gDQpobyB0cm8gbGFpIHN1 YXQgY2hpIHNhaSBsYSB2aWVjIHZhbiBwaGFpIGxhbS4gVmEgZGF5IHRodWMgc3UgbGEgYmFpIGhv YyByYXQgbG9uIGNobyBjYWMgbmhhIA0KcXVhbiBseSwgaG9hY2ggZGluaCBjaGluaCBzYWNoIHRh aSBjaGluaCBzYXUgbmF5Ii4NCg0KQmFpIGhvYyBkYXUgdGllbiBjYW4gcnV0IHJhIGxhIHZhbiBk ZSBsYWkgc3VhdCBsYSBtb3QgdmFuIGRlIHRodW9jIGNoaW5oIHNhY2ggdGllbiB0ZSwga2hvbmcg DQpwaGFpIGxhIG1vdCB2YW4gZGUgdGh1b2MgbmdhbiBzYWNoLiBDaHVvbmcgdHJpbmgga2ljaCB0 aGljaCBraW5oIHRlIHF1YSB0aW4gZHVuZyBuZ2FuIA0KaGFuZyBzZSBkb24gZ2lhbiBob24gbmhp ZXUgbmV1IHBoYXQgaHV5IGRheSBkdSBjaHVjIG5hbmcgY3VhIE5nYW4gaGFuZyBOaGEgbnVvYyAN CnRyb25nIHZhaSB0cm8gbmd1b2kgY2hvIHZheSBvIGdpYWkgZG9hbiBjdW9pIGtldCBob3Agdm9p IHZpZWMgaGEgZ2lhbSBzYXUgbXVjIGxhaSBzdWF0IGNvIA0KYmFuLCBkaWV1IG1hIG5nYW4gaGFu ZyB0cnVuZyB1b25nIGNhYyBudW9jIGRhIHZhIGRhbmcgbGFtIHRyb25nIHRob2kga3kgc3V5IHRo b2FpIGtpbmggDQp0ZS4NCg0KTmdhbiBoYW5nIE5oYSBudW9jIGxlIHJhIGRhIHBoYWkgaGEgZ2lh bSBtdWMgbGFpIHN1YXQgY28gYmFuIHZhbyBkYXUgbmFtIDIwMDkgZGVuIA0KbXVjIDQlL25hbSBo b2FjIHRoYXAgaG9uIHZhIHNhbiBzYW5nIGNobyBjYWMgbmdhbiBoYW5nIHRodW9uZyBtYWkgdmF5 IGxhaSB2b2kgbXVjIA0KbGFpIHN1YXQgbmF5IGRlIGhvIGNvIHRoZSBjYXAgdGluIGR1bmcgY2hv IGNhYyBkb2FuaCBuZ2hpZXAgY2FuIHZvbiB2b2kgbXVjIGxhaSBzdWF0IHRoYXAgDQp0dW9uZyB1 bmcuIFBodW9uZyB0aHVjIG5heSBraG9uZyBjYW4gZGVuIHZpZWMgc3UgZHVuZyAxNyBuZ2FuIHR5 IGRvbmcgdHUgbmdhbiBzYWNoIE5oYSBudW9jLg0KDQpOZ2FuIGhhbmcgTmhhIG51b2MgY28gY2h1 YyBuYW5nIHRhbyByYSB0aWVuIGRvIGRvIGtob25nIGNhbiBkdW9jIGJ1IGxvLCBjb24gY2FjIG5n YW4gDQpoYW5nIHRodW9uZyBtYWkgZHVvYyBzdSBkdW5nIG5ndW9uIHZvbiBsYWkgc3VhdCB0aGFw IHR1IE5nYW4gaGFuZyBOaGEgbnVvYyBkZSBjaG8gDQpjYWMgZG9hbmggbmdoaWVwIHZheSBsYWkg dm9pIGxhaSBzdWF0IHRoYXAgY3VuZyBraG9uZyBjYW4gZHVvYyBidSBsby4gUGh1b25nIHRodWMg bmF5IA0Ka2hvbmcgdGFvIHJhIGxhbSBwaGF0IHRyb25nIHR1b25nIGxhaSB2aSBjYWMga2hvYW4g dmF5IG5heSBjaGkgbGEgdGluIGR1bmcgbmdhbiBoYW4gbmhhbSANCmhvIHRybyBzYW4geHVhdCBr aW5oIGRvYW5oIHZ1b3QgcXVhIHN1eSB0aG9haSBraW5oIHRlIHRyb25nIG5hbSAyMDA5LCBkdW9j IHRodSBob2kgdmFvIA0KY3VvaSBuYW0gMjAwOSB2YSBkYXUgbmFtIDIwMTAuDQoNCk5ldSBjaGlu aCBzYWNoIGxhaSBzdWF0IG1hbmcgdGluaCBjaGF0IGRpbmggaHVvbmcsIHZpZWMga2llbSB0cmEg bXVjIGRpY2ggc3UgZHVuZyBzZSBsYSANCnZpZWMgdHJvbmcgdGFtIHRheSBjdWEgaGUgdGhvbmcg bmdhbiBoYW5nIHRodW9uZyBtYWkgdmEgY3VhIE5nYW4gaGFuZyBOaGEgbnVvYy4gRGlldSANCnF1 YW4gdHJvbmcgaG9uLCBraGkga2hvbmcgY28gbmh1bmcgZGlldSBraWVuIHBodWMgdGFwIGxpZW4g cXVhbiBkZW4gY2FpIGdvaSBsYSB0aW4gZHVuZyANCnV1IGRhaSwgc3UgcGhhbiBiaWV0IGRvaSB4 dSB2YSB0aWV1IGN1YyBzZSBpdCB4YXkgcmEuDQpUaHUgaGFpLCBjaHVuZyB0YSBjYW4gdGhheSBy YW5nIGtodW5nIGhvYW5nIGtpbmggdGUsIG5oYXQgbGEgY3VvYyBraHVuZyBob2FuZyBtYW5nIA0K dGluaCBjaGF0IHRvYW4gY2F1IHZ1YSBxdWEsIGxhIG1vdCBjb24gYmFvIGR1IG1hIG1vaSBuZ3Vv aSwgbW9pIGRvYW5oIG5naGllcCBiaSBkZSBkb2EgDQpwaGFpIGR1b2MgYmluaCBkYW5nIHRyb25n IHZpZWMgaHVvbmcgcXV5ZW4gdHJ1IGFuLiBRdXllbiB0cnUgYW4ga2hvbmcgbmVuIGxhIGRhYyAN CnF1eWVuIGN1YSBtb3QgbmhvbSBsb2kgaWNoIGR1b2MgdXUgZGFpLg0KDQpDaGluaCBzYWNoIGtp bmggdGUgY2hvbmcga2h1bmcgaG9hbmcgY28gdGhlIGNob24gbHVhIGxhbmggdnVjIGtpbmggdGUg dXUgdGllbiBkZSBkYXQgDQpoaWV1IHF1YSBjYW8gdHJvbmcgbm8gbHVjIGdpdXAgbmVuIGtpbmgg dGUgdnVvdCBxdWEgdnVuZyBsYXkgc3V5IHRob2FpLCBuaHVuZyB2aWVjIGNob24gDQpsdWEgdXUg dGllbiBwaGFpIGR1YSB0cmVuIGhpZXUgcXVhIGN1YSB2aWVjIHN1IGR1bmcgY2FjIG5ndW9uIHRh aSBuZ3V5ZW4gdmkgbG9pIGljaCBjdWEgDQp0b2FuIG5lbiBraW5oIHRlIGRhdCBudW9jIG5oYW0g Z2l1cCBtb2kgZG9hbmggbmdoaWVwIHh1bmcgZGFuZyBkZXUgZHVvYyB0b24gdGFpLCB2aWVjIA0K Y2hvbiBsdWEgdXUgdGllbiBraG9uZyBjbyBuZ2hpYSBsYSBxdXlldCBkaW5oIHRydW9jIG5odW5n IGRvYW5oIG5naGllcCBuYW8gZHVvYyBzb25nIA0KdmEgbmh1bmcgZG9hbmggbmdoaWVwIG5hbyBw aGFpIGNoZXQuDQoNCkNoaW5oIHNhY2ggdGllbiB0ZSwgbWEgdHJvbmcgdGFtIGxhIGNoYW5oIHNh Y2ggbGFpIHN1YXQsIGNhbiBwaGFpIHZ1YSBsYSBub2kgdHJ1IGFuIGJpbmggDQpkYW5nIGN1YSBj YWMgZG9hbmggbmdoaWVwIHRyb25nIGNvbiBraHVuZyBob2FuZywgdnVhIGxhIGRvbmcgbHVjIGxh dSBkYWkgdGh1YyBkYXkgc3UgDQpzdW5nIGR1bmcgaGlldSBxdWEgY3VhIGNhYyBuZ3VvbiB0YWkg bmd1eWVuIGRhdCBudW9jIHZpIG11YyB0aWV1IHBoYXQgdHJpZW4ga2luaCB0ZSBiZW4gDQp2dW5n IHZhIGNoYXQgbHVvbmcgY2FvLg0KDQpUaHUgYmEsIHZpZWMgTmdhbiBoYW5nIE5oYSBudW9jIFZp ZXQgTmFtIGtob25nIHRoZSBnaWFtIHNhdSBtdWMgbGFpIHN1YXQgY28gYmFuIA0KbmdheSB0cm9u ZyB0aW5oIGhpbmggc3V5IHRob2FpIGtpbmggdGUsIGN1bmcgbmh1IGhlIHRob25nIG5nYW4gaGFu ZyB0aHVvbmcgbWFpIGtob25nIA0KdGhlIGRpbmggZG9hdCBtdWMgbGFpIHN1YXQga2luaCBkb2Fu aCB0aWVuIHRlIHRoZW8gdGluIGhpZXUgdGhpIHRydW9uZyB2YSB0aGVvIGRhbmggZ2lhIHJ1aSAN CnJvIGN1YSByaWVuZyBobyBkbyBiaSBoYW4gY2hlIGJvaSBtb3QgZGlldSBsdWF0IGRhbiBzdSBs YSBuaHVuZyB0cm8gbmdhaSBraG9uZyBuZW4gY28gDQpjaG8gdmllYyB0aHVjIHRoaSBtb3QgY2hh bmggc2FjaCB0aWVuIHRlIGhpZXUgcXVhIG5oYW0gdGh1YyBkYXkgdGFuZyB0cnVvbmcga2luaCB0 ZSB0cm9uZyANCmRpZXUga2llbiBiaW5oIHRodW9uZyBob2FjIGR1b25nIGRhdSB2b2kgc3V5IHRo b2FpIGtpbmggdGUgdHJvbmcgZGlldSBraWVuIGtodW5nIGhvYW5nLg0KTGFpIHN1YXQgY28gYmFu LCBtb3QgY29uZyBjdSBkaWV1IGhhbmggY2hhbmggc2FjaCB0aWVuIHRlIHZpIG1vLCBraG9uZyB0 aGUgZHVvYyBzdSBkdW5nIA0KZGUgdGluaCB0b2FuIHZhIGRpZXUgY2hpbmggY2FjIHF1YW4gaGUg dmF5IG11b24gZGFuIHN1Lg0KDQpLaGkgbmVuIGtpbmggdGUgZGF0IG51b2MgbGFtIHZhbyBzdXkg dGhvYWkgbmdoaWVtIHRyb25nLCBtdWMgbGFpIHN1YXQgY28gYmFuIGNvIHRoZSBjaGkgDQpjb24g MCUsIG5odSBuaGlldSBuZ2FuIGhhbmcgdHJ1bmcgdW9uZyB0cmVuIHRoZSBnaW9pIGRhIGxhbSwg dGhpIGxhbSBzYW8gY28gdGhlIGFwIGR1bmcgDQptdWMgbGFpIHN1YXQgbmF5IGRlIHRpbmggZHVv YyB2aWVjIGNobyB2YXkgbmFuZyBsYWkgdHJvbmcgcXVhbiBoZSBkYW4gc3U/DQoNCktldCBxdWEg dG90IGRlcCBjdWEgZ29pIGtpY2ggY2F1IGhvIHRybyBsYWkgc3VhdCB0cm9uZyB0aG9pIGdpYW4g cXVhIGxhIG1vdCB2YW4gZGUga2hvbmcgDQpjYW4gYmFuIGNhaS4gTmh1bmcgbmh1bmcgYmFpIGhv YyBydXQgcmEgdHUgZG8gY3VuZyBkYW5nIGR1b2MgcXVhbiB0YW0gZGUgY28gdGhlIGNvIA0Kbmh1 bmcgbHVhIGNob24gdmUgY2hhbmggc2FjaCwgZ2lhaSBwaGFwLCBiaWVuIHBoYXAga2luaCB0ZSB2 aSBtbyBwaHUgaG9wIGhvbiB0dSBuYXkgdmUgDQpzYXUuIEN1b2kgY3VuZywgc3UgZHVuZyBkb25n IHRpZW4gbmdhbiBzYWNoLCBjdW5nIGxhIHN1IGR1bmcgZG9uZyB0aWVuIHRpZXQga2llbSBtYXUg dGhpdCANCmN1YSBuZ3VvaSBkYW4sIGxhIG1vdCB2aWVjIGNhbiBwaGFpIGR1b2MgbmdoaSBkaSBu Z2hpIGxhaSBuaGlldSBsYW4gdHJ1b2Mga2hpIHF1eWV0IGRpbmguIA0KDQpodHRwOi8vYmVlLm5l dC52bi9jaGFubmVsLzE5ODMvMjAwOTEwLzQwMDAta2hvYW4tY2hpLXNhaS1jdWEtZ29pLWtpY2gt Y2F1LWtob25nLW1hdC1tYXQtMTcyNjU1My8gMjcvMTAvMjAwOSAxOToxMToxNCANCg0KVGh1IHR1 b25nOiBHb2kga2ljaCBjYXUgZ2FuIDQwMDAga2hvYW4gY2hpIHNhaSANCg0KUXVhIHRoYW5oIHRy YSBjb25nIHRhYyBobyB0cm8gbGFpIHN1YXQsIHBoYXQgaGllbiAzLjkyMyBtb24gdmF5IHZpIHBo YW0sIHR1b25nIGR1b25nIA0KOC4zMzQgdHkgZG9uZy4gVmkgcGhhbSBuaGlldSBuaGF0IGxhIG8g bmdhbiBoYW5nIGNvIHBoYW4gdm9pIDUuOTE2IHR5IGRvbmcsIHRpZXAgZGVuIGxhIA0KY2FjIG5n YW4gaGFuZyB0aHVvbmcgbWFpIG5oYSBudW9jLiBEYXkgbGEga2V0IHF1YSBkdW9jIGNvbmcgYm8g dGFpIEhvaSBuZ2hpIHNvIGtldCANCmNvbmcgdGFjIGhvIHRybyBsYWkgc3VhdCBjdWEgY2FjIE5I VE0sIGNvbmcgdHkgdGFpIGNoaW5oIHZhIHF1eSB0aW4gZHVuZyBuaGFuIGRhbiBUVSANCmRpZW4g cmEgY3VvaSB0dWFuIHF1YS4gDQoNClZpZWMgc3UgZHVuZyB2b24gc2FpIG5odSBkYXUgdHUgdmFv IGxpbmggdnVjIGtob25nIHRodW9jIGRvaSB0dW9uZyBkdW9jIGhvIHRybywgY28gaGllbiANCnR1 b25nIHRydW5nIGxhcCBob2FjIG5oYW4gbm8gaGFpIGxhbiBob2FjIHRhaSBoYWkgdG8gY2h1YyB0 aW4gZHVuZyBraGFjIG5oYXUsIHZheSBkZSB0cmEgDQpubyBjdS4uLiBUcm9uZyBkbyBwaG8gYmll biBuaGF0IGxhIGNobyB2YXkgc2FpIGRvaSB0dW9uZywgdm9uIHZheSBraG9uZyBwaGFpIGR1bmcg ZGUgDQpkYXUgdHUgZHUgYW4gbW9pIGhvYWMgZGUga2luaCBkb2FuaCBoYW5nIHRpZXUgZHVuZyBj byBuZ3VvbiBnb2MgbmhhcCBraGF1LiANCg0KaHR0cDovL3d3dy5uYS5nb3Yudm4vaHR4L1ZpZXRu YW1lc2UvP05ld2lkPTQzNTQwI3NhOTRDME83ZUhvMSAoMy8xMS8yMDEwIDQ6MjM6MzEgUE0pIA0K DQpUaHUgdHVvbmc6IENhbiB0YW5nIGN1b25nIGhvbiBudWEga2luaCBwaGkgY2hvIG5ndW9pIG5n aGVvLCB4YSwgaHV5ZW4gbmdoZW8sIA0KdnVuZyBkYWMgYmlldCBraG8ga2hhbiwgdnVuZyBkb25n IGJhbyBkYW4gdG9jLCB0cm9uZyBkbyBjbyBraW5oIHBoaSBjaG8gdmllYyANCnhheSBkdW5nIG5v bmcgdGhvbiBtb2kuIENvIG5odSB2YXkgbW9pIHNvbSBydXQgbmdhbiBraG9hbmcgY2FjaCBjaGVu aCBsZWNoIGdpdWEgbm9uZyB0aG9uIHZhbyB0aGFuaCB0aGkuIA0KDQpodHRwOi8vdHJhbmRvbmdj aGFuLmJsb2dzcG90LmNvbS8yMDA4LzEyL2tpY2gtY2F1LXZhby10dWktY2FjLWFpLWdpYS5odG1s IFREQywgcG9zdGVkIGJ5IFRyYSBUdSBEbyAyMzoxMSANCg0KVGh1IHR1b25nOiBLaWNoIGNhdSB2 YW8gdHVpIGNhYyBkYWkgZ2lhICANCg0KSG9tIG5heSwgY2h1bmcgdG9pIGRhbmcgY2h1YW4gYmkg eGVtIHRyYW4gY2h1bmcga2V0IGx1b3QgZGkgY3VwIEFGRiBnaXVhIFZpZXQgTmFtIHZhIA0KVGhh aSBMYW4gdGhpIG5naGUgbW90IHRpbiBraG9uZyB2dWkuIEN1b2kgY3VuZywgbmh1IG1vaSBraGks IGNhYyBkYWkgZ2lhIHRpZXAgdHVjIGNoaWVuIA0KdGhhbmcgdHJvbmcgY3VvYyBjaGllbiBnaWFu aCB0aWVuIGtpY2ggY2F1IDEgdHkgVVNEIGN1YSBDaGluaCBwaHUuIA0KDQpDbyByYXQgbmhpZXUg eSBraWVuIGR1b2MgZHVhIHJhIHZlIHZpZWMgbmVuIHN1IGR1bmcga2hvYW4gdGllbiBuYXkgbmh1 IHRoZSBuYW8sIGJhbyBjaGkgDQp0aG9pIGdpYW4gcXVhIGN1bmcgZGFuZyB0YWkgbmhpZXUgeSBr aWVuIGN1YSBjYWMgY2h1eWVuIGdpYSBkYW5nIGNodSB5LiBOaHVuZyBjdW9jIGhvcCANCmNoaW5o IHBodSBob20gbmF5IGRhIGtldCBsdWFuIGxhIHNlIGR1bmcgc28gdGllbiBuYXkgZGUgaG8gdHJv IGxhaSBzdWF0LiBEYW5oIG5naGlhIGxhIG5odSANCnRoZSwgbmh1bmcgZG8gbGEgY2FjaCBkZSBj aGUgZGF5IHZhIGhvcCB0aHVjIGhvYSB2aWVjIGJvbSB0aWVuIGNobyBjYWMgZGFpIGdpYSBkYW5n IGxhbSANCm5hbiBkbyBubyBuZ2FuIGhhbmcgY2hvbmcgY2hhdCBtYSB2aWVjIHRyYSBsYWkgdGhv aSBoaWVuIG5heSBjdW5nIGtob25nIHRodWMgaGllbiBub2kuIA0KTHkgZG8gbGEgaGF1IGhldCBj YWMgZGFpIGdpYSBuYXkgZGV1IGJpIHNhIGxheSB2YW8gYmF0IGRvbmcgc2FuIHZvaSB0cmkgZ2lh IGNhIHRyYW0gbmdhbiB0eSBkb25nLg0KDQpDbyBoYW5nIGNodWMgZGFpIGdpYSBuaHUgdGhlLiBD aGFuZyBoYW4gbmh1IEhvYW5nIEFuaCBHaWEgTGFpLCBsYW4gbmF5IG1hIHRoYXQgYmFpIA0KdHJv bmcgdmllYyBodXkgZG9uZyB2b24gYmFuZyB2aWVjIG5pZW0geWV0IGxlbiB0aGkgdHJ1b25nIGNo dW5nIGtob2FuIGRlIGxheSB0aWVuIHRyYSBubyANCmNobyBuZ2FuIGhhbmcgdGhpIGNoYWMgY2hh biBzZSBsZW4gdGhvdC4gSGF5IG5odSBUYXAgZG9hbiBkYXUgdHUgU2FpIEdvbiBjdWEgZGFpIGdp YSANCkRhbmcgVGhhbmggVGFtIGN1bmcgZGFuZyBiZW5oIHJhdCBuYW5nIGtoaSBuZ2FuIGhhbmcg TmFtIFZpZXQgKE5hdmliYW5rKSBjdWEgdGFwIA0KZG9hbiBuYXkgcGhhaSBsaWVuIHR1YyBuYW5n IGxhaSBzdWF0IHRpZXQga2llbSBjYW8gbmhhdCB0aGkgdHJ1b25nIG5odW5nIHZhbiBraG9uZyBo dXkgDQpkb25nIGR1IHZvbiBkZSBnaXVwIHRyYSBubyBjYWMga2hvYW4gdmF5IHJhdCBsb24gY3Vh IGhvIHRhaSBjYWMgbmdhbiBoYW5nIGtoYWMuIERhaSBnaWEgDQpEaWVwIFRoaSBCYWNoIER1b25n IChjb25nIHR5IER1b25nIEJhY2ggRGllcCkgdGhpIGRhIGhvYW4gdG9hbiBzdXAgZG8ga2hpIG1h dCBraGEgDQpuYW5nIHRoYW5oIHRvYW4gbGFpIGxlbiBkZW4gMTUwIHR5IGRvbmcgbW90IHRoYW5n LiBIaWVuIG5heSBiYSB0YSBkYW5nIHZ1YSBiaSBxdWFuIHRodWMgDQp2dWEgZHVvYyBiYW8gaG8g Y3VhIENoaW5oIHBodS4gVGF0IGNhIGNhYyB0aW4gdHVjIGxpZW4gcXVhbiBkZW4gc3Ugc3VwIGRv IG5heSBkZXUgYmkgY2FtIA0KZHVhIGxlbiBiYW8gbGUgcGhhaSwgZGljaCB0aGFuIFRob25nIGRv YyBOZ3V5ZW4gVmFuIEdpYXUgcGhhaSBreSBjb25nIHZhbiBkZSBuZ2hpIEJvIA0KVGhvbmcgdGlu IFRydXllbiB0aG9uZyB2YSBCYW4gVHV5ZW4gZ2lhbyBUcnVuZyBVb25nICJiaXQgbWllbmciIGJh byBjaGkgdnUgbmF5IHZvaSANCmx5IGRvIGdpdSBvbiBkaW5oIHRhbSBseSB4YSBob2kuIA0KDQpU aW4ga2hvbmcgcGhvIGJpZW4gcm9uZyByYWkgdHUgTmdhbiBoYW5nIE5oYSBudW9jIGNobyBiaWV0 IHJhbmcgdHJvbmcgbmFtIDIwMDkgQ2hpbmggDQpwaHUga2hvbmcgdGhlIHRyYW5oIGtob2kgdmll YyBpbiB0aGVtIG1vdCBsdW9uZyB0aWVuIG1hdCBraG9uZyBsbyBkZSBjdXUgY2FjIG5nYW4gaGFu ZywgDQp0cm9uZyB0cnVvbmcgaG9wIGJhdCBkb25nIHNhbiB2YW4gZG9uZyBiYW5nIGxhbmggbHVu Zy4gQ2h1eWVuIGdpIHNlIHhheSByYSBjaGFjIHBoYWkgDQpuaG8gY2FjIGNodXllbiBnaWEga2lu aCB0ZSAibGUgdHJhaSIgcGhhbiB0aWNoLiANCg0KTmh1bmcgY2hpZW4gdGhhbmcgMi0xIGN1YSBW aWV0IE5hbSB0cnVvYyBUaGFpIExhbiBsYW0gbW9pIG5ndW9pIGRvIGJ1b24gbW90IGNodXQuIA0K Q2h1YyBtb2kgbmd1b2kgbW90IGRlbSBHaWFuZyBTaW5oIHZ1aSB0aGF0IHZ1aSBuaGUuDQoNClkg a2llbiBiYW4gZG9jOiAgIA0KDQpCdWxCdWwgIDIzOjU4IDIzLzEyLzIwMDg6IA0KQ2hpbmggc2Fj aCBvIFZOIGRhbmcgYmkgY2FjICJuaG9tIGxvaSBpY2giIHRhYyBkb25nIGtpbmgga2h1bmcuIENo dXllbiBuYXkgY3VuZyANCmtob25nIGdheSBuZ2FjIG5oaWVuIHZvaSBnaW9pIGtpbmggZG9hbmgu IEtob25nIG5vaSByYS4uLiBuaHVuZyBhaSBjdW5nIGJpZXQhIA0KDQpUVEtIICAwMTozMiAyNC8x Mi8yMDA4OiANCk5oYW4gZGlwIHRoYXkgY2EgdGhlIGdpb2kgYm9tIHRpZW4gdmFvIGtpY2ggdGhp Y2gga2luaCB0ZSBsYSBtYXkgY2h1IGN1bmcgbG9pIGR1bmcgY28gaG9pIA0KZGUgYmlwIGRhbiBr aWNoIHRoaWNoIGNvbmcgcXV5IGRvIHZhbyB0dWkgY2FjIGNodSEgDQoNCk5vbmUgIDAyOjM0IDI0 LzEyLzIwMDg6IA0KS2hvbiBuYW4gdGhhdCwgbmh1bmcga28gbmdhYyBuaGllbiB2aSBjYWkgY2hp bmggcGh1IG5heSBubyB0aG9pIG5hdCBjYSByb2kNCg0KTXIgQ29vbCAgMTg6MDUgMjQvMTIvMjAw ODogICANCkJhIEJhY2ggRGllcCB0aGkgYmF5IGdpbyBsYSBjYSB0cmVuIHRob3Qgcm9pLiBNb3Qg c28gbmdhbiBoYW5nIGRhIHJhIGNoaSB0aGkgZ3VpIGRlbiB0YXQgY2EgDQpjYWMgY2hpIG5oYW5o IGN1YSBtaW5oIG5naGllbSBjYW0gY2hvIGJhdCBreSBjb25nIHR5IG5hbyBjdWEgYmEgdGEgdmF5 IHRpZW4uIA0KDQpUTlQgIDAwOjAzIDI1LzEyLzIwMDg6IA0KTnVvYyBuZ2hlbyBuaGF0IHRoZSBn aW9pLG5odW5nIHZpZWMgdGlldSB0aWVuIGhvYW5nIHBoaSBjdWEgY2FjICdkYXkgdG8gbmhhbiBk YW4nIHRodW9jIA0KVE9QIHRoZSBnaW9pLg0KDQpUbyBIdW9uZyAgMjM6NTMgMjgvMTIvMjAwODog DQpbaHR0cDovL2RhbnRyaS5jb20udm4vU3VraWVuL0RvYW5oLW5oYW4tRHVvbmctVGhpLUJhY2gt RGllcC1kYW5nLW8tZGF1LzIwMDgvMTIvMjk5Nzc3LnZpcF0gDQpCYSBEdW9uZyBCYWNoIERpZXAg ZGFuZyBjbyBubyBxdWEgaGFuIDkwMCB0eSBkb25nIGhvbiAzIHRoYW5nIHF1YSBtYSBraG9uZyB0 cmEgDQpkdW9jIHRhaSBOZ2FuIGhhbmcgRG9uZyBOYW0gQSAoU0VBQkFOSyApLCBjaGkgbmhhbmgg byBkdW9uZyBMZSBMb2kgLCBRLjEuIE5nYXkgDQoyMC8xMiBCYSBEaWVwIGRlbiBOZ2FuIGhhbmcg dGhvbmcgYmFvIGxhIDI1LzEyIChOT0VMKSBzZSB0cmEgaGV0IDkwMCB0eSBubyBxdWEgaGFuIA0K bmF5LiBUdXkgbmhpZW4gZGVuIGhvbSBuYXkgdmFuIGNodWEgY28gMSBkb25nIG5hbyB0cmEgbWFj IGR1IG5oaWV1IHRoYW5nIHRydW9jIEJhIA0KRGllcCByYXQgY28gdXkgdGluIHRyb25nIHZpZWMg dHJhIG5vIE5ILiBIaWVuIE5IIERvbmcgTmFtIEEgZGFuZyBnYXAgcnV0IGRvaSBubyBiYSANCkRp ZXAgdmEgT25nIE5ndXllbiBTb24gVHJ1bmcgKG5ndW9pIG5oYSBCYSBEaWVwKSBtYXkgdGhhbmcg cXVhIHZhIHNlIGNvIGJpZW4gcGhhcA0KIHh1IGx5IGR1dCBkaWVtIHRhaSBzYW4gdGhlIGNoYXAg Y3VhIEJhIERpZXAgdHJ1b2MgMjUvMS8yMDA5IGRlIHRodSBob2kgbGFpIG5vIHZheS4gVGhvbmcg DQp0aW4gdGhlbSBsYSBCYSBEaWVwIHRodW9uZyBkZW4gTkggU0VBYmFuayBkZSBrZXUgY2EgdmEg Y2h1aSBib2kgYmFuIGxhbmggZGFvIE5nYW4gDQpoYW5nLCBiYW8gZ29tIGNhIEJhIE5ndXllbiBU aGkgTmdhLiBOZ29haSByYSBCYSBEaWVwIGNvbiBjbyBubyB2YXkgdGFpIDYgTkgga2hhYywgDQp0 cm9uZyBkbyBjbyAyIE5IIG1vaSBuZ2FuIGhhbmcgY2hvIHZheSAxMDAwIHR5IGRvbmcuIFRvbmcg Y29uZyB2YXkga2hvYW5nIDYwMDAgdHkgDQpkb25nIHRyZW4gc28gVFNUQyBoaWVuIG5heSBuZXUg ZHVvYyBkYW5oIGdpYSBsYWkgbGEgNDAwMC03MDAwIHR5IGRvbmcuIEhpZW4gbmF5IEJhIA0KRGll cCBraG9uZyBjb24gdGFpIHNhbiBuYW8gZGUgdGhlIGNoYXAgYm8gc3VuZyBjaG8gTkggbmhhbSBi YW8gZGFtIHR5IGxlIHRoZSBjaGFwIGNobyANCmtob2FuIHZheSBuaHUgQmEgVHUgSHVvbmcgdmkg Y28gYmFvIG5oaWV1IGxhIHRoZSBjaGFwIHZheSBoZXQgdHUgY3VvaSBuYW0gbmdvYWksIGRhdSAN Cm5hbSBuYXkgcm9pLiANCg0KU0VBQkFOSyBkYW5nIGxhcCBjb25nIHR5IHF1YW4gbHkgbm8gdmEg a2hhaSB0aGFjIHRhaSBzYW4gbmhhbSBxdWFuIGx5IHRhaSBzYW4gdGhlIA0KY2hhcCBkdW9jIHh1 IGx5IGN1YSBCYSBEaWVwLiANCg0KVGhlbyBEYW4gdHJpIHRoaSBCYSBEaWVwIG5vaSBraG9uZyBj byB2YXkgbW9pIE5IIGRlbiBjb24gc28gNzAwMCB0eSBuaHVuZyBuZ2FuIHR5IHRoaSANCmNvIGRh eS4gU0JWIGRhIGNvIHRob25nIGJhbyBjaG8gY2FjIG5nYW4gaGFuZyB5ZXUgY2F1IGJhbyBjYW8g Y2FjIGtob2FuIHZheSBjaG8gQ1R5IA0KRGllcCBCYWNoIER1b25nLCBCYSBEdW9uZyBUaGkgQmFj aCBEaWVwIHZhIE9uZyBOZ3V5ZW4gU29uIFRydW5nLiBUaGVvIFRvIEh1b25nIA0KdGhpIGJhIERp ZXAgbmVuIGNvbmcgdGFjIHZvaSBjYWMgTkgsIGRhYyBiaWV0IGxhIHZvaSBTRUFCYW5rIGRlIHh1 IGx5IGtob2FuIG5vIHZheSwgDQpnb3AgcGhhbiBkdWEgY2FjIHRhaSBzYW4gZG8gZHVvYyBkYXUg dHUgeGF5IGR1bmcgYm9pIGNhYyBuaGEgZGF1IHR1IGNvbiB0aWVtIGx1YywgdGhheSB2aSANCmdh eSBraG8ga2hhbiBjaG8gbmdhbiBoYW5nLCBraG9uZyBreSBjaHV5ZW4gdGVuLCB1eSBxdXllbiwg bGFuZy14ZSBvIG5odW5nIHRvIGJhbyBpdCBraW5oIG5naGllbS4gDQoNCmh0dHA6Ly93d3cudnRj LnZuLzEtMjE1ODIyL2tpbmgtZG9hbmgvYWktY2FuLWhvLXRyby1uaGF0LXR1LWdvaS1raWNoLWNh dS04LXR5LXVzZC5odG0gMjYvMDUvMjAwOSAyMDozMw0KDQpUaHUgdHVvbmc6IEFpIGNhbiBobyB0 cm8gbmhhdCB0dSBnb2kga2ljaCBjYXUgOCB0eSBVU0Q/IA0KDQpEQlFIIE5ndXllbiBEYW5oIFV0 IChLaWVuIEdpYW5nKSBiYXkgdG86IG8gbnVvYyB0YSwgY2hvIGR1YSB2dW5nIGNoYWMgbGEgbm9u ZyBkYW4gDQp2YSBub25nIG5naGllcC4gRG8gbGEgbG9pIHRoZSBuaHVuZyBjaHVhIGR1b2MgcXVh biB0YW0gZHVuZyBtdWMgdmEgY29uIG5oaWV1IGtobyANCmtoYW4sIHZpIHZheSBDaGluaCBwaHUg Y2FuIHhhYyBkaW5oIG11YyB0aWV1IHhheSBkdW5nIG1vdCBuZW4gbm9uZyBuZ2hpZXAgcGhhdCB0 cmllbiANCmJlbiB2dW5nIHZhIHRvYW4gZGllbi4gDQoNClZpIERCIG5heSBkZSB4dWF0IGdpYWkg cGhhcCBjdSB0aGUgQ2hpbmggcGh1IG5lbiBobyB0cm8gbW9pIGhhIGx1YSAxIHRyaWV1IGRvbmcg ZGUgbm9uZyANCmRhbiBjYWkgdGFvIGRhdCwgbXVhIGdpb25nLi4uIERvbmcgdGhvaSwgQ2hpbmgg cGh1IGNhbiBzb20gY28gY2hpbmggc2FjaCB0aHUgbXVhIHNhbiANCnBoYW0gbm9uZyBuZ2hpZXAg ZGUgZGFtIGJhbyBub25nIGRhbiBzYW4geHVhdCBjbyBsYWkuICJOb2kgbm9uZyBkYW4gc2FuIHh1 YXQgbGFpIDMwJSANCm5odW5nIHRodWMgcmEgbGFpIGtob25nIG5oaWV1IHRyb25nIGtoaSB0aHVv bmcgbGFpLCB0cnVuZyBnaWFuIHRodSBsb2kgZ2FwIDQgbmd1b2kgbm9uZyANCmRhbiIsIERCIE5n dXllbiBEYW5oIFV0IGNoaSByYSBtYXUgdGh1YW4uDQoNCi0NCmh0dHA6Ly93d3cudmlldG5hbW5l dC52bi9jaGluaHRyaS8yMDEwMDMvU2FwLXRob25nLXF1YS1MdWF0LUJpZW4tVmlldC1OYW0tODk5 MDk1LyAxNTozMCAxNi8wMy8yMDEwIChHTVQrNykNCg0KVGh1IHR1b25nOiBHdWkgdGFpIGxpZXUg Y2hvIFF1b2MgaG9pIG11b24gDQoNCkRhIG5oaWV1IGt5IGhvcCBRSCB4YXkgcmEgdGluaCB0cmFu ZyBjYWMgVUIgY3VhIFFIIHBoYWkgbmdoaSBjYWMgYnVvaSBob3AgUUggZGUgdGhhbSB0cmEgbmh1 bmcgZHUgdGhhbyBsdWF0IGd1aSBkZW4gbXVvbg0KDQpQaG8gQ2h1IHRpY2ggUUggTmd1eWVuIER1 YyBLaWVuIG5oYW4geGV0OiBEYSAxIG5hbSB0aHVjIGhpZW4gcXV5IGNoZSBwaG9pIGhvcCBnaXVh IFVCVFZRSCB2YSBDaGluaCBwaHUgbmh1bmcgdGllbiBkbyBraG9uZyBjaHV5ZW4gYmllbiBkdW9j IG1heSANCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNi0wNC1kdW9uZy1zYXQt Y2FvLXRvYy1raGktc28tbGlldS12YS10aHVjLXRlLWNhY2gteGEtbmhhdSBUYWMgZ2lhOiBIdXlu aCBUaGUgRHUNCg0KRHUgYW4gZHVvbmcgc2F0IGNhbyB0b2M6IEtoaSBzbyBsaWV1IHZhIHRodWMg dGUgY2FjaCB4YSBuaGF1IA0KDQpEdSBiYW8gbmh1IGNhdSBnaWFvIHRob25nIHZhIHRpbmggdG9h biBuYW5nIGx1YyB2YW4gdGFpIHRyb25nIEJhbyBjYW8gZGF1IHR1IGR1b25nIHNhdCBjYW8gdG9j IGNodWEgZHUgZG8gdGluIGNheS4gDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAt MDUtMjUtZHVvbmctc2F0LWNhby10b2MtZHVjLXRvYy1iYXQtZGF0LSBWdSBUaGFuaCBUdSBBbmgg MjYvMDUvMjAxMCAwNjowMCBHTVQrNw0KDQpEdW9uZyBzYXQgY2FvIHRvYzogIkR1YyB0b2MgYmF0 IGRhdCIhDQoNCkRlIGNvIHRoZSAibmhhbiBudXQiLCBEYWkgYmlldSBRdW9jIGhvaSBwaGFpIGJp ZXQgcm8gaG8gc2UgIm5oYW4gbnV0IiBjaG8gdmFuIGRlIG5hbywgDQpuaHUgdmF5LCBwaGFpIGNv IHRob25nIHRpbiBjaGluaCB4YWMgdmEgZGF5IGR1IHZlIGhpZXUgcXVhIGN1YSBkdSBhbiBkYXUg dHUuDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDUvQ2hpLWFuLW51 dC1raGktZHUtdGhvbmctdGluLTkxMTU5Mi8gMDc6NDMsIDIyLzA1LzIwMTAgKEdNVCs3KQ0KDQpR dW9jIGhvaSBraG9hIFhJSSAtIEt5IGhvcCB0aHUgYmF5DQoNCkRlIGFuIER1b25nIHNhdCBjYW8g dG9jOiANCg0KTmhpZXUgZGFpIGJpZXUgUXVvYyBob2kgY2hvIHJhbmcgY2h1YSBkdSB0aG9uZyB0 aW4gZGUgcXV5ZXQgZGluaCB2ZSBkdSBhbiBsb24gbmF5Lg0KDQpEQlFIIE5ndXllbiBMYW4gRHVu ZzogS2hvbmcgdGhlIHF1eWV0IGtoaSBraG9uZyBkdSB0aG9uZyB0aW4NCk5ldSBsYW4gbmF5LCBj aHVhIGR1IHRob25nIHRpbiBtYSBjdSB0aGUgYmFtIG51dCB0aG9uZyBxdWEsIHRoaSB0aGUgaGUg c2F1IHNlIGRhbmggZ2lhIA0KdGhlIG5hbyB2ZSBRdW9jIGhvaSBraG9hIG5heT8gUm8gcmFuZyBj aHV5ZW4gbmF5IGRhdCBkYWkgYmlldSB2YW8gdGluaCB0aGUgcmF0IGx1bmcgdHVuZy4gDQoNCihZ IGtpZW4gY3UgdHJpOiBNb3QgZHUgYW4gaG9uIDU1IHR5IGRvbGEsIHRob2kgZ2lhbiBkdSBraWVu IHRodWMgaGllbiB0cm9uZyBoYW5nIGNodWMgDQpuYW0sIG5lbiBjaGFuZyBDaGluaCBQaHUgY2Fu IGNodWFuIGJpIHRhaSBsaWV1IGRheSBkdSB2YSBndWkgUXVvYyBIb2kgc29tIGhvbiBkZSANCm5n aGllbiBjdXU7IHRydW9jIGt5IGhvcCAxIHZhaSB0aGFuZyB0aGkgdG90IGhvbjsgbmV1IGtob25n IGtpcCB0aGkgZGUga3kgaG9wIHNhdS4pIA0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQt bmFtLzIwMTAwNjAyLXZpZXQtbmFtLW5hbS10cm9uZy1zby1jYWMtbnVvYy1xdWFuLWxpZXUtbmhh dC1jaGF1LWEgVHJvbmcgTmdoaWEgMDItMDYtMjAxMA0KDQpWaWV0IE5hbSBuYW0gdHJvbmcgc28g Y2FjIG51b2MgcXVhbiBsaWV1IG5oYXQgY2hhdSBBLg0KDQpUcm9uZyBiYW4gbmdoaWVuIGN1dSB2 ZSBoaWV1IG5hbmcgaG9hdCBkb25nIGN1YSBoZSB0aG9uZyBoYW5oIGNoaW5oIHRhaSAxMiBuZW4g a2luaCB0ZSBjaGF1IEEgDQpjb25nIGJvIHZhbyBob20gMDIvMDYvMjAxMCwgVmFuIHBob25nIFRo YW0gdmFuIHZlIGNhYyBSdWkgcm8gS2luaCBUZSB2YSBDaGluaCB0cmkgUEVSQywgDQpkYSBsaWV0 IEFuIERvIHZhbyBkaWVuIHF1b2MgZ2lhIGNvIHRlIG5hbiBxdWFuIGxpZXUgbmdoaWVtIHRyb25n IG5oYXQsIGtlIGRlbiBsYSBJbmRvbmVzaWEgdmEgDQpQaGlsaXBwaW5lcy4gTmdheSBzYXUgYm8g YmEgZG8gbGEgVmlldCBOYW0gdmEgVHJ1bmcgUXVvYy4gDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92 aWV0bmFtZXNlL1ZpZXRuYW1lc2VOZXdzL3ZpZXRuYW1uZXdzL0J1dC1kb2luZy10aGUtcHJvamVj dC1ub3ctd2lsbC1mb2xsb3ctR3JlZWNlLXRvLWJhbmtydXB0Y3ktMDYwOTIwMTAxNzUyMjAuaHRt bCBSRkEgMDkuMDYuMjAxMA0KDQpUaHUgdHVvbmc6IFZOIHNlIHZhbyB2ZXQgeGUgSHkgTGFwIG5l dSBsYW0gZHVvbmcgc2F0IGNhbyB0b2MNCg0KRGFpIGJpZXUgVHJhbiBUaGkgUXVvYyBLaGFuaCBj dWEgSGEgTm9pIGNobyByYW5nIGNoaW5oIHBodSB2YXkgbm8gY2hvIG11YyB0aWV1IHF1YSANCnRo YW0gdm9uZywgbmdvYWkgdGh1YyB0ZSwgbGEgZGkgdmFvIHZldCB4ZSBkbyBjdWEgSHkgTGFwLCBr aGkgZG8gdGhpIGtob25nIGFpIGN1dTsgTmhhdCANCmxhIG51b2MgbWEgVmlldCBOYW0ga3kgdm9u ZyB2YXkgdm9uIGN1bmcgZGFuZyBuZ2FwIG5vIG51b2MgbmdvYWkgdG9pIGhvbiAyMDAlLiANCg0K TmhpZXUgZGFpIGJpZXUgY2FuaCBnaWFjIHJhbmcgbm8gT0RBIGtob25nIHBoYWkgbGEgdG90LCBk YSByYW5nIGJ1b2MsIGtob25nIGR1b2MgZGF1IA0KdGhhdSwgbWEgcGhhbiBsb2kgY29uIGNhbyBo b24gIG5vIHRodW9uZyBtYWkgcmF0IG5oaWV1LiAgDQoNCkRvaSB2b2kga3kgdm9uZyBjdWEgY2Fj IGRhaSBiaWV1IG5vaSBsYSBkdSBhbiBzZSBraWNoIGNhdSB2YXQgbGlldSB4YXkgZHVuZyB0cm9u ZyBudW9jLCANCmRhaSBiaWV1IE5ndXllbiBEaW5oIFh1YW4gY3VhIFRheSBOaW5oIGNoaSByYSBy YW5nIG5nYXkgbmh1IGNhdSBDYW4gVGhvIGN1bmcgZHVuZyANCnhpIG1hbmcgVGhhaSBMYW4sIHNh dCB0aGVwIGN1YSBudW9jIGtoYWMuICAgDQoNClBoYW4gYmFjIHkga2llbiB2ZSBsb2kgaWNoIGtp bmggdGUgY3VhIGR1b25nIHRhdSBjYW8gdG9jIHZhIG5oYSBnYSwgZGFpIGJpZXUgRHVvbmcgVHJ1 bmcgDQpRdW9jIG5vaSBuZ3VvaSBkYW4gbmdoZW8gc2FuIHNhbmcgY2hvbiBwaHVvbmcgdGllbiBy ZSB0aWVuIGhvbi4gT25nIHBoYW4gdGljaDogMjAgbmFtIA0KbnVhIGR1IGNvIHRpbmggR0RQIGJp bmggcXVhbiBsYSAzIG5nYW4gZG8gbGEgbW90IG5ndW9pIHRoaSBwaGFuIGJvIEdEUCBkbyBvIGRh dSwgDQpuZ3VvaSBuZ2hlbyBjbyBjb24gbmhpZXUga2hvbmcsIGJvIHRpZW4gYmFuZyAzIHBoYW4g dHUgZ2lhIHZlIG1heSBiYXkgbGlldSBobyBjbyBjaGl1IA0Ka2hvbmc/IE9uZyBEdW9uZyBUcnVu ZyBRdW9jIGdvaSB0aW5oIHRvYW4gbmh1IGR1IGFuIGRhIHRpbmggbGEgdGluaCB0b2FuIGN1YSBu aHVuZyANCm5ndW9pIGRpIGxhaSBiYW5nIHRpZW4gTmhhIG51b2MuIA0KDQpEYW4gYmlldSBEdW9u ZyBUcnVuZyBRdW9jIGNvbiBkb2kgaG9pIHZpZWMgYmFtIG51dCBiaWV1IHF1eWV0IGN1YSBjYWMg ZGFpIGJpZXUgcGhhaSANCmR1b2MgbWluaCBiYWNoIGRlIGNhYyB0aGUgaGUgdmUgc2F1IGJpZXQg YWkgdW5nIGhvIGFpIHBoYW4gZG9pLCBraGkgaGF1IHF1YSBjdWEgZHUgYW4gDQp4YXkgZGVuIGNo byBkb2kgc2F1Lg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA2L05l dS12by1uby1OaGF0LUJhbi1jby1jdXUtY2h1bmctdGEtOTE0OTczLyAgMDkvMDYvMjAxMCAoR01U KzcpDQoNClFIIHRoYW8gbHVhbiBkdSBhbiBEU0NUOiAnTmV1IHZvIG5vLCBOaGF0IEJhbiBjbyBj dXUgY2h1bmcgdGEga2hvbmc/Jw0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3dv cmxkLzIwMTAvMDYvMTAwNjExX2phcGFucG1fd2FybmluZy5zaHRtbCAxMS82LzIwMTAgDQoNClRh biBUaHUgdHVvbmcgTmhhdCBCYW4gbm9pIG51b2MgbmF5IGNvICJydWkgcm8gYmkgc3V5IHN1cCIg dmkgZ2FuaCBuYW5nIG5vIG5hbiBraG9uZyBsby4NCg0KT25nIE5hb3RvIEthbiwgdHJvbmcgYmFp IGRpZW4gdmFuIGxvbiBkYXUgdGllbiBrZSB0dSBraGkgbmhhbSBjaHVjLCBub2kgTmhhdCBCYW4g Y2FuIA0KdGFpIGNvIGNhdSB0YWkgY2hpbmggZGUgdHJhbmggZGkgbW90IGN1b2Mga2h1bmcgaG9h bmcgdHVvbmcgdHUgbmh1IHRhaSBIeSBMYXAuDQoNCk5oYXQgQmFuIGNvIG5ndXkgY28gc3V5IHN1 cCB2aSBubyEgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAy NC8yMDEwMDYwOTAxMDE0MC5hc3B4IDA5LzA2LzIwMTAgMTowMSANCg0KVHJhbmggbHVhbiBxdXll dCBsaWV0IHRhaSBRdW9jIGhvaSB2ZSBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyAtIDM3IHkga2ll biBwaGF0IGJpZXUgDQpraG9uZyBkb25nIHF1YW4gZGllbSB2ZSBjaHUgdHJ1b25nIGRhdSB0dSBn YW4gNTYgdGkgVVNEIGNobyBkdSBhbiBuYXkNCg0KREIgVnUgUXVhbmcgSGFpIChIdW5nIFllbikg cGhhdCBiaWV1OiAiSGllbiB0aGVvIHRpbmggdG9hbiBzbyBibyBkdSBhbiBjYW4gNTYgdGkgVVNE IA0Kbmh1bmcgdGh1b25nIHhheSBuaGEgZGEgZ2FwIDEsNSBob2FjIDIgbGFuIHZvbiB1b2MgdGlu aCwgdGhlIHRoaSBjb24gc28gdGh1YyB0ZSBkYXUgdHUgZHUgDQphbiBuYXkgY28gdGhlIGxhIDkw IHRpIFVTRCBob2FjIGNhbyBob24sIGJhaSB0b2FuIHRyYSBubyBxdW9jIGdpYSBzZSB0aGUgbmFv PyIsIA0KDQpEQiBIYSBUdWFuIEhhaSAoUGh1IFRobykgZGUgbmdoaTogQ2h1YSBuZW4gZGF1IHR1 IHhheSBkdW5nIGR1b25nIHNhdCBjYW8gdG9jIGhpZW4gDQpuYXksIGx1aSBsYWkgc2F1IDIwMjAu IERhdSB0dSB2b24gY2hvIGdpYW8gdGhvbmcgbm9uZyB0aG9uLCB2dW5nIHNhdSB2dW5nIHhhIGRl IHJ1dCBuZ2FuIA0Ka2hvYW5nIGNhY2ggZ2lhdSBuZ2hlbyBnaXVhIG5vbmcgdGhvbiAtIGRvIHRo aS4gICANCg0KUGhvIGNodSBuaGllbSBVeSBiYW4gQ2FjIHZhbiBkZSB4YSBob2ksIG9uZyBEYW5n IE5odSBMb2kgY3VuZyBub2kgdGhhbmcgUUggY2hpIG5lbiANCnRob25nIHF1YSBtb3QgY2hpIHRp ZXQgZHV5IG5oYXQgdHJvbmcgdG9hbiBibyBiYW8gY2FvIGN1YSBDaGluaCBwaHUsIGRvIGxhIHRh biB0aGFuaCBjaHUgDQpkYXUgdHUgZHUgYW4gbGEgVG9uZyBjb25nIHR5IGR1b25nIHNhdCBWTiwg Y29uIHRhdCBjYSBjYWMgbm9pIGR1bmcga2hhYyBwaGFpICJnYWMgbGFpIiANCnZhIGRlIG5naGkg Y2FuIGNvIGhvaSBkb25nIHRoYW0gZGluaCB0aGF0IGt5IGR1IGFuIHRydW9jIGtoaSBxdXlldCBk aW5oIGNodSB0cnVvbmcgZGF1IA0KdHUuIA0KDQpDaHUgbmhpZW0gVXkgYmFuIFBoYXAgbHVhdCBj dWEgUUggTmd1eWVuIFZhbiBUaHVhbiBjdW5nIG5vaTogIkhheSBkZSBkZW4gbmFtIDIwMjAgDQpr aGkgZGF0IG51b2MgY2h1bmcgdGEgY28gYmFuIHRybyB0aGFuaCBudW9jIGNvbmcgbmdoaWVwLCBj b24gY2hhdSBjaHVuZyB0YSBsdWMgZG8gDQp0aG9uZyBtaW5oIGhvbiBjaHVuZyB0YSwgZ2lvaSBo b24gY2h1bmcgdGEgc2UgdGluaCBkdSBhbiBuYXkiLiANCk9uZyBUaHVhbiBkYXQgcmEgaGFuZyBs b2F0IG1vaSBsbzoga2hpIHRpbmggdG9hbiB0cm9uZyBjYWMgZHUgYW4gdGhpIGNodW5nIHRhIG5v aSByYXQgaGF5IA0Kbmh1bmcgdGh1YyB0ZSBraG9uZyBwaGFpIG5odSB2YXkuIE9uZyBkYW4gY2h1 bmcgbGEgZHVvbmcgSG8gQ2hpIE1pbmgga2hvbmcgdGFwIG5hcCB4ZSBjbyBkaSBsYWkgDQpuaHUg dGh1eWV0IG1pbmggYmFuIGRhdTsgY2h1b25nIHRyaW5oIG1pYSBkdW9uZyBoYW5nIG5naGluIHRp IGRvbmcgcGhhIHNhbjsgbmFuZyBsdWMga2hhaSANCnRoYWMgY3VhIGNhbmcgQ2FpIExhbiBrZW0g aGlldSBxdWEsIC52LnYuDQoNCiJIYXkgZHVuZyBsYWkgZHUgYW4gbmF5IGRlIGNvbiBjaGF1IGNo dW5nIHRhIHRoYXkgbWF0IGNodW5nIHRhIGxhbSB0aWVwLCBkb2kgY2h1bmcgdGEgDQpzdXkgbmdo aSBjaG8gY29uIGNoYXUgdGhlIG5heSBsYSBkdS4gVGhheSB2YW8gZG8sIHRhcCB0cnVuZyBtb2kg bmd1b24gbHVjIGRlIGdpYWkgcXV5ZXQgDQp0cmlldCBkZSB2YW4gbmFuIGdpYW8gdGhvbmcgbyBI YSBOb2ksIFRQLkhDTSB0cm9uZyBtdW9pIG5hbSB0b2k7IGdpYWkgcXV5ZXQgYmFuZyBkdW9jIA0K Y29uIGR1b25nIGNhbyB0b2MgQmFjIC0gTmFtLCB0aGFtIGNoaSB4YXkgZHVuZyBkdW9uZyB0cmVu IGNhbyBkZSB0cmFuaCBtdWEgbXVhIGx1IG8gDQptaWVuIFRydW5nLCBjYWkgdGFvIGR1b25nIHNh dCBraG8gZG9pIDFtNDUgdm9pIHRvYyBkbyAyMDAgY2F5IHNvL2dpby4gVG9pIG5naGkgZG8gbGEg DQptb24gcXVhIHJhdCBxdXkgZGFuaCBjaG8gdGhlIGhlIHNhdSIgLSBDaHUgbmhpZW0gVXkgYmFu IFBoYXAgbHVhdCBjdWEgUUggTmd1eWVuIFZhbiBUaHVhbg0KDQoiRG9jIFRvIHRyaW5oIGN1YSBC byBLSC1EVCB0aGkgdG9pIG1vaSB2byBsZSByYSBsYSB0b2FuIGJvIGNhYyB0aGFuaCB2aWVuIGN1 YSBIb2kgZG9uZyANCnRoYW0gZGluaCBuaGEgbnVvYyBtYSBjaHVuZyB0b2kgcmF0IHRpbiB0dW9u ZywgaG9hIHJhIGtob25nIGNvIGJhdCBreSBtb3QgY2h1eWVuIGdpYSANCm5hbyB2ZSBkdW9uZyBz YXQsIGRheSB0b2FuIGxhIHF1YW4gY2h1YyB0aG9pLCAxIGRvbmcgY2hpIGJvIHRydW9uZyB2YSA4 IGRvbmcgY2hpIHRodSANCnRydW9uZy4gTmV1IG5odSB0aGUgdGhpIGNvIGtoYWMgZ2kgQ2hpbmgg cGh1IHRodSBuaG8sIHF1eWV0IGRpbmggY3VhIEhvaSBkb25nIHRoYW0gDQpkaW5oIG5oYSBudW9j IGF5IHZvaSBDaGluaCBwaHUga2hhYyBnaSBuaGF1PyIgLSBEQiBOZ3V5ZW4gTWluaCBUaHV5ZXQs IExhbmcgU29uICANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDYvM0JB MUQyN0IvIDE5LzYvMjAxMCwgMTU6NDEgR01UKzcgDQoNClRodSB0dW9uZzogQ2hpZXUgMTkvNi8y MDEwLCBRdW9jIGhvaSBraG9hIFhJSSBkYSAnYmFjIGJvJyBkdSBhbiBkdW9uZyBzYXQgY2FvIHRv YyAtIE1vdCBxdXlldCBkaW5oIGxpY2ggc3UhICANCg0KQ2hpIGNvIDM3JSBzbyBkYWkgYmlldSB0 YW4gdGhhbmggKGtob25nIHF1YSBiYW4pLCA0MSUga2hvbmcgdGFuIHRoYW5oLCBjaHUgdHJ1b25n IHhheSBkdW5nIGR1IGFuIA0KZHVvbmcgc2F0IGNhbyB0b2MgdHJpIGdpYSA1NiB0eSBVU0QgZG8g Q2hpbmggcGh1IHRyaW5oIGRhIGtob25nIGR1b2MgUXVvYyBob2kgdGhvbmcgcXVhLg0KDQpodHRw Oi8vdHVhbnZpZXRuYW0ubmV0LzIwMTAtMDYtMTgtZHUtYW4tZHVvbmctc2F0LWNhby10b2MtcXVv Yy1ob2ktdnVvdC1sZW4tY2hpbmgtbWluaCBHcy5Uc2toLiBOZ3V5ZW4gTmdvYyBUcmFuIDE4LzA2 LzIwMTAgMDY6MzAgR01UKzcNCg0KVGh1IHR1b25nOiBEdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBC YWMgLSBOYW0gZGEgZHVvYyBsYW0gdm9pIHZhLCBuaGlldSBsbyBob25nIHZhIGx5IGxlIGtob25n IGR1IHN1YyB0aHV5ZXQgcGh1YzsNCg0KRG8gbGEgc3UgdGhhdCBiYWkgY3VhIGxlIHRob2kgcXVh biBsaWV1LCBjdWEgdmllYyB0cmluaCB2b2kgdmEgbW90IHNhbiBwaGFtIGNodWEgZHUgZG8gY2hp biBtYSBsYWkgbXVvbiBRdW9jIGhvaSB0aG9uZyBxdWEgZGUgY2hvIGtpcCB2b2kgbW90ICJrZSBo b2FjaCIgZHVvYyB0aW5oIGx1aSB0cm8gbGFpIHR1IHRob2kgZGllbSBkdSBraWVuIHNlIHRyaWVu IGtoYWk7DQoNCkRvIGxhIHZhcCBuZ2EgY3VhIG1vdCBjYWNoIG5naGksIGN1YSBtb3QgcXVhbiBu aWVtIGtob25nIGR1bmcgdmUgY2h1YyBuYW5nIG5oaWVtIHZ1IGN1YSBRdW9jIGhvaSBkYSBkdW9j IEhpZW4gcGhhcCBxdXkgZGluaC4gDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2Uv dmlldG5hbS8yMDEwLzA2LzEwMDYyMF9uYV9zaGlua2Fuc2VuLnNodG1sIDAyOjQ4IEdNVCAyMC82 LzIwMTAgDQoNClF1b2MgaG9pIGtob25nIHRob25nIHF1YSBzaWV1IGR1IGFuIGR1b25nIHNhdCBj YW8gdG9jIEhhIE5vaZZUUEhDTQ0KDQpEYWkgYmlldSBOZ3V5ZW4gTWluaCBUaHV5ZXQsIHRpbmgg TGFuZyBTb24sIGR1b2MgYmFvIFRoYW5oIE5pZW4gZGFuIGxvaSBub2kgDQpvbmcgImJhdCBuZ28g dHJ1b2Mga2V0IHF1YSBjdW9pIGN1bmciLg0KDQoiTW90IGR1IGFuIHRpZXUgcmF0IG5oaWV1IHRp ZW4gKDUwJSBHRFAgY3VhIGNhIG51b2MpIG1hIGtob25nIGNvIGhpZXUgcXVhIA0Ka2luaCB0ZSB0 aGkgY2hhYyBjaGFuIGxhIGtob25nIHRoZSB0aG9uZyBxdWEgZHVvYywgdGhvbmcgcXVhIG5odSB0 aGUgdGhpIA0KY28gdGhlIG5vaSBsYSBraG9uZyB0aGUgaGllbiBkdW5nIGR1b2MgeSBuZ3V5ZW4g Y3VhIGRhbi4iIA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9wcm9ncmFtcy9SZWFk aW5nQmxvZ3MvVmlldG5hbS1vZmZpY2lhbHMtbm93YWRheXMtdGhpbmstb25seS1hYm91dC10aGVp ci1nZW5lcmF0aW9uLU5oSGllbi0wNjA5MjAxMDIxMjMwMy5odG1sIDIwMTAtMDYtMDkgTmhhdCBI aWVuLCB0aG9uZyB0aW4gdmllbiBSRkENCg0KS2hpIGxhbmggZGFvIHF1b2MgZ2lhIGNoaSBiaWV0 IGRlbiBoaWVuIHRhaT8NCg0KRHUgYW4gZHVvbmcgdGF1IGNhbyB0b2MgVmlldCBOYW0gdmFuIGxh IGRlIHRhaSBzb2kgbm9pIHRyb25nIHBoaWVuIGhvcCBRdW9jIGhvaSBob20gDQowOC8wNi8yMDEw LCB0cm9uZyBkbyBjYWMgZGFpIGJpZXUgbmV1IG5oaWV1IHkga2llbiBraGFjIGJpZXQgdmUgdmll YyBuZW4gaGF5IGtob25nIG5lbiANCnRodWMgaGllbi4NCg0KS2hpIGR1IGFuIGR1b25nIGNhbyB0 b2MgQmFjIE5hbSBkdW9jIGNoaW5oIHBodSBkdWEgcmEgcXVvYyBob2kgZGUgeGVtIHhldCwgdGhh byBsdWFuLCANCm5odW5nIG5ndW9pIGJhbyB2ZSBkdSBhbiBkYSByYSBzdWMgdGh1eWV0IHBodWMg cXVvYyBob2kgdmEgZHUgbHVhbiBiYW5nIG5odW5nIGxhcCBsdWFuIA0KZGF5IGxhYyBxdWFuLCBu aHVuZyBsYWkgdGhpZXUgY28gc28ga2hvYSBob2MsIHRoaWV1IHRpbmggdGh1YyB0ZSwgdGhhbSBj aGkgbGlldSBsaW5oIHZhIHZvIA0KdHJhY2ggbmhpZW0gZGVuIG11YyBraG9uZyB0aGUgaGlldSBu b2kuIFRvIFR1YW4gVmlldCBOYW0gdnVhIHF1YSB0cm9uZyBiYWkgdmlldCB2ZSANCm5odW5nIHBo YXQgbmdvbiBhbiB0dW9uZyB0cm9uZyB0dWFuLCBkYSBkaWVtIGxhaSBuaHVuZyBjYXUgbm9pIGN1 YSBjYWMgdmkgYm8gdHJ1b25nLCANCmNhYyBkYWkgYmlldSB1bmcgaG8gc2lldSBkdSBhbiBuYXku IEJhaSB2aWV0IGNvIHR1YSBkZSAiIFBoYXQgbmdvbiBhbiB0dW9uZzogVmF5IG5vIHU/IA0KTG8g Z2ksIGNvbiBjaGF1IHRhaSBnaW9pIGhvbiBzZSB0cmEiIGxheSB5IHR1IGNhdSBwaGF0IGJpZXUg Y3VhIFBobyBDaHUgbmhpZW0gVUIgUGhhcCANCmx1YXQgY3VhIFF1b2MgaG9pIFRyYW4gRGluaCBM b25nOiAiTWFpIHNhdSB0aGUgaGUgY29uIGNoYXUgdGFpIGdpb2kgaG9uIGNodW5nIHRhIHNlIGxh bSANCnRoYXkiLiBOaGlldSBCbG9nZ2VycyBkYSBidWMgeHVjIGxlbiB0aWVuZyB2ZSBsb2kgcGhh dCBiaWV1IG5heS4NCg0KQWkgc2UgdHJhIG5vPw0KDQpWb2kgY2FpIHR1YTogIkFpIHNlIHRyYSBu byBjaG8gY2h1bmcgdGE/IiBuaGEgdmFuIE5ndXllbiBRdWFuZyBMYXAgbmhhYyBsYWkgY2F1IG5v aSANCmN1YSBvbmcgVHJhbiBEaW5oIExvbmcgdmEgY2hvIHJhbmc6ICIuLi5UdSB0cm9uZyB5IHR1 IG1hIHN1eSBjbyB0aGUgeWVuIHRhbSBuaHVuZyANCm1vbiBubyBraG9uZyBsbyBzZSBkdW9jIGNh YyB0aGUgaGUgbWFpIHNhdSB0aGFuaCB0b2FuIG5nb24gbGFuaC4gT2suIE5ldSBkdW9jIHZheSB0 aGkgDQpxdWEgbXVuZy4gTmh1bmcgdGh1IHhlbSB0aGUgaGUgbWFpIHNhdSBkYW5nIHNvbmcgbmh1 IHRoZSBuYW8sIGRlIHR1IGRvIHN1eSByYSBsaWV1IA0KY2h1bmcgY28ga2hhIG5hbmcgdHJhIG5v IGNobyBjaHVuZyB0YS4uLiIgTmhhIHZhbiBkdWEgcmEgbmh1bmcgYnVjIGFuaCBzb25nIGRvbmcs IGNvIHN1YyANCmJpZXUgaGllbiBob24gbmdhbiBsb2kgbm9pLCBkYSBjaG8gbmd1b2kgeGVtIHRo YXkgY3VvYyBzb25nIGN1YSB0cmUgZW0gVk4gaGllbiBuYXkgDQoiVHJvbmcga2hpIG1vdCBzbyBj YWMgZW0gc29uZyB0cm9uZyBuaHVuZyBsdWEgdGhpIGRhIHBoYW4gY2FjIGVtIGRhbmcgc29uZyBk dW9pIGNoYW4gDQpuaHVuZyBraHUgcnVuZyB0cnVpLi4uIiwgIkRhbmcgc29uZyBiZW4gbmh1bmcg ZG9uZyBzb25nIG8gbmhpZW0iLCAiRGFuZyBzb25nIG5vaSANCmhhbiBoYW4gdHJpZW4gbWllbiwg bmd1b24gbnVvYyBkYW5nIGRhbiBraG8ga2lldCIsICJWYSBjaHVuZyBwaGFpIGxhbyBkb25nIHZv IGN1bmcgDQpjdWMgbmhvYyIsICJUaGFtIGNoaSBwaGFpIGJvaSByYWMga2llbSBhbiIsICJUaGFt IGNoaSBwaGFpIGFuIHRodSBjaG8gbWVvIGNoZSIsICJCaSANCmRhbmggZGFwIGRhIG1hbiIsICJN dW9uIGRlbiB0cnVvbmcgcGhhaSBkYW5oIGR1IHRyZW4gY2FwIHRyZW8gbmh1IHRoZSBuYXkiLCAi RGVuIA0KZHVvYyB0cnVvbmcgcm9pIHRoaSBwaGFpIG5odW5nIG1pbmggdHJvbmcgbW90IG5lbiBn aWFvIGR1YyBuaGlldSB0aWV1IGN1YyB2YSBiYXQgDQpjYXAiLi4uQ2F1IHRyYSBsb2kgdHUgZG8g bGEgcmF0IHJvIHJhbmc6ICJLaG9uZyB0YW8gZHVvYyBtb2kgdHJ1b25nIHNvbmcgdG90IGRlcCBj aG8gY2FjIA0KZW0gdGhpIGR1bmcgbW8gY28gbW90IHRoZSBoZSB0dW9uZyBsYWkgdHJhIG5vIGdp dW0uICA2IHRpIGRvIGRhdSB0dSBtb2kgdHJ1b25nIHNvbmcgY2hvIA0KdGhlIGhlIHR1b25nIGxh aSBoYXkgNTYgdGkgZG8gbGFtIHRhdSBjYW8gdG9jIGNoaSBkZSBjaG8gbmd1b2kgdmEgaGFuaCBs eSB4YWNoIHRheSwgY2FpIG5hbyANCmxvaSBob24sIGtob25nIG5vaSBtb2kgbmd1b2kgY3VuZyBk YSByby4iDQoNCktob25nIGNoaSBsYSB0aG9pIGNob2kgc2FuZywgY2FuIGJlbmggdGhpY2ggbGFt IGNhaSBnaSBjdW5nIHRvLCBjdW5nIGhvYW5oIHRyYW5nLCBtYSB0aGF0IA0KcmEsIGNhaSBseSBk byB0aGF0IHN1IG1hIGFpIGN1bmcgbmdhbSBoaWV1IHRyb25nIHZpZWMgdGFpIHNhbyBjYW5nIG5n YXkgY2FjIHZpIGxhbmggZGFvIA0KRGFuZyB2YSBuaGEgbnVvYyBWaWV0IE5hbSB0dSB0cmVuIHh1 b25nIGR1b2kgY3UgbXVvbiAiY2hheSIgZHUgYW4sICJkZSIgcmEgbmh1bmcgDQpjb25nIHRyaW5o IHZpIGRhaSwgY2hpbmggbGEgZGUgYW4gYm90IGFuIHhlbiB2YW8gZG8sIGNvbmcgdHJpbmggY2Fu ZyB0bywgZHUgYW4gY2FuZyBsb24gdGhpIA0KdGllbiBob2EgaG9uZywgdGllbiBhbiBib3QgY2Fu ZyBuaGlldS4gTG9uZyB0aGFtIGNvbmcgdm9pIGtpZXUgdHUgZHV5IG5oaWVtIGt5IGNoaSB0aGF5 IA0KY2FpIGxvaSB0cnVvYyBtYXQsIGNoaSBiaWV0IHZvIHZldCB2ZSBwaGFuIG1pbmggY29uIG1v aSBzdSByYSBzYW8sIHNhdSBuYXkgaGF5IHRpbmggZGEgDQpraGllbiBjYWMgdmkgYmF0IGNoYXAg bW9pIGxvaSBwaGFuIGJpZW4gY28gbHkgY28gdGluaCBjdWEgbmd1b2kgZGFuLCBiYXQgY2hhcCBt b2kgc3UgdGh1YSANCmxvLCB0aGlldCBoYWkgZGEgdGhheSBuZ2F5IHR1IGRhdSBkZSBxdXlldCBs YW0gY2hvIGJhbmcgZHVvYy4gDQogDQpOaHUgdHJvbmcgZHUgYW4gZHVvbmcgc2F0IGNhbyB0b2Mg QmFjIE5hbSBuYXkgY28gdm8gc28gbmh1bmcgY2FpIHBoaSBseSwgYmF0IGxvaSBkYSANCmR1b2Mg dmFjaCByYS4gRHVuZyBtb3QgdmkgZHUgdmUgY2h1eWVuIHhheSBuaGEgY2hvIGNoYXUgbm9pIGRl IHNvIHNhbmggdm9pIGNodXllbiB4YXkgDQpkdW9uZyBzYXQgbWF5IGNodWMgbmFtIG51YSBtb2kg aG9hbiB0aGFuaCwgdHJvbmcgYmFpICJEdW9uZyBzYXQgY2FvIHRvYzogeGF5IG5oYSBjaG8gDQpj aGF1IG5vaSB0dW9uZyBsYWkiLCB0YWMgZ2lhIFRyYW4gVHJ1bmcgQ2hpbmggdmFjaCByYSBtb3Qg dHJvbmcgbmh1bmcgY2FpIHBoaSBseSByYW5oIA0KcmFuaCBjdWEgdmllYyB0YWkgc2FvIHBoYWkg dGh1YyBoaWVuIGR1IGFuIG5heSBuZ2F5IHR1IGJheSBnaW86ICJUb2kgbmFtIG5heSA0NyB0dW9p LiBWaSANCmNvIHZvIG11b24gbmVuIGNvbiB0b2kgbW9pIDUgdHVvaS4gRHUga2llbiAyMCBuYW0g bnVhIHRoaSB0b2kgY28gY2hhdSBub2kuIEhpZW4gbmF5IHRvaSANCmRhIGdvbSBnb3AgdGllbiBt dWEgZHVvYyBtb3QgbWllbmcgZGF0IGJlIGJlLiBUb2kgc2UgYmF0IGRhdSB4YXkgbmhhIGNobyBj aGF1IG5vaSB0b2kgDQp0dSBiYXkgZ2lvLiBYYXkgdGhlbyBraWV1IG5oYSBuZ2hlbywgZ29tIGR1 b2MgZG9uZyBuYW8geGF5IGRvbmcgZG8uIEJhIG11b2kgbmFtIA0Kc2F1LCB0b2kgc2UgY28gZHVv YyBuZ29pIG5oYSBjaG8gY2hhdSBub2kgdG9pIG8uIA0KDQpCYWkgdG9hbiBjdWEgdG9pIG8gdHJl biBjaGluaCBsYSBiYWkgdG9hbiBsYW0gZHVvbmcgc2F0IGNhbyB0b2MgY3VhIFZpZXQgTmFtLiBN b3QgYmFpIA0KdG9hbiB0cm9pIG9pIGRhdCBob2khIE9uZyBub2kgeGF5IGJhIG11b2kgbmFtIG1v aSB4b25nIG5nb2kgbmhhIGNobyBjaGF1IG8uIERlbiBsdWMgDQp4YXkgeG9uZyB0aGkgZHVhIGNo YXUgbm9pIG5vIGNoZSBuaGEgeGF5IGtpZXUgbGFjIGhhdSwgbm8ga2hvbmcgdGhlbSBvLiBObyBi ZW4gZGFwIGRpIA0KbW90IGNhY2gga2hvbmcgdGh1b25nIHRpZWMuIE5vIHhheSBsYWkgbW90IG5n b2kgbmhhIGhpZW4gZGFpIGhvbiB0aGUgY2hpIHRyb25nIHZvbmcgbnVhIA0KbmFtLi4uDQoNCk9p IG9uZyBUb25nIGdpYW0gZG9jIFRvbmcgY29uZyB0eSBkdW9uZyBzYXQgVmlldCBOYW0sIG5ndW9p IHZ1YSB0cmEgbG9pIHJ1bSBiZW5nIA0KdHJlbiBiYW8sIG9uZyBjbyB0aGUgdHJhIGxvaSBjYXUg aG9pIG5heSBjdWEgdG9pIGtob25nOiBOZXUgYmF0IGRhdSB4YXkgZHVuZyB0dSBiYXkgZ2lvIGRl IA0KZGVuIG5hbSAyMDM1IGhvYW4gdGhhbmgsIHRhaSBzYW8ga2hvbmcgZGUgZGVuIG5hbSAyMDMw IHhheSBkdW5nIGRlIDUgbmFtIHNhdSwgbGEgbmFtIA0KMjAzNSBob2FuIHRoYW5oPw0KVHJ1b2Mg ZGF5IHRvaSBjdSBuZ28sIG1vdCB0dXllbiBkdW9uZyBzYXQgY2FvIHRvYyBsdW9uIGJhdCBidW9j IHBoYWkgeGF5IGR1bmcgdHJlbiAyMCANCm5hbSBtb2kgeG9uZywgbmVuIHBoYWkgYmF0IGRhdSB0 dSBiYXkgZ2lvIG1vaSBraXAuIE5odW5nIGtoaSBvbmcgbm9pIHR1eWVuIGR1b25nIHNhdCANCmNh byB0b2MgQmFjIEtpbmggliBUaGllbiBUYW4geGF5IGR1bmcgY28gMSBuYW0gZGEgeG9uZyB0aGkg dG9pIG1vaSBuZ2Egbmd1YSByYS4gVG9pIA0KeGluICdibyB0YXkgY2hhbSBjb20nIHZvaSBvbmcg cm9pIG9uZyBvaS4iICANCg0KUGhpIGx5IGxhIHRoZSBuaHVuZyBuZ3VvaSB0YSB2YW4gY3UgbGFt LiBEdWEgcmEgcXVvYyBob2kgYmFuIGNoaSBsYSBkZSBob3AgdGh1YyBob2EgY2h1IA0KYWkgY3Vu ZyBiaWV0LCBuaHUgcmF0IG5oaWV1IGR1IGFuIGRhIHR1bmcgYmkgbmd1b2kgZGFuIHBoYW4gZG9p IGR1IGRvaSB0cnVvYyBraWEsIGR1IGFuIA0KZHVvbmcgc2F0IG5heSByb2kgY3VuZyBzZSBkdW9j IHRob25nIHF1YSB0aG9pIQ0KDQpIb2MgZGkgbWEgdHJhIG5vDQoNClhvdCB4YSBjaG8gY2FjIHRo ZSBoZSB0dW9uZyBsYWkgY2h1YSBnaSBkYSBwaGFpIG1hbmcgdmFjIG1vdCBnYW5oIG5hbmcgbm8g bmFuIHF1b2MgZ2lhIA0KbmdheSBjYW5nIGNob25nIGNoYXQgZG8gdGhvaSB0aGFtIGxhbSwgaWNo IGt5LCB2byB0cmFjaCBuaGllbSBjdWEgY2FjIHRoZSBoZSBjaGEgb25nLCANCkJsb2dnZXIgVGhh bmggQ2h1bmcgc2F1IGtoaSBwaGFuIHRpY2ggdGF0IGNhIG5odW5nIGNhaSB0aGlldCBob24geHVu ZyBxdWFuaCB2aWVjIHRpZW4gDQpoYW5oIHhheSBkdW5nIGR1b25nIHNhdCBjYW8gdG9jIHRyb25n IHRob2kgZGllbSBoaWVuIHRhaSwgbmh1bmcgc3UgbmdoaSBuZ2FpIHR1IG1vdCB0aHVjIA0KdGUg bGF1IG5heSBWTiB2YW4gbGEgbW90IG51b2MgbmdoZW8sIGNodWEgY28gbWluaCBiYWNoIHZhIGt5 IGN1b25nIHRyb25nIG1vaSB2aWVjLCANCm5lbiJjYW5nIHhheSBjYW5nIG5hdCwgY2FuZyBkdSBh biB0byBjYW5nIHRoYXQgdGhvYXQuIFRoYW0gbmh1bmcgZGVuIGNhbiBraWV0IGxvbmcgZGFuIA0K cm9pLiIsIGN1b2kgY3VuZyB0YWMgZ2lhIGtldCBsdWFuOiAiSG9tIGNodSBuaGF0IHZ1YSByb2ks IHRyb25nIGJ1YSBhbiB0cnVhLCBtaW5oIGRhIGNhcCANCm5oYXQgdGluaCBoaW5oIHRyb25nIG51 b2MgY2hvIGhhaSBkdWEgY29uOiBOZXUgUXVvYyBob2kgdGhvbmcgcXVhIGNhYyBzaWV1IGR1IGFu IG5odSANCmhlIHRob25nIGNhbmcgYmllbiA1IHR5IFVTRCwgZGllbiBoYXQgbmhhbiBob24gMTAg dHkgVVNELCBzYW4gYmF5IExvbmcgVGhhbmggMTIgdHkgDQpVU0QsIDE4IHR1eWVuIGR1b25nIGNh byB0b2MgNDggdHkgVVNELCBkdW9uZyBzYXQgY2FvIHRvYyA1NiB0eSBVU0QsIGRvIGFuIHF1eSBo b2FjaCANClRodSBkbyA5MCB0eSBVU0QuLi4gdGhpIGNhYyBjb24gY3UgdmllYyAuLi4uICJob2Mg ZGkgbWEgdHJhIG5vIi4NCg0KQ29uIGdpIG8gdHVvbmcgbGFpPw0KDQpUcm9uZyBraGkgY2FjIHRo ZSBoZSBob20gbmF5IGN1IHRob2FpIG1haSBjaGkgeGFpIGRlIG5vIGNobyBjb24gY2hhdSB0aGkg bmd1b2MgbGFpIGhvIGNvIA0KcXVhbiB0YW0gY2hhbSBzb2MgZGF1IHR1IGdpIGNobyBjYWMgdGhl IGhlIHR1b25nIGxhaSBraG9uZz8gVHJlIGVtIFZpZXQgTmFtIGhpZW4gbmF5IA0KdmEgdHJvbmcg dm9uZyB2YWkgY2h1YyBuYW0gbnVhIGRhbmcgc29uZyB2YSBzZSBzb25nIG5odSB0aGUgbmFvPyBD aGF0IGx1b25nIGdpYW8gZHVjIA0KdGhpIHlldSBrZW0sIGNodW9uZyB0cmluaCBob2MgbmFuZyBu ZSwgcXVhIHRhaSwgZGEgdmF5IGxhaSBjb24gcGhhaSBob2MgdGhlbSwgaG9jIGhlLCBzdW90IA0K bmdheSBob2MsIHF1YW5oIG5hbSBob2MsIGNoYW5nIGNvIHRob2kgZ2lhbiBnaWFpIHRyaSwgY2hh bmcgY28gdHVvaSB0aG8uIEtoaSBtdW9uIHZ1aSANCmNob2kgZ2lhaSB0cmkgdGhpIG5odW5nIG5v aSBjbyB0aGUgZGFuaCBjaG8gdHJlIGVtIHZ1YSBpdCBvaSB2dWEgbmdoZW8gbmFuLCBkb24gZGll dS4gDQoNClRyZW4gYmFvIFRpZW4gUGhvbmcsIHRhYyBnaWEgSG9hbmcgVHVhbiBkYSBwaGFpIGtl dSBsZW4gIk5ndW9pIGxvbiBxdWEgdGh1YSwgdHJlIGVtIA0KcXVhIHRoaWV1IjogIkhhIE5vaSBo aWVuIG5heSB0cmFuIG5nYXAgbmh1bmcga2h1IHZ1aSBjaG9pLCBnaWFpIHRyaSBjaG8gbmd1b2kg bG9uLCB0dSBuaGEgDQpuZ2hpLCBxdWFuIGJpYSwga2hhY2ggc2FuLCB2dSB0cnVvbmcuLi4gY2hv IGRlbiBzYW4gdGVubmlzLCBnb2xmLiBOaHVuZyBkZSB0aW0gZHVvYyBtb3QgDQpjaG8gdnVpIGNo b2kgaGFwIGRhbiBjaG8gdHJlLCBwaHUgaHV5bmggcGhhaSBkbyBtYXQsIGRhdSBkYXUsIGNodWEg a2Ugbmh1bmcgdHJvIGNob2kgZG8gDQp0aHVvbmcgcXVhIGN1LCBkb24gZGlldSB2YSBuaGFtIGNo YW4uLi4iLiBEbyBsYSBvIG5odW5nIHRoYW5oIHBobyBsb24uIENvbiB2b2kgdHJlIGVtIA0KY29u IG5oYSBuZ2hlbyBob2FjIG8gbm9uZyB0aG9uIHRoaSBkYSBwaGFuIHZhbiBjb24gc29uZyB0cm9u ZyBuaHVuZyBkaWV1IGtpZW4gaGV0IHN1YyANCmtoYW0ga2hvLCBraG9uZyBkdW9jIGRlbiB0cnVv bmcgaG9hYyB2dWEgZGkgaG9jIHZ1YSBsYW8gZG9uZyBwaHUgZ2l1cCBnaWEgZGluaCB0dSBraGkg DQpjb24gdGFtIGJlLi4uDQoNClRoZSBuaHVuZyBuaHVuZyBuZ3VvaSBkYW5nIG5hbSBxdXllbiBx dXlldCBkaW5oIG1vaSBjaHV5ZW4gY3VhIGRhdCBudW9jLCB0aGF5IHZpIA0KYmlldCB0aW5oIHRv YW4sIHRpZXQga2llbSwgZGF1IHR1IGR1bmcgdmllYyBkdW5nIGNobywgZHVhIGRhdCBudW9jIG5o YW5oIGNob25nIHRob2F0IGtob2kgDQpuZ2hlbyBuYW4gbGFjIGhhdSBkZSBjYWMgdGhlIGhlIG1h aSBzYXUgc3VuZyBzdW9uZyBob24gdGhpIGhvIGxhaSBjaGkgYmlldCB0aHUgbG9pIGNobyANCm1p bmgsIHRoYW0gbmh1bmcsIGxhbSB0aGF0IHRob2F0IHRhaSBzYW4sIHRhaSBuZ3V5ZW4sIGxhbSBu Z2hlbyB0aGVtIGRhdCBudW9jIHZhIHRoaWV0IA0KdGhvaSBjaG8gY2FjIHRoZSBoZSB0dW9uZyBs YWkuIA0KDQpOaGFuIG5nYXkgMS42IGxhIG5nYXkgVGV0IHRoaWV1IG5oaSwgdGFjIGdpYSBLaHVv bmcgRHV5IGRhIHZpZXQgbmh1bmcgbG9pIGRheSBkdXQgdHJvbmcgDQpiYWkgIk5ndW9pIGxvbiBv aSwgeGluIG1vdCBsYW4gbGFuZyBuZ2hlIHRyZSBlbSBub2kiIGRhbmcgdHJlbiBUdWFuIFZpZXQg TmFtLCB2ZSBuaHVuZyANCmdpIG1hIG5ndW9pIGxvbiBkYW5nIGxhbSwgZGFuZyBnYXkgcmEgY2Fj IGVtOiAiTmd1b2kgbG9uIGNoYW5nIG5odW5nIGtob25nIGNobyB0cmUgDQplbSBjdW9jIHNvbmcg YW4gdG9hbiwga2hvbmcgY2hvIGNodW5nIG5pZW0gdGluLCBraG9uZyBjaG8gdHJlIGVtIG1vdCB0 dW9pIHRobyB0aGVvIA0KZHVuZyBuZ2hpYSBtYSBjb24gImFuIHZlbiIgY2EgdmFvIHR1b25nIGxh aSBjdWEgdHJlIGVtLiANCg0KS2hpIG5odW5nIGR1YSB0cmUgbG9uIGxlbiwgY2h1bmcgdGEgc2Ug dHJhIGxvaSBjYWMgZW0gcmEgc2FvIHZlIGhhbmcgdHJpZXUsIGhhbmcgdHkgdGFuIA0Ka2hvYW5n IHNhbiBkYSBiaSB0aGUgaGUgdHJ1b2Mga2hhaSB0aGFjLCBzdSBkdW5nIGhvYW5nIHBoaSB2YSBi YW4gdm9pIGdpYSByZSBtYXQgY2hvIA0KbnVvYyBuZ29haSBkZSB0aG9hIG1hbiBuaHVuZyBuaHUg Y2F1IGtob25nIGRheT8gDQoNCkN1b24gc2FjaCBkaWEgbHkgY3VhIHRoZSBoZSB0dW9uZyBsYWkg c2UgdmlldCB2ZSBuZ3VvbiB0YWkgbmd1eWVuIGN1YSBkYXQgbnVvYyByYSBzYW8ga2hpIA0Kbmh1 bmcgbW8gdmFuZywgYmFjLCBkYXUgdGhvLCB0aGFuIGRhIGNoYW5nIGNvbiBnaSBuZ29haSBuaHVu ZyBobyBzYXUgdGhhbSB0aGFtIHZhIG1vaSANCnRydW9uZyBzaW5oIHRoYWkgYmkgdGFuIHBoYSBu YW5nIG5lPw0KDQpIYXkgdHUgaG9pIGNodW5nIHRhIGNoaWEgY2hvIHRyZSB0aG8gZHVvYyBiYW8g bmhpZXUgdHUgbW9uIHRpZW4gdGh1IGR1b2MgdHUgdmllYyBiYW4gDQp0b25nIGJhbiB0aGFvIHRh aSBuZ3V5ZW4sIGtob2FuZyBzYW4gaG9tIG5heT8iIA0KTmh1bmcgY2F1IGhvaSB0aGF0IG5odWMg bmhvaSwgbGlldSBjbyBhaSB0cm9uZyBzbyBuaHVuZyBuZ3VvaSBkYW5nIGNoaXUgdHJhY2ggbmhp ZW0gDQpkaWV1IGhhbmggbW9pIGxpbmggdnVjIGN1YSBkYXQgbnVvYyBob20gbmF5IGNvIG1vdCBs YW4gbmdoaSBsYWkgdmEgYmlldCBnaWF0IG1pbmg/DQoiVmEgY2hhbyBvaSwgbmh1bmcgZ2kgY2h1 bmcgdGEgZGFuaCBjaG8gY2h1bmcgbGlldSBjbyB4dW5nIGRhbmcgdm9pIG5odW5nIG1vbiBubyAN CmhhbmcgdHJhbSB0eSBkby1sYSBjaHVuZyB0YSBkYW5nIHZheSBubyBudW9jIG5nb2FpIGRlIGRh dSB0dSBjaG8gbmh1bmcgZHUgYW4gdHJlbiB0cm9pIA0KZHVvaSBiaWVuLiBDaHVuZyB0YSBoaSBo YSBraGkgbmFtIHNhdSB2YXkgZHVvYyBuaGlldSBob24gbmFtIHRydW9jLCBjaHVuZyB0YSBnaWFu IGxheSANCnZhaSBob20ga2hpIGNvIHZpIHF1YW4gY2h1YyBubyB4YSB4ZW8gdm9uIE9EQSBuaHVu ZyByb2kgY3VuZyB0YWMgbHVvaSBibyBxdWEuIENodW5nIA0KdGEgYW4gdWkgbmhhdSByYW5nIHRy ZSBlbSBuZ2F5IHNhdSBzZSB0YWkgZ2lvaSBob24gdGhlIGhlIGhvbSBuYXkgdmEgc2UgdHJhIGhl dCBuaHVuZyBnaSANCmNodW5nIHRhIGRhbmcgdmF5IG11b24gZGUgdnVuZyB0YXkgcXVhIHRyYW4g dmEgdGhhIHN1YyBjaG8gcm9pIHJvdCBkb2MgZHVvbmcuLi4iLiBUYWMgDQpnaWEga2V0IGx1YW46 ICJDaHVuZyB0YSBreSB2b25nIHRyZSBlbSBzZSBiaWVuIGRhdCBudW9jIHRoYW5oIHJvbmcsIHRo YW5oIGhvIG5odW5nIGRhIA0Kdm8gdGluaCBkZW8gZGEgdmFvIGRvaSBjYW5oIG1vbmcgbWFuaCBj dWEgY2FjIGVtIGJhbmcgbW90IHRodSB0b2kgdG8gdG9uZyB0cnV5ZW4uDQpWYXkgZGF5LCBoYW5o IHRyYW5nIGNobyB0cmUgZW0gdmFvIHR1b25nIGxhaSB0dW9uZyBuaHUgcmF0IGRheSBtYSB0aHVj IHJhIGxhaSByYXQgdm9pLiANCkNodW5nIHRhIGNoYW5nIGNobyB0cmUgZW0gZHVvYyBiYW8gbmhp ZXUgc28gdm9pIG5odW5nIGdpIGNodW5nIHRhIGxheSBkaSBjdWEgdHJlIGVtLiINCktoaSBjaGEg b25nIGNoaSBiaWV0IHZheSBubywgdGlldSB4YWksIGJhbiByZSBtb2kgdGh1IHR1IHRhaSBuZ3V5 ZW4gcnVuZyB2YW5nIGJpZW4gYmFjIA0KY2hvIGRlbiBzdWMgbGFvIGRvbmcgY3VhIGNvbiBuZ3Vv aSwgdGhpIGNoaSB2YWkgdGhhcCBuaWVuIG51YSB0aG9pLCBsdWMgZG8gY2hhdSBjb24gY3VhIA0K Y2h1bmcgdGEgY2hvIGR1IGNvIHRhaSBiYSBkZW4gZGF1IG5odW5nIGRhdCBudW9jIG5heSBsaWV1 IGNvIGNvbiBsYWkgZ2kgZGUgbWEga2hhaSB0aGFjLCANCm1hIGJhbiwgbWEgaG9uZyB0cmEgbm8/ IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDEwL0JvLU5vbmctbmdo aWVwLUJvLUxhby1kb25nLW5vLWN1LXRyaS1uaGlldS1uaGF0LTkzODg2Ni8gVGh1eSBDaHVuZyAg MDY6MzMsICAwMi8xMC8yMDEwIChHTVQrNykgDQoNClRodSB0dW9uZzogIm5vIiB0cmEgbG9pIDIw IGNhdSBraWVuIG5naGkgY3VhIGN1IHRyaSB0YWkga3kgaG9wIHRodSA3IGN1YSBRSCANCg0KVGhl byBUcnVvbmcgYmFuIERhbiBuZ3V5ZW4gUUggVHJhbiBUaGUgVnVvbmcsIHZpZWMgZ2lhaSBxdXll dCwgdHJhIGxvaSBjdWEgY2FjIGNvIA0KcXVhbiB0aGFtIHF1eWVuIHZvaSBjYWMgdmFuIGRlIGN1 IHRyaSBuaGlldSBsYW4ga2llbiBuZ2hpIGNvbiBsdW5nIHR1bmcgbGEgZG8gdmllYyBiYW4gDQpo YW5oIHZhbiBiYW4gcXV5IHBoYW0gcGhhcCBsdWF0IGNvbiBuaGlldSBiYXQgY2FwLiANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDQyLzIwMTAxMDEzMjMzNDEx LmFzcHggVGhhaSBTb24gIDEzLzEwLzIwMTAgMjM6MzQgDQoNClRodSB0dW9uZzogQm8gVGFpIGNo aW5oIHZhIE5ITk4gYmkgInRob2kgY29pIiB2aSBiYW4gaGFuaCB2YW4gYmFuIHNhaSBxdXkgZGlu aCAgDQogIA0KSG9tIHF1YSAxMy4xMCwgb25nIExlIEhvbmcgU29uLCBDdWMgdHJ1b25nIEN1YyBL aWVtIHRyYSB2YW4gYmFuIHF1eSBwaGFtIHBoYXAgDQpsdWF0IChRUFBMKSwgQm8gVHUgcGhhcCBj aG8gYmlldCB2dWEga3kgY2FjIHZhbiBiYW4gInRob2kgY29pIiBCbyBUYWkgY2hpbmggdmEgTkhO TiANCmRvIGJhbiBoYW5oIDIgdmFuIGJhbiB2aSBwaGFtIHZlIHRob2kgZGllbSBjbyBoaWV1IGx1 YyBjdWEgdmFuIGJhbiBRUFBMLiANCg0KQ2FjIHZhbiBiYW4gbmF5IGdvbSBUaG9uZyB0dSBzbyAx MTYvMjAxMC9UVC1CVEMgc3VhIGRvaSwgYm8gc3VuZyBUaG9uZyB0dSBzbyANCjEzNy8yMDA5L1RU LUJUQyBodW9uZyBkYW4gdGh1YyBoaWVuIG1vdCBzbyBkaWV1IGN1YSBRdXlldCBkaW5oIDMzLzIw MDkvUUQtVFRnIA0KY3VhIFRodSB0dW9uZyBDaGluaCBwaHUgYmFuIGhhbmggY28gY2hlLCBjaGlu aCBzYWNoIHRhaSBjaGluaCBkb2kgdm9pIGtodSBraW5oIHRlIGN1YSANCmtoYXUsIHF1eSBkaW5o OiAiY28gaGlldSBsdWMga2UgdHUgbmdheSBreSI7IFRob25nIHR1IDE5LzIwMTAvVFQtTkhOTiBz dWEgZG9pLCBibyANCnN1bmcgbW90IHNvIGRpZXUgY3VhIFRob25nIHR1IDEzLzIwMTAvVFQtTkhO TiBjdWEgVGhvbmcgZG9jIE5ITk4gcXV5IGRpbmggdmUgdHkgDQpsZSBiYW8gZGFtIGFuIHRvYW4g dHJvbmcgaG9hdCBkb25nIGN1YSB0byBjaHVjIHRpbiBkdW5nIHF1eSBkaW5oIGNvIGhpZXUgbHVj IHNhdSAzIG5nYXkgDQpreSBiYW4gaGFuaC4NCg0KVGhlbyBvbmcgU29uLCBMdWF0IEJhbiBoYW5o IHZhbiBiYW4gUVBQTCBuYW0gMjAwOCBxdXkgZGluaCB0aG9pIGRpZW0gY28gaGlldSBsdWMgDQpj dWEgdmFuIGJhbiBRUFBMIGR1b2MgcXV5IGRpbmggdHJvbmcgdmFuIGJhbiBuaHVuZyBraG9uZyBz b20gaG9uIDQ1IG5nYXkga2UgdHUgDQpuZ2F5IGNvbmcgYm8gaG9hYyBreSBiYW4gaGFuaC4gRG8g ZG8sIHZpZWMgMiB0aG9uZyB0dSBuYXkgY28gaGlldSBsdWMgc29tIGhvbiBxdXkgDQpkaW5oIGRh IGdheSByYSBuaHVuZyB0aGlldCBoYWkgdmUgbWF0IGtpbmggdGUsIGFuaCBodW9uZyBkZW4gcXV5 ZW4sIGxvaSBpY2ggY3VhIGNhYyANCmRvYW5oIG5naGllcCB2YSBjbyBzbyBraW5oIGRvYW5oIGhv cCBwaGFwLiANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0hvbWUvTmhhRGF0L3d3dy50aGFuaG5p ZW4uY29tLnZuLzctYm8tdmEtMTMtdGluaC10aGFuaC1iYW4taGFuaC12YW4tYmFuLXRyYWktbHVh dC1uaHVuZy1raG9uZy1zdWEvNDg5OTE5NS5lcGkgVGhhaSBTb24gMjMvMDkvMjAxMCAwOjE0IA0K DQpUaHUgdHVvbmc6IDcgYm8gYmFuIGhhbmggdmFuIGJhbiB0cmFpIGx1YXQgbmh1bmcga2hvbmcg c3VhICANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAwNy8wOS83NDQ1OTcvIDI1LTA5 LTIwMDcgMTU6MTkgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6IFZ1IGJpZW4gY3UgeGEgdGhhbmggYmll dCB0aHUgLSBWaSBzYW8gY2h1YSB0aGFuaCB0cmE/DQoNCkRhIG5oaWV1IGxhbiBVeSBiYW4gS2hv YSBob2MgQ29uZyBuZ2hlIHZhIE1vaSB0cnVvbmcgY3VhIFF1b2MgaG9pLCBUaGFuaCB0cmEgQ2hp bmggcGh1IGtpZW4gbmdoaSANCnRoYW5oIHRyYSBjYWMgc2FpIHBoYW0gdGFpIGR1IGFuIG5heSBu aHVuZyB2YW4gY2h1YSB0aGUgdGh1YyBoaWVuLiAgICAgIA0KDQpNb2kgZGF5LCBVeSBiYW4gS2hv YSBob2MgQ29uZyBuZ2hlIHZhIE1vaSB0cnVvbmcgY3VhIFF1b2MgaG9pIGxhaSBkZSBuZ2hpIFRo dSB0dW9uZyBnaWFvIFRoYW5oIHRyYSBDaGluaCBwaHUgDQp0aGFuaCB0cmEgZHUgYW4gbmhhIG8g dGFpIHBodW9uZyBQaHVvYyBMb25nIEIgKHF1YW4gOSwgVFAuSENNKSBjdWEgQ29uZyB0eSBQaHUg RHVjLiANCg0KRHUgYW4gbmF5IGNvIG5oaWV1IGtodWF0IHRhdCwgbmFtIDIwMDYsIFRoYW5oIHRy YSBDaGluaCBwaHUgdHVuZyBraWVuIG5naGkgVGh1IHR1b25nIGdpYW8gY28gcXVhbiBuYXkgdGhh bmggdHJhLCANCm5ldSBjbyBkYXUgaGlldSBoaW5oIHN1IHNlIGNodXllbiBjbyBxdWFuIGRpZXUg dHJhIGdpYWkgcXV5ZXQuIE5odW5nIHR1IGRvIGRlbiBuYXkga2llbiBuZ2hpIHRyZW4gdmFuIGNo dWEgZHVvYyBob2kgZGFwICg/ISkgDQoNClZpIHNhbyBTYXdhY28gY2hpIHhpbiBtb3QgaGEgZGUg bGFtIGR1IGFuIG5odW5nIENodSB0aWNoIFVCTkQgcXVhbiA5IGx1YyBiYXkgZ2lvIGxhaSAidXUg YWkiIGNobyBkZW4gaG9uIGJhIGhlYy10YSBkYXQ/DQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52 bi9jaGluaHRyaS8yMDEwMDYvQmFuLW1vLXZpLWxvaS1pY2gtbmhpZW0ta3ktOTEzOTAwLyAwNTo0 OSAwMy8wNi8yMDEwIChHTVQrNykgDQoNCkJhbiBtbyB2aSBsb2kgaWNoIG5oaWVtIGt5DQoNCiJM b2FuIiBraGFpIGtob2FuZywgY2FwIHBoZXAgdHJhbiBsYW4gY2hpIGRvYW5oIG5naGllcCBodW9u ZyBsb2ksIG5ndW9pIGRhbiBnYW5oIGhhdSBxdWEgY29uIGRpYSBwaHVvbmcga2hvbmcga3kgbHVh dCBkdW9jIGFpDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDYvTW9p LW5hbS1WTi1tYXQtMS1ob24tZGFvLXZpLXh1YXQtYnVhLXRhaS1uZ3V5ZW4tOTEzODczLyAyMDox MiwgVGh1IFR1LCAwMi8wNi8yMDEwIChHTVQrNykNCg0KTW9pIG5hbSwgVk4gbWF0IDEgaG9uIGRh byB2aSB4dWF0IGJ1YSB0YWkgbmd1eWVuDQoNCk5oaWV1IG1vIGN1YSB0YSBjbyBnaWEgdHJpIGhh bmcgdGkgVVNELCBuZXUga2hvbmcgY28gY28gY2hlIGRhdSBnaWEsIGRhdSB0aGF1LCBzZSBsYW5n IHBoaSB0YWkgc2FuIHF1b2MgZ2lhLg0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9LaW5o VGUvd3d3LnRoYW5obmllbi5jb20udm4vVG9uLXRoYXQtdHJvbmcta2hhaS10aGFjLWRhdS1raGkt bGVuLXRvaS01MC0tNjAvNDI2NjQ3MS5lcGkgMTUvMDUvMjAxMCAwOjE4IA0KDQpUaHUgdHVvbmc6 IGhvYXQgZG9uZyBraG9hbmcgc2FuIG5oaWV1IGJhdCBjYXAgLSBUb24gdGhhdCB0cm9uZyBraGFp IHRoYWMgcXVhIGxvbg0KICANCkhvbSBxdWEgMTQuNSwgdGFpIGhvaSB0aGFvICJUYWkgbmd1eWVu IGtob2FuZyBzYW4gdmEgcGhhdCB0cmllbiBiZW4gdnVuZyBvIFZpZXQgTmFtIiwgDQpWaWVuIFR1 IHZhbiBwaGF0IHRyaWVuIChDT0RFKSBjaG8gYmlldCwgaG9hdCBkb25nIGtob2FuZyBzYW4gbnVv YyB0YSBoaWVuIGRhbmcgYm9jIGxvIA0KbW90IGxvYXQgYmF0IGNhcCwgdHUga2hhdSBjYXAgcGhl cCBkZW4gdGhhdCB0aG9hdCB0cm9uZyBraGFpIHRoYWMsIGFuaCBodW9uZyBkZW4gbW9pIA0KdHJ1 b25nLCBjYWMgdmFuIGRlIHhhIGhvaSBsaWVuIHF1YW4uIA0KDQpUaGVvIENPREUsIHRpbmggdHJh bmcgY2FwIHBoZXAgdHJhbiBsYW4sIG1vdCBzbyBraG9hbmcgc2FuIGNvIHRydSBsdW9uZyBsb24g dmEgcGhhbiBibyANCmxpZW4gdHVjIGRhIGJpIGNhdCB0aGFuaCBuaGlldSBraG9hbmggZGUgY2Fw Li4uIHZhbiBkaWVuIHJhIG8gbmhpZXUgbm9pLiBOYW4ga2hhaSB0aGFjIA0Ka2hvbmcgcGhlcCwg a2hhaSB0aGFjIHR1IGRvLCBuaGF0IGxhIGRvaSB2b2kga2hhaSB0aGFjIHZhbmcsIGRhIHF1eSwg Y2hpLCBrZW0sIGRvbmcsIA0KdGhhbi4uLiBjaHVhIGR1b2MgbmdhbiBjaGFuIGRhIHRhbiBwaGEg bW9pIHRydW9uZywgbGFtIHRoYXQgdGhvYXQgdGFpIG5ndXllbi4gDQoNClNhbiBwaGFtIGtoYWkg dGhhYyBjaGUgYmllbiBraG9hbmcgc2FuIHBoYW4gbG9uIG1vaSBkdW5nIGxhaSBvIHNhbiBwaGFt IHRobywgdG9uIHRoYXQgDQp0YWkgbmd1eWVuIHRyb25nIHF1YSB0cmluaCBraGFpIHRoYWMgY29u IHJhdCBjYW8uIEtldCBxdWEgbW90IHNvIGN1b2MgZGlldSB0cmEgY2hvIHRoYXksIA0KdG9uIHRo YXQga2hhaSB0aGFjIHRoYW4gaGFtIGxvIGxhIDQwIC0gNjAlLCBhcGF0aXQgbGEgMjYgLSA0MyUs IHF1YW5nIGtpbSBsb2FpIDE1IC0gMzAlLCANCmRhdSBraGkgbGVuIHRvaSA1MCAtIDYwJS4uLiAN Cg0KLQ0KaHR0cDovL2hvaWxhdHJhbG9pLm11bHRpcGx5LmNvbS9qb3VybmFsL2l0ZW0vMzI5MiAN Cg0KVGh1IHR1b25nOiBEYWkgbGUga3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25nIHRpZXUgdG9u IDQsNSB0eSBVU0QsIGxhIG1vdCBob2FuZyBwaGkgdm8gY3VuZyBsb24ga2hpIGRhdCBudW9jIGNv biBuaGlldSBuZ2hlbyBuYW4gdmEgdGhpZXUgdGhvbiANCg0KaHR0cDovL25nb2NsaW5odnVnaWEu d29yZHByZXNzLmNvbS8yMDEwLzEyLzAzL3ZpbmFzaGluLWNoJUUxJUJCJTg5LWxhLWNodXklRTEl QkIlODduLXF1YS0lQzYlQjAtbmglRTElQkIlOEYtbmhvaS12dS1jYW0tZGFtLyBWdSBDYW8gRGFt IDAzLzEyLzIwMTAgKFRyaWNoKSANCg0KQ2h1bmcgdG9pIHhpbiBsYXkgbW90IGNodXllbiB2dWkg dnVpIGRlIGx5IGdpYWkgZGlldSBuYXk6IEtoaSBhaSBkbyB0aWV0IGxvIGtob2FuIGNoaSBkZSBr eSBuaWVtIA0KMTAwMCBuYW0gVGhhbmcgTG9uZyBsYSA0LDcgdHkgZG8tbGEgTXksIHRoaSBtb3Qg cXVhbiBjaHVjIGRhIG5vaSB0cnVvYyBjb25nIGNodW5nIA0KcmFuZywga2hvYW4gdGllbiBjaGkg Y2hvIEhvaSBsZSBuZ2FuIG5hbSBUaGFuZyBMb25nIGNoaSBjbyA1MDAwIHR5IHRob2kuIENhYyBj dSBodXUgdGFwIA0KdGhlIGR1YyBuZ29haSBjb25nIHZpZW4gY3VvaSBuZ2F0LCBwaGFuIHJhbmcs IGNoaSBjYW4gMTAwMCBsdW90IGNoYXUgZ2FpIG1hYyAxMDAwIGJvIGFvIA0KZGFpIGRpZXUgbHVv biB0cmVuIGNhdSBUaGUgSHVjIGRhIHRvbiBnYW4gY2h1YyB0eSBkb25nIHJvaS4gQ2FjIGN1IGJh bywgdGluaCBnaSBjaGFuZyANCnJhLi4uIHRpbmgga2hvYW4gbmF5IGRlIG90LiBDYWMgY3UgcmEg dGllbSBtYXkgYW8gZGFpIHBodSBudSBob2kgZ2lhLCB0aGkgZHVvYyBiaWV0IG1vaSBibyANCmxv YWkgZG8gcGhhaSB0aW5oIGtob2FuZyA1IHRyaWV1LiBNYXkgMTAwMCBibyBjaG8gY2FjIGNoYXUs IHZpIGNoaSBsYSA1IHR5LiBLaG9hbiBib2kgDQpkdW9uZyBjaG8gY2FjIGNoYXUgY28gc3VjIHRh cCBsdXllbiBjb25nIHZvaSBraG9hbiB0aWVuIHRodWUgY2FjIGNoYXUgdHUgY2FjIGNvbmcgdHkg DQpuZ3VvaSBtYXUgY3VuZyBwaGFpIDUgdHJpZXUgbnVhIG1vdCBsdW90L2NoYXUuIFZpIGNoaSBs YSBjaGkgY2FpIGNodXllbiAxMDAwIGJvIGFvIGRhaSANCmRpZXUgbHVvbiBjdW5nIGRhIHBoYWkg MTAgdHkgcm9pLi4uIFZhIGNhYyBjdSBkYW4gbWFuZyB0aHVhIGhpZXUsIG1vaSBob3AgZG9uZyBw aGFpIHRpbmggDQp0aGVtIGtob2FuICJsYWkgcXVhIiBudWEgY2h1LiBWYXkgdGhpIGxhbSBzYW8g bWEgdGluaCBjaGkgY28gNTAwMCB0eT8gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyOTAzMDY0NS5hc3B4IFR1ZSBOZ3V5ZW4gVmlldCBDaGll biAyOS8xMC8yMDEwIDM6MDYgIA0KDQpDaGluaCBwaHUgJiBIYSBOb2k6IENoaSBwaGkgY2hvICJE YWkgbGUgMTAwMCBuYW0iIC0gY2FuIGNvbmcga2hhaSBrZSBob2FjaCBjaGkgcGhpIHZhIGRhbmgg Z2lhIHRpbmggaGluaCB0aHVjIGhpZW4gIA0KDQpTbyB0aWVuIGNoaSBjaG8gRGFpIGxlIGt5IG5p ZW0gMS4wMDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2kgY3UgdGhlIGxhIGJhbyBuaGlldT8gRG8g DQpsYSBjYXUgaG9pIG5oaWV1IG5ndW9pIGRhdCByYS4gUFYgVGhhbmggTmllbiBkYSBjbyBjdW9j IHBob25nIHZhbiBvbmcgSG8gUXVhbmcgTG9pLCANClRydW9uZyBiYW4gVHV5ZW4gZ2lhbyBUaGFu aCB1eSBIYSBOb2ksIFRoYW5oIHZpZW4gQmFuIGNoaSBkYW8gUXVvYyBnaWEgdmUgZGFpIGxlLCAN Cnh1bmcgcXVhbmggdmFuIGRlIG5heS4gDQoNCiogQ28gdGhlIHVvYyBsdW9uZyB0b25nIHNvIHRp ZW4gY2hpIGNobyBkYWkgbGUgbGEgYmFvIG5oaWV1IHZhIGNodW5nIHRhIGRhIHRodWMgc3UgdGll dCANCmtpZW0gY2h1YSwgdGh1YSBvbmc/DQoNCkRlbiB0aG9pIGRpZW0gbmF5LCB0b2kgY3VuZyBr aG9uZyBkdSBraGEgbmFuZyBkZSB1b2MgbHVvbmcgZHVvYyB0b25nIHNvIHRpZW4gYXkuIEJvaSAN CmRlbiBiYXkgZ2lvIGN1bmcgY2h1YSBjbyBtb3QgYmFvIGNhbyBkYXkgZHUgdmEgY2hpIHRpZXQg Y3VhIGNhYyBuZ2FuaCwgY2FjIGNhcCwgY2FjIGRpYSANCnBodW9uZywgY2FjIGRvbiB2aSwgY2Eg bmhhbiwgdGFwIHRoZS4uLiB2ZSBjYWMgdmllYyBkYSBsYW0gY2hvIGRhaSBsZS4gDQoNCkNhbiBj b25nIGJvIHZhIGdpYWkgdGhpY2ggcm8gdHVuZyBraG9hbiBjaGkNCg0KR1MgRGFvIFRyb25nIFRo aSwgQ2h1IG5oaWVtIFV5IGJhbiBWYW4gaG9hIC0gR2lhbyBkdWMgLSBUaGFuaCBuaWVuIC0gVGhp ZXUgbmllbiB2YSBOaGkgZG9uZyBjdWEgUUg6IA0KDQoiVmllYyBjaGkgdGlldSBjaG8gY2FjIGhv YXQgZG9uZyBEYWkgbGUga3kgbmllbSAxLjAwMCBuYW0gVGhhbmcgTG9uZyAtIEhhIE5vaSwgdG9p IGNobyANCnJhbmcgY2FuZyBtaW5oIGJhY2ggY2FuZyB0b3QuIERheSBjaGFuZyBwaGFpIGxhIGJp IG1hdCBxdW9jIGdpYSwgbmhhdCBsYSBkdSBsdWFuIGxhaSBxdWFuIA0KdGFtIHRoaSBjYW5nIG5l biBjb25nIGJvIHZhIGdpYWkgdGhpY2ggcm8gdHVuZyBraG9hbiBjaGkgdGlldS4gDQoNCk5odW5n IHRoZW8gdG9pLCBjYW4gcGhhbiBiaWV0IHJvIGdpdWEgaGFpIGxvYWkgZGF1IHR1IGNodSBraG9u ZyBuZW4gZGFuaCBkb25nIGxhbSBtb3QuIA0KTW90IGxhIGtpbmggcGhpIGNobyBjYWMgaG9hdCBk b25nIGxlIGhvaSwgdG8gY2h1YyB4b25nIGxhLi4uIG1hdC4gSGFpIGxhIGtpbmggcGhpIGRhdSB0 dSANCnhheSBkdW5nIGNhYyBjb25nIHRyaW5oIGNoYW8gbXVuZyBkYWkgbGUsIHNhdSBkbyBsYSB0 YWkgc2FuIHN1IGR1bmcgbGF1IGRhaS4gQ3VuZyBwaGFpIA0KdGluaCB0b2FuLCBkYXUgdHUgZGVu IGRhdSBsYSB2dWEsIGtldCB0aHVjIGxlIGhvaSB0aGkgcGhhaSB0aW5oIHRvYW4geGVtIG11YyBk YXUgdHUgbmh1IA0KdmF5IGRhdCBoaWV1IHF1YSBkZW4gZGF1IGNhIHZlIG1hdCB0aW5oIHRoYW4g bGFuIG1hdCB2YXQgY2hhdC4gTmh1bmcgY29uZyB0cmluaCB4YXkgDQpkdW5nIGRlIGxhaSBsYXUg ZGFpIGN1bmcgY2FuIHBoYW4gdGljaCBtaW5oIGJhY2ggdmUgY2hhdCBsdW9uZyBjb25nIHRyaW5o LCB2ZSBoaWV1IHF1YSBzdSANCmR1bmcgbmh1IHRoZSBuYW8uIFRvaSBjdW5nIG5naGUgY28geSBr aWVuIGNobyByYW5nIG5odW5nIGNvbmcgdHJpbmggZGF1IHR1IGNobyBnaWFvIA0KZHVjLCB5IHRl IG5oYW4gZGlwIDEuMDAwIG5hbSBUaGFuZyBMb25nIGhhdSBuaHUga2hvbmcgY28sIHRyb25nIGto aSBkbyBkYXkgbGFpIGxhIHZhbiANCmRlIGRhbmcgcmF0IHRoaWV1Ii4gDQoNCkdTIE5ndXllbiBM YW4gRHVuZyAoREIgUUggdGluaCBEYWsgTGFrKTogVG9pIGRhIGNoYXQgdmFuIHZhIGNobyBCbyBU YWkgY2hpbmggdHJhIGxvaSANCg0KICJUb2kgZGEgY28gdmFuIGJhbiBjaGF0IHZhbiBCbyB0cnVv bmcgQm8gVGFpIGNoaW5oIHJhbmc6IGNvIHRob25nIHRpbiBjaG8gcmFuZywgZGlwIGRhaSANCmxl IHZ1YSBxdWEgdG9uIGtlbSB0b2kgOTQuMDAwIHRpIGRvbmcsIGRlIG5naGkgQm8gdHJ1b25nIEJv IFRhaSBjaGluaCB0cmEgbG9pIGNoaW5oIHRodWMgDQpyYW5nIHRob25nIHRpbiBkbyBkdW5nIGhh eSBzYWkuIE5ldSBzYWkgdGhpIHBoYWkgY2FpIGNoaW5oLiBDb24gbmV1IGR1bmcgdGhpIHBoYWkg eGVtIHhldCANCmxhaSBjYWNoIGNoaSB0aWV1LCB2aSBuaHUgdGhlIGxhIGxhbmcgcGhpIHF1YSBs b24uIERpZXUgdGh1IGhhaSB0b2kgY2hhdCB2YW4gQm8gVGFpIGNoaW5oIGxhIA0KY28gdGhvbmcg dGluIG5oYW4ga3kgbmllbSBkYWkgbGUsIGJhbiBjaGkgZGFvIGRhIG11YSAyLjAwMCB2aWVuIHJ1 LWJpIGN1YSBjaGF1IFBoaSBkZSBsYXAgDQp2YW8gbWF0IDEuMDAwIGNvbiByb25nIGxhbSBxdWEg dGFuZyBjaG8gY2FjIHF1YW4ga2hhY2ggZHUgZGFpIGxlLiBWYXkgdGhvbmcgdGluIGRvIA0KZHVu ZyBoYXkgc2FpLCB2YSBuZXUgZG8gbGEgZG9hbmggbmdoaWVwIGxhbSBkZSBiYW4gdGhpIGtob25n IG5vaSBsYW0gZ2kgbmh1bmcgbmV1IGxheSANCmtpbmggcGhpIGN1YSBOaGEgbnVvYyBsYW0gdmll YyBkbyB0aGkga2hvbmcgdGhlIGNoYXAgbmhhbiBkdW9jLiBOaHVuZyBhaSBuaGFuIGR1b2MgDQpt b24gcXVhIGRvPw0KDQpUb2kgY3VuZyBkYSBjaGF0IHZhbiB0cnVjIHRpZXAgbGFuaCBkYW8gVFAg SGEgTm9pIHJhbmcgRGFpIGxlIDEuMDAwIG5hbSBUaGFuZyBMb25nIGRhIA0KdGh1YyBzdSBkZSBs YWkgZGF1IGFuIGdpIGJvaSB2aSBzYXUgZG8gdG9uIGtlbSBtYSBraG9uZyB0aGF5IGRlIGxhaSBk dW9jIGRpZXUgZ2kgdGh1YyBzdSANCm1hbmcgdGluaCBkYXUgYW4uIExhbmggZGFvIFRQIEhhIE5v aSBkYSB0cmEgbG9pIHRvaSByYW5nOiB0YXQgY2Egbmh1bmcgY29uZyB0cmluaCB4YXkgDQpkdW5n IHRyb25nIHZvbmcgMTAgbmFtIG5heSBkZXUgbGEgZGUga3kgbmllbSBkaXAgMS4wMDAgbmFtIFRo YW5nIExvbmcuIFR1eSBuaGllbiwgDQp0b2kgbG8gbmdhaSB2aSBuaGlldSBjb25nIHRyaW5oIGxh bSB2b2ksIGNoYXQgbHVvbmcgcmEgc2FvPyBUb2kgbGF5IHZpIGR1LCBoYSBuZ2FtIGNhcCANCnF1 YW5nIGxhbSByYXQgZ2FwIGdhcCwgZHUgZHVvbmcgcGhvIHBob25nIHF1YW5nLCBkZXAgaG9uIGhh biBkYXkgbmh1bmcgdG9pIGhvaSBsaWV1IA0KbmV1IGNvIHRydWMgdHJhYyBnaSBkbyB2ZSBkYXkg Y2FwIHRoaSBjaHVuZyB0YSBjbyB0aW0gZHVvYyBkZSB4dSBseSBoYXkga2hvbmcuIE5odW5nIA0K Y29uZyB0cmluaCBraGFjIGN1bmcgdmF5LCBsYW0gbmhhbmggbmh1IHZheSBjbyBiZW4gdnVuZyBo YXkga2hvbmcuLi4uPyIuIA0KDQpCYSBQaGFtIFRoaSBMb2FuIChEQlFIIFRQIEhhIE5vaSk6IFRv aSB0aGF5IG5oaWV1IHZpZWMgY2hpIHRpZXUgbGFuZyBwaGkNCg0KIlRhdCBjYSBtb2kgZG9uZyBu Z2FuIHNhY2ggY3VhIE5oYSBudW9jIGRldSBwaGFpIGNvbmcga2hhaSwgdmllYyBjaGkgcGhpIGNo byBtb3QgZGlwIA0KbGUgaG9pIGxvbiBuaHUgdmF5IGNhbmcgY2FuIHBoYWkgY29uZyBraGFpIGhl dCBzdWMgY3UgdGhlLCB0dW5nIHZpZWMgbW90IGRlIGNobyBkYW4gYmlldCwgDQpkYW4gYmFuLCBk YW4ga2llbSB0cmEuIFRpZW4gbmFvIGN1bmcgbGEgdGllbiBjdWEgZGFuLCBrZSBjYSBkb2FuaCBu Z2hpZXAgZ29wIHZhbyB0aGkgDQpjdW5nIHBoYWkgY29uZyBraGFpIHRhaSBjaGluaC4gVG9pIGN1 bmcgY2h1YSBiaWV0IGNvbiBzbyA5NC4wMDAgdGkgbWEgZHUgbHVhbiBwaGFuIGFuaCANCmNvIGNo aW5oIHhhYyBoYXkga2hvbmcgbmh1bmcgdG9pIGNvIHRoZSB0aGF5IG5oaWV1IHZpZWMgY2hpIHRp ZXUgcmF0IGxhbmcgcGhpLg0KDQpUb2kgY2hvIHJhbmcgcGhhaSBraWVtIHRyYSBjdSB0aGUgY2hh dCBsdW9uZyBjdWEgdHVuZyBjb25nIHRyaW5oIG1vdCBjaHUga2hvbmcgInZvIGR1YSANCmNhIG5h bSIgcmFuZyB0YXQgY2EgY2FjIGNvbmcgdHJpbmggZGV1IGxhbSBuaGFuaCwgbGFtIGF1LiBUdXkg bmhpZW4sIHN1eSBsdWFuIG1vdCBjYWNoIA0Ka2hvYSBob2MgdGhpIG5odW5nIGNvbmcgdHJpbmgg eGF5IGR1bmcgbmV1IHRodWMgZXAgdmUgdGllbiBkbyB0aGkgcmF0IGRlIGRhbiBkZW4gYW5oIA0K aHVvbmcgZGVuIGNoYXQgbHVvbmcgY29uZyB0cmluaCBraG9uZyBkYW0gYmFvLiANCg0KVmUgcGhh biBsZSBob2ksIG5odW5nIGhvYXQgZG9uZyBkZSBreSBuaWVtIHJhdCBjYW4gdGhpZXQgbmh1bmcg bmVuIGxhbSBvIG11YyB2dWEgcGhhaSwgDQp2YW4gdGhlIGhpZW4gZHVvYyBzdSB0cmFuZyB0cm9u Zywga2hvbmcgbmVuIHF1YSBvbiBhbywgbGFuZyBwaGkiLg0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4veGFob2kvMjAxMDEwL0NoZXQtbWF0LXRpY2gtdmktbHUtdGFuZy1uaGFuaC1iYXQtbmdv LWxlbi02Ni1uZ3VvaS05Mzk5MTYvIFFIIFEuQyCWIFRUIJYgQ1EgMDk6NTIsIDA3LzEwLzIwMTAg KEdNVCs3KQ0KDQpUaHUgdHVvbmc6IFRhaSBNaWVuIFRydW5nLCBjaGV0LCBtYXQgdGljaCB2aSBs dSB0YW5nIGxlbiA2NiBuZ3VvaSAtIE5ndW9pIGRhbiB2dW5nIGx1IGRhbmcgbW9pIG1hdCBuZ29u ZyBjaG8gaGFuZyBjdXUgdHJvIA0KDQpDaGkgdHJvbmcgdm9uZyAxIG5nYXkgZGEgY28gdGhlbSAy MSBuZ3VvaSBjaGV0IHZpIG11YSBsdSB0YWkgbWllbiBUcnVuZywgbmFuZyB0b25nIHNvIG5ndW9p IGNoZXQgdGluaCB0b2kgdGhvaSBkaWVtIG5heSBsZW4gY29uIHNvIDQ4LiANCiANCjg1IG5ndW9p IGNoZXQsIG1hdCB0aWNoLCBiaSB0aHVvbmcNCiANClRoZW8gYmFvIGNhbyBjdWEgY2FjIGRpYSBw aHVvbmcsIHRpbmggaGluaCB0aGlldCBoYWkgdmUgbmd1b2kgZG8gZG90IG11YSBsdSB0aW5oIGRl biA2aCANCm5nYXkgNy8xMC8yMDEwIHRoaSBzbyBuZ3VvaSBjaGV0IGRhIGxlbiB0b2kgNDggbmd1 b2ksIHRhbmcgMjAgbmd1b2kgc28gdm9pIGJhbyBjYW8gbmhhbmggDQpuZ2F5IDA2LzEwLiBOZ29h aSByYSBjbyAxOCBuZ3VvaSBtYXQgdGljaCB2YSAxOSBuZ3VvaSBiaSB0aHVvbmcuDQoNCkJhdCBj aGFwIG5odW5nIG5vIGx1YyBjdXUgdHJvLCBzbyBuZ3VvaSBjaGV0IHZpIGx1IHZhbiB0aWVwIHR1 YyBnaWEgdGFuZy4gVmllYyB0YW5nIG5oYW5oIA0Kc28gbmd1b2kgY2hldCBuaHUgdGhlIG5heSBr aGllbiBraG9uZyBpdCBuZ3VvaSBiYXQgbmdvIChBbmg6IFRyaSBUaHVjKQ0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDgxMDA1MTcuYXNweCAw OC8xMC8yMDEwIDEwOjA1IA0KDQpUaHUgdHVvbmc6IE11YSBsdSBtaWVuIFRydW5nLCB0aHVvbmcg dm9uZyBsZW4gdG9pIDUyIG5ndW9pIGNoZXQsIDI0IG5ndW9pIGJpIG1hdCB0aWNoICANCiANCihU Tk8pIFRoZW8gYmFvIGNhbyBuaGFuaCBjdWEgQmFuIENoaSBkYW8gUGhvbmcgY2hvbmcgbHV0IGJh byBULlUsIHRpbmggZGVuIHNhbmcgbmF5IA0KOC4xMCwgbXVhIGx1IHRhaSBjYWMgdGluaCBtaWVu IFRydW5nIGRhIGxhbSA1MiBuZ3VvaSBjaGV0LCAyNCBuZ3VvaSBtYXQgdGljaCB2YSA1NCBuZ3Vv aSBiaSB0aHVvbmcuIA0KDQoqIENhbmcgZGkgY2FuZyB0aGF5IHRodW9uZyB0YW0gDQoqIFRhbiBo b2FuZyB0aHV5IGRpZW4gSG8gSG8NCiogRGVuIHZvaSBuZ3VvaSBkYW4gdnVuZyBsdQ0KKiBEaSBz YW4gUGhvbmcgTmhhIHRyb25nIGNvbiBkYWkgaG9uZyB0aHV5IA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDIvMjAxMDEwMTYxMzI4NTIuYXNweCAxNi8xMC8y MDEwIDEzOjI4IA0KDQpUaHUgdHVvbmc6IFZvIGRhcCBLaGUgTW8sIGhhbmcgbmdhbiBjYW4gbmhh IGJpIG5nYXAgdHJvbmcgbnVvYyAgDQogIA0KKiBUdXllbiBkdW9uZyBzYXQgRG9uZyBIb2kgLSBW aW5oIGJpIHRhYyANCg0KKFROTykgS2hvYW5nIDYgZ2lvIDE1IHBodXQgaG9tIG5heSAxNi4xMCwg ZGFwIEtoZSBNbyAodGFpIHhvbSAxLCB4YSBTb24gSGFtLCANCmh1eWVuIEh1b25nIFNvbiwgSGEg VGluaCkgYmF0IG5nbyBiaSB2byBsYW0gaGFuZyBuZ2FuIGhvIGRhbiB0YWkgY2FjIHhhIFNvbiBE aWVtLCANClNvbiBIYW0sIFNvbiBQaHUgdmEgdGhpIHRyYW4gUGhvIENoYXUgYmkgbmdhcCB0cm9u ZyBudW9jLCBoYW5nIHRyYW0gaGVjdGEgaG9hIG1hdSBiaSBzYW4gYmFuZy4NCg0KKiBNaWVuIFRy dW5nIGRvaSBtYXQgdm9pIGNvbiBsdSBtb2kNCg0KVGhlbyBUcnVuZyB0YW0gZHUgYmFvIGtoaSB0 dW9uZyB0aHV5IHZhbiBUcnVuZyB1b25nLCBraG9hbmcgMTMgZ2lvIGhvbSBuYXksIHZpIHRyaSAN CnRydW5nIHRhbSB2dW5nIGFwIHRoYXAgbyB2YW8ga2hvYW5nIDE0IC0gMTYgZG8gdmkgYmFjOyAx MDYgLSAxMDggZG8ga2luaCBEb25nLCB0cmVuIGtodSB2dWMgYmllbiBnaW9pIFZpZXQgLSBMYW8u DQoNCkRvIGFuaCBodW9uZyBjdWEgaG9hbiBsdXUgdnVuZyBhcCB0aGFwIGtldCBob3Agdm9pIGRv aSBnaW8gRG9uZyBCYWMgaG9hdCBkb25nIG1hbmgsIA0KbyB2dW5nIGJpZW4gdmluaCBCYWMgQm8s IHZ1bmcgYmllbiBuZ29haSBraG9pIGNhYyB0aW5oIHR1IFF1YW5nIFRyaSBkZW4gRGEgTmFuZyBj byANCmdpbyBtYW5oIGNhcCA2IC0gNywgZ2lhdCB0cmVuIGNhcCA3IHZhIGNvIG11YSByYW8gdmEg ZG9uZyBtYW5oLg0KDQpDYWMgdGluaCB0dSBUaGFuaCBIb2EgZGVuIFF1YW5nIFRyaSBjbyBtdWEs IG11YSB2dWEgdmEgcmFpIHJhYyBjbyBkb25nLCByaWVuZyBjYWMgDQp0aW5oIHR1IE5naGUgQW4g ZGVuIFF1YW5nIEJpbmggY28gbXVhIHRvIGRlbiByYXQgdG8uDQoNCkRlbSBxdWEgKDE1LjEwKSwg Y2FjIHRpbmggdHUgSGEgVGluaCBkZW4gUXVhbmcgQmluaCBjbyBtdWEgdG8gZGVuIHJhdCB0by4g VHJvbmcgdm9uZyANCjEyIGdpbyBsdW9uZyBtdWEgZG8gZHVvYyBwaG8gYmllbiB0dSA1MCAtIDEw MG1tLCBjbyBub2kgdHJlbiAxMDBtbSBuaHUgQ2h1IExlIChIYSANClRpbmgpOiAxNTBtbSwgSG9h IER1eWV0IChIYSBUaW5oKTogMTU2bW0sIFR1eWVuIEhvYSAoUXVhbmcgQmluaCk6IDE0OG1tLCBN aW5oIA0KSG9hIChRdWFuZyBCaW5oKTogMTM3bW0uIA0KDQpEbyBtdWEgbG9uLCBsdSB0cmVuIGNh YyBzb25nIHR1IEhhIFRpbmggZGVuIFF1YW5nIEJpbmggbGVuIGxhaSB2YSBvIG11YyBjYW87IGNh YyBzb25nIA0KdHUgUXVhbmcgVHJpIGRlbiBRdWFuZyBOYW0gZGFuZyB4dW9uZyBjaGFtLg0KDQpD YW4gZGUgcGhvbmcgbHUgcXVldCwgc2F0IGxvIGRhdCBvIHZ1bmcgbnVpLCBuZ2FwIGx1dCBzYXUg byB2dW5nIHRydW5nLCBkb25nIGJhbmcgaGEgDQpsdXUgY2FjIHNvbmcgdHUgSGEgVGluaCBkZW4g UXVhbmcgQmluaC4NCg0KRG8gbXVhIGxvbiBrZW8gZGFpIHRyZW4gZGllbiByb25nIHRhaSBIYSBU aW5oIG5lbiBkYSBjbyBuaGlldSB4YSwgdGhpIHRyYW4gYmkgbmdhcCB0cm9uZyANCm51b2MuIERh YyBiaWV0IDMgaHV5ZW4gbWllbiBudWkgbGEgSHVvbmcgS2hlIGNvIDEwLzIyIHhhIGJpIG5nYXAg bnVvYywgSHVvbmcgU29uIA0KMTcvMzIgeGEgYmkgbmdhcCwgVnUgUXVhbmcgNy8xMiB4YSBiaSBu Z2FwLiANCg0KTXVhIGxvbiBrZW8gZGFpIHR1IDIgZ2lvIGRlbSBuZ2F5IDE0LjEwIGRlbiBob20g bmF5IGRhIGtoaWVuIG11YyBudW9jIHRyZW4gY2FjIHNvbmc6IA0KTmdhbiBTYXUsIE5nYW4gUGhv IGRhbmcgY2FvIHZhIGdheSByYSBsdSBjdWMgYm8sIGtoaWVuIG1vdCBuZ3VvaSBjaGV0LiBEbyBs YSBlbSBEb2FuIA0KSGllcCBEb25nLCBsb3AgOUMsIFRydW9uZyBUSENTIHhhIE1haSBUaHV5LCBi YXQgbmdvIGJpIG51b2MgbHUgY3VvbiB0cm9pIChzYW5nIDE1LjEwKS4NCg0KRGFuZyBsbyBuZ2Fp IG5oYXQgbGEgZGFwIEtoZSBNbywgdGFpIHhhIFNvbiBIYW0gYmkgdm8gdHJhbSB0cm9uZyBsYW0g aGFuZyBuZ2FuIGNhbiANCm5oYSB0YWkgY2FjIHhhIFNvbiBEaWVtLCBTb24gSGFtLCBTb24gUGh1 IHZhIHRoaSB0cmFuIFBobyBDaGF1IGJpIG5nYXAgdHJvbmcgbnVvYy4gDQpIYW5nIHRyYW0gaG8g ZGFuIGRhIGx1IGx1b3QgY2hheSBsZW4gbnVpIHRydSBuZ3UuIA0KDQpTdSBjbyB2byBkYXAgZG8g bXVhIGxvbiBrZW8gZGFpLCBhcCBsdWMgY3VhIGx1IGRhbmcgY2FvLCBob24gbnVhIGRhcCBLaGUg TW8gZGFuZyANCnRyb25nIHRob2kgZ2lhbiBzdWEgY2h1YSwga2hvaSBwaHVjLg0KDQo4IGdpbyBz YW5nIG5heSBjaHVuZyB0b2kgZGEgY28gbWF0IHRhaSBoaWVuIHRydW9uZyBjaHVuZyBraWVuIGhh bmcgdHJhbSBuZ3VvaSBkYW4gbmhhbyANCm5oYWMga2VvIG5oYXUgbGVuIG51aSwgZ2lhbyB0aG9u ZyBnYW4ga2h1IHZ1YyB0cmFtIGRpZW4gZGEgYmkgY2hpYSBjYXQsIG51b2MgdHJhbiBxdWEgDQpk dW9uZyB2YSBiaSBzYXQgbG8gbmFuZy4gDQoNCkRvIGR1b25nIG51aSBraG8gZGksIGxhaSBiaSBz YXQgbG8gbmFuZywgZHVvbmcgbGVuIGRhcCBnYW4gNGttIGRhIGJpIHBob25nIGhvYSwgbHVjIA0K bHVvbmcgY3V1IGhvIGRhIGtob25nIHRoZSB0aWVwIGNhbiBkdW9jLiBLaGkgY2h1bmcgdG9pIGxl byBibyBsZW4gZGVuIG5vaSB0aGkgZGFwIGRhIHZvIA0KaG9hbiB0b2FuLiANCg0KKEFuaDogRG8g bXVhIGxvbiwgYXAgbHVjIG51b2MgbHUgZGFuZyBjYW8sIGtoaWVuIGRhcCBLaGUgTW8sIHhvbSAx LCB4YSBTb24gSGFtLCANCmh1eWVuIEh1b25nIFNvbiBiaSB2byB2YW8gc2FuZyBzb20gbmF5KQ0K KEFuaDogU2F0IGxvIG5naGllbSB0cm9uZyB0YWkga2h1IHZ1YyBiaSB2byBkYXApIA0KKEFuaDog RGFwIEtoZSBNbyB2byBuYW5nIHRyb25nIHRob2kgZ2lhbiBkYW5nIGtob2kgcGh1Yywgc3VhIGNo dWEpIA0KKEFuaDogTW9pIHN1IGNvIGdhbmcga2hhYyBwaHVjIG1haSBkZW4gZ2FuIDExIGdpbyB0 cnVhIG5heSBtb2kgdGFtIG9uKSANCihBbmg6IE5nYXkgc2F1IGtoaSBzdSBjbyB2byBkYXAgS2hl IE1vLCBtdWMgbnVvYyB0aHVvbmcgbmd1b24gZGEgaGEgeHVvbmcgZHVvaSBtdWMgYmFvIGRvbmcp IA0KKEFuaDogU2F1IGhhaSBkZW0gbXVhIGxvbiwgY3VuZyB2b2kgc3UgY28gdm8gZGFwIEtoZSBN byBuZW4gbmhpZXUgaG8gZGFuIGRhIGRpIGRvaSBsZW4gbnVpIHRyYW5oIG5hbikgDQooQW5oOiBO aGlldSBjb24gZHVvbmcgdGFpIHhhIFNvbiBIYW0gYmkgbmdhcCBjaGltIHRyb25nIG51b2MgbHUp IA0KDQpUaGVvIHF1YW4gc2F0IGN1YSBjaHVuZyB0b2kga2h1IHZ1YyBzYXQgbG8gcm9uZyBnYW4g MzBtLCB2b2kgZG8gY2FvIHRyZW4gMTBtLiBEYXQgDQpkYSBoYWkgYmVuIGtodSB2dWMgYmkgc2F0 IGxvIGxpZW4gdHVjIHN1cCB2YSByb2kgeHVvbmcuIERlbiBnYW4gMTEgZ2lvIHRydWEgbmF5LCBz dSBjbyB2byBkYXAgbW9pIHRhbSB0aG9pIGtoYWMgcGh1YyBkdW9jLg0KKFRoZW8gVFRYVk4pIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMTgw MDQyMzEuYXNweCBNLlZvbmcgS2hhbmggSG9hbiAtIFRyLkhvYSAtIFF1YW5nIE5hbSAtIE4uUGh1 YyAtIFF1YW5nIER1YW4gMTgvMTAvMjAxMCAwOjQyDQoNClRodSB0dW9uZzogTWllbiBUcnVuZyBs YWkgY2hpbSB0cm9uZyBiaWVuIG51b2MgLSBraG9hbiBraW5oIHBoaSAyMDAgdGkgZG9uZyBobyB0 cm8gY2hvIFF1YW5nIEJpbmggdmEgSGEgVGluaCB2YW4gY2h1YSBkdW9jIEJvIHRhaSBjaGluaCBj YXAgKHRpbmggZGVuIDE3LzEwKSANCg0KKEFuaDogTmh1bmcgbmdvaSBuaGEgdGFpIGh1eWVuIEh1 b25nIEtoZSB2YW4gY2hpbSB0cm9uZyBudW9jLCB0cm9uZyBraGkgbmd1b2kgZGFuIA0KZGFuZyBk b2kgbWF0IHZvaSB2byB2YW4ga2hvIGtoYW4gLSBBbmggOksuSG9hbikNCg0KKiBEYSBjbyAxMDgg bmd1b2kgY2hldCB2YSBtYXQgdGljaCANCiogSGFuZyB2YW4gbmdvaSBuaGEgbmdhcCBzYXUgdHJv bmcgbnVvYywgZHVvbmcgc2F0ICBiaSB0YWMgDQoqIENoaWV1IHRvaSBuYXkgc2lldSBiYW8gTWVn aSB2YW8gYmllbiBEb25nIA0KDQpMdSBjdSBjaHVhIHF1YSwgbXVhIGRvbiBkYXAgdmEgbHUgbW9p IGxhaSB2ZSBraGllbiBuaGlldSB0aW5oIG1pZW4gVHJ1bmcgY2hpbSB0cm9uZyANCmJpZW4gbnVv YywgZ2F5IHRoaWV0IGhhaSBuZ2hpZW0gdHJvbmcgdmUgbmd1b2kgdmEgY3VhLi4uIA0KDQpUaHV5 IGRpZW4geGEgbHUsIG51b2MgZG9uIHZlIGhhIGx1dQ0KDQpUYW5nIHRodW9uZyBkb24gZGFwICAN Cg0KRHVvbmcgc2F0IGxhaSBhY2ggdGFjLCBjaHV5ZW4gdGFpIGhhbmgga2hhY2ggYmFuZyBvIHRv IA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTAvQm8tUXVvYy1waG9uZy1kaWV1 LXRydWMtdGhhbmctdmFvLWN1dS1kYW4tdnVuZy1sdS05NDI5ODUvIE5nb2MgQW5oIDEwOjE0LCAx OC8xMC8yMDEwIChHTVQrNykNCg0KQm8gUXVvYyBwaG9uZyBkaWV1IHRydWMgdGhhbmcgdmFvIGN1 dSBkYW4gdnVuZyBsdQ0KDQpOdW9jIGx1IGxvbiBjaHVhIGNvIGRhdSBoaWV1IHJ1dCwgaGFuZyBj aHVjIG5nYW4gbmd1b2kgZGFuIGRhbmcgc29uZyB0cm9uZyBjYW5oIG1hbiANCnRyb2kgY2hpZXUg ZGF0LiBCbyBRdW9jIHBob25nIGRhIGRpZXUgbWF5IGJheSB0cnVjIHRoYW5nIHZhbyBjdXUgZGFu IHZ1bmcgbHUuDQoNClRJTiBMSUVOIFFVQU4NClhlIGtoYWNoIGJpIGx1IGN1b24sIDIwIG5ndW9p IG1hdCB0aWNoDQpUaG9hdCBsdSB0cmVuIHF1b2MgbG8gMUEgDQoxOSBuZ3VvaSBjaGV0IGx1LCBz aWV1IGJhbyBhcCBzYXQgYmllbiBEb25nIA0KQ2h1bSBhbmg6IFF1b2MgbG8gMUEgdGhhbmggZG9u ZyBzb25nIGxvbiANCktoYWNoIGRpIHRhdSB0YW5nIGJvIGJhbmcgbyB0byB2dW90IGx1IA0KU2ll dSBiYW8gY3VjIG1hbmggc2FwIGRvIGJvIHZhbyBiaWVuIERvbmcNCg0KMjAgbmd1b2kgY2hldCwg Z2FuIDE1MCBuZ2FuIGhvIGRhbiBiaSBuZ2FwDQoNClRoZW8gQmFuIGNoaSBodXkgcGhvbmcgY2hv bmcgbHV0IGJhbyBUcnVuZyB1b25nLCBoaWVuIEJvIFF1b2MgcGhvbmcgZGEgZGlldSAxIG1heSAN CmJheSBNaTE3IHR1IHNhbiBiYXkgR2lhIExhbSAoSGEgTm9pKSB2YW8gVmluaCAoTmdoZSBBbikg ZGUgdHJ1YyB0aWVwIHBodWMgdnUgYmF5IGN1dSANCnRybyBjYWMgdnVuZyBraG8ga2hhbiBjdWEg SGEgVGluaC4NCg0KQm8gUXVvYyBwaG9uZyBjdW5nIGRhIGh1eSBkb25nIDkyIHBodW9uZyB0aWVu IHh1b25nLCBjYSBubyBjdWEgcXVhbiBkb2ksIGJpZW4gDQpwaG9uZywgY29uZyBhbiB2YSBob24g MTAwIHBodW9uZyB0aWVuIGN1YSBuaGFuIGRhbiB0YXAgdHJ1bmcgY3V1IHRybyBjaG8gbmhhbiBk YW4sIGRhYyANCmJpZXQgdGFpIGNhYyBodXllbiBIdW9uZyBLaGUsIFZ1IFF1YW5nLCBUaGFjaCBI YSAoSGEgVGluaCksIHRvIGNodWMgY3V1IGR1b2MgMjgwIA0Kbmd1b2kgdGh1b2MgQ2FtIFh1eWVu IHZhIER1YyBUaG87IHZhbiBjaHV5ZW4gMjYwIHRodW5nIG1pIHRvbSwgMSB0YW4gbWkgdG9tIHJv aSwgNjAgDQp0aHVuZyBudW9jIGtob2FuZyB2YSAyIGNodXllbiBiYXQgY2hvbmcgdHJhbi4NCg0K KEFuaDogQm8gUXVvYyBwaG9uZyBkYSBkaWV1IDEgbWF5IGJheSBNaTE3IHR1IHNhbiBiYXkgR2lh IExhbSB2YW8gVmluaCBkZSB0cnVjIHRpZXAgDQpwaHVjIHZ1IGJheSBjdXUgdHJvIGNhYyB2dW5n IGtobyBraGFuIGN1YSBIYSBUaW5oKSAgDQoNCkhpZW4gbmF5LCBudW9jIGx1IGtoaWVuIDIxIHhh IG8gTmdoZSBBbiBiaSBuZ2FwIHNhdSwgdHJvbmcgZG8gY28gOSB4YSBiaSBjbyBsYXAgaG9hbiAN CnRvYW4gKEh1bmcgWWVuIE5hbSwgSHVuZyBZZW4gQmFjLCBIdW5nIFRydW5nIChodXllbiBIdW5n IE5ndXllbik7IE5naGkgVmFuLCANCk5naGkgWGEgKGh1eWVuIE5naGkgTG9jKTsgTmFtIFBodWMs IE5hbSBLaW0gKGh1eWVuIE5hbSBEYW4pOyBYb20gMSwgMiB2YSAxMSANCkRpZW4gUGh1OyB4b20g MTEgRGllbiBMb2MgKERpZW4gQ2hhdSkuIFRvbmcgc28gaG8gZGFuIGJpIG5nYXAgbGEgMTUuMTY2 IGhvLg0KDQpUYWkgSGEgVGluaDogVG9uZyBzbyAxNzggeGEgY3VhIDEyIGh1eWVuLCB0aGkgdHJv bmcgdGluaCBiaSBuZ2FwLCBsdXQgdHJvbmcgZG8gY28gMTA1IHhhIA0KYmkgbmdhcCBzYXUgdmEg Y2hpYSBjYXQgaG9hbiB0b2FuLiBUb25nIHNvIGhvIGRhbiBiaSBuZ2FwIGxhIDgzLjUxNyBoby4N Cg0KVGFpIFF1YW5nIEJpbmg6IFRvbmcgc28gY28gODAgeGEgYmkgbmdhcCB0cm9uZyBkbyBjbyAx MiB4YSBjb24gYmkgY28gbGFwLiBUb25nIHNvIGhvIA0KZGFuIGJpIG5nYXAgbGEgNTMuNTIwIGhv Lg0KDQpMdSBkYSBraGllbiAyMCBuZ3VvaSBjaGV0IChOZ2hlIEFuOiA4IG5ndW9pOyBIYSBUaW5o OiAxMCBuZ3VvaTsgUXVhbmcgQmluaDogMiBuZ3VvaSksDQogbmdvYWkgcmEgdGFpIFRodWEgVGhp ZW4gSHVlIGNvIDEgbmd1b2kgY2hldCB2YSAyIG5ndW9pIG1hdCB0aWNoIGRvIGxvYyB2YSBiYXQg Y2FuIGtoaSBkaSANCnF1YSBzb25nLiBOZ29haSByYSBjbyAxIG5ndW9pIG1hdCB0aWNoIGN1YSBR dWFuZyBCaW5oLCBoaWVuIGRhbmcgZHVvYyB4YWMgbWluaC4gRGEgY28gDQoxNTIuMjAzIG5oYSBi aSBuZ2FwIChOZ2hlIEFuOiAxNS4xNjYgbmhhOyBIYSBUaW5oOiA4My41MTcgbmhhOyBRdWFuZyBC aW5oOiA1My41MjAgDQpuaGEpLg0KDQpTbyB0YW4gaG9uIDEwMC4wMDAgZGFuIA0KDQpOZ2F5IDE3 LzEwLCBjYWMgdGluaCB0dSBUaGFuaCBIb2EgZGVuIFRodWEgVGhpZW4gSHVlIGNvIG11YSB0byBk ZW4gcmF0IHRvLiBUdSAxMyBnaW8sIA0KbHVvbmcgbXVhIHR1IEhhIFRpbmggZGVuIFRodWEgVGhp ZW4gSHVlIGRhIGdpYW0sIG11YSBsb24gY2h1eWVuIGRpY2ggdmUgcGhpYSBOZ2hlIA0KQW4gdmEg TmFtIFRoYW5oIEhvYS4NCg0KTXVhIG5nb3QsIGx1IGxlbiwgbGFpIHRoZW0gc2lldSBiYW8gTWVn aSBkYW5nIHV5IGhpZXAgbmdvYWkga2hvaSBiaWVuIERvbmcsIGNhYyB0aW5oIGRhIA0KZGF0IGNv bmcgdGFjIHNvIHRhbiBsZW4gaGFuZyBkYXUgKGJlbiBjYW5oIGN1dSBobyBjdXUgbmFuKS4NCg0K KEFuaDogSGFuZyBjaHVjIG5nYW4gbmd1b2kgZGFuZyBjaG8gY3V1IGhvLiBBbmg6IFRyaSBUaHVj KQ0KDQpUYWkgVGluaCBIYSBUaW5oLCAodGluaCBkZW4gMTVoIG5nYXkgMTcvMTApIGRhIHNvIHRh biBkZW4gbm9pIGFuIHRvYW4gZHVvYyAxNy4wMDAgaG8gDQpkYW4gKDY4LjAwMCBuZ3VvaSkgY3Vh IGNhYyBodXllbiBIdW9uZyBLaGUsIFZ1IFF1YW5nLCBDYW0gWHV5ZW4sIER1YyBUaG8sIExvYyAN CkhhLCBOZ2hpIFh1YW4sIEh1b25nIFNvbi4uLiANCg0KQ29uIHRhaSBRdWFuZyBCaW5oICh0aW5o IGRlbiAxOGggbmdheSAxNy8xMCkgZGEgc28gdGFuIGRlbiBub2kgYW4gdG9hbiBkdW9jIDEwLjYy NiBobyANCig0Ny45OTcgbmd1b2kpIHRodW9jIGNhYyBodXllbiBRdWFuZyBOaW5oLCBUdXllbiBI b2EsIE1pbmggSG9hLCBCbyBUcmFjaCwgUXVhbmcgDQpUcmFjaC4NCg0KSGEgVGluaCBkYSBodXkg ZG9uZyA0MCB4dW9uZyBjYW8gdG9jIHZhIGhhbmcgbmdhbiBjYW4gYm8sIGNoaWVuIHN5LCBsdWMg bHVvbmcgZGFuIA0KcXVhbiB0dSB2ZSB0YWkgY2hvIHRvIGNodWMgdW5nIGN1dSwgY3V1IHRybywg c28gdGFuIGRhbiByYSBraG9pIHZ1bmcgbmdhcCBzYXUgZGVuIG5vaSBhbiANCnRvYW4uIE5nb2Fp IHJhLCB0aW5oIGRhIGh1eSBkb25nIDUwIHRhbiBteSB0b20sIDUwLjAwMCBsaXQgbnVvYyB1b25n IGRvbmcgY2hhaSBkZSBjdXUgDQp0cm8gY2hvIG5oYW4gZGFuIHZ1bmcgSHVvbmcgS2hlLCBWdSBR dWFuZywgQ2FuIExvYywgVGhhY2ggSGEsIENhbSBYdXllbjsgdHJpY2ggDQpuZ2FuIHNhY2ggMTUg dHkgZG9uZyBkZSBobyB0cm8gY2FjIGh1eWVuIG11YSBsdW9uZyB0aHVjIHZhIG5odSB5ZXUgcGhh bSB0aGlldCB5ZXUgY3V1IA0KdHJvIG5oYW4gZGFuIHZ1bmcgbHUuDQoNClF1YW5nIEJpbmggY3Vu ZyBkYSBodXkgZG9uZyAzMCB4dW9uZywgY2Egbm8sIGhhbmcgY2h1YyB4ZSBjYWMgbG9haSwgMzAw IGNhbiBibywgY2hpZW4gDQpzeSwgMjAwIGRvYW4gdmllbiB0aGFuaCBuaWVuIHRydWMgdGllcCB0 b2kgdnVuZyBuZ2FwIGRlIGN1dSBobywgZGkgZG9pIGRhbi4NCg0KTXVhIGx1IGNodXllbiBzYW5n IE5naGUgQW4NCg0KVHJhIGxvaSBiYW8gRGFudmlldCwgYmEgTmd1eWVuIExhbiBDaGF1LCBQaG8g Z2lhbSBkb2MgVFREQktUVFZUVSBjaG8gYmlldDogTyBIYSANClRpbmggdHUgbmdheSAxOC0xMCBt dWEgc2UgZ2lhbSBkYW4sIG5odW5nIHZ1bmcgdGh1b25nIG5ndW9uIG5odSBvIHNvbmcgTmdhbiBT YXUsIA0KTmdhbiBQaG8gZGFuZyBjbyBjaGlldSBodW9uZyBnaWFtLCB0dXkgbmhpZW4sIG8gaGEg bHV1IG5odSBzb25nIExpbmggQ2FtLCBzb25nIExhIA0KbnVvYyBsdSBzZSB0YW5nLCBoaWVuIG5h eSBudW9jIGx1IGRhbmcgbyBtdWMgdHJlbiBiYW8gZG9uZyAzIGtob2FuZyA1NSBjbSwgbmdheSAx OC0xMCANCnNlIHRpZXAgdHVjIHRhbmcuDQoNCk8gTmdoZSBBbiwgY2FjIHZ1bmcgdmVuIGJpZW4g c2FuZyBuZ2F5IDE4LTEwIG11YSBsdSBzZSBsb24gaG9uLCBsdW9uZyBtdWEgc2UgdGFuZyB0dSAN CjcwIC0xMDBtbS4NCg0KVGhlbyB0aG9uZyB0aW4gdHUgVHJ1bmcgdGFtIGR1IGJhbyBraGkgdHVv bmcgdGh1eSB2YW4gVFcsIGx1IHRyZW4gaGEgbHV1IHNvbmcgTGEgZGFuZyANCnh1b25nIGNoYW0g dmEgZHV5IHRyaSBvIG11YyBjYW87IGx1IHRyZW4gc29uZyBOZ2FuIFNhdSwgTmdhbiBQaG8gdmEg Y2FjIHNvbmcgbyBRdWFuZyANCkJpbmggdGllcCB0dWMgeHVvbmcuIE5odW5nIGx1IHRyZW4gY2Fj IHNvbmcgbyBOZ2hlIEFuIHRpZXAgdHVjIGxlbi4gSGllbiBtdWMgbnVvYyBzb25nIA0KQ2EgdGFp IE5hbSBEYW4gbGVuIG11YyA3LDVtLCBkdW9pIEJEMzogMCw0bSB2YSBjb24gdGllcCB0dWMgbGVu IHRyb25nIGNhYyBuZ2F5IHRvaS4NCg0KRGVtIG5nYXkgMTcsIHJhbmcgc2FuZyBuZ2F5IDE4LCBt dWEgZGEgZ2lhbSwgY2FjIHR1IHRpbmggSGEgVGluaCB0cm8gdmFvIG11YSBuaG8sIHR1IA0KcGhp YSBOYW0gVGhhbmggSG9hIGRlbiBOYW0gTmdoZSBBbiBjbyBtdWEgdnVhLCBtb3Qgc28gbm9pIGNv biBtdWEgdG8uIEx1b25nIA0KbXVhIHRhaSBOZ2hlIEFuIHBobyBiaWVuIG8gbXVjIDE1MCAtIDI1 MG1tLiBNb3Qgc28gbm9pIG11YSByYXQgdG8gbmh1OiBRdXluaCBMdXU6IA0KMjU1bW0sIE5hbSBE YW46IDU2N21tLCBIb24gTmd1OiA1MjNtbS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94 YWhvaS8yMDEwMTAvTWllbi1UcnVuZy1jYW4tbGFtLW5odW5nLXRhbS1sb25nLTk0MTk2Ni8gVmll dE5hbU5ldCAxNTozMywgMTMvMTAvMjAxMCAoR01UKzcpDQoNCkN1dSB0cm8ga2hhbiBjYXAgZG9u ZyBiYW8gbWllbiBUcnVuZw0KDQpMdSBjaG9uZyBsZW4gbHUuIEhhbmcgdHJhbSBuZ29pIG5oYSBi aSBuZ2FwLCBoYW5nIHRyYW0geGEgYmkgY28gbGFwLiBIb24gYmFvIGdpbyBoZXQsIG5ndW9pIGRh biBtaWVuIFRydW5nIGRhbmcgY2FuIHN1IGNodW5nIHRheSBnaXVwIGRvIGN1YSBjYWMgbmhhIGhh byB0YW0sIGNhYyBEb2FuaCBuZ2hpZXAsIGRlIGhvIGNvIHRoZSB2dW90IHF1YSBjb24gYmkgY3Vj IGRheSB0aHVvbmcgZGF1IG5heS4gDQoNCkhhaSBjb24gbHUgbGllbiB0aWVwIGFwIGRlbiwgZGFp IGRhdCBuZ2hlbyBtaWVuIFRydW5nIHZhdCBsb24gdm9pIGNhbmggdGhpZXUgZG9pLCBuaGEgY3Vh IA0KdGFuIGhvYW5nLCBuaGlldSB2dW5nIGJpIGNvIGxhcC4gQ2EgbW90IGRhaSBkYXQgY2hhbmcg Y29uIGdpIG5nb2FpIG1lbmggbW9uZyBiaWVuIA0KbnVvYy4gTmd1b2kgZGFuIHBoYWkgbmhpbiBk b2kgcXVhIG5nYXkgY2hvIGNvbiBudW9jIHh1b25nLiBIYW5nIHRyYW0gZG9pIHRheSB2YXkgDQp2 dW5nLCBhbmggbWF0IG5nbyBuZ2FjIHR1eWV0IHZvbmcgbmhpbiB0aHV5IHRoYW4gbmhhbiBjaGlt IGxhbmcgbWFjLCBuaGEgY3VhLCBjdW9uIA0KcGhhbmcgZGkgbmh1bmcgdGFpIHNhbiBjbyBnaWEg dHJpIG1hIGhvIGNoYXQgY2hpdSBkYW5oIGR1bSwgdGFuIHRhbyBjYSBtYXkgbmFtIHRyb2kuDQoN Ck5hbSBuYW8gY3VuZyB2YXksIHZhbyBtdWEgbXVhIGJhbywgbmd1b2kgZGFuIG1pZW4gVHJ1bmcg bGFpIG9hbiBtaW5oIGRlIGNob25nIGxhaSANCmNvbiB0aGluaCBubyBjdWEgdGhpZW4gbmhpZW4u IENoaSBzYXUgbW90IGRlbSwgZG9uZyBydW9uZyBiaSBsdSBjdW9uIHBoYW5nLCBudW9jIGFvIA0K dmFvIG5nYXAgdG9pIG5vYyBuaGEuIA0KDQpDYSBtb3QgZGFpIGRhdCBjaGFuZyBjb24gZ2kgbmdv YWkgbWVuaCBtb25nIGJpZW4gbnVvYy4gTmd1b2kgZGFuIHBoYWkgdHJvbiBjaGF5IGNhIA0KZGVt IGRlIHRyYW5oIGx1LCBuaGluIGRvaSBxdWEgbmdheSBjaG8gY29uIG51b2MgeHVvbmcuIEhhbmcg dHJhbSBkb2kgdGF5IHZheSB2dW5nLCANCmFuaCBtYXQgbmdvIG5nYWMgdHV5ZXQgdm9uZyBuaGlu IHRodXkgdGhhbiBuaGFuIGNoaW0gbGFuZyBtYWMsIG5oYSBjdWEsIGN1b24gcGhhbmcgZGkgDQpu aHVuZyB0YWkgc2FuIGNvIGdpYSB0cmkgbWEgaG8gY2hhdCBjaGl1IGRhbmggZHVtLCB0YW4gdGFv IGNhIG1heSBuYW0gdHJvaS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDQzLzIwMTAxMDE4MDkwMTUyLmFzcHggMTgvMTAvMjAxMCA5OjAxIA0KDQpYZSBraGFj aCBiaSBsdSBjdW9uLCAxIG5ndW9pIGNoZXQsIDIwIG5ndW9pIG1hdCB0aWNoICANCiAgDQpCYW4g ZG9jIFRoYW5oIE5pZW4gZGEgZG9uZyBnb3AgMyw1OCB0aSBkb25nIGN1dSB0cm8gZG9uZyBiYW8g dnVuZyBsdSANCg0KKFROTykgRGVuIDEzIGdpbyAzMCB0cnVhIDE4LjEwLCBjdW9jIHRpbSBraWVt IHZhbiBkYW5nIGR1b2MgdGllbiBoYW5oIGtoYW4gdHJ1b25nLCANCkJvIHR1IGxlbmggUUsgNCBk YSBkaWV1IGRvbmcgbHVjIGx1b25nIEJvIGRvaSBjb25nIGJpbmggdm9pIHBodW9uZyB0aWVuIHhl IGxvaSBudW9jLCANCnh1b25nIGNhbyB0b2MsIHRoaWV0IGJpIHJhIHBoYSBib20gbWluIChkZSB4 YWMgZGluaCB2aSB0cmkgeGUpLCBuaHVuZyB2YW4gY2h1YSB0aW0gdGhheS4NCg0KTmdheSBzYXUg a2hpIG5oYW4gZHVvYyB0aG9uZyB0aW4gdmUgY2hpZWMgeGUga2hhY2ggYmkgbHUgY3VvbiB0cm9p IHh1b25nIHNvbmcgTGFtIHZhbyANCmtob2FuZyA0IGdpbyAzMCBzYW5nIDE4LjEwLCBjYWMgbHVj IGx1b25nIGNvbmcgYW4gSGEgVGluaCB2YSBibyBkb2kgY3VhIFF1YW4ga2h1IA0KKFFLKSA0IGRh IGtpcCB0aG9pIGNvIG1hdCB0YWkgaGllbiB0cnVvbmcgZGUgY3V1IGhvLCBjdXUgbmFuLiBCaSB0 aHUgVGluaCB1eSBIYSBUaW5oIHZhIA0KVHUgbGVuaCBRSzQgZGEgY28gbWF0IHRhaSBoaWVuIHRy dW9uZyB0cnVjIHRpZXAgY2hpIGh1eSBjdW9jIHRpbSBraWVtLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDE5MDIzNzA2LmFzcHggLiAgKEsu SC0gVC5IIC0gTi5UdSAtIE4uVC5UIE5NKSAxOS8xMC8yMDEwIDI6MzcgDQoNClRhaSBuYW4ga2lu aCBob2FuZyB0cm9uZyBsdSBkdSAgDQoNCiogWGUga2hhY2ggY2hvIDM3IG5ndW9pIGJpIGN1b24g dHJvaSB4dW9uZyBzb25nDQoqIERhIGNvIDE0MiBuZ3VvaSBjaGV0IHZhIG1hdCB0aWNoIA0KKiBC YW8gc28gNiBtYW5oIGNhcCAxNSAtIDE2IGRhIGRpIHZhbyBiaWVuIERvbmcgDQoNCkx1YyBsdW9u ZyBxdWFuIHN1IGh1eWVuIFF1YW5nIFRyYWNoIG5vIGx1YyBjdXUgbmd1b2kgdHJvbmcgdHJhbiBs dSAoYW5oIHRyZW46IGFuaCBUcmFuIA0KVmFuIEx1YyAtIG5ndW9pIGRhIHRob2F0IGtob2kgeGUg Y2hpZWMgeGUga2hhY2ggYmkgbHUgY3VvbiB0cm9pIHh1b25nIHNvbmcgTGEpIC0gYW5oOiANClRy dW9uZyBRdWFuZyBOYW0gLSBBbmg6IFRydW9uZyBIb2EgDQoNCkRlbiBjaGlldSB0b2kgcXVhIDE4 LjEwLCBjYWMgbHVjIGx1b25nIHRpbSBraWVtIGN1dSBuYW4gY3VhIEhhIFRpbmggdmEgUUs0IHZh biBjaHVhIA0KdGltIHRoYXkgMjAgaGFuaCBraGFjaCBjdW5nIHZvaSBjaGllYyB4ZSBraGFjaCBt YW5nIEJLUyA0OEstNTg2OCBiaSBudW9jIGx1IGN1b24gDQp0cm9pIHh1b25nIHNvbmcgTGEuIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL1RhbmctdGh1b25nLXRyYWkt a2hhcC1taWVuLVRydW5nLTk0MzE1Ny8gUUggliBELlQgliBILlMgliBLQSAwNzozNCwgMTkvMTAv MjAxMCAoR01UKzcpDQoNClRhbmcgdGh1b25nIHRyYWkga2hhcCBtaWVuIFRydW5nDQoNCk5ndW9p IHBodSBudSBiaSBkb25nIG51b2MgeG9heSBuaGFuIGNoaW0gZG8gbGEgY2hpIFBoYW0gVGhpIEh1 eWVuICgzMiB0dW9pKSwgZGUgbGFpIA0KY2hvIG5ndW9pIGNob25nIDQgZHVhIGNvbiB0aG8gbmhl byBuaG9jLCBnaXVhIG51b2MgbHUgbWVuaCBtb25nDQoNClRJTiBMSUVOIFFVQU4NCipDdXUgdHJv IGtoYW4gY2FwIGRvbmcgYmFvIG1pZW4gVHJ1bmcNCiogTWllbiBUcnVuZyBuZ2F5IHRoYW0gaG9h DQoqIEhpbmggYW5oIGx1ICJzaWV1IHRvYyIgdGFpIG1pZW4gVHJ1bmcNCiogTWllbiBUcnVuZyAi cnVuIGxheSBiYXkiIGRvbiBzaWV1IGJhbw0KDQpUcmVuIGR1b25nIHZhbyB0YW0gbHUgeGEgUXVh bmcgTG9jIChodXllbiBDYW4gTG9jLCBIYSBUaW5oKSwgY2h1bmcgdG9pIGJhdCBnYXAgbmhpZXUg DQpjYW5oIG5ndW9pIHNvbmcgdGllbiBkdWEgbmd1b2kgY2hldCB0cnVvYyBjYW5oIGRvbmcgbnVv YyBtZW5oIG1vbmcuIE5odW5nIGNvbiANCmR1b25nIG5heSBsdWMgbmF5IGRhIGhvYSB0aGFuaCBz b25nLCBsYW5nIG1hYyBiaWVuIHRoYW5oIGJpZW4gbnVvYy4NCiANClRhbmcgdGh1b25nIGtoYXAg bW90IHZ1bmcgcXVlDQogDQpUcm9uZyBzdW90IDIgdHVhbiBxdWEsIGRvYyB0dXllbiBjYWMgdGlu aCBCYWMgbWllbiBUcnVuZywgbHUgbHV0IGRhIGN1b3AgZGkgaGFuZyB0cmFtIA0KdGluaCBtYW5n IG5ndW9pIGRhbiB2byB0b2ksIGhhbmcgdHJhbSBuZ3VvaSBiaSB0aHVvbmcsIGhhbmcgdmFuIG5n b2kgbmhhIGJpIHZ1aSBkYXAgc2F1IA0KdHJvbmcgYmllbiBudW9jIHZhIGhhbmcgdHJpZXUgdHJp ZXUgY29uIHRpbSBjYSBudW9jIHZhbiBuZ29uZyB0cm9uZyB2ZSBraHVjIHJ1b3QgbWllbiANClRy dW5nIHBodSBkYXkgdGFuZyB0b2MuDQogDQoNCjQgbmdheSBxdWEsIGtoaSBudW9jIGx1IGRhbmcg Y2FvLCBnaWEgZGluaCBvbmcgTHkgY2hhbmcgdGhlIG1hbmcgb25nIGRpIGR1b2MuIEhvbSBuYXkg DQpudW9jIGJhdCBkYXUgeHVvbmcsIG5ndW9pIG5oYSBtb2kgdm9pIGR1YSBvbmcgZGkgdHJvbmcg Ym9uIGJlIG51b2MgbHUuDQogDQpDaHVuZyB0b2kgdGltIHZlIHhvbSBCYW4gTG9uZywgeGEgUXVh bmcgTG9jLCBub2kgY28gbmd1b2kgZGFuIG9uZyBjaGV0IHN1b3QgNCBuZ2F5IA0KbGllbiBtb2kg ZHVvYyBkdWEgZGkgbWFpIHRhbmcuIERvIGxhIHRydW9uZyBob3Agb25nIFRyYW4gRGluaCBMeSAo U04gMTk0OSksIG5nYXkgb25nIA0KTHkgcXVhIGRvaSBsYSBuZ2F5IGRhdSB0aWVuIGNvIG5odW5n IGNvbiBtdWEgY2hpZXUgeG9pIHhhLCBnYXkgbmdhcCB1bmcgdG9hbiBraHUgdnVjIGhhIGx1dSB4 YSBRdWFuZyBMb2MuDQogDQpEZW4gbmdheSAxOC8xMCwgdGhpIHRoZSBvbmcgTHkgc2F1IGtoaSBu Z2FtIHRyb25nIG51b2MgbHUgNCBuZ2F5IG1vaSBkdW9jIG1hbmcgZGkgDQpjaG9uIGNhdC4gQ2Eg eG9tIG5obyB0aWVuIG9uZyBkaSB0cm9uZyBjYW5oIG51b2MgbHUgZ2lhbmcga2luIGNhIGxhbmcs IG1vaSBsb2kgdGhvYXQgcmEgDQpuZ29haSBjaGkgYmFuZyB0aHV5ZW4uIFZhLCBkYW0gdGFuZyBj dWEgb25nIGtob25nIGtlbiwga2hvbmcgdHJvbmcuLi4gbmh1IHR1YyBsZS4gQ2hpIA0KY28gZG9u ZyBuZ3VvaSB0aHVhIHRob3QgdGllbiBvbmcgdmUgbm9pIGFuIG5naGkgY3VvaSBjdW5nIHRyb25n IGNvbiBsdSBkdS4NCiANCkRhbSB0YW5nIHRydW9jIHZ1YSByYSwgbmhhIG1hIGxhaSBkdW9jIGNo dXllbiB2ZSB2aSBsYWkgY28gdGhlbSBuZ3VvaSBjaGV0IGRvIGx1LiBUYW5nIA0KdGh1b25nIGJh byB0cnVtIGxlbiBuaGlldSB2dW5nIHF1ZSBvIEhhIFRpbmgga2hpIGxpZW4gdHVjIHBoYWkgaHVu ZyBjaGl1IGhhaSB0cmFuIGx1IGxpY2ggDQpzdS4NCiANCk9uZyBUcmFuIERpbmggVGhpZXUsIEJp IHRodSBjaGkgYm8geG9tIEJhbiBMb25nIGNobyBiaWV0OiAiQ2EgeG9tIGNodW5nIHRvaSBiaSBu Z2FwIA0Kc2F1IHRyb25nIG51b2MuIE9uZyBMeSBiaSBjaGV0IG1heSBuZ2F5IHJvaSBjaHVhIGNo b24gY2F0IGR1b2MgbGEgZG8gdHJvaSBtdWEgdG8gcXVhLCANCm51b2MgbHUgY2hpYSBjYXQuIEto b25nIG1hbiByYW5nIChsYW0gc2FvIC0gTlYpIG1hIGR1YSBkaSBkdW9jLiBEZW4gaG9tIG5heSB0 aGkgdHJvaSANCm11YSBuaG8sIG5lbiBuZ3VvaSBuaGEgZGEgZHVhIG9uZyBheSBkaSBtYWkgdGFu ZyIuDQogDQpDdW5nIHRhaSB4b20gQmFuIExvbmcsIHhhIFF1YW5nIExvYywgY28gbmd1b2kgdm8g dGh1b25nIGNob25nIGRhdSBvbSBkYSBjaGVvIA0KdGh1eWVuIGN1bmcgbmd1b2kgZW0gdHJhaSBk aSBjYXQgdGh1b2MgdmUgY2hvIGNob25nIHVvbmcuIEtob25nIG1heSBiaSBsYXQgdGh1eWVuLiAN Ck51b2MgbHUgbGF0IG5oYW8sIG5oYW4gY2hpbSAyIGNoaSBlbSBnaXVhIGRvbmcgeG9heSBudW9j IGx1LCBuZ3VvaSBkYW4geG9tIEJhbiBMb25nIA0KY2hpIGtpcCBjdXUgZHVvYyAxIG5ndW9pIHRy dW9jIHN1IGJ1YSB2YXkgY3VhICJoYSBiYSIuDQogDQpOZ3VvaSBwaHUgbnUgYmkgZG9uZyBudW9j IHhvYXkgbmhhbiBjaGltIGRvIGxhIGNoaSBQaGFtIFRoaSBIdXllbiAoMzIgdHVvaSksIGRlIGxh aSANCmNobyBuZ3VvaSBjaG9uZyA0IGR1YSBjb24gdGhvIG5oZW8gbmhvYywgZ2l1YSBudW9jIGx1 IG1lbmggbW9uZy4NCiANCkFuaCBOZ3V5ZW4gSHV5IFRyb25nIG5ndW9pIHRydWMgdGllcCBuaGlu IHRoYXkgY2FuaCAyIGNoaSBlbSBjaGkgSHV5ZW4gdmEgbmd1b2kgZW0gDQp0cmFpIGNoZW8gdGh1 eWVuIGJpIGxhdCBrZSBsYWk6ICJLaG9hbmcgZ2FuIDggZ2lvIHNhbmcgbmdheSAxNi8xMCwgY2hp IEh1eWVuIGN1bmcgZW0gdHJhaSANCnRlbiBMdWMgZGFuZyBjaGVvIHRodXllbiB0aGkgYmkgbGF0 LiBLaGkgZG8gbmdoZSBrZXUgY3V1LCBuaHVuZyBjYWNoIGhvbiAxMDBtLCBudW9jIA0KbGFpIGxv biBuZW4gdG9pIGNoYXkga2hvbmcga2lwLiBEZW4gbm9pIHRoaSBtb2kgbmd1b2kgY2hpIGN1dSBk dW9jIGFuaCBMdWMuIERvIGNob25nIA0KYmkgYmVuaCBuYW5nLCBuZW4gYmFvIGVtIHRyYWkgY2hl byB0aHV5ZW4gZGkgbGF5IHRodW9jIGNobyBjaG9uZyB1b25nIHRoaSBjaGFuZyBtYXkgYmkgDQpu dW9jIGx1IGN1b24gY2hldCIuIA0KDQpTYW8gZW0gYm8gNCBjaGEgY29uIG5oYSBhbmggbWEgZGk/ LiBDb24gZGFuZyBjb24gbmhvIGRhaSBtYSBlbS4gTm8ga2hvYyBzdW90IG5nYXkgDQpkZW0uIEVt IHZlIGRvIGRhbmggY29uIGNobyBhbmggZGkiLCBhbmggVGhhbmcgb20gY29uIGtob2MgbmdoZW4N CkRpIHR1IGRhdSBsYW5nIGRlbiBjdW9pIHhvbSBCYW4gTG9uZywgYWkgY3VuZyBub2kgY2hpIEh1 eWVuIHZpIHRodW9uZyBjaG9uZyB0cnVvYyBjb24gDQpkYXUgcXVhbiBxdWFpIG1hIGJhdCBjaGFw IHRpbmggbWFuZyBkZSBjaGVvIHRodXllbiwgdnVvdCBkb25nIG51b2MgZHUgbXVhIHRodW9jIGN1 dSANCmNob25nIG1hIGRhbmggYm8gbWFuZy4NCiANCjQgZHVhIHRyZSB0aG8gZG9pIGxvbmcsIGto YXQgc3VhIG1lDQogDQpDYSB4b20gbWV0IGxhIG5ndW9pIHNhdSBtb3QgYnVvaSBzYW5nIGR1YSB0 YW5nIG9uZyBUcmFuIERpbmggTHkgY2hldCA0IG5nYXkgbW9pIA0KZHVvYyBjaG9uIGNhdC4gTmdh eSBtYWkgMTkvMTAsIGNhIGxhbmcgbGFpIHRpZW4gZHVhIG1haSB0YW5nIGNoaSBQaGFtIFRoaSBI dXllbiB0cm9uZyBib24gYmUgbnVvYyBsdS4NCiANCkR1b25nIHZhbyBuaGEgY2hpIEh1eWVuIG51 b2MgbmdhcCBzYXUgbnVhIG5ndW9pLiBDaGkgY28gY2hpZWMgdGh1eWVuIGNhdSBiZSB4aXUgY3Vh IA0KeGEgUXVhbmcgTG9jIGxhbSBwaHVvbmcgdGllbiwgY28gZ2FuZyBsYW0gY2h1bmcgdG9pIG1v aSB0aWVwIGNhbiBkdW9jIG5nb2kgbmhhIHRhbmcgDQp0aHVvbmcgY28gNCBkdWEgdHJlIG1vIGNv aSBtZS4gDQoNClR1IG5heSwgbmh1bmcgZHVhIHRyZSBuaGEgY2hpIEh1eWVuIHBoYWkgdHJvbmcg Y2F5IHZhbyBuaHVuZyBuZ3VvaSBvbmcsIG5ndW9pIGJhIGtoaSBtYSBibyBjaHVuZyBkYW5nIGxh bSB0cm9uZyBiZW5oLi4uDQogDQpDaGkgSHV5ZW4gcmEgZGkgZGUgbGFpIDQgZHVhIGNvbiBkYW5n IGNvbiB0aG8gZGFpLiBEdWEgZGF1IGxhIGNoYXUgRGFvIER1eSBEdWMgbW9pIA0KZHVvYyAxMCB0 dW9pLCBkdWEgdGh1IDIgdmEgMyBjdW5nIGNoaSBtb2kgbGVuIDMsIGxlbiA3LiBEdWEgbmhvIG5o YXQgY29uIGRhbmcgcGhhaSBidSANCnN1YSBtZSBjaGkgbW9pIGhvbiAxIHR1b2kuIA0KIA0KQ2hv bmcgY2hpIEh1eWVuLCBhbmggRGFvIER1eSBUaGFuZyBkYW5nIG5nb2kgYmVuaCBsaW5oIGN1dSBu Z3VvaSB2byB0b2kgbmdoaWVwIHlldSANCm90IG9tIGR1YSBjb24gdXQgcGhlIHBoYXkgY2hpZWMg cXVhdC4gVHVuZyB0aWVuZyBuYWMgbmdoZW4gbG9uZyBhbmggdGhvdCBsZW46ICJTYW8gZW0gDQpi byA0IGNoYSBjb24gbmhhIGFuaCBtYSBkaT8uIENvbiBkYW5nIGNvbiBuaG8gZGFpIG1hIGVtLiBO byBraG9jIHN1b3QgbmdheSBkZW0uIEVtIA0KdmUgZG8gZGFuaCBjb24gY2hvIGFuaCBkaSIuDQog DQpOdW9jIG1hdCBuZ3VvaSBjaG9uZyBsYW4gZGFpIHRyZW4gZ28gbWEuIFRpZW5nIDQgZHVhIHRy ZSBjb24gbm9uIG5vdCBvYSBsZW4ga2hvYyB0aGVvIA0KY2hhLiBNYXkgbmd1b2kgdGhhbiB0cm9u ZyBnaWEgZGluaCBraGkgbW9pIG5ndW9pIHRoYXAgY2hvIGNoaSBIdXllbiBuZW4gaHVvbmcgbGFp IG11aSANCmxvbmcgb2EgbGVuIGtob2MgbnVjIG5vLg0KIA0KTmhpbiBtYXkgZHVhIG5obyBuZ2F5 IG5nbywga2h1b24gbWF0IGxlbSBsdW9jIHZpIGRvaS4gQWkgY3VuZyB0aGF0IHJ1b3QgbmdoZW4g bmdhby4NCiANCjQgZHVhIHRyZSBuZ28gbmdhYywgbmdvaSBiYXQgdGhhbiBiZW4gcXVhbiB0YWkg bWUgbWEga2hvbmcgaGF5IHJhbmcgY2EgY3VvYyBkb2kgbmF5IHR1aSANCm5obyBraG9uZyBiYW8g Z2lvIG5oaW4gdGhheSBtZSB0aGVtIDEgbGFuIG5hbyBudWEuIERvaSBiYW4gdGF5IHRhbiB0YW8g Y2hpIEh1eWVuIA0Ka2hvbmcgY29uIHRpZXAgdHVjIGN1bmcgY2hvbmcgbnVvaSBjb24gbG9uIGto b24uIENoaSByYSBkaSBxdWEgZG90IG5nb3QsIGRlIGxhaSBjYW5oICJnYSANCnRyb25nIG51b2kg Y29uIiB0cnVvYyBiaWVuIHRyb2kgbnVvYyBsdS4gDQoNClZvIGNoZXQgZGUgbGFpIGdhbmggbmFu ZyA0IGR1YSBjb24gbmhvIGRhaS4gS2hvbmcgYmlldCByb2kgZGF5IGNodW5nIHNlIGxvbiBsZW4g dGhlIG5hbz8gDQpBbmggVGhhbmcgY28gdGhlIG51b2kgbm9pIGNodW5nPz8/DQogDQpCYSBDaGF1 LCBuZ3VvaSBoYW5nIHhvbSB0aHVvbmcgbWF5IGR1YSBjaGF1IG5obyBzYW5nIGJvbmcgbGVuIHZh IG5vaTogIkNhIDIgdm8gDQpjaG9uZyBoYW4gc29uZyBoaWVuIGxhbmggbGFtLiBSYW5nIG1hIGxh aSBiYXQgbWUgaGFuIGRpIHNvbSByYSBydWEuIENoaSB0b2kgbWF5IGR1YSANCm5obyBuaGVvIG5o b2MgdGhvaSIuDQpCbyBjaG9uZyBEYW8gRHV5IEhvYSBuZ29pIGJhdCB0aGFuIGJlbiBxdWFuIHRh aSBjb24gZGF1IGNobyBiaWV0OiAiQ2hvbmcgY29uIEh1eWVuIA0KbGEgVGhhbmcgbm8gYmkgYmVu aCB0YWkgYmllbiBtYWNoIG1hdSBuYW8gbmFtIHZpZW4gdGluaCAyIHRoYW5nIG5heSByb2kuIEhv bSBkbywgY29uIA0KZGF1IHR1aSBkaSBsYXkgdGh1b2MgdmUgY2hvIGNob25nIG5vIHVvbmcgdGhp IGJpIG51b2MgY3VvbiB0cm9pLiBDaGkgdGh1b25nIG1heSBkdWEgDQpjaGF1IGNvbiBxdWEgbmhv IGRhaSwgY2hhIG5vIHRoaSBiZW5oIHRhdCBuaHUgdGhlLCByb2kga2hvbmcgYmlldCByYSBkaSBu Z2F5Ii4NCiANCkNoYXUgYmUgbG9uIHR1b2kgbmhhdCBsYSBEYW8gRHV5IER1YyBtZXUgbWFvIG5v aToiTWUgbWF0IHJvaSBjb24gYnVvbi4gRGVtIG5hbyBtZSANCmN1bmcgYmF5IGNobyBjb24gaG9j LiBNYXkgZHVhIGVtIGNvbiBkZW0gbmFtIGN1ICB0aW5oIGdpYWMgZGF5IGxhIGtob2MsIG5lbiBj b24gY3VuZyANCmNoYXkgbnVvYyBtYXQuIENvbiB0aHVvbmcgY2FjIGVtIGNvbiBsYW0iLg0KIA0K Um9pIG5oYSBhbmggVGhhbmcsIG51b2MgbHUgdmFuIGNvbiBkYW5nIGNhbyBsdWMgdHJvaSBjaG9h bmcgdmFuZyB0b2kuIE5odW5nIGR1YSB0cmUgDQpuZ2F5IHRobywgbmhlbyBuaG9jIHZhbiBkYW5n IG5nb2kgYmVuIGxpbmggY3V1IG5ndW9pIG1lIGN1YSBjaHVuZy4gS2hvbmcgYmlldCByb2kgZGF5 IA0KYWkgc2UgZGl1IGNobyBkYXQgY2h1bmcgbG9uIGxlbj8gQWkgY2hvIGNodW5nIGR1b2MgZGkg aG9jPw0KIA0KVHJ1b2MgbWF0IGNodW5nIGxhIGNhIG1vdCBjaHVvaSBuZ2F5IGRhaSBraG8ga2hh biBraGkgYm8gY2h1bmcsIG5ndW9pIGR1eSBuaGF0IGNvIHRoZSANCmxhbyBkb25nIG51b2kgNCBj aGkgZW0gZ2lvIGN1bmcgZGFuZyBsYW0gdHJvbmcgYmVuaC4uLg0KDQpDaHVtIGFuaCB2ZSB0cmFu IGx1IHRhaSBtaWVuIFRydW5nIGR1b2MgdG9uZyBob3AgdHUgbmhpZXUgbmd1b246DQooQW5oOiBE dWEgdGFuZyBnaXVhIGx1LCBub2kgZGF1IG5oYW4gZG9pIEFuaDogRGFudmlldCkNCihBbmg6IENv IHZvdCB2YXQgbGF5IGNodXQgdGFpIHNhbiwgQW5oOiBEYW52aWV0KQ0KKEFuaDogWG9heSBzbyB0 cm9uIGx1LiBBbmg6IERUcmkpDQooQW5oOiBOaHVuZyBnaSBjb24gc290IGxhaSBzYXUgdHJhbiBs dS4gQW5oOiBCZWUubmV0LnZuKQ0KKEFuaDogQmF0IGtob2Mga2hpIG5oaW4gdGhheSBkb2kgY3V1 IGhvLiBBbmg6IFRUcmUpDQooQW5oOiBDaGkgSG9haSB2YSAyIGNvbiBuaG8gbyB4YSBEdWMgSHVv bmcsIGh1eWVuIFZ1IFF1YW5nLCB0aW5oIEhhIFRpbmggbmhpbiBkb2kgZGEgMiBuZ2F5LCANCnNv bmcgbmhvIHN1IGNoaWEgc2UgY3VhIGhhbmcgeG9tLiBBbmg6IFRUcmUpIA0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMTkxMjIyMjkuYXNweCBC RCBETiBOTSBRRCAxOS8xMC8yMDEwIDExOjIyIA0KDQpUcmFuZyBkZW0gYmVuIGJvIHNvbmcgTGEg IA0KDQoqIERhIGNvIDE0OSBuZ3VvaSBjaGV0IHZhIG1hdCB0aWNoIHZpIG11YSBsdQ0KKiBCaWVu IGRvbmcgZHUgZG9pIHRhaSBraHUgdnVjIHF1YW4gZGFvIEhvYW5nIFNhIA0KKiBYYWMgZGluaCBk dW9jIHRlbiB0dW9pIDE4IG5hbiBuaGFuIHZ1IHhlIGtoYWNoIGJpIGx1IGN1b24gdHJvaSANCg0K KFROTykgQ2hvIGRlbiAxMSBnaW8gMTUgdHJ1YSBuYXkgMTkuMTAsIHRpbmggaGluaCB0aW0ga2ll bSBjYWMgbmFuIG5oYW4gYmkgbHUgY3VvbiB0cm9pIA0KY3VuZyB2b2kgY2hpZWMgeGUga2hhY2gg bWFuZyBCS1MgNDhLLTU4NjggdmFuIGNodWEgZGVtIGxhaSBrZXQgcXVhLg0KDQpCaWVuIGRvbmcg ZHUgZG9pIHRhaSBraHUgdnVjIHF1YW4gZGFvIEhvYW5nIFNhIA0KDQpNaWVuIFRydW5nIGNoaXUg dGhpZXQgaGFpIG5hbmcgbmUgYm9pIG11YSBsdQ0KDQpCYW8gY2FvIG5oYW5oIGN1YSBCYW4gQ2hp IGRhbyBQaG9uZyBjaG9uZyBsdXQgYmFvIFQuVSBzYW5nIG5heSAoMTkuMTApIGNobyBiaWV0LCBt dWEgDQpsdSB0YWkgY2FjIHRpbmggbWllbiBUcnVuZyBkYSBsYW0gMzYgbmd1b2kgY2hldCwgNCBu Z3VvaSBtYXQgdGljaCB2YSAzIG5ndW9pIGJpIHRodW9uZy4NCk5nb2FpIHJhLCBoaWVuIHZhbiBj aHVhIGNvIHRob25nIHRpbiB2ZSAyMCBuZ3VvaSB0cmVuIHhlIGJpIG51b2MgY3VvbiB0cm9pIHRh aSBraHUgdnVjIA0KTmdoaSBYdWFuLCBIYSBUaW5oLiBNdWEgbHUgY3VuZyBkYSBsYW0gbmdhcCAx OTkuOTk4IGNhbiBuaGEgY3VhIG5ndW9pIGRhbi4NCg0KVHJvbmcgdG9uZyBzbyBuZ3VvaSB0aGll dCBtYW5nLCB0YWkgTmdoZSBBbiBjbyAxMyBuZ3VvaSwgSGEgVGluaCAxNSBuZ3VvaSwgUXVhbmcg DQpCaW5oIDcgbmd1b2ksIFRodWEgVGhpZW4gLSBIdWUgMSBuZ3VvaS4gSGEgVGluaCB2YSBUaHVh IFRoaWVuIC0gSHVlIG1vaSB0aW5oIGNvIDIgDQpuZ3VvaSBtYXQgdGljaC4gMyBuZ3VvaSBiaSB0 aHVvbmcgZGV1IG8gUXVhbmcgQmluaC4NCg0KVGhlbyBUcnVuZyB0YW0gRHUgYmFvIGtoaSB0dW9u ZyB0aHV5IHZhbiBULlUsIGx1IHRyZW4gY2FjIHNvbmcgbyBOZ2hlIEFuIHRpZXAgdHVjIGxlbjsg DQpjYWMgc29uZyBvIEhhIFRpbmggdGllcCB0dWMgZGFvIGRvbmcgbyBtdWMgY2FvLCBzb25nIEtp ZW4gR2lhbmcgKFF1YW5nIEJpbmgpIHh1b25nIA0KY2hhbS4gDQpUYWkgSGEgVGluaCB2YW4gY29u IDE4MyB4YSB2b2kgMTE1LjM3OCBobywgTmdoZSBBbiBjb24gMTEzIHhhIHZvaSAzMC43MDAgaG8g dmEgDQpRdWFuZyBCaW5oIGNvbiAyNSB4YSB2b2kgMjguNzQwIGhvIGJpIG5nYXAuICANClF1b2Mg bG8gMUEsIHF1b2MgbG8gNywgcXVvYyBsbyA4LCBxdW9jIGxvIDE1IGJpIG5nYXAgbmhpZXUgZGll bS4gVHV5ZW4gZHVvbmcgc2F0IA0KQmFjIC0gTmFtIGNvbiAxIHZpIHRyaSBiaSBuZ2FwIHNhdSAx IC0gMSwybSAgdGFpIGttIDM0NCB0dSBnYSBEdWMgTGFjIChOZ2hlIEFuKSBkZW4gZ2EgSHVvbmcg UGhvIChIYSBUaW5oKS4gDQpUcnVvYyBkbywgY2FjIHRpbmggZGEga2lwIHRob2kgc28gdGFuIGR1 b2MgMzMuNjkxIGhvIHZvaSAxNDIuNjEyIG5ndW9pIGRhbiB2dW5nIG5nYXAgbHUgZGVuIG5vaSBh biB0b2FuLiANCg0KQmFuIENoaSBkYW8gUGhvbmcgY2hvbmcgbHV0IGJhbyBULlUgeWV1IGNhdSBj YWMgYm8gbmdhbmggdmEgZGlhIHBodW9uZyB0aWVwIHR1YyB0aGVvIA0KZG9pIGNoYXQgY2hlIGRp ZW4gYmllbiB0aW5oIGhpbmggbXVhLCBsdSwgYmFvIGRlIGtpcCB0aG9pIGNvIGJpZW4gcGhhcCBk b2kgcGhvLiBUbyBjaHVjIA0Ka2hhYyBwaHVjIGhhdSBxdWEgbXVhIGx1LCB0dW5nIGJ1b2Mgb24g ZGluaCBkb2kgc29uZyBuaGFuIGRhbiB2dW5nIHRoaWVuIHRhaS4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAyMTEwNDMxMS5hc3B4IDIxLzEw LzIwMTAgMTA6NDMgDQoNClZ1IHhlIGtoYWNoIGJpIGx1IGN1b24gdHJvaTogRGEgdGltIHRoYXkg MTQgdGhpIHRoZSBuYW4gbmhhbiAtIEdpYW8gdGhvbmcgaG9uIGxvYW4gDQogIA0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC9MdS1sb24tY28tbGllbi1xdWFuLWRlbi10 aHV5LWRpZW4tOTQzNjI0LyBMYW4gQW5oIGdoaSAwOTowMiwgMjEvMTAvMjAxMCAoR01UKzcpDQoN ClRodSB0dW9uZzogTHUgbG9uIGNvIGxpZW4gcXVhbiBkZW4gcXVpIGhvYWNoIGhhIHRhbmcgIA0K DQpDaHUgbmhpZW0gVlBRSCBUcmFuIERpbmggRGFuLCBuZ3V5ZW4gQmkgdGh1IHRpbmggSGEgVGlu aCBuaGFuIGRpbmgsIG5nb2FpIG11YSANCmxvbiwgbHUgbHV0IG1pZW4gVHJ1bmcgY28gbmd1eWVu IG5oYW4gdHUgY2FjIGNvbmcgdHJpbmggdGh1eSBkaWVuIHZhIGdpYW8gdGhvbmcuIA0KDQpUaGll dSBxdXkgaG9hY2ggDQoNClRyYW8gZG9pIHZvaSBiYW8gY2hpIGJlbiBoYW5oIGxhbmcgUXVvYyBo b2ksIG9uZyBUcmFuIERpbmggRGFuIGtoYW5nIGRpbmg6DQoNClRoaWV0IGhhaSBuYW5nIG5lIG8g bWllbiBUcnVuZyBtb3QgbWF0IGRvIG11YSBsb24sIG1vdCBtYXQgZG8gY2FjIGNvbmcgdHJpbmgg dGh1eSANCmRpZW4sIGdpYW8gdGhvbmcgbGFtIGJpZW4gZG9pIGRvbmcgY2hheSB0dSBuaGllbiwg Y2hhbSB0aG9hdCBudW9jIHJhIGJpZW4uDQoNCihBbmg6IENodSBuaGllbSBWUFFIIFRyYW4gRGlu aCBEYW46IENvbmcgdHJpbmggdGh1eSBkaWVuLCBnaWFvIHRob25nIGxhbSBiaWVuIGRvaSANCmRv bmcgY2hheSB0dSBuaGllbi4gKQ0KDQpTYXUga2hpIGhpbmggdGhhbmggZHVvbmcgSG8gQ2hpIE1p bmggdmEgbW90IHNvIHR1eWVuIGR1b25nIGRvYyB0aGVvIGtodSB2dWMgbWllbiANCm51aSBjdWEg TmdoZSBBbiwgUXVhbmcgQmluaCwgSGEgVGluaCwgdmllYyB0aG9hdCBudW9jIHR1IHRyZW4gcnVu ZyB4dW9uZyBtYXQgdGluaCB0dSANCm5oaWVuLiANCg0KSGllbiBxdW9jIGxvIDEgbmFtIGdpdWEg dnVuZyBnaXVhIGRvbmcgYmFuZyB2YSBiaWVuIGR1b2MgbmFuZyBjYW8sIG1vdCBzbyB0dXllbiBz b25nIA0KbGFtIGRlIHJhdCBjYW8uIERvIGRvLCBudW9jIHRyZW4gZGFpIG5nYW4gY2hheSB4dW9u ZyBiaSBjaGFuIHZhIGtob25nIGR1IGtoYXUgZG8gY2hvIA0KbnVvYyBjaGF5IHJhIGJpZW4uDQoN ClRyb25nIHF1YSB0cmluaCBsYW0gaG8gZGFwIHRodXkgZGllbiwgZG8ga2hvbmcgY28gcXV5IGhv YWNoIHR1IHRydW9jIG5lbiB0aGF5IGNobyANCm5hbyBjbyBkaWV1IGtpZW4gbGEgZGlhIHBodW9u ZyBnaWFvIGNodSBkYXUgdHUuIExhbSB0aHV5IGRpZW4sIG5ndW9pIHRhIGxhaSBjaGF0IGNheSwg DQptbyBkdW9uZyByb25nIHJhIGhhbmcgdHJhbSBtZXQgZG9jIGR1b25nIGRvLi4uIFZpZWMgbmF5 IGRvIHF1eSBob2FjaCBsYW0gaG8gZGFwIA0KdGh1eSBkaWVuIGtob25nIGR1b2MgY2h1IGRhby4g DQoNCkNvIG5odW5nIG5vaSwgdGluaCBjaG8gZGllbiB0aWNoIGtob2FuZyAyMDAgaGEgZ29tIGNh IGR1b25nIGxhbiBraHUgdnVjIHRoaSBjb25nIA0Kbmh1bmcgZG9hbmggbmdoaWVwIGNoYXQgY2F5 IGxlbiBkZW4gMzAwIGhhLiBWdW5nIGRvIHNlIG1hdCBkaSBjYWMgY2F5IGNvIHRodSwgY2F5IA0K bG9uIC0gZGlldSBraWVuIGRlIGJhbyB2ZSBraHUgcnVuZyBkbyBraG9pIG51b2MgbHUuDQoNClRy b25nIHRyYW4gbHUgcXVldCBuYW0gMjAwMiwgbHVjIGRvIHRvaSBkYW5nIGxhbSBDaHUgdGljaCBV Qk5EIHRpbmggSGEgVGluaCwgDQp0b2kgY2h1bmcga2llbiBuaGlldSBkb2FuIG5nYXAgbGEgZG8g ZHVvbmcgSG8gQ2hpIE1pbmggdmEgc2F1IGRvIGRhIGRlIG5naGkgDQpCbyBHaWFvIHRob25nIGNo byBtbyBraGF1IGRvIG1vdCBzbyBjb25nLiBOaHVuZyBjbyBuaHVuZyBub2kgbW8gcm9pIG1hIGx1 IGx1dCANCnNhdSBkbyB2YW4gdHJhbiB2YSB4ZSBsdW9uIGNvbmcsIGNodW5nIHRvIGxhIGRvIHF1 eSBob2FjaCBnaWFvIHRob25nIGN1YSBtaW5oLg0KDQpNYSBraG9uZyBwaGFpIGNoaSBkbyBkdW9u ZyBIbyBDaGkgTWluaCBkYXUgbWEgY28gbmh1bmcgdHV5ZW4gbm9pIHR1IGtodSB2dWMgDQpuYXkg c2FuZyBraHUgdnVjIGtpYSwgc2F1IGtoaSBjbyBkdW9uZyBIbyBDaGkgTWluaCBsYWkgdGhlbSBt b3QgY2h1eWVuIGxhIG5nYW4gDQpkb25nIGNoYXkgdHUgbmhpZW4gdGllcC4gUGhhaSB0aGlldCBs YXAgcXV5IGhvYWNoIGN1YSBraHUgZGFuIGN1LCBuaHVuZyBjaG8ga2hvbmcgDQphbiB0b2FuIHRo aSBraG9uZyBuZW4gZGUgZGFuIGN1IG8gZG8gbnVhLiANCg0KVG9tIGxhaSwgdGhpZW4gdGFpIGxh IGRvIG11YSBsb24gbmh1bmcgdmllYyBsYW0gdGh1eSBkaWVuLCByb2kgbGFtIGR1b25nIGdpYW8g dGhvbmcgDQpraG9uZyBsdW9uZyBoZXQgZHVvYy4gVHJvbmcgZG8sIGNvIG5ndXllbiBuaGFuIHR1 IHBoaWEgcXV5IGhvYWNoLg0KDQpOYW0gbmdvYWksIGtoaSB4YXkgcmEgdHJhbiBsdSB0YWkgUGh1 IFllbiwgbmhpZXUgREJRSCBkYSBjaGkgcmEgbmd1eWVuIG5oYW4gZG8gDQp0aHV5IGRpZW4gdmEg ZGUgeHVhdCBsYXAgdXkgYmFuIGRpZXUgdHJhLiBOaHVuZyBDaGluaCBwaHUgdmFuIGdpdSBxdWFu IGRpZW0gcmFuZyANCiB0aHV5IGRpZW4ga2hvbmcgY28gbG9pLiBWYXkgdGhlbyBvbmcsIHNhdSBz dSBjbyBsYW4gbmF5LCBRSCBjbyBuZW4gbW9pIG1vdCBjbyBxdWFuIA0KZG9jIGxhcCBkZSBwaGFu IHRpY2ggbmdhIG5ndSBuZ3V5ZW4gbmhhbiBkbyBkYXUga2hvbmc/DQoNCi0gVG9pIGtob25nIHBo YWkgbGEgbmd1b2kgY2h1eWVuIHZlIHRodXkgZGllbiB2YSBnaWFvIHRob25nIG5odW5nIGxhIG5n dW9pIG1hdCB0aGF5IA0KdGFpIG5naGUuIEtoaSBudW9jIGtob25nIGNoYXkgZHVvYyB0aGVvIHF1 eSBsdWF0IHR1IG5oaWVuLCB0b2kgbmdoaSByYW5nIHRodXkgZGllbiBsYSANCmx5IGRvLiBUb2kg bGF1IG5heSBraG9uZyB2ZSBkdW9jLCBuaHVuZyBkYSBjbyAyMCBuYW0gZHVuZyByYSBjaHUgdHJp IHRoYW0gZ2lhIGNob25nIA0KbHUgbHV0Lg0KDQooQW5oOiBTYW5nIDE2LzEwLCBkYXAgS2hlIE1v IChodXllbiBIdW9uZyBTb24sIEhhIFRpbmgpIGJpIHZvLCBsYW0gaGFuZyBuZ2FuIGhvIGRhbiBi aSBuZ2FwIHRyb25nIG51b2MuIEFuaDogVGhhbmggTmllbikNCg0KRGFwIGhvIEtlIEdvIGNvIGR1 bmcgdGljaCAzMjAgdHJpZXUgbTMgbnVvYywgbGFtIHR1IG5hbSAxOTc2IG5odW5nIGRvIG5hbSB0 cmVuIA0KZG8gY2FvIDMybSBzbyB2b2kgbXVjIG51b2MgYmllbiBuZW4gbmV1IGJpIHZvLCBjYSB0 aGFuaCBwaG8gSGEgVGluaCBzZSBuZ2FwIHRyb25nIA0KYmllbiBudW9jLi4uIEtoaSBudW9jIHhh IG5odSB2YXkgY29uZyB2b2kgbnVvYyBkYWkgbmdhbiBkbyB4dW9uZyBzZSBraG9uZyBjaGF5IA0K ZHVvYyB0aGVvIHF1eSBsdWF0IHR1IG5oaWVuIHZpIGJpIGNhYyB0dXllbiBkdW9uZyB2YSBkZSBv IGNhYyB2dW5nIHZlbiBiaWVuIGRldSBkYSANCmR1b2MgbmFuZyBjYW8uIA0KTmhhIG51b2MgZGEg cGhhaSBnaWEgY28gYmFuZyB2aWVjIGxhbSB0aGFuIGRhcCB0cmFuLCBsYW0gdGhlbSBjYW5oIGN1 YSB4YSBsdS4gDQpWdWEgcm9pLCBraGkgeGEgbnVvYyBuaGlldSBuZ2F5IGxpZW4sIHRoYW5oIHBo byBIYSBUaW5oIGNoaW0gdHJvbmcgbnVvYy4NCg0KVm9pIGR1IGFuIGRhcCBIbyBIbyBvIGh1eWVu IEh1b25nIEtoZSwgbmV1IG11YSBsb24sIG51b2MgdHJhbiBkYXAsIGNheSBvIHRyZW4gbmdhbiAN CmRvIHh1b25nIGN1bmcgY2hhbiBsdW9uIGJvIGRhcCBuZW4gYm8gZG9pIGJpZW4gcGhvbmcgdnVh IHBoYWkgbGF5IGtpY2ggbW8gY29uZyB2dWEgDQpwaGFpIGxheSBib3QgY2F5IG5hbSB0cmVuIG1h dCBoby4gTyBjb25nIHRyaW5oIHRodXkgZGllbiBuYXksIGx1YyBtYXQgZGllbiwgY2FuaCBjb25n IHhhIA0KbHUga2hvbmcgbW8gbm9pLiBEbyBsYSBjbyB5ZXUgdG8gdmUgY29uIG5ndW9pIHRyb25n IHZpZWMgcXV5IGhvYWNoLg0KDQpWb2kgZHUgYW4gZGFwIEhvIEhvIGhvbSB0cnVvYyBoYXkgdGh1 eSBkaWVuIGN1YSBIdW9uZyBTb24gbmV1IGhvIGRvIG1hIGxvIHRoaSB0aGlldCANCmhhaSBraG9u ZyB0aGUgbHVvbmcgZHVvYywga2hvbmcgbmh1bmcgdGhpZXQgaGFpIHZlIHRhaSBzYW4gbG9uIGdh cCB0cmFtIGxhbiBtYSBuZXUgbm8gDQp2byBkYXAgY29uIGNoZXQgaGFuZyBuZ2hpbiBuZ3VvaSwg Y28ga2hpIGxhIGNhIHhhIHRyb2kuIA0KDQpEbyB2YXksIENoaW5oIHBodSB2YSBkaWEgcGh1b25n IG5lbiBuZ2hpZW4gY3V1IGNhaSBnaSBuZW4gbGFtLCBjYWkgZ2kga2hvbmcgbmVuIGxhbS4gDQpW b2kgbmh1bmcgdmllYyBkYW5nIGxhbSBkbyBkYSBjbyBxdXlldCBkaW5oIGNhcCByb2kgbmh1bmcg Y2FuIHRoaWV0IHRoaSBwaGFpIGR1bmcgdmEgDQpuZW4gY28gZ2lhbSBzYXQgbmh1bmcgbG9haSBj b25nIHRyaW5oIG5odSB0aGUgbmF5LiANCg0KS2h1eWV0IGRpZW0gY3VhIHRvaSBraGkgbGFtIENo dSB0aWNoDQoNClJvIHJhbmcgbmV1IGtob25nIGR1b2Mgc3UgZG9uZyB5IGN1YSBkaWEgcGh1b25n IHRoaSBraG9uZyB0aGUgeGF5IGNvbmcgdHJpbmggdGh1eSANCmRpZW4uIFZheSB0aGVvIG9uZywg eGF5IHJhIGx1IGxvbiwgdHJhY2ggbmhpZW0gY3VhIGNhYyBsYW5oIGRhbyBkaWEgcGh1b25nIGRl biBkYXU/DQoNCi0gVmllYyBuYXkgbmV1IG1hIG5vaSB0aGkgdG9pIGN1bmcgY28ga2h1eWV0IGRp ZW0gdmkgbHVjIGRvIHRvaSBkYW5nIGxhbSBDaHUgdGljaCB0aW5oLiANCkJheSBnaW8gdGluaCBj b24gbmdoZW8sIG5ndW9pIHRhIHZhbyBkYXUgdHUgZGUgY28gbmhhIG1heSBwaGF0IGRpZW4gdGhv bmcgcXVhIHRodXkgDQpkaWVuLCBjbyBobyBjaHVhIG51b2MgZGUgZGFuIHZ1bmcgZG8gY28gbnVv YyB0dW9pLCBzaW5oIGhvYXQuIEFpIGN1bmcgbW9uZyBtdW9uLiANCk5odW5nIHBoYWkgcnV0IGtp bmggbmdoaWVtIHZlIHZhaSB0cm8gcXVhbiBsaSBuaGEgbnVvYyB0dSB0cnVuZyB1b25nIGRlbiBk aWEgcGh1b25nLiANClBoYWkgdGluaCBkZW4gc3UgYW4gdG9hbiwgdmFuIGRlIG1vaSB0cnVvbmcg dmEgaGlldSBxdWEga2luaCB0ZSB4YSBob2kgZG9pIHZvaSBkYW4gc2luaCwgDQphbiBzaW5oLi4u DQoNClR1bmcgbGFtIGxhbmggZGFvIG8gSGEgVGluaCwgZGVuIG5heSwgdGhlbyBvbmcgY2FuIGFw IGR1bmcgZ2lhaSBwaGFwIG5hbyBkZSBoYW4gY2hlIA0KdGhpZXQgaGFpIGJhbyBsdSBkbyBjYWMg Y29uZyB0cmluaCB0aHV5IGRpZW4sIGdpYW8gdGhvbmcgZ2F5IHJhPw0KDQotIENhbiBkZSBuZ2hp IENoaW5oIHBodSBwaGFpIGNvIGRvdCB0b25nIGtpZW0gdHJhIHJhIHNvYXQgbGFpIHF1eSBob2Fj aCwgUXVvYyBob2kgc2UgcGhhaSANCnRpZXAgdHVjIGdpYW0gc2F0LiBDbyBuaHVuZyB2aWVjIGJh eSBnaW8gcGhhaSBzdWEuIE5oaWV1IGhvIGRhcCBtYWMgZHUgZGEgY2hvIHBoZXAgZGF1IA0KdHUg cm9pIG5odW5nIHRoYXkga2hvbmcgb24gdmkgbmFtIHRyZW4gZG8gY2FvIG1heSB0cmFtIG1ldCBt YSBkYW4gbyBkdW9pIGtlbmggZGFwIHRoaSANCnBoYWkgeGVtIHhldCBnaXVhIGxvaSBpY2ggY3Vh IGhvIGRhcCBkbyBraGkgY28gbmd1b24gZGllbiB0aWNoIG51b2MgZGVuIGFuIHRvYW4gY2hvIGRh biANCmRlIGNhbiBuaGFjIGNob24gbHVhLiANCg0KKEFuaDogQW5oIE5ndXllbiBWYW4gU2FuZyAo eG9tIDYsIHhhIFBodSBQaG9uZywgaHV5ZW4gSHVvbmcgS2hlKSBjaGkga2lwIG5obyANCm5ndW9p IGR1YSB2byB2YSBoYWkgY29uIGdhaSBkaSBsYW5oIG5hbiwgY29uIG1pbmggbyBsYWkgdHJvbmcg bmdvaSBuaGEgbmdhcCBzYXUuIEFuaDogUGhpIExvbmcpIA0KDQpOZ29haSByYSwgY2FuIHRoaWV0 IHBoYWkgbW8ga2hhdSBkbyBjdWEgdHV5ZW4gZHVvbmcgSG8gQ2hpIE1pbmggZGkgZG9jIHRoZW8g dHJpZW4gbnVpIA0KdHUgVGhhbmggSG9hIGRlbiBOZ2hlIEFuLCBIYSBUaW5oLCBRdWFuZyBCaW5o IHZhIGRvYyB0aGVvIGNhYyB0aW5oIGxpZW4gcXVhbiwgZGUgbGFtIA0KY2hvIGRvbmcgY2hheSBk dW9jIHR1IG5oaWVuLiBCYXkgZ2lvIHRyZW4gbWllbiBudWkgZG8gY2FvIGNhY2ggNzAwIC0gODAw bSBzbyB2b2kgbXVjIA0KbnVvYyBiaWVuIG1hIHZhbiBiaSBuZ2FwIHNhdSwgbnVvYyBkZW4gbm9j IG5oYSBsYSBkbyBkb25nIGNoYW4gY3VhIG51b2MuIA0KDQpOaHVuZyBkdSBhbiBuaHUgZGFwIEhv IEhvLCB0aHV5IGRpZW4gSHVvbmcgU29uIG5ldSBiaSBsbyB0aGkgdGhpZXQgaGFpIGtob25nIHRo ZSANCmx1b25nIHRydW9jIGR1b2MuIFRoZW8gdG9pLCBjbyBuaHVuZyBjb25nIHRyaW5oIGRhIGxh bSBkbyBob2FjIGNvIHF1eWV0IGRpbmggbGFtIHJvaSANCm5odW5nIGNhbiB0aGlldCB0aGkgcGhh aSBkdW5nLCBraG9uZyB0aGUgbGFtIGJhbmcgbW9pIGdpYS4gTmh1IGRhcCBIbyBIbywgdnVhIHJv aSBtYSANCmxvIHRoaSBoYW5nIGNodWMgeGEgY3VhIEh1b25nIEtoZSB2YSBtb3QgcGhhbiBjdWEg UXVhbmcgQmluaCBzZSB0cm9pIGhldC4gTmh1bmcgbWF5IA0KbWFuIGxhIGRhIGR1b2MgbWEgYm8g ZG9pIGJpZW4gcGhvbmcgcmEgdW5nIGN1dSBraXAgdGhvaS4NCg0KVm9pIHRoaWVuIHRhaSwgbmhh dCBob2EgbmhpIHRodXkga2hvbmcgYWkgbHVvbmcgZHVvYyBkYXUuIEJheSBnaW8gcGhhaSBraWVt IHRyYSBsYWkgdmEgDQpsYW0gY2FpIHF1eSBob2FjaCBjaG8gdHJvbiB2ZW4uIERhbmcgcGhhdCB0 cmllbiB0aHV5IGRpZW4gZGVuIGRhdSwgZGFuZyBtbyBnaWFvIHRob25nIA0KZGVuIGRhdSwgcGhh aSB0aW5oIGNobyB0aGF0IGt5LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDQzLzIwMTAxMDIzMDA0ODQ0LmFzcHggVGhhbmggVGhhbyAyMy8xMC8yMDEwIDA6 NDggDQoNCkN1dSBobyBjdXUgbmFuICANCiAgDQpQaGFpIG5vaSBuZ2F5LCBjYWMgdnUgdmllYyBj YW4gY3V1IGhvIGN1dSBuYW4gY2FwIGJhY2ggdHJvbmcgZGlldSBraWVuIHRob2kgdGlldCBoYXkg ZGlhIA0KaGluaCBwaHVjIHRhcCwgdGhpIGx1YyBsdW9uZyBjdXUgaG8gY3V1IG5hbiBjaHV5ZW4g bmdoaWVwIGN1YSBuaGEgbnVvYyBwaGFpIGxhIGNodSBkYW8uIA0KS2hvbmcgbmh1bmcgdGhlLCB0 cm9uZyBtb3Qgc28gdHJ1b25nIGhvcCBkYWMgYmlldCBuZ2hpZW0gdHJvbmcsIHRoaSBkaWNoIHRo YW4gQ2hpbmggDQpwaHUgcGhhaSBsYSAiVG9uZyBjaGkgaHV5IiBjaG8gY2FjIGhvYXQgZG9uZyBj dXUgbmFuLiBLaW5oIG5naGllbSB2dSBnaWFpIGN1dSB0aGFuIGt5IA0KY2hvIDMzIHRobyBtbyBD aGkgTGUgZGEgbWluaCBjaHVuZyBjaG8gZGlldSBkby4gDQoNCk5vaSBuaHUgdHJ1bmcgdHVvbmcg Tmd1eWVuIFNvbiBIYSAtIG5ndXllbiBDaGFuaCB2YW4gcGhvbmcgVXkgYmFuIHF1b2MgZ2lhIHRp bSANCmtpZW0gY3V1IG5hbiwgbGEgImhpZW4gbmF5IGNvIG5odW5nIHRpbmggaHVvbmcsIHRoYW0g aG9hLCBzdSBjbywga2hvbmcgcGhhaSBjdSBkb25nIA0Kbmd1b2kgbGEgY28gdGhlIHVuZyBjdXUg ZHVvYyBtYSBjYW4gcGhhaSBjbyBuaHVuZyBkb24gdmkgY2h1eWVuIG5naGllcCBjbyBjaHV5ZW4g DQptb24gdmEgdGh1YyBzdSB0aW5oIG5odWUgbW9pIGRhbSBkdW9uZyBkdW9jIi4gUGhhaSBub2kg dGhhbmcsICJuaHVuZyBkb24gdmkgY2h1eWVuIA0KbmdoaWVwIHZhIHRpbmggbmh1ZSIgdHJvbmcg Y3V1IG5hbiBuaHUgdGhlIGhpZW4gbmF5IGNodW5nIHRhIGNodWEgY28sIGhvYWMgZGEgY28gbmh1 bmcgDQpraG9uZyBkYXAgdW5nIGR1b2MgeWV1IGNhdSB0cm9uZyBuaHVuZyB0aW5oIGh1b25nIGN1 dSBuYW4ga2hvIGtoYW4gcGh1YyB0YXAuIA0KDQpWYXkgdGhpIHZlIHBoYW4gbmhhIG51b2MsIHZp ZWMgdGhhbmggbGFwLCBodWFuIGx1eWVuIHZhIHRyYW5nIGJpIGhpZW4gZGFpIGNobyBuaHVuZyAi ZG9pIA0KcXVhbiBjdXUgaG8gY3V1IG5hbiBjaHV5ZW4gbmdoaWVwIiBsYSB2aWVjIGNhbiBsYW0g bmdheS4gVmEgcGhhaSBsYW0gbmdheSBiYXkgZ2lvIHRoaSANCm1vdCB0aG9pIGdpYW4gc2F1IG1v aSBjbyBkdW9jIG1vdCBkb2kgcXVhbiBkYXAgdW5nIGR1b2MgeWV1IGNhdSB2YSBob2F0IGRvbmcg aGlldSANCnF1YS4gDQoNClRyb25nIGNoaWVuIHRyYW5oLCB0dSByYXQgc29tIGNodW5nIHRhIGRh IHRoYW5oIGxhcCBuaHVuZyBkb24gdmkgYm8gZG9pIGRhYyBjb25nLCBuaHVuZyANCmN1bmcgcGhh aSBxdWEgdGhvaSBnaWFuIHZhIHRodWMgdGUgY2hpZW4gdHJ1b25nLCBuaHVuZyBkb24gdmkgYXkg bW9pIHRydW9uZyB0aGFuaCB2YSB0cm8gDQp0aGFuaCBsdWMgbHVvbmcgZGFjIGJpZXQgdGluaCBu aHVlIGN1YSBxdWFuIGRvaSB0YS4gVmllYyBjdXUgaG8gY3V1IG5hbiB0cm9uZyB0aGUgZ2lvaSAN CmhpZW4gZGFpIGN1bmcgeWV1IGNhdSBwaGFpIHRoYW5oIGxhcCBuaHVuZyAiZG9uIHZpIGRhYyBj b25nIGN1dSBuYW4iIG5odSB0aGUsIHZvaSANCm5odW5nIG5ndW9pIGxpbmggdGluaCB0aG9uZyBj YWMgcGh1b25nIHBoYXAgdmEgcGh1b25nIHRpZW4gY3V1IG5hbiwgY28ga3kgbmFuZyBjYW8gDQpr aGkgdGhhbSBnaWEgY3V1IG5hbiwgdmEgY3VuZyB0dSBiaWV0IGJhbyB2ZSBtaW5oIGtoaSBjdXUg bmFuIHRyb25nIGRpZXUga2llbiBkYWMgYmlldCANCm5ndXkgaGllbS4NCg0KQ2h1bmcgdGEgY28g dGhlIG11YSBuaHVuZyBtYXkgYmF5LCB0YXUgY3V1IG5hbiBoaWVuIGRhaSwgbmh1bmcgbmV1IHRo aWV1IG5odW5nIG5ndW9pIA0KdGhhdCBzdSBjaHV5ZW4gbmdoaWVwIGRlIHN1IGR1bmcgY2h1bmcs IHZhIHRoaWV1IG5odW5nIGNvIGNoZSBsaW5oIGhvYXQgZGUgZGlldSBoYW5oLCANCnRoaSBoaWV1 IHF1YSB2YW4gY3Ugc2UgdGhhcC4NCg0KVHJvbmcgdmllYyBjdXUgbmFuLCBkYXUgdGF1IGxhIGNh YyBkb24gdmkgY2h1eWVuIG5naGllcCwgbmh1bmcgbmV1IHRoaWV1IHN1IHR1eWVuIA0KdHJ1eWVu LCB0cmFuZyBiaSB2YSBjaHVhbiBiaSB0aW5oIHRoYW4gdW5nIGN1dSB2YSB0dSBjdXUgY2hvIHRv YW4gZGFuLCBjaG8gY2EgY29uZyBkb25nLCANCmRhYyBiaWV0IGxhIG5odW5nIGNvbmcgZG9uZyBv IGNhYyB2dW5nIHRodW9uZyB4dXllbiB4YXkgcmEgdGhpZW4gdGFpLCB0aGkgaGlldSBxdWEgY3V1 IA0KbmFuIGN1bmcga2hvbmcgdGhlIGNhbyBkdW9jLiBWaWVjIGNodWFuIGJpIGhheSBodXkgZG9u ZyBuZ3VvaSBkYW4gdGhhbSBnaWEgY3V1IG5hbiANCnBoYWkgZHVvYyB0aWVuIGhhbmggbmdheSBr aGkgdGhpZW4gdGFpIGNodWEgeGF5IHJhLCBwaGFpIGR1b2MgdGFwIGR1b3QgdGh1b25nIHh1eWVu IG1vdCANCmNhY2ggdGh1YyBjaGF0IGNodSBraG9uZyBwaGFpIGhpbmggdGh1YywgdmEga2hpIGNh biwgcGhhaSBodXkgZG9uZyBkdW9jIG5oYW5oIG5oYXQgbHVjIA0KbHVvbmcgdW5nIGN1dSBuZ2F5 IHRyb25nIGNvbmcgZG9uZyBkYW4gY3UuIA0KDQpDdW9jIGN1dSBuYW4gdHJ1YyB2b3QgY2hpZWMg eGUga2hhY2ggYmkgY2hpbSBkdW9pIGRheSBzb25nIGN1bmcgMjAgaGFuaCBraGFjaCB2dWEgcm9p IA0KZGEgY2h1bmcgdG8gbmhpZXQgdGluaCB2YSBreSBuYW5nIGN1dSBuYW4gY3VhIG5ndW9pIGRh biwgbyB0cm9uZyBkYW4gbGEgbW90IHRpZW0gbmFuZyANCmxvbiBjYW4gZHVvYyBwaGF0IGh1eS4g Tmh1bmcgbmd1b2kgZGFuIC0gdGhvIGxhbiBjYW4gZGFtIHZhIHRhbiB0YW0gZGEgbGFuIHh1b25n IGRheSANCnNvbmcgbnVvYyBsYW5oIHNhdSBoYW5nIGNodWMgbWV0IG5nYXkgdHJvbmcgZGVtIGRl IG1vYyBjYXAsIGJ1b2MgZGF5IGdpdXAgdHJ1YyB2b3QgDQpjaGllYyB4ZSBiaSBuYW4uIEhvIGxh IG5odW5nIHRpbmggbmd1eWVuIHZpZW4gdnVhIGNvIGt5IG5hbmcgdnVhIGNvIHRhbSBsb25nIC0g aGFpIGRpZXUgDQpraWVuIGNhbiB2YSBkdSBjaG8gbHVjIGx1b25nIGN1dSBuYW4gaG9hdCBkb25n IGhpZXUgcXVhLiBEaSBuaGllbiBsYSBwaGFpIGNvIGNhIHBodW9uZyB0aWVuIHRvdCB2YSBoaWVu IGRhaS4gIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDYv MjAxMDExMTEwMDA4MDAuYXNweCBUcmEgU29uICAxMS8xMS8yMDEwIDA6MDggDQoNClRodSB0dW9u ZzogQ2hpIGNvbiAiYmEgdGFpIGNobyIgIA0KICANCkxhdSBuYXkgY2h1bmcgdGEgdmFuIHRodW9u ZyBuZ2hlIGNhYyBkaWEgcGh1b25nIGJhbyBjYW8gdmUgdGluaCBoaW5oIGNodWFuIGJpIGNhYyAN CnBodW9uZyBhbiBwaG9uZyBjaG9uZyBsdXQgYmFvLCB0cm9uZyBkbyBjbyBjdW0gdHUgImJvbiB0 YWkgY2hvIiwgZ29tIGNvbiBuZ3VvaSwgDQpwaHVvbmcgdGllbiwgdmF0IHR1IHZhIGhhdSBjYW4g dGFpIGNoby4gDQoNClR1eSBuaGllbiwga2hvbmcgaXQgbm9pLCBjaGkgY2FuIHRob2kgdGlldCAi Y2FtIHZhbiIgbW90IHR1YW4sIGxhbmggZGFvIG5vaSBkbyBkYSB0aGFuIHRobyANCnZlIHRpbmgg dHJhbmcgdGhpZXUgbHVvbmcgdGh1Yy4gTmdoaWEgbGEsIGNoaSBjb24gImJhIHRhaSBjaG8iIG1h IHRob2kuIERhbyBMeSBTb24sIHRpbmggDQpRdWFuZyBOZ2FpIGxhIG1vdCB2aSBkdS4NCg0KVmkg dGhpZXUgbHVvbmcgdGh1YywgdGh1YyBwaGFtIHZhIHhhbmcgZGF1IHBodWMgdnUgY2hvIHZpZWMg ZGkgbGFpIHZhIGN1bmcgY2FwIGNobyBuaGEgDQptYXkgZGllbiB0YWkgaG9uIGRhbyBuYXkgbmVu IHRyb25nIGhhaSBuZ2F5IDcgdmEgOC4xMSwgZHUgdGhvaSB0aWV0IGNvbiBiYXQgbG9pIG5odW5n IHRpbmggDQpRdWFuZyBOZ2FpIHZhbiBxdXlldCBkaW5oIGNobyA2IGNodXllbiB0YXUgcmEgZGFv IEx5IFNvbiBkZSAiZ2lhaSBwaG9uZyIgaGFuZyB0cmFtIA0Kbmd1b2kgYmkgbWFjIGtldCB0cm9u ZyBkYXQgbGllbiBkb25nIHRob2kgbWFuZyAyMDAgdGFuIGhhbmcgaG9hIHRoaWV0IHlldSBnb20g bHVvbmcgDQp0aHVjLCB0aHVjIHBoYW0gdmEgbmhpZW4gbGlldSBjdW5nIGNhcCBjaG8gaGFpIHZh biBkYW4gdGFpIGRheS4gDQoNCkR1IHNvIGhhbmcgaG9hIGNodXllbiByYSBkYW8gbmh1IHZheSBs YSByYXQgbmhpZXUsIHNvbmcgc28gdm9pIG5odSBjYXUgY3VhIG5ndW9pIGRhbiBvIA0KZGF5IHRo aSBjaGFuZyBibyBiZW4gZ2kuIFZpIHZheSBtb2kgY28gY2h1eWVuLCBkdSBkYSBjbyB0aG9uZyBi YW8gY3VhIGNhbmcgU2EgS3kgbGEgDQpjYW0gdGF0IGNhIGNhYyB0YXUgcmEgZGFvIHRyb25nIG5n YXkgOS4xMSBuaHVuZyB0YXUgVmluaCBIYWkgdmFuICJiaSBtYXQiIHJhIEx5IFNvbiwgDQpzdXl0 IHhheSByYSB0aGFtIGhvYSBjaHVhIHR1bmcgY28gdHJvbmcgbGljaCBzdSBjdWEgaG9uIGRhbyBu YXkuDQoNClRodWMgcmEsIHRhdSBWaW5oIEhhaSBtYW5nIHRoZW8gZGVuIDcwIHRhbiBoYW5nIGhv YSB2YSB0cmVuIDEwMCBoYW5oIGtoYWNoIHh1YXQgYmVuIA0KdGFpIGNhbmcgU2EgS3kgZ2l1YSB0 aGFuaCB0aGllbiBiYWNoIG5oYXQgY2h1IGtob25nIHBoYWkgImJpIG1hdCIgZ2ksIG5odW5nIGNh YyBjbyBxdWFuIA0Ka2llbSBzb2F0IHRhaSBjYW5nIHZhbiBsYW0gbmdvIGNobyBkaS4gRGFuIEx5 IFNvbiBjdW5nIHRodWEgYmlldCAidGhlIHRyYW5nIiBjdWEgdGF1IA0KVmluaCBIYWkgbmh1IHRo ZSBuYW8gc2F1IGNhIGNodWMgbmFtIGRpIGxhaSwgc29uZyBobyBraG9uZyBjbyBzdSBjaG9uIGx1 YSBuYW8ga2hhYyBuZW4gDQpkYW5oIHRyYW8gdGhhbiBjaG8gc29uZyBkdS4gDQoNCkNvIHRoZSB4 ZW0gZGF5IGxhIGxhbiBjdXUgbmFuIGt5IGRpZXUgbmhhdCB0cm9uZyBsaWNoIHN1IGhhbmcgdHJh bSBuYW0ga2hhaSBwaGEgTHkgU29uIA0KY3VhIG5ndW9pIFZpZXQuIE1heSBib20gbnVvYyBjdWEg dGF1IGhvbmcsIG51b2MgZGEgdHJhbiB2YW8ga2hvYW5nLCB0YXUgdHJvaSB0dSBkbyB0cmVuIA0K YmllbiwgdGhlIG5odW5nIGx1YyBsdW9uZyBjdXUgaG8gY3VhIEx5IFNvbiBkYSBraXAgY3V1IHRy ZW4gMTAwIGhhbmgga2hhY2ggYmFuZyBuaHVuZyANCnBodW9uZyB0aWVuIGhldCBzdWMgdGhvIHNv IHRyb25nIHN1b3QgMyBnaW8gbGllbiB0cm9uZyBzb25nIHRvIGdpbyBsb24gdHJlbiBiaWVuIHRy dW9jIGtoaSANCmNvbiB0YXUgY3VuZyA3MCB0YW4gaGFuZyBjaGltIHh1b25nIGJpZW4gc2F1ISBO ZXUga2hvbmcgY28gbm8gbHVjIHBoaSB0aHVvbmcgY3VhIGx1YyBsdW9uZyANCmN1dSBobywga2hv bmcgYmlldCB0YWkgaG9hIHJhIHNhby4gUm9pIGRheSwgdGluaCBRdWFuZyBOZ2FpIHZhIGNhYyBu Z2FuaCBjaHVjIA0KbmFuZyBzZSBuZ29pIGxhaSB2YSAibW8geGUiIHN1IGNvIG5heSwgc29uZyBj b24gIm1vdCB0YWkgY2hvIiBudWEsIGRvIGxhIGx1b25nIHRodWMgZHUgDQp0cnUgY2hvIGRhbyBz ZSBkZSBkYW5nIGJpICJjaG8gcXVhIi4NCg0KS2hvbmcgcGhhaSBkYXkgbGEgbGFuIGRhdSB0aWVu IEx5IFNvbiBtb2kgYmkgInNvbmcgbmhvdCIsIHNvbmcgbW9pIGxhbiBuaHUgdGhlIGxhIG1vdCAN CmxhbiAic2FwIGNhbiBsdW9uZyB0aHVjIHZhIG5oaWVuIGxpZXUiIHZhIHhpbiBUcnVuZyB1b25n IGRpZXUgbWF5IGJheSB0cnVjIHRoYW5nIGRlIGN1dSANCnRybyBraGFuIGNhcC4NCg0KQ2FjIHRo ZSBoZSBuZ3VvaSBWaWV0IGRhIGtoYWkgcGhhIGhvbiBkYW8gbmF5IHR1ICBoYW5nIHRyYW0gbmFt IHRydW9jLCBobyBkYSB2dW90IHNvbmcgDQpiYW5nIG5odW5nIGNhbmggYnVvbSwgdGhlIG5odW5n IHRpbmggdHJhbmcgInNhcCBoZXQgZ2FvIiB2YW8gbW9pIG11YSBiaWVuIGRvbmcgZGEga2hvbmcg DQp4YXkgcmEuIE9uZyBiYSB0YSBjaGFuZyBiaWV0IGRlbiBraGFpIG5pZW0gImJvbiB0YWkgY2hv Iiwgc29uZyBobyBkYSBiaWV0ICJ0aWNoIGNvYyANCnBob25nIGNvIiBob24gY2EgY29uIGNoYXUs IGR1IGNvbiBjaGF1IGJheSBnaW8sIGNodW5nIGNoaSBjYW4gInJvIGdhIiBtb3QgdGllbmcgYmFu ZyANCnRhdSBjYW8gdG9jIGxhIGRhIGNvIHRoZSBkYXQgY2hhbiBsZW4gZGFvIHJvaS4NCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDIzMDEyMDU3 LmFzcHggS2guSG9hbiBRLkR1YW4gMjMvMTAvMjAxMCAxOjIwIA0KDQpUaHUgdHVvbmc6IEN1dSBo byBwaGFpIHRodWMgc3UgY2h1eWVuIG5naGllcCAgDQogIA0KKEFuaDogSGFpIG1heSBjYXUgY3Vh IGRvYW5oIG5naGllcCB0dSBuZ3V5ZW4gdGhhbSBnaWEgdHJ1YyB2b3QgeGUga2hhY2ggdmEgdGhp IHRoZSBuYW4gbmhhbiAtIEFuaDogSy5Ib2FuKQ0KDQoqTmh1bmcgbmd1b2kgdGhvIGxhbiBjYW4g dHJ1b25nDQoNCkNvbmcgdGFjIGN1dSBobyBjaHVhIGRhcCB1bmcgZG9pIGhvaSBjdWEgdGh1YyB0 ZS4gRG8gbGEgbmhpbiBuaGFuIGN1YSB0cnVuZyB0dW9uZyANCk5ndXllbiBTb24gSGEsIG5ndXll biBDaGFuaCB2YW4gcGhvbmcgVXkgYmFuIFF1b2MgZ2lhIFRpbSBraWVtIGN1dSBuYW4sIGtoaSB0 cmEgDQpsb2kgcGhvbmcgdmFuIGN1YSBCYW8gVGhhbmggTmllbiB2ZSBraGEgbmFuZyBjdXUgaG8g Y3V1IG5hbiBjdWEgbnVvYyB0YSBoaWVuIG5heS4NCg0KVHJ1bmcgdHVvbmcgTmd1eWVuIFNvbiBI YSBjaG8gYmlldDogQmluaCBxdWFuIG1vaSBuYW0gY2h1bmcgdGEgY3V1IGR1b2MgY2EgdmFuIG5n dW9pLCB0cm9uZyBkbyBjbyB0cmVuIDcuMDAwIG5ndW9pIGJpIG5hbiB0cmVuIGJpZW4uIFZOIGxh IG1vdCBkYXQgbnVvYyBsdW9uIHBoYWkgZG9pIA0KbWF0IHZvaSBuaGlldSBsb2FpIHRoaWVuIHRh aSB2YSB0cm9uZyBuaGlldSBuYW0gcXVhLCBjb25nIHRhYyB0aW0ga2llbSBjdXUgaG8sIGN1dSBu YW4gDQpjdW5nIGRhIGNvIG5odW5nIGJ1b2MgdGllbiBuaGF0IGRpbmgsIGdvcCBwaGFuIGdpYW0g dGhpZXUgdGhpZXQgaGFpIGNobyBOaGEgbnVvYyB2YSANCm5oYW4gZGFuLCBuaHVuZyBoaWVuIHZh biBjb24gbmhpZXUgYmF0IGNhcCwgY2h1YSBkYXAgdW5nIGhldCBkb2kgaG9pIGN1YSB0aHVjIHRl Lg0KDQpOaHVuZyB2dSBjdXUgaG8gdGhhdCBiYWkgZ2FuIGRheQ0KDQotIFRydWEgbmdheSAyMy44 LjIwMTAsIHRhdSBjYSBETmEtNjE0MDZUUyAoVFAgRGEgTmFuZykgYmkgaG9uZyBtYXksIHRyb2kg ZGF0IHRhaSB2aSB0cmkgDQpjYWNoIGJvIGtob2FuZyAzMiBoYWkgbHkuIFRvaSBjdW5nIG5nYXks IHRhdSBjdXUgbmFuIFNBUiA0MTIgY3VhIFRydW5nIHRhbSBQaG9pIGhvcCANCnRpbSBraWVtIGN1 dSBuYW4gaGFuZyBoYWkga2h1IHZ1YyAyIChEYSBOYW5nIE1SQ0MpIGRhIHRpZXAgY2FuIHZhIHRo YSBkYXkgZGUgbGFpIGRhdCANCnRhdSBiaSBuYW4uIFR1eSBuaGllbiwga2hpIGNhY2ggYm8gZ2Fu IDggaGFpIGx5LCBkYXkga2VvIHRhdSBiaSBkdXQsIHRhdSBETmEgNjE0MDYgVFMgDQpjdW5nIDEw IG5ndSBkYW4gYmkgbWF0IHRpY2guIE5nYXkgc2F1IGRvLCBtb3QgbHVjIGx1b25nIGh1bmcgaGF1 LCBnb206IHRhdSBTQVIgMjcxLCANCmhhaSB0YXUgQlAgNjgxIHZhIEJQIDIwOSBjdWEgQmllbiBw aG9uZyBEYSBOYW5nLCB0YXUgSFEgNjI1IGN1YSBWdW5nIDMgSGFpIHF1YW4sIA0KaGFpIHRhdSBj YSBjb25nIHN1YXQgbG9uIGN1YSBuZ3VvaSBkYW4sIG1vdCBtYXkgYmF5IHRydWMgdGhhbmcgdGh1 b2MgU3UgZG9hbiBiYXkgMzcyIA0KdGhhbSBnaWEgdGltIGtpZW0gbmh1bmcgdmFuIGtob25nIHRp bSB0aGF5IHRhdSBjYSB2YSBjYWMgbmd1IGRhbiBiaSBuYW4uIFBoYWkgZGVuIGtoaSANCmNhYyBi YW4gY2hhaSBvIGRpYSBwaHVvbmcgcmEgdGF5LCBobyBkYSBuaGFuaCBjaG9uZyB0aW0gcmEgbmh1 bmcgbmd1b2kgZGkgdHJlbiB0YXUgY2EgDQpETmEtNjE0MDZUUy4gVHJlbiB0aHVjIHRlLCBzYXUg a2hpIHRybyB2ZSBkYXQgbGllbiwgY2FjIG5ndSBkYW4gY2hvIGJpZXQsIGhvIGRhIG5oaW4gdGhh eSANCm1heSBiYXkgY3V1IGhvIGJheSByYXQgZ2FuIG5odW5nIGNhYyBuaGFuIHZpZW4gY3V1IGhv IGRhIGtob25nIHBoYXQgaGllbiByYSBoby4NCg0KLSBWdSBjdXUgaG8gY3V1IG5hbiBiYXQgdGhh bmggMiBuZ3VvaSBkYW8gdmFuZyBiaSBkYXQgZGEgdnVpIGxhcCB0YWkgYmFpIGtoYWkgdGhhYyBx dWFuZyANCnRyYWkgcGhlcCB0aHVvYyBjYWMgeGEgUXVhbmcgVHJ1bmcgdmEgVHJpIFBodW9uZyAo SC5UcmEgTGluaCwgdGluaCBDYW8gQmFuZykgdmFvIGN1b2kgDQp0aGFuZyA3IHZ1YSBxdWEgY3Vu ZyBkZSBsYWkgbmh1bmcgZGF1IGhvaSBsb24gdmUga2hhIG5hbmcgdW5nIGN1dSBjdWEgY2FjIGx1 YyBsdW9uZyANCnRpbSBraWVtIGN1dSBuYW4uIFNhdSA3IG5nYXkgeGF5IHJhIHN1IGNvLCBuZ3Vv aSB0YSBkYSBiYXQgZHVvYyB0aW4gaGlldSBjaG8gdGhheSAyIG5hbiANCm5oYW4gdmFuIGNvbiBz b25nLiBMdWMgbHVvbmcgY3V1IGhvIGN1dSBuYW4gY28gY2EgY29uZyBhbiwgcXVhbiBkb2kgdm9p IGNvbmcgY3UgbGEgaGFpIA0KbWF5IHh1YyB2YSBjYS4uLiBtaW4gZHVvYyBodXkgZG9uZyBuaHVu ZyBjdW9pIGN1bmcgY2hpIGR1YSBkdW9jIHRoaSB0aGUgY3VhIGNhYyBuYW4gbmhhbiBsZW4ga2hv aSBtYXQgZGF0Lg0KDQpDaHVhIGNvIGRpZXUga2llbiB1bmcgY3V1IGtpcCBuZXUgZ2FwIHN1IGNv IA0KDQoqTmh1bmcgYmF0IGNhcCBkbyBsYSBnaSwgdGh1YSB0cnVuZyB0dW9uZz8NCg0KLSBIaWVu IG5heSBjaHVuZyB0YSBkYW5nIHRoaWV1IG5odW5nIHBodW9uZyB0aWVuLCB0cmFuZyB0aGlldCBi aSBjdXUgaG8sIGN1dSBuYW4sIG5oYXQgbGEgDQpuaHVuZyBtYXkgYmF5IGhpZW4gZGFpLCB0YXUg Y2h1eWVuIGR1bmcgdG9pIHRhbi4uLiBDaHVuZyB0YSBjbyA0IGNoaWVjIHRydWMgdGhhbmcgY3V1 IA0KaG8uIFBoYWkgbm9pIGxhIHRyb25nIG5odW5nIG5hbSB2dWEgcXVhIG5odW5nIGNoaWVjIG1h eSBiYXkgbmF5IGRhIGdvcCBwaGFuIGRhYyBsdWMgDQp0cm9uZyB2aWVjIGNodXllbiBjaG8gY2Fu IGJvIGRpIGtoYW8gc2F0IGhpZW4gdHJ1b25nLCBkdWEgbmh1IHlldSBwaGFtIHRvaSB2dW5nIHRo aWVuIA0KdGFpIG5odSBsdSBxdWV0IG8gbWllbiBudWkgcGhpYSBCYWMgaGF5IGx1IGx1dCBvIG1p ZW4gVHJ1bmcuIE5odW5nIGRheSBsYSBtYXkgYmF5IHRoZSANCmhlIGN1LCBjaGkgYmF5IGR1b2Mg dHJvbmcgYmFuIGtpbmggMTUwIGttLCBraG9uZyB0aGUgdW5nIGN1dSB0YXUgdGh1eWVuIGdhcCBu YW4gbmdvYWkgDQpraG9pIHhhLCBraG9uZyBiYXkgZHVvYyB0cm9uZyBkaWV1IGtpZW4gdGhvaSB0 aWV0IHhhdS4gIA0KDQpDaHVuZyB0YSBjaHVhIGNvIGR1b2MgdGF1IGN1dSBobyBjdXUgbmFuIHhh IGJvLCBjaGl1IGR1b2Mgc29uZyBsb24gZGUgdGh1YyBoaWVuIHVuZyANCmN1dSBraGkgY28gc3Ug Y28geGF5IHJhIG5nb2FpIGtob2kgeGEsIHRyb25nIGRpZXUga2llbiBnaW8gYmFvIG1hbmguIFRh dSBTYTQxIGxhIHRhdSBjdXUgDQpobyBoaWVuIGRhaSBuaGF0IG1hIGNodW5nIHRhIGRhbmcgc3Ug ZHVuZyBjdW5nIG1vaSBjaGkgY2hpdSBkdW9jIHNvbmcgY2FwIDYgbWEgdGhvaS4NClZpIHRoZSwg a2hpIGJhbyBsb24gZ2F5IHN1IGNvIHRyZW4gYmllbiwgY2h1bmcgdGEgY2h1YSBjbyBkaWV1IGtp ZW4gdW5nIGN1dSBraXAgdGhvaS4gTmh1IA0KdHJvbmcgY29uIGJhbyBDaGFuY2h1LCBoYW5nIHRy YW0gbmd1IGRhbiB0YSBiaSBjaGV0IHRyZW4gYmllbi4gS2hpIGRvLCBuZ3UgZGFuIGJpIG5hbiBv IA0KZGFvIERvbmcgU2Egbmh1bmcgY2h1bmcgdG9pIGtob25nIHRoZSBjbyBtYXQga2lwIHRob2ks IHBoYWkgbmhvIHN1IGdpdXAgc3VjIGN1YSBjYWMgDQpudW9jIGJhbi4gTmhpZXUgdnUgc2F0IGxv IGRhdCBvIGtodSB2dWMgbWllbiBudWkgcGhpYSBCYWMsIGx1IGx1dCBvIG1pZW4gVHJ1bmcsIG1h eSBiYXkgDQpraG9uZyB0aWVwIGNhbiBkdW9jIGhpZW4gdHJ1b25nLCBjYWMgZG9hbiBjdXUgdHJv IHBoYWkgbG9pIGJvLCB2dW90IG51aSBiYW5nIHJ1bmcgbWF5IA0KbmdheSB0cm9pIG1vaSB2YW8g ZGVuIG5vaS4gDQoNCipUaHVhIHRydW5nIHR1b25nLCBsdWMgbHVvbmcgY3V1IGhvIGNodXllbiB0 cmFjaCBjdWEgY2h1bmcgdGEgY29uIHlldSB2YSB0aGlldSBjdW5nIA0KZGFuZyBsYSB0cm8gbmdh aSBsb24gdHJvbmcgdmllYyB1bmcgY3V1IGtoaSBjbyBjYWMgc3UgY28/DQoNCi0gRHVuZyBsYSBu aHVuZyBkb24gdmkgY2h1eWVuIHRyYWNoIGNvbiBpdC4gSGllbiBtb2kgY28gMyB0cnVuZyB0YW0g Y3V1IG5hbiBjdWEgaGFuZyANCmhhaSB2YSAzIHRydW5nIHRhbSB1bmcgcGhvIHN1IGNvIHRyYW4g ZGF1IGxhIGNodXllbiB0cmFjaCB2YSBtb3Qgc28gZG9uIHZpIGN1YSBibyBuZ2FuaCANCmtoYWMg bmh1IGNhcCBjdXUgbW8uIENhYyBsdWMgbHVvbmcgY29uIGxhaSBjbyBiYW4gbGEga2llbSBuaGll bS4gTHVjIGx1b25nIGNodXllbiANCnRyYWNoIGxhaSBtb2kgZHVvYyB4YXkgZHVuZyBuZW4gdHJp bmggZG8gY2h1eWVuIG1vbiBjb24gaGFuIGNoZS4gQ2FjIGx1YyBsdW9uZyBraWVtIA0KbmhpZW0g dGhpIHRob2kgZ2lhbiBodWFuIGx1eWVuIHJhdCBpdCBuZW4gY2hhdCBsdW9uZyBjaHVhIHRoYXQg c3UgdG90Lg0KDQooQW5oOiBUcnVuZyB0dW9uZyBOZ3V5ZW4gU29uIEhhIC0gQW5oOiBOZ29jIFRo YW5nKQ0KDQpRdWFuIGRpZW0gY3VhIGNodW5nIHRhIGxhIGh1eSBkb25nIHN1YyBtYW5oIGN1YSB0 b2FuIGRhbiwgY3VhIGNhIGhlIHRob25nIGNoaW5oIHRyaSBkZSANCmRvaSBwaG8gdm9pIHRoaWVu IHRhaSwgbmh1bmcgaGllbiBuYXkgY28gbmh1bmcgdGluaCBodW9uZywgdGhhbSBob2EsIHN1IGNv LCBraG9uZyAgcGhhaSANCmN1IGRvbmcgbmd1b2kgbGEgY28gdGhlIHVuZyBjdXUgZHVvYyBtYSBj YW4gcGhhaSBjbyBuaHVuZyBkb24gdmkgY2h1eWVuIG5naGllcCBjbyANCmNodXllbiBtb24gdmEg dGh1YyBzdSB0aW5oIG5odWUgbW9pIGRhbSBkdW9uZyBkdW9jLiANCg0KKk9uZyBkYW5oIGdpYSBu aHUgdGhlIG5hbyB2ZSBraGEgbmFuZyB1bmcgcGhvIHZvaSBjYWMgc3UgY28gdGhpZW4gdGFpIGN1 YSBjYWMgZGlhIHBodW9uZz8NCg0KLSBUaW5oIHR1IDIwMDAgZGVuIG5heSwgQ2hpbmggcGh1IGNh cCBnYW4gMS4wMDAgeHVvbmcgdmEgbmhpZXUgdHJhbmcgYmkgcGh1b25nIHRpZW4gDQpuaHUgbWF5 IGJvbSBjb25nIHN1YXQgbG9uLCBhbyBwaGFvIGN1dSBzaW5oLi4uIGNobyBjYWMgZGlhIHBodW9u ZyB2YSBjYWMgYm8gbmdhbmguIA0KQ2FjIHRpbmgsIHRoYW5oIHBobyBkZXUgZHVvYyB0cmFuZyBi aSBwaHVvbmcgdGllbiBuaHVuZyBwaGFuIGJvIGNodWEgZGV1LCBkaWVuIHBodSANCmNodWEgZG9u ZyBraGFwLiBOaHUgdHJvbmcgdHJhbiBsdXQgbmFtIDIwMDksIFBodSBZZW4gY28gdHJlbiAyMDAg eHVvbmcsIGNhLW5vIGN1dSBuYW4gDQpuaHVuZyBkaWV1IGRvbmcga2hvbmcga2lwIG5lbiB0YWkg aGllbiB0cnVvbmcgdmFuIHRoaWV1IHRob24gdHJhbSB0cm9uZyBjYWMgcGh1b25nIHRpZW4gDQpj dXUgbmFuLg0KDQpLaGkgc3UgY28geGF5IHJhLCBsdWMgbHVvbmcgdW5nIGN1dSB0YWkgY2hvIHRy aWVuIGtoYWkgbmdheSBsYXAgdHVjIGNhYyBob2F0IGRvbmcgY3V1IGhvIA0KY3V1IG5hbiBzZSBk ZW0gbGFpIGhpZXUgcXVhIHJhdCBjYW8gdHJvbmcgdmllYyBnaWFtIHRoaWV1IHRhYyBoYWkgZG8g dGhpZW4gdGFpIGdheSByYS4gDQpDaHVuZyB0YSBkYSBkZSByYSBwaHVvbmcgY2hhbSAiNCB0YWkg Y2hvIiBuaHVuZyB0b2kgZGkga2llbSB0cmEsIHRvaSBiaWV0IHRyZW4gdGh1YyB0ZSB0YWkgDQpu aGlldSBub2kgdHVuZyBuZ3VvaSBkYW4sIHR1bmcgaG8gZ2lhIGRpbmgsIHR1bmcgdGhvbiBiYW4g Y2h1YSBjbyBzdSBjaHVhbiBiaSBjaHUgZGFvIA0KZGUgY2h1IGRvbmcgZG9pIHBobyB2b2kgbXVh IGJhbywgbHUgcXVldCwgbmdhcCBsdXQuIFJhdCB0aWVjLCBvIG51b2MgdGEgaGllbiB2YW4geGF5 IHJhIA0KdGluaCB0cmFuZyBuZ3VvaSBkYW4gY2h1YSBiaWV0IHR1IGN1dSBtaW5oLCB0aG9uIHhv bSBjaHVhIGJpZXQgdHUgY3V1IG5oYXUgbW90IGNhY2ggDQpoaWV1IHF1YS4gDQoNClhheSBkdW5n IGx1YyBsdW9uZyBjaHV5ZW4gdHJhY2gNCg0KKkNodW5nIHRhIHNlIHBoYWkgbGFtIGdpIGRlIG5h bmcgY2FvIG5hbmcgbHVjIGN1dSBobywgY3V1IG5hbiB0cm9uZyB0aG9pIGdpYW4gdG9pPw0KDQpC YWMgVHJ1bmcgQm8gY28gNzYgbmd1b2kgY2hldCB2aSBtdWEgbHUNCg0KKiBUaW0gZHVvYyB0aGVt IG1vdCB0aGkgdGhlIHRyb25nIHZ1IHhlIGtoYWNoIGJpIGx1IGN1b24NCg0KSG9tIHF1YSAyMi4x MCwgbHVjIGx1b25nIHRpbSBraWVtIGRhIHBoYXQgaGllbiB0aGVtIG1vdCB0aGkgdGhlIG5vaSB0 cmVuIHNvbmcgbyBraHUgDQp2dWMgY2F1IEJlbiBUaHV5LCBjYWNoIHZpIHRyaSBjaGllYyB4ZSBr aGFjaCBnYXAgbmFuIGtob2FuZyA2IGttLiANCg0KQ2hpZXUgcXVhLCBuZ3VvaSB0aGFuIGRhIG5o YW4gZGllbiBkdW9jIG5hbiBuaGFuIGxhIGFuaCBQaGFtIFZhbiBUdXllbiAoMTkgdHVvaSkgbyAN CnhhIERhayBSdW9uZywgaHV5ZW4gS29uIFJheSwgdGluaCBLb24gVHVtLiBUaGkgdGhlIGFuaCBU dXllbiBkYSBkdW9jIG5ndW9pIHRoYW4gDQpkdWEgdmUgYW4gdGFuZyB0cm9uZyBjaGlldSBxdWEu IE5odSB2YXkgZGEgY28gMTUvMjAgdGhpIHRoZSB0cm9uZyB2dSB0YWkgbmFuIG5heSANCmRhIGR1 b2MgdGltIHRoYXkuIEx1YyBsdW9uZyB0aW0ga2llbSBzZSB0aWVwIHR1YyB0aW0ga2llbSA1IHRo aSB0aGUgY3VhIG5odW5nIG5ndW9pIGNvbiBsYWkuDQoNCiogQmFvIGNhbyBuaGFuaCBjdWEgQmFu IENoaSBkYW8gcGhvbmcsIGNob25nIGx1dCBiYW8gVC5VIGhvbSBxdWEgMjIuMTAgY2hvIGJpZXQs IA0KbXVhIGx1IHRhaSBjYWMgdGluaCBiYWMgVHJ1bmcgQm8gdHJvbmcgbmh1bmcgbmdheSBxdWEg ZGEgbGFtIDc2IG5ndW9pIGNoZXQsIDYgbmd1b2kgDQptYXQgdGljaCB2YSA0MiBuZ3VvaSBiaSB0 aHVvbmcuIFRyb25nIHNvIG5odW5nIG5ndW9pIHR1IG5hbiwgTmdoZSBBbiBjbyAyNCBuZ3VvaSwg SGEgDQpUaW5oIDIwIG5ndW9pLCBRdWFuZyBCaW5oIDEyIG5ndW9pLCBUaGFuaCBIb2EgNSBuZ3Vv aSB2YSAxNSBuZ3VvaSB0cmVuIHhlIGtoYWNoIA0KNDhLLTU4NjggYmkgbHUgY3VvbiB0cm9pLiAo S2hhbmggSG9hbiAtIFF1YW5nIER1YW4pIA0KDQotIENvIHRoZSBub2ksIGRheSBkYW5nIGxhIG1v dCB0cm9uZyBuaHVuZyBjYXUgY2h1eWVuIHRob2kgc3UsIHRodSBodXQgc3UgY2h1IHkgZGFjIGJp ZXQgDQpjdWEgZHUgbHVhbi4gQ2hpbmggcGh1IGN1bmcgZGEgdmEgZGFuZyByYXQgcXVhbiB0YW0g ZGVuIHZhbiBkZSBuYXkuIENoaW5oIHBodSBkYSBnaWFvIA0KVXkgYmFuIFF1b2MgZ2lhIFRpbSBr aWVtIGN1dSBuYW4gdmEgQm8gTm9pIHZ1IG5naGllbiBjdXUgeGF5IGR1bmcgbW8gaGluaCBVeSBi YW4gDQpRdW9jIGdpYSBUaW0ga2llbSBjdXUgbmFuIHRoZW8gaHVvbmcgY28gbHVjIGx1b25nIGNo dXllbiB0cmFjaCwgY28gZG9uIHZpIGNodXllbiANCnRyYWNoIGtlIGNhIG8gdHJ1bmcgdW9uZyB2 YSBkaWEgcGh1b25nLiBMdWMgbHVvbmcgbmF5IGR1b2MgaHVhbiBsdXllbiB0b3QsIGJhaSBiYW4s IA0KZHVvYyB0cmFuZyBiaSBoaWVuIGRhaSBkZSB1bmcgcGhvIHZvaSBjYWMgc3UgY28uIENoaW5o IHBodSBjdW5nIGRhIHF1eWV0IGRpbmggZGF1IHR1IA0KbXVhIHNhbSB0aGVtIG5oaWV1IHBodW9u ZyB0aWVuIGN1dSBobyBjdXUgbmFuIGNodXllbiBkdW5nLCBoaWVuIGRhaS4gQ3UgdGhlLCBtdWEg DQp0aGVtIDIgY2hpZWMgbWF5IGJheSB0cnVjIHRoYW5nIHRpbSBraWVtIGN1dSBuYW4gaGllbiBk YWkgY3VhIFBoYXAsIGJheSBkdW9jIHhhIHZhIGJheSANCmR1b2MgdHJvbmcgdGhvaSB0aWV0IHhh dS4gTHVjIGx1b25nIEJvIGRvaSBCaWVuIHBob25nIGRvbmcgbW9pIDEwIHRhdS4gQ2FjIHRpbmgg dmVuIA0KYmllbiBkZW4gbmFtIDIwMjAgbW9pIHRpbmggY28gaXQgbmhhdCAyIGNoaWVjIHRhdSBj dXUgbmFuLiBCbyBRdW9jIHBob25nIGRhbmcgdHJpZW4gDQpraGFpIGR1IGFuIGRvbmcgNSBjaGll YyB0YXUgY3V1IG5hbiB4YSBiby4gQ2FuaCBzYXQgYmllbiBkb25nIDQgY2hpZWMgdGF1IGRhIG5h bmcsIGhpZW4gDQpkYW5nIHRyaWVuIGtoYWkgZG9uZyAyIGNoaWVjIHJvaS4gQ2FjIHRydW5nIHRh bSB1bmcgcGhvIHN1IGNvIHRyYW4gZGF1IHNlIGRvbmcgNSBjaGllYyANCnRhdSBjaHV5ZW4gZHVu ZyBkb25nIHRob2kgZHVvYyB0cmFuZyBiaSB1bmcgcGhvIHZvaSBzdSBjbyB0cmFuIGRhdS4gQm8g Q29uZyBhbiBjbyBkdSANCmFuIDEuMDAwIHRpIGRvbmcgbXVhIHRyYW5nIHRoaWV0IGJpIGN1dSBo b2EuIER1IGFuIG5heSBkYSB0aHVjIGhpZW4gZHVvYyBtb3QgbnVhLCBjaG8gDQpsaW5oIHZ1YyBj dXUgbmFuIHRyb25nIGN1dSBob2EuDQoNCkNodW5nIHRhIGN1bmcgZGFuZyBkYXUgdHUgY2hvIGNh YyB0cmFtIHRpbSBraWVtIGN1dSBobyBjdXUgbmFuIG8gZGFvIHZhIHF1YW4gZGFvOiANClRydW9u ZyBTYSwgTHkgU29uLCBCYWNoIExvbmcgVmksIENvbiBDbyB2YSBzZSB0aWVwIHR1YyB0cmFuZyBi aSBjaG8gY2FjIGRhbzogVGhvIENodSwgDQpDb24gRGFvLCBQaHUgUXVvYywgQ28gVG8gdHJvbmcg bmh1bmcgbmFtIHRpZXAgdGhlby4gDQoNCipUaHVhIHRydW5nIHR1b25nLCBuZXUgeGF5IHJhIHRo YW0gaG9hLCBsaWV1IGNodW5nIHRhIGNvIGJpIGx1bmcgdHVuZz8NCg0KLSBUb2kgY2hvIHJhbmcg dm9pIHRyYW5nIHRoaWV0IGJpIHZhIGx1YyBsdW9uZyBoaWVuIGNvLCBrZSBjYSBzdSBibyBzdW5n IHRyb25nIHR1b25nIGxhaSANCmdhbiwgbmV1IGdhcCBiYW8gbWFuaCBjbyBzdWMgdGFuIHBoYSBn aGUgZ29tIG5odSBiYW8gTmFnaXMgY28gc3VjIGdpbyAyMDAga20vZ2lvLCBkbyANCmJvIHZhbyBN eWFubWFyIGhvYWMgc29uZyB0aGFuIG5odSBvIEluZG9uZXNpYSwgZG9uZyBkYXQgbyBUcnVuZyBR dW9jIHZhIEhhaXRpLCB0aHVjIA0Kc3UgY2h1bmcgdGEgc2UgZ2FwIGtobyBraGFuLCBzZSBsdW5n IHR1bmcgdmEgaGlldSBxdWEgdW5nIHBobyBrZW0uDQoNCk5odW5nIG5ndW9pIHRobyBsYW4gY2Fu IHRydW9uZyANCg0KSXQgYWkgbmdoaSB2aWVjIHRpbSBraWVtIGNoaWVjIHhlIGtoYWNoIDQ4Sy01 ODY4IGdhcCBuYW4gdGFpIHhhIFh1YW4gTGFtLCBodXllbiBOZ2hpIA0KWHVhbiwgSGEgVGluaCBs YWkgdHJvIG5lbiBraG8ga2hhbiBkZW4gdGhlLiANCg0KQ2hpYSBzZSBub2kgZGF1DQoNClN1b3Qg aGFpIG5nYXkgcm9uZyByYSwgbHVjIGx1b25nIHRpbSBraWVtIGNhIHRyYW0gbmd1b2kgdGhhbSBn aWEsIG5oaWV1IHBodW9uZyB0aWVuIGRhYyANCmNodW5nIGN1YSBxdWFuIGRvaSBrZSBjYSBtYXkg ZG8gbWluIGN1bmcgZGEgZHVvYyBodXkgZG9uZywgbmh1bmcgdHVuZyB0aWNoIGNoaWVjIHhlIA0K bmF5IGN1bmcgdm9pIHRoaSB0aGUgY3VhIDIwIG5hbiBuaGFuIHZhbiBtdSBtaXQuIA0KDQoiQmFu IGRhdSBjbyA3IGRvYW5oIG5naGllcCB0aGFtIGdpYSB0aW0ga2llbSwgdHJ1YyB2b3QgeGUsIHNh dSBkbyBjbyB0aGVtIG1vdCBzbyBkb2FuaCANCm5naGllcCBraGFjIGN1bmcgdGhhbSBnaWEuIENo dW5nIHRvaSBsYW0gaG9hbiB0b2FuIHR1IG5ndXllbiwgYmFuZyBraW5oIHBoaSwgcGh1b25nIA0K dGllbiB2YSBjb24gbmd1b2kgY3VhIG1pbmguIENodW5nIHRvaSBsYW0gdGh1YyB0YW0gdm9pIHRp bmggdGhhbiBjaGlhIHNlIG5vaSBkYXUgbWF0IG1hdCANCnZvaSBuaHVuZyBuZ3VvaSBuaGEgbmFu IG5oYW4sIGtob25nIGhlIGNvIHkgZGluaCBxdWFuZyBiYSBkb2FuaCBuZ2hpZXAuIENodW5nIHRv aSBjbyANCmtpbmggbmdoaWVtIG5odW5nIGNodW5nIHRvaSBjdW5nIGRhIG1heSBtYW4gdHJvbmcg dmllYyB0aGFtIGdpYSB0aW0ga2llbSBuYXkiLCBvbmcgDQpUcmFuIE5oYXQgVGhhbmgsIFBobyBn aWFtIGRvYyBDb25nIHR5IENQIHZhbiB0YWkgYmllbiB2YSB0aHVvbmcgbWFpIFRydW9uZyBUaGFu aC4gDQoNClNhbmcgMjAuMTAsIG9uZyBUcmFuIE5oYXQgVGhhbmgsIFBobyBnaWFtIGRvYyBDb25n IHR5IENQIHZhbiB0YWkgYmllbiB2YSB0aHVvbmcgbWFpIA0KVHJ1b25nIFRoYW5oIChnb2kgdGF0 IGxhIENvbmcgdHkgVHJ1b25nIFRoYW5oKSB2YSBtb3Qgc28gY2h1IGRvYW5oIG5naGllcCBraGFj IG8gVFAgDQpWaW5oLCBOZ2hlIEFuIGRhIGNodSBkb25nIGxpZW4gbGFjIHZvaSBuaGF1IHRpbmgg bmd1eWVuIHRoYW0gZ2lhIHZpZWMgdGltIGtpZW0uIEhvIHhpbiANCnkga2llbiBjdWEgbGFuaCBk YW8gdGluaCBIYSBUaW5oIHZhIHRydWEgY3VuZyBuZ2F5IHRoaSBiYXQgdGF5IHZhbyBjdW9jLiAN Cg0KSGFpIHNhIGxhbiBodXQgY2F0IHRyZW4gc29uZyB0YWkgdHJvbmcgMTAwIHRhbiBjdW5nIGNo aWVjIHRhdSBrZW8gNDIwIHN1YyBuZ3VhIGN1YSBDb25nIA0KdHkgVHJ1b25nIFRoYW5oIGR1b2Mg aHV5IGRvbmcgdGhhbSBnaWEgdGltIGtpZW0uIEhhaSBzb2kgZGF5IGxvbiBkdW9jIGJ1b2MgY2hh dCB2b2kgDQpoYWkgc2EgbGFuIG5heSwgZGF1IGNvbiBsYWkgYnVvYyBuaHVuZyB2YXQgbmFuZyB2 YSBkdW9jIHRoYSB4dW9uZyBkYXkgc29uZyBkZSB0aHVjIGhpZW4gDQp2aWVjIHJhIHRpbSBjaGll YyB4ZSBraGFjaC4gU2F1IGxhbiByYSB0aHUgaGFpLCBtb3Qgc2EgbGFuIGNhY2ggdmkgdHJpIGNo aWVjIHhlIGJpIGN1b24gdHJvaSANCmtob2FuZyAxIGttIHBoaWEgaGEgbHV1IGJpIG5pdSBsYWku IENhYyBjb25nIG5oYW4gdGhhbSBnaWEgdGltIGtpZW0gdHJlbiBzYSBsYW4gcGhhdCANCmhpZW4g Y28gdmV0IGRhdSBsb2FuZyBub2kgbGVuIG1hdCBudW9jLCBuZ2F5IHZpIHRyaSBkYXUgZGF5IGJl biBraWEgZGFuZyBtYWMga2V0LiBNb3QgdGlhIA0KaHkgdm9uZyBsb2UgbGVuLiANCg0KVHJvaSBk YSBzYW0gc2FtIHRvaSwgbmh1bmcgNCB0aG8gbGFuIGN1YSBDb25nIHR5IFRydW9uZyBUaGFuaCB2 YW4gZHVvYyBodXkgZG9uZyBkZW4uIA0KSG8gY29pIGFvLCBjaGkgbWFjIGRvYyBjYWkgcXVhbiBk dWksIG5nYW0gdm9pIGhvaSBiYXQgY2hhcCBudW9jIGx1IGxhbmggY29uZyBsYW4gdGhlbyANCnNv aSBkYXkgcmEgZGUgbGFuIHh1b25nLiBJdCBwaHV0IHNhdSwga2hpIG1vdCB0aG8gbGFuIHZ1YSBu aG8gZGF1IGxlbiBraG9pIG1hdCBudW9jLCBkYSANCmJhbyB0aW4gY2hpZWMgeGUgZGFuZyBuYW0g ZHVvaSBkby4gDQoNClNhbmcgaG9tIHNhdSwgdGhlbSBDb25nIHR5IFROSEggY3V1IGhvIGdpYW8g dGhvbmcgTWluaCBIaWVuIG8gVFAgSGEgVGluaCB0aWVwIHR1YyANCnRpbmggbmd1eWVuIG1hbmcg aGFpIHhlIGNhdSB0YWkgdHJvbmcgbG9uIGRlbiBoaWVuIHRydW9uZyBkZSB0aGFtIGdpYSB0cnVj IHZvdCB4ZSBraGFjaCANCmN1bmcgbmFuIG5oYW4gYmkgbmFuLiBDdW5nIHZvaSBuaHVuZyBwaHVv bmcgdGllbiBkYWMgY2h1bmcgY3VhIFF1YW4ga2h1IDQsIGhhaSBjaGllYyANCmNhdSBuYXkgZGEg a2VvIHZhIGNhdSBjaGllYyB4ZSBnYXAgbmFuIGxlbiBiby4NCg0KVnVvdCBxdWEgc28gaGFpDQoN Ck51b2Mgc29uZyBkdWMgbmdhdSwgY2hheSBjdW9uIGN1b24uIFR1IG1hdCBudW9jIHh1b25nIGRh eSBzb25nIGhvbiBjaHVjIHRodW9jLiANCk5odW5nIG5ndW9pIHRobyBsYW4gY2hhbiB0cmFuIGJp bmggdGhhbiBraG9uZyBoZSB0byByYSBkbyBkdSwgc28gaGFpLiBIYWkgdGhvIGxhbiANCk5ndXll biBWYW4gSG9hbiB2YSBOZ3V5ZW4gVmFuIFNvbiBkYW5oIHRyYW4sIG1pZW5nIG5nYW0gb25nIHRo byBjYW0gaGFpIG1vYyBzYXQgDQpsYW4gdGhlbyBzb2kgZGF5IG5lbyB4dW9uZyBudW9jLCBtYXQg aHV0IGR1b2kgc29uZy4NCg0KVmllYyBtb2MgbmVvIHZhbyBjaGllYyB4ZSBkZSBuYW5nIHhlIGxl biBraG9pIGRheSBzb25nIHRybyBuZW4gcmF0IGtobyBraGFuIGtoaSBjaGllYyANCnhlIGRhIGJp IGNhdCB2dWkgc2F1LiA0IHRobyBsYW4gcGhhaSB0aGF5IG5oYXUgbmdvaSBsZW4gbGFuIHh1b25n IHJhdCBuaGlldSBsYW4gbW9pIHRpbSANCmNhY2ggbW9pIGNhdCwgbW9jIGNhaSBtb2Mgc2F0IHZh byBnYW0geGUuICJUcm9uZyBraGkgbGFuIHh1b25nLCB0b2kgZGEgc28gdGhheSB0b2MgY3VhIA0K bmh1bmcgbmFuIG5oYW4gdHJvbmcgeGUsIGFuaCBTb24gY3VuZyBub2kgc28gdGhheSB0YXkgbmFu IG5oYW4iLCBhbmggSG9hbiBrZS4gIkFuaCBjbyANCmNhbSB0aGF5IHNvIGtob25nPyIuICJUcnVv YyB2YSB0cm9uZyBraGkgbGFuLCBiYXkgdHVpIGN1IG5naGkgZGVuIHN1IG5vbmcgbG9uZyBjaG8g ZG9pLCANCm5vaSBkYXUga2hvIGN1YSBjYWMgdGhhbiBuaGFuIG5hbiBuaGFuIGRhbmcgZHVuZyB0 cmVuIGJvIG5nb25nIHh1b25nIG5lbiBjdW5nIG1hdCANCmhldCBjYW0gZ2lhYyBzbyIsIGFuaCBI b2FuIG5vaS4gICAgIA0KDQpUcm9uZyBuaGlldSB0YW0gbG9uZyBzZSBjaGlhLCBzdSBjYW4gdHJ1 b25nIGN1YSBuaHVuZyBuZ3VvaSB0aG8gbGFuIG5heSBkYSBsYW0gdm9pIGJvdCBub2kgZGF1IGN1 YSBuaHVuZyBuZ3VvaSBjb24gc29uZy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA0NS8yMDEwMTEwMjEyNTYxNC5hc3B4IDAyLzExLzIwMTAgMTI6NTYgDQoN Ck11YSBsdSB0aWVwIHR1YyBkaWVuIGJpZW4gcGh1YyB0YXAgbyBOYW0gVHJ1bmcgYm8gIA0KICAN CiogSGFuZyBsb2F0IHhhIGJpIGNvIGxhcA0KKiBTYW4gYmF5IENhbSBSYW5oIGJpIGNoaWEgY2F0 DQoqIDMgdGh1eSBkaWVuIG8gUGh1IFllbiBkb25nIGxvYXQgeGEgbHUgDQoNCihUTk8pIEhvbSBu YXkgMi4xMSwgbXVhIHRvIHRpZXAgdHVjIGRvIHh1b25nIGNhYyB0aW5oIE5hbSBUcnVuZyBiby4g TXVhIGxvbiBjb25nIA0Kdm9pIG51b2MgdHUgZGF1IG5ndW9uIGRvIHZlIGtoaWVuIG51b2MgbHUg dGFpIG1vdCBzbyBub2kgbGFpIGRhbmcgbGVuLg0KDQpUaGVvIFRydW5nIHRhbSBkdSBiYW8ga2hp IHR1b25nIHRodXkgdmFuIFRydW5nIHVvbmcgbHUgY2FjIHNvbmcgdHUgUXVhbmcgTmFtIGRlbiAN ClBodSBZZW4gdGllcCB0dWMgbGVuLCBjYWMgc29uZyBvIEtoYW5oIEhvYSBjbyBraGEgbmFuZyBs ZW4gbGFpOyBjYWMgc29uZyBvIE5pbmggVGh1YW4gDQp0aWVwIHR1YyB4dW9uZyBjaGFtLiANCg0K UGh1IFllbjogTXVhIGx1IGxhbSAyIG5ndW9pIGNoZXQsIDIgbmd1b2kgbWF0IHRpY2gNCg0KVHJ1 YSBuYXksIEJhbiBjaGkgaHV5IHBob25nIGNob25nIGx1dCBiYW8gdmEgdGltIGtpZW0gY3V1IG5h biB0aW5oIFBodSBZZW4gY2hvIGJpZXQsIA0KbXVhIGx1IHRyZW4gZGlhIGJhbiBQaHUgWWVuIGRh IGxhbSAyIG5ndW9pIGNoZXQsIDIgbmd1b2kgbWF0IHRpY2guDQoNCkhhaSBuZ3VvaSBiaSBjaGV0 IGxhIG9uZyBQaGFtIERpbmggQ3UgKG8gdGhvbiBIYW8gU29uLCB4YSBIb2EgWHVhbiBOYW0sIEgu RG9uZyANCkhvYSkgYmkgbGF0IHh1b25nIHNhbmcgMzAuMTAgdGFpIGRhcCBIYW4gKHRob24gSGFv IFNvbikgdmEgb25nIERhbmcgSG9uZyBLeSAoNTAgdHVvaSwgDQpvIHRob24gQ2FvIExhbmgsIHhh IFh1YW4gTGFuaCwgSC5Eb25nIFh1YW4pIGJpIG51b2MgbHUgY3VvbiB0cm9pIGtoaSBxdWEgY2F1 IHRyYW4gU29pIA0KRGF1IGx1YyB0b2kgMS4xMS4NCg0KSGFpIG5ndW9pIG1hdCB0aWNoIGxhIGNo aSBEYW5nIFRoaSBNYWkgKDI0IHR1b2ksIGNvbiBnYWkgb25nIEt5KSBiaSBsdSBjdW9uIHRyb2kg dGFpIGNhdSANCnRyYW4gU29pIERhdSBraGkgZG9uIG9uZyBLeSB0dSBCaW5oIERpbmggdmU7IGVt IExlIFRoaSBUaGFuaCBUaHVvbmcgKDEzIHR1b2kpIGhvYyANCnNpbmggdHJ1b25nIFRIQ1MgVGF5 IFNvbiwgeGEgSG9hIE15IFRheSwgSC5UYXkgSG9hIGJpIG51b2MgbHUgY3VvbiB0cm9pIGtoaSBl bSBkYXQgDQp4ZSBkaSBxdWEgY2F1IHRyYW4gUXVhbmcgTXkgKHhhIEhvYSBNeSBUYXkpIGNoaWV1 IDEuMTEuIEx1YyBsdW9uZyBjdXUgaG8gZGFuZyB0aWVwIA0KdHVjIHRpY2ggY3VjIHRpbSBraWVt IDIgbmd1b2kgbmF5Lg0KDQooQW5oOiBOdW9jIGx1IG8gYXQgZG8gdmUgbmhhbiBjaGltIG5oYSBk YW4pDQooQW5oOiBOdW9jIGx1IGxhbSBuZ2FwIHRydW9uZyBob2MuLi4pDQoNCk9uZyBOZ3V5ZW4g VHJvbmcgSHVuZyAtIFBobyBwaG9uZyBOTi1QVE5UIGh1eWVuIFR1eSBBbiBjaG8gYmlldCwgZGVu IDExIGdpbyB0cnVhIA0KbmF5LCBjYWMgdnVuZyBvIEguVHV5IEFuIGRhIGJpIG51b2MgbHUgY2hp YSBjYXQgaG9hbiB0b2FuLCBkdXkgbmhhdCBjaGkgY29uIHR1eWVuIFFMMUEgDQpxdWEgZGlhIGJh biBodXllbiBsYSBnaWFvIHRob25nIGJpbmggdGh1b25nLiBOdW9jIGx1IGRhIGtoaWVuIGNhdSBD YXkgQ2FtIGRpIGNhYyB4YSANCkFuIE5naGllcCwgQW4gWHVhbiwgQW4gTGluaCBuZ2FwIHNhdSB0 dSAxLTEsNW0gbmVuIGRhIGNoaWEgY2F0LCBjbyBsYXAgaG9hbiAzIHhhIG5heS4NCg0KRG9hbiBk dW9uZyBEVDY0MSB0dSBILlR1eSBBbiBkaSBILkRvbmcgWHVhbiBxdWEgeGEgQW4gRGluaCBkYSBu Z2FwIHNhdSBob24gMSw1bSANCm5lbiBkYSBjaGlhIGNhdCBob2FuIHRvYW4gSC5Eb25nIFh1YW4u IFZpZWMgZGkgbGFpIHRyZW4gdHV5ZW4gbmF5IGNoaSBjb24gdHJvbmcgY2hvIGR1eSANCm5oYXQg YmFuZyBkdW9uZyBzYXQuDQoNCkJhbiBjaGkgaHV5IHBob25nIGNob25nIGx1dCBiYW8gdmEgdGlt IGtpZW0gY3V1IG5hbiBILkRvbmcgWHVhbiBjaG8gYmlldCwgdG9hbiBibyANCmNhYyB0dXllbiBk dW9uZyBsaWVuIHhhIGRhIGJpIG5nYXAgc2F1IHRyb25nIG51b2MgbHUuIENhYyB4YSBkYSBiaSBj aGlhIGNhdCwgY28gbGFwIGhvYW4gDQp0b2FuLiBIaWVuIGx1YyBsdW9uZyBjdXUgaG8gY3VhIGh1 eWVuIGRhbmcga2hhbiB0cnVvbmcgdW5nIGN1dSwgZGkgZG9pIGRhbiBkZW4gbm9pIGFuIHRvYW4u DQoNCihBbmg6IFRyYW0geSB0ZSB4YSBBbiBEaW5oIGN1bmcgYmkgbmdhcCBzYXUgaG9uIDJtIG5l biBwaGFpIGRvbmcgY3VhKQ0KKEFuaDogVHJ1IHNvIFVCTkQgeGEgQW4gRGluaCBuZ2FwIGdhbiBo ZXQgdGFuZyAxKQ0KDQpPbmcgTmd1eWVuIFRyb25nIEh1bmcgY2hvIGJpZXQgdGhlbSB0cm9uZyBk ZW0gcXVhLCB0cmlldSBjdW9uZyBkYSBsYW0gc2F0IGxvIDIzMG0sIA0KeGFtIHRodWMgc2F1IDIw bSB0YWkgY3VhIGJpZW4gTGUgVGhpbmgsIHhhIEFuIE5pbmggRG9uZywgSC5UdXkgSG9hLiBEb3Qg dHJpZXUgY3VvbmcgDQpuYXkgZGEgdXkgaGllcCAxMiBjYW4gbmhhLCBhbmggaHVvbmcgNjAgY2Fu IG5oYSBjdWEgbmd1b2kgZGFuIHNvbmcgZ2FuIGN1YSBiaWVuIExlIFRoaW5oLg0KDQpDaGluaCBx dXllbiB4YSBkYSBkaSBkb2kgMyBobyB2YSB0aWVwIHR1YyB2YW4gZG9uZyBkaSBkb2kgOSBobyBj b24gbGFpIGRlbiBub2kgYW4gdG9hbi4NCg0KU2FuZyBuYXksIEJhbiBjaGkgaHV5IFBDTEIgdmEg VEtDTiB0aW5oIFBodSBZZW4gY2hvIGJpZXQsIGRvIG11YyBudW9jIGhvIHRodXkgZGllbiANCnNv bmcgQmEgSGEgbGVuIGNhbywgNyBnaW8gbmdheSAyLjExLCB0aHV5IGRpZW4gU29uZyBCYSBIYSBk YSB4YSBsdSB2b2kgbHV1IGx1b25nIDIuNTAwIA0KbTMvcyB2YSBkdSBraWVuIDEyIGdpbyB0b2ks IGx1dSBsdW9uZyB4YSBzZSBkdW9jIHRhbmcgZGFuIGxlbiB0aGFuaCA0LjAwMCAtNS4wMDAgbTMv cy4NCg0KRHUgYmFvIHR1IDEyIC0gMjQgZ2lvIHRvaSwgbnVvYyBjYWMgc29uZyBvIFBodSBZZW4g dGllcCB0dWMgZGFuZyBsZW4gYmFvIGRvbmcgY2FwIDIsIGNhcCANCjMsIHJpZW5nIHNvbmcgS3kg TG8gdnVvdCBiYW8gZG9uZyBjYXAgMy4gDQoNClRydW9jIGRvLCB0b2kgMS4xMSwgaG8gdGh1eSBk aWVuIFNvbmcgSGluaCBkYSB4YSBsdSB2b2kgbHV1IGx1b25nIDEuMDAwIG0zL3MuIFRpZXAgZGVu LCANCmhvIHRodXkgZGllbiBLcm9uZyBIkm5hbmcgY3VuZyBkYSB4YSBsdSB2b2kgbHV1IGx1b25n IDcyOSBtMy9zIHZhIHRhbmcgZGFuIGxlbiAxLjI5MiANCm0zL3MuDQoNClRyb25nIGtoaSBkbywg dGhlbyBCbyBjaGkgaHV5IEJvIGRvaSBCaWVuIHBob25nIHRpbmggUGh1IFllbiwgaGllbiB2YW4g Y29uIDIwIHRhdSBjYSANCnZvaSA3OCBsYW8gZG9uZyBkYW5nIGhvYXQgZG9uZyB2YSBuZW8gZGF1 IG8ga2h1IHZ1YyB2dW5nIGJpZW4gbmdvYWkgdGluaCBQaHUgWWVuLCANCnRyb25nIGRvIGNvIDIg cGh1b25nIHRpZW4gdm9pIDE5IGxhbyBkb25nIGRhbmcgZGFuaCBiYXQgeGEgYm8uIENhYyBwaHVv bmcgdGllbiBuYXkgdmFuIA0KZGFuZyB0cm9uZyB0YW0ga2llbSBzb2F0IGxpZW4gbGFjLiANCg0K Q29uIHRhaSB4YSBBbiBIYWksIGh1eWVuIFR1eSBBbiwgZGEgY28gMiB0YXUgY2EgY3VhIG5ndSBk YW4gYmkgc29uZyBsb24gZGFuaCB2by4gKER1YyBIdXkgLSBILkxlKQ0KDQpCaW5oIERpbmg6IEx1 IGRhdSBuZ3VvbiBhcCB2ZSwgbmhpZXUgZGlhIHBodW9uZyBiaSBjbyBsYXAgIA0KDQpUcm9uZyAy IG5nYXkgcXVhLCB0YWkgdGluaCBCaW5oIERpbmggY28gbXVhIGxvbiwgbyBtdWMgdHUgNzUgLSAx ODFtbS4NCg0KU2FuZyBuYXkgMi4xMSwgbXVjIG51b2Mgc29uZyBDb24gdGFpIFRoYW5oIEhvYSwg aHV5ZW4gQW4gTmhvbiBkYSBkYW5nIGxlbiB0cmVuIGJhbyANCmRvbmcgMi4gVHV5ZW4gZHVvbmcg RFQ2NDAgdHUgdGhpIHRyYW4gVHV5IFBodW9jIChodXllbiBUdXkgUGh1b2MpIGRlbiBjYWMgeGEg a2h1IA0KZG9uZyBjbyBuaGlldSBkb2FuIGJpIG5nYXAgc2F1IHRyb25nIG51b2MuDQoNCihBbmg6 IFRpbmggbG8gNjQwIGJpIG5nYXAgbnVvYyBvIG5oaWV1IGRvYW4gLSBBbmg6IE5naGUgQmluaCkN Cg0KTmhpZXUgdGhvbiBsYW5nIG8gY2FjIHhhIFBodW9jIEhvYSwgUGh1b2MgTmdoaWEsIFBodW9j IFRodWFuLCBQaHVvYyBTb24gKEguVHV5IA0KUGh1b2MpOyBDYXQgVGllbiwgQ2F0IENoYW5oLCBD YXQgVGhhbmcgKEguUGh1IENhdCk7IGNhYyBwaHVvbmcgTmhvbiBQaHUsIE5ob24gQmluaCANCihU UCBRdXkgTmhvbikgYmkgY2hpYSBjYXQga2hpZW4gbmd1b2kgZGFuIHBoYWkgZHVuZyBzb25nICh0 aHV5ZW4gdG9uIG5obykgZGUgZGkgbGFpLg0KDQooQW5oOiBOZ3VvaSBkYW4gZHVuZyBkbyBkZSBk aSBjaHV5ZW4gcXVhIGJvIHRyYW4gc29uZyBUcmFuaCB0dSB4YSBQaHVvYyBIaWVwIHZlIHhhIA0K UGh1b2MgTmdoaWEsIGh1eWVuIFR1eSBQaHVvYyAtIEFuaDogUS5Mb25nKQ0KDQpCYW4gcGhvbmcg Y2hvbmcgbHV0IGJhbyBjdWEgY2FjIHhhLCBwaHVvbmcgbmV1IHRyZW4gZGEgY3UgbHVjIGx1b25n IHh1bmcga2ljaCB1bmcgdHJ1YyANCnRhaSBjYWMgZGllbSB4dW5nIHlldSBsYW0gY29uZyB0YWMg aG8gZGUgdmEgc2FuIHNhbmcgZGkgZG9pIGRhbiBkZW4gbm9pIGFuIHRvYW47IGRvbmcgDQp0aG9p IGh1b25nIGRhbiBuZ3VvaSB2YSBjYWMgcGh1b25nIHRpZW4gZ2lhbyB0aG9uZyBkaSBsYWkgYW4g dG9hbiB0cmVuIDIgdHV5ZW4gdGluaCBsbyA2NDAgDQp2YSA2MzZCLg0KDQooQW5oOiBDYWMgeGEg ZG9uZyBuYW0gaHV5ZW4gUGh1IENhdCB2YSBUdXkgUGh1b2MgY2hpbSB0cm9uZyBsdSAtIEFuaDog WHVhbiBUaHVjKSANCg0KVGhlbyBkdSBiYW8gY3VhIFRydW5nIHRhbSBkdSBiYW8ga2hpIHR1b25n IHRodXkgdmFuIEJpbmggRGluaCwgdHJvbmcgZGVtIDIuMTEsIHRyZW4gDQpkaWEgYmFuIEJpbmgg RGluaCBzZSBjbyBtdWEgdG8gZGVuIHJhdCB0bywgbXVjIG51b2MgY2FjIGNvbiBzb25nIGxvbiBk YW5nIGxlbiBiYW8gZG9uZyANCjIsIDMsIGNvIG5vaSB0cmVuIGJhbyBkb25nIDMuIChOZ2hlIEJp bmggLSBYdWFuIFRodWMgLSBRLkxvbmcpDQoNClNhbiBiYXkgQ2FtIFJhbmggYmkgY2hpYSBjYXQN Cg0KUmFuZyBzYW5nIG5heSAyLjExLCBuaGlldSBkb2FuIHRyZW4gZGFpIGxvIE5ndXllbiBUYXQg VGhhbmgsIHR1eWVuIGR1b25nIGR1eSBuaGF0IHR1IA0KVFAgTmhhIFRyYW5nIGRlbiBzYW4gYmF5 IENhbSBSYW5oIGJpIGRhdCBkYSB0dSB0cmVuIGRlbyBDdSBIaW5oIChLaGFuaCBIb2EpIHJvaSAN Cnh1b25nLCBjaGUgbGFwIG1hdCBkdW9uZywgZ2F5IHRhYyBuZ2hlbiBnaWFvIHRob25nIG5naGll bSB0cm9uZy4gDQoNCkRhdCBkYSBkYSBwaGEgdm8gaGFuZyB0cmFtIG1ldCBiZS10b25nIChjb24g bHVvbiBuZ2FuIGNhY2ggZHVvbmcgaGFpIGNoaWV1IGN1YSBkYWkgbG8gDQpOZ3V5ZW4gVGF0IFRo YW5oKSwgY2hlIHBodSBtYXQgZHVvbmcgdGFpIEttIDEyKzEwMCwgS20gMTMgdmEgS20gMTcsIGto aWVuIGdpYW8gDQp0aG9uZyBraHUgdnVjIG5heSBiaSBuZ3VuZyB0cmUuDQoNCkRvIGdpYW8gdGhv bmcgYmkgY2hpYSBjYXQsIG5lbiBzYW4gYmF5IENhbSBSYW5oIGRhIGh1eSA4IGNodXllbiBiYXkg ZGkgSGEgTm9pLCANClRQLkhDTSB2YSBEYSBOYW5nIHRyb25nIG5nYXkgaG9tIG5heS4NCg0KTW90 IHNvIGhpbmggYW5oIHRhaSBoaWVuIHRydW9uZyBtYSBQViBUaGFuaCBOaWVuIE9ubGluZSB2dWEg Z2hpIG5oYW4gKFRoaWVuIE5oYW4pDQoNCihBbmg6IERhaSBsbyBOZ3V5ZW4gVGF0IFRoYW5oIGJp IGRhdCBkYSBjaGUgbGFwKQ0KKEFuaDogTW90IHZhaSBjb25nIG5oYW4gZGFuZyB0aHUgZG9uIGhp ZW4gdHJ1b25nKQ0KDQpUaGVvIFRydW5nIHRhbSBkdSBiYW8ga2hpIHR1b25nIHRodXkgdmFuIFRy dW5nIHVvbmcsIHNhbmcgbmF5IDIuMTEsIGtob25nIGtoaSBsYW5oIGRhIA0KdGllbiBzYXQgZGVu IGNhYyB0aW5oIGJpZW4gZ2lvaSBwaGlhIGJhYy4NCg0KRHUgYmFvIG5nYXkgaG9tIG5heSBibyBw aGFuIGtob25nIGtoaSBsYW5oIG5heSBzZSBhbmggaHVvbmcgZGVuIGNhYyB0aW5oIHRodW9jIEJh YyANCmJvIHZhIGJhYyBUcnVuZyBibzsgY2hpZXUgdG9pIHZhIGRlbSBuYXkgc2UgYW5oIGh1b25n IGRlbiBjYWMgdGluaCB0aHVvYyBUcnVuZyB2YSBOYW0gDQpUcnVuZyBiby4NCg0KRG8gYW5oIGh1 b25nIGN1YSBraG9uZyBraGkgbGFuaCB0YW5nIGN1b25nLCBvIEJhYyBibyB2YSBCYWMgVHJ1bmcg Ym8gY28gbXVhIHZhaSBub2ksIA0KZ2lvIGRvbmcgYmFjIHRyb25nIGRhdCBsaWVuIGxhaSBtYW5o IGxlbiBjYXAgMywgdnVuZyB2ZW4gYmllbiBjYXAgNCAtIDU7IG8gdmluaCBCYWMgYm8gY28gDQpn aW8gZG9uZyBiYWMgbWFuaCBjYXAgNiwgY28gbHVjIGNhcCA3LCBnaWF0IGNhcCA4IC0gOSwgYmll biBkb25nIG1hbmguIFZ1bmcgYmllbiBuZ29haSANCmtob2kgVHJ1bmcgYm8gdmEgTmFtIGJvLCBr aHUgdnVjIEJhYyB2YSBnaXVhIGJpZW4gRG9uZyBjbyBnaW8gbWFuaCBjYXAgNywgY28gbHVjIGNh cCANCjgsIGdpYXQgY2FwIDkgLSAxMCB2YSBjbyBtdWEgZG9uZyBtYW5oLCBiaWVuIGRvbmcgcmF0 IG1hbmguDQoNCk5nb2FpIHJhIGRvIGFuaCBodW9uZyBjdWEga2hvbmcga2hpIGxhbmgga2V0IGhv cCB2b2kgbmhpZXUgZG9uZyB0cm9uZyBkb2kgZ2lvIGRvbmcgdHJlbiANCmNhbyBuZW4gbyBjYWMg dGluaCB0dSBEYSBOYW5nIGRlbiBLaGFuaCBIb2EgY28gbXVhIHZ1YSwgbXVhIHRvIGRlbiByYXQg dG87IG8gVGF5IA0KTmd1eWVuIGNvIG11YSB2dWEsIG11YSB0bywgY28gbm9pIG11YSByYXQgdG87 IGNhYyB0aW5oIHR1IFF1YW5nIEJpbmggZGVuIFRodWEgVGhpZW4gliANCkh1ZSB0dSBjaGlldSB2 YSB0b2kgbmF5IGNvIG11YSB2dWEsIG11YSB0bywgY28gbm9pIG11YSByYXQgdG8gdmEgcmFpIHJh YyBjbyBkb25nLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDQ1LzIwMTAxMTAzMDkzNjE5LmFzcHggKEhpZW4gQ3UpIDAzLzExLzIwMTAgOTozNiANCg0KRHVu ZyBtYXkgYmF5IHRpZXAgdGUgY2hvIGRvbmcgYmFvIHZ1bmcgbHUgDQoNCiogQ3V1IG5hbiA3IG5n dSBkYW4gDQoqIE5pbmggVGh1YW46IFVvYyB0b25nIHRoaWV0IGhhaSBob24gMjAwIHRpIGRvbmcg DQoNCihUTk8pIEJhbyBjYW8gbmhhbmggY3VhIEJhbiBjaGkgZGFvIFBob25nIGNob25nIGx1dCBi YW8gVC5VIHNhbmcgbmF5IDMuMTEgY2hvIGJpZXQsIA0KbXVhIGx1IHRhaSBjYWMgdGluaCBOYW0g VHJ1bmcgQm8gZGEgbGFtIDggbmd1b2kgY2hldCwgNiBuZ3VvaSBtYXQgdGljaC4gDQoNClRyb25n IGRvLCBLaGFuaCBIb2EgY28gNSBuZ3VvaSBjaGV0LCBQaHUgWWVuIGNvIDMgbmd1b2kgY2hldC4g TXVhIGx1IGN1bmcgbGFtIHNhcCBkbyANCjYyMiBjYW4gbmhhLCA2LjEwMCBjYW4gbmhhIGtoYWMg YmkgbmdhcCBuYW5nOyAxNy44OTEgaGEgbHVhLCBob2EgbWF1LCBjYXkgYW4gcXVhIGJpIA0Kbmdh cCB2YSBodSBoYWkuLi4NCg0KKEFuaDogQ2FjIHhhIGRvbmcgbmFtIGh1eWVuIFBodSBDYXQgdmEg VHV5IFBodW9jIGNoaW0gdHJvbmcgbHUgLSBBbmg6IFh1YW4gVGh1YykgIA0KDQpUcm9uZyBraGkg ZG8sIFRydW5nIHRhbSBEdSBiYW8ga2hpIHR1b25nIHRodXkgdmFuIFQuVSB0aWVwIHR1YyBjYW5o IGJhbyB2ZSBtb3QgZG90IA0KbXVhLCBsdSBsb24gY28ga2hhIG5hbmcgeGF5IHJhIHRyZW4gZGll biByb25nLiANCg0KVGhlbyBkbywgY2hpdSBhbmggaHVvbmcgbXVhIGN1YSBraG9uZyBraGkgbGFu aCB0YW5nIGN1b25nIGtldCBob3Agdm9pIG5oaWV1IGRvbmcgDQp0cm9uZyBkb2kgZ2lvIGRvbmcg dHJlbiBjYW8sIG5nYXkgdmEgZGVtIG5heSAzLjExLCBsdSBjYWMgc29uZyB0dSBRdWFuZyBOYW0g ZGVuIEtoYW5oIA0KSG9hIHZhIEdpYSBMYWkgc2UgbGVuIGxhaTsgY2FjIHNvbmcgdHUgUXVhbmcg VHJpIGRlbiBUaHVhIFRoaWVuIC0gSHVlIHZhIEtvbiBUdW0sIERhayANCkxhayBzZSBsZW4uIERv dCBsdSBuYXkgY28gdGhlIGtlbyBkYWkgMiAtIDMgbmdheS4gDQoNClRyZW4gY2FjIHNvbmcgdHUg VGh1YSBUaGllbiAtIEh1ZSBkZW4gUGh1IFllbiBjbyBraGEgbmFuZyB4dWF0IGhpZW4gbW90IGRv dCBsdSBsb24sIA0KZGluaCBsdSBjbyB0aGUgbGVuIG11YyBiYW8gZG9uZyAyIC0gMywgbmhpZXUg bm9pIGxlbiB0cmVuIG11YyBiYW8gZG9uZyAzLiANCg0KTHUgdHJlbiBjYWMgc29uZyBvIFF1YW5n IFRyaSwgS2hhbmggSG9hLCBHaWEgTGFpLCBLb24gVHVtIHZhIERhayBMYWsgbGVuIG11YyBiYW8g DQpkb25nIDEgLSAyLCBjbyBub2kgdHJlbiBtdWMgYmFvIGRvbmcgMi4gDQoNCk5ndW9pIGRhbiB2 YSBjYWMgY2FwIGNoaW5oIHF1eWVuIGNhYyB0aW5oIHRyZW4gY2FuIGNodSBkb25nIGRlIHBob25n IGx1IHF1ZXQsIHNhdCBsbyBkYXQgDQpvIHZ1bmcgbnVpLCB2ZW4gc29uZyB2YSBuZ2FwIGx1dCBz YXUgbyB2dW5nIHRydW5nLCBkb25nIGJhbmcgaGEgbHV1IGNhYyBzb25nLCBzdW9pLg0KDQoqIFNh bmcgbmF5IDMuMTEsIHRyZW4gdnVuZyBiaWVuIHBoaWEgYmFjIHF1YW4gZGFvIFRydW9uZyBTYSBo aW5oIHRoYW5oIG1vdCB2dW5nIGFwIHRoYXAuIA0KDQpUcnVuZyB0YW0gRHUgYmFvIGtoaSB0dW9u ZyB0aHV5IHZhbiBULlUgY2hvIGJpZXQsIHNhbmcgY3VuZyBuZ2F5LCB2aSB0cmkgdHJ1bmcgdGFt IA0KdnVuZyBhcCB0aGFwIG8gdmFvIGtob2FuZyAxMiAgLSAxNCBkbyB2aSBiYWM7IDExMSAtIDEx MyBkbyBraW5oIGRvbmcsIHRyZW4ga2h1IHZ1YyANCmJpZW4gbmdvYWkga2hvaSBjYWMgdGluaCBR dWFuZyBOYW0gLSBLaGFuaCBIb2EuIA0KDQpEdSBiYW8sIHRyb25nIDI0IGdpbyB0b2ksIHZ1bmcg YXAgdGhhcCBuYXkgZGkgY2h1eWVuIGNoYW0gdGhlbyBodW9uZyB0YXkuIERvIGFuaCANCmh1b25n IGN1YSBob2FuIGx1dSB2dW5nIGFwIHRoYXAga2V0IGhvcCB2b2kgZG9pIGdpbyBkb25nIGJhYyBt YW5oIHZhIG5oaWV1IGRvbmcgdHJvbmcgDQpkb2kgZ2lvIGRvbmcgdHJlbiBjYW8sIG8ga2h1IHZ1 YyBiYWMgdmEgZ2l1YSBiaWVuIERvbmcgKGJhbyBnb20gY2EgdnVuZyBiaWVuIHF1YW4gZGFvIA0K SG9hbmcgU2EpLCB2dW5nIGJpZW4gbmdvYWkga2hvaSBjYWMgdGluaCB0dSBRdWFuZyBUcmkgZGVu IEtoYW5oIEhvYSBjbyBnaW8gbWFuaCBjYXAgDQo3LCBjbyBsdWMgY2FwIDgsIGdpYXQgY2FwIDkg LSAxMCB2YSBjbyBtdWEgZG9uZyBtYW5oLiANCg0KQmllbiBkb25nIHJhdCBtYW5oLiBUcm9uZyBj b24gZG9uZyBjYW4gZGUgcGhvbmcgY28gbG9jIHhvYXkgdmEgZ2lvIGdpYXQgbWFuaC4gVHJlbiAN CmRhdCBsaWVuLCBjYWMgdGluaCB0dSBUaHVhIFRoaWVuIC0gSHVlIGRlbiBLaGFuaCBIb2EgdmEg YmFjIFRheSBOZ3V5ZW4gY28gbXVhIHZ1YSwgDQptdWEgdG8gZGVuIHJhdCB0by4gDQoNClRydW9j IGRpZW4gYmllbiB4YXUgY3VhIHRob2kgdGlldCwgQmFuIENoaSBkYW8gUENMQiBULlUgZGEgY28g dmFuIGJhbiB5ZXUgY2F1IGNhYyBibyANCm5nYW5oIGxpZW4gcXVhbiB2YSBjYWMgdGluaCB0dSBR dWFuZyBUcmkgZGVuIEtoYW5oIEhvYSB2YSBiYWMgVGF5IE5ndXllbiB0aWVwIHR1YyANCnRyaWVu IGtoYWkgY2FjIGhvYXQgZG9uZyB1bmcgcGhvIHZvaSBtdWEgbHUsIGtoYWMgcGh1YyBoYXUgcXVh IHRoaWVuIHRhaTsgZG9uZyB0aG9pIA0KdGhvbmcgYmFvIGNobyBjaHUgY2FjIHBodW9uZyB0aWVu IGNvIHRhdSB0aHV5ZW4gZGFuZyBob2F0IGRvbmcgdHJlbiBiaWVuIGJpZXQgZGUgY2h1IA0KZG9u ZyBwaG9uZyB0cmFuaCwga2llbSBkZW0gY2FjIHRhdSB0aHV5ZW4gY29uIGRhbmcgaG9hdCBkb25n IHRyZW4gY2FjIG5ndSB0cnVvbmcgZGUgDQpnaXUgbGllbiBsYWMga2lwIHRob2ksIGRvaSBwaG8g dm9pIGNhYyB0aW5oIGh1b25nIHhhdSBjbyB0aGUgeGF5IHJhLiANCg0KQmFuIENoaSBkYW8gUENM QiBULlUgY3VuZyB5ZXUgY2F1IGNhYyB0aW5oIG5ldSB0cmVuIGR1eSB0cmkgbHVjIGx1b25nLCBw aHVvbmcgdGllbiANCmN1dSBobywgY3V1IG5hbiBkZSBzYW4gc2FuZyB1bmcgY3V1IGtoaSBjbyB5 ZXUgY2F1LiAoUXVhbmcgRHVhbikgDQoNCk5pbmggVGh1YW46IFVvYyB0b25nIHRoaWV0IGhhaSBo b24gMjAwIHRpIGRvbmcNCg0KVG9pIDIuMTEsIFBobyB0aHUgdHVvbmcgSG9hbmcgVHJ1bmcgSGFp LCBCbyB0cnVvbmcgQm8gTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBub25nIA0KdGhvbiBDYW8g RHVjIFBoYXQgY3VuZyBkb2FuIGNvbmcgdGFjIGRhIGRlbiBOaW5oIFRodWFuIGNoaSBkYW8gY29u ZyB0YWMgcGhvbmcgY2hvbmcgDQp2YSBraGFjIHBodWMgaGF1IHF1YSBsdSBsdXQgdGFpIGRpYSBw aHVvbmcgKGFuaCkuIA0KDQooQW5oOiBMYW5oIGRhbyB0aW5oIE5pbmggVGh1YW4gZGEgYmFvIGNh byB2b2kgZG9hbiBjb25nIHRhYyB0aW5oIGhpbmggbHUgbHV0IHZhIG5odW5nIA0KdGhpZXQgaGFp IGJhbiBkYXUuICkgDQoNClRoZW8gZG8sIHRvYW4gdGluaCBjbyA0IG5ndW9pIGJpIGx1IGN1b24g bWF0IHRpY2g7IGhvbiA1LjAwMCBjYW4gbmhhIGJpIG5nYXAgdmEgc2FwOyANCjExLjg5N2hhIGNh eSB0cm9uZyBiaSBuZ2FwIGx1dDsgaHUgaGFpIGdhbiA2MGhhIGRpYSB0b207IDEyIGNoaWVjIGdo ZSBjdWEgbmd1IGRhbiBiaSANCmNoaW07IG5oaWV1IGNvbmcgdHJpbmggZ2lhbyB0aG9uZywgdGh1 eSBsb2kgYmkgc2F0IGxvLi4uIFVvYyB0b25nIHRoaWV0IGhhaSBraG9hbmcgMjAwIHRpIA0KZG9u Zy4gTHVjIGx1b25nIGN1dSBobyBkYSBraXAgdGhvaSBjYXAgcGhhdCBtaSBnb2kgdmEgbnVvYyB1 b25nIGNobyBiYSBjb24gdnVuZyBsdSBvIA0KY2FjIGh1eWVuIE5pbmggUGh1b2MsIE5pbmggSGFp LCBUUCBQaGFuIFJhbmcgLSBUaGFwIENoYW0uLi4gDQoNClRhaSBidW9pIGxhbSB2aWVjLCBQaG8g dGh1IHR1b25nIEhvYW5nIFRydW5nIEhhaSBkZSBuZ2hpIEJvIFF1b2MgcGhvbmcgcGhvaSBob3Ag dm9pIA0KZGlhIHBodW9uZyBuZ2F5IHNhbmcgc29tIG5heSAzLjExIGR1bmcgbWF5IGJheSB0cnVj IHRoYW5nIHRpZXAgdGUgbHVvbmcgdGh1YywgZG8gZHVuZyANCnRoaWV0IHlldSBjaG8gMzIgbmd1 b2kgZGFuIG8ga2h1IHZ1YyBjdSBsYW8gdGh1b2MgdGhvbiBQaHUgVGhvLCBwaHVvbmcgRG9uZyBI YWkgKFRQIA0KUGhhbiBSYW5nIC0gVGhhcCBDaGFtKSB2YSB0aG9uIEhvYSBUaGFuaCwgeGEgQW4g SGFpIChILk5pbmggUGh1b2MpIGRhbmcgYmkgbWFjIA0Ka2V0IGRvIGx1LiANCg0KUGhvIHRodSB0 dW9uZyBsdXUgeSBkaWEgcGh1b25nIGNoYW0gbG8gY2hvIGNhYyBobyBkYW4gbyB2dW5nIGx1LCB0 dXlldCBkb2kga2hvbmcgZHVvYyANCmRlIGNobyBuZ3VvaSBkYW4gbmFvIGJpIGRvaSwgcmV0LiBQ aG8gdGh1IHR1b25nIGN1bmcgY2hpIGRhbyBjYWMgYm8gbGllbiBxdWFuIHBob2kgaG9wIA0Kdm9p IHRpbmggTmluaCBUaHVhbiBraGFjIHBodWMgaGF1IHF1YSB0aGllbiB0YWksIG5odSBwaG9uZyBj aG9uZyBkaWNoIGJlbmgsIHN1YSBjaHVhIA0KZHVvbmcgc2EsIGdpdXAgZGFuIHBodWMgaG9pIHNh biB4dWF0OyB0b25nIGhvcCBtdWMgZG8gdGhpZXQgaGFpIGRlIGRlIG5naGkgVGh1IHR1b25nIA0K Q2hpbmggcGh1IGhvIHRybyBjaG8gZGlhIHBodW9uZy4gKEhvYWkgQmFjIC0gTWFpIFRvKQ0KDQpQ aHUgWWVuOiAzIG5ndW9pIGNoZXQsIDIgbmd1b2kgbWF0IHRpY2ggZG8gbHUgIA0KDQpTYW5nIDMu MTEsIEJhbiBjaGkgaHV5IFBob25nIGNob25nIGx1dCBiYW8gLSBUaW0ga2llbSBjdXUgbmFuIChQ Q0xCLVRLQ04pIHRpbmggDQpQaHUgWWVuIGNobyBiaWV0OiBsdWMgNSBnaW8gY3VuZyBuZ2F5LCBh bmggVHJhbiBWYW4gRHVvbmcgKDIxIHR1b2ksIHRydSB0aG9uIFBodSBOb25nLCANCnhhIEhvYSBC aW5oIDEsIEguVGF5IEhvYSwgUGh1IFllbikgZGEgYmkgbnVvYyBsdSBjdW9uIHRyb2kgdHJvbmcg a2hpIGRhbmcgbG9pIHRyZW4gDQpkdW9uZyBnYW4gbmhhLiANCg0KVHJ1b2MgZG8sIGVtIExlIFRo aSBUaGFuaCBIdW9uZyAoMTMgdHVvaSwgaG9jIGxvcCA4IHRydW9uZyBUSENTIFRheSBTb24sIHhh IEhvYSANCk15IFRheSwgSC5UYXkgSG9hKSBiaSBudW9jIGx1IGN1b24gdHJvaSBjaGlldSAxLjEx IGRhIGR1b2MgdGltIHRoYXkgeGFjIHZhbyBjaGlldSANCjIuMTEuIA0KDQpOaHUgdmF5LCBQaHUg WWVuIGhpZW4gZGEgY28gMyBuZ3VvaSBjaGV0IHZhIDIgbmd1b2kgbWF0IHRpY2ggdHJvbmcgZG90 IG11YSBsdSBkYW5nIGRpZW4gcmEuDQoNCihBbmg6IFRodXkgZGllbiBzb25nIEJhIEhhIChQaHUg WWVuKSBhbyBhdCB4YSBsdSAtIEFuaDogWHVhbiBIdXkpDQoNCkx1YyA5IGdpbyAzMCBjdW5nIG5n YXksIG9uZyBOZ3V5ZW4gVmFuIEdpYW5nLCBQaG8gY2h1IHRpY2ggVUJORCB4YSBIb2EgQmluaCAx LCANCmNobyBiaWV0OiBCYW4gQ2hpIGh1eSBQQ0xCLVRLQ04gaHV5ZW4gVGF5IEhvYSBkYSBkdWEg bHVjIGx1b25nIGN1dSBobyBkdW5nIGNhLW5vIGN1bmcgDQpkaWEgcGh1b25nIHRpbSBraWVtIG5o dW5nIHZhbiBjaHVhIHRpbSB0aGF5IHR1bmcgdGljaCBhbmggRHVvbmcuIA0KDQpUaGVvIG9uZyBH aWFuZywgbm9pIGFuaCBEdW9uZyBiaSBudW9jIGN1b24gbmFtIHRyb25nIHZ1bmcgYW5oIGh1b25n IGN1YSBoZSB0aG9uZyANCnRodXkgZGllbiB0cmVuIHNvbmcgQmE7IGhpZW4gdGFpLCBuaGlldSB0 aG9uIHRyb25nIHhhIEhvYSBCaW5oIDEgZGFuZyBiaSBudW9jIGx1IGNvIGxhcCwgDQpuZ3VvaSBk YW4gcGhhaSBkdW5nIGdoZSBkZSBsdXUgdGhvbmcuDQoNClRydW9jIGRvLCBvbmcgTmd1eWVuIEJh IExvYywgUGhvIGNodSB0aWNoIFVCTkQgdGluaCwgVHJ1b25nIEJhbiBDaGkgaHV5IFBDTEItDQpU S0NOIHRpbmggUGh1IFllbiwgY2hvIGJpZXQ6IFVCTkQgdGluaCBQaHUgWWVuIHNlIGtpZW4gbmdo aSBkZW4gVGFwIGRvYW4gRGllbiBsdWMgDQpWTiB2ZSB2aWVjIHhhIGx1IHRhaSBobyB0aHV5IGRp ZW4gc29uZyBCYSBIYS4NCg0KS2UgdHUgMTQgZ2lvIG5nYXkgMi4xMSwgaG8gdGh1eSBkaWVuIHNv bmcgQmEgSGEgZGEgeGEgbHUgdm9pIGx1dSBsdW9uZyA1LjcwMG0zL2dpYXkgdmEgDQpoaWVuIGNv IGtoYSBuYW5nIHNlIHhhIGx1IHZvaSBsdXUgbHVvbmcgZGF0IGRlbiBtdWMgNy4wMDBtMy9naWF5 LiAoSHVuZyBQaGllbiAtIFh1YW4gDQpIdXkpDQoNCkJpbmggRGluaDogTnVvYyBsdSB0aWVwIHR1 YyBkYW5nIGNhbyAgDQoNClR1IHRvaSBxdWEgZGVuIHNhbmcgbmF5ICgzLjExKSwgdGFpIEJpbmgg RGluaCB0aWVwIHR1YyBjbyBtdWEgdG8sIG51b2MgdHUgdGh1b25nIG5ndW9uIA0KZG8gdmUgZ2F5 IG5nYXAgdW5nIGN1YyBibyB0YWkgbW90IHNvIGRpYSBwaHVvbmcgdHJvbmcgdGluaC4gDQoNCk51 b2MgbHUgY2hpYSBjYXQgbmhpZXUgZG9hbiB0cmVuIHR1eWVuIHRpbmggbG8gRFQgNjQwIG5vaSB0 dSB0cnVuZyB0YW0gaHV5ZW4gbHkgVHV5IA0KUGh1b2MgdmUgY2FjIHhhIHBoaWEgZG9uZyBuaHUg UGh1b2MgVGh1YW4sIFBodW9jIFNvbiwgUGh1b2MgSG9hIHZhIFBodW9jIFRoYW5nIA0KKGh1eWVu IFR1eSBQaHVvYyksIENhdCBUaWVuLCBDYXQgQ2hhbmgsIENhdCBUaGFuZyAoaHV5ZW4gUGh1IENh dCkuDQoNCk5oaWV1IHR1eWVuIGR1b25nIGxpZW4gdGhvbiwgbGllbiB4YSBiaSBjaGltIHRyb25n IG51b2MsIGNvIG5vaSBuZ2FwIHNhdSB0dSAxIC0gMSw1bS4gDQpOZ3VvaSBkYW4gcGhhaSBkdW5n IHRodXllbiBuaG8gaG9hYyB4ZSBvIHRvIHRhaSBkZSB0cnVuZyBjaHV5ZW4gcXVhIGNhYyB2dW5n IGJpIG5nYXAgDQpzYXUuDQoNCk51b2MgbHUgbGFtIHR1eWVuIHhlIGJ1eXQgdHUgVFAgUXV5IE5o b24gZGkgaHV5ZW4gUGh1IENhdCBiaSB0ZSBsaWV0IGhvYW4gdG9hbi4NCg0KSGFuZyBuZ2FuIGNv bmcgbmhhbiBvIGNhYyB4YSBraHUgZG9uZyBodXllbiBUdXkgUGh1b2MgZGFuZyBsYW0gdmllYyB0 YWkgS2h1IGNvbmcgDQpuZ2hpZXAgUGh1IFRhaSAoVFAgUXV5IE5ob24pIGtob25nIHRoZSBkZW4g Y28gcXVhbiB2YSBnYW4gMzAuMDAwIGhvYyBzaW5oIGNhYyBjYXAgDQp0cmVuIGRpYSBiYW4gaHV5 ZW4gVHV5IFBodW9jIHBoYWkgbmdoaSBob2MgdHJvbmcgc2FuZyBuYXkgMy4xMS4gKFEuTG9uZykN Cg0KKEFuaDogVHJ1b25nIFRIQ1MgUGh1b2MgVGhhbmcgKFR1eSBQaHVvYykgc2FuZyAzLjExIG5n YXAgdHJvbmcgbHUsIGhvYyBzaW5oIHBoYWkgDQpuZ2hpIGhvYyAtIEFuaDogWHVhbiBUaHVjDQoo QW5oOiBYZSBtYXkgZHVvYyB4ZSB0YWkgY2h1eWVuIHF1YSBuaHVuZyBkb2FuIGJpIG5nYXAgc2F1 IC0gQW5oOiBYdWFuIFRodWMpDQoNCkN1dSBuYW4gdGhhbmggY29uZyB0YXUgY2EgdmEgNyBuZ3Ug ZGFuICANCg0KVG9pIDIuMTEsIHRhdSBjdWEgSGFpIGRvaSAyIChCbyBDaGkgaHV5IEJvIGRvaSBi aWVuIHBob25nIFF1YW5nIE5nYWkpLCBkbyB0aGlldSB0YSANCk5ndXllbiBYdW9uZyBsYW0gdGh1 eWVuIHRydW9uZyB2YSB0cnVuZyB0YSBIdXluaCBWYW4gTWluaCAtIEhhaSBkb2kgdHJ1b25nIEhh aSBkb2kgDQoyIHRydWMgdGllcCBjaGkgaHV5IGRhIHZ1b3Qgc29uZyB0bywgZ2lvIGxvbiByYSBr aG9pIGN1dSBuYW4sIGxhaSBkYXQgdGhhbmggY29uZyB0YXUgY2EgDQpRTmctMTAxM1RTIGN1bmcg NyBuZ3UgZGFuIG8geGEgQmluaCBEb25nLCBILkJpbmggU29uIChRdWFuZyBOZ2FpKSB2YW8gYm8g YW4gdG9hbiANCihhbmgpLiANCg0KVGF1IGNhIFFOZy0xMDEzVFMgY3VhIG9uZyBQaGFtIENoaSBU YW0gKG8geGEgQmluaCBEb25nKSwgdHJlbiB0YXUgY28gNyBuZ3UgZGFuIGJpIA0KY2hldCBtYXkg dmFvIHRydWEgMS4xMSB0YWkgdnVuZyBiaWVuIGh1eWVuIEJpbmggU29uLCBzYXUgZG8gdHJvaSBk YXQgdHUgZG8gdHJlbiBiaWVuIHZvaSANCnRvYyBkbyBnYW4gNCBoYWkgbHkvIGdpby4gDQoNCkNh YyBuZ3UgZGFuIHRyZW4gdGF1IGRhIGRpZW4gY2hvIHRhdSBjb25nIHN1YXQgbG9uIGN1YSBuZ3Ug ZGFuIGRpYSBwaHVvbmcgcmEgY3V1IG5hbiANCnNvbmcgZG8gc29uZyBxdWEgbG9uIG5lbiB0YXUg bmF5IGtob25nIHRoZSByYSBraG9pLiANCg0KTmhhbiBkdW9jIGxlbmggY3VhIEJvIENoaSBodXkg Qm8gZG9pIGJpZW4gcGhvbmcgUXVhbmcgTmdhaSwgSGFpIGRvaSAyIGRhIGRpZXUgdGF1IA0KdnVv dCBxdWEgc29uZyBnaW8sIGhpZW0gbmd1eSBjdXUgbmFuIHRoYW5oIGNvbmcuIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDUvMjAxMDExMDcwMDMwNDAuYXNw eCBUcnVvbmcgRGllbiBUaGFuZyAwNy8xMS8yMDEwIDA6MzAgDQoNClRodSB0dW9uZzogVGhpZW4g dGFpIHZhIHRhaSBuZ2hlbyAgDQogIA0KVGhlbyBkYW5oIGdpYSBjdWEgTmdhbiBoYW5nIFRoZSBn aW9pLCBWaWV0IE5hbSBuYW0gdHJvbmcgbmhvbSBuaHVuZyBudW9jIGNvIG5ndXkgY28gY2FvIG5o YXQgdmUgdGluaCB0cmFuZyB0YWkgbmdoZW8uIA0KDQpUYWkgbW90IGhvaSBuZ2hpIHNvIGtldCBj aHVvbmcgdHJpbmggbXVjIHRpZXUgcXVvYyBnaWEgeG9hIGRvaSBnaWFtIG5naGVvIHZhIHZpZWMg bGFtIA0Ka2h1IHZ1YyBtaWVuIFRydW5nIC0gVGF5IE5ndXllbiAoZ29tIDEyIHRpbmggdGhhbmgg dHUgUXVhbmcgQmluaCBkZW4gTGFtIERvbmcpIA0KZ2FuIGRheSBkYSBjaG8gdGhheSBub2kgbGVu IG1vdCBoaWVuIHR1b25nOiBuaHVuZyBobyBkYW4gZGEgZHVvYyBiYW8gY2FvIHhvYSBkb2kgZ2lh bSANCm5naGVvIG5odW5nIGNoaSBtb3QgdGhvaSBnaWFuIG5nYW4gc2F1IGxhaSB0aWVwIHR1Yy4u LiB0YWkgbmdoZW8hIFR5IGxlIG5naGVvIHRoZW8gY2FjIGJhbyANCmNhbyBkYSBnaWFtIHh1b25n IGR1b2kgMTclIGRhbiBzbywgbmh1bmcgdHJlbiB0aHVjIHRlIG5oaWV1IHRpbmggY2hvIHRoYXkg c28gaG8gdGFpIA0KbmdoZW8gbGFpIGJhbmcgaG9hYyBjYW8gaG9uIHNvIGR1b2MgZ2lhbSBuZ2hl byBuaHUgUXVhbmcgTmFtLCBQaHUgWWVuLCBMYW0gRG9uZy4uLiANCg0KQmluaCBxdWFuLCBjbyBk ZW4gNjAgLSA3MCUgc28gaG8gdGFpIG5naGVvIHRhaSBraHUgdnVjIG1pZW4gVHJ1bmcuIFRoZW8g Z2lhaSB0aGljaCBjdWEgDQpCbyBMYW8gZG9uZyAtIFRodW9uZyBiaW5oIC0gWGEgaG9pIGRvIG11 YyBkbyBkYXUgdHUgdm9uIGN1YSBOaGEgbnVvYyBzbyB2b2kga2UgDQpob2FjaCB2YSB5ZXUgY2F1 IGNvbiB0aGFwLCBzdSBkdW5nIHZvbiBjaHVhIGh1b25nIHZhbyBuaHVuZyBuZ3V5ZW4gbmhhbiBu Z2hlbyBkb2kgDQpidWMgeHVjIG5oYXQ7IHRodSBuaGFwIGN1YSBobyBjYW4gbmdoZW8gY29uIGJh cCBiZW5oOyBkYSB2YSBkYW5nIHhheSByYSB0aW5oIHRyYW5nIHkgbGFpIA0KdmFvIGNoaW5oIHNh Y2ggdXUgZGFpIHZhIHN1IGRhdSB0dSBjdWEgTmhhIG51b2MgdmEgc3UgaG8gdHJvIGN1YSBjb25n IGRvbmcuLi4gVHV5IA0KbmhpZW4sIGNvIG1vdCBuZ3V5ZW4gbmhhbiBoZXQgc3VjIHF1YW4gdHJv bmcgbGEgdGhpZW4gdGFpIHRyaWVuIG1pZW4gdHJvbmcga2h1IHZ1YyBub25nIA0KdGhvbiBuaHUg aGFuIGhhbiwgYmFvIGx1IGN1bmcgdm9pIHN1IHF1YW4gbHkgbG9uZyBsZW8sIHF1YW4gbGlldSB0 cm9uZyB4YXkgZHVuZyB2YSB0aHVjIA0KaGllbiBjYWMgZHUgYW4gdHJvbmcgZGllbSBvIG5vbmcg dGhvbiBjdW5nIGxhIHRhYyBuaGFuIGN1YSB0aW5oIHRyYW5nIHRhaSBuZ2hlby4gVHJvbmcgDQps dWMgZG8sIG5ndW9pIGRhbiBsYWkgdGhpZXUga2hhIG5hbmcgeGF5IGR1bmcgbmhhIG8gY28gZHUg ZGlldSBraWVuIGNob25nIGNoaXUgYmFvIGx1IA0KbG9uIG5odSBoaWVuIG5heS4gDQoNCk5oaW4g dmFvIHRodWMgdHJhbmcgZG9pIHNvbmcgbmd1b2kgZGFuIHRyb25nIGNhYyB0cmFuIGx1IGRhbmcg ZGllbiByYSB0YWkgUXVhbmcgQmluaCB2YSANCkhhIFRpbmggY3VuZyB0aGF5IGR1b2MgZGlldSBu YXkuIFRoZW8gQmkgdGh1IERhbmcgdXkgeGEgVGFuIEhvYSAoaHV5ZW4gTWluaCBIb2EsIA0KUXVh bmcgQmluaCk6IFRhbiBIb2EgbGEgaGluaCBtYXUgdHJvbmcgeG9hIGRvaSBnaWFtIG5naGVvLCBs YW0gYW4ga2luaCB0ZSBjdWEgaHV5ZW4gDQpNaW5oIEhvYSwgbGEgeGEgZGF1IHRpZW4gdHJvbmcg aHV5ZW4geGluIHJ1dCBraG9pIENodW9uZyB0cmluaCAxMzUgY3VhIENoaW5oIHBodSwgDQpuaHVu ZyBzYXUgMiB0cmFuIGx1IGx1dCwgbmF5IFRhbiBIb2EgdHJvIGxhaSB0aG9pIGt5Li4uIDEwMCUg aG8gZG9pLiBNdW9uIHRybyBsYWkgYmluaCANCnRodW9uZywgcGhhaSBtYXQgZGVuIDUgbmFtLi4u DQoNCk1hdCBraGFjLCBkbyBsdSBsb24gdmEgZG9uZyBjaGF5IG5nYXkgY2FuZyBtYW5oLCBtdW9u IHRyYW5oIHRoaWV0IGhhaSwgbXVvbiBkb2kgZGFuIA0KdGhpIGRpYSBwaHVvbmcgcGhhaSB4YXkg bmhhIG5oaWV1IHRhbmcgbWF5IHJhIG1vaSB0aHVjIGhpZW4gZHVvYy4gTXVvbiBxdXkgaG9hY2gg ZGFuIA0KY3UgZGVuIG5vaSBjYW8gaG9uIG1vaSB4YSBwaGFpIG1hdCBkZW4gY2EgdHJhbSB0aSBk b25nLi4uIE5oaWV1IGRpYSBwaHVvbmcga2hvbmcgY28gbGF5IA0KbW90IGNoaWVjIHRodXllbiBj b25nIGRlIGRpIGN1dSBkYW4gdGhpIGxheSBkYXUgbmdhbiBzYWNoIGRlIGRhdSB0dSBjaHVuZyBk byB0aWVuISBNb3QgDQpjaHUgdGljaCB4YSB0cm9uZyB2dW5nIGx1IEhhIFRpbmggbm9pIHRoYXQg bG9uZzogIk5ldSBOaGEgbnVvYyBkYXUgdHUgY2hvIG1vaSB4YSBjaHVuZyANCnRvaSBjaHVjIGNo aWVjIHRodXllbiwgdGhpIGxhbmggZGFvIGNhcCB0cmVuIGN1IG5ndSBuZ29uIGdpYWMgY2h1IGNo YW5nIHBoYWkgbG8gYWkgY2hldCANCmNhISIuDQoNClRvbSBsYWksIHR1eSB0b2MgZG8gZ2lhbSBu Z2hlbyBjdWEgVmlldCBOYW0gZGF0IG5oYW5oIG5odW5nIHZhbiB0aGlldSBiZW4gdnVuZywgdHkg bGUgDQpobyBjYW4gbmdoZW8ga2hhIGRvbmcgcmF0IGRlIHRhaSBuZ2hlbyBkbyBuaHVuZyBiYXQg Y2FwIHRyb25nIHhheSBkdW5nIGNoaWVuIGx1b2MsIA0KdHJpZW4ga2hhaSBjYWMgZHUgYW4gY3Ug dGhlLCB4YXkgZHVuZyBjYWMgcXV5IGhvYWNoIG8gbm9uZyB0aG9uLiBOZ2FuIGhhbmcgVGhlIGdp b2kgY2hvIA0KcmFuZyBjYWMgbnVvYyBjbyBuZ3V5IGNvIGNhbyB2ZSB0YWkgbmdoZW8gY2FuIHRh cCB0cnVuZyB0YWkgY2hpbmggZGUgbmdheSB0cmVuIHR1bmcgZGlhIA0KYmFuIG5vbmcgdGhvbjog MS0gdGFvIGNvbmcgYW4gdmllYyBsYW0sIDItIGN1bmcgY2FwIGNhYyBkaWNoIHZ1IGNvIGJhbiwg My0gY28gc28gaGEgdGFuZywgDQp2YSA0LSBjYWMgY2h1b25nIHRyaW5oIGFuIHNpbmggeGEgaG9p IGNobyBuaHVuZyBuZ3VvaSBkZSBiaSBhbmggaHVvbmcgbmhhdC4gR2lhaSBxdXlldCANCmNhbiBj byBkdW9jIDQgdmFuIGRlIHRyZW4sIHRoZW8gY2h1bmcgdG9pLCBraG9uZyBjaGkgZ2lhbSBkdW9j IGFwIGx1YyB0YWkgbmdoZW8gbyBub25nIA0KdGhvbiBtYSBjb24gdHJhbmggZHVvYyBjYWMgaGUg bHV5IHZlIGRpIGRhbiB2YSBtb2kgdHJ1b25nIGhpZW4gbmF5IHRhaSBjYWMgZG8gdGhpLiANCg0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMS9UaHV5LWRpZW4teGEtbHUtdGlu aC1tYW5nLWRhbi1iaS1kZS1kb2EtOTQ1NjY0LyBOZ29jIEFuaCAoVG9uZyBob3ApMDg6MTUsIDAz LzExLzIwMTAgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBUaHV5IGRpZW4geGEgbHUsIGRhbiBzYXAg J2NoZXQgY2hpbScNCg0KliBNdWEgbG9uIHRpZXAgdHVjIGhvYW5oIGhhbmggdmEgZHVvYyBkdSBi YW8gc2Uga2VvIGRhaSB0cm9uZyB2YWkgbmdheSB0b2kuIEx1IHRyZW4gY2FjIA0Kc29uZyBuYW0g VHJ1bmcgYm8gZHVvYyBjYW5oIGJhbyBzZSBsZW4gbmhhbmggbyBtdWMgZGFjIGJpZXQgbG9uLCB2 YSBsdSBzZSBrZW8gZGFpLiBUaGUgDQpuaHVuZywgYmF0IGNoYXAgdGluaCB0cmFuZyBuZ2FwIGx1 dCBkYW5nIGRpZW4gcmEgcmF0IG5naGllbSB0cm9uZyBvIGNhYyB0aW5oIE5pbmggVGh1YW4sIA0K UGh1IFllbiwgS2hhbmggSG9hLCBjYWMgaG8gY2h1YSB0aHV5IGRpZW4gZGFuZyBsZW4ga2UgaG9h Y2ggeGEgbHUgdmEgdGh1YyB0ZSBjbyBuaGlldSANCm5vaSBkYSB4YSBob2FjIGRlIG51b2MgdHJh biB0dSBkby4gVGluaCBtYW5nIG5ndW9pIGRhbiBoYSBsdXUgZGFuZyBiaSBkZSBkb2EgYm9pIGNh YyBobyANCmNodWEgdGh1eSBkaWVuLg0KDQpNdWEgY29uIGRhaSwgbHUgY29uIGxlbg0KDQoyMWgz MCBuZ2F5IDIvMTEsIFRydW5nIHRhbSBkdSBiYW8ga2hpIHR1b25nIHRodXkgdmFuIFRydW5nIHVv bmcgZGEgcGhhdCBkaSB0aG9uZyBiYW8gDQp2ZSB0aW5oIHRyYW5nIGx1IGtoYW4gY2FwIHRyZW4g Y2FjIHNvbmcgdHUgUXVhbmcgTmFtIGRlbiBOaW5oIFRodWFuIHZhIEdpYSBMYWkuDQoNClRoZW8g ZG8sIGx1IHRyZW4gY2FjIHNvbmcgdHUgUXVhbmcgTmdhaSBkZW4gS2hhbmggSG9hLCBHaWEgTGFp IGRhdCBkaW5oIHZhIGRhbmcgDQp4dW9uZywgcmllbmcgaGEgbHV1IHNvbmcgQmEgdmEgaGEgbHV1 IGhlIHRob25nIHNvbmcgVnUgR2lhIFRodSBCb24gZGFuZyBsZW4uDQoNCihBbmg6IFRhaSBjYWMg dGluaCBuYW0gVHJ1bmcgYm8sIG11YSBjb24ga2VvIGRhaSwgbHUgY29uIGxlbiBjYW8gdHJvbmcg bmh1bmcgbmdheSB0b2kuIA0KQW5oOiBWaWV0TmFtTmV0KQ0KDQpEaW5oIGx1IHRyZW4gc29uZyBE aW5oIHRhaSBOaW5oIEhvYTogNSw5OW0gKGx1YyAxNSBnaW8gbmdheSAyLzExKSwgdHJlbiBCRDM6 IDAsNDltOyANCm11YyBudW9jIHRhaSBzb25nIENhaSBOaGEgVHJhbmcgdGFpIERvbmcgVHJhbmc6 IDEyLDY2bSAobHVjIDE1IGdpbyBuZ2F5IDIvMTEpLCB0cmVuIA0KQkQzOiAxLDY2bTsgbXVjIG51 b2Mgc29uZyBCYSB0YWkgQ3VuZyBTb246IDM0LDg1bSAobHVjIDIwIGdpbyBuZ2F5IDIvMTEpLCB0 cmVuIEJEMzogDQowLDM1bS4NCg0KVHJ1bmcgdGFtIGR1IGJhbyBraGkgdHVvbmcgdGh1eSB2YW4g VHJ1bmcgdW9uZyBkdSBiYW8sIGRlbSAyLzExIHZhIG5nYXkgMy8xMSwgbHUgY2FjIA0Kc29uZyB0 dSBRdWFuZyBOYW0gZGVuIFBodSBZZW4gdmEgR2lhIExhaSBjbyBraGEgbmFuZyBsZW4gbGFpLg0K DQpTYW5nIDMvMTEsIG11YyBudW9jIGNhYyBzb25nIGNvIGtoYSBuYW5nIGRldSBhcCBzYXQgYmFv IGRvbmcgMy4gVGluaCB0cmFuZyBuZ2FwIGx1dCBvIA0KdGluaCBLaGFuaCBIb2EgdmEgTmluaCBU aHVhbiBiYXQgZGF1IGdpYW0gZGFuLiBDYWMgdGluaCB0dSBRdWFuZyBOYW0gZGVuIFBodSBZZW4g DQp2YSBHaWEgTGFpIGNhbiBkZSBwaG9uZyBsdSBxdWV0LCBzYXQgbG8gZGF0IG8gdnVuZyBudWks IHZlbiBzb25nIHZhIG5nYXAgbHV0IHNhdSBvIHZ1bmcgDQp0cnVuZywgZG9uZyBiYW5nIGhhIGx1 dSBjYWMgc29uZywgc3VvaS4NCg0KVGh1eSBkaWVuICJkbyB0aGVtIGRhdSB2YW8gbHVhIg0KDQpU cnVvYyBkaWVuIGJpZW4gbmh1IHRyZW4gdmUgbXVhIGx1LCBjYWMgaG8gdGh1eSBkaWVuIGxhaSB0 aGkgbmhhdSB4YSBsdS4NCg0KQmFvIGNhbyBjdWEgYmFuIGNoaSBkYW8gcGhvbmcgY2hvbmcgbHV0 IGJhbyBUVyB2YW8gc2FuZyAyLzExIGNobyBiaWV0IGNhYyBobyBjbyBjdWEgDQp0cmFuIG5odSBT dW9pIERhdSwgQW0gQ2h1YSwgTGFuZyBOaG90IChLaGFuaCBIb2EpOyBUYW4gR2lhbmcsIFNvbmcg Q2hhdSwgU29uZyBTYXQgDQooTmluaCBUaHVhbik7IExvbmcgU29uZyAoQmluaCBUaHVhbikgZGFu ZyB4YSBsdSB0aGVvIHF1eSB0cmluaCB2YSB2YW4gZGFtIGJhbyBhbiB0b2FuLiANCg0KTmdvYWkg cmEsIGNvbiBuaGlldSBobyB0cmFuIHR1IGRvIG11YyBudW9jIGRhIHZ1b3QgcXVhIGRpbmggdHJh biB0dSAyMCBkZW4gMTIwY20gZGFuZyANCnRyYW4gdHUgZG8gdmUgaGEgZHUsIGNvIHF1YW4gY2h1 YyBuYW5nIGN1bmcgZGFuaCBnaWEgdmFuICJhbiB0b2FuIi4NCg0KVHJvbmcgbmdheSAyLzExLCBs YW4gbHVvdCBjYWMgaG8gdGh1eSBkaWVuIFBodSBZZW4geGEgbHUuIEN1IHRoZSBsYSBobyB0aHV5 IGRpZW4gQmEgSGEsIA0KaG8gdGh1eSBkaWVuIFNvbmcgSGluaCwgaG8gdGh1eSBkaWVuIEtyb25n IEiSTmFuZy4gRHUga2llbiBuZXUgY2EgMyBobyB4YSBsdSBkb25nIA0KbG9hdCwgdGhhbmggcGhv IFR1eSBIb2EgKFBodSBZZW4pIHNlIHRoYW5oIGJpZW4gbnVvYyBjaGkgc2F1IHZhaSBnaW8uDQoN CihBbmg6IFRodXkgZGllbiAiZG8gdGhlbSBkYXUgdmFvIGx1YSIsIGRhbiBsYW5oIGR1IC0gQW5o OiBWaWV0TmFtTmV0KQ0KDQpMeSBkbyBjYWMgY28gcXVhbiBjaHVjIG5hbmcgZHVhIHJhIGtoaSBk ZSB4dWF0IHhhIGx1IGRvbmcgbG9hdCBvIGNhYyBobyB0aHV5IGRpZW4gbGEgZG8gDQptdWEgbG9u LCBudW9jIHR1IHRodW9uZyBuZ3VvbiBkbyB2ZSBraGllbiBsdW9uZyBudW9jIHRpY2ggdHJvbmcg aG8gcXVhIGNhbywgbmV1IGtob25nIA0KeGEgc2UgeGF5IHJhIG5ndXkgY28gdm8gaG8gdGh1eSBk aWVuLg0KDQpUaGUgbmh1bmcsIGtob25nIHBoYWkgY3UgY28gbHkgZG8gY2hpbmggZGFuZyBsYSBk dW9jIGNoYXAgbmhhbi4gTmhhbiB0aGF5IHZpZWMgeGEgbHUgDQpkb25nIGxvYXQga2hvbmcgY29u IGFuIHRvYW4sIGxhbmggZGFvIHRpbmggUGh1IFllbiBkYSBjdWMgbHVjIHBoYW4gZG9pIHZpZWMg eGEgbHUgdHUgaG8gDQp0aHV5IGRpZW4uDQoNCkJhbyBTR1RUIGNobyBiaWV0OiBDaGlldSAyLzEx LCBraGkgbmhhIG1heSB0aHV5IGRpZW4gU29uZyBCYSBIYSBkZSB4dWF0IHhhIGx1IHZvaSBsdXUg DQpsdW9uZyA3LjAwMG0zL2dpYXksIG9uZyBOZ3V5ZW4gQmEgTG9jLCBQaG8gQ2h1IHRpY2ggVUJO RCB0aW5oIFBodSBZZW4ga2llbSANCnRydW9uZyBiYW4gY2hpIGh1eSBQaG9uZyBjaG9uZyBiYW8g bHV0IJYgdGltIGtpZW0gY3V1IG5hbiB0aW5oIG5heSBkYSBjdWMgbHVjIHBoYW4gZG9pIA0Kdm9p IGx5IGRvIG5ldSB4YSBsdSB2b2kgbXVjIGRvIGRvLCBjb25nIHZvaSBuaGlldSBobyB0aHV5IGRp ZW4ga2hhYyB0cmVuIGJhYyB0aGFuZyBzb25nIA0KQmEgY3VuZyB4YSBsdSwgc2Ugdm8gY3VuZyBu Z3V5IGhpZW0gY2hvIHZ1bmcgaGEgZHUuDQoNCiJCYXkgZ2lvIHBoYWkgdGh1YyBoaWVuIHRoZW8g bHVhdCBjaHUga2hvbmcgdGhlIHRoZW8gbGUgbnVhLCB0aHV5IGRpZW4gbmFvIHZpIHBoYW0gcXV5 IA0KdHJpbmggdmFuIGhhbmggbGllbiBobyBjaHVhIGRvIFRodSB0dW9uZyBiYW4gaGFuaCB0aGkg c2UgcGhhaSBjaGl1IGhvYW4gdG9hbiB0cmFjaCANCm5oaWVtIHRydW9jIHBoYXAgbHVhdCIsIE9u ZyBMb2Mgbm9pLg0KDQpLaG9uZyBjaGkgcmllbmcgUGh1IFllbiByb2kgdmFvIHRpbmggY2FuaCAi bmdhbiBjYW4gdHJlbyBzb2kgdG9jIiB2aSB4YSBobyB0aHV5IGRpZW4uIFRhaSANCktoYW5oIEhv YSwgbnVvYyBsdSBjdW5nIGRhbmcgY2FvIHZpIGNvIHRvaSA4IGhvIGNodWEgbnVvYyBkYSBkb25n IGxvYXQgeGEgbHUuDQoNCihBbmg6IFRhaSBLaGFuaCBIb2EgY28gZGVuIDggaG8gY2h1YSBkYSBk b25nIGxvYXQgeGEgbHUga2hpZW4gdGluaCB0cmFuZyBuZ2FwIGx1dCB0aGVtIA0KdHJhbSB0cm9u ZyAtIEFuaDogVmlldE5hbU5ldCkNCg0KQmFvIFNHVFQgZHVhIHRpbjogVGluaCBkZW4gbmdheSAy LjExLCB0aW5oIEtoYW5oIEhvYSBkYSBwaGFpIG1vIGN1YSB4YSBsdSBkb2kgdm9pIDUgDQpobyBj aHVhIG51b2MgdHJlbiBkaWEgYmFuLiBCZW4gY2FuaCBkbywgMyBobyBjaHVhIG51b2Mga2hhYyBj byBkdW5nIHRpY2ggbmhvLCBudW9jIGx1IA0KZGEgdnVvdCB0cmVuIG11YyBudW9jIGRhbmcgYmlu aCB0aHVvbmcsIG5lbiBudW9jIHF1YSB0cmFuIHR1IGRvLiA4IGhvIG5vaSB0cmVuIGNvIHRvbmcg DQpkdW5nIHRpY2ggY2h1YSB0cmVuIDEyMCB0cmlldSBtMy4NCg0KTW90IHNvIGhvIGNodWEgbnVv YyBsb24gbmh1OiBEYSBCYW4gKDQ2IHRyaWV1IG0zKSBkYSBiYXQgZGF1IHhhIGx1IHR1IG5nYXkg Mi8xMSB2b2kgbHV1IA0KbHVvbmcgYnVvYyBkYXUgZGF0IDE3LDUgbTMvZ2lheTsgaG8gY2h1YSBu dW9jIFN1b2kgRGF1IGNvIGR1bmcgdGljaCAzMSB0cmlldSBtMywgZGEgeGEgDQozIGN1YSB2b2kg dG9uZyBtdWMgMjUwIG0zL2dpYXk7IGhvIGNodWEgbnVvYyBDYW0gUmFuaCBjdW5nIGRhIHhhIGNh IDMgY3VhLCB2b2kgbHV1IA0KbHVvbmcgMTMxIG0zL2dpYXkuIA0KDQpUaGVvIGJhbiBjaGkgaHV5 IFBob25nIGNob25nIGx1dCBiYW8gdGluaCBLaGFuaCBIb2EsIGhpZW4gbmF5IG11YyBudW9jIHRy ZW4gY2FjIHNvbmcgDQp0cm9uZyB0aW5oIGRhbmcgZGFuZyB0cm8gbGFpLiBUYWkgc29uZyBDYWkg KE5oYSBUcmFuZykgdmEgc29uZyBEaW5oIChUcmFtIE5pbmggSG9hKSwgDQptdWMgbnVvYyBkZXUg dnVvdCBtdWMgYmFvIGRvbmcgSUkuDQoNCktob25nIGtoaSBsYW5oIGRhIHRyYW4gdmUgQmFjIGJv DQoNClRoZW8gdGhvbmcgdGluIHR1IFRydW5nIHRhbSBkdSBiYW8ga2hpIHR1b25nIHRodXkgdmFu IFRydW5nIHVvbmcsIGRlbSAyLzExIGtob25nIGtoaSANCmxhbmggZGEgYW5oIGh1b25nIGRlbiBj YWMgdGluaCBwaGlhIERvbmcgQmFjIEJvIHZhIG1vdCBzbyBub2kgbyBiYWMgVHJ1bmcgQm8uDQoN CkR1IGJhbyBkZW0gbmF5IHZhIG5nYXkgbWFpICgwMy8xMSksIGJvIHBoYW4ga2hvbmcga2hpIGxh bmggbmF5IHNlIGFuaCBodW9uZyBkZW4gY2FjIA0Kbm9pIGtoYWMgdGh1b2MgYmFjIFRydW5nIEJv OyBnYW4gc2FuZyB2YSBuZ2F5IG1haSAoMDMvMTEpIHNlIGFuaCBodW9uZyBkZW4gY2FjIHRpbmgg DQp0aHVvYyBwaGlhIHRheSBCYWMgQm8sIFRydW5nIHZhIE5hbSBUcnVuZyBCby4NCg0KRG8gYW5o IGh1b25nIGN1YSBraG9uZyBraGkgbGFuaCB0YW5nIGN1b25nLCBvIEJhYyBCbyBraG9uZyBtdWEs IHRyb2kgcmV0LCBjYWMgdGluaCBiYWMgDQpUcnVuZyBCbyBjbyBtdWEgdmFpIG5vaSwgZ2lvIGRv bmcgYmFjIHRyb25nIGRhdCBsaWVuIGxhaSBtYW5oIGxlbiBjYXAgMywgdnVuZyB2ZW4gYmllbiAN CmNhcCA0IC0gNTsgbyB2aW5oIEJhYyBCbyBjbyBnaW8gZG9uZyBiYWMgbWFuaCBjYXAgNiwgY28g bHVjIGNhcCA3LCBnaWF0IGNhcCA4IJYgOSwgYmllbiANCmRvbmcgbWFuaDsgdnVuZyBiaWVuIG5n b2FpIGtob2kgVHJ1bmcgQm8gdmEgTmFtIEJvLCBraHUgdnVjIEJhYyB2YSBnaXVhIGJpZW4gRG9u ZyANCmNvIGdpbyBtYW5oIGNhcCA3LCBjbyBsdWMgY2FwIDgsIGdpYXQgY2FwIDkgliAxMCB2YSBj byBtdWEgZG9uZyBtYW5oLCBiaWVuIGRvbmcgcmF0IA0KbWFuaC4NCg0KTmdvYWkgcmEgZG8gYW5o IGh1b25nIGN1YSBraG9uZyBraGkgbGFuaCBrZXQgaG9wIHZvaSBuaGlldSBkb25nIHRyb25nIGRv aSBnaW8gZG9uZyANCnRyZW4gY2FvIG5lbiBvIGNhYyB0aW5oIHR1IERhIE5hbmcgZGVuIEtoYW5o IEhvYSBjbyBtdWEgdnVhLCBtdWEgdG8gZGVuIHJhdCB0bzsgbyBUYXkgDQpOZ3V5ZW4gY28gbXVh IHZ1YSwgbXVhIHRvLCBjbyBub2kgbXVhIHJhdCB0bzsgY2FjIHRpbmggdHUgUXVhbmcgQmluaCBk ZW4gVGh1YSBUaGllbiANCkh1ZSBjbyBtdWEgdnVhLCBtdWEgdG8sIGNvIG5vaSBtdWEgcmF0IHRv IHZhIHJhaSByYWMgY28gZG9uZy4gVHJvbmcgY29uIGRvbmcgY2FuIGRlIA0KcGhvbmcgY28gdG8s IGxvYyB2YSBnaW8gZ2lhdCBtYW5oLiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhh LWhvaS80MDk5NDkvTHUtbGEiLW8tRHVuZy1RdWF0Lmh0bWwgUEhBTSBYVUFOIDE5LzExLzIwMTAs IDExOjU2IChHTVQrNykgDQoNClRodSB0dW9uZzogIkx1IGxhIiBvIER1bmcgUXVhdCCWIENvbmcg dGFjIHF1aSBob2FjaCBuaGlldSBiYXQgY2FwIJYgTmd1b2kgZGFuIHBoYWkgZ2FuaCBjaGl1IGhh dSBuYW5nIG5lICANCg0KVFRPIC0gS2hvbmcgY2hpdSBhbmggaHVvbmcgdHJ1YyB0aWVwIHR1IG51 b2MgbHUgbyB0aHVvbmcgbmd1b24gZG8gdmUgbmh1bmcga2h1IGtpbmggDQp0ZSBEdW5nIFF1YXQg Y3VhIHRpbmggUXVhbmcgTmdhaSBuaGlldSBjaG8gdmFuIG5nYXAgY2hpbSB0cm9uZyBiaWVuIG51 b2MuIENvbiAibHUgbGEiIA0KcGh1dCBjaG9jIGRhIGxhbSBuaGlldSBnaWEgZGluaCBvIGRheSBk aWV1IGR1bmcuDQoNCihBbmg6IE5oYSBjdWEgY2hpIFBoYW0gVGhpIFRodXkgSG9hIGdpbyBjaGkg Y29uIHRybyBsYWkgY2hhaSBuaGEgZHVvaSBkZSBvIHRhbSAtIEFuaDogUGhhbSBYdWFuKQ0KDQpD aHV5ZW4ga2hvbmcgbmdvDQoNClNhdSBuZ29pIG5oYSBvIGxhbmcgY2hhaSBWdXQgMiwgdGhvbiBT b24gVHJhLCB4YSBCaW5oIERvbmcsIGh1eWVuIEJpbmggU29uIChRdWFuZyANCk5nYWkpIGRhIGJp IGNvbiAibHUgbGEiIGtlbyBudW9jIHZlIGdpYXQgc2FwIGN1b24gdHJvaSByYSBiaWVuIGNoaSB0 cm9uZyBuaGF5IG1hdC4gQ2FuaCANCmhvYW5nIHRhbiB2YW4gY29uIGhpZW4gaHV1IG5vaSBkYXku IA0KDQpUcm9uZyBuZ2F5IDE3LTExIGtoaSB0cm9pIG5nb3QgbXVhLCBuZ3VvaSBkYW4gbyBsYW5n IGNoYWkgbmF5IHRyYW5oIHRodSB0aHUgZG9uIGRvbmcgZG8gDQpuYXQuIEx1YyBsdW9uZyBibyBk b2kgZHVvYyBodXkgZG9uZyBsZW4gZGF5IGdpdXAgZGFuLiBOZ29pIHRydW9uZyB0aWV1IGhvYyBT b24gVHJhIA0KbmFtIG8geG9tIGNoYWkgVnV0IDIgZGEgYmkgbnVvYyBjdW9uIHRyb2MgbmVuLCBo b2Mgc2luaCBraG9uZyB0aGUgZGVuIGxvcC4gDQoNCkNoaSBEYW5nIFRoaSBIYSBraG9jIG5nYXQg dmkgbmhhIG1hdC4gQ2h1YSBoZXQgYmFuZyBob2FuZywgY2hpIGtlIGxhaTogIlRydWEgMTctMTEg DQpkYW5nIG5nb2kgYW4gY29tIHRoaSBudW9jIGRvIHZlIGFtIGFtLiBWYWkgcGh1dCBzYXUgbmdv aSBuaGEgcnVuZyBjaHV5ZW4uIEhvYW5nIHF1YSANCm1lIGNvbiB0b2kgYm8gY2hlbiBkdWEgY2hh eSByYSBuZ29haSB0aG9hdCB0aGFuLiBOZ29pIG5oYSB0b2kgYmkgbnVvYyBsdSBjdW9uIHNhcC4g Q2FpIA0Kc2FuIHRydW9jIG5oYSBnaW8gdHJvIHRoYW5oIGNvbiBzdW9pIi4gQ2hpIHRyb25nIHRp Y2ggdGFjIHZhaSBwaHV0IHNhdSBkbywgImx1IiBsYWkgdGllcCB0dWMgDQpjdW9uIHNhcCB0aGVt IHNhdSBuZ29pIG5oYSB2YSBuZ29pIG1ldSB0aG8gdHJvbmcgbGFuZy4gDQoNCihBbmg6IE5vaSBk YXUgeGUgbG9uZyBjdWEgY2hpIEhhIHZpIG5oYSBiaSAibHUgbGEiIGN1b24gLSBBbmg6IFBoYW0g WHVhbikNCg0KTmhhIG1hdCwgY2hpIERhbmcgVGhpIEhhIGJvbiBkZW0gbmF5IGtob25nIGNob3Ag bWF0LiBOaGEgY28gc2F1IG1lIGNvbi4gQ2hvbmcgDQptYXQsIG5ndW9pIHF1YSBwaHUgbmF5IG1v dCBtaW5oIGxhbSBsdWkgbnVvaSBjb24gdm9pIGJhbyBraG8ga2hhbiwgdHVuZyBxdWFuLiBOZ29p IA0KbmhhIGNoaSBIYSB4YXkgbGVuIGN1bmcgcGhhaSB2YXkgbXVvbiBiYSBjb24gbGFuZyBnaWVu Zy4gU28gbm8gMTAgdHJpZXUgZG9uZyBjb24gbGFpIA0KbWEgY2hpIG11b24geGF5IG5oYSBjaHVh IHRyYSB4b25nIHRoaSBuaGEgYmkgY3VvbiByYSBiaWVuLiANCg0KQ2hpIEhhIGRhdSBkZW4geGUg bG9uZywgbnVvYyBtYXQgY3UgY2hheSBtYWkga2hvbmcgY2FtLiBDaGkgSGEgYmFvIG1vdCB0aGFu ZyB0aHUgDQpuaGFwIGN1YSBjaGkgdHUgdmllYyBsYW0gY29uZyBuaGFuIG8ga2h1IGtpbmggdGUg RHVuZyBRdWF0IGN1bmcgY2hpIGtob2FuZyAxLDUgdHJpZXUgDQpkb25nIG5odW5nIHBoYWkgbG8g Y2hvIG5hbSBkdWEgY29uLiBIYWkgZHVhIGxvbiBob2MgVHJ1b25nIERIIENvbmcgbmdoaWVwIDQg dHJvbmcgDQpUUC5IQ00gcGhhaSBsYW0gdGh1ZSB0dSBudW9pIGNhaSBjaHUuICJDb24gbm8ga2hv bmcgY28gdGllbiBob2MgcGhpIG5lbiB0b2kgbGFpIGRpIHZheSANCnRpZW4gdGhlbyBkaWVuIG5o YSBudW9jIGNobyBzaW5oIHZpZW4gdmF5LiBHaW8gZ2FwIHRhaSBob2EgbmF5IG1lIGNvbiB0b2kg YmlldCBzb25nIHJhIA0Kc2FvLiBDaG8gZGF1IGRlIG8gbHVjIG5heSIgLSBjaGkgSGEgYmF0IGto b2MuDQoNCiJTb25nIG8gZGF5IGJhbyBuaGlldSBuYW0gcm9pIGNodWEgYmFvIGdpbyBjaHVuZyB0 b2kgY2h1bmcga2llbiBjYW5oIG51b2MgbHUgbmh1IHRoZSANCm5heS4gVGFpIGhvYSwgcmF0IGRh dSBidW9uLiBDaHV5ZW4ga2hvbmcgbmdvIGRhIHhheSByYSBvIGRheSIgLSBvbmcgQnVpIFRoZSBI dXUgbm9pLiANCg0KS2UgbmhhIGNoaSBIYSBsYSBjaGkgUGhhbSBUaGkgVGh1eSBIb2EgY3VuZyBi aSBudW9jIGx1IGN1b24gY2hpIGNvbiBtb2kgZ2lhbiBuaGEgDQpkdW9pIGRlIG8gdGFtLiAiQWkg dGluIG51b2MgbHUgbGFpIGRvIHZlIGRheSBiYW8gZ2lvLiBCYW8gbmhpZXUgdGllbiBjdWEgeGF5 IG5oYSBkYSByYSANCnNvbmcgcmEgYmllbi4gVGFpIHNhbiB0cm9uZyBuaGEgY3VuZyBiaSBkZSBi ZXAgaHUgaGFpIGhldC4gQ2EgY2FpIGxhbmcgbmF5IGdpbyBwaGFpIGNoaXUgDQpjYW5oIHZvIGdp YSBjdSBkZW4gbm9pIHJvaSIgLSBjaGkgSG9hIG5vaS4gDQoNCg0KKEFuaDogVHJ1b25nIHRpZXUg aG9jIFNvbiBUcmEgZ2lvIHRybyB0aGFuaCBoYW0gaG8gLSBBbmg6IFBoYW0gWHVhbikNCg0KRG8g ZGF1Pw0KDQpDYSBsYW5nIGNoYWkgVnV0IDIsIHRob24gU29uIFRyYSBnaW8gbGEgaGFtIGhvLiBO dW9jIGJhbyBxdWFuaCB0dSBiZS4gQ3UgTmd1eWVuIA0KTWluaCwgbyBsYW5nIFZ1dCAyLCBidWMg eHVjIGNoaSB0aGFuZyB2ZSBodW9uZyBuaGEgbWF5IGRvbmcgdGF1ICJhbiBuZ3UiIHNhdCBiZW4g bGFuZyANCmdpb25nIGJ1YyB0dWM6ICJUb2kgc29uZyBnYW4gY2EgZG9pIG8gZGF5IG5odW5nIGNo YW5nIGJhbyBnaW8gY2h1bmcga2llbiBjYW5oIHR1b25nIA0KbmF5LiBUdSBraGkgbmhhIG1heSBk b25nIHRhdSBuYXkgeGF5IGxlbiB0aGkgbW9pIHRodSBkZXUgZGFvIGxvbiBraGkgY28gbXVhIGx1 Ii4gDQoNCkN1IE1pbmggZ2lhaSB0aGljaDogIkhvaSB0cnVvYyBoZSBjbyBtdWEsIG51b2MgdHUg dHJlbiBkb2kgbnVpIGNoYXkgeHVvbmcgbGEgdGhvYXQgbmdheSANCnJhIGJpZW4gbmh1bmcgYmF5 IGdpbyB0aGkga2hvbmcgZHVvYy4gVmkgc2FvPyBWaSBuaGEgbWF5IGRvbmcgdGF1IGRhIHhheSBi byB0dW9uZyANCmNoYW4gaGV0IGxvaSB0aG9hdCBudW9jIG5lbiBudW9jIGRvIHRoYW5nIHZhbyBs YW5nIG5heS4gVmEgbmd1b2kgZGFuIGNodW5nIHRvaSBwaGFpIA0KY2hpdSB0cmFuIG5hbmcgbmUg bW90IGNhY2gga2hvbmcgZGFuZyIuIA0KDQpOaGluIG5oYW4gY3VhIG5ndW9pIGRhbiB2ZSB0cmFu ICJsdSBsYSIgbmF5IG8ga2h1IGtpbmggdGUgRHVuZyBRdWF0IGhvYW4gdG9hbiBraG9uZyANCnNh aS4gRG8gdmllYyBxdXkgaG9hY2ggdGhpZXUgZG9uZyBibyB2YSB5ZXUga2VtIGN1YSBoZSB0aG9u ZyB0aG9hdCBudW9jIG5lbiBoZSBjbyBtdWEgDQpsb24gbGEga2h1IGtpbmggdGUgbmF5IGxhcCB0 dWMgY2hpbSB0cm9uZyBudW9jLCBnYXkgdGhpZXQgaGFpIGNobyBuZ3VvaSBkYW4gdHJvbmcgdnVu Zy4gDQpOYW5nIG5oYXQgbGEgbyBuaHVuZyB2dW5nIG5odSB4YSBCaW5oIERvbmcsIEJpbmggVGh1 YW4uIA0KDQoNCihBbmg6IEtodSBraW5oIHRlIER1bmcgUXVhdCBtb2MgbGVuIG5oaWV1IG5oYSBt YXkgeGkgbmdoaWVwIHRoaSBuZ3VvaSBkYW4gdHJvbmcgdnVuZyBsYWkgDQpjaGF5IGx1IGxpZW4g bWllbi4gVHJvbmcgYW5oOiBuZ3VvaSBkYW4gdGhvbiBEb25nIExvLCB4YSBCaW5oIFRodWFuIGJv IGJvIGxlbiB0aHVuZyBkZSBrZW8gY2hheSBsdSAtIEFuaDogUGhhbSBYdWFuKSANCg0KT25nIERv YW4gRHVuZywgYmkgdGh1IEh1eWVuIHV5IEJpbmggU29uLCBjaG8gYmlldCB2YW4gZGUgeHUgbHkg dGhvYXQgbnVvYyBjaG8ga2h1IA0Ka2luaCB0ZSBEdW5nIFF1YXQgZGUgY3V1IGRhbiBraG9uZyBj aGl1IGNhbmggbmdhcCB1bmcgZGEgZHVvYyBodXllbiBkZSBjYXAgdmEga2llbiANCm5naGkgY2Fw IHRyZW4gbmhpZXUgbGFuIGRlIGNvIGh1b25nIGdpYWkgcXV5ZXQgbmh1bmcgZGVuIG5heSB2YW4g Y2h1YSB0aGFvIGdvIGR1b2MuIA0KDQpDaGlldSAxOC0xMSwgc2F1IGtoaSBraWVtIHRyYSBoZSB0 aG9uZyB0aG9hdCBudW9jIG8ga2h1IHZ1YyBDb25nIHR5IGRvbmcgdGF1IERhdSBraGkgDQpEdW5n IFF1YXQsIEJpIHRodSBUaW5oIHV5IFF1YW5nIE5nYWkgTmd1eWVuIEhvYSBCaW5oIGNoaSBkYW8g Y2hpbmggcXV5ZW4gZGlhIA0KcGh1b25nIHhhIEJpbmggRG9uZyBraGFuIHRydW9uZyBraGFjIHBo dWMgaGF1IHF1YSBkZSBvbiBkaW5oIGRvaSBzb25nIGNobyBjYWMgaG8gDQpkYW4gYmkgdGhpZXQg aGFpLCB2YW4gZG9uZyBuZ3VvaSBkYW4gdHJvbmcgdnVuZyB0YW8gZGlldSBraWVuIHRodWFuIGxv aSBkZSBDb25nIHR5IGRvbmcgDQp0YXUgRGF1IGtoaSBEdW5nIFF1YXQgdGhpIGNvbmcgaG9hbiB0 aGFuaCBoZSB0aG9uZyB0aG9hdCBudW9jIGRlIHRyYW5oIGxhcCBsYWkgc3UgdmllYyANCnR1b25n IHR1LiANCg0KUGhvIGNodSB0aWNoIFVCTkQgdGluaCBRdWFuZyBOZ2FpIFRydW9uZyBOZ29jIE5o aSBjaGkgZGFvIGRlbiBjdW9pIHRoYW5nIDEyLTIwMTAsIA0KQ29uZyB0eSBkb25nIHRhdSBEYXUg a2hpIER1bmcgUXVhdCBwaGFpIHRoaSBjb25nIHhvbmcgZHVvbmcgb25nIGRhbiByYSBiaWVuIGRl IHRob2F0IA0KbnVvYyBjaG8ga2h1IHZ1YyB0aG9uIFNvbiBUcmEuDQoNCk11YSB2YW4gY29uIHRp ZXAgdHVjLiBOZ3VvaSBkYW4gbyBraHUga2luaCB0ZSBEdW5nIFF1YXQgc2UgY29uIGh1bmcgY2hp dSBuaHVuZyBjb24gDQoibHUgbGEiIGtoaSBtYSBoZSB0aG9uZyB0aG9hdCBudW9jIG8gZGF5IHZh biBiaS4uLiBiZSB0YWMuIERhbiBsYWkgcGhhaSBjaGF5IGx1IGRhaSBkYWkuDQoNClkga2llbiBi YW4gZG9jOg0KDQpOR1VZRU4gS0hBTkg6DQogDQpUaHVvbmcgcXVhIGJhIGNvbiBxdWUgdG9pIA0K VG9pIGxhIG1vdCBuZ3VvaSBjb24gY3VhIHhhIEJpbmggRG9uZyAsIGh1eWVuIEJpbmggU29uLiBU b2kgY29uIG5obyBraGkgY29uIG5obyBuYW0NCiBuYW8gY3VuZyBjbyBtdWEgYmFvIG5odW5nIGto b25nIGJhbyBnaW8gYmkgbHUgbHV0IHZpIHhhIG5hbSBnYW4gYmllbiBuZW4gbnVvYyB0aG9hdCAN CnJhdCBuaGFuaC4gVHUga2hpIGNvIGtodSBjb25nIG5naGllcCBEdW5nIFF1YXQsIGNvbiBzb25n IHRydW9jIG5oYSB0b2kgbmdheSB4dWEgYmkgDQpjb25nIHR5IERPU0FOIGxhcCBtYXQgbmVuIG1v aSBraGkgbXVhIG11YSBkZW4gbnVvYyBraG9uZyBjbyBjaG8gcnV0IG5lbiBnYXkgbHV0IGxvaS4g DQoNCkJhIHRvaSBiYW8gY2EgZG9pIGJhIGNvIHRoYXkgYWkgbGFwIHNvbmcgbGFwIGJpZW4gYmFv IGdpbyBkYXU/IFZpIGRhbmggZGF0IGNobyBraHUgY29uZyANCm5naGllcCBuZW4gZGFuIGxhbmcg eGEgdG9pIGRpIHR1IHRhbiBraGFwIG5vaSB2aSBvIG5vaSB0YWkgZGluaCBjdSBraG9uZyBjbyBk YXQgc2FuIHh1YXQuIA0KTGF1IHJvaSBraG9uZyB2ZSB0aGFtIHF1ZSB2aSBjb24gY2hvIG5hbyBu dWEgbWEgdmUuIA0KDQpWYW8gbmFtIGxheSB2byBzaW5oIGNvbiwgdm8gYmFvIGR1YSBoYWkgbWUg Y29uIHZlIHRoYW0gcXVlIG5vaSBtYSBjdSBsYW4gbHVhIG1haSwgDQpjaGFuZyBsZSBjaGkgY2Fp IG5oYSBtYXkgdG8gdHVvbmcgYmFvIGxhIG5vaSBhbmggc2luaCByYSBjaG8gZG8uIE5nb2kgdHJ1 b25nIG5nYXkgeHVhIA0KdG9pIGhvYyBnaW8geGF5IGJhbmcgZ2FjaCBjaGFjIGNoYW4gY2h1IG5n YXkgdHJ1b2Mgbm8gY2hpIGxhIHRyYW5oIHRyZSB2YWNoIGRhdC4gTmV1IGxhIA0KdHJhbmggdHJl IG5odSBuZ2F5IHh1YSBjaGFjIGN1bmcgdHJvaSByYSBiaWVuIHJvaS4gVGhheSBxdWUgaHVvbmcg ZG9pIG1vaSBjdW5nIG11bmcgDQpuaHVuZyBjaGFuaCBsb25nIHF1YSBraGkgdGhheSBiYSBjb24g bWluaCBjdSBub20gbm9wIGxvIGx1LCBiYW8uIE1vbmcgc2FvIGNhYyBjYXAgDQpjaGluaCBxdXll biBxdWFuIHRhbSBodW9uIG51YSBkZW4gY3VvYyBzb25nIGJhIGNvbiBraGkgcXV5ZXQgZGluaCBt b3QgZHUgYW4gbG9uIG5hbyBkby4NCg0KQnVpIEh1dSBCYW5nOg0KIA0KRGFuZyB0aHVvbmcgcXVh IA0KSG9hbiBjYW5oIGNoaSBEYW5nIFRoaSBIYSB0cm9uZyBiYWkgdmlldCBuYXkgZGFuZyB0aHVv bmcgcXVhLiBIYXkgZ2l1cCBkbyBjaGkgSGEgbW9pIG5ndW9pIG9pLg0KDQpUaGFuaCBWaW5oOg0K DQpOaGFuIHRhaSANCkRvYyBiYWkgYmFvIG5heSB0aGF5IGJ1YyB4dWMgcXVhLiBEdW5nIGxhIG5o YW4gdGFpIGNodSBraG9uZyBwaGFpIHRoaWVuIHRhaS4gVHJhY2ggbmhpZW0gdGh1b2MgdmUgYWkg ZGF5Pw0KIA0KTmd1eWVuIFRoaSBIYW5oOiANCg0KQ29uZyBuZ2hpZXAgbGFtICJ4ZXAiIGRvaSBk YW4uIFRob2F0IG51b2MgbWEga2hvbmcgbGFtIHRoaSBraWV1IG5hbyBkYW4gY3VuZyBjaGV0IGto aSBjdSAiY2hhbiIgbWEga2hvbmcgdGhvYXQuIA0KS2hvIHF1YSEgUGhhaSB4ZW0gbGFpIGhvaSBj YWMgb25nIHF1eSBob2FjaC4uLg0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIw MTAxMTE3LWx1LWx1dC12YW4taG9hbmgtaGFuaC10YWktbWllbi10cnVuZy12aWV0LW5hbSBUcm9u ZyBUaGFuaCAxNy8xMS8yMDEwIA0KDQpMdSBsdXQgdGFpIG1pZW4gVHJ1bmcgVmlldCBOYW0ga2hp ZW4gMTUgbmd1b2kgdGhpZXQgbWFuZyANCg0KKEFuaDogTXVhIGx1IGtoaWVuIG1vdCBzbyB0cnVj IGdpYW8gdGhvbmcgYmkgdGFjIG5naGVuLiBSZXV0ZXJzKQ0KDQpUYWkgbWllbiBUcnVuZyBWaWV0 IE5hbSwgbXVhIGx1IHRpZXAgdHVjIGhvYW5oIGhhbmguIFRoZW8gYmFvIGNoaSBWaWV0IE5hbSwg dHUgVGh1YSANClRoaWVuIC0gSHVlIGRlbiBCaW5oIERpbmgsIG11YSByYXQgdG8sIGN1bmcgdm9p IHRyaWV1IGN1b25nIHZhIGx1IHR1IHRodW9uZyBuZ3VvbiBkbyB2ZSANCmtoaWVuIG5oaWV1IHZ1 bmcgcm9uZyBsb24gY2hpbSB0cm9uZyBudW9jLiBUaGVvIHRvbmcga2V0IHNvIGtob2kgZGEgY28g aXQgbmhhdCAxNSBuZ3VvaSANCmNoZXQgdmEgbWF0IHRpY2guIA0KDQpUaW5oIGRlbiB0b2kgbmdh eSBob20gcXVhICgxNi8xMSksIHRhaSBRdWFuZyBOYW0sIGNvIDYgbmd1b2kgY2hldCwgdGFpIFF1 YW5nIE5nYWksIDMgDQpuZ3VvaSBjaGV0IHZhIG1hdCB0aWNoLCBtb3QgZW0gbmhvIGJpIG51aSBk YSBzYXQgbG8gZGUgY2hldCwgcmllbmcgdGFpIFRodWEgVGhpZW4gLSBIdWUsIA0KY28gNSBuZ3Vv aSBjaGV0IHZhIG1hdCB0aWNoLiBIYW5nIGNodWMgbmdoaW4gbmd1b2kgYmkgbnVvYyBjbyBsYXAu DQoNCkx1IHRyYW4gcXVhIHF1b2MgbG8gMUEsIHRydWMgZ2lhbyB0aG9uZyBjaGluaCB4dXllbiBW aWV0LCB0YWkgbmhpZXUgZG9hbiwga2hpZW4gZ2lhbyANCnRob25nIGFjaCB0YWMuIENhbmggc2F0 IHBob25nIHRvYSBuaGlldSBkb2FuIGR1b25nIHF1b2MgbG8sIGJpIGx1dCBuaGFuIGNoaW0uIFRh aSANClF1YW5nIE5hbSwgbW90IGNoaWVjIHhlIGtoYWNoIDMwIG5ndW9pLCBjaGF5IHR1IE5naGUg QW4gZGVuIFRQIEhvIENoaSBNaW5oIGRhIGJhdCANCm5nbyBtYXQgbGFpIGxhbyB4dW9uZyBkb25n IG51b2MgbHUuIFR1eSBuaGllbiwgdGF0IGNhIGhhbmgga2hhY2ggdHJlbiB4ZSBkZXUgZHVvYyBj dXUgDQp0aG9hdC4gDQoNClJpZW5nIHRhaSB0aGFuaCBwaG8gSHVlLCBudW9jIGx1IGRhbmcgbGVu IGxhbSBuZ2FwIGhvbiAyNTAwMCBuZ29pIG5oYSwgdHJlbiB0b25nIHNvIA0KMjcwMDAgbmhhIGJp IG5nYXAgbyB0b2FuIHRpbmguIEhvbiAxMDAwMDAgaG9jIHNpbmggY3VhIHRpbmggbmF5IHBoYWkg bmdoaSBob2MgdHUgbmdheSANCmhvbSBxdWEuDQoNCk5ndW9pIGRhbiB0YWkgbmhpZXUga2h1IHZ1 YyBidW9jIHBoYWkgc3UgZHVuZyB0aHV5ZW4gZGUgZGkgY2h1eWVuLiBUcnVvYyBkbywgbmdheSBj aHUgDQpuaGF0ICgxNC8xMSksIHRhaSBRdWFuZyBOZ2FpLCBsdSBxdWV0IGJhdCBuZ28gZG8gdmUg Y2F0IGRvaSBtb3QgdHV5ZW4gZHVvbmcgY2FwIGh1eWVuIGRpIA0KdmUgbW90IGxhbmcgY2hhaSwg Y28gbGFwIDE1MDAgaG8gZGFuLCB2b2kga2hvYW5nIDYwMDAgbmd1b2ksIGN1b24gcGhhbmcgZGkg bmhpZXUgbmdvaSBuaGEuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdl cy8yMDEwNDcvMjAxMDExMjEwMzE5MzUuYXNweCBIQyBESCBYVCBUTiBMWCBEUCAyMS8xMS8yMDEw IDM6MTkgDQoNCk1pZW4gVHJ1bmcgaG9hbmcgdGFuIHNhdSBsdSAgDQogIA0KSG9tIHF1YSwgbHUg byBjYWMgdGluaCBtaWVuIFRydW5nIGJhdCBkYXUgcnV0LCBkZSBsYWkgbmhpZXUgdnVuZyBxdWUg dGFuIGhvYW5nLCB4byB4YWMuIA0KDQpUcmFuZyB0YXkgDQoNClRhaSBRdWFuZyBOZ2FpLCBzdW90 IG1heSBuZ2F5IHF1YSwgZ2lhIGRpbmggb25nIFRpZXUgVmlldCBTYW5nIG8gdGhvbiBQaHVvYyBU aGllbiwgeGEgDQpCaW5oIEhhaSwgSC5CaW5oIFNvbiBkYW0gbWluaCB0cm9uZyBtdWEgZ2lvIGNv IGdhbmcgdGltIGtpZW0sIG5oYXQgbmhhbmggbmh1bmcgdmllbiANCm5nb2ksIGdhY2ggY29uIHNv dCBsYWkgdHJvbmcgbmdvaSBuaGEgZG8gbmF0LiBPbmcgU2FuZyBudW9jIG1hdCBydW5nIHJ1bmc6 ICJLaG9uZyBjb24gDQpnaSBudWEgaGV0IGNodSBvaS4gTmhhIHNhcCB0YW4gdGFuaCwgcGh1b25n IHRpZW4gZGFuaCBiYXQgZGV1IHRyb2kgcmEgYmllbiBjYSByb2kiLiBCYW8gDQpuaGlldSBuYW0g dmF0IGxvbiB2b2kgc29uZyBnaW8sIG5hbSAyMDA3IGdpYSBkaW5oIG9uZyBTYW5nIG1vaSBkYW5o IGR1bSBkdW9jIGl0IHRpZW4gDQp4YXkgbmdvaSBuaGEgY2FwIDQsIG5odW5nIGNoaSB0cm9uZyBw aHV0IGNob2MgbHUgZGEgcXVldCBzYWNoLiBDYSBnaWEgZGluaCA4IG5ndW9pIGdpbyANCnBoYWkg dGEgdHVjIG5obyBiYSBjb24gY2hvbSB4b20uICANCg0KKEFuaDogTGFuZyBjaGFpIHRob24gUGh1 b2MgVGhpZW4sIHhhIEJpbmggSGFpLCBodXllbiBCaW5oIFNvbiAoUXVhbmcgTmdhaSkgc2F1IGNv biANCmx1IHF1ZXQgLSAgQW5oOiBIaWVuIEN1KSANCg0KR2lhIGRpbmggYW5oIFRydW9uZyBWYW4g QmUgKDQ4IHR1b2ksIGN1bmcgbyB0aG9uIFBodW9jIFRoaWVuKSBzYXUgbmhpZXUgbmFtIGJ1b24g DQpjaGFpIG11dSBzaW5oIGtoYXAgbm9pIG5odW5nIG5naGVvIHZhbiBob2FuIG5naGVvIG5lbiB2 byBjaG9uZywgY29uIGNhaSBsYWkgZGF0IGRpdSB2ZSANCnF1ZSBzaW5oIHNvbmcuIExhIGhvIG5n aGVvIG5lbiBhbmggZHVvYyBOaGEgbnVvYyBobyB0cm8gaXQgdGllbiBtb2kgbGFtIGR1b2Mgbmdv aSBuaGEgDQpjaHVuZyA0MG0yIGRlIG8uIFNvbmcgbHUgcXVldCBkaSBxdWEsIG5oYSBodSBob25n IG5hbmcga2hvbmcgdGhlIG8gZHVvYyBudWEsIDIgZ2lhbiANCmx1b2kgY3VuZyB0cm9pIHJhIGJp ZW4uIEdpYSBkaW5oIGFuaCBCZSByb2kgdmFvIGNhbmgga2hvbiBraG8gY2hhbmcgYmlldCBsYXkg ZGF1IHJhIHRpZW4gDQpkZSBkdW5nIGxhaSBuaGEgbW9pLCBzYW0gbHVvaSBtb2kuDQoNCihBbmg6 IE1vdCBuZ29pIG5oYSBvIGh1eWVuIFR1eSBQaHVvYywgQmluaCBEaW5oIGJpIGx1IGN1b24gc2Fw IC0gQW5oOiBYdWFuIFRodWMpIA0KDQpDdW5nIG5odSBsYW5nIGNoYWkgUGh1b2MgVGhpZW4sIGxh bmcgY2hhaSBTb24gVHJhLCB4YSBCaW5oIERvbmcgKEguQmluaCBTb24pIGJpIHRoaWV0IA0KaGFp IG5hbmcgbmUgZG8gbHUgdm9pIDYgZ2lhIGRpbmggbmhhIHNhcCBob2FuIHRvYW4uIFRyb25nIGRv IHRydW9uZyBob3AgZ2lhIGRpbmggY2hpIA0KRGFuZyBUaGkgSGEgbGEgYmkgZGF0IG5oYXQuIENo YXQgY2hpdSwgdGFuIHRpZW4gbWFpIG5oaWV1IG5hbSwgdmF5IG11b24gY3VhIG5ndW9pIHRoYW4g DQpob24gMTAgdHJpZXUgZG9uZywgbmFtIDIwMDUgdm8gY2hvbmcgY2hpIG1vaSBsYW0gZHVvYyBu Z29pIG5oYSwgY2EgZ2lhIGRpbmggbXVuZyB2byANCmtlLiBTb25nIHRhaSB1b25nIGxhaSBsaWVu IHRpZXAgZG8gYXAgeHVvbmcuIENhY2ggZGF5IDEgbmFtIGNob25nIGJpIHR1IG5hbiB0cm9uZyBs dWMgZGkgDQpiaWVuLCBnYW5oIG5hbmcgbXV1IHNpbmggZG9uIGhldCBsZW4gdmFpIG5ndW9pIGdv YSBwaHUuIE1vdCBtaW5oIGNoaSBIYSBidW9uIGNoYWkgZHUgDQpuZ2hlIHR1IGxhbSB0aHVlIGRl biBsYW0gY29uZyBuaGFuIGNobyBtb3QgZG9hbmggbmdoaWVwIGRhbSBnbyBvIEtodSBraW5oIHRl IER1bmcgDQpRdWF0IGRlIG51b2kgNSBjb24gYW4gaG9jLiANCg0KTm9pIGRhdSBtYXQgY2hvbmcg Y2h1YSBraXAgbmd1b2kgbmdvYWksIGNoaSBIYSBsYWkgbmdhIHF1eSBraGkgbHUgdHJhbiBxdWEg YmllbiBuZ29pIG5oYSANCnRoYW5oIGRvbmcgZG8gbmF0LiBOZ29pIHRoYW4gdGhvIGJlbiBkb25n IGdhY2ggdnVuLCBsYXkgdGF5IHZ1b3QgbGFpIG5odW5nIHRhbSBnaWF5IA0Ka2hlbiBjdWEgY29u IHZ1aSB0cm9uZyBnYWNoIGRhLCBjaGkgSGEgbWV1IG1hbzogIlNhbyBzbyBwaGFuIGN1YSB0dWkg bGFpIGtob24ga2hvIHRoZSANCm5heS4gU3VvdCBkb2kgY3VjIGtobyBjdW9pIGN1bmcgY3VuZyB0 cmFuZyB0YXkuIEJheSBnaW8gY2hhbmcgYmlldCBsYXkgZGF1IHJhIHRpZW4gdHJhIG5vLCANCmxh bSBuaGEuIE1heSBkdWEgbmhvIGNoYWMgcGhhaSBuZ2hpIGhvYyBkaSBsYW0gdGh1ZSBjaG8gbGF5 IGdpIGFuIi4gDQoNCkNvbiB0YWkgUGh1IFllbiwgc2F1IDQgdHJhbiBsdSBsaWVuIHRpZXAsIG5o aWV1IHZ1bmcgcXVlIHRybyB0aGFuaCB4byB4YWMuIENhbiBuaGEgY3UgbmF0IA0KY3VhIGN1IFZv IERvbiBQaG9uZyAoOTIgdHVvaSwgbyB0aG9uIERpbmggVHJ1bmcgMiwgeGEgQW4gRGluaCwgaHV5 ZW4gVHV5IEFuKSwgYmkgDQpuZ2FtIG5oaWV1IG5nYXkgdHJvbmcgbHUgZGFuZyBjbyBuZ3V5IGNv IGRvIHNhcCBiYXQgY3UgbHVjIG5hby4gTHUgbHV0IHRyaWVuIG1pZW4ga2hpZW4gDQpjdW9jIHNv bmcgY3VhIGN1IHZvbiBkYSBraG8ga2hhbiBnaW8gbGFpIGNhbmcga2hvIGtoYW4gaG9uLiBMdSBy dXQsIHRhaSBzYW4gZHV5IG5oYXQgY3VhIA0KY3UgY29uIGxhaSBsYSB2YWkgbG9uIGdhbyBhbSBt b2MuIEN1IFBob25nIHRoYW4gdGhvOiAiQ2h1YSBkYXkgbnVhIHRoYW5nLCB0dWkgcGhhaSBjaGF5 IA0KbHUgNCBsYW4uIEx1IGRpIGx1IGxhaSBuaHUgdGhlIG5heSwgdHVpIGNodWEgdHVuZyBjaHVu ZyBraWVuLiBMdSBrZW8gZGFpLCB4b20gbGFuZyB4byB4YWMsIA0KY2F5IGNvaSB0aG9pIHJ1YSwg Y29uIG5ndW9pIHRoaSBraWV0IHN1YyIuLi4NCg0KMS4wMDAgdGFuIGdhbyBjdXUgdHJvIEJpbmgg RGluaA0KDQooQW5oOiBPbmcgVm8gRG9uIFBob25nIHZvaSBuaHVuZyBsb24gZ2FvIGl0IG9pIGFt IG1vYyBjb24gbGFpIHNhdSBsdSAtIEFuaDogRHVjIEh1eSkgDQoNClRyb25nIGtoaSBkbywgdGFp IEJpbmggRGluaCwgc2F1IDMgdHJhbiBsdSBsaWVuIHRpZXAgdHJvbmcgdm9uZyBudWEgdGhhbmcs IG5oaWV1IHZ1bmcsIA0KbmhhdCBsYSBraHUgZG9uZyAyIGh1eWVuIFR1eSBQaHVvYyB2YSBQaHUg Q2F0IHRybyBuZW4gdGFuIGhvYW5nLiBTYW5nIDIwLjExLCBsdSBkYSBydXQgDQpuaHVuZyBuaGll dSB4YSBraHUgZG9uZyBjdWEgaHV5ZW4gVHV5IFBodW9jIHZhbiBjb24gY2hpbSB0cm9uZyBudW9j IGRvIHZhbyB0aG9pIA0KZGllbSB0cmlldSBjdW9uZy4gVHJvbmcgZG90IGx1IG1vaSBuYXksIHRv YW4gaHV5ZW4gY28gNi41NDAgbmdvaSBuaGEgYmkgbmdhcCwgMTYgbmhhIGJpIA0Kc2FwIGhvYW4g dG9hbi4gRG8gbnVvYyBsdSB2YW4gY29uIG8gbXVjIGNhbyBuZW4gdHJlbiAzMC4wMDAgaG9jIHNp bmggdHJlbiBkaWEgYmFuIA0KaHV5ZW4gdGllcCB0dWMgbmdoaSBob2MuIEhpZW4gdGFpIDIgeGEg UGh1b2MgSG9hIHZhIFBodW9jIFRoYW5nIGNvIDEuMzAwIGhvIHZvaSA1LjIwMCANCm5oYW4ga2hh dSBvIGNhYyB2dW5nIG5nYXAgc2F1IGRhbmcgY2FuIGN1dSB0cm8gbHVvbmcgdGh1YywgbnVvYyB1 b25nLiANCg0KQ3VuZyB0cm9uZyBuZ2F5IDIwLjExLCBQaG8gdGh1IHR1b25nIEhvYW5nIFRydW5n IEhhaSBkZW4gQmluaCBEaW5oIGtpZW0gdHJhIHRpbmggDQpoaW5oIG11YSBsdSwgdGhhbSwgdGFu ZyBxdWEgY2hvIDIgZ2lhIGRpbmggY28gbmhhIGJpIHNhcCBsYSBWYW4gVGhpIEtldCAoNzggdHVv aSkgdmEgDQpOZ3V5ZW4gVGhpIEJheSAoNTEgdHVvaSwgY3VuZyBvIHRob24gQ2hhbmggSG9pLCB4 YSBDYXQgQ2hhbmgsIEguUGh1IENhdCksIGNoaWEgYnVvbiANCnZvaSBnaWEgZGluaCBuYW4gbmhh biBEdW9uZyBUaGkgRGllbSAobyBILkFuIE5ob24pIGJpIG51b2MgbHUgY3VvbiB0cm9pLi4uIA0K DQpUYWkgYnVvaSBsYW0gdmllYyB2b2kgbGFuaCBkYW8gdGluaCwgUGhvIHRodSB0dW9uZyBjaG8g YmlldCBDaGluaCBwaHUgcXV5ZXQgZGluaCBobyB0cm8gDQp0aW5oIEJpbmggRGluaCAxLjAwMCB0 YW4gZ2FvIGRlIGN1dSBkb2kgY2hvIG5ndW9pIGRhbiB2dW5nIGx1LCAxMDAgY28gc28gdGh1b2Ms IDQwMC4wMDAgDQp2aWVuIENsb3JhbWluIEIgeHUgbHkgbmd1b24gbnVvYy4gUGhvIHRodSB0dW9u ZyBjaGkgZGFvIHRpbmggY2FuIGRvYyBzdWMga2hhYyBwaHVjIA0KaGF1IHF1YSBtdWEgbHUsIGdp dXAgbmd1b2kgZGFuIHNvbSBvbiBkaW5oIGN1b2Mgc29uZywgdGFtIHVuZyB0aWVuIG11YSBkdSBs dW9uZyB0aG9jIA0KZ2lvbmcgZGUgc2FuIHh1YXQgdnUgZG9uZyB4dWFuIHRoZW8gZHVuZyBsaWNo IHRob2kgdnUsIGtoYW4gdHJ1b25nIGxhcCBkdSBhbiBuYW5nIGNhcCANCnZhIHN1YSBjaHVhIGNh YyBobyB0aHV5IGxvaSBoaWVuIHRyb25nIHRpbmggdHJhbmcgdGhpZXUgYW4gdG9hbiBuaGFtIHRy YW5oIG5ndXkgY28gdm8gDQpkYXAuLi4NCg0KVGhpZXQgaGFpIGxvbiANCg0KUXVhIGNhYyB0cmFu IG11YSBsdSB0dSBkYXUgdGhhbmcgMTEgZGVuIG5heSwgdGluaCBRdWFuZyBOZ2FpIGNvIDExIG5n dW9pIGNoZXQsIDEgbmd1b2kgDQptYXQgdGljaCwgMzIgbmd1b2kgYmkgdGh1b25nLCA1MCBuZ29p IG5oYSBzYXAgZG8gaG9hbiB0b2FuLCB0b25nIHRoaWV0IGhhaSB1b2MgdGluaCBnYW4gDQo0NDQg dGkgZG9uZy4gVGFpIEJpbmggRGluaCwgY28gMTAgbmd1b2kgYmkgY2hldCwgMSBuZ3VvaSBtYXQg dGljaCwgMTUxIG5oYSBzYXAgaG9hbiB0b2FuLCANCjI4MSBuaGEgaHUgaG9uZyBuYW5nLCBnYW4g MjAuMDAwIG5oYSBiaSBuZ2FwIG51b2MsIHRvbmcgdGhpZXQgaGFpIGxlbiBkZW4gZ2FuIDcwMCB0 aSANCmRvbmcuIENvbiB0YWkgUGh1IFllbiwgY3VuZyBkYSBjbyAxMCBuZ3VvaSBjaGV0IHZpIG11 YSBsdS4gDQoNClRhaSBLaGFuaCBIb2EsIG1heSBuZ2F5IHF1YSB0cmVuIGRpYSBiYW4gaHV5ZW4g TmluaCBIb2EgbXVhIGxvbiBrZW8gZGFpLCBuaGlldSB4YSBiaSANCmNoaWEgY2F0IGRvIG51b2Mg bHUgZGFuZyBjYW8uIER1b25nIHZhbyBjYWMgeGEgTmluaCBQaHUsIE5pbmggVGhhbiwgTmluaCBI YSB2YSBOaW5oIA0KQmluaCBiaSBuZ2FwIHNhdSB0dSAwLDUgLSAxbSwgZ2F5IGFjaCB0YWMgZ2lh byB0aG9uZy4gDQoNClRoZW8gQmFuIGNoaSBodXkgUENMQiBodXllbiBOaW5oIEhvYSwgbHVjIGx1 b25nIGN1dSBobyBkYSBkaSBkb2kga2hhbiBjYXAgNTMxIGhvIG8gDQpjYWMgeGEgTmluaCBIYSwg TmluaCBCaW5oLCBOaW5oIERvbmcgcmEga2hvaSB2dW5nIG5nYXAgbHV0LiBBbmggUGhhbiBOZ29j IEJhbyAoMTkgDQp0dW9pLCBvIHRob24gQ2hhcCBMZSwgeGEgTmluaCBUaGFuKSwgYmkgbnVvYyBj dW9uIHRyb2kgdmFvIGNoaWV1IDE5LjExLCBzYW5nIGhvbSBzYXUgbW9pIHZvdCBkdW9jIHhhYy4u LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ4LzIwMTAx MTIzMDEwNTAyLmFzcHggVHVlIE5ndXllbiAoZ2hpKSAyMy8xMS8yMDEwIDE6MDUgIA0KDQpBbiB0 b2FuIGNobyBuZ3VvaSBkYW4gcGhhaSBsYSB1dSB0aWVuIHNvIDEgIA0KICANCkJlbiBsZSBwaGll biBjaGF0IHZhbiBob20gcXVhLCBQaG8gdGh1IHR1b25nIENoaW5oIHBodSBIb2FuZyBUcnVuZyBI YWkgZGEgdHJhIGxvaSANCmJhbyBnaW9pIHZlIHZhbiBkZSBtYSBjdSB0cmkgZGFuZyBxdWFuIHRh bTogYW4gdG9hbiBjdWEgaG8gY2h1YSB0aHV5IGRpZW4uIA0KDQotIFRodWEgb25nLCBjbyBkYWkg YmlldSBjaG8gcmFuZyB2aWVjIHhhIGx1IHR1IGNhYyBobyB0aHV5IGRpZW4gbGFtIHRhbmcgdGhl bSB0aGlldCBoYWkgDQpjaG8gZG9pIHNvbmcgbmd1b2kgZGFuIHRyb25nIHRob2kgZ2lhbiBxdWEu IFRodWMgdGUgdGhpIG5ndXllbiBuaGFuIHR1IHZpZWMgeGEgbHUgY3VhIA0KaG8gdGh1eSBkaWVu IGRlbiBkYXU/IA0KDQpDdW5nIGNvIG5ndXllbiBuaGFuIGN1YSB0aHV5IGRpZW4gbmh1bmcgbmh1 IEJvIHRydW9uZyBQaGFtIEtob2kgTmd1eWVuIGRhIHBoYXQgDQpiaWV1OiB0aW5oIGhpbmggdGhv aSB0aWV0IGNvIGRpZW4gYmllbiBiYXQgdGh1b25nLCBsdW9uZyBtdWEgdHJvbmcgdm9uZyA3IG5n YXkgbWEgYmFuZyANCmNhIG5hbS4gQ2h1YSB0dW5nIGJhbyBnaW8gcGhhaSBkaSBjaG9uZyBsdXQg byBOaW5oIFRodWFuIG1hIHZ1YSByb2kgZGEgcGhhaSBsYW0gdmllYyANCmRvLiANCg0KVmFuIGRl IGNhbiBydXQga2luaCBuZ2hpZW0sIGRpZXUgaGFuaCB0b3QgaG9uIGRvaSB2b2kgdmllYyB4YSBs dSBsYSBvIGNobzogdHJ1b2MgbXVhIG11YSANCmJhbyBjYWMgdGluaCBjbyBjYWMgZG9hbiBkaSBr aWVtIHRyYSBjYWMgaG8gdGh1eSBkaWVuLiBWaWVjIHF1YW4gdGFtIHRvaSBjYWMgaG8gY2h1YSBs YSANCnZhbiBkZSByYXQgcXVhbiB0cm9uZywgdHJ1b2MgbXVhIG11YSBsdSBwaGFpIGRpIGtpZW0g dHJhLCBkYW5oIGdpYSB4ZW0gY2FpIGhvIG5heSBjbyANCmRhbSBiYW8gdmUgcXVhbiB0cmFjLCB2 ZSBjaGF0IGx1b25nIGhheSBraG9uZyBkZSBxdXlldCBkaW5oIGNobyBwaGVwIG5vIHRpY2ggbnVv YyBoYXkgDQpraG9uZz8NCg0KLSBUcmVuIHRodWMgdGUsIHZhbiBjbyBzdSBsbyBsYW5nIHZlIHZp ZWMgYnVvbmcgbG9uZyB0cmFjaCBuaGllbSwgdmkgZHUgbmh1IGRhcCBIbyBIbywgDQpraGkgcGhh dCBoaWVuIHJhIGtldCBjdW5nIGN1YSB4YSB0aGkgZG9hbiBraWVtIHRyYSBjdWEgdGluaCBwaGF0 IGhpZW4gbGEga2hvbmcgY28gbmd1b2kgDQp0cnVjIHRyb25nIGx1YyBkby4gTmV1IHZhaSBiYSB0 aHV5IGRpZW4gY3VhIG1vdCB0aW5oIG1hIGN1ICJxdWVuIiB0cnVjIG5odSB2YXkgdGhpIHhheSAN CnJhIHN1IGNvIG5ndXkgY28gZHVvaSBoYSBkdSByYXQgbmd1eSBjYXA/DQoNCkR1bmcgbmh1IHZh eS4gSG8gSG8gY28gZGFjIGRpZW0gbGEgaG8gZGFuZyB4YXkgZHVuZywgY2h1YSB2YW4gaGFuaCBu ZW4gdGhpZXQgYmkgY2h1YSANCmNodWFuIHZhIG5ndW9pIHZhbiBoYW5oIGNodWEgY2h1YW4uIFR1 eSBuaGllbiwgZG8gY3VuZyBsYSB0aHVjIHRlIGNhbiBwaGFpIHJ1dCBraW5oIA0KbmdoaWVtLiBW dWEgcm9pIHRvaSBjdW5nIGRhIGNobyBkb2FuIGRpIGtpZW0gdHJhIG8gZG8gdmEgY2hhYyBjaGFu IHNlIHBoYWkgeHUgbHkgbmh1bmcgDQpuZ3VvaSBjbyB0cmFjaCBuaGllbS4NCg0KLSBRdXkgdHJp bmggZHVvYyBkYXQgcmEgZHVuZywgdmFuIGhhbmggZHVuZyBuaHVuZyB0cm9uZyB0cnVvbmcgaG9w IG11YSBsb24gdmEgdmFuIHBoYWkgeGEgbHUgdGhpIHBoYWkgbGFtIHRoZSBuYW8/DQoNClBoYWkg ZGF0IGRpYSB2aSBjdWEgbmd1b2kgZGFuIG8gZHVvaSBoYSBkdSwgY2hvbiBuZ2FwIHRoZW0gaGF5 IGNob24gdm8gaG8uIFRyb25nIA0KdHJ1b25nIGhvcCBuYXkgdGhpIGtob25nIGNvIGhvIHRoaSBu dW9jIGx1IHZhbiB2ZSBiYW5nIGRheSBjaG8gbmVuIHBoYWkgY2hvbiBnaWFpIHBoYXAgDQpraG9u ZyB0b2kgaG9uLiBWYW4gZGUgY2hpbmggZGUgZGFtIGJhbyBhbiB0b2FuIGNobyBoYSBkdSBsYSBw aGFpIHRob25nIGJhbyB0cnVvYyB0b2kgdGF0IA0KY2EgY2FjIHhhLCBjYWMgaHV5ZW4sIGJhbiBj aGkgaHV5IHBob25nIGNob25nIGx1dCBiYW8gbyBkb2MgY29uIHNvbmcgZG8sIGRlIG5ndW9pIHRh IGtpcCBzbyB0YW4uDQoNClZpIGR1LCBIbyBIbyBraGkgeGF5IHJhIHN1IGNvIHRoaSB2aWVjIGRh dSB0aWVuIGxhIHBoYWkgc28gdGFuIGRhbiwga2UgY2EgY2h1YSBiaWV0IGNvIGtoYWMgDQpwaHVj IGR1b2Mgc3UgY28gZG8gaGF5IGtob25nIG5odW5nIGN1dSBkYW4gdmFuIGxhIHV1IHRpZW4gc28g MS4gQ28gdGhlIG5nYXAgbmh1bmcgDQpraG9uZyBkdW9jIHRoaWV0IGhhaSB2ZSB0aW5oIG1hbmcg bmd1b2kgZGFuLg0KDQotIE1hYyBkdSBkYSBjbyBxdXkgdHJpbmggY2hhdCBjaGUgbmh1bmcgdHUg dHJ1b2MgdG9pIG5heSBjaHVhIHh1IGx5IG5naGllbSBuaHVuZyANCnRydW9uZyBob3AgdmkgcGhh bS4gVmF5IHRob2kgZ2lhbiB0b2kgc2UgY28gbmh1bmcgZG9uZyB0aGFpIGdpIHF1eWV0IGxpZXQg aG9uIHRyb25nIA0KdmllYyB4dSBseSBjYWMgdmkgcGhhbSB0dW9uZyB0dSBuaHUgbyBzb25nIEJh IEhhPw0KDQpWYW4gZGUgbyBzb25nIEJhIEhhIHRoaSBkb2FuaCBuZ2hpZXAgZG8gcGhhaSB4dSBs eSBjYSB0cnVjIGRhIGtob25nIGJhbyBjaG8gVUJORC4gVmkgDQpwaGFtIG5heSBraG9uZyBkZW4g bXVjIFRoYW5oIHRyYSBDaGluaCBwaHUgcGhhaSB2YW8gY3VvYyBoYXkgcGhhaSBkdWEgcmEgdG9h IGFuIHZpIA0KY2h1YSBnYXkgY2hldCBuZ3VvaS4NCg0KLSBDaGluaCBwaHUgY28gY2h1IHRydW9u ZyBsYSBraWVuIHF1eWV0IGR1bmcgbmh1bmcgdGh1eSBkaWVuIGtob25nIGhpZXUgcXVhLiBWYXkg DQpuaHVuZyB0aHV5IGRpZW4gbmFvIGR1b2MgeGVtIGxhIGtob25nIGhpZXUgcXVhIHZhIGtob25n IGNhbiB0aGlldD8NCg0KVGhlbyBiYW8gY2FvIG1vaSBuaGF0IGxhIHNlIGNobyBkdW5nIDM4IHRo dXkgZGllbiBvIG1pZW4gVHJ1bmcsIHZpZWMgcmEgc29hdCB2YW4gZGFuZyANCmR1b2MgdGllcCB0 dWMuIFZpZWMgbmF5IGxhIGhvYW4gdG9hbiBiaW5oIHRodW9uZywgcXV5IGhvYWNoIG1vaSBjaGkg bGEgYnVvYyBkYXU7IHR1IHF1eSANCmhvYWNoIG1vaSBsYXAgcmEgZHUgYW4sIGxhcCBkdSBhbiBy b2kgbW9pIGJpZXQgY28gaGlldSBxdWEgaGF5IGtob25nLi4uIE5ldSBraG9uZyBoaWV1IHF1YSB0 aGkgYm8gdmEgbGFpIGRpZXUgY2hpbmggcXV5IGhvYWNoLiANCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ1LzIwMTAxMTA2MDYwODMxLmFzcHggVHJhbiBUaGFu aCBCaW5oIDA2LzExLzIwMTAgNjowOCANCg0KVGh1IHR1b25nOiBUYW4gc3VhdCBsdSB0YWkgbWll biBUcnVuZyBuZ2F5IGNhbmcgZGF5IGhvbiAtIENhbiBtb3QgZ2lhaSBwaGFwIHRvbmcgdGhlICAN CiAgDQpOYW0gMjAwOSwgbHUgdGFuIHBoYSBQaHUgWWVuLCBCaW5oIERpbmguIE5hbSAyMDEwLCBs dSBjdW9uIGN1b24gY2hvbmcgbGVuIGx1IGRvIHZlIA0Ka2h1IHZ1YyBjYWMgdGluaCBUcnVuZyBU cnVuZyBCbyB2YSBCYWMgVHJ1bmcgQm8sIGdheSBuZW4gY2FpIGNoZXQgY2hvIGhhbmcgdHJhbSBu Z3VvaS4gDQoNCkNhIG51b2MgY2h1YSBoZXQgYmFuZyBob2FuZywgbGljaCBjdXUgdHJvIGN1YSBj YWMgZG9hbiB2YW4gY2h1YSBkdXQgdGhpIGx1IGxhaSBkbyBhcCANCnh1b25nIE5hbSBUcnVuZyBC by4NCg0KRGlldSBkYW5nIG5vaSBsYSBkb25nIG51b2MgY3VhIGNhYyBjb24gbHUgdnVhIHF1YSBy YXQgaHVuZyBkdS4gTHV1IGx1b25nIG51b2MgZG8gdmUgDQpoYSBsdXUgdm9pIGN1b25nIGRvIHJh dCBtYW5oLCBraGllbiBjaG8gbmhhIGN1YSwgdnVvbiB0dW9jLCBjYXUgY29uZywgZHVvbmcgc2Eu Li4gYmkgDQpjdW9uIHBoYW5nLiBEYXUgbGEgbmd1eWVuIG5oYW4gY3VhIGNhdSBjaHV5ZW4gbHUg dGh1b25nIG5pZW4gbyBtaWVuIFRydW5nIGNoYWMgYWkgDQpjdW5nIHJvLCB2aSB2YXkgY3VtIHR1 ICJzb25nIGNodW5nIHZvaSBsdSIgYmF0IGRhdSBhcCBkdW5nIHR1IHRoYXAgbmllbiA5MCBjdWEg dGhlIGt5IA0KdHJ1b2MgZG9pIHZvaSB2dW5nIGNoYXUgdGhvIEN1dSBMb25nLCBiYXkgZ2lvIGxh aSBwaGFpICJuaHVvbmciIGNobyBtaWVuIFRydW5nLiBWYSANCmNoYWMgY2hhbiByYW5nLCBwaGFp IGNvIHF1eWV0IHNhY2ggbmh1IHRoZSBuYW8gY2hvIG1pZW4gVHJ1bmcsIG1vdCBraGkgY3VtIHR1 IHRyZW4gDQpkdW9jICJhcCIgdmFvIGRvaSBzb25nIGN1YSBoYW5nIGNodWMgdHJpZXUgZGFuIHRo dW9jIGNhYyB0aW5oIGtlbyBkYWkgdHUgTmluaCBUaHVhbiB0cm8gDQpyYSBkZW4gVGhhbmggSG9h Lg0KDQpDdW5nIG5odSB0cnVvYyBkYXksIGtoaSAiYXAiIGN1bSB0dSAic29uZyBjaHVuZyB2b2kg bHUiIHZhbyBkb2kgc29uZyBjdWEgbmd1b2kgZGFuIA0KY2FjIHRpbmggREJTQ0wsIENoaW5oIHBo dSBkYSBwaGFpIGNvIGhhbmcgbG9hdCBxdXlldCBzYWNoIG5odSB4YXkgbmhhIHZ1b3QgbHUsIG5h byB2ZXQgDQpjdWEgRGluaCBBbiwgdGhvYXQgbnVvYyByYSBiaWVuIFRheSwgaG9hbiB0aGllbiBj YWMgdHV5ZW4gZGUgYmFvIHZlbiB2dW5nIHRydW5nIFRoYXAgDQpNdW9pLi4uIE5odW5nIGJheSBn aW8sIGtoYSBuYW5nIHhheSByYSBsdSBvIG1pZW4gVGF5IGxhIHJhdCBpdCwgdmEgY2hhYyByYW5n IHJhdCBuaGlldSANCm5hbSBzYXUgbmF5IHZhbiBzZSBraG9uZyBjbyBsdSwgY2FjIG1vIGhpbmgg ZHVvYyBhcCBkdW5nIGtob2FuZyAxNSBuYW0gcXVhLCAgcm9pIA0KY3VuZyAgImxhYyBoYXUiLiAN Cg0KQmF5IGdpbywgc29uZyBoYW5oIHZvaSB2aWVjIGNodXllbiBjdW0gdHUgInNvbmcgY2h1bmcg dm9pIGx1IiByYSBtaWVuIFRydW5nLCBtbyBoaW5oIA0KY2hvIG5ndW9pIGRhbiB0aHVvYyBjYWMg dGluaCBtaWVuIFRydW5nIHBoYWkgcmEgc2FvIGRheT8gTGFtIHNhbyBkZSBwaG9uZyB0cmFuaCBs dSANCnF1ZXQsIGx1IG9uZz8gTGFtIHNhbyBkZSBjaGF5IGx1dCBoaWV1IHF1YT8gTGFtIHNhbyBk ZSBnaXVwIG5ndW9pIGRhbiBraG9pIHBoYWkgdGhpZXQgDQptYW5nIGtoaSBsdSB2ZSBiYXQgbmdv IG5odSBtYXkgY29uIGx1IHZ1YSBxdWE/IExhbSBzYW8gZGUgY28gYmllbiBwaGFwIHhhIGx1IGNh YyBobywgDQpkYXAgZGUgZGFtIGJhbyBhbiB0b2FuIGNobyBkYW4/IExhbSBzYW8gZGUgaGFuIGNo ZSBkdW9jIHN1IGh1bmcgZHUgY3VhIGx1IHR1IGRhdSANCm5ndW9uPyBMYW0gc2FvIGRlIG5oYSBj dWEgY3VhIGNhYyB2dW5nIHRydW5nLCB2ZW4gc29uZyBzdW9pIGtob25nIGJpIHNhcCBkbywgYmkg Y3VvbiANCnRyb2k/IExhbSBzYW8gZGUgY2h1eWVuIGRpY2ggdGhvaSBnaWFuIHNhbiB4dWF0IG5v bmcgbmdoaWVwIHZvaSB2aWVjIHRyb25nIGNheSBnaSwgdGh1IA0KaG9hY2ggdmFvIHRob2kgZGll bSBuYW8gZGUgdHJhbmggZHVvYyBsdT8uLi4gDQoNCkhhbmcgbG9hdCBjYXUgaG9pIHJhdCBjYW4g Y2FjIGdpYWkgcGhhcCwga2UgY2EgZ2lhaSBwaGFwIHRydW9jIG1hdCBob2FjIGNhbiBjbyBsYXUg ZGFpLCANCnRhcCB0cnVuZyB0b2kgZGEga2hhIG5hbmcgY3VhIGNhYyBjaHV5ZW4gZ2lhLCBjYWMg bmhhIGtob2EgaG9jLiBEYXkgbGEgY2h1eWVuIHZ1YSBidWMgdGhpZXQgDQpkZSBnaXUgZGFuIHRh aSBjaG8sIGdpdSBjaG8gc3Ugb24gZGluaCwgcGhhdCB0cmllbiBjdWEga2h1IHZ1YyBtaWVuIFRy dW5nLiANCg0KQ2FjIGdpYWkgcGhhcCBub2kgdHJlbiBzZSBwaGFpIGxhIG1vdCBnaWFpIHBoYXAg dG9uZyB0aGUsIGR1YSB2YW8gImhpbmggc29uZyB0aGUgbnVpIiBjdWEgDQptaWVuIFRydW5nIG1h IHhheSBkdW5nIHZhIHRodWMgaGllbi4gS2hvbmcgdGhlIHJhcCBraHVvbiB2b2kgbW90IG1vIGhp bmggY3VhIG1vdCANCnZ1bmcgbWllbiBuYW8ga2hhYyBob2FjIHRyaWVuIGtoYWkgbGUgdGUgdmFp IGJhIGJpZW4gcGhhcCBuaHUgdHJhbmcgYmkgYW8gcGhhbywgeHVvbmcgDQpjaG8gZGFuIGNoYXkg bHV0Li4uIENhbiBkYXQgdmFuIGRlICJzb25nIGNodW5nIHZvaSBsdSIgY3VhIG1pZW4gVHJ1bmcg dHJvIHRoYW5oIG1vdCANCmNodW9uZyB0cmluaCBjYXAgcXVvYyBnaWEsIG5odSBkYSB0dW5nIGRh dCByYSB2b2kgREJTQ0wgdHJ1b2MgZGF5LiAgICAgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vbmV3cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTAwMTU3MTYuYXNweCBUaGFuaCBUdW5nIC0g TGllbiBDaGF1IC0gVC5EYXQgMTAvMDgvMjAxMCAxOjU3IA0KDQpDaGluaCBwaHUgJiBUUCBIQ006 IENoaSB0aWV1ICJxdWEgdGF5IiBsYW0gdGFuZyBnYW5oIG5hbmcgdmllbiBwaGkgIA0KICANCkto YWMgdm9pIGdpYSBjYSBjdWEgbmh1bmcgbWF0IGhhbmcgdGlldSBkdW5nIGtoYWMsIHZpZWMgdGFu ZyB2aWVuIHBoaSBjYW4gcGhhaSBjYW4gbmhhYyANCnlldSB0byB0YWMgZG9uZyBkZW4gc3VjIGto b2Ugbmd1b2kgZGFuLiANCg0KVGFuZyBnaWEgdmllbiBwaGkgPSBuZ3VvaSBuZ2hlbyBtYXQga2hh IG5hbmcgY2h1YSBiZW5oDQoNCiJOZ2FuaCB5IHRlIGtob25nIG5lbiBjaGkgbmdoaSBkZW4gdmll YyBkaWV1IGNoaW5oIHRhbmcgZ2lhIHZpZW4gcGhpLCBtYSBjYW4gY2h1IHRyb25nIA0Ka2llbSBz b2F0IGNoaSB0aWV1LCBtdWEgc2FtIG8gQlYgY29uZyBkZSBnaWFtIGJvdCBnYW5oIG5hbmcgdmll biBwaGkgY2hvIG5ndW9pIGRhbiIgliANCk1vdCBjaHV5ZW4gZ2lhIGN1YSBCbyBZIHRlDQoNClRy YW8gZG9pIHZvaSBQViBUaGFuaCBOaWVuLCBvbmcgRGFuZyBWYW4gS2hvYSwgZGFpIGJpZXUgSERO RCBUUC5IQ00gY2hpYSBzZTogDQoiQ2h1IHRydW9uZyB0YW5nIHZpZW4gcGhpIGRhIGR1b2MgY2h1 bmcgdGEgdGluaCBkZW4gdHUgbGF1IHJvaSwgdG9pIGNobyByYW5nIG5ndW9pIGRhbiANCmN1bmcg c2UgY2hpYSBzZSBkb25nIGdvcCB0aGVtIHZvaSBuZ2FuaCB5IHRlLCBoYXUgbW9uZyBjbyBzdSBj aGFtIHNvYyBzdWMga2hvZSBuZ2F5IA0KbW90IHRvdCBob24uIE5odW5nIG1vdCBzbyBtdWMgdGFu ZyB0aGVvIGR1IHRoYW8gdnVhIHF1YSBzZSBnYXkgImNob2FuZyIsIGJvaSB0YW5nIGNhbyANCmRv dCBuZ290LiBOaGlldSBjdSB0cmkgbG8gbmdhaSBraGkgdmllbiBwaGkgdGFuZyBjYW8sIHN1YyBr aG9lIG5ndW9pIGRhbiBzZSByYSBzYW8/IFZpZWMgbG8gDQpsYW5nIGN1YSBuZ3VvaSBiZW5oIGxh IGNvIGNvIHNvLCBib2kgbWF0IGJhbmcgY2h1bmcgZG9pIHNvbmcgbmd1b2kgZGFuIGNvbiBuaGll dSBraG8ga2hhbiIuIA0KDQpNYWMgZHUgbmdhbiBzYWNoIG5oYSBudW9jIChOU05OKSBjb24gaGFu IGNoZSwgY29uIG5oaWV1IGxpbmggdnVjIHBoYWkgdXUgdGllbiwgbmh1bmcgDQpDaGluaCBwaHUg ZGEgdXUgdGllbiB0YW5nIGNoaSBOU05OIGNobyB5IHRlIGhhbmcgbmFtLCBuYW0gc2F1IGNhbyBo b24gbmFtIHRydW9jLiANCkNoYW5nIGhhbjogbmFtIDIwMDIgbGEgNy4xODcgdGkgZG9uZyAoY2hp ZW0gNSUgTlNOTik7IG5hbSAyMDA3IHRhbmcgbGVuIDIzLjI4MCB0aSANCmRvbmcgKDYsMyUgTlNO TiksIG5hbSAyMDA4IGtob2FuZyAyNy40NjMgdGkgZG9uZy4uLiANCg0KVGFpIFRQLkhDTSwgdHJv bmcgbmFtIDIwMDksIGNoaSB0aW5oIHJpZW5nIG8gY2FjIEJWIGNhcCBUUCwgTlNOTiBjYXAgY2hv IEJWIGhvYXQgDQpkb25nIChjaGkgbHVvbmcsIGNoaSBoYW5oIGNoaW5oLi4uKSBsYSA5MDAgdGkg ZG9uZywgbmFtIDIwMTAgbGEgOTkwIHRpIGRvbmcsIGNodWEgdGluaCANCmtpbmggcGhpIG11YSBt YXkgbW9jIHRyYW5nIHRoaWV0IGJpLiANCg0KVmFvIGJlbmggdmllbiBjb25nIHR1b25nIHJlLi4u DQoNCkNhYyBuaGEgcXVhbiBseSBCViB0dSwgdmEgbmhpZXUgYmFjIHNpIGRhbmcgbGFtIHZpZWMg dGFpIGNhYyBCViBjb25nIGNvIGNodW5nIG5oYW4gDQpkaW5oOiAiTmhpZXUgdHJ1b25nIGhvcCB2 YW8gQlYgY29uZyB0dW9uZyByZSwgbmh1bmcgaG9hIHJhIHRpbmggdG9uZyBjaGkgdGlldSBsYWkg dGhpIA0KdGhheSBnYW4gYmFuZyB2b2kgQlYgdHUuIEJvaSBvIEJWIGNvbmcsIG5ndW9pIGJlbmgg cGhhaSBjaGkgdGlldSBuaGlldSBraG9hbiBraG9uZyANCm5hbSB0cm9uZyB2aWVuIHBoaSIuIENo aSBELlQuSC5QICgzNiB0dW9pLCBuZ3UgQmllbiBIb2EsIERvbmcgTmFpKSB0cnVvYyBraGkgZGkg c2luaCANCmR1YSBjb24gdGh1IGhhaSwgYmFuIGRhdSBkaW5oIHZhbyBtb3QgQlYgcGh1IHNhbiBj b25nIG8gVFAuSENNLCBuaHVuZyByb2kgcXVhIGhvaSANCnRoYW0gbmd1b2kgYmFuIHZ1YSBzaW5o IG8gQlYgbmF5LCB0aW5oIHJhIHRvbmcgY2hpIHBoaSBjaG8gY2Egc2luaCwgInRpZW4gbmF5LCB0 aWVuIG5vIiANCmN1bmcgbmdhbmcgbmd1YSB2b2kgbW90IEJWIHR1IG8gVFAsIG5lbiBjaGkgcXV5 ZXQgZGluaCBzYW5nIEJWIHR1LCBtYSB0aGVvIGNoaSAiZGUgDQpraG9uZyBiaSBraG8gdmUgY2h1 eWVuIGtpZW0gZ2l1b25nIi4NCg0KQ2FjIGJhYyBzaSBjaG8gcmFuZywgaGFuZyBuYW0sIE5oYSBu dW9jIGNhcCBraW5oIHBoaSBjaG8gY2FjIEJWIGNvbmcgZGUgeGF5IGR1bmcsIHN1YSANCmNodWEs IG11YSBzYW0gdHJhbmcgdGhpZXQgYmksIGNoaSB0aWVuIGx1b25nIG5oYW4gdmllbi4uLiwgbmh1 bmcgY28gbmh1bmcga2hvYW4gY2hpIE5oYSANCm51b2Mga2hvbmcgcXVhbiB4dXllbiBoZXQgZHVv YywgY2hhbmcgaGFuIG5odSBuaHVuZyBnb2kgdGhhdSBtdWEgc2FtIG1heSBtb2MgdGhpZXQgDQpi aSwgZHVuZyBjdS4uLiBNb3QgYmFjIHNpIHRydW9uZyBraG9hIGN1YSBtb3QgQlYgY29uZyAobyBR LjUsIFRQLkhDTSkgY2FtIG1vdCBsb2FpIA0KZHVuZyBjdSByYXQgbmhvIGR1bmcgdHJvbmcgcGhh dSB0aHVhdCBub2kgdm9pIGNodW5nIHRvaTogIkN1bmcgbG9haSBkdW5nIGN1IHkgbmh1IHZheSwg DQpuaHVuZyBCViB0dSBjYW5oIEJWIGNodW5nIHRvaSBsYWkgbXVhIHZhbyByZSBob24gMSB0cmll dSBkb25nLiBWaSBCViB0b2kgZHVuZyBwaHVvbmcgDQp0aHVjICJhcCBnaWEiIHRoZW8gZ2lhIHRy dW5nIHRoYXUgY3VhIG1vdCBCViBjb25nIHRydW9jIGRvLCBtYSBraG9uZyBiaWV0IEJWIGNvbmcg ZG8gDQpkYXUgdGhhdSB0aGUgbmFvIGRlIG11YSBzYW4gcGhhbSB5IGNoYW5nIG5odW5nIGxhaSBk YXQgaG9uIDEgdHJpZXUgZG9uZyBzbyB2b2kgQlYgdHUgbGEgDQpkaWV1IHJhdCBiYXQgaG9wIGx5 LiBEYXkgY2hpIG1vaSBsYSBtb3Qgc2FuIHBoYW0gYmUgdGksIGNvIGdpYSB0cmkgY2h1YSBkZW4g MTAgdHJpZXUgZG9uZywgDQpjb24gaGFuZyBuZ2FuIGxvYWkgbWF5IG1vYywgZHVuZyBjdSBraGFj IHRoaSBzYW8/IE5ldSBuaHUgdmF5IHRoaSBOaGEgbnVvYyB0b24gbW90IA0Ka2hvYW4gdGllbiBr aG9uZyBuaG8gY2hvIG5odW5nIHZ1IG11YSBzYW0gdGhlIG5heS4gRHVuZyBjdSBCViBjb25nIG11 YSBkYXQsIGtlbyANCnRoZW8gbmd1b2kgYmVuaCBzZSBwaGFpIHRyYSB0aWVuIGNobyBkdW5nIGN1 IGRvIi4gDQoNCiJLaGkgeGEgaG9pIGhvYSBvIEJWIGNvbmcsIGNhbiBsdXUgeSB2b2kgbmh1bmcg dHJ1b25nIGhvcCBsaWVuIGRhbmggbXVhIHNhbSBtYXkgbW9jLCANCnZpIG5oaWV1IG1heSBkYXQg dmFvIEJWIGNvbmcgZGEgYmkgInR1IG5oYW4gaG9hIiBkYXkgZ2lhIHRyaSBjdWEgbWF5IG1vYyBk byBsZW4gcmF0IGNhbywgDQpjYW8gaG9uIG5oaWV1IHNvIHZvaSBnaWEgdHJpIHRodWMsIHRoYW0g Y2hpIGxhIG1heSBkYSBzdSBkdW5nIHJvaSBkdW9jIHRhbiB0cmFuZyBsYWkgdGluaCANCmJhbmcg Z2lhIG1heSBtb2kuIEdpYSB0aGlldCBiaSBkYXkgbGVuIGNhbyBkb25nIG5naGlhIHZvaSB2aWVj IEJWIHNlIHBoYWkgdGluaCBnaWEgZGF0IA0KY2hvIGJlbmggbmhhbi4gVmllYyBnaWFtIGR1b2Mg Z2lhIG11YSBtYXkgbW9jIHRoaWV0IGJpIHNlIGdpdXAgdmllbiBwaGkgZGljaCB2dSBkdW9jIA0K dGluaCBvIG11YyBwaHUgaG9wLCB0dSBkbyBnaWFtIGR1b2MgZ2FuaCBuYW5nIGNobyBuZ3VvaSBi ZW5oIiwgbW90IG5oYSBxdWFuIGx5IEJWIHR1IA0Kbm9pLiBCYSBIb25nIFZhbiwgQmFuIFRodWMg aGllbiBjaGluaCBzYWNoIEJIWVQgKHRodW9jIEJhbyBoaWVtIHhhIGhvaSBWTikgY2hvIA0KYmll dDogIkhpZW4gY2h1YSBjbyBxdXkgdHJpbmggY2h1eWVuIG1vbiwgcGhhYyBkbyBkaWV1IHRyaSBj aHVhbiBkYW4gZGVuIHRpbmggdHJhbmcgbGFtIA0KZHVuZyB0cm9uZyBjaGkgZGluaCBjYWMga3kg dGh1YXQgeSB0ZSwga2UgZG9uIHRodW9jLiBDbyB0aW5oIHRyYW5nIGN1bmcgbG9haSBoaW5oIGRp Y2ggdnUgDQpuaHVuZyBnaWEgY2hlbmggbGVjaCByYXQgbmhpZXUgZ2l1YSBjYWMgQlYuIENvIHF1 YW4gY2h1YyBuYW5nIGNhbiBraXAgdGhvaSBwaGF0IGhpZW4gDQpuaHVuZyBiYXQgaG9wIGx5IHRy b25nIGNoaSBkaW5oIGN1YSBiYWMgc2kgdmEgYmlldSBoaWVuIGxhbSBkdW5nIHRodW9jLCBreSB0 aHVhdCBsYW0gZ2lhIA0KdGFuZyBjaGkgcGhpIGtoYW0sIGNodWEgYmVuaCBraG9uZyBjYW4gdGhp ZXQiLg0KDQpPbmcgRGFuZyBWYW4gS2hvYSBjaG8gcmFuZzogIkRhIGRlbiBsdWMgY2FuIGNvIGNo dXllbiBnaWEga2luaCB0ZSB0cm9uZyBsaW5oIHZ1YyB5IHRlIA0KZGUgbW8geGUgdGFuIGdvYywg cGhhbiB0aWNoIGNoaSBsaSwgcm8gcmFuZyB0YXQgY2EgY2FjIGtob2FuIGNoaSBjaG8gZGF1IHZh byBvIGNhYyBCViANCmNvbmcuIExhbSBzYW8gZGUgcGhhbiBkYXUgdmFvIG5heSAobXVhIHNhbSBt YXkgbW9jIHRoaWV0IGJpLi4uKSAidHJvbmcgc2FuZyIgbmhhdCwgaG9wIA0KbHkgbmhhdCBkZSBk byBnYW5oIG5hbmcgY2hpIHBoaSAoZGF1IHJhKSBjaG8gbmd1b2kgYmVuaCIuIA0KDQpodHRwOi8v d3d3LnBodW51b25saW5lLmNvbS52bi8yMDA5L1BhZ2VzL3FoLXRoYW8tbHVhbi10aW5oLWhpbmgt a2luaC10ZS14YS1ob2ktbGFuZy1waGktbmhpZXUtbG8tbmdhaS1sb24uYXNweCAyOC8xMC8yMDA5 IDEwOjQ5ICANCg0KVGh1IHR1b25nOiBMYW5nIHBoaSBuaGlldSwgbG8gbmdhaSBsb24gIA0KDQpD byBzbyBraGFtIGNodWEgYmVuaCBkdW9jIGNhcCB2b24gbXVhIHBodW9uZyB0aWVuLCBuaHVuZyBo byBsYWkga2hvbmcgZHVvYyBxdXllbiANCnF1eWV0IGRpbmggbXVhIGxvYWkgbmFvIGNobyBwaHUg aG9wIHZvaSBjbyBzbyBtaW5oLiBWaWVjIG5heSBob2FuIHRvYW4gcGh1IHRodW9jIA0KdmFvIGhv aSBkb25nIGRhdSBnaWEgY2FwIHRyZW4gbmVuIGRhIHhheSByYSB0aW5oIHRyYW5nIGRvIGtob2Ms IGRvIGN1b2kgY2hvIGNhYyBjbyBzbyBraGFtIGNodWEgYmVuaC4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTExMTExNDMxNC5hc3B4ICBUaGVv IFNhaSBHb24gR2lhaSBQaG9uZyAxMS8xMS8yMDEwIDExOjQzIA0KDQpUaHUgdHVvbmc6IERhbiBr aG8gc28gdm9pIGdpYSB0aHVvYyAgIA0KICANClRyb25nIG5odW5nIG5nYXkgcXVhLCBnaWEgdGh1 b2MgdGFuZyBjaG9uZyBtYXQsIGNvIGxvYWkgdGFuZyBnYXAgMiAtIDMgbGFuLiANCg0KR2FtIGhh bmcgZGF5IGdpYQ0KDQpDYW0gdG9hIHRodW9jIGR1b2MgYmFjIHNpIGtlIGdvbSA1IGxvYWksIGNo aSBOLlQuSC4gKG5ndSBCaW5oIFBodW9jKSBraG9uZyBraG9pIGxvIA0KbGFuZy4gQmkgYmVuaCB1 bmcgdGh1IGNvIHR1IGN1bmcsIGNoaSBILiB0aHVvbmcgeHV5ZW4gcGhhaSB1b25nIGNhYyBsb2Fp IHRodW9jIGRhYyB0cmkgDQpkYXQgdGllbiwgbmh1IEVwcmV4IDQuMDAwIGRvbiB2aSAodGFvIG1h dSksIEF2YXN0aW4gMTAwbWcgKGRhYyB0cmkgdW5nIHRodSkuLi4gIkNhY2ggbmF5IA0KbWF5IGhv bSBlbSBtdWEgbW9pIG9uZyBFcHJleCBjaGkgNzAwLjAwMCBkb25nIG5odW5nIG5heSBkYSBob24g OTAwLjAwMCBkb25nLiBNYSANCm1vaSBsYW4gbXVhIDEgaG9wIDYgb25nIGRhIGdhbiA1LDUgdHJp ZXUgZG9uZy4gQ29uIEF2YXN0aW4gYnVhIHRydW9jIG11YSA4LDMgdHJpZXUgDQpkb25nL29uZywg bmF5IHRhbmcgbGVuIGdhbiAxMCB0cmlldSBkb25nIiAtIGNoaSBILiB0aGFuIHRoby4gDQoNCihB bmg6TmhhIHRodW9jIHNvIDEgY3VhIENvbmcgdHkgVE5ISC1UTSBEdW9jIHBoYW0gSGllcCBQaGF0 IGJpIHRoYW5oIHRyYSBzYW5nIDEwLTExLiBBbmg6IFRnLiBMYW0pDQoNClRoZW8gdGltIGhpZXUg Y3VhIFBWIEJhbyBTR0dQIG5nYXkgMTAtMTEsIHRoaSB0cnVvbmcgZHVvYyBwaGFtIGRhbmcgY28g c3UgZGFvIGxvbiANCnJhdCBsb24uIE5oaWV1IGxvYWkgdGh1b2MgdHJpIHVuZyB0aHUsIG1hbiB0 aW5oLCB0aW0gbWFjaCwga2hhbmcgc2luaCBkZXUgdGFuZyBnYXAgMi0zIGxhbiANCm5odW5nIGxh aSByYXQgaGllbSBoYW5nLiBEbyBjYWMgaGFuZyBkdW9jIGNodWEgZHVvYyBwaGVwIGNobyB0YW5n IGdpYSBuZW4gaG8gZGFuZyANCiJlbSBoYW5nIiBkZSBjaG8uIERpZXUgZG8gY2FuZyBraGllbiB0 aGkgdHJ1b25nIGtoYW4gaGllbSB0aHVvYyB2YSBnaWEgdGFuZyB2dSB2dS4gDQoNCk5nb2FpIGhp ZW4gdHVvbmcgZ2FtIGhhbmcgImRheSBnaWEiLCBjYWMgY3VhIGhhbmcgdGh1b2MgcGhhbiBwaG9p IHNpIGRhbmcgY28gZG9jIA0KY2hpZXUgcXVhIG1hdCBjbyBxdWFuIHF1YW4gbHkgbGEgdGhvYSB0 aHVhbiBuZ2FtIHRhbmcgZ2lhIHZvaSBraGFjaCBoYW5nIG5odW5nIGhvYSANCmRvbiB2YW4gZ2hp IGR1bmcgZ2lhIG5pZW0geWV0LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDQzLzIwMTAxMDE5MDExODUyLmFzcHggTGllbiBDaGF1IDE5LzEwLzIwMTAgMTox OCANCg0KVGh1IHR1b25nOiBDaHVhIGNvIGdpYWkgcGhhcCBxdWFuIGx5IGdpYSB0aHVvYyAgDQoN CihBbmg6IE5oaWV1IHRodW9jIG5nb2FpIGJpIGxhbSBnaWEgdHUgYmVuIG5nb2FpIFZOIC0gQW5o OiBOZ29jIFRoYW5nKSAgDQoNClNhbmcgMTguMTAsIEJvIFkgdGUgZGEgY28gZ2lhaSB0cmluaCB2 ZSBxdWFuIGx5IGdpYSB0aHVvYyB0cnVvYyBVeSBiYW4gQ2FjIHZhbiBkZSB4YSBob2kgDQpjdWEg UXVvYyBob2kuIA0KDQpOaGlldSBnaWFpIHBoYXAga2hvbmcga2hhIHRoaQ0KDQpEZSBjYXAgZGVu IHZhbiBkZSBxdWFuIGx5IGdpYSB0aHVvYywgVGh1IHRydW9uZyBCbyBZIHRlIENhbyBNaW5oIFF1 YW5nIGNobyBiaWV0OiANCiJLaG9uZyB0aGUgdGh1YyBoaWVuIGR1b2MgcXV5IGRpbmggeWV1IGNh dSBjYWMgZG9hbmggbmdoaWVwIChETikgbmhhcCBraGF1IHRodW9jIA0KcGhhaSB0aG9uZyBiYW8g Z2lhIHRodW9jIGRvIHRhaSBjYWMgbnVvYyBjbyBjdW5nIGRpZXUga2llbiB5IHRlIC0gdGh1b25n IG1haSIuIEJvaSB0aGVvIA0Kb25nIFF1YW5nLCBkZSBzbyBzYW5oIHR1b25nIGR1b25nIHZlIHkg dGUgLSB0aHVvbmcgbWFpIHRoaSBjbyByYXQgbmhpZXUgY2hpIHNvLCBkb2kgaG9pIA0KbW90IGNv bmcgdHJpbmggbmdoaWVuIGN1dSBsb24sIGxhdSBkYWkuIFRhbSB0aG9pIGNodW5nIHRhIGNodWEg YmFuIGhhbmggZGFuaCBzYWNoIG5heSANCnZhIGJvIHF1eSBkaW5oIHRyZW4uIFRoYXkgdmFvIGRv LCBCbyBZIHRlIGRhIHBob2kgaG9wIHZvaSB0aHVvbmcgdnUgVk4gdGFpIGNhYyBudW9jIA0KdGll biBoYW5oIHNvIHNhbmggZ2lhIHRodW9jLCAidHV5IG5oaWVuLCBrZXQgcXVhIGNvbiBoYW4gY2hl Iiwgb25nIFF1YW5nIHRodWEgbmhhbi4gDQoNClZlIHRodWMgaGllbiBkaW5oIGt5IGNvbmcgYm8g Z2lhIHRvaSBkYSAoZ2lhIHRyYW4pIGRvaSB2b2kgdGh1b2MgZG8gbmdhbiBzYWNoIG5oYSBudW9j IHZhIA0KcXV5IEJIWVQgdGhhbmggdG9hbiwgcGh1YyB2dSBjaG8gZGF1IHRoYXUgdGh1b2MsIHRo ZW8gb25nIFF1YW5nLCB2aWVjIG5heSBraG9uZyBsYW0gDQpkdW9jIHZpIGNvIGRlbiAyMi4wMDAg bG9haSB0aHVvYyB2b2kgaG9uIDEuNTAwIGhvYXQgY2hhdCB2b2kgbmhpZXUgbXVjIGdpYSBraGFj IG5oYXUuIA0KDQpOZXUgY29uZyBibyBnaWEgY2h1bmcgbyBtdWMgdHJ1bmcgYmluaCB0aGFwIHRo aSBkYW4gZGVuIG5ndXkgY28gbmhpZXUgQlYga2hvbmcgbXVhIA0KZHVvYyB0aHVvYyBiaWV0IGR1 b2MgY28gZ2lhIGNhbyBob24gZ2lhIGNvbmcgYm8uIE5odW5nIG5ldSBjb25nIGJvIGdpYSBvIG11 YyBjYW8gdGhpIA0Kc2Ugdm8gbmdoaWEgdm9pIGNhYyB0aHVvYyBjdW5nIGhvYXQgY2hhdCBjbyBn aWEgdGhhcCBob24uIFRyb25nIHRydW9uZyBob3AgbmF5LCBjYWMgDQp0aHVvYyBjbyBnaWEgdGhh cCBjbyB0aGUgbG9pIGR1bmcgZGF5IGdpYSBsZW4gY2FvLiAgDQoNCiJUaGF5IHZhbyBkbywgQm8g c2UgeGF5IGR1bmcgdGhhbmcgc28gYmFuIGJ1b24gdG9pIGRhLCBjYW4gY3UgdHJlbiBnaWEgZ29j IG5oYXAgdmFvLiANCk5odW5nIGN1bmcgdm9pIGRvLCBzZSBwaGFpIHhhYyBkaW5oIGNobyBkdW9j IG5odSB0aGUgbmFvIGxhIGdpYSBnb2MiLCBvbmcgUXVhbmcgbm9pLiAgDQoNCkRheSB2aWVjIHF1 YW4gbHkgZ2lhIHRodW9jIGNobyBCbyBUYWkgY2hpbmgNCg0KIkNhbiBjbyBxdXkgZGluaCByaWVu ZyB2ZSBraHV5ZW4gbWFpIGdpYSB0aHVvYy4gVmkgdGhlbyBxdXkgZGluaCB0aGkgZ2lhIHRyaSBr aHV5ZW4gbWFpIA0KY28gdGhlIGxlbiBkZW4gNTAlIGdpYSB0cmkgc2FuIHBoYW0uIE5odW5nIGNh YyBETiBkdW9jIHRodW9uZyBsb2kgZHVuZyBxdXkgZGluaCBuYXkgDQpkZSBjaGkgaG9hIGhvbmcg Z2lhbSBnaWEgY2hvIGJhYyBzaSBrZSBkb24sIGtodXllbiBraGljaCBiYWMgc2kga2UgZG9uIHRo dW9jIGRvLiBDb24gDQpuZ3VvaSBvbSBzdSBkdW5nIHRodW9jIHZhbiBwaGFpIG11YSB0aHVvYyB2 b2kgZ2lhIGNhby4iIChPbmcgQ2FvIE1pbmggUXVhbmcsIFRodSB0cnVvbmcgQm8gWSB0ZSkgDQoN CiJCbyBZIHRlIGNhbiBjb25nIGtoYWkgbWluaCBiYWNoIGdpYSB0aHVvYyBkYXUgdGhhdSwgeGF5 IGR1bmcgdGhhbmcgc28gYmFuIGJ1b24gdG9pIGRhLiANClRhbmcgY3VvbmcgY29uZyB0YWMgcXVh biBseSBjaHUgZG9uZyBuZ3VvbiB0aHVvYyBkdSB0cnUgbHV1IHRob25nIHRodW9jLiBUb2kgZGF5 LCBjYW4gDQpjbyBjbyBjaGUgZGUgQkhYSCB0aGFtIGdpYSBkYXUgdGhhdSB0aHVvYyBCVi4iIChC YSBUcnVvbmcgVGhpIE1haSwgQ2h1IG5oaWVtIFV5IGJhbiBDYWMgdmFuIGRlIHhhIGhvaSBRSCkg DQoNCk9uZyBEYW5nIE5odSBMb2ksIFBobyBjaHUgbmhpZW0gVXkgYmFuIENhYyB2YW4gZGUgeGEg aG9pIGN1YSBRdW9jIGhvaSBjaGF0IHZhbjogDQoiU28gdGllbiBCSFhIIGNoaSBjaG8gdGllbiB0 aHVvYyBsYSBiYW8gbmhpZXU/IFZpIHNhbyBCSFhIIGxhIG5vaSBjaGkgdGllbiBtdWEgdGh1b2Mg DQpsYWkga2hvbmcgZHVvYyB0aGFtIGdpYSBkaW5oIGdpYSB0aHVvYyA/Ii4gQm8gdHJ1b25nIEJv IFkgdGUgTmd1eWVuIFF1b2MgVHJpZXUgY2hvIA0KcmFuZywgdHJ1b2MgZGF5IEJIWVQgdGh1b2Mg Qm8gWSB0ZSwgc2F1IGRvIENoaW5oIHBodSBwaGFuIGNvbmcgY2h1eWVuIHNhbmcgdGh1b2MgDQpC SFhILiBOaHVuZywgIkJvIFkgdGUgdW5nIGhvIHN1IGNvIG1hdCBjdWEgY28gcXVhbiBCSFhIIHRy b25nIGhvaSBkb25nIGRhdSB0aGF1IA0KdGh1b2MgY3VuZyB1bmcgdmFvIEJWIiwgb25nIFRyaWV1 IG5oYW4gbWFuaC4gT25nIFF1YW5nIGNobyBiaWV0IHRoZW0sIHRyb25nIG5hbSANCjIwMDksIHVv YyB0aW5oIHRpZW4gdGh1b2MgdGFpIFZOIGtob2FuZyB0cmVuIDMwLjAwMCB0aSBkb25nLiBLaG9h bmcgMzAlIHRyb25nIGRvIGxhIA0KdGllbiBtdWEgdGh1b2MgdHUgcXV5IEJIWVQuIA0KDQpUcmEg bG9pIGNoYXQgdmFuIGN1YSBkYWkgYmlldSBCdWkgU3kgTG9pLCBQaG8gY2h1IG5oaWVtIFV5IGJh biBDYWMgdmFuIGRlIHhhIGhvaSBjdWEgDQpRdW9jIGhvaSB2ZSBraWVtIHNvYXQgY2hpIGhvYSBo b25nIHRodW9jLCBvbmcgUXVhbmcgY2hvIGJpZXQsIEJvIGRhbmcgdGllbiBoYW5oIG1vdCANCmxv YXQgY2FjIGdpYWkgcGhhcDogeGF5IGR1bmcgcXV5IHRyaW5oIGNodWFuIHZlIGNoYW4gZG9hbiwg ZGlldSB0cmkgY2hvIGNhYyBuaG9tIGJlbmg7IA0KdGhhbmggdG9hbiBCSFlUIHRoZW8gZ29pIGRp Y2ggdnU7IHRyb25nIGRvIGNvIGdpb2kgaGFuIGNhYyB0aHVvYyBkdW9jIGtlLCB0cmFuaCB0aW5o IA0KdHJhbmcgbGFtIGR1bmcuIEtoaSBkdW9jIG1vdCBkYWkgYmlldSBkZSBuZ2hpIEJvIGNobyBi aWV0IGRhIHh1IGx5IGNhYyB2dSB2aWVjIGN1IHRoZSB2ZSANCmhvYSBob25nIGtlIGRvbiwgdmkg cGhhbSB2ZSBxdWFuIGx5IGdpYSB0aHVvYyB0aGkgYm8gdHJ1b25nIGh1YTogIlNlIGJhbyBjYW8g YmFuZyB2YW4gDQpiYW4iLg0KDQpPbmcgVHJpZXUgY2hvIHJhbmcsIHF1YW4gbHkgZ2lhIHRodW9j IHJhdCBraG8sIG5odW5nIG5oaWV1IG5hbSBxdWEgYm8gZGEgbGFtIHF1eWV0IGxpZXQuIA0KTmh1 bmcgdGh1b2MgY3VuZyBsYSB0aGkgdHJ1b25nIGtob25nIGhvYW4gaGFvIHZpIG1vdCBzbyB0aHVv YyBkYWMgdHJpIGRhIHRhbmcgZ2lhIHR1IA0KbmdvYWkgYmllbiBnaW9pLCBkbyBsYSBwaGFuIHJh dCBraG8ga2llbSBzb2F0Lg0KDQpUaGVvIEJvIHRydW9uZyBUcmlldSwgZGUgY3VuZyBjbyBob2F0 IGRvbmcgY3VuZyB1bmcgdGh1b2MgdmFvIEJWLCBkdXQga2hvYXQgbG9haSBibyANCmhvYW4gdG9h biBjaG8gdHUgbmhhbiB0aHVlIGRhdCBsYXAgbmhhIHRodW9jLCBCViBiYW4gdGh1b25nIGhpZXUu ICJUb2kgZGF5IG5lbiB4ZW0geGV0IA0KZ2lhbyBuaGllbSB2dSBxdWFuIGx5IGdpYSB0aHVvYyBz YW5nIEJvIFRhaSBjaGluaCIsIG9uZyBUcmlldSBkZSB4dWF0LiANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMC9WdS1UYW1pZmx1LUNoby1jaGktZGFvLWN1YS1UaHUt dHVvbmctOTM5NTMzLyBMZSBOaHVuZyAxNjoxMSwgIDA1LzEwLzIwMTAgKEdNVCs3KQ0KDQpUaHUg dHVvbmc6IFZ1IFRhbWlmbHUgLSBDaG8gY2hpIGRhbyBjdWEgVGh1IHR1b25nIC0gU2FpIHBoYW0g MjcsNTYxIHR5IGRvbmcgDQoNCi0gVGhhbmggdHJhIENoaW5oIHBodSBrZXQgbHVhbiBzYWkgcGhh bSB0cm9uZyBrZSBob2FjaCBtdWEgdGh1b2MgVGFtaWZsdSBob2FuIHRvYW4gDQpjbyBjbyBzby4g Tmh1bmcgdnUgdmllYyBjb24gY2hvIFRodSB0dW9uZyBjaGkgZGFvLg0KDQoqIE5odW5nIGFpIGh1 b25nIGxvaSB0dSB2dSBiZSBib2kgVGFtaWZsdT8NCiogIlRvaSB2byBjdW5nIGhvaSBoYW4gdmkg bG8gZGluaCB2dSBUYW1pZmx1IG5heSEiDQogDQpUcmFvIGRvaSB2b2kgYmFvIGdpb2kgdGFpIGN1 b2MgaG9wIGJhbyBzYW5nIG5heSAoNS8xMCksIFBobyBUb25nIFRoYW5oIHRyYSBDaGluaCBwaHUg DQpOZ3V5ZW4gVmFuIFNhbiBub2ksIGtldCBsdWFuIHZlIG5odW5nIHNhaSBwaGFtIHRyb25nIGtl IGhvYWNoIG11YSB0aHVvYyBUYW1pZmx1IHZhIA0KdGh1b2MgY28gaG9hdCBjaGF0IE9zZWx0YW1p dmlyIHBob3NwaGF0ICJob2FuIHRvYW4gY28gY28gc28iLiANCg0KIktldCBsdWFuIGN1YSBUaGFu aCB0cmEgQ2hpbmggcGh1IGRhIGR1b2MgVGh1IHR1b25nIHhlbSB4ZXQgbmh1bmcgaGllbiB2YW4g Y2h1YSBjbyANCmNoaSBkYW8uIFNhdSBraGkgVGh1IHR1b25nIGNvIHkga2llbiwgVGhhbmggdHJh IENoaW5oIHBodSBzZSB0aG9uZyBiYW8gcm9uZyByYWkuIENhdSANCmNodXllbiBUYW1pZmx1IHRo ZSBuYW8gcGhhaSBjaG8gY2hpIGRhbyBjdWEgVGh1IHR1b25nIiwgb25nIFNhbiBub2kuDQoNClZ1 YSBxdWEsIFRoYW5oIHRyYSBDaGluaCBwaHUgZGEga2V0IHRodWMgMTcgY3VvYyB0aGFuaCB0cmEs IHRyb25nIGRvIGNvIHRoYW5oIHRyYSB2ZSB2aWVjIA0KcXVhbiBseSwgZHUgdHJ1IGx1dSB0aG9u ZyB0aHVvYyBxdW9jIGdpYSBwaHVjIHZ1IGNvbmcgdGFjIHBob25nIGJlbmgsIGNodWEgYmVuaC4N Cg0KVGhlbyBvbmcgVnUgSG9uZyBLaGFuaCwgUGhvIFZ1IHRydW9uZyBWdSAzIHBodSB0cmFjaCBr aG9pIHZhbiBob2EgeGEgaG9pLCBCbyBZIHRlIA0KdGh1YyBoaWVuIGx1dSB0cnUgdGh1b2Mga2hv bmcgY2h1YW4geGFjLCBjb24gY2hhbSB0cmUgZGFuIGRlbiB0aW5oIHRyYW5nIHRoaWV1IHRodW9j Lg0KDQpTYWkgcGhhbSB0aHUgaGFpIGxhIGRhbmggbXVjIGR1IHRydSB0aHVvYyB2dW90IHF1YSBz byBsdW9uZyBxdXkgZGluaCwgdHJhY2ggbmhpZW0gDQp0aHVvYyB2ZSBDdWMgcXVhbiBseSBkdW9j Lg0KDQpPbmcgS2hhbmggY2hvIGhheSwgc28gdGllbiBzYWkgcGhhbSBsZW4gdG9pIDI3IG5naGlu IDU2MSB0cmlldSBkb25nLiBUcm9uZyBkbywgY28gMi44MjEgDQp0cmlldSBkb25nIHN1IGR1bmcg c2FpIG11YyBkaWNoLiBUaGFuaCB0cmEgQ2hpbmggcGh1IGRhIGtpZW4gbmdoaSB4dSBseSB0YWkg Y2hpbmgga2luaCANCnRlLCB0aHUgaG9pIDIuMjY3IHRyaWV1IGRvbmcuIE1hdCBraGFjLCBnaWFv IEJvIFkgdGUgdG8gY2h1YyBraWVtIGRpZW0gY2FjIHRhcCB0aGUgY2EgDQpuaGFuIGxpZW4gcXVh bi4NCg0KT25nIEtoYW5oIHRob25nIHRpbiB0aGVtLCBoaWVuIGNodWEgcGhhdCBoaWVuIHRodW9j IGx1dSB0cnUgcXVhIGhhbi4NCg0KQ3VuZyB0aGVvIFRoYW5oIHRyYSBDaGluaCBwaHUsIHRyb25n IHRodSwgcXVhbiBseSwgc3UgZHVuZyBxdXkgYmFvIGhpZW0geSB0ZSBoaWVuIG5heSANCmNvbiBi dW9uZyBsb25nLCBkYWMgYmlldCB0cm9uZyB2aWVjIGRhdSB0aGF1IHRodW9jIHNhaSBxdXkgZGlu aCBjdWEgYmFvIGhpZW0geGEgaG9pIHZhIDcgDQp0aW5oIHRoYW5oLiBUaGVvIHF1eSBkaW5oLCBn aWEgdGh1b2MgdHJ1bmcgdGhhdSBraG9uZyB2dW90IHF1YSBnaWEgdGh1b2MgZGF1IHRoYXUgdmEg DQpraG9uZyBkdW9jIHZ1b3QgcXVhIGdpYSB0aHVvYyBkbyBCbyBZIHRlIGNvbmcgYm8gdGhlbyB0 dW5nIHRob2kga3kuIA0KU29uZywgQm8gWSB0ZSBraG9uZyBjdW5nIGNhcCBnaWEgdGh1b2MsIHdl YnNpdGUgY3VhIEN1YyBxdWFuIGx5IGR1b2MgKEJvIFkgdGUpIGdpYSANCnRodW9jIGNodWEgY2Fw IG5oYXQuDQoNClRoYW5oIHRyYSBDaGluaCBwaHUgZGEgcGhhaSBkaSBraGFvIGdpYSB0dW5nIGN1 YSBoYW5nIGR1b2MuIEtoYW8gc2F0IG8gNTkgdGluaCB0aGFuaCANCmNobyB0aGF5IGNvIG5odW5n IGxvYWkgdGh1b2MgY2hlbmggbGVjaCBnaWEgbGVuIGRlbiAxMDAlIA0KDQpodHRwOi8vd3d3LnZp ZXRuYW1uZXQudm4vcHNrcy8yMDEwMDUvTmh1bmctbG8taG9uZy1jaGV0LW5ndW9pLXRyb25nLXF1 YW4tbHktZ2lhLXRodW9jLTkwODE0Ni8gQ2FtIFF1eWVuIDA3OjI3LCBUaHUgTmFtLCAwNi8wNS8y MDEwIChHTVQrNykgDQoNClRodSB0dW9uZzogTmh1bmcgbG8gaG9uZyAiY2hldCBuZ3VvaSIgdHJv bmcgcXVhbiBseSBnaWEgdGh1b2MNCg0KR2lhIHRodW9jIGRhbmcgbyBtdWMgImtob25nIHRoZSBj YW8gaG9uIiB2YSBiaSAibGFtIGdpYSIgbW90IGNhY2ggZGUgZGFuZyB4dWF0IHBoYXQgDQp0dSBu aHVuZyBsbyBob25nICJjaGV0IG5ndW9pIiB0cm9uZyBjb25nIHRhYyBxdWFuIGx5IGdpYSB0aHVv YyBjdWEgbmdhbmggeSB0ZS4NCg0KQmFpIDE6ICBTdSB0aGF0IHZlIG5ndW9pIGJlbmggYmkgImJv biBydXQiIHF1YSBnaWEgdGh1b2MNCkJhaSAyOiAgIkNvbmcgbmdoZSBtb2MgdHVpIiBiZW5oIG5o YW4gbyBWaWV0IE5hbQ0KQmFpIDM6IEtoaSB0cmluaCBkdW9jIHZpZW4gbm9pIHRoYXQuLi4NCiAN CkdpYSB0aWV1IHRodSBjYW8gaG9uIGdpYSBuaGFwIGtoYXUgYmFvIG5oaWV1IGN1bmcgZHVvYz8N CiANCk5nYXkgMzEvMDgvMjAwNywgVGhvbmcgdHUgbGllbiB0aWNoIHNvIDExLzIwMDcvVFRMVC1C WVQtQlRDLUJDVCBjdWEgQm8gWSB0ZSAtIEJvIA0KVGFpIENoaW5oIJYgQm8gQ29uZyBUaHVvbmcg dmUgIkh1b25nIGRhbiB0aHVjIGhpZW4gcXVhbiBseSBOaGEgbnVvYyB2ZSBnaWEgdGh1b2MgDQpk dW5nIGNobyBuZ3VvaSIgcmEgZG9pIHZvaSBoaSB2b25nIGtpZW0gc29hdCBkdW9jIDIgdmllYzog S2hvbmcgZGUgdGh1b2MgY2hheSBsb25nIA0Kdm9uZyBraGllbiBsYWkgc3VhdCB0YW5nLCBkYXkg Z2lhIHRodW9jIGxlbiBjYW8gdmEga2llbSBzb2F0IHRpbmggaG9wIGx5IHRyb25nIHZpZWMga2Ug a2hhaSANCmdpYSB0aHVvYyBjdWEgY2FjIGRvYW5oIG5naGllcCBraW5oIGRvYW5oIER1b2MgcGhh bS4NCiANClBoYW4gYywgbXVjIDMuMiwgcGhhbiBJSSBjdWEgdGhvbmcgdHUgbmF5IGdoaSBybzog IlRpbmggaG9wIGx5IGN1YSBnaWEgdGh1b2Mga2Uga2hhaSwga2UgDQpraGFpIGxhaSBkdW9jIHhl bSB4ZXQgdHJlbiBjYWMgY2FuIGN1IGN1IHRoZSBsYTogQ2hpIHBoaSBuaGFwIGtoYXUsIGNoaSBw aGkgc2FuIHh1YXQsIGx1dSANCnRob25nIHRodW9jICh4YWMgZGluaCB0aGVvIGNhYyBxdXkgZGlu aCBwaGFwIGx1YXQgaGllbiBoYW5oKSB2YSBtYXQgYmFuZyBnaWEgdGhpIHRydW9uZyB0aHVvYyB0 cm9uZyBudW9jIHZhIGtodSB2dWMiDQogDQpDYW4gY3UgdHJlbiwgdGhlbyBvbmcgTmd1eWVuIE1p bmggVGhhbywgVHJ1b25nIGJhbiBnaWFtIGRpbmggQkhZVCAoQkhYSCBWTikgbGEgDQpjaGluaCB4 YWMuIE5odW5nIGRpZW0gYmF0IGNhcCB0aGF5IHJvIG5oYXQgdHJvbmcgdGhvbmcgdHUgdHJlbiBs YSBkYSBraG9uZyBxdXkgZGluaCBtdWMgDQpsYWkgdG9pIGRhIGNobyB0dW5nIGtoYXUgdHJvbmcg cXVhIHRyaW5oIHBoYW4gcGhvaSB0aHVvYy4gTm9pIGNhY2gga2hhYyBsYSBjaHVhIGNvIHF1eSAN CmRpbmggY3UgdGhlIHZlIG11YyBjaGVuaCBsZWNoIHRvaSBkYSBnaXVhIGdpYSB0aHVvYyB0aWV1 IHRodSAoZ2lhIHRydW5nIHRoYXUpIHZhIGdpYSB0aHVvYyBuaGFwIGtoYXUuIA0KIA0KRG8gZG8s IGNvIHF1YW4gcXVhbiBseSBjdW5nIGtob25nIGJpZXQgdGhlIG5hbyBsYSAiaG9wIGx5IiBoYXkg ImJhdCBob3AgbHkiIGRlIGxhbSBjbyANCnNvIHh1IHBoYXQgY2FjIGNvbmcgdHkgZGF5IGdpYSBt YW5nIGRpIGRhdSB0aGF1IGNhbyBnYXAgbWF5IHRyYW0gbGFuIGdpYSBuaGFwIGtoYXUuDQogDQoo QW5oOiBOaHVuZyBoYXUgcXVhIGN1YSB2aWVjIHlldSBrZW0gdHJvbmcgY29uZyB0YWMgcXVhbiBs eSBnaWEgdGh1b2Mga2hvbmcgZG8gbGVuIA0KdmFpIG5ndW9pIGNvIHRyYWNoIG5oaWVtIG1hIGRh bmcgZG8gbGVuIGRhdSBuZ3VvaSBiZW5oLikgDQogDQpIaWVuIG5heSwgVmlldCBOYW0gbW9pIGNo aSBkdWEgcmEgImtodXllbiBjYW8iIG11YyBjaGVuaCBsZWNoIGdpdWEgZ2lhIG5oYXAga2hhdSB2 YSANCmdpYSB0aWV1IHRodSAia2hvbmcgbmVuIiB2dW90IHF1YSAzNSUgKGRheSBjdW5nIGxhIG11 YyBraHV5ZW4gY2FvIGN1YSBXSE8pLg0KIA0KVHJvbmcgcGhhbSB2aSBuYXksIG9uZyBOZ3V5ZW4g TWluaCBUaGFvIGNobyByYW5nIGdpYSB0aHVvYyBzYXUga2hpIG5oYXAga2hhdSBjbyB0aGUgDQpi aSB0YW5nIGxlbiwgdGhhbSBjaGkgdnVvdCBuaGlldSBsYW4gbXVjIDM1JSBzbyB2b2kga2h1eWVu IGNhbyBuaHVuZyAib2FpIG9hbSIgbGEgdmFuIA0KY2h1YSB2dW90ICJtdWMgdHJhbiIsIGRvIGRv IGNvIHF1YW4gcXVhbiBseSB2YW4ga2hvbmcgdGhlICJiYXQgbG9pIiBhaSBkdW9jLg0KIA0KIk1h IHRyYW4gZ2lhIHRodW9jIGRvIEJvIFkgdGUgZHVhIHJhIGhpZW4gbmF5IHF1YSByb25nLiBUb2kg Y3VuZyBraG9uZyBoaWV1IEJvIHRpbmggdGhlIA0KbmFvIGRlIGR1YSByYSB0cmFuIGdpYSBuYXkg bmh1bmcgbmhpZXUgZG9hbmggbmdoaWVwIGtpbmggZG9hbmggRHVvYyBwaGFtIGNobyBiaWV0IGR1 IA0KZ2lhIGRheSBjYW8gbGVuIG5odSB0aGUgbmh1bmcgaG8gdmFuIGNodWEgZGUgZ2lhIGJhbiB2 dW90IGdpYSB0cmFuIiwgb25nIFRoYW8gYmFuIA0Ka2hvYW4uDQogDQpUcm9uZyBwaGFtIHZpICJr aHV5ZW4gY2FvIiAzNSUgbmF5LCBjYWMgZG9hbmggbmdoaWVwIGN1bmcgcmF0ICJraG9uIG5nb2Fu IiwgdmkgbmV1IA0KdGFuZyBnaWEgY2FvIHF1YSAoc2F0IGdpYSB0cmFuIGNoYW5nIGhhbikgdGhp IGR1IGtob25nIGJpIHBoYXQgbmh1bmcgc2UgYmkgIm5oYWMgbmhvIi4NCiANClR1eSBuaGllbiwg dm9pIG5odW5nIGxvYWkgdGh1b2MgbmdvYWkgcmF0IGRhdCB0aWVuIHZhIG5oYSBwaGFuIHBob2kg bGEgZG9jIHF1eWVuIHRoaSBtdWMgDQpjaGVuaCBsZWNoIG5heSBzZSB2YW4gdGFuZyB0aGVvIHRv YyBkbyAicGhpIG1hIiwgbyBtdWMgdmFpIHRyYW0gJSBuaHUgdHJvbmcgYmFpIHZpZXQgDQp0cnVv YyBtYSBWaWV0TmFtTmV0IGRhIGxheSB2aSBkdS4NCiANClRoZW8gdGhvbmcga2UgdGFpIGJlbmgg dmllbiBCYWNoIE1haSwgbmFtIDIwMDcgY28gdG9pIDc0LDglIHRodW9jIG5oYXAga2hhdSBjdWEg YmVuaCANCnZpZW4gY28gbXVjIGNoZW5oIGxlY2ggZ2l1YSBnaWEgbmhhcCBraGF1IHZhIGdpYSB0 aWV1IHRodSBuaG8gaG9uIGhvYWMgYmFuZyAzNSUgKGR1bmcgDQp0cm9uZyBtdWMga2h1eWVuIGNh bykuIDI1LDIlIGNvbiBsYWkgY28gbXVjIGNoZW5oIGxlY2ggY2FvIGhvbiAzNSUgdmEgZGV1IGxh IG5odW5nIA0KbG9haSB0aHVvYyBkYXQgdGllbiwgcXVhIG5oaWV1IG5hYyBwaGFuIHBob2kgdHJ1 bmcgZ2lhbi4NCiANClRob25nIHR1IG5heSBjdW5nIGNobyBiaWV0IG1vdCBjYW4gY3UgbnVhIGRl IHhldCB0aW5oIGhvcCBseSBjdWEgZ2lhIHRodW9jIGtlIGtoYWkgbGEgDQptYXQgYmFuZyBnaWEg dGhpIHRydW9uZyB0aHVvYyB0cm9uZyBudW9jIHZhIGtodSB2dWMuIFRoZW8gZG8sIGRvaSB2b2kg dGh1b2MgbmhhcCBraGF1IA0KdmEgbHV1IGhhbmggdGFpIHRoaSB0cnVvbmcgVmlldCBOYW0sIGdp YSB0aHVvYyB0YWkgdGhvaSBkaWVtIGtlIGtoYWkgaG9hYyBrZSBraGFpIGxhaSANCmtob25nIGR1 b2MgY2FvIGhvbiBnaWEgbmhhcCBraGF1IHRodWMgdGUgdHJ1bmcgYmluaCBjdWEgdGh1b2MgZG8g KGN1bmcgaG9hdCBjaGF0IG5vbmcgDQpkbyBob2FjIGhhbSBsdW9uZyB2YSBxdXkgY2FjaCBkb25n IGdvaSkgbWEgY28gc28gc2FuIHh1YXQgbyBudW9jIG5nb2FpIGJhbiBjaG8gbW90IHNvIG51b2Mg dHJvbmcga2h1IHZ1Yy4NCiANCk11b24gbGFtIGR1b2MgZGlldSBuYXksIGNvIHF1YW4gcXVhbiBs eSBuaGEgbnVvYyB2ZSBnaWEgdGh1b2MgcGhhaSBraWVtIHNvYXQgZHVvYyBnaWEgDQpjYSBnb2Mg Y3VhIG5ndW9uIGhhbmcgbmhhcCBraGF1LiBOaHVuZyB0aGVvIG5oYW4geGV0IGN1YSBvbmcgTmd1 eWVuIE1pbmggVGhhbyB0aGkgdmllYyANCm5heSBoaWVuIGNhYyBjbyBxdWFuIHF1YW4gbHkgVmll dCBOYW0gY2h1YSBsYW0gZHVvYyBob2FjIGxhbSBkdW9jIG5odW5nIG8gbXVjIA0KcmF0IGhhbiBj aGUuDQogDQpWaSB2YXkgbW9pIGNvIGNodXllbiAidm8gbHkiOiBUaHVvYyBjaG9uZyB0aGFpIGdo ZXAgTmVvcmFsIGN1YSBjb25nIHR5IE5vdmF0aXMgYmFuIHRhaSANClZpZXQgTmFtIGxhIDMsMiB0 cmlldSBkb25nL2hvcC4gVHJvbmcga2hpIGRvLCBnaWEgYmFuIGxvYWkgdGh1b2MgbmF5IChjdW5n IGN1YSBjb25nIHR5IA0KIA0KRGUgdGh1b2MgImNoYXkgbG9uZyB2b25nIiByb2kgdHUgZG9uZyAi ZG9pIGdpYSINCiANCk1vdCB0cm9uZyBuaHVuZyAibG8gaG9uZyIgY3VhIGNhYyBjbyBxdWFuIHF1 YW4gbHkgZ2lhIHRodW9jIGhpZW4gbmF5IGxhIGRlIHRodW9jIGRpIA0KImxvbmcgdm9uZyIsIHF1 YSBoZXQgY29uZyB0eSBuYXkgZGVuIGNvbmcgdHkga2hhYyByb2kgY3VvaSBjdW5nIG1vaSB2YW8g ZGVuIGJlbmggdmllbi4gDQpUYXQgeWV1LCBxdWEgbW9pIG1vdCBjb25nIHR5LCBnaWEgbGFpIGR1 b2MgbmFuZyBsZW4gbW90IGNodXQuDQogDQpPbmcgTmd1eWVuIE1pbmggVGhhbyBjaG8gYmlldCB0 aG9uZyB0dSAxMCAoaHVvbmcgZGFuIGRhdSB0aGF1LCBjdW5nIHVuZyB0aHVvYyB0cm9uZyANCmJl bmggdmllbikgZGEgdGhlIGhpZW4gcm8gbmh1bmcgImxvIGhvbmciIGtobyBjbyB0aGUga2hpZW4g Y2FjIGRvYW5oIG5naGllcCBEdW9jIHBoYW0gDQpjaGl1ICJuZ29pIHllbiIgZGUgbmd1b2kga2hh YyBkYW5oIGR1b2MgIm1pZW5nIG1vaSIgbmdvbiBtb3QgY2FjaCBkZSBkYW5nLg0KIA0KVGhvbmcg dHUgMTAgY2hvIHBoZXAgbW9pIGNvbmcgdHkgdGhhbSBnaWEgZGF1IHRoYXUgY28gdGhlIGRhdSB0 aGF1IGN1bmcgbHVjIG5oaWV1IGxvYWkgDQp0aHVvYy4gVHV5IG5oaWVuLCBtb2kgY29uZyB0eSBs YWkgY28gbW90IHRoZSBtYW5oIHJpZW5nIHZlIG1vdCBsb2FpIHRodW9jIG5oYXQgZGluaC4gVmkg DQp0aGUsIGtoaSBkYXUgdGhhdSBjYSBjYWMgbG9haSB0aHVvYyBraG9uZyBwaGFpICJ0aGUgbWFu aCIgY3VhIG1pbmgsIGNhYyBjb25nIHR5IG5heSBzZSANCmNodXllbiBzYW5nIG11YSB0aHVvYyBk byBvIGNhYyBjb25nIHR5IGtoYWMgdmUgdmEgZGVtIGRpIGRhdSB0aGF1LiBUcnVvYyBkbywgY2Fj IGNvbmcgDQp0eSBraGFjIGNvIHRoZSBraG9uZyBuaGFwIGtoYXUgdHJ1YyB0aWVwIHRodW9jIG5h eSBtYSBsYWkgbXVhIHR1IG1vdCBjb25nIHR5IGtoYWMgbnVhLg0KIA0KQ28gdGhlIGxheSB2aSBk dSBuaHUgc2F1OiBUaG9uZyBrZSA2MDYgbWF0IGhhbmcgdGh1b2MgbmhhcCBraGF1IHRhaSBiZW5o IHZpZW4gQmFjaCANCk1haSBuYW0gMjAwNyBjaG8gdGhheTogQ28gMTAgbG9haSB0aHVvYyBtYSBn aWEgdHJ1bmcgdGhhdSAoY3VuZyBsYSBnaWEgdGlldSB0aHUgdHJvbmcgDQpiZW5oIHZpZW4pIGNh byBob24gMzAwJSBzbyB2b2kgZ2lhIG5oYXAga2hhdS4gVGF0IGNhIDEwIGxvYWkgdGh1b2MgbmF5 IGRldSBjbyBjaHVuZyANCm1vdCBkaWVtOiBDb25nIHR5IG5oYXAga2hhdSB2YSBjb25nIHR5IHRy dW5nIHRoYXUga2hvbmcgdHJ1bmcgbmhhdS4NCiANClRyb25nIGtoaSBkbywgbmV1IHNvIHNhbmgg MiBsb2FpIHRodW9jOiBJbmltb2QgMzBtZyB2YSBOaW1vdG9wIDMwbWcgY28gY3VuZyBob2F0IA0K Y2hhdCBOaW1vZGlwaW5lLCBoYW0gbHVvbmcgMzBtZywgZGFuZyB2aWVuIHNlIHRoYXkgbmdheSBz dSBraGFjIGJpZXQuDQogDQpUaHVvYyBJbmltb2QgMzBtZyBkbyBjb25nIHR5IFRyYXBoYWNvIG5o YXAga2hhdSwgY29uZyB0eSBWaWV0IFBoYXAgdHJ1bmcgdGhhdSwgbXVjIA0KY2hlbmggbGVjaCBn aXVhIGdpYSB0cnVuZyB0aGF1IHZhIGdpYSBuaGFwIGtoYXUgbGEgNjUzJS4gTmh1bmcgdGh1b2Mg Tmltb3RvcCAzMG1nIA0KZG8gY29uZyB0eSBEdW9jIGxpZXUgVHJ1bmcgdW9uZyBJSSB2dWEgbGEg Y29uZyB0eSBuaGFwIGtoYXUsIHZ1YSBsYSBjb25nIHR5IHRydW5nIHRoYXUgDQp0aGkgbXVjIGNo ZW5oIGxlY2ggbmF5IGdpYW0geHVvbmcgbyBtdWMga2hvIHRpbjogMTMlIQ0KIA0KIlRodW9jIGNo YXkgbG9uZyB2b25nIG5odSB0aGUsIGN1IHF1YSBtb2kgbGFuIG11YSBnaWEgbGFpIGJpIGRheSBs ZW4gY2FvIGhvbiBkbyBsb2kgDQpuaHVhbi4gVmkgdGhlLCBraGkgdmFvIGRlbiB2aWVuLCBjb25n IHZvaSBjYWMgY2hpIHBoaSB0cnVuZyBnaWFuIGtoYWMsIGdpYSBjYW8gbmdhdCB0cm9pIGxhIA0K ZGlldSBkZSBoaWV1Iiwgb25nIFRoYW8gbmhhbiBtYW5oLg0KIA0KSGllbiBuYXksIG9uZyBUaGFv IGNobyBiaWV0IGNvIG1vdCBjYWNoIGNvIHRoZSBraWVtIGNoZSBkdW9jIHRpbmggdHJhbmcgImNo YXkgbG9uZyANCnZvbmcgbmh1IG1hIiB0aGUgbmF5IGxhIHRvIGNodWMgZGF1IHRoYXUsIGN1bmcg dW5nIHZhIHRoYW5oIHRvYW4gY2hpIHBoaSB0aHVvYyB0aGVvIA0KcGh1b25nIHRodWMgdGFwIHRy dW5nLg0KIA0KIlNlIGNobyBuaGlldSBuaGEgdGhhdSB2YW8gY3VuZyBkYXUgdGhhdSBob24sIG5o dW5nIG1vaSBuaGEgdGhhdSBjaGkgZHVvYyBwaGVwIGRhdSANCnRoYXUgbmh1bmcgbG9haSB0aHVv YyBsYSB0aGUgbWFuaCBjdWEgbWluaCwgdHJhbmggcGhhaSBkaSBtdWEgdGh1b2MgbWluaCBraG9u ZyBjbyB0dSANCmNobyBraGFjIHZlIGRlIGRlbSBkaSBkYXUgdGhhdSBuaGFtIHRodSBsb2kgbmh1 YW4iLCBvbmcgbm9pLg0KIA0KTWF0IHRodSAyIGN1YSBkYXUgdGhhdSB0YXAgdHJ1bmcgbGEgY2Fj IGJlbmggdmllbiBzZSB0byBjaHVjIGN1bmcgZGF1IHRoYXUgZGUgdGhvbmcgbmhhdCANCnZlIGdp YSwgdHJhbmggdGluaCB0cmFuZyBjdW5nIG1vdCB0aHVvYyBuaHVuZyBtb2kgbm9pIG1vaSBnaWEg bmh1IGhpZW4gbmF5LCBraGllbiBuZ3VvaSANCmJlbmggImhvYSBtYXQiLg0KIA0KQm8gdGF5IHRy dW9jICJsaWVuIG1pbmggbWEgcXV5Ij8NCiANCiJMaWVuIG1pbmggbWEgcXV5IiBvIGRheSBkdW9j IGhpZXUgbyAyIGNhcCBkby4NCiANCkRhdSB0aWVuIGxhIGhlIHRob25nICJsaWVuIG1pbmgiIGdp dWEgdHJpbmggZHVvYyB2aWVuIHZhIGNhYyBtYXQgeGljaCB0cnVuZyBnaWFuIChuaHUgDQpiYWMg c3ksIGR1b2Mgc3ksIHF1YW4gbHkpLiBNb3Qgc28gYmVuaCB2aWVuIGRhIHRpbSBjYWNoIGtpZW0g Y2hlIG5odW5nIGJhdCBob3AgbHkgdHJlbiANCmJhbmcgY2FjaCAiY2F0IGR1dCIgbW90IG1hdCB4 aWNoIHF1YW4gdHJvbmc6IENhbSBiYWMgc3kgdHJvbmcgYmVuaCB2aWVuIHRpZXAgeHVjIHZvaSAN CmNhYyB0cmluaCBkdW9jIHZpZW4uDQogDQpEaWV1IG5heSwgbmV1IGxhYyBxdWFuLCB0aGkgY28g dGhlIG5vaSBsYSBjYW0gZHVvYyB0cm9uZyBiZW5oIHZpZW4uIE5odW5nIG5ldSBiYWMgc3kgDQp0 aWVwIHh1YyB2b2kgdHJpbmggZHVvYyB2aWVuIHRhaSBuaGEgdGhpIGtob25nIGNvIHF1YW4gbmFv IGNhbSBub2khDQoNCihBbmg6IE1vaSBuZ2F5LCBjbyBoYW5nIHRyYW0gYmVuaCBuaGFuIG11YSB0 aHVvYyBvIG5oYSB0aHVvYyBCZW5oIHZpZW4gQmFjaCBNYWkuIA0KVGhlbyB0aW0gaGlldSBjdWEg VmlldE5hbU5ldCwgdGluaCB0cmFuZyBjaGVuaCBsZWNoIGdpdWEgZ2lhIHRodW9jIG5oYXAga2hh dSB2YSBnaWEgDQpiYW4gbyBiZW5oIHZpZW4gbmF5IGRhbmcgbyBtdWMgY2FvLiBEZSBoYW4gY2hl IHN1IGhvYXQgZG9uZyBjdWEgY2FjIGtoYXUgInRydW5nIGdpYW46IA0Ka2hpZW4gZ2lhIHRodW9j IGRvaSBsZW4gY2FvLCBkYSBjbyBuaHVuZyBiZW5oIHZpZW4gY2FtIGJhYyBzeSB0aWVwIHh1YyB2 b2kgdHJpbmggZHVvYyANCnZpZW4gbmh1bmcgZGF5IHRodWMgY2hhdCBjaGkgbGEgcXV5IGRpbmgg Y28gdGluaCBoaW5oIHRodWMuKSANCiANClRodSAyIGxhIGxpZW4gbWluaCBnaXVhIGNhYyBjb25n IHR5IER1b2MgbnVvYyBuZ29haSB2b2kgbmhhdSB2YSB2b2kgY2FjIGNvbmcgdHkgbmhhcCANCmto YXUsIHBoYW4gcGhvaSB0YWkgVmlldCBOYW0uDQogDQpCYW8gY2FvICJQaGFwIGx1YXQgY2FuaCB0 cmFuaCBkaWV1IGNoaW5oIGhhbmggdmkgcGhhbiBjYW5oIHRyYW5oIHRyb25nIGhlIHRob25nIHBo YW4gDQpwaG9pIGR1b2MgcGhhbSB0YWkgdGhpIHRydW9uZyBWaWV0IE5hbSIgZG8gQ3VjIFF1YW4g bHkgQ2FuaCB0cmFuaCAoQm8gQ29uZyB0aHVvbmcpIA0KY2h1IHRyaSB0aHVjIGhpZW4gbmdoaWVu IGN1dSB2YSBjb25nIGJvIGhvaSB0aGFuZyAwMy8yMDA5IGNobyBiaWV0OiANCg0KIlRodW9jIHRy dW9jIGtoaSBuaGFwIGtoYXUgdmFvIFZpZXQgTmFtIGRhIGR1b2MgbmhhIHBoYW4gcGhvaSwgY29u ZyB0eSBtb2kgZ2lvaSBjYXUgDQprZXQgdm9pIHZhbiBwaG9uZyBkYWkgZGllbiBjdWEgY2FjIGNv bmcgdHkgbnVvYyBuZ29haSB0YWkgVmlldCBOYW0gZGUgImFuIGRpbmgiIGdpYS4gDQpDYWMgY29u ZyB0eSBudW9jIG5nb2FpIGN1bmcgcXV5ZXQgZGluaCBsdW9uIGdpYSBiYW4gYnVvbiB2YSBnaWEg YmFuIGxlIHJhIHRoaSB0cnVvbmcsIGNvIA0Ka2hpIGdpYSB0aHVvYyBkdW9jIG5hbmcgY2FvIGhv biBnaWEgZ29jIHR1IDIwMCBkZW4gMzAwJSIuDQogDQpLaGkgdGltIGhpZXUgdmFuIGRlIG5heSB0 dSBjYWMgZG9hbmggbmdoaWVwIGR1b2MgbnVvYyBuZ29haSwgaG8gZGV1IGNobyBiaWV0IGdpYSBi YW4gDQp0aHVvYyBkYSBkdW9jIGtlIGtoYWkgdHJ1b2Mga2hpIGR1b2MgbmhhcCBraGF1IHZhbyBW aWV0IE5hbSB2YSBnaWEgYmFuIGJ1b24gaGF5IGJhbiANCmxlIGRldSBkbyBjYWMgY29uZyB0eSBu aGFwIGtoYXUgdmEgcGhhbiBwaG9pIGN1YSBWaWV0IE5hbSBkaW5oIGdpYS4NCiANClR1eSBuaGll biwgdGhlbyB0aG9uZyB0aW4gdHUgY2FjIGNvbmcgdHkgbmhhcCBraGF1IHZhIHBoYW4gcGhvaSB0 aHVvYyBjdWEgVmlldCBOYW0gdGhpIA0KZ2lhIGNhIGNhYyBsb2FpIHRodW9jIG5oYXAga2hhdSBk ZXUgZG8gY2FjIGNvbmcgdHkgbnVvYyBuZ29haSAiYW4gZGluaCIgdHJ1b2MuDQogDQpTb25nLCB0 aGVvIGJhbiBiYW8gY2FvIG5heSwgZGlldSBkYW5nIG5vaSBsYSBoaWVuIG5heSBjYWMgY29uZyB0 eSBuaGFwIGtoYXUgdmEgcGhhbiANCnBob2kgdGh1b2MgY3VhIFZpZXQgTmFtIG1hYyBuaGllbiBj aGFwIG5oYW4gbXVjIGdpYSBkYSBkdW9jICJhbiBkaW5oIiB2YSBuYW5nIGNhbyANCmhvbiBnaWEg Z29jIGRvIG1hIGtob25nIGhlIGNvIHBoYW4ga2hhbmcgZ2kuIERpZXUgbmF5IGNvIG5naGlhIGxh IGNhYyBjb25nIHR5IGN1YSBWaWV0IA0KTmFtIGN1bmcgImRvbmcgdGluaCIgdmEgInRob25nIG5o YXQiIGFuIGRpbmggbXVjIGdpYSBkbyBiZW4gZG9hbmggbmdoaWVwIG51b2MgbmdvYWkgDQpkdWEg cmEuDQogDQpWZSBzdSAiZG9uZyB0aW5oIiBuYXksIHRoZW8gbW90IHNvIG5oYSBraW5oIGRvYW5o IER1b2MgcGhhbSwgY28gdGhlIGNvIDIgaHVvbmcgbHkgDQpnaWFpOiBIb2FjIGxhIGhvICJraG9u ZyBiaWV0IiwgaG9hYyBsYSBobyBiaWV0IG5odW5nIGhvIGNoYXAgbmhhbiBxdXllbiBsb2kgY3Vh IG5ndW9pIA0Ka2luaCBkb2FuaCBraG9uZyBkaSBsaWVuIHZvaSBxdXllbiBsb2kgY3VhIG5ndW9p IHRpZXUgZHVuZyENCiANClZhIHRoZW8gY2FjaCBseSBnaWFpIG5hbyB0aGkgY3VuZyB0aGF5IG1v dCBkaWV1OiBWYWkgdHJvIHF1YW4gbHkgZ2lhIHRodW9jIGN1YSBjYWMgY28gDQpxdWFuIGNodWMg bmFuZyBkYW5nIHF1YSBtbyBuaGF0Lg0KDQpodHRwOi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9E ZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTU4MTUyNC8xMi8yMDA3DQoNClRodSB0dW9uZzogVGhhbSBv IHRpZW4gdHkgdmFuIGtob25nIGJpIHRydXkgdG8gLSBDaHV5ZW4ga2hvIHRpbiBuYXkgeGF5IHJh IHRhaSANCkNvbmcgdHkgRHVvYyBwaGFtIFRydW5nIHVvbmcgMiAoQ29kdXBoYSkgdHJ1YyB0aHVv YyBUb25nIENvbmcgdHkgRHVvYyBWaWV0IE5hbSAoQm8gWSB0ZSkNCg0KaHR0cDovL3d3dy50aHV2 aWVucGhhcGx1YXQudm4vP0NUPU5XJk5JRD04NTg2IDA1LzAzLzIwMDgNCg0KVGh1IHR1b25nOiBD dHkgZHVvYyBwaGFtIHRydW5nIHVvbmcgMiAoVFBIQ00pOiJDbyBtYXkiIHRpZXUgdGllbiBuaGEg bnVvYyENCg0KSGFuZyBsb2F0IG1hdCBiYW5nIGNvbmcgc2FuIGR1b2MgbGFuaCBkYW8gQ29kdXBo YXIgY2hvIHRodWUgZGUgYm8gdGllbiB2YW8gcXV5IGRlbiB4YWkgcmllbmcuDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMC8yMDEwMDcyMjAyMDUyNi5hc3B4 IDIyLzA3LzIwMTAgMjowNSANCg0KVGh1IHR1b25nOiBDaG9hbmcgdmkgZHUga2llbiB0YW5nIHZp ZW4gcGhpISAgDQoNCkR1IGtpZW4gdmllbiBwaGkgc2UgdGFuZywgY28gZGljaCB2dSBtdWMgdGFu ZyBjYW8gdG9pIDEwIC0gMjAgbGFuIChjYSBiaWV0IHRhbmcgMTAwIGxhbiANCm5odSBzaW5oIHRo aWV0IHR1eSB4dW9uZykuIE5odW5nIHRoZW8gY2FjIHF1YW4gY2h1YyBCbyBZIHRlLCBkaWV1IGNo aW5oIHZpZW4gcGhpIGtob25nIA0KZG9uZyBuZ2hpYSB2b2kgY2hhdCBsdW9uZyBraGFtIGNodWEg YmVuaCB0YW5nLCBjdW5nIG5odSB2aWVuIHBoaSB0YW5nIGN1bmcgc2UgdmFuIA0Ka2hvbmcgZ2l1 cCBnaWFpIHF1eWV0IHZhbiBkZSAicGhpIG5nYW0iIHRyb25nIGNhYyBiZW5oIHZpZW4uIA0KDQpD aHVhIHRob2F0IGNhbmguLi4gY2h1bmcgZ2l1b25nIC0gVmllbiBwaGkga2hvbmcgZG9uZyBoYW5o IHZvaSBjaGF0IGx1b25nIGtoYW0gY2h1YSANCmJlbmghICJQaGkgbmdhbSIgdmFuIHRvbiB0YWkN Cg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vR2lhLXRodW9jLW8tYmVuaC12aWVuLXF1YS1j YW8vODIvNDQ2NTM2Ny5lcGkgTmd1b2kgTGFvIERvbmcNCg0KVGh1IHR1b25nOiBHaWEgdGh1b2Mg byBiZW5oIHZpZW4gcXVhIGNhbw0KDQpodHRwOi8vd3d3LnRpbnR1Y29ubGluZS5jb20udm4vdm4v eGFob2kvNDUxMDMxL2luZGV4Lmh0bWwgMjcvMDYvMjAxMCAxMDowMCAoR01UICs3KQ0KDQpUaHUg dHVvbmc6ICJMb2FuIiBnaWEgdGh1b2MgdHJvbmcgYmVuaCB2aWVuIA0KDQpUaHVvYyB2YW8gYmVu aCB2aWVuIGNhbyBob24gZ2lhIGJhbiBsZSAgLSBHaWEgZGF0IGxhaSB0cnVuZyB0aGF1IA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMTAwMjA4 MDYuYXNweCBRLkxvbmcgMTAvMTAvMjAxMCAyOjA4IA0KDQpUaHUgdHVvbmc6IE11YSB0aHVvYyB0 YXkgbyBjaG8gcXVlIG5odSBtdWEuLi4ga2VvICANCiAgDQpTYXAgYmFuIHRodW9jIHRheSBjdWEg YmEgQi4gbyBjaG8gVGluaCBHaWFuZywgeGEgUGh1b2MgSGllcCwgaHV5ZW4gVHV5IFBodW9jIChC aW5oIERpbmgpIC0gQW5oOiBRLkxvbmcNCg0KVGFpIGNhYyBjaG8gdnVuZyBub25nIHRob24gbyBo dXllbiBUdXkgUGh1b2MgKEJpbmggRGluaCksIHZpZWMga2luaCBkb2FuaCBtdWEgYmFuIA0KdGh1 b2MgdGFuIGR1b2MgZGFuZyBkaWVuIHJhIGtoYSBwaG8gYmllbiB2YSBwaHVjIHRhcC4gDQoNClRo dW9jIHRheSBkdW9jIGNodWEgdHJvbmcgYm9jIG5pLWxvbmcsIHJvIG5odWEgZGUgYmFuIGNobyBu Z3VvaSBkaSBjaG8gbXVhIHZlIHRyaS4uLiBiYSBiZW5oLiANCktob2kgY2FuIHRvYSB0aHVvYyBj dWEgYmFjIHNpLCBiZW4gbXVhIHZhIGJlbiBiYW4gdHJhbyBkb2kgZG9uIGdpYW4gbmh1IGJvIHJh dSwgY29uIGNhLg0KDQpUaGF5IHRvaSBkdW5nIHRhbiBuZ2FuIHZhIGR1YSB0YXkgb20gYnVuZywg YmEgTi5ULkguQiwgY2h1IHNhcCB0aHVvYyB0YXkgbyBjaG8gVGluaCBHaWFuZyANCih0aHVvYyB4 YSBQaHVvYyBIaWVwLCBodXllbiBUdXkgUGh1b2MpIG5nb2FjIGxhaSB2YSAidGllcCB0aGkiOiBD YXUgbGFpIGRheSB0b2kgYmFuIHRodW9jIA0KY2hvIG1hIHVvbmcuIE8gZGF5IGNvIGR1IHRodSBs b2FpIG5odTogUGFyYWNldGFtb2wsIEdhbmlkYW4sIEJpc2VwdG9uLCBBY29kaW5lLCBUZXJwaWNv ZCwgVml0YW1pbiBDLi4uDQoNClRvaSBnaWEgdm8gaG9pIG11YSB0aHVvYyB0cmkgdGlldSBjaGF5 LCBsb2F5IGhvYXkgbW90IGhvaSB0cmVuIG5odW5nIGtoYXkgbmh1YSBkdSANCm1hdSBzYWMsIGJh IEIuIGxheSBjaG8gdG9pIDIgbGlldSB0aHVvYywgZ29tOiBUZXRyYWN5Y2xpbiwgTG9wZXJhbWlk ZSwNCg0KU3Bhc21hdmVybWUgdmEgQmlzZXB0b24uLi4gdm9pIGdpYSA3LjAwMCBkb25nLiBLaGkg Y2h1bmcgdG9pIGhvaSwgdGh1b2MgbmF5IGR1bmcgDQp0cnVvYyBidWEgYW4gaGF5IHNhdSBidWEg YW4gdGhpIGJhIEIuIG5vaTogIkNhdSBtdW9uIHVvbmcgdHJ1b2MgYnVhIGFuIGhheSBzYXUgYnVh IGFuIGN1bmcgZHVvYyIuDQoNClRyb25nIGtoaSBjaG8gY2h1bmcgdG9pIHRyYSB0aWVuLCBiYSBC LiBsaWVuIHR1YyBkdWEgdGF5IGJvYyB0aHVvYyBjaG8gbW90IHZhaSANCm5ndW9pIGRpIGNobyBn aGUgdmFvLiBUaGFtIGNoaSBtb3QgY28gYmUga2hvYW5nIGNodW5nIDE1IHR1b2ksIGNoYXkgbGFp IGtldSBkYXUgDQptYXQsIGJhIEIuIGN1bmcgbmhhbmggdGF5IGxheSBjaGFpIHRodW9jIG5obyBt YXQgKGtob25nIHJvIGxvYWkgZ2kpIGJvIHZhbyBiaWNoIHhvcCBkdWEgY2hvIGNvIGJlLCByb2kg bmhhbiB0aWVuIG1hIGtob25nIGhlIGhvaSB0aGFtIHhlbSB0aHUgY28gYmUgYXkgZGF1IHRoZSBu YW8gaGF5IGRhdSBsYXUgY2h1YS4gDQoNCkJhYyBzaSBOZ3V5ZW4gVGhpIFRodXkgVHJhbmcsIFRy dW9uZyB0cmFtIHkgdGUgeGEgUGh1b2MgSGllcCwgY2hvIGJpZXQ6ICJIaWVuIG5heSANCnRyZW4g ZGlhIGJhbiB4YSBjaGkgY28gbW90IGNvIHNvIGtpbmggZG9hbmggdGh1b2MgdGFuIGR1b2MgbyB0 aG9uIEx1YyBMZSBsYSBkdW9jIA0KcGhlcCBob2F0IGRvbmcuIENvbiB2aWVjIGtpbmggZG9hbmgg dGh1b2MgdGFpIGNobyBUaW5oIEdpYW5nIHRoaSBjaHVuZyB0b2kga2hvbmcgcXVhbiBseSBkdW9j Ii4gDQoNCktob25nIHJpZW5nIHRhaSBjaG8gVGluaCBHaWFuZywgdGFpIGNobyBYb20gbyB4YSBQ aHVvYyBMb2MgKGNhY2ggdHJ1bmcgdGFtIGh1eWVuIA0KbHkgVHV5IFBodW9jIGNodWEgZGVuIDIg a20pIGNodW5nIHRvaSBjdW5nIG11YSBkdW9jIGhvbiAxMCB2aWVuIHRodW9jIGNhbSBjdW0gY2Fj IA0KbG9haSB2YSBjdW5nIHRoZW8gbW90IGNvbmcgdGh1YyB0dW9uZyB0dSBuaHUgbyBjaG8gVGlu aCBHaWFuZy4NCg0KTW90IGR1b2Mgc2kgY28gdGhhbSBuaWVuIGNobyBiaWV0OiAiVGh1b2MgdGF5 IGxhIGxvYWkgaGFuZyBob2EgZGFjIGJpZXQsIGNoaSBkdW9jIA0KYmFuIHRhaSBoaWV1IHRodW9j IGR1b2MgbmdhbmggY2h1YyBuYW5nIGNhcCBwaGVwLiBOZXUgdGh1b2MgdGF5IGR1b2MgYmFuIHR1 IGNhYyB0aWVtIHRhcCBob2EgaGF5IHNhcCB0YWkgY2hvIHZhIGRvIG5odW5nIG5ndW9pIGtob25n IGNvIGNodXllbiBtb24gdmUgZHVvYyB0dSBrZSBkb24sIHNlIHJhdCBuZ3V5IGhpZW0gY2hvIG5n dW9pIGJlbmgsIGNvIHRoZSBnYXkgaGF1IHF1YTogbmhlIHRoaSBkaSB1bmcsIG5hbmcgdGhpIHN1 eSB0dXksIHN1eSB0aGFuLCBkaWVjLCB0aGFtIGNoaSB0aGlldCBtYW5nIi4NCg0KVHJvbmcga2hp IGRvLCBtYXUgc28gY2h1bmcgY3VhIGNhdSBob2kgIlRhaSBzYW8ga2hvbmcgdmFvIHRyYW0geSB0 ZSB4YSBoYXkgdHJ1bmcgDQp0YW0geSB0ZSBodXllbiBkZSBraGFtIHZhIGR1b2MgZGlldSB0cmkg Y2hvIGFuIHRvYW4iIG1hIGNodW5nIHRvaSBkYXQgcmEgZG9pIHZvaSANCm5odW5nIG5ndW9pIGRh biBkZW4gbXVhIHRodW9jIHRhaSBjYWMgY2hvIG5heSBsYTogIk9pIGRhbywgY2hpIGNhbSB4b2Fu ZyB0aG9pLiBDYSANCmdpYSBkaW5oIHRvaSBjdW5nIHRodW9uZyByYSBkYXkgbXVhIHRodW9jIHVv bmcgdmEgZGV1IGhldCBiZW5oIGNodSB0aGF5IGNvIHNhbyBkYXUsIA0KdmFvIGNhYyBub2kgZG8g Y2hpIHRvbiBjb25nIGNobyBkb2kiLg0KDQpQaG8gcGhvbmcgWSB0ZSBodXllbiBUdXkgUGh1b2Ms IGJhIENhbyBIb2FuZyBNb25nIFRpZW4sIGNobyBiaWV0OiAiUGhvbmcgeSB0ZSBodXllbiANCmRh IHRoYW5oIGxhcCBkb2FuIGtpZW0gdHJhIHZhIG5oYWMgbmhvIGNhYyBzYXAgYmFuIHRodW9jIG8g bW90IHNvIGNobyBuaHVuZyBraGkgZG9hbiANCmtpZW0gdHJhIHJhIHZlIHRoaSBkYXUgbGFpIHZh byBkYXkiLiBDbyBsZSwgdm9pIHRpbmggdHJhbmcgbXVhIGJhbiB0aHVvYyBuaHUgbXVhLi4uIA0K a2VvIG8gY2FjIGNobyBxdWUsIGJpZW4gcGhhcCBuaGFjIG5obyBraG9uZyBkdSBzdWMgcmFuIGRl LCBtYSBuZ2FuaCB5IHRlIHZhIGNoaW5oIA0KcXV5ZW4gZGlhIHBodW9uZyBjYW4gY28gY2FjIGJp ZW4gcGhhcCB4dSBseSB0cmlldCBkZSwgbmhhbSBiYW8gdmUgc3VjIGtob2UgY2hvIG5ndW9pIA0K ZGFuIHZhIHRyYW5oIG5odW5nIGhhdSBxdWEgZGFuZyB0aWVjIGNvIHRoZSB4YXkgcmEuDQoNCmh0 dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMzg2MzA0L0dpYS10aHVvYy1jYW8tZ2Fw LTUtNDAtbGFuLW1hdC1iYW5nLWdpYS10aGUtZ2lvaS5odG1sIDI1LzA2LzIwMTAsIDA2OjIyIChH TVQrNykgDQoNClRodSB0dW9uZzogR2lhIHRodW9jIGNhbyBnYXAgNS00MCBsYW4gbWF0IGJhbmcg Z2lhIHRoZSBnaW9pDQoNCiJLaGFvIHNhdCBnaWEgYmF5IG5ob20gdGh1b2MgdGFpIFZOIGNobyB0 aGF5IGdpYSBjYW8gaG9uIGJpbmggZGllbiBjaHVuZyBjdWEgdGhlIGdpb2kgNS00MCBsYW4uIA0K RGF5IGxhIHNvIHNhbmggY28geSBuZ2hpYSB0aG9uZyBrZSwgZG8ga2hhbyBzYXQgdGh1b2MgY3Vu ZyB0ZW4sIGN1bmcgbmhvbSwgY3VuZyBuaGEgc2FuIHh1YXQgdmEgY3VuZyBjYXAiLg0KDQpodHRw Oi8vdm5leHByZXNzLm5ldC9HTC9Eb2ktc29uZy8yMDEwLzA0LzNCQTFCMTAwLyAyMS80LzIwMTAs IDExOjUwIEdNVCs3DQoNClRodSB0dW9uZzogS2hvbmcgdGhlIGtpbSBkdW9jIGdpYSB0aHVvYyAN Cg0KLQ0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM2LzIwMTAw OTA1MjM1MDIxLmFzcHggTmhvbSBQViAwNS8wOS8yMDEwIDIzOjUwICANCg0KVGh1IHR1b25nOiBC YXQgdGh1b25nIHRyb25nIHZ1IDIwIHRyaWV1IHZpZW4gVGFtaWZsdSBkdSB0cnUgLSBIYW5nIHRy aWV1IFVTRCBiYXQgbWluaCANCg0KVHJvbmcgcXVhIHRyaW5oIHRvIGNodWMgdGh1YyBoaWVuIG11 YSBuZ3V5ZW4gbGlldSBzYW4geHVhdCB0aHVvYyBUYW1pZmx1IHZhIHRodW9jIGNvIA0KaG9hdCBj aGF0IE9zZWx0YW1pdmlyIHBob3NwaGF0ZSBwaG9uZyBjaG9uZyBkaWNoIGN1bSBBL0g1TjEgdmFv IG5hbSAyMDA2LCAgbmhpZXUgDQpkYXUgaGlldSBjaG8gdGhheSBCbyBZIHRlIGRhIGJ1b25nIGxv bmcgcXVhbiBseSwgbGFtIHRyYWkgcXV5ZXQgZGluaCBjdWEgVGh1IHR1b25nLiANCg0KQ3VvaSAg bmFtIDIwMDUsIGtoaSBUbyBjaHVjIFkgdGUgdGhlIGdpb2kgKFdITykgY2FuaCBiYW8gbmd1eSBj byB4YXkgcmEgZGFpIGRpY2ggY3VtIA0KZ2lhIGNhbSBvIG5ndW9pLCBUaHUgdHVvbmcgZ2lhbyBC byBZIHRlIGtoYW4gdHJ1b25nIGRhdSB0dSB0cmFuZyB0aGlldCBiaSwgY2h1YW4gYmkgY2FjIA0K ZGlldSBraWVuIHNhbiBzYW5nIHBob25nIGNob25nIGRhaSBkaWNoLiANCg0KU2F1IGRvLCByaWVu ZyB2ZSB2YW4gZGUgdGh1b2MgZHUgdHJ1LCB0aGVvIGRlIG5naGkgY3VhIEJvIFkgdGUsIFRodSB0 dW9uZyBkYSBwaGUgZHV5ZXQgDQprZSBob2FjaCBkdSB0cnUgcXVvYyBnaWEgdGh1b2MgVGFtaWZs dSB2YSBzYW4geHVhdCB0aHVvYyBPc2VsdGFtaXZpciBkZSBwaG9uZyBjaG9uZyANCmRpY2ggY3Vt IEEvSDVOMS4gU28gdGh1b2MgZHUgdHJ1IGR1b2MgQm8gWSB0ZSBkZSB4dWF0ICh0YWkgQmFvIGNh byBzbyA1OC9CQy1CWVQgDQpuZ2F5IDE2LjExLjIwMDUpIGxhIGR1IDMwIHRyaWV1IHZpZW4gKGRl biAzMC42LjIwMDYpLiBTYXUgZG8sIGtlIGhvYWNoIG5heSBkdW9jIENoaW5oIA0KcGh1IGRpZXUg Y2hpbmggeHVvbmcgY29uIDIwIHRyaWV1IHZpZW4uIER1IHRydSB0aHVvYyBkdW9pIGhhaSBoaW5o IHRodWM6IHNhbiB4dWF0IDEwIA0KdHJpZXUgdmllbiwgaG9hbiB0aGFuaCB0cm9uZyB0aGFuZyAz LjIwMDYgdmEgZHUgdHJ1IGR1b2kgZGFuZyBuZ3V5ZW4gbGlldSBkdSBzYW4geHVhdCAxMCB0cmll dSB2aWVuIE9zZWx0YW1pdmlyLg0KDQpUaGVvIGNvIHF1YW4gY2h1YyBuYW5nLCBtYWMgZHUgdHJv bmcgMiBuYW0gKDIwMDMgLSAyMDA1KSBjYSBudW9jIGNoaSBjbyA5MSBjYSBtYWMgDQpiZW5oIG5o dW5nIEJvIFkgdGUgdmFuIGRlIHh1YXQgbW9jIHRob2kgZ2lhbiBkZW4gMzAuNi4yMDA2IHBoYWkg ZHUgdHJ1IGR1IDMwIHRyaWV1IHZpZW4gDQp0aHVvYywgdHVvbmcgZHVvbmcgMyB0cmlldSBsaWV1 IGNobyAzIHRyaWV1IG5ndW9pLiBWaWVjIHRoYW0gbXV1IGRlIHh1YXQgbmh1IHRyZW4gbGEgDQp0 aGlldSBjYW4gY3UgdGh1YyB0aWVuIHZlIHRpbmggaGluaCBkaWVuIGJpZW4gY3VhIGRpY2ggdGFp IFZOOyBub2kgcXVhIHZlIHRpbmggaGluaCANCmRhaSBkaWNoIHhheSByYSAoZ2lvbmcgbmh1IG1v dCBzbyBub2kga2hhYykuDQoNCkhhbmcgdHJpZXUgVVNEIGJhdCBtaW5oIA0KDQpDbyBxdWFuIGNo dWMgbmFuZyBjdW5nIGNoaSByYSBCbyBZIHRlIGRhIHZpIHBoYW0gbmhpZXUgcXV5IGRpbmggdHJv bmcgcXVhIHRyaW5oIHRyaWVuIA0Ka2hhaSBtdWEgbmd1eWVuIGxpZXUgbGFtIHRodW9jLCBkYW4g ZGVuIHZpZWMgZG9hbmggbmdoaWVwIGRhIG11YSBuZ3V5ZW4gbGlldSB0dSANCm5ndW9uIGN1bmcg Y2FwIHZvaSBnaWEgY2FvLiANCg0KQ3UgdGhlLCA0IGNvbmcgdHkgZHVvYyBCbyBZIHRlIGRhdCBo YW5nIG11YSBuZ3V5ZW4gbGlldSBzYW4geHVhdCB0aHVvYyBsYSBDb25nIHR5IGR1b2MgDQp2YSB2 YXQgdHUgLSB5IHRlIFBodSBZZW4gKFB5bWVwaGFyY28pOyBDb25nIHR5IGNvIHBoYW4gZHVvYyBw aGFtIEN1dSBMb25nOyBDb25nIHR5IA0KY28gcGhhbiBkdW9jIHBoYW0gSW1leHBoYXJtIHZhIENv bmcgdHkgU3RhZGEgVmlldCBOYW0uIFRyb25nIHF1YSB0cmluaCBkYXQgaGFuZyA0IA0KY29uZyB0 eSB0cmVuLCBiaWVuIGJhbiBjdWEgIkhvaSBkb25nIHRoYW0gZGluaCBjYWMgY28gc28gZHUgZGll dSBraWVuIHNhbiB4dWF0IHRodW9jIiANCmN1YSBCbyBZIHRlIHRhaSBidW9pIGxhbSB2aWVjIHZv aSA0IGNvbmcgIHR5IGRhICBraG9uZyBjbyBub2kgZHVuZyB0aHVvbmcgdGhhbyB2ZSBnaWE7IA0K YmllbiBiYW4gbGFtIHZpZWMga2hvbmcgY28gY2h1IGt5IGN1YSBjb25nIHR5OyBkb24gZGF0IGhh bmcgZGEgZHVvYyBIb2kgZG9uZyB0aGFtIA0KZGluaCBndWkgY2hvIGNvbmcgdHkgbmdheSB0YWkg YnVvaSBraWVtIHRyYSB0cm9uZyBraGkgY2h1YSBjbyBiYW8gY2FvIGxlbiBCbyB0cnVvbmcuDQoN ClR1IGtldCBxdWEgbmF5LCA0IGNvbmcgdHkgZGEgZGF0IG11YSAyLjAzMCBrZyBuZ3V5ZW4gbGll dSBPc2VsdGFtaXZpciAoZG8gSGV0ZXJvIExhYnMgDQpMaW1pdGVkIEFuIERvIHNhbiB4dWF0KSB2 b2kgZ2lhIDE3LjUwMCAtIDE4LjAwMCBVU0Qva2csIGNhbyBob24gbmhpZXUgc28gdm9pIGdpYSBC byBZIA0KdGUgZGEgYmFvIGNhbyBsYSAxMi4wMDAgVVNEL2tnIChiYW8gY2FvIHRhaSBLZSBob2Fj aCBzbyA1OS9CWVQtUUxEIG5nYXkgDQoxNi4xMS4yMDA1KS4gVHJvbmcgZG8sIGNhYyBjb25nIHR5 IFN0YWRhIFZpZXQgTmFtLCBJbWV4cGhhcm0gdmEgUHltZXBoYXJjbyBtdWEgDQoxLjUxMCBrZyB2 b2kgZ2lhIDE4LjAwMCBVU0Qva2cgdHUgbmhhIGN1bmcgY2FwIFN0YWRhIEltcG9ydCBIb25nIEtv bmcsIHZvaSB0b25nIHNvIA0KdGllbiBsYSAyNy4xODAuMDAwIFVTRC4gRGFuZyBsdXUgeSwgc2F1 IGtoaSB0aGFuaCB0b2FuIHRpZW4gY2hvIG5oYSBjdW5nIGNhcCwgMyBjb25nIHR5IA0KZHVvYyB0 cm9uZyBudW9jOiBTdGFkYSBWaWV0IE5hbSwgUHltZXBoYXJjbywgSW1leHBoYXJtIGRhIGR1b2Mg bmhhbiBsYWkgdG9uZyBzbyB0aWVuIA0KaG9uIDIsOCB0cmlldSBVU0QuIFNvIHRpZW4gbmF5LCBj byBxdWFuIGNodWMgbmFuZyBkYSB5ZXUgY2F1IHBoYWkgaG9hbiB0cmEgbmdhbiBzYWNoIA0Kbmhh IG51b2MuDQoNClJpZW5nIENvbmcgdHkgY28gcGhhbiBkdW9jIHBoYW0gQ3V1IExvbmcgbXVhIDUy MCBrZyBuZ3V5ZW4gbGlldSB0dSAgQ29uZyB0eSANCk1hbWJvIE92ZXJlYXMgTGltaXRlZCBTaW5n YXBvcmUgdm9pIGdpYSAxNy41MDAgVVNEL2tnLCB0aGFuaCB0aWVuIGxhIDkuMTAwLjAwMCANClVT RC4gVGhlIG5odW5nLCBjb25nIHR5IG5heSBjaGkgdGhhbmggdG9hbiBjaG8gYmVuIGJhbiA1LjI1 Mi4wMDAgVVNEIHZhIGdpdSBsYWkgc28gDQp0aWVuIGhvbiAzLDggdHJpZXUgVVNELCBuaHVuZyBz byB0aWVuIGdpdSBsYWkga2hvbmcgZHVvYyB0aGUgaGllbiB0cm9uZyBiYW8gY2FvIHRhaSBjaGlu aC4NCg0KVGhvbmcgdHUgMTIxLzIwMDAvVFQtQlRDIG5nYXkgMjkuMTIuMjAwMCBkYSBuZXUgcm86 ICJUcnVvbmcgaG9wIGRhYyBiaWV0IGdpYSB0cmkgZ29pIA0KdGhhdSB0dSAxIHRpIGRvbmcgdHJv IGxlbiwgbmV1IGNhbiBjaGkgZGluaCB0aGF1LCBjYWMgYm8sIG5nYW5oIGNhbiBjbyB5IGtpZW4g YmFuZyB2YW4gYmFuIA0KZ3VpIEJvIFRhaSBjaGluaCB0aGFtIGRpbmgsIGJhbyBjYW8gVGh1IHR1 b25nIHhlbSB4ZXQgcXV5ZXQgZGluaCIuIFRoZSBuaHVuZywgQm8gWSB0ZSANCmRhIGtob25nIGNv IHZhbiBiYW4gZ3VpIEJvIFRhaSBjaGluaCB0aGFtIGRpbmggdmEga2hvbmcgYmFvIGNhbyBUaHUg dHVvbmcgdHJ1b2Mga2hpIA0KZGF0IGhhbmcgY2hvIDQgY29uZyB0eSBzYW4geHVhdCB2YSBjdW5n IGNhcCB0aHVvYy4gRG9uZyB0aG9pLCBCbyBZIHRlIGN1bmcga2hvbmcgcGhvaSANCmhvcCB2b2kg Qm8gVGFpIGNoaW5oIHhheSBkdW5nIGtodW5nIGdpYSBtdWEgdGh1b2MgdHJ1b2Mga2hpIGNvIGRv biBkYXQgaGFuZyBjaG8gY2FjIA0KY29uZyB0eSBzYW4geHVhdCBkZSBsYW0gY2FuIGN1IHBoYXAg bHk7IGRvbiBkYXQgaGFuZyBraG9uZyBnaGkgZG9uIGdpYSB2YSBnaWFvIGNobyBjYWMgDQpjb25n IHR5IHR1IHRpbSBuZ3VvbiBtdWEgbmd1eWVuIGxpZXUsIHR1IHhheSBkdW5nIGdpYSB0aHVvYyBk YW4gZGVuIHZpZWMgdGhhbSBkaW5oIGdpYSANCnRodW9jIGJpIGRvbmcgdmEgcGh1IHRodW9jIHZh byBnaWEgZG8gZG9hbmggbmdoaWVwIGRlIHh1YXQuDQoNCk5nb2FpIHJhLCB2aWVjIEJvIFkgdGUg a2hvbmcgYmFvIGNhbyB4aW4gcGhlcCBUaHUgdHVvbmcgdHJ1b2Mga2hpIGRhdCBoYW5nIHNhbiB4 dWF0IHZhIA0KY3VuZyBjYXAgdGh1b2Mgdm9pIDQgY29uZyB0eSBsYSBzYWkgcXV5IGRpbmggdGFp IFF1eWV0IGRpbmggc28gMTIzOS9RRCBjdWEgVGh1IHR1b25nIA0KQ2hpbmggcGh1ICJUaHVjIGhp ZW4ga2UgaG9hY2ggZHUgdHJ1IHRodW9jIFRhbWlmbHUgdmEgc2FuIHh1YXQgdGh1b2MgY28gaG9h dCBjaGF0IA0KT3NlbHRhbWl2aXIgcGhvc3BoYXRlIHRoZW8gcXV5IGRpbmggY3VhIENoaW5oIHBo dSIuICANCg0KLQ0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMz LzIwMTAwODExMjM0MTQxLmFzcHggTGUgTG9hbiBMaWVuIENoYXUgMTEvMDgvMjAxMCAyMzo0MSAN Cg0KVGh1IHR1b25nOiBDaHVhIHR1bmcgY28gY2FuaCBiYW8gdmUgInRodWMgcGhhbSBjaHVhIGhv cm1vbmUgc2luaCBkdWMiICANCiAgDQpDYWMgbmhhbiBzdWEgYm90IGJpIGNhbyBidW9jIGdheSBk YXkgdGhpIHNvbSBjdWEgQ29uZyB0eSBTeW51dHJhIEludGVybmF0aW9uYWwgdHJlbiBrZSANCnNp ZXUgdGhpIG8gVHJ1bmcgUXVvYyAtIEFuaDogQUZQDQoNCkhvbiBoYWkgbmFtIHNhdSBzdSBjbyBz dWEgY28gbWVsYW1pbmUgZ2F5IHNhbiB0aGFuIGNobyB0cmUgZW0sIHRob25nIHRpbiB2ZSBzYW4g cGhhbSANCnN1YSBjdWEgQ29uZyB0eSBTeXJ1dHJhIEludGVybmF0aW9uYWwgKFRydW5nIFF1b2Mp IGJpIGNhbyBidW9jIGxhIG5ndXllbiBuaGFuIGdheSBkYXkgDQp0aGkgc29tIG8gdHJlIGVtIGRh bmcga2hpZW4gbmd1b2kgdGlldSBkdW5nIGxvIG5nYWkuIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNTAvMjAxMDEyMDkxODI2MjEuYXNweCBUcmkgUXVhbmcg LSBTb24gRHVhbiAtIFRoYW5oIFRydW5nIDEwLzEyLzIwMTAgMTE6MjYgDQoNClRodSB0dW9uZzog QmluaCBzdWEgdHJlIGVtIGNvIGNoYXQgQlBBIGNvIGhhaSBjaG8gc3VjIGtob2UgLSBWYW4gbXVh IGJhbiBiaW5oIHRodW9uZyAgDQogIA0KKFROTykgQ2hhdCBCUEEgY28gdHJvbmcgY2FjIGJpbmgg c3VhIHRyZSBlbSBkYW5nIGR1b2MgYmF5IHJvbmcgcmFpIG8gVmlldCBOYW0gbWEgbmd1b2kgZGFu IGxhaSBraG9uZyBoZSBoYXkgYmlldC4gDQoNClRoZW8gQUZQLCBob24gMTMwIG5naGllbiBjdXUg dHJvbmcgdGhhcCBreSBxdWEgZGEgbGllbiBoZSBjaGF0IEJQQSAoYmlzcGhlbm9sQSkgdm9pIA0K bmh1bmcgcmFjIHJvaSBzdWMga2hvZSBuZ2hpZW0gdHJvbmcsIGJhbyBnb206IHVuZyB0aHUgdnUs IGJlbyBwaGksIGRheSB0aGkgc29tIHZhIGhpZW4gDQp0dW9uZyBzdXQgZ2lhbSBzbyBsdW9uZyB0 aW5oIHRydW5nLCB1bmcgdGh1LCB1IHRlIGJhbywgdSBuZ3V5ZW4gYmFvIHRoYW4ga2luaC4gRGFu ZyBub2kgDQpsYSBjaGF0IEJQQSBsYWkgY28gdHJvbmcgY2FjIGJpbmggc3VhIHRyZSBlbSBkYW5n IGR1b2MgYmF5IHJvbmcgcmFpIHRyb25nIGtoaSBuZ3VvaSBkYW4gDQpWTiBsYWkga2hvbmcgaGUg aGF5IGJpZXQuIA0KDQooQW5oOiBCaW5oIHN1YSBjbyBjaGF0IEJQQSBkdW9jIGJhbiBwaG8gYmll biB0cmVuIHRoaSB0cnVvbmcgLSBBbmg6IFRyaSBRdWFuZykNCg0KTmhpZXUgbnVvYyBkYSBjYW0g QlBBIA0KDQpWYW8gdGhhbmcgdHJ1b2MsIExpZW4gbWluaCBjaGF1IEF1IGRhIHRoZW8gYnVvYyBD YW5hZGEgY2FtIHN1IGR1bmcgQlBBIHRyb25nIGNhYyANCmJpbmggc3VhIHRyZSBlbSBzYXUga2hp IG5odW5nIHRoaSBuZ2hpZW0gY2hvIHRoYXkgQlBBIGNvIHRoZSB0YWMgZG9uZyBkZW4gc3UgcGhh dCB0cmllbiANCmN1YSBoZSB0aGFuIGtpbmggdmEgaGFuaCB2aSBjdWEgZG9uZyB2YXQga2hpIGNo dW5nIHRpZXAgeHVjIHZvaSBjaGF0IG5heSB0cm9uZyBnaWFpIGRvYW4gDQp0aGFpIG5naGVuIGhv YWMgbW9pIHJhIGRvaS4gDQoNClRoZW8gZG8sIGNhYyBxdW9jIGdpYSBjaGF1IEF1IHBoYWkgZHVu ZyB2aWVjIHNhbiB4dWF0IGNhYyBiaW5oIHN1YSB0cmUgZW0gY28gY2hhdCBCUEEgDQp0cnVvYyB0 aGFuZyAzLjIwMTEgdmEgY2hhbSBkdXQgdmllYyBiYW4gcmEgaG9hYyBuaGFwIGtoYXUgY2h1bmcg dHJ1b2MgdGhhbmcgNi4yMDExLg0KDQpUdXkgbmhpZW4sIEJQQSBoaWVuIHZhbiBkdW9jIHN1IGR1 bmcgcm9uZyByYWkgdHJvbmcgbnVvYyBkb25nIGNoYWksIHZvIGJvYyBkaWVuIHRob2FpIA0KZGkg ZG9uZywgbWF5IHRpbmggdmEgY2FjIHNhbiBwaGFtIHRpZXUgZHVuZyBraGFjLiANCg0KVGFjIGRv bmcgY3VhIEJQQSB2b2kgc3VjIGtob2UgY29uIG5ndW9pIHZvbiBsYSB2YW4gZGUgZ2F5IHRyYW5o IGNhaSB0cm9uZyBuaGlldSBuYW0gDQpxdWEuIFZhbyB0aGFuZyB0cnVvYywgVG8gY2h1YyBZIHRl IFRoZSBnaW9pIChXSE8pIG5vaSByYW5nIEJQQSBraG9uZyB0aWNoIGx1eSB0cm9uZyANCmNvIHRo ZSBzb25nIHRodWEgbmhhbiAibmh1bmcgbmdoaWVuIGN1dSBkaWNoIHRlIHZhIHRoaSBuZ2hpZW0g Z2FuIGRheSBkYSB0aW0gdGhheSBtb2kgDQpsaWVuIGhlIGdpdWEgdmllYyB0aWVwIHh1YyB2b2kg QlBBIG8gbXVjIGRvIHRoYXAgdmEgbW90IHNvIHRhYyBkb25nIGJhdCBsb2kgdm9pIHN1YyANCmto b2UiLg0KDQpDb24gdGFpIGxpZXUgeSBraG9hIE15IFVwdG9kYXRlIGdoaSB0aGFuZyB2YSBraHV5 ZW4gY2FvOiAiUGhhaSB0cmFuaCBuaHVuZyBjYWkgdmF0IA0KZHVuZywgY2h1YSBkdW5nIGJhbmcg bmh1YSB0cm9uZyBzdW90IG1hIGNvIGNodWEgQlBBLCBuZW4gdHJhbmggZHVuZyBib2kgdmkgc3Ug dGllcCB4dWMgDQp2b2kgQlBBIGNvIHRoZSBkaSBrZW0gdm9pIG5odW5nIHRvbiBoYWkgcGhhdCB0 cmllbiBjdWEgdHJlIGVtIi4NCg0KQmluaCBzdWEgY28gQlBBIGJhbiBkYXkgdmkgZ2lhIHJlIA0K DQpLaGFvIHNhdCBuaGlldSBjdWEgaGFuZyBiYW4gc2FuIHBoYW0gYmluaCBzdWEgZGFuaCBjaG8g dHJlIGVtIHRhaSBUUC5IQ00gdmFvIGhvbSANCnF1YSAoOS4xMiksIHBob25nIHZpZW4gVGhhbmgg TmllbiBPbmxpbmUgbmhhbiB0aGF5IG5oaWV1IG5ndW9pIGRhbiBraG9uZyBkZSB5IHRob25nIA0K dGluIGxpZW4gcXVhbiBkZW4gY2hhdCBCUEEsIG1vdCBob2EgY2hhdCBjbyB0aGUgZ2F5IHZvIHNp bmggbyBuYW0gZ2lvaSwgaGF5IHVuZyB0aHUgbWEgDQpjYWMgbnVvYyBraGFjIGRhIGtodXllbiBj YW8uIA0KDQpWYW8gdmFpIG5ndW9pIGRpIG11YSBiaW5oIHN1YSBjaG8gY29uLCBjaHVuZyB0b2kg Z2hlIHZhbyBtb3QgY3VhIGhhbmcgdHJlbiBkdW9uZyANClBoYW0gVmlldCBDaGFuaCAoUS4xLCBU UC5IQ00pIGRlIHRpbSBiaW5oIHN1YSBraG9uZyBjbyBjaGF0IEJQQS4NCg0KQ2h1IGN1YSBoYW5n IGNobyBiaWV0IGNvIGhhaSBsb2FpIGNvIGJhbiBsYSBsb2FpIGxhbSB0aGVvIGNvbmcgbmdoZSBt b2ksIGtob25nIGNvIGNoYXQgDQpCUEEgdmEgbG9haSBjb25nIG5naGUgY3UsIGNvIGNoYXQgQlBB LiBMb2FpIGtob25nIGNoYXQgQlBBIGNvIGdpYSAxNjAuMDAwIGRvbmcvYmluaCwgDQpkYXQgaG9u IHR1IGhhaSBkZW4gYmEgbGFuIGxvYWkgdGh1b25nICg2MC4wMDAgZG9uZy9iaW5oKS4gDQoNCiJU cm9uZyB0aG9uZyB0aW4gY3VhIHNhbiBwaGFtIGRhdSBjbyBjaG8gbmFvIGdoaSBiaW5oIG5heSBr aG9uZyBjbyBCUEE/IiwgbmdoZSANCmNodW5nIHRvaSBob2kgc2F1IGtoaSB4ZW0ga3kgbmhhbiBo aWV1IHRyZW4gYmluaCwgY2h1IGN1YSBoYW5nIGFwIHVuZzogIkxvYWkga2hvbmcgY28gDQpCUEEg dGh1b25nIGxhbSBiYW5nIHRodXkgdGluaCwgZHUgZ2FwIG51b2Mgbm9uZyB0aGUgbmFvIGN1bmcg Y2hhbmcgc2FvLCBjb24gY2FjIGxvYWkgDQpiaW5oIG5odWEgdGhpIGdhcCBudW9jIG5vbmcgbGF1 IG5nYXkgc2UgcGhhdCB0aWV0IHJhIGNoYXQgQlBBIi4gDQoNClRoYXkga2hhY2ggbHVvbmcgbHUs IGNoaSBuYXkgYm9pIHRoZW06ICJUcnVvYyBnaW8sIG5oaWV1IG5ndW9pIHZhbiB4YWkgbG9haSBi aW5oIA0KdGh1b25nLCBjbyBCUEEsIGNvIHNhbyBkYXUsIGFpIGRhdSBtYSBkZSB5LiBWb2kgbGFp IGNoYXQgQlBBIGRvIGN1bmcga2hvbmcgZ2F5IGhhaSBnaSANCmdoZSBnb20uIE5ldSBtdW9uIGNo YWMgY2hhbiB0aGkgZW0gZGkgZGF1IHJvaSBsYXQgbnVhIHF1YXkgbGFpLCBjaGkgc2UgdGltIHJh IHRvIGdpYXkgY28gDQpjaHVuZyBuaGFuIGtob25nIGNoYXQgQlBBIGNobyBlbSB5ZW4gdGFtIi4N Cg0KVGFpIG1vdCBjdWEgaGFuZyB0cmVuIGR1b25nIFRvbiBUaGF0IFR1bmcgKFEuMSwgVFAuSENN KSwgYmlldCBjaHVuZyB0b2kgaG9pIG11YSBzYW4gDQpwaGFtIGJpbmggc3VhIGtob25nIGNoYXQg QlBBLCBjaHUgdGllbSBub2kgbmdheTogIkdhbiBkYXkgY3VuZyBjbyBraGFjaCB0aW0gbXVhIA0K YmluaCBidSBraG9uZyBCUEEgbmh1IG9uZyBhbmgsIG5odW5nIG8gZGF5IGJhbiBwaG8gYmllbiBu aGF0IGxhIGxvYWkgdGh1b25nLCB0dWMgbG9haSBjbyBCUEEiLiANCg0KVGhlbyBjaHUgY3VhIGhh bmcgbm9pIHRyZW4sIGxvYWkgYmluaCBjbyBCUEEgY28gZ2lhIHRoYXAgaG9uIG5oaWV1IHNvIHZv aSBiaW5oIGtob25nIGNvIEJQQS4gDQoNCiJCaW5oIGtob25nIGNvIGNoYXQgQlBBIHNlIGNvIGdo aSBjaHUgIkJQQSBGcmVlIiwgY29uIHNhbiBwaGFtIG5hbyBraG9uZyBnaGkgaGFpIA0KY2h1IG5h eSB0aGkgdGh1b2MgbG9haSBjbyBCUEEuIFR1eSBuaGllbiBuZ3VvaSBkYW4gdmFuIHhhaSBwaG8g YmllbiBsb2FpIHRodW9uZyB2aSANCmtob25nIHBoYWkgYWkgY3VuZyBjbyBkaWV1IGtpZW4gdmUg a2luaCB0ZSBkZSBjaG9uIGxvYWkgY28gZ2hpICJCUEEgRnJlZSIgZ2lhICBjYW8iLCBjaHUgDQpj dWEgaGFuZyB0cmVuIGNobyBiaWV0Lg0KDQpUYWkgcXVheSB0aW5oIHRpZW4sIGNodW5nIHRvaSB0 aGF5IHJhdCBuaGlldSBraGFjaCBoYW5nIG11YSBzYW4gcGhhbSBiaW5oIGJ1IGxvYWkgDQp0aHVv bmcsIHR1YyBsb2FpIGtob25nIGdoaSBjaHUgIkJQQSBGcmVlIi4NCg0KIlRhaSB0cnVvYyBnaW8g eGFpIGxvYWkgbmFvIHRoaSB0b2kgbXVhIGxvYWkgZG8gY2hvIGNvbiwgY2h1IGN1bmcga2hvbmcg ZGUgeSB0aG9uZyB0aW4gdmUgDQpjaGF0IEJQQSBnaSBkby4gVG9pIGN1bmcgbmdoZSBjaHUgdGll bSBub2kgc28sIG5odW5nIGxvYWkgZG8gZGF0IGxhbSEiLCBhbmggVGFtLCBtb3QgDQpraGFjaCBo YW5nIGNobyBiaWV0Lg0KDQpDbyBxdWFuIGNodWMgbmFuZyBuZW4gc29tIGNvIGtodXllbiBjYW8N Cg0KVHJhIGxvaSBjYXUgaG9pIGN1YSBUaGFuaCBOaWVuIE9ubGluZSwgbW90IGNhbiBibyBuZ2hp ZW4gY3V1IFBob25nIHBvbHltZXIgdGh1b2MgDQpWaWVuIENvbmcgbmdoZSBob2EgaG9jIGNobyBi aWV0LCBCUEEgZG9jIGhhaSBuaHVuZyBraG9uZyBwaGFpIGxhIG1vdCBjaGF0IGRvYyBjYXAgDQp0 aG9pLCBkbyB2YXkgY28gdGhlIGtoaWVuIHRhbSBseSBuaGlldSBuZ3VvaSBraG9uZyBjaHUgeSBk ZW4uIA0KDQpEaWV1IHF1YW4gdHJvbmcsIGNhbiBibyBuYXkgbmhhbiB4ZXQgbGEsIGNhYyBzYW4g cGhhbSBjbyBjaGF0IEJQQSBkZXUga2hhIHJlLCBkbyB2YXkgDQpkYXAgdW5nIGR1b2MgdGhpIGhp ZXUgdGlldSBkdW5nIGN1YSBuaGlldSBuZ3VvaS4gQ2FjaCBkdXkgbmhhdCBraGkgY2FjIGNvIHF1 YW4gdHJvbmcgDQpudW9jIGNodWEgY28ga2h1eWVuIGNhbyB2ZSBzYW4gcGhhbSBuYXkgbGEgbmVu IHR1IG1pbmggbG8geGEsIHRyYW5oIG11YSBjYWMgc2FuIHBoYW0gDQpjbyBCUEEgZGUgYmFvIHZl IHN1YyBraG9lLg0KDQpUcmEgbG9pIFRoYW5oIE5pZW4gT25saW5lLCBtb3QgY2FuIGJvIHBob25n IG5naGllcCB2dSB0aHVvYyBUcnVuZyB0YW0ga3kgdGh1YXQgdGlldSANCmNodWFuIGRvIGx1b25n IGNoYXQgbHVvbmcgY2hhdCBsdW9uZyAzIGNobyBiaWV0IGNvIG5naGUgYmFvIGNoaSBkZSBjYXAg ZGVuIHZhbiBkZSBuYXkuIA0KVHV5IG5oaWVuLCB0cnVvYyBkYXkgdHJ1bmcgdGFtIGN1bmcgY28g a2llbSBkaW5oIG1vdCBzbyBtYXQgaGFuZyBiaW5oIHN1YSBuaHUgZGUgY2FwIA0Kbmh1bmcgbmV1 IGRvaSBjaGlldSB0aGVvIHRpZXUgY2hpIGJhbiBoYW5oIGN1YSBCbyBZIHRlIHRoaSBtYXQgaGFu ZyBuYXkgdmFuIGRhdCBjaGF0IA0KbHVvbmcuIA0KDQpEb25nIHRob2ksIHZpIGNhbiBibyBuYXkg Y2hvIGJpZXQgY2FjIG51b2MgY2hhdSBBdSBkZW4gbmFtIHNhdSBtb2kgY2hpbmggdGh1YyBjYW0g DQp0aGVvIG1vdCB0aWV1IGNoaSBjdWEgcmllbmcgaG8gbmVuIGhpZW4gZ2lvIGN1bmcga2hvbmcg dGhlIGJpbmggbHVhbi4NCg0KQ2hpbmggdmkgbmh1bmcgdGh1YyB0ZSBkYW5nIHhheSByYSBub2kg dHJlbiBtYSBuZ3VvaSBkYW4gZGFuZyByYXQgY2FuIG5odW5nIHRob25nIHRpbiANCmNoaW5oIHRo dWMga2lwIHRob2kgdHUgY28gcXVhbiBjaHVjIHRyYWNoLiANClRyb25nIHZ1IHZpZWMgbmF5LCBu Z2FuaCBjaHVjIG5hbmcgY2FuIHNvbSBjbyBuaHVuZyB0aG9uZyBjYW8gY2hpbmggdGh1YyB2ZSBj aGF0IA0KQlBBIGRlIG5ndW9pIGRhbiBkdW9jIGJpZXQuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4va2luaHRlLzIwMTAwOC9HaWEtc3VhLXRyb25nLW51b2MtdGFuZy1uZ2F5LWNhLWtoaS1n aWEtbmd1eWVuLWxpZXUtZ2lhbS05MjczMzEvIE5hbSBHaWFuZyAwNDo1NSwgMDcvMDgvMjAxMCAo R01UKzcpDQoNClRodSB0dW9uZzogR2lhIHN1YSB0cm9uZyBudW9jIHRhbmcgbmdheSBjYSBraGkg Z2lhIG5ndXllbiBsaWV1IGdpYW0NCg0KQ2hpIGtoaSBnaWEgc3VhIHRhbmcgMjAlIGNvIHF1YW4g cXVhbiBseSBtb2kgY28gdGhlIHh1IGx5LiBRdXkgZGluaCBuaHUgdmF5IG5lbiBjYWMgDQpoYW5n IHN1YSBjdSB0YW5nIGdpYSBkZXUgZGFuIG1pZW4gbGEga2hvbmcgcXVhIDIwJS9sYW4uIA0KTWF5 IG5nYXkgcXVhLCBuZ3VvaSB0aWV1IGR1bmcgKE5URCkgbGFpICJ0aGFwIHRob20iIHRydW9jIHRo b25nIHRpbiBtb3Qgc28gaGFuZyBzdWEgIA0KdGllcCB0dWMgdGFuZyBnaWEgYmFuIGxlbiAxMCUu IER1IGNvIHF1YW4gY2h1YyBuYW5nIG5hbSBkdW9jIHRpbmggaGluaCBuYXkgbmh1bmcgZGVuIA0K bmF5IHZhbiBjaHVhIGNvIGNhY2ggbmFvIGRlIGRvaSBwaG8uICANCg0KVGhvYWkgbWFpIHRhbmcg Z2lhIA0KDQpEdSBnaWEgc3VhIGJvdCB0cmVuIHRoaSB0cnVvbmcgdGhlIGdpb2kgZ2lhbSwgbmh1 bmcgdHJvbmcgbnVvYywgbmh1bmcgbWF0IGhhbmcgc3VhIGJvdCANCm5oYXAga2hhdSBsYWkgZGFu ZyB2YW8gZG90IHRhbmcgZ2lhIG1vaS4gVGhlbyBuaGFuIGRpbmggY3VhIGNhYyBjaHV5ZW4gZ2lh IGtpbmggdGUsIHZvaSANCm11YyBnaWEgbmd1eWVuIGxpZXUgdmEgdGh1ZSBzdWF0IG5oYXAga2hh dSBoaWVuIGhhbmggdGhpIHZpZWMgY2FjIGhhbmcgc3VhIHRhbmcgdHJlbiAxMCUgbGEgcXVhIGNh byBzbyB2b2kgdGh1YyB0ZS4NCg0KQ2h1YSB0aGUgeHUgbHkNCg0KIkNoaW5oIG5odW5nIHF1eSBk aW5oIGNodWEgcm8gcmFuZyB0cm9uZyB0aG9uZyB0dSAxMDQgdmUgcXVhbiBseSBnaWEgY3VhIEJv IFRhaSBjaGluaCANCmRhIHRhbyBkaWV1IGtpZW4gY2hvIGNhYyBoYW5nIHN1YSBuZ29haSBsYWNo IGx1YXQgKGNvIHF1YW4gcXVhbiBseSBuaGEgbnVvYyBjaGkgY2FuIHRoaWVwIA0KdmFvIHRoaSB0 cnVvbmcga2hpIGdpYSBzdWEgdGFuZyBxdWEgMjAlKSwgdHUgZGluaCBnaWEgdGhlbyBraWV1IGRv YyBxdXllbiwgY2FuaCB0cmFuaCANCmtob25nIGxhbmggbWFuaCIgLSBvbmcgTmd1eWVuIFR1YW4g S2hhaSCWIENodSB0aWNoIEhEUVQga2llbSBUb25nIGdpYW0gZG9jIA0KQ29uZyB0eSBjbyBwaGFu IHN1YSBxdW9jIHRlIChJRFApIGNobyBiaWV0LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL05ld3MvUGFnZXMvMjAxMDMzLzIwMTAwODEwMDAxNTMyLmFzcHggTi5UcmFuIFRhbSAxMC8w OC8yMDEwIDA6MTUgDQoNClRodSB0dW9uZzogWWV1IG90IHBob25nIHZlIHRodW9uZyBtYWkgDQog IA0KSGFuZyBob2EgVk4geHVhdCBraGF1IGxpZW4gdGllcCBiaSBraWVuIGJhbiBwaGEgZ2lhLiBO aHVuZyBvIHNhbiBuaGEsIGtob25nIGl0IHNhbiANCnBoYW0gbmhhcCBraGF1IGtob25nIGtobyBk ZSBuaGFuIHJhIGNhYyBkYXUgaGlldSBiYW4gcGhhIGdpYS4gQ2hpIGtoYWMgbyBjaG8sIGNodW5n IA0KdGEgdGh1b25nIGltIGxhbmcuIA0KDQpUaGVwIGxhIG1vdCB2aSBkdS4gVGhlbyBtb3QgRE4g dGhlcCBWTiwgbmh1IGNhdSB0aGVwIG1hIG8gVk4ga2hvYW5nIDcwMC4wMDAgDQp0YW4vbmFtLCBu aHVuZyBuYW5nIGx1YyBzYW4geHVhdCBjdWEgY2FjIEROIGxlbiB0b2kgMSw0IHRyaWV1IHRhbi9u YW0uIFR1eSBuaGllbiwgVk4gDQp2YW4gbmhhcCBraGF1IGtob2FuZyAxMDAuMDAwIHRhbi9uYW0g dHUgVHJ1bmcgUXVvYywgRGFpIExvYW4uLi4gVGltIGhpZXUgY3VhIEROIA0KVk4gY2hvIGJpZXQs IGNhYyBETiB0aGVwIERhaSBMb2FuIGR1b2MgdGFvIGRpZXUga2llbiBkZSBjbyBnaWEgdG90IHh1 YXQga2hhdSB2YW8gVk4uIA0KTWluaCBjaHVuZyBsYSBnaWEgeHVhdCBraGF1IHZhbyBWTiB0aGFw IGhvbiBnaWEgbyB0aGkgdHJ1b25nIG5vaSBkaWEgY3VhIGhvLg0KDQpOaHVuZyBETiB0aGVwIHZh IGhpZXAgaG9pIG5nYW5oIG5naGUgbmF5IHZhbiBraG9uZyBjbyBkb25nIHRoYWkgZ2kgZGUgdHUg dmUuDQoNCkx1YXQgc3UgVHJhbiBIdXUgSHV5bmgsIFRydW9uZyBiYW4gUGhhcCBjaGUsIFBob25n IFRodW9uZyBtYWkgdmEgQ29uZyBuZ2hpZXAgVk4gDQooVkNDSSksIGNobyBiaWV0IHNhdSAzIG5h bSBnaWEgbmhhcCBXVE8sIFZOIGNvIGRheSBkdSBjYWMgY29uZyBjdSBkZSBwaG9uZyB2ZSwgDQpu aHVuZyB2YW4gY2h1YSBkdW9jIHN1IGR1bmcgdGh1b25nIHh1eWVuLiBIb24gNzAlIEROLCBoaWVw IGhvaSBjaHVhIGhpZXUgYmlldCBkYXkgDQpkdSBjYWMgbm9pIGR1bmcgY28gYmFuIGN1YSBjYWMg aGllcCBkaW5oIHRyb25nIFdUTzsga2hvYW5nIDUwJSBjaHVhIGFtIGhpZXUgY2FjIGNhbSANCmtl dCBnaWEgbmhhcCBXVE8gY3VhIFZOIGxpZW4gcXVhbiBkZW4gbmdhbmggbWluaC4uLiBOZ29haSBy YSwgbmhpZXUgRE4gY3VhIHRhIGtob25nIA0KY2h1IHRyb25nIHRoaSBwaGFuIG5vaSBkaWE7IHRo aWV1IHRob25nIHRpbiBraG9pIGtpZW4gKGtob25nIGRheSBkdSBzbyBsaWV1KTsgY2hpIHBoaSBr aG9pIA0Ka2llbiB2YSB0aGVvIGtpZW4gYmFuIHBoYSBnaWEgbyB0aGkgdHJ1b25nIHRyb25nIG51 b2MgY2FvIGtob25nIGtlbSBjaGkgcGhpIGtoYW5nIGtpZW4gbyANCm51b2MgbmdvYWkgY3VuZyBs YSBuZ3V5ZW4gbmhhbiBjYW4gdHJvIGNhYyBETi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxMjA0MjcwNS5hc3B4IDEyLzA3LzIwMTAgNDoy NyANCg0KVGh1IHR1b25nOiBWdW9uZyBtYWMgdGllbiBzdSBkdW5nIGRhdCAgDQogIA0KRG9hbmgg bmdoaWVwIChETikgYmF0IGRvbmcgc2FuIChCRFMpIHRhaSBUUC5IQ00gZGFuZyBrZXUgY3V1IHZp IHNvIHRpZW4gc3UgZHVuZyBkYXQgDQpwaGFpIGRvbmcgdGhlbyBOZ2hpIGRpbmggNjkgKGNvIGhp ZXUgbHVjIHR1IDEuMTAuMjAwOSkgY2FvIGNob3Qgdm90LiANCg0KIkhvYW5nIHF1YSB4aW4gcnV0 IGxhaSBobyBzbyIgLSBNdWMgdGllbiBzdSBkdW5nIGRhdCBxdWEgY2FvIHNlIGRheSBnaWEgYmF0 IGRvbmcgc2FuIHRhbmcgdm90IA0KDQpodHRwOi8vbmhhZGF0LnRoYW5obmllbi5jb20udm4vdGlu Y2hpdGlldC8xLzEzNjcvdHJpZW4ta2hhaS1uZ2hpLWRpbmgtNzFjcC12ZS1sdWF0LW5oYS1vLWNv LXF1YW4tcXVhbi1seS1sdW5nLXR1bmctIC8gVGhlbyBOZ3VvaSBMYW8gRG9uZw0KDQpUaHUgdHVv bmc6IFRyaWVuIGtoYWkgbmdoaSBkaW5oIDcxL0NQIHZlIGx1YXQgbmhhIG8gLSBDbyBxdWFuIHF1 YW4gbHkgbHVuZyB0dW5nIA0KDQpOZ2F5IDQtOCwgbGFuaCBkYW8gU28gWGF5IGR1bmcgVFBIQ00g ZGEgdG8gY2h1YyB0cmllbiBraGFpIE5naGkgZGluaCA3MS8yMDEwL05ELQ0KQ1AgY3VhIENoaW5o IHBodSBxdXkgZGluaCBjaGkgdGlldCB2YSBodW9uZyBkYW4gdGhpIGhhbmggTHVhdCBOaGEgby4g RHUgdGhvaSBkaWVtIG5naGkgDQpkaW5oIGNvIGhpZXUgbHVjIGxhIHZhbyBuZ2F5IDgtOCBuaHVu ZyBsYW5oIGRhbyBTbyBYYXkgZHVuZyBjaG8gYmlldCAiY29uIG5oaWV1IHZhbiBkZSANCnNvIGNo dWEgdGhlIGdpYWkgZGFwIGN1IHRoZSB2aSBjb24gdGhpZXUgbmhpZXUgdmFuIGJhbiBodW9uZyBk YW4gY3UgdGhlIi4NCiANCk5oaWV1IHZhbiBkZSBxdWFuIHRhbSBjaHVhIGR1b2MgaHVvbmcgZGFu IG5odSBjbyBjaGUgdGh1ZS1tdWEgbmhhIG8geGEgaG9pLCANCnF1eSBkaW5oIHNvIGh1dSBjaHVu ZywgcmllbmcgdGFpIGNodW5nIGN1LCB0byBjaHVjIG51b2MgbmdvYWkgZHVvYyBwaGVwIGRhdSB0 dSANCm5oYSBvIGRlIGNobyB0aHVlIGtob25nIGR1b2MgYmFuLCB2aWVjIG1vIHJvbmcgZG9pIHR1 b25nIFZpZXQga2lldSBkdW9jIG11YSBuaGEuLi4gDQoNCmh0dHA6Ly9uaGFkYXQudGhhbmhuaWVu LmNvbS52bi90aW5jaGl0aWV0LzEvMTQxMC9uaHVuZy1raHUtZGFuLWN1LWtob25nLW5ndW9pLS8g VGhhbmggVG9uZw0KDQpUaHUgdHVvbmcgLSBUUCBIQ006IE5odW5nIGtodSBkYW4gY3Uga2hvbmcg bmd1b2kgDQoNClNhdSBraGkgdGFjaCBkaWEgYmFuIGhhbmggY2hpbmgsIG5odW5nIHF1YW4gdmVu IFRQLkhDTSB0cm8gdGhhbmggdHJ1bmcgdGFtIGN1YSANCm5odW5nIGR1IGFuIG1vaS4gSGFuZyBs b2F0IGtodSBkYW4gY3UgeHVhdCBoaWVuIHZvaSBxdXkgbW8gaGFuZyBuZ2FuIGhhLiBOaHVuZyBo b24gDQoxMCBuYW0gc2F1IGtoaSBkdW9jIHF1eSBob2FjaCwgbmhpZXUgZHUgYW4gdmFuIGtob25n IGNvIG5ndW9pIG8uIA0KDQpUcnVuZyBiaW5oIG1vaSBxdWFuIG1vaSBoaWVuIGNvIGRlbiBoYW5n IHRyYW0gZHUgYW4gZHUgY2FjIGtpZXUsIHR1IGtodSBkYW4gY3UgbW9pIA0KZGVuIGNhYyBkdSBh biBjb25nIGNvbmcuIER1IGFuIHNvIGh1dSBpdCB0aGkgY2h1YyBoYSwgbmhpZXUgdGhpIGhhbmcg dHJhbSBoYSwgYmllbiBoYW5nIA0KbmdhbiBoYSBkYW5nIHRyb25nIHRpbmggdHJhbmcgaG9hbmcg aG9hLg0KDQpEYXQgZHUgYW4gdGhhbmggYmFpIHhlIGNvbnRhaW5lciANCg0KRG9jIHRoZW8gdHV5 ZW4gZHVvbmcgRG8gWHVhbiBIb3AsIGR1b25nIExpZW4gUGh1b25nLCBCdW5nIE9uZyBUaG9hbiB0 aHVvYyBxdWFuIA0KOSwgdG9uIHRhaSBjbyBkZW4gdmFpIGNodWMgZHUgYW4gZGEgeG9uZyBoYSB0 YW5nLCBkdW9uZyBzYSB0aGFuZyB0YXAsIG5odW5nIG1vaSBkdSBhbiANCmNoaSBjbyBraG9hbmcg Y2h1YyBjYW4gbmhhIGR1b2MgeGF5IGR1bmcuIE5oaW4gdHUgeGEsIGxhbSBuaGFtIG5odSBuaHVu ZyBkb20gZGEgDQpiZW8uIE5nYXkgdHUgZGF1IGR1b25nIExpZW4gUGh1b25nLCBuaHVuZyBkdSBh biBraHUgZGFuIGN1IG1vaSBuaHUgS2llbiBBLCBOYW0gDQpMb25nLCBuaGEgUGh1IE5odWFuLi4u IG1vdCB0aG9pIHNvdCAiZ2lhIiBnaWFvIGRpY2ggdm9pIGhhbmcgbmdhbiBzYW4gcGhhbSwgbmh1 bmcgZ2lvIA0KdGFpIG1vaSBkdSBhbiBjaGkgdmFpIGNodWMgY2FuIG5oYSBkdW9jIHhheSBkdW5n Lg0KDQpOaGlldSBraGFjaCBoYW5nIHRhaSBjdW0gZHUgYW4gdmVuIHNvbmcgUmFjaCBDaGllYyBu Z2FvIG5nYW4gdmkgZHUgYW4gdnVvbmcgZ2lhaSB0b2EgDQpuZW4gY2EgY2h1YyBuYW0gbmF5IGRl IGxhbSBiYWkgeGUgY29udGFpbmVyLiBUYXQgcXVhIGR1b25nIER1b25nIERpbmggSG9pLCBkdSBh biANCktoYW5nIERpZW4sIEdpYSBIb2EgbWFjIGR1IGNvIHZpIHRyaSBkZXAsIG5odW5nIHNvIGx1 b25nIG5oYSB4YXkgY3VuZyBjaGkgZGF0IHZhaSBwaGFuIA0KdHJhbS4gQ2FwIHRoZW8gZHVvbmcg Tmd1eWVuIER1eSBUcmluaCwgaGFuZyBsb2F0IGR1IGFuIG5odSBCYWNoIEtob2EsIGtodSBuaGEg byANCkxvbmcgVHJ1b25nLi4uIGN1bmcgbGEgbmh1bmcgbWFuZyBkYXQgdHJvbmcsIGtob25nIG5n dW9pIG8uDQoNClRhaSBxdWFuIDIsIG5vaSBkdW9jIHhlbSBsYSBjbyB2aSB0cmkgY2hpZW4gbHVv YywgbGEgdGh1b2MgZG8gbmhpZXQgY3VhIHRoaSB0cnVvbmcgZGlhIG9jLCANCmNhYyBkdSBhbiBj dW5nIGxhbSB2YW8gY2FuaCBkYXQgbmhpZXUgbmd1b2kgaXQuIE5nYXkgdGFpIGR1IGFuIGR1b2Mg ZGFuaCBnaWEgY28gdmkgdHJpIA0KZGVwIG5oYXQsIG5hbSB2ZW4geGEgbG8gSGEgTm9pLCBuZ29h aSBuaHVuZyBjaHVuZyBjdSBtb2ksIGRhdCBuZW4gY2h1IHlldSB2YW4gZGUgY28gDQptb2MuIENh YyBkdSBhbiB2ZW4gZHVvbmcgMjVCIGN1bmcgbG9tIGNob20gbmhhIGNoZW4gbGFuIHZvaSBjby4N Cg0KS2h1IHZ1YyBxdWFuIDcsIEJpbmggQ2hhbmgsIGRvYyB0aGVvIGRhaSBsbyBOZ3V5ZW4gVmFu IExpbmgsIGNhY2ggZGF5IGtob2FuZyA4IG5hbSwgDQp2YW8gdGhvaSAidmFuZyBzb24iIGN1YSB0 aGkgdHJ1b25nIGRpYSBvYywgYmFuZyBnaW9pIHRoaWV1IGR1IGFuIG1vYyBnYW4ga2luIGhhaSBi ZW4gDQpkdW9uZywgZGVuIG5heSBjaGkgY29uIHRybyBsYWkgdmFpIGtodW5nIHNhdCBob2VuIGdp Li4uDQoNCkxhbmcgcGhpIGxvbg0KDQogVHJvbmcgbmh1bmcgY3VvYyBob3AgZ2FuIGRheSBjdWEg SGllcCBob2kgQmF0IGRvbmcgc2FuIFRQLkhDTSBsaWVuIHF1YW4gZGVuIG5odW5nIA0KY2hpbmgg c2FjaCB2ZSBkYXQgZGFpLCBvbmcgTmd1eWVuIFZhbiBIaWVwLCBQaG8gZ2lhbSBkb2MgU28gWGF5 IGR1bmcgVFAsIHR1bmcgbGVuIA0KdGllbmcgcmFuZzogIlRQIGNvIGJhbyBuaGlldSBkdSBhbiwg dGllbiBkbyBkdSBhbiBsYW0gdG9pIGRhdSwgdGh1YyBoaWVuIHRoZSBuYW8sIFNvIA0Ka2hvbmcg bmFtIGR1b2MuIE1vaSBkdSBhbiBuaGFuaCBoYXkgY2hhbSwgcGhhdCB0cmllbiBoYXkga2hvbmcg ZGFuaCB0cm9uZyB2YW8gY2FpIA0KdGFtLCBjYWkgdGFtIGN1YSBjaHUgZGF1IHR1Ii4gUGhhaSBj aGFuZyBkYXkgbGEgbW90IHRyb25nIG5odW5nIG5ndXllbiBuaGFuIGtoaWVuIA0KbmhpZXUgZHUg YW4ga2h1IGRhbiBjdSBtb2kgaGllbiBuYXkgdGFpIFRQLkhDTSB2YW4gY2hpIGxhIGRhdCBob2Fu Zz8gDQogDQpEYXQgaG9hbmcgbGFuZyBwaGkgZGEgZGFuaCwgbGFuZyBwaGkgaG9uIG51YSBsYSBo ZSB0aG9uZyBoYSB0YW5nIGR1b2MgeGF5IGR1bmcga2VtIA0KdGhlbyBjYWMgZHUgYW4uIERpZW4s IGR1b25nLCB0cnVvbmcsIHRyYW0gbGEgbmh1bmcgaGFuZyBtdWMgYnVvYyBwaGFpIGNvIGN1YSB0 dW5nIGR1IA0KYW4uIE5odW5nIGRhdSB0dSB4b25nIHRoaSBkZSBkbywgaHUgaG9uZywgeHVvbmcg Y2FwIHRoZW8gbmFtIHRoYW5nLiBDaGFjIGNoYW4gbW90IA0KZGlldSBraGkgZHVhIHZhbyBzdSBk dW5nIHRoaSBwaGFpIHRoYXkgbW9pIGhvYWMgYm8gcmEgdGhlbSBtb3Qga2hvYW4gdGllbiBraG9u ZyBuaG8gZGUgDQpkdXkgdHUsIG5hbmcgY2FwLCBiYW8gZHVvbmcuIEhpZW4gdHVvbmcgbmF5IGRh IGR1b2MgbmhpZXUgY2h1eWVuIGdpYSBkdSBiYW8gdHUgdHJ1b2MgDQpzb25nIGR1b25nIG5odSBu aHVuZyBjYW5oIGJhbyBkbyBraG9uZyBkdSAibmFuZyIgZGUgY2FjIGNvIHF1YW4gcXVhbiBseSB0 aW0gZHVvYyANCmdpYWkgcGhhcCBraGFjIHBodWMuIA0KDQpUcnVuZyBiaW5oIG1vaSBkdSBhbiBk YW5oIHJhIGtob2FuZyAxNSUgZGllbiB0aWNoIGR1b25nIGdpYW8gdGhvbmcgbm9pIGJvLiBUaGVv IHNvIA0KbGlldSBjdWEgUGhvbmcgVGFpIG5ndXllbiAtIE1vaSB0cnVvbmcgUS45IHRoaSB0YWkg ZGlhIGJhbiBuYXkgaGllbiBjbyBob24gMjMwIGR1IGFuIA0KbG9uIG5obywgdm9pIHRvbmcgZGll biB0aWNoIGRhdCBraG9hbmcgMy41MDAgaGEuIE5ldSB0YW0gdGluaCAxNSUgdHJlbiB0b25nIHNv IGRhdCB0aHVvYyANCmNhYyBkdSBhbiwgdGhpIGNvIGRlbiBraG9hbmcgZ2FuIDUwMC4wMDBtMiBt YXQgZHVvbmcgbm9pIGJvIGRhIHZhIGRhbmcgZHVvYyB4YXkgDQpkdW5nLiBOaGFuIGRpZW4gdGlj aCBuYXkgdm9pIGRvbiBnaWEgbGFtIGR1b25nIHVvYyB0aW5oIGtob2FuZyAyMDAuMDAwIGRvbmcv bTIsIHRoaSANCmNvIGRlbiBoYW5nIHRyYW0gdGkgZG9uZyBkYW5nIGJvIGhvYW5nLg0KDQpUdW9u ZyB0dSB0YWkgY2FjIHF1YW4ga2hhYyBuaHUgcXVhbiAyLCA3LCAxMiwgQmluaCBDaGFuaCwgTmhh IGJlLCBIb2MgTW9uLCBzbyBsdW9uZyANCmR1IGFuIHZhIHRvbmcgZGllbiB0aWNoIGRhdCBsYW0g ZHUgYW4gY3VuZyB0dW9uZyBkdW9uZyBuaGF1LiBEb25nIG5naGlhIHZvaSBtb3Qgc28gDQp0aWVu IGtob25nIGxvIGRhbmcgYmkgbGFuZyBwaGkuDQoNClRyYSBsb2kgYmFvIGNoaSBiZW4gbGUgbW90 IGhvaSBuZ2hpIHZlIGRpYSBvYywgb25nIERhbmcgSHVuZyBWbywgbmd1eWVuIFRodSB0cnVvbmcg Qm8gDQpUYWkgbmd1eWVuIC0gTW9pIHRydW9uZyBjaG8gcmFuZywgTmdoaSBkaW5oIDE4MSBkYSBj byBxdXkgZGluaCBybywgZHUgYW4gbmFvIGtob25nIGNhdCANCm5oYSBzZSB0aHUgaG9pIGxhaSBk YXQuIE5vaSBsYSB2YXksIG5odW5nIGNhYyBjbyBxdWFuIGJlbiBkdW9pIGRldSBsYWMgZGF1IGJh byBraG8gdGh1YyANCmhpZW4uIE5ndW9pIG11YSBkYXQgZGF1IHR1IHRoaSBraG9uZyBtdW9uIHRo ZW0gdGllbiBjaG8ga2hvYW4geGF5IGR1bmc7IG5ndW9pIG11YSBkZSANCm8gdGhpIGNvIHNvIGhh IHRhbmcgeGEgaG9pIGtob25nIGNvLCBjaHUgZGF1IHR1IGtob25nIG11b24geGF5IGR1bmcgbmhh IHZpIHNvIGdpYSANCnRoYW5oIGNhbyBraG8gYmFuIHNhbiBwaGFtIG5lbiBkYXkgcXVhIGNobyBr aGFjaCBoYW5nLiBLaG9uZyBpdCBkdSBhbiwgZGUgIm5lIiBsdWF0LCB0aHVvbmcgDQpreSB2b2kg a2hhY2ggaGFuZyBoYWkgaG9wIGRvbmcsIG1vdCBsYSBob3AgZG9uZyBzYW5nIG5odW9uZyBuZW4g ZGF0LCBob3AgZG9uZyBjb24gbGFpIA0KbGEgdHJhY2ggbmhpZW0geGF5IGR1bmcgbmhhLiBUaG9p IGhhbiBwaGFpIHhheSBkdW5nIGxhIDEgbmFtLiBUdXkgbmhpZW4gdGhvaSBoYW4gbmF5IA0KaGV0 IHRoaSBjdW5nLi4uIGNoYW5nIHNhbyB2aSBjbyB0aGUgeGluIGdpYSBoYW4gdGhlbS4NCg0KaHR0 cDovL3NndHQudm4vS2luaC10ZS8xMzAzNjAvQnVjLXh1Yy12ZS1xdXktYmluaC1vbi1naWEteGFu Zy1jYXQlQzIlQTBkaWVuLmh0bWwgMDEuMTAuMjAxMCwgMjI6MDkgKEdNVCs3KQ0KDQpUaHUgdHVv bmc6IEN1IHRyaSBidWMgeHVjIHZlIHF1eSBiaW5oIG9uIGdpYSB4YW5nIHZhIHZpZWMgY2F0IGRp ZW4gDQoNClNHVFQuVk4gLSAiVmllYyBsYXAgcXV5IGJpbmggb24gZ2lhIHhhbmcgY2h1YSBiaW5o IG9uIGdpYSBuaHVuZyBsYWkgdGFvIGxvaSB0aGUgY2hvIGNhYyANCmRvYW5oIG5naGllcCBjbyBk aWV1IGtpZW4gdGh1YW4gbG9pIHRpY2ggdHUgbW90IHNvIHZvbiB0dSBxdXkgbmF5IGRlIGdpYW0g dm9uIHZheSwgdGFvIHJhIA0KbG9pIHRoZSBjYW5oIHRyYW5oIGdpYSBkYW4gZGVuIGRvYyBxdXll biIuIERheSBsYSBwaGF0IGJpZXUgY3VhIHRydW9uZyBiYW4gRGFuIA0Kbmd1eWVuVHJhbiBUaGUg VnVvbmcgdGFpIHBoaWVuIGxhbSB2aWVjIGN1YSBRdW9jIGhvaSwgY2hpZXUgMS4xMC4yMDEwLiBR dXkgYmluaCBvbiBnaWEgeGFuZyB0aGFuaCAibmd1b24gdm9uIiBjaG8gZG9hbmggbmdoaWVwLg0K DQpUaGlldSBkaWVuLCBjYXQgZGllbjogImRhbiB0aG9uZyBjYW0gbmh1bmcga2hvbmcgdGhlIGRv bmcgdGluaCIgDQoNClRydW9uZyBiYW4gRGFuIG5ndXllbiBUcmFuIFRoZSBWdW9uZyBidWMgeHVj OiAiY3UgdHJpIHRob25nIGNhbSBuaHVuZyBraG9uZyBkb25nIA0KdGluaCB2b2kgdmllYyB0aHVj IGhpZW4gY2F0IGRpZW4sIG5ndW5nLCBnaWFtIG11YyBjdW5nIGNhcCBtYSBraG9uZyB0aG9uZyBi YW8gdHJ1b2MgDQp0aGVvIGR1bmcgcXV5IGRpbmgsIGNodWEgZGFtIGJhbyBsdWFuIHBoaWVuLCBj b25nIGJhbmcgZ2l1YSBjYWMgZG9pIHR1b25nLCB0aGlldSB0aG9uZyANCm5oYXQgZ2l1YSBjYWMg ZGlhIHBodW9uZyBuaHUgdGhvaSBnaWFuIHF1YSIuDQoNCiJUaGVtIHZhbyBkbywgZ2lhIGJhbiBs ZSBkaWVuIHNpbmggaG9hdCBjaHVhIGRhbSBiYW8gbmd1eWVuIHRhYyBobyB0cm8gY2hvIG5ndW9p IA0KbmdoZW8sIHRodSBuaGFwIHRoYXAuIFZpIHRyZW4gdGh1YyB0ZSwga2hhY2ggaGFuZyBzdSBk dW5nIGRpZW4gc2luaCBob2F0IGRldSBjaHVuZyBtb3QgZ2lhIGJhbiBsZSIsIG9uZyBWdW9uZyBu ZXUuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0MS8yMDEw MTAwODAwMjY0MS5hc3B4IFRyYSBTb24gMDgvMTAvMjAxMCAwOjI2IA0KDQpUaHUgdHVvbmc6IE1h dCB0cmFpIGRvYyBxdXllbiAgDQogIA0KQ28gdGhlIHhlbSB2dSB0b24ga2hvIDc1MCBuZ2FuIHRh biB4YW5nIGRhdSB2YSAyIHRyaWV1IG0zIGtoaSBjdWEgTmhhIG1heSBsb2MgZGF1IA0KKE5NTEQp IER1bmcgUXVhdCBtYSBsYW5oIGRhbyBUYXAgZG9hbiBkYXUga2hpIFZOIChQVk4pIGRhIGJhbyBj YW8gdGFpIGN1b2MgaG9wIA0KZ2lhbyBiYW4gbW9pIGRheSB2b2kgQm8gQ29uZyB0aHVvbmcgbGEg Z2lvdCBudW9jIGN1b2kgY3VuZyBsYW0gdHJhbiBseSBkb2MgcXV5ZW4gbWEgDQpQVk4gbGF1IG5h eSB2YW4ga2hlcCBraW4uIA0KDQpMeSBkbyBtYSBQVk4gZHVhIHJhIGxhIFRvbmcgY29uZyB0eSB4 YW5nIGRhdSBWTiAoUGV0cm9saW1leCkgZGEga2hvbmcgbXVhIGhldCANCmx1b25nIHhhbmcgZGF1 IG1hIE5NTEQgRHVuZyBRdWF0IHNhbiB4dWF0LiBDb24gUGV0cm9saW1leCB0aGkgInBoYW4gcGhh byIgbGFpIGxhLCANCmNvIHF1YW4gY2h1IHF1YW4gTk1MRCBEdW5nIFF1YXQgZGEga2hvbmcgY2Fw IG5oYXQgZGUgYmFvIGNhbyBjaGluaCB4YWMgdmUgdGluaCANCmhpbmggc2FuIHh1YXQgY3VhIG5o YSBtYXkgbmVuIGhvIGtob25nIGNodSBkb25nIGR1b2MgY2h1eWVuIG5oYXAgeGFuZyBkYXUgdmEg ZGEgY28gDQprZSBob2FjaCBuaGFwIDcwJSBsdW9uZyB4YW5nIGRhdSBjdWEgbmFtLiANCg0KVGhl IG5odW5nLCBjb24gbW90IGNodXllbiAidGUgbmhpIiBraGFjIG1hIGNhIGhhaSBiZW4ga2hvbmcg bXVvbiBkZSBjYXAga3kgaG9uLiBEbyANCmxhIHRvYW4gYm8gc2FuIHBoYW0gY3VhIE5NTEQgRHVu ZyBRdWF0IGRhIGR1b2MgUFYgT2lsIC0gbW90IGR1YSBjb24ga2hhYyBjdWEgUFZOIA0KLSBiYW8g dGlldSB0cm9uIGdvaS4gTmV1IFBldHJvbGltZXggbXVvbiBtdWEgeGFuZyBkYXUgY3VhIE5NTEQg RHVuZyBRdWF0IHRoaSBkZXUgDQpwaGFpIHF1YSAiY3VhIGFpIiBQViBPaWwgdm9pIG5odW5nIGNo aSBwaGkgaG9hIGhvbmcga2hvbmcgYmluaCBkYW5nIG5odSBtdWEgY3VhIGNhYyANCmRvaSB0YWMg a2hhYy4gQ28gbGUgZGF5IGxhIGx5IGRvIGNoaW5oIGRhbiBkZW4gc3UgY28gdG9uIGRvbmcgaGFu ZyB0cmlldSB0YW4gc2FuIHBoYW0gdHJlbiANCmRheSBjaHUga2hvbmcgcGhhaSB0aW5oIGhpbmgg Y2h1bmcgdmUgdGlldSB0aHUgeGFuZyBkYXUgY2hhbSBob24gbW9pIG5hbSBuaHUgbGFuaCANCmRh byBDb25nIHR5IGxvYyBob2EgZGF1IEJpbmggU29uIGRhIHBoYW4gYnVhIGhvYWMgbmhhIG1heSBj aGF5IDEwMCUgY29uZyBzdWF0IG1hIA0Ka2hvbmcgdGhvbmcgYmFvIGRlIGNhYyBkb24gdmkgbmhh cCB4YW5nIGRhdSBjbyBrZSBob2FjaCBkaWV1IGNoaW5oIG5odSBsYW5oIGRhbyBQZXRyb2xpbWV4 IGRhIHRyYW4gdGluaC4gDQoNCkJvIENvbmcgdGh1b25nIGRhIGdvIGJpIGNobyB2aWVjIHRvbiBr aG8gbmF5IGJhbmcgbW90IGNoaSB0aGkgeWV1IG90OiBZZXUgY2F1IFBWTiBjaG8gDQpwaGVwIFBl dHJvbGltZXggbXVhIHhhbmcgZGF1IGN1YSBOTUxEIER1bmcgUXVhdCBtYSBraG9uZyBwaGFpIHF1 YSBraGF1IHRydW5nIGdpYW4gDQpsYSBQViBPaWwuIERpZXUgbmF5IGN1bmcgY28gbmdoaWEgbGEs IFBWTiBidW9jIHBoYWkgbGFtIG1vdCB2aWVjIGNoYW5nIGRhbmcgZHVuZyANCmxhIHR1b2MgZGkg dmF5IGNhbmggZG9jIHF1eWVuIGN1YSBQViBPaWwgZGUgImN1dSIgTk1MRCBEdW5nIFF1YXQga2hv aSByb2kgdmFvIGNhaSANCnRoZSBwaGFpIGhhIGNvbmcgc3VhdCBob2F0IGRvbmcgbmV1IGtob25n IG11b24geGFuZyBkYXUgdG9uIHUgdGhlbS4gVHVvYyBkaSBkb2MgDQpxdXllbiBjdWEgUFYgT2ls IHRyb25nIHZpZWMgbXVhIHhhbmcgZGF1IGN1YSBOTUxEIER1bmcgUXVhdCBsYSBkb25nIG5naGlh IHZvaSB2aWVjIA0KeGVtIFBldHJvbGltZXggbmh1IG1vdCBkb2kgdGFjIGJpbmggZGFuZyBraGFj LCBkaWV1IGRvIHNlIGFuaCBodW9uZyBkZW4gcXV5ZW4gbG9pIGN1YSANClBWIE9pbC4gVHV5IG5o aWVuLCBjbyBsZSBob24gYWkgaGV0LCBQVk4gZGEgdGhhbSB0aGlhIHZvaSB2aWVjIHBoYWkgdHJh IGdpYSBjaG8gY2h1eWVuIA0KZG9jIHF1eWVuIG5heS4NCg0KTmh1bmcgY28gbGUsIFBWIE9pbCBr aG9uZyBwaGFpIGxhIHRydW9uZyBob3AgbmdvYWkgbGUgY3VhIHRpbmggdHJhbmcgZG9jIHF1eWVu IHRyb25nIA0KbmdhbmggZGF1IGtoaS4gVHUgY2h1eWVuIGRhdSB0aGF1IHhheSBkdW5nIGNhYyBj b25nIHRyaW5oIGRvIFBWTiBsYW0gY2h1IGRhdSB0dSBkZW4gDQp2aWVjIGN1bmcgY2FwIGRhdSB0 aG8sIHRoYW0gY2hpIG5nYXkgY2EgdmllYyAicGh1YyB2dSIgYW4gdW9uZyBjaG8gY29uZyBuaGFu IE5NTEQgDQpEdW5nIFF1YXQsIHRhdCBjYSBkZXUgZHVvYyBraGVwIGtpbiB0cm9uZyB2byBib2Mg Y3VhIFBWTiBtYSBraG9uZyBtb3QgYWkgdGh1b2MgZGllbiANCiJuZ29haSBkYW8iIGN1YSB0YXAg ZG9hbiBjbyB0aGUgY2hlbiB2YW8uIENoaSBraGkgbmFvIHBoYWkgdHJhIGdpYSBjaG8gdmllYyBk b2MgcXV5ZW4gDQpuaHUgdnUgeGFuZyBkYXUgdG9uIGRvbmcgdnVhIHJvaSB0aGkgaG8gbW9pIGJh dCBkYXUgImhlIGN1YSIgY2hvIG1vdCBkb2kgdGFjIGtoYWMgImdoZSANCmNoYW4iIG1hIHRob2ku IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDAvMjAxMDEw MDEyMzA0NDguYXNweCBCYW8gQ2FtIDAxLzEwLzIwMTAgMjM6MDQgDQoNClRodSB0dW9uZzogUXV5 IEJpbmggb24gZ2lhIHhhbmcgZGF1IC0gRGFuIGRvbmcgdGllbiBuaHVuZyBxdXllbiBsb2kgY2h1 YSBybyANCiAgDQooQW5oIGNodXA6IER1IGdpYSB4YW5nIHRhbmcgaGF5IGdpYW0sIGtoYWNoIGhh bmcgdmFuIHBoYWkgdHJhIHRoZW0gMzAwIGRvbmcgZGVuIDUwMCANCmRvbmcvbGl0IGRlIGR1YSB2 YW8gUXV5IEJpbmggb24gZ2lhIHhhbmcgZGF1IC0gQW5oOiBELkQuTSkNCg0KQmFuIERhbiBuZ3V5 ZW4gY3VhIFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2kgKFVCVFZRSCkgZGEga2hhbmcgZGluaCBu aHUgdmF5IA0KdHJvbmcgYmFvIGNhbyBrZXQgcXVhIGdpYW0gc2F0IHZpZWMgZ2lhaSBxdXlldCBr aWVuIG5naGkgY3VhIGN1IHRyaSBndWkgZGVuIGt5IGhvcCB0aHUgNyANClFIIGtob2EgWElJLCBk dW9jIHRyaW5oIGJheSB0YWkgcGhpZW4gaG9wIFRWUUggY2hpZXUgMS4xMC4gDQoNClRoZW8gb25n IFRyYW4gVGhlIFZ1b25nLCB0dSBuYW0gMjAwOSwgQ2hpbmggcGh1IHF1eWV0IGRpbmggbGFwIFF1 eSBCaW5oIG9uIGdpYSB4YW5nIA0KZGF1LiBCbyBUYWkgY2hpbmggY2hvIGJpZXQsIHR1IGtoaSBs YXAgcXV5IGRlbiBuZ2F5IDMwLjcuMjAxMCBkYSB0cmljaCBsYXAgZHVvYyB0cmVuIA0KMy42MTkg dGkgZG9uZywgY2FjIGRvYW5oIG5naGllcCAoRE4pIGRhIGR1b2Mgc3UgZHVuZyBnYW4gMS4wNTAg dGkgZG9uZyB2YW8gdmllYyBiaW5oIA0Kb24gZ2lhLCBoaWVuIGNvbiB0cmVuIDIuNTY5IHRpIGRv bmcgdG9uIHRyb25nIHRhaSBraG9hbiBjdWEgY2FjIEROLiANCg0KQ28gcXV5IG5odW5nIGNodWEg YmluaCBvbiBkdW9jIGdpYSANCg0KVHV5IG5oaWVuLCB0aGVvIG5oYW4geGV0IGN1YSBjaGluaCBj YWMgRE4ga2luaCBkb2FuaCB4YW5nIGRhdSwgY3UgdGhlIGxhIFRvbmcgY29uZyB0eSANCnhhbmcg ZGF1IFF1YW4gZG9pLCB0aGkgIm11YyBkaWNoIGhpbmggdGhhbmggcXV5IGJpbmggb24gbGEgZ2l1 cCBvbiBkaW5oIHZlIGdpYSBuaHVuZyANCmhpZW4gbmF5LCB2aWVjIHRyaWNoIGxhcCBxdXkgY2h1 YSBnaWFpIHF1eWV0IGJpbmggb24gZ2lhIG1hIHRhYyBkb25nIHRhbyBsb2kgdGhlIGNobyBjYWMg DQpETiBjbyBkaWV1IGtpZW4gdGh1YW4gbG9pIHRpY2ggdHUgbW90IHNvIHZvbiB0dSBxdXkgbmF5 LCBkZSBnaWFtIHZvbiB2YXkgdmEgdHUgZG8gbGFpIHRhbyANCnJhIGxvaSB0aGUgY2FuaCB0cmFu aCBnaWEgZGFuIGRlbiBkb2MgcXV5ZW4gLSB0aWV1IGRpZXQgY2FuaCB0cmFuaCB0cm9uZyBraW5o IGRvYW5oIHhhbmcgDQpkYXUiLiANCg0KT25nIFZ1b25nIGNobyBiaWV0LCBjdSB0cmkga2llbiBu Z2hpIHBoYWkgeGVtIHhldCwgYmFpIGJvIFF1eSBCaW5oIG9uIGdpYSB4YW5nIGRhdSwgdmkgDQpj aG8gcmFuZyBkdSBraGkgZ2lhIHhhbmcgZGF1IHRhbmcgaGF5IGdpYW0gdGhpIGtoYWNoIGhhbmcg dmFuIHBoYWkgdHJhIHRoZW0gdHUgMzAwIGRvbmcgDQpkZW4gNTAwIGRvbmcvbGl0IGRlIGR1YSB2 YW8gUXV5IEJpbmggb24gZ2lhIHhhbmcgZGF1LCBuaHVuZyB2aWVjIHF1YW4gbHksIHN1IGR1bmcg cXV5IA0KbmF5IGN1bmcgbmh1IHZpZWMga2hhY2ggaGFuZyBkdW9jIGh1b25nIGxvaSB0dSBxdXkg bmF5IG5odSB0aGUgbmFvIHRoaSBraG9uZyByby4gIlF1YSANCnhlbSB4ZXQsIGRvaSBjaGlldSB2 b2kgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCwgQmFuIERhbiBuZ3V5ZW4gbmhhbiB0aGF5IHZpZWMg bGFwIFF1eSANCkJpbmggb24gZ2lhIHhhbmcgZGF1IGNodWEgcGh1IGhvcCB2b2kgcXV5IGRpbmgg Y3VhIFBoYXAgbGVuaCBHaWEiLCBvbmcgVnVvbmcgY2hvIA0KaGF5LiBDdSB0aGUsIHRoZW8gb25n IFZ1b25nLCBEaWV1IDYgY3VhIFBoYXAgbGVuaCBHaWEgcXV5IGRpbmggY3UgdGhlIHZlIGNhYyBi aWVuIHBoYXAgDQpiaW5oIG9uIGdpYSBuaHVuZyBraG9uZyBjbyBiaWVuIHBoYXAgbGFwIHF1eSBi aW5oIG9uIGdpYS4gDQoNCiJNdWMgZGljaCBoaW5oIHRoYW5oIHF1eSBiaW5oIG9uIGxhIGdpdXAg b24gZGluaCB2ZSBnaWEgbmh1bmcgaGllbiBuYXksIHZpZWMgdHJpY2ggbGFwIA0KcXV5IGNodWEg Z2lhaSBxdXlldCBiaW5oIG9uIGdpYSBtYSB0YWMgZG9uZyB0YW8gbG9pIHRoZSBjaG8gY2FjIERO IGNvIGRpZXUga2llbiB0aHVhbiBsb2kgDQp0aWNoIHR1IG1vdCBzbyB2b24gdHUgcXV5IG5heSwg ZGUgZ2lhbSB2b24gdmF5IHZhIHR1IGRvIGxhaSB0YW8gcmEgbG9pIHRoZSBjYW5oIHRyYW5oIGdp YSANCmRhbiBkZW4gZG9jIHF1eWVuIC0gdGlldSBkaWV0IGNhbmggdHJhbmggdHJvbmcga2luaCBk b2FuaCB4YW5nIGRhdSIuLSBZIGtpZW4gY3VhIFRvbmcgDQpjb25nIHR5IHhhbmcgZGF1IFF1YW4g ZG9pIA0KDQpDdW5nIHRoZW8gb25nIFZ1b25nLCBnaWFpIHRyaW5oIHZlIGNhbiBjdSBkZSBsYXAg UXV5IEJpbmggb24gZ2lhIHhhbmcgZGF1LCB0YWkgQmFvIGNhbyANCnNvIDEyODcwIG5nYXkgMjQu OS4yMDEwLCBCbyBUYWkgY2hpbmggY2hvIHJhbmcgdmllYyBsYXAgUXV5IGJpbmggb24gZ2lhIHhh bmcgZGF1IGxhIA0KY2FuIGN1IHZhbyBEaWV1IDUgUGhhcCBsZW5oIEdpYSB2YSBtb3Qgc28gcXV5 IGRpbmggbGllbiBxdWFuIGtoYWMgKE5naGkgZGluaCAxNzAgY3VhIA0KQ2hpbmggcGh1LCBUaG9u ZyBiYW8gc28gMTQ3IGN1YSBWYW4gcGhvbmcgQ2hpbmggcGh1LCBRdXlldCBkaW5oIHNvIDA0LzIw MDkgY3VhIFRodSANCnR1b25nKSwgdHV5IG5oaWVuLCB0cmVuIHRodWMgdGUgdGhpIERpZXUgNSBQ aGFwIGxlbmggR2lhIGN1bmcga2hvbmcgY28gcXV5IGRpbmggbGFwIHF1eSANCmJpbmggb24gbWEg Y2hpIG5oYW4gbWFuaCBkZW4gbm9pIGR1bmcgIk5oYSBudW9jIHRodWMgaGllbiBjYWMgY2hpbmgg c2FjaCwgYmllbiBwaGFwIA0KY2FuIHRoaWV0IHRhYyBkb25nIHZhbyBxdWFuIGhlIGN1bmcgLSBj YXUgZGUgYmluaCBvbiBnaWEgdGhpIHRydW9uZyBkb2kgdm9pIG5odW5nIGhhbmcgDQpob2EsIGRp Y2ggdnUgcXVhbiB0cm9uZywgdGhpZXQgeWV1LCBraWVtIHNvYXQgbGFtIHBoYXQuLi4iLiANCg0K UXVhbiB0cm9uZyBob24sIHRoZW8gb25nIFZ1b25nLCAibmh1bmcgYmllbiBwaGFwIGNhbiB0aGll dCBkdW9jIGFwIGR1bmcgZGUgYmluaCBvbiANCmdpYSBkdW9jIGRlIGNhcCB0YWkgZGlldSBuYXkg ZGEgZHVvYyBjdSB0aGUgaG9hIHRhaSBEaWV1IDYgY3VhIHBoYXAgbGVuaCBtYSBraG9uZyBnaWFv IGNobyBDaGluaCBwaHUgcXV5IGRpbmgiLiANCg0KQ2h1YSBuZ2FuIGNoYW4gZHVvYyBnaWFuIGxh biB4YW5nIGRhdQ0KDQpOZ29haSByYSwgY3VuZyB0aGVvIGJhbyBjYW8gZ2lhbSBzYXQgY3VhIEJh biBEYW4gbmd1eWVuLCBjb25nIHRhYyBjaG9uZyBnaWFuIGxhbiB0cm9uZyANCmtpbmggZG9hbmgg YmFuIGxlIHhhbmcgZGF1IHRyb25nIHRob2kgZ2lhbiBxdWEgdHV5IGRhIGRhdCBkdW9jIG5odW5n IGtldCBxdWEgbmhhdCBkaW5oIA0Kbmh1bmcgbmhpbiBjaHVuZyB2aWVjIGtpZW0gdHJhLCB4dSBs eSBjYWMgaGFuaCB2aSBnaWFuIGxhbiB0cm9uZyBraW5oIGRvYW5oIGJhbiBsZSB4YW5nIA0KZGF1 IHZhbiBjb24gbmhpZXUgaGFuIGNoZSwgYmF0IGNhcCwgY2h1YSBjbyBiaWVuIHBoYXAgaHV1IGhp ZXUgZGUgbmdhbiBjaGFuLCBwaG9uZyANCm5ndWEgbmhhbSBiYW8gdmUgcXV5ZW4gbG9pIGN1YSBu Z3VvaSB0aWV1IGR1bmc7IHZpZWMgcGhhdCBoaWVuIGhhbmggdmkgdmkgcGhhbSBjb24gZ2FwIA0K bmhpZXUga2hvIGtoYW4uIERhYyBiaWV0LCB2aWVjIHh1IGx5IGhhbmggdmkgdmkgcGhhbSBjaHVh IG5naGllbSBtaW5oLCB0aGlldSB0aW5oIHJhbiANCmRlLiANCkJhbiBEYW4gbmd1eWVuIGtpZW4g bmdoaSBVeSBiYW4gVFZRSCB5ZXUgY2F1IENoaW5oIHBodSBjaGkgZGFvIEJvIFRhaSBjaGluaCwg Qm8gDQpDb25nIHRodW9uZyByYSBzb2F0IGNhYyB2YW4gYmFuIHF1eSBkaW5oIGNoaSB0aWV0IHZh IGh1b25nIGRhbiB0aGkgaGFuaCBQaGFwIGxlbmggR2lhIA0KZGUgc3VhIGRvaSwgYm8gc3VuZyBu aHVuZyBxdXkgZGluaCBraG9uZyBwaHUgaG9wIHZvaSBjYWMgcXV5IGRpbmggY3VhIHBoYXAgbGVu aCBuYXkuICANCg0KaHR0cDovL3ZucjUwMC52aWV0bmFtbmV0LnZuL2NvbnRlbnQuYXNweD9pZD04 NzIgUGhhbSBIdXllbiA3LzMxLzIwMTAgNTozMDo1OSBQTSAoR01UKzcpDQoNClRodSB0dW9uZzog VmlldCBOYW0gIm5oYXAgc2lldSIgRVBDIHR1IFRydW5nIFF1b2MgDQoNCjkwJSBjYWMgY29uZyB0 cmluaCBkaWVuLCBraGFpIGtob2FuZywgZGF1IGtoaSwgbHV5ZW4ga2ltLCBob2EgY2hhdC4uLiBj dWEgVmlldCBOYW0gaGllbiANCmRldSBkbyBkb2kgdGFjIFRydW5nIFF1b2MgZGFtIG5oaWVtOyBM YW4gc2FuIGhhdSBoZXQgbGluaCB2dWMgY29uZyBuZ2hpZXAgdGh1b25nIG5ndW9uIGN1YSBWaWV0 IE5hbSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMyLzIw MTAwODA1MjIzODQyLmFzcHggVHJhbiBMZSAwNS8wOC8yMDEwIDIyOjM4IA0KDQpOaHVuZyBzYWkg cGhhbSBvIFZpbmFzaGluIGRhIGR1b2MgYmFvIHRydW9jIDkgbmFtICANCg0KaHR0cDovL3d3dy5s YW9kb25nLmNvbS52bi9UaW4tdHVjL0NvLXN1LWJhby1jaGUtY2hvLVZpbmFzaGluLzE3OTU1IExh bSBTb24gMjYuMTAuMjAxMCAwODoxNiAoR01UICsgNykgDQoNClV5IGJhbiBUdSBwaGFwIFFIOiBO aGFuIGRpbmggY28gc3UgYmFvIGNoZSBjaG8gVmluYXNoaW4hIA0KDQpodHRwOi8vd3d3LnZudHJh ZGVzLmNvbS90aW50dWMvbW9kdWxlcy5waHA/ZmlsZT1hcnRpY2xlJm5hbWU9TmV3cyZzaWQ9MTgw MTEgUEQgSFEgMDUvMDEvMjAwOCANCg0KVGh1IHR1b25nIC0gQ29uZyBhbjogVmluYXNoaW4gbmhh cCBraGF1IG5oYSBtYXkgbmhpZXQgZGllbiBwaGUgbGlldSCWIFZ1IHZpZWMgbmdoaWVtIHRyb25n IHZvIGxvIA0KdHUgbmFtIDIwMDcgbmh1bmcgdmkgc2FvIGRlbiBuYW0gdGhhbmcgOS8yMDEwIG5o dW5nIG5ndW9pIHRoYW0gbmh1bmcgbW9pIGJpIGJhdCBnaXU/IA0KDQpOaGFwIHRoaWV0IGJpIHRv biA0MCBuYW0gY2hvICJuZ3VvbiBkaWVuIGN1YSB0aGUga3kgMjEiLCB0aGlldCBiaSBjdSBuYXQs IGhvZW4gZ2kgMTAwJSANCg0KS2hvaSB0aGlldCBiaSBraG9uZyBsbyBuaGFwIHZlIHR1IGNhbmcg Q2FpIExhbiBkdW9pIGNhaSB0ZW4gZ29pICJ0aGlldCBiaSB4YXkgZHVuZyBOaGEgDQptYXkgTmhp ZXQgZGllbiBTb25nIEhvbmciIGRldSBkYSBxdWEgc3UgZHVuZyBsYXUgbmFtLCB0cm9uZyBkbyBj byB0aGlldCBiaSBzYW4geHVhdCB0dSANCi4uLi4gbmFtIDE5NjcuIFRoaWV0IGJpIG1vaSBuaGF0 LCBkdW9jIGNvaSBsYSBkbyBob24gY2EgY3VuZyBkdW9jIHNhbiB4dWF0IHRydW9jIG5hbSAxOTgw Lg0KDQpNb3QgdnUgbmhhcCBwaGUgbGlldSAiZG9uZyB0cm9pIiB2dWEgZHVvYyBsdWMgbHVvbmcg bGllbiBuZ2FuaCBwaGF0IGhpZW4gdGFpIEhhaSBQaG9uZzogDQpEdWEgbGluaCBraWVuIGN1IG5h dCwgdG9uIDQwIG5hbSB0dSBudW9jIG5nb2FpIHZlIHBodWMgdnUgeGF5IGR1bmcgTmhhIG1heSBO aGlldCBkaWVuIA0KU29uZyBIb25nIC0gY29uZyB0cmluaCBuaGlldCBkaWVuIHF1eSBtbyBsb24g dnVuZyBkdXllbiBoYWkuIEhhdSBoZXQgbGluaCBraWVuIG5heSBsYWkgDQpkdW9jIHRoYW8gcmEg dHUgbW90IG5oYSBtYXkgbmhpZXQgZGllbiBvIG51b2MgbmdvYWkgZGEgcGhhaSBkb25nIGN1YSB2 aSBxdWEgY3UsIGtob25nIA0KY29uIHN1IGR1bmcuLi4NCg0KRHVhIHBoZSBsaWV1IHhheSBuaGEg bWF5IG5oaWV0IGRpZW4gaGllbiBkYWkNCg0KTmhpbiBkb25nIGRvIG5hdCwgaG9lbiBnaSwgbmd1 b2kgdGEgY2hpIGNvIHRoZSBkb2FuIGRvIGxhIHZpZWMgbmhhcCBwaGUgbGlldSByYWMgdGhhaSwg c2F0IA0KdGhlcCBwaGUgbGlldSBsYW0gZG9uZyBuYXQuIEtoaSB0aG9uZyB0aW4gY2hpbmggdGh1 YyBkdW9jIEN1YyBDYW5oIHNhdCBtb2kgdHJ1b25nIA0KKENTTVQpIHhhYyBtaW5oOiB0b2FuIGJv IGxvIHNhdCB0aGVwIHBoZSBkdW9jIGNvaSBkb25nIG5hdCBsYWkgY2hpbmggbGEgdGh1IG1hIGNv bmcgdHkgDQpuYXkgbmhhcCB2ZSBkZSB4YXkgZHVuZy4uLg0KDQpOaGEgbWF5IE5oaWV0IGRpZW4g U29uZyBIb25nIC0gbW90IGNvbmcgdHJpbmggaHVhIGhlbiAibmd1b24gZGllbiBjdWEgdGhlIGt5 IFhYSSIsIA0Kc3UgdmllYyBtb2kgbG8gZGllbi4gTmdheSA0LzEsIGtoaSBsYXQgaG8gc28gbGll biBxdWFuLCBxdWEgdGh1YyBjaHVuZyB0b2kgY3VuZyBraG9uZyBjb24gDQpiaWV0IGR1bmcgdHUg bmd1IGdpIGR1IGRlIG5vaSB0aW5oIG5naGllbSB0cm9uZyBjdWEgdnUgdmllYy4gDQoNClZ1IHZp ZWMgZGEgYW0geSB0aHVjIGhpZW4gbmdhbSB2ZSBIYWkgUGhvbmcgbGF1IG5heS4gUXVhIG5oaWV1 IG5ndW9uIHRpbiwgbHVjIGx1b25nIA0KQ1NNVCBjbyBkdSBjYW4gY3Uga2hhbmcgZGluaCBtb3Qg bmhvbSBkb2kgdHVvbmcgZGFuZyByYW0gcmljaCB0aHVjIGhpZW4gcGhpIHZ1IGxhbSANCmFuLCBt b2MgdGllbiB0eSBOaGEgbnVvYyBiYW5nIGNhY2ggZHVhIHBoZSBsaWV1IG51b2MgbmdvYWkgdmUg VmlldCBOYW0gdm9pIGRhbmggDQpuZ2hpYTogbmhhcCB0aGlldCBiaSB4YXkgZHVuZyBOaGEgbWF5 IE5oaWV0IGRpZW4gU29uZyBIb25nLiANCg0KQ29uZyB0eSBjbyBwaGFuIERhdSB0dSBDdXUgTG9u ZyBWaW5hc2hpbiBjbyBkaWEgY2hpIHRhaSBwaG8gVG9uIER1YyBUaGFuZywgVFAgSGFpIA0KUGhv bmcgZHVvYyBUYXAgZG9hbiBWaW5hc2hpbiBnaWFvIHRyYWNoIG5oaWVtIGxhIG5oYSB0aGF1IHR1 IHZhbiwgbGFwIGRhdCB2YSBjaHV5ZW4gDQpnaWFvIGNvbmcgbmdoZSB0cm9uZyBkdSBhbiB4YXkg ZHVuZyBOaGEgbWF5IE5oaWV0IGRpZW4gU29uZyBIb25nIGNvIGNvbmcgc3VhdCAxODUgDQpNVyB0 aGVvIGhvcCBkb25nIHV5IHRoYWMgbmhhcCBraGF1IHNvIDE4LTMvVVROSyBuZ2F5IDE4LzMvMjAw NiB2b2kgQ29uZyB0eSBjbyANCnBoYW4gQ29uZyBuZ2hpZXAgdGF1IHRodXkgSG9hbmcgQW5oIChO YW0gRGluaCkuIERlIHRodWMgaGllbiBob3AgZG9uZyBuYXksIENvbmcgdHkgDQpIb2FuZyBBbmgg ZGEga3kgdm9pIEN1dSBMb25nIFZpbmFzaGluIDIgaG9wIGRvbmcuIA0KDQpOaGEgbWF5IE5oaWV0 IGRpZW4gU29uZyBIb25nIGR1b2MgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgdGF1IHRodXkgVmlldCBO YW0gcGhlIA0KZHV5ZXQgdGFpIFF1eWV0IGRpbmggc28gNDM4L1FELUNOVC1LSERUIG5nYXkgMjIv OS8yMDA2IHZvaSBtdWMgZGF1IHR1IGxlbiB0b2kgaG9uIA0KMS40MDAgdHkgZG9uZy4gVHJvbmcg dG9uZyBtdWMgZGF1IHR1IG5heSwgdGhpZXQgYmkgbmhhcCBraGF1IGNvIGdpYSB0cmkgNjEwIHR5 IGRvbmcuIER1IA0KYW4gZHVvYyBzdSBkdW5nIHRyZW4gMzMzLjAwMG0yIGRhdCwgZGF0IHRhaSB4 YSBNeSBUcnVuZywgaHV5ZW4gTXkgTG9jLCBOYW0gRGluaC4gDQoNCktoaSB0cmluaCBkdSBhbiBk YXUgdHUsIGRpYSBwaHVvbmcgY2hvIHJhbmcgZGF5IGxhIGR1IGFuIGNhbiB0aGlldCB0cm9uZyBj aHVvbmcgdHJpbmggDQpwaGF0IHRyaWVuIGRpZW4gbHVjIGtodSB2dWMgZG9uZyBiYW5nIHNvbmcg SG9uZy4gTmhhbSBkYW0gYmFvIHZpZWMgbmhhcCBraGF1IHRoaWV0IGJpIA0KZHVuZyBxdXkgZGlu aCwgbmdheSAyMS81LzIwMDcsIEJvIENvbmcgbmdoaWVwIChuYXkgbGEgQm8gQ29uZyB0aHVvbmcp IGRhIGNvIENvbmcgDQp2YW4gc28gMjI0Mi9CQ04gZ3VpIEJhbiBxdWFuIGx5IGNhYyBraHUgY29u ZyBuZ2hpZXAgdGluaCBOYW0gRGluaCB2ZSB2aWVjIHRoYW0gdHJhIA0KaG8gc28gZHUgYW4gTmhh IG1heSBOaGlldCBkaWVuIFNvbmcgSG9uZy4gDQpDb25nIHZhbiBuYXkgbmV1IHJvOiAiRHUgYW4g ZGF1IHR1IHZhIHRoaWV0IGtlIGNvIHNvIGNobyB0aGF5IGNvIGRhdSBoaWV1IHN1IGR1bmcgbWF5 IA0KbW9jLCB0aGlldCBiaSBjdSAoa2UgY2EgdGhpZXQgYmkgY2hpbmgpIHRyb25nIGR1IGFuIG5h eSwgcmF0IGNhbiBjYWMgY28gcXVhbiBjaHVjIG5hbmcgDQpraWVtIHRyYSwgZGFuaCBnaWEgZGFt IGJhbyB0dWFuIHRodSBxdXkgZGluaCBWaWV0IE5hbSB2ZSB2aWVjIGNodXllbiBnaWFvIGNvbmcg bmdoZSANCnZhIGtoYSBuYW5nIGRhcCB1bmcgeWV1IGNhdSBiYW8gdmUgbW9pIHRydW9uZywgeHVh dCwgbmhhcCBraGF1IG1heSBtb2MsIHRoaWV0IGJpIi4gDQoNClNhdSBkbywgcGhhdCBoaWVuIGNv IG5oaWV1IGRhdSBoaWV1IGJhdCBvbiwgbmdheSAxNS82LzIwMDcsIEJvIENvbmcgbmdoaWVwIHRp ZXAgdHVjIGNvIA0KQ29uZyB2YW4gc28gMjc0OC9CQ04gZ3VpIFVCTkQgdGluaCBOYW0gRGluaCwg eWV1IGNhdSBkaW5oIGNoaSB2aWVjIHRodWMgaGllbiBkdSBhbiANCnhheSBkdW5nIE5oYSBtYXkg TmhpZXQgZGllbiBTb25nIEhvbmcuIA0KDQpTYXUga2hpIHJhIHNvYXQgbGFpLCBCbyBDb25nIHRo dW9uZyB0aGF5IHJhbmcgdHJvbmcgcXV5IGhvYWNoIG5oaWV0IGRpZW4gaGllbiB0YWkgdmEgZGVu IA0KMjAxMCwgMjAyMCBraG9uZyBoZSBjbyBjaHUgdHJ1b25nIHhheSBkdW5nIE5oYSBtYXkgTmhp ZXQgZGllbiBTb25nIEhvbmcuIA0KDQpWaSB0aGUsIG5nYXkgNi85LzIwMDcsIEJvIENvbmcgdGh1 b25nIGNoaW5oIHRodWMgY28gVmFuIGJhbiBzbyAxNTAxIGd1aSBVQk5EIHRpbmggDQpOYW0gRGlu aCB2YSBUYXAgZG9hbiBWaW5hc2hpbiwgY2hvIHJhbmcgZHUgYW4gbmhpZXQgZGllbiBkbyBWaW5h c2hpbiB2YSBVQk5EIHRpbmggDQpOYW0gRGluaCBkZSBuZ2hpIGRhdSB0dSBsYSBjaHVhIGNvIHRy b25nIHF1eSBob2FjaCBwaGF0IHRyaWVuIGRpZW4gbHVjIHF1b2MgZ2lhIGdpYWkgDQpkb2FuIDIw MDYgLSAyMDEwLCBrZSBjYSBxdXkgaG9hY2ggZGVuIG5hbSAyMDI1LiANCg0KTWFjIGR1IGR1IGFu IGJpIEJvIENvbmcgdGh1b25nIHlldSBjYXUgZGluaCBjaGkgdmEgZGVuIGx1YyBkbywgZHUgYW4g Y3VuZyBjaHVhIGR1b2MgDQpkdXlldCBuaHVuZyBuZ2F5IHR1IGRhdSBuYW0gMjAwNywgU28gQ29u ZyBuZ2hpZXAgTmFtIERpbmggZGEgY28gdmFuIGJhbiBndWkgSGFpIA0KcXVhbiBIYWkgUGhvbmcs IEhhaSBxdWFuIFF1YW5nIE5pbmggZGUgbmdoaSBjaG8gcGhlcCBDb25nIHR5IEN1dSBMb25nIFZp bmFzaGluIA0KbmhhcCBraGF1IHRoaWV0IGJpIGRlIHhheSBkdW5nIE5oYSBtYXkgTmhpZXQgZGll biBTb25nIEhvbmcuIA0KDQpWYSBDb25nIHR5IEN1dSBMb25nIFZpbmFzaGluIGRhIGNvIGNvIHNv IGRlIHRodWMgaGllbiB2aWVjIG5oYXAga2hhdSB0aGlldCBiaS4gVHJvbmcgDQpuYW0gMjAwNywg Y29uZyB0eSBuYXkgZGEgdm8gdHUgbmhhcCB2ZSBoYW5nIGxvYXQgbG8gaGFuZywgdGF0IGNhIHRo aWV0IGJpIGRldSBjbyBuZ3VvbiANCmdvYyB0dSBIYW4gUXVvYy4gMTggbWF5IGJpZW4gdGhlIGto byBkYSBkdW9jIG5oYXAgcXVhIGNhbmcgSGFpIFBob25nLiANCg0KTmdheSAxNC8xMS8yMDA3LCBD b25nIHR5IGNvIHBoYW4gQ3V1IExvbmcgVmluYXNoaW4gdGhhbiBuaGllbiBtbyB0byBraGFpIGhh bmcgaG9hIA0KbmhhcCBraGF1IHRhaSBDaGkgY3VjIEhhaSBxdWFuIGNhbmcgQ2FpIExhbiwgUXVh bmcgTmluaCwgbmhhcCB2ZSBsbyBoYW5nIHRoaWV0IGJpIG5oYSANCm1heSBuaGlldCBkaWVuIGNv bmcgc3VhdCAxODUgTVcgdm9pIDQwIGtpZW4gaGFuZyByb2ksIDIwIGNodW5nIGxvYWkgaGFuZywg dHJvbmcgbHVvbmcgDQp0YXQgY2EgbGEgOTMxIHRhbi4gDQoNCkJpZW4gdGhlIGJpIHRoYWkgbyBu dW9jIG5nb2FpIHZhbiBjbyBnaWEgMTEwLjAwMCBVU0QhDQoNCktoaSBsdWMgbHVvbmcgQ1NNVCBu YW0gZHVvYyBuZ3VvbiB0aW4sIGxhcCB0dWMgdG9hbiBibyBsbyBoYW5nIDkzMSB0YW4gbm9pIHRy ZW4gZHVvYyANCmtpZW0gdHJhLiBDdW5nIHZvaSB2aWVjIHRoYW0gZGluaCBjdWEgY2FjIGNodXll biBnaWEsIGtob2kgdGhpZXQgYmkga2hvbmcgbG8gbmhhcCB2ZSB0dSANCmNhbmcgQ2FpIExhbiBk dW9pIGNhaSB0ZW4gZ29pIHRoaWV0IGJpIHhheSBkdW5nIE5oYSBtYXkgTmhpZXQgZGllbiBTb25n IEhvbmcgZGEgcGhvaSANCmJheSBzdSB0aGF0IGtob25nIHRoZSBoaWV1IG5vaTogVGhpZXQgYmkg Y3UgbmF0LCBob2VuIGdpIDEwMCUuIA0KDQpDYWMgY2h1eWVuIGdpYSBzYXUga2hpIHRoYW0gZGlu aCBkYSBkdWEgcmEga2V0IGx1YW46IFRvYW4gYm8gdGhpZXQgYmkgbmF5IGRldSBkYSBxdWEgc3Ug DQpkdW5nIGxhdSBuYW0sIHRyb25nIGRvIGNvIHRoaWV0IGJpIHNhbiB4dWF0IHR1IC4uLiBuYW0g MTk2NyEgVGhpZXQgYmkgbW9pIG5oYXQsIGR1b2MgY29pIGxhIA0KZG8gaG9uIGNhIGN1bmcgZHVv YyBzYW4geHVhdCB0cnVvYyBuYW0gMTk4MC4gTW90IHNvIHRoaWV0IGJpIGtoaSBkdW5nIHBodW9u ZyB0aWVuIGR1YSANCmxlbiB0aGkgZGEgYnVjIG5hdCwgZ2F5IHZ1bi4gDQoNCkRhbmcgY2h1IHks IGNvIDMgbWF5IGJpZW4gdGhlIGRpZW4gY3UgbmF0LCB0cm9uZyBsdW9uZyBjYW4gZHVvYyAzMDAg dGFuLiBWb2kgbmh1bmcgYmllbiANCnRoZSBuYXksIHBoaWEgSGFuIFF1b2MgZGEgc2EgdGhhaSwg ZHVhIHRpZXUgaHV5IGRlIGxhcCBkYXQgYmllbiB0aGUgbW9pLiBUaGUgbWEgdHJvbmcgdG8gDQpr aGFpIGhhbmcgaG9hIG5oYXAga2hhdSBjdWEgY29uZyB0eSB2YW4gdGhheSBkZSBnaWEgdHJpIGN1 YSBtb2kgbWF5IGJpZW4gdGhlIGxlbiB0b2kgDQoxMTAuMDAwIFVTRCEgS2llbSB0cmEgdHJvbmcg bW9pIG1heSBiaWVuIHRoZSB2YW4gdGhheSBjb24gZGF1IHBvbHkgY2hsb3JpbmF0ZWQgYmlwaGVu bnlscy4gDQoNClRoZW8gcGhhbiB0aWNoIGN1YSBjbyBxdWFuIGNodWMgbmFuZywgZGF5IGxhIGhv cCBjaGF0IGh1dSBjbyBraG8gcGhhbiBodXkgbmh1bmcgZGUgDQpraHVlY2ggdGFuLCByYXQgZG9j IGhhaSB2b2kgbW9pIHRydW9uZyB2YSBzdWMga2hvZSBjb24gbmd1b2kuLi4NCg0KQ2h1bmcgdG9p IHNlIHRpZXAgdHVjIHRob25nIHRpbiB2dSBuaGFwIGtoYXUgdGhpZXQgYmkgY3UgbmF0LCBnYXkg aGF1IHF1YSBuZ2hpZW0gdHJvbmcgdmUgDQptb2kgdHJ1b25nIHZhIGdheSB0aGlldCBoYWkgaGFu ZyB0cmFtIHR5IGRvbmcgY3VhIE5oYSBudW9jIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1wbHVzLnZu L0hvbWUvS2hvaS10by1iYXQtdGFtLWdpYW0tYm9uLWJpLWNhbi10cm9uZy12dS1WaW5hc2hpbi8y MDEwOS81ODkwMy52bnBsdXMgKFRUWFZOL1ZpZXRuYW0rKSAwMy8wOS8yMDEwIDE2OjQwOjAwIA0K DQpUaW4gdmUgdmllYyBraG9pIHRvLCBiYXQgdGFtIGdpYW0gYm9uIGJpIGNhbiB0cm9uZyB2dSBW aW5hc2hpbg0KDQpUcnVuZyB0dW9uZyBIb2FuZyBLb25nIFR1LCBUaHUgdHJ1b25nIENvIHF1YW4g QW4gbmluaCBkaWV1IHRyYSAtIEJvIENvbmcgYW4gY2hvIA0KYmlldCwgZHVvYyBzdSBwaGUgY2h1 YW4gY3VhIFZpZW4gS2llbSBzYXQgbmhhbiBkYW4gdG9pIGNhbywgdHJ1YSAzLzksIENvIHF1YW4g YW4gbmluaCANCmRpZXUgdHJhIC0gQm8gQ29uZyBhbiBkYSBiYXQsIGtoYW0geGV0LCB0YW0gZ2lh bSBkb2kgdm9pIDQgYmkgY2FuIHZlIGhhbmggdmkgY28geSBsYW0gdHJhaSANCnF1eSBkaW5oIGN1 YSBOaGEgbnVvYyB2ZSBxdWFuIGx5IGtpbmggdGUgZ2F5IGhhdSBxdWEgbmdoaWVtIHRyb25nLg0K DQpDYWMgYmkgY2FuIGdvbSBUcmFuIFF1YW5nIFZ1LCBuZ3V5ZW4gVG9uZyBHaWFtIGRvYyBkaWV1 IGhhbmggVGFwIGRvYW4gQ29uZyANCm5naGllcCBUYXUgdGh1eSBWaWV0IE5hbSAoVmluYXNoaW4p OyBUcmFuIFZhbiBMaWVtLCBuZ3V5ZW4gVXkgdmllbiBIb2kgZG9uZyBxdWFuIA0KdHJpLCBUcnVv bmcgYmFuIEtpZW0gc29hdCBUYXAgZG9hbjsgTmd1eWVuIFZhbiBUdXllbiwgbmd1eWVuIFRvbmcg R2lhbSBkb2MgQ29uZyANCnR5IENvIHBoYW4gQ29uZyBuZ2hpZXAgVGF1IHRodXkgSG9hbmcgQW5o IHZhIE5ndXllbiBUdWFuIER1b25nLCBuZ3V5ZW4gVG9uZyANCkdpYW0gZG9jIENvbmcgdHkgVHJh Y2ggbmhpZW0gaHV1IGhhbiBNb3QgdGhhbmggdmllbiBUaGVwIENhaSBMYW4gLSBWaW5hc2hpbi4g DQoNCk5odSB0aW4gZGEgZHVhLCBzYXUga2hpIENvIHF1YW4gYW4gbmluaCBkaWV1IHRyYSAtIEJv IENvbmcgYW4ga2hvaSB0byB2dSBhbiwga2hvaSB0byBiaSANCmNhbiwgYmF0IHRhbSBnaWFtIFBo YW0gVGhhbmggQmluaCwgbmd1eWVuIENodSB0aWNoIEhvaSBkb25nIHF1YW4gdHJpLCBraWVtIFRv bmcgDQpHaWFtIGRvYyBWaW5hc2hpbiwgY2FuIGN1IHRhaSBsaWV1LCBjaHVuZyBjdSBkaWV1IHRy YSB2YSBsb2kga2hhaSBuaGFuIGN1YSBiaSBjYW4gUGhhbSANClRoYW5oIEJpbmgsIENvIHF1YW4g YW4gbmluaCBkaWV1IHRyYSBuaGFuIHRoYXksIGNvIGNhbiBjdSB4YWMgZGluaCBjYWMgb25nIFRy YW4gUXVhbmcgDQpWdSwgVHJhbiBWYW4gTGllbSwgTmd1eWVuIFZhbiBUdXllbiB2YSBOZ3V5ZW4g VHVhbiBEdW9uZyBkYSBjbyBoYW5oIHZpIGNvIHkgbGFtIA0KdHJhaSBxdXkgZGluaCBjdWEgTmhh IG51b2MgdmUgcXVhbiBseSBraW5oIHRlIGdheSBoYXUgcXVhIGRhYyBiaWV0IG5naGllbSB0cm9u ZyB0cm9uZyANCnF1YSB0cmluaCB0aHVjIGhpZW4gY2FjIGR1IGFuIG11YSB0YXUgY2FvIHRvYyBI b2EgU2VuLCBkYXUgdHUgTmhhIG1heSBuaGlldCBkaWVuIFNvbmcgDQpIb25nIHZhIGJhbiB0YWkg c2FuIHRoZSBjaGFwIHRhaSBUb25nIENvbmcgdHkgQ29uZyBuZ2hpZXAgVGF1IHRodXkgTmFtIFRy aWV1LiANCg0KQ3UgdGhlLCBvbmcgVHJhbiBRdWFuZyBWdSwgc2luaCBuYW0gMTk1OCwgdHJ1IHRh aSBzbyA0MCwgbmdvIDEsIGR1b25nIEhhaSBCYSBUcnVuZywgDQpwaHVvbmcgQW4gQmllbiwgcXVh biBMZSBDaGFuLCB0aGFuaCBwaG8gSGFpIFBob25nLCB0cm9uZyB0aG9pIGdpYW4gbGFtIHRvbmcg Z2lhbSBkb2MgDQpUb25nIENvbmcgdHkgQ29uZyBuZ2hpZXAgVGF1IHRodXkgTmFtIFRyaWV1LCBt YWMgZHUgYmlldCBDaGluaCBwaHUga2hvbmcgY2hvIHBoZXAgDQptdWEgdGF1IGN1IGRlIHN1IGR1 bmcsIG5odW5nIHZhbiBjdW5nIHZvaSBQaGFtIFRoYW5oIEJpbmggbGFwIGR1IGFuIGhvYW4gY2Fp IHRhdSANCkJhY2ggRGFuZyBHaWFuZyAoZG8gQmEgTGFuIHNhbiB4dWF0IG5hbSAxOTczKSwgbGEg bG9haSB0YXUgZHVvYyBOYW0gVHJpZXUgbXVhIHZvaSANCm11YyBkaWNoIGRlIHBoYSBkbyBiYW4g c2F0IHZ1bi4gDQoNClRyYW4gUXVhbmcgVnUgY29uIGR1bmcgY29uIHRhdSBuYXkgZGUgdGhlIGNo YXAgQ29uZyB0eSBUYWkgY2hpbmggQ29uZyBuZ2hpZXAgVGF1IA0KdGh1eSB0aHVvYyBUYXAgZG9h biBWaW5hc2hpbiAoQ29uZyB0eSBUYWkgY2hpbmgpIGRlIHZheSAxMDYgdHkgZG9uZyB0dSBuZ3Vv biB2b24gdHJhaSANCnBoaWV1IHF1b2MgdGUgY3VhIENoaW5oIHBodS4gDQoNCk9uZyBWdSBkYSBw aGEgZG8gY29uIHRhdSBuYXkgZGUgYmFuIHNhdCB2dW4ga2hpIGNodWEgZHVvYyBzdSBkb25nIHkg Y3VhIGxhbmggZGFvIFRhcCANCmRvYW4gVmluYXNoaW4gdmEga2hvbmcgdGhvbmcgYmFvIGNobyBD b25nIHR5IFRhaSBjaGluaCBsYSBkb24gdmkgbmhhbiB0aGUgY2hhcC4gU28gDQp0aWVuIGJhbiBz YXQgdnVuIHRodSBkdW9jIGN1bmcga2hvbmcgaG9hbiB0cmEgY2hvIENvbmcgdHkgVGFpIGNoaW5o LiANCg0KSGF1IHF1YSBsYSB0YWkgc2FuIE5oYSBudW9jIHRoZSBjaGFwIGJpIG1hdC4gSGFuaCB2 aSBjdWEgVHJhbiBRdWFuZyBWdSBkYSB2aSBwaGFtIA0KUXV5ZXQgZGluaCBzbyAzNi8yMDA2L1FE LUJUQyBuZ2F5IDcvNy8yMDA2IGN1YSBCbyBUYWkgY2hpbmgsIGdheSBoYXUgcXVhIGtpbmggdGUg DQpkYWMgYmlldCBuZ2hpZW0gdHJvbmcuIA0KDQpPbmcgVHJhbiBWYW4gTGllbSwgc2luaCBuYW0g MTk1NSwgdHJ1IHRhaSBwaG9uZyAxMjA4LCBuaGEgMTdUNiwga2h1IGRvIHRoaSBUcnVuZyANCkhv YS1OaGFuIENoaW5oLCBUaGFuaCBYdWFuLCBIYSBOb2ksIHRyb25nIHRob2kgZ2lhbiBsYW0gdG9u ZyBnaWFtIGRvYyBDb25nIHR5IFRyYWNoIA0KbmhpZW0gaHV1IGhhbiBNb3QgdGhhbmggdmllbiB2 YW4gdGFpIFZpZW4gRHVvbmcgVmluYXNoaW4sIGR1b2MgUGhhbSBUaGFuaCBCaW5oIA0KZ2lhbyBs YW0gY2h1IGRhdSB0dSBkdSBhbiBtdWEgdGF1IGNhbyB0b2MgSG9hIFNlbiwgdmllYyBuYXkgZGEg bGFtIHRyYWkgdm9pIHkga2llbiBjaGkgDQpkYW8gY3VhIFRodSB0dW9uZyBDaGluaCBwaHUgbmV1 IHRyb25nIGNvbmcgdmFuIHNvIDE5NTYvVlBDUCBuZ2F5IDEyLzQvMjAwNyB2YSANCkNvbmcgdmFu IHNvIDM2ODgvVlBDUCBuZ2F5IDMvNy8yMDA3IGN1YSBWYW4gUGhvbmcgQ2hpbmggcGh1LiANCg0K TWF0IGtoYWMsIHRyb25nIHF1YSB0cmluaCBtdWEgdGF1LCBUcmFuIFZhbiBMaWVtIGRhIGtob25n IHRvIGNodWMgY2hhbyBoYW5nIGNhbmggDQp0cmFuaCwga3kgaG9wIGRvbmcgbXVhIHRhdSB0cnVv YyBraGkgbGFwIGR1IGFuLCBraG9uZyBraGFvIHNhdCBreSB0aHVhdCB0cnVvYyBraGkgbmhhbiAN CnRhdSwgdHJhaSB2b2kgTmdoaSBkaW5oIHNvIDQ5LzIwMDYvTkQtQ1AgY3VhIENoaW5oIHBodSB2 ZSBxdXkgdHJpbmggbXVhIGJhbiB0YXUgYmllbi4gDQpIYXUgcXVhIGtoaSB0YXUgbmF5IG5oYXAg dmFvIFZpZXQgTmFtIGJpIG51dCBkYXkgcGhhaSBzdWEgY2h1YSB2YSBob2F0IGRvbmcga2luaCAN CmRvYW5oIGtob25nIGhpZXUgcXVhLCBnYXkgdGhpZXQgaGFpIGtpbmggdGUgZGFjIGJpZXQgbmdo aWVtIHRyb25nLiANCg0KT25nIE5ndXllbiBWYW4gVHV5ZW4gc2luaCBuYW0gMTk2MiwgdHJ1IHRh aSBuaGEgc28gNywgbG8gMjEtQlQxLCBraHUgZG8gdGhpIE1lIFRyaSANCkhhLCBUdSBMaWVtLCBI YSBOb2kgdmEgb25nIE5ndXllbiBUdWFuIER1b25nLCBzaW5oIG5hbSAxOTY2LCB0cnUgdGFpIHNv IDE3IHBobyBMYW4gDQpPbmcsIEhvbmcgQmFuZywgSGFpIFBob25nLiBNYWMgZHUgYmlldCBDaGlu aCBwaHUga2hvbmcgY2hvIHBoZXAgdGh1YyBoaWVuIGRhdSB0dSANCnhheSBkdW5nIGR1IGFuIG5o YSBtYXkgbmhpZXQgZGllbiBTb25nIEhvbmcgdGFpIE5hbSBEaW5oIG5odW5nIG9uZyBQaGFtIFRo YW5oIA0KQmluaCwgb25nIE5ndXllbiBWYW4gVHV5ZW4gdmEgTmd1eWVuIFR1YW4gRHVvbmcgdmFu IHF1eWV0IGRpbmggeGF5IGR1bmcgbmhhIG1heSANCm5vaSB0cmVuIHZhIGdpYW8gY2hvIE5ndXll biBWYW4gVHV5ZW4gbGFtIGNodSBkYXUgdHUgdmEgTmd1eWVuIFR1YW4gRHVvbmcgbGFtIHRvbmcg dGhhdS4gDQoNClR1eWVuIHZhIER1b25nIGRhIHF1eWV0IGRpbmggbXVhIGhhaSBuaGEgbWF5IG5o aWV0IGRpZW4gY3Ugc2FuIHh1YXQgdHUgbmh1bmcgbmFtIA0KNjAgY3VhIHRoZSBreSB0cnVvYyBj dWEgSGFuIFF1b2MsIGRhIG5ndW5nIGhvYXQgZG9uZyB0dSAyMDA0LCB0cm9uZyBkbyBjbyBjYWMg YmllbiB0aGUgDQpjaHVhIGNoYXQgZG9jIGhhaSBtYSBDaGluaCBwaHUgSGFuIFF1b2MgY2FtIHh1 YXQsIENoaW5oIHBodSBWaWV0IE5hbSBjYW0gbmhhcC4gDQpOZ3V5ZW4gVmFuIFR1eWVuIHZhIE5n dXllbiBUdWFuIER1b25nIGRhIHN1IGR1bmcgZ2lheSB0byBnaWEgbWFuZyBkYW5oIEJvIFRhaSAN Cm5ndXllbiB2YSBNb2kgdHJ1b25nLCBCbyBDb25nIFRodW9uZyBkZSBuaGFwIHNvIHRoaWV0IGJp IHRyZW4gdmUgVmlldCBOYW0gZ2F5IGhhdSANCnF1YSBkYWMgYmlldCBuZ2hpZW0gdHJvbmcuIA0K DQpDbyBxdWFuIGFuIG5pbmggZGlldSB0cmEgLSBCbyBDb25nIGFuIHhhYyBkaW5oLCBuaHVuZyBo YW5oIHZpIG5ldSB0cmVuIGN1YSBjYWMgb25nIA0KVHJhbiBRdWFuZyBWdTsgVHJhbiBWYW4gTGll bTsgTmd1eWVuIFZhbiBUdXllbiB2YSBOZ3V5ZW4gVHVhbiBEdW9uZyBjbyBkYXUgDQpoaWV1IHBo YW0gdmFvIHRvaSAiQ28geSBsYW0gdHJhaSBxdXkgZGluaCBjdWEgTmhhIG51b2MgdmUgcXVhbiBs eSBraW5oIHRlIGdheSBoYXUgcXVhIA0KbmdoaWVtIHRyb25nIiB0aGVvIGRpZXUgMTY1IEJvIGx1 YXQgaGluaCBzdTsgZG9uZyBwaGFtIHZvaSBQaGFtIFRoYW5oIEJpbmguIA0KDQpWaWVjIGJhdCwg a2hhbSB4ZXQgZG9pIHZvaSA0IGJpIGNhbiBuYXkgZHVvYyB0aWVuIGhhbmggdGhlbyBkdW5nIHRy aW5oIHR1IGN1YSBwaGFwIGx1YXQuIA0KQ28gcXVhbiBjaHVjIG5hbmcgZGFuZyB0aWVwIHR1YyBk aWV1IHRyYSBsYW0gcm8gZGUgeHUgbHkgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0Li8uDQoN CihDdSB0cmkgcXVhbiB0YW06IFZ1IFZpbmFzaGluIG5oYXAgdGhpZXQgYmkgeGF5IGR1bmcgTmhh IG1heSBOaGlldCBkaWVuIFNvbmcgSG9uZyANCmN1IG5hdCwgaG9lbiBnaSAxMDAlLCBnYXkgaGF1 IHF1YSBkYWMgYmlldCBuZ2hpZW0gdHJvbmcgZGEgYmkgdm8gbG8gdHUgbmFtIDIwMDcsIENvIHF1 YW4gQW4gbmluaCBkaWV1IHRyYSwgQm8gQ29uZyBhbiB2YSBUaHUgdHVvbmcgQ2hpbmggcGh1IGRl dSBiaWV0LCBuaHVuZyBraG9uZyBybyB2aSBzYW8gZGVuIHRoYW5nIDkvMjAxMCBuaHVuZyBuZ3Vv aSB2aSBwaGFtIG1vaSBiaSBiYXQgZ2l1PyBOaHUgdmF5LCBjbyBzdSBiYW8gY2hlIGtob25nPykg ICANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQwLzIwMTAw OTMwMjMzODI1LmFzcHggUXVhbmcgRHVhbiBULkhhbmcgUGhhbSBIYWkgU2FtIDMwLzA5LzIwMTAg MjM6MzggDQoNClRodSB0dW9uZzogTmd1eSBjbyBWaWV0IE5hbSB0aGFuaCBiYWkgcmFjIGNvbmcg bmdoaWVwICANCg0KQW5oIGNodXA6IFJhYyB0aGFpIG5oYXAgdmFvIFZOIGJpIHBoYXQgaGllbiB0 YWkgY2FjIGNhbmcgbyBIYWkgUGhvbmcgLSBBbmg6IFBoYW0gSGFpIFNhbQ0KDQoqIE51b2Mgbmdv YWkgY2hvIHRpZW4gZGUgRE5WTiBuaGFwIHJhYyANCg0KVmkgbW9uIGxvaSB0cnVvYyBtYXQsIHJh dCBuaGlldSBjYSBuaGFuLCBkb2FuaCBuZ2hpZXAgKEROKSBkYSBiYXQgY2hhcCB0YXQgY2EgZGUg bmhhcCANCnJhYyB0aGFpIGNvbmcgbmdoaWVwIChSVENOKSB2YW8gVk4uIFRpbmggdHJhbmcgbmF5 IG5nYXkgY2FuZyB0cm8gbmVuIG5naGllbSB0cm9uZyB2YSANClZOIGRhbmcgY28gbmd1eSBjbyB0 cm8gdGhhbmggYmFpIGNodWEgY2hhdCB0aGFpIGN1YSB0aGUgZ2lvaS4gDQoNClJhYyB0aGFpIG5o YXAgdHJhbiBuZ2FwIGNhYyBjYW5nIA0KDQpUaG9pIGdpYW4gZ2FuIGRheSwgY2FjIGNvIHF1YW4g Y2h1YyBuYW5nIGxpZW4gdGllcCBwaGF0IGhpZW4gY2FjIHZ1IG5oYXAgY2hhdCB0aGFpIG51cCAN CmJvbmcgdmllYyBuaGFwIHBoZSBsaWV1IG5odTogbmhhcCBzYXQgdGhlcCBsYW4gc2FtIGxvcCB2 YSB0aHVuZyBkdW5nIGhvYSBjaGF0LCBuaGFwIGxpbmggDQpraWVuIGRpZW4gdHUgY3UsIGJpbmgg YWMtcXV5IGRhIHF1YSBzdSBkdW5nLi4uIHRhaSBIYWkgUGhvbmcsIFF1YW5nIE5pbmgsIFRQLkhD TSB2YSANCm1vdCBzbyBkaWEgcGh1b25nIGtoYWMuIENoYW5nIGhhbiwgQ2hpIGN1YyBIYWkgcXVh biBjdWEga2hhdSBjYW5nIERhIE5hbmcga2h1IHZ1YyAyIA0KcGhhdCBoaWVuIDEwIGNvbnRhaW5l ciB4aSBzYXQgZG9uZyBjdWMgY28ga2hvaSBsdW9uZyAyMTYsNzY1IHRhbiwgYmFuIHZhIGNvIGdp YSB0cmkgdGhhcCANCmRhbmcgdHJvbmcgdGluaCB0cmFuZyB2byBjaHUgc2F1IGtoaSBuaGFwIHZh byBjYW5nIFRpZW4gU2EuIENvbmcgdHkgQ1AgeGF5IGR1bmcgdmEgbm9pIA0KdGhhdCBUaGFpIFNv biBkYSBreSBob3AgZG9uZyB0YW0gbmhhcCwgdGFpIHh1YXQgdm9pIG1vdCBjb25nIHR5IGN1YSBI b25nIEtvbmcgdm9pIGhhbmcgDQpob2EgdHJlbiB2YW4gZG9uIGxhIDgwMCB0YW4gc2lsaWNvbiB0 dSBIb25nIEtvbmcgcXVhIFRydW5nIFF1b2MuIEtoaSBsYW0gdGh1IHR1YyANCmhhaSBxdWFuIHRh aSBNb25nIENhaSB0aGkgcGhhdCBoaWVuIDE0IGNvbnRhaW5lciBraG9uZyBkdW5nIGNodW5nIGxv YWkgKHZ1YSBjaHVhIA0Kc2lsaWNvbiBsYW4gYWMtcXV5IGtobyB2YSB2aSBtYWNoIGRpZW4gdHUg ZGEgcXVhIHN1IGR1bmcpLiBOZ2F5IHNhdSBraGkgeHVhdCBkdW9jIGxvIA0KaGFuZyBuYXksIGNv bmcgdHkgY3VhIEhvbmcgS29uZyBkYSB0dXllbiBibyBwaGEgc2FuLiBNb2kgZGF5LCBsdWMgbHVv bmcgaHV1IHRyYWNoIA0KcGhhdCBoaWVuIDU5MiBjb250YWluZXIgaGFuZyBob2EgZGFuZyB0b24g bHV1IHRhaSBjYWMgY2FuZyBEaW5oIFZ1LCBEb2FuIFhhLCANCkdyZWVucG9ydCwgVHJhbnN2aW5h IGRldSBjdWEgSGFpIFBob25nLiBRdWEgcGhhbiBsb2FpIGJhbiBkYXUgY2hvIHRoYXkgY28gdG9p IDEyMCANCmNvbnRhaW5lciBjaHVhIHNhdCB0aGVwIHBoZSBsaWV1LCBuaHVhIHBoZSBsaWV1LCBn aWF5IHBoZSBsaWV1LCBsaW5oIGtpZW4gZGllbiB0dSBjdSwgYWMtcXV5IA0KY2hpIHBoZSBsaWV1 Li4uIE1vIDM5IGNvbnRhaW5lciB0cm9uZyBzbyBuYXkgdGhpIHRhdCBjYSBkZXUgdmkgcGhhbSBw aGFwIGx1YXQgdmUgYmFvIHZlIA0KbW9pIHRydW9uZy4NCg0KVGhvbmcga2UgY3VhIFBDNDkgQ29u ZyBhbiBIYWkgUGhvbmcgY2hvIHRoYXkgdHJvbmcgMyBuYW0gKDIwMDMtMjAwNikgZGEgY28gZ2Fu IA0KMi4zMDAgY29udGFpbmVyIGNodWEgZ2FuIDM3LjAwMCB0YW4gYWMtcXV5IGNoaSBwaGUgdGhh aSBkYSBkdW9jIG5oYXAgdmFvIGNhbmcgSGFpIA0KUGhvbmcuIFRyb25nIGhhaSBuYW0gMjAwOCAt IDIwMDksIHRpZXAgdHVjIHBoYXQgaGllbiAzNDAgY29udGFpbmVyIHJhYyBwaGUgbGlldSB2YSBo YW5nIA0KY2h1YyBjb250YWluZXIgYWMtcXV5IGNoaSBwaGUgdGhhaSwgdmkgbWFjaCBkaWVuIHR1 IGR1b2MgbmhhcCBjYW5nLiBUaW5oIHR1IGRhdSBuYW0gDQooMjAxMCkgdG9pIG5heSwgY2FuZyBI YWkgUGhvbmcgY28gaG9uIDMwMCBjb250YWluZXIgY2hhdCB0aGFpIHZpIHBoYW0gcGhhcCBsdWF0 IGJhbyB2ZSANCm1vaSB0cnVvbmcgbHV1IGJhaS4gKFAuSC5TKQ0KDQpOdW9jIG5nb2FpIGNobyB0 aWVuIGRlIEROVk4gbmhhcCByYWMNCg0KT25nIEhvYW5nIE1pbmggRGFvLCBDdWMgdHJ1b25nIEN1 YyBLaWVtIHNvYXQgbyBuaGllbSAodGh1b2MgVG9uZyBjdWMgTW9pIHRydW9uZywgDQpCbyBUTi1N VCkgY2hvIGJpZXQsIHBoYXAgbHVhdCBkYSBxdXkgZGluaCwgY2hpIGR1b2MgbmhhcCBraGF1IHBo ZSBsaWV1IG5hbSB0cm9uZyBkYW5oIA0KbXVjIGR1b2MgcGhlcCBuaGFwIGtoYXUgY3VhIEJvIFRO LU1ULCBjaGkgbmhhcCBkZSBwaHVjIHZ1IHRydWMgdGllcCBzYW4geHVhdCB2YSBwaGFpIA0KZGFw IHVuZyBkYXkgZHUgY2FjIGRpZXUga2llbiB2ZSBiYW8gdmUgbW9pIHRydW9uZy4gVHV5IG5oaWVu LCByYXQgbmhpZXUgdG8gY2h1YywgY2EgbmhhbiANCmRhIGxvaSBkdW5nIGNodSB0cnVvbmcgbmF5 IGRlIG5oYXAgY2hhdCB0aGFpLCB0cm9uZyBkbyBjbyBjaGF0IHRoYWkgbmd1eSBoYWkgYmF0IGNo YXAgDQpMdWF0IEJhbyB2ZSBtb2kgdHJ1b25nIG5hbSAyMDA1IGRhIHF1eSBkaW5oOiBjYW0gbmhh cCBraGF1LCBxdWEgY2FuaCBjaGF0IHRoYWkgZHVvaSANCm1vaSBoaW5oIHRodWMuDQoNCipEdSBs dWFuIGxvIG5nYWkgVk4gc2UgdHJvIHRoYW5oIGJhaSBjaGF0IHRoYWkgY3VhIHRoZSBnaW9pLiBY aW4gb25nIGNobyBiaWV0IHkga2llbiBjdWEgbWluaCB2ZSBuZ3V5IGNvIG5heT8NCg0KLSBOaHVu ZyBuYW0gZ2FuIGRheSwgY2h1bmcgdG9pIG5oYW4gdGhheSwgZGFuZyBjbyBtb3QgeHUgaHVvbmcg Y2h1eWVuIGNoYXQgdGhhaSBkdW9pIA0KaGluaCB0aHVjIHBoZSB0aGFpIHR1IGNhYyBudW9jIHBo YXQgdHJpZW4gdmFvIGNhYyBudW9jIGRhbmcgcGhhdCB0cmllbiwgdHJvbmcgZG8gY28gVk4uIA0K VHUgeHUgdGhlIG5heSwgY29uZyB2b2kgdGh1YyB0ZSB2aWVjIG5oYXAgcGhlIGxpZXUgY28gbGFu IGNoYXQgdGhhaSB2YW8gbnVvYyB0YSB0cm9uZyANCm5odW5nIG5hbSB2dWEgcXVhLCBjaHVuZyB0 b2kgY2hvIHJhbmcsIHRybyB0aGFuaCBiYWkgY2hhdCB0aGFpIGN1YSB0aGUgZ2lvaSBsYSBuZ3V5 IGNvIA0KaGllbiBodXUgZG9pIHZvaSBudW9jIHRhIG5ldSBraGF1IHF1YW4gbHksIG5nYW4gY2hh biBraG9uZyBkZW0gbGFpIGhpZXUgcXVhIG5odSBtb25nIA0KbXVvbi4gDQogDQoqVGh1YSBvbmcs IHRhaSBzYW8gZHUgbHVhbiBkYSBjYW5oIGJhbyBtYW5oIG1lIHZlIG5ndXkgY28gbmF5IG5odW5n IHRpbmggaGluaCBuaGFwIGNoYXQgDQp0aGFpIHZhbyBudW9jIHRhIHZhbiBraG9uZyBkdW9jIGNh aSB0aGllbj8NCg0KLSBUaHVjIHRyYW5nIG5heSwgdGhlbyB0b2kgYmF0IG5ndW9uIHR1IG5oaWV1 IG5ndXllbiBuaGFuLiBUcnVvYyBoZXQsIHRvIGNodWMgdmEgY2EgbmhhbiANCmtob25nIHBoYWkg dHJhIHRpZW4gbXVhIGNoYXQgdGhhaSwgdGhhbSBjaGkgY29uIGR1b2MgZG9pIHRhYyBudW9jIG5n b2FpIGNobyB0aGVtIHRpZW4gZGUgDQpuaGFwIHZlIHZhIGhvIGNvbiBraWVtIGR1b2MgbW9pIGxv aSB0dSB2aWVjIGJvYyB0YWNoIGxpbmgga2llbiBkaWVuIHR1IGN1LCBiaW5oIGFjLXF1eSANCmN1 Li4uIGRlIGxheSB2YW5nLCBiYWMsIGNoaSwgdGh1eSBuZ2FuLi4uIERheSBsYSBtb24gbG9pIHJh dCBsb24sIGNvIHN1YyBjYW0gZG8gbG9uIGRvaSB2b2kgDQptb3Qgc28gY2EgbmhhbiwgdG8gY2h1 YyBuZW4gaG8gdGltIG1vaSB0aHUgZG9hbiB0aW5oIHZpIGRlIGxhY2ggbHVhdCwgbmhhcCBjaGF0 IHRoYWkgdmUuIA0KQ2hhbmcgaGFuLCB0byBjaHVjLCBjYSBuaGFuIHRyb25nIG51b2MgbmhhcCBr aGF1IGNoYXQgdGhhaSBudXAgYm9uZyBkdW9pIGhpbmggdGh1YyANCm5oYXAgcGhlIGxpZXUgdGhv bmcgcXVhIG1vdCBjb25nIHR5ICJtYSIgYmVuIG51b2MgbmdvYWkuIEtoaSBoYW5nIHZ1YSBkdW9j IGRvaSBkaSANCmtob2kgY2FuZyBudW9jIGRvLCBjb25nIHR5IG5heSBsYXAgdHVjIHR1eWVuIGJv IHBoYSBzYW4gZGUgcGh1aSB0cmFjaCBuaGllbS4gSGF5IG5odSANCnRyb25nIHZ1IGNhYyBjb250 YWluZXIgdG9uIGx1dSB0YWkgY2FjIGNhbmcgY3VhIEhhaSBQaG9uZyBuaHUgbmV1IHRyZW4sIGNv IHRydW9uZyBob3AgDQpuZ3VvaSBndWkgaGFuZyBraG9uZyBnaGkgcm8gZGlhIGNoaSBuZ3VvaSBu aGFuIHZhIGtob25nIHRoYW5oIHRvYW4gdGllbiB2YW4gY2h1eWVuIGNobyANCmhhbmcgdGF1LCBj byBkaWEgY2hpIG5ndW9pIG5oYW4gbmh1bmcgbGEgZGlhIGNoaSBraG9uZyBjbyB0cmVuIHRodWMg dGUuLi4NCg0KQmVuIGNhbmggZG8sIHZhbiBjb24gbW90IHNvIGJhdCBjYXAsIHRhbyByYSBjYWMg bG8gaG9uZyBkZSBjYWMgZG9pIHR1b25nIHZpIHBoYW0gbG9pIA0KZHVuZy4gTHVjIGx1b25nIGhh aSBxdWFuIHRoaWV1IHRyYW5nIHRoaWV0IGJpIGhpZW4gZGFpIGRlIHNvaSB2YSBwaGF0IGhpZW4g aGFuZyB2aSBwaGFtIA0KbmdheSB0cmVuIHRhdSB2YW4gY2h1eWVuIG5lbiBraGkgZGEgZHVhIGNv bnRhaW5lciB2YW8ga2hvIHRoaSBraG8gbWEgdGFpIHh1YXQgZHVvYyBudWEuIA0KVmllYyBuZ2Fu IGNoYW4gdHUgeGEgY2FjIGNvbnRhaW5lciBwaGUgbGlldSBjaHVhIGNoYXQgdGhhaSBraG9uZyBk ZW0gbGFpIGhpZXUgcXVhIGNhbyB2YSANCnRyb25nIG5oaWV1IHRydW9uZyBob3AgbGEga2hvbmcg dGhlIHRodWMgaGllbiBkdW9jIHZpIHF1eSBkaW5oIHBoYXAgbHVhdCBjdWEgbW9pIG51b2MgDQpt b2kga2hhYy4NCg0KS2luaCBkb2FuaCBzZSBraG9uZyBkdW9jIG5oYXAgcmFjIHRoYWkgDQoNCkRv IGxhIG1vdCB0cm9uZyBuaHVuZyBkaWVtIHF1YW4gdHJvbmcgY3VhIGR1IHRoYW8gc3VhIGRvaSBU aG9uZyB0dSBsaWVuIHRpY2ggc28gMDIgY3VhIA0KQm8gQ29uZyB0aHVvbmcgdmEgQm8gVE4tTVQg ZGUgaGFuIGNoZSB2aWVjIG5oYXAgcmFjIHRoYWkgdmFvIFZOLiBPbmcgSG9hbmcgTWluaCANCkRh byBjaG8gYmlldCwgZHUgdGhhbyBsYW4gMyBjdWEgdGhvbmcgdHUgbmF5IGRhIGtob25nIGNvbiBj aG8gcGhlcCBkb2kgdHVvbmcgbmhhcCBwaGUgDQp0aGFpIHZvaSBtdWMgZGljaCBraW5oIGRvYW5o IGR1b2MgdGhhbSBnaWEgbmhhcCBraGF1IG51YS4gUXV5IGRpbmggdHJvbmcgVGhvbmcgdHUgc28g DQowMiBjaG8gcGhlcCAzIGRvaSB0dW9uZyBkdW9jIG5oYXAgcGhlIGxpZXUsIGdvbTogdGh1b25n IG5oYW4gdHJ1YyB0aWVwIHN1IGR1bmcgcGhlIGxpZXUgDQpuaGFwIGtoYXUgZGUgc2FuIHh1YXQs IHRodW9uZyBuaGFuIG5oYXAga2hhdSB1eSB0aGFjIGNobyB0aHVvbmcgbmhhbiB0cnVjIHRpZXAg c3UgZHVuZyANCnBoZSBsaWV1IHZhIHRodW9uZyBuaGFuIG5oYXAga2hhdSBkZSBwaGFuIHBob2ku IFRodWMgdGUsIGRvaSB0dW9uZyBuaGFwIGtoYXUgZGUgcGhhbiANCnBob2kgbGEgIm5oaWV1IGNo dXllbiBuaGF0IiwgY2FjIHZpIHBoYW0gY2h1IHlldSB4YXkgcmEgZG9pIHZvaSBkb2kgdHVvbmcg bmF5LiBEdSB0aGFvIA0KVGhvbmcgdHUgc3VhIGRvaSB0aG9uZyB0dSBzbyAwMiBjdW5nIHBoYW4g cm8gdHJhY2ggbmhpZW0gY3VhIGNhYyBiZW4gbGllbiBxdWFuLCBjbyBjbyANCmNoZSB0YW5nIGN1 b25nIHN1IHBob2kgaG9wIGhpZXUgcXVhLiBCZW4gY2FuaCBkbywgTmdoaSBkaW5oIDExNyB2ZSB4 dSBseSB2aSBwaGFtIGhhbmggDQpjaGluaCB0cm9uZyBsaW5oIHZ1YyBiYW8gdmUgbW9pIHRydW9u ZyBxdXkgZGluaCBtdWMgcGhhdCBjYW8gbmhhdCB0b2kgNTAwIHRyaWV1IGRvbmcsIA0KYnVvYyB0 YWkgeHVhdCwgdmEgdHJvbmcgdHJ1b25nIGhvcCBraG9uZyB0YWkgeHVhdCBkdW9jIHRoaSBjYSBu aGFuIHZhIHRvIGNodWMgbmhhcCBraGF1IA0KcGhhaSBjaGl1IHRvYW4gYm8gY2hpIHBoaSB4dSBs eSB0aWV1IGh1eS4NCg0KKiAiSGllbiB0aW5oIHRyYW5nIFJUQ04gbmhhcCB2ZSBIYWkgUGhvbmcg ZGFuZyBkaWVuIGJpZW4gcmF0IHBodWMgdGFwLiBDYWMgdG8gY2h1YyANCmtpbmggdGUsIGNhIG5o YW4gdHJvbmcgbnVvYyB2YSBudW9jIG5nb2FpIGNhdSBrZXQgbW9jIG5vaSB2b2kgbmhhdSBkZSB2 YW4gY2h1eWVuIGhhbmcgDQpob2EgdmkgcGhhbSB2YW8gVk4gZHVvaSBoaW5oIHRodWMga3kgaG9w IGRvbmcgeHVhdCBuaGFwIGtoYXUgaG9hYyB0YW0gbmhhcCB0YWkgeHVhdCANCnNhbmcgbnVvYyB0 aHUgYmEuIE5vaSBkdW5nIGhvcCBkb25nLCB0aHUgdHVjIGtoYWkgYmFvIGhhaSBxdWFuIGRldSB0 aGUgaGllbiBsYSBuaHVuZyANCm1hdCBoYW5nIGhvcCBwaGFwIG5odW5nIHRodWMgY2hhdCBiZW4g dHJvbmcgY29udGFpbmVyIGxhIHBoZSB0aGFpLiBLaGkgYmkgcGhhdCBoaWVuLCBjYWMgDQpETiB0 cm9uZyBudW9jIGR1bmcgdGVuIHRyb25nIGNhYyBibyBjaHVuZyB0dSB0aGFuaCB0b2FuIChwYWNr aW5nIGxpc3QpIGxhaSB0dSBjaG9pIG5oYW4gDQpoYW5nIHZvaSBseSBkbzogaGFuZyBraG9uZyBk dW5nIGhvcCBkb25nLCBjaHUgaGFuZyBudW9jIG5nb2FpIGd1aSBuaGFtIGRpYSBjaGkuLi4gQ2Fj IA0KRE4gbnVvYyBuZ29haSB0aGUgaGllbiB0cmVuIHBhY2tpbmcgbGlzdCBkZXUgbGEgbmh1bmcg RE4gIm1hIiBvIGNhYyBudW9jIHh1YXQgeHUgdmEgDQpudW9jIG5oYXAga2hhdS4gVmkgdmF5LCBr aGkgdGhvbmcgcXVhIGtlbmggSW50ZXJwb2wgZGV1IGtob25nIHhhYyBkaW5oIGR1b2MgY2h1IHRo ZSB2aSANCnBoYW0uIE1hdCBraGFjLCBjYWMgRE4gdmkgcGhhbSB0aHVvbmcgZHVuZyB0aHUgZG9h biB4ZXAgaGFuZyBjbyB2aSBwaGFtIG8gdHJvbmcgdmEgDQpoYW5nIGhvYSBkdW5nIHF1eSBkaW5o IGJlbiBuZ29haS4iIC0gVGh1b25nIHRhIE5ndXllbiBEdWMgRGFuZywgVHJ1b25nIHBob25nIA0K Q1NEVCB0b2kgcGhhbSB2ZSBtb2kgdHJ1b25nIChQQzQ5IC0gQ29uZyBhbiBIYWkgUGhvbmcpDQoN CiogIk5ndXkgaGllbSBuaGF0IGxhIHZpZWMgcmFjIHRoYWkgcGhhdCB0YW4gcmEgbW9pIHRydW9u Zy4gVmUgbGF1IHZlIGRhaSwgbmh1bmcgY2hhdCBkb2MgDQpoYWkgY3VhIFJUQ04gc2UgcGhhdCB0 YW4gcmEgbW9pIHRydW9uZyBnYXkgcmEgY2FjIGJlbmggbmdvYWkgZGEsIGhvIGhhcCwgbWF0LCB1 bmcgdGh1Li4uIA0KVHJvbmcga2hpIFZOIGxhaSBjaHVhIGNvIHRvIGNodWMgbmFvIGR1bmcgcmEg dGh1IGdvbSBSVENOLCBjaHUgeWV1IHZhbiBsYSB0dSBuaGFuIA0KImtoYWkgdGhhYyIgYmFpIHJh Yy4gVmllYyBkZSBuZ2hpIGNhbSBuaGFwIHJhYyB0aGFpIGRpZW4gdHUgZGEgZHVvYyBoaWVwIGhv aSBraWVuIG5naGkgbGVuIA0KY2FjIGNvIHF1YW4gcXVhbiBseSB0dSByYXQgbGF1LCBzb25nIGNo byBkZW4gbmF5IGNodW5nIHZhbiBvIGF0IGRvIHZhbyBWTi4iIC0gT25nIFRyYW4gDQpRdWFuZyBI dW5nLCBUb25nIHRodSBreSBIaWVwIGhvaSBETiBkaWVuIHR1IFZODQoNCiogIk5odW5nIHR1IGRp ZW4sIG1hY2ggZGllbiBob2FjIGFjLXF1eSBjaGkgZGV1IGxhIGNoYXQgdGhhaSBkb2MgaGFpLCBj byB0aGUgZ2F5IG8gbmhpZW0gDQptb2kgdHJ1b25nLiBUaGVvIHRvaSBkdW9jIGJpZXQsIGNhYyBj aGFuIGRpZW4gY3VjIHRyb25nIHZpIG1hY2ggY28gdmFuZywga2hvbmcgbmdvYWkgDQp0cnUga2hh IG5hbmcgaG8gbmhhcCByYWMgdGhhaSB2ZSBkZSB0aHUgaG9pIHZhbmcuIE5vaSBjaHVuZywgZHUg bmhhcCB2ZSBtb2kgbXVjIGRpY2ggZ2kgDQpkaSBjaGFuZyBudWEgbmh1bmcgdGhlbyBxdWFuIGRp ZW0gY3VhIHRvaSBsYSBraG9uZyBuZW4gbmhhcCBSVENOLiBWZSBsYXUgdmUgZGFpLCBWTiANCnNl IGJpZW4gdGhhbmgga2hvIGNodWEgcmFjIGNobyBuaHVuZyBudW9jIHBoYXQgdHJpZW4uIiAtIFBH UyBWdSBOZ29jIEh1bmcsIFZpZW4gDQp0cnVvbmcgVmllbiBEYW8gdGFvIHF1b2MgdGUgdmUga2hv YSBob2MgdmF0IGxpZXUgKERIIEJhY2gga2hvYSBIYSBOb2kpIA0KDQotDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDgwMTEyMjMuYXNweCBNLkhh IC0gVC5NaWVuIDA4LzEwLzIwMTAgMToxMiANCg0KVGh1IHR1b25nOiBTdSBjbyB0cmFuIGJ1biBk byB0YWkgSHVuZ2FyeSBoYXUgcXVhIGxhdSBkYWkgLSBMb2kgY2FuaCBiYW8gY2hvIGNhYyBkdSBh biBiYXV4aXRlIFZOIA0KICANCihBbmggY2h1cDogU3UgY28gdHJhbiBidW4gZG8gdGFpIEh1bmdh cnkgZ2F5IHRhYyBoYWkgbmdoaWVtIHRyb25nIGRlbiBtb2kgdHJ1b25nIC0gYW5oOiBBRlAgKQ0K DQoiVHV5IGNhYyBkdSBhbiBiYXV4aXRlIGN1YSBjaHVuZyB0YSBjaHVhIGRpIHZhbyBzYW4geHVh dCwgbmh1bmcgc3UgY28gdHJlbiBjbyB0aGUgeGVtDQogbmh1IGxvaSBjYW5oIGJhbyIsIG9uZyBE dW9uZyBWYW4gSG9hLCBQaG8gdG9uZyBnaWFtIGRvYyBUYXAgZG9hbiB0aGFuIGtob2FuZyBzYW4g Vk4gKFRLVikgY2hvIGJpZXQuIA0KDQpUaGVvIG9uZyBIb2EsIGNhYyBkdSBhbiBzYW4geHVhdCBh bHVtaW4gdHJvbmcgbnVvYyBoaWVuIG5heSBkZXUgc3UgZHVuZyBjb25nIG5naGUgVHJ1bmcgUXVv Yy4gDQoNCkR1b2MgYmlldCwgY3VvaSB0aGFuZyAxMiB0b2kgZGF5IHNlIGJhdCBkYXUgdGllbiBo YW5oIGNoYXkgdGh1IGRheSBjaHV5ZW4gc2FuIHh1YXQgYWx1bWluIHRhaSBjYWMgDQpkdSBhbiAo VGFuIFJhaSwgTmhhbiBDbykgY3VhIFRLVi4gDQoNCkJhaSBob2MgdHUgc29uZyBEYW51YmUNCg0K R2JvciBGaWdlY3preSwgcXV5ZW4gR2lhbSBkb2MgUXV5IFF1b2MgdGUgYmFvIHZlIHRoaWVuIG5o aWVuIChXV0YpIC0gSHVuZ2FyeSwgY2hvIA0KaGF5IGhlIHF1YSBjdWEgdGhhbSBob2EgbmF5IG5n aGllbSB0cm9uZyBkZW4gbm9pIGtobyBjbyB0aGUgZGFuaCBnaWEgY2hpbmggeGFjLiBPbmcgDQpG aWdlY3preSBuaGFuIGRpbmggdG9uIHRoYXQgZG9pIHZvaSBoZSBzaW5oIHRoYWkgY29uIGR1IGRv aSBob24gZG8gY2FjIGhvYSBjaGF0IGRhbmcgDQpkdW9jIGR1bmcgZGUgdHJ1bmcgaG9hIGRvIGtp ZW0gY3VhIGx1IGJ1biBjdW5nIGRvYyBoYWkga2hvbmcga2VtLiAiTW90IHNvIGRvbmcgdmF0IA0K dmEgY2F5IGNvaSBjaGV0IG5nYXkgbGFwIHR1YywgbW90IHNvIGtoYWMgc2UgYmkgbmhpZW0gZG9j IHZlIGxhdSBkYWkga2hpIGNhYyBraW0gbG9haSBuYW5nIA0KdHJvbmcgYnVuIGRvIHRpY2ggdHUg dHJvbmcgY28gdGhlIGNodW5nIiwgb25nIG5vaS4gQnVuIGRvIGxhIHNhbiBwaGFtIHBodSBjdWEg cXVhIHRyaW5oIA0KdGluaCBjaGUgYmF1eGl0ZSB0aGFuaCBveGlkZSBuaG9tLCBuZ3V5ZW4gbGll dSBjbyBiYW4gZGUgc2FuIHh1YXQgbmhvbS4gDQoNCkNvbiBsdSBidW4gZG8gZG8gdm8gaG8gY2h1 YSBjaGF0IHRoYWkgY3VhIG1vdCBuaGEgbWF5IG5ob20gdGFpIG1pZW4gdGF5IEh1bmdhcnkgaG9t IA0KcXVhIHRyYW4gZGVuIE1vc29uaS1EYW51YmUsIG1vdCBuaGFuaCBwaGlhIG5hbSBjdWEgc29u ZyBEYW51YmUuIEFGUCBkYW4gbG9pIFRpYm9yIA0KRG9ic29uLCBuZ3VvaSBkdW5nIGRhdSBjbyBx dWFuIHVuZyBwaG8gdGhhbSBob2EgZGlhIHBodW9uZywgY2hvIGhheSBkZW4gMTQgZ2lvIDMwIA0K KGdpbyBWTiksIGx1b25nIGJ1biBkb2MgaGFpIGRhIGRvIHZhbyBuaGFuaCBzb25nIHRyZW4sIGdh biBiaWVuIGdpb2kgZ2l1YSBIdW5nYXJ5IHZvaSANClNsb3Zha2lhIHZhIEFvLCB2YSBkZW4gMTcg Z2lvIGJ1biBkbyB0aWVuIHRoYW5nIHZhbyBkb25nIGNoaW5oIGN1YSBEYW51YmUuIFRydW9jIGRv LCANCmRhIGNhbmggYmFvIG5ldSBsdSBidW4gZG8gZGVuIGR1b2MgRGFudWJlLCBjb24gc29uZyBs b24gdGh1IGhhaSBjaGF1IEF1LCBuaHVuZyBxdW9jIA0KZ2lhIGNvIHRoZSBiaSBhbmggaHVvbmcg YmFvIGdvbSBDcm9hdGlhLCBTZXJiaWEsIFJvbWFuaWEsIEJ1bGdhcmlhLCBVa3JhaW5lIHZhIE1v bGRvdmEuDQoNCkx1IGJ1biBkb2MgZGEgbmh1b20gZG8gbW90IGtodSB2dWMgcm9uZyBkZW4gNDAg a20yLCBwaGEgaHV5IG5oaWV1IGNvIHNvIGhhIHRhbmcgbyANCnRoaSB0cmFuIEFqa2EsIGdpZXQg Y2hldCBpdCBuaGF0IDQgbmd1b2kgdmEgaG9uIDEwMCBuZ3VvaSBiaSBib25nIGhvYSBjaGF0IHZh IGNheSBtYXQuIE5oYSANCmNodWMgdHJhY2ggSHVuZ2FyeSBjaG8gYmlldCBkZW4gc2FuZyA3LjEw LCBkbyBwSCBjdWEgZG9uZyBsdSBidW4gdmFvIGtob2FuZyA5LDMsIGNhbyANCmhvbiBtdWMgYmlu aCB0aHVvbmcgbmh1bmcgdGhhcCBob24gbm9uZyBkbyBiYW4gZGF1IGxhIDEzLiBMb2FpIGJ1biBk byBuYXksIGNodWEgbmhpZXUgDQpjaGF0IHZvIGN1bmcgZG9jIGhhaSBuaHUgY2hpLCBjaHJvbWUg dmEgdGhhY2ggdGluLCB0YW4gY29uZyB2YW8gbW9uZywgdG9jLCBkYSwgbWF0IGN1bmcgDQpuaHUg bmh1bmcgY28gcXVhbiBub2kgdGFuZyBuaHUgZ2FuLCB0aGFuLCBkb25nIHRob2kgY28ga2hhIG5h bmcgZ2F5IHVuZyB0aHUuIE9uZyANCkRvYnNvbiBjdW5nIGNobyBiaWV0IHRvYW4gYm8gaGUgc2lu aCB0aGFpIGN1YSBzb25nIE1hc2NhbCwgbW90IGNvbiBzb25nIG5obyB0cm9uZyANCnZ1bmcsIGRh IGJpIGJ1biBkb2MgaHV5IGRpZXQgaG9hbiB0b2FuLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDIwMjM0NDIwLmFzcHggTWFpIEhhICAyMC8x MC8yMDEwIDIzOjQ0IA0KDQpUaHUgdHVvbmc6IFRLViBub2kgZ2kgdmUgbW9pIGxvIGJ1biBkbz8g LSBOaGlldSB5ZXUgdG8gY2h1YSBkdW9jIHRpbmggdG9hbiBjYW4gdGhhbiANCiAgDQooUXVhbmcg YmF1eGl0ZSB0YXAgdHJ1bmcgY2hvIGNoZSBiaWVuIHRoYW5oIGFsdW1pbiBvIE5oYSBtYXkgYWx1 bWluIE5oYW4gQ28gLSBBbmg6IFQuTi5RKSANCg0KKiBWaSBtb2kgdHJ1b25nLCBVYyBodXkgZHUg YW4gYmF1eGl0ZSANCiogU2UgbmdoaWVuIGN1dSBjaHV5ZW4gY2FjIGR1IGFuIGJhdXhpdGUgc2F1 IG5heSB2ZSBzYXQgYm8gYmllbiANCg0KT25nIE5ndXllbiBUaGFuaCBMaWVtLCBUcnVvbmcgYmFu IG5ob20gLSBiYXV4aXRlLCBUYXAgZG9hbiB0aGFuIGtob2FuZyBzYW4gVk4gDQooVEtWKSwgY2hv IGJpZXQgVEtWIGRhIHRoYW5oIGxhcCBkb2FuIGtoYW8gc2F0LCBuZ2hpZW4gY3V1IGtpbmggbmdo aWVtIHR1IEh1bmdhcnksIA0Kbmh1bmcgZG8gcGhpYSBIdW5nYXJ5IGNodWEgZG9uZyB5IG5lbiBj aHVhIHRodWMgaGllbiBkdW9jLiBUaGFuaCBOaWVuIGRhIHBob25nIHZhbiANCm9uZyB2ZSBuaHVu ZyBsbyBuZ2FpIGNvIHRoZSB4YXkgcmEgc3UgY28gdHJhbiBidW4gZG8gZG9pIHZvaSBjYWMgZHUg YW4gYmF1eGl0ZS4gIA0KDQpDb25nIG5naGUgdGhhaSBidW4gZG8gY3VhIEh1bmdhcnkgbGEgdGhh aSB1b3QsIGRheSBjdW5nIGxhIGNvbmcgbmdoZSBzdSBkdW5nIHRhaSBoYWkgDQpuaGEgbWF5IFRh biBSYWkgdmEgTmhhbiBDby4gTGlldSBuZ3V5IGNvIG51dCBobyBjaHVhLCB0cmFuIGJ1biBkbyBv IEh1bmdhcnkgY28gbGFwIA0KbGFpIG8gVk4/IA0KDQotIENodW5nIHRvaSBkYSB4ZW0geGV0IHNv IGJvIHZhIHRoYXkgZGlldSBraWVuIGN1YSBIdW5nYXJ5IHZhIFZOIGtoYWMgbmhhdS4gSHVuZ2Fy eSANCmR1bmcgdGljaCBiZSBjaHVhIHJhdCBsb24sIG5hbSB0cmVuIGJlIG1hdCBkb25nIGJhbmcs IG1hdCBiZSBjaHVhIGJ1biBkbyBsYWkgZGFwIG5vaS4gDQpDYWMgYmUgY2h1YSBidW4gZG8gY3Vh IFRLViBuYW0gdHJvbmcgdGh1bmcgbHVuZywgY2hpYSBraG9hbmcgbmhvIGhvbiwgdmllYyBjaGF5 IHRyYW4gDQpyYXQga2hvIHhheSByYS4gR2lhIHN1IGNvIHRyYW4gYnVuIHRoaSBkdW5nIHRpY2gg dHJhbiBjdW5nIHJhdCBuaG8uIEhvbiBudWEsIHRoaWV0IGtlIGhvIA0KY2h1YSBidW4gZGV1IGNv IGtob2FuZyBkdSBwaG9uZyB2YSBkYXAgZHUgcGhvbmcgbyBraG9hbmcgY3VvaS4gTnVvYywgYnVu IGNoYXkgcmEgc2UgDQp2YW8ga2hvYW5nIGR1IHBob25nLiANCg0KKiBEdW5nIGRpY2ggcEggdHJv bmcgYnVuIGRvIGNvIHRpbmggY2hhdCBhbiBtb24gcmF0IG1hbmguIExpZXUgY2FjIGJlIGNodWEs IGxvcCB2YWkgbG90LCANCmxvcCBjaG9uZyB0aGFtIGtpbSBsb2FpIHRyb25nIGJlIGNodWEgY28g Y2hpdSBkdW5nIGR1b2M/DQoNCi0gVGhlbyB0aGlldCBrZSwgaGFpIGR1IGFuIGJhdXhpdGUgVGFu IFJhaSB2YSBOaGFuIENvIGRldSBzdSBkdW5nIG1hbmcgY2hvbmcgdGhhbSBjbyANCmRvIGNob25n IHRoYW0gcEggcmF0IGNhbywgdHJlbiAxMnBILCB0aGVvIHRpZXUgY2h1YW4gbmhpZXUgbnVvYyBk YW5nIHRodWMgaGllbi4gVGhpZXQgDQprZSBjaG9uZyB0aGFtIG5heSBsYSBkbyBUcnVuZyBRdW9j IGxhbSwgbmh1bmcgY2h1bmcgdG9pIGRhIHlldSBjYXUgaG8gdGhhbSBraGFvIA0KdGhlbSBjYWMg dGlldSBjaGkgYW4gdG9hbiBkZSBkaWV1IGNoaW5oLCB2YSBobyBkYSBjaGFwIG5oYW4uIA0KDQpW ZSB0aW5oIGFuIG1vbiwgY29uZyBuZ2hlIHRodSBob2kgc3V0IGdpYW0gZG8gcEggbmdheSBjYW5n IGNhbywgdHJ1b2MgZGF5IGJ1biBkbyBzYXUgDQpraGkgeHUgbHkgdmFuIGNvbiAxMywgMTRwSCwg bmh1bmcgaGllbiBuYXkgdGhlbyB0aGlldCBrZSBvIFRhbiBSYWksIHNhdSBraGkgeHUgbHkgdGhp IHBIIA0KY29uIHRyb25nIGJ1biBkbyBjaGkgbGEgMTAsIDExcEggKGR1b2kgOXBIIGxhIHRoYWkg cmEgbmdvYWkgYmluaCB0aHVvbmcpLiBUdWMgbGEga2hpIHRoYWkgDQpyYSwgZG8ga2llbSB0cm9u ZyBidW4gZG8gZGEgZ2lhbSBkaSByYXQgbmhpZXUsIGtpZW0gZHUga2hvbmcgY29uIGNhbyBuaHUg bXVjIGJhbiBkYXUuIA0KDQoqIEhvIGNodWEgYnVuIGRvIGN1YSBjYSBoYWkgZHUgYW4gVGFuIFJh aSB2YSBOaGFuIENvIGRldSBjbyBkbyBjYW8gdHJlbiBtYXQgYmllbiB0b2kgDQo3MDBtLCB0cm9u ZyBraGkgVGF5IE5ndXllbiB0aHVvbmcgeHV5ZW4gY28gbHUgbG9uLCBzYXQgbG8uIFRLViBkYSB0 aW5oIHRvYW4gdG9pIGRpZXUgDQpuYXkgdHJvbmcgdGhpZXQga2UgY2h1YT8NCg0KLSBLaHUgdnVj IHhheSBkdW5nIG5oYSBtYXkgbGEgdGh1bmcgbHVuZywgbmh1bmcgbGFpIG5hbSB0cm9uZyB2dW5n IGtob25nIGNvIGx1dSB2dWMgDQpzb25nIHN1b2ksIG11YSByb2kgdHJ1YyB0aWVwIHh1b25nLCBr aG9uZyBjbyBudW9jIGJlbiBuZ29haSBkbyB2YW8uIENvIHRoZSBnb2kgbmh1bmcgDQp0aHVuZyBs dW5nIGNodW5nIHRvaSBjaG9uIGRldSBsYSAidGh1bmcgbHVuZyBjaGV0Ii4gDQoNCk9uZyBOZ3V5 ZW4gVGhhbmggTGllbSBjaG8gYmlldCwgZHUgYW4gVGFuIFJhaSBkdSBraWVuIHRoYW5nIDQuMjAx MSBzZSBjbyBzYW4gcGhhbSANCnJhIHRoaSB0cnVvbmcuIFRoZW8gdGhpZXQga2UgY3VhIGR1IGFu IFRhbiBSYWksIGhvIHNvIDEgY28gZGllbiB0aWNoIDExMCBoYSBjaGlhIGxhbSA4IA0Ka2hvYW5n LCBraG9hbmcgbmhvIGtob2FuZyA2MDAuMDAwbTMsIGtob2FuZyBsb24gMSw2IHRyaWV1IG0zLCB0 eSBsZSByYW4gbG9uZyAxLDE1LiANClRvbmcgY29uZyBzdWF0IGN1YSBoYWkgbmhhIG1heSBUYW4g UmFpIHZhIE5oYW4gQ28gbGEgMSwyNSB0cmlldSB0YW4vbmFtLCBsdW9uZyBidW4gZG8gDQp0aGFp IHJhIHVvYyB0aW5oIDIsNCB0cmlldSB0YW4gKGx1b25nIGJ1biBkbyBjdWEgTmhhIG1heSBiYXV4 aXRlIEFqa2EgYmkgc3UgY28gbyBIdW5nYXJ5IA0KbGEgMSB0cmlldSB0YW4pLg0KDQpUaGVvIGNo dW5nIHRvaSBkYW5oIGdpYSwgdHJ1IHRydW9uZyBob3AgZG9uZyBkYXQsIGxhbSBjaG8gbnV0LCB2 byBtb2kgeGF5IHJhIG5ndXkgY28gDQp0cmFuIGJ1biBraG9pIGtob2FuZy4gVHJ1b25nIGhvcCBt dWEsIGx1IGRhIGNvIGdpYWkgcGhhcCBsYSBjaGlhIG5oaWV1IGtob2FuZyBuaG8gZGUgDQp0aHUg aG9pIGhldCBudW9jIHZlIGxhaSBuaGEgbWF5LCBraG9uZyBjaG8gY2hheSByYSBuZ29haS4gDQoN CiogQ28geSBraWVuIGRlIHRyYW5oIHJ1aSBybywgbmVuIGNodXllbiBxdWFuZyBiYXV4aXRlIGRh IGtoYWkgdGhhYyB2YSBsYW0gZ2lhdSB4dW9uZyBjaGUgDQpiaWVuIHRhaSBCaW5oIFRodWFuIHZh IGNob24gbGFwIGR1b2kgYmllbi4gUXVhbiBkaWVtIGN1YSBvbmcgbmh1IHRoZSBuYW8/DQoNCi0g VGhlbyBjaHVuZyB0b2ksIG5ldSBjaHV5ZW4gZHVvYyBzZSBjbyByYXQgbmhpZXUgdGh1YW4gbG9p LiBIaWVuIG5heSwgZG8gY2hlIGJpZW4gbHVvbiANCnRhaSBraHUgdnVjIFRheSBOZ3V5ZW4gbmVu IHNlIHBoYWkgdmFuIGNodXllbiBuZ3V5ZW4gbGlldSBsZW4gdmEgc2FuIHBoYW0geHVvbmcuIA0K VHJvbmcgcXVhIHRyaW5oIHZhbiBjaHV5ZW4gY2hhYyBjaGFuIHNlIGFuaCBodW9uZyBkZW4gbW9p IHRydW9uZyB2YSBsYW0gdGFuZyBjaGkgcGhpIA0KdmFuIHRhaS4gIA0KDQpUcnVvbmcgaG9wIGJ1 biBkbyBjaHVhIHRyZW4gY2FvLCBuZXUgeGF5IHJhIGRvbmcgZGF0LCBuZ3V5IGNvIHRyYW4gYnVu IHJhdCBjYW8uIFRoaWV0IA0Ka2UgY3VhIGhvIGNodWEgdHJhbmggZHVvYyBkb25nIGRhdCBjYXAg Nywgbmh1bmcgbmV1IGRvbmcgZGF0IHZ1b3QgY2FwIDcgY3VuZyBraG9uZyANCnRoZSBub2kgZHVv YyBkaWV1IGdpIHNlIHhheSByYS4gDQoNCk5ldSBjaHV5ZW4geHVvbmcgYmllbiwgY29uZyBuZ2hl IHRydW5nIGhvYSBjaGluaCBsYSBzdSBkdW5nIG11b2kgY3VhIGJpZW4gdHJ1bmcgaG9hIA0KYnVu IGRvLiBUcnVvYyBraWEsIG5oaWV1IG51b2MgZGEgdGhhaSB0cnVjIHRpZXAgYnVuIGRvIHJhIGJp ZW4uIE5odW5nIG5heSBkbyB5ZXUgY2F1IA0KbW9pIHRydW9uZywgbmVuIGtob25nIHRoYWkgdHJ1 YyB0aWVwIG1hIGRhdCBzYXQgYmllbiBkZSB4dSBseSBjaGF0IHRoYWksIGJ1biBkdW9jIGRlIGRh bmcgDQpob24uIENhYyBkdSBhbiBzYW4geHVhdCBhbHVtaW4gY3VhIFVjIGN1bmcgZGF0IHNhdCBi aWVuLiANCg0KUXVhbiBkaWVtIGN1YSBUS1YgbGEgZGF0IHNhdCBiaWVuIGNvIG5oaWV1IGNhaSBs b2ksIHNvIHZvaSBUYXkgTmd1eWVuIGFuIHRvYW4gaG9uLCBjaGkgcGhpLCBtb2kgdHJ1b25nIGN1 bmcgZHVvYyBkYW0gYmFvLg0KVGhlbyBxdXkgaG9hY2gsIG5odW5nIGR1IGFuIGRhbmcgdHJpZW4g a2hhaSB2YW4gdGllbiBoYW5oIG5odSB0aGlldCBrZSwgbmh1bmcgZHUgYW4gc2FwIA0KdG9pIGNo dW5nIHRvaSBkYW5nIHhlbSB4ZXQsIGx1YW4gZ2lhaSB2YSB0aW5oIGRlbiBjYWMgeWV1IHRvIGtp bmggdGUgeGEgaG9pLiANCg0KKiBWaWVjIGhvYW4gdGhvIHZvaSBidW4gZG8gbGlldSBjbyBkYW0g YmFvIHlldSB0byBhbiB0b2FuIG1vaSB0cnVvbmcsIGtoaSBtYSB2aWVjIGhvYW4gDQp0aG8gdm9p IHRoYW4gbGEgbGluaCB2dWMgc28gdHJ1b25nIGN1YSBUS1YgY3VuZyBjaHVhIHRvdD8NCg0KLSBU aGFuIHZvaSBiYXV4aXRlIGtoYWMgbmhhdS4gVm9pIGJhdXhpdGUsIGhvIGNodWEgYnVuIGRvIGRl dSBjbyBsb3AgcGh1LCBsb3AgcXVhbmcsIA0KZGF0IGRheSB0b2kgMy01bS4gRHUga2llbiwgbW9p IGtob2FuZyBjaHVhIGJ1biBkbyB0cm9uZyAxIC0gMiBuYW0gc2UgdGllbiBoYW5oIGRvbmcgDQpo bywgcGh1IG1vdCBsb3AgZGF0IGRheSwgcmFpIG5odWEgY2hvbmcgbnVvYyBuZ2FtIHh1b25nIHZh IGhvaSBidW4gZG8gYm9jIGxlbiwgDQpkdW5nIHRybyBiYXkgbnVpIGx1YSB2YSBsb3AgZGF0IGRh eSBwaHUgbGVuIHRyb25nIGNheS4gQ2FjIG51b2MgdHJlbiB0aGUgZ2lvaSBkZXUgDQp0aHVjIGhp ZW4gZGlldSBuYXkgYmluaCB0aHVvbmcgdmEgYW4gdG9hbi4gDQoNCiogTmhpZXUgeSBraWVuIHZh biBiYW4ga2hvYW4gdmUgaGlldSBxdWEga2luaCB0ZSBjdWEgZHUgYW4ga2hvbmcgY2FvIG5ldSBk YXQgdHJlbiBiYW4gDQpjYW4gdm9pIGNhYyB5ZXUgdG8gbW9pIHRydW9uZywgeGEgaG9pLiBPbmcg bmhpbiBuaGFuIHRoZSBuYW8/DQoNCi0gVEtWIGRhIHRpbmggdG9hbiB2YSB0aGF5IGhpZXUgcXVh IGtpbmggdGUgdmFuIGR1b2MgZGFtIGJhbywgZHUgcGhhaSB4YXkgdGhlbSANCm5oaWV1IHR1eWVu IGR1b25nIHZhbiBjaHV5ZW4gc2FuIHBoYW0sIGNhIGR1b25nIHNhdCB2YSBkdW9uZyBiby4gTmV1 IGRhdCB0YXQgY2EgDQpjYWMgbmhhIG1heSB0cmVuIFRheSBOZ3V5ZW4gc2UgYnVvYyBwaGFpIHhh eSBkdW5nIHR1eWVuIGR1b25nIHNhdCBub2kgdGhpIHhhIA0KQmFvIExvYywgTGFtIERvbmcgeHVv bmcgY2FuZyBLZSBHYSB2YW4gY2h1eWVuIHRoZW8gZHVvbmcgYmllbiBkaSB0aWV1IHRodS4gDQpO aHVuZyBuZXUgeGVtIHhldCBkaWV1IGNoaW5oIGNoZSBiaWVuIGFsdW1pbiB4dW9uZyB2ZW4gYmll biBzZSBraG9uZyBjYW4gZGF1IHR1IGR1b25nIHNhdC4NCg0KVmUgZHVvbmcgYm8sIHZvaSBkdSBh biBUYW4gUmFpLCBnaWFpIGRvYW4gY2h1YSBjbyBjYW5nIEtlIEdhLCBzZSB2YW4gY2h1eWVuIHRo ZW8gDQpxdW9jIGxvIDIwIHh1b25nLCBjaGkgcGhhaSBjYWkgdGFvIG1vdCBzbyBkb2FuIHlldS4g Q2h1bmcgdG9pIGRhIHRpbmggdG9hbiB2YSB0aGF5IA0Ka2hvYW5nIDUtMTAgbmFtIGxhIHRodSBo b2kgZHVvYyB2b24gYm8gcmEuICANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS92 aWV0bmFtLzIwMTAvMTAvMTAxMDExX2JhdXhpdGVfcGV0aXRpb24uc2h0bWwgMDc6MDQgR01UIC0x MS8xMC8yMDEwIA0KDQpUaHUgdHVvbmc6IEdpb2kgdHJpIHRodWMgbGFpIGtpZW4gbmdoaSB2ZSBi YXV4aXRlDQoNCkNhYyBkdSBhbiBiYXV4aXRlIFRheSBOZ3V5ZW4gdmFuIGNvbiBnYXkgdHJhbmgg Y2FpDQoNCk1vdCBsb2F0IGNhYyB0cmkgdGh1YyBWaWV0IE5hbSBtb2kgZ3VpIHRodSBsZW4gbGFu aCBkYW8gRGFuZyB2YSBOaGEgbnVvYyAia2hhbiB0aGlldCANCnlldSBjYXUiIGR1bmcgbmdheSBj YWMgZHUgYW4gYmF1eGl0ZS4NCg0KQmFuIGtpZW4gbmdoaSB2aWV0IGhvbSAwOS8xMCBjbyBjaHUg a3kgY3VhIG5oaWV1IG5oYSBraG9hIGhvYywgbmhhbiBzeSBjbyB0ZW4gdHVvaSBuaHUgDQpHaWFv IHN1IEhvYW5nIFR1eSwgVHJhbiBWaWV0IFBodW9uZywgbmhhIHZhbiBOZ3V5ZW4gTmdvYywgVGll biBzeSBMZSBEYW5nIERvYW5oLCANClRpZW4gc3kgTmd1eWVuIFF1YW5nIEEsIGtpbmggdGUgZ2lh IFBoYW0gQ2hpIExhbi4uLg0KDQpWYW4gYmFuIG5heSBkdW9jIHRoYW8gcmEgc2F1IGtoaSBjbyB0 aG9uZyB0aW4gdmUgdGhhbSBob2EgYnVuIGRvIG8gSHVuZ2FyeS4NCg0KS2llbiBuZ2hpIHZpZXQg InRoYW0gaG9hIGhvYSBjaGF0IHRoYW0ga2hvYyBuaGF0IHRyb25nIGxpY2ggc3UgcXVvYyBnaWEi IGN1YSBIdW5nYXJ5IA0KImxhIGxvaSBjYW5oIGJhbyBuZ2hpZW0ga2hhYyBkb2kgdm9pIHZhbiBk ZSBobyBidW4gZG8gY2h1YSBjaGF0IHRoYWkgdHJvbmcgc2FuIHh1YXQgDQphbHVtaW5hIG8gVGF5 IE5ndXllbiIuDQoNCkJ1YyB0aHUgZ3VpIHRvaSBCbyBDaGluaCB0cmkgRGFuZyBDb25nIHNhbiBW aWV0IE5hbSwgUXVvYyBob2kgdmEgQ2hpbmggcGh1IFZpZXQgDQpOYW0sIHRyaW5oIGJheSA1IGx5 IGRvIGNoaW5oIGRlICJraGFuIHRoaWV0IHlldSBjYXUiIG5ndW5nIGNhYyBkdSBhbiBkYW5nIHRp ZW4gaGFuaC4NCg0KTmh1bmcgbmd1b2kga3kgZG9uIHlldSBjYXUgIm5ndW5nIG5nYXkgdmllYyB4 YXkgZHVuZyBOaGEgbWF5IFRhbiBSYWkgbyBMYW0gRG9uZyANCmRlIG5naGllbiBjdXUgdGllcCBj YWNoIHh1IGx5IjsgdGFtIGh1eSBkdSBhbiBkYW5nIGRhbSBwaGFuIG8gTmhhbiBDbywgRGFrIE5v bmcgdmEgDQpkaW5oIGNoaSB2aWVjIHRyaWVuIGtoYWkgY2FjIGR1IGFuIGtoYWkgdGhhYyBiYXV4 aXRlIG8gVGF5IE5ndXllbiBkZSAidG8gY2h1YyBuZ2hpZW4gY3V1IA0KbGFpIi4NCg0KVmllYyB0 byBjaHVjIGtoYWkgdGhhYyBiYXV4aXRlIHZhIGNoZSBiaWVuIGFsdW1pbmEgbyBUYXkgTmd1eWVu IHR1IGtoaSBraG9pIHh1b25nIGRhIA0KZ2FwIHBoYW4gZG9pIHR1IG5oaWV1IGdpb2kgdmkgcXVh biBuZ2FpIG1vaSB0cnVvbmcteGEgaG9pLWtpbmggdGUuDQoNClR1eSBuaGllbiwgQ2hpbmggcGh1 IFZpZXQgTmFtIGtoYW5nIGRpbmggY2FtIGtldCBsYW0gY2FjIGR1IGFuIGR1b2MgZ29pIGxhICJj aHUgDQp0cnVvbmcgbG9uIi4NCg0KRHUgYW4gVGFuIFJhaSBkYSBkdW9jIHRodWMgaGllbiBzYXAg aG9hbiB0YXQsIGR1IHRpbmggbmhhIG1heSBhbHVtaW5hIGNvIHRoZSBjaGF5IHRodSANCnZhbyB0 aGFuZyBIYWkgc2FuZyBuYW0uDQoNCk5odW5nIG5ndW9pIGtpZW4gbmdoaSBub2kgaG8gaGlldSAi ZGF5IGxhIG1vdCBxdXlldCBkaW5oIHJhdCBkYXUgZG9uIGNodWEgaGUgY28gdHJvbmcgDQpsaWNo IHN1IGtpbmggdGUgbnVvYyB0YSB2YSBzZSBsYSBtb3QgdG9uIHRoYXQgbG9uIG1hIG5lbiBraW5o IHRlIG51b2MgdGEgcGhhaSBjaGl1IGR1bmciLg0KDQpCYW4ga2llbiBuZ2hpIHZpZXQ6ICJDaGkg Y28gbG9uZyBkdW5nIGNhbSB2YSB5IHRodWMgdHJhY2ggbmhpZW0gdHV5ZXQgZG9pIGRvaSB2b2kg dmFuIA0KbWVuaCBxdW9jIGdpYSBjdWEgY2FjIHZpIGN1bmcgdm9pIHN1IHRob25nIGNhbSBjdWEg ZG9uZyBiYW8gY2EgbnVvYyBtb2kgZHUgc3VjIGRpIHRvaSANCnRodWMgaGllbiBxdXlldCBkaW5o IGtobyBraGFuIG5heSIuIA0KDQpUaGUgbmh1bmcgdGhlbyBuaHVuZyBuZ3VvaSBkdW5nIHRlbiBr aWVuIG5naGksICJ0aGEgY2hpdSBuaHUgdmF5IGNvbiBob24gZGUgbGFpIGhhdSANCmhvYSBraG9u IGx1b25nIGNobyBtYWkgc2F1Ii4NCg0KaHR0cDovL2RhbmxlbnRpZW5nLndvcmRwcmVzcy5jb20v MjAxMC8xMC8xOS9iYS1uZ3V5JUUxJUJCJTg1bi10aCVFMSVCQiU4Qi1iaW5oLWt5LWtpJUUxJUJB JUJGbi1uZ2glRTElQkIlOEItbmclQzYlQjBuZy1raGFpLXRoYWMtYmF1eGl0ZS10YXktbmd1eWVu LyBkYW5sZW50aWVuZ3Bvc3QgMTkvMTAvMjAxMCANCg0KVGh1IHR1b25nOiBCYSBOZ3V5ZW4gVGhp IEJpbmgga3kgdGVuIGtpZW4gbmdoaSBuZ3VuZyBraGFpIHRoYWMgYmF1eGl0ZSBUYXkgbmd1eWVu IA0KDQpIQSBOT0kgLSBCYSBOZ3V5ZW4gVGhpIEJpbmgsIGN1dSBwaG8gY2h1IHRpY2ggbnVvYywg dHJvIHRoYW5oIG1vdCB0cm9uZyBuaHVuZyANCm5ndW9pIGt5IHRlbiB2YW8gYmFuIGtpZW4gbmdo aSB5ZXUgY2F1IG5ndW5nIGtoYWkgdGhhYyBib3hpdCBvIFRheSBuZ3V5ZW4sIHRoZW8gdGluIHR1 IHRyYW5nIHdlYiBib3hpdHZuLm5ldC4NCg0KQ2h1IGt5IGN1YSBiYSBOZ3V5ZW4gVGhpIEJpbmgg eHVhdCBoaWVuIGRhdSB0aWVuIHRyb25nIGRhbmggc2FjaCBjb25nIGJvIHRyZW4gdHJhbmcgDQpt YW5nIGJveGl0dm4ubmV0LCB0aW5oIGRlbiBuZ2F5IDE2IHRoYW5nIDEwIG5hbSAyMDEwOyBjaHUg a3kgY3VhIGJhIGR1b2MgZGFuaCBzbyA4NTQgdGhlbyB0aHUgdHUgdGhvaSBnaWFuIGx1YyBreSB0 ZW4uDQoNClRyYW5nIG1hbmcgbmF5IGNobyBiaWV0OiAiVHJvbmcgaGFpIG5nYXkgMTUgdmEgMTYg dGhhbmcgMTAsIGNvIG5oaWV1IG5oYW4gdmF0IG5vaSB0aWVuZyANCmRhIHRoYW0gZ2lhIGt5IHRl biB2YW8gYmFuIEtpZW4gbmdoaSwgbmh1OiBOZ3V5ZW4gUGhvIENodSB0aWNoIG51b2MgTmd1eWVu IFRoaSBCaW5oLCANCkdpYW8gc3UgVmllbiBzaSBOZ3V5ZW4gVmFuIEhpZXUsIFRoaWV1IHR1b25n IExlIFZhbiBDdW9uZywgbmd1eWVuIENodSB0aWNoIFVCTkQgdGluaCBBbiBHaWFuZyBOZ3V5ZW4g TWluaCBOaGksLnYudi4iIA0KQmFuIGtpZW4gbmdoaSBsYW4gbmF5LCBkdW9jIGd1aSBkZW4gQm8g Y2hpbmggdHJpLCBRdW9jIGhvaSB2YSBDaGluaCBwaHUsIGxhIG1vdCBiYW4gDQpraWVuIG5naGkg bW9pIGR1b2Mgc29hbiB0aGFvIHNhdSB0aGFtIGhvYSAiYnVuIGRvIiBvIEh1bmdhcnksIGtoaSBj aGF0IHRoYWkgdHUgbW90IG5oYSANCm1heSBsdXllbiBuaG9tIGh1eSBob2FpIG1vdCB2dW5nIHJv bmcgbG9uIGN1YSBudW9jIG5heS4gQmFuIGtpZW4gbmdoaSBrZXUgZ29pIENoaW5oIA0KcGh1IFZp ZXQgTmFtICJuZ3VuZyBuZ2F5IiB2aWVjIGtoYWkgdGhhYyBiYXV4aXRlIG8gaGFpIHRpbmggTGFt IERvbmcgdmEgRGFjIE5vbmcuDQoNCihBbmg6IEJhIE5ndXllbiBUaGkgQmluaCBuZ3V5ZW4gUGhv IENodSB0aWNoIG51b2MuIEhpbmg6IERFU0hBS0FMWUFOIENIT1dESFVSWS9BRlAvR2V0dHkgSW1h Z2VzKQ0KDQpCYSBOZ3V5ZW4gVGhpIEJpbmggZ2l1IGNodWMgUGhvIGNodSB0aWNoIG51b2MgdHUg bmFtIDE5OTIgdG9pIDIwMDI7IGJhIHR1bmcgbGFtIFV5IA0KdmllbiBUcnVuZyB1b25nIERhbmcg dHJvbmcgbmhpZW0ga3kgMTk4Mi0xOTg2LiBCYW4ga2llbiBuZ2hpIG1hIGJhIGt5IHRlbiB2YW8g bGVuIA0KdGllbmcgY2FuaCBiYW8gdmUgbW90IHRoYW0gaG9hIGdpb25nIG5odSB0aGFtIGhvYSBi dW4gZG8gbyBIdW5nYXJ5LiBCYW4ga2llbiBuZ2hpIA0KdmlldDogIlRoYW0gaG9hIHZvIGhvIGJ1 biBkbyBBamthIG8gSHVuZ2FyeSBsYSBsb2kgY2FuaCBiYW8gbmdoaWVtIGtoYWMgZG9pIHZvaSB2 YW4gDQpkZSBobyBjaHVhIGJ1biBkbywgY2hhdCB0aGFpIHRyb25nIHF1YSB0cmluaCBzYW4geHVh dCBhbHVtaW5hLCBvIFRheSBOZ3V5ZW4uIiANCg0KVHJlbiBjbyBzbyBkbywgYmFuIGtpZW4gbmdo aSB0cmluaCBiYXkgNSB5ZXUgY2F1LCBuaHUgc2F1OiANCigxKSBRdXlldCBkaW5oIGNobyBuZ3Vu ZyBuZ2F5IHZpZWMgeGF5IGR1bmcgbmhhIG1heSBUYW4gUmFpIG8gTGFtIERvbmcgZGUgbmdoaWVu IA0KY3V1IHRpZXAgY2FjaCB4dSBseTsgDQooMikgVGFtIGh1eSBkdSBhbiBkYW5nIGRhbSBwaGFu IHRpZXAgdm9pIGRvaSB0YWMgbnVvYyBuZ29haSB2ZSBuaGEgbWF5IE5oYW4gQ28gbyANCkRhYyBO b25nOyANCigzKSBUYW0gdGhvaSBkaW5oIGNoaSB2aWVjIHRyaWVuIGtoYWkgdG9hbiBibyB0b25n IGR1IGFuIGhpZW4gdGhvaSB2ZSB2aWVjIGtoYWkgdGhhYyANCmJhdXhpdGUgbyBUYXkgTmd1eWVu IGRlIHRvIGNodWMgbmdoaWVuIGN1dSBsYWkgbW90IGNhY2ggbmdoaWVtIHR1YyB2YSBraG9hIGhv YzsNCig0KSBMYXAgbmhvbSBuZ2hpZW4gY3V1IGRvYyBsYXAgKG5ob20gZGFjIG5oaWVtKSBnb20g bmh1bmcgY2EgbmhhbiBjbyB1eSB0aW4gdmEgY28gDQp0YW0gaHV5ZXQgdm9pIGRhdCBudW9jIHRy b25nIGdpb2kgY2FjIG5oYSBraG9hIGhvYywgY2FjIGNodXllbiBnaWEga2luaCB0ZSB2YSBuaHVu ZyANCm5ndW9pIGhvYXQgZG9uZyB4YSBob2kgZG9jIGxhcCwgZGUgdGllbiBoYW5oIG5naGllbiBj dXUgbGFpIHRvYW4gYm8gdmFuIGRlIGJhdXhpdGUgVGF5IA0KTmd1eWVuLiANCig1KSBOaHVuZyBr ZXQgcXVhIG5naGllbiBjdXUgbGFpIG1vdCBjYWNoIHRvbmcgdGhlIHZhbiBkZSBiYXV4aXRlIFRh eSBOZ3V5ZW4gY3VhIA0KbmhvbSBkYWMgbmhpZW0gbmF5IHNlIGR1b2MgdHJpbmggYmF5IHRydW9j IFF1b2MgSG9pLCBkb25nIHRob2kgZHVvYyBkZW0gcmEgdHJ1bmcgY2F1IA0KeSBraWVuIG5oYW4g ZGFuIGNhIG51b2MsIHZlIGRlIHRhaSBraW5oIHRlLXhhIGhvaSB2byBjdW5nIG5oYXkgY2FtIG5h eSwgZGUgcXV5ZXQgZGluaC4gDQoNCk5nb2FpIGJhIE5ndXllbiBUaGkgQmluaCwgdHJvbmcgZGFu aCBzYWNoIGNhYyBuaGFuIHNpIGR1b2MgbmhhYyBkZW4gdHJvbmcgcGhhbiBnaW9pIA0KdGhpZXUg Y3VhIHRyYW5nIHdlYiBib3hpdHZuLm5ldCBjb24gY28gR2lhbyBzdSBWaWVuIHNpIE5ndXllbiBW YW4gSGlldSBEYWkgaG9jIFF1b2MgDQpnaWEgSGEgTm9pOyBUaGlldSB0dW9uZyBMZSBWYW4gQ3Vv bmcsIG5ndXllbiB2aWVuIHRydW9uZyBWaWVuIENoaWVuIGx1b2MgQm8gY29uZyANCmFuOyB2YSBv bmcgTmd1eWVuIE1pbmggTmhpLCBuZ3V5ZW4gY2h1IHRpY2ggVUJORCB0aW5oIEFuIEdpYW5nLiBU cm9uZyBkYW5oIHNhY2ggDQpreSB0ZW4gdmFvIGtpZW4gbmdoaSBsYW4gbmF5IGN1bmcgY28gR2lh byBzdSBUaWVuIHNpIE5nbyBCYW8gQ2hhdSwgbmd1b2kgZG9hdCBnaWFpIA0KdGh1b25nIEZpZWxk cyAtIGR1b2MgeGVtIGxhIG1vdCBkYW5nIE5vYmVsIGN1YSBUb2FuIGhvYy4gDQoNClRyYW5nIHdl YiBib3hpdHZuLm5ldCwgZG8gdGhpbmggdGhvYW5nIGJpIHRpbiB0YWMgcGhhLCBuZW4gY29uIGNv IGJhbiBzYW8gdGFpIGNhYyBkaWEgY2hpIA0KYm94aXR2bi5ibG9nc3BvdC5jb20gdmEgYm94aXR2 bi53b3JkcHJlc3MuY29tLiAgDQoNCmh0dHA6Ly92bnI1MDAudm4vMjAxMC0xMC0yNy14ZXQtdG9h bi1kaWVuLWJvLXhpdC1raG9uZy1jby1sb2ktY2hvLXBoYXQtdHJpZW4tY3VhLXRheS1uZ3V5ZW4g VGFjIGdpYTogVk5SNTAwIA0KVHJpY2ggZGFuIG5vaSBkdW5nIGJ1b2kgdHJhbmggbHVhbiB0cnVj IHR1eWVuIHZlIGR1IGFuIGJvLXhpdCwgZGllbiByYSBsdWMgMTRoIGNoaWV1IDI3LzEwOiANCg0K WGV0IHRvYW4gZGllbiwgYm8teGl0IGtob25nIGNvIGxvaSBjaG8gcGhhdCB0cmllbiBjdWEgVGF5 IE5ndXllbiANCg0KLSAiVHJlbiBjYWkgbmhpbiB0b25nIHRoZSwgdG9pIGNobyBsYSBsYW0gYm8t eGl0IGhpZW4gbmF5IGtob25nIGNvIGxvaSBnaSBjaG8gc3UgcGhhdCB0cmllbiBjdWEgVGF5IE5n dXllbiIgLSBuaGEgdmFuIE5ndXllbiBOZ29jLiANCg0KLSAiTmV1IGtob25nIGNhbiB0aGFuLCBU S1YgY28gdGhlIHNlIGRvbmcgZ29wIHRoZW0ga2hhaSBuaWVtICJGdWxybyBkbyIgdHJlbiBUYXkg Tmd1eWVuIiAtIFRTLiBOZ3V5ZW4gVGhhbmggU29uLiANCg0KLSAiVmFuIGRlIG5odSBCYWMgTmdv YyBub2kgdGhpIHRvaSBuZ2hpIGN1bmcgbmVuIHhlbSB4ZXQiIC0gb25nIE5ndXllbiBUaGFuaCBM aWVtIC0gVHJ1b25nIGJhbiBOaG9tIC0gdGl0YW4gY3VhIFRLVi4gDQoNCmh0dHA6Ly92bnI1MDAu dm4vMjAxMC0xMC0yNi1iby14aXQtdGF5LW5ndXllbi1jaHVhLWNoYWMtdGhpLW5lbi1kdW5nLSBU YWMgZ2lhOiBUcmFuIERvbmcgLSBDYW8gTmhhdCAtIExhbiBEdW5nICh0aHVjIGhpZW4pDQoNCiJC by14aXQgVGF5IE5ndXllbjogQ2h1YSBjaGFjIHRoaSBuZW4gZHVuZyINCg0KVElOIExJRU4gUVVB Tg0KKiBEdSBhbiBiby14aXQgVGF5IE5ndXllbiB2dWEgbG8gbmFuZywgdnVhIG8gbmhpZW0gDQoq IExvYXQgYmFpOiBEdSBhbiBiby14aXQgVGF5IE5ndXllbjogVGllcCBoYXkgZHVuZz8NCiogUXVv YyBob2kgY2FuIGNvIHBoYW4gaG9pIHZlIGR1IGFuIGJvLXhpdA0KDQooVk5SNTAwKSAtIE5ndXll biBQaG8gQ2h1IHRpY2ggbnVvYyBOZ3V5ZW4gVGhpIEJpbmggY2hvIHJhbmcsIG5ldSBkdSBhbiBi by14aXQgDQpUYXkgTmd1eWVuIGNodWEgY2hhYyBjaGFuIHRoaSBjaHVhIG5lbiBsYW0uIENodW5n IHRhIHRoYSB0cmEgZ2lhIHZ1YSBwaGFpIGNvbiBob24gDQpjaGFwIG5oYW4gdHJhIGdpYSBxdWEg ZGF0LiBTYXAgdG9pLCBMaWVuIGhpZXAgY2FjIEhvaSBLSCZLVCBWaWV0IE5hbSBzZSBjbyB2YW4g YmFuIA0KdHJpbmggYmF5IHJvIHJhbmcgeSBraWVuIHZlIGR1IGFuIGJvLXhpdCBUYXkgTmd1eWVu LiANCg0KS2hvbmcgbmVuIHZvaSB2YW5nDQoNCi0gTGEgbW90IHRyb25nIG5odW5nIG5ndW9pIGt5 IGRvbiBraWVuIG5naGkgZ3VpIGNhYyBsYW5oIGRhbyBEYW5nIHZhIE5oYSBudW9jIGRlIG5naGkg DQpuZ3VuZyB0cmllbiBraGFpIGR1IGFuIGJvIHhpdCBUYXkgTmd1eWVuLiBYaW4gYmEgY2hvIGJp ZXQgdmkgc2FvIGJhIHF1eWV0IGRpbmgga3kgdGVuIA0KdmFvIGJhbiBraWVuIG5naGk/IFF1YW4g ZGllbSBjYSBuaGFuIGN1YSBiYSB2ZSB2YW4gZGUgbmF5PyANCg0KQmEgTmd1eWVuIFRoaSBCaW5o OiBDbyBuaGlldSBseSBkby4gVGhlbyB0b2ksIGNodW5nIHRhIGtob25nIG5lbiBjaGkgcXVhbiB0 YW0gZGVuIA0Ka2luaCB0ZSwgbWEgcXVhbiB0cm9uZyBraG9uZyBrZW0gbGEgdmFuIGRlIG1vaSB0 cnVvbmcsIHhhIGhvaSwgdmFuIGhvYSB2YSBjYSBjaGluaCB0cmkgdHJvbmcgZG8gbnVhLg0KDQpU cnVvYyBkYXksIHRvaSBjdW5nIGNvIHkga2llbiBsYSBjaHVhIG5lbiBsYW0gZHUgYW4gbmF5LCBj YWMgZG9uZyBjaGkgdHJvbmcgQ2hpbmggcGh1IA0KY3VuZyBjbyBiYW8gdGllcCB0aHUgbmdoaWVu IGN1dSwgdHV5IG5oaWVuIHZhbiBjaHVhIGNvIGdpIHRoYXkgZG9pLiBWaSB2YXkgbWEgeGF5IHJh IA0KaGllbSBob2EgSHVuZ2FyeSBkYSBsYW0gY2h1bmcgdGEgZGF0IGxhaSB2YW4gZGUuDQoNCihB bmg6IE5ndXllbiBQaG8gQ2h1IHRpY2ggbnVvYyBOZ3V5ZW4gVGhpIEJpbmguIEFuaDogVHVvaSB0 cmUpDQoNClF1YW4gZGllbSB2ZSB2YW4gZGUgbmF5IHRoaSB0b2kgdGhheSwgY2h1bmcgdGEgaGll biBuYXkgY2h1YSBjbyBuaGlldSBraW5oIG5naGllbSB2ZSANCmtoYWkgdGhhYyBiby14aXQsIGNv bmcgdm9pIGRpYSBoaW5oIFRheSBOZ3V5ZW4gY3VhIGNodW5nIHRhIGNvIGtoYWMgcmF0IG5oaWV1 IHZvaSBjYWMgDQpudW9jIHZhIHRoYW0gY2hpIHBodWMgdGFwIGhvbiB2ZSBuaGlldSBtYXQuDQoN CkRhYyBiaWV0LCBzdSBraWVuIGJ1biBkbyBjdWEgSHVuZ2FyeSB2YSBsdSBsdXQgbyBtaWVuIFRy dW5nIHZ1YSBxdWEgbGFtIGNodW5nIHRhIHBoYWkgDQpzdXkgbmdoaSwgbmhhdCBsYSBraGkgYmll biBkb2kga2hpIGhhdSBjdWEgbnVvYyB0YSBkYW5nIGR1bmcgdHJ1b2MgdGluaCBjYW5oIGJhbyBk b25nLg0KVmkgdmF5LCB0b2kgdGhheSBkdSBhbiBiby14aXQgVGF5IE5ndXllbiBsYWkgY2FuZyBr aG9uZyBuZW4gdm9pIHZhbmcsIGNodWEgbmVuIGRhdCB2YW4gDQpkZSBraGFpIHRoYWMgdmEgdGhh bSBjaGkgbmV1IHRoYXkgY2h1YSBjaGFjIGNoYW4gdGhpIG5lbiBkdW5nLg0KDQpOZ3VvbiBsdWMg Y3VhIGNodW5nIHRhIG5lbiBkYXUgdHUgY2hvIG5odW5nIHZpZWMga2hhYywgdGFpIHNhbyBjaHVu ZyB0YSBraG9uZyBxdWFuIHRhbSANCm5oaWV1IGhvbiB2ZSBsdSBsdXQsIGtlIGRlIGRpZXUgbyBj YWMgdnVuZyBzb25nLCBiaWVuIGN1bmcgbmhhbSBnaWFtIG5oZSB0aGllbiB0YWkgbW9pIA0Ka2hp IGx1IHZlLg0KDQpDb24gZG9pIHZvaSBUYXkgTmd1eWVuIGhpZW4gbmF5LCB0aGVvIHRvaSBuZW4g Y2h1IHRyb25nIHBoYXQgdHJpZW4ga2luaCB0ZSB4YW5oLCBjaHUgDQp0cm9uZyBjYWMgbWF0IHZl IHZhbiBob2EsIHhhIGhvaSwga2hhYyBwaHVjIGJpZW4gZG9pIGtoaSBoYXUgc2FvIGNobyB0b3Qg aG9uLiBNYXQga2hhYywgDQpUYXkgTmd1eWVuIGxhIGNhbiBjdSBxdWFuIHRyb25nIHZlIG5oaWV1 IG1hdCwgbGEgbGEgcGhvaSBjdWEgY2EgdnVuZy4NCg0KVmUgbWF0IGRpYSBjaGluaCB0cmksIFRh eSBOZ3V5ZW4gY28gdmkgdHJpIGNoaW5oIHRyaSwgcXVhbiBzdSBxdWFuIHRyb25nIGN1YSBkYXQg bnVvYy4gDQpDaG8gbmVuIG1vdCBsYW4gbnVhIHRvaSBtb25nIGNhaSBnaSBjaHVhIGNoYWMgdGhp IGNodWEgbmVuIGxhbS4gQ2h1bmcgdGEgY28gdGhlIGRhdSB0dSANCm1hbmggY2hvIGNhZmUsIGNo ZS4uLiB2YSBsYW0gY2hvIHZhbiBob2EsIHhhIGhvaSBjdWEgVGF5IE5ndXllbiBwaGF0IHRyaWVu IGhvbiBuaHUgaGllbiANCm5heS4NCg0KTmdvYWkgcmEsIHRvaSBjdW5nIGtob25nIHBoYWkgbGEg bmd1b2kgY28gY2h1eWVuIG1vbiBzYXUgdmUgdmFuIGRlIG5heSwgdG9pIGNoaSBub2kgcXVhbiAN CmRpZW0gY3VhIHRvaSB0dSB0cnVvYyBkZW4gYmF5IGdpbywgbmV1IG11b24gaGlldSBraW4ga2Ug dGhpIGNoYWMgcGhhaSBkZSBjaG8gbmh1bmcgbmhhIA0Ka2hvYSBob2MgY28gY2h1eWVuIG1vbiBw aGF0IGJpZXUgY2hhYyBzZSBybyBob24uDQoNCi0gQ2hpbmggcGh1IGRhIGxhbmcgbmdoZSBraWVu IG5naGkgY3VhIG5oYW4gc2kgdmUgYm8teGl0IG5odW5nIGNvIHkga2llbiBjaG8gcmFuZzogVmll YyANCmd1aSBiYW4ga2llbiBuZ2hpIGR1bmcgdHJvbmcga2hpIGR1IGFuIGRhIGR1b2MgdHJpZW4g a2hhaSBsYSBkaWV1IGdhbiBuaHUga2hvbmcga2hhIHRoaS4gDQpCYSBuZ2hpIHNhbyB2ZSB2YW4g ZGUgbmF5Pw0KDQpOZXUgYmFuIGRhdSBDaGluaCBwaHUgdmEgUXVvYyBob2kgdGllcCB0aHUgbmdo aWVtIHR1YywgbGFuZyBuZ2hlIHkga2llbiBjdWEgbmhpZXUgDQpuZ3VvaSBkYW4gdGFtIGh1eWV0 IHRoaSBzdSB2aWVjIGRvIGJpZXQgYmFvIG5oaWV1LiBDYWkgbmF5IHRoaSBiYXkgZ2lvIHJvIHJh bmcgbWluaCBwaGFpIA0KdHJhIGdpYS4NCg0KTmV1IGJheSBnaW8gbmd1bmcsIHRhdCBuaGllbiBz ZSBjaGl1IG5oaWV1IHRoaWV0IGhhaSBuaHVuZyB0aGlldCBoYWkgbmF5IG1hIHNvIHZvaSBuaHVu ZyANCnRoaWV0IGhhaSBzZSB4YXkgcmEgdHJvbmcgdHVvbmcgbGFpIHRoaSBraG9uZyBkYW5nIGxh IGJhby4gQ2h1bmcgdGEgdGhhIHRyYSBnaWEgdnVhIHBoYWkgY29uIA0KaG9uIGNoYXAgbmhhbiB0 cmEgZ2lhIHF1YSBkYXQuIFZpIHZheSwgbGFuaCBkYW8gcGhhaSB0aGF5IGhldCB0cmFjaCBuaGll bSBjdWEgbWluaCwgY2h1IA0Ka2hvbmcgYW8gYW8gZHVvYy4NCg0KLSBCYSBuZ2hpIHNhbyBraGkg VGFwIGRvYW4gVGhhbiB2YSBraG9hbmcgc2FuIFZOIHZhIEJvIFRhaSBuZ3V5ZW4gTW9pIHRydW9u ZyBraGFuZyANCmRpbmggdmUgbWF0IGx5IHRodXlldCBkdSBhbiBhbiB0b2FuIHZpIGNvIHRoZSBj aGl1IGR1b2MgZG9uZyBkYXQgY2FwIDkgdmEgeHUgbHkgYnVuIGRvIA0KYmFuZyBjYWNoIGNob24g bGFwIHJvaSBob2FuIHRobz8NCg0KVG9pIHRoYXkgdGhlIG5heS4gT25nIFZpZW4gVmF0IGx5IGRp YSBjYXUgY2h1eWVuIG5naGllbiBjdXUgdmUgZG9uZyBkYXQga2hvbmcgdGhheSBjbyANCmNvIHF1 YW4gbmFvIHRoYW0ga2hhbyB5IGtpZW4ga2hpIHhheSBkdW5nIGJlIGNodWEgYnVuIGRvIHRhaSBj YWMgZHUgYW4ga2hhaSB0aGFjIGJvLXhpdCANCm8gVGF5IE5ndXllbi4NCg0KRG8gZG8sIHRvaSBj dW5nIGtob25nIGhpZXUgZHUgYW4gY28gdGhlIGNoaXUgZHVvYyBjYXAgZG8gY2hhbiBkb25nIGNh cCA4LCBjYXAgOSBsYSBkdWEgDQp2YW8gY2FuIGN1IG5hby4gQ28gbGUsIGNodW5nIHRhIGN1bmcg bmVuIGhvaSBjaHUgZGF1IHR1IHZhIGJlbiB0aGFtIGRpbmggZHUgYW4gZGUgcm8gDQpob24gdmFu IGRlIG5heS4NCg0KQ2h1bmcgdGEgY2h1YSBkdSBjYW4gY3Uga2hvYSBob2MsIG5ldSBtb2kgbG9h bmcgdGhvYW5nIG1hIGxhbSB0aGkgbmd1eSBoaWVtIGxhbSwgaGF1IA0KcXVhIHhheSByYSByYXQg cm9uZyBsb24uDQoNCi0gVHVuZyBsYSBuZ3VvaSBuYW0gZ2l1IGN1b25nIHZpIGxhbmggZGFvIG5o YSBudW9jLCB0aGVvIGJhLCBwaGFpIGNoYW5nIGNvIG5odW5nIA0KY2h1eWVuIGNodWEgb24gdHJv bmcga2hhdSB4ZXQgZHV5ZXQgY2FjIGR1IGFuIHF1YW4gdHJvbmcuIENoYW5nIGhhbiBuaHUgZHUg YW4gYm8teGl0IA0KVGF5IE5ndXllbiBkYSBjbyBzdSBxdWFuIHRhbSwgIHRhYyBkb25nIGxvbiBj dWEgZG9uZyBkYW8gZHUgbHVhbiBuaHVuZyBsYWkga2hvbmcgDQpkdW9jIGR1YSByYSB0aGFvIGx1 YW4gdHJvbmcgUXVvYyBob2kgZGUgdGhvbmcgcXVhLCBraGllbiBuaGlldSBuZ3VvaSBjbyBjYW0g Z2lhYyBuaHUgDQoic3UgZGEgcm9pIj8NCg0KTWluaCBjbyBxdXkgZGluaCBnaWEgdHJpIHZlIGtp bmggdGUgY3VhIGR1IGFuIGRlbiBtdWMgbmFvIHRoaSBkdWEgcmEgUXVvYyBob2ksIGRheSBsYSAN Cm1vdCBxdXkgZGluaCBsYW0gbmF5IHNpbmggdmFuIGRlIGNoaWEgbmhvIGR1IGFuIGRlIGtob25n IGNhbiBRdW9jIGhvaSB0aG9uZyBxdWEuDQoNCihBbmg6IEtoYWkgdGhhYyBiby14aXQgLSBydWkg cm8gbW9pIHRydW9uZyByaW5oIHJhcC4gQW5oIG5oYW5iYW5vbmxpbmUpDQoNClRoZW8gdG9pLCBR dW9jIGhvaSB0aG9uZyBxdWEgbmh1bmcgZHUgYW4ga2hvbmcgY2hpIGRvIGx1b25nIHZlIG1hdCBr aW5oIHRlIG1hIHF1YW4gDQp0cm9uZyBob24gY2EgbGEgeGVtIHhldCBtb3QgY2FjaCB0b2FuIGRp ZW4sIGRhYyBiaWV0IGxhIGR1IGFuIGRvIGxpZW4gcXVhbiBkZW4gbG9pIGljaCBjdWEgDQpxdW9j IGdpYSwgdG9uIHZvbmcgZGFuIHRvYyB0aGkgY3VuZyBwaGFpIGR1b2MgZHVhIHJhIFF1b2MgaG9p Lg0KDQpTYXAgdG9pIGNodW5nIHRhIG5lbiBibyBzdW5nIGRpZXUgY29uIHRoaWV1IG5heSwgdmkg c3V5IGNobyBjdW5nIGN1bmcgY2hpIGNvIGxvaSBjaG8gDQpDaGluaCBwaHUgdmEgZGF0IG51b2Mg bWEgdGhvaSwgYm9pIHZpIFF1b2MgaG9pIGRhaSBkaWVuIGNobyBsb2kgaWNoIGN1YSBuaGFuIGRh biBjaHUgY28gDQpjYWkgZ2kga2hhYyBkYXUuIEtoaSBDaGluaCBwaHUgZHVhIHJhIFF1b2MgaG9p IHNlIGNvIG5oaWV1IG5ndW9pIHRoYW0gZGluaCBob24sIHNlIA0KZHVuZyBkYW4gdmEgaG9wIGxv bmcgZGFuIGhvbi4NCg0KIkR1IGFuIGxvbiBiYXQgYnVvYyBwaGFpIGNvIHBoYW4gYmllbiBkb2Mg bGFwIiwgDQooUEdTLiBUUy4gSG8gVXkgTGllbSAtIFBobyBDaHUgdGljaCBraWVtIFRvbmcgdGh1 IGt5IExpZW4gaGllcCBjYWMgSG9pIEtIJktUIFZpZXQgTmFtKS4NCg0KLSBUaGFuZyA0LzIwMDks IExpZW4gaGllcCBjYWMgSG9pIGtob2EgaG9jIHZhIGt5IHRodWF0IFZpZXQgTmFtIChWdXN0YSkg ZGEgY28gYmFvIGNhbyANCmRhbmggZ2lhIGNhYyBtYXQgY3VhIGR1IGFuIGJvLXhpdC4gTmhpZXUg eSBraWVuIGN1YSBWdXN0YSBkYSBkdW9jIEJvIENoaW5oIHRyaSBnaGkgbmhhbiANCnZhIGR1YSB2 YW8ga2V0IGx1YW4gc2F1IGRvLiBPbmcgbmdoaSBzYW8gdHJ1b2MgdmllYyBuaGlldSBuaGFuIHN5 IHRyaSB0aHVjIGt5IHZhbyBiYW4gDQpraWVuIG5naGkgdGFtIGR1bmcgZHUgYW4/DQoNCi0gUEdT LiBUUy4gSG8gVXkgTGllbTogU2F1IGtoaSB2dSBsdSBidW4gZG8geGF5IHJhIG8gSHVuZ2FyeSB0 aGkgY2hhYyBjaGFuIGNodW5nIHRhIA0KcGhhaSBuZ2hpZW0gdHVjIGRhbmggZ2lhIGxhaSB0b2Fu IGRpZW4gY2FjIG1hdC4NCg0KSGllbiBuYXksIGNodW5nIHRvaSBkYW5nIGN1bmcgYmFuIHRoYW8g bmdoaWVuIGN1dSB2YSBjaGFjIGNoYW4gbGEgc2UgY28gdmFuIGJhbiB0cmluaCANCmJheSBybyBy YW5nIHkga2llbiBjdWEgbWluaCB0cm9uZyB0aG9pIGdpYW4gbmdhbi4gVHV5IG5oaWVuLCB0b2kg Y2h1YSBub2kgdHJ1b2MgZHVvYyANCmtob2FuZyB0aG9pIGdpYW4gbmFvIGNodW5nIHRvaSBzZSBj byB2YW4gYmFuIG5heS4NCg0KQ2h1bmcgdG9pIGNoYWMgY2hhbiBjdW5nIGNhbiBwaGFpIHRpZXAg Y2FuIHRoZW0gZHVvYyBjYWMgc28gbGlldSBjdWEgVEtWIHNhdSBraGkgY28gDQprZXQgbHVhbiBj dWEgQm8gQ2hpbmggdHJpLg0KDQpDdW5nIHJhdCBtYXkgbGEgVGh1IHR1b25nIENoaW5oIHBodSBk YSBjaG8gcGhlcCBWaWVuIEtob2EgaG9jIHZhIENvbmcgbmdoZSBWaWV0IA0KTmFtLCBWaWVuIEto b2EgaG9jIHhhIGhvaSB2YSBMaWVuIGhpZXAgSG9pIHRodWMgaGllbiBjaHVvbmcgdHJpbmggVGF5 IE5ndXllbiAzLg0KDQpUcm9uZyBDaHVvbmcgdHJpbmggVGF5IE5ndXllbiAzIHNlIGNvIGRpZXUg ZGFuaCBnaWEgY2FjIHZpIHRyaSBraGFpIHRoYWMga2hvYW5nIHNhbiBub2kgDQpjaHVuZywgdHJv bmcgZG8gY28ga2hhaSB0aGFjIGJvLXhpdCBkb2kgdm9pIHN1IHBoYXQgdHJpZW4gY3VhIFRheSBO Z3V5ZW4gdGhvaSBnaWFuIHRvaS4NCg0KLSBDYWMgeSBraWVuIGN1YSBWdXN0YSBraGkgZ3VpIGxl biBjYWMgY28gcXVhbiB0cnVuZyB1b25nIGR1b2MgdGllcCBuaGFuIHZhIHBoYW4gaG9pIHJhIHNh bz8NCg0KTGF1IG5heSBjYWMgeSBraWVuIFZ1c3RhIGd1aSBsZW4gY2FjIGNvIHF1YW4gVHJ1bmcg dW9uZyBuaGF0IGxhIGNhYyBjbyBxdWFuIGN1YSBEYW5nICANCmRldSBkdW9jIHh1IGx5IHJvIHJh bmcsIG5oYW4gZHVvYyBjYWMgcGhhbiBob2kgdHJhbyBkb2kuDQpDaHVuZyB0b2kgcGhhaSBkaSB0 aHVjIGRpYSwga2hvbmcgdGhlIGNoaSBwaHUgdGh1b2MgdmFvIHNvIGxpZXUsIGRhbmggZ2lhIGto b25nIHRoZSBxdWEgDQpuaGFuaCBkdW9jLiBSb2kgY2EgdmllYyBwaGFpIHNhbmcgVHJ1bmcgUXVv YyB4ZW0geGV0IG5odSB0aGUgbmFvIG1vaSBjbyB5IGtpZW4gZHVvYywgDQpsYW4gbmF5IGNoYWMg Y3VuZyBwaGFpIGxhbSB0aGUgdGhvaS4NCg0KTyBkYXkgY28gaGFpIHZpZWM6IEJhbiB0aGFuIGNv IHF1YW4gVnVzdGEgZHUga2hvbmcgY28geSBraWVuIHR1IENoaW5oIHBodSBjdW5nIHBoYWkgDQpu Z2hpZW4gY3V1LCB0cmFjaCBuaGllbSB4YSBob2kgbGF1IG5heSByb2kuDQpDb24gbmV1IGNvIHkg a2llbiBjaGkgZGFvIHR1IHBoaWEgQ2hpbmggcGh1LCBiZW4gUXVvYyBob2kgdGhpIGNvbmcgdmll YyBuYXkgY2hhYyBjaGFuIA0Kc2UgZHVvYyBkYXkgbWFuaCB2YSB1dSB0aWVuIGhvbiwgdGllbiBk byBzZSBuaGFuaCBob24gbmhpZXUuDQoNCi0gTmhpZXUgeSBraWVuIGJheSB0byBsbyBsYW5nIHZl IGhpZXUgcXVhIGtpbmggdGUgY3VhIGR1IGFuIG5heSwgb25nIG5naGkgc2FvIHZlIG5odW5nIGxv IGxhbmcgbmF5Pw0KDQpEaWV1IG5heSBwaGFpIGR1YSB0cmVuIGNhYyBjb24gc28gY3UgdGhlLiBW dXN0YSBraGkgbmV1IHkga2llbiBsYSBwaGFpIGNvIHNvIGxpZXUgcm8gcmFuZy4gDQpOaHVuZyBu Z2F5IGNhIG5odSB2aWVjIHZhbiBjaHV5ZW4gYWx1bWluIHR1IG5oYSBtYXkgcmEgYmllbiBjaGFu ZyBoYW4sIGRpIGJhbmcgZHVvbmcgYm8uDQpNYSBjb24gZHVvbmcgbmF5IGxhIGR1b25nIGNodXll biBkdW5nIGNobyB2aWVjIHZhbiBjaHV5ZW4gbmF5LCB2b2kgdmllYyBjaGF5IG1heSANCnRyYW0g Y2h1eWVuIG1vdCBuZ2F5IHF1YW5oIG5hbSwgdm9pIHhlIHRyb25nIHRhaSBsb24gdGhpIGNvbiBk dW9uZyBheSBjaGEgbWF5IGNob2MgDQp4dW9uZyBjYXAuIEhpZW4gbmF5IGN1bmcgY2h1YSB0aW5o IGRlbiB2aWVjIGNvbiBkdW9uZyB4YXkgcmEgaHUgaG9uZywgYWkgc3VhLCBhaSBkdXkgdHUgDQpi YW8gZHVvbmcuDQoNCkNvIHRoZSB0cm9uZyB0aG9pIGdpYW4ga2hhaSB0aGFjLCAxNS0yMCBuYW0g Y2h1YSBjbyBjaHV5ZW4gZ2kgeGF5IHJhLCBzYXUgZG8gdGhpIGNodXllbiANCmdpPyBBaSBsbyBj aHV5ZW4gYmFvIHZlIGNobyBkby4gTmdheSBjYSBraGkgdGFuZyBkbyBhbiB0b2FuIGN1YSBobyBj aHVhIHRoaSBubyBjdW5nIHNlIA0KdGFuZyBnaWEgY3VhIGR1IGFuIGRlbiBtdWMgbWEgY28gdGhl IHJvaSBubyBzZSBjaGFuZyBjbyBoaWV1IHF1YSBraW5oIHRlIGdpIGNhLg0KSGllbiBuYXkgY2h1 bmcgdGEgY2h1YSBkZSBjYXAgZGVuIGNhIG5odW5nIGNodXllbiBuaHUgdmF5LiBPIGRheSBjaHVu ZyB0YSBwaGFpIGxheSANCnF1eWVuIGxvaSBjdWEgUXVvYyBnaWEgY2h1IGtob25nIHRoZSBjaGkg bGF5IHF1eWVuIGxvaSBjdWEgZGlhIHBodW9uZywgaGF5IG1vdCBuaG9tIA0KbmFvIG1hIGdpYW0g bmhlIGRpIG5odW5nIG5ndXkgY28gZG8uDQoNCihBbmg6IFBHUy5UUyBIbyBVeSBMaWVtLiBBbmg6 IENhbyBOaGF0KSANCg0KLSBUcm9uZyBraWVuIG5naGkgZ3VpIGxlbiBsYW5oIGRhbyBEYW5nLCBO aGEgbnVvYywgY2FjIG5oYW4gc2kgdHJpIHRodWMgY28gZGUgeHVhdCANCiJuZ2hpZW4gY3V1IGxh aSBtb3QgY2FjaCB0b25nIHRoZSB2YW4gZGUgYm8teGl0IFRheSBOZ3V5ZW4iICB0cmVuIGNvIHNv ICJsYXAgbW90IG5ob20gDQpuZ2hpZW4gY3V1IGRvYyBsYXAgKG5ob20gZGFjIG5oaWVtKSIsIG9u ZyBuZ2hpIHNhbyB2ZSBkZSB4dWF0IG5heT8NCg0KVG9pIHVuZyBobyBkZSB4dWF0IG5heSB2YSBu ZXUgZHVvYyBnaWFvIHRoaSBMaWVuIEhpZXAgaG9pIHNhbiBzYW5nIHZpIG8gZGF5IGNodW5nIHRv aSBjbyANCm5oaWV1IGNodXllbiBnaWEgdmEgc2FuIHNhbmcgdGhhbSBnaWEgIm5ob20gZGFjIG5o aWVtIiBkby4NCg0KLSBUaGVvIG9uZyBxdWEgbmh1bmcgY2F1IGNodXllbiBuaHUgdmF5IHRoaSBk YXUgbGEgYmFpIGhvYyBjYW4gcGhhaSBydXQgcmE/DQoNCkNodW5nIHRhIGN1bmcgY2FuIGhpZXUg cmFuZyBiZW4gVEtWIGN1bmcgY28gZG9pIG5ndSBraG9hIGhvYyByYXQgZ2lvaSwgcmF0IHRyYWNo IG5oaWVtLA0Kbmh1bmcgY28gY2hlIGRvbmcgZ29wIHkga2llbiB0cm9uZyBjYWMgY28gcXVhbiBu aGEgbnVvYyB0aGkgbm8gdGhpZXUgdGluaCBkb2MgbGFwIHZhIGNvIA0KdGhlIHBoYW4gbmFvIHRo aWV1IHRpbmgga2hhY2ggcXVhbi4NClZheSBuZW4gY2FuIGNvIG5oaWV1IGNvIGNoZSBkb25nIGdv cCB5IGtpZW4sIGRhYyBiaWV0IGxhIHR1IGNhYyBuaGEga2hvYSBob2MsIGNhbiBwaGFpIA0KY28g bmhpZXUgeSBraWVuIGRhbmggZ2lhIHR1IG5oaWV1IHBoaWEga2hhYyBuaGF1LCBjdW5nIG1vdCB2 YW4gZGUgbmh1bmcgcGhhaSB0dSBuaGlldSANCmdvYyBjYW5oIGtoYWMgbmhhdQ0KVHUgZG8gdGEg cnV0IHJhIGR1b2MgYmFpIGhvYyBraW5oIG5naGllbSBjaG8gc2F1IG5heSwgdm9pIG5odW5nIGR1 IGFuIGxvbiB0aGkgcmF0IGNhbiANCm5odW5nIHBoYW4gYmllbiBkb2MgbGFwLCB2YSBwaGFpIG5l biBjb2kgcGhhbiBiaWVuIGRvYyBsYXAgbGEgZG9pIGhvaSBiYXQgYnVvYyB2YSBwaGFpIA0KZ2lh bSBkaW5oIHRodW9uZyB4dXllbi4NCkNodW5nIHRhIGNhbiBjbyBtb3Qga2hvbmcga2hpIHRoYW8g bHVhbiBzb25nIHBoYW5nIGRlIGNhYyBiZW4gdGh1eWV0IHBodWMgbGFuIG5oYXUsIA0KY2hpbmgg ZGlldSBuYXkgZ2l1cCBjYWMgbGFuaCBkYW8gY2hpbmggdHJpIGNvIG5oaWV1IHRob25nIHRpbiBk ZSBkdWEgcmEgbmh1bmcgcXV5ZXQgZGluaCANCmN1b2kgY3VuZy4NCk5nYXkgY2Egbmh1IFRLViBj YW0ga2V0IG5odSB2YXkgbmh1bmcgY28gYWkgZGkgZ2lhbSBzYXQgdmEgZ2lhbSBzYXQgcmEgc2Fv PyBSbyByYW5nIA0KY2FjaCBsYW0gY3VhIGNodW5nIHRhIG8gZGF5IGRhbmcgY28gdmFuIGRlLg0K TmV1IG5odW5nIGhvYXQgZG9uZyBjdWEgY2FjIFRhcCBkb2FuIGhheSBub2kgY2h1bmcgY3VhIGNh YyBjbyBxdWFuIG5oYSBudW9jIG1hIA0Ka2hvbmcgZHVvYyBnaWFtIHNhdCB0aGkgY2hhYyBjaGFu IHNlIGRhbiBkZW4gaGF1IHF1YSBraG9uZyB0aGUgbHVvbmcgdHJ1b2MgZHVvYy4gDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0NS8yMDEwMTEwNzAwMTUwMS5h c3B4IENhbyBCYWMgMDcvMTEvMjAxMCAwOjE1IA0KDQpUaHUgdHVvbmc6IFZvIGRhcCBjaGFuIG51 b2MgdGhhaSBraGFpIHRoYWMgcXVhbmcgc2F0IG8gQ2FvIEJhbmcgLSBMdSBidW4gZG8gdGFuIGNv bmcga2h1IGRhbiBjdSAgIA0KICANCihBbmg6IEJ1biBkbyBuZ2FwIGR1b25nIGtoaWVuIHZpZWMg ZGkgbGFpIGhldCBzdWMga2hvIGtoYW4gLSBBbmg6IENhbyBCYWMpDQoNCkRlbSA1LjExLCBkYXAg Y2hhbiBudW9jIHRoYWkgdHV5ZW4gcnVhIHF1YW5nIHNhdCBiaSB2byBrZW8gdGhlbyBoYW5nIG5n YW4ga2hvaSBidW4gZGF0IA0KdHUgdGh1b25nIG5ndW9uIGRvIHh1b25nLCB0cmFuIGxhcCBydW9u ZyBkb25nIGhvYSBtYXUsIHZ1b24gdHVvYywgbmhhIGN1YSBjdWEgbmd1b2kgDQpkYW4geGEgRHV5 ZXQgQ2h1bmcgKHRoaSB4YSBDYW8gQmFuZykuIE5ndW9pIGRhbiBkYW5nIHJhdCBob2FuZyBtYW5n IHZpIGxvIHNvIGJ1biB0aGFpIA0Kc2UgYW5oIGh1b25nIG5naGllbSB0cm9uZyBkZW4gc3VjIGto b2UuIA0KDQpIb20gcXVhIDYuMTEsIGNvIG1hdCB0YWkgRHV5ZXQgQ2h1bmcsIGNodW5nIHRvaSBu aGFuIHRoYXkgbmhpZXUgbmd1b2kgZGFuIHZhbiBjaHVhIA0KaGV0IGJhbmcgaG9hbmcgdHJ1b2Mg dHJhbiBsdSBidW4gZG8gYXAgdmUgdHJvbmcgbHVjIHRyb2kga2hvbmcgZG8gbW90IGdpb3QgbXVh IG5hby4gVnVhIA0KaG9pIGhhIGNhbyB0dW5nIGxvcCBidW4gZGFjIHF1YW5oLCBkb24gZGVwIGxh aSBuaGEgY3VhLCBjaGkgTWEgVGhpIEJhY2ggKHhvbSBOYSBLZW8pIA0KdnVhIGtlOiAiQ29uIGx1 IGRlbiBuaGFuaCBxdWEhIFRvaSBkYW5nIGRpIGhvcCB0byBkYW4gcGhvIHRoaSBuZ2hlIGNvIHRp ZW5nIG5ndW9pIGhldCANCmdvaSBCYWNoIG9pIHZlIG5nYXksIG5oYSBtYXkgbmdhcCBoZXQgcm9p ISBUb2kgdm9pIGNoYXkgdmUgdGhpIHRoYXkgYnVuIHR1IGRhdSB0cmFuIHZlIA0KbmdhcCB2YW8g ZGF5IG5oYS4gSG9hbmcgaG9uLCB0b2kgY2hpIGtpcCBiZSBjYWkgdGl2aSB2YSBtYXkgYm8gcXVh biBhbywgY2hhbiBtYW4gY2hheSANCmxlbiBkdW9uZy4gTW90IGx1YyBzYXUsIGJ1biBkbyBkYSBu Z2FwIHF1YSBkdWksIGtob25nIHRoZSBzbyB0YW4gZHVvYyBnaSBudWEsIGRvIGRhYyANCnZhbiBu Z3V5ZW4gdHJvbmcgbmhhLCBtYXkgY2h1YyBjb24gZ2EgbWFjIGtldCB0cm9uZyBsb25nIGN1bmcg a2hvbmcga2lwIHNvIHRhbiwgY2hldCBjYSIuIA0KDQpUaW0gaGlldSBuZ3V5ZW4gbmhhbiwgY2hp IEJhY2ggdmEgY3UgZGFuIHRyb25nIHhvbSBkdW9jIGJpZXQgY29uIGx1IGJ1biB4dWF0IGhpZW4g ZG8gDQpzdSBjbyB2byBkYXAgY2hhbiBudW9jIHRoYWkgdHV5ZW4gcnVhIHF1YW5nIGN1YSBYaSBu Z2hpZXAga2hhaSB0aGFjIHF1YW5nIHNhdCBOYSBMdW5nIA0KKHRodW9jIENvbmcgdHkga2hvYW5n IHNhbiBsdXllbiBraW0gQ2FvIEJhbmcpLiAgDQoNCkJ1biBkbyB0cmFuIGtoYXAgY2FuaCBkb25n DQoNCkNvbiBkdW9uZyB2YW8gWGkgbmdoaWVwIGtoYWkgdGhhYyBxdWFuZyBzYXQgTmEgTHVuZyB0 cmFuIG5nYXAgdG9hbiBidW4gZGF0LiBIYW5nIA0KY2h1YyBuZ3VvaSB2YSB4ZSBtYXkgZG9uIHRh YyB2aSBraG9uZyBxdWEgZHVvYyBkb25nIHN1b2kgbmhvIGRhIGJpIGJ1biBkbyBkYWMgcXVhbmgg DQpuZ2FwIHF1YSBkYXUgZ29pLiBDYW5oIGRvLCBtb3QgbWF5IHh1YyBkYW5nIGNvIGdhbmcgZHVu ZyBnYXUgZ2F0IGRvbmcgYnVuIGRvIHF1YWNoLCANCmRhYyBzYW5oIGRlIHRob25nIGR1b25nIGNo byBkYW4gZGkgbGFpLiBEb2MgaGFpIGJlbiBibyBzdW9pIGRhaSBraG9hbmcgMiBrbSwgYnVuIGRv IA0KdHJhbiBuZ2FwIGtoYXAgbmh1bmcgY2FuaCBkb25nIGx1YSB2YSBob2EgbWF1LCB2dWkgbGFw IGdpZW5nIG51b2MgY3VhIGRhbi4NCg0KVGFpIHhvbSA0IE5hIEdhICh4YSBEdXlldCBUcnVuZyks IG9uZyBOZ3V5ZW4gVmFuIFR1YyBkYW5nIGNvIGdhbmcgZHVuZyB4ZW5nIHh1YyANCmRvbmcgYnVu IGRheSBkYWMgYmFtIGRheSBzYW4gdmEgZ2llbmcgbnVvYy4gDQoNCihBbmg6IE5nb2kgbmhhIGN1 YSBDaGkgQmFjaCBuZ2FwIHNhdSB0cm9uZyBidW4gZG8gLSBBbmg6IENhbyBCYWMpIA0KDQpPbmcg Y2hvIGhheSBuaHVuZyBobyBkYW4gc29uZyBnYW4gYm8gc3VvaSBkYSBiaSBidW4gZG8gdnVpIGxh cCBoZXQgcnVvbmcgZGF0IHZlbiBzdW9pLiANClRoZW8gbmh1bmcgbmd1b2kgZGFuIHNpbmggc29u ZyBsYXUgbmFtIG8gZGF5LCBkb25nIHN1b2kgbmF5IHRydW9jIGtpYSB2b24gdHJvbmcgeGFuaCwg DQpjdW5nIGNhcCBudW9jIHNpbmggaG9hdCB2YSBzYW4geHVhdCBjaG8gY2EgdnVuZywgbmh1bmcg dHUgbmdheSB4aSBuZ2hpZXAga2hhaSB0aGFjIA0KcXVhbmcgZGkgdmFvIGhvYXQgZG9uZywgY29u IHN1b2kgYm9uZyB0cm8gbmVuIGRvIHF1YWNoLCBraG9uZyBuaHVuZyBraG9uZyB0aGUgZHVuZyAN CnNpbmggaG9hdCBtYSBkZW4gY2EgY2EgdG9tIGN1bmcgY2hldCBzYWNoLiBEaWV1IGRhbmcgbm9p IGhvbiwgY29uIHN1b2kgbmF5IGNvbiBjaGF5IHJhIA0Kc29uZyBCYW5nIC0gbm9pIGN1bmcgY2Fw IG51b2Mgc2luaCBob2F0IHZhIHNhbiB4dWF0IGNobyBjdSBkYW4gdmVuIHNvbmcuIA0KDQpLaG9u ZyBwaGFpIGxhbiBkYXUgTW8gcXVhbmcgTmEgTHVuZyBkdW9jIGR1YSB2YW8ga2hhaSB0aGFjIG5o dW5nIG5hbSAxOTkwLiBRdWFuZyANCnNhdCBzYXUga2hpIGR1b2MgZGFvIGJvaSBzZSBkdW9jIHBo dW4gbnVvYyBydWEgc2FjaC4gTnVvYyB0aGFpIGNoYXkgeHVvbmcsIGxhbmcgYnVuIHRhaSANCm5o dW5nIGNhaSBkYXAgbG9uLiBIaWVuIG5heSBjbyA0IGRhcCBjaGFuIG51b2MgdGhhaSwgZGFwIGNo YW4gc28gNCBsYSBkYXAgY3VvaSBjdW5nIA0KdHJ1b2Mga2hpIG51b2MgeGEgcmEgc3VvaS4gVHV5 IHZheSwgbm8gZHVvYyBkYXAgYmFuZyBkYXQsIHRyb25nIGhldCBzdWMgc28gc2FpLCB0aGlldSBj aGFjIA0KY2hhbi4gDQoNClRyYW8gZG9pIHZvaSBjaHVuZyB0b2ksIG9uZyBMZSBOZ29jIFF1YW5n LCBQaG8gY2h1IHRpY2ggVUJORCB0aGkgeGEgQ2FvIEJhbmcsIGNobyANCmJpZXQgZGF5IGtob25n IHBoYWkgbGFuIGRhdSB0aWVuIG5ndW9pIGRhbiBraHUgdnVjIGhhIG5ndW9uIGN1YSBtbyBOYSBM dW5nIGJpIG5nYXAgDQpidW4uIFRydW9jIGRvLCBtbyBkYSBuaGlldSBsYW4geGEgYnVuIGxhbSBu Z2FwIGRvbmcgcnVvbmcgdmEgZ2F5IHRoaWV0IGhhaSBjaG8gZGFuLiANCkNoaW5oIHF1eWVuIGRp YSBwaHVvbmcgZGEgeWV1IGNhdSBwaGlhIGNvbmcgdHkga2hhYyBwaHVjIGhhdSBxdWEuIE5oaWV1 IGxhbiBjb25nIHR5IA0KbmF5IGh1YSBzZSBjbyBiaWVuIHBoYXAgY2hhbSBkdXQgdGluaCB0cmFu ZyB0cmVuLCBuaHVuZyBkZW4gbmF5LCBzdSBjbyB2YW4gdGFpIGRpZW4uIA0KSGllbiBuYXksIGNv bmcgdHkgZGFuZyBodXkgZG9uZyBtYXkgeHVjIGtob2kgdGhvbmcgYnVuIHRyZW4gZG9hbiBkdW9u ZyB2YW8gbW8sIA0Kc2UgZHVuZyBtYXkgYm9tIG51b2MgcnVhIG5oYSBjaG8gbmh1bmcgaG8gYmkg YnVuIG5nYXAgdmFvIG5oYS4gDQoNCkxvIGFuaCBodW9uZyB0b2kgc3VjIGtob2UgDQoNCk5odW5n IHZhbiBkZSBraG9uZyBwaGFpIGNoaSB2ZXQgaGV0IGJ1biBsYSB4b25nLiAiVmkgZGF5IGtob25n IHBoYWkgbG9haSBidW4gdGhvbmcgDQp0aHVvbmcgbWEgbGEgYnVuIHR1IHZpZWMgdHV5ZW4gcnVh IHF1YW5nLCBjbyB0aGUgY2h1YSBjYWMgY2hhdCBob2EgaG9jLCBraW0gbG9haSBuYW5nIA0KZ2F5 IGRvYyBoYWkgdG9pIHN1YyBraG9lIGNvbiBuZ3VvaSwgY2F5IHRyb25nIHZhIHZhdCBudW9pLiBD aHVuZyB0b2kgcmF0IGxvIG5nYWksIG5ldSANCmtob25nIGNvIGJpZW4gcGhhcCB2ZSBzaW5oLCBn aWFpIGRvYyBoaWV1IHF1YSwgc2UgYW5oIGh1b25nIG5naGllbSB0cm9uZyBkZW4gc3VjIGtob2Ug DQpjdWEgbW9pIG5ndW9pIiwgY2hpIEJhY2ggbm9pLg0KDQpIaWVuIG5heSBjaGluaCBxdXllbiB2 YSBuZ3VvaSBkYW4gZGFuZyBubyBsdWMgbmFvIHZldCBidW4gZGF0IHJhIGtob2kga2h1IHZ1YyBk YW4gc2luaCANCm5odW5nIHZvaSBraG9pIGx1b25nIGJ1biBkbyBuaGlldSBuaHUgdGhlIG5heSBr aG9uZyBhaSBjbyB0aGUgbmFvIHZldCBoZXQgdHJvbmcgbmdheSANCm1vdCBuZ2F5IGhhaS4gSG9u IG51YSwgbmh1bmcgZG9uZyBidW4gdGhhaSBjb25nIG5naGllcCBuYXkgY28gYW5oIGh1b25nIG5o dSB0aGUgbmFvIA0KZGVuIHN1YyBraG9lIG5ndW9pIGRhbiBjdW5nIGNhbiBkdW9jIGNhYyBjbyBx dWFuIGNodWMgbmFuZyBnaWFpIGRhcC4gVmEgbGlldSByYW5nIA0Kbmh1bmcgY29uIGx1IGJ1biBr aW5oIGhvYW5nIG5odSB0aGUgbmF5IGNvIGNvbiBiYXQgbmdvIGFwIGRlbiBudWEga2hvbmc/IENh dSBob2kgbmF5IA0KY2hpIGNvIGNhYyBjbyBxdWFuIGNodWMgbmFuZyB0aW5oIENhbyBCYW5nIHZh IGRvbiB2aSBraGFpIHRoYWMgcXVhbmcgbW9pIHRyYSBsb2kgZHVvYy4gDQoNCmh0dHA6Ly93d3cu dmlldC5yZmkuZnIvdmlldC1uYW0vMjAxMDEwMjUtZGUtYW4tYmF1eGl0ZS10cmVuLXRheS1uZ3V5 ZW4tcXVhLWJvbS1uby1jaGFtIFRyb25nIE5naGlhIDI1LzEwLzIwMTAgDQoNClRodSB0dW9uZzog RGUgYW4gYmF1eGl0ZSB0cmVuIFRheSBOZ3V5ZW4gLSBxdWEgYm9tIG5vIGNoYW0gDQoNCihBbmg6 IENvbmcgbmhhbiBsYW0gdmllYyB0YWkgbW8ga2hhaSB0aGFjIGJhdXhpdGUgVGFuIFJhaS4gUmV1 dGVycykgDQoNClR1IHNhdSB2dSBobyBjaHVhIGJ1biBkbyBiYXV4aXRlIG8gSHVuZ2FyeSBiaSB2 byB2YW8gdGh1b25nIHR1YW4gdGhhbmcgMTAvMjAxMCwgZ2F5IA0Kbmh1bmcgdG9uIHRoYXQgdmUg Y2EgbmhhbiBtYW5nLCB2YXQgY2hhdCBsYW4gbW9pIHRydW9uZywgY2FuZyBsdWMgY2FuZyBjbyBu aGlldSANCnRpZW5nIG5vaSB2YW5nIGxlbiB0YWkgVmlldCBOYW0sIHlldSBjYXUgY2hpbmggcXV5 ZW4geGVtIHhldCBsYWkga2UgaG9hY2gga2hhaSB0aGFjIGJhdXhpdGUgZGFuZyBkdW9jIHRodWMg aGllbiB0cmVuIHZ1bmcgVGF5IE5ndXllbi4gDQoNCk1vdCBiYW4ga2llbiBuZ2hpIHlldSBjYXUg dGFtIGRpbmggY2hpIGRlIGFuIGJhdXhpdGUgVGF5IE5ndXllbiBjaG8gZGVuIGhldCBuZ2F5IGhv bSANCnF1YSAyNC8xMCBkYSBkdW9jIGdhbiAyMDAwIG5ndW9pIGt5IHRlbiwgdHJvbmcgZG8gY28g cmF0IG5oaWV1IHRlbiB0dW9pIHRyb25nIGNhYyBsYW5oIA0KdnVjIGNoaW5oIHRyaSwga2hvYSBo b2MsIGtpbmggdGUsIGN1bmcgdm9pIG5oaWV1IHNpIHF1YW4gY2FvIGNhcCBjdW5nIG5odSBuZ3Vv aSBkYW4gYmluaCANCnRodW9uZy4NCg0KVHJlbiBiYW8gY2hpIFZpZXQgTmFtLCBraG9uZyBuZ2F5 IG5hbyBraG9uZyBjbyBiYWkgdmlldCBjYW5oIGJhbyBjaGluaCBxdXllbiB2ZSBoaWVtIA0KaG9h IHRpZW0gdGFuZyBkb2kgdm9pIGRhdCBudW9jLiBDaGkgY2FuIG5oaW4gcXVhIG1vdCBzbyBiYWkg dmlldCBsYSBkb2MgZ2lhIHRoYXkgbmdheSBsYSANCmNvbmcgbHVhbiBkYW5nIGhldCBzdWMgbG8g YXUgdHJ1b2MgbW90IHZpZW4gYW5oIGRhbmcgbmdhaS4gVHJvbmcgYmFpIHZpZXQgZHVvYyBiYW8g dHJlbiANCm1hbmcgVHVhbiBWaWV0bmFtbmV0IGNvbmcgYm8gdmFvIGhvbSBuYXksIFRpZW4gc2kg VG8gVmFuIFRydW9uZywgbmd1eWVuIFZpZW4gDQp0cnVvbmcgVmllbiBRdXkgaG9hY2ggVGh1eSBs b2kgbWllbiBOYW0sIGRhIHRvbSBsdW9jIG1vaSBxdWFuIG5nYWkgY2h1bmcga2hpIGNobyANCmJp ZXQgbGEgIlF1YSB0aW5oIHRvYW4gY3VhIGNodW5nIHRvaSwgZHUgYW4gYm8teGl0IFRheSBOZ3V5 ZW4gdnVhIGxvIG5hbmcsIHZ1YSBnYXkgbyANCm5oaWVtIGRlbiBtb2kgdHJ1b25nIGNhIHRydW9j IG1hdCB2YSBsYXUgZGFpIi4NCg0KVGhhbSBjaGksIGN1bmcgdHJlbiB0byBUdWFuIFZpZXRuYW1u ZXQsIFRpZW4gc2kgTmd1eWVuIFRoYW5oIFNvbiwgR2lhbSBkb2MgQ29uZyB0eSANCk5hbmcgbHVv bmcgc29uZyBIb25nLCB0aHVvYyB0YXAgZG9hbiBUS1YgLSBjaHUgZGF1IHR1IGR1IGFuIGJhdXhp dGUgVGF5IE5ndXllbiANCmN1bmcgdGhhbSBkaW5oIDogIiBTYXUgaGFpIG5hbSB0cmllbiBraGFp IHRoaSBkaWVtLCBtYWMgZHUgY2h1YSB4b25nIDEwMCUgbmh1bmcsIHJhdCANCm1heSwgdHJvbmcg cXVhIHRyaW5oIHRoaSBkaWVtIGNodW5nIHRhIGRhIGNvIGR1IHRob25nIHRpbiBkZSBkdWEgcmEg a2V0IGx1YW4sIHZvaSAyIGx5IGRvIA0KbmVuIGR1bmcgdGhpIGRpZW0gZGUgZG9uZyBjdWEgZHUg YW4gIi4gTHkgZG8gdGh1IG5oYXQsIHRoZW8gb25nIFNvbiwgZG8gbGEgdmkgOiAiIENvbmcgDQpu Z2hlIHRoYWkgYnVuIGRvIGN1YSBjYWMgZHUgYW4gdHJlbiBUYXkgTmd1eWVuIGxhIGNvbmcgbmdo ZSAidW90IiwgbGFjIGhhdSwgY28gbmd1eSBjbyANCmNhbyBnaW9uZyBob2FuIHRvYW4gbmh1IGN1 YSBIdW5nYXJ5ICIuIEJlbiBjYW5oIGRvLCBkZSBhbiBiYXV4aXRlIFRheSBOZ3V5ZW4sIHRoZW8g DQpvbmcgU29uLCBjdW5nIGhhbSBjaHVhIHJhdCBuaGlldSBydWkgcm8gdmUga2luaCB0ZSBkbyBk byBraG9uZyBuZW4gdGllcCB0dWMuDQoNClRyZW4gYmFvIFR1b2kgVHJlLCBvbmcgTmd1eWVuIFZh biBCYW4sIG5ndXllbiB0cnVvbmcgYmFuIGR1IGFuIG5ob20gY3VhIFRvbmcgY29uZyANCnR5IEto b2FuZyBzYW4gVmlldCBOYW0gdGh1b2MgVGFwIGRvYW4gVEtWLCBjdW5nIGtodXllbiBjYW8gY2hp bmggcXV5ZW4gbGEgbmVuIA0KZHVuZyBkZSBhbiBiYXV4aXRlIFRheSBOZ3V5ZW4gbmV1IHlldSB0 byBhbiB0b2FuIGtob25nIGR1b2MgYmFvIGRhbS4gVGhlbyBvbmcgOiANCiJLaG9uZyBhaSBjbyB0 aGUgbHVvbmcgdHJ1b2MgZHVvYyBuaHVuZyBub2kgeGF5IGR1bmcgaG8gY2h1YSBidW4gZG8gZG8g Y28geGF5IHJhIA0Kbmh1bmcgdHJhbiBtdWEgbHUgbG9uIGxhbSB2byBobyBraG9uZy4gQ28gdGhl IGtoaSB0aGlldCBrZSBjaHVuZyB0YSBkdWEgdmFvIHRhaSBsaWV1IGtoaSANCnR1b25nIHRodXkg dmFuIGhhbmcgdHJhbSBuYW0gZGUgdGluaCBuaHVuZyB2b2kgc3UgYmllbiBkb2kga2hpIGhhdSwg dGhpZW4gdGFpIHhheSByYSBkb3QgDQpiaWVuIHZhIGdoZSBnb20gbmh1IGhpZW4gbmF5LCB2aWVj IHRoaWV0IGtlIGNhYyBobyBjaHVhIGJ1biBkbyBjYW4gcGhhaSB4ZW0geGV0IGhldCBzdWMgDQpr eSBsdW9uZywgcGhhaSBsYXkgbmh1bmcgaGUgc28gYW4gdG9hbiBjYW8gaG9uIHJhdCBuaGlldSwg a2UgY2EgaGUgc28gZHUgdGluaCBjaG8gbmh1bmcgDQpkb3QgYmllbiB4YXkgcmEgZG9pIHZvaSB0 aG9pIHRpZXQuIg0KDQpOaGlldSBuZ3V5IGNvIHRpZW0gdGFuZywgaXQgbG9pIGljaCBraW5oIHRl IA0KDQpOaGluIGNodW5nLCBnaW9pIGNodXllbiBnaWEgZGV1IG5oYXQgdHJpIGtldSBnb2kgZGlu aCBjaGkgZGUgYW4ga2hhaSB0aGFjIGJhdXhpdGUsIHZpIG5ndXkgDQpjbyB0aWVtIHRhbmcgcmF0 IGxvbiwgdHJvbmcgbHVjIGxvaSBpY2gga2luaCB0ZSBjaGFuZyBiYW8gbmhpZXUuIFRyYSBsb2kg cGhvbmcgdmFuIGN1YSBiYW8gDQpWbmV4cHJlc3MgbmdheSBob20gbmF5LCBHaWFvIHN1IERhbmcg SHVuZyBWbywgbmd1eWVuIFRodSB0cnVvbmcgQm8gVGFpIG5ndXllbiANCk1vaSB0cnVvbmcsIG1v dCBuZ3VvaSBkYSBreSB0ZW4gdmFvIGJhbiBraWVuIG5naGksIHBoYW4gdGljaCA6ICIgS2hvbmcg Y28gYm8geGl0LCBWaWV0IA0KTmFtIGtob25nIG5naGVvIGRpLiBTYW4geHVhdCByYSBhbHVtaW5h IHZvaSBraG9pIGx1b25nIG1vdCB2YWkgdHJpZXUgdGFuIG1vdCBuYW0gbGEgDQpxdWEgbmhvIHNv IHZvaSBzbyB2b2kgdGhpIHRydW9uZyB0cmVuIHRoZSBnaW9pLiBWYSBoaWVuIG5heSwgbmhvbSBj dW5nIGxhIG1vdCB0aHUgdmF0IGxpZXUgDQpyZSBjaHUga2hvbmcgcXVhIGRhdC4gTm8ga2hvbmcg cGhhaSBsYSBraG9hbmcgc2FuIGNvIGdpYSB0cmkgdGFuZyBjYW8iLiANCg0KUGhhbiB1bmcgY3Vh IGNvbmcgbHVhbiBkYW5nIGRheSBnaW9pIGNodSB0cnVvbmcga2hhaSB0aGFjIGJhdXhpdGUgdmFv IHRoZSB0aHUuIFRoZW8gYmFvIA0KVGhhbmggTmllbiwgb25nIFBoYW0gS2hvaSBOZ3V5ZW4gYm8g dHJ1b25nIEJvIFRhaSBuZ3V5ZW4gliBNb2kgdHJ1b25nIFZpZXQgTmFtIA0KZGEgdHV5ZW4gYm8g dHJhbiBhbiwgY2hvIHJhbmcgIiBCYXV4aXRlIG8gVmlldCBOYW0sIHZlIGx5IHRodXlldCBsYSBh biB0b2FuICIuIE9uZyANCk5ndXllbiBUaGFuaCBMaWVtLCBkdW9uZyBraW0gVHJ1b25nIGJhbiBO aG9tIJYgYmF1eGl0ZSwgdGh1b2MgVGFwIGRvYW4gVEtWIGNvbiANCmRhbSB4YWMgZGluaCBsYSBj aGkgY28gZG9uZyBkYXQgbW9pIGxhbSB2byBkdW9jIGhvIGJ1biBkbyBiYXV4aXRlIHRyZW4gVGF5 IE5ndXllbi4gDQoNClR1eSBuaGllbiwgdHJ1b2MgbW9pIHF1YW4gbmdhaSB0cm9uZyBjb25nIGx1 YW4gY2FuZyBsdWMgY2FuZyBtYW5oLCB0aGVvIGJhbyBjaGkgdHJvbmcgDQpudW9jLCBjaGluaCBx dXllbiBWaWV0IE5hbSwgcXVhIGxvaSBvbmcgTmd1eWVuIFh1YW4gUGh1YywgQ2h1IG5oaWVtIFZh biBwaG9uZyANCkNoaW5oIHBodSBkYSBjaG8gYmlldCBsYSBDaGluaCBwaHUgZGFuZyBsYW5nIG5n aGUgY2FjIGdvcCB5IHZlIGJhdXhpdGUuIFBoYXQgYmlldSB2b2kgDQpiYW8gVHVvaSBUcmUgdmFv IGhvbSBuYXksIG9uZyBMZSBEdW9uZyBRdWFuZywgdGh1IHRydW9uZyBCbyBDb25nIHRodW9uZyBr aWVtIGNodSANCnRpY2ggSG9pIGRvbmcgUXVhbiB0cmkgVGFwIGRvYW4gVEtWLCBjdW5nIHhhYyBk aW5oIHJhbmcgY2hpIGNhbiBjaGluaCBwaHUgcmEgbGVuaCBsYSANCmhvIHNlIGR1bmcgbmdheSBk dSBhbi4NCg0KRGUgaGlldSBybyBob24gdmUgbW9pIGJ1YyB4dWMgY3VhIGR1IGx1YW4gdHJvbmcg bnVvYywgdmEgZGFjIGJpZXQgbGEgbXVjIGRvIG5ndXkgaGllbSANCnRpZW0gdGFuZyBjdWEgdmll YyBraGFpIHRoYWMgYmF1eGl0ZSB0cmVuIFRheSBOZ3V5ZW4sIFJGSSBkYSBwaG9uZyB2YW4gb25n IE5ndXllbiANCkR1YyBIaWVwLCBjaHV5ZW4gZ2lhIG5naGllbiBjdXUgdmUgbW9pIHRydW9uZyB0 YWkgVWMsIG51b2MgZHVuZyBkYXUgdGhlIGdpb2kgaGllbiBuYXkgDQp0cm9uZyBsYW5oIHZ1YyBr aGFpIHRoYWMgcXVhbmcgbmhvbS4NCg0KMS8gTW9pIHF1YW4gbmdhaSBoYW5nIGRhdSB0cm9uZyBr aGFpIHRoYWMgYmF1eGl0ZSBUYXkgTmd1eWVuIDogaG8gY2h1YSBidW4gZG8NCg0KSGllbiBuYXkg Y2hpbmggcGh1IHZhbiB0aWVwIHR1YyBraGFpIHRyaWVuIGhhaSBuaGEgbWF5IFRhbiBSYWkgdmEg TmhhbiBDby4gTmhhIG1heSANClRhbiBSYWkgaGF1IG5odSBzYXAgeG9uZywgZHUga2llbiBzZSBo b2F0IGRvbmcgdmFvIHRoYW5nIDExIG5heSwgbmh1bmcgdmkga2UgaG9hY2ggDQpraG9uZyBiYW8g Z2lvIGR1bmcgbmVuIGR1IGRpbmggc2UgdmFuIGhhbmggdmFvIHRoYW5nIDMgaG9hYyB0aGFuZyA0 IG5hbSAyMDExLiBRdWFuIA0KdGFtIGhhbmcgZGF1IGN1YSBtb2kgbmd1b2kgaGllbiBsYSBjYWkg aG8gY2h1YSBidW4gZG8uIA0KDQpCdW4gZG8gbGEgY2hhdCB0aGFpIGN1YSBxdWEgdHJpbmggbHV5 ZW4gYWx1bWluYSwgY28gcmF0IG5oaWV1IGNoYXQga2llbSAoY2hhdCBzb3VkZSkuIEhpZW4gDQpu YXksIGhvIGJ1biBkbyBuYW0gbyBnaXVhIHRodW5nIGx1bmcuIFNvIHZvaSBobyBjaHVhIGJlbiBI dW5nYXJ5IHRoaSBjYWkgaG8gbmF5IG5vaSANCmNodW5nIGNoYWMgY2hhbiBob24uIFR1eSBuaGll biwgZ2l1YSBoYWkgY2FpIGhvIG8gSHVuZ2FyeSB2YSBvIFRheSBOZ3V5ZW4gVmlldCBOYW0sIA0K dGluaCB0aGUgcmF0IGtoYWMgbmhhdS4gSG8gbyBUYXkgTmd1eWVuIG5hbSB0cmVuIG1vdCBkaWEg ZGllbSByYXQgY2FvLiBUaGVtIG51YSwgdnUgDQpsdW9uZyBvIFRheSBOZ3V5ZW4gcmF0IGtoYWMg dm9pIG8gSHVuZ2FyeS4gSG8gY2h1YSBidW4gZG8gbmFtIHRyb25nIHRodW5nIGx1bmcsIA0Kbmh1 bmcgZHVvYyBjaGlhIHRoYW5oIG5oaWV1IGtob2FuZyBjaHVhIHZpIGtob25nIHRoZSBkbyB0YXQg Y2EgYnVuIGRvIHZhbyBjdW5nIG1vdCANCmx1YywgbmVuIHBoYWkgY2hpYSByYSBuaGlldSBraG9h bmcuDQoNCkhhaSB2YW4gZGUgcXVhbiB0cm9uZyBkYXQgcmEgbGEgYnVuIGRvIGNvIHRoYW0gdmFv IGxvbmcgZGF0IGRlIGRpIHZhbyBudW9jIG5nYW0gaGF5IA0Ka2hvbmcgPyBUaHUgbnVhIGxhIHZ1 IGx1b25nIG8gVGF5IE5ndXllbiByYXQgY2FvLCBjaG8gbmVuIGNvIHRoZSBsYW0gdHJhbyBjYWkg aG8gYnVuIA0KZG8uIFZpIHZheSwgbmV1IHhldCB2ZSBreSB0aHVhdCBnaXVhIGhhaSBjYWkgaG8g byBIdW5nYXJ5IHZhIG8gVGF5IE5ndXllbiwgdG9pIG5naGkgbGEgaG8gDQpvIFRheSBOZ3V5ZW4g aGFtIGNodWEgbmd1eSBjbyBjbyB0aGUgbGEgY2FvIGhvbiwgdGFpIHZpIGNvIHRoZSB0aGFtIHh1 b25nIG1hY2ggbnVvYyANCm5nYW0uIA0KDQpWZSB2YW4gZGUgdGh1IG5oYXQsIGhpZW4gbmF5IGJ1 biBkbyBWaWV0IE5hbSBzZSBkdW9jIHh1IGx5IHRoZW8gY29uZyBuZ2hlIGdvaSBsYSAidW90Iiwg DQpjaGF0IHNvdWRlIHNlIG5hbSBvIGR1b2kgZGF5IGhvIHJhdCBuaGlldS4gTWFjIGRhdSBsYSBj byB0aGUgY28gdGFuZyBkYXQgc2V0IHJhdCANCmRheSBjYWNoIGx5LCBjb25nIHRoZW0gdm9pIGNh YyBsb3AgY2hvbmcgdGhhbSwgdGhlIG5odW5nIGtpbmggbmdoaWVtIG8gbmhpZXUgbnVvYywgDQpu aHUgbGEgbyBVYywgY2hvIHRoYXkgbGEgc2F1IG1vdCBxdWEgdHJpbmggbGF1IGRhaSB0aGkgY2hh dCBzb3VkZSB2YW4gY28gdGhlIGNvIHBoYW4gdW5nIA0KaG9hIGhvYyB2b2kgZGF0LCBjaG8gbmVu IHZhbiBjbyB0aGUgdGhvYXQgcmEgZHVvYy4gVGFpIFVjIGJheSBnaW8sIG5ndW9pIHRhIGRhIGJv IGNvbmcgDQpuZ2hlICIgdW90ICIgcm9pIHZpIHRoYXkgbGEgdHJvbmcgdGh1YyB0ZSwgY2hhdCBi dW4gZG8gdmFuIG5nYW0gdmFvIG51b2MgbmdhbSBzYXUga2hpIGhvIA0KY2h1YSBuYW0gZG8ga2hv YW5nIDIwIG5hbS4NCg0KVmUgdmFuIGRlIGx1b25nIG11YSwgbyBuZ2F5IFRheSBOZ3V5ZW4sIG5v aSBjbyBobyBUYW4gUmFpLCB2dSBsdW9uZyBtdWEgcmF0IGNhbywgY2hvIA0KbmVuIGx1YyBtdWEg bXVhLCBraGEgbmFuZyB0cmFuIGhvIGJ1biBkbyBjYW8gaG9uIGxhIG8gYmVuIEh1bmdhcnkuIFZp IHZheSBtYSB2ZSBtb2kgDQp0cnVvbmcsIHZhbiBkZSBnaWFpIHF1eWV0IGJ1biBkbyBvIFZpZXQg TmFtLCBvIFRheSBOZ3V5ZW4gbGEgbW90IGRpZW0gcmF0IHF1YW4gdHJvbmcuDQoNCjIvIEJ1biBk byB0cmVuIFRheSBOZ3V5ZW4gcmF0IG5ndXkgaGFpIHZpIGRlIGRvYSB2dW5nIGx1dSB2dWMgc29u ZyBEb25nIE5haSByYXQgZG9uZyBkYW4gDQoNClZhbiBkZSBidW4gZG8ga2hpIHRoYXQgdGhvYXQg cmEgZHVvYyBvIHRyZW4gVGF5IE5ndXllbiBzZSBjbyBoZSBxdWEgbG9uIGhvbiBsYSBvIA0KSHVu Z2FyeSA6IHRhaSB2aSBuYW0gYmVuIHRyZW4gbHV1IHZ1YyBzb25nIERvbmcgTmFpLCB2YSBvIGR1 b2kgdnVuZyBoYSBsdXUgZG8gdGhpIGRhbiANCnNvIHJhdCBkb25nLCB0dSBUUCBIQ00geHVvbmcg ZGVuIENhbiBHaW8sIGhvYWMgbGEgdHUgQmllbiBIb2EgdHJvIHh1b25nLi4uIFJhdCBkb25nIA0K ZGFuIGNobyBuZW4gYW5oIGh1b25nIHJhdCBtYW5oLCBjYW8gaG9uIGxhIEh1bmdhcnkuDQoNClRo ZW0gbnVhIGxhIHRoZW8gbmh1bmcga2UgaG9hY2ggbmh1IHRvaSBiaWV0IGxhIG8gYmVuIFVjIG5h eSwgdGF0IGNhIGNhYyBuaGEgbWF5IGx1eWVuIA0KYWx1bWluaXVtIGRldSByYXQgZ2FuIGJpZW4s IHZhIGdhbiBuaHVuZyBub2kga2hvIHJhbyB2YSBjbyBuaGlldSBkaWVuLiBOZXUgY28geGF5IHJh IHN1IA0KY28gdGhpIG5ndW9pIHRhIGNvIHRoZSB0aGFpIHJhIG51b2MgYmllbiwgdGFpIGhvYSBt b2kgdHJ1b25nIHNlIGdpYW0gZGkuIFZhIHRodSBoYWkgbnVhIGxhIA0KZ2FuIGJpZW4gdGhpIGRl IGNodXllbiBjaG8gdmEgZGUgeHVhdCBraGF1LCBjb24gbGFtIG5odSBvIFRheSBOZ3V5ZW4gVmll dCBOYW0gdGhpIHZhbiANCmRlIGxhIGdpYSB0aGFuaCBiYXV4aXRlIHJhdCBjYW8uDQoNCjMvIEJh dXhpdGUgVGF5IE5ndXllbiA6IG1vdCBkZSBhbiBwaGkga2luaCB0ZQ0KDQpDb25nIG5naGUgc2Fu IHh1YXQgYWx1bWluYSBvIFZpZXQgTmFtIGxhaSBsYSBjdWEgVHJ1bmcgUXVvYywgc2UgZHVuZyBk aWVuIHJhdCBuaGlldSwgDQpzdWMgdGlldSBkdW5nIGRpZW4gcmF0IGNhbyBzbyB2b2kgY29uZyBu Z2hlIGN1YSBuaHVuZyBudW9jIGtoYWMsIGxhbSBjaG8gZ2lhIHRoYW5oIA0KYWx1bWluYSBvIFZp ZXQgTmFtIHJhdCBjYW8gc28gdm9pIGdpYSBvIGNobyBraGFjLCBraG8gY28gdGhlIGNhbmggdHJh bmguIFZpIHZheSBuZXUgc2FuIA0KeHVhdCBhbHVtaW5hIG8gVGF5IE5ndXllbiwgbmdvYWkgdmFu IGRlIGNodXllbiBjaG8gdHUgVGF5IE5ndXllbiB4dW9uZyBnaWEgcmF0IGNhbywgDQp2YSBjb25n IG5naGUga2hvbmcgdG90IHZlIHZhbiBkZSBtb2kgdHJ1b25nIHZhIGtob25nIGNvIGhpZXUgbmFu Zywgdm9pIGNhaSBnaWEgdGhhbmggDQpjYW8gZG8gYWx1bWluYSBjdWEgVmlldCBOYW0gc2Uga2hv bmcgYmFuIGR1b2MgY2hvIGFpIGhldCBuZ29haSB2aWVjIGJhbiBjaG8gVHJ1bmcgDQpRdW9jLg0K DQpSbyByYW5nIGxhIGNhaSBkZSBhbiBiYXV4aXRlIFRheSBOZ3V5ZW4gaG9hbiB0b2FuIGtob25n IGNvIGxvaSB2ZSBraW5oIHRlLiBUaHUgbmhhdCBsYSANCm5vIHhhIGJvIGJpZW4uIENobyBuZW4g ZGkgY2h1eWVuIGhhbmcsIGRpIGNodXllbiBhbHVtaW5hIHNhdSBraGkgbHV5ZW4geG9uZyB4dW9u ZyANCmNhbmcgcmF0IHhhIHhvaSwgbWEgdGhlbSBudWEgbGEgbmV1IG1hIGRhIGNvIGR1b25nIHNh dCBob2FjIGxhIGR1b25nIGJvIGRhIHhheSB4b25nIHRoaSANCnZpZWMgY2h1eWVuIGNobyBkZSBk YW5nIGhvbiwgbmh1bmcgbWEgaGllbiBuYXkgY28gc28gaGEgdGFuZyBuYXkgaG9hbiB0b2FuIGNo dWEgY28sIA0KdmFuIGNodWEgY28gY2FpIGR1IGFuIG5hbyB0aGF0IHN1IGhvYW4gdGhhbmgsIG1v IGR1b2MgZHVvbmcgdHUgVGF5IE5ndXllbiBkaSB4dW9uZyANCmNhbmcgS2UgR2EuIA0KDQpUb2kg a2hvbmcgaGlldSBsYSBraGkgbmhhIG1heSBUYW4gUmFpIGhvYXQgZG9uZyB0aGkgdmFuIGRlIGNo dXllbiBhbHVtaW5hIGx1eWVuIGR1b2MgDQp4dW9uZyBjYW5nIG5odSB0aGUgbmFvLiBUb2kgbmdo aSBsYSBjaGkgcmllbmcgdHJlbiB2YW4gZGUga2luaCB0ZSwgZGUgYW4gYmF1eGl0ZSBUYXkgDQpO Z3V5ZW4gZGEgcmF0IHZvIGx5IHZpIGNodWEgY28gY28gc28gaGEgdGFuZyBtYSBkYSB0aGkgaGFu aCBjYWkgZHUgYW4gZG8gbyB0cmVuIFRheSANCk5ndXllbiByb2kuDQoNCkR1bmcgdmUgbWF0IGtp bmggdGUgdGhpIHJvIHJhbmcgbGEgZHUgYW4gY28gdGhlIGxvLCBraG9uZyBjbyBsb2kgYmFvIG5o aWV1LCBtYSB0YWMgaGFpIG1vaSANCnRydW9uZyByYXQgbG9uLCBjaG8gbmVuIHRvaSBuZ2hpIGxh IHRvdCBuaGF0IFZpZXQgTmFtIG5lbiBuZ3VuZyBuZ2F5IGNhaSBkdSBhbiBraGFpIHRoYWMgDQpi YXV4aXRlIG8gVGF5IE5ndXllbi4NCg0KNC8gS2hhIG5hbmcgaG9hbiB0aG8gOiBtb3QgYW8gdm9u Zw0KDQpUb2kga2hvbmcgbmdoaSBsYSBraGEgbmFuZyBob2FuIHRobyB0aHVjIGhpZW4gZHVvYy4g Tmd1b2kgdGEgbm9pIG5odSB2YXkgdGhvaSwgY2h1IHN1IA0KaG9hbiB0aG8ga2hvbmcgdGhlIG5h byBtYSBob2FuIHRobyBoZXQgZHVvYy4gVGFpIHZpIGtoaSBkYSBkYW8gZGkgbW90IHNvIGx1b25n IGRhdCwgdmEgDQpkYSBraGFpIHRoYWMgYmF1eGl0ZSByb2kgdGhpIGxheSBkYXQgbyBkYXUgbWEg aG9hbiB0aG8gaG9hbiB0b2FuIHRybyBsYWkuIA0KDQpEbyBsYSB0cm9uZyB0cnVvbmcgaG9wIHRh IGxheSBkYXQgY2hvIGtoYWMgbWFuZyBkZW4gZGUgaG9hbiB0aG8sIG5odW5nIG1hIG8gdGF0IGNh IA0Kbmh1bmcgZHUgYW4gbWEgdG9pIGJpZXQgZHVvYyBuZ2F5IG51b2MgVWMgbmF5LCB0aGkga2hv bmcgYmFvIGdpbyBjbyB0aGUgaG9hbiB0aG8gZHVvYyANCmhvYW4gdG9hbi4gTWEgdGhhdCBzdSBo YXUgbmh1IGxhIGtob25nIGNvIGNobyBuYW8gY28gZHVvYyBrZSBob2FjaCBob2FuIHRobyB0b3Qg ZGVwIGNhLiANCkNobyBuZW4sIG1hYyBkYXUgbGEgaG8gbm9pIGRlbiB2aWVjIGhvYW4gdGhvIG5o dW5nIGtob25nIGFpIHRpbiByYW5nIGNvIHRoZSBob2FuIHRobyB5IA0Kbmd1eWVuIGR1b2MuDQoN CjUvIFRydW5nIFF1b2MgY2h1IHRydW9uZyB4dWF0IGtoYXUgbyBuaGllbSBzYW5nIG51b2Mga2hh Yw0KDQpEYXkgbGEgY2hpbmggc2FjaCBjdWEgVHJ1bmcgUXVvYyB0dSBjYSBtYXkgbmFtIG5heSBy b2kuIEtob25nIHJpZW5nIGdpIHRyb25nIHZpZWMga2hhaSANCnRoYWMgYmF1eGl0ZSBtYSB0cm9u ZyBtb2kgZGlhIGhhdCBraGFpIHRoYWMgaGFtIG1vLiBCYXkgZ2lvIG5nYXkgY2EgdGhhbiBudWEs IFRydW5nIA0KUXVvYyBjdW5nIGtob25nIGNvbiBtdW9uIGxhbSBuaHVuZyBjYWkgbW8gZ2F5IHRh YyBoYWkgbW9pIHRydW9uZyByYXQgbG9uLCBtYSBobyBjaHUgDQp0cnVvbmcgbXVhIHRoYW5nIHNh biBwaGFtIHR1IG51b2MgbmdvYWkuIA0KDQpUcm9uZyBsYW5oIHZ1YyBiYXV4aXRlLCBuZXUgaG8g c2FuIHh1YXQgdHJvbmcgbnVvYyB0aGkgY3VuZyBiaSBoZSBxdWEgbW9pIHRydW9uZy4gDQpCYXV4 aXRlIHRoaSBjdW5nIGtob25nIGNvIGhpZXUgcXVhIGtpbmggdGUgY2FvIHNvIHZvaSBuaHVuZyBu dW9jIGtoYWMuIFRhaSBjYWMgcXVvYyBnaWEgDQpraGFjLCBjb25nIG5naGUgY2FvIGhvbiB2YSBu YW5nIHN1YXQgcmF0IHRvdCwgZ2lhIHRoYW5oIGJhdXhpdGUgbGFpIHJhdCB0aGFwLCBkbyBkbyBU cnVuZyANClF1b2MgZGEgY2h1eWVuIGh1b25nLCB0aGF5IHZpIHR1IGtoYWkgdGhhYyBsYW0gbnVv YyBobyBwaGFpIGdhbmggY2hpdSB0YWMgaGFpIG1vaSANCnRydW9uZyByYXQgbG9uLCB0aGkgaG8g bmhhcCBhbHVtaW5hIHR1IG51b2MgbmdvYWksIG5oYXQgbGEgbyBuaHVuZyBudW9jIGNvIGNvbmcg bmdoZSANCmNhbyBuaHUgVWMgaGF5IGxhIE15Lg0KDQpDb24gbmh1bmcgY2FpIGNvbmcgbmdoZSBj dSBjdWEgaG8sIGhvIGNobyB4dWF0IGtoYXUgbmh1bmcgdGh1IGRvIHF1YSBuaHVuZyBudW9jIG1h IA0KbHVhdCB2ZSBtb2kgdHJ1b25nIHJhdCBsb25nIGxlbywgdGhpIGR1IG5odSBsYSBWaWV0IE5h bSwgaGF5IEluZG9uZXNpYSBob2FjIGxhIG5odW5nIA0KbnVvYyBjbyBxdXkgdHJpbmggZGFuaCBn aWEgbW9pIHRydW9uZyByYXQgeWV1LiBEbyBsYSBrZSBob2FjaCBtYSBUcnVuZyBRdW9jIGRhIHRp ZW4gDQpoYW5oIHR1IG5oaWV1IG5hbSBuYXkgcm9pLiANCg0KNi8gVHJ1bmcgUXVvYyB4dWF0IGto YXUgY29uZyBuZ2hlIGN1ICBxdWEgVmlldCBOYW0NCg0KRHVuZyB2YXksIGNvbmcgbmdoZSBjdWEg VHJ1bmcgUXVvYyBsYSBjb25nIG5naGUgY3UsIG5oYXQgbGEgdmFuIGRlIGx1eWVuIGFsdW1pbmEu IA0KUXVhIHRyaW5oIGx1eWVuIGJhdXhpdGUgcmEgbmhvbSBubyBjbyBoYWkgY29uZyBkb2FuIDog dGh1IG5oYXQgbGEgbHV5ZW4gYWx1bWluYSwgcm9pIHR1IA0KYWx1bWluYSBtb2kgbHV5ZW4gbmhv bS4gTHV5ZW4gbmhvbSBjYW4gZGllbiByYXQgbmhpZXUuIFZpZXQgTmFtIGhpZW4gbmF5IGNoaSBj byANCmx1eWVuIGFsdW1pbmEgbWEgdGhvaS4gQ29uZyBuZ2hlIGhpZW4gbmF5IFZpZXQgTmFtIGR1 bmcgZGUgbHV5ZW4gYWx1bWluYSBsYSBjdWEgDQpUcnVuZyBRdW9jLCBkbyBsYSBjb25nIG5naGUg Y3UuIA0KDQpDb25nIG5naGUgeHUgbHkgY2hhdCB0aGFpIGN1bmcgbGEgY29uZyBuZ2hlIGN1LCB0 dWMgbGEgY29uZyBuZ2hlICIgdW90ICIgZGUgeHUgbHkgYnVuIGRvIA0KdGhheSB2aSBjb25nIG5n aGUga2hvLiBDb25nIG5naGUga2hvIGNobyBwaGVwIGdpYW0gbm9uZyBkbyBjdWEgc291ZGUgdmEg aG9hbiBsYWkgY2hhdCANCnNvdWRlIG5oaWV1IGhvbiBsYSBjb25nIG5naGUgdW90LiBUaGVtIG51 YSBsYSB0cm9uZyBxdWEgdHJpbmggbHV5ZW4gYWx1bWluYSwgY29uZyBuZ2hlIA0KY2FvIGR1bmcg ZGllbiByYXQgY28gaGlldSBxdWEsIGNobyBuZW4gZ2lhIHRoYW5oIG5vIHNlIHJhdCB0aGFwLCBj b24gY29uZyBuZ2hlIGN1IGhpZW4gDQpuYXkgZHVuZyBkaWVuIGhpZXUgcXVhIHRoYXAsIGNobyBu ZW4gZ2lhIHRoYW5oIHJhdCBjYW8NCg0KNy8gQmFpIGhvYyBraW5oIG5naGllbSB0dSBIdW5nYXJ5 OiBwaGFpIGx1b25nIHRydW9jIHRpbmggaHVvbmcgeGF1IG5oYXQNCg0KVmFuIGRlIHF1YW4gdHJv bmcgbmhhdCBjdWEgVmlldCBOYW0gbGEgY2h1YSB1b2MgdGluaCBkdW9jIGxhIG5ldSB4YXkgcmEg c3UgY28gdmUgbW9pIA0KdHJ1b25nIHRoaSB0YWkgaGFpIHNlIGxhIGJhbyBuaGlldS4gS2hpIGto b2kgc3UgYmF0IGN1IG1vdCBjb25nIHRyaW5oIG5hbywgbmd1b2kgdGEgbHVjIG5hbyANCmN1bmcg cGhhaSBkYW5oIGdpYSB0YWMgaGFpIGtoaSB4YXkgcmEgdHJ1b25nIGhvcCB4YXUgbmhhdC4gTyBW aWV0IE5hbSwgaGF1IG5odSBraG9uZyANCmNvIG1vdCBjYWkgZGFuaCBnaWEgbmFvIG5odSB2YXku IA0KDQpEbyBsYSB2YW4gZGUgbWEgdG9pIG5naGkgbGEgYmFpIGhvYyBsb24gbmhhdCBtaW5oIGNv IHRoZSBob2MgZHVvYy4gS2hvbmcgYmFvIGdpbyBjaHUgDQpxdWFuIG5vaSByYW5nIGxhIGtobyBj byB0aGUgeGF5IHJhIHN1IGNvLiBWYW4gZGUga2hvbmcgcGhhaSBraG8geGF5IHJhIGhheSBraG9u ZywgbWEgbGEgDQpuZXUgY28geGF5IHJhIHRoaSB0YWMgaGFpIHNlIG5odSB0aGUgbmFvLiBIaWVu IG5heSBjaHVhIGNvIG1vdCBjb25nIHRyaW5oIG5naGllbiBjdXUgcm8gDQpyYW5nLCBkZSB4ZW0g dGFjIGhhaSBkZW4gZGF1IGtoaSB4YXkgcmEgc3UgY28uIFZhbiBkZSBoZSBxdWEgY3VhIHZ1IHZv IGRlIGJ1biBkbyBvIA0KSHVuZ2FyeSBsYSBiYWkgaG9jIG1hIGNodW5nIHRhIHBoYWkgcXVhbiB0 YW0uIA0KDQpOZ29haSB2YW4gZGUga2luaCB0ZSB2YSBtb2kgdHJ1b25nIGNvbiBjbyB2YW4gZGUg eGEgaG9pLCB2YW4gZGUgcXVvYyBwaG9uZyBudWEuIENobyANCm5lbiBuZXUgbmhpbiB2ZSB0b25n IHRoZSwgZHUgYW4gVGF5IE5ndXllbiBsYSBtb3QgZHUgYW4gaG9hbiB0b2FuIGtob25nIG5lbiBs YW0sIG1vdCANCmR1IGFuIGRpZW4gcm8gbWEgdGhlbyB5IGtpZW4gY3VhIHRvaSwgY2hpIG5odW5n IG5ndW9pIHRhYyB0cmFjaCBtb2kgY28gdGhlIGtob25nIG5naGUgDQpkdW9jIHRpZW5nIG5vaSBj dWEgYmFvIG5oaWV1IG5ndW9pIHZhIG5oYSBraG9hIGhvYyBkYSBsZW4gdGllbmcuIFF1b2MgaG9p IFZpZXQgTmFtIGRhIA0KbmV1IGxlbiB2YW4gZGUgbmF5IG5odW5nIGtob25nIHRoZSBuYW8gZ2lh aSBxdXlldCBkdW9jIG5ldSBraG9uZyBjbyBxdXlldCBkaW5oIHR1IGNhcCANCmxhbmggZGFvIGNh byBuaGF0Lg0KDQo4LyBCYXV4aXRlIFRheSBOZ3V5ZW4gbGEgbW90IHF1YSBib20gbm8gY2hhbSBj byB0aGUgYnVuZyBsZW4gYmF0IGN1IGx1YyBuYW8NCg0KTmhhIG1heSBUYW4gUmFpLCB2YSBzYXUg bmF5IGxhIG5oYSBtYXkgTmhhbiBDbywgbmV1IGRpIHZhbyBob2F0IGRvbmcgc2UgZGUgbGFpIGNh aSANCmNoYXQgdGhhaSBidW4gZG8gbmFtIG8gZG8gY29pIG5odSBsYSBzdW90IGRvaS4gS2hvbmcg YmFvIGdpbyBtaW5oIGNvIHRoZSBjaGFjIGNoYW4gcmFuZyANCmtob25nIGJhbyBnaW8geGF5IHJh IHN1IGNvLiBDaG8gbmVuIGNhaSB0YWMgaGFpIHR1IGhlIHF1YSB4YXUgbmhhdCBjaHVhIGJhbyBn aW8gZHVvYyANCm5naGllbiBjdXUgaG9hYyBsYSB0aWVuIGRvYW4gcmEgc2FvIHRyb25nIGNhaSBk dSBhbiBuYXkuIA0KDQpUaGVvIHRvaSwgZGF5IGxhIG1vdCBkaWV1IHRhYyB0cmFjaCByYXQgbG9u IHZpIHRhIGtob25nIHRoZSBraGFuZyBkaW5oIHJhbmcgc3UgY28ga2hvbmcgDQp0aGUgeGF5IHJh LiBLaGkgdGhpIGhhbmggbW90IGR1IGFuLCB0YSBwaGFpIGx1b24gbHVvbiBkYXQgY2F1IGhvaSBs YSBuZXUgeGF5IHJhIHRpbmggaGluaCANCnhhdSBuaGF0IHRoaSB0YWMgaGFpIHNlIHJhIHNhby4g RG8gY2hpbmggbGEgY2F1IGhvaSBtYSBvIGJhdCBjdSBub2kgbmFvIGtoYWMsIG5ndW9pIHRhIGRl dSANCmRhdCByYSB0cnVvYyBraGkgdGh1YyBoaWVuIG1vdCBkdSBhbiwgdHJ1b2Mga2hpIHRpZXAg dHVjIGNvbmcgdHJpbmguIE5odW5nIFZpZXQgTmFtIGRhIA0Ka2hvbmcgbGFtIG5odSB2YXkuIENo byBuZW4gdG9pIG5naGkgbGEgdmllYyB0aGFuaCBsYXAgaGFpIG5oYSBtYXkgbHV5ZW4gYmF1eGl0 ZSBvIFRheSANCk5ndXllbiBoaWVuIG5heSBtb3QgcXV5ZXQgZGluaCByYXQgc2FpIGxhbS4gDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAyMDIy NDEwOC5hc3B4IFZhbiBLaG9hIDIwLzEwLzIwMTAgMjI6NDEgDQoNClRodSB0dW9uZzogVmkgbW9p IHRydW9uZywgVWMgaHV5IGR1IGFuIGJhdXhpdGUgIA0KDQooQW5oOiBCYW5nIFF1ZWVuc2xhbmQg LSBVYyBjaGFwIG5oYW4gbWF0IG1vdCBkdSBhbiBiYXV4aXRlIGxvbiBkZSBiYW8gdmUgc29uZyAN CldlbmxvY2sgLSBBbmg6IFdpbGRlcm5lc3Mub3JnLmF1KSANCg0KTW90IGNvbmcgdHkga2hhaSBr aG9hbmcgVWMgYnVvYyBwaGFpIGh1eSBkdSBhbiBraGFpIHRoYWMgYmF1eGl0ZSBraG9uZyBsbyBz YXUga2hpIA0KY2hpbmggcXV5ZW4gYmFuZyBRdWVlbnNsYW5kIG1vIHJvbmcga2h1IGJhbyB0b24g c2luaCB0aGFpLiANCg0KTmdheSA0LjYuMjAxMCwgY2hpbmggcXV5ZW4gYmFuZyBRdWVlbnNsYW5k IGN1YSBVYyB0dXllbiBibyBkdWEgdnVuZyBMdXUgdnVjIHNvbmcgDQpXZW5sb2NrIHRyZW4gYmFu IGRhbyBDYXBlIFlvcmsgdmFvIGRpZW4gZHVvYyBiYW8gdG9uIHRoZW8gTHVhdCBCYW8gdmUgY2Fj IGNvbiBzb25nIA0KdHUgbmhpZW4uIFRoZW8gZG8sIHRvYW4gYm8ga2h1IHZ1YyBjbyBiYW4ga2lu aCA1MDBtIHRpbmggdHUgdnVuZyBsdXUgdnVjIHNvbmcgc2UgdHJvIA0KdGhhbmgga2h1IGJhbyB0 b24gc2luaCB0aGFpIGRvIGNoaW5oIHBodSBiYW8gdmUuIE5nYXkgc2F1IGRvLCBDb25nIHR5IGto YWkga2hvYW5nIENhcGUgDQpBbHVtaW5hIGNhbmggYmFvIHF1eWV0IGRpbmggdHJlbiBzZSBhbmgg aHVvbmcgdG9pIGR1IGFuIGtoYWkgdGhhYyBiYXV4aXRlIGNvIHZvbiBkYXUgdHUgDQp0cmkgZ2lh IDEgdGkgQVVEIChob24gMTkgbmdhbiB0aSBkb25nKS4gSGFuZyB0aW4gQUJDIGRhbiBzbyBsaWV1 IHR1IGNvbmcgdHkgdW9jIHRpbmggZHUgDQphbiBzZSB0YW8gMS4wMDAgdmllYyBsYW0gY2hvIGRh biBkaWEgcGh1b25nIHRyb25nIHF1YSB0cmluaCB4YXkgZHVuZyB2YSAzNTAgdmllYyBsYW0gDQps YXUgZGFpIHNhdSBraGkgbmhhIG1heSBkaSB2YW8gaG9hdCBkb25nLiBDYXBlIEFsdW1pbmEgZGEg ZGUgbmdoaSBjaGluaCBxdXllbiBnaWFtIA0KYmFuIGtpbmggbm9pIHRyZW4gdHUgNTAwbSB4dW9u ZyBjb24gMzAwbSBuaHVuZyBraG9uZyBkdW9jIGNoYXAgdGh1YW4uIFNhdSBraGkgeGVtIA0KeGV0 IG11YyBkbyBhbmggaHVvbmcsIGNvbmcgdHkgZGFuaCBnaWEgc2FuIGx1b25nIGJhdXhpdGUgc2Ug Z2lhbSA0NSUgc28gdm9pIGR1IGtpZW4uIA0KVmFvIG5nYXkgMTguMTAsIENhcGUgQWx1bWluYSB0 dXllbiBibyBodXkgZHUgYW4ga2hhaSB0aGFjIGJhdXhpdGUsIHRoZW8gaGFuZyB0aW4gQUFQLg0K DQpRdXlldCBraG9uZyBuaHVvbmcgYm8NCg0KTmd1b2kgZHVuZyBkYXUgU28gVGFpIG5ndXllbiBi YW5nIFF1ZWVuc2xhbmQgU3RlcGhlbiBSb2JlcnRzb24gbGEgbmd1b2kgZGEgYmFjIGRlIA0Kbmdo aSBnaWFtIGJhbiBraW5oIGtodSBiYW8gdG9uIGN1YSBDYXBlIEFsdW1pbmEuIEFCQyBkYW4gbG9p IG9uZyBjaG8gaGF5OiAiVG9pIGRhIA0KZGljaCB0aGFuIGRlbiBxdWFuIHNhdCBzb25nIFdlbmxv Y2sgdmEgbmhhbiB0aGF5IG1vaSB0cnVvbmcgbyBkbyBjYW4gZHVvYyBiYW8gdmUgDQpuZ2hpZW0g bmdhdCIuICJLaG9uZyBwaGFpIHRhdCBjYSBuaHVuZyBnaSBjaHVuZyB0b2kgbGFtIGRldSBuaGFu IGR1b2Mgc3UgdW5nIGhvIDEwMCUgDQp0dSBuZ3VvaSBkYW4gbmh1bmcgY28gcmF0IG5oaWV1IG5n dW9pIHBoYW4gZG9pIHZpZWMga2hhaSB0aGFjIGJhdXhpdGUgZ2FuIHNvbmciLiBEYXZpZCANCkNs YXVkaWUsIG1vdCBjaHUgZGF0IHRyb25nIGtodSB2dWMgYmF5IHRvOiAiS2hpIGRlbiBraGFpIHRo YWMgbW8sIGNvbmcgdHkgc2UgZG9uIHNhY2ggDQptb2kgdGh1IHRyZW4gbWF0IGRhdC4gTHVjIGRv LCBjYWMgbG9haSBjaGltIHRodSBzZSBzb25nIG8gZGF1PyBDaHVhIGtlIGFuaCBodW9uZyBjdWEg DQpubyBkb2kgdm9pIGhlIHNpbmggdGhhaSBjdWEgY29uIHNvbmcuIFRhdCBjYSBjaGkgdmkgdGll biIuIA0KDQoiVGhpIHRyYW4gV2VpcGEgKGN1bmcgdGh1b2MgQ2FwZSBZb3JrIC0gTlYpIGNvIG1v IGJhdXhpdGUgbG9uIG5oYXQgdGhlIGdpb2ksIG5odW5nIA0Ka2hvbmcgY28gY29uZyBkb25nIGxv biBuYW8gbyBkbyBkdW9jIGNhaSB0aGllbiB2ZSBuZ3VvbiB0aHUga2luaCB0ZSB2YSBkb2kgc29u ZyB4YSBob2kuIA0KVGh1YyB0ZSBjaG8gdGhheSBuZ2FuaCBraGFpIGtob2FuZyBraG9uZyBtYW5n IGxhaSBsb2kgaWNoIGNobyBjYWMgY29uZyBkb25nIGJhbiB4dS4gDQpDYWMgY29uZyB0eSBobyBk ZW4gaHVhIGhlbiBkdSB0aHUsIHBoYSBodXkgbW9pIHRydW9uZyBkaWEgcGh1b25nIHJvaSByYSBk aSB2b2kgbW90IA0KbW8gdGllbiIgLSBTdGVwaGVuIFJvYmVydHNvbiwgbmd1b2kgZHVuZyBkYXUg U28gVGFpIG5ndXllbiBiYW5nIFF1ZWVuc2xhbmQNCg0KU2F1IGtoaSB0dXllbiBibyBodXkgYm8g ZHUgYW4sIEdpYW0gZG9jIGRpZXUgaGFuaCBQYXVsIE1lc3NlbmdlciBjdWEgQ2FwZSBBbHVtaW5h IA0KY2hvIHJhbmcgUXVlZW5zbGFuZCBkYSBkYW5oIG1hdCAxLDIgdGkgQVVEIGdpYSB0cmkgdHUg Y2FjIGhvYXQgZG9uZyBraW5oIHRlIG1vaSB2YSANCmhhbmcgdHJhbSBjb25nIHZpZWMgY2hvIGNv bmcgZG9uZyBtaWVuIHRheSBiYW4gZGFvIENhcGUgWW9yaywgdGhlbyBBQVAuIERhcCBsYWksIA0K b25nIFJvYmVydHNvbiBsYXAgbHVhbjogIlRoaSB0cmFuIFdlaXBhIChjdW5nIHRodW9jIENhcGUg WW9yayAtIE5WKSBjbyBtbyBiYXV4aXRlIA0KbG9uIG5oYXQgdGhlIGdpb2ksIG5odW5nIGtob25n IGNvIGNvbmcgZG9uZyBsb24gbmFvIG8gZG8gZHVvYyBjYWkgdGhpZW4gdmUgbmd1b24gdGh1IA0K a2luaCB0ZSB2YSBkb2kgc29uZyB4YSBob2kuIFRodWMgdGUgY2hvIHRoYXkgbmdhbmgga2hhaSBr aG9hbmcga2hvbmcgbWFuZyBsYWkgbG9pIGljaCANCmNobyBjYWMgY29uZyBkb25nIGJhbiB4dS4g Q2FjIGNvbmcgdHkgaG8gZGVuIGh1YSBoZW4gZHUgdGh1LCBwaGEgaHV5IG1vaSB0cnVvbmcgDQpk aWEgcGh1b25nIHJvaSByYSBkaSB2b2kgbW90IG1vIHRpZW4iLiANCg0KUGhhbiBsb24gY29uZyBk YW4gbWFuZyBjdWEgVWMgY3VuZyB1bmcgaG8gcXV5ZXQgZGluaCBub2kgdHJlbiBjdWEgY2hpbmgg cXV5ZW4gDQpRdWVlbnNsYW5kLiBUcmVuIHRyYW5nIENhaXJucy5jb20uYXUsIG1vdCBuZ3VvaSB0 ZW4gSmFtZXMgTWFyc2RlbiB2aWV0OiAiQ29uZyB2aWVjIA0KY3VhIGNoaW5oIHBodSBsYSBiYW8g ZGFtIHZ1bmcgZGF0IG5heSBjaG8gY2FjIHRoZSBoZSBzYXUgaHVvbmcgdGh1LiBOZ2hpIGRlbiB0 dW9uZyANCiBsYWksIG1vaSBuZ3VvaSBjbyB0aGUgdGhheSByYW5nIGNvbmcgdHkga2hhaSB0aGFj IG1vIHNlIGxheSBkaSBtb2kgdmUgZGVwIHZhIHRhaSANCm5ndXllbiBjdWEga2h1IHZ1YyByb2kg cmEgZGkgY2hhbmcgZGUgbGFpIGdpIGNobyBjaHVuZyB0YSIuIA0KDQpUcm9uZyBraGkgZG8sIG5o aWV1IG5ndW9pIGRhbiBDYXBlIFlvcmsgY2hpIHRyaWNoIEx1YXQgQmFvIHZlIGNhYyBjb24gc29u ZyB0dSBuaGllbiwgDQpjaG8gcmFuZyBjaGluaCBxdXllbiBjdW9wIGRpIHF1eWVuIHF1eWV0IGRp bmggc3UgZHVuZyBkYXQgY3VhIGhvLCB0aGVvIEFCQy4gUGV0ZXIgDQpHdWl2YXJyYSwgbmd1b2kg ZHVuZyBkYXUgdGhpIHRyYW4gTWFwb29uLCBtaWVuIHRheSBDYXBlIFlvcmssIGNobyBiaWV0IGNh Y2ggZGF5IDIgDQpuYW0sIGhhdSBoZXQgbmd1b2kgZGFuIGRldSBwaGFuIGRvaSBkdSBhbiBjdWEg Q2FwZSBBbHVtaW5hIG5odW5nIHNhdSBkbyBobyBkYSANCnRoYXkgZG9pIG5oYW5oIGNob25nIHNh bmcgdW5nIGhvLiAiTHkgZG8gY2h1IHlldSBsYSB2aSB2aWVjIGxhbSIsIG9uZyBHdWl2YXJyYSBu b2kuIA0KQUJDIGhvbSBxdWEgZGFuIGxvaSBtb3Qgc28gcXVhbiBjaHVjIGNoaW5oIHF1eWVuIHRo aSB0cmFuIFdlaXBhIGxvIG5nYWkgcmFuZyBzZSBjbyANCm5oaWV1IGNvbmcgdHkga2hhYyB0aGVv IGNoYW4gQ2FwZSBBbHVtaW5hIG1vdCBraGkgbmhpZXUgY29uIHNvbmcga2hhYyB0cm9uZyANCmto dSB2dWMgZHVvYyBjaGluaCBxdXllbiBRdWVlbnNsYW5kIGR1YSB2YW8gZGllbiBiYW8gdG9uLg0K DQpDaGllbiB0aGFuZyBsb24gY2hvIG1vaSB0cnVvbmcNCg0KQmF0IGNoYXAgbmh1bmcgcGhhbiBk b2kgdHJlbiwgVGh1IGhpZW4gUXVlZW5zbGFuZCBBbm5hIEJsaWdoIHR1eWVuIGJvIGJhIGtob25n IGhlIA0KaG9pIHRpZWMgdmkgZHUgYW4ga2hvbmcgbG8gY3VhIENhcGUgQWx1bWluYSBiaSBodXku IFRoZW8gYmEsIHZpZWMgbmF5IGxhIG1vdCB0aGFuZyBsb2kNCiBsb24gY2hvIG1vaSB0cnVvbmcg dmEgdGhlIGhlIHR1b25nIGxhaS4NCg0KVHJhbmcgdGluIE1pbmluZ3dlZWtseS5jb20gZGFuIGxv aSBvbmcgUm9iZXJ0c29uIGdpYWkgdGhpY2ggcmFuZyBMdWF0IEJhbyB2ZSBjYWMgY29uIA0Kc29u ZyB0dSBuaGllbiBuaGFtIGJhbyB2ZSBuaHVuZyBwaGFuIHRoaWVuIG5oaWVuIG5ndXllbiB0aHV5 IGN1YSBiYW5nIHZhIGtodSB2dWMgDQpiYW8gdG9uIHh1bmcgcXVhbmggc29uZyBXZW5sb2NrIHZh IGNhYyBjb24gc3VvaSBsaWVuIHF1YW4gc2Uga2hvbmcgdGhheSBkb2kuIE9uZyANCm5oYW4gbWFu aCBsdWF0IG5heSBnaXVwIGNhbiBiYW5nIHZpZWMgYmFvIHZlIGRpIHNhbiB0dSBuaGllbiBjaG8g Y2FjIHRoZSBoZSBzYXUgdmEgc3UgDQpwaGF0IHRyaWVuIGJlbiB2dW5nLiAiQ2h1bmcgdGEgY28g bmh1bmcgZGFvIGx1YXQgdmUgbW9pIHRydW9uZyBuZ2hpZW0ga2hhYyBuaGF0IHRoZSANCmdpb2kg dmkgY2h1bmcgdGEga2hvbmcgbXVvbiB0aGF5IG1vaSB0cnVvbmcgYmkgcGhhIGhvYWkgZG8gcGhh dCB0cmllbiBjb25nIG5naGllcCANCmhheSBraGFpIHRoYWMgbW8iLCBvbmcgbm9pLg0KDQpRdXll dCBkaW5oIGh1eSBkdSBhbiBiYXV4aXRlIGNvIHRoZSBsYSBtb3QgdG9uIHRoYXQgbG9uIGRvaSB2 b2kgQ2FwZSBBbHVtaW5hLiBUdXkgDQpuaGllbiwgcGhhdCBuZ29uIHZpZW4gVG8gY2h1YyBob2Fu ZyBkYSBRdWVlbnNsYW5kIEdsZW5uIFdhbGtlciBjdW5nIGNobyByYW5nIA0KZG8gbGEgbW90IGNo aWVuIGNvbmcgdHJvbmcgdmllYyBnaXUgZ2luIG1vaSB0cnVvbmcgdGhpZW4gbmhpZW4uIEFBUCBk YW4gbG9pIG9uZyANCldhbGtlciBwaGFuIGtob2k6ICJUaW4gbW8gYmF1eGl0ZSBvIENhcGUgWW9y ayBraG9uZyBob2F0IGRvbmcgbnVhIGxhIHRpbiB0b3QuIERheSBsYSANCm1vdCB0cm9uZyBuaHVu ZyB0aGFuaCBjb25nIGxvbiBuaGF0IHZlIGNvbmcgdGFjIGJhbyB2ZSBtb2kgdHJ1b25nIG8gUXVl ZW5zbGFuZCIuIA0KT25nIGNobyBiaWV0IHRydW9jIGRvIENvbmcgdHkgQ2FwZSBBbHVtaW5hIGRl IG5naGkgc2FuIGJhbmcgcGhhbiBsb24gbmh1bmcga2h1IA0KcnVuZyBiYWNoIGRhbiB0cm9uZyBr aHUgdnVjLCB2b24gbGEgbm9pIHNpbmggc29uZyBjdWEgbmhpZXUgbG9haSBkb25nIHZhdCBob2Fu ZyBkYS4gDQpPbmcgV2Fsa2VyIG5oYW4gZGluaCBuZXUgZHUgYW4gYmF1eGl0ZSB0cmVuIHZhbiBk dW9jIHRpZXAgdHVjIHRodWMgaGllbiwgbm8gc2UgYW5oIA0KaHVvbmcgY2FjIGtodSB2dWMgY3Vh IHNvbmcsIG1vaSB0cnVvbmcgc29uZyBjdWEgbW90IHNvIGxvYWkgY2EgcXV5IGhpZW0uIA0KDQpU aGVvIGNhYyB0byBjaHVjIG1vaSB0cnVvbmcsIGx1dSB2dWMgc29uZyBXZW5sb2NrIGJhbyBwaHUg a2hvYW5nIDcuNDM1IGttMiB2YSBjbyBzbyBsdW9uZyBsb2FpIGNhIG51b2MgbmdvdCBsb24gbmhh dCBvIFVjLiANCg0KaHR0cDovL3ZucjUwMC52bi8yMDEwLTEwLTI1LXF1b2MtaG9pLWNhbi1jby1w aGFuLWhvaS12ZS1kdS1hbi1iby14aXQgVGFjIGdpYTogQ2FvIE5oYXQgLSBMYW4gQW5oICAyNS8x MC8yMDEwIDEyOjI4IEdNVCs3DQoNCkNoaW5oIHBodSwgUXVvYyBob2kgY2FuIGNvIHBoYW4gaG9p IHZlIGR1IGFuIGJvLXhpdCANCg0KVElOIExJRU4gUVVBTg0KKiBEdSBhbiBiby14aXQgVGF5IE5n dXllbiB2dWEgbG8gbmFuZywgdnVhIG8gbmhpZW0gDQoqIER1IGFuIGJvLXhpdCBUYXkgTmd1eWVu OiBUaWVwIGhheSBkdW5nPw0KKiAiQWMgbW9uZyIgYnVuIGRvOiBUcm9uZyBuZ3VvaSBsYWkgbmdh bSBkZW4gdGENCiogIkNvbiBhYyBtb25nIiBidW4gZG86IEJhaSBob2MgY2F5IGRhbmchIA0KDQoo Vk5SNTAwKSAtIERhaSBiaWV1IFF1b2MgaG9pIE5ndXllbiBMYW4gRHVuZyB2YSBQaGFtIFRoaSBM b2FuLCBOZ3V5ZW4gTWluaCANClRodXlldCBkZXUgYmF5IHRvIHN1IHF1YW4gdGFtLCBsbyBuZ2Fp IHZlIGR1IGFuIGJvLXhpdCBUYXkgTmd1eWVuLCBkYWMgYmlldCBraGkgbW9pIA0KZGF5LCBjYWMg bmhhbiBzaSB0cmkgdGh1YyBkYSBjdW5nIGt5IHRlbiB2YW8gYmFuIGtpZW4gbmdoaSB0YW0gZHVu ZyBraGFpIHRoYWMsIGtoaSB0cmFvIA0KZG9pIHZvaSBiYW8gZ2lvaSBiZW4gaGFuaCBsYW5nIFFI IHNhbmcgMjUvMTAuIA0KDQpHUy4gTmd1eWVuIExhbiBEdW5nIChEQlFIIERha0xhayk6IEtob25n IGRvbmcgdGluaCB2b2kgInRyYW4gYW4iIGN1YSBsYW5oIGRhbyBCbyBDb25nIFRodW9uZyANCg0K VG9pIGRhIGRvYyBiYW4ga2llbiBuZ2hpIGRvLCBuaGlldSBiYW4gYmUgdGhhbiB0aGlldCBjdWEg dG9pIGN1bmcgZGEgZGF0IGJ1dCBreSB1bmcgaG8uIA0KVG9pIGN1bmcgcmF0IGJhbiBraG9hbiBv IGNobyBsYSBuaGlldSB5IGtpZW4gYmFvIGNodW5nIHRhIGxhbSBuaHVuZyBraG9uZyBjbyBsYWks IA0Ka2hvbmcgY28gbGFpIHRoaSBsYW0gZ2k/IE5ldSBjbyBsYWkgbmhpZXUgdGhpIG1pbmggY29u IGNvIGx5IGRvIGxhbSBuZ2F5IGNodSBraG9uZyBjbyBsYWkgDQp0aGkgdG9pIGtob25nIGhpZXUg bGFtIGRlIGxhbSBnaT8hDQoNClRvaSBjdW5nIHNlIGNoYXQgdmFuIEJvIHRydW9uZyBCbyBDb25n IFRodW9uZywgdmkgbW90IHNvIHkga2llbiBsYW5oIGRhbyBvIEJvIG5heSANCmJhbyBsYSBWaWV0 IE5hbSBraGFjIEh1bmdhcnkgdmkgVmlldCBOYW0gY28gdGh1bmcgbHVuZy4NCk5odW5nIGhvIHF1 ZW4gbGEgdGh1bmcgbHVuZyBvIHRyZW4gY2FvLCBjbyByYXQgbmhpZXUgZGEgdm9pLCBkYSB2b2kg dGFuIHRyb25nIG51b2MsIGJ1biANCmRvIGNvIGtoYSBuYW5nIHNlIG5nYW0geHVvbmcgbWFjaCBu dW9jIG5nYW0sIG1hIG5nYW0geHVvbmcgbnVvYyBuZ2FtIHRoaSBubyBjaGF5IA0KeHVvbmcgY2Eg RG9uZyBiYW5nIE5hbSBCbywgcXVhIG5ndXkgaGllbSENCg0KKEFuaDogR1MgTmd1eWVuIExhbiBE dW5nLiBBbmg6IFZpZXROYW1OZXQpDQoNCk5nb2FpIHJhLCBEb25nIE5hbSBCbyBjdW5nIGRhbmcg YmkgZGUgZG9hIGJvaSBoaWVuIHR1b25nIGRhbmcgbGVuIGN1YSBtdWMgbnVvYyANCmJpZW4uIFZp IHRoZSwgdHVvbmcgbGFpIHZ1bmcgbmF5IHNlIGRvaSBkaWVuIG5oaWV1IG5ndXkgY28gLSBtYSBk YXkgbGFpIGxhICB2dWEgbHVvbmcgdGh1YyANCmN1YSBjYSBudW9jIC0gbmVuIHJhdCBkYW5nIHBo YWkgcXVhbiB0YW0uDQoNClRoYW0gaG9hIHhheSByYSBvIEh1bmdhcnkgbGFtIHRvaSByYXQgc3V5 IG5naGkgdmkgaG8gZGEgY28gaG9uIDMwIG5hbSBraW5oIG5naGllbSB2YSANCnZhbiBwaGFpIGNo aXUgdGhhbSBob2Egbmh1IHRoZSwgbm9pIGdpIGRlbiBtaW5oLiBWaSB2YXkgbmd1eSBjbyB4YXkg cmEgdGhhbSBob2EgZG9pIHZvaSANCm1pbmggbGEgaG9hbiB0b2FuIGNvIGtoYSBuYW5nIHhheSBy YS4NCg0KRG9jIGJhbiBraWVuIG5naGkgdG9pIHRoYXkgY28gZHUgY28gc28sIGhvbiAxLjUwMCBu Z3VvaSBreS4gVG9pIG5naGkgc2UgbmhpZXUgaG9uIG51YSANCnRyb25nIHRob2kgZ2lhbiB0b2ku IEhvIGRldSBsYSBuaHVuZyBuZ3VvaSByYXQgdXkgdGluIG5odSBuZ3V5ZW4gUGhvIENodSB0aWNo IG51b2MgDQpOZ3V5ZW4gVGhpIEJpbmgsIGNhYyBsYW8gdHVvbmcsIGNhYyBsYW8gdGhhbmggY2Fj aCBtYW5nLCBkb25nIGRhbyB0cmkgdGh1YyB0cm9uZyB2YSANCm5nb2FpIG51b2MsIGtlIGNhIEdT LiBOZ28gQmFvIENoYXUuLi4gdGhpIGNoYWMgY2hhbiBsYW5oIGRhbyBEYW5nIHZhIENoaW5oIHBo dSBraG9uZyANCnRoZSBraG9uZyB4ZW0geGV0IGtpZW4gbmdoaSBkby4NCg0KTmdheSBjYSBRdW9j IGhvaSBjdW5nIHJhdCBxdWFuIHRhbSB2YSB0b2kgbmdoaSBsYSBRdW9jIGhvaSBjdW5nIG5lbiBj byBwaGFuIGhvaSwgbmh1bmcgDQp0aHVjIHN1IHRyb25nIGhvYW4gY2FuaCBuaHUgbHVjIG5heSB0 cmEgbG9pIG5odSB0aGUgbmFvIGN1bmcgbGEgYmFpIHRvYW4ga2hvIHZpIG1vaSB0aHUgDQpkYSBr eSBrZXQgdmEgZGFuZyB0cmllbiBraGFpIGhldCByb2kuDQoNClkga2llbiBjYSBuaGFuIGN1YSB0 b2kgdGhpIHRvaSBtdW9uIFF1b2MgaG9pIHNlIGNvIHRoYW8gbHVhbiB2YSByYSBtb3QgTmdoaSBx dXlldCBtb2ksIA0Kbmh1bmcgdG9pIGN1bmcga2hvbmcgY2hhYyBsYSBkZSBuZ2hpIG5heSBjbyBk dW9jIGtob25nLiBUaGVvIHRvaSBiaWV0LCB0cm9uZyBjaHVvbmcgDQp0cmluaCBreSBuYXkgc2Ug Y28gdGhhbyBsdWFuLCB2YSBuZXUgdHJvbmcgdHJ1b25nIGhvcCBraG9uZyBjbyB0aGFvIGx1YW4g dGhpIHNlIGNvIHBoYXQgDQpiaWV1IHRhaSBob2kgdHJ1b25nLiBDaGFjIGNoYW4gY28gdG9pIHRy b25nIHNvIG5odW5nIG5ndW9pIGRvLg0KDQpEYWkgYmlldSBQaGFtIFRoaSBMb2FuIChEQlFIIEhh IE5vaSk6ICBEYXUgdHUgbG9uIG5odW5nIGhpZXUgcXVhIGtpbmggdGUgbmdoZSByYSBraG9uZyB0 dW9uZyB4dW5nDQoNClZlIGtoaWEgY2FuaCB0cmFjaCBuaGllbSB2b2kgZGF0IG51b2MgdGhpIGFp IGN1bmcgbG8gbGFuZy4gVmEgbmh1bmcgbmd1b2kgY3VuZyBreSB0ZW4gDQpndWkga2llbiBuZ2hp IGd1aSBsZW4gbGFuaCBkYW8gRGFuZyB2YSBOaGEgbnVvYyBsYSBuaHVuZyBuZ3VvaSByYXQgY28g dHJhY2ggbmhpZW0gdmUgDQpzdSBwaGF0IHRyaWVuIGN1YSBkYXQgbnVvYy4NCg0KVmUgY2h1eWVu IG5heSwgY2EgbmhhbiB0b2kgY28gbW90IHNvIGxvIGxhbmcsIG5odSBkdSBhbiBraGFpIHRoYWMg Ym8teGl0IGN1YSBjaHVuZyB0YSANCmRhdSB0dSBsb24gbmh1bmcgaGlldSBxdWEga2luaCB0ZSBu Z2hlIHJhIGtob25nIHR1b25nIHh1bmcuDQoNCihBbmg6IERCUUggUGhhbSBUaGkgTG9hbi4gQW5o OiBWaWV0TmFtTmV0KSANCg0KTmdvYWkgcmEsIHJ1aSBybyBjdW5nIHJhdCBsYSBsb24gdmkgbmh1 bmcgbnVvYyBuaHUgSHVuZ2FyeSBjbyBraW5oIG5naGllbSBraGFpIHRoYWMgdHUgDQpyYXQgbGF1 IHJvaSBtYSB2YW4gcGhhaSBjaGl1IHRoYW0gaG9hIG5odSB2YXkgdGhpIG1pbmggY3VuZyBwaGFp IGNvIG5odW5nIHN1eSB4ZXQgcmF0IA0KbmdoaWVtIHR1YyB2ZSBzdSBkYXUgdHUgZG8uIA0KDQpW aSB2YXksIGNodW5nIHRhIG5lbiB4ZW0gbGFpIHF1eSBtbyB2YSBtdWMgZG8gZGF1IHR1IG5odSB0 aGUgbmFvLCB2YSBwaGFpIHJhIHNvYXQgbGFpIHZlIA0KbWF0IGt5IHRodWF0IGRlIHhlbSBkYXUg dHUgdGhlIG5hbyBjaG8gdHVvbmcgeHVuZy4NCg0KVG9pIGN1bmcgY2hvIHJhbmcsIGtob25nIHBo YWkgYmF5IGdpbyBRdW9jIGhvaSByYSBOZ2hpIHF1eWV0IHJvaSB0aGkgbWluaCBjdSBkYXUgdHUg YW8gDQphdCwgbGFtIGxvbiB0aGkgdGhlbyBxdWFuIGRpZW0gY3VhIHRvaSBjdW5nIGNhbiBwaGFp IGNhbiBuaGFjIGxhaSBzdXkgeGV0IGNobyB0aGF1IGRhby4NCg0KTmV1IGNvIGNoYW5nIG51YSB0 aGkgdGhlbyB0b2ksIGN1bmcgbmVuIHRpbmggZGVuIHF1eSBtbyB2YSBsYW0gdGh1IHRoZSBuYW8g ZG8sIGxhbSBkYW4gDQpkYW4sIG1pbmggbW8gcm9uZyBzYXUsIGhheSBkZSBkYW5oIGNobyBjb24g Y2hhdSBjbyBjb25nIG5naGUgdG90IGhvbiBsYW0gY3VuZyBraG9uZyANCm11b24uDQoNCkhvbiBu dWEgbGEgdHJvbmcgdGluaCBoaW5oIGRhdCBudW9jIGNvbiBuaGlldSBraG8ga2hhbiwgZGFuZyBr aGFuIGhpZW0gdmUgZG9uZyB2b24gDQpuaHUgaGllbiBuYXkgdGhpIG5lbiBjaGFuZywgY2h1bmcg dGEgY3VuZyBwaGFpIHV1IHRpZW4gbmh1bmcgZHUgYW4gY28gaGlldSBxdWEga2luaCB0ZSANCmNv IHRoZSBuaGluIHRoYXkgZHVvYyBrZSBjYSB0cnVvYyBtYXQgdmEgbGF1IGRhaS4NCkNodW5nIHRh IGNhbiBwaGFpIHV1IHRpZW4gdm9uIGNobyBuaHVuZyBkdSBhbiBuaHUgdmF5IGhvbiBsYSBtYW8g aGllbSBjaG8gbmh1bmcgZHUgDQphbiByYXQgbG9uIG5odW5nIGhpZXUgcXVhIGtpbmggdGUgdGhp IHZhbiBkYW5nIGxhIG1vdCBjYXUgaG9pIGNodWEgZGF5IHJ1aSBybyB2YSB0aHVjIHN1IA0KbGEg dG9pIGtob25nIGRvbmcgdGluaC4NCg0KRGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0OiBDbyB0 aGUgaG9hbiBkdSBhbiBOaGFuIENvIA0KDQpUb2kgY2hvIHJhbmcsIERhbmcgdmEgTmhhIG51b2Mg bmVuIHRpZXAgbmhhbiBraW5oIG5naGllbSBjdWEgSHVuZ2FyeSB2YSBuZ2hpZW4gY3V1IA0KaGV0 IHN1YyBjYW4gdGhhbiwgZGFjIGJpZXQga2hpIGJhbiBraWVuIG5naGkgZG8gY3VhIGNhYyBuaGFu IHNpIHRyaSB0aHVjIGNvIGJhIE5ndXllbiBUaGkgDQpCaW5oIC0gbmd1eWVuIFBobyBDaHUgdGlj aCBudW9jIHZhIHJhdCBuaGlldSB0cmkgdGh1YyBoYW5nIGRhdSBWaWV0IE5hbSwgbmhpZXUgbmd1 b2kgDQpnaXUgY2h1YyB2dSBxdWFuIHRyb25nIGNoaW5oIHF1eWVuLCBuaGlldSBuaGEgY2h1eWVu IG1vbi4NCg0KSHVuZ2FyeSBsYSBudW9jIGNvbmcgbmdoaWVwIHBoYXQgdHJpZW4gY28ga2luaCBu Z2hpZW0ga2hhaSBraG9hbmcgY2hlIGJpZW4ga2hvYW5nIHNhbi4gDQpOaHVuZyBWaWV0IE5hbSBs YSBtb3QgbnVvYyBraSBuZ2hlIGNodWEgcGhhdCB0cmllbi4NCg0KVG9pIGJpZXQgY2h1IHRoYXUg c2UgbGEgbmd1b2kgdGhpZXQga2UgYnVuIGRvIGF5IG5lbiBtaW5oIHBoYWkgZ2lhbSBzYXQgdGhp ZXQga2UgeGVtIGNvIA0KZGFtIGJhbyBoYXkga2hvbmcsIHRodSBoYWkgbGEgZ2lhbSBzYXQgdGhp IGNvbmcgdmkga2kgbmdoZSB0aGkgY29uZyBoaWVuIG5heSB0dW9uZyBkb2kgDQp0b3QsIG5odW5n IGt5IGx1YXQgY2FuIGJvIGN1YSBtaW5oIHRyb25nIHRoaSBjb25nIGxhIGNodWEgdG90LiBSYXQg bmhpZXUgY29uZyB0cmluaCBxdWFuIA0KdHJvbmcgYmkgcnV0IHJ1b3QgbmVuIG5ldSBidW4gZG8g ZGUgeGF5IHJhIG5odSB2YXkgbnVhIHRoaSB2byBjdW5nIG5ndXkgaGllbS4NCg0KQmVuIGNhbmgg ZG8sIGN1bmcgcGhhaSB0aW5oIHRvYW4gdGhlbSBjaHV5ZW4ga2hhIG5hbmcgYnVuIGRvIHRyYW4g cmEgbmh1IHRoZSBuYW8uIFZpIA0KVGF5IE5ndXllbiBraGkgaGF1IGtoYWMgbmdoaWV0LCBtdWEg a2hvIGtob25nIGNvIGdpb3QgbXVhIG5hbywgbHVjIG11YSB0aGkgbXVhIHhvaSANCnhhIG5lbiBj YW4geGVtIHhldCB0cm9uZyBraGF1IHRoaWV0IGtlIHRpbmggZHVvbmcgdGhvYXQgY3VuZyBuaHUg bmh1bmcgZHVvbmcgdGhvYXQgDQpudW9jIG8gZGUgc29uZyBIb25nLiBOZXUgeGF5IHJhIHN1IGNv IG5odSB0aGUgdGhpIHBoYWkgbW8gY2hvIG5hbyByYSBkZSBpdCB0aGlldCBoYWkgbmhhdC4NCg0K aHR0cDovL3ZucjUwMC52bi8yMDEwLTEwLTI3LWR1LWFuLWJvLXhpdC10aGEta2hvbmctdmFuLWhh bmgtY29uLWhvbi0gVGFjIGdpYTogUGhhbSBIdXllbiAodGh1YyBoaWVuKQ0KDQpUaHUgdHVvbmc6 ICJEdSBhbiBiby14aXQgLSBUaGEga2hvbmcgdmFuIGhhbmggY29uIGhvbiIgDQoNCihWTlI1MDAp IC0gIk5ldSBiYXkgZ2lvIGxhbSB0aGkgc2FuZyBuYW0sIGhvIGJ1biBkbyBjdW5nIGtob25nIHZv IG5nYXkgZGF1LiBOaHVuZyANCmNvIHRoZSBtb3QgbmdheSBuYW8gZG8sIGNvbiBjaGF1IGNodW5n IHRhIHNlIGxpbmggZHUiLCBvbmcgTmd1eWVuIFZhbiBCYW4sIG5ndXllbiANClRydW9uZyBiYW4g ZHUgYW4gTmhvbSwgVG9uZyBjb25nIHR5IEtob2FuZyBzYW4sIGJheSB0byB2ZSBkdSBhbiBiby14 aXQgVGF5IE5ndXllbi4NCg0KLSBUaHVhIG9uZywgdHJ1b2Mga2llbiBuZ2hpIGR1bmcgZHUgYW4g Ym8teGl0IFRheSBOZ3V5ZW4gY3VhIGNhYyBuaGFuIHNpLCBsYW5oIGRhbyBUYXAgDQpkb2FuIFRo YW4gLSBLaG9hbmcgc2FuIChUS1YpLCBCbyBDb25nIFRodW9uZywgQm8gVGFpIG5ndXllbiBtb2kg dHJ1b25nIGRhIGtoYW5nIA0KZGluaCB2ZSB0aW5oIGhpZXUgcXVhIGR1IGFuIHZhIGRvIGFuIHRv YW4gY3VhIGhvIGNodWEgYnVuLiBPbmcgY28gc3V5IG5naGkgdGhlIG5hbyB2ZSANCmNhYyBjYXUg dHJhIGxvaSBkbz8NCg0KLSBPbmcgTmd1eWVuIFZhbiBCYW46IFRvaSBuZ2hpIHJhbmcsIGNhYyBu aGFuIHNpLCB0cmkgdGh1YyBjbyB5IGtpZW4gbmVuIGR1bmcgZHUgYW4gYm8tDQp4aXQsIGRvIGxh IG1vdCBkaWV1IGJhbiBraG9hbiBidWMgYm9pIHRyb25nIGdpb2kgdHJpIHRodWMsIGtob2EgaG9j LCBsbyBjaG8gdmFuIG1lbmggZGF0IA0KbnVvYyB2YW8gdGhvaSBkaWVtIHF1YW4gdHJvbmcgbmF5 Lg0KDQpIbyB0cmFuIHRybyBuaHVuZyBkdSBhbiBuaHUgdGhlIG5heSBraG9uZyBiaWV0IGNvIG1h bmcgbGFpIGR1b2Mga2luaCB0ZSBoYXkga2hvbmcsIG5ldSANCmNvIGxhIGJhbyBuaGlldSBuaHVu ZyBtYSBydWkgcm8geGF5IHJhIHRoaSB0aGlldCBoYWkgdm8gY3VuZyBsb24uIEJhbiBraG9hbiBh eSBsYSBkdW5nLg0KVHJ1b2Mgc3UgY28gdm8gaG8gYnVuIGRvIG8gSHVuZ2FyeSwgdG9pIHRoYXkg bGFuaCBkYW8gVEtWLCBCbyBDb25nIFRodW9uZyBsbyBsYW5nIA0KdmEgcmF0IHF1YW4gdGFtIGRl bi4NClR1eSBuaGllbiwgVGh1IHRydW9uZyBCbyBDb25nIFRodW9uZyBMZSBEdW9uZyBRdWFuZyBu b2kgaGF5IEJvIHRydW9uZyBCbyBUYWkgDQpuZ3V5ZW4gTW9pIHRydW9uZyBQaGFtIEtob2kgTmd1 eWVuIG5vaSwgaGF5IGJhdCBjdSBhaSBvIFRLViBwaGF0IGJpZXUsIHRoaSBuZ3VvaSANCmRhbiBz ZSBkZXUgZ2hpIG5oYW4gY2FjIGNhbSBrZXQgYXkuDQoNCk5odW5nIGtoaSBjYWMgb25nIGxhIG5o YSBxdWFuIGx5LCBkdSBuZ3VvaSBkYW4gY28gbmdoZSB0aGkgaG8gY3VuZyB2YW4gY3UgYmFuIGto b2FuLCANCmtob25nIGJpZXQgb25nIG5vaSB0aGUgdGhpIGNvIHNvIG5hbyBkZSBoaWV1LCBkZSB0 aW4/DQpUcm9uZyBraGksIGx1IG1pZW4gVHJ1bmcgdnVhIHhheSByYSwgY28gYWkgbHVvbmcgdHJ1 b2MgcmFuZyBtaWVuIFRydW5nIHNlIGJpIG5odSB2YXksIA0KY3VvbiBjYSBuaGEgbWF5IHRodXkg ZGllbiwgY2EgZGFwPyBLaG9uZyBhaSBkYW0gY2hhYyBkdW9jLCBkaWEgZGllbSB4YXkgZHVuZyBj YWMgaG8gDQpidW4gZG8sIHRyb25nIHR1b25nIGxhaSBraG9uZyB4YXkgcmEgbW90IHRyYW4gYmFv IGx1IG5odSBvIG1pZW4gVHJ1bmchIE1hIG5ldSBiYW8gbHUgDQp4YXkgcmEsIGNhYyBobyBidW4g ZG8gbmF5IGtob25nIHZvIHRoaSBjdW5nIGJpIHRyYW4uIFRyZW4gdGhlIGdpb2kgY3VuZyBkYSB4 YXkgcmEgZGlldSBheSANCm5odSBDYW5hZGEsIFVrcmFpbmEuDQoNCihBbmg6IE9uZyBOZ3V5ZW4g VmFuIEJhbiwgTmd1eWVuIFRydW9uZyBiYW4gZHUgYW4gTmhvbSwgVG9uZyBjb25nIHR5IEtob2Fu ZyBzYW4uIEFuaDogUGhhbSBIdXllbikgDQoNClRodWMgc3UgbWEgbm9pLCB0aGVvIHRvaSwgZGUg eWVuIGxvbmcgZHUgbHVhbiB4YSBob2ksIGtob25nIGdpIGJhbmcgdmllYyBjbyBtb3QgaG9pIGRv bmcgDQpraG9hIGhvYyB0aGFtIGRpbmggYmFvIGdvbSBjYWMgY2h1eWVuIGdpYSBkYXUgbmdhbmgg ZGFuaCBnaWEuIEtldCBsdWFuIGN1YSBob2kgZG9uZyANCnNlIHRyYSBsb2kgZHVvYyB0YXQgY2Eu IE5odSB2YXksIFRLViBkdW9jIGxvaSwgQ2hpbmggcGh1IGR1b2MgbG9pIHZhIGR1IGx1YW4geWVu IHRhbS4NCg0KQ29uIGdpbywgY2hvIGR1IHZpIGxhbmggZGFvIFRLViBoYXkgcXVhbiBjaHVjIG5h byBodWEsIGtoYW5nIGRpbmggdGhpIGR1IGx1YW4gdmFuIGN1IG5naGkgbmdvLg0KDQotIFRodWEg b25nLCB4aW4gb25nIG5vaSBybyBxdWFuIGRpZW0gY3VhIG9uZyB2ZSB2aWVjIG5lbiB0aWVwIHR1 YyBoYXkgZHVuZyBjYWMgZHUgYW4gYm8teGl0IFRheSBOZ3V5ZW4/DQoNClRoZW8gdG9pLCBDaGlu aCBwaHUgbmVuIHRoYW5oIGxhcCBtb3QgSG9pIGRvbmcga2hvYSBob2MgZG9jIGxhcC4gDQoNClZv aSBkdSBhbiBUYW4gUmFpLCBuZXUga2V0IHF1YSB0aGFtIHRyYSBjdWEgSG9pIGRvbmcgbmF5IGNo byB0aGF5IGFuIHRvYW4gdGhpIGNobyBuaGEgDQptYXkgVGFuIFJhaSBob2F0IGRvbmcsIG5ldSBr aG9uZyBhbiB0b2FuIHRoaSBiYXQgcGhhaSBsYW0gc2FvIGNobyBhbiB0b2FuLg0KVHV5IG5oaWVu LCB4ZW0geGV0IGt5IGx1b25nIHRoaSB0b2kgdGhheSBkdSBhbiBzZSByb2kgdmFvIHRpbmggdHJh bmc6IGRlIHRhbmcgZG8gYW4gdG9hbiANCnRoaSBzZSBwaGFpIGRhdSB0dSByYXQgbmhpZXUgdGll biwgdG9uZyBtdWMgZGF1IHR1IGR1IGFuIHRhbmcgbGVuIHZhIG5odSB2YXksIGhpZXUgcXVhIA0K a2luaCB0ZSB0dXQgeHVvbmcgdmEgY28ga2hpLCBraG9uZyBjbyBoaWV1IHF1YS4NCk1hIHRyb25n IHRydW9uZyBob3AgYXksIHZhbiBoYW5oIG5oYSBtYXkgbGEgImRvIiwgdmkgY2FuZyB2YW4gaGFu aCBzZSBjYW5nIGxvLiBUaGEga2hvbmcgdmFuIGhhbmggY29uIGhvbiENCg0KRG9pIHZvaSBkdSBh biBOaGFuIENvLCBjaGluaCBUS1YgZGEgY2hvIGJpZXQgcmFuZywgcnVpIHJvIGtpbmggdGUgbGEg bG9uLiBDaGluaCBUcnVvbmcgDQpiYW4gRHUgYW4gbmhvbSBoaWVuIG5heSBraGkgdHJpbmggQ2h1 IHRpY2ggSERRVCBUS1YsIGJheSBnaW8gbGEgb25nIERvYW4gVmFuIA0KS2llbiwgZGEgbmV1IHJh bmcsIGNoaSBjYW4gbW90IHZhaSBjaGkgcGhpIHRoYXkgZG9pLCB0aGkgZHUgYW4gbmF5IGRhIGto b25nIGNvIGhpZXUgcXVhLg0KDQpUaGUgbWEgc28gdm9pIFRhbiBSYWksIGR1IGFuIE5oYW4gQ28g bmF5IGNvIG5oaWV1IHZhbiBkZSBob24gIG5odSBkdW9uZyBzYSB4YSB4b2ksIA0KbmFtIG8gVGF5 IE5ndXllbiwgcm9pIG1vaSB0cnVvbmcuLi4gIER1IGFuICB0aW5oIGRlbiBuYXkgZ2FuIG5odSBj aHVhIGJhdCBkYXUsIG1vaSBjaGkgDQpzYW4gZ2F0IG1hdCBiYW5nIHRob2kuIE5ldSB0aGUsIG5l biBkdW5nIGR1IGFuIG5heS4NCkR1bmcgZHUgYW4gTmhhbiBDbyBvIHRob2kgZGllbSBuYXkgdGhp IHNlIGN1dSB2YW4gZHVvYyBuaGlldSB2ZSBtYXQga2luaCB0ZSwgY29uIGRlIA0KdGhpIGNvbmcg cm9pIG1hIGxhaSBkdW5nIHRoaSB0aGlldCBoYWkgcmF0IGxvbi4NCg0KQm8teGl0IGN1YSBtaW5o LCBjbyBuaGlldSB1dSBkaWVtIG5oYXQgZGluaCwgbmh1bmcgZG9uZyB0aG9pIGN1bmcgY28gbmh1 bmcgbmh1b2MgDQpkaWVtIG5oYXQgZGluaC4gQ28gbGUsIG5odW5nIG5ndW9pIGxhbSBkdSBhbiBj aGkgYmlldCBkYW5oIGdpYSB2ZSBuaHVuZyBjYWkgInV1IiBtYSB2ZSANCm5odW9jIGRpZW0sIGNo dWEgY2h1IHkgdmEgZGFuaCBnaWEgaGV0Lg0KDQooQW5oOiBEdSBhbiBibyB4aXQgVGFuIFJhaSBi aSBjaGFtIHRpZW4gZG8uIEFuaCBtaW5oIGhvYTogdnVzdGFyKSANCg0KLSBUcnVvYyBkYXksIHRp bmggaGlldSBxdWEga2luaCB0ZSBjdWEgZHUgYW4gYm8teGl0IGRhIGdheSB0cmFuaCBjYWkgbmhp ZXUgbmh1IGRhYyBkaWVtIA0KbW8gY28ga2hhaSB0cnVvbmcgbG9uLCBjaGF0IGx1b25nIHF1YW5n LCBwaHVvbmcgYW4gdmFuIGNodXllbiBwaHVjIHRhcC4uLiBEZW4gbmF5LCANCm5odW5nIHlldSB0 byBuYW8gY2hvIHRoYXkgbmhpbiBybyBydWkgcm8gdmUgbWF0IGtpbmggdGUgbyBkdSBhbiwgdGh1 YSBvbmc/DQoNCk5vaSB0b2kgZHUgYW4gVGFuIFJhaSwgYmFuIGRhdSwgY2hpIHNvIGhpZXUgcXVh IGtpbmggdGUgSVJSIGxhIHR1b25nIGRvaSB0b3QuIFR1eSBuaGllbiwgDQptdWMgZGF1IHR1IGhp ZW4gdGFuZyBsZW4gcmF0IG5oaWV1Lg0KTHVjIGRhdSwgVEtWIHRpbmggY2hpIGtob2FuZyB0cmVu IDYwMCB0cmlldSBVU0Qgcm9pIHNhdSBkbywgY2hpbmggb25nIERvYW4gVmFuIEtpZW4gDQpDaHUg dGljaCBUS1YgdGFpIGN1b2MgaG9wIG8gVmFuIHBob25nIFRydW5nIHVvbmcgRGFuZyBjbyBiYW8g Y2FvLCBsYSB0b25nIG11YyBkYXUgDQp0dSBkYSB0YW5nIGxlbiA3MTQgdHJpZXUgVVNELg0KDQpO aHVuZyBraGkgdGhvbmcgYmFvIGNobyBkb2FuIGNodXllbiBnaWEgY3VhIExpZW4gaGllcCBIb2kg a2hvYSBob2Mga3kgdGh1YXQgcmFuZywgYmFuIA0KZHUgYW4gY3VhIFRLViBkYSBjaG8gYmlldCwg Y29uIHNvIG5heSBkYSBsZW4gdG9pIGtob2FuZyA4MDAgdHJpZXUgVVNELg0KDQpRdWEgdGhlbyBk b2ksIHRvaSBkdW9jIGJpZXQgcmF0IG5oaWV1IGNoaSBwaGkgbyBkdSBhbiBuYXkgZGEgZGV1IHRh bmcgbGVuLCB2aSBkdSBuaHUgY2hpIA0KcGhpIGRlbiBidSB0cnVvYyBkYXkgbGEgMzAwIHRyaWV1 IGRvbmcvaGEsIG5heSwgY2hpbmggVEtWIGRhIHRob25nIGJhbyBkYSBsZW4gMSwyIHR5IA0KZG9u Zy9oYS4gTW8gY28ga2hhaSB0cnVvbmcgbG9uIG5lbiBwaGFtIHZpIGFuaCBodW9uZyBsb24sIGRp ZW4gdGljaCBkZW4gYnUgbmhpZXUuDQoNCktoYXUgdmFuIHRhaSB0aW5oIGJhbmcgb3RvLCBkdSBh biB0aW5oIGdpYSAxLjMwMCBkb25nL3Rhbi9rbSBtYSB0aHVjIHRlIGhpZW4gbmF5IGN1b2MgDQp2 YW4gdGFpIGRvIGRhIHRhbmcgZ2FwIGRvaSB2YSBzZSBjYW5nIG5nYXkgY2FuZyB0YW5nIHRoZW8g Z2lhIHhhbmcgZGF1Lg0KDQpSbyByYW5nIGtoaSB0b25nIG11YyBkYXUgdHUgdGFuZyBsZW4gdGhp IGhpZXUgcXVhIGtpbmggdGUgc2UgZ2lhbSBkaSB2YSBydWkgcm8gbGEgcmF0IGxvbi4NCg0KQmVu IGNhbmggZG8sIGR1IGFuIGNoYW0gdGllbiBkby4NCg0KVGhlbyBob3AgZG9uZyBFUEMgdm9pIFRy dW5nIFF1b2MsIG5oYSBtYXkgYWx1bWluIFRhbiBSYWkgZ2lvIGRhIHBoYWkgaG9hbiB0aGFuaC4g DQpWYSBkYW5nIGxlLCBraGF1IG1vIHR1eWVuIGl0IG5oYXQgY3VuZyBwaGFpIGhvYW4gdGhhbmgg dHJ1b2MgNS02IHRoYW5nIGRlIHR1eWVuIHJhIHRpbmggDQpxdWFuZyB2YSBkdW5nIHRpbmggcXVh bmcgYXkgY2hheSB0aHUgbmhhIG1heSBhbHVtaW4uDQpSYXQgdGllYyByYW5nLCBkZW4gbmF5LCBu aGEgbWF5IGFsdW1pbiB2YW4gY2h1YSB4b25nLCBkdSBraWVuIHBoYWkgMS0yIHRoYW5nIG51YSBt b2kgDQp4b25nLiBOaHVuZyBkYWMgYmlldCwga2hhdSBkYW5nIGxlIHBoYWkgeG9uZyBzb20gbGEg bW8gdHV5ZW4gY3VuZyBjaHVhIHhvbmcgdmEgY28gDQpraGEgbmFuZyBjb24gY2hhbSBob24gY2Eg bmhhIG1heSBhbHVtaW4uDQoNClZhIG5odSB2YXksIG5oYSBtYXkgYWx1bWluYSB4b25nIHRydW9j LCBzZSBwaGFpIG5hbSBjaG8gdmEgY3UgbW9pIG1vdCB0aGFuZyBjaG8sIHZvaSANCnRvbmcgc28g dGllbiBkYXUgdHUgbG9uLCBwaGFpIHRyYSBsYWksIG1hdCBpdCBuaGF0IDYtNyB0cmlldSBVU0Qv dGhhbmcuDQoNClRhdCBjYSBuaHVuZyB2aWVjIGF5IGxhbSBjaG8gZHUgYW4gbWF0IHRpbmgga2hh IHRoaS4gVGF0IG5oaWVuIGxhLCBkZW4gdGhvaSBkaWVtIG5heSwgDQpraG9uZyBhaSBjaG8gYmll dCBybyBjaGluaCB4YWMgY29uIHNvIGxhIGJhbyBuaGlldS4gQ28gbGUsIHBoYWkgY2hvIGRlbiBt b3QgbmdheSwgbmd1b2kgDQp0YSB0aGFtIGRpbmgsIGtpZW0gdG9hbiBkdSBhbiwgbW9pIGNvIHRo ZSBiaWV0IGNoYWMgY2hhbiB0b25nIG11YyBkYXUgdHUgdmEgaGlldSBxdWEgbGEgDQpyYSBzYW8u IE5odW5nIGtoYSBuYW5nIHJ1aSBybyBsYSByYXQgbG9uLg0KDQotIExvaSBuaHVhbiBsYSB5ZXUg dG8gaGFuZyBkYXUgZG9pIHZvaSBtb3QgZG9hbmggbmdoaWVwLiBOaHUgb25nIG5vaSwgY2hpbmgg VEtWIGRhIA0KY2hvIGhheSBkdSBhbiBOaGFuIENvIGNvIHJ1aSBybyB2ZSBraW5oIHRlLCB0aGUg bWEgVEtWIHZhbiBxdXlldCB0YW0gbGFtLiBPbmcgY28gDQpkYW5oIGdpYSB0aGUgbmFvIHZlIHN1 IG1hdSB0aHVhbiBraG8gaGlldSBuYXk/DQoNCkRvIGxhIG1vdCBjYXUgaG9pIHBodWMgdGFwIGhp ZW4gbmF5LiBObyBjdW5nIGdpb25nIG5odSBWaW5hc2hpbiB0YWkgc2FvIGxhaSBkbyB2bywgbGFp IA0KY2hpbSBuaHUgaGllbiBuYXk/IEJhaSB0b2FuIGtpbmggdGUgbGEgcXVhbiB0cm9uZyBuaGF0 IGN1YSBtb3QgdGFwIGRvYW4gbmh1bmcgdGFwIGRvYW4gDQpheSBjbyBjb2kgbmh1IHZheSBraG9u Zz8NClRoZW8gdG9pLCBjYWkgInF1eSB0YWMiIHRyZW4gdGhpIGNoaSBkdW5nIHZvaSBUYXAgZG9h biBraW5oIHRlIHR1IG5oYW4sIHRpZW4gdm9uIGRvIGhvIGJvIA0KcmEgdGhpIGhvIGxvIGRvbmcg dGllbiBheSBzdSBkdW5nIHNhbyBjaG8gaGlldSBxdWEuIERvbmcgdGllbiBkaSBsaWVuIHZvaSBr aHVjIHJ1b3QsIGtoaSANCnRpZW4gdm9uIGtob25nIHBoYWkgY3VhIGFuaCB0aGkgc2Uga2hhYy4N ClZvaSBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgdGhpIHJhdCBwaHVjIHRhcC4gQmFvIGNoaSBoYXkg Z29pIGxhIGxvaSBpY2ggbmhvbS4gDQpLaG9uZyBjaGkgbnVvYyBtaW5oLCBrZSBjYSBBbmgsIE15 IGhheSBjYWMgbnVvYyB0dSBiYW4gcGhhdCB0cmllbiwgbmV1IGxhIG1vdCB0YXAgZG9hbiANCk5o YSBudW9jIHNhdSBtb3QgdGhvaSBnaWFuIHZhbiBoYW5oIGtob25nIHRvdCB0aGkgY3VvaSBjdW5n IGhvIGRhbmggcGhhaSBiYW4gZGksIHR1IG5oYW4gaG9hIGRpLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ0LzIwMTAxMDI3MDAyODEzLmFzcHggVGhhbmgg VGhhbyAyNy8xMC8yMDEwIDA6MjggDQoNClRodSB0dW9uZzogIkJvbSBidW4gZG8gdHJlbyBjYW8i ICANCiAgDQpWdSBWaW5hc2hpbiBjb24gY2h1YSBkdW9jIGxhbSBzYW5nIHJvIGNobyByYSBuZ28g cmEga2hvYWksIHRoaSB2aWVjIFRhcCBkb2FuIFRoYW4gliANCmtob2FuZyBzYW4gVk4gKFRLVikg dHJpZW4ga2hhaSBkdSBhbiBraGFpIHRoYWMgYmF1eGl0ZSBvIE5oYW4gQ28gdmEgVGFuIFJhaSBk YW5nIA0KdGh1YyBzdSBnYXkgYnVjIHh1YyB0cm9uZyBkdSBsdWFuIG5oYW4gZGFuIGNhIG51b2Mg dmUgcmF0IG5oaWV1IG1hdC4gDQoNCkJ1YyB4dWMgZGF1IHRpZW4gbGEgdmUgbW9pIHRydW9uZy4g Q28gbmhpZXUgbmd1b2kgZGEgdmkgdmllYyB4YXkgZHVuZyBuaHVuZyBobyBjaHVhIA0KYnVuIGRv IHRyZW4gVGF5IE5ndXllbiBsYSB0YW8gcmEgbmh1bmcgcXVhICJib20gYnVuIGRvIHRyZW8gY2Fv IiBraG9uZyBiaWV0IHNlICJubyIgDQpsdWMgbmFvPyBEdSBUS1YgaGF5IG9uZyBCbyB0cnVvbmcg Qm8gVGFpIG5ndXllbiAtIE1vaSB0cnVvbmcgY28gbmhpZXUgbGFuIGtoYW5nIA0KZGluaCBuaHVu ZyBobyBjaHVhIGJ1biBkbywgbG9haSBjaGF0IHRoYWkgdW90ICJjb24gbmd1eSBoaWVtIGhvbiBj YSBkaW94aW5lIiB0cmVuIFRheSANCk5ndXllbiBsYSAiYW4gdG9hbiB2ZSBseSB0aHV5ZXQiLCBu aHVuZyBhaSBjdW5nIGJpZXQsIHR1IGx5IHRodXlldCB0b2kgdGh1YyB0ZSBsYSBjYSBtb3QgDQpr aG9hbmcgY2FjaCBuaGlldSBraGkga2hvbmcgc2FuIGxhcCBub2ksIGtob25nIGx1b25nIGhldCBk dW9jISANCg0KVGhvbmcgdGh1b25nLCB0aGFpIGRvIGRvaSB2b2kgdGFpIG5ndXllbiBraG9hbmcg c2FuIGN1YSBtb3QgcXVvYyBnaWEsIGxhICJjaHVhIGtoYWkgDQp0aGFjIHRoaSB2YW4gY29uIG5n dXllbiBkYXkiLCBuYW8gY28gYWkgZ2lhbmggZ2lhdCBnaSB2b2kgbWluaCBkZSBwaGFpIHZvaSB2 YW5nISBOZXUgdGhlIA0KaGUgbmF5IGNodW5nIHRhIGNodWEgZHUgY2hhdCB4YW0sIGNodWEgZHUg dHJpbmggZG8ga2hvYSBob2MgdmEgcGh1b25nIHRpZW4ga3kgdGh1YXQgY2FvIA0KZGUga2hhaSB0 aGFjIHRoYW5oIGNvbmcgYmF1eGl0ZSBtYSBiYW8gZGFtIGtob25nIGdheSByYSBiYXQgY3Ugc3Ug Y28gbmFvIHRvbiBoYWkgbW9pIA0KdHJ1b25nLCB0aGkgdGhhaSBkbyB0b3QgbmhhdCBsYTogY3Ug Z2l1IG5ndXllbiBoaWVuIHRyYW5nIGNhYyBtbyBiYXV4aXRlIGF5IGNobyBjYWMgdGhlIGhlIA0K c2F1IGdpb2kgZ2lhbmcgaG9uLCBjbyBuaHVuZyBwaHVvbmcgdGllbiBreSB0aHVhdCBjYW8gaG9u LCBraGFpIHRoYWMuIA0KDQpOZ2F5IFRydW5nIFF1b2MgbGEgbW90IG51b2MgY28gdGllbSBuYW5n IGN1YyBsb24gdmUga2hvYW5nIHNhbiwgbWEgdHUgbGF1IG5heSBobyB2YW4gDQphbSB0aGFtIGRp IG11YSBuZ3V5ZW4gbGlldSB0aG8gdHUgcmF0IG5oaWV1IGxvYWkga2hvYW5nIHNhbiB2ZSAiY2hh dCBjYW8gbmh1IG51aSIgbGFtIA0KImN1YSBkZSBkYW5oIi4gU2FvIGhvIGJpZXQgInRpY2ggY29j IHBob25nIGNvIiBuaHUgdGhlLCBjb24gY2h1bmcgdGEgbGFpIHZvaSB2YW5nICJiYW4gDQpsdWEg bm9uIiAtIHh1YXQgdGhvIG5ndXllbiBsaWV1IGtob2FuZyBzYW4ga2hhYyBuYW8gYmFuIGx1YSBu b24gLSB2dWEgdGh1IGR1b2MgaXQgdGllbiANCnZ1YSBsYW0gbG8gcmEgbmh1bmcgbmd1eSBjbyBu aGFuIHRpZW4gdmUgbyBuaGllbSBtb2kgdHJ1b25nPyANCg0KUXVhIGJhbyBjYW8gdGhhbSBkaW5o IGN1YSBCbyBDb25nIHRodW9uZyB2YSB5IGtpZW4gY2h1eWVuIGdpYSwgbmd1b2kgdGEgbW9pIGdp YXQgDQptaW5oIGtoaSBkb2MgZHVvYyBuaHVuZyB0aG9uZyBzbyB2ZSB4YXkgZHVuZyBkdSBhbiBi YXV4aXRlLCBjdSB0aGUgbGEgZHUgYW4gYmF1eGl0ZSANCk5oYW4gQ28sIHR1IGNoaW5oIG5odW5n IHBodW9uZyBhbiB0aW5oIHRvYW4gaGlldSBxdWEga2luaCB0ZSBjdWEgVEtWLiBDdSB0aGVvIGRv LCB0aGkgDQpuZ3V5IGNvIHRodWEgbG8gY3VhIGR1IGFuIG5heSBsYSByYXQgbG9uISANCg0KVHJv bmcga2hpIGxhbmggZGFvIFRLViBjdSBraGFuZyBraGFuZyBsYSAibGFpIHRvIiB0aGkgY2FjIGNv biBzbyBsYW5oIGx1bmcgbGFpIGNoaSByYSANCnJhbmcsIHJhdCBjbyB0aGUgc2UgeHVhdCBoaWVu IG1vdCAiVmluYXNoaW4gbW9pIiBjaGluaCBsYSBiYXV4aXRlIE5oYW4gQ28gdm9pIHZvbiB2YXkg DQp0cm9uZyBudW9jIHZhIG51b2MgbmdvYWkgY2hpZW0gODAlIHRyb25nIHRvbmcgc28gaGFuZyBu dWEgdGkgVVNEIHZhIGNvbiBob24gdGhlIG51YS4gDQpOaHUgdGhlLCB0cnVvYyBraGkgImJvbSBi dW4gZG8iIHRoYW5oIG5ndXkgY28gdHJ1YyB0aWVwLCB0aGkga2hvbmcgY2hpIHRhaSBuZ3V5ZW4g cXVvYyANCmdpYSBiaSBtYXQsIG1hIG5ndXkgY28gbm8gbmFuIGN1bmcgdHJlbyB0cnVvYyBtYXQg Y2h1bmcgdGEuIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzQwODUxOC9M YW0tRG9uZy1UYWktbmFuLXRhaS1tby1ib3hpdC1UYW4tUmFpLW1vdC1uZ3VvaS10dS1uYW4uaHRt bCBWTyBUUkFORyAgMzEvMTAvMjAxMCwgMTU6NTQgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBNbyBi b3hpdCBUYW4gUmFpLCBtb3Qgbmd1b2kgdHUgbmFuIJYgYmFuZyBjaHVuZyBybyByYW5nIHZlIHN1 IHRoaWV1IGFuIHRvYW4gDQogDQpUVE8gLSBWdSB0YWkgbmFuIGRhIHhheSByYSBsdWMgMTBnIHNh bmcgMzAtMTAgdGFpIGNvbmcgdHJ1b25nIHhheSBkdW5nIG5oYSBtYXkgYWx1bWluIA0KVGFuIFJh aSAoQmFvIExhbSwgTGFtIERvbmcpIGxhbSBtb3QgY29uZyBuaGFuIG1hbmcgcXVvYyB0aWNoIFRy dW5nIFF1b2MgY2hldCB0YWkgDQpjaG8uIA0KTmFuIG5oYW4gZHVvYyB4YWMgZGluaCBjbyB0ZW4g TGl1IEhhaSBVYSAoc2luaCBuYW0gMTk4NSksIGxhbSBuZ2hlIHRobyBoYW4gY2hvIGNvbmcgDQp0 eSBkYW5nIHRodWMgaGllbiB4YXkgZHVuZyBjb25nIHRyaW5oIG5oYSBtYXkgY2hlIGJpZW4gYWx1 bWluIHRhaSBtbyBib3hpdCBUYW4gUmFpLiANCg0KVGhlbyB0aW4gdHUgaGllbiB0cnVvbmcsIHZh byB0aG9pIGRpZW0gdHJlbiBuYW4gbmhhbiBkYW5nIHRodWMgaGllbiBjb25nIHZpZWMgY3VhIG5n dW9pIA0KdGhvIGhhbiB0cmVuIGRvIGNhbywgbmh1bmcga2hvbmcgY2hvIGJpZXQgcm8gZGFuZyBo YW4gY2hpIHRpZXQgZ2kgdGhpIGJhdCBuZ28gdHJ1b3QgY2hhbiANCnJvaSB4dW9uZyBkYXQgdmEg dHUgdm9uZyB0YWkgY2hvLiANCg0KTW90IGNhbiBibyBwaGFwIHkgdGluaCBMYW0gRG9uZyBkYSB4 YWMgbmhhbiB0aG9uZyB0aW4gdHJlbiBsYSBjaGluaCB4YWMsIGRvbmcgdGhvaSBjaG8gDQpiaWV0 IHRoZW0gbmdheSBzYXUga2hpIHRpZW4gaGFuaCBraGFtIG5naGllbSB0dSB0aGksIG5hbiBuaGFu IGRhIGR1b2MgZHVhIHZlIEJlbmggdmllbiANCkNobyBSYXkgZGUgbGFtIHRodSB0dWMgZHVhIHZl IG51b2MgbG8gaGF1IHN1Lg0KICANClkga2llbiBiYW4gZG9jOiANCkNhbiB4ZW0gbGFpIHRyYWNo IG5oaWVtIGFuIHRvYW4gDQpOZ3VvaSBUcnVuZyBRdW9jIGhheSBuZ3VvaSBWaWV0IE5hbSBjdW5n IGRldSBsYSBuZ3VvaSwgY2FuIGNoYXQgdmFuIHRyYWNoIG5oaWVtIHF1YW4gbHkgYW4gdG9hbiBj dWEgbmhhIHRoYXUuIA0KKFBoYW0gVmFuIENodW5nKSANCiANCmh0dHA6Ly93d3cudmlldG5hbW5l dC52bi9jaGluaHRyaS8yMDEwMTEvQm94aXQtZHVuZy1sYWktYmFuLXRoZW0tZGUta2hvbmctdHJh aS1sb25nLWRhbi05NDU1NzkvIFh1YW4gTGluaCAtIEFuaDogTGUgQW5oIER1bmcgMTM6NDksIDAy LzExLzIwMTAgKEdNVCs3KSANCg0KVGh1IHR1b25nOiBEdSBhbiBCb3hpdCBUYXkgTmd1eWVuIC0g RHVuZyBsYWksIGJhbiB0aGVtIGRlIGtob25nIHRyYWkgbG9uZyBkYW4gDQoNCi0gIlZpbmFzaGlu IGxhbSB0aGF0IHRob2F0IHRpZW4gYmFjIHZhIGNhbiBibywgY29uIGhhdSBxdWEgY3VhIGR1IGFu IGJveGl0LCBuZXUgeGF5IHJhLCB0aGkgDQpsaWVuIHF1YW4gZGVuIHZhbiBtZW5oIHF1b2MgZ2lh IiAtIERCUUggRHVvbmcgVHJ1bmcgUXVvYyBsZW4gdGllbmcgc2FuZyBuYXkgKDIvMTEpLCANCnRy b25nIG5nYXkgY3VvaSBjdW5nIFF1b2MgaG9pIHRoYW8gbHVhbiB2ZSBraW5oIHRlIC0geGEgaG9p Lg0KDQpCbyB0cnVvbmc6IFRvaSBub2kgZGUgUXVvYyBob2kgeWVuIHRhbQ0KDQpTYW5nIG5heSwg ZGFpIGJpZXUgUGhhbSBLaG9pIE5ndXllbiBjaHUgZG9uZyB4aW4gcGhlcCAicGhhdCBiaWV1IGRh aSB2ZSBtb3QgdmFuIGRlIA0KbG9uIiAtIGR1IGFuIGJveGl0LiBUcmVuIHR1IGNhY2ggbmd1b2kg ZHVuZyBkYXUgbmdhbmggVGFpIG5ndXllbiAtIE1vaSB0cnVvbmcsIG9uZyANCmtoYW5nIGRpbmgs IGJhbyBjYW8gZGFuaCBnaWEgdGFjIGRvbmcgbW9pIHRydW9uZyBkbyBUYXAgZG9hbiBUaGFuIC0g S2hvYW5nIHNhbiANCihUS1YpIGxhcCB2YSBkbyBCbyBjaHUgdHJpIHRvIGNodWMgSG9pIGRvbmcg dGhhbSBkaW5oLCAiZGEgbGFtIHJhdCBjdSB0aGUsIGtob2EgaG9jIHZhIA0KYmFvIGRhbSBkbyBh biB0b2FuIHZlIGhlIHRob25nIG1vaSB0cnVvbmciLg0KDQooQW5oOiBCbyB0cnVvbmcgVE5NVCBQ aGFtIEtob2kgTmd1eWVuOiBDaGkga2hhaSB0aGFjIG1heSBjaHVjIHRyaWV1IHRhbikNCg0KT25n IE5ndXllbiBuaGFuIG1hbmgsIGNhIGtodSBraGFpIHRoYWMgbW8sIGtodSB0dXllbiBxdWFuZywg aG9hdCBkb25nIGN1YSBuaGEgbWF5IA0KbGFuIGtodSBjaGF0IHRoYWkgLSB0dWMga2h1IGJ1biBk byBnYXkgbG8gbGFuZyBuaGlldSBuaGF0IC0gZGV1IHRoZW8gImNhYyB0aWV1IGNodWFuIGhpZW4g DQpkYWkgY3VhIHRoZSBnaW9pLCB2b2kgY2FjIGNoaSB0aWV1IHZlIG1vaSB0cnVvbmcgbmdoaWVt IG5nYXQgbmhhdCBjdWEgVmlldCBOYW0gdmEgY2FjIA0KeWV1IGNhdSBjYW4gZG9uZywgZG8gZGVt IG1hIHJhdCBjdSB0aGUgbGEgY28gc28ga2hvYSBob2MiLiANCg0KIlRvaSBub2kgbmh1IHRoZSBk ZSBRdW9jIGhvaSB5ZW4gdGFtIiwgYm9pIGJhbyBjYW8gZGFuaCBnaWEgdGFjIGRvbmcgbW9pIHRy dW9uZyBkYSANCmR1b2MgdGhhbSBkaW5oIHZvaSBjaGF0IGx1b25nIGNhbyBuaGF0LCBjbyBoYW4g aG9pIGRvbmcgMjEgbmd1b2ksIGxvbiBnYXAgMyBsYW4gY2FjIGhvaSANCmRvbmcgdGhhbSBkaW5o IGtoYWMuIFRyb25nIGRvIGNvIDE4IGdpYW8gc3UsIHRpZW4gc3ksIHZpZW4gdHJ1b25nLCB2aWVu IHBobywgZ2lhbSBkb2MgDQp0cnVuZyB0YW0ga2hvYSBob2MsIGhpZXUgdHJ1b25nLCBoaWV1IHBo byB0cnVvbmcgZGFpIGhvYy4NCg0KSG9pIGRvbmcga2hvYSBob2MgbmF5IGRhIGRpIG5naGllbiBj dXUgbyAzIG51b2M6IFVjIC0gbnVvYyBjbyBjb25nIG5naGUga2hhaSB0aGFjIA0KaGllbiBkYWkg bmhhdCB0aGUgZ2lvaSwgQnJhemlsIC0gZGlhIGhpbmgsIGRhYyB0aW5oIG1vIGdpb25nIFZpZXQg TmFtIHZhIFRydW5nIFF1b2MgLSBub2kgDQpjbyBjb25nIG5naGUgY2h1eWVuIGdpYW8gY2hvIFZp ZXQgTmFtLiBEaSBkZW4gZGF1IGRldSBjbyBxdWF5IHBoaW0sIGNodXAgYW5oIHZhIA0KbWFuZyB0 YWkgbGlldSB2ZSBkZSB0aGFtIGRpbmguIA0KDQpCbyB0cnVvbmcgUGhhbSBLaG9pIE5ndXllbiBj dW5nIHRpbSBjYWNoIHRyYW4gYW4gbW9pIGxvIGxhbmcgY3VhIGR1IGx1YW4gdmUga2hhIG5hbmcg DQpudW9jIGNoYXkgdmFvIGhvIGJ1biBkbywga2hhIG5hbmcgZHV0IGdheSBoYXkgdGhhbSB0aGF1 LiANCg0KT25nIGtoYW5nIGRpbmggVmllbiBraGkgdHVvbmcgdGh1eSB2YW4gZGEgZG8gZGFjLCBs dW9uZyB0cnVvYyBiaWVuIGRvaSBraGkgaGF1IGRlIA0Ka2hvbmcgZGUgbnVvYyB0cmFuIHZhbywg VmllbiB2YXQgbHkgZGlhIGNhdSB4YWMgZGluaCBkbyBkb25nIGRhdCB0b2kgZGEgZGVuIGNhcCA1 LCByb2kgDQpWaWVuIGRpYSBjaGF0IHZhIGtob2FuZyBzYW4gZGEgdGhlbyBkb2kga2h1IHZ1YyBo byBidW4gZG8gbmF5IGtob25nIGNvIGR1dCBnYXkuIA0KDQpWaSB0dSBsZW5oIG5nYW5oIGNobyBo YXksIGJhbyBjYW8gZGFuaCBnaWEgdGFjIGRvbmcgbW9pIHRydW9uZyBkYSBkYXQgdmFuIGRlIGR1 YSByYSBjYWMgDQpnaWFpIHBoYXAgY28ga2hhIG5hbmcgdm8gaG8sIHZvIGhvIHRoaSBsYW0gdGhl IG5hby4NCg0KSGllbiBuYXksIGRhbmcgeWV1IGNhdSBUS1YgdHJvbmcgQmFvIGNhbyBkYW5oIGdp YSB0YWMgZG9uZyBjdWEgbW9pIHRydW9uZyBkYSBkYW5oIHJhIA0KbW90IGRpZW4gdGljaCBraG9h bmcgNTAgaGEuIE5ldSBobyBjdW9pIGN1bmcgdm8gdGhpIHRvYW4gYm8gNTAgaGEgbmF5IHNlIGNo dWEuIA0KDQpPbmcgY3VuZyBjaG8gaGF5LCBoaWVuIEJvIGRhbmcgeWV1IGNhdSBUS1YgcGhhaSB4 ZW0geGV0IHZhIG5naGllbiBjdXUgZGUgcmEgZHVvYyANCmdpYWkgcGhhcCBhbiB0b2FuIG5oYXQs IHR1eWV0IGRvaSBraG9uZyBkZSBjaG8gYnVuIGRvIGRheSB0cmFuLg0KDQpCbyBjdW5nIHF1eWV0 IGRpbmggbGFwIHRvIGdpYW0gc2F0IFRLViB0aHVjIGhpZW4gZHVuZyB0aGVvIEJhbyBjYW8gZGFu aCBnaWEgdGFjIGRvbmcgDQptb2kgdHJ1b25nLiBUcnVvYyBzdSBjbyBidW4gZG8gSHVuZ2FyeSwg bW90IGRvYW4gc2UgZGVuIG51b2MgbmF5IHhlbSB4ZXQgdGF0IGNhIG1vaSANCnZhbiBkZS4gU2F1 IGNodXllbiBkaSwgc2UgcmEgc29hdCBsYWkgYmFvIGNhbyBkYW5oIGdpYSB0YWMgZG9uZyBtb2kg dHJ1b25nIHhlbSBjb24ga2hhdSANCm5hbyBjb24gaG8gdmEgY2h1YSBjaGluaCB4YWMsIGNvbiB0 aGlldSBzZSBibyBzdW5nLiANCg0KREIgRHVvbmcgVHJ1bmcgUXVvYzogQ2h1eWVuICJ2YW4gZGEg ZG9uZyB0aHV5ZW4iPyAgDQoNCiJDaHVhIHRodWMgc3UgYW4gbG9uZyIgdm9pIHBoYXQgYmlldSBj dWEgQm8gdHJ1b25nIE5ndXllbiwgb25nIER1b25nIFRydW5nIFF1b2MgZGF0IA0KZGF1IGhvaSB2 ZSBraG9hbmcgY2FjaCBnaXVhIGx5IHRodXlldCB2YSB0aHVjIHRpZW4uDQoNClRoZW8gb25nIFF1 b2MsIGNhdSBjaHV5ZW4gYm94aXQgVGF5IE5ndXllbiAidGhhcCB0aG9hbmcgY2F1IGNodXllbiBW aW5hc2hpbiwgY2F1IA0KY2h1eWVuIFRodSB0dW9uZyBraG9uZyBjaG8gcGhlcCBtYSBuZ3VvaSBk dW5nIGRhdSB2YW4gdGh1YyBoaWVuLCB2aSB0aGUga2hvbmcgdGhlIA0KbGFtIGFuIGxvbmcgZGFu Ii4gDQoNClZpIGRhbiBiaWV1IG5heSBraGFuZyBkaW5oIG1vaSBsbyBjdWEgY2FjIHRhbmcgbG9w IG5oYW4gZGFuIGxhIGNoaW5oIGRhbmcuIE5oaWV1IHRhbmcgDQpsb3AgbmhhbiBkYW4sIHRyb25n IGRvIGNhYyB2aSBsYW8gdGhhbmggY2FjaCBtYW5nIGNvIHV5IHRpbiwgY2FjIGN1dSBxdWFuIGNo dWMsIG5oYW4gc3kgDQp0cmkgdGh1YyB2YSBjYWMgdGFuZyBsb3AgbmhhbiBkYW4sIGRhYyBiaWV0 IGxhIGNhYyBuaGEgY2h1eWVuIG1vbiBsZW4gdGllbmcgbW90IGNhY2ggY28gDQp0cmFjaCBuaGll bSwgbmV1IHJhIG5odW5nIGdpYWkgcGhhcCB0aWNoIGN1YyBjbyB0aW5oLCBjbyBseSB2YSBzYW4g c2FuZyBobyB0cm8gY3VuZyBDaGluaCANCnBodSB0aHVjIGhpZW4gdG90IGhvbiBjaHVjIG5hbmcg Y3VhIG1pbmguIA0KDQooQW5oOiBEQiBEdW9uZyBUcnVuZyBRdW9jOiBRdW9jIGhvaSBsYSBjbyBx dWFuIHF1eWVuIGx1YyBjYW8gbmhhdCB0aGkgdHJhY2ggbmhpZW0gY3VuZyBwaGFpIGNhbyBuaGF0 KSANCg0KSG9uIG51YSwgIm5odW5nIHkga2llbiBtYW5nIHRpbmggY2hhdCBwaGFuIGJpZW4ga2hv YSBob2MgdmEgZGF5IHRyYWNoIG5oaWVtIGN1YSANCm5odW5nIG5ndW9pIHlldSBjYXUgcGhhaSBk dW5nIGhheSB4ZW0geGV0IGxhaSBkdSBhbiBib3hpdCBuZ2F5IGNhbmcgbmhpZXUgdmEgY28gc3Vj IA0KbmFuZyB0aHV5ZXQgcGh1Yy4gVHJvbmcga2hpIGRvLCB0cmEgbG9pIGN1YSBjYWMgcXVhbiBj aHVjIGNvIHRyYWNoIG5oaWVtIGN1YSBDaGluaCBwaHUgDQpsYWkgY2FuZyBib2MgbG8gbmh1bmcg dmFuIGRlIGRhbmcgbG8gbmdhaSBob24gdmUgaGlldSBxdWEga2luaCB0ZSwgdmUgc3UgdGhpZXUg ZG9uZyBibyANCmdpdWEgZHUgYW4ga2hhaSB0aGFjIHZhIGRpZXUga2llbiBoYSB0YW5nIGRlIHZh biBjaHV5ZW4sIHZlIHN1IGx1YSBjaG9uIGNvbmcgbmdoZSB2YSBkaWEgDQpkaWVtIGNoZSBiaWVu IHRvaSB1dSwgbmh1bmcgcnVpIHJvIHBodSB0aHVvYyB2YW8gdGhpIHRydW9uZyBudW9jIG5nb2Fp Ii4gDQoNClRyb25nIHRob2kgbHVvbmcgNyBwaHV0IGNobyBwaGVwLCBvbmcgRHVvbmcgVHJ1bmcg UXVvYyBkYSBiYXkgdG8gcXVhbiBkaWVtIHZlIA0Kbmh1bmcgdmFuIGRlIG1hIGJhbiBiYW8gY2Fv IGN1YSBDaGluaCBwaHUga2hvbmcgZGUgY2FwIHRvaSwgIm5vaSBkdW5nIGhvbiBsYSBsZSByYSAN CnBoYWkgZGUgY2FwIHRvaSIuIA0KDQpPbmcgZGF0IGNhdSBob2kgdGluaCBkZW4gbmdheSBob2Fu IHRhdCBiYW8gY2FvIHN1IGNvIHZvIGRhcCBidW4gZG8gbyBIdW5nYXJ5IGRhIGRpZW4gcmEgDQpk dW9jIG51YSB0aGFuZywgInN1IGNvIGRhIHhvaSBtb3QgdmFuIGRlIG1hIHRvYW4geGEgaG9pIHF1 YW4gdGFtIHZlIHN1IGFuIHRvYW4gbW9pIA0KdHJ1b25nIHZhIGhpZXUgcXVhIGtpbmggdGUgY3Vh IGR1IGFuIGJveGl0IG8gVGF5IE5ndXllbiIuIA0KDQpPbmcgUXVvYyBub2k6ICJLaG9uZyBsZSBD aGluaCBwaHUsIHRvaSBkdW5nIGNodSAidm8gY2FtIiBkZW4gbXVjIGtob25nIGhlIGRhIGRvbmcg DQp0cm9uZyBub2kgZHVuZyBiYW8gY2FvIHRydW9jIFF1b2MgaG9pIHZhIFF1b2MgaG9pIGN1bmcg a2hvbmcgeWV1IGNhdSBDaGluaCBwaHUgZ2lhaSANCnRyaW5oIHRydW9jIGhldCBkZSBsYW0gYW4g bG9uZyBkYW4sIHNhdSBudWEgdGhlIGhpZW4gdGluaCBuaGF5IGJlbiB2YSB0cmFjaCBuaGllbSBn aWFtIA0Kc2F0IHRodW9uZyB4dXllbiBjdWEgbWluaC4gTmd1b2kgZGFuIHF1YW4gc2F0IHRoYXkg ZHVvbmcgbmh1IGNhIFF1b2MgaG9pIHZhIENoaW5oIA0KcGh1IGRldSBjb2kgY2F1IGNodXllbiBi b3hpdCBkYSBsYSBjaHV5ZW4gInZhbiBkYSBkb25nIHRodXllbiIuIA0KDQpDb24gbmd1eWVuIHZl biB2YW4gZGUgYW4gbmluaCBxdW9jIHBob25nIA0KDQpUaGVvIERCIER1b25nIFRydW5nIFF1b2Ms IG5ndW9pIHR1bmcgZ3VpIHRodSBkZW4gQ2h1IHRpY2ggUUggdHJ1b2Mga3kgaG9wIGRlIG5naGkg DQpnaWFtIHNhdCBkdSBhbiBib3hpdCwgIm5odW5nIHZhbiBkZSBsaWVuIHF1YW4gZGVuIGFuIG5p bmggcXVvYyBwaG9uZyBvIG1vdCBraG9uZyBnaWFuIA0KY2hpZW4gbHVvYyBuaHUgVGF5IE5ndXll biB2YW4gY29uIG5ndXllbiB2ZW4iLiBOZ29haSByYSwgY29uIHBoYWkga2UgZGVuIGFuIHRvYW4g bW9pIA0KdHJ1b25nLCBuaGF0IGxhIHNhdSBzdSBjbyBidW4gZG8gbyBIdW5nYXJ5LiAgDQoNClRo ZW8gb25nLCBiYW8gY2FvIGN1YSBDaGluaCBwaHUgbGUgcmEgcGhhaSBjaHUgZG9uZyB0aGUgaGll biBxdWFuIGRpZW0gY3VhIG1pbmggZGUgDQp2dWEgdGhlIGhpZW4gc3UgbmhheSBiZW4gdm9pIHRo b2kgY3VvYywgc3UgdG9uIHRyb25nIHZvaSBkdSBsdWFuLCBzdSB0dSB0aW4gZG9pIHZvaSBjaGlu aCANCmtpZW4gY3VhIG1pbmgsIHN1IHNhbiBzYW5nIGRvaSB0aG9haSB2b2kgbmh1bmcgYnVjIHh1 YyBjdWEgbmhhbiBkYW4gdHJ1b2MgaGV0IGxhIGRlIGFuIA0KZGFuLCBzYXUgbnVhIGxhIGN1bmcg bmhhbiBkYW4gdGltIHJhIGdpYWkgcGhhcCB0b3QgbmhhdCB2aSBsb2kgaWNoIHF1b2MgZ2lhLiAN Cg0KUXVvYyBob2kgZGEgcGhhbiB0aWNoIHZhIHBoZSBwaGFuIG1hbmggbWUgdmUgc3UgY28gVGFw IGRvYW4gVmluYXNoaW4sIGRhIHRoYW5nIHRoYW4gDQpwaGUgYmluaCBUaHUgdHVvbmcgdmEgQ2hp bmggcGh1IG5odW5nIHN1IHR1IHBoZSBwaGFuIGN1YSBRdW9jIGhvaSB2YW4gY2h1YSB0dW9uZyAN Cnh1bmcgdm9pIHRyYWNoIG5oaWVtIGN1YSBRdW9jIGhvaSwgdHJvbmcgZG8gY28gbW9pIGRhaSBi aWV1IFF1b2MgaG9pLiBCb2kgbGUgUXVvYyBob2kgDQpsYSBjbyBxdWFuIHF1eWVuIGx1YyBjYW8g bmhhdCB0aGkgdHJhY2ggbmhpZW0gY3VuZyBwaGFpIGNhbyBuaGF0Lg0KDQoiQmFpIGhvYyB2ZSBz dSBkbyB2byBjdWEgVmluYXNoaW4gaG9hbiB0b2FuIGNvIHRoZSBzb2kgdmFvIGR1IGFuIGJveGl0 IG5ldSBjaHVuZyB0YSB1bmcgDQp4dSB2b2kgVmluYXNoaW4gYmFuZyBzdSBidW9uZyBsb25nIHF1 eWVuIGdpYW0gc2F0IFF1b2MgaG9pLCBibyBuZ29haSB0YWkgbmh1bmcgeSBraWVuIA0KZG9uZyBn b3AgY3VhIG5oYW4gZGFuIGtob25nIGxvYWkgdHJ1IHN1IGxhcCBsYWkuIFZpbmFzaGluIGxhbSB0 aGF0IHRob2F0IHRpZW4gYmFjIHZhIGNhbiANCmJvLCBoYXUgcXVhIGN1YSBkdSBhbiBib3hpdCBu ZXUgeGF5IHJhIGxpZW4gcXVhbiBkZW4gdmFuIG1lbmggY3VhIHF1b2MgZ2lhIi4NCg0KS2hhbmcg ZGluaCBuZXUgZGF0IGxvaSBpY2ggY3VhIGRhbiB0b2MgbGVuIGNhbyB0cmVuIGhldCB0aGkgbW9p IGtobyBraGFuIGtoYWMgbmdoaWV0IGRldSANCmNvIHRoZSB2dW90IHF1YSwgY28gdGhlIHRpbSB0 aGF5IHN1IGRvbmcgdGh1YW4sIGRpIGRlbiBuaHVuZyBxdXlldCBkaW5oIGR1bmcgY2FtIHZhIA0K c2FuZyBzdW90LCBvbmcgUXVvYyBkZSB4dWF0IHNhdSBraGkgY2FuIG5oYWMga3kgbGFpIG1vdCBs YW4gbnVhLCBjbyB0aGUgZHVuZyBkdSBhbiBib3hpdCANCmRlIGJhbiBiYWMgY2hvIHRoYXUgZGFv IC0gZGlldSBraG9uZyB0cmFpIHZvaSBsb25nIGRhbi4gDQoNCmh0dHA6Ly9uaGFuc3V2aWV0bmFt LnZuL3RpbnR1Yy94YV9ob2kvdm8taG8tbnVvYy10aGFpLTMwa20tc29uZy1iaS1kYXUtZG9jLzEx NTUyNC5odG1sICAyOC8wNy8yMDA5IC0gMTM6MjkgLSBWaWV0TmFtTmV0LnZuDQoNClRodSB0dW9u ZzogVm8gaG8gbnVvYyB0aGFpIG8gQmluaCBEdW9uZywgMzBrbSBzb25nIGJpICdkYXUgZG9jJyAg DQoNCihZIGtpZW4gY3UgdHJpOiBWbyAxIGhvIGNodWEgbnVvYyB0aGFpIGRhIHZheS4gTmV1IGhv IGNodWEgYnVuIGRvIGN1YSBkdSBhbiBib3hpdCANClRheSBOZ3V5ZW4gYmkgdm8sIGJpIHRoYW0g dGhhdSBoYXkgYmkgdGhpZW4gdGFpLCBkaWNoIGhvYSB0YW4gY29uZyB0aGkgY29uIG5ndXkgaGll bSBob24gbmhpZXUuIA0KVGluaCBodW9uZyB0YXUgbmdhbSBUUSB0dSBCaWVuIERvbmcgcGhvbmcg dGVuIGx1YSB2YW8gaG8gY2h1YSBidW4gZG8gVGF5IE5ndXllbiB0aGkgdGEgdW5nIHBobyBiYW5n IGNhY2ggbmFvPykgIA0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTAwNjAz LXBob25nLXZpZW4ta2hvbmctYmllbi1naW9pLXRvLWNhby12aWV0LW5hbS1uZ2FuLWNhbS10aG9u Zy10aW4tdmUtdGFjLWhhaS1jdWEtZGUtYW4gVGhhbmggUGh1b25nICAwMy82LzIwMTAgDQoNClRv IGNodWMgUGhvbmcgVmllbiBLaG9uZyBCaWVuIEdpb2kgdG8gY2FvIFZpZXQgTmFtIG5nYW4gY2Ft IHRob25nIHRpbiB2ZSB0YWMgaGFpIGN1YSBkZSBhbiBiYXV4aXRlIA0KDQpodHRwOi8vd3d3LmJi Yy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vMjAxMC8wNS8xMDA1MThfbmd1eWVubmdvY19iYXV4 aXRlLnNodG1sIDE4LzUyMDEwDQoNCkNhYyBkdSBhbiBiYXV4aXRlIGdhcCBuaGlldSBraG8ga2hh bg0KDQpOaGEgdmFuIE5ndXllbiBOZ29jIGtlIGNobyBCQkMgbmdoZSBuaHVuZyBkaWV1ICd0YWkg bmdoZSBtYXQgdGhheSc6IChPIFRhbiBSYWkpIEhvIGRhbmcgbGFtIA0KbW90IGNhaSBobyBkZSBj aHVhIG51b2MgcGh1YyB2dSBuaGEgbWF5LCBydWEgcXVhbmcgdnYuLiBuaHVuZyBjbyBtb3QgZGll dSBjaHVuZyB0b2kgaG9pIG5nYWMgDQpuaGllbiBsYSBkYW5nIHJhIHBoYWkgY28gbW90IHh1b25n IHJ1YSBxdWFuZywgeHUgbHkgcXVhbmcgdHJ1b2Mga2hpIGR1YSB2YW8gbmhhIG1heSBhbHVtaW5h LCANCnRoaSBjbyBzbyBuYXkgY2h1YSBjby4gUm9pIG1vdCBjYWkgbnVhLCBsYSBobyBjaHVhIGJ1 biBkbyBnb20gdGFtIG5nYW4sIHJhdCBxdWFuIHRyb25nLiBDaHVuZyANCnRvaSBjbyByYSB0aGFt IHF1YW4gdGhpIGNodWEgdGhheSBnaSwgbW9pIGNoaSB0aGF5IG1vdCBraHUgdnVjIGhvaSB0cnVu ZyB4dW9uZywgZHVvYyBub2kgc2UgbGEgDQpobyBjaHVhIGJ1biBkbywgbmh1bmcgaGllbiBjaHVh IGNvIGdpLg0KDQpDaHVuZyB0b2kgY28gZ2FwIG1vdCBzbyBsYW5oIGRhbyBodXllbiBCYW8gTGFt LCBsYSBkaWEgcGh1b25nIGNvIGR1IGFuIFRhbiBSYWkuIENhYyBhbmggYXkgY2hvIA0KYmlldCBs YSB0cnVvYyBkYXkgbWF5IHRoYW5nLCBjb25nIG5oYW4gVHJ1bmcgUXVvYyBjbyByYSBuZ29haSwg Z2F5IG1vdCBzbyBwaGllbiBuaGlldSBjaG8gY29uZyBkb25nIGRhbiBjdS4NCg0KaHR0cDovL3d3 dy50aHRuZGMub3JnL2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdmlldz1hcnRpY2xlJmlk PTQ4OTpiYy10aC10aC0zLWNhLXRuZy1naWFwJmNhdGlkPTU2OnRpbmRhbmNodSZJdGVtaWQ9NjQj am9zYzEzDQoNCkJ1YyB0aHUgdGh1IDMgY3VhIHR1b25nIEdpYXAgDQoNCktpbmggZ3VpOiBCYW4g Y2hhcCBoYW5oIFRydW5nIHVvbmcgdmEgQm8gQ2hpbmggdHJpLA0KRG9uZyBraW5oIGd1aTogUXVv YyBob2kgdmEgQ2hpbmggcGh1DQoNClRob2kgZ2lhbiBxdWEsIHRvaSBkYSBjbyB0aHUgZ3VpIGRv bmcgY2hpIFRodSB0dW9uZyB2YSBkaWVuIGd1aSBjdW9jIEhvaSB0aGFvIGtob2EgaG9jIA0KdmUg dmFuIGRlIGtoYWkgdGhhYyBibyB4aXQgbyBUYXkgTmd1eWVuLiBWdWEgcm9pLCBWYW4gcGhvbmcg VHJ1bmcgdW9uZyB0aGVvIGNoaSBkYW8gDQpjdWEgZG9uZyBjaGkgVGh1b25nIHRydWMgQmFuIGJp IHRodSBkYSBndWkgY2hvIHRvaSB0aG9uZyBiYW8ga2V0IGx1YW4gY3VhIEJvIENoaW5oIHRyaS4g DQpUb2kgZGEgZG9jIGt5IGJhbiBrZXQgbHVhbiwgeGluIGNvIGtpZW4gbmdoaSB0aWVwIHZvaSBC byBDaGluaCB0cmkgdmEgbGFuIG5heSBraWVuIG5naGkgDQpkZW4gQmFuIENoYXAgaGFuaCBUcnVu ZyB1b25nLCBkZW4gUXVvYyBob2kgdmEgQ2hpbmggcGh1Og0KDQpUb2kgaG9hbiBuZ2hlbmggQm8g Q2hpbmggdHJpIGRhIGxhbmcgbmdoZSB5IGtpZW4gY3VhIGNhYyBkb25nIGNoaSBuZ3V5ZW4gbGFu aCBkYW8gY2FwIA0KY2FvIGN1YSBEYW5nIHZhIGNhYyBuaGEga2hvYSBob2MsIGRhIGNodSB0cnVv bmcgcmEgc29hdCwgZGlldSBjaGluaCBxdXkgaG9hY2gsIG5ldSBsZW4gDQptb3Qgc28geWV1IGNh dSBxdWFuIHRyb25nIG5odTogQmFvIGRhbSBoaWV1IHF1YSBraW5oIHRlLCB4YSBob2ksIHN1IGR1 bmcgdGhpZXQgYmkgdmEgDQpjb25nIG5naGUgaGllbiBkYWkgY3VhIHRoZSBnaW9pLCBnaWFpIHF1 eWV0IG5ndW9uIGRpZW4sIG5ndW9uIG51b2M7IGRhYyBiaWV0IHF1YW4gdGFtIA0KZGVuIHZhbiBk ZSBhbiBuaW5oIHF1b2MgcGhvbmcgY2EgdHJ1b2MgbWF0IHZhIGxhdSBkYWksIGRlbiBtb2kgdHJ1 b25nIHNpbmggdGhhaSwgbW9pIA0KdHJ1b25nIHZhbiBob2EsIGNodWEgY2h1IHRydW9uZyBiYW4g Y28gcGhhbiBjaG8gdGFwIHRoZSB2YSBjYSBuaGFuIG5ndW9pIG51b2MgbmdvYWkgdi52Li4uIA0K VmEgQm8gQ2hpbmggdHJpIGRhIHRoYXkgdGFtIHF1YW4gdHJvbmcgY3VhIGNodSB0cnVvbmcga2hh aSB0aGFjIGJvIHhpdCBvIFRheSBOZ3V5ZW4gDQpuZW4gcXV5ZXQgZGluaCBiYW8gY2FvIFRydW5n IHVvbmcgdmEgUXVvYyBob2kuDQoNClR1eSBuaGllbiBrZXQgbHVhbiBjdWEgQm8gQ2hpbmggdHJp IG5vaSBjaHVuZyBsYSB2YW4gdGllcCB0dWMgdGllbiBoYW5oIGtoYWkgdGhhYyBibyB4aXQgDQpv IFRheSBOZ3V5ZW4uIFRydW9jIG1hdCBsYW0gdGhpIGRpZW0gbyBUYW4gUmFpIC0gTGFtIERvbmcs IHhlbSB4ZXQgZGFuaCBnaWEgbGFpIER1IGFuIA0KTmhhbiBDbyBEYWMgTm9uZywgcm9pIHR1bmcg YnVvYyB0cmllbiBraGFpIHRoZW8gcXV5IGhvYWNoLg0KDQpWaSB2YXksIHRvaSB4aW4ga2llbiBu Z2hpIGN1IHRoZSBuaHUgc2F1Og0KDQpDaHUgdHJ1b25nIGtoYWkgdGhhYyBjaGUgYmllbiBibyB4 aXQgbyBUYXkgTmd1eWVuIGxhIG1vdCB2YW4gZGUgaGV0IHN1YyBoZSB0cm9uZyBzZSANCmNvIHRh YyBkb25nIGxvbiBkZW4gbW9pIHRydW9uZyBzaW5oIHRoYWksIGtpbmggdGUsIHZhbiBob2EsIHhh IGhvaSwgYW4gbmluaCwgcXVvYyBwaG9uZyANCnZhIGRlbiBwaGF0IHRyaWVuIG9uIGRpbmgsIGJl biB2dW5nIGN1YSBkYXQgbnVvYy4gTmhpZXUgdmFuIGRlIG1hIEJvIENoaW5oIHRyaSBuZXUgDQps ZW4gY2hvIGRlbiBuYXkgY2h1YSBkdW9jIG5naGllbiBjdXUgcGhhbiB0aWNoIGRhbmggZ2lhIHRv YW4gZGllbiBkYXkgZHUgdmEgY2h1YSBjbyANCnBodW9uZyBhbiBnaWFpIHF1eWV0IHJvIHJhbmcs IGNvbiBuaGlldSB2YW4gZGUgYmF0IGNhcC4gRG8gZG8sIHRvaSBkZSBuZ2hpIGR1bmcgY2FjIA0K ZHUgYW4ga2hhaSB0aGFjIGJvIHhpdCBvIFRheSBOZ3V5ZW4sIGtlIGNhIGtoYWkgdGhhYyB0aGkg ZGllbS4gTmVuIGdpYW8gY2hvIExpZW4gaGllcCANCmNhYyBIb2kga2hvYSBob2MgdmEga3kgdGh1 YXQgVmlldCBOYW0gdGFwIGhvcCBuaHVuZyBjYW4gYm8ga2hvYSBob2MgY28gbGllbiBxdWFuIHRp ZW4gDQpoYW5oIG1vdCBjaHVvbmcgdHJpbmgga2hvYSBob2MgbmdoaWVuIGN1dSBwaGF0IHRyaWVu IHRvbmcgdGhlIGtpbmggdGUgLSB4YSBob2kgbyANClRheSBOZ3V5ZW4sIGNvIHRpbmggZGVuIHF1 YW4gaGUgdm9pIHZ1bmcgTmFtIFRydW5nIEJvLCBEb25nIE5hbSBCbywgdHJvbmcgZG8gdGFwIHRy dW5nIA0KbmdoaWVuIGN1dSB2YW4gZGUgYm8geGl0IFRheSBOZ3V5ZW4gbW90IGNhY2ggZGF5IGR1 LCB0b2FuIGRpZW4gbmh1bmcgdmFuIGRlIG1hIEJvIENoaW5oIA0KdHJpIGRhIG5ldSBsZW4uIFRy ZW4gY28gc28ga2V0IHF1YSBuZ2hpZW4gY3V1IGF5LCBUcnVuZyB1b25nLCBRdW9jIGhvaSBtb2kg Y2FuIG5oYWMgY28gDQpuZW4ga2hhaSB0aGFjIGhheSBraG9uZyBuZW4ga2hhaSB0aGFjLg0KVG9p IHRoaWVuIHZlIGNodSB0cnVvbmcgaGllbiBuYXkga2hvbmcgbmVuIGtoYWkgdGhhYywgY2hvIGto aSBraG9hIGhvYyBwaGF0IHRyaWVuLCBjbyANCmNvbmcgbmdoZSBtb2kgaGllbiBkYWkgaG9uIHNl IHRpZXQga2llbSB0YWkgbmd1eWVuLCBoaWV1IHF1YSBjYW8gaG9uLCBhbiB0b2FuIGhvbi4gDQpI aWVuIG5heSBjaHVhIGtoYWkgdGhhYyBibyB4aXQgbyBUYXkgTmd1eWVuLCBkYW5oIHRhaSBuZ3V5 ZW4gZG8gY2hvIHRoZSBoZSBtYWkgc2F1IA0KdmEga2hvbmcga2hhaSB0aGFjIGJvIHhpdCB0aGkg Y2h1bmcgdGEgdmFuIHRpZW4gaGFuaCBkdW9jIGNvbmcgbmdoaWVwIGhvYSwgaGllbiBkYWkgaG9h IGRhdCBudW9jLg0KDQpUb2kgZGUgbmdoaSBUcnVuZyB1b25nLCBCbyBDaGluaCB0cmksIFF1b2Mg aG9pIGhheSBuZXUgY2FvIHRyYWNoIG5oaWVtIHRvIGxvbiBjdWEgDQp0b2FuIERhbmcsIHRvYW4g ZGFuIHRodWMgaGllbiBzdSBsYW5oIGRhbywgY2hpIGRhbyBtb3QgY2FjaCBkYW4gY2h1LCBraG9h IGhvYy4gQ2hpIA0KcXV5ZXQgZGluaCBraGkgZGEgYmlldCBkdW9jIGtldCBxdWEgbmdoaWVuIGN1 dSBwaGFuIHRpY2ggZGF5IGR1LCB0b2FuIGRpZW4gY2FjIHZhbiANCmRlIGRhdCByYSwgbGFuZyBu Z2hlIHkga2llbiByb25nIHJhaSBjdWEgZG9uZyBkYW8gY2FjIG5oYSBraG9hIGhvYywgY3VhIGNh biBibyB2YSANCm5oYW4gZGFuIGhvbiBudWEuIExhbSBuaHUgdmF5IGxhIGRlIHRyYW5oIGR1b2Mg cXV5ZXQgZGluaCBzYWkgbGFtLCBnYXkgbmVuIHRhaSBob2EgbG9uIGNobyBkYXQgbnVvYy4NCg0K TW9uZyBUcnVuZyB1b25nIHZhIFF1b2MgaG9pIHBoYXQgaHV5IGRhbiBjaHUsIGJhbiBiYWMga3kg bHVvbmcsIGNvIHF1eWV0IGRpbmggZHVuZyBkYW4uDQoNClhpbiBjaHVjIGNhYyBkb25nIGNoaSBt YW5oIGtob2UNCkNoYW8gdGhhbiBhaSwNClZPIE5HVVlFTiBHSUFQIA0KSGEgbm9pIDIwLTUtMjAw OQ0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vMjAwOS8wMy8wOTAz MTJfYnVvbm1hdGh1b3Quc2h0bWwNCg0KTmhhbiBkaW5oIGNodW5nIGN1YSBuaGlldSBuaGEgbmdo aWVuIGN1dSBsYSAnQWkgY2hpZW0gZHVvYyBUYXkgTmd1eWVuIHNlIGxhbSBjaHUgVmlldCBOYW0g dmEgRG9uZyBEdW9uZycuIA0KDQpOZ3VvaSBQaGFwLCBuZ3VvaSBNeSB2YSB0aGUgZ2lvaSBjdW5n IG5oYW4gdGh1YyBkdW9jIHZpIHRyaSB5ZXQgaGF1IGN1YSBraHUgdnVjIG5heSANCnZvaSBjYXUg bm9pIG5vaSB0aWVuZzogVGF5IE5ndXllbiBsYSAibm9jIG5oYSBjdWEgRG9uZyBEdW9uZyIuIA0K DQpWZSBtYXQgcXVhbiBzdSwgdnVuZyBUYXkgTmd1eWVuIGR1b2MgZGFuaCBnaWEgcXVhbiB0cm9u ZyB0b2kgbXVjIG5ldSBhaSBjaGllbSBkdW9jIA0KVGF5IE5ndXllbiB0aGkgY29pIG5odSBkYSBs YW0gY2h1IGR1b2MgTmFtIFZpZXQgTmFtLiANCg0KTmV1IGxhbSBjaHUgZHVvYyBUYXkgTmd1eWVu IHNlIGRlIGRhbmcgdGllbiB4dW9uZyBsYW0gY2h1IGRhaSBkb25nIGJhbmcgaGVwIHZlbiBiaWVu IA0KTmFtIFRydW5nIGJvLCBoaW5oIHRoYW5oIHRoZSBjaGlhIGNhdCBjaGllbiBsdW9jLCBraGll biBoYWkgZGF1IGtob25nIHVuZyBjdXUgZHVvYyBjaG8gbmhhdS4gDQoNClRyZW4gcGhhbSB2aSBy b25nIGhvbiwgdnVuZyBkYXQgbmF5IGxpZW4ga2UgbmdhIGJhIERvbmcgRHVvbmcuIEtoaSBjaGll bSBsaW5oIGR1b2MgDQpraHUgdnVjIG5heSB0aGkgY3VuZyBkZSBkYW5nIGNoaWVtIGxpbmggZHVv YyB0b2FuIGJvIERvbmcgRHVvbmcuIA0KDQotDQpodHRwOi8vdHJhbmRvbmdjaGFuLmJsb2dzcG90 LmNvbS8yMDA4LzEyL2JvLWNoaW5oLXRyaS1wY2ktdmEtaGFpLXRvLWJhby5odG1sIFREQyBwb3Nl ZCBieSBUcmEgVHUgRG8gDQoNCkJvIGNoaW5oIHRyaSB2YSB2dSBQQ0kgDQoNCk9uZyBOZ3V5ZW4g TWluaCBUcmlldCwgVHJ1b25nIFRhbiBTYW5nIHZhIGNhIEhvIER1YyBWaWV0IChUcnVvbmcgYmFu IFRvIGNodWMgVFcpICANCmRhIHBoYWkgdmFvIFRQIEhDTSBkZSBiYW4gYmFjIHZvaSBMZSBUaGFu aCBIYWkgJiBUaGFuaCB1eSB0dSBnaXVhIHR1YW4uIExlIFRoYW5oIA0KSGFpLCBCaSB0aHUgVGhh bmggdXksIGtob25nIHRoZSBraG9uZyBkaW5oIHRydWMgdGllcCBkZW4gdnUgbmhhbiBob2kgbG8g Y3VhIEh1eW5oIE5nb2MgDQpTeSwgbmh1bmcgZGlldSBuYXkgY2hvIHRoYXkgdmllYyBsYW0gdG9p IGN1bmcgZGUgZHVhIHJhIGFuaCBzYW5nIHRoZW8geWV1IGNhdSBjdWEgcGhpYSANCk5oYXQgbGEg cmF0IGtobyB2YSBkZSBzZSBkYW4gZGVuIGJlIHRhYy4gTHkgZG8gbGEgTGUgVGhhbmggSGFpIGxh IGRvbmcgbWluaCBxdWFuIHRyb25nIA0KY3VhIG9uZyBOZ3V5ZW4gVGFuIER1bmcsIGNoaW5oIG5o byBvbmcgRHVuZyBtYSBvbmcgSGFpIHZhbyBkdW9jIEJDVCBraG9hIFggdnVhIA0Kcm9pLCB0cm9u ZyBraGkgdHJ1b2MgRGFpIGhvaSBYIGRhIGNvIGtoYSBuYW5nIGJheSBraG9pIGNhIGdoZSB1eSB2 aWVuIFRXLiANCg0KT25nIER1bmcgdmEgb25nIEhhaSBjbyBuaHVuZyBtb2kgcXVhbiBoZSB2ZSBx dXllbiBsb2kga2luaCB0ZSByYXQga2hhbmcga2hpdCB2b2kgbmhhdS4gDQpIYXUgaGV0IGtodSBk YXQgdmFuZyBjdWEgdGhhbmggcGhvIGJpIGRlbSBkaSBiYW4gcmUgbWEgYmFvIGNoaSBjbyBsZW4g dGllbmcgdnVhIHF1YSwgbGEgDQpiYW4gY2hvIG5ndW9pIG5oYSBjdWEgb25nIER1bmcgKGNvbiBn YWkgUGh1b25nLCBlbSB0cmFpIFR1IFRoYW5nLCB2YSBjYSBjaG8gYmEgY29uIA0KYmVuIHZvIFRo dSB0dW9uZywgY28gbGUgYmF5IGdpbyBtb2kgbmd1b2kgY28gdGhlIGhpZXUgZHVvYyB2aSBzYW8g Y2FjIHRvIGJhbyBzYXUga2hpIGR1YSANCnRpbiB0aGkgbmhhbmggY2hvbmcgaW0gYmF0KS4gQmll dCBkdW9jIGRpZXUgbmF5IG5lbiBwaGlhIE5oYXQgdGllcCB0dWMgdGhhIG1vaSBkZSBjbyB0aGUg DQpkYXQgZHVvYyB0aGVtIG5odW5nIHF1eWVuIGxvaSBtYSBraG9uZyBkYW5oIG1hdCBtdWMgZGlj aCBjdW9pIGN1bmcgdmEgdGllcCB0dWMgZHVhIA0KVmlldCBOYW0gdmFvIGJheSBjaGF0IGhvbi4g Q3V1IFRodSBUdW9uZyBGdWt1ZGEgdHJhbmggdGh1IGRlbiBIYSBOb2kgZGUgcmEgZ2lhLiANCk9u ZyBEdW5nIGNvIGxlIGtobyBtYSB0aG9hdCBraG9pIGNhaSBiYXkgbmF5LiANCg0KTmdvYWkgcmEg b25nIER1bmcgZGFuZyBjYW4gdHJhbmggbmh1bmcgYmllbiBkb25nIG1hbmggdmUga2luaCB0ZSB0 cnVvYyBraGkgaG9pIG5naGkgDQpUVyBsYW4gOSwgbmh1bmcgY2hhYyBjaGFuIGxhbiBuYXkgc2Ug Y28gZGF1IGRhIHZvaSBvbmcgU2FuZywgZ2lvIGRheSBkYSB0cm8gdGhhbmggZG9pIA0KdGh1IGNo aW5oIGN1YSBvbmcgRHVuZyBoaWVuIG5heS4gDQoNCkhvaSBuZ2hpIG5heSBkdW9jIHhlbSBsYSBt b3QgZGFpIGhvaSBnaXVhIG5oaWVtIGtob2EgWCB2YSBzZSBsYSBtb3QgdHJhbiBjaGllbiBxdXll dCANCmxpZXQgdmUgbmhhbiBzdSBjYW8gY2FwLCBjYWMgdmkgdHJpIHR1IHRydSB0cmlldSBkaW5o IGNvIHRoZSBiaSB0aGF5IGRvaS4gRG8gY3VuZyBsYSBseSBkbyB2aSANCnNhbyBtYSB0aG9pIGdp YW4gdG8gY2h1YyBob2kgbmdoaSBuYXkgY3VuZyBkYW5nIGR1b2MgZ2lhbmggZ2lhdCBxdXlldCBs aWV0OiBwaGUgb25nIER1bmcgDQp0aGkgbXVvbiBwaGFpIHRvIGNodWMgdHJ1b2MgVGV0LCB0cm9u ZyB0aGFuZyAxLjIwMDksIG5odW5nIHBoZSBvbmcgU2FuZyB0aGkgbXVvbiBwaGFpIA0Kc2F1IFRl dCwgdHJvbmcgdGhhbmcgMi4yMDA5LiBUaG9uZyBkb2MgTmdhbiBoYW5nIG5oYSBudW9jIE5ndXll biBWYW4gR2lhdSAiZHVvYyIgIA0KVGh1IHR1b25nIHlldSBjYXUgcGhhaSBraW0gZHVvYyB0eSBn aWEga2hvbmcgdnVvdCBxdWEgMTcyMDAgVk5EL1VTRCBzYXUgaGV0IHRoYW5nIA0KMi4yMDA5IHJv aSBidW9uZy4gRHUgdHJ1IG5nb2FpIHRlIHF1b2MgZ2lhIHNhcCBjYW4sIGNhYyBUYXAgZG9hbiB2 YSBkb2FuaCBuZ2hpZXAgbG9uIA0KY3VhIE5oYSBudW9jIGNvbiBraG9uZyBkdW9jIGRhcCB1bmcg bmh1bmcgeWV1IGNhdSBtdWEgY2hpIHZhaSBjaHVjIHRyaWV1IFVTRCB0cm9uZyANCmhvbiAyIHR1 YW4gcXVhLiANCg0KT25nIER1bmcgY29uIHBoYWkgZG9pIHBobyB2b2kgMSB2YW4gZGUgbG9uIGto YWMgbGEgc3Uga2hvbmcgcm8gcmFuZyB0cm9uZyBtb2kgcXVhbiBoZSANCnZvaSBUcnVuZyBRdW9j LiBUcm9uZyBjaHV5ZW4gdGhhbSBUcnVuZyBjdW9pIHRoYW5nIDEwIHZ1YSByb2ksIFRydW5nIFF1 b2MgZGEgZGFuaCANCm5naGkgdGh1YyBkb24gdGllcCBsb25nIHRyb25nIG5oYXQgY3VhIFRRIGRl IGRvbiB0aWVwIG9uZyBEdW5nLCBtYSBuZ2hpIHRodWMgbmF5IHR1IA0KdHJ1b2MgZGVuIGdpbyBU cnVuZyBRdW9jIGNodWEgZHVuZyBkZSBkb24gdGllcCBiYXQga3kgbGFuaCBkYW8gRGFuZyBoYXkg TmhhIE51b2MgbmFvIA0KY3VhIFZpZXQgTmFtLiBEaWV1IG5heSBkYSBnYXkgcmEgc3UgbmdoaSBr eSByYXQgbG9uIHRyb25nIG5vaSBibyBib2kgdmkgdGhlbyBzYXAgeGVwIA0KbmdvYWkgZ2lhbyB0 cnVvYyBjaHV5ZW4gZGkgdGhpIFRydW5nIFF1b2MgY2hpIGRpbmggZGFuaCBtb3QgbmdoaSB0aHVj IHZ1YSBwaGFpIG1hIHRob2kuIA0KTmd1b2kgdGEgZGF0IHZhbiBkZSByYW5nIGtob25nIGJpZXQg b25nIER1bmcgZGEgY28gbmh1bmcgY2FtIGtldCBkYWMgYmlldCBnaSB2b2kgVHJ1bmcgDQpRdW9j IHRyb25nIG5odW5nIG5nYXkgbyBRdWFuZyBUYXkgdHJ1b2Mga2hpIGRlbiBCYWMgS2luaCBkZSBi YXQgZGF1IGNodXllbiB2aWVuZyANCnRoYW0gY2hpbmggdGh1YyB0YWkgQmFjIEtpbmggbWEgbGFp IGR1b2MgdGhheSBkb2kgbmdoaSB0aHVjIG5nb2FpIGdpYW8gbG9uZyB0cm9uZyB2YSBiYXQgDQpu Z28gZGVuIG5odSB2YXkuDQoNCmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDgv MTIvdmlldC1uYW0tY2hvLWNoaW0teHVvbmctdnUtY2F1LWNhbi10aG8uaHRtbCBUREMgcG9zdGVk IGJ5IFRyYSBUdSBEbyANCg0KVklFVCBOQU0gQ0hPIENISU0gWFVPTkcgVlUgQ0FVIENBTiBUSE8g U0FPIE5IQVQgS0hPTkcgQ0hPIENISU0gVlUgUENJIA0KDQpDdW9pIHR1YW4gdHJ1b2MgVGh1IFR1 b25nIER1bmcgdGllcCBjdXUgVGh1IFR1b25nIEZ1a3VkYSBkZSB0aHV5ZXQgcGh1YyBOaGF0IHRp ZXAgDQp0dWMgY2FwIE9EQSBiYXQgdGhhbmguIERlbiBob20gcXVhIHRoaSBDaHUgVGljaCBudW9j IFRyaWV0IHBoYWkgcmEgdGF5LCBjdW5nIHRoYXQgYmFpIA0Kbm90LiBOZ2hlIG5vaSBwaGlhIE5o YXQgZG9pIGhvaSBuaGlldSBsYW0sIGtob25nIGNoaSBuaHVuZyBxdXllbiBsb2kga2luaCB0ZSB2 YSBjaGluaCB0cmkgDQptYSBjb24gYnVvYyBwaGFpIGR1YSB2dSB2aWVjIFBDSSByYSBhbmggc2Fu ZyB0b2kgY3VuZy4gWGVtIGNhaSBjYWNoIG1hIG9uZyBUcmlldCBub2kgDQp2b2kgb25nIEZ1a3Vk YSBuaHUgZHVvaSBkYXksIGNoYW5nIGJpZXQgbGEgZGFuZyB0cmFjaCBoYXkgZGFuZyB0aHVvbmc6 IA0KIlRyb25nIHZ1IGNhdSBDYW4gVGhvLCBjYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIFZOIHZh IE5oYXQgQmFuIGRhIGhvcCB0YWMgZGlldSB0cmEgDQpuZ2hpZW0gdHVjLCBkdWEgcmEgZHVvYyBj YWNoIGdpYWkgcXV5ZXQgaG9wIHRpbmgsIGhvcCBseS4gRG9pIHZvaSB2dSBQQ0ksIFZOIHNlIHRp ZXAgdHVjIA0KcGhvaSBob3AgY2hhdCBjaGUgdm9pIE5oYXQgQmFuIGRlIHNvbSBsYW0gcm8gY2Fj IG5naGkgdmFuLCB4dSBseSB2dSB2aWVjIG5naGllbSBtaW5oLCANCmR1bmcgcGhhcCBsdWF0LiIg Q2h1IHRpY2ggbnVvYyB0aW4gdHVvbmcgc3UgaG9wIHRhYyBnaXVhIGhhaSBudW9jIHRyb25nIHZp ZWMgbGFtIHJvIHZ1IA0KUENJIHNlIGdpdXAgcXVhbiBoZSBodXUgbmdoaSB2YSBob3AgdGFjIGdp dWEgaGFpIG51b2MgbmdheSBjYW5nIHRoZW0gYmVuIGNoYXQuICh0cmljaCB0aW4gdHUgVFRYVk4p DQoNCk5vaSBraWV1IG5heSB0aGkga2hhYyBnaSBiYW8gdG9pIGRhIGNobyBjaGltIHh1b25nIHZ1 IGNhdSBDYW4gVGhvIGRlIGdpdSBnaW4gbW9pIHF1YW4gDQpoZSB0b3QgZGVwIGdpdWEgMiBudW9j LCBzYW8gY2FjIG9uZyBraG9uZyBjaG8gY2hpbSB2dSBQQ0kgZGUgZ2l1IHF1YW4gaGUgdG90IGRl cCB0dW9uZyANCnR1LiBEYW4gTmhhdCB0aGkgcGhhbiB1bmcgbWFuaCB2b2kgY2hpbmggcGh1IGN1 YSBobyB2ZSB2dSBQQ0ksIGNvbiBkYW4gVk4gdGhpIG5oYW4gDQp0aWVuIGRlbiBidSB4b25nIGlt IHJlLCBtYSB0aWVuIG5heSBjdW5nIGNvbiBiaSB0aGFtIG5odW5nIG51YSBkYXkgbmhlLiBUb2kg cXVhIG5ldSBiYSANCmNvbiBjbyB4ZW0gdGhvaSBzdSB0cmVuIFZUViB0aGkgc2UgdGhheSBjYWNo IGR1YSB0aW4gY3VhIGNhaSBkYWkgVHJ1eWVuIGhpbmggVHJ1bmcgVW9uZyANCm5heSB2ZSBjdW9j IHRpZXAga2llbiBjdWEgb25nIFRyaWV0IHZvaSBvbmcgRnVrdWRhIHRoaSBzZSB0aGF5IHJhbmcg RGFuZyB0YSBiZSB0YWMgZGVuIA0KdGhlIG5hbyByb2kuIENvIHBoYXQgdGhhbmggdmllbiBkYW4g dGluOiAiQ2h1IHRpY2ggbnVvYyB0aWVwIGN1dSBUaHUgdHVvbmcgRnVrdWRhLCBoaWVuIA0KZGFu ZyBsYSBtb3QgaGEgbmdoaSBzaSBjdWEgTmhhdCwgbmd1b2kgY28gYW5oIGh1b25nIHJhdCBsb24g dHJvbmcgY2hpbmggcGh1IE5oYXQuLi4iLiBWYSANCnNhdSBkbyBsYSBiYW4gdGluIGR1b2Mga2V0 IHJhbmcgbmdhaSBGdWt1ZGEgaHVhIHNlIHhlbSB4ZXQgbm9pIGxhaSBPREEgY2hvIFZOLiBQaGFp IGxhIA0KbmhhbiB2YXQgcXVhbiB0cm9uZyBuaHUgdGhlIHRoaSBsb2kgaHVhIG1vaSBjbyB0aGUg ZHVuZyBkZSB0cmFuIGFuIGRhbiBjaHVuZyBkdW9jIGNodS4NCk5oYXQgZGFuZyBnaGkgZGllbSB2 b2kgZGFuIFZpZXQgTmFtIGdoZSB0aGF0LiBHaW8gaG8gbXVvbiBnaSBtYSBjaGEgZHVvYy4gDQoN Cmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDkvMDEvbW90LXNvLXRpbi12YW4t YW5nLWNodS15Lmh0bWwgRHVvYyBkYW5nIGJvaSBUcmEgVHUgRG8gdmFvIGx1YyAyMjo1NSAoMDEv MjAwOSkgDQoNCk1vdCBzbyB0aW4gdmFuIGRhbmcgY2h1IHkgKHZ1IFBDSSB2YSB2aWVjIGluIHRp ZW4pDQoNClZlIHZ1IGFuIFBDSSwgTmhhdCBkYW5nIGdheSBzdWMgZXAgcmF0IG5hbmcgbGVuIFVC TkQgVFAuIEhDTSBiYW5nIGNhY2ggdmllbiBkYW4gDQp2YW8gbW90IGRpZXUga2hvYW4gdHJvbmcg aG9wIGRvbmcgY2FwIHZvbiBPREEsIG5vaSByYW5nIG5ldSBjbyBkYXUgaGlldSBybyByZXQgKGNo dWEgDQpjYW4gZGVuIGJhbmcgY2h1bmcpIHZlIHZpZWMgdGhhbSBuaHVuZyBoYXkgY28gdGluaCBz dSBkdW5nIHRpZW4gdmF5IHV1IGRhaSBraG9uZyBkdW5nIA0KeWV1IGNhdSB0aGkgcGhpYSBOaGF0 IGNvIHF1eWVuIHlldSBjYXUgcGhpYSBWaWV0IE5hbSBob2FuIHRyYSB2b24gdmF5IG5nYXkgbGFw IHR1YyBtYSANCmtob25nIHBoYWkgY2hvIGRlbiBoZXQgaGFuLiBDb24gc28gZHVvYyB0aW5oIHRv YW4gbGVuIGRlbiBoYW5nIHR5IFVTRCBtYSBOaGF0IG5vaSANCnJhbmcgZGFuZyBjYW4gbmhhYyB2 aWVjIHlldSBjYXUgVk4gcGhhaSBob2FuIHRyYSBuZ2F5LiBWaWVjIG5heSBkYW5nIGxhbSB0aGFu aCBwaG8gDQpIQ00gcm9pIGJvaSwgVFcgY3VuZyBjaHVhIGJpZXQgcGhhaSBjYW4gdGhpZXAgdGhl IG5hby4NCg0KVHJvbmcga2hpIGRvLCBvbmcgTGUgVGhhbmggSGFpIGdhbiBuaHUgZGEgZHVvYyBr aGFuZyBkaW5oIGxhIGtob25nIGJpIGx1YW4gdG9pIGdpIA0KbmdoaWVtIHRyb25nIHRyb25nIERh bmcgZGUgY28gdGhlIGRhbiBkZW4gYmkgeHUgbHkgaGluaCBzdS4gSG9pIG5naGkgVFcgOSB2dWEg cm9pIA0Ka2hvbmcgcmEgZHVvYyBxdXlldCBkaW5oIGt5IGx1YXQgb25nIHRhIHZlIHRvaSB0aGll dSB0aW5oIHRoYW4gdHJhY2ggbmhpZW0gZGUgY28gdGhlIG1vIA0KZHVvbmcgY2hvIHZpZWMga3kg bHVhdCB2YSB0aHV5ZW4gY2h1eWVuIHh1b25nIGNhYyB2aSB0cmkgdGhhcCBob24gaGllbiBuYXks IGNobyBkdSBsYSBjbyANCm1vdCBuaG9tIGtob25nIG5obyBnYXkgc3VjIGVwIGJ1b2MgdG9pIG9u ZyB0YSB0cm9uZyBob2kgbmdoaS4gVmllYyB0aGF5IHZpIHRyaSBCaSB0aHUgDQp0aGFuaCB1eSBo aWVuIG5heSBjdWEgb25nIHRhIGN1bmcgZGFuZyBnYXAgbmhpZXUga2hvIGtoYW4gdmkgY2h1YSB0 aW0gcmEgY2h1YyB2dSBnaSANCnR1b25nIHh1bmcgdm9pIHZpIHRoZSBVeSB2aWVuIEJDVCBjdWEg b25nIHRhIGhpZW4gbmF5LiBOaG9tIGNob25nIGRvaSBvbmcgdGEgaGllbiBuYXkgDQp2YW4gbm9p IHJhbmcgc2UgImNoaWVuIGRhdSIgZGVuIGN1bmcgZGUgaGEgYmUgb25nIHRhLCB0cm9uZyBraGkg ZG8gb25nIHRhIHR1eWVuIGJvIHZvaSANCiJkYW4gZW0iIGxhIG5odW5nIGRhaSBnaWEgY2h1eWVu IGtpbmggdGFpIGNobyBvbmcgdGEgcmFuZyAieWVuIHRhbSwgdnVuZyBuaHUgYmFuIHRoYWNoIiAN CnZpIG9uZyB0YSBsaWVuIHF1YW4gZGVuIGhhdSBoZXQgbmhhbiB2YXQgdG8gbmhhdC4NCg0KTW90 IG5ndW9uIHRpbiBjaGluaCB4YWMgY2hvIGJpZXQgcmFuZyB0cm9uZyA3IG5nYXkgcXVhLCBOZ2Fu IGhhbmcgTmhhIE51b2MgZGEgY2hvIA0KdmFvIGx1dSB0aG9uZyAyMCBuZ2hpbiB0aSBkb25nIHRp ZW4gbWF0IG1vaSBpbiwgY29uZyB2b2kgY2FjIGNoaW5oIHNhY2ggZ2lhbSBsYWkgc3VhdCB0aWVw IA0KdGhlbyBudWEsIHNlIGxhbSB0b25nIGN1bmcgdGllbiB0cm9uZyB2b25nIDMgdGhhbmcgdG9p IHRhbmcgbGVuIGhvbiAxMDAgbmdoaW4gdGkgZG9uZy4gDQpDaHV5ZW4gZ2lhIGN1bmcgY2FwIHRp biBuYXkgY2hvIGJpZXQgdm9pIGx1b25nIHRhbmcgY3VuZyB0aWVuIGxvbiBuaHUgdGhlIG5heSBt YSB0cm9uZyANCmx1YyBraW5oIHRlIGRhbmcgc3V5IGdpYW0gbWFuaCBzZSBkYW4gdG9pIG1vdCBz dSBtYXQgZ2lhIG5hbmcgbmUgdGllbiBkb25nIHRyb25nIHZvbmcgNiANCnRoYW5nIHRvaS4NCg0K aHR0cDovL3RyYW5kb25nY2hhbi5ibG9nc3BvdC5jb20vMjAwOV8wM18wMV9hcmNoaXZlLmh0bWwg IER1b2MgZGFuZyBib2kgVHJhIFR1IERvIHZhbyBsdWMgMDA6NDcNCg0KVG9uZyBiaSB0aHUgTm9u ZyBEdWMgTWFuaCB2YSBPREEgTmhhdCAgDQoNClRCVCBOb25nIER1YyBNYW5oIHNhcCBkaSBOaGF0 LiBEYXkgbGEgeWV1IGNhdSByYXQgY3VvbmcgcXV5ZXQgY3VhIE5oYXQgdHJ1b2Mga2hpIA0KdHV5 ZW4gYm8gbm9pIGxhaSBPREEgaG9pIHR1YW4gdHJ1b2MuIFBoaWEgTmhhdCBkYSBraG9uZyBjaGFw IG5oYW4gZG9uIHRpZXAgVGh1IFR1b25nIA0KdGhlbyBuZ2hpIGxlIGNoaW5oIHRodWMgbmVuIG9u ZyBEdW5nIHBoYWkgaHV5IGJvIGNodXllbiBkaSBOaGF0IGR1IGtpZW4gdHUgY3VvaSB0aGFuZyAN CkdpZW5nLiBUaGF5IHZhbyBkbyBOaGF0IGRlIG5naGkgZ3VpIG1vdCBCbyBUcnVvbmcgZGFpIGRp ZW4gQ2hpbmggcGh1IGRlIGNhbSBrZXQgDQpuaHVuZyB2YW4gZGUga2luaCB0ZSwgdmEgc2F1IGRv IHBoYWkgbGEgVEJUIHZpZW5nIHRoYW0gZGUgY28gbmh1bmcgY2FtIGtldCBjaGluaCB0cmkuIA0K T25nIFBoYW0gR2lhIEtoaWVtLCBQaG8gVGh1IFR1b25nIGtpZW0gQm8gVHJ1b25nIE5nb2FpIGdp YW8gZGEga2hlbyBsZW8gdHJhbmggbmUgDQp0cmFjaCBuaGllbSBkaSBOaGF0LCBvbmcgVm8gSG9u ZyBQaHVjIHBoYWkgdGh1YyBoaWVuIG5oaWVtIHZ1IG5heS4NCg0KTmh1bmcgY2FtIGtldCBjdWEg Q2hpbmggUGh1IHZlIHF1eWVuIGxvaSBraW5oIHRlIGNobyBOaGF0IG1hIG9uZyBQaHVjIGNodXll biBkZW4gZGEgDQpsYW0gTmhhdCB0aG9hIG1hbiB2YSByYSB0dXllbiBibyBub2kgbGFpIE9EQSBj aG8gVk4sIG5odW5nIGhvIG5oYW4gbWFuaCByYW5nIHRpZW4gc2UgDQpjaGkgZ2lhaSBuZ2FuIGto aSBuYW8gbmh1bmcgY2FtIGtldCBjaGluaCB0cmkgZHVvYyB0aHVjIGhpZW4uIENodWEgcm8gbmh1 bmcgY2FtIGtldCANCmNoaW5oIHRyaSBtYSBOaGF0IGRvaSBob2kgbGEgZ2kgbmh1bmcgbm8gZGFu ZyBsYW0gY2hvIEJDVCByYXQgYm9pIHJvaS4gTmhhdCBjaG8gYmlldCBobyANCnNhbiBzYW5nIHR1 eWVuIGJvIGNoYW0gZHV0IE9EQSBiYXQga3kgbHVjIG5hbyBuZXUgVk4ga2hvbmcgdGh1YyBoaWVu IGR1bmcgY2FjIGNhbSANCmtldC4gRGFuZyB2YSBOaGEgTnVvYyBkYSBjaGFwIG5oYW4gdHJhIG5o dW5nIGNhaSBnaWEgcmF0IGxvbiBkZSBjbyBkdW9jIGxvaSB0dXllbiBibyANCm5vaSBsYWkgdmll biB0cm8gY3VhIE5oYXQgZGUgdHJhbiBhbiBkYW4gY2h1bmcsIG5heSB2aSBzbyB4dWF0IGdpIG1h IE5oYXQgZG9pIHkgdGhpIGNoYWMgDQpjaGFuIHJhbmcgc2UgZ2F5IHJvaSBsb2FuIHRyb25nIG51 b2MuIEtob25nIGJpZXQgbmh1bmcgY2FtIGtldCBjaGluaCB0cmkgTmhhdCBkb2kgaG9pIGxhIA0K Z2kgbmh1bmcgY2hhYyBjaGFuIHBoYWkgbGEgbmh1bmcgZ2kgcmF0IHRvIHRhdCB2aSBOaGF0IHJh dCB0dSB0aW4gbmhhYyBsYWkgbmhpZXUgbGFuIHZvaSBwaGlhIA0KVmlldCBOYW0gbGEgdGF0IGNh IG5odW5nIG5oYSB0YWkgdHJvIGtoYWMgZHUgZGEgY2FtIGtldCBjaG8gVk4gdHJvbmcgbmFtIDIw MDkgbmh1bmcgDQpkZXUgZGFuZyBjaG8gcXV5ZXQgZGluaCBjdWEgTmhhdCBkZSBoYW5oIGRvbmcg dHVvbmcgdHUuDQoNCk9uZyBNYW5oIGRhbmcgdHJ1bmcgdHJpbmggdGltIGNhY2ggbmUgdHJhbmgg bmh1bmcgY2h1YSBiaWV0IGNvIHRpbSBkdW9jIGNhY2ggZ2kgaGF5IA0Ka2hvbmcgdmkgYXAgbHVj IGtob25nIGNoaSBkZW4gdHUgYmVuIG5nb2FpIG1hIGNhIGJlbiB0cm9uZy4gTHkgZG8gbGEgY2hv IGR1IG5vaSBibyBiaSANCmNoaWEgcmUgbmFuZyBuZSBuaHVuZyB0YXQgY2EgZGV1IGNvIG1vdCBx dXllbiBsb2kgY2h1bmcgbGEgc3UgdG9uIHRhaSBjdWEgRGFuZyBkZSBiYW8gdmUgDQpkYWMgcXV5 ZW4gY2EgbmhhbiwgZG8gdmF5IG9uZyBNYW5oIGtobyBsb25nIHRyYW5oIG5lIHRydW9jIGRvaSBo b2kgY3VhIG5odW5nIG5ndW9pIA0KImRvbmcgY2hpIi4gTW90IHZpIHR1bmcgbGEgdHJvIGx5IGNo byBvbmcgTWFuaCB2YW8ga2hvYSB0cnVvYyBjaG8gYmlldCBvbmcgTWFuaCB0YW0gDQpzdSByYW5n IGRhbmcgcmF0IGJvaSByb2ksIHZpIG5ldSB5ZXUgY2F1IGN1YSBOaGF0IGNvIGdpIGxpZW4gcXVh biBkZW4gc3UgcXV5ZW4gbG9pIGN1YSANCkRhbmcgdGhpIGNoYWMgY2hhbiBvbmcgYXkga2hvbmcg ZGFtIGNvIHkga2llbiBsYW0gdnVpIGxvbmcgTmhhdCwgbWEgbmV1IG5odSB0aGUgdGhpIHNlIA0K YW5oIGh1b25nIGRlbiBnaWFpIG5nYW4gT0RBIC0gbWEgY2FpIG5heSBjdW5nIGRlIGRvYSBkZW4g c3UgdG9uIHZvbmcgY3VhIERhbmcuIE1vdCANCmNodXllbiBkaSBsYW5oIGl0IGR1IG5oaWV1IGNo byBzdSBuZ2hpZXAgY3VhIG9uZyB0YS4gDQoNCkNoaW5oIHBodSBkdW9pIHN1IGxhbmggZGFvIGN1 YSBEYW5nIGRhIHBoYWkgZGFwIHVuZyBuaHVuZyB5ZXUgY2F1IGdhbiBuaHUgbWVuaCBsZW5oIA0K Y3VhIE5oYXQ6IGJhdCBIdXluaCBOZ29jIFN5IHBoYWkgZGllbiByYSB0cm9uZyBsdWMgVGhhaSB0 dSBOaGF0IGRlbiBWTiwga2hvbmcgZHVvYyANCnRyZSBob24gZHUgY2hpIG1vdCBuZ2F5OyBOaGF0 IHNlIGR1b2MgcXV5ZW4gc28gaHV1IHR1IDc1JSBkZW4gMTAwJSBjYWMgZG9hbmggbmdoaWVwIA0K dHJvbmcgY2FjIGxpbmggdnVjIGNodSBsdWMgbWEgdHUgdHJ1b2MgZGVuIGdpbyBjaGkgY28gZG9h bmggbmdoaWVwIG5oYSBudW9jIG1vaSBkdW9jIA0KdGhhbSBnaWEgdmkgbHkgZG8gYW4gbmluaCBx dW9jIGdpYSAobmh1IHZpZW4gdGhvbmcsIGRhdSBraGksIGRpZW4gbHVjLCAuLi4uKTsgdmllYyBj byBwaGFuIA0KaG9hIGNhYyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgdHJvbmcgY2FjIGxpbmggdnVj IG5heSB0aGkgcGhpYSBOaGF0IHNlIGR1b2MgdXUgdGllbiBsYSANCmRvaSB0YWMgdmEgY28gZG9u ZyBjaGllbiBsdW9jLiBDaGluaCBQaHUgZGEgY2hpIHRoaSBzdWEgZG9pIGhhbmcgbG9hdCBjYWMg bmdoaSBkaW5oLCB0aGFtIA0KY2hpIHN1YSBsdWF0ICJ0cmluaCIgUXVvYyBIb2kgbmhhbSB0YW8g Y28gc28gbHVhdCBkZSB0aHVjIGhpZW4gY2FjIGNhbSBrZXQgY2hvIE5oYXQuIER1IA0KdGhhbyBs dWF0IHZpZW4gdGhvbmcgY2hvIHBoZXAgdGF0IGNhIGNhYyB0aGFuaCBwaGFuIGtpbmggdGUga2hv bmcgcGhhbiBiaWV0IHNvIGh1dSBkdW9jIA0KcXV5ZW4gdGhhbSBnaWEgdmFvIHZpZWMga2luaCBk b2FuaCBoYSB0YW5nIHZpZW4gdGhvbmcgKHRydW9jIGdpbyBwaGFpIGxhIGRvYW5oIG5naGllcCAN Cm5oYSBudW9jIGhvYWMgbmhhIG51b2MgY2hpZW0gY28gcGhhbiBjaGkgcGhvaSksIGhheSBkZSB4 dWF0IGNoaWEgdGFjaCB0YXAgZG9hbiBFVk4gDQp0aGFuaCBuaHVuZyBkb24gdmkgbmhvIGhvbiBt b2kgbmdoZSBjdSB0dW9uZyBsYSBkZSB0b3QgaG9uIGNobyBkYXQgbnVvYyBuaHVuZyBkb25nIA0K bHVjIGN1YSBjaHVuZyB0aHVjIHJhIGxhIGRlIGRhcCB1bmcgY2FtIGtldCB2b2kgTmhhdC4gDQoN ClF1eWVuIGxvaSBraW5oIHRlIHRoaSBkZSBkYW5nIGJhbiBuaHVuZyBxdXllbiBsb2kgY2hpbmgg dHJpIHNlIGRvaSBjaGFjIHRoZSBuYW8gdGhpIGNodWEgDQpybyBOaGF0IHNlIGRhbmggbnVvYyBj byB0aWVwIHRoZW8gcmEgc2FvLiBOaHVuZyB0b2kgYmF5IGdpbywgYmFuZyBudW9jIGNvIE9EQSwg TmhhdCBkYSANCmRvYXQgZHVvYyBuaHVuZyBxdWFuIGNvIHF1YW4gdHJvbmcgdmEgY2hpZW0gZHVv YyBtb3QgdGhlIGNvIGNodSBkb25nLiBNb3QgdGluaCB0aGUgDQp0aGF0IGRhbmcgYnVvbiBjaG8g ZGFuIHRvYywgZHVuZyBsYSB0aG9pIGRhaSB0b2FuIGNhdSBob2EsIG5ndW9pIHRhIGtob25nIGNh biBkdW5nIGRlbiANCnN1bmcgZGFuIGRlIG1vIHJvbmcgdGh1b2MgZGlhLiBYZW0gVFYgaG9tIHF1 YSB2YSBob20gbmF5IHRoYXkgaG8gdG9hbiBjYSBuZ29pIGNhYyANCm5oYSBkYXUgdHUgTmhhdCwg Y2EgbmdvaSBWTiBsYSBkaWEgZGllbSBkYXUgdHUgaGFwIGRhbiwgbWEgZHVuZyBsYSBoYXAgZGFu IHF1YSBkaSBjaHUuDQoNCmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDkvMDIv Y2FjLW5oYS1iYW8taGF5LWNvLWxlbi5odG1sIDIvMjAwOSBEdW9jIGRhbmcgYm9pIFRyYSBUdSBE byB2YW8gbHVjIDE3OjM2IA0KDQpUaW4gbGllbiBxdWFuIHRvaSB2dSBQQ0kgDQoNCkRhaSBUcnV5 ZW4gaGluaCBWaWV0IE5hbSBWVFYsIG1vdCBkYWkgY3VhIHRydW5nIHVvbmcgZGFpIGRpZW4gY2hv IHF1b2MgZ2lhLCBjYWNoIGRheSANCjIgaG9tLCBjaHVvbmcgdHJpbmggdGhvaSBzdSA3aCB0b2kg KGJhbiB0aW4gcXVhbiB0cm9uZyBuaGF0IHRyb25nIG5nYXkpLCBkdWEgdGluIFRodSANClR1b25n IHRpZXAgMSBEYWkgc3UgaHV1IG5naGkgY3VhIE5oYXQsIG1vdCBjaHVjIHZ1IHR1b25nIHRydW5n IGRlIGxhbSB0dSB0aGllbiwgY2hhbmcgDQpjbyBjaHV0IHF1eWVuIGhhbiBoYXkgdHUgY2FjaCBk YWkgZGllbiBxdW9jIGdpYSBuYW8uIFRodSBUdW9uZyBkYSBwaGFpIHRpZXAgbW90IG5ndW9pIA0K bmh1IHRoZSB0aGkgdGhheSBjYWkgdGhlIGN1YSBxdW9jIGdpYSB4dW9uZyB0aGFwIGRlbiB0aGUg bmFvIHJvaSwgYXkgdmF5IG1hIGNhaSBWVFYgbmF5IA0KbGVuIGdpb25nOiAiVGh1IHR1b25nIHll dSBjYXUgTmhhdCBuaGFuaCBjaG9uZyBub2kgbGFpIGNhcCB2b24gT0RBIHRyb25nIHRoYW5nIDQg DQpuYXkuLi4uLiIuIENoYW5nIGhpZXUgVGh1IFR1b25nIGRhbmcgZ2l1b25nIG9haSB2b2kgTmhh dCBoYXkgZ2l1b25nIG9haSB2b2kgZGFuLiANClRyb25nIGtoaSBkbyB0aGkgdGluIHR1YyB0dSBo YXUgdHJ1b25nIGNobyBiaWV0IENoaW5oIHBodSBkYW5nIHBoYWkgeHVvbmcgbnVvYywgaHVhIA0K aGVuLCBuYW4gbmksIGNhbSBrZXQgbmh1bmcgTmhhdCB2YW4gY2h1YSB0cmEgbG9pIGRvbmcgeSB0 b2kga2hpIG5hbyBWTiBsYW0gcm8gdnUgUENJLiANClRoYWkgdHUgTmhhdCBndWkgZGVuIG1vdCB0 aG9uZyBkaWVwIHJhdCBybyByYW5nIGxhIGNobyBkdSBIb2FuZyBnaWEgTmhhdCBraG9uZyB0aGFt IA0KZ2lhIHZhbyBjaGluaCB0cmkgdmEgY29uZyB2aWVjIGN1YSBDaGluaCBwaHUgTmhhdCwgbmh1 bmcgSG9hbmcgZ2lhIE5oYXQgcmF0IGhpZXUgdGluaCANCmNhbSB2YSB0aGFpIGRvIGN1YSBkYW4g TmhhdC4gTmd1b2kgZGFuIE5oYXQgc2Uga2hvbmcgYmFvIGdpbyB0aGEgdGh1IGNobyBDaGluaCBw aHUgDQpuZXUgdGllcCB0dWMgZGVtIHRpZW4gZG9uZyB0aHVlIGN1YSBkYW4gTmhhdCB0YWkgdHJv IGNobyBub2kgbmFvIG1hIGJpIHRoYW0gbmh1bmcgDQpuaHVuZyBraG9uZyB4dSBseSBybyByYW5n LiBPbmcgY3VuZyBiYXkgdG8gcmFuZyB0aGVvIG9uZyBDaGluaCBwaHUgTmhhdCBzZSBraWVuIHF1 eWV0IA0KeWV1IGNhdSB0cmEgbGFpIG5odW5nIGtob2FuIGRhIHRhaSB0cm8gbmh1bmcgYmkgdGhh bSBsYW0uIFRoZSB2YXkgbWEgYmFuIHRpbiBjdWEgVlRWIA0KaG9tIHJvaSBsYW0gY2hvIG1vaSBu Z3VvaSBjdSB0dW9uZyBWaWV0IE5hbSBkYW5nIHRoYW5nIHRoZS4gDQoNCkh1eW5oIE5nb2MgU3kg ZGFuZyBiaSBiYXQgdmFvIGx1YyBUaGFpIHR1IE5oYXQgdmFvIFZpZXQgTmFtLCBjaHVhIGJpZXQg bGEgY28gbW9pIHF1YW4gDQpoZSBnaSwgbmh1bmcgbmhpbiBoaWVuIHR1b25nIHRoaSB0aGF0IGxh IG5odWMgbmhhLCBjaGFuZyBraGFjIGdpIGhvIHZhbyBkYXQgbnVvYyBuYXkgcmEgbGVuaC4gDQoN Cmh0dHA6Ly9ib3hpdHZuLndvcmRwcmVzcy5jb20vMjAxMC8wOS8wNi9oeS1kJUM2JUIwYS1yYS12 bmgtbW5nLW5nJUUxJUJCJUIxYS8gRGFuZyBib2kgYnZucG9zdCBvbiAwNi8wOS8yMDEwIGx1YyA3 OjQ3IHNhbmcgDQoNCkhheSBkdWEgTGUgVGhhbmggSGFpIHZhIGRvbmcgYm9uIHJhIHRydW9jIHZh bmggbW9uZyBuZ3VhIA0KDQpDT05HIEhPQSBYQSBIT0kgQ0hVIE5HSElBIFZJRVQgTkFNDQpEb2Mg bGFwIJYgVHUgZG8gliBIYW5oIHBodWMNCioqKg0KSGEgTm9pIG5nYXkgNi85LzIwMTANCg0KSEFZ IERVQSBSQSBWQU5IIE1PTkcgTkdVQSBURU4gTEUgVEhBTkggSEFJLCBVWSBWSUVOIEJPIENISU5I IFRSSSBEQU5HIENPTkcgU0FOIFZJRVQgTkFNLCANCkJJIFRIVSBUSEFOSCBVWSwgTkdVWUVOIENI VSBUSUNIIFVCTkQgVFAgSE8gQ0hJIE1JTkggVkEgRE9ORyBCT04gRE8gREEgREFQIE5IQSwgQ1VP UCBEQVQgDQpDVUEgQkEgRFVPTkcgVEhJIEtJTkgsIFRIQU4gTkhBTiBDVUEgQkEgTElFVCBTSSEN Cg0KS2luaCBndWk6IC0gUXVvYyBIb2kgliBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgSG9pDQotIENo dSB0aWNoIE51b2MgTmd1eWVuIE1pbmggVHJpZXQNCi0gTmd1eWVuIENodSB0aWNoIE51b2MgTGUg RHVjIEFuaA0KLSBOZ3V5ZW4gQ2h1IHRpY2ggTnVvYyBUcmFuIER1YyBMdW9uZw0KLSBDaHUgdGlj aCBRdW9jIEhvaSBOZ3V5ZW4gUGh1IFRyb25nDQotIE5ndXllbiBDaHUgdGljaCBRdW9jIEhvaSBO Z3V5ZW4gVmFuIEFuDQotIFRodSB0dW9uZyBDaGluaCBwaHUgTmd1eWVuIFRhbiBEdW5nDQotIE5n dXllbiBUaHUgdHVvbmcgQ2hpbmggcGh1IFBoYW4gVmFuIEtoYWkNCi0gVmllbiB0cnVvbmcgVktT TkRUQyBUcmFuIFF1b2MgVnVvbmcNCi0gQm8gdHJ1b25nIENvbmcgYW4gTGUgSG9uZyBBbmgNCi0g VGh1IHRydW9uZyBDbyBxdWFuIERpZXUgdHJhIJYgQm8gQ29uZyBhbg0KDQpEb25nIGtpbmggZ3Vp OiAtIEJhbiBDaGFwIGhhbmggVHJ1bmcgdW9uZyBEQ1NWTg0KLSBCbyBDaGluaCB0cmkgRENTVk4N Ci0gQmFuIEJpIHRodSBEQ1NWTg0KLSBUb25nIEJpIHRodSBEQ1NWTiBOb25nIER1YyBNYW5oDQot IE5ndXllbiBUb25nIEJpIHRodSBEQ1NWTiBEbyBNdW9pDQotIE5ndXllbiBUb25nIEJpIHRodSBE Q1NWTiBMZSBLaGEgUGhpZXUNCi0gVGh1b25nIHRydWMgQmFuIGJpIHRodSBEQ1NWTiBUcnVvbmcg VGFuIFNhbmcNCi0gVHJ1b25nIEJhbiBUbyBjaHVjIFRydW5nIHVvbmcgRENTVk4gSG8gRHVjIFZp ZXQNCi0gQ2h1IG5oaWVtIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25nIERDU1ZOIE5ndXllbiBW YW4gQ2hpDQoNClRvaSBsYSBDdSBIdXkgSGEgVnUsIENvbmcgZGFuIFZpZXQgTmFtLCBUaWVuIHNp IEx1YXQsIGhvIGtoYXUgdGh1b25nIHRydSB0YWkgMjQgDQpEaWVuIEJpZW4gUGh1LCBIYSBOb2ks IHhpbiBndWkgdG9pIFF1eSB2aSBsb2kgY2hhbyB0cmFuIHRyb25nLg0KDQpDYW4gY3UgTHVhdCBL aGlldSBuYWksIHRvIGNhbywgYmFuZyBEb24gbmF5IHRvaSB0byBjYW8gdmEgeWV1IGNhdSBRdXkg dmkgdHJ1eSBjdXUgdHJhY2ggDQpuaGllbSBoaW5oIHN1IHZhIGR1YSByYSB2YW5oIG1vbmcgbmd1 YSB0ZW4gTGUgVGhhbmggSGFpLCB1eSB2aWVuIEJvIENoaW5oIHRyaSwgQmkgdGh1IA0KVGhhbmgg dXksIG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4gdGhhbmggcGhvIEhvIENoaSBNaW5o IHZhIGRvbmcgYm9uIGRvIGRhIA0KZGFwIG5oYSwgY3VvcCBkYXQgbyBjdWEgYmEgRHVvbmcgVGhp IEtpbmgsIHRoYW4gbmhhbiBjdWEgQmEgTGlldCBzaSwgdGFpIDI1NS82LzI3IE5nbyANClRhdCBU bywgcGh1b25nIDIyIHF1YW4gQmluaCBUaGFuaCwgdGhhbmggcGhvIEhvIENoaSBNaW5oLg0KDQpC YSBEdW9uZyBUaGkgS2luaCwgbmd1eWVuIHF1YW4gdGFpIFRheSBIbywgeGEgUGh1IFRoYWksIGh1 eWVuIFBodSBWYW5nLCB0aW5oIFRodWEgDQpUaGllbiCWIEh1ZSwgaG8ga2hhdSB0aHVvbmcgdHJ1 IHRhaSAyNTUvNi8yNyBOZ28gVGF0IFRvLCBwaHVvbmcgMjIgcXVhbiBCaW5oIFRoYW5oLCANCnRo YW5oIHBobyBIbyBDaGkgTWluaCwgYmFuIHRoYW4gZGEgdGhhbSBnaWEgY2EgaGFpIGN1b2MgY2hp ZW4gdHJhbmggYWkgcXVvYywgY28gbWUgbGEgDQpCYSBNZSBWaWV0IE5hbSBhbmggaHVuZywgY28g Ym8sIGNob25nLCBjb24gdmEgY2EgYm9uIGVtIHRyYWkgbWEgYmEgS2luaCBkYSBnaXVwIG1lIA0K bnVvaSB0dSBuaG8gZGV1IHRoYW0gZ2lhIFZlIFF1b2MgRG9hbiByb2kgUXVhbiBkb2kgbmhhbiBk YW4gVmlldCBOYW0sIHRyb25nIGRvIDMgZW0gDQp0cmFpIER1b25nIFZhbiBDbywgRHVvbmcgVmFu IEh1dSB2YSBEdW9uZyBWYW4gTGluaCBkYSBhbmggZHVuZyBoeSBzaW5oIHRyb25nIA0KY3VvYyBr aGFuZyBjaGllbiBjaG9uZyB0aHVjIGRhbiBQaGFwLCBoaWVuIGRvaSBtaW5oIGNobyBUbyBRdW9j Lg0KDQpWb2kgY29uZyBoaWVuIHRvIGxvbiBuaHUgdmF5IGRvaSB2b2kgRGFuIHRvYyB2YSBjaGlu aCB0aGUgaGllbiBoYW5oLCBiYSBEdW9uZyBUaGkgS2luaCANCmhhbiBwaGFpIGR1b2MgTmhhIG51 b2MgcXVhbiB0YW0gZGFjIGJpZXQsIGNoaSBpdCBsbyBjaG8gbW90IGNobyBvIHRvaSB0aGlldS4N Cg0KVGhlIG5odW5nLCBiYSBEdW9uZyBUaGkgS2luaCBjaGFuZyBuaHVuZyBraG9uZyBkdW9jIE5o YSBudW9jIGNhcCBuaGEsIGRhdCBkZSBvIG1hIA0KY29uIGJpIHRlbiBMZSBUaGFuaCBIYWksIENo dSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENoaSBNaW5oLCBoaWVuIGxhIFV5IHZpZW4gQm8gDQpD aGluaCB0cmksIEJpIHRodSBUaGFuaCB1eSBEYW5nIENvbmcgc2FuIFZpZXQgTmFtIHRoYW5oIHBo byBIbyBDaGkgTWluaCBjdW5nIENodSANCnRpY2ggVUJORCBxdWFuIEJpbmggVGhhbmggTmd1eWVu IEh1dSBOaGFuLCBRdXllbiBDaHUgdGljaCBVQk5EIHF1YW4gQmluaCANClRoYW5oIE5ndXllbiBR dW9jIEh1bmcgdmEgZG9uZyBib24gZGFwIHRhbiBuaGEgdmEgY3VvcCB0cmFuZyBkYXQgbyB0YWkg MjU1LzYvMjcgTmdvIA0KVGF0IFRvLCBwaHVvbmcgMjIgcXVhbiBCaW5oIFRoYW5oLCB0aGFuaCBw aG8gSG8gQ2hpIE1pbmggbWEgYmEgZGEgbXVhIGJhbmcgZG9uZyANCnRpZW4gYmEgY2hhdCBjaGl1 IGNhIGRvaSEgDQoNCk5odW5nIGhhbmggdmkgdG9pIGFjIG5ldSB0cmVuIGN1YSB0ZW4gTGUgVGhh bmggSGFpIHZhIGRvbmcgYm9uIGRpZW4gcmEgY3UgdGhlIG5odSBzYXU6DQpOZ2F5IDAzLzEyLzIw MDIsIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENoaSBNaW5oIExlIFRoYW5oIEhhaSBkYSBy YSBRdXlldCANCmRpbmggc28gNTAxMy9RRC1VQiBuZ2F5IDMvMTIvMjAwMiB2ZSB2aWVjIGdpYW8g OS4wMzkgbTIgZGF0IHRhaSBwaHVvbmcgMjIsIHF1YW4gDQpCaW5oIFRoYW5oICh0cm9uZyBkbyBj byBuaGEsIGRhdCBvIGN1YSBiYSBEdW9uZyBUaGkgS2luaCkgY2hvIENvbmcgdHkgRGF1IHR1IHZh IHhheSANCmR1bmcgVGhhbmggbmllbiB4dW5nIHBob25nIGRvIGVtIHJ1b3QgTGUgVGhhbmggSGFp IGxhIExlIFRhbiBIdW5nIGxhbSBnaWFtIGRvYyBkZSANCnhheSBkdW5nIFRydW5nIHRhbSBUaHVv bmcgbWFpIHRodW9jIHNvIGh1dSB0dSBuaGFuIGNvIGNodWMgbmFuZyBraW5oIGRvYW5oIG5oYSBv LCANCmRpY2ggdnUsIHRodW9uZyBtYWkuDQoNCkRpZXUgMjcgTHVhdCBEYXQgZGFpIDE5OTMgcXV5 IGRpbmg6ICJUcm9uZyB0cnVvbmcgaG9wIHRoYXQgY2FuIHRoaWV0LCBOaGEgbnVvYyB0aHUgaG9p IA0KZGF0IGRhbmcgc3UgZHVuZyBjdWEgbmd1b2kgc3UgZHVuZyBkYXQgZGUgc3UgZHVuZyB2YW8g bXVjIGRpY2ggcXVvYyBwaG9uZywgYW4gbmluaCwgDQpsb2kgaWNoIHF1b2MgZ2lhLCBsb2kgaWNo IGNvbmcgY29uZyIuIExlIGRpIG5oaWVuIFRydW5nIHRhbSBUaHVvbmcgbWFpIGtob25nIHBoYWkg bGEgDQpjb25nIHRyaW5oIHF1b2MgcGhvbmcsIGFuIG5pbmgsIGxvaSBpY2ggcXVvYyBnaWEsIGxv aSBpY2ggY29uZyBjb25nIG5lbiBuZ2F5IGNhIGtoaSBUcnVuZyANCnRhbSBUaHVvbmcgbWFpIHRo dW9jIHNvIGh1dSBOaGEgbnVvYywgVUJORCBUUCBIbyBDaGkgTWluaCBraG9uZyBjbyBxdXllbiB0 aHUgDQpob2kgZGF0IG8gY3VhIGJhIEtpbmgsIGh1b25nIGhvIFRydW5nIHRhbSBUaHVvbmcgbWFp IG5heSB0aHVvYyBzbyBodXUgdHUgbmhhbi4gRG8gDQpkbywgUXV5ZXQgZGluaCBzbyA1MDEzL1FE LVVCIG5nYXkgMy8xMi8yMDAyIGN1YSBDaHUgdGljaCBVQk5EIHRoYW5oIHBobyBIbyBDaGkgDQpN aW5oIExlIFRoYW5oIEhhaSBkdXQga2hvYXQgbGEgaGFuaCB2aSBjb25nIG5oaWVuIGNoaWVtIGRv YXQgaGF5IG5vaSB0cmFuZyByYSBsYSBjdW9wIA0KZGF0IG8gY3VhIGJhIEtpbmghDQoNCkJhbiB0 aGFuIER1IGFuIFRydW5nIHRhbSBUaHVvbmcgbWFpIHR1IG5vIGN1bmcgZGEgYm9jIGxvIGxhIG1v dCBkdSBhbiAibWFmaWEiIHZvaSANCm5odW5nIGNodW5nIGN1IHNhdSBkYXkuDQoNCi0gTmdheSAw NC85LzIwMDIgYmFuZyBDb25nIHZhbiBzbyAzNDkzL0tIRFQtWEQgU28gS0gtRFQgZGUgbmdoaSBV Qk5EIHRoYW5oIA0KcGhvIEhvIENoaSBNaW5oIHhlbSB4ZXQgdmllYyAidGhheSBkb2kgdG9hbiBi byBub2kgZHVuZyBkdSBhbiIgZGUgYmllbiBkdSBhbiBPS1ggDQp0aGFuaCBEdSBhbiBUcnVuZyB0 YW0gVGh1b25nIG1haSBuaHVuZyB0cnVvYyBkbyA5IHRoYW5nLCBuZ2F5IDE1LzEvMjAwMiBDaHUg dGljaCANClVCTkQgVFAgTGUgVGhhbmggSGFpIGRhIHJhIHZhbiBiYW4gc28gMTM5L1VCLURCIGNo aSBkYW8gdGhhbmggbGFwIEhvaSBkb25nIGRlbiBidSANCnRoaWV0IGhhaSwgZ2lhaSBwaG9uZyBt YXQgYmFuZyBjdWEgRHUgYW4uIE5naGlhIGxhIHRlbiBMZSBUaGFuaCBIYWkgZGEgbGFtIGNhaSB2 aWVjIA0KInNpbmggY29uIHJvaSBtb2kgc2luaCBjaGEiIQ0KDQotIENvbmcgdHkgRGF1IHR1IHZh IFhheSBkdW5nIFRoYW5oIG5pZW4geHVuZyBwaG9uZyBsYSAiY2h1IGRhdSB0dSByb20iOiB2b24g dHUgY28gKGtlIA0KY2EgdmF5IG5nYW4gaGFuZykgY2hpIGNoaWVtIDQuMyUgdG9uZyB2b24gZGF1 IHR1IGN1YSBEdSBhbi4gTmdoaWEgbGEgRHUgYW4gZHVvYyBoaW5oIA0KdGhhbmgga2hvbmcgdHJl biBuYW5nIGx1YyBjdWEgY2h1IGRhdSB0dSBtYSBob2FuIHRvYW4gZHVhIHRyZW4gIm5hbmcgbHVj IGN1b3AgZGF0IiBjdWEgDQpjaHUgdGljaCBVQk5EIFRQIEhvIENoaSBNaW5oIExlIFRoYW5oIEhh aS4NCg0KVGh1YyBoaWVuIFF1eWV0IGRpbmggc28gNTAxMy9RRC1VQiBuZ2F5IDMvMTIvMjAwMiBj dWEgQ2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gDQpIbyBDaGkgTWluaCBMZSBUaGFuaCBIYWksIHZh byBzYW5nIDE4LzEwLzIwMDIgQ2h1IHRpY2ggVUJORCBxdWFuIEJpbmggVGhhbmggDQpOZ3V5ZW4g SHV1IE5oYW4gZGEgY3UgbW90IGx1YyBsdW9uZyBkb25nIGRhbyBjb25nIGFuLCBkYW4gcGhvbmcu Li4gZGFwIG5oYSBjdWEgYmEgDQpLaW5oIG5vaSBjbyBCYW4gdGhvIFRvIHRpZW4gdmEgY2FjIExp ZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyBWYW4gSHV1IHZhIER1b25nIA0KVmFuIExpbmggdmEg bmdheSAyNS80LzIwMDIsIFF1eWVuIENodSB0aWNoIFVCTkQgcXVhbiBCaW5oIFRoYW5oIE5ndXll biBRdW9jIA0KSHVuZyBkYSByYSBRdXlldCBkaW5oIHNvIDE0NDIvUUQtVUIgKEJCVCkgIlZlIHZp ZWMgYnVvYyBiYSBEdW9uZyBUaGkgS2luaCBnaWFvIA0KZGF0IHRhaSBzbyAyNTUvNi8yNyBkdW9u ZyBOZ28gVGF0IFRvLCBwaHVvbmcgMjIgcXVhbiBCaW5oIFRoYW5oIGRlIHRodWMgaGllbiBkdSBh biANCnhheSBkdW5nIFRydW5nIHRhbSBUaHVvbmcgbWFpIJYgY2FuIGhvIE5ndXllbiBIdXUgQ2Fu aCwgcGh1b25nIDIyLCBxdWFuIEJpbmggDQpUaGFuaCIgZGUgcm9pIHNhbmcgNy81LzIwMDMgZHVh IGx1YyBsdW9uZyBjdW9wIGx1b24gZGF0IG8gY3VhIGJhIEtpbmghDQoNClF1YSB1YXQgdWMsIGJh IER1b25nIFRoaSBLaW5oIGRhIG5nYSBiZW5oIHZhIGNoZXQgbW90IGNhY2ggdHVjIHR1b2khDQoN ClRodWEgUXV5IHZpLCANCg0KVHV5ZW4gbmdvbiBEb2MgbGFwIG5nYXkgMi85LzE5NDUga2hhbmcg ZGluaDogIlRhdCBjYSBtb2kgbmd1b2kgZGV1IHNpbmggcmEgY28gcXV5ZW4gDQpiaW5oIGRhbmcu IFRhbyBob2EgY2hvIGhvIG5odW5nIHF1eWVuIGtob25nIGFpIGNvIHRoZSB4YW0gcGhhbSBkdW9j OyB0cm9uZyBuaHVuZyANCnF1eWVuIGF5LCBjbyBxdXllbiBkdW9jIHNvbmcsIHF1eWVuIHR1IGRv IHZhIHF1eWVuIG11dSBjYXUgaGFuaCBwaHVjIi4NCg0KSGllbiBwaGFwIHF1eSBkaW5oIHZlIE5o YSBudW9jIHZhIG5odW5nIHF1eWVuIGNvIGJhbiBjdWEgY29uZyBkYW4gVmlldCBOYW0gdHJvbmcg DQpkbzoNCg0KLSBEaWV1IDI6ICJOaGEgbnVvYyBDb25nIGhvYSB4YSBob2kgY2h1IG5naGlhIFZp ZXQgTmFtIGxhIE5oYSBudW9jIGN1YSBuaGFuIGRhbiwgZG8gDQpuaGFuIGRhbiwgdmkgbmhhbiBk YW4iLg0KLSBEaWV1IDM6ICJOaGEgbnVvYyBiYW8gZGFtIHZhIGtob25nIG5ndW5nIHBoYXQgaHV5 IHF1eWVuIGxhbSBjaHUgdmUgbW9pIG1hdCBjdWEgDQpuaGFuIGRhbiwgbmdoaWVtIHRyaSBtb2kg aGFuaCBkb25nIHhhbSBwaGFtIGxvaSBpY2ggY3VhIFRvIHF1b2MgdmEgY3VhIG5oYW4gZGFuOyB4 YXkgDQpkdW5nIGRhdCBudW9jIGdpYXUgbWFuaCwgdGh1YyBoaWVuIGNvbmcgYmFuZyB4YSBob2ks IG1vaSBuZ3VvaSBjbyBjdW9jIHNvbmcgYW0gbm8sIHR1IA0KZG8sIGhhbmggcGh1YywgY28gZGll dSBraWVuIHBoYXQgdHJpZW4gdG9hbiBkaWVuIi4NCg0KLSBEaWV1IDQ4OiAiTmhhIG51b2MgcGhh dCBodXkgdGluaCB0aGFuIHlldSBudW9jIHZhIGNodSBuZ2hpYSBhbmggaHVuZyBjYWNoIG1hbmcg Y3VhIA0KbmhhbiBkYW4uLi50aHVjIGNoaW5oIHNhY2ggaGF1IHBodW9uZyBxdWFuIGRvaSIuIA0K DQotIERpZXUgNTg6ICJDb25nIGRhbiBjbyBxdXllbiBzbyBodXUgdmUgdGh1IG5oYXAgaG9wIHBo YXAsIGN1YSBjYWkgZGUgZGFuaCwgbmhhIG8uLi4gDQpOaGEgbnVvYyBiYW8gaG8gcXV5ZW4gc28g aHV1IGhvcCBwaGFwIHZhIHF1eWVuIHRodWEga2UgY3VhIGNvbmcgZGFuIi4NCg0KLSBEaWV1IDcw OiAiQ29uZyBkYW4gY28gcXV5ZW4gdHUgZG8gdGluIG5ndW9uZywgdG9uIGdpYW8uLi5OaHVuZyBu b2kgdGhvIHR1IGN1YSBjYWMgdGluIA0Kbmd1b25nLCB0b24gZ2lhbyBkdW9jIHBoYXAgbHVhdCBi YW8gaG8iLg0KDQpQaGFwIGxlbmggVXUgZGFpIG5ndW9pIGhvYXQgZG9uZyBjYWNoIG1hbmcsIGxp ZXQgc2kgdmEgZ2lhIGRpbmggbGlldCBzaSwgdGh1b25nIGJpbmgsIGJlbmggDQpiaW5oLCBuZ3Vv aSBob2F0IGRvbmcga2hhbmcgY2hpZW4sIG5ndW9pIGNvIGNvbmcgZ2l1cCBkbyBjYWNoIG1hbmcg dGFpIERpZW0gYSwgS2hvYW4gDQoyIERpZXUgOSBxdXkgZGluaDoiR2lhIGRpbmggbGlldCBzaSBk dW9jIHV1IHRpZW4gZ2lhbyBkYXQsIGR1b2MgZ2lhaSBxdXlldCBkYXQgbywgaG8gdHJvIGRlIA0K Y28gbmhhIG8uIg0KDQpDaHUgdGljaCBIbyBDaGkgTWluaCBsdW9uIGJpZXQgb24gY2FjIExpZXQg c2k6DQoNCi0gVGh1IG5oYW4gY2FjIGNvbiBsaWV0IHNpIGxhbSBjb24gbnVvaSBuZ2F5IDExLTEx LTE5NDY6ICIuLi5Ub2kgZ3VpIGxvaSBjaHVjIHRoYW4gYWkgY2hvIA0KY2FjIGdpYSBkaW5oIGxp ZXQgc2kgZG8gdmEgdG9pIG5oYW4gY2FjIGNvbiBsaWV0IHNpIGxhbSBjb24gbnVvaSBjdWEgdG9p Ii4NCg0KLSBUaHUgZ3VpIEdpYW0gZG9jIFNvIFkgdGUgQmFjIEJvLCBuZ2F5IDctMS0xOTQ3OiAi Li4uaG8gY2hldCBjaG8gVG8gcXVvYyBzb25nIG1haSwgDQp2YXQgY2hhdCBobyBtYXQgZGkgbmh1 bmcgdGluaCB0aGFuIGhvIHNlIGx1b24gc29uZyBtYWkgdm9pIG5vbiBzb25nIFZpZXQgTmFtLiBO aHVuZyANCnRoYW5oIG5pZW4gZG8gbGEgYW5oIGh1bmcgZGFuIHRvYy4gRG9uZyBiYW8gdmEgVG8g cXVvYyBzZSBraG9uZyBiYW8gZ2lvIHF1ZW4gb24gaG8uIg0KDQotIERpZW4gdHUgdGFpIGJ1b2kg bGUgZGF0IHZvbmcgaG9hIG8gRGFpIExpZXQgc2kgbmdheSAzMS0xMi0xOTU0OiAiLi4uIENhYyBs aWV0IHNpIGhpIHNpbmgsIA0Kbmh1bmcgY29uZyB0cmFuZyB0byBsb24gY3VhIGNhYyBsaWV0IHNp IGRhIGdoaSBzYXUgdmFvIGxvbmcgdG9hbiBkYW4gdmEgbm9uIHNvbmcgZGF0IA0KbnVvYy4gQ2Fj IGxpZXQgc2kgZGEgaGkgc2luaCwgbmh1bmcgY2hpIGtoaSBkdW5nIGNhbSBjdWEgY2FjIGxpZXQg c2kgZGEgdGhhbSBuaHVhbiB2YW8gDQp0YW0gaG9uIGN1YSB0b2FuIHF1YW4gdmEgZGFuIHRhIHRy b25nIGN1b2MgZGF1IHRyYW5oIGRhbmcgZ2lhbmggaG9hIGJpbmgsIHRob25nIG5oYXQsIA0KZG9j IGxhcCB2YSBkYW4gY2h1IHRyb25nIG51b2MuIE1hdSBub25nIGN1YSBjYWMgbGlldCBzaSBkYSBu aHVvbSBsYSBxdW9jIGtpIHZlIHZhbmcgDQpjYW5nIHRoZW0gZG8gdGhhbS4gVGllbmcgdGhvbSBj dWEgY2FjIGxpZXQgc2kgbXVvbiBkb2kgbHV1IHRydXllbiBzdSB4YW5oLiINCg0KLSBUaHUgZ3Vp IEJvIHRydW9uZyBCbyBUaHVvbmcgYmluaCBuZ2F5IDI3LTctMTk1NjogIlRodW9uZyBiaW5oLCBi ZW5oIGJpbmgsIGdpYSANCmRpbmggcXVhbiBuaGFuIHZhIGdpYSBkaW5oIGxpZXQgc2kgbGEgbmh1 bmcgbmd1b2kgY28gY29uZyB2b2kgVG8gcXVvYywgdm9pIG5oYW4gZGFuLiANCkNobyBuZW4gYm9u IHBoYW4gY3VhIGNodW5nIHRhIGxhIHBoYWkgYmlldCBvbiwgcGhhaSB0aHVvbmcgeWV1IHZhIGdp dXAgZG8gaG8uIiANCg0KTmh1IHZheSwgYmFuZyB2aWVjIGRhcCBuaGEsIGRhcCBub2kgdGhvIHR1 IHRvIHRpZW4gdmEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyANClZhbiBIdXUgdmEg RHVvbmcgVmFuIExpbmgsIGN1b3AgZGF0IG8gY3VhIGJhIER1b25nIFRoaSBLaW5oIGNobyBlbSBy dW90IG1pbmggTGUgDQpUYW4gSHVuZywgY3VvcCBkaSBjYWkgUXV5ZW4gQ29uIE5ndW9pIHRvaSB0 aGlldSBuaGF0LCBRdXllbiBNdXUgY2F1IGhhbmggcGh1YyB0b2kgDQp0aGlldSBuaGF0IGN1YSBj b25nIGRhbiBsYSBRdXllbiBjbyBuaGEgbywgdGVuIGFjIG9uIExlIFRoYW5oIEhhaSwgVXkgdmll biBCbyBDaGluaCANCnRyaSwgQmkgdGh1IFRoYW5oIHV5IERhbmcgQ29uZyBzYW4gVmlldCBOYW0s IG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4gVGhhbmggDQpwaG8gSG8gQ2hpIE1pbmgg Y3VuZyBjYWMgdGVuIE5ndXllbiBIdXUgTmhhbiwgQ2h1IHRpY2ggdmEgTmd1eWVuIFF1b2MgSHVu ZywgDQpRdXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4gcXVhbiBCaW5oIFRoYW5oLCB0aGFu aCBwaG8gSG8gQ2hpIE1pbmggdmEgZG9uZyBib24gDQpraGFjIGRhIHRyYW5nIHRyb24gY2hhIGRh cCBUdXllbiBuZ29uIERvYyBsYXAsIEhpZW4gcGhhcCB2YSBwaGFwIGx1YXQsIG5nYW5nIG5oaWVu IA0KbmdvaSB4b20gbGVuIG5odW5nIGxvaSBrZXUgZ29pIGJpZXQgb24gTGlldCBzaSBjdWEgQ2h1 IHRpY2ggSG8gQ2hpIE1pbmgsIGxhdCBkbyB0cmVuIHRodWMgDQp0ZSBjaGluaCBxdXllbiBjdWEg RGFuLCBkbyBEYW4sIHZpIERhbiB2YSBkbyBkbyBsYSAibHUgY3VvcCBuZ2F5IiwgbGEgZ2lhYywg bGEgIm5vaSB4YW0iIA0KliBLZSBUaHUgY3VhIHRvYW4gdGhlIG5oYW4gZGFuIFZpZXQgTmFtIQ0K DQpCYW4gdGhhbiBRdXkgdmkgbHVvbiBsdW9uIG5ldSBjYW8gVHV5ZW4gbmdvbiBEb2MgbGFwLCBs dW9uIGtldSBnb2kgIlNvbmcgdmEgbGFtIHZpZWMgdGhlbyBIaWVuIHBoYXAgdmEgUGhhcCBsdWF0 IiwgIkhvYyB0YXAgdGFtIGd1b25nIGRhbyBkdWMgSG8gQ2hpIE1pbmgiLCAiQ2hvbmcgZGllbiAN CmJpZW4gaG9hIGJpbmgsIGxhdCBkbyBjaGluaCBxdXllbiBuaGFuIGRhbiBjdWEgY2FjIHRoZSBs dWMgdGh1IGRpY2giLCB2LnYuIHZhIHYudi4gVmF5IGNvbiANCmNobyBnaSBudWEgbWEgUXV5IHZp IGtob25nIGxvaSBjbyB0ZW4gYWMgb24gTGUgVGhhbmggSGFpIGN1bmcgZG9uZyBib24gcmEgeGV0 IHh1IHRydW9jIA0KVG9hIGFuIE5oYW4gZGFuIGRlIGJhdCBjaHVuZyBwaGFpIERlbiBObyBNYXUg bWEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyANClZhbiBIdXUgdmEgRHVvbmcgVmFu IExpbmggZGEgZG8gcmEgZGUgVG8gUXVvYyBxdXlldCBzaW5oIQ0KDQpUcmVuIHRpbmggdGhhbiBk bywgbmhhbiBLeSBuaWVtIGxhbiB0aHUgNjUgTmdheSBEb2MgbGFwIDIvOSwgdG9pLCBDdSBIdXkg SGEgVnUsIHlldSANCmNhdSBRdXkgdmkga2hhbiBjYXAgY2hpIGRhbyBob2FjIHRydWMgdGllcDoN Cg0KMS4gS2hvaSB0byBiaSBjYW4gdmEgYmF0IGdpYW0gTGUgVGhhbmggSGFpIHZhIE5ndXllbiBI dXUgTmhhbiwgTmd1eWVuIFF1b2MgSHVuZyANCmN1bmcgZG9uZyBib24ga2hhYyBkZSBkdWEgY2h1 bmcgcmEgdmFuaCBtb25nIG5ndWEgZGUgYnVvYyBjaHVuZyBsYW5oIGFuIHZlICJUb2kgaHV5IA0K aG9haSB0YWkgc2FuIiBxdXkgZGluaCB0YWkgRGlldSAxNDMsICJUb2kgY29uZyBuaGllbiBjaGll bSBkb2F0IHRhaSBzYW4iIHF1eSBkaW5oIHRhaSANCkRpZXUgMTM3LCAiVG9pIGhvYXQgZG9uZyBu aGFtIGxhdCBkbyBjaGluaCBxdXllbiBuaGFuIGRhbiIgcXV5IGRpbmggdGFpIERpZXUgNzkgQm8g DQpMdWF0IGhpbmggc3UgZG8gZGEgZGFwIG5oYSwgZGFwIG5vaSB0aG8gdHUgdG8gdGllbiB2YSBj YWMgTGlldCBzaSBEdW9uZyBWYW4gQ28sIER1b25nIA0KVmFuIEh1dSB2YSBEdW9uZyBWYW4gTGlu aCwgY3VvcCBkYXQgbyBjdWEgYmEgRHVvbmcgVGhpIEtpbmggZG9uZyB0aG9pIGRlIGJ1b2MgDQpj aHVuZyB0cmEgbGFpIGNobyBuaHVuZyBuZ3VvaSB0aHVhIGtlIGJhIER1b25nIFRoaSBLaW5oIG5o YSB2YSBkYXQgbyBtYSBjaHVuZyBkYSBkYXAgDQp2YSBjdW9wIGN1YSBiYSBLaW5oLg0KDQoyLiBU cnV5IGNhcCBuaGEgbywgZGF0IG8gY2hvIGJhIER1b25nIFRoaSBLaW5oIHRoZW8gdGlldSBjaHVh biB0aGFuIG5oYW4gY28gY29uZyBudW9pIA0KY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9u ZyBWYW4gSHV1IHZhIER1b25nIFZhbiBMaW5oLg0KDQpEZSBuZ2hpIFF1eSB2aSBnaWFpIHF1eWV0 IERvbiB0byBjYW8gbmF5IHRoZW8gZHVuZyBxdXkgZGluaCBjdWEgTHVhdCBLaGlldSBuYWksIHRv IGNhby4NCg0KVHJhbiB0cm9uZywgDQpEVDogMDkwNDM1MDE4NywgRW1haWw6IGhhdnVsYXdAeWFo b28uY29tLiBUaWVuIHNpIEx1YXQgQ3UgSHV5IEhhIFZ1IA0KUGh1IGx1YzoNCg0KKEFuaCBjaHVw OiBOaGEgY3VhIGJhIER1b25nIFRoaSBLaW5oIGRhbmcgYmkgZGFwIHBoYSwgY29uZyBhbiBkdW5n IHhlbSkNCihBbmggY2h1cDogQmllbiBsYWkgYnV1IGRpZW4gbmhhbiBjaHV5ZW4gZG9uIHRvIGNh byBjdWEgVFMuIEN1IEh1eSBIYSBWdSkgIA0KDQpodHRwOi8vd3d3LnF1YW4yLmhvY2hpbWluaGNp dHkuZ292LnZuL2ludHJvLmFzcHg/SW5mb0NvZGU9NDE0DQoNClRQIEhDTTogT25nIE5ndXllbiBN aW5oIFRyaWV0IGxhIGRhaSBiaWV1IFF1b2MgaG9pLCBkb2FuIFRQIEhDTSANCg0KaHR0cDovL3Zp ZXRiYW8udm4vWGEtaG9pL0NodS10aWNoLW51b2MtTmd1eWVuLU1pbmgtVHJpZXQtdGllcC14dWMt Y3UtdHJpLUNoaW5oLXRvaS1jb24tYmktdGh1LXR1Yy1oYW5oLzQwMjMwNzc0LzE1Ny8gTEUgQU5I IERVIDI0LzExLzIwMDcsIDA3OjM3IEdNVCs3DQoNCk9uZyBDaHUgdGljaCBudW9jIE5ndXllbiBN aW5oIFRyaWV0IHRpZXAgeHVjIGN1IHRyaTogDQoNCisgRGUgbmdoaSB0aGFuaCB0cmEgdG9hbiBk aWVuIGR1IGFuIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbQ0KDQpUcnVvYyBuaHVuZyBidWMgeHVj IGN1YSBuaGlldSBuZ3VvaSBkYW4gcXVhbiAyIHRhaSBidW9pIHRpZXAgeHVjIGRhaSBiaWV1IFF1 b2MgaG9pIGNoaWV1IDIzLTExLCANCkNodSB0aWNoIG51b2MgTmd1eWVuIE1pbmggVHJpZXQgcXVh IHF1eWV0Og0KDQoiVG9pIHNlIHRydWMgdGllcCBwaGFuIGFuaCB2YSBkZSBuZ2hpIFRodSB0dW9u ZyBDaGluaCBwaHUgY2hvIGxhcCBkb2FuIHRoYW5oIHRyYSB0b25nIA0KaG9wIGR1IG1hbmggdmFv IHRoYW5oIHRyYSB0b2FuIGRpZW4gZHUgYW4ga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIHR1IHF1 aSBob2FjaCwgcXVhbiANCmx5LCBzdSBkdW5nIGRhdC4uLiBkZW4gMTYwaGEgZGF0IHRhaSBkaW5o IGN1IG1hIGN1IHRyaSBxdWFuIDIgZGFuZyB0aGFjIG1hYyIuDQoNClRydW9jIGRvLCBtb3QgbGFu aCBkYW8gVGhhbmggdHJhIENoaW5oIHBodSBjdW5nIGNobyBiaWV0IHNlIGRlIG5naGkgVGh1IHR1 b25nIGNobyANCnRoYW5oIHRyYSB0b2FuIGRpZW4gdmllYyBxdWFuIGx5LCBzdSBkdW5nIGRhdCB0 cmVuIGRpYSBiYW4gcXVhbiAyLCB0cm9uZyBkbyBjbyBkdSBhbiBraHUgDQpkbyB0aGkgbW9pIFRo dSBUaGllbS4gIlZpZWMgbmFvIGR1bmcgY2FuIHBoYWkgZHVvYyBrZXQgbHVhbiwgdW5nIGhvIFRQ IHRpZXAgdHVjIGxhbSwgDQpjaG8gbmFvIHNhaSBjdW5nIGNhbiBwaGFpIGtoYW5nIGRpbmggZGUg Y2hhbiBjaGluaCwga2hhYyBwaHVjIiAtIHZpIGxhbmggZGFvIG5heSBub2kuDQoNClRyb25nIGx1 YyBjaG8gc3UgZ2lhaSBxdXlldCBjdWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nLCBDaHUgdGljaCBu dW9jIGRlIG5naGkgbmd1b2kgZGFuIA0KYmkgYW5oIGh1b25nIGN1YSBkdSBhbiBUaHUgVGhpZW0g Y2FuIGhldCBzdWMgYmluaCB0aW5oLiBTdSB1bmcgaG8gY3VhIENodSB0aWNoIG51b2MgDQpkdW9j IGN1IHRyaSBxdWFuIDIgbmhpZXQgbGlldCBkb25nIHRpbmguIFR1eSBuaGllbiwgdGhlbyBjdSB0 cmksIGRvYW4gdGhhbmggdHJhIG5ldSB2YW8sIGNhbiANCnRoaWV0IHBoYWkgdGllcCB4dWMgdm9p IG5ndW9pIGRhbiBkZSBuYW0gdGhvbmcgdGluIGR1b2MgZGF5IGR1IGhvbi4gVHJ1b2MgZG8sIGto aSBuZXUgeSANCmtpZW4sIGN1IHRyaSBraG9uZyBkb25nIHRpbmggdm9pIGNhY2ggZ2lhaSB0aGlj aCBjdWEgVUJORCBUUCB0YWkgdmFuIGJhbiA3MzkzIG5nYXkgMzEtDQoxMC0yMDA3IGd1aSBUaHUg dHVvbmcgQ2hpbmggcGh1IGJhbyBjYW8gdmllYyB0aHVjIGhpZW4gcXVpIGhvYWNoIGRhdSB0dSBr aHUgZG8gdGhpIA0KbW9pIFRodSBUaGllbS4NCg0KQ3UgdHJpIGNobyByYW5nIGNvbiBuaGlldSBk aWV1IGtodWF0IHRhdCBwaGlhIHNhdSBkdSBhbiBuYXkgY2FuIHBoYWkgZHVvYyBsYW0gcm8uIEN1 IHRyaSANCmN1bmcga2hvbmcgYmFuZyBsb25nIHZvaSBjaGkgZGFvIG1vaSBkYXkgY3VhIGJpIHRo dSBUaGFuaCB1eSBUUC5IQ00gcmFuZyAia2hhbiANCnRydW9uZyBjaHVhbiBiaSBkYXkgZHUgcXVp IGRhdCB0YWkgZGluaCBjdSB0cm9uZyBwaGFtIHZpIG5hbSBwaHVvbmcgZGUgeGF5IGR1bmcgDQox Mi41NTUgY2FuIGhvIGNodW5nIGN1IGRhcCB1bmcgeWV1IGNhdSB0YWkgZGluaCBjdSBjaG8gbmd1 b2kgZGFuIHRyb25nIGR1IGFuIiwgdmkgdGhlbyANCmN1IHRyaSwga2hvbmcgdGhlIGRvbiBxdWEg bmhpZXUgbmd1b2kgdmFvIGNodW5nIGN1Lg0KDQpTYW5nIGN1bmcgbmdheSwgY3UgdHJpIHF1YW4g MSBtb3QgbGFuIG51YSBidWMgeHVjIHRydW9jIHRpbmggdHJhbmcgcXVpIGhvYWNoICJ0cmVvIiBk YW4gDQpkZW4gInRyZW8iIGNhIGN1b2Mgc29uZyBuZ3VvaSBkYW4uICJLaGkgbmFvIGNvIG5ndW9p IHlldSB0aGkgaGF5IHRpbmggZGVuIGNodXllbiBjdW9pIA0Kdm8iLCBjdSB0cmkgdmkgdm9uIG5o dSB2YXkgZGUgZGUgbmdoaSBjaGluaCBxdXllbiBraGkgbmFvIGNvIHRpZW4sIGtoaSBuYW8gdGlt IGR1b2MgZG9pIA0KdGFjIHhheSBkdW5nIHRoaSBoYXkgcXVpIGhvYWNoIGdpYWkgdG9hLCBjaHUg ZHVuZyBraG9hbmggdnVuZyBkZSBkbyByYXQga2hvIGNobyBkYW4uIA0KIlF1aSBob2FjaCB0cmVv IGhpZW4gbmF5IGdpb25nIG5odSBiYXQgbmd1b2kgdGEgbmhvdCB2YW8gdGh1bmcgcGh1eSwgbGF1 IGxhdSBkaSBuZ2FuZyANCmdvIG1heSBjYWkiIC0gY3UgdHJpIHNvIHNhbmguDQoNCkxpZW4gcXVh biBkZW4gdGh1IHR1YyBoYW5oIGNoaW5oLCBtb3QgY3UgdHJpIGNobyBiaWV0OiAiQ28gY3UgYmEg aG9uIDcwIHR1b2ksIHNhdSBraGkgDQpjaG9uZyBjaGV0IGR1b2MgbW90IG5hbSB0aGkgbW9pIHRp ZW4gaGFuaCBsYW0gZ2lheSB0byBuaGEgZGF0LiBMZW4gcXVhbiwgY2FuIGJvIHlldSANCmNhdSBw aGFpIGJvIHR1YyBnaWF5IGNodW5nIHR1LiBTYXUga2hpIG5vcCBnaWF5IGNodW5nIHR1IHRoaSBj YW4gYm8geWV1IGNhdSBibyBzdW5nIGdpYXkgDQp4YWMgbmhhbiBkb2MgdGhhbiIuIENhIGhvaSB0 cnVvbmcga2hvbmcgYWkgbmluIGR1b2MgY3VvaS4gQ2h1IHRpY2ggbnVvYyBjaGlhIHNlOiAiVGh1 IA0KdHVjIGNvbiBsYW0gbmhpZXUga2hlLCBjaGluaCB0b2kgY29uIGJpIHRodSB0dWMgaGFuaCIu IFRoZW8gQ2h1IHRpY2ggbnVvYywgY29uIHF1YSBuaGlldSANCnF1aSBkaW5oIGJhdCBob3AgbHks IHR1b25nIHJhbmcgcXVpIGRpbmggY2hpIHRpZXQgdGhpIGJhbyB2ZSBjaG8gbmd1b2kgZGFuIG5o dW5nIHRodWMgY2hhdCBsYSBsYW0ga2hvIG5ndW9pIGRhbi4gDQoNCmh0dHBzOi8vZGFpbHl2bmV3 cy53b3JkcHJlc3MuY29tLzIwMTAvMTAvMDkvbGUtdGhhbmgtaCVFMSVCQSVBM2ktbmd1eSVFMSVC QiU4NW4tdCVFMSVCQSVBNW4tZHVuZy12YS12JUUxJUJCJUE1LWMlQzYlQjAlRTElQkIlOUJwLTE1 LXQlRTElQkIlQjctdXNkLXQlRTElQkElQTFpLWtodS1kby10aCVFMSVCQiU4Qi1tJUUxJUJCJTlC aS10aCVFMSVCQiVBNy10aGllbS1xdSVFMSVCQSVBRG4tMi10cGhjbS8gRGFpbHlWTmV3cyBEYW4g RGVuIDA5LzEwLzIwMTAgDQoNCkxlIFRoYW5oIEhhaSwgTmd1eWVuIFRhbiBEdW5nLCBOZ3V5ZW4g TWluaCBUcmlldCB2YSB2dSBjdW9wIDE1IHR5IFVTRCB0YWkga2h1IGRvIHRoaSBtb2kgVGh1IFRo aWVtIHF1YW4gMiBUUEhDTQ0KDQpUaHUgZG9hbiBjdW9wIGRhdCB2YSB2dSBWaW5hc2luIDINCg0K S2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIJYgUXVhbiAyIJYgVFBIQ00gbGEgbWFuaCBkYXQgcm9u ZyA5MzBoYSBuYW0gbmdheSBiZW4gDQpibyBjb24gc29uZyBTYWkgR29uLCBkb2kgZGllbiBraHUg dHJ1bmcgdGFtIHNhbSB1YXQgc2FuZyB0cm9uZyBzbyAxIHRoYW5oIHBoby4gRG8gY28gdmkgDQp0 cmkgdHV5ZXQgZGVwIG5odSB2YXkgbmVuIFRodSBUaGllbSB0YXQgeWV1IGRhIHRybyB0aGFuaCBt aWVuZyBtb2kgdGhvbSBoYXAgZGFuIGNhYyANCmRhaSBnaWEgYmF0IGRvbmcgc2FuIHZhIG1vdCBz byBxdWFuIGNodWMgYmllbiBjaGF0IGN1YSBUUCBIbyBDaGkgTWluaCB2YSBUcnVuZyBVb25nLiAN Cg0KVHUgMjAwMiwgbGFuaCBkYW8gdGhhbmggcGhvIG1hIGx1YyBkbyBvbmcgTGUgVGhhbmggSGFp IGxhIGNodSB0aWNoIHRoYW5oIHBobyBkYSB2b2kgdmEgDQpyYSBsZW5oIHRodSBob2kgZGF0IGto aSBjaHVhIHRodWMgaGllbiBuaHVuZyBxdXkgZGluaCBiYXQgYnVvYyBjdWEgcGhhcCBsdWF0LiBT dSB2byB0cmFjaCANCm5oaWVtIHRoYXkgcmF0IHJvIGtoaSBkdSBhbiBraHUgZG8gdGhpIG1vaSBU aHUgVGhpZW0gZHVvYyBnb2kgbW90IGNhY2ggbWlhIG1haSBsYSBkdSANCmFuIEJPTiBLSE9ORzog Imtob25nIGR1IGFuIGRhdSB0dSwga2hvbmcgcXV5IGhvYWNoIGNoaSB0aWV0LCBraG9uZyBwaHVv bmcgYW4gYm9pIA0KdGh1b25nLCBraG9uZyBuaGEgdGFpIGRpbmggY3UiLiBLaG9uZyBkdW5nIGxh aSBvIGRvLCB2b2kgZGEgdGFtICd0aHUgaG9pIGRhdCB2b2kgY2hpIHBoaSANCnRoYXAgbmhhdCcs IExlIFRoYW5oIEhhaSBkYSBjaGkgZGFvIGRhbiBlbSBsYXkgZ2lhIGRhdCB0dSBuYW0gMTk5NSAo dGhlbyBxdXlldCBkaW5oIDA1IA0KbmdheSA0LzEvMTk5NSkgZGUgYm9pIHRodW9uZyBjaG8gZGFu IHR1IG5hbSAyMDAyIGRlbiBnaW8gYmF0IGNoYXAgY2FjIHF1eSBkaW5oIGN1YSANClF1b2MgaG9p IHZhIENoaW5oIHBodSBib2kgdGh1b25nIHNhdCBnaWEgdGhpIHRydW9uZy4NCg0KU3UgYmF0IGhv cCBsaSBvIGRheSBsYSBjaGVuaCBsZWNoIGdpYSBib2kgdGh1b25nIHZhIGdpYSB0aGkgdHJ1b25n IHZ1b3QgcXVhIHN1YyB0dW9uZyANCnR1b25nIGN1YSBtb2kgbmd1b2ksIHRoZW8gcXV5ZXQgZGlu aCAxMzUvUUQtVUIgbmdheSAyMS8xMS8yMDAyIGN1YSBVQk5EIFRQSENNLCANCmdpYSBib2kgdGh1 b25nIGRhdCBvIGxhIGtob2FuZyAyIHRyaWV1IGRvbmcgbW90IG1ldCB2dW9uZywgZGF0IG5vbmcg bmdoaWVwIDIwMC4wMDAgDQpkb25nIG1vdCBtZXQgdnVvbmcsIGNvbiBnaWEgdGhpIHRydW9uZyB0 aGkgY2FvIHZvdCwgZGF0IG8gdHJvbmcgZHUgYW4gNzAgdHJpZXUgZG9uZywgZGF0IA0Kbm9uZyBu Z2hpZXAgYmFuZyA0MCUga2hvYW5nIDI4IHRyaWV1IGRvbmcuIFRyb25nIGx1YyBRdW9jIGhvaSB2 YSBDaGluaCBwaHUgdHJpbmggDQp0cm9uZyB0aG9uZyBjYW8gdm9pIHF1b2MgZGFuIHJhbmcgdHUg bmFtIDIwMDMgc2UgYm9pIHRodW9uZyBkYXkgZHUgbmh1bmcgdGhpZXQgaGFpIG1hIA0KbmhhIG51 b2MgZ2F5IHJhIGtoaSB0aHUgaG9pIGRhdCBjdWEgZGFuLCBib2kgdGh1b25nIHNhdCBnaWEgdGhp IHRydW9uZywgdGhpIG8gU2FpIEdvbiwgTGUgDQpUaGFuaCBIYWkgbGFpIGJhdCBjaGFwIGhldCB0 YXQgY2EgcXV5IGRpbmggY3VhIGNhcCB0cmVuIGRlIG5lbyBnaWEgYm9pIHRodW9uZyBob24gY2h1 YyANCm5hbSBxdWEgdm8gbHkgbGFtIGhhaSBkYW4gZGVuLiBDaGVuaCBsZWNoIGdpYSBib2kgdGh1 b25nIGxlbiBkZW4gaGFuZyBjaHVjIHRoYW0gY2hpIA0KaGFuZyB0cmFtIGxhbiBjaGFjIGNoYW4g cGhhaSBsYW0gZGVtIGRlbiBuaHVuZyBxdXllbiBsb2kga2hvbmcgbG8gbmh1bmcgaG9hbiB0b2Fu IA0KcGhpIHBoYXAgY2hvIExlIFRoYW5oIEhhaSB2YSBlIGtpcC4gVGluaCBzbyBzbyBtb2kgbWV0 IHZ1b25nIGRhdCBjYWMgcXVhbiBsYW0gJ3ZlbmgnIA0KcmEgZHVvYyAzMCB0cmlldSBkb25nIHRo aSB0b25nIHNvIHRpZW4gZGFuIFRodSBUaGllbSBiaSAnbmFuZycgbWF0IHNlIGxhIG1vdCBjb24g c28gdm9pIA0Kdm8gc28gbmh1bmcgc28gMCBkYW5nIHNhdTogMjcwLjAwMCB0eSBkb25nIHR1b25n IGR1b25nIChsb24gZ2FwIDMgbGFuIHNvIHRpZW4gDQp0aGlldCBoYWkgY3VhIHZ1IGFuIFZpbmFz aW4uIEtob25nIGNvbiBuZ2hpIG5nbyBnaSBudWEsIHZ1ICdjdW9wIGRhdCcgbyBUaHUgVGhpZW0g dmEgDQp2dSBWaW5hc2luIGxhIDIgdnUgYW4gdGhhbSBuaHVuZyBsb24gbmhhdCB0cm9uZyBsaWNo IHN1IGNhY2ggbWFuZyBWaWV0IE5hbS4NCg0KTmFtIDIwMDgsIHNhdSBraGkgbGFtIHNvbmcgcGhh biBubyBjdWEgbmd1b2kgZGFuIFRodSBUaGllbSB2ZSBjYWMgcXV5IGRpbmggYm9pIA0KdGh1b25n IHF1YSB2byBsaSAnbm8gdHVuZycgdHJlbiBjYWMgdG8gYmFvIHV5IHRpbiBjdWEgY2EgbnVvYywg dGhhbmggcGhvIHZhIHF1YW4gMiBkYSB0aW0gDQpjYWNoICd4b2EgZGl1JyBuaGFuIGRhbiB2YSBt b3QgYmFuIGR1IHRoYW8gc3VhIGRvaSBibyBzdW5nIGNoaW5oIHNhY2ggYm9pIHRodW9uZyBkdW9j IA0KZHVhIHJhIHRydW5nIGNhdSB5IGtpZW4gY3UgdHJpIGNobyBjbyB2ZSBkYW4gY2h1LiBDdSB0 cmksIHRyb25nIGRvIGNvIG5oaWV1IGN1dSBjaGllbiBiaW5oIA0KdmEgZGFuZyB2aWVuIHRydW5n IGtpZW4sIGRhIHRoYW5nIHRodW5nIGJhYyBibyBkdSB0aGFvIG5heSB2aSBseSBkbyBkdSB0aGFv IGtob25nIGJvaSANCnRodW9uZyBzYXQgZ2lhIHRoaSB0cnVvbmcgdGhlbyBsdWF0IERhdCBEYWkg MjAwMyB2YSBuZ2hpIGRpbmggMTk3IGN1YSBDaGluaCBQaHUgbWEgaG8gDQp0cm8gdGhlbyBraWV1 IGJvIHRoaSBjaG8gdGhlbSBjaHV0IGRpbmgga2hvbmcgZGFuZyBrZS4gQ2hvIGR1IG5oYW4gZGFu IGRhIGJhYyBwaHVvbmcgDQphbiBzdWEgZG9pIGJvIHN1bmcgbmh1bmcgJ2NoaW5oIHF1eWVuIGN1 YSBkYW4gZG8gZGFuIHZpIGRhbicgcXVhbiAyIG1hIGR1bmcgZGF1IGxhIEJpIA0KdGh1IHF1YW4g VGF0IFRoYW5oIFBob25nIHZhIENodSB0aWNoIHF1YW4gTGUgVHJvbmcgU2FuZyAoZGV1IGxhIG5o dW5nIGRlIHR1IHRoYW4gdGluIA0KY3VhIExlIFRoYW5oIEhhaSkgdmFuIGN1IGRlIHRyaW5oIHRo YW5oIHBobyB2YSB0aGFuaCBwaG8gdmFuIGN1IG5nYW5nIG5oaWVuIHBoZSBkdXlldCANCm1vdCBx dXlldCBkaW5oIHZ1YSB0cmFpIHF1eSBkaW5oIGN1YSB0cmVuIHZ1YSB0cmFpIHkgY3UgdHJpIChx dXlldCBkaW5oIDA2IG5nYXkgDQoyMS8xLzIwMDkpLiBEdW5nIG5naGkgZGF1IG9jIGxhbmggZGFv IHRhICdkYXUgcGh1JyBtYSBsYW0gdG8sIGRlIGRhbSBiYW8gYW4gdG9hbiBjaG8gDQptaW5oLCB0 cnVvYyBraGkgbGlldSBtaW5oIGRhdCBidXQga3kgdmFvIG1vdCBxdXlldCBkaW5oIHRyYWkgbHVh dCBjdWEgVUJORCwgTmd1eWVuIA0KVGhhbmggVGFpIJYgUGhvIENUIFVCTkQgVFBIQ00gZGEgeWV1 IGNhdSBMZSBUaGFuaCBIYWkgY2h1IHRyaSBjdW9jIGhvcCBjdWEgdGFwIA0KdGhlIFRodW9uZyB0 cnVjIHRoYW5oIHV5IHZhbyB0aGFuZyAxMi8yMDA4IGRlIHRob25nIHF1YSBjaHUgdHJ1b25nIGto b25nIHRodWMgaGllbiANCnRoZW8gbHVhdCBEYXQgRGFpIDIwMDMgdmEgY2FjIG5naGkgZGluaCBj dWEgQ2hpbmggUGh1LCBjaGkgaG8gdHJvIHRoZW0gY2hvIGRhbiBUaHUgDQpUaGllbS4gVGhlIGxh IHRhcCB0aGUgdGhhbmggdXkgVFBIQ00gZGEgcXV5ZXQsIG1hIGNvIHF1eWV0IHNhaSBkaSBjaGFu ZyBudWEgdGhpIGN1bmcgDQpjaGFuZyB0aGUgbmFvIHh1IGR1b2MgY2EgdGFwIHRoZSB0aGFuaCB1 eS4gUGh1b25nIHRodWMgJ3BoYW0gdG9pIGNvIHRvIGNodWMnIHRoZW8gbHVhdCANCmhpbmggc3Ug bGEgdGluaCB0aWV0IHRhbmcgbmFuZyBuaHVuZyB0aGVvIGx1YXQgY3VhIERhbmcgdGhpIGNoaW5o IGxhIG1vdCB0aW5oIHRpZXQgZ2lhbSBuaGUgDQoodGhhbSBjaGkgbmhlIG5odSBraG9uZyksIHZp IHZheSBwaHVvbmcgdGh1YyBuYXkgZHVvYyBkZW0gcmEgdmFuIGR1bmcgdGh1b25nIHh1eWVuLg0K DQpOb2kgdG9tIGxhaSBsYSBuaHVuZyBnaSBtYSBsYW5oIGRhbyBUUEhDTSBkYSBxdXlldCB0aGkg c2UgbWFpIG1haSBraG9uZyB0aGF5IGRvaSBtYWMgDQpyYW5nIGx1YXQgdmEgbmdoaSBkaW5oIGNv IHRoYXkgZG9pIHRoZSBuYW8gdmEgYmFvIG5oaWV1IGxhbiBkaSBudWEuIEN1IHllbiB0YW0gdmF5 IGRpIQ0KDQpOaG8gb24gY2hpbmggc2FjaCBtb2kgY3VhIG9uZyBIYWkgZ2lhIGRpbmggdG9pIGhv biA4IHRyYW0gbWV0IHZ1b25nIGRhdCBjYWNoIGR1b25nIA0KRG9uZyBLaG9pIG1hYyBuaGF0IFNh aSBHb24gaG9uIDIwMCBtZXQgc2UgY2hpIG11YSBkdW9jIGhvbiAyIG1ldCB2dW9uZyBkYXQgbyAN CmR1b25nIERvbmcgS2hvaS4gUXVhIGxhIGN1b2Mgc29uZyBjdWEgdG9pIGNvbiB0dWkgbmh1YyBy ZSBydW5nIGhvbiBraWVwIG5vIGxlPw0KDQonUmEgaGFuZycNCg0KU2F1IGtoaSBkYSB0aHUgZ29t IGR1b2MgbW90IGRpZW4gdGljaCBkYXQga2hhIGxvbiwgYnVvYyB0aWVwIHRoZW8gcGhhaSB0aW5o IGxhICdyYSBoYW5nJyANCmhheSBub2kgdGhlbyBnaW9uZyBjdWEgZ2lvaSBraW5oIGRvYW5oIGxh ICdoaWVuIHRodWMgaG9hIGxvaSBuaHVhbicuIExhbmggZGFvIHRoYW5oIHBobyANCmRhIGNob24g bWF0IERhbmcgVGhhbmggVGFtIGRlIGdvaSB2YW5nLCBtYSBEYW5nIFRoYW5oIFRhbSBsYSBhaSwg bGEgbmhhIHR1IGJhbiBnaWF1IA0Kc28gbW90IFZOLCBsYSBjaHUgdGljaCBob2FjIGdpYW0gZG9j IGN1YSBjYWMgY29uZyB0eSBrZWNoIHN1IG5odSBTYWkgR29uIEludmVzdCwgS2luaCANCkJhYywg VGFwIGRvYW4gVGFuIFRhbyAoYmEgSGFpIFRhbSBjaGkgcnVvdCBjdWEgdGh1IFR1b25nIE5ndXll biBUYW4gRHVuZyBsYW0gY2h1IA0KdGljaCksIERhbmcgVGhhbmggdGFtIGRhIHhpbiBkdW9jIGJv biBjYWMgZHUgYW4gbmhvIHZhbyBuaHVuZyBtb2kgcXVhbiBoZSAndGUgbmhpJyANCnZvaSBjYWMg dmkgbGFuaCBkYW8gZGF0IG51b2MgdHJvbmcgZG8gY28gbmhhbiB2YXQgY2hpbmggY3VhIHZ1IFZp bmFzaW4tVGh1IFR1b25nIA0KTmd1eWVuIFRhbiBEdW5nLiBUaGVvIHRpZXQgbG8gY3VhIGJhbyBj aGksIHRyb25nIGx1YyBnaWEgZGF0IHRoaSB0cnVvbmcgcXVhbiAyIGxpZW4gdHVjIA0Kc290IG5v bmcgdGhpIGxhbmggZGFvIHRoYW5oIHBobyBsYWkgdGluaCBjaG8gQ29uZyB2aWVuIFBoYW4gbWVt IGN1YSBEYW5nIFRoYW5oIFRhbSANCm1vdCBjYWkgZ2lhIGtob25nIHRoZSAnbGFuaCcgaG9uOiAx MCB0cmlldSBkb25nIG1vdCBtZXQgdnVvbmcgKDEuNTAwIHR5IGNobyBkaWVuIHRpY2ggDQoxNSw5 aGEpLiBDdW5nIHRoZW8gYmFvIGNoaSwgRGFuZyBUaGFuaCBUYW0gZGEgZGVtIGRhdCBuYXkgZGkg Z29wIHZvbiBwaGFwIGRpbmggdm9pIA0KZG9pIHRhYyBudW9jIG5nb2FpIGR1b2MgMS41MDBVU0Qg bW90IG1ldCB2dW9uZy4gTHkga3kgaG9uIG51YSBsYSB0aGFuZyAwNyBuYW0gMjAwOSANCihtb3Qg bmFtIHNhdSBraGkgbXVhIGRhdCB2YSB0aWVuIGhhbmggZHUgYW4pLCBjaHUgZGF1IHR1IGR1IGFu IENvbmcgdmllbiBwaGFuIG1lbSANCnZhbiBjaHVhIGRvbmcgbW90IHh1IHRpZW4gZGF0IGNobyBu aGEgbnVvYy4gU2UgY29uIHJhdCBuaGlldSBkdSBhbiBudWEgZHVvYyBnaWFvIGRhdCB2YSANCnRp ZW4gZGF0IGN1YSBkYW4gc2UgdGllcCB0dWMgdW4gdW4gY2hheSByYSBraG9pIHR1aSBkYW4gdm8g dHVpIGNhYyB0dSBiYW4gdGhhbiBodXUgdmEgY2FjIA0KcXVhbiBjaHVjIHRoYW0gbmh1bmcuIERv bmcgdGllbiBraG9uZyBsbyBraWVtIGR1b2MgdHUgdnUgYXAgcGhlIFRodSBUaGllbSBzZSBkb25n IA0KdmFpIHRybyB0aGUgbmFvIHRyb25nIHZ1IGNoYXkgZ2hlIHRyb25nIGNhYyBkYWkgaG9pIHNh cCBtbyBtYW4gdGhvaSBnaWFuIHRvaT8NCg0KQ28gbmhhbiBjbyBub2kgJ0N1b3AgZGVtIGxhIGdp YWMsIGN1b3AgbmdheSBsYSBxdWFuJy4gVmFuIGJpZXQgcXVhbiB0aGkgcGhhaSAnY3VvcCcgDQpt b2kgbGEgcXVhbiBuaHVuZyBjdW9wIHZvaSBtdWMgZG8gY2hvbmcgbWF0IG5odSB2YXkgdGhpIGRh biBjbyBtYSBjYXAgZGF0IG1hIGFuLg0KDQpMbyBkaWVuIG8gZHU6IE5ndXllbiBUYW4gRHVuZw0K DQpUaW5oIGhpbmggY3VvcCBib2MgZGFuZyB4dW9uIHhlIHRoaSBuYW0gMjAwNiBvbmcgTmd1eWVu IE1pbmggVHJpZXQgdHJ1bmcgY3UgY2h1YyANCkNodSB0aWNoIG51b2MgdmEgYmF0IGRhdSBzaW5o IGhvYXQgdG8gZGFpIGJpZXUgUXVvYyBob2kgdGFpIHF1YW4gMi4gVHUga2hpIHNpbmggaG9hdCB0 YWkgDQpkYXkgb25nIFRyaWV0IGtob25nIGNvIGR1b2MgbW90IG5nYXkgdGFuIGh1b25nIGN1b2Mg ZG9pIENodSB0aWNoIG51b2MgbWEgc3VvdCBuZ2F5IA0KcGhhaSAnbGFuaCBkdScgbmh1bmcgYnVj IHh1YyBjdWEgY3UgdHJpIFBodW9uZyBUaHUgVGhpZW0gdmkgYmkgYm9jIGxvdCBtb3QgY2FjaCBx dWEgDQp0YW4gYmFvIGJvaSAnYmFuIHRheSBzYXQnIGN1YSBjaGluaCBxdXllbi4gS2hvbmcgY2hp dSBub2kgc3UgdHJhY2ggbW9jIGN1YSBkYW4sIHRyb25nIA0KYnVvaSBzaW5oIGhvYXQgdm9pIGN1 IHRyaSBUaHUgVGhpZW0gdGhhbmcgMTEvMjAwNywgb25nIFRyaWV0IGdpbyBuYW0gZGFtIGxvbiB0 aWVuZyANCnR1eWVuIGJvOiB0b2kgc2UgdmUgeWV1IGNhdSBUaHUgdHVvbmcgZHVhIGRvYW4gdGhh bmggdHJhIENoaW5oIHBodSBsaWVuIG5naGFuaCANCnZhbyB0aGFuaCB0cmEgdG9hbiBkaWVuIGto dSBkbyB0aGkgbW9pIFRodSBUaGllbS4gSGF5IGRvaSBkYXkhIChDb2kgYm8gbmh1IG9uZyB0YQ0K IG1vaSB4ZW0gcGhpbSBob2F0IGhpbmggY3VhIE5nYSEpLg0KDQpCaWV0IHRydW9jIHRpbmggaGlu aCBiYXQgb24gdmkgZGFuIGtpZW4gcXV5ZXQgZGF1IHRyYW5oIGNob25nIHRoYW0gbmh1bmcsIExl IFRoYW5oIEhhaSANCmRhIGNhdSBjdXUgbyBkdSBjdWEgbWluaCBsYSBOZ3V5ZW4gVGFuIER1bmcg dmEgbW90IGtpY2ggYmFuIHRodW9uZyBnYXAgZGEgZGllbiByYTogDQp0aGFuaCBwaG8geGluIGR1 b2MgbmdoaWVtIGtoYWMgdHUgdGhhbmggdHJhIHZhIG9uZyBEdW5nIGRhICd2dWkgdmUgbmhhbiBs b2knIA0KKGtob25nIGNobyBUaGFuaCB0cmEgQ2hpbmggcGh1IHZvIHRoYW5oIHRyYSB0aGFuaCBw aG8gdmkgbGkgZG8gVGhhbmggdHJhLi4uIGJhbikuIA0KQ2hhYyBsYSBUaGFuaCB0cmEgQ2hpbmgg cGh1IGNoaSBjaHV5ZW4gbGFtIG5odW5nIHZ1IGFuICdjaHVvdCBuaGF0Jywga2hvbmcgbGFtICdj aHVvdCANCmNvbmcnLiBUcm9uZyBsaWNoIHN1IGNhY2ggbWFuZyBjdWEgZGF0IG51b2MsIE5ndXll biBUYW4gRHVuZyBjdW5nIGRhIGNvIHF1eWV0IGRpbmggDQp0dW9uZyB0dSBsYSBjYW4gdHJvIHRo YW5oIHRyYSBDaGluaCBwaHUgdm8gdGhhbmggdHJhIGNvbiBjdW5nIFZpbmFzaW4sIGtldCBjdWMg bGEgVmluYXNpbiANCmRhIGNoaW0gbmdheSBraGkgY2h1YW4gYmkgcmEga2hvaSBrZW8gdGhlbyBn YW4gNSB0eSBVU0QgdGllbiB0aHVlIGN1YSBkYW4uDQoNClRpZXAgbm9pIGhhbmggZG9uZyBiYW8g Y2hlIGNobyB0YXAgZG9hbiB0aGFtIG5odW5nIExlIFRoYW5oIEhhaSwgY2EgbmhhbiBUaHUgdHVv bmcgDQpEdW5nIGRhIHF1YSBtYXQgdGFwIHRoZSAoa2hvbmcgZHVuZyB0aGFtIHF1eWVuKSBjaGlu aCBwaHUgbmdhbmcgbmhpZW4gaG9wIHRodWMgaG9hIA0KY2hvIHNhaSBwaGFtIGN1YSBUUEhDTSBi YW5nIGNvbmcgdmFuIDk3Ny9WUENQLUtOVE4gbmdheSAzLzEwLzIwMDggY2hvIHBoZXAgDQpUUEhD TSB0aHUgaG9pIGRhdCBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gbWEga2hvbmcgY2FuIGxhbSBw aHVvbmcgYW4gYm9pIHRodW9uZyANCm5odSBuZ2hpIGRpbmggY3VhIENoaW5oIHBodSBkYSBxdWkg ZGluaC4NCg0KQmF0IGR1b2MgdGluIGhpZXUgdG90IHR1IG5nYWkgVGh1IHR1b25nLCBkdW9jIG5o YW4gbmh1bmcgZG9uZyB0aWVuIGhhdSBoaW5oIG1hIGNoaW5oIA0KcXV5ZW4gZ29pIGxhICd0aWVu IGR1IGFuJywgY2FuIGJvIHF1YW4gMiB0aGkgbmhhdSBkYW4gYXAgZXAgZGFuIGtldCBob3Agdm9p IGx1YSBwaGluaCBkZSANCmRhbiBuaGUgZGEga2kgY2hhcCBuaGFuIGNoaW5oIHNhY2ggYm9pIHRo dW9uZyBiYXQgbHVvbmcuIFF1b2MgaG9pIHRoaSBuaHUgZGEgYml0IG1hdCwgDQpiaXQgdGFpIHRy dW9jIHZ1IGFuIGxvbiBuaGF0IGxpY2ggc3UgZGF0IG51b2MuDQoNCkRhbiBkZW4gY2h1bmcgdG9p IG11b24gUXVvYyBob2kgcGhhaSBjaHVuZyB0byBzdSBkdW5nIGNhbSBtYSBtb2kgZGFpIGJpZXUg ZGV1IGNvIA0KdHJvbmcgdHJhaSB0aW0gbWluaCB0byBjaHVjIHRoYW5oIHRyYSAyIHZ1IGFuIHNp ZXUgbmdoaWVtIHRyb25nIGxhIHZ1IFZpbmFzaW4gdmEga2h1IGRvIA0KdGhpIG1vaSBUaHUgVGhp ZW0uIENvbiBuaGlldSBjaGkgdGlldCBjaGFuIGRvbmcgbnVhLCBuZXUgUXVvYyBob2kgbXVvbiBi aWV0IGNoYW4gdG8ga2UgDQp0b2MgdnUgdGlldSBjdWMgbmF5IHhpbiBjdSBob2kgZG9uZyBjaGkg Q2h1IHRpY2ggVHJpZXQgbGEgYmlldCBoZXQuIENodW5nIHRvaSBtb25nIG5oYW4gDQpkdW9jIHRo b25nIHRpbiBkaWEgY2hpIG5vaSBvIGN1YSBjYWMgbGFuaCBkYW8gdGhhbmggcGhvIHZhIHF1YW4g MiBjbyBkaW5oIGxpdSBkZW4gdnUgVGh1IA0KVGhpZW0gdmEgZ2lhIGRpbmggZGUgY28gZGlwIHNl IHZpZW5nIHRoYW0gdmEgdmFuIGRvbmcgdGh1eWV0IHBodWMgY2FjICdkb25nIGNoaScgdHJvIHZl IA0KZHVuZyBjb24gZHVvbmcgbWEgZGFuZyBkYSBjaG9uLiBDYXUgdHJvaSBraGFuIHBoYXQgcGh1 IGhvIGNobyBrZSB0aHUgY3VhIG5oYW4gZGFuIGxhIA0KTGUgVGhhbmggSGFpLCBOZ3V5ZW4gVGFu IER1bmcsIE5ndXllbiBUcnVuZyBUaW5oLFRhdCBUaGFuaCBQaG9uZywgTGUgVHJvbmcgU2FuZyB2 YSBuaHVuZyBrZSBiYW8gY2hlLCB0b25nIHBoYW0sIGRvdCBuaGllbiBjbyBsaWVtIHNpIHZhIHR1 IG5ndXllbiBraG9uZyB1bmcgY3UgdHJvbmcgDQpkYWkgaG9pIGRhbmcgdGhhbmggcGhvIHZhIHRy dW5nIHVvbmcgdG9pIGRheS4NCg0KKFkga2llbiBjdSB0cmk6IE5odSB2YXkgbmhpZXUgbmFtIGRh IHRyb2kgcXVhIG1hIG5ndW9pIGRhbiBxdWFuIDIgVFAgSENNIHZhbiANCnBoYWkgY2hpdSBvYW4g dWMgdmkgdGhhbSBuaHVuZyBsb25nIGhhbmguIE9uZyBOZ3V5ZW4gTWluaCBUcmlldCBodWEgbWEg a2hvbmcgbGFtDQp0dWMgbGEgdGhpZXUgdHUgdHJvbmcsIGtob25nIGhvYW4gdGhhbmggbmhpZW0g dnUuIE9uZyBOZ3V5ZW4gVGFuIER1bmcgbG8gZGllbiByb2ksIA0KbmF5IGxhaSBsbyBkaWVuIHRo ZW0gb25nIFRyaWV0IG51YS4gVnUgYW4gbmF5IGtob25nIGJpZXQgcm9pIHNlIGRpIGRlbiBkYXUu KSANCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJ RD04OTYxMCZDaGFubmVsSUQ9MTIgMTIvMDcvMjAwNywgMTY6MjANCg0KVGh1IHR1b25nOiBIb24g NzAwIGhhIGRhdCBjb25nIGJpIGJpZW4gdGhhbmggY3VhIHJpZW5nICAobyBCaW5oIGR1b25nKSAN Cg0KaHR0cDovL2JveGl0dm4ud29yZHByZXNzLmNvbS8yMDEwLzA4LzI0L20lRTElQkIlOTl0LXYl RTElQkIlQTUtbi1sJUUxJUJCJTlCbi1uaCVFMSVCQSVBNXQtbiVDNiVCMCVFMSVCQiU5QmMtYiVF MSVCQSVBM3ktbmFtLW5heS1jaCVDNiVCMGEtZCVDNiVCMCVFMSVCQiVBM2MteCVFMSVCQiVBRC1s LyBOb25nIGRhbiBCaW5oIER1b25nICAoYnZuIHBvc3Qgb24gMjQvMDgvMjAxMCAzOjQwIHNhbmcp ICANCg0KVGh1IHR1b25nOiBNb3QgdnUgYW4gbG9uIG5oYXQgbnVvYywgYmF5IG5hbSBuYXkgY2h1 YSBkdW9jIHh1IGx5IQ0KDQpDaGluaCBxdXllbiB0aW5oIEJpbmggRHVvbmcgdGh1IGhvaSB2YSBi b2kgdGh1b25nIGRhdCB0cmFpIHBoYXAgbHVhdCAtIEN1b25nIGJ1YyBuZ3VvaSBkYW4gLSBTYWkg cGhhbSBkb25nIHRyb2ksIG5odW5nIGNodWEgZG9uZyB0b2kgQ2hpbmggcGh1IA0KDQoxIC0iTmd1 b2kgdG8gY2FvIGtoaWV1IG5haSB2YSB5ZXUgY2F1IHRoYW5oIHRyYSIga2hvbmcgZHVvYyBhaSBo b2kgdG9pIHZhIGtob25nIGR1b2MgYmlldCB0aSBnaSB2ZSBrZXQgcXVhIHRoYW5oIHRyYS4gIA0K DQpUaGFuZyAxMS0yMDA3LCBjaHVuZyB0b2ksIGhvbiBiYSBtdW9pIG5ndW9pIGRhbiwgZGEgdGlt IGR1IGNhY2ggZGUgcmEgSGEgTm9pIGtoaWV1IA0Ka2llbiB2aWVjIGNoaW5oIHF1eWVuIHRpbmgg QmluaCBEdW9uZyB0aHUgaG9pIHZhIGJvaSB0aHVvbmcgZGF0IHRyYWkgcGhhcCBsdWF0IG1hIGxh aSANCmN1b25nIGNoZSBkZSB0aHVjIGhpZW4gY2FjIHF1eWV0IGRpbmggbmF5LiBTYXUgbmhpZXUg bmdheSBhbiBjaHVjIG5hbSBjaG8gdGFpIHRydSBzbyANCnRpZXAgZGFuIGN1YSBUcnVuZyB1b25n IGRhbmcgdmEgTmhhIG51b2MsIHZhIGRhdSB0cmFuaCBxdXlldCBsaWV0IHZvaSBjYW4gYm8gdGFp IHRydSBzbyANCnRpZXAgZGFuLCBjaHVuZyB0b2kgZHVvYyBodWEgbGEgY28gcXVhbiB0aWVwIGRh biBzZSBiYW8gY2FvIGxlbiBjYXAgdHJlbiBkZSB0byBjaHVjIHRoYW5oIA0KdHJhIGxhbSBybyBu b2kgZHVuZyBjaHVuZyB0b2kga2hpZXUga2llbi4gU3VvdCBuYW0gMjAwOCwga2hvbmcgYWkgdGll cCB4dWMsIHRpbSBoaWV1IHZhIA0KdHJhIGxvaSBjaG8gY2h1bmcgdG9pIGJpZXQgQ2hpbmggcGh1 IGRhIHRoYW5oIHRyYSBjaHVhLCBrZXQgcXVhIG5odSB0aGUgbmFvLiBDaGkgdGhheSB0cmVuIA0K YmFvIGNoaSwgVGhhbmggdHJhIGRhIGxhbSB2aWVjIHZvaSB0aW5oIEJpbmggRHVvbmcgdmEgZGEg cGhhdCBoaWVuIGNvIG5oaWV1ICJzYWkgcGhhbSANCmRvbmcgdHJvaSIsICJzYWkgcGhhbSBjbyBi YW4gc28gIHZvaSBxdXkgZGluaCBjdWEgQ2hpbmggcGh1IHRyb25nIGxpbmggdnVjIGJvaSB0aHVv bmcgDQpnaWFpIHBob25nIG1hdCBiYW5nIiwgdmEgInRydWMgbG9pIHRpZW4gdHkuLi4gdGFpIHNp ZXUgZHUgYW4gS2h1IGxpZW4gaG9wIGNvbmcgbmdoaWVwIC0gDQpkaWNoIHZ1IC0gZG8gdGhpIHRp bmggQmluaCBEdW9uZyIuLi4gDQoNCjIgLSBTYXUgdGhhbmggdHJhLCBjaGluaCBxdXllbiB0cmEg dGh1IG5odW5nIG5ndW9pIGt5IGRvbiB2YSBkaSBraGlldSBraWVuLCB0YW4gYmFvIHZhIGtob2Mg bGlldCBob24gdHJ1b2MuDQoNClRoYXkgYmFvIGNoaSBsb2FuIHRpbiwgY2h1bmcgdG9pIHllbiBj aGkgdmEgY2hvIGRvaSBOaGEgbnVvYyB4dSBseSBzYWkgcGhhbSwgdHJhIGxhaSBzdSANCmNvbmcg YmFuZyB2YSBuaHVuZyBxdXllbiBsb2kgaG9wIHBoYXAgY2hvIG1pbmguIE5odW5nIGRhdSBuYW0g MjAwOSwgVUJORCB0aW5oIA0KQmluaCBEdW9uZyBsYWkgZ29pIGNobyBjaHVuZyB0b2kgbmh1bmcg cXV5ZXQgZGluaCBib2kgdGh1b25nIGRhdCwgY2FuIGN1IHZhbyBRdXlldCANCmRpbmggMTY0LzIw MDMvUUQgbmdheSAyMy02LTIwMDMgY3VhIENodSB0aWNoIFVCTkQgdGluaCBCaW5oIER1b25nIHZh IGNhYyBxdXlldCANCmRpbmggdGh1IGhvaSBkYXQgZGEgZHVvYyB0aW5oLCBodXllbiwgdGhpIGJh biBoYW5oIHRyYWkgcGhhcCBsdWF0IHR1IHRydW9jIGtoaSBkZSBhbiBLaHUgDQpsaWVuIGhvcCBk dW9jIENoaW5oIHBodSBwaGUgZHV5ZXQuIERvbmcgdGhvaSwgVUJORCB0aW5oLCBodXllbiwgdGhp IGN1bmcgY28gY29uZyB2YW4gDQpraGFuZyBkaW5oIGxhIFF1eWV0IGRpbmggMTY0LzIwMDMvUUQg bmdheSAyMy02LTIwMDMgY3VhIENodSB0aWNoIFVCTkQgdGluaCBCaW5oIA0KRHVvbmcgdmEgY2Fj IHF1eWV0IGRpbmggdGh1IGhvaSBkYXQgZGEgYmFuIGhhbmggdHJ1b2MgZGF5IGxhIGhvYW4gdG9h biBkdW5nIHBoYXAgbHVhdC4gDQpOZXUgbmh1bmcgbmd1b2kgY29uIGxhaSBraG9uZyBjaGl1IGxh bmggdGllbiBnaWFvIGRhdCwgY2hpbmggcXV5ZW4gc2UgdG8gY2h1YyBjdW9uZyANCmNoZS4NClRo YW5nIDMtMjAwOSwgY2h1bmcgdG9pIGxhaSBwaGFpIGtlbyBuaGF1IHJhIEhhIE5vaS4gR2FuIG1v dCB0aGFuZyB0cm9pIHRvaSBsdWksIGNobyBkb2ksIA0KY2h1bmcgdG9pIGNoaSBuaGFuIGR1b2Mg bW90IGdpYXkgY3VhIHRydSBzbyB0aWVwIGRhbiBjaHV5ZW4gZG9uIHRybyB2ZSBjaG8gdGluaCBC aW5oIA0KRHVvbmcgZ2lhaSBxdXlldC4gQ29uIFV5IGJhbiBEYW4gY2h1IHZhIFBoYXAgbHVhdCBj dWEgTWF0IHRyYW4gVG8gcXVvYyBUcnVuZyB1b25nIA0KdGhpIGNobyBtb3QgY29uZyB2YW4gY2h1 eWVuIGRvbiBkZSBuZ2hpIFRodSB0dW9uZyBnaWFpIHF1eWV0Lg0KDQpDaHVuZyB0b2kgdHJvIHZl IHRpbmguIFZhIGxhbiBuYXkga2hvbmcgcGhhaSBjaG8gZG9pIGxhdS4gVUJORCB0aW5oLCBodXll biwgdGhpIGRhIGxpZW4gDQp0dWMgYmFuIGhhbmggY2FjIHF1eWV0IGRpbmggcm9pIHRvIGNodWMg Y3VvbmcgY2hlIGRlIHRodSBob2kgZGF0IGN1YSBYWFggaG8gY2h1YSBjaGl1IA0KbmhhbiB0aWVu LiBDYWNoIGxhbSBjdWEgaG8gYm9jIGxvIHJvIHJhbmcgbXVjIGRpY2ggdHJhIHRodSBuaHVuZyBr ZSBkYW0gY2hvbmcgbGFpIGNodSANCnRydW9uZyBjdWEgdGluaC4gSG8gbXVvbiBjaHVuZyB0byBj aG8gbW9pIG5ndW9pIGJpZXQgbGE6IGFpIGRhbSBiZSBuYW5nIGNob25nIHRyb2kgdGhpIA0Kcm90 IGN1b2Mgc2UgcGhhaSB0cmFuZyB0YXkuIEhvIGRhIGxpZW4gdHVjIGhhbSBkb2EsIGtodW5nIGJv IHRpbmggdGhhbiBjaHVuZyB0b2kgbGllbiB0dWMgDQp0cm9uZyBzYXUgbmFtIHF1YSBuYXkgbGEg bHVjIGNodW5nIHRvIGhvIGtob25nIHBoYWkgY2hpIG5vaSBzdW9uZy4gDQoNCk1haSBjaG8gZGVu IG5nYXkgaG9tIG5heSwgZ2l1YSB0aGFuZyA4IG5hbSAyMDEwLCBuaHVuZyBuZ3VvaSBjaGFwIG5o YW4gbGFuaCB0aWVuIA0KZ2lhbyBkYXQgdGhpIG5oYSBjdWEgdmFuIG8gbmd1eWVuIGNodWEgcGhh aSBkaSBkb2ksIHZ1b24gdHVvYywgaG9hIG1hdSB2YW4gY3UgdGllcCB0dWMgDQpraGFpIHRoYWMu Li4gdHJvbmcga2hpIGNodW5nIHRvaSBvIG5nYXkgYmVuIGNhbmgsIHRyb25nIGN1bmcgbW90IGto dSB2dWMsIHRoaSBkYSBiaSBjdW9uZyANCmNoZSB0dSB0aGFuZyA1LTIwMDkgZGVuIG5nYXkgMjkt MTItMjAwOS4gDQoNCk5ndW9pIGJpIGN1b25nIGNoZSB0aGkgbmhhIGN1YSBiaSBkYXAgdGFuIG5h dCwgcnVvbmcgdnVvbiBjYXkgY29pLCBob2EgbWF1IGJpIHVpIHNhY2gsIA0KZ2lhIHN1YyB0aGkg YmkgY2hvbiBzb25nIGhvYWMgYmF0IGRpLCB0aG9jIGx1YSB4dWMgaGV0LCBxdWFuIGFvLCBkbyBk YXQsIGtlIGNhIGNoZW4gZHVhIA0KY3VuZyBsYXkga2hvbmcgY29uIHRodSBnaS4gQ2h1bmcgdG9p IGNvIGRheSBkdSBwaGltLCBhbmggdmEgZ2lheSB0byBjaHVuZyBtaW5oIHN1IHRoYXQgDQp0YW4g YWMgbmF5LiBTYXUgY3VvbmcgY2hlLCBjbyBuZ3VvaSBwaGFpIGR1bmcgdHJhbmgsIGxhLCBiYXQu Li4gY2hlIGxldSB0YW0gZGUgby4gQ2hpbmggDQpxdXllbiB0aWVwIHR1YyBjaG8gbHVjIGx1b25n IHRvaSB0aGFvIGdpbywgZG90IHJ1aS4gRGVtIGNhIGdpYSBkaW5oIHNhbmcgbnVvbmcgbmF1IG5o YSANCmJlbiBjYW5oICh2YW4gY29uIG8geWVuIHZpIGNoYXAgbmhhbiBsYXkgdGllbiwgZ2lhbyBk YXQpIHRoaSBjaGluaCBxdXllbiB0aWVwIHR1YyBkZW4gZGUgDQpkYXAgcGhhIG5oYSBjaG8gbyB0 YW0uIENodSBuaGEgcGhhbiB1bmcgcXV5ZXQgbGlldCBtb2kgY2hpdSBibyBkaS4gTHVjIGx1b25n IGN1b25nIGNoZSANCnRoaSBoYW5nIG5nYW4gbmd1b2ksIGRheSBkdSBkYWkgZGllbiBjdWEgYmEg Y2FwIHRpbmgsIGh1eWVuIHRoaSB2YSB4YTsgZGF5IGR1IGNhYyB0aGFuaCANCnBoYW46IGRhbmcs IGNoaW5oIHF1eWVuLCB0aGFuaCBuaWVuLCBjb25nIGFuLi4uKHRpbmgsIGh1eWVuLCB4YSk7IHZv aSBkYXkgZHUgdHJhbmcgYmksIHZ1IA0Ka2hpIHBodW9uZyB0aWVuIGNhbiB0aGlldC4gQ2hpIGNh biBhaSBjbyB0aGFpIGRvIG11b24gbmdhbiBjYW4sIGNob25nIGN1IGxhaSBsYSBzZSBiaSBkYW5o LCANCmJpIGJhdCBkZW0gZGkuIA0KDQpWYSBuaHVuZyBoYW5oIHZpICJ2aSBtdWMgdGlldSBpY2gg bnVvYywgbG9pIGRhbiIgbmF5IGN1YSBjaGluaCBxdXllbiBkYSBkdW9jIGJhbyB2ZSBib2kgDQpu aHVuZyBiYW5nIGNhbSBkdW5nIGxlbiBraGFwIG5vaTogIktodSB2dWMgY3VvbmcgY2hlLCBjYW0g dmFvIiwgIkNhbSBxdWF5IHBoaW0sIA0KY2h1cCBoaW5oIjsgaGFuZyBtYXkgY2h1YyBsZXUgdHJh aSBjaG90IGNoYW4gZHVvYyBkdW5nIGxlbiB0cnVvYyAyNCBnaW8sIGNhY2ggdHJ1bmcgdGFtIA0K Y3VvbmcgY2hlIHR1IDIga20uLi4NCg0KTmhpZXUgZGllbiB0aWNoIGRhdCBiaSBjdW9uZyBjaGUg dGh1IGhvaSB0dSAyMDA3LCBkZW4gbmF5IGRhIHN1IGR1bmcgbGFtIGdpIGRhdSEgUm8gcmFuZyAN CnZpZWMgdG8gY2h1YyBjdW9uZyBjaGUga2hvbmcgcGhhaSB2aSB5ZXUgY2F1IGdpYWkgdG9hIG1h dCBiYW5nIGRlIGRhbSBiYW8gdGllbiBkbyBkYXUgdHUgDQp4YXkgZHVuZywgbWEgbmhhbSBtdWMg dGlldSB0cmEgdGh1IG5ndW9pIGRpIGtoaWV1IGtpZW4sIHRvIGNhbywgZG9uZyB0aG9pIGRlIHRy YW4gYXAgDQpuaHVuZyBuZ3VvaSB0cnVvYyBkYXkgZGEgdmkgZGUgZG9hLCBzbyBoYWkgcGhhaSBs YXkgdGllbiBib2kgdGh1b25nIGdpYW8gZGF0IG5heSBraG9uZyANCmRhbSBxdWF5IGxhaSBraGll dSBraWVuLiANCg0KMyAtIEtldCBxdWEgdGhhbmggdHJhIG5odSB0aGUgbmFvIG1hIGNoaW5oIHF1 eWVuIHRpbmggQmluaCBEdW9uZyBsYWkgdGllcCB0dWMgbGFtIGdoZSANCm5odSB0aGU/DQoNClF1 YSB1YXQgdWMgdmUgdmllYyBVQk5EIHRpbmggQmluaCBEdW9uZyBjdSBjaG8gcmFuZyBtaW5oIGR1 bmcgdmEgdGllcCB0dWMgY3VvbmcgY2hlIA0KbGF5IGRhdCBjdWEgZGFuIG1vdCBjYWNoIGhldCBz dWMgbmdhbmcgbmd1b2MsIGNodW5nIHRvaSBxdXlldCB0YW0gdGltIGNobyBiYW5nIGR1b2MgDQpj YWMga2V0IGx1YW4gVGhhbmggdHJhIGtodSBsaWVuIGhvcC4gDQoNCkRvYyBoZXQgYmFvIGNhbyBj dWEgdG8gY29uZyB0YWMgVGhhbmggdHJhIENoaW5oIHBodSBkZSBuZ2F5IDMwIHRoYW5nIDAyIG5h bSAyMDA4IGRvIA0KT25nIEJ1aSBUaGFuaCBNaW5oIGt5LCBjbyBPbmcgVm8gVmFuIERvbmcga3kg dGVuIGJlbiBjYW5oIHZhIGRvbmcgZGF1IGRhaSBkaWVuIA0KVmFuIHBob25nIHRhaSBUUCBIbyBD aGkgTWluaDsgdmEgY28gZG9jIGtldCBsdWFuIFRoYW5oIHRyYSBzbyAyNjIzL0tMLVRUQ1Agbmdh eSANCjI2LTExLTIwMDggZG8gcGhvIFRvbmcgdGhhbmggdHJhIExlIFRpZW4gSGFvIGt5OyBtb2kg aGlldSBoZXQgdmkgc2FvLCBzYXUga2hpIHRoYW5oIHRyYSwgDQpjaGluaCBxdXllbiB0aW5oIEJp bmggRHVvbmcgbGFpIHRpZXAgdHVjIG5odW5nIGhhbmggdmkgdHJhaSBwaGFwIGx1YXQgbW90IGNh Y2ggcXV5ZXQgbGlldCANCm5odSB0aGUuDQpPIGRheSwgY2hpIHhpbiB0cmljaCBtb3QgdmFpIGRv YW4gbGllbiBxdWFuIGRlbiB0aHUgaG9pIGRhdCB2YSBib2kgdGh1b25nIGdpYWkgdG9hIG5odSBz YXU6DQoNCkEuIEJhbyBjYW8gY3VhIHRvIGNvbmcgdGFjIFRoYW5oIHRyYSBjaGluaCBwaHUsIFBo YW4gSUlJLUtldCBxdWEga2llbSB0cmEsIHhhYyBtaW5oLCBkYSBuZXU6DQoiMS4gLSBRdXlldCBk aW5oIHBodW9uZyBhbiBkZW4gYnUgdHJ1b2Mga2hpIGNvIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQg bGEgc2FpIHF1eSBkaW5oIA0KcGhhcCBsdWF0Lg0KVmllYyBiYW4gaGFuaCBRdXlldCBkaW5oIDE2 NC8yMDAzL1FEIG5nYXkgMjMtNi0yMDAzIGN1YSBVQk5EIHRpbmggQmluaCBEdW9uZyANCnBoZSBk dXlldCBwaHVvbmcgYW4gZGVuIGJ1IHRoaWV0IGhhaSBraGkgY2h1YSBiYW4gaGFuaCBRdXlldCBk aW5oIHRodSBob2kgZGF0ICh0aHUgaG9pIA0KdG9uZyB0aGUgdmEgcmllbmcgY2hvIHR1bmcgaG8p LCBjaHVhIHRoYW5oIGxhcCBIb2kgZG9uZyBkZW4gYnUgbGEga2hvbmcgZHVuZyB0cmluaCB0dSB0 aHUgDQp0dWMgZGVuIGJ1IHRoaWV0IGhhaSB0aGVvIGRpZXUgMzQgY3VhIG5naGkgZGluaCBzbyAy Mi8xOTk4LU5ELUNQIG5nYXkgMjQgdGhhbmcgNCBuYW0gDQoxOTk4IGN1YSBDaGluaCBwaHUgdmUg ZGVuIGJ1IHRoaWV0IGhhaSBraGkgTmhhIG51b2MgdGh1IGhvaSBkYXQgZGUgc3UgZHVuZyB2YW8g bXVjIA0KZGljaCBxdW9jIHBob25nLCBhbiBuaW5oLCBsb2kgaWNoIHF1b2MgZ2lhLCBsb2kgaWNo IGNvbmcgY29uZy4gVGhlbyBkbywgVUJORCB0aW5oIHBoYWkgDQpyYSBRdXlldCBkaW5oIHRodSBo b2kgZGF0LCB0aGFuaCBsYXAgSG9pIGRvbmcgZGVuIGJ1IHRoaWV0IGhhaSBnaWFpIHBob25nIG1h dCBiYW5nLCBIb2kgDQpkb25nIGRlbiBidSBraWVtIHRyYSwga2llbSBrZSB0aGlldCBoYWkgdGh1 YyB0ZSBkZSBsYXAgcGh1b25nIGFuIGRlbiBidSB0cmluaCBDaHUgdGljaCANClVCTkQgdGluaCBw aGUgZHV5ZXQuIA0KDQoyLiAtIEtob25nIHRyYW8gcXV5ZXQgZGluaCB0aHUgaG9pIGRhdDsga2hv bmcgYmFuIGhhbmggcXV5ZXQgZGluaCBkZW4gYnUgdGhpZXQgaGFpLi4uIGNobyANCnR1bmcgaG8g ZGFuIGxhIHRoaWV1IHNvdC4NCg0KU2F1IGtoaSBjbyBjaHUgdHJ1b25nIHF1eSBob2FjaCBLaHUg bGllbiBob3AsIFVCTkQgdGluaCBCaW5oIER1b25nIGJhbiBoYW5oIGNhYyANClF1eWV0IGRpbmgg dGh1IGhvaSBkYXQgdmFvIGN1b2kgbmFtIDIwMDQgdmEgZGF1IG5hbSAyMDA1OyBVQk5EIGh1eWVu LCB0aGkgeGEgYmFuIA0KaGFuaCBRdXlldCBkaW5oIHRodSBob2kgZGF0IGN1IHRoZSBjaG8gdHVu ZyBobyBkYW4gdmFvIGN1b2kgbmFtIDIwMDUuIENhYyBjYXAgY2hpbmggDQpxdXllbiBkaWEgcGh1 b25nIGNodWEgdG8gY2h1YyB0aHVjIGhpZW4gbGFwIGJpZW4gYmFuIGJhbiBnaWFvIG5oYW4gcXV5 ZXQgZGluaCB0aHUgaG9pIA0KY2hvIGNhYyBobyBkYW4sIHZpIHZheSBjaHVhIHRoZSBraGFuZyBk aW5oIGR1b2Mgbmd1b2kgZGFuIGNvIGRhdCBiaSB0aHUgaG9pIGRhIG5oYW4gDQpxdXlldCBkaW5o IHRodSBob2kgZGF0LiBRdWEgbGFtIHZpZWMgdm9pIFVCTkQgaHV5ZW4gdGFuIFV5ZW4sIFVCTkQg dGhpIHhhIFRodSBEYXUgDQpNb3QgdmEgbW90IHNvIG5ndW9pIGNvIGxpZW4gcXVhbiBkdW9jIGJp ZXQgdGFpIGNhYyBkaWEgcGh1b25nIG5heSBraG9uZyBiYW4gaGFuaCBxdXlldCANCmRpbmggZGVu IGJ1IHRoaWV0IGhhaSB2ZSBkYXQsIHZlIHRhaSBkaW5oIGN1Li4uIGNobyBjYWMgaG8gZGFuIGxh IHNhaSB2b2kgcXV5IGRpbmggcGhhcCANCmx1YXQuLi4NClRyb25nIDEwNCBobyBzbywga2hvbmcg Y28gaG8gc28gbmFvIGNvIHF1eWV0IGRpbmggYm9pIHRodW9uZyB0aGlldCBoYWksIGhvIHRybyBk aSBkb2ksIHRhaSANCmRpbmggY3UuLi4NCg0KMy4gLSBUaHUgbHkgZGUgZ2lhaSBxdXlldCBraGll dSBuYWkgY2h1YSBkdW5nIHRodSB0dWMsIHZhbiBkdW5nIHBoYXAgbHVhdCBjaHVhIHBodSBob3Au DQoNCi4uLi4uLjEwNCBobyBzbyBjbyAxMDQgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBjdWEgY2Fj IGhvIGtoaWV1IG5haSBiYW4gaGFuaCBzYXUgTHVhdCBkYXQgZGFpIA0KMjAwMywgTmdoaSBkaW5o IDE4MS8yMDA0L05ELUNQIHZhIE5naGkgZGluaCAxOTcvMjAwNC9ORC1DUCBjbyBoaWV1IGx1Yywg bmh1bmcgY2FjIA0KY2FwIGNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgbGFpIGFwIGR1bmcgTmdoaSBk aW5oIHNvIDIyLzE5OTgvTkQtQ1AgbGEgY2h1YSBwaHUgaG9wLg0KDQo0LiAtIENhYyB0b24gdGFp IHRoaWV1IHNvdCBraGFjIGNhbiBraGFjIHBodWMuDQoNClF1YSAxMDQgaG8gc28gZ2lhaSBxdXll dCBraGlldSBuYWkgY28gMTUgaG8gc28ga2hvbmcgY28gYmllbiBiYW4ga2llbSBrZSwgODkgaG8g c28gY29uIA0KbGFpIGNvIDY5IGJpZW4gYmFuIGtpZW0ga2Uga2hvbmcgY28gY2h1IGhvIGt5IHZh byBiaWVuIGJhbjsgMTggaG8gc28ga2hvbmcgY28gYmllbiBiYW4gDQpib2kgdGh1b25nLCB0cm9u ZyA4NiBiaWVuIGJhbiBib2kgdGh1b25nIGtob25nIGNvIGNodSBobyBreSB0ZW47IDQyIGhvIHNv IGtob25nIGNvIHRvIA0Ka2hhaSBkYXQgdmEgdGFpIHNhbiB0cmVuIGRhdCwgNDUgaG8ga2hvbmcg Y28gY2h1IGhvIGt5IHZhbyB0byBraGFpLiBWaSB2YXkgaG8gc28gY2h1YSBkYW0gDQpiYW8gZHVu ZyB0cmluaCB0dSB0aHUgdHVjIHRodSBob2kgZGF0IHZhIGJvaSB0aHVvbmcgdGhpZXQgaGFpIGto aSB0aHUgaG9pIGRhdC4uLg0KDQpVQk5EIGh1eWVuIFRhbiBVeWVuIGJhbiBoYW5oIDE4IFF1eWV0 IGRpbmggYnVvYyB0aGFvIGdpbyBjb25nIHRyaW5oIHRydW9jIGtoaSBiYW4gDQpoYW5oIFF1eWV0 IGRpbmggdGh1IGhvaSBkYXQgbGEga2hvbmcgZHVuZyB0cmluaCB0dSB0aGVvIHF1eSBkaW5oOyBj YWMgaG8gc28gZHVvYyBraWVtIA0KdHJhIGRldSBjbyB0aW5oIHRyYW5nIGNodW5nOiBkb24geGlu IHhhYyBuaGFuIG5ndW9uIGdvYyBuaGEsIGRhdDsgZG9uIHhpbiBobyB0cm8gZGkgZG9pOyANCmRv biB4aW4gaG8gdHJvIGNoaSBwaGkgZGFvIHRhbyBuZ2hlLi4uIG5ndW9pIGxhbSBkb24ga2hvbmcg a3kgdGVuIG1hIGNoaW5oIHF1eWVuIHhhIGt5IA0KeGFjIG5oYW4sIGRvbmcgZGF1Lg0KDQpUbyBj b25nIHRhYyBuaGFuIGRpbmggdHJvbmcga2hvYW5nIDUuMDAwIGhvIHNvIGJvaSB0aHVvbmcgdGhp ZXQgaGFpIHRyb25nIGR1IGFuIG5heSANCmN1bmcgdG9uIHRhaSBuaHVuZyB0aGlldSBzb3QgdmUg dHJpbmggdHUsIHRodSB0dWMgbmh1IGRhIG5ldSB0cmVuIi4NCg0KQiAtIEtFVCBMVUFOIFNPIDI2 MjMvS0wtVFRDUCBuZ2F5IDI2LTExLTIwMDggY3VhIFRoYW5oIHRyYSBDaGluaCBwaHUsIHRhaSBw aGFuIA0KQi1LZXQgcXVhIFRoYW5oIHRyYSwgY3VuZyBjbyBjYWMgbm9pIGR1bmcgbmh1IHNhdToN CiJJLiAtIFF1YSB0cmluaCBoaW5oIHRoYW5oIHZhIHBoYXQgdHJpZW4gS2h1IGxpZW4gaG9wOg0K RGUgYW4gdG9uZyB0aGUgZGF1IHR1IHZhIHBoYXQgdHJpZW4gS2h1IGxpZW4gaG9wIENvbmcgbmdo aWVwIC0gRGljaCB2dSB2YSBEbyB0aGkgQmluaCANCkR1b25nIGR1b2MgVGh1IHR1b25nIENoaW5o IHBodSBjaGluaCB0aHVjIHBoZSBkdXlldCB0YWkgUXV5ZXQgZGluaCBzbyA5MTIvUUQtVFRnIA0K bmdheSAwMS85LzIwMDUuDQouLi4uLi4gIlRyZW4gdGh1YyB0ZSwgdGh1YyBoaWVuIHkga2llbiBj aGkgZGFvIGN1YSBCYW4gVGh1b25nIHZ1IFRpbmggdXkgQmluaCBEdW9uZywgDQpVQk5EIHRpbmgg ZGEgYmF0IGRhdSB0cmllbiBraGFpIGNvbmcgdGFjIGRlbiBidSwgZ2lhaSB0b2EgdHUgY3VvaSBu YW0gMjAwMyIuDQpUaGVvIFF1eWV0IGRpbmggc28gODczL1FELVRUZyBuZ2F5IDAxLzEwLzIwMDIg Y3VhIFRodSB0dW9uZyBDaGluaCBwaHUgdmUgdmllYyBwaGUgDQpkdXlldCBxdXkgaG9hY2gsIGtl IGhvYWNoIHN1IGR1bmcgZGF0IGN1YSB0aW5oIEJpbmggRHVvbmcgZGVuIG5hbSAyMDEwIHRoaSBr aG9uZyBjbyANCnF1eSBob2FjaCBLaHUgbGllbiBob3AgQ29uZyBuZ2hpZXAgLSBEaWNoIHZ1IHZh IGRvIHRoaSBCaW5oIER1b25nLCBuaHVuZyB0cm9uZyBkbyBjbyANCnF1eSBob2FjaCBraHUgY29u ZyBuZ2hpZXAgRG9uZyBCYXUgQmVvIHZvaSBkaWVuIHRpY2ggMzAwIGhhIHZhIGtodSBjb25nIG5n aGllcCANClRydW9uZyBCb25nIEJvbmcgdm9pIGRpZW4gdGljaCA1MDAgaGEgbWEgaGllbiBuYXkg bGEgbW90IHBoYW4gY3VhIEtodSBsaWVuIGhvcC4gVHV5IA0KbmhpZW4sIGNoaSB0aWV1IGRhdCBz dSBkdW5nIGRlIHhheSBkdW5nIEtodSBsaWVuIGhvcCBkdW9jIGJvIHN1bmcgdmFvIHF1eSBob2Fj aCBzdSANCmR1bmcgZGF0IGRpZXUgY2hpbmggZGVuIG5hbSAyMDEwIHZhIGtlIGhvYWNoIHN1IGR1 bmcgZGF0IDUgbmFtICgyMDA2IC0gMjAxMCkgY3VhIHRpbmggDQpCaW5oIER1b25nIHRoZW8gTmdo aSBxdXlldCBzbyA1Ny9OUS1DUCBuZ2F5IDI4LzExLzIwMDcgY3VhIENoaW5oIHBodS4NCg0KSUku IC0gS2V0IHF1YSB0aGFuaCB0cmEgdmllYyB0cmllbiBraGFpIGR1IGFuIEtodSBsaWVuIGhvcDoN Cg0KMS0gQ29uZyB0YWMgZGVuIGJ1LCBnaWFpIHRvYToNCg0KMS4xLiBDaHUgdHJ1b25nIGJvaSB0 aHVvbmcgdmEgcXVhIHRyaW5oIHRyaWVuIGtoYWkgZ2lhaSB0b2EsIGJvaSB0aHVvbmc6DQoNCkRl IGFuIHRvbmcgdGhlIGRhdSB0dSB2YSBwaGF0IHRyaWVuIEtodSBsaWVuIGhvcCBkdW9jIFRodSB0 dW9uZyBDaGluaCBwaHUgY2hhcCB0aHVhbiANCnZlIGNodSB0cnVvbmcgdGFpIHZhbiBiYW4gc28g Mjk1L0NQLUNOIG5nYXkgMTkvMy8yMDAzIHZhIGR1b2MgVGh1IHR1b25nIHBoZSBkdXlldCANCmNo aW5oIHRodWMgdGFpIFF1eWV0IGRpbmggc28gOTEyL1FELVRUZyBuZ2F5IDAxLzkvMjAwNSwgbmh1 bmcgdHJlbiB0aHVjIHRlLCBuZ2F5IA0KMTAvOS8yMDAyIFVCTkQgdGluaCBCaW5oIER1b25nIGRh IGNvIFF1eWV0IGRpbmggc28gNTE4NS9RRC1DVCB0aGFuaCBsYXAgQmFuIGNoaSANCmRhbyBnaWFp IHRvYSBib2kgdGh1b25nIHBodWMgdnUgeGF5IGR1bmcgS2h1IGxpZW4gaG9wLCBzYXUgZG8gVUJO RCB0aW5oIEJpbmggRHVvbmcgDQpkYSBiYW4gaGFuaCBxdXlldCBkaW5oIHNvIDE2NC8yMDAzL1FE LVVCIG5nYXkgMjMvNi8yMDAzIHF1eSBkaW5oIGNodSB0cnVvbmcgYm9pIA0KdGh1b25nIGRhdCB2 YSB0YWkgc2FuIHRyZW4gZGF0IGNvbmcgdHJpbmggS2h1IGxpZW4gaG9wLiANCg0KVHUgY3VvaSB0 aGFuZyAxMS8yMDAzLCB0byBjaHV5ZW4gdmllbiBrZXQgaG9wIHZvaSBjaGluaCBxdXllbiB0dW5n IHhhIHRpZW4gaGFuaCBraWVtIA0Ka2UsIGRvIGRlbSBkYXQgZGFpLCB0YWkgc2FuIHRyZW4gZGF0 IGN1YSBjYWMgaG8gZ2lhIGRpbmgsIGNhIG5oYW4sIHRvIGNodWMgYmkgcXV5IGhvYWNoIGRlIA0K dGh1YyBoaWVuIGR1IGFuIHRyZW4gZGlhIGJhbiBjYWMgeGEuIFR1IGN1b2kgdGhhbmcgMTIvMjAw MyBCYW4gcXVhbiBseSBLaHUgbGllbiBob3AgYmF0IA0KZGF1IGNoaSB0aWVuIGRlbiBidSBjaG8g Y2FjIGhvIGdpYSBkaW5oIGNhIG5oYW4gY28gZGF0IHZhIHRhaSBzYW4gdHJlbiBkYXQgYmkgZ2lh aSB0b2EuDQoNCk5nYXkgMDQvNi8yMDA0IFVCTkQgdGluaCBCaW5oIER1b25nIGJhbiBoYW5oIFF1 eWV0IGRpbmggc28gNjEvMjAwNC9RRC1VQiBwaGUgDQpkdXlldCBEdSBhbiBkZW4gYnUgZ2lhaSBw aG9uZyBtYXQgYmFuZyB2YSBwaGF0IHRyaWVuIEtodSBsaWVuIGhvcC4gVHUgbmdheSAyMC8xMC8y MDA0IA0KZGVuIG5nYXkgMDUvNS8yMDA1IFVCTkQgdGluaCBCaW5oIER1b25nIGRhIGJhbiBoYW5o IGNhYyBxdXlldCBkaW5oIHRodSBob2kgZGF0IGRlIA0KeGF5IGR1bmcgS2h1IGxpZW4gaG9wLg0K DQoxLjIgLSBWaWVjIHRodWMgaGllbiBjaGluaCBzYWNoIHBoYXAgbHVhdCB0cm9uZyBnaWFpIHRv YSBib2kgdGh1b25nOg0KDQotIFRoZW8gUXV5ZXQgZGluaCA5MTIvUUQtVFRnIG5nYXkgMDEvOS8y MDA1IGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1IHRoaSB2aWVjIHRyaWVuIA0Ka2hhaSB0aHVjIGhp ZW4gZHUgYW4gdGhlbyBjYWMgcXV5IGRpbmggY3VhIEx1YXQgZGF0IGRhaSAyMDAzIHZhIE5naGkg ZGluaCAxODEvMjAwNC9ORC0NCkNQLCBuaHVuZyB0cmVuIHRodWMgdGUgVUJORCB0aW5oIEJpbmgg RHVvbmcgcmEgcXV5ZXQgZGluaCB2YSBhcCBkdW5nIFF1eWV0IGRpbmggDQoxNjQvMjAwMy9RRC1V QiBuZ2F5IDIzLzYvMjAwMyBiYW4gaGFuaCBxdXkgZGluaCBkZW4gYnUgZ2lhaSB0b2EgdGhlbyBO Z2hpIGRpbmggDQoyMi8xOTk4L05ELUNQLCB0YWkgdGhvaSBkaWVtIG5heSBMdWF0IGRhdCBkYWkg MjAwMyBjaHVhIGNvIGhpZXUgbHVjLg0KDQotIFVCTkQgdGluaCBCaW5oIER1b25nIGNoaSByYSBx dXlldCBkaW5oIHRoYW5oIGxhcCBCYW4gY2hpIGRhbyBnaWFpIHRvYSBib2kgdGh1b25nIG1hIA0K a2hvbmcgdGhhbmggbGFwIEhvaSBkb25nIGRlbiBidSB0aGlldCBoYWkgZ2lhaSBwaG9uZyBtYXQg YmFuZywgbmVuIGtob25nIGNvIGRhaSBkaWVuIA0KY3VhIGNhYyBobyBkYW4gY28gbmhhLCBkYXQg YmkgZ2lhaSB0b2EgdGhhbSBnaWEuIERvIGtob25nIHRoYW5oIGxhcCBIb2kgZG9uZyBkZW4gYnUg dGhpZXQgDQpoYWkgZ2lhaSBwaG9uZyBtYXQgYmFuZyBvIGNhYyBodXllbiBuZW4gY3VuZyBraG9u ZyBsYXAgcGh1b25nIGFuIGRlbiBidSwgZGFuIGRlbiANCmtob25nIGNvIGRvbmcgdGFjIHRoYW0g ZGluaCBwaGUgZHV5ZXQgcGh1b25nIGFuOyBraG9uZyBnaWFvIG5oaWVtIHZ1IGNobyBjYWMgY2Fw LCBjYWMgDQpuZ2FuaCBkZSB0aHVjIGhpZW4gY2h1YyBuYW5nIHRoYW0gbXV1IHR1bmcgbGluaCB2 dWMgbGEga2hvbmcgZHVuZyB2b2kgcXV5IGRpbmggdGFpIA0KZGlldSAzMiwgZGlldSAzMyBOZ2hp IGRpbmggMjIvMTk5OC1ORC1DUCBuZ2F5IDI0LzQvMTk5OCAoZGlldSAzMiBxdXkgZGluaCB2ZSBI b2kgDQpkb25nIGRlbiBidSB0aGlldCBoYWkgZ2lhaSBwaG9uZyBtYXQgYmFuZywgZGlldSAzMyBx dXkgZGluaCB2ZSB0cmFjaCBuaGllbSBjdWEgVUJORCANCmNhYyBjYXAsIGNhYyBuZ2FuaCk7IGRp ZXUgMzksIGRpZXUgNDAsIGRpZXUgNDEsIGRpZXUgNDMsIGRpZXUgNDQsIGRpZXUgNDUgTmdoaSBk aW5oIA0KMTk3LzIwMDQvTkQtQ1AgbmdheSAwMy8xMi8yMDA0IGN1YSBDaGluaCBwaHUgdmUgYm9p IHRodW9uZywgaG8gdHJvIHZhIHRhaSBkaW5oIGN1IGtoaSANCk5oYSBudW9jIHRodSBob2kgZGF0 Lg0KDQoxLjMgLSBWZSBobyBzbyBib2kgdGh1b25nOg0KDQotIEtob25nIGNvIGJpZW4gYmFuIHZl IGtoYW8gc2F0IHRodWMgZGlhIHRydW9jIGtoaSBnaWFpIHRvYSBkZSB4YWMgZGluaCB0aHVjIHRy YW5nIG5oYSwgZGF0IA0KdmEgdGFpIHNhbiB0cmVuIGRhdCBjdWEgZGFuIHRhaSBraHUgdnVjIGdp YWkgdG9hIGxhbSBjbyBzbyBjaG8gdmllYyB4YXkgZHVuZyBwaHVvbmcgYW4gYm9pIA0KdGh1b25n IHRoaWV0IGhhaSBnaWFpIHBob25nIG1hdCBiYW5nOyBraG9uZyBjbyBwaHVvbmcgYW4gZGVuIGJ1 IGN1IHRoZSBkYW4gZGVuIGtob25nIA0KcGhlIGR1eWV0IHBodW9uZyBhbiBkZW4gYnUuDQoNCi0g VHJvbmcgaG8gc28gYm9pIHRodW9uZywgZGllbiB0aWNoIHRodSBob2kgY2hpIGR1b2MgdGhlIGhp ZW4gdHJvbmcgYmllbiBiYW4ga2llbSBrZSBkbyANCmNhbiBibyBUbyBjaHV5ZW4gdmllbiB2YSBj YW4gYm8gYXAsIHhhIGRpIGtpZW0ga2UgeGFjIGRpbmguIE5oaWV1IGJpZW4gYmFuIGtpZW0ga2Ug ZGF0IA0KdmEgdGFpIHNhbiB0YWkgeGEgUGh1IENoYW5oIGtob25nIGNvIGt5IHRlbiBjdWEgbmd1 b2kgY28gdGhhbSBxdXllbiBjdWEgVUJORCB4YSwgDQpraG9uZyBkb25nIGRhdSBVQk5EIHhhLCBj aGkgZG9uZyBkYXUgdHJlbyB2YW8gYmllbiBiYW4ga2llbSBrZS4NCg0KLSBWaWVjIHR1b25nIHBo YW4gZGF0IGtob25nIGNvIHRpZXUgY2hpIHJvIHJhbmcsIGNhYyBobyBzbyBkYXQgdHVvbmcgcGhh biBkdW9jIGNoYXAgbmhhbiANCmRlbiBidSB0aGkgZ2lheSB0byB0dW9uZyBwaGFuIGxhbSB0aGVv IG1hdSBjdWEgQmFuIHF1YW4gbHkgS2h1IGxpZW4gaG9wIHNvYW4gc2FuLCANCmtob25nIGdoaSBu Z2F5LCB0aGFuZywgbmFtIHR1b25nIHBoYW4gZGF0LCBraG9uZyBnaGkgcm8gbW9pIHF1YW4gaGUg Z2l1YSBuZ3VvaSBjaG8gdm9pIA0Kbmd1b2kgbmhhbiwga2hvbmcgZ2hpIHJvIHRyZW4gZGF0IHR1 b25nIHBoYW4gY28gbmhhIGhheSBraG9uZyBjbyBuaGEuIERvIGNhY2ggbGFtIG5odSANCnZheSBu ZW4gZGEgY28gdHJ1b25nIGhvcCBvbmcgTmd1eWVuIFZhbiBUaHUgLSBCaSB0aHUgRGFuZyB1eSwg a2llbSBDaHUgdGljaCBVQk5EIA0KeGEgUGh1IE15ICh0aGkgeGEgVGh1IERhdSBNb3QpIGRhIGt5 IHhhYyBuaGFuIHZhbyBnaWF5IHR1b25nIHBoYW4gZGF0IGRlIG5oYW4gdGllbiANCmhvaSBsbyB2 YSBkYSBiaSB0cnV5IGN1dSB0cmFjaCBuaGllbSBoaW5oIHN1Lg0KDQoxLjQgLSBLZXQgcXVhIHRo dWMgaGllbiBjb25nIHRhYyBkZW4gYnUgZ2lhaSB0b2E6DQoNCkRlbiB0aG9pIGRpZW0gVGh1IHR1 b25nIENoaW5oIHBodSBjbyBRdXlldCBkaW5oIDkxMi9RRC1UVGcgbmdheSAwMS85LzIwMDUgcGhl IA0KZHV5ZXQgIkRlIGFuIHRvbmcgdGhlIGRhdSB0dSB2YSBwaGF0IHRyaWVuIEtodSBsaWVuIGhv cCBjb25nIG5naGllcCAtIERpY2ggdnUgLSBEbyB0aGkgDQpCaW5oIER1b25nIiB0aGkgdmllYyBn aWFpIHRvYSwgYm9pIHRodW9uZyBkYSB0aHVjIGhpZW4gZHVvYyA4NSUgZGllbiB0aWNoIHF1eSBo b2FjaA0KDQoyLjEgLSBWaWVjIGdpYW8gZGF0IGNobyB0aHVlIGRhdCB0cm9uZyBraHUgbGllbiBo b3A6DQoNCk1hYyBkYXUgY2FjIHF1eWV0IGRpbmggZ2lhbyBkYXQgdmEgY2FjIGhvcCBkb25nIHRo dWUgZGF0IGR1b2Mga3kgdmFvIG5hbSAyMDA2IHZhIA0KMjAwNywgbmh1bmcgdGh1YyBjaGF0IHZp ZWMgZ2lhbyBkYXQsIGNobyB0aHVlIGRhdCBkb2kgdm9pIGNhYyBuaGEgZGF1IHR1IGtodSBjb25n IG5naGllcCANCmRhIGR1b2MgVUJORCB0aW5oIEJpbmggRHVvbmcgZG9uZyB5IHZlIG1hdCBjaHUg dHJ1b25nIHRob25nIHF1YSB2aWVjIHBoZSBkdXlldCB2YW8gDQpjYWMgaG9wIGRvbmcgImRlbiBi dSBtYXQgYmFuZyBkYXQgZGFpIHZhIGRhdSB0dSBjb25nIHRyaW5oIHRhbyBsdWMiIGt5IGtldCBn aXVhIEJhbiBxdWFuIA0KbHkgKEJRTCkgS2h1IGxpZW4gaG9wIHZhIGNhYyBuaGEgZGF1IHR1IHZh byBuYW0gMjAwNCB2b2kgZG9uIGdpYSA3MDAgdHJpZXUgZG9uZy9oYSANCihjaHVhIGJhbyBnb20g dGllbiBzdSBkdW5nIGRhdCBob2FjIHRpZW4gdGh1ZSBkYXQgcGhhaSBub3ApIi4NCg0KS0VUIE1B IEtIT05HIEtFVA0KDQpOaHUgdmF5LCBjaGkgcmllbmcgdmUgdGh1IGhvaSBkYXQsIGRlbiBidSwg Z2lhaSBwaG9uZyBtYXQgYmFuZywgbmhpZXUgdmllYyBkYSBkdW9jIA0KVUJORCB0aW5oIEJpbmgg RHVvbmcgdGh1YyBoaWVuIGhvYW4gdG9hbiBzYWkgcXV5IGRpbmggcGhhcCBsdWF0LiBTYWkgcGhh bSBjbyBiYW4gDQpuaGF0IGxhIGJhbiBoYW5oIFF1eWV0IGRpbmggMTY0LzIwMDMvUUQgbmdheSAy My02LTIwMDMgdmEgY2FjIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQgDQpjdWEgdGluaCwgaHV5ZW4g dGhpIGt5IHRydW9jIG5nYXkgMS05LTIwMDUsIG5nYXkgZGUgYW4gdG9uZyB0aGUgS2h1IGxpZW4g aG9wIGR1b2MgQ2hpbmggDQpwaHUgcGhlIGR1eWV0LiANCkxlIHJhLCBtb3QgdmFuIGJhbiBiYW4g aGFuaCBzYWkgcGhhcCBsdWF0IHRoaSBwaGFpIGJpIHRodSBob2ksIGh1eSBibyB2YSB0aW0gY2Fj aCBraGFjIA0KcGh1YyBoYXUgcXVhIGRvIHZpZWMgdGh1YyBoaWVuIGNhYyB2YW4gYmFuIG5heSBn YXkgcmEuIERhbmcgbmF5LCBzYXUga2hpIFRoYW5oIHRyYSBkYSANCmtldCBsdWFuIG5odW5nIHNh aSB0cmFpIG5odSB0cmVuLCBVQk5EIHRpbmggQmluaCBEdW9uZyB2YW4gdGllcCB0dWMgcmEgdmFu IGJhbiB0cmEgbG9pIA0Kdm9pIGRhbiByYW5nIGhvIGxhbSBkdW5nIHBoYXAgbHVhdC4gVmEgdHJv bmcgbmFtIDIwMDksIGhvIGRhIGJhbiBoYW5oIGhhbmcgbG9hdCBxdXlldCANCmRpbmggY3Vvbmcg Y2hlIGRlIHRodWMgaGllbiBjYWMgcXV5ZXQgZGluaCBzYWkgdHJhaSBub2kgdHJlbi4gQ29pIG5o dSBjaHVhIGhlIGNvIHRoYW5oIHRyYS4gDQpWaSBzYW8/IFZpIHRyZW4gdGh1YyB0ZSwga2V0IGx1 YW4gVGhhbmggdHJhIGRhIGtob25nIGNvbmcga2hhaS4gTmd1b2kgZGFuIHRydWMgdGllcCBraGll dSANCm5haSB0byBjYW8gdmUgbmh1bmcgc2FpIHBoYW0gY3VhIHRpbmggZGEga2hvbmcgZHVvYyBh aSBjaG8gYmlldCBnaSB2ZSBrZXQgcXVhIHRoYW5oIHRyYS4NCg0KVGhhbmggdHJhIG5vaSBzYWks IHRpbmggbGFpIGJhbyBsYSBUaGFuaCB0cmEgbm9pIGR1bmcuIE5ndW9pIGRhbiBwaGFuIGRvaSB0 aGkgdGluaCBiYW8gbGEgDQpuZ3VvaSBkYW4gZG9uZyB0aHVhbi4gRGFuIGRhIGJpIGJpdCBtb20s IGNoaW5oIHF1eWVuIG5hbSBkb2MgcXV5ZW4gcGhhdCBuZ29uLCB0aGkgDQp2aWVjIGRvaSB0cmFu ZyB0aGF5IGRlbiBjbyBnaSBsYSBraG8ga2hhbi4NCg0KVGFpIGNvbmcgdmFuIGdvaSBjaG8gbmh1 bmcgaG8gZGFuIGtoaWV1IG5haSBjaGluaCBzYWNoIGJvaSB0aHVvbmcgY3VhIFVCTkQgdGluaCBC aW5oIA0KRHVvbmcgbGEgdHJhaSBwaGFwIGx1YXQsIGR1b2MgYmEgVHJhbiB0aGkgS2ltIFZhbiwg UGhvIGNodSB0aWNoIFVCTkQgdGluaCBreSBuZ2F5IDI3LQ0KMDItMjAwOSwgY2hpbmggcXV5ZW4g dGluaCBCaW5oIER1b25nIGtoYW5nIGRpbmg6DQoiQ2FuIGN1IE5naGkgZGluaCBzbyAyMi8xOTk4 LU5ELUNQIG5nYXkgMjQgdGhhbmcgNCBuYW0gMTk5OCBjdWEgQ2hpbmggcGh1IHZhIGNvbmcgDQp2 YW4gMjk1L0NQLUNOIG5nYXkgMTktMy0yMDAzIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1LCBVQk5E IHRpbmggZGEgYmFuIGhhbmggDQpRdXlldCBkaW5oIDE2NC8yMDAzL1FEIG5nYXkgMjMtNi0yMDAz IHF1eSBkaW5oIHZlIGJvaSB0aHVvbmcgZGF0IHZhIHRhaSBzYW4gdHJlbiBkYXQsIA0KbGEgZHVu ZyBxdXkgZGluaCBwaGFwIGx1YXQiLg0KIlRoYW5oIHRyYSBDaGluaCBwaHUgLi4uIGNvIGtldCBs dWFuIFF1eWV0IGRpbmggMTY0LzIwMDMvUUQgbmdheSAyMy02LTIwMDMgbGEgZHVuZyANCnBoYXAg bHVhdCB2YSBjaG8gcGhlcCB0aWVwIHR1YyB0aHVjIGhpZW4gZGVuIGhldCBkdSBhbiIuDQoNCkNv biBiYW8gQmluaCBEdW9uZywgY28gcXVhbiBjdWEgZGFuZyBibyB0aW5oIEJpbmggRHVvbmcgbmdh eSAzMS0zLTIwMDkgdGhpIGluIGhpbmggDQpuaHVuZyBuZ3VvaSBkYW4gZGFuZyBwaGFuIGRvaSBV Qk5EIHRpbmggQmluaCBEdW9uZyB0YWkgY3VvYyBob3AgZG9pIHRob2FpIG5nYXkgMTMtDQozLTIw MDksIHJvaSBnaGkgY2h1OiAiTmd1b2kgZGFuIGRvbmcgdGluaCBreSBiaWVuIGJhbiBwaHVvbmcg YW4gZ2lhaSBxdXlldCB0b24gZG9uZyANCnRyb25nIGtodSBsaWVuIGhvcC4gTmd1b2kgZGFuIGRv bmcgdGh1YW4sIGJhbyBkYW0gY29uZyB0YWMgYm9pIHRodW9uZyBnaWFpIHRvYSBLTEggDQpjdWEg VUJORCB0aW5oIEJpbmggRHVvbmciLg0KDQpOaHVuZyBvIGRheSwgdmFuIGRlIGxhIG8gY2hvOiB0 YWkgc2FvIGNhYyBxdXlldCBkaW5oIHNhaSB0cmFpIGtob25nIGR1b2MgVGhhbmggdHJhIENoaW5o IA0KcGh1IGtpZW4gbmdoaSB0aHUgaG9pIHZhIGh1eSBibywgdmEgdGFpIHNhbyBUaGFuaCB0cmEg a2hvbmcgY29uZyBraGFpIG5vaSBkdW5nIGtldCBsdWFuIA0Kbmh1bmcgc2FpIHRyYWkgdGFpIEto dSBsaWVuIGhvcCBjb25nIG5naGllcCAtIGRpY2ggdnUgLSBkbyB0aGkgdGluaCBCaW5oIER1b25n PyBWYSB0YWkgDQpzYW8gdm9pIG5odW5nIHNhaSBwaGFtIGRvbmcgdHJvaSBuaHUgdmF5IGN1bmcg dm9pIGhhbmcgbG9hdCB2aWVjIGxhbSB0cmFpIHBoYXAgbHVhdCB0cm9uZyANCnZpZWMgZ2lhbyBk YXQsIGNobyB0aHVlIGRhdCwgY2hvIGNodXllbiBuaHVvbmcgZHUgYW4uLi4gbWEgY2hvIHRvaSBo b20gbmF5LCBjaHVhIGNvIGNhbiANCmJvIG5hbyBjdWEgVUJORCB0aW5oIEJpbmggRHVvbmcsIGNo dSBkYXUgdHUgZHUgYW4sIGJpIHh1IGx5Pw0KDQpOREJEDQoNClBodSBsdWM6DQoNCiJQaGFpIGNo YW5nIG5ldSBraG9uZyBjbyB0dSBkbyBiYW8gY2hpLCBraG9uZyBjbyB0dSBkbyBuZ29uIGx1YW4s IHRoaSBzdSB0aGF0IHNlIGJpIG5oYW4gDQpjaGltIHRyb25nIGJvbmcgdG9pLCBjdW5nIHZvaSBi YW8gbmhpZXUgb2FuIHVjIGN1YSBuZ3VvaSBkYW4gdm8gdG9pID8iDQoNCkFuaCBjaHVwOiBOaHVu ZyBuZ3VvaSB0cm9uZyBhbmggbGE6DQpTbyAxOiBIdXluaCBWYW4gTmdoaWVwIFNvIDI6IFRoYWkg VGhpIEhvDQpTbyAzOiBMZSBWYW4gSG9hIFNvIDQ6IFRoYWkgVmFuIEJpDQpUYWkgY3VvYyBob3Ag ZG9pIHRob2FpIHZvaSBCYSBUcmFuIHRoaSBLaW0gVmFuLCBQaG8gY2h1IHRpY2ggVUJORCB0aW5o IHZhbyBuZ2F5IDEzLTMgDQpvIHhhIFRhbiBWaW5oIEhpZXAsIFRhbiBVeWVuIEJELiBIbyBkYW5n IHBoYW4gZG9pIFVCTkQgdGluaCBCaW5oIER1b25nIGJvaSANCnRodW9uZyB0aGVvIHBodW9uZyBh biBnaWFpIHF1eWV0IHRvbiBkb25nIGN1YSBVQk5EIHRpbmggQmluaCBEdW9uZy4gDQpCYW8gRGll biB0dSBCaW5oIER1b25nIG5nYXkgMzEtMy0yMDA5IGRhbmcgaGluaCBobyB2YSBnaGkgY2h1ICJO Z3VvaSBkYW4gZG9uZyB0aW5oIA0Ka3kgYmllbiBiYW4gcGh1b25nIGFuIGdpYWkgcXV5ZXQgdG9u IGRvbmcgdHJvbmcga2h1IGxpZW4gaG9wLiBOZ3VvaSBkYW4gZG9uZyB0aHVhbiwgDQpiYW8gZGFt IGNvbmcgdGFjIGJvaSB0aHVvbmcgZ2lhaSB0b2EgS0xIIGN1YSBVQk5EIHRpbmggQmluaCBEdW9u ZyIuDQoNCkRheSBsYSBtb3QgdHJvbmcgcmF0IG5oaWV1IHRodSBkb2FuIGRlIGRhbmggbGFjIGh1 b25nIGR1IGx1YW4sIGRvaSB0cmFuZyB0aGF5IGRlbiBtb3QgDQpjYWNoIHRyYW5nIHRyb24gbmhh dCBjaGUgbWF0IG5oYW4gZGFuOyBkYXkgY3VuZyBsYSBtb3QgdHJvbmcgbmh1bmcgaGF1IHF1YSBj dWEgY2hpbmggDQpzYWNoIE5oYSBudW9jIGRvYyBxdXllbiBiYW8gY2hpLCB2YSBuZ3VvaSBkYW4g a2hvbmcgZHVvYyBxdXllbiB0dSBkbyBuZ29uIGx1YW4uIA0KDQotDQpodHRwOi8vdHVkb3Zpcy5j b20vdmlzX2ZvcnVtcy9mb3J1bTI4LzQ3NjQuaHRtbCBES0cgMTIvNC8yMDA2IDA4OjIwIHBtDQoN ClRodSB0dW9uZzogRGFuIEtpZW4gR2lhbmcgdG8gY2FvIFRodSBUdW9uZyB0dW9uZyBsYWkgKFZl bSEpIE5ndXllbiBUYW4gRHVuZyANCg0KQ2h1bmcgdG9pIGxhIG5ndW9pIGRhbiBzb25nIHRhaSB0 aW5oIEtpZW4gZ2lhbmcsIGxhbSBkb24gbmF5IGdvaSBkZW4gDQpCYW4gQmkgdGh1IHRydW5nIHVv bmcgZGFuZyB2YSBkYWkgaG9pIFggdG8gY2FvIG9uZyBOZ3V5ZW4gdGFuIER1bmcuIA0KTmV1IGRh aSBob2kgWCBsYWkgY28gY2F1IGRlIG9uZyBOZ3V5ZW4gVGFuIER1bmcgbmFtIG5odW5nIHZhaSB0 cm8gDQpxdWFuIHRyb25nIHRyb25nIGRhbmcgdmEgbmV1IGxhIFRodSB0dW9uZyB0aGkga2hvbmcg YmlldCBkYXQgbnVvYyANCmNodW5nIHRhIHNlIGRpIHZlIGRhdT8uLi4uIENodW5nIHRvaSB0byBj YW8gb25nIGF5IGJvaSBjYWMgbHkgZG8gc2F1IGRheTogDQoNCkhvaSBvbmcgdGEgY29uIGxhIDEg b25nIHF1YW4gY2FwIGh1eWVuIG8gaHV5ZW4gSGEgdGllbiAtIHRpbmggS2llbiBHaWFuZywgDQpo YW5nIGxhdSB0dSBiaWVuIGdpb2kgQ2FtcHVjaGlhLCBUaGFpIGxhbiB0cmFuIHZhbyB0aW5oIEtp ZW4gR2lhbmcgbmh1IA0KdGhhYyBkbywgdHUgZHVvbmcgdGh1eSBsYW4gZHVvbmcgYm8uIERlbiBr aGkgb25nIEJhIER1bmcgbGVuIGRlbiBjYXAgDQp0aW5oIHRoaSBoYW5nIGxhdSBuaGFwIHZhbyBL aWVuR2lhbmcga2hvbmcgY29uIGR1b2kgZGFuZyBsZW4gbHV0IG51YSwgDQptYSBsdWMgbmF5LCBo YW5nIGxhdSBkdW9jIGNobyBjb25nIGtoYWkgYmFuZyB0YXUgdHJvbmcgdGFpIGxvbiwgY3VhIA0K cXVhbiBkb2kgdmEgY29uZyBhbiwgdHJ1bmcgY2h1eWVuIHZhbyBibyB0dSBuaHVuZyBjaGllYyB0 YXUgVGhhaSBMYW4gDQpkYXUgbmdvYWkga2hvaSBkYW8gUGh1IFF1b2MgaGF5IEhvbiB0cmUuLi4g DQoNCk5ndW9pIGRhbiBLaWVuIEdpYW5nIGNodW5nIHRvaSB2YSBuaHVuZyBhaSBvIGRvbmcgYmFu ZyBzb25nIEN1dSBMb25nLCBzb25nIHRyb25nIHRob2kga3kgdmFvIG5odW5nIG5hbSAxOTg3LCB2 YW4gY29uIG5obyBkZW4gdnUgYW4gQmluaCBIb3QgdHVjIGxhIEh1eW5oIEJpbmggUGh1b2MgbGEg b25nIHRydW0gYnVvbiBsYXUgc28gMSBvIG1pZW4gTmFtIHZlIGhhbmcgZGllbiB0dS4gQmluaCBI b3QgZHVvYyBjaGluaCBxdXllbiB0aW5oIA0KS2llbiBHaWFuZyB0aG9pIGJheSBnaW8gYmF5IHRy byB4YXkgMWNhbmcgdGVuIGxhIEhvbiBDaG9uZywgY2FuZyBuYXkgcGhhaSBtYXQgaGV0IGhhbmcg dHJhbSB0eSBkb25nLCBkb25nIHRob2kgY29uIGxhbSAxIGNvbiBkdW9uZyBkYW4gdmFvIGNhbmcg Z2FuIGNodWMgY2F5IHNvIGRlIGNobyBtb2kgDQpuZ2F5IGtob2FuZyB0dSA0MCBkZW4gNTAgeGUg dGFpIGxvYWkgZG9uZyBsYW5oIGhvYXQgZG9uZyB2b2kgbXVjIGRpY2ggY2hvIGhhbmcgY3VhIHRy dW0gQmluaCBIb3QgdHUgVGhhaSBMYW4sIFNpbmdhcG9yZSB2YW8gY2FuZywgcm9pIGRpIHBoYW4g cGhvaSBjYWMgdGluaCBtaWVuIFRheSwgDQp0aGFuaCBwaG8gSENNIHZhIGNhYyBub2kga2hhYy4g RGVuIGtoaSBiYW8gY2hpIHBoYXQgaGllbiwgdHJvbmcgZG8gY28gYmFvIFRoYW5oIE5pZW4gKGRh bmcgdGFpIG1hbmggbmhhdCkgY3VuZyBraG9uZyBpdCBsYW4gcGhvbmcgdmllbiB0byBiYW8gbmF5 IGJpIGNoaW5oIHF1eWVuIHRpbmggY2hvIA0KYm9uIHhhIGhvaSBkZW4gZXAgeGUsIGRlIGRvYSB2 YSBkbyBuaGlldSB0cm8ga2hhYy4gVGhheSBiYW8gY2hpIGxlbiB0aWVuZywgY2hpbmggcXV5ZW4g dGluaCBsaWVuIHRvIGJheSBkb25nIHRoYWkgImNob25nIGJ1b24gbGF1IiBiYW5nIGNvbiBkYW8g MiBsdW9pIHZvaSBCaW5oIEhvdCwgbmhpZXUgcXVhbiANCmNodWMgY2FwIGNhbyB0aW5oIGJheSB0 cm8gdmF5IG11b24gdGllbiBjdWEgQmluaCBIb3Qgdm9pIHNvIGx1b25nIGxvbiB2YSBkb25nIGtp Y2ggY2hheSBjaG90IHZ1IHZpZWMgYmFvIGRhbmcsIGtoaSBjYWMgcXVhbiBkYSBkYXkgdHVpLCBz YXUgZG8gbGFwIGtlIGhvYWNoIHRvbSBCaW5oIEhvdCANCnRoZW8gZHVuZyBraWNoIGJhbiBkYSBk dW5nIHNhbiwgdGhlIGxhIHZ1IGFuIG5heSBkYSBsYXAgY29uZyB0aGF0IGhvYW4gaGFvLCBjaGkg Y28gdmFpIGNhbiBibyB0ZXAgcml1IGNhcCBodXllbiBkdW5nIHRydW9jIHZhbmggbW9uZyBuZ3Vh IGNvIGhpbmggdGh1YyBkZSB0b2EgeGV0IHh1LCByb2kgc2F1IGRvLCBpdCB0aGFuZyBzYXUsIGN1 bmcgdGhheSBkdW9jIGFuIHhhIHZlIGhldC4gUXVhIHZ1IG5heSwgY2FjIGNhbiBibyBnaWF1IHN1 IGxlbiwgbmd1b2kgDQptdWEgbmhhLCBrZSB0YXUgZGF0LCBraG9uZyBpdCBuZ3VvaSBkYSBkdW5n IGRvbmcgdGllbiBuYXkgZGUgdGllbiB0aGFuLCB0cm9uZyBkbyBjbyBzZXAgQmEgRHVuZywgZGll dSBuZ2FtIG5ndWkgdmEgb2FuIGhhbiBuaGF0IGxhIG5odW5nIGNhbiBibyBsYW8gdGhhbmgsIG5n dW9pIGRhbiB0dW5nIGNodW5nIGtpZW4gY2FuZyBIb24gQ2hvbmcgbmFtIGJhdCBkb25nIGdhbiAy MCBuYW0gcXVhLi4uIA0KDQpWdSBjb25nIHR5IFh1YXQgTmhhcCBLaGF1IEtpZW4gR2lhbmcgdGhh bSBuaHVuZyBoYW5nIHRyYW0gdHkgZG9uZyBjdW5nIG5hbSB0cm9uZyBrZSBob2FjaCBCYSBEdW5n LiBPbmcgQmEgRHVuZyB2YW8gbmFtIDE5OTEgLSAxOTkzIHR1bmcgZGlldSBoYW5oIG5oaWV1IHZ1 IGJ1b24gbGF1IGhhbmcgZGllbiB0dSwgcGh1IHR1bmcgbWF5IEhvbmRhIHR1IGNhbmcgQ2hhdSBU aG9pIC0gQW4gR2lhbmcuIE9uZyB0YSBkdW5nIHhlIGNvIA0KcXVhbiBiaWVuIHNvIHhhbmggZGUg Y2hvIGhhbmcgbGF1LCB0dSBjYW5nIENoYXUgVGhvaSAtIEFuIEdpYW5nIHZlIEtpZW4gR2lhbmcu IEtoaSBoYW5nIHZlIGRlbiB0aW5oIG5oYSB0aGkgb25nIHRhIGdpYW8gY2hvIG5ndW9pIGVtIHZv IHRlbiBsYSBUcmFuIFF1b2MgTGllbSAtIHRodW9uZyB1eSwgIHRydW9uZyBkb24gY29uZyBhbiBw aHVvbmcgVmluaCBUaGFuaCAtIHRhcCBrZXQgY2F0IHRhaSBuaGEgKHRydW9jIGNvbmcgbmhhIHRo byBSYWNoIA0KR2lhKSBzbyBuaGEgMjIgZHVvbmcgVHJhbiBiaW5oIFRyb25nIC0gUmFjaCBHaWEs IHZhIGtobyBjdWEgY29uZyB0eSBEdSBsaWNoIEtpZW4gR2lhbmcuIEhhbmcgZGllbiB0dSB0aGkg Z2lhbyBjaG8gY2FjIHRodW9uZyBsYWkgdHUgVFAgIEhDTSwgaGFuZyBIb25kYSB0aGkgZ2lhbyBj aG8gc28gDQp0aHVvbmcgbGFpIG5nb2FpIHRpbmggdmEgdmFpIHNhbG9uIG5odSBUaGFpIEhvYSwg S2ltIERpZXAgdmEgZGF0IGJpZXQgMiBzYWxvbiBjdWEgbmhhIGhvIGhhbmcgbGEgTmdvYyBLaGFu aCwgTmFtIE5obyBjbyBwaGFuIGh1biBjdWEgbmhhIGFuaCBCYSBEdW5nLiANCg0KTmd1b2kgbmhh IGFuaCBCYSBEdW5nIGNoaWVtIGxpbmggbmhpZXUgdmkgdHJpIGtpbmggdGUgcXVhbiB0cm9uZyBu aHUgeGFuZyBkYXUsIG5oYSBkYXQsIHRhdSBiaWVuLCBkdSBsaWNoLiBOZXUgYWkgY28gZGVuIFJh Y2ggR2lhLCB0aGF5IHhlIFRheGkgY2EgZG9hbiwgdGhpIHBoYWkgYmlldCBuZ2F5IHhlIGN1YSBI b2FuZyBNeSBsYSBjdWEgZ2lhIGRpbmggcGhvIHRodSB0dW9uZyBOVEQuIFRyb25nIGxpbmggdnVj IHhheSBkdW5nIHRoaSBnaWEgZGluaCBCYSANCkR1bmcgY3VuZyBraG9uZyBrZW0gbyB2aWVjIHRy dW5nIHRoYXUgbGFtIHF1b2MgbG8gNjMgS2llbiBHaWFuZyAtIENhIE1hdS4gQ2hpIGFuaCBCYSBr aG9uZyBjbyBjaHV5ZW4gbW9uIHRyb25nIHhheSBkdW5nIG5odW5nIGN1bmcgZHVvYyB0cnVuZyB0 aGF1IGRvYW4gY29uZyBzdSBWaW5oIFRpZW4gKENoaWV1KSBnYW4gMTBrbSBuaHVuZyBzYXUgZG8g a2hvbmcgbGFtIG1hIGJhbiBkb2FuIG5heSBjaG8gdGhhdSBraGFjIGRlIA0KaHVvbmcgbG9pIDMg dHkuIERvYW4gbmF5IHRoaSBjb25nIG11b24gbGFtIGNhbiB0cm8gZ2lhbyB0aG9uZyB0cm9uZyB0 aG9pIGdpYW4gZGFpIC4uLmNhYyB0YWkgeGUgbGFjIGRhdSBiYW8gbmhhdSAiY2hpIGN1YSBCYSBE VU5HIiBxdWEgZG8hLg0KTW9pIGRheSBuZ3VvaSBkYW4gS2llbiBHaWFuZyAtIENhIE1hdSBkYW5n IGJhbiB0YW4gY28gMSBraGFjaCBzYW4gOCB0YW5nIGxvbiBuaGF0IG8gDQp0aGFuaCBwaG8gQ2Eg TWF1IG5hbSB0cmVuIGR1b25nIE5ndXllbiBUcmFpLCBkYW5nIHRoaSBjb25nIHRyb25nIGdpYWkg ZG9hbiBjdW9pIGdhbiA0MCB0eSBkb25nIGxhIGN1YSBtZSBydW90IG9uZyBQaG8gdGh1IHR1b25n IE5ndXllbiBUYW4gRHVuZywgaHVuIGhhcCB2b2kgMSB2aWV0IGtpZXUgTXk/IENvbiBjaHV5ZW4g bmd1b2kgbmhhIEJhIER1bmcgbG9pIGR1bmcgYW5oIGh1b25nIHF1eWVuIGx1YyBkZSBjaGllbSBu aGEsIGRhdCwgDQpjaGF5IGFuIHRoaSBraG9uZyB0aGUgbmFvIGtlIGhldC4gQ2FjIHF1YW4gY2h1 YyBvIEtpZW4gR2lhbmcgbW9pIG5nYXkgY2FuZyBsb25nIGhhbmgsIHZpIGR1IG5odSB2dSB2aSBw aGFtIHRyb25nIHF1YW4gbHkgZGF0IGRhaSBvIFBodSBRdW9jLCBuZXUga2hvbmcgY28gYWkgZG8g byBjYXAgVFcgDQpkYW4gZHVvbmcgY2hpIGxvaSwgdnUgeGUgcXVhbmcgdHJ1b25nIGJhbiBuZW4g bmhhIG8gTGFjIEhvbmcsIHJvaSBhaSBsYSB0YWMgZ2lhIEtodSBkbyANCnRoaSBsdW4sIGtodSBs YW4gYmllbiwgcm9pIGNvbiBiYW8gbmhpZXUgY2h1eWVuIG1hIGJhbyBjaGkgbGVuIHRpZW5nLi4u IGN1bmcgcm9pIHZhbyBpbSBsYW5nIDEgY2FjaCBkYW5nIHNvICEhISANCg0KREFOIEtJRU4gR0lB TkcgDQoNClkga2llbiB0aGFvIGx1YW46DQpDRENYICgxMi80LzIwMDYgMTE6MTggcG0pOiAgDQoN Ck5URCBuYXkgbGEgImNvbiBvbmcgY2hhdSBjaGEiIG5lbiBtb2kgbGVvIGNhbywgdHJlbyBzYXUg ZGVuIHRoZS4uLiBjaHUgY2FpIHRodSBkbyBjbyB0YWkgY2FuIGdpLg0KDQpodHRwOi8vd3d3LnZp ZXRjeWJlci5jb20vZm9ydW1zL3Nob3d0aHJlYWQucGhwP3Q9MTEwODMxDQoNCk5odW5nIGJpIGFu IHZlIHRhbiBUaHUgdHVvbmcgVmlldCBOYW0gTmd1eWVuIFRhbiBEdW5nDQoNCihIb2FuZyBEdW5n IC0gY3V1IGNhbiBibyBWUFRVKQ0KDQpTYXUgbmdheSAzMC80LzE5NzUgdG9pIGR1b2MgcGhhbiBj b25nIG5oaWVtIHZ1IGtpZW0gc29hdCB2aWVjIHRpZXUgaHV5IG5odW5nIHRodSBtYSBsdWMgYXkg ZHVvYyBuZ3VvaSB0YSBnb2kgbGEgJ3ZhbiBob2EgcGhhbSBkb2kgdHJ1eScgU2FpIGdvbiBuaHVu ZyBuZ2F5IGF5IGNvbiBob24gbG9hbiwgYmUgYm9uLCBsb25nIG5ndW9pIHRoaSBob2FuZyBtYW5n LCBiYXQgb24uIFNvbmcgdHJvbmcgbWF0IGJvbiBjaHVuZyB0b2kgLSBuaHVuZyBrZSBjaGllbiB0 aGFuZyB2dWEgdHUgcnVuZyBudWkgdGllbiB2YW8gLSBTYWkgZ29uIGR1bmcgdGhhdCBsYSAnaG9u IG5nb2MgdmllbiBkb25nJy4gTmhhIGN1YSB0aGFuaCBwaG8gaGllbiBkYWksIGhhbmcgaG9hIG5o aWV1IHZvIGtlLCBkYWMgYmlldCBsYSBzYWNoIGJhbywgdHJhbmggYW5oLCBiYW5nIGRpYSB2YSBu aHVuZyB0aHUgc2FuIHBoYW0gYmkgY29pIGxhICd0YW4gZHUgY3VhIGNoZSBkbyBjdScuIA0KDQpM dWMgYXkgY2h1bmcgdG9pIGR1b2MgdXkgYmFuIHF1YW4gcXVhbiBibyB0cmkgbyB0YWkgbW90IG5n b2kgYmlldCB0aHUgYm8gaG9hbmcgbyBraHUgUGh1IFRoby4gTWFjIGR1IGxhIGJvIGtob25nIG5o dW5nIHRoYXQgcmEgZGF5IGxhIG1vdCBiaWV0IHRodSBtb2kgdGluaCBjaHVhIGNvIG5ndW9pIGRl biBvLCBjaHUgbmhhIGNvIGxlIGxhIG1vdCBuZ3VvaSBnaWF1IGNvLCB4YXkgZHVuZyBtb2kgeG9u ZyB0aGkgYm8gZG9pIGdpYWkgcGhvbmcgdmFvIG5lbiBjbyB0aGUgZGEgZGkgZGkgdGFuIGhvYWMg a2hvbmcgZGFtIGRlbiBuaGFuIG5oYS4gTmdvaSBuaGEgY28gdG9pIDEzIHBob25nLCBtb2kgcGhv bmcgZGV1IGNvIHRyYW5nIGJpIGRvIGR1bmcgZGF5IGR1IHZhIHJhdCBzYW5nIHRyb25nLiBNb3Qg c28gbmh1bmcgY2hpZW4gc3kgdHJlIGx1YyBheSB0aGljaCBkb2MgdHJ1eWVuIHRyYW5oLCB0cnV5 ZW4gdHVvaSBob2EgbmllbiB0aGkgbWFuZyB2ZSBkYXkgcGhvbmcgZHUgY2FjIGxvYWkgc2FjaCB0 cnV5ZW4gdHUgVGF5IER1IGt5LCBUYW0gUXVvYyBjaGksIGRlbiBjYSBEYXQgS3ktIFRydSBWdW9u Zywgcm9pIGNodXllbiBraWVtIGhpZXAga2hvbmcgYmlldCBjbyBtYW4gbmFvLiBEb2kgdm9pIG5o dW5nIG5ndW9pIHNvbmcgbyBtaWVuIEJhYyBuZ2hlbyBraG8gdmEgbmh1bmcgbmd1b2kgYmFvIG5h bSBob2F0IGRvbmcgbyB0cm9uZyBydW5nIG51aSB0aGlldSB0aG9uIHRoaSBkdW5nIHF1YSBsYSBi aSBjaG9hbmcgbmdvcCB2b2kgY2FjIGxvYWkgc2FjaCBiYW8gU2FpIEdvbiBuZ2F5IGF5LiANCg0K VHJvbmcgY29uZyB2aWVjIGhhbmcgbmdheSB0b2kgY3VuZyB0aGluaCB0aG9hbmcgbGFuIGdpbyB4 ZW0geGV0IG1vdCBzbyBuaHVuZyBjdW9uIHNhY2ggY3UsIG1vdCBzbyB0aWV1IHRodXlldCBsaWNo IHN1IGRlIGhpZXUgdGhlbSB2ZSBjaGUgZG8uIFZpZXQgbmFtIGNvbmcgaG9hLCBkYWMgYmlldCBu aGlldSBuaGF0IGxhIHNhY2ggdmlldCB2ZSBuZW4gZGUgbmhhdCBjb25nIGhvYSBuaHUgY3VvbiAn QmVuIGdpb25nIGxpY2ggc3UnIGN1YSBsaW5oIG11YyBDYW8gVmFuIEx1YW4sIGhheSAnTmh1bmcg bmdheSBjaHVhIHF1ZW4nLi4uIEx1YyBheSB2aWVjIGRvYyBzYWNoIGNoYW5nIHF1YSBjdW5nIGNo aSBkZSBjaG8gZGUgYnVvbiBuZ3UgdmFvIG1vaSBidW9pIHRvaSBjaHUgdGhhdCByYSBjdW5nIGNo YW5nIGNvIHkgbmdoaWEgZ2kuIENodW5nIHRvaSBkZXUgY2hvIHJhbmcgZG8gbGEgbmh1bmcgc2Fj aCBiYW8gbmhhbSBuaGksIHZpZXQga2hvbmcgZHVuZyBzdSB0aGF0LiBNb3QgY3VvbiBzYWNoIGhp bmggbmh1IGNvIHR1YSBkZSBsYSAnTmh1bmcgYm9uZyBtYSB0cm9uZyBob25nIHRydW9uZycgdmll dCB2ZSBuaHVuZyBjYXUgY2h1eWVuIHRoYW0gY3VuZyBiaSBzdSB0cm9uZyBRdWFuZyB0cnVvbmcg ZG8gdGhvaSBYbyB2aWV0LCBub2kgdmUgY2h1eWVuIGRhbSBvLCBsb2FuIGx1YW4gY3VhIGNhYyBs YW5oIGRhbyBYbyB2aWV0LCBsdWMgYmF5IGdpbyBkb2Mgbmh1bmcgY2h1eWVuIGF5IGNoaSB4ZW0g bmh1IG5odW5nIGNodXllbiB0aWV1IGxhbSwgbmh1bmcgaHUgY2F1IGtob25nIGNvIHRoYXQsIGNo dSB0dXlldCBuaGllbiBraG9uZyB0aGUgdGluIGR1b2MuIA0KDQpUaGUgcm9pIHRob2kgZ2lhbiB0 aGFtIHRob2F0IHRyb2kgcXVhIHZvaSBiYW8gbmhpZXUgYmllbiBjaHV5ZW4sIGRvaSB0aGF5IGN1 YSB4YSBob2kuIFNhaSBHb24gbmdheSBheSBiYXkgZ2lvIGNoaSBjb24gdHJvbmcga3kgdWMgY3Vh IG1vaSBjb24gbmd1b2kgbWEgZGEgZ2FuIGJvLCBkYSB0cmFpIHF1YSB2YW8gbmh1bmcgZ2lhaSBk b2FuIGxpY2ggc3UgYXkuIFRvaSBjdW5nIGRhIGx1YW4gY2h1eWVuIHF1YSBuaGlldSB2aSB0cmks IGNvbmcgdmllYyBraGFjIG5oYXUuIFRyb25nIHF1YSB0cmluaCBjb25nIHRhYyB0b2kgY28gbWF5 IG1hbiBkdW9jIGxhbSB2aWVjIG1vdCBraG9hbmcgdGhvaSBnaWFuIG5nYW4gdm9pIGNvIFRvbmcg YmkgdGh1IE5ndXllbiBWYW4gTGluaC4gS2hvYW5nIHRob2kgZ2lhbiBuYXkga2hvbmcgZGFpIG5o dW5nIGxhaSBsYSBraG9hbmcgdGhvaSBnaWFuIHJhdCBxdXkgYmF1IGRvaSB2b2kgdG9pIGJvaSB2 aSBkYSBob2MgZHVvYyBuaGlldSBkaWV1IHZhIGhpZXUgZHVvYyBuaGlldSBkaWV1IHR1IGNvIHF1 YW4gcXV5ZW4gbHVjIGNhbyBuaGF0LCB0dSBuZ3VvaSBkdW5nIGRhdSBibyBtYXkgbGFuaCBkYW8g VmlldCBuYW0uIFRyb25nIGRvIGNvIG5odW5nIGNhdSBjaHV5ZW4gbWEgcXVhIGhhbmcgY2h1YyBu YW0gZ2l1IGtpbiwgJ2RhbyBzYXUgY2hvbiBjaGF0Jywgc3V5IHhldCwga2llbSBuZ2hpZW0gZGVu IG5nYXkgaG9tIG5heSBtb2kgZGFtIG5vaSByYSwgYm9pIHZpIG5vIGNvIGxpZW4gcXVhbiBkZW4g bmh1bmcgY29uIG5ndW9pIHZhIGhvYW4gY2FuaCBsaWNoIHN1IGN1YSBkYXQgbnVvYyB0YSB0cnVv YyBkYXksIG5nYXkgaG9tIG5heSwgdmEgY28gdGhlIG5vIHNlIGFuaCBodW9uZyBkZW4gdHVvbmcg bGFpIGRhbiB0b2MgbmdheSBtYWkuIA0KDQpUcnVvYyBraGkgZ2l1IGNodWMgdnUgVG9uZyBiaSB0 aHUgRGFuZyBjb25nIHNhbiBWaWV0IG5hbSBjdSBOZ3V5ZW4gVmFuIExpbmggZGEgdHVuZyBob2F0 IGRvbmcgdmEgbGFtIHZpZWMgdGFpIG1pZW4gTmFtIGdhbiA1MCBuYW0gKGN1IHZhbyBTYWkgR29u IGhvYXQgZG9uZyB0dSAxOTM5KSwgdmEgZGEgdHVuZyBkYW0gbmhpZW0gaGF1IGhldCBjYWMgY2h1 YyB2dSBsYW5oIGRhbyBjYW8gbmhhdCB0YWkgbWllbiBOYW0gdHJ1b2MgdmEgc2F1IGNoaWVuIHRy YW5oLiBWaSB0aGUgZHUgc2luaCB0cnVvbmcgdHJlbiBxdWUgaHVvbmcgSHVuZyBZZW4gbWllbiBC YWMgbmh1bmcgY3UgZGEgdGh1YyBzdSBuaHUgbW90IG5ndW9pIGNvbiBjdWEgTmFtIGJvLiBEZW4g a2hpIGxlbiBnaXUgY2h1YyBUb25nIGJpIHRodSBjdSBOZ3V5ZW4gVmFuIExpbmggdmFuIHJhdCB0 aHVvbmcgeHV5ZW4gbGFtIHZpZWMgdGFpIFNhaSBHb24sIGN1IHNpbmggaG9hdCByYXQgZ2lhbiBk aSwga2hpZW0gdG9uIHZhIGtpbiBkYW8uIEN1IG8gdHJvbmcga2h1IHZ1YyByaWVuZyBjdWEgQmFu IHF1YW4gdHJpIHRhaSBjaGluaCBUcnVuZyB1b25nLCBnb2kgbGEgVCA3OCwga2h1IHZ1YyBuYXkg bGEgbW90IGRvYW4gZHVvbmcgVHJhbiBRdW9jIFRvYW4gZHVvYyBkb24gdmkgY2FuaCB2ZSBuZ2Fu IGxhaSBoYWkgZGF1IHBobyB0aWVwIGdpYXAgdm9pIGR1b25nIE5hbSBLeSBLaG9pIE5naGlhIHZh IGR1b25nIFRyYW4gUXVvYyBUaGFvLCB0aGFuaCBtb3Qga2h1IHZ1YyByaWVuZyBiaWV0LCBjbyBs b2kgcmEgdGhvbmcgdm9pIGR1b25nIEx5IENoaW5oIFRoYW5nIChzYXUgbmF5IG1vIHRoZW0ga2hh Y2ggc2FuIERhIEx5IEh1b25nKS4NCkNvIG5odW5nIGhvbSBjdSB2YW4geHVvbmcgYW4gY29tIGNo dW5nIHZvaSBjYW5oIGNhbiBibyBjaHVuZyB0b2kgbyBuaGEgYW4gdGFwIHRoZSBjdW5nIG5hbSB0 cm9uZyBraHUgdnVjIG5heSwgY3UgYW4gdW9uZyBkb24gZ2lhbiB2YSBraG9uZyBkb25nIHkgY28g dGhlbSBiYXQgY3UgY2hlIGRvIGRhYyBiaWV0IGdpIHBodWMgdnUuIA0KDQpIb2kgYXkgcGh1b25n IHRpZW4gZHVhIGRvbiBjdSBjaGkgbGEgbG9haSB4ZSBWb25nYSBkZW4gY3VhIE5nYSBzYW4geHVh dCwgbW9pIGxhbiB4ZSBjdWEgY3UgZGkgdGhpIHRydW9jIGRvIGxhaSBjbyBtYXkgY2F1IGNhbmgg dmUgbWFjIHRodW9uZyBwaHVjIG5nb2kgc2FuIHRyZW4gbWF5IGNoaWVjIHhlIEhvbmRhIDY3ICd4 b2F5IG5vbmcnIGJpIG1hdCBjaGF5IHRydW9jIGNoYXkgc2F1IGRlIHhlbSB4ZXQsIGJhbyB2ZSwg Y2h1IGtob25nIHBoYWkgZHVuZyB4ZSBQb2xpY2UgJ2NvaSBodScgaGF5IHhlICdibyBjYXUgdHJh bmcnIGJhbyB2ZSBuaHUgY2FjIGNhbiBibyBsYW5oIGRhbyBzYXUgbmF5LiBUaGUgbWEgY28gbGFu IHRvaSBjb24gbmdoZSBjdSBuaGFjIGFuaCBsYWkgeGUgJ2NoYXkgY2hhbSBjaGFtIG1vdCB0aSBr aG9uZyBtYXkgY2F1IGJhbyB2ZSBwaGFpIGR1b2kgdGhlbyBsYWkgZHVuZyB2YW8gZGFuIHRoaSBr aG8nLCBjdSBiaWV0IHZhIHF1YW4gdGFtIGRlbiB0YXQgY2Egbmh1bmcgY2h1eWVuIG5obyBuaHUg dGhlLiANCg0KVG9pIGNvbiBuaG8sIHZhbyBraG9hbmcgbmFtIDE5ODggY28gbGFuIHBoYWkgeHVv bmcgbGFtIHZpZWMgdm9pIGRhYyBraHUgdXkgVnVuZyB0YXUgKGx1YyBheSBWdW5nIHRhdSB2YW4g Y29uIGxhIGRhYyBraHUgVnVuZyB0YXUtQ29uIGRhbyksIGxhbSB2aWVjIHhvbmcgdmFvIGN1b2kg YnVvaSBjaGlldSBjdSBsYWkgbXVvbiBkaSB0YW0gYmllbiBtb3QgY2h1dCBjaG8ga2hvYW4ga2hv YWkuIFRoZSBsYSBkYW0gY2FuIGJvIGRpYSBwaHVvbmcgdmEgbHVjIGx1b25nIGJhbyB2ZSBsYWkg cGhhaSBjdW9uZyBxdXl0IGxvIGJvIHRyaSBkaWEgZGllbSBraW4gZGFvLCBhbiB0b2FuLiBEZW4g a2hpIGN1IHh1b25nIHRhbSBsYWkgcGhhaSBibyB0cmkgaGFuZyBjaHVjIGNhbiBibyBiYW8gdmUg Y3VuZyB0YW0gcXVhbmgga2h1IHZ1YywgdGhhbSBjaGkgY28gbmd1b2kga2hvbmcga2lwIGNodWFu IGJpIGRvIHRhbSBkYSBwaGFpIG1hYyBjYSBkbyBsb3QgZGkgdGFtIHZhIG1hYyBsdW9uIGRvIHVv dCBkaSB2ZS4gU2F1IGtoaSBiaWV0IGNodXllbiBheSBjdSBtb2kgdHUgdHJhY2g6IGJpZXQgY2Fj IGNhdSBwaGFpIGxvIGxhbmcga3kgbHVvbmcgbmh1IHZheSB0aGkgdG9pIHRhbSBsdW9uIHRyb25n IHBob25nIGNobyB4b25nLiANCg0KTmh1bmcgYWkgZGEgc29uZyB0cm9uZyB0aG9pIGRpZW0gZG8g dGhpIGNoYWMgZGV1IGtob25nIHRoZSBxdWVuIGR1b2MgY2h1eWVuIG11YyAnTmh1bmcgdmllYyBj YW4gbGFtIG5nYXknIGN1YSBjdSB2aWV0IGt5IHZvaSBidXQgZGFuaCBOLlYuTC4gTmdheSB0dSBr aGkgbmh1bmcgc3UgdmllYyBkdW9jIGJhbyBjaGkgZGFuZyB0YWkgY3UgZGEgdHJ1YyB0aWVwIGRv biBkb2MgaG9hYyBwaGFuIGNvbmcgY2hvIG5odW5nIGNhbiBibyB0cnVjIHRpZXAgcGh1IHRyYWNo IHRoZW8gZG9pIHZhIHBoYWkgaGFuZyBuZ2F5IGJhbyBjYW8ga2V0IHF1YSBjb25nIHZpZWMgY2hv IGN1IGJpZXQuIER1bmcgdGhlbyB0aW5oIHRoYW4gJ05vaSBWYSBMYW0nLiANCg0KVGllYyByYW5n IGxhbmggZGFvIGRhdCBudW9jIHRhIHR1IGRvIGRlbiBuYXkgZGEga2hvbmcgeHVhdCBoaWVuIHRo ZW0gbW90IG9uZyAnTm9pIFZhIExhbScgbmFvIG51YS4gVG9pIHZhbiB0aHVvbmcgbmdoaSByYW5n IG5ldSBjYWMgbGFuaCBkYW8gc2F1IG5heSB2YSBjYWMgbGFuaCBkYW8gY2hpbmggcXV5ZW4gY2Fw IGR1b2kgY28gZHVvYyBxdWFuIGRpZW0gbGFtIHZpZWMsIGRhbyBkdWMgdmEgY2FjaCBzb25nIG5o dSBjdSB0aGkgY2hhYyByYW5nIG5ndW9pIGRhbiBWaWV0IG5hbSBzZSBjbyBkdW9jIGN1b2Mgc29u ZyBubyBkdSB2YSBjb25nIGJhbmcgaG9uIHJhdCBuaGlldS4gDQoNClZhbyBraG9hbmcgdGhvaSBn aWFuIHRydW9jIGtoaSB2ZSBuZ2hpLCBjbyBsZSBuaGFuIHRoYXkgc3VjIG1pbmgga2hvbmcgdGhl IGxhbSB0aGF5IGRvaSBkdW9jIGNhIG1vdCBibyBtYXksIG1vdCBjbyBjaGUgY29uZyBrZW5oIHZh IGJhbyB0aHUsIGN1bmcgbGFpIGRvIGhpZXUgZHVvYyB0aW5oIGJlIHBoYWkgdmEgc3UgbG9uZyBx dXllbiBjdWEgbmh1bmcga2UgbGFuaCBkYW8gY28gaG9pIHRyb25nIERhbmcsIGN1IGNhbmcgdHJv IG5lbiB0cmFtIHR1IGhvbi4gTmV1IGFpIGNvIGRpZXUga2llbiBsdWkgdG9pIGdhcCBjdSB0YWkg bmhhIHJpZW5nIHRob2kgZ2lhbiBuYXkgc2UgbmhhbiB0aGF5IHN1IHRoYXQgdm9uZyB2YSB1IHVh dCB0aGUgaGllbiBybyB0cmVuIGtodW9uIG1hdCB2YSB0aGFpIGRvIGN1YSBjdS4gTmdvYWkgcXVh biBoZSBjb25nIHZpZWMgdG9pIGxhaSBjbyBxdWFuIGhlIHJhdCB0aGFuIHRpbmggdm9pIGNvIEJp bmggKE5ndXllbiBUaGkgQmluaCkgY29uIGdhaSBjdSwgdG9pIHF1ZW4gQmluaCB0dSBsdWMgY29u IGRhbmcgaG9jIG8gTGllbiBYbywgQmluaCBjdW5nIHJhdCBxdXkgdG9pLCBjb2kgdG9pIG5odSBu Z3VvaSBhbmguIENvIGxlIGN1bmcgdmkgdGhlIG1hIG1vaSBsYW4gdG9pIGRlbiBuaGEgY3UgY2hv aSBoYXkgY28gY29uZyB2aWVjIGdpIGRldSB0aGF5IHR1IG5oaWVuIG5odSBuZ3VvaSBuaGEuIA0K DQpTYXUgbmF5IGtoaSBjdSBOZ3V5ZW4gVmFuIExpbmggdGhvaSBnaXUgY2h1YyBUb25nIGJpIHRo dSBEYW5nLCB0b2kga2hvbmcgY29uIGR1b2MgbGFtIHZpZWMgdm9pIGN1IG51YSwgbmh1bmcgdGhp bmggdGhvYW5nIGNvIGRpcCByYSB2YW8gY29uZyB0YWMgdG9pIHZhbiBnaGUgdGhhbSBjdSwgaG9h YyBsYSBnaGUgdGhhbSBCaW5oLCB2YWkgdGhhbmcgbW90IGxhbi4gTW9pIGxhbiBnYXAgY3UgbGFp IGhvaSB0aGFtIHRpbmggaGluaCBjb25nIHZpZWMsIHRpbmggaGluaCB0byBjaHVjIG5vaSBibywg dGluaCBoaW5oIGNhYyBkaWEgcGh1b25nLiBDdSB0byB0aGFpIGRvIHRoYW4gcGhpZW4gdm9pIG5o dW5nIG5ndW9pIGtlIG5oaWVtIHZhIGRhYyBiaWV0IGtldSBjYSB2ZSBraGF1IHRvIGNodWMgY2Fu IGJvIHZhIHF1eSBob2FjaCBsYW5oIGRhbyBjYW8gY2FwLiANCg0KVmFpIG5hbSBzYXUgZG8gbnVh LCBsdWMgbmF5IHN1YyBraG9lIGN1YSBjdSB0byByYSBkYSB5ZXUgaG9uIHRydW9jIHJhdCBuaGll dSwgY3UgaXQgZGkgbGFpIGhvbi4gTW90IGJ1b2kgdG9pIHRvaSBkZW4gdGhhbSBjdSwgdGhheSBj dSBjbyB2ZSBraG9uZyBkdW9jIGtob2UsIHRvaSBraG9uZyBkYW0gbm9pIGNodXllbiBuaGlldSwg c2F1IGtoaSBob2kgdGhhbSBjdSB2YWkgY2F1IHRvaSBkaW5oIGR1bmcgZGF5IHJhIHZlLCBuaHVu ZyBjdSBib25nIGtob2F0IHRheSByYSBoaWV1IGJhbyB0b2kgaGF5IG8gbGFpIGNob2kgdmEgc2F1 IGRvIGxhaSBrZW8gdG9pIHZhbyBidW9uZyB0cm9uZy4gVG9pIGhpZXUgbGEgY3UgbXVvbiB0cmFv IGRvaSBtb3QgY2h1eWVuIGdpIGRvLCBjaGFjIGxhIHF1YW4gdHJvbmcgaG9uLg0KDQpWdWEgbmdv aSB4dW9uZyBsYSBjdSBob2kgbmdheTogbWF5IGhvbSBuYXkgY2F1IGNvIHRoZW8gZG9pIHZ1IFRv bmcgY29uZyB0eSBUcmFjb2RpIG1hIGJhbyBjaGkgdnVhIGR1YSB0aW4ga2hvbmc/IA0KDQpUb2kg ZGFwOiBEYSwgY28gYmlldCBjaHUgYSEgTmh1bmcgY3VuZyBjaHVhIHJvIGxhbSBkdW5nIHNhaSB0 aGUgbmFvPyANCg0KQ3UgbGFpIHF1YXkgc2FuZyBob2k6IFRoZSBjYXUgY28gYmlldCBjYWkgdGF5 IFRvbmcgR2lhbSBkb2MgUGhhbiBUaGFuaCBOYW0gbGEgbmd1b2kgbmh1IHRoZSBuYW8ga2hvbmc/ IA0KDQpUb2kgY2hvdCBoaWV1IHJhIGNvIGRpZXUgZ2kgZG8gcXVhbmggdmFuIGRlIG5heSwgdGhv aSBnaWFuIHRydW9jIGRvIGRhIGNvIGR1IGx1YW4geG9uIHhhbyBxdWFuaCBjaHV5ZW4gUGhhbiBU aGFuaCBOYW0gbGEgY29uIHJvaSBjdWEgVGh1IHR1b25nIFZvIFZhbiBLaWV0LCBjYW5oIGNhbiBi byB2YW4gcGhvbmcgY2h1bmcgdG9pIGRldSBjbyBuZ2hlIG5odW5nIHZhbiBraG9uZyBiaWV0IHRo dWMgaHUgdGhlIG5hbywgbmVuIGN1bmcgY2hpIGNvaSBuaHUgbW90IHRpbiBkb24gbmhhbS4gDQoN CkJvbmcgY3UgZ2hlIHNhdCBnYW4gdG9pIHZhIG5vaTogTmh1bmcgY2h1eWVuIG5heSBtYSB0YW8g a2hvbmcgbm9pIGNobyBjYWMgY2F1IHRoaSBzYXUgbmF5IHNlIGNoYW5nIGNvIGFpIGR1b2MgYmll dCBkZW4gbnVhLiANCg0KVGhlIGxhIGJvbmcgbmhpZW4gdG9pIHRybyB0aGFuaCBtb3QgbmhhbiBj aHVuZyBkZSBnaGkgbmhhbiBuaHVuZyBzdSBraWVuIGdoZSBnaG9tIHRoZSBuYXksIG5odW5nIHN1 IGtpZW4gZGEgZ2FuIGxpZW4gdm9pIGxpY2ggc3UgQ2FjaCBtYW5nIFZpZXQgbmFtIG5odW5nIGto b25nIGJhbyBnaW8gZHVvYyBjaGVwIHRyb25nIHN1IHNhY2ggdmEgbm8gbGEgbW90IGJvIG1hdCB0 aGF0IGhvYW4gdG9hbiBraGFjIHZvaSBuaHVuZyBnaSBtYSBuaGFuIGRhbiBkdW9jIGJpZXQgdmUg bGFuaCBkYW8gVmlldCBuYW0sIG5oYXQgbGEgdmUgbGFuaCB0dSB0b2kgY2FvIG5oYXQ6IEhvIENo aSBNaW5oLCBjb24gbmd1b2kgbWEgYmFuIHRoYW4gdG9pIGN1bmcgdHVuZyBuZ3VvbmcgbW8gdmEg dG9uIGtpbmggdHUga2hpIGNvbiByYXQgYmUuIA0KDQpUaGVvIGN1IE5ndXllbiBWYW4gTGluaCBr ZSB0aGkgQm8gY2hpbmggdHJpIGx1YyBiYXkgZ2lvLCAodGF0IG5oaWVuIGR1bmcgZGF1IGxhIExl IER1YW4gdmEgTGUgRHVjIFRobyBjaGkgZGFvLCBkaWV1IG5heSB0aGkgc2F1IG5heSBraG9uZyBh aSBsYSBraG9uZyBiaWV0KSwgYmlldCByYW5nIGN1IEhvIGdhcCBuaHVuZyB0aGlldSB0aG9uIHZh IGtobyBraGFuIHZlIHRpbmggY2FtIGNhIG5oYW4sIG5odSBjaHV5ZW4gbXVvbiBub2kgbGFpIG1v aSB0aW5oIGR1eWVuIHZvaSBuZ3VvaSB2byBjdSBvIFRydW5nIHF1b2Mgbmh1bmcgZGEgYmkgcGhh biBkb2kgKGRheSBsYSBtb3QgY2F1IGNodXllbiBjbyB0aGF0IGRhIGR1b2MgcGhpYSBUcnVuZyBx dW9jIGNvbmcgYm8gdHUgbmh1bmcgdGhhcCBuaWVuIDgwLCA5MCBjdWEgdGhlIGt5IHRydW9jLiBW ZSB2aWVjIG5heSB0b2kgbGFpIG5obyB2ZSBzdSBraWVuIGJhaSBiYW8gJ0JhYyBIbyBjbyB2bz8n IGR1b2MgZGFuZyB0cmVuIGJhbyBUdW9pIFRyZSBjdWEgdGFjIGdpYSBLaWVuIFBodW9jIC0gVHJ1 b25nIGRhaSBkaWVuIGJhbyBOaGFuIGRhbiB0YWkgVFAuIEhvIENoaSBNaW5oLCBjaGluaCB2aSBi YWkgYmFvIG5heSBtYSBzYXUgZG8gVG9uZyBiaWVuIHRhcCBiYW8gVHVvaSBUcmUgbGEgTmd1eWVu IEtpbSBIYW5oLCBjdW5nIGNoaW5oIGxhIHZvIG9uZyBLaWVuIFBodW9jLCBiaSBtYXQgY2h1Yy4g U2F1IG5heSBjbyBsYW4gZGVuIGNob2kgdm9pIGhhaSB2byBjaG9uZyBLaWVuIFBodW9jIC0gS2lt IEhhbmggbyB0cmVuIGR1b25nIE5hbSBLeSBLaG9pIE5naGlhLCBjdW5nIGdhbiBraHUgVDc4LCBu aGFjIGxhaSBjaHV5ZW4gbmF5IGhvIGxhaSBidW9uIHZhIHBoYW4gdW5nIGdoZSBsYW0pIC4gDQoN CkRvIHZheSBzYXUgZG8gQm8gY2hpbmggdHJpIGNvIGJpIG1hdCBzYXAgeGVwIG5oaWV1IG5ndW9p IHBodSBudSBraGFjIGRlIGNoYW0gc29jIHZhIHBodWMgdnUgY3UgSG8gdmUgbWF0IHNpbmggaG9h dCB0aW5oIGR1Yy4gRGFjIGJpZXQsIHR1IHRodW8gY29uIHRoYW5oIG5pZW4gY3UgSG8gZGEgY28g bW90IG1vaSB0aW5oIGRhdSByYXQgZGVwIHZvaSBtb3Qgbmd1b2kgY29uIGdhaSBtaWVuIE5hbSAo c3UgdGhhdCBuYXkgZGEgZHVvYyBuaGEgdmFuIFNvbiBUdW5nIHN1dSB0YW0gdmEgY29uZyBibyB0 cm9uZyBiYWkgdmlldCAnZGkgdGltIFV0IEh1ZScpLCBkbyB2YXkgY3UgSG8gY28gbW90IGFuIHR1 b25nIHZhIHRoaWVuIGNhbSBkYWMgYmlldCB2b2kgbmh1bmcgbmd1b2kgcGh1IG51IE5hbSBiby4g QmlldCB0aGUgbmVuIEJvIGNoaW5oIHRyaSBkYSBjaGkgZGFvIGNobyBUcnVuZyB1b25nIGN1YyBt aWVuIE5hbSwgbWEgbHVjIG5heSBOZ3V5ZW4gVmFuIExpbmggbGEgQmkgdGh1IFRydW5nIHVvbmcg Y3VjLCBwaGFpIGtpbiBkYW8gdGltIGtpZW0gdHJvbmcgc28gbmh1bmcgY2FuIGJvLCBkdSBraWNo IG1pZW4gTmFtIG1vdCB2YWkgY28gZ2FpIGNvbiB0cmUsIGRlcCBkZSBkdWEgcmEgbWllbiBCYWMg cGh1YyB2dSBjdSBIbyB2YSBjYWMgdmkgdHJvbmcgQm8gY2hpbmggdHJpLiBUaG9pIGRpZW0gZG8g dGhpIFZvIFZhbiBLaWV0IGRhbmcgbGEgdXkgdmllbiBUcnVuZyB1b25nIGN1YyBkdW9jIGN1IE5n dXllbiBWYW4gTGluaCB0aW4gdHVvbmcgdHV5ZXQgZG9pIHZhIGdpYW8gY2hvIHRydWMgdGllcCBw aHUgdHJhY2ggbmhpZW0gdnUgZGFjIGJpZXQgbmF5LiBUcm9uZyBzbyB2YWkgY28gZ2FpIHR1eWVu IGx1YSBkdW9jIGx1YyBkbyBkYW5nIGNodWFuIGJpIGJvIHRyaSBiaSBtYXQgZHVhIHJhIG1pZW4g QmFjLCBjbyBtb3QgY28gY29uIHRyZSB2YSByYXQgc2FjIHNhbyBobyBQaGFuLg0KR2l1YSBsdWMg ZG8gdGhpIHRpbmggaGluaCBjaGllbiBzdSBkYW5nIGRpZW4gcmEga2hhIGFjIGxpZXQgbmVuIGto b25nIHRoZSBkdWEgY2FjIGNvIGRpIG5nYXkgZHVvYyB2YSByb2kga2hvbmcgaGlldSB0aGUgbmFv IG1hIG9uZyBLaWV0IGxhaSBxdWFuIGhlIGRhbiBkaXUgdm9pIGNoaW5oIGNvIGdhaSBobyBQaGFu IGtpYS4gRGVuIGx1YyBzdSB2aWVjIHZvIGxvIHRoaSBjbyBnYWkgZGEgY28gdGhhaSBkdW9jIG1h eSB0aGFuZyByb2kuIFRoZSBsYSBjbyB0YSBwaGFpIG8gbGFpIHZhIGNhaSBiYW8gdGhhaSBkbyBj aGluaCBsYSB2aSBUb25nIGdpYW0gZG9jIFRyYWNvZGk6IFBoYW4gVGhhbmggTmFtIHNhdSBuYXku IA0KDQpOZ2hlIGRlbiBkYXkgdG9pIGNhbSB0aGF5IHZvIGN1bmcgc3VuZyBzb3QgdmEgYm9uZyB0 aGF5IHJ1bmcgbWluaCBoZXQgY2Egbmd1b2kuIFJvIHJhbmcgbmd1b2kgZGFuZyBrZSByYSBuaHVu ZyBzdSB2aWVjIGRvIGxhIG1vdCBuZ3VvaSBkYSB0dW5nIGdpdSB0cm9uZyB0cmFjaCBjYW8gbmhh dCB0cm9uZyBEYW5nIGNvbmcgc2FuIFZpZXQgbmFtLCBtb3Qgbmd1b2kgdHJvbmcgc28gdmFpIGJh IG5ndW9pIGR1b2MgYmlldCBybyBuaGF0LCBjaGluaCB4YWMgbmhhdCB2ZSBjYXUgY2h1eWVuIG5h eSwgbW90IG5ndW9pIHRyb25nIHNvIHZhaSBiYSBuZ3VvaSBoaWVtIGhvaSBiaWV0IGR1b2Mgbmh1 bmcgY2h1eWVuIHRoYW0gY3VuZyBiaSBzdSBuaGF0IHRyb25nIFRydW5nIHVvbmcgRGFuZyBjb25n IHNhbiwgbW90IG5ndW9pIG1hIGNhaSB0dW9pIGRhIHZ1b3QgcXVhIG5ndW9uZyAnY28gbGFpIGh5 JyByb2kgLiBOaHUgdmF5IGtob25nIHRoZSBsYSBub2kgdGhpZXUgY2hpbmggeGFjIGhvYWMgdm8g Y2FuIGN1IGR1b2MsIGNhbmcga2hvbmcgdGhlIGxhIG5vaSB4YXUgdG8gY2h1YyBEYW5nIHZhIGxh bmggdHUgZHVvYy4gTmh1IHZheSBuaHVuZyBjaHV5ZW4gdGF5IHRyb2kga2lhIGxhIGNvIHRoYXQg dT8gDQoNClRvaSBkYW5nIGJhbiB0aGFuIG5odSBuZ3VvaSBuZ3UgbWUgdmEgY29uIGNodWEgYmll dCBwaGFpIG5vaSB0aGUgbmFvLCBjdSBMaW5oIGxhaSBub2kgdGllcDogLi4uY3VuZyBraG9uZyBw aGFpIGNoaSByaWVuZyBjbyBTYXUgRGFuIGRhdSAoYmkgZGFuaCBjdWEgVm8gVmFuIEtpZXQpLCBt YXkgb25nIHR1b25nIG5oYSB0YSBjdW5nIGRheSBjb24gcm9pIHJhIGRheSwgY29uIHRoYW5nIEJh IER1bmcgbGEgY29uIE5ndXllbiBDaGkgVGhhbmgsIHJvaSB0aGFuZyBUcmFuIE5hbSBsYSBjb24g VHJhbiBWYW4gVHJhIGhpZW4gZGFuZyBsYW0gYmVuIEhvYyB2aWVuIGx1YyBxdWFuIGF5LiANCg0K VGhlIGxhIGN1IGxhaSBrZSBjaG8gdG9pIGJpZXQgdGhlbSBuaHVuZyBzdSB0aGF0IGtoYWMuIA0K DQpUaGVvIGN1IE5ndXllbiBWYW4gTGluaCB0aGkgdHJvbmcgdGhvaSBnaWFuIHR1b25nIE5ndXll biBDaGkgVGhhbmggbGFtIEJpIHRodSBsaWVuIGtodSB1eSBraHUgSVYga2hvYW5nIHR1IG5hbSAx OTQ4IGRlbiAxOTUwIGRhIGNvIHF1YW4gaGUgdm9pIG1vdCBjYW4gYm8gcGhvbmcgdHJhbyBvIGRh eSB2YSBzaW5oIHJhIE5ndXllbiBUYW4gRHVuZywgdmEgY3UgY29uIGNobyBiaWV0IGxhIHNhdSBO Z3V5ZW4gVGFuIER1bmcgdmFuIGNvbiBtb3Qgbmd1b2kgZW0gdHJhaSBudWEgY3VuZyBsYSBjb24g Y3VhIHR1b25nIFRoYW5oLiANCg0KQ29uIHR1b25nIFRyYW4gVmFuIFRyYSB0aGkgY28gcXVhbiBo ZSB2b2kgbW90IG5ndW9pIHBodSBudSBxdWUgbyBtaWVuIEJhYyAoaGluaCBuaHUgbGEgaG8gSG9h bmcsIGRpZXUgbmF5IHRvaSBraG9uZyBjb24gbmhvIHJvKSByb2kgc2luaCByYSBUcmFuIE5hbSwg Y3VuZyBsYSBtb3Qgc3kgcXVhbiBxdWFuIGRvaSBkYW5nIGNvbmcgdGFjIHRhaSBIb2MgdmllbiBs dWMgcXVhbiBEYSBsYXQuIA0KDQpWZSBUcmFuIE5hbSB0aGkgaG9pIGRvIHRvaSBraG9uZyBoZSBk dW9jIGJpZXQgbW90IHRob25nIHRpbiBsaWVuIHF1YW4gbmFvLCBjaHVhIGhlIG5naGUgZGVuIGRh bmggdGluaC4gUmF0IGdhbiBkYXkgdGluaCBjbyBkb2MgYmFvIHZlIHZ1IGNvbmcgdHkgUnVzYWxr YSBjdWEgc2lldSBsdWEgTmd1eWVuIER1YyBDaGkgcm9pIGhvaSB0aGFtIGNhbiBibyBvIGR1b2kg bW9pIGR1b2MgYmlldCBUcmFuIE5hbSBjaGluaCBsYSBnaWFtIGRvYyBjb25nIHR5IExhbSBWaWVu IHRodW9jIEhvYyB2aWVuIGx1YyBxdWFuIC0gQm8gcXVvYyBwaG9uZywgY28gbGllbiBxdWFuIGRl biB2dSBhbiBuYXkuIA0KDQpTYXUgYnVvaSB0b2kgaG9tIG8gbmhhIGN1IE5ndXllbiBWYW4gTGlu aCByYSB2ZSB0b2kgYmFuZyBob2FuZyB2YSBiYW4ga2hvYW4gbmhpZXUgbGFtLiBOaHUgdmF5IG5o dW5nIHRodSBkdW9jIGdvaSBsYSB0dSBjYWNoLCBkYW8gZHVjLCBtYXUgbXVjIGN1YSBjYWMgbGFu aCBkYW8gY2FvIGNhcCBjdWEgRGFuZyB0YSB0aGF0IHJhIGNoaSBsYSBuaHVuZyB0aG9uZyB0aW4g dHV5ZW4gdHJ1eWVuIHRob2kgdT8gVmEgbmh1bmcga2UgYmF5IHJhIG5odW5nIHRybyBuYXkgY2hh YyBjdW5nIGtob25nIG5nb2FpIG11YyBkaWNoIG5oYW0gdGhhbyB0dW5nIGN1IEhvIHZhIHRoYW8g dHVuZyBjYSBCbyBjaGluaCB0cmk/IFZheSB0aGkgZGEgY28gYmlldCBiYW8gY28gZ2FpIHRyZSBk YSBiaSBkYW5oIG1hdCB0dW9pIHRoYW5oIHh1YW4gdmEgc3UgdHJpbmggdHJhbmcgbyBkbywgdmEg ZGUgZGFtIGJhbyB0dXlldCBkb2kgYmkgbWF0IG5odW5nIHRob25nIHRpbiBuYXksIGR1dCBraG9h dCBwaGFpIGNvIG5oaWV1IG5ndW9pIGRhIGJpIHRodSB0aWV1IGhvYWMgbGFtIGNobyBtYXQgdHJp IG5obyBob2FuIHRvYW4uIE5odSB2YXkgbmh1bmcgY2F1IGNodXllbiBkb24gdGhvaSB2ZSBuaHVu ZyBib25nIG1hIHRyb25nIHF1YW5nIHRydW9uZyBCYSBkaW5oIHBoYWkgY2hhbmcgY3VuZyBsYSBj byB0aGF0PyBUaGF0IGJpIHRoYW0gdmEga2h1bmcga2hpZXAgcXVhISANCg0KQmF0IGRhdSB0dSBj YXUgY2h1eWVuIGRvIG5lbiBzYXUgbmF5IHRvaSBkYSBjbyB0aW0gaGlldSB0aGVtIG5odW5nIHRo b25nIHRpbiBraGFjIGxpZW4gcXVhbiBkZW4gQmEgRHVuZy4NCg0KS2hvYW5nIG5hbSAyMDAwLCB0 cm9uZyBjdW9jIHRybyBjaHV5ZW4gdm9pIG1vdCB0aGlldSB0dW9uZyBRdWFuIGRvaSBkYSBuZ2hp IGh1dSBjbyBxdWFuIGhlIGtoYSB0aGFuIHRoaWV0IHZvaSB0b2ksIG9uZyBuYXkgY28gdGhvaSBn aWFuIGRhIGNvbmcgdGFjIHRhaSBsaWVuIGtodSBJViB2YSBWLCBvbmcgdGEgY3VuZyBsYWkga2hh bmcgZGluaCB2b2kgdG9pIHJhbmcgTmd1eWVuIFRhbiBEdW5nIGNoaW5oIGxhIGNvbiBjdWEgTmd1 eWVuIENoaSBUaGFuaC4gSGllbiBuYXkgdmkgdHVvbmcgbmF5IHZhbiBjb24gc29uZyB2YSBsYSB1 eSB2aWVuIGN1YSBIb2kgY3V1IGNoaWVuIGJpbmggVmlldCBOYW0sIGRlIHRyYW5oIGdheSBwaGll biBwaHVjIGNobyBvbmcgbmVuIHRvaSBraG9uZyBkYW0gbmV1IGRhbmggdGluaCBjdSB0aGUgbGVu IG8gZGF5IA0KDQpUb2kgZGEgdGltIHhlbSB0cm9uZyBzbyBuaHVuZyB0YWkgbGlldSBsdXUgbyB2 YW4gcGhvbmcgY28gbGllbiBxdWFuIGRlbiBOZ3V5ZW4gVGFuIER1bmcgbmh1bmcga2hvbmcgdGhh eSBsbyByYSBjaGkgdGlldCBuYW8gbm9pIHZlIGNodXllbiBuYXkuIFRoZSBuaHVuZyBuaGluIHZh byBseSBsaWNoIHZhIHF1YSB0cmluaCBjb25nIHRhYyBjdWEgQmEgRHVuZyBybyByYW5nIGNvIG5o dW5nIGRpZXUgYmkgYW4gc2F1IGRvLiBPbmcgdGEgY2hpIGxhIG1vdCBjYW4gYm8gdGFtIHRydW5n IGJpbmgsIGtob25nIGNvIGNodXllbiBtb24gbmdoaWVwIHZ1ICh0aGF0IHJhIGR1b2MgZGFvIHRh byBsYW0geSB0YSBxdWFuIGRvaSksIHRyaW5oIGRvIHZhbiBob2EgdGhhcCwgY2h1YSBkdW9jIGRh byB0YW8gY28gYmFuIGNoaW5oIHF1eSwga2hvbmcgY28gdGhhbmggdGljaCBkYWMgYmlldCwga2hv bmcgY28gbmFuZyBraGlldSBnaSB4dWF0IGNodW5nLCB0aGUgbmh1bmcgbGFpIGNvIHF1YSB0cmlu aCB0aGFuZyB0aWVuIG5oYW5oIHZ1b3QgYmFjKD8pIA0KDQpTYXUgbmF5LCB0cm9uZyBuaHVuZyBs YW4gbGFtIHZpZWMgdm9pIE5ndXllbiBUYW4gRHVuZyB0b2kgbGFpIGNhbmcgdGhheSBybyBuaHVu ZyBkaWV1IGRvIGhvbiB2YSBjYW5nIHRoYXQgdm9uZyByYXQgbmhpZXUuIFF1YSBsYSBvbmcgdGEg bGEgbW90IG5ndW9pIG5hbmcgbHVjIHJhdCBrZW0uIFZlIGhpbmggdGh1YyBiZSBuZ29haSwgdHUg dHJ1b2MgZGVuIG5heSBpdCBjbyBsYW5oIGRhbyBWaWV0IG5hbSBuYW8gY28gZHVvYyBkYW5nIGRh cCB2YSBraHVvbiBtYXQgc2FuZyBsYW5nIG5odSBCYSBEdW5nLCBjYWkgaGluaCB0aHVjIGRvIHJh dCBkZSBsYW0gY2hvIG5odW5nIGFpIGtob25nIGJpZXQgdHVvbmcgcmFuZyBkbyBsYSBtb3Qgbmd1 b2kgcmF0IHRob25nIG1pbmgsIG5oYW5oIG5oZW4uIFRoYXQgcmEgdHVvbmcgcGhhbiB2b2kgaGlu aCB0aHVjIHNhbmcgbGFuZyBkbyBsYSBtb3QgbmFvIHRyYW5nIHJhdCB0b2kgdGFtLCBkb3QgbmF0 LiBIb2kgbW9pIHZlIFRydW5nIHVvbmcgY28gbmh1bmcgbGFuIG5naGUgb25nIHBoYXQgYmlldSBt YSBtb2kgbmd1b2kgZGV1IGtob25nIGhpZXUgb25nIGRpbmggZGllbiBkYXQgZGlldSBnaSwgcmF0 IGx1bmcgY3VuZywgdG9pIG5naGlhLCBsYWkgbHVuZyB0dW5nLCBjdXQgbHVuLiANCg0KTmhpZXUg bGFuIHRoYW0gZHUgbmh1bmcgY3VvYyBob3AgZG8gQmEgRHVuZyBjaHUgdHJpLCB0b2kgdGhheSBv bmcgdGEga2hvbmcgZGFtIHBoYXQgYmlldSBnaSwgY2hpIG5nb2kgbmdoZSBjYWMgY28gcXVhbiBj YXAgZHVvaSBwaGF0IGJpZXUgc2F1IGRvIG9uZyB0YSBjdW5nIGNoYW5nIGRhbSBjbyB5IGtpZW4g a2V0IGx1YW4gZ2kgY2EuIFBoYWkgdHJhaSBxdWEgbmFtLCBzYXUgbmFtICd0aHVjIHRhcCcgbyBj YWkgZ2hlIFBobyB0aHUgdHVvbmcgdGhpIG9uZyB0YSBtb2kgdG8gcmEgbGEgdHUgdGluLCBiaWV0 IGNodSB0cmkgbmh1bmcgY3VvYyBob3AgbG9uIGN1YSBjbyBxdWFuIERhbmcsIENoaW5oIHBodSwg bmh1bmcgdmFuIGNoaSBsYSBjYWkga2lldSBub2kgbHVuZyB0dW5nLCBudW9jIGRvaSwgbm9pIGh1 YSB0aGVvIGNhYyB5IGtpZW4ga2hhYyBjaHUga2hvbmcgdGhheSB0dSB0dSBkdXkgZHVvYyBkaWV1 IG1vaSBtZSBjYS4gTWFjIGR1IGNvIGNhIG1vdCBjbyBxdWFuIHRoYW0gbXV1IGdpdXAgdmllYyBy YXQgZG8gc28gJ21vbScgY2hvIHR1bmcgdmFuIGJhbiwgdHVuZyBjYXUgY2h1IG5odW5nIG1vaSBs YW4gcGhhaSAnbm9pIHZvJyBhbmggdGEgZGV1IHBoYXQgYmlldSByYXQga2hvIGtoYW4sIGtob25n IGNvIGRhdSBkdW9pIGdpIGNhLiBTdW90IGNhIHF1YSB0cmluaCBkYWkgbGEgbmd1b2kgZHVuZyBk YXUgQ2hpbmggcGh1IHZhIHBodSB0cmFjaCB0YXQgY2Egbmh1bmcgbWFuZyBxdWFuIHRyb25nIG5o YXQgbmh1bmcgb25nIHRhIGNodWEgbGFtIGR1b2MgbW90IHZpZWMgZ2kgZGFuZyBrZS4gRGFjIGJp ZXQsIEJhIER1bmcgcmF0IGRvdCBuZ29haSBuZ3UsIHRyb25nIGN1b2MgaG9wIG1hIHBoYXQgYmll dSBuaHVuZyB0dSBnaSB0aWVuZyBBbmggdGhpIHRvYW4gbm9pIHNhaSBob2FjIG5vaSBsdW5nIHR1 bmcgY2hvIHF1YS4NCk1vdCBjb24gbmd1b2kgbmFuZyBsdWMgeWV1IGtlbSBuaHUgdmF5IG1hIGxh aSBsZW4gZGVuIGNodWMgUGhvIHRodSB0dW9uZywgdmEgbmF5IGxhIFRodSB0dW9uZyBDaGluaCBw aHUgdGhpIHF1YSBsYSBraG9uZyBoaWV1IG5vaT8gUXVhIGxhIGNvIG1vdCBiaSBhbiBraHVuZyBr aGllcCEgDQoNCk1vdCBkaXAgbWF5IGtoYWMgbmdhdSBuaGllbiBkZW4gZGUgdG9pIGR1b2Mga2ll bSBjaHVuZyB0aGVtIGxvaSBub2kgY3VhIGN1IE5ndXllbiBWYW4gTGluaC4gRG8gbGEga2hvYW5n IG5hbSAyMDAxLCB0cm9uZyBtb3QgbGFuIHRpZXAgeHVjIHZvaSBsYW5oIGRhbyBUUC4gSG8gQ2hp IE1pbmggdGFpIHV5IGJhbiB0aGFuaCBwaG8gY28gbW90IHZpIGtoYWNoIGRlbiBsYW0gdmllYyB0 aGVvIGxpY2ggZGEgaGVuLCB2YSB0b2kgZHVvYyBnaW9pIHRoaWV1IG5ndW9pIGtoYWNoIGRvIGxh IFR1IFRoYW5nIChOZ3V5ZW4gVGllbiBUaGFuZyksIGVtIHJ1b3QgQmEgRHVuZy4gTmd1b2kgbmF5 IG5oaW4gYmUgbmdvYWkgZ2lvbmcgaGV0IEJhIER1bmcsIHR1IGNoaWV1IGNhbywgZGFuZyBuZ3Vv aSBkZW4gbmV0IG1hdCwgbWFpIHRvYyB2YSBrZSBjYSBnaW9uZyBub2ksIHRoYW0gY2hpIGtlIGNh IGN1IGNoaSwgZGFuZyBkaWV1IChCYSBEdW5nIGhheSBjbyB0aG9pIHF1ZW4gaGF0IGNhbSB2YSBr aHVvbiBtYXQgcmEgcGhpYSB0cnVvYykuIFR1IFRoYW5nIGdpb25nIEJhIER1bmcgZGVuIG11YyBj aGkgbmdoZSBnaW9pIHRoaWV1IGxhIGNvIHRoZSB0aW4gbmdheSByb2ksIGNoaSBraGFjIG1vdCBj aHV0IGxhIG51b2MgZGEgZGVuIGhvbiBCYSBEdW5nIG1vdCBjaHV0IHZhIGtodW9uIG1hdCBjbyB2 YWkgdmV0IHJvLiBSaWVuZyB2ZSBjYWNoIGFuIG1hYyB0aGkgbmd1b2MgaGFuIHZvaSBvbmcgYW5o LCBwaG9uZyBraG9hbmcgdHUgZG8sIHRoZSBoaWVuIGxhIG5ndW9pIGtob25nIGxhbSB2aWVjIHRy b25nIGNvIHF1YW4gY2hpbmggcXV5ZW4uIA0KDQpDbyBsZSBkYSBuZ2hlIHRlbiB0b2kgdHUgdHJ1 b2MsIFR1IFRoYW5nIGNodSBkb25nIHR1IGdpb2kgdGhpZXUgdHJ1b2MgdmEgZHVhIGRhbmggdGhp ZXAgY28gc28gZGllbiB0aG9haSBjaG8gdG9pICh0b2kgdmFuIGNvbiBnaXUgZGFuaCB0aGllcCBh eSB2YSBzbyBkaWVuIHRob2FpIGRpIGRvbmcgbGEgMDkwODQ1ODQ2LCBsdWMgYXkgRFRERCBjaGkg Y28gOSBjb24gc28sIGhpZW4gbmF5IGRldSBkYSB0aGVtIDEgY29uIHNvKSwgc2F1IGRvIFR1IFRo YW5nIGNvbiBtb2kgdG9pIGx1YyBuYW8gcmFuaCByb2kgdGhpIGRlbiBjaG8gYW5oIHRhIGNob2ku IA0KDQpWaSBtdW9uIHRpbSBoaWV1IGt5IHN1IHRoYXQsIGNvIG1vdCBidW9pIGNoaWV1IHNhdSBn aW8gbGFtIHZpZWMgdG9pIGRhIGx1bmcgdGh1bmcgZGkgYm8gZGVuIGNobyBUdSBUaGFuZy4gVGhl byBkaWEgY2hpIFR1IFRoYW5nIGNobyB0b2kgYmlldCB0aGkgZG8gbGEgbW90IGNhbiBuaGEgbWF0 IHRpZW4gZHVvbmcgMy8yLCBnYW4gbmdhIHR1IENhbyBUaGFuZyAocGhpYSBiZW4gTmhhIGhhdCBI b2EgQmluaCksIGRvIGxhIG1vdCBuZ29pIG5oYSBsb24sIHZpIHRyaSByYXQgZGVwLCBuaHVuZyBz YXUgbmF5IHRpbSBoaWV1IHJhIHRvaSBtb2kgZHVvYyBiaWV0IFR1IFRoYW5nIGNvIHJhdCBuaGll dSBkYXQgZGFpIHZhIGJpZXQgdGh1IG8ga2hhcCBjYWMgdGluaCBOYW0gYm8sIG5nb2kgbmhhIG5h eSBjdW5nIGNoaSBsYSBjaG8gZGkgbGFpIG1hIHRoaW5oIHRob2FuZyBvIFNhaSBnb24gVHUgVGhh bmcgbW9pIGdoZSBxdWEuIENoaW5oIHZpIFR1IFRoYW5nIG11b24gbmhvIHRvaSBnaW9pIHRoaWV1 IHRoZW0gdm9pIG1vdCBzbyBsYW5oIGRhbyBkZSBnaXVwIGNobyBjYWMgY29uZyB2aWVjIGxhbSBh biBjdWEgYW5oIHRhLCB0b2kgbW9pIGR1b2MgYmlldCBsYSBjbyByYXQgbmhpZXUgY29uZyB0eSBu YW0gZHVvaSB0YXkgYW5oIHRhLCBkYSBwaGFuIGxhIGNvbmcgdHkgVE5ISC4gQ2FjIGNvbmcgdHkg bmF5IGRldSBjaGkgZHVhIHZhbyB0aGUgbHVjIHZhIGNhYyBtb2kgcXVhbiBoZSBjdWEgQmEgRHVu ZyBkZSB0aGFtIGdpYSB2YW8gcmF0IG5oaWV1IGxhbmggdnVjIGtoYWMgbmhhdSBuaHU6IHRhaSBj aGluaCwgbmdhbiBoYW5nLCBiYXQgZG9uZyBzYW4sIHRodW9uZyBtYWksIHhheSBkdW5nLCB0aGFt IGdpYSBjYWMgZHUgYW4gbmhhIG51b2MuLi4gDQoNCkRpZXUgbGFtIHRvaSBxdWFuIHRhbSBuaGF0 IGxhIGFuaCB0YSBjbyBxdWFuIGhlIHZvaSByYXQgbmhpZXUgbmd1b2kgRGFpIExvYW4sIGRhYyBi aWV0IHRyb25nIG1hbmcgbHVvaSBjYWMgY2hhbiByZXQgY3VhIFR1IFRoYW5nIGNvIG1vdCBuZ2Fu IGhhbmcgRGFpIGxvYW4gaG9hdCBkb25nIGNodWkgdGFpIFZpZXQgTmFtIGxhIEZpcnN0IENoaW5h IEJhbmsgKG1vdCBkYW4gZW0gdGluIGNheSBjdWEgb25nIHRhIGR1b2MgZ2lhbyBwaHUgdHJhY2gg dmllYyBuYXkgY3VuZyB0ZW4gbGEgRHVuZyBjbyBzbyBEVEREIGxhIDA5MTM5NTA2NjEpLiBOaHUg dmF5IGNvIHRoZSBoaWV1IGR1b2MgZGF5IGNoaW5oIGxhIG5odW5nICdzYW4gc2F1JyBjdWEgQmEg RHVuZywgdmEgZGUgdHJhbmggZHVuZyBjaGFtIHZvaSBjYWMgdGhlIGx1YyBraGFjIGNhbmggdHJh bmgsIGFuaCBlbSBvbmcgQmEgRHVuZyBkYSBuaGFtIHZhbyBkaWEgYmFuIGhvYXQgZG9uZyBjaHUg eWV1IG8gbWllbiBUcnVuZyB2YSBOYW0gYm8sIHNhdSBkbyB2aWVjIHJ1YSB0aWVuIHZhIGNodXll biBuZ2FuIGxhdSBkdW9jIHRodWMgaGllbiBxdWEgbmdhIERhaSBsb2FuLiBMaWV1IGNvIHRoZSBs dWMgbmFvIGtoYWMgdmEgYmFuIHRheSBjdWEgY28gcXVhbiB0aW5oIGJhbyBEYWkgbG9hbiBuaHVu ZyB2YW8gbmh1bmcgY2h1eWVuIG5heSBraG9uZz8gQ2h1YSBhaSBiaWV0IGR1b2MgY2h1eWVuIGRv ISANCg0KTmh1IHZheSwgZHVvbmcgZGkgdmEgdmkgdGhlIGN1YSBvbmcgdGFuIHRodSB0dW9uZyBW aWV0IG5hbSBxdWEgbGEgY28gbW90IHF1YSB0cmluaCBkYXkgYmkgYW4sIGRheSBuaHVuZyBiYW4g dGF5IHNhcCBkYXQsIGNoYWMgY2hhbiBkdW5nIGRhbmcgc2F1IG9uZyBpdCBuaGF0IGNvbiBjbyBo YWkgbmd1b2kgZW0gbGEgTmd1eWVuIFRpZW4gVGhhbmcgdmEgTmd1eWVuIENoaSBWaW5oICh0b25n IGN1YyB0cnVvbmcgVG9uZyBjdWMgdGluaCBiYW8gcXVhbiBkb2ksIGNvbiB0cmFpIGNoaW5oIHRo dWMgZHVvYyB0aHVhIG5oYW4gY3VhIHR1b25nIE5ndXllbiBDaGkgVGhhbmgpIGRlIGxvIHRodSB4 ZXAgbW9pIHZpZWMgdHUgdGFpIGNoaW5oIGRlbiBhbiBuaW5oIGNoaW5oIHRyaS4gDQoNCkxhaSBj dW5nIGRlIGhpZXUga2hpIGNvbiBkdW9uZyBxdWFuIGxvIGN1YSBOZ3V5ZW4gVGFuIER1bmcgcm9u ZyBtbyBzb25nIGhhbmggdm9pIHN1IHRoYW8gdHVuZyB2YSBsb25nIHF1eWVuIGN1YSBUb25nIGN1 YyAyIHRyb25nIHRheSBOZ3V5ZW4gQ2hpIFZpbmggKHN1IGxvbmcgcXV5ZW4gbmF5LCB0cm9uZyBt YXkgbmFtIGdhbiBkYXkgY28gcmF0IG5oaWV1IGNhbiBibyBjYW8gY2FwIHZhIGNhbiBibyBsYW8g dGhhbmggZGEgcGhhbiBhbmggZGVuIGNhYyBjbyBxdWFuIERhbmcpLiBObyBsYSBoYWkgbWVuaCBk ZSBsdW9uIGJvIHN1bmcgdmEgZ2lhaSBuZ2hpYSBjaG8gbmhhdS4gVHUgbWVuaCBkZSBkbyBjbyB0 aGUgZ2lhaSBkYXAgZHVvYyByYXQgbmhpZXUgbmh1bmcgY2F1IGhvaSBraGFjLiBTdSBsaWVuIHF1 YW4gdmEgcmFuZyBidW9jIG5heSBuZXUgbmhpbiB0cmVuIGdvYyBkbyB0aHVjIHRlIGNoYWMgY2hh biBkYSB2YSBzZSBnYXkgcmEgbmh1bmcgYW5oIGh1b25nIHhhdSBkZW4gdHVvbmcgbGFpIGN1YSBk YXQgbnVvYy4gQm9pIHZpIHN1IGJlIHBoYWkgdmEgbmh1bmcgYW0gbXV1IHRoYXUgdG9tIHF1eWVu IGx1YyBsYSBuaHVuZyBuZ3V5ZW4gbmhhbiBsb24gbmhhdCBnYXkgbmVuIGRvIHZvIHRhbiByYSB0 cm9uZyBEYW5nLCBkYXkgbGEgZGlldSBtYSBIbyBDaGkgTWluaCBkYSBjYW5oIGJhbyB0dSByYXQg c29tLiBUcm9uZyB0aHVjIHRlIGNoZSBkbyB0YSBjaGkgY2hhcCBuaGFuIG1vdCBEYW5nIGR1eSBu aGF0IGxhbmggZGFvLCBuaHVuZyBjaGlhIHJlIHZhIHlldSBrZW0gdHJvbmcgRGFuZyBkdXQga2hv YXQgY28gbmd1eSBoYWkgZGVuIHN1IHBoYXQgdHJpZW4gY3VhIGRhdCBudW9jLCBkZW4gZG9pIHNv bmcgbmhhbiBkYW4uDQoNCk5oYXQgbGEgdHJvbmcgdGluaCBoaW5oIGhpZW4gbmF5IGhhaSBjYW4g YmVuaCBsb24gbmhhdCB0b24gdGFpIHRyb25nIERhbmcgZGFuZyBiaSB4YSBob2kgbGVuIGFuIHJh dCBnYXkgZ2F0IHZhIGxhIG5ndXkgY28gdGhhdCBzdSAsIGRvIGxhIHRoYW0gbmh1bmcgdmEgdHJh bmggZ2lhbmggcXV5ZW4gbHVjLiANCg0KTmV1IG5odW5nIGNhbiBiZW5oIG5heSBjb24gdG9uIHRh aSwga2hvbmcgZHVvYyBnaWFpIHF1eWV0IHRyaWV0IGRlLCBzdSB0YW4gcmEgY2hlIGRvIHNlIGxh IHRhdCB5ZXUuIFJvaSB0YXAgZG9hbiBEdW5nIC0gVGhhbmcgLSBWaW5oIHNlIGR1YSBkYXQgbnVv YyB0YSBkZW4gYm8gdnVjIHRoYW0gbmFvPyANCg0KTmh1bmcgc3UgdmllYyBjdSBOZ3V5ZW4gVmFu IExpbmggZGEga2UgbGFpIGNobyB0b2kgY2hhYyBjaGFuIGN1bmcgcGhhaSBjb24gaXQgbmhhdCBs YSBtb3QgdmFpIG5ndW9pIGtoYWMgZHVvYyBiaWV0LCB0aGUgbmh1bmcgY2hvIGRlbiBuYXkgdmFu IGNodWEgY28gYWkgZGFtIGNvbmcga2hhaSBuZXUgbGVuLiBUcnVvYyB0aHVjIHRyYW5nIGRheSBi YXQgb24gY3VhIHRpbmggaGluaCBjaGluaCB0cmkgZGF0IG51b2MgY3VuZyB2b2kgdGFtIGxvbmcg Y2FtIG1lbiB2YSBraW5oIHRyb25nIGNvIFRvbmcgYmkgdGh1IE5ndXllbiBWYW4gTGluaCwgdG9p IG5oYW4gdGhheSBjaGluaCBtaW5oIHBoYWkgY28gdHJhY2ggbmhpZW0gbm9pIHJhIG5odW5nIGRp ZXUgbmF5LCB0b2kgeGluIGhvYW4gdG9hbiBkYW0gYmFvIHZlIHRpbmggdHJ1bmcgdGh1YyB2YSBj aGluaCB4YWMgY3VhIHN1IHZpZWMgbmF5LiBUb2kgY3VuZyBtb25nIHJhbmcgc2F1IGtoaSBzdSB0 aGF0IG5heSBkdW9jIGR1YSByYSBhbmggc2FuZyB0aGkgc2UgY28gdGhlbSBuaGlldSBiYW5nIGNo dW5nIGtoYWMgY3VhIGNhYyB2aSBsYW8gdGhhbmggQ2FjaCBtYW5nLCBjdWEgbmh1bmcgYWkgY28g bWF5IG1hbiBkdW9jIGJpZXQgZGVuIG5odW5nIHN1IHZpZWMgdHJlbiBzZSBibyBzdW5nIGRheSBk dSBob24gZGUgYmFjaCBob2EgaG9hbiB0b2FuIG5odW5nIGJpIGFuIG5heS4gDQoNClRodSBudWEs IHRvaSBtdW9uIHRob25nIGJhbyBkZW4gZ2lvaSB0cmUsIG5odW5nIG5ndW9pIGNodSB0dW9uZyBs YWkgY3VhIGRhdCBudW9jIGR1b2MgYmlldCByYW5nOiBjbyByYXQgbmhpZXUgbmh1bmcgc3UgdGhh dCBtYSBjYWMgYmFuIGtob25nIGNvIGNvIGhvaSBkdW9jIGJpZXQgZGVuLCBtYSBsZSByYSB0cm9u ZyB4YSBob2kgaGllbiBkYWkgdHJ1eWVuIHRob25nIGRhIHBodW9uZyB0aWVuIG5nYXkgbmF5IGNh YyBiYW4gY2FuIHBoYWkgYmlldCB0YXQgY2Egbmh1bmcgc3UgdGhhdCwgbmh1bmcgZGlldSB0cmFu ZyBkZW4gcm8gcmFuZyBkZSB0dSB4YXkgZHVuZyBjaG8gbWluaCBuaHVuZyB0dSBkdXkgc29uZywg bmh1bmcgcXVhbiBkaWVtIHR1IG5oaWVuIGNodSBraG9uZyBwaGFpIG5odW5nIHkgdGh1YyBoZSBi aSBjdW9uZyBidWMsIG5odW5nIHR1IHR1b25nIGJpIGNoaSBkYW8uIA0KDQpDdW9pIGN1bmcsIHRv aSBtdW9uIGd1aSB0aG9uZyB0aW4gbmF5IGRlbiB0YXQgY2EgbW9pIG5ndW9pIGRhbiB2b2kgbW9u ZyBtdW9uIHJhbmcgbmhhbiBkYW4gY2h1bmcgdGEgZGV1IGNhbmcgbmdheSBjYW5nIGR1b2MgY29p IG1vIGhvbiB0cm9uZyB0aWVwIG5oYW4gdGhvbmcgdGluLCB0aWVwIG5oYW4gc3UgdGhhdC4gTmh1 bmcgc3UgdGhhdCBsaWNoIHN1IGNhbiBwaGFpIGR1b2MgdG9uIHRyb25nIHZhIGRhbiBkYW4gY2Fu IGR1b2MgZ2lhaSBtYSB0cnVvYyBjb25nIGNodW5nLiBOaHVuZyBzdSB2aWVjIGdheSBhbmggaHVv bmcgZGVuIHZhbiBtZW5oIGRhdCBudW9jIGNhbiBwaGFpIGR1b2MgbWluaCBiYWNoIHZhIGNvbmcg a2hhaS4gVHUgZG8gbW9pIG5ndW9pIGRhbiBjYW4gY28gdGhhaSBkbyB2YSBkb25nIGdvcCB0cmFj aCBuaGllbSBjdWEgbWluaCBtb3QgY2FjaCBybyByYW5nIHRydW9jIG5odW5nIGRpZXUgaGUgdHJv bmcgY3VhIGRhdCBudW9jLiBOaGFuIGRhbiBjYW4gcGhhaSB0aGF5IGRvaSB0aG9pIHF1ZW4gY2hh cCBuaGFuOyBraG9uZyBkZSBkb2kgc29uZyBjaGluaCB0cmkgYmkgbGUgdGh1b2MgYm9pIG1vdCBj YSBuaGFuIG5hbywgbW90IGRhbmcgcGhhaSBuYW8sIGhheSBtb3QgdGhlIGNoZSBuYW8sIG1vdCBj aGluaCBwaHUgbmFvOyBtb2kgbmd1b2kgcGhhaSBjbyBxdXllbiB2YSBuZ2hpYSB2dSB0dSBxdXll dCBkaW5oIGNobyByaWVuZyBtaW5oIHRyb25nIG1vdCB4YSBob2kgdmFuIG1pbmgsIGRhbiBjaHUu IA0KDQpIb2FuZyBEdW5nIChjdXUgY2FuIGJvIFYuUC5ULlUpDQpIYSBub2kgbmdheSA5IHRoYW5n IDEwIG5hbSAyMDA2DQoNCmh0dHA6Ly92aS53aWtpcGVkaWEub3JnDQoNCk5ndXllbiBUYW4gRHVu ZyAtIHNpbmggbmFtIDE5NDk6DQoNCk5ndXllbiBCaSB0aHUgaHV5ZW4gdXkgSGEgVGllbiAtIHRp bmggS2llbiBHaWFuZzsNCg0KTmd1eWVuIEJpIHRodSBUaW5oIHV5LCBDaHUgdGljaCBVQk5EIHRp bmggS2llbiBHaWFuZzsNCg0KTmd1eWVuIFRodSB0cnVvbmcgYm8gQ29uZyBBbiAoMS8xOTk1IC0g NS8xOTk2KSAobHVjIGRvIEJvIENvbmcgQW4gY28gdGVuIGxhIEJvIE5vaSB2dSk7DQoNClV5IHZp ZW4gQkNIIFRXIERhbmcga2hvYSA2LCA3LCA4LCA5LCAxMCAoZGFpIGhvaSBWSSBEYW5nIENTVk4g bmFtIDE5ODYsIG9uZyBEdW5nIG1vaSAzNyB0dW9pKQ0KDQpUaGFuZyA2LTE5OTYgZGVuIHRoYW5n IDgtMTk5NzogVXkgdmllbiBCbyBDaGluaCB0cmkgdmEgVXkgdmllbiBUaHVvbmcgdnUgQm8gQ2hp bmggdHJpLCBUcnVvbmcgYmFuIEtpbmggdGUgVHJ1bmcgdW9uZyBEYW5nIHZhIHBodSB0cmFjaCBj b25nIHRhYyBUYWkgY2hpbmggY3VhIERhbmcuDQoNClR1IHRoYW5nIDkgbmFtIDE5OTcgZHVvYyBs YW0gUGhvIFRodSB0dW9uZzsgc2F1IGRvIGdpdSBjaHVjIHZ1IFBobyBUaHUgdHVvbmcgdGh1b25n IHRydWMuDQoNClR1IG5nYXkgMjcgdGhhbmcgNiBuYW0gMjAwNiBkZW4gbmF5LCBOZ3V5ZW4gVGFu IER1bmcgZHVvYyBsYW0gVGh1IHR1b25nLg0KDQpodHRwOi8vd3d3LnRob25nbHVhbi5vcmcvdm4v bW9kdWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9MjA1MyBOZ3V5ZW4gVHJ1bmcg Q2hpbmggKEhhIE5vaSkgMTAvMTAvMjAwNyAwNDo1ODo0NyANCg0KUGhhaSBwaGFuIGRvaSBtYW5o IE5ndXllbiBUYW4gRHVuZyEgDQogDQouLi4uLi4iU3UgbmdoaWVwIGN1YSBvbmcgbGEgbW90IGJh dCBjb25nIGxvbiBkb2kgdm9pIGNoaW5oIGNhYyBkYW5nIHZpZW4gY29uZyBzYW4ga2hhYywgbW90 IA0KY2h1b2kgZGFpIG5odW5nIGdpYW4gZG9pIHZhIHRvaSBhYywgdmEgY2hpbmggYmFuIHRheSBv bmcgdGEgY3VuZyBkYW0gbWF1Li4uIi4gDQoNCkNvIG1vdCBkaWV1IGNhbiBkdW9jIG5vaSByYSBk ZSB0cmFuaCBtb3Qgc2FpIGxhbSB0YWkgaGFpOiBuZ3VvaSBWaWV0IE5hbSBkYSBwaGFuIGRvaSAN Ck5ndXllbiBNaW5oIFRyaWV0IG5odW5nIGxhaSBjbyB2ZSBjaHVhIHBoYW4gZG9pIG1hbmggbWUg dm9pIE5ndXllbiBUYW4gRHVuZzsgcGhhaSANCm5vaSBybzogZ2l1YSBoYWkgb25nIFRyaWV0IHZh IER1bmcsIG5ndW9pIGRhbmcgdmEgY2FuIHBoYW4gZG9pIG1hbmggbWUgaG9uIGxhIE5ndXllbiAN ClRhbiBEdW5nOyANCg0KQ2hpbmggTmd1eWVuIFRhbiBEdW5nIG1vaSBsYSBuZ3VvaSBuaGlldSBx dXllbiBsdWMgbmhhdCBoaWVuIG5heSwgdnVvdCB4YSBjYSBOb25nIA0KRHVjIE1hbmggbGFuIE5n dXllbiBNaW5oIFRyaWV0LiANCg0KQ2hpbmggTmd1eWVuIFRhbiBEdW5nIGxhIG5ndW9pIHF1eWV0 IGRpbmggZG90IGRhbiBhcCB0aG8gYmFvIG5odW5nIG5ndW9pIGRhbiBjaHUgYmF0IA0KZGF1IHR1 IFRldCBEaW5oIEhvaSwgdGFjIGdpYSBjdWEgbmh1bmcgdnUgeHUgYW4gbG8gbWFuZyB0cm9uZyBk byBjYW4gcGhhbSBraG9uZyBjbyANCmx1YXQgc3UsIGtob25nIGR1b2MgdHUgYmFvIGNodWEgdmEg Y29uIGJpIGJpdCBtaWVuZy4gDQoNCkNoaW5oIE5ndXllbiBUYW4gRHVuZyBsYSBuZ3VvaSBjYW0g ZGF1IGtodXluaCBodW9uZyBEbyBNdW9pIC0gTGUgRHVjIEFuaCBkdWEgDQp2YW8gVHJ1bmcgUXVv YywgbmhhbSBtYXQgZGUgVHJ1bmcgUXVvYyBsYW4gY2hpZW0gZGF0IHZhIGJpZW4gdm9pIHkgZG8g ZHV5IG5oYXQgbGEgDQprZW8gZGFpIGNoZSBkbyBkb2MgdGFpIGRhbmcgdHJpLiANCg0KTmd1eWVu IFRhbiBEdW5nIGxhIG1vdCBjb24gbmd1b2kgdm8gaG9jLCB0aHUgY3V1LCBnaWFuIGFjLCBuZ3V5 IGhpZW0uIA0KDQpEYSBob24gbW90IG5hbSB0dSBuZ2F5IG9uZyBOZ3V5ZW4gVGFuIER1bmcgdHJv IHRoYW5oIHRodSB0dW9uZywgZG9uZyB0aG9pIGN1bmcgbGEgDQpuaGFuIHZhdCBxdXllbiBsdWMg bmhhdCB0cm9uZyBEYW5nIENvbmcgU2FuVmlldCBOYW0sIG5obyBkdW9jIHN1IGRvIGRhdSBjdWEg aGFpIG9uZyANCkRvIE11b2kgdmEgTGUgRHVjIEFuaCwgbWEgZHUgbHVhbiBnb2kgbGEgImRhbmcg TUEiIGJhbmcgY2FjaCBnaGVwIHRlbiBoYWkgb25nIG5heSANCm5odW5nIGRvbmcgdGhvaSBjdW5n IGRlIG5vaSBsZW4gaGFpIGJhbiBjaGF0IGN1YSBzdSBsaWVuIGtldCBnaXVhIGhhaSBuaGFuIHZh dCBuYXk6IGNhbSANCnF1eWVuIHRyb25nIGJvbmcgdG9pIHZhIGhhbmggZG9uZyBiYXQgY2hpbmgu IEJvIG1heSB0dXllbiB0cnV5ZW4gY3VhIGRhbmcgY29uZyBzYW4gdG8gDQp2ZSBOZ3V5ZW4gVGFu IER1bmcgbmh1IG1vdCBuZ3VvaSB0cmUsIGNvIGtpZW4gdGh1YyBoaWVuIGRhaSwgdGllbiBibywg Y29pIG1vLCBib2MgdHJ1YywgDQpkYW0gbm9pLCBkYW0gbGFtLiBDaGllbiBkaWNoIHR1eWVuIHRy dXllbiBuYXkgcGhhbiBuYW8gZGEgdGhhbmggY29uZy4gQ28ga2hhIG5oaWV1IA0Kbmd1b2kgZGEg Y28gY2FtIHRpbmggdm9pIE5ndXllbiBUYW4gRHVuZyB2YSBjYW0gdGluaCBuYXkgdmFuIGNvbiBk YWkgZGFuZyBkdSBvbmcgDQpEdW5nIGtob25nIHRodWMgaGllbiBkdW9jIG1vdCBsb2kgaHVhIG5h byB2YSBjb24gbGFtIG5ndW9jIGxhaSBuaHVuZyBnaSBuZ3VvaSB0YSBjaG8gDQpkb2k6IGR1bmcg ZHVvbmcgdmEgYmFvIGNoZSB0aGFtIG5odW5nLCBkYW4gYXAgbmh1bmcgbmd1b2kgZGFuIGNodSBt b3QgY2FjaCB0aG8gYmFvLCANCnNhbmcgY2hhdSB0cnVjIHRodW9uZyB4dXllbiBxdWFuIHRoYXkg QmFjIEtpbmgsIGltIGxhbmcgaGVuIG5oYXQga2hpIGhhaSBxdWFuIFRydW5nIA0KUXVvYyBiYW4g Y2hldCBuZ3UgZGFuIFZpZXQgTmFtIHRhaSBUcnVvbmcgU2EsIGxhbSBuZ28ga2hpIGNhYyBjb25n IHR5IFRydW5nIFF1b2MgbyANClF1YW5nIFRheSBsYXAgY2hpIG5oYW5oIHRyZW4gbGFuaCB0aG8g VmlldCBOYW0gbW90IGNhY2ggdHUgbmhpZW4gbWEga2hvbmcgY2FuIHhpbiANCnBoZXAuIA0KDQpO Z3V5ZW4gVGFuIER1bmcgbGEgYWk/IA0KDQpUaGVvIHRpZXUgc3UgY2hpbmggdGh1YyB0aGkgb25n IHRhIGxhIGNvbiBjdWEgdHVvbmcgTmd1eWVuIFRhbiBNaW5oIG5odW5nIGNhIG51b2MgYmlldCAN Cm9uZyBtbyBjb2kgY2hhIHJhdCBzb20gdmEgdHJvIHRoYW5oIGNvbiBudW9pIGN1YSBvbmcgTGUg RHVjIEFuaC4gT25nIHNpbmggbmdheSANCjE3LzExLzE5NDkgdGFpIHRoaSB4YSBDYSBNYXUgdmEg ZHVuZyBuZ2F5IHNpbmggbmhhdCB0aHUgMTIsIHR1YyBuZ2F5IDE3LzExLzE5NjEsIGdpYSANCm5o YXAgcXVhbiBkb2kgY29uZyBzYW4sIGxhbSBnaWFvIGxpZW4sIGN1dSB0aHVvbmcsIHkgdGEsIHJv aSBibyBiaW5oIHZhIGNvbmcgYW4uIENoaSB0aWV0IA0KbmF5IGRhbmcgY2h1IHk6IHRoZW8gY29u ZyBwaGFwIHF1b2MgdGUgdmllYyB0dXllbiBkdW5nIHRoaWV1IG5oaSB2YW8gcXVhbiBkb2kgbGEg bW90IHRvaSANCmFjLCBjdW9jIGRvaSBOZ3V5ZW4gVGFuIER1bmcgZGEgYmF0IGRhdSBtb3QgY2Fj aCBiZW5oIGhvYW4sIHJhdCB0cmFpIG5ndW9jIHZvaSBnaWFvIA0KZHVjIG1hIG1vdCBuZ3VvaSBs YW5oIGRhbyBxdW9jIGdpYSBoaWVuIGRhaSBwaGFpIGNvLiANCg0KVGlldSBzdSBjaGluaCB0aHVj IGN1YSBvbmcgZGEgcmF0IG1vIGhvIHRyb25nIGdpYWkgZG9hbiAxOTYxIC0gMTk4MS4gQ2hpIHRo YXkgbm9pIG9uZyANCmR1b2MgdGhhbmcgbGVuIGNhcCBiYWMgdGhpZXUgdGEgY29uZyBhbiB2YW8g dGhhbmcgOS8xOTgxLCBsdWMgMzIgdHVvaS4gS2hvbmcgdGhheSBub2kgDQp2YW8gbmdheSAzMC80 LzE5NzUgb25nIGNvIGNhcCBiYWMgbmFvIHZhIGdpdSBjaHVjIHZ1IGdpLiBDYWMgbmd1b24gdGlu IGRhbmcgdGluIGNheSBjaG8gDQpiaWV0IGx1YyBkbyBvbmcgY2hpIGxhIG1vdCBoYSBzaSBxdWFu IGNvbmcgYW4uIFN1IG5naGllcCBjdWEgb25nIGNoaSBiYXQgZGF1IHRoYW5nIHRpZW4gDQp0b2Mg aGFuaCBraGkgY2hhIG51b2kgY3VhIG9uZywgdHVjIG9uZyBMZSBEdWMgQW5oLCBsb3QgbWF0IHhh bmggY3VhIExlIER1YyBUaG8gdmEgDQpkdW9jIHRoYW5nIGNodWMgdnVuIHZ1dCB0dSBkYWkgdGEg bmFtIDE5NzQgbGVuIGRhaSB0dW9uZyBuYW0gMTk3OS4gDQoNClRpZXUgc3UgY2hpbmggdGh1YyBj dWEgTmd1eWVuIFRhbiBEdW5nIGNhbmcgbW8gaG8sIHZhIHBoYWkgbm9pIHRoYW5nIGxhIGRvaSB0 cmEsIHRyb25nIA0KZ2lhaSBkb2FuIDE5ODEgLSAxOTk0LiBDaGkgdGhheSBub2kgb25nIGR1b2Mg ZGkgaG9jIHRydW9uZyBkYW5nIE5ndXllbiBBaSBRdW9jLCANCm5odW5nIGx1YyBuYW8gdmEgdHJv bmcgYmFvIGxhdT8gTGFpIHRoYXkgZ2hpIGxhIG9uZyBkYXUgY3UgbmhhbiBsdWF0LCBuaHVuZyBo b2MgbyBkYXUgdmEgDQpiYW8gZ2lvPyBTdSB0aHVjIGxhIE5ndXllbiBUYW4gRHVuZyBjaGkgZHVv YyBndWkgZGkgaG9jIHRydW9uZyBkYW5nIE5ndXllbiBBaSBRdW9jIA0KY2hvIGNvIGxlLCBuaHUg bW90IHRodSB0dWMgYmF0IGJ1b2MgY3VhIGNhYyBjYW4gYm8gdHJlIG11b24gZHVvYyB2YW8gdHJ1 bmcgdW9uZyBkYW5nIA0KY2h1IE5ndXllbiBUYW4gRHVuZyBjaGFuZyBob2MgaGFuaCBnaSBjYS4g VGh1YyB0ZSBvbmcgbGEgbW90IG1hdSBuZ3VvaSBjYW4gYm8gDQpraG9uZyBjbyBob2MgdmFuLiAN Cg0KVHJvbmcgZ2lhaSBkb2FuIDE5ODEgLSAxOTkzIE5ndXllbiBUYW4gRHVuZyBsZW4gY2h1YyBh byBhdCBuaG8gTGUgRHVjIEFuaCBkYSB0cm8gDQp0aGFuaCBjYW5oIHRheSBtYXQgY3VhIExlIER1 YyBUaG8uIE9uZyBsZW4gdG9pIGNhcCBiYWMgdHJ1bmcgdHVvbmcgdmEgdHJvIHRoYW5oIHRodSAN CnRydW9uZyB0aHUgbmhhdCBibyBjb25nIGFuLiANCg0KRGlldSBkb2kgdHJhIGN1YSB0aWV1IHN1 IGNoaW5oIHRodWMgbGEgbm8gZGEgbW8gdGEgTmd1eWVuIFRhbiBEdW5nIG5odSBtb3QgY2FuIGJv IGxhbSANCmNvbmcgdGFjIGRhbmcgdmEgY29uZyB0YWMgaGFuaCBjaGluaC4gVGh1YyBzdSB0aGkg dHJvbmcgZ2lhaSBkb2FuIDE5ODEgLSAxOTg3IE5ndXllbiANClRhbiBEdW5nIGxhIHRydW9uZyBj b25nIGFuIGh1eWVuIEhhIFRpZW4gdmEgZHVvYyBnaWFvIG1vdCBjb25nIHRhYyBjdWMga3kgcXVh biB0cm9uZzogDQpsYW0ga2luaCB0YWkgY2hvIGRhbmcgYmFuZyBjYWNoIHRvIGNodWMgYnVvbiBs YXUgdGFpIGN1YSBiaWVuIEhhIFRpZW4uIA0KTmh1bmcgYWkgdHVuZyBvIFJhY2ggR2lhIHRyb25n IGdpYWkgZG9hbiBuYXkgZGV1IGRhIHRoYXkgbW9pIGRlbSBjdWEgYmllbiBIYSBUaWVuIHJ1YyAN CnNhbmcgdmkgaGFuZyBuZ2FuIHRodXllbiBidW9uIGxhdSBUaGFpIExhbiBkZW4gZGF1IG5nb2Fp IGtob2kgdm9pIGR1IHRodSBoYW5nIGNobyBjYWMgDQp0aHV5ZW4gY29uIHR1IGRhdCBsaWVuIHJh ICJhbiBoYW5nIi4gDQoNCkNhbiBsdXUgeSBsYSB0cm9uZyBjYWMgbmFtIDE5NzYgLSAxOTc3IE5n dXllbiBUYW4gRHVuZyB0aGFtIGdpYSB2YW8gbW90IHRvaSBhYyBkYW0gDQptYXU6IHRoYW5oIGxh cCB0byBjaHVjIGtoYW5nIGNoaWVuIGdpYSBtYW5nIHRlbiBsYSAiRGFuZyBWaWV0IE5hbSBQaHVj IFF1b2MiIGRlIGdhaSANCmJheSBiYXQgbmh1bmcgdGhhbmggbmllbiBtaWVuIE5hbSBwaGFuIGRv aSBzdSBoYSBraGFjIGN1YSBjaGUgZG8gY29uZyBzYW4uIEhhbmcgbmdhbiANCnRoYW5oIG5pZW4g ZGEgc2EgbHVvaSwgdmEgbWFjIGR1IGhvIGNoaSBsYSBuaHVuZyB0aGFuaCBuaWVuIG5nYXkgdGhv IGJpIG1hYyBsdWEgbmh1bmcgDQpuaGlldSBuZ3VvaSBkYSBiaSB4dSBiYW4uIA0KDQpDdW5nIGNh biBsdXUgeSBsYSB0aGFtIG5odW5nIGRhIGxlbiByYXQgY2FvIHRyb25nIGdpYWkgZG9hbiAyMDAx IC0gMjAwNiwgbmhpZW0ga3kgOSBjdWEgDQpCYW4gQ2hhcCBoYW5oIHRydW5nIHVvbmcgRENTVk4u IFRyb25nIGdpYWkgZG9hbiBuYXkgTmd1eWVuIFRhbiBEdW5nIGxhIHV5IHZpZW4gDQpibyBjaGlu aCB0cmkgdmEgcGhvIHRodSB0dW9uZyB0cnVjLCBxdXllbiBoYW5oIHZ1b3QgaGFuIG9uZyB0aHUg dHVvbmcgbW8gbmhhdCBQaGFuIFZhbiANCktoYWkuIENoaW5oIE5ndXllbiBUYW4gRHVuZyBwaGFp IGNoaXUgdHJhY2ggbmhpZW0gbG9uIG5oYXQgdmUgcXVvYyBuYW4gdGhhbSBuaHVuZywgDQpuaHVu ZyBoaWVuIG5heSBvbmcgdGEgbGFpIHRyYW5nIHRyYW8gdHUgeHVuZyBsYSBtb3Qgbmd1b2kgcXV5 ZXQgdGFtIGNob25nIHRoYW0gbmh1bmcuIA0KDQpUb20gbGFpIHN1IG5naGllcCBjdWEgTmd1eWVu IFRhbiBEdW5nIGxhIHN1IG5naGllcCBjdWEgbW90IGNvbiBvbmcgY2hhdSBjaGEgdHJvbmcgDQpk YW5nLCBraG9uZyB0cmFpIHF1YSBnaWFuIG5ndXksIGtob25nIGRhbyBkdWMgdmEgY3VuZyBjaGFu ZyBjbyBraWVuIHRodWMgdmEga2hhIG5hbmcgDQpuYW8sIG5odW5nIGRhIGR1b2MgYXAgZGF0IHZh byBkaWEgdmkgbGFuaCBkYW8gdG9pIGNhbyBraG9uZyBraGFjIGdpIG1vdCB0aGFpIHR1IGR1b2kg Y2FjIA0KY2hlIGRvIHF1YW4gY2h1LiBTdSBuZ2hpZXAgY3VhIG9uZyBsYSBtb3QgYmF0IGNvbmcg bG9uIGRvaSB2b2kgY2hpbmggY2FjIGRhbmcgdmllbiBjb25nIA0Kc2FuIGtoYWMsIG1vdCBjaHVv aSBkYWkgbmh1bmcgZ2lhbiBkb2kgdmEgdG9pIGFjLCB2YSBjaGluaCBiYW4gdGF5IG9uZyB0YSBj dW5nIGRhbSBtYXUuIA0KVHJvbmcga2UgaG9hY2ggY2h1YW4gYmkgZHVhIG9uZyBsZW4gY2FtIHF1 eWVuLCAgZGFuZyBNQSBkYSBuaGlldSBraGkgY28gbmh1bmcgYmllbiANCnBoYXAgdGhhY2ggZG8g bmh1IGR1YSBvbmcgbGVuIGxhbSB0aG9uZyBkb2MgTmdhbiBIYW5nIE5oYSBOdW9jIGR1IG9uZyBo b2FuIHRvYW4gDQpraG9uZyBiaWV0IGdpIHZlIGtpbmggdGUgdGFpIGNoaW5oLiBOZ3V5ZW4gVGFu IER1bmcgY29uIHRlIGhvbiBuaGlldSBzbyB2b2kgRG8gTXVvaSB2YSANCkxlIER1YyBBbmggdmkg aXQgcmEgbmh1bmcgdmkgbmF5IGNvbiB2YW8gc2luaCByYSB0dS4gTmh1bmcgbmd1b2kgY28gYmFu IGxhbmggY29uIGh5IA0Kdm9uZyBjbyB0aGUgZGFtIHN1YSBzYWkga2hpIG5oYW4gcmEgc3UgbGFt IGxhbjogbmh1bmcgc2FuIHBoYW0gY3VhIG5odW5nIGRhYyBhbiB2YSANCmdpYW4gdHJhIG5odSBO Z3V5ZW4gVGFuIER1bmcgY2hpIGNvIHRoZSBjbyB0aHUgdHJvbmcgc3UgZ2lhbiB0cmE7IGtob25n IHBodSBob3AgZGUgbGFuaCANCmRhbyBjb25nIGN1b2MgZG9pIG1vaSB2YSB4YXkgZHVuZyBkYWkg ZG9hbiBrZXQgZGFuIHRvYy4NCg0KVHJvbmcgaG9uIG1vdCBuYW0gcXVhIE5ndXllbiBUYW4gRHVu ZyBkYSBsYW0gZ2k/IE9uZyBjaHVhIGdpYWkgcXV5ZXQgZHVvYyBtb3QgaG8gc28gdGhhbSANCm5o dW5nIGxvbiBuYW8gY2Egbmh1IG9uZyBkYSBodWEgbHVjIGxlbiBjYW0gcXV5ZW4sIHRyb25nIHZ1 IFBNVSAxOCBvbmcgZGEga2hvbmcgZ2lhaSBxdXlldCANCm1hIGNvbiBjaGUgZGF5IG1vdCBjYWNo IHRyYW5nIHRyb24uIEtob25nIG5lbiBjaG8gZG9pIE5ndXllbiBUYW4gRHVuZyBkZXAgZHVvYyB0 aGFtIG5odW5nIA0KYm9pIHZpIGNoaW5oIG9uZyBsYSBtb3QgdHJ1bSB0aGFtIG5odW5nIHZhIGJ1 b24gbGF1LiANCg0KT25nIER1bmcgZGEgcGhhdCBkb25nIGRvdCBkYW4gYXAgcXVpIG1vIG5oYXQg dHUgbmhpZXUgbmFtIG5heSB2YSBuaHVuZyBwaGllbiB0b2EgZHVvaSANCmNoaW5oIHF1eWVuIGN1 YSBvbmcgZGEgcGhhIG1vaSBreSBsdWMgdGhvIGJhby4gQm8gbWF5IHR1eWVuIHRydXllbiBjdWEg ZGFuZyBkYW5oIGJvbmcgDQpvbmcgbmh1IG1vdCBuZ3VvaSBkYW0gbm9pLCBkYW0gbGFtIG5odW5n IG9uZyBkYSBkYW0gbGFtIGdpPyBWaWVjIGRhbSBsYW0gbm9pIGJhdCBuaGF0IA0KZ2FuIGRheSBj dWEgb25nIGxhIGR1YSBsZW4gY2h1YyBjaGFuaCBhbiBUb2EgYW4gTmhhbiBkYW4gVG9pIGNhbyBt b3QgdHJ1bmcgdHVvbmcgY29uZyANCmFuLCBvbmcgVHJ1b25nIEhvYSBCaW5oLiBOaGFuIHZhdCBU cnVvbmcgSG9hIEJpbmggbmF5IGtob25nIGtoYWMgTmd1eWVuIFRhbiBEdW5nIGJhbyANCm5oaWV1 OiBjYWNoIGRheSBtb3QgbmFtIG1vaSBjaGkgbGEgZGFpIHRhIGJpIG5oaWV1IHNpIHF1YW4gY29u ZyBhbiB0byBnaWFjIHZlIGNhIGtoYSANCm5hbmcgbGFuIGRhbyBkdWMsIG5odW5nIHZhbiBkdW9j IHRoYW5nIGNodWMgdnVuIHZ1dCwgYmlldCBkYXUgY2hhbmcgc2UgbGEgZ2lhaSBwaGFwIA0KY3Vh IGRhbmcgTUEgY2hvIGdpYWkgZG9hbiAiaGF1IiBOZ3V5ZW4gVGFuIER1bmc/IA0KDQpLaG9uZyBu ZW4gY2hvIGRvaSBnaSBvIE5ndXllbiBUYW4gRHVuZyBjYS4gVm9pIHRoZSBsdWMgaGllbiBuYXkg bmV1IG11b24gbGFtIGdpIG9uZyANCmRhIGNvIHRoZSBsYW0gcm9pLiBDYW5nIGtob25nIG5lbiBj aG8gZG9pIG8gTmd1eWVuIFRhbiBEdW5nIG5odW5nIGJ1b2MgdGllbiBkb3QgcGhhIA0KdHJvbmcg Y2hpZXUgaHVvbmcgZGFuIGNodSBob2EgaGF5IHRob2F0IGtob2kgYW5oIGh1b25nIGN1YSBUcnVu ZyBRdW9jLiANCk9uZyBEdW5nIGR1dCBraG9hdCBraG9uZyBwaGFpIGxhIG5ndW9pIGN1YSBuaHVu ZyB0aGF5IGRvaSBuYXksIHRyYWkgbGFpIG9uZyBsYSBtb3QgDQp0cm8gbmdhaSwgdmEgbGEgbW90 IHRybyBuZ2FpIGxvbi4gTmd1b2kgdGEga2hvbmcgdGhlIGh5IHZvbmcgZ2kgbyBvbmcuIERpZXUg bWEgbmd1b2kgDQp0YSBjbyB0aGUgaHkgdm9uZyBsYSBzYXUga2hpIGhhaSBvbmcgRG8gTXVvaSB2 YSBMZSBEdWMgQW5oIGtob25nIGNvbiBudWEsIE5ndXllbiBUYW4gDQpEdW5nIHNlIGJpIHRoYXkg dGhlIGJvaSBtb3Qgbmd1b2kgY28ga2hhIG5hbmcgdmEgc2FuZyBzdW90IGhvbiBvbmcgdGEsIGRp ZXUgbmF5IHJhdCANCmNvIHRoZSB4YXkgcmEgdmkgc3UgbmdoaWVwIGN1YSBOZ3V5ZW4gVGFuIER1 bmcgY2hpIHRodWFuIHR1eSBkbyBoYWkgb25nIG5heSBhcCBkYXQuIA0KRG8gc2UgbGEgbW90IG1h eSBtYW4gdGh1YyBzdSBjaG8gZGF0IG51b2MuIA0KDQpUcm8gbGFpIGNvbmcgdmllYyB0cnVvYyBt YXQsIGNvIHRoZSB0aGF5IGxhIGNhbiBjaHVhbiBiaSBkZSBiaWV1IGxvIHN1IHBoYW4gbm8gY2Fu IA0KcGhhaSBjbyBkb2kgdm9pIG1vdCBjb24gbmd1b2kgZG9jIGFjLCB2b2kgYmFuIHRheSBkYW0g bWF1LCB0YWMgZ2lhIGN1YSBuaHVuZyBkYW4gYXAgDQp0aG8gYmFvIGRvaSB2b2kgYW5oIGVtIGRh biBjaHUgdHJvbmcgbnVvYywgZG9uZyB0aG9pIGN1bmcgbGEgdHJvIG5nYWkgY2hpbmggY3VhIHRp ZW4gDQp0cmluaCBkYW4gY2h1IGhvYSBkYXQgbnVvYywgaG9hIGhvcCB2YSBkYWkgZG9hbiBrZXQg ZGFuIHRvYy4gDQoNCk5ndXllbiBUcnVuZyBDaGluaCAoSGEgTm9pKQ0KDQpLaG9uZyBjbyBnaSBr aG9uIGhvbiBkYXAgZGFwIHR1IGRvIA0KDQpodHRwOi8vcmFkaW9jaGFudHJvaW1vaS5jb20vc3Bp cC5waHA/YXJ0aWNsZTU3MjEgUGhhdCB0aGFuaC9jYXAgbmhhdDogMTcvMDYvMjAwOSANCg0KKiBU aW4gZGFjIGJpZXQ6IE9uZyBOZ3V5ZW4gVGFuIER1bmcgbmhhbiAxNTAgdHJpZXUgZG8gbGEgTXkg dHUgVHJ1bmcgUXVvYyANCg0KVGhlbyBuZ3VvbiB0aW4gY2FvIGNhcCB0dSBnaW9pIGxhbmggZGFv IGRhbmcgQ1NWTiB2dWEgZHVvYyB0aWV0IGxvIHZhIGtpZW0gY2h1bmcgcXVhIG1vdCBzbyB0aGFu aCB2aWVuIG5nb2FpIGdpYW8gZG9hbiB0YWkgSGEgTm9pIHRoaSB0dSB0aGFuZyAxMC8yMDA4LCBu aGEgY2FtIHF1eWVuIFRydW5nIA0KUXVvYyBxdWEgbWFuZyBsdW9pIG5nYW4gaGFuZyBuZ29haSB2 aSBjdWEgaG8gZGEgY2h1eWVuIG5hcCB2YW8gaGUgdGhvbmcga2luaCBkb2FuaCBjdWEgZ2lhIGRp bmggVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyB0b25nIGNvbmcgaG9uIDE1MCB0cmlldSBkbyBs YSBNeS4gUGhhbiBsb24gc28gdGllbiBuYXkgbmFtIGJlbiBuZ29haSBsYW5oIHRobyBWaWV0IE5h bS4NCg0KVmFuIHRoZW8gbmd1b24gdGluIG1hIFJhZGlvIENoYW4gVHJvaSBNb2kgbmhhbiBkdW9j IHRoaSBkYXkgbGEgbW9uIHRpZW4gZGUgdHJhbyBkb2kgdm9pIHZpZWMgb25nIE5ndXllbiBUYW4g RHVuZyBjaGFwIHRodWFuIHZhIHRpZXAgdHVjIGRheSBtYW5oIGtlIGhvYWNoIGtoYWkgdGhhYyBC by0NCnhpdCBUYXkgTmd1eWVuIHRhaSAyIGRpYSBkaWVtIGhpZW4gbmF5IGxhIERhYyBOb25nIHZh IFRhbiBSYWksIGJhdCBrZSBjYWMgcGhhbiBkb2kgdHUgY29uZyBsdWFuIHZhIHRoYW5oIHBoYW4g Y2h1eWVuIGdpYSBjb25nIG5naGUsIHF1YW4gc3UgVmlldCBOYW0uDQoNCkhpZW4gbmF5LCB0aW4g dHVjIG5heSBkYSBsYW4gZGVuIG1vdCBzbyBkb2FuaCBuaGFuIFZpZXQgTmFtIHZhIEhvYSBLeS4g VHJvbmcgbm8gbHVjIGNoYW4gZHVuZyBsYW4gdHJ1eWVuIHZhIG5nYW4gY2hhbiBzdSBwaGFuIGRv aSBjdWEgZHUgbHVhbiB0cm9uZyBudW9jLCBvbmcgTmd1eWVuIFRhbiANCkR1bmcgZGEgcmEgbGVu aCAiYmF0IGtoYW4gY2FwIiBtb3Qgc28gbmd1b2kgdHJvbmcgdmFpIG5nYXkgcXVhLiBIaWVuIHR1 b25nICJiYXQga2hhbiBjYXAiIG5heSBuaGlldSBwaGFuIHNlIGNvbiBrZW8gZGFpIHRyb25nIG5o dW5nIG5nYXkgc2FwIHRvaS4NCg0KKiBIYW5nIHRyaWV1IG5vbmcgZGFuIHRyYW5nIHRheSB2aSBi aSB0aHUgaG9pIGRhdA0KDQpUaHUgaG9pIGRhdCBidWEgYmFpIHJvaSBibyBkbyBob2FjIGxhbSBz YW4gZ29uIChnb2Z0KSBwaHVjIHZ1IHF1aSB0b2MgZG8sIHhheSBuaGEgbyBiYW4ga2llbSBsb2ks IHhheSBjYWMga2h1IGNvbmcgbmdoZSBoYXkgbmhhIG1heSB0aGFpIGNoYXQgdGhhaSBkb2MgaGFp IGdheSBvIG5oaWVtIG1vaSANCnRydW9uZywgKG1vdCBzbyBxdWFuIGNodWMpIGRhbmcgdmEgbmhh IG51b2MgQ1NWTiBkYXkgaGFuZyB0cmlldSBub25nIGRhbiB2YW8gdm9uZyB0aGF0IG5naGllcCB2 YSBnaWEgZGluaCBjdWEgaG8gc29uZyB0cm9uZyBuZ2hlbyBkb2kuDQpNb3QgYmFpIHZpZXQgdHJl biB0byAiVGhvaSBCYW8gS2luaCBUZSBWaWV0IE5hbSIgY2hvIGhheSBuaHUgdmF5IGhvbSBUaHUg SGFpIDE1IFRoYW5nIFNhdSAyMDA5Lg0KDQoiVGhlbyB0aG9uZyBrZSBjdWEgQm8gTm9uZyBuZ2hp ZXAgdmEgUGhhdCB0cmllbiBOb25nIFRob24sIHZpZWMgdGh1IGhvaSBkYXQgbm9uZyBuZ2hpZXAg dHJvbmcgNSBuYW0gKDIwMDMtMjAwOCkgZGEgdGFjIGRvbmcgZGVuIGRvaSBzb25nIGN1YSB0cmVu IDYyNywwMDAgaG8gZ2lhIGRpbmggDQp2b2kga2hvYW5nIDk1MCwwMDAgbGFvIGRvbmcgdmEgMi41 IHRyaWV1IG5ndW9pIi4gQmFuIHRpbiBub2kgdHJlbiB2aWV0IG5odSB2YXkgdmEgY2hpIHJhIGNo byB0aGF5IHJpZW5nICJkb25nIGJhbmcgc29uZyBIb25nIGxhIHZ1bmcgY28gZGllbiB0aWNoIGRh dCBiaSB0aHUgaG9pIGxvbiBuaGF0IHRyb25nIG5odW5nIG5hbSBxdWEiIGNoaWVtIDQsNCUgdG9u ZyBkaWVuIHRpY2ggZGF0IG5vbmcgbmdoaWVwIGN1YSBraHUgdnVjLg0KDQpIYW5nIGNodWMgbmFt IHF1YSwgbm9uZyBkYW4gZGEga2VvIHZlIEhhIE5vaSBiaWV1IHRpbmggdHJ1b2MgY2FjIGNvIHF1 YW4gdHJ1bmcgdW9uZyB2YSB0dSBkaW5oIGN1YSBjYWMgbGFuaCB0dSBEYW5nIENvbmcgU2FuLCBw aGFuIGRvaSBjYWMgdnUgbmhhIGNhbSBxdXllbiBraGFwIGNhYyB0aW5oIA0KY3VvcCBkYXQgZ29p IGxhICJxdWkgaG9hY2giLiBNb3Qgc28gZHVvYyBkZW4gYnUgdm9pIGdpYSByYXQgdGhhcCBraG9u ZyBkdSBkZSBobyBtdWEgbmhhIG11YSBkYXQgZGUgc29uZyBvIG5vaSBraGFjLCBtb3Qgc28gdGhp IGJpIG1hdCB0cmFuZy4gSG8gZGEga2hpZXUga2llbiBvIGNhYyBkaWEgcGh1b25nIGtob25nIGNv IGtldCBxdWEgbmVuIHBoYWkga2VvIHZlIHRydW5nIHVvbmcuDQoNCk5oYSBjYW0gcXV5ZW4gdHVu ZyByZXUgcmFvIHJhdCBuaGlldSBsYW4gbGEgcGhhaSBnaWFpIHF1eWV0IHRydW9jIGNobyBvLCBn aWFpIHF1eWV0IHZpZWMgbGFtLCBkYXQgc2FuIHh1YXQgY2hvIG5ndW9pIGRhbiB0cnVvYyBraGkg Z2lhaSB0b2EgZGF0IGRhaSwgbmhhIGN1YS4gTmh1bmcgZG8gY2hpIGxhIG5odW5nIGxvaSB0dXll biB0cnV5ZW4gZGUgeG9hIGRpdSBxdWFuIGNodW5nLiBUaHVjIHRlLCBiYW8gY2hpIHRyb25nIG51 b2MgZGEgY28gcmF0IA0KbmhpZXUgYmFpIHZpZXQgY2hvIHRoYXksIGNhYyBraHUgZ29pIGxhICJ0 YWkgZGluaCBjdSIgY2hvIGNhYyBjb25nIHRyaW5oIGxvbiB0cmVuIGNhIG51b2MgDQp0dSBkYXAg dGh1eSBkaWVuIFNvbiBMYSwga2hhaSB0aGFjIGJhdXhpdGUgbyBMYW0gRG9uZywga2h1IGRvIHRo aSBtb2kgVGh1IFRoaWVtIHYudi4uLiBkZXUgZ2lvbmcgbmhhdS4gTmd1b2kgZGFuIGJpIGR1YSBy YSBraG9pIG5oYSB2YSByb2kgdmFvIHN1IGtob24gZG9uLCBkb2kga2hvLg0KDQoqIEdpb2kgVHJl IFRyb25nIE51b2MgUGhvIEJpZW4gTG9pIEtldSBHb2kgTmd1b2kgRGFuIFBoYWkgQ28gVGhhaSBE byBWb2kgVHJ1bmcgQ29uZw0KDQpUcm9uZyBuaHVuZyBuZ2F5IHF1YSB0cmVuIG5odW5nIHRyYW5n IG1hbmcgZGEgeHVhdCBoaWVuIGxvaSBrZXUgZ29pIGN1YSBtb3QgbmhvbSB0aGFuaCBuaWVuLCBz aW5oIHZpZW4gdmEgdHJpIHRodWMgVmlldCBOYW0gZHVvYyBwaG8gYmllbiByb25nIHJhaSwga2V1 IGdvaSBuZ3VvaSBkYW4gVmlldCANCk5hbSBoYXkgYmF5IHRvIHRoYWkgZG8gZG9pIHZvaSBjaGlu aCBxdXllbiBUcnVuZyBDb25nIG8gYmF0IGN1IG5vaSBkYXUsIHZhbyBiYXQgY3UgbHVjIA0KbmFv LCBiYW5nIG5odW5nIGhhbmggZG9uZyBwaHUgaG9wIHZvaSBraGEgbmFuZyB2YSBkaWV1IGtpZW4g Y3VhIG1pbmggbWEgY3UgdGhlIGJhbmcgDQpuaHVuZyBoYW5oIGRvbmcgbmhvIG5oYXQsIGNoYW5n IGhhbiBuaHUgbmd1bmcgbXVhIGhhbmcgaG9hIFRydW5nIENvbmc7IHZ1dCBibyBuaHVuZyB2YXQg ZHVuZyBkdW9jIHNhbiB4dWF0IHRhaSBUcnVuZyBDb25nOyB0YXkgY2hheSBuaHVuZyBzYW4gcGhh bSB2YW4gaG9hLCBwaGltIGFuaCwgYW0gbmhhYyBjbyBuZ3VvbiBnb2MgdHUgVHJ1bmcgQ29uZy4u Lg0KDQpMb2kga2V1IGdvaSB2aWV0IHJhbmcgbmh1bmcgbmd1b2kgVmlldCBOYW0gdHUgaGFvIHZh IGNvIGNoaW5oIG5naGlhLCBwaGFpIGNvIHRob25nIGRpZXAgcm8gcmFuZyB2ZSBjaHUgcXV5ZW4g Y3VhIGRhdCBudW9jIFZpZXQgTmFtIGN1bmcgcXV5ZW4gdHUgY2h1IGN1YSBkYW4gdG9jIFZpZXQg TmFtLiBOZ2F5IDE2IHRoYW5nIDUgbmFtIDIwMDksIGNoaW5oIHBodSBUcnVuZyBDb25nIHJhIGxl bmggY2FtIG5ndW9pIFZpZXQgTmFtIGRhbmggYmF0IA0KY2EsIHRodWMgaGllbiBjdW9jIG11dSBz aW5oIG5nYXkgdHJvbmcgbGFuaCBoYWkgdGh1b2MgY2h1IHF1eWVuIFZpZXQgTmFtLiBOZ2F5IDE5 IHRoYW5nIE5hbSwgbW90IHRhdSBkYW5oIGNhIGN1YSBuZ3UgZGFuIFF1YW5nIE5nYWkgYmkgdGF1 IFRydW5nIGNvbmcgdGFuIGNvbmcgbmdheSANCnRyZW4gbmd1IHRydW9uZywgbGF5IGRpIGhvbiBt b3QgbnVhIHNvIGNhIHZ1YSBkYW5oIGJhdCBkdW9jLiBUcnVvYyBraGkgYm8gZGksIHRhdSBsYSBu YXkgZHVuZyBsdW9pIGxlIGRhbSB0aHVuZyBtb3QgY2hpZWMgdGh1eWVuIHRodW5nIGR1bmcgbGFt IHRodXllbiBjdXUgbmFuIHRyZW4gdGF1IGNhIGN1YSBuZ3UgZGFuIFF1YW5nIE5nYWkuIE5nYXkg MjMgdGhhbmcgNSBuYW0gMjAwOSwgbW90IHRhdSBraGFjIHRhbiBjb25nIGxhbSBjaGltIG1vdCAN CnRhdSBkYW5oIGNhIGN1YSBuZ3UgZGFuIFZpZXQgTmFtIHRhaSBraHUgdnVjIGRhbyBIb2FuZyBT YSB0aHVvYyBjaHUgcXV5ZW4gVmlldCBOYW07IGdheSBuZ3V5IGhhaSB0aW5oIG1hbmcgMjYgZG9u ZyBiYW8gVmlldCBOYW0uIFZhIHRydXllbiB0aG9uZyBUcnVuZyBDb25nIHNhdSBkbyB4YWMgbmhh biBjaGluaCB0YXUgdHVhbiB0cmEgY3VhIFRydW5nIENvbmcgZGEgdGh1YyBoaWVuIGNhYyBoYW5o IHZpIGtob25nIGNoZSBuYXkuDQoNClZpIG5odW5nIGxlIGF5LCB0aHUga2V1IGdvaSBtb2kgbmd1 b2kgVmlldCBOYW0sIG5odW5nIGFpIGNvbiB0dSBoYW8sIGNvbiBraWV1IGhhbmggdmEgY29uIHkg dGh1YyBkdW9jIGNoaW5oIG5naGlhIGN1YSBtaW5oLCBoYXkgYmF5IHRvIG1vdCBjYWNoIHRydWMg dGllcCBiYW5nIG5odW5nIGhhbmggDQpkb25nIHRoaWV0IHRodWMgdm9pIGNoaW5oIHF1eWVuIFRy dW5nIENvbmcgcXVhbiBkaWVtIGN1YSBuZ3VvaSBWaWV0IE5hbSB2ZSBjaHUgcXV5ZW4gdmEgc3Ug dG9hbiB2ZW4gbGFuaCB0aG8gVmlldCBOYW0uDQoNCi0NCmh0dHA6Ly9saW5obmQubXVsdGlwbHku Y29tL2pvdXJuYWwvaXRlbS81NC81NCBBdWcgMywgJzA5IDE6MTAgUE0gVnUgTWluaCBUcmkNClZ1 IGFuIGNoaW5oIHRyaSBzaWV1IG5naGllbSB0cm9uZy4xMSAtIFRvbmcgY3VjIElJIC0gVmkgYWkg bmVuIG5vaT8NCg0KVGh1IHR1b25nOiBUb25nIGN1YyBJSSAtIFZpIGFpIG5lbiBub2k/DQogDQpU b2kgY28gaG9uIDIxIHR1b2kgcXVhbiwgMTggdHVvaSBEYW5nLCBob24gMTAgbmFtIGxhbSB2aWVj IHRhaSBUb25nIGN1YyBJSSCWIEJvIHF1b2MgcGhvbmcsIGRhIHN1eSBnaWFtIG5naGllbSB0cm9u ZyBuaWVtIHRpbiB2YW8gbmhpZXUgY2FwIGxhbmggZGFvLCBjaGkgaHV5IG5odW5nIHZhbiB2aWV0 IGJhaSBuYXkgdmkgaGFpIGx5IGRvIGNoaW5oOg0KICANCjEvIERlIHRoYXkgaGV0IHRodWMgdHJh bmcgVG9uZyBjdWMgSUkgdmEgY2FuIG5ndXllbiBjdWEgbm8sIGNhbiBjYSBtb3QgcXVhIHRyaW5o IHRpbSBoaWV1IGtoYWNoIHF1YW4sIHNhdSByb25nIGN1YSBuaGlldSBjbyBxdWFuIGN1YSBxdWFu IGRvaSwgRGFuZywgTmhhIG51b2Mgc29uZyBjYWMgY28gcXVhbiBheSBraG9uZyB0aGUgaG9hbiB0 aGFuaCBuaGllbSB2dSBuZXUga2hvbmcgbGF5IGRhbiBsYW0gZ29jLCBraG9uZyBkdWEgdmFvIGRv bmcNCiBkYW8gY2FuIGJvLCBkYW5nIHZpZW4sIHF1YW4gY2h1bmcsIG5oYXQgbGEgc28gZGEgdmEg ZGFuZyBjb25nIHRhYyBvIFRvbmcgY3VjIElJLg0KIA0KIDIvIFRodWMgdHJhbmcgVG9uZyBjdWMg SUkgY2hvIHRoYXkgcXVhbiBkb2kgdGEsIERhbmcgdGEsIE5oYSBudW9jIHRhIGRhbmcgZ2FwIHBo YWkgaGllbSBob2Egdm8gY3VuZyB0byBsb24gbmdheSB0dSBiZW4gdHJvbmcsIG5nYXkgbyBiZW4g dHJlbjsgbGEgbmd1b2kgZGEgbmhpZXUgbGFuIHR1eWVuIHRoZSB0cnVvYyBRdWFuIGt5LCBEYW5n IGt5LCBRdW9jIGt5IHRoaSBwaGFpIHJhIHN1YyBnb3AgcGhhbiBnaXVwIFF1YW4gZG9pLCBnaXVw IERhbmcsIA0KZ2l1cCBOaGEgbnVvYyBjaG9uZyBsYWkgaGllbSBob2EgInR1IGRpZW4gYmllbiIg YXkgY2h1IGtob25nIGR1b2MgaGVuIG5oYXQsIGJ1b25nIHh1b2kuDQogDQogIk1vdCBjYXkgbGFt IGNoYW5nIG5lbiBub24gliBCYSBjYXkgY2h1bSBsYWkgbmVuIGhvbiBudWkgY2FvIi4gTW9uZyBz YW8gbmdvYWkgY2FjIHRyYW5nIHZpZXQgbmF5LCBjYWMgeSBraWVuIHNlIGNvIHRoZW0gbmhpZXUg dHJhbmcgdmlldCBraGFjLCBuaGlldSB5IGtpZW4ga2hhYyB0b2kgZHVvYyB2b2kgbmd1b2kgY28g dHJhY2ggbmhpZW0gdmEgZHVvYyBzdSBkdW5nIGR1bmcgZGFuLCBjbyBrZXQgcXVhIQ0KICANClRo b2kgZ2lhbiBnYW4gZGF5LCBuZ2F5IHRyb25nIFRvbmcgY3VjIElJIGNvIG5oaWV1IHkga2llbiBj aG8gcmFuZyBUb25nIGN1YyBJSSBkYW5nIG8gdmFvIHRpbmggdHJhbmcga2h1bmcgaG9hbmcgdHJh bSB0cm9uZyB2YSB0b2FuIGRpZW4gdmUgbHkgbHVhbiwgdHUgZHV5IG5naGllcCB2dSwgcGh1b25n IGNoYW0sIHBodW9uZyBwaGFwLCB0aHUgZG9hbiwgbmUgbmVwLCBjaGUgZG8gY29uZyB0YWMsIHRv IGNodWMgbHVjIGx1b25nLi4uIE1vdCBzbyB5IGtpZW4ga2hhbmcgZGluaCBvIFRvbmcgY3VjIElJ LCB2aWVjICJsdXUgbWFuaCBob2EiLCAibmd1IGhvYSIgRG9pIG5ndSBjYW4gYm8ga2hhIHRyaWV0 DQogZGUsIGtoaWVuIFRvbmcgY3VjIElJIGNoYW5nIG5odW5nIGtob25nIHh1bmcgbGEgdGFpIHRv LCBtYXQgc2FuZyBjdWEgcXVhbiBkb2ksIGN1YSBEYW5nIG1hIHhldCB0cmVuIG1vdCBzbyBraGlh IGNhbmggY29uIGNvIHZhaSB0cm8gbmh1IG1vdCBraG9pIHUgYWMgdGluaCwgdHJ1YyB0aWVwIGRl IGRvYSBzdSBvbiBkaW5oLCBkb2FuIGtldCwgbmhhdCB0cmkgdHJvbmcgcXVhbiBkb2ksIHRyb25n IERhbmcuIEJhbmcgdHJhaSBuZ2hpZW0gMTAgbmFtIG8gdmkgDQp0cmkgY29uZyB0YWMgeGFjIHRo dWMuIFRoZW8gdG9pIHRoaSBUb25nIGN1YyBJSSByb2kgdmFvIHRpbmggdHJhbmcgaGllbiBuYXkg bGEgY2h1IHlldSB2YSB0cnVvYyBoZXQgbGEgZG8gdHJvbmcgMTAtMTUgbmFtIHRybyBsYWkgZGF5 LCBuaHVuZyBrZSB5ZXUga2VtIGNhIHZlIHBoYW0gY2hhdCBsYW4gbmFuZyANCmx1YyBkYSBjYXUg a2V0IG5oYXUsIGNodWkgZHVvYyB2YW8sIGxlbyBkdW9jIGxlbiBuYW0gZHVvYyBoZXQgdmkgdHJp IGNodSB0cmksIGNodSBjaG90IGN1YSBUb25nIGN1YyBJSSB2YSBsb2kgZHVuZyB0aW5oIGNoYXQg aGV0IHN1YyBjaHV5ZW4gYmlldCBjdWEgdGluaCBiYW8gZGUgbXV1IGNhdSBsb2kgaWNoIHJpZW5n IGJhdCBjaGluaC4gVmkgbG9pIGljaCByaWVuZyBiYXQgY2hpbmggZG8gY2h1bmcgc2FuIHNhbmcg bGFtIHZpZWMgcGhpIG5naGlhLCBwaGkgDQpwaGFwLCBzYW4gc2FuZyBjaGEgZGFwIGxlbiBsb2kg aWNoIGN1YSBjYWNoIG1hbmcsIGN1YSBkYW4gdG9jLiBIaWVuIGNodW5nIHRybyB0aGFuaCB0aHUg dHJvbmcsIGNvbiBuZ3V5IGhpZW0gZ2FwIG1heSBsYW4gZ2lhYyBuZ29haS4gVm9pIGNodW5nLCBr aG9uZyB0aGUgcGhlIGJpbmggbWEgcGhhaSBxdWV0IHNhY2gsIGNhdCBibywgZGlldCB0cnUuDQog DQogVHUgY2FpICIgTUFNIEtFVCBUSU5IICINCiAgDQpDaGkgbW90IGtlIHhhdSBraG9uZyB0aGUg bGFtIHRlIGxpZXQsIGx1bmcgZG9hbiBoYXUgaGV0IHRvIGNodWMgRGFuZywgaGF1IGhldCBjbyBx dWFuIGNoaW5oIHF1eWVuIGN1YSBtb3QgbmdhbmggbG9uLCBjbyB0cnV5ZW4gdGhvbmcgbGF1IGRh aSB2YSBraGEgdmUgdmFuZy4gTW90IG1hbmcgbHVvaSBzYXUgcm9uZyBnb20gbmhpZXUga2UgeGF1 IGNhdSBrZXQgY2hhdCBjaGUgdm9pIG5oYXUgbW9pIGxhbSBkdW9jIHZpZWMgYXkuIE5odW5nIGRl IGNvIA0KbW90IG1hbmcgbHVvaSBuaHUgdmF5IHRoaSBsdWMgZGF1IHBoYWkgY28ga2UgbGFtICJN QU0gS0VUIFRJTkgiLiBPIFRvbmcgY3VjIElJLCBrZSBkbyBsYSBOZ3V5ZW4gY2hpIFZpbmguIE5n dXllbiBjaGkgVmluaCBjbyB4dWF0IHRoYW4gcmF0IHRvdCwgY28gdHUgY2FjaCB0b3Qgbmh1bmcg a2hpIGRpIGhvYyBsYWkga2hvbmcgcGhhaSBsYSB0cm8gbmdvYW4uIE5ndW9pIFZpZXQgZHV5IHRp bmgsIGNvIHZ1b3QgbWF0IGN1bmcgbmUgbXVpIHZheSBtYSANCk5ndXllbiBjaGkgVmluaCCWIGNv biBtb3QgbmhhIGxhbmggZGFvIGx1bmcgZGFuaCBjdWEgcXVhbiBkb2kgdGEsIERhbmcgdGEgliB2 YW4gYmkgZHVvaSBraG9pIFRydW9uZyBkYWkgaG9jIGt5IHRodWF0IHF1YW4gc3UgdmkgdmkgcGhh bSBreSBsdWF0LiBDYWMgdnUgdmllYyB2aSBwaGFtIGt5IA0KbHVhdCBjdWEgTmd1eWVuIGNoaSBW aW5oIGNvIG5oaWV1IG5ndW9pIGJpZXQgcm8gdmEgY29uIGR1b2Mga2UgbGFpIG1haSBzb25nIGhp bmggbmh1IGNoYW5nIGNvIGFuaCBodW9uZyBnaSB0b2kgc3UgdGhhbmcgdGllbiBjdWEgTmd1eWVu IGNoaSBWaW5oLCBraGFjIGhhbiB0cnVvbmcgaG9wIHBobyB0b25nIGN1YyB0cnVvbmcgVG9uZyBj dWMgZHUgbGljaCBOZ3V5ZW4gcXVvYyBLeS4NCiANClZlIGNoaW5oIHRyaSBjYWNoIG1hbmcgdmEg bmdoaWVwIHZ1IHRpbmggYmFvIGNhY2ggbWFuZywgTmd1eWVuIGNoaSBWaW5oIGtob25nIGdpb2kg c29uZyBuaG8gaG9hdCBuZ29uIG5lbiBkdW9jIG5oaWV1IG5ndW9pIGxhbSB0dW9uZyBsYSBnaW9p LiBDbyByYXQgbmhpZXUgY2FjaCBkZSB4YWMgbmhhbiBkaWV1IG5heTsgY2hvIE5ndXllbiBjaGkg VmluaCBsYW0gYmFpIGtpZW0gdHJhLCBkb2MgY2FjIG5naGkgcXV5ZXQsIGtlIGhvYWNoIGNvbmcg dGFjLCBjb25nIHRyaW5oLCBkZSB0YWkgbmdoaWVuIGN1dSBraG9hIGhvYywgbHVhbiBhbiwgbHVh biB2YW4gLi4uIG1hIE5ndXllbiBjaGkgVmluaCBsYSANCnRhYyBnaWEsIGRvbmcgdGFjIGdpYSwg Y2h1IGJpZW4sIGNodSBuaGllbTsgZG9jIGNhYyBiYW4gZ2hpIGxhaSBiYWkgbm9pIGN1YSBOZ3V5 ZW4gY2hpIFZpbmg7IGRhbmggZ2lhIG1vdCBjYWNoIGtoYWNoIHF1YW4sIGNoYXQgY2hlIGtldCBx dWEgdmEgaGlldSBxdWEgY29uZyB0YWMgY3VhIFRvbmcgY3VjIElJIHRyb25nIG5odW5nIG5hbSBk dW9pIHF1eWVuIE5ndXllbiBjaGkgVmluaC4uLiBOaGlldSBuYW0gcXVhLCBOZ3V5ZW4gY2hpIFZp bmggDQpkdXkgdHJpIGR1b2MgdmkgdGhlICJjaHUgdHJvLiIgbyBUb25nIGN1YyBJSSB2aSBjbyBz dSB2dW90IHRyb2kgdmUgeHVhdCB0aGFuLCBxdWFuIGhlLCB0dSBjaGF0IC4uLiB2YSBkYWMgYmll dCBsYSB2aSByYXQgZ2lvaSBraG9uZyBjaGUgY2FwIGR1b2ksIG8gYmUsIG11YSBjaHVvYyBjYXAg dHJlbiwgdGhhdSB0b20gcXV5ZW4gbHVjLg0KIA0KIFZvaSBjYXAgZHVvaSwgTmd1eWVuIGNoaSBW aW5oIGtob25nIGNoZSBiYW5nIHF1eWVuIGxvaSBuaHUgY2hvIGNodWMgcXV5ZW4sIGJvbmcgbG9j LCBuaGFuIG5ndW9pIHRoYW4gdmFvIGxhbSB2aWVjIHRyb25nIG5nYW5oIGtldCBob3Agdm9pIGRl IGRvYSwgdHJ1eSBidWMgKG5ldSBjYW4pLi4uIENhYyBwaGFuIHNhdSBzZSB0cmluaCBiYXkgcm8g aG9uLCBjdSB0aGUgaG9uIHZlIGRpZXUgbmF5Lg0KICANClZvaSBjYXAgdHJlbiAoYmFvIGdvbSBj YXAgdHJlbiB0cnVjIHRpZXAsIGNhcCB0cmVuIGtob25nIHRydWMgdGllcCB2YSBjbyBxdWFuIGNo dWMgbmFuZyBjdWEgY2FwIHRyZW4pLCBOZ3V5ZW4gY2hpIFZpbmggdGh1b25nIGR1bmcgY2FjIHRo dSBkb2FuIGJhYyBjYXUgdHUgcXVhbiBoZSBjdSBzYW5nIHF1YW4gaGUgbW9pLCB0aGVtIHRoYXQs IHN1IGR1bmcgdGluIHR1YywgdGFpIGxpZXUgZGUgaHUgZG9hIG5odW5nIG5ndXkgY28gZG9pIHZv aSBub2kgYm8sIA0Kbm9pIGRpYSB2YSBkb2kgdm9pIGJhbiB0aGFuIGNhcCB0cmVuLCBkdW5nIGxv aSBpY2ggKGNodSB5ZXUgbGEgbG9pIGljaCBjYSBuaGFuLCBnaWEgZGluaCkgZGUgdGllcCBjYW4s IG11YSBjaHVvYywgZHVuZyB0eSB2ZXQgZGUgZGUgbmV0LCBraG9uZyBjaGUgLi4uIFZpIGR1Og0K ICANCjEtIFRvbmcgY3VjIElJIGNoaSBsYSBkb24gdmkgdHJ1YyB0aHVvYyBCbyBxdW9jIHBob25n LCBEYW5nIHV5IFRvbmcgY3VjIElJIGNoaSBsYSBtb3QgZGFuZyB1eSB0cnVjIHRodW9jIERhbmcg dXkgcXVhbiBzdSB0cnVuZyB1b25nIHZheSBtYSBkYXUgbmFtIDIwMDgsIGxhbmggZGFvLCBjaGkg aHV5IFRvbmcgY3VjIElJIGRhIGxhbSBtb3QgdmllYyBjaGFjIGNodWEgaGUgY28gdGllbiBsZSB2 b2kgY2FjIGJvLCBuZ2FuaCx0aW5oLCB0aGFuaCBsYSBzYXUgSG9pIG5naGkgdHJ1bmcgdW9uZywg bW9pIGNhYyB1eSB2aWVuIHRydW5nIHVvbmcgdG9pIGR1IHRpZWMgY2hpZXUgZGFpDQogDQoyLSBU aG9pIGdpYW4gcXVhLCBUb25nIGN1YyBJSSBkYSBibyBxdWEgdGlldSBjaHVhbiwgdGh1IGh1dCwg dGllcCBuaGFuIGNvbiBjaGF1IHJhdCBuaGlldSBjYW4gYm8gY2FwIGNhbyBjdWEgcXVhbiBkb2ks IERhbmcsIE5oYSBudW9jIG5odSBMZSBkdWMgQW5oLCBMZSB2YW4gRHVuZywgUGh1bmcga2hhYyBE YW5nLCBOZ3V5ZW4gaHV5IEhpZXUsIFZ1IFR1eWVuIEhvYW5nLCBCdWkgdmFuIEh1YW4sIE5vbmcg ZHVjIE1hbmgsIFBoYW0gaG9uZyBMb2ksIENhbyB0aWVuIFBoaWVtLCBOZ3V5ZW4gSG9uZyBRdWFu LCBQaGFtIHZhbiBUcmEsIERvIHF1YW5nIFRydW5nIC4uLi4gVmFvIA0KZGFvIHRhbyBvIEhvYyB2 aWVuIGtob2EgaG9jIHF1YW4gc3UsIGxhbSB2aWVjIHRyb25nIFRvbmcgY3VjIElJICh2aWVjIG1h IHRob2kgdHJ1b2MgaGF1IG5odSBraG9uZyBjbyksIGJpZW4gSG9jIHZpZW4ga2hvYSBob2MgdGhh bmggdHUgZGllbSB4YXUgKG5hbSAyMDA0LCBtb3QgaG9jIHZpZW4gbGEgY2hhdSBydW90IEJvIHRy dW9uZyBCbyBub2kgdnUgRG8gcXVhbmcgVHJ1bmcgZGEgdHUgdHUgdmkgdmF5IG5hbmcgbGFpIGN1 IG1vdCBob2MgdmllbiBraGFjIGxhIGNvbiBjaGluaCB1eSBIb2MgdmllbiBreSB0aHVhdCBxdWFu IHN1IEhvYW5nIGtoYW5oIEh1bmcsIGtob25nIHRoZSB0cmEpLg0KIA0KMS8gR2FuIGRheSBOZ3V5 ZW4gY2hpIFZpbmggZ2lhbyBjaG8gbW90IGNvIHF1YW4gdHJ1YyB0aHVvYyB0b25nIGN1YyB0dW9u ZyBUb25nIGN1YyBJSSBuaGllbSB2dSB0byBjaHVjIHRodSB0aGFwIHRob25nIHRpbiwgbGFwIGhv IHNvIHZlIG5oaWV1IGNhbiBibyBjYXAgY2FvIG5nb2FpIFRvbmcgY3VjIElJIHRyb25nIGtoaSBU b25nIGN1YyBJSSBraG9uZyBoZSBjbyBjaHVjIG5hbmcsIG5oaWVtIHZ1IGJhbyB2ZSBhbiBuaW5o LCBiYW8gdmUgY2hpbmggdHJpIA0Kbm9pIGJvLCB0aGFuaCB0cmEsIGtpZW0gdHJhIERhbmcgZG9p IHZvaSBjYWMgdG8gY2h1YywgY2EgbmhhbiBiZW4gbmdvYWkgVG9uZyBjdWMgSUkuDQogDQoyLyBD dW9pIHRoYW5nIDEwIJYgMjAwOCwgTmd1eWVuIGNoaSBWaW5oIGxheSBjbyBuZ2F5IHRoYW5oIGxh cCBUb25nIGN1YyBJSSBkZSBtb2kgdHJ1bmcgdHVvbmcsIHR1IGxlbmggUXVhbiBraHUgSUkgRG8g YmEgVHkgdmEgY2FjIGNhbiBibyBsYW5oIGRhbywgY2hpIGh1eSBraGFjIGN1YSBRdWFuIGtodSBJ SSB0b2kgZHUgdGllYyB0YWkgdHJ1IHNvIFRvbmcgY3VjIElJOyBtb3Qgc28gY2FuIGJvIFRvbmcg Y3VjIElJIGtoYW5nIGRpbmggdmllYyBsYW0gbmF5IGxhIGRlIGRvbiB0cnVvYyBraGEgbmFuZyB0 cnVuZyB0dW9uZyBEbyBiYSBUeSBsZW4gbGFtIFRvbmcgdGhhbSBtdXUgdHJ1b25nIA0KLi4uLi4u IEtob25nIHBoYWkgbmdhdSBuaGllbiBtYSBUb25nIGN1YyBJSSBjbyBuaGlldSB5IGtpZW4gY2hv IHJhbmcgbmh1bmcgbmFtIHF1YSwgTmd1eWVuIGNoaSBWaW5oIGRhICJxdWEgbWF0IiwgZGEgImx1 YS4iIGR1b2MgaGF1IGhldCBsYW5oIGRhbyBjYXAgY2FvIGN1YSBRdWFuIGRvaSwgRGFuZywgTmhh IG51b2MsIHRoYW0gY2hpICJibyB0dWkuIiBEdW9jIGNhYyB2aSBMZSBkdWMgQW5oLCBOb25nIGR1 YyBNYW5oLCBQaGFtIHZhbiBUcmEsIExlIHZhbiBEdW5nLCBOZ3V5ZW4gaHV5IEhpZXUsIFBoYW0g dmFuIExvbmcgLi4uIE1vdCBzbyBuZ3VvaSBjb24gbyBUb25nIGN1YyANCklJLCBOZ3V5ZW4gY2hp IFZpbmggZGEgbW90IHRheSBjaGUgbGFwIGNhIGJhdSB0cm9pLCBraGllbiBuZ3VvaSB0YSBraG9u ZyBjb24gbmhpbiB0aGF5IGFuaCBzYW5nIGRhbyBkdWMsIGFuaCBzYW5nIHZhbiBtaW5oIGN1YSBE YW5nLCBjdWEgQmFjIEhvLg0KIA0KTmd1eWVuIGNoaSBWaW5oIGRhYyBiaWV0IHRodSB0b20gaGV0 IHF1eWVuIGx1YyB2ZSB0YXkgbWluaC4gVmllYyBOZ3V5ZW4gY2hpIFZpbmggY28gZ2l1IGNhIGhh aSB2aSB0cmkgVG9uZyBjdWMgdHJ1b25nIHZhIEJpIHRodSBEYW5nIHV5IHRvbmcgY3VjLCBraGll biBUb25nIGN1YyBJSSB0cm8gdGhhbmggZGF1IG1vaSBjdW9pIGN1bmcgdHJ1YyB0aHVvYyBCbyBR dW9jIHBob25nIHRodWMgaGllbiBjaGUgZG8gY2hpbmggdXksIGNoaW5oIHRyaSB2aWVuIGdhbiB2 b2kgY2hlIGRvIG1vdCBuZ3VvaSBjaGkgaHV5IHRoZW8gcXV5IGRpbmggKHRvaSB0aGFuZyA5LTIw MDggbW9pIGNvIGNoaW5oIHV5KSwgdmllYyANCjIwMDYgQm8gdGhhbSBtdXUgVG9uZyBjdWMgSUkg ZHVvYyB0aGFuaCBsYXAgc29uZyB0b2kgbmF5IHRhdCBjYSBjYWMgY28gcXVhbiB0aGFtIG11dSAt IGNoaSBkYW8gdmUgbmdoaWVwIHZ1IHRpbmggYmFvIChnb20gQ3VjIDcxIHZhIGNhYyBwaG9uZyA3 Miw3MyBCLEMsRSkgdmFuIHRydWMgdGh1b2MgTmd1eWVuIGNoaSBWaW5oLCBuYW0gbmdvYWkgQm8g dGhhbSBtdXUsIHZpZWMgTmd1eWVuIGNoaSBWaW5oIHR1IHRpZW4gc3VhIHRlbiBnb2kgIkJhbiBj aGkgZGFvIGRpZXAgYmFvIHRvbmcgY3VjIiAobWEgTmd1eWVuIGNoaSBWaW5oIGxhIHRydW9uZyBi YW4pLCB2aWVjIE5ndXllbiBjaGkgDQpWaW5oIHRydWMgdGllcCBuYW0gdGF0IGNhIGNhYyBtYXQg aG9hdCBkb25nLCBjb25nIHRhYyBob2F0IGRvbmcgcXVhbiB0cm9uZyBuaGF0IGN1YSBUb25nIGN1 YyBJSSBtYSBraG9uZyBnaWFvIGNobyBjYWMgY2FwIHBobyBjaG8gdGhheSBybyBkaWV1IGRvLiBI ZSBxdWEgbWEgbGF1IG5heSBsYW5oIGRhbyB0YXAgdGhlIG8gVG9uZyBjdWMgSUkgY2hpIGNvbiBs YSBoaW5oIHRodWMsICJCYW4gY2hpIGRhbyBkaWVwIGJhbyB0b25nIGN1Yy4iIGRhIHRybyANCnRo YW5oIG1vdCBuaG9tIHNpZXUgcXV5ZW4gbHVjLCBkdW5nIHRyZW4gRGFuZyB1eSwgVGh1b25nIHZ1 IGRhbmcgdXkgdG9uZyBjdWMgdmEgdHJlbiB0aHVjIHRlLCBjYSBUb25nIGN1YyBJSSBsYW4gY2Fj IGRpZXAgYmFvIGN1YSBUb25nIGN1YyBJSSBkZXUga2hvbmcgY28gdGhhbSBtdXUgdHJ1b25nIGR1 bmcgbmh1IGNodWMgdHJhY2gsIG5oaWVtIHZ1IGN1YSBjaHVjIGRhbmggbmF5Lg0KIA0KTkhVTkcg TUFORyBMVU9JIENVQSBDQUkgWEFVIERBIEhJTkggVEhBTkggVkEgTEFZIExBTiBTQVUgUk9ORw0K ICANCk1hIHRhbSBtYSwgbmd1dSB0YW0gbmd1dS4gTyBUb25nIGN1YyBJSSwgdHUgY2FpICJtYW0g a2V0IHRpbmgiIGxhIE5ndXllbiBjaGkgVmluaCwgbmh1bmcgbWFuZyBsdW9pIGN1YSBjYWkgeGF1 IGRhIGhpbmggdGhhbmggdmEgbGF5IGxhbiBzYXUgcm9uZyB0aGFuaCB0YW5nIHRhbmcgbG9wIGxv cC4NCiAgDQpMb3AgdGh1IG5oYXQgY2h1IHlldSBnb20gbmh1bmcgImNoaWVuIGh1dSIsICJ0aWV1 IGRlIiBUaG9pIGRpIGhvYyBjdWEgTmd1eWVuIGNoaSBWaW5oLCBub2kgYmF0IGxhOiBQaGFtIG5n b2MgSHVuZyAodGhpZXUgdHVvbmcsIHV5IHZpZW4gdGh1b25nIHZ1IGRhbmcgdXksIHBobyB0b25n IGN1YyB0cnVvbmcpLCBOZ3V5ZW4gbWluaCBUYW4gKGRhaSB0YSwgcGhvIHRvbmcgY3VjIHRydW9u ZyksIFRyYW4gdmlldCBUaGFuZyAoZGFpIHRhLCBkYW5nIHV5IHZpZW4gcGhvIGNoaW5oIHV5IFRv bmcgY3VjKSwgUGhhbiBhbmggVmlldCAoZGFpIHRhLCBkYW5nIHV5IHZpZW4gVG9uZyBjdWMsIGN1 YyB0cnVvbmcgDQpjdWMgMTIpLCBOZ3V5ZW4gYW5oIER1bmcgKGRhaSB0YSwgY2h1IG5oaWVtIGNo aW5oIHRyaSB0b25nIGN1YyksIFRyYW4gcXVvYyBNaW5oIChkYWkgdGEsIGNoaW5oIHV5IGN1YyAx NiwgY28gZW0gcnVvdCBsYSBlbSBjb3QgY2hlbyBjdWEgTmd1eWVuIGNoaSBWaW5oKSwgVnUgY29u ZyBIb2FjaCAoZGFpIHRhLCBwaG8gY3VjIHRydW9uZyBjdWMgMTYgY28gYW5oIHJ1b3QgbGEgYW5o IHJlIE5ndXllbiBjaGkgVmluaCksIERvIGFuaCBUdWFuIChkYWkgdGEsIHBobyBjaGFuaCB2YW4g cGhvbmcgdG9uZyBjdWMpIC4uLiBMb3AgdGh1IGhhaSBnb20gbmh1bmcga2UgTmd1eWVuIGNoaSBW aW5oIHRodSBuYXAgDQpraGkgYmF0IGRhdSBjbyB2aSB0cmkgY2h1IHRyaSwgY2h1IGNodSBjaG90 IHRyb25nIFRvbmcgY3VjIElJLCBub2kgYmF0IGxhOiBUcmFuIG5hbSBQaGkgKHRydW5nIHR1b25n LCBuZ3V5ZW4gcGhvIGJpIHRodSBEYW5nIHV5LCBwaG8gVG9uZyBjdWMgdHJ1b25nIHZlIGNoaW5o IHRyaSksIERhbmcgdHJpIER1bmcgKGRhaSB0YSwgcGhvIGdpYW0gZG9jIEhvYyB2aWVuIGtob2Eg aG9jIHF1YW4gc3UsIGVtIHJ1b3Qgdm8gTmd1eWVuIGNoaSBWaW5oKSwgDQpQaGFuIHN5IE1pbmgg KGRhaSB0YSwgcGhvIGN1YyB0cnVvbmcgY3VjIDE2KSwgRGFuZyB2YW4gRG9uZyAodGh1b25nIHRh LCBwaG8gY2hpIGh1eSB0cnVvbmcgdHJ1bmcgdGFtIDcwMSksIE5ndXllbiB0cm9uZyBIYWkgKGRh aSB0YSx0cnVvbmcga2hvYSBEaWVwIGJhbyBjaGllbiBsdW9jIGJhdCANCmhvcCBwaGFwLSBIb2Mg dmllbiBraG9hIGhvYyBxdWFuIHN1KSwgTmd1eWVuIHF1YW5nIEhhaSAodHJ1bmcgdGEsIHBobyBj dWMgdHJ1b25nIGN1YyAxMiwgZW0gaG8gdm8gTmd1eWVuIGNoaSBWaW5oKSwgTmd1eWVuIHRpZW4g QmFjIChkYWkgdGEsIHRydW9uZyBwaG9uZyBDKSwgUGhhbiBoYWkgUXVhbiAodGhpZXUgdHVvbmcs IHZpZW4gdHJ1b25nIFZpZW4gNzApLCBUbyB4dWFuIEJhbmcgKGRhaSB0YSwgdHJ1b25nIHBob25n IEIpLCBCdWkgeHVhbiBLaGllbiAoZGFpIHRhLCBjaGkgaHV5IHRydW9uZyBUcnVuZyB0YW0gNzAx KSwgQnVpIHh1YW4gS2hhbmcgKGRhaSB0YSwgY3VjIHRydW9uZyANCkN1YyA3MSksIER1b25nIHZh biBUdW9jICh0aHVvbmcgdGEsIHRydW9uZyBwaG9uZyBCYW8gdmUgYW4gbmluaCCWIEN1YyBjaGlu aCB0cmkpLCBEbyBob25nIEFuaCAoZGFpIHRhLCB0cnVvbmcgcGhvbmcgUXVhbiBodWFuIJYgbmhh IHRydW9uZyB0aHVvYyBCbyB0aGFtIG11dSksIEhhIG5nb2MgDQpRdXluaCAoZGFpIHRhLCB2aWVu IHRydW9uZyBWaWVuIDUwMSksIFBoYW4gdmFuIFZpZXQgKGRhaSB0YSwgY3VjIHRydW9uZyBDdWMg MTEpLCBOZ3V5ZW4geHVhbiBMb25nIChkYWkgdGEsIHBobyBjaHUgbmhpZW0gY2hpbmggdHJpIFRv bmcgY3VjKSwgVHJhbiBob25nIFRoYW5oIChkYWkgdGEsIGN1YyB0cnVvbmcgQ3VjIGhhdSBjYW4p LCBEbyBkb25nIFBodSAoZGFpIHRhLCB0cnVvbmcgcGhvbmcgVGFpIGNoaW5oKSAuLi4uIFZpIG5o aWV1IGtlIHRyb25nIA0Kc28gdHJlbiB2b24gbGEgdGh1b2MgY2FwIGN1YSBOZ3V5ZW4gY2hpIFZp bmggaG9pIG8gQ29uZyB0eSBUT1NFQ08gKG1vdCB0byBjaHVjIGJpbmggcGhvbmcga2luaCB0ZSBj dWEgVG9uZyBjdWMgSUkpIG5lbiBuaGlldSBuZ3VvaSB2YW4gZ29pIFRvbmcgY3VjIElJIGxhICJU b25nIGN1YyBUT1NFQ08uIi4NCiANCiBHYXAgbW9pIHRydW9uZyB0aHVhbiBsb2ksIHRlIGJhbyB1 bmcgdGh1IHR1IGxheSBsYW4gcmF0IG5oYW5oLCBraGllbiBraG9pIHUgbmdheSBjYW5nIHRvIHZh IGFjIHRpbmguIFR1IGxvcCB0aHUgbmhhdCwgbG9wIHRodSBoYWkgZGEgc2FuIHNpbmggcmEgbmhp ZXUgbG9wIG51YSwga2V0IHF1YSBvIFRvbmcgY3VjIElJIHRvbiB0YWkgaGFuZyBsb2F0IG1hbmcg bHVvaSBjbyBxdXkgbW8sIHBoYW0gdmksIGxpbmggdnVjLCBtdWMgZG8gYW5oIGh1b25nIGtoYWMg DQpuaGF1IHNvbmcgZGV1IHRoZW8gY2hpZXUgaHVvbmcgeGF1LCBjaHVuZyBtYWMgc3VjIHBoYXQg dGFjLCBkYSBsYW0gdGUgbGlldCwgbHVuZyBkb2FuIGhhdSBoZXQgdG8gY2h1YyBEYW5nLCBoYXUg aGV0IGNvIHF1YW4gY2hpbmggcXV5ZW4gdHJvbmcgeWV1IGN1YSBUb25nIGN1YyBJSS4gQmFvIHRy dW0gbGVuIHRhdCBjYSBjaHVuZyB2YW4gbGEgTmd1eWVuIGNoaSBWaW5oLg0KIA0KIE5odW5nIGtl IHRyb25nIGxvcCBheSwgY2FjIG1hbmcgbHVvaSBheSBkYWMgYmlldCBsYSBuaHVuZyBrZSBnaXUg dmkgdHJpIHRyb25nIHlldSBjbyBoYWkgZGFjIGRpZW0gY2h1bmcuDQogIA0KMS0gVGh1IG5oYXQg dmUgbmFuZyBsdWMuIENodW5nIHZvbiBjaGkgbGEgaG9jIHNpbmgsIHNpbmggdmllbiwgaG9jIHZp ZW4sIGNhbiBibywgc3kgcXVhbiAuLi4gYmluaCB0aHVvbmcsIGtob25nIHRoZSBoaWVuIGR1b2Mg c3Ugbm9pIHRyb2kgc28gdm9pIGJhbiBiZSwgZG9uZyBuZ2hpZXAsIGtob25nIHF1YSBkYW8gdGFv IGNoaW5oIHF1eSwgZGFpIGhhbiwgdGFwIHRydW5nIHZlIGNoaW5oIHRyaSBjYWNoIG1hbmcgdmEg bmdoaWVwIHZ1IHRpbmggYmFvIGNhY2ggDQptYW5nLCBraG9uZyB0aGF0IHN1IGtpbmggcXVhIGhv YXQgZG9uZyBkYXUgdHJhbmggY2FjaCBtYW5nLCBrZSBjYSB0cmVuIGxpbmggdnVjIHRpbmggDQpi YW8gc29uZyB2YW8gVG9uZyBjdWMgSUksIGRhdSBxdWFuIGR1b2kgdHJ1b25nIE5ndXllbiBjaGkg VmluaCB0aGkgbGFwIHR1YyB0aGFuZyB0aWVuIHJhdCBuaGFuaC4gVmkgZHU6IFBoYW0gbmdvYyBI dW5nIHZvbiBsYSB0cm8gbHkgZHVvaSBtdWMgdHJ1bmcgYmluaCBvIFZpZW4gY29uZyBuZ2hlIHF1 YW4gc3Ugbmh1bmcgc2FuZyBUb25nIGN1YyBJSSB0aGkgdHUgdGhpZXUgdGEgbGVuIHRydW5nIHRh LCB0cnVuZyB0YSBsZW4gdGh1b25nIHRhLCB0aHVvbmcgDQp0YSBsZW4gZGFpIHRhLCBkYWkgdGEg bGVuIHRoaWV1IHR1b25nIGRldSBjaGkgbWF0IDIgbmFtICh0cm9uZyBraGkgbmllbiBoYW4gY3Vh IG1vaSBjYXAgdGEgbGEgNCBuYW0pLCBjaHVhIGRheSAxMCBuYW0gZGEgbmhheSB0dSB2aSB0cmkg dHJvIGx5IGxlbiBwaG8gdG9uZyBjdWMgdHJ1b25nLCB1eSB2aWVuIHRodW9uZyB2dSBEYW5nIHV5 LCB0aGFuaCB2aWVuICJCYW4gY2hpIGRhbyBkaWVwIGJhby4iIGN1YSBUb25nIGN1Yy4NCiANCjIt IERhbmcgdHJpIER1bmcgdm9uIGxhIGhvYyBzaW5oIGNoYW0gdGllbiwgaG9jIGtlbSwgdGhpIHRy dW90IGRhaSBob2MgcGhhaSBkaSBsYW0gY29uZyBuaGFuIGxhbyBkb25nIHh1YXQga2hhdSBvIERv bmcgQXUgbmh1bmcgdmFvIFRvbmcgY3VjIElJIGRhIGxpZW4gdHVjIGR1b2MgdGhhbmcgcXVhbiAN CmhhbSB0cnVvYyBuaWVuIGhhbiwgY2h1YSBkYXkgMTAgbmFtIGRhIHR1IHZpIHRyaSB0cm8gbHkg bGVuIGRlbiBjdWMgdHJ1b25nIEN1YyAxNiwgbW9pIGRheSBkdW9jIGJvIG5oaWVtIHBobyBnaWFt IGRvYyBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1Lg0KIA0KMyCWIE5ndXllbiBtaW5oIFRhbiB2 b24gbGEgY2FuIGJvIGt5IHRodWF0IGJpbmggdGh1b25nIG8gbW90IG5oYSBtYXkgc3VhIGNodWEg eGUgdGFuZyCWIHRoaWV0IGdpYXAgbmh1bmcgc2FuZyBUb25nIGN1YyBJSSBkYSB0aGFuZyB0aWVu IG5oYW5oLCBjdW9pIG5hbSAyMDA3IGR1b2MgZGUgYmF0IA0KdHUgdHJ1b25nIHBob25nIDczIGxl biBwaG8gdG9uZyBjdWMgdHJ1b25nIHR1eSBraG9uZyBwaGFpIGxhIGRhbmcgdXkgdmllbiBjdWEg VG9uZyBjdWMuDQogDQo0IJYgVHJhbiB2aWV0IFRoYW5nLCBUcmFuIHF1b2MgTWluaCwgTmd1eWVu IHRpZW4gQmFjLCBOZ3V5ZW4gcXVhbmcgRHVuZywgTmd1eWVuIHF1YW5nIEhhaSwgVnUgY29uZyBI b2FjaCwgQnVpIHh1YW4gS2hpZW4sIFBoYW4gYW5oIFZpZXQsIER1b25nIHZhbiBUdW9jIC4uLiBj dW5nIA0KZHVvYyB0aGFuZyBxdWFuIGhhbSB0cnVvYyBuaWVuIGhhbiBtb3QgdmFpIGxhbi4NCiAN CkNoYWMgY2hhbiByYW5nIHRyb25nIGxpY2ggc3UgcXVhbiBkb2kgbmhhbiBkYW4gVmlldCBOYW0g NTAgbmFtIHRybyBsYWkgZGF5IGNodWEgY28gYWkgbGVuIGNhcCwgbGVuIGNodWMgbmhhbmggbmh1 IE5ndXllbiBjaGkgVmluaCwgUGhhbSBuZ29jIEh1bmcsIERhbmcgdHJpIER1bmcsIGtlIGNhIGNh YyBhbmggaHVuZyBkYW5oIGRvbmcgZGVvIGJhYywgbGFwIG5oaWV1IGNoaWVuIGNvbmcgbG9uLGNh YyBibyB0cnVvbmcsIHRodSB0cnVvbmcsIA0KdG9uZyB0aGFtIG11dSB0cnVvbmcsIGNodSBuaGll bSBUb25nIGN1YyBjaGluaCB0cmkgLi4uIFZheSBtYSBOZ3V5ZW4gY2hpIFZpbmgsIFBoYW0gbmdv YyBIdW5nLCBEYW5nIHRyaSBEdW5nLCBOZ3V5ZW4gbWluaCBUYW4sIFRyYW4gdmlldCBUaGFuZywg VHJhbiBxdW9jIE1pbmgsIE5ndXllbiB0aWVuIEJhYywgTmd1eWVuIHF1YW5nIER1bmcsIFZ1IGNv bmcgSG9hY2gsIEJ1aSB4dWFuIEtoaWVuLCBOZ3V5ZW4gcXVhbmcgDQpIYWksIE5ndXllbiB0cm9u ZyBIYWksIERhbmcgdmFuIERvbmcgLi4uIGxhIG5odW5nIFBodSBEb25nIFRoaWVuIFZ1b25nIHRy b25nIHRpbmggYmFvLCBuaHVuZyB0aGllbiB0YWkgdGluaCBiYW8gYmFtIHNpbmggaGF5IHRpbmgg YmFvIGxhIGxpbmggdnVjIHF1YSBkZSBkYW5nLCBraG9uZyBjYW4gDQpob2MgdGFwLCByZW4gbHV5 ZW4gbmhpZXUsIGtob25nIGNhbiBuYW5nIGtoaWV1IHZhbiBjbyB0aGUgbGFtIHRvdD8NCiANCkNv IG5oaWV1IGtlIHR1bmcgYm9jIGxvIGx1dSBtYW5oIHZlIGtpbmggdGUsIGNoaW5oIHRyaSwgc2lu aCBob2F0LCB0dW5nIGtob25nIGhvYW4gdGhhbmggbmhpZW0gdnUgdGhlIGhpZW4gc3UgeWV1IGtl bSB2ZSBuYW5nIGx1YyBob2FjIHZpIHBoYW0gdGlldSBjaHVhbiBjdWEgZGFuZyB2aWVuLCBjYXAg dXkgdmllbiBzb25nIHZhbiBkdW9jIGJhbyBjaGUsIHRyb25nIGR1bmcuIFZpIGR1Og0KIA0KMSCW IE5ndXllbiB0cnVuZyBIb2EgdHVuZyBiaSBrZXQgYW4gaGluaCBzdSBzb25nIHZhbiBkdW9jIHRo dSBuaGFuIHZhbyBUb25nIGN1YyBJSSwgTmFtIDIwMDMgZHVvYyBibyBuaGllbSBwaG8gdHJ1b25n IHBob25nIEEga2hpIG1vaSBsYSBkYWkgdXksIGNodWEgcXVhIGRhbyB0YW8gZGF5IA0KZHUgdmUg ZGllcCBiYW8gKHRyb25nIGtoaSBwaG9uZyBBIGxhIHBob25nIHRoYW0gbXV1IGRpZXAgYmFvIHRy b25nIHlldSBuaGF0IGN1YSB0b25nIGN1YywgdHJ1YyB0aHVvYyB0b25nIGN1YyB0cnVvbmcgdmEg dG9uZyBjdWMgY29uIHJhdCBuaGlldSBjYW4gYm8gY2FwIHRodW9uZyB0YSwgZGFpIHRhIGNoaSBs YSB0cm8gbHkpLg0KIA0KMiCWIE5ndXllbiB0cm9uZyBIYWkgbmFtIDIwMDEgbGEgcGhvIHRydW9u ZyBwaG9uZyBvIEN1YyAxNiwgbmdoZSB0aW4gbyBUcnVvbmcgZGFpIGhvYyBuZ29haSB0aHVvbmcg SGEgTm9pIHh1YXQgaGllbiB0byByb2kgbGllbiBuZ29uZyBuZ2hlbmggZGkgeGUgYmllbiB4YW5o IHZhbyB0cnVvbmcsIGxheSB0dSBjYWNoIGNhbiBibyB0aW5oIGJhbyBkZSBkYW0gZG9hIGhpZXUg dHJ1b25nIE5ndXllbiB0aGkgRG9hbiwgZ2F5IHhvbiB4YW8gZHUgDQpsdWFuLCBsYWkgY28gbW90 IGNvIHNvIG1hdCBsYW0gdGluaCBiYW8gbm9pIGJvIGJpIGx1YyBsdW9uZyBhbiBuaW5oIGN1YSB0 YSBiYXQgZ2l1IHNvbmcgbmFtIDIwMDIgdmFuIGR1b2MgZHVvYyBkZSBiYXQgdHJ1b25nIHBob25n LCBuYW0gMjAwMyBsZW4gcGhvIGN1YyB0cnVvbmcsIG5hbSAyMDA4IGNodXllbiBzYW5nIGxhbSB0 cnVvbmcga2hvYSBkaWVwIGJhbyBjaGllbiBsdW9jIGJhdCBob3AgcGhhcCCWIEhvYyB2aWVuIGto b2EgaG9jIA0KcXVhbiBzdSB0dXkgdHJpbmggZG8gbW9pIGNoaSBsYSBjdSBuaGFuIGRpZXAgYmFv Ow0KIA0KMyCWIFBoYW4gc2kgTWluaCBsYSBwaG8gY3VjIHRydW9uZyBDdWMgMTEsIGtpZW0gdHJ1 b25nIHBob25nIDEwIChkYW0gdHJhY2ggZGlhIGJhbiBUYXkgTmd1eWVuKSBjdWEgQ3VjIDExLCBr aG9uZyBob2FuIHRoYW5oIG5oaWVtIHZ1LCBkZSBjYXAgdHJlbiBoYWkgbGFuIGJhdCBuZ28gdHJ1 b2MgY2FjIHZ1IGRvbmcgbG9hbiBxdXkgbW8gbG9uIG8gVGF5IE5ndXllbiwgYmkga3kgbHVhdCBz b25nIGxhaSBkdW9jIGRpZXUgcmEgSGEgTm9pIGxhbSANCnBobyBjaGkgaHV5IHRydW9uZyBUcnVu ZyB0YW0gNzAxICh0dW9uZyBkdW9uZyBwaG8gcGhvIGN1YyB0cnVvbmcpLCBzYXUgZG8gdmFvIGxh aSBDdWMgMTEgbGFtIHBobyBjdWMgdHJ1b25nLCBtb2kgZGF5IHF1YXkgcmEgSGEgTm9pIGxhbSBw aG8gY3VjIHRydW9uZyBDdWMgMTY7DQogDQo0IJYgVHJhbiBxdW9jIE1pbmggbmFtIDIwMDUgY28g dm8gbGFtIG8gbW90IGRvYW5oIG5naGllcCBOaGEgbnVvYyBwaGFtIHRvaSB0aGFtIG8sIGRhIGJp IGNvbmcgYW4gdGEgYmF0IGdpdSBzb25nIHZhbiBkdW9jIGR1YSB2YW8gZGFuaCBzYWNoIGF1IGN1 IERhbmcgdXkgY3VjIDE2LCBzYXUgZG8gDQp0cnVuZyBjdSB2YSB0cm8gdGhhbmggdXkgdmllbiB0 aHVvbmcgdnUsIGN1b2kgbmFtIDIwMDggZHVvYyBibyBuaGllbSBjaGluaCB1eSAuLi4NCiANCiAN ClRodSBoYWkgbGEgdmUgcGhhbSBjaGF0LiBDaHVuZyBkYSB2YSBkYW5nIGJvYyBsbyBybyByYW5n LCBuaGlldSBraGkgcmF0IGNvbmcgbmhpZW4sIHRyYW5nIHRyb24sIHRhYyBwaG9uZyB0dSB0dW9u ZyBjYSBuaGFuIGNodSBuZ2hpYSwgc3UgaGFtIGRhbmgsIGhhbSBsb2kgZGVuIG11YyBiZW5oIGhv YW4sIGxvaSBzb25nIGh1b25nIGxhYywgeGEgaG9hLCBsYW5nIHBoaSBnaGUgZ29tLCBraG9uZyBo ZSBtYW5nIGJhbiBjaGF0IGN1YSBnaWFpIGNhcCANCiBjb25nIG5oYW4sIGhvYW4gdG9hbiB0cmFp IG5ndW9jIGNhYyB0aWV1IGNodWFuIGN1YSBkYW8gZHVjIGNhY2ggbWFuZywga2hvbmcgeHVuZyBk YW5nIGxhIG5ndW9pIGxhbyBkb25nLCBuZ3VvaSBjb25nIGRhbiBsdW9uZyB0aGllbiBjaHUgY2h1 YSBub2kgZ2kgZGVuIG5ndW9pIGRhbmcgdmllbiBjb25nIHNhbiwgbmd1b2kgcXVhbiBuaGFuIGNh Y2ggbWFuZy4gRGFjIGRpZW0gbmF5IGNvIHRoZSBuaGFuIHJhIG5nYXkgdHJvbmcgZG9pIA0KdGh1 b25nLCBiYW5nIGNvbiBtYXQgYmluaCB0aHVvbmc6IGNodW5nIHhheSBkdW5nIGNvbmcgc28sIG11 YSBzYW0gdHJhbmcgdGhpZXQgYmkgbGFtIHZpZWMsIHNpbmggaG9hdCwgZGkgbGFpIGNobyByaWVu ZyBjaHVuZyB0aWVuIG5naGkgaG9uLCBoaWVuIGRhaSBob24gY2FjIGNhbiBibyBjYXAgdHVvbmcg ZHVvbmcgdmEgY2EgY2FwIGNhbyBob24gdHJvbmcgcXVhbiBkb2ksIGNodW5nIGJvaSBudW9jIGhv YSB0aG9tIHBodWMsIG1hYyB0aHVvbmcgIA0KcGh1YyBzYW5nIHRyb25nLCBkdW5nIGRpZW4gdGhv YWkgZGkgZG9uZywgZGVvIGRvbmcgaG8sIGdpYXkgY2h1eWVuIC4uLiByYXQgZGF0IHRpZW4sIGh1 dCB0aHVvYyBsYSwgdW9uZyBydW91IGhhbyBoYW5nOyBjaHVuZyBvIHRyb25nIG5odW5nIG5nb2kg bmhhIHJpZW5nIHRyaSBnaWEgbmhpZXUgY2h1YyB0eSANCmRvbmc7IGdpYSBkaW5oIGNodW5nIGNv IG11YyBzb25nIGNhbyBnYXAgaGFuZyB0cmFtLCBoYW5nIG5nYW4gbGFuIG5odW5nIG5ndW9pIG1h IGNodW5nIHZhbiBnb2kgbGEgZG9uZyBjaGksIGRvbmcgZG9pLCBkb25nIGJhbyAuLi4NCiAgDQpD aHVuZyBkZXUgeHVhdCB0aGFuIHR1IGdpYSBkaW5oIHN5IHF1YW4sIGNvbmcgY2h1YywgY29uZyBu aGFuLCBub25nIGRhbiwgdmF5IG5odW5nIGN1YSBjYWkgYXksIGNodW5nIGxheSBvIGRhdSByYT8g Q2hhYyBjaGFuIHJhbmcgY2h1bmcgY2hpIGNvIHRoZSBsYXkgdHUgY29uZyBxdXksIHR1YyBsYSBs YXkgdGllbiBjdWEgZGFuIGN1YSBudW9jLg0KICANClRhaSBzYW8gQ29uZyB0eSBUT1NFQ08sIFBo b25nIDkgliBDdWMgMTIsIEN1YyAxNSAuLi4gLSBuaHVuZyBjbyBxdWFuLCBkb24gdmkgdHVuZyBs YSAiY2FpIG5vaSIgRGFvIHRhbyByYSBuaGlldSBjYW4gYm8gY2h1IHRyaSwgY2h1IGNob3QsIHR1 bmcgZHVvYyBiaWV0IGRlbiBuaHUgbmh1bmcgZGllbiBoaW5oIHRpZW4gdGllbiB4dWF0IG5oYWMg bmhhdCBjdWEgVG9uZyBjdWMgSUkgZGFjIGJpZXQgbGEgZG9uIHZpIGNvIG5oaWV1IHRpZW4gbmdh biBzYWNoIJYgDQpsYWkgc29tIGJpIGdpYWkgdGhlIHRyb25nIGtoaSBuaGlldSBjbyBxdWFuLCBk b24gdmkga2hhYyB2b24gYmkgY29pIGxhIGVvIHVvdCwgbGEgeWV1IGtlbSB2YW4gZ2l1IGR1b2Mg cGhpZW4gaGlldT8gS2hvbmcgY29uIG5naGkgbmdvIGdpIG51YSwgc2F1IGtoaSB4YXkgZHVuZywg c3UgZHVuZyBjYWMgY28gDQpxdWFuLCBkb24gdmkgbmF5IG5odSBsYSBjb25nIGN1IGRlIGJvbiBy dXQgY29uZyBxdXksIGRlIG5ndXkgdGFvIGNvbmcgbGFvLCB0aGFuaCB0aWNoIGNobyBtaW5oLCBj aHVuZyBkYSB0aW0gY2FjaCB4b2EgYm8gZGUgdGh1IHRpZXUgdGFuZyBjaHVuZy4gTmhpZXUgbmd1 b2kgY2hvIHJhbmcgdG9pIGRheSBUcnVuZyB0YW0gNzAxIHZhIERvYW4gSzMgY3VuZyBzZSBiaSBn aWFpIHRoZSBuaHUgdmF5Lg0KIA0KIA0KVGFpIHNhbyBUcmFuIHZpZXQgVGhhbmcsIFRyYW4gcXVv YyBNaW5oLCBOZ3V5ZW4gcXVhbmcgRHVuZyAuLi4gdHVuZyBibyBuaHVuZyB2aSB0cmkgY29uZyB0 YWMgaG9hbiB0b2FuIHBodSBob3AgdGhlbyBuZ2FuaCBuZ2hlIGR1b2MgZGFvIHRhbyB2YSBsYSAi bW8gdW9jLiIgZG9pIHZvaSBoYXUgaGV0IGFuIGJlIGN1bmcgaG9jIGRlIHJhIG5nb2FpIHF1YW4g ZG9pIHJvaSBzYXUgZG8gbGFpIG5oYXkgdmFvIHF1YW4gZG9pIG5odW5nIGxhIGxhbSANCm1vdCBj aG8ga2hhYywgZG8gbGEgVG9uZyBjdWMgSUk/IFRhaSBzYW8gbyB0dW9pIDMwIJYgNDAsIGNvIGNv bmcgYW4gdmllYyBsYW0gb24gZGluaCBvIGJlbiBuZ29haSBtYSBWdSBjb25nIEhvYWNoLCBOZ3V5 ZW4gdGllbiBCYWMgLi4uIHZhbiBuaGF5IHZhbyBUb25nIGN1YyBJST8gQm9pIHZpIHZvaSBjaHVu ZywgcXVhbiBkb2kgbm9pIGNodW5nLCBUb25nIGN1YyBJSSBub2kgcmllbmcgY2hpIGxhIG1hbmgg ZGF0IG1hdSBtbyBkZSB0aGFtIGNhbmgsIA0KdGh1IGhvYWNoIG5odW5nIGxvaSBpY2ggcmllbmcg YmF0IGNoaW5oLg0KIA0KIEhpZW4gbyBUb25nIGN1YyBJSSwgZGFjIGJpZXQgbGEgbyBDdWMgMTYg Y28gZHUgbHVhbiB2dWEgcXVhIHZpIGNob2kgY2h1bmcga2hvYW4gbWEgRGFuZyB0cmkgRHVuZyBt YXQga2hvYW5nIDEwMCB0eSBkb25nLCBUcmFuIHF1b2MgTWluaCBtYXQgaG9uIDIwMCB0eSBkb25n IHZhIG1vdCANCnBoYW4gbG9uIHNvIHRpZW4gZG8gbGEgdGllbiBuZ2FuIHNhY2gsIER1IGx1YW4g bmF5IGxhIGtob25nIHBoYWkgbGEga2hvbmcgY28gY28gc28sIGNhbiBkdW9jIGtoYW4gdHJ1b25n IGxhbSByby4NCiAgDQpDaHVuZyBsYSBsYW5oIGRhbywgY2hpIGh1eSBjYXAgY2FvIGN1YSB0aW5o IGJhbyBzb25nIGxhaSBwaG8gdHJ1b25nIGhpbmggdGh1YywgaGFtIGRhbmgsIGhhbSBsb2kgZGVu IGJlbmggaG9hbiwgYmF0IGNoYXAgbGUgcGhhaSB2YSBkdSBsdWFuLCBiYXQgY2hhcCBuZ3V5ZW4g dGFjIGJpIG1hdCBjdWEgdGluaCBiYW8uIFZpIGR1Og0KICANCjEvIFNhdSBraGkgQ2hpbmggcGh1 IHJhIG5naGkgZGluaCAxNjIvMjAwNSAiUXV5IGRpbmggdGhpIGhhbmggcGhhcCBsZW5oIHRpbmgg YmFvIGRvaSB2b2kgbHVjIGx1b25nIHRpbmggYmFvIFZpZXQgTmFtLiIgVHJvbmcgZG8gY28gbm9p IGR1bmcgY2hvIG5odW5nIG5ndW9pIGxhbSB0aW5oIGJhbyBjaGllbiBsdW9jIG8gVG9uZyBjdWMg SUkgliBCbyBxdW9jIHBob25nIHZhIFRvbmcgY3VjIFYgliBCbyBjb25nIGFuIGh1b25nIHBodSBj YXAgDQpkYWMgYmlldCB0dSAxNSBkZW4gMjAlIGx1b25nIGNoaW5oLCBUb25nIGN1YyBWIGRhIG1h dSBjaG9uZyB0cmllbiBraGFpIHRodWMgaGllbiB0aGVvIGh1b25nIGNhcCBjaHVjIGNhbmcgdGhh cCwgbXVjIHBodSBjYXAgY2FuZyBjYW8sIFRvbmcgY3VjIElJIHRoaSBiYW4gZGkgdGluaCBsYWkg bWFpIG1vaSB0cmllbiBraGFpIHRoZW8gaHVvbmcgbmd1b2MgbGFpLg0KICANCjIvIFRydW9jIGRh eSwga3kgbmllbSBjaHVvbmcgY3VhIFRvbmcgY3VjIElJIGNoaSBjbyBtb3QgbG9haSwgZGFuaCB0 YW5nIG5ndW9pIGNvbmcgdGFjIHRyb25nIG5nYW5oIHRyZW4gMTAgbmFtLCBob2FuIHRoYW5oIHRv dCBuaGllbSB2dSBzb25nIG5hbSAyMDA3LCBUb25nIGN1YyBJSSBsYWkgZHVhIHJhIA0Ka3kgbmll bSBjaHVvbmcgbW9pIGdvbSAyIGxvYWkgliBsb2FpIG1hdSB2YW5nIGRlIHRhbmcgY2hpIGh1eSBU b25nIGN1YywgY2hpIGh1eSBjYWMgZGF1IG1vaSB0cnVjIHRodW9jIFRvbmcgY3VjLCBjYW4gYm8g bGEgdGllbiBzeSwgdGhhYyBzeSB0aW5oIGJhbyB2YSBjaGluaCB0cmksIGxvYWkgbWF1IA0KdHJh bmcgZGUgdGFuZyBjaGkgaHV5IGNhYyBkYXUgbW9pIGR1b2kgbW90IGNhcCB2YSBjYWMgY3Ugbmhh biB0aW5oIGJhbzsgc2F1IGRvLCBkbyB0cm9uZyBUb25nIGN1YyBjbyBuaGlldSBkdSBsdWFuIHBo YW4gZG9pLCBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IGRhIGRvaSB0ZW4gZ29pICJreSBuaWVt IGNodW9uZyIgVGhhbmggInBodSBoaWV1IiwgdGhheSBkb2kgY2h1dCB0aWV1IGNodWFuIGNhcCBw aGF0IHZhIGtldCBxdWEgaGllbiBuYXkgY28gcmF0IA0KbmhpZXUgbmd1b2kgbWFjIHF1YW4gcGh1 YywgZGVvICJwaHUgaGlldSIgY28gY2h1ICJUQlFQIJYgR0RESSIgKHZpZXQgdGF0IGNodSAidGlu aCBiYW8gcXVvYyBwaG9uZyIgYmFuZyB0aWVuZyBWaWV0IHZhIHRpZW5nIEFuaCkgdGhhbSBnaWEg Z2lhbyB0aG9uZywgeHVhdCBoaWVuIG8gbmh1bmcgbm9pIGNvbmcgY29uZy4NCiAgDQozLyBDaHVu ZyBkYSB2YW4gZG9uZyBkdW9jIEJvIGdpYW8gZHVjIJYgZGFvIHRhbyBtYSBjdSB0aGUgbGEgcGhv IHRodSB0dW9uZyBraWVtIGJvIHRydW9uZyBOZ3V5ZW4gdGhpZW4gTmhhbiBjaGFwIG5oYW4gZGFj IGNhY2ggY2hvIFRvbmcgY3VjIElJIHRyb25nIHZpZWMgeGV0IHBob25nIGhvYyBoYW0sIGhvYyB2 aSwgY2h1bmcgZGFuZyByYW8gcmlldCB0byBjaHVjIHhheSBkdW5nIGhvIHNvIGRlIG5naGkgeGV0 IHBob25nICh0cm9uZyBkbyBjbyAgDQpuaGlldSB5ZXUgdG8gY2hhYyBjaGFuIGxhIGdpYSBtYW8p IHZhIHJhdCBjbyB0aGUgdG9pIGRheSBzZSBjbyBoYW5nIGxvYXQgbGFuaCBkYW8sIGNoaSBodXkg VG9uZyBjdWMgSUkgdmEgbGFuaCBkYW8sIGNoaSBodXkgY2FjIGRhdSBtb2kgdHJ1YyB0aHVvYyBU b25nIGN1YyBJSSBkdW9jIGRhYyBjYWNoIA0KcGhvbmcgaG9jIGhhbSwgaG9jIHZpLCBtYWMgZHUg dHUgdHJ1b2MgdG9pIG5heSBraG9uZyBoZSBsYW0gY29vbmd0YWNzIG5naGllbiBjdXUsIGdpYW5n IGRheSwga2hvbmcgZGFwIHVuZyBkdW9jIHRpZXUgY2h1YW4gY2h1bmcgbmhhdCBjdWEgaG9jIGhh bSwgaG9jIHZpICh2aSBkdSB2ZSB0cmluaCANCmRvIG5nb2FpIG5ndSwgdmUgc28gbHVvbmcgY29u ZyB0cmluaCwgZGUgdGFpIG5naGllbiBjdXUga2hvYSBob2MgZGEgbGFtIGNodSBuaGllbSBob2Fj IHRoYW5oIHZpZW4pLCBob2MgaGFtLCBob2MgdmkgZG8gdGhpIGhvYW4gdG9hbiBtYW5nIHRpbmgg aGluaCB0aHVjLCBraG9uZyBoZSBjYW4gdGhpZXQgY2hvIGNvbmcgdmllYy4NCiANCjQvIERhdSBu YW0gMjAwOCwgY2h1bmcga2VvIG1vdCBkb2FuIHJhIFRydW9uZyBTYSAibGFtIHZpZWMiIHZhIGNh dCBjdWEgY2FuIGJvLCBjb25nIG5oYW4gdmllbiB0cm9uZyBUb25nIGN1YyBtb3QgbmdheSBsdW9u Zywgbm9pIGxhIGRlIHVuZyBobyBUcnVvbmcgU2E7ICJsYW0gdmllYyIgdmUsIA0KY2FjIHRoYW5o IHZpZW4gdHJvbmcgZG9hbiBkZXUgZHVvYyBraGVuIHRodW9uZyBkb3QgeHVhdC4NCiANCiANCjUv IFRyZW4gbWF0IHRpZW4gdHJ1IHNvIFRvbmcgY3VjIElJIG8gZHVvbmcgUGhhbSBIdW5nIJYgaHV5 ZW4gVHUgTGllbSCWIFRoYW5oIHBobyBIYSBOb2ksIENodW5nIGdhbiBoYW5nIGNodSAiVG9uZyBj dWMgdGluaCBiYW8iIFJhdCB0bywga2hpZW4gbmhpZXUgbmd1b2kgZGkgZHVvbmcgdHJvbmcgdGhh eSBwaGFpIHRvIG1vLCBjaGkgdHJvICh0cm9uZyBraGkgYmUgbmdvYWkgVG9uZyBjdWMgSUkgliBC byBjb25nIGFuIG8gZHVvbmcgDQpOZ3V5ZW4gdmFuIEh1eWVuIJYgcXVhbiBDYXUgR2lheSBraG9u ZyBoZSBjbyBkYXUgaGlldSBuYW8gY2hvIHRoYXkgZG8gbGEgY28gcXVhbiB0aW5oIGJhbykuDQog DQogVHJvbmcgbXVvaSBuYW0gdHJvIGxhaSBkYXksIE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUg aG8gaGFvICJnaWFtIGJvYyBsbywgdGFuZyB0aHVjIGx1Yy4iLCB0aGFtIGNoaSBjb24ga2hhbmcg ZGluaCBiYW5nIG5naGkgcXV5ZXQgRGFpIGhvaSBkYW5nIGJvIHRvbmcgY3VjIHZhIG5oaWV1IHZh biANCmJhbiBxdWFuIHRyb25nIGtoYWMgcmFuZyBkYXkgbGEgcGh1b25nIGNoYW0gZGF1IHRpZW4g dHJvbmcgYm9uIHBodW9uZyBjaGFtIGN1YSBUb25nIGN1YyBJSSwgc29uZyB0cmVuIHRodWMgdGUg c3UgcGhvIHRydW9uZywgaGluaCB0aHVjLCBoYW0gZGFuaCwgaGFtIGxvaSBjdWEgY2h1bmcga2hp ZW4gVG9uZyBjdWMgSUkgYm9jIGxvIGhvbiBiYW8gZ2lvIGhldCB2ZSB0YXQgY2EgY2FjIG1hdC4g U3UgYm9jIGxvIGF5IGxhIG1vdCB0cm9uZyBuaHVuZyANCm5ndXllbiBuaGFuIGNoaW5oIGtoaWVu IHRob2kgZ2lhbiBxdWEgZGEgY28gdG9pIGhhbmcgdHJhbSB0byBjaHVjIHZhIGNhIG5oYW4gZ2lh IGRhbmgsIGdpYSBkYW5nIGxhIHRodW9jIFRvbmcgY3VjIElJIGRlIHRodWMgaGllbiBjYWMgaGFu aCB2aSBsdWEgZGFvICh0cm9uZyBraGkgdm9pIFRvbmcgY3VjIFYgliBCbyBjb25nIGFuLCB0aW5o IHRyYW5nIG5heSByYXQgaGllbSBnYXApLg0KICANCk5ldSBuaHVuZyBuYW0gcXVhIERhbmcgdXkg cXVhbiBzdSB0cnVuZyB1b25nIHZhIGJvIHRydW9uZyBCbyBxdW9jIHBob25nIGxhbmggZGFvLCBj aGkgaHV5LCBjaGkgZGFvIFRvbmcgY3VjIElJIG5naGllbSB0dWMsIGNoYXQgY2hlLCB0cnVvYyBo ZXQgbGEgaGFpIHZhbiBkZSBjaGF0IGx1b25nIHRodWMgDQpoaWVuIGNodWMgbmFuZywgbmhpZW0g dnUgdmEgaGlldSBxdWEgc3UgZHVuZyBsdWMgbHVvbmcsIHBodW9uZyB0aWVuLCB0YWkgY2hpbmgg dGhpIGNoYWMgY2hhbiBuaHVuZyBtYW5nIGx1b2kgY3VhIGNhaSB4YXUgbyBUb25nIGN1YyBJSSBr aG9uZyB0aGUgaGluaCB0aGFuaCB2YSBsYXkgbGFuIHNhdSByb25nIGRlbiBuaHUgdmF5Lg0KIA0K TkhVTkcgQ0FOIEJPIFRPVCBNQVUgQ0hPTkcgQkkgVk8gSElFVSBIT0EgQkkgVFJJRVQgVElFVSwg VEhBTSBDSEkgQkkgTkhVT00gREVOLi4uDQogIA0KVG9uZyBjdWMgSUkgdm9uIGNvIGtob25nIGl0 IG5ndW9pIHRvdCwgZHVvYyBjYW4gYm8sIGRhbmcgdmllbiwgcXVhbiBjaHVuZyB0aW4gbmhpZW0g c29uZyBobyBkYSBiaSBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IHZvIGhpZXUgaG9hLCB0cmll dCB0aWV1LCB0aGFtIGNoaSAibmh1b20gZGVuLiIgTW90IGNhY2ggbWF1IGNob25nIGJhbmcgbmhp ZXUgdGh1IGRvYW4gdGhhbSBkb2MuIE8gZGF5IGNoaSBuZXUgcmEgbW90IHZhaSB0aHUgZG9hbiBj aGluaCBjdWEgY2h1bmcuDQogDQogTW90IGxhIHRhY2gga2hvaSBjb25nIHZpZWMsIHRhY2gga2hv aSBjYWMgbW9pIHF1YW4gaGUsIGRheSB2YW8gdmkgdHJpIGtob25nIHBodSBob3Agc28gdHJ1b25n LCBkYXkgdmUgaHV1LCBkdW5nIGxvaSBpY2ggY3VhIGNhIG5oYW4sIGdpYSBkaW5oIGRlIG11YSBj aHVvYywga2hvbmcgY2hlLCBkdW5nIGtodXlldCBkaWVtIGRhIG1hYyBwaGFpIGRlIGRlIG5ldC4g VmkgZHU6DQogDQoxIJYgVm9pIGRhaSB0YSBEYW8gdmFuIFBoZSAobmd1eWVuIHRydW9uZyBwaG9u ZyBjYW4gYm8pIG5hbSAxOTk5IGNodW5nIGR1YSBkaSBsYW0gcGhvIGN1YyB0cnVvbmcgdmUgY2hp bmggdHJpIGN1YSBDdWMgMjUsIG5hbSAyMDAwIGRheSB2ZSBsYSBwaG8gY2hpIGh1eSB0cnVvbmcg VHJ1bmcgDQp0YW0gbmdoaWVuIGN1dSBraG9hIGhvYyB0aW5oIGJhbyB0aHVvYyBob2MgdmllbiBr aG9hIGhvYyBxdWFuIHN1LCB0b2kgbmFtIDIwMDQsIGtoaSB0cnVuZyB0YW0gbmF5IG5hbmcgdGhh bmggVmllbiA1MDEgdHJ1YyB0aHVvYyBUb25nIGN1YyB0aGkgY2h1bmcgZGF5IHh1b25nIGxhbSB0 cm8gbHkgbmdoaWVuIGN1dTsNCiANCjIgliBWb2kgZGFpIHRhIE5ndXllbiBuZ29jIExpZW4gKG5n dXllbiB0cnVvbmcgcGhvbmcgY2FuIGJvKTsgbmFtIDIwMDAgY2h1bmcgZHVhIGRpIGxhbSBwaG8g Y3VjIHRydW9uZyB2ZSBjaGluaCB0cmkgbyBDdWMgMTYsIG5hbSAyMDAzIHJ1dCBsZW4gbGFtIHBo byBjaHUgbmhpZW0gY2hpbmggdHJpIA0KVG9uZyBjdWMsIHZhaSB0aGFuZyBzYXUgbGFpIGRheSBy YSBsYW0gY2FuIGJvIGJpZXQgcGhhaSBvIEJhbiBiYW8gdmUgY2hpbmggdHJpIG5vaSBibyB0cnVu ZyB1b25nLg0KIA0KMyCWIFZvaSBkYWkgdGEgVHJhbiBkaW5oIEx5IChuZ3V5ZW4gcGhvIFZpZW4g dHJ1b25nIFZpZW4gNzApOyBuYW0gMjAwMCBjaHVuZyBkYXkgcmEgbGFtIGNhbiBibyBiaWV0IHBo YWkgbyBDbyBxdWFuIEE0NyB0cnVuZyB1b25nLCBOdW0gMjAwNyx2aSBjbyBxdWFuIG5heSBnaWFp IHRoZSBuZW4gY2h1bmcgcGhhaSBydXQgdmUgVmllbiA3MCB4ZXAgbGFtIHRydW9uZyBwaG9uZy4N CiANCjQgliBWb2kgdGhpZXUgdHVvbmcgRGFvIHF1YW5nIENhdCAobmd1eWVuIHBobyBiaSB0aHUg RGFuZyB1eSwgcGhvIHRvbmcgY3VjIHRydW9uZyB2ZSBjaGluaCB0cmkpLCB0aGlldSB0dW9uZyBU cmFuIHRpZW4gQ3VuZyAobmd1eWVuIHBobyB0b25nIGN1YyB0cnVvbmcpLCB0cnVuZyB0dW9uZyBM ZSBoYWkgQW5oIChuZ3V5ZW4gcGhvIHRvbmcgY3VjIHRydW9uZykgdmEgbW90IHNvIGNhbiBibyBj aHUgdHJpLCBjaHUgY2hvdCBkYSBjaHV5ZW4gY29uZyB0YWMgDQpob2FjIG5naGkgaHV1IGtoYWM7 IGNodW5nIGR1bmcgY2FjIHRodSBkb2FuIG5odSB0dW5nIHRpbiB4YXUgaG9hYyBsYXQgbGFpIHNh aSBwaGFtIHZlIGRhdCBkYWkgZGUgaGEgdXkgdGluLCBiaXQgbWllbmcuLi4NCiANCiBWb2kgbmh1 bmcgbmd1b2kgZ2l1IHZpIHRyaSBjaHUgdHJpLCBjaHUgY2hvdCB0cm9uZyBUb25nIGN1YyBJSSBu aHVuZyBraG9uZyBjdW5nIHBoZSBjYW5oIHZvaSBjaHVuZywgY2h1bmcgY3VuZyBhcCBkdW5nIHRo dSBkb2FuIHR1b25nIHR1Lg0KIA0KIFZpIGR1OiANCjEtIFZvaSB0aGlldSB0dW9uZyBOZ3V5ZW4g aG9uZyBUaGFuaCAobmd1eWVuIHBobyBiaSB0aHUgRGFuZyB1eSwgcGhvIHRvbmcgY3VjIHRydW9u ZyB2ZSBjaGluaCB0cmkpIGNodW5nIGRheSByYSBraG9pIEJhbiB0aHVvbmcgdnUgZGFuZyB1eSBu Z2F5IGdpdWEgbmhpZW0ga3ksIGRlIGxhbSBwaG8gdG9uZyBjdWMgdHJ1b25nICJuZ29pIGNob2kg eG9pIG51b2MuIiByb2kgbmdoaSBodXU7DQogDQoyIJYgVm9pIHRoaWV1IHR1b25nIExlIGhvYWkg VGhhbmggKG5ndXllbiBkYW5nIHV5IHZpZW4sIHBobyB0b25nIGN1YyB0cnVvbmcpIGNodW5nIGVw IHZlIG5naGkgdHJ1b2MgdHVvaSwNCiANCjMgliBWb2kgdGhpZXUgdHVvbmcgTmd1eWVuIHBodSBM b2kgKG5heSBsYSB0cnVuZyB0dW9uZywgbmd1eWVuIGdpYW0gZG9jIEhvYyB2aWVuIHF1YW4gc3Up OyBjaHVuZyBkYXkgcmEgbGFtIHBobyBnaWFtIGRvYyBIb2MgdmllbiBxdW9jIHBob25nDQogDQo0 IJYgVm9pIHRoaWV1IHR1b25nIFBoYW0gdGhhbmggTGFuIChuYXkgbGEgdHJ1bmcgdHVvbmcsIG5n dXllbiBiaSB0aHUgRGFuZyB1eSwgY3VjIHRydW9uZyBDdWMgMjUpOyBjaHVuZyBkYXkgcmEgbGFt IGN1YyB0cnVvbmcgQ3VjIGRvaSBuZ29haSCWIEJvIHF1b2MgcGhvbmcuDQogDQo1IJYgVm9pIGRh aSB0YSBWdSBxdWFuZyBNaWVuIChuZ3V5ZW4gYmkgdGh1IERhbmcgdXksIGN1YyB0cnVvbmcgQ3Vj IDExKSwgY2h1bmcgZGlldSBkaSBsYW0gY3VjIHRydW9uZyBDdWMgNzEsIGxhbSB0aGFtIG11dSB0 cnVvbmcgVG9uZyBjdWMgcm9pIGVwIHZlIG5naGkgaHV1IHRydW9jIHR1b2k7DQogDQo2IJYgVm9p IGRhaSB0YSBEYW5nIHRoYW5oIFRpZW4gKG5ndXllbiBkYW5nIHV5IHZpZW4gVG9uZyBjdWMsIGJp IHRodSBEYW5nIHV5LGN1YyB0cnVvbmcgY3VjIDE2KTsgY2h1bmcgZGlldSBkaSBsYW0gZ2lhbSBk b2MgSG9jIHZpZW4ga2hvYSBob2MgcXVhbiBzdS4NCiANCjcgliBWb2kgZGFpIHRhIFRyYW4gZGlu aCBDaGllbiAobmd1eWVuIHV5IHZpZW4gdGh1b25nIHZ1IERhbmcgdXksIHBobyBjdWMgdHJ1b25n IEN1YyAxNiksIGNodW5nIGRpZXUgZGkgbGFtIHZpZW4gdHJ1b25nIFZpZW4gMjZ0aHVvYyBDdWMg MjUgcm9pIGRheSB4dW9uZyBsYW0gdHJvIGx5Ow0KIA0KOCCWIFZvaSBkYWkgdGEgTmd1eWVuIHZh biBEdW9uZyAobmd1eWVuIHBobyBiaSB0aHUgRGFuZyB1eSwgcGhvIGN1YyB0cnVvbmcgdmUgY2hp bmggdHJpIEN1YyAxNik7IGNodW5nIGRpZXUgZGkgbGFtIGNodSBuaGllbSBjaGluaCB0cmkgcm9p IGxhbSB0cnVvbmcga2hvYSBvIEhvYyB2aWVuIGtob2EgaG9jIHF1YW4gc3UuDQogDQo5IJYgVm9p IGRhaSB0YSBEaW5oIHZhbiBUaWVwIChuZ3V5ZW4gcGhvIGdpYW0gZG9jIEhvYyB2aWVuIGtob2Eg aG9jIHF1YW4gc3UpLCBjaHVuZyBkYXkgeHVvbmcgbGFtIGhpZXUgdHJ1b25nIFRydW9uZyBwaG8g dGhvbmcgYmFuIGNvbmcgVHJhbiBxdW9jIFR1YW4gcm9pIGRheSB0aWVwIHh1b25nIGxhbSB0cm8g bHk7DQogDQoxMCCWIFZvaSBkYWkgdGEgQ2h1IG5nb2MgTmhvIChuZ3V5ZW4gZGFuZyB1eSB2aWVu LHBobyBnaWFtIGRvYyBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1KSBjaHVuZyBkYXkgZGkgbGFt IHR1eSB2aWVuIHF1YW4gc3UgbyBUcnVuZyBxdW9jLi4uDQogIA0KQ2h1bmcgYXAgZHVuZyBkdW9j IHRodSBkb2FuIHRyZW4gdmkgdGluaCBiYW8gY28gbmh1bmcgdGluaCBjaGF0IGNodXllbiBiaWV0 ICh2aSBkdTogZG9pIGhvaSBjYW8gdmUgc3UgYmkgbWF0LCBjdSBseSwgZG9uIHR1eWVuOyBjb25n IHZpZWMgcmF0IGNodXllbiBzYXU7IGRpZXAgdmllbiwgdGluaCBiYW8gdmllbiBjdW5nIGNvIHRo ZSBwaG9uZyBoYW0gdGhpZXUgdHVvbmcpLCB2aSBkYSBzbyBjYW4gYm8gdHJ1bmcgY2FwLCBjYW8g Y2FwIGN1YSBUb25nIGN1YyBJSSwgDQpjbyBuZ3VvaSB0aGFuLCB0aGFtIGNoaSBjbyBuaGlldSBu Z3VvaSB0aGFuIGxhbSB2aWVjIHRyb25nIHRvbmcgY3VjIHZpIG5oaWV1IHZpIGxhbmcgZGFvIGNh cCBjYW8gY3VhIHF1YW4gZG9pLCBEYW5nLE5oYSBudW9jIGRhIGJpIGNodW5nIHRpZXAgY2FuLCBs dWEgbWksIHRyYW5oIHRodSwgbG9pIGR1bmcsIA0KYmFuIHRoYW4gY2h1bmcgdGhpIG5hbSB0cm9u ZyB0YXkgcmF0IG5oaWV1ICJib25nIGxvYy4iIGRlIGRlbSByYSBiYW4gcGhhdCwgbWFjIGNhIChk YXQgZGFpLCBuaGEgY3VhLCBjb25nIGFuIHZpZWMgbGFtIGNobyBuZ3VvaSB0aGFuIGN1YSBjYW4g Ym8sIGNhcCBiYWMgY2h1YyB2dSwgdmkgdHJpIGNvbmcgdGFjIG8gbnVvYyBuZ29haSwga2hhIG5h bmcga2VvIGRhaSB0aG9pIGhhbiBwaHVjIHZ1IHRhaSBuZ3UgY2hvIGNhbiBibykgLi4uDQogIA0K SGFpIGxhIG11b24gZGFuaCBjYXAgdHJlbiBkZSBodSBkb2EuIENodW5nIHh1eWVuIHRhYyB2YW4g YmFuLCBwaGF0IG5nb24gY3VhIGNhcCB0cmVuIGRlIGtoaWVuIG1vaSBuZ3VvaSBoaWV1IHJhbmcg VG9uZyBjdWMgSUkgZHVvYyBsYW0gdGluaCBiYW8gbm9pIGJvLCBub2kgZGlhLCBkdW9jIGNhcCAN CnRyZW4gdGluIHR1b25nIHR1eWV0IGRvaSwgYmFuIHRoYW4gY2h1bmcgdGhpIHJhdCBkdW9jIGNh cCB0cmVuIHRpbiBjYXksIHRyb25nIGR1bmcsIGNvaSBsYSBjaG8gZHVhLiBOaHVuZyBub2kgZHVu ZyBiYXQgbG9pIGNobyBjaHVuZyB0cm9uZyBjYWMgdmFuIGJhbiwgcGhhdCBuZ29uIGN1YSBjYXAg dHJlbiB0aGkgDQpjaHVuZyBsbyBkaSwga2hvbmcgcGhvIGJpZW4sIHF1YW4gdHJpZXQuIENodW5n IG1vaSBiYW5nIGR1b2MgdG9uZyBiaSB0aHUsIGNodSB0aWNoIG51b2MsIA0KdGh1IHR1b25nIENo aW5oIHBodSwgYm8gdHJ1b25nIEJvIHF1b2MgcGhvbmcgLi4uIHRvaSB0aGFtIFRvbmcgY3VjIElJ LCB2YSBzYXUgbW9pIA0KY2h1eWVuIHRoYW0gYXksY2h1bmcgbGFpIHR1eWVuIHRydXllbiByYW0g cm8sIHRyZW4gZGllbiByb25nIHZlIHN1ICJ0aW4gdHVvbmciLCAidXUgYWkiLCAiZGFuaCBnaWEg Y2FvIiBtYSBsYW5oIGNhcCBjYW8gY3VhIHF1YW4gZG9pLCBEYW5nLCBOaGEgbnVvYyAoZGFjIGJp ZXQgbGEgaGFpIHZpIE5vbmcgZHVjIE1hbmgsIFBoYW0gdmFuIFRyYSkgdG9pIHRoYW0gbmdhbmgs IHRvaSBsYW0gdmllYyB2b2kgbGFuaCBkYW8sIGNoaSBodXkgY3VhIG5nYW5oIA0KdGFuZyBtb3Qg Y2FjaCBiYXQgdGh1b25nLiBOaHVuZyBuYW0gZ2FuIGRheSwgbyBUb25nIGN1YyBJSSBjbyBtb3Qg bmdoaWNoIGx5IGxhIGN1IG1vaSBsYW4gbGFuaCBkYW8gY2FwIGNhbyBjdWEgcXVhbiBkb2ksIERh bmcsIE5oYSBudW9jIHRvaSB0aGFtIHZhIGxhbSB2aWVjIHZvaSBUb25nIGN1YyB0aGkgDQpuaGll dSBjYW4gYm8sIGRhbmcgdmllbiwgcXVhbiBjaHVuZyBsYWkgY2FuZyB0aGVtIGJ1b24gYmEsIGNo YW4gbmFuLg0KICANCkdhbiBkYXksIGNvIGJvbiBzdSB2aWVjIGtoaWVuIG5oaWV1IGNhbiBibywg ZGFuZyB2aWVuLCBxdWFuIGNodW5nIG8gVG9uZyBjdWMgSUk6DQogIA0KMS8gTmFtIDIwMDYsIERh aSBob2kgZGFpIGJpZXUgZGFuZyBibyBxdWFuIGRvaSBkYSByYSBuZ2hpIHF1eWV0IHRyb25nIGRv IGNvIGNoaSBybyBjYSB5ZXUga2VtLCBraHV5ZXQgZGllbSBkYXUgdGllbiBsYW4gYmFpIGhvYyBr aW5oIG5naGllbSBkYXUgdGllbiBjdWEgRGFuZyBibyBxdWFuIGRvaSANCm5oaWVtIGt5IDIwMDEt MjAwNiBsYSBjb25nIHRhYyBuYW0gdmEgZGFuaCBnaWEgdGluaCBoaW5oOw0KIA0KIDIvIEN1b2kg dGhhbmcgNC0yMDA4LCBjaHUgdGljaCBudW9jIE5ndXllbiBtaW5oIFRyaWV0IHZhIHRodSB0dW9u ZyBDaGluaCBwaHUgTmd1eWVuIHRhbiBEdW5nIGtob25nIHRvaSBkdSBsZSB0cmFvIHRhbmcgZGFu aCBoaWV1IEFuaCBodW5nIGx1YyBsdW9uZyB2dSB0cmFuZyBuaGFuIGRhbiBjaG8gVG9uZyBjdWMg SUk7DQogDQogMy8gQ3VvaSB0aGFuZyA1LTIwMDgsIGNodSB0aWNoIG51b2MgTmd1eWVuIG1pbmgg VHJpZXQgdmEgYm8gdHJ1b25nIHF1b2MgcGhvbmcgUGh1bmcgcXVhbmcgVGhhbmggdG9pIGxhbSB2 aWVjIHRyb25nIGRpZW4gaGVwIHZvaSBsYW5oIGRhbywgY2hpIGh1eSBUb25nIGN1YyBJSSBuaHVu ZyB0cnVvYywgDQp0cm9uZyB2YSBzYXUgY2h1eWVuIHRoYW0sIE5ndXllbiBjaGkgVmluaCB2YSBw aGUgbHUga2hvbmcgaGUgY28gaG9hdCBkb25nIHR1eWVuIHRydXllbiwgY28gZG9uZyBuYW8gKGRp ZXUgbmF5IHRyYWkgaGFuIHZvaSB0aG9uZyBsZSk7DQogIA0KNC8gVGhhbmcgOS0yMDA4LCBoYW5n IGNodWMgY2FuIGJvIHF1YW4gZG9pIGNvIGNodWMgdnUgdGhhcCBob24gaG9hYyB0dW9uZyBkdW9u ZyBkdW9jIHRoYW5nIHF1YW4gaGFtIHRoaWV1IHR1b25nLCB0cnVuZyB0dW9uZywgY3VjIHRydW9u ZyBDdWMgMjUgLSBUb25nIGN1YyBJSSBEbyB2YW4gTmdoaSBjdW5nIGR1b2MgdGhhbmcgcXVhbiBo YW0gdGhpZXUgdHVvbmcgdmF5IG1hIG8gVG9uZyBjdWMgSUksIHBobyBjaGluaCB1eSBUcmFuIA0K dmlldCBUaGFuZywgcGhvIHRvbmcgY3VjIHRydW9uZyBOZ3V5ZW4gbWluaCBUYW4gZGV1IGtob25n IGR1b2MgdGhhbmcgcXVhbiBoYW0gdGhpZXUgdHVvbmcsIHBobyB0b25nIGN1YyB0cnVvbmcgTHV1 IGR1YyBIdXkgdGhpIGNoaSBkdW9jIGJvIG5oaWVtIGNoaW5oIHV5IFRvbmcgY3VjIA0KbWEga2hv bmcgZHVvYyB0aGFuZyBxdWFuIGhhbSB0cnVuZyB0dW9uZy4gTmd1b2kgdGEgdHUgaG9pIHBoYWkg Y2hhbmcgbGFuaCBkYW8gY2FwIGNhbyBjdWEgcXVhbiBkb2ksIERhbmcsIE5oYSBudW9jIGRhIHBo YW4gbmFvIG5oYW4gcmEgYmFuIGNoYXQsIHRodSBkb2FuIHhhdSB4YSBjdWEgTmd1eWVuIGNoaSBW aW5oIHZhIHBoZSBsdSwgcGhhbiBuYW8gdGhheSBkdW9jIHRpbmggdHJhbmcgeWV1IGtlbSwga2h1 bmcgaG9hbmcgY3VhIA0KVG9uZyBjdWMgSUkuIFNhdSBkbyBuZ3VvaSB0YSBsYWkgYmFuIGtob2Fu IGxhIG5ldSBkdW5nIG5odSB0aGUgdGhpIHNhbyBsYW5oIGRhbyBjYXAgY2FvIGN1YSBxdWFuIGRv aSwgRGFuZywgTmhhIG51b2Mga2hvbmcga2hhbiB0cnVvbmcgbGFtIHJvIGJhbiBjaGF0IHRodSBk b2FuIHhhdSB4YSBheSB2YSANCmNvIGJpZW4gcGhhcCB4dSBseSBwaHUgaG9wLg0KICANCkJhIGxh ICJuZ3UgaG9hLiJuZ3UgaG9hIGNhbiBibyBtb3QgY2FjaCBjbyBoZSB0aG9uZy4NCiANCiBUaW5o IGJhbyBsYSBtb3QgdHJvbmcgbmh1bmcgaG9hdCBkb25nIG1hbmcgdGluaCB4YSBob2kgeHVhdCBo aWVuIHNvbSBuaGF0LCBoaWVuIG5heSBkYSBkYXQgdG9pIHRyaW5oIGRvIHJhdCBjYW8uIFRhaSBs aWV1IG5naGllbiBjdXUsIHRoYW0ga2hhbyB2ZSB0byBjaHVjIHZhIGhvYXQgZG9uZyB0aW5oIGJh byBWaWV0IE5hbSAoZGFjIGJpZXQgdGluaCBiYW8gY2FjaCBtYW5nIFZpZXQgTmFtIGR1b2kgc3Ug bGFuaCBkYW8gY3VhIERhbmcgY29uZyBzYW4pIHZhIHRpbmggYmFvIGNhYyBudW9jIHJhdCBwaG9u ZyBwaHUsIHRoYW0gY2hpIGNvbiBjbyB0aGUgbm9pIHJhbmcga2hvbmcgY28gbmdoZSBuYW8gbWEg DQp2aWVjIGxhbSBuZ2hlIGR1b2Mgc2FjaCBiYW8sIHBoaW0gYW5oIG1vIHRhIG5oaWV1IG5odSBu Z2hlIHRpbmggYmFvIHNvbmcgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBraG9uZyBuZ2hpZW0g dHVjIG5naGllbiBjdXUgZGUga2UgdGh1YSwgcGhhdCBodXksIHBoYXQgdHJpZW4sIHZhbiBkdW5n IG1hIHR1ICJzYW5nIHRhby4iIHJhIHRoZW0gbW90IHNvIHBodW9uZyBjaGFtLCBwaHVvbmcgdGh1 YywgaGluaCB0aHVjIHRvIGNodWMgc3UgZHVuZyBsdWMgbHVvbmcsIGNhY2ggbGFtIC4uLiBraG9u ZyBwaHUgaG9wLCB0aGFtIGNoaSBjb24gY2FuIHRybyB2aWVjIHRodWMgaGllbiBjaHVjIG5hbmcs IA0KbmhpZW0gdnUgY3VhIHRpbmggYmFvIHZhIGJhdCBtb2kgbmd1b2kgcGhhaSB0aHVhIG5oYW4s IHBoYWkgY2hheSB0aGVvIGRlIHJvaSBiaSBtYWMga2V0IGdpdWEgbW90IG1vIGJvbmcgYm9uZyBj YSB2ZSBseSBsdWFuIGxhbiB2ZSB0aHVjIHRpZW4uIFZpIGR1OiBDaHVjIG5hbmcgInRoYW0gbXV1 IA0KY2hpZW4gbHVvYyIgY3VhIHRpbmggYmFvLCBwaHVvbmcgY2hhbSAiZHVhIHZhbyBkYW4gbWEg dGltIGRpY2giLCBxdWFuIG5pZW0gImRpYSBiYW4gdHJvbmcgbnVvYyBsYSBjaHUgeWV1IiwgImRp YSBiYW4gdHJvbmcgbnVvYyBsYSBxdWFuIHRyb25nLCBzb25nIGNvbiIsIGNhYyBraGFpIG5pZW0g InRpbmggYmFvIGhhbmggZG9uZyIsICJjYW4gYm8gbWF0IiwgImNhbiBibyBob2F0IGRvbmciLCAi dG8gdHJ1b25nIGRpZXAgYmFvIGRpYSBiYW4iLCANCiJjdSBkaWVtIiB2YSAiY3UgZGllbSB0cnVv bmciIGN1YSBkaWVwIGJhbyBjaGllbiBsdW9jIGJhdCBob3AgcGhhcCwgInF1YW4gaGUgbGllbiBt aW5oIGRhYyBiaWV0IiBjdWEgZGllcCBiYW8gY2hpZW4gbHVvYyBiYXQgaG9wIHBoYXAgaHVvbmcg WCAuLi4NCiANCiBDaHVuZyBibyB0cmkgbmh1bmcgbmd1b2kgY2h1YSB0aGF0IHN1IGtpbmggcXVh IHRodWMgdGUgdG8gY2h1YyB2YSBob2F0IGRvbmcgaG9hYyB2b24ga2hvbmcgbGFtIGR1b2Mgdmll YywgdmkgcGhhbSBraHV5ZXQgZGllbSBvIGRvbiB2aSBsYW0gY29uZyB0YWMgbmdoaWVuIGN1dSwg Z2lhbmcgZGF5IHRpbmggYmFvLCBkYWMgYmlldCB0cmVuIGxpbmggdnVjIGRpZXAgYmFvIGNoaWVu IGx1b2MgYmF0IGhvcCBwaGFwLiBDaHVuZyB0byBjaHVjIGhvYXQgDQpkb25nIHRvbmcga2V0IHRo dWMgdGllbiwgcGhhdCB0cmllbiBseSBsdWFuIHJhdCByYW0gcm8sIHRvbiBrZW0sIGh1eSBkb25n IHN1IHRoYW0gZ2lhIGN1YSBoYW5nIG5nYW4gbmd1b2kgc29uZyB2ZSBjbyBiYW4gbGEgbWFuZyB0 aW5oIGhpbmggdGh1Yy4gVmkgdmF5LCBzYW4gcGhhbSBjdWEgcXVhIHRyaW5oIG5naGllbiBjdXUs IGdpYW5nIGRheSB0aW5oIGJhbyBuZ2F5IGNhbmcgc3V5IGdpYW0gY2hhdCBsdW9uZy4gSG8gY2hp IE1pbmggZGEgZGF5IHR1IHRoYW5nIDgtMTk0OTogInRpbmggYmFvIGxhIG1vdCBraG9hIGhvYy4i IHNvbmcgZGVuIG5heSwgY2hpIGNhbiB4ZW0gcXVhIHRlbiBnb2ksIG11YyANCmx1YyBjYWMgbHVh biBhbiB0aWVuIHNpLCB0aGFjIHNpIHRpbmggYmFvLCBjYWMgZ2lhbyB0cmluaCBkYW8gdGFvIGN1 IG5oYW4gdGluaCBiYW8sIGNhYyBjb25nIHRyaW5oLCBkZSB0YWkgdG9uZyBrZXQgdGh1YyB0aWVu LCBuZ2hpZW4gY3V1IGtob2EgaG9jIGN1YSBUb25nIGN1YyBJSSBjdW5nIGNvIHRoZSB0aGF5IHRy aW5oIGRvIHRyaSB0aHVjIGtob2EgaG9jIGN1YSBUb25nIGN1YyBJSSBjaGFuZyBuaHVuZyBvIHRy aW5oIGRvIHJhdCB0aGFwIG1hIGNvbiBzYWkgDQpsYW0sIGNoZWNoIGh1b25nIHJhdCBuZ2hpZW0g dHJvbmcuDQogIA0KQ28gbGUgdmkgdGhlIG1hIHRob2kgZ2lhbiB2dWEgcXVhIGxhbmggZGFvLCBj aGkgaHV5IFRvbmcgY3VjIElJIHF1eSBjaHVwIGNodXllbiBkZSAiWGFjIGRpbmggcm8gZG9pIHR1 b25nIHRpbmggYmFvLCBuaGFuIHRodWMgZGF5IGR1IGJhbiBjaGF0IGNodSB5ZXUgY3VhIGRvaSB0 dW9uZyB0aW5oIGJhbywgdGFwIHRydW5nIG5oYW0gdmFvIGNhYyBkb2kgdHVvbmcgdGluaCBiYW8g Y2h1IHlldSwgY2FjIG11YyB0aWV1IHRpbmggYmFvIHF1YW4gdHJvbmciLCAocGh1YyANCnZ1IGRl IHRhaSAiVG9uZyBrZXQgZGllcCBiYW8gY2hpZW4gbHVvYyBiYXQgaG9wIHBoYXAgY3VhIHRpbmgg YmFvIHF1b2MgcGhvbmcgVmlldCBOYW0iIEN1YSBUb25nIGN1YyBJSSBkbyBjaGluaCBOZ3V5ZW4g Y2hpIFZpbmggbGFtIGNodSBuaGllbSkgbGEgY2hlY2ggaHVvbmcsIHNhaSB0cmFpLCBwaHUgbmhh biBzdSBsYW5oIGRhbyBjdWEgRGFuZywgY2hvbmcgRGFuZywgY2hvbmcgcXVhbiBkb2ksIGNob25n IFRvbmcgY3VjIElJIHNvbmcgbGFpICANCmdpYXUgYmlldCBjaHV5ZW4gZGUgbmF5IGRpLCBraG9u ZyBkdWEgdG9hbiB2YW4gcmEgZGUgY2FjIGhvaSBkb25nIGtob2EgaG9jLCBjYWMgdG8gY2h1YyBE YW5nLCB0byBjaHVjIGNoaW5oIHF1eWVuLCB0byBjaHVjIHF1YW4gY2h1bmcgLi4uIG5naGllbiBj dXUsIGxhbSBybyBwaGFpIHRyYWksIGR1bmcgc2FpLg0KIA0KIFZpZWMgTmd1eWVuIGNoaSBWaW5o IHZhIHBoZSBsdSB0YWMgb2FpLCB0YWMgcXVhaSBoYW5nIGNodWMgbmFtIHF1YSBtYSBraG9uZyBo ZSBiaSB2YWNoIG1hdCwgY2hpIHRlbiwgZGF1IHRyYW5oLCBuZ2FuIGNoYW4gbW90IGNhY2ggdGhh dCBzdSB0dSBub2kgYm8gVG9uZyBjdWMgSUkgY2hvIHBoZXAga2hhbmcgZGluaCB0YXQgY2EgY2Fu IGJvLCBjb25nIG5oYW4gdmllbiBjdWEgVG9uZyBjdWMgSUkgaGllbiBuYXkga2hvbmcgZHUgbmFu ZyBsdWMgdmEgDQpwaGFtIGNoYXQsIHRoYW0gY2hpIGNvbiBjaG8gcGhlcCBraGFuZyBkaW5oIGNh biBibyBjdWEgVG9uZyBjdWMgSUkgY2FuZyBjbyBjYXAgY2h1YyBjYW8gdGhpIGNhbmcga2hvbmcg ZGFuZyB0aW4gY2F5LCB0cnVvYyBoZXQgbGEgdmUgY2hpbmggdHJpLiBOZXUgY28gZHUgbmFuZyBs dWMsIGhvIGRhIHBoYXQgaGllbiByYSBiYW4gY2hhdCB2YSB0aHUgZG9hbiB4YXUgeGEgY3VhIE5n dXllbiBjaGkgVmluaCB2YSBwaGUgbHUuIE5ldSBjbyBkdSBjYSBwaGFtIA0KY2hhdCwgaG8gc2Ug ZHVuZyByYSBkYXUgdHJhbmgsIG5nYW4gY2hhbiBjaHVuZyBuZ2F5IG8gbm9pIGJvLCBzZSB0byBj YW8gY2h1bmcgdm9pIGNhcCB0cmVuIG1hIGtob25nIG5lIGhhIG5ndXkgaGllbS4gRGFuZyBidW9u IGxhIGRvbmcgY28gY2EgbmhhbiBkYSBsYW0gbW8gZGksIHRoYW0gY2hpIGxhbSB0aHVpIGNob3Qg dGluaCBjaGllbiBkYXUsIHRpbmggbmd1eWVuIHRhYyBjdWEgbmd1b2kgY29uZyBzYW4sIGRhIGto aWVuIG1heSBuZ2FuIGNhbiANCmJvLCBjb25nIG5oYW4gdmllbiBjdWEgVG9uZyBjdWMgSUkgY28g bGFpIGRlIHR1IGxvaS4gTW90IHZhaSBuZ3VvaSBjbyBkb24gdGh1IGd1aSBjYXAgdHJlbiB0aGkg bm9pIGR1bmcgY3VuZyBjaGkgeHVhdCBwaGF0IHR1LCBjaGkgbGllbiBxdWFuIGRlbiBxdXllbiBs b3FpIGNhIG5oYW4sIG5odW5nIHN1IHZ1IHZ1biANCnZhdCBuZW4ga2hvbmcgdGh1IGh1dCBkdW9j IHN1IGRvbmcgdGluaCwgdW5nIGhvIGN1YSBjYW4gYm8sIGRhbmcgdmllbiwgcXVhbiBjaHVuZyB0 cm9uZyB0b25nIGN1Yywga2hvbmcgdGh1eWV0IHBodWMsIGdpdXAgZG8gZHVvYyBjYXAgdHJlbi4N CiANCkNVT05HIFZPTkcgTkdVWSBISUVNIFZBIEhFIExVWSBOR0hJRU0gVFJPTkcNCiAgDQpUdSBi YXkgZGVuIG5heSwgZGFjIGJpZXQgbGEgdHJ1b2MgY2FjIGt5IGRhaSBob2kgZGFpIGJpZXUgdG9h biBxdW9jIGN1YSBEYW5nLCB0cm9uZyBUb25nIGN1YyBJSSB0aHVvbmcgcm8gbGVuIGR1IGx1YW4g dmUgc3UgInBoYXQgdHJpZW4iIGN1YSBOZ3V5ZW4gY2hpIFZpbmgsIG5hbyBsYSB0YW0gZGkgUXVh biBraHUgNCwgUXVhbiBraHUgNyBsYW0gdHUgbGVuaCwgcGhvIHR1IGxlbmggdmUgY2hpbmggdHJp LCBuYW8gbGEgc2FuZyBUb25nIGN1YyBjaGluaCB0cmkgDQpsYW0gY2h1IG5oaWVtLCBwaG8gY2h1 IG5oaWVtLCBuYW8gbGEgbGVuIGJvIGxhbSB0aHUgdHJ1b25nLCBuYW8gbGEgcmEgQm8gY29uZyBh biBsYW0gYm8gdHJ1b25nLCB0aHUgdHJ1b25nLCBuYW8gbGEgdmFvIHRydW5nIHVvbmcsIHZhbyBC byBjaGluaCB0cmksIGxhIG5ndW9uIHRvbmcgYmkgdGh1IC4uLiANCk5ndXllbiBjaGkgVmluaCB2 YSBwaGUgbHUgbW9uZyBuZ29uZyBkaWV1IGRvIHZpIG5odSB2YXksIHRhdCBjYSBjaHVuZyBjYW5n IGNvIGNvICJwaGF0IHRyaWVuIi4gUmF0IG1heSBsYSB0byBuYXkgZGlldSBkbyBjaHVhIHhheSBy YSENCiAgDQpPIFRvbmcgY3VjIElJLCBtb3Qgc28gbmd1b2kgaXQgaGlldSBiaWV0IHZlIHRodWF0 IHBob25nIHRodXkgY2hvIHJhbmcgdmllYyB0YWkgdHJ1IHNvIG1vaSBjdWEgVG9uZyBjdWMgbyBk dW9uZyBQaGFtIEh1bmcgliBodXllbiBUdSBMaWVtIJYgdGhhbmggcGhvIEhhIE5vaSwgYW4gbmd1 IG5nYXkgY29uZyBjaGluaCBsYSBtb3QgdHJ1IGRhIGNob25nIHRyb2kgY29uIHR1b25nIGRhaSBI byBjaGkgTWluaCB2b2kgY2hpZW4gc2kgdGluaCBiYW8gdGhpIGJpIA0KZGF5IHNhbmcgdHJhaSwg byB0cnVvYyBuaGEgbmdoaSwgbyBiZW4gaG9uZyBuaGEgYW4gY2hvIHRoYXkgbW90IGNhY2ggZGF5 IGR1LCBybyByYW5nIGN1b25nIHZvbmcgY3VhIE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUuIE5l dSBkZSB5IHJhbmcgbyBjYWMgY29uZyBzbyBuaHUgVXkgYmFuIG5oYW4gZGFuIHRoYW5oIHBobyBI byBjaGkgTWluaCwgSG9jIHZpZW4gY2hpbmggdHJpIHZhIGhhbmggY2hpbmggcXVvYyBnaWEgSG8g Y2hpIA0KTWluaCwgSG9jIHZpZW4gcXVvYyBwaG9uZywgSG9jIHZpZW4gaGF1IGNhbiwgdHVvbmcg ZGFpIEJhYyBkZXUgZHVvYyBkYXQgbmdheSB0cnVvYyBtYXQgdG9hIG5oYSBjaGluaCwgdGFpIHZp IHRyaSB0cmFuZyB0cm9uZyBuaGF0LCB0aG9hbmcgZGFuZyBuaGF0IHRoaSBzZSB0aGF5IHkga2ll biB0cmVuIGtob25nIHBoYSBsYSBraG9uZyBjbyBjbyBzby4NCiAgDQpWaSBjdW9uZyB2b25nIGF5 IG1hIE5ndXllbiBjaGkgVmluaCB2YSBwaGUgbHUgZGEgbGVvIGxhIGhhdSBoZXQgbHVjIGx1b25n LCBwaHVvbmcgdGllbiBjdWEgVG9uZyBjdWMgSUkgbGFtIHNhaSBjaHVjIG5hbmcsIG5oaWVtIHZ1 IHRhcCB0cnVuZyB2YW8gbGFtIHRpbmggYmFvIG5vaSBibywgbm9pIGRpYSwgDQp0aHVjIGNoYXQg bGEgbGFtIGFuIG5pbmgsIHBoYW4gZ2lhbi4NCiANCiBNdW9uIGxhcCAiY29uZyIgbG9uLCBtdW9u IGx1dSBkYW5oIHN1IHNhY2ggbmh1bmcgYmlldCBtaW5oIGtob25nIGR1IHN1YyBuaGFtIHZhbyBj YWMgbXVjIHRpZXUgdGluaCBiYW8gcXVhbiB0cm9uZyBjdWEgY2FjIGRvIHR1b25nIHRpbmggYmFv IGNodSB5ZXUgbmh1IE15LCBUcnVuZyBxdW9jLCBUaGFpIExhbiwgY2h1bmcgbGFpIHF1YXkgcmEg bmhhbSBjYW4gdmFvIGNhYyB0aGFuZyB0byB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmkgbyBudW9j IHRhLCANCnRydWMgdGllcCBnYXkgbmVuIHRpbmggdHJhbmcgbmdoaSBseSwgY2hpYSByZSwgcm9p IHJlbi4gQ2h1bmcgZGEgaHUgZG9hIGNhcCB0cmVuIGxhICJjYWMgcGhhbiB0dSBjbyBob2ksIGh1 dSBraHV5bmggcmF0IGRhIGRhbmc6IHRyZSAtIGdpYSwgZHVvbmcgY2h1YywgbmdoaSBodXUsIHNv LCB0cnVuZy1jYXAgDQpjYW8sIGxvIG1hdC1naWF1IG1hdCAuLi4gQ2h1bmcgY28gaGF1IGhldCBr aGFwIGNhYyBkaWEgYmFuLCBjYWMgY2FwLCBjYWMgbmdhbmgsIGNhYyBnaW9pLi4uIE1vaSBxdWFu IGhlIGdpdWEgY2h1bmcgcmF0IGNoYW5nIGNoaXQsIHRpbmggdmksIGtobyBuaGFuIGJpZXQuIENv IGRhdSBoaWV1IG5oaWV1IGtlIGNvbiBjaGltIHJhdCBzYXUsIGtob25nIGl0IGtlIGhpZW4gZGFu ZyBuYW0gY3VvbmcgdmkgcmF0IGNhbyB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmksIGNvIGtlIGJp IHRpbmggYmFvIG51b2MgbmdvYWkgKGNodSB5ZXUgbGEgQ0lBKSBjYXUgbW9jIG11YSBjaHVvYywg a2hvbmcgY2hlLiBUaW0gcmEgZHUgDQp5ZXUgdG8gZGUgdmFjaCBtYXQsIGNoaSB0ZW4gdHVuZyBk b2kgdHVvbmcgbGEgbmhpZW0gdnUgY3VjIGt5IGNhcCB0aGlldCBuaHVuZyBjdW5nIHJhdCANCmto byBraGFuIGN1YSB0aW5oIGJhbyIsIGRhIHRodSBuaGFwLCB0YW8gZHVuZyB0aG9uZyB0aW4gdmUg aGFuZyBuZ2FuIGNhbiBibyBxdWFuIJYgZGFuIJYgY2hpbmggZGFuZywgdHJvbmcgZG8gY28gaGFu ZyB0cmFtIG5ndW9pIHR1IGNhcCB1eSB2aWVuIHRydW5nIHVvbmcgdHJvIGxlbiBuaHUgTmd1eWVu IA0KdmFuIEFuLCBOZ3V5ZW4gbWFuaCBDYW0sIExlIHZhbiBDaGF1LCBWbyB2YW4gQ3VvbmcsIFBo YW4gRGllbiwgUGhhbSB0aGUgRHV5ZXQsIExlIHZhbiBEeSwgSHV5bmggRGFtLCBUcmFuIGRpbmgg RGFuZywgVHJhbiBiYWNoIERhbmcsIE5ndXllbiBraG9hIERpZW0sIExlIHR1IERvbmcsIFZvIG5n dXllbiBHaWFwLCBWdSBob2FuZyBIYSwgTGUgdGhhbmggSGFpLCBIb2FuZyB0cnVuZyBIYWksIFRy YW4gSG9hLCBWdSBxdW9jIEh1bmcsIFZvIGR1YyBIdXksIFRyYW4gcXVvYyBIdW9uZywgTmd1eWVu IHZhbiBIdW9uZywgUGhhbiB2YW4gS2hhaSwgUGhhbSANCmdpYSBLaGllbSwgVnUgS2hvYW4sIFZv IHZhbiBLaWV0LCBQaGFuIG5odSBMYW0sIE5ndXllbiBkaW5oIExvYywgSG8geHVhbiBNYW4sIFZ1 IE1hbywgQ2h1IGh1eSBNYW4sIE5ndXllbiBhbmggTWluaCwgTWFpIHZhbiBOYW0sIE5ndXllbiB0 aGkga2ltIE5nYW4sIEhvIE5naGluaCwgVHJhbiBtaW5oIE5nb2MsIExlIGtoYSBQaGlldSwgS3Nv ciBQaHVvYywgTmd1eWVuIHBob25nIFF1YW5nLCBOZ3V5ZW4gUXV5ZXQsIFRydW9uZyB0YW4gU2Fu ZywgTGUgaG9hbmcgUXVhbiwgVHJhbiB0cm9uZyBUYW4sIE5ndXllbiBiYSBUaGFuaCBOZ3V5ZW4g DQpwaHVjIFRoYW5oLCBWbyB2aWV0IFRoYW5oLCBEb2FuIGR1eSBUaGFuaCwgTmd1eWVuIHZhbiBU aHVhbiwgTmdvIHllbiBUaHksIE5ndXllbiBraGFuaCBUb2FuLCBNYSB0aGFuaCBUb2FuLCBQaGFu IHZhbiBUcmFuZywgTmd1eWVuIG5nb2MgVHJ1dSwgVHJhbiB2YW4gVHJ1eWVuLCBOZ3V5ZW4gdmFu IFR1LCBOZ3V5ZW4gVHksIExlIGRhbmggWHVvbmcsIHNvbmcgdGh1IGhvaSBoYW5nIG1heSBjaHVj IG5hbSBxdWEgDQpjaHVuZyBkYSB2YWNoIHRyYW4gZHVvYyBiYW8gbmhpZXUgdGVuIGNvIGhvaSwg aHV1IGtodXluaD8gQ2h1bmcgZHVuZyBsZW4gaG8gc28gdmUgbmhvbSBUNCAoVHJhbiBiYWNoIERh bmcsIFRyYW4gdmFuIEdpYXUsIFRyYW4gdHJvbmcgVGFuLCBUcmFuIHZhbiBUYW8pIGNvIGFtIG11 dSBkdWEgbWllbiBOYW0gbHkga2hhaSB0aGFuaCBtb3QgbnVvYyB2b2kgbGEgY28gbmVuIHZhbmcg c2FvIGRvLCBjaHVuZyBkaSBkYXUgdHJvbmcgdmllYyANCnF1eSBrZXQgU29uIFR1bmcgdmEgbmhv bSBDaGlldSBuZ28gdmFuLCBOZ28gVGh1YyB2YSBuaG9tIERpY2ggaG9jIC4uLiBsYSBjbyBob2ks IGNhcCB0aWVuIGh1dSBraHV5bmgsIHBoYW4gZG9uZywgbGEgbmd1b2kgY3VhIGRpY2gga2hpZW4g bmhpZXUgZGllbSBjaHVhIGRvbmcgdGh1YW4gbyBub2kgYm8sIG5vaSBkaWEgZGFuZyByYSBjbyB0 aGUgdHJhbyBkb2kgZGUgZGkgdG9pIGRvbmcgdGh1YW4sIG5oYXQgdHJpIHRyZW4gY28gc28gbG9p IGljaCANCmNodW5nIGN1YSBkYW4gdG9jLCBjdWEgY2FjaCBtYW5nIGNhYmdmIHRybyBuZW4gYmF0 IGRvbmcgaG9uLCB0aGFtIGNoaSBjb24gZGkgdG9pIGRvaSBraGFuZy4gQ2h1bmcgdGh1IHRoYXAs IGJhbyBjYW8gbmhpZXUgdGluIHhhdSB2ZSBoYW5nIGxvYXQgdHJpIHRodWMgY28gdGVuIHR1b2kg bmh1IA0KTmd1eWVuIGRpbmggRGF1LCBUdW9uZyBMYWksIFRyYW4gZHUgTGljaCwgTmd1eWVuIG5n b2MgVHJhbiBzb25nIHZlIGNvIGJhbiBuaHVuZyB0aW4gZG8gZGV1IGtob25nIHhhYyB0aHVjLiBD YSBWaWV0IGtpZXUgdmUgbnVvYyBsYW0gYW4gbmh1IENoYXJsZXMgRHVjLCBEaW5oIGh1dSBEdWMs IE5ndXllbiBuZ29jIE15LCBIYSB0b24gVmluaCwgY29uZyBkYW4gVmlldCBOYW0gcmEgbnVvYyBu Z29haSBsYW0gYW4gbmh1IE5ndXllbiANCmNoaSBEdW5nLCBOZ3V5ZW4gY2FuaCBTb24sIE5ndXll biBuaGF0IFRpZW4sIFZvIG5ndXllbiBUdWUsIFBoYW0gbmhhdCBWdW9uZyBsYW4gY29uZyBkYW4g VmlldCBOYW0gbGFuIG8gdHJvbmcgbnVvYyBuaHUgVHJ1b25nIGdpYSBCaW5oLCBIdXluaCBwaGkg RHVuZywgTWFpIGtpZXUgTGllbiBkZXUgYmkgY2h1bmcgbmdoaSBuZ28sIHRoZW8gZG9pIHF1eSBj aHVwIHRodSBob2kgY2h1bmcgZGEgY2h1bmcgbWluaCBkdW9jIGFpIA0KdHJvbmcgc28gZG8gbGEg cGhhbiBib2ksIHBoYW4gZG9uZywgbGEgbmd1b2kgY3VhIHRpbmggYmFvIE15PyBEaSB2YW8gbm9p IGJvIGJhbiBMYW8sIGJhbiBDYW1wdWNoaWEgdGhpIGNodW5nIGN1bmcgbmdoaSBuZ28gdGhlbyBk b2kgcXV5IGNodXAgaGFuZyBsb2F0IGNhYyB2aSBsYW5oIGRhbyBjYXAgDQpjYW8gbmh1IE51LWhh YyBQaHVtLXhhLXZhbiwgTy1zYS1DYW4gVGhhbS1tYS10aGUtdmEsIFhvbS14YS12YXQgTGVuaC14 YS12YXQsIFRob29uZy14aW5nIFRoYW0gbWEgdm9uZyhjdWEgTGFvKSwgSHVuIFNlbiwgQ2hpYSBT aW0gU28gS2hlbmggKGN1YSBDYW1wdWNoaWEpIGxhIHRoYW4gTXksIHRoYW4gVHJ1bmcgUXVvYywg dGhhbiBUaGFpIExhbiwgY2hvbmcgVmlldCBOYW0gc29uZyB0aHUgaG9pIGRpZXUgZG8gY28gYmFv IA0KbmhpZXUgcGhhbiB0cmFtIGxhIHN1IHRoYXQ/DQogIA0KRHVvbmcgbmh1IGFpIGtob25nIHVu ZyBobyBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IHRoaSBkZXUgYmkgYm9uIGNodW5nIHF1eSBj aHVwIGxhIGRpY2gsIGxhIG5ndW9pIGN1YSB0aW5oIGJhbyBNeSwgZGV1IGJpIGNodW5nIHZ1IGNh byxib2kgbmhvLGxhdCBkby4gQ2h1bmcgdnVhIGhvIGhhbyAiYmFvIHZlIHRvbmcgYmkgdGh1IGxh IGJhbyB2ZSBEYW5nIiB2dWEgdGltIG1vaSBjYWNoLCBkdW5nIG1vaSB0aHUgZG9hbiCWIGtlIGNh IG5odW5nIA0KY2FjaCwgbmh1bmcgdGh1IGRvYW4geGF1IHhhIG5oYXQsIGJpIG9pIG5oYXQgliBk ZSBkYW5oIHRoYW5nIHZhbyB0b25nIGJpIHRodSBMZSBraGEgUGhpZXUsIGNob25nIGxhaSB2aWVj IHRvbmcgYmkgdGh1IExlIGtoYSBQaGlldSB0YWkgY3UuIENodW5nIGJhbyAibGF0IGFuLiIgTGEg ZG9uIG5oYW0gDQpoaWVtIGJhYyBuaGF0IG1hIHRoZSBsdWMgdGh1IGRpY2ggZG8gTXkgZHVuZyBk YXUgbmhhbSB2YW8gY2FjaCBtYW5nIG51b2MgdGEgc29uZyB2b2kgY2FjIGhhbmggZG9uZyBuaGFt IHZhbyBOZ3V5ZW4gbWFuaCBDYW0sIFBoYW4gRGllbiwgVHJhbiBiYWNoIERhbmcsIFZvIG5ndXll biBHaWFwLCBMZSBraGEgUGhpZXUsIFRydW9uZyB0YW4gU2FuZywgVHJhbiB0cm9uZyBUYW4sIFZv IHZpZXQgVGhhbmgsIFZvIHRoaSANClRoYW5nLi4uIHRoaSBjaHVuZyB4dW5nIGRhbmcgbGEgYmFj IHRoYXkgdmUgImxhdCBhbi4iLiBDaHVuZyBjaGluaCBsYSBrZSBwaGF0IGNhbyBjbyBkbyBkZSBj aG9uZyBsYWkgY28gZG8uDQogDQogTmhpZXUgbmd1b2kgbyBUb25nIGN1YyBJSSByYXQgbG8gbmdh aSBraGkgdGhheSBnaXVhIHRob2kgYmluaCwga2hhIG5hbmcgeGF5IHJhIGNoaWVuIHRyYW5oIGRh IGR1b2MgRGFuZyBuaGFuIGRpbmggcXVhIG1heSBreSBkYWkgaG9pIGxhIGtob25nIGNvIG1hIE5n dXllbiBjaGkgVmluaCB2YSBwaGUgbHUgbGFpIHhheSBkdW5nIGx1YyBsdW9uZyB0cmluaCBzYXQg Ym8gZG9pIG5hbSB0cm9uZyBkb2kgaGluaCBDdWMgcXVhbiBiYW8gcm9pIEN1YyAgDQp0aW5oIGJh byB2b24gY2hpIG8gY2FwIHRpZXUgZG9hbiB0aG9pIGNob25nIFBoYXAsIGNob25nIE15LCBjYXAg dHJ1bmcgZG9hbiB0aG9pIGNoaWVuIHRyYW5oIGhhaSBkYXUgYmllbiBnaW9pIHBoaWEgQmFjIHZh IHBoaWEgVGF5IE5hbSBsZW4gdGhhbmggMyBkb2FuICJ0aW5oIGJhbyBoYW5oIGRvbmciIA0KbGEg SzMsNzQsOTQgY2EgYmEgZGV1IGNvIHF1eSBtbyBjYXAgbHUgZG9hbiAoZG9hbiB0cnVvbmcgZHVv YyB0aGFuZyBxdWFuIGhhbSB0b2kgZGFpIHRhKSwgZGUgZG8gdGF5IGNoYW4gdGhhbiB0aW4gbmhh dCBjdWEgTmd1eWVuIGNoaSBWaW5oIG5hbSwgZGV1IGRvbmcgbyBjYWMgZG8gdGhpIGxvbiBiYWMg DQpuaGF0IGN1YSBkYXQgbnVvYywgZGV1IHRyaWVuIGtoYWkgbmhpZXUgaG9hdCBkb25nIGRpZXAg YmFvIHZhIGRldSBkdW9jIHRyYW5nIGJpIGNhYyB2dSBraGksIHRyYW5nIHRoaWV0IGJpIGRhYyBj aHVuZywgdHJvbmcgZG8gY28gbWF5IGNodWMgeGUgdGhpZXQgZ2lhcC4NCiANCiBIbyB0dSBob2k6 ICJUaW5oIGJhbyBoYW5oIGRvbmciIHRodWMgY2hhdCBsYSBnaT8gVGFpIHNhbyBjYWMgZG9hbiAi dGluaCBiYW8gaGFuaCBkb25nIiBkbyBsYWkgcXV5IG1vIGxvbiBuaHUgdmF5IHRyb25nIGtoaSBx dXkgbW8gbHVjIGx1b25nIHRyaW5oIHNhdCBibyBkb2kgY3VhIGNhYyBxdWFuIGtodSwgDQpxdWFu IGRvYW4sIHF1YW4gY2h1bmcsIGJpbmggY2h1bmcgY2hpIG8gY2FwIHRpZXUgZG9hbj8gQ2h1bmcg bmhhbSB2YW8gZG9pIHR1b25nIHRhYyBjaGllbiBuYW8/IFJvIHJhbmcgbG8gbmdhaSBjdWEgaG8g a2hvbmcgcGhhaSBsYSB2byBjby4NCiAgDQpWaSBjdW9uZyB2b25nIGF5IG1hIE5ndXllbiBjaGkg VmluaCB2YSBwaGUgbHUgZGEgdGltIG1vaSBjYWNoIHRpZXAgY2FuLCB0cmFuaCB0aHUsIGxvaSBk dW5nIGxhbmggZGFvIGNhbyBuaGF0IGN1YSBxdWFuIGRvaSxEYW5nLCBOaGEgbnVvYy4gQ2h1bmcg aGlldSBybyBkbyBsYSBjYWNoIGNvIGhpZXUgcXVhIGNhbyBuaGF0IGRlIG5oYXkgdm90LCBkaSB0 YXQsIGRvbiBkYXUsIGRvdCBjaGF5IGdpYWkgZG9hbiB0cm9uZyB2aWVjIHRoYW5nIHF1YW4gliBw aGF0IA0KdGFpIGN1YSBjaHVuZy4gSGllbiB0cm9uZyBUb25nIGN1YyBJSSBjbyBuaGlldSB5IGtp ZW4gY2hvIHJhbmcgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBkYSByYXQgdGhhbmggY2Nvbmcg ZG9pIHZvaSB0b25nIGJpIHRodSBOb25nIGR1YyBNYW5oLCBuZ3V5ZW4gY28gdmFuIGJhbiBjaGFw IGhhbmggdHJ1bmcgdW9uZyBkYW5nIExlIGR1YyBBbmgsIG5ndXllbiBibyB0cnVuZyBCbyBxdW9j IHBob25nIFBoYW0gdmFuIFRyYSwgY2h1IG5oaWVtIA0KVG9uZyBjdWMgY2hpbmggdHJpIExlIHZh biBEdW5nLCB0aHUgdHJ1b25nIEJvIHF1b2MgcGhvbmcgTmd1eWVuIGh1eSBIaWV1LCBkYSBzdSBk dW5nIGR1b2MgbmFtIHZpIG5heSBsYW0gY2hvIGR1YSwgbGFtIGNhaSBvIGNoZSBjaHUgeWV1IGNo byBjYWMgdmllYyBsYW0gcGhpIG5naGlhLCBwaGkgcGhhcCBjdWEgY2h1bmcuIE5ndW9pIHRhIHN1 eSBnaWFtIG5pZW0gdGluIHZhbyBsYW5oIGRhbyBjYXAgY2FvIGN1YSBRdWFuIGRvaSwgDQpEYW5n LCBOaGEgbnVvYyB2YSBuZXUgcmEgbmhpZXUgbmdoaSB2YW4sIHRoYWMgbWFjLiBWaSBkdToNCiAN CiAxIJYgRGUgbGFtIGNvbmcgdGFjIHRoYW0gbXV1IHRhYyBjaGllbiBjYW4gbmFtIGR1b2MgYmEg bm9pIGR1bmcgbGEgdGluaCBoaW5oIGRpY2gsIHRpbmggaGluaCB0YSB2YSBkaWV1IGtpZW4gY2hp ZW4gdHJ1b25nLCB0cm9uZyBkbyB0aW5oIGhpbmggZGljaCBsdW9uIGR1b2Mgbm9pIHRvaSBkYXUg dGllbiB0cm9uZyBjYWMga2UgaG9hY2ggdGFjIGNoaWVuLCBxdXlldCB0YW0gY2hpZW4gZGF1IGN1 YSBuZ3VvaSBjaGkgaHV5IHF1YW4gc3UgY2FjIGNhcCwgdmF5IA0KdGhpIHRhaSBzYW8gbGFpIGR1 YSBDdWMgdGluaCBiYW8gcmEga2hvaSBCbyB0b25nIHRoYW0gbXV1LCBuYWcgbm8gbGVuIHRoYW5o IFRvbmcgY3VjIHRpbmggDQpiYW8gdmEgZHV5IHRyaSBtYWkgaGluaCB0aHVjIHRvIGNodWMgbmF5 IGJhdCBjaGFwIHN1IHBoYW4gZG9pIHR1IG5oaWV1IGNhbiBibyBjYXAgY2FvIGN1YSBxdWFuIGRv aSwgRGFuZywgTmhhIG51b2MsIGNhIGR1b25nIGNodWMgbGFuIGRhIG5naGkgaHV1PyBLaG9uZyBj byB0aW5oIGJhbywgDQpraG9uZyB0cnVjIHRpZXAgY2hpIGh1eSB0aW5oIGJhbyBsaWV1IEJvIHRv bmcgdGhhbSBtdXUgdmEgdG9uZyB0aGFtIG11dSB0cnVvbmcuIGNvIGNvbiBiYW8gaGFtIGRheSBk dSB5IG5naGlhIG5odSB0ZW4gZ29pPyAobHV1IHkgcmFuZyBkdSB0aGFvIHRvbmcga2V0IDUwIG5h bSBjb25nIHRhYyB0aGFtIA0KbXV1IGNoaWVuIGx1b2MgY3VhIEJvIHRvbmcgdGhhbSBtdXUgY3Vu ZyBnaGkgcm8gcmFuZyBCbyB0b25nIHRoYW0gbXV1IGRhIHNhaSBsYW0ga2hpIGRvbmcgeSBjaG8g Q3VjIHRpbmggYmFvIHRhY2ggcmEga2hvaSBCbyB0b25nIHRoYW0gbXV1KTsNCiAgDQoyIJYgQ29u ZyB0YWMgY2FuIGJvIHRyb25nIHF1YW4gZG9pIHZvbiByYXQgY2hhdCBjaGUgdmkgeWV1IGNhdSB2 ZSBwaGFtIGNoYXQgZGFvIGR1YywgcGhhbSBjaGF0IGNoaW5oIHRyaSwgdHJpbmggZG8gY2h1eWVu IG1vbiwgYmFuIGxpbmggbmdoaWVwIHZ1IC4uLiBkb2kgdm9pIGNhbiBibyBsYSBjYW8sIA0KY2h1 YyB2dSB2YSBjYXAgYmFjIGx1b24gZ2FuIGxpZW4gdm9pIG5oYXUsIGNhcCBiYWMgdGhpIGNvIG5p ZW4gaGFuIHZhIHRhdCBjYSBkYSBkdW9jIGx1YXQgaG9hLCB2YXkgbmhvIGFpIG1hIG5odW5nIGtl IGNvIG5oaWV1IHR5IHZldCwgeWV1IGtlbSBjYSB2ZSBwaGFtIGNoYXQgbGFuIHZlIG5hbmcgbHVj IG5odSBOZ3V5ZW4gY2hpIFZpbmgsIFBoYW0gbmdvYyBIdW5nLCBEYW5nIHRyaSBEdW5nLCBOZ3V5 ZW4gbWluaCBUYW4sIFRyYW4gdmlldCANClRoYW5nLCBUcmFuIHF1b2MgTWluaCwgTmd1eWVuIHF1 YW5nIER1bmcsIE5ndXllbiB0cm9uZyBIYWksIE5ndXllbiBxdWFuZyBIYWksIA0KRGFuZyB2YW4g RG9uZywgTmd1eWVuIHRpZW4gQmFjIGxhaSB0aGFuZyBxdWFuIHRpZW4gY2h1YyBuaGFuaCBuaHUg dGhlPw0KIA0KIDMgliBUYWkgc2FvIG5hbSAyMDAxIFBoYW0gdmFuIFRyYSBsYWkga3kgbmdoaSBx dXlldCAxODIgY3VhIFRodW9uZyB2dSBkYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZywgY2hvIHBo ZXAgVG9uZyBjdWMgSUkgbW90IGNvIHF1YW4gdHJ1YyB0aHVvYyBEYW5nIHV5IHF1YW4gc3UgdHJ1 bmcgdW9uZyANCnZhIGJvIHRydW9uZyBCbyBxdW9jIHBob25nIJYgdHJ1YyB0aWVwIGJhbyBjYW8g dGluIHR1YyB2b2kgdG9uZyBiaSB0aHUsIGNodSB0aWNoIG51b2MsIHRodSB0dW9uZyBjaGluaCBw aHUgdGhheSB2aSBkZSBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyBob2FjIGJvIHRydW9uZyBC byBxdW9jIHBob25nIA0KYmFvIGNhbz8gVHJvbmcgc28gY2FjIGNvIHF1YW4gY2FwIHR1b25nIGR1 b25nIFRvbmcgY3VjIElJIGN1YSBCbyBxdW9jIHBob25nIHZhIEJvIGNvbmcgYW4gY28gY28gcXVh biBuYW8gZHVvYyBwaGVwIGJhbyBjYW8gbmh1IHZheSBraG9uZz8NCiANCiA0IJYgVGFpIHNhbyBu YW0gMjAwNiBQaGFtIHZhbiBUcmEgbGFpIGt5IHZhbiBiYW4gY2hvIHBoZXAgdG9uZyBjdWMgdHJ1 b25nIFRvbmcgY3VjIElJIJYgbW90IG5ndW9pIGtob25nIHBoYWkgbGEgdXkgdmllbiB0cnVuZyB1 b25nLCB1eSB2aWVuIERhbmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nIGt5IHF1eWV0IGRpbmggdGhh bmcgcXVhbiBoYW0gY2hvIGNhbiBibyB0b2kgY2FwIHRydW5nIHRhIHRyb25nIGtoaSB0dSBsZW5o IGNhYyBxdWFuIGtodSwgDQpxdWFuIGNodW5nIChkYSBwaGFuIGxhIHV5IHZpZW4gdHJ1bmcgdW9u ZywgdXl2aWVuIERhbmcgdXkgcXVhbiBzdSB0cnVuZyB1b25nKSBsdWMgZG8gY2hpIGR1b2Mga3kg cXV5ZXQgZGluaCB0aGFuZyBxdWFuIGhhbSBjaG8gY2FuIGJvIHRvaSBjYXAgdGhpZXUgdGE/DQog DQogNSCWIFRhaSBzYW8gMTAgLTE1IG5hbSBxdWEgZGEgZGUgeGF5IHJhIGNhYyB2dSB2aWVjIHJh dCBuZ2hpZW0gdHJvbmcgbmh1IHZ1IFQ0LCB2dSBBMTAsdnUgU2F1IFN1IGRhIGRlIGNhcCB0cmVu IGhhaSBsYW4gYmF0IG5nbyB0cnVvYyBjYWMgaGFuaCBkb25nIGdheSByb2kgcXV5IG1vIGxvbiBv IFRheSBOZ3V5ZW4sIGJhdCBuZ28gdHJ1b2MgdnUgTHkgVG9uZyxiYXQgbmdvIHRydW9jIG5oaWV1 IHN1IGtpZW4gcXVhbiB0cm9uZyBvIGNhYyANCm51b2MsIGRhIGNvIG5oaWV1IGNhbiBibyBjaHUg dHJpLCBjaHUgY2hvdCBiaSBreSBsdWF0IHRoYW0gY2hpIGJpIGR1YSByYSB4ZXQgc3UgZGEga2hv bmcgbGFtIHRvdCBuaGllbSB2dSBsYW0gYW0gbXV1IHRodSBkb2FuIGNhYyBkb2kgdHVvbmcgdGlu aCBiYW8sIG11YyB0aWV1IHRpbmggYmFvIGRvaSB2b2kgZGFuIHRvYyB0YSwgY2FjaCBtYW5nIG51 b2MgdGEgaGF1IG5odSBkYSBraG9uZyBjbyB0aGVtIGNhIG5oYW4gbmFvIGxhcCBjaGllbiBjb25n IG1vaSANCmR1b2MgcGhvbmcgdGFuZyBkYW5oIGhpZXUgQW5oIGh1bmcgbHVjIGx1b25nIHZ1IHRy YW5nIG5oYW4gZGFuIG1hIHRoYW5nIDQtMjAwOCBUb25nIGN1YyBJSSB2YW4gZHVvYyBwaG9uZyB0 YW5nIGRhbmggaGlldSBBbmggaHVuZyBsdWMgbHVvbmcgdnUgdHJhbmcgbmhhbiBkYW4/IFN1eSAN CmNobyBjdW5nIHRoaSBkYW5oIGhpZXUgYXkgY2FuIGNobyBhaT8gTHV1IHkgcmFuZyB2b2kgdGlu aCBiYW8gZGFjIGJpZXQgbGEgdm9pIGRpZXAgYmFvIGRvIA0Kc3UgY2kgcGhvaSBjdWEgeWV1IGNh dSBjdSBsaSwgZG9uIHR1eWVuIHRyb25nIHRvIGNodWMgaG9hdCBkb25nIG1hIHNvIGNhIG5oYW4g QW5oIGh1bmcgbHVvbiBuaGlldSBob24gaGFuIHNvIHRhcCB0aGUgQW5oIGh1bmcgdmEgY2EgdGhv aSBjaG9uZyBQaGFwLCB0aG9pIGNob25nIE15IGxhbiB0aG9pIA0KY2hpZW4gdHJhbmggaGFpIGRh dSBiaWVuIGdpb2kgbmdhbmggdGluaCBiYW8gcXVhbiBzdSBkZXUgY2h1YSBkdW9jIHBob25nIHRh bmcgZGFuaCBoaWV1IEFuaCBodW5nIHR1eSBkYSBjbyBoYW5nIGNodWMgZG9uIHZpIEFuaCBodW5n LCBoYW5nIHRyYW0gY2EgbmhhbiBBbmggaHVuZy4gQ3VuZyANCmNhbiBub2kgdGhlbSBsYSB0cm9u ZyB0b25nIGN1YyBJSSBkYW5nIGNvIGR1IGx1YW4gcmFuZyB2dWEgcXVhIE5ndXllbiBDaGkgVmlu aCB2YSBwaGUgbHUgZGEgYm8gcmF0IG5oaWV1IHRpZW4gZGUgImNoYXkgQW5oIGh1bmciDQogDQog VHJvbmcgdGhvaSBnaWFuIHF1YSB0YWMgZ2lhIGN1YSBiYWkgdmlldCBuYXkgZGEgZ3VpIDUgbGEg ZG9uIHRvaSBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyx0aHUgdHJ1b25nIGJvIFF1b2MgUGhv bmcgdGhhbSBjaGkgdm9pIGNhIFV5IGJhbiBraWVtIHRyYSB0cnVuZyB1b25nLCBraWVuIG5naGkg bmh1bmcgdmFuIGRlIGtob25nIGNoaSB0cnVjIHRpZXAgbGllbiBxdWFuIGRhbmggZHUsc2luaCBt ZW5oIGNoaW5oIHRyaSB2YSBzdSBhbiB0b2FuIGN1YSANCm1pbmggliBtb3QgY2FuIGJvIHRydW5n IGNhcCBjdWEgUXVhbiBkb2ksIGN1YSBEYW5nIJYgbWEgY29uIHRydWMgdGllcCBsaWVuIHF1YW4g Y2hhdCBsdW9uZyBjaGluaCB0cmksY2hhdCBsdW9uZyBuZ2hpZXAgdnUga2hhIG5hbmcgaG9hbiB0 aGFuaCBjaHVjIG5hbmcsbmhlbSB2dSBjdWEgdG9uZyBjdWMgSUkgliBtb3QgY28gcXVhbiBjbyBt YXQgdHJvbmcgeWV1IGN1YSBRdWFuIGRvaSxjdWEgRGFuZywgY3VhIE5oYSBudW9jLCBsaWVuIHF1 YW4gDQp2aWVjIGNoYXAgaGFuaCBuZ3V5ZW4gdGFjIHRvIGNodWMsIGhvYXQgZG9uZyBjdWEgcXVh biBkb2ksY3VhIERhbmcsIHBoYXAgbHVhdCBjdWEgTmhhIG51b2MuIERhbmcgdXkgcXVhbiBzdSB0 cnVuZyB1b25nLCB0aHUgdHJ1b25nIEJvIHF1b2MgcGhvbmcgdmEgVXkgYmFuIGtpZW0gdHJhIHRy dW5nIA0KdW9uZywgdGh1IHRydW9uZyBCbyBxdW9jIHBob25nIHZhIFV5IGJhbiBraWVtIHRyYSB0 cmEgdHJ1bmcgdW9uZyBkYSBjaGFtIHRyZSwgaG9pIGhvdCANCnRyb25nIHZpZWMgeGVtIHhldCwg Z2lhaSBxdXlldCwgdXkgdmllbiB0aHVvbmcgdnUgRGFuZyB1eSBxdWFuIHN1IHRydW5nIHVvbmcg TGUgdmFuIER1bmcgY29uIGt5LCBtb3QgdmFuIGJhbiBndWkgVXkgYmFuIGtpZW0gdHJhIHRydW5n IHVvbmcgliBEYW5nIHV5IHF1YW4gc3UgdHJ1bmcgdW9uZyB0aGkga2hvbmcgdHJ1YyB0aWVwIGdh cCBnbywgbGF5IHkga2llbiBjdWEgY2FjIHRvIGNodWMgZGFuZywgdG8gY2h1YyBjaGluaCBxdXll biANCmNhcCBjbyBzbyBub2kgdGFjIGdpYSBiYWkgdmlldCBuYXkgY29uZyB0YWMgdmEgeSBraWVu IGN1YSBjYW4gYm8gY28gbmhpZXUgbmFtIGNvbmcgdGFjIHRyb25nIG5nYW5oIHRpbmggYmFvIHF1 YW4gc3UsIGRhYyBiaWV0IGxhIGNhYyBjYW4gYm8gZG8gdGFjIGdpYSBiYWkgdmlldCBuYXkgZ2lv aSB0aGlldSB0aGVvIA0KZGUgbmdoaSBjdWEgY2hpbmggVG8gY29uZyB0YWMgbWEgY29uIGdvaSB5 IGxhbmggZGFvLCBjaGkgaHV5IFRvbmcgY3VjIElJIHZhIHRhYyBnaWEgYmFpIHZpZXQgbmF5IGN1 bmcga2V0IHRodWMgdnUgdmllYyAuLi4gVmllYyBuYXkgY3VuZyB2b2kgbmh1bmcgdmllYyBkYSBu ZXUgbyB0cmVuIGNobyB0aGF5IHJhdCANCnJvIHJhbmcgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBs dSB0aGF0IHN1IGxhIG5odW5nIG1hbSBiZW5oIHZvIGN1bmcgbmd1eSBoaWVtLCBjaGFuZyBuaHVu ZyBsYW0gaHUgaG9uZyBoZXQgY28gcXVhbiB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4gc3Ug LSB0YWkgbWF0IGN1YSBxdWFuIGRvaSwgDQpjdWEgRGFuZywgY3VhIE5oYSBudW9jLCBuZXUga2hv bmcgbWF1IGNob25nIHF1ZXQgc2FjaCwgY2F0IGJvLCBkaWV0IHRydSB0aGkgaGF1IHF1YSB0aGF0 IGtob24gbHVvbmcuDQogIA0KVmkgY3Vvbmcgdm9uZyBheSBtYSBOZ3V5ZW4gQ2hpIFZpbmggdmEg cGhlIGx1IGRhIHBob3QgbG8sIGJlIGNvbmcgbmhpZXUgbmd1eWVuIHRhYywgeWV1IGNhdSwgcXV5 IGNoZSwgcXV5IGRpbmggLi4uIGN1YSBxdWFuIGRvaSwgRGFuZywgTmhhIG11b2MgdmEgYmFuIHRo YW4gdGluaCBiYW8uDQogDQogQ2FjIHZhbiBiYW4gY28gdGluaCBwaGFwIHF1eSBjdWEgcXVhbiBk b2ksIERhbmcsIE5oYSBudW9jIGRldSB4YWMgZGluaCBDdWMgdGluaCBiYW8gliBCbyB0b25nIHRo YW0gbXV1IHRydW9jIGtpYSwgVG9uZyBjdWMgSUkgliBCbyBxdW9jIHBob25nIGhpZW4gbmF5IGxh ICJjbyBxdWFuIHRpbmggYmFvIHF1YW4gc3UuIiwgIkx1YyBsdW9uZyB0aW5oIGJhbyB0aHVvYyBC byBxdW9jIHBob25nLiIsIGF5dmF5IGNodW5nIGxhaSBjb25nIGtoYWkgZ29pIFRvbmcgY3VjIElJ IGxhIFRvbmcgY3VjIHRpbmggYmFvIHF1b2MgcGhvbmcsIGxhaSBtbyB4ZSBraGFpIG5pZW0gInF1 b2MgcGhvbmcuIi4gDQpUaGVvIHkgY2h1bmcgZGUgeGF5IGR1bmcgdG8gY2h1YywgdHJpZW4ga2hh aSBob2F0IGRvbmcgdHJlbiBtb2kgbGluaCB2dWMsIGtlIGNhIGxpbmggdnVjIG5vaSBkaWEsIG5v aSBibyB2YSBjYWMgbGluaCB2dWMgY28gdGhlIG5vaSBsYSBraG9uZyBnYW4gZ2kgdm9pIGNvbmcg dGFjIHF1YW4gc3UsIHF1b2MgDQpwaG9uZy4gQ2h1bmcgbHVhIGRvaSBjYXAgdHJlbiwgZ3VpIGxl biBuaGlldSAidGluIHRpbmggYmFvLiIgS2hvbmcgcm8gbmd1b24gdGluLCB0cnVvbmcgaG9wIHRo dSB0aW4sIGtob25nIGtoYW5nIGRpbmggZHVvYyBkbyB4YWMgdGh1YyBjdWEgbm9pIGR1bmcgdGhv bmcgdGluLCB0cm9uZyBkbyBjaGllbSB0eSBsZSBsb24gbmhhdCB2YSBjdW5nIGdheSB0YWMgaGFp IG5oYXQgbGEgdGluIHZlIG5vaSBiby4gVGluIGNvIG5vaSBkdW5nIHhhdSB2ZSBuZ3VvaSBuYXkg DQp0aGkgY2h1bmcgZ3VpIGNobyBuZ3VvaSBraGFjLCBnYXkgbmVuIHN1IG5naGkga3ksIGNoaWEg cmUsIHJvaSByZW4uIFJhdCBuaGlldSB0aG9uZyB0aW4gbGEgZG8gY2h1bmcgdGhlbSB0aGF0LCBu Z3V5IHRhbyBuaGFtIHZ1IGNhbywgYm9pIG5obywgbGF0IGRvLiBUaGFtIGNoaSBjaHVuZyBjb24g dHJ1YyB0aWVwIA0KaG9hYyBnaWFuIHRpZXAgKHN1IGR1bmcgbmh1bmcgImNvbmcgdGFjIHZpZW4i a2lldSBuaHUgRGFuZyBkaW5oIExvYW4pIHBoYXQgdGFuIHJhIGRpZW4gcm9uZyBtb3Qgc28gdGhv bmcgdGluIGxvYWkgbmF5LCBjaGFuZyBoYW4gdGhvbmcgdGluIHZlIFZvIG5ndXllbiBHaWFwLCB2 ZSBOZ3V5ZW4gbmFtIA0KS2hhbmguIE5hbSAyMDAxLCB0cnVvYyBEYWkgaG9pIElYIGN1YSBEYW5n LCBiaSB0byBjYW8gbGEgbGFtIHRpbmggYmFvIG5vaSBibyBzYWkgDQpuZ3V5ZW4gdGFjLCBjaHVu ZyBsaWVuIHRvIGNodWMgY2h1cCBsYWkgZHVvaSBkYW5nIGZpbGUgbWF5IHRpbmggcm9pIHRpZXUg aHV5IGNhYyB2YW4gYmFuIHRpbiB0dWMsIHRhaSBsaWV1IGNvIGxpZW4gcXVhbiBkZSB4b2EgZGF1 IHZldCwgZGUgcGhvbmcgdGluaCBoaW5oIGRpZW4gYmllbiB0aGVvIGh1b25nIGJhdCBsb2kgY2hv IGNodW5nLiBTYXUgZG8gY2h1bmcgdmFuIGR1eSB0cmkgdG8gY2h1YyB2YSBob2F0IGRvbmcgdGh1 IHRoYXAsIHh1IGx5LCBiYW8gY2FvIHRpbiANCnR1YyB2ZSBub2kgYm8uIExvYWkgdGluIG5heSBk dW9jIGdvaSBsYSB0aW4gcmllbmcsIGR1b2MgY2h1eWVuIGxlbiBOZ3V5ZW4gY2hpIFZpbmggcXVh IGJhbiBBIGN1YSBjdWMgZGllcCBiYW8sIHF1YSBQaG9uZyA3MyBjdWEgVG9uZyBjdWMgbWEga2hv bmcgcXVhIHBob25nIG5naGllbiBjdXUgDQp0b25nIGhvcCBjdWEgY3VjIGRpZXAgYmFvLCBraG9u ZyBxdWEgY2EgVmllbiA3MCBjdWEgVG9uZyBjdWMgbGEgY2FjIGNvIHF1YW4gY28gY2h1YyBuYW5n IHh1IGx5IHRpbiB0dWMuIE8gY2FjIHBob25nIGRpZXAgYmFvLCBjdWMgZGllcCBiYW8gY29uIGNv IHRhbSBseSBjb2kgdHJvbmcgdGluIHJpZW5nIA0KaG93biBjYWMgdGluIGtoYWMuIGNodW5nIHF1 YSBsYSAiZGFuaCBjaGV0LCBuZXQga2hvbmcgY2h1YSIuDQogIA0KQ2FuIG5vaSB0aGVtIHJhbmcg Y2h1YyBuYW5nLCBuaGllbSB2dSB2dWEgY28gcXVhbiB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1 YW4gc3UgZGEgZHVvYyBxdWFuIGRvaSwgRGFuZywgTmhhIG51b2MgeGFjIGRpbmggcmF0IHJvIHJh bmcuIE5ldSBoaWV1IGR1bmcgY2h1YyBuYW5nLCBuaGllbSB2dSBheSB2YSBsYSBjYW4gYm8sIGRh bmcgdmllbiwgcXVhbiBjaHVuZyB0b3QgdGhpIG5ndW9pIHRhIHNlIGtob25nIGJhbyBnaW8gY3Vu ZyBjYXAgdGluIHR1YyANCnRpbmggYmFvIG5vaSBibyBjaG8gVG9uZyBjdWMgSUkuIFZlIGNvIGJh biwgY2hpIGNvIGhhaSBsb2FpIG5ndW9pIHRodSB0aGFwLCBjdW5nIGNhcCB0aW4gdHVjIHRpbmgg YmFvIG5vaSBibyBjaG8gVG9uZyBjdWMgSUk6DQogIA0KMSCWIE5odW5nIG5ndW9pIGNvIHRyaW5o IGRvIG5oYW4gdGh1YyB5ZXUga2VtLCBoaWV1IHNhaSBjaHVjIG5hbmcsIG5oaWVtIHZ1IGN1YSBU b25nIGN1YyBJSS4NCiANCjIgliBOaHVuZyBuZ3VvaSBoaWV1IGR1bmcgY2h1YyBuYW5nIGN1YSBU b25nIGN1YyBJSSBuaHVuZyBtdW9uIHRob25nIHF1YSwgbXVvbiBkdWEgdmFvIFRvbmcgY3VjIElJ IGRlIHRodWMgaGllbiByaWVuZy4gUm8gcmFuZyBsYSB2b2kgbmd1b24gdGluIG5odSB2YXkgdGhp IG5vaSBkdW5nIHRob25nIHRpbiByYXQga2hvIG1hIGNodWFuIHhhYy4NCiANCiBDaHVuZyBudXAg Ym9uZyBuZ3V5ZW4gdGFjIG5naGllcCB2dSwgeWV1IGNhdSBuZ2hlIG5naGllcCBkZSBiZSBjb25n IGNhYyBtYXQgY29uZyB0YWMgdG8gY2h1YywgY2FuIGJvLCBraWVtIHRyYSwgdGhpIGR1YSCWIGto ZW4gdGh1b25nLCBjaGluaCBzYWNoIC4uLiB0aGVvIGJhbyBkYW0gbmd1eWVuIHRhYyBiaSBtYXQs IGJhbyBkYW0geWV1IGNhdSBjdSBseSwgZG9uIHR1eWVuLCB0aW5oIGdvbiB2YXkgbWEgY2h1bmcg bGllbiB0dWMgeGFvIHRyb24gZG9pIA0Kbmd1IGNhbiBibyB0aGVvIGNoaWV1IG5nYW5nLCB0b2kg dGFuIGNhcCB0aGFwIG5oYXQgbGEgY2FuIGJvIGhvYXQgZG9uZyAoY28gY2FuIGJvIG1hdCBjaGkg dHJvbmcgZGFtIGJhIG5hbSBtYSBkYSAncXVhIHRheS4iIENhIGNodWMgY2FuIGJvIGhvYXQgZG9u ZykuIEhpZW4gbyBUb25nIGN1YyBJSSBjbyBuaGlldSBjYW4gYm8gdHVuZyBnaXUgdmkgdHJpIGNo dSB0cmksIGNodSBjaG90IG8gMi80LCB0aGFtIGNoaSC+LCA0LzQsIGN1YyBkaWVwIGJhbyBjaGll biANCmx1b2MgYmF0IGhvcCBwaGFwICh2YSB0dW9uZyBkdW9uZykgY3VhIHRvbmcgY3VjLCB2aSBk dTogUGhhbiBzeSBNaW5oICh0cnVvbmcgcGhvbmcgbyBDdWMgMTIsIHBobyBjdWMgdHJ1b25nIEN1 YyAxMSwgcGhvIGNoaSBodXkgdHJ1b25nIFRydW5nIHRhbSA3MDEgcm9pIHBobyBjdWMgdHJ1b25n IEN1YyAxNiksIE5ndXllbiBxdWFuZyBIYWkgKHBobyBwaG9uZyBvIEN1YyAxMSwgdHJ1b25nIHBo b25nIG8gQ3VjIDE2IHJvaSBwaG8gQ3VjIA0KMTIpLCBUcmFuIGJhIER1bmcgKHRydW9uZyBwaG9u ZyBvIEN1YyAxMiwgcGhvIGN1YyB0cnVvbmcgQ3VjIDExY2hpIGh1eSB0cnVvbmcgVHJ1bmcgdGFt IDcwMSwgY3VjIHRydW9uZyBDdWMgMTEgcm9pIGN1YyB0cnVvbmcgQ3VjIDE2KSwgUGhhbiB2YW4g VmlldCAocGhvIGN1YyB0cnVvbmcgQ3VjIDEyIHJvaSBjdWMgdHJ1b25nIEN1YyAxMSksIFRyYW4g dGllbiBQaHVvbmcgKHBobyBwaG9uZyBvIGNhYyBDdWMgMTUsMTYsMTIsIHRydW9uZyANCnBob25n IG8gVHJ1bmcgdGFtIDcwMSkuLi4gVHJvbmcgaG9uIDggbmFtIE5ndXllbiBjaGkgVmluaCBsYW0g dG9uZyBjdWMgdHJ1b25nLCByYXQgbmhpZXUgdmkgdHJpIGNodSB0cmksIGNodSBjaG90IG8gVG9u ZyBjdWMgSUkgbGllbiB0dWMgYmkgdGhheSBkb2kgbmd1b2kgbmFtIGdpdTsgbyBkYXkgY2hpIG5l dSB2aSBkdSB2b2kgdmkgdHJpIGNodSB0cmkgdG9uZyBjdWMgdmEgY2h1IHRyaSBjYWMgZGF1IG1v aSB0cnVjIHRodW9jIHRvbmcgY3VjOyBwaG8gdG9uZyANCmN1YyB0cnVvbmcgdmUgY2hpbmggdHJp IChuYXkgbGEgY2hpbmggdXkpIJYgMyBuZ3VvaSwgY2h1IG5oaWVtIGNoaW5oIHRyaSBUb25nIGN1 YyCWIDQgbmd1b2ksIGNoYW5oIHZhbiBwaG9uZyBUb25nIGN1YywgLSAzIG5ndW9pIGN1YyB0cnVv bmcgQ3VjIDE2IJYgNSBuZ3VvaSwgY3VjIHRydW9uZyANCkN1YyAxMSCWIDMgbmd1b2ksIGN1YyB0 cnVvbmcgQ3VjIDI1IJYgMyBuZ3VvaSwgQ2hpIGh1eSB0cnVvbmcgVHJ1bmcgdGFtIDcwMSCWIDQg bmd1b2ksIGN1YyB0cnVvbmcgQ3VjIDcxIJYgMyBuZ3VvaSwgcGhvIGdpYW0gZG9jIHZlIGNoaW5o IHRyaSAobmF5IGxhIGNoaW5oIHV5KSBIb2MgdmllbiBraG9hIGhvYyBxdWFuIHN1IC0gNSBuZ3Vv aSwgcGhvIGN1YyB0cnVvbmcgdmUgY2hpbmggdHJpIChuYXkgbGEgY2hpbmggdXkpIEN1YyAxNiCW IDQgDQpuZ3VvaSwgcGhvIGN1YyB0cnVvbmcgdmUgY2hpbmggdHJpIChuYXkgbGEgY2hpbmggdXkp IEN1YyAyNSCWIDQgbmd1b2ksIHRydW9uZyBwaG9uZyA3MyCWIDUgbmd1b2ksIHRydW9uZyBwaG9u ZyBDIJYgNCBuZ3VvaSwgcGhvIGNodSBuaGllbSBjaGluaCB0cmkgVG9uZyBjdWMgliA5IG5ndW9p IChiaWVuIA0KY2hlIHRodW9uZyB4dXllbiBsYSAyKSwgcGhvIGNoYW5oIHZhbiBwaG9uZyBUb25n IGN1YyCWIDUgbmd1b2kgKGJpZW4gY2hlIHRodW9uZyB4dXllbiBsYSAxKSwgZG9hbiB0cnVvbmcg RG9hbiBLMyCWIDMgbmd1b2ksIGRvYW4gdHJ1b25nIERvYW4gNzQgLTMgbmd1b2ksIGRvYW4gdHJ1 b25nIA0KRG9hbiA5NCCWIDQgbmd1b2kgLi4uIENvIG5oaWV1IGNhcCB1eSBiaSBjaHVuZyBkaWV1 IGNodXllbiBjb25nIHRhYyBxdWEgbnVhLCB0aGFtIGNoaSBsYSB0b2FuIGJvIGNhcCB1eSB2aWVu LCBjbyBuaGlldSBjYW4gYm8gYmkgY2h1bmcgZGlldSBjaHV5ZW4ga2hvbmcgdGhlbyBxdXkgaG9h Y2guIFZpIGR1Og0KIA0KMSCWIERhaSBob2kgZGFpIGJpZXUgZGFuZyBibyBraG9hIGhvYyBxdWFu IHN1IHRoYW5nIDEwIJYgMjAwNSBiYXUgRGFuZyB1eSBnb20gMTMgbmd1b2ksIERhbmcgdXkgYmF1 IEJhbiB0aHVvbmcgdnUgZ29tIDQgbmd1b2ksIGRlbiBuYXksIG1vaSBxdWEgbnVhIG5oaWVtIGt5 IG1hIHNvIA0KdGhheSBtb2kgdm9pIERhbmcgdXkgbGEgOS8xMywgdm9pIEJhbiB0aHVvbmcgdnUg ZGEgbGEgMy80ICh0cm9uZyBkbyBjbyBiaSB0aHUpOw0KIA0KMiCWIERhaSBob2kgZGFpIGJpZXUg ZGFuZyBibyBjdWMgMTYgY3VvaSBuYW0gMjAwNSBiYXUgRGFuZyB1eSBnb20gMTMgbmd1b2ksIERh bmcgdXkgYmF1IEJhbiB0aHVvbmcgdnUgZ29tIDQgbmd1b2ksIGRlbiBuYXkgY3VuZyBtb2kgcXVh IG51YSBuaGllbSBreSBtYSBzbyB0aGF5IG1vaSANCnZvaSBEYW5nIHV5IGxhIDkvMTMsIHZvaSBC YW4gdGh1b25nIHZ1IGRhIGxhIDMvNCAodHJvbmcgZG8gY28gYmkgdGh1LCBwaG8gYmkgdGh1KSwg dmkgdHJpIGJpIHRodSB2YSBtb3QgdmFpIHZpIHRyaSBraGFjIGRhIHRoYXkgdG9pIGxhbiB0aHUg YmEuIENodW5nIGNvbiBiZSBjb25nIGNhIHF1eWV0IGRpbmggY3VhIHRyZW4uIER1b2MgYmlldCBu YW0gMjAwNCB0cmVuIGNvIHF1eWV0IGRpbmggZ2lhaSB0aGUgQ3VjIDE1IGNhIHZlIHRvIGNodWMg RGFuZyBsYW4gdG8gDQpjaHVjIGNoaW5oIHF1eWVuIGRlIHNhdCBuaGFwIHZhbyBDdWMgMTYsIHNv bmcgY2h1bmcgbGFpIHBobyBiaWVuIGxhIHRyZW4gY28gcXV5ZXQgZGluaCBnaWFpIHRoZSBjYSBo YWkgY3VjIDE1LCAxNiBkZSB0aGFuaCBsYXAgQ3VjIDE2IG1vaTsgdHJlbiBjbyBzbyBkbywgY2h1 bmcgZ2lhaSB0aGUgbHVvbiBjYWMgDQp0byBjaHVjIERhbmcsIHRvIGNodWMgY2hpbmggcXV5ZW4g Y3VhIEN1YyAxNiByb2kgdGhhbmggbGFwIGNhYyB0byBjaHVjIERhbmcsIHRvIGNodWMgY2hpbmgg cXV5ZW4gbW9pLCB0cm9uZyBkbyBjbyBzbyBjYW4gYm8gbGFuaCBkYW8sIGNoaSBodXkgQ3VjIDE1 IGN1IChsYSBuZ3VvaSBjdWEgY2h1bmcpIGNoaWVtIHBoYW4gbG9uIHZpIHRyaSBjaHUgdHJpLCBj aHUgY2hvdC4gS2hpIGF5IG5oaWV1IHkga2llbiBjaG8gcmFuZyBDdWMgMTUgZGEgImRhbyANCmNo aW5oIHRoYW5oIGNvbmciIGRvaSB2b2kgQ3VjIDE2Lg0KIA0KIENhaSB0dSBkZSB5ZW4gdGhpIHZh biBsYSBjYWkgdHUsIHZhbiBkdW5nIGR1b2MgZG8uIE5ldSB0aGFvIGxhcCwgZGkgY2h1eWVuIG5o aWV1IGxhbiB0aGkgZ28gY28gdG90IGRlbiBkYXUsIGNhaSB0dSB2YW4ga2hvbmcgdHJhbmgga2hv aSBsdW5nIGxheSwgeG9jIHNlY2ggcm9pIGJpZW4gdGhhbmggZG9uZyBjdWkuIFF1YSBzdSAibHVh biBjaHV5ZW4uImN1YSBOZ3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1LCBuaHVuZyAiY2FpIHR1IGNh biBiby4iIG8gVG9uZyBjdWMgSUkgZGEgdGhhdCBzdSBodSBob25nLCBraG9uZyBkdW5nIGR1b2Mg bnVhLg0KICANCkNodW5nIGxhbSBkaWVwIGJhbyBuaHVuZyBraG9uZyB0byBjaHVjIHhheSBkdW5n IGRpZXAgdmllbiwgdGluaCBiYW8gdmllbiBtYSBuZ2hpIHJhIGtoYWkgbmllbSAiY2FuIGJvIG1h dCIsICJjYW4gYm8gZGllbiBCLiIgZGUgZHVhIHR1IGJlbiBuZ29haSBxdWFuIGRvaSB2YW8gdG8g Y2h1YyBkaWVwIGJhbyBoYW5nIG5nYW4gbmd1b2kgbWEgbmV1IHhldCB0aGVvIG5ndXllbiB0YWMs IHlldSBjYXUgY3VhIGRpZXAgYmFvIGNoaWVuIGx1b2MgdGhpICANCmhvYW4gdG9hbiBraG9uZyBj byBraGEgbmFuZyBkaWVwIGJhbyAoZGFjIGJpZXQgbGEgdmUgbWF0IHF1YW4gc3UpLiBQaGFuIGxv biBzbyBuYXkgbGEgbmd1b2kgdGhhbiBxdWVuIGN1YSBjaHVuZy4gVm9pIGNhYyAiY29uZyB0YWMg dmllbiBtYXQiY3VuZyBjbyB0aW5oIHRyYW5nIHR1b25nIHR1LiBEaWV1IGt5IGxhIGxhIHRyb25n IHNvICJjYW4gYm8gbWF0IiwgImNvbmcgdGFjIHZpZW4gbWF0IiBkbyBjbyByYXQgbmhpZXUgbmd1 b2kgZGFuZyBsYW0gdmllYyB0cm9uZyBjYWMgY28gcXVhbiBxdWFuIJYgZGFuIJYgY2hpbmggliBk YW5nIGN1YSB0YSwgbW90IHNvIG5ndW9pIGNvbiBsYSBjYW4gYm8gY2FwIA0KY3VjIJZ2dSAtIHZp ZW4gdHJvIGxlbi4gVHJlbiBraGFwIHRoZSBnaW9pLCB0dSB4dWEgdG9pIG5heSwgY2hpIGNvIGNo dW5nIGxhbSBkaWVwIGJhbyBjaGllbiBsdW9jIG1hIGtob25nIHhheSBkdW5nIGRpZXAgdmllbiwg dGluaCBiYW8gdmllbi4gSGllbiBvIGNhYyBjbyBxdWFuIHRoYW0gbXV1LCBjaGkgZGFvLCANCmJh byBkYW0sIGNhYyBuaGEgdHJ1b25nLCB2aWVuIG5naGllbiBjdXUgY3VhIFRvbmcgY3VjIElJIGNv IGhhbmd0cmFtICJjYW4gYm8gbWF0LiIsICJjYW4gYm8gZGllbiBCIiBuaHUgdmF5IHRyb25nIGto aSBoYW5nIHRyYW0gc3kgcXVhbiB0cnVuZywgY2FvIGNhcCBkYSB0b3QgbmdoaWVwIGNhYyBob2Mg dmllbiwgbmhhIHRydW9uZyBxdWFuIHN1LCBkYSBraW5oIHF1YSB0aHVjIHRpZW4gaG9hdCBkb25n IHF1YW4gc3UsIHZvbiB0aHVvYyAiZGllbiANCkEiLCB2b24gbGFtIGNvbmcgdGFjIHRoYW0gbXV1 LCBjaGkgZGFvLCBiYW8gZGFtLCBuZ2hpZW4gY3V1LCBnaWFuZyBkYXkgdGluaCBiYW8sIG5oaWV1 IG5ndW9pIGNvbiBkdW9jIGRhbyB0YW8gdGhlbSB2ZSBuZ29haSBuZ3UsIGtpbmggdGUsIGtob2Eg aG9jIC0gY29uZyBuZ2hlLCBkYSBjbyBtb3Qgc28gDQpuYW0gY29uZyB0YWMgbyBudW9jIG5nb2Fp IC4uLiBsYWkgYmkgY2h1bmcgZGF5IHJhICJkaWVuIEIuIiBkZSBuZ29pIGNob2kgeG9pIG51b2Mu IENvIHRoZSBub2kgZHUgbGFuZyBwaGkgbmhhbiBsdWMgbyBUb25nIGN1YyBJSSBsYSBoZXQgc3Vj IHRvIGxvbi4NCiANCiBDaHVuZyBkdW5nIHRvIGNodWMgdmEgaG9hdCBkb25nIGRpZXAgYmFvIGxh bSBiaW5oIHBob25nLCBkdW5nIGtlIGhvYWNoIGRpZXAgYmFvIGxhbSBjb25nIGN1IGNodSB5ZXUg ZGUgYm9uIHJ1dCBjb25nIHF1eS4gQ28gdGhlIGtoYW5nIGRpbmggdHJvbmcgMTAgbmFtIHRybyBs YWkgZGF5LCB0YXQgY2EgY2FjIGtlIGhvYWNoIGRpZXAgYmFvIGNvIG11YyBraW5oIHBoaSBkYW5n IGtlIGN1YSBUb25nIGN1YyBJSSBkZXUgaXQgbmhpZXUgbWFjIHNhaSANCnBoYW0gdmUgbWF0IGtp bmggdGUsIHRhaSBjaGluaC4gTmV1IHRoYW5oIHRyYSwga2llbSB0cmEsIGtpZW0gdG9hbiBtb3Qg Y2hhYyBjaGF0IGNoZSwgY2hhYyBjaGFuIHNlIHBoYXQgaGllbiByYSBuaGlldSB2dSB0aGFtIG5o dW5nIGxvbiwgbmhpZXUgdGVuIHRoYW0gbmh1bmcgbG9uLg0KIA0KIFRyZW4gdGh1YyB0ZSBOZ3V5 ZW4gY2hpIFZpbmggdmEgcGhlIGx1IGRhIGJpZW4gVG9uZyBjdWMgSUkgdGhhbmggY2FpIGFvIG5o YSBvIGRvIGRpZXUgbGVuaCwgY2hlIGRvIGN1YSBxdWFuIGRvaSwgZGlldSBsZSwgcXV5IGNoZSwg cXV5IGRpbmggY3VhIERhbmcsIEhpZW4gcGhhcCwgcGhhcCBsdWF0IGN1YSBOaGEgbnVvYyBkZXUg YmkgY2h1bmcgYmllbiBiYW8gdGhlbyBodW9uZyBjbyBsb2kgY2hvIGNodW5nLiBDaHVuZyBkYSB4 byBkbyBuZ3V5ZW4gdGFjIJYgY2hvIGR1YSwgY2hvIGJhdSB2aXUgY3VvaSBjdW5nIGN1YSBjYW4g Ym8sIGRhbmcgdmllbiwgcXVhbiBjaHVuZywgZGEgdm8gaGlldSBob2EgDQpraGEgdHJpZXQgZGUg Y2FjIGNhcCB1eSBEYW5nIHZhIGNhYyBjbyBxdWFuIGNoaW5oIHRyaSB0cm9uZyBjb25nIHRhYyBs YW5oIGRhbywgY29uZyB0YWMgRGFuZyCWIGNvbmcgdGFjIGNobmhzIHRyaSBsaWVuIHF1YW4gdmll YyB0aHVjIGhpZW4gbmhpZW0gdnUgY2hpbmggdHJpIHRydW5nIHRhbSwgZGEgbGFtIHRlIGxpZXQs IGx1bmcgZG9hbiBwaGFuIGxvbiB0byBjaHVjIERhbmcsIHBoYW4gbG9uIGNvIHF1YW4gY2hpbmgg cXV5ZW4gbyBUb25nIGN1YyBJSS4NCiANClZpIGN1b25nIHZvbmcgYXkgbWEgTmd1eWVuIGNoaSBW aW5oIHZhIHBoZSBsdSBkYSBkYXkgVG9uZyBjdWMgSUkgdmFvIHRpbmggdHJhbmcga2h1bmcgaG9h bmcgdHJhbSB0cm9uZyB2YSB0b2FuIGRpZW4sIGh1dSBkYW5oIHZvIHRodWMga2hpZW4gcXVhbiBk b2kgdmEgRGFuZyBjbyBuaHUgbGFuZywgY28gbWF0IG5odSBtby4NCiANCiBUcm9uZyBsaWNoIHN1 IGN1YSBtaW5oLCBkYXkgbGEgbHVjIGNvIHF1YW4gdGluaCBiYW8gY2hpZW4gbHVvYyB2ZSBxdWFu IHN1IGNvIHRvIGNodWMgdm9pIHF1eSBtbyBsb24gbmhhdCAoZ2FwIGhhbmcgY2h1YyBsYW4gdGhv aSBjaG9uZyBNeSksIGNvIGx1YyBsdW9uZyBkb25nIGRhbyBiYWMgbmhhdCwgY28gY28gc28gdmF0 IGNoYXQgLSBreSB0aGF0IHZhIGNvIHNvIHBoYXAgbHkgZGF5IGR1IG5oYXQsIHRodWFuIGxvaSBu aGF0LCBjbyBtYXkgY2h1YyBwaG8gZ2lhbyBzdSwgdGllbiBzeSwgdGhhYyBzeSwgY3UgbmhhbiB0 aW5oIGJhbyAoZGlldSBtYSBtYXkgY2h1YyBuYW0gdHJ1b2Mga2hvbmcgaGUgY28gdmEgDQpjbyBs ZSBWaWV0IE5hbSBsYSBudW9jIG1hIHRpIGxlIHRoYWMgc3ksIGN1IG5oYW4gdGluaCBiYW8gcXVh biBzdSB0cmVuIHRvbmcgc28gZGFuIGNhbyBuaGF0IHRoZSBnaW9pKSwgbWF5IHRyYW0gdHJvIGx5 IG5naGllcCB2dSBnaW9pIChkdW9jIGNvbmcgbmhhbiBvIGNhYyBreSB0aGkgbyBjYXAgY3VjIHZh IA0KY2FwIHRvbmcgY3VjKSwgY28gY2EgbmdhbiBzeSBxdWFuIGNhcCBjYW8gKHZvaSBnYW4gbW90 IGNodWMgc3kgcXVhbiBjYXAgdHVvbmcpLCBjbyBuaHVuZyB0YWkgbGlldSBtYW5nIG5odW5nIGNh aSB0ZW4gcmF0IGtldSBuaHUgIk5odW5nIHZhbiBkZSBjbyBiYW4gdmUgbHkgbHVhbiB2YSBuZ2hl IHRodWF0IHRpbmggYmFvIFZpZXQgTmFtIiAodGhhbmcgNC0xOTk3KSwgIkx5IGx1YW4gdmEgbmdo ZSB0aHVhdCBkaWVwIGJhbyBjaGllbiBsdW9jIGJhdCANCmhvcCBwaGFwIGN1YSBuZ2FuaCB0aW5o IGJhbyBxdWFuIHN1IFZpZXQgTmFtIHRyb25nIGdpYWkgZG9hbiBjb25nIG5naGllcCBob2EsIGhp ZW4gZGFpIGhvYSBkYXQgbnVvYyIsKHRoYW5nIDQtMTAwNyksICJOaHVuZyBiYWkgaG9jIGtpbmgg bmdoaWVtIGN1YSA1MCBuYW0geGF5IGR1bmcsIGNoaWVuIA0KZGF1IHZhIHRydW9uZyB0aGFuaCBj dWEgZGllcCBiYW8gY2hpZW4gbHVvYyBiYXQgaG9wIHBoYXAgdHJvbmcgbmdhbmggdGluaCBiYW8g cXVvYyBwaG9uZyBWaWV0IE5hbS4iLCAodGhhbmcgMTAtMTk5OSksICJHaWFvIHRyaW5oIGx5IGx1 YW4gbmdoZSB0aHVhdCBkaWVwIGJhbyBiYXQgaG9wIA0KcGhhcCIsIChnb20gNCB0YXAsIG5hbSAy MDAyKSwgIiBUb25nIGtldCA2MCBuYW0geGF5IGR1bmcsIGNoaWVuIGRhdSB2YSB0cnVvbmcgdGhh bmggY3VhIFRpbmggYmFvIHF1b2MgcGhvbmcgVmlldCBOYW0gKG5hbSAyMDA1KSIsICJDaGllbiBs dW9jIHRpbmggYmFvIHF1b2MgcGhvbmcgDQpuaHVuZyBuYW0gZGF1IHRoZSBreSAyMSAodG9pIG5h bSAyMDIwKSIgKHRoYW5nIDEtMjAwNiksIGNvIGhhbmcgY2h1YyBkZSB0YWksIGNvbmcgdHJpbmgg Im5naGllbiBjdXUga2hvYSBob2MuIiBkdSBkZSB4ZXQgZGFjIGNhY2ggcGhvbmcgaG9jIGhhbSBn aWFvIHN1LCBwaG8gZ2lhbyBzdSwgaG9jIHZpIA0KdGllbiBzeSBjaG8gdmFpIGNodWMgY2FuIGJv IGNodSB0cmksIGNodSBjaG90LCBsYWkgZGFuZyBvIHRyb25nIG1vaSB0cnVvbmcgaG9hdCBkb25n IGNvIHRoZSBub2kgbGEgcmF0IHRodWFuIGxvaSCWIG51b2MgdGEgY28gcXVhbiBoZSBob2EgYmlu aCwgaHV1IG5naGksIGhvcCB0YWMgdmEgcGhhdCB0cmllbiB2b2kgDQp0YXQgY2EgY2FjIG51b2Mg liBzb25nIGNvbmcgdGFjIGNoYW5nIG5odW5nIGtob25nIHBoYXQgdHJpZW4gbWEgY29uIGNvIG5o aWV1IGJ1b2MgdGh1dCBsdWkuIFRvbmcgY3VjIElJIGRhIGxvIGxpZXUgZGluaCBjaHVtIGhvbiBi YW8gZ2lvIGhldCwgZGEgdHJvIG5lbiByZXUgcmEsIGh1IGhvYSBjYSB2ZSANCmNoaW5oIHRyaSBs YW4gbmdoaWVwIHZ1LCB0aGF0IHN1IHRybyB0aGFuaG1vdCBjYWkgYm9uZyBib25nIHhhIHBob25n IHZhIGRhbmcgY2h1YyB2byANCnRyb25nIHZpZWMgdGh1YyBoaWVuIGNodWMgbmFuZywgbmhpZW0g dnUuIFZpZWMgTmd1eWVuIGNoaSBWaW5oIHZhIHBoZSBsdSBsaWVuIHR1YyBkdWEgcmEgdmEgdGh1 b25nIHh1eWVuIG5oYW4gbWFuaCBjYWMgIm5ndXkgY28uIiBEZSBkb2EgVG9uZyBjdWMgSUkgY2Eg dHUgYmVuIG5nb2FpIGxhbiBvIG5vaSBibywgbm9pIGRpYSBjYW5nIGNobyB0aGF5IFRvbmcgY3Vj IElJIGRhbmcgcmF0IHlldSBrZW0uIE5ldSB0aGF0IHN1IG1hbmggdmUgY2hpbmggDQp0cmkgdmEg bmdoaWVwIHZ1LCB0aGF0IHN1IGxhbSB0b3QgY2h1YyBuYW5nLCBuaGllbSB2dSwgVG9uZyBjdWMg SUkgZGEgY2hhbmcgcGhhaSBzbyBoYWkgDQpkaWV1IGdpLCBkYSBjaGFuZyBjYW4gZGFuIHJhIGNh YyAibmd1eSBjbyAiIGRlIGJpZW4gbWluaCwgbGFwIGxpZW0gY2hvIG1pbmguDQogIA0KTmd1eWVu IGNoaSBWaW5oIHZhIHBoZSBsdSBsdW9uIGxhIGxvaSByYW5nIFRvbmcgY3VjIElJIGxhIHRyb25n IGRpZW0gcGhhdCBoaWVuLCBkYW5oIHBoYSBjdWEgY2FjIHRoZSBsdWMgdGh1IGRpY2ggZG9pIHZv aSBkYW4gdG9jIHRhLCBjYWNoIG1hbmcgbnVvYyB0YSBzb25nIHRodSBob2kgMTAtMTUgbmFtIHF1 YSBkYSBjbyBiYW8gbmhpZXUgbmd1b2kgY3VhIFRvbmcgY3VjIElJIGJpIGNhYyB0aGUgbHVjIHRo dSBkaWNoIGJhdCBibywgZ2lldCBoYWk/IENoYWMgDQpjaGFuIGxhIGl0IGhvbiBzbyBiaSBsdWMg bHVvbmcgY2FuaCBzYXQsIGFuIG5pbmggdGEgYmF0IGdpdS4gVHJlbiB0aHVjIHRlLCBjaGluaCBO Z3V5ZW4gY2hpIFZpbmggdmEgcGhlIGx1IG1vaSBwaGEgaG9haSB0b25nIGN1YyBJSSB0b2FuIHRv YW4gZGllbiBuaGF0LCB0cmlldCBkZSBuaGF0LiBUcnVvYyBzdSBwaGEgDQpob2FpIGdoZSBnb20g Y3VhIGNodW5nLCB0cnVvYyB0aHVjIHRyYW5nIGJpIGRhdCBjdWEgVG9uZyBjdWMgSUkgaGllbiBu YXksIGNvIG5ndW9pIG5ldSBjYXUgaG9pOlBoYWkgY2hhbmcgY2h1Z3MgbGEgImRpZXAgdmllbiBh bmggaHVvbmciIGN1YSBjYWMgdGhlIGx1YyB0aHUgZGljaD8NCiAgDQpEYW5oIGdpYSBuaHUgdmF5 IHZlIE5ndXllbiBDaGkgVmluaCB2YSBwaGUgbHUgY28gcXVhIG11YyBraG9uZz8gSG9hbiB0b2Fu IGtob25nIG5ldSBuaG8gcmFuZ3RoYW5nIDYtMTk1MSwgdHJvbmcgdGh1IGd1aSBIb2kgbmdoaSB0 aW5oIGJhbyBIbyBjaGkgTWluaCBkYSB2aWV0OiAiIFRhdCBjYSBtb2kgY29uZyB0YWMsIG5oYXQg bGEgY29uZyB0YWMgdGluaCBiYW8gcGhhaSBraWVuIHF1eWV0IHRyYW5oIG5odW5nIGJlbmggY2h1 IHF1YW4sIGtoaW5oIA0KZGljaCwgaGlldSBkYW5oLCBjYSBuaGFuIGNodSBuZ2hpYS4gRG8gbGEg bmh1bmcga2UgZGljaCAidm8gYW5oLCB2byBoaW5oLiIgQ28gbmVwIHRyb25nIHRhbSBseSBjdWEg Y2FuIGJvIHZhIG5ndXkgaGllbSBob24gbWF5IFBob25nIE5oaSBQaGFwIGNvbmcgbGFpIi4gSG9h biB0b2FuIGtob25nIA0KbmV1IG5ldSBkYSBkb2MgaGFuZyBsb2F0IHRpbiB0dWMsIHRhaSBsaWV1 IG1hIHRyb25nIGRvIFRvbmcgY3VjIElJIG5oYW4gZGluaCBOZ3V5ZW4gbWFuaCBDYW0sIFBoYW4g RGllbiwgVHJhbiBiYWNoIERhbmcgVm8gbmd1eWVuIEdpYXAsIE5ndXllbiBuYW0gS2hhbmgsIFRy dW9uZyANCnRhbiBTYW5nLCBWbyB2aWV0IFRoYW5oLCBQaGFuIHZhbiBUcmFuZywgTmd1eWVuIG5n b2MgVHJ1dSAuLi4gbGEgY28geWV1IHRvIGRpY2guIEhvYW4gdG9hbiBraG9uZyBuZXUgZGFuaCBn aWEgdGh1YyB0cmFuZyBUb25nIGN1YyBJSSBoaWVuIG5heSBtb3QgY2FjaCBraGFjaCBxdWFuLCBj aGF0IGNoZSwgdGhlbyBkdW5nIHBodW9uZyBwaGFwIHR1IGR1eSB2YXQgYmllbiBjaHVuZywgZHV5 IHZhdCBsaWNoIHN1IHZhIHRoZW8gZHVuZyB5ZXUgY2F1IGN1YSANCnZpZWMgdGh1YyBoaWVuIGNo dWMgbmFuZywgbmhpZW0gdnUuDQogIA0KSG8gY2hpIE1pbmggZGF5OiAiQ2FuIGJvIGxhIGdvYyBj dWEgY29uZyB2aWVjLiIuIFRyb25nIGxpY2ggc3UgaG9uIDUzIG5hbSBjdWEgbWluaCwgdGluaCBi YW8gY2hpZW4gbHVvYyB2ZSBxdWFuIHN1IGRhIG5oaWV1IGxhbiBkdW9jIHRpZXAgbWF1LCB0aGF5 IG1hdSwgY3UgdGhlIGxhIGR1b2MgZGlldSBoYW5nIGxvYXQgY2FuIGJvIHR1IGJlbiBuZ29haSB2 YW8gbmFtIGNhYyB2aSB0cmksIGNodSBjaG90IHZhIHJhdCBuaGlldSBuZ3VvaSB0cm9uZyBzbyBu YXkgDQpkYSBtYXUgY2hvbmcgdHJvIHRoYW5oIGRpZXAgdmllbiwgdGluaCBiYW8gdmllbiBnaW9p LCB0cm8gdGhhbmggY2FuIGJvIHRoYW0gbXV1LCBjaGkgZGFvLCBiYW8gZGFtLG5naGllbiBjdXUg Y2h1IHRyaSwgY2h1IGNob3QgdHJvbmcgbW90IHRob2kgZ2lhbiBkYWkuDQogDQogVmkgZHU6IE1h aSBCYW8sIFBoYW4gQmluaCwgVnVvbmcgdGh1YyBDaGF1LCBQaGFuIERpbmgsIE5ndXllbiBodXUg RGEsIFBoYW4gY2hpIEhpZXUsIFRyYW4gSGlldSwgVnUgZGluaCBIb2UsIFRyYW4gdmFuIEhvaSwg VHJhbiBxdW9jIEh1b25nLCBOZ3V5ZW4gbWFuaCBLb2F0LCBOZ3V5ZW4gdmFuIEt5LCBQaHVuZyBo b25nIExhbSwgTmd1eWVuIHh1YW4gTWFuaCwgTmd1eWVuIHZhbiBNaW5oLCBMZSB0cm9uZyANCk5n aGlhLCBWdSBuZ29jIE5oYSwgQmFjaCBuZ29jIFBoYWNoLCBMZSBob25nIFBodSwgVnUgaHV1IFJ1 YXQsIFRyYW4gU2luaCwgTGUgQ2hpbmgsIE5ndXllbiB0cm9uZyBUZSwgVnUgVGhhbmcsIE5ndXll biBkYWMgVGhhbiwgUGhhbiBzeSBUaGksIFRvbmcgdHJhbiBUaHVhdCwgTGUgaHV1IFRodXksIE5n dXllbiB0aHVjIFRpbmgsIE5ndXllbiBuaHUgVmFuLCBEaW5oIHRoaSBWYW4gLi4uDQogDQogTmF5 IGRhbmcgbyB0cm9uZyB0aW5oIHRyYW5nIGtodW5nIGhvYW5nIHRyYW0gdHJvbmcgdmEgdG9hbiBk aWVuLCBkYW5nIGJpIGNodXllbiBob2EgdGhhbmgga2hvaSB1IGFjIHRyb25nIGxvbmcgcXVhbiBk b2ksIHRyb25nIGxvbmcgRGFuZywgaXQgbmhpZXUgcGhhdCB0YWMgdG9pIGJvIG9jIGN1YSBxdWFu IA0KZG9pLCBjdWEgRGFuZyB0aGkgcm8gcmFuZyB0aW5oIGJhbyBjaGllbiBsdW9jIHZlIHF1YW4g c3UgY2FuIGR1b2MgbWF1IGNob25nIHF1ZXQgc2FjaCwgY2F0IGJvLCBkaWV0IHRydSB0YW4gZ29j IG5odW5nIG1hbmcgbHVvaSB4YXUgeGEsIGNhbiBkdW9jIG1hdSBjaG9uZyB0aGF5IG1hdSB0cmll dCBkZSANCmRlIHRydW9jIGhldCBsYSB0cm9uZyBzYWNoIHZlIGNoaW5oIHRyaSwgc2F1IGRvIGxh IGtob2UgbWFuaCB2ZSBuZ2hpZXAgdnUgY2h1IGtob25nIHBoYWkgDQp0aGF5IG1hdSBkYSB0cmVu IHhhYyBjaGV0LCBkdXkgdHJpIG1vdCBUb25nIGN1YyBJSSBjdWEgTmd1eWVuIGNoaSBWaW5oIG1h IGtob25nIGNvIE5ndXllbiBjaGkgVmluaC4gRG8gbGEga2V0IGx1YW4gY3VhIGJhaSB2aWV0IG5h eS4NCiANCkhhIE5vaSBuZ2F5IDE2LTEyLTIwMDgNClZ1IE1pbmggVHJpDQpEaWEgY2hpOiBQaG9u ZyAxMzAyLSBuaGEgSEgxIJYgS2h1IGRvIHRoaSBZZW4gSG9hDQpQaHVvbmcgWWVuIEhvYSCWIHF1 YW4gQ2F1IEdpYXkgliBUUCBIYSBOb2kNCkRUOiAwNDIyLjEyMS4wNzMgLSBEVEREOiAwOTAuMjE2 LjM2MzMNCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcvd2lraS9OZ3V5JUUxJUJCJTg1bl9DaCVD MyVBRF9WJUUxJUJCJThCbmggIDA0OjE4IDE0LzEyLzIwMDkuDQoNCk5ndXllbiBDaGkgVmluaCwg c2luaCBuYW0gMTk1NywgcXVlIHF1YW46IHRob24gTmllbSBQaG8sIEh1eWVuIFF1YW5nIERpZW4s IFRpbmggVGh1YSBUaGllbiAtIEh1ZTsNCg0KT25nIGxhIGNvbiB0cmFpIGN1YSBvbmcgTmd1eWVu IENoaSBUaGFuaCB2YSBjb24gcmUgY3VhIG9uZyBUcnVuZyB0dW9uZyBWdSBDaGluaCAtIHR1YyBE YW5nIFZhbiBUcnVuZywgbmd1eWVuIFRvbmcgQ3VjIHRydW9uZyBUb25nIEN1YyAyOw0KDQpDaGkg Z2FpIGN1YSBvbmcgbGEgTmd1eWVuIFRoYW5oIEhhIC0gbmd1eWVuIFBobyBDdWMgdHJ1b25nIEN1 YyBIYW5nIGtob25nIFZpZXQgTmFtLiANCg0KTmFtIDIwMDIsIE5ndXllbiBDaGkgVmluaCBkdW9j IGJvIG5oaWVtIGdpdSBjaHVjIFRvbmcgQ3VjIHRydW9uZyBUb25nIEN1YyAyIEJvIFF1b2MgcGhv bmc7DQoNClRoYW5nIDIgbmFtIDIwMDksIGR1b2MgVGh1IHR1b25nIChOZ3V5ZW4gVGFuIER1bmcp IGJvIG5oaWVtIGNvIHRob2kgaGFuIGdpdSBjaHVjIFRodSB0cnVvbmcgQm8gUXVvYyBwaG9uZy4N Cg0KaHR0cDovL2ZvcnVtcy52aWV0YmFvLmNvbS90b3BpYy5hc3A/VE9QSUNfSUQ9Mzk4MjQNCg0K Tmd1eWVuIFRhbiBEdW5nICh0dWMgQmEgRHVuZykgbGEgY29uIHJvaSBjdWEgb25nIE5ndXllbiBD aGkgVGhhbmguIA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9pbl9kZXB0aC9WaWV0 bmFtX0xlYWRlcnNoaXBfZm9yX25leHRfNXllYXJzX1ZMb25nLTIwMDYwMzI5Lmh0bWwgVmlldCBM b25nICYgSG9hbmcgVGhhbmggUGhvbmcsIFJGQSANCjIwMDYtMDMtMjkNCg0KTmhhbiBzdSBsYW5o IGRhbyB0YWkgVmlldCBOYW0NCg0KSG9pIG5naGkgMTQgKGtob2EgSVgsIG5hbSAyMDA2LCBjaHVh biBiaSBkYWkgaG9pIFgpIFRydW5nIHVvbmcgZGFuZyBjb25nIHNhbiBWaWV0IE5hbSBkYSBjbyBt b3Qgc28gcXV5ZXQgZGluaCBxdWFuIHRyb25nIHZlIG5oYW4gc3UgY3VhIERhbmcuIA0KRGUgZ3Vp IGRlbiBxdXkgdmkgbmh1bmcgdGhvbmcgdGluIHZlIHZpZWMgbmF5LCBWaWV0IExvbmcgcGhvbmcg dmFuIG9uZyBIb2FuZyBUaGFuaCBQaG9uZywgbW90IGNodXllbiB2aWVuIGRhbmcgbGFtIHZpZWMg dGFpIFZpZXQgTmFtLCB2YSBsYSBuZ3VvaSBxdWFuIHRhbSBkZW4gdGhvaSBjdW9jIHRyb25nIG51 b2MuIA0KTW9pIHF1eSB2aSB0aGVvIGRvaSBub2kgZHVuZyBjdW9jIHBob25nIHZhbi4gDQoNCkFp IGRpLCBhaSBvPyAodHJpY2gpDQouLi4uLi4NClZpZXQgTG9uZzogTmh1IHZheSBsYSBjaHVjIHZ1 IFRvbmcgYmkgdGh1IGR1b2MgZ2lhbyBjaG8gb25nIE5vbmcgRHVjIE1hbmggcGhhaSBraG9uZywg dGh1YSBvbmc/IA0KDQpIb2FuZyBUaGFuaCBQaG9uZzogVGh1YSB2YW5nLCB2aWVjIEhvaSBuZ2hp IDE0IGRlIGN1IG9uZyBNYW5oIHRpZXAgdHVjIGdpdSB2aSB0cmkgVG9uZyBCaSBUaHUgaGF1IG5o dSBraG9uZyBnYXAgc3UgcGhhbiBkb2kgbmFvLCB2aSB0cm9uZyBreSBob3AgdGhpIGNhYyBkYWkg YmlldSBjdW5nIGtob25nIGNvbiBzdSBsdWEgY2hvbiBuYW8ga2hhYywga2hpIG1hIG9uZyBOZ3V5 ZW4gTWluaCBUcmlldCBjaGkgbmhhbiBzZSByYSBnaXUgY2h1YyBDaHUgdGljaCBudW9jIHRyb25n IG5oaWVtIGt5IHRvaSwgdHUgY3VvaSAyMDA3LiANCg0KVmlldCBMb25nOiBUaHVhIG9uZyBuaHUg dGhlIGNvIHBoYWkgY2h1YyB2dSBUaHUgdHVvbmcgZHVvYyBnaWFvIGNobyBvbmcgTmd1eWVuIFRh biBEdW5nIGtob25nPyANCg0KSG9hbmcgVGhhbmggUGhvbmc6IFZhbmcsIHRoZW8gbW90IGNhaSBk dW9jIGdvaSBsYSAiY2FuIGJhbmcgY28gY2F1IiB0aGkgb25nIE5ndXllbiBUYW4gRHVuZyBzZSBs ZW4gdmkgdHJpIHRodSB0dW9uZy4gQ28gbW90IHN1IGtpZW4gZGFjIGJpZXQgbGEgbmdheSB0cm9u ZyBuZ2F5IGtoYWkgbWFjIEhvaSBuZ2hpIHRydW5nIHVvbmcgMTQgdGhpIHBoaWEgVHJ1bmcgcXVv YyBkYSBjdSBvbmcgR2lhIEtoYW5oIExhbSBzYW5nIEhhIE5vaSwgDQp2YSB0cm9uZyBsdWMgY2Fj IHV5IHZpZW4gdHJ1bmcgdW9uZyBjdWEgVmlldCBOYW0gY29uIGhvcCBiYW4gdGhpIHBoaWEgVHJ1 bmcgUXVvYyBkYSBuaGF0IHF1eWV0IGRlIG5naGkgbGEgcGhpYSBWaWV0IE5hbSBuZW4gZGUgY3Ug b25nIE5ndXllbiBUYW4gRHVuZyBsZW4gdmkgdHJpIFRodSB0dW9uZywgdmEgbmh1IG9uZyBobyBH aWEgbmF5IG5vaSwgImRvIGNoaW5oIGxhIG5ndXllbiB2b25nIGN1YSBUb25nIEJpIFRodSBIbyBD YW0gRGFvIGRhIGRlIG5naGkgcGhpYSBsYW5oIGRhbyBWaWV0IE5hbSB0cm9uZyBkaXAgb25nIHRo YW0gVmlldCBOYW0gdGhhbmcgMTEvMjAwNS4iIA0KDQpodHRwOi8vbGluaG5kLm11bHRpcGx5LmNv bS9qb3VybmFsL2l0ZW0vNTQvNTQgQXVnIDMsJzA5DQoNClZpZXQgTmFtOiBUaW5oIGhheSBLaHUg VHUgVHJpPyANCg0KKE5pbmggQ28gZ2hpIGxhaS4gVHJpY2ggdGFpIGxpZXUgY2hlcCBsYWkgdHUg YmFuZyBnaGkgYW0gY3VvYyBob3AgbWF0IGdpdWEgZGFpIGRpZW4gVG9uZyBDdWMgVGluaCBCYW8g SG9hIE5hbSB2YSBUb25nIEN1YyAyIFZpZXQgTmFtIGRlIGx1dSB0cnUsIGR1b2MgYmFvIHF1YW4g dGhlbw0KY2hlIGRvIHR1eWV0IG1hdC4pDQoNClRodWEgY2FjIGRvbmcgY2hpLg0KDQpUcm9uZyBt YXkgbmdheSBxdWEsIHRhIGRhIGN1bmcgbmhhdSB0aGFvIGx1YW4gbmhpZXUgdmFuIGRlLCBkYXQg ZHVvYyBkb25nDQp0aHVhbiB2ZSBjYW4gYmFuLCB0dXkga2hvbmcga2hvaSBjbyBzdSB0cmFuaCBi aWVuIHZlIHRpZXUgdGlldC4gS2hlcCBsYWksDQp0YSBjbyB0aGUgaGFpIGxvbmcga2hhbmcgZGlu aCBob2kgbmdoaSBkYSB0aGFuZyBsb2kgdmEgdGhhbmcgbG9pIGxvbi4NCg0KWGluIGNhYyBkb25n IGNoaSBob2FuIGhpIGNhbiBjaGVuLg0KDQpUcm9uZyBsb2kgcGhhdCBiaWV1IGtldCB0aHVjIGhv aSBuZ2hpLCBMdW9uZyBUdSBMZW5oIG5oYW4gbWFuaDoNCiJOaHVuZyBnaSBkdW9jIGR1YSByYSBi YW4gbyBob2kgbmdoaSBjaHVuZyBxdXkgY2hpIGxhIG5odW5nIGRpZXUNCmRhIGR1b2MgZGUgY2Fw IG5oaWV1IGxhbiB0dSBuaGlldSBuYW0gdHJvbmcgbmh1bmcgY3VvYyBnYXAgZ28gY2FjIGNhcA0K dGhhbSBtdXUgdmEgY2EgY2FvIGNhcC4iIFZvaSB0dSBjYWNoIENoaW5oIHV5IGR1b2MgZGUgY3Ug cmEgY2h1DQp0cmkgaG9pIG5naGkgdG9pIHhpbiB0b20gdGF0IHZhaSBkaWV1IGNhbiB0aGlldC4u DQoNClRydW9jIGhldCwgaG9pIG5naGkgbmhhdCB0cmkgY2FvIHZlIHF1YW4gZGllbSBraG9uZyBj byB2YSBraG9uZyBoZSBjbw0KY2h1eWVuIFRydW5nIFF1b2MgdGhvbiB0aW5oIFZpZXQgTmFtLiBU cnVuZyBRdW9jIGtob25nIGNvIG5odSBjYXUgdGhvbg0KdGluaCBudW9jIG5hby4gQ2FjIG51b2Mg bGFuIGJhbmcgZGV1IG5naGVvLiBIbyBjYW4gZGVuIFRydW5nIFF1b2MgaG9uDQpsYSBUcnVuZyBR dW9jIGNhbiBkZW4gaG8uIE5odW5nIGNhaSBobyBjbyBkZXUgbyBkYW5nIHRpZW0gbmFuZyBkdW9p IGRhdA0KaG9hYyBuZ29haSBiaWVuLiBLaG9uZyBjbyBUcnVuZyBRdW9jIGdpdXAgZG8gdGhpIGNo YW5nIGtoYWkgdGhhYyBkdW9jLg0KVHJvbmcgZ2lhaSBkb2FuIHBoYWkgZG9uIHRvYW4gbHVjIGNo byBwaGF0IHRyaWVuIGtpbmggdGUsIG1hIERhbmcgVGlldQ0KQmluaCBsYW5oIHR1IGRhIHZhY2gg cmEsIG1vaSBzdSBkZW8gYm9uZyBkZXUgdm8gbmdoaWEuIENodW5nIGtpZW0gaGFtDQpidW9jIHRp ZW4gdmkgZGFpIGN1YSBUcnVuZyBRdW9jIHZpIGRhaS4gVGhlIG1hIG8gVmlldCBOYW0gbGFpIGNv IG5odW5nDQpsdW9uZyBkdSBsdWFuIG5odSB0aGUgZGF5LiBOYW8gbGEgVHJ1bmcgUXVvYyBiYSBx dXllbiwgbmFvIGxhIFRydW5nIFF1b2MNCmJhbmggdHJ1b25nLiBUaG9pIGxhbSwgdGh1YSBjYWMg ZG9uZyBjaGksIGtob25nIG5ndWkgZHVvYy4gQm9uIGRhbiBjaHUgbw0KVmlldCBOYW0gZGEgaG8g aG9hbiByYW0gcmkgcmFuZyBjdW9jIHZhY2ggbGFpIGJpZW4gY3VvbmcgZ2l1YSBUcnVuZyBRdW9j DQp2YSBWaWV0IE5hbSBsYSB0cmFuaCBjaGFwIGJpZW4gZ2lvaS4gVHJvbmcga2hpIGRhbSBwaGFu LCB0YXQgbmhpZW4gY28NCm5odW5nIGRpZXUgaGFpIGJlbiBwaGFpIG5oYW4gbmh1b25nIG5oYXUu IENvIGNobyBsb2kgcmEsIGNvIGNobyBsb20NCnZhbywgbyBiZW4gbmF5IGhheSBiZW4ga2lhLiBO aHVuZywgZG8gbGEga2V0IHF1YSBjdWEgbmh1bmcgdGh1b25nIHRoYW8NCnNvbmcgcGhhbmcsIHRo dWFuIG11YSB2dWEgYmFuLiBDYWMgZG9uZyBjaGkgVmlldCBOYW0gdGhheSBjaHVuZyB0b2kgbm9p DQp0aGUsIGxhaSBjaGkgdGhhbmggbWluaCBtb2kgY2hhbi4gTmh1LCBMZSBUaHUgVHJ1b25nICh0 dWMgbGEgb25nIExlDQpDb25nIFBodW5nKSB0cmEgbG9pIHBob25nIHZhbjogIlRoYWMgQmFuIEdp b2MgdGEgY3UgdHVvbmcgbGEgY3VhDQp0YSwgYmFuIGN1bmcga2hvbmcgYmFvIGxhIGN1YSBiYW4u IERvIHJhIG1vaSBiaWV0IGxhIGN1YSB0YSBjaGkgY28gbW90DQpwaGFuIGJhLiBWaSB0aW5oIGh1 dSBuZ2hpIHZvaSB0YSwgYmFuIGNobyB0YSBodW9uZyBtb3QgbnVhLiIgTm9pDQp0aGUgbGEgdG90 LiBOaHVuZyB2YW4gY3UgbGEgdGhhbmggbWluaC4NClZpZWMgZ2kgbWEgcGhhaSBsYSB0aGFuaCBt aW5oIGNvIGNodT8gVm9pIGJvbiBwaGFuIGRvbmcgY2h1eWVuIGdheSByb2kNCmE/IEN1IHRoYW5n IHRheSB0cmFuIGFwLCBiaXQgY2FpIG1pZW5nIGNobyBjdWEgY2h1bmcgbGFpLiBDdSBsdW5nIGNo dW5nLA0KdGhpZXUga2llbiBxdXlldC4gQ3UgaHV1IGtodXluaCBuaGFuIG5odW9uZy4gTmhhbiBu aHVvbmcgbGEgY2hldCBkYXkuDQpQaGFpIHF1ZXQgY2hvIGJhbmcgc2FjaCwga2hvbmcgdGh1b25n IHhvdCBib24gZGFuIGNodS4gS2hvbmcgY2hvIGNodW5nDQpkdW9jIGRhbmcgY2hhbiBsZW4gZGFu ZyBkYXUuIFZ1aSBjaHVuZyB4dW9uZyBkYXQgZGVuLCBraG9uZyBjaG8gY2h1bmcNCm5nb2MgZGF1 IGRheS4gTmh1bmcsIGNhaSBkbyBzZSBraG9uZyBjb24gbGEgdmFuIGRlIHRyb25nIHR1b25nIGxh aS4gVmllYw0KdGlldSBkaWV0IGJvbiBkYW4gY2h1IGRvaSBibyBzZSBraG9uZyBjb24gbGEgdmll YyBjdWEgcmllbmcgY2FjIGRvbmcNCmNoaSBWaWV0IE5hbS4gTm8gc2UgbGEgbmhpZW0gdnUgY2h1 bmcgY3VhIHRhdCBjYSBjaHVuZyB0YS4NCg0KVGh1YSBjYWMgZG9uZyBjaGkuIEhvaSBuZ2hpIGRh IHRoYW5oIGNvbmcgbGEgbmhvIG5vIGdhdCBkdW9jIHJhIG5odW5nDQpjaHV5ZW4gbGF0IHZhdCB2 byBibywgZGFuZyBsYSBkZSB0YWkgdGhvaSBzdSwgZGUgdGFwIHRydW5nIHZhbyBkYWkgc3U6DQpi YW4gdmUgY2h1eWVuIGhvcCBuaGF0IGhhaSBxdW9jIGdpYSB0cm9uZyB0dW9uZyBsYWkuIFR1b25n IGxhaSBjbyB0aGUNCmNodWEgdG9pIG5nYXksIG5odW5nIGxhaSBjbyB0aGUgcmF0IGdhbi4gVmkg dGhlLCB0YSBwaGFpIGNvIHZpZW4ga2llbg0KdmEgcGhhaSBjbyBzdSBjaHVhbiBiaS4gSG9wIGtl dCBUcnVuZyBRdW9jIFZpZXQgTmFtIGNvIHRoZSBsYSBtb3QgbW9jIGxpY2gNCnN1IHZpIGRhaSB0 cmVuIGR1b25nIHBoYXQgdHJpZW4gY3VhIHRvIHF1b2MuIFZvaSB0dSBjYWNoIHRoYW0gbXV1IGNo byBjYXANCmNhbyBoYWkgYmVuLCB0cm9uZyBob2kgbmdoaSBuYXkgY2h1bmcgdGEgYmFuIHRoYW5n IHZhbyBuaHVuZyBwaHVvbmcgYW4NCnBoYXQgdGhhbyBuaHVuZyBidW9jIHRpZW4gaGFuaCBjdSB0 aGUsIG5odW5nIGNvbmcgdmllYyBjdSB0aGUgdHJvbmcNCmNvbmcgdGFjIGNodWFuIGJpLg0KDQpO YW8sIHhpbiBjYW4gY2hlbiBtb3QgbGFuIG51YSwgbXVuZyB0aGFuZyBsb2kgY3VhIGhvaSBuZ2hp IGxpY2ggc3UgbmF5Lg0KDQpUcm9uZyB0aW5oIHRoZSBoaWVuIG5heSwgVmlldCBOYW0ga2hvbmcg Y29uIGx1YSBjaG9uIG5hbyBraGFjLCBraG9uZw0KY29uIGNvbiBkdW9uZyBuYW8ga2hhYyBob24g bGEgdHJvIHZlIHZvaSB0byBxdW9jIFRydW5nIEhvYSB2aSBkYWkuDQoNCkRpIHZvaSBNeSBjaGFu Zz8gVGhpIGNhYyBkb25nIGNoaSBjaGF5IGRpIGRhdT8gVHJvIHZlIHZvaSB0byBxdW9jIHRoaQ0K Y2FjIGRvbmcgY2hpIG1vaSB0aWVwIHR1YyB0b24gdGFpIG5odSBuaHVuZyBvbmcgY2h1IGR1eSBu aGF0IHRydW9jIGhpZW0NCmhvYSBjdWEgYm9uIGRvaSBibyBkYW5nIHRpY2ggY3VjIHBoYW4gY29u ZyBuaGFtIHRvbmcgY28gY2FjIGRvbmcgY2hpIHJhDQpraG9pIGNobyBuZ29pIGN1YSBtaW5oLiBI YXkgdHVvbmcgdHVvbmcgbW90IG5nYXkgbmFvIGRvLCBjYWMgZG9uZyBjaGkNCmtob25nIGR1b2Mg bmdvaSBvIGJhbiBnaWF5IHRyb25nIGNvbmcgdGh1LCBtYSBwaGFpIGRpIGxhbmcgdGhhbmcgbmdv YWkNCmR1b25nIGtpZW0gdmllYyBsYW0uIFRoYXQga2h1bmcga2hpZXAuIFZpIHRoZSwgY2h1bmcg dGEgcGhhaSBjaGllbiBkYXUNCmhldCBtaW5oIGNobyBzdSB0b24gdGFpIGN1YSBjaHVuZyB0YSwg Y2hvIGNvbiBjaGF1IGNodW5nIHRhLCB0dW9uZyBsYWkNCmN1YSBjaHVuZyB0YSwgY3VhIGNvbiBj aGF1IGNodW5nIHRhLiBRdXlldCBraG9uZyBkZSBsb3QgdmFvIHRheSBrZQ0Ka2hhYy4NCg0KTHUg ZGFuIGNodSBkb2kgYm8gYXkgY28gY2EgbyBUcnVuZyBRdW9jLiBUb2kgdGh1YSBuaGFuIGRpZXUg ZG8uIE5odW5nDQpjaHVuZyB0b2kgdGhhbmcgdGhhbiB0cmFuIGFwIGNodW5nIHRoYW5nIGxvaS4g Tmh1bmcgbyBWaWV0IE5hbSB0aW5oIHRyYW5nDQpjbyBraGFjLiBDaHVuZyBodW5nIGhhbmcgaG9u LCBsaSBsb20gaG9uLCBsYSBkbyBjYWMgZG9uZyBjaGkgdGhpZXUga2llbg0KcXV5ZXQuIE5ldSBv IFRydW5nIFF1b2MgY28gbW90IFRoaWVuIEFuIE1vbiwgdGhpIHRhaSBzYW8gVmlldCBOYW0ga2hv bmcNCmNvIG1vdCBjYWkgdHVvbmcgdHU/IFRvaSB4aW4gYmFvIGRhbSB2b2kgY2FjIGRvbmcgY2hp IHJhbmcsIFRydW5nIHF1b2MNCnNlIHRhbiB0aW5oIGNoaSB2aWVuIGNobyBjYWMgZG9uZyBjaGks IG1vdCBraGkgY28gc3UgYmllbiBkZSBkb2EgcXV5ZW4NCmxvaSBjdWEgZG9uZyBjaGksIGRlIGJh byB2ZSBjYWMgZG9uZyBjaGkuIFRydW5nIFF1b2Mga2hvbmcgdGhpZXUgeGUNCnRhbmcgZGkgY2hp IHRyb25nIHZhaSBUaGllbiBBbiBNb24uLiBDYWMgZG9uZyBjaGkgY3UgaG9pIE5vbmcgZG9uZyBj aGkNCih0dWMgb25nIE5vbmcgRHVjIE1hbmgpIHhlbSBIbyBkb25nIGNoaSAodHVjIGxhIEhvIENh bSBEYW8pIGRhIGh1YSBoZW4NCmdpIHRyb25nIGN1b2MgZ2FwIGdvIGNhcCBjYW8gdnVhIHJvaS4g Tmh1bmcgZG8gbGEgdHJvbmcgdGluaCBodW9uZyBoaWVuDQpuYXkuIFRyb25nIHR1b25nIGxhaSB0 aGkgaGFpIG51b2MgZGEgbGEgbW90LCB0aGkgc2Uga2hvbmcgcGhhaSBuaHUgdmF5Lg0KDQpWaWVj IFZpZXQgTmFtIHRybyB2ZSB2b2kgdG8gcXVvYyBUcnVuZyBIb2EgdmkgZGFpIGxhIHZpZWMgdHJ1 b2Mgc2F1DQpzZSBwaGFpIGRlbi4gS2hvbmcgc29tIHRoaSBtdW9uLiBNYSBzb20gdGhpIGhvbiBt dW9uLiBUcm9uZyBsaWNoIHN1LA0KVmlldCBOYW0gdHVuZyBsYSBxdWFuIGh1eWVuIGN1YSBUcnVu ZyBRdW9jLCBsYSBtb3QgbmhhbmggY3VhIGNheSBkYWkgdGh1DQpUcnVuZyBIb2EuIFRydW5nIFF1 b2MgdmEgVmlldCBOYW0gbGEgbW90LiBEbyBsYSBjaGFuIGx5IGRvaSBkb2kuIERvDQpjdW5nIGxh IGxvaSBjdWEgSG8gZG9uZyBjaGkgKHR1YyBsYSBvbmcgSG8gQ2hpIE1pbmgpIHRyb25nIGxlIHR1 eWVuIHRoZQ0KZ2lhIG5oYXAgZGFuZyBjb25nIHNhbiBUcnVuZyBRdW9jLiBIbyBkb25nIGNoaSB0 b24ga2luaCBjb24gZGF5Og0KIlRydW5nIFF1b2MsIFZpZXQgTmFtIG5odSBtb2kgdm9pIHJhbmcu IE1vaSBobyB0aGkgcmFuZyBsYW5oLiINCkNvIG5naGlhIGxhIGhhaSBudW9jIGxhIGhhaSBibyBw aGFuIHRyb25nIGN1bmcgbW90IGNvIHRoZS4gTm9uZyBkb25nDQpjaGkgKHR1YyBsYSBkb25nIGNo aSBOb25nIER1YyBNYW5oKSB0dW5nIHR1IGhhbyBuaGFuIG1pbmggbGEgbmd1b2kNCkNob2FuZyAo Wmh1YW5nKSB0cm9uZyBjdW9jIGdhcCBnbyBjYWMgZGFpIGJpZXUgdHJvbmcgUXVvYyBWdSBWaWVu LiBNYQ0KZGFuIHRvYyBDaG9hbmcgbGEgZ2k/IExhIG1vdCBibyBwaGFuIGN1YSBkYWkgZ2lhIGRp bmggY2FjIGRhbiB0b2MgVHJ1bmcNClF1b2MuDQoNClRyb25nIHRob2kgZGFpIGhpZW4gbmF5IHRo aSB0aGUgZ2lvaSBkdW9jIHRhaSBwaGFuIGNoaWEgc2F1IGRlIG5oaSB0aGUNCmNoaWVuLCB0aGkg SG9hIEt5IGRhIG1hdCBzdSBkb2MgdG9uIHRyb25nIHN1IHRyb2kgZGF5IGJhdCBuZ28gY3VhIHRv IHF1b2MNCmNodW5nIHRhLCB0aGkgc3Ugc2F0IG5oYXAgdHJvIGxhaSBjdWEgVmlldCBOYW0gdmEg dG9hbiBiYW4gZGFvIERvbmcNCkR1b25nIHRpZXAgdGhlbyBsYSBkaWV1IHRhdCB5ZXUuIFRoZSBu aHVuZyBjaHVuZyB0YSBkZXUgZGEgdGhheSwgZGENCmJpZXQgbmh1bmcgYmlldSBoaWVuIGx1bmcg Y2h1bmcsIGdpYW8gZG9uZyBsdWMgbmF5IGx1YyBraGFjLCB0cm9uZyBiYW4NCmxhbmggZGFvIGRh bmcgY29uZyBzYW4gVmlldCBOYW0gbXVvbiBuZ3VvaSBkdWEgbHVuZyB2YW8gVHJ1bmcgUXVvYywg bmd1b2kNCmR1YSBob24gY29uIGhvIGdpYXkgSG9hIEt5LiBCYXkgZ2lvIGRhIGtoYWMuIFN1IGx1 YSBjaG9uIGNoaSBjb24gY28gbW90Lg0KVmEgbyBkYXksIGNhYyBkb25nIGNoaSBWaWV0IE5hbSB0 byByYSBjbyBsdWEgY2hvbiBkdW5nLg0KDQpOZ2F5IG5heSwgVHJ1bmcgUXVvYyB2aSBkYWkgcGhh aSBkYW5oIGxhaSB2aSB0cmkgZGEgY28gY3VhIG1pbmguIENvIFZpZXQNCk5hbSBuaGFwIHZhbywg VHJ1bmcgUXVvYyBkYSB2aSBkYWkgbGFpIGNhbmcgdGhlbSB2aSBkYWkuIFRoZSBnaW9pIGhvbQ0K bmF5IGNoaSBjb24gbGFpIGhhaSBzaWV1IGN1b25nLiBEbyBsYSBUcnVuZyBRdW9jIHZhIEhvYSBL eS4gQ29uIGhvIGdpYXkNCkhvYSBLeS4gTmh1bmcgdmllYyBtYSBiYXkgZ2lvIGNodW5nIHRhIHBo YWkgbGFtLiBUb2kgeGluIG5oYW4gbWFuaCBsYWkNCmxhbiBudWEuIEtob25nIHBoYWkgYmF5IGdp byBtb2kgbGFtLCBuaHVuZyBsYW0gY2h1YSBkdW5nLCBsYW0gY2h1YSBkdSwNCnRoaSBuYXkgY2Fu IHBoYWkgZGF5IG1hbmggaG9uIG51YS4gUGhhaSB0cmllbiBraGFpIHJvbmcgaG9uIG51YSBsYSBk ZSBiZXANCnZhIHRpZXUgZGlldCBsdWFuIGRpZXUgdGluaCB0aGFuIGRhbiB0b2MgdmFuIGNvbiB0 b24gdGFpIGRhaSBkYW5nIHRyb25nDQpib24ga2llbiB0cmkgbGFwIHRydW9uZyBkb2MgbGFwIGRh biB0b2MuIERhYyBiaWV0IHRyb25nIGRhbSB0cmkgdGh1YyB2YQ0KdmFpIHBoYW4gdHUgY29uZyB0 aGFuIGNodSBuZ2hpYSB0cm9uZyB0dW9uZyBsaW5oLiBDYW4gcGhhaSB0aWV1IGRpZXQgY2ENCnZl IHRpbmggdGhhbiwgY2EgdmUgdmF0IGNoYXQuDQoNClRyb25nIHR1b25nIGxpbmgsIHBoYW4gbmhp ZXUgbGEgbmd1b2kgY3VhIHRhLCBkbyB0YSBkYW8gdGFvLCBjYXQgbmhhYy4NCkNvbmcgbmF5IGxh IG5ndXllbiBjaHUgdGljaCBMZSAodHVjIGxhIExlIER1YyBBbmgpIG5ndW9pIHJhdCBiaWV0IG5o aW4NCnhhIHRyb25nIHJvbmcuIFR1eSBuaGllbiwgbGFuIHZhbyBkYXkgY3VuZyB2YW4gY28gdmFp IHBoYW4gdHUgbHVuZyBjaHVuZywNCmdpYW8gZG9uZywgY2h1IHlldSBkbyBrZW0gaGlldSBiaWV0 LiBDYWMgZG9uZyBjaGkgY2FuIGRhIHRob25nLCBib2kgZHVvbmcNCnRoZW0gY2hvIGhvIHZlIGxh cCB0cnVvbmcsIHF1YW4gZGllbSB2YSB0cnVvbmcgZGFuZyBjYWMgY2FwLiBNYXkgYW5oDQpnaWEg c2FwIGNoZXQgaGF5IG5vaSBuZ2FuZyB0aGkgcGhhaSBkZSBuZXQgY2hvIGNodW5nIGJpZXQgcmFu ZywgbW90IGtoaQ0KZGEgYmkgY29pIGxhIGNob25nIGRhbmcgdGhpIGNodW5nIHNlIGJpIHR1b2Mg aGV0IG1vaSB0aWV1IGNodWFuIGNhbw0KZGFuZyBkdW9jIGh1b25nLCB0YXQgY2h1bmcgc2UgaW0g bW9tLg0KDQpEYW0gdHJpIHRodWMgbGVvIHRlbyBtb2kgbGEgZGFuZyBuZ2FpLiBUdXkgY2hhbmcg Y28gdHJvbmcgdGF5IGNhaSBnaSwNCm5odW5nIGNodW5nIGNvIGtoYSBuYW5nIGtpY2ggZG9uZyB0 aW5oIHRoYW4gbmhhbiBkYW4gZGUgY2FuIHRybyBzdSBob3ANCm5oYXQuIE5odW5nIGtob25nIGxv LiBNYW8gY2h1IHRpY2ggZGEgZGF5OiAiVHJpIHRodWMga2hvaSB4dW9uZyBkdW9jLA0Kbmh1bmcg a2hvbmcgbGFtIGR1b2MuIENodW5nIGNoaSBsZXAgYmVwIGxvIG1pZW5nLiBUaGF5IHN1bmcgbGVu IGRhbiBsYQ0KY2h1bmcgcnVuZyBydW5nIGJvIGNoYXkuIiBEYW5nIG5nYWkgbGEgbyBjaG8gYXks IGNobyBraG9pIHh1b25nLg0KTmh1bmcga2hvbmcgZGFuZyBzbyBjdW5nIG8gY2hvIGF5LiBPIGNo byBiYW4gdGluaCB0cmkgdGh1YywgaGF5IGxlbiBkYW4sDQpoYXkgaG8gYmFuIHRoYXQgdG8sIGRh dSBzZSB2YW8gZGF5LiBMdWMgbHVvbmcgY2h1IHlldSBjdWEgY2h1bmcgdGENCnRyb25nIHZpZWMg dHJhbiBhcCBib24gZGFuIHRvYyBjaHUgbmdoaWEgbGEgaGFpIGNhbmggcXVhbi4gVmUgdmF0IGNo YXQNCmxhIGNvbmcgYW4sIHZlIHRpbmggdGhhbiBsYSB0cnV5ZW4gdGhvbmcuDQoNCkNvbmcgYW4g c2UgZHVvYyBjdW5nIGNhcCBtb2kgdHJhbmcgYmkgaGllbiBkYWkgbmhhdCBkZSBkZSBiZXAgbW9p IG11dQ0KdG9hbiBkb2kga2hhbmcuIE5odW5nIHBoYWkgY2h1IHkgZGVuIGRpZW0gbmF5OiBLaG9u ZyBkdW9jIGxhbSBkdW5nIGNhYw0KcGh1b25nIHRpZW4gaGllbiBkYWkuIENoaWV1IGNvIG5odW5n IGJpZW4gcGhhcCB0cnV5ZW4gdGhvbmcgaXQgZ2F5IG9uDQphbywgdHJhbmggbmh1bmcgcGhhbiB1 bmcgcXVvYyB0ZSBiYXQgbG9pLiBUcnV5ZW4gdGhvbmcgcGhhaSBzdSBkdW5nIG1vaQ0KcGh1b25n IHRpZW4gc2FuIGNvLiBUYW5nIGN1b25nIHZpZXQgdmEgbm9pIGhhbmcgbmdheSBoYW5nIGdpbywg YmllbiBsdWFuDQpjaG8gZGFuIHRoYXkgY2FpIGxvaSBjdWEgdmllYyBzYXQgbmhhcC4gSG8gc2Ug ZHVvYyBodW9uZyBtb2kgcGh1YyBsb2kgY3VhDQpuZ3VvaSBkYW4gVHJ1bmcgUXVvYyBob24gaGFu IHBodWMgbG9pIGRhbmcgY28uIEhvIHNlIGtob25nIGNvbiBjaHV5ZW4gbHVuZw0KY3VuZyB2dW9u ZyBtYWMgdmUgYmllbiBnaW9pLiBOZ3UgZGFuIGR1b2MgdGhhIGhvIGRhbmggY2EgdHJlbiBiaWVu IERvbmcNCm5heSBjdW5nIGxhIGN1YSBobyBtYSBraG9uZyBjb24gcGhhaSBsbyBsYW5nOiB2aSB4 YW0gcGhhbSBsYW5oIGhhaSwgYmkNCmhhaSBxdWFuIFRydW5nIFF1b2MgdHJ1bmcgcGhhdC4gTmd1 b2kgZGFuIGtoaSB4dWF0IG5nb2FpIHNlIGR1b2MgY2FtIGhvDQpjaGlldSBjdWEgbW90IG51b2Mg bG9uIG1hIHRoZSBnaW9pIHBoYWkga2llbmcgbmUuDQoNClR1eSBuaGllbiwgdG9pIGRhYyBiaWV0 IGx1dSB5IGNhYyBkb25nIGNoaSBsYSBwaGFpIHRpZW4gaGFuaCBraW4gZGFvLCBkZQ0KbW9pIHZp ZWMgY2h1YW4gYmkgZGllbiByYSBuaHUgYmluaCB0aHVvbmcsIGtob25nIG5oYW4gdGhheSBkdW9j LiBUcm9uZw0Ka2hpIGNodWEgZHVvYyBob3AgbmhhdCwgdHJ1bmcgdW9uZyBjaGluaCBwaHUsIGN1 bmcgbmh1IGNhYyB0aW5oIGNoaW5oDQpwaHUsIHR1eWV0IGRvaSBraG9uZyBsbyB5IGRvLiBUaGlu aCB0aG9hbmcgY3VuZyBwaGFpIGNobyBwaGF0IG5nb24gbmhhbg0KdHJ1bmcgdW9uZyBjaGluaCBw aHUgbm9pIGRhbSBiYSBjYXUgcGhhbiBkb2kgdmUgY2h1IHF1eWVuIFRheSBTYSB2YSBOYW0NClNh LiBWYSBjaG8gcGhlcCBjYWMgYmFvIGRhbmcgdmFpIGJhaSBjaGlldSBsZSB2ZSBiaWVuIGdpb2kg dmEgaGFpIGRhbyB2b2kNCm1vaSBzdSBjbyB4YXkgcmEgdHJlbiBiaWVuIG5odSB2dWEgcm9pLiBD dSB0aWVwIHR1YyBhbSBjaGkgbW90IG51b2MNCm5nb2FpIG5hbyBkbywgaG9hYyBtb3QgdGF1IGxh IG5hbyBkbywga2hvbmcgcm8gcXVvYyB0aWNoIGxhIGR1b2MuIER1bmcNCnF1ZW4geGVtIHRodW9u ZyBjYWMgbmhhIGJhby4gSG8gbGEgY29uZyBib2MgdHJ1bmcgdGhhbmggY3VhIHRhLiBUaGlldSBo bw0Ka2hvbmcgZHVvYy4NCg0KSGllbiBuYXkgZGFuZyBub2kgbGVuIHN1IHBoYW4gZG9pIFRydW5n IFF1b2Mga2hhaSB0aGFjIEJhdXhpdGUgbyBtaWVuDQpUcnVuZywgb24gYW8gbGFtLCBjbyB2ZSBo dW5nIGhhbmcgbGFtLiBOaHVuZyBsYSBiZSBuZ29haSB0aG9pLiBDaHUgYmUgbw0KdHJvbmcsIGJv biBwaGFuIGRvaSBjdW5nIHRodWEgYmlldCBtb2kgc3UgZGEgYW4gYmF5LiBUaWVuIGRhIHRyYW8g dGhpDQpjaGFvIHBoYWkgZHVvYyBtdWMuIEJvIENoaW5oIFRyaSBxdXlldCBraG9uZyBibyBrZSBo b2FjaCBuYXkuIE5oYXQgbGEgZG9uZw0KY2hpIE5vbmcgRHVjIE1hbmguIExhIGNodXllbiBzaW5o IHR1IGN1YSBkb25nIGNoaSBOb25nIER1YyBNYW5oIG5lbiBkb25nDQpjaGkgYXkgcmF0IGN1b25n IHF1eWV0LiBUcm9uZyBjaHV5ZW4gQmF1eGl0ZSwgdG9pIHRoYXkgYmVuIGNhbmggY2FpIHhhdQ0K bGFpIGNvIGNhaSB0b3QgZGF5Lg0KDQpDYWMgZG9uZyBjaGkgYSEgUGhhaSBjb25nIGJhbmcgbWEg bGFwIGx1YW4sIG1vdCBraGkgVmlldCBOYW0gZGEgbmhhcA0KdmFvIFRydW5nIFF1b2MgdGhpIHZ1 bmcgVGF5IE5ndXllbiBjdWEgVmlldCBOYW0gbGEgY3VhIGNodW5nIG51b2MgdGEuDQpDaHVhIGNo dW5nLCB0cmVuIHNlIHRoYXkgZG9pIGtlIGhvYWNoLiBUYSBraG9uZyBraGFpIHRoYWMgbyBkYXkg bnVhLCBtYQ0KY2h1eWVuIHNhbmcga2hhaSB0aGFjLCB0aHVjIGhpZW4gbyBDaGF1IFBoaS4gQmF1 eGl0ZSBjdWEgdGEsIHRhIGRlIGRheQ0KZHVuZyBzYXUuIEN1bmcgbmh1IHRhIGRhdSBjbyB2b2kg a2hhaSB0aGFjIGNhIHR5IHRhbiBCYXV4aXRlIG8gUXVhbmcNClRheS4gTm9pIGRlIGNhYyBkb25n IGNoaSBwaGFuIGtob2kuIFZlIHRodWMgY2hhdCwgcXVhIGNvbiBkdW9uZyBuZ29haQ0KdGh1b25n LCBkYXUgdHUsIHRhIG5hbSBDaGF1IFBoaSB0cm9uZyBuaGlldSBuYW0gbmF5IHJvaS4gVGEgZGEg bXVhIGhldA0KY2FjIGNoaW5oIHF1eWVuIG8gZGF5LiBDYWkgZG8gZ29pIGxhIHF1eWVuIGx1YyBt ZW0uIFRydW5nIFF1b2MgZGVuIHNhdQ0KcGh1b25nIFRheSB2YSBIb2EgS3ksIHZheSBtYSBjaGkg dHJvbmcgdm9uZyBtb3QgdGhhcCBuaWVuLCB0YSBkYSBxdWV0IHNhY2gNCmNodW5nIGtob2kgZGF5 LiBUYSBjb24gY2h1eWVuIGRhbiBtaW5oIHNhbmcgQ2hhdSBQaGksIGxhbSB0aGFuaCBuaHVuZw0K dnVuZyBkYXQgVHJ1bmcgUXVvYyB0cmVuIGx1YyBkaWEgZGVuIGtpYSBudWEuIE5ndW9pIFRydW5n IFF1b2MgYmF5IGdpbw0KY28gcXV5ZW4gbm9pOiAiTWF0IHRyb2kga2hvbmcgYmFvIGdpbyBsYW4g dHJlbiBkYXQgZGFpIGN1YSB0byBxdW9jLiINCg0KUGhhaSB0cmFuIGFuIGNhYyBjYW4gYm8gY2Fj IGNhcCwgdHUgdHJ1bmcgdW9uZyBjaG8gZGVuIGRpYSBwaHVvbmcgZGUgaG8NCnRoYXkgcmFuZyBz YXUgaG9wIG5oYXQsIG1vaSB2aSB0cmkgcXV5ZW4gbG9pLCBib25nIGxvYyBjdWEgaG8ga2hvbmcg YmkNCnN1eSBzdXllbi4gQ2FjIGRvbiB2aSBoYW5oIGNoaW5oIHNlIGR1b2MgZ2l1IG5ndXllbiB0 cm9uZyBtb3QgdGhvaSBnaWFuDQpkYWkgdHJ1b2Mga2hpIGFwIGR1bmcgbW8gaGluaCBoYW5oIGNo YW5oIGNodW5nIGN1YSB0b2FuIHF1b2MuIFZpZWMgbmF5DQpyYXQgcXVhbiB0cm9uZy4gWGluIGNh YyBkb25nIGNoaSBjaG8gY29pIHRodW9uZy4gTGFuaCBkYW8gdHUgdHJ1bmcgdW9uZw0KY2hvIGRl biBkaWEgcGh1b25nIGNvIHRob25nIHRoaSBkYW4gbW9pIHRob25nLiBOaGFuIGRhbiBkYSBkdW9j IGdpYW8gZHVjDQpjaHUgZGFvIHRyb25nIG5oaWV1IG5hbSwgdGluaCB0aGFuIHR1eWV0IGRvaSBw aHVjIHR1bmcgbGFuaCBkYW8uIE5odW5nDQpuZXUgaG8gdGhheSBjYXAgdHJlbiBjdWEgaG8gZ2lh byBkb25nLCB0dSB0dW9uZyBiYXQgdGhvbmcgdGhpIGNoaW5oIGhvDQpjdW5nIHNlIGdpYW8gZG9u ZyB0aGVvLCB0cm8gdGhhbmggbW9pIG5nb24gY2hvIG5odW5nIHR1IHR1b25nIGRhbiB0b2MNCmNo dSBuZ2hpYS4NCg0KVGh1YSBjYWMgZG9uZyBjaGkuIENvbiBsYWkgdmllYyBjdW9pIGN1bmcgbGEg bW8gaGluaCBxdWFuIHRyaSBWaWV0IE5hbQ0KdHJvbmcgdG8gcXVvYyB0aG9uZyBuaGF0LiBUaW5o IGhheSBraHUgdHUgdHJpPyBDaHV5ZW4gbmF5IHhpbg0KY2FjIGRvbmcgY2hpIHZlIG5naGkgdGhl bSwgYmFuIHRoZW0uIFRpbmggdGhpIGN1bmcgbmh1IFF1YW5nIERvbmcsIFF1YW5nDQpUYXkuIFZl IGRpZW4gdGljaCBob24ga2VtIGtob25nIG5oaWV1LiBLaHUgdHUgdHJpIGtpZXUgbmh1IGtodSB0 dSB0cmkNCkNob2FuZyB0cm9uZyB0aW5oIFF1YW5nIFRheSB0aGkgbGFpIHF1YSBuaG8gdmUgdmFp IHZlLiBOb25nIGRvbmcgY2hpIHZvbg0KcmF0IGUgbmdhaSBzdSBjaG9uZyBkb2kgdHJvbmcgbm9p IGJvLiBNYSBsYW0ga2h1IHR1IHRyaSB2b2kgeSBuZ2hpYSBsb24NCmhvbiB0aGkgbGFpIHZ1b25n IGNodXllbiBUYXkgVGFuZy4gQm9uIGNobyBEYXQgTGFpIExhdCBNYSBjdW5nIGRhbmcgeGluDQp0 dSB0cmkgZGF5LCBtYSB0cnVuZyB1b25nIGtob25nIHRodWFuLiBDb24gbWF5IGRvbmcgY2hpIFZp ZXQgTmFtIG5ldSB5DQpraWVuLCBoYXkgbGEgdG8gY2h1YyBUcnVuZyBRdW9jIHRoYW5oIGxpZW4g YmFuZywgVmlldCBOYW0gc2UgbGEgbW90IG51b2MNCmhheSBtb3QgYmFuZyB0cm9uZyBsaWVuIGJh bmcgYXkuIFkga2llbiBuYXkga2hvbmcgbW9pLiBObyBkYSB0dW5nIGR1b2MNCm5ldSBsZW4uIE5o dW5nIGNhYyBkb25nIGNoaSB0aHUgbmdoaSB4ZW0uIE5ldSBuaHUgdGhlIHRoaSB0aG9uZyBuaGF0 DQpsYW0gc2FvIGR1b2Mgdm9pIGJvbiBUYXkgVGFuZywgYm9uIE5vaSBNb25nLCBib24gTWFuIENo YXUsIGJvbiBIb2kgQm90Lg0KQ2hpbmggY2h1bmcgbm8gZGFuZyBtdW9uIGNhaSBkbyBkZSB4dW5n IGRvYyBsYXAsIGhvYWMgdHUgdHJpIHRyb25nIGxpZW4NCmJhbmcuIFRyZW4gbmd1eWVuIHRhYyB0 aGkgZHVuZywgbGEgY2FpIGdpIGN1bmcgZHVvYy4gRGFuaCBjaGluaCB0aGkNCm5nb24gdGh1YW4u IE5odW5nIG5vaSBkdW5nIGJhdCBiaWVuLiBWdW5nIG5hbyBjdW5nIGNoaSBsYSBtb3QgYm8gcGhh bg0KbGFuaCB0aG8gY3VhIFRydW5nIFF1b2MuIENvIGRpZXUgbmh1bmcgZGFuaCBoaWV1IGRvYyBs YXAsIHR1IHRyaSBsYSBjYWkNCnJlIGJpIGxvbmcgdmFvIGRheSBjYWkgdGluaCB0aGFuIGRhbiB0 b2MsIG1hbSBtb25nIGNobyBzdSBwaGFuIGxpZXQuDQpLaG9uZyBkdW9jLiBRdXlldCBraG9uZyBk dW9jLg0KDQpUaHVhIGNhYyBkb25nIGNoaS4gVmFuIGRlIGhpbmggdGh1YyBuaHVuZyBsYWkgY28g dGFtIHF1YW4gdHJvbmcuIFhpbg0KY2FjIGRvbmcgY2hpIHBoYXQgaHV5IHR1IGRvIHR1Li4uICho ZXQgcGhhbiB0cmljaCB2YSBkaWNoIGRvYW4gYmFuZw0KZ2hpIGFtKQ0KDQpodHRwOi8vbGluaG5k Lm11bHRpcGx5LmNvbS9qb3VybmFsL2l0ZW0vNTUvNTUgQXVnIDMsICcwOSAxOjIxIFBNDQpWdSBh biBjaGluaCB0cmkgc2lldSBuZ2hpZW0gdHJvbmcuMTIgLSBUdW9uZyBHaWFwIHRpZXAgdHVjIGxl biB0aWVuZw0KDQpCdWkgVGluIDAyLjA4LjIwMDkgDQoNClZ1IFRvbmcgQ3VjIDIgbm8gcmEgYmF0 IG5ndW9uIHR1IGxhIHRodSBjdWEgRGFpIFR1b25nIFZvIE5ndXllbiBHaWFwIG5nYXkgMy8xLzIw MDQgZ3VpIGNobyBCYW4gY2hhcCBoYW5oIFRXLCBCYW4gQmkgdGh1LCBVeSBiYW4gS2llbSBUcmEg VFcgZGFpIDcgdHJhbmcsIHRyb25nIGRvIGxhbiBkYXUgdGllbiB0dW9uZyBHaWFwIGR1bmcgdHUg IlNpZXUgbmdoaWVtIHRyb25nICIgZGUgY2hpIFZ1IGFuIFRvbmcgY3VjIDIuIA0KDQpUb25nIEN1 YyAyIGR1b2MgbGFwIHRyZW4gY28gc28gY3VhIEN1YyAyIGxhIEN1YyBRdWFuIEJhbyB0cnVjIHRo dW9jIEJvIFRvbmcgVGhhbSBtdXUsIGR1b2MgbmFuZyBjYXAgbGVuIGRlbiBuZ2FuZyBoYW5nIHZv aSBibyBUb25nIFRoYW0gbXV1LCBUb25nIGN1YyBDaGluaCB0cmksIHRydWMgdGllcCB2b2kgQm8g UXVvYyBwaG9uZywgdm9pIG5odW5nIHF1eWVuIGhhbiBkYWMgYmlldCB2ZSBhbiBuaW5oLCB0aW5o IGJhbywgcGhhbiANCmdpYW4sIGJhbyB2ZSBub2kgYm8gTmhhIG51b2MsIERhbmcsIFF1YW4gZG9p LCBjbyBxdXllbiB0aGFtIGRvIG1vaSBuZ3VvaSBrZSBjYSBuaHVuZyB2aSB0cmkgY2FvIG5oYXQu IFRvbmcgY3VjIDIgbGFpIGNvIHF1YW4gaGUgZGFjIGJpZXQgdm9pIEN1YyBUaW5oIEJhbyBIb2Eg TmFtIC0gVHJ1bmcgUXVvYy4gDQoNClR1b25nIEdpYXAgeWV1IGNhdSBnaWFpIHRoZSBuZ2F5IFRD IDIsIGR1YSBubyB0cm8gdmUgY2hvIGN1LCBsYSBDdWMgUXVhbiBCYW8gdGh1b2MgQm8gVG9uZyBU aGFtIG11dS4gDQoNCkJvIENoaW5oIHRyaSB2YSBUVyBkYXUgbmFtIDIwMDUgZGEgcXV5ZXQgZGlu aCBsYXAgQmFuIGRpZXUgdHJhIGxpZW4gbmdhbmggeGVtIHhldCB2dSBuYXksIG5odW5nIEJvIENo aW5oIHRyaSBkYSBlbSBuaGVtIGJhbiBiYW8gY2FvIGRhYyBiaWV0IGN1YSBCYW4gbmF5LCBraG9u ZyBkdWEgcmEgVFcsIGN1bmcga2hvbmcgZHVhIHJhIERhaSBob2kgWC4gRG8geSBkbyBjdWEgRG8g TXVvaSB2YSBMZSBEdWMgQW5oLCBOZ3V5ZW4gQ2hpIFZpbmgga2hvbmcgbmh1bmcgZHVvYyBjdSBs YSBUb25nIEN1YyB0cnVvbmcgVEMgMiwgY29uIGR1b2MgdGhhbmcgVHJ1bmcgdHVvbmcgdmEgDQpu YXkgbGEgVGh1IHRydW9uZyBCbyBRdW9jIFBob25nLiANCg0KQ29uIHZ1IFQ0IGxhIHZ1IGRvIFRD MiBjdWEgTmd1eWVuIENoaSBWaW5oIGJpYSByYSByYW5nIGhvIGRhIGNhaSBkdW9jIG1vdCBub2kg Z2lhbiB0cm9uZyBDSUEgTXkgbWFuZyBiaSBkYW5oIFQ0LCB2YSBUNCBjaG8gYmlldCBoYW5nIGxv YXQgY2FjIHZpIG5odTogUGhhbSBWYW4gRG9uZywgDQpWbyBOZ3V5ZW4gR2lhcCwgVHJhbiBWYW4g VHJhLCBMZSBLaGEgUGhpZXUsIE5ndXllbiBWYW4gQW4sIFZvIFZhbiBLaWV0ICwgVm8gdGhpIA0K VGhhbmcuLi4gZGV1IGxhbSB2aWVjLCBjb25nIHRhYyB2b2kgQ0lBLiANCg0KVnUgYW4gU2lldSBu Z2hpZW0gdHJvbmcgVEMgMiBiaSBib3AgY2hldCwgaW0gZGksIGNodSB5ZXUgbGEgZG8gVG9uZyBC aSBUaHUgTm9uZyBEdWMgTWFuaCBjdW5nIERvIE11b2kgdmEgTGUgRHVjIEFuaCBjdW5nIG5oYXUg ZHV5IHRyaSBoaWVuIHRyYW5nIG9uIGRpbmggYmVuIG5nb2FpLCB0aGVvIHkgbXVvbiBjdWEgQmFj IEtpbmguIA0KDQpHYW4gZGF5IFRydW5nIHRhIFZ1IE1pbmggVHJpIG8gdHJvbmcgVEMyIGd1aSB0 aHUgY2hvIFRXLCBCbyBDaGluaCBUcmksIGNobyBEVCBHaWFwLCB0byBjYW8gbmh1bmcgdmllYyBs YW0gdGUgaGFpIHZvIG5ndXllbiB0YWMsIGJ1YSBiYWksIHRoYW0gbywgZ2lhIGRpbmggdHJpLCBw aGUgY2FuaCwgZG9pIHRydXkgY3VhIFRDIDIuIFR1b25nIEdpYXAgbmdheSAxMC82LzIwMDkgZGEg Z3VpIHRodSBjaG8gQkNULCBCYW4gQmkgVGh1LCBVQiBLaWVtIA0KdHJhIFRXIHlldSBjYXUgbW8g bW90IGN1b2MgZGlldSB0cmEgZGFjIGJpZXQgdmEgZ2lhaSBxdXlldCB0cmlldCBkZSB2dSBhbiBT aWV1IG5naGllbSB0cm9uZyBuYXkuIA0KDQpUaHUgZHVvaSBkYXkgY3VhIG9uZyBHaWFwIHJhIGR1 bmcgbHVjIHRpbmggaGluaCBkYW5nIHNvaSBzdWMgZG8gdnUgQm8gWGl0LCB2dSBCaWVuIHZhIERh bywgdnUgbmd1IGRhbiB0YSBiaSB0YW4gc2F0LCB2dSBQaGF0IGdpYW8gbyBMYW0gRG9uZywgR2lh byBkYW4gVGhhaSBIYSByb2kgVGFtIFRvYSwgdi52Li4uIGRheSBCQ1QsIFRXIHZhbyB0aW5oIHRo ZSByYXQgZ2F5IGdhdCB2YXkuIA0KDQpEb2MgZ2lhIGNvIHRoZSB0aW0gZG9jIDIgY3VvbiBzYWNo OiBWdSBhbiBTaWV1IE5naGllbSB0cm9uZyBUQzItVDQgdmEgY3VvbiBDdW5nIFZ1YSB2YSBQaHUg Q2h1YSBkZSBoaWV1IHJvIGhvbiBjYWMgdmFuIGRlIHRyZW4uIA0KDQpodHRwOi8vbGluaG5kLm11 bHRpcGx5LmNvbS9qb3VybmFsL2l0ZW0vNTUvNTUgQXVnIDMsICcwOSAxOjIxIFBNDQpWdSBhbiBj aGluaCB0cmkgc2lldSBuZ2hpZW0gdHJvbmcuMTIgLSBUdW9uZyBHaWFwIHRpZXAgdHVjIGxlbiB0 aWVuZw0KDQpUaHUgY3VhIERhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lhcCAoMTAgdGhhbmcgNiBuYW0g MjAwOSkNCg0KS2luaCBndWk6IENhYyBkb25nIGNoaSB0cm9uZyBCbyBDaGluaCBUcmkgdmEgQmFu IEJpIHRodSwNCg0KVG9pIGRhIG5oYW4gZHVvYyB0aHUgY3VhIGRvbmcgY2hpIFRydW5nIHRhIFZ1 IE1pbmggVHJpIG1vdCBjYW4gYm8sIGRhbmcgdmllbiBoaWVuIGRhbmcgY29uZyB0YWMgbyBUb25n IEN1YyBJSSB0byBjYW8gTmd1eWVuIENoaSBWaW5oIGRhIGx1bmcgZG9hbiAicGhhIGhvYWkgVG9u ZyBDdWMgSUkgdG9hbiBkaWVuIi4gRG9uZyBjaGkgYXkgY2hvIHJhbmc6ICJUaHVjIHRyYW5nIFRv bmcgQ3VjIElJIGNobyB0aGF5IFF1YW4gZG9pIHRhLCBEYW5nIA0KdGEsIE5oYSBudW9jIHRhIGRh bmcgZ2FwIHBoYWkgbW90IGhpZW0gaG9hIHZvIGN1bmcgdG8gbG9uLCBuZ2F5IHR1IGJlbiB0cm9u ZywgbmdheSBvIGJlbiB0cmVuLiINCg0KUXVhIHRodSBjdWEgZG9uZyBjaGkgVnUgTWluaCBUcmks IHRvaSB0aGF5IGRheSBsYSBzdSB0byBjYW8gY3VhIG1vdCBjYW4gYm8sIG1vdCBkYW5nIHZpZW4g Y28gdHJpbmggZG8gdmEgY28gdHJhY2ggbmhpZW0gY2FvLCBkdW5nIGNhbSwgZGFtIHRvIGNhbyBu aHVuZyBoYW5oIGRvbmcgbWEgbWluaCBjaG8gbGEgc2FpIHRyYWkgZGFuZyBnYXkgbmd1eSBoYWkg ZGVuIERhbmcsIGRlbiBRdWFuIGRvaS4gRGF5IGxhIHN1IHRvIGNhbyB0aGVvIGR1bmcgIA0KZGll dSBsZSBEYW5nLCBwaGFwIGx1YXQgTmhhIG51b2MgY3VhIG1vdCBDYW4gYm8sIGRhbmcgdmllbiBk dW9uZyBjaHVjLCBjdWEgbmd1b2kgdHJvbmcgY3VvYywga2hvbmcgcGhhaSBsYSBtb3QgdGh1IG5h YyBkYW5oLCB0aHUgY3VhIG5ndW9pIG5nb2FpIGN1b2MuIE5ldSBkdW5nIG5odSBkb24gdG8gY2Fv IHRoaSBkYXkgbGEgbW90IHRpbmggaGluaCBjdWMga3kgbmdoaWVtIHRyb25nLg0KDQpUb2kga2hv bmcgaGlldSB2aSBzYW8gTmd1eWVuIENoaSBWaW5oIHRydW9jIGNvIG5odW5nIGtodXlldCBkaWVt LCBraGkgZG8gZG9uZyBjaGkgVG9uZyBCaSB0aHUgTm9uZyBEdWMgTWFuaCBub2kgdm9pIHRvaSBs YSBraG9uZyB0aGUgbGVuIFRydW5nIHR1b25nIHZhIGNodWEgYmlldCBkdWEgDQpkaSBkYXUgZGUg cmVuIGx1eWVuLCBuaHVuZyB0aHVjIHRlIGxhaSBraG9uZyBsYW0gbmh1IHZheSBtYSB0aWVwIHR1 YyB0aGFuZyBxdWFuIGhhbSB2YSBnaWFvIHRyb25nIHRyYWNoIFRvbmcgQ3VjIHRydW9uZywgaGll biBuYXkgdnVhIGRlIGJhdCBsYSBUaHUgdHJ1b25nIEJvIFF1b2MgcGhvbmcgbGFtIGNobyBhaSBj dW5nIG5nYWMgbmhpZW4sIGxvIGxhbmcgdmEgbmV1IGtob25nIGxhbSBybyB0aGkgY2hhYyBzZSBj b24gbGVuIG51YS4NCg0KTmh1IHRodSB0byBjYW8gdGhpIFRvbmcgQ3VjIElJIHRpZXAgdHVjIGhv YXQgZG9uZyBzYWkgY2h1YyBuYW5nLCBuaGllbSB2dSB2YSBkYW5nIGJpIGJpZW4gY2hhdCwgdGlu aCBoaW5oIGRhbmcgY3VjIGt5IG5ndXkgaGllbSBkb2kgdm9pIFF1YW4gZG9pLCBkb2kgdm9pIERh bmcuIFZpIHZheSwgdG9pIGRlIG5naGkgQm8gQ2hpbmggdHJpLCBCYW4gQmkgdGh1IGNhbiB0aGF5 IGNobyBoZXQgc3UgbmdoaWVtIHRyb25nIGN1YSB2YW4gZGUsIGtob25nIHRoZSBnaWFvIGNobyBj YXAgZHVvaSBraWVtIHRyYSByb2kgYmFvIGNhbyBtYSBjYW4gdG8gY2h1YyBtb3QgYm8gcGhhbiBn b20gbmh1bmcgY2FuIGJvIGNvIA0KcGhhbSBjaGF0IHZhIG5hbmcgbHVjLCBjbyBkdSBxdXllbiBo YW4gY3VhIGNhYyBuZ2FuaCBsaWVuIHF1YW4gZG8gZG9uZyBjaGkgQ2h1IG5oaWVtIFV5IGJhbiBr aWVtIHRyYSBUcnVuZyB1b25nIGNodSB0cmkgdGllbiBoYW5oIG1vdCBjdW9jIGtpZW0gdHJhLCB0 aGFuaCB0cmEgZGFjIGJpZXQsIHRoYXQgbmdoaWVtIHR1YyB0aGVvIGR1bmcgZGlldSBsZSBjdWEg RGFuZyB2YSBwaGFwIGx1YXQgY3VhIE5oYSBudW9jLCBkZSBsYW0gcm8gbmh1bmcgdmFuIA0KZGUg dG8gY2FvIHZhIGNvIGNodSB0cnVvbmcgZ2lhaSBxdXlldCBuaHVuZyBzYWkgdHJhaSBtb3QgY2Fj aCBraWVuIHF1eWV0LCB0cmlldCBkZSwgZHVuZyBuZ3V5ZW4gdGFjIGRlIGJhbyB2ZSBxdWFuIGRv aSwgYmFvIHZlIERhbmcsIGJhbyB2ZSBkb2MgbGFwIHR1IGNodSBjdWEgZGF0IG51b2MuIENhbiBj aHUgeSBiYW8gdmUgbmd1b2kgdG8gY2FvLg0KDQpUb2kgY28gdHJhbyBkb2kgdm9pIG1vdCBzbyBk b25nIGNoaSBuZ3V5ZW4gbGEgVG9uZyBCaSB0aHUsIG5ndXllbiBsYSBVeSB2aWVuIEJvIENoaW5o IHRyaSB2YSBkZSBuZ2hpIGNhYyBkb25nIGNoaSBheSBoYXkgZ29wIHN1YyBjdW5nIGNhYyBkb25n IGNoaSBkdW9uZyBjaHVjIGdpYWkgcXV5ZXQgYmFuZyANCmR1b2MgdmFuIGRlIG5heSwgZGUgdHJh bmggY2hvIERhbmcgbW90IGhpZW0gaG9hLiBUb2kgY2hvIGRheSBsYSBoZSBxdWEgY3VhIHZ1IFQ0 IGtob25nIGR1b2MgZ2lhaSBxdXlldCBuZ2hpZW0gbWluaC4gVG9pIGhldCBzdWMgbG8gbGFuZyBj aG8gRGFuZywgY2hvIFF1YW4gZG9pLCBjaG8gZGF0IA0KbnVvYyB0cnVvYyB0aW5oIGhpbmggbmF5 IG5lbiBndWkgdGh1IGRlbiBjYWMgZG9uZyBjaGksIG1vbmcgY2FjIGRvbmcgY2hpIGdvcCBwaGFu IGxhbmggZGFvIGdpYWkgcXV5ZXQgY2hvIGR1b2MgdmFuIGRlIG5heS4NCg0KWGluIGNodWMgY2Fj IGRvbmcgY2hpIG1hbmgga2hvZS4NCkNoYW8gdGhhbiBhaSwNCkhhIE5vaSwgbmdheSAxMCB0aGFu ZyA2IG5hbSAyMDA5DQooY2h1IGt5KQ0KVm8gTmd1eWVuIEdpYXANCg0KLQ0KaHR0cDovL3d3dy50 dW9pdHJldmhuLmNvbS8/YWN0PW5ld3MmY2F0PTY0JnN1Yj02NCZpZD00NDE1MyBWaWV0IEhhLCBw aG9uZyB2aWVuIGRhaSBSRkEgMjAxMC0wMy0yMA0KDQpUaHUgdHVvbmc6IFRodWMgY2hhdCBjdWEg dmllYyB0dXllbiBkdW9uZyBraGVuIHRodW9uZyBvIFZpZXQgTmFtIC0gY29uIG1hbmcgdGluaCBk YWkgdHJhDQoNClRyb25nIG5oaWV1IG5hbSBxdWEgVmlldCBOYW0gZGEgdGh1YyBoaWVuIHZpZWMg a2hlbiB0aHVvbmcsIGJpZXUgZHVvbmcgbmhpZXUgY2EgbmhhbiwgdGFwIHRoZSANCnZvaSBkdSBj YWMgbG9haSBkYW5oIGhpZXUgbmh1IGFuaCBodW5nLCBjaGllbiBzaSB0aGkgZHVhLCBoYXkgZ3Vv bmcgbmd1b2kgdG90IHZpZWMgdG90LCB2YW4gdmFuLiANClR1eSBuaGllbiB0cmVuIHRodWMgdGUg bGFpIGNvIHkga2llbiBjaG8gcmFuZyB2aWVjIGtoZW4gdGh1b25nIHZhIGJpZXUgZHVvbmcgbmhp ZXUga2hpIGNvbiBtYW5nIA0KdGluaCBkYWkgdHJhLCBjbyBraGkgdGhpZXUgdGh1YyBjaGF0Lg0K DQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL0MlQzMlQjRuZ190eV9WZWRhbl9WaSVFMSVC QiU4N3RfTmFtDQoNCkNvbmcgdHkgVmVkYW4gVmlldCBOYW0gbGEgbW90IGNvbmcgdHkgdGh1b2Mg VGFwIGRvYW4gVmVkYW4sIERhaSBMb2FuIC0gVHJ1bmcgUXVvYyANCg0KaHR0cDovL2RhbnRyaS5j b20udm4vYzIwL3MyMC0zNjY2NTEvVmVkYW4tbGEtdGh1LXBoYW0tY2hpbmgtZ2F5LW8tbmhpZW0t c29uZy1UaGktVmFpLmh0bSBUaHUgTmFtLCAxMC8xMi8yMDA5IC0gMDU6MzYgDQoNClZlZGFuIGxh IHRodSBwaGFtIGNoaW5oIGdheSBvIG5oaWVtIHNvbmcgVGhpIFZhaSANCg0KaHR0cDovL2ZndC52 bmV4cHJlc3MubmV0L3Nob3d0aHJlYWQucGhwP3Q9NDYzMzg4DQoNCkNodXllbiBuaHUgZHVhOiBW ZWRhbiBkb2F0IGdpYWkgbW9pIHRydW9uZyAtIE5oYW0gbGFuIGhheSBkb2kgdHJhPw0KDQpodHRw Oi8vdHVhbnZpZXRuYW0ubmV0LzIwMTAtMDgtMDEtbmhhLW51b2MtZGFuZy1xdWVuLWRvaS12ZWRh bi1ib2ktdGh1b25nLSBLaWV1IFBob25nDQoNClZlZGFuIGNvIHRpbmggZ2F5IG8gbmhpZW0gc3Vv dCAxNCBuYW0gLSBOaGEgbnVvYyBkYW5nIHF1ZW4ga2llbiBkZSBkb2kgVmVkYW4gYm9pIHRodW9u ZyEgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA1MC8yMDEw MTIxMTE2MTIwMS5hc3B4IFRyYW4gRHV5IDExLzEyLzIwMTAgMTY6MTIgDQoNClRodSB0dW9uZzog QmFvIGRvbmcgbyBuaGllbSB0cmVuIHNvbmcgRG9uZyBOYWkgIA0KICANCihUTk8pICJLaG9uZyBj YW4gYmFvIGNhbyBjdW5nIGJpZXQgY2FuZyBuZ2F5IGx1dSB2dWMgc29uZyBEb25nIE5haSBjYW5n IG8gbmhpZW0gDQpuZXUga2hvbmcgY28gZ2lhaSBwaGFwIG5odSBoaWVuIG5heSIgLSBCbyB0cnVv bmcgQm8gVGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nIFBoYW0gDQpLaG9pIE5ndXllbiBub2kgdHJv bmcgcGhpZW4gaG9wIHRodSBiYSBjdWEgVXkgYmFuIEJhbyB2ZSBtb2kgdHJ1b25nIGx1dSB2dWMg c29uZyANCkRvbmcgTmFpIChnb2kgdGF0IGxhIFV5IGJhbiBzb25nIERvbmcgTmFpKSBzYW5nIDEx LjEyLiANCg0KSGF1IHF1YSBrZW8gZGFpIA0KDQpUaGVvIEJvIHRydW9uZyBQaGFtIEtob2kgTmd1 eWVuLCBjYWMgdGluaCwgdGhhbmggcGhvIHRodW9jIFV5IGJhbiBzb25nIERvbmcgTmFpIA0KY2Fu IHRob25nIG5oYXQgdmEgbmd1bmcgY2FwIHBoZXAgY2hvIG1vdCBzbyBsb2FpIGhpbmgga2luaCBk b2FuaCBjbyBuZ3V5IGNvIGdheSBvIA0KbmhpZW0gbW9pIHRydW9uZyBsdXUgdnVjIHNvbmcuDQoN CkJvIHRydW9uZyBuaGFuIG1hbmgsIG1vdCBzbyBsb2FpIGhpbmgga2luaCBkb2FuaCB0dXkgbWFu ZyBsYWkgbG9pIGljaCB2ZSBraW5oIHRlIG5odW5nIA0KZ2lhaSBxdXlldCBoYXUgcXVhIG8gbmhp ZW0gcmF0IGdpYW4gbmFuIHZhIGtlbyBkYWkgdHJvbmcgbmhpZXUgdGhlIGhlIHNhdS4NCg0KQm8g dHJ1b25nIE5ndXllbiBjaG8gYmlldCwgbyBtb3Qgc28gdGluaCB0aGFuaCBjbyBsdXUgdnVjIHNv bmcgRG9uZyBOYWkgY2hheSBxdWEgY28gDQp0aHVjIHRyYW5nIG5nYW5oIG5naGUgZ2F5IG8gbmhp ZW0ga2hvbmcgZHVvYyBjYXAgcGhlcCBvIHRpbmggbmF5IG5odW5nIGtoaSAiY2hheSIgDQpxdWEg dGluaCBraGFjIGxpZW4gZHVvYyBjaGFvIGRvbiBub25nIG5oaWV0Lg0KDQpIb2FuZyBUcnVuZyBU dW5nLCBHaWFtIGRvYyBUcnVuZyB0YW0gcXVhbiB0cmFjIE1vaSB0cnVvbmcgLSBUb25nIGN1YyBN b2kgdHJ1b25nIA0KZHVhIHJhIGNhYyBjb24gc28gcmF0IGRhbmcgbG8gbmdhaS4gVGhlbyBkbywg bHV1IGx1b25nIG51b2MgdGhhaSB2YW8gbHV1IHZ1YyBzb25nIERvbmcgDQpOYWkgdHJlbiAxLDgg dHJpZXUgbTMvbmdheSBkZW0uDQoNCkNoYXQgbHVvbmcgbnVvYyBtYXQgY3VhIGx1dSB2dWMgc29u ZyBkYW5nIG8gbmhpZW0gbmFuZyBkbyBob2F0IGRvbmcgY3VhIGNhYyBuaGEgbWF5IA0KbyBraHUg Y29uZyBuZ2hpZXAgZ2F5IG5lbi4gSGllbiB0dW9uZyBuYXkgdGFwIHRydW5nIGNodSB5ZXUgbyBj YWMgZG9hbiBzb25nIGNoYXkgcXVhIA0KdGluaCwgdGhhbmggdGh1b2MgdnVuZyB0cm9uZyBkaWVt IGtpbmggdGUgcGhpYSBOYW0gLSBub2kgdGFwIHRydW5nIG5oaWV1IGtodSBjb25nIA0KbmdoaWVw IHZhIGRvIHRoaS4gDQoNClZvaSB0cmVuIDE0MCBraHUgY29uZyBuZ2hpZXAsIGNhYyB0aW5oLCB0 aGFuaCBwaG8gdGh1b2MgbHV1IHZ1YyBuYXkgZG9uZyBnb3AgNzAlIHRvbmcgDQpnaWEgdHJpIHRy b25nIGxpbmggdnVjIGNvbmcgbmdoaWVwIHZhIDY1JSB0b25nIGdpYSB0cmkgaGFuZyBob2EgeHVh dCBraGF1IGN1YSBjYSBudW9jLg0KDQpIaWVuIHRhaSA2Mi85NyBraHUgY29uZyBuZ2hpZXAgKDYz JSkgZGEgY28gaGUgdGhvbmcgeHUgbHkgbnVvYyB0aGFpIHRhcCB0cnVuZyBuaHVuZyANCnRodWMg dGUgY28gbm9pIGNodWEgdmFuIGhhbmggdGh1b25nIHh1eWVuIGhvYWMga2hvbmcgZGF1IG5vaS4N Cg0KTHV1IHZ1YyBzb25nIERvbmcgTmFpIGN1bmcgdGllcCBuaGFuIGx1b25nIG51b2MgdGhhaSBz aW5oIGhvYXQgcmF0IGxvbiB2YSBkaWV1IGRhbmcgbG8gDQpuZ2FpIGxhIDY1JSBudW9jIHRoYWkg YmVuaCB2aWVuIGhhdSBoZXQgY2h1YSBkdW9jIHh1IGx5LiAiTmh1bmcgc3VjIGVwIG5heSBsYW0g Y2hhdCANCmx1b25nIG51b2Mgc29uZyBEb25nIE5haSBsaWVuIHR1YyBiaSBzdXkgZ2lhbSIgLSBv bmcgVHVuZyBjYW5oIGJhby4NCg0KT25nIE5ndXllbiBIb2FpIER1YywgUGhvIGN1YyB0cnVvbmcg Q3VjIFF1YW4gbHkgY2hhdCB0aGFpIHZhIENhaSB0aGllbiBtb2kgdHJ1b25nIJYgDQpUb25nIGN1 YyBNb2kgdHJ1b25nIGNobyBiaWV0LCBkYSBjaHUgdHJpIGtpZW0gdHJhIDE1OCBjbyBzbywga2h1 IGNvbmcgbmdoaWVwIHZhIHBoYXQgDQpoaWVuIG5oaWV1IHZpIHBoYW0sIGNodSB5ZXUgbGEgdGh1 YyBoaWVuIGtob25nIGR1bmcgZGFuaCBnaWEgdGFjIGRvbmcgbW9pIHRydW9uZzsgDQpraG9uZyB0 aHVjIGhpZW4gZ2lhbSBzYXQgY2hhdCB0aGFpLCBkYWMgYmlldCBsYSBjaGF0IHRoYWkgbmd1eSBo YWkuIA0KDQpYdW5nIGRvdA0KDQpEYWkgZGllbiBjdWEgY2FjIHRpbmgsIHRoYW5oIGNvIG1hdCB0 cm9uZyBwaGllbiBob3AgbGFuIHRodSBiYSBjdWEgVXkgYmFuIHNvbmcgRG9uZyANCk5haSBkZXUg dGh1YSBuaGFuIG8gbmhpZW0gbW9pIHRydW9uZyB0YWkgbHV1IHZ1YyBzb25nIGRhIGRlbiBtdWMg YmFvIGRvbmcuDQoNCk5oaWV1IHkga2llbiBkb25nIHRpbmggY2hvIHJhbmcsIGNhYyBkaWEgcGh1 b25nIHRyaWVuIGtoYWkgY2FjIGJpZW4gcGhhcCBiYW8gdmUgbHV1IHZ1YyANCnNvbmcgY29uIGNo dWEgZG9uZyBibywgY2h1YSBsYW0gbm9pIGJhdCBkdW9jIHRpbmggY2hhdCBkYWMgdGh1IHRyb25n IGNvbmcgdGFjIGJhbyB2ZSANCm1vaSB0cnVvbmcgbHV1IHZ1YyBzb25nLiANCg0KQ2FjIGRhaSBi aWV1IGN1bmcgZGUgbmdoaSBsYW0gcm8gdGFjIGRvbmcgY3VhIGNhYyBuaGEgbWF5IHRodXkgZGll biBkb2kgdm9pIG1vaSB0cnVvbmcgDQpjdWEgbHV1IHZ1YyBzb25nLiANCg0KKEFuaDogTmFuIG8g bmhpZW0gbW9pIHRydW9uZyBraGllbiBuZ3VvaSBkYW4gc29uZyBkb2MgdGhlbyBsdXUgdnVjIHNv bmcgRG9uZyBOYWkgDQpyb2kgdmFvIGNhbmgga2hvbiBkb24gdmkgY2EgY2hldCAtIEFuaDogSC5C KSANCg0KVmUgdGhhbSBxdXllbiBjdWEgVXkgYmFuIHNvbmcgRG9uZyBOYWksIGNvIHkga2llbiBj aG8gcmFuZywgVXkgYmFuIGhvYXQgZG9uZyBkYSAyIA0KbmFtIG5odW5nIGhpZXUgcXVhIGNodWEg ZGFwIHVuZyB5ZXUgY2F1IHRodWMgdGllbiBkbyBjaHVjIG5hbmcsIHF1eWVuIGhhbiBjb24gbmhp ZXUgDQpoYW4gY2hlLiANCg0KQ2FjIHF1eWV0IGRpbmggZHVvYyB0aG9uZyBxdWEgZHVhIHRyZW4g c3UgZG9uZyB0aHVhbiBjdWEgY2FjIHRoYW5oIHZpZW4sIGtob25nIGNvIHRpbmggDQpyYW5nIGJ1 b2MgdmUgcGhhcCBseSwga2hvbmcgY28gbmd1b24gbHVjIHRhaSBjaGluaCBkZSBkaWV1IHBob2ku IFZpZWMgdGhhbyBsdWFuLCB0aG9uZyANCnF1YSBjYWMgbmdoaSBxdXlldCB0YWkgY2FjIHBoaWVu IGhvcCB0aGlldSBuaHVuZyBkZSB4dWF0IGN1IHRoZSwgZGFjIGJpZXQgbGEgY2FjIHZhbiBkZSAN CmJ1YyB4dWMgbGllbiB2dW5nLiANCg0KVGluaCB0cmFuZyAieHVuZyBkb3QgZ2l1YSBjYWMgdGlu aCIgdmEgdHJvbmcga2h1IHZ1YyB2ZSB2YW4gZGUgbyBuaGllbSBjdW5nIGR1b2MgZGF0IA0KcmEu IE9uZyBOZ3V5ZW4gVGhhbmggTmd1eWVuLCBQaG8gY2h1IHRpY2ggVUJORCB0aW5oIExvbmcgQW4g cGhhbiBuYW4ga2V0IHF1YSANCnF1YW4gdHJhYyBrZW5oIFRoYXkgQ2FpLCBzb25nIENhbiBHaXVv YyBnaWFwIHJhbmggZ2l1YSBUUC5IQ00gdm9pIExvbmcgQW4gY2hvIHRoYXkgDQpjaGF0IGx1b25n IG51b2MgY2FuZyBuZ2F5IGNhbmcgdGUuIA0KDQoiQmEgY29uIG5vbmcgZGFuIG51b2kgdG9tIGto b25nIGR1b2MuIEN1YSwgY29uZyBjdW5nIGtob25nIHNvbmcgZHVvYyIgLSBvbmcgDQpOZ3V5ZW4g YnVjIHh1Yy4gIlRQLkhDTSBsYSAiVmVkYW4ga2hvbmcgbG8iIGN1YSBMb25nIEFuLiBEZSBuZ2hp IFRQLkhDTSB4dSBseSANCm51b2MgdGhhaSB0dSBkbyB0aGkgdGhhaSByYSIuDQoNCk9uZyBQaGFu IEh1dSBWaW5oLCBQaG8gY3VjIHRydW9uZyBDdWMgQ2FuaCBzYXQgTW9pIHRydW9uZyAtIEJvIENv bmcgYW4gY2hvIGJpZXQsIA0KdGluaCBoaW5oIHZpIHBoYW0gcGhhcCBsdWF0IHZlIG1vaSB0cnVv bmcgY29uIGRpZW4gYmllbiBwaHVjIHRhcC4gTmhpZXUgZG9hbmggbmdoaWVwLCANCnRvIGNodWMs IGNhIG5oYW4gY28gdGluaCBkdW5nIG5oaWV1IG1hbmgga2hvZSBkZSBsdW9uIGxhY2ggY2FjIGNv IHF1YW4ga2llbSB0cmEuIA0KDQpPbmcgVmluaCBsdXUgeSwgbmdvYWkgY2FjIGRvYW5oIG5naGll cCwgY2FjIGtodSBjb25nIG5naGllcCB0cm9uZyBudW9jIGdheSBvIG5oaWVtLCANCnRob2kgZ2lh biBnYW4gZGF5IG5vaSBsZW4gY2FjIHZ1IGdheSBvIG5oaWVtIGx1dSB2dWMgc29uZyBEb25nIE5h aSBkbyBjYWMgY29uZyB0eSBjbyANCm5ndW9uIHZvbiBkYXUgdHUgdHUgSGFuIFF1b2MsIERhaSBM b2FuLCBIb25nIEtvbmcuLi4NCg0KRGllbiB0aWNoIGx1dSB2dWMgc29uZyBEb25nIE5haSBsYSAz Ny40MDAga20yLiBUb25nIGx1b25nIG51b2MgaGFuZyBuYW0ga2hvYW5nIDM3IA0KdGkgbTMuIEx1 dSB2dWMgaGUgdGhvbmcgc29uZyBEb25nIE5haSBsaWVuIHF1YW4gZGVuIDExIHRpbmgsIHRoYW5o OiBEYWsgTm9uZywgTGFtIA0KRG9uZywgTmluaCBUaHVhbiwgQmluaCBUaHVhbiwgRG9uZyBOYWks IEJpbmggUGh1b2MsIEJpbmggRHVvbmcsIEJhIFJpYSAtIFZ1bmcgDQpUYXUsIExvbmcgQW4sIFRh eSBOaW5oIHZhIFRQLkhDTS4NCg0KVGhlbyB0aG9uZyBrZSBzbyBibyBjdWEgVHJ1bmcgdGFtIHF1 YW4gdHJhYyBNb2kgdHJ1b25nIC0gVG9uZyBjdWMgTW9pIHRydW9uZywgZGVuIGhldCANCm5hbSAy MDA5LCAxMSB0aW5oLCB0aGFuaCB0aHVvYyBsdXUgdnVjIGNvIGRlbiAxMDMga2h1IGNvbmcgbmdo aWVwIHZvaSBkaWVuIHRpY2ggcXV5IA0KaG9hY2ggdHJlbiAzMy42MDAgaGEsIGRpZW4gdGljaCBz dSBkdW5nIDE4LjIwMCBoYS4gDQoNCi0NCmh0dHA6Ly92cGhkbmQuaGFpcGhvbmdjaXR5LnZuL3Zu L2luZGV4LmFzcD9tZW51aWQ9NjMyJnBhcmVudF9tZW51aWQ9NjMyJmZ1c2VhY3Rpb249MyZhcnRp Y2xlaWQ9NTEyMg0KDQpPbmcgTmd1eWVuIFRhbiBEdW5nIC0gZGFpIGJpZXUgUXVvYyBob2ksIGRv YW4gSGFpIFBob25nIA0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0v MjAwOS8xMi8wOTEyMjJfcG9sdXRpb24uc2h0bWwgMTY6MjMgR01UIC0gdGh1IGJhLCAyMiB0aGFu ZyAxMiwgMjAwOQ0KDQpIYWkgUGhvbmc6IERhbiBIYWkgUGhvbmcgcmVuIHhpZXQgdmkgbyBuaGll bSANCg0KTmh1bmcgZGlldSB0cmEgYmFuIGRhdSBjaG8gdGhheSBub25nIGRvIGtoaSBkb2MgaGFp IHN1bHBodXIgZGlveGlkZSBjYW8gZ2FwIGhhaSwgDQpiYSBsYW4gc28gdm9pIG11YyBjaG8gcGhl cCAtIGhhbmcgY2h1YyBlbSBob2Mgc2luaCB0YWkgbW90IHRydW9uZyBwaG8gdGhvbmcgY28gc28g DQpvIGtodSBRdWFuIFRvYW4gcGhhaSBuaGFwIHZpZW4sIGNvIGVtIHZpIGJpIG5nYXQgZG8gaGl0 IHBoYWkga2hpIHRoYWkgZG9jIGhhaS4gDQoNCmh0dHA6Ly93d3cuaGFpcGhvbmdkb3N0Lmdvdi52 bi9oYWlwaG9uZy9qc3AvbG9uZ0FydGljbGUuanNwP2FydGljbGVJRD01NzM2DQoNCkhhaSBQaG9u ZzogS2VuaCwgaG8sIHNvbmcgSGFpIFBob25nIGJpIG8gbmhpZW0gdnVvdCBxdWEgdGlldSBjaHVh biB0dSAxMCAtIDEwMCBsYW4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFn ZXMvMjAxMDQyLzIwMTAxMDEyMDA1MDIwLmFzcHggUC5ILlMgMTIvMTAvMjAxMCAwOjUwIA0KDQpU aHUgdHVvbmc6IE5ndW9pIGRhbiBwaG9uZyB0b2EgTmhhIG1heSB4aSBtYW5nIENoaW5mb24gIA0K ICANCkhvbSBxdWEgMTEuMTAsIGdhbiB0cmFtIG5ndW9pIGRhbiBzb25nIGdhbiBOaGEgbWF5IHhp IG1hbmcgQ2hpbmZvbiAodGhpIHRyYW4gTWluaCANCkR1YywgVGh1eSBOZ3V5ZW4sIEhhaSBQaG9u ZykgbGFpIHBob25nIHRvYSBuaGEgbWF5IHhpIG1hbmcgbmF5IGRlIGRvaSBib2kgdGh1b25nIHZh IA0KcGhhbiBkb2kgdGluaCB0cmFuZyBvIG5oaWVtIG5naGllbSB0cm9uZy4gDQoNClRydW9jIGRv LCB2YW8ga2hvYW5nIDIxIGdpbyBuZ2F5IDEuMTAsIGRvIHN1IGNvIGJpIHR1dCB0aHVuZyBjaHVh LCBob24gOTAgdGFuIHhpIG1hbmcgdmEgDQpuZ3V5ZW4gbGlldSB4aSBtYW5nIGRhIGJpIHN1dCB0 dSB0aHVuZyBjaHVhIHh1b25nIGRhdCwgZ2F5IGJ1aSBtdSBtaXQgbW90IGtodSB2dWMgYmFuIA0K a2luaCBraG9hbmcgMzAwbSwgYW5oIGh1b25nIHRvaSBraG9hbmcgMS4wMDAgaG8gZGFuLCBraGll biBobyBwaG9uZyB0b2EgbmhhIG1heS4gDQoNCkNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgaHVhIHNl IHlldSBjYXUgbmhhIG1heSBib2kgdGh1b25nLCBtdW9uIG5oYXQgZGVuIG5nYXkgMTAuMTAgDQpz ZSBnaWFpIHF1eWV0LiBTYXUgbmdheSAxMC4xMCwgdGhheSB5ZXUgY2F1IGNodWEgZHVvYyBkYXAg dW5nIHRob2EgZGFuZyAoa2h1IENoaWVuIA0KVGhhbmcgYmkgYW5oIGh1b25nIG5hbmcgZHVvYyBo byB0cm8gNjAwLjAwMCBkL2hvLCBraHUgVGhhbmcgTG9pLCBCYWNoIERhbmcgeGEgaG9uIA0KZHVv YyBobyB0cm8gNDAwLjAwMCBkL2hvKSwgbmd1b2kgZGFuIGRhIHRpZXAgdHVjIHBob25nIHRvYSBu aGEgbWF5LCB5ZXUgY2F1IHBoYWkgY28gDQpiaWVuIHBoYXAgY2FuIGNvLCBkaSBkb2kgZGFuIHJh IGtob2kga2h1IHZ1YyBvIG5oaWVtLCB0cnVvYyBtYXQgZGUgbmdoaSBnaWFtIHNhdCBjaGF0IA0K ZGF5IGNodXllbiBzYW4geHVhdCwgeGEgdGhhaSBjdWEgbmhhIG1heSB4aSBtYW5nIGRhbmcgZ2F5 IG8gbmhpZW0gbmdoaWVtIHRyb25nLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25l d3MvUGFnZXMvMjAxMDI1LzIwMTAwNjE3MDA0NjE3LmFzcHggMTcvMDYvMjAxMCAwOjQ2IA0KDQpI YWkgUGhvbmc6IEhhdCB0aGFuaCB0cmEgZ2lhbyB0aG9uZyBsZW4gbXVpIHhlLCBjaGF5IHN1b3Qg MyBrbSAgIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1wbHVzLnZuL0hvbWUvVHJpZXQtcGhhLXhvbS1i dW9uLW1hLXR1eS1sb24tbmhhdC1vLUhhaS1QaG9uZy8yMDEwNi80OTc5Mi52bnBsdXMNCg0KSGFp IFBob25nOiAieG9tIiBidW9uIG1hIHR1eSBsb24gdGFpIHRob24gMiBLaW5oIEdpYW8sIHhhIFRh biBUaWVuLCBodXllbiBBbiBEdW9uZyANCg0KaHR0cDovL3d3dy5iYW94YXlkdW5nLmNvbS52bi9N YWluLmFzcHg/TU5VPTExNDEmU3R5bGU9MSZDaGlUaWV0PTkyMDIgIDcvMzEvMjAwOCAxMDo1NTox MCBQTQ0KDQpIYWkgUGhvbmc6IFF1YW4gdGhhbSB0byBjaHVjIGxhbSBnaWF5IHRvIGdpYSwgY2hp ZW0gZG9hdCB0aWVuIGN1YSBuZ2FuIGhhbmcuDQoNCmh0dHA6Ly93d3cudG50cC5vcmcudm4vRGV0 YWlsLmFzcHg/Q29udGVudElEPTEwNTAzIFRoZW8gaG9tZS52bm4udm4gMzAvMTAvMjAwOSAwOToz NyBBTQ0KDQpUaHUgdHVvbmc6IFRydW9uZyBob2MgcGhhaSBkb25nIGN1YSB2aSBvIG5oaWVtIG1v aSB0cnVvbmcgbyBIYWkgUGhvbmcgLSBUcnVvbmcgVEhDUyBRdWFuIFRvYW4gY28gaG9uIDUwMCBo b2Mgc2luaC4gDQpDYW5oIHRydW9uZyBuYXkgY29uIGNvIHRydW9uZyB0aWV1IGhvYyB2YSBtYW0g bm9uIHZvaSBzbyBsdW9uZyBob24gMS4wMDAgaG9jIHNpbmguDQoNCmh0dHA6Ly9waGFwbHVhdHRw LnZuLzIwMTAwNjAzMDE0NTUxOTdwMGMxMDE1L2hvbi0xMTAwLWNvbnRhaW5lci1kb25nLWxhbmgt dS1kb25nLXRhaS1jYW5nLWhhaS1waG9uZy5odG0gS0lNIExJTkggMDMvMDYvMjAxMCAtIDAxOjQ2 IEFNDQoNCkhhaSBQaG9uZzogSG9uIDEuMTAwIGNvbnRhaW5lciBkb25nIGxhbmggdSBkb25nIHRh aSBjYW5nIJYgTmd1eSBjbyBiaSBob25nLCBnaWFtIGNoYXQgbHVvbmcgDQoNCkhpZW4gY28gaG9u IDEuMTAwIGNvbnRhaW5lciBkb25nIGxhbmggZGFuZyB1IGRvbmcgdGFpIGNhbmcgSGFpIFBob25n LiBUdSBnaXVhIHRoYW5nIDUsIG1vaSANCm5nYXkgY28gNTAtNjAgY29udGFpbmVyIGhhbmcgZG9u ZyBsYW5oIHZhbyBjYW5nIHRyb25nIGtoaSB0b2MgZG8gcnV0IGhhbmcgY2hpIGtob2FuZyAxMCBj b250YWluZXIvbmdheS4gDQpUaW5oIHRyYW5nIHUgZG9uZyB0cmVuIGNvbiBkaWVuIHJhIHRhaSBo YXUgaGV0IGNhYyBjYW5nIG8gSGFpIFBob25nIG5odSBEaW5oIFZ1LCBEb2FuIFhhLCBHcmVlbiBQ b3J0Lg0KDQpUYWkgY2FuZyBDaHVhIFZlIGhpZW4gY28gOTQyIGNvbnRhaW5lciBoYW5nIGRvbmcg bGFuaCBsdXUgYmFpIHRyb25nIGtoaSBjb25nIHN1YXQgdG9pIGRhIGN1YSBjYW5nIGxhIA0KOTAw IGNvbnRhaW5lci4gQ2FuZyBDaHVhIFZlIGRhbmcgZ2FwIGtobyBraGFuIHRyb25nIHZpZWMgYmFv IHF1YW4gaGFuZyBkb25nIGxhbmggY2hvIGtoYWNoIHZpIHRpbmggdHJhbmcgdGhpZXUgZGllbi4g DQoNCkR1b2MgYmlldCBoYW5nIHRodWMgcGhhbSBkb25nIGxhbmggdmUgSGFpIFBob25nIGNodSB5 ZXUgbGEgaGFuZyB0YW0gbmhhcCB0YWkgeHVhdC4gQ2FjIGRvYW5oIG5naGllcCANClZpZXQgTmFt IG5oYXAgaGFuZyB0dSBNeSwgVWMsIEFuIERvLi4uIHJvaSB4dWF0IHNhbmcgVHJ1bmcgUXVvYyBx dWEgY3VhIGtoYXUgTW9uZyBDYWkuIFR1eSBuaGllbiwgdHUgdGhhbmcgNSwgDQpkbyBwaGlhIFRy dW5nIFF1b2MgaGFuIGNoZSB0aWVwIG5oYW4gbG9haSBoYW5nIG5heSBuZW4gZGFuIGRlbiB0aW5o IHRyYW5nIHVuIHUuDQoNCmh0dHA6Ly93d3cuYmFvY29uZ3RodW9uZy5jb20udm4vRGV0YWlscy9r aW5oLXRlL2NhbmctaGFpLXBob25nLWhhbmctZG9uZy1sYW5oZGVuLWhlbi1sYWktdS1kb25nLzMy LzAvMzQwMzcuc3RhciAxNTowMDowMCA1LzYvMjAxMA0KDQpUaHUgdHVvbmc6IEhhbmcgZG9uZyBs YW5oLi4uRGVuIGhlbiBsYWkgdSBkb25nIG8gY2FuZyBIYWkgUGhvbmcgICANCg0KRHVvbmcgbmh1 IG1vdCAia2ljaCBiYW4iIGR1b2MgbGFwIGRpIGxhcCBsYWkgdHUgbmhpZXUgbmFtIG5heSBjdSB2 YW8gZGlwIG5heSwgaGFuZyANCmhvYSwgZGFjIGJpZXQgbGEgaGFuZyBkb25nIGxhbmggcXVhIGNh YyBjYW5nIEhhaSBQaG9uZyBsYWkgYmkgdG9uIGRvbmcuIA0KICANCkR1IGRhIGR1b2MgZHUgYmFv IHRydW9jIG5odW5nIG5hbmcgbHVjIGN1YSBjYWMgY2FuZyBIYWkgUGhvbmcgdmFuIGtob25nIHBo YW4gdW5nIA0Ka2lwLiBIaWVuIG5heSwgZGEgY28gaGFuZyBuZ2FuIGNvbnRhaW5lciBkb25nIGxh bmggZGFuZyAieGVwIGhhbmciIGNobyBkdW9jIGdpYWkgcGhvbmcuIA0KDQpLaGkgbHVvbmcgaGFu ZyBuYXkgdG9uIGRvbmcgdGFpIGNhbmcsIHZpZWMgY3VuZyBjYXAgIGRpZW4gYmFvIG9uLCBkaWVu IHRpY2ggdGFwIGtldCBjaG8gDQpjYWMgY29udGFpbmVyIG5heSBnYXAgbmhpZXUga2hvIGtoYW4u DQpEZSBjYXAgZG9uZyBjaG8gbHVvbmcgY29udGFpbmVyIGRvbmcgbGFuaCB1IGRvbmcsIGNhbmcg cGhhaSB0aHVlIHRoZW0gMiBtYXkgcGhhdCANCmRpZW4uIFRoZSBuaHVuZyBjYSBoYWkgbWF5IHBo YXQgZGllbiBuYXkgY3VuZyBjaGkgZGFwIHVuZyBkdW9jIGNobyBraG9hbmcgMjAwIA0KY29udGFp bmVyLiBUcnVvYyB0aW5oIHRyYW5nIHUgZG9uZyBoYW5nIHRhaSBjYW5nLCBtb3Qgc28gY2h1IGhh bmcgZGEgImJvIGN1YSBjaGF5IGxheSANCm5ndW9pIiBraGkgdHUgY2hvaSBuaGFuIGhhbmcgdm9p IGx5IGRvIGNoaSBwaGkgcXVhIGxvbjogdGllbiBkaWVuLCB0aWVuIGtobyBiYWksLi4uIE5odSB2 YXkgDQp2aWVjIHh1IGx5IG5odW5nIGxvIGhhbmcgZG9uZyBsYW5oIG5heSBzZSB0aHVjIHN1IHBo dWMgdGFwLCBuZXUgY28gdGlldSBodXkgY3VuZyBwaGFpIA0KY2hpIHBoaSByYXQgdG9uIGtlbS4g VGluaCB0cmFuZyBuYXkgZGllbiByYSBraG9uZyBjaGkgdGFpIGNhbmcgSGFpIFBob25nIG1hIGNh YyBjYW5nIA0KRGluaCBWdSwgRG9hbiBYYSwgR3JlZW4gUG9ydC4uLixjdW5nIGxhbSB2YW8gY2Fu aCB0dW9uZyB0dS4NCg0KaHR0cDovL3d3dy5zZ2dwLm9yZy52bi9raW5odGUvMjAxMC83LzIzMDQ0 OC8gMDcvMDcvMjAxMCwgMDM6MjAgKEdNVCs3KQ0KDQpIYWkgUGhvbmcgliBRdWFuZyBOaW5oOiBH YW4gMS4wMDAgY29udGFpbmVyIGhhbmcgZG9uZyBsYW5oIHRhYyBvIFF1YW5nIE5pbmgNCg0KVGhl byBCYW4gUXVhbiBseSBjdWEga2hhdSBLYSBMb25nIHZhIE1vbmcgQ2FpIChRdWFuZyBOaW5oKSwg aGllbiBvIGRheSBkYW5nIHRvbiBkb25nIGtob2FuZyANCjEuMDAwIGNvbnRhaW5lciBoYW5nIGhv YSBjYWMgbG9haSB4dWF0IHNhbmcgVHJ1bmcgUXVvYywgdHJvbmcgZG8gY28ga2hvYW5nIDkwJSBo YW5nIGRvbmcgbGFuaCwgDQp0aGl0IHZhIGNhYyBzYW4gcGhhbSBwaHUgY3VhIHRoaXQgZG9uZyBs YW5oIHRhbSBuaGFwIHRhaSB4dWF0LiBQaGFuIGxvbiBjYWMgY29udGFpbmVyIGtlIHRyZW4gDQpk dW9jIHZhbiBjaHV5ZW4gdHUgY2FjIGNhbmcgbyBIYWkgUGhvbmcgZGVuIGRlIGNodWFuIGJpIGxh bSB0aHUgdHVjIHh1YXQgc2FuZyBUcnVuZyBRdW9jLiANCg0KVHV5IG5oaWVuLCBnYW4gZGF5IHBo aWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIFRydW5nIFF1b2MgdGh1YyBoaWVuIGtpZW0gdHJhIGdh dCBnYW8gdmUgDQpjaGF0IGx1b25nIGNhYyBsb2FpIGhhbmcgaG9hIHh1YXQga2hhdSBxdWEgZHVv bmcgYmllbiBtYXUgbmVuIHZpZWMgdGhvbmcgcXVhbiBjaGFtIHRyZSwgDQpnYXAgbmhpZXUga2hv IGtoYW4uDQoNClRpbmggdHJhbmcgYWNoIHRhYyBoYW5nIGRvbmcgbGFuaCB0YWkgTW9uZyBDYWkg Y2FuZyBsYW0gdGFuZyB0aGVtIG11YyBkbyBhY2ggdGFjIHRhaSBjYWMgY2FuZyANCnRodW9jIEhh aSBQaG9uZy4gSGllbiB0YWksIG8gSGFpIFBob25nIHZhbiBjb24gaG9uIDEuMDAwIGNvbnRhaW5l ciBoYW5nIGRvbmcgbGFuaCAibmFtIiBjYW5nLiANCg0KaHR0cDovL3d3dy42MHMuY29tLnZuL2lu ZGV4LzI4NTg4NzYvMDYxMDIwMTAuYXNweCA2IC8gMTAgLyAyMDEwLCA5OiAzNiAoR01UKzcpDQoN CkhhaSBQaG9uZzogTW90IHBodSBudSBiaSAnZ2lhbmcgaG8gZGF0IENhbmcnIG5hIHN1bmcsIGFt IHNhdCBodXQgKDIvMTApIA0KDQpodHRwOi8vaG9hcGh1b25nZG8udm4vbmV3cy90aW4tdHVjLXN1 LWtpZW4vcGhhcC1sdWF0LWRvaS1zb25nLzY0NzUteGV0LXgtay1oaXAtZGFtLWJhLWdpYS5odG1s IDE3LzYvMjAwOSAxNToxNA0KDQpIYWkgUGhvbmc6IFRyYWkgMjEgaGllcCBkYW0gYmEgZ2lhIGNv aSBjaHVhIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjUv MjAxMDA2MTcwMDM3NDQuYXNweCAxNy8wNi8yMDEwIDA6MzcgDQoNClRodSB0dW9uZzogQmllbiAy MC4wMDBtMiBkYXQgY29uZyB0aGFuaCBkYXQgbywgbmd1eWVuIHBobyBjaHUgdGljaCBVQk5EIHBo dW9uZyBjaGkgYmkgYW4gdHJlbyAobyBIYWkgcGhvbmcpICANCg0KaHR0cDovL3d3dy5zZ3R0LmNv bS52bi9kZXRhaWwyOS5hc3B4P25ld3NpZD02MDg4MCZmbGQ9SFRNRy8yMDA5LzEyMjAvNjA4ODAg TmdheSAyMC4xMi4yMDA5IEdpbyAwMDo0MQ0KDQpUaHUgdHVvbmc6IFZ1IG5nbyBkb2Mga2hpIHRo YWkgbyBIYWkgUGhvbmcgY29uIG5oaWV1IGtodWF0IHRhdCAgDQoNClRyb25nIGNhdSBjaHV5ZW4g bmdvIGRvYyBraGksIG5ndW9pIGRhbiBkaWEgcGh1b25nIHZhIHRoYXkgdHJvIHRydW9uZyBUSENT IFF1YW4gVG9hbiBjaG8gYmlldCwgdmFuIGNvbiBuaHVuZyB2YW4gZGUgDQpraHVhdCB0YXQgY2Fu IGR1b2MgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGxhbSBybw0KDQpodHRwOi8vd3d3LmJiYy5jby51 ay92aWV0bmFtZXNlL3ZpZXRuYW0vMjAxMC8wMi8xMDAyMDNfYmFua2VyX2FycmVzdC5zaHRtbCAw NzoyNyBHTVQgMyB0aGFuZyAyLCAyMDEwDQoNCkhhaSBQaG9uZzogb25nIERvYW4gVGllbiBEdW5n IC0gbmd1eWVuIGxhIEdpYW0gZG9jIGNoaSBuaGFuaCBIYWkgUGhvbmcgY3VhIEJJRFYuIA0KDQpo dHRwOi8vdHVvaXRyZS5jb20udm4vdGlhbnlvbi9pbmRleC5hc3B4P2FydGljbGVpZD0zNjI0MDUm Y2hhbm5lbGlkPTYgVGh1IE5hbSwgMDQvMDIvMjAxMCwgMDg6MDkgKEdNVCs3KQ0KDQpWdSBvbmcg RG9hbiBUaWVuIER1bmcgUFRHRCBuZ2FuIGhhbmcgQklEViBuaGFuIGhvaSBsbyBsYSB2dSBhbiBs b24gDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL1RpYW55b24vSW5kZXguYXNweD9BcnRpY2xl SUQ9MTg1ODUwJkNoYW5uZWxJRD0yIDA1LzAyLzIwMTAsIDA4OjMwDQoNCk9uZyBEb2FuIFRpZW4g RHVuZyBkb2kgaG9pIGxvIDEwIHR5IGRvbmcNCg0KQmEgTGUgVGhpIFRoYW5oIEJpbmgsIFBobyBn aWFtIGRvYyBjaGkgbmhhbmggSGFpIFBob25nIGN1YSBCSURWIGN1bmcgYmkgYmF0IHZlIGhhbmgg dmkgbmhhbiBob2kgbG8sIA0KZG9uZyBwaGFtIHZvaSBQaG8gVG9uZyBnaWFtIGRvYyBCSURWIERv YW4gVGllbiBEdW5nLiANCg0KQ1FEVCB4YWMgZGluaCBiYSBCaW5oIGRhIG5oYW4ga2hvYW5nIDUg dHkgZG9uZywgZHVvaSBoaW5oIHRodWMgbmhhbiB0cnVjIHRpZXAgaG9hYyBxdWEgY2h1eWVuIGto b2FuLCBob2FjIGR1b2Mgb25nIER1bmcgY2hpYSBwaGFuIHRyYW0uDQoNCmh0dHA6Ly9waGFwbHVh dHRwLnZuLzIwMTAwODA3MDk0OTIzMzI0cDBjMTA2My92dS10aWV1LWN1Yy10YWktYmlkdi14dS10 b2ktbmhhbi1ob2ktbG8tbW9pLWR1bmcuaHRtIERJTkggVkFOIFFVRSAwOC8wOC8yMDEwIC0gMTI6 MDYgQU0gDQoNClZ1IHRpZXUgY3VjIHRhaSBCSURWOiBYdSB0b2kgbmhhbiBob2kgbG8gbW9pIGR1 bmchDQoNCk9uZyBEdW5nIGRhIGxvaSBkdW5nIGNodWMgdnUsIHF1eWVuIGhhbiAocGhvIHRvbmcg Z2lhbSBkb2MpIHRydWMgdGllcCBuaGFuIHRpZW4gZGUgbGFtIA0KbW90IHZpZWMgdmkgbG9pIGlj aCBjdWEgbmd1b2kgZHVhIGhvaSBsby4NCg0KWHVuZyBxdWFuaCB2dSBuZ3V5ZW4gcGhvIHRvbmcg Z2lhbSBkb2MgTmdhbiBoYW5nIERhdSB0dSB2YSBQaGF0IHRyaWVuIFZpZXQgTmFtIA0KKEJJRFYp IERvYW4gVGllbiBEdW5nIGN1bmcgdGh1b2MgY2FwIFRyYW4gVGhpIFRoYW5oIEJpbmggZHVvYyBW S1MgY2h1eWVuIHR1IHRvaSANCm5oYW4gaG9pIGxvIHNhbmcgdG9pIGxvaSBkdW5nIGNodWMgdnUs IHF1eWVuIGhhbiBnYXkgYW5oIGh1b25nIHZvaSBuZ3VvaSBraGFjIGRlIHRydWMgDQpsb2kgZGEg Y28gbmhpZXUgcXVhbiBkaWVtIHRyYWkgY2hpZXUgdHUgZ2lvaSBsdWF0IGhvYy4NCg0KUGhhcCBM dWF0IFRQLkhDTSB4aW4gZ2lvaSB0aGlldSBiYWkgdmlldCBjdWEgbmd1eWVuIENoYW5oIFRvYSBo aW5oIHN1IFRBTkQgVG9pIGNhbyANCkRpbmggVmFuIFF1ZS4NCg0KVG9pIG5oYW4gaG9pIGxvIChE aWV1IDI3OSBCTEhTKSB2YSB0b2kgbG9pIGR1bmcgY2h1YyB2dSwgcXV5ZW4gaGFuIGdheSBhbmgg aHVvbmcgZGVuIA0Kbmd1b2kga2hhYyBkZSB0cnVjIGxvaSAoRGlldSAyODMgQkxIUykgY28gbmhp ZXUgZGF1IGhpZXUgZ2lvbmcgbmhhdSBuZW4gY2FjIGNvIHF1YW4gDQp0byB0dW5nIHZhIG5ndW9p IHRpZW4gaGFuaCB0byB0dW5nIGhheSBiaSBuaGFtIGxhbi4NCg0KQ3UgdGhlLCBuZ3VvaSBwaGFt IGhhaSB0b2kgbmF5IGRldSBjbyBoYW5oIHZpIGxvaSBkdW5nIGNodWMgdnUsIHF1eWVuIGhhbiBj dWEgbWluaDsgDQpkZXUgdHJ1YyB0aWVwIGhvYWMgcXVhIHRydW5nIGdpYW4gbmhhbiBob2FjIHNl IG5oYW4gdGllbiwgdGFpIHNhbiBob2FjIGxvaSBpY2ggdmF0IGNoYXQgDQpraGFjIGR1b2kgYmF0 IGt5IGhpbmggdGh1YyBuYW8uIFR1eSBuaGllbiwgbmd1b2kgbmhhbiBob2kgbG8gbG9pIGR1bmcg Y2h1YyB2dSwgcXV5ZW4gDQpoYW4gZGUgbGFtIGhvYWMga2hvbmcgbGFtIG1vdCB2aWVjIHRoZW8g eWV1IGNhdSBjdWEgbmd1b2kga2hhYywgY29uIG5ndW9pIGxvaSBkdW5nIA0KY2h1YyB2dSwgcXV5 ZW4gaGFuIGdheSBhbmggaHVvbmcgZG9pIHZvaSBuZ3VvaSBraGFjIGRlIHRydWMgbG9pIGtob25n IHRydWMgdGllcCBsYW0gDQpob2FjIGtob25nIGxhbSBtYSBjaGkgdGh1YyBkYXkgbmd1b2kga2hh YyBsYW0uDQoNCkNoaSBkYW8gY2FwIGR1b2kNCg0KVHJvIGxhaSB2b2kgdnUgQklEViwgdGhlbyBW S1MgdGhpIG9uZyBEdW5nIHZvaSBjaHVjIHZ1IGxhIHBobyB0b25nIGdpYW0gZG9jIEJJRFYgDQpW aWV0IE5hbSBkdSBraG9uZyBjb24gdHJ1YyB0aWVwIHh1IGx5IGtob2kgdGFpIHNhbiBuYXkgbmh1 bmcgZGEgbG9pIGR1bmcgY29uZyB0eSBjdWEgDQpvbmcgS2hhbmggZ2FwIGtobyBraGFuIGRlIHll dSBjYXUgQklEViBIYWkgUGhvbmcgKGNhcCBkdW9pKSBwaGFpIGdpYWkgbmdhbiBjaG8gY29uZyAN CnR5IGN1YSBvbmcgS2hhbmguDQoNCk5ldSBkdW5nIGxhaSBvIGRheSwgbmhpZXUgbmd1b2kgc2Ug bGFtIHR1b25nIG9uZyBEdW5nIGNoaSBjbyBoYW5oIHZpIHRodWMgZGF5IG5ndXllbiANCnBobyBn aWFtIGRvYyBCSURWIEhhaSBQaG9uZyBUcmFuIFRoaSBUaGFuaCBCaW5oIHRodWMgaGllbiB0aGVv IHlldSBjYXUgY3VhIG9uZyANCktoYW5oLiBOaHVuZyB0aHVjIHRlIGtob25nIHBoYWkgbmh1IHZh eS4gT25nIEtoYW5oIHlldSBjYXUgb25nIER1bmcgdm9pIHR1IGNhY2ggbGEgDQpuZ3VvaSBjbyBj aHVjIHZ1LCBxdXllbiBoYW4gZ2lhaSBxdXlldCB0aGVvIHlldSBjYXUgY3VhIG9uZyBLaGFuaDsg b25nIER1bmcgZGEgY2hpIA0KZGFvIGJhIEJpbmggdGh1YyBoaWVuIG5odW5nIHlldSBjYXUgY3Vh IG9uZyBLaGFuaCwgdmllYyBuYXkga2hvbmcgcGhhaSBsYSBoYW5oIHZpIHRodWMgDQpkYXkgbWEg bGEgaGFuaCB2aSBsYW0gdGhlbyB5ZXUgY2F1IGN1YSBvbmcgS2hhbmguDQoNClRodWMgZGF5IGxh IGhvaSB0aHVjIG5ndW9pIGtoYWMgbGFtLCBjb24gbWluaCBraG9uZyB0aGFtIGdpYSBsYW0gYmF0 IGt5IHZpZWMgZ2kgdGhlbyANCnlldSBjYXUgY3VhIG5ndW9pIGR1YSB0aWVuLiBOZXUgaG8gc28g dnUgYW4gdGhlIGhpZW4gb25nIER1bmcgY2hpIG5obyBiYSBCaW5oIGdpYWkgDQpxdXlldCBnaXVw IG9uZyBLaGFuaCwgY29uIGJhIEJpbmggbGFtIGdpLCBsYW0gdGhlIG5hbyBvbmcgRHVuZyBraG9u ZyBiaWV0IHRoaSBoYXkgbmdoaSANCmRlbiBjaHV5ZW4gb25nIER1bmcgY2hpIHRodWMgZGF5LiBO aHVuZyBub2kgZHVuZyB2dSBhbiBsYWkgdGhlIGhpZW4gb25nIER1bmcgZGEgcmEgDQpsZW5oIGNo byBCSURWIEhhaSBQaG9uZyB0aHVjIGhpZW47IHRoZSBoaWVuIG1vaSBxdWFuIGhlIGdpdWEgb25n IER1bmcgdm9pIG9uZyBLaGFuaCANCmRhIGNvIHR1IGtoaSBvbmcgRHVuZyBjb24gbGFtIGdpYW0g ZG9jIEJJRFYgSGFpIFBob25nLiBTdSB2aWVjIHhheSByYSBsYSBjYSBtb3QgDQpjaHVvaSBoYW5o IHZpIGtlbyBkYWkgdHUga2hpIG9uZyBEdW5nIGNvbiBsYW0gZ2lhbSBkb2MgQklEViBIYWkgUGhv bmcgY2hvIGRlbiBraGkgDQpkdW9jIGJvIG5oaWVtIHBobyB0b25nIGdpYW0gZG9jIEJJRFYgVmll dCBOYW0uDQoNCk5oYW4gaG9pIGxvIHJvIHJhbmcNCg0KVHJvbmcgdmllYyBtdWEgYmFuIGR1IGFu IGtobyBiYWkgZ2l1YSBoYWkgY29uZyB0eSBUTkhIIFZLIEhhaSBQaG9uZyB2YSBEYXUga2hpIA0K QW5waGEgSGFpIFBob25nLCBvbmcgRHVuZyB5ZXUgY2F1IG9uZyBLaGFuaCBwaGFpIGNoaSB0aWVu LCBzYXUgZG8gb25nIER1bmcgY2hpIGRhbyANCmJhIEJpbmggbmhhbiBiYSBsYW4gdG9uZyBjb25n IDUsMiB0aSBkb25nLiBEYW5nIGNodSB5OiBUaGFuZyAxLTIwMTAsIG9uZyBLaGFuaCB0aWVwIA0K dHVjIGdhcCBvbmcgRHVuZyBuaG8gY2hpIGRhbyBCSURWIEhhaSBQaG9uZyBnaWFpIG5nYW4gc28g dGllbiBjb24gbGFpIGNobyBjb25nIHR5IGN1YSANCm9uZyBLaGFuaCB0aGkgb25nIER1bmcgeWV1 IGNhdSBvbmcgS2hhbmggcGhhaSBjaGkgdGllcCAxIHRpIGRvbmcgbnVhLiBOZ2F5IDItMi0yMDEw LCANCmtoaSBvbmcgRHVuZyBuaGFuIDEgdGkgZG9uZyBjdWEgb25nIEtoYW5oIHRoaSBiaSBiYXQg cXVhIHRhbmcuIENoaSB0aW5oIHRpZXQgbmF5IHRob2kgDQpjdW5nIGR1IGNhbiBjdSB4YWMgZGlu aCBoYW5oIHZpIGN1YSBvbmcgRHVuZyBsYSBuaGFuIGhvaSBsbyByb2khDQoNCk9uZyBEdW5nIGRh IHRydWMgdGllcCBuaGFuIHRpZW4gY3VhIG5ndW9pIGtoYWMgZGUgbGFtIHRoZW8geWV1IGNhdSBj dWEgbmd1b2kgZHVhIGhvaSANCmxvLCBtYSB5ZXUgY2F1IG8gZGF5IGxhICJjaGkgZGFvIE5nYW4g aGFuZyBCSURWIEhhaSBQaG9uZyBnaWFpIG5nYW4gdGllcCBjaG8gY29uZyB0eSANCmN1YSBvbmcg S2hhbmgiLiBDaHVhIGtlLCBvbmcgRHVuZyBjb24gY28gaGFuaCB2aSBkb2kgaG9pIGxvIG1hIG9u ZyBLaGFuaCBsYSBuZ3VvaSBiaSANCmVwIGJ1b2MsIHRoZSBoaWVuIG8gdGluaCB0aWV0ICJwaGFp IGNoaSB0aWVwIDEgdGkgZG9uZyB0aGkgbW9pIGNoaSBkYW8gQklEViBIYWkgUGhvbmcgZ2lhaSAN Cm5nYW4gdGllcCIuIEhhbmggdmkgY2hpIGRhbyBCSURWIEhhaSBQaG9uZyBnaWFpIG5nYW4gdGll cCBjaGluaCBsYSBoYW5oIHZpICJsYW0gbW90IA0KdmllYyB0aGVvIHlldSBjYXUgY3VhIG5ndW9p IGR1YSB0aWVuIi4NCg0KVmllYyBvbmcgRHVuZyBsYW0gZHVuZyBoYXkgbGFtIHRyYWkgcGhhcCBs dWF0IGtob25nIHBoYWkgbGEgZGF1IGhpZXUgZGluaCB0b2kgbmhhbiBob2kgDQpsbyBib2kgbmhh biB0aWVuIGN1YSBuZ3VvaSBraGFjIGR1IGNvIGxhbSBkdW5nIHBoYXAgbHVhdCB0aGVvIHlldSBj YXUgY3VhIG5ndW9pIGRvIA0KY3VuZyBkYSBwaGFtIHRvaSBuYXkuIFZpIGR1OiBNb3QgdGhhbSBw aGFuIG5oYW4gdGllbiBjdWEgYmkgY2FvIGRlIGNobyBiaSBjYW8gZHVvYyANCmh1b25nIGFuIHRy ZW8gdGhlbyB5ZXUgY2F1IGN1YSBiaSBjYW8uIFZpZWMgY2hvIGJpIGNhbyBkdW9jIGh1b25nIGFu IHRyZW8gY28gZHVuZyBEaWV1IA0KNjAgQkxIUyBkaSBjaGFuZyBudWEgdGhpIGhhbmggdmkgY3Vh IHRoYW0gcGhhbiBuYXkgY3VuZyBsYSBuaGFuIGhvaSBsby4NCg0KTmh1IHZheSwgb25nIER1bmcg ZGEgbG9pIGR1bmcgY2h1YyB2dSwgcXV5ZW4gaGFuIChwaG8gdG9uZyBnaWFtIGRvYyBCSURWIFZp ZXQgDQpOYW0pIHRydWMgdGllcCBuaGFuIHRpZW4gZGUgbGFtIG1vdCB2aWVjIHZpIGxvaSBpY2gg Y3VhIG5ndW9pIGR1YSBob2kgbG8uIEhhbmggdmkgY3VhIG9uZyANCkR1bmcgZGEgcGhhbSB0b2kg bmhhbiBob2kgbG8gdGhlbyBraG9hbiA0IERpZXUgMjc5IEJMSFMuDQoNClZpZWMgVktTIGNodXll biB0b2kgZGFuaCBkb2kgdm9pIG9uZyBEdW5nIHRoZW8gY2h1bmcgdG9pIGxhIGtob25nIGNoaW5o IHhhYyENCg0KVGluaCB0aWV0IHZ1IGFuDQoNClRoZW8gaG8gc28sIGtoaSBsYW0gZ2lhbSBkb2Mg QklEViBIYWkgUGhvbmcsIG9uZyBEdW5nIGRhIGdpYWkgcXV5ZXQgY2hvIENvbmcgdHkgQ28gDQpw aGFuIERldCBtYXkgeHVhdCBraGF1IEhhaSBQaG9uZyB2YSBDb25nIHR5IFROSEggVksgSGFpIFBo b25nIChkZXUgZG8gb25nIA0KSG9hbmcgVmFuIEtoYW5oIGxhbSB0b25nIGdpYW0gZG9jKSB2YXkg dG9uZyBjb25nIGdhbiA0NSB0aSBkb25nLiBUaWVuIGNobyB2YXkgZHVvYyANCmRhbSBiYW8gYmFu ZyB0YWkgc2FuIHRoZSBjaGFwIGxhIGtobyBiYWkgY29udGFpbmVyIHZhIHRhaSBzYW4gdHJlbiBk YXQgdGFpIGtodSB2dWMgRGFtIA0KTWFtIChIYWkgUGhvbmcpLg0KDQpTYXUgZG8gb25nIEtoYW5o IHF1eWV0IGRpbmggYmFuIGtob2kgdGFpIHNhbiB0aGUgY2hhcCB0cmVuIGNobyBDb25nIHR5IENv IHBoYW4gRGF1IA0Ka2hpIEFucGhhIEhhaSBQaG9uZyAob25nIER1bmcgbmFtIDIwJSBjbyBwaGFu KSB2b2kgZ2lhIDU3IHRpIGRvbmcuIFZpZWMgbmF5IGRhIGR1b2MgDQpjaGFwIHRodWFuIHRyb25n IG1vdCBjdW9jIGhvcCBsYW5oIGRhbyBjaHUgY2hvdCBjdWEgQklEViBIYWkgUGhvbmcsIGNvIHN1 IHRoYW0gZHUgDQpjdWEgb25nIER1bmcgKGRhIGxlbiBsYW0gcGhvIHRvbmcgZ2lhbSBkb2MgQklE ViBWaWV0IE5hbSwgcGh1IHRyYWNoIHRoZW8gZG9pLCBjaGkgDQpkYW8gaG9hdCBkb25nIGtpbmgg ZG9hbmggY3VhIEJJRFYgSGFpIFBob25nKS4NCg0KVHJvbmcga2hpIGdpYWkgbmdhbiBzbyB0aWVu IGJhbiB0YWkgc2FuIGN1YSBDb25nIHR5IFZLLCBvbmcgRHVuZyBkYSBuaGlldSBsYW4geWV1IGNh dSANCm9uZyBLaGFuaCBwaGFpIGNoaSB0aWVuLCB0b25nIGNvbmcgNCB0aSBkb25nLiBLaGkgb25n IEtoYW5oIGRlbiBuaG8gb25nIER1bmcgY2hpIGRhbyANCkJJRFYgSGFpIFBob25nIGdpYWkgbmdh biBzbyB0aWVuIGNvbiBsYWksIG9uZyBEdW5nIHlldSBjYXUgb25nIEtoYW5oIHBoYWkgY2hpIHRp ZXAgMSB0aSANCmRvbmcgbnVhIG1vaSBjaGl1IGxhbS4gRGF1IHRoYW5nIDItMjAxMCwgZGFuZyB0 cnVjIHRpZXAgbmhhbiAxIHRpIGRvbmcgdHUgb25nIEtoYW5oIA0KdGFpIG1vdCBxdWFuIHBobyBv IEhhIE5vaSwgb25nIER1bmcgZGEgYmkgY29uZyBhbiBiYXQgcXVhIHRhbmcuDQoNClZvaSB0b2kg bmhhbiBob2kgbG8sIG9uZyBEdW5nIGNvIHRoZSBkb2kgbWF0IHZvaSBhbiB0dSBoaW5oLiBOaHVu ZyBvIHRvaSBkYW5oIG1vaSBsYSBsb2kgDQpkdW5nIGNodWMgdnUsIHF1eWVuIGhhbiBkZSB0cnVj IGxvaSwga2h1bmcgaGluaCBwaGF0IHRvaSBkYSBjaGkgdG9pIG11YyB0dSBjaHVuZyB0aGFuLiAN Cg0KaHR0cDovL2xhb2Rvbmcudm4vVGluLVR1Yy9EYS1iYXQtZHVvYy10aHUtcGhhbS12dS1uby1r aW5oLWhvYW5nLW8teGEtS3ktU29uLzQ1NDcgMy43LjIwMTAgIDA5OjA5IChHTVQgKyA3KQ0KDQpI YWkgUGhvbmc6IE1vdCB2dSBubyBsb24ga2hpZW4gbmhpZXUgbmd1b2kgYmkgdGh1b25nIHZhIDI0 IG5oYSBkYW4gYmkgaHUgaG9uZy4gVnUgbm8gDQpnYXkgcmEgaG8gbG9uIHZvaSBkdW9uZyBraW5o IGhvbiA4bSwgY2hvIHNhdSBuaGF0IHRvaSAyLDVtLCB0dW9uZyBkdW9uZyB2b2kgc3VjIGNvbmcg DQpwaGEgY3VhIG1vdCBxdWEgYm9tIHRhbiBob2FjIDIwa2cgdGh1b2Mgbm8gVE5ULiANCg0KRGF5 IGxhIHZ1IGFuIGRhYyBiaWV0IG5naGllbSB0cm9uZywgZ2F5IHRoaWV0IGhhaSBsb24gdmUgdGFp IHNhbiB2YSBnYXkgdGFtIGx5IGhvYW5nIG1hbmcgDQp0cm9uZyBuaGFuIGRhbiwgYW5oIGh1b25n IHhhdSBkZW4gdGluaCBoaW5oIEFOVFQgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9u ZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxMzAwMTMzMC5hc3B4IFBoYW0gSGFpIFNhbSAxMy8wNy8y MDEwIDA6MTMgDQoNClRodSB0dW9uZzogQmFuIHF1YW4gbHkgZHUgYW4gY2FuZyBIYWkgUGhvbmcg Y2hpIHNhaSBob24gdHJhbSB0aSBkb25nICANCiAgDQpUaGFuaCB0cmEgQ2hpbmggcGh1IHZ1YSBj byBrZXQgbHVhbiBjaGkgcm8gaGFuZyBsb2F0IHNhaSBwaGFtIG5naGllbSB0cm9uZyB0YWkgZHUg YW4gQ2FpIA0KdGFvLCBuYW5nIGNhcCBjYW5nIEhhaSBQaG9uZy4gDQoNCi0gQ2hhdCBsdW9uZyBj aHVhbiBiaSBkYXUgdHUgY3VhIEJhbiBRTERBIHJhdCB0aGFwLCBiYW8gY2FvIG5naGllbiBjdXUg a2hhIHRoaSBraG9uZyANCmNoaW5oIHhhYyBkYW4gZGVuIHBoYWkgZGlldSBjaGluaCBxdXkgbW8g Y3VhIGR1IGFuLg0KDQotIFZpZWMgbGFwIGhvIHNvIG1vaSB0aGF1LCB0byBjaHVjIGNoYW0gdGhh dSwga2V0IHF1YSBjaGFtIHRoYXUgY3VuZyBraG9uZyBsYW0gZHVuZyANCnF1eSBkaW5oLiBDdSB0 aGUsIG5oYSB0aGF1IE5pcHBvbiBLb2VpIE5oYXQgQmFuIChnb2kgdHUgdmFuKSBraG9uZyB0aWVu IGhhbmgga2hhbyBzYXQgDQptYSBjaGkgc3UgZHVuZyBrZXQgcXVhIGtoYW8gc2F0IHZlIGRpYSBo aW5oLCBkaWEgY2hhdCwgdGh1eSB2YW4uLi4gZG8gQ29uZyB0eSB0dSB2YW4gcXVvYyANCnRlIFZp ZXQgTmhhdCAtIFZpYyB0aHVlIFRFREkgbGFwICh0aGFuZyA1LjE5OTkpIG5odW5nIEJhbiBRTERB IHZhbiBjaGFwIG5oYW4gdGhhbmggDQp0b2FuLiANCg0KLSBWaWVjIGtoYW8gc2F0IHRoaWV0IGtl IHRoaWV1IGNoaW5oIHhhYyBuZW4gbmhpZXUgaGFuZyBtdWMgcGhhaSBkaWV1IGNoaW5oIHNvIHZv aSB0aGlldCANCmtlIGt5IHRodWF0IGR1b2MgZHV5ZXQuIFRvbmcgZ2lhIHRyaSBjdWEgdmllYyBw aGFpIGRpZXUgY2hpbmgsIGJvIHN1bmcgbmh1bmcgaGFuZyBtdWMgDQpuYXkgbGVuIHRvaSAyOSB0 aSBkb25nLg0KDQotIE5oaWV1IGhhbmcgbXVjIG5odSBjYWkgdGFvIGtobywgZGkgY2h1eWVuIGR1 b25nIHJheSwgcGhhIGRvIGNvbmcgdHJpbmggY3U7IGRlIGRvYyANCnNvbmcgQ2FtLCBiYWkgY29u dGFpbmVyIGxhbmggdGh1b25nIGx1dSBjYW5nIENodWEgVmUga2hvbmcgZHVvYyB0aHVjIGhpZW4g bmh1bmcgQmFuIA0KUUxEQSBkYSBraG9uZyBiYW8gY2FvIG5ndW9pIHJhIHF1eWV0IGRpbmggZGF1 IHR1Lg0KDQotIEJhbiBRTERBIGxhaSB0dSB0aHVjIGhpZW4gbW90IHNvIGhhbmcgbXVjIG5odSBt byByb25nIGtlIGJvLCBkdW9uZyBkaWVuIDM1IEtWLCBoZSANCnRob25nIGN1dSBob2EsIG5lbyBj YXUgdHJ1YyBnaWFuIGJhaS4uLiBzYXUgZG8gbW9pIHRyaW5oIFRodSB0dW9uZyBwaGUgZHV5ZXQu IEJhbiBRTERBIA0KY29uIHN1IGR1bmcgaGFuZyB0aSBkb25nIG5ndW9uIHZvbiBjdWEgZHUgYW4g ZGUgY2FpIHRhbywgeGF5IGR1bmcgbmhhbmggZHVvbmcgc2F0IA0KdHJvbmcgY2FuZyBDaHVhIFZl IHRyb25nIGtoaSBoYW5nIG11YyBuYXkgaG9hbiB0b2FuIGtob25nIGNvIHRyb25nIGRhbmggbXVj IGRhdSB0dSANCnhheSBkdW5nIGN1YSBkdSBhbi4NCg0KLSBNYWMgZHUga2hvbmcgbGllbiBkb2Fu aCB2b2kgbmhhIHRoYXUgVmlldCBOYW0sIGtob25nIHN1IGR1bmcgdGhhdSBwaHUgVmlldCBOYW0g DQp0dWMgbGEgaG9hbiB0b2FuIGtob25nIGR1IGRpZXUga2llbiBkdSB0aGF1IHRoZW8gcXV5IGRp bmggbmh1bmcgbmhhIHRoYXUgTWl0c3VpIA0KRW5naW5lZXJpbmcgLSBTaGlwYnVpbGRpbmcgdmEg bmhhIHRoYXUgbGllbiBkb2FuaCBJSEktTWVzIGN1bmcgbGEgTmhhdCBCYW4gdmFuIGNvIHRlbiAN CnRyb25nIGRhbmggc2FjaCB0aGFtIGR1IHRoYXUgdmEgZGEgdHJ1bmcgdGhhdS4NCg0KLSBPIG5o aWV1IGhhbmcgbXVjIGtoYWMgY28gcXVhbiBjaHVjIG5hbmcgY29uIHBoYXQgaGllbiBjbyBzdSBj aGVuaCBsZWNoIGxvbiBnaXVhIA0Ka2hvaSBsdW9uZyB0aHVjIGhpZW4gdm9pIGtob2kgbHVvbmcg dGhpZXQga2UuIERvbiBjdSwgaGFuZyBtdWMga2UgZGEgYmFvIHZlIG1haSBkb2MgDQpnYW0gYmVu IHNvIDQsIHNvIDUgdGFuZyAxMCUsIGhhbmcgbXVjIGJlIHRvbmcsIGNvdCB0aGVwIGNhdSB0YXUg dGFuZyAzMCUuLi4NCg0KLSBDaGl1IHRyYWNoIG5oaWVtIHZlIG5odW5nIHNhaSBwaGFtIHRyb25n IGtldCBsdWFuIHRoYW5oIHRyYSBsYSBCYW4gUUxEQSBjYW5nIEhhaSANClBob25nIHZhIGNhYyBj b25nIGNodWMsIHZpZW4gY2h1YywgY28gcXVhbiwgZG9uIHZpIHRodW9jIEJvIEdUVlQgY28gbGll biBxdWFuIGRlbiANCnZpZWMgdGh1YyBoaWVuIGR1IGFuIHR1IG5hbSAxOTk1IGRlbiBuYXkuIA0K DQotIFRUQ1AgY3VuZyBraWVuIG5naGkgVGh1IHR1b25nIENoaW5oIHBodSBnaWFvIEJvIEdUVlQg cGhvaSBob3Agdm9pIEJvIFRhaSBjaGluaCB4dSBseSANCmtob2FuIHRpZW4gMTcwIHRpIGRvbmcg bGFuZyBwaGkgdm9uIGRhdSB0dSwgbGFtIGxvaSBjaG8gbmhhIHRoYXUsIGxhbSB0YW5nIGNoaSBw aGkgY3VhIGR1IGFuLiANCg0KVFRDUCBraWVuIG5naGkgVGh1IHR1b25nIGdpYW8gQm8gQ29uZyBh biBjaGkgZGFvIGNhYyBjbyBxdWFuIGNodWMgbmFuZyB0aWVuIGhhbmggZGlldSB0cmEsIA0KeHUg bHkgZG9pIHZvaSBjYWMgc2FpIHBoYW0gdHJlbi4gRHVvYyBiaWV0IHZpZWMgZGVuIGJ1IGdpYWkg cGhvbmcgbWF0IGJhbmcsIHJhIHBoYSBib20gbWluIGN1YSBkdSBhbiBjdW5nIGNvIA0KbmhpZXUg c2FpIHBoYW0sIFRoYW5oIHRyYSBCbyBUYWkgY2hpbmggZGEgdHVuZyBrZXQgbHVhbi4gDQoNCi0N Cmh0dHA6Ly93d3cudHVvaXRyZXZobi5jb20vP2FjdD1uZXdzJmNhdD02NCZzdWI9NjQmaWQ9NDQx NTMgVmlldCBIYSwgcGhvbmcgdmllbiBkYWkgUkZBIDIwMTAtMDMtMjANCg0KVGh1IHR1b25nOiBU aHVjIGNoYXQgY3VhIHZpZWMgdHV5ZW4gZHVvbmcga2hlbiB0aHVvbmcgbyBWaWV0IE5hbSAtIGNv biBtYW5nIHRpbmggZGFpIHRyYSANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkxMjIzMDQw NjU5NzM2cDEwNTRjMTA1Ni9nYWktaGF5LXRyYWktY2hpLTItbGEtZHUuaHRtDQoNClRodSB0dW9u ZzogS2V0IHF1YSBjdW9jIHZhbiBkb25nIEtISEdEIC0gIkR1IGdhaSBoYXkgdHJhaSBjaGkgaGFp IGxhIGR1IiANCg0KaHR0cDovL2hhbmh0cmluaC4xOC5mb3J1bWVyLmNvbS9pbmRleC5waHA/c2hv d3RvcGljPTMzNCBKdW5lIDA3LCAyMDA4IDA4OjQyIGFtDQoNCk9uZyBOZ3V5ZW4gVGFuIER1bmcg dmEgcGh1IG5oYW4gKGJhIFRyYW4gVGhhbmggS2llbSkgY28gYmEgbmd1b2kgY29uOiANCg0KMS4g Q29uIHRyYWkgdHJ1b25nIGRhbmcgZ2lhbmcgZGF5IHRhaSBEYWkgaG9jIEtpZW4gdHJ1YyBUUC4g SG8gQ2hpIE1pbmg7IA0KDQoyLiBDb24gZ2FpIE5ndXllbiBUaGFuaCBQaHVvbmcsIG8gdHVvaSAy NywgZGEgbGEgQ2h1IHRpY2ggSERRVCBRdXkgRGF1IHR1IEJhbiBWaWV0LCB2b2kgc28gdm9uIGto b2FuZyA1NSB0cmlldSBkbyBsYSBNeTsNCg0KMy4gTmd1b2kgY29uIHRyYWkgdXQgY3VhIG9uZyBo aWVuIGRhbmcgZHUgaG9jIHRhaSBBbmguDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9OaGll dS1kb25nLWJhby1jaGktVGV0LWRlbi1tb2ktY28tY29tLWFuLzExMDMzODkzLzE1Ny8gMTcvMTEv MjAwNywgMTM6MjcgR01UKzcNCg0KVGh1IHR1b25nOiAiSGFuZyB0cmFtIG5naGluIGRvbmcgYmFv IGNoaSBUZXQgZGVuIG1vaSBjbyBjb20gYW4iIA0KDQpUcm9uZyBwaGllbiB0cmEgbG9pIGNoYXQg dmFuIHRydW9jIFF1b2MgaG9pLCBCbyB0cnVvbmcgQm8gTk5QVE5UIENhbyBEdWMgUGhhdCwgY2h1 YSB4b3QsIGNobyBiaWV0IG1vdCBzdSB0aGF0OiANCiJWaWV0IE5hbSBkdW5nIHRodSAyIHRoZSBn aW9pIHZlIHh1YXQga2hhdSBnYW8gbWEgaGFuZyBuYW0gdmFuIGNvbiBoYW5nIHRyYW0gbmdoaW4g ZG9uZyBiYW8gDQpjaGkgZHVvYyBhbiBjb20ga2hpIG5nYXkgbGUsIG5nYXkgdGV0LCBraGkgYmkg b20iLiANCg0KaHR0cDovL3d3dy50YXBjaGl0aGVnaW9pbW9pLmNvbS90bS5waHA/cmVjb3JkSUQ9 MTMxMyANCg0KS2llbiBHaWFuZzogVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBjaG8geGF5IGR1 bmcgbmdvaSBuaGEgdGhvIGhvLCBjdW5nIHZvaSBoYW5nIGxvYXQgY2FjIA0KdGhpZXQgYmkgbm9p IHRoYXQgeGEgeGkgbmh1IG1vdCBjdW5nIGRpZW4gKHVvYyBjaHVuZyB0cmVuIDcgdHJpZXUgTXkg a2ltKSwgdHJvIHRoYW5oIG1vdCANCm9jIGRhbyBiaSBtYXQgdmEgdGhhY2ggdGh1YyBjb25nIGx1 YW4gbmdheSBnaXVhIEtpZW4gR2lhbmcuIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9iYW5kb2N2 aWV0L2NoaWFzZS8yMDA5LzA4Lzg2MzU0My8gMDc6MDgsIDE1LzA4LzIwMDkgKEdNVCs3KQ0KDQpI YSBUaW5oOiBMYXkgbGF0IGRvaSBtZSBsaWV0IHN5IDk3IHR1b2kgdHJvbmcgImNhbiBuaGEiIGxh bSB0dSBjaHVvbmcgdHJhdSAtIG51b2kgY29uIHRhbiB0YXQNCg0KTWUgR2lhbmcgY28gbW90IG5n dW9pIGNvbiBoeSBzaW5oIG8gY2hpZW4gdHJ1b25nLCBuYW0gbmd1b2kgY29uIGNoZXQgdmkgYmVu aCB0YXQuIA0KQ2hvbmcgbWF0LCB0cm9uZyBuZ29pIG5oYSB0cmFuaCB0YW0gYm8sIGNoaSBjbyBo YWkgbWUgY29uIGNvaSBjdXQgYmVuIG5oYXUuIA0KR2FuIDEwMCB0dW9pLCBtZSB2YW4gcGhhaSBj aG9uZyBnYXkgY28gbGFtIHZpZWMgbmhhIGRlIG51b2kgZHVhIGNvbiB0cmFpIHRhdCBuZ3V5ZW4g ZGEgaG9uIDYwIHR1b2kuIA0KDQpNZSBtdW9pIGR1YSBkZSAyIG1lIGNvbiBhbiBkYW4sIGxvIGNo byBuaHVuZyBsdWMgb20gZGF1IGtob25nIGRpIGNobyBkdW9jLi4uDQoNCmh0dHA6Ly93d3cudmll dG5ldGNlbnRlci5jb20vY29udGVudC92aWV3LzI1Njc4LzU3LyAyNy8wNC8yMDA5ICAwNDoyOCAo VGhlbyBOVikNCg0KVGh1IHR1b25nOiBDaGkgcnVvdCBOZ3V5ZW4gVGFuIER1bmcgImNoZSIgdGll biBib2kgdGh1b25nIGRhdCBob24gMTAgdHJpZXUgZG8gKG8gQmluaCBEdW9uZykgDQoNCmh0dHA6 Ly93d3cudGhlZ2lvaW5ndW9pdmlldC5uZXQvc2hvd3RocmVhZC5waHA/dD04MTM1IE1MIDA2LTIx LTIwMDksIDA5OjM3IFBNIA0KDQpOaGEgVHJhbmc6IE5oYSBuZ2hpIG1hdCBjdWEgY29uIGdhaSBO Z3V5ZW4gVGFuIER1bmcgbyBOaGEgVHJhbmcga2hvbmcga2hhYyBnaSBuaGEgY3VhIHRhaSB0dSBv IGNhYyBudW9jIG5nb2FpIHF1b2MgDQoNCmh0dHA6Ly93d3cuZGN2b25saW5lLm5ldC9waHAvbW9k dWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9cHJpbnQmc2lkPTY1MCANCg0KTW90IGJhaSB0aG8gZGFu IGdpYW4gdHJ1eWVuIG1pZW5nIA0KDQpCYW0gb2kgY28gcmV0IGtob25nIEJhbQ0KTyB0byBjb24g Y3VvaSwgZ2EgaGFtIGNvbiB4b2kNCkNvbiB0aHVvbmcgQmFtIGxhbSBCYW0gb2kNCjcwLCBCYW0g dmFuIHBoYWkgbmdvaSBuaGEga2hvYWkgKERpIGJhbiBiYWkgIkJhbSBvaSIgY3VhIG9uZyBUbyBI dXUpIA0KDQotDQpodHRwOi8vYmFvdG9xdW9jLmNvbS8yMDA5LzEyLzAyL3RoJUM2JUIwLXQlRTEl QkIlOTEtY2FvLW5ndXklRTElQkIlODVuLXQlRTElQkElQTVuLWR1bmctdGhhbS1uaHVuZy1naWF1 LW5oJUUxJUJBJUE1dC1jaGF1LWEvIFR1YW4gTmd1eWVuIDIvMTIvMjAwOSAoVGluIFZpZXQgTmFt KQ0KDQpUbyBjYW8gTmd1eWVuIFRhbiBEdW5nIHRoYW0gbmh1bmcsIGdpYXUgbmhhdCBjaGF1IEEN Cg0KTW90IGRhbmcgdmllbiBEQ1NWTiBtYW5nIHRlbiBQaGFuIFZhbiBUcnVuZyB2dWEgZ3VpIHRo dSBjaG8gY2FjIHF1YW4gY2h1YyBkYW5nIHZhIG5oYSBudW9jIGdvbTogTm9uZyBEdWMgTmFuaCwg Tmd1eWVuIE1pbmggVHJpZXQsIE5ndXllbiBQaHUgVHJvbmcgdmEgVHJ1b25nICBUYW4gU2FuZyBk ZSB0byBjYW8gTmd1eWVuIFRhbiBEdW5nIG1vdCB0YXkgdGhhbSBsYW0sIHRodSBkb2FuIGRhbmcg a2VvIHRoYW4gbmhhbiwgDQp0YXkgY2hhbiwgYmUgZGFuZyBkZSBraW5oIHRhaSB0aGVvIGtpZXUg bWFmaWEuIExhIHRodSBjbyBkb2FuIG5vaSByYW5nOiBHaW8gbGFpIGxpY2ggc3UgRGFuZyB0YSBj byBsdWMgdGhhbmcgbHVjIHRyYW0gbmh1bmcgY2h1bmcgdGEgY2h1YSBiYW8gZ2lvIHNhaSBsYW0g bmh1IGJheSBnaW8uIENodWEgYmFvIGdpbyBjaHVuZyB0YSBkYSBzYWkgbGFtIG5odSBraGkgY2hv biBOZ3V5ZW4gVGFuIER1bmcgZGF0IGhhbiB2YW8gbmdoZSBUaHUgdHVvbmcuIA0KQ2h1bmcgdGEg Y2h1YSBiYW8gZ2lvIGNvIFRodSB0dW9uZyBkYXkgdGhhbSB2b25nIHF1eWVuIGx1YyB2YSB2YXQg Y2hhdCBuaHUgaGFuLiBDaHVhIGRheSBtb3QgbmFtIGtlIHR1IGtoaSBoYW4gbmFtIHF1eWVuIGhh biBkYSBsYW0gZ2kgZHVvYyBjaG8gZGF0IG51b2M/IEhheSBoYW4gY2hpIGRvIA0KbW9pIHRodSBk b2FuIGRlIGN1bmcgY28gcXV5ZW4gbHVjIG5oYW0gdGFvIHRoZW0gdmF5IGNhbmguIE5ndXllbiBU YW4gRHVuZyBkYSBoaW5oIHRoYW5oIGR1b2MgbW90IG5ob20gdHUgYmFuIGR1b2kgdHJ1b25nIHZh IHRhbyBtb2kgZGlldSBraWVuIGRlIG5ob20gbmF5IHRoYXUgdG9tIG5lbiANCmtpbmggdGUgVk4s IHR1bmcgYnVvYyB0aHVjIGhpZW4gYW0gbXV1IGRvIGJhbiBjdWEgaGFuLiBUYWkgc2FuIGhhbiBj byBoaWVuIG5heSBkYSBkdWEgaGFuIHRybyB0aGFuaCBuZ3VvaSBnaWF1IG5oYXQgQ2hhdSBBLg0K R2lhIGRpbmggTmd1eWVuIFRhbiBEdW5nIHZhIGdpYSBkaW5oIHZvIGhhbiBkYW5nIHRob2Mgc2F1 IHZhbyB0YXQgY2EgaG9hdCBkb25nIGN1YSBuZW4ga2luaCB0ZSwgbmhhbiBnaWFuIG11b24gbGFt IGFuIGRldSBwaGFpIHNvIG5odW5nIHRlbjogVHUgVGhhbmcsIExpZW0sIENoaW5oLCBDaGkuIA0K Tmd1eWVuIFRhbiBEdW5nIGNvbiBsaWV1IGxpbmggY29pIHRodW9uZyBkdSBsdWFuIGtoaSBoYW4g Y2hvIGNvbiBnYWkgbGEgVGhhbmggUGh1b25nIGxhcCBRdXkgZGF1IHR1IFZpZXQgQ2FwaXRhbCwg ZGF5IGxhIGhpbmggdGh1YyBydWEgc2FjaCBkYXUgdmV0IG5odW5nIGRvbmcgdGllbiBiYXQgbWlu aCANCmN1YSBnaWEgZGluaCBoYW4uIE5naGkgY29uIHRyYWkgY3VhIE5ndXllbiBUYW4gRHVuZyBj dW5nIGNvIG1vdCBjYWNoIGFuIHRpZW4gaG9wIHBoYXAgbGEgbmhhbiB0aGlldCBrZSBjYWMgY29u ZyB0cmluaCB4YXkgZHVuZyBsb24uIER1b2kgdHJ1b25nIE5ndXllbiBUYW4gRHVuZyBoaWVuIG5h eSBsYSANCmNhIG1vdCBkdW9uZyBkYXkga2luaCB0YWkgaG9hdCBkb25nIHRoZW8ga2lldSBtYWZp YSBtYSBjaGkgbmdoZSB0aGF5IHRlbiBsYSBraG9uZyBhaSBkYW0gZHVuZyBkZW4gbmh1IEhvaSAo Qml0ZXhjbyksIFRyYW0gQmUgKG5nYW4gaGFuZyBQaHVvbmcgTmFtKSwgVGllbiAobmdhbiBoYW5n IA0KQW4gQmluaCksIEJhYyBIYSAobmdhbiBoYW5nIERhdSBUdSksIEtpZW4gKG5nYW4gaGFuZyBB IENoYXUpLCBNdW9pIFJ1YSAobmdhbiBoYW5nIFNhaSBnb24pLCBIdW5nIChMaWxhbWEpLCBOZ29j IE1pbmggKFRvbmcgY29uZyB0eSBIYW5nIEtob25nIFZOKSwgRG9uIExhbSANCihWaW5hY2FwaXRh bCksIEh1bmcgKFNhdmljbyksIGNoaSBMYW0gKG5nYW4gaGFuZyBWaWV0IE5hbSB0aHVvbmcgdGlu LCBjb25nIHR5IEhvYSBMYW0pLCBEaWV1IEhpZW4gKGNvbmcgdHkgQmluaCBBbiAtIENhbiBUaG8p LCBOZ2EgKGNvbmcgdHkgVmluaCBIYW5oLCBWaW5jb20pLiBEYXkgDQpjaGkgbGEgbmh1bmcgY29u ZyB0eSBiaSBsbywgY29uIGJpZXQgYmFvIG5oaWV1IGNvbmcgdHkgZHVvaSB0cnVvbmcgTmd1eWVu IFRhbiBEdW5nIG1hIGNodW5nIHRhIGNodWEgbGlldCBrZSBkdW9jLg0KVGFwIGRvYW4gTmd1eWVu IFRhbiBEdW5nIGRhbmcgY28ga2UgaG9hY2ggY2hpIHBob2kgY28gcGhhbiBjYWMgY29uZyB0eSBs b24gbmh1IERhdSBraGksIGRpZW4gbHVjLCBraG9hbmcgc2FuLCBoYW5nIGtob25nLCBuZ2FuIGhh bmcuIE5ndXllbiBUYW4gRHVuZyBsb24gdGllbmcga2V1IGdvaSANCmNob25nIHRoYW0gbmh1bmcg bmh1bmcgdGFtIGhhbiBjbyBzYW5nIGtob25nPyBEdWMgaGFuIGNvIGRhbmcgdHJvbmcga2hvbmc/ IFRheSBoYW4gY28gc2FjaCBraG9uZz8iLi4uDQoNCkxhIHRodSB0byBjYW8gY29uIGtldSBnb2kg Y2FjIHF1YW4gY2h1YyBkYW5nIHZhIG5oYSBudW9jOiAiLi4uIG5ldSBjb24gbmdoaSBkZW4gRGFu ZywgZGVuIERhbi4gQ2FjIGRvbmcgY2hpIHBoYWkgbmdheSBsYXAgdHVjIGR1YSBOZ3V5ZW4gVGFu IER1bmcgcmEga2hvaSBuZ2hlIFRodSB0dW9uZyANCnRydW9jIGtoaSBxdWEgbXVvbi4gTmd1eWVu IFRhbiBEdW5nIHZvaSBiYW4gY2hhdCB0aGFtIGxhbSwgbXV1IG1vLCB0aHUgZG9hbiBzZSBkdWEg Vk4gZGkgY2hlY2ggaHVvbmcgY3VhIERhbmcgdGEsIGhhbiBzZSBkaSBuZ3VvYyBsYWkgbG9pIGlj aCBjdWEgRGFuZyBkZSB0cm8gdGhhbmggbW90IA0KRW54aW4gVmlldCBOYW0gdm9pIGtob2kgdGFp IHNhbiBraG9uZyBsby4gTmV1IGNoYW4gdHJ1IHNlIGNvIG1vdCBnaWEgZGluaCBOZ3V5ZW4gVGFu IER1bmcgaG9hYyBsYSBFbnhpbiBWTiBjaGkgcGhvaSB0b2FuIGJvIGNhIGNoaW5oIHRyaSB2YSBr aW5oIHRlIFZOLiBUYWkgc2FuIHZhIHF1eWVuIGx1YyANCmhhbiBjbyBsYSBtYXUgeHVvbmcgY3Vh IGRvbmcgY2hpLCBkb25nIGRvaSB0YSwgbGEgbW8gaG9pIG51b2MgbWF0IGN1YSBkYW4gdGEuIERh bmcgY29uIGhheSBtYXQ/IENhdSB0cmEgbG9pIGxhIG1hdCwgbmV1IE5ndXllbiBUYW4gRHVuZyBj b24gdGllcCB0dWMgbGEgVGh1IHR1b25nLiBUaG9pIGdpYW4gDQpraG9uZyBjb24gbmhpZXUsIHRv aSBoeSB2b25nIGNhYyBkb25nIGNoaSBzYW5nIHN1b3QgbG9haSBibyBOZ3V5ZW4gVGFuIER1bmcg bmdheSB0cnVvYyBraGkgcXVhIG11b24iLi4uLg0KDQpodHRwOi8vaG9uLXZpZXQuY28udWsvVGh1 eVRyaWV1X1RpZW5EZW5DdWFWR0NTVGFpVGh1eVNpLmh0bSBUaHV5LVRyaWV1DQoNClRodSB0dW9u ZzogVGllbiBkZW4gY3VhIHF1YW4gY2h1YyBvIHRhaSBraG9hbiBuZ2FuIGhhbmcgVGh1eSBTeQ0K DQpRdWFuIHRoYW0gVmlldCBOYW0gZGEgbWFjIHBoYWkgY2FpIGJlbmgga2luaCBuaWVuIHRoYW0g bywgdGhhbSBuaHVuZywgbmh1bmcgaG8gY29uIHZ1b25nIHRoZW0gbW90IGNhbiBiZW5oIGtob2Ug a2hvYW5nLiBwaG8gdHJ1b25nLiBIbyBsdW9uIGx1b24gcGhhaSBjaGUgZ2lhdSBzdSB0aGF0IA0K ZG9uZyB0aG9pIGhvIHBoYWkgdG8gZGllbSBzYW8gY2hvIG5odW5nIGNhaSB4YXUgaG9hIHRyYW5n IHRoYW5oIG5odW5nIGNhaSB0b3QsIHZhIG5odW5nIGNhaSB0aGFwIGtlbSB0cm8gbmVuIG5odW5n IGRpbmggY2FvIHRyaSB0dWUsIGRlIGNvIGdpdSBkdW9jIHRoZSBkaWVuIHZhIHRpbmggdHUgY2Fv LCB0dSBkYWkgY3VhIG1vdCBuaG9tIGNhbSBxdXllbiBkb2MgdGFpLCBsdW9uIGNob25nIGxhaSBz dSB0aWVuIGJvIHRodWMgc3UuDQoNCk1vdCB0cm9uZyBuaHVuZyB0aGFuaCB0aWNoIHR1eWVuIHRy dXllbiBjdWEgdHJ1eWVuIHRob25nIHF1b2MgZG9hbmgsIHRyb25nIHBoZXAgdGh1YXQgaG8gYmll biBuaHVuZyBjYWkgdGhhcCBrZW0gdHJvIG5lbiBuaHVuZyBkaW5oIGNhbyB0cmkgdHVlLCBsYSBu aHVuZyBiYWkgdHV5ZW4gdHJ1eWVuIGNhIG5nb2kgTmd1eWVuIFRhbiBEdW5nLCBtb3Qgbmd1b2kg ZGEga2hvbmcgYmlldCBkb2MgdmEgaGlldSBjYSBjYWkgQmFuIGNhbiBkb2kgdGFpICANCmtob2Fu IG5nYW4gaGFuZyBkb24gZ2lhbiwgbWEgZGEgZ2l1IGNodWMgVGhvbmcgZG9jIG5nYW4gaGFuZyBu aGEgbnVvYyB0cnVuZyB1b25nIHRyb25nIG5odW5nIG5hbSAxOTk3LCAxOTk4LCB2YSAxOTk5LCB0 cnVvYyBraGkgYmFuIGdpYW8gY2h1YyB2dSBjaG8gTGUgRHVjIFRodXkuICANCk9uZyB0YSBkYSBk dW9jIG1vdCBzbyBiYW8gcXVvYyBkb2FuaCB0dXllbiB0cnV5ZW4gbGEgbW90IG5oYW4gdGFpLCBQ aG8gVGh1IHR1b25nIGtpZW0gVGhvbmcgZG9jIG5nYW4gaGFuZyB0cnVuZyB1b25nLCB2b2kgbmh1 bmcgZ2lhaSBwaGFwIHRhaSBjaGFuaCBjbyBoaWV1IHF1YSB0b3QgKD8pIGRhIGdpdXAgbnVvYyBD SFhIQ05WTiB0aG9hdCBraG9pIGNvbiBraHVuZyBob2FuZyB0YWkgY2hhbmggbyBEb25nIEEgdmEg RG9uZyBOYW0gQSwgdmFvIG5odW5nIG5hbSAxOTk3LCAxOTk4LiAgDQpTdSB0aGF0IGxhIG51b2Mg Q0hYSENOVk4gY3VhIE5ndXllbiBUYW4gRHVuZyB0cm9uZyBuaHVuZyBuYW0gMTk5NywgMTk5OCBs YSBtb3QgbnVvYyBnYW4gbmh1IG8gbmdvYWkgbGUgY3VhIGNhYyBob2F0IGRvbmcgdGFpIGNoYW5o IHRyb25nIGtodSB2dWMgQSBDaGF1LiBUcm9uZyBsdWMgZ3VvbmcgbWF5IHR1eWVuIHRydXllbiBu b2kgcmFuZyBudW9jIENIWEhDTlZOIA0KZGEgY2FpIGNhY2ggbmVuIGtpbmggdGUgVmlldCBOYW0g ZGUgZGFuIGRhbiBob2kgbmhhcCB2YW8gbmVuIGtpbmggdGUgdGhpIHRydW9uZyB0aGUgZ2lvaSwg dGhpIG5ob20gY2FtIHF1eWVuIHRyb25nIGRhbmcgQ1NWTiBraGkgZG8sIHRodWMgY2hhdCwgdmFu IGNoaSBoZSBoZSBjYW5oIGN1YSBraW5oIHRlIG1vdCBjaHV0IGRlIHRpbSBjYWMgbmd1b24gZGF1 IHR1IGN1YSBudW9jIG5nb2FpLiBNdWMgZG8gY29pIG1vIGtpbmggdGUgdHJvbmcgbmh1bmcgDQpu YW0gMTk5NSCWIDE5OTkgY3VhIFZpZXQgTmFtIHJhdCB0aGFwIGNobyBuZW4gZGEga2hvbmcgYmkg YW5oIGh1b25nIHRvIGxvbiBraGkga2h1bmcgaG9hbmcgdGFpIGNoYW5oIEEgY2hhdSB0cm9uZyBo YWkgbmFtIDE5OTcsIDE5OTgsIHhheSByYSBvIGNhYyBudW9jIE5oYXQgQmFuLCBEYWkgTG9hbiwg RGFpIEhhbiwgVGhhaSBMYW4sIE1hIExhaSwgTmFtIER1b25nLCB2YSBQaGkgTHVhdCBUYW4uICBI b24gbnVhLCBzbyBsaWV1IHRob25nIA0Ka2Uga2luaCB0ZSBjaG8gdGhheSBtdWMgdGFuZyB0cnVv bmcga2luaCB0ZSBjdWEgVmlldCBOYW0gZGEgbGllbiB0aWVwIGdpYW0gc3V0IHR1IDklIGN1YSBu YW0gMTk5NiB4dW9uZyA4LjglIHRyb25nIG5hbSAxOTk3IHZhIHRpZXAgdHVjIHh1b25nIDUuOCUg dHJvbmcgbmFtIDE5OTguDQoNClN1IHRoYXQgcXVhIHJvIGxhIG5nYW4gaGFuZyB0cnVuZyB1b25n IG5oYSBudW9jIFZpZXQgTmFtIGN1YSBOZ3V5ZW4gVGFuIER1bmcgdHJvbmcgbmh1bmcgbmFtIGRv IGRhIGxhIG1vdCBuZ2FuIGhhbmcgZHVuZyBiZW4gbGUgY2h1IGtob25nIHBoYWkgbmhvIHRhaSBi YSBsYW5oIGRhbyBjdWEgDQpvbmcgVGhvbmcgZG9jIGRvdCBuYXQga2lhIGRlIGdpdXAgY2hvIG5v IHRob2F0IG5hbiBwaGEgc2FuLCBnaW9uZyBuaHUgbG9pIHR1eWVuIHRydXllbiB0aGFuaCB0aWNo IGN1YSBOZ3V5ZW4gVGFuIER1bmcga2hpIG9uZyB0YSBkdW9jIGJlIHBoYWkgdHJvbmcgQm8gQ2hp bmggdHJpIHRyYW5oIGdpYW5oIGNobyBjaGllYyBnaGUgVGh1IHR1b25nIHZhbyB0aGFuZyA1IG5h bSAyMDA2Lg0KDQpNb3Qgc28gY28gcXVhbiB0cnV5ZW4gdGhvbmcgcXVvYyBkb2FuaCBjbyBuaGll bSB2dSBwaGFpIGNhIHR1bmcgY2hlIGRvIGRvYyB0YWkuIFRyb25nIG5hbSAyMDA2LCBraGkgTmd1 eWVuIFRhbiBEdW5nIGR1b2MgbGFtIFRodSB0dW9uZywgaG8gZGEgdmlldCBuaHVuZyBiYWkgYmFv IHR1eWVuIA0KdHJ1eWVuIGtoZW4gbmdvaSBvbmcgdGEgbmh1IG1vdCBuaGFuIHRhaSwgdHUgbW90 IGR1IGtpY2ggZ2lhbyBsaWVuIG8gdGluaCBDYSBNYXUgbmF5IHRybyBuZW4gcmF0IHRhaSBnaW9p IGRlIGxhbSB0aHUgdHVvbmcuIA0KVHJvbmcgbmFtIDIwMDcsIHRpZXAgdGhlbyBzdSBjYSB0dW5n IG9uZyBibyBsYW0gVGh1IHR1b25nLCBjbyBtb3QgbG9hdCBiYWkgdHV5ZW4gdHJ1eWVuIGNhIG5n b2kgY28gZ2FpIGNvbiBvbmcgVGh1IHR1b25nLCBjbyB0ZW4gbGEgTmd1eWVuIFRoYW5oIFBodW9u Zy4gVmFvIHRoYW5nIDEyIG5hbSAyMDAzIGNvIG5oYW4gdmFuIGJhbmcgVGhhYyBzaSBRdWFuIHRy aSBLaW5oIGRvYW5oIGN1YSB0cnVvbmcgRGFpIGhvYyBHZW5ldmEsIFRodXkgU2kgIA0KdmFvIGx1 YyAyNSB0dW9pIHZhIHRybyB2ZSBWaWV0IE5hbSB2YW8gdGhhbmcgNiBuYW0gMjAwNCBkYSBkdW9j IGxhbSBQaG8gR2lhbSBkb2MgdGFpIGNoYW5oIGNobyBjb25nIHR5IGxpZW4gZG9hbmggSG9sY2lt LVZpZXQgTmFtIGNodXllbiBraW5oIGRvYW5oIHhpIG1hbmcgdHJvbmcgbnVvYy4gIA0KQ29uZyB0 eSBsaWVuIGRvYW5oIEhvbGNpbS1WaWV0IE5hbSBjbyB2b24gZGF1IHR1IGN1YSBuZ3VvaSBUaHV5 IFNpIHZhIG1vdCBwaGFuIHZvbiANCmN1YSBuaGEgbnVvYyBWaWV0IE5hbS4gQ29uZyB0eSBuYXkg dHJ1b2Mga2lhIGxhIGNvbmcgdHkgeGkgbWFuZyBTYW8gTWFpLCBjb24gZ29pIGxhIEhhIFRpZW4g MSAodHJ1b2MgbmFtIDE5NzUgbGEgbmhhIG1heSB4aSBtYW5nIEhhIFRpZW4pIG8gdGluaCBLaWVu IEdpYW5nLiAgS2h1IHZ1YyBuYXkgDQp0dW5nIGxhIGxhbmggZGlhIGN1YSBOZ3V5ZW4gVGFuIER1 bmcuICBUaG9pIGdpYW4gZGF1IGNvbmcgdHkgbmF5IGxheSB0ZW4gbGEgU2FvIE1haSB2YSBjbyBu aGFuIGhpZXUgbGEgaGluaCBkYXUgY29uIHRyYXUuIEJheSBnaW8gY29uZyB0eSBkb2kgdGVuIGxh IEhvbGNpbS1WaWV0bmFtLiAgDQoNCk5ndXllbiBUYW4gRHVuZyBkYSB0dW5nIGxhIG1vdCBsYW5o IGNodWEgdGFpIGh1eWVuIEhhIFRpZW4gdmEgdGluaCBLaWVuIEdpYW5nLiBUdSB0aGFuZyAxMCBu YW0gMTk4MSBkZW4gdGhhbmcgMSBuYW0gMTk5NSBkYSBsYW4gbHVvdCBnaXUgY2FjIGNodWMgdnUg cXVhbiB0cm9uZyBsYSBVeSB2aWVuIHRpbmggdXkgS2llbiBHaWFuZywgcGhvIGJhbiB0byBjaHVj IGNhbiBibyB0aW5oIHV5OyB1eSB2aWVuIHRodW9uZyB2dSB0aW5oIHV5IEtpZW4gDQpHaWFuZywg YmkgdGh1IGh1eWVuIHV5ICBIYSBUaWVuOyBwaG8gQmkgdGh1IHRodW9uZyB0cnVjIHJvaSBiaSB0 aHUgdGluaCB1eTsgY2h1IHRpY2ggdXkgYmFuIG5oYW4gZGFuIHRpbmggS2llbiBHaWFuZywgdHJ1 b2Mga2hpIHZlIHRydW5nIHVvbmcgbGFtIHRodSB0cnVvbmcgQm8gTm9pIHZ1ICgxLzE5OTUgLSA1 LzE5OTYpLCBkYW5nIHV5IHZpZW4gZGFuZyB1eSBjb25nIGFuIHRydW5nIHVvbmcuIA0KDQpUcm9u ZyBxdWEgdHJpbmggbGFtIGxhbmggY2h1YSBvIEhhIFRpZW4gLSBLaWVuIEdpYW5nLCBOZ3V5ZW4g VGFuIER1bmcgZGEgY28gcXVhIG5oaWV1IGNvIGhvaSBkZSBtb2MgbmdvYWMgY2F1IGtldCB2b2kg Y29uZyB0eSBIb2xjaW0gbW90IGNvbmcgdHkgVGh1eSBTaSBjaHV5ZW4gY3VuZyANCmNhcCB4aSBt YW5nIHZhIHZhdCBsaWV1IHhheSBkdW5nICB0cmVuIHRvYW4gdGhlIGdpb2kgZHVvaSBkYW5oIG5n aGlhIGN1YSBtb3QgY29uZyB0eSBsaWVuIGRvYW5oIEhvbGNpbS1WaWV0bmFtLiAgICANCkNvbmcg dHkgSG9sY2ltIGNvIHRydSBzbyB0YWkgR2VuZXZhLVRodXkgU2kgZGEgY28gdGhlIGR1bmcgcmEg bGFtIHRydW5nIGdpYW4gZGF1IG1vaSBjaG8gTmd1eWVuIFRhbiBEdW5nIG1vIG5odW5nIHRhaSBr aG9hbiB0aWVuIG15IGtpbSB2YSB2YW5nIHRob2kga3kgZ29pIHRhaSBuZ2FuIGhhbmcgVGh1eSBT aSBrZSB0dSB0aG9pIGdpYW4gZG8uICBIb24gbnVhLCBOZ3V5ZW4gVGFuIER1bmcgZGEgY28gbGll biBxdWFuIGRlbiBjb25nIHR5IA0KSG9sY2ltIHJhdCBuaGlldSwgdmEgbW9pIHF1YW4gaGUgbmF5 IGRhIHR1IGJvYyBsbyBybyBiYW5nIHN1IG5naGllcCB0aWVuIHRoYW4gZGUgZGFuZyBjdWEgY29u IGdhaSBvbmcgdGEsIGtoaSBOZ3V5ZW4gVGhhbmggUGh1b25nIGRhIGR1b2MgZGkgZHUgaG9jIHRh aSBUaHV5IFNpLCB2YSBkYSBkdW9jIA0KbGFtIFBobyBHaWFtIGRvYyBUYWkgY2hhbmggY3VhIGNv bmcgdHkgbmF5IHZvaSBjaGkgbW90IHRhbSBiYW5nIE1CQSByYXQgdGFtIHRodW9uZyB2YW8gbmFt IDIwMDQsIGx1YyAyNSB0dW9pLCB2YSBoYXUgbmh1IGNodWEgY28gbW90IGNodXQga2luaCBuZ2hp ZW0gY2h1eWVuIG5naGllcCB0YWkgY2hhbmguIA0KDQpOZ29haSByYSBjb25nIHR5IGxpZW4gZG9h bmggSG9sY2ltLVZpZXRuYW0gbmF5IGNvbiBjaGl1IGFwIGx1YyBjdWEgTmd1eWVuIFRhbiBEdW5n IGNhbiB0aGllcCBwaGFpIGt5IGhvcCBkb25nIG11YSBiYW8gYmkgdGFpIGNvbmcgdHkgYmFvIGJp IEhha2lwYWNrLg0KDQpWYW8gbmFtIDIwMDUgY28gdGEgZGEgbGFtIEdpYW0gZG9jIERhdSB0dSBj dWEgY29uZyB0eSBWaWV0bmFtIEhvbGRpbmcgQXNzZXQgTWFuYWdlbWVudCBxdWFuIGx5IG1vdCBu Z2FuIHF1eSAxMTIsNSB0cmlldSBNeSBraW0gY3VhIGNhYyBuaGEgZGF1IHR1IFRodXkgU2kgKD8p LiAgDQoNClJvaSB0aWVwIGRlbiwgbmFtIDIwMDYgY2hvIHRvaSBuYXkgMjAwOCwgY28gdGEgZGEg bGEgQ2h1IHRpY2ggaG9pIGRvbmcgcXVhbiB0cmkgY29uZyB0eSBjbyBwaGFuIFF1YW4gbHkgcXV5 IGRhdSB0dSBjaHVuZyBraG9hbiBCYW4gVmlldCAtIFZpZXQgQ2FwaXRhbCBGdW5kIE1hbmFnZW1l bnQgSm9pbnQgDQpTdG9jayBDb21wYW55LCBoYXkgZHVvYyB2aWV0IG5nYW4gZ29uIGxhIGNvbmcg dHkgUXV5IGRhdSB0dSBCYW4gVmlldCBob2FjIFZDRk0sIHZvaSBxdXkgbW8gdm9uIHR1IDUwMCB0 b2kgODAwIHRpIGRvbmcgVmlldCBOYW0gbWEgdGhlbyBsb2kgY28gY2hvIGJpZXQgbGEgY28gZGEg aHV5IGRvbmcgdm9uIGNodSB5ZXUgdHUgY2FjIGNhIG5oYW4gdmEgZG9hbmggbmdoaWVwIHR1IG5o YW4gVmlldCBOYW0uICANCg0KVHJvbmcgdGhvaSBnaWFuIGdhbiBkYXksIGNvbmcgdHkgVkNGTSBi YW4gcm9uIGNhYyBjdW9jIHF1YW5nIGNhbyB2YW4gZG9uZyBkZSBodXkgZG9uZyBtb3QgbmdhbiBx dXkgImNvbmcgY2h1bmcgbnVvYyBuZ29haSIgdm9pIHF1aSBtbyBkdSBraWVuIGxhIDEwMCB0cmll dSBNeSBraW0uICBUcm9uZyBjdW9jIHF1YW5nIGNhbyB2YW4gZG9uZyBkZSBodXkgZG9uZyB2b24g bnVvYyBuZ29haSBuYXksIGNoaW5oIE5ndXllbiBUaGFuaCANClBodW9uZyBsYSBuZ3VvaSBjaHUg Y2hvdCBkdW5nIHJhIHRodXlldCB0cmluaCB2YSBnaWFpIGRhcCBuaHVuZyB0aGFjIG1hYyBjaG8g Y2FjIG5oYSBkYXUgdHUgbmdvYWkgcXVvYyB2YW8gVmlldCBOYW0uICANCk1vdCBjYXUgaG9pIHRy b25nIG5oaWV1IGNhdSBob2kgbGEgInRhaSBzYW8gbmVuIHV5IHRoYWMgY29uZyB2aWVjIGRhdSB0 dSBjaG8gY29uZyB0eSBWQ0ZNID8iLiAgVmEgbm8gZHVvYyB0cmEgbG9pIHJhbmcgImJvaSB2aSBj b25nIHR5IFZDRk0gZHVvYyBjaGluaCBjb24gZ2FpIGN1YSBkdW9uZyBraW0gVGh1IHR1b25nIGNv bmcgYW4gTmd1eWVuIFRhbiBEdW5nIHF1YW4gbHkhIiANCiANCk5ndXllbiBUaGFuaCBQaHVvbmcg bmFtIG5heSAyOSB0dW9pIHZhIGR1b2MgYmFvIGNoaSBxdW9jIGRvYW5oIHR1eWVuIHRydXllbiBj YSBuZ29pIGxhIG1vdCB0cm9uZyBuaHVuZyBkb2FuaCBuaGFuIHRyZSBuaGF0IHZhIHRoYW5oIGNv bmcgbmhhdCB0cm9uZyBnaW9pIGxhbmggZGFvIGNhYyBxdWkgZGF1IHR1IHRhaSBjaGluaCBjaHV5 ZW4gbmdoaWVwIG8gVmlldCBOYW0gaGllbiBuYXkuICBUdXkgbmhpZW4sIGtoaSBzbyBzYW5oIHZv aSBuaHVuZyANCnF1eSBkYXUgdHUga2hhYyBvIFZpZXQgTmFtIG5odSBNZWtvbmcgQ2FwaXRhbCwg VmluYSBDYXBpdGFsLCBJbmRvY2hpbmEgQ2FwaXRhbCwgSURHIFZlbnR1cmUuICBEYSBzbyBuaHVu ZyBuZ3VvaSBsYW5oIGRhbyBjdWEgbmh1bmcgcXV5IGRhdSB0dSBuYXkga2hvbmcgY28gYWkgdHJl IG5odSANCk5ndXllbiBUaGFuaCBQaHVvbmcsIGNvIGNvbiBxdWEgdHJlIHZhIG5vbiBrZW0gbmV1 IHNvIHR1b2kgdmEga2luaCBuZ2hpZW0gY2h1eWVuIG5naGllcCB2b2kgaG8uICBCb2kgdmkgdHJv bmcgY29uZyB2aWVjIHF1YW4gbHkgZGF1IHR1IGNodW5nIGtob2FuLCBuZ29haSB0YWkgbmFuZyBj b24gcGhhaSBjbyBjYSBraW5oIG5naGllbSBjaHV5ZW4gbmdoaWVwLCBwaGFpIGNvIGl0IG5oaWV1 IHV5IHRpbiB0cm9uZyBxdWFuIGhlIHhhIGdpYW8gdG90IG8gDQp0cm9uZyBjaHV5ZW4gbmdhbmgg dGFpIGNoYW5oIHZhIG5nYW4gaGFuZywgdmEgcGhhaSBkdW9jIG5ndW9pIHRyb25nIGdpb2kgY2h1 eWVuIG5naGllcCBuZ2FuIGhhbmcgdmEgdGFpIGNoYW5oIGNvbmcgbmhhbiB0aGFuaCB0aWNoIHRo aSBtb2kgY28ga2hhIG5hbmcgaHV5IGRvbmcgdm9uIHZhIGNvbmcgdmllYyBkYXUgdHUgbW9pIHRo YXQgc3UgY28gaGlldSBxdWEuIA0KDQpOaHUgdmF5IHRpbmggcmEgcXVhIHRyaW5oIGxhbSB2aWVj IGN1YSBOZ3V5ZW4gVGhhbmggUGh1b25nIGNobyB0aGF5IHRydW5nIGJpbmggTmd1eWVuIFRoYW5o IFBodW9uZyBkYSBsYW0gY2hvIG1vaSBjb25nIHR5IGxhIG1vdCBuYW0sIGhheSBsYSBjdW5nIG1v dCBsdWMgY28gImNvIGJhIGRhdSBzYXUgdGF5IiBkZSBsYW0gdmllYyBjaG8gY2EgYmEgY29uZyB0 eSAoPykuICBYZXQgdHJlbiBwaHVvbmcgZGllbiBuZ3V5ZW4gdGFjIHF1YW4gDQpseSBjaG8gdGhh eSBkaWV1IG5heSBraG9uZyB0b3QgdmkgTmd1eWVuIFRoYW5oIFBodW9uZyBkYSB0aGF5IGRvaSBu aGllbSBzbyBtb3QgY2FjaCBsaWVuIHR1YyB0cm9uZyBtb3QgdGhvaSBnaWFuIHR1b25nIGRvaSBu Z2FuLCBjbyBkYSBraG9uZyBjbyBnYW4gYm8gdm9pIG5odW5nIGNvbmcgdHkgY28gZGFuZyBsYW0u ICBDdW5nIGNvIHRoZSBjbyBraWVtIG5oaWVtIGNhYyBjaHVjIHRyYWNoIGxhbmggZGFvIG8gY2Eg YmEgY29uZyB0eSBraGFjIG5oYXUgDQooPykuICBOaHVuZyBjb25nIHR5IGJvIG5oaWVtIGNvIGto b25nIGJpZXQgY2FuIGN1IHZhbyBkYXUgZGUgdGluaCByYSBkdSB0aG9pIGdpYW4gdmEga2luaCBu Z2hpZW0gY2hvIGNvIGRhbSB0cmFjaCBjaHVjIHZ1IHBobyBnaWFtIGRvYywgZ2lhbSBkb2MgdmEg Y2h1IHRpY2ggY29uZyB0eSBjdWEgaG8/ICANCg0KTmh1bmcgbmd1b2kgcXVhbiBzYXQgdmEgcGhh biB0aWNoIHRpbmggaGluaCBWaWV0IE5hbSBkYSBuZXUgcmEgbmdoaSB2YW4gbGEgY29uZyB0eSBs aWVuIGRvYW5oIEhvbGNpbS1WaWV0bmFtLCBjb25nIHR5IFZpZXRuYW0gSG9sZGluZyBBc3NldCBN YW5hZ2VtZW50LCB2YSBjb25nIHR5IFF1eSANCmRhdSB0dSBCYW4gVmlldCAtIFZpZXQgQ2FwaXRh bCBGdW5kIE1hbmFnZW1lbnQgaGllbiB0YWkgY2hpIGxhICJuaHVuZyBzYW4gbmhhIGN1YSBUaHUg VHVvbmcgY29uZyBhbiBOZ3V5ZW4gVGFuIER1bmciLiAgDQoNCk1vdCBjYWNoIHF1YSBybyBsYSBt b3Qgc2luaCB2aWVuIG1vaSByYSB0cnVvbmcgbGFtIHZpZWMgY2h1YSB0cm9uIGJvbiBuYW0gbmh1 IE5ndXllbiBUaGFuaCBQaHVvbmcgdGhpIGxhbSBzYW8gY28gY28gZHVvYyBtb3QgdG9uZyBzbyBj byBwaGFuIHJhdCBsb24gZGUgZHVvYyBuYW0gZ2l1IGNodWMgQ2h1IHRpY2ggaG9pIGRvbmcgcXVh biB0cmkgY29uZyB0eSBxdXkgZGF1IHR1IEJhbiBWaWV0LiAgQ2hvIG5lbiBtb2kgbmd1b2kgY2hh YyBjaGFuIHRhaSANCnNhbiBraWEgbGEgY3VhIGNoYSBjbyAtIFRodSB0dW9uZyBOZ3V5ZW4gVGFu IER1bmcsIGRhIG11b24gdGVuIHR1b2kgdmEgbXVvbiBiYW4gdGF5IGN1YSBjb24gZ2FpIGRlIHJ1 YSB0aWVuIHRoYW0gbywgdGhhbSBuaHVuZyB2YSBOZ3V5ZW4gVGhhbmggUGh1b25nIGRhIGR1bmcg c28gdHUgYmFuIGtlY2ggc3Uga2lhIGRlIGRhdSB0dSBjb25nIGtoYWkgbyB0cm9uZyBudW9jLiAN Cg0KTyB0cm9uZyBjYSBudW9jIFZpZXQgTmFtIGhpZW4gbmF5LCBjYWMgcXVhbiB0aGFtIGRhIHRh byByYSBtb3QgdGh1IGNodSBuZ2hpYSB0dSBiYW4gZ2lhIHRvYyB2YSBubyBkYW5nIGR1b2MgYXAg ZHVuZyB0cmlldCBkZSByYW8gcmlldC4gVm8gaGluaCBjaHVuZywgaG8gdHUgYm9jIGxvIGNobyB0 aGF5IHJvIG1vdCANCmhpbmggYW5oIHhhIGhvaSBkYSBkYW5nIGJpIG5hbiBkb2MgdGFpIGNhaSB0 cmksIG5odW5nIGtlIG5odW5nIGNoYSBtZSBob2FjIGFuaCBjaGkgZW0gZGFuZyBjYW0gcXV5ZW4g dGhvbmcgdHJpIHhhIGhvaS4gDQpHaWEgZGluaCBkb25nIGhvIGN1YSBjYWMgcXVhbiB0aGFtIGdp YXUgbGVuIHJhdCBuaGFuaC4gTW90IGNhY2ggaGllbiBuaGllbiBsYSBvIHBoaWEgc2F1IGNhaSBz dSBraW5oIGRvYW5oIGR1IGxvYWkgZG8gbHVvbiBsdW9uIHBoYWkgY28gYm9uZyBkYW5nIGN1YSBj aGEgbWUgaG9hYyBhbmggY2hpIA0KZW0gZGF5IHF1eWVuIHRoZSBkdW9uZyB0aG9pIGN1YSBobywg ZHVhIGxhaSBuaHVuZyBob3AgZG9uZyBraW5oIGRvYW5oIGtpZW0gZHVvYyByYXQgbmhpZXUgdGll biwgbmh1bmcgbW9pIHF1YW4gaGUgbXVhIGJhbiBraWVtIGxvaSBkZSBkYW5nIGNobyBnaWEgdG9j IGhvLiANCg0KVGh1YyB0cmFuZyBjdWEgY2EgbmVuIGtpbmggdGUgdGhpIHRydW9uZyBkaW5oIGh1 b25nIFhIQ04gY3VhIFZpZXQgTmFtIGxhIGdpYSB0b2MgY3VhIHF1YW4gY2h1YyBjbyB0aGUgbmhh bmggY2hvbmcgdGhhdSB0b20gdGF0IGNhIG5odW5nIG5nYW5oIGtpbmggZG9hbmggcXVhbiB0cm9u ZyBjdWEgZGF0IG51b2MsIHR1IHRydW5nIHVvbmcgeHVvbmcgdGFuIGNhYyBkaWEgcGh1b25nLg0K IE8gZGF5IGNoaSBuZXUgdmkgZHUgdmFpIHRlbiB0dW9pIHRpZXUgYmlldSBub2kgYmF0IHRyb25n IGNvbmcgY3VvYyB0aHVjIGhpZW4gY2h1IHRydW9uZyB0aWNoIHR1IHR1IGJhbiBnaWEgdG9jOyBt b3QgY2FjaCBjdSB0aGUgbGEgTGUgTmFtIFRoYW5nIGNvbiB0cmFpIGN1YSBMZSBEdWMgVGhvIG5h bSBxdXllbiBraW5oIGRvYW5oIEJvIEJ1dSBjaGluaCBWaWVuIHRob25nOyBMZSBNYW5oIEhhIGNv biB0cmFpIGN1YSBMZSBEdWMgQW5oIG5hbSANCnF1eWVuIGtpbmggZG9hbmggU28gQnV1IGNoaW5o IC0gVmllbiB0aG9uZyB0aGFuaCBwaG8gSG8gQ2hpIE1pbmg7IE5nbyBIb2FuZyBIYWkgY29uIHJl IGN1YSBOb25nIER1YyBNYW5oIGxhbSBxdWFuIGx5IHBob25nIHR1IHZhbiBQTVUxODsgbm9pIGJh dCBuaGF0IGxhIE5ndXllbiBUaGFuaCBQaHVvbmcgY29uIGdhaSBjdWEgZHVvbmcga2ltIFRodSB0 dW9uZyBjb25nIGFuIE5ndXllbiBUYW4gRHVuZyBsYW0gUGhvIA0KR2lhbSBkb2MgdGFpIGNoYW5o IGN1YSBjb25nIHR5IGxpZW4gZG9hbmggSG9sY2ltLVZpZXRuYW0sIGxhbSBHaWFtIGRvYyBkYXUg dHUgY3VhIGNvbmcgdHkgVmlldG5hbSBIb2xkaW5nIEFzc2V0IE1hbmFnZW1lbnQsIHZhIGxhbSBD aHUgdGljaCBIRFFUIGN1YSBjb25nIHR5IFF1eSANCmRhdSB0dSBCYW4gVmlldCAtIFZpZXQgQ2Fw aXRhbCBGdW5kIE1hbmFnZW1lbnQuIFZhIGRpIG5oaWVuLCBjb24gcmF0IG5oaWV1ICJjb24gb25n IGNoYXUgY2hhIiBraGFjIG51YSBkYW5nIGR1b2MgbGFtIGNodSBjYWMgY2F5IHhhbmcsIGNhYyB0 aWVtIGtpbSBob2FuLCBjYWMgc2lldSB0aGksIGNhYyBraGFjaCBzYW4sIGNhYyBjYW8gb2MsIHYu di4uLiBvIGtoYXAgY2FjIHRpbmggdGhhbmggdHJvbmcgbnVvYy4NCiANCkNodSBuZ2hpYSBtYXUg ZGljaCBvIFZpZXQgTmFtIChjaHUgbmdoaWEgbXVhIGJhbiBraWVtIGxvaSkgY2FuZyBuZ2F5IGNh bmcgbG8gcm8gdGluaCBjYWNoIGRvYyBxdXllbiBjdWEgZ2lhIHRvYyBxdWFuIGNodWM7IHRhbyBy YSBtb3QgdGFuZyBsb3AgdGhvbmcgdHJpIHZvaSBuaGlldSB1dSBkYWkgY2hvIA0KZ2lhIHRvYywg Y2FuZyBuZ2F5IGNhbmcgZ2lhdSBjbyBiYXQgdGh1b25nLCB2YSBjYW5nIGNhY2ggYmlldCB2b2kg ZGFpIGRhIHNvIG5oYW4gZGFuLiBSbyByYW5nLCBuZW4ga2luaCB0ZSB0aGkgdHJ1b25nIGRpbmgg aHVvbmcgeGEgaG9pIGNodSBuZ2hpYSBjdWEgVmlldCBOYW0gbWFuZyBiYW4gY2hhdCBkb2MgdGFp ICJkYW5nIHRyaSBkdW9jIHRhbmcgY3VvbmcgZ2lhIGRpbmggdHJpIi4gIA0KDQpNb3QgdGhpIGR1 IGN1IHRoZSBjdWEgIm5lbiBraW5oIHRlIHRoaSB0cnVvbmcgZGluaCBodW9uZyB4YSBob2kgY2h1 IG5naGlhIiBjbyBiYW4gY2hhdCAiZGFuZyB0cmkgZHVvYyB0YW5nIGN1b25nIGdpYSBkaW5oIHRy aSIgZHVvYyBuZXUgcmEgZGF5IGxhIGNoYSBjb24gZHVvbmcga2ltIFRodSBUdW9uZyBjb25nIGFu IE5ndXllbiBUYW4gRHVuZzsgbmd1b2kgY2hhIG5hbSBxdXllbiBxdWFuIGx5IG5oYSBudW9jLCBu Z3VvaSBjb24gbmFtIA0KcXV5ZW4ga2luaCBkb2FuaCB0cm9uZyBsYW5oIHZ1YyBraW5oIHRlIHF1 YW4gdHJvbmcgdmEgZGF1IHR1IGNodW5nIGtob2FuOyBuaGF0IGxhIHRyb25nIG1vdCBtb2kgdHJ1 b25nIGtpbmggZG9hbmggdGhpZXUgdGluaCBjYWNoIG1pbmggYmFjaCwga2hpZW4gY2hvIG5ndW9p IGNvbiBsb2kgZHVuZyANCnF1eWVuIGx1YyBjdWEgbmd1b2kgY2hhLCB2YSBuZ3VvaSBjaGEgY3Vu ZyBsb2kgZHVuZyBiYW4gdGF5IGN1YSBuZ3VvaSBjb24gZGUgcnVhIHRpZW4gdGhhbSBvLCB0aGFt IG5odW5nLiAgDQooVGh1eS1UcmlldSAxNi8wNy8yMDA4KQ0KDQpodHRwOi8vd3d3LnZpZXRiYW8u Y29tLz9wcGlkPTQ1JnBpZD00Jm5pZD0xMDU1ODMgNC83LzIwMDcsIDEyOjAyOjAwIEFNIEhPQU5H IFRIQU5IIA0KDQpUYWkgc2FuIG5vaSBjdWEgTmd1eWVuIFRhbiBEdW5nIC0gRGllbSBtYXQgYm9u IHRoYW0gbmh1bmcgdGFpIEtpZW4gR2lhbmcgICANCg0KVHUga2hpIERDU1ZOIGtlIGtoYWkgdGFp IHNhbiBjYW4gYm8sIGNodWEgYWkgZGUgY2FwIGRlbiBvIGRhdSBtYSBUaHUgdHVvbmcgTmd1eWVu IFRhbiBEdW5nIGNvIG5oaWV1IHRhaSBzYW4gbmh1IG5oYSBoYW5nLCBraGFjaCBzYW4sIGRhdCBk YWksIGRvYW4geGUgdGF4aSB2YWkgDQp0cmFtIGNoaWVjLCB0YXUgZGF0LCBtdWEgbmhhLCBnb2kg bmhhIGJhbmcgbnVvYyBuZ29haS4gTmh1bmcgTmd1eWVuIFRhbiBEdW5nIGhvIGhhbyBjaG9uZyB0 aGFtIG5odW5nICJxdXlldCBsaWV0IiE/DQoNClZheSBBSS4uLiBjaG9uZyBBSS4uLi5raGkgc3Ug dGhhdCBsYTogTmhhIHJpZW5nIGN1YSB0aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIHRhaSBLaWVu IEdpYW5nIC0ga2h1IGRhdCByb25nIGhvbiAzLjAwMCBtMiANCm5heSB0b2EgbGFjIHRhaSBkdW9u ZyBOZ3V5ZW4gVHJ1bmcgVHJ1YywgcGh1b25nIEFuIEhvYSAtIFJhY2ggR2lhLCBuZ3VvbiBnb2Mg bGF5IHJ1b25nIGN1YSBkYW4gdm9pIGNhaSBjbyBsYSBRdXkgaG9hY2guLi4uDQp0aG9pIDMgRHVu ZyBjb24gbGFtIGJpIHRodSB0aW5oIHV5IEtpZW4gR2lhbmcsIG5heSAzIER1bmcgbGVuIGNodWMg VGh1IHR1b25nIGR1b2MgdGhlbSBuaGEgbW9pIG8gU2FpR29uLCBjb24gbmdvaSBuaGEgbmF5IA0K Y2hvIGNvbmcgdHkgYmFvIGhpZW0gQmFvIE1pbmggdGh1ZSBsYWkuDQoNCkNheSB4YW5nIG5heSBj dWEgbWUgcnVvdCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIChjYWNoIG5oYSBjdWEgQmEgRHVu ZyBjaHVhIGRheSA1MG0pIG5nYXkgZGF1IGNhdSBRdWF5IC0gQW4gaG9hIC0gUmFjaCBHaWEuIERh eSBsYSBjYXkgeGFuZyBjaGkgYmFuIHRyYSBoaW5oIHRob2kgY2h1IA0KdGh1YyBzdSBsYSBub2kg Y2h1YSB4YW5nIGN1bmcgY2FwIGNobyBEb2FuIHhlIHRheGkgaGFuZyB0cmFtIGNoaWVjIGN1YSBU dSBUaGFuZyAoZW0gY3VhIEJhIER1bmcpIHZhIEJhIER1bmcgZGFuZyBuZ2FuZyBkb2Mga2hhcCBj YWMgbmVvIGR1b25nIE1pZW4gVGF5Lg0KDQpEb2FuIHhlIFRheGkgY3VhIHRhcCBkb2FuIEJhIER1 bmcgKyBUdSBUaGFuZyBjbyBtYXQga2hhcCBjYWMgdGluaCBtaWVuIE5hbSBjbyBjYWMgdGVuIG5o dSBHaWEgVGhhbywgUGh1b25nIFRyaW5oLCBIb2FuIE15Li4uLiBEYXUgbmdvbiBuZ2FuZyBjaGll bSBsb25nIGxlIGR1b25nIHRyb25nIA0KdGhhbmggcGhvIG5odW5nIGNoYW5nIGNvIGFuaCBjb25n IGFuIGdpYW8gdGhvbmcgbmFvIGRhbSBkZW4gaG9pIHRoYW0gbmh1IG5odW5nIGNoaWVjIHhlIGto YWMuLi4gRGF5IGxhIG5odW5nIGxvaSB0aGUga2luaCBkb2FuaCAiUXV5ZW4gTHVjIi4NCg0KTmh1 bmcgZGF5IG5oYSBuYXkgY3VhIG9uZyBOZ3V5ZW4gSHV1IEtoYWkgbW90IGNhbiBibyBjYW8gY2Fw IHRyb25nIHRodW9uZyB2dSBUaW5oIHV5IChhbmggY2h1cCBrZW0gdGhlbykuIE9uZyBLSEFJIGRh IGR1bmcgcXV5ZW4gbHVjIHRoYW0gbmh1bmcgaGFuZyBjaHVjIHR5IGRvbmcgdHUgDQpjYWMgInBo aSB2dSIgbXVhIHRhdSBIYWkgQXUga2Uga2hvbmcgZ2lhLCBkdWMga2hvZXQgZ2lhbiBsYW4gdHJv bmcgeGF5IGR1bmcgY29uZyB2aWVuIEFuIEhvYSAtIEtpZW4gR2lhbmcuIE9uZyBLaGFpIGRhIGNh dSBrZXQgdm9pIG5oaWV1IGNhbiBibyB0cm9uZyB0aW5oIHV5LCB4ZSBxdWFuZyANCnRydW9uZyBM YWMgSG9uZyBkZSBiYW4gbmVuIG5oYSwgZG9uZyB0aG9pIGR1bmcgdGh1IGRvYW4gY2hpZW0gZG9h dCBuaGlldSBuZW4gY28gdmkgdHJpICJuZ29uIiBuaHUgaGluaCB0cmVuLiBUcm9uZyBjYWMgdnUg bmF5IGRldSBjbyBzdSBuaHVuZyB0YXkgY3VhIFR1IFRoYW5nIChlbSBydW90IE4uVC4gDQpEVU5H KS4gRHUgbHVhbiByYXQgcGhhbiBubyB2YSB0cm9uZyBjaG8gZHVhIHZ1IGFuIG5heSByYSBhbmgg c2FuZy4gTmh1bmcgdGF0IGNhIGRhIA0KZHVvYyBOZ3V5ZW4gVGFuIER1bmcgdmUgImRhbiB4ZXAi IG9uIHRob2EuIFRoZSBsYSB2dSBhbiBvbmcgS2hhaSBiaSBjaGltIHh1b25nLi4uLiBOYXkgb25n IEtoYWkgZGEgZHVvYyBkaW5oIGN1IG8gTXk/IA0KDQpCZW5oIHZpZW4gQmluaCBBbiAtIFJhY2gg R2lhIG1vaSBkdW9jIHhheSB0aGVtIGtoaSBkYW5nIHZpZW4gbGFtIGtpbmggdGUgdHUgbmhhbj8h IFRoZW8gdGluIGR1b2MgYmlldCB0dSBub2kgYm8gdHJvbmcgaG9pIGRvbmcgcXVhbiB0cmkgdGhp IGNvIGRlbiA4MCUgY28gZG9uZyBsYSBjYW4gYm8gY2FvIA0KY2FwIGN1YSB0aW5oIEtpZW4gR2lh bmcgY28gcGhhbiBodW4ga2hvbmcgZHVvaSA1IHR5IGRvbmcsIG5odSBoYWkgb25nOiBCYSBUYW4g MDUgdHkgDQooUGhvIENodSB0aWNoIFRpbmgpLCBUcmFuIExhbSAxMCB0eS4uLiAoTmd1eWVuIFBo byBDaHUgdGljaCBUaW5oKS4uLiBEYXkgbGEgbmh1bmcgY28gaG9pIHRvdCBjaG8gY2FjIHF1YW4g cnVhIHRpZW4uDQoNCkJlbmggdmllbiBjbyB0ZW4gQmluaCBBbi4uLiBuaHVuZyBuZ3VvaSBiZW5o IGtoaSBsb3QgdmFvIGRheSB0aGkga2hvbmcgImJpbmggYW4iIGNodXQgbmFvLCBib2kgbmh1bmcg dG9hIHRodW9jIGRvIGJhYyBzaSBjdWEgYmVuaCB2aWVuIG5heSBrZSB0b2EgbXVhIG8gbmdvYWkg a2hvbmcgY28uLi4gY2hpIA0KY28gYmFuIHRydW9jIGNvbmcgYmVuaCB2aWVuIEJpbmggQW4gbWEg dGhvaSEuLi4gTm9pIGNodW5nIHRhcCBkb2FuIFF1YW4gdGhhbSBsYXAgcmEgDQpjYWkgYmVuaCB2 aWVuIG5heSBkZSBodXQgbWF1IG5ndW9pIGJlbmgsIHR1IHZpZWMga2hhbSBjaHVhIGJlbmggY2hv IGRlbiB2aWVjIGJhbiB0aHVvYy4uLiANClRvYW4gY2FuaCBraHUgQmVuaCB2aWVuIEJpbmggQW4g KHRhaSBSYWNoIEdpYSAtIEtpZW4gR2lhbmcpIChhbmggY2h1cCBrZW0gdGhlbykgLSBEYXkgbGEg YmVuaCB2aWVuIDExIHRhbmcgY3VhIHR1IG5oYW4gIlF1YW4gVGhhbSIgdnVhIGR1b2MgeGF5IHRo ZW0uLi4uDQoNClR1IGtoaSAiZGFuZyIgY2hvIHBoZXAgbGFtIGtpbmggdGUgdHUgbmhhbiBjYWMg cXVhbiBjaHVjIGN1YSBLaWVuIEdpYW5nIGRhICJSdWEgVGllbiIgYmFuZyBjYWNoIHhheSBiZW5o IHZpZW4gdHUgbmhhbiwgbmhhIGhhbmcsIGtoYWNoIHNhbiwga2luaCBkb2FuaCBiYXQgZG9uZyBz YW4sIGtpbmggDQpkb2FuaCBjb25nIHR5IHhlIHRhY3hpLCB0YXUgYmllbiwgeGFuZyBkYXUgdi52 Li4uIFRpZW4gY2FjIHF1YW4gdGhhbSBuaHUgbnVpLi4uIA0KTW9pIGRheSBjbyB2YWkgdG8gYmFv IFF1b2MgZG9hbmggY28gZHVhIHRpbiBvbmcgYmkgdGh1IHRpbmggdXkgdGluaCBLaWVuIEdpYW5n IGxhIFRydW9uZyBRdW9jIFR1YW4gdHUgdGF5IGt5IHh1YXQgbmdhbiBxdXkgbmhhIG51b2MgY2hv IGNvbiBtaW5oIGRpIGhvYyBudW9jIG5nb2FpIA0KaG9uIDcwMCB0cmlldSBWTkQuLi4gbmh1bmcg ZGVuIG5heSBvbmcgdGEgdmFuIGJpbmggYW4sIHRyYWkgbGFpIGNvbiBkdW9jIGNhbiBibyBUVyBn aW9pIHRoaWV1IGxhIHVuZyBjdSB2aWVuIHNhbmcgZ2lhIGxhbSBkYWkgYmlldSBRdW9jIGhvaSBr aG9hIDEyIHRvaSENCg0KVGhvbmcgdGluIHR1IG5vaSBibyBjaG9wIGJ1IGN1YSB0aW5oIG5heSBj dW5nIGNobyBiaWV0ICJBbmggQmEgRHVuZy4uLiBtaW5oIiBzZSBuYW5nIA0KZG8gdGF0IGNhIGRh biBlbSByYSBIYSBOb2kuLi4gZGUgdGFvIHBoZSBjYW5oIGNobyBjYWkgZ2hlIFRodSB0dW9uZyBj dWEgQmEgRHVuZyB2dW5nIGNoYWMgaG9uLiANCg0KQ2FjIGNvIHF1YW4gdHJ1eWVuIHRob25nIHRy b25nIHZhIG5nb2FpIG51b2MgY2FuIGR1YSBuaHVuZyB0aW4gbmF5IGRlIG5ndW9pIGRhbiBkaWVt IA0KbWF0IG5odW5nIHRlbiB0aGFtIG5odW5nLCBydWEgdGllbiwgYm9jIGxvdCBkb25nIGJhbyBr aG9uZyB0aHVvbmcgeG90ISANCg0KaHR0cDovL3d3dy5kYXR2aWV0LmNvbS90aHJlYWRzLzE4NTY0 OS1TJUUxJUJCJUIxLXRoJUMzJUEwbmgtJUM0JTkxJUUxJUJBJUExdC1jJUUxJUJCJUE3YS1jJUMz JUExYy1jb24tbmclQzMlQTBpLVRoJUUxJUJCJUE3LVQlQzYlQjAlRTElQkIlOUJuZyEgQ2Fvbmd1 eWVuMjIwOSAxNyBKdWwgMjAxMA0KDQpTdSB0aGFuaCBkYXQgY3VhIGNhYyBjb24gbmdhaSBUaHUg VHVvbmchIA0KDQoxLy4gVFMuIE5ndXllbiBUaGFuaCBOZ2hpICgxOTc2KSAtIFBobyBoaWV1IHRy dW9uZyB0cnVvbmcgREggS2llbiBUcnVjIFRwLkhDTTogDQoNCkR1b2MgcGhhbiBjb25nIHBodSB0 cmFjaCBjb25nIHRhYyBkYW8gdGFvIHNhdSBkYWkgaG9jLCBjb25nIHRhYyBob3AgdGFjIFF1b2Mg dGUsIGNvbmcgDQp0YWMgZGFvIHRhbyBkYXAgdW5nIG5odSBjYXUgeGEgaG9pIHZhIG1vdCBzbyBj b25nIHRhYyB0aGVvIHV5IHF1eWVuIGN1YSBoaWV1IHRydW9uZy4gDQoNCk5vaSBkdW5nIGN1IHRo ZToNCg0KLSBUcnVjIHRpZXAgZGlldSBoYW5oIHZpZWMgeGF5IGR1bmcgY2h1b25nIHRyaW5oIGRh byB0YW8gY2FjIG5nYW5oIGN1YSBiYWMgc2F1IGRhaSBob2MgDQp0aGVvIGh1b25nIGRvaSBtb2ks IHRoaWV0IHRodWMgZG9pIHZvaSBuZ3VvaSBob2MuDQoNCi0gQ2hpIGRhbyB2YSB0aGVvIGRvaSBj b25nIHRhYyB4YXkgZHVuZyBrZSBob2FjaCBnaWFuZyBkYXksIHRob2kga2hvYSBiaWV1LCBraWVt IHRyYSB0aGkgDQpob2Mga3ksIG5hbSBob2MsIGJhbyB2ZSBsdWFuIHZhbiB0b3QgbmdoaWVwLCBs ZSBraGFpIGdpYW5nLCBsZSB0b25nIGtldCBuYW0gaG9jLg0KDQotIENodSB0cmkgY29uZyB0YWMg eHUgbHkga2V0IHF1YSBob2MgdGFwLCB4YWMgbmhhbiB0aG9uZyBiYW8ga2V0IHF1YSBob2MgdGFw LCB0aGVvIGRvaSB2aWVjIA0KY2FwIHBoYXQgY2FjIHZhbiBiYW5nIHRvdCBuZ2hpZXAgdmEga3kg Y2FjIGxvYWkgZ2lheSB4YWMgbmhhbiBsaWVuIHF1YW4gZGVuIGhvYyB2aWVuLg0KDQotIE5naGll biBjdXUgZGUgeHVhdCBtbyBjYWMgbmdhbmggZGFvIHRhbyBzYXUgZGFpIGhvYyBtb2kuIFRydW9j IG1hdCB1dSB0aWVuIG1vIGNhYyANCm5nYW5oIGRhbyB0YW8gc2F1IGRhaSBob2MgZGFwIHVuZyBj aG8gY29uZyB0YWMgcGhhdCB0cmllbiBkb2kgbmd1IGdpYW5nIHZpZW4gY3VhIE5oYSANCnRydW9u ZyBuaHU6IFhheSBkdW5nLCBNeSB0aHVhdCBDb25nIG5naGllcCwgS3kgdGh1YXQgaGEgdGFuZyBk byB0aGkuDQoNCi0gQ2hpIGRhbyB2YSB0cnVjIHRpZXAgdGh1YyBoaWVuIGNhYyBkZSBhbiB2ZSBk YW8gdGFvIGxpZW4ga2V0LCBkYW8gdGFvIHNvbmcgcGh1b25nIGJhYyANCkRhaSBob2MgdmEgU2F1 IERhaSBob2MuDQoNCi0gQ2hpIGRhbyB2aWVjIHhheSBkdW5nIGNodW9uZyB0cmluaCBkYW8gdGFv IGRhcCB1bmcgbmh1IGNhdSB4YSBob2kgdmEgbmdoaWVuIGN1dSBkZSANCnh1YXQgbW8gaGluaCB0 byBjaHVjIHRodWMgaGllbiBjaG8gcGh1IGhvcC4NCg0KLSBUcnVjIHRpZXAgdHJpZW4ga2hhaSBj YWMgY29uZyB0YWMgbGllbiBxdWFuIGRlbiBkdSBhbiB4YXkgZHVuZyBwaGFuIGhpZXUgVHJ1b25n IHRhaSANClRQLkRhIExhdCB2YSBUUC5DYW4gVGhvIHRoZW8gdXkgcXV5ZW4gY3VhIEhpZXUgdHJ1 b25nLg0KDQoyLy4gTmd1eWVuIFRoYW5oIFBodW9uZzoNCg0KLSAyNyB0dW9pLCB0dW5nIGR1IGhv YyBUaHV5IFNpIA0KDQotIEhpZW4gZGFuZyBsYSBjaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSBj dWEgUXVpIGRhdSB0dSBCYW4gVmlldCAoVmlldCBDYXBpdGFsIEZ1bmQgliANClZDRikgcXVpIG1v IHR1IDUwMCAtIDgwMCB0aSBkb25nLCBodXkgZG9uZyB2b24gY2h1IHlldSB0dSBjYWMgY2Egbmhh biB2YSBETiB0dSBuaGFuIHRyb25nIG51b2MuICAgDQoNCmh0dHA6Ly93d3cubGFuaGRhby5uZXQv ZGVmYXVsdC5hc3B4P3RhYmlkPTQ0MCZJRD0xMjM4NTAmQ2F0ZUlEPTQyOSANCg0KWSBraWVuIGN1 YSBDQkdWIHRydW9uZyBESCBLaWVuIFRydWMgVFAgSENNOg0KDQpQaGFpIGNoYW5nIGNvbiB0cmFp IFRodSB0dW9uZyBkaSBsZW4gYmFuZyBjaGluaCBkb2kgY2hhbiBtaW5oPyBUaGFuZyBjaHVjIHF1 YSBuaGFuaCEgDQoNCk5hbSBuZ29haSwgdG9pIHR1IFRheSBOZ3V5ZW4gdmUgY29uZyB0YWMgdGFp IHRydW9uZyBEYWkgaG9jIEtpZW4gdHJ1YyB0cCBIQ00uIFRvaSByYXQgDQpuZ2FjIG5oaWVuIGto aSB0aGF5IGNvIG1vdCBuZ3VvaSBjb24gcmF0IHRyZSAtIFRTLiBOZ3V5ZW4gVGhhbmggTmdoaSwg byB0dW9pIDMyLCBkYSBsYSANClRydW9uZyBiYW4gU2F1IGRhaSBob2MgdmEgUXVhbiBoZSBxdW9j IHRlIGN1YSBuaGEgdHJ1b25nLCB2YSBtb2kgZGF5LCBsYWkgZHVvYyBibyBuaGllbSANCmxhbSBQ aG8gaGlldSB0cnVvbmchIA0KDQpRdWFuZyBUdXllbiAtIE5ndXllbiBNaW5oIA0KRGFpIGhvYyBL aWVuIHRydWMgdGhhbmggcGhvIEhvIENoaSBNaW5oICgxMDo1NSwgMzEvMTIvMjAwOCkgDQoNCmh0 dHA6Ly93d3cuZGFuY2h1YS5ldS9pbmRleC5waHA/aWQ9MzczJm5vX2NhY2hlPTEmdHhfdHRuZXdz JTVCdHRfbmV3cyU1RD03NzAmdHlwZT05OCAxOS0wMy0wNyAxMjo0NiANCg0KQ29uIHRyYWkgb25n IE5ndXllbiBUYW4gRHVuZyBkaSBob2MgbyBNeSAtIGtpbmggcGhpIGNoaSB0cmEgbGEga2luaCBw aGkgY3VhIGNodW9uZyB0cmluaCBkYW8gdGFvIFRpZW4gc2kgY3VhIE5oYSBudW9jIHRhLiANCg0K aHR0cDovL3d3dy5kYXR2aWV0LmNvbS90aHJlYWRzLzEzNjM1My1UUy1keiVDMyVCNW0tTmd1eSVF MSVCQiU4NW4tVGhhbmgtTmdoJUUxJUJCJThCLWNvbi1OZ3V5JUUxJUJCJTg1bi1UJUUxJUJBJUE1 bi1EJUM1JUE5bmcgIE5QIDAzLTI0LTIwMDcgMTI6NTAgUE0gDQoNClRTIGR6b20gTmd1eWVuIFRo YW5oIE5naGkgY29uIGN1YSBOZ3V5ZW4gVGFuIER1bmcgDQoNClZhaSBuZXQgdmUgTmd1eWVuIFRo YW5oIE5naGkgY29uIFRodSB0dW9uZyBWTiBOZ3V5ZW4gVGFuIER1bmcgDQoNCk5hbSAyMDA2LCBr aGkgdGhvbmcgdGluIHZlIE5ndXllbiBUaGFuaCBOZ2hpIC0gY29uIGN1YSBOZ3V5ZW4gVGFuIER1 bmcgaG9jIHRhaSBNeSBiaSB0aWV0IGxvLCANCkR1bmcgZ2lhbyBsaWVuIGhvYW5nIGhvdCBnb2kg Y29uIHZlIFZOIG5nYXkgdmEgZHVuZyBxdXllbiBsdWMgZHVhIE5ndXllbiBUaGFuaCANCk5naGkg c2luaCBuYW0gMTk3NiB2ZSBEYWkgaG9jIEtpZW4gdHJ1YyAtIHRoYW5oIHBobyBIQ00uIE5ndXll biBUaGFuaCBOZ2hpIGtoaSANCnNvbmcgYmVuIE15IHRoaSBhbiBjaG9pIHRyYWMgdGFuZyBjbyBo b2MgaGFuaCBoYXkgY28ga2luaCBuZ2hpZW0gZ2kgZGF1IG1hIHZlIFZOICANCmR1b2MgbmhhbiBu Z2F5IGNodWMgQ2h1IG5oaWVtIGtob2EgU2F1IERhaSBob2MsIG1vdCBjaHVjIHZ1IGRlIGtpZW0g cmEgdGllbi4gDQoNCkRpYSBjaGkgZGFpIGhvYyBraWVuIHRydWMgdHAgSENNIGxhIDE5NiBQYXN0 ZXVyIC0gUXVhbiAzIC0gVGhhbmggcGhvIEhvIENoaSBNaW5oOyBzbyANCnRlbGVwaG9uZTogKDA4 ICkgODIyMjc0ODsgIHNvIGRpZW4gdGhvYWkgY3VhIGNvIHNvIGtpbmggZG9hbmggY3VhIHRydW9u ZzogMDguODI5NTg4MyANCmhvYWMgMDguIDgyOTU4OTA7IHNvIHBob25lIHRydWMgdGllcCBjdWEg Tmd1eWVuIFRoYW5oIE5naGkgbGE6IDA4LjgyNDQ2NzcgDQoNCkN1bmcgdGhlbyBjYWMgdGluIHR1 YyBkdW9jIHRpZXQgbG8gdGhpIGNvIG1heSB2dSBubyB0YWkgdmFpIGtodSB2dWMgbyBTRyBjdW5n IGRvIA0KTmd1eWVuIFRhbiBEdW5nIHJhIGxlbmggZGFuIGNhbmggZGUgdGFwIHRydW5nIENBIHZh byB0aW5oIHRyYW5nIGJhbyBkb25nIHNhbiBzYW5nIA0KdGFjIGNoaWVuLCBkZSBiYW8gdmUgY2hv IG1pbmggdmEgZHVuZyBjYXUgY2h1eWVuIG5heSBsZW4gZGUgbGF5IGx5IGRvIGRhbiBhcCBjYWMg DQpuaGEgZGF1IHRyYW5oIGRhbiBjaHUgdHJvbmcgbnVvYy4gIA0KDQpOZ3V5ZW4gVGFuIER1bmcg ZGFuZyB0byBjYWkgcXV5ZW4gaGFuaCBDQSB0cmkgdHJlbiB0b2FuIGxhbmggdGhvLCBjYWMga2h1 IHZ1YyBtaWVuIA0KdGF5IHF1YW4ga2h1IDkgdmFuIGJpIENBIGRhdCB0cm9uZyB0aW5oIHRyYW5n IGdpb2kgbmdoaWVtLCB0dSB0aGFuZyAxMC8yMDA2IGRlbiBuYXkgdmFuIA0KY29uIHR1YW4gdHJh IGJhbiBkZW0gdHUgMTEgZGVtIGRlbiA0IGdpbyBzYW5nLg0KDQpEb2kgbmd1b2kgY2hpIHNvbmcg MSBsYW4sICJjaGV0IHZpbmggaG9uIHNvbmcgbmh1YyIgbW9uZyBhbmggY2hpIGVtIENBIGhheSB0 aW0gY29uIA0KZHVvbmcgZGkgY2hvIGNoaW5oIG1pbmggbWEgZ2l1cCBkbyBuaGFuIGRhbiwgY3V1 IGxheSBkYXQgbnVvYyB0cm9uZyBnaWFpIGRvYW4gbmF5LiANCg0KaHR0cDovL3d3dy5kYXR2aWV0 LmNvbS90aHJlYWRzLzE3NTk2Mi1Db24tZ2FpLU5ndXllbi1UYW4tRHVuZy1Dby1jaHVhLWRhLTMt dGhhbmctY3VvaS1WaWV0LWtpZXUtTXkgDQoNCkNvbiBnYWkgTmd1eWVuIFRhbiBEdW5nIGNvIGNo dWEgZGEgMyB0aGFuZyBjdW9pIFZpZXQga2lldSBNeS4NCg0KWSBraWVuIGRvYyBnaWE6DQoNCk1p bmggTC4gKEhhIE5vaSk6IE5ndXllbiBUaGFuaCBQaHVvbmcgMjcgdHVvaSBkYSB0aGFuaCBob24g dm9pIE5ndXllbiBCYW8gSG9hbmcsIA0KVmlldCBraWV1IE15IDM2IHR1b2ksIGNvIGNodWEgcm9p LCBidW5nIGVuaCByYSByb2kuLi4gZGEgMyB0aGFuZyBuYXkgZGFuIEhhIE5vaSBkYSBiYW4gDQp0 YW4gcmF0IG5oaWV1Li4uVGhhbmcgcmUgZGEgY28gdm8gRGFpIExvYW4gbyBNeSwgcm9pIGx5IGRp IA0KDQpSLk06IE9uZyBEdW5nIG5vaSBkb2ksIGNvbiBnYWkgbGF5IGNob25nIFZpZXQga2lldSBN eSBjbyBnb2MgVGkgTmFuIG1hIGxhaSBkb2kgdHJhOiANCi4uLi4uLiBNb3QgY2F1IHBob25nIHZh biBkdW9jIG5ldSBsZW4gdm9pIG5vaSBkdW5nIG5ndXllbiB2YW4gbmh1IHNhdTogIlRodWEgVGh1 IHR1b25nLCANCmNvIHRvIGJhbyBkdWEgdGluIE5nYWkgY28gaGFpIGNvbiBkaSBob2MgbyBNeSB2 YSBjb24gZ2FpIE5nYWkgY28gY2hvbmcgVmlldCBraWV1LiBEaWV1IA0KZG8gY28gbGFtIGFuaCBo dW9uZyBkZW4gTmdhaSBraG9uZz8iIFZhIE5ndXllbiBUYW4gRHVuZyBkYSB0cmEgbG9pOiAiTmh1 IHRyZW4gdnVhIA0Kbm9pLCB0b2kgY2hpIGNvIG1vdCBjb24gZGkgaG9jIHRhaSBNeS4gQ2hhdSBk YSBob2MgdmEgbmdoaWVuIGN1dSwgYmFvIHZlIHRoYW5oIGNvbmcgbHVhbiANCmFuIHRpZW4gc2kg a2hvYSBob2MgY2h1eWVuIG5nYW5oIHhheSBkdW5nIGRhbiBkdW5nLiBDaGF1IGRhIHRybyB2ZSB2 YSBkYW5nIHBodSB0cmFjaCANCmRhbyB0YW8gc2luaCB2aWVuIHNhdSBkYWkgaG9jIHRhaSBEYWkg aG9jIEtpZW4gdHJ1YyBUUC5IQ00uIENvbiBjb24gZ2FpIHRvaSBraG9uZyBkaSANCmhvYyB0YWkg TXksIHZhIGNoYXUgY3VuZyBjaHVhIGNvIGdpYSBkaW5oLiBUaG9uZyB0aW4gdHJlbiBsYSBraG9u ZyBkdW5nLiIgDQoNCk1pY2hhZWwgVHJhbg0KDQpUaGVvIGJhbiB0aW4gY3VhIGJhbyBTYWkgR29u IFRpZXAgVGhpIHRyb25nIG51b2MgdGhpIG5nYXkgQ2h1IG5oYXQgMTYvMTEvMjAwOCB2dWEgcXVh IA0KY29uIGdhaSBjdWEgTmd1eWVuIFRhbiBEdW5nIGxhIE5ndXllbiBUaGFuaCBQaHVvbmcgMjcg dHVvaSBkYSB0aGFuaCBob24gdm9pIA0KTmd1eWVuIEJhbyBIb2FuZywgVmlldCBraWV1IE15IDM2 IHR1b2kuIE5ndXllbiBCYW8gSG9hbmcgbG9uIGxlbiBvIE15IHZhIG1hbmcgDQpxdW9jIHRpY2gg TXkuIE5ndXllbiBUaGFuaCBQaHVvbmcgY3VuZyB0dW5nIGR1b2MgZGFvIHRhbyB0YWkgTXkuIERh bSBjdW9pIGR1b2MgdG8gDQpjaHVjIHRhaSBDYXJhdmVsbGUgSG90ZWwsIFZpZXQgTmFtLiANCg0K REs6IGRhbiB0b2MgdGEgY29uIGtobyBzbyB2b2kgbmh1bmcgdGVuIG1hIGRhdSBjaGluaCB0cmkg dGhhbSBuaHVuZzsgY2hpIGxvIHZpbmggdGhhbiBwaGkgZGEsIA0Ka2hvbmcgdHUgbW90IHRodSBk b2FuIGRlIGhlbiBuYW8gY2EuLi4gVGhvaSB0aGUgdGhlIG5hbyBjaHVuZyBjdW5nIGRvaSBtYXUg bmh1IHRhYyBrZSANCmRlIHRpZXAgdHVjIGh1b25nIHRodSBuaHVuZyBkYWMgcXV5ZW4gZGFjIGxv aSB0cmVuIG1vIGhvaSBudW9jIG1hdCBjdWEgbmd1b2kgZGFuIG5naGVvIGtoby4gDQpCYW4gY2hh dCBjdWEgY2h1bmcgdGhhdCBsYSBiaSBvaSBuaHVuZyB2YW4gY28gdGhvYSBsb3Agc29uIHBoYW4g cmUgdGllbiAiZGFvIGR1YyBjYWNoIG1hbmciDQoNCkROOiBUcnVtIGNvbmcgYW4gTmd1eWVuIFRh biBEdW5nIGtob24gdGhhdCwgaGV0IHlldSBudW9jIFZpZXQgTmFtIFhIQ04gdmEgYmF0IA0KZGF1 IHlldSBudW9jIE15LCBraGkgY28gYmllbiBsYSBjaGFuZyByZSBxdXkgc2UgYmFvIGxhbmggY2Eg Z2lhIGRpbmgsIGxhbmcgbnVvYyBOZ3V5ZW4gDQpUaHVhIFR1b25nIHNhbmcgTXkgY2FpIHJ1cC4g RGF1IHRpZW4gbGEgY2hhbmcgcmUgc2UgbGFtIHRodSB0dWMgY2hvIGNvIHZvIE5ndXllbiANClRo YW5oIFBodW9uZyBzYW5nIE15IHRydW9jIGRlIHR1IHR1IGNvIHZvIHNlIGxheSBxdW9jIHRpY2gg TXkuIFRoYSBobyBtYSBsdXUgdm9uZyEhISANCg0KTVQ6IFRyb2kgZGF0LCBIb3RlbCBDYXJhdmVs bGUsIGNvbiBjYWkgdHUgYmFuIGRvIGNvIGtoYWMsIHNhbmcgdHJvbmcgcXVhLiBRdWFuIHRoYW0g DQpidW5nIHRheSBsYSBjbyBuZ3VvaSBkYW5nIGRvbGxhcnMsIHRyb25nIGtoaSBuZ3VvaSBkYW4g bmdoZW8ga2hvLCB0cm9uZyBudW9jLCB0cmUgY29uIGRpIGx1b20gDQp0aHVuZyByYWMgdGltIHRo dWMgYW4hIA0KDQpbWGVtIHRoZW0gdGFpIDogaHR0cDovL3ZpZXRuYW1lc2V0YWxrLmNvbS9pbmRl eC5waHA/Li4ubT02Mzg3JnR5cGVzPTFdDQoNCmh0dHA6Ly93d3cudGhlZ2lvaW5ndW9pdmlldC5u ZXQvc2hvd3RocmVhZC5waHA/dD04MTM1IE1MIDA2LTIxLTIwMDksIDA5OjM3IFBNDQoNCk5oYSBu Z2hpIG1hdCBjdWEgY29uIGdhaSBOZ3V5ZW4gVGFuIER1bmcgDQoNClRyb25nIGtoaSBkYW4gY2h1 bmcgdGhpIGRvaSByYWNoIGNvIGN1YywgaGF5IHhlbSBjYWMgdGVuIHR1IGJhbiBkbywgY2h1bmcg c29uZyB0cmVuIG5odW5nIGx1YSANCnhhIGhvYSBzdW5nIHN1b25nIGJpZXQgY2h1bmcgbmFvOyBu aG8gZG9uZyB0aWVuIGJhbiBkbyBhbiBjYXAgY3VhIGNvbmcsIHRoYW0gbmh1bmcsIGJhbiBudW9j LCANCnRhaSBuZ3V5ZW4gLi4ubmh1bmcga2UgY2hvcCBidSBjbyBjdW9jIHNvbmcgdnVvbmcgZ2lh IGhvbiBjYWMgSG9hbmcgRGUgdGhvaSB4YSB4dWEuLi4gDQpOaGEgbmdoaSBtYXQgY3VhIE5ndXll biBUaGFuaCBQaHVvbmcgKGNvbiBnYWkgTmd1eWVuIFRhbiBEdW5nKSB2b2kgY2hvbmcgbGEgTmd1 eWVuIEJhbyBIb2FuZyANCm8gTmhhIFRyYW5nIGtob25nIGtoYWMgZ2kgbmhhIGN1YSB0YWkgdHUg byBjYWMgbnVvYyBuZ29haSBxdW9jIChhbmggY2h1cCBrZW0gdGhlbykuIA0KDQpEdW5nIGxhIGJv YyBsb3QgZGFuIG5naGVvIHRhbiB4dW9uZyB0dXkgZGUgc29uZyB0cm9uZyB4YSBob2EgdnVvbmcg Z2lhOyBhaSBjaGV0IG1hYyBiYXksIGN1IA0Kdm8gdmV0IGNobyBkYXkgdHVpIHRoYW0ga2hvbmcg ZGF5IQ0KDQpodHRwOi8vdGhvbmd0aW5iZXJsaW4ubmV0L3Rob2lzdTEvY2hhbmR1bmdjb25yZW5n dXllbnRhbmR1bmcuaHRtDQoNCkNoYW4gZHVuZyBjb24gcmUgTmd1eWVuIFRhbiBEdW5nDQogDQpD b24gcmUgY3VhIE5ndXllbiBUYW4gRHVuZyBsYSBIZW5yeSBOZ3V5ZW4gKHRlbiB0aWVuZyBWaWV0 IGxhIE5ndXllbiBCYW8gSG9hbmcpLCBsYSANCmNvbiB0cmFpIGN1bmcgY3VhIE5ndXllbiBCYW5n LCBuZ3V5ZW4gbGEgbW90IHF1YW4gY2h1YyBjYW8gY2FwLCB0aHUgdHJ1b25nIGN1YSBjaGluaCAN CnF1eWVuIFNhaSBHb24gdHJ1b2MgMTk3NS4gQ2EgZ2lhIGRpbmggTmd1eWVuIEJhbmcgZGEgbGVu IGR1b25nIHJvaSBWTiBjaGkgdmFpIG5nYXkgDQp0cnVvYyAzMCB0aGFuZyA0IG5hbSA3NSB2YSBk aW5oIGN1IG8gTXkgbmdheSBzYXUgZG8gbyB0aWV1IGJhbmcgQ2hpY2Fnby4gDQoNCkNoaSBjdWEg SGVucnkgbGF5IGNob25nIGxhIGNvbiAxIGdpYSBkaW5oIHRhaSBwaGlldCBNeSB0ZW4gbGEgVGhv bWFzIENvcm5vciwgDQprZSB0dSBkbyBnaWEgZGluaCBOZ3V5ZW4gQmFuZyB2YSBIZW5yeSBOZ3V5 ZW4gdGhhbSBnaWEgdmFvIG5ob20gdGFpIHBoaWV0IG5heS4gDQpBbmggcmUgSGVucnkgbGEgVGhv bWFzIHNhdSBkbyBsYXAgbW90IGNvbmcgdHkgdmllbiB0aG9uZyBkZSBsYW0gYW4gdm9pIFZOIG1h bmcgdGVuIA0KVklUQyB0dSBuYW0gMjAwMiwgcXVhbiBoZSBtb2Mgbm9pIHJhdCBjaGF0IHZvaSBj YWMgcXVhbiBjaHVjIGJvIEJ1dSBjaGluaCANClZpZW4gdGhvbmcgKG5heSBsYSBUaG9uZyB0aW4g VHJ1eWVuIHRob25nKSB2YSB0YXAgZG9hbiBWTlBULiBMdWMgZG8gTmd1eWVuIEJhbmcgbGEgDQpD aHUgdGljaCBWSVRDLCBUaG9tYXMgQ29ybm9yIGxhIFRvbmcgZ2lhbSBkb2MgY29uIEhlbnJ5IGxh bSBHaWFtIGRvYyBraW5oIGRvYW5oLiANCk5nYXkgdHUgbmh1bmcgbmdheSBkYXUgdmFvIFZOIGxh bSBhbiwgZ2lhIGRpbmggbmF5IGRhIGRhdCBtdWMgdGlldSBwaGFpIHRpZXAgY2FuLCBtb2MgDQpu b2kgdmEgY2F1IGtldCB2b2kgY2FjIHF1YW4gY2h1YyBjYXAgY2FvIG5oYXQgY3VhIENoaW5oIHBo dSBWTi4gDQoNCkNhY2ggZGF5IGdhbiAzIG5hbSwgSGVucnkgYm9uZyBkdW5nIG5vaSBsZW4gbGFt IFRvbmcgR2lhbSBkb2MgcXV5IGRhdSB0dSBJREcgDQpWZW50dXJlIHRhaSBWTiB2b2kgc28gdm9u IDEwMCB0cmlldSBVU0QgKG1vaSB0YW5nIHRoZW0gMjAwIHRyaWV1KS4gRGlldSBuYXkgbGFtIG5n dW9pIA0KdGEgZG9uIGRvYW4gcmFuZyB0aWVuIG5heSB0aHVjIGNoYXQgZGVuIHR1IGdpYSBkaW5o IENvcm5vciB2YSBOZ3V5ZW4gQmFuZyBkdSByYW5nIG5vIA0KbWFuZyBkYW5oIG5naGlhIGN1YSBJ REcuIEN1bmcgY28gdGhlIElERyBodXkgZG9uZyB2b24gdHUgZ2lhIGRpbmggSGVucnkgY2hvIHZp ZWMgDQpkYXUgdHUgdGFpIFZpZXQgTmFtLiANCg0KUXV5IG5heSBjaHV5ZW4gZGF1IHR1IG11YSBj YWMgY29uZyB0eSB0YWkgVk4gdmEgY28gcXVhbiBoZSBsYW0gYW4gcmF0IGNoYXQgY2hlIHZvaSBx dXkgDQpWaWV0IENhcGl0YWwgZG8gY28gUGh1b25nLCBjb24gZ2FpIGN1YSBUaHUgdHVvbmcgbGFt IGNodS4gS2V0IHF1YSBjdW9pIGN1bmcgY3VhIHN1IA0KcGhvaSBob3AgbmF5IHRoaSBnaW8gY2Fj IGJhbiBiaWV0IHJvaSwgSGVybnkgdmEgUGh1b25nIHZ1YSBjdW9pIG5oYXUuIFNhdSBraGkgbGFt IHRob25nIA0KZ2lhIHZvaSBUaHUgdHVvbmcsIGdpYSBkaW5oIE5ndXllbiBCYW5nIGxhaSBkdW9j IGNoYXAgdGhlbSBjYW5oLCB0cm8gdGhhbmggbW90IHRoZSBsdWMgDQptYW5oIHRyb25nIGdpb2kg dGFpIHBoaWV0IE15IGxhbSBhbiB0YWkgVmlldCBOYW0uIE9uZyB0YSBkYW5nIGxpZW4gdHVjICJy YW8gZ2lhbmciIGxvaSANCnRoZSBuYXkgYmVuIE15LiANCg0KVmUgcGhpYSBUaHUgdHVvbmcsIGNo YWMgb25nIHRhIGN1bmcgY2FuIGN1b2MgaG9uIG5oYW4gbmF5IGRlIGNvIHRoZW0gY2hvIGR1YSBj aG8gbWluaDsgDQpuaHVuZyBkaWV1IG5heSBjbyB0aGUgdHJvIHRoYW5oIHZhbiBkZSBkb2kgdm9p IGNoaW5oIG9uZyB0YSB2YSBuaG9tIHRoYW0gbmh1bmcuIFZpIHRoZW8gDQpxdWkgZGluaCBjdWEg RGFuZyBDU1ZOLCBEYW5nIHZpZW4ga2hvbmcgZHVvYyBwaGVwIGNobyBjb24ga2V0IGhvbiB2b2kg bmh1bmcgZ2lhIGRpbmggDQpjbyBkaW5oIHRydWMgaGUgMyBkb2kgZGVuICJOZ3V5IiBxdXllbi4g UXVpIGRpbmggbmF5IGtob25nIGNvbmcgYm8gcm9uZyByYWkgdmEgZ2FuIGRheSAgDQppdCBuZ3Vv aSBuaGFjIHRvaSBuaHVuZyB2YW4gY2h1YSBjbyBxdXlldCBkaW5oIG5hbyB4b2EgYm8gZ2lhIHRy aSBjdWEgbm8sIHRyb25nIGtoaSANCk5ndXllbiBUYW4gRHVuZyBsYWkgbGEgbW90IFV5IHZpZW4g Qm8gY2hpbmggdHJpIHRoaSBjYW5nIHBoYWkgY2hhcCBoYW5oLiANCg0KaHR0cDovL3ZuLWNoYW5n ZXdlbmVlZC5ibG9nc3BvdC5jb20vMjAwOS8wMy9jaHV5ZW4tdmUtZ2lhLWluaC1waG8tbWEtdmEt c3VpLWdpYS1jdWEuaHRtbCBQb3N0ZWQgYnkgVmlldG5hbS0gQ2hhbmdlIHdlIG5lZWQgIDAxOjU4 IDE5LzMvMjAwOQ0KDQpDaHV5ZW4gdmUgZ2lhIGRpbmggcGhvIG1hIHZhIHN1aSBnaWEgY3VhIFRo dSB0dW9uZyANCg0KQ2hhYyB0cm9uZyBjaHVuZyB0YSBzZSBjbyBsYW4gdGhhYyBtYWMgc2FvIGxh aSBraG9uZyBjbyBtYSBkaSBkb25nIDA5OSBtYSBjaGkgY28gMDkwLCAwOTEsIDA5MiwgMDkzLCAw OTQsIDA5NSwgMDk2LCAwOTcsIDA5OC4gTmFtIHRydW9jIHRoYXkgQm8gVGhvbmcgVGluIFRydXll biBUaG9uZyBub2kgDQpoZXQga2hvIHNvIDA5IGNobyBkaSBkb25nIG5lbiBtb2kgcmEga2hvIHNv IDAxMi4uLiBTYXAgdG9pIG1vaSBuZ3VvaSBzZSBjbyBjYXUgdHJhIGxvaSB2aSANCnNlIHRoYXkg bW90ICJjaHUiIGRpIGRvbmcgbW9pIHJhIGRvaSwgY28gZGljaCB2dSBkaSBkb25nIG1hbmcgbWEg c28gMDk5LXh4eC14eHh4LiBOaGEgY3VuZyBjYXAgZGljaCB2dSBuYXkgbWFuZyB0ZW4gSW5kb2No aW5hIFRlbGVjb20uIENoYWMgYWkgY3VuZyBzZSBkYW5nIHRoYWMgbWFjIEluZG9jaGluYSBUZWxl Y29tIGN1YSBhaSBtYSBsYWkgZHVvYyBkYW5oIGNobyBtYSBkaSBkb25nIGRlcCBuaGF0IFZpZXQg TmFtIG5odSB0aGUuDQoNCkluZG9jaGluYSBUZWxlY29tIGR1b2MgdGhhbmggbGFwIGR1b2kgZGFu aCBuZ2hpYSBjdWEgVG9uZyBjdWMgSUkgQm8gUXVvYyBQaG9uZyBuaHVuZyBuZ3VvbiB2b24gdmEg Y2hpIHBob2kgdGh1YyB0ZSB0dSBvbmcgc3VpIGN1YSBhbmggMyBUaHUgdHVvbmcgliBvbmcgTmd1 eWVuIEJhbmcgDQooY2hhIGN1YSBOZ3V5ZW4gQmFvIEhvYW5nIGhheSBIZW5yeSkgdmEgY29uIHJl IGN1YSBvbmcgYXkgKFRob21hcyBPJ0Nvcm5vciwgdHVjIGFuaCByZSBjdWEgSG9hbmcpLCBjbyBz dSB0aGFtIGdpYSBjdWEgb25nIERvIFRydW5nIFRhIJYgbmd1eWVuIEJvIHRydW9uZyBCbyBCQ1ZU LiANCg0KTmdvYWkgdXUgdGllbiBkdW9jIGRhbmggbWEgc28gZGVwLCBjb25nIHR5IHZpZW4gdGhv bmcgbmF5IGNvbiBjbyBtb3QgZGFjIHRpbmgga2hhYyBsYSBob24gc28gdm9pIGNhYyBjb25nIHR5 IGRpIGRvbmcga2hhYyBoaWVuIG5heSwgZG8gbGEgbm8ga2hvbmcgcGhhaSBibyByYSBoYW5nIHRy YW0gdHJpZXUgZG8tbGEgZGUgZGF1IHR1IG5oYSwgdHJhbSBwaGF0IHNvbmcsICBtYXkgbW9jLCB0 aGlldCBiaSBkYXQgdGllbiB0b24ga2VtLCBtYSB0YXQgY2EgY2FjIA0KY29uZyB0eSBkaSBkb25n IGN1YSBUYXAgZG9hbiBCdXUgY2hpbmggdmllbiB0aG9uZyBWTlBUIGJhbyBnb20gVmluYXBob25l LCBNb2JpZm9uZSB2YSBtb3QgcGhhbiBjdWEgVmlldHRlbCBNb2JpbGUgc2UgcGhhaSAicGhhdCBz b25nIHRoYXkiIGNobyBuby4gTWEgbm8gY3VuZyANCmNoYW5nIHBoYWkgYm8gdGllbiByYSBtdWEg Y2FjIHNvbmcgbmF5LCB0aGF5IHZhbyBkbyBubyBjaG9pIHJhdCAiY2hhIiBiYW5nIGNhY2gga2hp IG5hbyBubyBiYW4gZHVvYyBkaWNoIHZ1LCB0dWMgbGEga2hhY2ggaGFuZyAwOTkgbWEgY28gZ29p IHZhIHBoYXQgc2luaCBkb2FuaCB0aHUgdGhpIG5vIGFuIA0KY2hpYSBwaGFuIHRyYW0gbGFpIGNo byBjYWMgY29uZyB0eSBkaSBkb25nIG5heS4gRHVuZyBsYSBtb3QgaG9wIHRyb25nIHRyb25nIG1v IGN1bmcga2hvbmcgdGhlIGNvIGR1b2MuIENoYW5nIHBoYWkgYm8gdGllbiByYSBkYXUgdHUgYmFu IGRhdSB0b24ga2VtLCBjdW5nIGNoYW5nIHBoYWkgY2hpdSANCnJ1aSBybyBuZXUgbXVhIHNvbmcg dGhlbyBkdW5nIGx1b25nIG5hbyBkbyBtYSBjaHVhIGJpZXQgYmFuIHRvaSBkbyBoYXkga2hvbmcu IEF5IHZheSANCm1hIG1vdCBjb25nIHR5IGRpIGRvbmcgY28gbWEgZGVwIG5odSB0aGUgY2hpIGNh biB2YWkgY2h1YyB0cmlldSBkby1sYSBNeSBsYSBob2F0IGRvbmcgDQpkdW9jIHJvaS4gRHUga2ll biBsYSBzaWV1IGxvaSBuaHVhbiB2aSBkaSBkb25nIGJpbmggdGh1b25nIChwaGFpIGRhdSB0dSBs b24pIGRhIGxvaSByYXQgbmhpZXUsIGNvbiBjYWkgbmF5IHRoaSBjaGFuZyBwaGFpIGRhdSB0dSBn aSBkYW5nIGtlLg0KDQpNYXkgY2h1YyB0cmlldSBkby1sYSBuYXkgcGhpYSBUb25nIGN1YyBJSSBr aG9uZyBwaGFpIGJvIHJhIG1hIGdpYSBkaW5oIG9uZyBzdWkgYW5oIDMgbG8gaGV0LiBOaHVuZyB0 cmVuIHRodWMgdGUsIGtob2FuIHRpZW4gbmF5IGN1bmcgY2hhbmcgcGhhaSBsYSB0aWVuIHR1aSBj dWEgZ2lhIGRpbmggbmF5IG1hIA0Kbm8gY28gbmd1b24gZ29jIHRoYXQgZGFuZyB4YXUgaG8uIE5o dW5nIGFpIGRvYyBjYWMgbG9hdCBiYWkgY2EgbmdvaSBwaG8gbWEgSGVucnkgY2FjaCBkYXkgaG9u IG1vdCB0aGFuZyB0cmVuIGNhYyBiYW8gbGUgcGhhaSB0aGkgY2hhYyB2YW4gY29uIG5obyBjYWMg Ym9pIGJ1dCBuaGFjIHRvaSBWSVRDIGxhIA0KbW90IGNvbmcgdHkgZHVvYyB2aSBwaG8gbWEgKHR1 YyBsYSBsdWMgZG8gY2h1YSBwaGFpIHBobyBtYSkgSGVucnkgdGhhbmggbGFwIHZhIHBoYXQgDQp0 cmllbiBubyBsb24gbWFuaCBkZW4gbXVjIGRvYW5oIHNvIGNhIGNodWMgdHJpZXUgZG8uIERvYW5o IHNvIGxlbiBjYSBjaHVjIHRyaWV1IGxhIHRoYXQgbmh1bmcgc3UgdGhhdCBkYXkgZHUgdGhpIGhh eSBkb2MgdGllcCBkdW9pIGRheS4NCg0KTmd1eWVuIEJhbmcga2hpIG1vaSBzYW5nIFZOIG1vYyBu b2kgZHVvYyB2b2kgRG8gVHJ1bmcgVGEgdmEgbXVhIGNodW9jIHRheSBxdWFuIHRoYW0gbmF5IGNo byBtb3Qga2UgaG9hY2ggbWEgbmhpZXUgbmd1b2kgdGluIGxhIGR1b2MgdG9hbiB0aW5oIHR1IGRv IGRlbiBuYXkuIFZJVEMgZG8gY29uIHJlIGN1YSBvbmcgQmFuZyBsYSBUaG9tYXMgTydDb3Jub3Ig dGhhbmggbGFwLCBkYW5nIGJ1b24gbGluaCB0aW5oIGR1IHRodSB0dSB4dSBseSANCm1vaSB0cnVv bmcsIFBWQywgeHVhdCBraGF1IG8gVk4gdGhpIGRvdCBuZ290IG5oYXkgdmFvIGxpbmggdnVjIHZp ZW4gdGhvbmcgdmEgY28gbmdheSBob3AgZG9uZyB2b2kgY29uZyB0eSBWaWVuIHRob25nIFF1b2Mg dGUgVlRJICh0cnVjIHRodW9jIFZOUFQpIGRlIGNodXllbiBsdXUgbHVvbmcgDQpkaWVuIHRob2Fp IHR1IG51b2MgbmdvYWkgdmUgVk4gdm9pIHRyaSBnaWEgY2EgdHJpZXUgZG8tbGEgTXkgbW90IHRo YW5nLiBEaWV1IGt5IGxhIGxhIG5ldSANCm5odSBjYWMgY29uZyB0eSBraGFjIGxhbSBhbiB0dW9u ZyB0dSB2b2kgVlRJIChuaHUgQVQmYW1wO1QsIEZyYW5jZSBUZWxlY29tLCAuLi4pIGRldSBwaGFp IHRoYW5oIHRvYW4gdHJ1b2MgdGhpIFZJVEMgbHVvbiBkdW9jIHRoYW5oIHRvYW4gc2F1IHZvaSB0 cmkgZ2lhIGNvIHRob2kgZGllbSBsZW4gDQpkZW4gZ2FuIDUwIHRyaWV1IGRvLiBWaWVjIGxhbSBh biBuYXkgYmF0IGRhdSB0dSAyMDAyIHZhIGx1YyBkbyBIZW5yeSBkYW5nIGxhbSBHaWFtIGRvYyBr aW5oIGRvYW5oIGNobyBWSVRDLCBhbmggcmUgVGhvbWFzIGxhbSBUb25nIGdpYW0gZG9jLCBvbmcg Ym8gTmd1eWVuIEJhbmcgbGFtIA0KQ2h1IHRpY2guIEFpIGN1bmcgdGhhYyBtYWMgdGFpIHNhbyBu aHVuZyB0YXkgVmlldCBraWV1IG5heSBsYWkgY28gdGhlIGNoaWVtIGR1bmcgbW90IHNvIA0KbHVv bmcgdm9uIGhhbmcgY2h1YyB0cmlldSBkbyB0aHVvbmcgeHV5ZW4gdmEgbGF1IGRhaSBuaHUgdmF5 LiBDbyBtb3Qgc28gcXVhbiBjaHVjIA0KVk5QVCBtdW9uIGR1YSB2YW4gZGUgbmF5IHJhIG5odW5n IGRldSB0aGF0IGJhaSB2aSBsdWMgZG8gb25nIERvIFRydW5nIFRhIGRhIHRybyB0aGFuaCBCbyB0 cnVvbmcgQm8gQkNWVCB0dSBjYWkgZ2hlIENodSB0aWNoIEhEUVQgVk5QVC4NCg0KU28gdm9uIGNo aWVtIGR1bmcgbmF5IGdpYSBkaW5oIE5ndXllbiBCYW5nIGR1bmcgZGF1IHR1IHZhbyBjaHVuZyBr aG9hbiwgYmF0IGRvbmcgc2FuIHZhIG1vIG1vdCBuaGEgaGFuZyB0ZW4gVmluZSBvIHNvIDEgWHVh biBEaWV1LCBIYSBOb2kuIERlbiB0aGFuZyAzLzIwMDggVklUQyANCnR1eWVuIGJvIGRvbmcgY3Vh IFZQREQgdGFpIFZOIHZvaSBzbyBubyBWVEkgbHVjIGRvIGxlbiB0b2kgMjMgdHJpZXUgZG8tbGEg TXksIHZhIGdpYWkgdGFuIHRvYW4gYm8gbmhhbiB2aWVuIGRhbmcgbGFtIHZpZWMgbyBkYXkuIFR1 eSBuaGllbiBzYXUgZG8sIHRoZW8gZGUgbmdoaSBjdWEgb25nIFRhIHZhIA0KbGFuaCBkYW8gVlRJ IG5lbiBWSVRDIGR1eSB0cmkgbW90IHZhbiBwaG9uZyBnaWEsIGxhbmcgbGFuZyBjaHV5ZW4gaGV0 IG1heSBtb2MgdmUgc28gMSBYdWFuIERpZXUsIGNobyB0aGlldCBiaSBjaGF5IGtob25nIHRhaSwg a2hvbmcgY28gbHV1IGx1b25nIGRlIHF1YSBtYXQgY2FjIG5oYSBjaHVjIA0KdHJhY2ggZGUgZHV5 IHRyaSBjYWkgaG9wIGRvbmcgdm9pIFZUSSBuaGFtIGNoaWVtIGR1bmcgMjMgdHJpZXUgbGF1IGRh aS4gS2UgaG9hY2ggY3VhIGdpYSBkaW5oIE5ndXllbiBCYW5nIGNhdSBrZXQgdm9pIERvIFRydW5n IFRhIChkdSBnaW8gZGF5IGtob25nIGNvbiBsYW0gQm8gVHJ1b25nIA0Kbmh1bmcgdmFuIGNvbiBh bmggaHVvbmcgbWFuaCB0cmVuIGNoaW5oIHRydW9uZywgZGFjIGJpZXQgbGEgdm9pIG9uZyAzIER1 bmcpIGxhIFZUSSBzZSB4b2Egbm8gMjMgdHJpZXUgbmF5IGJhbmcgbmh1bmcgdGh1IGRvYW4gbmh1 IGRvaSBzb2F0IGN1b2MsIG11YSBsYWkgY28gcGhhbiBjdWEgVklUQyANCmJlbiBNeSwgLi4uIFR1 eSBuaGllbiB2aWVjIG5heSBkZW4gaGllbiBuYXkgZGFuZyBnYXAgcGhhbiBkb2kgY3VhIG5oaWV1 IG5ndW9pIHRyb25nIA0KVk5QVCBuZW4gZGVuIGdpbyB2YW4ga2hvbmcgdGh1YyBoaWVuIGR1b2Mu IE5odW5nIHNvIHRpZW4gMjMgdHJpZXUgRG8gdGhpIHZhbiBuYW0gDQp0cm9uZyB0dWkgZ2lhIGRp bmggTmd1eWVuIEJhbmcgdmEgYmF5IGdpbyBkdW9jIHRpZXAgdHVjIGRhdSB0dSB2YW8gSW5kb2No aW5hIFRlbGVjb20uDQoNClRyb25nIHF1YSB0cmluaCBsdWEgZGFvIHRyZW4sIGNvIG1vdCBzbyBu aGFuIHZpZW4gVklUQywgbmd1b2kgbnVvYyBuZ29haSBsYW4gbmd1b2kgVmlldCBjdW5nIGJpIGdp YSBkaW5oIE5ndXllbiBCYW5nIGx1YSBkYW8gdmEgbG9pIGR1bmcgbmVuIHJhdCBiYXQgYmluaC4g SG8gZGFuZyB0aW0gDQpjYWNoIGR1YSB2YW4gZGUgbmF5IHJhIGFuaCBzYW5nLiBEb25hbGQgQmVy Z2VyIChuZ3VvaSBDYW5hZGEpIGRhdSB0aWVuIGh1biBoYXAgdm9pIFRob21hcyBsYW0gbmhhIGhh bmcgVmluZSwgbW9pIGRheSBiaSBUaG9tYXMgaGF0IHZhbmcga2hvaSBuaGEgaGFuZyBuYXkuIEhh eSBuaHUgDQpMYXJyeSBHcmFjZSwgbW90IGx1YXQgc3UgbyBDaGljYWdvIHZhIGxhIGJhbiBob2Mg ZGFpIGhvYyBjdWEgSG9hbmcgcGhvIG1hLCBjbyB0aG9pIGR1b2MgVGhvbWFzICh0aHVvbmcgZ29p IGxhIFRvbSkgbW9pIHNhbmcgdHUgdmFuIHZ1IGJhbiBtb3QgcGhhbiBjbyBwaGFuIGN1YSBWSVRD IA0KY2hvIFZOUFQgKDI1JSkuIFR1eSBuaGllbiBjaGkgc2F1IDEgdGhvaSBnaWFuIG5nYW4gbGFt IHZpZWMgdm9pIGdpYSBkaW5oIG5heSB0aGkgTGFycnkgcGhhdCBoaWVuIG5nYXkgcmEgZGF5IGxh IG1vdCBjb25nIHR5IGx1YSBkYW8gdmEgbmdheSBsYXAgdHVjIGJvIGRvIGR1IGFuIHZhIHJ1dCB2 ZSBudW9jIA0KbGFtIFRob21hcyB2YSBIb2FuZyB2byBjdW5nIGNheSBjdS4gTGFycnkgZGEgbmhh biByYSBiYW4gY2hhdCBsdWEgZGFvIGN1YSBUb20gdmEgZ2lhIGRpbmggTmd1eWVuIEJhbmcgdHUg cmF0IHNvbSBkYSBjbyBtb3QgbGFuIGtob2kga2llbiBUb20gbyBTaW5nYXBvcmUgbGllbiBxdWFu IGRlbiANCnZpZWMgbHVhIGRhbyB2YSBzdSBkdW5nIHZvbiBzYWkgbXVjIGRpY2guIFRvbSBkYSBw aGFpIHRvbiBraGEgbmhpZXUgdGllbiBkZSBsbyBsb3QgdnUgDQpuYXkgZW0geHVvaS4gTGFycnkg Y2FjaCBkYXkgdmFpIG5hbSBkYSBndWkgdGh1IGRlbiBWTlBUIHRvIGNhbyBiYW4gY2hhdCBsdWEg ZGFvIGN1YSANClZJVEMgdmEgZHVuZyB5IHhhdSBjdWEgVG9tIG5odW5nIGNoYSBhaSBxdWFuIHRh bS4gTmh1bmcgTGFycnkgdHV5ZW4gYm8gc2Uga2hvbmcgYm8gDQpjdW9jIHRyb25nIHZpZWMgdmFj aCBtYXQgdmllYyBjaGllbSBkdW5nIDIzIHRyaWV1IERvIHRpZW4gY3VhIG5oYSBudW9jICh0dWMg Y3VhIG5oYW4gZGFuKS4NCg0KVG9pIHRpbiBsYSBjYXUgY2h1eWVuIG5heSBzZSBiaSBsb2kgcmEg YW5oIHNhbmcsIGtob25nIHNvbSB0aGkgbXVvbi4gIA0KDQpodHRwOi8vbXkub3BlcmEuY29tL1Ro YW5oTmllblF1b2NOb2kvYmxvZy9zaG93LmRtbC8xODk2MTUzMiAgMTEvMTAvMjAxMCwgMTA6MDI6 MTAgDQoNCkJhIEhhaSBUYW0gY2hpIHJ1b3QgY3VhIFRodSBUdW9uZyBOZ3V5ZW4gVGFuIER1bmcg bGFtIENodSB0aWNoIFRhcCBkb2FuIFRhbiBUYW8gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTA0Mi8yMDEwMTAxNDEzNTk0NC5hc3B4IEJhbyBUaGllbiAxNC8x MC8yMDEwIDEzOjU5IA0KDQpUaHUgdHVvbmc6IFBobyB0b25nIFRodSBreSB0b2Egc29hbiBiYW8g VGllbiBQaG9uZyBiaSBiYXQgdmkgbmhhbiAyMjAgdHJpZXUgZG9uZyB0dSBtb3QgY29uZyB0eSBj b24gY3VhIFRhcCBkb2FuIFRhbiBUYW8uIA0KDQooQW5oOiBMdWMgbHVvbmcgY2h1YyBuYW5nIHRv aSB0aHVjIGhpZW4gbGVuaCBraGFtIHhldCB0cnUgc28gbm9pIGxhbSB2aWVjIGN1YSBIYSBQaGFu IHRhaSBUUC5IQ00pIA0KDQooVE5PKSBOZ2F5IDEzLjEwLCBDbyBxdWFuIEFuIG5pbmggZGlldSB0 cmEgQm8gQ29uZyBhbiBiYXQgcXVhIHRhbmcgbmhhIGJhbyBIYSBQaGFuIA0KKHRlbiB0aGF0IFBo YW4gSGEgQmluaCwgNDIgdHVvaSkgLSBQaG8gdG9uZyBUaHUga3kgdG9hIHNvYW4gYmFvIFRpZW4g UGhvbmcgLSBuaGFuIDIyMCANCnRyaWV1IGRvbmcgdHUgbW90IGNvbmcgdHkgY29uIGN1YSBUYXAg ZG9hbiBUYW4gVGFvLiANCg0KQ3VuZyBuZ2F5LCBDbyBxdWFuIEFuIG5pbmggZGlldSB0cmEgdGh1 YyBoaWVuIGxlbmgga2hhbSB4ZXQgdHJ1IHNvIG5vaSBsYW0gdmllYyBjdWEgSGEgDQpQaGFuLCBs YSBWYW4gcGhvbmcgZGFpIGRpZW4gYmFvIFRpZW4gUGhvbmcgdGFpIFRQLkhDTSAoZHVvbmcgTmFt IEt5IEtob2kgTmdoaWEsIA0KUS4zLCBUUC5IQ00pLg0KDQpIYSBQaGFuIGxhIHBob25nIHZpZW4g Y2h1eWVuIHZpZXQgZGlldSB0cmEgY3VhIGJhbyBUaWVuIFBob25nLCB2dWEgZHVvYyBkZSBiYXQg bGFtIFBobyANCnRvbmcgVGh1IGt5IHRvYSBzb2FuIHR1IGRhdSB0aGFuZyAxMC4yMDEwLg0KDQpD aHVuZyB0b2kgc2UgdGllcCB0dWMgdGhvbmcgdGluIGRlbiBiYW4gZG9jIGRpZW4gYmllbiB2dSB2 aWVjLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMTAvQmF0LW5oYS1iYW8t UGhhbi1IYS1CaW5oLWJhby1UaWVuLVBob25nLTk0MjE0NC8gRC5EIDEzOjE1LCAxNC8xMC8yMDEw IChHTVQrNykNCg0KVGluIHRoZW0gbGllbiBxdWFuIHRvaSBQaG8gdGh1IGt5IHRvYSBzb2FuIGJh byBUaWVuIFBob25nIA0KDQpOaGEgYmFvIFBoYW4gSGEgQmluaCAoUGhvIHRodSBreSB0b2Egc29h biBiYW8gVGllbiBQaG9uZykgZGEgYmkgQm8gQ29uZyBhbiBiYXQgZ2l1IA0Ka2hhbiBjYXAgc2Fu ZyBuYXkgdGFpIFRQLkhDTS4NCg0KVGhlbyBtb3Qgbmd1b24gdGluIHJpZW5nIGN1YSBWaWV0TmFt TmV0LCBzYW5nIG5heSAoMTQvMTApIGNvIHF1YW4gQW4gbmluaCBEaWV1IHRyYSANCkJvIENvbmcg YW4gKHBoaWEgTmFtKSBkYSB0aHVjIGhpZW4gbGVuaCBiYXQgZ2l1IGtoYW4gY2FwIGRvaSB2b2kg bmhhIGJhbyBQaGFuIEhhIEJpbmggDQqWIFBobyB0aHUga3kgdG9hIHNvYW4gYmFvIFRpZW4gUGhv bmcuIE5ndW9uIHRpbiBuYXkgeGFjIG5oYW4sIG5oYSBiYW8gUGhhbiBIYSBCaW5oIA0KZGFuZyBi aSBjbyBxdWFuIGNvbmcgYW4gZGlldSB0cmEgdmUgaGFuaCB2aSBuaGFuIHNvIHRpZW4gMjIwIHRy aWV1IGRvbmcgY3VhIG1vdCBkb2FuaCBuZ2hpZXAuDQoNCihBbmg6IE5oYSBiYW8gUGhhbiBIYSBC aW5oIHRhaSB0aG9pIGRpZW0gYmkgYmF0IGdpdS4gQW5oOiBELkQpDQoNCkR1b2MgYmlldCwgbmhh IGJhbyBQaGFuIEhhIEJpbmggYmkgY28gcXVhbiBjb25nIGFuIGJhdCBnaXUgdmFvIGtob2FuZyAy MGggZGVtIDEzLzEwIA0KdGFpIG5oYSBoYW5nIE5oYXQgSGEsIHNvIDgyIGR1b25nIFZvIFZhbiBU YW4sIFAuNiwgUS4zLCBUUC5IQ00uDQoNClNhbmcgbmdheSAxNC8xMCwgY28gcXVhbiBBbiBuaW5o IERpZXUgdHJhIGRhIHRpZW4gaGFuaCBraGFtIHhldCBuaGEgcmllbmcgY3VhIG5oYSBiYW8gDQpQ aGFuIEhhIEJpbmguIFRyb25nIGJ1b2kgc2FuZyBjdW5nIG5nYXksIGNvIHF1YW4gY29uZyBhbiBj byBidW9pIGxhbSB2aWVjIG5oaWV1IGdpbyANCmxpZW4gdGFpIFZhbiBwaG9uZyBkYWkgZGllbiBw aGlhIE5hbSBjdWEgYmFvIFRpZW4gUGhvbmcgdGFpIGR1b25nIE5hbSBLeSBLaG9pIE5naGlhLCBR LjMgDQoNClRoZW8gdGhvbmcgdGluIG1hIFZpZXROYW1OZXQgdGltIGhpZXUsIHZhbyBnaXVhIHRo YW5nIDkvMjAxMCwgbmhhIGJhbyBQaGFuIEhhIEJpbmggDQoodm9pIGJ1dCBkYW5oIEhhIFBoYW4p IGN1bmcgdm9pIG1vdCBwaG9uZyB2aWVuIGtoYWMgY28gdmlldCBsb2F0IGJhaSAiQ2FjIHNpZXUg ZHUgYW4gDQpjdWEgaGFpIHNpZXUgdGFwIGRvYW4gdmEgbmh1bmcgZGF1IGhvaSIgZGFuZyB0cmVu IGJhbyBUaWVuIFBob25nIC4NCg0KVHJvbmcgZG8gY28gYmFpIHZpZXQgIlNHVCB2YSBLQkMgliBk dSBhbiB0eSBkbyBkYXUgdm9pIGR1b2kgY2h1b3QiIHZvaSBub2kgZHVuZyBkZSANCmNhcCBnYXkg YmF0IGxvaSBjaG8gQ29uZyB0eSBjbyBwaGFuIFhpIG1hbmcgU2FpIEdvbiCWIFRhbiBLeSB0aHVv YyBUYXAgZG9hbiBEYXUgdHUgDQpTYWkgR29uLg0KDQooQW5oOiBDbyBxdWFuIEFuIG5pbmggRGll dSB0cmEgQm8gQ29uZyBhbiBkYSBsYW0gdmllYyB2b2kgVmFuIHBob25nIGRhaSBkaWVuIGJhbyAN ClRpZW4gUGhvbmcgdGFpIFRQLkhDTSB2YW8gc2FuZyAxNC8xMC4gQW5oOiBELkQpDQoNClRoZW8g bmd1b24gdGluIHJpZW5nIGN1YSBWaWV0TmFtTmV0LCBzYXUga2hpIGJhaSBiYW8gZGFuZywgbmhh IGJhbyBQaGFuIEhhIEJpbmggZGEgDQpuaGlldSBsYW4gdHJ1YyB0aWVwIGRlbiBnYXAgbmh1bmcg bmd1b2kgY28gdHJhY2ggbmhpZW0gdGFpIGNvbmcgdHkgQ28gcGhhbiBYaSBtYW5nIFNhaSANCkdv biCWIFRhbiBLeSBkZSB2b2kgdmluaCB0aWVuLiBUcm9uZyBjYWMgYnVvaSBnYXAgbmF5LCBuaGEg YmFvIFBoYW4gSGEgQmluaCBjbyAiZG9hIiANCm5ldSBkb2FuaCBuZ2hpZXAgbm9pIHRyZW4ga2hv bmcgY2hpIHRpZW4gc2UgdGllcCB0dWMga2hvaSBkYW5nIG5odW5nIGJhaSBiYW8gZ2F5IGJhdCBs b2kgDQpjaG8gZG9hbmggbmdoaWVwLg0KDQpEbyBiaSB1eSBoaWVwLCBwaGlhIGNvbmcgdHkgQ28g cGhhbiBYaSBtYW5nIFNhaSBHb24gliBUYW4gS3kgZGEgZG9uZyB5IGNoaSAyMjAgdHJpZXUgDQpk b25nIGNobyBuaGEgYmFvIFBoYW4gSGEgQmluaC4gRGVtIDEzLzEwIG5oYSBiYW8gUGhhbiBIYSBC aW5oIHZhIG5ndW9pIGRhaSBkaWVuIA0KY3VhIGRvYW5oIG5naGllcCBub2kgdHJlbiBoZW4gdGFp IG5oYSBoYW5nIE5oYXQgSGEgZGUuLi4gImdpYW8gZGljaCIuDQoNCktoaSBuaGEgYmFvIFBoYW4g SGEgQmluaCBuaGFuIHRpZW4gdGhpIGJpIGx1YyBsdW9uZyBjdWEgQm8gQ29uZyBhbiBhcCB2YW8g YmF0IGdpdSBxdWEgDQp0YW5nLiBCYW8gVmlldE5hbU5ldCBzZSB0aWVwIHR1YyB0aG9uZyB0aW4g dmUgdnUgdmllYyBuYXkuIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzUxNDM3 Mi9WZS1oYWktc2lldS1kdS1hbi1jdWEtVGFwLWRvYW4tVGFuLVRhby10YWktS2llbi1HaWFuZy5o dG1sIDA5OjU3IDA1LzEwLzIwMTAgDQoNClRodSB0dW9uZzogQmFvIFRpZW4gUGhvbmcgdHJhIGxv aSBraGlldSBuYWkgY3VhIFRhcCBkb2FuIFRhbiBUYW86DQoNClZlIGhhaSBzaWV1IGR1IGFuIGN1 YSBUYXAgZG9hbiBUYW4gVGFvIHRhaSBLaWVuIEdpYW5nDQoNClRQTyAtIE5nYXkgMjctOS0yMDEw LCBUb25nIEJpZW4gdGFwIGJhbyBUaWVuIFBob25nIGRhIGt5IHZhbiBiYW4gdHJhIGxvaSBuaHVu ZyBraGlldSANCm5haSBjdWEgVGFwIGRvYW4gVGFuIFRhbyAodGFpIHZhbiBiYW4gMjAwOS9DVi1J VEFHUk9VUC0xMCBjdWEgVGFwIGRvYW4gVGFuIFRhbywgDQpkZSBuZ2F5IDIwLTktMjAxMCksIGRv aSB2b2kgbm9pIGR1bmcgYmFpIGJhbyAiQ2FjIHNpZXUgZHUgYW4gY3VhIGhhaSBzaWV1IHRhcCBk b2FuIHZhIA0Kbmh1bmcgZGF1IGhvaSIgY3VhIHRhYyBnaWEgSG9uZyBMaW5oIGRhbmcgdHJlbiBi YW8gVGllbiBQaG9uZyByYSBuZ2F5IDE3LTktMjAxMC4gDQoNClRpZW4gUGhvbmcgT25saW5lIGRh bmcgbmd1eWVuIHZhbiBub2kgZHVuZyB0cmEgbG9pIGN1YSBiYW8gVGllbiBQaG9uZyBkb25nIHRo b2kgZGFuZyANCmNvbmcga2hhaSB2YW4gYmFuIGtoaWV1IG5haSBjdWEgVGFwIGRvYW4gVGFuIFRh byBkZSBjYWMgYmVuIGxpZW4gcXVhbiB2YSBiYW4gZG9jIGNvIA0KY2FpIG5oaW4gZGF5IGR1IHZh IGNoYW4geGFjIHZlIHZ1IHZpZWMuDQoNCk5nYXkgMjIvOS8yMDEwLCBCYW8gVGllbiBQaG9uZyBu aGFuIGR1b2MgdmFuIGJhbiAyMDA5L0NWLUlUQUdST1VQLTEwIGN1YSBUYXAgDQpkb2FuIFRhbiBU YW8gKGRvIFRvbmcgZ2lhbSBkb2MgVGFwIGRvYW4gVGFuIFRhbyBUaGFpIFZhbiBNZW4ga3ksIGRl IG5nYXkgDQoyMC85LzIwMTApLCBndWkgYmFvIFRpZW4gUGhvbmcgZGUga2hpZXUgbmFpIG5vaSBk dW5nIGJhaSBiYW8gIkNhYyBzaWV1IGR1IGFuIGN1YSBoYWkgDQpzaWV1IHRhcCBkb2FuIHZhIG5o dW5nIGRhdSBob2kiIGN1YSB0YWMgZ2lhIEhvbmcgTGluaCBkYW5nIHRyZW4gYmFvIFRpZW4gUGhv bmcgcmEgbmdheSANCjE3LzkvMjAxMC4gVmFuIGJhbiBuYXkgY3VhIFRhcCBkb2FuIFRhbiBUYW8g Y3VuZyBkb25nIGd1aSBjaG86IENhYyBkb25nIGNoaSBVeSB2aWVuIA0KQm8gQ2hpbmggdHJpOyBC YW4gVHV5ZW4gZ2lhbyBUcnVuZyB1b25nOyBCbyBUaG9uZyB0aW4gJiBUcnV5ZW4gdGhvbmc7IEJh biBCaSB0aHUgDQpULlUgRG9hbiBUTkNTIEhvIENoaSBNaW5oOyBDbyBxdWFuIERpZXUgdHJhLi4u LiBWYW4gYmFuIGtoaWV1IG5haSBjdWEgVGFwIGRvYW4gDQpUYW4gVGFvIGRhIGR1YSByYSByYXQg bmhpZXUgZGllbSBsYXAgbHVhbiBtYSB0cm9uZyBkbyBoYXUgaGV0IGNhYyBkaWVtIGRldSBuYW0g bmdvYWkgDQpub2kgZHVuZyBiYWkgYmFvIGRlIGNhcCwgdHUgZG8ga2V0IGx1YW4gcmFuZzogIlRh dCBjYSB0aG9uZyB0aW4gZHVvYyBkYW5nIHRhaSB0cmVuIGJhbyANClRpZW4gUGhvbmcgbmdheSAx Ny85LzIwMTAgY3VhIHBob25nIHZpZW4gSG9uZyBMaW5oIGxhIHNhaSBzdSB0aGF0LCBiaWEgZGF0 IHZ1IGtob25nLCANCmJhbyB2ZSBrZSBwaGFtIHBoYXAgZGFuZyBsYW4gdHJvbiB2YSBkb25nIGJv bi4uLiIuIFZhbiBiYW4gbmF5IGRlIG5naGkgYmFvIHBoYWkgY2FpIA0KY2hpbmggdmEgY28gcXVh biBwaGFwIGx1YXQgImRpZXUgdHJhIGR1b25nIGRheSB0b2kgcGhhbSBkdW9jIGJhbyBrZSBib2kg cGhvbmcgdmllbi4uLiIuIA0KQmFvIFRpZW4gUGhvbmcgY3VuZyBuaGFuIGR1b2MgY29uZyB2YW4g MTAwL0NWLVZOTEFORCBjdWEgQ29uZyB0eSBjbyBwaGFuIHBoYXQgDQp0cmllbiBkbyB0aGkgVmll dCBOYW0gKFZpZXRuYW0gTGFuZCkgZ3VpIGJhbyB2YSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgbmV1 IHRyZW4sIGNobyANCnJhbmcgImJhaSB2aWV0IG5vaSBzYWkgc3UgdGhhdCB2YSBzdSBkdW5nIG5o dW5nIHRob25nIHRpbiB0dSBjYWMgZG9pIHR1b25nIGRhbmcgZHVvYyBjYWMgDQpjbyBxdWFuIGRp ZXUgdHJhIGtob2kgdG8sIGdheSBhbmggaHVvbmcgbmdoaWVtIHRyb25nIHRvaSB1eSB0aW4gdmEg dGh1b25nIGhpZXUgY3VhIFRhcCANCmRvYW4gVGFuIFRhbyB2YSBWaWV0bmFtIExhbmQiLg0KDQpC YW4gQmllbiB0YXAgYmFvIFRpZW4gUGhvbmcgZGEgeGVtIHhldCwgZG9pIGNoaWV1IGJhaSB2aWV0 IGN1YSB0YWMgZ2lhIEhvbmcgTGluaCB2b2kgaG8gDQpzbywgdGFpIGxpZXUgbGllbiBxdWFuIHZ1 IHZpZWMgdmEgdmFuIGJhbiBraGlldSBuYWkgY3VhIFRhcCBkb2FuIFRhbiBUYW8uIFRoZW8gTHVh dCBCYW8gDQpjaGkgdmEgcXV5IGRpbmggaGllbiBoYW5oIGN1YSBUVSBEb2FuLCBCYW4gQmllbiB0 YXAgYmFvIFRpZW4gUGhvbmcgeGluIGJhbyBjYW8gdG9hbiANCmJvIHZ1IHZpZWMgbGllbiBxdWFu IGRlbiBraGlldSBraWVuIGN1YSBUYXAgZG9hbiBUYW4gVGFvIGRvaSB2b2kgYmFpIGJhbyAiQ2Fj IHNpZXUgZHUgDQphbiBjdWEgaGFpIHNpZXUgdGFwIGRvYW4gdmEgbmh1bmcgZGF1IGhvaSIgbmh1 IHNhdTogDQoNClRydW9jIGhldCwgYmFvIFRpZW4gUGhvbmcga2hhbmcgZGluaCwgYmFpIHZpZXQg IkNhYyBzaWV1IGR1IGFuIGN1YSBoYWkgc2lldSB0YXAgZG9hbiB2YSANCm5odW5nIGRhdSBob2ki IGRhbmcgdHJlbiBiYW8gVGllbiBQaG9uZyByYSBuZ2F5IDE3LzkvMjAxMCBjdWEgdGFjIGdpYSBI b25nIExpbmggeHVhdCANCnBoYXQgdHUgcXVhbiBkaWVtIGtoYWNoIHF1YW4gZHVhIHRyZW4gY2Fj IGNvIHNvLCBjaHVuZyBseSBkYXkgZHUgdmEgdnVuZyBjaGFjLiBCYWkgYmFvIA0KY3VhIHRhYyBn aWEgSG9uZyBMaW5oIGRlIGNhcCBub2kgZHVuZzogVGFwIGRvYW4gVGFuIFRhbyBvIFRQIEhvIENo aSBNaW5oIHRyb25nIG1heSANCm5hbSBxdWEgZHVvYyB0aW5oIEtpZW4gR2lhbmcgY2hhcCB0aHVh biBkYXUgdHUgbmhpZXUgZHUgYW4sIHRyb25nIGRvIGNvIGhhaSBzaWV1IGR1IGFuIA0KbGEgS2h1 IGRvIHRoaSBkYW8gSGFpIEF1LCBUcnVuZyB0YW0gbmhpZXQgZGllbiBLaWVuIEx1b25nLiBEdSBh biBLaHUgZG8gdGhpIGRhbyBIYWkgDQpBdSBzYXUgaG9uIDIgbmFtIGtob2kgY29uZyB2YW4gaW0g bGltOyBEdSBhbiBUcnVuZyB0YW0gbmhpZXQgZGllbiBLaWVuIEx1b25nIHRoaSBkYWkgDQpkaWVu IFRhcCBkb2FuIHRhaSBLaWVuIEdpYW5nIGtob25nIGNvbiBvIFZpZXQgTmFtIHZhIGRhbmcgbm8g bmFuIHRpZW4gdGhpIGNvbmcgbmFvIA0KdmV0IG1hdCBiYW5nIHZvaSBjYWMgZG9hbmggbmdoaWVw IHRoYXUgcGh1Lg0KDQpCYW8gVGllbiBQaG9uZyBjaGkgbmV1IGNhYyBjaHVuZyBseSB2YSBzdSB0 aGF0IGtoYWNoIHF1YW4gdHJvbmcga2h1b24ga2hvIG5vaSBkdW5nIA0KYmFpIHZpZXQgY3VhIHRh YyBnaWEgSG9uZyBMaW5oIGRhIGRhbmcgdHJlbiBUaWVuIFBob25nIG5nYXkgMTcvOS8yMDEwLiBD b24gbmh1bmcgbm9pIA0KZHVuZyBraGFjIG1hIHZhbiBiYW4gY3VhIFRhcCBkb2FuIFRhbiBUYW8g bmV1IHJhIGhvYWMgc3V5IGRpZW4gZGUgcXV5IGNodXAgY2hvIGJhaSANCnZpZXQgdmEgdGFjIGdp YSAodHJvbmcga2hpIGJhaSBiYW8gaG9hbiB0b2FuIGtob25nIGhlIGRlIGNhcCksIGJhbyBUaWVu IFBob25nIGtob25nIGJhbiANCnRvaSB0cm9uZyB2YW4gYmFuIG5heS4NCg0KMS4gVmUgZHUgYW4g IktodSBkbyB0aGkgZGFvIEhhaSBBdSIsIGJhaSBiYW8gbmV1OiBEdSBhbiBjbyBkaWVuIHRpY2gg MTk5LDcgaGEgdm9pIHRvbmcgDQp2b24gZGF1IHR1IDEuNTAwIHR5IGRvbmcgY3VhIFRhcCBkb2Fu IG5heSBsYW0gbGUga2hvaSBjb25nIHhvbmcgKG5nYXkgMTkvNS8yMDA4KSBkZW4gDQpuYXkgZGEg aG9uIDIgbmFtIHZhbiBpbSBsaW0uIFRoZW8gZHUga2llbiA1MyBoYSBjdWEgZHUgYW4gc2UgYm8g dHJpIGtob2FuZyA0LjAwMCBjdSANCmRhbiwgZGllbiB0aWNoIGRhbyBuaGFuIHRhbyBjb24gbGFp IHhheSBkdW5nIGtodSBuZ2hpIGR1b25nIGNhbyBjYXAsIGNvbmcgdmllbiwga2hhY2ggDQpzYW4s IGNhYyBjb25nIHRyaW5oIHBodWMgdnUgbGUgaG9pLCB2YW4gaG9hIGR1IGxpY2ggdmEgZGljaCB2 dSB0aHVvbmcgbWFpLi4uIFRhaSB0aG9pIA0KZGllbSBraG9pIGNvbmcgKDE5LzUvMjAwOCkgZHUg YW4gY2h1YSBjbyBxdWkgaG9hY2ggY2hpIHRpZXQgdmEgY29uIHRoaWV1IG1vdCBzbyB0aHUgdHVj IA0KY2FuIHRoaWV0IG5odW5nIFRhcCBkb2FuIGRhIHRvIGNodWMgbGUga2hvaSBjb25nLiBUdXkg bmhpZW4sIHNhdSBob24gMiBuYW0ga2hvaSBjb25nLCANCmhpZW4gbm9pIGR1IGtpZW4gY28gZGFv IG5oYW4gdGFvIHZhbiBsYSBtYXQgYmllbiB4YW5oIHJvbi4gTmd1b2kgZGFuIGRpYSBwaHVvbmcg Y2hvIA0KYmlldCwgY2h1IGRhdSB0dSBoYXUgbmh1IGtob25nIHRoYXkgeHVhdCBoaWVuLiBWYW4g cGhvbmcgZGFpIGRpZW4gY3VhIFRhcCBkb2FuIFRhbiBUYW8gDQp0cmVuIGR1b25nIExhYyBIb25n IG8gVFAgUmFjaCBHaWEgY3VuZyBpdCBraGkgbW8gY3VhLiBUYW0gYmFuZyBxdWFuZyBjYW8gS2h1 IGRvIHRoaSANCmRhbyBIYWkgQXUgZGEgcGhhaSBsYW0gbGFpIGxhbiB0aHUgaGFpIGRvIGdpbyBi aWVuIHhlIG5hdCwgbmF5IGR1bmcgY2hvIHZvIGdpdWEgbm9pIA0KaG9hbmcgdmFuZyB2b2kgY28g ZGFpLiANCg0KQmFvIFRpZW4gUGhvbmcga2hhbmcgZGluaDogbm9pIGR1bmcgbmF5IGN1YSBiYWkg YmFvIGR1b2MgcGhvbmcgdmllbiBIb25nIExpbmggcGhhbiANCmFuaCBraGFjaCBxdWFuIHZhIGNo aW5oIHhhYyB2b2kgbmh1bmcgZ2kgZGllbiByYSB0cmVuIHRodWMgZGlhIGN1YSBkdSBhbi4gQ29u ZyB0cmluaCBuYXkgDQpjdW5nIGRhIGR1b2MgbmhpZXUgZGFpIGJpZXUgSERORCB0aW5oIEtpZW4g R2lhbmcgY2hhdCB2YW4gdHJvbmcgY2FjIGt5IGhvcCBIRE5EIA0KdGluaCwgbmdheSB0cm9uZyBE YWkgaG9pIHRpbmggRGFuZyBibyBLaWVuIEdpYW5nIHZ1YSBxdWEgY3VuZyBkYSBjbyBkYWkgYmll dSBkZSBjYXAgDQpyYW5nOiBNb3QgY29uZyB0cmluaCBsb24gdHJvbmcgbmhpZW0ga3kgcXVhIGRh IGtob25nIHRodWMgaGllbiwgY2FuIHBoYWkgcnV0IGtpbmggbmdoaWVtIGtoaSBjaGFwIHRodWFu IGRhdSB0dS4NCg0KQ2hpbmggdHJvbmcgdmFuIGJhbiBuZ2F5IDIwLzkvMjAxMCBjdWEgVGFwIGRv YW4gVGFuIFRhbyBndWkgYmFvIFRpZW4gUGhvbmcgY3VuZyANCnRodWEgbmhhbjogIkR1IGFuIGR1 b2MgVUJORCB0aW5oIEtpZW4gR2lhbmcgcGhlIGR1eWV0IHF1eSBob2FjaCBjaGkgdGlldCAxLzUw MCB2YW8gDQp0aGFuZyAxMi8yMDA5IiB2YSAiVGFwIGRvYW4gVGFuIFRhbyBkYSB0aHVlIHR1IHZh biB4aW4gcGhlcCBCbyBUYWkgbmd1eWVuIE1vaSANCnRydW9uZyB2YSBVQk5EIHRpbmggS2llbiBH aWFuZyBjaG8gcGhlcCB0aGFtIGRvIHZhIGxhcCBobyBzbyBraGFpIHRoYWMgY2F0IHZlbiBiaWVu IA0KZGUgcGh1YyB2dSBkdSBhbiwgbmh1bmcgY2hvIGRlbiBob20gbmF5IFVCTkQgdGluaCB2YW4g Y2h1YSBjYXAgZ2lheSBwaGVwIGtoYWkgdGhhYyANCmNhdCBkZSBzYW4gbGFwLCBjaHVhIGdpYW8g bWF0IG51b2Mga2h1IHZ1YyBkdSBhbiB0aGkgbGFtIHRoZSBuYW8gY2h1bmcgdG9pIGNvIHRoZSBj aGluaCANCnRodWMgdGh1YyBoaWVuIHNhbiBsYXAsIHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQg Y2hvIGR1IGFuIi4gQ2h1YSBoZXQsIHZhbiBiYW4gNjMvVEItDQpJVEEtMTAgKG5nYXkgMjIvOS8y MDEwKSBjdWEgVGFwIGRvYW4gVGFuIFRhbyBndWkgU28gR2lhbyBkaWNoIGNodW5nIGtob2FuIFRQ SENNIA0KY3VuZyBnaGkgcm86ICJEdSBhbiBEYW8gSGFpIEF1LiBJVEFDTyAodHVjIFRhcCBkb2Fu IFRhbiBUYW8tVFApIGNodWEgdHJpZW4ga2hhaSB2aSANCmNodWEgZHVvYyBiYW4gZ2lhbyBtYXQg bnVvYywgbWF0IGtoYWMgSVRBQ08gZGFuZyB4aW4ga2hhaSB0aGFjIG5ndXllbiBsaWV1IGNhdCwg ZGEgZGUgDQpzYW4gbGFwIG1hdCBiYW5nIG5odW5nIGNodWEgZHVvYyBjaGFwIG5oYW4iLiANCg0K Tmh1IHZheSwgbW90IGxhbiBudWEgdmllYyBiYWkgYmFvIGRlIGNhcCBkdSBhbiBLaHUgZG8gdGhp IEhhaSBBdSBjdWEgVGFwIGRvYW4gVGFuIHRhbyANCiJraG9pIGNvbmcgeG9uZywgaW0gbGltIiB2 YSAia2hvaSBjb25nIGtoaSBjaHVhIGNvIHF1eSBob2FjaCBjaGkgdGlldCB2YSBjb24gdGhpZXUg bW90IA0Kc28gdGh1IHR1YyBjYW4gdGhpZXQiIGxhIGNoaW5oIHhhYy4NCg0KMi4gVmUgZHUgYW4g VHJ1bmcgdGFtIE5oaWV0IGRpZW4gS2llbiBMdW9uZzoNCg0KQmFpIGJhbyBjdWEgdGFjIGdpYSBI b25nIExpbmggbmV1OiBTaWV1IGR1IGFuIFRydW5nIHRhbSBuaGlldCBkaWVuIEtpZW4gTHVvbmcg KEtpZW4gDQpHaWFuZykgdm9pIHF1aSBtbyA0LjQwME1XIC0gNS4yMDBNVyB2YSBjYW5nIHRydW5n IGNodXllbiBudW9jIHNhdSB0YWkgcXVhbiBkYW8gDQpOYW0gRHUsIHRvbmcgdm9uIGRhdSB0dSBr aG9hbmcgNyw3IHR5IFVTRCwgZHVvYyBDaGluaCBwaHUgZG9uZyB5IGNobyBUYXAgZG9hbiBUYW4g DQpUYW8gbGFtIGNodSBkYXUgdHUgbmFtIDIwMDguIER1IGFuIG5heSBkdSBraWVuIGtob2kgY29u ZyBjdW9pIG5hbSAyMDA5LCBzYXUgZG8gbGFpIA0KZG9pIHNhbmcgZGlwIDMwLTQtMjAxMCwgbmh1 bmcgZGVuIG5heSB2YW4gY2h1YSBkdW9jIGtob2kgY29uZy4gVHJvbmcgcXVhIHRyaW5oIGNodWFu IA0KYmkga2hvaSBjb25nLCBUYXAgZG9hbiBUYW4gVGFvIHhpbiB0aGF5IGRvaSB2aSB0cmkgZGF0 IG5oYSBtYXkgbmhpZXQgZGllbiB2YSBkdW9jIHRpbmggDQpLaWVuIEdpYW5nIGNoYXAgdGh1YW4s IGNobyBsYW4gdGhlbSAzMDAgaGEgbWF0IG51b2MgYmllbi4gVmUgbmhhbiBzdSBjdW5nIGNvIHN1 IA0KdGhheSBkb2ksIG9uZyBUcmFuIEppbW15LCBUcnVvbmcgZGFpIGRpZW4gY3VhIENoaSBuaGFu aCBDdHkgQ28gcGhhbiBEYXUgdHUgdmEgQ29uZyANCm5naGllcCBUYW4gVGFvIHRhaSBLaWVuIEdp YW5nIChUYXAgZG9hbiBUYW4gVGFvKSwgbmF5IGRhIHZlIE15LiBMYW5oIGRhbyB0aW5oIEtpZW4g DQpHaWFuZyBjaG8gYmlldDogVGFwIGRvYW4gVGFuIFRhbyBkYSB0aGF5IGRvaSBuaGFuIHN1IHRh aSB0aW5oIHR1IDIwLTUtMjAxMCBuaHVuZyANCmNodWEgY28gdGhvbmcgYmFvIGNoaW5oIHRodWMu IFZhIGhpZW4gZHUgYW4gZGFuZyBjbyB0aW5oIHRyYW5nICJObyBuYW4gdmEgeGFvIHRyb24iLg0K DQpCYWkgYmFvIG5ldSBybzogQ2h1YSBjaGluaCB0aHVjIGtob2kgY29uZyBuaHVuZyBUcnVuZyB0 YW0gbmhpZXQgZGllbiBLaWVuIEx1b25nIA0KY3VuZyBkYSBidW9jIGRhdSB0cmllbiBraGFpIGdp YWkgdG9hLCBuYW8gdmV0IHZhIHNhbiBsYXAgbWF0IGJhbmcuIE5ndW9pIGRhbiBxdWFuaCB2dW5n IA0Kc2lldSBkdSBhbiBjaG8gYmlldCwgdHJ1b2MgbmdheSAzMC00LTIwMTAsIGNvIG5oaWV1IHBo dW9uZyB0aWVuIHhlIG1heSwgdGF1IHRodXllbiBrZW8gDQp2ZSB2dW5nIGR1IGFuIGhvYXQgZG9u Zy4gVGhlIG5odW5nIGNoaSBkdW9jIHRob2kgZ2lhbiBuZ2FuLCBkYWkgY29uZyB0cnVvbmcgbGFp IHZhbmcgDQpib25nIHRhdSwgeGUgdmEgZGUgbGFpLi4uIG5vIG5hbi4gQmEgTGUgVGhpIEtpbSBD aGF1LCBHRCBDdHkgVE5ISCBDaGF1IFBoYXQgKEtpZW4gDQpHaWFuZykgY2hvIGJpZXQ6ICJUYXAg ZG9hbiBUYW4gVGFvIG5vIGNodW5nIHRvaSBnYW4gOCB0eSBkb25nLCBob24gYm9uIHRoYW5nIHF1 YSANCmNodWEgdHJhIGRvbmcgbmFvLiBDaHVuZyB0b2kgY3VuZyBraG9uZyB0aGUgbGllbiBsYWMs IGhvIHRyb24gZGF1IG1hdCBoZXQgcm9pLiBUb2kgZ29pIGRpZW4gDQp0aG9haSBjaG8gYmEgRGFu ZyBUaGkgSG9hbmcgWWVuLCBDaHUgdGljaCBUYXAgZG9hbiBUYW4gVGFvLCB0aGkga2hvbmcgbmdo ZSBtYXkuIEN0eSANCmNodW5nIHRvaSBreSBob3AgZG9uZyB2b2kgQ3R5IENvIHBoYW4gUGhhdCB0 cmllbiBkbyB0aGkgVmlldCBOYW0sIGRvIG9uZyBUcmFuIEppbW15IA0KbGEgY2hvbmcgY3VhIGJh IFllbiBsYW0gVEdELCBuYXkgb25nIG5heSBkYSB2ZSBNeS4gVHUgdGhhbmcgNS0gMjAxMCB0b2kg Z2lvIGtob25nIA0KZ2FwIGR1b2MgYWkgY3VhIFRhcCBkb2FuIFRhbiBUYW8gZGUgbm9pIGNodXll biBwaGFpIHF1YXkuIEhvIHRob25nIGJhbyBiYSBWdSBUaGkgDQpOZ2EgbGVuIGxhbSBHRCB0aGF5 IG9uZyBUcmFuIEppbW15LCB0dXkgbmhpZW4gY3VuZyBraG9uZyB0aGUgbGllbiBsYWMgZHVvYyB2 b2kgYmEgDQpuYXkuIERpZW4gdG9pIGFpIG5ndW9pIHRhIGN1bmcgdHJhIGxvaSBsYSBtb2kgdmFv IGxhbSBraG9uZyBiaWV0IGNodXllbiB0cnVvYyBkbyIuIA0KDQpDb24gb25nIENhbyBNaW5oIEh1 bmcsIEdEIEN0eSBUTkhIIER1YyBWYW4gKFZ1bmcgVGF1KSBjb24gZ3VpIGRvbiBkZW4gY2EgY28g DQpxdWFuIGNvbmcgYW4ga2hpZXUgbmFpLCBkb2kgbm8gVGFwIGRvYW4gVGFuIFRhby4gIlRvaSBr eSBob3AgZG9uZyBuYW8gdmV0IGJ1biB0YWkga2h1IA0KdnVjIGRhdSB0dSBuaGEgbWF5IG5oaWV0 IGRpZW4gS2llbiBMdW9uZyB2b2kgVGFwIGRvYW4gVGFuIFRhbyB0dSBkYXUgdGhhbmcgMS0yMDEw LiANCkhpZW4gbm8gcXVhIGhhbiB0aGVvIGhvcCBkb25nIGRhIHRyZW4gMzYgdHkuIENodW5nIHRv aSBkaWVuIHRob2FpLCByb2kgbmhhbiB0aW4gcmF0IGxpY2ggc3UgDQpuaHVuZyBobyBraG9uZyBu Z2hlLCBraG9uZyB0cmEgbG9pLiBOZXUgaG8ga2hvbmcgdHJhIHRpZW4gbmFvIHZldCBidW4gY2hv IHRvaSB0aGkgdG9pIHNlIA0Ka2hvbmcgZ2lhbyBtYXQgYmFuZyBjaG8gaG8gc2FuIGxhcCIsIG9u ZyBIdW5nIHF1YSBxdXlldC4gTmd1b2kgZGFuIHRyb25nIHZ1bmcgZHUgYW4gDQpkYSBiaSB4YW8g dHJvbiBjdW9jIHNvbmcuIE5oaWV1IG5ndW9pIGtob25nIGNoaXUgbmhhbiB0aWVuIGdpYWkgcGhv bmcgbWF0IGJhbmcgdmkgZ2lhIA0KYm9pIGhvYW4gcXVhIHRoYXAuIA0KDQpOaHVuZyBjaGkgdGll dCB2YSBub2kgZHVuZyBiYWkgYmFvIGRlIGNhcCBuZXUgdHJlbiwgZHVvYyB0YWMgZ2lhIEhvbmcg TGluaCB0aHUgdGhhcCANCnRob25nIHRpbiBkdW5nIHF1eSBkaW5oIHRhYyBuZ2hpZXAgY3VhIG5o YSBiYW8sIHBoYW4gYW5oIHRydW5nIHRodWMgdGluaCBoaW5oIHRoYW5oIHRvYW4gDQp2YSBubyBu YW4gY3VhIHZpZWMgdGhpIGNvbmcgbmFvIHZldCBzYW4gbGFwIG1hdCBiYW5nIGN1YSBkdSBhbi4N Cg0KVmllYyBUYXAgZG9hbiBUYW4gVGFvIHF1eSBjaHVwIGJhaSBiYW8gdmEgdGFjIGdpYSAidmll dCBzYWkgc3UgdGhhdCwgYmlhIGRhdCB2dSBraG9uZywgDQpiYW8gdmUga2UgcGhhbSBwaGFwIGRh bmcgbGFuIHRyb24uLi4iIGxhIGR1YSB0cmVuIGx1YW4gZGllbSBUYXAgZG9hbiBUYW4gVGFvIGR1 YSByYSANCnJhbmc6ICJDb25nIHR5IGNvIHBoYW4gUGhhdCB0cmllbiBkbyB0aGkgVmlldCBOYW0t VmlldG5hbSBMYW5kLCBsYSBtb3QgY29uZyB0eSB0cm9uZyANCm5oaWV1IGNvbmcgdHkgdGh1ZSBu aGEgeHVvbmcgdHJvbmcga2h1IGNvbmcgbmdoaWVwIFRhbiBEdWMtbW90IHRyb25nIG5odW5nIGto dSBDTiANCmN1YSBUYXAgZG9hbiBUYW4gVGFvLi4uIENvbmcgdHkgVmlldG5hbSBMYW5kIGhvYW4g dG9hbiBraG9uZyBwaGFpIGxhIGNvbmcgdHkgY29uIGN1YSANClRhcCBkb2FuIFRhbiBUYW8sIGRh eSBsYSBtb3QgY29uZyB0eSBjbyBwaGFwIG5oYW4gaG9hbiB0b2FuIGRvYyBsYXAgdmEgZGFuZyB0 aGkgY29uZyANCmNhYyBjb25nIHRyaW5oIGNobyBUYXAgZG9hbiBUYW4gVGFvIjsgdmEgIiBWaWVj IFZpZXRuYW0gTGFuZCBjaHVhIHRoYW5oIHRvYW4gdGllbiBjaG8gDQpjYWMgbmhhIHRoYXUgcGh1 IGtob25nIGxpZW4gcXVhbiBkZW4gVGFwIGRvYW4gVGFuIFRhbyIuIFJvaSAiRG8gdnUgYW4gVHJh biBKaW1teSANCihuZ3V5ZW4gVG9uZyBnaWFtIGRvYyBWaWV0bmFtIExhbmQtVFApIHZhIGRvbmcg Ym9uIHRpbmggdmksIHBodWMgdGFwLCBsaWVuIHF1YW4gZGVuIA0KZHVvbmcgZGF5IGNodXllbiBu Z2FuIGxhdSBxdWEgYmllbiBnaW9pIHZhIGNvbiB0cm9uZyBnaWFpIGRvYW4gZGlldSB0cmEuIFJp ZW5nIGNhYyBDb25nIA0KdHkgQ2hhdSBQaGF0LCBjb25nIHR5IFROSEggRHVjIFZhbiwgQ29uZyB0 eSBIdXluaCBNb3QsIENvbmcgdHkgUXVvYyBMaW5oLCBDb25nIA0KdHkgTmdvIE1pbmggVHJ1b25n IHZhIG5oaWV1IENvbmcgdHkga2hhYyBkZXUgY28gbmhpZXUgZGluaCBsaXUgZGVuIHZ1IGFuIFRy YW4gSmltbXkgDQp2YSBkb25nIGJvbiwgdmkgdmF5LCBuZ2F5IDEwLzYvMjAxMCBjb25nIHR5IFZp ZXRuYW0gTGFuZCBkYSBjbyB2YW4gYmFuIHRob25nIGJhbyANCm5ndW5nIHRhdCBjYSBjYWMgZ2lh byBkaWNoIGRvaSB2b2kgY2FjIGRvYW5oIG5naGllcCBuYXkgZGUgY2hvIGtldCBsdWFuIGN1YSBj byBxdWFuIGRpZXUgdHJhIi4NCg0KQmFvIFRpZW4gUGhvbmcgY28gY28gc28gZGUga2hhbmcgZGlu aCBsb2kgbGUgdHJvbmcgY29uZyB2YW4gY3VhIFRhcCBkb2FuIFRhbiBUYW8gbGEgDQpraG9uZyBk dW5nIHZhIGNvIHRoYWkgZG8gcXV5IGtldC4NCg0KVGh1IG5oYXQsIHRoZW8gZ2lheSBwaGVwIGRh bmcga3kga2luaCBkb2FuaCBzbyAxMTAwODU3NDU2IChuZ2F5IDcvMTIvMjAwOSkgZG8gU28gS2Ug DQpob2FjaCB2YSBEYXUgdHUgdGluaCBMb25nIEFuIGNhcCB0aGkgQ29uZyB0eSBjbyBwaGFuIFZp ZXRuYW0gTGFuZCAoZG8gb25nIEppbW15IA0KVHJhbiBsYW0gVG9uZyBnaWFtIGRvYykgY28gdm9u IGRpZXUgbGUgMTAwIHR5IGRvbmcsIHZvaSAzIGNvIGRvbmcgc2FuZyBsYXAgZ29tOiBDb25nIA0K dHkgY28gcGhhbiBEYWkgaG9jIFRhbiBUYW8gKGdvcCAzNSUgdm9uKTsgQ29uZyB0eSBjbyBwaGFu IFBoYXQgdHJpZW4gaGEgdGFuZyBUYW4gVGFvIA0KKGdvcCAzMCUgdm9uKTsgQ29uZyB0eSBjbyBw aGFuIE5hbmcgbHVvbmcgVGFuIFRhbyAoZ29wIDM1JSB2b24pLiBUYWkgdGhvaSBkaWVtIA0KMjAw OSwgdGFwIGRvYW4gVGFuIFRhbyBkYSB0aG9uZyBiYW8gQ29uZyB0eSBjbyBwaGFuIG5hbmcgbHVv bmcgVGFuIFRhbyBsYSBjaHUgZGF1IHR1IA0KY3VhIER1IGFuIG5oaWV0IGRpZW4gS2llbiBMdW9u ZyBuYXkuIFRhcCBkb2FuIFRhbiBUYW8gbm9pICJWaWV0bmFtIExhbmQga2hvbmcgbGllbiANCnF1 YW4gZGVuIFRhcCBkb2FuIFRhbiBUYW8iIGxhIHRyb24gdHJhY2ggbmhpZW0uIEhvbiBudWEsIHRo dWMgdGUsIHR1IDIwMDkgZGVuIA0KMjAvNS8yMDEwLCBUb25nIGdpYW0gZG9jIFZpZXRuYW0gTGFu ZCAobmd1b2kga3kgY2FjIGhvcCBkb25nIHZvaSBjYWMgdGhhdSBwaHUpIGxhIA0Kb25nIEppbW15 IFRyYW4gbGFpIGRvbmcgdGhvaSBsYSBUcnVvbmcgZGFpIGRpZW4gY3VhIFRhcCBkb2FuIFRhbiBU YW8gdGFpIEtpZW4gR2lhbmcuIA0KDQpDaG8gZGVuIG5nYXkgMi82LzIwMTAgVG9uZyBHaWFtIGRv YyBUYXAgZG9hbiBUYW4gVGFvIFRoYWkgVmFuIE1lbiBtb2kga3kgVGhvbmcgDQpiYW8gc28gMjQ3 L0NULTEwIGd1aSBVQk5EIHRpbmggS2llbiBHaWFuZyB0aG9uZyBiYW8gb25nIEppbW15IFRyYW4g dGhvaSBnaXUgY2h1YyANClRvbmcgZ2lhbSBkb2MgVmlldG5hbSBMYW5kLCBkb25nIHRob2kgY3Vu ZyBraG9uZyBjb24gbGEgVHJ1b25nIGRhaSBkaWVuIFRhcCBkb2FuIA0KVGFuIFRhbyB0YWkgS2ll biBHaWFuZyBudWEsIGtlIHR1IG5nYXkgMjAvNS8yMDEwLiBEb25nIHRob2ksIEppbW15IFRyYW4g Y3VuZyBjaGluaCANCmxhIGNob25nIGN1YSBiYSBEYW5nIFRoaSBIb2FuZyBZZW4sIGNodSB0aWNo IHRhcCBkb2FuIFRhbiBUYW8uDQoNCkNodWEgY2FuIGRhbiByYSBuaGlldSB0dSBsaWV1IGRlIGNo dW5nIG1pbmggY3VuZyBkdSBkZSBoaWV1IGtoaSBoYWkgY2h1IGhhaSBkb2FuaCANCm5naGllcCAo Q3R5IENoYXUgUGhhdCB2YSBDdHkgRHVjIFZhbikgcGhhdCBiaWV1IHRyb25nIGJhaSBiYW8gdHJl biBUaWVuIFBob25nIHJhbmc6IA0KIlRhcCBkb2FuIFRhbiBUYW8gbm8gY2h1bmcgdG9pLi4uLCB2 YSBnb2kgZG9uIGRlbiBjbyBxdWFuIGNvbmcgYW4gZG9pIG5vIFRhbiBUYW8iIHZpIA0KaG8gZGV1 IGtoYW5nIGRpbmggVmlldG5hbSBMYW5kIHZvaSBUYW4gVGFvIGxhIG1vdC4gDQoNClRodSBoYWks IHRoZW8gdGFpIGxpZXUgZG8gY2hpbmggVGFwIGRvYW4gVGFuIHRhbyBjdW5nIGNhcCB0aGkgbmdh eSA4LzkvMjAxMCwgQ28gcXVhbiBBbiANCm5pbmggZGlldSB0cmEgKEJvIENvbmcgYW4pIG1vaSBy YSBxdXlldCBkaW5oIGtob2kgdG8gdnUgYW4gaGluaCBzdSBkb2kgdm9pIFRyYW4gSmltbXkgDQp2 YSBkb25nIGJvbiAoY2h1YSBraG9pIHRvIGJpIGNhbi1UUCksIHRyb25nIGtoaSBuaHVuZyB0aG9u ZyB0aW4gdGh1YyB0ZSB2ZSBjb25nIG5vIGN1YSANClZpZXRuYW0gTGFuZCB2b2kgY2FjIG5oYSB0 aGF1IHBodSBkdW9jIHBob25nIHZpZW4gSG9uZyBMaW5oIHRodSB0aGFwIChrZSBjYSBjdW9jIGxp ZW4gDQpsYWMgdm9pIG9uZyBUcmFuIEppbW15IGR1b2MgdGh1YyBoaWVuIG5nYXkgNy85KSBkZXUg ZGllbiByYSB0cnVvYyBuZ2F5IHZ1IGFuIGR1b2Mga2hvaSANCnRvLiBLaGkgcGhvbmcgdmllbiBI b25nIExpbmggZGllbiB0aG9haSB4aW4gZ2FwIG5ndW9pIHRoYXkgdGhlIG9uZyBKaW1teSBUcmFu IGxhbSBkYWkgDQpkaWVuIFRhcCBkb2FuIFRhbiBUYW8gbyBLaWVuIEdpYW5nIGxhIG9uZyBOZ3V5 ZW4gVHVhbiBNaW5oIHZhIGJhIEh1eW5oIEhvYWkgQ2hhdSANCmRlIHRyYW8gZG9pIHRob25nIHRp biBsaWVuIHF1YW4gZGVuIHZpZWMgbm8gbmFuIG5vaSB0cmVuIHRoaSBvbmcgTWluaCBub2kgcmFu ZyBvbmcga2hvbmcgDQpjbyB0cmFjaCBuaGllbSB0cmEgbG9pLCBjbyBnaSBjdSBlbWFpbCBjYXUg aG9pIHRoYWMgbWFjIHNlIGNvIGJvIHBoYW4ga2hhYyBnaWFpIGRhcC4gDQoNClBob25nIHZpZW4g SG9uZyBMaW5oIGRhIGVtYWlsIGNhdSBob2kgdGhlbyBkaWEgY2hpIG9uZyBNaW5oIGN1bmcgY2Fw IG5odW5nIGtob25nIA0KZHVvYyBob2kgYW0uIFBob25nIHZpZW4gSG9uZyBMaW5oIHRpZXAgdHVj IGRpZW4gdGhvYWkgY2hvIGJhIENoYXUgdGhpIGNhdSBkYXUgdGllbiBiYSANCm5heSB0cmEgbG9p IHJhbmc6ICJBbmggaG9pIGJhIGNodSB0aWNoIHRhcCBkb2FuIGF5Iiwgc2F1IGRvIGJhIG5heSBs YWkgbm9pIHRvaSBraG9uZyBjb24gDQpsYW0gY2hvIFRhbiBUYW8gbyBLaWVuIEdpYW5nIG51YS4g VHUgbGlldSBjaHVuZyBseSBkYW5nIGR1b2MgcGhvbmcgdmllbiBsdXUgZ2l1IGNoYXQgDQpjaGUu IA0KRHUgdmF5LCB0YWMgZ2lhIEhvbmcgTGluaCwgdHJvbmcgYmFpIHZpZXQgY3VuZyBkYSBkYW4g dGhvbmcgdGluICJUYWkgdmFuIGJhbiBzbyA1MCBuZ2F5DQogNS03LTIwMTAsIGd1aSBDdHkgVE5I SCBDaGF1IFBoYXQsIGJhIFZ1IFRoaSBOZ2EsIFRHRCBWaWV0bmFtIExhbmQgdmlldDogRG8gb25n IA0KVHJhbiBKaW1teSBjbyBuaGlldSBiaWV1IGhpZW4gdGlldSBjdWMgdHJvbmcgdmFuIGRlIGhv cCBkb25nIGtpbmggdGUgbmVuIGRhIGJpIGJhaSANCm5oaWVtIGtlIHR1IG5nYXkgMjAtNS0yMDEw LiBWYW4gYmFuIG5heSBjaG8gcmFuZyBvbmcgVHJhbiBKaW1teSBkYSB0dSB5IG5hbmcgZG9uIGdp YSANCmhvcCBkb25nIG5hbyB2ZXQgYnVuIHZvaSBDdHkgQ2hhdSBQaGF0IHZ1b3QgNDYlIHNvIHZv aSBnaWEgZGEgeGluIHkga2llbiBjdWEgaG9pIGRvbmcgDQpxdWFuIHRyaS4gSGllbiB0b2FuIGJv IGhvIHNvIGNhYyBob3AgZG9uZyBraW5oIHRlIGxpZW4gcXVhbiBkZW4gb25nIFRyYW4gSmltbXkg ZGV1IGRhIA0KZHVvYyBjaHV5ZW4gY2hvIGNvIHF1YW4gZGlldSB0cmEgbGFtIHJvLiBWaWV0bmFt IExhbmQgc2Uga2hvbmcgY2hpdSB0aGFuaCB0b2FuIGNobyANCmRlbiBraGkgY28ga2V0IGx1YW4g Y3VhIGNvIHF1YW4gZGlldSB0cmEiLiANCg0KTmh1IHZheSwgdGFjIGdpYSBkYSB0aG9uZyB0aW4g aGFpIGNoaWV1LCB2YSB2aSB2YXksIFRhcCBkb2FuIFRhbiBUYW8ga2hvbmcgdGhlIHF1eSBjaHVw IA0KcGhvbmcgdmllbiBIb25nIExpbmggbGEgInRpZXAgdGF5LCBiYW8ga2UgY2hvIHRvaSBwaGFt Ii4gRG8gbGEgY2h1YSBrZSwgbmV1IG1vaSBjaGkgDQpraG9pIHRvIHZ1IGFuIGRlIGRpZXUgdHJh IHRoaSBjaHVhIGtoYW5nIGRpbmggZHVvYyBhaSBjbyB0b2kgY2hvIGRlbiBraGkgVG9hIGFuIHhl dCB4dSwgDQp0dXllbiBhbi4gQmFvIFRpZW4gUGhvbmcga2hhbmcgZGluaCwgYmFpIGJhbyBjaHV5 ZW4gdGFpIHRob25nIHRpbiBraGFjaCBxdWFuLCB0cnVuZyANCnRodWMsIGR1b2MgdGh1YyBoaWVu IGR1bmcgcXV5IHRyaW5oIHRhYyBuZ2hpZXAsIGR1bmcgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCwg dGhlIGhpZW4gDQpxdXllbiBkdW9jIHRob25nIHRpbiBjdWEgYmFvIGNoaS4gVGllbiBQaG9uZyBr aG9uZyB2dSBraG9uZyBhaSwga2hvbmcgdGllcCB0YXkgY2hvIHRvaSANCnBoYW0gdmEgY3VuZyBr aG9uZyB0aGUgbmFvIHBoYSBkdW9jIGNvbmcgdHJpbmggdHJvbmcgZGllbSBxdW9jIGdpYSBuaHUg VGFuIFRhbyBzdXkgDQpkaWVuIHZhIHF1eSBjaHVwLiANCg0KMy4gVmllYyBUYXAgZG9hbiBUYW4g VGFvIHRyb25nIHZhbiBiYW4gdmlldDogIlBoaWEgVGFwIGRvYW4gVGFuIFRhbyB0cnVvYyBraGkg Y2h1YSANCmRhbmcgYmFpIGJhbywgY2h1bmcgdG9pIGRhIHRob25nIGJhbyB0b2kgcGhvbmcgdmll biBIb25nIExpbmggbGEgY2FjIGRvaSB0dW9uZyBxdXkgQmFvIA0KZGFuZyBiZW5oIHZ1YyAoSmlt bXkgVHJhbiB2YSBkb25nIGJvbikgZGEgYmkgY28gcXVhbiBhbiBuaW5oIEJvIENvbmcgYW4ga2hv aSB0bywgdmEgDQpkZSBuZ2hpIHhhYyBtaW5oIHRob25nIHRpbiBjaGluaCB4YWMgdHJ1b2Mga2hp IGRhbmcgdGFpIG5odW5nIHBob25nIHZpZW4gSG9uZyBMaW5oIGRhIA0KYm8gcXVhIGNoaSB0aWV0 IG5heSwgbmdoaWVtIHRyb25nIGhvbiBwaG9uZyB2aWVuIEhvbmcgTGluaCB0aWVwIHR1YyBwaGF0 IHRhbiBobyBzbyBxdWEgDQplbWFpbCwgZGllbiB0aG9haSwgdGhvbmcgdGluIHNhaSBzdSB0aGF0 ICJtb3QgY2hpZXUiIGd1aSB0b2kgY2FjIGJhbyBiYW4gbmh1IERhaSB0cnV5ZW4gDQpoaW5oIFZp ZXQgTmFtLCBjYWMgcGhvbmcgdmllbiBraGFjLi4uIGRlIHBodWMgdnUgbG9pIGljaCBjYSBuaGFu IGN1YSBtaW5oLiBDaHVuZyB0b2kgDQpkYXQgZGF1IGhvaSByYW5nIDogcGhhaSBjaGFuZyBwaG9u ZyB2aWVuIEhvbmcgTGluaCBkdW9jIEppbW15IFRyYW4gdmEgZG9uZyBib24gdGh1ZSANCnZpZXQg YmFpIGRhbmcgdHJlbiBCYW8gVGllbiBQaG9uZyIuIA0KQmFvIFRpZW4gUGhvbmcga2hhbmcgZGlu aDogRGF5IGxhIHRob25nIHRpbiBiaWEgZGF0ISBWYSBob2FuIHRvYW4ga2hvbmcgY28gYmF0IGt5 IG1vdCANCmRhaSBkaWVuIGN1YSBUYXAgZG9hbiBUYW4gVGFvIG5hbyB0cnVjIHRpZXAgZ2FwIHBo b25nIHZpZW4gSG9uZyBMaW5oIGRlIHRob25nIGJhbyANCm5odW5nIHZ1IHZpZWMgbGllbiBxdWFu IGRlbiBoby4gQ2hpIGNvIGhhaSBuZ3VvaSwgbW90IHR1IHh1bmcgbGEgcGhvbmcgdmllbiBjdWEg RGFpIA0KdHJ1eWVuIGhpbmgga3kgdGh1YXQgc28gVlRDIHZhIG1vdCBuZ3VvaSB4dW5nIGxhIHBo b25nIHZpZW4gYmFvIFF1YW4gZG9pIE5oYW4gZGFuIA0KZGllbiB0aG9haSB2YW8gbWF5IGN1YSBw aG9uZyB2aWVuIEhvbmcgTGluaCBub2kga2lldSBuYW4gbmkga2hvbmcgZGFuZyBiYWkgbGllbiBx dWFuIA0KZGVuIFRhbiBUYW8gbGVuIGJhbyBUaWVuIFBob25nIHZpICJsYSBjaG8gZG9uZyBuZ2hp ZXAgdm9pIG5oYXUsIHZpIFRhbiBUYW8gbGEgZG9pIHRhYyANCnRydXllbiB0aG9uZyB2b2kgZGFp IGJvbiBlbSwgLi4uIi4gSG8gc28gY2h1bmcgbHkgZGEgZHVvYyBwaG9uZyB2aWVuIEhvbmcgTGlu aCB0YXAgaG9wIA0KZGF5IGR1IHZhIGJhbyBjYW8gbmdoaWVtIHR1Yy4NCg0KNC4gVmllYyBUYXAg ZG9hbiBUYW4gVGFvIGtoaWV1IG5haSA6ICJRdXkgYmFvIGNvbmcgYm8gb25nIEppbW15IFRyYW4g bGEgY2hvbmcgY3VhIA0KQ2h1IHRpY2ggSG9pIGRvbmcgcXVhbiB0cmkgVGFwIGRvYW4gbGEgaG9h biB0b2FuIGNodWEgY2hpbmggeGFjIHZhIHRpZXAgdGF5IGNobyBob2F0IA0KZG9uZyBsdWEgZGFv IGN1YSBPbmcgSmltbXkgVHJhbiB2YSBtb3QgcGh1IG51IG1hIG9uZyBkYSBkdWEgZGkgZ2lvaSB0 aGlldSBsYSB2byB2YSANCmNodSB0aWNoIGN1YSBUYXAgZG9hbiBkZSBsdWEgZGFvLCBiYW4gdmll YyBreSBrZXQgSG9wIGRvbmcsIG5oYW4gdGllbiBkYXQgY29jIHJvaSBjaGllbSANCmRvYXQgaGll biBjbyBxdWFuIHBoYXAgbHVhdCBkYW5nIGRpZXUgdHJhIGxhbSBybyIuIA0KVmUgdmllYyBuYXks IEJhbyBUaWVuIFBob25nIHRoYXkgcmFuZywgY2hpIHRpZXQgb25nIEppbW15IFRyYW4gbGEgY2hv bmcgYmEgRGFuZyBUaGkgDQpIb2FuZyBZZW4sIENodSB0aWNoIFRhcCBkb2FuIFRhbiBUYW8gbmFt IG8gY2F1IHRyaWNoIGRhbiBsb2kgbm9pIGN1YSBiYSBMZSBUaGkgS2ltIENoYXUsIA0KR0QgQ3R5 IFROSEggQ2hhdSBQaGF0LiBUcm9uZyBobyBzbyBjdWEgcGhvbmcgdmllbiBjdW5nIGNvIGJhbiBz YW8gR2lheSBkYW5nIA0Ka3kga2V0IGhvbiBjdWEgb25nIEppbW15IFRyYW4gdm9pIGJhIERhbmcg VGhpIEhvYW5nIFllbiB0YWkgSGF0IEhhcmlzLCBCYW5nIFRleGFzIChNeSkgDQpuZ2F5IDE0Lzgv MjAwNy4gVmEgdGh1YyB0ZSwgbyB0aG9pIGRpZW0gZGUgY2FwIHRyb25nIGJhaSBiYW8gb25nIEpp bW15IFRyYW4gZHVvYyANCmdpb2kgdGhpZXUgbyByYXQgbmhpZXUgbm9pIHZvaSB0dSBjYWNoIGNo b25nIGJhIERhbmcgVGhpIEhvYW5nIFllbi4gVHV5IG5oaWVuLCBtb2kgZGF5IA0KYmEgWWVuIHRy dWMgdGllcCBjaG8gYmFvIFRpZW4gUGhvbmcgYmlldCBoYWkgbmd1b2kgZGEgbHkgaG9uLg0KDQo1 LiBWaWVjIGJhaSBiYW8gZGFuZyBwaGF0IGJpZXUgY3VhIENodSB0aWNoIFVCTkQgdGluaCBLaWVu IEdpYW5nIEJ1aSBOZ29jIFN1b25nLCANCnJhbmc6ICJOaHVuZyB2YW4gZGUgbGllbiBxdWFuIGRl biBkYXUgdHUgY3VhIFRhcCBkb2FuIFRhbiBUYW8gdmFvIHRpbmggS2llbiBHaWFuZywgDQpVQk5E IHRpbmggZGFuZyBnaWFvIGNobyBvbmcgUGhhbSBWdSBIb25nLCBQaG8gY2h1IHRpY2ggVUJORCB0 aW5oIHBodSB0cmFjaCBjb25nIA0KbmdoaWVwIC0geGF5IGR1bmcsIHJhIHNvYXQgbGFpIHhlbSB0 aGUgbmFvLiBUaWVuIGRvIHRodWMgaGllbiBkdSBhbiB0aGVvIGtlIGhvYWNoIG5odSANCnZheSBs YSByYXQgY2hhbS4gVmllYyBzYW4gbGFwIG1hdCBiYW5nIGhpZW4gdmFuIGNodWEgZHVvYyBiYW8g bmhpZXUuIENvIHRoZSBobyBraG8gDQpraGFuIHZlIHRhaSBjaGluaCIuIA0KQmFvIFRpZW4gUGhv bmcgdGhheSByYW5nLCBkYXkgbGEgcGhhdCBuZ29uIGNoaW5oIHRodWMga2hpIG9uZyBDaHUgdGlj aCB0aW5oIEtpZW4gR2lhbmcgDQpsYW0gdmllYyB2b2kgcGhvbmcgdmllbiAoZHVvYyBsdXUgdHUg bGlldSksIHZhIHZvaSB0dSBjYWNoIG5ndW9pIGR1bmcgZGF1IFVCTkQgdGluaCwgDQpvbmcgQnVp IE5nb2MgU3VvbmcgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbSB2ZSBwaGF0IG5nb24gY3VhIG1p bmguIA0KDQo2LiBLZXQgbHVhbiANCkJhbiBCaWVuIHRhcCBiYW8gVGllbiBQaG9uZyBjYW4gY3Ug dHJlbiBobyBzbywgdGFpIGxpZXUgZGF5IGR1IGN1YSB2dSB2aWVjLCBraGFuZyBkaW5oIA0KcmFu ZyB0YWMgZ2lhIGJhaSBiYW8gZGEgbmV1IHN1IHRodWMga2hhY2ggcXVhbiBjaHUga2hvbmcgaGUg Y28gY2FpIGdvaSBsYSAiaG9hbiB0b2FuIGJpYSANCmRhdCwgdnUga2hvbmcgZHVhIHRyZW4gdGhv bmcgdGluIHRodSB0aGFwIHR1IGtlIHBoYW0gcGhhcCB2YSBkb25nIGJvbi4uLiBkZSBiYW8gdmUg dG9pIA0KcGhhbSIgbmh1IGRhIG5ldSB0cm9uZyB2YW4gYmFuIGtoaWV1IG5haSBjdWEgVGFwIGRv YW4gVGFuIFRhby4gQmFuIEJpZW4gdGFwIGJhbyBUaWVuIA0KUGhvbmcgbmhhbiBkaW5oIGxvaSBs ZSB0cm9uZyBjb25nIHZhbiBraGlldSBuYWkgY3VhIFRhcCBkb2FuIFRhbiBUYW8gbGEga2hvbmcg YmluaCANCnRodW9uZywgbyBjaG8gcXV5IGNodXAgdGFjIGdpYSB2YSBiYW8gVGllbiBQaG9uZyBt b3QgY2FjaCB0aGlldSBjbyBzbzsgbGFpIGR1b2MgZ3VpIGRpIA0KcmF0IG5oaWV1IGNvIHF1YW4g dmEgY2EgbmhhbiBraG9uZyBkdW5nIHRodSB0dWMgcXV5IGRpbmggY3VhIEx1YXQgQmFvIGNoaSB2 YSBjYWMgcXV5IGRpbmggaGllbiBoYW5oLg0KDQpCYW8gVGllbiBQaG9uZywgY28gcXVhbiBjdWEg VC5VIERvYW4gVE5DUyBIbyBDaGkgTWluaCwgbHVvbiB0dWFuIHRodSBuZ3V5ZW4gdGFjIA0Kc3Ug dGhhdCwgbHVvbiB1bmcgaG8gY2FjIGRvYW5oIG5naGllcCB2YSBtb25nIG11b24gZG9uZyBnb3Ag eSBraWVuIHRyb25nIGNodWMgbmFuZyANCmJhbyBjaGkgZGUgY2FjIGRvYW5oIG5naGllcCBwaGF0 IHRyaWVuIG1hbmggbWUsIHZhIGRvbmcgZ29wIGxhdSBkYWkgY2hvIGRhdCBudW9jLiANCg0KaHR0 cDovL215Lm9wZXJhLmNvbS9UaGFuaE5pZW5RdW9jTm9pL2Jsb2cvc2hvdy5kbWwvMTg5NjE1MzIg IDExLzEwLzIwMTAsIDEwOjAyOjEwIA0KDQpCYSBIYWkgVGFtIGNoaSBydW90IGN1YSBUaHUgVHVv bmcgTmd1eWVuIFRhbiBEdW5nIGxhbSBDaHUgdGljaCBUYXAgZG9hbiBUYW4gVGFvIA0KDQpodHRw Oi8vd3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzUxMjc0Ny9DYWMtc2lldS1kdS1hbi1jdWEtaGFp LXNpZXUtdGFwLWRvYW4tdmEtbmh1bmctZGF1LWhvaS5odG1sIEhvbmcgTGluaCAwNzoxMSAxNy8w OS8yMDEwIA0KDQpUaHUgdHVvbmc6IENhYyBzaWV1IGR1IGFuIGN1YSBoYWkgc2lldSB0YXAgZG9h biB2YSBuaHVuZyBkYXUgaG9pDQoNCkJhaSAxOiBIYWkgc2lldSBkdSBhbiB2YS4uLiBubyBuYW4g DQoNClRQIC0gVHUgbmFtIDIwMDggZGVuIG5heSwgbWFjIGNobyBraHVuZyBob2FuZyBraW5oIHRl LCBoYWkgVGFwIGRvYW4gZGF1IHR1IFNhaSBHb24gDQooU0dJKSwgVGFuIFRhbyAoSVRBIEdST1VQ KSB2YSBuaHVuZyBDdHkgY29uIGRhIGRvbmcgdGhvLCBraG9pIGNvbmcgaGFuZyBsb2F0IHNpZXUg DQpkdSBhbiB0YWkgbmhpZXUgdGluaCB0aGFuaCB0cmVuIGNhIG51b2MsIGNvIHZvbiBkYXUgdHUg aGFuZyBuZ2FuIHR5IGRvbmcuIA0KDQpOaHVuZyBkZW4gbmF5LCBuaGlldSBkdSBhbiBjbyB2b24g dHUgaGFpIHRhcCBkb2FuIGRvIGhhaSBhbmggZW0gZHVvYyB4ZW0gbGEgZ2lhdSBuaGF0IA0KdHJl biBzYW4gY2h1bmcga2hvYW4gVmlldCBOYW0gbGEgQ2h1IHRpY2ggU0dJIERhbmcgVGhhbmggVGFt ICh4ZXAgdGh1IDMgbmFtIDIwMDkpIA0KdmEgQ2h1IHRpY2ggSVRBIERhbmcgVGhpIEhvYW5nIFll biAoeGVwIHRodSA1IG5hbSAyMDA5KSBkYW5nIHJvaSB2YW8gdGluaCB0cmFuZyBraG9pIGNvbmcg cm9pIGJvIGRvLg0KDQooQW5oIGNodXA6IEtodSBkbyB0aGkgZGFvIEhhaSBBdSwgc2F1IGhvbiBo YWkgbmFtIGtob2kgY29uZyB2YW4gaG9hbmcgc28pDQoNClRhcCBkb2FuIFRhbiBUYW8gbyBUUCBI byBDaGkgTWluaCB0cm9uZyBtYXkgbmFtIHF1YSBkdW9jIHRpbmggS2llbiBHaWFuZyBjaGFwIA0K dGh1YW4gZGF1IHR1IG5oaWV1IGR1IGFuLCB0cm9uZyBkbyBjbyBoYWkgc2lldSBkdSBhbiBsYSBL aHUgZG8gdGhpIGRhbyBIYWkgQXUsIFRydW5nIHRhbSANCm5oaWV0IGRpZW4gS2llbiBMdW9uZy4g DQoNCktob2kgY29uZyB4b25nLCBpbSBsaW0gDQoNCkRhdSBuYW0gMjAwOCwgVGFwIGRvYW4gVGFu IFRhbyB2YW8gS2llbiBHaWFuZyB2b2kgZHUgYW4gS2h1IERvIHRoaSBkYW8gSGFpIEF1LCBnYXkg DQp4b24geGFvIGdpb2kga2luaCBkb2FuaCBkaWEgb2MsIGJhbmcgdmllYyBkYXAgbW90IGhvbiBk YW8gbmhhbiB0YW8gdHJlbiB2dW5nIGJpZW4gcGhpYSANClRheSBUUCBSYWNoIEdpYS4gRHUgY2h1 YSBjbyBxdWkgaG9hY2ggY2hpIHRpZXQgdmEgY29uIHRoaWV1IG1vdCBzbyB0aHUgdHVjIGNhbiB0 aGlldCANCm5odW5nIG5nYXkgMTktNS0yMDA4LCBUYXAgZG9hbiBkYSB0byBjaHVjIGxlIGtob2kg Y29uZy4gDQoNClRoZW8gZHUgYW4sIEtodSBkbyB0aGkgZGFvIEhhaSBBdSBtYW5nIGhpbmggZGFu ZyBjaGltIGhhaSBhdSBkYW5nIHZvIGNhbmggdnVvbiByYSANCmJpZW4sIGNvIGRpZW4gdGljaCAx OTksNyBoYSwgbmFtIGNhY2ggZG8gdGhpIGxhbiBiaWVuIFRQIFJhY2ggR2lhIGtob2FuZyAya20u IFRyb25nIGRvLCANCmR1IGtpZW4gNTMgaGEgc2UgYm8gdHJpIGtob2FuZyA0LjAwMCBjdSBkYW4s IGRpZW4gdGljaCBkYW8gbmhhbiB0YW8gY29uIGxhaSB4YXkgZHVuZyBraHUgDQpuZ2hpIGR1b25n IGNhbyBjYXAsIGNvbmcgdmllbiwga2hhY2ggc2FuLCBjYWMgY29uZyB0cmluaCBwaHVjIHZ1IGxl IGhvaSwgdmFuIGhvYSBkdSBsaWNoIA0KdmEgZGljaCB2dSB0aHVvbmcgbWFpLi4uIFRvbmcgdm9u IGRhdSB0dSAxLjQ4OCB0eSBkb25nLCBzZSBob2FuIHRoYW5oIHNhdSA5IG5hbSB0aGkgY29uZy4g DQoNClR1eSBuaGllbiwgc2F1IGhvbiAyIG5hbSBraG9pIGNvbmcsIGhpZW4gbm9pIGR1IGtpZW4g Y28gZGFvIG5oYW4gdGFvIHZhbiBsYSBtYXQgYmllbiANCnhhbmggcm9uLiBOZ3VvaSBkYW4gZGlh IHBodW9uZyBjaG8gYmlldCwgY2h1IGRhdSB0dSBoYXUgbmh1IGtob25nIHRoYXkgeHVhdCBoaWVu LiBWYW4gDQpwaG9uZyBkYWkgZGllbiBjdWEgVGFwIGRvYW4gVGFuIFRhbyB0cmVuIGR1b25nIExh YyBIb25nIG8gVFAgUmFjaCBHaWEgY3VuZyBpdCBraGkgDQptbyBjdWEuIFRhbSBiYW5nIHF1YW5n IGNhbyBLaHUgZG8gdGhpIGRhbyBIYWkgQXUgZGEgcGhhaSBsYW0gbGFpIGxhbiB0aHUgaGFpIGRv IGdpbyANCmJpZW4geGUgbmF0LCBuYXkgZHVuZyBjaG8gdm8gZ2l1YSBub2kgaG9hbmcgdmFuZyB2 b2kgY28gZGFpLiANCg0KKEFuaDogVmkgdHJpIGR1IHRpbmggZGF0IG5oYSBtYXkgbmhpZXQgZGll biB2YW4gbWVuaCBtb25nIG51b2MgYmllbi4pDQoNCkRhaSBkaWVuIGRhIHZlIE15IA0KDQpDdW5n IG5hbSAyMDA4LCBDaGluaCBwaHUgZG9uZyB5IGNobyBUYXAgZG9hbiBUYW4gVGFvIGxhbSBjaHUg c2lldSBkdSBhbiBUcnVuZyB0YW0gDQpuaGlldCBkaWVuIEtpZW4gTHVvbmcgKEtpZW4gR2lhbmcp IHZvaSBxdWkgbW8gNC40MDBNVyAtIDUuMjAwTVcgdmEgY2FuZyB0cnVuZyANCmNodXllbiBudW9j IHNhdSB0YWkgcXVhbiBkYW8gTmFtIER1LCB0b25nIHZvbiBkYXUgdHUga2hvYW5nIDcsNyB0eSBV U0QuIA0KDQpDYWMgaG9wIGRvbmcgZGEgZHVvYyBUYXAgZG9hbiBUYW4gVGFvIGt5IGtldCBuZ2F5 IDgtNC0yMDA4IHRhaSBIYSBOb2kgdm9pIGNhYyBkb2kgDQp0YWM6IEN0eSBCbGFjayAmIFZlYXRj aCAoTXkgLSB2ZSBuaGlldCBkaWVuKSwgQ3R5IEZIREkgKFRydW5nIFF1b2MgLSB2ZSBjYW5nIGJp ZW4pIHZhIA0KQ3R5IFR1IHZhbiB4YXkgZHVuZyBkaWVuIDIgKFBFQ0MgMikuIERheSBsYSBkdSBh biBuaGlldCBkaWVuIGxvbiBuaGF0IFZpZXQgTmFtIHR1IA0KdHJ1b2MgdG9pIG5heSwgZHVvYyBD aGluaCBwaHUgZ2lhbyBjaG8gbW90IGRvYW5oIG5naGllcCBuZ29haSBxdW9jIGRvYW5oLiBEdSBh biBuYW0gDQp0cm9uZyBxdXkgaG9hY2ggcGhhdCB0cmllbiBkaWVuIGx1YyBxdW9jIGdpYSBnaWFp IGRvYW4gMjAwNiAtIDIwMTUsIGNvIHhldCBkZW4gbmFtIDIwMjUuIA0KR2lvaSBwaGFuIHRpY2gg dGhvaSBkaWVtIGRvIGNobyByYW5nLCBUYXAgZG9hbiBUYW4gVGFvIGRhIG1vIHJhIG1vdCBodW9u ZyBkaSBtb2kgDQp0cm9uZyB2aWVjIGdpYWkgYmFpIHRvYW4gdGhpZXUgZGllbi4gRG8gbGEgY2Fj IGRvYW5oIG5naGllcCB0dSBuaGFuIHRoYW0gZ2lhIGNhYyBkdSBhbiBsb24gDQp0cm9uZyBxdXkg aG9hY2ggY2h1bmcsIHRodWMgZGF5IGtoYWkgdGhhYyBjYWMgbmd1b24gbHVjIHhhIGhvaS4gQ29u IG5ndW9pIGRhbiBEQlNDTCANCmt5IHZvbmcsIGR1IGFuIHRvbmcgaG9wIGRpZW4tY2FuZyBiaWVu IG5heSBzZSB0aGFwIHNhbmcgbmVuIGtpbmggdGUgY3VjIE5hbSB0byBxdW9jLg0KVGhlbyBnaW9p IHRoaWV1LCBUcnVuZyB0YW0gbmhpZXQgZGllbiBLaWVuIEx1b25nIGR1b2MgeGF5IGR1bmcgdHJl biBkaWVuIHRpY2ggNTU1LDkgaGEsIA0KdHJvbmcgZG8gZGllbiB0aWNoIGtodSB2dWMgbmhhIG1h eSBjaGluaCBsYSAyMDMsNWhhOyBkaWVuIHRpY2ggbWF0IG51b2MgY2FuZyBiaWVuIA0KMzAwLDZo YSB2YSBkaWVuIHRpY2ggYmFpIHRoYWkgeGkgNTEsOGhhLiBDYW5nIGJpZW4geGF5IGR1bmcgdGFp IHF1YW4gZGFvIE5hbSBEdSBkZSANCnRydW5nIGNodXllbiB0aGFuIGN1bmcgY2FwIGNobyBuaGEg bWF5IHZvaSBsdW9uZyB0aGFuIHRpZXUgdGh1IG1vaSBuYW0gMTAtMTEgdHJpZXUgdGFuLiANCkdp YWkgZG9hbiAxIHNlIHZhbiBoYW5oIHZhbyBuYW0gMjAxMy0yMDE0LCBnaWFpIGRvYW4gMiB2YW4g aGFuaCB2YW8gbmFtIDIwMTUtMjAxNiANCnZhIGdpYWkgZG9hbiBjdW9pIHZhbiBoYW5oIG5hbSAy MDE3LTIwMTguIA0KDQpUcnVuZyB0YW0gZGllbiBsdWMgS2llbiBMdW9uZyBkdSBraWVuIGtob2kg Y29uZyBjdW9pIG5hbSAyMDA5LCBzYXUgZG8gbGFpIGRvaSBzYW5nIA0KZGlwIDMwLTQtMjAxMCwg bmh1bmcgZGVuIG5heSB2YW4gY2h1YSBkdW9jIGtob2kgY29uZy4gVHJvbmcgcXVhIHRyaW5oIGNo dWFuIGJpIGtob2kgDQpjb25nLCBUYXAgZG9hbiBUYW4gVGFvIHhpbiB0aGF5IGRvaSB2aSB0cmkg ZGF0IG5oYSBtYXkgbmhpZXQgZGllbiB2YSBkdW9jIHRpbmggS2llbiANCkdpYW5nIGNoYXAgdGh1 YW4sIGNobyBsYW4gdGhlbSAzMDAgaGEgbWF0IG51b2MgYmllbi4gDQoNClZlIG5oYW4gc3UgY3Vu ZyBjbyBzdSB0aGF5IGRvaSwgb25nIFRyYW4gSmltbXksIFRydW9uZyBkYWkgZGllbiBjdWEgQ2hp IG5oYW5oIEN0eSBDbyANCnBoYW4gRGF1IHR1IHZhIENvbmcgbmdoaWVwIFRhbiBUYW8gdGFpIEtp ZW4gR2lhbmcsIG5heSBkYSB2ZSBNeS4gTGFuaCBkYW8gdGluaCBLaWVuIA0KR2lhbmcgY2hvIGJp ZXQ6IFRhcCBkb2FuIFRhbiBUYW8gZGEgdGhheSBkb2kgbmhhbiBzdSB0YWkgdGluaCB0dSAyMC01 LTIwMTAgbmh1bmcgY2h1YSANCmNvIHRob25nIGJhbyBjaGluaCB0aHVjLg0KDQpObyBuYW4gdmEg eGFvIHRyb24NCg0KQ2h1YSBjaGluaCB0aHVjIGtob2kgY29uZyBuaHVuZyBUcnVuZyB0YW0gbmhp ZXQgZGllbiBLaWVuIEx1b25nIGN1bmcgZGEgYnVvYyBkYXUgDQp0cmllbiBraGFpIGdpYWkgdG9h LCBuYW8gdmV0IHZhIHNhbiBsYXAgbWF0IGJhbmcuIE5ndW9pIGRhbiBxdWFuaCB2dW5nIHNpZXUg ZHUgYW4gY2hvIA0KYmlldCwgdHJ1b2MgbmdheSAzMC00LTIwMTAsIGNvIG5oaWV1IHBodW9uZyB0 aWVuIHhlIG1heSwgdGF1IHRodXllbiBrZW8gdmUgdnVuZyBkdSBhbiANCmhvYXQgZG9uZy4gVGhl IG5odW5nIGNoaSBkdW9jIHRob2kgZ2lhbiBuZ2FuLCBkYWkgY29uZyB0cnVvbmcgbGFpIHZhbmcg Ym9uZyB0YXUsIHhlIHZhIA0KZGUgbGFpLi4uIG5vIG5hbi4gDQoNCkJhIExlIFRoaSBLaW0gQ2hh dSwgR0QgQ3R5IFROSEggQ2hhdSBQaGF0IChLaWVuIEdpYW5nKSBjaG8gYmlldDogIlRhcCBkb2Fu IFRhbiANClRhbyBubyBjaHVuZyB0b2kgZ2FuIDggdHkgZG9uZywgaG9uIGJvbiB0aGFuZyBxdWEg Y2h1YSB0cmEgZG9uZyBuYW8uIENodW5nIHRvaSBjdW5nIA0Ka2hvbmcgdGhlIGxpZW4gbGFjLCBo byB0cm9uIGRhdSBtYXQgaGV0IHJvaS4gVG9pIGdvaSBkaWVuIHRob2FpIGNobyBiYSBEYW5nIFRo aSBIb2FuZyANClllbiwgQ2h1IHRpY2ggVGFwIGRvYW4gVGFuIFRhbywgdGhpIGtob25nIG5naGUg bWF5LiBDdHkgY2h1bmcgdG9pIGt5IGhvcCBkb25nIHZvaSANCkN0eSBDbyBwaGFuIFBoYXQgdHJp ZW4gZG8gdGhpIFZpZXQgTmFtLCBkbyBvbmcgVHJhbiBKaW1teSBsYSBjaG9uZyBjdWEgYmEgWWVu IGxhbSANClRHRCwgbmF5IG9uZyBuYXkgZGEgdmUgTXkuIFR1IHRoYW5nIDUtIDIwMTAgdG9pIGdp byBraG9uZyBnYXAgZHVvYyBhaSBjdWEgVGFwIGRvYW4gDQpUYW4gVGFvIGRlIG5vaSBjaHV5ZW4g cGhhaSBxdWF5LiBIbyB0aG9uZyBiYW8gYmEgVnUgVGhpIE5nYSBsZW4gbGFtIEdEIHRoYXkgb25n IA0KVHJhbiBKaW1teSwgdHV5IG5oaWVuIGN1bmcga2hvbmcgdGhlIGxpZW4gbGFjIGR1b2Mgdm9p IGJhIG5heS4gRGllbiB0b2kgYWkgbmd1b2kgdGEgY3VuZyANCnRyYSBsb2kgbGEgbW9pIHZhbyBs YW0ga2hvbmcgYmlldCBjaHV5ZW4gdHJ1b2MgZG8iLiANCg0KQ29uIG9uZyBDYW8gTWluaCBIdW5n LCBHRCBDdHkgVE5ISCBEdWMgVmFuIChWdW5nIFRhdSkgY29uIGd1aSBkb24gZGVuIGNhIGNvIA0K cXVhbiBjb25nIGFuIGtoaWV1IG5haSwgZG9pIG5vIFRhcCBkb2FuIFRhbiBUYW8uICJUb2kga3kg aG9wIGRvbmcgbmFvIHZldCBidW4gdGFpIGtodSANCnZ1YyBkYXUgdHUgbmhhIG1heSBuaGlldCBk aWVuIEtpZW4gTHVvbmcgdm9pIFRhcCBkb2FuIFRhbiBUYW8gdHUgZGF1IHRoYW5nIDEtMjAxMC4g DQpIaWVuIG5vIHF1YSBoYW4gdGhlbyBob3AgZG9uZyBkYSB0cmVuIDM2IHR5LiBDaHVuZyB0b2kg ZGllbiB0aG9haSwgcm9pIG5oYW4gdGluIHJhdCBsaWNoIHN1IA0Kbmh1bmcgaG8ga2hvbmcgbmdo ZSwga2hvbmcgdHJhIGxvaS4gTmV1IGhvIGtob25nIHRyYSB0aWVuIG5hbyB2ZXQgYnVuIGNobyB0 b2kgdGhpIA0KdG9pIHNlIGtob25nIGdpYW8gbWF0IGJhbmcgY2hvIGhvIHNhbiBsYXAiLCBvbmcg SHVuZyBxdWEgcXV5ZXQuDQoNCk5ndW9pIGRhbiB0cm9uZyB2dW5nIGR1IGFuIGRhIGJpIHhhbyB0 cm9uIGN1b2Mgc29uZy4gTmhpZXUgbmd1b2kga2hvbmcgY2hpdSBuaGFuIHRpZW4gDQpnaWFpIHBo b25nIG1hdCBiYW5nIHZpIGdpYSBib2kgaG9hbiBxdWEgdGhhcC4gDQogIA0KQ2h1IHRpY2ggVUJO RCB0aW5oIEtpZW4gR2lhbmcgQnVpIE5nb2MgU3Vvbmc6IFRvaSBuZ2hpIGhvIGNvIHZhbiBkZSB2 ZSB0YWkgY2hpbmgNCk9uZyBCdWkgTmdvYyBTdW9uZywgQ2h1IHRpY2ggVUJORCB0aW5oLCBjaG8g YmlldDogTmh1bmcgdmFuIGRlIGxpZW4gcXVhbiBkZW4gZGF1IHR1IA0KY3VhIFRhcCBkb2FuIFRh biBUYW8gdmFvIHRpbmggS2llbiBHaWFuZywgVUJORCB0aW5oIGRhbmcgZ2lhbyBjaG8gb25nIFBo YW0gVnUgDQpIb25nLCBQaG8gY2h1IHRpY2ggVUJORCB0aW5oIHBodSB0cmFjaCBjb25nIG5naGll cCAtIHhheSBkdW5nLCByYSBzb2F0IGxhaSB4ZW0gdGhlIA0KbmFvLiBUaWVuIGRvIHRodWMgaGll biBkdSBhbiB0aGVvIGtlIGhvYWNoIG5odSB2YXkgbGEgcmF0IGNoYW0uIFZpZWMgc2FuIGxhcCBt YXQgYmFuZyANCmhpZW4gdmFuIGNodWEgZHVvYyBiYW8gbmhpZXUuIENvIHRoZSBobyBraG8ga2hh biB2ZSB0YWkgY2hpbmguDQoNCkR1IGFuIHhheSBkdW5nIGRhbyBIYWkgQXUgdGFpIFRQIFJhY2gg R2lhIGxpZXUgY28gZHVvYyBUYXAgZG9hbiBUYW4gVGFvIHRpZXAgdHVjIA0KdGh1YyBoaWVuPyAN Cg0KVGhvaSBkaWVtIFRhcCBkb2FuIFRhbiBUYW8gdG8gY2h1YyBraG9pIGNvbmcgZHUgYW4gSGFp IEF1LCB0b2kgZGFuZyBob2MgbyBIYSBOb2kuIA0KVG9pIGNvIGRpZW4gdGhvYWkgaG9pIHZpIHNh byBkdSBhbiBjaHVhIGR1b2MgcGhlIGR1eWV0LCB0aHUgdHVjIGNvbiB0aGlldSBtYSBkYSBjaG8g dG8gDQpjaHVjIGtob2kgY29uZyBuaHVuZyBraG9uZyBkdW9jIHRyYSBsb2kgcm8gcmFuZy4gS2hv aSBjb25nIG1heSBuYW0gbmF5IG1hIGNvIHRoYXkgDQp0cmllbiBraGFpIGdpIGRhdSwgY2hhYyBz ZSBraG9uZyB0cmllbiBraGFpIG51YSwgY28gdGhlIGN1bmcgdmkgbmFuZyBsdWMgdGFpIGNoaW5o IHRob2kuIA0KDQpDaHUgZGF1IHR1IGJhbyBjYW8gdm9pIFVCTkQgdGluaCBLaWVuIEdpYW5nIHRo ZSBuYW8sIHRodWEgb25nPw0KDQpUaG9pIGdpYW4gZ2FuIGRheSwgZGFpIGRpZW4gVGFwIGRvYW4g VGFuIFRhbyB0YWkgS2llbiBHaWFuZyBraG9uZyBsYW0gdmllYyB0cnVjIHRpZXAgDQp2b2kgbGFu aCBkYW8gdGluaCwgaG8gY2hpIG5vaSBjaHV5ZW4gcXVhIGRpZW4gdGhvYWkuIA0KDQpTYW5nIDct OS0yMDEwLCB0cmFvIGRvaSBxdWEgZGllbiB0aG9haSB0dSBNeSwgb25nIFRyYW4gSmltbXksIG5n dXllbiBUR0QgQ3R5IENvIA0KcGhhbiBQaGF0IHRyaWVuIERvIHRoaSBWaWV0IE5hbSAoVmlldG5h bSBMYW5kKSwga2llbSBUcnVvbmcgZGFpIGRpZW4gQ2hpIG5oYW5oIEN0eSANCkNvIHBoYW4gRGF1 IHR1IHZhIENvbmcgbmdoaWVwIFRhbiBUYW8gdGFpIHRpbmggS2llbiBHaWFuZywgY2hvIGJpZXQ6 ICJCYSBEYW5nIFRoaSANCkhvYW5nIFllbiAoQ2h1IHRpY2ggVGFwIGRvYW4gVGFuIFRhbyksIGRh IGNhdCBob3AgZG9uZyBraG9uZyBjaG8gdG9pIGxhbSBUR0QgbnVhLCANCnNhdSBkbyB0b2kgdHJv IHZlIE15LiBOaHVuZyBob3AgZG9uZyBuYW8gdmV0LCBzYW4gbGFwIG8gS2llbiBMdW9uZyBkZXUg ZG8gdG9pIGt5IHZvaSB0dSANCmNhY2ggbGEgZGFpIGRpZW4gY3VhIFZpZXRuYW0gTGFuZC4gVmFu IGRlIGdpYSBjYSBuYW8gdmV0LCBzYW4gbGFwIGRldSBkdW9jIHRob25nIA0KcXVhIGhvaSBkb25n IHF1YW4gdHJpLiBEZW4gbmdheSB0b2kgdGhvaSBjaHVjIFRHRCwgbm8gdGhlbyBob3AgZG9uZyBk YSBreSB2b2kgY2FjIGRvbiB2aSANCm5hbyB2ZXQsIHNhbiBsYXAsIHNvIHRpZW4gdW9jIGtob2Fu ZyA5MCB0eSBkb25nIi4NCg0KVHJvbmcga2hpIGRvLCB0YWkgdmFuIGJhbiBzbyA1MCBuZ2F5IDUt Ny0yMDEwLCBndWkgQ3R5IFROSEggQ2hhdSBQaGF0LCBiYSBWdSBUaGkgDQpOZ2EsIFRHRCBWaWV0 bmFtIExhbmQgdmlldDogIkRvIG9uZyBUcmFuIEppbW15IGNvIG5oaWV1IGJpZXUgaGllbiB0aWV1 IGN1YyB0cm9uZyANCnZhbiBkZSBob3AgZG9uZyBraW5oIHRlIG5lbiBkYSBiaSBiYWkgbmhpZW0g a2UgdHUgbmdheSAyMC01LTIwMTAiLiBWYW4gYmFuIG5heSBjaG8gDQpyYW5nIG9uZyBUcmFuIEpp bW15IGRhIHR1IHkgbmFuZyBkb24gZ2lhIGhvcCBkb25nIG5hbyB2ZXQgYnVuIHZvaSBDdHkgQ2hh dSBQaGF0IHZ1b3QgDQo0NiUgc28gdm9pIGdpYSBkYSB4aW4geSBraWVuIGN1YSBob2kgZG9uZyBx dWFuIHRyaS4NCg0KSGllbiB0b2FuIGJvIGhvIHNvIGNhYyBob3AgZG9uZyBraW5oIHRlIGxpZW4g cXVhbiBkZW4gb25nIFRyYW4gSmltbXkgZGV1IGRhIGR1b2MgDQpjaHV5ZW4gY2hvIGNvIHF1YW4g ZGlldSB0cmEgbGFtIHJvLiBWaWV0bmFtIExhbmQgc2Uga2hvbmcgY2hpdSB0aGFuaCB0b2FuIGNo byBkZW4ga2hpIA0KY28ga2V0IGx1YW4gY3VhIGNvIHF1YW4gZGlldSB0cmEuDQoNClRoZW8gdGhv bmcgYmFvIGN1YSBUYXAgZG9hbiBUYW4gVGFvIGt5IG5nYXkgMi02LTIwMTAsIGd1aSBVQk5EIHRp bmggS2llbiBHaWFuZywgDQpuZ3VvaSBkYWkgZGllbiBtb2kgY3VhIGhvIHRhaSB0aW5oIG5heSBs YSBvbmcgTmd1eWVuIFR1YW4gTWluaCB2YSBiYSBIdXluaCBIb2FpIA0KQ2hhdS4gVHV5IG5oaWVu LCBraGkgUFYgVGllbiBQaG9uZyBkaWVuIHRob2FpIHhpbiBnYXAgdHJhbyBkb2kgbmh1bmcgdmFu IGRlIGxpZW4gcXVhbiANClRhcCBkb2FuIFRhbiBUYW8gdGhpIG9uZyBNaW5oIG5vaSBraG9uZyBj byB0aGFtIHF1eWVuIHRyYSBsb2ksIGJhIENoYXUgdGhpIG5vaSBraG9uZyANCmNvbiBsYW0gbyBL aWVuIEdpYW5nIG51YS4NCg0KU2FuZyA3LTksIG9uZyBQaGFtIFZ1IEhvbmcsIFBobyBjaHUgdGlj aCBVQk5EIHRpbmggS2llbiBHaWFuZyBjaG8gYmlldDogVGluaCBkYW5nIA0KeWV1IGNhdSBUYXAg ZG9hbiBUYW4gVGFvIGJhbyBjYW8gdGllbiBkbyB0aHVjIGhpZW4gZHUgYW4gbmhpZXQgZGllbiB0 YWkgS2llbiBMdW9uZy4gDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL0tpbmgtVGUvNTEyODM1 L0R1LWFuLXR5LWRvLWRhdS12b2ktZHVvaS1jaHVvdC5odG1sIEhhIFBoYW4gLSBRdWFuZyBMb25n IDA4OjMxIDE4LzA5LzIwMTAgDQoNClRodSB0dW9uZzogQ2FjIHNpZXUgZHUgYW4gY3VhIGhhaSBz aWV1IHRhcCBkb2FuIHZhIG5odW5nIGRhdSBob2kgLSBCYWkgY3VvaTogRHUgYW4gdHkgZG8gJ2Rh dSB2b2kgZHVvaSBjaHVvdCcNCg0KVFAgLSBIb24gMiBuYW0gc2F1IG5nYXkga2hvaSBjb25nIHJh bSBybywgRHUgYW4gQ29uZyB2aWVuIHBoYW4gbWVtIFRodSBUaGllbSANCihRLjIsIFRQSENNKSBk dW9jIGNodSBkYXUgdHUgbGEgbGllbiBkb2FuaCBnaXVhIEN0eSBDbyBwaGFuIGNvbmcgbmdoZSBW aWVuIHRob25nIA0KU2FpIEdvbiAoU2FpZ29udGVsIC0gdGhhbmggdmllbiBjdWEgVGFwIGRvYW4g ZGF1IHR1IFNhaSBHb24gU0dJKSB2YSBUYXAgZG9hbiBUZWNvIA0KKERhaSBMb2FuKSBxdWFuZyBi YSBjbyB2b24gZGF1IHR1IDEsMiB0eSBVU0QgaGllbiB2YW4gbGEgYmFpIGRhdCB0cm9uZy4gDQoN ClRoZW8gc2F1IGR1IGFuIG5heSwga2h1IGNvbmcgbmdoaWVwIFhpIG1hbmcgU2FpIEdvbiAtIFRh biBLeSBjdW5nIHRyb25nIHRpbmggdHJhbmcgDQp0dW9uZyB0dS4NCg0KQ29uZyB2aWVuIHBoYW4g bWVtIFRodSBUaGllbTogS2hvaSBjb25nIHJvaSBkZSBjbyBtb2MNCg0KVGhhbmcgNy0yMDA4LCBD b25nIHZpZW4gcGhhbiBtZW0gVGh1IFRoaWVtIChDVlBNVFQpIGR1b2MgcXVhbmcgY2FvIGxvbiBu aGF0IA0KVmlldCBOYW0gdmEgRG9uZyBOYW0gQSBkdW9jIGtob2kgY29uZyB4YXkgZHVuZy4gTmh1 bmcgc2F1IGRvIG1vaSB2aWVjIGltIGFuZyBkYW4gDQp2YSBsbyByYSBuaHVuZyBkb2kgaG9pIGJh dCBob3AgbHkgY3VhIGNodSBkYXUgdHUuIFRoYW5nIDctMjAwOSwgQmFuIHF1YW4gbHkgZGF1IHR1 IHhheSANCmR1bmcga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIChLRFRNVFQpIGd1aSB2YW4gYmFu IGRlIHh1YXQgVUJORCBUUEhDTSB0aHUgaG9pIGR1IGFuIG5heS4NCg0KKEFuaDogQ29uZyB2aWVu IHBoYW4gbWVtIFRodSBUaGllbSB2YW4gY2hpIGxhIGtodSBkYXQgY28gbW9jIHVtIHR1bSAuIEFu aDogSGEgUGhhbikgDQoNClRoZW8gdmFuIGJhbiB0cmVuIHRoaSBjaHUgZGF1IHR1IChMaWVuIGRv YW5oIFNhaWdvbnRlbCB2YSBUYXAgZG9hbiBUZWNvIGxhcCByYSBDdHkgDQpUTkhIIFRBIEFzc29j aWF0ZXMgVmlldCBOYW0gKGdvaSB0YXQgbGEgQ3R5IFRBIFZOKSBkZSBsYW0gY2h1IGR1IGFuKSBk ZSBuZ2hpIGRpZXUgDQpjaGluaCBuaGlldSBkaWVtIHRyb25nIGdpYXkgY2h1bmcgbmhhbiBkYXUg dHUga2hvbmcgcGh1IGhvcCB2b2kgY2FtIGtldCB0cm9uZyBobyBzbyANCmRhbmcga3kgY2FwIGdp YXkgY2h1bmcgbmhhbiBkYXUgdHUuIA0KDQpDdHkgVEEgVk4geGluIHRhbmcgZGllbiB0aWNoIHNh biBraHUgbmhhIG8gdHUgMTAlICh0dW9uZyBkdW9uZyA2NS4wMDBtMikgbGVuIDI2JSANCnRvbmcg ZGllbiB0aWNoIHNhbiB2YSBraHUgbmhhIG8gY28gdGhlIGR1b2MgY2hhbyBiYW47IHhpbiBjYXAg Z2lheSBjaHVuZyBuaGFuIHF1eWVuIHN1IA0KZHVuZyBkYXQgcmllbmcgbGUga2h1IG5oYSBvIG5h eSwgY2hvIHBoZXAgY2h1IGRhdSB0dSBzdSBkdW5nIGRhdCBvIHZhIGtodSBuaGEgbyBkZSBjaG8g DQp0aHVlIHRyb25nIDcwIG5hbS4uLiBDdHkgVEEgVk4gZGUgbmdoaSBiYWkgYm8gcXV5IGRpbmgg ImNoaSBjaG8gcGhlcCBjYWMgY2h1eWVuIGdpYSANCmR1b2Mgc3UgZHVuZyBraHUgbmhhIG8iLiAN Cg0KQ3R5IFRBIFZOIGNvbiBkZSBuZ2hpIFVCTkQgVFBIQ00gY2hvIHBoZXAgdGhheSBkb2kgcXV5 IGhvYWNoIGN1YyBibyB0cm9uZyBraHUgDQpkYXQgdGh1YyBoaWVuIGR1IGFuIG5oYW0gY2hpYSBk dSBhbiByYSB0aGFuaCBoYWkga2h1IHZ1YyBjaGluaDoga2h1IGNvbmcgdmllbiBwaGFuIA0KbWVt IHZhIGtodSBuaGEgby4gRGFuZyBjaHUgeSwgQ3R5IG5heSBkZSBuZ2hpIHRoYXkgZG9pIHR5IGxl IHhheSBkdW5nIGtodSB2YW4gcGhvbmcgDQp4dW9uZyA1OSUgdGhheSB2aSA3NSUgbmh1IGdpYXkg Y2h1bmcgbmhhbiBkYXUgdHUgZGEgY2FwLi4uDQoNCk5odW5nIGRvaSBob2kgZHVvYyBjaG8gbGEg cXVhIGRhbmcgbmF5IGtoaWVuIEJhbiBxdWFuIGx5IEtEVE1UVCBkZSB4dWF0IHRodSBob2kgZHUg DQphbi4gVHJ1b2Mga2hpIGNhcCBwaGVwIGNobyBkdSBhbiB0cmVuLCBVQk5EIFRQSENNIGRhIHBo YWkgeGluIENoaW5oIHBodSBkaWV1IGNoaW5oIA0KcXV5IGhvYWNoIGNoaSB0aWV0IDEvMi4wMDAg S0RUTVRUIGRlIGJvIHN1bmcgdGhlbSBjYWMgZHUgYW4gcGhhbiBtZW0gdGFpIGRheSBtYSANCnF1 eSBob2FjaCBiYW4gZGF1IGtob25nIGNvLg0KDQpOaHVuZyBkb2kgaG9pIHF1YSBkYW5nIHRyZW4g Y3VhIEN0eSBUQSBWTiBsYXAgdHVjIGJpIGNhYyBiYW4gbmdhbmggdmEgVUJORCANClRQSENNIGJh YyBiby4gVHJ1b2MgcGhhbiB1bmcgY3VhIEJhbiBxdWFuIGx5IEtEVE1UVCB2YSBjb25nIGx1YW4s IG9uZyBEYW5nIA0KVGhhbmggVGFtLCBDaHUgdGljaCBUYXAgZG9hbiBTYWlnb24gSW52ZXN0IChD dHkgbWUgY3VhIFNhaWdvbnRlbCkgdHJhbiBhbiBsYSBwaGlhIEN0eSANClRBIFZOIGtob25nIHhp biB0YW5nIGRpZW4gdGljaCBkYXQsIGJhbiBuaGEgY2hvIGNhYyBkb2kgdHVvbmcgdmEgY3VuZyBr aG9uZyB4aW4gZ2lhbSANCmdpYSB0aHVlIGRhdCBudWEuIA0KDQpUcmEgbG9pIG5odW5nIG5naGkg bmdhaSB2ZSBuYW5nIGx1YyB0YWkgY2hpbmggY3VhIGNodSBkYXUgdHUsIG9uZyBUYW0gZGUgbmdo aSBjaHV5ZW4gDQpuZ2F5IDEwJSB0aWVuIGRhdCBjb2MsIHR1YyBnYW4gOSB0cmlldSBVU0QsIHNh dSBkbyBkZSBuZ2hpIHRyYSBoZXQgMjUlIHZhIHRyaWVuIGtoYWkgDQpuZ2F5IGdpYWkgZG9hbiBt b3QgZHUgYW4gY28gdm9uIGRhdSB0dSAzMDAgdHJpZXUgVVNELiBQaGFuIGNvbiBsYWkgY3VhIGR1 IGFuIHNlIHRpbmggDQp0aWVwLiBUdXkgbmhpZW4sIG5odW5nIHR1eWVuIGJvIHRyZW4gY2h1YSB0 aGUgdGhhbmggaGllbiB0aHVjIHZhIGNobyBkZW4gZ2l1YSB0aGFuZyA5LQ0KMjAxMCwgbm9pIGRh eSB2YW4gY29uIGxhIGJhaSBkYXQgdHJvbmcsIGNvIG1vYyBxdWEgZGF1IG5ndW9pLiANCg0KQ3R5 IFNhaWdvbnRlbCBjdW5nIHR1bmcgdGhvbmcgYmFvIHhpbiBub3AgMS41MDAgdHkgZG9uZyB0aWVu IHRodWUgZGF0IGN1YSBkdSBhbiBuaHVuZyANCnNhdSBkbyBVQk5EIFRQSENNIGtob25nIGRvbmcg eSwgbHkgZG8gdGhlbyBuaHUgVG9uZyBHRCBTYWlnb250ZWwgLSBIb2FuZyBTaSBIb2EgDQp0aGkg VUJORCBUUEhDTSB0cmEgbG9pICJkYXkgbGEgdmllYyBjdWEgbGllbiBkb2FuaCBraG9uZyBwaGFp IGNodXllbiBjdWEgU2FpZ29udGVsIA0KaGF5IFRhcCBkb2FuIFRlY28iLiBPbmcgSG9hIGN1bmcg dGh1YSBuaGFuIGR1IGFuIGNodWEgdHJpZW4ga2hhaSBkdW9jIGxhIGRvIGNvbiANCm5oaWV1IHRo dSB0dWMgY2h1YSB4b25nLiANCg0KVGhlbyBuZ3VvbiB0aW4gY3VhIFRpZW4gUGhvbmcsIHRhaSBj dW9jIGdhcCB2b2kgbGFuaCBkYW8gVUJORCBUUEhDTSB2YW8gdGhhbmcgNy0NCjIwMTAsIHBoaWEg VGFwIGRvYW4gVGVjbyBsYXkgbHkgZG8ga2hvIGtoYW4gdGFpIGNoaW5oIGRhIGRlIG5naGkgbGFu aCBkYW8gVFBIQ00gY2hvIA0KcGhlcCBkaWV1IGNoaW5oIHZvbiBkYXUgdHUgZHUgYW4gdHUgMSwy IHR5IFVTRCB4dW9uZyAzMDAgdHJpZXUgVVNEIGRlIHRyaWVuIGtoYWkgDQpnaWFpIGRvYW4gbW90 IGR1IGFuLiBTYXUgZG8gdHV5IHRpbmggaGluaCBUYXAgZG9hbiBUZWNvIHNlIHRpbmggc2F1LiAN Cg0KRGF5IGR1b2MgeGVtIGxhIGtlIGhvYW4gYmluaCBjdWEgY2h1IGRhdSB0dS4gRGUgbmdoaSBu YXkgZGFuZyBkYXQgVFBIQ00gdmFvIHRoZSANCiJ0aWVuIHRob2FpIGx1b25nIG5hbiIsIGJvaSBu ZXUgZG9uZyB5IHNlIHBoYWkgZGlldSBjaGluaCBxdXkgaG9hY2gsIGdpYXkgcGhlcCBkYXUgdHUs IA0KY29uIGtob25nIHNlIGNoYW5nIGJpZXQgZ2lhaSBxdXlldCByYSBzYW8uIA0KDQpLQ04gWGkg bWFuZyBTYWkgR29uIC0gVGFuIEt5OiBMYWkgY28gbW9jIHZpIGRlIGhvYW5nIA0KDQpEdSBhbiB4 aSBtYW5nIFNhaSBHb24gLSBUYW4gS3kgZG8gQ3R5IERvIHRoaSB2YSBQaGF0IHRyaWVuIEtpbmgg QmFjICh0aGFuaCB2aWVuIFRhcCANCmRvYW4gRGF1IHR1IFNhaSBHb24pIGRhbmcga3kgeGF5IGR1 bmcgdGFpIHhhIFRhbiBMb25nIChodXllbiBUYW4gS3ksIE5naGUgQW4pLiANCg0KKEFuaDogS0NO IFhpIG1hbmcgU2FpIEdvbiAtIFRhbiBLeSB2YW4gbGEgbW90IGJhaSBkYXQgaG9hbmcgLiBBbmg6 IFF1YW5nIExvbmcpIA0KDQpOZ2F5IDE5LTUtMjAxMCwgQ3R5IENQIFhpIG1hbmcgU2FpIEdvbi0g VGFuIEt5IHRvIGNodWMgbGUga2hvaSBjb25nIEtodSBDb25nIA0KbmdoaWVwIChLQ04pIFhpIG1h bmcgU2FpIEdvbiAtIFRhbiBLeS4gVGhlbyB0aHV5ZXQgbWluaCBjdWEgbmhhIGRhdSB0dSwgRHUg YW4gY28gDQpkaWVuIHRpY2ggcXV5IGhvYWNoIHBoYXQgdHJpZW4gZHUga2llbiB0b2kgNjAwaGEs IHRyb25nIGRvIGtodSBjb25nIG5naGllcCA0MDBoYSwgcGhhbiANCmNvbiBsYWkgeGF5IGR1bmcg Y2FjIGNvbmcgdHJpbmggY29uZyBjb25nLCBraHUgbmhhIG8gY2hvIGNhbiBibyBjb25nIG5oYW4g dmllbi4gDQoNCktDTiBYaSBtYW5nIFNhaSBHb24gLSBUYW4gS3kgY28gdG9uZyBjb25nIHN1YXQg MTQgdHJpZXUgdGFuL25hbSB2YSB0b25nIHZvbiBkYXUgdHUgDQpsZW4gZGVuIDEsNSB0eSBVU0Qu IEdpYWkgZG9hbiBkYXUgS0NOIGR1b2MgZGF1IHR1IGdhbiAxLjQwMCB0eSBkb25nIHZhIHNlIGhv YW4gdGhhbmggDQp4b25nIHBoYW4gY28gc28gaGEgdGFuZyB2YSBkdWEgdmFvIGhvYXQgZG9uZyB0 cm9uZyB2b25nIDYgbmFtIHRvaS4gDQoNCktoaSBsYXAgZGF0IGNhYyBuaGEgbWF5IHNhbiB4dWF0 IHhpIG1hbmcsIEtDTiBodWEgaGVuIHNlIHRybyB0aGFuaCBub2kgc2FuIHh1YXQgeGkgDQptYW5n IGxvbiBuaGF0IFZpZXQgTmFtLCBnb3AgcGhhbiB0byBsb24gdmFvIGNvbmcgY3VvYyBjb25nIG5n aGllcCBob2EgdmEgaGllbiBkYWkgaG9hIA0KZGF0IG51b2MsIHRhbmcgdGh1IG5nYW4gc2FjaCBj aG8gTmdoZSBBbiwgZ29wIHBoYW4gZHVhIE5naGUgQW4gdHJvIHRoYW5oIG1vdCB0cm9uZyANCm5o dW5nIHRydW5nIHRhbSBzYW4geHVhdCB4aSBtYW5nIGxvbiBjdWEgY2EgbnVvYy4gDQoNCk5oYSBk YXUgdHUgY2FtIGtldCBzdSBkdW5nIGNvbmcgbmdoZSBreSB0aHVhdCB0aWVuIHRpZW4gbmhhbSBk YW0gYmFvIHhpIG1hbmcgY28gY2hhdCANCmx1b25nIHRvdCBuaGF0IGNobyB2aWVjIHhheSBkdW5n IGNhYyBjb25nIHRyaW5oIHRyb25nIG51b2Mgbmh1IGNhYyBjb25nIHRyaW5oIHhheSBkdW5nIA0K ZGFuIGR1bmcgY2FvIHRhbmcsIGR1b25nIGNhbyB0b2MsIGNvbmcgdHJpbmggdGh1eSBkaWVuIHZh IGhvbiBudWEsIGNvIHRoZSB4dWF0IGtoYXUgc2FuZyANCkxhbywgQ2FtcHVjaGlhLCBNeWFubWFy IHZhIGNhIE5oYXQgQmFuLi4uDQoNClRhaSBCYW4gZGFuZyBreSBjYXAgZ2lheSBjaHVuZyBuaGFu IGRhdSB0dSBndWkgVUJORCB0aW5oLCBTbyBLSCZEVCBOZ2hlIEFuIG5nYXkgDQoyOC04LTIwMDks IEdpYW0gZG9jIEN0eSBDbyBwaGFuIFhpIG1hbmcgU2FpIEdvbiAtIFRhbiBLeSwgVHJhbiBIdXUg SG9uZyBUcnVvbmcgDQpjaG8gYmlldCwgZ2lhaSBkb2FuIDEsIGR1IGFuIHNhbiB4dWF0IDIuNTAw IHRhbiBDbGFua2UvbmdheSwga2hvaSBjb25nIHhheSBkdW5nIGNvbmcgDQp0cmluaCBwaHUgdHJv IHZhbyBxdXkgMS8yMDEwLCBjdW9pIG5hbSAyMDEwIHNlIGxhcCBtYXkgdmEgY2hheSB0aHUgdmFv IHF1eSAzLzIwMTEuIA0KDQpOZ3VvaSBkYW4gVGFuIEt5IGhhbyBodWMgY2hvIG1vdCBraHUgY29u ZyBuZ2hpZXAgaG9hbmggdHJhbmcgbW9jIGxlbiBnaXVhIG1pZW4gcXVlIA0KbmdoZW8uIE5odW5n IGRhIGdhbiA0IHRoYW5nIHRyb2kgcXVhLCBkaWEgZGllbSB4YXkgZHVuZyBLQ04gWGkgbWFuZyBT YWkgR29uIC0gVGFuIA0KS3kgdmFuIGNoaSBsYSBtb3QgYmFpIGRhdCBob2FuZyENCg0KIkRhbiBi YXkgdHVpIGN1IHR1b25nIHNhdSBsZSBkb25nIHRobywgbmhhIGRhdSB0dSBzZSBodXkgZG9uZyBt YXkgeHVjLCB4ZSB1aSBnaWFpIHBob25nIA0KbWF0IGJhbmcgeGF5IGR1bmcgbmhhIG1heSwgbmh1 bmcgZ2FuIG51YSBuYW0gcm9pIGltIHJlISIsIG1vdCBsYW8gbm9uZyBjaG9uZyBjdW9jIA0Kbmhp biByYSBkb25nIG1pYSBUYW4gVGhhbmcgKHhhIFRhbiBMb25nLCBUYW4gS3kpLCBsYWMgZGF1LiAN Cg0KQ2h1IHRpY2ggVUJORCBodXllbiBUYW4gS3kgLSBOZ3V5ZW4gRHV5IFRodXkgbm9pIGNoaW5o IHF1eWVuIHNvIHRhaSBub25nIGxvbmcgdmUgDQp0aWVuIGRvIGN1YSBkdSBhbi4gIkNhY2ggZGF5 IGtob2FuZyAxIHRoYW5nLCBjaHVuZyB0b2kgY28gYnVvaSBsYW0gdmllYyB2b2kgbGFuaCBkYW8g DQpDdHkgQ28gcGhhbiBYaSBtYW5nIFNhaSBHb24gLSBUYW4gS3kuIENodSBkYXUgdHUgZ2lhaSB0 aGljaCByYW5nIHNhdSBsZSBraG9pIGNvbmcsIGhvIA0KdGllbiBoYW5oIGRhbSBwaGFuIHZvaSBk b2kgdGFjIE5oYXQgQmFuLiBEb2kgdGFjIHlldSBjYXUgZGFuaCBnaWEgbGFpIHRydSBsdW9uZywg Y2hhdCANCmx1b25nIG1vIG5ndXllbiBsaWV1IChtbyBkYSwgbW8gZGF0IHNldCkgZGUgY3VuZyBj YXAgaGUgdGhvbmcgZGF5IGNodXllbiBwaHUgaG9wLiANCkhvbiBudWEsIG5naGUgbm9pIHZvbiBu aGEgZGF1IHR1IGNvIGhhbiwgaG8gcGhhaSBsYW0gdmllYyB2b2kgbmdhbiBoYW5nIiwgb25nIFRo dXkgDQpjaG8gaGF5LiANCg0KSHV5ZW4gVGFuIEt5IGJhdCB0YXkgdmFvIGN1b2MgZ2lhaSBwaG9u ZyBtYXQgYmFuZyBuZ2F5IGtoaSBkdSBhbiBraG9pIGRvbmcuICJDb25nIA0KdmllYyBkbyBkZW0s IHRob25nIGtlIHNvIGRpZW4gdGljaCBkYXQgdHJvbmcgYmkgYW5oIGh1b25nLCBsZW4gcGh1b25n IGFuIGRlbiBidSwgZ2lhaSB0b2EgDQpkYSB0aHVjIGhpZW4geG9uZywgY2hpIGNobyBDdHkgQ28g cGhhbiBYaSBtYW5nIFNhaSBHb24tIFRhbiBLeSByb3QgdGllbiB2ZSBjaGkgdHJhIGNobyANCmRh bi4gTmh1bmcgZGVuIG5heSwgaHV5ZW4gY2h1YSBuaGFuIGR1b2MgZG9uZyBuYW8hIiwgb25nIE5n dXllbiBEdXkgVGh1eSBub2kuIA0KDQpodHRwOi8vd3d3Lml0YWV4cHJlc3MuY29tLnZuL3Rpbl9p dGEvdGFuX3Rfb19ob21fbmF5L3Nfa2lfbi90aGFwX3R1bmdfdGhfdF9uZ19uZ3V5X25fdF9uX2R1 bmdfdmFfcGh1X25oYW5fdGhhbV9waGFwIDIwLzA5LzIwMDcgMzoyNCBwbSAgS2ltIFR1eWVuIChO Z3VvbjogVFRYVk4pIA0KDQpUaHUgdHVvbmc6IFRhcCBkb2FuIFRhbiBUYW8gdGhhcCB0dW5nIFRo dSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgdmEgcGh1IG5oYW4gdGhhbSBQaGFwDQoNCmh0dHA6Ly93 d3cudmlldG5ldGNlbnRlci5jb20vY29udGVudC92aWV3LzI1Njc4LzU3LyAyNy8wNC8yMDA5ICAw NDoyOCAoVGhlbyBOVikNCg0KVGh1IHR1b25nOiBDaGkgcnVvdCBOZ3V5ZW4gVGFuIER1bmcgImNo ZSIgdGllbiBib2kgdGh1b25nIGRhdCBob24gMTAgdHJpZXUgZG8gDQoNCkJhbyBTYWkgR29uIFRp ZXAgVGhpLCBob20gVGh1IFNhdSwgMjQvNCwgbyBtdWMgIkdvYyBOaGluIiwgY28gYmFpICJOZ2F5 IHRoYW5nIiwgYmluaCBsdWFuIGN1YSBuaGEgYmFvIEh1eSBEdWMgDQp2ZSB2dSBjaGluaCBxdXll biBodXllbiBCZW4gQ2F0LCB0aW5oIEJpbmggRHVvbmcgImN1b25nIGNoZSIgdGh1IGhvaSBkYXQg dHJvbmcgY2F5IGNhbyBzdSBkZSBsYW0ga2h1IGNvbmcgbmdoaWVwIEFuIFRheSwgDQptYSBxdWEg ZG8sIG5ndW9pIHRhIGNvIHRoZSB0aGF5IGR1b2MgbW90IHBoYW4gbmFvIHRhaSBzYW4gY3VhIGJh IEhhaSBUYW0sIG5ndW9pIGNoaSBnYWkgY3VhIGR1b25nIGtpbSBUaHUgdHVvbmcgVk4gDQpOZ3V5 ZW4gVGFuIER1bmcuDQoNCkJhaSBiYW8gY2hvIGJpZXQsIHZhbyBzYW5nIG5nYXkgMTcgdGhhbmcg VHUsIGNob25nIGJhIEhhaSBUYW0gKHR1YyBhbmggcmUgY3VhIE5ndXllbiBUYW4gRHVuZykgZGEg YmkgImFwIGdpYWkgcmEga2hvaSBoaWVuIHRydW9uZyIga2hpIGNoaW5oIHF1eWVuIGh1eWVuIEJl biBDYXQsIHRpbmggQmluaCANCkR1b25nIHRpZW4gaGFuaCBjdW9uZyBjaGUgdGh1IGhvaSBob24g MjgwIGhlYyB0YSBjYW8gc3UgY29uIGxhaSBvIHhhIEFuIFRheSBkZSBsYW0ga2h1IGNvbmcgbmdo aWVwIi4NCg0KVGFjIGdpYSBiYWkgYmFvIGRhbiBsb2kgYW5oIEh1eW5oIE5nb2MgU2FuZywgbmd1 b2kgdHUgZ2lvaSB0aGlldSBkYW5nIHF1YW4gbHkgdnVvbiBjYW8gDQpzdSByb25nIDE4NSBoZWMg dGEgY2hvIGJhIEhhaSBUYW0sIGtlOiAiTHVjIGx1b25nIGN1b25nIGNoZSB2b2kga2hvYW5nIDE1 MCBuZ3VvaSwgZGEgImR1YSBkaSIgaXQgbmhhdCAzIG5ndW9pIHRyb25nIGRvIGNvICJvbmcgSGFp IiAtIGNob25nIGJhIFRhbS4NCg0KVmllYyAiY3VvbmcgY2hlIiBjbyBjYSBjb25nIGFuIChuaGll dSBraGkgY2EgcXVhbiBkb2kpIHRoYW0gZ2lhLCB2b24gbGEgdmllYyB0cm9uZyBuaGlldSANCm5h bSB0cm8gbGFpIGRheSBjaGluaCBxdXllbiBkaWEgcGh1b25nIGhvYWMgdHJ1bmcgdW9uZyB0aWVu IGhhbmgsIGtoaSBuZ3VvaSBkYW4gYmkgdGh1IGhvaSBkYXQgZGFpIGNob25nIGxhaSB2aSBzbyB0 aWVuIGRlbiBidSBxdWEgdGhhcCAoaG9hYyBraG9uZyB0aG9hIGRhbmcpIHNvIHZvaSBnaWEgdHJp IHRodWMgY3VhIG5vIHRyZW4gdGhpIHRydW9uZy4NCg0KTmd1b2kgdGEgbmhhbiB0aGF5LCB0cm9u ZyBzbyAyODAgaGVjIHRhIGRhdCB0cm9uZyBjYW8gc3UgYmkgdGh1IGhvaSB0aGkgYmEgSGFpIFRh bSBjbyBkZW4gMTg1IGhlYyB0YS4NCg0KVmF5IG5ndW9uIGdvYyAxODUgaGVjIHRhIGRhdCBjYW8g c3UgbmF5IGNvIHR1IGRhdSB2YSB0cmkgZ2lhIGN1YSBubyBsYSBiYW8gbmhpZXU/DQpIdXkgRHVj IGtlIHRpZXA6ICJWdW9uIGNhbyBzdSBrZSB0cmVuIHRodW9jIDY0MiBoYSBkYXQgY2FvIHN1IHZv biBjdWEgY29uZyB0eSBxdW9jIGRvYW5oIFNvYmV4Y28uIFRydW9jIGRheSwgZG8gbGFtIGFuIHRo dWEgbG8sIFNvYmV4Y28gZGEgZHVvYyB0aW5oIEJpbmggRHVvbmcgY2hvIA0KcGhlcCAiYmFuIHZ1 b24gY2F5IGtob25nIGdvbSBxdXllbiBzdSBkdW5nIGRhdCIgZGUgdHJhIG5vLCB2b2kgZ2lhIGJp bmggcXVhbiA1MCB0cmlldS9oYS4gVGllbiB0cmluaCBtdWEgYmFuIGtlbyBkYWkgdG9pIG5hbSAy MDAxLCB0aGkgY28gbmh1bmcgdGhheSBkb2ksIGdpYXkgdG8gbXVhIGJhbiANCmR1b2MgZ2hpIGxh ICJiZW4gQSAoU29iZXhjbykgY2h1eWVuIG5odW9uZyB2dW9uIGNheSBjYW8gc3UgZ2FuIGxpZW4g dm9pIHF1eWVuIHN1IGR1bmcgZGF0Ii4gSG9uIDQwIG5ndW9pIG11YSB2dW9uIGNheSBjYW8gc3Ug byBkYXkgdmUgc2F1IGR1b2MgY2FwIHNvIGRvLg0KDQpUaGFuZyA2LTIwMDYsIFRoYW5oIHRyYSB0 aW5oIEJpbmggRHVvbmcgY2hvIHJhbmcgdmllYyBjYXAgInNvIGRvIiBjaG8gNDAgaG8gbmF5IGxh IHRyYWkgbHVhdC4gQ3VvYyB0cmFuaCBjYWkgY2h1YSBuZ2Egbmd1IG5odW5nIHRpbmggdmFuIGNo byBwaGVwIGNvbmcgdHkgWHVhdCBOaGFwIEtoYXUgQmluaCANCkR1b25nIHRodWMgaGllbiBkdSBh biB4YXkgZHVuZyBLaHUgY29uZyBOZ2hpZXAgQW4gVGF5IHRyZW4ga2h1IGRhdCBuYXkuIFNvIGRh dCBtYSA2IA0KbmFtIHRydW9jIGRvIHRpbmggImJhbiIgdm9pIGdpYSA1MCB0cmlldSBkb25nL2hh LCBuYXkgZGUgbGFtIEtodSBDb25nIE5naGllcCwgWE5LIA0KQmluaCBEdW9uZywgbW90IGNvbmcg dHkgcXVvYyBkb2FuaCwgZGVuIGJ1IHZvaSBnaWEgMXR5L2hhLiBDaGkgdHJvbmcgdm9uZyB0dSB0 aGFuZyA3IGRlbiB0aGFuZyAxMC0yMDA3LCBjb25nIHR5IFhOSyBCaW5oIER1b25nIGRhIGNoaSBy YSBob24gNTAwIHR5IGRlIGRlbiBidSBjaG8gY2h1IGN1YSBuaHVuZyB2dW9uIGNhbyBzdSBheS4i DQoNClRvbSB0YXQgbmh1bmcgdGhvbmcgdGluIHRyZW4gY2hvIHRoYXksIGJhIEhhaSBUYW0gY3Vu ZyB2b2kgNDAgbmd1b2kga2hhYywgY2FjaCBkYXkgaG9uIDggbmFtLCBkYSAibXVhIiBtb2kgaGVj IHRhIGRhdCB2b2kgZ2lhIDUwIHRyaWV1IGRvbmcgVmlldCBOYW0gKGtob2FuZyA0IG5nYW4gZG8g bGEtdGhlbyB0aG9pIGdpYSBsdWMgYXkpLCB2YSBuYXkgbW9pIGhlYyB0YSBkYXQgbmF5IGR1b2Mg ImRlbiBidSIgMSB0eSBkb25nIFZpZXQgTmFtICh0dWMgDQpob24gNjAsMDAwIGRvIGxhKS4gQmEg SGFpIFRhbSBoaWVuIGNvIDE4NSBoZWMgdGEgZG8gZG8gc2UgZHVvYyBib2kgdGh1b25nIDE4NSB0 eSBkb25nIFZpZXQgTmFtICh0dWMgaG9uIDEwIHRyaWV1IGRvIGxhKSwgdHV5IG5oaWVuIGdpYSBk aW5oIGJhIHZhbiBjaHVhIGRvbmcgeSBuZW4gYmkgImN1b25nIGNoZSIuDQoNCkxvaSBkdW5nIGNo dWMgcXV5ZW4sIGhheSB0aG9uZyBkb25nIHZvaSBjaGluaCBxdXllbiBkZSBtdWEgZGF0IGRhaSBj dWEgbm9uZyBkYW4gaG9hYyBjdWEgbmhhIG51b2Mgdm9pIGdpYSByZSBtYXQgc2F1IGRvIGNobyAi ZHUgYW4iIG1vIHJhIGRlIGR1b2MgImRlbiBidSIgdm9pIGdpYSBnYXAgaGFuZyBjaHVjIGxhbiBs YSB0aHUgZG9hbiBsYW0gZ2lhdSBiYXQgY2hpbmggcmF0IHBobyBiaWVuIG8gVmlldCBOYW0sIG5o dSB0YWMgZ2lhIEh1eSBEdWMgDQpjaG8gYmlldDogIlRyb25nIHNvIDQwIG5ndW9pICJkYW4iIGR1 bmcgdGVuIHRyb25nIGNhYyBzbyBkbyBheSwgY28gbW90IHNvIGxhIG5ndW9pIG5oYSANCmN1YSBx dWFuIGNodWMgZGlhIHBodW9uZzsgdmEsIHRvaSBjdW9pIG5hbSAyMDA4LCB0dXkga2hvbmcgZHVu ZyB0ZW4gcXV5ZW4gc3UgZHVuZyBkYXQgDQpvIEFuIFRheSwgY28gbmd1b2kgdGhhbiBjdWEgVGh1 IHR1b25nIGN1bmcgbGVuIGdhcCBjaGluaCBxdXllbiBkaWEgcGh1b25nIGtoaWV1IG5haS4iIA0K DQpEYXkgbGEgbW90IHRyb25nIHNvIHJhdCBpdCB0byBiYW8gZGEgZGFtIGR1YSByYSBhbmggc2Fu ZyBtb3QgcGhhbiB0YWkgc2FuIGN1YSBuaHVuZyBuZ3VvaSB0aGFuIHRyb25nIGdpb2kgbGFuaCBk YW8gY2hvcCBidSBvIFZpZXQgTmFtLCBjdW5nIG5odSBjYWNoIGxhbSBnaWF1IGJhdCBjaGluaCBj dWEgaG8uIA0KDQooeGVtIHRoZW0gaHR0cDovL3NndHQuY29tLnZuL0RldGFpbDIzLmFzcHg/Q29s dW1uSWQ9MjMmbmV3c2lkPTUwMzYyJmZsZD1IVE1HLzIwMDkvMDQyMy81MDM2MikgDQoNCmh0dHA6 Ly93d3cuZGR0aC5jb20vc2hvd3RocmVhZC5waHA/dD0yNjk0NzcgSHV5IER1YyAyNy0wNC0yMDA5 LCAxODo0Nw0KDQoiTmdheSB0aGFuZyIgDQoNClNhbmcgMTcuNC4yMDA5LCBtb3Qgbmd1b2kgdGhh biBjdWEgZHVvbmcga2ltIFRodSB0dW9uZyBjdW5nIGRhIGJpICJhcCBnaWFpIHJhIGtob2kgDQpo aWVuIHRydW9uZyIga2hpIGNoaW5oIHF1eWVuIGh1eWVuIEJlbiBDYXQsIHRpbmggQmluaCBEdW9u ZyB0aWVuIGhhbmggY3VvbmcgY2hlIHRodSANCmhvaSBob24gMjgwaGEgY2FvIHN1IGNvbiBsYWkg byB4YSBBbiBUYXkgZGUgbGFtIGtodSBjb25nIG5naGllcC4gQW5oIEh1eW5oIE5nb2MgDQpTYW5n LCBuZ3VvaSB0dSBnaW9pIHRoaWV1IGRhbmcgcXVhbiBseSB2dW9uIGNhbyBzdSBjaG8gYmEgSGFp IFRhbSwgbmd1b2kgY2hpIHJ1b3QgY3VhIA0KVGh1IHR1b25nLCBrZTogTHVjIGx1b25nIGN1b25n IGNoZSB2b2kga2hvYW5nIDE1MCBuZ3VvaSwgZGEgImR1YSBkaSIgaXQgbmhhdCBiYSBuZ3VvaSAN CnRyb25nIGRvIGNvICJvbmcgSGFpIiwgY2hvbmcgYmEgVGFtLg0KDQpWdW9uIGNhbyBzdSBrZSB0 cmVuIHRodW9jIDY0MmhhIGRhdCBjYW8gc3Ugdm9uIGN1YSBjb25nIHR5IHF1b2MgZG9hbmggU29i ZXhjby4gVHJ1b2MgDQpkYXksIGRvIGxhbSBhbiB0aHVhIGxvLCBTb2JleGNvIGRhIGR1b2MgdGlu aCBCaW5oIER1b25nIGNobyBwaGVwICJiYW4gdnVvbiBjYXkgDQpraG9uZyBnb20gcXV5ZW4gc3Ug ZHVuZyBkYXQiIGRlIHRyYSBubywgdm9pIGdpYSBiaW5oIHF1YW4gNTAgdHJpZXUvaGEuIFRpZW4g dHJpbmggbXVhIA0KYmFuIGtlbyBkYWkgdG9pIG5hbSAyMDAxLCB0aGkgY28gbmh1bmcgdGhheSBk b2ksIGdpYXkgdG8gbXVhIGJhbiBkdW9jIGdoaSBsYSAiYmVuIEEgDQooU29iZXhjbykgY2h1eWVu IG5odW9uZyB2dW9uIGNheSBjYW8gc3UgZ2FuIGxpZW4gdm9pIHF1eWVuIHN1IGR1bmcgZGF0Ii4g SG9uIDQwIA0Kbmd1b2kgbXVhIHZ1b24gY2F5IGNhbyBzdSBvIGRheSB2ZSBzYXUgZHVvYyBjYXAg c28gZG8uDQoNClRoYW5nIDYuMjAwNiwgVGhhbmggdHJhIHRpbmggQmluaCBEdW9uZyBjaG8gcmFu ZyB2aWVjIGNhcCBzbyBkbyBjaG8gNDAgaG8gbmF5IGxhIHRyYWkgDQpsdWF0LiBDdW9jIHRyYW5o IGNhaSBjaHVhIG5nYSBuZ3Ugbmh1bmcgdGluaCB2YW4gY2hvIHBoZXAgY29uZyB0eSBYTksgQmlu aCBEdW9uZyANCnRodWMgaGllbiBkdSBhbiB4YXkgZHVuZyBraHUgY29uZyBuZ2hpZXAgQW4gVGF5 IHRyZW4ga2h1IGRhdCBuYXkuIFNvIGRhdCBtYSBzYXUgbmFtIA0KdHJ1b2MgZG8gdGluaCAiYmFu IiB2b2kgZ2lhIDUwIHRyaWV1IGRvbmcvaGEsIG5heSBkZSBsYW0ga2h1IGNvbmcgbmdoaWVwLCBt b3QgY29uZyB0eSANCnF1b2MgZG9hbmggZGVuIGJ1IHZvaSBnaWEgZ2FuIDEgdGkvaGEuIEtpZW4g cXV5ZXQgbGFtIGtodSBjb25nIG5naGllcCwgY2hpIHRyb25nIHZvbmcgDQp0dSB0aGFuZyA3IGRl biB0aGFuZyAxMC4yMDA3LCBjb25nIHR5IFhOSyBCaW5oIER1b25nIGRhIGNoaSByYSBob24gNTAw IHRpIGRlIGRlbiBidSANCmNobyB2dW9uIGNhbyBzdS4NCg0KVHUgbmFtIDIwMDYsIG1vdCBzbyBi YWkgYmFvIGRhIGNvaSBkYXkgbGEgInRoYW0gbmh1bmciOyBnYW4gZGF5LCBtb3Qgc28gYmFpIGJh byBkZSANCm5naGkgTmhhIG51b2MgY3VuZyBuZW4gZ2l1IGNodSB0aW4sIE5oYSBudW9jIHNhaSB0 aGkgTmhhIG51b2MgY2hpdSBraG9uZyBuZW4gdGh1IGxhaSANCnRpZW4gZGVuIGJ1IGRhIGNoaSBo YXkgdGh1IGhvaSBzbyBkby4gTmh1bmcsIHZhbiBkZSBsYSB0cm9uZyBzbyA0MCBuZ3VvaSAiZGFu IiBkdW5nIHRlbiANCnRyb25nIGNhYyBzbyBkbyBheSwgY28gbW90IHNvIGxhIG5ndW9pIG5oYSBj dWEgcXVhbiBjaHVjIGRpYSBwaHVvbmc7IHZhLCB0b2kgY3VvaSBuYW0gDQoyMDA4LCB0dXkga2hv bmcgZHVuZyB0ZW4gcXV5ZW4gc3UgZHVuZyBkYXQgbyBBbiBUYXksIGNvIG5ndW9pIHRoYW4gY3Vh IFRodSB0dW9uZyBjdW5nIA0KbGVuIGdhcCBjaGluaCBxdXllbiBkaWEgcGh1b25nIGtoaWV1IG5h aS4NCg0KTW90IHF1YW4gY2h1YyBkaWEgcGh1b25nIHhpbiBnaWF1IHRlbiBub2kgcmFuZyBobyBi aWV0IHRyb25nIHNvIG5odW5nIG5ndW9pIHBoYW4gZG9pIA0Kc2FuZyAxNy40IGNvIHZvIGNob25n IG5ndW9pIGNoaSBydW90IGN1YSBUaHUgdHVvbmcgbmh1bmcgY2hpbmggcXV5ZW4gdmFuIHRpZW4g aGFuaCANCmN1b25nIGNoZSB0aGVvIGR1bmcgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCB2YSBsdWMg bHVvbmcgY3VvbmcgY2hlIGRhIGtob25nIGdhcCBwaGFpIA0KYmF0IGN1IHN1IGNhbiB0aGllcCBu YW8uIENodXllbiBtdWEgYmFuLCBkZW4gYnUgdnVvbiBjYW8gc3UgZHVuZyBzYWkgcm9pIHNlIGNv biBwaGFpIA0KbGFtIHJvLCBuaHVuZyB0aW5oIHRoYW4gc3UgbmdheSB0aGFuZyB0cm9uZyB0aHVj IHRoaSBjb25nIHZ1IGN1YSBjaGluaCBxdXllbiBodXllbiBCZW4gDQpDYXQgbGEgbW90IHRoYWkg ZG8gaGFuaCB4dSBkYW5nIGdoaSBuaGFuLg0KDQpodHRwOi8vbXkub3BlcmEuY29tL0FvLVRyYW5n LU9pL2Jsb2cvP2lkPTQ0Njg2MDYgKHRyaWNoKSAyOS8xMC8yMDA5LCAyMDowNToxMQ0KDQpUaW4g dmUgdnUgY2hpYSBjaGFjIGRhdCBydW5nIGNhbyBzdSB0aW5oIEJpbmggRHVvbmcgDQoNCk5ndXll biBnaWFtIGRvYyBTbyBUYWkgbmd1eWVuICYgTW9pIFRydW9uZyB0aW5oIEJpbmggRHVvbmcgLSBD YW8gTWluaCBIdWUgZGEgYmkgYmF0IGRlIGRlIGRpZXUgdHJhIHZlIHZpZWMgY2hpYSBjaGFjIA0K aGFuZyB0cmFtIGhlY3RhIGRhdCBydW5nIGNhbyBzdSB0YWkgdGluaCBuYXkuIEJhbyBkaWVuIHR1 IFZpZXRuYW1uZXQgZHVhIHRpbiBob20gbmF5LiANCg0KVGhlbyBkbywgbmdheSAyOS8xMCBjdWMg Q1NEVCB0b2kgcGhhbSB2ZSB0aGFtIG5odW5nIGRhIHRvbmcgZGF0IHF1eWV0IGRpbmgga2hvaSB0 byBiaSBjYW4sIGJhdCB0YW0gZ2lhbSA0IHRoYW5nIGRvaSB2b2kgb25nIENhbyBNaW5oIEh1ZSCW IG5ndXllbiBnaWFtIGRvYyBzbyBUTSZNVCANCnRpbmggQmluaCBEdW9uZyB2ZSB0b2kgZGFuaCAi TG9pIGR1bmcgY2h1YyB2dSBxdXllbiBoYW4gdHJvbmcga2hpIHRoaSBoYW5oIGNvbmcgdnUiLiAN CkNvbmcgYW4gZGEgdGllbiBoYW5oIGtoYW0geGV0IG5oYSByaWVuZyBjdWEgb25nIEh1ZSB0YWkg ZHVvbmcgTmd1eWVuIFRoaWVuIFRodWF0LCBwaHVvbmcgMjQsIHF1YW4gQmluaCBUaGFuaCwgdGh1 IGdpdSBuaGlldSB0YWkgbGlldSBjbyBsaWVuIHF1YW4uIA0KDQpDdW5nIGJpIGJhdCBnaWFtIGRv aSB2b2kgb25nIEh1ZSBjb24gY28gMyBiaSBjYW4ga2hhYyBnb206IERvIFZhbiBTYW0gLSBjYW4g Ym8gcGhvbmcgVE4mTVQgaHV5ZW4gQmVuIENhdCwgUGhhbiBWYW4gVHJ1bmcgLSB0cnVvbmcgcGhv bmcgTm9uZyBuZ2hpZXAgdmEgcGhhdCANCnRyaWVuIG5vbmcgdGhvbiBodXllbiBCZW4gQ2F0IHZh IE5ndXllbiBUaGFuaCBIYWkgLSBuZ3V5ZW4gR2lhbSBkb2MgY29uZyB0eSBjaGUgDQpiaWVuIGNh eSBjb25nIG5vbmcgbmdoaWVwIHh1YXQga2hhdSB0aW5oIFNvbmcgQmUgY3UsIG5heSBsYSB0aW5o IEJpbmggRHVvbmcgKGdvaSB0YXQgbGEgU29iZXhjbykuIA0KDQpPbmcgSHVlIHZhIG5odW5nIG5n dW9pIGxpZW4gcXVhbiBiaSBjYW8gYnVvYyB0cm9uZyB2aWVjICJjaGlhIGNoYWMiIGtob2FuZyA2 NzUgaGVjdGEgZGF0IHJ1bmcgY2FvIHN1IHRhaSBodXllbiBCZW4gQ2F0LCB0aW5oIEJpbmggRHVv bmcuIERheSBsYSB0YWkgc2FuIG1hIGNvbmcgdHkgU29iZXhjbyANCmxhbSBhbiB0aHVhIGxvLCB4 aW4gYmFuIHRoYW5oIGx5IGRlIHRyYSBubyB2YW8gbmFtIDIwMDEuIExvaSBkdW5nIHZpZWMgbmF5 LCBvbmcgSHVlIHZhIDMgbmd1b2kgdHJlbiB0byBjaHVjIHRoYXUgdG9tIHNvIGRhdCBjb25nIG5v aSB0cmVuLiANCkR1b2MgYmlldCwgb25nIEh1ZSBkYSAiaG8gYmllbiIgY2h1IHRydW9uZyBjaGkg YmFuIGNheSBjYW8gc3UsIHZhdCBraWVuIHRydWMgdHJlbiBkYXQgdGhhbmggdmllYyBiYW4gbHVv biBkYXQsIGtlbSB0aGVvIHF1eWVuIHN1IGR1bmcgZGF0IGNobyBuZ3VvaSBtdWEuIFRyb25nIGRh bmggc2FjaCANCm5odW5nIG5ndW9pIG11YSBkYXQgY28gdGVuIGN1YSB2byB2YSAyIGNvbiBnYWkg Y3VhIG9uZyBIdWUuIE5nb2FpIHJhIGNvbiBjbyBoYW5nIGxvYXQgY2FuIGJvIGNhcCBodXllbiB2 YSB0aW5oIGN1bmcgY28gZGluaCBkYW5nLiANCkJhbyB0cm9uZyBudW9jIGRhIGR1YSB0aW4sIGJh IEhhaSBUYW0gLSBjaGkgcnVvdCBjdWEgVGh1IHR1b25nIGN1bmcgZGluaCBsaXUgdmFvIHZpZWMg DQpjaGlhIGNoYWMgZGF0IG5heS4gR2lvaSBibG9nZXIgY2hvIGJpZXQsIHNhdSBraGkgY29uIHJl IGJpICJob3QiLCBNYSB0aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nIGRhIHRvaSAieGkgdmEgdGlu aCB1eSBCaW5oIER1b25nIGtob25nIHJhIGdpIHZlIHZ1IHZpZWMgbmF5Ii4NCg0KaHR0cDovL2Jh b3RvcXVvYy5jb20vMjAwOS8xMC8yOS9jaHUlRTElQkElQTluLWIlRTElQkIlOEItZ2lhbmgtZ2gl RTElQkElQkYtdHJvbmctZCVFMSVCQSVBMWktaCVFMSVCQiU5OWkteGktZGNzdm4tdiVFMSVCQiVB NS1jaGlhLWNoYWMtNjc1LW0lRTElQkElQUJ1LXIlRTElQkIlQUJuZy1jYW8tc3UtdCVFMSVCQiU4 OW5oLWJpbmgtZCVDNiVCMCVDNiVBMW5nLW4lRTElQkIlOTUtbCVFMSVCQiU5Qm4vICAyOS8xMC8y MDA5ICANCg0KVnUgY2hpYSBjaGFjIDY3NSBoYSBydW5nIGNhbyBzdSB0aW5oIEJpbmggRHVvbmcg bm8gbG9uIA0KDQo2NzUgaGEgcnVuZyBjYW8gc3UgYmkgY2hpYSBjaGFjIGNobyBjYW4gYm8gdGlu aCBCaW5oIER1b25nLCB0cm9uZyBkbyBjbyB0aGFuIG5oYW4gY3VhIG9uZyBOZ3V5ZW4gVGFuIER1 bmcuDQoNCk5ndXllbiBnaWFtIGRvYyBTbyBUYWkgbmd1eWVuICYgTW9pIFRydW9uZyB0aW5oIEJp bmggRHVvbmcgQ2FvIE1pbmggSHVlIGN1bmcgMyANCm5ndW9pIGtoYWMgZGEgYmkgYmF0IGRlIGRl IGRpZXUgdHJhIHZlIHZpZWMgY2hpIGNoYWMgaGFuZyB0cmFtIGhlY3RhIGRhdCBydW5nIGNhbyBz dSB0YWkgDQp0aW5oIG5heTsgVmlldG5hbSBOZXQgZHVhIHRpbiBob20gbmF5DQoNClRoZW8gZG8g bmdheSAyOS8xMCBDdWMgQ1NEVCB0b2kgcGhhbSB2ZSB0aGFtIG5odW5nIChDMzcpIEJvIENvbmcg YW4gZGEgdG9uZyBkYXQgDQpxdXlldCBkaW5oIGtob2kgdG8gYmkgY2FuLCBiYXQgdGFtIGdpYW0g NCB0aGFuZyBkb2kgdm9pIG9uZyBDYW8gTWluaCBIdWUgliBOZ3V5ZW4gDQpnaWFtIGRvYyBzbyBU TSZNVCB0aW5oIEJpbmggRHVvbmcgdmUgdG9pIGRhbmgiTG9pIGR1bmcgY2h1YyB2dSBxdXllbiBo YW4gdHJvbmcgDQpraGkgdGhpIGhhbmggY29uZyB2dSIuDQoNCjkgZ2lvIHNhbmcgY3VuZyBuZ2F5 LCBDb25nIGFuIGRhIHRpZW4gaGFuaCBraGFtIHhldCBuaGEgcmllbmcgY3VhIG9uZyBIdWUgdGFp IGR1b25nIA0KTmd1eWVuIFRoaWVuIFRodWF0LCBwaHVvbmcgMjQsIHF1YW4gQmluaCBUaGFuaCwg dGh1IGdpdSBuaGlldSB0YWkgbGlldSBjbyBsaWVuIHF1YW4uDQoNCkN1bmcgYmkgYmF0IGdpYW0g ZG9pIHZvaSBvbmcgSHVlIGNvbiBjbyAzIGJpIGNhbiBraGFjIGdvbTogRG8gVmFuIFNhbSAoY2Fu IGJvIHBob25nIA0KVE4mTVQgaHV5ZW4gQmVuIENhdCksIFBoYW4gVmFuIFRydW5nIChUcnVvbmcg cGhvbmcgTm9uZyBuZ2hpZXAgdmEgcGhhdCB0cmllbiANCk5vbmcgdGhvbiBodXllbiBCZW4gQ2F0 KSB2YSBOZ3V5ZW4gVGhhbmggSGFpIChuZ3V5ZW4gR2lhbSBkb2MgY29uZyB0eSBjb25nIHR5IGNo ZSANCmJpZW4gY2F5IGNvbmcgbm9uZyBuZ2hpZXAgeHVhdCBraGF1IHRpbmggU29uZyBCZSBjdSwg bmF5IGxhIHRpbmggQmluaCBEdW9uZyAoZ29pIHRhdCBsYSANClNvYmV4Y28pLg0KDQpPbmcgSHVl IHZhIG5odW5nIG5ndW9pIGxpZW4gaGUgYmkgY2FvIGJ1b2MgdHJvbmcgdmllYyJjaGlhIGNoYWMi IGtob2FuZyA2NzUgaGVjdGEgZGF0IA0KcnVuZyBjYW8gc3UgdGFpIGh1eWVuIEJlbiBDYXQsIHRp bmggQmluaCBEdW9uZy4gRGF5IGxhIHRhaSBzYW4gbWEgY29uZyB0eSBTb2JleGNvIGxhbSANCmFu IHRodWEgbG8sIHhpbiBiYW4gdGhhbmggbHkgZGUgdHJhIG5vIHZhbyBuYW0gMjAwMS4gTG9pIGR1 bmcgdmllYyBuYXksIE9uZyBIdWUgdmEgMyANCm5ndW9pIHRyZW4gdG8gY2h1YyB0aGF1IHRvbSBz byBkYXQgY29uZyBub2kgdHJlbi4NCg0KKEFuaDogTmhhIHJpZW5nIG9uZyBDYW8gTWluaCBIdWUs IG5ndXllbiBHaWFtIGRvYyBTbyBUTiAmIE1UIHRpbmggQmluaCBEdW9uZyB0YWkgDQpTYWkgR29u LCBub2kgb25nIGJpIGJhdCB0YW0gZ2lhbSBzYW5nIDI5LzEwKQ0KDQpEdW9jIGJpZXQsIG9uZyBI dWUgZGEiaG8gYmllbiIgY2h1IHRydW9uZyBjaGkgYmFuIGNhbyBzdSwgdmF0IGtpZW4gdHJ1YyB0 cmVuIGRhdCB0aGFuaCANCnZpZWMgYmFuIGx1b24gZGF0LCBrZW0gdGhlbyBxdXllbiBzdSBkdW5n IGRhdCBjaG8gbmd1b2kgbXVhLiBUcm9uZyBkYW5oIHNhY2ggbmh1bmcgDQpuZ3VvaSBtdWEgZGF0 IGNvIHRlbiBjdWEgdm8gdmEgMiBjb24gZ2FpIGN1YSBvbmcgSHVlLiBOZ29haSByYSBjb24gY28g aGFuZyBsb2F0IGNhbiBibyANCmNhcCBodXllbiB2YSB0aW5oIGN1bmcgY28gZGluaCBkYW5nLg0K DQpUdW9uZyBuZW4gbmhhYyBsYWksIHRydW9jIGRvIGJhbyBjaGkgdHJvbmcgdmEgbmdvYWkgbnVv YyBkYSBkdWEgdGluIGJhIEhhaSBUYW0sIGNoaSBydW90IA0KY3VhIG9uZyBOZ3V5ZW4gVGFuIER1 bmcsIFRodSB0dW9uZyBjaGluaCBwaHUsIGRpbmggbGl1IHZhbyB2aWVjIGNoaWEgY2hhYyBkYXQg bmF5LiANClRoZW8gZG8sIGJhIFRhbSBkYSBjbyAxODUgaGEuIEJhbyBTR1RUIGNobyBoYXksIGhv bSAxNy80LzIwMDksIG5ndW9pIHRoYW4gdHJvbmcgZ2lhIA0KZGluaCBjdWEgVGh1IHR1b25nIE5n dXllbiBUYW4gRHVuZyBkYSBiaSJhcCBnaWFpIHJhIGtob2kgaGllbiB0cnVvbmciIGtoaSBjaGlu aCBxdXllbiANCmh1eWVuIEJlbiBDYXQsIHRpbmggQmluaCBEdW9uZyB0aWVuIGhhbmggY3Vvbmcg Y2hlIHRodSBob2kgaG9uIDI4MGhhIGNhbyBzdSBjb24gbGFpIG8gDQp4YSBBbiBUYXkgZGUgbGFt IGtodSBjb25nIG5naGllcC4gDQoNClRpbiB0dWMgY3VuZyBub2kgcmFuZyBjbyJtYXUgdGh1YW4i IGdpdWEiQW5oIEJhIiBOZ3V5ZW4gVGFuIER1bmcgdmEiQW5oIFNhdSIgTmd1eWVuIE1pbmggVHJp ZXQgdmUgdnUgY2hpYSBjaGFjIGRhdCBjYXQgbyB0aW5oIEJpbmggRHVvbmcgliBub2kiY2FuIGN1 IGRpYSIgY3VhIGFuaCBTYXUuIA0KVnUgYmF0IGdpdSBuZ3V5ZW4gR2lhbSBkb2MgU28gVE4gJiBN VCB0aW5oIEJpbmggRHVvbmcgY28gdGhlIGNoYW0gbmdvaSBjaG8gbm9pIHZ1IA0Kbm8gbG9uIHRy b25nIGJvaSBjYW5oIGRhbmcgY2h1YW4gYmkgdG8gY2h1YyBEYWkgSG9pIERhbmcgWEkgdmFvIG5h bSB0b2k7IG5ndW9pIG5hbyANCmRpbmggbGl1IHRoYW0gbmh1bmcgaG9hYyBnaWEgZGluaCBkaW5o IGxpdSB0aGFtIG5odW5nLCB0aGlldSBndW9uZyBtYXUsIGRldSBraG9uZyANCmR1b2MgYmF1IHZh byBUcnVuZyB1b25nIERhbmcuICANCg0KaHR0cDovL25ndW9pLXZpZXQuY29tL2Fic29sdXRlbm0v YW5tdmlld2VyLmFzcD9hPTk0MzQxJno9MSBUdSBOZ28gMDIvNS8yMDA5IA0KDQpUcmVuIGNoaSBo YWksIGNvbiBjbyBNYSBUaHUgVHVvbmcNCg0KTWF5IGhvbSB2dWEgcm9pLCB0aGllbiBoYSBiYW4g dGFuIHZlIGNodXllbiBjaGkgaGFpIFRodSBUdW9uZyBOZ3V5ZW4gVGFuIER1bmcgYmkgDQpjaGlu aCBxdXllbiB0aW5oIEJpbmggRHVvbmcgY3VvbmcgY2hlIGRhdCBkYWkuDQoNCk5oYSBiYW8gSHV5 IER1YyBjaG8gcGhvIGJpZW4gdHJlbiB0byBTYWkgR29uIFRpZXAgVGhpIGJhaSB2aWV0ICJDaGkg SGFpIFRodSBUdW9uZyIuDQpUcm9uZyBiYWkgbmF5LCBIdXkgRHVjIGtlIGNodXllbiB4YXkgcmEg c2FuZyBuZ2F5IDE3IFRoYW5nIFR1IDIwMDkgIm1vdCBuZ3VvaSB0aGFuIA0KY3VhIHRodSB0dW9u ZyBjdW5nIGRhIGJpIGFwIGdpYWkgcmEga2hvaSBoaWVuIHRydW9uZyIuIEhpZW4gdHJ1b25nIGN1 YSB2dSBjaGluaCBxdXllbiANCmh1eWVuIEJlbiBDYXQgdGluaCBCaW5oIER1b25nIGN1b25nIGNo ZSB0aHUgaG9pIDI4MCBoYSBjYW8gc3UgY29uIGxhaSB0YWkgeGEgQW4gVGF5IGRlIGxhbSBraHUg Y29uZyBuZ2hpZXAuDQoNCkh1eW5oIE5nb2MgU2FuZywgbmd1b2kgdHUgZ2lvaSB0aGlldSBsYSBx dWFuIGx5IGNobyBiYSBIYWkgVGFtIChjaGkgSGFpIFRodSBUdW9uZyksIA0Ka2UgcmFuZyAiTHVj IGx1b25nIGN1b25nIGNoZSB2b2kga2hvYW5nIDE1MCBuZ3VvaSBkYSAnZHVhIGRpJyBpdCBuaGF0 IDMgbmd1b2kgdHJvbmcgZG8gDQpjbyAnb25nIEhhaScgY2hvbmcgYmEgVGFtLiIgDQpUYWMgZ2lh IEh1eSBEdWMgbm9pIHJhbmcgY2h1eWVuIG11YSBiYW4sIGRlbiBidSBnaWFpIHRvYSBydW5nIGNh byBzdSBkdW5nIHNhaSAicm9pIHNlIA0KY29uIHBoYWkgbGFtIHJvIi4gTmh1bmcgY2h1eWVuIGNo aW5oIHF1eWVuIHRpbmggQmluaCBEdW9uZyBkYW0gZ29uZyBtaW5oIGhvdCBjYSANCmNob25nIGJh IEhhaSBUYW0gdmkgY2hvbmcgbGVuaCBjdW9uZyBjaGUgbGEgbW90IHRoYWkgZG8gY2hpdSBjaG9p IGR1b2MgbmhhIGJhbyBnaWFuIA0KdGllcCBjYSBuZ29pLg0KDQpCYXkgZ2lvIGRhIGhhaSB0dWFu IGxlIHF1YSwgY2h1YSB0aGF5IHRpbiB0dWMgbmFvIG5vaSBtb3QgdmllbiBjaHVjIG5hbyBjdWEg aHV5ZW4gQmVuIA0KQ2F0IGRlbiBxdWFuIGNodWMgY2FwIHRpbmggQmluaCBEdW9uZyBiaSB0aHV5 ZW4gY2h1eWVuIGhheSBreSBsdWF0IHZpIGRhbSBkdW5nIG8ga2llbiANCmx1YS4gTmh1bmcgYmVu IGNhbmggY2FpIGJlIG5nb2FpIGVtIGFuZyBkbywgY28gc3UgeHVhdCBoaWVuIGN1YSBNYSBUaHUg VHVvbmcuDQpUaGVvIHRheSB2aWV0IGJsb2cgIkNoYW5nZSB3ZSBuZWVkIiAodGF5IG5heSBiaWV0 IG5oaWV1IGNodXllbiBkb25nIHRyb2kgdGhhbSBjdW5nIGJpIHN1KSwgDQpzYXUga2hpIGNvbiBy ZSBiaSBob3QsIE1hIFRodSBUdW9uZyBkYSB0b2kgInNpIHZhIHRpbmggdXkgQmluaCBEdW9uZyBr aG9uZyByYSBnaSB2ZSANCnZ1IHZpZWMgbmF5Ii4NClRoZW8gZHUgbHVhbiwgdGluaCB1eSBCaW5o IER1b25nIGR1IGNvIHVvbmcgY2EgdHJhbSB2aWVuIHRodW9jIGxpZXUgY3VuZyBraG9uZyBkYW0g DQpjdW9uZyBjaGUga2h1IHJ1bmcgY2FvIHN1IGN1YSBDaGkgSGFpIFRodSBUdW9uZywgbWEgbGFp IGNvbiBob3QgYW5oIHJlIHRodSB0dW9uZy4gRGF0IA0KQmluaCBEdW9uZyB2b24gbGEgZGlhIGJh biBjdSBjdWEgYW5oIFNhdSAoTmd1eWVuIE1pbmggVHJpZXQpLiBDYW4gYm8gdGluaCBCaW5oIA0K RHVvbmcgYmF5IGdpbyB2YW4gY29uIG1vaSBxdWFuIGhlIGNoYXQgY2hlIHZvaSBhbmggU2F1IG5l biBraGkgY28gY2h1eWVuIGdpIHRlIG5oaSANCmtobyBraGFuIGRldSBuaG8gYW5oIFNhdSBjaG8g eSBraWVuIGhheSBjaGUgZHUuDQpOZ3VvaSB0YSBuZ2hpIHRpbmggdXkgQmluaCBEdW9uZyBkYSBk dW9jIGFuaCBTYXUgYmF0IGRlbiB4YW5oIHRoaSBtb2kgZHUgbGlldSBtYSANCmN1b25nIGNoZSBj aGkgaGFpIGN1YSBhbmggQmEgKE5ndXllbiBUYW4gRHVuZykuDQpOZ3VvaSB0YSBkb24gbWF1IHRo dWFuIGdpdWEgYW5oIFNhdSB2YSBhbmggQmEga2hhIGxvbiB0cmVuIG5oaWV1IHZ1IHZpZWMuIE5n YXkgdHUgaGFpIA0KYmEgbmFtIHRydW9jIGtoaSB2dSBsdW0gc3VtIHZ1YSBiYW4gdnVhIGN1bmcg ZHVvbmcgKHRyYWkgbHVhdCkgNzUwIG1hdSBydW5nIGNhbyBzdSANCmN1YSB4YSBUYXkgQW4gY2hv IGNhbiBibyAoY2EgaHV5ZW4gdmEgdGluaCBCaW5oIER1b25nKSB2YSB0dSBuaGFuIChTYWkgR29u KSB0cm9uZyBkbyANCmNvIGNoaSBoYWkgVGh1IFR1b25nLCBuZ2hlIG5vaSBhbmggU2F1IGJpZXQg Y2h1eWVuIG5lbiB0dW5nIG5oYWMgYW5oIEJhIGxhIGR1bmcgZGUgZ2lhIA0KZGluaCBsb2kgZHVu ZyAoY3VuZyBsYSBtb3QgaGluaCB0aHVjIHRoYW0gbmh1bmcpLiBOaHVuZyBuZ29haSBjaHV5ZW4g cnVuZyBjYW8gc3UgDQpCaW5oIER1b25nLCBjaGkgaGFpIHRodSB0dW9uZyBjb24gZGF5IGNhIHZh byBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gaGllbiBjdW5nIGRhbmcgcmF0IGxpbmggeGluaC4N Cg0KQ2h1eWVuIGN1IDMgbmFtDQoNCk5nYXkgdHUgYmEgbmFtIHRydW9jLCBtb3Qgc28gYmFvIG5o dSBUdW9pIFRyZSwgVGllbiBQaG9uZyB2YSBuaGF0IGxhIHRvIExhbyBEb25nIGRhIA0KY28gbmh1 bmcgbG9hdCBiYWkgZGlldSB0cmEgcGhvbmcgc3UgcGhvaSBiYXkgdmllYyBjaGluaCBxdXllbiBo dXllbiBCZW4gQ2F0IHZhIHRpbmggDQpCaW5oIER1b25nIHZ1YSBiYW4gdnVhIGNobyBob24gNzUw IG1hdSBydW5nIGNhbyBzdSBjdWEgY29uZyB0eSBxdW9jIGRvYW5oIFNvYmV4Y28uIA0KQ29uZyB0 eSBTYWJleGNvIGxhbSBhbiB0aHVhIGxvIGJpIGdpYWkgdGhlLCBjaGluaCBxdXllbiBjaG8gbGVu aCB0aGFuaCBseSB0YWkgc2FuIGRlIHRyYSANCm5vIG5nYW4gaGFuZy4NCkx1YyBkYXUsIGNvbmcg dHkgdnVhIG5vaSBkdW9jIGNoaW5oIHF1eWVuIHRpbmggQmluaCBEdW9uZyBjaG8gcGhlcCAiYmFu IHZ1b24gY2F5IG1hIA0Ka2hvbmcgZ29tIHF1eWVuIHN1IGR1bmcgZGF0IiB2b2kgZ2lhIGJhbiB0 cnVuZyBiaW5oIDUwIHRyaWV1IGRvbmcvaGEuIEJlbiBjYW5oIG5odW5nIA0Kbmd1b2kgdHUgbmhh biBtdWEgZGF0LCBpdCByYSBnaXVhIDU1MCBoYSBkZW4gNjUwaGEgZGEgZHVvYyAiYmlldSIgY2hv IGNhbiBibyB0dSBodXllbiANCmRlbiB0aW5oLiBOZ3VvaSB0YSBraG9uZyBybyBDaGkgSGFpIFRo dSBUdW9uZyBuYW0gdHJvbmcgc28gbmh1bmcgbmd1b2kgbXVhIGhheSANCm5ndW9pIGR1b2MgImJp ZXUiLg0KVnUgdnVhIG11YSB2dWEgYmlldSBrZW8gZGFpIHRyb25nIGFtIHRoYW0gbmhpZXUgbmFt IHRoaSBkZW4gbmFtIDIwMDEsIGNhYyBjaHUgbW9pIA0KY3VhIHJ1bmcgY2FvIHN1IFRheSBBbiBk dW9jIGNhcCBnaWF5IHRvIGdoaSBsYSAiYmVuIEEgKFNvYmV4Y28pIGNodXllbiBuaHVvbmcgdnVv biANCmNheSBjYW8gc3UgZ2FuIGxpZW4gdm9pIHF1eWVuIHN1IGR1bmcgZGF0Ii4gVHUgZGF5LCBo b24gNDAgbmd1b2kgbXVhIGR1b2MgY2FwICJzbyBkbyIgDQp0dWMgc28gY2hpbmggdGh1YyBjb25n IG5oYW4gInF1eWVuIHN1IGR1bmcgZGF0Ii4gS2hvbmcgYmlldCBsYSBjbyBsb2kgbm9pIHZvIGN1 YSBjaGkgaGFpIA0KdGh1IHR1b25nIG1hIGR1b2MgdmF5IGhheSBraG9uZy4NCg0KVHJvbmcgc28g bmh1bmcgbmd1b2kgZHVvYyAiYmlldSIgY28gdm8gdmEgMiBjb24gZ2FpIGdpYW0gZG9jIFNvIFRh aSBOZ3V5ZW4gTW9pIA0KVHJ1b25nIHRpbmggQmluaCBEdW9uZyBsYSBDYW8gTWluaCBIdWUgdm9p IHRvbmcgY29uZyA3OCBoYS4gS2hvYW5nIDUyLjkgaGEgZHVvYyANCiJiaWV1IiBjaG8gIjE0IGNh biBibyB2YW4gcGhvbmcgaHV5ZW4gdXkgQmVuIENhdCIuDQoNClRoZW8gYmFuIHRpbiBWaWV0TmFt TmV0IG5nYXkgOSBUaGFuZyBNdW9pIE1vdCAyMDA2LCBuZ29haSBzbyBydW5nIGNhbyBzdSAiYmll dSIsIHNvIA0KY29uIGxhaSB0aGkgInZpZWMgYmFuIGtob25nIHF1YSBkYXUgZ2lhIDM1MCBoYSBj YW8gc3UgdmEgY2FwIHNvIGRvIDY1MCBoYSBjYW8gc3UgY2hvIGNhbiANCmJvIHZhIGNhIG5oYW4g bGEgc2FpIGRvaSB0dW9uZywgc2FpIHF1aSB0cmluaCB0aHUgdHVjLCB2aSBwaGFtIG5naGllbSB0 cm9uZyBMdWF0IERhdCBEYWkgDQp2YSBjYWMgdmFuIGJhbiB0aGkgaGFuaCIgbmh1IGtldCBsdWFu IGN1YSB0byB0cmluaCB0aGFuaCB0cmEgdGluaCBCaW5oIER1b25nLg0KDQpOaGlldSBjdW9jIGhv cCwgbmhpZXUgdnUgZ2lhaSB0cmluaCBrZSBjYSBuaHVuZyBsYW4gY29uZyBhbiBrZXUgdGhhbSB2 YW4gbW90IHNvIG5ndW9pIA0KbGllbiBxdWFuIGRlbiB2dSBobyBiaWVuIHJ1bmcgY2FvIHN1IFRh eSBBbiAodGFpIHNhbiBuaGFuIGRhbikgdGhhbmggdGFpIHNhbiBjYSBuaGFuLg0KTWFpIGRlbiBn aXVhIG5hbSAyMDA2LCB2dSB2aWVjIG1vaSBkdW9jIGtodWkgcmEgbWEgbmhpZXUgYmFvIGNoZW4g dmFvIGJ1b2kgbW9jIHZ1IA0KYmFuIHJ1bmcgY2FvIHN1IFRheSBBbiBraGkgb25nIGJhIER1bmcg bW9pIGxlbiBsYW0gdGh1IHR1b25nLiBWdSB2aWVjIGNoYWMgY3VuZyANCmtob25nIHRybyB0aGFu aCB2YW4gZGUgbG9uIG5ldSBraG9uZyBjbyBjaHV5ZW4gdGluaCBCaW5oIER1b25nIGxhcCBkdSBh biBiaWVuIGtodSANCnJ1bmcgY2FvIHN1IG5heSB0aGFuaCBraHUgY29uZyBuZ2hlLg0KDQpOZ2F5 IDIxIFRoYW5nIEJhIDIwMDcsIGNoaW5oIHF1eWVuIHRpbmggQmluaCBEdW9uZyAicGhlIGR1eWV0 IHF1aSBob2FjaCBLaHUgTGllbiANCkhvcCBDb25nIE5naGUtRGljaCBWdSBUYXkgQW4iIHRodW9j IGhhaSB4YSBBbiBEaWVuIHZhIFRheSBBbiBjdWEgaHV5ZW4gQmVuIENhdCANCnZvaSBkaWVuIHRp Y2ggdG9uZyBjb25nIDEsMzUwIGhhLiBEZW4gbmdheSAyMiBUaGFuZyBTYXUgMjAwNywgY2hpbmgg cXV5ZW4gQmluaCANCkR1b25nIHJhIHRpZXAgcXV5ZXQgZGluaCBraGFjIHF1aSBkaW5oICJkb24g Z2lhIGRlbiBidSBobyB0cm8gdmUgZGF0IHZhIHRhaSBzYW4gdHJlbiBkYXQiLg0KDQpUaGVvIHRv IExhbyBEb25nIG5nYXkgMjYgVGhhbmcgQmF5IDIwMDcgInRoZW8gcXVpIGRpbmggbmF5LCB0b2Fu IGJvIG5odW5nIGNhIG5oYW4gDQpkdW9jIJFiaWV1IGtob25nkiBnaWEgdHJpIDcwMCBoYSBkYXQg Y29uZyBzZSBkdW9jIGNvbmcgdHkgU1gtWE5LIEJEICh2b24gbmhhIG51b2MsIA0KdGh1b2MgVUJO RCB0aW5oIEJpbmggRHVvbmcpIGJvaSB0aHVvbmcgZ2lhIHRyaSBkYXQgdmEgdGFpIHNhbiAodHVj IHZ1b24gY2FvIHN1KSBraGkgdGh1IA0KaG9pIDcwMCBoYSBkYXQiLg0KDQpWYXkgbGEsIG5odW5n IGFpIGxhbSBjaHUgbWllbmcgcnVuZyBjYW8gc3UgbmFvLCBkdSBkdW9jICJiaWV1IGtob25nIGhh eSBwaGFpIG11YSANCmN1bmcgZHVvYyBkZW4gYnUgdHJ1bmcgYmluaCAxIHRpIGRvbmcgbW90IGhh LiINCg0KQ2hpIEhhaSBUaHUgVHVvbmcsIG11YSBoYXkgZHVvYyBiaWV1PyBLaG9uZyBhaSBiaWV0 LiBOZXUgY2hpIGhhaSBtdWEsIHRoaSBtb2kgbWF1IGxvaSANCjk1MCB0cmlldS4gTmV1IGNoaSBo YWkgZHVvYyBiaWV1IHRoaSBhbSB0cm9uIDE4NSB0aSBtYSBjaGFuZyBwaGFpIGxhbSBnaS4NCg0K Q28gYmluaCBsdWFuIHJhbmcgQ2hpIEhhaSBnaWEgYm8gImJpIGN1b25nIGNoZSIgdmF5IHRob2ks IGRhbmcgY2hvIHRodSB0dW9uZyB0aGVtIGRhbmggDQpnaWEuIE9uZyBsYSB0aHUgdHVvbmcgbGFp IGNvbiBsYSBuZ3VvaSBjYW0gZGF1IGNvIHF1YW4gcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyB0cnVu ZyANCnVvbmcgY3VhIG5oYSBudW9jLCBuZXUgb25nIGJvYyBwaG9uIGNhbiB0aGllcCB0aGkgZGUg dGhvaS4gTGFpIGNvbiBjbyBhbmggU2F1IG8gbWUgYmVuIA0Ka2lhIGRvIGRhdSBjaG8gYm9uIHRp bmggbGUsIG5vaSBxdWEgbm9pIGxhaSBjYW5nIHRoZW0gdW0gc3VtLg0KTW90IGxvaSAyMCBsYW4g KG11YSA1MCB0cmlldSBkb25nIGJhbiBtb3QgdGkgZG9uZyksIGNvbiBjbyBnaSBraWVtIG5oaWV1 IGhvbiBvIGNhaSB0aG9pIA0Ka2luaCB0ZSBzdXkgdGhvYWkgbmF5PyANCkNvIG5ndW9pIG5ldSB5 IGtpZW4gdGFpIHNhbyBsYW0gc2FpIGxhaSBraG9uZyBiaSB0aHUgaG9pLCBjdW5nIGtob25nIGFp IGJpIHRyaSB0b2ksIGxhaSBjb24gDQpkdW5nIG1vdCBzbyB0aWVuIGtob25nIGxvIGN1YSBuaGEg bnVvYyBkZSAiZGVuIGJ1IiBnaWFpIHRvYS4gRGFuIGRvaSBraG9uZyBjbyBnaSBhbiBtYSANCmxh aSBkdW5nIHRpZW4gbmhhIG51b2MgImRlbiBidSIgY2hvIGNhaSBzYWkgdHJhaSBjdWEgbmhhIG51 b2M/IE5odSB2YXkgbGEgImN1YSBkYW4sIGRvIA0KZGFuIHZhIHZpIGRhbiIgZGF5IHNhbz8gSGF5 IGxhICJjdWEgZGFuLCBkbyBkYW4gdmEgdmkgY2FuIGJvIiBjaGFuZz8gSG9pIHR1YyB0cmEgbG9p IHJvaS4NCkNvIGtlIGNvbiBub2kgcmFuZyBuaGEgbnVvYyBkYSBzYWksIGRhIHRyYSB0aWVuIGRl biBidSByb2kgdGhpIHJhbmcgY2hpdSwga2hvbmcgZHVvYyBkb2kgDQpsYWkgdGllbi4gVmF5IG1v aSBsYSAidmkgY2FuIGJvIi4gTWEgY2FuIGJvIHRoaSBjdW5nIHR1IG5oYW4gZGFuIG1hIHJhIGNo dSBkYXUgcGhhaSB0dSANCmR1b2kgZGF0IGNodWkgbGVuIQ0KQ29uIE1hIFRodSBUdW9uZyBuZXUg dG9pIHNpIHZhIGRhbSBjaG9wIGJ1IHRpbmggQmluaCBEdW9uZywgY2hhYyBsYSBjaHVvaSBjYWkg dG9pIA0KZGFtIGhvdCBjb24gcmUgY3VhIGJhLCB0dWMgdnVvdCBtYXQgbWEga2hvbmcgbmUgbXVp LCB2dWEgY2hvIG1heSB0ZW4gdGluaCBuYXkgYmlldCBsYSANCnRpZW4gZGVuIGJ1IG5odSB2YXkg Y2h1YSBibyB4aWEgcmFuZy4gTWEgdm8gbmFvIG1hIGNoYW5nIHRodW9uZyBjb24gcmUuIA0KDQpo dHRwOi8vd3d3LnZpZXRjeWJlci5jb20vZm9ydW1zL2FyY2hpdmUvaW5kZXgucGhwL3QtMTA4MDk2 Lmh0bWwgYW5odHUgMDgtMTYtMjAwNiwgMDc6MDQgQU0NCg0KVGh1IHR1eWV0IG1lbmggdGFwIHRo ZSBjdWEgZGFuIG9hbiBiaSBjdW9wIGRhdCB0YWkgS2llbiBHaWFuZw0KDQpLaWVuIEdpYW5nIC0g Vk46IFZpIGJpIGNoaW5oIHF1eWVuIGNoZW4gZXAsIGN1b3AgZG9hdCBkYXQgZGFpLCBtb3QgcGh1 IG51IHNpbmggc29uZyB0YWkgDQp0aW5oIEtpZW4gR2lhbmcgZGEgZ3VpIGxhIHRodSB0dXlldCBt ZW5oIGNvIG5vaSBkdW5nIG5odSBzYXUuDQoNCkxBIFRIVSBUVVlFVCBNRU5IIFRBUCBUSEUgR0lB IERJTkgNCg0KS0lOSCBHT0k6IA0KDQotIENhYyBjbyBxdWFuIHRob25nIHRhbiBiYW8gY2hpIHRy b25nIHZhIG5nb2FpIG51b2MgDQotIE9uZyBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nLCBudW9j IENIWEhDTiBWSUVUIE5BTQ0KDQpUb2kgdGVuIGxhIE5ndXllbiBUaGkgTmdvYyBEaWVtLCBzaW5o IG5hbSAxOTY5LCB0aHVvbmcgdHJ1IHRhaSBzbyBuaGEgMTI4NCBhcCBWaW5oIA0KUGh1b2MgMSwg dGhpIHRyYW4gVmluaCBUaHVhbiAtIGh1eWVuIFZpbmggVGh1YW4gLSB0aW5oIEtpZW4gR2lhbmcu DQoNCk5heSB0b2kgZ3VpIGxhIHRodSB0dXlldCBtZW5oIG5heSBkZSBrZXUgY3V1IG1vdCB2aWVj IG9hbiBzYWkgZ2lhbmcgeHVvbmcgZ2lhIGRpbmggdG9pIA0Kc3VvdCAwNiBuYW0gcXVhIHBoYWkg dmFjIGRvbiBkaSBraGlldSBraWVuIHR1IGRpYSBwaHVvbmcgY2FwIGh1eWVuLCB0aW5oIHZhIHRy dW5nIHVvbmcsIA0KbGFtIG1hdCBuaGlldSB0aWVuIGN1YSBkaSBsYWksIHRhbSBseSBob2FuZyBt YW5nLCBjYSBnaWEgZGluaCBjdWEgdG9pIGRvIHNvbmcsIGRvIGNoZXQgDQpjaGkgdmkgY2hpbmgg cXV5ZW4gY2FjIGNhcCBjdWEgdGluaCBLaWVuIEdpYW5nIG5naGUgbG9pIGh1IGRvYSBjdWEgb25n IFBoYW0gSG9uZyBUYW4gDQpsYSBhbmggZW0gYmFuIHJlIHZvaSBvbmcgdGh1IHR1b25nIE5ndXll biBUYW4gRHVuZywgdm9pIG11dSBkbyBsYSBkZSBjaGllbSBkb2F0IGRhdCBkYWkgY3VhIGdpYSBk aW5oIHRvaS4gDQoNClNVIFZJRUMgRElFTiBCSUVOIE5IVSBTQVU6IA0KDQpOZ3VvbiBnb2MgZGF0 IGN1YSBiYSBEYW5nIFRoaSBEYW5nIGNvIHRvIGNodWMgbmdvbiBuZ2F5IDIvMTAvMTk0NCBsYW0g dG8gZGkgY2h1YyBsYWkgDQpjaG8gYmEgUGhhbSBUaGkgTmluaCBsYSBiYSBub2kgY3VhIHRvaSwg dHJvbmcgdG8gY2h1YyBuZ29uIG5heSBjbyA1IG5oYW4gY2h1bmcgdmEgY2hpbmggDQpxdXllbiBk aWEgcGh1b25nIHRoaSB0aHVjOyBjdW5nIG5hbSAxOTQ0IGJhIERhbmcgY2hldCBkZSBsYWkgY2hv IGJhIE5pbmggbWllbmcgZGF0IA0KbmF5IHZvaSB0byBjaHVjIG5nb24uIERlbiBuYW0gMTk0NyBi YSBOaW5oIHRoYXkgbmd1b2kgYW5oIHJ1b3Qga2hvbmcgY28gY2hvIG8gbmVuIA0KbW9pIGNobyBv bmcgYW5oIHJ1b3QgdGVuIGxhIFBoYW0gRGFuZyBEaW5oIG8gZGF1IHRyZW4gZGF0IG5heSwgb25n IERpbmggY28gY2F0IDEgY2FuIA0KbmhhIHZhIHRyb25nIGNheSBuZ2FuIG5nYXkgdHJlbiBkaWVu IHRpY2ggdGh1YyB0ZSBsYSAxMzQwIG0yLCBjb24gdGF0IGNhIHBoYW4gY29uIGxhaSANCmxhIDUw OTBtMiB0aGkgYmEgTmluaCBjYXQgbmhhIHZhIHRyb25nIGNheSBzdSBkdW5nIHR1IG5hbSAxOTQ0 IGxpZW4gdHVjIGRlbiBuYXkuIA0KDQpPbmcgUGhhbSBEYW5nIERpbmggbyBjdW5nIHZvIGxhIEJ1 aSBUaGkgQmUgbGEgbmd1b2kgbyBkYXUga2hvbmcgY28gbW90IGxvYWkgZ2lheSB0byANCm5hbyBo ZXQsIGRlbiBuYW0gMTk4OCB0aGkgb25nIERpbmggY2hldC4NCg0KTmFtIDE5OTMga2hpIG5oYSBu dW9jIHRodWMgaGllbiBjaHUgdHJ1b25nIGNodW5nIGRvIGRhYyBkaWVuIHRpY2ggZGF0IHN1IGR1 bmcgdGh1YyB0ZSANCnR1bmcgaG8gZ2lhIGRpbmggZGUgY2FwIHF1eWVuIHN1IGR1bmcgZGF0LiBM dWMgYmF5IGdpbyBjYW4gYm8gZGlhIGNoaW5oIGRlbiBkbyBkYWMgZG9uZyANCmxvYXQsIHRyb25n IGRvIGNvIGhvIGJhIE5pbmggdmEgYmEgQmUuIA0KDQpEaWVuIHRpY2ggZG8gdGh1YyB0ZSBjdWEg YmEgQmUgbGEgMTM0MG0yIG8gdGh1YSBzbyAyODEsIGJhIE5pbmggc3UgZHVuZyB0aHVjIHRlIGxh IA0KNTA5MG0yIG8gdGh1YSBzbyAyODIsIG5odW5nIGtoaSBkaWVuIHRlbiB2YW8gcXV5ZW4gc3Ug ZHVuZyBkYXQgKFFTREQpIHRoaSBiYSBCZSBsYWkgDQpraG9uZyBjaGl1IGR1bmcgdGVuIHZpIGJh IEJlIGNobyByYW5nIGJhIHNvbmcga2hvbmcgY28gY29uLCBuZXUgbWFpIHNhdSBiYSBjbyBxdWEg ZG9pIA0KdGhpIGN1bmcgcGhpZW4gcGh1YywgaG9uIG51YSBkYXkgbGEgZGF0IGNvIG5ndW9uIGdv YyBvIGRhdSBjdWEgYmVuIGNob25nIG5lbiBiYSBCZSANCmRvbmcgeSBkZSBjaG8gYmEgTklOSCBk dW5nIHRlbiAyIHRodWEgMjgxLCAyODIgdHJvbmcgUVNERCBzbyBITyAxOTI4IC9RU0RELiANCkN1 b2Mgc29uZyBjdWEgMiBiYSBnaWEgdGhhdCBsYSBkYW0gYW0gaGV0IGxvbmcgdGh1b25nIHlldSBu aGF1LiANCg0KTkdVT0kgREEgUEhBIEhPQUksIENISUEgUkUgTEFNIFRBTiBOQVQgR0lBIERJTkgg VE9JIQ0KDQpPbmcgUGhhbSBIb25nIFRhbiBsYSBuZ3VvaSB4dW5nIGRhbmggdm9pIGhhbmcgeG9t IGxhIGFuaCBlbSBiYW4gcmUgdm9pIG9uZyB0aHUgDQp0dW9uZyBOZ3V5ZW4gdGFuIER1bmcuDQoN Ck9uZyBUYW4gZGEgYmlldCBob2FuIGNhbmggY3VhIGJhIEJlIHNvbmcgbW90IG1pbmgga2hvbmcg Y29uIGNhaSBuZW4gdmFvIGxhbSB0aGFuIHZhIA0KZGEgZHVvYyBiYSBCZSBjaG8gaGFuIDEgcGhh biB0cm9uZyBtaWVuZyBkYXQgdHJvbmcgdGh1YSAyODEgZGUgeGF5IG5oYSBraWVuIGNvLCB0aGF5 IA0KZGF0IGNvbiB0cm9uZyBuaGlldSBuZW4gSG9uZyBUYW4geHVpIGdpdWMgYmEgQmUgZG9pIGxh aSBxdXllbiBkdW5nIHRlbiB0cm9uZyBRU0REIG8gDQp0aHVhIDI4MSB2b2kgZGllbiB0aWNoIGxh IDEzNDBtMiwgc3Ugc2FwIGRhdCBuYXkgSG9uZyBUYW4gZHVvYyBiYSBCZSB1eSBxdXllbiBjaG8g DQpkdW5nIHRlbiB0cmFuaCBjaGFwIHZvaSBiYSBOaW5oLiANCg0KLSBOZ2F5IDIwLzcvMTk5OSBi aWVuIGJhbiBob2EgZ2lhaSB0YWkgYXAgVmluaCBQaHVvYyAxIHRoZW8geWV1IGNhdSBjdWEgb25n IFBoYW0gDQpIb25nIFRhbiBsYSBiYSBOaW5oIHBoYWkgdGFjaCB0cmEgMTM0MG0yIHRhaSB0aHVh IHNvIDI4MSBjaG8gYmEgQmUgZHVuZyB0ZW4uDQoNCi0gTmdheSAwNC84LzE5OTkgYmllbiBiYW4g aG9hIGdpYWkgdGFpIFVCTkQgdGhpIHRyYW4gVmluaCBUaHVhbiBjdW5nIHRob25nIG5oYXQgdGhl byANCnlldSBjYXUgY3VhIG9uZyBQaGFtIEhvbmcgVGFuIHRyYSBsYWkgMTM0MG0yIHRyb25nIHRo dWEgMjgxIGNobyBiYSBCZSBkdW5nIHRlbiwgYmEgDQpOaW5oIGN1bmcgZG9uZyB5IHRyYSBsYWkg cXV5ZW4gZHVuZyB0ZW4gY2hvIGJhIEJlIHRyb25nIHRodWEgMjgxLiBTYXUgZG8gaXQgbmdheSB0 aGkgDQpoYW5nIHhvbSB0aGF5IG9uZyBIb25nIFRhbiBkdW5nIGtlbSBnYWkgcmFvIGxhaSAxIHBo YW4gZGF0IHRyZW4gdGh1YSAyODEgKGdpYXAgcmFuaCANCnZvaSBkYXQgY3VhIGJhIE5pbmgpIG9u ZyBIb25nIFRhbiBub2kgbGEgZGEgbXVhIGN1YSBiYSBCZSB2YSBjb24gdHV5ZW4gYm8gdm9pIG1v aSANCm5ndW9pIHJhbmcgc2UgdGllcCB0dWMgbGF5IHRoZW0gZGF0IGNobyBiYSBCZS4uLiBRdWEg dGhhdCwgc3UgdGhhbSBsYW0gY3VhIG9uZyBIb25nIFRhbiANCmNodWEgZHVuZyBsYWkgbyBkbywg SG9uZyBUYW4geWV1IGNhdSBjaHV5ZW4gaG8gc28gbGVuIFVCTkQgaHV5ZW4gVmluaCBUaHVhbiBk ZSANCmdpYWkgcXV5ZXQgdGllcCB0dWMuLi4NCg0KLSBOZ2F5IDEzLzEvMjAwMCBVQk5EIGh1eWVu IHJhIHF1eWV0IGRpbmggc28gMjAvMjAwMCAtIFFELVVCIHRyb25nIHF1eWV0IGRpbmggbmF5IA0K bGFpIGdpYWkgcXV5ZXQgYmEgTmluaCBwaGFpIHRyYSBsYWkgY2hvIGJhIEJlIHZvaSBkaWVuIHRp Y2ggbGEgMjE2M20yIHRyb25nIHRodWEgc28gMjgxLi4uDQoNCi0gTmdheSAxMi82LzIwMDAgdGhh bmggdHJhIHRpbmggcmEgdGllcCB0dWMgcXV5ZXQgZGluaCBzbyA4NC9RRCAtVFRSIGJ1b2MgQmEg TmluaCBwaGFpIA0KdHJhIGNobyBiYSBCZSB2b2kgZGllbiB0aWNoIGxhIDIxNjQsNW0yIG8gdGh1 YSAyODEuLi4NCg0KQmEgTmluaCBraG9uZyBkb25nIHkgdm9pIGNhY2ggZ2lhaSBxdXlldCBzYWkg dHJhaSBuYXkgbmVuIGxhbSBkb24ga2hpZXUgbmFpIGRlbiB2YW4gDQpwaG9uZyBjaGluaCBwaHUs IG5nYXkgMTYvOCAvMjAwNCBjbyBjb25nIHZhbiBzbyA1NzEvSEQgLUtUIGN1YSBQaG8gdnUgMiBk byBvbmcgDQpOZ3V5ZW4gVGhhbmggTG9uZyAoa3kgdGVuKSB0cm9uZyBjb25nIHZhbiBjbyBub2kg ZHVuZyBzYXU6ICJUdSB4dWEgdG9pIG5heSAyIGdpYSBkaW5oIA0KYmEgTmluaCB2YSBiYSBCZSB2 YW4gbyBkaWVuIHRpY2ggbmh1IG5nYXkgbmF5LiBTYXUga2hpIHhheSByYSB0cmFuaCBjaGFwLCBi YSBCZSBjaGkgeWV1IA0KY2F1IGR1b2Mgc3UgZHVuZyAxMzQwbTIgdGh1YSBzbyAyODEgKGJpZW4g YmFuIGhvYSBnaWFpIG5nYXkgNC84LzE5OTkpIG5odW5nIHRyb25nIA0KcXV5ZXQgZGluaCBzbyA4 NCAvUUQtVFRSIG5nYXkgMTIvNi8yMDAwIGN1YSB0aGFuaCB0cmEgdGluaCBsYWkgY29uZyBuaGFu IGNobyBiYSBCZSANCmRpZW4gdGljaCBsYSAyMTY0bTIgbGEga2hvbmcgdGh1YyB0ZSB2b2kgZGll biB0aWNoIHN1IGR1bmcuIERvIHZheSBkZSBuZ2hpIFVCTkQgdGluaCANCnhlbSB4ZXQgbGFpLiIN Cg0KTmdheSAxNy84LzIwMDUgZ2lhIGRpbmggdG9pIG5oYW4gZHVvYyB0aG9uZyBiYW8gc28gMzg2 L1VCTkQtUEMgZG8gb25nIGNodSB0aWNoIHRpbmggDQpsYSBCdWkgTmdvYyBTdW9uZyBodW9uZyBk YW4gdG9pIGtob2kga2llbiBvIHRvYSBhbiBodXllbiBWaW5oIFRodWFuLCB2aSBiYSBCZSBkYSBk dW9jIA0KY2FwIHNvIGRvIG5hbSAyMDAxLg0KDQpUb2kgbGFtIGRvbiBraG9pIGtpZW4gcmEgdG9h IGFuIGh1eWVuIHRoaSB0b2EgYW4ga2hvbmcgbmhhbiBkb24gdmEgdHJhIGxvaSBiYW5nIHZhbiBi YW4gDQpsYSBraG9uZyB0aHVvYyB0aGFtIHF1eWVuLCBuaHVuZyBraG9hbmcgMSB0aGFuZyBzYXUg ZG8gdGhpIHRvaSBjbyBnaWF5IG1vaSBjdWEgdG9hIGFuIA0KaHV5ZW4gbGEgYmEgQmUgbGFtIGRv biBraG9pIGtpZW4gdG9pIGRlIGRvaSBsYWkgZGF0IHZpIGJhIEJlIGNvIFFTREQgbmFtIDIwMDEs IGNobyANCnRoYXkgcmFuZyBobyBjaGkgbXVvbiBwaGlhIHRvaSBjaGkgZHVvYyBsYW0gImJpIGRv biIuLi4gRGVuIG5nYXkgMjQvNy8yMDA2IHRvYSBhbiBodXllbiANClZpbmggVGh1YW4geHUgcGhp ZW4gdG9hIHNvIHRoYW0gYW4gdHV5ZW4gbmh1IHNhdTogImJ1b2MgZ2lhIGRpbmggYmEgTmluaCB2 YSBjaGF1IGJhIGxhIA0KTmd1eWVuIFRoaSBOZ29jIERpZW0gcGhhaSBkbyBuaGEsIGNoYXQgY2F5 IHRyb25nICgyNSBuYW0gdHVvaSkgZGUgdHJhIGRhdCBsYWkgY2hvIGJhIEJlIA0KdmkgYmEgQmUg Y28gUVNERCBuYW0gMjAwMSIuIFRyb25nIGNhYyBsb2kgbmd1b2kgYmFvIHZlIHF1eWVuIGxvaSBj aG8gZ2lhIGRpbmggY3VhIHRvaSANCmNvIHkga2llbiBsYSB0YWkgc2FvIGNhYyBsb2FpIGdpYXkg dG8gbmh1IHRvIGNodWMgbmdvbiAxOTQ0LCBRU0REIDE5OTMsIGNhYyBiaWVuIGJhbiBob2EgDQpn aWFpIG8gZGlhIHBodW9uZyB2YSBkaWVuIHRpY2ggZGFuZyBzdSBkdW5nIHRodWMgdGUgdmEgY28g bmh1bmcgY2h1bmcgY3UgbGEgMDEgZGlhIENEIA0KdGh1IGFtIHR1IG5ndXllbiBuaGFuIGRhbiBk ZW4gY2FjIGNvIHF1YW4gY2hpbmggcXV5ZW4gS2llbiBHaWFuZyBnaWFpIHF1eWV0IG5odW5nIHNh aSANCnRyYWkgY2hvIGdpYSBkaW5oIGJhIE5pbmgsIG9uZyBUaGFtIHBoYW4gY2h1IHRvYSBwaGll biB0b2Egbm9pIHJhbmc6ICJUb2kgY2hpIGJpZXQgeHUgY2hvIA0KYmEgQmUgY28gUVNERCBuYW0g MjAwMSwgY29uIG5odW5nIGNodW5nIGN1IGdpIHRydW9jIGtpYSB0b2kga2hvbmcgY2FuIGJpZXQs IG5ldSBnaWEgDQpkaW5oIGNvIG11b24ga2llbiBjYW8gZ2kgZG8gdGhpIGhheSByYSBvbmcgVGh1 IHR1b25nIG1hIGtpZW4gdmkgb25nIFBoYW0gSG9uZyBUYW4gbGEgDQpobyBoYW5nIGN1YSB0aHUg dHVvbmcgTmd1eWVuIFRhbiBEdW5nDQoNClRvaSBjdW5nIG5oaWV1IGxhbiBnb2kgZG9uIHRodSB0 byBjYW8gdmllYyBsYW0gc2FpIHRyYWkgbmF5IGRlbiBjYWMgbGFuaCBkYW8gY3VhIHRydW5nIA0K dW9uZyB0dSBUb25nIGJpIHRodSwgQ2h1IHRpY2ggbnVvYywgQ2h1IHRpY2ggcXVvYyBob2ksIFRv bmcgdGhhbmggdHJhLCBUaHUgdHVvbmcgY2hpbmggDQpwaHUgLnYudi4gdGluaCBkZW4gbmF5IGto b2FuZyAxNWtnIGRvbiB0dSB2YSBkaWEgQ0QgdGh1IGFtIG5odW5nIGxvaSBoYWNoIGRpY2ggY3Vh IG9uZyANClBoYW0gSG9uZyBUYW4gIm9uZyB0YSBjaG8gcmFuZyBzbyBkaSBvbmcgY2hvIGJhIEJl IHRoYW5nIHZhIGNvIFFTREQgdm9pIGRpZW4gdGljaCANCm5odSB2YXkgbGEgbmhvIG9uZyBOZ3V5 ZW4gVGFuIER1bmcgZGllbiB0aG9haSB2YW8gVUJORCB0aW5oIEtpZW4gR2lhbmcgY2h1IGtob2kg DQpjYW4gZ2lheSB0byBnaSB4YWMgbWluaCBjYSwgdmEgb25nIFRhbiBjb24gbm9pIGNhYyB0byBi YW8gdHJvbmcgbnVvYyBtdW9uIGRhbmcgY2h1eWVuIA0KbmF5IHRoaSBjb2kgY2h1bmcgZ2l1IGNh aSBtYW5nIGRvIHZhIHNlIDEgY3UgZGllbiB0aG9haSBjaG8gb25nIDMgRHVuZyBsYSBnaWV0IG5v IG5nYXkiLiANClRvaSBnb2kgYmFuZyBkdW9uZyBFTVMgY28gbmd1b2kgbmhhbiBob2kgYmFvIHBo YXQgdGh1Li4uIG5odW5nIGtob25nIGNvIHN1IHRyYSBsb2kgbmFvIA0KdHUgY2FjIGNvIHF1YW4g ZGEgbmhhbiB0aHUuIA0KDQpOYXkgdG9pIGdvaSBsYSB0aHUgbmF5IGRlbiBvbmcgdGh1IHR1b25n IE5HVVlFTiBUQU4gRFVORyBkZSBrZXUgb2FuIHZhIHRoYSB0aGlldCANCnlldSBjYXUgb25nIHBo YWkgdHJhIGxvaSBjaG8gZ2lhIGRpbmggY2hvIGNodW5nIHRvaSB2ZSB2aWVjIG9uZyBQaGFtIEhv bmcgVGFuIGNvIHBoYWkgDQpsYSBobyBoYW5nIG5oYSBjdWEgb25nIGtob25nPyANCg0KTmV1OiBL aG9uZyAvIHRoaSB0YWkgc2FvIG9uZyBraG9uZyB4dSBseSBvbmcgVGFuIGNhaSB0b2kgZGFtIG5v aSB4YXUgVGh1IFR1b25nIG51b2MgQ0hYSENOVk4NCg0KTmV1OiBDbyAvIHRoaSBoaWVuIG5heSBv bmcgVEhVIFRVT05HIGxhIHRydW9uZyBiYW4gdHJ1bmcgdW9uZyB2ZSBjaG9uZyB0aGFtIG5odW5n LCAgDQp0aGkgZGF5IGxhIHZhbiBkZSByYXQgcXVhbiB0cm9uZyBkb2kgdm9pIG5ndW9pIGNoaSBo dXkgdG9pIGNhbywgYm9pIHZpICJUZSBnaWEsIFRyaSBxdW9jLCBCaW5oIHRoaWVuIGhhIg0KDQpL aW5oIHRodWEgcXVpIGJhbyBkYWkgdHJvbmcgdmEgbmdvYWkgbnVvYyBnaWEgZGluaCBjaHVuZyB0 b2kgbGEgbW90IG5ndW9pIGRhbiBuZ2hlbyANCm5hbiwga2hvbiBraG8gbWEgcGhhaSAwNiBuYW0g cm9uZyByYSBkaSBraGlldSBuYWksIG5vIG5hbiBjaG9uZyBjaGF0IHZhIGJheSBnaW8gY29uIGJp IA0KaG8gZGVtIHJhIHh1IG8gbmh1bmcgcGhpZW4gdG9hIHRoYXQgbGEgIkJpcCIgdmkgdG9hIGto b25nIGNhbiBjaHVuZyBjdSwgYmEgQmUgbmd1b2kgDQpraG9uZyBjbyBnaWF5IHRvIHRybyB0aGFu aCBuZ3VvaSBjaHUgZGF0LiBDb24gZ2lhIGRpbmggY2h1bmcgdG9pIGNvIGdpYXkgdG8gZ29jIHZh IFFTREQgDQp0aGkgcGhhaSBkbyBuaGEgdHJhIGRhdCEgDQoNCkRheSBsYSBsYSB0aHUgdHV5ZXQg bWVuaCBnb2kgY2hvIG9uZyBOZ3V5ZW4gVGFuIER1bmcgdGh1IHR1b25nIENIWEhDTlZODQoNClZh IGR1IGx1YW4gUVVPQyBURSB0aGF5IGhldCBub2kgYnVjIHh1YyBjdWEgZ2lhIGRpbmggY2h1bmcg dG9pLg0KDQpORVUgY2hpbmggcXV5ZW4gY3VhIHRpbmggS2llbiBHaWFuZyBjb24gcmEgc3VjIHRy dXkgYnVjIGNodW5nIHRvaSBkZW4gZHVvbmcgY3VuZyB0aGkgDQpjaHVuZyB0b2kgc2UgdHUgc2F0 IHRhcCB0aGUsIHZhIGRlIHRoYXAgbGVuIG5nb24gbHVhIGNvbmcgbHkgdHJvbmcgbmdvaSBuaGEg bWEgY2h1bmcgdG9pIGRhIA0KZ2FuIGJvIG1heSBkb2kuIFF1YSBsYSB0aHUgbmF5IHRvaSBtb25n IHJhbmcgY2hpbmggcGh1IG51b2MgVmlldCBOYW0gdmEgYmEgY29uIHRyb25nLCANCm5nb2FpIG51 b2MgdW5nIGhvIG5ndW9pIGRhbiBuZ2hlbyBuaHUgY2h1bmcgdG9pLiANCg0KTmd1eWVuIFRoaSBO Z29jIERpZW0NCkRUOiAwNzcuIDgyOTc0Mw0KREQ6IDA5MTkuIDQ1OS45OTcgDQoNCmh0dHA6Ly93 d3cudmlldG5hbWV4b2R1cy5vcmcvdm5lL21vZHVsZXMucGhwP25hbWU9TmV3cyZmaWxlPWFydGlj bGUmc2lkPTg4MSAwNi8xMQ0KDQpFbSBiYW4gcmUgTmd1eWVuIFRhbiBEdW5nIGN1b3AgZGF0IGN1 YSBkYW4gDQogDQpDaHUgdGljaCB0aW5oIEtpZW4gR2lhbmcsIFRoYW5oIHRyYS4uLiBjYXUga2V0 IHZvaSBoZSB0aG9uZyB0b2EgYW4gZGUgaG8gdHJvIGNobyBlbSBiYW4gDQpyZSB2b2kgVGh1IHR1 b25nIE5ndXllbiBUYW4gRHVuZyAiY3VvcCBkYXQsIGRvIG5oYSIgY2hpIE5ndXllbiBUaGkgTmdv YyBEaWVtIA0KDQooQW5oIGNodXA6IGNoaSBOR1VZRU4gVEhJIE5HT0MgRElFTSwgdHJvbmcgY2Fu IG5oYSBsYSB4aWV1IHZlbyBzYXAgYmkgY3VvcCwgYm9uIA0KY3VvcCBuZ2F5IG5heSBsYSBhbmgg ZW0gYmFuIHJlIHZvaSB0aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nKSAgDQoNClNhdSBsYSB0aHUg dHV5ZXQgbWVuaCBjdWEgY2hpIE5ndXllbiBUaGkgTmdvYyBEaWVtLCBjaHVuZyB0b2kgZGEgbGll biBoZSB2b2kgR2lhIGRpbmgsIA0KY2hpIERpZW0gY2hvIGJpZXQgbGE6IHNhdSBraGkgY2hpIGxh bSBkb24ga2V1IG9hbiB2YSBraGlldSBuYWkgcXV5ZXQgZGluaCBzbyA4NC9RRFVClg0KVFRSIGN1 YSB0aGFuaCB0cmEgdGluaCBLaWVuIEdpYW5nIGxlbiB0dW9uZyBOZ3V5ZW4gVmlldCBUaGFuaCwg ZHVvYyB0dW9uZyBUaGFuaCBjaG8gDQoxIHRvIGdpYXkgdmUgZGUgZ2FwIGNodSB0aWNoIHRpbmgg QnVpIE5nb2MgU3VvbmcsIHNhdSBkbyBjdSBUaGFuaCB0cmEgdGluaCBkbyBvbmcgVHJhbiANCk1p bmggVGhlIHh1b25nIHhhYyBtaW5oIGxhaS4uLiBuaHVuZyBvbmcgVGhlIGRlbiBtaWVuZyBkYXQg ZGFuZyB0cmFuaCBjaGFwIGxhIGRlIGJhbyANCmNodWEgY2hvIGJhIEJ1aSBUaGkgQmUgKHBoaWEg b25nIGVtIGJhbiByZSBjdWEgVGh1IHR1b25nKS4gT25nIFRoZSBjb24gZHVhIHJhIGNhYyANCmJh bmcgY2h1bmcgZ2lhIHRhbyBraG9uZyBjbyB0cm9uZyBobyBzbyBjdWEgY28gcXVhbiB0aGFuaCB0 cmEgdmEgY29uIHZ1IGtob25nLCBjaHVwIG11IA0KY2hvIG9uZyBOZ3V5ZW4gSHV1IEhhdSAoY2h1 IHJ1b3QgY3VhIGNoaSBEaWVtKS4gVHJvbmcgbmh1bmcgZG9hbiBiYW5nIGdoaSBhbSBtYSANCmNo aSBEaWVtIGNobyBjaHVuZyB0b2kgbmdoZSBsYWkgdGhpIHJvIHJhbmcgb25nIHRoYW5oIHRyYSBU aGUgZGFuZyB0aHVhIGhhbmggbWVuaCBsZW5oIA0KY3VhIGFpIGRvLi4uIGRlIHRydXkgYnVjIGdp YSBkaW5oIGN1YSBjaGkgRGllbSBwaGFpIGRvIG5oYSwgZGFuZyBkYXQgY2hvIHBoaWEgZW0gYmFu IHJlIGN1YSB0aHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5nLiANCg0KVGhhbmggVHJhIHRpbmggS2ll biBHaWFuZyB4dW9uZyB4YWMgbWluaCBkZW4gbmF5IGNodWEgY28ga2V0IHF1YSB2YSBzdSB0cmEg bG9pIG5hbyBjaG8gDQpjaGkgRGllbSwgdGhpIHZhbyBuZ2F5IDA0LzExLzIwMDYgbGFpIGNvIGdp YXkgdHJpZXUgdGFwIGN1YSB0b2EgYW4gdGluaCBLaWVuIEdpYW5nIHNlIHhldCANCnh1IHZhbyBu Z2F5IDA5LzExLzIwMDYsIGNoaSBEaWVtIGNvIGxpZW4gaGUgdm9pIFRvYSBhbiB0aW5oIHRoaSBk dW9jIGNvIHRodSBreSBwaGllbiB0b2EgDQpjaG8gYmlldCBsYSBjaGkgRGllbSB0aHVhIGxhICJj YWkgY2hhYyIsIGNoaSBEaWVtIGtob25nIGtob2kgbmdhYyBuaGllbiBib2kgcGhpZW4gdG9hIA0K Y2h1YSB4dSBtYSBjbyB0aHUga3kgYmlldCBjaGFjIG1pbmggdGh1YSENCg0KVmllYyB0cmFuaCBj aGFwIGRhdCBuYXkga2hvbmcgY28gZ2kgcGh1YyB0YXAgbGFtIHZpIG5ndW9uIGdvYyBkYXQgY28g Z2lheSB0byBjaHVjIG5nb24gDQpybyByYW5nIG5hbSAxOTQ0LCBxdXllbiBzdSBkdW5nIGRhdCBu YW0gMTk5MyBkZXUgZG8gYmEgUGhhbSBUaGkgTmluaCBkdW5nIHRlbiB0b25nIA0KZGllbiB0aWNo IGxhIDYuNDMwIG0yLCBnb20gdGh1YSB0aHUgbmhhdCBzbyAyODEgZGllbiB0aWNoIDEzNDAgbTIs IHRodWEgdGh1IGhhaSBzbyAyODIgDQpkaWVuIHRpY2ggbGEgNTA5MG0yLiBCYSBQaGFtIFRoaSBO aW5oIGNobyBuZ3VvaSBhbmggcnVvdCB0ZW4gbGEgUGhhbSBEYW5nIERpbmggbyBuaG8gDQp0cmVu IHBoYW4gZGF0IGN1YSB0aHVhIHNvIDI4MSBsYSAxMzQwIG0yLCBkZW4gbmFtIDE5ODggb25nIERp bmggY2hldCwgdm8gb25nIERpbmggbGEgDQpiYSBCdWkgVGhpIEJlIHRpZXAgdHVjIHF1YW4gbHkg c3UgZHVuZywgaGFpIHRodWEgZGF0IGN1YSBoYWkgZ2lhIGRpbmggY28gcmFuaCBnaW9pIHJvIHJh bmcgDQpraG9uZyBjbyBzdSB0cmFuaCBjaGFwIG5hbywgY3VvYyBzb25nIGhhaSBnaWEgZGluaCBy YXQgaG9hIHRodWFuLiANCg0KRGVuIG5hbSAxOTk5IG9uZyBQaGFtIEhvbmcgVGFuIGxhIGJhYyBz aSBjb25nIHRhYyB0YWkgdHJ1bmcgdGFtIHkgdGUgaHV5ZW4gVmluaCANClRodWFuICAoZW0gYmFu IHJlIHZvaSBvbmcgTmd1eWVuIFRhbiBEdW5nKSB0aGF5IGJhIEJlIGdpYSB5ZXUga2hvbmcgY28g Y29uIG5odW5nIGNvIA0KREFUIG8gbWF0IHRpZW4gY28gZ2lhIHRyaSwgb25nIFRhbiB2YW8gbGFt IHRoYW4gdm9pIGJhIEJlIHZhIGN1bmcgdHUgZG8gb25nIFRhbiBraWNoIA0KZG9uZyBiYSBCZSBr aG9pIGtpZW4gdHJhbmggY2hhcCBkb2kgcXV5ZW4gZHVuZyB0ZW4gdGh1YSBzbyAyODEgKDEzNDBt MikuIFN1IHRyYW5oIGNoYXAgDQpuYXkgZHVvYyBiYSBCZSB1eSBxdXllbiBjaG8gb25nIFBoYW0g SG9uZyBUYW4gZHVuZyByYSBraG9pIGtpZW4uIE5nYXkgMjAvNy8xOTk5IGNvIA0KYmllbiBiYW4g aG9hIGdpYWkgdGFpIGFwIFZpbmggUGh1b2MgMSwgb25nIFRhbiB5ZXUgY2F1IHRhY2ggdGh1YSBz byAyODEgKDEzNDAgbTIpIGNobyANCmJhIEJlIGR1bmcgdGVuLiAgTmdheSAwNC8wOC8xOTk5IHRh aSB1eSBiYW4gdGhpIHRyYW4gVmluaCBUaHVhbiB0cm9uZyBiaWVuIGJhbiBjbyBjaHUgDQp0aWNo IHRoaSB0cmFuIGNodW5nIGtpZW4gdmllYyBvbmcgVGFuIGRvaSB0cmEgcXV5ZW4gZHVuZyB0ZW4g Y2hvIGJhIEJlIGN1bmcgdm9pIGRpZW4gdGljaCAxMzQwbTIuIA0KDQpPbmcgVGFuIHlldSBjYXUg Y2h1eWVuIGhvIHNvIGxlbiBodXllbiwgZGVuIGh1eWVuIG9uZyBUYW4gZHVvYyAiZGFtIiB0aGFu aCB0cmEgDQpodXllbiB4YWMgbWluaCBkaWVuIHRpY2ggdGh1YSBzbyAyODEgbGVuIGRlbiBjb24g c28gMjE2NCw1IG0yLCBiYSBOaW5oIGtob25nIGRvbmcgeSwgIA0KeWV1IGNhdSBraGlldSBuYWkg bGVuIHRpbmgsICJkYW0iIHRoYW5oIHRyYSB0aW5oIGN1bmcga2hvbmcgY2FuIHhhYyBtaW5oIGdp IGNhIHZhIHJhIA0KcXV5ZXQgZGluaCBzbyA4NC9RRCCWVFRSIGNvbmcgbmhhbiB2aWVjIGJhIE5p bmggcGhhaSB0cmEgY2hvIHBoaWEgb25nIFRhbiAyMTY0LDVtMi4gDQpWdWEgY28gcXV5ZXQgZGlu aCB4b25nIG9uZyBUYW4gZGkgbGFtIGdpYXkgZG8gY2hvIGJhIEJlLCBkb25nIHRob2kgY2F0IG5n YXkgMSBuZW4gbmhhIA0KcmllbmcgY2hvIHBoYW4gb25nIFRhbiB0cmVuIHRodWEgMjgxLCBvbmcg VGFuIGNvbiB0dXllbiBibyB2b2kgaGFuZyB4b20gc2UgbGF5IGRhdCANCnRoZW0gY2hvIGJhIEJl LCBhaSBkYW0gbmh1bmcgdGF5IGNhbiB0aGllcCB2YW8gY2h1eWVuIHRyYW5oIGNoYXAgbmF5IHRo aSBoYXkgY29pIGNodW5nIA0KY2FpIG1hbmcgZG8sIGtlIGNhIGJhbyBjaGkgKHRyb25nIGRvYW4g YmFuZyBnaGkgYW0gY2hpIERpZW0gY3VuZyBjYXAsIG9uZyBUYW4gbm9pIG9uZyANCnRhIHRoYW5n IGR1b2MgbGEgbmhvIHN1IGhhdSB0aHVhbiBjdWEgb25nIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1 bmcpLiBUcm9uZyA3IG5hbSANCnF1YSBnaWEgZGluaCBjaGkgRGllbSBsYW0gdmFvIGNhbmggbmdo ZW8ga2hvLCB2YWMgZG9uIGRpIGtpZW4gdHUgZGlhIHBodW9uZyBkZW4gdHJ1bmcgDQp1b25nLiBO YXkgYm9uIGN1b3AgbmdheSBtdW9uIGhvcCBwaGFwIGhvYSBtaWVuZyBkYXQgY3VhIGdpYSBkaW5o IGNoaSBEaWVtIG5lbiANCmNodW5nIGRheSByYSB0b2EgeGV0IHh1IC4gDQoNClRvYSBhbiBodXll biBWaW5oIFRodWFuIHh1IHBoaWVuIHNvIHRoYW0gYnVvYyBjaGkgRGllbSBwaGFpIGRvbiBjYXkg bGF1IG5hbSwgZG8gbmhhIA0KdHJhIGRhdCBjaG8gcGhpYSBiYSBCZSAidmkgYmEgQmUgY28gZ2lh eSBkbyIuIENoaSBEaWVtIGhvaSB0YWkgc2FvIHRvYSB4dSBjaGkgY28gY2FpIHBoYW4gDQpuZ29u IGN1YSBzdSB2aWVjIGxhIGNhbiBjdSB2YW8gZ2lheSBEbyBtb2kgY2FwIHNhdSBjdWEgYmEgQmUg PyBjb24gbmh1bmcgY2h1bmcgY3UgY3VhIA0KY2hpIERpZW0gY28gbmh1IHRvIGNodWMgbmdvbiAx OTQ0LCBnaWF5IFFTREQgbmFtIDE5OTMgdmEgaGllbiB0cmFuZyBkYW5nIG8gdGh1YyB0ZSANCnNh byB0b2Ega2hvbmcgY2FuIGN1IHZhbyBuZ3VvbiBnb2M/IG9uZyB0aGFtIHBoYW4gQ2hhdSBWYW4g QW4gbm9pIHJhbmc6IGNoaSBtdW9uIA0KdGhhYyBtYWMgZ2kgdGhpIGxlbiB0cnVuZyB1b25nIG1h IGhvaSwgY29uIHRvaSBjaGkgYmlldCBiYSBCZSBjbyBnaWF5IGRvLi4uIG1hIGNoaSBkaSBkYXUg DQp0aGkgY3VuZyB0aHVhIHRob2kgdmkgb25nIFBoYW0gSG9uZyBUYW4gbGEgZW0gYmFuIHJlIHZv aSB0aHUgdHVvbmcuIA0KDQpTdSB2aWVjIGN1YSBjaGkgRGllbSBjaG8gdGhheSByYW5nIHRpbmgg dHJhbmcgdGhhbSBuaHVuZyBvIFZpZXQgTmFtIHBoYXQgc2luaCB0dSBuaHVuZyANCnF1eWVuIGx1 YyB0cm9uZyBibyBtYXkgbmhhIG51b2MgdHUgZGlhIHBodW9uZyBjaG8gZGVuIGNhcCBsYW5oIGRh byBjYW8gbmhhdCwgaG8gdGFvIA0KbW9pICBkaWV1IGtpZW4gdGh1YW4gbG9pIGNobyBnaWEgZGlu aCBuZ3VvaSB0aGFuIGRlIGN1b3AgZG9hdCB0YWkgc2FuIGN1YSBuZ3VvaSBraGFjIG1vdCANCmNh Y2ggY29uZyBraGFpLiBUaGVvIGR1IGx1YW4gdGhpIG9uZyBQaGFtIEhvbmcgVGFuIGtoYWkgbGEg Y28gc3UgZ2l1cCBzdWMgY3VhIG9uZyANCk5ndXllbiB0YW4gRHVuZyBsYSBjbyBjbyBzbywgY2hp IERpZW0gZGEgbmhpZXUgbGFuIGdvaSBkb24gdGh1IEVNUyBkZW4gdmFuIHBob25nIG9uZyANCk5n dXllbiBUYW4gRHVuZyBjbyBuZ3VvaSBreSBnaWF5IGJhbyBuaGFuIHRodSwgbmh1bmcga2hvbmcg dGhheSBzdSBob2kgYW0gbmFvLiANCg0KVHJvbmcgbWF5IHRoYW5nIGdhbiBkYXkgTEEgVEhVIFRV WUVUIE1FTkggVEFQIFRIRSBjdWEgZ2lhIGRpbmggY2hpIERpZW0gDQpkdW9jIGRhbmcgdGFpIG8g bmhpZXUgdHJhbmcgd2ViIHF1b2MgdGUgbWEgdGF0IGNhIGtpZXUgYmFvIGhhaSBuZ29haSB2YSBi YSBjb24gdHJvbmcgDQpudW9jIGRldSBiaWV0Li4uIG5odW5nIGNvIG1vdCBuZ3VvaSB2byBjYW0g a2hvbmcgbXVvbiBiaWV0IGxhIG9uZyB0aHUgdHVvbmcgTmd1eWVuIA0KVGFuIER1bmcuIEhhbmcg bmdheSBvbmcgdGEgbGFpIGhvIGhhby4uLiAiUXV5ZXQgdGFtIGNob25nIHRoYW0gbmh1bmciLiBD aHV5ZW4gY3VhIA0KZ2lhIGRpbmggY2hpIERpZW0gZHUgcmF0IG5obyBiZSB2b2kgb25nIHRodSB0 dW9uZyBEVU5HLCBuaHVuZyBubyBsYSAgdGh1b2MgZG8gdmllYyANCmNob25nIHRoYW0gbmh1bmcg bWEgb25nIHRhIGhvIGhhbyEgRHUgbHVhbiBkYW5nIGRhdCBjYXUgaG9pIHRhaSBzYW8gY2F1IGNo dXllbiBuYXkgDQphbmggaHVvbmcgdHJ1YyB0aWVwIGRlbiBoaW5oIGFuaCAxIHZpIG5ndXllbiB0 aHUgcXVvYyBnaWEgbWEgb25nIHRhIGxhaSB0aHVjIGhpZW4gMyANCmtob25nOiBLSE9ORyBOR0hF LCBLSE9ORyBUSEFZLCBLSE9ORyBCSUVUPy4uLg0KDQpRdWEgdGhvbmcgdGluIG5heSBtb25nIGNh YyBiYW8gZGFpIHRyb25nLCBuZ29haSBudW9jIHZhIHF1b2MgdGUgaGF5IGxlbiB0aWVuZyBtYW5o IG1lIA0KZGUgY3V1IGdpdXAgZ2lhIGRpbmggY2hpIERpZW0sIHZpIHZhbyBuZ2F5IDA5LzExLzIw MDYgdG9pIGRheSB0b2EgYW4gdGluaCBzZSBkZW0gcmEgeGV0IA0KeHUgcGh1YyB0aGFtLCB0aGVv IHRob25nIHRpbiBjaHVuZyB0b2kgZHVvYyBiaWV0IHBoaWVuIHRvYSBuYXkgY3VuZyBsYSBrZSB0 YXkgc2FpIGNobyBvbmcgDQpQaGFtIEhvbmcgVGFuIChlbSBiYW4gcmUgdm9pIG9uZyB0aHUgdHVv bmcpLiBUaWVuZyBub2kgY3VhIGJhbyBkYWkgbHVjIG5heSByYXQgcXVpIGdpYSANCnZvaSBuaGll dSBtYW5nIG5ndW9pIHRyb25nICAiTEEgVEhVIFRVWUVUIE1FTkggVEFQIFRIRSBHSUEgRElOSCIg Y3VhIGNoaSBOZ3V5ZW4gVGhpIE5nb2MgRGllbS4gDQoNCihBbmggY2h1cDogR2lheSBiYW8gcGhh dCBidXUgZ3VpIGRhIGR1b2MgcGhhdCBjaG8gb25nIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcg DQpkaWEgY2hpIHNvIDAxIGR1b25nIEhvYW5nIEhvYSBUaGFtIJYgQmEgRGluaCCWIEhhIE5vaSAx MGggbmdheSAyLzEwLzIwMDY7IGRvIGNoaSANCkRpZW0gZ29pIGRpIGtldSBvYW4gbmh1bmcga2hv bmcgZHVvYyBzdSB0cmEgbG9pIG5hby4pICAgDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0 LzIwMTAtMDEtMzEtbXVhLXNhbS1jb25nLXNhbi1jby1ob2ktdHUtdHVpLTIgVHJhbiBUcm9uZyBU aHVjIDAxLzAyLzIwMTAgMDY6MzAgR01UKzcNCg0KVGh1IHR1b25nOiBNdWEgc2FtIGNvbmcgc2Fu LCBjbyBob2kgdHUgdHVpDQoNClZ1IHRoYW0gbmh1bmcgdHJvbmcgbXVhIHNhbSBjb25nIHNhbiBu aGluIHR1ICJEZSBhbiAxMTIiIGNoaSBsYSBwaGFuIG5obyBjdWEgdGFuZyBiYW5nIGxvbiANCnZl IHRpbmggdHJhbmcgbGFuZyBwaGkgdmEgdGhhbSBuaHVuZyB0cm9uZyBibyBtYXkgY29uZyBxdXll biwga2hpIG1hIHZpZWMgbXVhIHNhbSBjb25nIHNhbiB0dSBsYXUgbmF5IGR1IGRhIGR1b2MgaHVv bmcgZGFuIGJvaSBuaGlldSBxdWkgZGluaCBkYXUgdGhhdSB0dW9uZyANCmNodW5nIGNoYXQgY2hl LCBuaHVuZyB2YW4gY29uIHF1YSBuaGlldSBrZSBobyBjaG8gZG9uZyB0aWVuIG5nYW4gc2FjaCBj aGF5IHZhbyB0dWkgcmllbmcuIA0KDQpodHRwOi8vd3d3LnRhcGNoaXRoZWdpb2ltb2kuY29tL3Rt LnBocD9yZWNvcmRJRD0xMzEzIA0KDQpOZ3V5ZW4gVGFuIER1bmcgY2hvIHhheSBkdW5nIG5nb2kg bmhhIHRobyBobywgY3VuZyB2b2kgaGFuZyBsb2F0IGNhYyB0aGlldCBiaSBub2kgdGhhdCB4YSB4 aSBuaHUgbW90IGN1bmcgZGllbg0KDQpIaW5oIGFuaCBuZ29pIG5oYSB0aG8gaG8gY3VhIE5ndXll biBUYW4gRHVuZyB0YWkgS2llbiBHaWFuZywgdHUgbmhpZXUgdGhhbmcgdHJ1b2MgZGF5IGR1b2Mg Z2lvaSBibG9nZ2VyIA0KdHJvbmcgbnVvYyBiYW4gdGFuIHZlIHRpbmggeGEgeGkgY3VuZyBuaHUg a2hhIG5hbmcgdGFpIGNoaW5oIGJhdCB0aHVvbmcgY3VhIE5ndXllbiBUYW4gRHVuZywgbmF5IGRh bmcgDQp0cm8gdGhhbmggZGUgdGFpIGNoaSB0cmljaCBjdWEgbm9pIGJvIERhbmcgQ29uZyBzYW4g VmlldCBOYW0uDQoNClRoZW8gbmh1bmcgbmhhIGRhdSB0dSBkaWEgb2MsIHZpIHRyaSB2YSBnaWEg dHJpIHRvYW4gYm8gY3VhIG5nb2kgbmhhIHRobyBobyBuYXksIHVvYyBjaHVuZyB0cmVuIDcgdHJp ZXUgTXkga2ltLCANCnRybyB0aGFuaCBtb3Qgb2MgZGFvIGJpIG1hdCB2YSB0aGFjaCB0aHVjIGNv bmcgbHVhbiBuZ2F5IGdpdWEgS2llbiBHaWFuZy4gDQoNCkNhYyBuaGFuIHZhdCB0cm9uZyBwaGUg Y2hvbmcgdGhhbSBuaHVuZyBkYSBtdW9uIGx1b24gZGUgdGFpIG5heSB2YSBjaGF0IHZhbiB0cnVj IGRpZW4sIA0KZG9uZyB0aG9pIGRvaSBsYW0gcm8gdHUgZGF1IG1hIE5ndXllbiBUYW4gRHVuZyBj byBkdW9jIHNvIHRpZW4ga2hvbmcgbG8gbmh1IHZheSBkZSANCnhheSBuaGEgdGhvIGhvLiBUcmVu IHRodWMgdGUsIHRodSBuaGFwIGN1YSBjYWMgbGFuaCBkYW8gdHJvbmcgRGFuZyBDb25nIHNhbiBW aWV0IE5hbSANCnRoZW8gY29uZyBibyB0aGkgY2hpIGtob2FuZyAyMDAgdHJpZXUgZG9uZyBWaWV0 IE5hbSBtb3QgbmFtLg0KDQpodHRwOi8vd3d3LmRjdm9ubGluZS5uZXQvcGhwL21vZHVsZXMucGhw P25hbWU9TmV3cyZmaWxlPWFydGljbGUmc2lkPTQ5MTMgDQpCbyBjaGluaCB0cmkgY2hpIHRyaWNo IE5ndXllbiBUYW4gRHVuZzoNCg0KQm8gY2hpbmggdHJpIGNoaSB0cmljaCBOZ3V5ZW4gVGFuIER1 bmcgdHJvbmcgdmllYyBjaG9uZyBsYW0gcGhhdA0KDQoqIEJvIGNoaW5oIHRyaSBsaWV0IGtlIG5o dW5nIHNhaSBsYW0gY3VhIE5ndXllbiBUYW4gRHVuZw0KDQoqIE11YyBsYW0gcGhhdCAyMDA4IGNv IHRoZSBjYW8gZ2FwIGRvaSB0b2kgZ2FwIGJhIG11YyB0YW5nIHRydW9uZyBraW5oIHRlDQoNCiog VGluaCB0cmFuZyBzdSBxdWFuIGN1YSBjYWMgdGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYw0KDQoq IFF1YXkgdHJvIGxhaSBjaGluaCBzYWNoIGNoaSBodXkga2luaCB0ZSB2YSBjaGUgZG8gYmFvIGNh cA0KDQoiTGFtIHBoYXQgdGllcCB0dWMgdGFuZyBjYW8sIHZ1b3QgeGEgbXVjIGR1IGJhby4gQ2hp IHNvIGdpYSB0aWV1IGR1bmcgdGhhbmcgMy0yMDA4IA0Kc28gdm9pIHRoYW5nIDEyLTIwMDcgdGFu ZyA5LDE5JSwgc28gdm9pIHRoYW5nIDMtMjAwNyB0YW5nIDE5LDM5JS4gRG8gbGEgbXVjIGxhbSAN CnBoYXQgY2FvIG5oYXQgdHJvbmcgbmhpZXUgbmFtIGdhbiBkYXkgdmEgY2FvIGhvbiBjYWMgbnVv YyB0cm9uZyBraHUgdnVjLiBMYW0gcGhhdCANCmNhbyBkYSB0YWMgZG9uZyBsb24gZGVuIHNhbiB4 dWF0IHZhIGRvaSBzb25nIG5oYW4gZGFuLCBuaGF0IGxhIG8gY2FjIHZ1bmcgY2hpdSBhbmggaHVv bmcgDQpjdWEgdGhpZW4gdGFpLCBkaWNoIGJlbmgsIG5ndW9pIGxhbSBjb25nIGFuIGx1b25nLCBu Z3VvaSBsYW8gZG9uZyBvIGNhYyBraHUgY29uZyBuZ2hpZXAgDQp2YSBibyBwaGFuIGRhbiBjdSBj byB0aHUgbmhhcCB0aGFwLiIgKDEpDQoNClRyZW4gZGF5IGxhIG5oYW4gZGluaCB0cm9uZyAiQm8g Q2hpbmggdHJpIGtldCBsdWFuIHZlIHRpbmggaGluaCBsYW0gcGhhdCIgKGR1b2kgZGF5IA0KZ29p IGxhICJLZXQgbHVhbiBjdWEgQkNUIikgdnVhIGR1b2MgY29uZyBibyBuZ2F5IDQuNC4gTmh1IHZh eSBCbyBjaGluaCB0cmkgKEJDVCksIA0KY28gcXVhbiBxdXllbiBsdWMgY2FvIG5oYXQgY3VhIGNo ZSBkbyB0b2FuIHRyaSwgZGEgdGh1YSBuaGFuOiANCg0KMS4gTXVjIGRvIGxhbSBwaGF0IGhpZW4g bmF5IGxhIGNhbyBuaGF0IHRyb25nIGNhYyBuYW0gdnVhIHF1YSB2YSBkYXkgbGEgbW90IGN1b2Mg DQpraHVuZyBob2FuZyB0YWkgY2hhbmgsIHRpZW4gdGUgbG9uIG5oYXQgdHUga2hpIGNvIGRvaSBt b2kgdHJ1b2MgZGF5IHRyZW4gMjAgbmFtLg0KDQoyLiBMYW0gcGhhdCBjYW8gdm9pIHRvYyBkbyBw aGkgbWEgbmh1IHRoZSBkYW5nIHRhbyByYSBuaGlldSBraG8ga2hhbiBjaG8gY2FjIGdpb2kgDQpu Z2hlbyBraG8sIGxhbyBkb25nIHZhIG5odW5nIG5ndW9pIHNvbmcgYmFuZyBsdW9uZyBib25nLiBT dSBiYXQgbWFuIGN1YSBoYW5nIA0KdHJpZXUgbmd1b2kgY3VuZyBraG8gY28gdGhlIGR1YSB0b2kg bmh1bmcgYmF0IG9uIGFuIG5pbmggeGEgaG9pIHZhIGRlIGRvYSBzdSB0b24gdGFpIA0KY3VhIGNo ZSBkbyB0b2FuIHRyaS4gDQoNCjMuIE11YyBsYW0gcGhhdCBvIFZOICJjYW8gaG9uIGNhYyBudW9j IHRyb25nIGtodSB2dWMiIGNvIG5naGlhIGxhLCBubyBjbyBjYWMgbmd1eWVuIG5oYW4gZGFjIHRo dSBraGFjIHZvaSBuaGlldSBudW9jIHRyb25nIGtodSB2dWMuDQoNClRydW9jIGRvIHZhaSBuZ2F5 ICgzMC4zKSB0byBkaWVuIHR1IENoaW5oIHBodSBkdWEgaGFuZyB0aXQgbG9uOiAiVGh1IHR1b25n IGd1aSB0aG9uZyANCmRpZXAgdmUgZ2lhaSBxdXlldCBraG8ga2hhbiwgYmFvIGRhbSBraW5oIHRl IHhhIGhvaSBwaGF0IHRyaWVuIGJlbiB2dW5nIigyKSwgdHJvbmcgZG8gY29uIA0KZ2hpIHJvIGNo dWMgdnUgdHJvbmcgZGFuZyB0cnVvYyB0cnVvYyBjaGluaCBwaHUgIlV5IHZpZW4gQm8gQ2hpbmgg dHJpLCBUaHUgdHVvbmcgQ2hpbmggDQpwaHUiLiBOZ3V5ZW4gVGFuIER1bmcgZGEgZHVuZyB0dSAi dGhvbmcgZGllcCIgZGUgY28gdGluaCBsb25nIHRyb25nIGhvYSB2YWkgdHJvIGN1YSANCm1pbmgs IG5odW5nIHRodWMgcmEgb25nIHRhIGNoaSB0aGkgaGFuaCBxdXlldCBkaW5oIGN1YSBCQ1QuIENo byBuZW4ga2UgaG9hY2ggNyBkaWVtIA0KdHJvbmcgIlRob25nIGRpZXAiIGN1YSBOZ3V5ZW4gVGFu IER1bmcgY2hpIGxhIG1vdCBwaG8gc2FuIGN1YSBxdXlldCBkaW5oIEJDVCBtYSANCnRob2kuIEJD VCBkYSBjbyBjdW9jIGhvcCB2YW8gZ2l1YSB0aGFuZyBiYSBkZSBiYW4gY2h1eWVuIGRlIHZlIGxh bSBwaGFwIHNhdSBjaHV5ZW4gZGkgDQpUYXkgQXUgY3VhIE5ndXllbiBUYW4gRHVuZyB2YSBzYXUg ZG8gZGUgb25nIER1bmcgaG9wIGNoaW5oIHBodSB2YW8gY3VvaSB0aGFuZyAzIA0KdGhhbyBsdWFu IHZpZWMga2hhaSB0cmllbiBOZ2hpIHF1eWV0IGN1YSBCQ1QuIA0KDQpUdXkgbmhpZW4gZHVuZyB2 ZSBtYXQgdHV5ZW4gdHJ1eWVuIGRlIHRyYW5oIGR1IGx1YW4gY3Ugbm9pIGNoaW5oIHBodSBjaGkg bGEgY2FpIGxvYSBjdWEgDQpCQ1QsIG5lbiBuaGFtIGdpdSB0aGUgZGllbiBjaG8gY2hpbmggcGh1 LCBCQ1QgZGEgZGUgY2hvIE5ndXllbiBUYW4gRHVuZyByYSAiVGhvbmcgDQpkaWVwIiB2YWkgbmdh eSB0cnVvYy4gTmh1bmcgbm9pIGNodW5nIGNhYyBiaWVuIHBoYXAgbmV1IHJhIHRyb25nIGJhaSBj dWEgb25nIER1bmcgY2hpIGxhcCBsYWkgY2FjIHF1eWV0IGRpbmggY3VhIEJDVC4gDQoNCk1hYyBk YXUgdmF5LCBjbyBkaWVtIGtoYWMgbmhhdSBkYW5nIGx1dSB5IHRyb25nIGhhaSB2YW4ga2llbiBu YXkgbGEsIHRyb25nICJUaG9uZyANCmRpZXAiIE5ndXllbiBUYW4gRHVuZyBkYSBtbyBkYXUgYmFu ZyBjYWNoIGRvIHRpbmggaGluaCBsYW0gcGhhdCBjYW8gbyBWTiBsYSBkbyBraW5oIA0KdGUgTWkg c3V5IGRvaSwgZ2lhIGRhdSB0aG8gdHJlbiB0aGUgZ2lvaSB0YW5nIGNhbyB2YSBjYWMgdGhpZW4g dGFpLCBkaWNoIG5hbiBtYSBWTiBwaGFpIHRyYWkgDQpxdWEgdHJvbmcgdGhvaSBnaWFuIGdhbiBk YXkuIERheSB2YW4gbGEgYmFpIGJhbiBzbyB0cnVvbmcgY3VhIE5ndXllbiBUYW4gRHVuZywgbW90 IA0Kbmd1b2kgdGhpY2ggIm5vIiBuaHVuZyByYXQgc28gdHJhY2ggbmhpZW0gY2hvIG5lbiB0aGlj aCBjYSBjYXU6ICJNYXQgbXVhIGxhIHRhaSB0aGllbiB0YWkuIA0KRHVvYyBtdWEgbGEgdGFpIHRo aWVuIHRhaSBEdW5nIHRhISIuIENvbiBwaGFuIHZlIGNhYyBzYWkgbGFtIGNodSBxdWFuIGN1YSBj aGluaCBtaW5oIGRhIA0KZHVhIGRlbiB0aW5oIHRyYW5nIGxhbSBwaGF0IHBoaSBtYSBkYXkgaGFu ZyBiYW8gbmhpZXUgdHJpZXUgbmhhbiBkYW4gcGhhaSByb2kgdmFvIGNhbmggDQpjdW5nIGtobywg ZG9pIG5naGVvIHRoaSBvbmcgRHVuZyBoYXUgbmh1IGtob25nIG5oYWMgdG9pIQ0KDQpUcm9uZyBr aGkgZG8sICJCYW4ga2V0IGx1YW4gY3VhIEJDVCIgY2hpIG5vaSByYXQgbmdhbiB2ZSBjYWMgbmd1 eWVuIG5oYW4ga2hhY2ggcXVhbiB0dSANCmJlbiBuZ29haSwgbmh1bmcgZGEgZGFuaCBwaGFuIGto YSBkYWkgbmhhbiBtYW5oIHZlIG5odW5nIG5ndXllbiBuaGFuIGNodSBxdWFuLigzKSANClZpIG5n YXkgcGhhbiBtbyBkYXUgYmFuICJLZXQgbHVhbiBjdWEgQkNUIiBkYSB4YWMgZGluaCByYXQgcm8g dmUgbmFuIGxhbSBwaGF0IGhpZW4gDQpuYXkgbyBWTjogIkRvIGxhIG11YyBsYW0gcGhhdCBjYW8g bmhhdCB0cm9uZyBuaGlldSBuYW0gZ2FuIGRheSB2YSBjYW8gaG9uIGNhYyBudW9jIA0KdHJvbmcg a2h1IHZ1Yy4iICg0KSBWb2kgY2FjaCBkaWVuIHRhIG5heSBCQ1Qgcm8gcmFuZyBkYSBtdW9uIGFt IGNoaSBjaGluaCBwaHUgY3VhIA0KTmd1eWVuIFRpZW4gRHVuZyBkYSBnYXkgcmEgbmFuIGxhbSBw aGF0IHBoaSBtYSBoaWVuIG5heSwgbWFjIGR1IGtob25nIG5oYWMgZGVuIHRlbiANClRodSB0dW9u ZyAoVFQpLiBOZXUgcGhhbiB0aWNoIGtpIG51YSB0aGkgc2UgdGhheSBCQ1QgY29uIHBoZSBiaW5o IG9uZyBEdW5nIG8gbmhpZXUgDQpkaWVtIHF1YW4gdHJvbmcga2hhYy4gVHJvbmcgZG8gZGFjIGJp ZXQgcm8gcmFuZyBuaGF0IGxhIG8gcGhhbiAiTmh1bmcgbmd1eWVuIG5oYW4gY3UgDQp0aGUgYW5o IGh1b25nIHRydWMgdGllcCIgY3VhICJLZXQgbHVhbiBjdWEgQkNUIiBsaWVuIHF1YW4gdG9pIHRp bmggaGluaCBsYW0gcGhhdCBwaGkgbWEgDQpoaWVuIG5heSwgdHVjIGxhIGdpYWkgZG9hbiB0dSBr aGkgTmd1eWVuIFRhbiBEdW5nIGxlbiBsYW0gVFQuIEJhbiBuaGFuIGRpbmggY3VhIEJDVCANCmRh IGNoaSB0cmljaCBjYWMgY2hpbmggc2FjaCBjdWEgY2hpbmggcGh1IE5ndXllbiBUaWVuIER1bmc6 ICJDaHVuZyB0YSBkYSB0aHVjIGhpZW4gDQpjaGluaCBzYWNoIGtpY2ggY2F1IGJhbmcgdmllYyBu b2kgbG9uZyB0aW4gZHVuZywgdGFuZyBjaGkgdGlldSBuZ2FuIHNhY2ggY2hvIGRhdSB0dS4uLiIg dmEgDQoiQ2hpbmggc2FjaCB0aWVuIHRlIG5vaSBsb25nIGxpZW4gdHVjIHRyb25nIG5oaWV1IG5h bSwgbmhhdCBsYSB0cm9uZyBuYW0gMjAwNywgbGFtIHRvbmcgDQpwaHVvbmcgdGllbiB0aGFuaCB0 b2FuIHZhIHRvbmcgZHUgbm8gdGluIGR1bmcgdHJvbmcgbmVuIGtpbmggdGUgdGFuZyBtYW5oLiIo NSkuIFR1eSANCmtob25nIG1vdCBsYW4gbmV1IGRpY2ggZGFuaCBOZ3V5ZW4gVGllbiBEdW5nIHJh IHBoZSBiaW5oLCBuaHVuZyBjYWMgZGllbSBtYSBCQ1QgDQpuZXUgcmEgbyB0cmVuIHZhIHBoZSBi aW5oIGRhIG5vaSB0aGFuZyB0b2kgY2FjIGJpZW4gcGhhcCBOZ3V5ZW4gVGFuIER1bmcgZGEgcmEg bGVuaCBjaG8gDQpOZ2FuIGhhbmcgTmhhIG51b2MgKE5ITk4pIGNoaSBub2kgdHJvbmcgNiB0aGFu ZyBkYXUgMjAwNyBkYSBibyByYSB0cmVuIDE0MC4wMDAgdGkgDQpkb25nIGRlIG11YSB2YW8gOSB0 aSBVU0QgbGFtIG5nb2FpIHRlIGR1IHRydS4gQ2hpbmggc28gdGllbiBtYXQgZ2lhIHRhbmcgcXVh IGxvbiB2YSBxdWEgDQpuaGFuaCB0cm9uZyB0aGkgdHJ1b25nIHRyb25nIG1vdCB0aG9pIGdpYW4g cmF0IG5nYW4gZGEgbGEgbmd1eWVuIG5oYW4gdHJ1YyB0aWVwIGRheSBsYW0gDQpwaGF0IGxlbiB0 b2MgZG8gcGhpIG1hIGNhbyBob24gbmhpZXUgY2FjIG51b2MgdHJvbmcga2h1IHZ1YyENCg0KS2hv bmcgbmh1bmcgdGhlLCBCQ1QgY29uIGNoaSB0cmljaCBOZ3V5ZW4gVGFuIER1bmcgZGEgY2h1IHF1 YW4gdmEgbGFjIHF1YW4gdGV1LCANCmN1bmcgbmh1IGtob25nIGR1IGtoYSBuYW5nIG5oYW4gZGlu aCB0aW5oIGhpbmgsIG1hYyBkYXUgdHUgY3VvaSBuYW0gMjAwNyBjYWMgdGluIGhpZXUgDQpsYW0g cGhhdCBjYW8gZGEgcm8sIG5odW5nIGNoaW5oIHBodSB2YW4ga2hvbmcgY28gbmh1bmcgYmllbiBw aGFwIGtpcCB0aG9pIHZhIHRoaWNoIHVuZzogDQoiVGhpIHRydW9uZyB0aWVuIHRlIGNvIG5oaWV1 IGRpZW4gYmllbiBiYXQgdGh1b25nIG5odW5nIHZpZWMgcGhhdCBoaWVuIHZhIGNhbmggYmFvIGNv biANCmNodWEga2lwIHRob2kuIEhlIHRob25nIHRob25nIHRpbiwgc28gbGlldSBwaHVjIHZ1IHZp ZWMgaG9hY2ggZGluaCBjaGluaCBzYWNoIGNvbiB5ZXUgdmEgDQpjaHVhIGR1IGRvIGNodWFuIHhh Yy4iKDYpIFRoZSByb2ksIEJDVCBjb24gY2hpIHRyaWNoIE5ndXllbiBUYW4gRHVuZyBkYSBob3Qg aG9hbmcgdmEgDQpsdW5nIHR1bmcga2hpIGNobyBOSE5OIHZhbyBkYXUgbmFtIDIwMDggZHVhIHJh IG5odW5nIGJpZW4gcGhhcCB0aWVuIHRlIHZhIGxhaSBzdWF0IGN1YyBkb2FuOg0KDQoiS2hpIGNv IHRpbmggaGluaCB4YXkgcmEsIHZpZWMgbmdhbiBoYW5nIG5oYSBudW9jIHRodWMgaGllbiBkb25n IHRob2kgY2FjIGdpYWkgcGhhcCANCm1hbmggdmFvIGN1bmcgbW90IHRob2kgZGllbS4uLiBuaHVu ZyBjdW5nIGdheSBraG8ga2hhbiBjaG8gbmdhbiBoYW5nIHRodW9uZyBtYWksIA0KdGFvIHJhIHZp ZWMgY2hheSBkdWEgbmFuZyBsYWkgc3VhdCBodXkgZG9uZyB2b24sIGdheSBraG8ga2hhbiBjaG8g c2FuIHh1YXQga2luaCBkb2FuaCANCnZhIHh1YXQga2hhdSwgYW5oIGh1b25nIGRlbiB0YW0gbHkg eGEgaG9pLiIoNykNCg0KTm9pIHRvbSBsYWksIHR1eSBraG9uZyBuZXUgZGljaCBkYW5oIE5ndXll biBUYW4gRHVuZyByYSBjaGkgdHJpY2gsIG5odW5nIGFpIGFtIGhpZXUgDQp0aW5oIGhpbmggVk4g dmEgY2FjaCBsYW0gdmllYyBjdWEgQkNUIHRoaSBzZSB0aGF5IHJhdCBybywgbmhhbiB2YXQgY2hp bmggbmFvIGRhIGJpIHBoZSANCmJpbmggZ2F5IGdhdCB0cm9uZyBjdW9jIGhvcCB2dWEgcXVhIGN1 YSBCQ1QgYmFuIHZlIG5ndXllbiBuaGFuIHZhIGNhYyBiaWVuIHBoYXAgDQpjaG9uZyBsYW0gcGhh dCBwaGkgbWEuIE5nYXkgdHJvbmcgcGhhbiBkYXUgYmFuIEtldCBsdWFuIGN1YSBCQ1QsIGNvIHF1 YW4gcXV5ZW4gbHVjIA0KY2FvIG5oYXQgY3VhIGNoZSBkbyB0b2FuIHRyaSwgZGEgY2hpIGRpY2gg ZGFuaCBkaWEgY2hpIGJpIGNoaSB0cmljaCB2YSByYSBsZW5oOiAiQm8gQ2hpbmggdHJpIA0KZGEg Y2hpIGRhbyBCYW4gY2FuIHN1IGRhbmcgQ2hpbmggcGh1Li4uIGNvIG5oaWV1IGdpYWkgcGhhcCB0 aWNoIGN1YyBkZSBraWVtIHNvYXQgdGFuZyANCmdpYSwga2llbSBjaGUgbGFtIHBoYXQsIG9uIGRp bmgga2luaCB0ZSB2aSBtbywgdGhhbyBnbyBraG8ga2hhbiBjaG8gc2FuIHh1YXQgcGhhdCB0cmll biwgDQpobyB0cm8gZG9pIHNvbmcgbmhhbiBkYW4uIiAoOCkgQWkgY3VuZyBiaWV0LCBoaWVuIG5h eSBOZ3V5ZW4gVGFuIER1bmcgbGEgQmkgdGh1IEJhbiBjYW4gDQpzdSBkYW5nIENoaW5oIHBodS4N Cg0KQ2FjIGJpZW4gcGhhcCBtb2kgY2hvbmcgbGFtIHBoYXQgDQoNClRyYWkgdm9pIENoaSB0aGkg MzE5IGN1YSBUVCBjaG9uZyBsYW0gcGhhdCBiYW4gYm8gbmdheSAzLjMgYmFvIGdvbSAxOSBkaWVt ICg5KSwgdHJvbmcgIA0KIlRob25nIGRpZXAiIGxhbiBuYXkgTmd1eWVuIFRhbiBEdW5nIGRhIG5l dSByYSA3IGdpYWkgcGhhcCBuaGFtIGdpYW0gbGFtIHBoYXQgcGhpIA0KbWEgYmFvIGdvbTogVGhh dCBjaGF0IHZlIHRpZW4gdGUgeHV5ZW4gcXVhIGNhYyBjaGluaCBzYWNoIHRpbiBkdW5nIHZvaSBj YWMgbGFpIHN1YXQgdGhpY2ggDQpob3AsIGh1eSBibyBob2FjIHRhbSBkaW5oIGNoaSBjYWMgY29u ZyB0cmluaCBkYXUgdHUga2hvbmcgaGlldSBxdWEsIGdpYW0gMTAlIGNoaSBwaGkgDQpjdWEgY2Fj IGNvIHF1YW4sIGdpYSB0YW5nIHNhbiB4dWF0IGNvbmcgbmdoaWVwIHZhIG5vbmcgbmdoaWVwLCB0 YW5nIHh1YXQga2hhdSB2YSBnaWFtIA0KbmhhcCBzaWV1LCB0YW5nIGN1b25nIGtpZW0gc29hdCBn aWEgY2EgdHJlbiB0aGkgdHJ1b25nLCBnaWFtIGNhYyBwaGkgdmEgdGFuZyBjdW9uZyBhbiBzaW5o IA0KeGEgaG9pLCBraG9uZyB0YW5nIGdpYSBtb3Qgc28gbWF0IGhhbmcgdGhpZXQgeWV1IG5odSBk aWVuLCB4YW5nLCB4aSBtYW5nLCBwaGFuIGJvbiwgDQpudW9jIGR1bmcsIHRodW9jLCB2ZSB4ZS4o MTApIFZhaSBob20gc2F1IGR1b2MgYmFvIGNoaSBkdWEgdGluIGxhIGNvIGNhIGJpZW4gcGhhcCB0 aHUgDQp0YW0sIHR1eSBraG9uZyBuZXUgZGljaCBkYW5oIHRyb25nICJUaG9uZyBkaWVwIiBjdWEg Tmd1eWVuIFRhbiBEdW5nLCBkbyBsYSBkb25nIA0KdmllbiAgdGluaCB0aGFuIHRvYW4gZGFuZywg dG9hbiBkYW4gY3VuZyBjaG9uZyBsYW0gcGhhdC4gTGFtIG5odSBsYSBkYW5nIGNvIHN1IGRvbmcg DQp0aHVhbiBnaXVhIGRhbiB2b2kgZGFuZyBkZSBjbyBjaGUgZ2lhdSBsYSBjaGluaCBOZ3V5ZW4g VGFuIER1bmcgZGFuZyBiaSBCQ1QgY2hpIA0KdHJpY2ggbmFuZyBuZSwgbm9pIGJvIHRyb25nIGNo aW5oIHBodSBkYW5nIGJhdCBkb25nIHZhIGNob25nIGRvaSBsYW4gbmhhdSwgY2hvIG5lbiANCnV5 IHRpbiBjdWEgTmd1eWVuIFRhbiBEdW5nIGNhbmcgYmkgc3V5IGdpYW0gbWFuaC4gDQoNClRyb25n IGNhYyBidW9pIGhvcCB0aWVwIHRoZW8gdm9pIGRhaSBkaWVuIGNhYyB0YXAgdG9hbiBraW5oIGtl IHZhIGNhYyB0b25nIGNvbmcgdGkgbmhhIA0KbnVvYyBjdW5nIG5odSB2b2kgY2FjIENodSB0aWNo IFV5IGJhbiBOaGFuIGRhbiAoVUJORCkgY2FjIHRpbmggdmEgdGhhbmggcGhvIHBoaWEgDQpCYWMg dmEgcGhpYSBOYW0gdmEgQ2h1IHRpY2ggZG9hbiBNVFRRIHZhbyBkYXUgdGhhbmcgNCB0aGkgTmd1 eWVuIFRhbiBEdW5nIGRhIGNobyANCmJpZXQsIGNob25nIGxhbSBwaGF0IGxhIHV1IHRpZW4gaGFu ZyBkYXUsIGNobyBuZW4gcGhhaSBoYSBtdWMgdGFuZyB0cnVvbmcga2luaCB0ZSB4dW9uZy4gDQpI YSB4dW9uZyBtdWMgbmFvIHRoaSBjYSB0cm9uZyAiS2V0IGx1YXQgY3VhIEJDVCIgbGFuICJUaG9u ZyBkaWVwIiBjdWEgVFQgZGV1IGtob25nIA0Kbm9pIHJvLCBjaGkgbm9pIGxhIGNoaW5oIHBodSBz ZSB5ZXUgY2F1IFF1b2MgaG9pIGh1eSBibyBOZ2hpIHF1eWV0IHZhbyB0aGFuZyAxMS4wNyBkdWEg DQptdWMgdGFuZyB0cnVvbmcgdHJvbmcgMjAwOCBsYSA4LDUtOSUoMTEpIERheSBjaGkgbGEgY2Fj aCBnaXUgdGhlIGRpZW4gY2hvIFFIIGRvaSB2b2kgDQpiZW4gbmdvYWksIHRodWMgcmEgQkNUIGRh IGNvIHF1eWV0IGRpbmggZ2lhbSB0YW5nIHRydW9uZyBraW5oIHRlIHRyb25nIG5hbSAyMDA4IHJv aS4gDQpUdXkgbmhpZW4gdHJvbmcgY3VvYyBob3Agdm9pIGNhYyBkYWkgZGllbiBjYWMgdGluaCB2 YSB0aGFuaCBwaG8gcGhpYSBCYWMgdmFvIG5nYXkgMi40IA0KTmd1eWVuIFRhbiBEdW5nIGxhbiBk YXUgdGllbiBkYSB4YWMgbmhhbiBsYSwgc2UgZ2lhbSBtdWMgdGFuZyB0cnVvbmcgeHVvbmcgbXVj IA0KNiw1JS03JSwgdGhheSB2aSA4LDUtOSUgdmEgaGEgbXVjICJsYW0gcGhhdCBraG9uZyBjYW8g aG9uIGhvYWMgcGhhaSB4YXAgeGkgMjAwNyIgKHR1YyAxMiw3JSkoMTIpDQoNCkNhYyBxdWFuIHNh dCB2aWVuIHRoYXkgbGEsIHRoZW8gbWVuaCBsZW5oIGN1YSBCQ1QgY2hpIG5vaSB0cm9uZyB2YWkg dHVhbiBOZ3V5ZW4gVGFuIA0KRHVuZyBkYSBwaGFpIHRoYXkgZG9pIGhvYW4gdG9hbiBtdWMgdGll dSB2ZSBtdWMgdGFuZyB0cnVvbmcga2luaCB0ZS4gQm9pIHZpIHRyb25nIA0KY2h1eWVuIFRheSBk dSB2YW8gZGF1IHRoYW5nIDMgY2hpbmggTmd1eWVuIFRhbiBEdW5nIGRhIHR1bmcgdHJhIGxvaSB0 cmVuIHRvIEZpbmFuY2lhbCANClRpbWVzIGxhLCBvbmcgcXV5ZXQgZ2l1IG11YyB0YW5nIHRydW9u ZyBraW5oIHRlIDIwMDggbyBtdWMgOCw1LTklIHZhIGtob25nIGRlIGxhbSANCnBoYXQgbmFtIDIw MDggY2FvIGhvbiBuYW0gMjAwNygxMykuIE5odW5nIGNoaSBtb3QgdGhhbmcgc2F1IGRhIHhhYyBu aGFuIG11YyB0YW5nIA0KdHJ1b25nIHBoYWkgcnV0IHh1b25nIGNvbiA2LDUlLTclIHZhIG11YyBs YW0gcGhhcCAoZHUgYmFvKSBzZSBjYW8gZ2FuIGdhcCBkb2kgbXVjIA0KdGFuZyB0cnVvbmchIEto b25nIG5odW5nIHRoZSBCQ1QgY29uIHJhIGxlbmggY2hvIE5ndXllbiBUYW4gRHVuZyBwaGFpIG5n dW5nIGJpZW4gDQpwaGFwIHRhbmcgZ2lhIHhhbmcsIHR1YyBsYSBvbmcgRHVuZyBwaGFpIGh1eSBi byBxdXlldCBkaW5oIHZhbyBjdW9pIHRoYW5nIDIgY2hvIHBoZXAgDQpUYXAgZG9hbiB4YW5nIGRh dSBkdW9jIHRhbmcgZ2lhIHZvaSBsaSBkbyB0dSBuYXkgY2hpbmggcGh1IG5ndW5nIGNoaW5oIHNh Y2ggYnUgZ2lhIGNobyANCnhhbmcgZGF1LigxNCkgQ2FjIGNoaW5oIHNhY2ggdHJhaSBuZ3VvYyBu aGF1IG5odSB2YXkgY2hpIGNodW5nIHRvIHN1IGhvdCBob2FuZyB2YSBsdW5nIA0KdHVuZyB2YSB0 aGlldSBraGEgbmFuZyBkdSBkb2FuIHRpbmggaGluaCBjdWEgTmd1eWVuIFRhbiBEdW5nIHZhIHN1 IGNob25nIGRvaSBsYW4gbmhhdSANCmRhbmcgZGllbiByYSBvIHRyb25nIEJDVCB2ZSBjYWMgZ2lh aSBwaGFwIGNob25nIGxhbSBwaGF0LiANCg0KTmh1bmcgYWkgdGhlbyBkb2kgY2hpbmggc2FjaCBj aG9uZyBsYW0gcGhhdCBjdWEgY2hpbmggcGh1IE5ndXllbiBUYW4gRHVuZyB0dSB0aGFuZyANCjIu MDggdmUgbGFpIHN1YXQsIHRpIGdpYSBkb25nIERvbGxhciwgdGhpIHRydW9uZyBjaHVuZyBraG9h bi4uLiB0aGkgY2FuZyB0aGF5IG5odW5nIHF1eWV0IA0KZGluaCBtYXUgdGh1YW4gdmEgY2hvbmcg ZG9pIGxhbiBuaGF1IHRyb25nIGhhaSBjdW9jIGhvcCBub2kgY2FjIHZhbyBjdW9pIHRoYW5nIDIg dmEgDQpjdW9pIHRoYW5nIDMgdnVhIHF1YS4gTmhpZXUgcXV5ZXQgZGluaCBjdWEgcGhpZW4gaG9w IG5vaSBjYWMgdmFvIGN1b2kgdGhhbmcgMyBkYSBodXkgYm8gDQp2YSB2dXQgdmFvIHNvdCByYWMg Y2FjIHF1eWV0IGRpbmggdHJvbmcgY3VvYyBob3Agbm9pIGNhYyB0cnVvYyBkbyA0IHR1YW4uIERh eSBsYSBjaHVhIGtlIA0KdG9pIG5nYXkgdHJvbmcgbW9pIGJpZW4gcGhhcCB0dXkgZGEgZHVvYyBj aGluaCBwaHUgcXV5ZXQgZGluaCBuaHVuZyBkYSBiaSBQaG8gVFQgVGh1IA0KbmhhdCBOZ3V5ZW4g U2luaCBIdW5nLCBCbyB0cnVvbmcgdGFpIGNoYW5oIFZ1IFZhbiBOaW5oIHZhIFRob25nIGRvYyBO SE5OIA0KTmd1eWVuIFZhbiBHaWF1IGdpYWkgdGhpY2ggdHJhaSBuZ3VvYyBsYW4gbmhhdSwgY2hp IHRyaWNoIGNvbmcga2hhaSBsYW4gbmhhdS4oMTUpIE5nYXkgDQp0b2kgY3VvaSB0aGFuZyAzIHRy b25nIGN1b2MgZGlldSB0cmFuIHRydW9jIFV5IGJhbiBUaHVvbmcgdnUgUXVvYyBob2ksIEJvIHRy dW9uZyBUYWkgDQpjaGFuaCBWdSBWYW4gTmluaCB2YW4gY2FvIG5nYW8gbGEga2hvbmcgdGhheSBu aHVuZyBzYWkgbGFtIG5hbyBjdWEgY2hpbmggcGh1IHRyb25nIA0KdmllYyBjaG9uZyBsYW0gcGhh dCEgKDE2KSANCg0KTmh1bmcga2hvIGtoYW4gdHJ1b2MgbWF0IHRyb25nIHRodWMgaGllbiA3IGRp ZW0NCg0KQ2FuIGN1IHZhbyBjYWMgYmllbiBwaGFwIGNob25nIGxhbSBwaGF0IGN1YSBOZ3V5ZW4g VGFuIER1bmcgdnVhIGR1YSByYSBjbyBoYWkgY2F1IGhvaSBsb24gbGE6IA0KDQoxLiBMaWV1IGNo aW5oIHBodSBOZ3V5ZW4gVGFuIER1bmcgY28gdGhlIGtpZW0gY2hlIGxhbSBwaGF0IG8gbXVjIHRo YXAgZHVvYyBraG9uZz8gDQoNCjIuIFF1YW4gdHJvbmcgaG9uIG51YSBsYSwgY28gY2F1IHRvIGNo dWMga2luaCB0ZSB2YSBjaGluaCB0cmkgaGllbiBuYXkgY28gdGhlIGdpYWkgcXV5ZXQgDQpkZW4g bm9pIGRlbiBjaG9uIG5hbiBsYW0gcGhhdCB2ZSBsYXUgdmUgZGFpIGtob25nPw0KDQpDYXUgaG9p IHRodSBuaGF0IGNvIHRpbmggY2FjaCB0aG9pIHN1LCBsaWVuIHF1YW4gbmhpZXUgdG9pIGtoYSBu YW5nIGxhbmggZGFvIHZhIHV5IHRpbiBjdWEgDQpjaGluaCBwaHUgTmd1eWVuIFRhbiBEdW5nLiBD aG8gdG9pIGdhbiBkYXkgb25nIER1bmcgdmFuIHR1IGNob2kgY2FjIGxvaSBraHV5ZW4gY3VhIA0K Y2FjIGNodXllbiB2aWVuIFZOIHZhIHF1b2MgdGUgdmEgdGllcCB0dWMgaHV5ZW5oIGhvYW5nIHF1 eWV0IGdpdSBtdWMgdGFuZyB0cnVvbmcga2luaCANCnRlIGNhbywgZG9uZyB0aG9pIHNlIGRheSBs YW0gcGhhdCB0aGFwIGhvbiBtdWMgdGFuZyB0cnVvbmcuIE5odW5nIGNhYyBxdXlldCBkaW5oIHZ1 YSANCnF1YSBjdWEgQkNUIHZhIHN1IHhhYyBuaGFuIGxhbiBkYXUgdGllbiBjdWEgTmd1eWVuIFRh biBEdW5nIGxhIHBoYWkgZ2lhbSBtdWMgdGFuZyANCnRydW9uZyB2YSB0aHVhIG5oYW4gbXVjIGxh bSBwaGF0IHJhdCBjYW8gdHJvbmcgbmFtIDIwMDggZ2FwIGRvaSBtdWMgdGFuZyB0cnVvbmcgKGR1 IA0KdGluaCkgZGEgY2hvIHRoYXkgdGh1YyB0ZSBwaHUgcGhhbmcgZGFuZyBkYXkgbHVpIG5odW5n IGNhY2ggdHJpIHRyYSB2YSBuZ29uZyBjdW9uZyBjdWEgDQpuZ3VvaSBkdW5nIGRhdSBjaGluaCBw aHUuIE5oaWV1IGNodXllbiB2aWVuIGNvbiBuZ2hpIG5nbyBraGEgbmFuZyBoaWVuIHRodWMgbmdh eSBjYSANCm5odW5nIGNvbiBzbyBkdSBiYW8gbW9pIGRheSBjdWEgb25nIER1bmcuIFZpIGNoaSBt b2kgY28gYmEgdGhhbmcgZGF1IGN1YSBuYW0gMjAwOCANCm11YyBsYW0gcGhhdCBkYSB2dW90IHRy ZW4gOSUsIGNobyBuZW4gbGFtIHNhbyBjbyB0aGUgZ2l1IG11YyBsYW0gcGhhdCBjaG8gOSB0aGFu ZyBjb24gDQpsYWkgY2hpIGdpYSB0YW5nIHRoZW0gMyU/IFRyb25nIGJhbiB0dW9uZyB0cmluaCBt b2kgZGF5IGN1YSBOZ2FuIGhhbmcgUGhhdCB0cmllbiBBIA0KY2hhdSAoQURCKSBkYSBkdWEgcmEg ZHUgZG9hbiBtdWMgbGFtIHBoYXQgY3VhIFZOIHRyb25nIG5hbSBuYXkgY28gdGhlIGxlbiB0b2kg DQoxOCwzJSgxNyksIG1vdCBzbyBjaHV5ZW4gdmllbiBjb24gZHVhIHJhIG5odW5nIHRpZW4gbGll dSBjYW8gaG9uIQ0KDQpDbyBuaGlldSBsaSBkbyBjaG8gdGhheSBtdWMgdGlldSBjdWEgTmd1eWVu IFRhbiBEdW5nIHNlIGtobyBkYXQgZHVvYy4gVGluaCBoaW5oIGtpbmggDQp0ZSB0aGUgZ2lvaSBk YW5nIGdhcCBraG8ga2hhbiByYXQgbG9uIHRyb25nIG1vdCBzbyBsYW5oIHZ1YywgcXVhbiB0cm9u ZyBuaGF0IGxhIGdpYSBkYXUgDQp0aG8gdGllcCB0dWMgZ2lhIHRhbmcgbyBtdWMgcmF0IGNhbywg a2luaCB0ZSBNaSCWdHVuZyBsYSBkYXUgdGF1IGN1YSBraW5oIHRlIHRvYW4gY2F1LSBkYW5nIA0K cm9pIHZhbyB0aW5oIHRyYW5nIG5ndW5nIHRyZSwgZG9uZyBEb2xsYXIgTWkgKG5ndW9uIG5nb2Fp IHRlIGNhbiBiYW4gY3VhIFZOKSBtYXQgZ2lhIA0KbmdoaWVtIHRyb25nLCB0aGkgdHJ1b25nIHRh aSBjaGFuaCB2YSBjaHVuZyBraG9hbiB0cmVuIHRoZSBnaW9pIGRhbmcgZ2FwIGtodW5nIGhvYW5n IA0KbG9uIHNhdSBjYWMgYmllbiBkb25nIHRyYW0gdHJvbmcgdHJvbmcgdGhpIHRydW9uZyBiYXQg ZG9uZyBzYW4gbyBNaS4gR2FuIDIwJSBraW0gbmdhY2ggDQp4dWF0IGtoYXUgY3VhIFZOIGxhIGRv IGJ1b24gYmFuIHZvaSBNaS4gVmkgdGhlIGNhYyBzYW4gcGhhbSBjdWEgVk4gc2UgZ2FwIGtobyBr aGFuIA0KaG9uIHRyb25nIHRoaSB0cnVvbmcgY3VhIEhvYSBraS4NCg0KTmh1bmcgY2FjIHlldSB0 byBjaHUgcXVhbiBsaWVuIHF1YW4gdHJ1YyB0aWVwIHRvaSBjYSB0aW5oIGNvbiBuZ3VvaSB2YSBr aGEgbmFuZyBsYW5oIGRhbyANCmN1YSBOZ3V5ZW4gVGFuIER1bmcsIGN1bmcgbmh1IHRpbmggaGlu aCBub2kgYm8gdHJvbmcgY2hpbmggcGh1IHZhIHRyb25nIEJDVCBtb2kgDQpjaGluaCBsYSBuYW4g Z2lhaSB0cm9uZyB2aWVjIGNob25nIGxhbSBwaGF0LiBUaGVvIGRvaSBjYWMgcXV5ZXQgZGluaCBi YXQgbmhhdCBjdWEgTmd1eWVuIA0KVGFuIER1bmcgdmEgdGluaCB0cmFuZyB0cm9uZyBkYW5oIHh1 b2kga2VuIHRob2kgbmd1b2MgZ2l1YSBwaG8gVFQgTmd1eWVuIFNpbmggSHVuZywgDQpCbyB0cnVv bmcgVGFpIGNoYW5oIFZ1IFZhbiBOaW5oIHZhIFRob25nIGRvYyBOZ2FuIGhhbmcgTmhhIG51b2Mg Tmd1eWVuIFZhbiANCkdpYXUuLi4gdHUgZGF1IG5hbSB0cm8gbGFpIGRheSB0cm9uZyBjaGluaCBz YWNoIGNob25nIGxhbSBwaGF0IGRhIGNobyB0aGF5IHJvIGtoYSBuYW5nIA0KbGFuaCBkYW8gcmF0 IHlldSB2YSB1eSB0aW4gZGFuZyBtYXQgY3VhIE5ndXllbiBUYW4gRHVuZyB0cm9uZyB2aWVjIGdp YWkgcXV5ZXQgdmFuIG5hbiANCmxhbSBwaGF0IGxvbiBuaGF0IGhpZW4gbmF5LiANCg0KQ2hpZXUg aHVvbmcgbmF5IHZhbiB0aWVwIGRpZW4gcm8gcmFuZyB0cm9uZyBjYWMgY3VvYyBob3AgZ2FuIGRh eSBjdWEgTmd1eWVuIFRhbiBEdW5nIA0Kdm9pIGNhYyBkYWkgZGllbiBkb2FuaCBuZ2hpZXAgbmhh IG51b2MgKEROTk4pIGhhbmcgZGF1LCBjYWMgQ2h1IHRpY2ggVUJORCB0aW5oIHZhIA0KdGhhbmgg cGhvIGRlIHRodXlldCBwaHVjIG1vaSBuZ3VvaSBuZ2hlICJUaG9uZyBkaWVwIiBjdWEgbWluaC4g VHJvbmcgY3VvYyBob3Agdm9pIA0KY2FjIHRhcCBkb2FuIGtpbmggdGUgdmEgY2FjIHRvbmcgY29u ZyB0aSBuaGEgbnVvYyBuZ2F5IDEuNCB0cm9uZyBraGkgTmd1eWVuIFRhbiBEdW5nIA0KeWV1IGNh dSBjYWMgZG9hbmggbmdoaWVwIG5oYSBudW9jIHBoYWkgdGFtIG5ndW5nIHRhbmcgZ2lhIGNhYyBz YW4gcGhhbSBjdWEgaG8sIHRoaSANCm5oaWV1IGRhaSBkaWVuIGN1YSBjYWMgdGFwIGRvYW4gZGF1 IGtoaSwgZGllbiwgdGhhbiAuLi4uIGRhIHRoYW4gdGhvIGxhIGdpYSBiYW4gY2FjIHNhbiANCnBo YW0gY3VhIGhvIHRoYXAgaG9uIGdpYSB0aGFuaCB2YSBuaGFvIG5oYW8gbGVuIGRvaSBwaGFpIGRl IHRhbmcgZ2lhLCBuZXUga2hvbmcgdGhpIA0KY2hpbmggcGh1IHBoYWkgYnUgbG8uWzE4XSBPbmcg RHVuZyBkYSBkdWEgcmEgZG9pIGhvaSBhbSBvIGxhLCBjYWMgVGFwIGRvYW4gImtob25nIA0KZHVv YyB0YW5nIGdpYSwgbmh1bmcgY3VuZyBraG9uZyBkdW9jIGxvIiEgS2hpIGhvcCB2b2kgY2FjIENo dSB0aWNoIFVCTkQgY2FjIHRpbmggdmEgdGhhbmggDQpwaG8gcGhpYSBCYWMgKDIuNCkgdmEgcGhp YSBOYW0gKDcuNCkgZGUgeWV1IGNhdSBjYWMgY28gcXVhbiBwaGFpIGdpYW0gbmdhbiBzYWNoIGNo aSANCnRpZXUgdmEgaG9hbiBjYWMgY29uZyB0cmluaCBkYXUgdHUga2VtIGhpZXUgcXVhIHRoaSBu aGlldSBkYWkgZGllbiBkYSBub2kgdGhhbmcgdm9pIA0KTmd1eWVuIFRhbiBEdW5nIGxhLCBnaWEg Y2FjIHZhdCBsaWV1IHZhIGNhYyBjaGkgcGhpIGRhbmcgZ2lhIHRhbmcgbWFuaCBsYW0gc2FvIGhh IGNoaSANCnRpZXUgZHVvYz8gQ2FjIGRhaSBkaWVuIGRpYSBwaHVvbmcgY29uIGNoaSB0cmljaCBj aGluaCBwaHUgbGEsIGNobyB0b2kgbmF5IHZhbiBjaHVhIGNvIA0KY2FjIHRpZXUgY2h1YW4gcm8g cmFuZyB2ZSB2aWVjIGNhdCBnaWFtIG5odSB0aGUgbmFvISANCg0KQ3VvaSBjdW5nIE5ndXllbiBU YW4gRHVuZyB2YSBjYWMgUGhvIFRUIGN1bmcgZGkgZGEgZG9uZyB5IGRlIGNhYyBkaWEgcGh1b25n IGR1b2MgDQpxdXllbiBxdXlldCBkaW5oIGNhdCBnaWFtIGNhYyBjb25nIHRyaW5oIGRhdSB0dS4o MTkpIE5odSB2YXkgb25nIER1bmcga2hvbmcgY2hpIGJpIA0KQkNUIHBoZSBiaW5oIG1hIGhpZW4g bmF5IGNvbiBkYW5nIGNoaXUgYXAgbHVjIGxvbiBjdWEgY2FjIGRvYW5oIG5naGllcCBuaGEgbnVv YyB2YSANCmNoaW5oIHF1eWVuIGNhYyBkaWEgcGh1b25nIGR1YSByYSBjYWMgeWV1IHNhY2ggdmEg bGkgZG8gZGUgdGltIGNhY2ggZHV5IHRyaSBjYWMgZGFjIA0KcXV5ZW4sIGRhYyBsb2kgY2hvIG5n YW5oIGN1YSBtaW5oIGhheSBkaWEgcGh1b25nIG1pbmguDQoNCkNhYyBraG8ga2hhbiBsYXUgZGFp IHRyb25nIHZpZWMgY2hvbmcgbGFtIHBoYXQNCg0KRGUgdHJhIGxvaSBjYXUgaG9pIHRodSBoYWkg ZGEgbmV1IHRyZW4gZGF5IGxhLCB2b2kgY28gY2F1IHRvIGNodWMga2luaCB0ZSB2YSBjaGluaCB0 cmkgaGllbiANCm5heSB0aGkgY28gdGhlIGdpYWkgcXV5ZXQgZGVuIG5vaSBkZW4gY2hvbiBuYW4g bGFtIHBoYXQgdmUgbGF1IHZlIGRhaSBraG9uZz8gTmV1IHRoZW8gDQpkb2kgdGluaCB0cmFuZyBs YW0gcGhhdCBwaGkgbWEgaGllbiBuYXkgbyBWTiB0aGkgc2UgdGhheSBjYWMgY2hpbmggc2FjaCBz YWkgbGFtIHZlIHRpZW4gdGUgDQp2YSB0YWkgY2hhbmggdHJvbmcgbmFtIDIwMDcgY3VhIE5ndXll biBUYW4gRHVuZyBsYSBuZ3V5ZW4gbmhhbiB0cnVjIHRpZXAgZGF5IGxhbSANCnBoYXQgdHJvIHRo YW5oIGJvYyBwaGF0IHRvYyBoYW5oLiBOaHVuZyBuZ3V5ZW4gbmhhbiBjYW4gYmFuIG1hbmcgdGlu aCBjYWNoIGNvIGNhdSBjdWEgDQpuYW4gbGFtIHBoYXQgbyBWTiBsYWkgbmFtIGNoaW5oIHRyb25n IGNvIGNhdSBjaGluaCB0cmkgY3VhIGNoZSBkbyB0b2FuIHRyaS4gDQoNClRpbmggaGluaCBjaGlu aCB0cmkgdmEga2luaCB0ZSBWTiB0cm9uZyB0aG9pIGdpYW4gcXVhIGNvIG1vdCBzbyBkYWMgZGll bSBkYW5nIGx1dSB5LiBDaGUgDQpkbyB0b2FuIHRyaSBjdWEgRENTVk4gdHUgY3VvaSB0aGFwIGtp IDgwIGN1YSB0aGUga2kgdHJ1b2MgZGEgYmF0IGJ1b2MgcGhhaSBob2kgbmhhcCB2YW8gDQp0aGUg Z2lvaSBkdW9pIGNhYyBkaWV1IGtpZW4gcmF0IGJhdCBsb2ksIHRyb25nIGRvIGNhYyBudW9jIHR1 IGJhbiB2YSBkYW4gY2h1IHBodW9uZyBUYXkgDQpuYW0gY2h1IGRvbmcuIENobyBuZW4gZGUgY28g dGhlIHRpZXAgdHVjIGR1eSB0cmkgZHVvYyBjaGUgZG8gdG9hbiB0cmkgbGF1IGNodW5nIG5hbyBo YXkgDQpjaHVuZyBuYXksIG5ob20gY2FtIGRhdSBEQ1NWTiBkYSB2YSBkYW5nIHRodWMgaGllbiBt byBoaW5oIHZ1YSBkb2MgcXV5ZW4gdnVhIHRhbiANCnF1eWVuLCB0cm9uZyBkbyBkb2MgcXV5ZW4g bGEgY2hpbmguIFRyb25nIHRob2kgZGFpIHBoYWkgbW8gY3VhIHZhIGdpYW8gdGh1b25nIHZvaSAN CnBodW9uZyBUYXksIG5ldSBtdW9uIHRpZXAgdHVjIG5hbSBkb2MgcXV5ZW4gY2hpbmggdHJpIHRo aSBwaGFpIGJpZXQgdGFuIHF1eWVuIHRyb25nIGxhbmggDQp2dWMga2luaCB0ZSB2YSBjaG8gY2Fj IGRpYSBwaHVvbmcgZHVvYyBodW9uZyBtb3Qgc28gcXV5ZW4gbG9pIG5oYXQgZGluaC4gVHJlbiBj byBzbyANCnNhY2ggbHVvYyBuYXkgbmVuIHR1IDE5ODYgdHJlbiAxMC4wMDAgRE5OTiBkYSB0dW5n IGJ1b2MgZHVvYyBiaWVuIGNhaSB0aGFuaCBjYWMgdGFwIA0KZG9hbiwgY2FjIHRvbmcgY29uZyB0 aSB2YSBjb25nIHRpIHZhbiBkdW9pIHF1eWVuIGNoaSBodXkgY3VhIGRhbmcgeHV5ZW4gcXVhIGNo aW5oIHBodSwgDQpob2FjIGNodXllbiBzYW5nIGNhYyBjb25nIHRpIGNvIHBoYW4sIG5odW5nIGRl IGNobyBjYWMgImRhaSBnaWEiIGRhbmcgY28gcXV5ZW4gbHVjIGhheSANCmRlIGNobyBjYWMgdmF5 IGNhbmggbmFtIG1vdCBwaGFuIHF1YW4gdHJvbmcgc28gY28gcGhhbiB2YSBjaGlhIG5oYXUgZ2l1 IGNhYyBjaHVjIHZ1IA0KdGhlbiBjaG90IHRyb25nIGJhbiBnaWFtIGRvYyB2YSBiYW4gZGlldSBo YW5oIGNhYyBjb25nIHRpIG5heS4NCg0KR2FuIGRheSBuaGlldSB0b25nIGNvbmcgdGkgbmhhIG51 b2MgZGEgZHVvYyBzYXAgeGVwIGxhaSBkZSBjaHV5ZW4gdGhhbmggY2FjIHRhcCBkb2FuIA0Ka2lu aCB0ZSBuaGEgbnVvYy4gVHJvbmcgZG8gcXVhbiB0cm9uZyBuaGF0IHBoYWkgbm9pIHRvaSA4IFRh cCBkb2FuIGRhbmcgYmFvIHRoYXUgY2FjIA0KaHV5ZXQgbWFjaCBraW5oIHRlIFZOOiBEYXUga2hp IChQZXRybyBWaWV0bmFtKSwgRGllbiBsdWMgKEVWTiksIEJ1dSBjaGluaC12aWVuIHRob25nICAN CihWTlBUKSwgVGhhbi1raG9hbmcgc2FuIChWaW5hY29taW4pLCBDb25nIG5naGllcCB0YXUgdGh1 eSAoVmluYXNoaW4pLCBDYW8gc3UgDQooVlJHKSwgRGV0IG1heSAoVmluYXRleCkgdmEgVGFpIGNo YW5oLWJhbyBoaWVtIChCYW8gVmlldCkuKDIwKSBIaWVuIGNhYyB0YXAgZG9hbiBuYXkgDQp2YSBj YWMgdG9uZyBjb25nIHRpIG5oYSBudW9jIGRhbmcgbmFtIGdpdSBtb3Qga2hvaSB0YWkgc2FuIHJh dCBsb24gY3VhIGRhdCBudW9jOiAiNzAlIA0KdG9uZyB0YWkgc2FuIGNvIGRpbmgsIDIwJSB2b24g ZGF1IHR1IHRvYW4geGEgaG9pLCA1MCUgdm9uIGRhdSB0dSBjdWEgTmhhIG51b2MsIDYwJSB0aW4g DQpkdW5nIG5nYW4gaGFuZyB2YSA3MCUgbmd1b24gdm9uIE9EQSBbdmllbiB0cm8gdmEgY2hvIHZh eSBjdWEgY2FjIG51b2MgbmdvYWkgdmEgY2FjIA0KdG8gY2h1YyB0YWkgY2hhbmggcXVvYyB0ZV0u Li4sIHRyb25nIGRvIGhvbiA4MCUgZG8gY2FjIHRvbmcgY29uZyB0eSBsb24gZGEgaG9hYyBzYXAg dGhhbmggDQp0YXAgZG9hbiBuYW0gZ2l1LiIoMjEpIA0KDQpDYWNoIGtpbmggZG9hbmggY3VhIGNh YyBETk5OIG5heSBsYSBtYWMgZGF1IGxhbSBhbiByYXQgdGh1YSBsbywgbmh1bmcgbGFpIGNvIHJh dCBuaGlldSANCnF1eWVuIGhhbmggdmEgbGFpIGR1b2MgY2hlIGRvIHV1IGRhaSBkYWMgYmlldDog VHUgY2hpZW0gZ2l1IG5oaWV1IGxvYWkgYmF0IGRvbmcgc2FuLCANCmR1b2MgdXUgdGllbiB2YXkg dGllbiBjdWEgTkhOTiB2b2kgbGFpIHN1YXQgdGhhcCwgdG9pIGR1b2MgYnUgbG8gcXVhIG5nYW4g c2FjaCBuaGEgbnVvYywgDQp0aGFtIGNoaSBjYWMga2llbSBzb2F0IGNoaSB0aHUgcGhhbiBsb24g Y2hpIGxhbSB0aGVvIGxvaSBoaW5oIHRodWMuIFZpIGNhYyBibyBob2FjIGNhYyANCmNoaW5oIHF1 eWVuIGRpYSBwaHVvbmcgZGFuZyBsYW0gY2h1IHF1YW4gY2FjIEROTk4gbmF5LiBDYWMgdnUgdGhh bSBuaHVuZyBkb25nIA0KdHJvaSBQTVUgMTggdGh1b2MgYm8gR2lhbyB0aG9uZyB2YW4gdGFpIGhh aSBuYW0gdHJ1b2MgdmEgdnUgdGhhbSBuaHVuZyBjdWEgVG9uZyANCkNvbmcgdGkgbWllbiBUcnVu ZyBDb3Nlc2NvIGhpZW4gbmF5IHRodW9jIGJvIFhheSBkdW5nIGRhIGNobyB0aGF5LCBnaWFtIGRv YyBjYWMgY29uZyANCnRpIGN1YSBuaGEgbnVvYyBjbyB0aGUgdHUgeSBtbyByb25nIGNvbmcgdHJp bmggZGF1IHR1IHZhIG5hbmcgbmdhbiBzYWNoIGRhdSB0dSBoYW5nIHRpIA0KaGF5IGNodWMgdGkg ZG9uZyByYXQgZGUgZGFuZyBkbyBtb2kgbGllbiBoZSBjdWEgaG8gdm9pIGNhYyBxdWFuIGxvbiBj byB0aGUgbHVjIHRyb25nIA0KVHJ1bmcgdW9uZyBkYW5nIChUVUQpIHZhIEJDVC4oMjIpDQoNClZp IHRoZSB4ZXQgY2hvIGN1bmcsIG5ldSB2aWVjIE5ndXllbiBUYW4gRHVuZyBkZSBjaG8gTkhOTiBi byByYSB0cmVuIDE0MC4wMDAgdGkgDQpkb25nIG5vaSB0cm9uZyA2IHRoYW5nIG11YSB2YW8gOSB0 aSBNaSBraW0gZGEgbGEgbmd1eWVuIG5oYW4gdHJ1YyB0aWVwIGR1YSB0b2kgbGFtIHBoYXQgDQpw aGkgbWEgdGhpIG5odW5nIGNoaSB0aWV1IHJhdCBwaGkgcGhhbSB0aGVvIGNhY2ggImN1YSBjaHVh IiB2YSB0dSBkbyB0aGFtIG5odW5nIGN1YSBjYWMgDQpuZ3VvaSBjbyBjaHVjIHF1eWVuIHRyb25n IGNhYyB0YXAgZG9hbiwgdG9uZyBjb25nIHRpIHZhIGNvbmcgdGkgbmhhIG51b2MgbW9pIGxhIG5n dXllbiANCm5oYW4gY2hpbmggZHVhIHRvaSB0aW5oIHRyYW5nIGxhbSBwaGF0IHJhdCBuYW4gZ2lh aSBvIFZOLiBNb2kgZGF5LCBKb25hdGhhbiBQaWN1cywgbW90IA0KY2h1eWVuIHZpZW4gY2FvIGNh cCBjdWEgQ28gcXVhbiBQaGF0IHRyaWVuIExIUSAoVU5EUCkgZGEgbmhhbiBkaW5oIHZlIHZpZWMg bmF5Og0KDQoiTmd1eWVuIG5oYW4gc2F1IHhhIGN1YSBsYW0gcGhhdCB0YWkgVmlldCBOYW0gbGEg dGkgbGUgZGF1IHR1IGNvbmcgY2hpZW0gcXVhIHBoYW4gbnVhIA0KKG5hbSAxOTk5IGNoaWVtIGhv biA0MCBuZ2hpbiB0aSBkb25nLCBuYW0gMjAwMyBjaGllbSBnYW4gNjAgbmdoaW4gdGksIG5hbSAy MDA2IHhhcCANCnhpIDc1IG5naGluIHRpKSBzbyB2b2kga2h1IHZ1YyBraW5oIHRlIG5nb2FpIHF1 b2MgZG9hbmggdmEgRkRJLCB0cm9uZyBraGkgc3VhdCBzaW5oIGxvaSANCmN1YSBraHUgdnVjIG5h eSByYXQgdGhhcCAodW9jIGtob2FuZyAzJSkgdmEgdmkgdGhlIGNodSBreSBkb3Qgbm9uZyBuZW4g a2luaCB0ZSB0cm8gbmVuIA0KdG9pIHRlIGhvbiIuKDIzKSANCg0KQ2FjIEROTk4ga2hvbmcgY2hp IGNoaSB0aWV1IHBoaSBwaGFtIGhhbmcgY2h1YyBuZ2FuIHRpIGRvbmcgbW9pIG5hbSwgbWEgY29u IGxhIG8gZGUgDQpjYWMgbmd1b2kgY28gY2h1YyBjbyBxdXllbiB0dSB0cnVuZyB1b25nIHRvaSBk aWEgcGh1b25nIHRoYW0gbmh1bmcgdmEgaG9pIGN1YSBsYW0gZ2lhdSANCmJhdCBjaGluaCwgbmh1 IG5nYXkgYmFvIGNoaSBjdWEgY2hlIGRvIGRhIHZhY2ggcm8uIENoaW5oIHZpIHRoZSBjYWMgRE5O TiBjb24gbGEgbW90ICANCmdhbmggbmFuZyByYXQgbG9uIGNobyBuZ2FuIHNhY2ggbmhhIG51b2Mu IFZpIG5hbSBkb2MgcXV5ZW4gdmEgbGFpIGR1b2MgY2hpbmggcGh1IHNhbiANCnNhbmcgYnUgbG8s IGNobyBuZW4gY2FjIEROTk4gbGFtIGFuIGtob25nIHRpbmggdG9hbiB0aGVvIGxvaSBpY2gga2lu aCB0ZSwgaGF1IGhldCBkZXUgYmkgDQpsbyBsb24uIE1vaSBkYXkgY2hpbmggcGh1IGNobyBiaWV0 LCBuZXUgZ2l1IHZ1bmcgbXVjIHhhbmcgZGF1IHRoaSBuaGEgbnVvYyBwaGFpIGJ1IGxvIA0KY2hv IFRhcCBkb2FuIGRhdSBraGkgVk4gbW9pIG5hbSBsZW4gZGVuIDEyLjAwMCB0aSBkb25nKDI0KS4g TmV1IGdvcCBjaHVuZyBuaHVuZyBzdSANCmJ1IGxvIGNobyBjYWMgdGFwIGRvYW4sIHRvbmcgY29u ZyB0aSB2YSBjb25nIHRpIGRvIGRhbmcgbmFtIGdpdSB4dXllbiBxdWEgY2hpbmggcGh1IHRoaSAN Cm5nYW4gc2FjaCBjaGluaCBwaHUgcGhhaSBidSBsbyBtb2kgbmFtIGR1IGRvYW4gdHUgMS80IHRv aSAxLzMgbmdhbiBzYWNoLiBUdWMgbGEgaGFuZyANCnRyYW0gbmdhbiB0aSBkb25nIGRvIHRodWUg Y3VhIG5oYW4gZGFuIGRhIGR1b2MgZHVuZyBkZSBudW9pIGNhYyBETk5OIHZhIGRlIGNobyBjYWMg DQpxdWFuIGxvbiB0aGFtIG5odW5nLiANCg0KVGluaCB0cmFuZyBidSBsbyBuaHVuZyBraG9hbiB0 aWVuIHJhdCBsb24gdHUgbmFtIG5heSBzYW5nIG5hbSBraGFjIGRhIGR1YSB0b2kgbmFuIGJvaSAN CmNoaSBuZ2FuIHNhY2ggbmdheSBjYW5nIGNhby4gRG8gZG8gY2hpbmggcGh1IHBoYWkgY2hvIGlu IHRoZW0gdGllbiB2YSB2aSB0aGUgZGEgdGFvIG5lbiANCmxhbSBwaGF0IGNhbyEgTWFjIGRhdSBC Q1QgYmlldCByYXQgcm8gbmh1bmcgaHV5IGhhaSBkbyBjaG8gbmhhbiBkYW4gZGFuIHZhIGRhdCBu dW9jLCANCm5odW5nIGNhYyBETk5OIHZhbiBkdW9jIGR1eSB0cmksIHZpIGRheSBsYSBtYXUgZGUg bnVvaSBjaGUgZG8gdmEgY2FjIG8gZGUgY2FjIHRoYW0gDQpxdWFuIHR1IGRvIGxhbSBnaWF1IG5o YW5oIHRoZW8gbG9pIGJhdCBjaGluaC4gVHJvbmcgY2FjIHhhIGhvaSBkYW4gY2h1IGRhIG5ndXll biB2YSANCnRoZW8ga2luaCB0ZSB0aGkgdHJ1b25nIHRodWMgc3UsIGhhdSBoZXQgY2FjIGxhbmgg dnVjIGtpbmggdGUgZGV1IGRhIGR1b2MgdHUgbmhhbiBob2EgdGhlbyANCmNhYyB0aWV1IGNodWFu IGNhbmggdHJhbmggbGFuaCBtYW5oIHZhIGtpZW0gc29hdCBuZ2hpZW0gbmdhdC4gQ2hpbmggdmkg dGhlIG5oYSBudW9jIA0Ka2hvbmcgcGhhaSBidSBsbywga2luaCB0ZSBwaGF0IHRyaWVuIGxpZW4g dHVjIHZhIG11YyBsYW0gcGhhdCBkdW9jIGdpdSBvIG11YyB0aGFwLg0KDQpOb2kgdG9tIGxhaSwg dGluaCBoaW5oIGxhbSBwaGF0IGRhbmcgYnVuZyBubyByYXQgbWFuaCBvIFZOIHRyb25nIG5hbSBx dWEgdmEgbmhhdCBsYSB0dSANCmRhdSBuYW0gMjAwOCBkYW5nIGRlIGRvYSB0cnVjIHRpZXAgY3Vv YyBzb25nIGN1YSBuaGlldSB0cmlldSBuZ3VvaSBsYW0gY29uZyB0cm9uZyBjYWMgDQp4aSBuZ2hp ZXAsIG5oaWV1IHRyaWV1IHZpZW4gY2h1YyB2YSBxdWFuIG5oYW4gdm9pIGRvbmcgbHVvbmcgaXQg b2kuIEdpYSBjYSBjYWMgbmh1IHlldSANCnBoYW0gZ2lhIHRhbmcgcXVhIG5oYW5oIGNvbiBkZSBk b2EgY3VvYyBzb25nIHZvbiBkYSB0dW5nIGJpIHRodWEgdGhpZXQgY3VhIG1heSBjaHVjIA0KdHJp ZXUgbm9uZyBkYW4gVk4sIG5heSBjYW5nIGNvIGN1YyBob24sIG5oYXQgbGEgbyBuaHVuZyB2dW5n IHNhdSB2YSB4YS4gTmhpZXUgbm9pIGRhIA0KcGhhaSBjaGl1IGRvaSwgaGFuZyB0cmFtIG5nYW4g dHJlIGVtIGRhIHBoYWkgYm8gaG9jIHZpIGtob25nIHRyYSBub2kgaG9jIHBoaSB2YSBwaGFpIGdp dXAgDQpkbyBjaGEgbWUhDQoNCk5odW5nIGx1bmcgdHVuZywgaG90IGhvYW5nIHRyb25nIGxhbmgg ZGFvIGN1YSBOZ3V5ZW4gVGFuIER1bmcgdmEgY2hvbmcgZG9pIGxhbiBuaGF1IA0KY29uZyBraGFp IGdpdWEgY2FjIHBobyBUVCwgY2FjIGJvIHRydW9uZywgVGhvbmcgZG9jIE5ITk4gZGEgbGFtIG1h dCB0aGVtIHV5IHRpbiBjdWEgDQpjaGUgZG8gdG9hbiB0cmkuIENoaW5oIHZpIHRoZSwgaGllbiBu YXkgQkNUIGRhIHBoYWkgdHJ1YyB0aWVwIHJhIGxlbmggY2hvIE5ndXllbiBUYW4gDQpEdW5nIHZl IG11YyB0aWV1LCBjYWNoIHRodWMgdmEgY2FjIGJ1b2MgZGkgY3UgdGhlIHRyb25nIHZpZWMgY2hv bmcgbGFtIHBoYXQuIEhpZW4gbmF5IA0KaG8gY29uIGRhbmcgbW8gbW90IGN1b2MgdmFuIGRvbmcg dGFtIGxpIHJvbmcgbG9uICJ0b2FuIGRhbmcsIHRvYW4gZGFuICJjdW5nIHRoYW0gZ2lhIA0KY2hv bmcgbGFtIHBoYXQgdmEgY29uIGdvaSBjYWMgY3VvYyBob3AgY3VhIE5ndXllbiBUYW4gRHVuZyB2 b2kgY2FjIFRhcCBkb2FuLCBjYWMgDQpDaHUgdGljaCBVQk5EIHZhIENodSB0aWNoIGRvYW4gTVRU USBsYSAibmh1bmcgdGlldSBEaWVuIGhvbmciIQ0KDQpNYWMgZHUgZGEgcGhhaSBoYSB0aGFwIG11 YyB0YW5nIHRydW9uZyBraW5oIHRlLCBuaHVuZyBjYWMgYmllbiBwaGFwIGNob25nIGxhbSBwaGF0 IGN1YSANCkJDVCBkdWEgcmEgdHJvbmcgIkJhbiBrZXQgbHVhbiBjdWEgQkNUIiB2YSAiVGhvbmcg ZGllcCIgY3VhIFRUIGRhIGNobyB0aGF5LCBobyBkYW5nIA0KcXVheSB0cm8gdmUgdm9pIGNoZSBk byBraW5oIHRlIGNoaSBodXksIGNoZSBkbyBiYW8gY2FwLCBjaGUgZG8geGluIGNobyEgVHJ1b2Mg bWF0IGNhYyANCmJpZW4gcGhhcCBuYXkga2hvbmcgZ2F5IGR1b2Mgc3UgdGluIHR1b25nIGN1YSBu aGFuIGRhbiwga2hvbmcgdGFvIGR1b2MgeSB0aHVjIHRyYWNoIA0KbmhpZW0gY3VhIGNhYyBETk5O LCB2YSBuaHUgdGhlIGxhIHZhbiBtdW9uIGR1eSB0cmkgdmEgYmFvIHZlIGNhYyB1bmcgbmhvdCBr aW5oIHRlIHZhIA0KeGEgaG9pLiBEb2kgdm9pIHF1b2MgdGUsIGNhYyBiaWVuIHBoYXAgY2hvbmcg bGFtIHBoYXQgY3VhIEJDVCBzZSBnYXkgcmEgc3UgbWF0IHRpbiB0dW9uZyANCmN1YSBjYWMgbmhh IGRhdSB0dSBudW9jIG5nb2FpLCBjYWMgdG8gY2h1YyB0YWkgY2hhbmggcXVvYyB0ZSB2YSBjaGlu aCBwaHUgY2FjIG51b2MgcGh1b25nIFRheSBkYW5nIHZpZW4gdHJvIHZhIGdpYW8gdGh1b25nIHZv aSBWTi4NCg0KRGEgdGhlIG5ndW9pICJUdSBsZW5oIiBjdWEgY2hpZW4gZGljaCBjaG9uZyBsYW0g cGhhdCBOZ3V5ZW4gVGFuIER1bmcgZG8gbmh1bmcgc2FpIA0KbGFtIGNodSBxdWFuIGN1bmcgZGFu ZyBvIHRyb25nIGhvYW4gY2FuaCB0dSBiZSB0aHUgZGljaCwgbmhpZXUgbmd1b2kgbmdoaSBuZ28g a2hhIG5hbmcgDQpsYW5oIGRhbyBjdWEgb25nIER1bmcuIFR1IG5odW5nIGJvYyBkb25nIGRvIHRo aWV1IGtpZW4gdGh1YyB2YSB0aW5oIHRoaWNoIG5vaSBuZW4gDQpOZ3V5ZW4gVGFuIER1bmcgZGEg Ym8gcmEgdHJlbiAxNDAuMDAwIHRpIGRvbmcgZGUgbXVhIDkgdGkgTWkga2ltIHRyb25nIG51YSBu YW0gZGF1IA0KMjAwNywgZGVuIHZpZWMgaG90IGhvYW5nIHZhIGx1bmcgdHVuZyB0cm9uZyBjYWMg YmllbiBwaGFwIGNob25nIGxhbSBwaGF0IHZhbyBkYXUgbmFtIA0KbmF5LCByb2kgbGFpIGRlIGNo byBjYWMgcGhvIFRULCBibyB0cnVvbmcgdmEgVGhvbmcgZG9jIE5ITk4gY2hvbmcgZG9pIGNvbmcg a2hhaSBsYW4gDQpuaGF1LCB0cm9uZyBkYW5oIHh1b2kga2VuIHRob2kgbmd1b2MhIE5odW5nIHZp ZWMgbmF5IGRhIGxhbSBOZ3V5ZW4gVGFuIER1bmcgbWF0IA0KdGhlbSB0aW4gbmhpZW0gdHJvbmcg QkNUIHZhIGRhIGJpIGNvIHF1YW4gcXV5ZW4gbHVjIGNhbyBuaGF0IG5heSBjdWEgZGFuZyBwaGUg YmluaCANCmdhdCBnYW8gdHJvbmcgIkJhbiBrZXQgbHVhbiBjdWEgQkNUIiBtb2kgZGF5LiANCg0K VHJvbmcga2hpIGF5IHV5IHRpbiBjdWEgTmd1eWVuIFRhbiBEdW5nIHRyb25nIG5oYW4gZGFuIFZO IHZhIHF1b2MgdGUgbGFpIGNhbmcgc2Egc3V0IA0KbG9uLiBTYXUgZ2FuIGhhaSBuYW0gbGFtIFRU LCBkdSBsdWFuIGNoaSB0aGF5IE5ndXllbiBUYW4gRHVuZyB0aGljaCBubywgbm9pIGxvbiwgDQpu aHVuZyBraG9uZyBnaWFpIHF1eWV0IGR1b2MgdmllYyBnaSBkZW4gbm9pIGRlbiBjaG9uLiBLaGkg bW9pIG5oYW4gY2h1YyBUVCB0aGkgDQpOZ3V5ZW4gVGFuIER1bmcgdHV5ZW4gYm8gaHVuZyBobyBk b2kgcGhhaSBkdWEgdnUgdGhhbSBuaHVuZyBkb25nIHRyb2kgUE1VIDE4IHJhIA0KeGV0IHh1IHNv bSB2YSBuZ2hpZW0gbWluaCwgYmF0IGtlIG5ndW9pIGRvIG8gdHJvbmcgY2h1YyB2dSBnaS4gTmh1 bmcgbW9pIHZhaSBuZ2F5IA0KdHJ1b2MgZGF5IHRyb25nIGN1b2MgaG9wIGN1YSBCYW4gY2hpIGRh byBUcnVuZyB1b25nIHBob25nLCBjaG9uZyB0aGFtIG5odW5nIGRvIA0KY2hpbmggTmd1eWVuIFRh biBEdW5nIGxhbSBUcnVvbmcgYmFuIHRoaSBvbmcgRHVuZyBsYWkgZG9uZyB5IHZvaSB2aWVjIFZp ZW4gS2llbSBzYXQgDQp0aGEgY3V1IFRodSB0cnVvbmcgTmd1eWVuIFZpZXQgVGllbiwgbW90IG5n dW9pIGRhIHR1bmcgYmkgY2hpbmggQm8gQ29uZyBhbiB2YSBWaWVuIA0Ka2llbSBzYXQgdHJ1b2Mg ZGF5IGJhdCBnaWFtIHZpIGJpIGNvaSBsYSB0aHUgcGhhbSBjaGluaCB0cm9uZyB2dSBQTVUgMTgu WzI1XSBNb2kgZGF1IA0KdGhhbmcgMyB0cmVuIGRhaSBwaGF0IHF1b2MgdGUgbm9pIHRpZW5nIEJC QywgTmd1eWVuIFRhbiBEdW5nIGNvbiB0dXllbiBibyBuaHUgbmd1b2kgDQpiaSBiZW5oIHRhbSBs aSBob2FuZyB0dW9uZyBraG9uZyBiaWV0IGtoYWMgYmlldCBnaXVhIHN1IHRodWMgdmEgZG9pIHRy YTogIlZpZXQgTmFtIGtob25nIA0KY28gbmd1b2kgbmFvIGJpIGJhdCBkbyBiYXQgZG9uZyBjaGlu aCBraWVuIigyNikgdmENCg0KIktob25nIHRoZSwgdmEgY3VuZyBraG9uZyBuZW4gc28gc2FuaCBy YW5nIFBodW9uZyBUYXkgY28gdHUgZG8gaG9uIGhheSBQaHVvbmcgRG9uZyANCmhheSBWaWV0IE5h bSBjbyB0dSBkbyBob24uIEJvaSB2aSB0dSBkbyBjdWEgbW9pIGNvbmcgZGFuIGN1YSBtb2kgcXVv YyBnaWEgbGEgdHUgZG8gDQp0cm9uZyBraHVvbiBraG8gcGhhcCBsdWF0IG51b2MgZG8sIG1hIHBo YXAgbHVhdCBjdWEgbnVvYyBkbyBsYSB5IGNoaSwgbmd1eWVuIHZvbmcgY3VhIA0KZGFuIHRvYyBk by4gS2hvbmcgdGhlIGxheSBsdWF0IHBoYXAgbnVvYyBuYXkgc28gc2FuaCB2b2kgbnVvYyBraGFj LiBNb2kgc3Ugc28gc2FuaCBkZXUgDQpsYSBraGFwIGtoaWVuZywgZGV1IGxhIGtob25nIGJpZW4g Y2h1bmcuIiAoMjcpDQoNCkJlbmggaG9hbmcgdHVvbmcgbmh1IG5ndW9pIHR1IG1vdCBoYW5oIHRp bmgga2hhYyBjdWEgTmd1eWVuIFRhbiBEdW5nIGNvbiBib2MgbG8gcmF0IA0Kcm8ga2hpIHR1eWVu IGJvOiAiTHVhdCBiYW8gY2hpIGN1YSBWTiBsYSBsdWF0IGJhbyBjaGkgcmF0IGNvaSBtby4gTmhp ZXUgbmhhIGxhbmggZGFvIGN1YSANCmNhYyBudW9jIGdhcCB0b2kgY3VuZyBkZXUgbm9pIHZvaSB0 b2kgbGEgVk4gY28gbHVhdCBiYW8gY2hpIHJhdCB0aG9uZyB0aG9hbmcgbWEgbmdheSBudW9jIGhv IGN1bmcga2hvbmcgY28hIiAoMjgpDQoNClZvaSBuaHVuZyB0dXllbiBibyBuaHUgdGhlIE5ndXll biBUYW4gRHVuZyBkYSB0dSBwaHUgbmhhbiB0cmluaCBkbywgbG9uZyB0dSB0cm9uZyBjdWEgDQpt aW5oLCB0dSBsYW0gbWF0IHV5IHRpbiBkb2kgdm9pIG5oYW4gZGFuIFZOIHZhIGxhbSBtYXQgdGhl IGRpZW4gY3VhIFZOIHRydW9jIGR1IGx1YW4gDQpxdW9jIHRlLiBNb3Qgbmd1b2kgZGFuZyB0dSBs YW0gbWF0IG5oYW4gY2FjaCwgdHUgbGFtIG1hdCB1eSB0aW4gdmEgbGFpIGtob25nIGR1b2MgdGlu IA0KbmhpZW0gdHJvbmcgQkNUIHRoaSBsYW0gc2FvIGNvIGR1IHV5IHF1eWVuIGRlIGdpYWkgcXV5 ZXQgdGUgbmFuIGxhbSBwaGF0IGRhbmcgYm9jIHBoYSANCnRoZW8gdG9jIGRvIHBoaSBtYSBuaHUg aGllbiBuYXkgbyBWTj8NCihUUy4gQXUgRHVvbmcgVGhlICkNCg0KR2hpIGNodToNCigxKS4gQm8g Q2hpbmggdHJpIGtldCBsdWFuIHZlIHRpbmggaGluaCBsYW0gcGhhdCAoQkNUKSwgVmlldG5hbW5l dCAoVk5OKSA0LjQsIENvbmcgc2FuIA0KKENTKSBkaWVuIHR1IDUuNA0KKDIpLiBOZ3V5ZW4gVGFu IER1bmcgIlRodSB0dW9uZyBndWkgdGhvbmcgZGllcCB2ZSBnaWFpIHF1eWV0IGtobyBraGFuLCBi YW8gZGFtIGtpbmggDQp0ZSB4YSBob2kgcGhhdCB0cmllbiBiZW4gdnVuZyIsIHRyb25nIENoaW5o IHBodSAoQ1ApIGRpZW4gdHUgMzAuMyANCigzKS4gTmd1eWVuIFZhbiBQaHUsIGRpIHRpbSBzdSBu aGF0IHF1YW4sIFRob2kgYmFvIEtpbmggdGUgU2FpIGdvbiAoVEJLVFNHKSBzbyANCjE2LDEwLjQN Cig0KS4gQkNULCB0dW9uZyB0dQ0KKDUpLCAoNiksICg3LCAoOCk6IG5odSB0cmVuDQooOSAuIENQ IDUuMw0KKDEwKS4gTmd1eWVuIFRhbiBEdW5nLCB0dW9uZyB0dQ0KKDExKS4gVk5OIDEyLjExLjA3 DQooMTIpLiBWTk4gMy40DQooMTMpLiBOZ3V5ZW4gVGFuIER1bmcsIFZOIHNlIGR1eSB0cmkgdG9j IGRvIHRhbmcgdHJ1b25nIGtpbmggdGUgOC05JSBtb2kgbmFtLCBDUCA2LjM7IA0KVHVvaSB0cmUg KFRUKTUuMw0KKDE0KSwgKDE1KS4gQXUgRHVvbmcgVGhlLCBDaGkgdGhpIDMxOSBjdWEgVFQgY2hv bmcgbGFtIHBoYXQ6ICJCaW5oIHRpbmgsIHF1eWV0IGxpZXQgDQp0cm9uZyBjaGkgZGFvIiwgaGF5 IGhvdCBob2FuZywgbHVuZyB0dW5nIHZhIGNob25nIGRvaSBsYW4gbmhhdSAhIFRyb25nIHd3dy5k Y3B0Lm9yZyANCnBoYW4gVGhvaSBzdQ0KKDE2KS4gQ1AgMjguMzsgVk5OIDI4LjMNCigxNykuIFZp ZXRuYW1leHByZXNzLCAyLjQNCigxOCkgS2llbSBzb2F0IGRhdSB0dSBjdWEgY2FjICJvbmcgbG9u IiwgVFQgMS40LiBIb25nIFBodWMsIG5vaSBjYW5oIGhlIFRvbmcgQ29uZyB0aSwgDQpUQktUU0cg c28gMTUsIDMuNDsgVk5OIDEtMi40DQooMTkpLlRUIDIuNDsgU2FpIGdvbiBnaWFpIHBob25nIDcu NDtWTk4gNy04LjQNCigyMCkuIFRoYW5oIG5pZW4gMi40DQooMjEpLiBUaWVuIHBob25nIDIuNCAN CigyMikuIFRUIDUuMzsgQ29uZ3MgYW4gNi4zDQooMjMpLiBVTkRQIGtodXllbiBuZ2hpLCBOZ3Vv aSBsYW8gZG9uZyA0LjQNCigyNCkuIFRUIDEuNA0KKDI1KS4gVk4gZXhwcmVzcyAyLjQNCigyNiku IEtpIGdpYSBIdW1waHJleSBIYXdzbGV5IEJCQyBwaG9uZyB2YW4gTmd1eWVuIFRhbiBEdW5nIG5n YXkgNS4zIHRyb25nIGNodXllbiB0aGFtIEFuaCBxdW9jLg0KKDI3KS4gQkJDLCB0dW9uZyB0dQ0K KDI4IC4gTmh1IHRyZW4NCg0KaHR0cDovL3d3dy50YXBjaGlrZXRvYW4uY29tL25nYW4taGFuZy10 YWktY2hpbmgvdGhpLXRydW9uZy10YWktY2hpbmgvdGFwLWRvYW4tdGhhbmgtbGFwLW5nYW4taGFu Zy1jaGluaC1zYWNoLWtoby12YW4uaHRtbCBUaHUgTG9hbiAoVGFwIGNoaSBOZ2hpZW4gY3V1IEtI S1QpIDI3LzEyLzIwMDgNCg0KVGh1IHR1b25nOiBUYXAgZG9hbiB0aGFuaCBsYXAgbmdhbiBoYW5n IC0gY2hpbmggc2FjaCBraG8gdmFuIGR1bmcgDQoNCk5hbSAyMDA3LCBraGkgaG9hdCBkb25nIGRh dSB0dSB0YWkgY2hpbmgsIG5nYW4gaGFuZyBkYW5nIGxhICJjb24gZ2EgZGUgdHJ1bmcgdmFuZyIs IA0KbmhpZXUgdGFwIGRvYW4gdmEgdG9uZyBjb25nIHR5IGRhIGRlIGRvbiB4aW4gZ29wIHZvbiB2 YSB0aGFuaCBsYXAgbmdhbiBoYW5nLiBOZ2F5IGxhcCANCnR1YywgZ2lvaSBjaHV5ZW4gZ2lhIHRy b25nIHZhIG5nb2FpIG51b2MgZGEgbWFuaCBtZSBjaGkgdHJpY2ggeHUgaHVvbmcgbmF5IHZhIGNh bmggYmFvIA0KY2FjIHJ1aSBybyBjbyB0aGUgZ2FwIHBoYWkga2hpIGNhYyB0YXAgZG9hbiBuaGEg bnVvYyBkYXUgdHUgdmFvIGxpbmggdnVjIGNvIHRpbmggY2hhdCBkYXUgDQpjbyBjYW8gbmh1IHRh aSBjaGluaCwgY2h1bmcga2hvYW4sIGJhdCBkb25nIHNhbi4uLiANCg0KVHJvbmcga2hpIHBoYW4g dGFuIG5ndW9uIGx1YyB2YW8gY2FjIGxpbmggdnVjIGtob25nIGNodXllbiwgY2FjIHRhcCBkb2Fu IGRhIGJvIHF1YSB2YW4gDQpkZSBuYW5nIGx1YyB2YSBsb2kgdGhlIHNvIHNhbmguIExpZXUgY28g dGhlIHRpbiByYW5nIG1vdCBjb25nIHR5IGRhdSBraGksIHZvbiBkdW9jIGh1b25nIA0KdmkgdGhl IGRvYyBxdXllbiwgY28gZHUgbmFuZyBsdWMgZGUgZGlldSBoYW5oIG5nYW4gaGFuZywgY3VuZyBj YXAgZGljaCB2dSBiYW8gaGllbSwgDQpwaGFuIHBob2kgZGllbiB0aG9haSBkaSBkb25nLCB4YXkg Y2FvIG9jIGNobyB0aHVlPyBWaWVjIGRhIGRhbmcgaG9hIHRoYWkgcXVhIG5odSBoaWVuIA0KbmF5 IHNlIGxhbSBwaGFuIHRhbiBuZ3VvbiBsdWMgdmF0IGNoYXQgdmEgcXVhbiB0cmkgY3VhIGNhYyB0 YXAgZG9hbiByYSBraG9pIGhvYXQgZG9uZyANCm5vbmcgY290LiANCg0KTmdheSBjYSBraGkgY2Fj IHRhcCBkb2FuIGNodW5nIG1pbmggZHVvYyByYW5nIGJhbiB0aGFuIGhvIGR1IG5hbmcgbHVjLCBk dSBraW5oIA0KbmdoaWVtLCBkdSB2b24gZGUgZGlldSBoYW5oIG5nYW4gaGFuZyB0aGkgdmFuIGNh biBjbyBoZSB0aG9uZyBkaWV1IHRpZXQsIGdpYW0gc2F0IHZhIA0KY3VvbmcgY2hlIGhpZXUgcXVh IGhvbi4gDQoNClRyb25nIHRob2kgZ2lhbiBxdWEsIE5nYW4gaGFuZyBOaGEgbnVvYyBkYSBraG9u ZyBraWVtIHNvYXQgY2hhdCBjaGUgdmEgZGUgY2hvIG5oaWV1IA0KbmdhbiBoYW5nIG5hbSBnaXUg cXVhIGl0IGNhYyB0YWkgc2FuIGNvIHRodSBuaGFwIGNvIGRpbmguIERvIHZheSwgY2FjIG5nYW4g aGFuZyBuYXkgcGh1IA0KdGh1b2MgbmhpZXUgdmFvIHRoaSB0cnVvbmcgYmF0IGRvbmcgc2FuIHZh IGNodW5nIGtob2FuLiBLZXQgcXVhIGxhIGtoaSB0aGkgdHJ1b25nIGNvIGJpZW4gDQpkb25nLCB2 YSBjaGluaCBzYWNoIHRoYXkgZG9pLCBjYWMgbmdhbiBoYW5nIGxhbSB2YW8gdGluaCBjYW5oIGto byBraGFuIHZlIHRoYW5oIGtob2FuLiANClZpZWMgdGljaCBsdXkgcXVhIG5oaWV1IHRhaSBzYW4g Y28gZG8gcnVpIHJvIGNhbyBkYXQgdG9hbiBibyBoZSB0aG9uZyB0cnVvYyBuaHVuZyBydWkgcm8g dG8gbG9uIG5oYXQuIA0KDQpNYXQga2hhYywgY2FjIG5nYW4gaGFuZyB0aHVvYyB0YXAgZG9hbiBy YXQgY28gdGhlIHNlIHBoYW4gYm8gdGluIGR1bmcgY2hvIGNhYyB0aGFuaCB2aWVuIA0KY3VhIHRh cCBkb2FuIGJhdCBrZSBydWkgcm8gY3VhIGtob2FuIHZheSBsYSB0aGUgbmFvLiBDaHVhIGhldCwg bmdheSBjYSBraGkga2llbSBzb2F0IGR1b2MgDQpjYWMga2hvYW4gdmF5IGN1YSB0aGFuaCB2aWVu IHRhcCBkb2FuLCBjaHVuZyB0YSBjdW5nIGtobyBraWVtIHNvYXQgZHVvYyBjYWMga2hvYW4gdGlu IA0KZHVuZyB1dSBkYWkgY2hvIGNhYyBuaGEgY3VuZyBjYXAgdmEga2hhY2ggaGFuZyBjdWEgdGFw IGRvYW4uIFRhcCBkb2FuIGhvYW4gdG9hbiBjbyB0aGUgDQp0YWMgZG9uZyBkZSBjbyBkdW9jIGNh YyBraG9hbiB0aW4gZHVuZyB1dSBkYWkgY2hvIGhlIHRob25nIGtob25nIGxvIGN1YSBiYW4gdGhh bi4gDQoNClRydW9jIGNhYyBiYXQgb24gY3VhIGtpbmggdGUgdmkgbW8sIGNoaW5oIHBodSBkYSBk dWEgcmEgY2hpbmggc2FjaCBjYW0gY2FjIHRhcCBkb2FuIHZhIA0KdG9uZyBjb25nIHR5IG5heSBk YXUgdHUgcXVhIDMwJSB2b24gdmFvIGNhYyBob2F0IGRvbmcga2luaCBkb2FuaCBraG9uZyBub25n IGNvdC4gVHV5IA0KbmhpZW4sIHJhdCBraG8gdmFuIGR1bmcgcXVpIGRpbmggbmF5IHZhbyB0aHVj IHRlLiAgQ2hhbmcgaGFuLCBuZXUgbW90IGNvbmcgdHkgZGF1IGtoaSANCnRoYW5oIGxhcCBjb25n IHR5IGNvbiBkZSB4YXkga2hvIGNodWEgZGF1IHRoaSBkbyBjbyBkdW9jIGNvaSBsYSBkYXUgdHUg dmFvIGhvYXQgZG9uZyANCmtpbmggZG9hbmgga2hvbmcgbm9uZyBjb3Q/IA0KDQpUcm9uZyBraGkg ZG8sIGNhYyB0YXAgZG9hbiB2YSB0b25nIGNvbmcgdHkgdGllcCB0dWMgdHJhbmggdGh1IG1vIHJv bmcgaG9hdCBkb25nIHJhIGNhYyANCmxpbmggdnVjIGNvIHRpbmggZGF1IGNvIHZhIHJ1aSBybyBj YW8gbmh1IHRhaSBjaGluaCwgbmdhbiBoYW5nLCBiYXQgZG9uZyBzYW4gdHJ1b2Mga2hpIA0KY2Fu aCBjdWEgYmkgY2hpbmggcGh1IGtoZXAgbGFpLiBIYW4gbXVjIDMwJSBuYXkgY3VuZyBraG9uZyBo ZSBkYSBkb25nIGdpIHRvaSBuaHVuZyANCmhvYXQgZG9uZyBtYSBjYWMgdGFwIGRvYW4gdmEgdG9u ZyBjb25nIHR5IG5oYSBudW9jIGRhIHRodWMgaGllbiB0dSB0cnVvYy4gDQoNClRoYW5nIDUgdnVh IHF1YSwgbmhvbSBjYWMgbmhhIG5naGllbiBjdXUgY3VhIENodW9uZyB0cmluaCBWaWV0IE5hbSB0 YWkgdHJ1b25nIHF1YW4gbGkgDQpOaGEgbnVvYyBIYXJ3YXJkIEtlbm5lZHkgKE15KSBkYSBraHV5 ZW4gY2FvIFZpZXQgTmFtIGtob25nIG5lbiBjYXAgcGhlcCB0aGFuaCANCmxhcCBtb2kgbmdhbiBo YW5nIG5vaSBkaWEgdHJvbmcgMTIgdGhhbmcuIFZpZWMgbmF5IG5oYW0gbGFtIGdpYW0gdGFuZyB0 cnVvbmcgdGluIGR1bmcgDQpkZSBsYW0gY28gc28gY2hvIGdpYW0gbGFtIHBoYXQsIGdpdXAgb24g ZGluaCBoZSB0aG9uZyBuZ2FuIGhhbmcsIGNodWFuIGJpIGNobyB2aWVjIHNhcCANCm5oYXAgdmEg bXVhIGxhaSBjYWMgbmdhbiBoYW5nIHlldSBrZW0sIGdpYW0gZ2FuaCBuYW5nIGRhbmcgcXVhIHRh aSBjaG8gaGUgdGhvbmcgZ2lhbSANCnNhdCBuZ2FuIGhhbmcuIERvbmcgdGhvaSwgdmUgbGF1IGRh aSwgdGFuZyBjdW9uZyBoZSB0aG9uZyBnaWFtIHNhdCB2YSBiYW8gY2FvIGN1YSBoZSANCnRob25n IG5nYW4gaGFuZyBkZSBjaGFtIGR1dCBuaHVuZyB0aW4gZG9uIHRob2kgdmUgdGluaCB0cmFuZyBw aGEgc2FuIGN1YSBtb3Qgc28gbmdhbiANCmhhbmcuIERlIGNodWFuIGJpIGNobyBOZ2FuIGhhbmcg TmhhIG51b2MgdHJvbmcgdHJ1b25nIGhvcCBwaGFpIGNhbiB0aGllcCB2YSBjdXUgdHJvIA0KY2Fj IG5nYW4gaGFuZyB0aGF0IGJhaSwgY2hpbmggcGh1IGNhbiB4YXkgZHVuZyBjYWMgY28gc28gdmEg a2UgaG9hY2ggY2hvIGhvYXQgZG9uZyBtdWEgDQpsYWkgdmEgc2FwIG5oYXAgZ2l1YSBjYWMgbmdh biBoYW5nLiBEYWMgYmlldCBsYSB5ZXUgY2F1IGNhIHRhcCBkb2FuIHR1IGJvIGNhYyBob2F0IGRv bmcgDQpkYXUgdHUgdmFvIG5nYW4gaGFuZyB2YSBjb25nIHR5IHRhaSBjaGluaC4gDQoNCkJhdCBj aGFwIG5odW5nIGtodXllbiBjYW8gY3VhIGdpb2kgY2h1eWVuIGdpYSwgdGluaCBoaW5oIGRhdSB0 dSB2YW8gbmdhbmggbmdhbiBoYW5nIA0KZHVvbmcgbmh1IHZhbiBjaHVhIG5ndW5nIGxhaS4gR2Fu IGRheSBuaGF0LCBiYW8gY2FvIHRpbmggaGluaCBob2F0IGRvbmcgY3VhIG5nYW5oIA0KbmdhbiBo YW5nIHRyb25nIHRoYW5nIDcgY3VhIE5nYW4gaGFuZyBOaGEgbnVvYyBuZXUgcm8sIHRpbmggZGVu IGN1b2kgdGhhbmcgNywgTmdhbiANCmhhbmcgbmhhIG51b2MgZGEgY2hhcCB0aHVhbiBuZ3V5ZW4g dGFjIHRoYW5oIGxhcCBjaG8gMTAgbmdhbiBoYW5nIFRNQ1AgY28gc3UgdGhhbSANCmdpYSBnb3Ag dm9uIGN1YSBjYWMgVGFwIGRvYW4sIFRvbmcgY29uZyB0eSBOaGEgbnVvYyAodHJvbmcgZG8gZGEg Y2FwIGdpYXkgcGhlcCBjaGluaCANCnRodWMgZGkgdmFvIGhvYXQgZG9uZyBjaG8gMiBuZ2FuIGhh bmcpLiBOZ2FuIGhhbmcgTmhhIG51b2MgY3VuZyBkYSBjaGFwIHRodWFuIHZlIA0Kbmd1eWVuIHRh YyB0aGFuaCBsYXAgNCB0cm9uZyBzbyA1IENvbmcgdHkgdGFpIGNoaW5oIGNvIHZvbiBnb3AgY3Vh IGNhYyBUYXAgZG9hbiwgVG9uZyANCmNvbmcgdHkgTmhhIG51b2MuDQoNCkRlIGJpbmggb24ga2lu aCB0ZSB2aSBtbywgdGllcCB0dWMgZHV5IHRyaSB0aGFuaCBxdWEgcGhhdCB0cmllbiBraW5oIHRl LCBjbyBsZSBjYWMgY28gcXVhbiANCnF1YW4gbGkgY2FuIGNvIGJpZW4gcGhhcCBkb25nIGJvIHZh IGhpZXUgcXVhIGhvbiBudWEuIA0KDQpodHRwOi8vd3d3LnRhcGNoaWtldG9hbi5jb20vbmdhbi1o YW5nLXRhaS1jaGluaC90aGktdHJ1b25nLXRhaS1jaGluaC90aGktdHJ1b25nLXRhaS1jaGluaC12 aWV0LW5hbS10aHVjLXRyYW5nLXZhLW5odW5nLWRpbmgtaHVvbmctcGhhdC0yLmh0bWwgMTkvMDEv MjAxMA0KDQpUaGkgdHJ1b25nIHRhaSBjaGluaCBWaWV0IE5hbTogVGh1YyB0cmFuZyB2YSBuaHVu ZyBkaW5oIGh1b25nIHBoYXQgdHJpZW4gKHRyaWNoKQ0KDQpWKSBNb3Qgc28gZGFuaCBnaWEgdmUg dGh1YyB0cmFuZyBwaGF0IHRyaWVuIHRoaSB0cnVvbmcgdGFpIGNoaW5oIG8gbnVvYyB0YSANCg0K VmUgdGhpIHRydW9uZyB2b24gbmdhbiBoYW4gaGF5IGNvbiBnb2kgbGEgdGhpIHRydW9uZyB0aWVu IHRlLiBOaGluIGNodW5nIHRoaSB0cnVvbmcgbmF5IA0KY2h1YSBwaGF0IHRyaWVuIHZhIE5nYW4g aGFuZyBOaGEgbnVvYyBOSFRXLCBjaHVhIHRodWMgc3UgZG9uZyB2YWkgdHJvIGNhbiB0aGllcCBj byANCmhpZXUgcXVhIHZhbyB0aGkgdHJ1b25nIG5heS4gQ2FjIGxvYWkgbGFpIHN1YXQgY3VhIE5I VFc6IGxhaSBzdWF0IGNvIGJhbiwgbGFpIHN1YXQgdGFpIGNhcCANCnZvbiwgbGFpIHN1YXQgY2hp ZXQga2hhdSwgbGFpIHN1YXQgbmdoaWVwIHZ1IHRoaSB0cnVvbmcgbW8sIGxhaSBzdWF0IGRhdSB0 aGF1IHRpbiBwaGlldSBraG8gDQpiYWMgbmhhIG51b2MgY28gdGFjIGRvbmcgcm8gbmV0IGRlbiB0 aGkgdHJ1b25nLiBDYWMgY29uZyBjdSBkaWV1IGhhbmggY2hpbmggc2FjaCB0aWVuIHRlLCANCmRh YyBiaWV0IGxhIGNvbmcgY3UgZHUgdHJ1IGJhdCBidW9jLi4uIHRoaWV1IGxpbmggaG9hdC4gQ2Fj IE5IVE0gdmEgVG8gY2h1YyB0aW4gZHVuZyANCmNhbmggdHJhbmggdm9pIG5oYXUgdGFuZyBsYWkg c3VhdCBodXkgZG9uZyB2b24gbW90IGNhY2ggbW90IGNoaWV1LCB0YW8gbmd1eSBjbyB0aWVtIGFu IA0KcnVpIHJvIGNobyBjaGluaCBjYWMgTkhUTS4gDQoNClZlIHRoaSB0cnVvbmcgY2h1bmcga2hv YW4uIENvIHRoZSBraGFuZyBkaW5oIHJhbmcsIHRyb25nIHRpZW4gdHJpbmggcGhhdCB0cmllbiBU aGkgdHJ1b25nIA0KY2h1bmcga2hvYW4gVmlldCBOYW0sIHRpZW0gbmFuZyBjdWEgdmllYyB0aGFt IGdpYSBjdWEgY2FjIE5IVE0gbGEgcmF0IGxvbi4gVmllYyBjYWMgDQpOSFRNIGNvIHBoYW4gbmll bSB5ZXQgY28gcGhpZXUgdHJlbiBUcnVuZyB0YW0gZ2lhbyBkaWNoIGNodW5nIGtob2FuLCBjYWMg TkhUTSANCk5OIGNvIHBoYW4gaG9hIHRodWMgaGllbiBwaGF0IGhhbmggY28gcGhpZXUgbGFuIGRh dSB0cmVuIFRydW5nIHRhbSwgY3VuZyBuaHUgdG9pIGRheSBzZSANCmNvIHRoZW0gbW90IHNvIENv bmcgdHkga2luaCBkb2FuaCBjaHVuZyBraG9hbiBjdWEgY2FjIE5IVE0gZGkgdmFvIGhvYXQgZG9u Zy4uLiANCnNlIHRhbyBkYSB0aHVjIGRheSB0aGkgdHJ1b25nIGNodW5nIGtob2FuIFZpZXQgTmFt IHBoYXQgdHJpZW4gbWFuaCBob24gbnVhLiANCg0KU29uZyBjaG8gZGVuIHRob2kgZGllbSBuYXks IG1vaSBjaGkgY28gZ2FuIDEwMCBjb25nIHR5IGNvIHBoYW4gbmllbSB5ZXQgY28gcGhpZXUgdHJl biANClRydW5nIHRhbSBnaWFvIGRpY2ggY2h1bmcga2hvYW4gVGhhbmggcGhvIEhvIENoaSBNaW5o IGxhIHF1YSBpdCwgdGFvIHJhIHN1IG5naGVvIG5hbiANCmhhbmcgaG9hIHRyZW4gdGhpIHRydW9u ZyBjaHVuZyBraG9hbi4gQ28gcGhpZXUgY3VhIGNhYyBOSFRNIGNodWEgZHVvYyBuaWVtIHlldCB2 YSANCmdpYW8gZGljaCBjdW5nIHBoYW4gbmFvIGhhbiBjaGUgdGluaCBzb2kgZG9uZyBjdWEgdGhp IHRydW9uZy4gVGluaCB0aGFuaCBraG9hbiBjdWEgdGhpIA0KdHJ1b25nIGNodWEgY2FvLiBUaG9u ZyB0aW4gY2h1YSB0aGF0IHN1IG1pbmggYmFjaC4gDQoNClZJKSBOZ3V5ZW4gbmhhbiBjdWEgdGlu aCB0cmFuZyB0cmVuOiANCg0KTmdhbiBoYW5nIFRXIGNodWEgdGh1YyBzdSBtYW5oLCBuYW5nIGx1 YyBkaWV1IGhhbmggY2hpbmggc2FjaCB0aWVuIHRlIHZhIHZhbiBoYW5oIA0KbmdoaWVwIHZ1IE5I VFcgY29uIGhhbiBjaGUuIEhvYXQgZG9uZyBkaWNoIHZ1IGN1YSBjYWMgTkhUTSB2YSBUQ1REIGNo dWEgcGhhdCANCnRyaWVuLiBUaWVuIHRyaW5oIGNvIGNhdSBsYWkgY2FjIE5IVE0gY2h1YSBkYXQg ZHVvYyBjYWMga2V0IHF1YSBuaHUgZHUga2llbiwgZGFjIGJpZXQgbGEgDQp4dSBseSBubyB4YXUg ZGFuZyBjbyB4dSBodW9uZyBnaWEgdGFuZyB0cm8gbGFpLiBWaWVjIHRhbmcgdm9uIGRpZXUgbGUg ZGUgZGFtIGJhbyB0eSBsZSBhbiANCnRvYW4gdGhlbyB0aG9uZyBsZSBxdW9jIHRlLiANCg0KVGll biB0cmluaCBjbyBwaGFuIGhvYSBETk5OIG5vaSBjaHVuZywgY28gcGhhbiBob2EgTkhUTSBOaGEg bnVvYyBub2kgcmllbmcgY29uIHJhdCANCmNoYW0sIGRheSBjdW5nIGxhIGx1YyBjYW4gY2hvIHN1 IHBoYXQgdHJpZW4gdGhpIHRydW9uZyBjaHVuZyBraG9hbiBWaWV0IE5hbS4gQmVuIGNhbmggDQpk bywgdmllYyBIb2kgZG9uZyBxdWFuIHRyaSBjYWMgTkhUTSBjbyBwaGFuIGNvIHR1IHR1b25nIGNo YW4gY2h1LCBjaGFtIGR1YSBjbyBwaGlldSANCmN1YSBjYWMgTkhUTSBjbyBwaGFuIGN1YSBtaW5o IG5pZW0geWV0IHRyZW4gVHJ1bmcgdGFtIGdpYW8gZGljaCBjaHVuZyBraG9hbiwgY3VuZyANCmxh bSBjaGFtIHRpZW4gdHJpbmggbm9pIHRyZW4uIA0KDQpodHRwOi8vd3d3LmJhb2hpZW10b2FuY2F1 LnZuL25ld3MvcHJpbnRwcmV2aWV3LnBocD9tb2Q9bmV3cyZuZXdpZD1uZXdzMDkwMjIwMTAxNDM3 MDM2OTIyIFRodSBCYSwgMDkvMDIvMjAxMCwgMTM6MzcgDQoNClRodSB0dW9uZzogQ28gcGhhbiBo b2EgLSBiYXQga2hhIHRoaSB0cnVvYyBoYW4gY2hvdCANCg0KVHUgbmF5IGNobyBkZW4gNy8yMDEw LCB2b2kga2hvYW5nIDEuNTAwIGRvYW5oIG5naGllcCB0cm9uZyBkbywgY28gdG9pIDggdGFwIGRv YW4sIDctODAgDQp0b25nIGNvbmcgdHkgbmhhIG51b2MgdGhpIHZpZWMgQ1BIIGtobyBjbyB0aGUg aG9hbiB0aGFuaC4NCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wMi0wMS1jby1w aGFuLWhvYS1iYXQta2hhLXRoaS10cnVvYy1oYW4tY2hvdCBOZ3V5ZW4gQmluaCAwOS8wMi8yMDEw IDA3OjAwIEdNVCs3DQoNCktldCBxdWEgY3VhIGhhbmcgbG9hdCBjdW9jIHRoYW5oIHRyYSwga2ll bSB0b2FuIGdhbiBkYXkgY2hvIHRoYXksIGhlIHRob25nIHF1YW4gbHksIGdpYW0gDQpzYXQgcXVh IHRyaW5oIGNvIHBoYW4gaG9hIGNvbiBsb25nIGxlbywgcXV5IHRyaW5oIHRoYW0gZGluaCBnaWEg Y29uIGNodWEgY2hhdCBjaGUuLi4sIGRhIGNvIA0KaGFuZyBuZ2FuIHR5IGRvbmcgdGllbiB2b24s IHRhaSBzYW4gbmhhIG51b2MgYmkgdGhhdCB0aG9hdCwgYmF5IGhvaQ0KDQpEYXQgZGFpIGxhIG1v dCBuZ3VvbiB0YWkgc2FuIGxvbiBuaGF0IG1hIGNhYyBjYWMgZG9hbmggbmdoaWVwIGNvbmcgbmFt IGdpdSB2YSB0cm9uZyBxdWEgdHJpbmggQ1BILCBOZ3VvbiBsdWMgbmF5IGRhIGJpIG1hdCBtYXQs IGJvYyBob2kgdGhlbyBkdSBjYWNoOiBkb2FuaCBuZ2hpZXAga2hvbmcgDQp0aW5oIGhvYWMgdGlu aCB0aGlldSBnaWEgdHJpIGRhdCwgY2hpIGxhbSB0aHUgdHVjIHRodWUgbW90IHBoYW4gZGllbiB0 aWNoIGRhbmcgc3UgZHVuZyAodGh1YyANCmNoYXQgbGEgY2hpZW0gZHVuZyBkYXQsIHRyb24gdGh1 ZSksIHN1IGR1bmcgbGFuZyBwaGksIHR1eSB0aWVuIGNobyB0aHVlLCBtdW9uLCB2LnYuIHRoYW0g DQpjaGkgY29uIGNodXllbiBuaHVvbmcgdHJhaSBwaGVwIGNobyBjYSBuaGFuLiBOaHUgbyBDb25n IHR5IFhheSBkdW5nIHZhIFBoYXQgdHJpZW4gZGF1IA0KdHUgSGFpIFBob25nOiBjb25nIHR5IG5h eSBraG9uZyB0aW5oIHZhbyBnaWEgdHJpIGRvYW5oIG5naGllcCBkaWVuIHRpY2ggMTEzLjcxMyBt MiBkYXQgDQp4YXkgZHVuZyBuaGEgZGUgYmFuIHZhIDcuOTc2IG0yIGRhdCBraGFjIGRlIHhheSBu aGEgdGFpIGRpbmggY3UuDQoNCkRpZW4gaGluaCBuaGF0IGxhIFRvbmcgY29uZyB0eSBjbyBwaGFu IFh1YXQgbmhhcCBraGF1IFhheSBkdW5nIGRhIGtob25nIHhhYyBkaW5oIHZhbyANCmdpYSB0cmkg ZG9hbmggbmdoaWVwIGdpYSB0cmkgcXV5ZW4gc3UgZHVuZyBkYXQgZHVvYyBnaWFvIGRlIHRodWMg aGllbiBkdSBhbiAoZGllbiB0aWNoIGRhdCANCm5heSBnaWEgdHJpIDI3MCB0eSBkb25nKS4NCg0K MTMgZG9hbmggbmdoaWVwIHRodW9jIFRhcCBkb2FuIEJ1dSBjaGluaCBWaWVuIHRob25nIGtob25n IGt5IGhvcCBkb25nIHRodWUgNTQuMDk2IG0yIGRhdCBkYW5nIHN1IGR1bmcgY3VhIG5oYSBudW9j Li4uDQoNCmh0dHA6Ly9uZ3VvaS12aWV0LmNvbS9hYnNvbHV0ZW5tL2FubXZpZXdlci5hc3A/YT05 OTUwMSZ6PTcgTk5EIFR1ZXNkYXksIEF1Z3VzdCAxMSwgMjAwOQ0KDQpOZ3V5ZW4gVGFuIER1bmcg Yml0IG1pZW5nIGNhIG51b2MNCiANCkNhaSBvYyBoYWkgaHVvYyBjdWEgb25nIE5ndXllbiBUYW4g RHVuZyBkYSBwaGF0IHRyaWVuIGxlbiBoYW5nICJjYW8gY2FwIiBraGkgb25nIGt5IG1vdCBjYWkg cXV5ZXQgZGluaCBzbyA5NywgYXAgZHVuZyBrZSB0dSBuZ2F5IDE1IFRoYW5nIENoaW4sIDIwMDku IE5vaSBkdW5nIHF1eWV0IGRpbmggDQpuYXkgbmhhbSBsYXAgaGFuZyByYW8gY2FuIG5nYW4gY2Ft IGtob25nIGNobyBuZ3VvaSBkYW4gdHUgZG8gInBoYW4gYmllbi4iIERhYyBiaWV0IGxhIG5odW5n IG5ndW9pIHRyb25nIGNhYyB0byBjaHVjIGtob2EgaG9jIHZhIGNvbmcgbmdoZSwgaG8ga2hvbmcg ZHVvYyBuaGFuIGRhbmggdG8gY2h1YyANCmN1YSBtaW5oIG1hIGNvbmcgYm8gY2FjIHkga2llbiAi cGhhbiBiaWVuIiBkb2kgdm9pIG5odW5nIGR1b25nIGxvaSwgY2h1IHRydW9uZywgY2hpbmggc2Fj aCBjdWEgZGFuZyB2YSBuaGEgbnVvYyBDb25nIFNhbi4gDQoNClZheSBuZ3VvaSBkYW4gVmlldCBO YW0gbmdoZSBjYWMgZHVvbmcgbG9pLCBjaGluaCBzYWNoIGN1YSBkYW5nIHJvaSBtdW9uICJwaGFu IGJpZW4iIHRoaSBobyBwaGFpIGxhbSBnaSwgY2hvIGR1bmcga2hhdSBoaWV1ICJEYW5nIGxhbmcg bmdoZSBEYW4iPyBUaGVvIHF1eWV0IGRpbmggc28gOTcgdGhpIA0KYWkgbXVvbiAicGhhbiBiaWVu IiBjYWkgZ2kgdGhpIGhheSBkZW0gY2FjIHkga2llbiBkbyBub3AgY2hvIGNhYyBjbyBxdWFuIG5o YSBudW9jISANCg0KRG9jIGJhbiB0aW4gdHJlbiBwaGFpIGJhdCBidW9uIGN1b2kuIA0KDQpWaSB0 aHUgYmF5IGdpbyBjaHVuZyB0YSBkaWNoIGhhaSBjaHUgInBoYW4gYmllbiIgbGEgImRvbmcgZ29w IHkga2llbiwiIHRoaSB0aW5oIGhhaSBodW9jIGN1YSBjYWkgcXV5ZXQgZGluaCA5NyBtYSBOZ3V5 ZW4gVGFuIER1bmcgbW9pIGt5IGNhbmcgcm8gcmV0IGhvbi4gQ2FpIG9uZyB0aHUgdHVvbmcgdHUg eHVuZyBtaW5oIGxhIG5ndW9pIHlldSBzdSB0aGF0IHJhIGxlbmggY2hvIGRhbiByYW5nIGFpIG11 b24gImdvcCB5IGtpZW4gdm9pIG5odW5nIA0KZHVvbmcgbG9pLCBjaHUgdHJ1b25nLCBjaGluaCBz YWNoIGN1YSBkYW5nIHZhIG5oYSBudW9jIiB0aGkgcGhhaSBkdWEgeSBraWVuIGN1YSBobyBjaG8g Y2FjICJjbyBxdWFuIGNvIHRoYW0gcXV5ZW4iIG1hIHRob2kuDQpOaHUgdmF5IHRoaSBnaXVhIGhh aSBuZ3VvaSBkYW4gZGkgbmdvYWkgZHVvbmcsIGtob25nIGFpIGR1b2MgInBoYW4gYmllbiIgdm9p IG5oYXUgYmF0IGN1IGRpZXUgZ2kgdmUgbmh1bmcgZHVvbmcgbG9pLCBjaHUgdHJ1b25nLCBjaGlu aCBzYWNoIGN1YSBkYW5nIHZhIG5oYSBudW9jIGNhISANClRoaSBkdSBjbyBtb3Qgbmd1b2kgZGFu IG5naGUgYmFvIG5naGUgZGFpIGxvYW4gdGluIG1vdCBjb25nIHR5IFRydW5nIFF1b2MgZGFuZyBk dWEgaGFuZyBuZ2FuIGNvbmcgbmhhbiBuZ3VvaSBUcnVuZyBRdW9jIHZhbyBudW9jIHRhIGtoYWkg dGhhYyBibyB4aXQsIHZhIG9uZyB0aHUgdHVvbmcgDQp0dXllbiBibyBjaGluaCBzYWNoIGJvIHhp dCBsYSBkdW9uZyBsb2ksIGNodSB0cnVvbmcgbG9uIGN1YSBkYW5nIHZhIG5oYSBudW9jLCBuZ3Vv aSBkYW4gdGhhYyBtYWMgdmUgbmhhIGhvaSB2bzogIkJvIHhpdCBsYSBjYWkgZ2ksIG1hIHRoYW5n IG5obyBjbyBiaWV0IGtob25nPyIgTGFtIG5odSB2YXkgbGEgDQp2aSBwaGFtIHF1eWV0IGRpbmgg c28gOTchIEJvaSB2aSBtYSB0aGFuZyBuaG8ga2hvbmcgcGhhaSBsYSAiY28gcXVhbiBjbyB0aGFt IHF1eWVuIiBkZSBub2kgY2h1eWVuIGJvIHhpdCwgYm8geGl0IGdpIGhldCEgTWEga2hvbmcgY3Ug Y2h1eWVuIGJvIHhpdCwgYmF0IGN1IGNhaSBnaSBkdW9jICJkdW9uZyANCmxvaSwgY2h1IHRydW9u ZywgY2hpbmggc2FjaCBjdWEgZGFuZyB2YSBuaGEgbnVvYyIgZHVuZyB2YW8gZGV1IGJpIGNhbSBo ZXQhIEtob25nIGR1b2MgZ29wIHkga2llbiBuYW8gdm9pIGFpIGNhLCBuZ29haSB2aWVjIGJhbSBi YW8gdm9pIGRhbmcgdmEgbmhhIG51b2MhIERvIGxhIG11YyB0aWV1IGN1YSBxdXlldCBkaW5oIHNv IDk3ISBOaHVuZyBxdXlldCBkaW5oIDk3IGN1YSBOZ3V5ZW4gVGFuIER1bmcga2hvbmcgbmhhbSB2 YW8gbmh1bmcgDQpuZ3VvaSBkYW4gYmluaCB0aHVvbmcsIG1hIG5oYW0gdmFvIGdpb2kgdHJpIHRo dWMsIHRyb25nIGRvIGNvIGNhYyBuaGEga2hvYSBob2MgdmEga3kgdGh1YXQgZ2lhIG8gdHJvbmcg bnVvYyEgQ2hvIG5lbiB0cm9uZyBxdXlldCBkaW5oIGNvIGNhIG5odW5nIGRvYW4gZGFpIG5vaSBy aWVuZyB2ZSBuaHVuZyBuZ3VvaSBuYXkuIA0KR2FuIGRheSBkYSBjbyBwaG9uZyB0cmFvIGJhbiB0 YW4gdmUgdmllYyBraGFpIHRoYWMgYm8geGl0LiBIYW5nIHZhbiBuZ3VvaSBkYSBnb3AgeSBraWVu IHZvaSBuaGF1LCBkYSB0aGFvIGx1YW4gY29uZyBraGFpIHRyZW4gbWFuZy4gVHJvbmcgZG8gY28g bmh1bmcgbmhhIHZhbiwgbmhhIG5naGllbiBjdXUsIA0KY2FjIGtob2EgaG9jIGdpYSwgdmEgY2Eg bmh1bmcgY3V1IHR1b25nIGxhbmguIExhaSBjbyBtb3QgcGhvbmcgdHJhbyBiYW4gdGFuIHZlIGNo dSBxdXllbiBkYXQgbnVvYyBvIGJpZW4gRG9uZy4gQ2FjIG9uZyBob2EgdGh1b25nLCBjYWMgbmdh aSBsaW5oIG11YywgZ2lhbSBtdWMsIGNhYyBzdSBnaWEgY3VuZyBkZW0gcmEgYmFuIHRhbiB2YSBi YXkgdG8geSBraWVuIGNvbmcga2hhaS4gTmh1bmcgaG9hdCBkb25nIGRvIGRldSBjbyB0aGUgZ29p IGxhICJwaGFuIGJpZW4iIGR1b2MgY2EuDQpCYXkgZ2lvIHF1eWV0IGRpbmggc28gOTcgY2FtIGhl dC4gQWkgbXVvbiAicGhhbiBiaWVuIiB0dSBuYXkgcGhhaSBsYW0gZG9uIG5vcCBjaG8gY2FjICJj byBxdWFuIGNvIHRoYW0gcXV5ZW4iIGN1dSB4ZXQuIENhaSBvbmcgdGh1IHR1b25nIG5heSBtdW9u IGJhdCBtb2kgbmd1b2kgZGFuIGNoaSANCmR1b2MgZGkgdGltIHN1IHRoYXQgdHJvbmcgY2FjICJj byBxdWFuIGNvIHRoYW0gcXV5ZW4uIiBCZW4gbmdvYWkgImNvIHF1YW4gY28gdGhhbSBxdXllbiIg dGhpIGtob25nIGNvIHN1IHRoYXQgbmFvIGNhISBDbyBraGFjIGdpIGJpdCBtb20gYml0IG1pZW5n IGNhIG51b2MsIGtob25nIGNobyBhaSANCm5vaSBoYXkga2hvbmc/IENobyBuZW4sIGRvYyBxdWEg bm9pIGR1bmcgY2FpIHF1eWV0IGRpbmggc28gOTcsIGFpIGN1bmcgcGhhaSBiYXQgY3VvaS4gQ2hp IGNvIG9uZyBOZ3V5ZW4gVGFuIER1bmcgY2hhYyBraG9uZyBjdW9pLCBjaG8gbmVuIG9uZyB0YSBt b2kga3khDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NS8y MDEwMTEwNjE3MTgyNC5hc3B4IE5ob20gUFYgMDYvMTEvMjAxMCAxNzoxOCANCg0KT25nIEN1IEh1 eSBIYSBWdSBiaSBiYXQgZGUgZGlldSB0cmEgdmUgaGFuaCB2aSBjaG9uZyBwaGEgTmhhIG51b2Mg LSB2aWVjIG5hbyByYSB2aWVjIG5heSANCiANCiogQmFjIGRvbiBraWVuIFF1eWV0IGRpbmggY3Vh IFRodSB0dW9uZyAgIA0KKiBPbmcgQ3UgSHV5IEhhIFZ1IGtob25nIHBoYWkgbGEgbHVhdCBzdSAN Cg0KKFROTykgQ2hpZXUgbmF5IDYuMTEsIENvIHF1YW4gQW4gbmluaCBkaWV1IHRyYSwgQm8gQ29u ZyBhbiBkYSB0byBjaHVjIGhvcCAgYmFvIHRob25nIA0KYmFvIHZlIHZ1IGJhdCBnaXUgdGllbiBz aSBsdWF0IEN1IEh1eSBIYSBWdSAoc2luaCBuYW0gMTk1NywgdHJ1IHRhaSAyNCBEaWVuIEJpZW4g UGh1LCANClEuQmEgRGluaCwgSGEgTm9pKSB2YSBjYWMgaGFuaCB2aSB2aSBwaGFtIHBoYXAgbHVh dCBjdWEgY29uZyBkYW4gbmF5LiANCg0KaHR0cDovL3d3dy52aWV0bmV0Y2VudGVyLmNvbS9jb250 ZW50L3ZpZXcvMjY0OTEvNTcvICAgMTIvMDYvMjAwOSAxMToyNg0KDQpMdWF0IHN1IEN1IEh1eSBI YSBWdSBraWVuIFRUIE5ndXllbiBUYW4gRHVuZyByYSB0b2Egdmkga2hhaSB0aGFjIGJhdXhpdGUg DQoNCkhBIE5PSSAtIEx1YXQgc3UgQ3UgSHV5IEhhIFZ1IG8gSGEgTm9pIHZ1YSBub3AgZG9uIGtp ZW4gVGh1IFR1b25nIENTVk4gTmd1eWVuIFRhbiBEdW5nIHJhIHRvYSBhbiBIYSBOb2kgdmkgZGEg dGh1YyBoaWVuIGtlIGhvYWNoIGtoYWkgdGhhYyBiYXV4aXRlIFRheSBOZ3V5ZW4sIG1hIHRoZW8g b25nIEN1IEh1eSBIYSBWdSBsYSAidHJhaSBwaGFwIGx1YXQiLiANCg0KTmV1IGR1b2MgdGh1IGx5 LCBkYXkgc2UgbGEgbW90IHZ1IGtpZW4gaHkgaHV1IHZhIGxhIGxhbiBkYXUgdGllbiBtb3QgY29u ZyBkYW4gZGFtIGR1bmcgcmEga2llbiBuZ3VvaSBkdW5nIGRhdSBjaGluaCBwaHUgbyBtb3QgcXVv YyBnaWEgbWEgcXV5ZW4gY29uZyBkYW4gdGh1b25nIGtob25nIGR1b2MgDQp0b24gdHJvbmcuIEJv aSBkdW5nIHZhbyBvbmcgdGh1IHR1b25nLCBvbmcgY2h1IHRpY2ggbnVvYyBoYXkgdG9uZyBiaSB0 aHUgZGFuZyBDU1ZOIGxhIGR1bmcgdmFvIG1vdCBraG9pIHF1eWVuIGx1YyBuYW0gYmVuIHRyZW4g Y2EgbHVhdCBwaGFwLg0KDQpUcm9uZyBjdW9jIHRyYSBsb2kgcGhvbmcgdmFuIGN1YSBEYWkgUkZJ LCBvbmcgQ3UgSHV5IEhhIFZ1IGNobyBiaWV0LCBvbmcga2llbiBUaHUgVHVvbmcgTmd1eWVuIFRh biBEdW5nIGJvaSBvbmcgRHVuZyBsYSBuZ3VvaSBkYSBreSBiYW4gaGFuaCBxdXlldCBkaW5oIHNv IDE2Ny8yMDA3IA0KUURUVGcgbmdheSAwMSBUaGFuZyBNdW9pIE1vdCwgMjAwNyAtICJQaGUgZHV5 ZXQgcXV5IGhvYWNoLCBwaGFuIHZ1bmcsIHRoYW0gZG8sIGtoYWkgdGhhYyBjaGUgYmllbiwgc3Ug ZHVuZyBxdWFuZyBiYXV4aXRlIGdpYWkgZG9hbiAyMDA3IC0gMjAxNS4iDQoNCk9uZyBWdSBjaG8g cmFuZyBjaGluaCBxdXlldCBkaW5oIG5heSBsYSBjbyBzbyBkZSBuZ3VvaSB0YSB0aWVuIGhhbmgg a2hhaSB0aGFjIGJhdXhpdGUgaGllbiBuYXkgbyB2dW5nIFRheSBOZ3V5ZW4uDQoNCiJQaGFwIGx1 YXQgbyBWaWV0IE5hbSBjaG8gcGhlcCBtb2kgY29uZyBkYW4gY28gcXV5ZW4ga2hvaSBraWVuIGhh bmggY2hpbmggbmd1b2kgbmFvIGRvIGRhIHJhIHZhbiBiYW4gaGFuaCBjaGluaCB0cmFpIHBoYXAg bHVhdCwgcGh1b25nIGhhaSBkZW4gcXV5ZW4gdmEgbG9pIGljaCBob3AgcGhhcCBjdWEgbmd1b2kg ZGFuIHRyb25nIGRvIGNvIGNhIG5oYW4gdG9pLiIgT25nIFZ1IG5vaS4NCg0KVGhlbyBvbmcgVnUs IHZhbiBiYW4gbWEgb25nIE5ndXllbiBUYW4gRHVuZyBiYW4gaGFuaCBkYSB0cmFpIHZvaSB2YW4g YmFuIHBoYXAgbHVhdCBuaHUgc2F1OiAiVGh1IG5oYXQgbGEgdHJhaSBMdWF0IEJhbyB2ZSBNb2kg VHJ1b25nIGxhIGRhIGtob25nIGxhbSBiYW4gYmFvIGNhbyBkYW5oIGdpYSBtb2kgdHJ1b25nIGNo aWVuIGx1b2MgZG9uZyB0aG9pIHZvaSB2aWVjIGxhcCBkdSBhbi4gVGh1IHR1b25nIGNoaW5oIHBo dSBraG9uZyB0aGUgcGhlIA0KZHV5ZXQgcXV5IGhvYWNoIG5heSBuZXUga2hvbmcgY28gYmFvIGNh byBjYW8gZGFuaCBnaWEgbW9pIHRydW9uZyBjaGllbiBsdW9jIGR1b2MgdGhhbSBkaW5oIGRvIEJv IFRhaSBOZ3V5ZW4gdmEgTW9pIFRydW9uZyB0byBjaHVjLiINCg0KT25nIFZ1IGNobyByYW5nIGNo aW5oIHBodSBOZ3V5ZW4gVGFuIER1bmcgZGEgdGh1YSBuaGFuIGRpZXUgbmF5IGNvbmcga2hhaSB0 YWkga3kgaG9wIFF1b2MgSG9pLg0KDQoiVGh1IGhhaSBsYSBxdXlldCBkaW5oIGN1YSBUaHUgVHVv bmcgTmd1eWVuIFRhbiBEdW5nIHRyYWkgbHVhdCBxdW9jIHBob25nIHZhIHRyYWkgbHVhdCBiYW8g dmUgZGkgc2FuIHZhbiBob2EuIg0KDQoiTmhhdCB0aGlldCBwaGFpIGNvIHN1IHRoYW0gZGluaCBj dWEgbmdhbmggdmFuIGhvYSBuaGFtIGRhbSBiYW8gZGkgc2FuIHZhbiBob2EgcGhpIHZhdCB0aGUg bGEgbmVwIHNvbmcsIGxvaSBzb25nIGN1YSBkb25nIGJhbyBjYWMgZGFuIHRvYyBUYXkgTmd1eWVu LCIgb25nIFZ1IG5vaS4NCg0KIkRpZXUgdm8gY3VuZyBreSBjdWMgbGEga2hpIGxhcCBxdXlldCBk aW5oIG5heSBjaGkgY28gZ2hpIGxhIGNhbiBjdSBsdWF0IHRvIGNodWMgY2hpbmggcGh1IG5nYXkg MiB0aGFuZyBIYWkgbmFtIDIwMDEgdmEgY2hpIGNvIHRoZSB0aG9pLCBraG9uZyBjbyBjYW4gY3Ug dmFvIGx1YXQgbmFvIGtoYWMgdmEgZGlldSBuYXkgY28gbmdoaWEgbGEgcXV5ZXQgZGluaCBjdWEg Y2hpbmggcGh1IE5ndXllbiBUYW4gRHVuZyBob2FuIHRvYW4ga2hvbmcgY2FuIGN1IHZhbyBsdWF0 IHF1b2MgcGhvbmcsIGx1YXQgZGkgc2FuIHZhbiBob2EuIg0KDQpPbmcgVnUgY2hvIGJpZXQgdGhl bSwgdmFuIGJhbiBsdWF0IGN1b2kgY3VuZyBtYSBjaGluaCBwaHUgTmd1eWVuIFRhbiBEdW5nIGxh bSB0cmFpIGRvIGxhIEx1YXQgQmFuIEhhbmggQ2FjIFZhbiBCYW4gUXV5IFBoYW0gUGhhcCBMdWF0 OiAiS2hpIGJhbiBoYW5oIHF1eWV0IGRpbmgsIG5oYXQgdGhpZXQgY2hpbmggcGh1IE5ndXllbiBU YW4gRHVuZyBwaGFpIGNhbiBjdSB2YW8gbHVhdCBraG9hbmcgc2FuIHZhIGx1YXQgbW9pIHRydW9u ZyBsYSANCmhhaSBsdWF0IGhpZW4gbmhpZW4gZGlldSBjaGluaCB0cnVjIHRpZXAga2hhaSB0aGFj IGJhdXhpdGUuLi4gVmllYyBvbmcgRHVuZyBiYW4gaGFuaCBxdXlldCBkaW5oIHRoYW0gZG8ga2hh aSB0aGFjIGJhdXhpdGUga2hvbmcgY2FuIGN1IHZhbyBjYWMgbHVhdCBuYXkgcm8gcmFuZyBsYSB0 cmFpIGx1YXQgYmFuIGhhbmggdmFuIGJhbiBxdXkgcGhhbSBwaGFwIGx1YXQuIg0KDQpWaWVjIGRh bSBkdW5nIHJhIGtob2kga2llbiBuZ3VvaSBkdW5nIGRhdSBjaGluaCBwaHUgcmEgdG9hLCB0aGVv IEx1YXQgc3UgQ3UgSHV5IEhhIFZ1LCBsYSBvbmcgY29uICJjYW4gY3UgdmFvIGx1YXQgYmFvIHZl IG1vaSB0cnVvbmc6ICJLaG9hbiAyIGRpZXUgNCBMdWF0IEJhbyBWZSBNb2kgDQpUcnVvbmcgbm9p OiBCYW8gdmUgbW9pIHRydW9uZyBsYSBzdSBuZ2hpZXAgY3VhIHRvYW4geGEgaG9pLCBxdXllbiBj dWEgY2FjIGNvIHF1YW4gbmhhIG51b2MsIHRvIGNodWMgaG8gZ2lhIGRpbmggdmEgY2Egbmhhbi4i DQoNCiJWYXkgdGhpIHZpZWMgdG9pIGtob2kga2llbiBsYSB0aHVjIHRoaSB0cmFjaCBuaGllbSBi YW8gdmUgbW9pIHRydW9uZyBjdWEgY29uZyBkYW4uIEtob2kga2llbiBkZSBodXkgYm8gcXV5ZXQg ZGluaCBjdWEgVGh1IFR1b25nIE5ndXllbiBUYW4gRHVuZyBsYSBtb3QgY2FjaCB0aHVjIHRoaSBx dXllbiANCmNvbmcgZGFuIGN1YSB0b2ksIHF1eWVuIGdpYW0gc2F0IHZhIHN1IGR1bmcgdmFuIGJh biBxdXkgcGhhbSBwaGFwIGx1YXQgc2FpIHRyYWkgdHJlbi4iDQpNdWMgZGljaCBjdW9pIGN1bmcg Y3VhIHZ1IGtpZW4gbmF5LCB0aGVvIGxvaSBvbmcgVnUsIGxhICJkZSBtb25nIGNoYW0gZHV0IGhh bmggdmkgZ2F5IA0KdG9uIGhhaSBkZW4gbG9pIGljaCBxdW9jIGdpYSB2YSB0b24gaGFpIG5heSBr aG9uZyBwaGFpIHRydW9jIG1hdCwgbWEgY28gdGhlIGxhIG1vdCB0b24gaGFpIGNodWEgY2hhYyBj byB0aGUgY2h1b2MgbGFpIGR1b2MuIg0KDQpPbmcgVnUgY2hvIGJpZXQgdGhlbSBkYXkgY3VuZyBs YSBjYWNoIG9uZyB0byBsb25nIGJpZXQgb24gdm9pICJjYWMgdGhlIGhlIHR1IG5nYW4gbmFtIG5h eSBwaGFuIGRhdSB4YXkgZHVuZyBkYXQgbnVvYyBWaWV0IE5hbSBjaG9uZyBsYWkgbW9pIHN1IHhh bSBsYW4gY3VhIG51b2MgbmdvYWkgbWEgDQpiYW8gdmUgdGFpIG5ndXllbiBjdW5nIG5odSBnaXUg dnVuZyBibyBjb2kgY3VhIG5ndW9pIFZpZXQuIg0KDQpMdWF0IFN1IEN1IEh1eSBIYSBWdSwgNTIg dHVvaSwgdHVuZyBsYSBuaGFuIHZpZW4gQm8gTmdvYWkgR2lhbyBWTiBzdW90IG5oaWV1IG5hbSBr ZSB0dSBuYW0gMTk3OS4gQm8gb25nIGxhIG5oYSB0aG8gSHV5IENhbiBub2kgdGllbmcgdm9pIGJh aSB0aG8gdGluaCAiTmdhbSBOZ3VpIi4NCk9uZyBIYSBWdSBkbyB0aGFjIHNpIFZhbiBDaHVvbmcs IHRoYWMgc2kgSGFuaCBDaGFuaCBDb25nIFF1eWVuLCB0aWVuIHNpIEx1YXQgS2hvYSB0YWkgUGhh cC4gT25nIGNvbiBsYSBob2Egc2kgY28gY2hhbiB0cm9uZyBob2kgbmdoZSB0aHVhdCBvIFZpZXQg TmFtLg0KDQpodHRwOi8vd3d3LnZpZXQtc3R1ZGllcy5pbmZvL2tpbmh0ZS9OTlRyYW5fSG9pX05T SHVuZy5wZGYNCkNoaW5oIHBodSB0cmEgbG9pIGNoYXQgdmFuIGN1YSBxdW9jIGhvaToNCg0KWElO IERVT0MgSE9JIExBSSBPTkcgTkdVWUVOIFNJTkggSFVORyAodmUga2hhaSB0aGFjIGJvLXhpdCBv IFRheSBOZ3V5ZW4pDQoNCkdzLiBOZ3V5ZW4gTmdvYyBUcmFuDQoNClRhaSBkaWVuIGRhbiBRdW9j IGhvaSwgbmdheSAxMy42LjIwMDksIHRyYSBsb2kgY2hhdCB2YW4gY3VhIGRhaSBiaWV1IFF1b2Mg aG9pLCBvbmcgTmd1eWVuIFNpbmggSHVuZyBuaGFuIG1hbmg6DQoiRGF5IGxhIHZhbiBiYW4gKFF1 eSBob2FjaCBwaGFuIHZ1bmcgdGhhbSBkbywga2hhaSB0aGFjLCBjaGUgYmllbiwgc3UgZHVuZyBi by14aXQgZ2lhaSANCmRvYW4gMjAwNyAtIDIwMTUsIGNvIHhldCBkZW4gbmFtIDIwMjUpIHhhYyBk aW5oIHF1YW4NCiBkaWVtLCBtdWMgdGlldSwgcGh1b25nIGh1b25nLCBuaGllbSB2dSB2YSBuaHVu ZyBnaWFpIHBoYXAgY2hpbmggbGFtIGNvIHNvIGNobyBrZSANCmhvYWNoIGRhaSBoYW4gdHJpZW4g a2hhaSB0cm9uZyBnYW4gMjAgbmFtLiBUcm9uZyBRdXkgaG9hY2gsIENoaW5oIHBodSBkYSBxdWFu IHRhbSBkZSBjYXAgdGF0IGNhIGNhYyB5ZXUgY2F1IHZlIGhpZXUgcXVhIGtpbmggdGUgLSB4YSBo b2ksIGJhbyB2ZSBtb2kgdHJ1b25nIHNpbmggdGhhaSBjdW5nIG5odSANCm1vaSB0cnVvbmcgdmFu IGhvYSwgeGEgaG9pIHZhIGhvcCB0YWMgZGF1IHR1IHZvaSBudW9jIG5nb2FpIGN1YSBjYWMgZHUg YW4sIGRhYyBiaWV0IHF1YW4gdGFtIGJhbyBkYW0gcXVvYyBwaG9uZywgYW4gbmluaCB0cmVuIGRp YSBiYW4gVGF5IE5ndXllbiIuDQoNClhpbiBkdW9jIGhvaSBvbmc6IE5odSB2YXksIHRoZW8gb25n LCBRdXkgaG9hY2ggcGhhbiB2dW5nIHRoYW0gZG8sIGtoYWkgdGhhYywgY2hlIGJpZW4sIHN1IGR1 bmcgYm8teGl0IGdpYWkgZG9hbiAyMDA3IC0gMjAxNSwgY28geGV0IGRlbiBuYW0gMjAyNSBkYSBs YSBtb3QgdmFuIGJhbiBob2FuIGNoaW5oLCANCmN1IHRoZSBtYSB0cmllbiBraGFpLCBraG9uZyBj byBnaSBwaGFpIHJhIHNvYXQgbGFpPw0KTmV1IGR1bmcgbmh1IHZheSwgZG8gbGEgY2FjaCBvbmcg aGlldSBLZXQgbHVhbiBjdWEgQm8gQ2hpbmggdHJpIHZlIHZpZWMga2hhaSB0aGFjIGJvLXhpdCBv IFRheSBOZ3V5ZW4/IA0KTmV1IGtob25nIChuZ2hpYSBsYSBjb24gcGhhaSByYSBzb2F0IGxhaSks IHRoaSBraGkgb25nIG5vaTogIlRvaSBraG9uZyBuZ2hpIGxhIGRhIHRhY2ggcmEgbWEgbGEgcGhh aSBsYW0gdHVuZyBkdSBhbiB0aGkgbW9pIHRvdCBkdW9jLiBDaHVuZyB0YSBjaGkgY28gdGhlIGxh cCBxdXkgaG9hY2ggY2h1bmcsIHRyZW4gDQpjbyBzbyBkbywgbGFtIHR1bmcgZHUgYW4gdGhpIG1v aSBkdW5nIHF1eSB0cmluaCB2YSBiYW8gZGFtIGR1b2MgY2hhdCBsdW9uZywgYmFvIGRhbSB0YXQg Y2EgdmFuIGRlIGxpZW4gcXVhbiBkZW4gbW9pIHRydW9uZywgcXVvYyBwaG9uZyBhbiBuaW5oIiBj byBwaGFpIHRyb25nIGRpZXUgaGFuaCwgb25nIA0KY2hpIGNhbiB0aGF5IGNheSBtYSBraG9uZyBj YW4gYmlldCBkZW4gcnVuZz8NCg0KQ3VvaSBjdW5nLCBuZ2hlIG9uZyBwaGF0IGJpZXUgdGhpIHZp ZWMgdHJpZW4ga2hhaSBkdSBhbiBOaGFuIENvIGxhIGR1b25nIG5oaWVuLiBUcm9uZyBraGkgZG8g eSBraWVuIGNoaSBkYW8gY3VhIEJvIENoaW5oIHRyaSB0YWkgVGhvbmcgYmFvIDI0NSBsYTogIlJp ZW5nIER1IGFuIE5oYW4gQ28sIGNhbiANCnJhIHNvYXQgbGFpIHRvYW4gYm8gY2FjIHZhbiBkZSBj byBsaWVuIHF1YW4sIG5oYXQgbGEgdmllYyBkYW5oIGdpYSBoaWV1IHF1YSBraW5oIHRlIHZhIHRh YyBkb25nIG1vaSB0cnVvbmcsIG5ldSB0aHVjIHN1IGNvIGhpZXUgcXVhIHZhIGJhbyBkYW0geWV1 IGNhdSB2ZSBiYW8gdmUgbW9pIHRydW9uZyB0aGkgDQptb2kgdGllcCB0dWMgdHJpZW4ga2hhaSB0 aHVjIGhpZW4iLiBWYSB0cm9uZyBkdSBhbiBuYXkgbmhhIHRoYXUgVHJ1bmcgUXVvYyBDaGFsaWVj byBkdW9jIGNoaSBkaW5oIGNodSBraG9uZyBwaGFpICJkdW9jIHRodWMgaGllbiB0aG9uZyBxdWEg ZGF1IHRoYXUgcXVvYyB0ZSBjb25nIGtoYWkiIG5odSBvbmcgbm9pLiANCg0KWGluIGR1b2MgbmV1 IG1heSBjYXUgaG9pIHRyZW4gdmkgcXVhIHRoYXQgYmFuIGtob2FuIGN1YSBjdSB0cmkgY2FuZyB0 YW5nIHRoZW0gZ2FwIGJvaSANCmtoaSBuZ2hlIG9uZyBIdW5nLCB1eSB2aWVuIEJvIENoaW5oIHRy aSwgdm9pIHR1IGNhY2ggUGhvIFRodSB0dW9uZyBDaGluaCBwaHUgdGh1b25nIA0KdHJ1YywgdHJh IGxvaSBkYWkgYmlldSBRdW9jIGhvaSB2ZSB2aWVjIGtoYWkgdGhhYyBiby14aXQgbyBUYXkgTmd1 eWVuIQ0KDQpodHRwOi8vd3d3LnRhcGNoaXRoZWdpb2ltb2kuY29tL3RtLnBocD9yZWNvcmRJRD0x MzEzIA0KDQpDT05HIFRZIFRSVU5HIENPTkcgTEFJIFRSVU5HIFRIQVUgRFUgQU4gRFVPTkcgQ0FP IFRPQw0KDQpUaW4gSGEgTm9pIC0gQmFvIGNoaSB0cm9uZyBudW9jIGhvbSBuYXkgbG9hbiB0aW4g VG9uZyBjb25nIHR5IENhdSBkdW9uZyBUcnVuZyBDb25nIENSQkMgdnVhIG5oYW4gbGVuaCBraG9p IGNvbmcgY3VuZyBkdW9uZyBkYXUgdGllbiBtYW5nIHRpbmggcXVhbiB0cm9uZyB0cm9uZyBkdSBh biBkdW9uZyB4YSBsbyBCYWMgTmFtLiBDaHUgdGhhdSBwaGlhIFZpZXQgTmFtIGxhIENvbmcgdHkg RGF1IHR1IFBoYXQgdHJpZW4gRHVvbmcgY2FvIA0KdG9jIFZFQy4gTmhhIHRoYXUgVHJ1bmcgQ29u ZyBzZSB4YXkgbmhhbmggZGF1IHRpZW4gdHJvbmcgZG9hbiBkdW9uZyBnaWFvIHRob25nIGh1eWV0 IG1hY2ggY3VhIFZpZXQgTmFtLiBUaW4gY3VhIFRob25nIFRhbiBYYSBWaWV0IE5hbSBjaG8gaGF5 IGRvYW4gU2FpZ29uIGRlbiBMb25nIA0KVGhhbmggdmEgRGF1IERheSBkYWkgNTEgY2F5IHNvIHNl IHRvbiBwaGkgMTM4MSB0eSBkb25nIHR1YyBraG9hbmcgODAwIHRyaWV1IGRvLWxhLg0KDQpEYXkg bGEgbW90IHBoYW4gcXVhbiB0cm9uZyB0aHVvYyBEdSBhbiBkdW9uZyBjYW8gdG9jIEJhYy1OYW0g dmEgdHJvbmcgdHVvbmcgbGFpIHNlIGxhIGRpZW0gZGF1IGN1YSBkdSBhbiBkdW9uZyBjYW8gdG9j IERhdSBHaWF5LURhIExhdCwgbWEgcGhpYSBUcnVuZyBjb25nIG5vaSBzZSBob2FuIHRhdCANCmNv bmcgdmllYyB0cm9uZyAzMiB0aGFuZy4gVm9uIGRhbmggY2hvIGR1IGFuIG5heSBtb3QgcGhhbiBu YW0gdHJvbmcgdmllbiB0cm8gT0RBIGN1YSBOaGF0LCBzbyBjb24gbGFpIGxhIHZvbiB2YXkgY3Vh IE5nYW4gaGFuZyBQaGF0IHRyaWVuIEEgY2hhdSBBREIsIHZhIHZvbiByaWVuZyBjdWEgQ29uZyB0 eSBEYXUgdHUgUGhhdCB0cmllbiBEdW9uZyBjYW8gdG9jIFZpZXQgTmFtIFZFQy4NCg0KVmllYyBj b25nIHR5IFRydW5nIENvbmcgdHJ1bmcgdGhhdSBjYWMgZHUgYW4gbG9uIHRhaSBWaWV0IE5hbSBs YSBkZSB0YWkgZ2F5IG5oaWV1IGJhbiB0YW4gY2hvIG5ndW9pIGRhbiwgc2F1IGtoaSBjYWMgbGFu aCB0dSBDb25nIHNhbiBWaWV0TmFtIGRhIGRlIGNobyBuaGlldSBjb25nIHR5IFRydW5nIA0KY29u ZyBkdW9jIGxhbmggdGhhdSBrZSBjYSBkdSBhbiBkYXkgY2h1eWVuIDIgbmhhIG1heSB4aSBtYW5n IE5naGkgU29uIHZvaSB0b25nIHZvbiANCnhheSBkdW5nIDQyMCB0eSwgbmhhIG1heSBYaSBtYW5n IENvbmcgVGhhbmgsIGh1eWVuIE5ob24gVHJhY2ggRG9uZyBOYWkgdm9uIGRhdSB0dSANCjcwMCB0 eSBkb25nLCBuaGEgbWF5IE5oaWV0IGRpZW4gSGFpIFBob25nIDk5MDAgdHkgZG9uZy4gRGlldSBk YW5nIG5vaSBsYSBUcnVuZyBjb25nIA0Kc2UgZHVhIHJhdCBuaGlldSBjb25nIG5oYW4gY3VhIGhv IHNhbmcgdGh1YyBoaWVuIG5odW5nIGR1IGFuIG5heSwgYmF0IGNoYXAgdGluaCBoaW5oIHRhaSAN ClZpZXQgTmFtIGhpZW4gbmF5IG5hbiB0aGF0IG5naGllcCBkYW5nIGNhbyB2YSBzdSBjbyBtYXQg Y3VhIGNvbmcgbmhhbiBUcnVuZyBjb25nIGRhIGxhIGRlIHRhaSBjaGkgdHJpY2ggY3VhIG5oaWV1 IG5ndW9pLiANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS9mb3J1bS8yMDEwLzAz LzEwMDMyM19wbV9jdWh1eWhhdnUuc2h0bWwNCjA4OjI5IEdNVCAtIDI0LzMvMjAxMCAgVGllbiBz eSBsdWF0IEN1IEh1eSBIYSBWdSBndWkgY2hvIEJCQyB0dSBIYSBOb2kNCg0KVGh1IHR1b25nICJo b2FuIGJpbmgiICghPykNCg0KTmdheSA5LzMvMjAxMCBUaHUgdHVvbmcgTmd1eWVuIFRhbiBEdW5n IGRhIGNvIGNvbmcgdmFuIHNvIDQwNS9UVGctS1ROIHZlIHZpZWMgDQoicmEgc29hdCBraWVtIHRy YSB2aWVjIHRyaWVuIGtoYWkgdGh1YyBoaWVuIGNhYyBkdSBhbiBudW9jIG5nb2FpIGRhdSB0dSB0 cm9uZyBsaW5oIHZ1YyBsYW0gbmdoaWVwIHZhIG51b2kgdHJvbmcgdGh1eSBzYW4iLg0KDQpDb25n IHZhbiBndWkgQm8gS2UgaG9hY2ggdmEgRGF1IHR1LCBCbyBOb25nIG5naGllcCB2YSBQaGF0IHRy aWVuIG5vbmcgdGhvbiwgQm8gVGFpIGNoaW5oLCBCbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcs IEJvIFRob25nIHRpbiB2YSBUcnV5ZW4gdGhvbmcgdmEgdGF0IGNhIGNhYyB0aW5oIA0KdGhhbmgg cGhvIHRydWMgdGh1b2MgdHJ1bmcgdW9uZzsgZHVvYyBkdWEgcmEgaG9uIG1vdCB0aGFuZyBzYXUg a2hpIGhhaSBUdW9uZyBEb25nIFNpIA0KTmd1eWVuIHZhIE5ndXllbiBUcm9uZyBWaW5oIGNhbmgg YmFvIHRyZW4gdHJhbmcgbWFuZyBCYXV4aXRlIFZpZXQgTmFtIGN1YSBnaW9pIHRyaSB0aHVjIFZp ZXQgTmFtIHlldSBudW9jIHZlICJoaWVtIGhvYSBjdWMgbG9uIGxpZW4gcXVhbiBkZW4gYW4gbmlu aCBuaGlldSBtYXQgY3VhIHF1b2MgDQpnaWEiLCB4dWF0IHBoYXQgdHUgdmllYyAxMCB0aW5oIGN1 YSBWaWV0IE5hbSB0cm9uZyBjbyBjbyBjYWMgdGluaCBnaWFwIGdpb2kgVHJ1bmcgUXVvYyBjaG8g bmd1b2kgVHJ1bmcgUXVvYywgRGFpIExvYW4sIEhvbmcgS29uZyB0aHVlIHRyZW4gMjY0IG5naGlu IGhhIGRhdCBydW5nIGRhdSBuZ3Vvbi4NCg0KQ29uZyB2YW4gbmV1IHJvOiAiY28gbm9pIGRhIGNo byB0aHVlIGNhIGRpZW4gdGljaCBkYXQgY28gcnVuZyB0dSBuaGllbjsgcXV5IGhvYWNoIGNobyBj YWMgZHUgYW4gdGh1ZSBkYXQgdmFvIG5odW5nIHZ1bmcgbmhheSBjYW0gZGEgcGhhaSB0aHUgaG9p IGxhaSIuDQoNCiJUcnVvYyB0aW5oIGhpbmggdHJlbiwgVGh1IHR1b25nIENoaW5oIHBodSBkYSBn aWFvIEJvIEtlIGhvYWNoIHZhIERhdSB0dSBjaHUgdHJpIHBob2kgDQpob3Agdm9pIEJvIE5vbmcg bmdoaWVwIHZhIFBoYXQgdHJpZW4gbm9uZyB0aG9uLCBCbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVv bmcgdmEgY2FjIA0KQm8gbmdhbmggbGllbiBxdWFuIGxhcCBkb2FuIGNvbmcgdGFjIHRpZW4gaGFu aCByYSBzb2F0IGtpZW0gdHJhLCBkYW5oIGdpYSB2YSBiYW8gY2FvIFRodSANCnR1b25nIHZlIHZp ZWMgY2FwIGdpYXkgY2h1bmcgbmhhbiBkYXUgdHUgdmEgdGh1YyBoaWVuIGNhYyBkdSBhbiBkYXUg dHUgbnVvYyBuZ29haSB0cm9uZyANCmxpbmggdnVjIGxhbSBuZ2hpZXAgdmEgbnVvaSB0cm9uZyB0 aHV5IHNhbiIuDQoNCiJUcm9uZyB0aG9pIGdpYW4gdGh1YyBoaWVuIHZpZWMgcmEgc29hdCBraWVt IHRyYSwgZGFuaCBnaWEsIFVCTkQgY2FjIHRpbmgga2hvbmcgZHVvYyANCmNhcCBnaWF5IGNodW5n IG5oYW4gZGF1IHR1IG1vaSB2YSBraG9uZyBreSBob3AgZG9uZyBjaG8gdGh1ZSBkb2kgdm9pIGNh YyBkdSBhbiBkYXUgdHUgbnVvYyBuZ29haSB0cm9uZyBwaGFtIHZpIGNhYyBsaW5oIHZ1YyBuZXUg dHJlbiIuDQoNClBoYWkgbm9pIGRvbmcgdGhhaSBuYXkgY3VhIG5ndW9pIGR1bmcgZGF1IENoaW5o IHBodSBkYSBsYW0gY2hvIGhhaSB2aSBUdW9uZyB2YSBuaGlldSANCm5ndW9pIHRyb25nIHZhIG5n b2FpIG51b2MgY2hvIGR1IHZhbiBjb24gZGUgZGF0IHRpbiByYW5nIGRheSBsYSBzdSBraG9pIGRh dSB0aWNoIGN1YyBjaG8gdmllYyBjaGFtIGR1dCBoaWVtIGhvYSBkb2kgdm9pIGFuIG5pbmggdmEg cXVvYyBwaG9uZyBjdWEgVmlldCBOYW0uDQoNClR1eSBuaGllbiBuZ3VvaSB2aWV0IGJhaSBuYXkg bGFpIGNvIHF1YW4gZGllbSBuZ3VvYyBsYWksIGNobyByYW5nIGRheSBjaGkgbGEgImtlIGhvYW4g YmluaCIgY3VhIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcsIHR1YyB2aWVjIGJhbiBoYW5oIGNv bmcgdmFuIHRyZW4gY290ICJoYSBuaGlldCIgDQpjaHUgbmdoaWEgeWV1IG51b2MgaGF5IGNodSBu Z2hpYSBkYW4gdG9jIGN1YSBuZ3VvaSBWaWV0IC0gdGhlIGx1YyBkdXkgbmhhdCBjbyB0aGUgY3Vv biBwaGFuZyBDaGluaCBwaHUgbm9pIHJpZW5nLCBjaGUgZG8gY2hpbmggdHJpIGhpZW4gaGFuaCBu b2kgY2h1bmcsIGNodSBraG9uZyBuaGFtIGdpYWkgDQpxdXlldCBuaHVuZyB2YW4gZGUgbmdoaWVt IHRyb25nIGxpZW4gcXVhbiBkZW4gc2luaCBtZW5oIGN1YSBxdW9jIGdpYSBuaHUgbW9pIG5ndW9p IHRyb25nIGRvaS4NCg0KUXV5ZXQgZGluaCBraG9uZyBjbyB0aW5oIGNoZSB0YWk7IENvIG5oaWV1 IGNhbiBjdSBkZSBraGFuZyBkaW5oIGRpZXUgbmF5Lg0KDQpUaGVvIEx1YXQgYmFuIGhhbmggdmFu IGJhbiBxdXkgcGhhbSBwaGFwIGx1YXQsIGNoaSBjbyBoYWkgbG9haSB2YW4gYmFuIGRvIFRodSB0 dW9uZyBreTogTmdoaSBkaW5oIG5oYW4gZGFuaCBDaGluaCBwaHUgdmEgUXV5ZXQgZGluaCBuaGFu IGRhbmggY2EgbmhhbiBUaHUgdHVvbmcuIE5naGlhIA0KbGEgbmdvYWkgaGFpIHZhbiBiYW4gbmF5 IHJhIHRoaSBjYWMgdmFuIGJhbiBraGFjLCB0cm9uZyBkbyBjbyBjb25nIHZhbiwgZG8gVGh1IHR1 b25nIGt5IGtob25nIGNvIHRpbmggY2hlIHRhaSB0aGkgaGFuaC4NCg0KRGUgbm9pLCBuZXUgdGh1 YyBzdSBUaHUgdHVvbmcgRHVuZyBtdW9uIHh1IGx5IHZ1IGJlIGJvaSBzaWV1IG5naGllbSB0cm9u ZyBuYXkgdGhpIGNoaSANCml0IHBoYWkgYmFuIGhhbmggUXV5ZXQgZGluaCwgZGlldSBtYSBvbmcg bmF5IGRhIGtob25nIGxhbS4NCg0KQm8gY2hpIGh1eSBxdWFuIHN1IGNhYyB0aW5oIGNvIGxpZW4g cXVhbiwgbm9pIGdpIGRlbiBCbyBRdW9jIHBob25nLCBkYSBraG9uZyBoZSBkdW9jIA0KbGFuaCBk YW8gdGluaCB0aGFtIGtoYW8gdmEgdGF0IG5oaWVuIGNhbmcga2hvbmcgZHVvYyBtb2kgdGhhbSBk aW5oIGNhYyBkdSBhbiBjaG8gdGh1ZSBydW5nLg0KDQpUaHUgaGFpLCBjb25nIHZhbiBraG9uZyBo ZSBhbiBkaW5oIHRob2kgZGllbSBtYSBjYWMgYm8gY28gbGllbiBxdWFuIHBoYWkgImJhdCB0YXkg dmFvIGN1b2MiIGN1bmcgbmh1IHRob2kgZGllbSBrZXQgdGh1YyB2aWVjIHJhIHNvYXQsIGtpZW0g dHJhLCBkYW5oIGdpYSB2aWVjIGNhcCBnaWF5IGNodW5nIA0KbmhhbiBkYXUgdHUgdmEgdGh1YyBo aWVuIGNhYyBkdSBhbiBkYXUgdHUgbnVvYyBuZ29haSB0cm9uZyBsaW5oIHZ1YyBsYW0gbmdoaWVw Lg0KRGlldSBuYXkgY2hvIHRoYXkga2hvbmcgY28gdmllYyBUaHUgdHVvbmcgRHVuZyBidW9jIGNh YyB0aW5oIGR1bmcgbmdheSB0dWMga2hhYyB2aWVjIA0KY2FwIGdpYXkgY2h1bmcgbmhhbiBkYXUg dHUgbW9pIHZhIGt5IGhvcCBkb25nIGNobyB0aHVlIGRvaSB2b2kgbmd1b2kgbnVvYyBuZ29haS4N Cg0KVGhlbSBudWEsIHRyb25nIENvbmcgdmFuIGtob25nIGNvIG5odW5nIHRodWF0IG5ndSBuaHUg Inh1bmcgeWV1IiwgImFuIG5pbmggcXVvYyBnaWEiLCAicXVvYyBwaG9uZyIgZHVvYyBkZSBjYXAg dHJvbmcgdGh1IGN1YSBjYWMgVHVvbmcgRG9uZyBTaSBOZ3V5ZW4gdmEgTmd1eWVuIA0KVHJvbmcg VmluaCIgbmVuIHZlIGhpbmggdGh1YyBjb25nIHZhbiBjdWEgVGh1IHR1b25nIER1bmcga2hvbmcg bmhhbSBnaWFpIHF1eWV0IGxvIA0KbmdhaSBjaGluaCBjdWEgaGFpIHZpIGxhbyBUdW9uZyBsYSBs byBuZ2FpIHZlIGFuIG5pbmgsIHF1b2MgcGhvbmcuDQoNCkN1IGNobyBuaHVuZyAidnVuZyBuaGF5 IGNhbSIgZHVvYyBzdSBkdW5nIHRyb25nIENvbmcgdmFuIGFtIGNoaSBuaHVuZyB2dW5nIHh1bmcg eWV1IHZlIGFuIG5pbmgsIHF1b2MgcGhvbmcgdGhpIHRoYW5oIHBoYW4gcmEgc29hdCBjYWMgZHUg YW4gY2hvIG5ndW9pIG51b2MgbmdvYWkgdGh1ZSANCnJ1bmcgZHVvbmcgbmhpZW4ga2hvbmcgdGhl IHRoaWV1IEJvIFF1b2MgcGhvbmcuIFRoZSBuaHVuZywgbmh1IGNodW5nIHRhIGRhIHRoYXksIHRy b25nIGRpYSBjaGkgZGVuIGN1YSBDb25nIHZhbiBraG9uZyBjbyBCbyBRdW9jIFBob25nLg0KDQpD dW9pIGN1bmcsIGRheSBtb2kgbGEgYmFuIGNoYXQgY3VhIHZhbiBkZTogY2hpbmggQ2hpbmggcGh1 IGRhIGdpYW4gdGllcCAiYmF0IGRlbiB4YW5oIiANCmNobyBuZ3VvaSBUcnVuZyBRdW9jIHZhIGdv YyBIb2EgdGh1ZSBydW5nIGRhdSBuZ3VvbiBjdWEgVmlldCBOYW0gbmh1IHRyZW4gZGEgZGUgY2Fw Lg0KVGh1YyB2YXksIEtob2FuIDIgRGlldSAxMSBMdWF0IFF1b2MgcGhvbmcgcXV5IGRpbmggdmll YyBxdXkgaG9hY2gsIGtlIGhvYWNoIHBoYXQgdHJpZW4ga2luaCB0ZSAtIHhhIGhvaSB2dW5nLCB0 aW5oLCB0aGFuaCBwaG8gdHJ1YyB0aHVvYyB0cnVuZyB1b25nIHZhIGtodSB2dWMgdHJvbmcgZGll bSANCnZlIHF1b2MgcGhvbmcgcGhhaSBkdW9jIEJvIFF1b2MgcGhvbmcgdmEgY28gcXVhbiBjbyB0 aGFtIHF1eWVuIGN1YSBDaGluaCBwaHUgcGhvaSANCmhvcCB0aGFtIGRpbmggdGhlIG5odW5nIHRy ZW4gdGh1YyB0ZSwgQm8gUXVvYyBwaG9uZyBkYSBiaSBnYXQgcmEgcmlhIHF1eSB0cmluaCBjYXAg cGhlcCBjaG8gY2FjIGR1IGFuIGNobyB0aHVlIHJ1bmcuDQoNCkJhbmcgY2h1bmcgbGEgbmdheSBj YWMgQm8gY2hpIGh1eSBxdWFuIHN1IGNhYyB0aW5oIGNvIGxpZW4gcXVhbiwgbm9pIGdpIGRlbiBC byBRdW9jIA0KcGhvbmcsIGRhIGtob25nIGhlIGR1b2MgbGFuaCBkYW8gdGluaCB0aGFtIGtoYW8g dmEgdGF0IG5oaWVuIGNhbmcga2hvbmcgZHVvYyBtb2kgdGhhbSBkaW5oIGNhYyBkdSBhbiBjaG8g dGh1ZSBydW5nLg0KDQpDYWkgImdpYXQgbWluaCIga2VtIHRoZW8ga2hhbmcgZGluaCBjdWEgZGFp IHRhIEhvYW5nIENvbmcgSGFtLCBQaG8gY2hpIGh1eSB0cnVvbmcsIA0KVGhhbSBtdXUgdHJ1b25n IEJvIGNoaSBodXkgcXVhbiBzdSB0aW5oIExhbmcgU29uIHRydW9jIGJhbyBjaGkgdmFvIG5nYXkg MTUvMyB2dWEgcXVhOiJIbyBjaHVhIHF1YSBtb3QgY2FwIG5hbyBjdWEgQm8gY2hpIGh1eSBxdWFu IHN1IHRpbmggdGhhbSBkaW5oIGNhcCBkdSBhbiBuaGF0IGxhIA0KdmUgcnVuZyBkb2MgYmllbiBn aW9pLiBUYXQgY2EgY2FjIGR1IGFuIGxvbiBuaHUgdGhlIHRoaSBjaGFjIGNoYW4gcGhhaSBiYW8g Y2FvIEJvIGNoaSBodXkgcXVhbiBzdSB0aW5oLiBDaHVuZyB0b2kga2hvbmcgZHVvYyBiYW8gY2Fv IHRoaSBsYW0gc2FvIGNodW5nIHRvaSB0aGFtIG11dSBkdW9jLiBEdSBhbiANCnRyb25nIHJ1bmcg NTAgbmFtIGNvIG5ndW9pIG51b2MgbmdvYWkgbGEgYW5oIGh1b25nIGRlbiBhbiBuaW5oIHF1b2Mg cGhvbmcgcm9pImhhbiBraG9uZyBjYW4gdGhlbSBsb2kgYmluaC4gDQoNCkRpZXUgMyBOZ2hpIGRp bmggc28gMjMvMjAwNi9ORC1DUCBuZ2F5IDAzLzMvMjAwNiBjdWEgQ2hpbmggcGh1IGh1b25nIGRh biBMdWF0IGJhbyB2ZSB2YSBwaGF0IHRyaWVuIHJ1bmcgcXV5IGRpbmggQm8gTm9uZyBuZ2hpZXAg dmEgUGhhdCB0cmllbiBub25nIHRob24gdGhheSBtYXQgQ2hpbmggDQpwaHUgbGFwIHZhIHF1YW4g bHkgaG8gc28gZ2lhbywgY2hvIHRodWUgcnVuZyB2YSBkYXQgZGUgdHJvbmcgcnVuZy4gVmF5IGto b25nIGxlIHZvaSB0dSBjYWNoIGxhIG5ndW9pIGxhcCB2YSBxdWFuIGx5IGhvIHNvIHJ1bmcgbWEg Q2hpbmggcGh1IGxhaSBraG9uZyBoZSBoYXkgYmlldCBoYW5nIHRyYW0gDQpuZ2hpbiBoYSBydW5n IGRhdSBuZ3VvbiBkYSBkdW9jIGNobyBuZ3VvaSBUcnVuZyBRdW9jIHZhIGdvYyBIb2Ega2hhYyB0 aHVlLCBraG9uZyBuaHVuZyB0aGUgdm9pIHRob2kgaGFuIGRlbiA1MCBuYW0/IA0KDQoiQ29uIHZv aSIgLSBoYW5nIHRyYW0gbmdoaW4gaGEgcnVuZyBkYXUgbmd1b24sIG1hIHR1eWV0IGRhaSBkYSBz byBvIG5odW5nIGtodSB2dWMgdHJvbmcgZGllbSB2ZSBxdW9jIHBob25nLCBraG8gY28gdGhlICJj aHVpIGxvdCBsbyBraW0gLSBjYXAgcGhlcCIgbmV1IGtob25nIGR1b2MgDQpDaGluaCBwaHUgbWEg dHJ1b2MgaGV0IGxhIFRodSB0dW9uZyBEdW5nIGNoYXAgdGh1YW4sIHRydWMgdGllcCBob2FjIGdp YW4gdGllcCENCg0KU3V5IGNobyBjdW5nLCBuZXUga2hvbmcgY28gdmllYyBjaHVhbiBiaSBEYWkg aG9pIERhbmcgY29uZyBzYW4gVmlldCBOYW0gbGFuIHRodSAxMSANCmhvcCB2YW8gZGF1IG5hbSBz YXUsIDIwMTEsIHRoaSAia2UgaG9hbiBiaW5oIiBuYXkga2hvbmcgY2hhYyBkdW9jIHRoaSBoYW5o Lg0KDQpOZ2F5IGNhIHRyb25nIHRydW9uZyBob3AgY3VjIGNoYW5nIGRhIFRodSB0dW9uZyBEdW5n IHBoYWkgYmllbiAiaG9hbiBiaW5oIiB0aGFuaCAiZG9uZyB0YWMgdGhhdCIgbmhhbSBtdWMgZGlj aCB0cmFuaCBjdSB0aGkgc2F1IERhaSBob2kgMTEgRGFuZyBjb25nIHNhbiBWaWV0IE5hbSwgbmV1 IA0Kb25nIER1bmcgdmFuIGNvbiBvIHZpIHRyaSBxdXllbiBsdWMsIGtob25nIGNvIGdpIGRhbSBi YW8gcmFuZyBtb2kgY2h1eWVuIHJvaSBsYWkga2hvbmcgDQp5IG5odSBjdTsgbmdoaWEgbGEsIGxh aSBkYXQgVmlldCBOYW0gbyB0aW5oIHRoZSBjdWMga3kgbmd1eSBoaWVtIHZlIGFuIG5pbmgsIHF1 b2MgcGhvbmcuDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL2luX2RlcHRoL1BvbGlj ZS1wdWxsZWQtZG93bi1sYXl3ZXItY3UtaHV5LWhhLXZ1LWhvdXNlLWZlbnNlLTAxMjcyMDEwMTEy NzM1Lmh0bWwNCg0KVGh1IHR1b25nOiBDb25nIGFuIGRhcCBwaGEgdHVvbmcgcmFvIG5oYSBMUy4g Q3UgSHV5IEhhIFZ1DQoNCihNYWMgTGFtLCBwaG9uZyB2aWVuIGRhaSBSRkEgMjAxMC0wMS0yNykN Cg0KU2FuZyBob20gbmF5LCBvbmcgTGUgVmFuIERpbmgsIGNodSB0aWNoIHBodW9uZyBEaWVuIEJp ZW4sIEhhIE5vaSBkYW4gbW90IHNvIGxvbiBjb25nIGFuIHZhIGRhbiBwaG9uZyBkZW4gZGFwIHBo YSBoYW5nIHJhbyBjdWEgZ2lhIGRpbmggbHVhdCBzdSBDdSBIdXkgSGEgVnUuDQoNCihBbmggZG8g TFMuVnUgY3VuZyBjYXAgLSBUdW9uZyByYW8gbmhhIEx1YXQgc3UgQ3UgSHV5IEhhIFZ1IGJpIGNo aW5oIHF1eWVuIGRpYSBwaHVvbmcgZGFwIHBoYSkNCg0KVnUgdmllYyBuYXkgZGFjIGJpZXQgbmdo aWVtIHRyb25nIGRvaSB2b2kgY2EgbmhhbiBMUyBWdSB2aSBvbmcgZGEgbm9wIGRvbiBraWVuIHRo dSANCnR1b25nIE5ndXllbiBUYW4gRHVuZyB0cnVvYyBkYXkgaXQgbGF1LiBNYWMgTGFtIGNvIGN1 b2MgcGhvbmcgdmFuIExTIFZ1IGRlIGJpZXQgdGhlbSBjaGkgdGlldCB2ZSB2dSB2aWVjIG5heSwg dHJ1b2MgdGllbiBMUyBWdSBjaG8gYmlldDoNCg0KVGh1IHR1b25nIGNoaSB0aGk/DQoNCkxTLkN1 IEh1eSBIYSBWdTogU2FuZyBuYXkgaG9uIHRhbSBnaW8gdGhpIGNodSB0aWNoIGNhaSBwaHVvbmcg bWEgdG9pIGRhbmcgbyB0YWkgSGEgTm9pLCBwaHVvbmcgRGllbiBCaWVuLiBPbmcgY2h1IHRpY2gg cGh1b25nIGxhIExlIFZhbiBEaW5oIGRhbiBtb3QgZGFtIG5ndW9pIGNhIA0KY29uZyBhbiwgY2Eg ZGFuIHBob25nIGhvbiBkb24gY28gdGhlIG5vaSBsYSBodW5nIGhvIGRlbiBjaG8gbmhhIHRvaSBz byAyNCBEaWVuIEJpZW4gUGh1IEhhIE5vaSwgdGllbiBoYW5oIGRhcCBwaGEgY2FpIGhhbmcgcmFv IG5oYSBjdWEgdG9pLg0KDQpNYWMgTGFtOiBMdWF0IHN1IGNvIGJpZXQgbHkgZG8gbmFvIG1hIGhv IHRpZW4gaGFuaCB2aWVjIGRhcCBwaGEgbmF5IGhheSBraG9uZz8NCg0KT25nIGNodSB0aWNoIHBo dW9uZyBsYSBMZSBWYW4gRGluaCBkYW4gbW90IGRhbSBuZ3VvaSBjYSBjb25nIGFuLCBjYSBkYW4g cGhvbmcgaG9uIGRvbiBjbyB0aGUgbm9pIGxhIGh1bmcgaG8gZGVuIGNobyBuaGEgdG9pIHNvIDI0 IERpZW4gQmllbiBQaHUgSGEgTm9pLCB0aWVuIGhhbmggZGFwIHBoYSANCmNhaSBoYW5nIHJhbyBu aGEgY3VhIHRvaS4NCg0KTFMgQ3UgSHV5IEhhIFZ1OiAgVmFvIG5hbSBuZ29haSwgdHJvbmcgdnVv biBuaGEgdG9pIGJpIGNvbiBiYW8gbGFtIG5nYSBkbyBoYWkgY2F5IGRlIHNhcCBidWMgdHVvbmcg cmFvLiBOZ2F5IGxhcCB0dWMgZGUgYmFvIHZlIHRpbmggbWFuZyBjdW5nIG5odSB0YWkgc2FuIGdp YSBkaW5oIHRvaSBkYSB4YXkgbGFpIGNobyBiaSBzYXAgZGF5LiANCkNodXllbiB0aGllbiB0YWkg bGFtIGRvIG5oYSBjdWEgdmEgbmd1b2kgZGFuIHBoYWkgeGF5IGR1bmcgbGFpIGhvYW4gdG9hbiBi aW5oIHRodW9uZywgdGhlIG5odW5nIGRvIGxhaSBsYSBjYWkgY28gZGUgY2hvIGNoaW5oIHF1eWVu IGtpZW0gY2h1eWVuIHZvaSB0b2kgdmkgdG9pIGtob25nIHZpIHBoYW0gDQpiYXQga3kgbW90IHF1 eSBkaW5oIG5hbyBjdWEgbmhhIG51b2MgY2EuIERheSBraG9uZyBwaGFpIGxhIG1vdCBjb25nIHRy aW5oIHhheSBkdW5nIHRoZSB0YWkgc2FvIGRvaSBkZW4gbWFpIGhvbSBuYXkgbW9pIHRvaSBkYXAg cGhhPyANCg0KTWFjIExhbTogVGh1YSBraG9uZyBjbyBseSBkbyBjaGluaCBkYW5nIG1hIGNoaW5o IHF1eWVuIHRpZW4gaGFuaCB2aWVjIGRhcCBwaGEsIHZheSBobyBjbyBub2kgY3UgdGhlIGFpIGNo aSBkYW8gbGFtIHZpZWMgbmF5IGhheSBraG9uZz8NCg0KTFMgQ3UgSHV5IEhhIFZ1OiBUb2kgY3Vu ZyB0aGF5IHJhdCBsYSBuZ2FjIG5oaWVuLCBuZ3VvaSBuaGEgdG9pIHJhdCBwaGFuIG5vIGtoaSBo b2kgZGFtIG5ndW9pIG5heSB0aGkgcmEgbW90IGNhdSBnaWFpIGRhcCB0aHVjIHJhIGRvaSB2b2kg dG9pIGtob25nIGJhdCBuZ28gbmh1bmcgbG9pIGdpYWkgDQpkYXAgbmF5IGxhIG1vdCBzdSBraGFu ZyBkaW5oLCBtb3Qgc3UgdGh1IGRpY2ggY3VhIGNoaW5oIHBodSBkb2kgdm9pIGNhIG5oYW4gdG9p LiANClBobyBjaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4gcGh1b25nIGxhIE5ndXllbiBUcm9uZyBL aGFuaCAgZG8gYmkgbmd1b2kgbmhhIHRvaSBob2kgDQpyaWV0IG5odSB0aGUgbmVuIG9uZyB0YSBj aG8gYmlldCB2aWVjIG5heSBvbmcgdGEgY3VuZyBraG9uZyBtdW9uIG5odW5nIGRvIHN1IGNoaSBk YW8gY3VhIFRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcuIA0KDQpNYWMgTGFtOiBYaW4gZHVvYyBu Z2F0IGxvaSBMUyBuaHVuZyB2b2kgY3VvbmcgdmkgbW90IGxhbmggZGFvIGRhdCBudW9jIGxpZXUg VGh1IHR1b25nIGNvIHRoZSBjaGkgZGFvIGxhbSBtb3QgdmllYyBuaG8gbmhhdCBuaHUgdmF5IGhh eSBraG9uZz8NCg0KTFMgQ3UgSHV5IEhhIFZ1OiAgIE9uZyBwaG8gY2h1IHRpY2ggcGh1b25nIERp ZW4gQmllbiBOZ3V5ZW4gVHJvbmcgS2hhbmggbm9pIHZvaSBuZ3VvaSBuaGEgdG9pIGRvIGxhIG1v dCBzdSB0aGF0LiANClRoZSBjb24gdG9pIHRoaSBraG9uZyBzYW4gc2FuZyB0aW4gbmh1bmcgdG9p IGNobyByYW5nIGNodXllbiBkYXkgaG9hbiB0b2FuIGxvZ2ljIGJvaSB2aSBzYXUga2hpIHRvaSBr aWVuIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgdmFvIG5nYXkgMTEgdGhhbmcgNiBuYW0gMjAw OSB2ZSBjYWkgdmllYyANCnRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgZGEgcmEgbW90IHF1eWV0 IGRpbmggaG9hbiB0b2FuIHNhaSBoaWVuIHBoYXAgcGhhcCBsdWF0IGNobyANCnBoZXAgY2FjIGNv bmcgdHkgVHJ1bmcgUXVvYyBraGFpIHRoYWMgYmF1eGl0ZSBsYW0gbyBuaGllbSB2YSBob24gbnVh IGtlbyB0aGVvIGhvYSBtYXQgbnVvYy4gDQpDaG8gcGhlcCBjYWMgY29uZyB0eSBUcnVuZyBRdW9j IGtlbyBoYW5nIGRhbiBuZ3VvaSBUcnVuZyBRdW9jIHNhbmcgbW90IGNhY2ggbyBhdCB0YWkgVmll dCBOYW0uIFN1IGNheSBjdSBjdWEgTmd1eWVuIFRhbiBEdW5nIGRhIGR1b2MgdGhlIGhpZW4gcmF0 IHJvIGJhbmcgdmllYyBzYXUga2hpIHRvaSBkYSBraWVuIHRoaSBraG9uZyBjb24gY2FjaCBnaSB0 YW4gY29uZyB0b2kgdmUgbWF0IHBoYXAgbHVhdCBjdW5nIG5odSBjaGluaCB0cmkuIA0KVGhvaSBn aWFuIGdhbiBkYXkgZHVuZyBsYSB0b2kgdGllcCB0dWMgdGFuIGNvbmcgbmh1bmcgY2hpbmggc2Fj aCB1b24gaGVuIGN1YSBjaGluaCBwaHUgDQpkb2kgdm9pIHN1IGxhbiBsdW90IGN1YSB0cnVuZyBR dW9jIG8gYmllbiBEb25nIGN1bmcgbmh1IGNob25nIGxhaSB2aWVjIHZ1IHRyYW5nIGNobyBuZ3Ug ZGFuLiANClRvaSBub2kgdGhhbmcgcmEgcmFuZyBkYXkgbGEgc3UgdW9uIGhlbiBjdWEgY2hpbmgg cGh1LiBIYW5oIHZpIGRhcCB0dW9uZyByYW8gdHJhaSBwaGFwIA0KbHVhdCBjdWEgbmdheSBob20g bmF5IGRhIGRpZW4gcmEgdGFpIG5oYSB0b2kgZGEgdGhlIGhpZW4gdGh1IHR1b25nIHJhdCB0aWV1 IG5oYW4sIGNoaSBkYW8gY2FjIGNhcCB0aHVvYyBxdXllbiBkZSBtYSBxdWF5IHJvaSB0b2kuDQoN Ck1hYyBMYW06ICBTYXUga2hpIHN1IHZpZWMgeGF5IHJhIHRoaSBMUyBkYSBjbyBuaHVuZyBoYW5o IGRvbmcgbmFvIGRlIHR1IGJhbyB2ZSBjaG8gbWluaCB0cm9uZyB0aW5oIHRoYW4gbHVhdCBwaGFw Pw0KDQpMUyBDdSBIdXkgSGEgVnU6ICBOZ2F5IHNhdSBkbyB0b2kgZGEgbGVuIHRoYW5nIHRydSBz byBjdWEgQmFuIGNoYXAgaGFuaCBUcnVuZyB1b25nIGRhbmcsIHlldSBjYXUgZ2FwIFRvbmcgQmkg VGh1IE5vbmcgRHVjIE1hbmggZGUgeHUgbHkgaGFuaCB2aSBkYXAgcGhhIG5oYSB0b2kgbW90IA0K Y2FjaCB0cmFpIHBoYXAgbHVhdCB0aGUgbmF5LiBMdWMgYXkgaG8gY2h1eWVuIHRvaSBxdWEgZ2Fw IGFuaCBUaGFuaCwgdHJvIGx5IGN1YSBUb25nIGJpIHRodSB0aGkgYW5oIGF5IG5vaSBkYXkgbGEg Y29uZyB2aWVjIGN1YSBuaGEgbnVvYyBjaHUga2hvbmcgcGhhaSBjdWEgZGFuZy4NClRvaSBjYXUg cXVhIHRvaSBiYW8gdGhlIGRhbmcgbGFuaCBkYW8gbGEgZ2k/IFRoaSBsdWMgYXkgVGhhbmggYmFv IG9uZyBUb25nIEJpIHRodSBkYW5nIG5nb2kgdHJ1b2MgbWF0IHZhIGFuaCBzZSBjaHV5ZW4gbG9p IHNhdS4gVG9pIGxhaSBjaGF5IHNhbmcgdGltIE5ndXllbiBNaW5oIFRyaWV0IENodSB0aWNoIG51 b2MgdmEgeWV1IGNhdSBwaGFpIHRpZXAgdG9pLiANClR1eSBuaGllbiBraG9uZyBoZW4gdHJ1b2Mg dGhpIGtob25nIHRoZSB0aWVwIGR1b2Mgbmh1bmcgbmd1b2kgdGEgY3VuZyBuaGFuIGNhaSBkb24g Y3VhIHRvaSBkZSBjaHUgdGljaCBudW9jIG5naGllbiBjdXUuIFRvaSBob2FuIHRvYW4gdGluIG9u ZyBOZ3V5ZW4gVHJvbmcgS2hhbmggcGhvIGNodSANCnRpY2ggdXkgYmFuIG5oYW4gZGFuIHBodW9u ZyBEaWVuIEJpZW4gbm9pIGxhIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcgY2hpIGRhbyB2dSBu YXkgbGEgZHVuZy4NCg0KTWFjIExhbTogWGluIGNhbSBvbiBMdWF0IHN1Lg0KDQpZIGtpZW4gY3Vh IGJhbiBkb2M6DQpOZ3VvaSBTYWkgR29uIG5vaSBndWkgU2FpIEdvbiAyOC8wMS8yMDEwIDIwOjI0 Og0KT25nIFRodSB0dW9uZyBuYXkgbGFtIGdpIGR1b2MgZGFuIFZOIHRpbiB0dW9uZyBkYXUgbWEg bWF0IGxvbmcgdGluPyBDbyBkYXUgbWEgbWF0Lg0KDQpOZ3V5ZW4gbm9pIGd1aSBEYSBOYW5nIDI4 LzAxLzIwMTAgMTI6NTk6DQoNClRvaSBuZ2hpIHJhbmcgTFMgQ3UgSHV5IEhhIFZ1IGRhIGx1b25n IHRydW9jIG5odW5nIGtobyBraGFuIHNlIGRlbiB2b2kgbWluaCBuaHVuZyBkYW0gY2hhcCBuaGFu IHRhdCBjYS4gVG9pIHRoYXQgc3Uga2luaCB0cm9uZyBuaHVuZyBuZ3VvaSBuaHUgb25nLCB0b2kg dGluIHJhbmcgb25nIHNlIGJpZXQgY2FjaCB2dW90IHF1YS4gVHJpIHRodWMgY2EgbnVvYyBkYW5n IGh1b25nIHZlIG9uZy4NCg0KaHR0cDovL3d3dy50aGVnaW9pbmd1b2l2aWV0Lm5ldC9zaG93dGhy ZWFkLnBocD90PTExNzAwIFBoYW0gVG9hbiAobWFuZyBiYXV4aXRlIFZOKQ0KDQpBaSBnYXkgY2h1 eWVuIHZvaSBnaWEgZGluaCBUaWVuIHNpIGx1YXQgQ3UgSHV5IEhhIFZ1Pw0KDQpIb2kgOCBnaW8g MzAgcGh1dCBzYW5nIG5heSwgMjcgdGhhbmcgMDEgbmFtIDIwMTAsIGNodSB0aWNoIFV5IGJhbiBu aGFuIGRhbiBwaHVvbmcgRGllbiBCaWVuIFBodSBxdWFuIEJhIERpbmgsIEhhIE5vaSwpIExlIFZh biBEaW5oIGh1bmcgaG8gZGFuIGRhdSBtb3QgbHVjIGx1b25nIGdvbSBjYSBjb25nIGFuIGFvIHhh bmgsIGRhbiBwaG9uZyBhbyBkZW4uLi4gZGVuIDI0IERpZW4gQmllbiBQaHUsIG5oYSBvIGN1YSBn aWEgZGluaCBUaWVuIHNpIEx1YXQgQ3UgSHV5IEhhIFZ1LCBnb2kgbGEgZGUgImN1b25nIGNoZSIg YnVjIHR1b25nIHJhbyENCg0KTmdheSAxNS05LTIwMDksIHRyb25nIHZ1b24gbmhhIFRTIEhhIFZ1 IGNvIGhhaSBjYXkgYmkgYmFvIHRyb2MgcmUgZGUgc2FwIHR1b25nIHJhby4gTmdheSBzYXUgZG8g ZGUgYmFvIHZlIHRpbmggbWFuZyB2YSB0YWkgc2FuIGN1YSBnaWEgZGluaCBuZW4gdm8gY2hvbmcg VFMgSGEgVnUgZGEga2hhbiBjYXAgeGF5IGxhaSBwaGFuIHR1b25nIHJhbyBiaSBzYXAuIFZheSBs ZSB0aHVvbmcgbGEgbmV1IGtob25nIGdpdXAgZG8gZHVvYyBraG8gY2h1IHRoaSBjaGluaCBxdXll biBjaGkgaXQgY3VuZyBwaGFpIGRvbmcgdmllbiBuZ3VvaSBkYW4gbWF1IGNob25nIGtoYWMgcGh1 YyBoYXUgcXVhIHRoaWVuIHRhaSBtb2kgcGhhaSwgZGFuZyBuYXkuLi4gQmkgbmd1b2kgbmhhIFRT IEhhIFZ1IHBoYW4gbm8gaG9pIHJpZXQgbmd1eWVuIGRvLCBvbmcgTmd1eWVuIFRyb25nIEtoYW5o LCBwaG8gQ2h1IHRpY2ggVUJORCBwaHVvbmcgRGllbiBCaWVuIGN1YyBjaGFuZyBkYSBwaGFpIHRv YWMgbW9uZyBoZW86ICJDaHVuZyB0b2kgY3VuZyBjaGFuZyBtdW9uIGxhbSwgbmh1bmcgZGF5IGxh IGNoaSBkYW8gY3VhIFRodSB0dW9uZyEiLg0KDQpPbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVu ZyAicGh1YyB0aHUiIFRTIEN1IEh1eSBIYSBWdSBkbyBuZ2F5IDExIHRoYW5nIDYgbmFtIG5nb2Fp IFRTIGRhIHZhYyBkb24ga2llbiB0aGFuZyBvbmcgVGh1IHR1b25nIHJhIFRvYSBkbyBkYSByYSBx dXlldCBkaW5oIGNobyBraGFpIHRoYWMgYmF1eGl0ZSB0YWkgVGF5IE5ndXllbiB0cmFpIEhpZW4g cGhhcCB2YSBwaGFwIGx1YXQsIG1vdCBzdSBraWVuICJ2byB0aWVuIGtob2FuZyBoYXUiIHRyb25n IHRoZSBnaW9pIGNhYyBxdW9jIGdpYSBjb25nIHNhbiENCg0KRHVvaSBkYXkgbGEgbW90IHNvIGhp bmggYW5oIGRvIHBob25nIHZpZW4ga2hvbmcgY2h1eWVuIC0gc2luaCB2aWVuIGx1YXQgeGluIG8g QXVzdHJhbGlhIEN1IEh1eSBYdWFuIEhpZXUsIGNvbiB0cmFpIHRodSBjdWEgdm8gY2hvbmcgVFMg THVhdCBDdSBIdXkgSGEgVnUgdmEgTHVhdCBzdSBOZ3V5ZW4gVGhpIER1b25nIEhhLCBnaGkgbGFp IChhbmggY2h1cCBoaWVuIHRydW9uZyBrZW0gdGhlbykuIA0KDQpEdW9jIGJpZXQgVFMgQ3UgSHV5 IEhhIFZ1IHZhIGVtIGdhaSBsYSBDdSBUaGkgWHVhbiBCaWNoIG5nYXkga2hpIHhheSByYSBzdSBj byBkYSAidG9jIiB0aGFuZyB0b2kgbm9pIGxhbSB2aWVjIGN1YSBUb25nIEJpIHRodSBEYW5nIE5v bmcgRHVjIE1hbmggdmEgQ2h1IHRpY2ggTnVvYyANCk5ndXllbiBNaW5oIFRyaWV0IGRlIHRydWMg dGllcCBkYW0gZG9uIHRvIGNhbyBkb2kgbmdoaWVtIHRyaSB0aGVvIHBoYXAgbHVhdCBoYW5oIHZp ICJwaHVjIHRodSIgYmF0IGNoYXAgcGhhcCBsdWF0IGR1b2MgdGh1YyBoaWVuIGJvaSBjaGluaCBx dXllbiBwaHVvbmcgRGllbiBCaWVuLiANCg0KWGluIHRyYW4gdHJvbmcgZ2lvaSB0aGlldSBjdW5n IGJhbiBkb2MuDQoNCkRvbiB0byBjYW8ga2hhbiBjYXA6DQpDT05HIEhPQSBYQSBIT0kgQ0hVIE5H SElBIFZJRVQgTkFNDQpEb2MgbGFwIC0gVHUgZG8gLSBIYW5oIHBodWMNCg0KSGEgTm9pIG5nYXkg MjcvMDEvMjAxMA0KDQpET04gVE8gQ0FPIEtIQU4gQ0FQDQpWL1YgQ0hJTkggUVVZRU4gUEhVT05H IERJRU4gQklFTiBEQVAgUEhBIFRSQUkgUEhBUCBMVUFUIFRVT05HIA0KUkFPIE5IQSBDVUEgQ08g TkhBIFRITyBYVUFOIERJRVUgVkEgQ08gTkhBIFRITyBIVVkgQ0FOIFRBSSAyNCANCkRJRU4gQklF TiBQSFUgLSBIQSBOT0kNCg0KS2luaCBndWk6IENodSB0aWNoIE51b2MgQ0hYSENOVk4gTmd1eWVu IE1pbmggVHJpZXQNCg0KQ2h1bmcgdG9pIGxhIEN1IEh1eSBIYSBWdSB2YSBDdSBUaGkgWHVhbiBC aWNoLCBjb24gTmhhIHRobyBIdXkgQ2FuIHZhIGNoYXUgcnVvdCBOaGEgdGhvIFh1YW4gRGlldSwg eGluIGd1aSB0b2kgQ2h1IHRpY2ggbG9pIGNoYW8gdHJhbiB0cm9uZyB2YSBiYW5nIERvbiBuYXkg dG8gY2FvIHZvaSBDaHUgdGljaCB2ZSB2aWVjIGNoaW5oIHF1eWVuIHBodW9uZyBEaWVuIEJpZW4s IHF1YW4gQmEgRGluaCwgSGEgTm9pIGRhcCBwaGEgdHJhaSBwaGFwIA0KbHVhdCB0dW9uZyByYW8g bmhhIGNodW5nIHRvaSB2YSBjdW5nIGxhIG5oYSBjdWEgQ28gTmhhIHRobyBYdWFuIERpZXUgdmEg Q28gTmhhIHRobyBIdXkgQ2FuIHRhaSAyNCBEaWVuIEJpZW4gUGh1LCBIYSBOb2kgbmh1IHNhdToN Cg0KVmFvIGhvaSAyMyBnaW8gbmdheSAxNS85LzIwMDksIG11YSB0byBnaW8gbG9uIGRhIGxhbSBk byBtb3QgY2F5IGdpbyB2YSBtb3QgY2F5IGR1bmcgZGluaCB0cm9uZyB0cm9uZyBzYW4gdnVvbiBu aGEgY2h1bmcgdG9pIHZhIGhhaSBjYXkgbmF5IGRhIGRlIHNhcCB0dW9uZyByYW8gbmhhIGNodW5n IHRvaSANCnZhIGdpYSBkaW5oIGNodW5nIHRvaSBkYSBwaGFpIG5oYW5oIGNob25nIHhheSBsYWkg dHVvbmcgcmFvIChhbmggZGluaCBrZW0pIGRlIGtob25nIG5odW5nIGJhbyB2ZSB0YWkgc2FuIHZh IHRpbmggbWFuZyBjdWEgZ2lhIGRpbmggY2h1bmcgdG9pIG1hIGNvbiBiYW8gdmUgZGkgc2FuIHZh biBob2EgDQpjdWEgQ28gTmhhIHRobyBYdWFuIERpZXUgdmEgQ28gTmhhIHRobyBIdXkgQ2FuIGxh IGhhaSBkYW5oIG5oYW4gdmFuIGhvYSBkdW9jIERhbmcgY29uZyBzYW4gdmEgTmhhIG51b2MgVmll dCBOYW0gdG9uIHZpbmggYmFuZyBHaWFpIHRodW9uZyBIbyBDaGkgTWluaCAoZG90IEkpLiANCg0K VmF5IG1hIENodSB0aWNoIFVCTkQgcGh1b25nIERpZW4gQmllbiBwaG9pIGhvcCB2b2kgQ29uZyBh biBwaHVvbmcgRGllbiBCaWVuIGNobyBuZ3VvaSBkYXAgcGhhIHR1b25nIHJhbyBjdWEgbmhhIGNo dW5nIHRvaSB2YW8gc2FuZyBuYXksIDI3LzAxLzIwMTAgKGRpbmgga2VtIFRob25nIA0KYmFvIGN1 YSBVQk5EIHBodW9uZyBEaWVuIEJpZW4gbmhldCB2YW8gY3VhIG5oYSBjaHVuZyB0b2kgY2hpZXUg aG9tIHF1YSksIHBob3QgbG8gDQpjYW5oIGJhbyBiYW5nIHZhbiBiYW4gY3VhIGNodW5nIHRvaSBu Z2F5IDMxLzEyLzIwMDkgbGEgbmV1IGhvIGRhcCBwaGEgdHVvbmcgcmFvIG5oYSANCmNodW5nIHRv aSB0aGkgaG8gc2UgcGhhbSAiVG9pIGh1eSBob2FpIHRhaSBzYW4gY28gdG8gY2h1YywgZ2F5IGhh dSBxdWEgbmdoaWVtIHRyb25nIiANCnF1eSBkaW5oIHRhaSBEaWVtIGEgdmEgRGllbSBjIEtob2Fu IDIgRGlldSAxNDMgQm8gTHVhdCBIaW5oIHN1IGN1YSBOdW9jIENIWEhDTiANClZpZXQgTmFtdmFj aHVuZyB0b2kgc2UgdHJ1YyB0aWVwIHlldSBjYXUgQ2h1IHRpY2ggTnVvYyBuZ2hpZW0gdHJpIGhh bmggdmkgY2hhIGRhcCBOaGEgDQpudW9jIHBoYXAgcXV5ZW4sIGhhaSBkYW4sIHZvIHZhbiBob2Es IHBoYSBob2FpIG5vIGx1YyAib24gZGluaCBjaGluaCB0cmkiIGN1YSBEYW5nIHZhIE5oYSBudW9j IGN1YSBjaGluaCBxdXllbiBwaHVvbmcgRGllbiBCaWVuICh2YW4gYmFuIGRpbmgga2VtKS4gDQoN CktldCBsdWFuIGxhaToNCg0KWGF5IGxhaSB0dW9uZyByYW8gbmhhIG1pbmggYmkgdGhpZW4gdGFp IGxhbSBkbyBsYSBxdXllbiBiYXQga2hhIHhhbSBwaGFtIGN1YSBjb25nIGRhbiBuaGFtIGJhbyB2 ZSB0aW5oIG1hbmcgdmEgdGFpIHNhbiBjdWEgZ2lhIGRpbmggbWluaCB2YSB2aSB2YXkgaGFuaCB2 aSBjdWEgY2hpbmggcXV5ZW4gDQpwaHVvbmcgRGllbiBkYXAgcGhhIHR1b25nIHJhbyBuaGEgY2h1 bmcgdG9pIGxhIGhhbmggdmkgY28gdGluaCBodXkgaG9haSB0YWkgc2FuIGN1YSBjb25nIGRhbiB2 YSBiYXQgbmhhbjsgDQoNCkJhbmcgaGFuaCB2aSBjbyB0aW5oIGh1eSBob2FpIHRhaSBzYW4gY3Vh IGNvbmcgZGFuIHZhIGJhdCBuaGFuIG5vaSB0cmVuLCBjaGluaCBxdXllbiBwaHVvbmcgRGllbiBC aWVuIGRhIGNvIHRpbmggYm9pIG5obyBsb2kgZGF5IGN1YSBDaHUgdGljaCBIbyBDaGkgTWluaCAi Y2FuIGJvIGxhIGRheSB0byANCnRydW5nIHRoYW5oIGN1YSBuaGFuIGRhbiIgdmEgY3VvYyB2YW4g ZG9uZyByYW0gcm8gIkhvYyB0YXAgdmEgbGFtIHRoZW8gdGFtIGd1b25nIGRhbyBkdWMgSG8gQ2hp IE1pbmgiIGRvIGNoaW5oIERhbmcgcGhhdCBkb25nLCBwaHUgZGluaCBzYWNoIHRyb24gIkNoaW5o IHF1eWVuIGN1YSBEYW4sIA0KZG8gRGFuLCB2aSBEYW4iIHZhIE5oYSBudW9jIFBoYXAgcXV5ZW4g ZG8gY2hpbmggRGFuZyBjYXQgY29uZyB4YXkgZHVuZzsgDQoNCkRlIGdpdSB1eSB0aW4gY2hvIERh bmcgdmEgTmhhIG51b2MgY3VuZyBuaHUgZGUgYmFvIHZlIHF1eWVuIHZhIGxvaSBpY2ggaG9wIHBo YXAgY3VhIGNodW5nIHRvaSwgbmh1bmcgbmd1b2kgZ2l1IGdpbiBkaSBzYW4gdmFuIGhvYSBjdWEg Q28gTmhhIHRobyBYdWFuIERpZXUgdmEgQ28gTmhhIHRobyANCkh1eSBDYW4sIGNodW5nIHRvaSB0 cmFuIHRyb25nIGRlIG5naGkgQ2h1IHRpY2ggeWV1IGNhdSBjYWMgY28gcXVhbiBiYW8gdmUgcGhh cCBsdWF0IGNoYW0gZHV0IG5nYXkgbGFwIHR1YyBoYW5oIHZpIGRhcCBwaGEgdHVvbmcgcmFvIG5o YSBjaHVuZyB0b2kgY3VhIGNoaW5oIHF1eWVuIHBodW9uZyANCkRpZW4gQmllbiB2YSBraG9pIHRv IG5odW5nIG5ndW9pIHRodWMgaGllbiBoYW5oIHZpIG5heSB2ZSAiVG9pIGh1eSBob2FpIHRhaSBz YW4gY28gdG8gDQpjaHVjLCBnYXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmciIHF1eSBkaW5oIHRhaSBE aWVtIGEgdmEgRGllbSBjIEtob2FuIDIgRGlldSAxNDMgQm8gDQpMdWF0IEhpbmggc3UgY3VhIE51 b2MgQ0hYSENOIFZpZXQgTmFtLiANCkNodW5nIHRvaSBjaGFuIHRoYW5oIGNhbSBvbiB2YSBkb2kg aG9pIGFtIGN1YSBDaHUgdGljaCBOdW9jIA0KDQotDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGlu aHRyaS8yMDA2LzA0LzU2NDAyNC8NCg0KT25nIE5ndXllbiBUYW4gRHVuZyBxdWUgbyBDYSBNYXUg DQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9CYW8tZG9uZy10aW5oLXRyYW5nLWNo YXQtcGhhLXJ1bmctcGhvbmctaG8tdmVuLWJpZW4vMjAxMDcvMTkwOTE5Lmxhb2RvbmcgODo1MCBB TSwgMDYvMDcvMjAxMA0KDQpDYSBNYXU6IEJhbyBkb25nIHRpbmggdHJhbmcgY2hhdCBwaGEgcnVu ZyBwaG9uZyBobyB2ZW4gYmllbg0KDQpodHRwOi8vdm4uMzYwcGx1cy55YWhvby5jb20vcXVhbjU3 OTEvYXJ0aWNsZT9taWQ9Njg0IE1hbmggUXVhbiAxMDoyMSAwMi0wNi0yMDEwDQoNCkNhIE1hdTog VGhhbSBuaHVuZyBjdWMgYmFuIGNoaSBiaSBjYW5oIGNhbyEgDQoNCk1vdCB2dSB2aWVjIG1vaSBk dW9jIHBoYXQgaGllbiBnYW4gZGF5IG8gdGluaCBDYSBNYXUgY28gbGllbiBxdWFuIGRlbiB0cmFj aCBuaGllbSB4dSANCmx5ICBjdWEgbGFuaCBkYW8gdGluaCBuYXkgdm9pIG5ndW9pIGNvIGhhbmgg dmkgdGhhbSBuaHVuZyBsYSBtb3QgdmkgZHUgcm8gcmFuZyBjaG8gdGhheSwgDQptb3Qga2hpIHRo YW0gbmh1bmcgY29uIGNvIGNobyBkZSBudW9uZyB0dWEsIGJhbyBjaGUgdGhpIGR1IG5oYSBudW9j IGNvIHF1eWV0IHRhbSANCmNob25nIHRoYW0gbmh1bmcgZGVuIGRhdSB0aGkgY3VvYyBkYXUgdHJh bmggcGhvbmcsIGNob25nIHRoYW0gbmh1bmcgc2UgY2h1YSB0aGUgZGF0IA0KZHVvYyBoaWV1IHF1 YSBuaHUgbmd1b2kgZGFuIG1vbmcgZG9pLg0KDQpWdSB2aWVjIG5heSB4YXkgcmEgdGFpIGR1IGFu IEZTUFMgSUktdGVuIGdvaSBjdWEgY2h1b25nIHRyaW5oIHBoYXQgdHJpZW4gbnVvaSB0cm9uZyB0 aHV5IA0Kc2FuIGJlbiB2dW5nIGRvIGNoaW5oIHBodSBEYW4gTWFjaCB0YWkgdHJvLCBkdW9jIGdp YW8gY2hvIGJvIE5vbmcgbmdoaWVwIHZhIFBoYXQgDQp0cmllbiBOb25nIHRob24gY2h1IHRyaS4g VGluaCBDYSBNYXUgbGEgZG9uIHZpIHRoYW0gZ2lhIHZvaSB0dSBjYWNoIGhvcCBwaGFuIGN1YSBk dSBhbiANCihob3AgcGhhbiBuYXkgZ29pIGxhIFNVREEpLiBWYSBjaGluaCBvIHBoYW4gdGhhbSBn aWEgY3VhIHRpbmggQ2EgTWF1LCBkYSB4YXkgcmEgbW90IA0KdnUgdGhhbSBuaHVuZyBsb24gZ2F5 IHBoYW4gbm8gdHUgcGhpYSBuaGEgdGFpIHRyby4NCg0KVGhlbyBuaHUga2V0IGx1YW4gdGhhbmgg dHJhIGN1YSBibyBOb25nIG5naGllcCB2YSBQaGF0IHRyaWVuIE5vbmcgdGhvbiAoTk4mUFROVCkg DQp0aGkgcmllbmcgaG9wIHBoYW4gU1VEQSBjdWEgQ2EgTWF1IGRhIGR1b2MgRGFuIE1hY2ggdmll biB0cm8gdHJlbiA5LDcgdHkgZG9uZyB0dSANCm5hbSAyMDA2IGRlbiB0aGFuZyA2LjIwMDkuIE5n b2FpIHJhLCBjb24gY28gdGhlbSAxLDE1IHR5IGRvbmcgbGEgdm9uIGRvaSB1bmcgY3VhIA0KQ2hp bmggcGh1IFZpZXQgTmFtLiBOaHVuZyBuaHVuZyBrZSB0aGFtIG5odW5nIGRhIGR1YyBraG9ldCBt b3QgcGhhbiBraGEgbG9uIHNvIA0KdGllbiBuYXk6IHRoZW8gdGhhbmggdHJhLCB0cm9uZyBzbyB0 aWVuIGRhIGdpYWkgbmdhbiBjaG8gaG9wIHBoYW4gZHUgYW4gbGEgNyw1IHR5IGRvbmcgdGhpIA0K c28gdGllbiBkYSBjaGkgdGlldSB0cmFpIG5ndXllbiB0YWMgcXVhbiBseSB0YWkgY2hpbmggZGEg Z2FuIDQsMiB0eSBkb25nIHZhIHRyb25nIGRvLCBzbyB0aWVuIA0KYmkgdGhhdCB0aG9hdCBnYW4g MiwzIHR5IGRvbmcuDQoNClRoYW5oIHRyYSBjdWEgYm8gTk4mUFROVCBkYSBjaGkgZGljaCBkYW5o IG9uZyBOZ3V5ZW4gVGhvbmcgTmhhbiAob25nIE5oYW4gdHJ1b2MgDQpkYXkgbGEgcGhvIEdpYW0g ZG9jIHNvIFRodXkgc2FuIENhIE1hdSwgc28gbmF5IG5heSBuaGFwIHZlIHNvIE5OJlBUTlQpLCBn aWFtIGRvYyANCmhvcCBwaGFuIFNVREEgdmEgbW90IHNvIGNhIG5oYW4ga2hhYyBsYSBuaHVuZyBu Z3VvaSBkYSB0aGFtIG8sIHR1IHR1aSB0aWVuIGR1IGFuLiBDdSANCnRoZSwgdGhhbmggdHJhIGtl dCBsdWFuIG9uZyBOaGFuIGRhICJ0aGlldSB0cmFjaCBuaGllbSwgYnVvbmcgbG9uZyBxdWFuIGx5 IHRyb25nIHZpZWMgDQpxdWFuIGx5LCBzdSBkdW5nIGtpbmggcGhpIiwgImxhbSB0cmFpIG5ndXll biB0YWMgcXVhbiBseSB0YWkgY2hpbmgiIHZhIHJvIHJhbmcgaG9uICJkYSANCmNoaWVtIGRvYXQs IHR1IGxvaSBjYSBuaGFuIHNvIHRpZW4gNTUgdHJpZXUgZG9uZyIgdmEgc3UgZHVuZyAidHJhaSBw aGFwIGx1YXQiIG1vdCBraG9hbiANCnRpZW4gdHJpIGdpYSB0cmVuIDU0LDMgdHJpZXUgZG9uZyBr aGFjLiBNb3Qgc28gY2EgbmhhbiBraGFjIGN1bmcgdHJhbmggdGh1IGNoaWVtIGR1bmcgbW90IA0K c28ga2hvYW4gdGllbiBkYW5nIGtlIG5odTogb25nIE5ndXllbiBUcnVuZyBDaGFuaCwgbmd1eWVu IGdpYW0gZG9jIHRydW5nIHRhbSANCktodXllbiBuZ3UgY3VhIHRpbmgsIGNoaSBjdWMgdHJ1b25n IGNoaSBjdWMgQmFvIHZlIG5ndW9uIGxvaSB0aHV5IHNhbiBDYSBNYXUgY2hpZW0gDQpkb2F0IDEy OSw1IHRyaWV1IGRvbmcsIGJhIEhvYW5nIFRoaSBCdXQsIG5ndXllbiBwaG8gcGhvbmcgaGFuaCBj aGluaC10b25nIGhvcCBjdWEgDQp0cnVuZyB0YW0gS2h1eWVuIG5ndSBjaGllbSBkb2F0IDEwMyB0 cmlldSBkb25nIChjaHVhIGtlIGdhbiAxIHR5IGRvbmcgYmEgbmF5IGNobyBjYWMgDQpjYSBuaGFu IG11b24gdmEgdGFtIHVuZyBuaHVuZyBjYWMgY2EgbmhhbiBuYXkga2hvbmcgY29uZyBuaGFuIHZp ZWMgbm8pLiBNb3QgY2EgbmhhbiANCmtoYWMsIG9uZyBIYSBQaHUgTG9pLCBjdW5nIGxhIGNhbiBi byBiYW4gcXVhbiBseSBkdSBhbiBkYSBsYXAgY2h1bmcgdHUgdGhhbmggdG9hbiANCmtob25nIGN1 YSBjYWMgbG9wIHRhcCBodWFuIHRoYW0gbyBzbyB0aWVuIDUyLDY4IHRyaWV1IGRvbmcuIE5odW5n IGtlIHRoYW0gbmh1bmcgZGEgY28gDQpyYXQgbmhpZXUgdGh1IGRvYW4gZGUgcnV0IHRpZW4gZHUg YW4gbmh1ICB0byBjaHVjIGhvaSBuZ2hpLCBsb3AgdGFwIGh1YW4gImtob25nIiAoY2hpIHRvbiAN CnRhaSB0cmVuIGdpYXkpLCBsYXAgaG8gc28sIGNodW5nIHR1IGdpYSBtYW8sIGt5IGNhYyBob3Ag ZG9uZyB0aHVlIHhlIHJvaSBydXQgdGllbiwgdGhhbmggDQp0b2FuIGtob25nIHRpZW4gdGh1ZSBu aGEsIHRodWUgcGh1b25nIHRpZW4gZGkgbGFpLCBtdWEgaG9hIGRvbiBkZSBpbiBiYW4gZG8uLi5O b2kgY2h1bmcgDQpsYSBraG9uZyB0dSBtb3QgdGh1IGRvYW4gbmFvIGRlIG1vaSBsYW4gcnV0IHJh IHR1IHZhaSB0cmlldSBkZW4gdmFpIGNodWMgdHJpZXUgY3VhIGhvcCANCnBoYW4gZHUgYW4uDQoN ClRvYW4gYm8gc28gdGllbiBnYXkgdGhhdCB0aG9hdCBnYW4gMiwzIHR5IGRvbmcgdmEgaGFuZyB0 cmFtIHRyaWV1IGRvbmcgYmkgdGhhbSBuaHVuZywgeGEgDQp4ZW8gZGEgZHVvYyBjbyBxdWFuIGNo dWMgbmFuZyB5ZXUgY2F1IGJhdCBidW9jIHBoYWkgdGh1IGhvaS4gVm9pIG5odW5nIGhhbmggdmkg bmh1IA0KdmF5LCB0aGVvIGR1bmcgcXV5IGRpbmggY3VhIGJvIGx1YXQgSGluaCBzdSwgb25nIE5o YW4sIG9uZyBDaGFuaCwgYmEgQnV0LCBvbmcgTG9pICB2YSANCm1vdCBzbyBjYSBuaGFuIGtoYWMg bnVhIHNlIHBoYWkgYmkgdHJ1eSB0bywgcGhhdCB0dS4gTWFjIGR1IHNvIHRpZW4gdHUgdmFpIGNo dWMgZGVuIHZhaSANCnRyYW0gdHJpZXUgZG9uZyBkYSBkdW9jIGNvIHF1YW4gY2h1YyBuYW5nIGto YW5nIGRpbmggbGEgY2hpZW0gZHVuZyBjYSBuaGFuIGN1YSBuaHVuZyANCm5ndW9pIG5heSBraG9u ZyBwaGFpIGxhIHF1YSBuaGlldSBuaHVuZyBubyBkYSBkdSBjbyBzbyBkZSBraG9pIHRvIG1vdCB2 dSBhbiBkYW5nIGNodSB5IA0KdmUgdG9pIHRoYW0gbmh1bmcuIEhvbiBudWEsIHRyb25nIHNvIHRp ZW4gaG9uIDIsMjggdHkgZG9uZyBjdWEgZHUgYW4gbWEgdGhhbmggdHJhIGNobyANCnJhbmcgZGEg YmkgdGhhdCB0aG9hdCBjdW5nIGRhIGxhIG1vdCBraG9hbiB0aWVuIGxvbiB2YSBjbyB0cmFjaCBu aGllbSBraG9uZyBuaG8gdmUgbWF0IA0KcXVhbiBseSBjdWEgb25nIE5oYW4sIGdpYW0gZG9jIFNV REEgdmEgbmh1bmcgbmd1b2kgY28gbGllbiBxdWFuLiANCg0KVGhlIG5odW5nLCBvbmcgTmhhbiB2 YSBuaHVuZyBuZ3VvaSBjbyBzYWkgcGhhbSBraGFjIGRhIGJpIHh1IGx5IG5odSB0aGUgbmFvPy5u Z2F5IA0KMjIvMDIvMjAxMCwgVUJORCB0aW5oIENhIE1hdSBkYSAgcmEgcXV5ZXQgZGluaCBzbyAy ODIvUUQtVUJORCB4dSBseSBvbmcgTmhhbiBiYW5nIGhpbmggdGh1YyANCmNhbmggY2FvICh0cnVv YyBkbywga2hpIGhvcCBraWVtIGRpZW0sIG9uZyBOaGFuIHhpbiBkdW9jIGt5IGx1YXQgYmFuZyAN CmhpbmggdGh1Yzoga2hpZW4gdHJhY2gpLiBPbmcgTmd1eWVuIFRydW5nIENoYW5oLCBiYSBIb2Fu ZyBUaGkgQnV0IGN1bmcgY2hpIGJpIGNhY2ggDQpjaHVjLg0KDQpUaGVvIGxvaSBtb3QgY2FuIGJv IGNhbyBjYXAgdHJvbmcgZG9hbiBraWVtIHRyYSBjdWEgVHJ1bmcgdW9uZyB2ZSBsYW0gdmllYyB2 b2kgbGFuaCANCmRhbyB0aW5oIENhIE1hdSB0aGkgdnUgdmllYyBuaHUgdHJlbiBsYSByYXQgbmdo aWVtIHRyb25nIHZhIGhvYW4gdG9hbiBkdSBjbyBzbyBkZSB0cnV5IA0KY3V1IHRyYWNoIG5oaWVt IGhpbmggc3UuIENvbiBuZXUgeHUgbHkga3kgbHVhdCBoYW5oIGNoaW5oIHRoaSBtdWMga3kgbHVh dCBoYW5oIGNoaW5oIA0Kbmh1IFVCTkQgdGluaCBDYSBNYXUgZGEgYXAgZHVuZyBjdW5nIGtob25n IHBodSBob3Agdm9pIG5naGkgZGluaCBzbyAzNS8yMDA1L05ELQ0KQ1AgY3VhIENoaW5oIHBodSB2 ZSBreSBsdWF0IGNhbiBibywgY29uZyBjaHVjLiBUaGVvIG9uZyBuYXksIG11YyB4dSBseSB2ZSBo YW5oIGNoaW5oIA0Kdm9pIG9uZyBOaGFuIHBoYWkgbGEgbXVjIGNhY2ggY2h1YyBob2FjIGJ1b2Mg dGhvaSB2aWVjIGNodSBraG9uZyBuZW4gY2hpIG8gbXVjIGNhbmggDQpjYW8uDQoNCk1vdCB2dSB0 aGFtIG5odW5nIG5odSB0YWkgZHUgYW4gU1VEQSwgeGV0IHZlIHRpbmggY2hhdCBkdSBhbiwgY28g dGhlIG5vaSBsYSBuZ2hpZW0gDQp0cm9uZyBib2kgZGF5IGxhIGR1IGFuIHhvYSBkb2ksIGdpYW0g bmdoZW8gY2hvIG5odW5nIGhvIGRhIGR1b2MgdGluaCBDYSBNYXUgY2FwIHNvIGhvIA0KbmdoZW8u IFZvaSB2aWVjIHRvIGNodWMgbG9wIGhvYyBraG9uZywgbGFtIGdpYXkgdG8gZ2lhIG1hby4uZGUg cnV0IHRpZW4gY3VhIG9uZyBOaGFuICB2YSANCmNhYyBjYSBuaGFuIGtoYWMsIGRvbmcgbmdoaWEg dm9pIGhhbmggdmkgYW4gY2hhbiB0aWVuIGN1YSBuZ3VvaSBuZ2hlby4gS2luaCBwaGkgZHUgYW4g DQpjaHUgeWV1IGxhIHRpZW4gY3VhIENoaW5oIHBodSBEYW4gTWFjaCB0YWkgdHJvIHZhIHRpZW4g dHUgbmdhbiBzYWNoIG5oYSBudW9jIG5lbiB2aWVjIA0KeGEgeGVvLCBnYXkgdGhhdCB0aG9hdCBw aGFuIGxvbiBzbyB0aWVuIGRvIGN1bmcgZ2F5IG5lbiBiYXQgYmluaCB0dSBuaGEgdGFpIHRyby4g WGV0IHRyZW4gY2EgDQoyICB2YW4gZGUgZG8sIHZpZWMgY2hpIGNhbmggY2FvIGNhbiBibyB0aGFt IG5odW5nIGNvIHRoZSBkdW9jIGNvaSBuaHUgc3UgYmFvIGNoZSwgbGFtIA0KbmhlIHRvaSBjaG8g a2UgdGhhbSBuaHVuZyBjdWEgbGFuaCBkYW8gVUJORCB0aW5oIENhIE1hdS4gRGF1IGhpZXUgYmFv IGNoZSB0aGUgaGllbiANCnJvIG5nYXkgdHJvbmcgcXV5ZXQgZGluaCBreSBsdWF0IGN1YSBVQk5E IHRpbmgga2hpIHRyb25nIHF1eWV0IGRpbmggbmF5LCBuZ3VvaSB0YSBkYSANCmxvYWkgYm8gaGFu aCB2aSAiY2hpZW0gZG9hdCwgdHUgbG9pIGNhIG5oYW4iIG1hIGtldCBsdWFuIHRoYW5oIHRyYSBi byBOTiZQVE5OIGRhIG5ldS4gDQpNb3QgZGlldSBkYW5nIGNodSB5IGtoYWMgbGEgZGEgcXVhIDMg dGhhbmcga2UgdHUgbmdheSBvbmcgTmhhbiBiaSB4dSBseSBreSBsdWF0IHZlIA0KY2hpbmggcXV5 ZW4sIHZpZWMgeHUgbHkga3kgbHVhdCB2ZSBtYXQgRGFuZyB2b2kgb25nIG5heSB2YW4gImRhbmcg dHJvbmcgcXVhIHRyaW5oIHhlbSANCnhldCIuIE5nb2FpIHJhLCB2aWVjIFVCTkQgdGluaCBDYSBN YXUga2hvbmcgeGVtIHhldCBkZW4gdHJhY2ggbmhpZW0gY3VhIGJhbiBjaGkgZGFvIA0KZHUgYW4g U1VEQSBjdWEgdGluaCwgZG8gb25nIFBoYW0gVGhhbmggVHVvaSwgcGhvIGNodSB0aWNoIFVCTkQg dGluaCBsYW0gdHJ1b25nIA0KYmFuIGN1bmcgbGEgbW90IHZhbiBkZSBkYW5nIGx1dSB5LiBUaGF0 IGtobyBoaWV1IGtoaSBzYWkgcGhhbSBjdWEgYmFuIHF1YW4gbHkgdmEgY2FjIA0KbmhhbiBkaWVu IHJhIHRyb25nIG5oaWV1IG5hbSBtYSBiYW4gY2hpIGRhbyBjdWEgdGluaCBsYWkga2hvbmcgYmll dCBnaSB2YSBraG9uZyBjbyBraWVuIA0KbmdoaSB4dSBseS4NCg0KaHR0cDovL3d3dy5ubGQuY29t LnZuLzIwMTAwMjI0MDIyODM4NTExUDBDMTAwMi9iaS1jYW5oLWNhby12aS1jaGllbS1kb2F0LXRp ZW4tZHUtYW4uaHRtIDI0LzAyLzIwMTAgMDI6MjhHTVQrNw0KDQpDYSBNYXU6IFBobyBnaWFtIGRv YyBTbyBOTi0gUFROVCBjaGllbSBkb2F0IHRpZW4gZHUgYW4gDQoNCmh0dHA6Ly92aWV0YmFvLnZu L0FuLW5pbmgtUGhhcC1sdWF0L1RvaS1iaS10cnV5LWJ1Yy1kZW4ta2hvbmctbXVvbi1zb25nLW51 YS1yb2kvMTA3NzgwMDIvMjE4LyAwOC83LzIwMDIsIDE2OjE4IEdNVCs3DQoNCkNhIE1hdTogVGhh bSBuaHVuZyBxdWkgbW8gbG9uIQ0KDQpOZ3V5ZW4gY2h1IHRpY2ggVUJORCB0aW5oIENhIE1hdSBM ZSBDb25nIE5naGllcCBjaG8gYmlldDogJ1RvaSBiaSB0cnV5IGJ1YyBkZW4ga2hvbmcgbXVvbiBz b25nIG51YSByb2knDQoNCk5ndXllbiBjaHUgdGljaCBVQk5EIHRpbmggQ2EgTWF1IExlIENvbmcg TmdoaWVwIGRhIHRob3QgbGVuIG5odSB2YXksIGtoaSBiaSBidW9jIA0KcGhhaSBjaGl1IGhhdSBo ZXQgdHJhY2ggbmhpZW0gdmUgY2FjIHNhaSBwaGFtIHhheSByYSBvIHRpbmggbGllbiBxdWFuIGRl biAyIHZ1IGFuIGxvbiB0YWkgDQpDb25nIHR5IER1b2MsIGtpbmggZG9hbmggWE5LIHZhIENvbmcg dHkgRGljaCB2dSB0aHVvbmcgbWFpLiBPbmcga2hhbmcgZGluaCB0YXQgY2EgDQpsYSBkbyB0YXAg dGhlIGxhbmggZGFvIGNodSBraG9uZyBwaGFpIG1pbmggb25nIHF1eWV0IGRpbmguIA0KDQpIYWkg dnUgYW4gdHJlbiBkYSBrZXQgdGh1YyBnaWFpIGRvYW4gMSBjdWEgbmh1bmcgdnUgdmllYyB0aGFt IG5odW5nIGxvbiBvIENhIE1hdS4gR2lhaSANCmRvYW4gMiwgY28gcXVhbiBjaHVjIG5hbmcgZGFu ZyBsYW0gcm8gdHJhY2ggbmhpZW0gY3VhIGNhYyBxdWFuIGNodWMgbGllbiBxdWFuLiBDbyBkYXUg DQpoaWV1IGNobyB0aGF5IGhhdSBoZXQgbG9pIGR1b2MgcXV5IGNobyBvbmcgTGUgQ29uZyBOZ2hp ZXAsIG5ndW9pIGdpdSBjaHVjIHBobyBjaHUgDQp0aWNoIFVCTkQgdGluaCBjYWMgbmFtIDE5ODkt MTk5OCwgdmEgY2h1IHRpY2ggdHUgdGhhbmcgMTIvMTk5OSBkZW4ga2hpIGJpIGNhY2ggY2h1Yywg DQp0aGFuZyA0LzIwMDEuDQoNClRoZW8gbG9pIG9uZyBOZ2hpZXA6ICJVQk5EIHRpbmggbGFuaCBk YW8gdGhlbyBuZ3V5ZW4gdGFjIHRhcCB0aGUsIGNhIG5oYW4gcGh1IHRyYWNoIi4gDQpUaG9pIGRp ZW0geGF5IHJhIDIgdnUgdGhhbSBvLCBjbyB5IGxhbSB0cmFpIG8gQ29uZyB0eSBEdW9jIHZhIENv bmcgdHkgRGljaCB2dSB0aHVvbmcgDQptYWksIG9uZyBOZ2hpZXAgZGFuZyBsYSBwaG8gY2h1IHRp Y2ggdGluaCwgY29uIG9uZyBQaGFtIFRoYWNoIFRyaSBsYSBjaHUgdGljaCwgYmEgT25nIA0KVGhp IEhvbmcgVGhvIGxhIHBobyBjaHUgdGljaCB0aHVvbmcgdHJ1Yy4NCg0KT25nIE5naGllcCBkYSBr eSBkdXlldCBjaHUgdHJ1b25nLCBkZSBOZ3V5ZW4gSHVuZyBUYW4sIGdpYW0gZG9jIENvbmcgdHkg RHVvYywgbG9pIA0KZHVuZyBuYW5nIGdpYSBtdWEgbWF5IHNheSB0YW5nIHNvaSB0dSAxMCB0cmll dSBkb25nIGxlbiBob24gMSw2NSB0eSBkb25nLiBOaHVuZyBzYXUgZG8gDQp2dSB2aWVjIGRhIGJp IGRhaSB0YSBOZ3V5ZW4gVHJ1bmcgVHJ1YywgUGhvIGdpYW0gZG9jIENvbmcgYW4gdGluaCBwaGF0 IGhpZW4uIEJhbiBiYW8gDQpjYW8gY3VhIG9uZyBUcnVjIGRlbiB0YXkgYmEgVGhvLCBvbmcgVHJp IHJvaSByb2kgdmFvIHF1ZW4gbGFuZywgdHJvbmcga2hpIG9uZyBUcnVjIHBoYWkgDQp2ZSBodXUg bm9uLiBTYXUgZG8gKHRoYW5nIDMvMTk5NSksIE5ndXllbiBIdW5nIFRhbiBjb24gZHVvYyBvbmcg bWFpIEh1dSBDaGluaCwgDQpwaG8gZ2lhbSBkb2MgU28gVGFpIGNoaW5oIChuYXkgbGEgZ2lhbSBk b2MgS2hvIGJhYyBDYSBNYXUpIGt5IGNvbmcgdmFuIGxhbSBjbyBzbyANCmNobyBCbyBUYWkgY2hp bmggbWllbiB0aHVlIHBodSB0aHUgMTAuMDAwIHRhbiBwaGFuIHVyZSB2YSAxMC4wMDAgdGFuIHNh dC4gVGFuIGRhIGxvaSANCmR1bmcgY2FjIHZhbiBiYW4gbmF5IGdheSB0aGlldCBoYWkgaG9uIDQg dHkgZG9uZy4NCg0KVmUgdmllYyBuYXksIGJhbyBjYW8gc28gNDMgdmUgY29uZyB0YWMgdGhhbmcg OCB2YSBrZSBob2FjaCB0aGFuZyA5LzE5OTYgY3VhIFVCTkQgDQp0aW5oLCBkbyBiYSBUaG8ga3kg bmdheSA3LzkvMTk5NiwgY28gZG9hbjogIkNoaSBkYW8gbWllbiBwaHUgdGh1IGNhYyBsbyBoYW5n IHNhdCB4YXkgDQpkdW5nLCBwaGFuIHVyZSBuaGFwIGtoYXUuLi4iLiBPbmcgTmdoaWVwIGNobyBo YXksIHZpZWMgbmF5ICJjbyBzdSBjaGkgZGFvIGN1YSB0YXAgdGhlIA0KQmFuIHRodW9uZyB2dSBU aW5oIHV5LCBVQk5EIHRpbmgiLiBUaG9pIGRpZW0gZG8gb25nIERhbmcgVGhhbmggSG9jIGxhIGJp IHRodSBUaW5oIA0KdXksIGNvbiBwaHUgdHJhY2gga2hvaSB0YWkgY2hpbmggbGEgcGhvIGNodSB0 aWNoIFBoYW0gVmFuIER1Yy4NCg0KRGllbiBiaWVuIGNhYyB2dSBhbiB0aGFtIG5odW5nIG8gQ2Eg TWF1IGNobyB0aGF5IGtob25nIHRoZSBsb2FpIHRydSB0cmFjaCBuaGllbSBjdWEgYmkgDQp0aHUg RGFuZyBUaGFuaCBIb2MuIFNvbmcgdGh1YyB0ZSwgdGhlbyBsb2kgbmd1b2kgZGFuIG8gZGF5LCBn aWEgdGFpIG9uZyBtb2kgbmdheSBtb3QgDQpuaGlldSwgdHJvbmcga2hpIG9uZyBkdW9jICJoYSBj YW5oIGFuIHRvYW4iLiBWb2kgY2h1IHRpY2ggUGhhbSBUaGFjaCBUcmksIG5nb2FpIHRyYWNoIA0K bmhpZW0gY2hpIGRhbyBjaHVuZyBvIFVCTkQgdGluaCwgb25nIGNvbiBjbyB0cmFjaCBuaGllbSBr aGkga3kgY2hvIHBoZXAgTmd1eWVuIA0KSHVuZyBUYW4gdmF5IG5nYW4gc2FjaCBkYW8gaGFuIG5v IG5nYW4gaGFuZy4gQ29uIHBobyBjaHUgdGljaCBQaGFtIFZhbiBEdWMgcGhhaSANCmNoaXUgdHJh Y2ggbmhpZW0ga2hpIGt5IGR1eWV0IGtob25nIGNhbiBkb25nIGRhdSwgY2hvIFRhbiB2YXkgMTMg dHkgZG9uZyB0dSBuZ3VvbiB2b24gDQpraGFjIHBodWMgaGF1IHF1YSBiYW8gKHRyb25nIGhhaSB0 aGFuZyA1LTYvMTk5OCkuDQoNClRhcCB0aGUgbGFuaCBkYW8gdGluaCBuYXkgY29uIHBoYWkgY2hp dSB0cmFjaCBuaGllbSBraGkgZHVhIHJhIGNodSB0cnVvbmcgY2h1eWVuIGRvaSANCnBodW9uZyB0 aWVuIHZhbiB0YWkgdGhvIHNvIGJhbmcgeGUgNCBiYW5oLiBDaHUgdHJ1b25nIGR1YSByYSBtb3Qg Y2FjaCB2b2kgdmFuZywgdGhpZXUgDQpzdSBjaHVhbiBiaSwgZ2F5IGtobyBraGFuIGNobyBoYW5n IHRyYW0gbmd1b2kgaGFuaCBuZ2hlIHhlIGxvaSwgbmh1bmcgbGFpIHJhdCAiaG9wIHRob2kiIA0K dm9pIHlldSBjYXUgZ2lhaSBuZ3V5IGNobyA1NCBvdG8gbWEgTmd1eWVuIEh1bmcgVGFuIG5oYXAg a2hhdSBiYW5nIDQsMiB0eSBkb25nIG5nYW4gDQpzYWNoIGtoYWMgcGh1YyBoYXUgcXVhIGJhbyBz byA1ICgxOTk3KS4NCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL1Z1LXRpZXUtY3Vj LXRhaS1DYW1pbWV4LUNhLU1hdS1Cby1sb3QtdG9pLXBoYW0vMjAwNzkvNTQ4MzcubGFvZG9uZyA4 OjI2IEFNLCAxMi8wOS8yMDA3DQoNCkNhIE1hdTogVnUgdGlldSBjdWMgdGFpIENhbWltZXggYm8g bG90IHRvaSBwaGFtDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9UaW5oLXRyYW5n LWNoYXQtcGhhLXJ1bmctdmFuLWNodWEtdGh1eWVuLWdpYW0vMjAxMDcvMTkxODA2Lmxhb2Rvbmcg OToxNyBBTSwgMTMvMDcvMjAxMA0KDQpDYSBNYXU6IFRpbmggdHJhbmcgY2hhdCBwaGEgcnVuZyB2 YW4gY2h1YSB0aHV5ZW4gZ2lhbQ0KIA0KUnVuZyBuZ2FwIG1hbiBDYSBNYXUgbGllbiB0aWVwIGJp IG5ndW9pIGRhbiBjaGF0IGxheSBnbyBsYW0gdHJ1IGhhbmcgZGF5Lg0KDQpMaWVuIHRpZXAgdHJv bmcgdm9uZyBnYW4gbW90IHRoYW5nIG5heSwgbmhpZXUgbmd1b2kgZGFuIHRodW9jIGNhYyBodXll biBOZ29jIEhpZW4sIA0KTmFtIENhbiwgQ2EgTWF1IGRhIG5nYW5nIG5oaWVuIGNoYXQgcGhhIGNh eSBydW5nIChjaHUgeWV1IGxhIGNheSBkdW9jKSBkZSBkdW5nIGxhbSANCmNvdCBkYXksIGNvdCBj YW0gZGUgZ2lhbmcgbHVvaS4NCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL01vdC1j YW4tYm8tbmdhbi1oYW5nLWx1YS10cmVuLTE1LXRpLWRvbmcvMjAxMDcvMTkxMjQ5Lmxhb2Rvbmcg ODoyMyBBTSwgMDgvMDcvMjAxMA0KDQpDYSBNYXU6IENhbiBibyBuZ2FuIGhhbmcgbHVhIHRyZW4g MTUgdGkgZG9uZyANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAx MDM0LzIwMTAwODE2MDExMTI4LmFzcHggMTYvMDgvMjAxMCAxOjExIChHLkJhY2gpIA0KDQpDYSBN YXU6IDIxIHhhIGNodWEgY28gdHJ1b25nIG1hbSBub24uIE5hbSBob2MgMjAxMCAtMjAxMSwgdGlu aCBzZSBjaG8gbW8gbG9wIG1hbSANCm5vbiB0YW0gdGFpIHRydW9uZyB0aWV1IGhvYyB0aHVvYyBj YWMgeGEgbm9pIHRyZW4gDQoNCmh0dHA6Ly9jYW5kLmNvbS52bi92aS1WTi9raW5odGUvMjAxMC83 LzEzMzM0Mi5jYW5kIDEwOjAzOjU3IDA1LzA3LzIwMTANCg0KQ2EgTWF1OiBDdWMgVGh1ZSB0aW5o IENhIE1hdTogSG9hbiB0aHVlIG5oYW0gMyB0eSBkb25nICg/ISkNCg0KaHR0cDovL3d3dy5sYW9k b25nLmNvbS52bi9Ib21lL0tob2ktdG8tdnUtYW4tdGhhbS1vLXRpZW4tY2hpbmgtc2FjaC8yMDEw Ny8xOTEwNDgubGFvZG9uZyBOLkggIDk6MTIgQU0sIDA3LzA3LzIwMTANCg0KQ2EgTWF1OiBDYWMg Y2FuIGJvIGNhdSBrZXQga2hvbmcga2hhaSB0dSBuZ3VvaSBodW9uZyBjaGUgZG8gY2hpbmggc2Fj aCwgbGFtIGhvIHNvIA0KdGh1b25nIGJpbmgsIGxpZXQgc2kgZ2lhIGRlIGNoaWVtIGRvYXQgaGFu ZyB0cmFtIHRyaWV1IGRvbmcuDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9LaG9p LXRvLXZ1LWFuLXRoYW0tby10aWVuLWNoaW5oLXNhY2gvMjAxMDcvMTkxMDQ4Lmxhb2RvbmcgTi5I ICA5OjEyIEFNLCAwNy8wNy8yMDEwDQoNCkNhIE1hdTogVGhhbSBvIHRpZW4gY2hpbmggc2FjaCwg ImNvIHkgbGFtIHRyYWkuLi4iICB0aGF0IHRob2F0IHRyZW4gMSB0aSBkb25nIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDUwMjIxMTUuYXNw eCBHaWEgQmFjaCAwNS8wOC8yMDEwIDI6MjEgDQoNCkNhIE1hdTogQ28gdGhlbSBtb3QgY2EgZHVv bmcgdGluaCB2b2kgcGhheSBraHVhbiB0YSwgbmFuZyBzbyBiZW5oIG5oYW4gbWFjIGJlbmggDQpu YXkgdHJlbiB0b2FuIHRpbmggbGVuIDEyIGNhOyB0cm9uZyBkbyBodXllbiBOZ29jIEhpZW4gY28g ZGVuIDkgY2EuIA0KDQpodHRwOi8vY2EuY2FuZC5jb20udm4vdmktVk4vYmFuZG9jdmFDQU5EL0RU dGhlb3lldWNhdS8yMDA4LzQvMTIyOTM5LmNhbmQgMzoyMSwgMjAvMDIvMjAwOA0KDQpDYSBNYXU6 IENvbmcga2hhaSBtdWEgYmFuIG1hIHR1eSB0YWkgeG9tIEtpZXAgDQoNCmh0dHA6Ly93d3cudGhp ZW5uaGllbi5uZXQvbmV3cy8xNTMvQVJUSUNMRS8xMjA0OC8yMDEwLTA4LTA0Lmh0bWwgSG9uZyBQ aHVvbmcgMDQtMDgtMjAxMA0KDQpDYSBNYXU6IEJhdCBsdWMgdHJ1b2MgbmFuIHRhbiBkaWV0IHRo dXkgc2FuDQoNCk5ndW9pIGRhbiB0dSBjYWMgdGluaCBDYSBNYXUsIEJhYyBMaWV1LCBTb2MgVHJh bmcuLi4gdmFuIGN1IGtlbyBuaGF1IGRlbiB2dW5nIGJhaSBib2kgDQpLaGFpIExvbmcgKHRodW9j IHhhIERhdCBNdWksIGh1eWVuIE5nb2MgSGllbiwgdGluaCBDYSBNYXUpLCBkZSBraGFpIHRoYWMg dHJhaSBwaGVwIA0KbmdoZXUsIGNhIGtlbywgY3VhIGdpb25nLi4uLCBraGllbiBuZ3VvbiBsb2kg dGh1eSBoYWkgc2FuIG8gZGF5IGRhbmcgYmkgeGFtIGhhaSBuZ2hpZW0gdHJvbmcuICANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDMxLzIwMTAwNzMwMDEyMDU5 LmFzcHggTmd1eWV0IE1pbmggMzAvMDcvMjAxMCAxOjIxIA0KDQpDYSBNYXU6IER1IGFuIGxhbmcg cGhpIG5nYW4gc2FjaCwgc3UgZHVuZyBraG9uZyBkdW5nIG11YyBkaWNoIA0KDQpEdSBhbiBiYW8g dmUgdmEgcGhhdCB0cmllbiBuaHVuZyB2dW5nIG5nYXAgbnVvYyB2ZW4gYmllbiBtaWVuIE5hbSB0 YWkgdGluaCBDYSBNYXUgDQpjb24gNDUgY2FuIG5oYSB2YSA1Miw0IGhhIGRhdCBzYW4geHVhdCAo YW8gdG9tKSBkZW4gbmF5IGtob25nIGNvIG5ndW9pIG5oYW4gbmVuIGJpIHh1b25nIGNhcCBuZ2hp ZW0gdHJvbmcNCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL0Nhbi14dS1seS1jb25n LWtoYWktdnUtY2hheS1jaHVjLW8tQ2EtTWF1LzIwMDg0Lzg2MTIyLmxhb2RvbmcgUGhhbSBHaWEg QmFjaCAzOjM5IFBNLCAyNC8wNC8yMDA4DQoNCkNhIE1hdTogQmkgdGh1IHRpbmggdXkgQ2EgTWF1 IG5oYW4gdGllbiBjaGF5IGNodWMgMTAwIHRyaWV1IGRvbmcgDQoNCkhhbmggdmkgbmhhbiAxMDAg dHJpZXUgZG9uZyBjdWEgQmkgdGh1IHRpbmggdXkgQ2EgTWF1LCBkdSBzYXUgZG8gY28gZGVtIG5v cCBsYWkgY3VuZyBkdSBjYXUgdGhhbmggdG9pIHBoYW0uIA0KDQpEbyBjaHVhIGtlIGRlbiB2aWVj IHZpIEJpIHRodSBuYXkgY29uIGJhbyBjaGUgY2hvIHRvaSBwaGFtIGtoaSBraG9uZyBjaGl1IG5l dSBkYW5oIHRpbmggY3VhIGtlIGR1YSBob2kgbG8gZGUgY2hheSBjaHVjLCBkYSB0YW8gcmEgdGlu aCB0cmFuZyBuZ2hpIGt5IGxhbiBuaGF1LCBtYXQgZG9hbiBrZXQgdHJvbmcgbm9pIGJvIHRpbmgg dXkgQ2EgTWF1Lg0KDQpodHRwOi8vd3d3LmJhb2RhdHZpZXQudm4vSG9tZS9jaGluaHRyaXhhaG9p L05ndW9pLWRhbi1tdW9uLWxhbS1yby12dS1jaGF5LWNodWMtby1DYS1NYXUvMjAwODQvNTgzMS5k YXR2aWV0IDQ6NDMgUE0sIDIzLzA0LzIwMDgNCg0KQ2EgTWF1OiBOZ3VvaSBkYW4gZGFuZyBtdW9u IGxhbSBybyB2dSAnY2hheScgY2h1YyBvIENhIE1hdSAtIGFpIGxhIG5ndW9pIGNoYXkgY2h1YyAN Cg0KLQ0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcvd2lraS9OZ3V5JUUxJUJCJTg1bl9UJUUxJUJB JUE1bl9EJUM1JUE5bmcNCg0KT25nIE5ndXllbiBUYW4gRHVuZyCWIG5ndXllbiBCaSB0aHUgSHV5 ZW4gdXkgSGEgVGllbiAtIEtpZW4gR2lhbmcgIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAv czIwLTc4MDI1L2JhdC10ZW4taGllcC1kYW0tZ2lldC1uZ3VvaS0xOS10dW9pLmh0bQ0KDQpLaWVu IEdpYW5nOiBIaWVwIGRhbSB0cmUgZW0gMTUgdHVvaSwgZ2lldCBoYWkgZGEgbWFuIHJvaSBxdWFu ZyB4YWMgeHVvbmcgZG9uZyBzb25nIA0KDQpodHRwOi8vd3d3LmNvbmdhbmJpbmh0aHVhbi5nb3Yu dm4vaW5kZXgucGhwP3ZpZXc9YXJ0aWNsZSZpZD0xNDM4JTNBbmduLWNobi1ubi1idW9uLWx1LWhh LXRpZW4mb3B0aW9uPWNvbV9jb250ZW50Jkl0ZW1pZD0xNTIgICAxNC83LyAyMDA5IDA4OjU4IA0K DQpIYSBUaWVuIC0gS2llbiBHaWFuZzogQnVvbiBsYXUuLi4gY29uZyBraGFpIA0KDQpodHRwOi8v dmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9UaW5oLUtpZW4tR2lhbmctdmFuLXBob3QtbG8t eWV1LWNhdS1jdWEtVGh1LXR1b25nLzcwMDk2NDY5LzIxOC8gMDMvOS8yMDA3LCAxMDo1NCBHTVQr NyAoVGhlb19UaWVuX1Bob25nKSANCg0KS2llbiBHaWFuZzogSGFuZyBsb2F0IGNhbiBibyBvIHRo aSB4YSBIYSBUaWVuIGJpIHRvIGNhbyB0aGFtIG5odW5nIGRhdCBkYWkgDQoNClRoZW8gZG9uIHRv IGNhbyAzMCBjYW4gYm8gdGhhbSBuaHVuZyBkYXQgZGFpIG8gVFggSGEgVGllbiBjdWEgb25nIEhv YW5nIFZhbiBIdW5nIA0KKHRodW9uZyBiaW5oIDQvNCkgZ3VpIGJhbyBUaWVuIHBob25nLCBjbyBn aWEgZGluaCB0aGF1IHRvbSBoYW5nIGNodWMgbG8gZGF0LCBuaGlldSBsbyBkYSBzYW5nIGJhbiwg Y2hvIHRodWUuDQoNCktldCBxdWEgdGhhbmggdHJhIGNobyB0aGF5IG5oaWV1IG5vaSBkdW5nIG9u ZyBIdW5nIHRvIGNhbyBjYW4gYm8gdGhhdSB0b20gZGF0IGRhaSB2ZSBjaG8gY2EgbmhhbiBsYSBj byB0aGF0Lg0KDQpWYW4gcGhvbmcgQ2hpbmggcGh1IG5nYXkgMjIvMTIvMjAwNiBkYSBjbyB2YW4g YmFuIHRydXllbiBkYXQgeSBraWVuIGN1YSBQaG8gVGh1IHR1b25nIFRydW9uZyBWaW5oIFRyb25n LCB5ZXUgY2F1IFVCTkQgdGluaCBLaWVuIEdpYW5nIHRoYW5oIHRyYSBsYW0gcm8gbm9pIGR1bmcg b25nIA0KSHVuZyB0byBjYW8gImNhbiBibyBsb2kgZHVuZyBjaHVjIHZ1LCBxdXllbiBoYW4sIGNo aWVtIGRhdCBjdWEgZGFuIiwgeHUgbHkgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0Lg0KDQpW dSB2aWVjIHBoYWkgYmFvIGNhbyBsZW4gQ2hpbmggcGh1IHRyb25nIHF1aSBJLzIwMDcuIE5heSBk YSBnYW4gaGV0IHF1aSBJSUkgbmh1bmcga2hvbmcgaGlldSBzYW8gY2FjIG5nYW5oIGNodWMgbmFu ZyBvIEtpZW4gR2lhbmcgdmFuIGtob25nIGtldCBsdWFuIGR1b2MgZGUgYmFvIGNhby4NCg0KaHR0 cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMTAvM0JBMjExQjEvXCAyLzEwLzIwMTAs IDE2OjU3IEdNVCs3DQoNCktpZW4gR2lhbmc6IDUwLjAwMCB0byByb2kgYW4gdG9hbiBnaWFvIHRo b25nIGNvIG5vaSBkdW5nIHNleCANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1 YXQvS2llbi1HaWFuZy1Nb3QtY2FuaC1zYXQtaGllcC1kYW0tbnUtc2luaC1sb3AtMTAvNjUwNjky NDgvMjE4LyAwNi8xMC8yMDA2LCAyMTo1NyBHTVQrNyANCg0KS2llbiBHaWFuZzogTW90IGNhbmgg c2F0IGhpZXAgZGFtIG51IHNpbmggbG9wIDEwDQoNCmh0dHA6Ly93d3cuYmFvb3RvLmNvbS52bi8o QShkTVEwLXp4cXl3RWtBQUFBTXpNelpUUXlOV010WkRZM1l5MDBaR0U1TFRnME5XUXRaRFl3WlRN ME9HVXdPRGcwSmlnMFlwcUlTamRjRjMzc250amQ4ZFc0MkFFMSkpL05ld3NEZXRhaWwuYXNweD9p ZD1ONTg4NyZ0aW5oPTcmQXNweEF1dG9EZXRlY3RDb29raWVTdXBwb3J0PTENCg0KS2llbiBHaWFu ZzogSGllcCBkYW0gYmF0IHRoYW5oLCBkYSB0aHVvbmcgbmFuIG5oYW4sIHRodW9uZyB0aWNoIDI4 JSBzdWMga2hvZSAgDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL05vbmctYm9uZy1idW9u LWxhdS1iaWVuLWdpb2ktVGF5LU5hbS1LeS1JLzU4LzM4MzYwMzUuZXBpIFZJUiANCg0KSGEgVGll biAtIEtpZW4gR2lhbmc6IEN1YSBraGF1IHF1b2MgdGUgSGEgVGllbiwgbm9pIEtpZW4gR2lhbmcg dmEgQ2FtcHVjaGlhIHR1IGxhdSBkYSB0cm8gdGhhbmggbW90IHRyb25nIG5odW5nIGRpZW0gYnVv biBsYXUgbG9uIG5oYXQgdnVuZyBiaWVuIGdpb2kgVGF5IE5hbSANCg0KVHJvbmcgZGlwIGdpYXAg VGV0IE5ndXllbiBEYW4gQ2FuaCBEYW4sIGNhYyB0YXkgYnVvbiBsYXUgdGh1b25nIHRhcCB0cnVu ZyAiZGFuaCIgbWFuaCB2YW8gbWF0IGhhbmcgdGh1b2MgbGEsIGJvdCBuZ290LCBkdW9uZyB0aW5o IGx1eWVuIFRoYWkgTGFuLCBiYW5oIG11dC4uLg0KDQpodHRwOi8vbmV3cy5zb2NiYXkuY29tL3hh X3hpYV9idW9uX2xhdV9uaHVfcnVvaV8tNjAwMjI0MDc4LTMzNjE5OTY4Lmh0bWwgIHZpZXRuYW1u ZXQudm4gLSAxMToxMyAwNS0wMS0yMDA3IA0KDQpYYSBYaWEgliBLaWVuIEdpYW5nOiBCdW9uIGxh dSBuaHUgcnVvaSEgTHVjIGx1b25nIHF1YW4gbHkgdGhpIHRydW9uZyBkaWEgcGh1b25nIGR1b25n IG5odSBiYXQgbHVjLiANCg0KQmVuIFh1b25nIC0gS2llbiBHaWFuZzogQnVvbiBsYXUgbm9uZyBj YSBuZ2F5IGxhbiBkZW0gLSBDYWMgdGF5IGJ1b24gbGF1IG5nb2kga2h1YXQgbWluaCB0cm9uZyBi b25nIG1hdCB1b25nIHJ1b3UsIHRybyBjaHV5ZW4geG9tIHR1LCBjaG8gaGFuZyBkZW4gdGFwIGtl dCBkZSBuaGFuaCBjaG9uZyB0YWkgdmUgbW90IGRhdSBtb2kgdGlldSB0aHUgbyBIYSBUaWVuLiAN Cg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwMjgwNDU2NDUzL2hhX3RpZW5fa2llbl9naWFuZ19h bl9kYXRfY2FjX3F1YW5fdGhhbV9iaV90b19jYW8uaHRtbCAyMS8xMi8yMDA3LCAzOjMyIFBNICAo VGhlbyBQaGFwIGx1YXQgVFBIQ00gKSANCg0KSGEgVGllbiAoS2llbiBHaWFuZyk6ICJBbiIgZGF0 LCBjYWMgInF1YW4gdGhhbSIgYmkgdG8gY2FvDQoNCk1vdCB0aHVvbmcgYmluaCB0byBjYW8gMzAg Y2FuIGJvIHRoYW0gbmh1bmcgbyB0aGkgeGEgSGEgVGllbiAoS2llbiBHaWFuZykgdHJvbmcgbmhp ZXUgbmFtIHF1YS4gTmd1b2kgdG8gY2FvIHR1bmcgYmkgcmFuIGRlLCBtb2kgZGF5IGNvbiBiaSBr ZSBsYSB0YW4gY29uZyBsYW0gZ2F5IGNoYW4uIE5nYW5oIA0KY2h1YyBuYW5nIHRpbmggS2llbiBH aWFuZyBjaGkgdmFvIGN1b2Mga2hpIGNvIGNoaSBkYW8gY3VhIFBobyB0aHUgdHVvbmcgVHJ1b25n IFZpbmggVHJvbmcuLi4NCg0KVHUgZ2l1YSBuYW0gMjAwNCwgdGh1b25nIGJpbmggNC80IEhvYW5n IFZhbiBIdW5nIChuZ3UgYXAgUmFjaCBWdW9jLCB4YSBUaHVhbiBZZW4sIA0KdGhpIHhhIEhhIFRp ZW4pIGxhbSBkb24gdG8gY2FvIG9uZyBUcmFuIFZhbiBMYW0gLSB0aGkgdXkgdmllbiwgYmkgdGh1 IHBodW9uZyBUbyBDaGF1ICh0aGkgeGEgSGEgVGllbikgLSB0aGFtIG5odW5nIDI5IGxvIGRhdC4g DQoNClF1YSBxdWEgdHJpbmggdHUgZGlldSB0cmEsIG9uZyBIdW5nIHBoYXQgaGllbiB0aGVtIDI5 IGNhbiBibyBraGFjIGN1YSBkaWEgcGh1b25nIG5heSBjdW5nICJhbiBkYXQiLiBUcm9uZyBkbyBj byBnaWEgZGluaCBjYW4gYm8gdGhhdSB0b20gaGFuZyBjaHVjIGxvIGRhdCwgbmhpZXUgbG8gZGEg c2FuZyBiYW4sIGNobyB0aHVlLiANCg0KQ2FjIGNhbiBibyBuYXkgbGF5IGRhdCBjb25nIHBoYW4g bG8sIGNoaWEgY2hhYyBob2FjIGNhdCBiYW4gdm9pICJjYW0ga2V0IiBzZSBob3AgdGh1YyANCmhv YTsgcmEgY2FjIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQgY3VhIGRhbiBjaHVhIGxhbSBob3AgdGh1 YyBob2EgZGVtIGJhbiBjaG8gbmd1b2kga2hhYy4uLiANCg0KKE9uZyBIb2FuZyBWYW4gSHVuZyAt IG5ndW9pIGR1bmcgY2FtIHRvIGNhbyB0aWV1IGN1YyBjdWEgY2FjIHF1YW4gY2h1YyBvIHRoaSB4 YSBIYSBUaWVuIC0gYmkgaGFuaCBodW5nIGdheSBjaGFuLCBkYW5nIGRpZXUgdHJpIHRhaSBCZW5o IHZpZW4gSGEgVGllbikNCg0KS2llbiB0cmkgdG8gY2FvIHRpZXUgY3VjIA0KDQpDYWMgZG9uIHRv IGNhbyBjdWEgb25nIEh1bmcgZ3VpIGRlbiBjYWMgY28gcXVhbiBjaHVjIG5hbmcgbmhpZXUgbGFu IG5odW5nIGtob25nIGR1b2MgZGlldSB0cmEgbGFtIHJvLiBUaGFtIGNoaSBzYXUga2hpIGd1aSBk b24sIG9uZyBIdW5nIGRhIGJpIGNvbmcgYW4gbW9pIGxlbiBsYW0gdmllYyANCm5oaWV1IGxhbiwg dHJvbmcgZG8gY28gbGFuIHZhbyBuZ2F5IDExLTktMjAwNiBDb25nIGFuIHRoaSB4YSBIYSBUaWVu IG1vaSBvbmcgSHVuZyBsZW4gcGh1b25nIFRvIENoYXUgKG5vaSBjbyBuaGlldSBjYW4gYm8gYmkg dG8gY2FvIHRoYW0gbmh1bmcgZGF0KSBkZSAidGhhbSB2YW4iIGRlbi4uLiAyMiANCmdpbyBkb25n IGhvLiANCg0KVGhheSB0aW5oIGhpbmggY28gdmUgImtob25nIHNhbmcgc3VhIiwgb25nIEh1bmcg bWFuZyBkb24gdG8gY2FvIHJhIEhhIE5vaSBndWkgbGFuaCBkYW8gRGFuZyB2YSBOaGEgbnVvYy4g Q3VvaSBuYW0gMjAwNiwgVmFuIHBob25nIENoaW5oIHBodSBjbyB2YW4gYmFuIHRydXllbiBkYXQg eSANCmtpZW4gY3VhIFBobyB0aHUgdHVvbmcgQ2hpbmggcGh1IFRydW9uZyBWaW5oIFRyb25nIG5l dSBybzogIllldSBjYXUgVUJORCB0aW5oIEtpZW4gDQpHaWFuZyB0aGFuaCB0cmEgbGFtIHJvIG5v aSBkdW5nIG9uZyBIdW5nIHRvIGNhby4uLiBWdSB2aWVjIHBoYWkgYmFvIGNhbyBsZW4gVGh1IHR1 b25nIENoaW5oIHBodSB0cm9uZyBxdWkgMS0yMDA3Ii4gDQoNClRoZSBuaHVuZyBtYWkgZGVuIG5n YXkgOS0xMS0yMDA3LCBVQk5EIHRpbmggS2llbiBHaWFuZyBtb2kgY28gYmFvIGNhbyBsZW4gVGh1 IHR1b25nIENoaW5oIHBodS4gVGhlbyBkbywgdGluaCB0aHVhIG5oYW4gMjQvMzAgZG9pIHR1b25n IGJpIHRvIGNhbyBjbyBzYWkgcGhhbTsgdGh1IGhvaSANCmhvbiA4MDAuMDAwbTIgZGF0IHZhIHRy ZW4gMSw3IHRpIGRvbmcuIFR1eSBuaGllbiBvbmcgSHVuZyBjaG8gcmFuZyBrZXQgbHVhbiBjdWEg VUJORCANCnRpbmggS2llbiBHaWFuZyB2YW4gcXVhICJ1dSBhaSIgc28gY2FuIGJvIHRoYW0gbmh1 bmcsIG5oaWV1IG5vaSBkdW5nIHRvIGNhbyBjdWEgb25nIGNodWEgZHVvYyBsYW0gcm8uIA0KDQpT dSB2aWVjIGtob25nIGR1bmcgbGFpLCBvbmcgSHVuZyBrZTogIkRlbSA5LTEyLTIwMDcgdG9pIHRp ZXAgdHVjIGRlbSBkb24gdG8gY2FvIHRyaW5oIA0KYmF5IHZvaSBvbmcgVHJhbiBMYW0gKG5ndXll biBwaG8gY2h1IHRpY2ggVUJORCB0aW5oIEtpZW4gR2lhbmcgLSBuYXkgbGEgY2h1IHRpY2ggSG9p IA0KQmFvIHRybyBiZW5oIG5oYW4gbmdoZW8gS2llbiBHaWFuZyksIHRyZW4gZHVvbmcgZGkgeGUg bWF5IHZlIGRlbiB4YSBLaWVuIEJpbmggKEtpZW4gTHVvbmcpIHRoaSBiYXQgbmdvIGJpIGhhaSBu Z3VvaSBsYSBjaGF5IHhlIG1heSBkYXAgbmdhbmcgaG9uZywgbGFtIHRvaSBuZ2EgZ2F5IGNoYW4g DQp0cmFpLCBoaWVuIGRhbmcgcGhhaSBkaWV1IHRyaSIuIE9uZyBIdW5nIGJ1YyB4dWMgY2hvIHJh bmcgZGF5IGxhIG1vdCB2dSAiZG9uIHRodSIgY28gY2h1IHkuIA0KDQpBaSBjaGllbSBkYXQgbmhp ZXUgbmhhdD8gDQoNClRoZW8ga2V0IGx1YW4gY3VhIFRoYW5oIHRyYSB0aW5oIEtpZW4gR2lhbmcs IGhhdSBoZXQgY2FuIGJvIGJpIHRvIGNhbyBkZXUgImRpbmgiIHZhbyB0aWV1IGN1YyBkYXQgZGFp LCB0cm9uZyBkbyBvbmcgUGhhbSBWYW4gSG9hbmcgLSB0cnVvbmcgQmFuIHR1eWVuIGdpYW8gdGhp IHhhIEhhIFRpZW4gLSBsYSBuZ3VvaSAiY2hpZW0iIG5oaWV1IGRhdCBuaGF0LiBHaWEgZGluaCBv bmcgSG9hbmcgY28gYmF5IGxvIGRhdCwgZGllbiB0aWNoIHRyZW4gDQoyMC41NDBtMi4gTmFtIDIw MDMsIG9uZyBIb2FuZyBkdW9jIGNhcCA5LjE0MCw1bTIgZGF0IHRhaSBraHUgcGhvIDMsIHBodW9u ZyBUbyBDaGF1LiANCg0KRGlldSBkYW5nIG5vaSBsYSBraHUgdnVjIG9uZyBIb2FuZyBkdW9jIGNh cCBsYSBraHUgZGF0IGJhaSBib2kgdmVuIGJpZW4sIHR1eWV0IGRvaSANCmtob25nIGR1b2MgY2Fw IGNobyBjYSBuaGFuLCBuZ2hpZW0gY2FtIHNhbmcgbmh1b25nLiBTYXUga2hpIGR1b2MgY2FwIGdp YXkgY2h1bmcgDQpuaGFuLCBvbmcgSG9hbmcgZGEgdHUgdmUgcXVpIGhvYWNoLCBwaGFuIDM1IGxv IGNodXllbiBuaHVvbmcgdGh1IGxvaSBiYXQgY2hpbmggaGFuZyANCnRyYW0gdHJpZXUgZG9uZzsg dHJvbmcgZG8gY28gMjkgaG9wIGRvbmcga2hvbmcgZ2hpIGdpYSBjaHV5ZW4gbmh1b25nLCBzYXUg aG9wIGRvbmcgY29uIGxhaSBnaGkgZ2lhIGNodXllbiBuaHVvbmcgdG9uZyBjb25nIHRyZW4gODkg dHJpZXUgZG9uZy4gDQoNCktob25nIGNoaSBvbmcgSG9hbmcgbWEgdm8gb25nLCBiYSBOZ3V5ZW4g VGhpIENodW9uZywgY3VuZyBuZ2FuZyBuaGllbiBsYXkgZGF0IHBoYW4gDQpsbyBiYW4gbmVuLiBD byBxdWFuIGNodWMgbmFuZyB4YWMgZGluaCBkaWVuIHRpY2ggZGF0IGJhIENodW9uZyBjaGllbSBn aXUgbGEgNC4yNjAsMjVtMiB0YWkga2h1IHBobyAzLCBwaHVvbmcgVG8gQ2hhdSBjdW5nIGxhIGto dSBkYXQgbmhhIG51b2MgcXVhbiBseS4gQmEgDQpDaHVvbmcgc2F1IGtoaSAicGh1IHBoZXAiIGNv IGdpYXkgdG8gZGEgdHV5IHRpZW4gcGhhbiBsbyBjaHV5ZW4gbmh1b25nIGNobyBuYW0gbmd1b2ks IGJpZXUgeGVuIGNobyB0YW0gbmd1b2kga2hhYy4gTW90IHNvIGhvIHNhdSBraGkgZHVvYyBiYSBD aHVvbmcgImJhbiBwaGF0IiBkYXQgY3VuZyBkYSANCnNhbmcgYmFuIGh1b25nIGxvaSBoYW5nIHRy YW0gdHJpZXUgZG9uZy4gVGhhbmggdHJhIGtpZW4gbmdoaSB0aHUgaG9pIDEyLjkyOSw4bTIgZGF0 IGNhcCBiYXQgaG9wIHBoYXAgY2hvIGdpYSBkaW5oIG9uZyBIb2FuZywgdGh1IGhvaSA2MjcuMjUw LjAwMCBkb25nIHRpZW4gInBoYW4gbG8gYmFuIG5lbiIgDQp2YSB0aWVuIGNhYyBobyBkdW9jIG9u ZyBIb2FuZyAiYmlldSIgZGF0IHNhdSBkbyBkZW0gYmFuLiANCg0KRG9pIHZvaSBvbmcgTGFtIFZh biBEdW9uZyAtIHBobyBjaHUgbmhpZW0gVXkgYmFuIGtpZW0gdHJhIFRoaSB1eSBIYSBUaWVuLCB0 aGFuaCB0cmEgdGluaCBkZSBuZ2hpIHRodSBob2kgMTQzLjM0Myw4bTIgZGF0IHZhIHRyZW4gMjIg dHJpZXUgZG9uZyBkbyB0aHUgbG9pIGJhdCBjaGluaCB0dSBkYXQuIA0KQ29uIG9uZyBOZ3V5ZW4g VGhhbmggUGh1bmcgLSBjaGFuaCB0aGFuaCB0cmEgVGhpIHV5IEhhIFRpZW4gLSBiaSBkZSBuZ2hp IHRodSBob2kgNDMuMjAzLDJtMiBkYXQgdmEgYnVvYyBnaWEgZGluaCBvbmcgbmF5IHBoYWkgbm9w IGxhaSBjaG8gTmhhIG51b2MgNzMuODUzLjA1MCBkb25nIA0KdGllbiBiYW4gZGF0IHZhIHRpZW4g bGF5IGJvaSB0aHVvbmcgZGF0IHRyYWkgcXVpIGRpbmguIE9uZyBUcmFuIFZhbiBMYW0gLSBiaSB0 aHUgcGh1b25nIFRvIENoYXUgLSBiaSBkZSBuZ2hpIHRodSBob2kgaGFpIGxvIGRhdCByb25nIHRy ZW4gNTAuMDAwbTIgdmEgdHJlbiAzMDAgdHJpZXUgZG9uZywgZG9uZyB0aG9pIGRlIG5naGkgdGh1 IGhvaSAyODMgdHJpZXUgZG9uZyB0aWVuIGJhbiBkYXQgY3VhIGJvbiBobyBkdW9jIG9uZyBMYW0g bGF5IGRhdCBuaGEgDQpudW9jIGJpZXUgeGVuLi4uIA0KKE5nYW5oIGNodWMgbmFuZyB0aW5oIEtp ZW4gR2lhbmcgY2hpIHZhbyBjdW9jIGtoaSBjbyBjaGkgZGFvIGN1YSBQaG8gdGh1IHR1b25nLCB2 YXkgVGluaCB1eSB2YSBVQk5EIHRpbmggS2llbiBHaWFuZyBjdW5nIGNhbiBraWVtIGtpZW0gcm8g dHJhY2ggbmhpZW0gdHJvbmcgdnUgdmllYyBuYXkuKQ0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1u aW5oLVBoYXAtbHVhdC9UaW5oLUtpZW4tR2lhbmctdmFuLXBob3QtbG8teWV1LWNhdS1jdWEtVGh1 LXR1b25nLzcwMDk2NDY5LzIxOC8gSG9uZyBMaW5oIChUaGVvX1RpZW5fUGhvbmcpIDAzLzkvMjAw NywgMTA6NTQgR01UKzcgDQoNClRodSB0dW9uZzogVGluaCBLaWVuIEdpYW5nIHZhbiBwaG90IGxv IHlldSBjYXUgY3VhIFRodSB0dW9uZw0KDQpIYW5nIGxvYXQgY2FuIGJvIG8gVFggSGEgVGllbiBi aSB0byBjYW8gdGhhbSBuaHVuZyBkYXQgZGFpOg0KVGhlbyBkb24gdG8gY2FvIDMwIGNhbiBibyB0 aGFtIG5odW5nIGRhdCBkYWkgbyBUWCBIYSBUaWVuIGN1YSBvbmcgSG9hbmcgVmFuIEh1bmcgDQoo dGh1b25nIGJpbmggNC80KSBndWkgYmFvIFRpZW4gcGhvbmcsIGNvIGdpYSBkaW5oIHRoYXUgdG9t IGhhbmcgY2h1YyBsbyBkYXQsIG5oaWV1IGxvIGRhIA0Kc2FuZyBiYW4sIGNobyB0aHVlLg0KDQpD YWMgdGh1IGRvYW4gY2hpZW0gZGF0IGN1YSBjYWMgY2FuIGJvIGxhOiBMYXkgZGF0IGNvbmcgcGhh biBsbywgY2hpYSBjaGFjOyBIb2FjIGxheSBkYXQgDQpjb25nIGNhdCBiYW4gY2hvIG5odW5nIG5n dW9pIGNvIG5odSBjYXUgbXVhIHZvaSBjYW0ga2V0IHNlIGhvcCB0aHVjIGhvYS4uLg0KDQpUcm9u ZyBzbyBuaHVuZyBjYW4gYm8gYmkgdG8gY2FvIGNvIG9uZyBQaGFtIFZhbiBIb2FuZywgVHJ1b25n IGJhbiBUdXllbiBnaWFvIFRYIA0KSGEgVGllbjsgVHJhbiBWYW4gTGFtLCBCaSB0aHUgRGFuZyB1 eSBwaHVvbmcgVG8gQ2hhdTsgTGFtIFZhbiBEdW9uZywgUGhvIGJhbiANCktpZW0gdHJhIERhbmcg VFggSGEgVGllbi4NCg0KU28gY29uIGxhaSBjaHUgeWV1IGxhIGNhbiBibyB4YSBUaHVhbiBZZW4u IERhbmcga2UgbmhhdCBsYSB0cnVvbmcgaG9wIG9uZyBQaGFtIFZhbiANCkhvYW5nLCBsb2kgZHVu ZyBxdXllbiBsdWMga2hpIGNvbiBsYW0gQmkgdGh1IG8geGEgVGh1YW4gWWVuLCBvbmcgbmF5IGRh IGxheSBnYW4gDQoyLjAwMG0yIGRhdCBjaHVhIFRoYW5oIEhvYSBkZW0gYmFuOyBkaSBkb2kgMTQg aG8gZGFuIG8gcGh1b25nIFRvIENoYXUgKGtob25nIGJvaSANCmhvYW4pIHNhdSBkbyBwaGFuIGxv IGNoaWEgY2hhYyBjaG8gbmd1b2kgbmhhLg0KDQpOZ2F5IGNhIGRhdCBiYWkgYm9pIHZlbiBiaWVu IGxhIGRhdCBOaGEgbnVvYyBxdWFuIGx5LCBuaHVuZyBvbmcgSG9hbmcgdmFuIGhvcCB0aHVjIA0K aG9hIGR1b2MuDQoNCkJhbiBUaHVvbmcgdnUgVGluaCB1eSBLaWVuIEdpYW5nIHNhdSBraGkgbmhh biBkdW9jIGtldCBsdWFuIGN1YSBUaGFuaCB0cmEgdGluaCBkYSBjbyANCnZhbiBiYW4gZ3VpIEJD UyBEYW5nIFVCTkQgdGluaCB2YSBjYWMgbmdhbmggY2h1YyBuYW5nIHRob25nIGJhbyBrZXQgbHVh biB4dW5nIA0KcXVhbmggdnUgb25nIEhvYW5nIFZhbiBIdW5nIHRvIGNhbyAzMCBjYW4gYm8gdGFp IFRYIEhhIFRpZW4gZHVvYyBjYXAgdmEgbXVhIG5oaWV1IA0KZGF0LCBjaHV5ZW4gbmh1b25nIHRy YWkgcGhhcCBsdWF0LCB0aHUgbG9pIGJhdCBjaGluaCBzbyB0aWVuIGxvbi4NCg0KS2V0IHF1YSB0 aGFuaCB0cmEgY2hvIHRoYXkgbmhpZXUgbm9pIGR1bmcgb25nIEh1bmcgdG8gY2FvIGNhbiBibyB0 aGF1IHRvbSBkYXQgZGFpIHZlIA0KY2hvIGNhIG5oYW4gbGEgY28gdGhhdC4NCg0KVHV5IG5oaWVu IHRoYW5oIHRyYSBjaGkgbW9pIGxpZXQga2UgZHVvYyBzbyBkYXQgbWEgY2FjIGNhbiBibyBkYW5n IHN1IGR1bmcsIGRhdCBkYSANCmNodXllbiBuaHVvbmcsIHRhbmcgY2hvLi4uIG1hIGNodWEgdGFj aCBkdW9jIHBoYW4gbmFvIGRvIGxvaSBkdW5nIGNodWMgdnUsIHF1eWVuIGhhbiANCmRlIGNvIGR1 b2MsIHBoYW4gbmFvIGNodXllbiBuaHVvbmcgdHJhaSBwaGFwIGx1YXQgZGUgdGh1IGxvaSBiYXQg Y2hpbmguDQoNClZpIHZheSBUaHVvbmcgdnUgVGluaCB1eSBLaWVuIEdpYW5nIHlldSBjYXUgdGhh bmggdHJhIHBoYWkgbGFtIHJvIGRlIGNvIGNhYyBiaWVuIHBoYXAgDQp4dSBseSBwaHUgaG9wLiBU cmFvIGRvaSB2b2kgVGllbiBwaG9uZyB4dW5nIHF1YW5oIHZhbiBkZSBuYXksIG9uZyBOZ3V5ZW4g VmFuIFRhbiwgDQpCaSB0aHUgVGhpIHV5IEhhIFRpZW4gY2hvIGJpZXQ6DQoiVGlldSBjdWMgZGF0 IGRhaSB0aGVvIGRvbiB0byBjYW8geGF5IHJhIHR1IHRydW9jIGtoaSB0b2kgdmUgY29uZyB0YWMg dGFpIEhhIFRpZW4uIEhpZW4gY28gDQpxdWFuIGNodWMgbmFuZyBkYW5nIGRpZXUgdHJhIGxhbSBy byBkZSBjbyBoaW5oIHRodWMgeHUgbHkgZG9pIHZvaSB0dW5nIHRydW9uZyBob3Agc2FpIA0KcGhh bSIuIA0KDQpWYW4gcGhvbmcgQ2hpbmggcGh1IG5nYXkgMjIvMTIvMjAwNiBkYSBjbyB2YW4gYmFu IHRydXllbiBkYXQgeSBraWVuIGN1YSBQaG8gVGh1IA0KdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcs IHlldSBjYXUgVUJORCB0aW5oIEtpZW4gR2lhbmcgdGhhbmggdHJhIGxhbSBybyBub2kgZHVuZyAN Cm9uZyBIdW5nIHRvIGNhbyAiY2FuIGJvIGxvaSBkdW5nIGNodWMgdnUsIHF1eWVuIGhhbiwgY2hp ZW0gZGF0IGN1YSBkYW4iLCB4dSBseSB0aGVvIA0KcXV5IGRpbmggY3VhIHBoYXAgbHVhdC4NCg0K VnUgdmllYyBwaGFpIGJhbyBjYW8gbGVuIFRodSB0dW9uZyBDaGluaCBwaHUgdHJvbmcgcXVpIEkv MjAwNy4gTmF5IGRhIGdhbiBoZXQgcXVpIElJSSANCm5odW5nIGtob25nIGhpZXUgc2FvIGNhYyBu Z2FuaCBjaHVjIG5hbmcgbyBLaWVuIEdpYW5nIHZhbiBraG9uZyBrZXQgbHVhbiBkdW9jIGRlIA0K YmFvIGNhbyBUaHUgdHVvbmc/DQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL1RpYW55b24vSW5k ZXguYXNweD9BcnRpY2xlSUQ9MTU0MDMyJkNoYW5uZWxJRD0yIDA0LzAzLzIwMDksIDA4OjUxDQoN CktpZW4gR2lhbmc6IFRydW9uZyBwaG9uZyBLaW5oIHRlIENodXllbiBuZ2FuaCAoVUJORCBUaW5o KSB2dWEgYmkga2hvaSB0byBiYXQgZ2lhbSwgdmkgbGllbiBxdWFuIA0KZGVuIHZ1IG11YSBiYW4g ZHUgYW4sIHRydWMgbG9pIG1vdCB0eSBkb25nIHZhIGNoaWVtIGRvYXQgZHUgYW4gMS4wMDAgaGEg ZGF0LiANCg0KVUJORCB0aW5oIEtpZW4gR2lhbmcgcGhhaSBraWVtIGRpZW0gdHJhY2ggbmhpZW0h DQoNClZ1IGFuIGxpZW4gcXVhbiBkZW4gbW90IGNhbiBibyB0cm9uZyBkYXUgbmFvIGN1YSBVQk5E IFRpbmggdmEgdHJhY2ggbmhpZW0gbW90IHNvIG5ndW9pIGxpZW4gcXVhbiwgDQpsYW0geGF1IGRp IGhpbmggYW5oIFVCTkQgVGluaCB0cm9uZyBtYXQgY2FjIG5oYSBkYXUgdHUuIA0KDQpodHRwOi8v d3d3LnZmZWoudm4vdm4vY2hpX3RpZXQvMTcyNjAvZGVfYmllbl9raWVuX2dpYW5nX2JpX3hhbV9o YWlfX19fX25odW5nX25oYW5nX2NodXllbl94dV9seSAwOC8wOC8yMDA5LCAxMDozOTozMyBBTSAN Cg0KS2llbiBHaWFuZzogRGUgYmllbiBLaWVuIEdpYW5nIGJpIHhhbSBoYWkgDQoNCk5ndW9uIHZv biB0cnVuZyB1b25nIHZhIG5nYW4gc2FjaCBkaWEgcGh1b25nIGRhdSB0dSBuaGlldSBjaG8gdmll YyB4YXkgZHVuZyB2YSBiYW8gdmUgZGUgYmllbi4gDQpUdXkgbmhpZW4sIHRpbmggdHJhbmcgaGFu ZyB0cmFtIGhvIGRhbiBjYXQgbmhhLCB0cm9uZyB0cm90LCBjaGFuIG51b2kuLi4gdHJlbiBraGFw IGNhYyB0dXllbiBkZSANCnRyZW4gZGlhIGJhbiB0aW5oIEtpZW4gR2lhbmcgZGllbiByYSBtb2kg bHVjIG1vaSBwaHVjIHRhcCBob24sIGtlbyBkYWkgbmhpZXUgbmFtIG5odW5nIHZpZWMgZ2lhaSBx dXlldCB2YW4gbmh1bmcgbmhhbmcNCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcvd2lraS9OZ3V5 JUUxJUJCJTg1bl9UJUUxJUJBJUE1bl9EJUM1JUE5bmcNCg0KS2llbiBHaWFuZzogT25nIE5ndXll biBUYW4gRHVuZyCWIG5ndXllbiBDaHUgdGljaCBVQk5EIHRpbmggS2llbiBHaWFuZyANCg0KaHR0 cDovL3RpbnR1Yy54YWxvLnZuLzAwLTEzMTkwMDE2NDYvZHVhX3hheV9zYW5fZ29sZi5odG1sIChU aGVvIEJhbyBEYXUgVHUgKSAxMi8zLzIwMDgsIDA6MDAgQU0NCg0KS2llbiBHaWFuZzogRHVhIHhh eSBzYW4gZ29sZiEgDQoNClBodSBRdW9jIGR1b2MgcXV5IGhvYWNoIHZvaSA0IHNhbiBnb2xmDQog DQpodHRwOi8vd3d3LnRoZXNhaWdvbnRpbWVzLnZuL0hvbWUvdGhvaXN1L3N1a2llbi8yMzc1LyAy Ni8xLzIwMDgsIDEwOjMxIChHTVQrNykNCg0KS2llbiBHaWFuZzogUGhhdCB0cmllbiBvIGF0IHNh biBnb2xmIC0gbG9pIGhheSBoYWk/IA0KDQpZIGtpZW4gYmFuIGRvYzoNCg0KTGV2YW5zb246DQoN Ck5ndW9pIGRhbiBQaHUgUXVvYyBwaGFpIG5odW9uZyAyMC4wMDBtMyBudW9jL25nYXkgY2hvIDQg c2FuIGdvbGY/IA0KDQpMYSBtb3Qgbmd1b2kgZGFuIHNvbmcgdHJlbiBkYW8gUGh1IFF1b2MsIGto aSBkb2MgdGhheSBQaHUgUXVvYyBxdXkgaG9hY2ggeGF5IGR1bmcgNCBzYW4gZ29sZiANCmxhbSB0 b2kga2hvbmcga2hvaSBnaWF0IG1pbmg7IHF1eSBkYXQgZGFuaCBkZSB4YXkgZHVuZyBzYW4gZ29s ZiBsYSBxdWEgbmhpZXUgc28gdm9pIGRpZW4gdGljaCBkYW8gUGh1IFF1b2MgKDU3M2ttsikuDQoN ClZhbiBkZSB0aHUgMiwgbW9pIHNhbiBnb2xmIDE4IGxvLCBtb2kgbmdheSBjYW4gNS4wMDBtMyBu dW9jIGRlIHR1b2ksIG5odSB2YXkgbmV1IFBodSBRdW9jIA0KeGF5IGR1bmcgNCBzYW4gZ29sZiB0 aGkgbW9pIG5nYXkgcGhhaSBjYW4gMjAuMDAwbTMgbnVvYy4gUGh1IFF1b2MgZGFuZyB0aGlldSBu dW9jIG5lbiBwaGFpIA0KcXV5IGhvYWNoIHhheSBkdW5nIDMgaG8gY2h1YSBudW9jIGRlIHBodWMg dnUgY2hvIG5ndW9pIGRhbiB0cmVuIGRhby4gTW90IGhvIGNvIHN1YyBjaHVhIDQwLjAwMG0zLCAN CmhhaSBobyBjbyBzdWMgY2h1YSAyMC4wMDBtMy4gQ2FjIGhvIGNodWEgbnVvYyBuYXkgZGV1IGR1 IGtpZW4gbGF5IG51b2MgdHUgY2FjIHN1b2kgbG9uIHRyZW4gZGFvLCANCm5odW5nIGRlbiBtdWEg aGFuIHRoaSBjYWMgY29uIHN1b2kgbmF5IGRldSBjYW4gbnVvYyB2YSBtdWMgbnVvYyBuZ2FtIG8g UGh1IFF1b2MgaGllbiBuYXkgZGEgc3V0IGdpYW0gbmdoaWVtIHRyb25nLg0KDQpDb24gbmhvIGxh IFRCS1RTRyB0dW5nIGRhbmcgYmFpIHZlIHRpbmggdHJhbmcgdGhpZXUgbnVvYyB0dW9pIGNobyBj YWMgdnVvbiB0aWV1IHRhaSANClBodSBRdW9jIGRvIGhhbiBoYW4gZ2F5IHJhLCBraG9uZyBiaWV0 IG5odW5nIG5ndW9pIGxhbSBxdXkgaG9hY2ggdmEgbGFuaCBkYW8gdGluaCBLaWVuIEdpYW5nIGNv IHRpbmggZGVuIHZhbiBkZSBuYXkga2hvbmc/DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9uZXdzL1BhZ2VzLzIwMTAyOC8yMDEwMDcwODIzMzc1Ni5hc3B4IDA4LzA3LzIwMTAgMjM6Mzcg DQoNCktpZW4gR2lhbmc6IEhpZXAgZGFtIHRyZSBlbSCWIG5hbiBuaGFuIGxhIGVtIEsuQyBtb2kg MTQgdHVvaQ0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL05ndXklRTElQkIlODVuX1Ql RTElQkElQTVuX0QlQzUlQTluZw0KDQpLaWVuIEdpYW5nOiBPbmcgTmd1eWVuIFRhbiBEdW5nIJYg bmd1eWVuIEJpIHRodSBUaW5oIHV5LCBuZ3V5ZW4gQ2h1IHRpY2ggVUJORCB0aW5oIEtpZW4gR2lh bmcgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9Mb2FuLWRhdC1kYWktdHJlbi1kYW8tUGh1 LVF1b2MvNzAxMDE4NTUvMTU3Lw0KDQpLaWVuIEdpYW5nOiBEYXQgcnVuZywgZGF0IGNvbmcgbXVh IGJhbiB2byB0dSAoaHV5ZW4gUGh1IFF1b2MpIA0KDQpIYW5nIHRyaWV1IG1ldCB2dW9uZyBkYXQg c2F1IHRoYW5oIHRyYSB2YW4gY2h1YSB0aGUgdGh1IGhvaS4gDQoNCkxvYW4gZGF0IGRhaSBkYW5n IHRpZXAgdHVjIHhheSByYSB0cmVuIGhvbiBkYW8gZHVvYyBxdWkgaG9hY2ggZHUgbGljaCBsb24g bmhhdCBudW9jIG5heS4NCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcvd2lraS9OZ3V5JUUxJUJC JTg1bl9UJUUxJUJBJUE1bl9EJUM1JUE5bmcNCg0KS2llbiBHaWFuZzogT25nIE5ndXllbiBUYW4g RHVuZyBsZW4gY2h1YyBVeSB2aWVuIEJvIGNoaW5oIHRyaSwgVGh1IHR1b25nIENoaW5oIHBodQ0K DQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvTG9hbi1kYXQtZGFpLXRyZW4tZGFvLVBodS1RdW9j LzcwMTAxODU1LzE1Ny8NCg0KUGh1IFF1b2MgLSBLaWVuIEdpYW5nOiBEYXQgcnVuZyBiaSBtdWEg YmFuIHZvIHRvaSB2YSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMv MjAxMDM3LzIwMTAwOTA3MDAwMzMzLmFzcHggQmFvIENhbSAgMDcvMDkvMjAxMCAwOjAzIA0KDQpL aWVuIEdpYW5nOiBOZ2F5IDYuOSBvbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBwaGUgY2h1 YW4gb25nIFBoYW0gVnUgSG9uZyAtIA0Kbmd1eWVuIENodSB0aWNoIFVCTkQgaHV5ZW4gUGh1IFF1 b2MsIGxlbiBjaHVjIFBobyBjaHUgdGljaCBVQk5EIHRpbmggS2llbiBHaWFuZyANCg0KaHR0cDov L3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM3LzIwMTAwOTA2MTYyNzI4LmFz cHggR2lhbmcgU29uICAwNi8wOS8yMDEwIDE2OjI3IA0KDQpLaWVuIEdpYW5nOiBQaHUgUXVvYyBj dW5nIG5nYXAhICAgDQoNCktob25nIHBoYWkgY3UgZG8gdGhpIGxvbiBuaHUgSGEgTm9pLCBUUC5I Q00uLi4gbW9pIGNoaXUgY2FuaCBuZ2FwIG51b2MgbXVhLCBob20gDQpuYXkgNi45LCBtb3QgY29u IG11YSBuYW5nIGhhdCBkYSBiaWVuIHRoaSB0cmFuIER1b25nIERvbmcsIGh1eWVuIGRhbyBQaHUg UXVvYyAoS2llbiANCkdpYW5nKSwgbW90IGRvIHRoaSBuaG8gbmFtIHNhdCBiaWVuIHRoYW5oIG1v dC4uLiBiaWVuIG51b2MgbmdvdDsgIG51b2MgbmdhcCBzYXUsIG5ndW9pIA0KZGFuIGR1bmcgY2Eg bWF5IGJvbSBkZSBib20gbnVvYyByYSBraG9pIG5oYS4gRGFuIGJvIGN1bmcgcGhhaSB0aW0gbGVu IGNobyBjYW8gZGUgdHJhbmggbmdhcC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9u ZXdzL1BhZ2VzLzIwMTA0Mi8yMDEwMTAxMzAxMjAzNC5hc3B4IEdpYW5nIFNvbiAtIENoaSBOaGFu IDEzLzEwLzIwMTAgMToyMCANCg0KS2llbiBHaWFuZzogMTIgbmd1b2kgY2hldCB2YSBtYXQgdGlj aCBkbyBtdWEgZ2lvbmcsIGxvYyB4b2F5IG8gS2llbiBHaWFuZyAgIA0KICANCkNoaWV1IDEyLjEw LCBCYW4gY2hpIGh1eSBQaG9uZyBjaG9uZyBsdXQgYmFvIHZhIFRpbSBraWVtIGN1dSBuYW4gdGlu aCBLaWVuIEdpYW5nIGNobyANCmJpZXQ6IFRyZW4gZGlhIGJhbiBodXllbiBkYW8gUGh1IFF1b2Mg ZGEgY28gMTIgbmd1IGRhbiBjaGV0IHZhIG1hdCB0aWNoIGRvIG11YSBnaW9uZywgDQpsb2MgeG9h eSBtYXkgbmdheSBxdWEuIA0KDQpTYW5nIHF1YSwgbmFuIG5oYW4gYmkgY2hldCBkYXUgdGllbiBk dW9jIGx1YyBsdW9uZyBjdXUgaG8gdGltIHRoYXkgbGEgTmd1eWVuIFZhbiBDYXUgDQooU04gMTk0 OCwgbmd1IGh1eWVuIGRhbyBLaWVuIEhhaSwgS2llbiBHaWFuZywgdGFtIHRydSBvIFBodSBRdW9j IGxhbSBuZ2hlIGNhdSBtdWMpLiANCg0KVHJvbmcgbmh1bmcgbmdheSBxdWEsIG11YSBnaW9uZywg bG9jIHhvYXkgZGEgbGFtIDMzIHRhdSBkYW5oIGNhLCA3IHh1b25nLCBkbyBiaSBjaGltOyANCjM4 IGJlIGNhIGJpIHRoaWV0IGhhaSBuYW5nOyAxMyBjYW4gbmhhIGJpIHNhcCwgc2F0IGxvLi4uIFRo aWV0IGhhaSB1b2MgdGluaCBoYW5nIGNodWMgdGkgZG9uZy4gDQoNCmh0dHA6Ly90dW9pdHJlLnZu L0tpbmgtdGUvMzg5ODMyL1BodS1RdW9jLWNoby1jYXQtY2FuaC0tLUt5LTIgLUR1LWFuLXhpLWNo by5odG1sIDEzLzA3LzIwMTAsIDA4OjQ1IChHTVQrNykgDQoNClBodSBRdW9jIC0gS2llbiBHaWFu ZzogTmhpZXUgZHUgYW4uLi4gY2hpIHhpIGNobyAtIGR1IGFuIHRoaSBuaGlldSBuaHVuZyBkaSB2 YW8gaG9hdCBkb25nIGl0DQoNClBodSBRdW9jIGhpZW4gZGEgdGh1IGh1dCBnYW4gMjMwIGR1IGFu IGRhdSB0dSwgdGFwIHRydW5nIGNodSB5ZXUgdHJvbmcgbGluaCB2dWMgZHUgbGljaC4gDQpUdXkg bmhpZW4sIHRvaSBuYXkgbW9pIGNvIHNhdSBkdSBhbiBkaSB2YW8gaG9hdCBkb25nLi4uIA0KDQpo dHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTExMTk0 MCZDaGFubmVsSUQ9MiAyMi8wMi8yMDA4LCAxNzowMw0KDQpLaWVuIEdpYW5nOiBCYW8gY2hpZW0g ZGF0IHJ1bmcgbyBLaWVuIEdpYW5nLCBxdWFuIGNodWMgY3VuZyB4aSBwaGFuIQ0KDQpodHRwOi8v d3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTEyMDAzNCZDaGFu bmVsSUQ9MTIgSG9uZyBMaW5oIDIzLzA0LzIwMDgsIDE1OjMwDQoNCktpZW4gR2lhbmc6IENvIGhh biBjaHUgdHJ1b25nIGNobyB0aHVlIHJ1bmcgbGFtIGR1IGxpY2ggdHJlbiBkYW8gUGh1IFF1b2Mg LSBydW5nIHNlIHRpZXAgdHVjIGJpLi4uIGxhbSB0aGl0IA0KDQpSdW5nIFBodSBRdW9jIHRob2kg Z2lhbiBxdWEgZGEgYmkgdGFuIHBoYSBuYW5nIG5lIHR1IHBob25nIHRyYW8gdHJvbmcgdGlldSwg ZG90IHRoYW4sIGRhYyBiaWV0IGxhIGNvbiBraGF0IGRhdCBkdSBsaWNoIA0KZGFuZyBsYW0gY2hv IGxhIHBob2kgdHJlbiBob24gZGFvIGxvbiBuaGF0IFZpZXQgTmFtIG5heSB0ZW8gZGFuLiANCg0K SGUgc2luaCB0aGFpIHRyZW4gZGFvIGRhbmcgYmkgYmllbiBkb2kgbWFuaCBtZS4gVm9pIGNodSB0 cnVvbmcgZ2lhbyBydW5nIGxhbSBkdSBsaWNoIHRyYW4gbGFuIG5vaSB0cmVuLCANCmNoYWMgY2hh biByYW5nIGhhbmcgbmdhbiBoYSBydW5nIHNlIHRpZXAgdHVjIGJpLi4uIGxhbSB0aGl0LiANCg0K aHR0cDovL3d3dy52aWV0Lm5ldC9waXBlcm1haWwvdm5iaXovMjAwMi1EZWNlbWJlci8wMDAzNTMu aHRtbCBUcmFuIEh1dSBIb25nIFRydW9uZyAwNzoyOTowMCAxMC0xMi0wMg0KDQpLaWVuIEdpYW5n OiBCdW9uIGxhdSBjb25nIGtoYWksIHRoYWNoIHRodWMgDQoNCkRpcCBjdW9pIG5hbSwgdGluaCBo aW5oIGJ1b24gbGF1IHF1YSBiaWVuIGdpb2kgIm5vbmcgYm9uZyIuIE5odW5nIGRpZXUgZGFuZyBs byBuZ2FpIGxhIHRodSBkb2FuIGN1YSBib24gYnVvbiBsYXUgDQpuZ2F5IGNhbmcgdGluaCB2aSwg dGluaCBjaGF0IGNhbmcgbmdoaWVtIHRyb25nOyB0aGFtIGNoaSwgY2h1bmcgY29uIGNvbmcga2hh aSB0aGFjaCB0aHVjLCBzYW4gc2FuZyBoYW5oIGh1bmcgbmd1b2kgDQp0aGkgaGFuaCBjb25nIHZ1 LiBOaHVuZyBuZ2F5IGRhdSB0aGFuZyAxMiwgdGFpIHhhIE15IER1YyAoS2llbiBHaWFuZyksIHR1 bmcgZG9hbiB4ZSBkYXAgY2hvIGhhbmcgbGF1IHRoYW4gbmhpZW4gDQp0aWVuIHZhbyBub2kgbyB0 aGkgeGEgSGEgVGllbiBuaHUga2hvbmcgaGUgY28gc3UgaGllbiBkaWVuIGN1YSBsdWMgbHVvbmcg Y2hvbmcgYnVvbiBsYXUgKExMQ0JMKS4gRG9pIHF1YW4gdmFuIGNodXllbiANCmhhbmcgbGF1IGJh bmcgeGUgZGFwIGhhdSBoZXQgbGEgcGh1IG51LiBIYW5nIGR1b2MgY2F0IGdpYXUgdHJvbmcgbmd1 b2kgaG9hYyBuZ3V5IHRyYW5nIHJhdCBraW4sIGdvbSBkdSBsb2FpOiB0aHVvYyBsYSwgDQpteSBw aGFtLCB0cmFpIGNheSwgZHVvbmcgY2F0IFRoYWkuLi4gDQoNCkhhbmcgbmhhcCBsYXUgdmFvIEtp ZW4gR2lhbmcgcXVhIGR1b25nIGJpZW4gbmF5IGN1bmcgZHVvYyBraGFpIHRoYWMgdHJpZXQgZGUu IERhbmcgYmFvIGRvbmcgbGEgdGllbiBnaWEsIHRodW9jIHRhbiBkdW9jIA0KY28gY2hhdCBnYXkg bmdoaWVuIGN1bmcgZHVvYyAidGhhIiB2YW8gdGluaCBuYXkgdm9pIHNvIGx1b25nIG5nYXkgY2Fu ZyBsb24uDQoNCmh0dHA6Ly9uZ3VvaWNhb3R1b2kub3JnLnZuL1N0b3J5LmFzcHg/bGFuZz12biZ6 b25lcGFyZW50PTAmem9uZT03JklEPTI1MTIgMjgvMDQvMjAwOS04OjU1IEFNKQ0KDQpLaWVuIEdp YW5nOiBDb25nIGFuIGxhaSBiYXQgZ2l1IG5ndW9pIHRyYWkgcGhhcCBsdWF0DQoNCkJhbyBOZ3Vv aSBjYW8gdHVvaSBuaGFuIGR1b2MgZG9uIHRodSBraGFuIGNhcCBjdWEgaGFuZyB0cmFtIGhvIGRh biBodXllbiBBbiBNaW5oLCB0aW5oIEtpZW4gR2lhbmcsIHRvIGNhbyBjb25nIGFuIA0KdGluaCBL aWVuIEdpYW5nIGJhdCBnaXUgdHJhaSBwaGFwIGx1YXQgZG9pIHZvaSBvbmcgVm8gVHJ1bmcgS2ll biAoNzQgdHVvaSksIENoaSBob2kgdHJ1b25nIENoaSBob2kgTkNUIGFwIENhbiBHYW8sIA0KeGEg RG9uZyBIdW5nIEIsIGh1eWVuIEFuIE1pbmggdmEgYmEgTmd1eWVuIFRoaSBTYW5oICg3MCB0dW9p KSwgZ2lhIGRpbmggbGlldCBzaSB0cnUgdGFpIGFwIENhbiBHYW8sIHRyb25nIGtoaSANCmhvIGRh bmcgdG9pIFVCTkQgdGluaCBLaWVuIEdpYW5nIGRlIHRvIGNhbywga2llbiBuZ2hpIHh1bmcgcXVh bmggdmllYyB0aGFtIG5odW5nIGRhdCBkYWkgeGF5IHJhIHRhaSBodXllbiBuYXkuDQoNClZpZWMg YmF0IGdpdSBoYWkgbmd1b2kgbm9pIHRyZW4ga2hvbmcgaGUgY28gbGVuaCBiYXQgZ2l1IGN1YSBj YXAgY28gdGhhbSBxdXllbiwga2hvbmcgY28gcXV5ZXQgZGluaCB0YW0gZ2lhbSBjdW5nIA0Kbmh1 IHF1eWV0IGRpbmgga2hvaSB0byBiaSBjYW4gbmh1IGx1YXQgZGluaA0KDQpUaGVvIGRvbiB0cmlu aCBiYXksIG5hbSAyMDAxIHRhcCB0aGUgbmhhbiBkYW4gcGhhdCBoaWVuIG1vdCBzbyBjYW4gYm8g bG9pIGR1bmcgY2hpZW0gZGF0IHJ1bmcsIGxhIHRhaSBzYW4gY3VhIHF1b2MgZ2lhIA0KZGUgY2hp YSBuaGF1LiBOaGFuIGRhbiBkYSBjbyByYXQgbmhpZXUgZG9uIGd1aSBkZW4gdGluaCwgaHV5ZW4g dG8gY2FvLCBraWVuIG5naGkgbmh1bmcgdmFuIGtob25nIGR1b2MgdHJhIGxvaS4gDQpOZ3VvYyBs YWksIGNvbmcgYW4gc28gdGFpIHRyaWV1IHRhcCBiYXQgY3UgYWkgZGkgdG8gZ2lhYywga2hpZXUg a2llbiBsZW4gY28gcXVhbiBjb25nIGFuLCB5ZXUgY2F1IGRhbiBraSBjYW0ga2V0IA0Ka2hvbmcg a2hpZXUga2llbiwgdG8gY2FvIG51YSwgbGFtIG5ndW9pIGRhbiBoZXQgc3VjIGhvYW5nIG1hbmcu DQoNCi4uLi4uLkNhYyBoYW5oIHZpIGN1YSBjbyBxdWFuIGNhbmggc2F0IGRpZXUgdHJhIGNvbmcg YW4gdGluaCBLaWVuIEdpYW5nIGRhIGR1IHlldSB0byBjYXUgdGhhbmggdG9pIGhpbmggc3UsIHF1 eSBkaW5oIA0KdGFpIERpZXUgMTIzOiBUb2kgYmF0LCBnaXUgaG9hYyBnaWFtIG5ndW9pIHRyYWkg cGhhcCBsdWF0LCBLaG9hbiAxOiAiTmd1b2kgbmFvIGJhdCwgZ2l1IGhvYWMgZ2lhbSBuZ3VvaSB0 cmFpIHBoYXAgbHVhdCwgDQp0aGkgYmkgcGhhdCBjYW5oIGNhbywgY2FpIHRhbyBraG9uZyBnaWFt IGdpdSBkZW4gaGFpIG5hbSBob2FjIHBoYXQgdHUgdHUgYmEgdGhhbmcgZGVuIGhhaSBuYW0iOyBL aG9hbiAyOiAiUGhhbSB0b2kgDQp0aHVvYyBtb3QgdHJvbmcgY2FjIHRydW9uZyBob3Agc2F1IGRh eSwgdGhpIGJpIHBoYXQgdHUgdHUgbW90IG5hbSBkZW4gbmFtIG5hbTogVGlldCBhKSBDbyB0byBj aHVjOyBUaWV0IGIpIExvaSBkdW5nIA0KY2h1YyB2dSwgcXV5ZW4gaGFuLi4uIi4NCg0KaHR0cDov L3RpbjI0Ny5pcHZubi5jb20vcGhhcC1sdWF0L2hhbmctbGF1LW8tYXQtZG8tYm8tQTRBMjE4Lmlw dm5uDQoNCktpZW4gR2lhbmc6IEhhbmcgbGF1IG8gYXQgZG8gYm8gDQoNClRhaSBLaWVuIEdpYW5n LCBoYW5nIG5nYXkgaGFuZyBsYXUgdHUgQ2FtcHVjaGlhIHZhbiBsaWVuIHR1YyBkbyBzYW5nIG5n YSBjdWEga2hhdSBYYSBYaWEgdmEgR2lhbmcgVGhhbmguIA0KR2FuIGRheSBvIGtodSB2dWMgYmVu IFh1b25nIHZhIERhIER1bmcsIHRodW9jIHhhIE15IER1YyAoVFggSGEgVGllbiksIGhvYXQgZG9u ZyBidW9uIGxhdSB0cm8gbmVuIHNvaSBkb25nIGhvbi4gDQpTb20gY2hpZXUgdHVuZyB0b3AgeGUg Z2FuIG1heSBjaG8gaGFuZyBsYXUgdHUgZGF5IHh1b2kgcXVvYyBsbyA4MCBkbyB2ZSBUWCBIYSBU aWVuLCBUUCBSYWNoIEdpYS4gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMC0xMDQ0MTc4MTQv YnVvbl9sYXVfb19raWVuX2dpYW5nX25vbmdfaHVuZ19odWMuaHRtbCAoVGhlbyBCYW8gTm9uZyBu Z2hpZXAgKSAyMi8xLzIwMTAsIDEwOjQ5IEFNIA0KDQpLaWVuIEdpYW5nOiBCdW9uIGxhdSBub25n IGh1bmcgaHVjISANCg0KaHR0cDovL3RoZXRoYW92YW5ob2Eudm4vMTMyTjIwMDgwNzI5MDk0MjIz MDlUMTczL2tpZW4tZ2lhbmctdGFpLXBoYXQtbmFuLWJ1b24tbGF1LXhhbmctZGF1LXF1YS1iaWVu LWdpb2kuaHRtIDMwLzA3LzIwMDggMDA6NTMgICAgIA0KDQpLaWVuIEdpYW5nOiBUYWkgcGhhdCBu YW4gYnVvbiBsYXUgeGFuZyBkYXUgcXVhIGJpZW4gZ2lvaSANCg0KaHR0cDovL25ld3MucGhhbnZp ZW4uY29tL2J1b24tbGF1LXhhbmctZGF1LXRpZXAtdHVjLW5vbmcvMWE0NzQ5MWUxLw0KDQpLaGkg Z2lhIHhhbmcgZGF1IHRyb25nIG51b2MgdGFuZyB0aGkgdGFpIENhbXB1Y2hpYSAgZ2lhIG5oaWVu IGxpZXUgIGN1bmcgdGFuZyB0aGVvIHZvaSBtdWMgdHUgMjIuMDAwIGRlbiAyNS4wMDAgZG9uZy9s aXQgdHV5IGNodW5nIGxvYWkuIE1vaSBsaXQgeGFuZyBkYXUgdmFuIGNodXllbiB0aGFuaCBjb25n IHF1YSBiaWVuIGdpb2kgdGh1IGxvaSBraG9hbmcgNS4wMDAgZG9uZy4gVmkgdmF5LCBoYW5nIGxv YXQgbmd1b2kgZGFuIGN1YSBraGF1IHRoYW0gZ2lhIHZhbiBjaHV5ZW4geGFuZyBkYXUgcXVhIGJp ZW4gZ2lvaS4NCg0KaHR0cDovL3d3dy50aGFuaHRyYS5nb3Yudm4vUG9ydGxldEJsYW5rLmFzcHgv NTAyOUEzOTg3NEQ2NDkxNDlCMkVCRDRDMDYxMzAwRTIvVmlldy9QaG9uZy1jaG9uZy10aGFtLW5o dW5nL0YxNTdDRUFERTkwQzQ1QkQ5NzI2MjYyQTEzRTc3RjE4Lzg5NzEudHRjcD9wcmludD1DdHlf WE5LX1RodXlfc2FuX0tpZW5fR2lhbmdfLVNhaV9waGFtX25vaV90aWVwX3NhaV9waGFtJDE0OTM1 IDAyLzA3LzIwMDcgMDU6NDk6MzggUE0gIEhvbmcgTGluaCAoVFBPKQ0KDQpLaWVuIEdpYW5nOiBD dHkgWE5LIFRodXkgc2FuIEtpZW4gR2lhbmcgc2FpIHBoYW0gbm9pIHRpZXAgc2FpIHBoYW0NCg0K SGFuZyBsb2F0IHNhaSBwaGFtIG5naGllbSB0cm9uZywga2VvIGRhaSBjdWEgQ3R5IFhOSyBUaHV5 IHNhbiBLaWVuIEdpYW5nLCBtb3QgRE4gDQpOaGEgbnVvYywgZGEgbGFtIGNobyBDdHkgbmF5IGRp ZXUgZHVuZy4gQ28gaXQgbmhhdCA1IGNhbiBibyBkYSBiaSBraG9pIHRvLCBiYXQgdGFtIGdpYW0u IFR1eSBuaGllbiBoYW5nIGxvYXQgc2FpIHBoYW0ga2hhYyB2YW4gY2h1YSBkdW9jIGxhbSByby4g DQoNCkxhbmggZGFvIHRpbmggS2llbiBHaWFuZyB0cm9uZyAiYnVvYyBkdW9uZyBjdW5nIiBkYSBj aG9uIGdpYWkgcGhhcCBiYW4gQ3R5LCBiYW4gY2EgDQp0aHVvbmcgaGlldSBLaXNpbWV4IGNobyBt b3QgdHUgbmhhbiBvIENhIE1hdSBkZSBnaWFpIHRob2F0IG5vLg0KDQpNb2kgbmdheSBjaGkgNSB0 cmlldSBkb25nIHRpZW4uLi4gbmhhdQ0KDQpDdHkgWE5LIFRodXkgc2FuIEtpZW4gR2lhbmcgdGhh bmggbGFwIHR1IG5hbSAxOTk2IHZvaSB0aHVvbmcgaGlldSBnaWFvIGRpY2ggDQpLaXNpbWV4IG5v aSB0aWVuZyB0cm9uZyB2YSBuZ29haSBudW9jLiBTYW4gcGhhbSBjdWEgQ3R5IGRhIHNvbSBjbyBt YXQgdHJlbiBjYWMgdGhpIHRydW9uZyBsb24gbyBjaGF1IEF1LiANCg0KTGFuaCBkYW8gdGluaCBL aWVuIEdpYW5nIGNvaSBLaXNpbWV4IGxhIGRvYW5oIG5naGllcCBjb24gY3VuZywgbGEgbmllbSB0 dSBoYW8gdHJvbmcgDQpuZ2FuaCBjaGUgYmllbiB2YSB4dWF0IGtoYXUgdGh1eSBzYW4gY3VhIHRp bmguIFR1eSBuaGllbiB0aG9pIGhvYW5nIGtpbSBjdWEgQ3R5IG5heSBjaGFuZyBkdW9jIGJhbyBs YXUuIA0KDQpUdSB0aGFuZyA3LzIwMDMgZGVuIDMvMjAwNiBDdHkgZGEgdGh1YSBsbyBob24gNDYs NyB0eSBkb25nOyBkZW4gY3VvaSB0aGFuZyAzLzIwMDcgDQp0aGlldSBubyBob24gMTg1IHR5IGRv bmcsIHRyb25nIGRvIG5vIG5nYW4gaGFuZyAxNDcgdHksIG5vIGtoYWNoIGhhbmcgMzUsNSB0eSwg bm8gbmdhbiBzYWNoIDIsNyB0eS4gDQoNCihBbmggY2h1cDogTyB2aSB0aGUgZGFjIGRpYSB0YWkg VFAuIFJhY2ggR2lhIG5odW5nIGN1YSBoYW5nIGtob25nIG1hdCB0aWVuIHRodWUgbWF0IGJhbmcg bmF5IGN1YSBDdHkgS2lzaW1leCB2YW4ga2luaCBkb2FuaCB0aHVhIGxvLikNCg0KVHJvbmcga2hp IEN0eSBsaWVuIHRpZXAgdGh1YSBsbywgbm8gbmFuIGNob25nIGNoYXQsIGNvbmcgbmhhbiBraG9u ZyBjbyBsdW9uZywgdGhpZXUgdmllYyANCmxhbSB0aGkgbGFuaCBkYW8gQ3R5IGxhaSBjaGkgdGll dSB2byB0b2kgdmEuIEdhbiA1MDAgdHJpZXUgZG9uZyBkYSBiaSBjaGkgc2FpIG5ndXllbiB0YWM7 IGNoaSB2dW90IHF1aSBraGVuIHRodW9uZyA2MTAgdHJpZXUgZG9uZy4gDQoNCkRhYyBiaWV0IHRp ZW4gY2hpIHRpZXAga2hhY2ggZHVvYyB0aGUgaGllbiB0cmVuIGhvYSBkb24gdHUgdGhhbmcgOC8y MDAzIGRlbiAxMC8xMC8yMDA2IA0KbGVuIHRvaSA0LjU4MC43NDQuMDAwIGRvbmcuIE5odSB2YXkg YmluaCBxdWFuIG1vaSBuZ2F5IEN0eSBuYXkgY2hpIGNobyBhbiBuaGF1IHRyZW4gNSB0cmlldSBk b25nLiANCg0KTGFuaCBkYW8gQ3R5IGNvbiBsYXkgdm9uIG11YSBuZ3V5ZW4gbGlldSBoYWkgc2Fu IGRlIGtpbmggZG9hbmguLi4gZGF0IG8gVFBIQ00uIFZpZWMgDQpraW5oIGRvYW5oIG5heSBjaGFu ZyBuaHVuZyBraG9uZyBtYW5nIGxhaSBsb2kgbmh1YW4gbWEgY29uIG9tIHRoZW0gbW90IGtob2Fu IG5vIDIsNCB0eSBkb25nLiANCg0KTW90IHNvIGNhIG5oYW4gY28gcXV5ZW4gbHVjIHRyb25nIEN0 eSBLaXNpbWV4IGNvbiBjaGllbSBkdW5nIHRyZW4gNTQ0IHRyaWV1IGRvbmcgdm9uIHZheSBjdWEg bmdhbiBoYW5nIGRlIGRhbyB2dW9uZyB0b20gdmEga2VvIGR1b25nIGRheSBoYSB0aGUgdmFvIHRy YW5nIHRyYWkgY2EgbmhhbiBjdWEgDQptaW5oLiBIYW5nIGxvYXQgc2FpIHBoYW0ga2hhYyB0cm9u ZyB4YXkgZHVuZyBjbyBiYW4sIHRyb25nICJ0aGFuaCBseSB0YWkgc2FuIG1heSBjaGEgY2EiLi4u IGdheSB0aGlldCBoYWkgY2hvIEN0eSBoYW5nIHR5IGRvbmcuIA0KDQpTYWkgcGhhbSBub2kgdGll cCBzYWkgcGhhbQ0KDQpTYWkgcGhhbSBrZW8gZGFpLCBsaWVuIHR1YyBkZW4gMiBkb2kgR2lhbSBk b2MgQ3R5IEtpc2ltZXguIFBob25nIENTRFQgdG9pIHBoYW0ga2luaCB0ZSB2YSBjaHVjIHZ1IENB IHRpbmggS2llbiBHaWFuZyAoUEMxNSkga2hvaSB0byB2YSBiYXQgdGFtIGdpYW06IE9uZyBDaGF1 IE1pbmggVGFtLCANCm5ndXllbiBHaWFtIGRvYyBDdHk7IG9uZyBIdXluaCBWYW4gU29uLCBHaWFt IGRvYyBDdHk7IG9uZyBMeSBUaHVhIFRoaWVuLCBuZ3V5ZW4gS2UgdG9hbiB0cnVvbmcuIA0KDQpU YWkgQ2hpIG5oYW5oIGN1YSBLaXNpbWV4IGRvbmcgbyBUWCBIYSBUaWVuIGNvIHF1YW4gZGlldSB0 cmEgY3VuZyBkYSBiYXQgdGFtIGdpYW0gDQpHaWFtIGRvYywgUGhvIGdpYW0gZG9jIHZhIEtlIHRv YW4gZ29tOiBIb25nIEtpbSBUaHV5LCBMZSBRdWFuZyBOZ2hpZW0gdmEgUGhhbSBWYW4gTWFuaCB2 ZSB0b2kgInRoYW0gbyB2YSBjbyB5IGxhbSB0cmFpIi4gDQoNCkNvIHF1YW4gY2h1YyBuYW5nIGN1 bmcgZGFuZyBkaWV1IHRyYSBsYW0gcm8gc2FpIHBoYW0gY3VhIG9uZyBQaHVuZyBUaGFuaCBLaGll bSwgbmd1eWVuIEdpYW0gZG9jIGtobyB2YW47IGJhIExhbSBUaGFuaCBIYSwgR2lhbSBkb2MgeGkg bmdoaWVwIGNoZSBiaWVuIHRodXkgc2FuIHh1YXQgDQpraGF1IEFuIEhvYTsgTWFpIFRodW9uZyBY dWFuLCBuZ3V5ZW4gUGhvIGdpYW0gZG9jIHhpIG5naGllcCBraW5oIGRvYW5oIHZhIG51b2kgdHJv bmcgdGh1eSBzYW4gSGEgVGllbjsgTGUgVmFuIFZ1bmcsIER1b25nIEtoYWMgQmVuLCBIdXluaCBD aGF1IFNhbmc7IFZvIE1pbmggDQpUcmlldCwgTmd1eWVuIEtob2EgSG8gQW5oLi4uIGxhIG5odW5n IGNhbiBibyBjaHUgY2hvdCBjdWEgQ3R5IGNvIHZhaSB0cm8gInRpZXAgdGF5IiBjaG8gY2FjIGNh biBibyBraGFjIGxhbSB0cmFpIGdheSB0aGlldCBoYWkgaGFuZyB0eSBkb25nLiANCg0KRHUgbHVh biBjdW5nIGRhbmcgZGF0IHZhbiBkZSB2ZSBwaGkgdnUgbGF5IHZvbiBTWEtEIGN1YSBDdHkgZGUg bXVhIGRhdCB0cmVuIGR1b25nIE5ndXllbiBUcnVuZyBUcnVjIHZvaSBkYW5oIG5naGlhIGNoaWEg Y2hvIENCIJZDTlYga2hvbmcgY28gbmhhIG8gbmh1bmcgc2F1IGRvIA0KY2h1IHlldSBjaGlhIGNo YWMgY2hvIG1vdCBuaG9tIG5ndW9pIGNvIHF1eWVuIGx1YywgZGFjIGJpZXQgbmhpZXUgY2FuIGJv IGRhIGNvIG5oYSBjYW8gY3VhIHJvbmcgdmFuIGNvIHBoYW4uIA0KDQpWYSBuaGlldSBraHVhdCB0 YXQga2hhYyB2YW4gY2h1YSBkdW9jIGxhbSBzYW5nIHRvIG8gQ3R5IEtpc2ltZXguIE1vdCBjYW4g Ym8gZGEgYmkga2hvaSANCnRvIG5vaTogIkNvbiBuaGlldSAibmd1b2kiIHNhaSBwaGFtIGhvbiB0 cm9uZyBLaXNpbWV4IHZhbiBuaG9uIG5obyIuDQoNCkxhbmggZGFvIHRpbmggS2llbiBHaWFuZyB0 cm9uZyAiYnVvYyBkdW9uZyBjdW5nIiBkYSBwaGFpIGJhbiBDdHkgY2hvIG1vdCB0dSBuaGFuIHZv aSANCm1vdCBjYW0ga2V0IHBoYWkgImdhbmgiIHRvYW4gYm8gbm8gdmEgIm51b2kiIGR1b2MgdG9h biBibyBDQiCWIENOViBjdWEgS2lzaW1leC4gU3Ugc3VwIGRvIGN1YSBDdHkgbmF5IGNvIHZhaSB0 cm8gDQp0cmFjaCBuaGllbSBjdWEgbGFuaCBkYW8gdGluaCBLaWVuIEdpYW5nLiANCg0KaHR0cDov L2dpYWRpbmgubmV0LnZuLzIwMDkxMTE4MTI0MTA2OTNwMGMxMDA1L3lldS1yYXUteGFuaC1jdW9u Zy1kYW0tYmUtdGhpZXUtbmFuZy10cmktdHVlLmh0bSAxOC8xMS8yMDA5LCAxMjo0NihHTVQrNykN Cg0KS2llbiBnaWFuZzogIllldSByYXUgeGFuaCIgY3VvbmcgZGFtIGJlIGdhaSBiYWkgbGlldCwg dGhpZXUgbmFuZyB0cmkgdHVlIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9p Lzc5OTEzL1VCTkQtdGluaC1kYS1jby1uaGlldS1zYWktcGhhbS1uZ2hpZW0tdHJvbmcuaHRtbCBN SU5IIFFVQU4gMjMvMDUvMjAwNSwgMDg6MTYgKEdNVCs3KSANCg0KS2llbiBHaWFuZzogVUJORCB0 aW5oIGNvIG5oaWV1IHNhaSBwaGFtIG5naGllbSB0cm9uZyB2ZSBxdWFuIGx5IGRhdCBkYWkgDQoN Cmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvNzk5MTMvVUJORC10aW5oLWRhLWNv LW5oaWV1LXNhaS1waGFtLW5naGllbS10cm9uZy5odG1sIE1JTkggUVVBTiAyMy8wNS8yMDA1LCAw ODoxNiAoR01UKzcpIA0KDQpLaWVuIEdpYW5nOiBVQk5EIGh1eWVuIFBodSBRdW9jIHR1IHkga3kg ZHV5ZXQgZG9uIHZhIGdpYW8gY2FwIGdpYXkgY2h1bmcgbmhhbiBxdXllbiBzdSBkdW5nIGRhdCB0 cmVuIGRpZW4gdGljaCBydW5nIHBob25nIGhvIGtob2FuZyB0cmVuIDMxOC4wMDBtMiB2YSBwaGFu IHJhIDM4IGxvIGRhdCBjYXAgY2hvIGNhbiBibyB2YSBnaWEgZGluaCBjYW4gYm8gdGluaCwgaHV5 ZW4gbyBraHUgdnVjIGR1IGtpZW4gcXVpIGhvYWNoIGR1IGxpY2ggdGFpIGFwIFZ1bmcgQmF1IHRo dW9jIHhhIEN1YSBDYW4uIA0KDQpLZSBkZW4gbGEgdmllYyBkZSBjaG8gb25nIFRyYW4gVmFuIFVu ZyAtIG5ndXllbiBodXllbiBkb2kgdHJ1b25nIEh1eWVuIGRvaSBQaHUgUXVvYyAtIHBoYW4gbG8g MzYuNjEybTIgZGF0IHF1b2MgcGhvbmcgdG9hIGxhYyB0YWkga2h1IHZ1YyBCYSBLZW8sIHRoaSB0 cmFuIER1b25nIERvbmcsIHJvaSBzYXUgZG8gY2FwIGNoaWEgY2hhYyBjaG8gY2FjIHF1YW4gY2h1 Yy4gDQoNClR1b25nIHR1LCBjaHV5ZW4gY2hpYSBjaGFjIDIyLjUwNG0yIGtodSBkYXQgcXVvYyBw aG9uZyBjdW5nIG5hbSBvIEJhIEtlbyBkdW9jIHBobyBjaHUgdGljaCB0aHVvbmcgdHJ1YyBVQk5E IHRpbmggS2llbiBHaWFuZyBQaGFtIExvbmcga3kgZHV5ZXQgZG9uZyB5LCB0YW8gZGlldSBraWVu IGNobyBvbmcgRG8gVG8gLSBuZ3V5ZW4gY2h1IHRpY2ggVUJORCBodXllbiBQaHUgUXVvYyAtIGNh cCBnaWF5IGRvIHhheSBkdW5nIG5oYSBvIHZhIGNhYyBjb25nIHRyaW5oIGRhbiBkdW5nLiANCg0K aHR0cDovL2Nob25ndGhhbW5odW5nLnRoYW5odHJhLmNvbS52bi9Vc2VyUGFnZXMvTmV3cy9kZXRh aWwvdGFiaWQvNzMvbmV3c2lkLzY0My9zZW8vWWV1LWNhdS1raWVtLXRyYS1sYW5oLWRhby1WQ0It Y2hpLW5oYW5oLUtpZW4tR2lhbmcvRGVmYXVsdC5hc3B4DQoNCktpZW4gR2lhbmc6IENhbiBibyBW Q0IgS2llbiBHaWFuZyB0aGFtIG8gMSw3MiB0eSBkb25nIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4vdGlubmhhbmgvMjAxMDA4L0tpZW4tR2lhbmctVGh1LWtoby1jb25nLXR5LUR1b2MtdGhh bS1vLTEyLXR5LWRvbmctOTI3OTg0LyBCdWkgQ3VvbmcgMDk6MjksIDEwLzA4LzIwMTAgKEdNVCs3 KQ0KDQpLaWVuIEdpYW5nOiBUaHUga2hvIGNvbmcgdHkgRHVvYyB0aGFtIG8gMSwyIHR5IGRvbmcg DQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvNzk5MTMvVUJORC10aW5oLWRh LWNvLW5oaWV1LXNhaS1waGFtLW5naGllbS10cm9uZy5odG1sIE1JTkggUVVBTiAyMy8wNS8yMDA1 LCAwODoxNiAoR01UKzcpIA0KDQpLaWVuIEdpYW5nOiBCYW4gY2FuIHN1IERhbmcgVUJORCB0aW5o IEtpZW4gR2lhbmcgbGEgZGEgYnVvbmcgbG9uZyB2YWkgdHJvIGNoaSBkYW8gcXVhbiBseSBkYXQg ZGFpIG8gZGFvIFBodSBRdW9jLCANCmRlIGNhYyBxdWFuIGNodWMgbyBodXllbiBkYW8gbmF5IHR1 IHR1bmcgdHUgdGFjIHRyb25nIHZpZWMga3kgZHV5ZXQsIGdpYW8gY2FwLCBiYW8gY2hpZW0gZGF0 IGRhaS4gDQoNCmh0dHA6Ly92aWV0bG92ZS5jb20vYm9hcmQvbG9maXZlcnNpb24vaW5kZXgucGhw L3Q2MzY5MS5odG1sDQoNClRodSB0dW9uZzogS2llbiBHaWFuZyBkYW5nIHJhdCAibm9uZyIgLSBE YW4gY2h1bmcgbmhpZXUgbm9pIGR1bmcgZGF5IHBoYW4ga2hhbmcgdmllYyAiY3VvbmcgZG9hdCBk YXQiIA0KDQpLaWVuIEdpYW5nIChOVikgLSBLaG9uZyBjaGkgbm9uZyBkYW4gaHV5ZW4gS2llbiBM dW9uZyBtYSBkYW4gY2h1bmcgbyBSYWNoIEdpYSANCmN1bmcgZGEgZHVuZyBkYXkgcGhhbiBraGFu ZyB2aWVjIGN1b25nIGRvYXQgZGF0LCBkZSB0aHVjIGhpZW4gY2FpIGdvaSBsYSAiRHUgYW4gbGFu IA0KYmllbiBvIEtpZW4gR2lhbmciLiANCg0KVGluIHR1IHRyb25nIG51b2MgY2hvIGJpZXQsIDQ2 IGdpYSBkaW5oIG5ndSBvIGNhYyBwaHVvbmcgVmluaCBCYW8sIFZpbmggTGFjLCBBbiBIb2EsIA0K dGhhbmggcGhvIFJhY2ggR2lhLCBkYW5nIGNob25nIGxhaSB2aWVjIGN1b25nIGRvYXQgdGFpIHNh biBjdWEgaG8uIFRyYSBsb2kgZGFpIFJGQSwgb25nIA0KTGUgTXkgRHVjLCBtb3QgdHJvbmcgbmh1 bmcgbmFuIG5oYW4ga2U6ICJEdSBhbiBsYW4gYmllbiBLaWVuIEdpYW5nIiAoZG8gZGF0IHh1b25n IA0KYmllbiBkZSBsYXkgdGhlbSBtYXQgYmFuZywgbW8gcm9uZyB0aGFuaCBwaG8gUmFjaCBHaWEp IGRhIGtoaWVuIGRhbiBjaHVuZyBraG9uIGtobyANCnN1b3QgMTAgbmFtIG5heS4gRG8gbnVvYyB1 IGRvbmcsIGNodW5nIHRvaSBraG9uZyB0aGUgdHJvbmcgY2F5LCBkYW5oIGJvIGhvYW5nIHJ1b25n IA0KdnVvbi4gT25nIGNoYSBjaHVuZyB0b2kgdmEgY2h1bmcgdG9pIGRhIGN1IG5ndSwgY2FuaCB0 YWMgdGFpIGRheSB0dSA2MCBuYW0gZGVuIDEwMCANCm5hbSwgdGhlIHJvaSBjaGluaCBxdXllbiB0 dXllbiBibyB0aHUgaG9pIGRhdCBtYSBraG9uZyBiYW4gaGFuaCBiYXQga3kgcXV5ZXQgZGluaCB0 aHUgDQpob2kgbmFvLiBUaWVuIGJvaSB0aHVvbmcgdGhpIHJlIG1hdC4gTHVjIGRhdSBobyBhbiBk aW5oIGNoaSBjbyA4LDAwMCBkb25nIChraG9hbmcgNDAgDQpjZW50cykvbTIsIHNhdSBkbywgZG8g Ymkga2hpZXUgbmFpLCBobyB0YW5nIGxlbiAxMywyMDAgZG9uZyAoa2hvYW5nIDcwIGNlbnRzKS9t MiBzb25nIA0Kc2F1IGRvIHJhbyBiYW4gbGFpIHZvaSBnaWEgdHUgNTAwLDAwMCBkb25nL20yIGRl biAyIHRyaWV1IGRvbmcvbTIuIENodW5nIHRvaSBraG9uZyANCmRvbmcgeSB2YSBkYW5nIGNobyBn aWFpIHF1eWV0IGtoaWV1IG5haSB0aGkgaG8gZGlldSBkb25nIG5ndW9pIGRlbiBjaGF0IHBoYSBj YXkgY29pLCANCmtob25nIGxhcCBiaWVuIGJhbi4gQ2h1bmcgdG9pIG5nYW4gY2hhbiB0aGkgY29u ZyBhbiBjdW9uZyBjaGUuIEhvIGR1bmcgcm9pIGRpZW4gZGFuaCANCm5nYXQgYmEgcGh1IG51LCB0 cm9uZyBkbyBjbyBtb3QgYmEgY3UgNzcuIERheSBsYSBoYW5oIGRvbmcgZGFuIGFwIHF1YSBkYW5n IHZpIGNodW5nIA0KdG9pIGNoaSB5ZXUgY2F1IGNoaW5oIHF1eWVuIHRodWMgaGllbiBtb2kgdmll YyBkdW5nIHBoYXAgbHVhdC4gQ29uZyBhbiBkYSB0dW5nIGRlbSB4ZSB0b2kgDQoieHVjIiBuZ3Vv aSBuaHVuZyB2aSBjaHVuZyB0b2kga2hvbmcgbGFtIGdpIHNhaSBuZW4gaG8gcGhhaSB0aGEuIEJh eSBnaW8sIGhvIGRhbmcgdGltIA0KY2FjaCBjYW8gYnVvYyBjaHVuZyB0b2kgY2hvbmcgbmd1b2kg dGhpIGhhbmggY29uZyB2dSIuIA0KDQpDdW5nIHRoZW8gb25nIExlIE15IER1YywgZGFuIGNodW5n IGNoaW5oIHRodWMgcGhhbiBraGFuZyB2aWVjIGN1b25nIGRvYXQgZGF0IHN1b3QgDQptb3QgdGhh bmcgbmF5OiAiQ2h1bmcgdG9pIGRhIGN1IG5ndW9pIHJhIEhhIE5vaSBraGlldSBuYWkgdm9pIFRo dSB0dW9uZywgZ3VpIGRvbiBjaG8gDQpUaGFuaCB0cmEgdmEgY2FjIGNvIHF1YW4gYmFvIGNoaSBu aHVuZyBvbmcgbmF5IGR1biBkYXkgY2hvIG9uZyBraWEiLiBPbmcgRHVjIGtoYW5nIA0KZGluaDog IkNoYW5nIGNvIGR1IGFuIG5hbyBsYW4gYmllbiBoZXQsIENvbmcgdHkga2luaCBkb2FuaCB2YSBw aGF0IHRyaWVuIG5oYSBsb2kgZHVuZyBkdSBhbiBuYXkgZGUgbGFuIGRhdCBjdWEgZGFuIi4gDQoN Ck5nb2FpIHZ1IHBoYW4ga2hhbmcgbyBSYWNoIEdpYSwgbWFpIHRvaSBob20gcXVhLCBzYXUga2hp IHRob25nIHRpbiB2ZSB2dSBwaGFuIGtoYW5nIA0KY3VhIG5vbmcgZGFuIGh1eWVuIEtpZW4gTHVv bmcsIHRpbmggS2llbiBHaWFuZyBkdW9jIGxvYW4gdHJ1eWVuIHJvbmcgcmFpIHRyZW4gSW50ZXJu ZXQsIA0KbW90IHNvIHRvIGJhbyB0YWkgVmlldCBOYW0gbW9pIGR1YSB0aW4uIA0KDQpUbyBUaWVu IFBob25nIGNobyBiaWV0OiAiQmEgY2hpZW4gc2kgY29uZyBhbiBiaSBkYW5oIHRyb25nIHRodW9u Zy4gTmd1eWVuIGRvLCBzYW5nIDE3IA0KdGhhbmcgMTIsIDIwMCBuZ3VvaSBkYW4gZGEgcXV5ZXQg bGlldCBjaG9uZyBsYWkgdnUgY3VvbmcgY2hlIGRhdCB0YWkgYXAgVDQsIHhhIFZpbmggUGh1LCAN Cmh1eWVuIEtpZW4gTHVvbmcsIEtpZW4gR2lhbmcuIEhhaSBjaGllYyBnaGUgY2hvIGx1YyBsdW9u ZyBjdW9uZyBjaGUgYmkgbmhhbiBjaGltLCBuaGlldSANCm5ndW9pIHRyb25nIGRvYW4gY3Vvbmcg Y2hlIGJpIG5lbSBkYSwgYmkgZGFuaC4gTW90IGNhbiBibyB0aGkgaGFuaCBhbiBodXllbiANCktp ZW4gTHVvbmcgYmkgbmh1bmcgbmd1b2kgY2hvbmcgZG9pIGJhdCBnaXUgdmEgbG90IGhldCBxdWFu IGFvLiBQaG9uZyB2aWVuIHRydXllbiBoaW5oIA0KdGluaCBLaWVuIEdpYW5nIGN1bmcgYmkgZGFu aCBraGkgdGFjIG5naGllcC4gTmh1bmcgbmd1b2kgY2hvbmcgY3VvbmcgY2hlIGNvbiBiYXQgZ2l1 IA0KYmEgY2FuIGJvLCBtb3QgY29uIGNobyBuZ2hpZXAgdnUgZGUgZG9pIHRoYSBoYWkgbmd1b2kg ZGFuIHZ1YSBiaSBiYXQuLi4gTGFuaCBkYW8gdGluaCANCktpZW4gR2lhbmcgZGEgcGhhaSBjaGkg ZGFvIGR1bmcgbmdheSB2aWVjIGN1b25nIGNoZS4gT25nIEh1eW5oIFZhbiBUYW0sIHRydW9uZyBw aG9uZyANCnRoaSBoYW5oIGFuIHRpbmggS2llbiBHaWFuZyBjaG8gYmlldDogVmllYyBjdW9uZyBj aGUgdGh1YyBoaWVuIHRoZW8gc2F1IGJhbiBhbiANCmN1YSBUQU5EIHRpbmggS2llbiBHaWFuZyB0 dXllbiB0dSBuYW0gMjAwNi4gTm9pIGR1bmcgY2FjIGJhbiBhbiBidW9jIDcgaG8gZGFuIHRyYSAN CmxhaSAzMCBoZWMgdGEgZGF0IG5vbmcgbmdoaWVwIGNobyBjYWMgZG9uIHZpIHZhIGNhIG5oYW4g byBSYWNoIEdpYSB2YSBodXllbiBDaGF1IFRoYW5oIA0KbWEgY2FjIGhvIGRhbiB0aHVlIGRlIHRy b25nIGx1YSB0dSBuYW0gMjAwMyIuIA0KDQpDb24gdG8gVHVvaSBUcmUgbG9hbiBiYW86ICJDaG8g ZGVuIGNoaWV1IDE4IHRoYW5nIDEyLCB0aW5oIEtpZW4gR2lhbmcgdmFuIGNodWEgY28gDQpxdXll dCBkaW5oIG5hbyB4dSBseSB2dSB0YW4gY29uZyBsdWMgbHVvbmcgdGhpIGhhbmggYW4gdGluaCBL aWVuIEdpYW5nIGN1b25nIGNoZSB0aHUgDQpob2kgZGF0IHRhaSBhcCBUNCwgeGEgVmluaCBQaHUs IGh1eWVuIEtpZW4gTHVvbmcsIHRpbmggS2llbiBHaWFuZyIuIA0KDQpUdXkgbmhpZW4ga2hvbmcg Y28gdG8gYmFvIG5hbyB0YWkgVmlldCBOYW0gdHVvbmcgdGh1YXQgcmFuZywgY2FjIGx1YyBsdW9u ZyB0aGFtIGdpYSANCiJjdW9uZyBjaGUgdGhpIGhhbmggYW4iIGRhIGJhbiwgbGllbmcgbHV1IGRh biBjYXksIHJvaSBkdW5nIHJvaSBkaWVuLCBjaG8sIHRhbiBjb25nIHZhIA0KbGFtIGJpIHRodW9u ZyA5IG5vbmcgZGFuLiANCg0KVGhlbyBjYWMgbmhhbiBjaHVuZywgY2hpbmggcXV5ZW4gdGluaCBL aWVuIEdpYW5nIGRhIGRpZXUgZG9uZyBraG9hbmcgMTI1IG5ndW9pLCBnb20gDQpjYW4gYm8gZGlh IHBodW9uZywgY29uZyBhbiB2YSBjaGFwIGhhbmggdmllbiBjdWEgbHVjIGx1b25nIHRoaSBoYW5o IGFuLCBjYW5oIGtodXllbiANCmRlICJjdW9uZyBjaGUgdGhpIGhhbmggYW4iLCB0aHUgaG9pIGRh dCBjdWEgZ2lhIGRpbmggb25nIFBoYW0gVHkgdmEgYmEgTGUgVGhpIEhvLiANCg0KVmFvIGx1YyBu YXksIDEwNjQgZ2lhIGRpbmggbyBraHUgdnVjIGtlIHRyZW4gZGFuZyBzdSBkdW5nIGRhdCB2b2kg bmd1b24gZ29jIG5odSBnaWEgDQpkaW5oIG9uZyBQaGFtIFR5IHZhIGJhIExlIFRoaSBIby4gQmEg SHV5bmggVGhpIEJhLCBtb3Qgbm9uZyBkYW4ga2Ugdm9pIHJhbmcsIGRhdCANCnRyb25nIGtodSB2 dWMgbmF5IHR1bmcgdGh1b2MgTm9uZyB0cnVvbmcgNDIsIHNhdSBkbyBkYW4gZGFuIGR1b2MgYmFu IGhldCBjaG8gbm9uZyANCmRhbi4gSG9uIDEwMDAgZ2lhIGRpbmggbXVhIGRhdCBkYSB0dW5nIGR1 b2MgY2hpbmggcXV5ZW4ga2h1eWVuIGtoaWNoIGRvYyB2b24gbGllbmcsIA0KZG8gbW8gaG9pIGRl IGJpZW4ga2h1IHZ1YyBob2FuZyB2dSBkbyB0aGFuaCBydW9uZywgdm9pIG5hbmcgc3VhdCB0dSA0 MC01MCBnaWEvY29uZy4gDQoNCkJhdCBjaGFwIHZpZWMgbm9uZyBkYW4gZGFuZyBzaW5oIHNvbmcg b24gZGluaCB0cmVuIG1hbmggZGF0IGN1YSBtaW5oLCBjaGluaCBxdXllbiBkaWEgDQpwaHVvbmcg ZGEgbmdhbmcgbmhpZW4gbGF5IGRhdCAiY2FwIiBjaG8gbmd1b2kga2hhYy4gTmd1b2kgZHVvYyAi Y2FwIiBkYXQgZGEga2llbiANCm5ndW9pIHR1bmcgYm8gdGllbiBtdWEgZGF0IHZhIGtoYWkgaG9h bmcgcmEgVG9hIGRlIGRvaSBkYXQuIFRvYSBhbiBkYSBidW9jIG5ndW9pIGJvIHRpZW4gDQptdWEg ZGF0IHZhIGtoYWkgaG9hbmcgcGhhaSBnaWFvIGRhdCBjaG8gbmd1b2kga2hvbmcgbGFtIGdpIG1h IHZhbiBkdW9jIGNhcCBkYXQuIFZhbyANCm5nYXkgMTcgdGhhbmcgMTIsIGNhbiBibyBkaWEgcGh1 b25nLCBjb25nIGFuLCBjaGFwIGhhbmggdmllbiBjdWEgbHVjIGx1b25nIHRoaSBoYW5oIA0KYW4s IGNhbmgga2h1eWVuIGRhIGRvIGRlbiBkZSAiY3VvbmcgY2hlIiBnaWEgZGluaCBvbmcgUGhhbSBU eSwgYmEgTGUgVGhpIEhvICJ0aGkgaGFuaCANCmJhbiBhbiIgYXkuIA0KDQpCb2kgYmF0IGJpbmgg dHJ1b2MgbG9pIGhhbmggeHUgeSBoZXQga2UgY3VvcCB2YSB0aGF5IHJvIGRvIGN1bmcgc2UgbGEg ZGlldSB4YXkgZGVuIHZvaSANCm1pbmgsIGtob2FuZyA1MDAgbm9uZyBkYW4gZGFpIGRpZW4gY2hv IDEwNjQgZ2lhIGRpbmggdHJvbmcgdnVuZyBkYSBiaWV1IHRpbmggcGhhbiBkb2kgDQp2aWVjICJj dW9uZyBjaGUgdGhpIGhhbmggYW4iIG1hIHRodWMgY2hhdCBsYSAiY3VvbmcgZG9hdCB0YWkgc2Fu Ii4gDQoNCk5odW5nIG5ndW9pIGJpZXUgdGluaCBkYSBiaSBkYW4gYXAgZGEgbWFuLiBCYSBIdXlu aCBUaGkgQmEga2U6ICJIbyBkdW5nIHN1bmcgYmFuIA0KdmFvIGNodW5nIHRvaSwgcm9pIHF1YW5n IHRyYWkgY2F5LCByb2kgZGllbiwgY2hvIGJlYyBnaWUgdGFuIGNvbmcgY2h1bmcgdG9pIi4gVGhl IG5odW5nIA0KZGFuIGNodW5nIGtob25nIGx1aSBidW9jLCBiYSBIdXluaCBUaGkgQmEga2UgdGll cDogIkNodW5nIHRvaSBkdW5nIHhhbmcgcGh1biBsdWEgdmFvIA0KaG8uIENvbmcgYW4gYm8gY2hh eSwgdnV0IGxhaSBsYSBjaGFuLiBCbyBiYSBuZ3VvaSBiaSBiYXQgbGFpIHZhIGNodW5nIHRvaSBk YSB0aGFvIA0KY29uZyBjaG8gY2EgYmEuIE9uZyBEb2kgcGhvIFRoaSBoYW5oIGFuIGNvaSBhbywg bmhheSB4dW9uZyBzb25nIG5odW5nIGNodW5nIHRvaSB2YW4gDQpiYXQgZHVvYy4gUmF0IG5oaWV1 IGNhbiBibyBkYXUgaGFuZyBub2kgcmFuZyBobyBsYW0gbmh1IHZheSBsYSBkbyBjYXAgdHJlbiBj aGkgZGFvLCANCnRoYW5oIHJhIHR1aSB0b2kga2hvbmcgZGFuaCBoby4gQ29uIG9uZyBEb2kgcGhv IFRoaSBoYW5oIGFuIHRoaSBkYSBsYW0gZ2lheSBjYW0ga2V0IA0Ka2hvbmcgY3VvbmcgY2hlIGxh eSBkYXQgY3VhIGNodW5nIHRvaSBudWEsIG5lbiBjaHVuZyB0b2kgZGEgY2hvIGhvIHZlIHZhIHRy YSBsYWkgY29uIGNobyIuIA0KDQpTYXUgdGhhbmcgNCBuYW0gMTk3NSwgY2hpbmggcXV5ZW4gZGEg dGh1IGhvaSBkYXQgY3VhIG5vbmcgZGFuIGRlIGdpYW8gY2hvIGNhYyBkb24gdmkgDQpsYXAgY2Fj IG5vbmcgdHJ1b25nLCB0aHVjIGhpZW4gY2h1IHRydW9uZyBnb2kgbGFtIGtpbmggdGUuIE1vdCBz byBiYW4gcXVhbiBseSBub25nIA0KdHJ1b25nIGRhIGNhdCBkYXQgY2hvIG5vbmcgZGFuIC0gdHVu ZyBsYSBjaHUgZGF0IC0gdGh1ZSBsYWkgZGF0IGN1YSBjaGluaCBobyB0aGVvIGtpZXUgDQoicGhh dCBjYW5oIHRodSB0byIuIEJhbyBjaGkgZGEgdHVuZyBjbyBtb3Qgc28gYmFpIHZpZXQgY2hvIGJp ZXQgbm9uZyBkYW4gbyBuaHVuZyBub2kgbmF5IA0KYmkgImJvYyBsb3QgdGFuIHh1b25nIHR1eSIu IFR1IHRoYXAgbmllbiB0cnVvYyB0b2kgbmF5LCB0YWkgbW90IHNvIG5vaSBuaHUgQ2EgTWF1LCBk YSANCnR1bmcgeGF5IHJhIG5odW5nIHZ1IGJhbyBkb25nIGRvIG5vbmcgZGFuIGJpIGJvYyBsb3Qg dGFuIHRlLiANCg0KTW90IHNvIGJhbiBxdWFuIGx5IG5vbmcgdHJ1b25nIGtoYWMga2hvbmcgInBo YXQgY2FuaCB0aHUgdG8iIHRoaSBkZW0gZGF0IGJhbiBjaG8gbm9uZyANCmRhbiB2YSBuZ3VvaSBt dWEgdGh1b25nIHh1eWVuIGJpIGRlIGRvYSBib2kgdmllYyBjaGluaCBxdXllbiBsYXkgZGF0IGhv IGRhIG11YSwgZGEgYm8gDQpjb25nIHN1YyBraGFpIGhvYW5nICJjYXAiIGNobyBuZ3VvaSBraGFj IG1hIGRhIHNvIGxhIGNhbiBibyBkaWEgcGh1b25nLiANCg0KSG9pIGdpdWEgdGhhbmcgdHJ1b2Ms IHRvIExhbyBEb25nIHR1bmcgY28gYmFpIHR1b25nIHRodWF0IHZlIG1vdCB2dSBtYSB0aW5oIGNo YXQgeSBoZXQgDQpuaHUgdnUgdnVhIHhheSByYSBvIEtpZW4gTHVvbmcsIEtpZW4gR2lhbmcuIA0K DQpUaGVvIHRvIExhbyBEb25nLCBraG9hbmcgZ2l1YSB0aGFwIG5pZW4gMTk4MCwgdGluaCBMb25n IEFuIG1vaSBnb2kgbm9uZyBkYW4gY2FjIHRpbmggDQp0aGFtIGdpYSBjaHVvbmcgdHJpbmgga2hh aSBob2FuZyBEb25nIFRoYXAgTXVvaS4gTmFtIDE5ODksIGJhIEJ1aSBUaGkgSG9hLCBtb3QgDQpu b25nIGRhbiBuZ2hlbyBvIFRpZW4gR2lhbmcgbmdoZSB0aGVvIGxvaSBtb2kgZ29pIGF5IGRlbiBE b25nIFRoYXAgTXVvaSBraGFuIA0KaG9hbmcsIGxhcCBuZ2hpZXAgdGFpIGFwIEh1bmcgVGhhbmgs IHhhIEh1bmcgVGhhbmgsIGh1eWVuIFRhbiBIdW5nLiBMdWMgZG8sIGRvIGtodSANCnZ1YyBuYXkg bmhpZW0gcGhlbiBuYW5nLCBraG9uZyB0aGUgdHJvbmcgbHVhLCBuaGlldSBub25nIGRhbiBkYW5o IGJvIGN1b2MuIEJhIEhvYSB0aGkgDQpraG9uZyB2YSB0cm9uZyAxOSBuYW0gcXVhLCBiYSBIb2Eg Y3VuZyB2b2kgZ2lhIGRpbmggZGEgYmllbiBoYWkgaGVjIHRhIGRhdCBob2FuZyB0aGFuaCANCmhh aSBoZWMgdGEgcnVvbmcsIG1vaSBuYW0gY28gdGhlIHRyb25nIGR1b2MgaGFpIHZ1IGx1YSB2b2kg bmFuZyBzdWF0IGhvbiAxMCB0YW4vaGVjIHRhLiANCg0KQ3VuZyB0byBMYW8gRG9uZyBjaG8gYmll dCwgYmEgSG9hIGRhbmcgY28ga2hhIG5hbmcgdHJhbmcgdGF5IHZpIG1hbmggZGF0IGF5IGRhIGR1 b2MgDQpjaGluaCBxdXllbiBkaWEgcGh1b25nIG5nYW5nIG5oaWVuIGNhcCBjaG8gdm8gbW90IGNh biBibyB0cm9uZyBodXllbi4gDQoNClRoZW8gbG9pIGJhIEhvYSwgbmFtIDE5OTgsIGJhIGRhIGxh bSB0aHUgdHVjIHhpbiBjYXAgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHN1IGR1bmcgDQpoYWkgaGVj IHRhIG1hIGJhIHZhIGdpYSBkaW5oIGRhIGtoYWkgaG9hbmcgc29uZyBraG9uZyBoaWV1IHZpIHNh byBjaGluaCBxdXllbiBkaWEgcGh1b25nIA0KY3UgaGVuIGhvYWkuIERlbiBuYW0gMjAwMiwgYmEg SG9hIHRlIG5ndWEga2hpIGJpZXQgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHN1IGR1bmcgaGFpIGhl YyANCnRhIGRvIGRhIGR1b2MgY2FwIGNobyBiYSBOZ3V5ZW4gVGhpIEJpZW4sIHZvIG1vdCBjYW4g Ym8gY3VhIGh1eWVuIFRhbiANCkh1bmcgdHUgbmFtIDIwMDAsIGR1IGJhIEJpZW4gY2hhbmcgYmll dCBtYW5oIGRhdCBkbyBuYW0gbyBkYXUuIEJhIEhvYSBub3AgZG9uIGtoaWV1IG5haS4gDQpEZW4g Y3VvaSB0aGFuZyA0IG5hbSAyMDA0LCBVQk5EIGh1eWVuIG1vaSBnaWFpIHF1eWV0IGtoaWV1IG5h aSBkbyBiYW5nIG1vdCANCnF1eWV0IGRpbmggImJhYyBraGlldSBuYWkiIGN1YSBiYSBIb2EuIA0K DQpCYSBCdWkgVGhpIEhvYSB0aWVwIHR1YyBraGlldSBuYWkgdm9pIFVCTkQgdGluaCBMb25nIEFu IHZhIFVCTkQgdGluaCBnaWFpIHF1eWV0IA0Ka2hpZXUgbmFpIG5heSBiYW5nIGNhY2ggY2hpIGRh byBVQk5EIGh1eWVuIFRhbiBIdW5nICJ0aHUgaG9pIHF1eWV0IGRpbmggYmFjIGtoaWV1IG5haSIg DQpkZSBoYWkgYmVuIChiYSBIb2EgdmEgYmEgQmllbikgZHVhIHRyYW5oIGNoYXAgZG8gc2FuZyB0 b2EgYW4sIG5obyB0b2EgYW4gZ2lhaSBxdXlldC4gDQpTYXUgZG8sIGJhIEhvYSBub3AgZG9uIGtp ZW4gZG9pIGh1eSBnaWF5IGNodW5nIGNodW5nIG5oYW4gcXV5ZW4gc3UgZHVuZyBkYXQgbWEgY2hp bmggDQpxdXllbiBkaWEgcGh1b25nIGRhIGNhcCBjaG8gYmEgQmllbiB0YWkgdG9hIGFuIGh1eWVu IFRhbiBIdW5nIG5odW5nIHRvYSBhbiBuYXkga2hvbmcgY2hpdSBuaGFuLi4uIGRvbiBraWVuLiAN Cg0KVG8gTGFvIERvbmcgbmV1IHRoYWMgbWFjOiBUaGVvIEx1YXQgRGF0IERhaSwgbmhhIG51b2Mg Y2hpIGdpYW8gZGF0IG5vbmcgbmdoaWVwIGNobyANCm5odW5nIG5ndW9pIHRydWMgY2FuaC4gVmF5 IG1hIGtob25nIGhpZXUgdmkgc2FvIG5hbSAyMDAwLCBiYSBCaWVuIGxhaSBkdW9jIFVCTkQgDQpo dXllbiBUYW4gSHVuZyBjYXAgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHN1IGR1bmcgbWFuaCBkYXQg bWEgYmEga2hvbmcgYmlldCBubyBuYW0gDQpvIGRhdS4gVGhhbSBjaGksIGtoaSBkYSBjbyBnaWF5 IGNodW5nIG5oYW4gcXV5ZW4gc3UgZHVuZyBkYXQsIGJhIEJpZW4gY3VuZyBraG9uZyANCnRoZW0g dG9pIG5oYW4gZGF0LiBNYWkgZGVuIHRoYW5nIDggbmFtIDIwMDcsIGJhIG1vaSB4dW9uZyBnaWFu aCBkYXQgdmEgYmkgYmEgSG9hIGNob25nIGN1IA0KZHUgZG9pLiANCg0KVHJhIGxvaSBuaHVuZyB0 aGFjIG1hYyBkbywgb25nIFBoYW0gVGhhbmggSHVuZywgcGhvIHBob25nIFRhaSBOZ3V5ZW4gTW9p IFRydW9uZyANCmh1eWVuIFRhbiBIdW5nLCBjaG8gYmlldCwgb25nICJuZ2hlIG5vaSIgYmEgQmll biBjaG8gYmEgSG9hIG11b24gZGF0IGNhbmggdGFjLiBDb24gDQpvbmcgTGUgVGhhbmggTmdoaWVt LCBjaHUgdGljaCBodXllbiBUYW4gSHVuZyB0aGkgcGhhbiBidWEgcmFuZzogTHVjIGRvIGRhdCBk byBEb2FuIA0KMSAobW90IGRvbiB2aSBsYW0ga2luaCB0ZSkgcXVhbiBseSwgbmVuIGtoaSBuaGFu IGhvIHNvIGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5ZW4gc3UgDQpkdW5nIGRhdCBkbyBEb2FuIDEg Y2h1eWVuIHNhbmcsIG9uZyBjaGkga3kgY2hvLi4uIGR1bmcgdGh1IHR1Yy4gT25nIEh1bmcgdGh1 YSBuaGFuLCANCnRoZW8gTHVhdCBEYXQgRGFpLCBiYSBCaWVuIGtob25nIGR1IGRpZXUga2llbiBk ZSBkdW9jIGNhcCBwaGFuIGRhdCBuYXkuIChHLkQpIA0KDQooVGluIGNhcCBuaGF0IHR1OiBOZ3Vv aSBWaWV0KSANCg0KaHR0cDovL2hvbWUudm5uLnZuL2h1eWVuX2hvbl9kYXRfX2tpZW5fZ2lhbmdf X19jYW5fYm9fY2hpYV9jaGFjX2RhdF9jb25nLTE2Nzc3MjE2LTYyNTI3ODUwMC0wIC0gIHR1b2l0 cmUuY29tLnZuIDI1LTAxLTIwMTAgMDc6NTkgRFVDIFZJTkggLSBUQU4gVEhBSSANCg0KS2llbiBH aWFuZzogSHV5ZW4gSG9uIERhdCAtIENhbiBibyBjaGlhIGNoYWMgZGF0IGNvbmcgDQoNCkNhcCBk YXQgc2FpIGRvaSB0dW9uZyANCg0KVGFpIHhhIEJpbmggR2lhbmcsIGNhbmggZG9uZyBhcCBUYW0g TmdhbiBuYW0gdHJvbmcgZGllbiB0aWNoIDMwMGhhIHRydW9jIGRheSBnaWFvIGNobyBDb25nIHR5 IFRoaWVuIFNpbmguIFZpIGRvbiB2aSBuYXkga2hvbmcga2hhaSB0aGFjIG5lbiBVQk5EIHRpbmgg dGh1IGhvaSBkZSBjYXAgDQpjaG8gbmh1bmcgZG9pIHR1b25nIGRpZW4gY2hpbmggc2FjaCwga2hv bmcgZGF0IGNhbmggdGFjIG5odW5nIHNhdSBkbyBjaHVhIHJvIHRhaSBzYW8gbGFpIGNvIG5oaWV1 IHRodWEgZG8gZ2lhIGRpbmggY2FuIGJvIGR1bmcgdGVuDQoNCkNhbiBibyAiY2hpZW0iIGRhdCBj b25nIA0KDQpUYWkgdGhpIHRyYW4gSG9uIERhdCwgY28ga2h1IGRhdCBnaWFwIHF1b2MgbG8gODAg Z2lhIHRoaSB0cnVvbmcgaGllbiBsZW4gdG9pIGhhbmcgdHJhbSBsdW9uZyB2YW5nLiBLaHUgZGF0 IG5heSB2b24gY3VhIENvbmcgdHkgQ2hlIGJpZW4gbm9uZyBsYW0gc2FuIEtpZW4gR2lhbmcsIFVC TkQgaHV5ZW4gSG9uIERhdCBjbyB2YW4gYmFuIHhpbiB0aW5oIGdpYW8gY2hvIGRpYSBwaHVvbmcg ZGUgcGh1YyB2dSBtdWMgZGljaCBjb25nIGNvbmcuIA0KVGhlIG5odW5nIHR1IG5hbSAyMDA0LCBs byBkYXQgbG90IHZhbyB0YXkgZ2lhIGRpbmggb25nIERvIER1YyBUcm9uZyAobHVjIGF5IGxhIGJp IHRodSBodXllbiB1eSkgZG8gb25nIERvIEhvYWkgVGhhbmggKGNhbiBibyBiYW4gdG8gY2h1YyBo dXllbiB1eSwgY29uIG9uZyBUcm9uZykgZHVuZyB0ZW4uIA0KVHJ1bmcgdGFtIFkgdGUgaHV5ZW4g SG9uIERhdCBkdW9jIHF1eSBob2FjaCB0dSBuYW0gMTk4NCB0cmVuIGRpZW4gdGljaCA5NC41MDBt MiAsIA0Kbmh1bmcgc2F1IGRvIGhvbiA2Ni4wMDBtIDIgZGF0IHBoaWEgc2F1IHRydW5nIHRhbSBi aSBjYXQgdmEgZ2lhbyBjaG8gZ2FuIDMwIGhvIGxhIGNhbiBibyBjb25nIG5oYW4gdmllbiBuZ2Fu aCB5IHRlLg0KDQpUcm9uZyBraGkgZG8sIGtodSBkYXQgbWF0IHRpZW4gZ2lhcCBxdW9jIGxvIDgw LCBuYW0ga2UgYmVuIFRydW5nIHRhbSBZIHRlIGh1eWVuIEhvbiBEYXQgZHVvYyBwaGFuIHRoYW5o IHRhbSBsbyB2YSBjaGlhIGNobyBuaGlldSBjYW4gYm8gaHV5ZW4sIHRyb25nIGRvIGNvIGJpIHRo dSBodXllbiB1eSANCk5ndXllbiBUaGFuaCBIb2EsIG5ndXllbiBiaSB0aHUgaHV5ZW4gdXkgTmd1 eWVuIFRydW5nIFRyaWV1LCBuZ3V5ZW4gdGh1b25nIHZ1IGh1eWVuIHV5IE5ndXllbiBWYW4gSGFu aCwgbmd1eWVuIHBobyBiaSB0aHUgaHV5ZW4gdXkgUGhhbSBEdWMgVGh1YW4sIHRydW9uZyBwaG9u ZyB5IHRlIFZ1IFh1YW4gTXVpLi4uIA0KDQpEZW4gbmFtIDE5OTgsIGtoaSBVQk5EIHRpbmggS2ll biBHaWFuZyByYSBxdXlldCBkaW5oIGdpYW8gZGF0IGRlIHhheSBiZW5oIHZpZW4gdGhpIGRpZW4g dGljaCB0aHVjIHRlIGNoaSBjb24gbGFpIDE4LjAwMG0gMiAuIA0KDQpSaWVuZyBraHUgZGF0IG5n YXkgdHJ1b2MgbWF0IHRydW5nIHRhbSBodXllbiBIb24gRGF0IGNvIG1hdCB0aWVuIGdpYXAgcXVv YyBsbyA2NCwgZHUgdmkgcGhhbSBoYW5oIGxhbmcgbG8gZ2lvaSBuaHVuZyBjdW5nIGR1b2MgbGFw IHNvIGRvIHBoYW4gbG8gY2FwIGNobyBiYXkgaG8gY2FuIGJvLiANCg0KTmdvYWkgY2FjIHZpIHBo YW0gdHJlbiwgaHV5ZW4gSG9uIERhdCB2YSBtb3Qgc28geGEgY29uIGNhcCBkYXQgY2hvIG5oaWV1 IGdpYSBkaW5oIGNhbiBibyBraGFjLiBDaGFuZyBoYW4sIHhhIFRobyBTb24gY2FwIGhvbiA3LjYw MG0gMiBjaG8gdGFtIGdpYSBkaW5oIGNhbiBibyBhcCBIb24gDQpRdWVvOyBodXllbiBob3AgdGh1 YyBob2EgcXV5ZW4gc3UgZHVuZyBkYXQgdnVvdCBkaWVuIHRpY2ggZ2FuIDQuMDAwbSAyIHRhaSB0 aGkgdHJhbiBIb24gRGF0IGNobyBoYWkgb25nIE5ndXllbiBUaGFuaCBTYW5nIChwaG8gcGhvbmcg dGFpIGNoaW5oIC0ga2UgaG9hY2gpLi4uDQoNCmh0dHA6Ly9kaWFvYy50dW9pdHJlLnZuL0luZGV4 LmFzcHg/QXJ0aWNsZUlEPTI3MDc2MSZDaGFubmVsSUQ9NDUwIDI3LzA3LzIwMDgsIDE2OjI4IFRU WFZODQpLaWVuIEdpYW5nOiBEdSBhbiBsYW4gYmllbiBLaWVuIEdpYW5nIGtobyB0aHUgaG9pIHZv bg0KDQpLaWVuIEdpYW5nIGhpZW4gY28gZGVuIDUgZHUgYW4gbGFuIGJpZW4gZ29tIDMgZHUgYW4g dGFpIHRoYW5oIHBobyBSYWNoIEdpYSwgMSBvIGh1eWVuIEtpZW4gTHVvbmcgdmEgMSBvIHRoaSB4 YSBIYSBUaWVuLiBUaGVvIHVvYyB0aW5oIHNvIGJvLCBzbyB2b24gYm8gcmEgYmFuIGRhdSBjaG8g Y2FjIGR1IGFuIG5heSBkZW4gZ2FuIDEuMDAwIHRpIGRvbmcgbmh1bmcga2hhIG5hbmcgdGh1IGhv aSB2b24gbGEga2hvbmcga2hhIHRoaS4NCkNodSB5ZXUgbGEgZG8ga2UgaG9hY2gga2hvbmcgc2F0 IHZvaSB0aHVjIHRlLCBsYWkgdGhvbmcgcXVhIHF1YSBuaGlldSB0cnVuZyBnaWFuIGRheSBnaWEg bGVuIGNhby4NCkR1IGFuIGxhbiBiaWVuIHF1aSBtbyA0ODAgaGVjIHRhIHRhaSB0aGFuaCBwaG8g UmFjaCBHaWEgZGVuIG5heSBkYSBob24gMTAgbmFtIHRyb2kgcXVhLCB0aG9pIGdpYW4ga2VvIGRh aSBnYXAgMiBsYW4gc28gdm9pIGR1IGtpZW4gYmFuIGRhdSwga2hvaSBsdW9uZyBjb25nIHZpZWMg Y2hpIG1vaSBob2FuIHRoYW5oIGNodWEgZHVvYyBtb3QgbnVhOyBuaHVuZyBkdSBhbiBraGFjIGN1 bmcgZGFuZyBsYW0gdmFvIGNhbmggdHVvbmcgdHUuDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0 bmFtZXNlL2luX2RlcHRoL0tpZW4tR2lhbmctc2VhLWVuY3JvYWNoaW5nLXByb2plY3QtY29udGlu dWVzLXRvLXRha2UtaGVhdnktdG9sbC1vbi1sb2NhbC1wZW9wbGUtVFF1YW5nLTEyMTkyMDA4MDk1 NjMxLmh0bWw/c2VhcmNodGVybT1Ob25lIFRoYW5oIFF1YW5nLCBwaG9uZyB2aWVuIFJGQSAyMDA4 LTEyLTE5DQoNCktpZW4gR2lhbmc6ICJEdSBhbiBsYW4gYmllbiBLaWVuIEdpYW5nIiwgcmFjIHJv aSBkYXQgZGFpIG8gbWllbiBUYXkNCg0KTmd1b2kgZGFuIG8gUmFjaCBHaWEgZGEgY28gcGhhbiB1 bmcgbWFuaCBtZSB0cnVvYyBjYWMgaGFuaCBkb25nIGN1YSBjaGluaCBxdXllbiANCnh1bmcgcXVh bmggIkR1IGFuIGxhbiBiaWVuIEtpZW4gR2lhbmciLCBtYSBuaGlldSBuZ29pIGNhbyBnaWFjIGxh IGxhbiBkYXQgY3VhIGRhbiBjaHUga2hvbmcgcGhhaSBsYW4gYmllbi4NCg0KVHJvbmcgbWF5IG5n YXkgbmF5LCB0cm9uZyBsdWMgY2FjIHJhYyByb2kgdGFpIHBodW9uZyBBbiBIb2EsIHRoYW5oIHBo byBSYWNoIEdpYSBjaHVhIGR1b2MgZ2lhaSBxdXlldCB0aG9hIGRhbmcsIGdpb2kgY2FtIHF1eWVu IGdpYSB0YW5nIGhhbmggZG9uZyB0YWkgdGhlbSBuaGlldSBwaHVvbmcgDQpraGFjIG51YSwga2hp ZW4gZGFuIG9hbiBsYW0gY2FuaCBtYSBobyB0aGFuIGxhICJ2byBjdW5nIGtob24ga2hvIi4gDQoN ClRoYW5oIFF1YW5nIHRpbSBoaWV1IHRpbmggaGluaCBuYXksIHZhIGR1b2Mgb25nIExlIE15IER1 YywgbmFuIG5oYW4gdmEgbGEgZGFpIGRpZW4gY2hvIHNvIGRhbiBvYW4gYXksIGNobyBiaWV0Lg0K DQpUYW4gY29uZyBiYW5nIHJvaSBkaWVuDQoNCk8uIExlIE15IER1YzogTm9pIGR1bmcgcmEga2hv biBraG8gdGhpIGhvIGtob24ga2hvIDEwIG5hbSByb2kgY2h1IGtob25nIHBoYWkgbW9pIGRheS4g THkgZG8gbGEgdmkgY2F5IGNvaSwgaG9hIG1hdSBuZ2FwIG51b2MgY2hldCwga2hvbmcgdGhlIHRy b25nIHJhdSBnaSBkdW9jOyBuaGF0IGxhIA0KaGllbiBuYXkgY2hpbmggcXV5ZW4gdGhhbmggcGhv IFJhY2ggR2lhIHZhIEJhbiBRdWFuIGx5IER1IGFuICJMYW4gYmllbiBLaWVuIEdpYW5nIiBkdWEg bHVjIGx1b25nIGNvbmcgYW4geHVvbmcgY3VvbmcgY2hlIGRhdCBkYWkuDQpDaHVuZyB0b2kgY2hv IGRheSBsYSBkaWV1IGtob25nIGhvcCBseSB2aSBkYXQgY3VhIGNodW5nIHRvaSBjaHVhIGNvIGxl bmggdGh1IGhvaSBtYSBhbmggDQpyYSBxdXlldCBkaW5oIGN1b25nIGNoZSBsYSBzYWkuIEhvbiBu dWEgZGF0IGN1YSBjaHVuZyB0b2kgZGFuZyB0cm9uZyB2b25nIGtoaWV1IGtpZW4sIGNodWEgZHVv YyBnaWFpIHF1eWV0IGR1dCBkaWVtIG1hIGFuaCBsYWkgZHVhIHF1eWV0IGRpbmggY3VvbmcgY2hl Lg0KSG9tIHJvaSBsdWMgbHVvbmcgY29uZyBhbiB4dW9uZyBjdW9uZyBjaGUsIGR1bmcgcm9pIGRp ZW4gdGFuIGNvbmcgMyBuZ3VvaSBkYW4gYmEsIHRyb25nIGRvIGNvIG1vdCBiYSA3NyB0dW9pIGJp IHhpdSwgcGhhaSBkdWEgZGkgYmVuaCB2aWVuLiBEYXkgbGEgaGFuaCBkb25nIGRhbiBhcCBxdWEg ZGFuZyB2aSBuZ3VvaSBkYW4gY2h1bmcgdG9pIGNoaSB5ZXUgY2F1IGNoaW5oIHF1eWVuIHZhIGJh biBxdWFuIGx5IGR1IGFuIHRodWMgaGllbiBjaG8gZHVuZyBwaGFwIGx1YXQgdmEgbHVhdCBkYXQg ZGFpLiBOaHVuZyBobyBraG9uZyBsYW0gdmllYyBnaSBoZXQuIA0KQ2h1bmcgdG9pIGNoaSB5ZXUg Y2F1IGxhIG5ldSBjaHVuZyB0b2kgc2FpIHRoaSBobyBsYXAgYmllbiBiYW4gcmFuZyBkb2FuIGN1 b25nIGNoZSBjdW9uZyANCmNoZSBjYWMgb25nIGNhYyBiYSB2aSBwaGFtIGNob25nIGxlbmggZ2kg ZG8uLi4gQ3UgbGFwIGJpZW4gYmFuIGRlIHNhdSBuYXkgY2h1bmcgdG9pIGNvbiBraGlldSBraWVu Lg0KTmh1bmcgaG8gZGVtIGx1YyBsdW9uZyBjb25nIGFuIGRlbiBoYW5oIGRvbmcgbmh1IHZheSBs YSBiYXkuIFRodSBoYWkgbGEgZHVuZyByb2kgZGllbiB0YW4gY29uZyBwaHUgbnUgNzAtODAgdHVv aSB0aGkgcXVhIHRhbiBuaGFuLiBDaHVuZyB0b2kgcGhhbiBkb2kgcXV5ZXQgbGlldC4NCk5odW5n IHRodWEgZGF0IG5heSBjaHVuZyB0b2kgY2FuaCB0YWMgdG9pIHRoZSBoZSB0aHUgYmEgcm9pLCBj dW5nIHR1IDYwIHRvaSAxMDAgbmFtIHJvaS4gQmF5IGdpbyBjaGluaCBxdXllbiBzbyB0YWkgdmEg YmFuIHF1YW4gbHkgZHUgYW4gbmF5LCBobyBsaWV1IG1hbmcsIGxpZXUgbGluaC4gVHJvbmcga2hp IGNodW5nIHRvaSBjaHVhIG5oYW4gdGllbiBib2kgdGh1b25nIG1hIGhvIGxhaSB0aHVjIGhpZW4g dmllYyBjdW9uZyBjaGUuIA0KDQpSaWVuZyB2aWVjIGNodW5nIHRvaSBjaHVhIG5oYW4gdGllbiBr aG9uZyBwaGFpIHZpIHZhbiBkZSBkYXQgaGF5IHJlOyBuZXUgY2FjIGFuaCBsYW0gDQpkdW5nIHBo YXAgbHVhdCB0aGkgY2h1bmcgdG9pIGdpYSBuYW8gY3VuZyBwaGFpIG5oYW4uIERvIGxhLCB0aHUg bmhhdCwgbmhhIG51b2MgbGF5IGRhdCBjaHVuZyB0b2kgcGhhaSBjbyBxdXlldCBkaW5oIHRodSBo b2kgZGF0OyB0aHUgaGFpLCB0aHUgZGF0IHZhbyB0aG9pIGRpZW0gbmFvIHRoaSB0aW5oIGdpYSAN CmN1YSB0aG9pIGRpZW0gZG8uIEhvIHRodSBkYXQgbmdheSBob20gbmF5IG1hIHRpbmggZ2lhIDEy IG5hbSB2ZSB0cnVvYyB0aGkgbGFtIHNhbyBjaGl1IG5vaT8NCg0KQ2hvbmcgbmd1b2kgdGhpIGhh bmggY29uZyB2dT8NCg0KVGhhbmggUXVhbmc6IFRodWEgYW5oLCB0cm8gbGFpIHZhbiBkZSBuYW5n IHRheSBjdWEgZ2lvaSBjYW0gcXV5ZW4sIG5naGUgbm9pIGxhIGdpb2kgY2FtIA0KcXV5ZW4gZGlh IHBodW9uZyB0aWVwIHR1YyBoYW5oIGRvbmcgdGFuIHBoYSBjYXkgdHJhaSwgaG9hIG1hdSBjdWEg Y3UgZGFuLCB2YW4gZGUgbmF5IHRpZXAgZGllbiByYSBzYW8/DQoNCk8uIExlIE15IER1YzogSGll biBobyB0aHVlIG5ndW9pIGJlbiBuZ29haSB2byBjdWEgZG8gaGV0IHRvYW4gYm8gc28gY2F5IHRy ZW4gZHVvbmcgaG8gbXVvbiBsYXkuIEhvIGN1YSBzYWNoIHNlIG5odW5nIGNheSBjb2kgbWEgY2h1 bmcgdG9pIHRyb25nIHR1IDMwIGRlbiA2MCBuYW0gbmF5Lg0KQ2h1bmcgdG9pIGtob25nIHRoZSBj aG9uZyBkbyBkdW9jIGNodXllbiBkbywgdmkgbGFtIG5odSB2YXkgdGhpIGhvIGNobyBsYSBjaG9u ZyBuZ3VvaSB0aGkgaGFuaCBjb25nIHZ1LiBDaHVuZyB0b2kgbm9pIG1heSBvbmcgY3VhIHRoaSBj dSBjdWEsIG5odW5nIHNhaSBwaGFwIGx1YXQgbyBjaG8gbGEgYW5oIA0KY3VhIGNheSBoYXkgbGFt IGdpIHRoaSBjdW5nIHBoYWkgbGFwIGJpZW4gYmFuLiBIbyBraG9uZyBsYXAgYmllbiBiYW4gZ2kg aGV0LCBkbyBsYSBjYWkgc2FpIHRodSBuaGF0LiANClRodSBoYWkgbGEga2hpIG5ndW9pIGRhbiBy YSBwaGFuIGRvaSwgY2hpIHlldSBjYXUgbGEgYW5oIGxheSBkYXQgdG9pIHBoYWkgY28gcXV5ZXQg ZGluaCB0aHUgDQpob2ksIGFuaCBjdWEgY2F5IGN1YSB0b2kgYW5oIHBoYWkgbGFwIGJpZW4gYmFu IGxhIGN1YSBjYXkgZ2kgY3VhIHRvaSwgdGhpIGhvIGxhaSBkdW5nIHJvaSANCmRpZW4ga2hvbmcg Y2hlIG5odW5nIG5ndW9pIGRhbiBiYSBkby4gRG8gbGEgY2h1eWVuIGJheS4NCg0KVGhhbmggUXVh bmc6IENodW5nIHRvaSBjdW5nIGR1b2MgdGluIGxhIGNvIG5oaWV1IG5ndW9pLCBrZSBjYSBwaHUg bnUsIGJpIGJhdCBnaWFtIG8gcGh1b25nLCByb2kgYmF0IGxhbSBraWVtIGRpZW0gcmFuZyBobyBj byBsb2ksIGR1IGhvIGJpIHBoaWEgY2FtIHF1eWVuIGFwIGJ1Yy4gVmFuIGRlIG5heSByYSBzYW8/ DQoNCk8uIExlIE15IER1YzogVHJ1b2Mga2hpIG5ndW9pIGRhbiBjaG9uZyBkb2kgdGhpIGhvIHh1 YyBtYXkgYmEgbmF5IGxlbiB4ZSBjb25nIGFuIGR1YSB2ZSBwaHVvbmcsIG5odW5nIGN1bmcga2hv bmcgbGFwIGJpZW4gYmFuLiBUb2kgbW9pIG5vaSBsYSBjdSBkdWEgdGF5IGNobyBobyBjb25nLiBL aGkgDQpuaG90IHRvaSwgdGFtIGdpdSB0b2kgYW5oIHBoYWkgbGFwIGJpZW4gYmFuLCBwaGFpIHJh IHF1eWV0IGRpbmggbmhvdCBuZ3VvaSB0aGVvIGx1YXQgcGhhcCBWaWV0IE5hbSwgY2hvIGJpZXQg dG9pIHRvaSBnaT8gDQpIbyBraG9uZyB0cmEgbG9pIGR1b2MsIHZhIGxhaSB0aGEgdmUgdGhvaS4g Um9pIGhvIGNhbyBidW9jIG5odW5nIG5ndW9pIGJpIGJhdCBkbyB0b2kgY2hvbmcgDQpuZ3VvaSB0 aGkgaGFuaCBjb25nIHZ1LiBOaHVuZyBuZ3VvaSBkYW4gZ2l1IGRhdCBjdWEgaG8gdGhpIGxhbSBz YW8gZ29pIGxhIGNob25nIG5ndW9pIHRoaSBoYW5oIGNvbmcgdnU/DQoNClRoYW5oIFF1YW5nOiBU aHVhIGFuaCBoYW5oIGRvbmcgbmh1IHZheSBjdWEgZ2lvaSBjYW0gcXV5ZW4gaGllbiBrZW8gZGFp IGJhbyBsYXUgcm9pPw0KDQpPLiBMZSBNeSBEdWM6IENobyB0b2kgbmdheSBob20gbmF5IHRoaSB0 aW5oIHRyYW5nIG5heSBrZW8gZGFpIGtob2FuZyAzMCBuZ2F5IHJvaS4gRG90IA0KbmF5IGhvIGN1 b25nIGNoZSB0b2kgMyBwaHVvbmcsIGdvbSBWaW5oIEJhbywgVmluaCBMYWMgdmEgQW4gSG9hLCB2 b2kgdG9uZyBjb25nIDQ3IGhvIGRhbi4gSGllbiBuYXkgY29uIDQ2IGhvIGRhbiBraG9uZyBuaGFu IHRpZW4gZ29pIGxhIGJvaSB0aHVvbmcsIG1hIGhvIGRvaSBkaSBiaWV1IA0KdGluaCwga2hpZXUg bmFpIHZvaSBUaHUgdHVvbmcgbyBuZ29haSBIYSBOb2kuIENodW5nIHRvaSBjbyBnb2kgZG9uIGxl biBkb2FuIHRoYW5oIHRyYSwgY2FjIGNvIHF1YW4gYmFvIGNoaS4gDQpUaGFuaCBwaG8gUmFjaCBH aWEsIFVCTkQgdGluaCBLaWVuIEdpYW5nLCB0aW5oIHV5IEtpZW4gR2lhbmcsIDMgY28gcXVhbiBu YXkga2hvbmcgDQp0aWVwIGRhbi4gTmV1IHRoZW8gbHVhdCBwaGFwIHRoaSBraGkgY2h1bmcgdG9p IG5vcCBkb24sIGhvIHBoYWkgbmhhbiBkb24gdmEgY2hvIGNodW5nIHRvaSANCmJpZW4gbmhhbi4g VmEgdGhlbyBsdWF0IGRpbmggdGhpIHRyb25nIHZvbmcgMzAgbmdheSwgaG8gcGhhaSB0cmEgbG9p IGJhbmcgdmFuIGJhbiBseSBkbyBnaSBjaHVuZyB0b2kgYmkgY3VvbmcgY2hlIG5odSB2YXkuIE5o dW5nIGhvIGNoYW5nIGNvIGJpZW4gbmhhbiwgdmFuIGJhbiBuYW8gaGV0LCBraGllbiBiYSANCmNv biBjdSBkaSB0b2kgZGkgbHVpLCB0cm9uZyBraGkgb25nIGxvbiBuYXkgZHVuIGRheSBjaG8gb25n IGtpYSwgdGhhbmggcGhvIGRheSBsZW4gdGluaCwgbGFtIHRoZW8gY2hpIGRhbyBjdWEgdGluaCBt YS4NCg0KQ29uIDEgbmd1b2kgY3VuZyBraGlldSBraWVuDQoNClRoYW5oIFF1YW5nOiBUaHVhIGFu aCwgbmV1IGRpIHZhbyBjaGkgdGlldCBjdSB0aGUgaG9uIHRoaSBkYW4gb2FuIG8gZGF5IHBoYW4g bm8gdmkgaGFuaCBkb25nICJjaG9uZyBjaGVvIiBjdWEgZ2lvaSBjYW0gcXV5ZW4gZGlhIHBodW9u ZyBsaWVuIHF1YW4gdmllYyBjdW9uZyBjaGllbSBkYXQgdm9pIA0KdGllbiBib2kgdGh1b25nIHJl IG1hdCB2YSByb2kgaG8gZGVtIGJhbiBsYWkgdm9pIGdpYSByYXQgY2FvLiBOaGFuIGRheSB4aW4g YW5oIG5vaSBxdWEgdmUgdmFuIGRlIG5heT8NCg0KTy4gTGUgTXkgRHVjOiBOZXUgbWEgbm9pIHZl IHRyaW5oIHR1IHRoaSBoYW5oIHZpZWMgdGh1IGhvaSB2YSBkZW4gYnUsIGdpYWkgdG9hIHRoaSBy byByYW5nIGxhIGNoaW5oIHF1eWVuIHRodWMgaGllbiBzYWkuIENvbiBub2kgdmUgdmFuIGRlIGdp YSBjYSB0aGkgaGllbiBuYXkgaG8gYXAgZHVuZyBkYXQgY3VhIA0KY2h1bmcgdG9pIHRodW9jIGRp ZW4gZGF0IG5vbmcgbmdoaWVwIGhhbmcgNC4gDQpNYSBkYXQgbm9uZyBuZ2hpZXAgaGFuZyA0IHRo aSBnaWEgY2hpIGNvIDggbmdhbiBkb25nL20yLiBOaHVuZyBraGkgaG8gc2FuIGxhcCBkYXQsIA0K ZG9uZyB0aHVlIG5heSBubyB4b25nIHRoaSByYW8gYmFuIHRoZW8gbG9haSBkYXQgbmVuIHRodW9j IGtodSB0cnVuZyB0YW0gZG8gdGhpIGxvYWkgMyB2b2kgZ2lhIHR1IDUwMC4wMDAgdG9pIDIgdHJp ZXUgZG9uZy9tMi4NCg0KVGhhbmggUXVhbmc6IE5odW5nIHRyZW4gdGh1YyB0ZSBobyBib2kgdGh1 b25nIGJhbyBuaGlldT8NCg0KTy4gTGUgTXkgRHVjOiBDaGkgY28gOCBuZ2FuIGRvbmcvbTIsIHZh IHNhdSBjaG8gdGhlbSA1IG5nYW4gbnVhIGxhIDEzLjIwMCBkb25nL20yLiBNYSBraHVuZyBnaWEg bmF5IGxhIGtodW5nIGdpYSBjdWEgbmFtIDE5OTksIHRoZW8gbmdoaSBkaW5oIHNvIDIgY3VhIFRo dSB0dW9uZyBDaGluaCBwaHUgdmUgdmllYyBkZW4gYnUsIGdpYWkgdG9hLiANCkNvbiBjb25nIHRy aW5oICJsYW4gYmllbiBLaWVuIEdpYW5nIiBraG9uZyBwaGFpIGxhIGNvbmcgdHJpbmggcXVvYyBw aG9uZywga2hvbmcgcGhhaSBjb25nIHRyaW5oIGNvbmcgY29uZyBxdW9jIGdpYSwgbWEgbGEgZ2lh byBjaG8gbW90IGNvbmcgdHkgcGhhdCB0cmllbiBuaGEgbyBkZSBwaGFuIGxvIGJhbiBuZW4gbmhh LCBraHUgZGFuIGN1IHRob2kuIERvIGRvIGhvIGtob25nIHRoZSBhcCBkdW5nIGRhdCBjaHVuZyB0 b2kgdmFvIGtodW5nIGdpYSBuaGEgbnVvYyBkdW9jLCBtYSBwaGFpIGFwIGR1bmcga2h1bmcgZ2lh IHRoaSB0cnVvbmcuDQoNClRoYW5oIFF1YW5nOiBCYXkgZ2lvLCB0cnVvYyB0aW5oIGNhbmggbmh1 IHZheSB0aGkgbmh1bmcgbmd1b2kgZGFuIGJpIGFuaCBodW9uZywgbm9pIGNodW5nLCBjbyBjb24g aHkgdm9uZyBnaSBraG9uZz8NCg0KTy4gTGUgTXkgRHVjOiBUb2kgY28gbm9pIHZvaSBiYSBjb24g cmFuZyB2YW4gZGUgZGF0IGRhaSBkYSBjbyBsdWF0LCBjaHUga2hvbmcgcGhhaSANCmtob25nIGNv IGx1YXQuIE5odW5nIGdpb2kgY2FtIHF1eWVuIGxhaSBraG9uZyB0aHVjIGhpZW4gZGlldSBkbywg dmEgY2hpIGFwIGdpYSAxMy4yMDAgZG9uZy9tMi4NCkJheSBnaW8sIG5ldSB0aW5oIGRpZW4gdGlj aCA1LjAwMCBtMiBkYXQgYmkgbWF0IG5oYW4gdm9pIDEzLjIwMCBkb25nIHRoaSwgeGluIGxvaSwg cmEgZGkgDQpkb2kgZHVvYyBjaGkgY28gbW90IGNhaSBuZW4gbmhhLg0KSGllbiBuYXkgZ2lvaSBj YW0gcXV5ZW4gY2hvbmcgY2hlbyBvICJkdSBhbiBsYW4gYmllbiIsIG5odW5nIHRodWMgcmEgY2hh bmcgY28gbGFuIGJpZW4gDQpnaSBoZXQsIG1hIHZpZWMgbmF5LCBiYW8gZ2lvaSBkYSBwaG9uZyB2 YW4gaG8sIGhvaSByYW5nIGFuaCBsYW4gYmllbiBoYXkgbGFuIGRhdCBjdWEgZGFuLCB0aGkgaG8g a2hvbmcgdHJhIGxvaSBkdW9jLg0KVG9pIGNhbSBrZXQgcmFuZyBuaHVuZyBsb2kgdG9pIG5vaSB2 dWEgcm9pIGxhIGR1bmcgc3UgdGhhdC4gTmV1IFRodSB0dW9uZyBjbyBob2kgdG9pLCB0b2kgDQpj dW5nIHlldSBjYXUgb25nIHh1b25nIGRheSB4ZW0gZGF0IG5heSBsYSBkYXQgImxhbiBiaWVuIiBo YXkgZGF0IHRodW9jIGNhIHRyYW0gbmFtIG5heT8NCk5ldSBjaGluaCBwaHUgdmEgdGluaCBLaWVu IEdpYW5nIGtob25nIGdpYWkgcXV5ZXQgdmFuIGRlIHRob2EgZGFuZywgZHVuZyB0aGVvIGx1YXQg ZGF0IGRhaSwgdGhpIGNodW5nIHRvaSB0aWVwIHR1YyBraGlldSBraWVuIGtlbyBkYWkuIEhvIGNv IHRoZSBjaGUgZGF5LCBraG9hIGxhcCB0YXQgY2Egbmh1bmcgDQp2aWVjIGxhbSBzYWkgdHJhaSBj dWEgaG8uIE5odW5nIHRvaSBub2kgcmFuZyA0NyBobyBkYW4gb2FuIG5heSwgY29uIG1vdCBuZ3Vv aSBjdW9pIGN1bmcgY3VuZyBraGlldSBraWVuIGNobyBiYW5nIGR1b2MuDQoNClRoYW5oIFF1YW5n OiBYaW4gY2FtIG9uIGFuaCBMZSBNeSBEdWMgcmF0IG5oaWV1Lg0KDQpodHRwOi8vd3d3LnJmYS5v cmcvdmlldG5hbWVzZS9pbl9kZXB0aC9Ib3ctbG9jYWwtYXV0aG9yaXRpZXMtaW4ta2llbi1naWFu Zy10cmVzcGFzcy1yZXNpZGVudHMtcHJvcGVydHktMTExMTIwMDgxNDE0NDMuaHRtbD9zZWFyY2h0 ZXJtPU5vbmUgUkZBLTExLTA5LTIwMDgNCg0KVGh1IHR1b25nIC0gS2llbiBHaWFuZzogSGFuZyB0 cmFtIGhvIGRhbiBvYW4gdWMgbWF0IGRhdCANCg0KVGluaCB0cmFuZyBuZ3VvaSBkYW4gYmkgY3Vv bmcgY2hpZW0gZGF0IGRhaSBvYW4gdWMgdGllcCBkaWVuIHRyb25nIG51b2MsIGtoaSBuaGlldSBo byANCmRhbiB0cm9uZyB2dSAiRHUgQW4gTGFuIEJpZW4gS2llbiBHaWFuZyIgcGhhbiB1bmcgbWFu aCBtZSB0cnVvYyBoYW5oIGRvbmcgY3VhIA0KY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBtYSBobyBj aG8gbGEgbGFtIHNhaSBwaGFwIGx1YXQgdHJvbmcgdmllYyB0aHUgaG9pIHZhIGRlbiBidSBkYXQg DQpkYWkgZGUgcGhhdCB0cmllbiBkdSBhbi4NCg0KTXVhIGJhYyBuZ2FuLCBiYW4gYmFjIHRyaWV1 DQoNClRoYW5oIFF1YW5nOiBUaHVhIHF1eSB2aSwgZHUgYW4gbWEgY2hpbmggcXV5ZW4gS2llbiBH aWFuZyBkYW5nIHRpZW4gaGFuaCwgbWVuaCANCmRhbmggIkR1IEFuIExhbiBCaWVuIEtpZW4gR2lh bmciLCBoaWVuIGFuaCBodW9uZyB0b2kgaGFuZyB0cmFtIGhvIGRhbiB0YWkgS2h1IFBobyA1LCAN ClBodW9uZyBBbiBIb2EsIFRQIFJhY2ggR2lhLCBraGllbiBtb3Qgc28gY3UgZGFuIG5heSBwaGFu IHVuZzoNCg0KIlRvaSBjdW5nIGNvIG1pZW5nIGRhdCBvIGtodSBMYW0gUXVhbmcgS3kgbWEgYmF5 IGdpbyBtYXkgb25nIHNhcCBzdWEgY3VvbmcgY2hpZW0gDQozIG5nYW4gbWF5IHRyYW0gbWV0IHZ1 b25nLiBUb2kgdGhheSByYW5nIG9uZyBuaGEgbnVvYyBvbmcgbGFtIG5odSB2YXkgdGhpIGhlcCBj aG8gDQpjaHVuZyB0b2kgcXVhLCB2aSBkYXQgY2F0IG5heSBkYSAzIGRvaSBnaWEgZGluaCBjaHVu ZyB0b2kga2hhaSB0aGFjIHJvaS4gQmF5IGdpbyBtYXkgb25nIA0KbGF5IHJvaSBib2kgdGh1b25n IGdpYSBxdWEgcmUiDQoNCkFuaCBMZSBNeSBEdWMNCiJUcm9pIG9pIGNhaSBuYXkgdGhpIG9hbiB1 YyByb2kuIEhvIHRodW9uZyBjaG8gdHVpIHR1aSBjbyBiYW8gbmhpZXUgZGF1ID8gQ28gbWF5IG5n YW4gDQpkb25nL21ldCB2dW9uZyB0cm9uZyBraGkgaG8gYmFuIGJhYyB0cmlldS4gDQoNCkhvIGhv aSB5IGtpZW4gdG9pIGxhIGNvIGdpYW8gZGF0IGtob25nLiBUb2kgbm9pIGxhIHRvaSBraG9uZyBn aWFvLCBjb24gbWF5IG9uZyBjbyBjdW9uZyANCmNoZSB0aGkgY3VvbmcgY2hlLiBUb2kgbmhhIHRv aSBobyBtYW5nIHRoZW8gZGFuIHBob25nIHR1IHZlLCB4YWNoIGdheSB0aGVvIG51YSBraWEuIFF1 YSANCmJ1YyBoaWVwIHR1aSB0dWkgcm9pLiINCg0KKEFuaDogVnVuZyBiaWVuIEtpZW4gR2lhbmcp IA0KDQoiVG9pIGJpIG1hdCAyLjQwMCBtZXQgdnVvbmcuIE5odW5nIG1hIHRodWMgdGUgbGEgdG9p IHNlIGJpIG1hdCB0b2kgNSBuZ2FuIG1ldCB2dW9uZy4gDQpNYSBiYXkgZ2lvIGhvIGN1b25nIGNo ZSBkYXQgY3VhIHRvaSB0b2kgZGF1IHRoaSB0b2kgc2Uga2llbiB0b2kgZG8uIEJheSBnaW8gdHJ1 b2MgbWF0IHRvaSANCmNvIDUuNDAwIG1ldCB2dW9uZywgbWEgaG8gbGF5IHRydW9jIG1hdCAyIG5n YW4gbmdvYWkgbWV0IHZ1b25nIHRoaSB0b2kga2llbiBjYWkgZG8gDQp0cnVvYy4gQ29uIGxhaSAz IG5nYW4gbWV0IHZ1b25nIG1hIGhvIHNlIHRyaWVuIGtoYWkgdGhpIHRvaSBzZSBraWVuIHRpZXAi LiANCg0KVGhhbmggUXVhbmc6IE5ndW9pIHNhdSBjdW5nIG1hIHF1eSB2aSB2dWEgbmdoZSBsYSBh bmggTGUgTXkgRHVjIHRodW9jIHRyb25nIHNvIA0Kbmd1b2kgYmkgYW5oIGh1b25nIGJvaSAiRHUg QW4gTGFuIEJpZW4gS2llbiBHaWFuZyIgbmF5LiBRdWEgY3VvYyB0cmFvIGRvaSB2b2kgY2h1bmcg DQp0b2ksIGFuaCBMZSBNeSBEdWMgZ2lhaSB0aGljaDoNCg0KQW5oIExlIE15IER1YzogTm9pIGNo dW5nIGNvIGRhdSBwaGFpIGNvIGR1b2kuIENhaSBkYXUgbGEgVFAgUmFjaCBHaWEgdGh1b2MgdGlu aCBLaWVuIA0KR2lhbmcgdHJpbmggdm9pIFRodSB0dW9uZyBjaGluaCBwaHUgeGluIG1vIHJvbmcg VFAgUmFjaCBHaWEsIHRoaSBkdW9jIFRodSB0dW9uZyBjaGFwIA0KbmhhbiBjaG8gcGhlcCB0dSBu YW0gMTk5OCwgdm9pIHF1eSBtbyBkdSBhbiBsYSA0MjAgaGEuDQoNClRoYW5oIFF1YW5nOiBUdWMg bGEgbW8gcm9uZyBsYW4gcmEgYmllbiA/DQoNCkFuaCBMZSBNeSBEdWM6IFZhbmcsIGxhbiByYSBi aWVuLiBLaGkgbm9pIHJvbmcgbmh1IHZheSB0aGkgcGhhaSBjbyBtb2MgdmEgcmFuaC4gTm9pIA0K Y2h1bmcgdHJlbiBiYW4gZG8gdHkgbGUgMS81MDAgdGhlIGhpZW4gZHUgYW4gbmF5IHJhdCBsYSBy by4gQ28gc28gZGUgVUJORCB0aW5oIEtpZW4gDQpHaWFuZyBsYW0gdmFuIGJhbiBwaGFwIGx5IHRy aW5oIGxlbiBUaHUgdHVvbmcgZ29tIGJhbiBkbyB2YSB0byB0cmluaCwgdmEgZHVvYyBxdXlldCAN CmRpbmggMTE3OCBjdWEgVGh1IHR1b25nIENoaW5oIHBodSBjaG8gcGhlcC4gDQoNClRyb25nIHF1 eWV0IGRpbmggbm9pIHJhdCBybyBkdSBhbiBtbyByb25nIG5heSBEb25nIGdpYXAgUmFjaCBTb2kg bGEgbyBjaG8gbmFvLCBUYXkgDQpnaWFwIGRhdSBsYW4gcmEgYmllbi4gQ2FpIG1vYyB0dSBibyBj dSBsYSBEZSBRdW9jIFBob25nIJYgdHVjIGJvIHJhbmgsIGxhIHR1IERlIFF1b2MgDQpQaG9uZyB0 cm8gcmEgYmllbiBwaGlhIFRheSA1MDAgbWV0LiANCg0KVGF5IGxhIGdpYXAgYmllbiBwaGlhIFRh eSwgbWF0IERvbmcgbGEgZ2lhcCB0aGkgeGEgUmFjaCBTb2ksIG1hdCBOYW0gbGEgZ2lhcCBkdW9u ZyANCkxhbSBRdWFuZyBLeSB2YSBtb3QgbWF0IG51YSBsYSBnaWFwIHZvaSBUUCBSYWNoIEdpYSBj dS4NCg0KTGFuIGJpZW4gaGF5IGxhbiBkYXQNCg0KVGhhbmggUXVhbmc6IE5odSB2YXkga2hpIHRo dWMgaGllbiBkdSBhbiBsYW4gYmllbiBkbywgZ2lvaSBjYW0gcXV5ZW4gZGEgdGh1YyBoaWVuIG5o dSANCnRoZSBuYW8gbWEgY3UgZGFuIHRoYW4gcGhpZW4gbGEgY3VvbmcgY2hpZW0gZGF0IGN1YSBo bz8NCg0KQW5oIExlIE15IER1YzogVHJvbmcgcXVhIHRyaW5oIHRodWMgaGllbiBkdSBhbiB0aGkg YmFuIHF1YW4gbHkgdmEgY2FwIGNoaW5oIHF1eWVuIGRpYSANCnBodW9uZyBjdWEgdGluaCB0aHVj IGhpZW4gc2FpLiBIbyBsYW4gdm8gZGF0IGN1YSBkYW4ga2hvYW5nIDUwLTYwIG1ldCB0aGF5IHZp IGxhbiByYSANCmJpZW4sIHZhIGtlbyBkYWkgdG9hbiB0dXllbiBsYSA3IGNheSBzbywgdGhpIGRp ZW4gdGljaCBkYXQgaG8gbGF5IHRyYWkgcGhlcCB0dW9uZyBkdW9uZyA0MiANCmhhLg0KDQpUaGFu aCBRdWFuZzogNDIgaGEgdGEgZGF0IG5heSBhbmggaHVvbmcgYmFvIG5oaWV1IGhvIGRhbiA/DQoN CkFuaCBMZSBNeSBEdWM6IEFuaCBodW9uZyAyNTIgaG8gZGFuLiBUcm9uZyBnaWFpIGRvYW4gMSB2 YSBnaWFpIGRvYW4gMiBuYXksIGhvIHRydWMgDQp0aWVwIHh1IGx5IGtob2FuZyA0NyBobyBkYW4u DQoNClRoYW5oIFF1YW5nOiBBbmggbm9pIHh1IGx5IGxhIGhvIGxhbSBnaSA/DQoNCkFuaCBMZSBN eSBEdWM6IFR1YyBsYSBobyBjdW9uZyBjaGUsIGxheSBkYXQgZG8sIGxheSB0cmFpIHBoYXAgbHVh dCBkby4NCg0KVGhhbmggUXVhbmc6IEhvIGxheSBseSBkbyBnaSBkZSB0aHVjIGhpZW4gaGFuaCBk b25nIG5heSA/DQoNCkFuaCBMZSBNeSBEdWM6IEhvIG11b24gY28gQmFuIFF1YW4gbHkgRHUgYW4g Q29uZyB0cmluaCBMYW4gQmllbi4gVGhpIGJlbiBuYXkgdHVpIHRvaSANCmN1bmcgcGhhbiB1bmcg bWFuaCBtZSBxdWEgbmhpZXUgYmFpIGJhbywgbmhpZXUgZG9uIGtoaWV1IG5haSwgcmFuZyAibWF5 IG9uZyBsYW4gYmllbiBjaHUgZGF1IHBoYWkgbGFuIGRhdCBkYW4iLiANCg0KUXV5IG1vIER1IGFu IExhbiBCaWVuLCBjaGluaCBwaHUgcGhlIGNodWFuIHJhdCBybyByYW5nLCBjbyBuZ2hpYSBsYSB0 dSBEZSBRdW9jIFBob25nIA0KdHJvIHJhIGJpZW4gcGhpYSBUYXkgNTAwIG1ldC4gQmF5IGdpbyBh bmggbGFpIGxheSBuZ3VvYyB2byBkYXQgcGhpYSBiZW4gdHJvbmcgY3VhIGRhbiA1MC0NCjcwIG1l dCBuYXkgbWEgdm9pIGRpZW4gdGljaCA0MiBoYSBkYXQgdGhhbmggcGhvIHRoaSB0aW5oIHJhIGJp ZXQgYmFvIG5oaWV1IGxhIHRpZW4gY3VhID8NCg0KVGhhbmggUXVhbmc6IEtoaSBobyBsYXkgZGF0 IGN1YSBkYW4gbmh1IGFuaCB2dWEgdHJpbmggYmF5IHRoaSBobyBjbyBib2kgdGh1b25nIGNobyBk YW4gDQpraG9uZz8NCg0KQW5oIExlIE15IER1YzogTmFtIDIwMDAsIG9uZyBVQiB0aW5oIG9uZyBy YSBxdXlldCBkaW5oIHRodSBob2kgZGF0IGN1YSAyNTIgaG8gZGFuLCANCnZvaSBkaWVuIHRpY2gg bGEgNDIgaGEuIE5hbSAyMDAwIG9uZyBreSBuaHVuZyBraG9uZyBkYW0gdHJpZW4ga2hhaSBjaG8g ZGFuIHZpIHZhbyB0aG9pIA0KZGllbSBkbyBVQk5EIHRpbmggS2llbiBHaWFuZyBraG9uZyBkdW9j IHBoZXAgdGh1IGhvaSBkYXQgY3VhIGRhbiB2b2kgc28gbHVvbmcgZGF0IA0KbG9uIG5odSB2YXku IA0KDQpUaGVvIGx1YXQgVk4gdGhpIHZhbyB0aG9pIGRpZW0gZG8gQ2h1IHRpY2ggVUJORCB0aW5o IEtpZW4gR2lhbmcgY2hpIGR1b2MgcGhlcCB0aHUgDQpob2kgY28gMiBoYSB0aG9pLCBkYXQgbm9u ZyBuZ2hpZXAgZG8uIENvbiBuZXUgbmh1IHRyZW4gbHVvbmcgbmF5IHRoaSBwaGFpIGNvIHF1YW4g Y3VhIEJvIA0KaG9hYyBUaHUgdHVvbmcgY2hpbmggcGh1LiBOaHVuZyBhbmgga3kgZGUgYW5oIHBo b25nIGhvLiANCg0KVG9pIG5hbSAyMDA1LCB0dWkgdG9pIGtpZW4gY2FvIHF1YSBkaSB0aGkgYW5o IG1vaSBob2FuZyBob24gdmEgZHVhIHJhIHZhbiBiYW4gbmF5LCANCm5odW5nIGtob25nIHRyaWVu IGtoYWkuIEFuaCBsYXkgY2FpIG1vYyB0aG9pIGRpZW0gZG8sIHRodW9uZyBjaG8gdHVpIHRvaSBk YXQgbm9uZyANCm5naGllcCBsb2FpIDQsIHZvaSBnaWEgOCBuZ2FuIGRvbmcvbWV0IHZ1b25nLiBT YXUgdHVpIHRvaSBkYXUgdHJhbmggcXVhIGFuaCB0YW5nIHRoZW0gNSANCm5nYW4gbnVhIHRoYW5o IDEzIG5nYW4gZG9uZy9tZXQgdnVvbmcuDQoNClRoYW5oIFF1YW5nOiBOaHUgdmF5IHNvIHZvaSB0 aG9pIGdpYSB0aGkgdGllbiBib2kgdGh1b25nIGRvIG5odSB0aGUgbmFvPw0KDQpBbmggTGUgTXkg RHVjOiBOZXUgdGhlbyBuZ2hpIGRpbmggdmFvIHRob2kgZGllbSBkbyB0aGkgbm8gY3VuZyBjaGVu aCBsZWNoIHRob2kuIA0KTmh1bmcgdmUgbmd1eWVuIHRhYyBobyBsYW0gc2FpIGhldC4gVHUgbmFt IDIwMDAgY2hvIHRvaSBuYW0gbmF5IGxhIDIwMDgsIHRoaSB0aW5oIGNvaSwgDQpuaGEgbnVvYyBW TiB0dW5nIHJhIGJpZXQgYmFvIG5oaWV1IHF1eWV0IGRpbmgsIHRoYXkgZG9pIGJhbyBuaGlldSBx dXkgY2hlIHZlIGx1YXQgZGF0IA0KZGFpID8gDQoNCkJheSBnaW8gY2h1bmcgdG9pIGNoaSBjYW4g Y3Ugbmh1IHZheSwgbGEgbGF5IGRhdCB2YW8gdGhvaSBkaWVtIG5hbyB0aGkgcmEgcXV5ZXQgZGlu aCB2YW8gDQp0aG9pIGRpZW0gZG8uIFRodSBoYWkgbGEgbGF5IGRhdCBsYW0gZ2kgcGhhaSB0aG9u ZyBiYW8gcm8gY2hvIGNodW5nIHRvaSBiaWV0LCBwaGFpIGdoaSB2YW8gDQpub2kgZHVuZyBxdXll dCBkaW5oIGxhIHRodSBob2kgZGF0IGRlIGxhbSBnaS4gDQoNCk5oYSBudW9jIGNoaSBkdW9jIHBo ZXAgdGh1IGhvaSBkYXQga2hpIGxpZW4gcXVhbiBkZW4gYW4gbmluaCBxdW9jIHBob25nLCBjb25n IGNvbmcsIA0Kc2FuIGNob2ksIHRydW9uZyBob2MsIGJlbmggdmllbi4uLm5vaSBjaHVuZyB0YXQg Y2Egbmh1bmcgdmllYyBsb2kgaWNoIHF1b2MgZ2lhLCBjb25nIGljaC4NClRoYW5oIFF1YW5nOiBO aHUgdmF5IHRyZW4gdGh1YyB0ZSBnaW9pIGNhbSBxdXllbiBLaWVuIEdpYW5nIHRodSBob2kgc28g ZGF0IG5heSBkZSBsYW0gDQpnaSA/DQoNCkFuaCBMZSBNeSBEdWM6IFRyZW4gdGh1YyB0ZSwgaGll biBuYXkgaG8gZGEgYmFuIGRhdCBjdWEgY2h1bmcgdG9pIGNobyBuaHVuZyBkb2kgdHVvbmcgDQpr aGFjIGxhIDk0IHNvIGRvIG1hIGJhbyBjaGkgVk4gZGEgZ2hpIG5oYW4sIHZhIFRvbmcgVGhhbmgg dHJhIENoaW5oIHBodSBWTiBjdW5nIGRhIA0KeGFjIG5oYW4gbmh1IHZheS4gRGF0IHR1aSB0b2kg byBkb2kgbmF5IGRvaSB0aHUgbmhhdCBjbywgZG9pIHRodSBoYWkgY28sIGRvaSB0aHUgYmEgY28u IEhvIA0KY3VvbmcgZG9hdCB2byBjby4gSG8gZHVhIG1heSB1aSwgeGUgdm8gY2hhdCBwaGEgY2F5 Lg0KDQpUaGFuaCBRdWFuZzogSG8gY28gaGFuaCBodW5nIGdpIGJhIGNvbiBraG9uZyA/DQoNCkFu aCBMZSBNeSBEdWM6IEhvIGtob25nIGRhbSBoYW5oIGh1bmcsIGJvaSB0dWkgdG9pIGtob25nIGNo b25nIGRvaSwgbWEgY2hpIGNob25nIA0KZG9pIHRyZW4gcGhhcCBsdWF0IHRob2kuIFR1aSB0b2kg eWV1IGNhdSBtYXkgb25nIGxhbSBkdW5nIHRoZW8gcGhhcCBsdWF0LiBDb24ga2hvbmcsIHR1aSAN CnRvaSBzZSBuaG8gdG9pIGNvIHF1YW4gbmdvbiBsdWFuLCBiYW8gY2hpLCBob2FjIGxhIGJpZXUg dGluaC4gDQpUcm9uZyB0dWFuIGxlIHJvaSwgYmEgY29uIGRhIGJpZXUgdGluaC4gVG9pIHlldSBj YXUgYmEgY29uIG11b24gZ2kgY3UgdGh1YSBraWVuIFRQLCANClVCTkQgdGluaCwgdGluaCB1eSBL aWVuIEdpYW5nLiBNdW9uIGdpIGN1IGxlbiB0cmluaCBiYXkgdm9pIGhvLiBOZXUgdGluaCBraG9u ZyBnaWFpIA0KcXV5ZXQsIGNodW5nIHRvaSBzZSBkaSBUUCBIQ00gdmEgSGEgTm9pLg0KDQpUaGFu aCBRdWFuZzogQmF5IGdpbyBtb3QgY2FjaCBjdSB0aGUgdGhpIG5ndW9pIGRhbiBkYSBwaGFuIHVu ZyBuaHUgdGhlIG5hbz8NCg0KQW5oIExlIE15IER1YzogUmF0IGxhIHF1eWV0IGxpZXQuIDQ3IGhv IGRhbiBkYSBrZW8gbGVuIGdhcCBjYWMgbmhhIGNodWMgdHJhY2gsIG5odW5nIGhvIA0Ka2hvbmcg Z2lhaSBxdXlldCwgdHJhbmggbmUsIHRyb24gbmUuIFR1aSB0b2ksIGJ1b2MgdGh1IG5oYXQsIDQ3 IGhvIGRhbiBuYXkgcGhhaSBsYW0gDQp2aWVjIHZvaSBjbyBxdWFuIGNhcCB0aW5oLCBUUCB2b2kg bGFpIHRpbmggdXkgS2llbiBHaWFuZyB0cnVvYyBkYSwgeGVtIGNvaSBobyB4dSBseSBuaHUgDQp0 aGUgbmFvLiBOZXUga2hvbmcgeG9uZywgdHVpIHRvaSBzZSBkaSBIYSBOb2kuIE5odW5nIHRyZW4g dGh1YyB0ZSB0dWkgdG9pIGRhIGRvaSB0aG9haSByYXQgDQpuaGlldSByb2kuDQoNClRoYW5oIFF1 YW5nOiBOaHUgdmF5IGtldCBxdWEgc28ga2hvaSByYSBzYW8gPw0KDQpBbmggTGUgTXkgRHVjOiBI byB2YW4gbGFtIGNhbmcsIHZhbiBsYW0gYmF5Lg0KDQpUaGFuaCBRdWFuZzogTmhhbiBkYXkgeGlu IGFuaCBtbyB0YSB0aW5oIGhpbmggZGFuIG9hbiBiaSBtYXQgZGF0IGRhaSwgdGFpIHNhbiBvIEtp ZW4gDQpHaWFuZywgbm9pIGNodW5nLCBuaHUgdGhlIG5hbyA/DQoNCkFuaCBMZSBNeSBEdWM6IE5v aSBjaHVuZyByYXQgbmhpZXUgbm9pIGRhbiBiaSBtYXQgZGF0LCB0aGkgZHUgbmh1IEtpZW4gTHVv bmcsIEhhIA0KVGllbiwgcnVuZyBVIE1pbmggY3VuZyBiaSBsYXkgZGF0IGJ1YSBiYWkuIERhbyBQ aHUgUXVvYyBjdW5nIHZheS4gVGF0IGNhIG5odW5nIGR1IGFuIA0KZ2kgbWEgZGluaCB0b2kgZGF0 IGRhaSBkZXUgZ2FwIHJhYyByb2kuIA0KDQpodHRwOi8vcmZ2bi5jb20vP3A9Mjc3MiBTdW5kYXks IDEyLzQvMjAwOSANCg0KS2llbiBHaWFuZzogIkR1IGFuIGxhbiBiaWVuIGhheSBsYW4gZGF0IGN1 YSBkYW4iPw0KDQooVGhhbmggUXVhbmcsIHBob25nIHZpZW4gZGFpIFJGQSAyMDA5LTA0LTEwKQ0K DQpUaHVhIHF1eSB2aSwgY2FjaCBuYXkgaXQgbGF1LCBCYW4gVmlldCBOZ3UgRGFpIEFDVEQgY2h1 bmcgdG9pIGNvIGRlIGNhcCAiRHUgYW4gbGFuIGJpZW4gS2llbiBHaWFuZyIsIHF1YSBkbywgY3Ug ZGFuIA0KY2FjIFBodW9uZyBBbiBIb2EsIEFuIExhYyB0aHVvYyBUUCBSYWNoIEdpYSwgS2llbiBH aWFuZywgcGhhbiB1bmcgbWFuaCBtZSB0cnVvYyBoYW5oIGRvbmcgY3VhIGdpb2kgY2FtIHF1eWVu IGtldCBob3AgDQp2b2kgZGFpIGdpYSBsYW4gZGF0IGN1YSBkYW4sIHRoYXkgdmkgImxhbiBiaWVu IiwgZGUgbW8gcm9uZyB0aGVtIGRhdCBkYWkgdGhlbyBuaHUga2UgaG9hY2guIEhhdSBxdWEgbGEg aGFuZyB0cmFtIA0KaG8gZGFuIGJpIGNvbmcgYW4gZGFuIGFwLCBtYXQgc2luaCBrZSwgbGFtIGNh bmgga2hvIGtoYW4gbmdoaWVtIHRyb25nLiBUaW5oIGhpbmggbmF5IGhpZW4gZ2lvIHJhIHNhbz8N Cg0KUXVhIGN1b2MgdHJhbyBkb2kgdm9pIFRoYW5oIFF1YW5nLCBtb3QgbmFuIG5oYW4gY2h1IGNo b3QgY3VhICJEdSBhbiBsYW4gYmllbiBLaWVuIEdpYW5nIiwgbGEgYW5oIExlIER1YyBNeSwgY2hv IGJpZXQ6DQoNCktlIGhvYWNoIGN1b25nIGJ1YyBiYW5nIHBoYXAgbHVhdCANCg0KTGUgRHVjIE15 IDogQmF5IGdpbyBubyBkYW5nIHZ1b25nLCBkYW5nIHZ1b25nIGxhIHZpLCB0YWkgdmkgbyBLaWVu IEdpYW5nIGNvIG1vdCBzbyBobyBkYW4gbmd1b2kgdGEgY28gc28gZG8gZHVvYyBjYXAgDQpjaHUg cXV5ZW4gcm8gcmFuZywgdGhpIGNoaW5oIHF1eWVuIGtob25nIHRoZSBub2kgbmd1b2kgZGFuIGxh biBkYXQgZHVvYy4gU28gZG8gY2FwIHR1IG5hbSAxOTk5IHZvaSBsYWkgbmFtIDIwMDMsIA0KY2Fp IHRoaSBjbyB0cnVvYyBraGkgY28gZHUgYW4gbGFuIGJpZW4sIGNhaSB0aGkgc2F1IGtoaSBjbyBk dSBhbiBsYW4gYmllbiwgbmh1bmcgbWEgY2FwIGNodSBxdXllbiB0aGkgaGllbiBuYXkgbmd1b2kg dGEgDQpnaGkgcmF0IHJvIGxhIGRhdCBjdWEgZGFuLCBjYW5oIHRhYyB0b2kgZGF1IHRoaSBjYXAg dG9pIGRvLCBraG9uZyBjbyBhaSB0cmFuaCBjaGFwIHRoaSBkdW9jIGNhcCBzbyBkbywgZG8gbGEg bHVhdC4gDQoNCk5odW5nIG1hIG5vIHNhaSBzb3QgbyBjaG8gbGEgbm8gcXVlbiBkaSwgdHJvbmcg Y2FpIGRhaSBkYXQgZG8gY28gbmh1bmcgbWFuaCBkYXQgbmd1b2kgdGEgY2FwIHRvaSBkby4gSGll biBuYXkgY2FpIGJhbiANCmR1IGFuIGN1YSBLaWVuIEdpYW5nIHRoaSBubyB0aW5oIGxhIGdpPyBM YSBubyB0aW5oIHhvYSBsYXAgbW8gZGkgY2FpIHJhbmggZ2lvaSBnaXVhIGRhdCBjdWEgZGFuIGNv IG1heSBjaHVjIG5hbSBuYXkgcm9pIA0Kdm9pIHRoYW5oIHBobyBsYW4gYmllbiwgZHUgYW4gbGFu IGJpZW4gbW9pLiBOaHVuZyBtYSB0cmFuaCBjaGFwIG8gY2hvIGxhIGhpZW4gbmF5IG5vIGxhbSBj YW4gbGFtIGJ1YSBuaGlldSBxdWEsIGxhbSBidWEgDQpsYW0gY2FuIHZhbiBkZSBsYSByYW5oIGdp b2kgY3VhIGRhdCwgbm8ga2hvbmcgY2hpdSBjYXAgc28gZG8gY2hvIG5ndW9pIHRhIHZhIG5vIHRp bmggeG9hIGRpIGNhaSByYW5oIGdpb2kuDQoNClRoYW5oIFF1YW5nIDogVHJvIGxhaSB2YW4gZGUg ZG9pIHZvaSBuaHVuZyBjdSBkYW4gY28gc28gZG8gcm9pIHRoaSBiYXkgZ2lvLi4uDQoNCkxlIER1 YyBNeSA6IEN1bmcgY3VvbmcgYnVjIGx1b24uIEJheSBnaW8gaG8gY3VvbmcgYnVjLCB0aGVvIHRv aSBuZ2hpIGN1b25nIGJ1YyBiYW5nIHBoYXAgbHVhdCBjaHUgY2h1YSBwaGFpIGxhIGRhbiBhcCB2 YSBjdW9uZyBidWMgYmFuZyBzdW5nIG9uZywgYmFuZyBjb24gbmd1b2kuIEN1b25nIGJ1YyBiYW5n IHBoYXAgbHVhdCBjbyBuZ2hpYSBsYSBhbmgga2hvbmcgcmEgcXV5ZXQgZGluaCB0aHUgaG9pIGRh dCBjdWEgbmd1b2kgdGEgbWEgYW5oICANCnJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIGRhdCBjdWEg bmd1b2kgdGEuIFF1eWV0IGRpbmggY3VvbmcgY2hlIGNvIG5naGlhIGxhIHF1eWV0IGRpbmggYmF0 IGJ1b2MgZGFuIHBoYWkgdGhpIGhhbmgsIG5ndW9pIGRhbiBwaGFpIHRoaSBoYW5oLg0KQW5oIGxh bSB0cmFpIGx1YXQgbWEgYW5oIGJhdCBkYW4gcGhhaSBjdW9uZyBidWMgYmFuZyBwaGFwIGx1YXQu IEFuaCBraG9uZyByYSBxdXlldCBkaW5oIHRodSBob2kgZGF0IGN1YSBuZ3VvaSB0YSBtYSBhbmgg cmEgcXV5ZXQgZGluaCBjdW9uZyBjaGUgZGF0LiBCYXkgZ2lvIGFuaCBjdW9uZyBjaGUgDQpkYXQg Y3VhIG5ndW9pIHRhIHRoaSBhbmggcGhhaSBkdWEgdmFvIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQg ZGF1PyBLaG9uZyBjbyBxdXlldCBkaW5oIHRodSBob2kgZGF0LiANCkRhbiBwaGFuIGRvaS4gQmF5 IGdpbyB4YWMgZGluaCByYW5oIGdpb2kgZ2l1YSBkYXQgY3VhIGRhbiB2YSBkYXQgY3VhIG5oYSBu dW9jIGxhbiBiaWVuIGxhIG8gZGF1IGRlIGNobyBkYW4gYmlldCB0aGkga2hvbmcgYWkgZGFtIHhh YyBkaW5oIGRpZXUgZG8uIFRhaSBzYW8/IFlldSBjYXUgZHVhIGJhbiBkbyB0eSBsZSBtb3QgbmFt IHRyYW0gbWEgY28gc28gdHJpbmggdGh1IHR1b25nIGNoaW5oIHBodSBkZSBtYSB4aW4gcGhlcCBk dSBhbiBsYW4gYmllbiB0aGkgDQpraG9uZyBhaSBkYW0gZHVhIHJhIGhldCwgdGFpIHZpIGNvIHNv IGRvIHRoaSBtb2kgeGFjIGRpbmggZHVvYyBkYXQgbmFvIGxhIGRhdCBjdWEgZGFuLCBkYXQgbmFv IGxhIGRhdCBjaHVhbiBiaSBsYW4gYmllbiB0aGkgbW9pIGNvIHJhbmggZ2lvaS4NCkNhaSB0aHUg aGFpIG51YSBsYSBraGkgY2hpbmggcGh1IGt5IHF1eWV0IGRpbmggY2hvIGJhbiBxdWFuIGx5IGR1 IGFuIGxhbiBiaWVuIEtpZW4gR2lhbmcgDQpsYSBwaGFpIHRyb25nIGRpZW4gbGFuIGJpZW4gdGhp IG5hbSAxOTk4IG5nYXkgbmFtIGRvIG5vIGRhIGJhbiBjdWEgbmd1b2kgdGEgbWF5IHRyYW0gY2Fp IHNvIGRvIHJvaSwgYmFuIGNob25nIGxlbiBkYXQgY3VhIGRhbiBsdW9uLiANCkNvIG5naGlhIGxh IGFuaCBsYXkgZGF0IGN1YSBkYW4gYW5oIGJhbiBraG9uZyB0cmVuIGdpYXkgdG8gY2hvIG5ndW9p IHRhIG1heSB0cmFtIGNhaSBzbyBkbywgMjk0IHNvIGRvLCBtYSBoaWVuIG5heSBoYXUgcXVhIGRv IG5vIGNoaSBnaWFpIHF1eWV0IGNoaSBraG9hbmcgMjAwIGNhaSwgY29uIGxhaSA5NCBzbyBkbyBt YWMga2V0LCBraG9uZyBjbyBkYXQgZGUgZ2lhbyB2aSBkYW4ga2hvbmcgY2hpdSBnaWFvIGRhdC4N Cg0KQmFuIHF1YW4gbHkgZHUgYW4gbGFtIHNhaSANCg0KVGhhbmggUXVhbmcgOiBUaGUgdGhpIGhv IGdpYWkgcXV5ZXQgbGFtIHNhbz8NCg0KTGUgRHVjIE15IDogVGhpIGJheSBnaW8gbW9pIGRhbmcg Y2hvbmcgZG9pLCBiaWV1IHRpbmgsIGRpIHRodWEga2llbi4gVGh1YSBsYSB0aHVhIG8gY2hvIGRv LiBOZ3V5ZW4gbmhhbiB0aHVhIGtpZW4gbGEgZ2k/IExhIG1pbmgga2hvbmcgY2hvIGxhIGNoaW5o IHF1eWVuIGxhbSBzYWkgbWEgY2hvIGxhIA0KYmFuIHF1YW4gbHkgZHUgYW4gbGFtIHNhaS4gTmd1 b2kgbmFvIGNoaSBkYW8gY2hvIGJhbiBxdWFuIGx5IGR1IGFuIGxhbSBzYWkgdGhpIGRvIGxhIHV5 IGJhbiBuaGFuIGRhbiB0aW5oLg0KDQpUaGFuaCBRdWFuZyA6IFRoZSB0aGkgbmdheSBiYXkgZ2lv IGdpb2kgY2FtIHF1eWVuIGRpYSBwaHVvbmcsIGtlIGNhIFVCTkQgdGluaCwgdGhpIGhvIGNvIGhh bmggZG9uZyBuaHUgdGhlIG5hbz8NCg0KTGUgRHVjIE15IDogVGhpIGhvIHJhIHF1eWV0IGRpbmgg Y3VvbmcgY2hlIGRhbiwgYmF0IGRhbiBwaGFpIHRoaSBoYW5oIHRoZW8gY2FpIHNhaSB0cmFpIGRv LiBUb2kgY2hvIGNhaSBkbyBsYSBjdW9uZyBjaGUgYmFuZyBwaGFwIGx1YXQuIERhbiBtdW9uIGJp ZXUgdGluaCBoYXkgbGEgZGFuIG11b24gdGh1YSBraWVuIHRoaSBobyBiYWMgaGV0LiBCYWMgaGV0 IGJhbmcgY2FjaCBuYW8/IEJheSBnaW8gZ3VpIGRvbiBsZW4gdGhpIGhvIG5vaSBsYSBobyANCmR1 bmcsIGhvIGJhYyBkb24gY3VhIG1pbmguIA0KDQpCaWV1IHRpbmggbGVuIHRoaSBobyBkZXAuIEhv IGNobyBjb25nIGFuLCBibyBkb2ksIHJvaSBkYW4gcXVhbiB0dSB2ZSB4dW9uZyBjaGF0IGNheSwg ZG9uIHBoYSBjYXkgY3VhIG5ndW9pIHRhLiBIaWVuIG5heSBobyBkYSBjaGF0IGNheSBjdWEgbmd1 b2kgdGEgaGV0IHJvaSwgZG9uIGR1b25nLiBNYSB0aGF5IA0KZGFuIGNvIGJpZXUgaGllbiBydWMg cmljaCBkaSBiaWV1IHRpbmggdGhpIGhvIGhvaSBnaWFtIGxhaSBtb3QgY2h1dC4NCg0KVGhhbmgg UXVhbmcgOiBOZ2F5IGJheSBnaW8gdGhpIHRpbmggaGluaCBuaHUgdGhlIG5hbz8gQ2FuZyB0aGFu ZyBsYW0ga2hvbmc/DQoNCkxlIER1YyBNeSA6IFRoaSBiYXkgZ2lvIGxhIGhvIGRhbmcgdWkgZHVv bmcgbGFuIGRhdCBkYW4sIHRoaSBkYW4gaGllbiBuYXkgY28ga2hhIG5hbmcgbGEgc2UgZGkgSGEg Tm9pIGJpZXUgdGluaCwgdGFpIG8gdGluaCBuYXkgYmlldSB0aW5oIGtob25nIHhvbmcgcm9pLCB0 aHVhIGtpZW4gY3VuZyBraG9uZyB4b25nIHJvaSwgYWkgeHU/IGtob25nIGNvIG5ndW9pIHh1LiBC YXkgZ2lvIHBoYWkgZGkgSGEgTm9pLiBOZXUgbWEgbGFtIGNhbmcgcXVhLCANCmtob25nIHRyYSBk YXQgbGFpIGNobyBkYW4sIGtob25nIGJvaSB0aHVvbmcgdGhvYSBkYW5nIHRoaSBkYW4gc2UgZGkg SGEgTm9pIGJpZXUgdGluaC4NCkRhbiB0aGlldCB0aG9pIHR1IDEwIG5hbSBuYXkgDQoNClRoYW5o IFF1YW5nIDogTmh1bmcgbWEgYmF5IGdpbywgdHJvbmcgdGluaCBjYW5oIGhpZW4gZ2lvIG5odSB2 YXkgdGhpIHRyb25nIG5odW5nIG5nYXkgc2FwIHRvaSBsaWV1IHNlIHJhIHNhbz8NCg0KTGUgRHVj IE15OiBCYXkgZ2lvIG5ldSBtYSBub2kgdmUgdGhpZXQgaGFpIHRoaSBoaWVuIG5heSBsYSB0cmVu IDEwIG5hbSBuYXkgZGFuIGtob25nIGNvIGRhdCBkZSBjYW5oIHRhYy4gVmkgZGFuIHZ1bmcgZG8g dHJ1b2MgZGF5IHNvbmcgYmFuZyB0cm9uZyByYXUgdHJvbmcgaG9hLCB0cm9uZyB0YXQgY2Egbmh1 bmcgZ2kgZGUgaG8gc2luaCBzb25nIHZpIGhvIGNvIGRhdCBkZSBjYW5oIHRhYy4gQW5oIGhpZXUg bm9uZyBkYW4gcGhhaSBjbyBkYXQgY2FuaCANCnRhYywgdGhpIDEwIG5hbSBuYXkgcXV5IGhvYWNo IHRyZW8gbmh1IHZheSwgZGFuIGtob25nIGxhbSBkdW9jIGdpIGhldC4gS2hvbmcgY2hvIHBoZXAg c3VhIG5oYSwga2hvbmcgY2hvIHBoZXAgeGF5IG5oYSwga2hvbmcgY2hvIHBoZXAgbXVhIGJhbi4g DQpEYXQgbGEgbW90IHRodSBoYW5nIGhvYSBkYWMgYmlldCBkZSBjYW0gY28sIGRlIG11YSBiYW4s IGRlIGtpZW0gZG9uZyB0aWVuIHhvYXkgc28sIHZhIGRhdCBkZSBjYW5oIHRhYyB0cm9uZyByYXUg dHJvbmcgbmF5IGtpYSBiYW4gZGUgc29uZyBxdWEgbmdheSwgdGhpIDEwIG5hbSBuYXkga2hvbmcg dHJvbmcgZHVvYyBnaSBoZXQsIGtob25nIGxhbSBkdW9jIGdpIGhldC4gRG8gbGEgY2FpIGFwIGJ1 YyB0aHUgbmh1dC4gDQpDYWkgYXAgYnVjIHRodSBoYWksIHZvIGx5IGxhIGdpPyBEYXQgdHJlbiBn aWEgdGhpIHRydW9uZyBoaWVuIG5heSBuZXUgbmd1b2kgdGEgY2FtIG1pZW5nIGRhdCBkbywgbmd1 b2kgdGEgYmFuIHRoaSBjYWkgZ2lhIGxhIGJheSB0YW0gdHJhbSBuZ2FuIG1vdCBtZXQgdnVvbmcs IHZpIGxhIGRhdCBkbyB0aGkgbG9haSBiYSBtYSwgbmh1bmcgbWEgYW5oIGJhdCB0dWkgcGhhaSBn aWFvIGRhdCBjaG8gYW5oICB2YSBhbmggYm9pIHRodW9uZyB2b2kgZ2lhIG5hbSBuZ2FuLCANCm11 b2kgYmEgbmdhbiB0aGkgbGFtIHNhbyB0dWkgZ2lhbyBjaG8gYW5oIGR1b2MhIERvIGxhIGNhaSB2 byBseSB0aHUgaGFpLiBBbmggZGFuIGFwIGNhaSBkbyBsYSBiYXkuDQpIaWVuIG5heSBtYWMgZHUg aG8gY2h1YSBkYW4gYXAgbmh1IGJhdCBuZ3VvaSBoYXkgbGEgbmhvdCB0dSBhaSBoZXQsIG5odW5n IGhvIGRhIGNobyBjdSBsdWMgbHVvbmcgY29uZyBhbiBuYXkgbm8geHVvbmcgY2hhdCBjYXkgcGhh IGNheSBjdWEgbmd1b2kgdGEuIENheSBuZ3VvaSB0YSB0cm9uZyBuYW0gDQpzYXUgbXVvaSBuYW0g bmF5IG1hIGhvIG5vaSBkYW4gdHJvbmcgY2F5IGxhbiBjaGllbSBkYXQgbmhhIG51b2Mgcm9pIGhv IGNoYXQgYm8gY2F5IGN1YSBuZ3VvaSB0YSBtYSBraG9uZyBib2kgdGh1b25nIG1vdCBjYWMgbmFv IGhldC4NCkRvIGxhIGNhaSBzYWkgdGh1IGJhLiBDYWkgZG8gbGEgYW5oIGN1b25nIGJ1YyByb2ks IGFwIGJ1YyByb2ksIHBoYWkga2hvbmc/IENheSB0cm9uZyB2dW9uIG5ndW9pIHRhIHRyb25nIG1h eSBjaHVjIG5hbSBuYXksIHRyaSBnaWEgY2F5IGRvIHRpbmggYmFuZyB2YWkgdHJhbSBuZ2FuIHZh eSBtYSBobyANCnh1b25nIGNoYXQgY2F5IGN1YSBuZ3VvaSB0YSBsYSBzYW8/IERvIGxhIGNhaSBj dW9uZyBidWMgdGh1IGJhLg0KQ2FpIGN1b25nIGJ1YyB0aHUgdHUgdmUgdGFtIGx5IHJhdCBsYSBu YW5nIG5lLiBUaGVvIGNodSB0cnVvbmcgY3VhIGRhbmcgdmEgbmhhIG51b2MsIGtoaSBuZ3VvaSBk YW4gYmkgbWF0IGRhdCB0aGkgcGhhaSBkdW9jIGJvaSB0aHVvbmcgdGhvYSBkYW5nIHZhIHBoYWkg ZHVvYyBjbyBub2kgbyBtb2ksIGNvIG5vaSB0YWkgZGluaCBjdSBtb2kgYmFuZyBob2FjIHRvdCBo b24gY2hvIGN1LCBuaHVuZyBkYW5nIG5heSBubyBraG9uZyBib2kgdGh1b25nIHRob2EgDQpkYW5n IHZhIGhvIHRybyBjdW5nIGtob25nIGx1b24sIG1hIGNvbiBkYW4gYXAgbmd1b2kgdGEgbnVhLiBE YW4gbyBkYXkgbmd1b2kgdGEgY2hpIHlldSBjYXUgYW5oIHRoaSBoYW5oIGR1bmcgbHVhdC4gDQpB bmggbGF5IGRhdCBjdWEgdG9pIHBoYWkgcmEgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCwgbGF5IGRh dCBjdWEgdG9pIGFuaCBwaGFpIGJvaSB0aHVvbmcgdGhlbyBnaWEgdGhpIHRydW9uZyB0aG9hIGRh bmcsIHZhIGFuaCBsYXkgZGF0IGN1YSB0b2kgdGhpIGFuaCBwaGFpIGdoaSBybyBtdWMgZGljaCBs YXkgZGUgbGFtIGdpLiBBbmggbGF5IGRlIGxhbSBkdW9uZyB0aGkgdHVpIHRvaSBkYXUgZGFtIGNo b25nIGFuaC4gQW5oIHhheSBkdW5nIHNhbiBiYXkgcXVhbiBzdSBoYXkgDQpsYSBjYW5nIHRoaSB0 dWkgdG9pIGRhdSBkYW0gY2hvbmcgYW5oLiBOaHVuZyBtYSBhbmggbGF5IGRhdCBjdWEgdG9pIGdp YW8gY2hvIG5oYSBkYXUgdHUga2hhYywgYW5oIGJhbiBkZSBsYXkgdGllbiBsb2kgdGhpIHRvaSBj aG9uZyBhbmggY2h1ISANCkhpZW4gbmF5IG8gVSBNaW5oIG5ndW9pIHRhIGtlbyBsZW4gbmd1b2kg dGEgYmlldSB0aW5oLCBuZ3VvaSB0YSBub2kgZGEgZGFvIGJlIGx1IHRoYW0gDQpuaHVuZywgZGEg ZGFvIGNodSB0aWNoIHRpbmggQnVpIE5nb2MgU29uIGNodSBuZ3VvaSB0YSBraG9uZyBjaG9uZyBk YW5nLCBraG9uZyBjaG9uZyBuaGEgbnVvYywgbWEgY2hvbmcgbmh1bmcga2UgbGFtIGJheS4NCg0K VGhhbmggUXVhbmcgOiBOb2kgY2h1bmcgdGluaCBoaW5oIGN1b25nIGNoZSB0aHUgaG9pIGRhdCBk YWkgbyBLaWVuIEdpYW5nIHJhIHNhbz8NCg0KTGUgRHVjIE15IDogUmF0IGxhIGJhdCBjYXAuIFJh dCBsYSBiYXQgY2FwLiBSYXQgbGEgbmhpZXUsIEtpZW4gTHVvbmcgY3VuZyBkaW5oIHRyb25nIHRp bmggdHJhbmcgbmF5LiBIdXllbiBLaWVuIEx1b25nLCB0aW5oIEtpZW4gR2lhbmcsIGN1bmcgbGEg ZGllbSBub25nLiBSb2kgaHV5ZW4gQW4gTWluaCANCmN1bmcgbGEgZGllbSBub25nLiBIb20gcm9p IEFuIE1pbmggbGVuIGJpZXUgdGluaCBjdW5nIHZpIGRhdCBkYWkgdGhvaS4gDQpUaGFuaCBwaG8g UmFjaCBHaWEgY3VuZyB2YXkuIE5vaSBjaHVuZyBsYSBuaHVuZyBkaWVtIG5vbmcgdmUgZGF0IGNh dCBkZXUgY28gZGluaCB0b2kgY2h1eWVuIGRvIGhldCwgZGV1IGRvIGNhY2ggbGFtIGNob25nIGNo ZW8sIGxhbSBraG9uZyBkdW5nIHBoYXAgbHVhdC4NCg0KVGhhbmggUXVhbmcgOiBUcm9uZyB2YW4g ZGUgcmFjIHJvaSB2ZSBkYXQgZGFpIHRoaSBjaG8gdG9pIGdpbyBuYXkgY2FjIHZpZW4gY2h1YyBv IGRpYSBwaHVvbmcgY28gYWkgYmkgYW5oIGh1b25nIGdpIGNodWE/DQoNCkxlIER1YyBNeSA6IEJh eSBnaW8gdGhpIG1vdCBwaG8gY2h1IHRpY2ggYmkgZGluaCBjaGkgY29uZyB0YWMgcm9pLCBsZW4g YmFvIGNoaSByb2kuIE1vdCB0cnVvbmcgcGhvbmcuIE5vaSBjaHVuZyB2dSBhbiBkbyB0aGkga2hv YW5nIDUgbmd1b2kgdGhhbSBuaHVuZyBuZ2F5IHRyb25nIG5vaSBibyBVQk5EIHRpbmggS2llbiBH aWFuZywgdHJvbmcgZG8gbmd1b2kgdGEgYmlldCBsYSBwaG8gY2h1IHRpY2ggdGluaCBzYWkgcGhh bSB2ZSBkYXQgZGFpLiANClNhaSBwaGFtIHZlIGRhdCBkYWkgbGEgY2FpIGdpPyBMYSB0aGFtIG5o dW5nIHZlIHRpZW4gYmFjIGNobyBsYSBjYWkgZ2khIA0KDQpUaGFuaCBRdWFuZyA6IE1hIHNhaSBw aGFtIHZlIGRhdCBkYWkgZG8gY28gZGluaCBsaXUgdG9pIGR1IGFuIGxhbiBiaWVuIEtpZW4gR2lh bmcgbmF5IGtob25nPw0KDQpMZSBEdWMgTXkgOiBDbyBsdW9uLiBNb3QgcGhhbiBsYSBjbyBsdW9u LiBBbmggcmEgbmh1bmcgcXV5ZXQgZGluaCBzYWkgdHJhaS4gDQoNCi0NCmh0dHA6Ly92aWV0YmFv LnZuL0tpbmgtdGUvTmFtLTIwMTAtbmdhbmgtZGllbi1kYXAtdW5nLWR1LW5odS1jYXUtdmEtY28t ZHUtdHJ1LzcwMDE1MDExLzg3LyAyMi82LzIwMDUsIDE3OjQxIEdNVCs3DQoNClRodSB0dW9uZzog VGFpIGt5IGhvcCB0aHUgNyBjdWEgUXVvYyBob2kgKDIwMDUpIFBobyBUaHUgdHVvbmcgTmd1eWVu IFRhbiBEdW5nIGRhIG5oYW4gZGluaCBuYW0gMjAxMCBuZ2FuaCBkaWVuIGRhcCB1bmcgZHUgbmh1 IGNhdSB2YSBjbyBkdSB0cnUgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8y MDEwMDYvUGhvLVRodS10dW9uZy1LaG9uZy10aGUta2hvbmctbGFtLWR1b25nLXNhdC1jYW8tdG9j LTkxNTY5NS8gTGUgTmh1bmcgMTI6NTYsIDEyLzA2LzIwMTAgKEdNVCs3KQ0KDQpUaHUgdHVvbmc6 IENhdCBkaWVuIGx1YW4gcGhpZW4gbmhpZXUgbmFtIG5heSwgcGhhbiBhbmggcXVhIG5oaWV1IGt5 IGhvcCBuaHVuZyBkZW4gbmF5ICgyMDEwKSBjYW5nIHRoYW5nIGhvbg0KDQpodHRwOi8vd3d3LnZp ZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA2L1Boby1UaHUtdHVvbmctS2hvbmctdGhlLWtob25n LWxhbS1kdW9uZy1zYXQtY2FvLXRvYy05MTU2OTUvIExlIE5odW5nIDEyOjU2LCAxMi8wNi8yMDEw IChHTVQrNykNCg0KVGh1IHR1b25nOiBUcmFjaCBuaGllbSB0aGlldSBkaWVuIGxhIG8gQ2hpbmgg cGh1ISBFVk4gY28gdHJhY2ggbmhpZW0gZGlldSBwaG9pIQ0KDQpodHRwOi8vd3d3Lmxhb2Rvbmcu Y29tLnZuL1Rpbi1UdWMvTXVhLXZhbi10aGlldS1kaWVuLzEzMjUyIE1haSBIYSAtIFF1YW5nIER1 YW4gVGhlbyBUTk8gMTcuOS4yMDEwIDEwOjEyIChHTVQgKyA3KSANCg0KVGh1IHR1b25nOiBNdWEs IHZhbiB0aGlldSBkaWVuISAgDQoNCkJ1b2MgdmFvIGRhdSBtdWEgbHUgZGEgZHVvYyBtb3QgdGhh bmcsIG5odW5nIGNhYyBobyB0aHV5IGRpZW4gbG9uIG5obyBkZXUgZGFuZyAia2hhdCBudW9jIi4N ClRyYW8gZG9pIHZvaSBwaG9uZyB2aWVuLCBUUyBUcmFuIERpbmggTG9uZywgUGhvIGNodSB0aWNo IEhvaSBEaWVuIGx1YyBWTiBjaG8gYmlldCwgDQp0aW5oIHRyYW5nIGN1IHRoaWV1IG51b2MgbGEg dGhpZXUgZGllbiBjbyB0aGUga2hhYyBwaHVjIGR1b2MsIG5ldSBjYWMgZHUgYW4gbmd1b24ga2hv bmcgDQpjaGFtIHRpZW4gZG8gaGF5IGNhYyBuaGEgbWF5IGRpZW4gbG9uIGtob25nIGdhcCBoYW5n IGxvYXQgc3UgY28uDQoNClRodXkgZGllbiBTb24gTGEgZGFuZyB0cm9uZyBxdWEgdHJpbmggdGlj aCBudW9jIC0gQW5oOiBOZ29jIHRoYW5nDQoNClRoaWV1IGRpZW4ga2hvbmcgcGhhaSBob2FuIHRv YW4gbGEgZG8gdGhpZXUgbnVvYw0KDQpPbmcgTG9uZyBub2k6ICJUaHV5IGRpZW4gaGllbiBjaGll bSBraG9hbmcgNDAlIGNvbmcgc3VhdCBwaGF0IGRpZW4gY3VhIHRvYW4gaGUgDQp0aG9uZywgdmll YyBudW9jIHZlIG5oaWV1IGhheSBpdCwgYW5oIGh1b25nIGRhbmcga2UgZGVuIHRpbmggdHJhbmcg dGhpZXUgZGllbiwgbmh1bmcgDQpraG9uZyBwaGFpIGxhIHRhdCBjYS4gTHkgZG8gdGhpZXUgZGll biB0cmFtIHRyb25nIHRyb25nIG11YSBraG8gdnVhIHJvaSBjdW5nIG5odSBtb3Qgc28gDQpkaWEg cGh1b25nIHZhbiBiaSBjYXQgZGllbiBuZ2F5IHRyb25nIG11YSBsdSwgY2h1IHlldSB2YW4gZG8g Y2FjIG5ndW9uIGRpZW4gdmFvIGtob25nIA0KZHVuZyB0aWVuIGRvLiBLaG9uZyBjaGkgbmFtIG5h eSwgbmFtIG5nb2FpIHRpbmggdHJhbmcgdGhpZXUgbnVvYyBkYXUgbXVhIGx1IGN1bmcgZGEgDQp4 YXkgcmEuIENodSBreSB0aHV5IHZhbiB0aHVvbmcgbGFwIGxhaSBraG9hbmcgNiwgNyBuYW0gbW90 IGxhbiBuZW4ga2hvbmcgdGhlIHRyYW5oIGtob2kgDQpOaHVuZyBuZXUgY2FjIG5ndW9uIGR1IGtp ZW4gZGkgdmFvIGR1bmcgdGllbiBkbywgaGUgdGhvbmcgZGllbiBjbyBjb25nIHN1YXQgZHUgcGhv bmcgDQp0aGkgY28gdGhlIGJ1IGxhaSBzdSB0aGlldSBodXQgY3VhIHRodXkgZGllbi4gVGh1YyB0 ZSwga2llbSBsYWkgVG9uZyBzbyBkbyBkaWVuIDYsIHBoYW4gbG9uIA0KbmhhIG1heSBkdSBraWVu IGRpIHZhbyBob2F0IGRvbmcgdHJvbmcgZ2lhaSBkb2FuIDIwMDYtMjAxMCBkZXUgZGEgY2hhbSB0 aWVuIGRvLg0KDQoqIFF1eSB0cmluaCB2YW4gaGFuaCBsaWVuIGhvIGNodWEgZ2l1YSBjYWMgaG8g dGh1eSBkaWVuIGhpZW4gbmF5IGNodWEgdGh1YyBzdSBoaWV1IHF1YSANCmNvIHBoYWkgbGEgbW90 IHBoYW4gbmd1eWVuIG5oYW4gdGhpZXUgZGllbj8NCg0KVGhlbyBjaHUgdHJ1b25nIGRhIGR1b2Mg UXVvYyBob2kgdGhvbmcgcXVhLCBkdSBhbiBkaWVuIGhhdCBuaGFuIE5pbmggVGh1YW4gc2UgZ29t IDIgDQpuaGEgbWF5LCBtb2kgbmhhIG1heSBjbyAyIHRvIG1heS4gVG9uZyBjb25nIHN1YXQgY3Vh IG1vaSBuaGEgbWF5IGtob2FuZyAyLjAwMCBNVywgDQp0aG9pIGdpYW4ga2hvaSBjb25nIE5oYSBt YXkgZGllbiBoYXQgbmhhbiBOaW5oIFRodWFuIDEgdmFvIG5hbSAyMDE0LCBkdWEgdG8gbWF5IGRh dSANCnRpZW4gdmFuIGhhbmggdmFvIG5hbSAyMDIwLiANCg0KT25nIFRyYW4gRGluaCBMb25nLCBQ aG8gY2h1IHRpY2ggSG9pIERpZW4gbHVjIFZOIGNobyBiaWV0LCBuZXUgZGllbiBoYXQgbmhhbiBj aGllbSANCmR1b2Mga2hvYW5nIDE1JSB0b25nIG5ndW9uLCBzZSBoYW4gY2hlIGhpZXUgcXVhIG5n dXkgY28gdGhpZXUgZGllbi4NCg0KLSBDaGluaCBwaHUgdnVhIGdpYW8gY2hvIEJvIFRhaSBuZ3V5 ZW4gLSBNb2kgdHJ1b25nIGNoaXUgdHJhY2ggbmhpZW0geGF5IGR1bmcgcXV5IA0KdHJpbmggdmFu IGhhbmggbGllbiBobyBjaHVhIHZhIGRpZXUgaGFuaCwgZGUgZGlldSBob2EgbG9pIGljaCBjaHVu ZyBjdWEgY2FjIGhvIGR1bmcgbnVvYyANCnZhIHBodWMgdnUgdmllYyBwaGF0IHRyaWVuIGJhbyB2 ZSB0YWkgbmd1eWVuIG51b2MuIFF1eSB0cmluaCBuYXkgdHJ1b2MgZGF5IG1vaSBjaGkgZHVvYyAN CmFwIGR1bmcgdHVvbmcgZG9pIGNoYXQgY2hlIG8gaG8gdGh1eSBkaWVuIEhvYSBCaW5oLCBuaGFt IGRhbSBiYW8gY2EgMyBraGF1IGxhIHBoYXQgDQpkaWVuIHRvdCwgdGh1eSBsb2kgdmEgY2hvbmcg bHUuIE5odW5nIHZhbiBkZSBuYXkgZGFuZyBkYXQgcmEgYnVjIHh1YyBob24gdmkgaGllbiB0cmVu IG1vdCANCmRvbmcgc29uZyBjaHVuZyB0YSBkYW5nIHhheSBuaGlldSBuaGEgbWF5IHRodXkgZGll bi4gTmh1IHNvbmcgRGEgaGllbiBjbyBIb2EgQmluaCwgDQpTb24gTGEgdmEgc2FwIHRvaSBsYSBM YWkgQ2hhdSwgMyBiYWMgdGhhbmcgbGllbiBoZSB0cmVuIGN1bmcgbW90IGRvbmcgY2hheSwgbmV1 IG8gdHJlbiANCmNoYW4gbnVvYyB0aGkgbyBkdW9pIGtob25nIGNvLCB0cmVuIHhhIG51b2MgZHVv aSBraG9uZyBjaGFuIHNlIGdheSBsYW5nIHBoaSBob2FjIGx1IGNobyANCnZ1bmcgaGEgZHUuIE5o dSB2YXkga2hvbmcgcGhhaSBsb2kgaWNoIHJpZW5nIGN1YSB0dW5nIG5oYSBtYXkgbWEgdmFuIGRl IGxhIHN1IHBob2kgaG9wIA0KZ2l1YSBjYWMgbmhhIG1heSBkZSBjaG9uZyBsdSB2YSBwaGF0IGRp ZW4gdG90IG5oYXQuDQoNClN1IGNvICJrZXAiIGN1YSBuaGlldCBkaWVuDQoNCiogT25nIG5oaW4g bmhhbiB0aGUgbmFvIHZlIHZpZWMgaGUgdGhvbmcgbGllbiB0dWMgYmkgdGhpZXUgY29uZyBzdWF0 IGR1IHBob25nIGRvIGNhYyBuaGEgDQptYXkgbmhpZXQgZGllbiBsb24gdmFvIG11YSBjYW8gZGll bSBsYWkgaGF5IGdhcCBzdSBjbz8NCg0KLSBEYXkgbGEgZGlldSByYXQgZGFuZyBxdWFuIHRhbSwg ZG8gc3UgbHVhIGNob24gdGhpZXQgYmksIG5oYSBjdW5nIGNhcCB0aGlldCBiaSBraG9uZyB0b3Qs IA0KYW5oIGh1b25nIGRlbiB2YW4gaGFuaCBjdWEgbmhhIG1heS4gTWF0IGtoYWMsIHRoaWV1IGRp ZW4ga2hpZW4gY2FjIG5oYSBtYXkgbmhpZXQgDQpkaWVuIHBoYWkgbGllbiB0dWMgaG9hdCBkb25n IGhldCBjb25nIHN1YXQgdGhpZXQga2UsIGtoaWVuIHN1IGNvIGNhbmcgZGUgeGF5IHJhLCBsYWkg Z2F5IA0KdGhlbSB0aGlldSBkaWVuLg0KDQpNb3Qgbmd1eWVuIG5oYW4gbnVhIGxhIG5odSBjYXUg c3UgZHVuZyBkaWVuIG5hbmcgdGFuZyBxdWEgbmhhbmgsIG5odW5nIGxhaSByYXQgbGFuZyANCnBo aSwgbmhhdCBsYSB0cm9uZyBsaW5oIHZ1YyBzaW5oIGhvYXQgdmEgZGljaCB2dS4gVmllYyBraG9u ZyBraG9uZyBjaGUgZHVvYyBjYXUgdGFuZyBxdWEgDQpuaGFuaCBkYW4gdG9pIGN1bmcga2hvbmcg Y2hheSBraXAgY2F1Lg0KDQpWYW4gdGhpZXUgY29uZyBzdWF0IGR1IHBob25nIA0KDQpUYXAgZG9h biBEaWVuIGx1YyBWTiAoRVZOKSBjaG8gYmlldCwgdHJvbmcgdGhhbmcgOSB2aWVjIGN1bmcgdW5n IGRpZW4gdHVvbmcgZG9pIG9uIA0KZGluaCBuaHVuZyBoZSB0aG9uZyBkaWVuIHRoaWV1IGNvbmcg c3VhdCBkdSBwaG9uZywgZG8gbW90IHNvIHRvIG1heSBuaGlldCBkaWVuIHBoYWkgDQpuZ3VuZyB4 dSBseSBzdSBjbyB2YSBzdWEgY2h1YS4gQ29uZyB0aGVtIGtoaSBDdXUgTG9uZyBuZ3VuZyBjYXAg dHUgbmdheSAzLjkgZGVuIDE1LjkgDQpkZSBiYW8gZHVvbmcgZ2lhbiBuZW4ga2hpIHRydW5nIHRh bSB2YSBkYXUgbm9pIG1vIEhhaSBTdSBUcmFuZy4gRGUga2hhYyBwaHVjIHRpbmggDQp0cmFuZyB0 aGlldSBkaWVuLCBFVk4gdGllcCB0dWMgaHV5IGRvbmcgY29uZyBzdWF0IHRvaSBkYSBjdWEgbW9p IG5ndW9uIGRpZW4gaGllbiBjbywgDQpjdW5nIG5odSB0YW5nIG11YSBkaWVuIHR1IFRydW5nIFF1 b2MuDQoNClBoYWkgY2FuIHRoaWVwIG1hbmggbWUhDQoNCiogVGhlbyBvbmcgdmllYyBkYW0gYmFv IGFuIG5pbmggbmFuZyBsdW9uZyBjYW4gZGF0IHJhIG5odSB0aGUgbmFvLCB0cmFuaCBjYW5oIHRo aWV1IA0KZGllbiBsaWVuIG1pZW4gY2EgbXVhIGtobyBsYW4gbXVhIGx1Pw0KDQotIENhbiBjbyBn aWFpIHBoYXAgdG9uZyB0aGUgdmEgc3UgY2FuIHRoaWVwIG1hbmggbWUgY3VhIE5oYSBudW9jLiBU aHUgbmhhdCwgcXVhbiBseSB0b3QgDQp0YW5nIHRydW9uZyBuaHUgY2F1IHN1IGR1bmcgZGllbiwg ZGFwIHVuZyBoaWV1IHF1YSBraW5oIHRlLCAxIGtXaCBkaWVuIHBoYWkgbGFtIHJhIGJhbyANCm5o aWV1IGRvbmcgR0RQLiBMaWVuIHF1YW4gZGVuIGRpZXUgbmF5IGxhIGNvIGNhdSBraW5oIHRlIHBo YWkgaG9wIGx5LCBwaGF0IHRyaWVuIG5odW5nIA0Kbmdhbmggc3UgZHVuZyBpdCBkaWVuIG5odW5n IG1hbmcgbGFpIG5oaWV1IGxhaS4NCg0KVGh1IGhhaSB2ZSBuZ3VvbiBjdW5nLCBwaGFpIGNvIHRp bmggcGhhcCBsZW5oLCB4YXkgbmhhIG1heSBkaWVuIGRlbiBuYW0gZHUga2llbiBkdWEgDQp2YW8g bWEga2hvbmcgZHVuZyB0aWVuIGRvIHBoYWkgeHUgcGhhdC4NCg0KVGh1IGJhLCB4YXkgZHVuZyBj byBjYXUgbmd1b24gaG9wIGx5LCBraG9uZyBwaHUgdGh1b2MgdmFvIG1vdCBuZ3VvbiBuYW5nIGx1 b25nIG5hbywgDQpuaHUgbnVvYyBjdWEgdHJvaSwgaGF5IHRoYW4sIGhheSBkYXUga2hpLiBQaGFp IGRhIGRhbmcgaG9hIG5ndW9uIGRpZW4sIGNhIG5hbmcgbHVvbmcgdGFpIA0KdGFvIGhheSBkaWVu IGhhdCBuaGFuIChxdXkgaG9hY2ggdG9pIG5hbSAyMDIwKS4NCg0KTXVjIG51b2MgbyBjYWMgaG8g dGh1eSBkaWVuIHJhdCB0aGFwIA0KDQpUaGVvIG9uZyBOZ3V5ZW4gVmFuIFRoYW5oLCBHaWFtIGRv YyBDb25nIHR5IHRodXkgZGllbiBIb2EgQmluaCwgZGVuIG5nYXkgMTQuOSwgDQptdWMgbnVvYyB0 YWkgSG9hIEJpbmggY2hpIGRhdCA5OSw1bSwgbnVvYyB2ZSBuZ2F5IGNhbmcgaXQsIGNvbiBob24g MTdtIG51YSBtb2kgZGF0IA0KbXVjIHRpY2ggbnVvYyBkdSB0aGVvIHlldSBjYXUgdGhpZXQga2Uu IERhYyBiaWV0LCB0aHV5IGRpZW4gU29uIExhIGRvbmcgY3VhIGNoYW4gZG9uZyBvIA0KMTAgY3Vh LCBjaGkgeGEgMiBjdWEsIGFuaCBodW9uZyByYXQgbG9uIGRlbiBtdWMgbnVvYyB2ZSBobyBIb2Eg QmluaC4gIlR1IGtoaSBIb2EgQmluaCANCmRpIHZhbyBob2F0IGRvbmcgZGVuIG5heSAyMyBuYW0s IGRheSBsYSBuYW0gZGFjIHRodSBuaGF0LCBraG9uZyBtbyBjdWEgeGEgbmFvIG5odW5nIHZhbiAN Cmtob25nIGR1IG51b2MgZGUgdGljaCIsIG9uZyBUaGFuaCBub2kuIA0KDQpNdWMgdGlldSBjb25n IHN1YXQgY2EgbmFtIDIwMTAgY3VhIHRodXkgZGllbiBIb2EgQmluaCBsYSA4LDUgdGkga1doIG5o dW5nIHRpbmggZGVuIGhldCANCnRoYW5nIDggbW9pIGNoaSBkYXQgNSB0aSBrV2guIEhpZW4gY29u ZyBzdWF0IHBoYXQgY3VhIG5oYSBtYXkgbmF5IG1vaSBjaGkgZGF0IHRyZW4gZHVvaSANCjMwIHRy aWV1IGtXaC9uZ2F5IChraGEgbmFuZyB0aGlldCBrZSBsYSA0NiB0cmlldSBrV2gvbmdheSkuIFRo ZW8gb25nIFRoYW5oLCB2b2kgbXVjIA0KbnVvYyBoYW4gY2hlIG5heSwgSG9hIEJpbmggY2hpIGNv IGdhbmcgc2FuIHh1YXQgY2FtIGNodW5nLiANCg0KQmEgTmd1eWVuIExhbiBDaGF1IC0gY28gdmFu IGNhbyBjYXAgY3VhIFRydW5nIHRhbSBEdSBiYW8ga2hpIHR1b25nIHRodXkgdmFuIFQuVSANCmNo byBiaWV0LCBuZ2F5IDE0LjksIG11YyBudW9jIHRhaSBobyBUaGFjIEJhOiA1MiwzbSB2YSBobyBU dXllbiBRdWFuZzogMTAzLDdtLCB0aGFwIA0KaG9uIGN1bmcga3kgbmFtIDIwMDkgLSBuYW0gaGFu IGhhbiB4YXkgcmEga2hvYyBsaWV0IG5oYXQgdHJvbmcgbmhpZXUgbmFtLCBsYW4gbHVvdCBsYSAN CjEwbSwgNG0gdmEgMm0uIEhvIHRodXkgZGllbiBTb24gTGEgaGllbiBtb2kgY2hpIHRpY2ggbnVv YyBkZW4gY2FvIHRyaW5oIDE2MSw5OW0sIHRoYXAgDQpob24gbXVjIG51b2MgY2hldCB0aGlldCBr ZSBnYW4gMTRtLi4uIA0KDQpEdSBiYW8sIG11YyBudW9jIGNhYyBobyBraG8gY28ga2hhIG5hbmcg ZHVvYyBjYWkgdGhpZW4gdHJvbmcgdGhhbmcgOSBuYXkga2hpIGRvbmcgDQpjaGF5IGRlbiBjYWMg aG8gbmF5IGhpZW4gZGFuZyBvIG11YyByYXQgdGhhcC4gQ2FjIGNodXllbiBnaWEgdGh1eSB2YW4g ZGFuZyBoeSB2b25nIA0KbXVhIGx1IGRlbiBtdW9uIGN1bmcgc2Uga2V0IHRodWMgbXVvbiB2YSBz ZSBibyBzdW5nIG1vdCBsdW9uZyBudW9jIGRhbmcga2UgdHJvbmcgDQpudWEgY3VvaSBtdWEgbXVh IGx1IG5hbSBuYXkuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwNDUvMjAxMDExMDUwMDA5NDkuYXNweCBNYWkgSGEgIDA1LzExLzIwMTAgMDowOSANCg0KVGh1 IHR1b25nOiBUaGFuZyAxMSB2YW4gdGllcCB0dWMgdGhpZXUgZGllbiAgDQogIA0KVGhlbyBUYXAg ZG9hbiBkaWVuIGx1YyBWTiAoRVZOKSwgdHJvbmcgdGhhbmcgMTEgZHUgdmFuIGNvbiBraGEgbmFu ZyBtdWEsIGJhbywgbHUgbyANCmtodSB2dWMgbWllbiBUcnVuZywgbmh1bmcgdGluaCBoaW5oIGN1 bmcgY2FwIGRpZW4gdmFuIHRpZXAgdHVjIGtobyBraGFuLiANCg0KRHUga2llbiB0cm9uZyB0aGFu ZyAxMSwgc2FuIGx1b25nIGRpZW4gdHJ1bmcgYmluaCB0b2FuIGhlIHRob25nIG8gbXVjIDI4MCB0 cmlldSANCmtXaC9uZ2F5LCBjb25nIHN1YXQgbG9uIG5oYXQgZGFvIGRvbmcgdHUgMTUuNTAwIC0x Ni4wMDAgTVcuIEhlIHRob25nIGRpZW4gcXVvYyBnaWEgIA0KdGllcCB0dWMga2hvbmcgY28gZHUg cGhvbmcuIEVWTiBjaG8gYmlldCwgYmVuIGNhbmggdmllYyB0aWNoIG51b2MsIGtoYWkgdGhhYyB0 b2kgZGEgdGh1eSANCmRpZW4sIHNlIHBoYWkgdGllcCB0dWMgbXVhIGRpZW4gVHJ1bmcgUXVvYyBv IG11YyB0b2kgZGEuIA0KDQpUcnVvYyBkbywgdHJvbmcgdGhhbmcgMTAsIEVWTiBkYSBtdWEgNDkz IHRyaWV1IGtXaCBkaWVuIHR1IFRydW5nIFF1b2MsIGx1eSBrZSAxMCANCnRoYW5nIG5hbSAyMDEw LCBFVk4gZGEgbXVhIGN1YSBUcnVuZyBRdW9jIHRvaSA0LjU1MyB0cmlldSBrV2guIFNhbiBsdW9u ZyBkaWVuIG11YSANCm5nb2FpIHRhbmcgbGEgZG8gdGhhbmcgMTAgbnVvYyB2ZSBjYWMgaG8gdGh1 eSBkaWVuIGxvbiB2YW4gdGhhcCBob24gdHJ1bmcgYmluaCBuaGlldSANCm5hbSB0dSA3LTIybSwg a2hpZW4gc2FuIGx1b25nIHRodXkgZGllbiB0aGlldSBodXQga2hvYW5nIDYsODQgdGkga1doICh0 aHV5IGRpZW4gY2hpIA0KZGF0IDIsMTU1IHRpIGtXaCwgZ2lhbSAyNiw1MyUgc28gdm9pIGN1bmcg a3kpLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vS2luaC10ZS9UaGlldC1oYWktZG8tdGhpZXUtZGll bi10aG9uZy1rZS1raG9uZy1rZS14aWV0LzIwNDUzOTI5LzQ3LyBUcmFuIFRodXkgMTYvNi8yMDA1 LCAwMjo0MCBHTVQrNyANCg0KVGh1IHR1b25nOiBUaGlldCBoYWkgZG8gdGhpZXUgZGllbiAtIFRo b25nIGtlIGtob25nIGtlIHhpZXQhDQoNClRoaWV0IGhhaSA1MCB0eSBkb25nL25nYXkgaGF5IDEw MDAgdHkgZG9uZy9naW8/DQoNClRoZW8gb25nIFRyYW4gVmlldCBOZ2FpIC0gQ2h1IHRpY2ggSGll cCBob2kgRGF1IHR1IHhheSBkdW5nIG5hbmcgbHVvbmcsIHRoaWV0IGhhaSBkbyANCnRoaWV1IGRp ZW4ga2hvbmcgdGluaCBkdW9jIGJhbmcgdGllbi4gVm9pIG1vdCBudW9jIGRhbmcgcGhhdCB0cmll biBuaHUgVmlldCBOYW0sIGtoaSANCm5nYW5oIGNvbmcgbmdoaWVwIGNoaWVtIGtob2FuZyA0OSUg dG9uZyBHRFAgY2EgbnVvYywgY2hpIGNhbiBtYXQgZGllbiBtb3QgZ2lvLCBtdWMgDQp0aGlldCBo YWkgY3VuZyBjbyB0aGUgdnVvdCBxdWEgY29uIHNvIDEuMDAwIHRpIGRvbmcuIA0KDQpDYWMgbmdh bmggY29uZyBuZ2hlIGNhbyBob2FuIHRvYW4gdGUgbGlldCBraGkgdGhpZXUgZGllbiwgZGllbiBk dW9jIGN1bmcgY2FwIG9uIGRpbmggbGEgDQptb3QgdHJvbmcgbmh1bmcgeWV1IHRvIGR1b2MgcXVh biB0YW0gbmhhdCBkb2kgdm9pIGRhdSB0dSBudW9jIG5nb2FpLiBEbyBkaWVuIGxhIHlldSB0byAN CnRoZW4gY2hvdCBjdWEgc2FuIHh1YXQsIG5oaWV1IG51b2MgdHJlbiB0aGUgZ2lvaSBraG9uZyBj b24gdGluaCB0b2FuIHRoaWV0IGhhaSBkbyBtYXQgZGllbiANCnRoZW8gZG9uIHZpIGdpbyBtYSBs YSBkb24gdmkgcGh1dC4gDQoNCk5oaWV1IG5oYSBkb2FuaCBuZ2hpZXAgcmF0IGRvbmcgdGluaCB2 b2kgeSBraWVuIGN1YSBvbmcgVHJhbiBWaWV0IE5nYWkuIA0KDQpOaGFwIHNpZXUgc2UgdGFuZz8N Cg0KT25nIEhvYW5nIFZhbiBUb25nLCBQaG8gdG9uZyBnaWFtIGRvYyBjb25nIHR5IEdhbmcgdGhl cCBUaGFpIE5ndXllbiBjaG8gYmlldCB0cm9uZyANCm5odW5nIG5nYXkgdGhpZXUgZGllbiB2dWEg cXVhLCBzYW4gbHVvbmcgcGhvaSBjdWEgY29uZyB0eSBnaWFtIDUwJS4gQmluaCBxdWFuLCAxIHRo YW5nIA0KY2FjIGxvIGRpZW4gY3VhIGNvbmcgdHkgc2FuIHh1YXQgZHVvYyAyOC4wMDB0YW4gcGhv aSwgcGh1YyB2dSBjaG8gY2FuIHRoZXAsIG5odW5nIGRvIA0KdGhpZXUgZGllbiwgbmVuIHRoYW5n IDUgc2FuIGx1b25nIHBob2kgY2hpIGRhdCAxNS4wMDAgdGFuLCB0aGVwIHBoZSBtdWEgdmUgZGUg Y2hhdCBkb25nLiANCg0KRGlldSBkYW5nIG5vaSBsYSBjYWMgbG8gZGllbiBsdW9uIGhvYXQgZG9u ZyBoZXQgY29uZyBzdWF0LCBuZW4gdHUgbmF5IGRlbiBjdW9pIG5hbSBzZSANCmtob25nIHRoZSB0 YW5nIHNhbiBsdW9uZyBkZSBidSBkYXAgdmFvIHNvIHBob2kgYmkgdGhpZXUgaHV0IGtpYSBkdW9j LCB2aSB2YXkgY2hhYyBjaGFuIA0KcGhhaSBuaGFwIGtoYXUgdGhlbSBraG9hbmcgMTUuMDAwIHRh biBwaG9pIHRoYXkgdGhlLiANCg0KTmh1IHZheSwgY29uZyB0eSBzZSBiaSB0aGlldCBoYWkuIFZv aSBnaWEgcGhvaSBuaGFwIGtoYXUgaGllbiBuYXkgbGEgMzUwIFVTRC90YW4sIGNvbmcgdHkgDQpu YXkgcGhhaSB2YXkgbmdhbiBoYW5nIGtob2FuZyA1IHRyaWV1IFVTRCBkZSBuaGFwIGtoYXUgc28g cGhvaSB0aGVwIG5heSwgcGhhaSB0cmEgbGFpIA0KbmdhbiBoYW5nLiBCZW4gY2FuaCBkbyBuZXUg Z2lhIHBob2kgdGhlcCBzYW4geHVhdCB0cm9uZyBudW9jIGNoaSBraG9hbmcgMzAwIFVTRC90YW4s IA0KdGhpIG5oYXAga2hhdSBwaGFpIG1hdCB0aGVtIDUwIFVTRC90YW4gbnVhLCBuaHUgdmF5IHRo aWV0IGhhaSBtYXQgZ2FuIDEgdHJpZXUgVVNELi4uDQoNCkNvbmcgdHkgdGhlcCBIb2EgUGhhdCBj byAyIGxvIGRpZW4gY29uZyBzdWF0IDIwIHRhbi9sbyAoIHNhbiBsdW9uZyBraG9hbmcgDQoxNC4w MDB0YW4vdGhhbmcpIGN1bmcgcGhhaSBuZ3VuZyBob2F0IGRvbmcgaG9hbiB0b2FuIDEgdGhhbmcg bmF5IGRvIHRoaWV1IGRpZW4sIGx1b25nIA0KcGhvaSB0aGVwIG5oYXAgdGhheSB0aGUgdmEgdGhp ZXQgaGFpIHR1b25nIGR1b25nIG5odSBjb25nIHR5IEdhbmcgdGhlcCBUaGFpIE5ndXllbi4NCg0K TW90IHNvIG5oYSBraW5oIHRlIGtoaSBiaWV0IHRob25nIHRpbiBuYXkgZGEgZHUgYmFvIG5oYXAg a2hhdSBjdWEgVmlldCBOYW0gNiB0aGFuZyBjdW9pIA0KbmFtIHNlIHRhbmcuIEJvaSB2aSBraG9u ZyBwaGFpIGNoaSBHYW5nIHRoZXAgVGhhaSBOZ3V5ZW4gdmEgdGhlcCBIb2EgUGhhdCBtb2kgYmkg bmh1IA0KdmF5LiBUaHVjIHRlLCBjbyByYXQgbmhpZXUgZG9hbmggbmdoaWVwIHRodW9jIGNhYyBs aW5oIHZ1YyBzYW4geHVhdCBtYSBjb25nIHN1YXQgZGEgbyANCm11YyB0b2kgaGFuIG5odSB4aSBt YW5nIChraGF1IHNhbiB4dWF0IGNsaW5rZSksIGdpYXkuLi4gY3VuZyB0cm9uZyB0aW5oIHRyYW5n IHR1b25nIHR1LiANCg0KTHVvbmcgbmd1eWVuIGxpZXUgY2hvIHNhbiB4dWF0IHZhIGhhbmcgaG9h IGNobyB0aWV1IGR1bmcgdHJvbmcgbnVvYyB0dSBzYW4geHVhdCBkdW9jIGJpIA0KdGhpZXUgaHV0 IGRvIG1hdCBkaWVuIHRhdCB5ZXUgcGhhaSBuaGFwIGtoYXUgZGUgYnUgdmFvLCBuaHUgdmF5IHNl IGxhbSB0YW5nIHRoYW0gaHV0IGNhbiANCmNhbiB0aHVvbmcgbWFpLCBjdW5nIG5odSBwaGFpIG1h dCB2YW8gZGF5IDEga2hvaSBsdW9uZyBraG9uZyBuaG8gbmdvYWkgdGUgbWFuaCBudWEuDQoNCkNh YyBETiB0aHVjIHBoYW0gbG8gbWF0IHV5IHRpbg0KDQpUaGVvIE9uZyBZYXAsIGdpYW0gZG9jIGtp bmggZG9hbmggY3VhIGNvbmcgdHkgVE5ISCBuaGEgbWF5IGJpYSBIYSBUYXkgKHNhbiB4dWF0IA0K YmlhIFRpZ2VyLCBIZWluZWtlbiksIHRoaSB2aWVjIG1hdCBkaWVuIHRodW9uZyB4dXllbiB2b2kg bmhhIG1heSB0cm9uZyB0aG9pIGdpYW4gcXVhLCBtYSANCmhhdSBuaHUga2hvbmcgZHVvYyB0aG9u ZyBiYW8gdHJ1b2MsIGRhIGxhbSBjaG8gdHVvaSB0aG8gY2FjIHRyYW5nLCB0aGlldCBiaSBzYW4g eHVhdCBzdXkgDQpnaWFtLiBCZW4gY2FuaCBkbyBjaGF0IGx1b25nIHNhbiBwaGFtIGN1bmcgYmkg YW5oIGh1b25nIHRoZW8uDQoNCk5oaWV1IGRvYW5oIG5naGllcCB0cm9uZyBsaW5oIHZ1YyBjaGUg YmllbiB0aHVjIHBoYW0gY3VuZyByYXQgbG8gbmdhaSB2ZSB2YW4gZGUgbmF5LiANCk5nYW5oIGNo ZSBiaWVuIHRodWMgcGhhbSBjbyBkYWMgdGh1IHJpZW5nIGtob25nIG5odSBjYWMgbWF0IGhhbmcg a2hhYywgbWF0IGRpZW4gdGhpIA0Kbmd1bmcgc2FuIHh1YXQsIGtoaSBuYW8gY28gbGFpIHRpZXAg dHVjLiBWb2kgY2hlIGJpZW4gYmlhLCBiYW5oIGtlbywgdGhpdCwgY2EuLi4gbmV1IG1hdCBkaWVu IA0KdHJvbmcgbHVjIGRhbmcgc2FuIHh1YXQsIHNhdSBkbyB2YWkgdGllbmcgbW9pIGNvIGxhaSBs YSBjaGF0IGx1b25nIHNhbiBwaGFtIGJpIGFuaCBodW9uZyANCm5nYXkgbGFwIHR1Yy4gTmh1bmcg c2FuIHBoYW0gbmF5IGtoaSBkdWEgcmEgdGhpIHRydW9uZyByYXQgZGUgYmkgbWF0IHV5IHRpbi4g Tmd1b2kgdGlldSANCmR1bmcgZGF1IGNhbiBiaWV0IG1hdCBkaWVuIGhheSBraG9uZywgY2hpIGNh biBjdSB2YW8gY2hhdCBsdW9uZywgdGh1b25nIGhpZXUgZGUgcXV5ZXQgDQpkaW5oIG11YSBoYW5n LCBuZXUgY2hhdCBsdW9uZyBrZW0gY2hhYyBjYW4ga2hvIGNvIGxhbiBzYXUgcXVheSBsYWkuIE5o dSB2YXkgdGh1b25nIA0KaGlldSBzZSBiaSBtYXQgdXkgdGluLg0KDQpEYXUgdHUgbnVvYyBuZ29h aSBjaGFjIGNoYW4gYmkgYW5oIGh1b25nDQoNCk5oaWV1IGRvYW5oIG5naGllcCBkYXUgdHUgbnVv YyBuZ29haSB0cm9uZyBuaHVuZyBuZ2F5IG1hdCBkaWVuIGRhIGR1b2MgdXUgdGllbiBkYWMgDQpi aWV0LiBDaGFuZyBoYW4gbmh1IGNvbmcgdHkgVG95b3RhIFZpZXRuYW0sIGR1b2MgZGFtIGJhbyBk YXkgZHUgZGllbiBjaG8gc2FuIHh1YXQsIA0KdHV5IHZheSB2YW4gcGhhaSBuZ2hpIG1hdCAyIG5n YXkgZG8gdGhpZXUgbnVvYy4gRGllbiB0aGkgY28gZHUsIG5odW5nIGNhYyBuaGEgbWF5IG51b2Mg DQpsYWkgYmkgbWF0IGRpZW4gbmVuIGtob25nIHRoZSBjdW5nIGNhcCBudW9jIGNobyBraGFjaCBo YW5nLCB2aSB0aGUgbWEgVG95b3RhIHRoaWV1IG51b2MgDQpjaG8gc2FuIHh1YXQuDQoNCk9uZyBZ YXAgY2hvIHJhbmcgcmF0IGtob25nIGxheSBsYW0gaGFpIGxvbmcga2hpIGJpIHRoaWV1IGRpZW4g cGh1YyB2dSBjaG8gc2FuIHh1YXQuIA0KRGlldSBuYXkgY3UgdGllcCBkaWVuIGRhaSBkYWkgc2Ug YW5oIGh1b25nIGRlbiBkYXUgdHUgbnVvYyBuZ29haSB2YW8gVmlldCBOYW0sIHZpIGRpZW4sIA0K bnVvYyBsYSBjbyBzbyBoYSB0YW5nLCBsYSB5ZXUgdG8gZHVvYyB4ZW0geGV0IGRlIHRpbmggZGVu IHN1IG9uIGRpbmggdHJvbmcgc2FuIHh1YXQuDQoNCk5odW5nIHBoYW4gdGljaCBjdWEgbW90IHNv IG5oYSBraW5oIHRlIGxhaSBraGFjLCBobyBjaG8gcmFuZyBraG9uZyBjdSB0aGlldSBkaWVuIGRh aSBkYWksIA0KbWEgY2hpIGNhbiBtYXkgbmdheSBsYSBkYSBhbmggaHVvbmcgbmdheSBkZW4gZGF1 IHR1IG51b2MgbmdvYWkgcm9pLiANCkNoYWMgY2hhbiBuaHVuZyBuaGEgZGF1IHR1IHNlIHhlbSB4 ZXQga3kgY2h1eWVuIG5heSB0cnVvYyBraGkgcXV5ZXQgZGluaCBkYXUgdHUgdmFvIA0KVmlldCBO YW0uIFZhIGR1b25nIG5oaWVuIG5odSB2YXkgY3VuZyBkdW9jIGNvaSBsYSB0aGlldCBoYWksIG5o dW5nIGtob25nIHRoZSB0aW5oIHRvYW4gDQpkdW9jIGJhbmcgY29uIHNvIGN1IHRoZS4gDQoNCmh0 dHA6Ly90dWFudmlldG5hbS5uZXQvMjAxMC0wOC0yMi1uZ2FuaC1kaWVuLXZpZXQtbmFtLWRpLW5n dW9jLWNoaWV1LXRoZS1naW9pIFRhYyBnaWE6IFBoYW0gRHV5IEhpZW4NCg0KVGh1IHR1b25nOiBO Z2FuaCBkaWVuIFZpZXQgTmFtIGRpIG5ndW9jIGNoaWV1IHRoZSBnaW9pICh0cmljaCkNCg0KVmll dCBOYW0gcGhhaSBsYW0gbGFpLCB0dSBkdXkgbGFpIGRlIGhvcCB2b2kgeHUgaHVvbmcgY2h1bmcg Y3VhIHRob2kgZGFpIHZhIHR1IGR1eSB0b2FuIA0KY2F1LiBDaHVuZyB0YSBraG9uZyB0aGUgbW90 IG1pbmggbW90IGtpZXUsIHRoYW0gY2hpIGRpIG5ndW9jIGNoaWV1IHRoZSBnaW9pLiANCg0KS2hp IGNhYyBuaGEgZG9jIHF1eWVuIG5hbmcgbHVvbmcgcmEgZ2lhLi4uDQoNClRhbmcgZ2lhIGRpZW4g bGEgY2h1eWVuIGtobyB0cmFuaCBraG9pIG5odW5nIHBoYWkgeHVhdCBwaGF0IHR1IHR1IGR1eSBj aGllbiBsdW9jIG1vaS4gDQpOZXUgY3UgdHUgZHV5IG8gdGFtIHZpIG1vIG5odSBsYXUgbmF5IHRo aSBuaHVuZyB2YW4gbmFuIHNlIGxpZW4gdHVjIHhheSByYSwgY2h1YSBoZXQgDQpraG9uIGtobyB2 aSBjdXAgZGllbiBkYSB0aGF5IHRhbmcgZ2lhLi4uIFBoYWkgY28gdHUgZHV5IGNoaWVuIGx1b2Mg bW9pIHZpIHRoZSBnaW9pIGRhIHRoYXkgDQpkb2kgdHJ1b2Mga2h1bmcgaG9hbmcgbmFuZyBsdW9u ZyB2YSBiaWVuIGRvaSBraGkgaGF1IHRvYW4gY2F1LCBkYW5nIGRvaSBtYXQgdm9pIG5odW5nIA0K Y3VvYyB4dW5nIGRvdCB2dSB0cmFuZyBkYSBidW5nIHBoYXQgaG9hYyBkYW5nIGFtIHkuIA0KDQpD b24gdHJvbmcgbnVvYywgdGFpIGNhdSB0cnVjIG5lbiBraW5oIHRlIGxhIHlldSBjYXUgY2FwIGJh Y2gsIHNvbmcgY29uIGRlIGRhdCBudW9jIHRpZXAgDQp0dWMgcGhhdCB0cmllbi4gQ29uZyB0aGVt IG5odW5nIGRpZW4gYmllbiBnYW4gZGF5IHRyb25nIGtodSB2dWMsIGtoaSB0YWkgbmd1eWVuIG5h bmcgDQpsdW9uZyBkYW5nIGNhbiBraWV0LCBraGkgbmd1b2kgdGEgZGFuZyBkbyB4byB4YXkgZHVu ZyBoYW5nIGNodWMgZGFwIHRodXkgZGllbiB0cmVuIHNvbmcgDQpNZWtvbmcsIGRhdCBkb25nIGJh bmcgTmFtIEJvIHRydW9jIG5ndXkgY28gdG9uIHZvbmcsIGJhaSB0b2FuIGFuIG5pbmggbmFuZyBs dW9uZyBnaW8gDQpkYXkgZGEgdHJvIHRoYW5oIGFuIG5pbmggcXVvYyBnaWEuIA0KDQpOZ3VvYyBj aGlldSB0aGUgZ2lvaQ0KDQpUcmVuIGJpbmggZGllbiB0aGUgZ2lvaSwgY2h1bmcgdGEgZGFuZyBk b2kgbWF0IHZvaSBraHVuZyBob2FuZyBuYW5nIGx1b25nIHNvbmcgc29uZyANCnZvaSBraHVuZyBo b2FuZyBiaWVuIGRvaSBraGkgaGF1IHRvYW4gY2F1LCBtYSBuZ3V5ZW4gbmhhbiBjdWEgbm8gbGFp IGNoaW5oIGxhIHN1IHBoaSANCnBoYW0gbmFuZyBsdW9uZyB0cm9uZyBoYW5nIHRoZSBreSBxdWEu IERhbmcgdGllYywgaGFpIGN1b2Mga2h1bmcgaG9hbmcgbmF5IGNodWEgaGUgDQphbmggaHVvbmcg ZGVuIHR1IGR1eSB2aSBtbyBjdWEgVmlldCBOYW0gdHJvbmcgY2hpbmggc2FjaCBuYW5nIGx1b25n LiANCg0KSG9uIDIgbmFtIHRydW9jLCB0cm9uZyBkaWVuIHZhbiBuaGFtIGNodWMgZGF1IHRpZW4g ZG9jIHRydW9jIE5naGkgdmllbiBNeSwgVG9uZyANCnRob25nIEJhcmFjayBPYmFtYSBkYSBub2kg Y3VvYyBraHVuZyBob2FuZyBraW5oIHRlIC0gdGFpIGNoaW5oIHRvYW4gY2F1IGtob2kgZGF1IHR1 IA0KbnVvYyBNeSBjbyBuZ3V5ZW4gbmhhbiBzYXUgeGEgbGEgZG8gY2h1bmcgdGEgcGhpIHBoYW0g bmFuZyBsdW9uZy4gVHJvbmcgY2h1b25nIHRyaW5oIA0KdHJhbmggY3UgY3VuZyBuaHUga2UgaG9h Y2ggaGFuaCBkb25nIGN1YSB2aSBUb25nIHRob25nIG5heSwgYmFpIHRvYW4gbmFuZyBsdW9uZyBk dW9jIA0KZGF0IHJhIG5odSB1dSB0aWVuIHNvIG1vdC4gTW90IE5vYmVsIFZhdCBMeSBkdW9jIGNo b24gbGFtIEJvIHRydW9uZyBOYW5nIGx1b25nIGN1bmcgDQp2b2kgbW90IG5nYW4gc2FjaCBsb24g ZGUgdGhheSBkb2kgY28gY2F1IG5hbmcgbHVvbmcsIGRhYyBiaWV0IGxhIGRhdSB0dSB2YW8gbmFu ZyBsdW9uZyANCnRhaSB0YW8gY3VuZyBtb3Qgc28gY2h1IHRydW9uZyBtb2kgbmhhbSBwaGF0IHRy aWVuIGRpZW4gaGF0IG5oYW4gbWEga2hvbmcgdGFvIHRoZW0gDQpuZ3V5IGNvIGxhbiB0cnV5ZW4g dnUga2hpIGhhdCBuaGFuLiANCg0KVHJ1bmcgUXVvYywgbnVvYyBkYW4gZGF1IHRoZSBnaW9pIHZl IHBoYXQgdGhhaSBDTzIgdmEgZHVuZyB0aHUgaGFpIHZlIHN1IGR1bmcgZGllbiANCm5hbmcsIGxh IG1vdCBiYW5nIGNodW5nIG51YS4gTmhhbiByYSBsYW5nIHBoaSBkaWVuIG5hbmcgbGEgbmd1eSBj byBzb25nIGNvbiBkb2kgdm9pIG5lbiANCmtpbmggdGUgcGhhdCB0cmllbiByYXQgbm9uZyBjdWEg bWluaCwgdHJvbmcga2UgaG9hY2ggNSBuYW0gMjAwNiAtIDIwMTAsIFRydW5nIFF1b2MgZGEgDQpk YXQgY2hpIHRpZXUgIG5hbmcgY2FvIGhpZXUgcXVhIHN1IGR1bmcgZGllbiBuYW5nIGxlbiAyMCUs IGRvbmcgbmdoaWEgdm9pIHZpZWMgZ2lhbSBsYW5nIA0KcGhpIGRpZW4gbmFuZyBoYW5nIG5hbSB4 dW9uZyBib3QgNCUsIG1vdCBsdW9uZyBkaWVuIGtob25nIGxvLCBnYXAgZG9pIHRpZXUgdGh1IGhh bmcgDQpuYW0gbyBudW9jIHRhLiANCg0KTyBWaWV0IE5hbSwgZ2FuIGRheSBkYSBub2kgbmhpZXUg ZGVuIGNob25nIGxhbmcgcGhpIGRpZW4sIG5odW5nIGNodSB5ZXUgbGEgbmhhIG51b2MgDQpobyBo YW8gbmd1b2kgZGFuIHRpZXQga2llbSBkaWVuLiBUcm9uZyBraGkgZG8sIGNoaW5oIG5lbiBraW5o IHRlIGxhaSBsYSB0aHUgcGhhbSBsb24gZ2F5IA0KcmEgbGFuZyBwaGkgZGllbi4gDQoNClRhbmcg R0RQIGJhbmcgbW9pIGdpYSBkYSBraGllbiBraGF1IGhpZXUgImRpZW4gZGkgdHJ1b2MgbW90IGJ1 b2MiIGR1b2Mgc3UgZHVuZyBuaHUgDQp0dSB0dW9uZyBjaGkgZGFvIHRyb25nIHF1eSBob2FjaCBk aWVuIG5hbmcuIERlIHRhbmcgR0RQIHRoZW0gMSUsIHBoYW4gbG9uIGNhYyBudW9jIA0KdHJlbiB0 aGUgZ2lvaSBkZXUgZ2l1IHRvYyBkbyB0YW5nIGRpZW4gbmFuZyBraG9uZyBxdWEgMSUsIGNvbiBj aHVuZyB0YSBsYSAyJSwgdGhhbSBjaGkgDQpuaGlldSBob24uIFRpbmggdHJhbmcgbmF5IGtlbyBk YWkgaGFuZyBjaHVjIG5hbSBuYXksIGdpb25nIG5odSBjbyB4ZSBraW5oIHRlIGNvIHRodW5nIA0K eGFuZyB0aHVuZyBkYXkuIA0KDQpOZ2FuaCBkaWVuIHZvaSBtb2kgbG8gcGh1IHRodW9jIG51b2Mg bmdvYWkNCg0KS2hvbmcgZ2lhaSBxdXlldCBkdW9jIGJhaSB0b2FuIG5hbmcgbHVvbmcgdHJlbiB0 YW0gbmhpbiBsb24sIGRhaSBoYW4sIFZpZXQgTmFtIGtob25nIA0KZ2lhaSBxdXlldCBkdW9jIGJh aSB0b2FuIGFuIG5pbmggbmFuZyBsdW9uZywgbmhhdCBsYSBraGkgeWV1IHRvIG51b2MgbmdvYWkg ZGFuZyB0YW5nLg0KDQpIaWVuIG5heSwgcGhhbiBsb24gY2FjIGR1IGFuIG5oYSBtYXkgZGllbiBj aGF5IHRoYW4gY3VhIFZpZXQgTmFtLCBUcnVuZyBRdW9jIHRoYW5nIA0KdGhhdS4gVmllYyB0aGll dSBkaWVuIHZ1YSBxdWEgcGhhbiBsb24gbGEgZG8gY2FjIG5oYSBtYXkgbmF5IGtob25nIGRpIHZh byBob2F0IGRvbmcgDQpkdW5nIHRpZW4gZG8uIE5odSB2YXksIFZpZXQgTmFtIGtob25nIGRhbSBi YW8gZHVvYyBhbiBuaW5oIG5hbmcgbHVvbmcsIHBodSB0aHVvYyANCmJlbiBuZ29haS4NCg0KQ2Fj IG5oYSBtYXkgdGh1eSBkaWVuIGRvYyBzb25nIE1la29uZyBjdW5nIGxhIG1vdCB2YW4gZGUuIE1v dCBsb2F0IGNhYyBkYXAgdGh1eSBkaWVuIA0KZHVvYyBkdW5nIGxlbiBzdW90IGRvYyBzb25nLCB0 cmFpIHF1YSBuaGlldSBxdW9jIGdpYS4gS2hvbmcgZGFuIHhlcCBkdW9jIHZvaSBjYWMgbnVvYywg DQpWaWV0IE5hbSwgbnVvYyBoYSBuZ3VvbiBzZSBsaW5oIGR1IGhhdSBxdWEuDQoNCk1vdCBraGkg a2hvbmcgZ2lhaSBkdW9jIGNhYyBiYWkgdG9hbiBuYXksIGFuIG5pbmggbmFuZyBsdW9uZyBzZSB0 cm8gdGhhbmggYW4gbmluaCBxdW9jIGdpYS4gDQooUGhhbSBEdXkgSGllbikgDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNDAxMjYyOC5hc3B4 IE0uSGEgMDQvMTAvMjAxMCAxOjI2IA0KDQpUaHUgdHVvbmc6IFZvIHF1eSBob2FjaCBkaWVuICAN CiAgDQpLaG9uZyB0aWNoIGR1IG51b2MsIGhhbmcgbG9hdCBuaGEgbWF5IHRodXkgZGllbiBkYW5n IHBoYWkgY2hheSBjYW0gY2h1bmcsIHRpbmggdHJhbmcgDQp0aGlldSBkaWVuIHRpZXAgdHVjIHRh aSBkaWVuIHRyZW4gZGllbiByb25nLiBOZXUgbG9pIHRoaWV1IGRpZW4gY2hpIGRvbiB0aHVhbiBk byB0aG9pIHRpZXQsIA0Kbmd1b2kgZGFuIGhvYW4gdG9hbiBjbyB0aGUgdGhvbmcgY2FtIGNobyBu Z2FuaCBkaWVuLiBOaHVuZyBuZ3V5ZW4gbmhhbiB0aGlldSBkaWVuIGxhaSANCmtob25nIGNoaSB0 YWkgb25nIHRyb2kuIA0KDQpIaWVuIHRodXkgZGllbiBjaGllbSBraG9hbmcgNDAlIGNvbmcgc3Vh dCB0b2FuIGhlIHRob25nLiBTdSB0aGlldSBodXQgY29uZyBzdWF0IHR1IA0KdGh1eSBkaWVuIGRh bmcgbGUgY28gdGhlIGR1b2MgYnUgZGFwIHBoYW4gbmFvIG5ldSBjYWMgbmhhIG1heSBuaGlldCBk aWVuIGR1IGtpZW4gZGkgdmFvIA0KdmFuIGhhbmggdHJvbmcgbmFtIDIwMTAgLSAyMDExIGN1YSBU b25nIHNvIGRvIGRpZW4gVkkgZHVuZyB0aWVuIGRvLCB2YSBjYWMgbmhhIG1heSANCm5oaWV0IGRp ZW4ga2hhYyB2YW4gaGFuaCB0b2kgZGEgY29uZyBzdWF0LiBEYW5nIG5vaSBsYSBraGkgdGh1eSBk aWVuIGRhbmcga2V1IGN1dSwgbmhpZXUgDQpuaGEgbWF5IG5oaWV0IGRpZW4gbGFpIGdhcCBzdSBj byB2YSBoYW5nIGxvYXQgbmhhIG1heSBraGFjIGRhIGtob25nIHZhbyBkdW5nIHRpZW4gZG8uIA0K DQpUcmluaCBiYXkgdGFpIHBoaWVuIGhvcCBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIGhvbSAy LjEwLCBDaHUgbmhpZW0gVXkgYmFuIEtpbmggDQp0ZSBIYSBWYW4gSGllbiBkYSBjaG8gYmlldCwg a2llbSB0cmEgMzUgZHUgYW4gbmd1b24gZGllbiBkYW5nIHRoaSBjb25nIHZhIDE2IGR1IGFuIA0K bmd1b24gZGllbiBjaHVhbiBiaSBraG9pIGNvbmcsIGNoaSBjbyA1IGR1IGFuIGR1bmcgdGllbiBk by4gICANCg0KTG9pIHRoaWV1IG51b2MgbmVuIGh1dCBkaWVuIGNvIHRoZSBkbyBjaG8gb25nIHRy b2ksIG5odW5nIGR1b2MgZ2lhbyB0cmFjaCBuaGllbSBjaGluaCANCnRyb25nIFRvbmcgc28gZG8g VkksIGxlIG5hbyBUYXAgZG9hbiBkaWVuIGx1YyBWaWV0IE5hbSAoRVZOKSBsYWkgInZvIGNhbiIg a2hpIHZpZWMgdm8gDQpxdXkgaG9hY2ggbmF5IGtoaWVuIHRpbmggdHJhbmcgdGhpZXUgZGllbiB0 cm9uZyBuYW0gbmF5IGNhbmcgdHJhbSB0cm9uZyBob24/DQoNClBoYWkgY2hhbmcgdmFuIGRlIGxh LCBuZXUga2hvbmcgZHUgc3VjIGRlIGxhbmggdHJhY2ggbmhpZW0gY2hpbmgsIGRhIGRlbiBsdWMg RVZOIGNhbiANCmJ1b25nIHZpIHRyaSBkb2MgcXV5ZW4gbmFtIGdpdSBsYXUgbmF5PyBMeSBkbyBu Z2FuaCBkaWVuIGRhIGxhdSBraG9uZyB0aGUgdGh1IGh1dCBjYWMgDQpuaGEgZGF1IHR1IG1vaSwg ZHUgbmFuZyBsdWMsIG1vdCBwaGFuIGRvIGNvIGNoZSBnaWEgZGllbiB0aGFwLCBuaHVuZyBwaGFu IGtoYWMgdmkgaG8gc28gDQpyYW5nIHNlIG5hbSBkYW5nIGx1b2kga2hpIGRhdSB0dSB2YW8gbmdh bmggZGllbi4gQm9pIG5oaWV1IG5oYSBkYXUgdHUgZGEgcGhhaSBsZW4gdGllbmcgDQpwaGFuIG5h biB0aW5oIHRyYW5nLCBsdWMgdGhpZXUgZGllbiBFVk4gbmhpZXQgdGluaCBtdWEsIG5odW5nIGx1 YyBkdSBkaWVuIEVWTiBraG9uZyBtdWEgbnVhIGhvYWMgdHJhIHJhdCByZS4gDQoNClRoZW8gbG8g dHJpbmggdG9pIG5hbSAyMDExLCB0aGkgdHJ1b25nIGNhbmggdHJhbmggc2UgYmF0IGRhdSB2YW4g aGFuaC4gTmh1bmcgdGhpIHRydW9uZyANCnNlIGNoaSB0aHVjIHN1IGNhbmggdHJhbmgga2hpIGNh YyBuaGEgZGF1IHR1IGtoYWMgY28gZHVvYyBzdSBjYW4gYmFuZyB2b2kgRVZOIHRyb25nIA0KZGFt IHBoYW4gZ2lhIGRpZW4uIERlIGNvIGR1b2MgZGlldSBuYXksIHZlIGxhdSBkYWksIGNvIGNoZSBn aWEgZGllbiB0aGFwIGNhbiBkdW9jIHRoYW8gDQpnbyB2b2kgc3UgdGluaCB0b2FuIGNhbiBkb2ks IGRhbSBiYW8ga2hvbmcgcXVhIHNvYyB2b2kgbmd1b2kgZGFuIHZhIGhvcCBseSBjaG8gbmdhbmgg DQpkaWVuLiBUdXkgbmhpZW4sIGdpYSBkaWVuIGtob25nIHBoYWkgbGEgbnV0IHRoYXQgbG9uIG5o YXQsIHZhbiBkZSBxdWFuIHRyb25nIGhvbiBsYSBjYWkgdG8gDQpsYWkgdGhpIHRydW9uZyBkaWVu IHRoZW8gaHVvbmcgZ2lhbSBkYW4gdmFpIHRybyBkb2MgcXV5ZW4gY3VhIEVWTiB0cm9uZyBtdWEg YmFuLCBwaGFuIA0KcGhvaSBkaWVuLiAgDQoNClR1b25nIGxhaSBnYW4sIG11YSBraG8gbmFtIDIw MTEgZGUgY28gbmd1eSBjbyB0aGlldSBkaWVuIG5naGllbSB0cm9uZywgYm9pIHRvaSB0aG9pIA0K ZGllbSBuYXksIGhlIHRob25nIGhvIHRodXkgZGllbiB2YW4gY2h1YSB0aWNoIGR1IG51b2MsIHRy b25nIGtoaSBjaHUga3kgbXVhIG11YSBsdSANCnRodW9uZyBzZSBrZXQgdGh1YyB2YW8gdGhhbmcg MTEsIDEyIHRvaS4gQ3VuZyB0aGVvIHRpbmggdG9hbiwgdG9pIG5hbSAyMDEzIC0gMjAxNCBiYWkg Y2EgDQp0aGlldSBkaWVuLCBjYXQgZGllbiB2YW4gc2UgdGFpIGRpZW4sIGJvaSBjdW5nIGNhdSBk aWVuIHZhbiBtYXQgY2FuIGRvaSBuZ2hpZW0gdHJvbmcuIA0KDQpWb2kgdG9jIGRvIHRhbmcgdHJ1 b25nIG5odSBjYXUgdGlldSB0aHUgZGllbiBiaW5oIHF1YW4gbGVuIHRvaSAxNCUgLSAxNSUgbmFt IGhpZW4gbmF5LCANCmRlIHR1IGdpYW0gdGFpIGNobyBtaW5oLCBybyByYW5nIEVWTiBjYW4gbmhp biBuaGFuIGxhaSB2YWkgdHJvIHZhIHNhbiBzZSB0cmFjaCBuaGllbS4NCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQyLzIwMTAxMDExMDAyNTI4LmFzcHggVHJh IFNvbiAgMTEvMTAvMjAxMCAwOjI1IA0KDQpUaHUgdHVvbmc6IERpZW4gdmEgc3Ugdm8gY2FtICAN CiAgDQpEdSBsYSBnaXVhIG11YSBtdWEgbmh1bmcgY2EgbnVvYyB2YW4gZGFuZyB0aGlldSBkaWVu LiBOZ2FuaCBkaWVuIHZhbiAiY2F0IGRpZW4ga2hvbmcgDQpiYW8gdHJ1b2MiIHRodW9uZyB4dXll biB0dSBob24gbW90IHRoYW5nIG5heSBvIGhhdSBraGFwIHRyb25nIE5hbSBuZ29haSBCYWMsIGJh byANCmhpZXUgbW90IG5hbSBub25nIGJ1YyB2YSBjaGFwIGNob24gZGVuIGRhdSBudWEgZGFuaCBj aG8gbmd1b2kgZGFuIGNhIG51b2MuIA0KDQpOaHVuZyBzdSB2byBjYW0ga2hvbmcgcGhhaSBjaGkg byBjaG8gImJvbmcgZHVuZy4uLiBjdXAgZGllbiIgYXkgbWEgY29uIG8gY2hvLCBuaGlldSANCmNh aSBjaGV0IGtob25nIGRhbmcgY28gZGEgeGF5IHJhIG1hIG5ndXllbiBuaGFuIGxhIHR1IHN1IHRh YyB0cmFjaCBjdWEgbmdhbmggZGllbi4gU3UgDQp0aGF0IHRob2F0IGRpZW4gZG8gcm8gcmkgLSBo ZSBxdWEgdGF0IHlldSBjdWEgdmllYyBxdWFuIGx5IGxvbmcgbGVvIGRhIHZhIGRhbmcgZGllbiBy YSBvIA0Ka2hhcCBub2ksIGRhbiBkZW4gbmh1bmcgc3UgY28gZGFuZyB0aWVjLiBDaHV5ZW4geGF5 IHJhIG1vaSBkYXkgbyBtb3QgaHV5ZW4gdnVuZyBjYW8gDQp0cm9uZyB0aW5oIFF1YW5nIE5nYWkg bGEgbW90IHZpIGR1Lg0KDQogU2FuZyBuZ2F5IDguMTAsIG9uZyBQaGFtIFZhbiBWYW4gbyB0aG9u IE1hbmcgQmlldSwgeGEgQmEgVGlldSwgaHV5ZW4gQmEgVG8gbHVhIA0KZGFuIHRyYXUgcmEgZG9u ZyBuaHUgbW9pIGhvbS4gVnVhIGRlbiBjaGFuIGNvdCBkaWVuIHRyZW4gZG9uZywgY2EgNCBjb24g dHJhdSBib25nIGR1bmcgDQpxdXkgbmdhLCByb2kgbGFuIGR1bmcgcmEgZ2lheSBnaXVhIGNoZXQu IFRydW9jIGRvIG1vdCBuZ2F5LCBkYW4gdHJhdSBjdWEgYmEgUGhhbSBUaGkgDQpEb2ksIG5ndW9p IGN1bmcgbGFuZywgY3VuZyBjaGV0IDEgY29uIG5nYXkgZHVvaSBjaGFuIGNvdCBkaWVuIG5vaSB0 cmVuLiBCYSBEb2kgbmdoaSBuZ28gDQp0cmF1IG1pbmggYmkgZGllbiBnaWF0IG5lbiBiYW8gdm9p IERpZW4gbHVjIEJhIFRvIGRlIGtpZW0gdHJhIG5odW5nIG5oYW4gdmllbiBkaWVuIGx1YyANCm8g ZGF5IGJhbyByYW5nIHRyYXUgYmEgRG9pIGNoZXQgbGEgZG8gYW4gcGhhaSBjaGF0IGRvYyBuZW4g a2hvbmcga2llbSB0cmEgbmd1b24gZGllbiwgZGFuIA0KZGVuIDQgY29uIHRyYXUgbmhhIG9uZyBW YW4gdGllcCB0dWMgYmkgZ2lhdCBjaGV0IGhvbSBzYXUuIA0KDQpDaGkgZGVuIGtoaSBjb25nIGFu IHZhbyBjdW9jIHRoaSBuZ2FuaCBkaWVuIG1vaS4uLiAoZ2lhdCBtaW5oKSBkaSBraWVtIHRyYSBz dSBjby4gRHVuZyB5IA0KY2hhbmcsIDUgY29uIHRyYXUgY2hldCBsYSBkbyBkaWVuIGdpYXQuIE1v dCBkb2FuIGRheSBkaWVuIGR1b2kgY2hhbiB0cmFtIGhhIHRoZSBkYSBib25nIA0KdHJvYyBkYW4g ZGVuIHJvIHJpIGRpZW4uIERhbmcgbGEgbXVhIG11YSwgY2FuaCBkb25nIE1hbmcgQmlldSBkYXkg bnVvYywgbGFpIGR1b2MgZGF5IA0KZGllbiBybyByaSAidGllcCBzdWMiLCB2byB0aW5oIHRybyB0 aGFuaCBjYWkgYmF5IGNobyBjYSB0cmF1IGxhbiBuZ3VvaS4NCg0KQ2hhYyBuaGlldSBuZ3VvaSBj b24gbmhvLCBiYSBuZ3VvaSBwaHUgbnUgYmkgZGllbiBnaWF0IGNoZXQgbyBIYSBOb2kgdmFvIGRh dSBtdWEgbXVhIA0KbmFtIG5heTsgcm9pIGhhaSBuZ3VvaSBkYW4gb25nIG8gVnVuZyBUYXUgY3Vu ZyBiaSBjaGV0IHR1b25nIHR1OyBtb2kgZGF5IG1vdCB0aGFuaCANCm5pZW4gbyBRdWFuZyBOZ2Fp IGRpIGNoYW4gdml0IHRyZW4gZG9uZyBjdW5nIGJpIGRpZW4gZ2lhdCBjaGV0IGRvIGRheSBkaWVu IGJpIGR1dCByb2kgDQp4dW9uZyBudW9jIG1hIGFuaCB0YSBraG9uZyBoYXkuLi4NCg0KVGF0IGNh IG5odW5nIGNhaSBjaGV0IGF5LCBuZXUgbmh1IG5nYW5oIGRpZW4gY28gdHJhY2ggbmhpZW0gdm9p IGNvbmcgdmllYyBjdWEgbWluaCBob24gDQp0aGkgc2Uga2hvbmcgeGF5IHJhLiBEYW8gZHVvbmcg bGVuLCBkYXkgZGllbiBibyBuZ29uIG5nYW5nIG1hdCBwaG8sIGNoaSBjYW4gbW90IGNvbiANCm11 YSBsb24gY29uZyB2b2kgc3UgdGhpZXUgdHJhY2ggbmhpZW0gY3VhIG5nYW5oIGRpZW4gbGEgZGFu IGRlbiBjYWkgY2hldDsgbW90IGR1b25nIA0KZGllbiBiYWMgbmdhbmcgcXVhIGNhbmggZG9uZyBi YW5nIG5odW5nIGNheSBjb2MgbXVjLCBtdWEgbmFuZyB0aGkga2hvbmcgdmFuIGRlIGdpLCANCm5o dW5nIGtoaSBtdWEgeHVvbmcgbGEgdGhhbmggY2FpIGJheS4gDQoNClRhdCBjYSBuaHVuZyBjYWkg Y2hldCB2dWEgZGFuLCBjbyBxdWFuIGRpZXUgdHJhIGtob25nIHF1YSBuaG9jIGNvbmcgZGUgdGlt IHJhIG5ndXllbiANCm5oYW4sIG5odW5nIGNvIG1vdCBuZ3V5ZW4gbmhhbiBraG9uZyBjbyB0cm9u ZyBjYWMgZGlldSBraG9hbiBjdWEgQm8gbHVhdCBIaW5oIHN1LCBkbyANCmxhIHN1IHZvIGNhbS4g DQoNCmh0dHA6Ly93d3cudmlldGxpbmguY29tLnZuL2RiYXNlL1ZMVFRTaG93Q29udGVudC5hc3A/ SUQ9MTA5MTMgSG9pIE5vbmcgRGFuIFZOLCAyOC8wNi8yMDEwIA0KDQpUaHUgdHVvbmc6IEhvIG51 b2kgdG9tIGRvaSBkaWVuIGx1YyBib2kgdGh1b25nIA0KDQpUcnVvYyB0aW5oIHRyYW5nIGNhdCBk aWVuIHZvIHRvaSB2YSwgYW5oIGh1b25nIG5naGllbSB0cm9uZyBkZW4gc2FuIHh1YXQgdmEgZG9p IHNvbmcgY3VhIA0Kbmd1b2kgZGFuLCBtb3Qgc28gaG8gZGFuIHRhaSBtaWVuIFRydW5nIGRhIGxh bSBkb24gZG9pIG5nYW5oIGRpZW4gYm9pIHRodW9uZyB0aGlldCBoYWkuIA0KDQpIZXQgZHVvbmcg bXV1IHNpbmggDQoNClZ1YSBxdWEsIDEyIGhvIG5vbmcgZGFuIGRhaSBkaWVuIGNobyBuaHVuZyBo byBudW9pIHRvbSB0YWkgeGEgSG9hIExpZW4gKGh1eWVuIEhvYSANClZhbmcsIERhIE5hbmcpIGRh IGRvbmcgbG9hdCBjbyBkb24geWV1IGNhdSBDb25nIHR5IFROSEggTVRWIERpZW4gbHVjIERhIE5h bmcgDQpwaGFpIGNoaXUgdHJhY2ggbmhpZW0gYm9pIHRodW9uZyB2ZSBuaHVuZyB0aGlldCBoYWkg ZG8gdmllYyBjdXAgZGllbiBnYXkgcmEuIA0KDQpUaGVvIG9uZyBEbyBUcnVjIC0gQ2h1IHRpY2gg SG9pIE5vbmcgZGFuIHhhIEhvYSBMaWVuLCBuZ3VvaSBkdW5nIHRlbiB0cm9uZyBkb24sIGRpYSAN CnBodW9uZyBvbmcgbGEgdnVuZyBzYW4geHVhdCBub25nIG5naGllcCBkdWEgdmFvIG51b2MgdHJv aSBuZW4gc2FuIHh1YXQgcmF0IGJhcCBiZW5oLiANCk5oaWV1IG5vbmcgZGFuIGRhIHZheSB2b24g ZGUgY2FpIHRhbyBtYXQgYmFuZywga2VvIGRpZW4sIHhheSBkdW5nIGFvIG51b2kgdG9tIHRoYW0g DQpjYW5oIG5oYW0geG9hIGRvaSBnaWFtIG5naGVvLiANCg0KVGhvaSBnaWFuIHF1YSwgdmllYyBj dXAgZGllbiBsdWFuIHBoaWVuIGRhIGdheSByYSB0aW5oIHRyYW5nIGNhYyBkaWEgdG9tIGJpIHRo aWV1IG94eSAoZG8gDQptYXkgc3VjIGtoaSBraG9uZyBjaGF5IGR1b2MpIHZhIHRvbSBjaGV0IGhh bmcgbG9hdC4gSHV5ZW4gSG9hIFZhbmcgY28gMjIgaGEgbnVvaSANCnRvbSBzdSB2YSB0b20gY2hh biB0cmFuZy4gVHJ1b2MgZGF5LCBuYW5nIHN1YXQgdGhhcCBuaGF0IGN1bmcgZGF0IDIsNSB0YW4v aGEgZG9pIHZvaSB0b20gDQpzdSB2YSA0IHRhbi9oYSBkb2kgdm9pIHRvbSBjaGFuIHRyYW5nLiBO aHVuZyBuYXksIGRvIGN1cCBkaWVuLCB0b20gY2hldCwgbmFuZyBzdWF0IGNoaSANCmNvbiAxIHRh bi9oYSBkb2kgdm9pIHRvbSBzdSB2YSAyIHRhbi9oYSBkb2kgdm9pIHRvbSBjaGFuIHRyYW5nLCB0 aGlldCBoYWkgaG9uIG1vdCBudWEuIA0KDQpUcm9uZyBkb24sIGNhYyBjaHUgaG8gYmkgdG9tIGNo ZXQgaGFuZyBsb2F0IG5odSBvbmcgSG8gVmFuIEhhaSwgSG8gVmFuIEhvLCBEbyANClRydWMuLi4g ZGV1IGtpZW4gcXV5ZXQgcXV5IHRyYWNoIG5oaWVtIGNobyBkb24gdmkgZGllbiBsdWMgZG9pIHZv aSBuaHVuZyB0aGlldCBoYWkgbWEgaG8gDQpkYW5nIHBoYWkgZ2FuaCBjaGl1LiAiRHUgbmdoZW8g a2hvIG5odW5nIGNodW5nIHRvaSB2YW4gY2hhcCBuaGFuIG5vIG5hbiBkZSB2YXkgbXVvbiANCnRp ZW4ga2VvIGRpZW4gMyBwaGEgcmEgVHJ1b25nIERpbmggbnVvaSB0b20sIG1vbmcgY2FpIHRoaWVu IGN1b2Mgc29uZy4gVmF5IG1hIGNoaW5oIA0KbmdhbmggZGllbiBsYWkgZGlldCBtYXQgZHVvbmcg bXV1IHNpbmggY3VhIGNodW5nIHRvaS4gS2hvbmcgdGhlIGNoYXAgbmhhbiBkdW9jIiAtIG9uZyAN ClRydWMgYnVjIHh1Yy4gQmEgVHJhbiBUaGkgS2ltIC0gUGhvIENodSB0aWNoIFVCTkQgeGEgSG9h IExpZW4sIHBoYXQgYmlldSBkb25nIHRpbmggDQp2b2kgdmllYyAibGFtIGNobyByYSBuaGUiIGN1 YSBjYWMgaG8gbnVvaSB0b20uIA0KDQpUaGlldCBkb24gdGhpZXQga2VwIA0KDQpPbmcgTmd1eWVu IFh1YW4gSGFpIC0gR2lhbSBkb2MgQ29uZyB0eSBjbyBwaGFuIFh1YXQgbmhhcCBraGF1IHRodXkg c2FuIEN1dSBMb25nIA0KKHBodW9uZyBNeSBRdXksIExvbmcgWHV5ZW4sIEFuIEdpYW5nKSBjaG8g YmlldCwgdGluaCB0cmFuZyBjYXQgZGllbiBsaWVuIG1pZW4gbGFtIA0Kbmh1bmcgY29uZyB0eSBj aHV5ZW4gbmdhbmggdGh1eSBzYW4gdGhpZXQgaGFpIHZvIGN1bmcgbmFuZyBuZS4gDQoNClRoZW8g b25nIEhhaSwgY29uZyB0eSBvbmcgcGhhaSBsYXAgZGF0IGhlIHRob25nIHBoYXQgZGllbiBkdSBw aG9uZyB0cmkgZ2lhIGhvbiA2IHR5IGRvbmcuIA0KVm9pIGNvbmcgc3VhdCA4MCB0YW4gY2EgdHJh LCBjYSBiYXNhIHRoYW5oIHBoYW0gbW9pIG5nYXksIGNoaSBtb3QgaGUgdGhvbmcgcGhhdCBkaWVu IG5heSANCmNvbmcgdHkgZGEgY2hpIHBoaSBob24gMTAgdHJpZXUgZG9uZyB0aWVuIG5oaWVuIGxp ZXUsIHR1YyBjYW8gaG9uIGdhcCBkb2kgc28gdm9pIGNoaSBwaGkgDQpkdW5nIGRpZW4gbHVvaS4g Q2hpIHBoaSB2YW4gaGFuaCBjYW8gbGEgdmF5IG5odW5nIGNoYXkgaGV0IGNvbmcgc3VhdCwgaGUg dGhvbmcgZHUgcGhvbmcgDQpjdW5nIGNoaSBjdW5nIGNhcCB0b2kgZGEgNzAlIG5hbmcgbHVvbmcg Y2FuIHRoaWV0LCBkbyBkbyBjaGkgY28gdGhlIHNhbiB4dWF0IGNhbSBjaHVuZy4gDQoNCmh0dHA6 Ly93d3cuYmFuZ2RpZW4udm4vaW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ0YXNrPXZpZXcm aWQ9NjM5MjYmSXRlbWlkPTE2NiBZIE5odW5nIFZuRWNvbm9teSAwNy8wNy8yMDEwLCAxNTozNSAo R01UKzcpICANCg0KVGh1IHR1b25nOiBOZ2FuaCBkZXQgbWF5ICJ0aGlldCIgMzAwIHRyaWV1IFVT RCBkbyB0aGlldSBkaWVuIA0KDQpQaGF0IGJpZXUgdGFpIGhvaSBuZ2hpIHNvIGtldCBzYXUgdGhh bmcgZGF1IG5hbSAyMDEwLCBUb25nIGdpYW0gZG9jIFRhcCBkb2FuIERldCBtYXkgDQpWaWV0IE5h bSBjaG8gYmlldCwgdmllYyBsaWVuIHR1YyBiaSBjYXQgZGllbiwgdGhhbSBjaGkgY2F0IGtob25n IGJhbyB0cnVvYyBkYSBraGllbiBjYWMgDQpkb2FuaCBuZ2hpZXAgdHJvbmcgbmdhbmggcmF0IGJp IGRvbmcuIERlIGRhbSBiYW8gdGllbiBkbyBnaWFvIGhhbmcsIGNhYyBkb24gdmkgbmF5IA0KYnVv YyBwaGFpIHNhbiB4dWF0IHZhbyBjYSBkZW0uDQoNClRyb25nIGtoaSBkbywgInZpZWMgc2FuIHh1 YXQgdmFvIGNhIGRlbSBraG9uZyBjaGkga2hpZW4gY29uZyBuaGFuIG1ldCBtb2ksIGJvIHZpZWMg bWEgDQpjb24gbGFtIGNobyBjYWMgY2hpIHBoaSB0YW5nIHRoZW0ga2hvYW5nIGJvbiBsYW4gc28g dm9pIHRob2kgZ2lhbiBzYW4geHVhdCBiaW5oIHRodW9uZyIsIA0Kb25nIEdpYW5nIG5vaS4gDQoN CkRvaSB2b2kgZG9hbmggbmdoaWVwIGRldCB2YSBuaHVvbSwgc2FuIHh1YXQgYnVvYyBwaGFpIHRo dWMgaGllbiAyNC8yNGgsIHZpZWMgYmkgY2F0IGRpZW4gDQpraG9uZyBiYW8gdHJ1b2MgY3VuZyBk YSBraGllbiBraG9uZyBpdCBtZSBuaHVvbSB2b2kgaGFuZyBjaHVjIHRhbiB2YWkgdmEgdGh1b2Mg bmh1b20gDQpidW9jIHBoYWkgYm8gZGkgZG8ga2hvbmcgdGhlIHN1IGR1bmcuIA0KDQpUaGVtIG51 YSwga2hpIGRvaSB0YWMgdG9pIGtpZW0gdHJhIHRpbmggaGluaCBzYW4geHVhdCB0YWkgY2FjIG5o YSBtYXkgY2hpIGNhbiBiaWV0IGNvbmcgDQpuaGFuIHBoYWkgbGFtIHZpZWMgMi0zIGNodSBuaGF0 L3RoYW5nLCBsYXAgdHVjIHNlIGNhdCBob3AgZG9uZyB2aSBjaG8gcmFuZyBjYWMgZG9hbmggDQpu Z2hpZXAgVmlldCBOYW0gZGEgdmkgcGhhbSBuZ2hpZW0gdHJvbmcgTHVhdCBMYW8gZG9uZy4NCg0K aHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMS0yMi1kYXQtbmhhLW1heS1r aGFpLXRoYWMtYm94aXQtdmVuLWJpZW4taGlldS1xdWEtY2FvLWhvbiBUYWMgZ2lhOiBMZSBOaHVu Zw0KDQpEYWkgYmlldSBWbyBIb25nIFBodWMgKEJvIHRydW9uZyBCbyBLSCZEVCkgY2hvIGhheSwg aGllbiBjYWMgZHUgYW4gbmhpZXQgZGllbiBkZXUgY28gDQp2YW4gZGUsIGRldSB0cnVjIHRyYWMg dmEgY2hhbSB0aWVuIGRvLiBOZ3V5ZW4gbmhhbiBkbyBuYW5nIGx1YyBjaHUgZGF1IHR1LCBxdWEg dHJpbmggZGF1IA0KdGhhdSBraG9uZyBjaG9uIGR1b2MgbmhhIHRoYXUgdG90IG5oYXQuIENoYW5n IG5odW5nIGNvbmcgbmdoZSBrZW0gbWEgZ2lhIGNodWEgcGhhaSBtdWMgcmUgbmhhdC4NCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQ3LzIwMTAxMTE3MTA0MjMz LmFzcHggQmFvIENhbSAxNy8xMS8yMDEwIDEwOjQyIA0KDQpUaHUgdHVvbmc6IER1IGFuIG5oYSBt YXkgZGllbiBjaGFtIHRpZW4gZG8sIGFpIGNoaXUgdHJhY2ggbmhpZW0/ICANCiAgDQooVE5PKSBE YXkgbGEgY2F1IGhvaSBjaHVuZyBjdWEgbmhpZXUgZGFpIGJpZXUgUXVvYyBob2kgKERCUUgpIGto aSBjaGF0IHZhbiBjYWMgdGhhbmggDQp2aWVuIENoaW5oIHBodSwgY2FjIGJvIHRydW9uZyB0cm9u ZyBuaHVuZyBuZ2F5IHRvaSwgdmUgdGluaCB0cmFuZyB0aGlldSBkaWVuIG5nYXkgbW90IA0KdGFu ZywgZ2F5IGJ1YyB4dWMgY2hvIG5ndW9pIGRhbiB2YSBkb2FuaCBuZ2hpZXAuIA0KDQpUcm9uZyBz byBob24gMTg1IGNoYXQgdmFuIGN1YSBjYWMgREJRSCB0YWkga3kgaG9wIG5heSwgY28gdG9pIDE3 IGNhdSBjaGF0IHZhbiB2ZSBub2kgDQpkdW5nIHRoaWV1IGRpZW4sIHF1eSBob2FjaCBuZ2FuaCBk aWVuLCB0cmFjaCBuaGllbSBkZSB4YXkgcmEgdGhpZXUgZGllbiwgZ2lhaSBwaGFwPw0KDQpCYW8g Z2lvIGNvIHRoaSB0cnVvbmcgZGllbiBjYW5oIHRyYW5oPw0KDQpEQiBIdXluaCBWYW4gVGllcCAo Q2FuIFRobykgY2hhdCB2YW4gQm8gdHJ1b25nIENvbmcgdGh1b25nIFZ1IEh1eSBIb2FuZzogDQoi Tmd1eWVuIG5oYW4gY2FjIGR1IGFuIHhheSBkdW5nIGNhYyBuaGEgbWF5IGRpZW4gY2hhbSB0aWVu IGRvIC0gdHJhY2ggbmhpZW0gdGh1b2MgdmUgDQphaT8gQm8gZGEgY28gdGhhbSBtdXUgZ2kgZGUg a2hhYyBwaHVjIHN1IGNoYW0gdGllbiBkbz8gTmFtIDIwMTAgdGluaCB0cmFuZyBjdXAgZGllbiAN CnRodW9uZyB4dXllbiwgQm8gY28gZ2lhaSBwaGFwIGdpIGNobyBuYW0gMjAxMT8iLg0KDQpEYXkg Y3VuZyBsYSBjYXUgaG9pIG1hIERCIEh1eW5oIE5naGlhIChEYSBOYW5nKSBkYXQgcmEgdm9pIEJv IHRydW9uZyBWdSBIdXkgDQpIb2FuZzogVGhvaSBnaWFuIHF1YSB0aGlldSBkaWVuIG5naGllbSB0 cm9uZywgZGFuIGRlbiBjdXAgZGllbiBsaWVuIG1pZW4sIGFuaCBodW9uZyByYXQgDQpsb24gZGVu IHNhbiB4dWF0LCBraW5oIGRvYW5oIHZhIHNpbmggaG9hdCBjdWEgbmhhbiBkYW4uIFRoaWV0IGhh aSBkbyBsYSByYXQgbG9uLiBEb2kgdm9pIA0KY2FjIGR1IGFuIHhheSBkdW5nIG5oYSBtYXkgZGll biBjaGFtIHRpZW4gZG8gdGhpIGFpIGNoaXUgdHJhY2ggbmhpZW0/DQoNCkN1bmcgY2hhdCB2YW4g dmUgdGhpZXUgZGllbiwgREIgUGhhbiBUaGkgVGh1IEhhIChEb25nIFRoYXApIGRlIGNhcCBkZW4g a2hpYSBjYW5oIA0Ka2hhYyBiYW5nIHZpZWMgImRlIG5naGkgQm8gdHJ1b25nIENvbmcgdGh1b25n IGxhbSBybyB2aSBzYW8gVG9uZyBjb25nIHR5IERpZW4gbHVjIA0Ka2hvbmcgY28gZ2lhaSBwaGFw IHRpY2ggY3VjIGRlIGNhaSB0aWVuIGN1bmcgdW5nIGRpZW4sIGRlIHRpbmggdHJhbmcgY3VwIGRp ZW4gbmFtIDIwMTAgDQp0cmFtIHRyb25nIGhvbiBuYW0gMjAwOSIuIERvbmcgdGhvaSwgY2hhdCB2 YW4gInZpIHNhbyBuZ2FuaCBkaWVuICJ0aGlldSB2b24iIG5odW5nIA0KVG9uZyBjb25nIHR5IERp ZW4gbHVjIGxhaSBkdW5nIHZvbiBkYXUgdHUgdmFvIGNodW5nIGtob2FuLCBiYXQgZG9uZyBzYW4g bWEga2hvbmcgdGFwIA0KdHJ1bmcgZGF1IHR1IHBoYXQgdHJpZW4gbmdhbmggbWluaD8gVGhlbyBC byB0cnVvbmcsIGJhbyBnaW8gbmdhbmggZGllbiB0aHVjIGhpZW4gZHVvYyBjbyBjaGUgY2FuaCB0 cmFuaD8iLg0KDQpodHRwOi8vd3d3Lm5ndW9pZGFpYmlldS52bi9UcmFuZ2NodS9WTi90YWJpZC82 Ni9DYXRJRC8zL0NvbnRlbnRJRC8xMDAxNjMvRGVmYXVsdC5hc3B4IDIwLzAzLzIwMTAgTWFpIEhh DQoNClRodSB0dW9uZzogRHUgYW4gbmhpZXQgZGllbiBjaGFtIHRpZW4gZG8gLSBSbyBuZ3V5ZW4g bmhhbiwgdGhpZXUgZ2lhaSBwaGFwDQoNClRob25nIGtlIGNobyBiaWV0IDEwMCUgY2FjIGR1IGFu IG5oaWV0IGRpZW4gY2hheSB0aGFuIHR1IHRydW9jIGRlbiBuYXkgZGV1IGNoYW0gdGllbiANCmRv LCBjbyBuaGEgbWF5IGNoYW0gdGllbiBkbyAzLTQgbmFtIGhvYWMgbGllbiB0dWMgZ2FwIHN1IGNv IGtoaWVuIGNvbmcgc3VhdCBraG9uZyBkdW9jIG5odSBkdSBraWVuLiANCg0KaHR0cDovL3d3dy52 aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNi9QaG8tVGh1LXR1b25nLUtob25nLXRoZS1raG9u Zy1sYW0tZHVvbmctc2F0LWNhby10b2MtOTE1Njk1LyBMZSBOaHVuZyAxMjo1NiwgMTIvMDYvMjAx MCAoR01UKzcpDQoNClRodSB0dW9uZzogVHJhY2ggbmhpZW0gdGhpZXUgZGllbiBsYSBvIENoaW5o IHBodSEgRVZOIGNvIHRyYWNoIG5oaWVtIGRpZXUgcGhvaSEgDQoNCi0NCmh0dHA6Ly9ib3hpdHZu LmJsb2dzcG90LmNvbS8yMDEwLzA3L3RodS10dW9uZy1uZ3V5ZW4tdGFuLWR1bmctaHVhLW5odW5n XzE1Lmh0bWwgMTUvMDcvMjAxMA0KDQoiVEhVIFRVT05HIE5HVVlFTiBUQU4gRFVORyBIVUEgTkhV TkcgVEhBVCBIVUEsIEtIT05HIE5HSEUsIEtIT05HIEJJRVQsIFZBIENVTkcgS0hPTkcgVFUgQ0hV QyIgDQoNCihCdWMgdGFtIHRodSBndWkgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyB2YSAxNCB2 aSBCbyBDaGluaCB0cmkgZHVuZyBkYXUgbGEgVG9uZyBiaSANCnRodSBOb25nIER1YyBNYW5oIHZh IENodSB0aWNoIFF1b2MgaG9pIE5ndXllbiBQaHUgVHJvbmcpDQoNCkxhbyB0aGFuaCBjYWNoIG1h bmcgTmd1eWVuIFZhbiBCZQ0KDQpMb2kgZ2lvaSB0aGlldTogQ3UgTmd1eWVuIFZhbiBCZSBvIE5o YSBUcmFuZyB2dWEgZ3VpIGRlbiBCVk4gbGEgdGh1IGR1b2kgZGF5LCBraGFuIA0KdGhpZXQgeGlu IGRhbmcuIERvYyBub2kgZHVuZywgbmhhbiB0aGF5IGRheSBsYSBuaHVuZyB2YW4gZGUgdGhvaSBz dSBub25nIGhvaSB2YSBidWMgdGhpZXQgDQpjdWEgZGF0IG51b2MsIHNhdSBraGkgY2FuIG5oYWMg Y2h1bmcgdG9pIHhpbiB0cmFuIHRyb25nIGRhbmcgbGVuIGRlIGRhcCB1bmcgdGFtIG5ndXllbiAN Cm1vdCB2aSBsYW8gdGhhbmggY2FjaCBtYW5nIG5hbSBuYXkgODcgdHVvaSBtYSBjYSBudW9jIGRl dSBiaWV0IHRpZW5nLCB2YSBraG9uZyBkYW0gDQp0aGVtIG5odW5nIGxvaSBiaW5oIGNvIHRoZSBs YW0gc2FpIGxhYyB5IHR1b25nIGN1YSB0YWMgZ2lhLCBib2kgbmh1bmcgeSB0dW9uZyBuYXkga2hv bmcgdGh1b2MgYmFuIHF1eWVuIGN1YSBCVk4uDQoNCkJhdXhpdGUgVmlldCBOYW0NCg0KMS8uIExv aSBodWEgImtpZW4gcXV5ZXQgdmEgcXV5ZXQgbGlldCIgbmh1bmcgbGFpLi4uIGtob25nIHRodWMg aGllbg0KDQpUaGFuZyAxMC8yMDA2LCBvbmcgTmd1eWVuIFRhbiBEdW5nIG5oYW0gY2h1YyBUaHUg dHVvbmcgdGhheSBvbmcgUGhhbiBWYW4gS2hhaSANCnZlIGh1dSwgdHV5ZW4gYm86ICJUb2kga2ll biBxdXlldCB2YSBxdXlldCBsaWV0IGNob25nIHRoYW0gbmh1bmcuIE5ldSB0b2kga2hvbmcgY2hv bmcgDQpkdW9jIHRoYW0gbmh1bmcsIHRvaSB4aW4gdHUgY2h1YyBuZ2F5Ii4gDQoNCkdhbiA1IG5h bSBuYXksIG5hbiB0aGFtIG5odW5nIGNoYW5nIG5odW5nIGtob25nIGNob25nIGR1b2MgbWEgbmdh eSBjYW5nIHBoYXQgDQp0cmllbiwgdHUgY2FjIGNvIHF1YW4gVHJ1bmcgdW9uZyB4dW9uZyB0YW4g eGEsIHBodW9uZywgdGhvbiBhcC4gRGllbiBoaW5oIHRoZW8gVXkgYmFuIA0KS2llbSB0cmEgVHJ1 bmcgdW9uZyB2dWEgbW9pIGtldCBsdWFuLCB0YW0geHUgbHkgNDUgdHJ1b25nIGhvcCBub2kgY29t IGtoYXAgdG9hbiBxdW9jIA0Ka2hpZW4gZHUgbHVhbiB4YSBob2kgcmF0IGJhdCBiaW5oLiBUb2kg dGh1IHRob25nIGtlIHRoZW8gdGhvbmcgYmFvIG5heSB0aGkgdGhheSBjbyAxMiB0aW5oLCANCnRo YW5oIHBobyB0cnVjIHRodW9jIFRydW5nIHVvbmcsIDQgVGFwIGRvYW4gY29uZyB0eSB0cnVjIHRo dW9jIENoaW5oIHBodSBxdWFuIGx5LCBkb2kgDQp0dW9uZyB0b2FuIGxhIEJpIHRodSwgUGhvIGJp IHRodSwgVGh1b25nIHZ1IFRpbmggdXksIEJpIHRodSBCYW4gY2FuIHN1LCBDaHUgdGljaCwgUGhv IA0KY2h1IHRpY2ggVUJORCB0aW5oLCBsYW5oIGRhbyBUYXAgZG9hbiB0dSBCaSB0aHUgRGFuZyB1 eSwgQ2h1IHRpY2ggSERRVCwgVG9uZyB2YSBQaG8gDQp0b25nIGdpYW0gZG9jLiBEYXkgbGEgbmh1 bmcgdnUgdmllYyBkb25nIHRyb2kgY28gbmd1eSBjbyBsYW0gbWF0IGhldCB1eSB0aW4gY3VhIERh bmcgDQp2YSBOaGEgbnVvYyB0YS4gVGhhdCBraGllbiBjaG8gbmh1bmcgZGFuZyB2aWVuIHN1b3Qg ZG9pIGRpIHRoZW8gRGFuZyBuaHUgdG9pIG5obyBtYXUgdHJvbmcgdGltLg0KDQpSaWVuZyB0cnVv bmcgaG9wIGNodWEgdHVuZyB4YXkgcmEgdHJvbmcgRGFuZyB2YSBOaGEgbnVvYyB0dSBraGkgdGhh bmggbGFwIERhbmcgdmEgDQpjaGluaCBxdXllbiBkZW4gbmF5ICg2NSBuYW0pIGxhIHZpZWMgb25n IFBobyBiaSB0aHUgVGluaCB1eSwgQmkgdGh1IEJhbiBjYW4gc3UsIENodSANCnRpY2ggVUJORCB0 aW5oIEhhIEdpYW5nIHN1b3QgbWF5IG5hbSBsaWVuIHR1YyB4YW0gaGFpIHRpbmggZHVjIGNhYyBl bSBiZSBob2Mgc2luaCANCmRhbmcgYmFjIGNvbiwgY2hhdSBjdWEgbWluaCwgbGEgaGFuaCBkb25n IGRhIG1hbiB0aHVhIGNhIGxvYWkgY2FtIHRodSwgbGFpIGNvbiB0byBjaHVjIA0KZGFtIGR1YyB0 YXAgdGhlLCBtb24gdHJvbiBjdW9pIGR1YSB0cmVuIHRoYW4geGFjIGN1YSB0cmUgdGhvLCBjaHVw IGFuaCB0b2FuIHRoYW4gbG9hIGxvIGR1IA0KbW9pIGRvbmcgdGFjLiBPbmcgQmkgdGh1IFRpbmgg dXkgdmEgR2lhbSBkb2MgU28gQ29uZyBhbiB0aW5oIEhhIEdpYW5nIGRhIG5oYW4gbmhpZXUgDQpk b24gdG8gY2FvLCBwaGFuIGFuaCBuaHVuZyBjdW5nIGRvbmcgdGluaCBkZSBjaG8gb25nIENodSB0 aWNoIGN1IGxpZW4gdHVjIHR1bmcgaG9hbmguIA0KVGhlIG1hIHRoYXQgbGEsIFVCS1RUVyBjaGkg ZGUgbmdoaSBjYWNoIGNhYyBjaHVjIHZ1IHRyb25nIERhbmcgdmEgY2hpbmggcXV5ZW4gY3VhIA0K b25nIHRhIHRob2kuIFRhaSBzYW8ga2hvbmcga2hhaSB0cnUgdGVuIGRvIHJhIGtob2kgRGFuZyBu Z2F5PyBUYWkgc2FvIGtob25nIGJvIHR1IG5vIA0KbmdheSBkaSAoVmkgcGhhbSBsdWF0IGhpbmgg c3UgaGllcCBkYW0gdHJlIGNodWEgZGVuIHR1b2kgdmkgdGhhbmggbmllbiBraWEgbWE/KS4gVGlu aCANCnRyYW5nIG8gdGhvbiB4YSB0aGkgdHUgQmkgdGh1LCBDaHUgdGljaCwgY2FuIGJvIHhhIHZh IHRob24gbGF5IHRpZW4gaG8gdHJvIGN1YSBOaGEgbnVvYyBjaG8gDQpuZ3VvaSBuZ2hlbyBjaGlh IG5oYXUgYW4gbmhhdSBoYXUgbmh1IHNvIGRhdSBjdW5nIHRoYXkgdHJvbmcga2hpIGRhbiBjaHVu ZyBraGFwIG5vaSBraG9uIHF1YW4sIGtpZW0gY2FpIGFuIGtob25nIHJhLiANCg0KTmh1bmcgYmFu ZyBjaHVuZyBuaHUgdGhlIHJvIHJhbmcga2hhbmcgZGluaCBvbmcgTmd1eWVuIFRhbiBEdW5nIGRh IGtob25nIGhvYW4gDQp0aGFuaCBuaGllbSB2dSB0cm9uZyBzdW90IDUgbmFtIHF1YS4gT25nIER1 bmcgdmEgdG9hbiBibyAxNCBVeSB2aWVuIEJvIENoaW5oIHRyaSANCmtoYWMgZGEgaG9hbiB0b2Fu IGtob25nIGNob25nIGR1b2MgdGhhbSBuaHVuZy4gVmF5IHRhaSBzYW8gb25nIE5ndXllbiBUYW4g RHVuZyANCmtob25nIHR1IG5ndXllbiBsYW0gZG9uIHhpbiB0dSBjaHVjIG5nYXkgbmh1IGxvaSBv bmcgZGEgZG9hbiBxdXlldCB0cnVvYyBkYW4/DQoNCk9uZyBOZ3V5ZW4gVGFuIER1bmcgbGEgVGh1 IHR1b25nIENoaW5oIHBodSBjdWEgbW90IGNoZSBkbyBjb25nIHNhbiB0b3QgZGVwIG5oYXQgDQpu aHVuZyBsYWkgdGh1YSB4YSBvbmcgVGh1IHR1b25nIE5oYXQgQmFuOiBraGkgcmEgdW5nIGN1IFRo dSB0dW9uZyBvbmcgbmF5IGRhIGh1YSB2b2kgDQpuaGFuIGRhbiBOaGF0IHJhbmcgbWluaCBzZSBk b2kgYmFuZyBkdW9jIGNhbiBjdSBjdWEgTXkgZGkga2hvaSBPa2luYXdhLiBTYXUgOCB0aGFuZyAN CmxlbiBsYW0gVGh1IHR1b25nIHRoYXkga2hvbmcgY28gY2FjaCBnaSB0aHVjIGhpZW4gZHVvYyBs b2kgaHVhIGRvIHZpIG5odW5nIGx5IGRvIGtoYWNoIA0KcXVhbiBsYSB0YXUgaGFpIHF1YW4gVHJ1 bmcgUXVvYyB0YW5nIGN1b25nIGRlIGRvYSBhbiBuaW5oIHZ1bmcgYmllbiBOaGF0IEJhbiwgb25n IGxpZW4gDQp0dXllbiBibyB2b2kgbmhhbiBkYW4sIFF1b2MgaG9pLCBOaGF0IGhvYW5nIGtpZW4g cXV5ZXQgeGluIHR1IGNodWMuIFZhIG9uZyB0dSBjaHVjIHRoYXQuIA0KTmhhdCBCYW4gbGEgY2hl IGRvIHF1YW4gY2h1IGxhcCBoaWVuIG1hIHNhbyBobyB0dSBnaWFjIGNhbyBkZW4gbmh1IHRoZT8g Q29uIG9uZyANCk5ndXllbiBUYW4gRHVuZywgZHVvbmcgZHVvbmcgbW90IHZpIFRodSB0dW9uZyBj dWEgbnVvYyBWaWV0IE5hbSBjb25nIGhvYSB4YSBob2kgDQpjaHUgbmdoaWEgbGFpIHRoYXQgaHVh IHZvaSBuaGFuIGRhbiwgbWEgdGhhdCBodWEgdmUgbW90IG5oaWVtIHZ1IGhldCBzdWMgbG9uIGxh byBxdXlldCANCmRpbmggdG9uIHZvbmcgY3VhIFRvIHF1b2MsIGN1YSBkYW4gdG9jIHZhIGN1YSBE YW5nIHRhLCBkbyBsYSAiUXVvYyBuYW4gdGhhbSBuaHVuZyIsIA0KdGhlIHRoaSBwaGFpIHRpbmgg dGhlIG5hbyBkYXk/DQoNClhpbiBuZXUgbW90IHZpIGR1IHRodSBoYWksIFRodSB0dW9uZyBIYW4g UXVvYyBjYWNoIGRheSBtYXkgbmdheSBjdW5nIGRhIHR1eWVuIGJvIHR1IA0KY2h1YyB2aSBtb3Qg ZGUgYW4gcXVhbiB0cm9uZyBkbyBiYW4gdGhhbiBUaHUgdHVvbmcgdmEgQ2hpbmggcGh1IEhhbiBx dW9jIGR1YSByYSBRdW9jIA0KaG9pLCBrZXQgcXVhIGJpIFF1b2MgaG9pIGJhYyBiby4gTGllbiBo ZSBkZW4gbnVvYyB0YSwgb25nIE5ndXllbiBUYW4gRHVuZyBsYSBUaHUgdHVvbmcgDQpkYSBjdW5n IHRvYW4gdGhlIENoaW5oIHBodSBjdWEgb25nIGtpZW4gcXV5ZXQgZHVhIHJhIFF1b2MgaG9pIGRl IGdhbiBuaHUgYmF0IGJ1b2MgDQp0aG9uZyBxdWEgZHUgYW4gdGFtIGNvIHF1b2MgZ2lhIHZlIHhh eSBkdW5nICJEdW9uZyBzYXQgY2FvIHRvYyBCYWMgTmFtIi4gTmh1bmcgNDkzIA0KZGFpIGJpZXUg dHJvbmcgZG8gY28gOTIlIGxhIGRhbmcgdmllbiBjb25nIHNhbiBkYSB0aGF5IHJvIHN1IGNhbiB0 aGlldCBwaGFpIHBoYXQgaHV5IA0KcXV5ZW4gZGFuIGNodSB0aHVjIHN1IGN1YSBtaW5oLCBraG9u ZyBtdW9uIG5hbSBtYWkgdHJvbmcgInZvbmcga2ltIGNvIiBjdWEgQm8gDQpDaGluaCB0cmkgdmEg Q2hpbmggcGh1IGN1YSBvbmcgTmd1eWVuIFRhbiBEdW5nIG5odSB0cnVvYyBkYXkgbnVhLCBuZW4g Y3VvaSBjdW5nIGRhIA0KYmFjIGJvIGR1IGFuIGhldCBzdWMgcGhpZXUgbHV1IHZhIG5ndXkgaGll bSBjaG8gdHVvbmcgbGFpIGN1YSBkYW4gdG9jIG5heS4NCg0KNjUgbmFtIGtlIHR1IGtoaSBEYW5n IHRhIHZhIEJhYyBIbyB0byBjaHVjIGJhdSBjdSwgdG8gY2h1YyByYSBRdW9jIGhvaSB2YSBRdW9j IGhvaSANCmNoaW5oIHRodWMgYmF1IENoaW5oIHBodSBjaG8gZGVuIG5heSBkYSBxdWEgMTIga3kg UXVvYyBob2ksIGRheSBsYSBsYW4gZGF1IHRpZW4gZGEgc28gDQpEQlFIIGtob25nIHRob25nIHF1 YSBtb3QgZGFpIGNodSB0cnVvbmcgbWEgY2EgYm8gbWF5IENoaW5oIHBodSB0dSBvbmcgVGh1IHR1 b25nIA0KZGVuIG9uZyBQaG8gdGh1IHR1b25nLCBjaG8gZGVuIG9uZyBCbyB0cnVvbmcgY2h1eWVu IHRyYWNoIG9uZyBuYW8gY3VuZyBoYW0gaG8gbXVvbiANCmxhbSBiYW5nIGR1b2MsIGNodW5nIHRv IG1vdCBjYWkgbmhpbiB2byBjdW5nIHNhbmcgc3VvdCwgdGF0IGNhIGRldSB2aSBsb2kgaWNoIHRo aWV0IHRodWMgDQpjdWEgbmhhbiBkYW4sIGtob25nIG11b24gZGF0IG51b2MgZ2FuaCBsYXkgbW90 IGtob2FuIG5vIGtob25nIGxvIDU2IHR5IGRvIGxhIE15IChtYSANCmtoaSB0aHVjIGhpZW4gY2hh YyBjaGFuIGNvbiB0YW5nIGxlbiBnYXAgZG9pIGxhIGl0KSBjaGkgZGUgY2hvIG1vdCB0YW5nIGxv cCBnaWF1IGNvIG5nYW8gDQpkdSBiYW5nIHRhdSBjYW8gdG9jLCB0cm9uZyBraGkgY3VvYyBzb25n IHRvaSB0aGlldSB0aGkgZGFpIGRhIHNvIG5oYW4gZGFuIHRyZW4ga2hhcCBtb2kgDQptaWVuIGNo dWEgYmlldCBiYW8gZ2lvIG1vaSBkYXQgZHVvYzogbmFvIG5odW5nIGNodXllbiBhbiwgbWFjIG5v bmcgdGhvbiBuaGluIGRhdSBjdW5nIA0KZGF5IG5odW5nIG5ndW9pIGtob25nIGNvIGRhdCBkZSBj YXksIGxhbmcgdGhhbmcgcmEgdGhhbmggcGhvIGtpZW0gY29tIGtob25nIGNvOyANCmNodXllbiBv bSBkYXUgNSwgNiBuZ3VvaSBjaGVuIGNodWMgdHJlbiBtb3QgZ2l1b25nIGJlbmggYmFuIHRoaXUg aG9pIGhhbTsgY2h1eWVuIGhvYyANCmhhbmggbyBuZ2F5IEhhIE5vaSBtYSBwaHUgaHV5bmggcGhh aSBzYXAgaGFuZyBzdW90IGRlbSB2YW4ga2hvbmcga2llbSByYSBjaG8gY2hvIA0KY29uIG1pbmgg dmFvIHRydW9uZyBtYW0gbm9uLCBtaWVuIG51aSB0aGkgY2FjIGVtIGhvYyBzaW5oIHN1b3QgbmFt IHRyb2kgcXVhIHNvbmcgZGkgDQpob2MgYmFuZyBjYWNoIGR1IGRheS4uLiBOaHVuZyBjaHV5ZW4g YXkgUXVvYyBob2kgZGEgaGlldSBsYSBjaHV5ZW4gdHJvbmcgZGFpIGhvbiByYXQgDQpuaGlldSBu aHVuZyBtbyB0dW9uZyB2aWVuIHZvbmcgbWEgQ2hpbmggcGh1ICJjdWEgZGFuIGRvIGRhbiB2aSBk YW4iIGR1YSByYS4gWGluIGhvaSANCm9uZyBOZ3V5ZW4gVGFuIER1bmcgc2FvIGtob25nIGhvYyBs YXkgaGFuaCBkb25nIGNhbyBjYSBjdWEgb25nIFRodSB0dW9uZyBIYW4gcXVvYyANCnR1IGNodWMg bHVvbiBzYXUga2hpIGR1IGFuIGN1YSBtaW5oIGtob25nIGR1b2MgY2hhcCB0aHVhbj8NCg0KMi8u IFRvYW4gbmh1bmcgY2h1eWVuIHRheSB0cm9pIG1hICJraG9uZyBuZ2hlIGtob25nIGJpZXQiDQoN CjEuIDE4IHRpbmggY2hvIG51b2MgbmdvYWkgdGh1ZSBydW5nLCByaWVuZyBUcnVuZyBRdW9jIGRh aSBsdWMgdmEgRGFpIExvYW4gdGh1ZSBkZW4gMi8zIA0KdHJvbmcgc28gMTYwLjAwMCBoYSBydW5n IHBob25nIGhvLCBydW5nIGRhdSBuZ3VvbiwgcnVuZyBiYW8gdmUgYW4gbmluaCBRdW9jIHBob25n LCANCmNodXllbiB0YXkgdHJvaSBuYXkgbGUgcmEgTmhhIG51b2MgcGhhaSB0aW5oIHRhbyBuYW0g YmF0IHRob25nIHRpbiB0cnVvYyB0aWVuIHZhIHh1IGx5IHR1IA0KdHJvbmcgdHJ1bmcgbnVvYyB0 aGkgaG9hIHJhIG1vdCBjdSBnaWEgaHV1IHRyaSBsYWkgcGhhdCBoaWVuIHJhIHRydW9jIHZhIGJh byBsZW4gQ2hpbmggcGh1LCANCmx1YyBheSBDaGluaCBwaHUgbW9pIGhvdCBobyBob3QgaGFpIGNo byBuZ3VvaSBkaSBraWVtIHRyYS4gVGhlIG1hIFRodSB0dW9uZyBOZ3V5ZW4gDQpUYW4gRHVuZyB2 YSBCbyB0cnVvbmcgTk4tUFROVCBDYW8gRHVjIFBoYXQgbGEgbW90IGNhbmggdGF5IHF1eWVuIGx1 YyBjdWEgVGh1IA0KdHVvbmcgdHJhIGxvaSBRdW9jIGhvaSB2YW4gYW0gbyBub2kgY2hpIDEwIHRp bmggY2hvIHRodWUgcnVuZyB0aG9pLiBEdW5nIGxhIGhvIHRodWMgaGllbiANCmtoYXUgaGlldTog S2hvbmcgbmdoZSBraG9uZyBiaWV0Lg0KDQoyLiBUYXAgZG9hbiBEaWVuIGx1YyB4YXkgZHVuZyAy IG5oYSBtYXkgbmhpZXQgZGllbiB0b24gaGFuZyBuZ2FuIHR5IGRvbmcgcm9pIGJvIGhvYW5nIA0K ZGFwIGNoaWV1IG1heSBuYW0gbmF5LCBnYXkgdGluaCB0cmFuZyB0aGlldSBkaWVuLCBjYXQgZGll biBsdWFuIHBoaWVuIGxhbSBraG8gc28gY2hvIA0KZGFuLCBkaWV1IGR1bmcgY2FjIG5nYW5oIGtp bmggZG9hbmggc2FuIHh1YXQuIFRoZSBtYSBvbmcgVGh1IHR1b25nIER1bmcgY3VuZyBraG9uZyAN CmJpZXQsIGtob25nIG5naGUuDQoNCjMuIFRhcCBkb2FuIFZpbmFzaGluIHRyb25nIHZvbmcgYm9u IG5hbSBob2F0IGRvbmcgdGh1YSBsbyBsaWVuIHRpZXAgZGVuIG11YyBjdXQgdm9uIA0KdHJvbmcg c28gOTAgbmdoaW4gdHkgZG9uZyBjaGkgY29uIGxhaSB2b24gdmVuIDEwIG5naGluIHR5IGRvbmcs IG11YSBoYWkgY2hpZWMgdGF1IHRodXkgDQpjdWEgSXRhbHkgbW9pIGNoaWVjIGRldSB0cmVuIG5n aGluIHR5IGRvbmcgcm9pIHZlIGRhcCBjaGlldSBuYW0gZGF5IGRlIGNobyBiYW4gc2F0IHZ1biwg DQp2YXkgbWEgb25nIE5ndXllbiBUYW4gRHVuZyB2YW4gaGEgaG9pIHRpZXAgc3VjIGNobyBjYWkg dGFwIGRvYW4gZG8sIG1vaSBzdSBsb25nIGhhbmggDQpjdWEgbm8gb25nIHZhbiBraG9uZyBoYXkg a2hvbmcgYmlldCwgdGh1YyBvYWkgb2FtIHZvIGN1bmcuDQoNClZvaSBiYXkgbmhpZXUgdmllYyBu Z29uIG5nYW5nLCByb2kgbG9hbiB0cm9uZyB2b25nIGhvbiBtb3QgbmhpZW0ga3kgZGlldSBoYW5o IENoaW5oIA0KcGh1IGN1YSBtaW5oLCBkZW4gbmF5IGRhIGR1IGRvIGx1aSBkZSB0dSBraWVtIG1p bmggbGFtIGR1b2MgaGF5IGtob25nIGxhbSBkdW9jLCB2YXkgDQp0YWkgc2FvIG9uZyBEdW5nIGto b25nIHR1IGdpYWMgbm9wIGRvbiB4aW4gUXVvYyBob2kgdHUgY2h1YyB2YSBsb2FuIGJhbyBjaG8g dG9hbiBkYW4gDQpiaWV0OiANCg0KVG9pLCBOZ3V5ZW4gVGFuIER1bmcsIGxhbSBUaHUgdHVvbmcg Z2FuIDUgbmFtIG5heSwgZGEgdGhhdCBsb2kgaHVhIHZvaSBuaGFuIGRhbiBsYSANCmtob25nIGNo b25nIGR1b2MgdGhhbSBuaHVuZyBtYSBib24gdGhhbSBuaHVuZyBuZ2F5IGNhbmcgaG9hbmggaGFu aCBraGFwIG1vaSBub2ksIA0KbW9pIG5nbyB0dSB0cnVuZyB1b25nIGRlbiBraGFwIHhhIHBodW9u ZyB0aG9uIGFwOw0KDQpUb2ksIE5ndXllbiBUYW4gRHVuZywgZGEgY3VuZyBibyBzYXUgQ2hpbmgg cGh1IGtpZW4gcXV5ZXQgZHVhIGR1IGFuIGNvIHRhbSBjbyBRdW9jIA0KZ2lhIHhheSBkdW5nIGR1 b25nIHNhdCBjYW8gdG9jIEJhYyBOYW0gdHUgSGEgTm9pIGRlbiB0aGFuaCBwaG8gSG8gQ2hpIE1p bmggY290IHZheSANCm51b2MgbmdvYWkgNTYgdHkgZG8gbGEgTXksIG5odW5nIGRhIGJpIFF1b2Mg aG9pIGJhYyBibyB2aSBraG9uZyBzYXQgdGh1YyB0ZSwga2hvbmcgaG9wIA0KbG9uZyBkYW47IA0K DQpUb2ksIE5ndXllbiBUYW4gRHVuZywgdHJvbmcgc3VvdCB0aG9pIGdpYW4gbGFtIFRodSB0dW9u ZyBkYSBkZSB4YXkgcmEgbmh1bmcgY2h1eWVuIA0KcGhhIG51b2MgaGFpIGRhbiBuaHUgY2h1eWVu IDE4IHRpbmggYmFuIHJ1bmcsIG5odSB2dSBWaW5hc2hpbiB0aGF0IHRob2F0IGRlbiA4MCBuZ2hp biANCnR5IGRvbmcsIG5odSBjaHV5ZW4gbW90IGtlIHNhIGRvYSBjaHVpIGR1b2MgdmFvIGxhbmgg ZGFvIGNvIHF1YW4gY2FwIHRpbmggbGFtIG5odW5nIA0KaGFuaCB2aSBkb2kgYmFpIHRyYWkgbHVh biB0aHVvbmcgZGFvIGx5IGtoaWVuIGNobyBjYSBudW9jIHBoYWkgdGltIG1hdC4gDQoNCkJheSBn aW8geGluIG5vaSBndW9uZyBjYWMgdmkgVGh1IHR1b25nIGRhbyBjYW8gZHVjIHRyb25nIE5oYXQg QmFuIHZhIEhhbiBxdW9jLCB0b2kgdHUgDQpuZ3V5ZW4gcm9pIGtob2kgY2hpZWMgZ2hlIG1hIHRy b25nIHRoYW0gdGFtIHRvaSB2YW4gdGhpZXQgdGhhIHZvaSBubyBsYW0uIA0KDQpMYW0gZHVvYyB0 aGUsIG9uZyBOZ3V5ZW4gVGFuIER1bmcgbmhhdCBkaW5oIHNlIGR1b2MgdG9hbiBkYW4gbmhpZXQg bGlldCBob2FuIGhvLCB0cm9uZyANCmRvIGNvIGJhbiB0aGFuIHRvaS4NCg0KRGUga2V0IHRodWMs IHRvaSB4aW4ga2UgbGFpIG1vdCBjYXUgY2h1eWVuIHBoaW0gdmUgY2hvbmcgdGhhbSBuaHVuZyBk byBLVFYgdHJ1eWVuIA0KaGluaCBLaGFuaCBIb2EgY2hpZXUgbHVjIDExLTEyaCBuZ2F5IDA0LzA3 LzIwMTAgY2hvIGNhYyB2aSBsYW5oIGRhbyB0b2kgY2FvIG5naGUgY2hvaS4gDQoNCkN1b24gcGhp bSBuaGFuIGRlOiAiQ2hhbmcgdHJhaSBIb25nIERpIERvbmciIGN1YSBIYW4gUXVvYy4gRHVvaSB0 cmlldSBuaGEgVnVhIEhhbiANClF1b2Mgbm8sIHF1YW4gbGFpIHRoYW0gbmh1bmcgY3VvcCBib2Mg Y3VhIGRhbiBraG9uZyBiaWV0IGJhbyBuaGlldSBtYSBrZSwgZGFuIGRlbiB1YXQgDQp1YyBraG9u ZyBiaWV0IGtldSBhaS4gQmF5IGdpbyBjbyBtb3QgY2hhbmcgdGhhbmggbmllbiB0ZW4gbGEgSG9u ZyBEaSBEb25nIGR1bmcgbGVuIA0KdGhhbmggbGFwIEhvaSBuZ3VvaSBuZ2hlbyBkaSBnaWV0IGJv biB0aGFtIHF1YW4gbGFpIG5odW5nIGN1YSBuaGEgdnVhLCBkZW0gY3VhIGNhaSANCmN1b3AgZHVv YyB0dSB0YXkgYm9uIGNodW5nIGNoaWEgY2hvIGRhbiBuZ2hlby4gVnVhIHJhIGxlbmggcXVhbiBs aW5oIHRydXkgbHVuZywgYmF0IA0KZHVvYyBtb3Qgc28gbmd1b2kgdHJvbmcgSG9pIGRpbmggZHVh IHJhIHBoYXAgdHJ1b25nIHh1IHRyYW0gdGhpIGNoYW5nIHRoYW5oIG5pZW4gSG9uZyANCkRpIERv bmcgdGluaCBuZ3V5ZW4gZGVuIG5vaSB2b2kgbmhhIHZ1YSByYW5nOiAiVG9pIGxhIHRodSBsYW5o IEhvaSBuZ3VvaSBuZ2hlbyBsYW0gDQp2aWVjIGRvLCB5ZXUgY2F1IG5oYSB2dWEgdGhhIHNvIG5n dW9pIG5naGVvIGtpYSwgbW90IG1pbmggdG9pIHhpbiBjaGl1IHR1IGhpbmgiLiBOaGEgdnVhIA0K bmdoZSB2YXkgZG9uZyB5IHRoYSB0YXQgY2EgY2hpIGRlbSBIb25nIERpIERvbmcgcmEgcGhhcCB0 cnVvbmcuIA0KDQpUcnVvYyBraGkgY2hldCwgY2hhbmcgSG9uZyBEaSBEb25nIHhpbiBwaGVwIGR1 b2Mgbm9pIG1vdCBsb2kgdHJ1YyB0aWVwIHZvaSBuaGEgdnVhOiANCiJDaGluaCBuZ2FpIGxhIHZ1 YSBkYSBkZSByYSBxdWFuIHRoYW0uIFF1YW4gdGhhbiBvIHRyZW4gbGFtIG1vaSBkaWV1IHRhbiBu Z3VvYywgYm9jIGxvdCANCmRhbiBjaHVuZyBkZW4geG8geGFjIG5lbiB0b2kgcGhhaSBkdW5nIHJh IHRvIGNodWMgSG9pIG5ndW9pIG5naGVvIGRlIGNob25nIGxhaS4gTXVjIA0KZGljaCBjdWEgY2h1 bmcgdG9pIGxhIGdpZXQgYm9uIGRlIHR1IHRoYW0gbmh1bmcgY3VhIG5nYWksIGN1b3AgdGFpIHNh biBjdWEgaG8gY2hpYSBjaG8gDQpkYW4gY2h1bmcuIENoaW5oIG5nYWksIG5oYSB2dWEgbGEga2Ug ZGUgcmEgdGhhbSBuaHVuZyIuIA0KDQpYZW0geG9uZyBwaGltIG5heSB0b2kgdHUgaG9pOiBib24g dGhhbSBxdWFuIG1hIGNodW5nIHRhIHZ1YSBwaGF0IGhpZW4gbGEgbGFuaCBkYW8gbyAxMiANCnRp bmggdmEgYm9uIFRhcCBkb2FuIGN1YSBOaGEgbnVvYyBkbyBUaHUgdHVvbmcgTmd1eWVuIFRhbiBE dW5nIHZhIEJvIGNoaW5oIHRyaSBxdWFuIA0KbHkuIE5odSB0aGUgY28gcGhhaSBCbyBjaGluaCB0 cmkgZGUgcmEgdGhhbSBuaHVuZyBoYXkga2hvbmc/IFRhaSBzYW8gRGFuZyB0YSwgTmhhIG51b2Mg DQp0YSBtYXkgbmFtIGtob25nIGNob25nIGR1b2MgYm9uIHRoYW0gbmh1bmcgbmF5IG1hIGx1YyBs dW9uZyBjaHVuZyBuZ2F5IGNhbmcgcGhpbmggDQpsb24/DQoNClRyZW4gZGF5IGxhIHkga2llbiBj aGFuIHRoYW5oIGN1YSB0b2ksIG1vdCBsYW8gZ2lhIGNhY2ggbWFuZy4gS2hhbiB0aGlldCBraW5o IG1vbmcgcXV5IA0Kdmkgc29tIHRyYSBsb2kgY2hvIHRvaSB2YSBuaGFuIGRhbiBkdW9jIGJpZXQu DQoNCktpbmggY2h1YyBxdXkgdmkgZG9pIGRhbyBzdWMga2hvZS4gDQpOaGEgVHJhbmcsIG5nYXkg MDctNy0yMDEwDQoNCkt5IHRlbg0KTmd1eWVuIFZhbiBCZQ0KTGFvIHRoYW5oIGNhY2ggbWFuZyB0 aWVuIGtob2kgbmdoaWEgDQpIdXkgY2h1b25nIHZpIHN1IG5naGllcCBEYWkgZG9hbiBrZXQgZGFu IHRvYyB2YSBuaGlldSBodWFuIGNodW9uZyBraGFjLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDQ1LzIwMTAxMTAyMDExMjI3LmFzcHggTmd1eWV0IE1pbmgg LSBUdWUgTmd1eWVuIFF1YW5nIEhpZW4gMDIvMTEvMjAxMCAxOjEyIA0KDQpUaHUgdHVvbmc6IE9h biBnYW5oIHRyYWNoIG5oaWVtIHZ1IFZpbmFzaGluICANCiANCk5oaWV1IHZhbiBkZSBidWMgeHVj IGR1b2MgY2FjIERCUUggZGF0IHJhIG8gcGhpZW4gdGhhbyBsdWFuIHRhaSBob2kgdHJ1b25nIHZl IHRpbmggDQpoaW5oIHRodWMgaGllbiBuaGllbSB2dSBraW5oIHRlIC0geGEgaG9pIG5hbSAyMDEw LCBzb25nIG5vaSBsZW4gY2EgdmFuIGxhIG1vaSBsbyBsYW0gDQpwaGF0IHRhbmcgY2FvLCB0aGll dSBkaWVuIG5nYXkgbW90IHRyYW0gdHJvbmcgbmh1bmcgY2h1YSBuaGluIHJvIGxvaSByYSB2YSBk YWMgYmlldCBsYSANCnhlbSB4ZXQgdHJhY2ggbmhpZW0gZGUgeGF5IHJhIHNhaSBwaGFtIFZpbmFz aGluLiANCg0KKiBLaG9uZyB0aGUga2V1IHRoaWV1IGRpZW4gbWFpIA0KKiBEYXUgdHUgY2hvIG5v bmcgbmdoaWVwLCBub25nIHRob24gY29uIHF1YSBpdCANCg0KRGUgbmdoaSBibyBwaGlldSB0aW4g bmhpZW0gY2FjIHRoYW5oIHZpZW4gQ2hpbmggcGh1DQoNCk5oaWV1IERCUUgga2hpIHRoYW8gbHVh biB2ZSBraW5oIHRlIC0geGEgaG9pIHRhaSBuZ2hpIHRydW9uZyBuZ2F5IDEuMTEgZGV1IHRhcCB0 cnVuZyANCiJ0cnV5IiB0cmFjaCBuaGllbSBjYSBuaGFuIGNhYyB0aGFuaCB2aWVuIENoaW5oIHBo dSB2YSBibyBuZ2FuaCBsaWVuIHF1YW4gdmUgc2FpIHBoYW0gDQpjdWEgVmluYXNoaW4uDQoNCkRC IE5ndXllbiBNaW5oIFRodXlldCAoTGFuZyBTb24pIGNobyByYW5nLCBUYXAgZG9hbiBWaW5hc2hp biBzdXAgZG8gZGEgdHJ1dCBsZW4gdmFpIA0KZG9uZyBiYW8gbW9uIG5vIGtob25nIGxvIGtob25n IGR1b2kgMTAwLjAwMCB0aSBkb25nLiBNb24gbm8gbWEgbW90IHRpbmggdGh1IG5oYXAgY28gDQox LjAwMCB0aSBkb25nL25hbSBwaGFpIGxhbSBxdWFuIHF1YXQga2hvbmcgY2hpIHRpZXUgZ2kgc3Vv dCBtb3QgdGhlIGt5IG1vaSB0cmEgbm9pLiBEb2kgDQp2b2kgZG9uZyBiYW8gbmhpZXUgbm9pIG5o YXQgbGEgbm9uZyB0aG9uLCBtaWVuIG51aSB0aGkgdHJhIG1vbiBubyBraG9uZyBsbyBuYXkgY28g bmdoaWEgDQpsYSBjaGFtIGxhbSBkdW9uZywgbGFtIGNhdSwgeGF5IHRydW9uZywgeGF5IGJlbmgg dmllbi4uLiAgIlNhaSBwaGFtIHRyb25nIGNoaSBkYW8gZGlldSANCmhhbmggdGhpIGRhIHJvLiBO aHVuZyBjbyBtb3QgY2F1IGhvaSBkZW4gbmF5IHZhbiBjaHVhIGNvIGNhdSB0cmEgbG9pIGxhIG5n b2FpIGxhbmggZGFvIA0KVmluYXNoaW4gY29uIG5odW5nIGFpIHBoYWkgY2hpdSB0cmFjaCBuaGll bSB2ZSBuaHVuZyBzYWkgcGhhbSBuYXk/IiAtIERCIFRodXlldCBiYW4gDQpraG9hbi4gDQoNCihB bmg6IERCIE5ndXllbiBNaW5oIFRodXlldCBwaGF0IGJpZXUgdGFpIHBoaWVuIHRoYW8gbHVhbiAt IEFuaDogTmdvYyBUaGFuZykgDQoNCiJUcm9uZyB0cnVvbmcgaG9wIG5heSBjYWMgdGhhbmggdmll biBDaGluaCBwaHUgY28gbGllbiBxdWFuIHBoYWkga2llbSBkaWVtIHZhIG5oYW4gDQpreSBsdWF0 IHRydW9jIFF1b2MgaG9pLiBLaG9uZyB0aGUgY2hpIG5oYW4ga2h1eWV0IGRpZW0gbW90IGNhY2gg Y2h1bmcgY2h1bmcgdmEgdHV5ZW4gDQpibyBkYSBraWVtIGRpZW0gbm9pIGJvIGxhIHJ1IHhvbmcg dHJhY2ggbmhpZW0iLCBvbmcgVGh1eWV0IG5vaS4gDQoNCkRhbiBsYWkgYmFpIGhvYyB0dSB2dSBh biBMYSBUaGkgS2ltIE9hbmggY2FjaCBkYXkgNiBuYW0ga2hpZW4gbW90IHZpIGJvIHRydW9uZyBk YW5nIA0KcmF0IGR1b2MgbG9uZyBkYW4gcGhhaSB0dSBjaHVjIHZhIGhhaSB2aSB0aHUgdHJ1b25n IHBoYWkgcmEgdHJ1b2MgdmFuaCBtb25nIG5ndWEsIG9uZyANClRodXlldCBjaG8gcmFuZywgVmlu YXNoaW4gbGEgbW90IGtpZXUgTGEgVGhpIEtpbSBPYW5oIHBob25nIGRhaSBjby4uLiAxLjAwMCBs YW4uIA0KDQoiVGhhbSB0cmEgQmFvIGNhbyBjdWEgQ2hpbmggcGh1IHZlIGNvbmcgdGFjIHBob25n LCBjaG9uZyB0aGFtIG5odW5nIG5hbSBuYXksIFV5IA0KYmFuIFR1IHBoYXAgY3VhIFF1b2MgaG9p IGRhIG5oYW4gZGluaCBjbyBkYXUgaGlldSBiYW8gY2hlIGNobyBuaHVuZyBzYWkgdHJhaSwgdmkg cGhhbSANCnBoYXAgbHVhdCBjdWEgVmluYXNoaW4sIGxhbSB0aGlldCBoYWkgbG9uIGRlbiB0aWVu IHZhIHRhaSBzYW4gbmhhIG51b2MuIE5odW5nIGFpIGJhbyBjaGU/IA0KQmFvIGNoZSB0aGUgbmFv PyBWaSBuZ3V5ZW4gbmhhbiBnaT8gTmhhbSBtdWMgZGljaCBnaSB2YSBwaGFpIGNoaXUgdHJhY2gg bmhpZW0gcmEgc2FvIA0KdGhpIFV5IGJhbiBUdSBwaGFwIGNodWEgY28gZGlldSBraWVuIGtldCBs dWFuLiBOZXUgUUgga2hvbmcgbGFtIHJvIGR1b2MgZGlldSBuYXkgdGhpIA0Ka2hvbmcgaG9hbiB0 aGFuaCBuaGllbSB2dSB0cnVvYyBEYW5nLCB0cnVvYyBkYW4iLCBvbmcgVGh1eWV0IHRpZXAgdHVj LiANCg0KVmllbiBkYW4gcXV5ZW4gY3VhIERCUUggZHVvYyBxdXkgZGluaCBybyB0cm9uZyBIaWVu IHBoYXAgdmEgTHVhdCBUbyBjaHVjIFFILCBEQiANClRodXlldCBkZSBuZ2hpOiAiVXkgYmFuIFRW UUggdG8gY2h1YyBkZSBRSCBiaWV1IHF1eWV0IHRoYW5oIGxhcCBVeSBiYW4gbGFtIHRob2kgDQpk aWV1IHRyYSB0cmFjaCBuaGllbSBjdWEgY2FjIHRoYW5oIHZpZW4gQ2hpbmggcGh1IHRyb25nIHZ1 IHZpZWMgbmF5LiBUcmVuIGNvIHNvIGRvLCB2YW8gDQp0aG9pIGdpYW4gY3VvaSBreSBob3AgYm8g cGhpZXUgdGluIG5oaWVtIFRodSB0dW9uZyB2YSBtb3Qgc28gdGhhbmggdmllbiBDaGluaCBwaHUg Y28gDQpsaWVuIHF1YW4iLiBPbmcgVGh1eWV0IGN1bmcga2llbiBuZ2hpIFFIICJ0YW0gZGluaCBj aGkgY2h1YyB2dSBjdWEgY2FjIHZpIGNhbiBkdW9jIA0KZGlldSB0cmEiLiANCg0KIlF1b2MgaG9p IGNhbiB4YWMgZGluaCBybyBuZ3V5ZW4gbmhhbiwgdHJhY2ggbmhpZW0gY3UgdGhlIGN1YSBDaGlu aCBwaHUsIFRodSB0dW9uZyANCkNoaW5oIHBodSwgUGhvIHRodSB0dW9uZyBwaHUgdHJhY2ggbmdh bmgsIEJvIHRydW9uZyBCbyBjaHUgcXVhbiwgdGh1IHRydW9uZyBjYWMgYm8sIA0KbmdhbmggY2h1 YyBuYW5nIGNvIGxpZW4gcXVhbiwgY2h1IGtob25nIHRoZSBuZXUgY2h1bmcgY2h1bmcuICIgLSBE QiBMZSBWYW4gQ3VvbmcgDQoNCiJMaWVuIHF1YW4gZGVuIGhhbmcgdHJhbSBuZ2FuIHRpIGRvbmcg dm9uIG5oYSBudW9jIG1hIHZlIG1hdCBwaGFwIGx1YXQgbmdheSB0dSBkYXUgDQpjaHVuZyB0YSBs YWkga2hvbmcgcmFuZyBidW9jIHRyYWNoIG5oaWVtIGN1YSBRSCB2b2kgdHUgY2FjaCBsYSB0aGll dCBjaGUgcXV5ZW4gbHVjIG5oYSANCm51b2MgY2FvIG5oYXQgZGUgY3VuZyBjaGlhIHNlIHRyYWNo IG5oaWVtIG1hIGNoaSBkYXQgdHJhY2ggbmhpZW0gcXVhIG5hbmcgbmUgbGVuIHZhaSANCkNoaW5o IHBodSBsYSBjaHVhIHRoYXQgaG9wIGx5LiAiLSBEQiBMZSBUaGkgTmdhIA0KDQpEQiBMZSBWYW4g Q3VvbmcgKFRoYW5oIEhvYSkgY3VuZyBsZW4gdGllbmcgZG9uZyB0aW5oOiBTdSBjbyBWaW5hc2hp biBkYSBkdW9jIGNhbmggDQpiYW8gc29tIHZlIGtldCBxdWEgcXVhbiBseSB5ZXUga2VtLCB0aWV1 IGN1Yywgbmh1bmcgdmkgY28gYmlldSBoaWVuIGJhbyBjaGUsIHV1IGFpLCANCm51b25nIGNoaWV1 IG5lbiBjYWkgdSwgY2FpIG5ob3QgbGF1IG5nYXkgZGEgdm8gdHVuZyBkZSBsYWkgaGF1IHF1YSBo ZXQgc3VjIG5hbmcgbmUuIFRoZW8gDQpvbmcgQ3Vvbmc6ICJUb25nIHZheSBubyBjbyB0aGUgbGVu IGRlbiBjb24gc28gMTIwIG5naGluIHRpIGRvbmcsIGJpbmggcXVhbiBtb2kgY29uZyANCmRhbiBW aWV0IE5hbSB0dSBsb24gZGVuIGJlLCB0dSBuZ3VvaSBnaWF1IGRlbiBuZ3VvaSBuZ2hlbyBwaGFp IGdhbmggbm8gY2hvIFZpbmFzaGluIA0Ka2hvYW5nIDEsNSB0cmlldSBkb25nLiBWaW5hc2hpbiBs YSBnaW90IG51b2MgbGFtIHRyYW4gbHksIGJvYyBsbyBybyBxdWFuIGxpZXUsIHlldSBrZW0sIA0K dGhpZXUgdHJhY2ggbmhpZW0sIGJ1b25nIGxvbmcgcXVhbiBseSB2b24sIHRhaSBzYW4gbmhhIG51 b2MgY3VhIENoaW5oIHBodSwgY2FjIGJvIG5nYW5oIA0KY2h1YyBuYW5nIGRvaSB2b2kgY2FjIHRh cCBkb2FuLCB0b25nIGNvbmcgdHkgbmhhIG51b2MiLiANCg0KVGhlbyBvbmcgQ3VvbmcsICJ0YWkg a3kgaG9wIG5heSwgUXVvYyBob2kgY2FuIHhhYyBkaW5oIHJvIG5ndXllbiBuaGFuLCB0cmFjaCBu aGllbSBjdSANCnRoZSBjdWEgQ2hpbmggcGh1LCBUaHUgdHVvbmcgQ2hpbmggcGh1LCBQaG8gdGh1 IHR1b25nIHBodSB0cmFjaCBuZ2FuaCwgQm8gdHJ1b25nIEJvIA0KY2h1IHF1YW4sIHRodSB0cnVv bmcgY2FjIGJvLCBuZ2FuaCBjaHVjIG5hbmcgY28gbGllbiBxdWFuLCBjaHUga2hvbmcgdGhlIG5l dSBjaHVuZyANCmNodW5nIG5odSBub2kgZHVuZyBjYWMgYmFvIGNhbyBjdWEgQ2hpbmggcGh1Ii4g REIgbmF5IGN1bmcgdGFuIHRoYW5oIGtpZW4gbmdoaSBjdWEgDQpEQiBOZ3V5ZW4gTWluaCBUaHV5 ZXQgZGUgbmdoaSBRdW9jIGhvaSB0YWkga3kgaG9wIG5heSBjYW4gdGhhbmggbGFwIFV5IGJhbiBs YW0gdGhvaSANCm5odSBkYSBuZXUgdHJlbiB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQsIGRl IGRpZXUgdHJhIGxhbSBybyB0cmFjaCBuaGllbSBjdWEgdG8gY2h1YywgDQpjYSBuaGFuIGNvIGxp ZW4gcXVhbiBxdWEgdnUgdGlldSBjdWMgbyBWaW5hc2hpbi4gDQoNCkRCIEh1eW5oIE5nb2MgRGFu ZyAoQmluaCBEdW9uZykgbm9pOiAiVG9pIHZhIG5oaWV1IGN1IHRyaSBoaWVuIG5heSBkYW5nIHF1 YW4gdGFtIA0KbmhpZXUgaG9uIHZlIGNhYyB2YW4gZGUgY3VhIGhhdSBWaW5hc2hpbiB2YSBrZSBk byBsYSAidGFuIFZpbmFzaGluIi4gU2F1IHN1IGtpZW4gDQpWaW5hc2hpbiBsaWV1IHNlIGNvbiBu aHVuZyBWaW5hc2hpbiBuYW8ga2hhYyB0cm9uZyBzbyBjYWMgdGFwIGRvYW4ga2luaCB0ZSB2YSB0 b25nIGNvbmcgDQp0eSBjdWEgY2h1bmcgdGE/IE5odW5nIGNhIG5oYW4sIHRvIGNodWMgY28gbGll biBxdWFuIGRlbiB2aWVjIGJ1b25nIGxvbmcgcXVhbiBseSBkZSBnYXkgDQpyYSBoYXUgcXVhIG5n aGllbSB0cm9uZyBjdWEgVmluYXNoaW4gcGhhaSBkdW9jIHRydXkgY3V1IHRyYWNoIG5oaWVtIHRo ZSBuYW8gY2hvIGNvbmcgDQptaW5oPyIuDQoNCkNhbiBkYW5oIGdpYSwgdG9uZyBrZXQsIGNoYW4g Y2hpbmggdGFwIGRvYW4ga2luaCB0ZSB0aGkgZGllbQ0KDQpDdW5nIG5vaSB2ZSBzYWkgcGhhbSBj dWEgVmluYXNoaW4sIG5odW5nIERCIExlIFRoaSBOZ2EgKFRoYWkgTmd1eWVuKSBjaG8gcmFuZywg DQpuZ29haSB0cmFjaCBuaGllbSBjdWEgQ2hpbmggcGh1IHRoaSBRSCBjdW5nIGNvIHRyYWNoIG5o aWVtIGxpZW4gZG9pIHRyb25nIHZpZWMgZ2lhbSBzYXQgDQp2aWVjIHRoYW5oIGxhcCwgcXVhbiBs eSBjYWMgdGFwIGRvYW4ga2luaCB0ZSwgdHJvbmcgZG8gY28gVmluYXNoaW4uDQoNCkRCIG5heSB2 aWVuIGRhbiBjbyBzbyBwaGFwIGx5IGN1YSB2aWVjIHRoYW5oIGxhcCB0YXAgZG9hbiBraW5oIHRl IG5oYSBudW9jIHZhIGJheSB0byBzdSANCiJob2FuIG5naGVuaCBuaHVuZyBjbyBnYW5nIGN1YSBU aHUgdHVvbmcsIGN1YSBDaGluaCBwaHUgdmEgbmh1bmcgZG9uZyBnb3AgY3VhIGNhYyANCnRhcCBk b2FuIHRob2kgZ2lhbiBxdWEsIG5oYXQgbGEgdmllYyBDaGluaCBwaHUgZGEga2lwIHRob2kgdGFp IGNvIGNhdSBWaW5hc2hpbiIuIFRoZW8gYmEgDQpOZ2EsIHRoaSBkaWVtIHR1YyBsYSBsYW0gdGh1 IG5odW5nIHZpZWMgbWEgcGhhcCBsdWF0IGNodWEgcXV5IGRpbmgsIHRoaSBkaWVtIHRoaSBjbyB0 aGUgDQp0aGFuaCBjb25nIGhvYWMgdGhhdCBiYWkuIFZpIHZheSwgcGhhbSB2aSB0aGkgZGllbSBj aGkgbmVuIGhlcCwgc2F1IG1vdCB0aG9pIGdpYW4gbmhhdCANCmRpbmggcGhhaSBkYW5oIGdpYSwg dG9uZyBrZXQsIGNoYW4gY2hpbmggbmh1bmcgdGhpZXUgc290LCBuZXUga2hhbmcgZGluaCB0aGFu aCBjb25nIHRoaSANCm1vaSB0cmllbiBraGFpIHRyZW4gZGllbiByb25nLiAiTmhpZXUgbHVhdCBn aWEgY2hvIHJhbmcgdmllYyB0aGkgZGllbSBsaWVuIHF1YW4gZGVuIGhhbmcgDQp0cmFtIG5nYW4g dGkgZG9uZyB2b24gbmhhIG51b2MgbWEgdmUgbWF0IHBoYXAgbHVhdCBuZ2F5IHR1IGRhdSBjaHVu ZyB0YSBsYWkga2hvbmcgcmFuZyANCmJ1b2MgdHJhY2ggbmhpZW0gY3VhIFFIIHZvaSB0dSBjYWNo IGxhIHRoaWV0IGNoZSBxdXllbiBsdWMgbmhhIG51b2MgY2FvIG5oYXQgZGUgY3VuZyANCmNoaWEg c2UgdHJhY2ggbmhpZW0gbWEgY2hpIGRhdCB0cmFjaCBuaGllbSBxdWEgbmFuZyBuZSBsZW4gdmFp IENoaW5oIHBodSBsYSBjaHVhIHRoYXQgDQpob3AgbHkiLCBiYSBOZ2EgbmhhbiBtYW5oLiANCg0K QmEgTmdhIGtpZW4gbmdoaTogTmdvYWkgVmluYXNoaW4sIFFIIHZhIENoaW5oIHBodSBjYW4gY2hv IGtpZW0gdG9hbiwgdGhhbmggdHJhIHRvYW4gDQpibyBob2F0IGRvbmcgY3VhIGNhYyB0YXAgZG9h biBraW5oIHRlIG5oYSBudW9jIGNvbiBsYWksIG5oYXQgbGEgZG9pIHZvaSBUYXAgZG9hbiBkaWVu IA0KbHVjLCB0cmVuIGNvIHNvIGRvIGJhbyBjYW8gdm9pIFF1b2MgaG9pIHRvYW4gZGllbiB2ZSB0 byBjaHVjIHZhIGhvYXQgZG9uZyBjdWEgY2FjIHRhcCANCmRvYW4gdGhpIGRpZW0uIE5ldSBraGFu ZyBkaW5oIHRoYW5oIGNvbmcgdGhpIGRlIG5naGkgUXVvYyBob2kgc3VhIGx1YXQgZGUgdGFvIGhh bmggbGFuZyANCnBoYXAgbHkgY2hvIHRvIGNodWMgdmEgaG9hdCBkb25nIGN1YSB0YXAgZG9hbiBr aW5oIHRlIG5oYSBudW9jIi4gDQoNCiJCbyBHVFZUIGtob25nIGNvIHF1eWVuIHF1eWV0IGRpbmgu Li4iDQoNCkR1b2MgbW9pIGdpYWkgdHJpbmggdGhlbSB2ZSB0cmFjaCBuaGllbSBxdWFuIGx5IG5n YW5oIHRyb25nIHNhaSBwaGFtIGN1YSBWaW5hc2hpbiwgQm8gDQp0cnVvbmcgR1RWVCBIbyBOZ2hp YSBEdW5nIGdpYWkgYmF5OiBCbyBHVFZUIHRodWMgaGllbiBtb3Qgc28gY2h1YyBuYW5nIHF1YW4g bHkgDQpuaGEgbnVvYyB2YSBtb3Qgc28gbm9pIGR1bmcgcXVhbiBseSwgc28gaHV1IGN1YSBOaGEg bnVvYyBkb2kgdm9pIHRhcCBkb2FuIGR1b2MgQ2hpbmggDQpwaHUgZ2lhbyB0cm9uZyBsaW5oIHZ1 YyBoYW5nIGhhaSwgdHVjIGxhIGtldCBjYXUgaGEgdGFuZyBjYW5nIGJpZW4sIGx1b25nIGNhbmcg YmllbiwgdmFuIA0KdGFpIGJpZW4sIGRhbmcga3ksIGRhbmcga2llbSBwaHVvbmcgdGllbiB2YW4g dGFpIGJpZW4sIGFuIG5pbmgsIGFuIHRvYW4gaGFuZyBoYWkgYmllbi4uLiANClR1eSBuaGllbiwg dmUgY2h1YyBuYW5nIGR1b2MgcGhhbiBjb25nIG1vdCBzbyBub2kgZHVuZyBkYWkgZGllbiBjaHUg c28gaHV1IG5oYSBudW9jIA0KZG9pIHZvaSB0YXAgZG9hbiB0aGkgQm8gdHJ1b25nIHRodWEgbmhh biAiY28ga2hvIGtoYW4sIGNvIGx1bmcgdHVuZyB0cm9uZyB2aWVjIHRodWMgDQpoaWVuIi4gDQoN CkJvIHRydW9uZyBub2kgcm86IENvIGhhaSBub2kgZHVuZyBsb24gbWEgQm8gZHVvYyBwaGFuIGNv bmcgdGh1YyBoaWVuIGNodWMgbmFuZyBkYWkgDQpkaWVuIGNodSBzbyBodXUga2hpIHRoaSBkaWVt IHRoYW5oIGxhcCB0YXAgZG9hbiBsYSBCbyBwaGFpIGJhbyBjYW8gQ2hpbmggcGh1IGtoaSB0YXAg DQpkb2FuIHRyaW5oIENoaW5oIHBodSBtdWMgdGlldSwgcXV5IGhvYWNoLCBjaGllbiBsdW9jIHBo YXQgdHJpZW47IGRpZXUgbGUgY3VhIHRhcCBkb2FuOyB0byANCmNodWMsIGNvIGNhdSB0byBjaHVj IGN1YSB0YXAgZG9hbjsgdmEgbW90IHNvIGNvbmcgdGFjIG5oYW4gc3UuICJRdXllbiBxdXlldCBk aW5oIGRvIGxhIA0KY3VhIFRodSB0dW9uZyB2YSBjYWkgZ2kgVGh1IHR1b25nIHV5IHF1eWVuIGNo byB0YXAgZG9hbiB0aGkgdGFwIGRvYW4gcXV5ZXQgZGluaCwgY2h1IA0KQm8gaG9hbiB0b2FuIGto b25nIGNvIGR1b2MgbW90IHF1eWVuIG5hbyBxdXlldCBkaW5oIHRyb25nIHRhdCBjYSBuaHVuZyBu b2kgZHVuZyBuYXkiLCANCkJvIHRydW9uZyBEdW5nIHRoYW5oIG1pbmguIA0KDQpUdXkgbmhpZW4s IHRyb25nIHBoYW0gdmkgdHJhY2ggbmhpZW0gcXVhbiBseSwgb25nIER1bmcgY3VuZyB0aHVhIG5o YW4ga2h1eWV0IGRpZW0gDQpjdWEgQm8gdHJvbmcgdmllYyBjaGFtIHBoYXQgaGllbiwga2hvbmcg cGhhdCBoaWVuIGR1b2Mgbmh1bmcgdmFuIGRlIG5vaSBsZW4gbyB0cm9uZyANClZpbmFzaGluIHF1 YSB0aHVjIGhpZW4gZ2lhbSBzYXQgZGF1IHR1LiAgDQoNCkNodSBuaGllbSBVeSBiYW4gUXVvYyBw aG9uZyAtIEFuIG5pbmggY3VhIFFIOiBUb2kgdW5nIGhvIHZpZWMgbGFwIFV5IGJhbiBkaWV1IHRy YSANCmxhbSB0aG9pIHZ1IFZpbmFzaGluIA0KDQooQW5oOiBDaHUgbmhpZW0gVXkgYmFuIFF1b2Mg cGhvbmcgLSBBbiBuaW5oIExlIFF1YW5nIEJpbmggY2hvIGJpZXQgcXVhbiBkaWVtIHRyZW4gDQpr aGkgdHJhIGxvaSBwaG9uZyB2YW4gYmFvIGdpb2kgYmVuIGhhbmggbGFuZyBreSBob3AgUUggY2hp ZXUgMS4xMS4gKQ0KDQoqIERCUUggTmd1eWVuIE1pbmggVGh1eWV0IHZhIG5oaWV1IERCIGtoYWMg ZGEgZGUgeHVhdCB0aGFuaCBsYXAgVXkgYmFuIGxhbSB0aG9pIA0KZGUgZGlldSB0cmEgbGFtIHJv IHRyYWNoIG5oaWVtIGRlIHhheSByYSBzYWkgcGhhbSBvIFZpbmFzaGluLiBEZSB4dWF0IG5heSBj byBjbyBzbyBwaGFwIGx5IGtob25nLCB0aHVhIG9uZz8gDQoNCi0gTHVhdCBUbyBjaHVjIFFIIGN1 bmcgY28gcXV5IGRpbmgga2hpIGNhbiB0aGlldCB0aGkgbGFwIFV5IGJhbiBsYW0gdGhvaSBkZSB0 aGFtIHRyYSBkdSANCmFuIGx1YXQgbmFvIGRvIGhvYWMgZGlldSB0cmEgdmFuIGRlIG5oYXQgZGlu aC4gTHVhdCBnaWFtIHNhdCBjdW5nIHF1eSBkaW5oIGNhYyBoaW5oIHRodWMgDQpnaWFtIHNhdCBu aHU6IENvIGJhIGhpbmggdGh1YyBnaWFtIHNhdDogdGh1IG5oYXQgbGEgeGVtIHhldCBiYW8gY2Fv LCBoYWkgbGEgdGhhbmggbGFwIA0KZG9hbiBnaWFtIHNhdCwgYmEgbGEgbGFwIHV5IGJhbiBsYW0g dGhvaSBraGkgY28gdmFuIGRlIFFIIHF1YW4gdGFtLiANCg0KTmh1bmcgdGh1YyB0ZSBsYXUgbmF5 IG1vaSBsYW0gaGFpIGhpbmggdGh1YyB0cnVvYyBsYSB4ZW0geGV0IGJhbyBjYW8gdmEgbGFwIGRv YW4gZ2lhbSANCnNhdC4gQ2h1YSBiYW8gZ2lvIGxhcCB1eSBiYW4gbGFtIHRob2kgZGUgZGlldSB0 cmEuIEhvbSBuYXksIERCIE5ndXllbiBNaW5oIFRodXlldCwgDQpMZSBWYW4gQ3VvbmcgdmEgbmhp ZXUgREIga2hhYyBkZSBuZ2hpIGxhcCB1eSBiYW4gbmF5LiBZIGtpZW4gY3VhIERCIE5ndXllbiBN aW5oIA0KVGh1eWV0IHRvaSBjaG8gbGEgbW90IGtpZW4gbmdoaSBkdW5nIGx1YXQsIHRoZSBoaWVu IGR1b2MgeSBraWVuIG1hIG5oaWV1IGN1IHRyaSB2YSBuaGlldSANCkRCUUggcXVhbiB0YW0uIERh eSBsYSB5IGtpZW4geGFjIGRhbmcuIENvbiBsYXAgaGF5IGtob25nIGRvaSBVeSBiYW4gVGh1b25n IHZ1IFFILiANClRyb25nIG5nYXkgbmF5LCBuZ2F5IG1haSBob2FjIGN1bmcgbGFtIG5nYXkga2lh IHRvaSBuZ2hpIHNlIGNvIHBoYW4gaG9pLiANCg0KKiBDYSBuaGFuIG9uZyBjbyBkb25nIHRpbmgg dm9pIGRlIHh1YXQgdGhhbmggbGFwIFV5IGJhbiBsYW0gdGhvaSBuYXk/IA0KDQotIFRvaSB1bmcg aG8gZGUgeHVhdCBjdWEgREIgVGh1eWV0LiBOaHVuZyB0b2kgY2hpIGNvIG1vdCBiYW4ga2hvYW4g ZG8gbGEgbmhpZW0ga3kgDQpRdW9jIGhvaSBraG9hIFhJSSBuYXkgc2FwIGhldCByb2kuIE5ldSBt dW9uIHRoYW5oIGxhcCB0aGkgcGhhaSB0aGFuaCBsYXAgc29tLiBVeSBiYW4gDQpjbyBraGkgcGhh aSB0aGFuaCBsYXAgbmdheSB0cm9uZyBreSBob3AgbmF5LCBsYW0gdmllYyB2b2kgbmhhdSBkZSB0 cmllbiBraGFpIGNvbmcgdmllYyANCm5nYXksIHZhIGNvIHRoZSBzZSBwaGFpIHN1IGR1bmcgcmF0 IG5oaWV1IGNodXllbiBnaWEgZG9jIGxhcCB2YSBrZXQgcXVhIGN1YSBjYWMgdXkgYmFuIA0Ka2hh YyBuaHUgVXkgYmFuIEtpZW0gdHJhIFQuVSwgY3VhIFRoYW5oIHRyYSBDaGluaCBwaHUsIFRoYW5o IHRyYSBjYWMgYm8sIG5nYW5oLi4uIFN1IA0KZHVuZyB0b2kgZGEgY2FjIGtldCBxdWEgZGEgY28u IFNhbmcgZGVuIGt5IGhvcCBzYXUgdGhpIGJhbyBjYW8ga2V0IHF1YS4gDQoNCmh0dHA6Ly92bmVj b25vbXkudm4vMjAxMDA4MDUwMjU4MTYxMDFwMGM1L2xvaS1uaHVhbi12aW5hbGluZXMtY28tdGhl LWdpYW0tNjAtdmktZ2FuaC1uby12aW5hc2hpbi5odG0gVFUgTkdVWUVOIDE1OjM1IChHTVQrNykg LSA1LzgvMjAxMCANCg0KIkxvaSBuaHVhbiBWaW5hbGluZXMgY28gdGhlIGdpYW0gNjAlIHZpIGdh bmggbm8gVmluYXNoaW4iIA0KDQpUcm9uZyBzbyAzNiB0YXUgY3VhIFZpbmFzaGluIGNodXllbiBn aWFvIGNobyBWaW5hbGluZXMgdGhpIGNvIGRlbiAyLzMgbGEga2hvbmcgaG9hdCANCmRvbmcgZHVv YyBkbyBxdWEgY3UsIHRoaWV1IHZvbiwgdHJ1YyB0cmFjIGt5IHRodWF0DQoNClRyYW8gZG9pIHZv aSBiYW8gZ2lvaSBiZW4gbGUgY3VvYyBob3AgYmFvIENoaW5oIHBodSBjaGlldSA0LzgsIENodSB0 aWNoIEhvaSBkb25nIHRoYW5oIA0KdmllbiBraWVtIFRvbmcgZ2lhbSBkb2MgVG9uZyBjb25nIHR5 IEhhbmcgaGFpIFZpZXQgTmFtIChWaW5hbGluZXMpIER1b25nIENoaSBEdW5nIA0KY2hvIGJpZXQs IHRyb25nIHNvIDM2IHRhdSBjdWEgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgdGF1IHRodXkgVmlldCBO YW0gKFZpbmFzaGluKSANCmNodXllbiBnaWFvIGNobyBWaW5hbGluZXMgdGhpIGNvIGRlbiAyLzMg bGEga2hvbmcgaG9hdCBkb25nIGR1b2MgZG8gcXVhIGN1LCB0aGlldSB2b24sIA0KdHJ1YyB0cmFj IGt5IHRodWF0Li4uDQoNCkRvIHZheSwgc2F1IGtoaSBDaGluaCBwaHUgdGFpIGNvIGNhdSBWaW5h c2hpbiB2YSBjaHV5ZW4gZ2lhbyBtb3Qgc28gZHUgYW4sIGRvaSB0YXUgc2FuZyANCmNobyBWaW5h bGluZXMgdGhpIGRvbiB2aSBuYXkgZGEgcGhhaSB0aHUgeGVwIGtob2FuZyA1MDAgdHkgZG9uZyBk ZSB4dSBseSBuaHVuZyB0b24gdGFpIA0KYmFuIGRhdSBjdWEgY2FjIGR1IGFuLCBuaHUgY2hpIHRp ZW4gZGUgeHUgbHkgY2FjIHRyYW5oIGNoYXAgdGF1IGN1YSBWaW5hc2hpbiBiaSBiYXQgZ2l1IA0K dHJ1b2MgZGF5LCBjaGkgdGllbiBub3AgYmFvIGhpZW0gZGFuZyBuZW8gZGF1IHRhaSBjYWMgdnVu ZyBiaWVuIG51b2MgbmdvYWkgZGUgbGF5IHRhdSB2ZSwgDQp0aWVuIGx1b25nIGNobyB0aHV5ZW4g dmllbiwgbmhpZW4gbGlldS4uLg0KDQpIaWVuIGNoaSBjb24gbGFpIDEwIHRhdSBkYW5nIG5hbSB0 cm9uZyB0aW5oIHRyYW5nIGNodWEgaG9hdCBkb25nLiBDbyBtb3Qgc28gcGhhaSB0aW5oIA0KdG9h biBsYWkgeGVtIGNvIGhpZXUgcXVhIGhheSBraG9uZywgdHJvbmcgZG8gY28gdGF1IEhvYSBTZW4u IE5nb2FpIHJhLCB0b25nIHNvICB2b24gZHUgDQpraWVuIGNoaSBjaG8gY29uZyB0YWMgc3VhIGNo dWEgdGF1IHNlIGtob2FuZyA1IHRyaWV1IFVTRC4NCg0KQ28gdGhlIHNlIGJhbiB0YXUgSG9hIFNl bg0KDQpWYXkgVmluYWxpbmVzIHNlIHh1IGx5IG5odSB0aGUgbmFvIGRvaSB2b2kgY2FjIGtob2Fu IG5vIGR1b2MgY2h1eWVuIHR1IFZpbmFzaGluIHNhbmcsIA0KdGh1YSBvbmc/DQoNClRoZW8gcXV5 ZXQgZGluaCBjdWEgQ2hpbmggcGh1IHRoaSBWaW5hc2hpbiBzZSBjaHV5ZW4gbmd1eWVuIHRyYW5n IGNhYyBkdSBhbiwgdGFpIHNhbiANCnNhbmcgY2hvIFZpbmFsaW5oZXMsIHRyb25nIGRvIGNvIGNh IGNvbmcgbm8uIFR1eSBuaGllbiwgY2h1bmcgdG9pIGN1bmcgcGhhaSB4ZW0geGV0IGt5IA0KdGlu aCB0cmFuZyBjYWMgZHUgYW4uIENodW5nIHRvaSBkYSBraWVuIG5naGkgQ2hpbmggcGh1IHRhbSB0 aG9pIHRydW9jIG1hdCBjaGkgdGllcCBuaGFuIA0KdmllYyBxdWFuIGx5IGRlIGhvIHRybyBkaWV1 IGhhbmguIENoaW5oIHBodSBjdW5nIGRhIGNoYXAgbmhhbiBkZSBuZ2hpIG5heS4NCg0KQ29uIGdp YSB0cmkgdGh1YyBjdWEgY29uZyBubyB0aGkgcGhhaSBkdW9jIGtpZW0gdG9hbiB2YSBkYW5oIGdp YSBsYWkgZGUgY2h1bmcgdG9pIGNvIGNvIA0Kc28gZGFtIGJhbyBkdW9jIG5naGlhIHZ1IHRyYSBu byB2YSB0aHVhbiBsb2kgdHJvbmcgcXVhbiBseSBzYXUgbmF5Lg0KDQpEaWV1IGRvIGN1bmcgY28g bmdoaWEgbGEgY29uIHNvIG1hIFZpbmFzaGluIGR1YSByYSBsYSBuZ3V5ZW4gdGFjIGN1YSBxdXll dCBkaW5oIGN1YSANCkNoaW5oIHBodSwgY29uIHRodWMgdGUgdGhpIGRhIGNvIHN1IGRpZXUgY2hp bmguIFRodSB0dW9uZyBjdW5nIGRhIGRvbmcgeSBjaG8gVmluYWxpbmVzIA0KY2hvbiBjYWMgZG9u IHZpIHR1IHZhbiwga2llbSB0b2FuIGRlIGRhbmggZ2lhIGxhaS4NCg0KTmh1bmcgdHJvbmcgc28g MjAuMDAwIHR5IGNvbmcgbm8gY2h1eWVuIHR1IFZpbmFzaGluIHNhbmcgY2hvIDIgZG9hbmggbmdo aWVwIChQZXRybyANClZpZXRuYW0gdmEgVmluYWxpbmVzKSB0aGkgVmluYWxpbmVzIG5oYW4gYmFv IG5oaWV1Pw0KDQpOZXUgeGV0IHZlIHBodW9uZyBkaWVuIG5vIHRoaSBjYWMga2hvYW4gbm8gY3Vh IFZpbmFzaGluIGNoaW5oIGxhIGdpYSB0cmkgbWEgdGFwIGRvYW4gDQpuYXkgZGEgdmF5IGRlIG11 YSBjYWMgZHUgYW4sIHRhdSBjaHV5ZW4gc2FuZyBjaG8gVmluYWxpbmVzLCB0cmkgZ2lhIGtob2Fu ZyAxNC4yMDAgdHkgDQpkb25nLiBHYW4gbmh1IDEwMCUgc28gbmF5IGxhIHZheSBuZ2FuIGhhbmcu DQoNCkNvbiB0aHVjIGNoYXQsIHZvbiBjaHUgc28gaHV1IGN1YSBWaW5hc2hpbiB0YWkgY2FjIGRv YW5oIG5naGllcCBjaHV5ZW4gc2FuZyBjaHVuZyB0b2kgDQpyYXQgdGhhcCwgY2hpIGhvbiAyMDAg dHkgZG9uZy4NCg0KVGhlbyBzbyBzYWNoIGN1YSBWaW5hc2hpbiB0aGkgdG9hbiBibyBkb2kgdGF1 IGNodXllbiBnaWFvIGNvIGdpYSB0cmkgaGllbiB0YWkga2hvYW5nIA0KMTQuMjAwIHR5LCB0aGFw IGhvbiBzbyBjb25nIG5vIG1hIFZpbmFzaGluIGJvIHJhIHZheSBtdWEgdGF1IGJhbiBkYXUgbGEg Mi41MDAgdHkuIA0KDQpUdXkgbmhpZW4sIHNhdSBraGkga2llbSB0b2FuIHRoaSBkbyBtb2kgbGEg c28gbGlldSBiYW4gZ2lhbyBjaGluaCB0aHVjLg0KDQpWYXksIHNhcCB0b2kgdGF1IEhvYSBTZW4g bWEgVmluYWxpbmVzIHRpZXAgbmhhbiBzZSBkdW9jIGtoYWkgdGhhYyBuaHUgdGhlIG5hbywgYm9p IGtoaSANClZpbmFzaGluIGNvbiBraGFpIHRoYWMsIG1vaSBuZ2F5IHRhdSBuYXkgbG8gZGVuIDEs NSB0eSBkb25nPw0KDQpDaHVuZyB0b2kgZGEgeGFjIGRpbmgsIHRyb25nIHNvIGNhYyB0YXUgY3Vh IFZpbmFzaGluLCBjbyBtb3Qgc28gdGF1IG5ldSB0aWVwIHR1YyBraGFpIHRoYWMgDQp0aGVvIGNh Y2ggY3VhIFZpbmFzaGluIHRoaSBzZSBraG9uZyBoaWV1IHF1YSwgdHJvbmcgZG8gY28gdGF1IEhv YSBTZW4uIERvIGRvLCBuZXUgdGllcCANCnR1YyBraGFpIHRoYWMgdmFuIHRhaSBoYW5oIGtoYWNo IGNoYWMgY2hhbiBzZSBraG8gdGhhbmggY29uZy4gVGhheSB2aSB2YW4gdGFpIGhhbmgga2hhY2gg DQp0cmVuIGJpZW4sIGNvIHRoZSBjaHVuZyB0b2kgc2Uga2hhaSB0aGFjIHRoZW8gaHVvbmcgcGh1 YyB2dSBraGFjaCBkdSBsaWNoIHZlbiBiaWVuIHZhIGR1IA0KbGljaCBoYWkgZGFvLCBwaHVjIHZ1 IGNobyBxdW9jIHBob25nIHZhIGtoYWkgdGhhYyBjYWMgZGljaCB2dSBhbiwgbyBuZ2F5IHRyZW4g dGF1Li4uDQoNClR1eSBuaGllbiwgbmV1IHNhdSBraGkgdGluaCB0b2FuIG1vaSBwaHVvbmcgYW4g bWEga2hvIG1hbmcgbGFpIGhpZXUgcXVhIHRoaSBjaHVuZyB0b2kgDQpjdW5nIHNlIHRpbmggZGVu IGNodXllbiBraWVuIG5naGkgQ2hpbmggcGh1IGJhbiB0YXUgbmF5LCBkdSBjaG8gZ2lhIHRyaSBr aG9uZyBjb24gbmhpZXUuDQoNClZlIGtoYWNoIHF1YW4sIFZpbmFsaW5lcyBjbyBuaGluIHRoYXkg Y28gaG9pIHR1IHZpZWMgdGllcCBuaGFuIGNhYyBkdSBhbiBjdWEgVmluYXNoaW4/DQoNClRodWMg Y2hhdCB0aGkgZGF5IHZ1YSBsYSBjbyBob2kgdnVhIGxhIHRoYWNoIHRodWMgZG9pIHZvaSBjaHVu ZyB0b2kuIENvIGhvaSBsYSBuZ29haSB2aWVjIA0KdGFuZyB0cm9uZyB0YWkgZG9pIHRhdSBsZW4g dGhpIGNvbiBraGFuZyBkaW5oIHJhbmcsIENoaW5oIHBodSBkYSBuaGluIG5oYW4gdmEga2hhbmcg ZGluaCANCnZhaSB0cm8gY2h1IGx1YyB0cm9uZyB2YW4gdGFpIGJpZW4gY3VhIFZpbmFsaW5lcy4g DQoNClR1eSBuaGllbiwgZG8gbmh1bmcgZHUgYW4sIG5odW5nIGNvbiB0YXUgY2h1eWVuIGdpYW8g ZGV1IGNvIHRpbmggdHJhbmcgY3UsIGtlbSBoaWV1IA0KcXVhIHZhIHZvbiBkYXUgdHUgbGFpIGxv biBuZW4gY2h1bmcgdG9pIHNlIG1hdCBraGEgbmhpZXUgdm9uIGRlIHN1YSBjaHVhLCBjYWkgdGFv Lg0KDQpWb2kga2luaCBuZ2hpZW0gdm9uIGNvLCBoeSB2b25nIGNodW5nIHRvaSBzZSBraGFjIHBo dWMgZHVvYyBuaHVuZyBoYW4gY2hlIHRyZW4uDQoNCkNoYWMgY2hhbiBsb2kgbmh1YW4gbmFtIG5h eSBzZSBnaWFtDQoNClNhdSBraGkgdGllcCBuaGFuIGNhYyBkdSBhbiBkbywgVmluYWxpbmVzIGNv IHBoYW4gaG9pIGdpIHZvaSBDaGluaCBwaHUgdmEgbGlldSBjbyBhbmggDQpodW9uZyBkZW4gaG9h dCBkb25nIGN1YSB0b25nIGNvbmcgdHk/DQoNCkNodW5nIHRvaSBkYSBjbyBiYW8gY2FvIHZvaSBD aGluaCBwaHUgdmUgdGluaCB0cmFuZyB0aHVjIHRlIGtoaSB0aWVwIG5oYW4uIENvbiB2aWVjIHRy YSANCm5vIGRhaSBoYW4gdGhpIHBoYWkgY2hvIHNhdSBraGkga2llbSB0b2FuLCBjbyB0aGUgc2Ug cGhhaSB5ZXUgY2F1IENoaW5oIHBodSBobyB0cm8uDQoNCkhpZW4gdGFuZyB0cnVvbmcgbG9pIG5o dWFuIHRydW5nIGJpbmggaGFuZyBuYW0gY3VhIGNodW5nIHRvaSBraG9hbmcgdHUgNSAtIDclLCAg dm9pIGdpYSANCnRyaSB0cmVuIDEuMDAwIHR5IGRvbmcuIER1IGtpZW4gbmFtIG5heSBsYSAxLjIw MCB0eSBkb25nLg0KDQpUdXkgbmhpZW4sIHZvaSB2aWVjIHBoYWkgdGllcCBuaGFuIG1vdCBzbyBk dSBhbiB0dSBWaW5hc2hpbiB0aGkgY2hhYyBjaGFuIGxvaSBuaHVhbiBuYW0gDQpuYXkgc2UgZ2lh bS4gRGFjIGJpZXQsIHZvaSB2aWVjIHBoYWkgdGllcCBuaGFuIGtob2FuIGxvIGN1YSBoYWkgZG9h bmggbmdoaWVwIHZhbiB0YWkgdHUgDQpWaW5hc2hpbiB0aGkgbG9pIG5odWFuIGN1YSBWaW5hbGlu ZXMgY28gdGhlIHNlIGdpYW0ga2hvYW5nIDcwMCB0eSBkb25nLCBuZ2hpYSBsYSBnaWFtIA0Ka2hv YW5nIDYwJS4NCg0KVG9uZyBzbyBsYW8gZG9uZyBjaHV5ZW4gdHUgVmluYXNoaW4gc2FuZyBsYSBi YW8gbmhpZXUsIHZhIFZpbmFsaW5lcyBkYSB2YSBzZSBibyB0cmkgdmllYyANCmxhbSBjaG8gaG8g bmh1IHRoZSBuYW8/IA0KDQpUaW5oIGRlbiBuYXksIHRvYW4gYm8gc28gbHVvbmcgbGFvIGRvbmcg Y2h1eWVuIHR1IFZpbmFzaGluIHNhbmcgVmluYWxpbmVzIGxhIDEuNDg4IA0Kbmd1b2kuIENodW5n IHRvaSBkYSBiYW8gZGFtIHBoYW4gbG9uIHZhbiBjbyBjb25nIHZpZWMgb24gZGluaCwgdHJ1IG1v dCBzbyB0aHV5ZW4gdmllbiANCnRhaSAxMCB0YXUgY2h1YSB0aGUgaG9hdCBkb25nLiANCg0KTmV1 IGNhYyB0YXUgbmF5IGR1b2MgaG9hbiB0YXQgc3VhIGNodWEgdHJvbmcgbmFtIG5heSwgc28gdGh1 eWVuIHZpZW4gY29uIGxhaSBjdW5nIHNlIGNvIA0KdmllYyBsYW0gZGF5IGR1Lg0KDQpSaWVuZyB2 ZSB0byBjaHVjIGNhbiBibywga2hpIGJhbiwgZ2lhbywgY2h1bmcgdG9pIGRhIHNvIGJvIGRhbmgg Z2lhIGxhaSBuYW5nIGx1YyB0byBjaHVjIA0KdGFpIGNhYyBkb24gdmkuIE5odW5nIGRvbiB2aSBu YW8gdmFuIGRhbSBiYW8gZHV5IHRyaSBkdW9jIGhvYXQgZG9uZyBkb2FuaCBuZ2hpZXAsIHRvIA0K Y2h1YyBvIGRvIHNlIGR1b2MgZ2l1IG5ndXllbi4gDQoNClR1eSBuaGllbiwgdHJvbmcgdHJ1b25n IGhvcCBuYW5nIGx1YyBjaHV5ZW4gbW9uIGtob25nIGRhbSBiYW8sIGRhYyBiaWV0IGxhIG5hbmcg bHVjIA0KcXVhbiBseSB0YWkgY2hpbmgsIHRoaSBjaHVuZyB0b2kgc2UgeGF5IGR1bmcgcGh1b25n IGFuIGRlIGNvIGNhdSBsYWkgY2FjIGhvaSBkb25nIHRoYW5oIA0KdmllbiwgZGFjIGJpZXQgbGEg Y2FjIHZpIHRyaSBsYW5oIGRhby4gDQoNCmh0dHA6Ly93d3cudmlldC5yZmkuZnIvdmlldC1uYW0v MjAxMDExMDMtdmktdGhlLXRodS10dW9uZy1uZ3V5ZW4tdGFuLWR1bmctYmktc3V5LXlldS1kby12 dS12aW5hc2hpbiAwMy8xMS8yMDEwIFRoYW5oIFBodW9uZyANCg0KVmkgdGhlIG9uZyBOZ3V5ZW4g VGFuIER1bmcgc3V5IHlldSBkbyB2dSBWaW5hc2hpbiwgcXVhbiBseSBraW5oIHRlIGtlbSAmIHRo YXQgYmFpICANCg0KKEFuaDogb25nIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcuIEFuaCA6IFJl dXRlcnMpDQoNClN1IGtpZW4gZGFpIGJpZXUgTmd1eWVuIE1pbmggVGh1eWV0IGRlIG5naGkgUXVv YyBob2kgYm8gcGhpZXUgdGluIG5oaWVtLCBoYXkgDQpub2kgZHVuZyBob24gbGEgYm8gcGhpZXUg YmF0IHRpbiBuaGllbSwgY2FjIHRoYW5oIHZpZW4gY2hpbmggcGh1IGNvIGxpZW4gcXVhbiBkZW4g DQp2dSBWaW5hc2hpbiBkYSBnYXkgeG9uIHhhbyBkdSBsdWFuIHRoZSBnaW9pIG5odW5nIG5nYXkg cXVhLCBuaGF0IGxhIGRlIG5naGkgbmF5IA0KbmhhbSBjdSB0aGUgdmFvIG9uZyB0aHUgdHVvbmcg Tmd1eWVuIFRhbiBEdW5nLCBuZ3VvaSBkYSBibyBuaGllbSBjaHUgdGljaCBWaW5hc2hpbi4gDQoN Ck9uZyBOZ3V5ZW4gVGFuIER1bmcgY3VuZyBsYSBuZ3VvaSB0cnVjIHRpZXAgZ2lhbSBzYXQgb25n IE5ndXllbiBUaGFuaCBCaW5oLiBPbmcgDQpCaW5oIGRhIGJpIGRpbmggY2hpIGNodWMgdnUgdmFv IHRoYW5nIDcgdnVhIHF1YSB2YSBzYXUgZG8gYmkgYmF0IHZpIHRyYWNoIG5oaWVtIGN1YSBvbmcg DQp0cm9uZyBtb24gbm8gbGVuIHRvaSA0LDUgdHkgZG9sYSwga2hpZW4gdGFwIGRvYW4gZGkgZGVu IGNobyBnYW4gbmh1IHBoYSBzYW4uIA0KDQpLaG9uZyBjaGkgY28gb25nIE5ndXllbiBNaW5oIFRo dXlldCwgbWEgbmhpZXUgZGFpIGJpZXUgcXVvYyBob2kga2hhYyBjdW5nIHlldSBjYXUgcGhhaSBs YW0gcm8gdHJhY2ggbmhpZW0gY3VhIGNhYyB0aGFuaCB2aWVuIGNoaW5oIHBodSBjbyBsaWVuIHF1 YW4gZGVuIHZ1IHRhaSB0aWVuZyB0YWkgY2hpbmggdHJhbSB0cm9uZyBuaGF0IHR1IHRydW9jIGRl biBuYXkgbyBWaWV0IE5hbS4gDQpUaGVvIHRvIFdhbGwgU3RyZWV0IEpvdXJuYWwsIHNvIHJhIG5n YXkgaG9tIHF1YSwgc3Uga2llbiBub2kgdHJlbiBjaG8gdGhheSB2dSBWaW5hc2hpbiBsYW0gc3V5 IHlldSB2aSB0aGUgY3VhIG9uZyBOZ3V5ZW4gVGFuIER1bmcsIGR1bmcgdmFvIGx1YyBzYXAgZGll biByYSBEYWkgaG9pIERhbmcgdmFvIHRoYW5nIEdpZW5nIG5hbSB0b2kuIA0KVGhlbyB0byBiYW8g bmF5LCB2dSBWaW5hc2hpbiBjaG8gdGhheSBvbmcgTmd1eWVuIFRhbiBEdW5nIGtob25nIHBoYWkg bGEgbW90IG5oYSANCnF1YW4gbHkga2luaCB0ZSBjbyBuYW5nIGx1YyB2YSBjaGluaCBzYWNoIGN1 YSBvbmcgbmhhbSB0YW8gcmEgbmh1bmcgdGFwIGRvYW4ga2luaCB0ZSANCnRoZW8ga2lldSBWaW5h c2hpbiBkYSB0aGF0IGJhaS4gT25nIER1bmcgZGEgdHVvbmcgcmFuZyBuaHVuZyB0YXAgZG9hbiBk byBvbmcgbGFwIHJhIA0Kc2UgZGF5IG5lbiBraW5oIHRlIFZpZXQgTmFtIGRpIGxlbiBnaW9uZyBu aHUgSGFuIFF1b2MgZGEgbGFtIHRydW9jIGRheS4NCg0KQ28gZGF1IGhpZXUgYmFvIGNoZSBjaG8g bmh1bmcgc2FpIHRyYWkgY3VhIFZpbmFzaGluIA0KDQpWYW4gZGUgbGEgbmh1bmcgdGFwIGRvYW4g a2luaCB0ZSB0aGVvIGtpZXUgbmF5IGRhIGR1b2MgdGhhbmggbGFwIG1vdCBjYWNoIGNoaW5oIHRo dWMsIA0Kbmh1bmcgbGFpIGhvYXQgZG9uZyB0aGVvIGtpZXUgdGhpIGRpZW0gdmEgaG9hbiB0b2Fu IGtob25nIGNvIG1vdCBraHVvbiBraG8gcGhhcCBseSANCm5hbyBjYS4gSG9uIHRoZSBudWEsIG5o aWV1IHRhcCBkb2FuIGN1YSBOaGEgbnVvYyBkYSBkdWEgbmhhdSBkYXUgdHUgdmFvIG5odW5nIG5n YW5oIA0KY2hhbmcgZGluaCBkYW5nIGdpIGRlbiBsaW5oIHZ1YyBjdWEgaG8sIGNoYW5nIGhhbiBu aHUgVGFwIGRvYW4gRGllbiBsdWMgbGFpIGRhdSB0dSByYXQgDQpuaGlldSB2YW8gY2FjIG1hbmcg ZGllbiB0aG9haSBkaSBkb25nLCBjb24gdGFwIGRvYW4gUGV0cm9WaWV0bmFtLCB0aGkgYm8gdm9u IHZhbyBuaHVuZyANCm5nYW5oIG5odSBkdSBsaWNoLiANCg0KVHJvbmcgdnUgVmluc2FoaW4sIGR1 IGx1YW4gY29uIGRhdCBuaGlldSBkYXUgaG9pIHZlIHF1YW4gaGUgY3VhIHRodSB0dW9uZyBOZ3V5 ZW4gVGFuIA0KRHVuZyB2b2kgY3V1IGNodSB0aWNoIFZpbmFzaGluIE5ndXllbiBUaGFuaCBCaW5o LCBuZ3VvaSBtYSBvbmcgRHVuZyB0cnVjIHRpZXAgZ2lhbSANCnNhdCwgbmh1bmcgbGFpIGRlIG5o dW5nIHNhaSBwaGFtIGtlbyBkYWkgbmh1IHRoZS4gVHJvbmcgYmFvIGNhbyBnb2kgY2FjIGRhaSBi aWV1IHZhbyANCnRoYW5nIHRydW9jLCBVeSBiYW4gVHUgcGhhcCBRdW9jIGhvaSBkYSB0dW5nIG5o YW4gZGluaCAiY28gZGF1IGhpZXUgYmFvIGNoZSBjaG8gDQpuaHVuZyBzYWkgdHJhaSwgdmkgcGhh bSBwaGFwIGx1YXQgY3VhIFZpbmFzaGluLCBsYW0gdGhpZXQgaGFpIGxvbiBkZW4gdGllbiB2YSB0 YWkgc2FuIG5oYSBudW9jIi4gDQpOaHVuZyB0cm9uZyBidW9pIGtoYWkgbWFjIGt5IGhvcCBRdW9j IGhvaSwgb25nIE5ndXllbiBUYW4gRHVuZyBkYSBraG9uZyBjbyBiYW8gDQpjYW8gY2hpIHRpZXQg dmUgdnUgVmluYXNoaW4sIG1hIGNoaSBuaGluIG5oYW4gbW90IGNhY2ggY2h1bmcgY2h1bmcgcmFu ZyB0aW5oIHRyYW5nIGN1YSANClZpbmFzaGluIGxhICJuZ2hpZW0gdHJvbmciLiBPbmcgRHVuZyBu aGFuIHRyYWNoIG5oaWVtIGN1YSBjaGluaCBwaHUgdmEgY2hvIGJpZXQgDQp0aGVtIGxhIGNoaW5o IHBodSBkYSAibmdoaWVtIHR1YyBraWVtIGRpZW0iIHZlIHZ1IG5heS4gDQoNCkNobyB0b2kgbmF5 LCBjaGluaCBwaHUgVmlldCBOYW0gdmFuIHRodW9uZyBsYXkgbHkgY28gbGEgZG8gImxhbSB0aGkg ZGllbSIsIG5lbiBtbyANCmhpbmggdGFwIGRvYW4gY2h1YSBjbyBoaWV1IHF1YSB2YSBkbyAiY28g Y2hlIiwgbmVuIHZpZWMgdGhhbmggdHJhLCBraWVtIHRvYW4gVmluYXNoaW4gDQpjaHVhIHNhdSBz YXQsIG5odW5nIHZvaSBkZSBuZ2hpIHRoYW5oIGxhcCBVeSBiYW4gZGlldSB0cmEgdmUgVmluYXNo aW4gdmEgYm8gcGhpZXUgYmF0IHRpbiANCm5oaWVtIGNoaW5oIHBodSwgY2FjIGRhaSBiaWV1IHF1 b2MgaG9pIGRhIGRhdCB0aGFuZyB2YW4gZGUgdmUgdHJhY2ggbmhpZW0gY2EgbmhhbiBjdWEgDQpv bmcgTmd1eWVuIFRhbiBEdW5nIHRyb25nIHZ1IG5heS4gTGlldSBVeSBiYW4gdGh1b25nIHZ1IFF1 b2MgaG9pIGNvIHNlIGRhbSBsYW0gDQp0aGVvIGRlIG5naGkgbmh1IGN1YSBEYWkgYmlldSBOZ3V5 ZW4gTWluaCBUaHV5ZXQgaGF5IGxhIGNvbiBwaGFpIGNobyBrZXQgcXVhIGN1b2MgDQpkYXUgZGEg dHJhbmggZ2lhbmggcXV5ZW4gbHVjIHRyb25nIG5vaSBibyBEYW5nIHRydW9jIGt5IERhaSBob2kg c2FwIHRvaSA/IA0KDQpodHRwOi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9hcmNoaXZlL1F1eWV0 LWRpbmgvUXV5ZXQtZGluaC05MTktUUQtVFRnLWJvLW5oaWVtLXRoYW5oLXZpZW4tSG9pLWRvbmct cXVhbi10cmktVGFwLWRvYW4tQ29uZy1uZ2hpZXAtVGF1LXRodXktVmlldC1OYW0tdmIxMjg5N3Qx Ny5hc3B4DQoNClRodSB0dW9uZzogUXV5ZXQgZGluaCBibyBuaGllbSB0aGFuaCB2aWVuIEhEUVQg VmluYXNoaW4gZG8gVGh1IHR1b25nIGJhbiBoYW5oIA0KDQpDT05HIEhPQSBYQSBIT0kgQ0hVIE5H SElBIFZJRVQgTkFNDQpEb2MgbGFwIC0gVHUgZG8gLSBIYW5oIHBodWMNCg0KU286IDkxOS9RRC1U VGcgICBIYSBOb2ksIG5nYXkgMjkgdGhhbmcgNiBuYW0gMjAwNiANCiANClFVWUVUIERJTkggVkUg VklFQyBCTyBOSElFTSBUSEFOSCBWSUVOIEhPSSBET05HIFFVQU4gVFJJIFRBUCBET0FOIENPTkcg TkdISUVQIFRBVSBUSFVZIFZJRVQgTkFNDQoNClRIVSBUVU9ORyBDSElOSCBQSFUNCg0KQ2FuIGN1 IEx1YXQgVG8gY2h1YyBDaGluaCBwaHUgbmdheSAyNSB0aGFuZyAxMiBuYW0gMjAwMTsNCg0KQ2Fu IGN1IFF1eWV0IGRpbmggc28gMTA0LzIwMDYvUUQtVFRnIG5nYXkgMTUgdGhhbmcgNSBuYW0gMjAw NiBjdWEgVGh1IHR1b25nIA0KQ2hpbmggcGh1IHZlIHZpZWMgdGhhbmggbGFwIENvbmcgdHkgbWUg LSBUYXAgZG9hbiBDb25nIG5naGllcCBUYXUgdGh1eSBWaWV0IE5hbTsNCg0KWGV0IGRlIG5naGkg Y3VhIEhvaSBkb25nIHF1YW4gdHJpIFRvbmcgY29uZyB0eSBDb25nIG5naGllcCBUYXUgdGh1eSBW aWV0IE5hbSB0YWkgdmFuIA0KYmFuIHNvIDk0MS9UVHItQ05ULVRDQ0ItTEQgbmdheSAwNSB0aGFu ZyA2IG5hbSAyMDA2OyBjdWEgQm8gdHJ1b25nIEJvIE5vaSB2dSB0YWkgDQp2YW4gYmFuIHNvIDI0 NTcvVFRyLUJOViBuZ2F5IDE1IHRoYW5nIDYgbmFtIDIwMDYsIA0KDQpRVVlFVCBESU5IOiANCg0K RGlldSAxLiBCbyBuaGllbSB0aGFuaCB2aWVuIEhvaSBkb25nIHF1YW4gdHJpIFRhcCBkb2FuIENv bmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgDQpOYW0gbmh1IHNhdToNCg0KLSBPbmcgUGhhbSBUaGFu aCBCaW5oLCBDaHUgdGljaCBIb2kgZG9uZyBxdWFuIHRyaSBUb25nIGNvbmcgdHkgQ29uZyBuZ2hp ZXAgVGF1IHRodXkgDQpWaWV0IE5hbSwgZ2l1IGNodWMgQ2h1IHRpY2ggSG9pIGRvbmcgcXVhbiB0 cmkgbGEgQ2h1IHRpY2ggVGFwIGRvYW4gQ29uZyBuZ2hpZXAgVGF1IA0KdGh1eSBWaWV0IE5hbSBr aWVtIFRvbmcgZ2lhbSBkb2MgZGlldSBoYW5oIGNobyBkZW4ga2hpIGNvIFRvbmcgZ2lhbSBkb2Mg bW9pLg0KDQotIE9uZyBIbyBOZ29jIFR1bmcsIFV5IHZpZW4gSG9pIGRvbmcgcXVhbiB0cmkga2ll bSBUcnVvbmcgYmFuIEtpZW0gc29hdCBUb25nIGNvbmcgDQp0eSBDb25nIG5naGllcCBUYXUgdGh1 eSBWaWV0IE5hbSwgZ2l1IGNodWMgVXkgdmllbiBIb2kgZG9uZyBxdWFuIHRyaSBraWVtIFRydW9u ZyBiYW4gDQpLaWVtIHNvYXQgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgVGF1IHRodXkgVmlldCBOYW0u DQoNCi0gT25nIE5nbyBUaGUgVmlldCwgVXkgdmllbiBIb2kgZG9uZyBxdWFuIHRyaSBUb25nIGNv bmcgdHkgQ29uZyBuZ2hpZXAgVGF1IHRodXkgVmlldCANCk5hbSwgZ2l1IGNodWMgVXkgdmllbiBI b2kgZG9uZyBxdWFuIHRyaSBUYXAgZG9hbiBDb25nIG5naGllcCBUYXUgdGh1eSBWaWV0IE5hbS4N Cg0KLSBPbmcgQ2h1IFRoZSBIdW5nLCBVeSB2aWVuIEhvaSBkb25nIHF1YW4gdHJpIFRvbmcgY29u ZyB0eSBDb25nIG5naGllcCBUYXUgdGh1eSANClZpZXQgTmFtLCBnaXUgY2h1YyBVeSB2aWVuIEhv aSBkb25nIHF1YW4gdHJpIFRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgTmFtLg0K DQotIE9uZyBUcmFuIFF1YW5nIFZ1LCBVeSB2aWVuIEhvaSBkb25nIHF1YW4gdHJpIFRvbmcgY29u ZyB0eSBDb25nIG5naGllcCBUYXUgdGh1eSANClZpZXQgTmFtLCBnaXUgY2h1YyBVeSB2aWVuIEhv aSBkb25nIHF1YW4gdHJpIFRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgTmFtLg0K DQotIE9uZyBMdXUgUXV5ZXQgVGhhbmcsIFV5IHZpZW4gSG9pIGRvbmcgcXVhbiB0cmkgVG9uZyBj b25nIHR5IENvbmcgbmdoaWVwIFRhdSB0aHV5IA0KVmlldCBOYW0sIGdpdSBjaHVjIFV5IHZpZW4g SG9pIGRvbmcgcXVhbiB0cmkgVGFwIGRvYW4gQ29uZyBuZ2hpZXAgVGF1IHRodXkgVmlldCBOYW0u DQoNCi0gT25nIE5ndXllbiBEdWMgVGhhbiwgR2lhbSBkb2MgTmhhIG1heSBkb25nIHRhdSBIYSBM b25nLCBnaXUgY2h1YyBVeSB2aWVuIEhvaSANCmRvbmcgcXVhbiB0cmkgVGFwIGRvYW4gQ29uZyBu Z2hpZXAgVGF1IHRodXkgVmlldCBOYW0uDQoNCi0gT25nIERvIFRoYW5oIEh1bmcsIEdpYW0gZG9j IENvbmcgdHkgVHUgdmFuIHRoaWV0IGtlIGdpYW8gdGhvbmcgdmFuIHRhaSwgZ2l1IGNodWMgDQpV eSB2aWVuIEhvaSBkb25nIHF1YW4gdHJpIFRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZp ZXQgTmFtLg0KDQotIE9uZyBUcmFuIFZhbiBMaWVtLCBHaWFtIGRvYyBDb25nIHR5IHZhbiB0YWkg dmllbiBkdW9uZyBWaW5hc2hpbiwgZ2l1IGNodWMgVXkgdmllbiANCkhvaSBkb25nIHF1YW4gdHJp IFRhcCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgTmFtLg0KDQpEaWV1IDIuIEJvIHRy dW9uZyBCbyBOb2kgdnUsIEJvIHRydW9uZyBCbyBHaWFvIHRob25nIHZhbiB0YWksIEhvaSBkb25n IHF1YW4gdHJpIFRhcCANCmRvYW4gQ29uZyBuZ2hpZXAgVGF1IHRodXkgVmlldCBOYW0gdmEgY2Fj IE9uZyBjbyB0ZW4gdGFpIERpZXUgMSBjaGl1IHRyYWNoIG5oaWVtIHRoaSANCmhhbmggUXV5ZXQg ZGluaCBuYXkuLy4NCg0KVGh1IFR1b25nDQpOZ3V5ZW4gVGFuIER1bmcNCg0KTm9pIG5oYW4gOiAN Ci0gTmh1IERpZXUgMjsNCi0gVGh1IHR1b25nLCBjYWMgUGhvIFRodSB0dW9uZyBDUDsNCi0gVlBD UDogQlRDTiwgUENOOyBDYWMgVnUgQ04sIFRDQ0IsIFdlYnNpdGUgQ1A7IA0KLSBMdXUgOiBWVCwg VlBCQ1MgKDIpLCBIIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDEx L2R1bmctdmktVmluYXNoaW4tbWEta2VvLWx1aS10dS1kdXktZG9pLW1vaS1kb2FuaC1uZ2hpZXAt OTQ1NjAyLyBMaW5oIFRodSAtIEFuaDogTGUgQW5oIER1bmcgICAxNTo1NCwgMDIvMTEvMjAxMCAo R01UKzcpDQoNCkRhaSBiaWV1IE5ndXllbiBEdWMgS2llbjogRG9pIHZvaSB0YXAgZG9hbiBWaW5h c2hpbiwgdmllYyBkZSBxdWEgbGF1IG1vdCBjYSBuaGFuIHZ1YSANCmxhIENodSB0aWNoIEhvaSBk b25nIHF1YW4gdHJpLCB2dWEgbGEgVG9uZyBnaWFtIGRvYywgdnVhIGxhIEJpIHRodSBEYW5nIHV5 IA0KY3VuZyBsYSBtb3QgdHJvbmcgbmh1bmcgZGlldSBraWVuIHRhbyByYSBzYWkgc290IG5hbmcg bmUgaG9uLiANCg0KaHR0cDovL3d3dy5oYXRuYW5nLm5ldC9zaG93dGhyZWFkLnBocD9wPTQ2OTgx MCBEbyBIaWV1IFJGQSAyMDEwLTExLTAxICANCg0KUXVvYyBob2kgeGVtIHhldCBibyBwaGlldSBi YXQgdGluIG5oaWVtIGNoaW5oIHBodSB0aGVvIGx1YXQgZGluaCANCg0KTW90IHN1IGtpZW4gY2h1 YSB0dW5nIGNvIHRyb25nIGhvYXQgZG9uZyBRdW9jIGhvaSB0YWkgVmlldCBOYW0sIGxhbiBkYXUg dGllbiBEYWkgYmlldSANClF1b2MgaG9pIGxlbiB0aWVuZyB5ZXUgY2F1IGJvIHBoaWV1IGJhdCB0 aW4gbmhpZW0gVGh1IHR1b25nIGNoaW5oIHBodS4NCg0KQmFvIGNoaSB0cm9uZyB2YSBuZ29haSBu dW9jIGRldSBkb25nIGxvYXQgZHVhIHRpbiB2ZSB2aWVjIGNhYyBkYWkgYmlldSBxdW9jIGhvaSAN CiJxdXlldCBsaWV0IHRydXkgdHJhY2ggbmhpZW0gdmUgdnUgVmluYXNoaW4iLCBkb25nIHRob2kg ZGUgbmdoaSBibyBwaGlldSBiYXQgdGluIG5oaWVtIHRodSB0dW9uZyBOZ3V5ZW4gVGFuIER1bmcu DQpMeSBkbyBsYSB2aSBvbmcgRHVuZyBkYSBibyBuaGllbSBvbmcgUGhhbSBUaGFuaCBCaW5oIHZh byBjaHVjIHZ1IHRvbmcgZ2lhbSBkb2MgDQpWaW5hc2hpbiwgdGFjIHRyYWNoIHRyb25nIHF1YW4g bHkga2hpZW4gY29uZyB0eSBuYXkgYmkgdGh1YSBsbyB0b2kgaG9uIDUgdHkgcnVvaSBkbyBsYS4g DQoNClRyYWNoIG5oaWVtIGN1YSBEQlFIIA0KDQpUcm9uZyBwaGllbiB0aGFvIGx1YW4gdmUga2lu aCB0ZSwgeGEgaG9pIHRhaSBkaWVuIGRhbiBRdW9jIGhvaSBkdW9jIHRydWMgdGllcCB0cnV5ZW4g aGluaCwgDQpzYW5nIHRodSBoYWksIG1vbmcgbW90IHRoYW5nIDExLCBuaGlldSBEYWkgYmlldSBR dW9jIGhvaSBuaHUgY2FjIG9uZy9iYTogIE5ndXllbiANCk1pbmggVGh1eWV0LCBMZSBWYW4gQ3Vv bmcsIEh1eW5oIE5nb2MgRGFuZywgUGhhbSBUaGkgTG9hbiwgTGUgVGhpIE5nYSAudi52LiwgZGEg DQptYW5oIGRhbiBkYXQgdmFuIGRlIGxhIGNhYyB0aGFuaCB2aWVuIGNoaW5oIHBodSBwaGFpIG5n aGllbSB0dWMga2llbSBkaWVtLCBuaGFuIGt5IA0KbHVhdCB0cnVvYyBRdW9jIGhvaSAtIGNvIHF1 YW4gbGFwIHBoYXAsIGRhaSBkaWVuIGN1YSBuZ3VvaSBkYW4gYmF1IHJhIG1pbmgsIGNodSBraG9u ZyANCnRoZSBuaGFuIHRyYWNoIG5oaWVtIG1vdCBjYWNoIGNodW5nIGNodW5nLCByb2kgdHV5ZW4g Ym8gZGEga2llbSBkaWVtIG5vaSBibyBsYSB4b25nIHZpZWMuIA0KDQpWYW4gdGhlbyBjYWMgZGFp IGJpZXUgdGhpIHZhbyBjdW9pIGt5IGhvcCwgUXVvYyBob2kgY2FuIGJvIHBoaWV1IGJhdCB0aW4g bmhpZW0gY2FjIHRoYW5oIA0KdmllbiBjaGluaCBwaHUsIGtlIGNhIHRodSB0dW9uZyBOZ3V5ZW4g VGFuIER1bmc7IHZhIGRlIHRhbyBkaWV1IGtpZW4gY2hvIGNvbmcgdGFjIGRpZXUgDQp0cmEsIFF1 b2MgaG9pIG5lbiB0YW0gZGluaCBjaGkgY2FjIHRoYW5oIHZpZW4gdHJvbmcgY2hpbmggcGh1IGNv IGxpZW4gcXVhbiBkZW4gdnUgcGhhIA0Kc2FuIHRhaSBWaW5hc2hpbi4gDQoNCkN1bmcgY28gbmh1 bmcgcGhhdCBiaWV1IGR1b2MgbmV1IGxlbiB0cnVvYyBkaWVuIGRhbiBRdW9jIGhvaSBjaG8gcmFu Zywgbmh1bmcgdmllbiANCmNodWMgbGFtIHNhaSBwaGFpIGNvIGxvaSB4aW4gbG9pIG5oYW4gZGFu LCBjYSBuaGFuIHZhIHRhcCB0aGUgbmFvIGNvIGxpZW4gcXVhbiBzZSBwaGFpIGJpIA0KdHJ1eSB0 byB0cnVvYyBwaGFwIGx1YXQuDQoNCkxhIG1vdCB0cm9uZyBuaHVuZyB0aWVuZyBub2kgZGF1IHRp ZW4geWV1IGNhdSBRdW9jIGhvaSBwaGFpIGdpYWkgcXV5ZXQgZHV0IGRpZW0gbW9pIA0KdmFuIGRl IGxpZW4gcXVhbiBkZW4gVmluYXNoaW4gbmdheSB0YWkga3kgaG9wIG5heSwgdHJ1b25nIGRvYW4g ZGFpIGJpZXUgZG9uIHZpIFRoYW5oIA0KSG9hLCBvbmcgTGUgVmFuIEN1b25nIGtoYW5nIGRpbmg6 DQoNCiJWdSBWaW5hc2hpbiBsYSBtb3QgdmFuIGRlIGJ1YyB4dWMgbWEgY3UgdHJpIGNhIG51b2Mg cmF0IHF1YW4gdGFtLCBzbyBubyBxdWEgbG9uLCB0cm9uZyANCmtoaSBkaWV1IGtpZW4ga2luaCB0 ZSBWaWV0IE5hbSBkYW5nIGNvbiBuaG8gYmUuIFZlIHZhbiBkZSAgdHJhY2ggbmhpZW0gdGhpIHRy b25nIGJhbyANCmNhbyBjdWEgY2hpbmggcGh1IGN1bmcgY28gZ2lhaSB0cmluaCBuaHVuZyBtYSBj aHVhIG5vaSBybyB2ZSB0cmFjaCBuaGllbSBjYSBuaGFuLCBjaGkgDQpub2kgY2h1bmcgY2h1bmcg dmUgdHJhY2ggbmhpZW0gY3VhIGNoaW5oIHBodSwgbmhhbiB0cmFjaCBuaGllbSB0cnVvYyBRdW9j IGhvaS4gTmh1bmcgDQpjdSB0cmkgY3VuZyBuaHUgZGFpIGJpZXUgcXVvYyBob2kgY2h1bmcgdG9p IGxhIG11b24gcGhhaSBjbyB0cmFjaCBuaGllbSBjdSB0aGUsIHR1bmcgY2EgDQpuaGFuIG5odW5n IG5ndW9pIGNvIGxpZW4gcXVhbi4gDQpUcm9uZyBxdWEgdHJpbmggcGhhdCBiaWV1LCB0aGFvIGx1 YW4gdmFuIGRlIGtpbmggdGUsIHhhIGhvaSwgbmhpZXUgZGFpIGJpZXUgdHJvbmcgZG8gY28gY2Eg DQpuaGFuIHRvaSBkZSBuZ2hpIFF1b2MgaG9pLCB0YWkga3kgaG9wIG5heSwgbGFtIHNhbmcgdG8g dHJhY2ggbmhpZW0gY3VhIG5odW5nIHRvIGNodWMsIGNhIA0KbmhhbiBjbyBsaWVuIHF1YW4sIGRh IGRlIGNobyBjb24gdGF1IFZpbmFzaGluIHN1cCBkbyBtb3QgY2FjaCB0aGFtIGhhaSwgbGFtIHRo aWV0IGhhaSBsb24gDQp2ZSB0YWkgc2FuIGN1YSBuaGEgbnVvYyB2YSBuaGFuIGRhbi4gS2hpIHRp ZXAgeHVjIGN1IHRyaSB0aGkgZHVvYyBjdSB0cmkgdXkgcXV5ZW4gbmh1IHRoZSANCmNobyBuZW4g Y2h1bmcgdG9pIHlldSBjYXUgUXVvYyBob2kgY2FuIGxhbSBzYW5nIHRvIGNhaSB0cmFjaCBuaGll bSBkbyBkZSB0cmEgbG9pIGN1IHRyaS4gDQpWYW4gZGUgbmF5IFF1b2MgaG9pIFZpZXQgTmFtIGN1 bmcgY2h1YSBjbyB0aWVuIGxlLCBjaG8gbmVuIGNodW5nIHRvaSBjdW5nIGNoaSB0aHVjIA0KaGll biB0aGVvIHRyYWNoIG5oaWVtIGN1YSBtaW5oIHRydW9jIGNhYyBjdSB0cmkuIg0KDQpEdSBsdWFu IG5oYW4gZGFuIA0KDQpUdSBIYSBOb2ksIG5oYSB2YW4gVHJhbiBNYW5oIEhhbyBnb3AgeSB2ZSB2 aWVjIHF1eSB0cmFjaCBuaGllbSBjdSB0aGUgdHJvbmcgdnUgdGhpZXQgDQpoYWkgbmdhbiBxdXkg cXVhIGxvbiBkbyBWaW5hc2hpbiBnYXkgcmE6IA0KDQoiVGhlbyB0b2kgdGhpIGRheSBsYSBtb3Qg dGluIHZ1aSBjaG8gbmd1b2kgZGFuIFZpZXQgTmFtLCBraGkgY2FjIGRhaSBiaWV1IHF1b2MgaG9p IGRhIGJhdCANCmRhdSBjbyB2ZSBuaHUgbGEgbGFtIGR1bmcgY2h1YyBuYW5nIGN1YSBtaW5oLCBs YSB0aWVuZyBub2kgY3VhIGRhbi4gTmh1bmcgdmllYyBuaHUgDQpWaW5hc2hpbiBoYXkgYm8teGl0 IGR1b2MgZHVhIHJhIGRlIHlldSBjYXUgY2hpbmggcGh1IHBoYWkgY28gdHJhY2ggbmhpZW0sIG5o dW5nIG5ndW9pIA0KZHVuZyBkYXUgbmhhIG51b2MgcGhhaSBjbyB0cmFjaCBuaGllbSwgZGEgbGFt IHRoYXQgdGhvYXQgbW90IHNvIHRpZW4gY3VjIGt5IGxvbi4gVG9pIGNobyANCnJhbmcsIGRheSBs YSBtb3QgZGF1IGhpZXUgdGljaCBjdWMgY2FuIHBoYWkgYmlldSBkdW9uZyBuaHVuZyB2aSBkYW4g YmlldSBkYSBjbyBuaHVuZyANCnBoYXQgYmlldSBnYW4gdm9pIG5oYW4gZGFuIG5odSB0aGUuIiAN Cg0KT25nIExlIEhvbmcgS3ksIG1vdCBuZ3VvaSBkYSB0dW5nIHRoYW0gZ2lhIGJhbyB2ZSBydW5n LCBjaG9uZyBsYWkgbmFuIGxhbSB0YWMsIG8gRHVjIExpbmgsIEJpbmggVGh1YW4sIGJheSB0bzog DQoiQ28gcXVhbiBoYW5oIHBoYXAgbGEgbmd1b2kgcmEgcXV5ZXQgZGluaCBiYWkgbmhpZW0gZG9p IHZvaSBjYWMgQ2h1IHRpY2ggdGluaCBjbyB2aSANCnBoYW0sIG5odW5nIG9uZyBOZ3V5ZW4gVGFu IER1bmcgY28gbGFtIGR1b2MgdmllYyBuYXkgZGF1LiBWaSBkdSBuaHUgb25nIE5ndXllbiANClRy dW9uZyBUbyAoY2h1IHRpY2ggdGluaCBIYSBHaWFuZyksIGNoaW4gbGFuIGtob25nIGNoaXUgdGh1 YyBoaWVuIGNoaSBkYW8gY3VhIHRodSB0dW9uZyANCmNoaW5oIHBodSwgbWEgb25nIER1bmcga2hv bmcgbGFtIGR1b2MgZ2ksIHRoaSBxdXllbiBsdWMgY3VhIGNoaW5oIHBodSBuYW0gbyBkYXU/IEJh aSANCm5oaWVtIG9uZyBsYSBkdW5nIHJvaS4gTmFtIG5nYW4gcnVvaSwgc2F1IG5nYW4gcnVvaSBo ZWN0YSBydW5nLCBvbmcgTmd1eWVuIFRhbmcgDQpUaGFuZyB2YSB0b2kga2V1IGxhIGJpZXQgYmFv IG5oaWV1IG1hIG9uZyBOZ3V5ZW4gVGFuIER1bmcga2hvbmcgY2hpdSBsYW0sIG5ldSBraG9uZyAN CmJhaSBuaGllbSBvbmcgbWEgY3UgZGUgdGllcCB0dWMgbmFtIHF1eWVuIHRoaSBtYXQgZGFuZywg bWF0IG51b2MsIGRhbiB0b2MgVmlldCBOYW0gDQpraG9uZyBjb24gdGluIHR1b25nIHZhbyBhaSBu dWEuDQpPbmcgRHVuZyBjbyBxdXllbiBreSBjYWMgcXV5ZXQgZGluaCBnaWFvIGRhdCBjaG8gVHJ1 bmcgUXVvYywgY2hvIERhaSBMb2FuLCByb2kgbGFwIGR1IA0KYW4gYm8teGl0IG8gVGF5IE5ndXll biBnaWFvIHRoYXUgY2hvIFRydW5nIFF1b2MsIGh1eSBob2FpIG1vaSB0cnVvbmc7IGtoaSBjbyBo b24gMiANCm5nYW4gY2h1IGt5IHBoYW4gZG9pIG1hIG9uZyBOZ3V5ZW4gVGFuIER1bmcgY3VuZyBr aG9uZyBjaGl1IG5naGUuIA0KQmFpIG5oaWVtIG9uZyBEdW5nIGxhIG5ndXllbiB2b25nIGN1YSBk YW4gdG9jLCBkbyBsYSBtb3QgZGF1IGhpZXUgcmF0IHRvdCBjaG8gZGF0IG51b2MuIiANCg0KaHR0 cDovL3BoYXBsdWF0dHAudm4vMjQ5NzAxcDBjMTAxMy9uZ3V5ZW4tY2h1LXRpY2gtcXVvYy1ob2kt bmd1eWVuLXZhbi1hbi1hbmgtZ2lvaS10aGktYW5oLXBoYWktbmFtLXF1eWVuLmh0bSBOR0hJQSBO SEFOIDE0LzA0LzIwMDkgLSAxMDo1OCBQTSANCg0KUXV5ZW4gbHVjIHBoYWkgZ2FuIGxpZW4gdHJh Y2ggbmhpZW0gDQoNCk5ndXllbiBjaHUgdGljaCBRdW9jIGhvaSBOZ3V5ZW4gVmFuIEFuIGJheSB0 bzogUXV5ZW4gbGFuaCBkYW8gY3VhIG5ndW9pIGR1bmcgZGF1IA0KZHVvYyBnYW4gdm9pIHRyYWNo IG5oaWVtIHRydW9jIHBoYXAgbHVhdC4gQ2h1IHF1eWVuIG1hIGtob25nIGRpIHZvaSB0cmFjaCBu aGllbSB0aGkgdG9pIGt5Lg0KDQpodHRwOi8vc2luaHZpZW5sdWF0LnZuL2RpZW5kYW4vYXJjaGl2 ZS9pbmRleC5waHAvdC0xNDUwLmh0bWwgc3ZfbHVhdCAoTmd1b246IHZpZXRuYW1uZXQpIDIyLTA2 LTA2LCAxMDoxNiBBTSANCg0KVnUgUE1VMTggLSBCbyB0cnVvbmcgR1RWVCBEYW8gRGluaCBCaW5o IGJpIGt5IGx1YXQgY2FuaCBjYW8gDQoNCk5nYXkgMjEvNiwgVGh1IHR1b25nIFBoYW4gVmFuIEto YWkgZGEga3kgcXV5ZXQgZGluaCB2ZSB2aWVjIGt5IGx1YXQgYmFuZyBoaW5oIHRodWMgDQpjYW5o IGNhbyBkb2kgdm9pIEJvIHRydW9uZyBHaWFvIHRob25nIFZhbiB0YWkgRGFvIERpbmggQmluaCBk byB0aGlldSB0cmFjaCBuaGllbSANCnRyb25nIHZpZWMgZGUgeGF5IHJhIG5oaWV1IHRpZXUgY3Vj LCBzYWkgcGhhbSBvIEJvIG5heS4NCg0KQ2FjIHZ1IHRpZXUgY3VjIG8gQm8gR1RWVCBnYW4gZGF5 IG5odSB2dSB0aWV1IGN1YyBvIFBNVTE4LCBuZ3V5ZW4gVGh1IHRydW9uZyANCk5ndXllbiBWaWV0 IFRpZW4sIFRvbmcgR2lhbSBkb2MgQnVpIFRpZW4gRHVuZyBiaSBraG9pIHRvIGJhdCB0YW0gZ2lh bSwgdnUgZG8gdGF1IEUxLi4uDQoNClRydW9jIGRvLCBsaWVuIHF1YW4gZGVuIHRyYWNoIG5oaWVt IGN1YSBCbyB0cnVvbmcgR1RWVCwgbmdheSAzMS8zLCBUaHUgdHVvbmcgUGhhbiANClZhbiBLaGFp IGRhIGNvIHZhbiBiYW4gZ3VpIEJvIENoaW5oIHRyaSBkZSBuZ2hpIHRhbSBkaW5oIGNoaSBjb25n IHRhYyBCbyB0cnVvbmcgZG9pIHZvaSANCm9uZyBEYW8gRGluaCBCaW5oIGRlIGtpZW0gZGllbSwg bGFtIHJvIHRyYWNoIG5oaWVtIGxpZW4gcXVhbiBkZW4gY2FjIHNhaSBwaGFtIG8gUE1VIA0KMTgg dmEgQm8gR1RWVC4NCg0KTmdheSA0LzQsIG9uZyBCaW5oIGRhIG5vcCBkb24gbGVuIFRodSB0dW9u ZyB4aW4gdHUgY2h1YyBCbyB0cnVvbmcgQm8gR1RWVC4gVHV5IA0KbmhpZW4sIHRoZW8gcXV5IHRy aW5oIHRoaSBwaGFpIGNvIHkga2llbiBjdWEgQm8gQ2hpbmggdHJpIHZhIHRob25nIHF1YSBVeSBi YW4gVGh1b25nIHZ1IA0KUXVvYyBob2ksIG5lbiBvbmcgRGFvIERpbmggQmluaCB2YW4gY2h1YSB0 aGUgdGhvaSBjaHVjLiANCg0KVGh1IHR1b25nIFBoYW4gVmFuIEtoYWkgeWV1IGNhdSBCbyB0cnVv bmcgRGFvIERpbmggQmluaCB0aWVwIHR1YyBsYW0gdmllYyBjaG8gZGVuIA0Ka2hpIGNvIHF1eWV0 IGRpbmggY3VhIEJvIENoaW5oIHRyaSB2YSBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pLiBEb25n IHRob2kgY2hpIHJvLCBiYW4gDQpraWVtIGRpZW0gY3VhIEJvIHRydW9uZyBEYW8gRGluaCBCaW5o IGNodWEgdGh1YyBzdSBjYXUgdGhpLCBjaHVhIHRoYXkgaGV0IHRyYWNoIG5oaWVtIA0KY3VhIG5n dW9pIGR1bmcgZGF1IHZhIGNodWEgdHUgbmhhbiBoaW5oIHRodWMga3kgbHVhdCAuLi4gDQoNClNh dSBraGkgbmhhbiBoaW5oIHRodWMga3kgbHVhdCBuYXksIHRoZW8gZGUgbmdoaSBjdWEgVGh1IHR1 b25nIENoaW5oIHBodSwgdHJvbmcgdGhvaSANCmdpYW4geGVtIHhldCBjb25nIHRhYyBuaGFuIHN1 IENoaW5oIHBodSB0YWkga3kgaG9wIHRodSA5LCBRdW9jIGhvaSBzZSBibyBwaGlldSANCm1pZW4g bmhpZW0gY2h1YyB2dSBCbyB0cnVvbmcgZG9pIHZvaSBvbmcgRGFvIERpbmggQmluaC4gDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyOTAzMDk1 NS5hc3B4IE5NaW5oIC0gVEx1b25nIC0gVE1haSAyOS8xMC8yMDEwIDM6MDkgDQoNClRodSB0dW9u ZzogVnUgVmluYXNoaW4gbGEgdHJ1b25nIGhvcCBkaWVuIGhpbmggLSBkZSBjdSBUR0QgY28gY2h1 IGt5IFRodSB0dW9uZyANCg0KRGFpIGJpZXUgUXVvYyBob2kgTmdvIE1pbmggSG9uZyAoVFAuSENN KSBjaG8gcmFuZzogIlZ1IFZpbmFzaGluIGxhIG1vdCB0cnVvbmcgaG9wIA0KcXVhIGRpZW4gaGlu aC4uLiBCbyBtYXkgbGFuaCBkYW8gaG9wIGJhbiBuaHUgdGhlIG5hbyBkZSBkZSBjdSBtb3Qgbmd1 b2kgbGVuIGxhbSB0b25nIA0KZ2lhbSBkb2MsIGNvIGNodSBreSBjdWEgVGh1IHR1b25nLCByb2kg c2F1IGRvIDEgdHVhbiwgMSB0aGFuZyBsYWkgYmFpIGNodWMsIGJhdCBnaWFtIHZpIA0KcGhhbSBw aGFwIi4gDQoNCihDdSB0cmkgcXVhbiB0YW06IFZ1IFZpbmFzaGluIGdheSB0aGlldCBoYWkgbmdo aWVtIHRyb25nIGdhcCBoYW5nIG5naGluIGxhbiBzbyB2b2kgdnUgUE1VMTguIA0KVHJ1b2MgZGF5 LCBraGkgeGF5IHJhIHZ1IFBNVSAxOCB0aHVvYyBCbyBHVFZUIHF1YW4gbHksIEJvIHRydW9uZyBH VFZUIGtoaSBkbyBiaSBUaHUgdHVvbmcgQ1AgDQpreSBsdWF0IGNhbmggY2FvIHZhIFF1b2MgaG9p IG1pZW4gbmhpZW0uIE5heSB4YXkgcmEgdnUgVmluYXNoaW4sIGRvIFRodSB0dW9uZyBDaGluaCBw aHUgcXVhbiBseSwgDQpsYWkgY2h1YSB0aGF5IFRodSB0dW9uZyB0dSBuaGFuIGhpbmggdGh1YyBr eSBsdWF0OyBybyByYW5nIFRodSB0dW9uZyBjaHVhIHRoYXkgaGV0IHRyYWNoIG5oaWVtIGN1YSBu Z3VvaSBkdW5nIGRhdS4pIA0KDQpodHRwOi8vdGhvbmd0aW5iZXJsaW4uZGUvZGllbmRhbi9vY2t0 L3ZpbmFzaGludmV2aWVjdHJ1Y3ZvdHRyYWNobmhpZW0uaHRtIERUSCANCg0KVGh1IHR1b25nOiBW aW5hc2hpbiB2YSB2aWVjICJ0cnVjIHZvdCB0cmFjaCBuaGllbSIgDQogDQpWaW5hc2hpbiBkYXUg bGEgbW90IHRhcCBkb2FuIGNvIG1vdCB0aG9pIGh1bmcgbWFuaCBuaHVuZyBjaGkgbGEgbW90IGRv YW5oIG5naGllcC4gDQpLaG9uZyBsdWF0IHBoYXAgbmFvIGJhdCBtb3QgZG9hbmggbmdoaWVwIHBo YWkgY2hpdSB0cmFjaCBuaGllbSB0cnVvYyBRdW9jIGhvaSBrZSBjYSB0cmFjaCBuaGllbSBnaWFp IHRyaW5oLiANCg0KVGhlbyBwaGFwIGx1YXQgaGllbiBoYW5oLCBobyBjaGkgdHJhY2ggbmhpZW0g dHJ1b2MgcGhhcCBsdWF0IHZhIHRydW9jIG5ndW9pIGt5IHF1eWV0IA0KZGluaCB0aGFuaCBsYXAg cmEgZG9hbmggbmdoaWVwIGRvLiBDbyB0aGUgdGltIHRoYXkgZGlldSBkbyBuZ2F5IHRyb25nIHF1 eWV0IGRpbmggdGhhbmggDQpsYXAgVGFwIGRvYW4gVmluYXNoaW4gKFFEIHNvIDEwNC8yMDA2L1FE LVRUZyBuZ2F5IDE1LzUvMjAwNiBjdWEgVGh1IHR1b25nIENQKS4gDQpUaGUgbmh1bmcsIHRyb25n IGtoaSBuZ2hlIGdpYWkgdHJpbmggdmUgdnUgVmluYXNoaW4sIG5ndW9pIHRhIHRoYXkgYmFvIHBo dSBsYSBuaHVuZyBsb2kgDQpjaGkgdHJpY2ggYmFuIGxhbmggZGFvIFZpbmFzaGluIG5odTogZG9j IGRvYW4sIGdpYSB0cnVvbmcsIGtob25nIHRydW5nIHRodWMsIHRoYW0gY2hpIA0KY29uIGNobyBy YW5nIGRvIFZpbmFzaGluIGJhbyBjYW8gc2FpIG5lbiBxdWFuIGx5IG5oYSBudW9jIGtob25nIHRo ZW8ga2lwLi4uIA0KDQpUcnVvYyBRdW9jIGhvaSwga2hvbmcgdGhlIGRvIG1vaSB0b2kgbG9pIGxl biBkYXUgYmFuIGxhbmggZGFvIGN1YSBWaW5hc2hpbiBkZSBsYW0gZ2lhbSANCm5oZSBkaSB0cmFj aCBuaGllbSB0cm9uZyBxdWFuIGx5IG5oYSBudW9jIGN1YSBtb3QgY28gcXVhbiBuYW8gZG8gbmh1 IHRoYW5oIHRyYSwga2llbSANCnRvYW4udi52LiBCb2kgbGUsIHN1IHRydW5nIHRodWMgY3VhIGNh cCBkdW9pIGJhbyBnaW8gY3VuZyBsYSBtbyB1b2MgY3VhIGNhcCB0cmVuLiBOaHVuZyANCmtob25n IGFpIGNvIHRoZSB0dXlldCBkb2kgdGluIHR1b25nIHZhbyBzdSB0cnVuZyB0aHVjIGRvLiBDaGlu aCB2aSB2YXkgbW9pIGhpbmggdGhhbmggDQpuZW4gY2FjIGNvIHF1YW4gdGhhbmggdHJhLCBoYXkg a2llbSB0b2FuIHZhIGhlIHRob25nIGdpYW0gc2F0IGtoYWMuDQoNCktoaSB2dSB2aWVjIGdpYW4g ZG9pIG5hbyBkbyB4YXkgcmEsIG5ndW9pIGRhdSB0aWVuIGR1b2MgaG9pIGRlbiBiYW8gZ2lvIGN1 bmcgbGEgbmh1bmcgDQpuZ3VvaSBsYW0gY29uZyB0YWMgZ2lhbSBzYXQuIFRoZSBuaHVuZyBoZSB0 aG9uZyBjbyBxdWFuIHRoYW5oIHRyYSBDaGluaCBwaHUgaGllbiBuYXkgDQpjaGkgY28gcXV5ZW4g cGhhdCBoaWVuIHJhIHNhaSBwaGFtIHZhIGRlIG5naGkgeHUgbHkgY2h1IGtob25nIGR1b2MgcXV5 ZW4geHUgbHk7IHRoYW0gDQpxdXllbiBrZXQgbHVhbiB2YSB4dSBseSBuaGlldSB0cnVvbmcgaG9w IHRodW9jIFRodSB0dW9uZyBDaGluaCBwaHUuLi4gVGhhbSBjaGkgDQpLaWVtIHRvYW4gbmhhIG51 b2MgbmhpZXUgbGFuIG11b24gdGllbiBoYW5oIGtpZW0gdG9hbiBWaW5hc2hpbiBtYSBraG9uZyBk dW9jIENoaW5oIHBodSBjaGFwIHRodWFuLiANCg0KUXVvYyBob2kgdHJvbmcga3kgaG9wIG5heSBk dWEgdmFuIGRlIFZpbmFzaGluIHJhIHRoYW8gbHVhbiwgbW8geGUsIGRvbmcgdGhvaSBjdW5nIHBo YW4gDQp0aWNoLCBjaGF0IHZhbiB2ZSB2YW4gZGUgcXVhbiBseSwgc3UgZHVuZyB0YWkgc2FuIGNv bmcsIHZhaSB0cm8gY3VhIGNhYyB0YXAgZG9hbiwgdG9uZyBjb25nIHR5IG5oYSBudW9jIGhpZW4g bmF5LiANCkNoaW5oIHBodSBkYSBwaGF0IGJpZXUgbmhhbiB0cmFjaCBuaGllbSBtb3QgY2FjaCBj aHVuZyBjaHVuZywgdmEgZGlldSBkbyBkdW9uZyBuaHUgDQpraG9uZyBkdSBsYW0gbmd1b2kgbmdv YWkgY2FtIGdpYWMgImN1YSBkYXUsIGNvbiB4b3QiIGN1YSBuaGlldSBuZ3VvaS4gVHJhY2ggbmhp ZW0gDQp0cm9uZyB2dSBWaW5hc2hpbiBwaGFpIGR1b2MgeGFjIGRpbmggcm8gcmFuZzsgZG8gbGEg ZG9pIGhvaSBjdWEgY3UgdHJpIGNhIG51b2MuIEtob25nIGNoaSANCmxhIHRyYWNoIG5oaWVtIGdp YWkgdHJpbmggbWEgaG9uIHRoZSBudWEgbGEgdHJhY2ggbmhpZW0gY2hpbmggdHJpLiANCg0KTmV1 IGxheSB2dSBWaW5hc2hpbiBkb2kgY2hpZXUgdm9pIGhlIHRob25nIHBoYXAgbHVhdCBoaWVuIGhh bmgsIHRoaWV0IG5naGkga2hvbmcgcXVhIA0Ka2hvIGRlIHF1eSB0cmFjaCBuaGllbSBjaG8gbW90 IGNvIHF1YW4gbmFvIGRvIHRoYW0gY2hpIGxhIHRyYWNoIG5oaWVtIGNhIG5oYW4uIA0KS2hvbmcg Y2hpIG5oaW4gbmhhbiB0cmFjaCBuaGllbSBtb3QgY2FjaCBjaHVuZyBjaHVuZywgbWEgZGlldSBx dWFuIHRyb25nIGxhIHh1IGx5IA0KdHJhY2ggbmhpZW0gZG8gbmh1IHRoZSBuYW8/DQoNClF1eSB0 cmFjaCBuaGllbSB2YSB4dSBseSB0cmFjaCBuaGllbSBkYW5nIGxhIGtoYXUgeWV1IHRyb25nIHF1 YW4gbHkgbmhhIG51b2MgbyBuaGlldSANCmxpbmggdnVjLCBuaGlldSBjYXAsIG5oaWV1IG5nYW5o LiBWb2kgdnUgcGhhIHNhbiBjdWEgVmluYXNoaW4sIHZhbiBkZSB0cmFjaCBuaGllbSBsYWkgZGF0 IA0KcmEgYnVjIHRoaWV0IGhvbiBiYW8gZ2lvIGhldC4gVGh1IHR1b25nIHF1eWV0IGRpbmggdGhh bmggbGFwIFRhcCBkb2FuIFZpbmFzaGluLCB0aHUgDQp0dW9uZyBxdXlldCBkaW5oIGJvIG5oaWVt IGNhbiBibywgdGh1IHR1b25nIHF1YW4gbHksIHRodSB0dW9uZyBjdW5nIHBoYWkgY2hpdSB0cmFj aCBuaGllbS4gDQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMDEwMjcwOTE3ODY1MFAwQzUvdGhh Yy1tYWMtdGh1Yy1uby1jdWEtdmluYXNoaW4uaHRtICBOR1VZRU4gVlUgMjkvMTAvMjAxMCAwNjo0 OSAoR01UKzcpIA0KDQpUaHUgdHVvbmc6IFRoYWMgbWFjIFZpbmFzaGluIG5vIDg2IG5naGluIHR5 IGhheSAxMjAgbmdoaW4gdHkgZG9uZyAgDQogDQpUdSBsdWMgVmluYXNoaW4gZGkgdmFvIGhvYXQg ZG9uZyAoMjAwNikgZGVuIG5heSwgS2llbSB0b2FuIE5oYSBudW9jIGRhIGhhaSBsYW4gDQp4YXkg ZHVuZyBrZSBob2FjaCBraWVtIHRvYW4gZG9pIHZvaSB0YXAgZG9hbiBuYXkuIA0KDQpWaW5hc2hp biB2YW4gbGEgY2FpIHRlbiBkYW5oIGR1b2Mgc3UgcXVhbiB0YW0gZGFjIGJpZXQgY3VhIGNhIGRh aSBiaWV1IFF1b2MgaG9pIHZhIGN1IHRyaSANCg0KIlZpZWMgdG9pIG5vaSBzbyBubyBjdWEgVmlu YXNoaW4gbGVuIHRvaSAxMjAgbmdoaW4gdHkgZG9uZywgY2h1IGtob25nIGNoaSBsYSA4NiBuZ2hp biB0eSANCmRvbmcgbmh1IGJhbyBjYW8gY3VhIENoaW5oIHBodSBsYSBkdWEgdmFvIG5ndW9uIHRp biBkYW5nIHRpbiBjYXkiLCBDaHUgbmhpZW0gVXkgYmFuIA0KUXVvYyBwaG9uZyAtIEFuIG5pbmgg Y3VhIFF1b2MgaG9pLCBvbmcgTGUgUXVhbmcgQmluaCwga2hhbmcgZGluaCBiZW4gaGFuaCBsYW5n IA0KUXVvYyBob2kgaG9tIDI3LzEwIHZ1YSBxdWEuDQoNCkNvbiBzbyBtb2kgdmUgbm8gY3VhIFRh cCBkb2FuIENvbmcgbmdoaWVwIFRhdSB0aHV5IFZpZXQgTmFtIGRhIGR1b2Mgb25nIEJpbmggbmV1 IA0KcmEga2hpIFF1b2MgaG9pIHRoYW8gbHVhbiB0YWkgdG8gdmUgdGluaCBoaW5oIGtpbmggdGUg LSB4YSBob2kgbmFtIDIwMTAuIFRhaSBkYXksIG9uZyBCaW5oIA0KY2hvIGJpZXQgc2UgZGUgbmdo aSBDaGluaCBwaHUgZ2lhaSB0cmluaCBybyByYW5nIHZlIHN1IGNoZW5oIGxlY2ggc28gbGlldSBu YXkgdmEga2hhbmcgZGluaCBjb25nIGtoYWkgdHJ1b2MgUXVvYyBob2kuDQoNCk5nYXkgc2F1IGRv LCBzdSAiY2hlbmggbGVjaCIgbmF5IGRhIGR1b2MgYmFvIGNoaSBkYXQgcmEgdm9pIEJvIHRydW9u ZyBCbyBUYWkgY2hpbmggVnUgDQpWYW4gTmluaCwgc29uZyBraG9uZyBuaGFuIGR1b2MgY2F1IHRy YSBsb2kuDQoNCiJEZW4gbmF5LCBjdW5nIGNodWEgdGhheSBjbyBhaSBjbyB5IGtpZW4gZ2kgdmUg Y29uIHNvIHRvaSBkYSBuZXUsIGhvbSB2dWEgcm9pIHRvaSBkaSBob3AgDQpiZW4gQ2hpbmggcGh1 IGN1bmcgY2h1YSB0aGF5IGNvICJwaGFuIHVuZyIgZ2kiLCBvbmcgQmluaCB0aWVwIHR1YyBjaGlh IHNlLiAiTmhpZXUgZGFpIA0KYmlldSBub2kgdm9pIHRvaSBsYSBkYSB2aWV0IHNhbiBiYWkgcGhh dCBiaWV1IHZlIFZpbmFzaGluIGRlIG5vaSBvIGhvaSB0cnVvbmcsIHZhIHNlIHlldSBjYXUgdHJh IGxvaSB2ZSBjb24gc28gbmF5Ii4NCg0KRG9uZyB0aG9pLCBvbmcga2hhbmcgZGluaDogIlRhdCBu aGllbiwgdG9pIGRhIG5ldSBjb24gc28gbmFvIHRoaSBpdCBuaGF0IGN1bmcgcGhhaSB0dSANCnRo b25nIHRpbiBjdWEgbW90IGNvbiBuZ3VvaSwgdG8gY2h1YyBjdSB0aGUgbmFvIGRvIGRhbmcgdGlu IGNheSwga2hvbmcgdGluIGNheSB0aGkga2hvbmcgDQpiYW8gZ2lvIHRvaSBub2kuIFRvaSBzZSBj aGF0IHZhbiBuZXUgQ2hpbmggcGh1IGtob25nIGNodSBkb25nIGdpYWkgdHJpbmgiLg0KDQpWaSBj aHUgbmhpZW0gVXkgYmFuIFF1b2MgcGhvbmcgLSBBbiBuaW5oIGN1YSBRdW9jIGhvaSBjdW5nIGh5 IHZvbmcgc2UgbmhhbiBkdW9jIA0KY2F1IHRyYSBsb2kgdGluIGNheSB0dSBDaGluaCBwaHUuIFZp LCBzYXUga3kgaG9wIHRodSB0YW0gY29uIGNvIGJ1b2kgIGxhbSB2aWVjIGdpdWEgVXkgDQpiYW4g VGh1b25nIHZ1IFF1b2MgaG9pIHZhIENoaW5oIHBodSBudWEuDQoNClRyYW8gZG9pIHRoZW0gdmUg cXVhbiBuZ2FpIGN1YSBuaGlldSB5IGtpZW4geHVuZyBxdWFuaCB2aWVjIHF1YW4gbHksIGdpYW0g c2F0IGNhYyB0YXAgDQpkb2FuIGtpbmggdGUsIG9uZyBCaW5oIGN1bmcgY2hvIHJhbmcgInZvaSBj byBjaGUgbmh1IGhpZW4gbmF5LCBuZXUga2hvbmcgY28gc3UgdGhheSBkb2kgDQp0aGkgdG9pIG5n aGkgbGEga2hvIG1hIGNoYW4gY2hpbmgiLg0KDQpWYXkgc2UgdGhheSBkb2kgbmh1IHRoZSBuYW8s IHRoZW8gb25nIEJpbmgsIGNhbiBxdXkgZGluaCBjaG8gcm8gYm8gbmFvIGNoaXUgdHJhY2ggbmhp ZW0gDQpoYXkgY2EgbmhhbiBuYW8gY2hpdSB0cmFjaCBuaGllbSB2ZSB2aWVjIGdpLiBOaHUgVGFw IGRvYW4gVmluYXNoaW4sIG5ldSBsaWVuIHF1YW4gZGVuIA0KbGluaCB2dWMgdmFuIHRhaSB0aGkg YWkgY2hpdSB0cmFjaCBuaGllbSwgcGhhaSBjaGFuZyBCbyBHaWFvIHRob25nIFZhbiB0YWkgcGhh aSBjaGl1IHRyYWNoIG5oaWVtLiANCg0KUm9pIGdpYSB0aHVvYyBjdW5nIHRoZSwgQm8gWSB0ZSBr aG9uZyBjaGl1IHRyYWNoIG5oaWVtLCBub2kgZ2lhIHRodW9jIHBoYW0gdmkgcXVhbiBseSANCmN1 YSBCbyBUYWkgY2hpbmguIE5ldSBnaXUgbmh1IGNvIGNoZSBoaWVuIG5heSB0dWMgbGEgZHV5IHRy aSBjYWMgdGFwIGRvYW4ga2luaCB0ZSBOaGEgDQpudW9jLCBkbyBOaGEgbnVvYyBxdWFuIGx5LCBO aGEgbnVvYyBkYXUgdHUgdGhpIGNvIHF1YW4gTmhhIG51b2MgcGhhaSBjbyBuZ3VvaSBjaGl1IA0K dHJhY2ggbmhpZW0uIE5odW5nIG5odSBiYXkgZ2lvIGxhIGN1YSBOaGEgbnVvYyBuaHVuZyBraG9u ZyBjbyBhaSBjaGl1IHRyYWNoIG5oaWVtLCANCnRyb25nIGtoaSB0aWVuIGxhIHRpZW4gY3VhIGRh biwgb25nIEJpbmggcGhhbiB0aWNoLg0KDQpDdW5nIGxpZW4gcXVhbiBkZW4gY2F1IGhvaSB2ZSB0 cmFjaCBuaGllbSBub2kgY2h1bmcgdmEgY3VhIFZpbmFzaGluIG5vaSByaWVuZywgdHJhbyBkb2kg DQp2b2kgVm5FY29ub215LCBkYWkgYmlldSBOZ3V5ZW4gVGhpIEJhY2ggTWFpLCBQaG8gdHJ1b25n IGRvYW4gY2h1eWVuIHRyYWNoIERvYW4gZGFpIA0KYmlldSBRdW9jIGhvaSB0aW5oIFRheSBOaW5o IG5ldSB5IGtpZW4gY3VhIGN1IHRyaSBkZSBuZ2hpIFF1b2MgaG9pIHBoYWkgbGFtIHJvIGNhIHRy YWNoIA0KbmhpZW0gdHJ1YyB0aWVwIHZhIGdpYW4gdGllcC4NCg0KIkRpZXUga2hpZW4gY2EgY3Ug dHJpIHZhIGRhaSBiaWV1IGRldSBiYW4ga2hvYW4gbGEgdmkgc2FvIHRoYW5oIHRyYSwga2llbSB0 b2FuIG5oaWV1IChob24gDQoxMCBjdW9jKSBtYSBraG9uZyBwaGF0IGhpZW4gZHVvYyBzYWkgcGhh bSBnaS4gQ28gcGhhaSBkbyBuYW5nIGx1YyB5ZXUga2VtIGhheSBraG9uZyANCm1hIGtob25nIHBo YXQgaGllbiBkdW9jPyBDaG8gZHUgbm9pIGJvIGJhbyBjYW8gImxhbyIgdGhpIHRoYW5oIHRyYSwg a2llbSB0b2FuIHBoYWkgY28gDQpuZ2hpZXAgdnUgZGUgImxhbiIgcmEgY2h1PyBWaSB0aGUgY3Ug dHJpIGN1bmcgbXVvbiAibGF0IGxhaSB2YW4gZGUgbmF5IiwgYmEgTWFpIG5oYW4gbWFuaC4NCg0K VGhlbyBkYWkgYmlldSBNYWksIG1vaSB2aWVjIHNhaSBzb3QgZGV1IGNvIHF1eSB0cmFjaCBuaGll bSBuZ3VvaSBkdW5nIGRhdSwgTHVhdCBQaG9uZyANCmNob25nIHRoYW0gbmh1bmcgY3VuZyBkYSBu ZXUgcmF0IHJvIGRpZXUgbmF5IG5lbiBjdW5nIGNhbiBwaGFpIGxhbSBybyBjaHUga2hvbmcgdGhp IGN1IA0KdHJpIGNvbiB0aGFjIG1hYywgZGFpIGJpZXUgY3VuZyBjaHVhIHllbiB0YW0uDQoNCkto b25nICJuYW0gdHJvbmcgdGF5IiBuaHVuZyAiY2h1bmcgY3UiIGRlIGNvIHRoZSBraGFuZyBkaW5o IG1hbmggbWUgaG9uIG5odW5nIHZhbiANCmRlIHRodW9jIHZlIHRyYWNoIG5oaWVtIG5odSBkYWkg YmlldSBNYWkgZGEgbm9pLCBzb25nIG1vdCBzbyBkYWkgYmlldSBjdW5nIGNoaWEgc2Ugdm9pIA0K bmhhbiBkaW5oIHRhaSBiYW8gY2FvIHRoYW0gdHJhIGJhbyBjYW8gY3VhIENoaW5oIHBodSB2ZSBj b25nIHRhYyBwaG9uZywgY2hvbmcgdGhhbSANCm5odW5nIG5hbSAyMDEwIGN1YSBVeSBiYW4gVHUg cGhhcC4NCg0KRG8gbGEsIFZpbmFzaGluIHF1YSAxMSBsYW4gdGhhbmggdHJhLCBraWVtIHRvYW4s IG5odW5nIHNhaSBwaGFtIG5odSBkYXUgdHUgZGFuIHRyYWkgdHJhbiANCmxhbiB0cmVuIG5oaWV1 IGxpbmggdnVjIGtob25nIGxpZW4gcXVhbiBkZW4gY2h1YyBuYW5nIGN1YSB0YXAgZG9hbiwga2Vt IGhpZXUgcXVhLCB0aHVhIA0KbG8gbmFuZyBuZTsgIHRpbmggaGluaCB0YWkgY2hpbmggZHVuZyB0 cnVvYyBibyB2dWMgcGhhIHNhbiwgc2FuIHh1YXQga2luaCBkb2FuaCBkaW5oIHRyZSwgDQp0aW5o IGhpbmggbm9pIGJvIGRpZW4gYmllbiBwaHVjIHRhcDsgMSw3IHZhbiBjb25nIG5oYW4gYm8gdmEg Y2h1eWVuIHZpZWMsIDUuMDAwIGNvbmcgDQpuaGFuIG1hdCB2aWVjIGxhbSwgbm8gbHVvbmcsIG1h IGNoaW5oIHBodSB2YSBjYWMgY28gcXVhbiBjaHVjIG5hbmcga2hvbmcgYmlldCwga2hvbmcgDQph aSBjaGl1IHRyYWNoIG5oaWVtLiANCg0KIlF1YSBkbywgeGEgaG9pIHZhIGN1IHRyaSByYXQgYnVj IHh1YywgY2hvIHJhbmcgY28gc3UgYmFvIGNoZSBjaG8gbmh1bmcgdmllYyBsYW0gc2FpIHRyYWks IA0KdmkgcGhhbSBwaGFwIGx1YXQgY3VhIFZpbmFzaGluIGxhbSB0aGlldCBoYWkgbG9uIGRlbiB0 aWVuIHZhIHRhaSBzYW4gY3VhIE5oYSBudW9jIiwgYmFvIA0KY2FvIHZpZXQuDQoNClRyYW8gZG9p IHZvaSBWbkVjb25vbXksIGRhaSBiaWV1IERvIE1hbmggSHVuZywgUGhvIHRydW9uZyBkb2FuIGNo dXllbiB0cmFjaCBkb2FuIA0KZGFpIGJpZXUgUXVvYyBob2kgdGluaCBUaGFpIE5ndXllbiBjdW5n IGJhbiBraG9hbiB2ZSBtb3Qgc28gdmFuIGRlIG1hIGJhbyBjYW8gY3VhIA0KQ2hpbmggcGh1IGNo dWEgbGFtIHJvLCB0cm9uZyBkbyBjbyB2aWVjIG11b2kgbWF5IGxhbiB0aGFuaCB0cmEga2llbSB0 b2FuIG1hIGtob25nIA0KcGhhdCBoaWVuIGR1b2Mgc2FpIHBoYW0uDQoNCk9uZyBIdW5nIGRhdCBj YXUgaG9pLCBiYW8gY2FvIG5oYW4geGV0IG5ndW9pIGR1bmcgZGF1IFZpbmFzaGluICJkb2MgZG9h biwgZ2lhIA0KdHJ1b25nIiwgdmF5IHRhaSBzYW8ga2hvbmcgY2hhbiBjaGluaCBzdSBkb2MgZG9h biBuYXksIHZhIGNobyByYW5nLCBuZXUgQ2hpbmggcGh1IA0KY3VuZyBjYXAgZGF5IGR1IHRob25n IHRpbiBob24gdGhpIGN1IHRyaSBjdW5nIHNlIGJvdCBiYW4ga2hvYW4uDQoNCk5oaWV1IHZpIGRh aSBiaWV1IGtoYWMgY3VuZyBjbyBjdW5nIHF1YW4gdGFtIHZvaSBuaHVuZyBjYXUgaG9pIHR1b25n IHR1IGRhaSBiaWV1IE1haSANCnZhIGRhaSBiaWV1IEh1bmcgdmUgVmluYXNoaW4uIE5oYXQgbGEs IHN1IGdpYWkgdGhpY2ggY3VhIGNoaW5oIG5odW5nIG5ndW9pIGR1bmcgZGF1IA0KbmdhbmggdGhh bmggdHJhIHZhIGtpZW0gdG9hbiBjb24gY28gZG9pIHBoYW4ga2hvIGhpZXUuDQoNClRyYSBsb2kg YmFvIGNoaSBuZ2F5IHR1IGRhdSBreSBob3AsIFRvbmcgdGhhbmggdHJhIENoaW5oIHBodSBUcmFu IFZhbiBUcnV5ZW4gY2hvIGJpZXQgDQoicmllbmcgVGhhbmggdHJhIENoaW5oIHBodSBjdW5nIGRh IGRlIHh1YXQgdG9pIGhhaSwgYmEgbGFuIGR1YSB2YW8ga2UgaG9hY2ggZGUgdGhhbmggdHJhIA0K dG9hbiBkaWVuIFZpbmFzaGluIHZpIHRoYXkgY28gbmhpZXUgZGllbSBraG9uZyBvbi4gTmh1bmcg ZGFuZyB0aWVjIGxhIGRlIHRyYW5oIGNob25nIA0KY2hlbyB0aGkgY3UgY28ga2llbSB0b2FuIHRo aSB0aG9pIHRoYW5oIHRyYSwgY3UgInRyYW5oIG5oYXUiIG5odSB0aGUsIG5lbiBjbyBuaGlldSB2 aWVjIGRhIGNoYW0uIA0KDQpUcmEgbG9pIGNoYXQgdmFuIChiYW5nIHZhbiBiYW4pIGN1YSBUcnVv bmcgZG9hbiBEYWkgYmlldSBRdW9jIGhvaSB0aW5oIEh1bmcgWWVuIFZ1IA0KUXVhbmcgSGFpIHRy dW9jIGtoaSBraGFpIG1hYyBreSBob3AsIFRvbmcga2llbSB0b2FuIE5oYSBudW9jIFZ1b25nIERp bmggSHVlIGNobyANCmJpZXQ6IGNvIHF1YW4gbmF5IHR1bmcgbmhpZXUgbGFuIGxlbiBrZSBob2Fj aCBraWVtIHRvYW4gVmluYXNoaW4sIG5nYXkgdHUga2hpIFZpbmFzaGluIA0KY29uIGNodWEgbmFu ZyBjYXAgbGVuIHRhcCBkb2FuLCBuaHVuZyByb2kgZGV1IGJpIHRhbSBkdW5nIGtlIGhvYWNoIGRl IHRyYW5oIHRydW5nIGxhcCANCnZvaSBUaGFuaCB0cmEgQ2hpbmggcGh1Lg0KIA0KVHUgbHVjIFZp bmFzaGluIGRpIHZhbyBob2F0IGRvbmcgKDIwMDYpIGRlbiBuYXksIEtpZW0gdG9hbiBOaGEgbnVv YyBkYSBoYWkgbGFuIHhheSANCmR1bmcga2UgaG9hY2gga2llbSB0b2FuIGRvaSB2b2kgdGFwIGRv YW4gbmF5LiBOYW0gMjAwOCBjdW5nIGRhIGxlbiBrZSBob2FjaCBraWVtIA0KdG9hbiBiYW8gY2Fv IHRhaSBjaGluaCBjdWEgdGFwIGRvYW4sIG5odW5nIGRvIFRoYW5oIHRyYSBDaGluaCBwaHUgZGEg ZHVhIFZpbmFzaGluIHZhbyANCmtlIGhvYWNoIHRoYW5oIHRyYSBuYW0gMjAwOSAtIG5odW5nIHJv aSBsYWkgaG9hbiAtIG5lbiB0aGVvIHF1eSBjaGUgcGhvaSBob3AgdmEgZGUgDQp0cmFuaCB0cnVu ZyBsYXAsIEtpZW0gdG9hbiBOaGEgbnVvYyBkYSBkdWEgcmEgbmdvYWkga2UgaG9hY2ggdmEgbHVp IHNhbmcgbmFtIDIwMTAuDQogDQpUdXkgbmhpZW4sIGtlIGhvYWNoIG5heSBsYWkgdGllcCB0dWMg YmkgdHJpIGhvYW4gYm9pIGtob25nIGR1b2MgcGhlIGR1eWV0LiBLaGkgZ3VpIGNobyANClRoYW5o IHRyYSBDaGluaCBwaHUsIHRoaSB5IGtpZW4gY3VhIGNvIHF1YW4gbmF5IGxhOiAiVGhhbmggdHJh IENoaW5oIHBodSB0aGF5IGNvIHN1IA0KdHJ1bmcgbGFwIHZlIG1vdCBzbyBsaW5oIHZ1YyB2YSBk b2kgdHVvbmcga2llbSB0b2FuIi4NCg0KSGllbiBuYXksIHRoZW8gVG9uZyB0aGFuaCB0cmEgQ2hp bmggcGh1IFRyYW4gVmFuIFRydXllbiwgVmluYXNoaW4gZGFuZyBkdW9jIHRoYW5oIHRyYSANCnRv YW4gZGllbiB2YSBjbyBxdWFuIHRoYW5oIHRyYSBjdW5nIGRhIHBoYXQgaGllbiBuaGlldSB2YW4g ZGUgY3UgdGhlIGhvbiBzbyB2b2kga2V0IGx1YW4gDQpjdWEgVXkgYmFuIEtpZW0gdHJhIFRydW5n IHVvbmcuIFZhLCB0cm9uZyBraGkgY2hvIG5odW5nICJ2YW4gZGUgY3UgdGhlIGRvIiwgdGhpIGRh aSANCmJpZXUgdmFuIGJhbiBraG9hbiB2ZSBuaHVuZyBjb24gc28gdGh1YywgdmEgY3UgdHJpIHZh biBjaG8gY2F1IHRyYSBsb2kgdGhvYSBkYW5nIGhvbiB2ZSB0cmFjaCBuaGllbS4gDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyNjAwNTgyNy5h c3B4IEFuaCBWdSAyNi8xMC8yMDEwIDA6NTggDQoNCk5oYXAgc2lldSB0YW5nIG1hbmggICANCg0K VGhlbyBiYW8gY2FvIGN1YSBUb25nIGN1YyBUaG9uZyBrZSBuZ2F5IDI1LjEwLCBuaGFwIHNpZXUg dHJvbmcgdGhhbmcgMTAgdW9jIGRhdCAxLDEgdGkgDQpVU0QsIHRhbmcgbWFuaCBzbyB2b2kgdGhh bmcgOSAoZGF0IDAsODcgdGkgVVNEKS4gQ3UgdGhlLCBraW0gbmdhY2ggeHVhdCBraGF1IHRoYW5n IDEwIA0KY2hpIHRhbmcgbmhlIDIsNSUgc28gdm9pIHRoYW5nIDkga2hpIGRhdCBtdWMgNiwyNSB0 aSBVU0QsIHRyb25nIGtoaSBuaGFwIGtoYXUgdHVvbmcgDQp1bmcgdGFuZyA1LDQlLCBkYXQgNywz NSB0aSBVU0QuIA0KDQpLaW0gbmdhY2ggeHVhdCBraGF1IGNhYyBtYXQgaGFuZyBjaHUgbHVjIGRl dSBnaWEgdGFuZyB2ZSBnaWEgdHJpLCBuaHVuZyBtdWMgdGFuZyANCmtob25nIGxvbi4gVHJvbmcg a2hpIGRvLCB2ZSBwaGlhIG5oYXAga2hhdSwgY2FjIG1hdCBoYW5nIG5ndXllbiBuaGllbiBsaWV1 LCBtYXkgbW9jIA0KbGFpIGNvIHh1IGh1b25nIHRhbmcgbWFuaCBzbyB2b2kgdGhhbmcgdHJ1b2Mu IE1heSBtb2MgbGluaCBraWVuIGR1b2MgbmhhcCBraGF1IG5oaWV1IA0KbmhhdCB2b2kgMSwxIHRp IFVTRCwgdGllcCBzYXUgbGEgc2F0IHRoZXAgNTkyIHRyaWV1IFVTRCwgZGllbiB0dSBtYXkgdGlu aCA1NzAgdHJpZXUgVVNELCANCnZhaSA0OTAgdHJpZXUgVVNELiBUb25nIGN1YyBUaG9uZyBrZSB1 b2MgdGluaCAxMCB0aGFuZyBuYW0gMjAxMCwgY2FuIGNhbiB0aHVvbmcgbWFpIA0KaGFuZyBob2Eg ZGFuZyBiaSBuaGFwIHNpZXUgOSw1IHRpIFVTRC4gIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vTmV3cy9QYWdlcy8yMDEwNDQvMjAxMDEwMjgxMDQ4MjQuYXNweCBCYW8gQ2FtIDI4LzEw LzIwMTAgMTA6NDggDQoNClRodSB0dW9uZzogVG9uZyB2b24gZGF1IHR1IGR1IGFuIHRodXkgZGll biBTb24gTGEgdGFuZyBnYW4gNjAlIHNvIHZvaSBkdSBraWVuIA0KDQpUaG9uZyB0aW4gdHJlbiB2 dWEgZHVvYyBVeSBiYW4gS2hvYSBob2MgQ29uZyBuZ2hlIHZhIE1vaSB0cnVvbmcgKEtIQ04tTVQp IGNvbmcgDQpibyB0cm9uZyBiYW8gY2FvIGdpYW0gc2F0IHRpbmggaGluaCB0aHVjIGhpZW4gbmdo aSBxdXlldCBjdWEgUXVvYyBob2kgKFFIKSBkb2kgdm9pIG1vdCANCnNvIGR1IGFuLCBjb25nIHRy aW5oIHF1YW4gdHJvbmcgcXVvYyBnaWEgbmFtIDIwMTAsIHRyb25nIGRvIGNvIGR1IGFuIGR1b25n IEhvIENoaSBNaW5oLg0KDQpDdW5nIHRyb25nIGJhbyBjYW8gZ2lhbSBzYXQgdmUgY2FjIGR1IGFu LCBjb25nIHRyaW5oIHF1YW4gdHJvbmcgcXVvYyBnaWEgbmFtIDIwMTAsIFV5IA0KYmFuIEtIQ04t TVQgY2hvIGJpZXQ6IER1IGFuIHRodXkgZGllbiBTb24gTGEgZGEgdGFuZyB0b25nIG11YyB2b24g ZGF1IHR1IGdhbiA2MCUgDQpzbyB2b2kgbXVjIGR1IGtpZW4uIEN1IHRoZSwgdHUgMzEuMDAwIC0g MzcuMDAwIHRpIGRvbmcgYmFuIGRhdSB1b2MgdGluaCBkYSB0YW5nIGxlbiA1OC40ODMsNDEyIHRp IGRvbmcuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDQv MjAxMDEwMjgxMDQ4MjQuYXNweCBCYW8gQ2FtIDI4LzEwLzIwMTAgMTA6NDggDQoNClRodSB0dW9u ZzogRHVvbmcgSG8gQ2hpIE1pbmggY28gbmd1eSBjbyBjaGFtIHRpZW4gZG8gNSBuYW0gDQoNCmh0 dHA6Ly93d3cudGluMjQ3LmNvbS9kdV9hbl9kdW9uZ19ob19jaGlfbWluaF9jb25nX3RyaW5oX2xv biUyQ190aGF0X3Rob2F0X2N1bmdfbG9uLTMtMjEzMzUxMDkuaHRtbCBOZ3Vvbjogdm5NZWRpYS52 biAgKHRoZW8gVGhhbmggTmllbikgMzEvMTAvMjAwNiAtIDA3OjIzIJYgIA0KDQpUaHUgdHVvbmc6 IER1IGFuIGR1b25nIEhvIENoaSBNaW5oIC0gVGhhdCB0aG9hdCBsb24gLSBDaG8geSBraWVuIHh1 IGx5IGN1YSBUaHUgdHVvbmcgDQoNClRoZW8ga2V0IGx1YW4gY3VhIFRoYW5oIHRyYSBDaGluaCBw aHUsIGNvbmcgdHJpbmggbG9uIG5odSBkdW9uZyBIbyBDaGkgTWluaCB2YW4gbGFwIA0KbGFpIHll dSBrZW0gdGh1b25nIHRoYXkgdHJvbmcgbmhpZXUgbmFtIHF1YSBuZ2F5IHR1IGtoYXUga2hhbyBz YXQsIHRoaWV0IGtlIGdheSB0aGF0IA0KdGhvYXQsIGxhbmcgcGhpIHZhIHN1IGR1bmcgc2FpIG11 YyBkaWNoIG5oaWV1IHRyYW0gdHkgZG9uZy4NCg0KU2FpIHBoYW0gbmdheSB0cm9uZyBraGF1IGto YW8gc2F0IHRoaWV0IGtlDQoNClRoYW5oIHRyYSBDaGluaCBwaHUgZGEga2V0IHRodWMgZG90IHRo YW5oIHRyYSB0YWkgZHUgYW4geGF5IGR1bmcgZHVvbmcgSG8gQ2hpIE1pbmggDQooZ2lhaSBkb2Fu IEk6IDIwMDAtMjAwNSkgdmEgdHJpbmggbGVuIFRodSB0dW9uZyBDaGluaCBwaHUgdmFuIGJhbiBr ZXQgbHVhbiwgdHJvbmcgZG8gbmV1IA0Kcm8gbmh1bmcgaGFuZyBtdWMgZGUgeGF5IHJhIGxhbmcg cGhpLCB0aGF0IHRob2F0IGxvbi4NCg0KVGhlbyBrZXQgbHVhbiBjdWEgVGhhbmggdHJhIENoaW5o IHBodSwgbW90IGNvbmcgdHJpbmggbG9uIG5odSBkdW9uZyBIbyBDaGkgTWluaCANCnZhbiBsYXAg bGFpIHlldSBrZW0gdGh1b25nIHRoYXkgdHJvbmcgbGluaCB2dWMgeGF5IGR1bmcgY2F1IGR1b25n IHRyb25nIG5oaWV1IG5hbSANCnF1YSBuZ2F5IHR1IGtoYXUga2hhbyBzYXQsIHRoaWV0IGtlLiAN Cg0KVmkgZHUsIDggZ29pIHRoYXUgZG9hbiBUaGFuaCBIb2EgLSBOZ2hlIEFuLCBkbyBjb25nIHRh YyB0aGFtIGRvLCBraGFvIHNhdCB2YSB0aW5oIHRvYW4gDQpkaWEgY2hhdCwgdGh1eSB2YW4sIGNh YyBidW9jIGxhcCB0aGlldCBrZSBreSB0aHVhdCBzbyBzYWksIGNvIG5oaWV1IHNhaSBzb3QgdmUg ZGlhIGNoYXQgY29uZyANCnRyaW5oLi4uIGRhbiBkZW4ga2hvaSBsdW9uZyB4YXkgbGFwLCBtb2kg dGhhdSwgbmhhdCBsYSBraG9pIGx1b25nIGRhbyBkYXAgbmVuIGR1b25nIGNvIA0KdGhheSBkb2kg bG9uLCBsYW0gcGhhdCBzaW5oIGNoaSBwaGkga2hhbyBzYXQsIHRoaWV0IGtlLCB0YW5nIGdpYSB0 aGFuaCBjb25nIHRyaW5oOiANCmNvIGdvaSB0aGF1IHBoYXQgc2luaCB0aGVtIDksNCB0aSBkb25n LCBjbyBnb2kgdGhlbSAxMiB0aSBkb25nLiBUb25nIGNvbmcsIGNhIGRvYW4gbmF5IHBoYXQgDQpz aW5oIGdhbiA1Myw5MiB0aSBkb25nLiAgDQoNClRpbmggdHJhbmcgYmFuIHRoYXUgY3VuZyBkaWVu IHJhIGtoYSBuZ2hpZW0gdHJvbmc6IFRvbmcgY29uZyB0eSBYYXkgZHVuZyBIYSBOb2ksIA0KVG9u ZyBjb25nIHR5IFRoYW5oIEFuLCBDaWVuY28gMSB2YSBjYWMgZG9uIHZpIGN1YSBjYWMgdG9uZyBj b25nIHR5IHRyZW4gZGEgZ2lhbyBraG9pIA0KbHVvbmcgeGF5IGxhcCBnaWEgdHJpIDc5IHRpIGRv bmcgY2hvIDM5IG5oYSB0aGF1IHBodSB2YSB0aHUgcGhpIGxhaSBzbyB0aWVuIGhvbiA3IHRpIGRv bmcuIA0KDQpDb25nIHR5IFRydW9uZyBBbiB2YSAzIGRvbiB2aSB0aGFuaCB2aWVuIGN1YSBUb25n IGNvbmcgdHkgWGF5IGR1bmcgVHJ1b25nIFNvbiAgDQpjdW5nIGRhIGdpYW8gY2hpIGNhYyB0aGF1 IHBodSB0aGkgY29uZyB2YSB0aHUgZHVvYyBob24gMTUgdGkgZG9uZyB0cm9uZyBraGkgZG8sIGNh YyBuaGEgDQp0aGF1IGRvIGxhaSBraG9uZyBoZSBjbyB0ZW4gdHJvbmcgZGFuaCBzYWNoIG5oYSB0 aGF1IGRhIGRhbmcga3kgdHJvbmcgaG8gc28gZHUgdGhhdS4gRG8gDQpkbywgVGhhbmggdHJhIENo aW5oIHBodSBkYSBraWVuIG5naGkgdGh1IGhvaSBsYWkgc28gdGllbiAiYmFuIHRoYXUiIGN1YSBt b3Qgc28gdG9uZyBjb25nIA0KdHksIGRvbiB2aSBsZW4gdG9pICB0cmVuIDM0IHRpIGRvbmcuDQoN Ck5naGllbSB0aHUsIHRoYW5oIHRvYW4gZ2F5IHRoYXQgdGhvYXQNCg0KVGhlbyBrZXQgbHVhbiBj dWEgZG9hbiBUaGFuaCB0cmEgQ2hpbmggcGh1LCBraGF1IG5naGllbSB0aHUsIHRoYW5oIHRvYW4g ZHUgYW4gZHVvbmcgSG8gDQpDaGkgTWluaCAoZ2lhaSBkb2FuIEkpIGNvIGtob25nIGl0IHNhaSBw aGFtLiANCg0KUXVhIGtpZW0gdHJhIHRhaSBDb25nIHR5IFRyYW5nIEFuIGxhIGRvbiB2aSB0aGFu aCB2aWVuIGN1YSBDb25nIHR5IFhheSBkdW5nIDMxOSB2YSA2IA0KZG9uIHZpIHRoYW5oIHZpZW4g a2hhYyBjdWEgVG9uZyBjb25nIHR5IFhheSBkdW5nIFRydW9uZyBTb24sIG5ndW9pIHRhIHBoYXQg aGllbiB0aGF5IA0KdmllYyBuZ2hpZW0gdGh1LCB0aGFuaCB0b2FuIG1vdCBzbyBwaHUgZ2lhIGto b25nIGR1bmcga2hvaSBsdW9uZywga2hvaSBsdW9uZyB0aHVjIHRlIA0KY2FjIGRvbiB2aSBtdWEg dmEgZHVhIHZhbyB0aGkgY29uZyBpdCBob24ga2hvaSBsdW9uZyB0cm9uZyBobyBzbyBob2FuIGNv bmcsIHRoYW5oIHRvYW4uIA0KQ29uZyB0cmluaCBkdW9uZyBIbyBDaGkgTWluaCwgdm9pIHRvbmcg Y2hpZXUgZGFpIGxlbiB0b2kgMy4xNjcga20gdHUgUGFjIEJvIChDYW8gQmFuZyB0b2kgRGF0IE11 aSwgQ2EgTWF1KS4gDQoNClRvbmcgbXVjIGRhdSB0dSBjaG8gcmllbmcgZ2lhaSBkb2FuIEksIHRo ZW8gZHUgdGluaCBjdWEgQm8gR2lhbyB0aG9uZyB2YW4gdGFpICh0aW5oIHRoZW8gDQp0aG9pIGdp YSBuYW0gMjAwNCwgdGhvaSBkaWVtIGR1IGFuIHRvbmcgdGhlIGR1b25nIEhvIENoaSBNaW5oIGR1 b2MgdGhvbmcgcXVhIHRhaSBreSANCmhvcCB0aHUgNiwgUXVvYyBob2kga2hvYSBYSSkgZGEgbGVu IHRvaSAxNS40NjggdGkgZG9uZyAoZ2lhaSBkb2FuIElJOiAxOC4xNjggdGkgZG9uZykuDQoNCkdp YSB0cmkgY2FjIGxvYWkgdmF0IHR1IHRoaWV1IGxlbiB0b2kgdHJlbiAyLDEgdGkgZG9uZy4gRG8g bGEgY2h1YSBrZSBnYW4gNDQ3IHRyaWV1IGRvbmcga2hhYyANCnRpbmggc2FpIGRvbiBnaWEgZGEg aG9jIG1hIDMgZG9uIHZpIHRoYW5oIHZpZW4gY3VhIFRvbmcgY29uZyB0eSBYYXkgZHVuZyBUcnVv bmcgU29uIGR1b2MgaHVvbmcuIA0KDQpDaHUgZGF1IHR1IGN1bmcgZGEgInF1YSB0YXkiIGtoaSB0 aGFuaCB0b2FuIHNhaSBnaWEgeGkgbWFuZyBjaG8gQ29uZyB0eSBUcnVvbmcgQW4sIA0KdGluaCBz YWkgZGluaCBtdWMgZGFvIG1vbmcgY29uZywga2h1b24gZHVvbmcsIGRhbyBuZW4gZHVvbmcgY2hv IDUgZG9uIHZpIGN1YSBUb25nIA0KY29uZyB0eSB4YXkgZHVuZyBUcnVvbmcgU29uLCBDb25nIHR5 IFRydW9uZyBBbiB2b2kgc28gdGllbiBnYW4gOSwzIHRpIGRvbmcuDQoNCkN1bmcgdGhlbyBUaGFu aCB0cmEgQ2hpbmggcGh1LCB0b25nIHNvIHRpZW4gcGhhaSB4dSBseSBsYWkgbGVuIHRvaSB0cmVu IDM2MSB0aSBkb25nLiBUcm9uZyANCnNvIG5heSwgY28gdG9pIGdhbiA2OCwyIHRpIGRvbmcgbGEg c28gdGllbiBkYSBuZ2hpZW0gdGh1LCBwaGUgZHV5ZXQsIGRhIGNoYXAgbmhhbiANCnRoYW5oIHRv YW4ga2hvbmcgZHVuZyBxdXkgZGluaCBjaG8gY2FjIG5oYSB0aGF1OyA0IHRpIGRvbmcgZG8gbGFu ZyBwaGkgdHJvbmcgdmllYyB0aGkgY29uZyBsYWkgDQptb3Qgc28gaGFuZyBtdWM7IDM1LDg0IHRp IGRvbmcgbGEgc28gdGllbiBjYWMgbmhhIHRoYXUgY2hpbmggdGh1IHBoaSBuaHVvbmcgdGhhdSB0 cmFpIHF1eSANCmRpbmggdmEgY2hpIHBoaSByYSBwaGEgYm9tIG1pbiBkYSBkdW9jIHRoYW5oIHRv YW4gc2FpIHZlIGtob2kgbHVvbmcgdmEgZG9uIGdpYTsgMjIsMjQgdGkgDQpkb25nIHRhbmcgdm9u IGRhdSB0dSBkbyB0aGF5IGRvaSB0aGlldCBrZSBreSB0aHVhdCBraG9uZyBwaHUgaG9wIHZvaSBx dXkgaG9hY2ggdG9uZyB0aGUgDQpkb2FuIGR1b25nIFRoYW5oIEhvYSAtIE5naGUgQW47IDIzMCw5 IHRpIGRvbmcgZG8gdmFuIGR1bmcgc2FpIGNoZSBkbyBjaGluaCBzYWNoLCBhcCANCmR1bmcgc2Fp IGhlIHNvLCBzdSBkdW5nIGtob25nIGR1bmcgbmd1b24gdm9uIGRhdSB0dSBjaG8gZHUgYW4uDQoN CkRpZXUgbmd1eSBoaWVtIGxhIHF1YSB0aGFuaCB0cmEgY3VuZyBjaG8gdGhheSBjaGF0IGx1b25n IGNvbmcgdHJpbmggbyBtb3Qgc28gaGFuZyBtdWMgDQpkYSBraG9uZyBkYW0gYmFvIGR1b2MgeWV1 IGNhdS4gVGFpIGRvYW4gZHVvbmcgdHJhbmggdGhhbmggcGhvIEh1ZSwgaGFuZyBtdWMgYmUgdG9u ZyANCm5odWEgbWF0IGR1b25nIHNhdSAxIG5hbSBzdSBkdW5nIGRhIGh1IGhvbmcsIGxvcCBuaHVh IGxhbmcgYmkgbG9hbmcgbG8gdmEgbWF0IGR1b25nIGJpIHJhbiBudXQuIA0KSGFuZyBtdWMgZG9u ZyBjb2MgYmUgdG9uZyBjb3QgdGhlcCBjYXUgU29uZyBSbyAoTmdoZSBBbikgY28gMjE2IGNvYyB0 aGkgDQpjb25nIGJpIHRoaWV1IGNoaWV1IGRhaSBiaW5oIHF1YW4gbW9pIGNvYyAxLDJtLg0KDQpU aGFuaCB0cmEgQ2hpbmggcGh1IGtpZW4gbmdoaSBUaHUgdHVvbmcgQ2hpbmggcGh1IGdpYW8gY2hv IEJvIHRydW9uZyBCbyBHaWFvIHRob25nIA0KdmFuIHRhaSBraWVtIGRpZW0sIHh1IGx5IHRyYWNo IG5oaWVtIGNhYyBvbmcgVG9uZyBnaWFtIGRvYyBCYW4gcXVhbiBseSBkdSBhbiBkdW9uZyANCkhv IENoaSBNaW5oIHZhIGNhYyBCYW4gcXVhbiBseSBkdSBhbiBraGFjIGRhaSBkaWVuIGNodSBkYXUg dHUsIHRoYW0gZ2lhIHF1YW4gbHkgZHUgYW4gDQpkdW9uZyBIbyBDaGkgTWluaCBnaWFpIGRvYW4g MjAwMC0yMDA1OyBraWVtIGRpZW0sIHh1IGx5IHRyYWNoIG5oaWVtIG9uZyBDaGFuaCB2YW4gDQpw aG9uZyBCbyBHaWFvIHRob25nIHZhbiB0YWksIHRob2kgZGllbSBuYW0gMjAwMiBkbyBkYSB5ZXUg Y2F1IEJhbiBRdWFuIGx5IGR1IGFuIA0KZHVvbmcgSG8gQ2hpIE1pbmggZ2lhbyAxIHhlIG8gdG8g Y3VhIGR1IGFuIGNobyBWYW4gcGhvbmcgQm8gc3UgZHVuZyAobmF5IGRhIHRodSBob2kgbGFpKS4g DQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMDEwMjgxMDI4MzM0NzBQMEM5OTIwL2R1b25nLWhv LWNoaS1taW5oLXRoaWV1LWhvbi04MC12b24uaHRtIE5HVVlFTiBMRSAxMDozOSAoR01UKzcpIDI4 LzEwLzIwMTAgDQoNClRodSB0dW9uZzogRHVvbmcgSG8gQ2hpIE1pbmggdGhpZXUgaG9uIDgwJSB2 b24sIGNoYW0gdGllbiBkbyCWIENoaW5oIHBodSBraG9uZyBob2FuIHRoYW5oIG5oaWVtIHZ1ISAN CiANClZvaSBjaGlldSBkYWkgMy4xNjcga20sIGR1b25nIEhvIENoaSBNaW5oIGxhIHR1eWVuIGR1 b25nIGJvIGRhaSBuaGF0IFZpZXQgTmFtLiANCiANClZpZWMgdGhvbmcgdG9hbiB0dXllbiBkdW9u ZyBIbyBDaGkgTWluaCBjbyB0aGUgY2hhbSBob24ga2UgaG9hY2ggNSBuYW0gZG8gdGhpZXUgdm9u DQoiTmV1IENoaW5oIHBodSBraG9uZyBjaGkgZGFvIHF1eWV0IGxpZXQgdHJvbmcgdmllYyBnaWFp IHF1eWV0IG5ndW9uIHZvbiB2YSBnaWFpIHBob25nIA0KbWF0IGJhbmcgdGhpIGR1IGFuIGR1b25n IEhvIENoaSBNaW5oIGtobyBjbyB0aGUgaG9hbiB0aGFuaCB0b2FuIHR1eWVuIHZhbyBuYW0gMjAx MywgdGhhbSBjaGkgY2EgbmFtIDIwMTUiLg0KDQpMbyBuZ2FpIG5heSBkYSBkdW9jIFV5IGJhbiBL aG9hIGhvYyAtIENvbmcgbmdoZSB2YSBNb2kgdHJ1b25nIGN1YSBRdW9jIGhvaSBuaGFuIG1hbmgg dGFpIGJhbyBjYW8gZ2lhbSBzYXQgdmUgbW90IHNvIGR1IGFuLCBjb25nIHRyaW5oIHF1YW4gdHJv bmcgcXVvYyBnaWEgbmFtIDIwMTAuDQoNCkNvbiBzbyBjdSB0aGUgZHVvYyBuZXUgcmEgbGEgZ2lh aSBkb2FuIGhhaSBjdWEgZHUgYW4gbmF5ICh0dSAyMDA3IC0gMjAxMCkgY2FuIGtob2FuZyANCjMy LjE2OSB0eSBkb25nLCBuaHVuZyBtb2kgYm8gdHJpIGR1b2MgNS40ODYgdHkgZG9uZywgY29uIHRo aWV1IDI2LjY4MyB0eSBkb25nICg4Miw5JSkuIA0KVHJvbmcga2hpIGRvLCBCbyBHaWFvIHRob25n IFZhbiB0YWkgY2h1YSBsYW0gcm8ga2hhIG5hbmcgaGFwIHRodSB2b24gdHJhaSBwaGlldSANCkNo aW5oIHBodSBuaHUgZHUgdG9hbiBjdWEgY2FjIGR1IGFuIGN1bmcgbmh1IGtoYSBuYW5nIGh1eSBk b25nIHZvbiBPREEgdmEgY2FjIA0Kbmd1b24gdm9uIGtoYWMgZG9pIHZvaSBjYWMgZHUgYW4gZGF1 IHR1IHRoZW8gaGluaCB0aHVjIEJULCBCT1QuDQoNClZvaSBjaGlldSBkYWkgMy4xNjcga20sIGR1 b25nIEhvIENoaSBNaW5oIGxhIHR1eWVuIGR1b25nIGJvIGRhaSBuaGF0IFZpZXQgTmFtLiANCkRh eSBsYSBjb25nIHRyaW5oIHF1YW4gdHJvbmcgcXVvYyBnaWEgZGEgZHVvYyBRdW9jIGhvaSBraG9h IDExIHRob25nIHF1YSBjaHUgDQp0cnVvbmcgeGF5IGR1bmcgdGFpIGt5IGhvcCB0aHUgc2F1ICh0 aGFuZyAxMi8yMDA0KS4gDQoNCkJhbyBjYW8gUXVvYyBob2kgdGFpIGt5IGhvcCBjdW9pIG5hbSAy MDA5LCBDaGluaCBwaHUgY2hvIGJpZXQsIGR1b25nIEhvIENoaSBNaW5oIA0KZHUga2llbiBkZW4g bmFtIDIwMTMgbW9pIGNvIHRoZSBub2kgdGhvbmcgdG9hbiB0dXllbi4gVHVjIGxhIHNlIGNoYW0g aG9uIGJhIG5hbSANCnNvIHZvaSBrZSBob2FjaC4gU29uZywgYmFvIGNhbyBnaWFtIHNhdCBjaG8g YmlldCwgaGllbiBCbyBHaWFvIHRob25nIFZhbiB0YWkgZGEgDQpkZSBuZ2hpIGdpYW4gdGllbiBk byBob2FuIHRoYW5oIGRlbiBuYW0gMjAxNS4NCg0KTmh1IHZheSwga2hvbmcgY2hpICJsbyIgeWV1 IGNhdSBuZXUgdHJvbmcgbmdoaSBxdXlldCBjdWEgUXVvYyBob2kgbGEgbm9pIHRob25nIHRvYW4g DQp0dXllbiB2YW8gbmFtIDIwMTAgbWEgdGhlbyBVeSBiYW4gdGhpICJjaGFjIGNoYW4ga2hvbmcg dGhlIHRodWMgaGllbiB5ZXUgY2F1IG5hbmcgDQpjYXAgZHVvbmcgSG8gQ2hpIE1pbmggZGF0IHRp ZXUgY2h1YW4gZHVvbmcgY2FvIHRvYyBnaWFpIGRvYW4gMjAxMCCWIDIwMjAgdGhlbyBuZ2hpIHF1 eWV0IGN1YSBRdW9jIGhvaSIuIA0KDQpRdWEgZ2lhbSBzYXQsIFV5IGJhbiBLaG9hIGhvYyAtIENv bmcgbmdoZSB2YSBNb2kgdHJ1b25nIGtpZW4gbmdoaSBVeSBiYW4gVGh1b25nIHZ1IA0KUXVvYyBo b2kgYmFvIGNhbyB2b2kgUXVvYyBob2kgdmUgdGluaCB0cmFuZyB0aGlldSB2b24gdHJpZW4ga2hh aSBkdSBhbiwgY2FuIG5oYWMgDQpraGEgbmFuZyBodXkgZG9uZyBjYWMgbmd1b24gdm9uIGNobyBk dSBhbiBraGkgZ2lhaSBkb2FuIGhhaSBob2FuIHRoYW5oLiBEb25nIHRob2ksIA0KeGVtIHhldCB2 aWVjIHRpZXAgdHVjIHRyaWVuIGtoYWkgZ2lhaSBkb2FuIDMgZHVvbmcgSG8gQ2hpIE1pbmggKG5h bmcgY2FwIHRoYW5oIA0KZHVvbmcgY2FvIHRvYykgbmV1IHRodSB4ZXAgZHVvYyBuZ3VvbiB2b24g dmEgZGFtIGJhbyBoaWV1IHF1YS4NCg0KQ28gcXVhbiBnaWFtIHNhdCBjdW5nIGRlIG5naGkgQ2hp bmggcGh1IGJhbyBjYW8gdm9pIFF1b2MgaG9pIG5nYXkgdGFpIGt5IGhvcCB0aHUgDQp0YW0gdmUg a2hhIG5hbmcgcGhhaSBnaWFuIHRpZW4gZG8gdGh1YyBoaWVuIGR1IGFuIGdpYWkgZG9hbiBoYWkg bGFuIHhlIGRlbiBuYW0gDQoyMDE1IChjaGFtIDUgbmFtIHNvIHZvaSB5ZXUgY2F1IGN1YSBOZ2hp IHF1eWV0IDM4LzIwMDQvUUgxMSkuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3 cy9QYWdlcy8yMDEwNDQvMjAxMDEwMjkwMzA5NTUuYXNweCBOTWluaCAtIFRMdW9uZyAtIFRNYWkg MjkvMTAvMjAxMCAzOjA5IA0KDQpUaHUgdHVvbmc6IFRoYW0gbmh1bmcga2hvbmcgZ2lhbSBsYW0g bWF0IG5pZW0gdGluIA0KDQpWdSBWaW5hc2hpbiBsYSB0cnVvbmcgaG9wIGRpZW4gaGluaCAtIGRl IGN1IG5ndW9pIGxhbSBUb25nIGdpYW0gZG9jIGNvIGNodSBreSBjdWEgVGh1IHR1b25nDQogIA0K SGF1IGhldCBkYWkgYmlldSAoREIpIFFIIGtoaSBnb3AgeSBjYWMgZHUgdGhhbyB2YW4ga2llbiB0 cmluaCBEYWkgaG9pIFhJIGN1YSBEYW5nIHRhaSANCnBoaWVuIHRoYW8gbHVhbiB0byBzYW5nIDI4 LjEwIGRldSBkYW5oIHN1IHF1YW4gdGFtIGRhYyBiaWV0IGRlICJtbyB4ZSIgdmFuIG5hbiB0aGFt IA0Kbmh1bmcgaGllbiBuYXkuIA0KDQooQW5oOiAiVGluaCBoaW5oIHRoYW0gbmh1bmcgbyBWTiBu aHUgdmFuIGhvYyBoaWVuIHRodWMgcGhlIHBoYW4gbyB0aGUga3kgMTkga2hpIG1hIA0KbmhpbiB0 aGF5IHRhdCBjYSBuaHVuZyBraG9uZyBjbyBiaWVuIHBoYXAgbmdhbiBjaGFuLCB4dSBseSIgLSBE QiBOZ3V5ZW4gRGFuZyBUcnVuZyBUUC5IQ00pDQoNCiJUaGF5IHRhdCBjYSBuaHVuZyBraG9uZyBj byBiaWVuIHBoYXAuLi4/IiANCg0KREIgTmd1eWVuIFRoYW5oIFRhbSAoVFAuSENNKSBjaG8gcmFu ZyBjYWMgZHUgdGhhbyB2YW4ga2llbiB0cmluaCBEYWkgaG9pIERhbmcgZGEgDQpjaGkgcmEgbmd1 eSBjbyB0dXQgaGF1IHZlIGtpbmggdGUgY3VhIGRhdCBudW9jIGNvIGxpZW4gcXVhbiB0b2kgbmFu IHRoYW0gbmh1bmcuIERhbmcgDQpjdW5nIGRhbmggZ2lhIGxhIGNodWEgbmdhbiBjaGFuIGR1b2Mg cXVvYyBuYW4gbmF5LiBUcm9uZyBraGkgZG8sIHRoaWV0IGhhaSB0dSBuYW4gdGhhbSANCm5odW5n IG5nYXkgY2FuZyBuZ2hpZW0gdHJvbmcgdm9pIHZpZWMgY2FjIHZ1IHRoYW0gbmh1bmcsIGxhbmcg cGhpIHNhdSBkZXUgY2FvIGhvbiANCnRydW9jIG5oaWV1IGxhbi4gIk5oYSBudW9jIGNvIGNhYyBj b25nIGN1IGRlIHBob25nLCBjaG9uZyB0aGFtIG5odW5nIG5odSB0aGFuaCB0cmEsIA0Ka2llbSB0 b2FuLCBuaHVuZyBob2F0IGRvbmcgY3VhIGNhYyBjbyBxdWFuIG5heSBjb24gdGhpZXUgaGlldSBx dWEuIEJhbiB0aGFuIGNhYyBjbyANCnF1YW4gbmF5IGN1bmcgY28gbmh1bmcgdnUgdmllYyB0aGFt IG5odW5nIHRoaSBsYW0gc2FvIG5ndW9pIGRhbiBjb24gbmllbSB0aW4gdmFvIGNvIA0KcXVhbiBu aGEgbnVvYyIsIERCIFRhbSB0cmFuIHRyby4gDQoNCk9uZyBUYW0gZGUgbmdoaSBjYW4gY28gY28g Y2hlIHF1eSB0cmFjaCBuaGllbSBybyByYW5nLCBjdSB0aGUgZG9pIHZvaSBuaHVuZyBuZ3VvaSAN CmR1bmcgZGF1LCBsYW5oIGRhbyBjYWMgY28gcXVhbiwgZG9uIHZpIGRlIHhheSByYSB0aW5oIHRy YW5nIHRoYW0gbmh1bmcsIGxhbmcgcGhpLCB0aGF0IA0KdGhvYXQuIEN1bmcgdm9pIGRvIGxhIHZp ZWMgdHJhbyBxdXllbiB0dSBjaHUgZHVvYyBjdSB0aGUgaG9hIGJhbmcgbHVhdCwgdmFuIGJhbiBk dW9pIGx1YXQgDQpkZSB0YW8gaGFuaCBsYW5nIHBoYXAgbHkgdmEgcXV5ZW4gbHVjIHRodWMgc3Ug Y2hvIGxhbmggZGFvLCB0cmFuaCB0aW5oIHRyYW5nIGxvaSB0YXAgdGhlLCANCnRyYWNoIG5oaWVt IHRhcCB0aGUuIA0KDQpEQiBOZ28gTWluaCBIb25nIChUUC5IQ00pIGNobyByYW5nOiAiVnUgVmlu YXNoaW4gbGEgbW90IHRydW9uZyBob3AgcXVhIGRpZW4gDQpoaW5oLiBWYW4gZGUgZGF0IHJhIGxh IHZhaSB0cm8gbGFuaCBkYW8gY3VhIERhbmcgdXkgY28gcXVhbiBuYXkgbmh1IHRoZSBuYW8/IFRh aSBzYW8gDQpuYW0gbmFvIGN1bmcgdGhhbmggdHJhLCBraWVtIHRvYW4sIGtpZW0gdHJhIG1hIHZh biBjbyB0aW5oIHRyYW5nIG1hdCBkYW4gY2h1LCBkYXUgdHUgDQpsYW5nIHBoaSwgdGhhdCB0aG9h dD8iLiBUcm9uZyB2aWVjIGdpYWkgcXV5ZXQgaGF1IHF1YSBjdWEgVmluYXNoaW4sIHRoZW8gYmEg SG9uZywgY3VuZyBjbyANCnZhbiBkZTogIkRhbmcgdXksIGJvIG1heSBsYW5oIGRhbyBob3AgYmFu IG5odSB0aGUgbmFvIGRlIGRlIGN1IG1vdCBuZ3VvaSBsZW4gbGFtIHRvbmcgDQpnaWFtIGRvYywg Y28gY2h1IGt5IGN1YSBUaHUgdHVvbmcsIHJvaSBzYXUgZG8gMSB0dWFuLCAxIHRoYW5nIGxhaSBi YWkgY2h1YywgYmF0IGdpYW0gdmkgDQpwaGFtIHBoYXAuIFJvIHJhbmcsIGNvbmcgdGFjIGtpZW0g dHJhLCBkYW5oIGdpYSBjYW4gYm8gY28gdmFuIGRlIi4gDQoNCkRCIE5ndXllbiBUaGFuaCBUYW4g KEhhIFRpbmgpICJtbyB4ZSI6ICJUaW5oIHRyYW5nIHRoYXQgdGhvYXQgdGFpIHNhbiBvIGNhYyB0 YXAgZG9hbiwgDQp0b25nIGNvbmcgdHkgY28gcGhhbiBsb2kgeHVhdCBwaGF0IHR1IHZpZWMga2hv bmcgY28gbHVhdCB2ZSBxdWFuIGx5IHRhaSBzYW4gdmEgdm9uIGN1YSANCk5oYSBudW9jLCBtYWMg ZHUgZGF5IGxhIHZhbiBkZSBEQlFIIGRlIHh1YXQgeGF5IGR1bmcgdHUgbGF1LCBuaHVuZyBkZW4g bmF5IHZhbiANCmtob25nIHRodWMgaGllbiIuIFRoZW8gREIgVGFuOiAiQ2hpbmggcGh1IHRyYW8g cmF0IG5oaWV1IHF1eWVuIGNobyBuZ3VvaSBsYW5oIGRhbyBjYWMgDQp0YXAgZG9hbiwgdG9uZyBj b25nIHR5IG5oYSBudW9jIG5odW5nIGxhaSB0aGlldSBtb3QgY28gY2hlLCBoYW5oIGxhbmcgcGhh cCBseSBkZSBxdWFuIGx5IA0Ka2luaCB0ZSwgZGFuIGRlbiB0aGF0IHRob2F0IHRhaSBzYW4sIHZh IHRyb25nIHR1b25nIGxhaSBjbyB0aGUgY29uIGNvIG5odW5nIHZ1IFZpbmFzaGluIA0Ka2hhYyIu IE9uZyBUYW4gZGUgbmdoaSBjYW4geGF5IGR1bmcgbW90IGNvIGNoZSBxdWFuIGx5IGtpbmggdGUg c2FvIGNobyBjYWMgdGhhbmggcGhhbiBkdW9jIGJpbmggZGFuZy4gDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAyOTAzMDk1NS5hc3B4IE5NaW5o IC0gVEx1b25nIC0gVE1haSAyOS8xMC8yMDEwIDM6MDkgDQoNClRodSB0dW9uZzogVGhhbSBuaHVu ZyBraG9uZyBnaWFtIGxhbSBtYXQgbmllbSB0aW4gKHRpZXApIA0KDQpIYXUgaGV0IGRhaSBiaWV1 IChEQikgUUgga2hpIGdvcCB5IGNhYyBkdSB0aGFvIHZhbiBraWVuIHRyaW5oIERhaSBob2kgWEkg Y3VhIERhbmcgdGFpIA0KcGhpZW4gdGhhbyBsdWFuIHRvIHNhbmcgMjguMTAgZGV1IGRhbmggc3Ug cXVhbiB0YW0gZGFjIGJpZXQgZGUgIm1vIHhlIiB2YW4gbmFuIHRoYW0gDQpuaHVuZyBoaWVuIG5h eS4gDQoNCk5oaWV1IG5ndW9pIGdpYXUgbGVuIG1vdCBjYWNoIGtob25nIGNoaW5oIGRhbmcgLSBr aG9hbmcgY2FjaCBnaWF1IJYgbmdoZW8gY2hlbmggbGVjaCBuZ2F5IG1vdCBsb24NCg0KTmdvYWkg bm9pIGR1bmcgdGhhbSBuaHVuZywgbW90IHNvIERCIGN1bmcgYmF5IHRvIGxvIG5nYWkgdHJ1b2Mg a2hvYW5nIGNhY2ggZ2lhdSCWIA0KbmdoZW8gY2hlbmggbGVjaCBuZ2F5IG1vdCBsb24gZ2l1YSBu b25nIHRob24gdmEgdGhhbmggdGhpLCBnaXVhIGRvbmcgYmFuZyB2b2kgbWllbiANCm51aS4gREIg SG9hbmcgVGhpIEJpbmggKENhbyBCYW5nKSBuaGFuIHhldDogY2h1bmcgdGEgZGUgcmEgbXVjIHRp ZXUgdGh1IGhlcCBraG9hbmcgDQpjYWNoIHRodSBuaGFwIG5odW5nIHRodWMgdGUgbmh1bmcgbmFt IHF1YSBjaG8gdGhheSBraG9hbmcgY2FjaCBnaWF1IC0gbmdoZW8gbmdheSANCmNhbmcgbG9uIGdp dWEgdGhhbmggdGhpIHZhIG5vbmcgdGhvbiwgbWllbiBudWkgdmEgbWllbiB4dW9pLiANCg0KREIg UGhhbSBUaGkgTG9hbiAoSGEgTm9pKSBjdW5nIGNobyByYW5nLCBoaWVuIGtob2FuZyBjYWNoIGdp YXUgLSBuZ2hlbyBkYW5nIG5nYXkgDQpjYW5nIHJvIHJhbmcsIG1vdCBsdWMgbHVvbmcgZ2lhdSBs ZW4gdmkgY28gaG9pIGNoaW5oIHNhY2gsIGNvIGhvaSBkYXUgY28gYmF0IGRvbmcgc2FuLCANCmNo dXAgZ2lhdCB2YSBnaWF1IGxlbiBtb3QgY2FjaCBraG9uZyBjaGluaCBkYW5nLiBEZSBnaWFpIHF1 eWV0IHZhbiBkZSBjaGVuaCBsZWNoIA0Ka2hvYW5nIGNhY2ggZ2lhdSAtIG5naGVvLCBiYSBMb2Fu IGRlIG5naGkgY2FuIGJhdCBkYXUgdHUgdmllYyB4ZW0geGV0IGxhaSBjYWMgdmFuIGRlIA0KcGhh dCB0cmllbiBkbyB0aGkgdGhlbyBodW9uZyBjbyBzdSBwaGF0IHRyaWVuIGNhbiBkb2kgZ2l1YSBj YWMgVFA7IHRhcCB0cnVuZyBkbyB0aGkgaG9hIG5vbmcgdGhvbi4gDQoNCmh0dHA6Ly90dW9pdHJl LnZuL0NoaW5oLXRyaS1YYS1ob2kvVGhvaS1zdS1zdXktbmdoaS80MDg1OTYvNy1waHV0LTItbmdh eS12YS1uaHVuZy1ub2ktbG8uaHRtbCBMRSBLSUVOICAwMS8xMS8yMDEwLCAwNTo1MCAoR01UKzcp IA0KUXVvYyBob2kgdGhhbyBsdWFuIHZlIHRpbmggaGluaCBraW5oIHRlIC0geGEgaG9pOiANCg0K NyBwaHV0LCAyIG5nYXkgdmEgbmh1bmcgbm9pIGxvIA0KDQpUVCAtIEhhaSBuZ2F5IFF1b2MgaG9p IHRoYW8gbHVhbiB2ZSB0aW5oIGhpbmgga2luaCB0ZSAtIHhhIGhvaSAobmdheSAxIHZhIDItMTEp IGNvIHRoZSBsYSANCmtoYSBkYWkgZG9pIHZvaSBuZ3VvaSBuZ2hlLCBuZ3VvaSB4ZW0gdHJ1eWVu IHRoYW5oLCB0cnV5ZW4gaGluaCB0cnVjIHRpZXAsIG5odW5nIHZvaSBjYWMgDQpkYWkgYmlldSBR dW9jIGhvaSB2b24gYmUgYm9uIGxvIHRvYW4gdHJ1b2Mgbmh1bmcgdmFuIGRlIHF1b2MgZ2lhIGRh aSBzdSB0aGkgYmF5IHBodXQgdG9pIA0KZGEgY2hvIG1vaSBsYW4gcGhhdCBiaWV1IGR1b25nIG5o dSBxdWEgbmdhbi4NCg0KVFMgVHJhbiBEdSBMaWNoIChkYWkgYmlldSBUUC5IQ00pIGNobyBiaWV0 IG9uZyBkYSB2aWV0IG1vdCBiYW4gdGhhbSBsdWFuIHRyaW5oIGJheSANCnNhdSBuaG9tIHZhbiBk ZSBidWMgeHVjIGRhbmcgZGUgZG9hIHN1IGJlbiB2dW5nIGN1YSBuZW4ga2luaCB0ZSwgbmh1bmcg YmF5IHBodXQgdGhpIA0Ka2hvbmcgZHUgZGUgb25nIG5vaSBjYW4geSBjYW4gbG9pLg0KDQpOaGll dSBkYWkgYmlldSBRdW9jIGhvaSBkdW9jIGhvaSBjdW5nIGNvIGN1bmcgdGFtIHRyYW5nIG5odSBU UyBMaWNoLiBDb24gc28gdGFuZyANCnRydW9uZyBHRFAgNiw3JSBjdWEgbmFtIDIwMTAgZGFuZyBw aGFpICJjb25nIiB0aGVvIG5vIGhhbmcgbG9hdCBjaGkgZGF1IG1hIFV5IGJhbiANCktpbmggdGUg ZGluaCBkYW5oIGxhICJ0aWVtIGFuIGJhdCB0cmFjIi4gDQoNCk9uZyBMaWNoIG5vaSB0aGVtIENo aW5oIHBodSB0aWVwIHR1YyBkYXQgbXVjIHRpZXUgdXUgdGllbiBvbiBkaW5oIHZpIG1vIGxhIGR1 bmcgbmh1bmcgDQp2YW4gZGUgbGEgY28gb24gZGluaCBkdW9jIGtob25nLiBPbmcgY2hvIHJhbmcg YmFpIHRvYW4gbmF5IHF1YSBsYSBraG8gY28gbG9pIGdpYWkga2hpIA0KbmhhcCBzaWV1IGRhIHRy byB0aGFuaCBjYW4gYmVuaCBtYW4gdGluaCwgZGF1IHR1IGNvbmcgdGhpZXUgaGlldSBxdWEgY3Vu ZyB2b2kgYm9pIGNoaSANCm5nYW4gc2FjaCB0cmllbiBtaWVuLg0KDQpNdW9uIHRhbmcgdHJ1b25n IGNhbyB0aGkgcGhhaSBkYXUgdHUgdm9uIGxvbi4gTXVvbiBjbyBuaGlldSB2b24gdHJvbmcgZGll dSBraWVuIG51b2MgDQpuZ2hlbyB0aGkgcGhhaSBkaSB2YXksIG1hIHZheSB0aGkgcGhhaSBsbyB0 cmEgbm8uIE5odW5nIG11b24gdHJhIGR1b2Mgbm8gdGhpIHZvbiB2YXkgYXkgDQpwaGFpIGR1b2Mg c3UgZHVuZyBjbyBoaWV1IHF1YS4uLiANCg0KVHJvbmcga2hpIGRvLCBubyBjb25nIGRhIG8gbXVj IDU2LDclIEdEUCwgbmdoaWEgbGEgVk4gZGFuZyBubyB0cmVuIGR1b2kgNjAgdGkgVVNELiANClZv aSBraG9hbiBubyBuaHUgdmF5LCBVeSBiYW4gS2luaCB0ZSBkYSBsZW4gdGllbmcgY2FuaCBiYW8g dmUgImFuIG5pbmggdGFpIGNoaW5oIHF1b2MgDQpnaWEiLiANCg0KIlZheSBtYSBkYXUgdHUgY28g aGlldSBxdWEgdGhpIGtob25nIG5vaSBsYW0gZ2kuIE5odW5nIG1pbmggZGF1IHR1IHJhdCBrZW0g aGlldSBxdWEsIA0KY2hpIHNvIElDT1IgZ2FuIGRlbiAxMCByb2kgKHRhbmcgdm9uIGRhdSB0dSAx MCUgbW9pIGR1b2MgMSUgdGFuZyB0cnVvbmcgLSBOVikuIFRvaSANCm5naGkgY2hpIHNvIElDT1Ig MTAgdGhpIG1pbmggZHVuZyBkYXUgdHUgbnVhLCB0aG9pIHRoaSBtaW5oIGNoaXUga2hvIG1vdCB0 aSwgc2F1IG5heSBjb24gDQpjaGF1IG1pbmggZG8gcGhhaSB0cmEgbm8sIGtoaSBuYW8gbWluaCBx dWFuIHRyaSB0b3QsIGxhbSBhbiBjbyBoaWV1IHF1YSB0aGkgdmF5IHNhdSIgLSBQaG8gDQpjaHUg bmhpZW0gVXkgYmFuIEtpbmggdGUgTWFpIFh1YW4gSHVuZyBsbyBsYW5nLiANCg0KTm9pIGxvIGN1 YSBvbmcgSHVuZyBkdW9jIG9uZyBOZ28gVmFuIE1pbmggKGRhaSBiaWV1IFF1YW5nIE5hbSkgY2h1 bmcgbWluaCBiYW5nIA0KdmkgZHUgaGllbiBodXUgbmdheSB0cnVvYyBreSBob3AgUXVvYyBob2kg dm9pIHZ1IGJlIG5vIDg2LjAwMCB0aSBkb25nIGN1YSBWaW5hc2hpbi4gDQpEdW5nIGxhIHZheSBk ZSBkYXUgdHUga2lldSBWaW5hc2hpbiB0aGkgZHVuZyBkYXUgdHUgbnVhIGNvbiBob24uDQoNCk1h IGRhdSBjaGkgY28gbm8sIG5oYXAgc2lldSwgZGF1IHR1IGhpZXUgcXVhIHRoYXAsIGxhbSBwaGF0 IG8gbXVjIGNhby4uLiwgbmhpZXUgZGFpIGJpZXUgDQpRdW9jIGhvaSBjb24gYmF5IHRvIHN1IGxv IG5nYWkgdHJ1b2MgbW9pIHRydW9uZyB4YSBob2kgZGFuZyBiaSB4dW9uZyBjYXAgbmdoaWVtIHRy b25nLiANCk5ldSBuaHUgdHUgImJhdCB0cmFjIiBkdW9jIGNhbmggYmFvIGNobyBuZW4ga2luaCB0 ZSB0aGkgdHUgImJhdCBhbiIgZHVvYyBkdW5nIGNobyB0aW5oIA0KaGluaCB4YSBob2kuIA0KDQpC YSBOZ3V5ZW4gVGhpIEtoYSwgdXkgdmllbiB0aHVvbmcgdHJ1YyBVeSBiYW4gY2FjIHZhbiBkZSB4 YSBob2ksIGxpZXQga2U6IGRvbiBkYXAgY2FjIA0KdnUgdmllYyBiYW8gbHVjLCBnaWV0IG5ndW9p IGJvaSBuaHVuZyBseSBkbyByYXQgZG9uIGdpYW4gbmh1bmcgaGFuaCB2aSByYXQgZGEgbWFuLiBD aGF5IA0KeGUgbmdvYWkgZHVvbmcgdmEgcXVldCBuaGUgY3VuZyB0aGFuaCB4byB4YXQgcm9pIGdp ZXQgbmhhdTsgdHJvbmcgZ2lhIGRpbmggdGhpIGNvIHRydW9uZyANCmhvcCBjaGEgZ2lldCBjb24s IGNob25nIGdpZXQgdm8sIG5ndW9pIG8gZ2lldCBjaHUgbmhhLCBtZSBoYW5oIGhhIGNvbiBuaG87 IHRyZW4gaG9jIA0KZHVvbmcgdGhpIG51IHNpbmggY3VuZyBkYW5oIGxvbiBuaHUgZ2lhbmcgaG8s IGNvIGdpYW8gdGhpIGR1bmcgbG9pIGxlIHRobyB0dWMgbWF0IHNhdCBob2MgDQpzaW5oLCBob2Mg c2luaCB0aGkgaGFuaCBodW5nIHRoYXkgZ2lhby4uLg0KDQpWYSBjb24gbW90IG5vaSBiYXQgYW4g bnVhIGR1b2MgVXkgYmFuIFR1IHBoYXAgY2hpIHJhIHRyb25nIGJhbyBjYW8gZ2lhbSBzYXQgY29u ZyB0YWMgDQpwaG9uZyBjaG9uZyB0aGFtIG5odW5nIG5hbSAyMDEwIHJhbmcga2hvbmcgaXQgZG9h bmggbmdoaWVwIHZhIG5ndW9pIGRhbiBjaG8gYmlldCBobyANCnNhbiBzYW5nIGNoaSB0aWVuIG5n b2FpIHF1eSBkaW5oIGNvdCBkZSBkdW9jIHZpZWMgY3VhIG1pbmguIE1vdCB0aGFuaCB2aWVuIFV5 IGJhbiANClRodW9uZyB2dSBRdW9jIGhvaSBsdWFuIGdpYWkgcmFuZyBuZXUgbmh1IHZheSB0aGkg dmllYyBkdWEgdmEgbmhhbiBob2kgbG8gZGEgdHJvIHRoYW5oIA0KbW90IGhhbmggdmkgYmluaCB0 aHVvbmcgZHVvYyBjaGFwIG5oYW4gdHJvbmcgeGEgaG9pLg0KDQpWb2kgY2h1bmcgYXkgc3UgdXUg cGhpZW4gY2FuIGxvaSBnaWFpIGRhcCBodXUgaGlldSB0aGkgYmF5IHBodXQgY2hvIG1vaSBkYWkg YmlldSB2YSBoYWkgDQpuZ2F5IGNobyBRdW9jIGhvaSBxdWEgbGEga2hvYW5nIHRob2kgZ2lhbiBj YW5nIHRoYW5nLiANCg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0z MS1raGktbG9pLXhpbi1sb2ktdmFuLWNvbi1sYS14YS14aSBUYWMgZ2lhOiBUcmFuIE1pbmggUXVh bg0KDQpLaGkgbG9pIHhpbiBsb2kgdmFuIGNvbiBsYS4uLiB4YSB4aQ0KDQpPIG51b2MgdGEsIGNh aSBzdSAieGluIGxvaSIga2hpIG1hYyBzYWkgbGFtIGhpbmggbmh1IHZhbiBsYSBtb3QgaGFuaCB2 aSByYXQgbmdoaWVtIHRyb25nIA0KY3VhIGNvbiBuZ3VvaSwgbmh1IG1vdCB0aHUgbWEgbmd1b2kg dGEga2hvbmcgZGUgZGFuZyBtYW5nIGRlbiBjaG8gbmd1b2kga2hhYy4NCg0KIkltIGxhbmcga2hv bmcgcGhhaSBsYS4uLiB2YW5nIiB2YSBjYXUgY2h1eWVuIHh1IG5ndW9pDQoNCk1vdCBuZXQgdmFu IGhvYSwgbm9pIGR1bmcgaG9uIGxhIG1vdCB0aG9pIHF1ZW4gcmF0IGRvbiBnaWFuIHR1b25nIG5o dSBhaSBjdW5nIGNvIHRoZSANCmxhbSBkdW9jLCBsYSBub2kgImxvaSBjYW0gb24iLCAibG9pIHhp biBsb2kiIGxhaSB0byByYSBraGEgeGEgbGEsIG5vIG5odSBtb3QgbW9uIGhhbmcgeGEgeGkgDQpj dWEgZGEgc28gbmd1b2kgVmlldCBOYW0gaG9tIG5heS4NCg0KQ2hhYyBjbyBsZSBuaGlldSBuZ3Vv aSBiaWV0IHJhbmcgbG9pIGNhbSBvbiwgbG9pIHhpbiBsb2kgbmh1IGxhIGNhdSBub2kgY3VhIG1p ZW5nIGN1YSBkYSANCnNvIG5ndW9pIG51b2MgbmdvYWkuIFR1IG5odW5nIGNodXllbiBsb24gZGVu IGNodXllbiBuaG8sIGtoaSBjYW4gbmhvIGFpIGRvIG1vdCBkaWV1IA0KZ2ksIGhvIGRldSAieGlu IGxvaSIgdmEgc2F1IGtoaSBuaGFuIGR1b2MgY2F1IHRyYSBsb2kgdGhpIGhvIG5vaSAiY2FtIG9u Ii4gRG8gbGEgbW90IHRob2kgDQpxdWVuIGdpYW4gZG9uIG5odW5nIGN1bmcgY28gdGhlIHhlbSBk byBsYSBtb3QgbmV0IHZhbiBtaW5oIG1hIGN1bmcgcmF0IGtoaWVtIA0Kbmh1b25nLCB0aGUgaGll biBzdSB0b24gdHJvbmcgdmEgYmlldCBvbiBkb2kgdm9pIG5ndW9pIGtoYWMuDQoNClRyb25nIG1v dCB4YSBob2kgaGllbiBkYWksIG5odW5nIGtob2FuZyBjYWNoIHZlIGtob25nIGdpYW4gZGEgZHVv YyB0aHUgaGVwLCBuZ3VvaSANClZpZXQgTmFtIGhvbSBuYXkgZGEgYmF0IHRheSBsYW0gYmFuIHZv aSBoYXUgaGV0IGNhYyBkYW4gdG9jIHRyZW4gdGhlIGdpb2kuIFN1IGdpYW8gdGhvYSANCnZlIHZh biBob2EgZGEgdmEgZGFuZyBkaWVuIHJhIGNhIGNoaWV1IHJvbmcgbGFuIGNoaWV1IHNhdS4gVmFu IGhvYSBWaWV0IE5hbSBjdW5nIGRhIGR1IA0KbmhhcCBuaGlldSB0aW5oIGhvYSB2YW4gaG9hIHRo ZSBnaW9pIHZhIHZhbiBob2EgVmlldCBOYW0gY3VuZyBkdW9jIHRoZSBnaW9pIGRvbiBuaGFuLCAN CmNoaWEgc2Ugbmh1IG1vaSBzdSB0cmFvIGRvaSBiaW5oIHRodW9uZyBraGFjLiBWYXkgbWEgdGhv aSBxdWVuIHJhdCBkb24gZ2lhbiBuaHUgImxvaSANCmNhbSBvbiIsICJsb2kgeGluIGxvaSIgdmFu IGtobyB0aWVwIG5oYW4gZGVuIGxhIGt5Lg0KDQpUcm9uZyBjdW9jIHNvbmcgaGFuZyBuZ2F5LCBr aG9uZyBhaSB0cmFuaCBkdW9jIG5odW5nIHNhaSBsYW0sIGNvIG5odW5nIHNhaSBsYW0gZG8gY2h1 IA0KcXVhbiwgY28gbmh1bmcgc2FpIGxhbSBraGFjaCBxdWFuLiBOaHVuZyBjaGFjIGNoYW4gbW90 IGRpZXUgcmFuZywgbmh1bmcgc2FpIGxhbSBjdWEgDQptaW5oIHNlIGxhbSB0b24gaGFpIGRlbiBu Z3VvaSBraGFjIGR1IGl0IGhheSBuaGlldSwgZHVvaSBiYXQga3kgaGluaCB0aHVjIG5hby4NCg0K Q28gbG9pIHRoaSBwaGFpIHhpbiBsb2kuIERvIGtob25nIGNoaSBsYSBkYW0gdGh1YSBuaGFuIGNh aSBzYWksIGNhaSB0aGlldSBzb3QgY3VhIGJhbiB0aGFuIA0KbWEgY29uIHRoZSBoaWVuIHN1IHRv biB0cm9uZyBuZ3VvaSBraGFjLiBOZ29haSByYSwgbG9pIHhpbiBsb2kgdGhlIGhpZW4gdGluaCB0 cmFjaCBuaGllbSANCmNhbyBjdWEgbW9pIGNvbiBuZ3VvaSwgdHUgZG8gdGltIGNhY2gga2hhYyBw aHVjLCBzdWEgc2FpLg0KDQpNb3Qga2hpIGRhIGJpZXQgbWluaCBzYWkgbWEga2hvbmcgbm9pIGxv aSB4aW4gbG9pLCBjdSBsYXkgY2F1ICJpbSBsYW5nIGxhIHZhbmciIGxhbSB0YW0gDQpiaW5oIHBo b25nLCB0aGkgcmF0IGRhbmcgYmkgbGVuIGFuLiBEYW4gZ2lhbiBjbyBjYXU6ICJEYW5oIGtlIGNo YXkgZGkgY2h1IGtob25nIGRhbmggDQpuZ3VvaSBjaGF5IGxhaSIgdGhlIGhpZW4gdGluaCBuaGFu IGRhbywgdmkgdGhhIGN1YSBjb24gbmd1b2kuIE5ldSBiaWV0IG5oYW4gbG9pIHZhIHhpbiBsb2kg DQpjaGFuIHRoYW5oLCBjaGFjIGNoYW4gc2UgZHVvYyBkdSBsdWFuIHRob25nIGNhbSB2YSBjbyBu aHVuZyB0cnVvbmcgaG9wLCBuZ3VvaSB0YSByYXQgDQpraW5oIG5lIHRoYWkgZG8gY2F1IHRoaSBk by4NCg0KTW9pIG5ndW9pIGNoYWMgY29uIG5obyBjaHV5ZW4gTmdvYWkgdHJ1b25nIEhhbiBRdW9j IFl1IE15dW5nLWh3YW4gZGEgY29uZyBraGFpIA0KeGluIGxvaSB2YSBxdXlldCBkaW5oIHR1IGNo dWMgdmkgY28gbmhpZXUgY2FvIGJ1b2MgdmUgdmllYyBkYSB0dXllbiBkdW5nIGNvbiBnYWkgb25n IGNobyANCm1vdCB2aSB0cmkgZHVvYyB0cmEgbHVvbmcgY2FvIHRyb25nIEJvIE5nb2FpIGdpYW8u IEN1bmcgdGFpIHh1IHNvIGtpbSBjaGkgbmF5LCBjdXUgVG9uZyANCnRob25nIFJvaCBNb28gSHl1 biBkYSB0dSBzYXQga2hpIGNvIG5odW5nIG5naGkgbmdvIG5ndW9pIGdpYSBkaW5oIG9uZyBsaWVu IHF1YW4gZGVuIA0KbW90IHZ1IHRoYW0gbmh1bmcgbG9uLiBUcnVvYyBkbywgb25nIGRhIGN1aSBk YXUgeGluIGxvaSBuaGFuIGRhbiBIYW4gUXVvYyB2aSBkYSBkZSANCm5odW5nIHN1IHZpZWMgZGFu ZyB0aWVjIHhheSByYS4NCg0KTmdvYWkgdHJ1b25nIEhhbiBRdW9jIFl1IE15dW5nLWh3YW4gdmEg VG9uZyB0aG9uZyBSb2ggTW9vIEh5dW4gZHVvYyBkYW5oIGdpYSANCmxhIG5ndW9pIHJhdCBjbyB0 cmFjaCBuaGllbSwgZGFtIG5oaW4gdGhhbmcgdmFvIHN1IHRoYXQuIEhvIHNhbiBzYW5nIHhpbiBs b2kgbmV1IHRoYXkgDQptaW5oIGNvIGxvaSB2b2kgbmhhbiBkYW4sIHZvaSBkYXQgbnVvYy4gSG8g c2FuIHNhbmcgbWF0IHRhdCBjYSwga2UgY2EgbWFuZyBzb25nLCBjaHUgDQpuaGF0IHF1eWV0IGto b25nIGRlIG5oYW4gZGFuIG1hdCBsb25nIHRpbi4gRG8gY2hpbmggbGEgbmh1bmcgdGFtIGd1b25n IHNhbmcgdmUgbG9uZyANCnR1IHRyb25nLg0KDQouLi4uLlZhIGtoaSBzdSBraWV1IG5nYW8gcXVh IGxvbg0KDQpDb24gbyBudW9jIHRhLCBjYWkgc3UgInhpbiBsb2kiIGtoaSBtYWMgc2FpIGxhbSBo aW5oIG5odSB2YW4gbGEgbW90IGhhbmggdmkgcmF0IG5naGllbSANCnRyb25nIGN1YSBjb24gbmd1 b2ksIG5odSBtb3QgdGh1IG1hIG5ndW9pIHRhIGtob25nIGRlIGRhbmcgbWFuZyBkZW4gY2hvIG5n dW9pIGtoYWMuIA0KTmh1bmcgbmh1bmcgbmd1b2kgcXVhbiBuaWVtIHZlIGNhaSBzdSAieGluIGxv aSIga2lldSBkbywgdGh1YyByYSBsYSBuaHVuZyBuZ3VvaSBraG9uZyANCmNvIGxvbmcgdHUgdHJv bmcuIEhvYWMgaG8gY28gbG9uZyB0dSB0cm9uZyBkYXksIG5odW5nIGNhaSB0b2ksIHN1IGtpZXUg bmdhbywgdGluaCB0dSBjYW8gdHUgDQpkYWkgY3VhIGhvIHF1YSBsb24ga2hpZW4gaG8ga2hvbmcg dGhlIHZ1b3QgcXVhIGNoaW5oIG1pbmguDQoNCkxhdSBuYXkgY2h1bmcgdGEgaGF5IG5naGUgbmhh YyBuaGlldSBkZW4gInZhbiBob2EgdHUgY2h1YyIuIEN1bSB0dSBuYXkgY3VuZyBkYSBkdW9jIA0K bmhhYyBkZW4gbmdheSB0cm9uZyBuZ2hpIHRydW9uZyBRdW9jIGhvaS4gTW9pIGRheSwgdGhlbyBW aWV0TmFtTmV0LCB0cm9uZyBjdW9jdGhhbyANCmx1YW4gdGFpIHRvIHZlIGtpbmggdGUgLSB4YSBo b2kgc2FuZyBuZ2F5IDIyLzEwLzIwMTAsIG9uZyBOZ3V5ZW4gQmEgVGh1eWVuLCBkYWkgYmlldSAN ClF1b2MgaG9pLCBWaWVuIHRydW9uZyB2aWVuIEtTTkQgdGluaCBMYW0gRG9uZywgY2FtIHRyZW4g dGF5IGJhbyBjYW8gQ2hpbmggcGh1IHZlIA0KVmluYXNoaW4gbm9pIHJhbmcgIlRvaSBjaG8gcmFu ZyBuaHVuZyBjYSBuaGFuIGxpZW4gcXVhbiBkZW4gdnUgdmllYyBuYXkgcGhhaSB0dSBjaHVjLiAN CkRheSBjbyBsZSBsYSBtb3QgY28gaG9pIGRlIHRoZSBoaWVuIHZhbiBob2EgdHUgY2h1YyIuIA0K DQpOaHVuZyBkaWV1IG1hIG9uZyBOZ3V5ZW4gQmEgVGh1eWVuIG5vaSBkdW9jIHhlbSBsYSBub2kg YmFuIGtob2FuIGN1YSBraG9uZyBpdCANCm5ndW9pLiBUcm9uZyBkZW0gYmUgbWFjIExpZW4gaG9h biBwaGltIFF1b2MgdGUgVmlldCBOYW0gbW9pIGRheSwgdHJ1b2MgaGFuZyBjaHVjIA0Ka2hhY2gg bW9pIHF1b2MgdGUsIGR1b2Mgc3UgY2h1bmcga2llbiBjdWEgaGFuZyB0cmlldSBraGFuIGdpYSB0 YWkga2hhbiBwaG9uZyB2YSB0cnVvYyANCm1hbiBoaW5oLCBuZ3VvaSBkdW9jIG1lbmggZGFuaCBs YSAibm9pIG5oaWV1IG5oYXQgVmlldCBOYW0iLSBNQyBMLlYuUyBkaWNoIHNhaSBsb2kgDQpwaGF0 IGJpZXUgY3VhIGRpZW4gdmllbiBIb25nIEtvbmcgTmdvIE5nYW4gVG8uDQoNCkhhbmggZG9uZyBk byBjdWEgTUMgTC5WLiBTIGtoaWVuIGR1IGx1YW4geGEgaG9pIGJhbiBsdWFuIG5oaWV1IGNoaWV1 LiBDaGUgdHJhY2ggY28sIA0KYmllbiBtaW5oIGNvLCB2YSBjaGUgY3VvaSBvbmcgY3VuZyBjby4g WSBraWVuIGtoYXQga2hlIGNvbiBjaG8gcmFuZyBvbmcgbGFtIG1hdCB0aGUgDQpkaWVuIHF1b2Mg Z2lhIHRydW9jIGJhbiBiZSBxdW9jIHRlLg0KDQpHaWEgbmh1IHF1YSBzdSB2aWVjIG5heSwgZHUg bHVhbiBuaGFuIGR1b2Mgc3UgZ2lhaSB0aGljaCB2YSBsb2kgeGluIGxvaSBjb25nIGtoYWkgdHUg Y2hpbmggDQpvbmcgdGhpIGhpbmggYW5oIG1vdCBNQyAiY28gbmdoZSIgdmFuIGdpdSBkdW9jIGFu IHR1b25nIHRvdCB0cm9uZyBsb25nIGNvbmcgY2h1bmcuIA0KVGllYyB0aGF5LCBkYSBuaGlldSBu Z2F5IHRyb2kgcXVhLCBraGF1IGhpZW4gImltIGxhbmcgbGEgdmFuZyIgbW90IGxhbiBudWEgbGFp IGxhcCBsYWkuLi4NCg0KTW90IG5oYSBiYW8ga2hvbmcgYmlldCBub2kgbG9pIHhpbiBsb2kgY2hh biB0aGFuaCwgdGhpIGxhbSBzYW8gbW9uZyBjbyBkdW9jIG5odW5nIGxvaSANCnhpbiBsb2kgdHUg bmh1bmcgbmd1b2kgY28gY2h1YyB2dSBjYW8gaG9uLg0KDQpLaGkgbmh1bmcgdGhvaSBxdWVuIHJh dCBkb2kgYmluaCB0aHVvbmcgbmh1IG5vaSAibG9pIHhpbiBsb2kiLCBkdWMgdGluaCB0b3QgZGVw IG5odSAibG9uZyANCnR1IHRyb25nIiBraG9uZyBkdW9jIHN1IGR1bmcgbW90IGNhY2ggaGllbiBu aGllbiB0cm9uZyBjdW9jIHNvbmcgdGhpIG5odW5nIHRodSB2YW4gDQpob2EgcXVhIGNhbyBzaWV1 IG5odSAidmFuIGhvYSB0dSBjaHVjIiBtYWkgbWFpIGxhIG1vdCBraGFpIG5pZW0geGEgdm9pLiAN Cg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAxMS9LaWVuLW5naGktZHVu Zy1ib3hpdC1UaHUtdHVvbmctcXV5ZXQtdGhlLW5hby05NDgwMDYvIExlIE5odW5nIDE2OjA4LCAx OC8xMS8yMDEwIChHTVQrNykNCg0KVHJhY2ggbmhpZW0gdnUgVmluYXNoaW4gJiBraWVuIG5naGkg ZHVuZyBib3hpdDogVGh1IHR1b25nIHF1eWV0IHRoZSBuYW8/IA0KDQotIFNhaSBwaGFtIG8gVmlu YXNoaW4gdmEgY2F1IGNodXllbiBidW4gZG8gVGF5IE5ndXllbiB0aWVwIHR1YyB0cm8gdGhhbmgg DQpuaHVuZyB2YW4gZGUgIm5vbmciIG1hIERCUUggY2hhdCB2YW4gY2FjIHRoYW5oIHZpZW4gQ2hp bmggcGh1Lg0KDQpUaG9uZyBrZSBjdWEgVnUgY29uZyB0YWMgZGFpIGJpZXUgdGFwIGhvcCBjYWMg Y2F1IGhvaSBjaGF0IHZhbiBiYW5nIHZhbiBiYW4gY2hvIA0KdGhheSwgVGh1IHR1b25nIENoaW5o IHBodSB2YSBoYXUgaGV0IGxhbmggZGFvIGNhYyBibyBsaWVuIHF1YW4gKEdpYW8gdGhvbmcgVmFu IA0KdGFpLCBDb25nIHRodW9uZywgVGFpIGNoaW5oLCBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcs IEtpZW0gdG9hbiB0aHVvYyBRSC4uLikgDQpkZXUgbmhhbiBkdW9jIG5oaWV1IGNhdSBob2kgdmUg VmluYXNoaW4gdmEgYnVuIGRvIFRheSBOZ3V5ZW4uIA0KDQpEYW5nIGNodSB5LCBjdW5nIG1vdCB2 YW4gZGUsIERCUUggZGEgZ3VpIGNoYXQgdmFuIHRvaSBuaGlldSBibyBraGFjIG5oYXUgZGUgInRy dXkiIGNobyBkdW9jIGNhdSB0cmEgbG9pLiANCg0KTGFuaCBkYW8gbyBWaW5hc2hpbiwgQm8gdHJ1 b25nIGNvIGdpb2kgdGhpZXUgY2FuIGJvPw0KDQpUaGVvIERCUUggSHV5bmggTmdoaWEgKERhIE5h bmcpLCBDaGluaCBwaHUgY2hvIHJhbmcgc2FpIHBoYW0gbyBWaW5hc2hpbiANCmRvIHN1IGRvYyBk b2FuIGNodXllbiBxdXllbiBjdWEgbGFuaCBkYW8gdGFwIGRvYW4gdmEgdGhpZXUga2llbSBzb2F0 IGN1YSBjbyANCnF1YW4gcXVhbiBseS4NCg0KKEFuaDogREJRSCBIdXluaCBOZ2hpYSAoRGEgTmFu ZykuIEFuaDogTGUgQW5oIER1bmcpLiANCg0KIk5odW5nIGNhIG5oYW4gbyBWaW5hc2hpbiBkYSBi aSB0YW0gZ2lhbSBjb24gY28gcXVhbiBxdWFuIGx5IHRoaWV1IHN1IGtpZW0gDQpzb2F0IGxhIGNv IHF1YW4gbmFvLCBzZSBiaSB4dSBseSB0aGUgbmFvIHRoaSBjaHVhIG5naGUgbm9pLCB4aW4gVGh1 IHR1b25nIGNobyANCmJpZXQ/IiwgREIgSHV5bmggTmdoaWEgaG9pLg0KDQpQaG8gQ2h1IG5oaWVt IFVCIEtpbmggdGUgTGUgUXVvYyBEdW5nIGN1bmcgZ3VpIFRodSB0dW9uZyBjYXUgaG9pIHR1b25n IHR1IA0KdmUgIm5ndW9pIGNoaXUgdHJhY2ggbmhpZW0gY2hpbmgiLg0KDQpEQiBEYW5nIFZhbiBL aGFuaCAoSGEgTm9pKSBjb24gdHJ1eSB0cnVjIGRpZW4gaG9uOiAiVHJhY2ggbmhpZW0gY3VhIFRo dSANCnR1b25nLCBQaG8gVGh1IHR1b25nIHBodSB0cmFjaCwgQm8gdHJ1b25nIGNhYyBibyBsaWVu IHF1YW4sIHhpbiBraG9uZyBub2kgY2h1bmcgDQpjaHVuZyB2aSBkYXkgbGEgRE4gdGh1b2MgQ2hp bmggcGh1IHZhIHNhaSBwaGFtIGRpZW4gcmEga2hvbmcgcGhhaSB0cm9uZyB0aG9pIA0KZ2lhbiBu Z2FuPyIuDQoNClBobyBjaHUgbmhpZW0gVUIgY2FjIHZhbiBkZSB4YSBob2kgRGFuZyBOaHUgTG9p IGN1bmcgZGUgbmdoaSBCbyB0cnVvbmcgR2lhbyANCnRob25nIHZhIFZhbiB0YWkgbGFtIHJvIHZh biBkZSB2aSBzYW8gbW90IHRhcCBkb2FuIGRhbmcgdGhpIGRpZW0gbGFpIGR1b2MgdGhhbmggDQps YXAgbmhpZXUgZG9uIHZpIG1vaT8gRGFuZyB0aGkgZGllbSBuZXUga2hvbmcgbGFtIHRvdCB0aGkg bmVuIGNob24gaHVvbmcga2hhYywgDQpuaHVuZyB0YWkgc2FvIGxhaSB0YWkgY28gY2F1IG5odSBt b3QgY2h1IHRydW9uZyBjaGluaCB0aHVjPw0KDQoiTmdheSBraGkgbGFuaCBkYW8gVmluYXNoaW4g YmkgY2FjaCBjaHVjLCBkYSBibyBuaGllbSBtb3Qgc28gY2FuIGJvIHRoYXkgdGhlLCANCkJvIHRy dW9uZyBjbyBiaWV0IHRydW9jIHBoYW0gY2hhdCBkYW8gZHVjLCB0cmluaCBkbywgbmFuZyBsdWMg Y3VhIGhvPyBCbyB0cnVvbmcgDQpjbyB0aGFtIGdpYSBnaW9pIHRoaWV1IGhvIGdpdSBjYWMgY2h1 YyB2dSB0cmVuIGtob25nIG1hIGNoaSBtb3QgdGhhbmcgc2F1IGNoaW5oIA0KY2FjIHZpIG5heSBj dW5nIGJpIGNhY2ggY2h1Yywga2hvaSB0bz8gVHJhY2ggbmhpZW0gY3VhIEJvIHRydW9uZz8iLCBv bmcgTG9pIGhvaS4NCg0KREIgRGFuZyBOaHUgTG9pIGN1bmcgZG9uZyB0aG9pIGNoYXQgdmFuIEJv IE5vaSB2dSBjaHV5ZW4gYm8gbmhpZW0gY2FuIGJvIG8gDQpWaW5hc2hpbi4gIkJvIGRhIHRoYW0g Z2lhIHRodSB0dWMsIHF1eSB0cmluaCBibyBuaGllbSwgZGFuaCBnaWEgY2FuIGJvIHJhIHNhbyBk ZSANCnhheSByYSB2dSB2aWVjIG5odSB0cmVuPyBUcmFjaCBuaGllbSB2YSB4dSBseSB0cmFjaCBu aGllbSB0aGUgbmFvIGRlIGtob25nIG1hdCANCmxvbmcgdGluIGN1YSBjdSB0cmkgdHJvbmcgY29u ZyB0YWMgY2FuIGJvIi4NCg0KTGEgbmd1b2kgZGUgeHVhdCBsYXAgVXkgYmFuIGxhbSB0aG9pIGxh bSBybyB0cmFjaCBuaGllbSwgREJRSCBOZ3V5ZW4gTWluaCANClRodXlldCB2YW4gdGllcCB0dWMg bW9uZyBUaHUgdHVvbmcgbGFtIHJvICJUaHUgdHVvbmcgY28gdHJhY2ggbmhpZW0gbmh1IHRoZSAN Cm5hbyB0cm9uZyB2dSB2aWVjIG5heT8iLg0KDQpDbyB0aWVwIHR1YyBkdSBhbiBib3hpdD8gDQoN ClRhaSBwaGllbiB0aGFvIGx1YW4ga2luaCB0ZSAtIHhhIGhvaSBkYXUga3kgaG9wLCBjaGkgZHV5 IG5oYXQgREJRSCBEdW9uZyANClRydW5nIFF1b2MgYmF5IHRvIHF1YW4gbmdhaSBuZ3V5IGNvIHZv IGhvIGNodWEgYnVuIGRvIGtoaSBraGFpIHRoYWMgYm94aXQgVGF5IA0KTmd1eWVuLiBOZ2F5IHNh dSBkbywgQm8gdHJ1b25nIFROTVQgUGhhbSBLaG9pIE5ndXllbiBkYSBjbyBkb2kgbG9pIGdpYWkg DQp0cmluaCB2YSBjaGkgbW90IHR1YW4gc2F1LCBkb2FuIGNvbmcgdGFjIGN1YSBCbyBDb25nIHRo dW9uZywgVEtWLCBVeSBiYW4gDQpLSENOTVQgUXVvYyBob2kgdmEgYmFvIGNoaSBkYSB2YW8gVGF5 IE5ndXllbiAidGhpIHNhdCIgdm9pIG5oaWV1IHRob25nIHRpbiANCnRyYW4gYW4uDQoNCihBbmg6 IERCUUggRGFuZyBOaHUgTG9pLiBBbmg6IExlIEFuaCBEdW5nKSAuDQoNClR1eSBuaGllbiwgbmhp ZXUgbG8gbmdhaSBxdWFuaCBuZ3V5IGNvIG5heSB0aWVwIHR1YyBkdW9jIGd1aSBsZW4gVGh1IHR1 b25nLg0KDQpUaGVvIERCIE5ndXllbiBNaW5oIFRodXlldCAidHJ1b2Mgbmd1eWVuIHZvbmcgY3Vh IG5oYW4gZGFuIHRoZSBoaWVuIHF1YSANCmJhbiBraWVuIG5naGkgY3VhIGhvbiAyLjAwMCBuaGFu IHNpLCB0cmkgdGh1YywgY2FjIGdpb2ksIHRyb25nIGRvIGNvIGJhIE5ndXllbiBUaGkgDQpCaW5o IGRlIG5naGkgQ2hpbmggcGh1IGR1bmcgZHUgYW4ga2hhaSB0aGFjIGJveGl0IFRheSBOZ3V5ZW4s IFRodSB0dW9uZyBxdXlldCANCmRpbmggdGhlIG5hbz8iLg0KDQpEQiBEYW5nIFZhbiBLaGFuaCAo SGEgTm9pKSBjdW5nIGJhbiBraG9hbjogIkNvIHRpZXAgdHVjIHRyaWVuIGtoYWkgZHUgYW4gbmF5 IA0KbnVhIGtob25nPyBOZXUgeGF5IHJhIHN1IGNvIGJ1biBkbyBuaHUgbyBIdW5nYXJ5IHRoaSBh aSBjaGl1IHRyYWNoIG5oaWVtLCBrZSBjYSANCmtoaSBUaHUgdHVvbmcgZGEgbmdoaT8iLg0KDQpE QiBUcmFuIFRoaSBEdW5nIChEaWVuIEJpZW4pIGNoYXQgdmFuIEJvIHRydW9uZyBUTiZNVDogIkNv IHkga2llbiBuaGEgDQpraG9hIGhvYyBjaG8gcmFuZyBkdW5nIG5nYXkgdGEgY2hpIG1hdCAzNSB0 cmlldSBVU0QsIG5ldSB0aWVwIHR1YyB0aGkgZHUgYW4gbmF5IA0Kc2UgY2h1bmcgc28gcGhhbiB2 b2kgVmluYXNoaW4sIG1hdCA0LDUgdHkgVVNEIGhvYWMgaG9uLiBEdW5nIGRhbSBsYW8gcGhhaSAN CnRoZW8gbGFvLiBEZSBuZ2hpIEJvIHRydW9uZyBjaG8gYmlldCBxdWFuIGRpZW0/Ii4NCg0KQm8g dHJ1b25nIFBoYW0gS2hvaSBOZ3V5ZW4gY3VuZyBuaGFuIHRoZW0gY2hhdCB2YW4gY3VhIGNhYyBE QiBWdSBIb25nIEFuaCAoSGEgTm9pKTsgDQpOZ3V5ZW4gVGhpIE1haSAoTmluaCBUaHVhbikgdmUg Y2FuIGN1IGRlIGtoYW5nIGRpbmggIm9uZyBob2FuIA0KdG9hbiB5ZW4gdGFtIHZpIGNvbmcgbmdo ZSBWTiBraGFjIEh1bmdhcnkiIHZlIG5ndXkgY28gdm8gaG8gbGFtIGFuaCBodW9uZyANCmRlbiBo YSBkdS4uLg0KVHJvbmcgc28gMzcgY2F1IGhvaSBkYW5oIGNobyBCbyB0cnVvbmcgQ29uZyB0aHVv bmcgKG5ndW9pIGx1b24gbmhhbiBkdW9jIA0KbmhpZXUgY2hhdCB2YW4gbmhhdCBxdWEgY2FjIGt5 IGhvcCksIHRoaSBib3hpdCBUYXkgTmd1eWVuIHZhbiB0aWVwIHR1YyBsYSBtb3QgDQpxdWFuIG5n YWkgbG9uLg0KREIgVnUgSG9uZyBBbmggKEhhIE5vaSksIE5ndXllbiBMYW4gRHVuZyAoRGFrIExh aykgbXVvbiBiaWV0IGNoaW5oIGtpZW4gDQpjdWEgQm8gdHJ1b25nIHRydW9jIGtpZW4gbmdoaSB4 ZW0geGV0IGR1bmcgZHUgYW4uDQpEQiBEdW9uZyBUcnVuZyBRdW9jIChEb25nIE5haSkgY3VuZyBj aHV5ZW4gY2hvIEJvIHRydW9uZyBraWVuIG5naGkgbWFuZyANCnRpbmggY2h1eWVuIG1vbiBzYXUg Y3VhIG1vdCBjdSB0cmkgdm9uIGxhIENodSB0aWNoIEhvaSBob2EgaG9jIERvbmcgTmFpLg0KTmdv YWkgcmEsIG5oaWV1IHZhbiBkZSBraGFjIHZvbiBkdW9jIHhvaSBsZW4gdHUgY2FjIGt5IGhvcCB0 cnVvYyBuaHUgeGF5IGR1b25nIA0Kc2F0IGNhbyB0b2MsIHF1eSBob2FjaCBzYW4gZ29sZiwgY2hv IG51b2MgbmdvYWkgdGh1ZSBkYXQgcnVuZywgZGFjIGJpZXQgdGluaCB0cmFuZyANCnRoaWV1IGRp ZW4gdHJhbSB0cm9uZyB2YW4gdGllcCB0dWMgZHVvYyBEQlFIIGNoYXQgdmFuIGxhbiBuYXkuIA0K DQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTExLTIyLWRhdC1uaGEtbWF5 LWtoYWktdGhhYy1ib3hpdC12ZW4tYmllbi1oaWV1LXF1YS1jYW8taG9uIFRhYyBnaWE6IExlIE5o dW5nDQoNClRodSB0dW9uZzogRGF0IG5oYSBtYXkga2hhaSB0aGFjIGJveGl0IHZlbiBiaWVuLCBo aWV1IHF1YSBjYW8gaG9uDQoNCkd1aSBsb2kgeGluIGxvaSBEQlFIIHZpIG1vdCBjYXUgaG9pIGxp ZW4gcXVhbiBkZW4gImNodXllbiBtb24gc2F1IiBjYW4gcGhhaSBraWVtIHRyYSANCmxhaSwgQm8g dHJ1b25nIENvbmcgdGh1b25nIFZ1IEh1eSBIb2FuZyB0YW4gZHVuZyBob24gdGllbmcgcnVvaSBk YW5nIGRhbiBkZSBnaWFpIGRhcA0KIGNhYyB2YW4gZGUgbGllbiBxdWFuIGRlbiBraGFpIHRoYWMg Ym94aXQsIHRodXkgZGllbiB4YSBsdSwgdGhpZXUgZGllbiwgbmhhcCBzaWV1Li4uDQoNCkJvIHRy dW9uZyBDb25nIHRodW9uZyBsYSBuZ3VvaSBuaGFuIGR1b2MgbmhpZXUgY2F1IGhvaSBjaGF0IHZh biBiYW5nIHZhbiBiYW4gbmhhdCANCigyOCksIHZhIHNhbmcgbmF5ICgyMi8xMSksIGhhdSBuaHUg c2F1IG1vaSBjYXUgdHJhICBsb2kgY3VhIG9uZywgY2FjIERCIGRldSBkdW5nIGxlbiBob2kgDQps YWkuDQoNCkR1IGFuIGJveGl0IGxhIGNvbmcgdHJpbmggcXVhbiB0cm9uZyB2ZSBhbiBuaW5oLCBx dW9jIHBob25nDQoNCkRCIFZ1IFF1YW5nIEhhaSAoSHVuZyBZZW4pIGRlIGNhcCBkZW4gY2FjIGR1 IGFuIGtoYWkgdGhhYyBib3hpdCAgc2F1IGtoaSBkYW4gc28gbGlldSANCmNobyB0aGF5IHRpbmgg dHJhbmcgdGhpZXUgZGllbiBjb24ga2VvIGRhaS4gIkJvIHRydW9uZyBnaWFpIHRoaWNoIHJhIHNh byB2ZSBoaWV1IHF1YSBraW5oIA0KdGUga2hpIGNhYyBjaHV5ZW4gZ2lhIGNhbmggYmFvIHJhbmcg ZHUgYW4gY2hpIGhpZXUgcXVhIG5ldSBkYXQgbyBuaHVuZyBub2kgdGh1YSBudW9jIHZhIA0KdGh1 YSBkaWVuPyIuDQoNCkJvIHRydW9uZyBIb2FuZyBjaG8gaGF5LCBxdXlldCBkaW5oIGRhdCBkaWEg ZGllbSBoYWkgZHUgYW4ga2hhaSB0aGFjIGJveGl0IGRhIGR1b2MgQm8gDQpDaGluaCB0cmkgdGhv bmcgcXVhLg0KDQoiWGV0IGhpZXUgcXVhIGtpbmggdGUgdGhpIGNhYyBjb24gc28gZGV1IGNobyB0 aGF5IG5ldSBkYXQgbmhhIG1heSBvIHZlbiBiaWVuIGhpZXUgcXVhIA0KY2FvIGhvbiBvIFRheSBO Z3V5ZW4uIE5odW5nIG8gZGF5IHRhIHBoYWkgeGVtIHhldCBkYXkgZHUgaGlldSBxdWEga2luaCB0 ZSwgeGEgaG9pLCANCmNoaW5oIHRyaSB2YSB0YWMgZG9uZyBsYW4gdG9hIiwgb25nIEhvYW5nIHZh biB0YXQuIA0KDQpEYXQgMiBuaGEgbWF5IG8gVGF5IE5ndXllbiBsYSBxdXlldCBkaW5oIGRlbSBs YWkgbG9pIGljaCBjaG8gdGluaC4gTmd1b2kgZGFuIGRhIGNoaXUgDQpoeSBzaW5oIGRhdCBkYWkg cGhhaSBkdW9jIGJ1IGRhcCBiYW5nIHZpZWMgbGFtLiANCg0KQ2FjIGhvIGNodWEgZHVvYyBjYW0g a2V0IGRhbSBiYW8gZHUgbnVvYyBjaG8gY2EgbmhhIG1heSBsYW4gc2luaCBob2F0Lg0KDQoiUmll bmcgY2h1eWVuIHRoaWV1IGRpZW4sIHRyb25nIHRpbmggaGluaCBoaWVuIG5heSBkdSBkYXQgbmhh IG1heSBvIHZlbiBiaWVuIHRoaSBkaWVuIA0KdmFuIGxhIG1vdCB2YW4gZGUgIHBoYWkgeHUgbHki LCBvbmcgSG9hbmcgdGh1IHRodWMuDQoNClRydW9jIGNhdSBob2kgdGh1IGhhaSBjdWEgREIgTmd1 eWVuIExhbiBEdW5nIHZlIHZpZWMgbGFtIHJvIGNhbSBrZXQgImNob25nIHRoYW0gaG8gDQpjaHVh IGJ1biBkbyBsYSBhbiB0b2FuIHR1eWV0IGRvaSB2YSBkdW5nIGRpY2ggc2F1IGRvIHNlIGR1b2Mg eHUgbHkiLCBCbyB0cnVvbmcgSG9hbmcgDQpkYW5oICJraGF0IiB2YSAiaGV0IHN1YyB4aW4gbG9p IiBEQiBEdW5nIHNlIHRoYW0ga2hhbyBjaHV5ZW4gZ2lhIHZhIHRyYW8gZG9pIHNhdSBib2kgbGUg DQp2YW4gZGUgbWFuZyB0aW5oIGt5IHRodWF0IG5lbiBvbmcgImtob25nIGR1b2MgdGhhbyBsYW0i Lg0KDQpOZ29haSBjaHV5ZW4gaG8gY2h1YSBidW4gZG8sIERCIE5ndXllbiBMYW4gRHVuZyBjb24g ZGF0IGNhdSBob2kgdmUgbmd1eSBjbyBobyANCmNodWEgYnVuIGRvIHNlIGJpIHRoZSBsdWMgdGh1 IGRpY2ggcGhhIGhvYWkgY3VuZyBuaHUgdmUgaGlldSBxdWEga2luaCB0ZS4NCg0KIktoaSBwaGFp IGRhdSB0dSBoYSB0YW5nIGdpYW8gdGhvbmcgbG9uIGRlIHZhbiBjaHV5ZW4sIEJvIHRydW9uZyBj byB0aW4gbGEgZHUgYW4gaGlldSANCnF1YSBraG9uZz8gQm8gdHJ1b25nIG5vaSBidSBsYWkgaGll dSBxdWEga2luaCB0ZSBiYW5nIHRyb25nIGNheSBjb25nIG5naGllcCwgcGhhdCB0cmllbiANCmR1 IGxpY2ggdmFuIGhvYSwgZHUgbGljaCBzaW5oIHRoYWkuIE5odW5nIGRhdCBiYXphbiB0aGkgdHJv bmcgY2F5IGtpZXUgZ2ksIHJvaSB4YSB4b2ksIGFpIA0KZGVuIG1hIHBoYXQgdHJpZW4gZHUgbGlj aCB2YW4gaG9hPyIsIG9uZyBEdW5nIGhvaS4NCg0KQm8gdHJ1b25nIENvbmcgdGh1b25nIGtoYW5n IGRpbmgsIGNhYyBkdSBhbiBraGFpIHRoYWMgYm94aXQgZHVvYyB4YWMgZGluaCBsYSBjb25nIA0K dHJpbmggcXVhbiB0cm9uZyB2ZSBhbiBuaW5oIHF1b2MgZ2lhIG5lbiB5ZXUgY2F1IHZhIGRpZXUg a2llbiBhbiB0b2FuIHBoYWkgY2FvIGhvbiBjb25nIA0KdHJpbmgga2hhYy4NCg0KVHkgbGUgaG9h biB2b24gY3VhIGR1IGFuIE5oYW4gQ28sIHRoZW8gb25nIEhvYW5nIGxlbiB0b2kgOCwyNCUuIERh eSBsYSB0aW5oIHRvYW4gY3VhIA0KSG9pIGRvbmcgdGhhbSBkaW5oIChCbyBDb25nIHRodW9uZykg dm9pIDE4IGNodXllbiBnaWEgZGF1IG5nYW5oIHZhIFZpZW4ga2luaCB0ZSB4YXkgDQpkdW5nIChC byBYYXkgZHVuZykuDQoNClRodXkgZGllbiB4YSBsdTogQWkgdmkgcGhhbSBwaGFpIGNoaXUgdHJh Y2ggbmhpZW0NCg0KTGllbiBxdWFuIGRlbiBjdW9jIHRyYW5oIGx1YW4ga2VvIGRhaSB0dSBuYW0g bmdvYWkgdG9pIG5heSB2ZSB2aWVjIGNvIGhheSBraG9uZyBjaHV5ZW4gDQp0aHV5IGRpZW4geGEg bHUgZ2F5IGx1dCBkdW9pIGhhIGR1LCBjYWMgREJRSCBtaWVuIFRydW5nLCBUYXkgTmd1eWVuIHRp ZXAgdHVjIG1vbmcgDQpCbyB0cnVvbmcgVnUgSHV5IEhvYW5nIGxhbSAidHJvbmcgdGFpIiBkdWEg cmEgY2hpbmgga2llbi4NCg0KREIgRGFuZyBUaGkgTXkgSHVvbmcgKE5pbmggVGh1YW4pIGRhbiBt b3QgdmFuIGJhbiBCbyB0cnVvbmcgVnUgSHV5IEhvYW5nIHZ1YSANCnRyYSBsb2kgbmdheSB0cnVv YyBwaGllbiBjaGF0IHZhbiwgbm9pIHRodXkgZGllbiAidm8gY2FuIi4NCg0KIk5odW5nIEJvIHRy dW9uZyB0cmEgbG9pIGNodW5nIGNodW5nLCBraG9uZyBkdWEgcmEgc28gbGlldSBtaW5oIGNodW5n IHRyb25nIGtoaSB0aGVvIA0Kc28gbGlldSBjYWMgc28sIGRhaSAga2hpIHR1b25nIHRodXkgdmFu IGR1YSByYSB0aGkgcm8gcmFuZyBjbyBzdSBsaWVuIHF1YW4uIE1vbmcgQm8gdHJ1b25nIA0KdHJh IGxvaSBtb3QgY2FjaCB0aHV5ZXQgcGh1YyBob24gYmFuZyBzbyBsaWV1LCBuZXUgQm8gdHJ1b25n IG5vaSBsYSB2byBjYW4gdGhpIHZpIHNhbyB2byANCmNhbiIsIERCIEh1b25nIG5vaS4NCg0KQm8g dHJ1b25nIFZ1IEh1eSBIb2FuZyBkYXAgbGFpOiAiVG9pIGNodWEgYmFvIGdpbyBjbyBjYXUgdHJh IGxvaSB2ZSBzdSBraG9uZyBsaWVuIHF1YW4gDQpnaXVhIGx1dCB2YSB0aHV5IGRpZW4uIENvIG5o aWV1IG5ndXllbiBuaGFuIGdheSByYSBsdSBsdXQsIHhpbiBjaGlhIHNlIHRoaWV0IGhhaSB2b2kg ZG9uZyANCmJhbyIuDQoNClZhbiBraG9uZyBkdWEgcmEgbW90IGxvaSBraGFuZyBkaW5oIHJvIHJh bmcsIEJvIHRydW9uZyBDb25nIHRodW9uZyBjaGkgbm9pLCBuZXUgY2FjIA0KY29uZyB0cmluaCB0 aHV5IGRpZW4gdHVhbiB0aHUgZHVuZyBxdXkgdHJpbmggdmFuIGhhbmggbGllbiBobywgdGFuZyBj dW9uZyBraWVtIHNvYXQgdGhpIA0Kc2UgaGFuIGNoZSB0b2kgZGEgdGhpZXQgaGFpLg0KDQpUaHVj IHRlLCBtb3Qgc28gbm9pIGNodWEgbGFtIGR1bmcgcXV5IHRyaW5oLg0KDQpCYW4gcXVhbiBseSBk dSBhbiBzb25nIEJhIEhhIGNoaSBiYW8gdmllYyB4YSBsdSB2b2kgQmFuIGNoaSBkYW8gcGhvbmcg Y2hvbmcgYmFvIGx1dCANCmNodSBraG9uZyBiYW8gdm9pIFVCTkQgdGluaCBuaHUgcXV5IHRyaW5o LiBCbyBkYSB5ZXUgY2F1IGtpZW0gdHJhIHZhIHhhYyBkaW5oIG5ndXllbiANCm5oYW4sIG5ldSB4 YWMgZGluaCBkdW5nIHRodSBwaGFtIHNlIGtpZW4gcXV5ZXQgeHUgbHkuICJBaSBnYXkgcmEgdGhp ZXQgaGFpIHRoaSBwaGFpIGJvaSANCnRodW9uZyIsIEJvIHRydW9uZyBjaG8gaGF5Lg0KDQpUaHV5 IGRpZW4gSG8gSG8gZGFuZyB4YXkgZHVuZyBkbyBkYW5nLCB0aGlldSBjYWMgdGhpZXQgYmkgcGh1 LCBsdSB2ZSBnYXkgdGhpZXQgaGFpIGNobyANCmNhIG5oYSBtYXkgdmEgaGEgZHUNCg0KVGhlbyBv bmcgSG9hbmcsIHRodXkgZGllbiB2YW4gbGEgIm5hbmcgbHVvbmcgc2FjaCIsIGNoaSBjYW4ga2hh YyBwaHVjIG1vdCBzbyBtYXQgdHJhaSANCihsdSBsdXQsIHBoYSBydW5nKS4gU2FwIHRvaSwgdHkg bGUgbmhhIG1heSB0aHV5IGRpZW4gc2UgZ2lhbSB0dSAzNSUgeHVvbmcgMzAlIHRyb25nIHRvbmcg DQpzbyBkbyBkaWVuLiANCg0KIkJvIGNvbmcgdGh1b25nIHRpZXAgdHVjIHJhIHNvYXQgcXV5IGhv YWNoIHRodXkgZGllbi4gRHVuZyBob2FjIGRpZXUgY2hpbmggZHUgYW4gdGFjIA0KZG9uZyB4YXUg bW9pIHRydW9uZyIsIG9uZyBIb2FuZyBub2kuDQoNCkJvIHRydW9uZyBDb25nIHRodW9uZyBub2kg cmFuZywgb25nIGtob25nIG5oYW4gZHVvYyBjYXUgaG9pIG5hbyBjdWEgREIgSHVvbmcgdmEgDQpj aHVhIHR1bmcgdHJhIGxvaSBEQiBIdW9uZyB2ZSBjaHV5ZW4gbmF5Lg0KDQpDYW0gdHJlbiB0YXkg dmFuIGJhbiBjbyBnaGkgc28sIG11YyBjdSB0aGUsIERCIEh1b25nIGdpYWkgdGhpY2gsIGRheSBr aG9uZyBwaGFpIHZhbiANCmJhbiB0cmEgbG9pIHJpZW5nIG1hIGxhIGNhdSB0cmEgbG9pIGNodW5n IEJvIHRydW9uZyBndWkgY2hvIGNhYyBEQlFILiAiVG9pIGNoaSBtdW9uIGhvaSANCmNoaW5oIGtp ZW4gY3VhIEJvIHRydW9uZyB0cnVvYyB2YW4gZGUgbmF5IG5odSB0aGUgbmFvIG5odW5nIEJvIHRy dW9uZyB2YW4gdHJhIGxvaSANCmtob25nIHJvIHJhbmciLCBEQiBIdW9uZyBub2kuDQoNCkNhYyBu aGEgbWF5IG5oaWV0IGRpZW4gZGV1IHRydWMgdHJhYw0KDQpOZ29haSBoYWkgY2F1IGNodXllbiAi bGllbiBkb2kiIGRlbiBkaWVuIGRvbSBuaHUgYm94aXQgdmEgbHUgbHV0IG8gdHJlbiwgdGhpIHBo aWVuIGNoYXQgDQp2YW4gQm8gdHJ1b25nIENvbmcgdGh1b25nICJub25nIiBuZ2F5IHR1IGRhdSBi b2kgbmh1bmcgY2F1IGhvaSB2b24gZGEgdHVuZyBkdW9jIGNhYyANCkRCUUggZGF0IHJhIHR1IG5o aWV1IHBoaWVuIHRydW9jIG5odSwgYmFvIGdpbyBjbyB0aGkgdHJ1b25nIGRpZW4gY2FuaCB0cmFu aD8gS2hpIG5hbyANCmhldCB0aGlldSBkaWVuPyBTYXUgdGFpIGNvIGNhdSwgdGFpIHNhbyBFVk4g dmFuIHNlIG5hbSBnaXUgdG9pIDYwJT8NCg0KVHJhIGxvaSBjYWMgY2F1IGhvaSBjdWEgREIgVnUg UXVhbmcgSGFpIChIdW5nIFllbiksIFBoYW0gVGhpIExvYW4gKEhhIE5vaSkuLi4gQm8gDQp0cnVv bmcgSG9hbmcgbm9pLCBkZW4gMjAxNSwga2V0IHRodWMgcXV5IGhvYWNoIHNvIGRvIGRpZW4gVkkg Y3VuZyBjaGkgY28gdGhlIGRhdCA4MCUgDQptdWMgdGlldSBkZSByYS4gQ2hpbmggcGh1IGRhbmcg dHJpZW4ga2hhaSBzbyBkbyBkaWVuIFZJSS4NCg0KRGUgY28gZHUgZGllbiwgIHZhbiBwaGFpIGRh bSBiYW8gbmd1b24gZGllbiwgdmFuIGhhbmggdmEgb24gZGluaCBjYWMgbmhhIG1heS4gU2F1IGto aSANCnRhaSBjbyBjYXUgdGhpIEVWTiB2YW4gbGEgRE4gY2h1IGx1YywgY2hpdSB0cmFjaCBuaGll bSBjdW5nIHVuZyBkaWVuIG5lbiBkYW0gYmFvIHZvbiANCmNobyBFVk4gbGEgdG9pIGNhbiB0aGll dC4NCg0KTmdvYWkgdmllYyBkZSBETiB0dSB0aHUgeGVwIHZvbiwgQ2hpbmggcGh1IHNlIGhvIHRy byBiYW5nIGNhYyB1dSBkYWkgIGtoaSBkaSBkYW0gcGhhbiANCnZvaSBkb2kgdGFjIG5nb2FpLCB4 ZW0geGV0IHBoYXQgaGFuaCB0cmFpIHBoaWV1IHF1b2MgdGUuIFRoYW5nIDEyIHNlIHRyaW5oIFRo dSB0dW9uZyB4ZW0gDQp4ZXQgbG8gdHJpbmggZGlldSBjaGluaCBnaWEgZGllbi4gDQoNClRyYSBs b2kgREIgUGhhbSBUaGkgTG9hbiB2ZSB2aWVjIG5oYSB0aGF1IEVQQyBUcnVuZyBRdW9jIHN1IGR1 bmcgY29uZyBuZ2hlIGxhYyBoYXUsIA0KQm8gdHJ1b25nIENvbmcgdGh1b25nIGNobyBoYXksIG9u ZyAiY2h1YSBuZ2hlIHRob25nIHRpbiBuYW8gbmh1IHZheSIuDQoNCkJvIHRydW9uZyBIb2FuZyBn aWFpIHRoaWNoLCBraGkgZGF1IHRoYXUgY2FjIG5oYSBtYXkgbmhpZXQgZGllbiwgeWV1IGNhdSBk YXUgdGllbiBwaGFpIA0KZGFwIHVuZyB0aWV1IGNodWFuIHRoaWV0IGJpIGt5IHRodWF0LCBzYXUg ZG8gbW9pIGRlbiBnaWEsIHV1IHRpZW4gY2FjIG5oYSB0aGF1IGNvIG11YyBnaWEgDQp0aGFwLg0K DQoiS2hpIGNodW5nIHRvaSBraWVtIHRyYSBjdW5nIHBoYXQgaGllbiByYSAxIHNvIGtoaWVtIGto dXlldCwgbmh1bmcgZGEgc28gbGEgbyBjYWMgdGhpZXQgYmkgDQpwaHUuIENvbiB0aGlldCBiaSBj aGluaCBraG9uZyB2YW4gZGUgZ2kiLCBvbmcgSG9hbmcgbm9pLg0KDQpEdW5nIGxlbiAiY2hpYSBs dWEiIGN1bmcgQm8gdHJ1b25nIENvbmcgdGh1b25nLCBvbmcgVm8gSG9uZyBQaHVjIChCbyB0cnVv bmcgQm8gDQpLSCZEVCkgY2hvIGhheSwgaGllbiBjYWMgZHUgYW4gbmhpZXQgZGllbiBkZXUgY28g dmFuIGRlLCBkZXUgdHJ1YyB0cmFjIHZhIGNoYW0gdGllbiBkby4gDQpOZ3V5ZW4gbmhhbiBkbyBu YW5nIGx1YyBjaHUgZGF1IHR1LCBxdWEgdHJpbmggZGF1IHRoYXUga2hvbmcgY2hvbiBkdW9jIG5o YSB0aGF1IHRvdCANCm5oYXQuIENoYW5nIG5odW5nIGNvbmcgbmdoZSBrZW0gbWEgZ2lhIGNodWEg cGhhaSBtdWMgcmUgbmhhdC4NCg0KVmFuIGNvbiBtb3Qgc28gY2F1IGhvaSBjaG8gZG9pIEJvIHRy dW9uZyBDb25nIHRodW9uZyBvIHBoaWVuIHRyYSBsb2kgY2hpZXUgbmF5Lg0KDQpDaGkgc28gdm9u ZyB2bw0KDQpHaGkgbmhhbiBjdWEgcGhvbmcgdmllbiBiZW4gbGUgcGhpZW4gY2hhdCB2YW4gUXVv YyBob2kgc2FuZyAyMi8xMS4NCg0KREIgTGUgVmFuIEN1b25nIChUaGFuaCBIb2EpOiANCkJhbyBj YW8gY3VhIFRydW9uZyBiYW4gZGFuIG5ndXllbiBUcmFuIFRoZSBWdW9uZyBob2kgZGFpLiBDYWMg dGh1IHR1YyB0aWVuIGhhbmggY2hhdCANCnZhbiBjdW5nIGtob25nIGR1b2MgZ29uIG5oZSBuZW4g bWF0IGRpIDEsNSB0aWVuZywgdGhvaSBnaWFuIGNvbiBsYWkgY2hvIGNoYXQgdmFuIGJ1b2kgDQpz YW5nIGhvaSBpdC4gQ2h1bmcgdG9pIGN1bmcgcmF0IHNvdCBydW90IGtoaSBuZ2hlIGJhbyBjYW8u DQoNCkNvIERCIHRodWMgcmEgY2h1YSBuZXUgY2F1IGhvaSBjaGF0IHZhbiBtYSBsYSBwaGFuIGFu aCB5IGtpZW4sIGtpZW4gbmdoaSBjdWEgY3UgdHJpLCBkZSANCm5naGkgQm8geGVtIHhldC4gQ2hh dCB2YW4gcGhhaSBraGFjLCBnb24sIGxhbSBybyB0cmFjaCBuaGllbSwgbmd1eWVuIG5oYW4sIHRy YWNoIA0KbmhpZW0sIGNodSBjb24gdGhlIG5heSBjaGkgbmV1IHkga2llbiBidWMgeHVjIGN1YSBj dSB0cmkgZGUgcGhhbiBhbmggdm9pIFF1b2MgaG9pLCBCbyANCnRydW9uZyB4ZW0geGV0IGdpYWkg cXV5ZXQgdGhvaS4NCg0KVG9pIG5naGkgY2FjIHRob25nIHRpbiB2ZSBub2kgZHVuZyBjaGF0IHZh biBkYSBkdW9jIGd1aSBkZW4gY2FjIGRhaSBiaWV1IHJvaS4gVmFuIGRlIGNhYyANCmRhaSBiaWV1 IHN1IGR1bmcgdGhvbmcgdGluIGRvIG5odSB0aGUgbmFvLCB0aGUgaGllbiB2YWkgdHJvIGN1YSBt aW5oIHZvaSBjdSB0cmksIHZvaSBkYXQgDQpudW9jIHJhIGxhbSBzYW8sIHBoYWkgbGFtIHRoZSBu YW8gbmdoaWVuIGN1dSwgY28gbmh1bmcgY2h1YW4gYmkga3kgaG9uLCBnb24gaG9uLCBkaSANCnRo YW5nIHZhbyB2YW4gZGUgY2FuIGhvaSwgbmhhdCBsYSBjYW4gbGFtIHJvIG5ndXllbiBuaGFuLCB0 cmFjaCBuaGllbSwgaHVvbmcga2hhYyBwaHVjLg0KDQpMYW4gbmF5IGxhIGt5IGhvcCBjdW9pIGN1 bmcsIGNvIG5oaWV1IEJvIHRydW9uZyB0cmEgbG9pIDItMyBsYW4gY2hhdCB2YW4gbmVuIGN1bmcg Y28gDQpraW5oIG5naGllbS4gQ2FjIEJvIHRydW9uZyBuZW4gZGkgdGhhbmcgdmFvIGNhYyB2YW4g ZGUgZGFpIGJpZXUgaG9pIHZhIGN1IHRyaSBxdWFuIHRhbS4gDQpEYWMgYmlldCB0cmFuaCB2b25n IHZvLCBnaWFpIHRyaW5oIG1hbmcgdGluaCBjaGF0IHRoYW5oIG1pbmgsIG5ldSBjaHVuZyBjaHVu ZywgbWEgY2FuIGRpIA0KdGhhbmcgdmFvIG5ndXllbiBuaGFuLCB0cmFjaCBuaGllbS4NCg0KTmV1 IEJvIHRydW9uZyBkdW5nIGNhbSBuaGFuIHRyYWNoIG5oaWVtIHRoaSBzZSB0YW8gbmVuIGRhdSBh biBraG9uZyBuaHVuZyB2b2kgUXVvYyANCmhvaSBtYSB2b2kgY3UgdHJpIGNhIG51b2MgbnVhLiBO ZXUgY3Ugdm9uZyB2byB0aGkga2hvbmcgbmh1bmcgY3UgdHJpIGNvIHRyaW5oIGRvIG5oYW4gDQp0 aHVjIHJhIG5ndW9pIG5hbyBwaGF0IGJpZXUgZHVuZywgbmd1b2kgbmFvIHRoZSBoaWVuIHRyYWNo IG5oaWVtIGN1YSBtaW5oIG1hIHNlIGxhbSBsdSANCm1vIHZhaSB0cm8sIGFuaCBodW9uZyBjdWEg Ym8gdHJ1b25nIGRvaSB2b2kgdmllYyB0aW4gbmhpZW0gdHJvbmcgbmhpZW0ga3kgdG9pLg0KDQpE QiBOZ3V5ZW4gTmdvYyBEYW8gKEhhIE5vaSk6IENhbiBiaWV0IGNhY2ggaG9pDQoNCkRpZW4gYmll biBkYXUgZ2lvIGNoYXQgdmFuIGNoYW0gZHUgYmFvIGNhbyBkYW4gbmd1eWVuIHRvaSBjaG8gbGEg bmh1IHZheSBraG9uZyBwaGFpIA0KZGFpLCBib2kgdmkgbmhpZXUgdmFuIGRlIHBoYWkgZGUgY2Fw LiBMYW4gZGF1IHRpZW4gZ2lhbSBzYXQgdmEgYmFvIGNhbyBjaHV5ZW4gZGUgY3VhIA0KUXVvYyBo b2kgdmUgbmh1bmcgdmFuIGRlIG1hIGt5IGhvcCB0cnVvYyBjYWMgYm8gZGF0IHJhLCB2b2kgNDUg cGh1dCBraG9uZyBkYWkuDQoNClR1eSBuaGllbiB0b2kgc28gbmhhdCBjYWMgZGFpIGJpZXUgUXVv YyBob2kgdm9uZyB2bywga2hvbmcgdGFwIHRydW5nLiBDYWMgZGFpIGJpZXUgaG9pIA0KZGF1IGdp byBzYW5nIGtob25nIHRhcCB0cnVuZy4NCg0KUGhhbiB0cmluaCBiYXkgY3VhIEJvIHRydW9uZyBW dSBIdXkgSG9hbmcgdG9pIGNobyBsYSB2dWEgZHUuDQoNClRvaSBuZ2hpIGRpZXUgcGh1IHRodW9j IG5oYXQgbGEgY2FjIGRhaSBiaWV1LiBDYWMgZGFpIGJpZXUgaG9pIG1hIGtob25nIGJpZXQgY2Fj aCBob2kgdGhpIA0Kc2Uga2hvbmcgZ2lhaSBxdXlldCB2YW4gZGUgZ2kuDQpWZSBjaGF0IHZhbiwg Y2FjIGRhaSBiaWV1IHNlIHF1YW4gdGFtLCB0cm9uZyBkb2kgbmhhdCBuZ2F5IFRodSB0dW9uZyB0 cmEgbG9pLiBDYWMgQm8gY2h1IA0KeWV1IGRhIHRyYSBsb2kgdmFuIGJhbiwgY29uIG5ndW9pIHRh IHNlIHF1YW4gdGFtIFRodSB0dW9uZy4gVGh1IHR1b25nIHNlIGRhbmggbW90IGJ1b2kgDQptaW5o IGNobyBsYSBkdS4NCg0KREIgTmd1eWVuIERhbmcgVHJ1bmcgKFRQLkhDTSk6DQpPIHBoYW4gY2hh dCB2YW4gZGF1IGdpbyBzYW5nLCBkYWkgYmlldSBob2kgZGFpLCBraG9uZyB0YXAgdHJ1bmcuIFRy b25nIGtoaSBkbyBjYW4gcGhhaSBjbyANCnRob2kgZ2lhbiBkZSBjaGF0IHZhbiBxdWEgbGFpIGdp dWEgbmd1b2kgaG9pIHZhIG5ndW9pIHRyYSBsb2kgZGUgdGhhdSBkYW8uIEJhbyBjYW8gdHJpbmgg DQpiYXkgdHJ1b2MgcGhpZW4gY2hhdCB2YW4gbmVuIHRhcCB0cnVuZyB2YW8gdmFuIGRlIG5vbmcs IG5vaSBiYXQgZGUgdGlldCBraWVtIHRob2kgZ2lhbiwgdmkgDQpjYWMgZGFpIGJpZXUgZGV1IGRh IGR1b2MgZ3VpIHZhbiBiYW4gdHJ1b2Mgcm9pLg0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5h bW5ldC52bi8yMDEwLTExLTA1LXBuLWFuZC1oZC1jaHVhbi1jaGF1LXBoaS1jaG8tYm8teGl0LXZh LXRpdmktY2hvLXZpbmFzaGluLSBLaGFuaCBMaW5oDQoNClRodSB0dW9uZzogQ2h1YW4gImNoYXUg UGhpIiBjaG8gYm8teGl0IHZhLi4uIHRpdmkgY2hvIFZpbmFzaGluPyANCg0KUE4mSEQ6IER1IGto b25nIGhlIG11b24sIFBoYXQgbmdvbiAmIEhhbmggZG9uZyB0dWFuIG5heSB2YW4gYnVvYyBwaGFp IHRpZXAgdHVjIA0KaGFpIGNodSBkZSBkYSBkZSBjYXAgdHUgdHVhbiB0cnVvYywgYm9pIGNhIGhh aSB2YW4gZ2l1IG5ndXllbiBzdWMgbm9uZyBuaHUgbHVhIGRvdCB0dSB0cm9uZyBkaWVuIGRhbiBx dW9jIGhvaSBsYW4gbmdvYWkgdmlhIGhlIHhhIGhvaS4NCg0KQm8teGl0IHZhIGNodXllbiBjaHVh bi4uLiBjaGF1IFBoaT8NCg0KS2hvbmcgZHVvYyBkdWEgdmFvIGNodW9uZyB0cmluaCBuZ2hpIHN1 IGNoaW5oIHRodWMgY3VhIGt5IGhvcCBsYW4gbmF5LCBuaHVuZyBraG9uZyANCnZpIHRoZSBtYSBj aHUgZGUgYm8teGl0IGJpIGxhbmcgcXVlbi4gQ3UgdHJpIHNlICJnaGkgZGllbSIgY2hvIERCUUgg RHVvbmcgVHJ1bmcgDQpRdW9jLCBib2kgb25nIChoaW5oIG5odSBsYSBEQlFIIGR1eSBuaGF0KSBk YSB2aWV0IHRodSBjaG8gQ2h1IHRpY2ggUXVvYyBob2kgZGUgbmdoaSANCiJ0YWkga3kgaG9wIG5h eSBDaHUgdGljaCBjYW4gYmF5IHRvIG1vdCB0aGFpIGRvIHJvIHJhbmcgZG9pIHZvaSBuaHVuZyB5 IGtpZW4gcXVhbiBuZ2FpIA0KY3VhIG5oYW4gZGFuOyBjYWMgdXkgYmFuIGN1YSBRSCBjbyBsaWVu IHF1YW4gY2FuIGNvIG5odW5nIGhvYXQgZG9uZyBnaWFtIHNhdCB0aGVvIHF1eSANCmRpbmggY3Vh IHBoYXAgbHVhdCB2YSBiYXkgdG8geSBraWVuIHJvIHJhbmciLiBDdW5nIGNoaW5oIG9uZyAoaGlu aCBuaHUgbGFpIGxhIERCUUggZHV5IG5oYXQpIGRhIGRhbmggZ2FuIG5odSB0cm9uIDcgcGh1dCBx dXkgZ2lhIHRyb25nIHRob2kgZ2lhbiB0aGFvIGx1YW4ga2luaCB0ZSAtIHhhIGhvaSBvIGhvaSAN CnRydW9uZyBzYW5nIDIuMTEgY2hpIGRlIG5vaSB2ZSBiby14aXQsIGJvIHF1YSBjYSBjaHVjIHZh biBkZSBub25nIGhvaSBraGFjLg0KDQpEdSByYW5nIHRydW9jIG9uZywgQm8gdHJ1b25nIFBoYW0g S2hvaSBOZ3V5ZW4gZGEgInhpbiBwaGVwIHBoYXQgYmlldSBkYWkgaG9uIG1vdCANCmNodXQiIGRl IHRyYW4gYW4gUXVvYyBob2kgdmUgc3UgYW4gdG9hbiBjdWEgbW9pIHRydW9uZyBraGkga2hhaSB0 aGFjIGJvLXhpdCBvIFRheSANCk5ndXllbiwgYm9pIGNhYyBjaGkgdGlldSwgY2FjIHRpZXUgY2h1 YW4gbGEgdGlldSBjaHVhbiBoaWVuIGRhaSBjdWEgdGhlIGdpb2ksIGNhYyBjaGkgdGlldSB2ZSAN Cm1vaSB0cnVvbmcgbmdoaWVtIG5nYXQgbmhhdCBjdWEgVmlldCBOYW0gcXV5IGRpbmggdmEgdm9p IGNhYyB5ZXUgY2F1IGNhbiBkb25nLCBkbyBkZW0gcmF0IGN1IHRoZSBsYSBjbyBzbyBraG9hIGhv Yy4NCg0KTmh1bmcgREIgUXVvYyBkYSBjaGkgcmEgbW90ICJ0aGlldSBzb3QiIG1hdSBjaG90IHRy b25nIGdpYWkgdHJpbmggY28gdmUgbmh1IGRhIGt5IGNhbmcgDQpjdWEgQm8gdHJ1b25nIE5ndXll biwgcmFuZyAidmllYyB0cmllbiBraGFpIHhheSBkdW5nIGJhbyBjYW8gdmUgbW9pIHRydW9uZyBk aWVuIHJhIA0KY2FjaCBkYXkgZGEgMSBuYW0sIGtob25nIGJpZXQgc2F1IHN1IGNvIEh1bmdhcnks IGRvYW4gZ2lhbSBzYXQgY3VhIGJvIGRhIGRpIGNodWEsIG5odSANCnRoZSB2YW4gbGEgbmh1bmcg dGhvbmcgdGluIGN1Lg0KDQoiRGEgbW90IGxhbiB0cmVuIHBodW9uZyB0aWVuIHRob25nIHRpbiBk YWkgY2h1bmcsIEJvIHRydW9uZyBQaGFtIEtob2kgTmd1eWVuIG5vaSANCnJhbmcgZG8gbGEgdmUg bHkgdGh1eWV0IGNvbiB0cmVuIHRodWMgdGllbiBsYSBjaHVhIHJvLiBOZ3VvaSB0YSBkYXQgZGF1 IGhvaSB2ZSBraG9hbmcgY2FjaCANCmdpdWEgbHkgdGh1eWV0IHZhIHRodWMgdGllbiBuaHUgdGhl IG5hbyIuIFRob25nIHRpbiBjdSBuZW4gREIgUXVvYyBraG9uZyBhbiBsb25nLCB2YSBuZ3VvaSBk YW4gY3VuZyBjaHVhIHRoZSBhbiBsb25nLg0KDQpBeSBsYSBjaHVhIGtlLCBraGkgQm8gdHJ1b25n IGJhbyBjYWMgY2hpIHRpZXUgdmUgbW9pIHRydW9uZyBuZ2hpZW0gbmdhdCBuaGF0IGN1YSBWaWV0 IA0KTmFtIHF1eSBkaW5oIHRoaSBuZ3VvaSBkYW4gYm9uZyBkdW5nIGNhbSB0aGF5IGhvaS4uLiBy dW5nIG1pbmguIE5vaSBxdW9jIHRlIHhhIHhvaSB0aGkgDQpuZ3VvaSBkYW4gY29uICJ1IHUgY2Fj IGNhYyIga2hvbmcgYmlldCBxdW9jIHRlIG5hbywgYm9pIHF1b2MgdGUgY28gNSwgNyBkdW9uZyBx dW9jIHRlLCANCmNodWFuIGNoYXUgQXUgY2hhdSBNeSBjYW8gdm9pIHZvaSBoYXkgY2h1YW4uLi4g Y2hhdSBQaGkgdGhpIGN1bmcgaGllbiBuaGllbiBwaGFpIGdvaSBsYSANCnF1b2MgdGUgdGhvaS4N Cg0KUXVvYyB0ZSBjb24gY2h1YSBjaGFjIGNoYW4sIGRhbmcgbmF5IEJvIHRydW9uZyBsYWkgbmhh YyBjaGkgdGlldSBtb2kgdHJ1b25nIGN1YSBWaWV0IA0KTmFtIHRoaSB0aGF0IGtob25nIGJpZXQg cGhhaSBuZ2hpIHRoZSBuYW8uIE1vaSB0cnVvbmcgY3VhIFZpZXQgTmFtIGRhbmcgInNhY2giIHRo ZSBuYW8gDQp0aGkgbmd1b2kgZGFuIGhvYW4gdG9hbiBjbyB0aGUgdHUgY2FtIG5oYW4gKGJvaSBj dW5nIHJhdCB0dXkgbm9pKSwgbmh1bmcgY2h1eWVuIGNodWFuIA0KVmlldCBOYW0gdGhlIG5hbyB0 aGkgY3UgZGkgZG9jIFZpZXQgTmFtIHhlbSBjYWMuLi4gdHJ1b25nIGNodWFuIHF1b2MgZ2lhIGxh IEJvIHRydW9uZyANCnNlIHRoYXkgY2h1YW4gY3VhIG1pbmggY29uIHRoYXAgcmEgc2FvLg0KDQpO aG8gbGFpIGNoaW5oIG5odW5nIG5nYXkgbmF5IG5hbSBuZ29haSwgSGEgTm9pIGNvbiBkdW9jIGNv bmcgbmhhbiBsYSBkbyB0aGkgc2FjaCBoYW4gDQpob2ksIGR1b2MgY29uZyBuaGFuIG1hIGNoYW5n IG5ndW9pIEhhIE5vaSBuYW8gdGhheSB2dWksIHRoYW0gY2hpIGhvIGNvbiB0cmFjaCBuaHVuZyBu Z3VvaSB0cmFvIGRhbmggaGlldSBsYSB0cmFvIG5oYW0uDQoNCihBbmg6IEJvIHRydW9uZyBQaGFt IEtob2kgTmd1eWVuLCBBbmggRGF0IFZpZXQpIA0KDQpMYW4gbWFuIG1vdCB0eSBjaHV5ZW4gY2h1 YW4sIGNodXllbiBzYWNoLCBkZSBCbyB0cnVvbmcgc2Uga2hvbmcgbmdhYyBuaGllbiBraGkgbmd1 b2kgDQpkYW4gc2UgdG8geSBuZ2hpIG5nbyBraGFuZyBkaW5oIG1vaSB0cnVvbmcgc2Ugc2FjaCAi dHJlbiBseSB0aHV5ZXQiIGN1YSBCbyB0cnVvbmcuDQoNCkNodWEgaGV0LCBCbyB0cnVvbmcgYmFv IEhvaSBkb25nIHRoYW0gZGluaCBjdWEgQm8gY28gdG9pIDIxIHRoYW5oIHZpZW4sIG5oaWV1IGdh cCBiYSANCmxhbiBjYWMgaG9pIGRvbmcga2hhYyAodGh1b25nIGNoaSBjbyA3IC0gOSB0aGFuaCB2 aWVuKSwgImdvbSB0b2kgMTggbmhhIGtob2EgaG9jLCBiYW8gDQpnb20gY2FjIEdTLCBQR1MgdmEg VFMsIGNodSB5ZXUgbGEgY2FjIGRvbmcgY2hpIGxhIHZpZW4gdHJ1b25nLCB2aWVuIHBobywgZ2lh bSBkb2MgdHJ1bmcgdGFtIGtob2EgaG9jLCBoaWV1IHRydW9uZywgaGlldSBwaG8gY2FjIHRydW9u ZyBkYWkgaG9jLCBwaGFpIG1vaSBjYWMgZG9uZyBjaGkgbmF5IA0KdmFvLCBib2kgdmkgZHVuZyBk YW5nIHNhdSBjYWMgbmhhIGtob2EgaG9jIG5heSBsYSBjYSBjYWMgdmllbiBuZ2hpZW4gY3V1LCBs YSBoZSB0aG9uZyANCmNhYyB0cnVvbmcgZGFpIGhvYywgY2FjIGdpYW8gc3UgZHVuZyBkYW5nIHNh dSwgZGUgdGhhbSBkaW5oIHRhdCBjYSBjYWMgbGluaCB2dWMgY28gbGllbiANCnF1YW4iLiBHaWEg bmh1IEJvIHRydW9uZyBjbyB0aGUgY29uZyBibyBjdSB0aGUgdGVuIGN1YSAxOCBuaGEga2hvYSBo b2MgbmF5LCBkZSB4ZW0gDQpkdW5nIGRhbmcgc2F1IGhvIGNvIHRvbmcgY29uZyBiYW8gbmhpZXUg dmllbiBuZ2hpZW4gY3V1LCBiYW8gbmhpZXUgdHJ1b25nIGRhaSBob2MsIGJhbyANCm5oaWV1IGdp YW8gc3UsIGRhIGJhbyBxdWF0IGR1IHRhdCBjYSBjYWMgbGluaCB2dWMgY2h1YT8NCg0KUm9pIHBo YWkgZGkgaG9pIG1vdCB2YWkgR1MgdHJvbmcgZG8gKG5ldSBob2kgZHVvYyB0YXQgY2EgdGhpIGNv biBnaSBiYW5nKSB4ZW0gaG8gZGEgYmFvIA0KZ2lvIGR1b2MgbW9pIHR1IHZhbiB2ZSBuaHVuZyB2 YW4gZGUgbGllbiBxdWFuIGRlbiBkdSBhbiBiby14aXQgbmF5IGNodWEuIENoaSBraGkgaG8gDQpk ZXUgYmFvIGhvIGRhIGNvIHRoYW0gZ2lhIHJvaSwgdmEgaG8ga2hhbmcgZGluaCBsYSBhbiB0b2Fu LCB0aGkgbWF5IHJhIG5ndW9pIGRhbiBtb2kgdGluLCANCnZhIGNvIGxlIERCIER1b25nIFRydW5n IFF1b2MgY3VuZyB0aW4uDQoNCkNvbiBiYXkgZ2lvLCBjdW5nIG5odSBEQiBRdW9jLCBuZ3VvaSBk YW4gY2hpIHRoYXkgcmF0IG5oaWV1IG5oYSBraG9hIGhvYyBsZW4gdGllbmcgbG8gDQphdSB2ZSBk dSBhbiwgY3VuZyB0b2FuIG5odW5nIG5oYSBraG9hIGhvYyBsb24sIHRodW9jIGNhYyBkYWkgaG9j IGhheSB2aWVuIG5naGllbiBjdXUgDQpsb24gY2EuIFZheSB0aGkgcGhhaSBzdXkgbHVhbiB0aGUg bmFvIGRheT8gVmkgdmllbiB0cnVvbmcgY3VhIGhvLCBoaWV1IHRydW9uZyBjdWEgaG8gY2h1YSBk dW9jIG1vaSB2YW8gaG9pIGRvbmcgdGhhbSBkaW5oIGN1YSBCbywgaGF5IGR1b2MgbW9pIHZhbyBy b2kgbWEgY2h1YSBob2kgeSBraWVuIA0KaG8sIGhheSBob2kgcm9pIG1hIGxhaS4uLj8NCg0KVmkg cXVhIHRoaWV1IGR1IGxpZXUgbmVuIGtob25nIGRhbSBkdWEgcmEga2V0IGx1YW4gZ2ksIGNoaSBi aWV0IHJhbmcgdGhlbSBtb3QgY28gc28gbHkgZG8gDQpkZSBuZ3VvaSBkYW4gY2h1YSB0aGUgdGlu IGNoYWMgIm5odSBkaW5oIGRvbmcgY290IiBuaHUgQm8gdHJ1b25nIHJhbmcga2hhaSB0aGFjIGJv LXhpdCANClRheSBOZ3V5ZW4gbGEgYW4gdG9hbi4NCg0KQ2hpIHBoYW4gdGljaCB2YWkgeSBjaHUg Y2h1YSBkaSBzYXUgdmFvIG5odW5nIG5vaSBkdW5nIGNodXllbiBtb24gdHJvbmcgcGhhdCBiaWV1 IGN1YSANCkJvIHRydW9uZywgZGEgdGhheSBjbyBuaGlldSBkaWVtIGRhbmcgcXVhbiBuZ2FpLCBu ZW4gY2hpIHhpbiBwaGFuIHRpY2ggdGhlbSBtb3QgZGllbSANCiJuaG8gbmhvIiBudWEgdGhvaS4g VHJvbmcga2llbiBuZ2hpIGN1YSBjYWMgbmhhbiBzaSB0cmkgdGh1YyBjbyBuaGFjIGNodXllbiBU cnVuZyBRdW9jIA0KZGEgZG9uZyBjdWEgY2EgdHJhbSBtbyBraGFpIHRoYWMgYm8teGl0IHRyZW4g a2hhcCBkYXQgbnVvYyB2aSBhbmggaHVvbmcgZGVuIG1vaSANCnRydW9uZy4gQ29uIHRyb25nIHBo YW4gdHJpbmggYmF5IGN1YSBCbyB0cnVvbmcgbGFpIGNvIG5oYWMgdmllYyBkYSB0byBjaHVjIGNo byBkb2FuIGN1YSBIb2kgZG9uZyB0aGFtIGRpbmggZGkgdGhhbSBUcnVuZyBRdW9jLCBkZSBob2Mg dGFwIGtpbmggbmdoaWVtLiBHaWEgbmh1IGRvYW4gY3VhIEhvaSANCmRvbmcgdGhhbSBkaW5oIGRl biBjaGluaCBuaHVuZyBub2kgY2hpbmggcGh1IFRydW5nIFF1b2MgZGEgY2hvIGRvbmcgY3VhIG1v IHRoaSBoYXkgDQpiaWV0IG1heT8gQm9pIHRyYW0gbmdoZSBraG9uZyBiYW5nIG1vdCB0aGF5IG1h LiBIbyBkb25nIGN1YSBtbyBjdWEgaG8sIHJvaSBsYWkgc2FuZyANCmtoYWkgdGhhYyBtbyBjdWEg bWluaCB0aGkgY28gZGFuZyB0aW4ga2hvbmc/DQoNCihBbmg6IEtoYWkgdGhhYyBibyB4aXQgdmEg VmluYXNoaW4gZGFuZyBsYSB2YW4gZGUgbm9uZyBuaGF0IHRyb25nIHF1b2MgaG9pLCBBbmggRGFu IFRyaSkNCg0KS2hvbmcgbGUgcGhhaSBkdW5nIHR1ICJ2byBjYW0iPw0KDQpEZW4gZGF5IHRoaSB4 aW4gZHVuZyBwaGFuIHRpY2ggbmh1bmcgcGhhdCBuZ29uIGN1YSBCbyB0cnVvbmcgVGFpIG5ndXll biAtIE1vaSB0cnVvbmcgDQpQaGFtIEtob2kgTmd1eWVuLCBkZSB0cm8gdmUgdm9pIERCUUggRHVv bmcgVHJ1bmcgUXVvYy4NCg0KS2hvbmcgY2hpIHRvIHJhIGNodWEgYW4gbG9uZyB2b2kgZ2lhaSB0 cmluaCBjdWEgQm8gdHJ1b25nIFRhaSBuZ3V5ZW4gLSBNb2kgdHJ1b25nLCBEQiANClF1b2MgY29u IHRoYW5nIHRoYW4gIm5oYWMiIGNoaW5oIHBodSByYW5nLCBkZW4gbmdheSBDaGluaCBwaHUgaG9h biB0YXQgYmFvIGNhbyBraW5oIHRlIA0KeGEgaG9pIGRlIHRyaW5oIFF1b2MgaG9pIHRoaSBzdSBj byB2byBkYXAgYnVuIGRvIG8gSHVuZ2FyeSBkYSBkaWVuIHJhIGR1b2MgbnVhIHRoYW5nLCANCmRl IGRhdCByYSBtb3QgY2F1IGhvaSAiZGF1IGRhdSI6IEtob25nIGxlIENoaW5oIHBodSwgdG9pIGR1 bmcgY2h1ICJ2byBjYW0iIGRlbiBtdWMgDQpraG9uZyBoZSBkYSBkb25nIHRyb25nIG5vaSBkdW5n IGJhbyBjYW8gdHJ1b2MgUXVvYyBob2kgdmEgUXVvYyBob2kgY3VuZyBraG9uZyB5ZXUgY2F1IENo aW5oIHBodSBnaWFpIHRyaW5oIHRydW9jIGhldCBkZSBsYW0gYW4gbG9uZyBkYW4sIHNhdSBudWEg dGhlIGhpZW4gdGluaCBuaGF5IGJlbiB2YSANCnRyYWNoIG5oaWVtIGdpYW0gc2F0IHRodW9uZyB4 dXllbiBjdWEgbWluaC4gTmd1b2kgZGFuIHF1YW4gc2F0IHRoYXkgZHVvbmcgbmh1IGNhIA0KUXVv YyBob2kgdmEgQ2hpbmggcGh1IGRldSBjb2kgY2F1IGNodXllbiBib3hpdCBkYSBsYSBjaHV5ZW4g InZhbiBkYSBkb25nIHRodXllbiIuDQoNCkRCIFF1b2Mga2hvbmcgbmdhaSBuZ2FuIGtoaSBkdWEg cmEgc3Ugc28gc2FuaCBjbyB0aGUgc2UgbGFtIG1hdCBsb25nIG5oaWV1IG5ndW9pOiANCiJOaHVu ZyB5IGtpZW4gbWFuZyB0aW5oIGNoYXQgcGhhbiBiaWVuIGtob2EgaG9jIHZhIGRheSB0aW5oIHRo YW4gdHJhY2ggbmhpZW0gY3VhIA0Kbmh1bmcgbmd1b2kgeWV1IGNhdSBwaGFpIGR1bmcgaGF5IHhl bSB4ZXQgbGFpIGR1IGFuIGtoYWkgdGhhYyBib3hpdCBvIFRheSBOZ3V5ZW4gbmdheSANCmNhbmcg bmhpZXUgdmUgc28gbHVvbmcsIGNhbmcgY28gc3VjIG5hbmcgdGh1eWV0IHBodWMgdmUgY2hhdCBs dW9uZy4gVHJvbmcga2hpIGRvLCB0cmEgbG9pIA0KY2FjIHF1YW4gY2h1YyBjbyB0cmFjaCBuaGll bSBjdWEgQ2hpbmggcGh1IGxhaSBjYW5nIGJvYyBsbyBuaHVuZyB2YW4gZGUgZGFuZyBsbyBuZ2Fp IA0KaG9uIHZlIGhpZXUgcXVhIGtpbmggdGUgdHJvbmcga2hhaSB0aGFjIHZhIHRpZXUgdGh1LCB2 ZSBzdSB0aGlldSBkb25nIGJvIGdpdWEgZHUgYW4ga2hhaSANCnRoYWMgdmEgZGlldSBraWVuIGhh IHRhbmcgZGUgdmFuIGNodXllbiwgdmUgc3UgbHVhIGNob24gY29uZyBuZ2hlIHZhIGRpYSBkaWVt IGNoZSBiaWVuIA0KdG9pIHV1LCB2ZSBuaHVuZyBydWkgcm8gdmUgc3UgcGh1IHRodW9jIHZhbyB0 aGkgdHJ1b25nIG51b2MgbmdvYWkiLg0KDQpPbmcgUXVvYyBraG9uZyB0cm9uIHRyYW5oIHRyYWNo IG5oaWVtIGN1YSBtb3QgZGFpIGJpZXUgZGFuIGN1IGtoaSBraGFuZyBkaW5oIHN1IHR1IA0KcGhl IHBoYW4gY3VhIFF1b2MgaG9pIHZhbiBjaHVhIHR1b25nIHh1bmcgdm9pIHRyYWNoIG5oaWVtIGN1 YSBRdW9jIGhvaSwgdHJvbmcgZG8gY28gDQptb2kgREJRSCBjaHVuZyB0YSB0cm9uZyB2aWVjIG5h eS4NCg0KUXVvYyBob2kgdmkgbGEgY28gcXVhbiBxdXllbiBsdWMgY2FvIG5oYXQgbmVuIHNlIHBo YWkgY2hpdSB0cmFjaCBuaGllbSBjYW8gbmhhdCwgIkJhaSANCmhvYyB2ZSBzdSBkbyB2byBjdWEg VmluYXNoaW4gaG9hbiB0b2FuIGNvIHRoZSBzb2kgdmFvIGR1IGFuIGJvLXhpdCBuZW4gY2h1bmcg dGEgYnVvbmcgDQpsb25nIHF1eWVuIGdpYW0gc2F0IGN1YSBRdW9jIGhvaSwgYm8gbmdvYWkgdGFp IG5odW5nIHkga2llbiBkb25nIGdvcCBjdWEgbmhhbiBkYW4gDQpraG9uZyBsb2FpIHRydSBzdSBs YXAgbGFpIi4NCg0KWGluIGtob25nIGJpbmggbHVhbiBuaGlldSB2ZSBuaHVuZyBwaGF0IGJpZXUg bmF5IGN1YSBEQiBEdW9uZyBUcnVuZyBRdW9jLCBib2kgb25nIFF1b2MgZGEgbm9pIHF1YSB0aGFu ZyB0aGFuIHZhIHRoYXUgZGFvIHN1eSBuZ2hpIGN1YSBvbmcsIGJpbmggbHVhbiB0aGVtIGNvIGto aSBsYWkgdGhhbmggdGh1YS4gQ2hpIHhpbiAibmhhYyIgdGhlbSBEQiBRdW9jLCByYW5nIGNhYyBx dWFuIGNodWMgY28gdHJhY2ggbmhpZW0gY3VhIENoaW5oIHBodSANCm1hIERCIFF1b2MgbmhhYyBk ZW4sIHBoYW4gZG9uZyB0cm9uZyBzbyBobyBjdW5nIGNoaW5oIGxhIERCUUguIE5naGlhIGxhLCBo byBzZSBwaGFpIA0KY2hpdSB0cmFjaCBuaGllbSBrZXAgY28gZGF5Lg0KDQpOaHVuZyBwaGFpIGNo YW5nIGNoaW5oIHZpICJ2dWEgZGEgYm9uZyB2dWEgdGhvaSBjb2kiIG1hIG5ndW9pIGRhbiBjaGFu ZyB0aGF5IGJvbmcgDQpkYW5nIG5ndW9pIGRhaSBkaWVuIGN1YSBtaW5oIHRyb25nIGNhYyBxdWFu IGNodWMgY2hpbmggcGh1Lg0KDQpOZ3VvaSBkYW4gbG8gdGhpIGN1IGxvLCBjb24gY2FjIHZpIGto b25nIG5ndW5nIGtoYW5nIGRpbmggdmEgdGFpIGtoYW5nIGRpbmggc3UgYW4gdG9hbi4gDQpDaGkg REIgUXVvYyBraG9uZyBwaGFpIHRoYW5oIHZpZW4gQ2hpbmggcGh1IG1vaSBkZSBuZ2hpICJjbyB0 aGUgZHVuZyBsYWkgRHUgYW4gYm94aXQgDQpkZSBiYW4gYmFjIGNobyB0aGF1IGRhby4gRHUgYW4g RHVuZyBRdWF0IGRhIGtlbyBkYWkgbmhpZXUgbmFtIHZpIHN1IGx1YSBjaG9uIHBodW9uZyANCmFu IHRvaSB1dSB2YSBjYWkgdG9pIHV1IHBoYWkgdGh1b2MgdmUgbG9pIGljaCBkYW4gdG9jIGN1YSBt aW5oLCB2aSB0aGUgdmllYyBkdW5nIGxhaSBkZSBiYW4gDQp0aGVtIGR1IGFuIGJveGl0IGxhIGRp ZXUga2hvbmcgdHJhaSB2b2kgbG9uZyBkYW4iLg0KDQooQW5oOiBDb24gdGF1IFZpbmFzaGluIGRh bmcgbGFtIGRhdCBudW9jIHRyb25nIHRyYW5oLCBBbmggUGhhcCBsdWF0IFZpZXQgTmFtKSANCg0K U2UgY28gVXkgYmFuIGxhbSB0aG9pIFZpbmFzaGluPw0KDQpDaGkgbWluaCBEQlFIIER1b25nIFRy dW5nIFF1b2MgZGEgbGFtICJub25nIiB2dSBiby14aXQsIGR1IGJpZXQgVmluYXNoaW4gc2Ugbm9u ZyANCmRlbiBtdWMgbmFvLCBraGkgZGF5IGxhIGNhaSB0ZW4gcmllbmcgZHVvYyBuaGFjIGRlbiBu aGlldSBuaGF0IHRyb25nIDIgbmdheSB0aGFvIA0KbHVhbiBraW5oIHRlIC0geGEgaG9pLCBkZW4g bXVjIG5ldSBWaW5hc2hpbiBsYSBtb3QgY29uIG5ndW9pLCBjaGFjIGNoYW4gbmd1b2kgYXkgc2Ug bGllbiB0dWMgDQoiaGF0IGhvaSIuIExpZW4gdGllcCBjYWMgREJRSCBkYWkgZGllbiBjaG8gY3Ug dHJpIGN1YSBtaWVuIEJhYyBkZW4gbWllbiBOYW0sIG1pZW4gDQp4dW9pIGxlbiBtaWVuIG5ndW9j LCBuaGFjIGRlbiBWaW5hc2hpbiB0cm9uZyBuaHVuZyBob2FuIGNhbmgga2hhYyBuaGF1LiBOaGFj IG5oaWV1IA0KcXVhIGRlbiBtdWMgY2FjIERCIHNhdSBkbyBjaGkgY2FuIGRlIGNhcCAidHJ1b25n IGhvcCBWaW5hc2hpbiBuaHUgbmhpZXUgREIgZGEgZGUgDQpjYXAgc2FuZyBuYXksIGhvYWMgZGUg Y2FwIGhvbSBxdWEiIGxhIHF1YSBkdS4NCg0KQXkgdmF5IG5odW5nIGxhbmcgbmdoZSBwaGF0IGJp ZXUgY3VhIGNhYyBEQlFILCBzZSB0aGF5IHJhdCBraGFjIG5oYXUuIENoaSB4aW4gY2hvbiANCm5o YWMgbGFpIG1vdCB2YWkgcGhhdCBiaWV1IHRyb25nIHNvIGRvLCBraG9uZyBkYW0ga2hhbmcgZGlu aCBkYSBsYSB0aWV1IGJpZXUgbmhhdCBoYXkgDQpjaHVhLg0KDQooQW5oOiBEQiBMZSBWYW4gQ3Vv bmc6ICJuZXUgZGUgeGF5IHJhIGhhdSBxdWEgbmdoaWVtIHRyb25nIG5odSB0aGUgdGhpIHZhaSBi YSB2aSB0cmkgDQpkYSBwaGFpIGxlbiB0aWVuZyB4aW4gdHUgY2h1YyByb2ksIG5odW5nIG8gdGEg dGhpIGNodWEiLiBBbmggVmlldE5hbU5ldCkNCg0KREIgTmd1eWVuIE1pbmggVGh1eWV0IHRpZXAg dHVjIHRoZSBoaWVuIGJhbiBsaW5oIGtoaSBiYW0gbnV0IHBoYXQgYmlldSBzb20gdmEgZGFuaCAN CnRvYW4gYm8gdGhvaSBnaWFuICJjbyBoYW4iIGRlIGNoaSBub2kgZG9jIG5oYXQgY2h1eWVuIFZp bmFzaGluLiBUaG9pIGdpYW4gZGFuaCBjaG8gbW9pIA0KREIgdG9pIGRhIGxhIDcgcGh1dCBxdXkg ZGluaCwgbmh1bmcgY2hhYyBjaGFuIERCIFRodXlldCBraG9uZyBkdW5nIGhldCA3IHBodXQgbmF5 LCANCmJvaSBwaGFuIHBoYXQgYmlldSBjdWEgb25nIGtoYSBuZ2FuIGdvbiwgbGFpIGxhIG1vdCBi YWkgZGEgY2h1YW4gYmkgc2FuLiBDbyBkaWV1LCB0YXAgDQp0cnVuZyBjaGkgbW90IHZhbiBkZSBs YSBjaHUgZGljaCBjdWEgb25nLCAiZGUgbmdheSBzYXUgYnVvaSBob3AgbmF5IHRyaW5oIFV5IGJh biANClRodW9uZyB2dSBRdW9jIGhvaSBuaHUgbW90IGtpZW4gbmdoaSBjaGluaCB0aHVjIGN1YSBk YWkgYmlldS4gVHJhbiB0cm9uZyBkZSBuZ2hpIFV5IA0KYmFuIFRodW9uZyB2dSBRdW9jIGhvaSBr aGFuIHRydW9uZyB4ZW0geGV0IHZhIGNobyBiaWV1IHF1eWV0IHZlIGtpZW4gbmdoaSBjdWEgdG9p Ii4NCkJvaSBsYSBraWVuIG5naGkgbmVuIG9uZyBraG9uZyBwaGFuIHRpY2ggbmhpZXUgdmUgc3Ug a2hvbmcgbG8gY3VhIGNvbiBzbyA4NiBuZ2FuIHR5LCBtYSANCnRhcCB0cnVuZyB2YW8gY2F1IGhv aSAiY29uIG5odW5nIGFpIG51YSBzZSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdmUgbmh1bmcgc2Fp IHBoYW0gDQpuYXk/Ii4NCg0KTmhhYyBsYWkgdnUgYW4gTGEgVGhpIEtpbSBPYW5oIG8gQm8gTm9u ZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBub25nIHRob24gY2FjaCBkYXkgaG9uIA0KNiBuYW0sIHZp IG51b25nIGNoaWV1LCBsdW9uIGFwIGR1bmcgbmh1bmcgc2lldSBjbyBjaGUgY2hvIGNvbmcgdHkg Y3VhIExhIFRoaSBLaW0gDQpPYW5oIGRhbiBkZW4gdGhhdCB0aG9hdCB0cmVuIDEwMCB0eSBkb25n IG1hIG1vdCB2aSBCbyB0cnVvbmcgZGFuZyByYXQgZHVvYyBsb25nIGRhbiwgDQpkdW9jIGxvbmcg ZGFpIGJpZXUgUXVvYyBob2kgZGEgcGhhaSB0dSBjaHVjIHZhIDIgdmkgVGh1IHRydW9uZyBkYSBw aGFpIHJhIHRydW9jIHZhbmggDQptb25nIG5ndWEuIDEwMCB0eSBkb25nIG5nYXkgYXkga2hpZW4g bW90IEJvIHRydW9uZyB0dSBjaHVjLCAyIHRodSB0cnVvbmcgcmEgdHJ1b2MgDQp2YW5oIG1vbmcg bmd1YSwgY29uIDg2IG5nYW4gdHkgaG9tIG5heSB0aGkgc2FvPw0KDQpEQiBUaHV5ZXQgYmFvICJW aW5hc2hpbiBsYSBtb3Qga2lldSBMYSBUaGkgS2ltIE9hbmggcGhvbmcgZGFpIGNvIDEwMDAgbGFu IiBjbyB0aGUgDQoiaG9pIHF1YSIsIHZpIDYgbmFtIHF1YSBtdWMgZG8gdHJ1b3QgZ2lhIGN1bmcg bmhpZXUgcm9pLCBuaHVuZyB2YW4gY2hhYyBjaGFuIG1vdCANCmRpZXUgbGEgdnUgdmllYyBWaW5h c2hpbiBuZ2hpZW0gdHJvbmcgaG9uIHZ1IHZpZWMgTGEgVGhpIEtpbSBPYW5oIG5nYXkgeHVhLg0K DQpWYXkgbmVuIHRoZW8gREIgVGh1eWV0LCAidHJvbmcgdHJ1b25nIGhvcCBuYXkgY2FjIHRoYW5o IHZpZW4gQ2hpbmggcGh1IGNvIGxpZW4gcXVhbiANCnBoYWkga2llbSBkaWVtIHZhIG5oYW4ga3kg bHVhdCB0cnVvYyBRdW9jIGhvaSAtIGNvIHF1YW4gZGFpIGRpZW4gbmhhbiBkYW4gY2EgbnVvYyAN CmJhdSByYSBtaW5oLiBLaG9uZyB0aGUgY2hpIG5oYW4ga2h1eWV0IGRpZW0gbW90IGNhY2ggY2h1 bmcgY2h1bmcgdmEgdHV5ZW4gYm8gZGEga2llbSANCmRpZW0gbm9pIGJvIGxhIHJ1IHhvbmcgdHJh Y2ggbmhpZW0iLg0KDQpEZSB4dWF0IGN1YSBEQiBjdWMga3kgY3UgdGhlLCBkZSBuZ2hpIFVCVFZR SCB0byBjaHVjIGRlIFF1b2MgaG9pIGJpZXUgcXV5ZXQgdGhhbmggDQpsYXAgVXkgYmFuIGxhbSB0 aG9pIGRpZXUgdHJhIHRyYWNoIG5oaWVtIGN1YSBjYWMgdGhhbmggdmllbiBDaGluaCBwaHUgdHJv bmcgdnUgdmllYyBuYXkuIA0KVHJlbiBjbyBzbyBkbyB2YW8gdGhvaSBnaWFuIGN1b2kga3kgaG9w IGJvIHBoaWV1IHRpbiBuaGllbSBjYWMgdGhhbmggdmllbiBDaGluaCBwaHUgY28gDQpsaWVuIHF1 YW4uIERlIHh1YXQgbmF5IHNhdSBuYXkgdGhlIG5hbyBjdW5nIHNlIGR1b2MgZ2hpIGxhaSB0cm9u ZyBsaWNoIHN1IGN1YSBRdW9jIGhvaS4NCg0KS2hvbmcgY2hpIERCIFRodXlldCBtYSByYXQgbmhp ZXUgREJRSCBjbyBuaHVuZyBkZSB4dWF0IGxpZW4gcXVhbiBkZW4gdHJhY2ggbmhpZW0gDQpjdWEg Y2FjIHRoYW5oIHZpZW4gY2hpbmggcGh1IHRyb25nICJ2dSBWaW5hc2hpbiIsIGhvIGxhcCB0aGFu aCBtb3QgbmhvbSBuaHVuZyBEQlFIIA0KbWFuaCBtZSB2YSBxdXlldCBsaWV0Lg0KDQpOaGFjIGNo dXllbiBvIGNhYyBudW9jLCAibmV1IGRlIHhheSByYSBoYXUgcXVhIG5naGllbSB0cm9uZyBuaHUg dGhlIHRoaSB2YWkgYmEgdmkgdHJpIGRhIA0KcGhhaSBsZW4gdGllbmcgeGluIHR1IGNodWMgcm9p LCBuaHVuZyBvIHRhIHRoaSBjaHVhIiwgREIgTGUgVmFuIEN1b25nIHRhbiB0aGFuaCB2aWVjIA0K dGhhbmggbGFwIFV5IGJhbiBsYW0gdGhvaSwgdGhhbSBjaGkgY29uIHRpZW4gdGhlbSBtb3QgYnVv YyBsYSBwaGFpIGxhcCAibmdheSB0cm9uZyBreSANCmhvcCBuYXkiLg0KDQpNb3QgbmhhbiB2YXQg cXVhbiB0cm9uZyBjdWEgUXVvYyBob2kgdmkgbWFuZyBoYW0gYm8gdHJ1b25nIGxhIENodSBuaGll bSBVQiBRdW9jIA0KcGhvbmcgLSBBbiBuaW5oIExlIFF1YW5nIEJpbmggY3VuZyB1bmcgaG8gdmll YyB0aGFuaCBsYXAgdXkgYmFuIGxhbSB0aG9pLCB1bmcgaG8gbW90IA0KdmllYyAiY2h1YSBjbyB0 aWVuIGxlIiwgZHUgYmlldCB0aG9pIGdpYW4gY29uIGxhaSBjdWEgbmhpZW0ga3kgUXVvYyBob2kg cmF0IG5nYW4gbmh1bmcgDQpvbmcgY2hpIGR1YSByYSBkZSB4dWF0Lg0KIkNvIHRoZSBzZSBwaGFp IG1vaSByYXQgbmhpZXUgY2h1eWVuIGdpYSBkb2MgbGFwIHZhIHN1IGR1bmcga2V0IHF1YSBjdWEg Y2FjIGNvIHF1YW4gDQpraGFjIG5odSBrZXQgbHVhbiBjdWEgVXkgYmFuIEtpZW0gdHJhIFRVLCBU aGFuaCB0cmEgQ2hpbmggcGh1LCBUaGFuaCB0cmEgY2FjIGJvLCANCm5nYW5oIg0KS2hhYyB2b2kg bmh1bmcgbG8gYXUgdmUgYm8teGl0IGxhIGNhdSBjaHV5ZW4gY3VhIHR1b25nIGxhaSwgZ2lhaSBx dXlldCBoYXUgcXVhIFZpbmFzaGluIA0KbGEgY2F1IGNodXllbiBkYSBjbyBoYXUgcXVhIG5hbmcg bmUgKHF1YSBraHUpLCBuZW4ga2hvbmcgdGhhbmggdmllbiBDaGluaCBwaHUgbmFvIHRoZSANCmhp ZW4gdGhhaSBkbyBsYWMgcXVhbiB0cm9uZyB0dWFuIG5heSAoY2hpIHRyb25nIHR1YW4gbmF5IHRo b2ksIHhpbiBraG9uZyBuaGFjIGxhaSBjaHV5ZW4gDQpWaW5hc2hpbiBzZSBnaWFpIGJheSB0cmVu IHRpdmk/DQoNClZpbmFzaGluIGRhICJob25nIiwgREJRSCB0aGkgcXV5ZXQgbGlldCBkb2kgcXV5 IHRyYWNoIG5oaWVtLCBkb2kgcGhhaSBjbyBuZ3VvaSB0dSBjaHVjLCANCmRvaSBwaGFpIHh1IGx5 IG5lbiBjYWMgdGhhbmggdmllbiBjaGluaCBwaHUgY2hpIG5oZSBuaGFuZyBnaWFpIHRyaW5oIGRl IFF1b2MgaG9pIGhpZXUgcm8gDQpob24gbWEgdGhvaS4NCg0KVG9uZyB0aGFuaCB0cmEgQ2hpbmgg cGh1IHRoaSAicGhhbiB0aWNoIGNodSBraG9uZyBkbyBsb2kiIGNodXllbiBjaHVhIGhlIGNvIG1v dCBjdW9jIA0KdGhhbmggdHJhIHRvYW4gZGllbiBuYW8sIGxhIGRvIGJhIGxhbiBkaW5oIHRoYW5o IHRyYSBuaHVuZyBuYW0gdGhpIGRvIHRydW5nIGxhcCB2b2kgQm8gVGFpIA0KY2hpbmggbmVuIHBo YWkgZHVuZywgbmFtIHRoaSBjYWMgdGFwIGRvYW4gdGFwIHRydW5nIGtoYWMgcGh1YyBraHVuZyBo b2FuZyBraW5oIHRlIHZhIA0Kc3V5IHRob2FpIG5lbiBwaGFpIGdpYW0gYXAgbHVjIHRoYW5oIHRy YSwgbmFtIG5heSB0aGkgbGFpIHBoYWkgImNobyIgVXkgYmFuIGtpZW0gdHJhIHhvbmcgDQp2aWVj Lg0KDQpWYXkgbGEgIjExIGxhbiB0aGFuaCB0cmEsIGtpZW0gdHJhLCBraWVtIHRvYW4sIGdpYW0g c2F0IG1hIGtob25nIHBoYXQgaGllbiBkdW9jIHlldSANCmtlbSwgdmkgcGhhbSBjdWEgVmluYXNo aW4iIHZpIDExIGxhbiBsYW0gdmllYyB2b2kgVmluYXNoaW4gdHUgZGF1IG5hbSAyMDA2IGRlbiBk YXUgDQpuYW0gMjAxMCBsYSBkbyBjYWMgY28gcXVhbiBraGFjIG5oYXUsIGhvYXQgZG9uZyB0aGVv IGNhYyBxdXkgZGluaCBwaGFwIGx1YXQga2hhYyBuaGF1LCANCnRodWMgaGllbi4NCg0KQm8gdHJ1 b25nIEdpYW8gdGhvbmcgdmFuIHRhaSBIbyBOZ2hpYSBEdW5nIHRoaSAidGhheSBjbyB0cmFjaCBu aGllbSBjdWEgbWluaCwgdGhheSBjbyANCmtodXlldCBkaWVtIGN1YSBtaW5oIiB0cm9uZyB2aWVj ICJuaGlldSB2YW4gZGUga2hvbmcgcGhhdCBoaWVuIGR1b2MsIG5oaWV1IHZhbiBkZSBwaGF0IA0K aGllbiBjaGFtLCB0aGFtIGNoaSB0YXQgY2Egbmh1bmcgdmFuIGRlIGNvIHkgbGFtIHNhaSB0cmFp IGxhIGhvYW4gdG9hbiBraG9uZyBwaGF0IGhpZW4gDQpkdW9jIiBuaHVuZyBjdW5nIG5vaSBybyB0 aGVtIGxhICJjaHVuZyB0b2kgcmF0IGx1bmcgdHVuZyIgdHJvbmcgdmllYyB0aHVjIGhpZW4gY2h1 YyANCm5hbmcgZ2lhbSBzYXQga2hpIGtob25nIGNvbiBjaGUgZG8gYm8gY2h1IHF1YW4sIEJvIGNo aSBjb24gY2h1YyBuYW5nIHF1YW4gbHkgbmdhbmggDQpuZW4ga2hvbmcgdGhlIGNhbiB0aGllcCB2 YW8gaG9hdCBkb25nIHNhbiB4dWF0LCBraW5oIGRvYW5oIGN1YSB0YXAgZG9hbi4NCg0KTmdvYWkg cmEsIGNvbiB0aGVtIEJvIHRydW9uZyBUYWkgY2hpbmggVnUgVmFuIE5pbmggdmEgQm8gdHJ1b25n IEtlIGhvYWNoIC0gZGF1IHR1IA0KVm8gSG9uZyBQaHVjIGN1bmcgZ2lhaSB0cmluaCB0cnVvYyBR dW9jIGhvaSwgbmh1bmcgeGluIGtob25nIG5oYWMgZGVuIG5odW5nIHBoYXQgDQpiaWV1IGF5LCBi b2kgY2EgaGFpIGJvIHRydW9uZyBkZXUgZHVhIHJhIGJhaSBob2Mga2luaCBuZ2hpZW0gdmUgY28g Y2hlIG5oaWV1IGhvbiBsYSB0cmFjaCANCm5oaWVtIGN1YSBjaGluaCBibyBtaW5oLg0KDQpEZSBu aGFuIHRoYXkgY2FjaCBwaGF0IGJpZXUgdHJ1b2MgUUggY3VhIGNhYyB0aGFuaCB2aWVuIENoaW5o IHBodSB0cnVjIHRpZXAgbGllbiBxdWFuIA0KZGVuICJjb24gdGF1IFZpbmFzaGluIi4gTmh1bmcg eGluIGR1b2MgZGFuIHRoZW0gcGhhdCBiaWV1IGN1YSBtb3QgdmFpIERCUUgga2hhYy4NCg0KKEFu aDogRGFpIGJpZXUgTmd1eWVuIFZhbiBUaHV5ZXQ6ICJWaW5hc2hpbiBsYSBtb3Qga2lldSBMYSBU aGkgS2ltIE9hbmggcGhvbmcgZGFpIGNvIDEwMDAgbGFuIiBBbmggVmlldE5hbU5ldCkgDQoNCkRC UUggVHJhbiBCYSBUaGlldSAoREJRSCBIYWkgUGhvbmcsIFRvbmcgQ3VjIHRydW9uZyBUb25nIGN1 YyB4YXkgZHVuZyBsdWMgDQpsdW9uZywgQm8gQ29uZyBBbikgZHVvbmcgbmh1IGxhIG5ndW9pIGNv IHBoYXQgYmlldSB0dW9pIHNhbmcgbmhhdCwgcmFuZyAiSGllbiBuYXkgDQpjaHVuZyB0YSB2YW4g byB0cm9uZyB0YW0ga2llbSBzb2F0IGR1b2MgVmluYXNoaW4sIG5oaWV1IGRhaSBiaWV1IFF1b2Mg aG9pIGNodWEgaGluaCANCmR1bmcgaGV0IGR1b2MgVmluYXNoaW4gbmh1IHRoZSBuYW8sIHRodWMg c3UgVmluYXNoaW4gaGllbiBuYXkgbmhpZXUgY29uIHRhdSB2YW4gZGFuZyANCnh1YXQgeHVvbmcs IHZhbiBkYW5nIGR1b2MgZG9uZyBtb2ksIGNvbiBkYW0gc2FpIHBoYW0gdGhpIHRhIHh1IGx5IGhl dCBzdWMgbmdoaWVtIHR1YywgDQpjaHUga2hvbmcgcGhhaSBWaW5hc2hpbiB1IGFtIHZhIHRoYXQg dm9uZyBuaHUgbW90IHNvIGRhaSBiaWV1IHBoYXQgYmlldS4gQ28gcXVhbiBkaWV1IA0KdHJhIGRh IGxhbSB2aWVjIGhldCBzdWMgbmdoaWVtIHR1YywgdGF0IGNhIG5odW5nIGRvaSB0dW9uZyBzYWkg cGhhbSwgbmh1bmcgY29uIG5ndW9pIHNhaSANCnBoYW0gbyBkYXkgZGV1IGR1b2MgeHUgbHkgbW90 IGNhY2ggbmdoaWVtIG1pbmguIEJvIENoaW5oIHRyaSBjdW5nIGdpYW8gY2hvIFV5IGJhbiANCmtp ZW0gdHJhIFRydW5nIHVvbmcgdGllcCB0dWMga2V0IGhvcCB2b2kgY2FjIGNvIHF1YW4gY2h1YyBu YW5nIGRlIGxhbSBybyB0cmFjaCBuaGllbSANCmN1YSBjYWMgYm8sIGJhbiwgbmdhbmggbGllbiBx dWFuIi4gDQoNClRyb25nIHBoYXQgYmlldSBjdWEgbWluaCwgZHVvbmcgbmh1IG9uZyBUaGlldSBk YSAidm8gdGluaCIgcXVlbiBoYW4gbW9uIG5vIGtob25nIGxvIA0KbWEgY2EgZGF0IG51b2MgZGFu ZyBwaGFpIGdhbmggY2hpdSB2aSBuaHVuZyBzYWkgbGFtIG8gVmluYXNoaW4uDQoNClhlbSByYSwg dHJvbmcgcGhhdCBiaWV1IGN1YSBEQiBUcmFuIEJhIFRoaWV1LCBjbyBjYW0gZ2lhYyBvbmcga2hv bmcgbXVvbiBRdW9jIGhvaSANCnZhbyBjdW9jLCBtYSBjdSBkZSBVeSBiYW4ga2llbSB0cmEgbGFt IHZpZWMgbWEgdGhvaS4NCg0KU2UgY28gbmd1b2kgYmFuIGtob2FuLCB0YWkgc2FvIERCIFRoaWV1 IGxhaSBraG9uZyBtdW9uIFF1b2MgaG9pIHRodWMgaGllbiB0b3QgaG9uIA0KY2h1YyBuYW5nIGdp YW0gc2F0IGN1YSBtaW5oPw0KDQpMaWV1IGtoaSBwaGF0IGJpZXUsIG9uZyBUaGlldSBkYW5nIGxh IG1vdCBEQlFILCBoYXkgbGEgbW90IFRvbmcgQ3VjIHRydW9uZyB0aHVvYyBCbyANCkNvbmcgYW4s IG9uZyBkYW5nIGxhIERCUUggaGF5IHRoYW5oIHZpZW4gY2hpbmggcGh1PyBDaGkgeGluIGdoaSBu aGFuIGtpZW4gbmdoaSBjdWEgDQpvbmcgVGhpZXU6ICJUb2kga2llbiBuZ2hpIHZvaSBRdW9jIGhv aSB5ZXUgY2F1IGxhbmggZGFvIFRhcCBkb2FuIFZpbmFzaGluIGNvIG1vdCBidW9pIA0KYmFvIGNh byB0cnV5ZW4gaGluaCB0cnVjIHRpZXAgdHJ1b2MgUXVvYyBob2kgZGUgY2hvIG5oYW4gZGFuIHZh IGNobyBkYWkgYmlldSBRdW9jIGhvaSANCnR1b25nIHRhbiB2ZSBWaW5hc2hpbiBoaWVuIG5heSwg a2hvbmcgcGhhaSBsYSBkZSB1IHUsIGNhYyBjYWMsIGtob25nIGJpZXQgZ2kgY2EgdGhpIGN1IG5v aSANCmxhbSBzYW8gcmF0IGtobyIuDQoNCk5ldSBraWVuIG5naGkgYXkgZHVvYyB0aHVjIGhpZW4s IGNvIGtoaSBkYXkgc2UgbGEgYnVvaSB0cnV5ZW4gaGluaCB0cnVjIHRpZXAgZHVvYyBkb25nIA0K ZGFvIGJhIGNvbiBkb24geGVtIG5oYXQuDQoNClhpbiBjaG9uIG5oYWMgdGhlbSBwaGF0IGJpZXUg Y3VhIG1vdCBEQlFIIG51YSwgREJRSCBOZ3V5ZW4gRHVjIEtpZW4gKFBobyBDaHUgDQp0aWNoIFVC TkQgdGluaCBTb2MgVHJhbmcpLiBQaGF0IGJpZXUgY3VhIG9uZyBkdW9jIGNodSB5ICJob24gbmd1 b2kiLCBib2kgdHJvbmcgY2h1YSANCmRheSAyIHR1YW4sIG9uZyBkYSBjbyBoYWkgY2FjaCBwaGF0 IGJpZXUgcmF0IGtoYWMgbmhhdS4gTmdheSAyMS8xMCwgdHJhbyBkb2kgdm9pIGJhbyBjaGksIA0K b25nIEtpZW4ga2hhbmcgZGluaCAiRHVuZyB2ZSBtYXQga2hvYSBob2Mga2luaCB0ZSB0aGkgTmhh IG51b2MgZGEgY2hvIFZpbmFzaGluIHBoYSANCnNhbiByb2ksIGNvIGRpZXUga2hvbmcgdHV5ZW4g Ym8gdGhvaSIsIGNvbiBob20gMi8xMSwgcGhhdCBiaWV1IHRhaSBob2kgdHJ1b25nIFF1b2MgaG9p LCANCm9uZyBsYWkgYmFvICJUaGVvIGNhYyBiYW8gY2FvIGhpZW4gbmF5IHRvbmcgdGFpIHNhbiBj byBjdWEgVmluYXNoaW4gbGEga2hvYW5nIDEwMy4wMDAgDQp0eSwgdG9uZyB0YWkgc2FuIG5vIGdo aSB0cmVuIHNvIHNhY2gga2UgdG9hbiBsYSBraG9hbmcgODYuMDAwIHR5LiBOaHUgdmF5IG5ldSBk dW5nIHZlIG1hdCANCmtpbmggdGUgY2FuIGRvaSBjdWEgVmluYXNoaW4gbGEgdmFuIGNvbiwgdm9u IGN1YSBjaHUgc28gaHV1IHZhbiBjb24sIG5vIGtob25nIHBoYWkgbWF0IA0KZGkgbmh1bmcgdmFu IGRlIG8gZGF5IGNodW5nIHRhIG5vaSB2b2kgbmhhdSBsYSBoaWV1IHF1YSB2b24gZGF1IHR1IGN1 YSB2b24gdmF5IGRvaSB2b2kgDQpUYXAgZG9hbiBWaW5hc2hpbiBuaHUgdGhlIG5hbywgY2h1IGto b25nIHBoYWkgVGFwIGRvYW4gVmluYXNoaW4gZGEgcGhhIHNhbiIuDQoNClRyb25nIGNodWEgZGF5 IDIgdHVhbiwgbW90IHRhcCBkb2FuIHR1IHBoYSBzYW4gcm9pIGxhaSB0aGFuaCBraG9uZyBwaGEg c2FuLCBjaGluaCB4YWMgDQp0aGVvIGxvaSBjdWEgb25nIGxhICJraG9uZyBwaGFpIGRhIHBoYSBz YW4iLiBOZ3VvaSBkYW4gY2hpdSBjaGV0IGtob25nIGJpZXQgdmkgbHkgZG8gZ2kgDQpvbmcgbGFp IHRoYXkgZG9pIHF1YW4gZGllbSAxODAgZG8gbmh1IHRoZT8gQ3VuZyBsYWkgcGhhaSBiYW4ga2hv YW4sIGtob25nIGJpZXQga2hpIG5hbyANCm9uZyBLaWVuIGxhIERCUUgsIGNvbiBraGkgbmFvIG9u ZyBkYW5nIGxhIFBobyBDaHUgdGljaCBVQk5EIGN1YSBtb3QgdGluaD8NCg0KTW90IGNhdSBob2kg eHVhIGN1IG5odW5nIGJ1b2MgcGhhaSBkYXQgcmEsIGxpZXUgbW90IERCUUggdGhhbSBnaWEgY2hp bmggcXV5ZW4gY28gYmkgDQoieHVuZyBkb3QgbG9pIGljaCIga2hpIHBoYXQgYmlldSBraG9uZz8g S2hvbmcgY2FuIGxhIEJvIHRydW9uZyBtb2kga2hvLCBjdSAiZGluaCIgZGVuIA0KY2hpbmggcXV5 ZW4gbGEga2hvIHJvaS4gRGFuaCByYW5nLCBjaGluaCBxdXllbiBjdWEgdGEgY3VuZyBsYSBjaGlu aCBxdXllbiAiZG8gZGFuLCB2aSANCmRhbiIsIG5odW5nIGtoYWkgbmllbSBhaSBsYSBkYW4gdGhp IG1lbmggbW9uZyBnaGUgbGFtLiANCg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4v MjAxMC0xMS0wNC10cmFjaC1uaGllbS1tdW9uLXRydXktY3VuZy1raG8gVGFjIGdpYTogRGllcCBW YW4gU29uDQoNClRyYWNoIG5oaWVtIG11b24gdHJ1eSBjdW5nIGtobw0KDQpUcm9uZyBtdWMgbmF5 IChEb2MgdGhlbSkgDQoqIFRyYWNoIG5oaWVtIG11b24gdHJ1eSBjdW5nIGtobw0KKiBYYSBsdSBz YWkgcXV5IHRyaW5oIGhheSBsb2kgdGFpIG9uZyB0cm9pPw0KKiBOZ3UgZGFuIG1vbmcgbHVhdA0K DQpWaSB0cmkgbGFuaCBkYW8sIHF1YW4gbHkgdHJvbmcgY2FjIGNvIHF1YW4gbmhhIG51b2Mga2hv bmcgcGhhaSBsYSBtb3QgZGFjIHF1eWVuLCBkbyBsYSANCm1vdCB2aSB0cmkgZGF5IHRoYWNoIHRo dWMgZGFuaCBjaG8gbmh1bmcgY2EgbmhhbiBjbyBob2FpIGJhbywgY28ga2hhdCB2b25nIHZhIGNv IG5oYW4gDQpjYWNoIG1hbmggbWU6IERhbSBoYW5oIGRvbmcsIGRhbSBjaGl1IHRyYWNoIG5oaWVt Lg0KDQpEYSBib25nIHRyYWNoIG5oaWVtOiBLaG9uZyBjbyBnaSBraG8gaGlldQ0KDQpPIGNhcCB0 cnVuZyB1b25nLCB2aWVjIHRydXkgdHJhY2ggbmhpZW0gcXVhbiBseSB2b2kgdHVuZyBibywgbmdh bmgsIHR1bmcgbGFuaCBkYW8gZGFuZyANCmxhIHZhbiBkZSBuYW4gZ2lhaS4gVHUgY2h1eWVuIHZl IHNpbmggYW4gdG9hbiB0aHVjIHBoYW0ga2hpIG5oaWV1IEJvIGN1bmcgZ2FjIGN1YSwgZGVuIA0K dHJhY2ggbmhpZW0gdm9pIFZpbmFzaGluLi4uIGRldSBuaHVjIG5ob2kuIFRhdCBjYSBxdXkgdmUg bG9pIGNvIGNoZSwgbWEgZGEgbGEgY28gY2hlLCB0aGkgDQpob2EgcmEgaG9hIGNhIGxhbmcuDQoN Ck8gZGlhIHBodW9uZywgY2h1eWVuIHF1eSB0cmFjaCBuaGllbSBjdW5nIGtob25nIGRlIGRhbmcg Z2kuIFRob2kgZ2lhbiBxdWEgZGEgeGF5IHJhIA0KbmhpZXUgdnUgZ2FwIGhvYSBnaXVhIGR1b25n IG1hIGhhdSBxdWEgbGFtIG5oaWV1IG5ndW9pIHR1IHZvbmcuIE5ndW9pIGRpIGR1b25nIGRlIGJp IA0KY2F5IHhhbmggbmdhIGRlLCBiaSBkYXkgZGllbiBkdXQgcm9pIHRydW5nIG5ndW9pIHZhIGJp IGdpYXQgY2hldDsgbW9pIGRheSBjbyBuZ3VvaSBsb24gdmEgDQplbSBiZSBkYW5nIGRpIHRoaSBi aSBsb3QgeHVvbmcgaG8gZ2EsICJobyB0dSB0aGFuIiBkbyB0aGkgY29uZyBhdSBkYW4gZGVuIHR1 IHZvbmcgZG8gaG8gDQpnYSB0aGlldSBuYXAgZGF5LCBzdXQgbHVuLi4uIEdhbiBkYXkgbmhhdCBs YSB2dSBjaGkgSGEgVGhpIFR1eWV0IE1haSB2YSB2YW8gaG8gZ2EgbmdhIHJhIA0KZHVvbmcgYmkg eGUgdGFpIGNhbiBjaGV0Li4uDQpEZW4gaG9tIG5heSwgZ2lhaSB0cmluaCB4dW5nIHF1YW5oIHZ1 IGNoZXQgdmkgaG8gZ2EgLCJobyB0dSB0aGFuIiBzdXQgbHVuIHRhIHRoYXkgbHVjIHRoaSANCnRy YWkgYm9uZyB0cmFjaCBuaGllbSBvIHhpIG5naGllcCBjYXAgdGhvYXQgbnVvYyBwaGlhIERvbmcg KHRodW9jIEN0eSBjYXAgdGhvYXQgbnVvYyANClRwKSBsdWMgdGhpIG8gVUJORCBRdWFuIFRodSBE dWMsIGhvYWMgbyBjaHUgZGF1IHR1Li4uDQoNCkRpZXUgbmF5IGRvaSB2b2kgdGh1YyB0cmFuZyBo b2F0IGRvbmcgY29uZyB2dSBoaWVuIG5heSBjdW5nIGtob25nIGNvIGdpIGtobyBoaWV1IQ0KDQoo QW5oOiBOaGlldSBkYXUgbW9pIHF1YW4gbHksIGtoaSB4YXkgcmEgdmFuIGRlIGFuIHRvYW4gdmUg c2luaCB0aHVjIHBoYW0sIHRydXkgdHJhY2ggbmhpZW0gY2hvIGFpPykgDQoNCk5vaSB2ZWNhYyB2 YW4gYmFuIHF1eSBkaW5oIHRyYWNoIG5oaWVtIGtoaSB4YXkgcmEgdGhpZXQgaGFpIGtoYSBjaHVu ZyBjaHVuZywgY2hvIG5lbiANCnRyZW4gdGh1YyB0ZSBoYXUgbmh1IGNodWEgY28gY29uZyBjaHVj IG5hbyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdmF0IGNoYXQsIHBoYXAgbHkga2hpIA0KbGFtIHNh aSwgdmkgcGhhbS4uLg0KDQpUaGkgZHUgbmh1IHRyb25nIGJvaSB0aHVvbmcgdGhpZXQgaGFpLCBj YWMgdmFuIGJhbiBjaGkgZGUgY2FwIGRvaSB2b2kgbXVjIGJvaSB0aHVvbmcsIA0KaG9hbiB0cmEs IHRodSB0dWMsLi4uIG5odW5nIGNodWEgZGUgY2FwIGRlbiBjYWNoIHhhYyBkaW5oIHRoaWV0IGhh aSBuaHUgdGhlIG5hby4gVGh1YyB0ZSANCnRoaWV0IGhhaSB4YXkgcmEgaGV0IHN1YyBkYSBkYW5n IHZhIHBodWMgdGFwLCBkaWVuIHJhIGRhbmcgbmF5IGhheSBkYW5nIGtoYWMsIGhpbmggdGh1YyAN Cm5heSBoYXkgaGluaCB0aHVjIGtoYWMsIGRvaSBob2kgY2FjIHF1eSBkaW5oIGN1YSBwaGFwIGx1 YXQgdmUgeGFjIGRpbmggdGhpZXQgaGFpIHZ1YSBjbyANCnRpbmgga2hhaSBxdWF0IGNhbywgdnVh IGNvIHRpbmggY3UgdGhlIGRlIHZhbiBkdW5nIG1vdCBjYWNoIHRob25nIG5oYXQgdmEgaGlldSBx dWEuDQoNCkhvbiBudWEsIGJvIG1heSBoYW5oIGNoaW5oIG5vaSByaWVuZyB2YSBjbyBxdWFuIG5o YSBudW9jIG5vaSBjaHVuZyBoaWVuIG5heSBjb24gaGFuIA0KY2hlIHZpIGNvIHN1IGNob25nIGNo ZW8sIGRvaSBsYXAgdmUgdGhhbSBxdXllbiwgbW9pIHF1YW4gaGUgcGh1YyB0YXAsIG5nYW5nIGRv YyBjaHVhIA0KY28gc3UgcGhhbiBjb25nLCBwaGFuIG5oaWVtIGdpdWEgY2FjIGNvIHF1YW4gdm9p IG5oYXUuLi4NCg0KKEFuaDogSG8gInR1IHRoYW4iIGhhIG1vbSBjaG8geGUgYnV5dC4gQW5oIFZp ZXROYW1OZXQuKSANCg0KVGF0IGNhIG5odW5nIHlldSB0byB0cmVuIHRvbmcgaG9wIGxhaSBkYSBn YXkga2hvIGtoYW4gbmhpZXUgdHJvbmcgdmllYyB4YWMgZGluaCB0cmFjaCANCm5oaWVtIHRodW9j IHZlIGFpLiBEbyBkbywgbmhhIG51b2MgY2FuIHBoYW4gZGluaCB0cmFjaCBuaGllbSBnaXVhIGNh IG5oYW4sIHRhcCB0aGUgdmEgDQpjbyBxdWFuIGRlIHZpZWMgeGFjIGRpbmggdHJhY2ggbmhpZW0g ZHVvYyB0aHVjIGhpZW4gY29uZyBtaW5oLCBybyByYW5nIGhvbi4NCg0KTmdvYWkgcmEgdmllYyBx dWkgdHJhY2ggbmhpZW0gY29uIGdhcCBtb3Qgc28ga2hvIGtoYW4gbmh1IHBoYWkgcGhhbiBiaWV0 IGR1b2MgdHJhY2ggDQpuaGllbSBkbyBsb2ksIHRyYWNoIG5oaWVtIGtob25nIGRvIGxvaSBuaHVu ZyBwaGFpIG1hYyBuaGllbiBjaGl1IHRyYWNoIG5oaWVtLCBsb2kgY29uZyANCnZ1LGxvIG5nb2Fp IGNvbmcgdnUsIGxvaSBjYSBuaGFuIHZhIHRvbmcgaG9wIGxvaSwgdG9uZyBob3AgdHJhY2ggbmhp ZW0uLi4NCg0KQ29uIHRoaWV1IHZhbmcgdHJhY2ggbmhpZW0gbmd1b2kgZHVuZyBkYXUNCg0KTWF0 IGR1IE5naGkgZGluaCAxNTcvMjAwNy9ORC1DUCB0cmFjaCBuaGllbSBuZ3VvaSBkdW5nIGRhdSBk YSBkdW9jIGJhbiBoYW5oLCB0dXkgDQpuaGllbiBjaHVhIGhpbmggdGhhbmggdGhvaSBxdXllbiB1 bmcgeHUga2hpIHhhYyBkaW5oIHRyYWNoIG5oaWVtLg0KDQpCbyBtYXkgdG8gY2h1YyBjdWEgbW90 IGNvIHF1YW4gY3VuZyBnaW9uZyBuaHUgbW90IGNvIHRoZSBzb25nLCBuZ2hpYSBsYSBibyBuYW8g cGhhaSANCmNoaSBodXkgdHUgY2hpLCBjaHUgdHUgY2hpIGtob25nIHRoZSBjaGkgaHV5IGJvIG5h by4gVmkgdmF5LCBuZ3VvaSBkdW5nIGRhdSBtb3QgY28gcXVhbiANCnBoYWkgY28gdHJhY2ggbmhp ZW0gdG9hbiBibyBtb2kgaG9hdCBkb25nIGN1YSBjbyBxdWFuIGRvLg0KDQpRdXllbiBsdWMgY29u ZywgeGV0IG8gZ29jIGRvIGtpbmggdGUgLSBjaGluaCB0cmkgbGEgbW90IG5ndW9uIGx1YyB4YSBo b2kgdm8gY3VuZyBsb24uIE5vIA0KcGhhaSBkdW9jIHN1IGR1bmcgbW90IGNhY2ggaGlldSBxdWEg dmEgdHVvbmcgdGhpY2ggdm9pIHh1IGh1b25nIHhheSBkdW5nIG1vdCBuZW4gDQpraW5oIHRlIHRo aSB0cnVvbmcgbyBWaWV0IE5hbTogUXV5ZW4gbHVjIHZhIHRyYWNoIG5oaWVtIHBoYWkgbWluaCBi YWNoLCBybyByYW5nLg0KDQpOaHVuZyB2aSB0cmkgbGFuaCBkYW8sIHF1YW4gbHkgdHJvbmcgY2Fj IGNvIHF1YW4gbmhhIG51b2Mga2hvbmcgcGhhaSBsYSBtb3QgZGFjIHF1eWVuLCANCmRvIGxhIG1v dCB2aSB0cmkgZGF5IHRoYWNoIHRodWMgZGFuaCBjaG8gbmh1bmcgY2EgbmhhbiBjbyBob2FpIGJh bywgY28ga2hhdCB2b25nIHZhIGNvIA0KbmhhbiBjYWNoIG1hbmggbWU6IERhbSBoYW5oIGRvbmcs IGRhbSBjaGl1IHRyYWNoIG5oaWVtIHZhIGx1b24geSB0aHVjIHJvIHJhbmcgcmFuZywgDQpobyBj byBkb2kgdHVvbmcgcGh1YyB2dSBsYSBuaGFuIGRhbi4gTG9pIGljaCBjdWEgaG8gZ2FuIHZvaSBj aGF0IGx1b25nIGRpY2ggdnUgY29uZyBtYSANCmhvIGN1bmcgdW5nIGNobyB4YSBob2kuIERvIGxh IGRpZW0gY290IGxvaSBjdWEgbW90IHhhIGhvaSBkYW4gY2h1Lg0KDQpUcmFjaCBuaGllbSB0aGkg Y28gdHJhY2ggbmhpZW0gdmUgZGFvIGx5LCB0cmFjaCBuaGllbSB2ZSBwaGFwIGx5IHZhIHRyYWNo IG5oaWVtIHZlIA0KY2hpbmggdHJpLiBWYSBuaHVuZyB0aHUgdHJhY2ggbmhpZW0gbmF5IGNoaSBj byBuZ2hpYSBraGkgY2FjIGNoZSB0YWkgdHVvbmcgdW5nIGNvIHRoZSBhcCANCmRhdCBkdW9jLiBC YW5nIGtob25nLCBjaHVuZyBjaGkgbGEgbmh1bmcgbG9pIGdpYW8gaHVhbiBraG9uZyBob24gdmEg a2hvbmcga2VtOiBhaSANCnRoaWNoIHRoaSB0aGVvLCBraG9uZyB0aGljaCB0aGkgdGhvaS4NCg0K VHJhY2ggbmhpZW0gcGhhcCBseSBsYSB0cmFjaCBuaGllbSB0cnVvYyBwaGFwIGx1YXQuIFRyYWNo IG5oaWVtIGNoaW5oIHRyaSB0cmFjaCBuaGllbSANCnRydW9jIGN1IHRyaS4gVGF0IGNhIG1vaSBj b25nIGRhbiBhaSBjdW5nIGRldSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdHJ1b2MgcGhhcCBsdWF0 Lg0KDQpNb2kgcXVhbiBoZSBnaXVhIHRyYWNoIG5oaWVtIGNhIG5oYW4gdmEgdGFwIHRoZSBraG9u ZyBwaGFpIGJhbyBnaW8gY3VuZyBkdW9jIHh1IGx5IA0KbW90IGNhY2ggaGFpIGhvYS4gVHJvbmcg aG9hdCBkb25nIGNvbmcgdnUgbGF1IG5heSB0cmFjaCBuaGllbSBjYSBuaGFuIGtob25nIHJvIHJh bmcsIA0Ka2hvbmcgZHVvYyBkZSBjYW8sIHRoYXQgcmEgY3VuZyBsYSBkaWV1IGRlIGhpZXUuDQoN ClRyb25nIHF1YSBraHUsIG1vdCB0aG9pIHRhIGRlIGNhbyBjaHUgbmdoaWEgdGFwIHRoZSBtb3Qg Y2FjaCB0aGFpIHF1YSwgY28gdGhlIGR1bmcgdHJvbmcgDQptb3QgZ2lhaSBkb2FuIGxpY2ggc3Us IG5nYXkgbmF5IGxhaSB0byByYSBraG9uZyBjb24gdGhpY2ggaG9wLiBIZSBsdXkgY3VhIG5vIGxh IHRyaWV0IHRpZXUgDQpjYSBuaGFuLCBsYW0gdGh1aSBjaG90IHN1eSBuZ2hpLCBzYW5nIGtpZW4s IGJhbiBzYWMgY3VhIHR1bmcgY2EgdGhlLg0KDQpHaW8gZGF5LCB2aWVjIGtob2kgcGh1YyBjaGUg ZG8gdHJhY2ggbmhpZW0gY2EgbmhhbiBuaGF0IGRpbmggZ2FwIGtobyBraGFuLCB0aG9pIHF1ZW4g ZGEgDQphbiBzYXUgZGVuIG11YyBkdW9jIHhlbSBsYSBoaWVuIG5oaWVuLiBQaGFpIGNvIHRob2kg Z2lhbiBkZSBkaWV1IGNoaW5oIGxhaSB0dSBjbyBjaGUgZGUgDQpiYXQsIGJvIG5oaWVtLCBkYW8g dGFvLCBibyB0cmkgZHVuZyBuZ3VvaSBkdW5nIHZpZWMsIHRoaWV0IGxhcCBjaGUgZG8gdHJhY2gg bmhpZW0gbmd1b2kgDQpkdW5nIGRhdS4NCg0KVmFuIGhvYSB0dSBjaHVjPw0KDQpMYXUgbmF5IGNo dW5nIHRhIHZhbiBjbyBxdWFuIG5pZW0gZ2FuIG5odSB0cm8gdGhhbmggY2hpbmggdGhvbmcgcmFu ZyBjaHVjIHZ1IGN1YSBtb3QgDQphaSBkbyBsYSBkbyBuaGFuIGRhbiB1eSB0aGFjIHZhIGRvIERh bmcgY2hpdSB0cmFjaCBuaGllbSB0cnVvYyBuaGFuIGRhbiBibyB0cmksIGJvIG5oaWVtIA0KaG9h YyBnaW9pIHRoaWV1IHJhIHVuZyBjdS4uLiBWb2kgcXVhbiBuaWVtIG5odSB2YXksIG5ndW9pIGNh biBibyBjb25nIGNodWMgeGVtIHZpZWMgYm8gDQp0cmksIGJvIG5oaWVtLCBsZW4geHVvbmcgcmEg dmFvIGxhIGNodXllbiBjdWEgdG8gY2h1YywgY29uIGJhbiB0aGFuIHRodSBkb25nIGNobyBkb2kg dG8gDQpjaHVjIHBoYW4gY29uZyBsYW0gdGhpIGxhbSwgbm9pIG5naGkgdGhpIG5naGkuDQoNCkNo dXllbiB0dSBjaHVjIG8gY2FjIG51b2MgZHVvYyB4ZW0gbGEgYmluaCB0aHVvbmcuIENhdSBiaSBz YXAsIHhlIGx1YSBkdW5nIG5oYXUsIGJvIA0KdHJ1b25nIGdpYW8gdGhvbmcgdHUgY2h1YyAoSGFu IFF1b2MsIEFuIERvKTsgcGhhdCBuZ29uIGtob25nIGNodWFuLCBtb3QgYm8gdHJ1b25nIA0KY3Vh IG5vaSBjYWMgaGFpIG5nYXkgdHVvaSBvIE5oYXQgY3VuZyB0dSBjaHVjLiBDaHV5ZW4gc3VhIGNv IG1lbGFtaW5lLCBjdWMgdHJ1b25nIEN1YyANCkNoYXQgbHVvbmcgVHJ1bmcgUXVvYyB0dSBjaHVj Lg0KDQpHYW4gZGF5LCBjaHV5ZW4gVmVkYW4gZ2F5IG8gbmhpZW0sIG5nYXkgY2Egbmh1bmcgZG9u ZyBzb25nIG5odSBzb25nIERheSwgc29uZyBDYXUsIA0Kc29uZyBUaGkgVmFpLCBrZW5oIFRoYW0g THVvbmcsIEJhIEJvIGJpICJnaWV0IGNoZXQiIHR1IG1heSBjaHVjIG5hbSBxdWEuLi4sIGNhYyB0 byANCmNodWMgY2EgbmhhbiBxdWFuIGx5IHZhIGJhbyB2ZSBtb2kgdHJ1b25nIG8gZGF1IHNhbyBr aG9uZyB0aGF5IGxlbiB0aWVuZz8gVmkgbmFuZyBsdWMgDQp5ZXUsIGJlbmggdm8gY2FtLCB0aGll dSB0cmFjaCBuaGllbSBoYXkgY28gZ2kgZ2kga2hhYyBudWEgbWEgbGFtIG5nbz8gQ2FpIGdpYSBw aGFpIHRyYSANCmRvIHRhYyBoYWkgbW9pIHRydW9uZyB0aGF0IHF1YSBkYXQhIFBoYWkgbWF0IDEw IG5hbSB0aWNoIGN1YyBjdXUgY2h1YSwgbW9pIHRydW9uZyBtb2kgDQpjbyB0aGUgdHJvIGxhaSBu aHUgY3UuDQoNClZpZWMgdHUgY2h1YyBraGkgdHUgdGhheSBtaW5oIGtob25nIGR1IG5hbmcgbHVj IGRhbSBuaGllbSB2aSB0cmkgY29uZyB0YWMgbGEgbW90IHN1IA0KdHJ1bmcgdGh1YywgZHVuZyBj YW0gcmF0IGRhbmcgY2hvIG1vaSBuZ3VvaSBzdXkgbmdoaS4gTW9uZyByYW5nIG5vIHRybyB0aGFu aCBjaHV5ZW4gDQpiaW5oIHRodW9uZyB2YSBjYW4gdGhpZXQgZGllbiByYSBvIGNhYyBjYXAgY2hp bmggcXV5ZW4uDQoNClZpZWMgdHUgY2h1YyB0cm9uZyBtb3Qga2hpYSBjYW5oIG5hbyBkbyBjdW5n IG5vaSBsZW4gbW90IGRpZXUgbGEgZHVvbmcgc3UgdGhheSBkdW9jIA0KdHJhY2ggbmhpZW0gY2Eg bmhhbiB0cnVvYyBuaHVuZyBiZSBib2ksIHNhaSBwaGFtLCB0aGFtIGNoaSBsYSBraG9uZyB0aGFu aCBjb25nIGN1YSBtb3QgDQpjaHUgdHJ1b25nLCBjaGluaCBzYWNoLg0KDQpUdSBjaHVjIHBoYWkg ZHVvYyB4ZW0gbGEgY2h1eWVuIGNhbiB0aGlldCwgYmluaCB0aHVvbmcgdHJvbmcgaG9hdCBkb25n IGNvbmcgdnUuDQoNCkNvIGxhbSBkdW9jIG5odW5nIGRpZXUgdHJlbiwgdGhpIG1vaSBtb25nIGto YWMgcGh1YyBkdW9jIGNhbiBiZW5oIGR1biBkYXkgdHJhY2ggbmhpZW0uDQoNCkNvIHkga2llbiBj aG8gcmFuZywgZG9pIGRlbiBsdWMgYm8gbWF5IHF1YW4gbHkgZHUgc3VjIGtoYWMgcGh1YyBuaHVu ZyBiYXQgY2FwIHRoaSBtb2kgDQpuZ2hpIGRlbiBsYW0gbmh1bmcgY29uZyB0cmluaCBob2FuaCB0 cmFuZyBjaG8gdHVvbmcgbGFpLiBOb2kgbmh1IHZheSBsYSBxdWEgY3VjIGRvYW4hDQoNCk5ldSBu ZW4gdGFpIGNoaW5oIGNobyBwaGVwLCBkdSBzdWMgY2hpdSBkdW5nLCBjb25nIHRyaW5oIGNhbiB0 aGlldCBwaHVjIHZ1IGNobyBwaGF0IHRyaWVuIA0Ka2luaCB0ZSB2YSBkYW4gc2luaCB0aGkgdmFu IHBoYWkgbGFtLiBOZW4gaGFuaCBjaGluaCBwaGFpIGNhaSBjYWNoIG5hbmcgbWluaCBsZW4gZGUg bGFtIA0KY2hvIHBodSBob3Agdm9pIGhvYW4gY2FuaCBoYW5oIGNoaW5oLCBkdSBzdWMgdmFuIGhh bmggbmVuIGtpbmggdGUgdmEgeGEgaG9pIGRhbmcgcGhhdCB0cmllbi4gDQoNCmh0dHA6Ly90dWFu dmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAtMTAtMjktcGhhdC1uZ29uLWhhbmgtZG9uZy1oYWkt dmktdGhpZXUtZ2lhLXZhLWxvbmctaG9uZy1uZ2FuLWNhbi0gVGFjIGdpYTogS3kgRHV5ZW4NCg0K IlRoaWV1IGx1b25nIHRhbSIsICJUaGlldSB0cmFjaCBuaGllbSIgLSB2YSAibG9uZyBob25nLi4u IG5nYW4gY2FuIg0KDQoiVHJhaSBjYW0iIGJvIHhpdCwgY29uIHRhdSBWaW5hc2hpbi4uLmRvdCBu aGllbiB0cm8gbGFpIHRyb25nIHR1YW4gcXVhLCB2b2kgbmh1bmcgZHUgbHVhbiANCmRhIGNoaWV1 LCBxdXlldCBsaWV0IHZhIHRoYW5nIHRoYW4sIG5odW5nIGRldSBraG9uZyB0aGUgdHJhbmggbmUg dmFuIGRlIGx1b25nIHRhbSB2YSANCnRyYWNoIG5oaWVtIGN1YSB0YXQgY2EgeGEgaG9pIHRydW9j IHZhbiBtZW5oIHF1b2MgZ2lhLiBWYSBkbyBjdW5nIGxhIHRob25nIGRpZXAgY3VhIA0KUGhhdCBu Z29uIHZhIEhhbmggZG9uZyB0dWFuIG5heSBndWkgdG9pIGJhbiBkb2MuDQoNCiogUE4mSEQ6IFZp bmFzaGluIGtob25nIHRoZSBkYW0gdmEgdGh1IGd1aSBuaHVuZyBsaW5oIGhvbiBkYXUga2hvDQoq IEhhaSBseSBkbyBjaG8gcGhlcCBkb25nIGN1YSBkdSBhbiBhbHVtaW5hDQoqIEhhbmcgbG9hdCBu aGFuIHNpIGtpZW4gbmdoaSB0YW0gbmd1bmcga2hhaSB0aGFjIGJvLXhpdA0KDQpCbyB4aXQuLi5u byBibyB4aXQuLi5ibyB4aXQuLi5uby4uLm5vLi4ubm8uLg0KDQpDbyBtb3QgbG9haSB0YWkgbmd1 eWVuIGR1b2MgZGFvIGJvaSBsZW4gdHUgdHJvbmcgbG9uZyBkYXQsIHZhIGR1b2Mgc2luaCB0aGFu aCBoaW5oIGhhaSCWIA0KbW90IGR1IGFuIGxvbiwgbmdheSBsYXAgdHVjLCBubyB0cm8gdGhhbmgg bW9pIHF1YW4gdGFtIGxvIGxhbmcgbG9uIHZvaSB4YSBob2kuIERvIGxhIGJvLSANCnhpdCBvIFRh eSBOZ3V5ZW4uDQoNClRhaSBuZ3V5ZW4gLSBjb24gZGUgY3VhIGRhdCBudW9jLCBiYW8gZ2lvIGN1 bmcgaHVhIGhlbiBzdSB0cnUgcGh1LCBzdSBnaWF1IGNvIGNobyBxdW9jIA0KZ2lhLiBOaHVuZyAn Y2h1IHRhaSBsaWVuIHZvaSBjaHUgdGFpIG1vdCB2YW4iLSBuZ2F5IGtoaSBtb2kgeHVhdCBoaWVu LCBkdSBhbiBiby14aXQgbGFpIA0KY2h1YSBjaGFwIG5ndXkgY28gbGFtIHBoYW4gdGFtIHhhIGhv aS4gTmdheSBjYSBnaXVhIGxhbmggZGFvIHZvaSBsYW5oIGRhby4gR2l1YSBuaHVuZyANCnF1YW4g Y2h1YyB2YSB0cmkgdGh1YyB0cm9uZyBjdW5nIG1vdCBsaW5oIHZ1YyBjaHV5ZW4gbW9uLiBBaSBj dW5nIGNvIGx5IGxlIGRlIGJpZW4gbWluaCANCmtoYSBtYW5oIG1lIGNobyBxdWFuIGRpZW0gY3Vh IG1pbmguDQoNCkNhaSBjaHUgYm8teGl0IG5vICJuaGF5IGNhbSIgdmEgZGUgbGFtIHRvbiB0aHVv bmcgY29uIG5ndW9pIGRlbiBtdWMsIG5ldSBtb3QgbmhhIA0KdmFuLCBuaGEgYmFvIG5hbyBkbyBu YW8gYmVuaCB2dWMgY2h1IHRydW9uZyBraGFpIHRoYWMgYm8teGl0LCBsYXAgdHVjIGJpIGR1IGx1 YW4gc28gZG9uZyANCnhhIGhvaSBrZXQgdG9pICJ2YW4gbm8sIGJhbyBubyIuLi4NCg0KVHUgbHVj IG5hbywgYm8teGl0IGJvbmcgbmh1IG1vdCAidHJhaSBjYW0iLiBUaGVtICJkdW5nIGNoYW0iIGxh bSwgbmh1bmcgZG8gZGFtIGFpLCANCmtlIGNhIGtob25nIGl0IGJhYyB0cmkgdGh1YyByYXQgZ2Eg bGFuZywgZGFvIGhvYSwgZGFuZyBkby4uLiBob2kgeHVhbiwgZGFtIG1vbiBtZW4gZGVuIA0KZ2Fu Lg0KDQpUaGUgbmh1bmcgbW9pIGRheSwgc2F1IG5odW5nIHRoYW5nIG5nYXkgaW0gYW5nLCBhbSB1 YywgYm9uZyAidHJhaSBjYW0iIGJvLXhpdCBiaSAibG8gDQpoYW5nIiwgYmF0IGNoYXAgbm8gZGFu ZyBidW9jIHBoYWkgIm11IG5pIGNoZSB0YWkiIHRoYXQgY2hhdC4NCg0KTmd1b2kgbGFtICJsbyIs IGxhaSBraG9uZyBwaGFpIGNhYyBiYWMgdHJpIHRodWMgbmd1b2kgVmlldCBtYXUgZG8gZGEgdmFu Zy4gTWEgbGEgbmd1b2kgDQpIdW5nYXJpLCBtdWkgY2FvLCBkYSB0cmFuZyBvIENoYXUgQXUgeGEg eG9pLiBEbyBsYSBib2kgc3UgY28gdGhhbSBob2EgYnVuIGRvIGN1YSBudW9jIA0KSHVuZyB2dWEg eGF5IHJhLiBIb24gbW90IHRyaWV1IG0zIGJ1biBkbyBkb2MgaGFpIHRyYW4ga2hvaSBiZSBjaHVh LCBvIG5oaWVtIGNhIG1vdCANCnZ1bmcgcm9uZyBkZW4gNDAga20yLiBOb2kgY2hvIGR1bmcgaG9u LCB0cmFpIGNhbSBibyB4aXQgdHUgdm8gcmEgbmh1bmcgaGllbSBob2EgZGFuZyANCm1hbmcgdHJv bmcgbWluaCBubywgZG8gY29uZyBuZ2hlIHZhIHRoaWV0IGJpIGxhYyBoYXUgbWEgbnVvYyBIdW5n IGR1IG5oYXAuDQoNCkJ1aSBkbyBwaHUga2luIG5odW5nIG5nb2kgbGFuZywgbmh1bmcgY2FuaCBk b25nLCBuaHVuZyBtYW5oIHZ1b24gY3VhIG5ndW9pIGRhbiANCkh1bmcuIERvbmcgYnVuIGRvYyBo YWkgZGEgY2hheSBsYW4gdG9pIHNvbmcgRGFudXlwIChkYWkgMi44NTAga20pLCBjb24gc29uZyBs b24gdGh1IA0KaGFpIG8gQ2hhdSBBdSwgY2hheSBxdWEgSHVuZ2FyaSwgWGVjYmlhLCBCdW5nYXJp LCBSdW1hbmkgdmEgVWNyYWluYS4uLiB0cnVvYyBraGkgZG8gcmEgDQpCaWVuIERlbi4gRG9uZyBi dW4gZG8gdGhlbyBzb25nIERhbnV5cCBraGllbiBjb24gc29uZyB4YW5oIHRobyBtb25nIHRodW8g bmFvIGJpZW4gDQp0aGFuaCBjb24gc29uZyAiZGF1IG1hdCBkbyIuIFN1IGNvIG5heSBraG9uZyBj aGkga2hpZW4gbnVvYyBIdW5nLCBtYSBiYXQgY3UgcXVvYyBnaWEgDQpuYW8gY28gImRhbiBkaXUi IHZvaSBibyB4aXQgZGV1IHJhdCBsbyBuZ2FpLg0KDQooQW5oOiBCdW4gZG8pDQoNCkNoaW5oIHZp IHRoZSwgbW90IGxvYXQgY2FjIGJhbyBkdWEga2hvbmcgbmd1bmcgbmdoaSB2ZSAidHJhaSBjYW0i IGJvIHhpdCB2b2kgbmh1bmcgDQp0aG9uZyB0aW4gbm9uZyBib25nIGxpZW4gcXVhbiB2YW4gbWVu aCBxdW9jIGdpYS4gRGFuZyBjaHUgeSB2YSBub2kgYmF0IG5oYXQsIGNvIHRoZW0gDQpuaGlldSBj YW4gYm8gbGFuaCBkYW8gdG8gcm8gdGhhaSBkbyB2YSBuaGlldCBodXlldCBjdWEgbWluaCwga3kg dGVuIGtpZW4gbmdoaSB0YW0gZHVuZyANCmtoYWkgdGhhYyBibyB4aXQsIG5odSBQaG8gQ1QgbnVv YyBOZ3V5ZW4gVGhpIEJpbmgsIG1vdCBuaGEgbGFuaCBkYW8gY2FwIGNhbywgbmh1IEdTIA0KSG8g TmdvYyBEYWksIEdTIENodSBIYW8sIEdTIERhbmcgSHVuZyBWby4uLmNhYyB0cmkgdGh1YyBjbyB0 ZW4gdHVvaSB0dW5nIGxhbSBxdWFuIA0KbHkuIFRpZW5nIG5vaSBwaGFuIGJpZW4gcXVhbmggInRy YWkgY2FtIiB4YW5oIG5odSBsYSBydW5nLi4uIA0KDQpOZ2F5IDI1LTEwLCBWaWV0TmFtTmV0IGNv IGJhaTogIkhhaSBseSBkbyBjaG8gcGhlcCBkb25nIGN1YSBkdSBhbiBhbHVtaW5hIiBjdWEgVFMg DQpOZ3V5ZW4gVGhhbmggU29uLCBHaWFtIGRvYyBDb25nIHR5IE5hbmcgbHVvbmcgc29uZyBIb25n LCB0aHVvYyB0YXAgZG9hbiBUS1YgliANCmNodSBkYXUgdHUgZHUgYW4gYm8geGl0IFRheSBOZ3V5 ZW4sIGNhbmggYmFvICJOZ3V5IGNvIHR1IGNvbmcgbmdoZSB0aGFpIGJ1biBkbzsgdmEgcnVpIA0K cm8gdmUga2luaCB0ZSIuIENhaSBuZ3V5IGNvIHNlIGtob25nIHRyYW5oIGtob2kgeHVhdCBwaGF0 IHR1IHN1IG5oYXAga2hhdSBjYWMgdGhpZXQgYmkgbGFuIA0KY29uZyBuZ2hlIGtoYWkgdGhhYyBi byB4aXQgbGFuIHh1IGx5IGJ1biBkbyBsYWMgaGF1LSBiaSBraWNoIGN1YSBjYWMgbnVvYyBuZ2hl byBkYW5nIA0KcGhhdCB0cmllbiwgdHJvbmcgYm9pIGNhbmggdGhpZW4gbmhpZW4sIHRoaWVuIHRh aSBuZ2F5IGNhbmcgdGhvYXQga2hvaSB0YW0ga2llbSBzb2F0IGN1YSANCmNvbiBuZ3VvaToNCg0K VGhlIG5odW5nLCB0cnVvYyBuaHVuZyBsbyBuZ2FpIGN1YSB4YSBob2ksIEJvIHRydW9uZyBUYWkg Tmd1eWVuIC0gTW9pIHRydW9uZyBQaGFtIA0KS2hvaSBOZ3V5ZW4gZGEgdHJhbiBhbiBkdSBsdWFu IGJhbmcgbW90IHBoYXQgbmdvbiBraGEgYW4gdHVvbmc6ICJCbyBUTk1UIGtoYW5nIA0KZGluaCwg aGFpIGtodSB4dSBseSBidW4gZG8gbmF5IChvIFRheSBOZ3V5ZW4tIEtEKSBsYSBhbiB0b2FuLiBU dXkgbmhpZW4sIHZpIGNodWEgdmFuIA0KaGFuaCBuZW4gY2h1bmcgdG9pIG1vaSBraGFuZyBkaW5o IHN1IGFuIHRvYW4gdHJlbiBseSB0aHV5ZXQuLi5TYXUga2hpIGRpIGtoYW8gc2F0IG8gDQpIdW5n YXJ5LCBibyBzZSB0aWVwIHR1YyBuZ2hpZW4gY3V1IGNoaSBzbyBhbiB0b2FuIG8gaGFpIGtodSB4 dSBseSBidW4gZG8iDQoNCk1vdCBzdSBraGFuZyBkaW5oIGN1YSB2aSBxdWFuIGNodWMgZGF1IG5n YW5oIHZlIG1vaSB0cnVvbmcgY3VuZyByYXQuLi5seSB0aHV5ZXQhDQoNCk5odW5nIGxhcCBsdWFu IGN1YSBCbyB0cnVvbmcgUGhhbSBLaG9pIE5ndXllbiBkYSBiaSBjaGluaCBuZ3VvaSB0cm9uZyBj dW9jLCBvbmcgDQpOZ3V5ZW4gVmFuIEJhbiwgbmd1eWVuIFRydW9uZyBiYW4gRHUgYW4gbmhvbSBj dWEgVEtWLCBuZ3VvaSB0dW5nIHRoYW0gZ2lhIHRyaWVuIA0Ka2hhaSBkdSBhbiBUYW4gUmFpLCBw aGFuIGJhYzogIlBodW9uZyBwaGFwIHh1IGx5IGJ1biBkbyBraWV1IHRoYWkgdW90IGRhbmcgYXAg ZHVuZyBkb2kgDQp2b2kgaGFpIGR1IGFuIGJvIHhpdCBUYXkgTmd1eWVuIGtob25nIHBoYWkgbGEg cGh1b25nIHBoYXAgdGllbiB0aWVuLiBNYWMgZHUgVEtWIGNobyANCmJpZXQgdGh1YyBoaWVuIHRo ZW8ga2lldSBjaGlhIG8sIG5odW5nIG1vaSBvIHZhbiBsYSBtb3QgaG8gYnVuIGRvIHZhIGNhYyBo byBuaG8gbmF5IG5hbSANCnRyb25nIG1vdCBobyBidW4gZG8gbG9uLiBUdWMgbmV1IGNvIGJpZW4g ZG9uZyB0aGllbiB0YWkgdGhpIGNhYyBobyBuYXkgc2UgYmkgdGFuIHBoYSBuaHUgDQpuaGF1LCBu Z3V5IGNvIHRoYW0gaG9hIHZhbiBjbyB0aGUgeGF5IHJhIG5odSBvIEh1bmdhcnkuLi4NCg0KQ29u IG9uZyBOZ3V5ZW4gS2hhYyBWaW5oIChDaHUgdGljaCBUb25nIGhvaSBEaWEgY2hhdCBWTik6DQoN ClBoYWkgZHVuZyBsYWkgZGUgZGFuaCBnaWEgdGFjIGRvbmcuIE5ldSB4YXkgcmEgdm8gaG8gY2h1 YSBidW4gZG8gbyBUYXkgbmd1eWVuIHNlIHJhdCANCm5ndXkgaGllbSwgdmkgY2hhdCBidW4gZG8g dGhhbSB0aGF1IHZhbyB0YXQgY2EgbG9wIGRhdCBkYSB0cm9uZyBraHUgdnVjIFRheSBuZ3V5ZW4g dmEgDQphbmggaHVvbmcgZGVuIGRhdSBuZ3VvbiBoZSB0aG9uZyBzb25nIERvbmcgTmFpLiBOZXUg eGF5IHJhIHRydW9uZyBob3Agbmh1IHZheSB0aGkgDQpoYW5nIHRyaWV1IG5ndW9pIGRhbiBzZSBi aSBhbmggaHVvbmcgYm9pIGNhYyBob2EgY2hhdCBkb2MgaGFpIHR1IGNhYyBtbyBibyB4aXQuIC4N Cg0KQ3VuZyBraG9uZyBwaGFpIGNoaSBjbyBIdW5nYXJpLCBtYSBuZ2F5IG8gVHJ1bmcgUXVvYzog IkNoaW5oIHBodSBUcnVuZyBRdW9jIGRhIA0KZG9uZyBjdWEgbmhpZXUgbW8ga2hhaSB0aGFjIGJv LXhpdCB0cmVuIGxhbmggdGhvIFRydW5nIFF1b2MgZGUgdHJhbmggdGhhbSBob2EgbW9pIA0KdHJ1 b25nLg0KDQooQW5oOiBLaGFpIHRoYWMgYm8geGl0LiBBbmggRGF0IFZpZXQpIA0KDQpOaHVuZyB0 YW0gZ3VvbmcgYnVuIGRvIHhhIGNvLCBnYW4gY28sIG5odW5nIHN1IGNhbiBnaWFuIHRoaWV0IHRo YSBjdWEgZHUgbHVhbiBraG9uZyANCmJpZXQgY28ga2V0IGdhbiBkdW9jIHN1IHBoYW4gdGFtIHhh IGhvaSwgYmF0IGRhdSB0dSBjYWkgInRyYWkgY2FtIiBkaWEgZGFuZyBuYXkga2hvbmc/DQoNCk1v aSBkYXksIG9uZyBMZSBEdW9uZyBRdWFuZywgVGh1IHRydW9uZyBCbyBDb25nIHRodW9uZyBraWVt IENodSB0aWNoIEhEUVQgVGFwIA0KZG9hbiBDb25nIG5naGllcCB0aGFuIC0ga2hvYW5nIHNhbiBW TiAoVEtWKSwgcGhhdCBiaWV1LCBuZXUgQ2hpbmggcGh1IGJhbyBkdW5nIHRoaSANCmR1IGFuIHNl IGR1b2MgZHVuZyAoVHVvaSB0cmUsIG5nYXkgMjQtMTApDQoNCkNvbiBCbyB0cnVvbmcsIENodSBu aGllbSBWUENQIE5ndXllbiBYdWFuIFBodWMgY2hvIGhheSwgQ2hpbmggcGh1IHNlIGxhbmcgbmdo ZSANCmRlIHRoYW8gbHVhbiB0aGVtIG5oYW0gZGkgZGVuIHF1eWV0IHNhY2ggY3VvaSBjdW5nIHRy b25nIHZhbiBkZSBuYXkuDQoNCkNhdSBjaHV5ZW4gYm8geGl0IGN1YSB0aG9pIGhpZW4gZGFpIHNh byBnaW9uZyBjYXUgY2h1eWVuIHRpbmggeWV1IHRodW8gaG9uZyBob2FuZyBjdWEgDQpvbmcgQWRh bSB2YSBiYSBFdmEgbG8gYW4gdHJhaSBjYW0gZGVuIHRoZS4gTmh1bmcgaG9hIHJhLCBvbmcgQWRh bSB2YSBiYSBFdmEgY3VuZyBjbyANCmx1YyAidGFuIGxhbmggdGluaCB5ZXUiPyBDdW5nIGNvIGx1 YyBjYSBoYWkga2hvbmcgY3VuZyBuaGluIHZlIG1vdCBwaGlhPw0KDQpWaSBxdWFuIG5pZW0gdmUg dGluaCB5ZXUsIHZpIGNvbiB0aW0sIGhheSB2aSBsb2kgaWNoIGtoYWMgbmhhdT8NCg0KSGF5IGdp byBkZW4gbHVjLCBjYSB4YSBob2kgdGEgY3VuZyBwaGFpLi4uIGJvaSBob2EgZGUgdGltIHN1IG1h eSBydWk6DQpCbyB4aXQuLi4gbm8gYm8geGkuLi4gYm8geGl0Li4ubm8gYm8geGl0Li4uYm8geGl0 Li4ubm8uLi5uby4uLm5vLi5iby4uLnhpdA0KDQpDYWMgIlRoaWV1IGdpYSIgdHJhbmggY2FpLi4u DQoNCk5odW5nIG5nYXkgcXVhLCBjdW9pIGN1bmcsIHJvaSB0YWkgbmFuIGJhdCBuZ28gY3VhIGNo aWVjIHhlIGtoYWNoIGJpIGx1IGN1b24gdHJvaSB4dW9uZyANCnNvbmcgTGFtLCBkb2FuIHhhIFh1 YW4gTGFtLCBOZ2hpIFh1YW4gKEhhIFRpbmgpIGN1bmcgdGFtIGtoZXAgbGFpIHZvaSBudW9jIG1h dCBjdWEgDQpoYW5nIHRyaWV1IGNvbiB0aW0gZGF1IGRvbiBkb2kgdGhlbyB0dW5nIG5nYXksIHR1 bmcgZ2lvLCB0dW5nIHBodXQuIFRyYW4gVmFuIFRydW9uZywgDQprZSBsYWkgeGUgcGhpZXUgbHV1 IHZhIGNvaSB0aHVvbmcgc2luaCBtYW5nIGhhbmgga2hhY2ggZGEgYmkgYmF0IHZhIGJpIGtob2kg dG8uIENvbiBkdW9uZyANCnN1IG5naGllcCBjdWEgbmhhbiB2YXQgbmF5IGRhIGtob25nIHRoZSBk YWkgbmh1IGNhaSB0ZW4gVHJ1b25nIGN1YSBhbmggdGEuDQoNCk5odW5nIGJheSBnaW8sIHZvIGJp IGtpY2ggdmUgbHVvbmcgdGFtIHZhIHRyYWNoIG5oaWVtIGNvbiBuZ3VvaSBtb2kgbGEgbHVjIHZl biBjYW5oIA0KbWFuIHRhbmcuIERhIGJhdCBkYXUgY28gc3UgdHJhbmggY2FpLCB0aGFuaCBtaW5o LCB0aGFtIGNoaSAidGFuZyBsb2kiIGNobyBuaGF1IGdpdWEgY2FjIA0KIlRoaWV1IGdpYSItIFRo aWV1IFRyYWNoIG5oaWVuLCBUaGlldSBMdW9uZyB0YW0sIHZpIGtob25nIGFpIHRoYXkgbWluaCBj byBsb2kgdm9pIDIwIA0KbmhhbiBtYW5nIHZvIHRvaSBib25nIG5oaWVuIHBoYWkgY2hldCBraWEu DQoNCkNhdSB0cmEgbG9pIHBobyBiaWVuIG1hIGNhYyBwaG9uZyB2aWVuIFZpZXROYW1OZXQsIG5n YXkgMjItMTAgbmhhbiBkdW9jIGxhOiAiQ2h1bmcgDQp0b2kgZGEgbGFtIGhldCB0cmFjaCBuaGll bSIuDQoNCk9uZyBOZ3V5ZW4gVHJ1b25nIFR1b25nIChDb25nIHR5IDQ3NCk6ICJTYW8gY2hhbiBj aHVuZyB0b2kgY28gcXV5ZW4gbGFwIGNodSBraG9uZyANCmNvIHF1eWVuIGNoYW4gaGF5IGNobyB4 ZSBkaSwgY2FpIGRvIGxhIHF1eWVuIGN1YSBDU0dULiBDaHVuZyB0b2kgdGhpIGtob25nIGNvIGJp ZW4sIA0Ka2hvbmcgY28gdGhlLCBraG9uZyBjbyBjaGUgdGFpIGRlIHh1IGx5Li4uQ2h1bmcgdG9p IGRhIGxhbSBoZXQgY2h1YyBuYW5nIG5oaWVtIHYuLi5OZXUgDQpsYWkgeGUgY2FtIHRoYXkga2hv bmcgYW4gdG9hbiB0aGkgcGhhaSB0dSBiaWV0IGRlIGR1bmcuIENodW5nIHRvaSBraG9uZyBjbyBx dXllbiBjaGFuIHhlIi4NCg0KQ29uIG9uZyBOZ3V5ZW4gVGhhbmggQmFvLCBUcnVvbmcgcGhvbmcg Q1NHVCBIYSBUaW5oIGNobyByYW5nLCB2aWVjIHBoYW4gbHVvbmcsIA0KbGFwIHNhbyBjaGFuIGxh IHRyYWNoIG5oaWVtIGN1YSBuZ2FuaCBnaWFvIHRob25nIGR1b25nIGJvOiAiSGFuZyBuZ2hpbiBj aGllYyB4ZSB0YWMgDQpkb24gZG9uZywga2hpIGtob25nIGNvIHNhbyB0aGkga2hvbmcgdGhlIGNo YW4gZHVvYy4gVGhhaSBkbyBjdWEgbGFpIHhlLCB0aGFpIGRvIGN1YSANCmtoYWNoIGtob25nIGhv cCB0YWMgdHJvbmcgdmllYyBwaG9pIGhvcCBuZ2FuIGNoYW4geGUuIENvIG5odW5nIHhlIGRhbSB0 aGFuZyB2YW8gDQpDU0dUIGRlIGNoYXkuLi5LaGkgeGUgQ1NHVCBxdWF5IG5nYW5nIGdpdWEgZHVv bmcsIGxhaSB4ZSB2YW4gbGFjaCB0cmFuaCBkZSB2dW90IGRpLi4uIg0KDQooQW5oOiAnQ2h1bmcg dG9pIGRhIGxhbSBoZXQgdHJhY2ggbmhpZW0nLCBBbmggTGFvIERvbmcpIA0KDQpUcnVvYyBkbywg a2hpIHRob25nIHRpbiB2b2kgYmFvIGNoaSwgb25nIEJhbyBsYWkgbm9pIHJhbmcsIGNoaWVjIHhl IHRyZW4gZGEgYmF0IGNoYXAgaGlldSANCmxlbmggY3VhIENHU1QgZGUgY2hheSB2YW8gZG9hbiBk dW9uZyBuZ2FwIHNhdSBudW9jLiBDU0dUIGNvIGR1b2kgdGhlbyBuaHVuZyBkbyANCnRyb2kgdG9p IG5lbiBraG9uZyBiYXQgZHVvYz8gDQoNCkN1IHRoZW8gY2FpIGRhIG5heSwgY2FpIGxvZ2ljIG5h eSwgdGhpIGxvaSBjaGluaCBsYSBjYWkgeGUga2hhY2ggYmVwIGR1bSBkbywgdmEgaG9hbmcgc28g DQpkYSBuYW0gbGltIHZvaSBjYWkgYnVuZyBkYXkgY2F0IHN1b3QgbmhpZXUgbmdheSBkdW9pIGRv bmcgbHUgZHUsIGxvaSB0YWkgbmh1bmcgbmd1b2kgDQpraGFjaC0gYWkgYmFvIGRhIGxlbiBjaGll YyB4ZSBheS0gZGUgYmkgbHUgY3Vvbi4NCg0KQ29uIG5ldSB0aGVvIGxlIHBoYWkgZGFvIGx5IHRo b25nIHRodW9uZywgdGhpIG1hYyBkdSwgY2hpZWMgeGUgZGEgZHVvYyB0cnVjIHZvdCwgZHVvYyAN CnN1YSBjaHVhLCB2YSBtYWMgZHUgaGF1IGhldCBuYW4gbmhhbiB4YXUgc28gZGEgdHJvIHZlIHZv aSBjYXQgYnVpLCBoYWkgb25nICJUaGlldSBnaWEiIA0Ka2hvbmcgbmVuIHRyYW5oIGNhaSBtYSBu ZW4gdHUgbmhpbiBsYWkgbWluaCwgdHJ1b2Mga2hpIGNvIGNoaWVjIGNhdSwgdHJ1YyBjYWMgb25n IHJhIGFuaCANCnNhbmcgY3VhIHBoYXAgbHVhdC4NCg0KTmd1b2kgdmlldCBiYWkgbmF5IGNoaSBk YXkgZHV0LCB4b3QgeGEgbW90IGRpZXU6IFRhaSBzYW8gZGF0IG51b2MgdGEsIGRhYyBiaWV0IGRh aSBkYXQgbWllbiANClRydW5nLCBsdW9uIHBoYWkgc29uZyBjaHVuZyB2b2kgYmFvLCBsdSwgY2Fj IHRpbmggY28gY2FjIHRydW5nIHRhbSBjdXUgaG8gcGhvbmcga2hpIGJhbyANCmx1dCB4YXkgcmEs IG5odW5nIGxhaSBjaHVhIGJhbyBnaW8gbmdoaSBkZW4gdmllYyBzYW4geHVhdCBhbyBwaGFvIGNo byBuZ3VvaSBkYW4gZHUgDQpwaG9uZyAoZ2lvbmcgbmh1IG11IGJhbyBoaWVtIGNobyBuZ3VvaSBk aSB4ZSBtYXkgdGFpIGNhYyBkbyB0aGkpLg0KDQpOZXUgY28gYW8gcGhhbyBjaG8gbW9pIG5ndW9p IGRhbiwgbG9uLCBiZSwgZ2lhLCB0cmUuLi50aGkga2hpIGx1IHRvaSwgdHJvbmcga2hpIGNobyBk b2kgY3V1IA0KaG8sIG5ndW9pIGRhbiwgbmhhdCBsYSB0cmUgZW0sIHBodSBudSwgbmd1b2kgZ2lh IHlldS4uLmNvIHRoZSBjaHUgZG9uZyBjaHVuZyBzb25nIHZvaSBsdSwgDQpraG9uZyBkZW4gbm9p IHBoYWkgY2hldCBvYW4gdW9uZyBuaHUgbmh1bmcgbmdheSBxdWE/IENvIHF1YSBraG8ga2hvbmcg a2hpIHBob25nIGhvIA0KY2hvIG5ndW9pIGRhbiwgYmFuZyBtb3QgZ2lhaSBwaGFwIGRvbiBnaWFu IHZhIGtob25nIHF1YSBkYXQgYXk/DQoNCkxvbmcgaG9uZyB2YS4uLiBuZ2FuIGNhbg0KDQpWYSB2 b2kgY2FpIGRhIHRyYW5oIGNhaSBnaXVhIGhhaSBvbmcgIlRoaWV1IGdpYSIgZGFuZyBob2FuaCBo YW5oIG5nYW5nIGRvYyBvIGJhdCBjdSBsaW5oIA0KdnVjIG5hbyBoaWVuIG5heSwgeGEgaG9pIHRh IGxhaSBkYW5nIHBoYWkgbGFuZyBuZ2hlLCBwaGFpIGNodWFuIGJpIG1vdCBjYWkgY2F1IHRydWMg a2hhYyCWIGNvIGRhaS4gDQpCb2kgY2FpIGNvbiB0YXUga2hvbmcgbG8gVmluYXNoaW4gdmFuIGNo dWEgdGhvYXQga2hvaSBuZ3V5IGNvIGJpIGNoaW0sIHRyb25nIGtoaSBoYWkgb25nIA0KVGhpZXUg THVvbmcgdGFtIHZhIFRoaWV1IFRyYWNoIG5oaWVtIHRoaSB2YW4gY2h1YSB0aW0gcmEuDQoNCk5n dXllbiBCaSB0aHUgTmdoZSBBbiBUcmFuIFZhbiBIYW5nIGR1YSByYSBjb24gc28sIHRyYW4gbHUg bHV0IGNodWEgdHVuZyBjbyB0cm9uZyBsaWNoIA0Kc3UgSGEgVGluaCB2YSBRdWFuZyBCaW5oIGRh IHhvYSBzbyAyMCB4YSwgdGhpZXQgaGFpIGhhbmcgbmdoaW4gdHkgZG9uZywgdHVvbmcgZHVvbmcg DQp2b2kgInhvYSBzbyIgY2EgbW90IHRpbmguIFZheSBuaHVuZywgc28gdm9pIHRoaWV0IGhhaSA4 NiBuZ2hpbiB0eSBkb25nIG1hIFZpbmFzaGluIGdheSANCnJhIHRoaSBjaHVhIHRoYW0gdmFvIGRh dS4gT25nIEhhbmcgZGF0IGNhdSBob2k6ICJRdWFuIHRyb25nIG5oYXQgbGEgc2F1IGRheSB4dSBs eSB0aGUgbmFvPyBUaWVwIHNhdSBWaW5hc2hpbiBzZSBsYSBhaT8iDQoNCkFpIHNlIHRyYSBsb2kg Y2hvIGNhYyBkYWkgYmlldSBRSCAtIGN1bmcgY2hpbmggbGEgdHJhIGxvaSBjaG8gZGFuIGRheS4N Cg0KQ2hvIGR1IFRodSB0dW9uZyBkYSB0aGFuZyB0aGFuIGR1bmcgcmEgbmhhbiB0cmFjaCBuaGll bSB2ZSBwaGlhIENoaW5oIHBodSwgdGhlIG5odW5nIA0Kc3UgdGlldSB0YW4gZ2FuIG1vdCB0cmFt IG5nYW4gdHkgIGRvbmcgbW8gaG9pIG51b2MgbWF0IGN1YSBuaGFuIGRhbiB0dSBzdSB5ZXUga2Vt IGN1YSANCmJvIG1heSBkaWV1IGhhbmggVmluYXNoaW4gZGEgbGEgY29uIGRhbyBzYWMsIGN1YSB2 YW8gdGFtIGtoYW0gbmh1bmcgZGFpIGJpZXUgUXVvYyANCmhvaSB2b24gImxhbmggbmh1IGRhdCIg bmh1IHh1YSBuYXkgbmd1b2kgZGFuIHRodW9uZyBuaGFuIHhldCwga2hpZW4gY2hvIGhvIHBoYWkg ZHVuZyBjYW0ga2V1IGxlbi4gDQpEbyB0aHVjIHJhIGN1bmcgbGEgdGllbmcga2V1IGJpIHRodW9u ZyBjdWEgbmd1b2kgZGFuIHRydW9jIHRvbiB0aGF0IG5naGllbSB0cm9uZyBuYXkuDQoNCihBbmg6 IENvbiB0YXUgVmluYXNoaW4gbGFpIG1vaSBkdW9jICd0cnVjIHZvdCcsIEFuaCBWaWV0TmFtTmV0 KQ0KDQpUcm9uZyBraGkgZG8sIHRodSB0aHVjLCBkdSBjbyBiYW0gdGhlbyBjYWMgc3Uga2llbiwg bmh1bmcgbmd1b2kgdmlldCBiYWkgbmF5IGN1bmcgaG9hIGNhIA0KbWF0LCBkYXUgY2EgZGF1IHZp IGNhYyBseSBsZSB0cmFuaCBjYWksIHR1IGNhYyBwaGlhLCBjYWMgY28gcXVhbiBjaHVjIG5hbmcg dG9pIHRhcCBkbyBsZW4gDQpkYXUgVmluYXNoaW4sIGx1YyBuYXkgZGEgbmFtIGJlcCBkdW0gZG8s IGRheSBudW9pIHRpZWMgLSAiT2kgdGhvaSBiYW8gbGlldCBuYXkgY29uIA0KZGF1PyIuIEJhbyB0 aGkgZGEgbWF0LCBjaGkgY29uLi4ubGlldCBtYSB0aG9pIQ0KDQpOZ2F5IDI1LTEwLCB0cm9uZyBi YW8gY2FvIGd1aSB0b2kgZGFpIGJpZXUgUUgsIENodSBuaGllbSBVeSBiYW4gVHUgcGhhcCBRSCBk YW4gbGFpIA0KY2h1eWVuIFZpbmFzaGluICJOaHUgbW90IGRpZW4gaGluaCBjaG8gdmllYyB0dXkg Y28gcGhhdCBoaWVuIGRhdSBoaWV1IHRvaSBwaGFtIG5odW5nIA0Ka2hvbmcgeHUgbHksIG5nYW4g Y2hhbiBraXAgdGhvaS4NCg0KVXkgYmFuIFR1IHBoYXBRSCBkYW5oIGdpYSwgcXVhIDExIGxhbiB0 aGFuaCB0cmEsIGtpZW0gdG9hbiBuaHVuZyBzYWkgcGhhbS4uLk5odW5nIA0KQ2hpbmggcGh1IHZh IGNhYyBjbyBxdWFuIGNodWMgbmFuZyBraG9uZyBiaWV0LCBraG9uZyBhaSBjaGl1IHRyYWNoIG5o aWVtLiBYYSBob2kgdmEgY3UgDQp0cmkgcmF0IGJ1YyB4dWMgY2hvIHJhbmcgY28gc3UgYmFvIGNo ZSBjaG8gbmh1bmcgdmllYyBsYW0gc2FpIHRyYWksIHZpIHBoYW0gcGhhcCBsdWF0IGN1YSANClZp bmFzaGluIGxhbSB0aGlldCBoYWkgbG9uIGRlbiB0aWVuIHZhIHRhaSBzYW4gY3VhIG5oYSBudW9j Ii4NCg0KVXkgYmFuIFR1IHBoYXAgbHV1IHkgdHJvbmcgcXVhIHRyaW5oIHRodWMgaGllbiBuaGll bSB2dSB0aGFuaCB0cmEsIEtpZW0gdG9hbiBOaGEgbnVvYyANCmNhYyBjYXAgZGEgcGhhdCBoaWVu IG5oaWV1IHNhaSBwaGFtLCBraWVuIG5naGkgdGh1IGhvaSBuaGlldSB0aWVuIHZhIHRhaSBzYW4g bmh1bmcgS2llbSANCnRvYW4gTmhhIG51b2Mga2hvbmcgY2h1eWVuIGNvIHF1YW4gY28gdGhhbSBx dXllbiB4dSBseSBoaW5oIHN1IG1vdCB0cnVvbmcgaG9wIG5hby4NCg0KU28gdnUgdmllYyBkdW9j IGNvIHF1YW4gdGhhbmggdHJhIGNodXllbiBjaG8gY28gcXVhbiBkaWV1IHRyYSBjdW5nIHJhdCBp dC4NCg0KVGhlbSB2YW8gZG8sIG1vdCBzbyBjYW4gYm8ga2llbSB0b2FuIGRhIHZpIHBoYW0gcXV5 IHRhYyBkYW8gZHVjIG5naGUgbmdoaWVwLCB2aSBwaGFtIHBoYXAgbHVhdCwgY28gaGFuaCB2aSB0 aGFtIG5odW5nIg0KDQpOZ2F5IGNoaWV1IDI1LTEwLCBkZW4gbHVvdCBjbyBxdWFuIEtpZW0gdG9h biBOaGEgbnVvYyBwaGFuIGJhYy4gVGhlbyBvbmcgVnVvbmcgDQpEaW5oIEh1ZSwgVG9uZyBLVE5O IGNobyBoYXksIEtpZW0gdG9hbiBOaGEgbnVvYyAoS1ROTikgdHVuZyBuaGlldSBsYW4gbGVuIGtl IA0KaG9hY2gga2llbSB0b2FuLCBuZ2F5IHR1IGtoaSBWaW5hc2hpbiBjb24gY2h1YSBuYW5nIGNh cCBsZW4gdGFwIGRvYW4uDQoNClR1IGx1YyBWaW5hc2hpbiBkaSB2YW8gaG9hdCBkb25nICgyMDA2 KSBkZW4gbmF5LCBLVE5OIGRhIDIgbGFuIHhheSBkdW5nIGtlIGhvYWNoIA0Ka2llbSB0b2FuIGRv aSB2b2kgdGFwIGRvYW4gbmF5Li4uVHV5IG5oaWVuLCBrZSBob2FjaCBuYXkgbGFpIHRpZXAgdHVj IGJpICJ0cmkgaG9hbiIgYm9pIGtob25nIGR1b2MgcGhlIGR1eWV0Lg0KDQpLaGkgZ3VpIGNobyBU aGFuaCB0cmEgQ2hpbmggcGh1LCB0aGkgIlRoYW5oIHRyYSBDaGluaCBwaHUgdGhheSBjbyBzdSB0 cnVuZyBsYXAgdmUgbW90IHNvIGxpbmggdnVjIHZhIGRvaSB0dW9uZyBraWVtIHRvYW4iLg0KDQpW YSB0aHUgdGh1Yywgbmd1b2kgdmlldCBiYWkgbmF5IGN1bmcgbmdoaSBtYWkgdmUgY2F1IHBoYXQg bmdvbiBjdWMga3kgYW4gdHVvbmcgY3VhIG9uZyANCk5ndXllbiBEdWMgS2llbiwgVXkgdmllbiBV eSBiYW4gS2luaCB0ZSBRSCB0cmVuIGJhbyBWbkV4cHJlc3MsIG5nYXkgMjEtMTAgIHJhbmcsIA0K VmluYXNoaW4gZGEgInBoYSBzYW4gdGhlbyBraWV1IFZpZXQgTmFtIi4gTmdoaWEgbGEgbmd1b2kg bGFvIGRvbmcga2hvbmcgYmkgZGF5IHJhIA0KZHVvbmcsIGNhYyBraG9hbiBubyBuZ2FuIGhhbmcg dmFuIGR1b2MgZGFtIGJhby4uLiB2YSBDaGluaCBwaHUgdmFuIGdpdSBkdW9jIHN1IG9uIGRpbmgg dmkgbW8iLg0KDQpOaHVuZyB0aHVhIGJhYyBOZ3V5ZW4gRHVjIEtpZW4sIG8gY2FjIG51b2MgdHUg YmFuLCBkb2FuaCBuZ2hpZXAgcGhhIHNhbiwgbmd1b2kgbGFvIA0KZG9uZyBiaSBkYXkgcmEgZHVv bmcsIHZhIGR1b2MgaHVvbmcgbHVvbmcgdGhhdCBuZ2hpZXAuIENvbiBvIHRhLCBuZ3VvaSBsYW8g ZG9uZyBvIA0KVmluYXNoaW4gdmFuIGtob25nIGJpIGRheSByYSBkdW9uZywgY2FjIGtob2FuIG5v IG5nYW4gaGFuZyB2YW4gZHVvYyBiYW8gZGFtLi4uDQp0aGkgdGllbiBkbyBsYSB0aWVuIHRodWUg Y3VhIG5oYW4gZGFuLCBjdWEgdG9hbiB4YSBob2kgZG9uZywgaGF5IGxhIHF1eSByaWVuZyBjdWEg TmhhIG51b2M/DQoNClZhIHRyb25nIGtoaSBtb3Qgc28gZGFpIGJpZXUgdHJhY2ggQ2hpbmggcGh1 LCB0aGkgY28gbGUsIGN1bmcgbmVuIG5oaW4gbmhhbiBsYWkgdHJhY2ggDQpuaGllbSBnaWFtIHNh dCBjdWEgUXVvYyBob2kga2hpIHR1IGNhY2ggZGF5IHZhaSBuYW0sIGNhYyBjaHV5ZW4gZ2lhIHRy b25nIHZhIG5nb2FpIA0KbnVvYyBkYSBjYW5oIGJhbyBtYW5oIG1lIHZlIG5odW5nIGJhdCBvbiBj dWEgbW8gaGluaCBWaW5hc2hpbi4NCg0KRHUgbHVhbiBjdW5nIGNvIHF1eWVuIGRhdCBjYXUgaG9p IHZlIHRyYWNoIG5oaWVtIGN1YSBjYWMgY28gcXVhbiBiYW4gRGFuZywgbmh1bmcgDQpkYXUgbW9p IG5hbSBxdWFuIGx5IGNhYyBuaGFuIHN1IGR1bmcgZGF1IGNhYyB0YXAgZG9hbiBuaHUgb25nIFBo YW0gVGhhbmggQmluaCwgDQpuZ3VvaSBkYSBiaSBiYXQgdmkgbmh1bmcgc2FpIHBoYW0gbyBWaW5h c2hpbi4NCg0KSGF5IGNvIGxlIHZpIG1vIGhpbmggcXVhbiBseSB0YXAgZG9hbiBuaGEgbnVvYyAi a2lldSBWaWV0IE5hbSIsIHBoYSBzYW4gInRoZW8ga2lldSANClZpZXQgTmFtIiwgbWEgdHJhY2gg bmhpZW0gcXVhbiBseSBjdW5nIHRoZW8gImtpZXUgVmlldCBOYW0iLCBjaGFuZyBnaW9uZyBhaSwg cXVhIA0KbmhpZXUgZGF1IG1vaSBjaGl1IHRyYWNoIG5oaWVtLCBjaGFuZyBiaWV0IGNhIG5oYW4g bmFvIHBoYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KQ28gbGUsIGNodWEgYmFvIGdpbyB4YSBob2kg dGEsIG5oYW4gZGFuIHRhIGJ1b2MgcGhhaSBkb25nIGhvIGNobyBOaGEgbnVvYyBtb3Qga2hvYW4g DQoiaG9jIHBoaSIga2hvbmcgbG8gZGVuIHZheS4NCg0KVmEgY2hvIGR1LCBjYWMgZGFpIGJpZXUg UUggZGEgdGhhbmcgdGhhbiBkZSBjYXAgZGVuICJ2YW4gaG9hIHR1IGNodWMiIG5odW5nIHhlbSBy YSANCnZhbiBob2EgbmF5IG8geGEgaG9pIHRhLCBjb24gbGEgY3VhICJxdXkgdmEgaGllbSIuIFZv aSBjYWMgbnVvYyB2YW4gbWluaCB0cmVuIHRoZSBnaW9pLCANCm5ndW9pIHRhIGhhbmggeHUgdGhl byBraWV1IHRyYWNoIG5oaWVtICJuYW5nIG5nYW4gY2FuIiB2YSB2aWVjIHR1IGNodWMgIm5oZSBu aHUgbG9uZyBob25nIi4NCg0KQ29uIG8gdGEsIHRoaSBjbyBraGkgdHJhY2ggbmhpZW0gIm5oZSBu aHUgbG9uZyBob25nIiwgdmEgdHUgY2h1YyBsYWkgIm5hbmcgbmdhbiBjYW4iLiBLaG8gdGhlIGRh eSENCg0KQ2hvdCBuaG8gbnUgY3VvaSBob20gY3VhIG5oYSBwaGUgYmluaCB2YW4gaG9jIEhvYW5n IE5nb2MgSGllbjogIlRhaSBjYWkgbnVvYyBWaWV0IG1pbmggbm8gdGhlIi4gDQoNCmh0dHA6Ly93 d3cudGhlc2FpZ29udGltZXMudm4vSG9tZS90aG9pc3UvZG9pc29uZy80Mjg1Mi9UQktUU0ctc28t NDUtMjAxMC1Mb25nLWxlby1xdWFuLWx5LXRhcC1kb2FuLmh0bWwgMy8xMS8yMDEwLCAxNjowNSAo R01UKzcpIA0KKERpZW0gQmFvKQ0KDQpUQktUU0cgc28gNDUtMjAxMDogTG9uZyBsZW8gcXVhbiBs eSB0YXAgZG9hbiANCg0KKFRCS1RTRyBPbmxpbmUpIC0gVGhvaSBiYW8gS2luaCB0ZSBTYWkgR29u IHNvIDQ1LTIwMTAgcmEgbmdheSB0aHUgTmFtICg0LTExKSBjbyBuaHVuZyBub2kgZHVuZyBjaGlu aDogDQoNCkNodSB0cnVvbmcgdGhpIGRpZW0gdGhhbmggbGFwIGNhYyB0YXAgZG9hbiBraW5oIHRl IG5oYSBudW9jIHJhIGRvaSB0dSAyMDA1IG5odW5nIGRlbiANCm5heSB2YW4gY2h1YSBjbyBtb3Qg dG9uZyBrZXQgY2hpbmggdGh1YyBuYW8gdmUgbW8gaGluaCBuYXkgbWFjIGR1IGRhIGNvIGRlbiAx MiB0YXAgDQpkb2FuIHJhIGRvaS4gU3Uga2llbiAmIFZhbiBkZSB0dWFuIG5heSBzZSBwaGFuIHRp Y2ggc2F1IHRodWMgdHJhbmcgcm9pIHJhbSwgbG9uZyBsZW8gDQp0cm9uZyB2aWVjIHF1YW4gbHkg Y2FjIHRhcCBkb2FuIGtpbmggdGUgbmhhIG51b2MgdHJvbmcgdGhvaSBnaWFuIHF1YSBraGllbiBj aG8gaGlldSBxdWEgDQpob2F0IGRvbmcgY3VhIGNhYyB0YXAgZG9hbiBuYXkga2hvbmcgZHVvYyBu aHUgbW9uZyBkb2ksIHRoYW0gY2hpIGRvIHZvIG5odSB0cnVvbmcgaG9wIGN1YSBWaW5hc2hpbi4g DQoNCkRhIGNvIG5oaWV1IGNhdSBob2kgZGF0IHJhIHZvaSBDaGluaCBwaHUgdmEgUXVvYyBob2kg dmUgaGlldSBxdWEga2luaCB0ZSBjdWEgTmhhIG1heSANCkxvYyBkYXUgRHVuZyBRdWF0IGtoaSBi YW4gYmFvIGNhbyBrZXQgdGh1YyBkdSBhbiBkdW9jIHRyaW5oIHJhIGxhbiBkYXUgdGllbiBjYWNo IGRheSBiYSANCnR1YW4uIFR1eSBuaGllbiwgbW90IHNvIGNoaSB0aWV0IGxhIGNvIHNvIGNobyBu aHVuZyBjYXUgaG9pIGRvIGRhIGR1b2MgQ2hpbmggcGh1IGJvIHJhIA0Ka2hvaSBiYW4gYmFvIGNh byBjaGluaCB0aHVjIHRyaW5oIFF1b2MgaG9pIG5nYXkgNC0xMS4gQmFpICJIaWV1IHF1YSBjdWEg RHVuZyBRdWF0OiBzZSANCnRpbmggdG9hbiBzYXUiIGN1YSBwaG9uZyB2aWVuIE5nb2MgTGFuIGRh IGdoaSBuaGFuIG1vdCBzbyB0aGF5IGRvaSBjdWEgYmFuIGJhbyBjYW8gDQpjaGluaCB0aHVjIHNv IHZvaSBiYW4gYmFvIGNhbyBkYXUgdGllbiBkZSB0aGF5IHJhbmcsIGR1IHJhdCBub25nIGxvbmcg bmh1bmcgY28gbGUgUXVvYyANCmhvaSBjb24gcGhhaSBjaG8gZGVuIHBoaWVuIGhvcCBrZSB0aWVw IG1vaSBjbyBkdW9jIG5odW5nIHNvIGxpZXUgY3UgdGhlLiANCg0KVHJvbmcga2hpIEJvIFRhaSBj aGluaCBjb25nIGJvIHRoYW0gaHV0IG5nYW4gc2FjaCBjdWEgVmlldCBOYW0gc28gdm9pIEdEUCBu YW0gMjAwOSANCmxhIDYsOSUgdGhpIFF1eSBUaWVuIHRlIHF1b2MgdGUgbGFpIGR1YSByYSBjb24g c28gOCw5JSBjb24gdGhlbyBFY29ub21pc3QgSW50ZWxsaWdlbmNlIA0KVW5pdCBsYWkgbGEgOSw2 JS4gVmF5IGRhdSBsYSBjb24gc28gcGhhbiBhbmggZHVuZyBuaGF0IHRodWMgdHJhbmcgY2FuIGNh biBuZ2FuIHNhY2g/IA0KQmFpICJTbyBsaWV1IHRob25nIGtlOiB0aGF0IJYgZ2lhIGtobyBwaGFu IiBjdWEgdGFjIGdpYSBWdSBUaGFuaCBUdSBBbmgsIGNodW9uZyB0cmluaCANCmdpYW5nIGRheSBr aW5oIHRlIEZ1bGJyaWdodCwgbGFpIG1vdCBsYW4gbnVhIGNhbmggYmFvIHRodWMgdHJhbmcgY2Fj IHRpbmggdG9hbiB0aG9uZyBrZSANCmN1YSBWaWV0IE5hbSBraG9uZyBoYWkgaG9hIHZvaSB0aG9u ZyBsZSBxdW9jIHRlLCBkYW4gZGVuIHRoaWV1IHRob25nIHRpbiBkZSBkZSByYSBuaHVuZyANCnF1 eWV0IHNhY2ggY2hpbmggeGFjIGR1YSBkYXQgbnVvYyBwaGF0IHRyaWVuIG5oYW5oIHZhIGJlbiB2 dW5nIGhvbi4gDQoNClRyb25nIG11YyBEaWVuIGRhbiwgdGFjIGdpYSBUcmFuIFRodW9uZyBUdWFu IGNvIGJhaSAiVHJpIHR1ZSBkYW4gdG9jIJYgbmd1b24gbHVjIGR1YSANCmRhdCBudW9jIHRpZW4g bGVuIiBiYW4gdmllYyBsYW0gc2FvIGRlIERhbmcgdGFwIGhvcCBkdW9jIHRyaSB0dWUgY3VhIGNh YyB0YW5nIGxvcCBuaGFuIA0KZGFuIHZhbyB2aWVjIHBoYXQgdHJpZW4gZGF0IG51b2MuIFRoZW8g dGFjIGdpYSwgZGUgbGFtIGR1b2MgZGlldSBkbywgdHJ1b2MgdGllbiBuaHVuZyANCm5ndW9pIGRh bmcgZ2l1IHRyb25nIHRyYWNoIGxhbmggZGFvIGRhdCBudW9jIHBoYWkgY28gc3UgY2F1IHRoaSB2 YSBiaWV0IGxhbmcgbmdoZSwgZHUgbGEgDQpuaHVuZyBsb2kgInRyYWkgY2hpZXUiLiANCg0KQmFp ICJEYW5nIGt5IGdpYSB2YW4ga2hvbmcgdGhlIGtpZW0gc29hdCBnaWEgc3VhIiBnaGkgbmhhbiBt b3Qgc28geSBraWVuIGN1YSBUUy4gDQpKb25hdGhhbiBQaW5jdXMsIHRodW9jIGNodW9uZyB0cmlu aCBnaWFuZyBkYXkga2luaCB0ZSBGdWxicmlnaHQsIHh1bmcgcXVhbmggdmllYyBraWVtIA0Kc29h dCBnaWEgc3VhIGJvdC4gVGhlbyBvbmcsIHZpZWMgZGFuZyBreSBnaWEgc3VhIHRoZW8gcXV5IGRp bmggY3VhIFRob25nIHR1IDEyMiB2YW4gDQpraG9uZyB0aGUga2VvIGdpYSBzdWEgaGEgdGhhcCBt YSB2YW4gZGUgbWF1IGNob3QgbmFtIG8gY2hvIGNhbiBnaWFpIHF1eWV0IHZhbiBkZSB0aGlldSAN CnRob25nIHRpbiB0cmFtIHRyb25nIGN1YSBuZ3VvaSB0aWV1IGR1bmcuIA0KDQpCYWkgIktobyB4 dSEiIGN1YSBwaG9uZyB2aWVuIEhvIEh1bmcgcGhhbiBhbmggdGh1YyB0cmFuZyBjYWMgdGh1b25n IG5oYW4gVHJ1bmcgDQpRdW9jIHRyYW5oIG11YSB0b20gbmd1eWVuIGxpZXUgdGFpIERCU0NMIGRl IGR1YSB2ZSBudW9jIHRpZXUgdGh1LiBEaWV1IG5heSBkYSBkYW4gDQpkZW4gbmh1bmcgdGFjIGhh aSBraG8gbHVvbmcgY2hvIG5nYW5oIHRodXkgc2FuIFZpZXQgTmFtLCBib2kgdGh1b25nIG5oYW4g VHJ1bmcgUXVvYyANCm11YSB0b20gdm9pIGdpYSBjYW8gbmh1bmcgbGFpIGRlIG5naGkgY2FjIGRp ZW0gY3VuZyBjYXAgYm9tIHRhcCBjaGF0IHZhby4gDQoNCkJhaSAiRGFuIGN1IGtpZW4sIHRvYSBj dSB2aWVjLi4uIGtob25nIHRodSBseSEiIGN1YSBwaG9uZyB2aWVuIE5ndXllbiBUYW4gZGFuIG1v dCBzbyANCnRydW9uZyBob3AgY2hvIHRoYXkgbmh1bmcgYmF0IGNhcCBjdWEgcGhhcCBsdWF0IHZl IHRvIHR1bmcgYW4gaGFuaCBjaGluaCB0cm9uZyB2aWVjIHRodSANCmx5IGRvbiBraWVuIGtoaSBr aG9uZyBxdXkgZGluaCBjbyBjaGUgeGVtIHhldCBraGlldSBuYWkgbyBjYXAgY2FvIGhvbi4gDQoN ClRyb25nIG11YyBUYWkgY2hpbmggliBDaHVuZyBraG9hbiwgZGFuZyBjaHUgeSBsYSBiYWkgIlF1 YW4gbHkgaHV5IGRvbmcgdmEgY2hvIHZheSANCnZhbmc6IGdpYW0gYm90IG1vdCBuZ3VvbiBjdW5n IHRpZW4iIGN1YSBUaGFuaCBUaHV5IHZhIGJhaSAiQmFuIGtob2FuIHZlIGhpZXUgcXVhIiANCmN1 YSB0YWMgZ2lhIEhvIFF1b2MgVHVhbiBnaGkgbmhhbiBtb3Qgc28geSBraWVuIGN1YSBjYWMgY2h1 eWVuIGdpYSBiYW4ga2hvYW4gdmUgaGlldSANCnF1YSBjdWEgVGhvbmcgdHUgMjIvMjAxMCB0cm9u ZyBuZ2FuIGhhbiBtYWMgZHUgY3VuZyBjbyBtb3Qgc28geSBraWVuIGRvbmcgdGluaCB2ZSANCm11 YyB0aWV1IGdvcCBwaGFuIHRhbyBzdSBvbiBkaW5oIGNobyBjaGluaCBzYWNoIHRpZW4gdGUgbWEg dGhvbmcgdHUgbmF5IGh1b25nIHRvaS4gDQoNCk11YyBLaW5oIHRlIHRoZSBnaW9pLCBiZW4gY2Fu aCBiYWkgIkRhcCB0aHV5IGRpZW4gdHJlbiBzb25nIE1lIGtvbmc6IEtob25nIGNvbiBsYSANCm5n dXkgY28iIGN1YSB0YWMgZ2lhIExhbiBBbmggY3VuZyBjYXAgbmh1bmcgdGhvbmcgdGluIHZlIG5o dW5nIHRoaWV0IGhhaSB0byBsb24gbWEgDQpEQlNDTCBkYW5nIHBoYWkgZ2FuaCBjaGl1IGRvIGFu aCBodW9uZyBjdWEgY2FjIGRhcCB0aHV5IGRpZW4gdHJlbiBkb25nIE1lIGtvbmcuIA0KRGFuZyBj aHUgeSBsYSBiYWkgIlZpZXQgTmFtIHZhIHZpIHRoZSBtb2kgY3VhIEFTRUFOIiB0cm9uZyBtdWMg QmluaCBsdWFuIHF1b2MgdGUgDQpkaWVtIGxhaSBtb3Qgc28gZG9uZyBnb3AgY3VhIFZpZXQgTmFt IHRyb25nIG5oaWVtIGt5IENodSB0aWNoIEFTRUFOLCBnaXVwIHRvIGNodWMgDQpuYXkgdnVvbiBs ZW4gbW90IHZpIHRoZSBtb2kgdHJlbiB0cnVvbmcgcXVvYyB0ZS4gDQoNCmh0dHA6Ly92aWV0bmFt bmV0LnZuL2NoaW5odHJpLzIwMDgvMTAvODA3NDEyLyBWaW5oIEdpYW5nIDA1OjU5LCAwOC8xMC8y MDA4IChHTVQrNykNCg0KVGh1IHR1b25nOiBDdSB0cmkgbXVvbiBUaGFuaCB0cmEgY2hpbmggcGh1 IG5oYXAgY3VvYyB2dSBUaHUgVGhpZW0NCg0KIC0gVGFpIGJ1b2kgdGllcCB4dWMgY3UgdHJpIGRh aSBiaWV1IFF1b2MgaG9pIHF1YW4gMiAoVFAuSENNKSBjdWEgQ2h1IHRpY2ggbnVvYyBOZ3V5ZW4g DQpNaW5oIFRyaWV0IGNoaWV1IDcvMTAsIG5oaWV1IGN1IHRyaSBkYSBwaGFuIGFuaCBidWMgeHVj IHZlIHZhbiBkZSB0YWkgZGluaCBjdSwgZGVuIGJ1IGdpYWkgDQp0b2EgdGFpIGtodSBkbyB0aGkg bW9pIFRodSBUaGllbS4gDQoNCktob25nIHRpbiB0dW9uZyBUaGFuaCB0cmEgdGhhbmggcGhvIA0K DQpOaGlldSBjdSB0cmkga2hvbmcgZG9uZyB0aW5oIHZlIGtldCBsdWFuIHRoYW5oIHRyYSBjdWEg VGhhbmggdHJhIFRQLkhDTSB2ZSBkdSBhbiBraHUgDQpkbyB0aGkgbW9pIFRodSBUaGllbSB2YSBk ZSBuZ2hpIFRoYW5oIHRyYSBDaGluaCBwaHUgdmFvIGN1b2MuDQoNCiJDaHVuZyB0b2kga2hvbmcg aGFpIGxvbmcgdmUga2V0IHF1YSB0aGFuaCB0cmEsIGRlIG5naGkgdGhhbmggbGFwIHRoYW5oIHRy YSBDaGluaCBwaHUgeHUgDQpseSBuaHVuZyBjYSBuaGFuLCB0byBjaHVjLCB0dXkgdGhlbyBtdWMg ZG8gdmkgcGhhbSIsIGN1IHRyaSBOZ3V5ZW4gTWFpIExpbmgsIHBodW9uZyANCkFuIExvaSBEb25n LCBsZW4gdGllbmcuICANCg0KVGhlbyBjdSB0cmkgTGUgSG9uZyBIYW5oLCBkZSBUaGFuaCB0cmEg VFAgdGh1YyBoaWVuIHRoYW5oIHRyYSBkYXQgZGFpIHRhaSBUaHUgVGhpZW0gDQpjaGFuZyBraGFj IG5hbyB2dWEgZGEgYm9uZyB2dWEgdGhvaSBjb2ksIGRhbiBkZW4gdGluaCB0cmFuZyBkYXkgdHJh Y2ggbmhpZW0geHVvbmcgY2FwIA0KZHVvaS4gDQoNCk1vdCBzbyBjdSB0cmkgY2hvIHJhbmcga2V0 IGx1YW4gdGhhbmggdHJhIHZ1YSBxdWEga2hvbmcgdGhvYSBkYW5nLiBLaHUgZGF0IDE2MCBoYSB0 cm9uZyANCmtodSBkbyB0aGkgbW9pIFRodSBUaGllbSBkdW9jIENoaW5oIHBodSBwaGUgZHV5ZXQg ZGUgdGFpIGRpbmggY3UgY2hvIGRhbiBjaHVhIGR1b2MgDQpnaWFpIHRoaWNoIHRob2EgZGFuZyB2 ZSBtdWMgZGljaCBzdSBkdW5nIGhpZW4gbmF5LiBOZ29haSByYSwgZ2lhIGJvaSB0aHVvbmcgZGF0 IHRoZW8gY2FjIA0KcXV5ZXQgZGluaCAxMzUvMjAwMiB2YSAxMjMvMjAwNiBjdWEgVUJORCBUUCBx dWEgdGhhcCBzbyB2b2kgZ2lhIHRoaSB0cnVvbmcuIA0KDQpNb3Qgc28gY3UgdHJpIGNvbiB0byBy YSBiYW4ga2hvYW4gdmUgdmFuIGRlIHRydW9jIGtoaSB0aGFuaCB0cmEsIGR1IGx1YW4gcGhhbiBh bmggY28gMjggDQpkdSBhbiBiaSBwaGFuIGxvIGJhbiBuZW4sIHNhdSBraGkgdGhhbmggdHJhLCBs YWkgbGVuIGRlbiA0MiBkdSBhbi4gDQoNCiJLZXQgbHVhbiB0aGFuaCB0cmEga2hvbmcgZ2lhaSB0 b2EgZHVvYyBidWMgeHVjIGN1YSBjaHVuZyB0b2ksIG1hIG5ndW9jIGxhaSBjYW5nIGxhbSANCmJ1 YyB4dWMgdGFuZyBsZW4iLCBjdSB0cmkgVnUgTWFpIExpbmgsIHBodW9uZyBBbiBMb2kgRG9uZywg bm9pLiANCg0KQ3UgdHJpIERpbmggS2ltIFR1YW4sIHBodW9uZyBBbiBLaGFuaCwgY2hpYSBzZSB5 IGtpZW46ICJLZXQgbHVhbiB0aGFuaCB0cmEgbGFpIGRvIGxvaSANCmNobyBjYWMgc28sIG5nYW5o IHZhIHF1YW4sIHRyb25nIGtoaSB0cnVvYyBkbyBxdWFuIGxhaSBnaWFpIHRoaWNoIGNoaSB0aHVj IGhpZW4gc3UgY2hpIGRhbyANCmN1YSBUUC4gTmh1IHZheSBsYSBkbyB0cmFjaCBuaGllbSBjaG8g bmhhdSIuICANCg0KLS0tLS0NClBoYW4gMzogQ3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJp IGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2ggY2h1YyBvbmcgTGUgVGhhbmggSGFpIHRoYW0gbmh1 bmcsIHRob2kgbmF0IA0KDQpodHRwOi8vZGFubHVhbi5vcmcvbm9kZS82NTk1IERhbiBEZW4gMDgv MTAvMjAxMCANCg0KVG9uZyBiaSB0aHU6IExlIFRoYW5oIEhhaSwgTmd1eWVuIFRhbiBEdW5nIHZh IHZ1IGN1b3AgMTUgdHkgVVNEIHRhaSBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gcXVhbiAyIFRQ SENNIA0KDQpUaHUgZG9hbiBjdW9wIGRhdCB2YSB2dSBWaW5hc2luIDIgDQoNCktodSBkbyB0aGkg bW9pIFRodSBUaGllbSAtIFF1YW4gMiAtIFRQSENNIGxhIG1hbmggZGF0IHJvbmcgOTMwaGEgbmFt IG5nYXkgYmVuIA0KYm8gY29uIHNvbmcgU2FpIEdvbiwgZG9pIGRpZW4ga2h1IHRydW5nIHRhbSBz YW0gdWF0IHNhbmcgdHJvbmcgc28gMSB0aGFuaCBwaG8uIERvIGNvIHZpIA0KdHJpIHR1eWV0IGRl cCBuaHUgdmF5IG5lbiBUaHUgVGhpZW0gdGF0IHlldSBkYSB0cm8gdGhhbmggbWllbmcgbW9pIHRo b20gaGFwIGRhbiBjYWMgDQpkYWkgZ2lhIGJhdCBkb25nIHNhbiB2YSBtb3Qgc28gcXVhbiBjaHVj IGJpZW4gY2hhdCBjdWEgVFAgSG8gQ2hpIE1pbmggdmEgVHJ1bmcgVW9uZy4gDQoNClR1IDIwMDIs IGxhbmggZGFvIHRoYW5oIHBobyBtYSBsdWMgZG8gb25nIExlIFRoYW5oIEhhaSBsYSBjaHUgdGlj aCB0aGFuaCBwaG8gZGEgdm9pIHZhIA0KcmEgbGVuaCB0aHUgaG9pIGRhdCBraGkgY2h1YSB0aHVj IGhpZW4gbmh1bmcgcXV5IGRpbmggYmF0IGJ1b2MgY3VhIHBoYXAgbHVhdC4gU3Ugdm8gdHJhY2gg DQpuaGllbSB0aGF5IHJhdCBybyBraGkgZHUgYW4ga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIGR1 b2MgZ29pIG1vdCBjYWNoIG1pYSBtYWkgbGEgZHUgDQphbiBCT04gS0hPTkc6ICJraG9uZyBkdSBh biBkYXUgdHUsIGtob25nIHF1eSBob2FjaCBjaGkgdGlldCwga2hvbmcgcGh1b25nIGFuIGJvaSAN CnRodW9uZywga2hvbmcgbmhhIHRhaSBkaW5oIGN1Ii4gS2hvbmcgZHVuZyBsYWkgbyBkbywgdm9p IGRhIHRhbSAndGh1IGhvaSBkYXQgdm9pIGNoaSBwaGkgDQp0aGFwIG5oYXQnLCBMZSBUaGFuaCBI YWkgZGEgY2hpIGRhbyBkYW4gZW0gbGF5IGdpYSBkYXQgdHUgbmFtIDE5OTUgKHRoZW8gcXV5ZXQg ZGluaCAwNSANCm5nYXkgNC8xLzE5OTUpIGRlIGJvaSB0aHVvbmcgY2hvIGRhbiB0dSBuYW0gMjAw MiBkZW4gZ2lvIGJhdCBjaGFwIGNhYyBxdXkgZGluaCBjdWEgDQpRdW9jIGhvaSB2YSBDaGluaCBw aHUgYm9pIHRodW9uZyBzYXQgZ2lhIHRoaSB0cnVvbmcuDQoNClN1IGJhdCBob3AgbGkgbyBkYXkg bGEgY2hlbmggbGVjaCBnaWEgYm9pIHRodW9uZyB2YSBnaWEgdGhpIHRydW9uZyB2dW90IHF1YSBz dWMgdHVvbmcgDQp0dW9uZyBjdWEgbW9pIG5ndW9pLCB0aGVvIHF1eWV0IGRpbmggMTM1L1FELVVC IG5nYXkgMjEvMTEvMjAwMiBjdWEgVUJORCBUUEhDTSwgDQpnaWEgYm9pIHRodW9uZyBkYXQgbyBs YSBraG9hbmcgMiB0cmlldSBkb25nIG1vdCBtZXQgdnVvbmcsIGRhdCBub25nIG5naGllcCAyMDAu MDAwIA0KZG9uZyBtb3QgbWV0IHZ1b25nLCBjb24gZ2lhIHRoaSB0cnVvbmcgdGhpIGNhbyB2b3Qs IGRhdCBvIHRyb25nIGR1IGFuIDcwIHRyaWV1IGRvbmcsIGRhdCANCm5vbmcgbmdoaWVwIGJhbmcg NDAlIGtob2FuZyAyOCB0cmlldSBkb25nLiBUcm9uZyBsdWMgUXVvYyBob2kgdmEgQ2hpbmggcGh1 IHRyaW5oIA0KdHJvbmcgdGhvbmcgY2FvIHZvaSBxdW9jIGRhbiByYW5nIHR1IG5hbSAyMDAzIHNl IGJvaSB0aHVvbmcgZGF5IGR1IG5odW5nIHRoaWV0IGhhaSBtYSANCm5oYSBudW9jIGdheSByYSBr aGkgdGh1IGhvaSBkYXQgY3VhIGRhbiwgYm9pIHRodW9uZyBzYXQgZ2lhIHRoaSB0cnVvbmcsIHRo aSBvIFNhaSBHb24sIExlIA0KVGhhbmggSGFpIGxhaSBiYXQgY2hhcCBoZXQgdGF0IGNhIHF1eSBk aW5oIGN1YSBjYXAgdHJlbiBkZSBuZW8gZ2lhIGJvaSB0aHVvbmcgaG9uIGNodWMgDQpuYW0gcXVh IHZvIGx5IGxhbSBoYWkgZGFuIGRlbi4gQ2hlbmggbGVjaCBnaWEgYm9pIHRodW9uZyBsZW4gZGVu IGhhbmcgY2h1YyB0aGFtIGNoaSANCmhhbmcgdHJhbSBsYW4gY2hhYyBjaGFuIHBoYWkgbGFtIGRl bSBkZW4gbmh1bmcgcXV5ZW4gbG9pIGtob25nIGxvIG5odW5nIGhvYW4gdG9hbiANCnBoaSBwaGFw IGNobyBMZSBUaGFuaCBIYWkgdmEgZSBraXAuIFRpbmggc28gc28gbW9pIG1ldCB2dW9uZyBkYXQg Y2FjIHF1YW4gbGFtICd2ZW5oJyANCnJhIGR1b2MgMzAgdHJpZXUgZG9uZyB0aGkgdG9uZyBzbyB0 aWVuIGRhbiBUaHUgVGhpZW0gYmkgJ25hbmcnIG1hdCBzZSBsYSBtb3QgY29uIHNvIHZvaSANCnZv IHNvIG5odW5nIHNvIDAgZGFuZyBzYXU6IDI3MC4wMDAgdHkgZG9uZyB0dW9uZyBkdW9uZyAobG9u IGdhcCAzIGxhbiBzbyB0aWVuIA0KdGhpZXQgaGFpIGN1YSB2dSBhbiBWaW5hc2luLiBLaG9uZyBj b24gbmdoaSBuZ28gZ2kgbnVhLCB2dSAnY3VvcCBkYXQnIG8gVGh1IFRoaWVtIHZhIA0KdnUgVmlu YXNpbiBsYSAyIHZ1IGFuIHRoYW0gbmh1bmcgbG9uIG5oYXQgdHJvbmcgbGljaCBzdSBjYWNoIG1h bmcgVmlldCBOYW0uDQoNCk5hbSAyMDA4LCBzYXUga2hpIGxhbSBzb25nIHBoYW4gbm8gY3VhIG5n dW9pIGRhbiBUaHUgVGhpZW0gdmUgY2FjIHF1eSBkaW5oIGJvaSANCnRodW9uZyBxdWEgdm8gbGkg J25vIHR1bmcnIHRyZW4gY2FjIHRvIGJhbyB1eSB0aW4gY3VhIGNhIG51b2MsIHRoYW5oIHBobyB2 YSBxdWFuIDIgZGEgdGltIA0KY2FjaCAneG9hIGRpdScgbmhhbiBkYW4gdmEgbW90IGJhbiBkdSB0 aGFvIHN1YSBkb2kgYm8gc3VuZyBjaGluaCBzYWNoIGJvaSB0aHVvbmcgZHVvYyANCmR1YSByYSB0 cnVuZyBjYXUgeSBraWVuIGN1IHRyaSBjaG8gY28gdmUgZGFuIGNodS4gQ3UgdHJpLCB0cm9uZyBk byBjbyBuaGlldSBjdXUgY2hpZW4gYmluaCANCnZhIGRhbmcgdmllbiB0cnVuZyBraWVuLCBkYSB0 aGFuZyB0aHVuZyBiYWMgYm8gZHUgdGhhbyBuYXkgdmkgbHkgZG8gZHUgdGhhbyBraG9uZyBib2kg DQp0aHVvbmcgc2F0IGdpYSB0aGkgdHJ1b25nIHRoZW8gbHVhdCBEYXQgRGFpIDIwMDMgdmEgbmdo aSBkaW5oIDE5NyBjdWEgQ2hpbmggUGh1IG1hIGhvIA0KdHJvIHRoZW8ga2lldSBibyB0aGkgY2hv IHRoZW0gY2h1dCBkaW5oIGtob25nIGRhbmcga2UuIENobyBkdSBuaGFuIGRhbiBkYSBiYWMgcGh1 b25nIA0KYW4gc3VhIGRvaSBibyBzdW5nIG5odW5nICdjaGluaCBxdXllbiBjdWEgZGFuIGRvIGRh biB2aSBkYW4nIHF1YW4gMiBtYSBkdW5nIGRhdSBsYSBCaSANCnRodSBxdWFuIFRhdCBUaGFuaCBQ aG9uZyB2YSBDaHUgdGljaCBxdWFuIExlIFRyb25nIFNhbmcgKGRldSBsYSBuaHVuZyBkZSB0dSB0 aGFuIHRpbiANCmN1YSBMZSBUaGFuaCBIYWkpIHZhbiBjdSBkZSB0cmluaCB0aGFuaCBwaG8gdmEg dGhhbmggcGhvIHZhbiBjdSBuZ2FuZyBuaGllbiBwaGUgZHV5ZXQgDQptb3QgcXV5ZXQgZGluaCB2 dWEgdHJhaSBxdXkgZGluaCBjdWEgdHJlbiB2dWEgdHJhaSB5IGN1IHRyaSAocXV5ZXQgZGluaCAw NiBuZ2F5IA0KMjEvMS8yMDA5KS4gRHVuZyBuZ2hpIGRhdSBvYyBsYW5oIGRhbyB0YSAnZGF1IHBo dScgbWEgbGFtIHRvLCBkZSBkYW0gYmFvIGFuIHRvYW4gY2hvIA0KbWluaCwgdHJ1b2Mga2hpIGxp ZXUgbWluaCBkYXQgYnV0IGt5IHZhbyBtb3QgcXV5ZXQgZGluaCB0cmFpIGx1YXQgY3VhIFVCTkQs IE5ndXllbiANClRoYW5oIFRhaSAtIFBobyBDVCBVQk5EIFRQSENNIGRhIHlldSBjYXUgTGUgVGhh bmggSGFpIGNodSB0cmkgY3VvYyBob3AgY3VhIHRhcCANCnRoZSBUaHVvbmcgdHJ1YyB0aGFuaCB1 eSB2YW8gdGhhbmcgMTIvMjAwOCBkZSB0aG9uZyBxdWEgY2h1IHRydW9uZyBraG9uZyB0aHVjIGhp ZW4gDQp0aGVvIGx1YXQgRGF0IERhaSAyMDAzIHZhIGNhYyBuZ2hpIGRpbmggY3VhIENoaW5oIFBo dSwgY2hpIGhvIHRybyB0aGVtIGNobyBkYW4gVGh1IA0KVGhpZW0uIFRoZSBsYSB0YXAgdGhlIHRo YW5oIHV5IFRQSENNIGRhIHF1eWV0LCBtYSBjbyBxdXlldCBzYWkgZGkgY2hhbmcgbnVhIHRoaSBj dW5nIA0KY2hhbmcgdGhlIG5hbyB4dSBkdW9jIGNhIHRhcCB0aGUgdGhhbmggdXkuIFBodW9uZyB0 aHVjICdwaGFtIHRvaSBjbyB0byBjaHVjJyB0aGVvIGx1YXQgDQpoaW5oIHN1IGxhIHRpbmggdGll dCB0YW5nIG5hbmcgbmh1bmcgdGhlbyBsdWF0IGN1YSBEYW5nIHRoaSBjaGluaCBsYSBtb3QgdGlu aCB0aWV0IGdpYW0gbmhlIA0KKHRoYW0gY2hpIG5oZSBuaHUga2hvbmcpLCB2aSB2YXkgcGh1b25n IHRodWMgbmF5IGR1b2MgZGVtIHJhIHZhbiBkdW5nIHRodW9uZyB4dXllbi4NCg0KTm9pIHRvbSBs YWkgbGEgbmh1bmcgZ2kgbWEgbGFuaCBkYW8gVFBIQ00gZGEgcXV5ZXQgdGhpIHNlIG1haSBtYWkg a2hvbmcgdGhheSBkb2kgbWFjIA0KcmFuZyBsdWF0IHZhIG5naGkgZGluaCBjbyB0aGF5IGRvaSB0 aGUgbmFvIHZhIGJhbyBuaGlldSBsYW4gZGkgbnVhLiBDdSB5ZW4gdGFtIHZheSBkaSENCg0KTmhv IG9uIGNoaW5oIHNhY2ggbW9pIGN1YSBvbmcgSGFpIGdpYSBkaW5oIHRvaSBob24gOCB0cmFtIG1l dCB2dW9uZyBkYXQgY2FjaCBkdW9uZyANCkRvbmcgS2hvaSBtYWMgbmhhdCBTYWkgR29uIGhvbiAy MDAgbWV0IHNlIGNoaSBtdWEgZHVvYyBob24gMiBtZXQgdnVvbmcgZGF0IG8gDQpkdW9uZyBEb25n IEtob2kuIFF1YSBsYSBjdW9jIHNvbmcgY3VhIHRvaSBjb24gdHVpIG5odWMgcmUgcnVuZyBob24g a2llcCBubyBsZT8NCg0KJ1JhIGhhbmcnDQoNClNhdSBraGkgZGEgdGh1IGdvbSBkdW9jIG1vdCBk aWVuIHRpY2ggZGF0IGtoYSBsb24sIGJ1b2MgdGllcCB0aGVvIHBoYWkgdGluaCBsYSAncmEgaGFu ZycgDQpoYXkgbm9pIHRoZW8gZ2lvbmcgY3VhIGdpb2kga2luaCBkb2FuaCBsYSAnaGllbiB0aHVj IGhvYSBsb2kgbmh1YW4nLiBMYW5oIGRhbyB0aGFuaCBwaG8gDQpkYSBjaG9uIG1hdCBEYW5nIFRo YW5oIFRhbSBkZSBnb2kgdmFuZywgbWEgRGFuZyBUaGFuaCBUYW0gbGEgYWksIGxhIG5oYSB0dSBi YW4gZ2lhdSANCnNvIG1vdCBWTiwgbGEgY2h1IHRpY2ggaG9hYyBnaWFtIGRvYyBjdWEgY2FjIGNv bmcgdHkga2VjaCBzdSBuaHUgU2FpIEdvbiBJbnZlc3QsIEtpbmggDQpCYWMsIFRhcCBkb2FuIFRh biBUYW8gKGJhIEhhaSBUYW0gY2hpIHJ1b3QgY3VhIHRodSBUdW9uZyBOZ3V5ZW4gVGFuIER1bmcg bGFtIGNodSANCnRpY2gpLCBEYW5nIFRoYW5oIHRhbSBkYSB4aW4gZHVvYyBib24gY2FjIGR1IGFu IG5obyB2YW8gbmh1bmcgbW9pIHF1YW4gaGUgJ3RlIG5oaScgDQp2b2kgY2FjIHZpIGxhbmggZGFv IGRhdCBudW9jIHRyb25nIGRvIGNvIG5oYW4gdmF0IGNoaW5oIGN1YSB2dSBWaW5hc2luLVRodSBU dW9uZyANCk5ndXllbiBUYW4gRHVuZy4gVGhlbyB0aWV0IGxvIGN1YSBiYW8gY2hpLCB0cm9uZyBs dWMgZ2lhIGRhdCB0aGkgdHJ1b25nIHF1YW4gMiBsaWVuIHR1YyANCnNvdCBub25nIHRoaSBsYW5o IGRhbyB0aGFuaCBwaG8gbGFpIHRpbmggY2hvIENvbmcgdmllbiBQaGFuIG1lbSBjdWEgRGFuZyBU aGFuaCBUYW0gDQptb3QgY2FpIGdpYSBraG9uZyB0aGUgJ2xhbmgnIGhvbjogMTAgdHJpZXUgZG9u ZyBtb3QgbWV0IHZ1b25nICgxLjUwMCB0eSBjaG8gZGllbiB0aWNoIA0KMTUsOWhhKS4gQ3VuZyB0 aGVvIGJhbyBjaGksIERhbmcgVGhhbmggVGFtIGRhIGRlbSBkYXQgbmF5IGRpIGdvcCB2b24gcGhh cCBkaW5oIHZvaSANCmRvaSB0YWMgbnVvYyBuZ29haSBkdW9jIDEuNTAwVVNEIG1vdCBtZXQgdnVv bmcuIEx5IGt5IGhvbiBudWEgbGEgdGhhbmcgMDcgbmFtIDIwMDkgDQoobW90IG5hbSBzYXUga2hp IG11YSBkYXQgdmEgdGllbiBoYW5oIGR1IGFuKSwgY2h1IGRhdSB0dSBkdSBhbiBDb25nIHZpZW4g cGhhbiBtZW0gDQp2YW4gY2h1YSBkb25nIG1vdCB4dSB0aWVuIGRhdCBjaG8gbmhhIG51b2MuIFNl IGNvbiByYXQgbmhpZXUgZHUgYW4gbnVhIGR1b2MgZ2lhbyBkYXQgdmEgDQp0aWVuIGRhdCBjdWEg ZGFuIHNlIHRpZXAgdHVjIHVuIHVuIGNoYXkgcmEga2hvaSB0dWkgZGFuIHZvIHR1aSBjYWMgdHUg YmFuIHRoYW4gaHV1IHZhIGNhYyANCnF1YW4gY2h1YyB0aGFtIG5odW5nLiBEb25nIHRpZW4ga2hv bmcgbG8ga2llbSBkdW9jIHR1IHZ1IGFwIHBoZSBUaHUgVGhpZW0gc2UgZG9uZyANCnZhaSB0cm8g dGhlIG5hbyB0cm9uZyB2dSBjaGF5IGdoZSB0cm9uZyBjYWMgZGFpIGhvaSBzYXAgbW8gbWFuIHRo b2kgZ2lhbiB0b2k/DQoNCkNvIG5oYW4gY28gbm9pICdDdW9wIGRlbSBsYSBnaWFjLCBjdW9wIG5n YXkgbGEgcXVhbicuIFZhbiBiaWV0IHF1YW4gdGhpIHBoYWkgJ2N1b3AnIA0KbW9pIGxhIHF1YW4g bmh1bmcgY3VvcCB2b2kgbXVjIGRvIGNob25nIG1hdCBuaHUgdmF5IHRoaSBkYW4gY28gbWEgY2Fw IGRhdCBtYSBhbi4NCg0KTG8gZGllbiBvIGR1OiBOZ3V5ZW4gVGFuIER1bmcNCg0KVGluaCBoaW5o IGN1b3AgYm9jIGRhbmcgeHVvbiB4ZSB0aGkgbmFtIDIwMDYgb25nIE5ndXllbiBNaW5oIFRyaWV0 IHRydW5nIGN1IGNodWMgDQpDaHUgdGljaCBudW9jIHZhIGJhdCBkYXUgc2luaCBob2F0IHRvIGRh aSBiaWV1IFF1b2MgaG9pIHRhaSBxdWFuIDIuIFR1IGtoaSBzaW5oIGhvYXQgdGFpIA0KZGF5IG9u ZyBUcmlldCBraG9uZyBjbyBkdW9jIG1vdCBuZ2F5IHRhbiBodW9uZyBjdW9jIGRvaSBDaHUgdGlj aCBudW9jIG1hIHN1b3QgbmdheSANCnBoYWkgJ2xhbmggZHUnIG5odW5nIGJ1YyB4dWMgY3VhIGN1 IHRyaSBQaHVvbmcgVGh1IFRoaWVtIHZpIGJpIGJvYyBsb3QgbW90IGNhY2ggcXVhIA0KdGFuIGJh byBib2kgJ2JhbiB0YXkgc2F0JyBjdWEgY2hpbmggcXV5ZW4uIEtob25nIGNoaXUgbm9pIHN1IHRy YWNoIG1vYyBjdWEgZGFuLCB0cm9uZyANCmJ1b2kgc2luaCBob2F0IHZvaSBjdSB0cmkgVGh1IFRo aWVtIHRoYW5nIDExLzIwMDcsIG9uZyBUcmlldCBnaW8gbmFtIGRhbSBsb24gdGllbmcgDQp0dXll biBibzogdG9pIHNlIHZlIHlldSBjYXUgVGh1IHR1b25nIGR1YSBkb2FuIHRoYW5oIHRyYSBDaGlu aCBwaHUgbGllbiBuZ2hhbmggDQp2YW8gdGhhbmggdHJhIHRvYW4gZGllbiBraHUgZG8gdGhpIG1v aSBUaHUgVGhpZW0uIEhheSBkb2kgZGF5ISAoQ29pIGJvIG5odSBvbmcgdGENCiBtb2kgeGVtIHBo aW0gaG9hdCBoaW5oIGN1YSBOZ2EhKS4NCg0KQmlldCB0cnVvYyB0aW5oIGhpbmggYmF0IG9uIHZp IGRhbiBraWVuIHF1eWV0IGRhdSB0cmFuaCBjaG9uZyB0aGFtIG5odW5nLCBMZSBUaGFuaCBIYWkg DQpkYSBjYXUgY3V1IG8gZHUgY3VhIG1pbmggbGEgTmd1eWVuIFRhbiBEdW5nIHZhIG1vdCBraWNo IGJhbiB0aHVvbmcgZ2FwIGRhIGRpZW4gcmE6IA0KdGhhbmggcGhvIHhpbiBkdW9jIG5naGllbSBr aGFjIHR1IHRoYW5oIHRyYSB2YSBvbmcgRHVuZyBkYSAndnVpIHZlIG5oYW4gbG9pJyANCihraG9u ZyBjaG8gVGhhbmggdHJhIENoaW5oIHBodSB2byB0aGFuaCB0cmEgdGhhbmggcGhvIHZpIGxpIGRv IFRoYW5oIHRyYS4uLiBiYW4pLiANCkNoYWMgbGEgVGhhbmggdHJhIENoaW5oIHBodSBjaGkgY2h1 eWVuIGxhbSBuaHVuZyB2dSBhbiAnY2h1b3QgbmhhdCcsIGtob25nIGxhbSAnY2h1b3QgDQpjb25n Jy4gVHJvbmcgbGljaCBzdSBjYWNoIG1hbmcgY3VhIGRhdCBudW9jLCBOZ3V5ZW4gVGFuIER1bmcg Y3VuZyBkYSBjbyBxdXlldCBkaW5oIA0KdHVvbmcgdHUgbGEgY2FuIHRybyB0aGFuaCB0cmEgQ2hp bmggcGh1IHZvIHRoYW5oIHRyYSBjb24gY3VuZyBWaW5hc2luLCBrZXQgY3VjIGxhIFZpbmFzaW4g DQpkYSBjaGltIG5nYXkga2hpIGNodWFuIGJpIHJhIGtob2kga2VvIHRoZW8gZ2FuIDUgdHkgVVNE IHRpZW4gdGh1ZSBjdWEgZGFuLg0KDQpUaWVwIG5vaSBoYW5oIGRvbmcgYmFvIGNoZSBjaG8gdGFw IGRvYW4gdGhhbSBuaHVuZyBMZSBUaGFuaCBIYWksIGNhIG5oYW4gVGh1IHR1b25nIA0KRHVuZyBk YSBxdWEgbWF0IHRhcCB0aGUgKGtob25nIGR1bmcgdGhhbSBxdXllbikgY2hpbmggcGh1IG5nYW5n IG5oaWVuIGhvcCB0aHVjIGhvYSANCmNobyBzYWkgcGhhbSBjdWEgVFBIQ00gYmFuZyBjb25nIHZh biA5NzcvVlBDUC1LTlROIG5nYXkgMy8xMC8yMDA4IGNobyBwaGVwIA0KVFBIQ00gdGh1IGhvaSBk YXQga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIG1hIGtob25nIGNhbiBsYW0gcGh1b25nIGFuIGJv aSB0aHVvbmcgDQpuaHUgbmdoaSBkaW5oIGN1YSBDaGluaCBwaHUgZGEgcXVpIGRpbmguDQoNCkJh dCBkdW9jIHRpbiBoaWV1IHRvdCB0dSBuZ2FpIFRodSB0dW9uZywgZHVvYyBuaGFuIG5odW5nIGRv bmcgdGllbiBoYXUgaGluaCBtYSBjaGluaCANCnF1eWVuIGdvaSBsYSAndGllbiBkdSBhbicsIGNh biBibyBxdWFuIDIgdGhpIG5oYXUgZGFuIGFwIGVwIGRhbiBrZXQgaG9wIHZvaSBsdWEgcGhpbmgg ZGUgDQpkYW4gbmhlIGRhIGtpIGNoYXAgbmhhbiBjaGluaCBzYWNoIGJvaSB0aHVvbmcgYmF0IGx1 b25nLiBRdW9jIGhvaSB0aGkgbmh1IGRhIGJpdCBtYXQsIA0KYml0IHRhaSB0cnVvYyB2dSBhbiBs b24gbmhhdCBsaWNoIHN1IGRhdCBudW9jLg0KDQpEYW4gZGVuIGNodW5nIHRvaSBtdW9uIFF1b2Mg aG9pIHBoYWkgY2h1bmcgdG8gc3UgZHVuZyBjYW0gbWEgbW9pIGRhaSBiaWV1IGRldSBjbyANCnRy b25nIHRyYWkgdGltIG1pbmggdG8gY2h1YyB0aGFuaCB0cmEgMiB2dSBhbiBzaWV1IG5naGllbSB0 cm9uZyBsYSB2dSBWaW5hc2luIHZhIGtodSBkbyANCnRoaSBtb2kgVGh1IFRoaWVtLiBDb24gbmhp ZXUgY2hpIHRpZXQgY2hhbiBkb25nIG51YSwgbmV1IFF1b2MgaG9pIG11b24gYmlldCBjaGFuIHRv IGtlIA0KdG9jIHZ1IHRpZXUgY3VjIG5heSB4aW4gY3UgaG9pIGRvbmcgY2hpIENodSB0aWNoIFRy aWV0IGxhIGJpZXQgaGV0LiBDaHVuZyB0b2kgbW9uZyBuaGFuIA0KZHVvYyB0aG9uZyB0aW4gZGlh IGNoaSBub2kgbyBjdWEgY2FjIGxhbmggZGFvIHRoYW5oIHBobyB2YSBxdWFuIDIgY28gZGluaCBs aXUgZGVuIHZ1IFRodSANClRoaWVtIHZhIGdpYSBkaW5oIGRlIGNvIGRpcCBzZSB2aWVuZyB0aGFt IHZhIHZhbiBkb25nIHRodXlldCBwaHVjIGNhYyAnZG9uZyBjaGknIHRybyB2ZSANCmR1bmcgY29u IGR1b25nIG1hIGRhbmcgZGEgY2hvbi4gQ2F1IHRyb2kga2hhbiBwaGF0IHBodSBobyBjaG8ga2Ug dGh1IGN1YSBuaGFuIGRhbiBsYSANCkxlIFRoYW5oIEhhaSwgTmd1eWVuIFRhbiBEdW5nLCBOZ3V5 ZW4gVHJ1bmcgVGluaCxUYXQgVGhhbmggUGhvbmcsIExlIFRyb25nIFNhbmcgdmEgDQpuaHVuZyBr ZSBiYW8gY2hlLCB0b25nIHBoYW0sIGRvdCBuaGllbiBjbyBsaWVtIHNpIHZhIHR1IG5ndXllbiBr aG9uZyB1bmcgY3UgdHJvbmcgDQpkYWkgaG9pIGRhbmcgdGhhbmggcGhvIHZhIHRydW5nIHVvbmcg dG9pIGRheS4gDQoNCmh0dHA6Ly93d3cudGlhbGlhLmNvbS9zaG93dGhyZWFkLnBocD90PTEzMzEx NyBUaHVyc2RheSwgT2N0b2JlciAyNSwgMjAwNyANCg0KVG9uZyBiaSB0aHU6IEJhbyBjdWEgTWF0 IFRyYW4gVG8gUXVvYyB0byBjYW8gTGUgVGhhbmggSGFpICJwaGEgbmF0IGtlIGhvYWNoIFRodSBU aGllbSIgDQoNClRvIGJhbyBEYWkgRG9hbiBLZXQgZHVhIHJhIGNhYyBjaHVuZyBjdSBkZSBjaHVu ZyBtaW5oIHJhbmcgb25nIExlIFRoYW5oIEhhaSwgaGllbiBsYSANCmJpIHRodSB0aGFuaCB1eSBT YWkgR29uLCBraGkgY29uIGxhIGNodSB0aWNoIFVCTkQgdGhhbmggcGhvLCBkYSBjbyBuaHVuZyBx dXlldCBkaW5oIA0KY2h1eWVuIHF1eWVuLCBkaSBuZ3VvYyBsb25nIGRhbiwgdHJhaSB2b2kgY2Ft IGtldCBiYW4gZGF1IGtoaSBjbyBkdSBhbiBxdWkgaG9hY2gga2h1IA0KdnVjIFRodSBUaGllbSB0 aGFuaCBtb3Qga2h1IGRvIHRoaSBtb2kuDQoNCkNoaW5oIHZpIG5oaWV1IGRpZXUgbW8gYW0gY3Vh IGR1IGFuIERvIFRoaSBNb2kgVGh1IFRoaWVtIG1hIHBoYW4gZG9uZyBjYWMgbmd1b2kgDQpjdSBk YW4gZGlhIHBodW9uZyBiaSBtYXQgbmhhIG1hdCBkYXQgZGEga2hvbmcgY2hpdSBuaGFuIHRpZW4g ZGVuIGJ1LiBNb3QgdHJvbmcgDQpuaHVuZyBseSBkbyBjaGluaCBsYSBuaGFuIG5odW5nIGtob2Fu IHRpZW4gbmF5IHNlIGtob25nIGR1IGRlIG11YSBsYWkgY2hvIG8gZHUgDQpuZ2F5IHRyb25nIG5o dW5nIGtodSB0YWkgZGluaCBjdSBtb2kuIA0KKFhpbiB4ZW0gdGhlbSBiYWkgIkJvIHRyaSB0YWkg ZGluaCBjdSBzYWkgcXV5IGRpbmggbyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0iIG8gcGhhbiB0 aWVwIHRoZW8pIA0KDQpodHRwOi8vZGFubGVudGllbmcud29yZHByZXNzLmNvbS8yMDA5LzAxLzA1 L2Rvbi1jaGF0LXZhbi0lRTIlODAlOTMta2llbi1uZ2hpLXZhLXRvLWNhby1vbmctbGUtdGhhbmgt aGFpLyBkYW5sZW50aWVuZyAwNS8wMS8yMDA5IE1haSBEb2MgDQoNClRydW5nIHVvbmcgRGFuZzog RG9uIENoYXQgVmFuIC0gS2llbiBOZ2hpIFZhIFRvIENhbyBvbmcgTGUgVGhhbmggSGFpDQoNCkRB TkcgQ09ORyBTQU4gVklFVCBOQU0gDQpUcC5IbyBDaGkgTWluaCwgbmdheSAwNC8wMS8yMDA5DQoN CkRPTiBDSEFUIFZBTiAtIEtJRU4gTkdISSBWQSBUTyBDQU8NCkdVSSBIT0kgTkdISSBUUlVORyBV T05HIElYLCBCQU4gQ0hBUCBIQU5IIFRXIERBTkcgS0hPQSBYIA0KDQpLaW5oIGd1aTogDQotIEQv YyBOb25nIER1YyBNYW5oIC0gVG9uZyBiaSB0aHUgdmEgQm8gY2hpbmggdHJpDQotIEQvYyBUcnVv bmcgVGFuIFNhbmcgLSBUaHVvbmcgdHJ1YyBiYW4gYmkgdGh1IHZhIEJhbiBjaGFwIGhhbmggVFcg RGFuZyBraG9hIFgNCg0KLSBDYW4gY3UgbXVjIDMsIGRpZXUgMyBkaWV1IGxlIERhbmcgZGEgcXVp IGRpbmg6ICJEYW5nIHZpZW4gY28gcXV5ZW46IHBoZSBiaW5oLCBjaGF0IA0KdmFuIHZlIGhvYXQg ZG9uZyBjdWEgdG8gY2h1YyBEYW5nIG8gbW9pIGNhcCB0cm9uZyBwaGFtIHZpIHRvIGNodWM7IGJh byBjYW8sIGtpZW4gbmdoaSANCnZvaSBjbyBxdWFuIGNvIHRyYWNoIG5oaWVtIHZhIHlldSBjYXUg ZHVvYyB0cmEgbG9pIg0KLSBDYW4gY3UgbXVjIDUsIGRpZXUgMzIgZGlldSBsZSBEYW5nIGRhIHF1 eSBkaW5oOiAiVUIga2llbSB0cmEgY2FjIGNhcCBjbyBuaGllbSB2dSANCmdpYWkgcXV5ZXQgdG8g Y2FvIGRvaSB2b2kgdG8gY2h1YyBEYW5nIHZhIGRhbmcgdmllbiINCg0KTmF5IHRvaSBsYTogTWFp IERvYyAtIERhbmcgdmllbiBodXUgdHJpLCBoaWVuIG8gdGFpIDM3IFRoYW8gRGllbiwgUC5UaGFv IERpZW4sIFF1YW4gMiwgDQpUcC5IQ00gY28gZG9uIGNoYXQgdmFuIC0ga2llbiBuZ2hpIHZhIHRv IGNhbyBuYXkgZ29pIEhvaSBuZ2hpIFRXIDkgKEhOVFc5KSBub2kgDQpkdW5nIG5odSBzYXU6DQoN ClRydSBITlRXMSwgMiB2YSA4LCBjYWMga3kgY29uIGxhaSB0b2kgZGV1IGRhIGNvIGRvbiBndWkg RU1TIGRlbiB0b25nIGJpIHRodSwgQm8gY2hpbmggDQp0cmkgKEJDVCksIEJhbiBjaGFwIGhhbmgg VFcgKEJDSFRXKSB2YSBjbyBuZ3VvaSBreSBuaGFuIGdpYXkgaG9pIGJhbyBjdWEgYnV1IGRpZW4g DQpuaHVuZyBkZXUgY2h1YSBkdW9jIHRyYSBsb2kuIE5heSB0b2kgdGllcCB0dWMgZ29pIGRvbiBu YXkgZGVuIEhOVFc5IHRob25nIHF1YSBUb25nIA0KYmkgdGh1IC0gQkNUIHZhIEJDSFRXIGNhYyBu b2kgZHVuZyBzYXU6DQoNCkkuIENIQVQgVkFODQoNCjEuIENhbiBzdWEgZG9pIEhpZW4gUGhhcCBu YW0gMTk5MiB0YWkgZGlldSA0IGNobyBwaHUgaG9wIGRpZXUgbGUgRGFuZyBkYSBzdWEgZG9pIHRh aSANCmRhaSBob2kgWCBsYTogIkRhbmcgQ1NWTiBsYSBkb2kgdGllbiBwaG9uZyBjdWEgZ2lhaSBj YXAgY29uZyBuaGFuLCBkb25nIHRob2kgbGEgZG9pIHRpZW4gDQpwaG9uZyBjdWEgbmhhbiBkYW4g bGFvIGRvbmcgdmEgY3VhIGRhbiB0b2MgVmlldCBOYW0iIA0KDQoyLiBDYW4geGF5IGR1bmcgeGEg aG9pIGRhbiBjaHUgY2hvbmcgZG9jIHF1eWVuIGJhbmcgYmEgbHVjIGx1b25nOiBDaGluaCB0cmkg TmhhIG51b2MgDQotIEtpbmggdGUgY2FjIHRoYW5oIHBoYW4gdmEgVmFuIGhvYSB0cnV5ZW4gdGhv bmcuIERvIGxhIG5lbiB0YW5nIHhheSBkdW5nIGNoaWVuIGx1b2MgDQpjdWEgRGFuZyBjYW0gcXV5 ZW4ga2hvbmcgZG9jIHF1eWVuLg0KDQozLiBDYW4gY28gbW90IGJvIG1heSBjaG9uZyB0aGFtIG5o dW5nIHR1IFRXIGRlbiBkaWEgcGh1b25nIGRvYyBsYXAsIHRhY2gga2hvaSBibyANCm1heSBoYW5o IHBoYXAgZGFuZyBjbyBoaWVuIG5heSBnb206IGNhYyBUaHUgVHVvbmcsIFBobyBUaHUgVHVvbmcs IEJvIFRodSBUcnVvbmcsIA0KQ2h1IHRpY2gsIFBobyBDaHUgdGljaCBVQk5EIGNhYyBjYXAgbyBk aWEgcGh1b25nLCBjaGFtIGR1dCB0aHVjIHRyYW5nICJ2dWEgZGEgYm9uZyANCnZ1YSB0aG9pIGNv aSIgbmh1IGxhdSBuYXksIGxhbSBjaG8gTHVhdCBwaG9uZyBjaG9uZyB0aGFtIG5odW5nIGtob25n IHRodWMgdGhpIGNvIGhpZXUgDQpxdWEuDQoNCjQuIEtlIGtoYWkgdGFpIHNhbiBraG9uZyB0aHVj IGhpZW4gdGhlbyBOZ2hpIGRpbmggMzcgY3VhIENoaW5oIHBodSBtYSBUcnVuZyB1b25nIA0KRGFu ZyBwaGFpIGNvIHF1eSBkaW5oIGxvIHRyaW5oIGtlIGtoYWkgYmF0IGRhdSB0dSBUb25nIEJpIFRo dSwgY2FjIFVWQkNULCBVVkJDSCwgDQp0dSB0cnVuZyB1b25nIGRlbiBkaWEgcGh1b25nIGxhIEJp IHRodSB0aW5oIHRoYW5oIHF1YW4gaHV5ZW4uIEJhbiBrZSBraGFpIGRvIHBoYWkgY29uZyANCmto YWkgcmEgY2hvIENCQ05WIGN1YSBjbyBxdWFuIHR1bmcgbmd1b2kgdmEgbGF5IHkga2llbiBuZ3Vv aSBkYW4gbm9pIGhvIGN1IHRydSBtb2kgDQp0aHVjIHN1IGxhIG1pbmggYmFjaC4NCg0KSUkuIEtJ RU4gTkdISQ0KDQoxLiBLaWVuIG5naGkgVHJ1bmcgdW9uZyBEYW5nIHRydW9jIHZhIHNhdSBtb2kg a3kgSE5CQ0hUVywgeWV1IGNhdSBjYWMgVVZCQ1QsIA0KVVZCQ0gsIHZlIHR1bmcgZGlhIHBodW9u ZyBub2kgY29uZyB0YWMgaG9hYyBub2kgY3UgdHJ1IGhvYWMgZHVvYyBjdSBkZW4gZGUgdGllcCB4 dWMgDQp2b2kgRGFuZyB2aWVuIHRhaSB0dW5nIHF1YW4gaHV5ZW4gbmh1IERCUUggdGllcCB4dWMg Y3UgdHJpIHRydW9jIHZhIHNhdSBtb2kga3kgaG9wIA0KUXVvYyBob2kuIFRydW5nIHVvbmcgRGFu ZyBjYW4gZHVhIHJhIHF1eSBjaGUgdGh1YyBoaWVuIHZpZWMgdGllcCB4dWMgbmF5IGRlIHBobyBi aWVuIA0KZGVuIERhbmcgdmllbiB0dW5nIGNoaSBiby4gRGUgdmllYyB0aWVwIHh1YyBjbyBoaWV1 IHF1YSBjYW4gdGhvbmcgYmFvIG5vaSBkdW5nIGNhYyBreSANCmhvcCBkZSB0dW5nIGNoaSBibyBo b3AgRGFuZyB2aWVuIHRodSB0aGFwIHkga2llbiB2YSBjdSBuZ3VvaSBkYWkgZGllbiBkZW4gdGhh bSBkdS4gVGFpIA0Ka3kgaG9pIG5naGkgdHJ1bmcgdW9uZyBjYW4gcGhhaSB0b25nIGhvcCB2YSBj b25nIGtoYWkgeSBraWVuIERhbmcgdmllbiBkZSBob2kgbmdoaSB4ZW0gDQp4ZXQgZ2lhaSBxdXll dCB2YSB0cmEgbG9pLiBUaG9pIGdpYW4gdGllcCB4dWMgdG9pIHRoaWV1IHR1IDhoIHRybyBsZW4g aG9hYyBob24uIFNhdSBob2kgbmdoaSANCmNoaW5oIG5odW5nIG5ndW9pIGRpIHRpZXAgeHVjIHBo YWkgZGkgcGhvIGJpZW4gTmdoaSBxdXlldCBob2kgbmdoaSB0cnVuZyB1b25nLiBCYWkgYm8gDQp2 aWVjIGxhdSBuYXkgY3UgYmFvIGNhbyB2aWVuIGRpIHRydXllbiBkYXQgbmdoaSBxdXlldCB2dWEg InRhbSBzYW8gdGhhdCBiYW4iLCB2dWEgbGFuZyANCnBoaSBuZ3VvaSB2YSB0aWVuIGN1YS4NCg0K Mi4gS2llbiBuZ2hpIGJhaSBibyBRdXkgZGluaCAxOSB2YSBuYXkgbGEgUXV5IGRpbmggMTE1IHZl IDE5IGRpZXUgRGFuZyB2aWVuIGtob25nIA0KZHVvYyBsYW0uIERvIGxhIHF1eSBkaW5oIGRlIERh bmcgZHVuZyB0cmVuIHBoYXAgbHVhdCBjYW4gYmFpIGJvIGRlIG1vaSBkYW5nIHZpZW4gc29uZyAN CnZhIGxhbSB2aWVjIHRoZW8gcGhhcCBsdWF0LCBiaW5oIGRhbmcgbmh1IG1vaSBjb25nIGRhbiBr aGFjLg0KDQozLiBLaWVuIG5naGkgdmUgUXV5ZXQgZGluaCAxNTggdmEgcXV5IGNoZSBjaGF0IHZh biB0cm9uZyBEYW5nIGxhIG5oYW0ga2hvbmcgY2hlLCB0aHUgDQpoZXAgcXV5ZW4gY3VhIG5ndW9p IERhbmcgdmllbiBtYSBkaWV1IGxlIGRhIHF1eSBkaW5oIGRlIG1vaSBkYW5nIHZpZW4gdGh1YyBo aWVuIHF1eWVuIA0KY3VhIG1pbmgga2hvbmcgaGFuIGNoZSB2aWVjIGNoYXQgdmFuIGRvaSB2b2kg Y2FwIG5hbyB0dSB0cnVuZyB1b25nIGRlbiBjbyBzbyBEYW5nLg0KDQo0LiBLaWVuIG5naGkgdHJ1 bmcgdW9uZyBEYW5nIGNhbiBzb20gZ2lhaSBxdXlldCB2YSBjb25nIGtoYWkga2V0IHF1YSBnaWFp IHF1eWV0IGNhYyBub2kgDQpkdW5nIHRvIGNhbyBjdWEgdG9pIHZlIG9uZyBMZSBUaGFuaCBIYWkt VVZCQ1QsIFVWQkNILCBCaSB0aHUgdGhhbmggdXkgVHAuSENNIA0KbWEgdG9pIGRhIGNvIGRvbiBs aWVuIHR1YyB0byBjYW8gdHUgZGFpIGhvaSAxMCB2YSBjYWMga3kgaG9pIG5naGkgQmFuIGNoYXAg aGFuaCB0cnVuZyANCnVvbmcga2hvYSAxMC4gRG9uIHRvIGNhbyB0b2kga3kgZ3VpIEhOVFc3IG5n YXkgMDEvNy8yMDA4IGRhIHlldSBjYXUgQkNIVFcgDQpndW9uZyBtYXUgY2hhcCBoYW5oIGR1bmcg cXV5IGRpbmggY3VhIGRpZXUgbGUgRGFuZyBkYSBxdXkgZGluaCB0YWkgbXVjIDMgZGlldSAzNiBk ZSANCiJxdXlldCBkaW5oIGNhYyBoaW5oIHRodWMga3kgbHVhdCBEYW5nIHZpZW4ga2UgY2EgVVZC Q0hUVywgVVYgYmFuIGJpIHRodSwgVVZCQ1QiLiBUb2kgDQpkYSBraWVuIG5naGksIHZvaSBvbmcg TGUgVGhhbmggSGFpLCBCQ0hUVyBraG9hIDEwIGNhbiBjbyBreSBsdWF0IGNhbyANCm5oYXQgbGEg a2hhaSB0cnUgZGFuZywgYmFpIG1pZW4gY2h1YyBkYW5oIGRhbmcgY28gdmEgY2h1eWVuIHNhbmcg Y28gcXVhbiBwaGFwIGx1YXQgZGlldSANCnRyYSBjYWMgbm9pIGR1bmcgdG8gY2FvIGN1YSB0b2kg ZGUgeHUgbHkgdGhlbyBsdWF0IGhpbmggc3UgLg0KDQpJSUkuIFRPIENBTw0KDQpUaWVwIHR1YyB0 byBjYW8gb25nIExlIFRoYW5oIEhhaSBuZ29haSAxNiBoYW5oIHZpIGRhIHRvIGNhbyB0cm9uZyBk b24gZGEgZ3VpIEhOVFc3IA0Ka3kgbmdheSAwMS83LzIwMDggbmF5IHhpbiBuaGFjIGxhaSB2YSBi byBzdW5nIG5odSBzYXU6DQoNCjEuIFR1IG5hbSAyMDAwIGRlbiAyMDA4LCBuaHUgdHJvbmcgZG9u IHRvIGNhbyBndWkgSE5UVzcgb25nIExlIFRoYW5oIEhhaSBkYSBjbyAxNiANCmhhbmggdmkga2hv bmcgY29uIHh1bmcgZGFuZyBsYSBuZ3VvaSBEYW5nIHZpZW4gY2h1IGtob25nIG5vaSB2b2kgY2h1 YyBkYW5oIGxhIDEgDQpVVkJDSCwgMSBVVkJDVCB2YSBCaSB0aHUgdGhhbmggdXkuIFRyb25nIGRv biBndWkgSE5UVzYgdG9pIGt5IG5nYXkgMDkvMTIvMjAwNyANCm9uZyBkYSBjbyAzIGhhbmggdmkg dHJvbmcgMTIgaGFuaCB2aSB0aGFtIG5odW5nIGRhIGR1b2MgbHVhdCBwaG9uZyBjaG9uZyB0aGFt IG5odW5nIA0KcXV5IGRpbmggdGFpIGRpZXUgMy4NCg0KMi4gRGFjIGJpZXQgeGluIHRvIGNhbyBi byBzdW5nIGhhbmggdmkgb25nIExlIFRoYW5oIEhhaSBsYSBDaHUgdGljaCBVQk5EIHRoYW5oIHBo bywgbGEgDQpjaHUgZGF1IHR1IGR1IGFuIGRhaSBsbyBEb25nIFRheSBkYSBkZSBvbmcgSHV5bmgg TmdvYyBTaSwgUGhvIGdpYW0gZG9jIFNvIGdpYW8gdGhvbmcgDQpjb25nIGNoaW5oLCBjaHUgbmhp ZW0gZHUgYW4gc2F1IG5heSBsYSB4dWkgZ2lhLCBkYSBuaGFuIGhvaSBsbyBjdWEgUENJIHZhIE5o YXQgQmFuIGRhIA0KdGh1IGx5IHhldCB4dSwgbGEgaGFuaCB2aSB0cnVjIHRpZXAgbGllbiBxdWFu IGNvIHRvIGNodWMgdmUgbmhhbiBob2kgbG8sIGxhIGhhbmggdmkgdGhhbSANCm5odW5nIGNhbiB4 dSBseSB0aGVvIGx1YXQgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyB2YSBsdWF0IGhpbmggc3UuDQoN CjMuIFRvIGNhbyB0byBjaHVjIERhbmcgbGEgUXVhbiB1eSBxdWFuIDIgdmUgY2FjIGhhbmggdmkg dG9pIGRhIGR1YSByYSB0cm9uZyBkb24gdG8gY2FvIA0Ka3kgbmdheSAwMS83LzIwMDggZ3VpIEJD SFRXIHRhaSBITlRXOCBsYSBoYW5oIHZpIG1hdCB0aW5oIERhbmcsIHZpIHBoYW0gaGllbiANCnBo YXAgdmEgdmkgcGhhbSBsdWF0IGtoaWV1IG5haSB0byBjYW8gY3VhIFF1YW4gdXkgcXVhbiAyLiBL aWVuIG5naGkgVUIga2llbSB0cmEgdHJ1bmcgDQp1b25nIHZhIEhOVFc5IGNhbiB4dSBseSBreSBs dWF0IHRoZW8gZHVuZyBxdXkgZGluaCB0YWkgbXVjIDUgZGlldSAzMiBkaWV1IGxlIERhbmcuDQoN ClRyZW4gZGF5IGxhIGNhYyBub2kgZHVuZyBjaGF0IHZhbi1raWVuIG5naGkgdmEgdG8gY2FvIGN1 YSBEYW5nIHZpZW4gdG9pIHlldSBjYXUgSE5UVzkgDQpjaGkgZGFvLCBnaWFpIHF1eWV0IHZhIHRy YSBsb2kgdG9pIHRoZW8gZGlldSBsZSBEYW5nLg0KDQpLaW5oIGNodWMgSE5UVSA5IHRoYW5oIGNv bmcuIA0KVHJhbiB0cm9uZyBraW5oIGNoYW8uDQpEYW5nIHZpZW4gDQpNYWkgRG9jIA0KDQpodHRw Oi8vd3d3LnZpZXRuYW1leG9kdXMub3JnL3ZuZTA1MDgvdm5lbmV3czEvYmFuZG9jdmlldC9uZXdz L2RhbmclMjBjb25nJTIwc2FuJTIwMjItMDkuaHRtDQoNCkRvbiB0byBjYW8gdmEgY2hhdCB2YW4g Y3VhIG1vdCB2aSBMYW8gdGhhbmggDQoNClRQLiBIbyBDaGkgTWluaCwgbmdheSAwNSB0aGFuZyAx MCBuYW0gMjAwOQ0KDQpET04gQ0hBVCBWQU4gliBUTyBDQU8gliBLSUVOIE5HSEkgR1VJIEhPSSBO R0hJIFRSVU5HIFVPTkcgMTEgDQpCQU4gQ0hBUCBIQU5IIFRSVU5HIFVPTkcgREFORyBLSE9BIDEw DQoNCktpbmggZ3VpOiAtIE9uZyBOb25nIER1YyBNYW5oIJYgVG9uZyBiaSB0aHUgdmEgY2FjIHV5 IHZpZW4gQm8gY2hpbmggdHJpDQotIE9uZyBUcnVvbmcgVGFuIFNhbmcgliBUaHVvbmcgdHJ1YyBC YW4gYmkgdGh1IHZhIEJDSCBUVyBLMTANCi0gT25nIE5ndXllbiBWYW4gQ2hpIJYgQ2h1IG5oaWVt IFV5IGJhbiBraWVtIHRyYSBUVyBkYW5nIEsxMA0KDQpDYW4gY3UgbXVjIDMgZGlldSAzIHZlIG5n dW9pIGRhbmcgdmllbiBjbyBxdXllbiBjaGF0IHZhbiwga2llbiBuZ2hpIHZhIGNhbiBjdSBtdWMg NSANCmRpZXUgMzIgdmUgZ2lhaSBxdXlldCB0byBjYW8gZG9pIHZvaSB0byBjaHVjIGRhbmcgdmEg ZGFuZyB2aWVuIGN1YSBkaWV1IGxlIGRhbmcgMjAwNiBkYSANCnF1eSBkaW5oOyB0b2kgZGFuZyB2 aWVuIGh1dSB0cmkgdGVuIGxhIE1haSBEb2MgaGllbiBvIHRhaSAzNyBUaGFvIERpZW4sIFAuIFRo YW8gRGllbiwgDQpRLjIsIFRQLiBIQ00gY28gZG9uIG5heSBndWkgSG9pIG5naGkgVHJ1bmcgdW9u ZyAxMSAoSE5UVzExKSBjbyBjYWMgbm9pIGR1bmcgc2F1Og0KDQpJLiBDSEFUIFZBTjogDQoNClNh dSBraGkgZG9jIHRob25nIGJhbyBITlRXMTAgdmEgQ3VvbmcgTGluaCAxOTkxIGRvaSBjaGlldSB2 b2kgdGh1YyB0ZSB0cm9uZyBEYW5nIA0KaGllbiBuYXkgeGluIGNoYXQgdmFuIG5odSBzYXU6DQoN CjEuIENoYXQgdmFuIFRvbmcgQmkgdGh1OiANCg0KR2FuIDIgbmhpZW0ga3kgZ2l1IGN1b25nIHZp IFRvbmcgQmkgdGh1IGRvbmcgY2hpIGNhbiBjb25nIGtoYWkgdHJhIGxvaSBjaG8gZGFuZyB2aWVu IA0KdG9hbiBEYW5nIGJpZXQgdmUgdHJhY2ggbmhpZW0gbmd1b2kgZHVuZyBkYXUgRGFuZyB2ZSBx dWFuIGhlIGNoaW5oIHRyaSBWaWV0IE5hbSCWIA0KVHJ1bmcgUXVvYyB0cm9uZyB2aWVjIGdpYWkg cXV5ZXQgYmllbiBnaW9pIHRyZW4gZGF0IGxpZW4gdmEgdHJlbiBiaWVuIGRhbyBuaHUgdGhlIG5h bywgdGhlIA0KaGllbiBxdWEgY2FjIGNodXllbiB2aWVuZyB0aGFtLCBob2kgZGFtIHZhIHR1eWVu IGJvIGNodW5nIHN1b3QgMiBuaGllbSBreSBxdWEsIG1hIA0KdGhvbmcgdGluIHRyZW4gbWFuZyBj byBuaGlldSBkaWV1IHRyYWkgbmd1b2MgbmhhdT8gTmhhbiBkb3QgaG9jIHRhcCB2YSBsYW0gdGhl byB0YW0gDQpndW9uZyBkYW8gZHVjIEhvIENoaSBNaW5oLCBUb25nIEJpIHRodSBsYSBUcnVvbmcg YmFuIGNoaSBkYW8gbGEgaGF1IGR1ZSBjbyBkb2kgY2hpZXUgDQpsaWNoIHN1IFZpZXQgTmFtIHZl IHF1YW4gaGUgVmlldCBOYW0gliBUcnVuZyBRdW9jIHF1YSBuaGlldSB0cmlldSBkYWkgZGUgY28g YmFpIGhvYyANCmNhbiBub2kgdGhlbyB0YW0gZ3VvbmcgdG8gdGllbiBjaGEgb25nIGtob25nPw0K DQoyLiBDaGF0IHZhbiBjYWMgdXkgdmllbiBCbyBjaGluaCB0cmkgdmEgQm8gY2hpbmggdHJpIChV VkJDVCCWIEJDVCkNCg0KYS4gVHUgdGh1YyB0ZSBkYSB4YXkgcmEgdHJvbmcgbmhpZW0ga3kgMTAg dmEgY2FuIGN1IG5vaSBkdW5nIHRyb25nIEN1b25nIGxpbmggMTk5MSB2ZSANCnZhaSB0cm8gbGFu aCBkYW8gY3VhIERhbmcgZGEgZGUgcmEgbGE6ICJEYW5nIGtob25nIGxhbSB0aGF5IGNvbmcgdmll YyBjdWEgY2FjIHRvIGNodWMgDQpraGFjIHRyb25nIGhlIHRob25nIGNoaW5oIHRyaSIgdGhpIEJv IGNoaW5oIHRyaSBraG9hIDEwIGNvIGxhbSBkdW5nIG5odSB2YXkga2hvbmc/IFhpbiANCmNoYXQg dmFuIHF1YSAxIHNvIGNvbmcgdmllYyBjdSB0aGUgbWEgQkNUIGtob2EgMTAgZGEgbGFtIGxhOg0K DQphLjEuIFZpZWMgcGhhIEhvaSB0cnVvbmcgQmEgRGluaCBkZSB4YXkgbW9pIGRhIGNvIG5oaWV1 IHkga2llbiBiYXQgYmluaCBndWkgZGVuIFRydW5nIA0KdW9uZyBEYW5nLCB0cm9uZyBkbyBkYWMg YmlldCBsYSBEYWkgVHVvbmcgVm8gTmd1eWVuIEdpYXAgZGEgY28gdGh1IGd1aSBCQ1QsIGd1aSBj YWMgDQpiYW8uIE5nb2FpIHJhIGNvIHJhdCBuaGlldSBsYW8gdGhhbmggY2FjaCBtYW5nIGNhbyBu aWVuIGRldSBjbyBuaGlldSB5IGtpZW4gZGEgY2hpIHJvOiANCkhvaSB0cnVvbmcgQmEgRGluaCBs YSBub2kgZ2hpIG5oaWV1IGRhdSBhbiBsaWNoIHN1IGN1YSBEYW5nIHZhIFF1b2MgSG9pLiBEYWMg YmlldCBkbyBsYSANCm5vaSBCYWMgSG8geWVuIG5naGkgZGF1IHRpZW4ga2hpIHF1YSBkb2kgZGUg dG9hbiBEYW5nIHRvYW4gZGFuIHZhIGJhbiBiZSBxdW9jIHRlIGRlbiANCmtpbmggdmllbmcuIFZp ZWMgbGFtIG5heSBjdWEgQkNUIGNvIHBoYWkgZGEgbGFtIHRoYXkgY2FjIHRvIGNodWMgY2hpbmgg dHJpIGtoYWMgbmVuIA0Ka2hvbmcgY2FuIHRydW5nIGNhdSB5IERhbmcsIGxvbmcgZGFuLCBiYXQg Y2hhcCBtb2kgcGhhbiB1bmcgeGEgaG9pPw0KDQphLjIuIFZpZWMgbW8gcm9uZyB0aHUgZG8gSGEg Tm9pIGNoaSBnaW9pIHRoaWV1IHBodW9uZyBhbiBxdWEgdHJpZW4gbGFtIG8gSGEgTm9pIG1hIA0K a2hvbmcgZHVhIHJhIHRydW5nIGNhdSByb25nIHJhaSBuaGFuIGRhbiB0YWkgSGEgTm9pIHZhIGNh IG51b2MgdmkgdGh1IGRvIGxhIGN1YSBjYSBudW9jLiANClZpZWMgbGFtIG5heSBkYSBkdWEgcmEg dHJ1b2Mga3kgaG9wIFF1b2MgaG9pIGtoaSBkdSBsdWFuIGRvaSBob2kgbGEsIG5oYW0gc2FwIG5o YXAgdmFvIA0KdGh1IGRvIGNhYyBkaWEgcGh1b25nIGRhIGNvIGRhdCBjdWEgbW90IHNvIHF1YW4g Y2h1YyBjYW8gY2FwIHRoYW5oIGRhdCB0aHUgZG8gZ2lhIHRyaSANCmhvbiBsYSBkdW5nIGhheSBz YWk/DQoNCmEuMy4gVmllYyBraGFpIHRoYWMgQm94aXQgVGF5IE5ndXllbiBkZSBjYWMgY29uZyB0 eSBUcnVuZyBRdW9jIHZhbyBkYXUgdHV1IHhheSBkdW5nIA0KZHVhIGx1YyBsdW9uZyBsYW8gZG9u ZyBUcnVuZyBRdW9jIHZhbyBsYW0gdmllYzsgbWEgZGFpIHR1b25nIFZvIE5ndXllbiBHaWFwLCBu Z3VvaSANCnRpZW4gbmhpZW0gdHJvbmcgY2hpbmggcGh1IGRhIGd1aSB0aHUgY2hpIHJvIHkga2ll biBjYWMgY2h1eWVuIGdpYSBudW9jIG5nb2FpIDI5IG5hbSANCnRydW9jIGRhIGtodXllbiBraG9u ZyBuZW4ga2hhaSB0aGFjIHZhIERhaSB0dW9uZyBkZSBuZ2hpIEJDVCBjYW4geGVtIHhldCBsYWku IERhIGNvIA0KaGFuZyBsb2F0IG5oYSBraG9hIGhvYyB0cm9uZyB2YSBuZ29haSBudW9jLCBjYWMg bmhhIHZhbiwgbmhhIGJhbyBkYSBsZW4gdGllbmcgYnVvYyBUaHUgDQp0dW9uZyBjaGluaCBwaHUg dHJhIGxvaSBiYW8gdmEgZHUgbHVhbiBsYSBCQ1QgZGEga2V0IGx1YW4gcm9pLiBUcm9uZyBkb24g Y2hhdCB2YW4gdmEgDQpraWVuIG5naGkgY3VhIHRvaSBreSBuZ2F5IDA0LzA0LzIwMDkgZ3VpIFRX IERhbmcgZGEgbm9pIHJvOiBkYXkgbGEgdmllYyBsYW0gdGhheSBkYSB2aSANCnBoYW0gbXVjIDAz IGRpZXUgMDIgbHVhdCBUbyBjaHVjIFF1b2MgSG9pIGRhIHF1eSBkaW5oIHF1eWVuICJRdW9jIGhv aSBxdXlldCBkaW5oIGtlIA0KaG9hY2ggcGhhdCB0cmllbiBraW5oIHRlIHhhIGhvaSBjdWEgZGF0 IG51b2MiOyB2YSBkaWV1IDgzIEhpZW4gcGhhcCBkYSBxdXkgZGluaCAiUXVvYyANCmhvaSBsYSBj byBxdWFuIGRhaSBiaWV1IGNhbyBuaGF0IGN1YSBuaGFuIGRhbi4uLiBRdW9jIGhvaSBxdXlldCBk aW5oIG5odW5nIGNoaW5oIHNhY2ggDQpjbyBiYW4gdmUgZG9pIG5vaSwgZG9pIG5nb2FpIHZhIG5o aWVtIHZ1IGtpbmggdGUgeGEgaG9pLi4uIiBjaHUga2hvbmcgcGhhaSBsYSBjb25nIHZpZWMgDQpj dWEgQm8gY2hpbmggdHJpIGtob2EgMTAuDQoNCmIuIFhpbiBjaGF0IHZhbiBCQ1Qga2hvYSAxMCB2 ZSBuaHVuZyB2YW4gZGUgdG9uIHRhaSB0cm9uZyBEYW5nIGRhIGtlbyBkYWkgbmhpZXUga2hvYSAN Cm1hIHRydW9jIERhaSBob2kgMTAgY2FjIHZpIHRpZW4gbmhpZW0sIGNhYyB0dW9uZyBsaW5oIGRh IGdpdWkgZG9uIHlldSBjYXUgZ2lhaSBxdXlldCANCm5odW5nIERhaSBob2kgMTAgbGFpIGdpYW8g Y2hvIEJDVCBraG9hIDEwIHRpZXAgdHVjIGdpYWkgcXV5ZXQuIE5heSBzYXAgaGV0IG5oaWVtIGt5 IHhpbiANCmhvaSBCQ1Qga2hvYSAxMCBkYSBnaWFpIHF1eWV0IGRlbiBkYXUgbWEga2hvbmcgY29u ZyBibyByYSB0cm9uZyB0b2FuIERhbmcgYmlldCBoYXkgbGEgDQp0aWVwIHR1YyBiYW4gZ2lhbyBj aG8ga2hvYSAxMT8gRG8gbGEgY2FjIHZhbiBkZTogLSBEYW5nIHRpY2ggb25nIExlIER1YyBBbmgg liBDYWMgdnUgDQphbiBjaGluaCB0cmkgY3VhIFRvbmcgY3VjIDIgbGEgdnUgWGllbSBSaWVwLCB2 dSBTYXUgU3UsIHZ1IFQ0LiBDYWMgZG9uZyBjaGkgVm8gTmd1eWVuIA0KR2lhcCwgTmd1eWVuIE5h bSBLaGFuaCwgUGhhbSBWYW4gWG8sIERvbmcgVmFuIENvbmcsIE5ndXllbiBWYW4gVGhpIGRhIG5o aWV1IA0KdGh1IGd1aSBCQ1Qga2hvYSA5IHZhIERhaSBob2kgMTAgbmh1bmcgdmkgc2FvIGtob25n IGdpYWkgcXV5ZXQgdmEgdHJhIGxvaT8gSGF5IEJDVCANCmtob2EgMTAgY3UgZGUgImRheSBjaHVu ZyBraG8gZHV0IiCWICJjdXQgdHJhdSBkZSBsYXUgaG9hIGJ1biIgY2hvIGRlbiBraGkgY2FjIHZp IG5heSANCnF1YSBkb2kgdmEgdGh1YyB0ZSBkYSBjbyBoYWkgdmkgcXVhIGRvaSBsYSBvbmcgRG9u ZyBWYW4gQ29uZyB2YSBQaGFtIFZhbiBYbywgY29uIHRhdCANCmNhIGRhbmcgbmdheSBjYW5nIGdp YSB5ZXUsIGNobyBtYXkgdmkgbmF5IG1hdCBkZSBtYXQgbmhhbiBjaHVuZyBsaWNoIHN1IHBoYWkg a2hvbmc/DQoNCmMuIFhpbiBjaGF0IHZhbiBCQ1QgdmUgbW90IHV5IHZpZW4gQkNUIGxhIEJpIHRo dSB0aGFuaCB1eSBIQ00gb25nIExlIFRoYW5oIEhhaSB2b2kgDQpoYW5nIGxvYXQgZG9uIHRvIGNh byBjdWEgdG9pIG5nYXkgc2F1IERhaSBob2kgMTAgdmkgc2FvIGtob25nIGR1b2MgZ2lhaSBxdXll dCB0cmEgbG9pIHRoZW8gDQpkaWV1IGxlIERhbmcgcXV5IGRpbmg/IE9uZyBMZSBUaGFuaCBIYWkg Y28gcGhhaTogImxhIGNhbiBibyBEYW5nLCBjYW4gYm8gbmhhIG51b2MgDQp2dWEgbGEgbmd1b2kg bGFuaCBkYW8gdnVhIGxhIG5ndW9pIGRheSB0byB0cnVuZyB0aGFuaCBjdWEgZGFuIiBraG9uZywg bWEgZGEgY2hpIGRhbyANClF1YW4gdXkgcXVhbiAyIHBoYWkgZHVuZyAiYmFuIHRheSBzYXQiIHRy b25nIHF1YW4gbHkgc3UgZHVuZyBkYXQsIHF1YW4gbHkgeGF5IGR1bmcsIA0KcXVhbiBseSBxdXkg aG9hY2ggdGFpIGRpYSBwaHVvbmc/IFRhaSBzYW8gc3VvdCBuaGllbSBreSBjYWMga3kgaG9wIEJD VCBraG9uZyBtb3QgdXkgDQp2aWVuIG5hbyBsZW4gdGllbmcgcGhlIHBoYW4/IENvbiBuZ3VvaSBk YW4gVFAuIEhDTSBsZW4gdGllbmcgdmkgb25nIExlIFRoYW5oIEhhaSBsYSANClRhbiBUaHV5IEhv YW5nLCBsYSBIaXRsZSwgbGEgUGlub2NoZSB0aGkgY28gY29uIHR1IGNhY2ggbW90IERhbmcgdmll biBiaW5oIHRodW9uZyBjaHUgDQpraG9uZyBub2kgbGEgbW90IGRhbmcgdmllbiBjYW8gY2FwIG51 YSBwaGFpIGtob25nPw0KIA0KMy4gQ2hhdCB2YW4gQmFuIEJpIHRodSB2YSBCYW4gQ2hhcCBoYW5o IGtob2EgMTANCg0KQ2FuIGN1IGRpZXUgbGUgZGFuZyBkYSBxdXkgZGluaCB0YWkgbXVjIDEgZGll dSAxNiBsYSAiQkNIIFRXIHRvIGNodWMgY2hpIGRhbyB0aHVjIA0KaGllbiBDdW9uZyBsaW5oIGNo aW5oIHRyaSwgRGlldSBsZSBkYW5nLi4uIiB2YSBtdWMgMyBkaWV1IDE3IGxhICJCYW4gQmkgVGh1 IGxhbmggZGFvIA0KY29uZyB2aWVjIGhhbmcgbmdheSBjdWEgRGFuZy4uLiIgeGluIGNoYXQgdmFu IHZpIHNhbyBraG9uZyBjaGkgZGFvIHRodWMgaGllbiBkaWV1IGxlIA0KRGFuZyB2YSBraG9uZyBs YW5oIGRhbyBjb25nIHZpZWMgaGFuZyBuZ2F5IGRlIHRyYSBsb2kgY2FjIGRvbiBjaGF0IHZhbiBr aWVuIG5naGksIHRvIGNhbyANCmN1YSB0b2kgZGEgZ3VpIEVNUyBkZW4gZHVuZyBkaWEgY2hpIGNv IG5ndW9pIGt5IG5oYW4gZ2lheSBob2kgYmFvLCBtYSBkaWV1IGxlIGRhIHF1eSANCmRpbmggcm8g bGEgInlldSBjYXUgZHVvYyB0cmEgbG9pIiAobXVjIDMgZGlldSAzKT8gTmF5IHRpZXAgdHVjIGNo YXQgdmFuIEJhbiBCaSB0aHUgdmEgDQpCQ0ggdGFpIEhvaSBuZ2hpIHRydW5nIHVvbmcgMTEgdmUg bm9pIGR1bmcgOCB2YW4gYmFuIHRvaSBkYSBndWksIHhpbiBuaGFjIGxhaSBsYToNCg0KMy4xIFZh biBiYW4ga3kgbmdheSAxLzUvMjAwNjogY2hhdCB2YW4gdmUgOCBraHV5ZXQgZGllbSBraG9uZyBk dW9jIGdpb2kgdGhpZXUgZGUgY3UgDQp2YW8gQkNIIGtob2EgMTAgdGFpIHNhbyBvbmcgTGUgVGhh bmggSGFpIGNvIGRlbiA2IGtodXlldCBkaWVtIHRvaSBkYSB2YWNoIHJhIHRydW9jIA0KRGFpIGhv aSAxMCBtYSB2YW4gZHVvYyBnaW9pIHRoaWV1IGRlIHRydW5nIGN1IHZhbyBjYSBCQ1Q/DQoNCjMu MiBWYW4gYmFuIGt5IG5nYXkgMjEvNy8yMDA2IGd1aSBIb2kgbmdoaSBUVzM6IGNvIG5hbSBraWVu IG5naGkgbGE6IC0gQmFpIGJvIHF1eSANCmRpbmggMTkgbmF5IGxhIHF1eSBkaW5oIDExNSCWIGdp YWkgdGhlIEJhbiBjaGkgZGFvIFRXIDYvMiB0dSBUVyB4dW9uZyBkaWEgcGh1b25nIJYgDQpjb25n IGJvIDE2IHZhbiBkZSBraGFjIG5oYXUgdHJvbmcgYmFvIGNhbyB0aWVwIHRodSB5IGtpZW4gZG9u ZyBnb3AgdmFuIGtpZW4gRGFpIGhvaSAxMCANCm1hIG1vaSBjaGkgY29uZyBibyAyIHZhbiBkZSBj aG9uZyB0aGFtIG5odW5nIHZhIERhbmcgdmllbiBsYW0ga2luaCB0ZSB0dSBuaGFuLCBjb24gDQox MiB2YW4gZGUgbGEgZ2k/IJYgYmFpIGJvIHZpZWMgaGFuZyBuYW0gZGFuaCBnaWEgY2hhdCBsdW9u ZyBEYW5nIHZpZW4gdmEgdG8gY2h1YyBEYW5nIA0KdHJvbmcgc2FjaCB2dW5nIG1hbmggbGEgcmF0 IGhpbmggdGh1YywgcGhhbiB0YWMgZHVuZywgZGllbiBoaW5oIGxhIHZ1IFBNVTE4IJYgdGFpIHNh byANCnRydW9jIG1vaSBreSBIb2kgbmdoaSBUVyBraG9uZyB0byBjaHVjIGNobyBjYWMgVVZCQ0gg dGllcCB4dWMgdm9pIGRhbmcgdmllbiBuaHUgDQp0cnVvYyBreSBob3AgUXVvYyBob2ksIGNhYyBk YWkgYmlldSBRdW9jIGhvaSB0aWVwIHh1YyBjdSB0cmk/DQoNCjMuMyBWYW4gYmFuIGt5IG5nYXkg Mi8xLzIwMDcgZ3VpIEhvaSBuZ2hpIFRXNDogbmhhYyBsYWkgY2FjIGtpZW4gbmdoaSBkYSBndWkg SG9pIG5naGkgDQpUVzMgdmEga2llbiBuZ2hpIGdpYWkgcXV5ZXQgZG9uIHRvIGNhbyBvbmcgTGUg VGhhbmggSGFpIHRoZW8gcXV5IGRpbmggY3VhIGRpZXUgbGUgDQpEYW5nIHRhaSBtdWMgNSBkaWV1 IDMyLg0KDQozLjQgVmFuIGJhbiBreSBuZ2F5IDMwLzUvMjAwNyBndWkgSG9pIG5naGkgVFc1OiBj byA1IGtpZW4gbmdoaSB2ZTogZG9pIG1vaSBwaHVvbmcgDQp0aHVjIGxhbmggZGFvIGN1YSBEYW5n IHBoYWkgZG9pIG1vaSBwaHVvbmcgdGh1YyBsYW5oIGRhbyAzIGNvIHF1YW4gbGFwIHBoYXAsIGhh bmggDQpwaGFwLCB0dSBwaGFwIGRlIGR1b2MgZG9jIGxhcCBuaGF1LCBraG9uZyB0aWVwIHR1YyBk ZSB0aHVjIHRyYW5nIGxhdSBuYXkgInZ1YSBkYSBib25nIA0KdnVhIHRob2kgY29pIiwgbmhhdCBs YSBvIGNvIHF1YW4gaGFuaCBwaGFwIHZhIHR1IHBoYXAuDQoNCjMuNSBWYW4gYmFuIGt5IG5nYXkg OS8xMi8yMDA3IGd1aSBIb2kgbmdoaSBUVzY6IGNvIDMgY2hhdCB2YW4gdmUgc3VhIGRvaSBIaWVu IHBoYXAgDQpjaG8gcGh1IGhvcCBkaWV1IGxlIERhbmcgZGEgc3VhIGRvaSB0YWkgRGFpIGhvaSAx MCB2ZSBEYW5nIGNvbmcgc2FuIJYgeGF5IGR1bmcgeGEgaG9pIA0KZGFuIGNodSCWIGNhaSBjYWNo IGhhbmggY2hpbmggdmEgY2hvbmcgdGhhbSBuaHVuZy4gQ28gNCB0byBjYW8gb25nIExlIFRoYW5o IEhhaSB0dSANCjIwMDQgliAyMDA3IHZhIDMgaGFuaCB2aSB0aGFtIG5odW5nIHRoZW8gcXV5IGRp bmggdGFpIG11YyA0LCA2LCAxMiBkaWV1IDMgbHVhdCBwaG9uZyANCmNob25nIHRoYW0gbmh1bmcu DQoNCjMuNiBWYW4gYmFuIGt5IG5nYXkgMS83LzIwMDggZ3VpIEhvaSBuZ2hpIFRXNzogbmhhYyBs YWkgY2FjIGNoYXQgdmFuIGd1aSBIb2kgbmdoaSANClRXNiB2YSB0aGVtIDIgY2hhdCB2YW4gdmUg Z2lhaSBjYXAgY29uZyBuaGFuLCB2ZSB0byBjaHVjIGNvIHNvIGRhbmcgdmEgY2hhdCBsdW9uZyBk YW5nIA0Kdmllbi4gQ28gNCBraWVuIG5naGkgdmUgY2h1IGRlIG5vbmcgbmdoaWVwLCBub25nIGRh biwgbm9uZyB0aG9uIHRyb25nIGRvIGRhYyBiaWV0IGtpZW4gDQpuZ2hpIHRodWMgaGllbiBsb2kg ZGUgbmdoaSBUaHUgVHVvbmcgY2hpbmggcGh1IGN1YSBDaHUgVGljaCBudW9jIE5ndXllbiBNaW5o IFRyaWV0IA0KdmUgdGhhbmggdHJhIHRvYW4gZGllbiBkdSBhbiBLaHUgZG8gdGhpIG1vaSBUaHUg VGhpZW0gZGUgdHJ1eSB0aW0gMTYwaGEgZGF0IHRhaSBkaW5oIGN1IA0KZGEgYmllbiBtYXQgZGkg ZGF1Pw0KDQozLjcgVmFuIGJhbiBreSBuZ2F5IDQvMS8yMDA5IGd1aSBIb2kgbmdoaSBUVzk6IGNv IDQgY2hhdCB2YW4sIDQga2llbiBuZ2hpIHZhIHRpZXAgdHVjIA0KdG8gY2FvIG9uZyBMZSBUaGFu aCBIYWkgbmdvYWkgMTYgaGFuaCB2aSBkYSB0byBjYW8sIGJvIHN1bmcgMyBoYW5oIHZpIHRyb25n IGRvIGRhYyBiaWV0IA0KdG8gY2FvIGhhbmggdmkgb25nIGxhIGNodSB0aWNoIFVCTkQgVFAgliBj aHUgZGF1IHR1IGR1IGFuIGRhaSBsbyBEb25nIFRheSBkYSBkZSBvbmcgDQpIdXluaCBOZ29jIFN5 IHZ1YSBsYSBjaHUgbmhpZW0gZHUgYW4gdnVhIGxhIHN1aSBnaWEgZGEgbmhhbiBob2kgbG8gY3Vh IFBDSSBtYSBwaGlhIA0KTmhhdCBCYW4gZGEgdHJ1eSB0byBuZ3VvaSBkdWEgaG9pIGxvLCBuaHVu ZyBwaGlhIFZpZXQgTmFtIGNoaSB0cnV5IHRvIHZlIHZpZWMgY2hvIHRodWUgDQpuaGEgdGhheSB2 aSBuaGFuIGhvaSBsbyBsYSB0YWkgc2FvPw0KDQozLjggVmFuIEJhbiBreSBuZ2F5IDQvNC8yMDA5 IHZlIGtoYWkgdGhhYyBib3hpdCBUYXkgTmd1eWVuIGRhIGNvIDMgY2hhdCB2YW4gdmEgNyBraWVu IA0KbmdoaS4NCg0KVHJ1b2MgdGhlbSBEYWkgaG9pIDExIHRhaSBIb2kgbmdoaSBUVzExIHhpbiBj aGF0IHZhbiBsYW4gbnVhIHZpZWMgdG8gY2h1YyB0aHVjIGhpZW4gDQpkaWV1IGxlIERhbmcgY3Vh IEJhbiBjaGFwIGhhbmgga2hvYSAxMCB2YSB2aWVjIGxhbmggZGFvIGNvbmcgdmllYyBoYW5nIG5n YXkgY3VhIERhbmcsIA0KY3VhIEJhbiBCaSB0aHUgdGFpIHNhbyBjb25nIHZpZWMgZ2lhaSBxdXll dCB0cmEgbG9pIGRhbmcgdmllbiBxdWEgbm9pIGR1bmcgOCB2YW4gYmFuIGN1YSANCnRvaSBsYWkg a2hvbmcgZ2lhaSBxdXlldCBraXAgdGhvaSB2YSB0cmEgbG9pIHRoZW8gcXV5IGRpbmggZGlldSBs ZT8NCg0KSUkuIFRPIENBTzogDQoNCkNhbiBjdSBtdWMgNSBkaWV1IDMyIHR1IHNhdSBEYWkgaG9p IDEwIGRlbiBuYXkgdG9pIGRhIGNvIDQgZG9uIGxpZW4gdHVjIHRvIGNhbyBvbmcgTGUgDQpUaGFu aCBIYWkgZ3VpIFRXIERhbmcga2hvYSAxMCBsYToNCg0KMS4gVmFuIGJhbiBreSBuZ2F5IDI4LzYv MjAwNiBjbyAyIG5vaSBkdW5nIHRvIGNhbyB2ZSA4IHZ1IHZpZWMgdmEga2llbiBuZ2hpIGdpYWkg cXV5ZXQuDQoyLiBWYW4gYmFuIGt5IG5nYXkgMTEvMy8yMDA3IGNvIDQgbm9pIGR1bmcgdG8gY2Fv IHZhIDMga2llbiBuZ2hpIHlldSBjYXUgZ2lhaSBxdXlldC4NCjMuIFZhbiBiYW4gbHkgbmdheSAx LzcvMjAwOCBjbyAxNiBub2kgZHVuZyB0byBjYW8gdHUgbmFtIDIwMDAgliAyMDA4IHZhIGtpZW4g bmdoaSBnaWFpIHF1eWV0DQo0LiBWYW4gYmFuIGt5IG5nYXkgMjYvMTAvMjAwOCBjbyA1IHRvIGNh byB2ZSBjYWMgaGFuaCB2aSB0cmFpIHBoYXAgbHVhdCBvIGN1b25nIHZpIGNodSANCnRpY2ggVUJO RCBUUCBjdWEgb25nIExlIFRoYW5oIEhhaSB0YWkgZHUgYW4gS2h1IGRvIHRoaSBtb2kgVGh1IFRo aWVtIG1hIG5oaWV1IGJhbyANCmRhIGRhbmcgdGFpLiBEbyBsYSBoYW5oIHZpOiBCdW5nIGJpdCB0 aG9uZyB0aW4gcXV5IGhvYWNoIJYgRGF5IGRhbiByYSBraG9pIGtodSBkYXQgdGFpIA0KZGluaCBj dSAxNjBoYSBjdWEgY2hpbmggcGh1IJYgS3kgcXV5ZXQgZGluaCB0aGF5IHRoZSBxdXlldCBkaW5o IGNoaW5oIHBodS4gliBQaGEgbmF0IA0KcXV5IGhvYWNoLiCWIER1bmcgImJhbiB0YXkgc2F0IiBk b2kgdm9pIGRhbi4NClVCS1QgVFcgRGFuZyBkYSA0IGxhbiBsYW0gdmllYyB0cnVjIHRpZXAgdm9p IHRvaSB2ZSBjYWMgZG9uIHRvIGNhbyBub2kgdHJlbiBsYToNCg0KMS4gTmdheSAyNy8xMS8yMDA3 IGNvIDIgZG9uZyBjaGkgVnUgTWluaCBLaHVvbmcgdmEgTmd1eWVuIFRoaSBEdW5nIGRhIGxhbSB2 aWVjIA0Kdm9pIHRvaSwgY28gbGFwIGJpZW4gYmFuIGxhbSB2aWVjIHZhIHRvaSBkYSBreSBjbyBn aGkgcm8geWV1IGNhdSBUVyBkYW5nIHBoYWkgeHUgbHkga3kgDQpsdWF0IG9uZyBMZSBUaGFuaCBI YWkuDQoNCjIuIE5nYXkgNi8zLzIwMDggY28gMiBkb25nIGNoaSBWdSBNaW5oIEtodW9uZyB2YSBO Z3V5ZW4gVGhpIER1bmcgbGFtIHZpZWMgdm9pIHRvaSANCmRhIGRvYyBjaG8gbmdoZSAyIHRob25n IGJhbyBzbyAxOTMga3kgbmdheSAxNS81LzIwMDQgdmEgc28gMjM3IGt5IG5nYXkgMjIvMi8yMDA4 IGNvIA0Kbm9pIGRlbiAxIHNvIHZ1IHZpZWMgdG9pIHRvIGNhbyB2YSBub2kgcmFuZyBUVyBkYSBw aGUgYmluaCBvbmcgTGUgVGhhbmggSGFpLiBUb2kgZGEga3kgDQpiaWVuIGJhbiBsYW0gdmllYyB2 YSB5ZXUgY2F1IEJDSFRXIERhbmcgcGhhaSB4dSBseSBreSBsdWF0IHRoZW8gZGlldSBsZSBEYW5n IHRhaSBtdWMgDQozIGRpZXUgMzYgY2h1IGtob25nIHRoZSBjaGkgcGhlIGJpbmguDQoNCjMuIE5n YXkgNS81LzIwMDkgY28gaGFpIGRvbmcgY2hpIExlIEhvbmcgTGllbSB2YSBOZ3V5ZW4gVGhpIER1 bmcgbGFtIHZpZWMgdm9pIHRvaSBjbyANCmRvYyAxIHRob25nIGJhbyBudWEgbmh1bmcga2hvbmcg ZG9jIHNvIHZhIG5nYXkga3kuIFRvaSBkYSBreSBiaWVuIGJhbiBsYW0gdmllYyB2YSBnaGkgDQpy byB0aWVwIHR1YyB5ZXUgY2F1IEJhbiBjaGFwIGhhbmgga2hvYSAxMCBUVyBEYW5nIHh1IGx5IGt5 IGx1YXQgdGhlbyBxdXkgZGluaCB0YWkgbXVjIA0KMyBkaWV1IDM2IHZvaSBreSBsdWF0IGNhbyBu aGF0IGxhIGtoYWkgdHJ1IERhbmcsIGJhaSBuaGllbSBVVkJDSCwgVVZCQ1QuIERvYW4gbGFtIA0K dmllYyBjb24geWV1IGNhdSB0b2kgY28gdmFuIGJhbiBwaGF0IGJpZXUgbGFuIG51YSB2ZSA0IG5v aSBkdW5nIGRhIHRvIGNhby4gVG9pIGRhIGNvIHZhbiANCmJhbiBreSBuZ2F5IDcvNS8yMDA5IGd1 aSAyIGRvbmcgY2hpIHZhIFRydW5nIHVvbmcgRGFuZy4NCg0KNC4gTmdheSAxOC84LzIwMDkgZHVv YyB0aHUgbW9pIGt5IG5nYXkgMTIvOC8yMDA5IGN1YSBEb2FuIGdpYWkgcXV5ZXQgdG8gY2FvIHRv aSBkYSANCmRlbiBsYW0gdmllYyB2b2kgVHJ1b25nIGRvYW4gZG9uZyBjaGkgTmd1eWVuIFZpZXQg TG9pIHZhIGRvbmcgY2hpIE5ndXllbiBUaGkgRHVuZy4gDQpUb2kgZGEgY28gdmFuIGJhbiBwaGF0 IGJpZXUgZ3VpIHRydWMgdGllcCBkb2FuIHZhIGd1aSBjYSBUVyBEYW5nIHlldSBjYXUgeHUgbHkg a3kgbHVhdCANCm9uZyBMZSBUaGFuaCBIYWkgdm9pIGhpbmggdGh1YyBjYW8gbmhhdCBuaHUgZGUg bmdoaSBsYW4gbGFtIHZpZWMgbmdheSA1LzUvNTAwIGxhIHBoYWkgDQpraGFpIHRydSBkYW5nLCBi YWkgbmhpZW0gVVZCQ0gsIFVWQkNULg0KDQpJSUkuIEtJRU4gTkdISQ0KDQpIb2kgbmdoaSBUVzEx IHJhdCBxdWFuIHRyb25nIGNobyBidW9jIGNodWFuIGJpIERhaSBob2kgMTEgeGluIGNvIGNhYyBr aWVuIG5naGkgc2F1Og0KDQoxLiBDYW4gc29tIGNvbmcgYm8gZHUgdGhhbyBUb25nIGtldCwgYm8g c3VuZywgcGhhdCB0cmllbiBDdW9uZyBsaW5oIDE5OTEgcmEgdG9hbiBEYW5nIA0KZGUgZGFuZyB2 aWVuIGNvIHF1eWVuIHRyYW8gZG9pIGdvcCB5IGtpZW4uDQoNCjIuIEtpZW4gbmdoaSB2aWVjIGtp ZW0gZGllbSBjdWEgQkNUIHZhIEJDSCBraG9hIDEwIHRyb25nIG5oaWVtIGt5IDEwIGNhbiBwaGFp IGNvIA0KYmFuIGtpZW0gZGllbSB0dSBwaGUgYmluaCBjdWEgdHVuZyB1eSB2aWVuIGRhIGdpdSBj dW9uZyB2aSBnaSwgbmhpZW0gdnUgZ2ksIGRhIGxhbSBkdW9jIA0KZ2kgdmEgZGEgY28gc2FpIHBo YW0gZ2k/IERhYyBiaWV0IHR1bmcgdXkgdmllbiBCQ1QgZGVuIEJDSCBwaGFpIGNvIGJhbiB0dSBr ZSBraGFpIHRhaSANCnNhbiBkZSBjb25nIGtoYWkgY2hvIHRvYW4gRGFuZyBiaWV0IHZlIHN1IG1p bmggYmFjaCB0YWkgc2FuIGN1YSBjYSBuaGFuIHZhIGdpYSBkaW5oLiANCkRheSBsYSBjbyBzbywg bGEgdGlldSBjaGFuIGRlIGx1YSBjaG9uIHV5IHZpZW4gbmFvIGR1IHR1IGNhY2ggZGUgY3UgdmFv IGtob2EgMTEuIERvbmcgDQp0aG9pIGRheSBjdW5nIGxhIHZpZWMgZGUgY2h1bmcgdG8gY2FuIGJv IGxhbmggZGFvIERhbmcgbyBUVyBsYSB0cm9uZyBzYWNoLCBsYSBob2FuIHRvYW4gDQp0cmFpIHZv aSBuaHVuZyB0aG9uZyB0aW4gdHJlbiBtYW5nIHZlIHRhaSBzYW4gY3VhIG1vdCBzbyBuZ3VvaSBt YSBkdSBsdWFuIGRhbmcgbmdoaSB2YW4gDQp2YSBiYXQgYmluaC4gVGhhbSBjaGkgY29uIGNvIGR1 IGx1YW4gdmUgbW90IHNvIG5ndW9pIGNvIGNhIHRpZW4gZ3VpIG5nYW4gaGFuZyBudW9jIA0Kbmdv YWkgY2FuIGxhbSBybyBsYSBjbyBoYXkga2hvbmc/DQoNCjMuIFRoZW8gdGhvbmcgYmFvIEhvaSBu Z2hpIFRXMTAgdmUgdmllYyBjaHVhbiBiaSBEYWkgaG9pIDExIHR1IHZpZWMgY28gNSB0aWV1IGJh biwgY28gDQp0aWVuIGRvIHRob2kgZ2lhbiB0aWVuIGhhbmggRGFpIGhvaSBjYWMgY2FwIGRlbiBU VyB2YSBkYWMgYmlldCBsYSB2aWVjIHRydWMgdGllcCBiYXUgQmkgdGh1IA0KdGhpIGRpZW0gY2Fw IHhhIHBodW9uZywgdGluaCB0aGFuaCB0aGVvIGx1YSBjaG9uLiBLaWVuIG5naGkgSG9pIG5naGkg VFcxMSBjYW4gZHVhIHJhIDEgDQpxdXkgY2hlIGN1IHRoZSB2YSBwaG8gYmllbiB0cm9uZyB0b2Fu IERhbmcgYmlldC4NCg0KVGhlbyBkaWV1IGxlIERhbmcgMjAwNiB0YWkgbXVjIDUgZGlldSAyMiBx dXkgZGluaDogIkRhbmcgdXkgY28gc28gdHUgIDkgdXkgdmllbiB0cm8gbGVuIA0KYmF1IEJhbiB0 aHVvbmcgdnUsIGJhdSBCaSB0aHUsIFBobyBCaSB0aHUgdHJvbmcgc28gdXkgdmllbiB0aHVvbmcg dnU7IGR1b2kgOSB1eSB2aWVuIA0KYmF1IEJpIHRodSwgUGhvIEJpIHRodSIuIENvbiB0YWkgbXVj IDEgZGlldSAyMCBxdXkgZGluaDogIkhvaSBuZ2hpIHRpbmggdXkgdGhhbmggdXksIA0KcXVhbiB1 eSwgaHV5ZW4gdXksIHRoaSB1eSBiYXUgYmFuIHRodW9uZyB2dSwgYmF1IEJpIHRodSB2YSBQaG8g QmkgdGh1IHRyb25nIHNvIHV5IHZpZW4gDQp0aHVvbmcgdnUiIE5odSB2YXkgbmV1IGJhdSB0cnVj IHRpZXAgQmkgdGh1IHRoaSBiYXUgbyBkYXU/IGFpIGJhdT8NCg0KS2llbiBuZ2hpIG5ldSBiYXUg dHJ1YyB0aWVwIEJpIHRodSBjYXAgeGEsIHBodW9uZyBkdSBsYSBEYWkgaG9pIGRhbmcgdmllbiBo YXkgRGFpIGhvaSANCmRhaSBiaWV1IGRhbmcgdmllbiBxdXkgY2hlIHBoYWkgcXV5IGRpbmggbGEg dGF0IGNhIGRhbmcgdmllbiB0cm9uZyB4YSBwaHVvbmcgZHVvYyB0aGFtIA0KZ2lhIGJhdSBCaSB0 aHUgbW9pIGdvaSBsYSBiYXUgdHJ1YyB0aWVwLiBDb24gY2FjIHRpbmggdGhhbmggcXVhbiBodXll biB0aGkgeGEga2llbiBuZ2hpIA0KYmF1IEJpIHRodSBwaGFpIGRvIERhaSBob2kgZGFpIGJpZXUg Y2FwIGRvIGJhdSBkb25nIHRob2kgdm9pIGJhdSBCYW4gY2hhcCBoYW5oIHZhIHBoYWkgDQpiYWkg Ym8gcXV5IGRpbmggbm9pIHRyZW4gY3VhIGRpZXUgbGUgMjAwNi4gQ29uIFBobyBCaSB0aHUgc2Ug ZG8gSG9pIG5naGkgQmFuIGNoYXAgaGFuaCANCmNhcCBkbyBiYXUgdGhlbyBzbyBsdW9uZyBxdXkg ZGluaC4NCg0KNC4gVHUgbGF1IHRydW9jIERhaSBob2kgdHUgY2FwIHF1YW4gaHV5ZW4gdGluaCB0 aGFuaCwgRGFuZyBibyBjYXAgdHJlbiBkdW9uZyBuaGllbSBkZXUgDQpkdWEgcmEgY2FpIGdvaSBs YSAiY28gY2F1IiBjaHVjIGRhbmggQmkgdGh1IGhvYWMgZGlldSBkb25nIHZlIGRlIGdvaSBsYSAi Z2lvaSB0aGlldSIgcmEgDQpIb2kgbmdoaSBCYW4gY2hhcCBoYW5oIGJhdSBCaSB0aHUuIFRodWMg Y2hhdCBkYXkgY2hpIGxhIGRhbiBjaHUgaGluaCB0aHVjIGRlIGhvcCBwaGFwIA0KaG9hIHN1IHNh cCBkYXQgY2h1YyBkYW5oIEJpIHRodSBjaG8gY2FwIGRvLiBDaGluaCB2aWVjIGJhdSBCaSB0aHUg cXVhbiBodXllbiwgdGluaCANCnRoYW5oIG5heSBhaSBtdW9uIGR1b2MgZ2l1IGNodWMgZG8gZGV1 IHBoYWkgbmdhbSBjaGF5IGNob3QsIGR1dCBsb3Qgdm9pIGNhcCB0cmVuIG1hIGR1IA0KbHVhbiBn b2kgbGEgY28gZ2lhIHR1bmcgY2h1YyBkYW5oIG1vaSBjYXAgZGUgZHVvYyB2YW8gImNvIGNhdSIg aG9hYyBkdW9jICJnaW9pIHRoaWV1IiANCnRydW9jLiBLaWVuIG5naGkgdGFpIEhvaSBuZ2hpIFRX MTEgZHUgY28gdGhpIGRpZW0gaGF5IGtob25nIGN1bmcgY2FuIGRvaSBtb2kgdmllYyBiYXUgDQpi aSB0aHUgY2FjIGNhcCBkZXUgcGhhaSBkbyBEYWkgaG9pIERhbmcgY2FwIGRvIGJhdSByYSBkb25n IHRob2kgdm9pIHZpZWMgYmF1IEJhbiBjaGFwIA0KaGFuaC4gRGFjIGJpZXQgY2FwIFRXIHRhaSBE YWkgaG9pIDExIGJhdSBUb25nIEJpIHRodSBwaGFpIGRvIGRhaSBob2kgRGFpIGJpZXUgdG9hbiBx dW9jIA0KYmF1IHJhIGRvbmcgdGhvaSB2b2kgdmllYyBiYXUgQkNIIGtob2EgMTEuIFF1eSBjaGUg Y2FuIHF1eSBkaW5oIHZlIHNvIGx1b25nIG5ndW9pIGRlIA0KY3UgY2h1YyBkYW5oIEJpIHRodSwg VG9uZyBCaSB0aHUgdHUgY2FwIGNvIHNvIGRlbiBUVyBwaGFpIHRvaSB0aGlldSB0dSAzIGRlbiA1 IG5ndW9pIA0Ka2hvbmcgY2hpIDIgbmd1b2kgZGUgY2hvbiAxLg0KDQo1LiBLaWVuIG5naGkgSG9p IG5naGkgVFcxMSBjYW4gYXAgZHVuZyBtdWMgMyBkaWV1IDM2IGRpZXUgbGUgRGFuZyAyMDA2IGRh IHF1eSBkaW5oOiANCiJCQ0hUVyBxdXlldCBkaW5oIGNhYyBoaW5oIHRodWMga3kgbHVhdCBkYW5n IHZpZW4ga2UgY2EgdXkgdmllbiBCQ0hUVywgdXkgdmllbiANCkJhbiBCaSB0aHUsIHV5IHZpZW4g Qm8gQ2hpbmggdHJpIiBkZSBkdWEgcmEga3kgbHVhdCBvbmcgTGUgVGhhbmggSGFpIGxhIHV5IHZp ZW4gQm8gDQpjaGluaCB0cmkga2hvYSAxMCBxdWEgY2FjIG5vaSBkdW5nIHRvIGNhbyBsaWVuIHRp ZXAgY3VhIHRvaSB0dSBzYXUgRGFpIGhvaSAxMCBrZXQgdGh1YyBkZW4gDQpuYXkgbWEgVXkgYmFu IEtpZW0gdHJhIGRhIGNvIDQgbGFuIGxhbSB2aWVjIHZvaSB0b2ksIGNvIHRydXllbiBkYXQgMyB0 aG9uZyBiYW8gZ2lhaSBxdXlldCANCm5odW5nIGNodWEgdGhvYSBkYW5nLCBjaHVhIGNvIDEgY3Vv YyBkaWV1IHRyYSBkYXkgZHUgZGUgbWluaCBjaHVuZy4gRHUgbHVhbiB0YWkgVFAuIA0KSENNIGNo byByYW5nIG9uZyBMZSBUaGFuaCBIYWkgY28gMSB0aGUgbHVjIG8gVFcgcmF0IG1hbmggZGEgYmFv IHZlIG9uZywgdGhhbSBjaGkgY2EgDQpiYW5nIHRpZW4sIG5lbiBuaGlldSBsYW4gZGlldSBkb25n IG9uZyB2YW4ga2hvbmcgY2FuIGRpLiBOZXUgSG9pIG5naGkgVFcxMSBraG9uZyB4dSANCmx5IGN1 IGRlIHRvbiB0YWkgY2FjIHRvIGNhbyBjdWEgdG9pIHJvaSB0aWVwIHR1YyAiY28gY2F1IiB0aWVw IHR1YyAiZ2lvaSB0aGlldSIgb25nIHZhbyBCQ0ggDQp2YW8gQkNUIGtob2EgMTEgbGEgZGlldSB0 b2kgY3VvbmcgcXV5ZXQgcGhhbiBkb2kgdmEgdGllcCB0dWMgdG8gY2FvIHJhIGRhaSBob2kgMTEu DQoNClRyZW4gZGF5IGxhIHRvYW4gdmFuIGNoYXQgdmFuLCB0byBjYW8gdmEga2llbiBuZ2hpIGN1 YSB0b2kgZ3VpIGRlbiBob2kgbmdoaSBUVzExIGN1YSANCkJDSCBUVyBraG9hIDEwLiBSYXQgbW9u ZyBCQ0ggVmEgQmFuIGJpIHRodSBjYW4gY3UgZGlldSBsZSBEYW5nIGRlIGdpYWkgcXV5ZXQgdmEg DQp0cmEgbG9pIHRvaS4NCg0KQ2h1YyBIb2kgbmdoaSBUVzExIHRoYW5oIGNvbmcgdG90IGRlcC4N ClRyYW4gdHJvbmcga2luaCBjaGFvLg0KDQpEQU5HIFZJRU4NCihLeSB0ZW4pDQpNQUkgRE9DDQoo MDgzKTg4NzQ5OTkgliAwOTU4MDU0MTM2IA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGluaHRy aS8yMDA2LzA0LzU2NDAyNC8gMTI6MDksIDI1LzA0LzIwMDYgKEdNVCs3KQ0KDQpvbmcgTGUgVGhh bmggSGFpIC0gbmd1eWVuIGNoaSBodXkgVHJ1b25nIEx1YyBsdW9uZyBUaGFuaCBuaWVuIFh1bmcg cGhvbmcgVFAgSENNDQoNCmh0dHA6Ly93d3cubmd1b2ktdmlldC5jb20vYWJzb2x1dGVubS9hbm12 aWV3ZXIuYXNwP2E9ODg2MDImej0xNTcgMjQvMTIvMjAwOA0KDQpUUCBIQ006IENvbmcgdHJpbmgg YmUgYm9pIG5oYXQgU2FpIEdvbiBsaWVuIHF1YW4gZGVuIExlIFRoYW5oIEhhaQ0KDQpUaGVvIHRo YW5oIHRyYSB0aGFuaCBwaG8gU2FpIEdvbiwgY29uZyB0eSBUaGFuaCBOaWVuIFh1bmcgUGhvbmcs IGNodSBkYXUgdHUgIkR1IGFuIA0KY2F1LWR1b25nIE5ndXllbiBIdXUgQ2FuaCIgcGhhaSBjaGl1 IHRyYWNoIG5oaWVtIHZlIHZpZWMgbHVuIG51dCBkdW9uZywgbHVuIG51dCANCmR1b25nIGRhbiBs ZW4gY2F1IHZhIGx1biB2byBjYXUgVmFuIFRoYW5oIDIgdmkga2hvbmcgdHVhbiB0aHUgcXV5IGRp bmggcXVhbiBseSBjaGF0IGx1b25nIHhheSBkdW5nLg0KDQpUaGFuaCB0cmEgdGhhbmggcGhvIFNh aSBHb24gdnVhIGNvbmcgYm8ga2V0IGx1YW4gdGhhbmggdHJhICJEdSBhbiBjYXUtZHVvbmcgTmd1 eWVuIA0KSHV1IENhbmgiLiBMdWMgZGF1LCB0b25nIHZvbiBkYXUgdHUgY2hvIGR1IGFuIG5heSBs YSAyNzggdHkgZG9uZywgc2F1IGRvIGR1b2MgImRpZXUgDQpjaGluaCIgdGhhbmggNDE5IHR5IGRv bmcuIE5hbSBuYW0gc2F1IGtoaSBob2FuIHRoYW5oICgyMDAyKSwgaG9pIGdpdWEgbmFtIDIwMDcs IFVCTkQgDQp0aGFuaCBwaG8gU2FpIEdvbiBwaGFpIGNoaSAxNDEgdHkgZGUgc3VhIGNodWEgY2F1 IFZhbiBUaGFuaCAyIChuYW0gdHJvbmcgZHUgYW4pIHZhIA0KaGFpIGRhdSBkdW9uZyBkYW4gdmFv IGNhdS4gQ2h1YSBrZSBwaGFpIGNoaSBraG9hbmcgNCB0eSBkb25nIGNobyA1NyBjYW4gbmhhIGJp IG51dC4NCg0KVGhhbmggdHJhIHRoYW5oIHBobyBTYWkgR29uIGRhIHhhYyBkaW5oICJEdSBhbiBj YXUgZHVvbmcgTmd1eWVuIEh1dSBDYW5oIiBsYSAiYmUgYm9pIG5oYXQgU2FpIEdvbiIgdmEgImxh cCBreSBsdWMgdmUgY2FjIHNhaSBwaGFtIi4gDQoNCkhvaSBjdW9pIHRoYXAgbmllbiAxOTkwLCAi RHUgYW4gY2F1IGR1b25nIE5ndXllbiBIdXUgQ2FuaCIgdHVuZyBkdW9jIHhhYyBkaW5oIGxhIA0K bW90IHRyb25nIG5odW5nIGNvbmcgdHJpbmggcXVhbiB0cm9uZyBuaGF0IGRlIHBoYXQgdHJpZW4g U2FpIEdvbi4gRHUgYW4gbmF5IG5vaSBkYWkgDQpkdW9uZyBMZSBUaGFuaCBUb24gKGNobyB0aWVw IGdpYXAgdm9pIGR1b25nIFRvbiBEdWMgVGhhbmcsIHRlbiBjdSBsYSBDdW9uZyBEZSksIA0KY2hh eSBjYXAgaG9uZyBUaGFvIENhbSB2aWVuIChTbyBUaHUpLCBxdWEgaGFpIGNheSBjYXUgZGFuIHJh IFRhbiBDYW5nIChraHUgdnVjIGNoYW4gY2F1IFNhaSBHb24pLiANClR1eSBuaGllbiwgc2F1IGto aSBob2FuIHRhdCwgdG9hbiBibyBjb24gZHVvbmcgY3VuZyBuaHUgaGFpIGNheSBjYXUgKGNhdSBO Z3V5ZW4gSHV1IENhbmgsIGNhdSBWYW4gVGhhbmggMikgZGV1IGx1biwgc3V0LCBiaWVuIGRhbmcu IER1b25nIE5ndXllbiBIdXUgQ2FuaCB0cm8gdGhhbmggY29uIGR1b25nIG5nYXAgbmFuZyBuaGF0 IFNhaSBHb24uIA0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYvMDMv M0I5RTdFRDAvIDIzLzMvMjAwNiwgMTA6MTggR01UKzcNCg0KVFAgSENNOiBDYXUsIGR1b25nIE5n dXllbiBIdXUgQ2FuaCBsYW0gZHUgdGh1ICd0cm9uZyBiZW5oJyAtIENvbmcgdHJpbmggbmF5IGRh bmcgZHVvYyB4ZW0gbGEgIm9tIHlldSB0b2FuIGRpZW4iLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQu dm4vY2hpbmh0cmkvMjAwNi8wNC81NjQwMjQvIA0KDQpPbmcgTGUgVGhhbmggSGFpIC0gbmd1eWVu IENodSB0aWNoIFVCTkQgVFAgSG8gQ2hpIE1pbmggKHR1IDIwMDEgZGVuIDIwMDYpIA0KDQpodHRw Oi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8xMC8zQjlFRkFERC8gMjUvMTAvMjAwNiwg MTA6MzkgR01UKzcNCg0KVFAgSENNOiBUbyBjaHVjIERhbmcgaXQgcGhhdCBoaWVuIHRpZXUgY3Vj LCBsYW5nIHBoaSB0YWkgZG9uIHZpIG1pbmgsIGhheSBkdW5nIGhvbiBsYSB0aGFtIG5odW5nIGJp IHRvIGNodWMgRGFuZyBwaGF0IGhpZW4gbGEgZGFjIGJpZXQgaGllbS4gDQoNCmh0dHA6Ly92bmV4 cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzEwLzNCOUVGQURELyAyNS8xMC8yMDA2LCAxMDozOSBH TVQrNw0KDQpUUCBIQ006IE5oaWV1IHRvIGNodWMsIGtoaSBjbyBjYSBuaGFuIHNhaSBwaGFtLCB0 aHVvbmcgZHVhIHJhIG5odW5nIGhpbmggdGh1YyBreSBsdWF0IHJhdCBuaGUsIGtob25nIHRodXll dCBwaHVjIG1vaSBuZ3VvaS4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAwNy8xMS83 NTcxNzIvIDEyOjEyJyAyOC8xMS8yMDA3IChHTVQrNykNCg0KVFAuSENNOiBCbyBob2FuZyBoYW5n IHRyaWV1IG0yIGRhdCBjb25nLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJp LzIwMDkvMDkvODY3MTY1LyAxODozMiwgMDYvMDkvMjAwOSAoR01UKzcpDQoNClRQIEhDTTogQ28g ZGVuIDUwJSB0b25nIGRpZW4gdGljaCBraG8gYmFpIGhpZW4gbmF5IHRyZW4gZGlhIGJhbiBUUCBj b24gYm8gdHJvbmcsIHN1IGR1bmcgc2FpIG11YyBkaWNoLCBsYW5nIHBoaS4NCg0KaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9Ib21lL05odW5nLWtodS1kYW4tY3UtY2hldC1uZ2F0LXZpLW8tbmhp ZW0vMjAwNzEyLzY4NjA0Lmxhb2RvbmcgMjo0MiBQTSwgMTIvMTIvMjAwNw0KDQpUUEhDTTogTmh1 bmcga2h1IGRhbiBjdSAiY2hldCBuZ2F0IiB2aSBvIG5oaWVtIA0KDQpNb3QgImtodSBjb25nIG5n aGllcCIgdHUgcGhhdCBtb2MgbGVuIHR1IG5oaWV1IG5hbSBxdWEgdm9pIGhhbmcgdHJhbSBjbyBz byBjaGUgYmllbiBuaHVhIHRhaSBzaW5oLCBuaHVvbS1pbiwgY28ga2hpLi4uIGNoZW4gZ2l1YSBj YWMga2h1IGRhbiBjdSB0aHVvYyBwaHVvbmcgQmluaCBIdW5nIEhvYSBBIChxdWFuIFRhbiBQaHUs IFRQSENNKSwgZ2F5IG8gbmhpZW0gbmdoaWVtIHRyb25nLg0KDQpodHRwOi8vdm5lY29ub215LnZu LzIwMTAwOTIxMDgwNDQxNTAwUDBDMTcvc2FuLWdvbGYtby10cGhjbS1uZ29uLXRyZW4tMTAwMC1o YS1kYXQuaHRtIEJBTyBBTkggMDg6MzYgKEdNVCs3KSAyMS85LzIwMTAgDQoNClRwLkhDTTogU2Fu IGdvbGYgbyBUcC5IQ00gIm5nb24iIHRyZW4gMS4wMDAgaGEgZGF0IA0KDQpodHRwOi8vdm4uYW5z d2Vycy55YWhvby5jb20vcXVlc3Rpb24vaW5kZXg/cWlkPTIwMDkwNzIyMjIzOTA2QUEzVmllNQ0K DQpMZSBUaGFuaCBIYWkgbGEgY2hvbmcgVHJ1b25nIE15IExlIC0gZW0gZ2FpIGN1YSBUcnVvbmcg TXkgSG9hIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vUGFnZXMvZGVmYXVsdC5hc3B4 IDA5LzAzLzIwMDkgMDoyMiANCg0KVFAgSENNOiBDb25nIGxhbSB4b25nLCBkdW9uZyB2YW4gbmdh cCEgDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8wNy8zQjlFQkQw OS8gMTIvNy8yMDA2LCAxMjowNSBHTVQrNw0KDQpUUCBIQ006IENhdSBWYW4gVGhhbmggMiBiaSBi byBiZSAtIHRpZXAgdHVjIGx1biwgbnV0IC0gaGFuZyBsb2F0IGhhbmcgbXVjIGh1IGhvbmcgdHJ1 b2MgZGF5IGRhIGR1b2MgcGhhIG5odW5nIGJpIGJvIGJlIG1hYyBtdWEgbmFuZw0KDQpodHRwOi8v dmkud2lraXBlZGlhLm9yZw0KDQpPbmcgTGUgVGhhbmggSGFpIGxlbiBjaHVjIFV5IHZpZW4gQm8g Y2hpbmggdHJpIC0gQmkgdGh1IHRoYW5oIHV5IFRQIEhDTSAodHUgMjAwNiBkZW4gbmF5IDIwMTAp ICANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYvMTAvM0I5RUZBREQvIDI1 LzEwLzIwMDYsIDEwOjM5IEdNVCs3DQoNClRQIEhDTTogU3VjIGNoaWVuIGRhdSBjdWEgdG8gY2h1 YyBEYW5nIHJhdCB5ZXUsIHRoYW0gY2hpIG5oaWV1IG5vaSBtYXQgbHVvbiBzdWMgY2hpZW4gZGF1 IA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8xMC8zQjlFRkFERC8gMjUv MTAvMjAwNiwgMTA6MzkgR01UKzcNCg0KVFAgSENNOiBOaGEgZGF0IHRodW9jIHNvIGh1dSBOaGEg bnVvYyBzdSBkdW5nIGtob25nIGhpZXUgcXVhIChjYSB0aG9pIGt5IG9uZyBMZSBUaGFuaCBoYWkg bGFtIENodSB0aWNoIHZhIEJpIHRodSBUaGFuaCB1eSBUUCBIQ00pDQoNCmh0dHA6Ly9raWVudHJ1 Yy52bi90aW5fdHJvbmdfbnVvYy82MS1uaGEtZGF0LWNvbmctYmktc3UtZHVuZy1zYWktbXVjLWRp Y2gtdGFpLXRwLWhjbS8xMDE1Ni5odG1sIDAwOjQ5DQoNClRQIEhDTTogNjElIG5oYSwgZGF0IGNv bmcgYmkgc3UgZHVuZyBzYWkgbXVjIGRpY2ggDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMDYvMDQvNTY0MDI0Lw0KDQpMZSBUaGFuaCBIYWkgdG90IG5naGllcCBDdSBuaGFuIEtp bmggdGUsIEN1IG5oYW4gVmFuIGNodW9uZyANCg0KaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRj aD92PWU1ZHZwdXBUSVJrDQoNClRQIEhDTTogQ2hpbmggcXV5ZW4gY2F0IGtob2EsIHBoYSBjdWEg Y3VvbmcgY2hpZW0gbmhhIG8gY3VhIGRhbiANCg0KaHR0cDovL3d3dy55b3V0dWJlLmNvbS93YXRj aD92PUZRb2VnaWdnOVNJJk5SPTEgMDUvMTEvMjAwOSANCg0KVFAgSENNOiBEYW4gVGh1IFRoaWVt IGJpZXUgdGluaCBnaXUgbmhhIGdpdSBkYXQgDQoNCmh0dHA6Ly9jdXVjaGllbmJpbmguY29tLnZu L1ByaW50UHJldmlldy5hc3B4P0lEPTU0MDUgMjMvMDcvMjAxMCBOZ29jIFBodWMgDQoNClRydW5n IHVvbmcgRGFuZzogUXVhbiAyLCBUUCBIQ00gc2Uga2hvbmcgY28ga2hpZXUga2llbiBrZW8gZGFp IG5ldSBib2kgdGh1b25nIGdpYWkgcGhvbmcgbWF0IGJhbmcgY2hvIGRhbiBkdW5nIHBoYXAgbHVh dCANCg0KVG9pIGtob25nIGtob2kgeHVjIGRvbmcga2hpIGRvYyBuaHVuZyB0aHUga2llbiBuZ2hp IGN1YSBiYSBndWkgY2hvIGNhYyBjbyBxdWFuIGNvbmcgDQpxdXllbi4gRGEgaG9uIGJvbiBuYW0g bmF5LCBuaGlldSBsYW4gYmEgdmlldCB2YSBndWkgZG9uIGtoaWV1IG5haSBsZW4gY2FjIGNhcCB0 dSANCnBodW9uZywgcXVhbiBkZW4gbGFuaCBkYW8gVFAgSG8gQ2hpIE1pbmggdmEgY2EgVGhhbmgg dHJhIENoaW5oIHBodSwgVGh1IHR1b25nIA0KQ2hpbmggcGh1LiBUcm9uZyB0aHUga2llbiBuZ2hp IG5nYXkgMTMtNC0yMDEwIGN1YSBiYSBndWkgb25nIExlIFRoYW5oIEhhaSwgVXkgdmllbiANCkJv IENoaW5oIHRyaSwgQmkgdGh1IFRoYW5oIHV5IHZhIG9uZyBMZSBIb2FuZyBRdWFuLCBVeSB2aWVu IFRydW5nIHVvbmcgRGFuZywgQ2h1IHRpY2ggVUJORCBUUCBIbyBDaGkgTWluaCBjbyBkb2FuOg0K DQoiVGVuIHRvaSBsYSBOZ3V5ZW4gVGhpIENoYXUsIHNpbmggbmFtIDE5NDUsIGRhbmcgdmllbiBE YW5nIENvbmcgc2FuIFZpZXQgTmFtLCBjYW4gDQpibyBodXUgdHJpLCBobyBraGF1IHRodW9uZyB0 cnUgdGFpIHNvIG5oYSAxNUQgTGUgVGhhbmggVG9uLCBwaHVvbmcgQmVuIE5naGUsIHF1YW4gMSwg DQpsYSB2byBjdWEgY28gQ2h1YW4gZG8gZG9jIFZvIE5oYW4gSHVhbiwgVXkgdmllbiBUcnVuZyB1 b25nIERhbmcsIFV5IHZpZW4gRGFuZyB1eSANCnF1YW4gc3UgVHJ1bmcgdW9uZywgQmkgdGh1IERh bmcgdXkgUXVhbiBjaHVuZyBIYWkgcXVhbiwgcXV5ZW4gVHUgbGVuaCBRdWFuIGNodW5nIA0KSGFp IHF1YW4gbmhhbiBkYW4gVmlldCBOYW0uDQoNCktpbmggdGh1YSBoYWkgZG9uZyBjaGkhIFRvaSB2 aWV0IHRodSBuYXkgeGluIHRyaW5oIGJheSB2b2kgaGFpIGRvbmcgY2hpIG1vdCB2aWVjIG5odSBz YXU6DQoNCk5hbSAxOTk5IHRvaSBjbyBnb3AgdGllbiBjdW5nIG9uZyBWdSBIdXkgSG9hbmcgKHRo b25nIGdpYSkgbmd1IDEzOSBkdW9uZyBOZ3V5ZW4gDQpUaG9uZywgcGh1b25nIDksIHF1YW4gMyBt dWEgbG8gZGF0IG8gZHVvbmcgTHVvbmcgRGluaCBDdWEsIHBodW9uZyBBbiBLaGFuaCwgcXVhbiAN CjIuIEN1b2kgbmFtIDE5OTkgY2hvbmcgdG9pIHF1YSBkb2kuIFRvaSBsYW0gYmVuaCBoaWVtIG5n aGVvIGNvIGtob2kgdSB0cm9uZyBuYW8gbmVuIA0KdmllYyBkaSBsYWkgY3VhIHRvaSByYXQga2hv IGtoYW4sIGRvIHZheSB0b2kgdXkgcXV5ZW4gY2hvIG9uZyBIb2FuZyBsbyBtb2kgdGh1IHR1YyBk dW5nIA0KdGVuLCBzYW4gbGFwIHZhIGdpYWkgcXV5ZXQgbW9pIHZpZWMgY28gbGllbiBxdWFuIGRl biBsbyBkYXQgaGFpIGdpYSBkaW5oIGNodW5nIHRvaSBtdWEuLi4iLg0KDQpCYSBraG9uZyBtdW9u IGd1aSBkb24ga2hpZXUga2llbiBrZW8gZGFpLCBuaHVuZyB2aSBjYXAgY2hpbmggcXV5ZW4gY28g c28gbGFtIHNhaSBtYSANCmtob25nIHN1YSwgZ2lhaSBxdXlldCBraG9uZyBkdW5nIG5lbiBiYSB0 aWVwIHR1YyBraGlldSBraWVuIGxlbiBjYXAgdHJlbi4NCg0KTm9pIGR1bmcga2hpZXUga2llbiBr ZW8gZGFpIGN1YSBiYSB2YSBvbmcgVnUgSHV5IEhvYW5nIGR1b2MgVGhhbmggdHJhIENoaW5oIHBo dSANCnRvbSB0YXQgbmh1IHNhdToNCg0KIk9uZyBWdSBIdXkgSG9hbmcga2hpZXUgbmFpIFF1eWV0 IGRpbmggc28gMTc2NC9RRC1VQk5ELCBuZ2F5IDE0LTQtMjAxMCwgY3VhIA0KVUJORCBUUCBIbyBD aGkgTWluaCB2ZSB2aWVjIGJhYyBkb24ga2hpZXUgbmFpIGRvbiBnaWEgYm9pIHRodW9uZyBkaWVu IHRpY2ggMi4yMjNtMiANCmRhdCBub25nIG5naGllcCBkYSBzYW4gbGFwIGNvIHZpIHRyaSB0aWVw IGdpYXAgbWF0IHRpZW4gZHVvbmcgTHVvbmcgRGluaCBDdWE7IGtoaSB0aHUgaG9pIA0KZGF0IGN1 YSBvbmcgY2hpbmggcXV5ZW4gZGlhIHBodW9uZyAocXVhbiAyKSBraG9uZyBiYW4gaGFuaCBxdXll dCBkaW5oIHRodSBob2k7IHZpZWMgDQpib2kgdGh1b25nIGhvIHRybyB0aGlldCBoYWkgZ2lhaSBw aG9uZyBtYXQgYmFuZyAoR1BNQikgZGllbiB0aWNoIDIuMjIzbTIgYXAgZHVuZyBOZ2hpIA0KZGlu aCAyMi8xOTk4L05ELUNQIGN1YSBDaGluaCBwaHUgbGEga2hvbmcgZHVuZyB2YSBvbmcgeWV1IGNh dSBhcCBkdW5nIE5naGkgZGluaCANCjg0LzIwMDcvTkQtQ1AgY3VhIENoaW5oIHBodSBkZSB0aW5o IHRvYW4gYm9pIHRodW9uZyBjaG8gZ2lhIGRpbmggb25nIiAodHJpY2ggQmFvIGNhbyANCmtldCBs dWFuIGN1YSBUaGFuaCB0cmEgQ2hpbmggcGh1LCBzbyAyNTc0L0JDLVRUQ1AsIG5nYXkgMjAtMTAt MjAwOSkuDQoNCkJhIHZhIG9uZyBIb2FuZyBjdW5nIGRhIGd1aSBkb24ga2hpZXUgbmFpIGxlbiBU aHUgdHVvbmcgQ2hpbmggcGh1LiBUaHVjIGhpZW4geSBraWVuIA0KY2hpIGRhbyBjdWEgUGhvIHRo dSB0dW9uZyBDaGluaCBwaHUgVHJ1b25nIFZpbmggVHJvbmcgKENvbmcgdmFuIHNvIDQxNTgvVlBD UC0NCktOVE4gbmdheSAxOS02LTIwMDkpIHlldSBjYXUgVGhhbmggdHJhIENoaW5oIHBodSBiYW8g Y2FvIGtldCBxdWEgdGhhbmggdHJhIHZhIGtpZW4gDQpuZ2hpIGdpYWkgcXV5ZXQgZHV0IGRpZW0g a2hpZXUgbmFpIGN1YSBvbmcgVnUgSHV5IEhvYW5nLCBzYXUga2hpIHRvIGNodWMgRG9hbiB0aGFu aCB0cmEsIA0KVGhhbmggdHJhIENoaW5oIHBodSBkYSBjbyBrZXQgbHVhbiAoc28gMjU3Ny9CQy1U VENQKSBuaHUgc2F1Og0KDQotIFZpZWMgZGVuIGJ1IHRoaWV0IGhhaSBjaG8gb25nIEhvYW5nIGFw IGR1bmcgdGhlbyBOZ2hpIGRpbmggMjIvMTk5OC9ORC1DUCwgbmdheSAyNC0NCjQtMTk5OCBjdWEg Q2hpbmggcGh1IGxhIGtob25nIHBodSBob3AsIGJvaSBOZ2hpIGRpbmggMjIvTkQtQ1AgZGEgaGV0 IGhpZXUgbHVjIHRoaSANCmhhbmg7IGhvbiBudWEgbmdheSAzLTEyLTIwMDQsIFRodSB0dW9uZyBD aGluaCBwaHUgZGEgYmFuIGhhbmggTmdoaSBkaW5oIA0KMTk3LzIwMDUvTkQtQ1AgcXV5IGRpbmgg dmUgYm9pIHRodW9uZyBobyB0cm8gdGhpZXQgaGFpIHZhIHRhaSBkaW5oIGN1IGtoaSBOaGEgbnVv YyB0aHUgDQpob2kgZGF0IGRhIGNvIGhpZXUgbHVjIHBoYXAgbHVhdCB0aGF5IHRoZSBjaG8gbmdo aSBkaW5oIDIyL0NQLCB0cm9uZyBraGkgbmdheSAyNi02LTIwMDcsIA0KVUJORCBxdWFuIDIgbW9p IGJhbiBoYW5oIFF1eWV0IGRpbmggc28gNDM4OC9RRC1VQiB2ZSB2aWVjIGJvIHN1bmcgZGFuaCBz YWNoIGRpIA0KY2h1eWVuIGhvIG9uZyBWdSBIdXkgSG9hbmcgbmh1bmcga2hvbmcgeGFjIGRpbmgg ZGllbiB0aWNoIGRhdCwgdGFpIHNhbiBtYSBvbmcgSG9hbmcgDQpwaGFpIGRpIGNodXllbi4NCg0K LSBWaWVjIG9uZyBIb2FuZyBraGlldSBuYWkgZHVvYyBhcCBnaWEgYm9pIHRodW9uZyBnaWEgdHJp IHF1eWVuIHN1IGR1bmcgZGF0IHRoZW8gcXV5IA0KZGluaCBoaWVuIGhhbmggbGEgY28gY2FuIGN1 IHZpOiBOZ2F5IDUtNi0yMDA3IFVCTkQgVFAgSG8gQ2hpIE1pbmggbW9pIGJhbiBoYW5oIA0KUXV5 ZXQgZGluaCBzbyAyNDY2L1FELVVCIHZlIHZpZWMgcGhlIGR1eWV0IHBodW9uZyBhbiBib2kgdGh1 b25nIEdQTUIgdmEgdGFpIGRpbmggDQpjdSB0cm9uZyBraHUgcXV5IGhvYWNoIGRhdSB0dSB4YXkg ZHVuZyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gdHJlbiBkaWEgYmFuIHF1YW4gMi4NCg0KVGhh bmggdHJhIENoaW5oIHBodSBkYSBjbyBraWVuIG5naGkgYmFvIGNhbyBQaG8gdGh1IHR1b25nIFRy dW9uZyBWaW5oIFRyb25nOg0KIiBUdSBuaHVuZyBrZXQgbHVhbiB0cmVuLCBUaGFuaCB0cmEgQ2hp bmggcGh1IGJhbyBjYW8gdmEga2llbiBuZ2hpIFRodSB0dW9uZyBDaGluaCBwaHUgDQpjaGkgZGFv IENodSB0aWNoIFVCTkQgVFAgSG8gQ2hpIE1pbmggZ2lhaSBxdXlldCBraGlldSBuYWkgY3VhIG9u ZyBWdSBIdXkgSG9hbmcgDQpuaHUga2V0IGx1YW4gdmEgZGUgbmdoaSBjdWEgVGhhbmggdHJhIENo aW5oIHBodSB0YWkgQ29uZyB2YW4gc28gMjkwOC9UVENQLUNJSUksIG5nYXkgDQoyNS0xMi0yMDA4 LCBjdSB0aGU6DQoNCi0gQm9pIHRodW9uZyBkaWVuIHRpY2ggZGF0IDIuMjIzbTIgY28gdmkgdHJp IG1hdCB0aWVuIGR1b25nIEx1b25nIERpbmggQ3VhLCBwaHVvbmcgQW4gDQpLaGFuaCwgcXVhbiAy IGNobyBvbmcgVnUgSHV5IEhvYW5nLg0KDQotIEJvaSB0aHVvbmcgZ2lhIHRyaSBkYXQgdGhlbyBx dXkgZGluaCBjdWEgcGhhcCBsdWF0IGhpZW4gaGFuaC4NCg0KKFRyaWNoIEJhbyBjYW8ga2V0IGx1 YW4gVGhhbmggdHJhIENoaW5oIHBodSBzbyAyNTc0L0JDLVRUQ1AsIG5nYXkgMjAtMTAtMjAwOCku DQoNClNhdSBraGkgY28gYmFvIGNhbyBUaHUgdHVvbmcgQ2hpbmggcGh1LCBuaHVuZyB0aW5oIHRy YW5nIGtoaWV1IGtpZW4gdmFuIGNodWEgZHVvYyBnaWFpIA0KcXV5ZXQsIG5lbiBuZ2F5IDI1LTEy LTIwMDgsIFRoYW5oIHRyYSBDaGluaCBwaHUgZGEgY28gQ29uZyB2YW4gc28gMjkwOC9UVENQLUNJ SUksIA0KZ3VpIFVCTkQgVFAgSG8gQ2hpIE1pbmgsIGRvIFBobyB0b25nIFRoYW5oIHRyYSBDaGlu aCBwaHUgTGUgVGllbiBIYW8ga3ksIG5oYWMgbGFpIA0Ka2V0IHF1YSBraWVtIHRyYSBraGlldSBu YWkgY3VhIG9uZyBWdSBIdXkgSG9hbmcgdmEgY28geSBraWVuIGNoaW5oIHRodWM6DQoNCiIgVHUg a2V0IHF1YSBraWVtIHRyYSwgVGhhbmggdHJhIENoaW5oIHBodSBjbyB5IGtpZW4gbmh1IHNhdToN CkRlIG5naGkgVUJORCBUUCBIbyBDaGkgTWluaCB4ZW0geGV0IGdpYWkgcXV5ZXQga2hpZXUgbmFp IGRvaSB2b2kgb25nIFZ1IEh1eSBIb2FuZyB0aGVvIGh1b25nOg0KLSBCb2kgdGh1b25nIGRpZW4g dGljaCAyLjIyM20yIGRhdCBjbyB2aSB0cmkgbWF0IHRpZW4gZHVvbmcgTHVvbmcgRGluaCBDdWEs IHBodW9uZyBBbiANCktoYW5oLCBxdWFuIDIgY2hvIG9uZyBWdSBIdXkgSG9hbmc7DQotIEJvaSB0 aHVvbmcgZ2lhIHRyaSBkYXQgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0IGhpZW4gaGFuaCIu IA0KDQpOaHUgdGhlIGRhIHJvLiBRdWFuIDIgZGEga2hvbmcgbGFtIGR1bmcgcGhhcCBsdWF0IHRy b25nIHZpZWMgYm9pIHRodW9uZyBHUE1CIGNobyBnaWEgDQpkaW5oIG9uZyBIb2FuZyB2YSBiYSBD aGF1Lg0KDQpEYSBjbyB5IGtpZW4gY3VhIFBobyB0aHUgdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcs IFRoYW5oIHRyYSBDaGluaCBwaHUgZGEgdmFvIGN1b2MgdmEgDQpkYSBraGFuZyBkaW5oIGtoaWV1 IGtpZW4gY3VhIG9uZyBWdSBIdXkgSG9hbmcgbGEgZHVuZy4gVGhlIG1hIGNobyBkZW4gbmF5LCBU UCBIbyANCkNoaSBNaW5oIHZhbiBjaHVhIGdpYWkgcXV5ZXQgZHV0IGRpZW0gdGhlbyB5ZXUgY2F1 IGN1YSBQaG8gdGh1IHR1b25nLg0KDQpOZ2F5IDUtNS0yMDEwIGJhIE5ndXllbiBUaGkgQ2hhdSBs YWkgY28gdGh1IGd1aSBvbmcgTmd1eWVuIFRoYW5oIFRhaSwgUGhvIGNodSB0aWNoIA0KVGh1b25n IHRydWMgVUJORCBUUCBIbyBDaGkgTWluaC4gVHJvbmcgdGh1IGJhIGNvIG5vaSBkZW4gImFuIGxv bmcgZGFuIiwga2hvbmcgY2hpIA0KbGEgbmd1eWVuIHZvbmcgY3VhIGJhIG1hIGxhIG5ndXllbiB2 b25nIGN1YSBuaGFuIGRhbiBreSB2b25nIG8gY2hpbmggcXV5ZW4gdGhhbmggcGhvOg0KDQoiVG9p IGJpZXQgb25nIGJhbiB0cmFtIGNvbmcgbmdhbiB2aWVjLCBuaHVuZyB2aWVjIGFuIGxvbmcgZGFu IHRoZW8gdG9pIGN1bmcgbGEgbW90IHRyb25nIA0Kbmh1bmcgbmhpZW0gdnUgY2FwIGJhY2ggY3Vh IGNoaW5oIHF1eWVuIGhpZW4gbmF5LiBUb2kga2luaCBtb25nIG9uZyB0b24gdHJvbmcgeSBraWVu IA0KY3VhIGRhbiwgc29tIHBoYW4gaG9pIGNobyBnaWEgZGluaCBjaHVuZyB0b2kgZHVvYyBiaWV0 IGh1b25nIGdpYWkgcXV5ZXQgY3VhIFVCTkQgDQp0aGFuaCBwaG8iLg0KDQpTdSB2aWVjIGRhIHJv IHJhbmcuIFF1YW4gMiBsYW0ga2hvbmcgZHVuZyBwaGFwIGx1YXQgbmVuIGJhIENoYXUgdmEgb25n IEhvYW5nIGtoaWV1IA0Ka2llbiBrZW8gZGFpLiBEYSBjbyB5IGtpZW4gY3VhIFBobyB0aHUgdHVv bmcgdmEgVGhhbmggdHJhIENoaW5oIHBodSB5ZXUgY2F1IGxhbmggZGFvIA0KVFAgSG8gQ2hpIE1p bmggZ2lhaSBxdXlldCBkdXQgZGllbS4gQ2h1bmcgdG9pIG1vbmcgcmFuZyBVQk5EIFRQIEhvIENo aSBNaW5oIHNvbSANCmdpYWkgcXV5ZXQgZHV0IGRpZW0gZGUgZHVvYyBhbiBsb25nIGRhbi4NCg0K aHR0cDovL3lraWVuLndvcmRwcmVzcy5jb20vMjAwNy8xMC8xMy90aCVDNiVCMC1jJUUxJUJCJUE3 YS1vbmctbWFpLWQlRTElQkIlOTFjLyBEYW5nIGJvaSBRdWFuIHRyaSBvbiAxMy4xMC4yMDA3DQoN ClRodSBjdWEgbW90IHZpIExhbyB0aGFuaCANCg0KVGhhbmggcGhvIEhvIENoaSBNaW5oIG5nYXkg MTAgdGhhbmcgMTAgbmFtIDIwMDcNCiANCktpbmggZ3VpOg0KDQotIE9uZyBOZ3V5ZW4gUGh1IFRy b25nIC0gQ2h1IHRpY2ggcXVvYyBob2kga2hvYSAxMg0KLSBPbmcgVHJ1b25nIERvYW4gZGFpIGJp ZXUgcXVvYyBob2kgdHAuSENNDQotIE9uZyBOZ3V5ZW4gTWluaCBUcmlldCAtIERhaSBiaWV1IHF1 b2MgaG9pIC0gQ2h1IHRpY2ggbnVvYw0KDQpEb25nIEtpbmggR3VpOiBPbmcgTmd1eWVuIFRhbiBE dW5nIC0gVGh1IFR1b25nIENoaW5oIFBodSANCg0KVG9pIHRlbiBNYWkgRG9jLCBjdSB0cmksIGNh biBibyBodXUgdHJpLCBkaWEgY2hpIDM3IFRoYW8gRGllbiBxdWFuIDIsIHRoYW5oIHBobyBIQ00u IERpZW4gdGhvYWkgOiA4NCA4IDg4NyA0OTk5LiANCg0KSS4gUGhhdCBiaWV1IHRpZXAgeHVjIHZv aSBEQiBxdW9jIGhvaSANCg0KMS8gWGluIG9uZyBOZ3V5ZW4gTWluaCBUcmlldCBjaG8gYmlldCBr aGkgb25nIGNvbiBsYSB1bmcgY3UgdmllbiBkYWkgYmlldSBxdW9jIGhvaSB2YSANCm5heSBsYSBk YWkgYmlldSwgbmh1bmcga2hpIG9uZyBkZW4gdGllcCB4dWMgdm9pIGN1IHRyaSBxdWFuIDIsIHZp IHNhbyBraG9uZyBjaG8gY3UgdHJpIA0KZHVvYyB0dSBkbyBkZW4gZHUsIG1hIGJpIGx1YyBsdW9u ZyBjb25nIGFuIG5nYW4gY2FuLCBjaGkgY2hvIG5ndW9pIG5hbyBkdW9jIGNoaSBkaW5oIA0KdmFv IGR1LiBOYXkgb25nIGxhIGRhaSBiaWV1LCBraWVtIGNodSB0aWNoIG51b2Mgb25nIHBoYWkgbGFt IGdpIGRlIGRlcCBibyB0aHVjIHRyYW5nIA0KbmF5LCBkYSB0b24gdGFpIG5oaWV1IG5vaSwgbmhp ZXUgbmFtIGtob25nIHJpZW5nIGdpIHF1YW4gMi4gVG9pIGtpZW4gbmdoaSBvbmcgY2FuIGNvIGJp ZW4gDQpwaGFwIGJhaSBibyB2aWVjIGNob24gbmd1b2kgbW9pIGR1IHRpZXAgeHVjLCB5IGtpZW4g cGhhdCBiaWV1IGN1YSBjdSB0cmkgZGEgZHVvYyBjaGkgZGluaCANCnZhbiBwaGFpIGxhbSB0aGFu aCB2YW4gYmFuICwgY2hvIGNoaW5oIHF1eWVuIHhldCBkdXlldCB0cnVvYyEgVGFpIHNhbyBraG9u ZyB0aG9uZyBiYW8gDQpyb25nIHJhaSBkZSBtb2kgY3UgdHJpIGRldSBkdW9jIGRlbiBkdSwgZGV1 IGR1b2MgdHUgZG8gcGhhdCBiaWV1PyBLaGkgZGkgYmF1IGN1LCBtb2kgDQpuZ3VvaSBkZXUgZHVv YyBkaSBiYXUsIGNvIGtoaSBjb24gYmkgbmFuIG5pLCBjdW9uZyBlcCBkaSBiYXUsIHZheSB0YWkg c2FvIG5heSBsYWkgaGFuIGNoZSANCnF1eWVuIGNvbmcgZGFuPyBOZXUgdmkgZGlhIGRpZW0gY2hh dCBoZXAsIGNhbiBibyB0cmkgbmhpZXUgbm9pIHZhIGRhaSBiaWV1IHF1b2MgaG9pIHBoYWkgDQpj byB0aG9pIGdpYW4gZGVuIHRpZXAgeHVjIGN1IHRyaSBiYW5nIHRob2kgZ2lhbiBkdSBreSBob3As IGNodSBraG9uZyBuZ2FuIG5ndWkgbmh1IGhpZW4gDQpuYXkuIENvIG5odSB2YXkgb25nIG1vaSB0 aHVjIGhpZW4gZHVvYyBjaHVvbmcgdGluaCBoYW5oIGRvbmcgY3VhIG9uZyBraGkgdW5nIGN1IGxh OiANCkdhbiBndWkgbGFuZyBuZ2hlIHkga2llbiBuaGFuIGRhbi4uLg0KDQoyLyBUdSBjYWMga2hv YSBRSCB0cnVvYyB0YWkgcXVhbiAyLCBtb2kga3kgdGllcCB4dWMgY3UgdHJpIGx1b24gYmllbiB0 aGFuaCBkaWVuIGRhbiBraGlldSANCm5haSAmIHRvIGNhbyBuZ2F5IGNhbmcgZ2F5IGdhdC4gVG9p IGRhIGxpZW4gdHVjIGtpZW4gbmdoaSBjYW4gbGFtIHJvIGRpZXUgNTIgbHVhdCB0byBjaHVjIA0K UUggdmUgdHJhY2ggbmhpZW0gdGllcCB4dWMgdm9pIGN1IHRyaTogS2hpIG5oYW4gZHVvYyBraGll dSBuYWkgJiB0byBjYW8gY3VhIGNvbmcgZGFuLCANCmRhaSBiaWV1IGNvIHRyYWNoIG5oaWVtIG5n aGllbiBjdXUsIGtpcCB0aG9pIGNodXllbiBkZW4gbmd1b2kgY28gdGhhbSBxdXllbiBnaWFpIHF1 eWV0IA0KdmEgdGhvbmcgYmFvIGNobyBuZ3VvaSBraGlldSBuYWkgdG8gY2FvIGJpZXQ7IGRvbiBk b2MgdmEgdGhlbyBkb2kgdmllYyBnaWFpIHF1eWV0IC4uLg0KDQpUaGUgbWEgdHUgbGF1IG5heSBE QiBraG9uZyBjYW4geGVtIHhldCBsYSBjaHV5ZW4gbmdheSBjaG8gY2hpbmggcXV5ZW4uIFZpIHRo ZSBtb2kgDQpsYW4gbW8gZGF1IGN1b2MgdGllcCB4dWMgbGEgY2hpbmggcXV5ZW4gZHVuZyBsZW4g YmFvIGNhbyBrZXQgcXVhIGdpYWkgcXV5ZXQga2hpZXUgbmFpIHZhIA0KdG8gY2FvIGxhIHNhaSBs dWF0LiBDdSB0cmkga2hvbmcgcm8gREIgZGEgbmdoaWVuIGN1dSwgZGEgZ2lhbSBzYXQgdnUgdmll YyBkbyBkdW9jIGdpYWkgDQpxdXlldCBuaHUgdGhlIG5hbyBkYSB0aG9hIGRhbmcgY2hvIGRhbiBj aHVhPw0KDQozLyBPbmcgTWFpIFF1b2MgQmluaCBEQiBRSCBraG9hIDExIGNvIHNhbmcga2llbiBk ZSBuZ2hpIFVCTkQgcXVhbiAyIGN1bmcgdG8gZGFpIA0KYmlldSB0b25nIGhvcCBjYWMga2hpZXUg bmFpIHRvIGNhbyBjdWEgZGFuIGRlIGxlbiBsaWNoIG1vaSBuZ3VvaSBjbyBsaWVuIHF1YW4gY3Vu ZyBsdWF0IA0Kc3UgZGVuIGR1LCB0cnVjIHRpZXAgZG9pIHRob2FpIGdpYWkgcXV5ZXQsIG5odW5n IHF1YW4gMiBraG9uZyBsYW0uDQoNCklJLiBDYW4gY3UgTHVhdCBwaG9uZyBjaG9uZyB0aGFtIG5o dW5nIHRhaSBkaWV1IDYzIHZlIHBoYXQgaGllbiB0aGFtIG5odW5nIHZhIGRpZXUgNjQgDQp2ZSB0 byBjYW8uIFRvaSB4aW4gdG8gY2FvIFVCTkQgdGhhbmggcGhvIEhDTSB2YSBRdWFuIDIgY2FjIGhh bmggdmkgdGhhbSBuaHVuZyBkYSANCmR1b2MgYmFvIGNoaSBwaGFuaCBwaHVpOg0KDQoxLyBWdSA0 aGEgZGF0IEFuIFBodSB2YSAxMS4wMDBtMiBkYXQgZHVvbmcgVHJhbiBOYW8gcXVhbiAyDQoNCkJh byBTYWkgR29uIEdpYWkgUGhvbmcgbmdheSA5LzcvMDc6IExhcCBkdSBhbiBsYXkgZGF0IGN1YSBk YW4gbmdoZW8gY2hpYSBjaG8gY2FuIGJvLiANClRhaSBzYW8gbW9pIHJhIGt5IDEgbGFpIGJpIG5n dW5nIG5nYXk/IEJhbyBEYWkgRG9hbiBLZXQgZGFuZyAzIGJhaTogQ2FjIHF1YW4gcXVhbiAyIA0K Y2hpYSBkYXQgY2hvIG5oYXUgbmh1IHRoZSBuYW8/IEJhaSAxOiBFcCBkYW4gZGUgbGF5IGRhdCBj aGlhIGNobyBjYWMgcXVhbi4gQmFpIDI6IENvIGRhdCANCmxhIHF1YW4gYmFuIG5nYXkuIEJhaSAz OiBTdSB2aWVjIGxpZXUgY28gY2hpbSB4dW9uZy4gQ2FjIGJhaSBiYW8gY28gbmV1IGRpY2ggZGFu aCBjYWMgDQpxdWFuIHF1YW4gMiBhaSBiYW8gbmhpZXUgbTIuIENvIGNodXAgYW5oIG5nb2kgYmll dCB0aHUgY3VhIHF1YW4gTmd1eWVuIFZhbiBEb25nIC4NCg0KVmllYyBiYW8gU0dHUCBraG9uZyBk dW9jIGRhbmcgbGEgdmkgb25nIExlIFRoYW5oIEhhaSwgYmkgdGh1IHRoYW5oIHV5LCBVViBCQ1Qg Y28gDQp2ZSBxdWFuIDIgY2hpIGRhbzogUGhhaSB4YXkgZHVuZyBxdWFuIDIgdGhhbmgga2h1IGRv IHRoaSB2YW4gbWluaCBoaWVuIGRhaSB0YW0gY28gdGhlIA0Ka3kgMjEsIGhvbiBjYSBQaHUgTXkg SHVuZy4uLiBUaGVvIG9uZyBtdW9uIHZheTogQ2FuIGNvIGJhbiB0YXkgc2F0IHRyb25nIHF1YW4g bHkgc3UgDQpkdW5nIGRhdCwgcXVhbiBseSB4YXkgZHVuZyB2YSBxdWFuIGx5IHF1aSBob2FjaCBv IGRpYSBwaHVvbmcgbmF5LiBWaSB0aGUgNCBuZ2F5IHNhdSwgDQpjb25nIGFuIHF1YW4gMiBkYSBk dW5nIGJhbiB0YXkgc2F0IGRvLCBkZW4ga2VvIHNhcCBuaGEsIGxheSBkaSBnaWEgc2FuIHZhIGJh dCAyIG5ndW9pLCBtYSANCmtob25nIGNvIG1vdCB2YW4gYmFuIG5hbywgZG9pIHZvaSA1IGhvIGRh biB0cmVuIGR1b25nIFRyYW4gTmFvLCBtYSBuaGlldSBuYW0gbmF5IHZhbiANCmtpZW4gdHJpIGto aWV1IG5haSBuZ2F5IG1vdCBnYXkgZ2F0LiBCYW8gQ29uZyBMeSByYSBuZ2F5IDEwLzUvMDQgY28g dmlldDogUXVhbiAyOiBEYXQgDQp4YXkgdHJ1IHNvIGJpZW4gdGhhbmggZGF0IHRobyBjdS4gQ3Vv bmcgY2hlIHRodSBob2kgZGUgZ2lhbyBjaG8gY29uZyB0eSB4YXkgZHVuZyA0IHRodW9jIA0KYm8g dGFpIG5ndXllbiB2YSBtb2kgdHJ1b25nLiBEYXQgbmF5IGNodWEgZGVuIGJ1IHhvbmcgbWEgVUJO RCB0aGFuaCBwaG8gZGEgY2FwIA0KcGhlcCBzdSBkdW5nIGNobyAxMCBobyBxdWFuIGNodWMuICgg ZGF0IG5heSBnaWEgdGhpIHRydW9uZzogNzUgdHJpZXUgLzFtMikuDQoNCkhhbmggdmkgbmF5IGxh IGhhbmggdmkgdGhhbSBuaHVuZyBkYSBkdW9jIGx1YXQgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBx dWkgZGluaCB0YWkgZGlldSAzIC4NCg0KMi8gS2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIA0KDQpC YW8gRGFpIERvYW4gS2V0IGRhIGRhbmcgNSBreTogSGFuaCB0cmluaCBkaSB0aW0gMTYwIGhhIGRh dCB0YWkgZGluaCBjdSBjdWEgZGFuLiBRdWEgDQpjYWMgYmFpIGJhbyBub2kgdHJlbiwgbmd1b2kg ZGFuIG1vaSBiaWV0IHZpIHNhbyBjaGluaCBxdXllbiBsdW9uIHRpbSBjYWNoIHRodWMgZXAgZGFu IHRhaSANCmRpbmggY3UgdmFvIGNhYyBjaHVuZyBjdSwgbmFtIG5nb2FpIEtEVE1UVC4gS2hpIHZv IG9uZyBMZSBUaGFuaCBIYWkgbGEgVHJ1b25nIA0KVGhpIEhpZW4sIGVtIGdhaSBiYSBUcnVvbmcg TXkgSG9hLCBsZW4gbGFtIFAgY2h1IFRpY2ggcXVhbiAyLCBvbmcgbW9pIGt5IHZhbiBiYW4gDQp0 cmluaCBUaHUgVHVvbmcgbmdheSA0LzEvMDIgeGluIGR1b2MgZ2lhbyBsYWkgMTYwaGEgdGFpIGRp bmggY3UgY2hvIHRoYW5oIHBobyBxdWFuIGx5LCANCmRlIGNvIGNvIHNvIHBoYXAgbHkgdGllbiBo YW5oIGRlbiBidSBnaWFpIHBob25nIG1hdCBiYW5nIHZhIHRyaWVuIGtoYWkgZGF1IHR1IHhheSBk dW5nLiANClZpIHNhbyBvbmcga3kgdmFuIGJhbiBuYXk/IFZpIDMgbmFtIHF1YW4gMiByYSBkb2ks IHRoaSAxNjAgaGEgZGF0IG5heSBkYSBjYXAgY2hvIDI4IGR1IA0KYW4gZGUgYmllbiB0aGFuaCBk YXQgcGhhbiBsbyBiYW4gbmVuLiBEYXkgY2hpbmggbGEgbmd1eWVuIGRvIGtoaWV1IG5haSBnYXkg Z2F0IGN1YSBuaGFuIA0KZGFuIDUgcGh1b25nIHRyb25nIEtEVE1UVC4gVmkgdGhlIGRlIGNoZSBk YXkgaGFuaCB2aSBsYW0gYmllbiBtYXQgMTYwIGhhIGRhdCBuYXksIA0Kb25nIExlIFRoYW5oIEhh aSB0dSBjaHUgdGljaCBsZW4gYmkgdGh1IGRhIHZlIHF1YW4gMiBjaGkgZGFvOiBEdW5nIGJhbiB0 YXkgc2F0IGRlIGN1b25nIA0KY2hpZW0gZGF0IGN1YSBkYW4gY2FjaCBob3AgcGhhcCEgRGlldSB0 cnVuZyBob3AgdGh1IHZpIGxhIHR1IG5hbSAyMDAzIGJhbyBEQUkgRE9BTiBLRVQgDQpkYSBjbyBi YWkgdmlldCB2ZSBvbmcgTGUgVGhhbmggSGFpIHRyb25nIHZ1IFBodSBNeSBIdW5nIGRhIHRoYWNo IHRodWMgcGhhcCBsdWF0LCB2YXkgbWEgDQpjb24gZHVvYyBuaGFuIGh1YW4gY2h1b25nIGxhbyBk b25nIGhhbmcgMy4gDQoNCkN1IHRyaSBxdWFuIDIgZGEgZ29pIG9uZyBsYTogVGFuIFRodXkgSG9h bmcsIEhpdCBMZSwgUGlub2NoZSwgUG9ucG90IG5nYXkgbmF5Li4uDQoNCjMvIER1IGFuIGR1b25n IHNvbmcgaGFuaCB4YSBsbyBIYSBOb2kgDQoNCkRheSBsYSBkdSBhbiBraG9pIGNvbmcgdHUgdGhh bmcgMDkvMTk5OSBkZW4gbmF5IGRhIDggbmFtIHZhbiBjaHVhIGhvYW4gdGhhbmggbGFtIGJhbyAN CmNoaSB0b24gbmhpZXUgY29uZyBzdWMgZGkgcGhhbmggcGh1aSBkYW5nIHRhaSB2YSBuZ3VvaSBk YW4gY3VuZyBuZ2FuIGF5IG5hbSBkaSBraGlldSANCm5haSB0byBjYW8uIFRvaSB4aW4gZHVhIHJh IGNhYyBiYWkgYmFvIGRlIGN1bmcgY2FwIHRob25nIHRpbiB0YWkgbGlldSBjaG8gY2FjIGRhaSBi aWV1IHF1b2MgDQpob2kgUXVhbiAyLCBEb2FuIERhaSBiaWV1IFF1b2MgaG9pIFRoYW5oIHBobyB2 YSBRdW9jIGhvaSBLaG9hIDEyIGdpYW0gc2F0IGhpZW4gY28gDQpwaGFpIGxhIGhhbmggdmkgdGhh bSBuaHVuZyBraG9uZz8NCg0KQmFvICJOZ3VvaSBsYW8gZG9uZyIgcmEgbmdheSAyMC8xMS8yMDAw IGRhIGNvIGJhaTogIkhvYXQgZG9uZyBjdWEgZG9hbiBjb25nIHRhYyANCmNoaW5oIHBodSB0YWkg VFAuSENNLiBLZXQgbHVhbiB2ZSBnaWFpIHF1eWV0IGtoaWV1IG5haSBjdWEgY2FjIGhvIGRhbiBv IGR1b25nIHNvbmcgDQpoYW5oIFhhIGxvIEhhIE5vaSB2YSB0aWV1IHRodW9uZyBjaG8gQW4gS2hh bmg6IEdpYWkgdG9hIGRlbiBidSB0aGlldSBjb25nIGtoYWkgZGFuIA0KY2h1IGRvaSB2b2kgZGFu Ii4gVmkgdGhlIGRhbiBsaWVuIHR1YyBraGlldSBuYWkgdG8gY2FvLCBiYW8gY2hpIGxpZW4gdHVj IHBoYW5oIHBodWkgZGFuZyB0YWkgDQpkdSBhbiBuYXk6DQoNCi0gIlZ1IGtoaWV1IGtpZW4gdmUg dmllYyBnaWFpIHRvYSBkZW4gYnUgaGFuaCBsYW5nIHhhIGxvIEhhIE5vaSCWIEtpZW4gbmdoaSBV Qk5EIFRQIA0KeGVtIHhldCBsYWkiIChTYWkgR29uIEdpYWkgcGhvbmcgc28gbmdheSAyNi8xMi8y MDAzKS4NCg0KLSAiUXVhbiAyIJYgVFBIQ006IDI0MCBuZ3VvaSBkYW4gY28gZG9uIHRvIGNhbyBk ZSBuZ2hpIGNhY2ggY2h1YyBtb3QgcGhvIENodSB0aWNoIA0KVUJORCBRdWFuIiAoQ29uZyBseSBz byBuZ2F5IDIzLzAyLzIwMDQpLg0KDQotICJEdW9uZyBzb25nIGhhbmggeGEgbG8gSGEgTm9pIChU UC5IQ00pOiBuYW0gbmFtIHRoaSBjb25nLCBsYW0gbGFpLi4uIHR1IGRhdSIgDQooVGhhbmggTmll biBzbyBuZ2F5IDI1LzEwLzIwMDQpLg0KDQotICJEdSBhbiBkdW9uZyBzb25nIGhhbmggWGEgbG8g SGEgTm9pOiAiUXV5dCIgbGFtLi4uIGRhbiBjaGl1ISIgKENvbmcgYW4gVFA+SENNIA0Kc28gbmdh eSAzMC8xMC8yMDA0KS4NCg0KLSAiRHUgYW4gZHVvbmcgc29uZyBoYW5oIFhhIGxvIEhhIE5vaTog VGhpIGNvbmcgMy8xMCBnb2kgdGhhdSByb2kgYm8iIChOZ3VvaSBsYW8gZG9uZyANCm5nYXkgMjUv MDgvMjAwNSkuDQoNCi0gIkR1IGFuIGR1b25nIHNvbmcgaGFuaCBYYSBsbyBIYSBOb2k6IE5ndW5n IGRlIHh1IGx5IHRvbiBkb25nIiAoVHVvaSBUcmUgc28gbmdheSANCjIwLzA2LzIwMDYpLg0KDQpE b2Mgbm9pIGR1bmcgY2FjIGJhaSBiYW8gY3VhIGNhYyBiYW8gdmUgZHUgYW4gbmF5LCBjYWMgZGFp IGJpZXUgUXVvYyBob2ksIGRvYW4gZGFpIGJpZXUgDQpRdW9jIGhvaSB2YSBvbmcgQ2h1IHRpY2gg UXVvYyBob2kga2hvYSAxMiB0aHUgaG9pIHZpIHNhbyBjYSBuaGllbSBreSBxdW9jIGhvaSAxMSBk YSANCmdpYW0gc2F0LCBkYSBjbyB0cmFjaCBuaGllbSBuZ2hpZW4gY3V1IHZhIGRhIGtpZW4gbmdo aSB2b2kgY2FjIGNvIHF1YW4gbmhhIG51b2MgaHV1IA0KcXVhbiBnaWFpIHF1eWV0IGRlbiBkYXUg bWEgbmd1b2kgZGFuIHZhbiBraGlldSBuYWkgdG8gY2FvIHN1b3QgNy04IG5hbSBuYXk/IERhYyBi aWV0IGxhIA0KdmllYyBkZW4gYnUgNCw1bSBkYXQgY2hvIGRhbiBtYSBtb3QgcGhvIENodSB0aWNo IFVCTkQgVFAga3kgcXV5ZXQgZGluaCBraG9uZyBkZW4gDQpidSwgcm9pIG1hdCBjaHVjLCBjdSBt YWMgY2hvIGRhbiBraGlldSBuYWkgdG8gY2FvIGxhIHRhaSBzYW8/DQoNClF1YSA0IHZ1IHZpZWMg bm9pIHRyZW4gbWEgdG9pIGN1bmcgY2FwIHRob25nIHRpbiB0YWkgbGlldSBsYSBjYWMgYmFpIGJh byBndWkga2VtIHZhbiBiYW4gDQpuYXkgZGUgcGhhdCBiaWV1IHRpZXAgeHVjIHZvaSBjYWMgZGFp IGJpZXUgUXVvYyBob2kgbyBRdWFuIDIgZGVuIG9uZyBDaHUgdGljaCBRdW9jIGhvaSANCmtob2Eg MTIgZGUgdG8gY2FvIHZhIGRhaSBiaWV1IFF1b2MgaG9pIGNvIHRyYWNoIG5oaWVtIHBoYXQgaGll biBkYXkgY28gcGhhaSBsYSBoYW5oIHZpIA0KdGhhbSBuaHVuZyBjdWEgVUJORCBRdWFuIDIgdmEg VFAgY3VhIG9uZyBMZSBUaGFuaCBIYWkga2hpIGxhbSBDaHUgVGljaCBUUCANCmtob25nPyBMYW0g c2FuZyB0byBoYW5oIHZpIHF1YSBjYWMgYmFpIGJhbyBub2kgdHJlbiBraG9uZyBjaGkgZGUgY2hv bmcgdGhhbSBuaHVuZyBtYSANCmN1bmcgZGUgZ2lhaSBxdXlldCBraGlldSBuYWkgdG8gY2FvIHRh aSBRdWFuIDIgZGEgdG9uIGRvbmcgbGF1IG5heS4gDQoNCklJSS4gS2llbiBuZ2hpIHN1YSBkb2kg dmEgYm8gc3VuZyBsdWF0IHBob25nIGNob25nIHRoYW0gbmh1bmc6DQoNCkx1YXQgYmFuIGhhbmgg dGhhbmcgMTIvMjAwNSBjb24gbmhpZXUgYmF0IGNhcCwga2hvbmcgY2hpIGtob25nIGNvIEJhbiBj aGkgZGFvIG8gY2FjIA0KZGlhIHBodW9uZyBuaHUgVUJUViBRdW9jIGhvaSB2dWEgaG9wIG5ldSBy YSBtYSBjb24gbmhpZXUgY2h1b25nIHRyaW5oIGNhbiBzdWEgZG9pIA0KYm8gc3VuZy4gWGluIGtp ZW4gbmdoaSBuaHUgc2F1Og0KDQoxLiBDaHVvbmcgMyBjYW4gYm8gc3VuZyB0aGFuaCBjaHVvbmc6 IFBoYXQgaGllbiB2YSB4dSBseSB0aGFtIG5odW5nIGRlIGtoaSBwaGF0IGhpZW4gDQpjYW4gcGhh aSBkdW9jIHh1IGx5IG5nYXkga2hvbmcga2VvIGRhaSBuaHUgY2FjIHZ1IGRhIGtob2kgdG8gYmF0 IHRhbSBnaWFtIG1hIGtob25nIA0KeGV0IHh1IG5nYXkgbmh1IHZ1IFBNVSAxOCwgdnUgZGllbiBr ZSBkaWVuIHR1Lg0KDQoyLiBNdWMgMiB2ZSBwaGF0IGhpZW4gdGhhbSBuaHVuZyB0aG9uZyBxdWEg aG9hdCBkb25nIHRoYW5oIHRyYSwga2llbSB0b2FuLCBkaWV1IHRyYSwgDQpraWVtIHNhdCwgeGV0 IHh1LCBnaWFtIHNhdCBsYSBjaHVhIGR1LiBUaHVjIHJhIGNoaSBtb2kgY28gaG9hdCBkb25nIGtp ZW0gdG9hbiBkYSBwaGF0IA0KaGllbiByYSB2dSAxMTIgY29uIGNhYyBob2F0IGRvbmcga2hhYyBu Z2F5IGdpYWkgcXV5ZXQga2hpZXUgbmFpIHRvIGNhbyB0aGVvIGx1YXQgY3VuZyANCmNodWEgZGFw IHVuZyBtb2kgYnVjIHh1YyBjdWEgZGFuLiBLaWVuIG5naGkgY2FuIGJvIHN1bmcgbXVjIG5heSB2 ZSBob2F0IGRvbmcgY3VhIGJhbyANCmNoaSBkZSBiYW8gY2hpIHR1IGtoaWV1IG5haSB0byBjYW8g ZHVvYyBxdXllbiBkaWV1IHRyYSBwaGF0IGhpZW4gdGhhbSBuaHVuZyBuaHUgZGEgcGhhdCANCmhp ZW4gcmEgdnUgZGllbiBrZSBkaWVuIHR1LCB2dSBkYXQgRG8gU29uLg0KDQozLiBDYW4gYm8gc3Vu ZyBtdWMgbW9pIHZhbyBDaHVvbmcgMyBuYXkgbGEgbXVjOiBIZSB0aG9uZyB0byBjaHVjIHBob25n IGNob25nIHRoYW0gDQpuaHVuZyB0dSBUcnVuZyB1b25nIGRlbiBEaWEgcGh1b25nLiBUcm9uZyBk byBxdXkgZGluZyBybyBjaHVjIG5hbmcgbmhpZW0gdnUgcXV5ZW4gDQpoYW4gY2hvIHRvIGNodWMg bmF5LiBLaWVuIG5naGkgY2FuIHRoYXkgdGVuIGdvaSBiYW4gY2hpIGRhbyBiYW5nIFV5IGJhbiBx dW9jIGdpYSBwaG9uZyANCmNob25nIHRoYW0gbmh1bmcuIFV5IGJhbiBuYXkgY2FwIFRydW5nIHVv bmcgZGVuIGRpYSBwaHVvbmcgcGhhaSBkbyBjbyBxdWFuIGxhcCBwaGFwIA0KYmF1IHJhIHZhIHRy dWMgdGllcCBxdWFuIGx5LiBIaWVuIG5heSBjYXAgVHJ1bmcgdW9uZyBjbyBCYW4gY2hpIGRhbyB0 aHVvYyBUaHUgdHVvbmcgDQpDaGluaCBwaHUsIGNvIEN1YyBjaG9uZyB0aGFtIG5odW5nIHRodW9j IFRvbmcgVGhhbmggVHJhIGRldSBsYSB0aHVvYyBjbyBxdWFuIGhhbmggDQpwaGFwLiBUaHVjIHRl IHRoYW0gbmh1bmcgZGV1IHhheSByYSBvIGNvIHF1YW4gaGFuaCBwaGFwIG1hIHZ1IFBNVTE4IGxh IHRodW9jIEJvIA0KZ2lhbyB0aG9uZyB2YW4gdGFpLCB2dSBkaWVuIGtlIGRpZW4gdHUgbGEgdGh1 b2MgQm8gQ29uZyBuZ2hpZXAsIHZ1IERhdCBEbyBTb24gbGEgdGh1b2MgDQpVQk5EIFRQIEhhaSBQ aG9uZy4gRG8gZG8gY28gcXVhbiBjaG9uZyB0aGFtIG5odW5nIGR1IGdvaSBsYSBCYW4gY2hpIGRh byBoYXkgVXkgDQpiYW4gZGV1IHBoYWkgdGh1b2MgY28gcXVhbiBsYXAgcGhhcCBvIFRydW5nIHVv bmcgbGEgUXVvYyBob2kgbyBkaWEgcGh1b25nIGxhIEhvaSBkb25nIA0KbmhhbiBkYW4gbW9pIGNo YW0gZHV0IHRodWMgdHJhbmcgInZ1YSBkYSBib25nIHZ1YSB0aG9pIGNvaSIgbGFtIGR1IGx1YW4g YmF0IGJpbmggdmEgDQpwaG9uZyBjaG9uZyB0aGFtIG5odW5nIGtob25nIGhpZXUgcXVhLg0KDQo0 LiBWZSB0cmFjaCBuaGllbSB0aWVwIG5oYW4gdmEgZ2lhaSBxdXlldCB0byBjYW8gdGFpIGRpZXUg NjUgbHVhdCBraG9uZyB0aGUgcXV5IGRpbmggDQpsYSBjbyBxdWFuLCB0byBjaHVjLCBkb24gdmkg dmEgbmd1b2kgZHVuZyBkYXUgY2h1bmcgY2h1bmcgbmh1IHZheSBkZSAiY2hhIGNodW5nIA0Ka2hv bmcgYWkga2hvYyIgZHUgZG8gbGEgY28gcXVhbiB0aGFuaCB0cmEsIGNvIHF1YW4gZGlldSB0cmEs IHZpZW4ga2llbSBzb2F0LiBUaHVjIHRlIGNhYyANCmNvIHF1YW4gbmF5IGNodWEgdGllcCBuaGFu IHZhIGdpYWkgcXV5ZXQgdG8gY2FvIHZ1IG5hbyB0aGVvIGx1YXQga2hpZXUgbmFpIHRvIGNhbyBk ZSANCm5ndW9pIGRhbiB2YSBkdSBsdWFuIGhhaSBsb25nLiBUb2kga2llbiBuZ2hpIHRyYWNoIG5o aWVtIHRpZXAgbmhhbiB2YSBnaWFpIHF1eWV0IHRvIGNhbyANCnZlIHRoYW0gbmh1bmcgcGhhaSBk byBVeSBiYW4gcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBjaGl1IHRyYWNoIG5oaWVtIG1vaSBraGFj aCANCnF1YW4sIHRydW5nIHRodWMgdmEgaGlldSBxdWEuDQoNCjUuIENodW9uZyA0IHZlIHh1IGx5 IGhhbmggdmkgdGhhbSBuaHVuZyBraG9uZyB0aGUgcXV5IGRpbmggZG9uIGdpYW4gbmh1IHZheSBk dW9jIHZvaSANCjEyIGhhbmggdmkgZGEgcXV5IGRpbmggbyBEaWV1IDMuIFRvaSBraWVuIG5naGkg Y2FuIGJvIHN1bmcgZGUgbHVhdCBob2EgY2FjIGhhbmggdmkgdmEgDQpxdXkgZGluaCBjdSB0aGUg ZG9pIHR1b25nIG5hbyBwaGFpIHh1IGx5IGhhbmggY2hpbmgsIHBoYWkgeHUgbHkgdGhlbyBsdWF0 IGRhbiBzdSBoYXkgeHUgDQpseSBoaW5oIHN1IG1vaSBjbyB0aW5oIHJhbiBkZSBwaG9uZyBuZ3Vh IGRlIGRlIHF1eSB0b2kgZGFuaCBraGkgeGV0IHh1LCBjaHUga2hvbmcgdGhlIA0Kbmh1IG11YyAx IGxhIHh1IGx5IGt5IGx1YXQsIHh1IGx5IGhpbmggc3UgbGEgcXVhIGNodW5nIGNodW5nLg0KDQo2 LiBMdWF0IGJvIHN1bmcgdmllYyB4ZXQgeHUgdGhhbSBuaHVuZyBwaGFpIGJhbmcgdG9hIGFuIHJp ZW5nLiBLaG9uZyBkZSBjYWMgdG9hIGFuIGhpZW4gDQpuYXkgeGV0IHh1IHZpIGRhIHF1YSB0YWkg dmEga2hvbmcgZHUgdGhhbSBwaGFuLiBQaGFpIGNvIHRvYSBhbiB4ZXQgeHUgdGhhbSBuaHVuZyBk dW9jIA0KYm8gc3VuZyB2YW8gbHVhdCB2b2kgY2h1YyBuYW5nIG5oaWVtIHZ1IHF1eWVuIGhhbiBy byByYW5nLg0KDQo3LiBWdWEgcXVhIFV5IGJhbiB0aHVvbmcgdnUgUXVvYyBob2kgZHVhIHJhIHF1 eSBkaW5oIGNobyBiYW4gY2hpIGRhbyBwaG9uZyBjaG9uZyANCnRoYW0gbmh1bmcgY2FwIGRpYSBw aHVvbmcgZG8gQ2h1IHRpY2ggVUJORCBsYW0gVHJ1b25nIGJhbiB2YSBjbyBxdXllbiBjYWNoIGNo dWMgDQpDaHUgdGljaCBIb2kgZG9uZyBuaGFuIGRhbiBsYSBraG9uZyBwaHUgaG9wIHRob25nIGxl IHF1b2MgdGUgdmUgY28gcXVhbiBsYXAgcGhhcCB2YSANCmhhbmggcGhhcC4gQ2h1IHRpY2ggSG9p IGRvbmcgbmhhbiBkYW4gbGEgZGFpIGJpZXUgSG9pIGRvbmcgbmhhbiBkYW4gZG8gZGFuIGJhdSBy YTsgbmV1IA0KYmkgQ2h1IHRpY2ggVUJORCBjYWNoIGNodWMgbGEgbWF0IGRhbiBjaHUgdmEgdmkg cGhhbSBoaWVuIHBoYXAgZGEgcXV5IGRpbmggZGFpIGJpZXUgDQpIb2kgZG9uZyBuaGFuIGRhbiBs YSBuZ3VvaSBkYWkgZGllbiBjaG8geSBjaGksIG5ndXllbiB2b25nIHZhIHF1eWVuIGxhbSBjaHUg Y3VhIG5oYW4gDQpkYW4uIFRvaSBraWVuIG5naGkgYmFpIGJvIG5nYXkgcXV5IGRpbmggbmF5IGN1 YSBVeSBiYW4gdGh1b25nIHZ1IFF1b2MgaG9pLg0KDQpUcmVuIGRheSBsYSBub2kgZHVuZyBwaGF0 IGJpZXUgdmEga2llbiBuZ2hpIGN1YSB0b2kgdm9pIGRhaSBiaWV1IFF1b2MgaG9pIG8gUXVhbiAy IHZvaSANCmRvYW4gZGFpIGJpZXUgUXVvYyBob2kgVGhhbmggcGhvIHZhIG9uZyBDaHUgdGljaCBR dW9jIGhvaSB5ZXUgY2F1IHRpZXAgbmhhbiB2YSBkdWEgcmEgDQpreSBob3AgdGh1IDIgUXVvYyBo b2kga2hvYSAxMiBnaWFpIHF1eWV0IHZhIHRyYSBsb2kgY29uZyBkYW4gdG9pLg0KDQpUcmFuIHRy b25nIGtpbmggY2hhbyEgDQpDdSB0cmkga3kgdGVuIA0KRGEga3kgdGVuIA0KTUFJIERPQyANCg0K aHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vQ3UtdHJpLXF1YW4tMi1UUEhDTS1CdWMteHVjLXZl LWRlbi1idS1naWFpLXRvYS8xMjEvMzI5NDA0Ny5lcGkgICBNLkh1b25nIA0KDQpUUCBIQ006IEN1 IHRyaSBxdWFuIDIgYnVjIHh1YyB2ZSBkZW4gYnUsIGdpYWkgdG9hIJYgb25nIExlIFRoYW5oIEhh aSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gDQogDQpDaGlldSAxLTEwLCBjYWMgZGFpIGJpZXUgUXVv YyBob2kgVHJhbiBEdSBMaWNoLCBOZ3V5ZW4gRGFuZyBUcnVuZyBkYSBjbyBidW9pIHRpZXAgDQp4 dWMgY3UgdHJpIHF1YW4gMi4gVGFpIGJ1b2kgbGFtIHZpZWMsIGN1IHRyaSBkYSB0YXAgdHJ1bmcg Z29wIHkgdmUgZHUgdGhhbyBzdWEgZG9pLCBibyBzdW5nIA0KTHVhdCBHaWFvIGR1YywgTHVhdCBL aGFtIGNodWEgYmVuaCwgTHVhdCBUaHVlIG5oYSBkYXQsIEx1YXQgTmd1b2kgY2FvIHR1b2kuIA0K DQpUaGVvIHkga2llbiBjYWMgY3UgdHJpLCBOaGEgbnVvYyBjYW4gdGllbiB0b2kgcGhvIGNhcCBn aWFvIGR1YyBjYXAgbWF1IGdpYW8sIG1hbSBub247IA0KdGFuZyBsdW9uZywgbmFuZyBwaHUgY2Fw IGRvaSB2b2kgY2FuIGJvIHkgdGUgcGh1b25nLCB4YSwgdGhpIHRyYW47IGhhIGRvIHR1b2kgZHVv YyBodW9uZyANCnRybyBjYXAgeGEgaG9pIGNobyBuZ3VvaSBjYW8gdHVvaSB0dSA4NSB4dW9uZyBj b24gZHVvaSA4MCB0dW9pLi4uIEN1IHRyaSBjdW5nIHBoYW4gYW5oIA0KdGluaCB0cmFuZyBuaGll dSBkdSBhbiBxdXkgaG9hY2ggdHJlbyB2YW4gdG9uIHRhaSwgZ2F5IGtobyBraGFuIGNobyBuZ3Vv aSBkYW4uIA0KDQpSaWVuZyB2ZSBkdSBhbiBLaHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0sIGN1IHRy aSB2YW4gY2h1YSBkb25nIHRpbmggdm9pIG5vaSBkdW5nIHZhbiANCmJhbiBrZXQgbHVhbiBjdWEg VUJORCBUUEhDTSBzYXUgYnVvaSBkb2kgdGhvYWkgdm9pIG5oYW4gZGFuIHF1YW4gMiB2YW8gdGhh bmcgNy0NCjIwMDkgdnVhIHF1YSwgdGFwIHRydW5nIHZhbyBjYWMgdmFuIGRlOiAxNjBoYSB0YWkg ZGluaCBjdSB0YWkgY2hvLCBjbyBzbyBwaGFwIGx5IGN1YSANCnF1eWV0IGRpbmggdGh1IGhvaSBk YXQsIHZhbiBkZSB4YWMgZGluaCByYW5oLCBtb2MgY3VhIGR1IGFuLi4uDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL1hhLWhvaS9CdWMteHVjLWNodXllbi1xdWktaG9hY2gtZ2lhaS10b2Eta2h1LWRvLXRo aS1tb2ktVGh1LVRoaWVtLzQwMTAyMDM2LzE1Ny8gVi5DLk0gKFRoZW9fVHVvaVRyZSkgIDA4LzEw LzIwMDUsIDA2OjQ3IEdNVCs3IA0KDQpUUCBIQ006IERhbiBidWMgeHVjIGNodXllbiBxdWkgaG9h Y2gsIGdpYWkgdG9hIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSAgDQoNCkRhaSBiaWV1IFF1b2Mg aG9pIFRQLkhDTSB0aWVwIHh1YyBjdSB0cmkgUXVhbiAyOg0KDQpTYW5nIDctMTAtMjAwNSwgZGFp IGJpZXUgUXVvYyBob2kgTmd1eWVuIER1YyBDaGluaCwgZ2lhbSBkb2MgU28gVHUgcGhhcCBUUC5I Q00sIA0KdGllcCB4dWMgdm9pIGN1IHRyaSBiYSBwaHVvbmcgVGhhbyBEaWVuLCBBbiBQaHUgdmEg QmluaCBLaGFuaCwgcXVhbiAyLg0KDQpQaGFuIGxvbiB5IGtpZW4gbWEgY3UgdHJpIHBoYW4gYW5o IGxpZW4gcXVhbiB2YW4gZGUgZ2lhaSB0b2EsIGRlbiBidSwgdGFpIGRpbmggY3UgdHJvbmcgZHUg DQphbiBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0uIEJ1YyB4dWMgbG9uIG5oYXQgY3VhIG5ndW9p IGRhbiBsYSBraG9uZyBiaWV0IGdpIHZlIHF1aSANCmhvYWNoIGN1YSBraHUgZG8gdGhpLg0KDQpD byB0cnVvbmcgaG9wIG5ndW9pIGRhbiBiaSBxdWkgaG9hY2gsIGN1b25nIGNoZSBkZSB0aHUgaG9p IG5oYSwgZGF0IGNobyBkdSBhbiBuaHVuZyANCnNhdCByYW5oIGRhdCBjdWEgaG8gdGhpIGxhaSB0 aGF5IGNhYyBjb25nIHR5IGtpbmggZG9hbmggYmF0IGRvbmcgc2FuIHNhbiBsYXAgbWF0IGJhbmcg ZGUgDQpiYW4gdm9pIGdpYSAxMC0xNSB0cmlldSBkb25nL20yLg0KDQpRdWEgY2FjIHkga2llbiBw aGFuIGFuaCBjdWEgY3UgdHJpLCBvbmcgTmd1eWVuIER1YyBDaGluaCBuaGFuIHhldDogIkxhbiBu YW8gdGllcCB4dWMgDQpjdSB0cmkgcXVhbiAyIGN1bmcgdGhheSBnaXVhIGNoaW5oIHF1eWVuIHZh IG5ndW9pIGRhbiBjaHVhIGNvIHRpZW5nIG5vaSBjaHVuZywgbmd1b2kgDQpkYW4gYnVjIHh1YyBu aGlldSB2ZSBjYWNoIGxhbSB2aWVjIGN1YSBjaGluaCBxdXllbiBkaWEgcGh1b25nIi4gIA0KDQpD dW5nIG5nYXksIGRhaSBiaWV1IE5ndXllbiBUaGkgSGFuZyBOZ2EgY3VuZyB0aWVwIHh1YyB2b2kg Y3UgdHJpIGNhYyBwaHVvbmcgQmluaCBBbiwgDQpBbiBLaGFuaCwgVGh1IFRoaWVtIHZhIEFuIExv aSBEb25nLiBCdWMgeHVjIGN1YSBjdSB0cmkgY2FjIHBodW9uZyBuYXkgY3VuZyB2YW4gbGEgDQp2 YW4gZGUgcXVpIGhvYWNoIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSBjaGFtIHRyaWVuIGtoYWkg dmEga2hvbmcgZHVvYyBjb25nIGtoYWkgDQpkZW4gbmd1b2kgZGFuLiBCZW4gY2FuaCBkbywgbmhp ZXUgY3UgdHJpIGN1bmcgcGhhbiBhbmggdmllYyBnaWEgZGVuIGJ1IHF1YSB0aGFwLCB2aWVjIHRh aSBkaW5oIGN1IHF1YSBjaGFtLiANCg0KaHR0cDovL3JhZGlvY2hhbnRyb2ltb2kuY29tL3NwaXAu cGhwP2FydGljbGU2MDEzIDIyLzA4LzIwMDkgDQoNClRQIEhDTTogQ3UgdHJpIHF1YW4gMiwgU2Fp IEdvbiB0byBjYW8ga2hhbiBjYXANCg0KTmdheSAxNS44LjIwMDkgdnVhIHF1YSBjdSB0cmkgcXVh biAyIHRoYW5oIHBobyBTYWkgR29uIGRhIHRvIGNhbyBraGFuIGNhcCBub2kgZHVuZyBrZXQgDQps dWFuIHRob25nIGJhbyBzbyA1NjEvVEItVlAgcmEgbmdheSA0LjguMjAwOSBjdWEgUGhvIENodSB0 aWNoIFVCTkQgdGhhbmggcGhvIA0KTmd1eWVuIFRydW5nIFRpbiwgdGFpIEhvaSBOZ2hpIHRpZXAg eHVjLCBkb2kgdGhvYWkgdm9pIGRhaSBkaWVuIG5oYW4gZGFuIHRyb25nIEtodSBEbyANClRoaSBN b2kgVGh1IFRoaWVtIChLRFRNKSBsYSBraG9uZyB0cnVuZyB0aHVjLCBob2FuIHRvYW4gYXAgZGF0 LCBraG9uZyBjbyBjYW4gY3UgDQpQaGFwIEx1YXQhIFBoYSB2byBxdXkgaG9hY2ggS2h1IERvIFRo aSBNb2kgVGh1IFRoaWVtLiBDdW9uZyBjaGllbSAxNjAgaGEgZGF0IHRhaSANCmRpbmggY3UgY3Vh IG5oYW4gZGFuIGNoaWEgY2hvIG5oYXUsIGxheSBkYXQgY3VhIG5ndW9pIG5naGVvIGNoaWEgY2hv IG5ndW9pIGdpYXUgY28gDQpxdXllbiBsdWMgdGFvIHRoYW5oIDEgdGhlIGx1YyBkZW4uIEN1bmcg aG9pIGN1bmcgdGh1eWVuLCBjaGUgY2hhbiB2YSBiYW8gdmUgY2hvIG5oYXUuDQoNCk5ndW9pIGRh biB0aHVvYyBjYWMgcGh1b25nOiBBbiBMb2kgRG9uZywgQW4gS2hhbmgsIEFuIFBodSwgQmluaCBB biwgQmluaCBLaGFuaCwgDQpDYXQgTGFpLCBUaGFuaCBNeSBMb2kgdmEgVGh1IFRoaWVtLCBRdWFu IDIgZGEgbmV1IGxlbiB2aWVjIDE2MCBoYSBkYXQgZGUgdGFpIGJvIHRyaSB0YWkgDQpkaW5oIGN1 IGNobyBuZ3VvaSBkYW4gYmkgZ2lhaSB0b2EgdGh1b2MgZHUgYW4gVGh1IFRoaWVtIGRhIGJpIG5o dW5nIG5ndW9pIGNvIGNodWMgdnUgDQp2YSB0cmFjaCBuaGllbSwgbmh1IG9uZyBMZSBUaGFuaCBI YWksIEJpIFRodSBUaGFuaCB1eSBkYSBsb2kgZHVuZyBjaHVjIHZ1LCBxdXllbiANCmhhbiwgdHVv YyBkb2F0LiBMYXkgZGF0IGN1YSBuZ3VvaSBuZ2hlbywgY2hpYSBjaG8gbmd1b2kgZ2lhdS4gTGF5 IGRhdCBjdWEgZGFuIGNoaWEgY2hvIA0Kbmd1b2kgY28gY2h1YyB2dSwgcXV5ZW4gaGFuLiBOZ2Fu ZyBuaGllbiBwaGEgdm8gcXV5IGhvYWNoIEtodSBEbyBUaGkgTW9pIFRodSANClRoaWVtLiBUdSBx dXllbiBjYXAgZGF0IGNobyBjYWMgY29uZyB0eSBnaWEgZGluaC4gQ3VvbmcgY2hpZW0gZGF0IGRh aSBtYSBuaGFuIGRhbiANCmRhbmcgc3UgZHVuZy4gU2F1IGRvIGNoaWEgY2hvIG5oYXUgbGVuIHRv aSBoYW5nIHRyYW0gaGEuIFRoYW0gbmh1bmcgbG9uIG5odSB2YXksIA0Kbmh1bmcgZHVvYyBjaGUg Y2hhbiwgYmFvIHZlLCBidW5nIGJpdCBuZW4ga2hvbmcgZHVvYyBkdSBsdWFuLCBiYW8gZGFpIHZh IGNhYyBjYXAgDQp0aGFtIHF1eWVuIGRpZXUgdHJhLg0KDQpEb24gdG8gY2FvIGNobyBoYXkgdGhh eSB2aSBwaGFpIGFwIGR1bmcgTmdoaSBEaW5oIDg0IHZhIEx1YXQgZGF0IGRhaSAyMDAzLCBuaHVu ZyB0aGFuaCANCnBobyB2YW4gY28gbml1IGtlbyBOZ2hpIERpbmggMjIvQ1AgdmEgbHVhdCBkYXQg ZGFpIDE5OTMgZGEgaGV0IGhpZXUgbHVjLCBkZSBkZW4gYnUgY2hvIA0KZGFuLCBuaHUgdmF5IGxh IHZpIHBoYW0gTHVhdCBtb3QgY2FjaCBjbyB0aW5oIHZhIGNvIGhlIHRob25nLg0KDQpOaGFuIGRh biB0cm9uZyBLRFRNIFRodSBUaGllbSBiaSBRRCAxMzUsIDE0MywgMTIzIHZhIDA2IGJvYyBsb3Qg dG9pIGhvbiA3IGxhbjoNCg0KMS4gQmkgbWF0IG5oYSBtYXQgZGF0IGtob25nIGNvbiBjaG8gZGUg by4NCg0KMi4gQm9jIGxvdCB2ZSBuZ3VvbiBnb2Mgc3UgZHVuZyBkYXQuDQoNCjMuIEJvYyBsb3Qg dmUgZ2lhIGNhLiBCaSBiaWVuIHRoYW5oIGNvbiBuby4NCg0KNCB2YSA1LiBDaHVuZyBjdSBjaGF0 IGx1b25nIHF1YSB0aGFwLCBnaWEgbGFpIHF1YSBjYW8uLi4NCg0KNi4gS2hpZXUgbmFpIHRoaSBi aSBjaG8gbGEgY2hvbmcgZG9pLg0KDQo3LiBCaSBlcCBidW9jIHZpZXQgZ2lheTogQ2FtIGtldCB0 dSBuZ3V5ZW4gZGkgZG9pLg0KDQpEYXQgbm9uZyBuZ2hpZXAgY3VhIGRhbiwgZGVuIGJ1IDg3MC4w MDAgZG9uZy8gMW0yLiBTYXUgZG8gcmFvIGJhbiAyNi4wMDAuMDAwIGRvbmcvIA0KMW0yLiBEYXQg byBkZW4gYnUgMTkuNjAwLjAwMCBkb25nLCByb2kgcmFvIGJhbiA5NS4wMDAuMDAwIGRvbmcvMW0y OyBjdSB0aGUgNCBoYSBkYXQgDQpvIGNoYW4gY2F1IFRodSBUaGllbSwgdGh1b2MgcGh1b25nIEFu IEtoYW5oLiANCg0KS2V0IGx1YW4gY3VhIGRvbiB0byBjYW8gdmlldDoNCg0KTmhhbiBkYW4gY2hp IG1vbmcgdW9jOiBDaGluaCBQaHUgYnVvYyBkaWEgcGh1b25nIHBoYWkgdHJpZXQgZGUgdHVhbiB0 aHUgUGhhcCBMdWF0LCANCkx1YXQgRGF0IERhaSwgTHVhdCBLaGlldSBOYWkgdmEgVG8gY2FvOiBL aGkgZ2lhaSB0b2EgcGhhaSBkb2kgbmVuIG5oYSBjaG8gZGFuIHRhaSBkaW5oIA0KY3UsIHNhcCB4 ZXAgY2hvIGRhbiBkdW9jIHRhaSBkaW5oIGN1IHRhaSBjaG8uIFZpIGNoYSBsZSB4YXkgZHVuZyBL aHUgRG8gVGhpIGNoaSBnaWFuaCANCmNobyBuZ3VvaSBjbyBjaHVjLCBjbyBxdXllbiB2YSBjbyB0 aWVuLCBjb24gZHVvaSBkYW4gbmdoZW8gZGkga2hvaSBub2kgbWEgaG8geWVuIG9uIA0Kc2luaCBz b25nIHZhIGxhbSBhbiBkYSBiYW8gbmFtIG5heSAhPyENCg0KTmhhbiBkYW4gUXVhbiAyIHRoYSB0 aGlldCBrZXUgY3V1LiBYaW4gbGFuZyBuZ2hlIHRpZW5nIGtldSBnYW8ga2hhbiB0aGlldCBjdWEg ZGFuIA0KbmdoZW8uIFhpbiBjdSBEb2FuIGNvbmcgdGFjIExpZW4gTmdhbmggdmUgUXVhbiAyIHZh IGNobyBDb25nIEFuIGRpZXUgdHJhLCB0aWVwIHh1YyANCnZhIGxhbmcgbmdoZSBjdSB0aGUgbmh1 bmcgdnUgdmllYyBtYSBuaGFuIGRhbiBwaGF0IGhpZW4uIE5ldSBjaHVuZyB0b2kgdG8gY2FvIHNh aSwgDQpjaHVuZyB0b2kgeGluIGNoaXUgaG9hbiB0b2FuIHRyYWNoIG5oaWVtIHRydW9jIFBoYXAg THVhdCB2YSBjaGl1IG1vaSBjaGkgcGhpIGNobyANCkRvYW4gQ29uZyBUYWMgTGllbiBOZ2FuaC4g TmV1IGtob25nLCBoYXUgcXVhIHNlIGtobyBsdW9uZy4gTmh1IGxvaSBjYWMgdmkgbGFvIHRoYW5o LCANCmNoaWVuIHNpIERpZW4gQmllbiBQaHUgbmFtIHh1YTogY2FuIGJvIHZhIG5oYW4gZGFuIHF1 YW4gMiwgc2Ugbm9pIGRheSB2YSBiaWVuIEtodSANCkRUIFRodSBUaGllbSB0aGFuaCBtb3QgRGll biBCaWVuIFBodSB0aHUgaGFpLCBuaGFtIGJhbyB2ZSBsb2kgaWNoIGNoaW5oIGRhbmcgY3VhIG1p bmguIA0KUXV5ZXQgY2hvbmcgbGFpIGJvbiBxdWFuIGxpZXUgdGlldSBjdWMgYm9jIGxvdCBuaGFu IGRhbiwgbGFtIHRoaWV0IGhhaSB2ZSBtb2kgbWF0IA0KY2hvIG5oYSBudW9jLiBIaWVuIG5heSBu aGFuIGRhbiByYXQgYnVjIHh1YyB2YSBiYXQgYmluaC4uLiBkb24gbmVuIGxhaSBsYXUgbmdheSwg DQpraG9uZyBiaWV0IHBoYXQgbm8gbHVjIG5hbywgbW90IGtoaSBkYSBidW5nIG5vIGxhIHZvIGN1 bmcgbG9uLiBWaSBuaGFuIGRhbiBiaSANCmN1b25nIGNoaWVtIHRhaSBzYW4sIGtob25nIGNvbiBk dW9uZyBzb25nLiBDaGV0IGxhIGRpZXUgZGUgY2hhcCBuaGFuIGhvbiwgdmkgc29uZyANCnR1aSBu aHVjIGtoaSBtYXQgaGV0IGRhdCBkYWksIG5oYSBjdWEsIHRoaSB0aGEgY2hldCBjb24gc3VuZyBz dW9uZyBob24uIA0KDQoqIEhhbmcgdHJhbSBuZ3VvaSBkYW4gZGFwIHBoYSB4ZSwgbWF5IGN1YSBk b2FuIGN1b25nIGNoZQ0KDQpUaGVvIGJhbyBMYW8gRG9uZywgc2FuZyAyMC44LCBuaGlldSBuZ3Vv aSBkYW4gY2FjIHRob24gMTIsIEhvIFZvaSwgVGhhbmggSGEgdGh1b2MgeGEgDQpWdSBCb24sIGh1 eWVuIEtyb25nIFBhayBkYSB0YXAgdHJ1bmcgbmdhbiBjYW4gZG9hbiBjdW9uZyBjaGUgbGllbiBu Z2FuaCBjdWEgaHV5ZW4gDQpuYXkuIA0KDQpIYW5nIHRyYW0gbmd1b2kgZGEgZHVuZyBkYW8sIGdh eSB0YW4gY29uZyB2YSBkYXAgcGhhIDEzIHhlIG90bywgcGh1b25nIHRpZW4gY2FjIGxvYWkuIA0K SGF1IHF1YSBsYSA2IG1heSB1aSBiaSBob25nIG5hbmcuIEtodSB2dWMgZ2lhaSB0b2EgbGEgZGF0 IGxhbSBuZ2hpZXAgbmFtIHRyb25nIGhvbiANCjQwMGhhIGRhdCBxdXkgaG9hY2ggY2FwIGNobyBj YWMgaG8gdGFpIGRpbmggY3UgY29uZyB0cmluaCB0aHV5IGxvaSBLcm9uZyBCdWsgSGEgdmEgVnUg DQpCb24uDQoNClRydWEgY3VuZyBuZ2F5LCBsYW5oIGRhbyB0aW5oIERhYyBMYWMgZGEgaG9wIGto YW4gdGFpIHhhIFZ1IEJvbiwgdGhvbmcgbmhhdCB0YW0gZHVuZyANCnZpZWMgY3VvbmcgY2hlIGdp YWkgdG9hIGRlIHRyaWVuIGtoYWkgY29uZyB0YWMgdmFuIGRvbmcsIHRodXlldCBwaHVjIGNhYyBo byBkYW4gY2hhcCANCmhhbmggcGhhcCBsdWF0LiBEb25nIHRob2ksIGNoaSBkYW8gaHV5ZW4gY28g cGh1b25nIGFuIGhvIHRybyBkYXQgc2FuIHh1YXQgY2hvIG5odW5nIGhvIA0KZGFuZyBjYW5oIHRh YyB0cm9uZyB2dW5nIGR1IGFuIG5odW5nIHBoYWkgY3VvbmcgcXV5ZXQgeHUgbHkgY2FjIGRvaSB0 dW9uZyBwaGEgaG9haSB0YWkgDQpzYW4sIGNob25nIG5ndW9pIHRoaSBoYW5oIGNvbmcgdnUuIA0K DQpZIGtpZW4gYmFuIGRvYzoNCk5ndXllbiBOZ29jIEhhaSAtIDI0LzA4LzIwMDkgQCAwODoxMw0K DQpOZ3VvaSBkYW4gVk4gbHVvbiBjaGFwIGhhbmggbW9pIGNodSB0cnVvbmcgY2hpbmggc2FjaCBj dWEgTmhhIE51b2MsIGRlIHRvbiB0aSB0cmF0IHR1IA0KdHJvbmcgbW90IHhhIGhvaSBkb2MgbGFw IHZhIGNvIHRoZSBjaGUuIEtpbmggeGluIGNhYyBxdWFuIGNodWMgY2hpbmggcXV5ZW4gZHVuZyBi YW8gZ2lvIA0KeSBsYWkgcXV5ZW4gdGhlIGRlIGNoZW4gZXAgbmhhbiBkYW4gbW90IGNhY2ggdHJh bmcgdHJvbiBuaHUgdGhlLiBUdWMgbnVvYyB0aGkgdm8gYm8sIGNobyANCmRvbiB2YW8gZHVvbmcg Y3VuZyBzZSBjYW4gbGFpLCBjYW4geGVtIGxhaSB2YWkgdHJvIGN1YSBuaHVuZyBxdWFuIGNodWMg ZGlhIHBodW9uZywgDQpkdW5nIG5lbiBob2MgZG9pIHRoZW8gY2h1IG5naGlhIEhpdGxlciBuaHUg dGhlISBjYW0gb24gbGFtIHRoYXkhLi4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v bmV3cy9QYWdlcy8yMDEwNDgvMjAxMDExMjQwMjIwMjIuYXNweCBQaHVvbmcgVGhhbmggMjQvMTEv MjAxMCAyOjIwIA0KDQpUUCBIQ006IEhhbmggeHUgdm9pIGRhbiBrZW0gLSBMYW0gc2FpIHJvaSBi YW5nIHF1YW4sIGR1biBkYXkgdHJhY2ggbmhpZW0gDQogIA0KQnVvaSBob2EgZ2lhaSB2dSBvbmcg Tmd1eWVuIFZhbiBMYW5nIGtpZW4gU28gR1RWVCBUUC5IQ00gdmUgdmllYyB0aGkgY29uZyAibG8g DQpjb3QiIGNoYW0gdHJlLCBkaWVuIHJhIGhvbSBxdWEgMjMuMTEsIG5oYW4gZHVvYyBuaGlldSBz dSBxdWFuIHRhbSBob24gaGFuIG5odW5nIGJ1b2kgDQpob2EgZ2lhaSBraWVuIHR1bmcgZGFuIHN1 IGtoYWMuIA0KDQpEb24gZ2lhbiBib2kgZGF5IGR1b2MgeGVtIGxhIHZ1IGtpZW4gY2h1YSBjbyB0 aWVuIGxlLCBraGkgbmd1b2kgZGFuIGtpZW4gY28gcXVhbiBxdWFuIA0KbHkgbmhhIG51b2MgKFFM Tk4pIG1hIG5vaSBuaHUgZGFuIGdpYW4gY2hhbmcga2hhYyBuYW8gImNvbiBraWVuIGtpZW4gY3Ug a2hvYWkiLiBEYXUgDQpkdW9jIHhlbSBsYSBoeSBodXUsIHNvbmcgbmhpbiB2YW8gdGh1YyB0cmFu ZyB0aGkgY29uZyAibG8gY290IiBjYXUgdGhhLCBjaGF5IGkgdGhvaSBnaWFuIA0KcXVhLCB0YSB0 aGF5IHZ1IGtpZW4gZHVvbmcgbmh1IGxhIGhlIHF1YSB0YXQgeWV1LiBTdW90IDQgLSA1IG5hbSBx dWEsIG5ndW9pIGRhbiBUUC5IQ00gDQpzb25nIGNodW5nIHZvaSBoYW5nIHRyYW0gImxvIGNvdCIs IG5vIGNhbiB0cm8gc2luaCBob2F0LCBsYW0gYW4sIHhheSByYSBiYW8gbmhpZXUgdGFpIA0KbmFu Li4uIG1hIGNoYW5nIGFpIHRob25nIGtlIHh1ZSB0aGlldCBoYWkuIENvIGxlIGtob25nIGl0IHRy dW9uZyBob3Agbmh1IG9uZyBMYW5nLCBzb25nIA0KaGF1IGhldCBkZXUgbWFuZyB0YW0gbHkgbmhh biBuaGluIHZhIG5nYWkga2llbiB0dW5nIG5lbiBjaG9uIGNhY2ggaW0gbGFuZy4NCg0KQ2FuIG5v aSB0aGVtLCB0cnVvYyBkbywgb25nIExhbmcgZGEgY28gbmhpZXUgZG9uIHRodSBraGlldSBuYWkg U28gR1RWVCwgY2h1IGRhdSB0dSB2YSANCm5oYSB0aGF1IFRNRUMgLSBDSEVDIDMsIGRlIGRvaSBi b2kgdGh1b25nIHRoaWV0IGhhaS4gU29uZywgbmh1bmcgZ2kgb25nIG5oYW4gZHVvYyB0dSANCmNh YyBkb24gdmkgbmF5IGxhIHRoYWkgZG8gZHVuIGRheSB0cmFjaCBuaGllbSwgYmFuZyBxdWFuLCB0 aGFtIGNoaSAiY28ga2UgYm90IG1vdCB0aGVtIA0KaGFpIiB2b2kgeWV1IGNhdSBjaGluaCBkYW5n IGN1YSBuZ3VvaSBkYW4uIEN1IHRoZSwgdG9uZyB0aGlldCBoYWkgImxvIGNvdCIgZ2F5IHJhIGNo byBnaWEgDQpkaW5oIG9uZyBMYW5nIGxlbiBkZW4gMzcwIHRyaWV1IGRvbmcgKHRhdCBjYSBkZXUg Y28gZG9uIHR1IGNodW5nIG1pbmgpLCBzb25nIG5oYSB0aGF1IA0KcGh1IG5oYW4gdHJhY2ggbmhp ZW0gYm9pIHRodW9uZyBtYSBjaGkgZG9uZyB5IGhvIHRybyBob24gMzEgdHJpZXUgZG9uZy4gTmh1 bmcgY3VuZyANCmtob25nIGRhbmcgdHJhY2ggYmFuZyB2aWVjIGNodSBkYXUgdHUgdmEgU28gR1RW VCAtIGR1IGNvIGR1IHRoYW0gcXV5ZW4gZ2lhaSBxdXlldCANCmtoaWV1IG5haSwgc29uZyBsYWkg bGFtIG5nbyBkZSBtYWMgbmd1b2kgZGFuIHBoYWkgdmllbiBkZW4gY29uIGR1b25nICJkYW8gdHVu ZyBkaW5oIi4NCg0KQnVvaSBob2EgZ2lhaSBzYW5nIHF1YSBwaGFpIGRvaSBsYWkgZG8gbmhhIHRo YXUgVE1FQyBDSEVDIDMgdGllcCB0dWMgdHJpIGhvYW4gdmllYyB4aW4gDQpnaWF5IHV5IHF1eWVu IHR1IGNvbmcgdHkgbWUgbyBUcnVuZyBRdW9jLiBTb25nLCBjbyB0aGUgdGhheSBxdWFuIGRpZW0g Y3VhIG5ndXllbiBkb24gDQp2YSBiaSBkb24ga2hvIG1hIGRpIGRlbiB0aG9uZyBuaGF0LiBUcm9u ZyBraGkgb25nIExhbmcgZHVuZyB0cmVuIGNvIHNvIHBoYXAgbHVhdCBkZSBkb2kgDQpib2kgdGh1 b25nIHRoaWV0IGhhaSB0aGkgZGFpIGRpZW4gY2h1IGRhdSB0dSBob2FuIHRvYW4gY2FtIHRpbmgg a2hpIGNobyByYW5nIGRheSBsYSBjb25nIA0KdHJpbmggcGh1YyBsb2kgeGEgaG9pIG5lbiBuZ3Vv aSBkYW4gcGhhaSB0aG9uZyBjYW0uIFR1eSBuaGllbiwgVGhhbSBwaGFuIE5ndXllbiBDaGkgDQpT YW5nIChUQU5EIFRQKSBkYSBsYW0gbmhpZXUgbmd1b2kgY28gbWF0IHRhaSBidW9pIGhvYSBnaWFp IG1hdCBsb25nIGtoaSBraGFuZyBkaW5oLCANCnZlIG5ndXllbiB0YWMsIG5ldSB2aWVjIHRoaSBj b25nIGdheSB0aGlldCBoYWkgY2hvIG5ndW9pIGRhbiB0aGkgY2h1IGRhdSB0dSBwaGFpIGNoaXUg DQp0cmFjaCBuaGllbSBib2kgdGh1b25nLCBkdSBsYSBjb25nIHRyaW5oIGNvbmcgY29uZy4NCg0K TmdvYWkgc28gdGllbiBib2kgdGh1b25nLCBvbmcgTGFuZyBjb24geWV1IGNhdSBTbyBHVFZUIHhp biBsb2kuICJEdSB0b2EgdHJhIGxvaSBsdWF0IA0Ka2hvbmcgcXV5IGRpbmggY28gcXVhbiBxdWFu IGx5IHBoYWkgeGluIGxvaSwgc29uZyB0b2kgY2hvIHJhbmcgZGFvIGx5IG8gZG9pIGxhIGN1IGxh bSBzYWkgDQp0aGkgcGhhaSB4aW4gbG9pLiBOZ2F5IGNhIGR1YSB0cmUgY3VuZyBiaWV0IGRhbyBs eSBuYXkiIC0gb25nIExhbmcgbm9pLiANCg0KVnUga2llbiBjdWEgb25nIExhbmcgY3VuZyBsYSBk aXAgZGUgY2FjIGNvIHF1YW4gUUxOTiB4ZW0gbGFpIHRyYWNoIG5oaWVtIGN1YSBtaW5oLiANClRy dW9jIG5heSwgY28gcXVhbiBRTE5OIHRodW9uZyB2aW4gdmFvIGNhaSBjbyBjb25nIHRyaW5oIGNv bmcgY29uZyBkZSBhcCBkYXQgdmEgYnVvYyANCm5ndW9pIGRhbiBwaGFpIHRob25nIGNhbS4gQ2hp bmggdHUgZHV5IG5heSBkYSB0YW8gcmEgY2FjaCBoYW5oIHh1IHRoaWV1IHRpY2ggY3VjIHZhIA0K dGhpZXUgdHJhY2ggbmhpZW0gdm9pIG5ndW9pIGRhbi4gUXVhbiBoZSBnaXVhIGNvIHF1YW4gUUxO TiB2b2kgbmd1b2kgZGFuIGNhbiBkdW9jIA0KeGF5IGR1bmcgdHJlbiBjbyBzbyBiaW5oIGRhbmcs IGNvIHN1IGJhbiBiYWMsIHRob2EgdGh1YW4gdm9pIG5ndW9pIGRhbiBraGkgdGh1YyBoaWVuIGNh YyANCmNvbmcgdHJpbmggZHVuZyBjaGFtIGRlbiBkYW4uIEJlbiBjYW5oIGRvLCBtb2kgY29uZyB0 cmluaCBjb25nIGNvbmcgcGhhaSB0cmVuIG5ndXllbiANCnRhYyBiYW8gZGFtIGNobyBjdW9jIHNv bmcgbmd1b2kgZGFuLCBuZXUgeGFtIHBoYW0gbmd1eWVuIHRhYyBuYXkgZ2F5IHRoaWV0IGhhaSB0 aGkgDQpkdW9uZyBuaGllbiBwaGFpIGJvaSB0aHVvbmcgY2hvIGRhbi4gDQoNCmh0dHA6Ly92aWV0 bmFtbmV0LnZuL2NoaW5odHJpLzIwMDgvMTAvODA3NDEyLyBWaW5oIEdpYW5nIDA1OjU5LCAwOC8x MC8yMDA4IChHTVQrNykNCg0KVFAgSENNOiBDdSB0cmkgbXVvbiBUaGFuaCB0cmEgY2hpbmggcGh1 IG5oYXAgY3VvYyB2dSBUaHUgVGhpZW0gDQoNCiAtIFRhaSBidW9pIHRpZXAgeHVjIGN1IHRyaSBk YWkgYmlldSBRdW9jIGhvaSBxdWFuIDIgKFRQLkhDTSkgY3VhIENodSB0aWNoIG51b2MgTmd1eWVu IA0KTWluaCBUcmlldCBjaGlldSA3LzEwLCBuaGlldSBjdSB0cmkgZGEgcGhhbiBhbmggYnVjIHh1 YyB2ZSB2YW4gZGUgdGFpIGRpbmggY3UsIGRlbiBidSBnaWFpIA0KdG9hIHRhaSBraHUgZG8gdGhp IG1vaSBUaHUgVGhpZW0uIA0KDQpLaG9uZyB0aW4gdHVvbmcgVGhhbmggdHJhIHRoYW5oIHBobyAN Cg0KTmhpZXUgY3UgdHJpIGtob25nIGRvbmcgdGluaCB2ZSBrZXQgbHVhbiB0aGFuaCB0cmEgY3Vh IFRoYW5oIHRyYSBUUC5IQ00gdmUgZHUgYW4ga2h1IA0KZG8gdGhpIG1vaSBUaHUgVGhpZW0gdmEg ZGUgbmdoaSBUaGFuaCB0cmEgQ2hpbmggcGh1IHZhbyBjdW9jLg0KDQooQW5oOiBDaHUgdGljaCBu dW9jIE5ndXllbiBNaW5oIFRyaWV0IGdhcCBnbyBjdSB0cmkgcXVhbiAyLiBBbmg6IFRIKQ0KDQoi Q2h1bmcgdG9pIGtob25nIGhhaSBsb25nIHZlIGtldCBxdWEgdGhhbmggdHJhLCBkZSBuZ2hpIHRo YW5oIGxhcCB0aGFuaCB0cmEgQ2hpbmggcGh1IHh1IA0KbHkgbmh1bmcgY2EgbmhhbiwgdG8gY2h1 YywgdHV5IHRoZW8gbXVjIGRvIHZpIHBoYW0iLCBjdSB0cmkgTmd1eWVuIE1haSBMaW5oLCBwaHVv bmcgDQpBbiBMb2kgRG9uZywgbGVuIHRpZW5nLiAgDQoNClRoZW8gY3UgdHJpIExlIEhvbmcgSGFu aCwgZGUgVGhhbmggdHJhIFRQIHRodWMgaGllbiB0aGFuaCB0cmEgZGF0IGRhaSB0YWkgVGh1IFRo aWVtIA0KY2hhbmcga2hhYyBuYW8gdnVhIGRhIGJvbmcgdnVhIHRob2kgY29pLCBkYW4gZGVuIHRp bmggdHJhbmcgZGF5IHRyYWNoIG5oaWVtIHh1b25nIGNhcCANCmR1b2kuIA0KDQpNb3Qgc28gY3Ug dHJpIGNobyByYW5nIGtldCBsdWFuIHRoYW5oIHRyYSB2dWEgcXVhIGtob25nIHRob2EgZGFuZy4g S2h1IGRhdCAxNjAgaGEgdHJvbmcgDQpraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gZHVvYyBDaGlu aCBwaHUgcGhlIGR1eWV0IGRlIHRhaSBkaW5oIGN1IGNobyBkYW4gY2h1YSBkdW9jIA0KZ2lhaSB0 aGljaCB0aG9hIGRhbmcgdmUgbXVjIGRpY2ggc3UgZHVuZyBoaWVuIG5heS4gTmdvYWkgcmEsIGdp YSBib2kgdGh1b25nIGRhdCB0aGVvIGNhYyANCnF1eWV0IGRpbmggMTM1LzIwMDIgdmEgMTIzLzIw MDYgY3VhIFVCTkQgVFAgcXVhIHRoYXAgc28gdm9pIGdpYSB0aGkgdHJ1b25nLiANCg0KTW90IHNv IGN1IHRyaSBjb24gdG8gcmEgYmFuIGtob2FuIHZlIHZhbiBkZSB0cnVvYyBraGkgdGhhbmggdHJh LCBkdSBsdWFuIHBoYW4gYW5oIGNvIDI4IA0KZHUgYW4gYmkgcGhhbiBsbyBiYW4gbmVuLCBzYXUg a2hpIHRoYW5oIHRyYSwgbGFpIGxlbiBkZW4gNDIgZHUgYW4uIA0KDQoiS2V0IGx1YW4gdGhhbmgg dHJhIGtob25nIGdpYWkgdG9hIGR1b2MgYnVjIHh1YyBjdWEgY2h1bmcgdG9pLCBtYSBuZ3VvYyBs YWkgY2FuZyBsYW0gDQpidWMgeHVjIHRhbmcgbGVuIiwgY3UgdHJpIFZ1IE1haSBMaW5oLCBwaHVv bmcgQW4gTG9pIERvbmcsIG5vaS4gDQoNCkN1IHRyaSBEaW5oIEtpbSBUdWFuLCBwaHVvbmcgQW4g S2hhbmgsIGNoaWEgc2UgeSBraWVuOiAiS2V0IGx1YW4gdGhhbmggdHJhIGxhaSBkbyBsb2kgDQpj aG8gY2FjIHNvLCBuZ2FuaCB2YSBxdWFuLCB0cm9uZyBraGkgdHJ1b2MgZG8gcXVhbiBsYWkgZ2lh aSB0aGljaCBjaGkgdGh1YyBoaWVuIHN1IGNoaSBkYW8gDQpjdWEgVFAuIE5odSB2YXkgbGEgZG8g dHJhY2ggbmhpZW0gY2hvIG5oYXUiLiANCg0KQ2h1IHRpY2ggbnVvYzogQ2hpbmggcXV5ZW4gcGhh aSBkb2kgdGhvYWkgdm9pIGRhbiANCg0KIk5ndW9pIGRhbiBUaHUgVGhpZW0gY2h1bmcgdG9pIHNv bmcgdHJlbyBob2FpIGtobyBsYW0hIFhheSBkdW5nIGtodSBkbyB0aGkgbW9pIFRodSANClRoaWVt IGtoaWVuIG5ndW9pIGRhbiBiaSBkYXkgZGkgbm9pIGtoYWMgZGUgY2hvIG5ndW9pIGdpYXUgY28g ZGVuIG8sIHRyb25nIGtoaSBDaGluaCANCnBodSBkYSBjbyBxdXlldCBkaW5oIGtodSBkYXQgMTYw IGhhIGxhIGRlIHRhaSBkaW5oIGN1IGNobyBkYW4iLCBjdSB0cmkgTGUgSG9uZyBIYW5oLCANCnBo dW9uZyBBbiBLaGFuaCwgbm9pLiANCg0KQ3VuZyB0aGVvIGJhIEhhbmgsICJjYWNoIGdpYWkgcXV5 ZXQgY2FjIHZhbiBkZSB0YWkga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIGhpZW4gbmF5IA0KY2hh bmcga2hhYyBnaSBsYW0gcGhhbiBob2EgZ2lhdSBuZ2hlbyBybyBob24iLiANCg0KQ3UgdHJpIE5n dXllbiBUaGFuaCBUaHUsIHBodW9uZyBBbiBQaHUsIGNobyBoYXk6IFRQIHBoYXQgdHJpZW4gZGkg bGVuIGJhbyBuaGlldSBuYW0sIA0Kbmh1bmcgbmd1b2kgZGFuIHF1YW4gMiB0aGkgbmh1IG1hYyBw aGFpIHZvbmcga2ltIGNvIHRyZW4gZGF1IGJvaSBoYW5nIGNodWMgbmFtIG5heSANCmN1IHZ1b25n IGR1IGFuIHRyZW4gZ2lheS4gTXVvbiB0aWVuIGxlbiBjdW5nIHRoYW5oIHBobyBjdW5nIGtob25n IGR1b2MuIA0KDQpHaWFpIHRoaWNoIHZvaSBjYWMgY3UgdHJpLCBvbmcgTGUgVGhhbmggVGFuLCBQ aG8gQ2hhbmggVGhhbmggdHJhIFRQLCBjaG8gcmFuZywgVFAgY2hpIA0KZ2lhbyB0aGFuaCB0cmEg Y29uZyB0YWMgdGFpIGRpbmggY3UgY2h1IGtob25nIHRoYW5oIHRyYSB2ZSBnaWEgYm9pIHRodW9u ZywgbmVuIGtob25nIHRoZSANCnRyYSBsb2kgdGhvYSBkYW5nIGhldCB5IGtpZW4gY3VhIGN1IHRy aS4gDQoNClJpZW5nIHZlIDE2MCBoYSBkYXQgdGFpIGRpbmggY3UsIFRQIGRhbmcgaG9hbiBjaGlu aCBkZSBibyB0cmkgdGFpIGRpbmggY3UgY2hvIGJhIGNvbi4gRG8gDQpkdSBhbiBraHUgZG8gdGhp IG1vaSBUaHUgVGhpZW0gcXVhIGxvbiwgcGhhaSB0aHVjIGhpZW4gdHJvbmcgbmhpZXUgbmFtLCBu ZW4gVFAgYXAgDQpkdW5nIGNoaW5oIHNhY2ggYm9pIHRodW9uZyB0aGVvIHR1bmcgdGhvaSBkaWVt LCBjaHUga2hvbmcgbGFwIHBodW9uZyBhbiBib2kgdGh1b25nIA0KY2h1bmcgbmh1IG5odW5nIGR1 IGFuIGtoYWMuIFBodW9uZyBhbiBuYXkgZGEgZHVvYyBUaHUgdHVvbmcgQ2hpbmggcGh1IGNoYXAg dGh1YW4uIA0KDQpTYXUga2hpIG5naGUgY2FjIHkga2llbiBjdWEgY3UgdHJpLCBDaHUgdGljaCBu dW9jIE5ndXllbiBNaW5oIFRyaWV0IGJheSB0byBub2kgYnVvbiB2aSANCmNvIG5odW5nIGNodXll biBiYSBjb24gYnVjIHh1YyB0dSBreSBob3AgbmF5IHF1YSBreSBob3Aga2hhYyBuaHVuZyB2YW4g Y2h1YSBkdW9jIA0KZ2lhaSBxdXlldCB4b25nLiANCg0KT25nIG1vbmcgbXVvbiBjaGluaCBxdXll biB2YSBjdSB0cmkgZG9pIHRob2FpIHRodW9uZyB4dXllbiB2b2kgbmhhdSBkZSBnaWFpIHF1eWV0 IHRvdCANCmNhYyB2YW4gZGUgY29uIHRvbiB0YWksIGtoaWVuIGNoaW5oIHF1eWVuIHZhIG5ndW9p IGRhbiBnYW4gbmhhdSBob24gbnVhLiANCg0KQ2h1IHRpY2ggbnVvYyBraGFuZyBkaW5oOiAiVmll YyB4YXkgZHVuZyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0ga2hvbmcgcGhhaSBsYSBsYW0gDQpr aG8gZGFuIG1hIGRlIFRQIGRlcCBob24sIGN1b2Mgc29uZyBjdWEgbmd1b2kgZGFuIHRvdCBob24u IE5odW5nIGRvIGNhY2ggbGFtLCBjbyBsdWMgDQpsYW0gbmd1b2kgZGFuIGtobyBob24uIENodW5n IHRvaSB2YSBjaGluaCBxdXllbiBkZXUgbXVvbiBkdW5nIHZlIHBoaWEgYmEgY29uIGRlIGdpYWkg DQpxdXlldCIuIA0KDQpPbmcgY2hvIGJpZXQgc2FwIHRvaSBjbyB0aGUgdGhhbmggdHJhIFRQIHRp ZXAgdHVjIHRoYW5oIHRyYSBuaHVuZyB2YW4gZGUgbWEgY3UgdHJpIHBoYW4gDQphbmgsIHZhIGto b25nIGxvYWkgdHJ1IHRydW9uZyBob3AgVGhhbmggdHJhIENoaW5oIHBodSB2YW8gY3VvYyBkZSBn aWFpIHF1eWV0LiANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL3VibmRfdHBoY21fYmlfZGFpX2Jp ZXVfcGhlX2JpbmgtMTYtMTE3MjQuaHRtbCBDb25nIEh1bmcgVlRDLnZuICAyNS8wNC8yMDA4IC0g MTU6NDIgDQoNClVCTkQgVFAuSENNIGJpIGRhaSBiaWV1IHBoZSBiaW5oIA0KDQpUcnVvYyBseSBk byBjb25nIHRyaW5oIGdpYW8gdGhvbmcgY2hhbSB0aWVuIGRvIGRvIHZ1b25nIGRpIGRvaSBoYSB0 YW5nIGt5IHRodWF0IG5odSB0cnUgDQpkaWVuLCBkYXkgZGllbiB0aG9haSwgb25nICJob2kgZG9u ZyIgRGFuZyBWYW4gS2hvYSB0aGFuZyB0aGFuOiAiVm9pIHR1IGNhY2ggbGEgZGFpIGJpZXUgDQpI RE5ELCB0b2kgcGhlIGJpbmggVUJORCBUUCwgdHUgY2FjaCBkYXkgbWF5IG5hbSBkYSBraGFuZyBk aW5oIHhheSBkdW5nIGNvIGNoZSANCnBob2kgaG9wIG1hIGRlbiBuYXkgdmFuIGNodWEgdGhheS4u LiINCg0KUGhpZW4gY2hhdCB2YW4gc2FuZyA1LzEyIHRhaSBreSBob3AgSERORCBUUC5IQ00sIG5o aWV1IGRhaSBiaWV1IGRhIGR1YSByYSBuaHVuZyANCmtpZW4geGFjIGRhbmcsIHRoaWV0IHRodWMg Z3VpIGRlbiBvbmcgVHJhbiBRdWFuZyBQaHVvbmcgLSBHRCBTbyBHVENDIFRQLkhDTSB2ZSANCnZh biBkZSBrZXQgeGUsIHVuIHRhYyBnaWFvIHRob25nLCBuZ2FwIHVuZy4uLg0KDQoiVHV5ZW4gY2hp ZW4iIHZvaSB4ZSBtYXk/DQoNClRyb25nIDM5IGNhdSBob2kgY2hhdCB2YW4gY3VhIGRhaSBiaWV1 LCBjdSB0cmkgZ3VpIHZlIGRldSB0aGUgaGllbiB0aW5oIHRoYW4geGF5IGR1bmcsIA0KZG9uZyBn b3AgdmEgbW9uZyBtdW9uIHRpbmggaGluaCBnaWFvIHRob25nIHRyZW4gZGlhIGJhbiBUUC5IQ00g bmdheSBtb3Qga2hhIHF1YW4gDQpob24uDQoNCk1hYyBkdSBUUCBkYSBjbyBwaHVvbmcgYW4gdG8g Y2h1YyAibGVjaCBjYSCWIGxlY2ggZ2lvIiBuaHVuZyB0aGVvIGRhaSBiaWV1IFZvIFZhbiANClNl biBjYW46ICJUdXllbiBjaGllbiB2b2kgeGUgbWF5IC4uLiBHaWFtIGRhbiBkaSBkZW4gY2FtIGhh biB4ZSBtYXkgbGEgY2EgbW90IGN1b2MgDQpjYWNoIG1hbmcsIHBoYWkgY28gbG8gdHJpbmguIFBo YWkgY2hhcCBuaGFuIGxhbSBtb3QgY3VvYyBjYWNoIG1hbmcgdGhpIHRpbmggaGluaCANCmdpYW8g dGhvbmcgZG8gdGhpIFRQLkhDTSBtb2kgbW9uZyBraGEgcXVhbiBob24uLi4iLg0KDQpUdXkgbmhp ZW4sIGRhaSBiaWV1IE5ndXllbiBWYW4gQmFjaCBsZW4gdGllbmc6ICJUdXllbiBjaGllbiB2b2kg eGUgbWF5IGNoYW5nIGtoYWMgDQpuYW8gInR1eWVuIGNoaWVuIiB2b2kgbmd1b2kgZGFuLCB2aSB4 ZSBtYXkgbGEgcGh1b25nIGxhaSBjaGluaCBkZSBtdXUgc2luaCBjdWEgcGhhbiANCmxvbiBuZ3Vv aSBkYW4iLiBEYWkgYmlldSBEYW5nIFZhbiBLaG9hIGh1b25nIHVuZzogIlRvaSB0dXllbiBjaGll biB2b2kgeSB0dW9uZyBjYW0gDQp4ZSBtYXksIGRvIGxhIG1vdCBjYWNoIHh1IGx5IG5vbmcgdm9p LCBjdWMgZG9hbiwga2hvbmcgY28gbG8gdHJpbmguLi4iIA0KDQpUaHVjIHRlIGNobyB0aGF5LCB2 YW4gbmFuIGtldCB4ZSBoaWVuIG5heSBraG9uZyBwaGFpIGNoaSBkbyBuZ3VvaSB0aGFtIGdpYSBn aWFvIHRob25nIA0KYmFuZyB4ZSBtYXkgZ2F5IG5lbiBtYSB4ZSBidXl0IGN1bmcgImdvcCBtb3Qg cGhhbiIga2hvbmcgbmhvLiBNYWMgZHUsIHBodW9uZyB0aWVuIA0KZ2lhbyB0aG9uZyBuYXkgY2h1 YSBkYXAgdW5nIGR1b2Mgbmh1IGNhdSBkaSBsYWkgY3VhIG5ndW9pIGRhbi4NCg0KRGFpIGJpZXUg Tmd1eWVuIFZhbiBIaWVuIGN1bmcgbGVuIHRpZW5nOiAiQ2FuIHBoYWkgdHJhIGxhaSBiYW4gY2hh dCBkdW9uZyBoYWkgY2hpZXUgDQpuaHUgdHJ1b2MgZGF5IG8gbW90IHNvIHR1eWVuIG5odSBWbyBW YW4gVGFuLCBMZSBRdXkgRG9uLi4uIG1hIFNvIEdUQ0MgZGEgdGllbiANCmhhbmggcXV5IGhvYWNo IHRoYW5oIG1vdCBjaGlldSB0cm9uZyB0aG9pIGdpYW4gcXVhLi4uIi4NCg0KIlRvaSBwaGUgYmlu aCBVQk5EIFRQLi4uIg0KDQpCYSBQaGFtIFBodW9uZyBUaGFvLCBDaHUgdGljaCBIRE5EIFRQIGNo byBiaWV0OiAiVmUgbGF1IGRhaSwgVFAgc2UgeGF5IGR1bmcgMiB0cnVjIA0KZHVvbmcgeHV5ZW4g dGFtLCA0IGR1b25nIHZhbmggZGFpLCAyOSBjYXUgcXVhIHNvbmcgZGFjIGJpZXQgbGEgNiB0dXll biBtZXRybyB2b2kgY2hpIA0KcGhpIDIyIHR5IFVTRC4uLiIuIFRoZSBuaHVuZywgZG8gY2hpIGxh IHZlIGxhdSB2ZSBkYWkuIENvbiBoaWVuIHRhaSB0aGkgcGhhbiBsb24gY2FjIGNvbmcgDQp0cmlu aCB0aGkgY29uZyByYXQgY2hhbSwgbGEgbW90IHRyb25nIG5odW5nIG5ndXllbiBuaGFuIGdvcCBw aGFuIGdheSB1biB0YWMgZ2lhbyB0aG9uZy4NCg0KT25nIFRyYW4gUXVhbmcgUGh1b25nIGRhIGdp YWkgdGhpY2ggbmd1eWVuIG5oYW4gY2hhbSB0cmUgbGEgZG8gaGUgdGhvbmcgcXVhbiBseSwgZGll dSANCmhhbmggY29uIG5oaWV1IHlldSBrZW0uIFBoYW4gbG9uIG1hdCBiYW5nIGdpYWkgcXV5ZXQg Y2h1YSBoaWV1IHF1YSwgY2h1YSBkZW4gbm9pIGRlbiANCmNob24gbmVuIGdhcCBuaGlldSB2dW9u ZyBtYWMgdHJvbmcgdmllYyBkaSBkb2kgaGEgdGFuZyBreSB0aHVhdCBuaHUgdHJ1IGRpZW4sIGRh eSBkaWVuIA0KdGhvYWkuIERpZW4gaGluaCwgY29uZyB0cmluaCBkYWkgbG8gRG9uZyBUYXkgdmFu IGNvbiB2dW9uZyAyOCB0cnUgZGllbiB2YSAxNSB0cnUgYmllbiANCnRoZS4NCg0KKEFuaDogT25n IERhbmcgVmFuIEtob2E6ICJWb2kgdHUgY2FjaCBsYSBkYWkgYmlldSBIRE5ELCB0b2kgcGhlIGJp bmggVUJORCBUUC4uLiIpDQoNClRoZW8gb25nICJob2kgZG9uZyIgS2hvYSB0aGk6ICJLaGkgZGEg cGhvaSBob3AgdGhpIGtob25nIHRoZSB0cmFjaCBtb3QgbWluaCBhbmggDQpQaHVvbmcuIFZvaSB0 dSBjYWNoIGxhIGRhaSBiaWV1IEhETkQsIHRvaSBwaGUgYmluaCBVQk5EIFRQLiBVQk5EIFRQIHR1 IGNhY2ggZGF5IA0KbWF5IG5hbSBkYSBraGFuZyBkaW5oIHhheSBkdW5nIGNvIGNoZSBwaG9pIGhv cCBtYSBkZW4gbmF5IHZhbiBjaHVhIHRoYXksIHZheSBsYSBzYW8uLi4iLg0KDQpCZW4gY2FuaCBu aHVuZyBnaWFpIHBoYXAgdmUgbGF1IGRhaSwgbmhpZXUgeSBraWVuIGN1YSBuaGlldSBkYWkgYmll dSBkYSBjaGkgcmEgbmh1bmcgdmFuIA0KZGUgbmFtIHRyb25nIHRhbSB0YXksIGxlIHJhIHBoYWkg dmEgZGEgZHVvYyB0aHVjIHRoaSBkZSBnaWFpIHF1eWV0IHZhbiBkZSBrZXQgeGUsIHVuIA0KdGF0 IHRoaSBuaHUgeHUgbHkgdmkgcGhhbSB0cmF0IHR1IGxvbmcgbGUgZHVvbmcsIHBoYXQgbmd1b2kg cXVhIGNhbWVyYSBjYW8gdm9pIG5odW5nIGhhbmggdmkgDQpraG9uZyB0b24gdHJvbmcgbHVhdC4u LiB0aGkgdmFuIGNvbiB0cmkgdHJlLCBjaGFtIHRyZS4NCg0KRHVvYyBiaWV0LCBzYXAgdG9pIFRQ IHNlIHF1eSBob2FjaCBsYWkgbWF0IGRvIGRhbiBjdSwgZG9uZyB0aG9pIHRhbmcgY3VvbmcgbHVj IGx1b25nIA0KY2FuaCBzYXQsIGRhdCB0aGVtIGNhbWVyYS4uLiANCg0KIktoaSBjaGF0IHZhbiB0 b2kgbWFjIGNvIHZpIHZhbiBkZSBjdSBtZW0uLi4iDQoNClNhdSBraGkgY2hhdCB2YW4gY2h1eWVu IGtldCB4ZSwgdW4gdGFjLi4uLCBkYWkgYmlldSBEYW5nIFRoYW5oIFRhbSBtbyBkYXUgY2hvIGN1 b2MgDQpjaGF0IHZhbiB2ZSB2YW4gZGUgbmdhcCBsdXQgdHJlbiBkaWVuIHJvbmcgbyBUUC5IQ00g dHJvbmcgdGhvaSBnaWFuIGdhbiBkYXkuIA0KDQpPbmcgVGFtIGNobyBiaWV0OiAiTmhpZXUgY29u ZyB0cmluaCB0cmVuIGNhbyBvIG51b2MgbmdvYWksIGN1IHRoZSBsYSB0cm9uZyBraHUgdnVjIA0K RG9uZyBOYW0gQSBraGkgeGF5IGR1bmcgbmVuIG1vbmcgY2hvIG5odW5nIGNvbmcgdHJpbmggdHJl biBjYW8gbmd1b2kgdGEgZHVuZyBjb2MgDQpiZSB0b25nLCBjb24gVFAgbWluaCB0aGF5IGJhbmcg Y3UgdHJhbSB0aGkgbmd1eSBjbyBsdW4gY2FuZyBjYW8uIE11b24gY2hvbmcgbmdhcCBsYXUgDQpk YWkgcGhhaSB0aW5oIHRvYW4gY3UgdGhlLCB0cmVuIGNhYyBsdXUgdnVjIHhheSBkdW5nIGNhYyB0 cmFtIGJvbSB2YSBobyBkaWV1IHRpZXQgLi4uIi4NCg0KKEFuaDogIkhlIHRob25nIHRob2F0IG51 b2MgZHVvYyB4YXkgY2hhbSBxdWEhIikgDQoNCkJ1YyB4dWMgdHJ1b2MgdGluaCBoaW5oICJuZ2Fw IGxlIHRoaSBnaWFtLCBuZ2FwIHhpIHRhbmciIHRyb25nIHRob2kgZ2lhbiBxdWEsIGRhaSBiaWV1 IA0KRGFuZyBWYW4gS2hvYSBjaGkgdGhhbmc6ICJOZ3V5ZW4gbmhhbiBuZ2FwIG51b2MgbGllbiBx dWFuIGRlbiBjb3QgbmVuIHRyb25nIHF1YSANCnRyaW5oIHhheSBkdW5nIGRvIHRoaS4gQ2h1bmcg dGEgZGEgbmdvYW4gY28gYm8gYmUgdmllYyB4YXkgZHVuZyB0aWV1IGNodWFuIGNvdCBuZW4uIA0K Q3VuZyB0YWkgY3VvYyBob3AgdHJvbmcgaG9pIHRydW9uZyBuYXkgY2FjaCBkYXkgNSBuYW0sIGxh bmggZGFvIFVCTkQgZGEgZHVuZyBsZW4gDQp0cnVvYyBjaHVuZyB0b2kgbmhhbiB0cmFjaCBuaGll bSB2ZSBtaW5oLCBodWEgc2Uga2hhYyBwaHVjLCBuaHVuZyB0aW5oIGhpbmggZGVuIG5heSANCnZh biB0aGUuIEJheSBnaW8gbyBkYXkga2hpIGNoYXQgdmFuIHRvaSBtYWMgY28gcXVhIHZpIHZhbiBk ZSBjdSBtZW0gbWEgZGEgcGhhaSBkdW9jIGNoYXQgdmFuIHRvaSAzIGxhbi4uLiIuDQoNClNhdSBu aHVuZyBsb2kgY2hpIHRyaWNoIHRoYW5nIHRoYW4gY3VhIGtob25nIGl0IGRhaSBiaWV1LiBHaWFt IGRvYyBTbyBHVENDIC0gVHJhbiANClF1YW5nIFBodW9uZyBuZ2FwIG5ndW5nOiAiVGh1YyByYSBx dXkgaG9hY2ggZ2lhbyB0aG9uZyBkYSBjbywgdHJvbmcgcXV5IDEgbmFtIDIwMDggDQpwaGFpIHRy aW5oIHF1eSBob2FjaCB0aG9hdCBudW9jIDUga2h1IHZ1YyBuZ29haSB0cnVuZyB0YW0sIGtoaSBu YW8gbGFtIHhvbmcgc2UgeGFjIGRpbmggDQpkdW9jIGNvdCB4YXkgZHVuZy4uLiBUaGVvIHRvaSwg dHJvbmcgc3VvdCBtb3QgdGhvaSBnaWFuIGRhaSBxdWFuIGx5IGRvIHRoaSBraG9uZyBjaGF0IA0K Y2hlLCB2aSB2YXkgbmVuIGhvIGRpZXUgdGlldCBiaSBsYW4gY2hpZW0sIGxhcCBkaSwgeGF5IGR1 bmcgdHJlbiBkaWVuIHRpY2ggYXkgbGFtIG1hdCBjaG8gDQpjaHVhIG51b2MuLi4iLg0KDQpUcnVv YyBraGkgcGhpZW4gaG9wIGNodXllbiBzYW5nIGNoYXQgdmFuIHZhbiBkZSB0YWkgbmd1eWVuLCBt b2kgdHJ1b25nLCBkbyB0aGkgdmEgYW4gDQp0b2FuIHRodWMgcGhhbSBvIFRQLkhDTSwgYmEgUGhh bSBQaHVvbmcgVGhhbyBjdW9pIHJhdCBsYWMgcXVhbjogIkNvIG5oaWV1IG51b2MgDQp0aGFwIGhv biBtYXQgbnVvYyBiaWVuIG5odSBIYSBMYW4gdGhhcCBob24gNm0gbWEgaG8gdmFuIGtoYWMgcGh1 YyBkdW9jLiBDdSB0aGUgbyANCkhhIE5vaSB0aGFwIGhvbiBkYXkgc29uZyBIb25nIG5odW5nIGN1 bmcga2hhYyBwaHVjIGR1b2MuLi4gdGhpIHRoZW8gdG9pLCB0aW5oIGhpbmggDQpuZ2FwIHVuZyBo aWVuIG5heSBvIFRQIGNvIG1vdCBuZ3V5ZW4gbmhhbiBjaHUgcXVhbiBsYSwgaGUgdGhvbmcgdGhv YXQgbnVvYyBkdW9jIHhheSANCmNoYW0gcXVhISINCg0KaHR0cDovL3d3dzc3LnZpZXRuYW1uZXQu dm4vdm4veGEtaG9pLzExMzAvY2h1eWVuLWxhLS1jYXAtcGhlcC1jaG8tbmhhLW1heS0tbWEtLS0u aHRtbCBUcnVuZyBUaGFuaCAyNi8xMS8yMDEwIDAxOjEzOjIyIFBNIChHTVQrNykNCg0KVFAgSENN OiBDaHV5ZW4gbGEgLSBDYXAgcGhlcCBjaG8gbmhhIG1heSAibWEiID8gDQoNClRoZW8gZ2lheSBw aGVwIGRvIFNvIFROIJYgTVQgVFAuSENNIHZ1YSBjYXAsIG5oYSBtYXkgeHUgbHkgY2hhdCB0aGFp IGN1YSBjb25nIHR5IA0KVE5ISCBNVFYgSGEgTGFuIG5hbSBvIHNvIDI2Ny80IE5ndXllbiBCaW5o LCB4YSBQaHUgWHVhbiwgaHV5ZW4gTmhhIEJlLCANClRQLkhDTS4gVHV5IG5oaWVuLCB0aGVvIHhh YyBuaGFuIGN1YSBQaG9uZyBUTiAtIE1UIGh1eWVuIE5oYSBCZSwgdGFpIGRpYSBjaGkgdHJlbiAN CmNoaSBjbyB4dW9uZyBjaGUgYmllbiBkYXUgY2FuLCBkYSB0b24gdGFpIHZhIGhvYXQgZG9uZyB0 dSBuaGlldSBuYW0gbmF5LiAgDQoNCkRpYSBwaHVvbmcga2hvbmcgYmlldCANCg0KR2FuIGRheSwg bmhpZXUgZG9hbmggbmdoaWVwIHRyZW4gZGlhIGJhbiBUUC5IQ00gYm9uZyBuaGFuIGR1b2MgaG9w IGRvbmcgIm1vaSIgDQpjaHV5ZW4gZ2lhbyBjaGF0IHRoYWkgbmd1eSBoYWkgKENUTkgpIGNobyBj b25nIHR5IFROSEggbW90IHRoYW5oIHZpZW4gZGljaCB2dSBtb2kgDQp0cnVvbmcgdmEgeHUgbHkg Y2hhdCB0aGFpIEhhIExhbiAoVE5ISCBNVFYgSGEgTGFuKSBkZSB4dSBseS4gDQoNCiJOZ2hlIHRl biBjb25nIHR5IG5heSBsYSBxdWEgbmVuIGNodW5nIHRvaSBuZ28gbmdvLiBIb2kgdGhhbSB0aGkg YmlldCwgZGlhIGNoaSBuaGEgbWF5IA0KY3VhIGhvIGxhaSB0cnVuZyB2b2kgbW90IGRvbiB2aSBj aGkgY2h1eWVuIHh1IGx5IGRhdSBjYW4uIENoYW5nIGhpZXUgY2h1eWVuIG5heSBsYSB0aGUgDQpu YW8uLi4gIiwgY2h1IG1vdCBkb2FuaCBuZ2hpZXAsIHBoYW4gYW5oLiANCg0KKEFuaDogTmhhIG1h eSBjdWEgY29uZyB0eSBUTkhIIE1UViBIYSBMYW4gdGh1YyBjaGF0IGxhIHh1b25nIGNoZSBiaWVu IGRhdSBjYW4gDQpjdWEgQ29uZyB0eSBQZXRyb2xpbWV4LiBBbmg6IFRydW5nIFRoYW5oLikNCg0K VGhlbyBnaWF5IHBoZXAgZG8gU28gVE4tTVQgVFAuSENNIGNhcCwgbmhhIG1heSB4dSBseSBDVE5I IGN1YSBjb25nIHR5IFROSEggDQpNVFYgSGEgTGFuIG5hbSBvIHNvIDI2Ny80IGR1b25nIE5ndXll biBCaW5oLCB4YSBQaHUgWHVhbiwgaHV5ZW4gTmhhIEJlLCBUUC5IQ00uIA0KDQpUdXkgbmhpZW4s IHNhbmcgMjMvMTEsIGNodW5nIHRvaSBjdW5nIGNhbiBibyBtb2kgdHJ1b25nIHhhIFBodSBYdWFu IHZhIGh1eWVuIE5oYSBCZSANCnZhIGRlbiBkaWEgY2hpIG5vaSB0cmVuIGRlIHhhYyBtaW5oIGxh aSBraG9uZyB0aGF5IG5oYSB4dSBseSBjaGF0IHRoYWkgY3VhIENvbmcgdHkgVE5ISCANCk1UViBI YSBMYW4gZGF1LiANCg0KVGhlbyB4YWMgbmhhbiBjdWEgUGhvbmcgVE4gLSBNVCBodXllbiBOaGEg QmUsIHRhaSBkaWEgY2hpIHRyZW4gY2hpIGNvIHh1b25nIGNoZSBiaWVuIA0KZGF1IGNhbiBjdWEg Q29uZyB0eSBUTkhIIE1vdCB0aGFuaCB2aWVuIFRodW9uZyBtYWkgdmEgRG9uZyB0YXUgUGV0cm9s aW1leCBkYSB0b24gdGFpIHR1IG5oaWV1IG5hbSBuYXkuIA0KDQpOaGEgbWF5IG8gZGF1PyANCg0K VHJhIGxvaSBjYXUgaG9pIGN1YSBQViBWaWV0TmFtTmV0LCB0YWkgc2FvIHRhaSBkaWEgY2hpIGR1 b2MgY2FwIHBoZXAgbGFpIGtob25nIHRoYXkgY28gDQpuaGEgbWF5IGN1YSBDb25nIHR5IFROSEgg TVRWIEhhIExhbiwgb25nIE5ndXllbiBUcnVuZyBWaWV0LCBUcnVvbmcgcGhvbmcgUXVhbiANCmx5 IGNoYXQgdGhhaSByYW4sIFNvIFROIC0gTVQgVFAuSENNLCBub2k6ICJEaWEgY2hpIG5oYSBtYXkg Y3VhIGNvbmcgdHkgSGEgTGFuIHRydW5nIA0Kdm9pIHh1b25nIGNoZSBiaWVuIGRhdSBjYW4gY3Vh IGNvbmcgdHkgUGV0cm9saW1leC4gTmd1eWVuIG5oYW4gbGEgZG8gMiBkb24gdmkgbmF5IGxpZW4g DQpkb2FuaCB2b2kgbmhhdSBkZSBob2F0IGRvbmcuIFhldCB0aGF5IHZhbiBkZSBuYXkgcGhhcCBs dWF0IGtob25nIGNhbSBuZW4gY2h1bmcgdG9pIA0KZG9uZyB5IGNhcCBwaGVwIi4gDQoNCktoaSBk dW9jIGhvaSwgdGFpIHNhbyBraGkgY2FwIHBoZXAgY2hvIG5oYSBtYXkgY3VhIGNvbmcgdHkgVE5I SCBNVFYgSGEgTGFuLCBTbyBsYWkgDQpraG9uZyB5ZXUgY2F1IGRhbmggZ2lhIHRhYyBkb25nIG1v aSB0cnVvbmcgdmEgdGhvbmcgYmFvIGNobyBkaWEgcGh1b25nIGJpZXQgZGUgZ2lhbSANCnNhdD8s IG9uZyBWaWV0IG5vaTogICJWaSBuaGEgbWF5IGN1YSBjb25nIHR5IFROSEggTVRWIEhhIExhbiBj aGkgaG9hdCBkb25nIGR1YSB0cmVuIA0KbG8gZG90IC0geHUgbHkgY2hhdCB0aGFpIGN1YSBDb25n IHR5IFBldHJvbGltZXguIExvIGRvdCBuYXkgZGEgZHVvYyBkYW5oIGdpYSB0YWMgZG9uZyANCm1v aSB0cnVvbmcgcm9pIG5lbiBraG9uZyBjYW4gZGFuaCBnaWEgdGFjIGRvbmcgbW9pIHRydW9uZyBi byBzdW5nIi4gDQoNCihBbmg6IE5oYSBtYXkgeHUgbHkgY2hhdCB0aGFpIGN1YSBjb25nIHR5IFRO SEggTVRWIEhhIExhbiBuYW0gc2F0IGJvIHNvbmcgbmh1bmcgDQpsYWkga2hvbmcgZGFuaCBnaWEg dGFjIGRvbmcgbW9pIHRydW9uZy4gYW5oOiBUcnVuZyBUaGFuaCkNCg0KDQpUdXkgbmhpZW4sIHRo ZW8gdGltIGhpZXUgY3VhIFZpZXROYW1OZXQsIHRydW9jIGRheSwgQ29uZyB0eSBQZXRyb2xpbWV4 IGtob25nIHRodSBnb20gDQpDVE5IIGN1YSBjYWMgZG9uIHZpIGtoYWMgdmUgeHUgbHksIGNvbiBj b25nIHR5IFROSEggTVRWIEhhIExhbiwgc2F1IGtoaSBkdW9jIHNvIA0KY2FwIHBoZXAgZGEgdGh1 YyBoaWVuIG5oaWV1IGhvcCBkb25nIHRodSBnb20gQ1ROSC4gVmUgcXVpIG1vIGhvYXQgZG9uZywg aGFpIGRvbiB2aSANCm5heSBkYSBraGFjIG5oYXUuIA0KDQpUaGVvIHF1aSBkaW5oLCBuZXUgY28g c3UgdGhheSBkb2kgdmUgcXVpIG1vIGhvYXQgZG9uZyB0aGkgYmF0IGJ1b2MgcGhhaSBkYW5oIGdp YSB0YWMgDQpkb25nIG1vaSB0cnVvbmcuIFZheSB0YWkgc2FvIHNvIFROLU1UIGxhaSBraG9uZyB5 ZXUgY2F1IGRhbmggZ2lhIHRhYyBkb25nIG1vaSB0cnVvbmcsIA0KdHJ1b2Mga2hpIGNhcCBwaGVw IGNobyBuaGEgbWF5IGN1YSBjb25nIHR5IEhhIExhbiBob2F0IGRvbmc/IA0KDQpUcmEgbG9pIGNh dSBob2kgbmF5LCBvbmcgVmlldCBjaG8gaGF5OiAiSGllbiB0YWkgY2h1bmcgdG9pIHlldSBjYXUg bmhhIG1heSBjdWEgQ29uZyB0eSANCkhhIExhbiBjaGkgZHVvYyB0aHUgZ29tIGNoYXQgdGhhaSBk YW0gYmFvIHh1IGx5IHRoZW8gY29uZyBzdWF0IGN1YSBuaGEgbWF5IGN1LCBraG9hbmcgDQoxIHRh bi9uZ2F5LiBTYXUgNiB0aGFuZywgY2h1bmcgdG9pIHNlIGtpZW0gdHJhLCBuZXUgY29uZyBzdWF0 IHRhbmcgbGVuIHRoaSBzZSB5ZXUgY2F1IGRhbmggDQpnaWEgdGFjIGRvbmcgbW9pIHRydW9uZyIu IA0KDQpDaHVuZyB0b2kgbGllbiBoZSB2b2kgUGhvbmcgVE4tTVQgaHV5ZW4gTmhhIEJlLCBuaG8g eGFjIG1pbmggdGhvbmcgdGluIHR1IGtoaSBkdW9jIA0KY2FwIHBoZXAgZGVuIG5heSwgQ1ROSCBk dW9jIHRodSBnb20gdmUgbmhhIG1heSBjdWEgY29uZyB0eSBUTkhIIE1UViBIYSBMYW4gDQpiYW8g bmhpZXU/IFZpZWMgeHUgbHkgY28gZGFtIGJhbyBjYWMgcXVpIGRpbmggdmUgbW9pIHRydW9uZyBo YXkga2hvbmc/IFR1eSBuaGllbiwgDQp0aGVvIGJhIE5ndXllbiBUaGkgSG9uZyBRdXllbiwgUGhv IHBob25nIFROIC0gTVQgaHV5ZW4gTmhhIEJlLCBkbyBraG9uZyBuaGFuIA0KZHVvYyB0aG9uZyBi YW8gY3VhIFNvIG5lbiBodXllbiBraG9uZyBoZSBiaWV0IHRyZW4gZGlhIGJhbiBjbyBuaGEgbWF5 IHh1IGx5IGNoYXQgdGhhaSANCmN1YSBjb25nIHR5IFROSEggTVRWIEhhIExhbiIsIA0KDQpCYSBR dXllbiBjaG8gYmlldCwgdHJvbmcgdHVhbiBzYXUsIHBob25nIFROLU1UIGh1eWVuIE5oYSBCZSBz ZSBraWVtIHRyYSBobyBzbyBwaGFwIA0KbHkgY3VuZyBuaHUgaG9hdCBkb25nIHRodWMgdGUgbmhh IG1heSB4dSBseSBDVE5IIGN1YSBDb25nIHR5IFROSEggTVRWIEhhIExhbiBkZSANCmxhbSBybyBu aHVuZyB2YW4gZGUgVmlldE5hbU5ldCBuZXUuIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDAx OTA1MDQwMzMzL25oYV9kYW5nX29fYm9uZ19kdW5nX2JpX2NhcF9zb19ob25nX2Nob19uZ3VvaV9r aGFjLmh0bWw/bW9kZT1wcmludCAyNi8xMS8yMDEwLCAwOTowNCBBTSAgDQoNClRQIEhDTTogTmhh IGRhbmcgbyBib25nIGR1bmcgYmkgY2FwIHNvIGhvbmcgY2hvIG5ndW9pIGtoYWMNCg0KRHVvYyBj aG8gdGFuZyBuaGEgdHJ1b2Mgc3UgY2h1bmcgdGh1YyBjdWEgVXkgYmFuIEFuIG5pbmggbmhhbiBk YW4gcXVhbiBCaW5oIEhvYSANCihuYXkgbGEgcXVhbiBCaW5oIFRoYW5oLCBUUCBIQ00pIHZhbyBu Z2F5IDE2LzYvMTk3NSwga2UgdHUgZG8sIGNhIGdpYSBkaW5oIERhaSB0YSANCnF1YW4gZG9pIE5n dXllbiBUaG8gKDczIHR1b2ksIGR1b2MgdHJhbyBIdXkgaGlldSA1MCBuYW0gdHVvaSBEYW5nLCBo aWVuIGRhIG5naGkgaHV1KSANCnNpbmggc29uZyBsaWVuIHR1Yywgb24gZGluaCwga2hvbmcgaGUg YmkgdHJhbmggY2hhcCB0YWkgZGlhIGNoaSAyMkYgLSAyNCBQaGFuIERhbmcgTHV1LCANCnF1YW4g QmluaCBUaGFuaCwgVFAgSENNIGNobyBkZW4gbmF5LiANCg0KTmh1bmcgbmdheSA0LzIvMjAwOSwg b25nIE5ndXllbiBUaG8gYm9uZyBuaGFuIGR1b2MgInRyYXQiIHRyaWV1IHRhcCBjdWEgVG9hIGFu IHZvaSB0dSANCmNhY2ggYmkgZG9uIGRlIGdpYWkgcXV5ZXQgdnUga2llbiBkb2kgbmhhIGN1YSBt b3Qgbmd1b2kgbGEgaG9hYyBtYSBvbmcgY2h1YSB0dW5nIG1vdCANCmxhbiBnYXAgaG9hYyBuZ2hl IG5oYWMgdGVuLiANCg0KRGUgdGltIGhpZXUgc3UgdmllYyBuYXksIFBWIEJhbyBDQU5EIGRhIHBo YXQgaGllbiByYSBoYW5nIGxvYXQgc2FpIHRyYWkgY3VhIG5odW5nIA0Kbmd1b2kgZGEgdGllcCB0 YXkgY2hvIGNvIHF1YW4gY2h1YyBuYW5nIGNhcCBsaWVuIDIgc28gaG9uZyB0cmVuIHRvYW4gYm8g a2h1b24gdmllbiBuaGEgDQpkYXQgY3VhIG9uZyBUaG8uLi4gDQoNClNhaSBwaGFtIHR1IGNvbmcg Y2h1bmcgZGVuLi4uIHF1YW4sIHBodW9uZyANCg0KVHJpbmggYmF5IHZvaSBjaHVuZyB0b2ksIERh aSB0YSBOZ3V5ZW4gVGhvIHZhbiBjaHVhIGhldCBiYW5nIGhvYW5nLCBib2kgMiB0byBnaWF5IA0K Y2h1bmcgbmhhbiBxdXllbiBzbyBodXUgbmhhIHZhIHF1eWVuIHN1IGR1bmcgZGF0IChzbyBob25n KSB2dWEgZHVvYyBVQk5EIHF1YW4gDQpCaW5oIFRoYW5oIGNhcCBjaG8gbmd1b2kgY2h1IG1vaSB0 cmVuIGNoaW5oIDIgY2FuIG5oYSBvbmcgZGFuZyBvLiANCg0KRGUgY2h1bmcgbWluaCBtaW5oIG1v aSBsYSBjaHUgbmhhIGRpY2ggdGh1Yywgb25nIFRobyBkYSBjdW5nIGNhcCBjaG8gY2h1bmcgdG9p IHRvYW4gDQpibyBnaWF5IHRvIGxpZW4gcXVhbiBkZW4gdmllYyBxdWFuIGx5LCBzdSBkdW5nIG9u IGRpbmgsIGxpZW4gdHVjIDIgY2FuIG5oYSB0YWkgZGlhIA0KY2hpIDIyRiAtIDI0IFBoYW4gRGFu ZyBMdXUgdHJvbmcgc3VvdCAzNCBuYW0gcXVhLiBWb2kgYm8gZ2lheSB0byBuaHU6IEdpYXkgY2hv IHRhbmcgbmhhIGNvIGRhdSANCmNodW5nIHRodWMgY3VhIGNoaW5oIHF1eWVuOyB0byBrZSBraGFp IG5oYSBkYXQgbmFtIDE5NzcgdmEgMTk5OSBkZXUgZG8gb25nIE5ndXllbiANClRobyBkdW5nIGto YWk7IGhvIGtoYXUgZG8gb25nIE5ndXllbiBUaG8gbGFtIGNodSBobyB0YWkgZGlhIGNoaSBuYXkg Z2hpIHJvIHRob2kgZ2lhbiANCmRhbmcga3kgdGh1b25nIHRydSBsYSBuZ2F5IDEvMTAvMTk3Niwg cGhhbiBnaGkgbm9pIHRodW9uZyB0cnUgdHJ1b2Mga2hpIGNodXllbiBkZW4gDQpjdW5nIG5nYXkg dGFpIGRpYSBjaGkgMjJGIC0gMjQgUGhhbiBEYW5nIEx1dTsgQ2h1bmcgbWluaCBTeSBxdWFuIGN1 YSBvbmcgTmd1eWVuIA0KVGhvIGRvIFF1YW4ga2h1IDcgY2FwIHRoYW5nIDEyLzE5ODUgY3VuZyBn aGkgZGlhIGNoaSB0aHVvbmcgdHJ1IHRhaSBkYXkuIFRoYW0gY2hpIGRlbiANCnRoYW5nIDUvMjAw MiwgdHJlbiBxdXlldCBkaW5oIGRvaSBzbyBuaGEgdHUgc28gMjJEIChjdSkgdGhhbmggc28gMjJG IGRvIFVCTkQgcXVhbiANCkJpbmggVGhhbmggY2FwIHZhbiBnaGkgdGVuIG9uZyBOZ3V5ZW4gVGhv Li4uIHRhdCBjYSBuaHVuZyBjbyBzbyBwaGFwIGx5IHJvIG11b2kgbXVvaSANCm5odSB2YXkgbmh1 bmcgVUJORCBxdWFuIEJpbmggVGhhbmggdmFuIG5nYW5nIG5oaWVuIGNhcCAyIHNvIGhvbmcgY2hv IG1vdCBuZ3VvaSANCmtoYWMuIA0KDQooQW5oOiBNYXQgdHJ1b2MgY3VhIDIgY2FuIG5oYSBkYW5n IGJpIHRyYW5oIGNoYXAgKQ0KDQpUaW0gaGlldSB2ZSBuZ3VvbiBnb2MgMiBjYW4gbmhhIGN1YSBv bmcgTmd1eWVuIFRobyB0cnVvYyBraGkgb25nIFRobyBkdW9jIG9uZyANCkR1b25nIFh1b25nIER1 b25nIGNobyB0YW5nLCBjaHVuZyB0b2kgZHVvYyBiaWV0LCAyIGNhbiBuaGEgbmF5IHRydW9jIGRh eSB0aHVvYyANCnF1eWVuIHNvIGh1dSBjdWEgMiBtZSBjb24gYmEgTGUgVGhpIFR1eWVuIHZhIERv YW4gVGhpIFRydW9jLiBOYW0gMTk2OCwgYmEgVHJ1b2MgdmEgDQpiYSBUdXllbiBkYSB0dSBuZ3V5 ZW4gcmEgUGhvbmcgY2h1b25nIGtoZSBsYW0gMiB1eSBxdXllbiB0b25nIHF1YXQgY2hvIG9uZyBE dW9uZyANClh1b25nIER1b25nIHZhIHZvIGxhIExlIFRoaSBEaWV1LiBUcm9uZyBkbywgdm8gY2hv bmcgb25nIER1b25nIGR1b2MgdHJhbyByYXQgbmhpZXUgDQpxdXllbiBoYW4gZG9pIHZvaSAyIGNh biBuaGEgbmF5LiBUaGFtIGNoaSB0cmVuIEhvcCBkb25nIHV5IHF1eWVuIGN1YSBiYSBUcnVvYyBj aG8gDQpvbmcgRHVvbmcsIGJhIERpZXUgY29uIGdoaSBybyBtb3QgdHJvbmcgaGFpIG5ndW9pIGR1 b2MgdXkgcXV5ZW4gY28gcXV5ZW4gIkhhbmggZG9uZyANCmNodW5nIG5oYXUgaG9hYyByaWVuZyBi aWV0LCBuZ3VvaSBubyBraG9uZyBjYW4gY28gc3UgdGhhbSBkdSB2YSBobyB0cm8gY3VhIG5ndW9p IGtpYSIuIA0KQ2hpbmggdmkgdmF5LCB2aWVjIG9uZyBEdW9uZyBYdW9uZyBEdW9uZyBxdXlldCBk aW5oIHRhbmcgMiBjYW4gbmhhIG5heSBjaG8gb25nIA0KTmd1eWVuIFRobyAtIG1vdCBuZ3VvaSBl bSBjdWEgb25nIHZhbyBuYW0gMTk3NSBkYSBkdW9jIGNoaW5oIHF1eWVuIHhhYyBuaGFuIGxhIA0K aG9wIHBoYXAuIA0KDQpTYXUga2hpIG9uZyBEdW9uZyBYdW9uZyBEdW9uZyBjaGV0LCB2byBvbmcg RHVvbmcgbGEgYmEgRGlldSBkYSB4dWF0IGNhbmggc2FuZyANClBoYXAgdmEgbWFuZyB0aGVvIGJh biBjaGluaCBnaWF5IHRvIG5oYS4gQ28gZHVvYyBuaHVuZyBnaWF5IHRvIG5heSwgbmdheSAxMi8y LzIwMDgsIA0KYmEgRG9hbiBUaGkgVHJ1b2MsIGhpZW4gZGFuZyBvIFBoYXAgZGEga3kgbW90IGxv YXQgdXkgcXV5ZW4gdmUgY2hvIGJhIERvYW4gVGhpIA0KSHVvbmcsIG5ndSB0YWkgcGh1b25nIDYs IHF1YW4gR28gVmFwIHZvaSBub2kgZHVuZzogQmEgSHVvbmcgZHVvYyB0b2FuIHF1eWVuIHF1eWV0 IA0KZGluaCB2aWVjIGJhbiwgdGFuZyBjaG8gZG9pIHZvaSAyIGNhbiBuaGEgbmF5IGN1bmcgbmh1 IHZpZWMgdGhheSBtYXQgYmEgVHJ1b2MgdGhhbSBnaWEgDQp0byB0dW5nIHRhaSBjYWMgY2FwIFRv YSB0cm9uZyB2dSBhbiB0cmFuaCBjaGFwKD8hKSANCg0KQ28gZ2lheSB1eSBxdXllbiB0cm9uZyB0 YXksIGJhIERvYW4gVGhpIEh1b25nIG5oYW5oIGNob25nIGxpZW4gaGUgdm9pIFBob25nIGNvbmcg DQpjaHVuZyBzbyAxIGRlIGxhbSB0aHUgdHVjIGtoYWkgbmhhbiBkaSBzYW4gdGh1YSBrZSBkb2kg dm9pIGNhbiBuaGEgc28gMjQgUGhhbiBEYW5nIEx1dSANCnZhIGxhbSB0aHUgdHVjIGNobyB0YW5n IGNhIDIgY2FuIG5oYSBuYXkgY2hvIG1vdCBuZ3VvaSBraGFjLiANCg0KVGFpIFBob25nIGNvbmcg Y2h1bmcgc28gMSwgb25nIE5ndXllbiBRdWFuZyBUaGFuZywgVHJ1b25nIHBob25nIGNobyBiaWV0 LCBiYSANCkh1b25nIGRhIG5vcCAiQ2h1bmcgdGh1IGRvYXQgbWFpIiBjdWEgY2FuIG5oYSBzbyAy MkYgZG8gY2h1IHRydW9jIGJhbiBjaG8gYmEgRG9hbiANClRoaSBUcnVvYyB0dS4uLiBuYW0gMTk1 OS4gRG9pIHZvaSBuaGEgc28gMjQsIHNhdSBraGkgdGllcCB0dWMgbm9wICJDaHVuZyB0aHUgZG9h dCBtYWkiIA0KZ2l1YSBjaHUgY3Ugdm9pIG9uZyBDYW5nLCBiYSBUdXllbiBsYSBjaGEgbWUgYmEg RG9hbiBUaGkgVHJ1b2MgY2hvIGNvbmcgY2h1bmcgdmllbiwgDQpiYSBIdW9uZyBkYSB0dSBraGFp IG5oYW4gZGkgc2FuIHRodWEga2UgY2hvIGJhIERvYW4gVGhpIFRydW9jIHZvaSBseSBkbzogQ2hh IGJhIFRydW9jIA0KZGEgY2hldCBuYW0gMTk0NTsgbWUgYmEgVHJ1b2MgY2hldCBuYW0gMTk4Mzsg YmEgVHJ1b2MgbGEgdGh1YSBrZSBkdXkgbmhhdC4uLiANCg0KVm9pIDIgY2h1bmcgdGh1IGRvYXQg bWFpIG5heSBjb25nIHZvaSBtb3Qgc28gZ2lheSB0byB4YWMgbmhhbiB0dSBVQk5EIHBodW9uZyA2 IHZhIA0KUGhvbmcgUXVhbiBseSBkbyB0aGkgcXVhbiBCaW5oIFRoYW5oIHZlIHNvIG5oYSwgdGlu aCB0cmFuZyBxdWFuIGx5IG5oYS4uLiBDb25nIGNodW5nIA0KdmllbiBQaGFuIFZhbiBDaGVvIHZh IFZhbiBUaGkgTXkgRHVjIGN1YSBQaG9uZyBDb25nIGNodW5nIHNvIDEgZGEgdm9pIHZhbmcgdGh1 YSANCm5oYW4gdmEgY2h1bmcgdGh1YyB2YW8gIkhvcCBkb25nIGNobyB0YW5nIG5oYSIgZ2l1YSBi YSBIdW9uZyB2b2kgbW90IG5ndW9pIGtoYWMgbWEgDQpraG9uZyB0aGVtIGRlbSB4aWEgZ2kgdG9p IDIgYmFuICJ1eSBxdXllbiB0b25nIHF1YXQiIGRvaSB2b2kgMiBjYW4gbmhhIG5vaSB0cmVuIGRh IGR1b2MgDQpiYSBUdXllbiwgYmEgVHJ1b2MgdXkgcXV5ZW4gY2hvIG9uZyBEdW9uZyBYdW9uZyBE dW9uZyB2YW8gbmFtIDE5NjggdmFuIGNvbiANCm5ndXllbiBoaWV1IGx1YzsgaGllbiBkYW5nIGR1 b2MgbHV1IHRydSB0YWkgVHJ1bmcgdGFtIGx1dSB0cnUgVFAgSENNIGN1bmcgbmhpZXUgbG9haSAN CmdpYXkgdG8gdGh1YyB0ZSBkdW5nIHRlbiBvbmcgTmd1eWVuIFRobyBjdW5nIG5odSBjYWMgcXV5 IGRpbmggY3VhIEx1YXQgRGF0IGRhaSwgTHVhdCBDb25nIGNodW5nLi4uIA0KDQpQaGFpIGxhbSBy byB2aSBwaGFtIGN1YSBuaHVuZyBuZ3VvaSBjbyBsaWVuIHF1YW4gDQoNClRoZW8gb25nIE5ndXll biBUaG8gdHJpbmggYmF5LCB2aSBsYSBuZ3VvaSBsaW5oIGNoaWVuIGRhdSBuaGlldSBvIGNoaWVu IHRydW9uZyBuZW4gbWFpIA0KZGVuIG5nYXkgMS84LzIwMDcgb25nIG1vaSBsYW0gdGh1IHR1YyBk ZSBuZ2hpIGNhcCBtb2kgZ2lheSBjaHVuZyBuaGFuIHF1eWVuIHNvIGh1dSANCm5oYSB2YSBxdXll biBzdSBkdW5nIGRhdC4gVHJvbmcgbHVjIG9uZyBUaG8gbW9pIG1vbiBjaG8gZHVvYyBjYXAgY2h1 IHF1eWVuIG5oYSwgZGF0IA0KY3VuZyBsYSBsdWMgYmEgRG9hbiBUaGkgSHVvbmcgdGllbiBoYW5o IHhpbiB4YWMgbmhhbiBzbyBuaGEsIHhhYyBkaW5oIHRpbmggdHJhbmcgcXVhbiANCmx5IG5oYS4g DQoNCkJpZXQgcm8gdmllYyBvbmcgTmd1eWVuIFRobyBkYW5nIGxhbSB0aHUgdHVjIGNhcCBzbyBo b25nLCBuaHVuZyBraGkgYmEgSHVvbmcgbGFtIA0KZG9uIHhpbiB4YWMgbmhhbiBzbyBuaGEgdGFp IGRpYSBjaGkgMjJGIC0gMjQgUGhhbiBEYW5nIEx1dSBkZSAiQm8gdHVjIGhvIHNvIGNvbmcgY2h1 bmciLCANCm9uZyBDYW8gSG9uZyBIYSwga2hpIGRvIGxhIFBobyBDaHUgdGljaCBwaHVvbmcgcGh1 IHRyYWNoIGRvIHRoaSBraG9uZyBoaWV1IHZpIA0KbHkgZG8gZ2kgZGEgZGF0IGJ1dCBreSB4YWMg bmhhbiAiY2FpIHJldCIuIA0KDQpEZW4gbHVvdCBvbmcgSG8gUGh1b25nLCBUcnVvbmcgcGhvbmcg UXVhbiBseSBkbyB0aGkgcXVhbiBCaW5oIFRoYW5oIGN1bmcgdmF5LCBtYWMgDQpkdSBobyBzbyB4 aW4gY2FwIGNodSBxdXllbiBuaGEgY3VhIG9uZyBOZ3V5ZW4gVGhvIGNvbiBkYW5nIG5hbSBjaG8g dGFpIGNoaW5oIHBob25nIA0KbmF5LCBzb25nIGN1bmcgbmh1IG9uZyBIYSwgb25nIFBodW9uZyBj dW5nICJ1bmcgaG8gYmEgSHVvbmcgdG9pIGRhIiBraGkga3kgbGllbiBsdWMgMiANCmJhbiB4YWMg bmhhbiB0aGVvIHlldSBjYXUgY3VhIGJhIEh1b25nIHZvaSBub2kgZHVuZyAiTmhhIGtob25nIHRo dW9jIGRpZW4gTmhhIG51b2MgDQpxdWFuIGx5OyBraG9uZyB0aHVvYyBzbyBodXUgTmhhIG51b2Mg aG9hYyBkbyBDb25nIHR5IFF1YW4gbHkgbmhhIHRoYW5oIHBobyBxdWFuIA0KbHkuLi4iIGRlIHJv aSB0dSBkYXkgYmEgSHVvbmcgbGF5IGRvIGxhbSBiYW8gYm9pICJCbyB0dWMgaG8gc28iIHRhaSBQ aG9uZyBjb25nIGNodW5nIHNvIDEuIA0KDQpLaG9uZyBjaGkgZHVuZyBsYWkgbyB2aWVjIGNvIHkg eGFjIG5oYW4sIGdpdXAgY2hvIGJhIEh1b25nIHF1YSBkdW9jICJjdWEgYWkiIHRodSBuaGF0IA0K bGEgUGhvbmcgY29uZyBjaHVuZywgbmh1bmcgY2FuIGJvIGxpZW4gcXVhbiBkYSBiYXQgY2hhcCBz dSB0aGF0IGhpZW4gY28gdHUgcGhpYSBvbmcgDQpOZ3V5ZW4gVGhvLiBWaSBkdSBuaHUgdGhlbyBi YW4gdmUgaGllbiB0cmFuZyBuaGEsIG1vdCBjYW4gY3UgcXVhbiB0cm9uZyBkZSBjYXAgc28gDQpo b25nIGNobyAyIGNhbiBuaGEgbmF5LCBuaHVuZyBuZ3VvaSBsaWVuIHF1YW4gZGEgdHUgeSBkbyB2 ZSByYW5oIGdpb2kgbmhhIHRoZW8uLi4gdHJpIA0KdHVvbmcgdHVvbmcgZHVhIHRyZW4gaG9hIGRv IGN1IGNodSBraG9uZyBoZSBtb3QgbGFuIHh1b25nIGtoYW8gc2F0LCBkbyB2ZSB0aHVjIHRlLiBU dSANCmRvICBkYW4gZGVuIHZpZWMgdG9hbiBibyBtYXQgYmFuZyB0YW5nIHBoaWEgdHJlbiBjdWEg MiBjYW4gbmhhIG5heSBkYSBzYWkgaG9hbiB0b2FuIHNvIA0Kdm9pIGhpZW4gdHJhbmcuIE5odW5n IG1vdCBsYW4gbnVhLCBvbmcgSG8gUGh1b25nIHRpZXAgdHVjIHRodWEgdXkgcXV5ZW4gY3VhIENo dSB0aWNoIA0KVUJORCBxdWFuIEJpbmggVGhhbmggdmFuIGt5IHhhYyBuaGFuIHJvaSBkb25nIGRh dSBjdWEgVXkgYmFuIHZhbyBwaGFuIHBoZSBkdXlldCBjdWEgY28gcXVhbiBOaGEgbnVvYyB0cmVu IGJhbiB2ZS4gDQoNClNhaSBwaGFtIG5naGllbSB0cm9uZyB0cm9uZyBzdW90IHF1YSB0cmluaCBn aWFpIHF1eWV0IGNhcCBzbyBob25nIGRvaSB2b2kgY2FuIG5oYSBzbyANCjIyRiAtIDI0IFBoYW4g RGFuZyBMdXUgZGEgcXVhIHJvIHJhbmcgdmEgYmF0IGNoYXAgY2FjIHF1eSBkaW5oIHBoYXAgbHVh dC4gVmkgdmF5LCANCmNodW5nIHRvaSBraWVuIG5naGkgVUJORCB0aGFuaCBwaG8gY2hpIGRhbyBj aGluaCBxdXllbiBxdWFuIEJpbmggVGhhbmggdGh1IGhvaSBuZ2F5IA0KZ2lheSBjaHVuZyBuaGFu IGRhIGNhcCBzYWkgdHJhaS4gRG9uZyB0aG9pIGNoaSBkYW8gY2FjIGNvIHF1YW4gY2h1eWVuIG1v biBraGFuIHRydW9uZyANCnZhbyBjdW9jIGtpZW0gdHJhLCBsYW0gcm8gZG9uZyBjbyBzYWkgcGhh bSBjdWEgbW90IHNvIGNhbiBibyBwaHVvbmcgNjsgY2FuIGJvIFBob25nIA0KUXVhbiBseSBkbyB0 aGksIFBob25nIFRhaSBuZ3V5ZW4gLSBNb2kgdHJ1b25nIHF1YW4gQmluaCBUaGFuaCB2YSBuaHVu ZyBjb25nIGNodW5nIA0KdmllbiBjdWEgUGhvbmcgQ29uZyBjaHVuZyBzbyAxIGxpZW4gcXVhbi4g RGFjIGJpZXQsIHBoYWkgbGFtIHJvIHZpZWMgY28gaGF5IGtob25nIG1vdCANCmR1b25nIGRheSAi Y2hheSBzbyBob25nIiBuaHUgZGEgbmV1IHRyZW4/IA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1o b2kvVUJORC1UUEhDTS1iaS1jYXAtZHVvaS15ZXUtY2F1LXJ1dC1raW5oLW5naGllbS8yMDc3MTI5 MS8xNTcvIFRoYWkgVGhpZW4gQ2h1IG5oYXQsIDAyLzMvMjAwOCwgMDQ6MTUgR01UKzcgDQoNClRQ IEhDTTogVUJORCBUUC5IQ00gYmkgY2FwIGR1b2kgeWV1IGNhdSBydXQga2luaCBuZ2hpZW0hIEdp YWkgcXV5ZXQgY29uZyB2aWVjIGNoYW0sIGtob25nIGhpZXUgcXVhLCBkZSBjaG8gdGhhbSBuaHVu ZyBkYXQgZGFpIGtlbyBkYWkuLi4gIA0KDQpMYW4gZGF1IHRpZW4gbW90IGJhbiBrZXQgbHVhbiB0 aGFuaCB0cmEgY3VhIFRoYW5oIHRyYSBUUEhDTSBkYW0gbWFuaCBkYW4gZGUgbmdoaSANCiJVQk5E LlRQIHJ1dCBraW5oIG5naGllbSIgdHJvbmcgY29uZyB0YWMgY2hpIGRhbyBkaWV1IGhhbmguLi4N Cg0KKiAgRGFwIHR1b25nLCBjaGllbSBkYXQgbmdoaWEgdHJhbmcgbGlldCBzaQ0KDQpIb20gbmF5 ICgwMS8wMykgbGFuaCBkYW8gVUJORC5UUCBkYSBjbyBidW9pIG5naGUgVGhhbmggdHJhIFRQIGJh byBjYW8ga2V0IHF1YSANCnRoYW5oIHRyYSB2aWVjIHF1YW4gbHkgc3UgZHVuZyBkYXQgdGFpIE5n aGlhIHRyYW5nIGxpZXQgc2kgVFAgKE5UTFMgVFApIHZhIG5odW5nIGhvIGRhbiANCnRyZW4gcGhh biBkYXQgZHVvYyBnaWFvIGNobyBOVExTIFRQLiANCg0KKEFuaDogTW90IHBoYW4gZGllbiB0aWNo IE5naGlhIHRyYW5nIFRQIGJpIG1hbmcgY2hvIHRodWUgbGFtIHNhbiBib25nLi4pDQpOaHUgVFMg dHVuZyBkdWEgdGluLCB0aGFuZyA0LzE5ODQsIFVCTkQgVFBIQ00gY28gUXV5ZXQgZGluaCBzbyAy OSBnaWFvIFNvIA0KVGh1b25nIGJpbmggLSBYYSBob2kgKG5heSBsYSBTbyBMYW8gZG9uZyBUaHVv bmcgYmluaCYgeGEgaG9pICkgNTEsOCBoYSBkYXQgdGFpIHhhIA0KVGFuZyBOaG9uIFBodSB2YSBM b25nIEJpbmgsIGh1eWVuIFRodSBEdWMgKG5heSBsYSBxdWFuIDkpIGRlIHhheSBkdW5nIE5UTFMg VFAuIA0KVHJvbmcgZG8sIGtodSBBIGxhIGtodSB2dWMgY2hpbmggdHVvbmcgZGFpIHZhIG1vIGxp ZXQgc2kgcm9uZyBob24gMzAgaGE7IGNhYyBraHUgQiwgQywgDQpEIHJvbmcgaG9uIDIxLDcgaGEg ZHVvYyBxdXkgaG9hY2ggbGFtIGtodSB2dWMgdHJvbmcgY2F5IHhhbmguIA0KDQpUdXkgbmhpZW4g dmllYyBxdWFuIGx5IHN1IGR1bmcgZGF0IHRob2kgZ2lhbiBxdWEgYm9jIGxvIG5oaWV1IHlldSBr ZW0gZGFuIGRlbiB0aW5oIHRyYW5nIA0KbGFuIGNoaWVtLCBjaG8gdGh1ZSBkYXQsIHN1IGR1bmcg c2FpIG11YyBkaWNoIHRyYW4gbGFuLiANCg0KKEFuaDogUGhhbiBkYXQga2hhYyBjaG8gZG9hbmgg bmdoaWVwIHRodWUgbGFtIG5oYSBraG8uLikNCg0KRGllbiBoaW5oLCBCYW4gcXVhbiB0cmFuZyBk YSBjaG8gMTMgdG8gY2h1YyBjYSBuaGFuIHRodWUgMjQuOTk0MiB0cm9uZyB2YSBuZ29haSBraHVv biANCnZpZW4gbmdoaWEgdHJhbmcgZGUga2luaCBkb2FuaCBsYW0gc2FuIGJvbmcgZGEsIGxhbSBr aG8gY2h1YSBoYW5nLCBob24gbm9uIGJvLCBjYXkgDQpraWVuZywgY2F5IHhhbmgsIHBoYW4gaHV1 IGNvIHZhIGJhaSBjaHVhIHBoZSBsaWV1LiBTbyB0aWVuIHRodSBkdW9jIHR1IHZpZWMgY2hvIHRo dWUgbWF0IA0KYmFuZyBsYSB0dSBuYW0gMTk5OSBkZW4gMjAwNyBsYSB0cmVuIDMsMyB0eSBkb25n Lg0KDQpUaGFuaCB0cmEgVFBIQ00gZGUgbmdoaSBVQk5ELlRQIHJ1dCBraW5oIG5naGllbSB0cm9u ZyB2aWVjIGNodWEgY2hpIGRhbyB4dSBseSBraXAgDQp0aG9pIGJhbyBjYW8gc28gOTQgdmEgdmll YyBnaWFvIGRhdCBraGkgY2h1YSBjbyBxdXlldCBkaW5oIHRodSBob2kgZGF0OyB5ZXUgY2F1IFNv IExELQ0KVEItWEggVFAgdG8gY2h1YyBraWVtIGRpZW0gdHJhY2ggbmhpZW0gdHJvbmcgdmllYyB0 aGlldSBraWVuIHF1eWV0IHRodWMgaGllbiBkdW5nIA0KcGhhbiBkYXQgcXV5IGhvYWNoIGRhIGdp YW8gdGhlbyBRdXlldCBkaW5oIDI5OyBZZXUgY2F1IFVCTkQgcXVhbiA5IGtpZW0gZGllbSwgeHUg bHkgDQpjYSBuaGFuIGNvIHNhaSBwaGFtIHRyb25nIHZpZWMgZ2lhbyBkYXQsIGNhcCBnaWF5IGNo dSBxdXllbiBuaGEsIGRhdDsgYnVvbmcgbG9uZyBxdWFuIGx5IA0KZGUgeGF5IHJhIG5oaWV1IHRy dW9uZyBob3AgbGFuIGNoaWVtLCBzYW5nIG5odW9uZyBkYXQsIHhheSBkdW5nIHRyYWkgcGhlcCBn aWFpIGRvYW4gdHUgDQoxOTg0IGRlbiBuYXkNCg0KUGhpYSB0cnVvYyBOVExTIFRQIChraHUgQSkg dGh1b2MgaGFuaCBsYW5nIHhhIGxvIEhhIE5vaSBjbyA5IGNhIG5oYW4gdHUgeSBjaGllbSBkdW5n IA0KNy40MDBtMiBkZSBsYW0gY28gc28gc2FuIHh1YXQga2luaCBkb2FuaC4gVGFpIGtodSBDLCBt b3QgY2EgbmhhbiBsYSBiYSBEb2FuIE1pbmggDQpUcmFuZyBjaGllbSBkdW5nIDUuMDAwbTIgZGF0 IGN1YSBOVExTIGNobyB0aHVlIGxhbSBraG8gYmFpLiANCg0KVGluaCBjYSAzIGtodSBCLEMsRCB0 b25nIGNvbmcgY28gMTAgdG8gY2h1YyBkYW5nIHN1IGR1bmcgMTAyLjAwMG0yIHZhIDMzMyBjYSBu aGFuIA0Kc3UgZHVuZyAxMzIuMDAwbTIgZGF0OyB0cm9uZyBkbyBjbyAyNTggaG8gY2h1YSBkdW9j IGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5ZW4gc3UgDQpkdW5nIGRhdC4uLiANCg0KVGhlbyBUaGFu aCB0cmEgVFAsIG5nYXkgdHUgZGF1IG5hbSAxOTk1LCBUaGFuaCB0cmEgVFAgZGEgY28gYmFuIGJh byBjYW8gdG9tIHRhdCBrZXQgDQpxdWEga2llbSB0cmEgc28gOTQvQkMtVFQgZGEgY2FuaCBiYW8g dmllYyB0dSA1MyBobyBkYW4gZGluaCBjdSBiYW4gZGF1LCB0YW5nIGxlbiAxMDUgDQpobywgcGhh biBsb24gY2FjIGhvIG5heSBraG9uZyBjbyBnaWF5IHBoZXAgc3UgZHVuZyBkYXQsIGNodSB5ZXUg c2FuZyBuaHVvbmcgdHJhaSBwaGVwLiANCg0KS2V0IGx1YW4ga2llbSB0cmEgY3VuZyBuZXUgcm8g VUJORCBodXllbiBUaHUgRHVjIChjdSkgdmEgVUJORCB4YSBMb25nIFRoYW5oIE15IA0KY28gc2Fp IHNvdCBsYSB4ZXQgY2FwIGRhdCwgY29uZyBuaGFuIHF1eWVuIHNvIGh1dSBkYXQgY2hvIG1vdCBz byB0cnVvbmcgaG9wIHRyZW4gY2FjIA0Ka2h1IGRhdCBsYSBraG9uZyBkdW5nIHRoYW0gcXV5ZW4s IHZpIHBoYW0gTHVhdCBkYXQgZGFpLg0KDQpRdWEgZG8sIFRoYW5oIHRyYSBUUCBkYSBjbyBraWVu IG5naGkgVUJORC5UUCByYSBxdXlldCBkaW5oIHRodSBob2kgdG9hbiBibyBjYWMga2h1IA0KZGF0 IG1hIFNvIExhbyBkb25nICYgVGh1b25nIGJpbmggeGEgaG9pIGtob25nIHN1IGR1bmcsIGN1IHRo ZSBsYSBjYWMga2h1IEIsQyxEIHZhIA0KdGh1IGhvaSBjYWMgcXV5ZXQgZGluaCBtYSBVQk5EIGh1 eWVuIFRodSBEdWMgZGEgZ2lhaSBxdXlldCwgY29uZyBuaGFuIHF1eWVuIHN1IA0KZHVuZyBkYXQg dnVvdCB0aGFtIHF1eWVuIHZhIGNoaSBkYW8gVUJORCBodXllbiBUaHUgRHVjIHh1IGx5IGNhYyB0 cnVvbmcgaG9wIHNhbmcgDQpuaHVvbmcgdHJhaSBwaGVwLi4uDQoNCihBbmg6IEtob25nIHRoZSB0 dW9uZyB0dW9uZyBkYXkgbGEgbW90IHBoYW4gbWF0IHRpZW4gY3VhIE5naGlhIHRyYW5nIGxpZXQg c2kgVFAsIHBoYW4gDQpkYXQgbmF5IGJpIG1vdCBzbyBjYSBuaGFuIGNoaWVtIGR1bmcgbGFtIGJh aSB4ZSBjbyBnaW9pLi4uKQ0KDQpUdXkgbmhpZW4sIDEzIG5hbSBxdWEsIGtldCBsdWFuIGtpZW0g dHJhIGN1YSBUaGFuaCB0cmEgVFBIQ00gZGEgYmkgVUJORC5UUCB2YSBjYWMgDQpjbyBxdWFuIGNo dWMgbmFuZy4uLmJvIHF1ZW4gbW90IGNhY2gga2hvIGhpZXUgPyEgVmllYyAicXVlbiIgeHUgbHkg bmF5IGRhbiBkZW4gaGF1IA0KcXVhIGRlbiBuYXksIHR1IDEwNSBobyBsYW4gY2hpZW0sIG11YSBi YW4gZGF0IG5naGlhIHRyYW5nLCBkZW4gbmF5IGNvbiBzbyBuYXkgbGVuIHRvaSANCjMzMyBoby4g VmllYyBsYW4gY2hpZW0sIHNhbmcgbmh1b25nIGRhdCB2YSB4YXkgZHVuZyB0cmFpIHBoZXAgbmdh eSBjYW5nIHBodWMgdGFwIA0Ka2hvbmcgdGh1YyBoaWVuIGR1b2MgcXV5IGhvYWNoIHRhaSBraHUg QiwgQywgRCBjdWEgTlRMUyBUUC4gDQoNCktldCBsdWFuIGN1YSBVQk5ELlRQOiBUaG9uZyBuaGF0 IHZvaSBrZXQgbHVhbiBjdWEgVGhhbmggdHJhIFRQLCBnaWFvIFVCTkQgcXVhbiA5IA0KY3VuZyBj YWMgZG9uIHZpIGxpZW4gcXVhbiB4YWMgZGluaCByYW5oLCBjYW0gbW9jIHZhIGdpYW8gZHUgMzQs NiBoYSBjaG8gQmFuIHF1YW4gdHJhbmcgDQpOVExTLlRQLiBUaWVuIGhhbmggY3VvbmcgY2hlIG5n YXkgdHJ1b25nIGhvcCBjaGllbSBkYXQgY29uZywgZGllbiB0aWNoIDUwMDBtMiBkb2kgDQp2b2kg aG8gYmEgRG9hbiBNaW5oIFRyYW5nLiBZZXUgY2F1IFNvIExEVEJYSCBjaGkgZGFvIEJhbiBxdWFu IHRyYW5nIGNoYW0gZHV0IA0KbmdheSB2aWVjIGNobyB0aHVlIGRhdCBjb25nLCBzdSBkdW5nIGRh dCBzYWkgbXVjIGRpY2guDQoNCkNodWEgaGV0LCB0aGVvIGtldCBsdWFuIHRoYW5oIHRyYSwgMjIv Mi8yMDA2LCBkdSBVQk5ELlRQIGRhIGNvIGNoaSBkYW8gdmUgcXV5IGhvYWNoIHN1IA0KZHVuZyBk YXQgdGFpIE5UTFMgVFAsIGdpYW8gVUJORCBxdWFuIDkgY2h1IHRyaSwgcGhvaSBob3Agdm9pIFNv IExELVRCLVhIIGtoYW4gDQp0cnVvbmcgdGllbiBoYW5oIGRpZXUgdHJhLCB0aG9uZyBrZSwgbGFw IGRhbmggc2FjaCBjdSB0aGUgaGllbiB0cmFuZyBzdSBkdW5nIG5oYSwgZGF0IGN1YSANCmNhYyBo byBkYW4gdmEgdG8gY2h1YyBuYW0gdHJvbmcgcmFuaCBkYXQgZHVvYyBxdXkgaG9hY2ggc3UgZHVu ZyBsYW0gTlRMUyBUUC4gDQoNClRoYW5nIDUvMjAwNiwgVUJORFRQIHRpZXAgdHVjIGNvIGNvbmcg dmFuIHNvIDI4NjMgdmUgcXV5IGhvYWNoIHN1IGR1bmcgZGF0IE5UTFMgDQpUUCwgY2hhcCB0aHVh biBkaWV1IGNoaW5oIHF1eSBob2FjaCBzdSBkdW5nIGRhdCwgZ2lhbSBxdXkgbW8gZGllbiB0aWNo IGNvbiBsYWkgMzQsNiBoYTsgDQpnaWFvIFVCTkQgcXVhbiA5IHZhIGNhYyBTbyBsaWVuIHF1YW4g dGh1YyBoaWVuIHZpZWMgZGlldSBjaGluaCBxdXkgaG9hY2gsIGRpZW4gdGljaCBkYXQgDQpOVExT OyB0byBjaHVjIGJvaSB0aHVvbmcsIGhvIHRybyB2YSB0aHUgaG9pIGRhdCBkZSBtbyByb25nIE5U TFMgdGhlbyBxdXkgZGluaDsgY28gYmllbiANCnBoYXAgYmFvIHZlIHBoYW4gZGF0IG1vaSB0aHUg aG9pLCBraG9uZyBkZSBsYW4gY2hpZW0sIHhheSBkdW5nIHRyYWkgcGhlcCB0YWkgZGllbi4gDQoN ClR1eSBuaGllbiBjYWMgY2hpIGRhbyBjdWEgVUJORC5UUCBkYSBraG9uZyBkdW9jICJjYXAgZHVv aSIgdGh1YyBoaWVuIG5naGllbSB0dWMuIA0KVHJvbmcgdmFuIGJhbiBiYW4gaGFuaCB2YW8gdGhh bmcgOC8yMDA4LCBQaG8gY2h1IHRpY2ggVUJORC5UUCBOZ3V5ZW4gVGhpIFRodSBIYSANCnBoYWkg dGh1YSBuaGFuIGRhIGhvbiAxIG5hbSBxdWEsIGNhYyBxdXlldCBkaW5oIGN1YSBUUCB2ZSBjb25n IHRhYyBxdWFuIGx5IE5UTFMgVFAgDQp2YW4gImFuIGJpbmggYmF0IGRvbmciID8/IA0KDQpodHRw Oi8vd3d3LmRpZW5kYW4uZXZhLnZuL2NoaS1jdWMtdGh1ZS1xdWFuLTctbGFtLXRodS10cmVuLTEw MC10eS1kb25nLXQxNzkwNDQuaHRtbCB0aGVvIERhdCBWaWV0IDIxLTA3LTIwMTAgMDk6MjQgQU0g DQoNClRQIEhDTTogQ2hpIGN1YyB0aHVlIHF1YW4gNyBsYW0gdGhhdCB0aHUgdHJlbiAxMDAgdHkg ZG9uZyANCg0KS2V0IHF1YSBraWVtIHRvYW4gTmhhIG51b2MgdGFpIFRQIEhDTSBkYSBwaGF0IGhp ZW4gbmhpZXUgc2FpIHBoYW0gdHJvbmcgY29uZyB0YWMgDQpxdWFuIGx5IHRodSB0aHVlIGN1YSBD aGkgY3VjIHRodWUgcXVhbiA3LiBUb25nIHNvIHRpZW4gbWEga2llbSB0b2FuIGRlIG5naGkgQ2hp IGN1YyANCnRodWUgcXVhbiA3IHBoYWkgdHJ1eSB0aHUgZG8gdGluaCBzYWkgbGVuIGRlbiAxMzUs OCB0eSBkb25nLiANCg0KU2FpIHBoYW0gbmdoaWVtIHRyb25nIG5oYXQgbGEgdmllYyBDaGkgY3Vj IHRodWUgcXVhbiA3IGRhICJ0aW5oIHNhaSIgc28gdGllbiBzdSBkdW5nIGRhdCANCnBoYWkgbm9w IGN1YSBtb3Qgc28gY29uZyB0eSB0aHVjIGhpZW4gY2FjIGR1IGFuIHZlIG5oYSBvIHRyZW4gZGlh IGJhbiBxdWFuLiBUbyBraWVtIHRvYW4gDQpkYSBkZSBuZ2hpIENoaSBjdWMgdGh1ZSBxdWFuIDcg dHJ1eSB0aHUgdGllbiBzdSBkdW5nIGRhdCBjdWEgQ29uZyB0eSBUTkhIIFRhbiBUcnVvbmcgDQps YSAxMDQgdHkgZG9uZzsgQ29uZyB0eSBUTkhIIFhEIEtEIG5oYSBOYW0gTG9uZyBsYSAyMCw4IHR5 IGRvbmcuLi4NCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDA2LzEy LzNCOUYxNjE5Lw0KDQpUUCBIQ006IERvYW5oIG5naGllcCBjaGkgdGllbiBjaG8gYmkgdGh1IHF1 YW4gZGkgJ3F1YSBkZW0nIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9TYWktcGhhbS1k YXQtZGFpLXRhaS1UUC1IQ00tTW9pLXh1LWx5LWR1b2MtcGhhbi1ub2ktY3VhLXRhbmctYmFuZy1j aGltLzE0OC80NzA4Mjc4LmVwaSBOaG9tIFBWIDE0LzA4LzIwMTAgDQoNClRQIEhDTTogU2FpIHBo YW0gZGF0IGRhaSB0YWkgVFAgSENNIC0gTmdheSBjYW5nIHRpbmggdmkgLSBDYW4gYm8gdGhvYWkg aG9hIGJpZW4gY2hhdCANCg0KRHUgY2hpIGR1b2MgVFAgSENNIGNobyB0aGkgZGllbSB0aHVjIGhp ZW4gZHUgYW4gInBoYW4gbG8gaG8gbGUiIHRyb25nIHZvbmcgaG9uIDMgDQpuYW0sIHNvbmcgY2h1 IHRydW9uZyBuYXkgZGEgZHVvYyBuaGlldSBkYXUgbmF1IGNhdSBrZXQgdm9pIG1vdCBzbyBjYW4g Ym8gZGlhIHBodW9uZyANCnRob2FpIGhvYSBiaWVuIGNoYXQsIHRhbiBkdW5nIGtoYWkgdGhhYyB0 cmlldCBkZSBkZSBraWVtIGxvaS4gUmF0IHRpZWMsIG5odW5nIHNhaSBwaGFtIA0KdHJvbmcgcXVh biBseSBkYXQgZGFpIGJpIHBoYXQgaGllbiwgeHUgbHkgdGhvaSBnaWFuIGdhbiBkYXkgY2hpIGxh IHBoYW4gbm9pIGN1YSB0YW5nIGJhbmcgDQpjaGltLiBIYXUgcXVhIGRlIGxhaSBkZW4gbmF5IGNo dWEgZGUgZ2kga2hhYyBwaHVjIGR1b2MuDQoNClRyb25nIGtoaSBjaHUgZGF0IHRoaWV0IHRob2kg ZG8gcGhhaSAiYmFuIiB2b2kgY2FpIGdpYSBxdWEgYmVvIGJvdDsgbmd1b2kgbXVhIG5oYSwgZGF0 IHRhaSANCmNhYyBkdSBhbiBwaGFuIGxvIGhvIGxlIHRoaSBraG9uIGtobyB2aSBraG9uZyBkdW9j IGNhcCBwaGVwIHhheSBjYXQgaG9hYyBraG9uZyBkdW9jIA0KY2FwIHNvIGhvbmcsIHNvIGRvIHRy b25nIG5oaWV1IG5hbSB0cm9pLi4uIHRoaSBuaGlldSBjbyBkYXQsIGRhdSBuYXUgdnVhIGR1b2Mg ImxlbiBkb2kiIA0KdGhhbmggY2h1IGR1IGFuIHVuZyBkdW5nIG9tIG1vdCBkb25nIHRpZW4gcm9p IGJpZW4gbWF0LiBSYXQgdGllYywgbmh1bmcgc2FpIHBoYW0gdHJvbmcgDQpxdWFuIGx5IGRhdCBk YWkgYmkgcGhhdCBoaWVuLCB4dSBseSB0aG9pIGdpYW4gZ2FuIGRheSBjaGkgbGEgcGhhbiBub2kg Y3VhIHRhbmcgYmFuZyBjaGltLiANCkhhdSBxdWEgZGUgbGFpIHZvaSBuaGlldSBkdSBhbiAicGhh biBsbyBobyBsZSIgZGVuIG5heSBjaHVhIGRlIGdpIGtoYWMgcGh1YyBkdW9jLg0KDQpEYXQgZGEg YmFuIGhldCwgbmhhIGRhIHhheSB4b25nIGxhbSBzYW8ga2hhYyBwaHVjPyANCg0KVGFpIHZvaSBx dWFuIEdvIFZhcCwgZGlhIGJhbiBjbyB0b2kgNTggZHUgYW4gcGhhbiBsbyBobyBsZSwgbWFjIGR1 IGNoaW5oIHF1eWVuIHF1YW4gZGEgDQpubyBsdWMgc3VhIHNhaSBiYW5nIGNhY2ggdGhhbmggbGFw IGhhbiBtb3QgdG8gY29uZyB0YWMgZGUgcmEgc29hdCwgeGV0IGNhcCBnaWF5IGNodSBxdXllbiAN CmNobyBob24gOTAlIHNvIGhvIGNvIG5oYSwgZGF0IHRyb25nIGNhYyBkdSBhbiBwaGFuIGxvIGhv IGxlLCBuaHVuZyBjaG8gdG9pIHRob2kgZGllbSANCm5heSwgc28gZHUgYW4gZGEgaG9hbiBjaGlu aCBoYSB0YW5nIGJhbiBnaWFvIHZlIGNobyBkaWEgcGh1b25nIHF1YW4gbHkgY2h1YSBkYXkgbW90 IA0KbnVhLiBMeSBkbywgbmhpZXUgZGF1IG5hdSBxdWEgdGhhbSBsYW0sIGRhIGRlbSBiYW4gY2Eg cGhhbiBkYXQgbGFtIGNvbmcgdmllbiBob2FjIGNoaSANCmRhdSB0dSBpdCB0aWVuIHNhbiBsYXAg aGEgdGFuZywgbGFtIGR1b25nIHNhLCBjb25nIHRob2F0IG51b2MuLi4gbW90IGNhY2ggc28gc2Fp LCBraG9uZyANCmRhdCBjaHVhbiByb2kgb20gdGllbiBjYW8gYmF5IHhhIGNoYXkuIEhhIHRhbmcg a2hvbmcgZGFtIGJhbyBuZW4gZHUgYW4gY2h1YSB0aGUga2V0IA0KdGh1Yy4gDQoNClRob2kgZ2lh biBxdWEsIFRvIGNvbmcgdGFjIGtoYWMgcGh1YyBjdWEgcXVhbiBHbyBWYXAgY3VuZyBkYSB0aWVu IGhhbmggdGltIGtpZW0sIG1vaSANCm5oaWV1IGNodSBkYXUgdHUgbGVuIGJ1b2MgY2FtIGtldCBo b2FuIGNoaW5oIGhhIHRhbmcgZGUgYmFuIGdpYW8gbGFpIGNobyBkaWEgcGh1b25nLiANClZvaSBk dSBhbiBjaHUgZGF1IHR1IGRhIGRlbSBiYW4gcGhhbiBkYXQgbGFtIGNvbmcgdmllbiB0aGkgY29u IGNvIHRoZSAiY2h1YSBjaGF5IiBiYW5nIA0KY2FjaCBidW9jIGNodSBkYXUgdHUgdGltICJtdWEi IGRhdCBjb24gdHJvbmcgeHVuZyBxdWFuaCBkZSBkZW4gYnUuIENvbiB2b2kgbmh1bmcgZHUgDQph biBzYWkgcGhhbSB2ZSBjaGlldSByb25nIGR1b25nIGtob25nIGRhdCBjaHVhbiwga2hvYW5nIGx1 aSB4YXkgZHVuZyBraG9uZyBkdW5nIHRoaWV0IA0Ka2UuLi4ga2hpIGRhdCBkYSBiYW4gaGV0LCBu aGEgZGEgeGF5IHhvbmcgdGhpIGNoaSBjb24gbnVvYyBob2FjIGxhICJ0cmVvIiBsYWkgZG8sIGhv YWMgbGEgDQpuZ3VvaSBkYW4gcGhhaSBjaGFwIG5oYW4gc29uZyBjaHVuZyB2b2kgaGEgdGFuZyBk dW9pIGNodWFuIG5heS4gDQoNCkRlbiBuaHVuZyBzYWkgcGhhbSB4YXkgcmEgdm9pIGNhYyBkdSBh biBwaGFuIGxvIGhvIGxlIG8gaHV5ZW4gSG9jIE1vbi4gTmdheSBzYXUga2hpIA0KQ2h1IHRpY2gg aHV5ZW4gTmd1eWVuIFZhbiBLaG9lIGJpIGJhdCwgY2hpbmggcXV5ZW4gaHV5ZW4gSG9jIE1vbiBj dW5nIGNobyB0aGFuaCANCmxhcCBtb3QgdG8gY29uZyB0YWMgZGUga2llbSB0cmEgc2FpIHBoYW0g dGFpIGNhYyBkdSBhbiBwaGFuIGxvIGhvIGxlIHZhIHRpbSBiaWVuIHBoYXAgDQpraGFjIHBodWMu IEhhbmcgbG9hdCBzYWkgcGhhbSBkdW9jIHRvIGNvbmcgdGFjIGR1YSByYSB2b2kgeWV1IGNhdSBj aHUgZHUgYW4gcGhhaSBob2FuIA0KdGF0IHRyb25nIG5hbSAyMDA5LiANCg0KTmh1bmcgY2hvIHRv aSBuYXksIG5oaWV1IGhhbmcgbXVjIHZlIGRpZW4gdGljaCBjb25nIHZpZW4gY2F5IHhhbmgsIHF1 eSBob2FjaCBsbyBnaW9pLCANCmtob2FuZyBsdWkgeGF5IGR1bmcsIGNobyBxdWF5IHhlLi4uIHRy b25nIG1vdCBzbyBkdSBhbiBkYSBraG9uZyB0aGUgdGh1YyBoaWVuIGRvIGRhdCBkYSANCmR1b2Mg cGhhbiBsbyBkYXUgdmFvIGRheSB2YSBoYXUgaGV0IGRhIGR1b2MgeGF5IGNhdCBuaGEuIA0KDQpU YWkgbW90IGR1IGFuIGtodSBkYW4gY3UgdGh1b2MgeGEgQmEgRGllbSBjdWEgZGF1IG5hdSBOZ28g UXVhbmcgVHJ1b25nLCBvbmcgZ2lhbSANCmRvYyB0dW5nIHRodWUgZ2lhbmcgaG8gZ2lldCBuZ3Vv aSBjdW5nIGhvaSBjdW5nIHRodXllbiB2b2kgbWluaCBtYSBkdSBsdWFuIGRhIHR1bmcgDQpiaWV0 IGRlbi4gU2F1IHRob2kgZ2lhbiBvbmcgY2h1IGRhdSB0dSBuYXkgYmkgYmF0LCBhbmggTCwgbW90 IG5ndW9pIGRhbiBjbyBuaGEgdHJvbmcgZHUgDQphbiBuYXkgbG8gbGFuZzogS2hvbmcgYmlldCBj byBkdW9jIGNhcCBzbyBoYXkga2hvbmcgYm9pIHNhdSBraGkgbXVhIG5oYSBkbyBjaHUgZGF1IHR1 IA0KdHUgeGF5IGNhdCBtb2kgcGhhdCBoaWVuIGNvbmcgdHkgbmF5IGRhIHhheSBzYWkgdmkgdHJp LiANCg0KTmdheSBjYSB2b2kgZGlhIGJhbiBtb3QgcXVhbiBtb2ksIGR1b2MgcXV5IGhvYWNoIGhp ZW4gZGFpLCBkYXQgY2h1YW4gbGEgcXVhbiA3IHRoaSB0YWkgDQpkdSBhbiBwaGFuIGxvIGhvIGxl IG8gcGh1b25nIFRhbiBIdW5nLCBwaGFpIGNobyBzYXUga2hpIEJhbyBDQU5EIGxlbiB0aWVuZyBw aGFuIGFuaCwgDQpuZ3VvaSBkYW4gbW9pIGR1b2MgY2FwIHNvIGhvbmcgdmEgZHVvYyBwaGVwIG5h bmcgbmVuLCBjaG9uZyBkb3QgY2hvIGNoaW5oIGNhbiBuaGEgDQpjdWEgbWluaC4gVHV5IHZheSwg aGFuZyB0cmFtIGhvIGRhbiBvIGRheSB2YW4gcGhhaSBjYW4gcmFuZyBzb25nIHRyb25nIGNhbmgg aGEgdGFuZyANCnRhbSBibyBkbyBjaHUgZGF1IHR1IGRhICJjYW8gYmF5IHhhIGNoYXkiLg0KDQoo QW5oOiBOaHVuZyBjb24gaGVtIGNoYXQgaGVwLCBuaGVjaCBuaGFjIGN1YSBkdSBhbiBwaGFuIGxv IGhvIGxlLiBBbmg6IFBWLikNCg0KVGhvYXQgdHJ1eSB0byBuaG8gY2h1IHRydW9uZyBiYW8gY2hl IGN1YSBxdWFuIA0KDQpTYWkgcGhhbSBuZ2hpZW0gdHJvbmcgeGF5IHJhIHRhaSBkdSBhbiBwaGFu IGxvIGhvIGxlIG8gcXVhbiBHbyBWYXAgdGh1b2MgdmUgY2FjIGNodSANCmRhdSB0dSBWdSBOZ29j IFNvbiwgTmdvIFRoaSBUaGFuaCBOZ2EgdmEgTmd1eWVuIFRoaSBIb2kuIEtldCBxdWEgdGhhbmgg dHJhIGN1YSANClRoYW5oIHRyYSBxdWFuIEdvIFZhcCBjaG8gdGhheSwgY2FjIGNodSBkdSBhbiBu YXkgZGEgdGh1YyBoaWVuIGhvIHNvIHBoYXAgbHkga2hvbmcgDQpkdW5nIHF1eSBkaW5oOyBzYW4g bGFwIG1hdCBiYW5nIHRyYWkgcGhlcDsgdGhpIGNvbmcgZHVvbmcsIGRpZW4sIGNvbmcgdGhvYXQg bnVvYy4uLiANCg0Ka2hvbmcgZGF0IHlldSBjYXUgbmh1bmcgZGEgcGhhbiBsbyBiYW4gbmVuLiBW aWVjIGNodXllbiBxdXllbiBzdSBkdW5nIGRhdCwgY2h1IGRhdCB2YSANCmNhYyBjaHUgZGF1IHR1 IGN1bmcga2hvbmcgdHVhbiB0aHUgcXV5IGRpbmggcGhhcCBsdWF0LCBzdSBkdW5nIGhvcCBkb25n IGRpY2ggdnUgZGUgDQpzYW5nIG5odW9uZyBuaGFtIHRyb24gdGh1ZS4gDQoNCk5naGllbSB0cm9u ZyBob24sIG9uZyBWdSBOZ29jIFNvbiB2YSBiYSBOZ3V5ZW4gVGhpIEhvaSBjb24gdGhhbSBsYW0g ZGVuIG11YyBkZW0gDQpjYXQgY2EgcGhhbiBkYXQgZGEgZHVvYyBxdXkgaG9hY2ggbGFtIGNvbmcg dmllbiBjYXkgeGFuaCwgcGhhbiBsbyB4YXkgbmhhIGhvYWMgYmFuIG5lbiANCmNobyBuZ3VvaSBk YW4gdHUgeGF5IGNhdC4uLiBWaWVjIGxhbSBuYXkgY3VhIGNodSBkYXUgdHUgZHVvYyBUaGFuaCB0 cmEgcXVhbiBHbyBWYXAga2V0IA0KbHVhbiBkYSBsYW0gdHJhaSBxdXkgZGluaCBwaGFwIGx1YXQg dmEgY28gZGF1IGhpZXUgbHVhIGRvaSBraGFjaCBoYW5nLiBUaGFuaCB0cmEgcXVhbiBHbyANClZh cCBkYSBjaHV5ZW4gdG9hbiBibyBobyBzbyBzYW5nIGNvIHF1YW4gQ1NEVCBDb25nIGFuIHF1YW4u IA0KDQpUcnVvYyBjbyBxdWFuIGRpZXUgdHJhLCBjYWMgY2h1IGR1IGFuIGRldSB0aHVhIG5oYW4g c2FpIHBoYW0uIE5odW5nIHZvaSBseSBkbyBkaWEgYmFuIA0KR28gVmFwIGNvIHF1YSBuaGlldSBk dSBhbiBwaGFuIGxvIGhvIGxlIHZpIHBoYW0gdHVvbmcgdHUgbGVuIFVCTkQgcXVhbiBHbyBWYXAg Y28gDQpjaHUgdHJ1b25nIG5ldSBjaHUgZGF1IHR1IGtoYWMgcGh1YyBzYWkgc290IHRoaSBzZSBk dW9jIHhlbSB4ZXQsIHh1IHBoYXQgdmkgcGhhbSBoYW5oIA0KY2hpbmguIEJhbSB2YW8gY2FpICJw aGFvIiBuYXksIGNhIDMgY2h1IGRhdSB0dSBjdW5nIGRvbmcgbG9hdCBub3AgZG9uIHhpbiBraGFj IHBodWMgc2FpIA0Kc290LCB2YSB0aGUgbGEgdGhvYXQgZHVvYyB2aWVjIGRvaSBtYXQgdm9pIGFu IGhpbmggc3UuIE5nb2FpIHJhLCBjYWMgbmdoaWEgdnUgdGFpIGNoaW5oIA0Ka2hhYyBjdW5nIGJp IG9uZyBTb24sIGJhIEhvaSB2YSBiYSBOZ2Egdm8gdHVvdC4gDQoNClRoZW8gcGhhbiBhbmggY3Vh IG9uZyBEYW8gVmFuIENoaWVuLCBtb3Qgbmd1b2kgZGFuIGNvIG5oYSBvIGR1IGFuIG5heSwgaGll biB0YWkgZHUgDQpxdWFuIGRhIGNobyBsYW0gc28gaG9uZywgbmh1bmcgbXVvbiBkdW9jIGNhcCBz byB0aGkgbW9pIGhvIHBoYWkgbm9wIHRyZW4gZHVvaSA2MCB0cmlldSANCmRvbmcgdGllbiBjaHV5 ZW4gbXVjIGRpY2ggc3UgZHVuZyBkYXQuIE51YyBjdW9pIG5oYXQgbGEgY2h1eWVuIG5ndW9pIGRh biBtdWEgZGF0IGRlIA0Kbywgbmh1bmcgZG8ga2hvbmcgbmFtIGR1b2Mga2UgY28gdG9jLCBoaWVu IGNvIHF1YW4gdGh1ZSBxdWFuIHF1YXkgcmEgdHVtIG5ndW9pIHRyb2MgDQpkYXUgZGUgYmF0IHBo YWkgbm9wIGtob2FuIHRodWUgdGh1IG5oYXAgMiUhIFZpZWMgbmF5IGNvIGxlIGNoaSBvIHF1YW4g R28gVmFwIG1vaSBjbywgDQpvbmcgQ2hpZW4gbGFjIGRhdSBuZ2FvIG5nYW4NCg0KaHR0cDovL3d3 dy5iYW9tb2kuY29tL0hvbWUvUGhhcEx1YXQvd3d3LmRvaXNvbmdwaGFwbHVhdC5jb20udm4vRHUt YW4tcGhhbi1sby1oby1sZS1vLXF1YW4tR28tVmFwLS1UUC1Iby1DaGktTWluaC1CYW4tY2EtZGF0 LWNheS14YW5oLXJvaS1iYXQtZGFuLWNoaXUvNDA0MDEwNi5lcGkgSG9uZyBEaWVwIDI2LzAzLzIw MTAtMTA6NDEgQU0NCg0KVFAuIEhDTTogRHUgYW4gcGhhbiBsbyBobyBsZSBvIHF1YW4gR28gVmFw IC0gQmFuIGNhIGRhdCBjYXkgeGFuaCByb2kgYmF0IGRhbiBjaGl1IA0KDQpUcmVuIGRpYSBiYW4g cXVhbiBHbyBWYXAgY28gcmF0IG5oaWV1IGR1IGFuIHBoYW4gbG8gaG8gbGUgdmEgZGV1IHhheSBy YSBuaHVuZyB0cnVvbmcgDQpob3AgdHJhbmggY2hhcCBnaXVhIGNodSBkYXUgdHUgdm9pIG5ndW9p IGRhbiBraGkgbXVhIGRhdCBkZSB4YXkgbmhhLiBWaWVjIHRyYW5oIGNoYXAgZG8gDQpsYSBkbyBj aHUgZGF1IHR1IGJhbiBjYSBkYXQgY29uZyB2aWVuLCBjYXkgeGFuaCBjaG8gbmd1b2kgZGFuIHJv aSBiYXQgaG8gcGhhaSBjaGl1IHRvbiB0aGF0Lg0KDQpDaHUgZGF1IHR1IGJhbiBkYXQgY2F5IHhh bmghDQoNCk5odW5nIG5hbSB0cnVvYyBkYXksIGtoaSBuaHUgY2F1IHZlIGNobyBvIGRvaSB2b2kg bmd1b2kgZGFuIHJhdCBjYW8sIG5lbiBVQk5EIHF1YW4gDQpHbyBWYXAgZG9uZyB5IGRlIGNobyBu aHVuZyBuZ3VvaSBkYW4gdHJlbiBkaWEgYmFuIHF1YW4gZHVvYyBwaGVwIGxhcCBkdSBhbiBwaGFu IGxvIA0KaG8gbGUuIFR1IGNodSB0cnVvbmcgbmF5LCBuaGlldSBjaHUgZGF1IHR1IGRhIGRhdSB0 dSBkdSBhbiBjdWEgbWluaCBtb3QgY2FjaCBxdWEgbG9hIHJvaSANCmJhbiBjaG8gbmhpZXUgaG8g ZGFuIG5odW5nIGtob25nIGhvYW4gdGhhbmggdHJhY2ggbmhpZW0gdmEgYmkgY2hpbmggcXV5ZW4g eHUgbHkuIE1hYyANCmR1IGJpIHh1IGx5IG5odW5nIGNhYyBjaHUgZGF1IHR1IGxhaSB0byByYSB0 aG8gbyB2b2kgdHJhY2ggbmhpZW0gY3VhIG1pbmggZG9pIHZvaSBxdXllbiANCmxvaSBjdWEgbmd1 b2kgZGFuLg0KDQpUaGlldCB0aG9pIHZpIHF1eWVuIGxvaSBjdWEgbWluaCBiaSBjaHUgZGF1IHR1 IHRobyBvIG5lbiBobyBkYSBndWkgZG9uIHRvIGNhbyBoYW5oIHZpIA0KdGhpZXUgdHJhY2ggbmhp ZW0gZG8gdG9pIGNhYyBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQgbGEgb25nIE5ndXllbiBRdW9j IEh1bmcgKFNOIA0KMTk3NCwgbmd1IHBodW9uZyBCZW4gTmdoZSwgcXVhbiAxLCBUUC4gSENNKS4g Q2hvIGRvaSBtYWksIGtob25nIG5oYW4gZHVvYyBob2kgYW0sIA0KZ2lhaSBxdXlldCB0cmlldCBk ZSBraGllbiBjaG8gaG9hbiBjYW5oIGdpYSBkaW5oIG9uZyBsYW8gZGFvLg0KDQpRdWEgYnVjIHh1 Yywgb25nIEh1bmcgdGllcCB0dWMgZ3VpIGRvbiBkZW4gY2FjIGNvIHF1YW4gbmdvbiBsdWFuIG5o byBsZW4gdGllbmcgcGhhbiANCmFuaCB2ZSBzdSB0aGlldSB0cmFjaCBuaGllbSBjdWEgY2h1IGRh dSB0dSB2YSBjYWNoIGdpYWkgcXV5ZXQgY3VhIG1vdCBzbyBjbyBxdWFuIGNodWMgDQpuYW5nLiBU aGVvIGRvbiwgb25nIEh1bmcgdHJpbmggYmF5OiAiTmdheSA1LjEyLjIwMDEsIHRvaSB2YSBiYSBQ aGFtIFRoaSBIYSBjbyBtdWEgDQpjdWEgb25nIE5ndXllbiBWYW4gRHVvbmcgKG5ndSA0My8zMzIg ZHVvbmcgUXVhbmcgVHJ1bmcsIHBodW9uZyAxMiwgcXVhbiBHbyBWYXAsIA0KVFAuSENNKSBtb3Qg bG8gZGF0IChkaWVuIHRpY2ggMS4yNDhtMikgbmFtIHRyb25nIGR1IGFuIHBoYW4gbG8gaG8gbGUg bWEgb25nIER1b25nIGxhIA0KY2h1IGRhdSB0dS4gU28gdGllbiBjaHVuZyB0b2kgZGEgdGhhbmgg dG9hbiBjaG8gb25nIER1b25nIGxhIDIgdHkgNDMgdHJpZXUgNzAwIG5nYW4gZG9uZyANCih0aG9p IGRpZW0gZG8gdmFuZyBjaGkgY28gNSB0cmlldSBkb25nLzEgY2F5IFNKQykuIENobyBkb2kgcmF0 IGxhdSBkZSBkdW9jIHhheSBjYXQgbmhhIA0KdHJlbiBkbyBuaHVuZyBjaGkgbmhhbiBkdW9jIGNh dSB0cmEgbG9pIHR1IG9uZyBEdW9uZyBsYSBjdS4uLiBjaG8uIE1haSBkZW4gbmFtIDIwMDgsIGNo dW5nIHRvaSB0YSBob2EgcmEgcmFuZyBkYXQgY3VhIG9uZyBEdW9uZyBiYW4gY2hvIHRvaSBkYSBi aSBxdXlldCBkaW5oIGxhbSBkYXQgY2F5IA0KeGFuaC4gQm9pIHZpIHRydW9jIGRheSwgY2FjIGxv IGRhdCB0cnVvYyBjdWEgb25nIER1b25nIGJhbiBjaG8gY2FjIGhvIGRhbiBsYSBjbyBraG9hbmcg DQpsdWkgY2F5IHhhbmgsIHZpIGRvIGxvbmcgdGhhbSBuZW4gb25nIHRhIGRhIGJhbiBsdW9uIGNo byBuZ3VvaSBkYW4gc3UgZHVuZy4gQmF5IGdpbyANClVCTkQgcXVhbiBHbyBWYXAgdGhheSBuaHUg dmF5IHRoaSBraG8gY28gdGhlIGtoYWMgcGh1YyBuZW4gZGEgYmF0IG9uZyBEdW9uZyBwaGFpIA0K dHUga2hhYyBwaHVjIGhhdSBxdWEuIFRoZSBsYSBvbmcgRHVvbmcgbGF5IGRhdCBjdWEgdG9pIGRl IGxhbSBjb25nIHZpZW4gY2F5IHhhbmggdmEgDQpjb24gdHV5ZW4gYm8gdGF0IGNhIGxhIGRvIFVC TkQgcXVhbiBHbyBWYXAgdGh1IGhvaSBjaHUgb25nIHRhIGtob25nIGNvIGxvaSByb2kgdHJvbiAN CnRyYW5oIHRyYWNoIG5oaWVtLiBCYXkgZ2lvIGdpYSBkaW5oIHRvaSB2b2kgYmEgSGEgbGFtIHZh byBjYW5oIGtob24gY3VuZyB2aSB0b2FuIGJvIGdpYSANCnRhaSBkYSBkb24gdmFvIGRvIG5lbiBj aGFuZyBiaWV0IGxhbSBzYW8/ISINCg0KQ2hpbmggcXV5ZW4gdmFvIGN1b2MhDQoNClNhdSBiYW8g bmhpZXUgbGFuIGd1aSBkb24ga2hpZXUgbmFpIGRlbiBjYWMgbm9pIGRlIG1vbmcgbmhhbiBkdW9j IHN1IHRyYSBsb2kgdGhvYSBkYW5nLiANCkNhYyBjbyBxdWFuIGNodWMgbmFuZyBkZXUgY2hvIHJh bmcgZGF5IGxhIHRyYW5oIGNoYXAgZGFuIHN1IG5lbiBkYSBodW9uZyBkYW4gb25nIA0KSHVuZyBn dWkgZG9uIGtob2kga2llbiByYSBUQU5EIHF1YW4gR28gVmFwLiBEb24ga2hvaSBraWVuIGN1YSBv bmcgSHVuZyBkYSBkdW9jIA0KVEFORCBxdWFuIEdvIFZhcCB0aHUgbHkgdHUgdGhhbmcgMTIuMjAw OCBuaHVuZyBkZW4gbmF5IHZhbiBjaHVhIGR1YSByYSB4ZXQgeHUgDQpraGllbiBvbmcgSHVuZyBu aHUgbmdvaSB0cmVuIGRvbmcgbHVhLg0KDQpUcnVvYyBkbywgbmdheSAxNi41LjIwMDYsIFRoYW5o IHRyYSBxdWFuIEdvIFZhcCBkYSBjbyBrZXQgbHVhbiB0aGFuaCB0cmEgcGhhdCBoaWVuIHNhaSBw aGFtIHRyb25nIHZpZWMgYmFuIGhldCBraG9hbmcgbHVpIGNheSB4YW5oIGNobyBjYWMgaG8gZGFu IHRyb25nIGR1IGFuIHBoYW4gbG8gaG8gbGUgZG8gDQpvbmcgRHVvbmcgbGFtIGNodSBkYXUgdHUu IE5nYXkgMTkuNS4yMDA2LCBVQk5EIHF1YW4gR28gVmFwIHF1eWV0IGRpbmggdGhhbmggbGFwIA0K VG8gY29uZyB0YWMga2hhYyBwaHVjIGNhYyBzYWkgc290IHRhaSBkdSBhbiB0cmVuLiBOZ2F5IHNh dSBraGkgVG8gY29uZyB0YWMga2hhYyBwaHVjIGNvIA0KdG8gdHJpbmggc28gMTMyL1RUci1ULktQ LVFMRFQgdGhpIG5nYXkgMTQuNi4yMDA2LCBVQk5EIHF1YW4gR28gVmFwIGRhIHJhIHF1eWV0IA0K ZGluaCBzbyA1NzgvUUQtVUJETiB2ZSB2aWVjIGtoYWMgcGh1YyBzYWkgc290IGN1YSBkdSBhbiBw aGFuIGxvIHhheSBkdW5nIG5oYSBvIGxlIA0KY3VhIG9uZyBOZ3V5ZW4gVmFuIER1b25nLg0KDQpR dXlldCBkaW5oIG5ldSBybzogIkRpZXUgMTogT25nIE5ndXllbiBWYW4gRHVvbmcgY28gdHJhY2gg bmhpZW0ga2hhYyBwaHVjIGNhYyBzYWkgDQpzb3QgdGhlbyBub2kgZHVuZyB0byB0cmluaCBzbyAx MzIvVFRyLVQuS1AtUUxEVCBuZ2F5IDE0LjYuMjAwNiBjdWEgVG8gY29uZyB0YWMga2hhYyANCnBo dWM7IGRvbmcgdGhvaSB0aG9hIHRodWFuIHZhIGRlbiBidSBjaG8gbmd1b2kgZGFuIGRlIGRhbSBi YW8gZGF0IHF1eSBob2FjaCBjYXkgeGFuaCANCnZhIGRhdCBnaWFvIHRob25nIHRoZW8gZHVuZyB0 aSBsZSBkYXQgcXV5IGhvYWNoIHRyb25nIHRvbmcgbWF0IGJhbmcgcXV5IGhvYWNoIHBoYW4gbG8g ZGEgDQpkdW9jIHRob2EgdGh1YW4uIERpZXUgMjogT25nIE5ndXllbiBWYW4gRHVvbmcgcGhhaSBj aGl1IG1vaSBjaGkgcGhpIGtoYWMgcGh1YyBuZXUgDQp0YWkgZGlldSAxLCBkb25nIHRob2kgY28g dHJhY2ggbmhpZW0gYmFuIGdpYW8gY28gc28gaGEgdGFuZyB2YSBkYXQgY2F5IHhhbmggY2hvIGNv IHF1YW4gDQpxdWFuIGx5IGNodXllbiBuZ2FuaCBjdWEgcXVhbi4iDQoNClRhdCBjYSByYXQgcm8g cmFuZywgbmh1bmcgZG8gb25nIER1b25nIGRhIGJhbiBoZXQga2hvYW5nIGx1aSBjaG8gY2FjIGhv IGRhbiBzdSBkdW5nIA0KdHJ1b2MgZG8gbmVuIGtob25nIHRoZSBsYXkgbGFpLiBUcm9uZyBsdWMg a2hvbmcgdGhlIGtoYWMgcGh1YyBkdW9jIG5odW5nIHBoYW4gZGllbiB0aWNoIA0Ka2lhIG5lbiBv bmcgRHVvbmcgZGEgbGF5IGRhdCBtYSBtaW5oIGRhIGJhbiBjaG8gb25nIEh1bmcgdmEgYmEgSGEg ZGUgZ2lhbyBsYWkgY2hvIA0KcXVhbiBsYW0gZGF0IGNheSB4YW5oLg0KDQpDdW5nIHRhaSBiaWVu IGJhbiBtYSBoYWkgYmVuIHR1IHRob2EgdGh1YW4gdmFvIG5nYXkgMTguMTAuMjAwOCB0aGkgb25n IER1b25nIGRhIGRvbmcgDQp5IGRvaSBsYWkgaGFpIHBoYW4gZGF0IGNobyBvbmcgSHVuZyB2YSBi YSBIYSB0YWkgcGh1b25nIDE1LCBxdWFuIEdvIFZhcC4gTmdheSANCjI2LjEyLjIwMDgsIHRhaSBV Qk5EIHBodW9uZyAxNCAobm9pIGR1IGFuIGN1YSBvbmcgRHVvbmcpIG9uZyBEdW9uZyBjdW5nIGRv bmcgeSANCmRvaSBwaGFuIGRhdCBiZW4gcGh1b25nIDE1LCBxdWFuIEdvIFZhcCBjaG8gb25nIEh1 bmcgdmEgYmEgSGEuIFR1eSBuaGllbiwgZG8gaGFpIA0KYmVuIHZhbiBjaHVhIHRob2EgdGh1YW4g ZHVvYyBuZW4gb25nIEh1bmcgeWV1IGNhdSBjaHV5ZW4gc3UgdmllYyBsZW4gVEFORCBxdWFuIEdv IA0KVmFwLiBNYWMgZHUgZGEgdGh1IGx5IHZ1IGFuIHRvaSBob24gMTUgdGhhbmcgbmh1bmcgVEFO RCBxdWFuIEdvIFZhcCB2YW4gY2h1YSBkdWEgDQp2dSBhbiByYSB4ZXQgeHUuIA0KDQoiVGhlbyBi byBsdWF0IHRvIHR1bmcgZGFuIHN1LCBUaGFtIHBoYW4gdGh1IGx5IHZ1IGFuIG5heSBjdWEgVEFO RCBxdWFuIEdvIFZhcCBkYSB2aSANCnBoYW0gdG8gdHVuZyBraGkga2VvIGRhaSB0aG9pIGdpYW4g ZHVhIHZ1IGFuIHJhIHhldCB4dSItTW90IGx1YXQgc3UgY3VhIGRvYW4gbHVhdCBzdSBUUC4gDQpI byBDaGkgTWluaCBuaGFuIGRpbmguDQoNCk5odSB2YXksIHZpZWMgVUJORCBxdWFuIEdvIFZhcCBk YSByYSBxdXlldCBkaW5oIHlldSBjYXUgY2h1IGRhdSB0dSBsYSBvbmcgTmd1eWVuIA0KVmFuIER1 b25nIHBoYWkga2hhYyBwaHVjIHZhIHRob2EgdGh1YW4gYm9pIHRodW9uZyB2b2kgbmd1b2kgZGFu IGxhIGR1bmcgZGFuLiBUaGUgDQpuaHVuZyBUb2EgYW4gcXVhbiBHbyBWYXAgbGFpIGtlbyBkYWkg dGhvaSBnaWFuIGR1YSB2dSBhbiByYSB4ZXQgZGEga2hpZW4gZHUgbHVhbiBidWMgDQp4dWMgLiBE ZSBuZ2hpIFRBTkQgcXVhbiBHbyBWYXAgY2FuIHNvbSBkdWEgdnUgYW4gcmEgeGV0IHh1LCB0cmEg bGFpIGNvbmcgYmFuZyBjaG8gbmd1b2kgZGFuLg0KDQpQLlYgRG9pIFNvbmcgJiBQaGFwIEx1YXQg Y3VuZyBkYSBsaWVuIGhlIGRlIGxhbSB2aWVjIHZvaSB0aGFtIHBoYW4gdGh1IGx5IHZ1IGFuIHRy ZW4uIA0KS2hpIGRlbiB2YW4gcGhvbmcgVG9hIGFuIHF1YW4gR28gVmFwIGxpZW4gaGUgdm9pIHRo YW0gcGhhbiB0aGkgdGhhbSBwaGFuIHlldSBjYXUgDQpwaG9uZyB2aWVuIHBoYWkgeGluIHkga2ll biBsYW5oIGRhby4gU2F1IGtoaSBwaG9uZyB2aWVuIGR1b2MgbGFuaCBkYW8gVG9hIGFuIHF1YW4g Y2hpIA0KZGluaCBnYXAgdGhpIHRoYW0gcGhhbiBuYXkgbm9pIGxhaSB2b2kgbGFuaCBkYW8gbGEg ZGEgdmUgbmhhIChtYWMgZHUgbHVjIGRvIGRvbmcgaG8gbW9pIA0KY2hpIDExIGdpbyB0cnVhIG5n YXkgdGh1IHNhdSwgdHVjIG5nYXkgMTkuMy4yMDEwKS4gDQoNCmh0dHA6Ly93d3cuaGl2LmNvbS52 bi9zdS1raWVuL3hhLWhvaS8wNTEwNDEwNzkwLmFzcHggVHJhbiBEdXkgKGdoaSkgVmlldG5hbU5l dCAtIDA1OjEzJyAxNS8xMC8yMDA1IChHTVQrNykNCg0KVFAgSENNOiBOaHVuZyAib25nIEdpb2ki IG5hbyB4YXkgY2F1IFZhbiBUaGFuaCAyPyANCg0KKFZpZXROYW1OZXQpLSBOaHVuZyBsbyB0aHVu ZyB0cmVuIGNhdSBWYW4gVGhhbmggMiBkYSBkdW9jIGNhbmggYmFvIHR1IGxhdSB0aGUgbmh1bmcg DQpjaHV5ZW4ga2hhYyBwaHVjIGxhaSBpIGFjaCB0dSBuYW0gbmF5IHNhbmcgbmFtIGtoYWMuIFZp IHNhbz8gIA0KDQpBQlRLID0gIkFpIGJhbmcgdGEga2hvbmc/IiANCg0KVHJvbmcgbGluaCB2dWMg eGF5IGR1bmcgY28gc28gaGEgdGFuZywgbmd1b2kgdGEgdGh1b25nIGR1bmcgY3VtIHR1IEFCVEsg ZGUgY2hpIGJvbiANCmRvbiB2aTogQ2h1IGRhdSB0dSwgTmhhIHRoYXUgdGhpIGNvbmcsIFR1IHZh biB0aGlldCBrZSB2YSBUdSB2YW4gZ2lhbSBzYXQuICAiQm8gdHUiIA0KbmF5IHF1YW4gaGUgbWF0 IHRoaWV0IHZvaSBuaGF1LCBobyB0cm8gbmhhdSBuaGFtIGRhbSBiYW8gY2hhdCBsdW9uZyBjb25n IHRyaW5oLiAgDQoNCk8gY29uZyB0cmluaCBkdW9uZyBOZ3V5ZW4gSHV1IENhbmggKHRyb25nIGRv IGJhbyBnb20gaGFuZyBtdWMgY2F1IFZhbiBUaGFuaCAyKSwgDQpuZ29haSBDb25nIHR5IFNhbiB4 dWF0LCBraW5oIGRvYW5oIHRodW9uZyBtYWkgdmEgZGljaCB2dSB4dWF0IG5oYXAga2hhdSBUaGFu aCBuaWVuIA0KeHVuZyBwaG9uZyAoQ3R5IFROWFAtIHRodW9jIGx1YyBsdW9uZyB0aGFuaCBuaWVu IHh1bmcgcGhvbmcgVFAuSENNKSwgbW90IGNvbmcgdHkgDQpkdW9jIFVCTkQgVFAgZGFuaCBuaGll dSAidXUgYWkiIHZhIGJhIGRvbiB2aSBraGFjIGN1bmcgZGV1IGR1b2MgeGVwIGhhbmcgImRhaSBn aWEiIA0KdGh1b2MgQm8gR1RWVC4gDQoNCiJVeSB0aGUiIG5heSBraGllbiBkdSBsdWFuIGRhdCBj YXUgaG9pOiBDbyBwaGFpIGRvIGxhIGx5IGRvIG1hIHN1b3QgbmhpZXUgbmFtIHF1YSwgY2FjIA0K ZG9uIHZpIG5heSB0aGEgc3VjIGNoYXkgeSB0cm9uZyB2aWVjIGtoYWMgcGh1YyBuaHVuZyB0b24g dGFpIGN1YSBjb25nIHRyaW5oIGR1b25nIA0KTmd1eWVuIEh1dSBDYW5oPyANCg0KKEFuaDogTW90 IHZldCB2dXQgbyBkdW9uZyBkYW4gdmFvIGNhdSBOZ3V5ZW4gSHV1IENhbmggKHRodW9jIGNvbmcg dHJpbmggY2F1IGR1b25nIA0KTmd1eWVuIEh1dSBDYW5oKS4NCg0KVGltIGxvaSBnaWFpIGNobyBj YXUgaG9pICJ0ZSBuaGkiIHRyZW4sIFBWIFZpZXROYW1OZXQgZHVvYyBvbmcgVHJhbiBRdWFuZyBQ aHVvbmcsIA0KUGhvIGdpYW0gZG9jIFNvIEdUQ0MgVFAuSENNIGNobyBiaWV0OiAiIE5nYXkgMy8x MC8yMDA1LCB0dWMgdHJ1b2Mga2hpIHh1YXQgaGllbiBsbyANCmhvbmcgdHJlbiBjYXUgVmFuIFRo YW5oIDIga2hvbmcgbGF1LCBjaHVuZyB0b2kgY28gY3VvYyBob3Agdm9pIGNhYyBkb24gdmkgbGll biBxdWFuIA0KKEN0eSBUTlhQLCBURURJIFNvdXRoLCBQaGFuIHZpZW4ga2hvYSBjb25nIG5naGUg R1RWVCBwaGlhIE5hbSwgQ0lFTkNPNikgeWV1IA0KY2F1IGRheSBuaGFuaCBjb25nIHRhYyBraGFj IHBodWMsIHN1YSBjaHVhIGNvbmcgdHJpbmggZHVvbmcgTmd1eWVuIEh1dSBDYW5oLiBUdXkgDQpu aGllbiB0aW5oIHRyaSB0cmUgY3VhIGNhYyBkb24gdmkgbmF5IGhvaSBjYW8uIE5ndW9pIHRhIGto b25nIHkgdGh1YyBkdW9jIHJhbmcgY2h1eWVuIA0KY2hhbSB0cmUgbmF5IHRhYyBkb25nIGRlbiBu aWVtIHRpbiBjdWEgbmhhbiBkYW4gdm9pIGxhbmggZGFvLCBjaGluaCBxdXllbiB0aGFuaCBwaG8i LiAgDQoNCihBbmg6IExheSBnbyBjaG9uZyBiZS10b25nLikNCg0KVGhlbyBvbmcgUGh1b25nLCB0 cm9uZyBuaHVuZyBjdW9jIGhvcCBiYW4gdmUgbmh1bmcgZ2lhaSBwaGFwIGtoYWMgcGh1YyBuaHVu ZyB0b24gdGFpIA0KbyBjb25nIHRyaW5oIGR1b25nIE5ndXllbiBIdXUgQ2FuaCwgImJvIHR1IiBk ZXUgeWV1IGNhdSBTbyBHVENDIGNobyBobyB0aG9pIGdpYW4gdmkgDQpjYW4gcGhhaSBjYW4gbmhh YyBreSBjYWMgcGh1b25nIGFuIHh1IGx5IGtoYWMgcGh1YyBzdSBjbyBkZSBjbyAidGluaCBraW5o IHRlIiBob24uIA0KDQpWaSBzYW8gbmh1IHZheT8gVGhlbyBnaWFpIHRoaWNoIGN1YSBvbmcgUGh1 b25nLCBwaHVvbmcgYW4geHUgbHkgcGhhaSBkYW0gYmFvIHJlIHRpZW4sIA0KcGh1IGhvcCB2YSBr aG9uZyBhbmggaHVvbmcgZGVuIHRpbmggaGluaCBraW5oIGRvYW5oLCBzYW4geHVhdCBjdWEgZG9u IHZpLiAgDQoNClRyYSBsb2kgY2F1IGhvaSBjdWEgYmFvIGNoaSAiIENhYyBkb24gdmkgcXVhbiBs eSBuaGEgbnVvYyBjbyBjYSBibyBtYXkgcXV5ZW4gbHVjIHRyb25nIA0KdGF5IG5odW5nIHRhaSBz YW8gbGFpIGRlIHRpbmggdHJhbmcgY2hhbSB0cmUga2VvIGRhaSBnYXkgbmhpZXUgYnVjIHh1YyB0 cm9uZyBuaGFuIGRhbiANClRoYW5oIHBobz8iLCBvbmcgUGh1b25nIHRodWEgbmhhbjogIkNodW5n IHRhIGNvIGJvIG1heSBxdWFuIGx5IG5oYSBudW9jLCBuaHVuZyBraG9uZyBwaGFpIGN1IG11b24g ZXAgbGEgZHVvYyIoPyEpLiAgDQoNCkRlIHh1YXQgeHUgbHkgaGluaCBzdT8gDQoNCktldCBsdWFu IG1vaSBkYXkgY3VhIGRvYW4ga2llbSB0cmEgY2hhdCBsdW9uZyBjb25nIHRyaW5oIGR1b25nIE5n dXllbiBIdXUgQ2FuaCBjaG8gDQp0aGF5LCBkb24gdmkgVHUgdmFuIHRoaWV0IGtlIHRpbmggdG9h biBraG9uZyBwaHUgaG9wIHRyb25nIHZpZWMgeHUgbHkgbW9uZyBsYW0gY2hvIGhhbSANCmNodWkg YmkgbnV0OyBkdW9uZyBkYW4gdmFvIGNhdSBjaHVhIGR1IHRob2kgZ2lhbiBnaWEgdGFpIHRoZW8g cXV5IGRhbiBkZW4gaGllbiB0dW9uZyANCmNodXllbiB2aSBkYW0gY3VhIGNhdSBWYW4gVGhhbmgg Mi4gIA0KDQpOZ29haSByYSBkbyB0aW5oIHRvYW4gZG8gbHVuIGtob25nIGNoaW5oIHhhYyBuZW4g dHJlbiBkb2FuIGR1b25nIE5ndXllbiBIdXUgQ2FuaCwgDQptYXQgZHVvbmcgcXVhIHRoYXAgKFRo YW0gY2hpIGNvIG5vaSBjYW8gZG8gaGllbiBuYXkgY29uIHRoYXAgaG9uIG11YyBudW9jIHRyaWV1 IGJpbmggDQp0aHVvbmcpLiBWaSB2YXksIGN1IHRyaWV1IGxlbiBsYSBkb2FuIGR1b25nIG5heSBs YWkgbmdhcCBuZ3VhIG51b2MuIERvIGxhIGNodWEga2UgaGF1IA0KcXVhIGN1YSBuaHVuZyBjb24g bXVhIGxvbi4gTmh1bmcgeWV1IHRvIHRyZW4gbGFtIGNobyBjb25nIHRyaW5oIGR1b25nIE5ndXll biBIdXUgDQpDYW5oIGNhbmcgbmdheSBjYW5nIHh1b25nIGNhcCwgcmV1IHJhLiAgDQoNCihBbmg6 IFBoYW4gdHVvbmcgYmFvIGNoZSBjYXUgVmFuIFRoYW5oIDIgeHVvbmcgY2FwIHRyYW0gdHJvbmcu KQ0KDQpUcm9uZyBsdWMgY2FjIGNodXllbiBnaWEgdmUgY2F1IHJhIHN1YyBjYW5oIGJhbyBraGEg bmFuZyBzYXAgY3VhIGNhdSBWYW4gVGhhbmggMiwgY2FjIA0KZG9uIHZpIGxpZW4gcXVhbiB2YW4g Y2h1YSB0aGUgZHVhIHJhIHRoaWV0IGtlIGt5IHRodWF0IGtoYWMgcGh1YyBzdWEgY2h1YSBjb25n IHRyaW5oLiANClRydW9jIHRpbmggaGluaCBkbywgb25nIFBodW9uZyBidWMgeHVjOiAiQ2h1bmcg dG9pIGRhbmcgeWV1IGNhdSBjYWMgZG9uIHZpIGxpZW4gcXVhbiANCm5oYW5oIGNob25nIGR1YSBy YSB0aGlldCBrZSBreSB0aHVhdCBraGFjIHBodWMgc3UgY28gdmFvIGRhdSB0aGFuZyAxMS4gTmV1 IGhvIGtob25nIA0KbGFtIHRoaSBjaHVuZyB0b2kgc2UgYXAgZHVuZyBuaHVuZyBiaWVuIHBoYXAg bWFuaCwga2UgY2EgdmllYyB5ZXUgY2F1IHh1IGx5IGhpbmggc3UuIA0KS2hvbmcgdGhlIGNoYW4g Y2hvIHRoZW0gZHVvYyBudWEiLiAgDQoNClRydW9jIG1hdCwgU28gR1RDQyB5ZXUgY2F1IFRFREkg U291dGggbGFwIHRoaWV0IGtlIGt5IHRodWF0IHZhIGR1IHRvYW4gZGUgYnUgY2FvIGRvIA0Kbmdh eSBvIG5odW5nIGRvYW4gdGh1b25nIHh1eWVuIGJpIG5nYXAgbnVvYy4gRG9uZyB0aG9pLCBURURJ IFN1b3RoIHBoYWkgdGllcCB0dWMgYm8gDQpzdW5nIG5vaSBkdW5nIGhvIHNvIHRoaWV0IGtlIGt5 IHRodWF0IHN1YSBjaHVhIGNhdSBWYW4gVGhhbmggMiB0aGVvIGRheSBkdSBuaHVuZyANCm5ndXll biBuaGFuIGRhIGR1b2MgZG9hbiBraWVtIHRyYSBjb25nIHRyaW5oIGR1b25nIE5ndXllbiBIdXUg Q2FuaCB4YWMgZGluaC4gIA0KDQooQW5oOiBEdW5nIHRhbSB0b24gZGUgdmEgbG8gaG9uZyB0cmVu IG1hdCBjYXUgVmFuIFRoYW5oIDIuKQ0KDQpEb2kgdm9pIG5odW5nIHZhbiBkZSB0b24gdGFpIGN1 YSBjYXUgdnVvdCBudXQgZ2lhbyB0aG9uZyBkYXUgY2F1IFNhaSBHb24sIFNvIEdUQ0MgY2hvIA0K YmlldCBkYSBuaGlldSBsYW4gbmhhYyBuaG8sIHlldSBjYXUgQUJUSyB0aWVwIHR1YyBxdWFuIHRy YWMsIHRoZW8gZG9pIGRpZW4gdGllbiBjaHV5ZW4gdmkgDQp2YSBzdSB4dW9uZyBjYXAgZGUga2lw IHRob2kgZ2lhaSBxdXlldCwgZG9uZyB0aG9pIGtoYW4gdHJ1b25nIGhvYW4gdGF0IGhvIHNvIHRo aWV0IGtlIGt5IA0KdGh1YXQgc3VhIGNodWEgaGFuZyBtdWMgY29uZyB0cmluaCBuYXkuIFRyb25n IHF1YSB0cmluaCBzdWEgY2h1YSBjYW4gbmdoaWVuIGN1dSB0aGVtIA0KZ2lhaSBwaGFwIGRlIGNh Y2ggbHkgcGhhbiB0dW9uZyBiYW8gY2hlIGtob2kgY2FjIHRhYyBkb25nIHh1bmcga2ljaCBraGkg dGh1YyBoaWVuIGhvIHNvIA0KdGhpZXQga2Ugc3VhIGNodWEuICANCg0KUFY6IENhdSBWYW4gVGhh bmggaGllbiBuYXkgY28gYW4gdG9hbiBjaG8gbmd1b2kgZGFuIGtob25nLCB0aHVhIG9uZz8gDQoN Ck9uZyBUcmFuIFF1YW5nIFBodW9uZzogVGhlbyBDaGkgY3VjIGdpYW0gZGluaCBjaGF0IGx1b25n ICh0aHVvYyBCbyBHVFZUKSB2YSBtb3QgDQpzbyBjaHV5ZW4gZ2lhIHRyb25nIGxpbmggdnVjIGNh dSBUaGFuaCBwaG8sIHR1IG5heSBkZW4gZ2lhaSBkb2FuIHN1YSBjaHVhIGNoaW5oIHRodWMsIA0K bmh1bmcgc3UgY28gbmhvIG5obyBjbyB0aGUgeGF5IHJhLiBOaHVuZyB2YW4gZGUgY2hpdSB0YWkg Y3VhIGNhdSBuYXkgdmFuIG8gdHJvbmcgdGluaCANCnRyYW5nIGNvIHRoZSBjaGFwIG5oYW4gZHVv Yy4gDQoNCkhpZW4gbmF5LCBDb25nIHR5IFF1YW4gbHkgY29uZyB0cmluaCBjYXUgcGhhIFRoYW5o IHBobyB0aHVvbmcgeHV5ZW4ga2llbSB0cmEga2hvbmcgDQpuaHVuZyB0cmVuIGNhdSBWYW4gVGhh bmggMiBtYSBjb24gdHJlbiBjYSB0dXllbiBjYXUgdnVvdCBOZ3V5ZW4gSHV1IENhbmggdmEgYmFv IA0KY2FvIG5odW5nIGRpZW4gYmllbiBwaHVjIHRhcCB4YXkgcmEgZGUgU28gR1RDQyBraXAgdGhv aSB4dSBseS4gIA0KDQpQVjogU28gR1RDQyBzZSBhcCBkdW5nIG5odW5nIGJpZW4gcGhhcCBwaGF0 IGhhbmggY2hpbmggbmFvIGRvaSB2b2kgbmh1bmcgZG9uIHZpIGRlIA0KeGF5IHJhIHN1IGNvIG8g Y29uZyB0cmluaCBkdW9uZyBOZ3V5ZW4gSHV1IENhbmg/ICANCg0KT25nIFRyYW4gUXVhbmcgUGh1 b25nOiBDaHVuZyB0b2kga2llbiBuZ2hpIEJvIEdUVlQgeHUgbHkgYmEgZG9uIHZpIHRydWMgdGh1 b2MgQm87IA0KY29uIHZlIHBoaWEgQ29uZyB0eSBUaGFuaCBuaWVuIHh1bmcgcGhvbmcsIGNodW5n IHRvaSBjdW5nIGRhIGRlIG5naGkgVUJORCBUUCB4dSANCmx5LiAgDQoNClBWOiBTbyBHVENDIHR1 bmcgbW9pIFBoYW4gdmllbiBLaG9hIGhvYyBjb25nIG5naGUgKEJvIFhheSBkdW5nKSBkYW5oIGdp YSwgZ2lhbSANCmRpbmggY2hhdCBsdW9uZyBjb25nIHRyaW5oIGR1b25nIE5ndXllbiBIdXUgQ2Fu aC4gVGFpIHNhbyBsYWkgcGhhaSB0aWVwIHR1YyBtb2kgQ3VjIA0KR2lhbSBkaW5oIGNoYXQgbHVv bmcgY29uZyB0cmluaCBnaWFvIHRob25nICh0aHVvYyBCbyBHVFZUKSBnaWFtIGRpbmggbGFuIG51 YT8gDQoNCk9uZyBUcmFuIFF1YW5nIFBodW9uZzogRHVuZyBsYSBHVENDIGNvIGNoaSBkaW5oIFBo YW4gdmllbiBraG9hIGhvYyBjb25nIG5naGUgdGllbiANCmhhbmggZ2lhbSBkaW5oLiBUdXkgbmhp ZW4sIGRvbiB2aSBuYXkgY2h1YSBkdSBzdWMgdHJhIGxvaSBuZ3V5ZW4gbmhhbiB2aSBzYW8gY28g aGllbiANCnR1b25nIGx1bi4gQ2hpIGRlbiBraGkgZG9hbiBraWVtIHRyYSBjdWEgQm8gR1RWVCAo Z29tIG1vdCBob2kgZG9uZyBraG9hIGhvYykgbW9pIA0KdHJhIGxvaSBjYXUgaG9pIG5heSBkdW9j LiANCg0KUFY6IEtldCBxdWEgZ2lhbSBkaW5oIGNvIGJhdCBkdW5nICJiZW5oIiB2YSBjbyBraGFj aCBxdWFuIGtob25nPw0KDQpPbmcgVHJhbiBRdWFuZyBQaHVvbmc6IERheSBsYSBjbyBxdWFuIGhh bmcgZGF1IGN1YSBuaGEgbnVvYyBWaWV0IE5hbSB0cm9uZyB2aWVjIA0KZHVhIHJhIG5odW5nIGtl dCBsdWFuIHZlIGNhdSBkdW9uZy4gS2hvbmcgY28gY28gcXVhbiBuYW8ga2hhYyBjbyB0aGUgZHVh IHJhIGtldCBsdWFuIA0KdGhheSBjaG8gY28gcXVhbiBuYXkuICANCg0KUFY6IFRyYWNoIG5oaWVt IGNoaW5oIHRyb25nIHZpZWMgZGUgeGF5IHJhIG5odW5nIHN1IGNvIHZhbiBjb24gdG9uIHRhaSBv IGNvbmcgdHJpbmggDQpkdW9uZyBOZ3V5ZW4gSHV1IENhbmgsIHRoZW8gb25nIHRodW9jIHZlIGRv biB2aSBuYW8/DQoNCk9uZyBUcmFuIFF1YW5nIFBodW9uZzogVHJhY2ggbmhpZW0gY2hpbmggdGh1 b2MgdmUgZG9uIHZpIFR1IHZhbiB0aGlldCBrZS4gTmh1bmcgDQp0aGF0IHJhIGRvbiB2aSBuYXkg a2hvbmcgcGhhaSBjbyB5IGhheSBsYSB0aGlldSB0cmFjaCBuaGllbSBsb24gbWEgdHJpbmggZG8g Y3VhIGhvIG8gdGhvaSANCmt5IGRvIGNvbiBoYW4gY2hlLiBDYWMgZG9uIHZpIGtoYWMgY3VuZyBr aG9uZyBwaGFpIGtob25nIGNvIGxvaS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA1MC8yMDEwMTIwOTAxMDQxMC5hc3B4IFBodW9uZyBUaGFuaCAwOS8xMi8y MDEwIDE6MDQgDQoNClRQIEhDTTogQmFvIGRvbmcgY2hhdCBsdW9uZyBjb25nIHRyaW5oIHhheSBk dW5nICANCg0KRHVvbmcgbHVuLCBoYW0gbnV0LCBuaGEgc2FwIHZhIGRpbmggZGllbSBsYSBoYW5n IGxvYXQgImhvIHR1IHRoYW4iIHJpbmggcmFwIG5ndW9pIGRpIA0KZHVvbmcgZGEgZ2lvbmcgbGVu IGhvaSBjaHVvbmcgYmFvIGRvbmcgdmUgY2hhdCBsdW9uZyBjb25nIHRyaW5oIHhheSBkdW5nIHRh aSBUUC5IQ00uIA0KDQooQW5oOiAiSG8gdHUgdGhhbiIgbGEgbm9pIGFtIGFuaCB2b2kgbmd1b2kg bHV1IHRob25nIHRhaSBUUC5IQ00uIEFuaDogRC5ELk1pbmggLSBQLlQpIA0KDQpQaGFuIGxvbiBk YWkgYmlldSB0aGFtIGR1IGhvaSB0aGFvIENoYXQgbHVvbmcgY29uZyB0cmluaCB4YXkgZHVuZyB0 cm9uZyBnaWFpIGRvYW4gaG9pIA0KbmhhcCBkbyBTbyBYYXkgZHVuZyBUUC5IQ00gdG8gY2h1YyBo b20gcXVhIDguMTIgZGV1IHRodWEgbmhhbiwgbmd1eWVuIG5oYW4gY3VhIA0KdGh1YyB0cmFuZyBu YXkgY2h1IHlldSB2YW4gZG8gbmFuZyBsdWMgaGFuIGNoZSBjdWEgbmhhIHRoYXUgdmEgdGhhaSBk byBkZSBkYWkgY3VhIGNodSBkYXUgdHUuDQoNCk5oaW4gZGF1IGN1bmcgdGhheSBzdSBjbw0KDQpP bmcgTGUgUXVhbmcgSHVuZywgQ3VjIHRydW9uZyBDdWMgR2lhbSBkaW5oIG5oYSBudW9jIHZlIGNo YXQgbHVvbmcgY29uZyB0cmluaCB4YXkgDQpkdW5nIChCbyBYYXkgZHVuZyksIGNobyBiaWV0LCB0 aG9pIGdpYW4gcXVhIGRhIHhheSByYSBtb3Qgc28gc3UgY28gbG9uIHZlIGNoYXQgbHVvbmcgDQpj b25nIHRyaW5oLCBuaHUgdnUgc2FwIDIgbmhpcCBkYW4gY2F1IENhbiBUaG8sIG51dCBjYWMgZG90 IGhhbSBkaW0gVGh1IFRoaWVtLi4uIE5nb2FpIA0KcmEsIG5oaWV1IGNvbmcgdHJpbmggbW9pIGR1 YSB2YW8gc3UgZHVuZyBkYSBib2MgbG8ga2hpZW0ga2h1eWV0IHZlIGNoYXQgbHVvbmcgbmh1IGNh YyANCmR1IGFuIG5oYSBvIHRhaSBkaW5oIGN1OyB0aW5oIHRyYW5nIHN1dCB0cnVvdCwgbHVuIG5l biB0cmVuIG1vdCBzbyBxdW9jIGxvLCBkdW9uZyBjYW8gdG9jLi4uIA0KDQpEYW5nIGxvIG5nYWks IHRoZW8gb25nIEh1bmcsIGNoaSB0cm9uZyB2YWkgdGhhbmcgY3VvaSBuYW0gbmF5LCBUUC5IQ00g bGllbiB0dWMgeGF5IHJhIA0KaGFuZyBjaHVjIHZ1IHN1dCBsdW4gbmVuIGR1b25nIGdheSB0YWkg bmFuIGNobyBuZ3VvaSBsdXUgdGhvbmcsIG1hIGR1IGx1YW4gZGEgcGhhaSBnb2kgDQpiYW5nIGN1 bSB0dSAiaG8gdHUgdGhhbiIuDQoNCk1vdCB0cm9uZyBuaHVuZyBjb25nIHRyaW5oIHZ1YSB0aG9u ZyB4ZSBkYSBib2MgbG8ga2hpZW0ga2h1eWV0IGxhIGR1b25nIGNhbyB0b2MgDQpUUC5IQ00gLSBU cnVuZyBMdW9uZyBsdW4gY2hpIHNhdSAyIHRoYW5nIHRob25nIHhlIHZhIG1vaSBkYXkgY29uIHh1 YXQgaGllbiBoYW5nIGxvYXQgDQpvIGdhIGdheSBuZ3V5IGhpZW0gY2hvIHhlIGNvLiBUaGVvIEJR TCBkdSBhbiBNeSBUaHVhbiAtIGNodSBkYXUgdHUsIHF1YW4gdHJhYyBjaG8gDQp0aGF5IGR1b25n IGNhbyB0b2MgdmFuIGRhbmcgdGllcCB0dWMgbHVuLiBPbmcgUGhhbiBQaHVuZyBTYW5oLCBQaG8g Y2h1IHRpY2ggdGh1b25nIA0KdHJ1YyBIb2kgS2hvYSBob2Mga3kgdGh1YXQgeGF5IGR1bmcgVFAu SENNLCBjaG8gcmFuZywgbmd1eWVuIG5oYW4gbGEgZG8gY29uZyB0YWMgDQpraGFvIHNhdCB2YSB4 dSBseSBuZW4gZGF0IHlldSB2YW4gY2h1YSBkdW9jIGRhbmggZ2lhIGR1bmcgbXVjLg0KVGhlbyBv bmcgU2FuaCwgdGluaCB0cmFuZyBlcCB0aWVuIGRvIGRlIHRob25nIHhlIG5nYXkgZGVwIChCYW8g VGhhbmggTmllbiBkYSBjbyBiYWkgDQpwaGFuIGFuaCksIGR1bmcgZGlwIGxlIGxhdCBjdW5nIGFu aCBodW9uZyBsb24gZGVuIGNoYXQgbHVvbmcgY29uZyB0cmluaC4NCg0KS2llbSB0cmEgY29uZyB0 cnVvYyBraGkgbmdoaWVtIHRodSANCg0KVGhhYyBzaSBEbyBUYW4gTG9uZywgVHJ1b25nIHBob25n IFF1YW4gbHkgaGUgdGhvbmcgdGhvYXQgbnVvYyBUcnVuZyB0YW0gZGlldSBoYW5oIA0KY2h1b25n IHRyaW5oIGNob25nIG5nYXAgbnVvYywgY2hvIGJpZXQsIGhpZW4gVFAgY28gaG9uIDEuNTAwIGtt IGNvbmcgdGhvYXQgbnVvYyBkdW9jIA0KeGF5IHR1IHRob2kgUGhhcCB2YSBwaGFuIGxvbiBkYSBo dSBob25nLCB4dW9uZyBjYXAgdHJhbSB0cm9uZy4gVGhlbyBvbmcgTG9uZywgZGUgaGFuIA0KY2hl IHRpbmggdHJhbmcgc3V0IGx1biB0YW8gImhvIHR1IHRoYW4iLCBjbyB0aGUgc3UgZHVuZyB0aGll dCBiaSBDQ1RWIChDbG9zZWQgQ29uZHVpdCANClRlbGV2aXNpb24pIGtoYW8gc2F0IGxvbmcgY29u Zy4gQ2FjIGNvbmcgbW9pIGN1bmcgY2FuIHVuZyBkdW5nIGNvbmcgbmdoZSBDQ1RWIHRyb25nIA0K bmdoaWVtIHRodS4gDQoNCiJSdXQga2luaCBuZ2hpZW0iIGxhIHhvbmc/DQoNClRoZW8gb25nIE5n dXllbiBWYW4gSGllcCwgUGhvIGdpYW0gZG9jIFNvIFhheSBkdW5nIFRQLkhDTSwgdHJvbmcga2hp IGNhYyBjb25nIA0KdHJpbmggdHUgbmhhbiBkdW9jIGdpYW0gc2F0IGNoYXQgY2hlIHZhIGl0IHhh eSByYSBzdSBjbywgdGhpIG5oaWV1IGR1IGFuIHN1IGR1bmcgdm9uIG5nYW4gDQpzYWNoIGhvYWMg T0RBIGxhaSB0aHVvbmcgeHV5ZW4geGF5IHJhIHN1IGNvIHZlIGNoYXQgbHVvbmcuIE5ndXllbiBu aGFuLCB0aGVvIG9uZyANCkhpZXAsIG5oaWV1IGNodSBkYXUgdHUgZGFpIGRpZW4gbmhhIG51b2Mg c3UgZHVuZyB0aWVuIGN1YSBkYW4gY29uIGhhbiBjaGUgdmUgbmFuZyBsdWMgDQp2YSBraGkgeGF5 IHJhIHN1IGNvIHRoaSB2YW4gZGUgeHUgbHkgdHJhY2ggbmhpZW0gY3VuZyBudW9uZyBuaGUsIGR1 IGRpLiAiTW9pIGtoaSB4YXkgcmEgDQpzdSBjbywgY2FjIGRvbiB2aSBsaWVuIHF1YW4gY2hpICJy dXQga2luaCBuZ2hpZW0iIHRoaSBsYW0gc2FvIGR1IHN1YyByYW4gZGU/Iiwgb25nIEhpZXAgDQpu aGFuIG1hbmguIA0KDQpNb3QgdGh1YyB0ZSBraGFjLCB0aGVvIG9uZyBIaWVwLCBoYXUgaGV0IHR1 IHZhbiBnaWFtIHNhdCB2YSBuaGEgdGhhdSBkZXUgY28gcXVhbiBoZSAiZGUgDQpjaGl1IiB2b2kg Y2h1IGRhdSB0dSwga2hvbmcgbG9haSB0cnUga2hhIG5hbmcgbGEgInNhbiBzYXUiIGN1YSBjaHUg ZGF1IHR1LiBDaGluaCBkaWV1IG5heSANCmtoaWVuIGNodSBkYXUgdHUgbHVuZyB0dW5nIGtoaSB4 dSBwaGF0IG5oYSB0aGF1IHZpIHBoYW0sIHZhIG5oaWV1IHRydW9uZyBob3AgZHVuZyB0dW5nIA0K Y2hvIGNhaSBzYWkgY3VhIG5oYSB0aGF1LCBrZW8gdGhlbyBjb25nIHRyaW5oIGNoYW0gdGllbiBk byB2YSBrZW0gY2hhdCBsdW9uZy4gIktob25nIA0KY2hpIGNodSBkYXUgdHUgbWEgbmFuZyBsdWMg Y3VhIHR1IHZhbiBnaWFtIHNhdCBjdW5nIGhhbiBjaGUuIFR1IHZhbiBrZW0gdGhpIGxhbSBzYW8g DQpjaG9uIGR1b2MgbmhhIHRoYXUgY28gbmFuZyBsdWMgdmEgZGFtIGJhbyBkdW9jIGNoYXQgbHVv bmcgY29uZyB0cmluaCIgLSBvbmcgSGllcCBub2kuDQoNCihBbmg6IE8gZ2EgdHJlbiBkdW9uZyBj YW8gdG9jIFRQLkhDTSAtIFRydW5nIEx1b25nIC0gQW5oOiBQLlQpIA0KDQo2IG5ndXllbiBuaGFu IGdheSByYSAiaG8gdHUgdGhhbiI6DQoNCi0gQ2FjIGNvbmcgdHJpbmggY2FwLCB0aG9hdCBudW9j LCBkaWVuIGx1YyB4dW9uZyBjYXAsIHJvIHJpLiANCg0KLSBWaWVjIHRoaSBjb25nIGNhYyBkdSBh biB0aG9hdCBudW9jIGtob25nIGRhbSBiYW8gY2hhdCBsdW9uZy4gDQoNCi0gQ29uZyB0YWMgcGhv aSBob3AgeHUgbHkgY29uZyB0cmluaCBoYSB0YW5nIGt5IHRodWF0IGdpdWEgY2FjIGRvbiB2aSBx dWFuIGx5IGNodXllbiBuZ2FuaCBjaGFtIHRyZSwga2hpZW4gbW9uZyBkdW9uZyBiaSBuZ2FtIG51 b2MgbGF1IGdheSBwaGEgaHV5IGtldCBjYXUuIA0KDQotIFRQIHRodW9uZyB4dXllbiBiaSBuZ2Fw IGdheSBodSBob25nIGtldCBjYXUgbWF0IGR1b25nLiANCg0KLSBUaW5oIHRyYW5nIHhlIHF1YSB0 YWkgZ2F5IGh1IGhvbmcga2V0IGNhdSBtYXQgZHVvbmcuIA0KDQotIE5oaWV1IGtodSB2dWMgZGlh IGNoYXQgeWV1LCB0cm9uZyBraGkgdmllYyBraGFpIHRoYWMgbnVvYyBuZ2FtIHRyYW4gbGFuIGto aWVuIGNvbmcgdHJpbmggbmdhbSBsdW4ga2hvbmcgZGV1LCBnYXkgc3VwLCBiZS4gDQooVGhlbyBv bmcgSGEgTmdvYyBUcnVvbmcsIFBobyBjaHUgdGljaCBIb2kgQ2F1IGR1b25nIGNhbmcgVFAuSENN KSANCg0KVHJvbmcga2hpIGRvLCBvbmcgSGEgTmdvYyBUcnVvbmcsIFBobyBjaHUgdGljaCBIb2kg Q2F1IGR1b25nIGNhbmcgVFAuSENNLCBjaG8gDQpyYW5nLCBzdSBjaG9uZyBjaGVvIHRyb25nIHBo YW4gY29uZywgcGhhbiBjYXAgcXVhbiBseSBjYWMgY29uZyB0cmluaCBnaWFvIHRob25nIHZhIGhh IA0KdGFuZyBreSB0aHVhdCBsYSBtb3QgdHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZ2F5IHJhIGhh bmcgbG9hdCBzdSBjbyB0aG9pIGdpYW4gcXVhLiANCkNoaW5oIHZpIHF1YSBuaGlldSBkYXUgbW9p IHF1YW4gbHkgdmEgdGhpIGNvbmcgZGEgZGFuIGRlbiB0aW5oIHRyYW5nICJjaGEgY2h1bmcga2hv bmcgDQphaSBraG9jIiwgcGhvaSBob3Aga2VtIGhpZXUgcXVhIHZhIGtoaSB4YXkgcmEgc3UgY28g dGhpIGtob25nICJjaGkgZGljaCBkYW5oIiBkdW9jIGRvbiB2aSBuYW8gZGUgcXV5IHRyYWNoIG5o aWVtLiANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvVmlldG5hbWVzZU5ld3Mvdmll dG5hbW5ld3MvMjctY2FzZXMtb2Ytc3Vic2lkZW5jZS13aXRoaW4tNC1tb250aHMtMTAyMzIwMTAx MTU2NDEuaHRtbCBSRkEgMjMuMTAuMjAxMA0KDQpUUCBIQ006IFRyb25nIHZvbmcgNCB0aGFuZyBj byAyNyB2dSBsdW4gc3V0IGR1b25nIHBobyB0YWkgVFAgSENNIA0KDQpUcm9uZyBjdW9jIGhvcCB0 aGFvIGx1YW4gdmUgY2FjIHZ1IHN1dCBsdW4gZHVvbmcgcGhvIGR1b2MgdG8gY2h1YyB2YW8gbmdh eSBob20gcXVhIA0KdGFpIHRoYW5oIHBobyBIQ00sIHNvIEdUVlQgY2hvIGJpZXQgY2hpIHRyb25n IHZvbmcgNCB0aGFuZyBkYSBjbyAyNyB2dSB4YXkgcmEgdHJlbiANCm5oaWV1IG5vaSB0cm9uZyB0 aGFuaCBwaG8uDQoNClRoZW8gYmFvIGNhbyBjdWEgY28gcXVhbiBodXUgdHJhY2ggdGhpIG5odW5n IHZ1IG5heSBkZXUgbmFtIHRyb25nIHRyYWNoIG5oaWVtIGN1YSBjYWMgDQpkb24gdmkgdGhpIGNv bmcgbmFuZyBjYXAgaGF5IGxhbSBtb2kgY2FjIGNvbiBkdW9uZyB0cm9uZyB0aGFuaCBwaG8gbmh1 bmcgdmFuIGtob25nIA0KY28gbW90IGJpZW4gcGhhcCBjaGUgdGFpIG5hbyBkb2kgdm9pIGNhYyBk b24gdmkgbmF5Lg0KDQpPbmcgTGUgSG9hbmcgUXVhbiwgQ2h1IHRpY2ggVUJORCB0aGFuaCBwaG8g ZGEgeWV1IGNhdSBjYWMgY28gcXVhbiwgc28gbmdhbmggbGllbiANCnF1YW4gZGVuIHhheSBkdW5n IHBoYWkgeGFjIGRpbmggY3UgdGhlIHRyYWNoIG5oaWVtIGN1YSBjYWMgY2h1IGRhdSB0dSwgaGF5 IG5oYSB0aGF1IGRlIA0KY28gYmllbiBwaGFwIGNoZSB0YWkuDQoNClRyb25nIG5oaWV1IHRoYW5n IHF1YSBjYWMgdnUgc3V0IGx1biBkdW9uZyBkYSBsYW0gbmhpZXUgdGFpIG5hbiBnaWFvIHRob25n IHhheSByYSwgeGUgbyANCnRvIGxpZW4gdHVjIGJpIGxhdCBnYXkgbG8gc28gY2hvIG5ndW9pIGRh biB0cm9uZyBraGFwIHRoYW5oIHBoby4gTmhpZXUgaG8gbG9uIGhvbiAzIG1ldCANCmR1b2MgZ29p IGxhIGhvIHR1IHRoYW4geHVhdCBoaWVuIGRvdCBuZ290IGtoaWVuIG5ndW9pIGRpIGR1b25nIGhl dCBzdWMgbG8gbmdhaSBjaG8gc3UgYW4gDQp0b2FuIGN1YSBiYW4gdGhhbiBoby4NCg0KS2hvbmcg cmllbmcgZ2kgdHJvbmcgcGhhbSB2aSB0aGFuaCBwaG8geHVhdCBoaWVuIGNhYyB2dSBzdXQgbHVu IGhheSBjYWMgaG8gZHVvYyBnb2kgbGEgDQpobyBkaWEgbmd1YywgbWEgbmhpZXUgY29uZyB0cmlu aCBsb24gY3VuZyBkYW5nIHh1YXQgaGllbiB0aW5oIHRyYW5nIHN1dCBsdW4gbmF5Lg0KDQpUaGVv IGJhbyBjYW8gY3VhIGJhbiBxdWFuIGx5IGR1IGFuIE15IFRodWFuIHRoaSB2aWVjIGx1biBuZW4g dHV5ZW4gZHVvbmcgVGFuIFRhby0NCkNobyBEZW0gZGFuZyBjbyBkYXUgaGlldSBzdXQgbHVuIG5n aGllbSB0cm9uZy4gVHV5ZW4gZHVvbmcgbmF5IHR1eSBkYSBkdW9jIGNhbmggYmFvIA0KbGEgY28g dGFuZyBkaWEgY2hhdCBwaHVjIHRhcCwgYmkgYW5oIGh1b25nIGN1YSBudW9jIG5nYW0gdmEgbGFt IHRybyBuZ2FpIGNhYyB0cmFjIA0KbmdoaWVtIHF1YW4gdHJhYyBuaHVuZyBjYWMgZ2lhaSBwaGFw IHh1IGx5IGtob25nIGhpZXUgcXVhIGRhIGRhbiBkZW4gc3V0IGx1biBraG9uZyB0aGUgDQpraWVt IHNvYXQuDQoNCkR1b25nIGNhbyB0b2MgVFAtSENNLVRydW5nIEx1b25nIGN1bmcga2hvbmcga2hh YyBtYXkuIERheSBsYSBkdW9uZyBjYW8gdG9jIGxvYWkgDQpBIGR1b2MgdGhpZXQga2UgY2hvIHBo ZXAgY2FjIGxvYWkgY2hheSB2b2kgdG9jIGRvIDEyMGttL2dpbywgY28gNCBsYW4geGUgbyB0byB2 YSAyIGxhbiANCmR1bmcgeGUga2hhbiBjYXAuIFR1eSBob2FuaCB0cmFuZyBsYSB0aGUgbmh1bmcg Y29uIGR1b25nIGNhbyB0b2MgbmF5IGRhbmcgeHVhdCBoaWVuIA0KbmhpZXUgY2hvIGx1biB0cmVu IG1hdCBkdW9uZyBraGllbiBuZ3VvaSBkYW4gcmF0IGxvIG5nYWkgdmEgY2h1IGRhdSB0dSBjdW5n IGNodWEgYmFvIA0KY2FvIHZpZWMgbmF5IHZvaSBjbyBxdWFuIGNodSBxdWFuLiBEdSBhbiBuYXkg a2hvaSBjb25nIHR1IG5hbSAyMDA0IHZhIHRoZW8gZHUga2llbiBzZSBob2FuIHRhdCB2YW8gbmFt IDIwMTEuIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTEvby10by1saWVuLXRp ZXAtc2EtaG8tdHUtdGhhbi1vLVRQSENNLTk0NTU4OC8gVGhhaSBQaHVvbmcgMTQ6NTQsIDAyLzEx LzIwMTAgKEdNVCs3KQ0KDQpUUCBIQ006IE8gdG8gbGllbiB0aWVwIHNhICJobyB0dSB0aGFuIiBv IFRQLkhDTQ0KDQotIERvbiB2aSB0aGkgY29uZyBkaSBkb2kgaG8gZ2EgdGhvYXQgbnVvYyB0YWkg bGFwIG1hdCBkdW9uZyBjYXUgdGhhIGRhIGxhbSAiaG8gdHUgdGhhbiIgDQp4dWF0IGhpZW4ga2hp ZW4gbmhpZXUgeGUgbyB0byBzYXAgImJheSIgdHJlbiBkdW9uZyBDYWNoIE1hY2ggVGhhbmcgVGFt LCBRLjMsIA0KVFAuSENNIG5nYXkgMi8xMS4gDQoNCiogRGVuIGx1b3QgU28gR1RWVCB0aG9haSB0 aGFjIHRyYWNoIG5oaWVtIHZ1ICJobyB0dSB0aGFuIg0KKiBLaGFjIHBodWMgkmhvIHR1IHRoYW6S IGRhdSBjbyBraG8gbmh1IGxlbiBNYXQgdHJhbmc/DQoNCkdoaSBuaGFuIGN1YSBQViBWaWV0TmFt TmV0LCAiaG8gdHUgdGhhbiIgcm9uZyBraG9hbmcgMW0sIHNhdSAxbSBkbyBtYXQgZHVvbmcgYmkg DQpzdXQgbHVuIHRhbyBoYW0gZWNoLiBWaSB0cmkgeHVhdCBoaWVuIGhvIHNhdSB0cnVvYyBsYSBo byBnYSB0aG9hdCBudW9jIHZ1YSBkdW9jIGRpIGRvaSANCmtob25nIGxhdS4NCg0KQmEgTmd1eWVu IFRoaSBNaW5oIE5nb2MsIGNodSBuaGEgc280NCwgZHVvbmcgQ2FjaCBNYW5nIFRoYW5nIFRhbSBr ZSBsYWksIGhvIHNhdSANCnh1YXQgaGllbiB0dSBjaGlldSB0b2kgMS8xMS4gTyB2aSB0cmkgbmFw IGhvIGdhIGN1IGNvIGhpZW4gdHVvbmcgc3V0IGx1biBtYXQgZHVvbmcgdGFvIGhvIA0Kc2F1LiBT YXUgZG8sIGxpZW4gdGllcCB4ZSB0YWkgcm9pIHhlIHRheGkgdGFwIHZhbyBsZSBkYXUsIGRvbiBr aGFjaCBkZXUgYmkgImxvdCIgYmFuaCB4ZSB2YW8gDQpobyBzYXUgbmF5LiANCg0KIlR1IHRvaSBo b20gcXVhIGRlbiBnaW8sIG5oaWV1IHhlIG8gdG8gZGEgYmkgc3VwIHh1b25nIGNhaSAiYmF5IiBu YXkuIFRoYXkgbmd1eSBoaWVtLCANCmNodW5nIHRvaSB0aW0gY2F5IGdvIGNhbSB4dW9uZyBobyBz YXUsIHRyZW8gdGhlbSBib2MgbmkgbG9uZyBkZSBjYW5oIGJhbyBuZ3VvaSBkaSANCmR1b25nLiBT YW5nIHJhIG1vaSB0aGF5IG5oYW4gdmllbiBjb25nIHR5IHRob2F0IG51b2MgZGVuIHh1IGx5Iiwg YmEgTmdvYyBjaG8gYmlldC4gDQoNCihBbmg6IEJlbiB0cm9uZyAiaG8gdHUgdGhhbiIgdmFuIGNv biBtaWVuZyBuYXAgaG8gZ2EgdGhvYXQgbnVvYyBjdS4pICANCg0KIlRhYyBnaWEiIGdheSByYSAi aG8gdHUgdGhhbiIgbGEgZG8gZG9uIHZpIHRoaSBjb25nIGRpIGRvaSBobyBnYSB0aG9hdCBudW9j IGN1IG5odW5nIHRhaSANCmxhcCBtYXQgZHVvbmcgYXUgZ2F5IGx1biBzdXQuIENodSBkYXUgdHUg Y29uZyB0cmluaCBkaSBkb2kgbmFwIGhvIGdhIHRyZW4gdHV5ZW4gZHVvbmcgDQpuYXkgbGEgVHJ1 bmcgdGFtIGNob25nIG5nYXAgVFAuIA0KDQpEZW4gdHJ1YSAyLzExLCBuaGFuIHZpZW4gQ29uZyB0 eSB0aG9hdCBudW9jIGRvIHRoaSBjaG8gbmd1b2kgZGVuIGtoYWMgcGh1YyBzdSBjbywgDQpUaGFu aCB0cmEgU28gR1RWVCB2YSBjYW4gYm8gc28gY3VuZyBkZW4gbGFwIGJpZW4gYmFuIHZ1IHZpZWMu IE1vdCB0aGFuaCB0cmEgc28gY2hvIA0KYmlldCBkYSB5ZXUgY2F1IGRvbiB2aSB0aGkgY29uZyB0 YWkgbGFwIGRhbSBiYW8gYW4gdG9hbiBnaWFvIHRob25nIGNobyBuZ3VvaSBkaSBkdW9uZy4gDQoN CihBbmg6IFRydWEgMi8xMSwgY29uZyBuaGFuIGNvbmcgdHkgdGhvYXQgbnVvYyBkbyB0aGkgZGEg ZGVuIHh1IGx5LCBraGFjIHBodWMgc3UgY28uKSAgDQoNCkRheSBsYSAiaG8gdHUgdGhhbiIgdGh1 IDMzIHh1YXQgaGllbiB0cmVuIGR1b25nIHBobyBTYWkgR29uIGtlIHR1IGRhdSB0aGFuZyA3IGRl biBuYXkuIA0KSGFuZyBsb2F0IGJpZW4gcGhhcCBtYW5oIHRheSBkdW9jIFVCTkQgVFAsIFNvIEdU VlQgY3VuZyBjYWMgZG9uIHZpIGxpZW4gcXVhbiBhcCANCmR1bmcgbmh1bmcgc28gbHVvbmcgY2Fj IHZ1IHN1dCBsdW4gbWF0IGR1b25nLCB0YW8gImhvIHR1IHRoYW4iIHZhbiB0YW5nIGxlbiB0dW5n IG5nYXkuIA0KDQpodHRwOi8vdm92bmV3cy52bi9Ib21lL1RQLUhDTS14dWF0LWhpZW4taG8tdHUt dGhhbi10aHUtMzcvMjAxMDExLzE2MDY5My52b3YgVGhlbyBUVFhWTiA1OjQ3IFBNLCAxNi8xMS8y MDEwDQoNClRQIEhDTTogWHVhdCBoaWVuIGhvICJ0dSB0aGFuIiB0aHUgMzcgLSBWYW4gY2h1YSBj byBxdWFuIGNodWMgbmFvIGJpIGt5IGx1YXQgDQoNClZhbyBraG9hbmcgOGgzMCBuZ2F5IDE2LzEx LCB0cmVuIHR1eWVuIGR1b25nIERpZW4gQmllbiBQaHUsIHRydW9jIHNvIG5oYSA0NzggdGh1b2Mg DQpwaHVvbmcgMywgcXVhbiAzICh0aGFuaCBwaG8gSG8gQ2hpIE1pbmgpIGRhIHh1YXQgaGllbiBz dSBjbyBzdXQgbHVuIG1hdCBkdW9uZy4NCg0KKiBUUCBIQ00geHVhdCBoaWVuICJobyB0dSB0aGFu IiB0aHUgMzQNCiogIkhvIHR1IHRoYW4iIHZhIG5odW5nIHRhYyB0cmFjaCB0cm9uZyBxdWFuIGx5 IGR1b25nIHhhDQoNCkRheSBsYSBzdSBjbyBzdXAgbHVuIG1hdCBkdW9uZyB0aHUgMzcgeHVhdCBo aWVuIHRyZW4gZGlhIGJhbiBUUCBIQ00gdHJvbmcgdGhvaSBnaWFuIHF1YS4NCg0KVGFpIGhpZW4g dHJ1b25nLCBtb3QgbWllbmcgaG8gcm9uZyBnYW4gODAgY20sIHNhdSBob24gNjAgY20sIGJlbiB0 cm9uZyBobyB4dWF0IGhpZW4gDQpoYW0gZWNoIHJvbmcgaG9uIDFtLCBhbiBzYXUgdmFvIHRyb25n IGtodSB2dWMgdmlhIGhlIHRyZW4gZHVvbmcgRGllbiBCaWVuIFBodSB2YSBjbyANCm5ndXkgY28g c3VwIGx1biBiYXQgY3UgbHVjIG5hby4gDQoNCkRhYyBiaWV0LCBwaGlhIHRyb25nIGhhbSBlY2gg eHVhdCBoaWVuIHJhdCBuaGlldSByYWMgdmEgbW90IHNvIGJhbyBjYXQgbG9uIGRvIHRydW9jIGRh eSANCmR1b2Mgc3UgZHVuZyBkZSB0aGkgY29uZyBoZSB0aG9uZyB0aG9hdCBudW9jLiANCg0KVGhl byBwaGFuIGFuaCBjdWEgbmd1b2kgZGFuLCBoaWVuIHR1b25nIHN1cCBsdW4gdHJlbiBkdW9uZyBE aWVuIEJpZW4gUGh1IGRhIHh1YXQgaGllbiANCnR1IHRvaSBob20gdHJ1b2Mgbmh1bmcgZGVuIHNh bmcgaG9tIHNhdSBkbyBsdW9uZyB4ZSBxdWEgbGFpIGxvbiwgbmFtIG5nYXkgbmdhIGJhIGdpYW8g DQpsbyBCaWVuIEJpZW4gUGh1LSBCYW4gQ28gbmVuIG1pZW5nIGhvIGJhdCBkYXUgbW8gcm9uZy4g IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDQvMjAxMDEw MjgwMDE1MTIuYXNweCBEaW5oIE11b2kgMjgvMTAvMjAxMCAwOjE1IA0KDQpUUCBIQ006IFN1cCBs dW4gbWF0IGR1b25nIHNlIGNvbiB0aWVwIGRpZW4gLSBOZ3VvaSBkYW4gdGllcCB0dWMgZG9pIG1h dCB2b2kgbmd1eSBoaWVtIA0KDQpEbyBsYSBjYW5oIGJhbyBjdWEgbmd1b2kgZHVuZyBkYXUgbmdh bmggZ2lhbyB0aG9uZyB2YW4gdGFpIChHVFZUKSBUUC5IQ00gLSBvbmcgDQpUcmFuIFF1YW5nIFBo dW9uZy4gU28gR1RWVCBjdW5nIHZ1YSBiYW8gY2FvIGtoYW4gY2FwIGxlbiBWYW4gcGhvbmcgQ2hp bmggcGh1LCANCkJvIEdUVlQgdmEgbmhpZXUgY28gcXVhbiBraGFjIHZlIHRpbmggaGluaCBzdSBj byBnaWFvIHRob25nIHRyZW4gZGlhIGJhbiBUUC5IQ00uICANCg0KKEFuaDogTWF0IGR1b25nIGJp IHN1cCBsdW4gdGFpIGdpYW8gbG8gSGFpIEJhIFRydW5nIC0gVm8gVGhpIFNhdSwgUS4xLCBoYXUg cXVhIHR1IHZpZWMgDQp0aGkgY29uZyBkdSBhbiBWZSBzaW5oIG1vaSB0cnVvbmcgLSBBbmg6IEQu TXVvaSkNCg0KTGFuaCBkYW8gU28gR1RWVCBjaG8gYmlldCB0dSBkYXUgbmFtIDIwMTAgZGVuIG5h eSBTbyBkYSBjbyBnYW4gMTAwIHZhbiBiYW4gZ3VpIGNhYyANCmNvIHF1YW4sIGRvbiB2aSBjbyBs aWVuIHF1YW4sIGNodSBkYXUgdHUsIGJhbiBxdWFuIGx5IGR1IGFuIGRlIGNoYW4gY2hpbmggdGlu aCBoaW5oIHRoaSANCmNvbmcgbmhhbSBkYW0gYmFvIGFuIHRvYW4gZ2lhbyB0aG9uZy4gTmdvYWkg cmEsIGNvbiBjbyBuaGlldSB2YW4gYmFuIG5oYWMgbmhvIGN1IHRoZSANCnR1bmcgY2h1IGRhdSB0 dSwgYmFuIHF1YW4gbHkgZHUgYW4sIGNhYyBkb24gdmkgbGllbiBxdWFuIGRlIGtoYWMgcGh1YyBu aHVuZyBodSBob25nLCANCmx1biBzdXAgbWF0IGR1b25nLi4uIE5odW5nIGtldCBxdWEgbGEgc28g dnUgc3VwIGx1biwgdGFpIG5hbiBraG9uZyBuaHVuZyBnaWFtIG1hIGNvbiANCmdpYSB0YW5nIGNo b25nIG1hdC4gDQoNClRoYW5oIHRyYSBnaWFvIHRob25nIGJpICJ0cm9pIHRheSIgDQoNClZlIHZh biBkZSBuYXksIG9uZyBUcmFuIEhvbmcgTmFtLCBQaG8gY2hhbmggdGhhbmggdHJhIFNvIEdUVlQg dGhhbiBwaGllbiwga2hvIGtoYW4gDQpsb24gbmhhdCB0cm9uZyBjb25nIHRhYyBxdWFuIGx5IGhh IHRhbmcgaGllbiBuYXkgbGEgZG8gbW90IHNvIHF1eSBkaW5oIHRyb25nIE5naGkgZGluaCANCjIz IGN1YSBDaGluaCBwaHUgdmUgInh1IHBoYXQgdmkgcGhhbSBoYW5oIGNoaW5oIHRyb25nIGhvYXQg ZG9uZyB4YXkgZHVuZzsga2luaCBkb2FuaCANCmJhdCBkb25nIHNhbi4uLiIga2hvbmcgcXV5IGRp bmggdGhhbSBxdXllbiB4dSBseSB2aSBwaGFtIGhhbmggY2hpbmggY3VhIGNhYyBjbyBxdWFuIA0K dGhhbmggdHJhIGNodXllbiBuZ2FuaCBraGFjIG1hIGNoaSBxdXkgZGluaCB0aGFtIHF1eWVuIHh1 IHBoYXQgY3VhIFRoYW5oIHRyYSBYYXkgDQpkdW5nIHZhIFVCTkQgY2FjIGNhcC4gRG8gZG8sIGtl IHR1IG5nYXkgMS41LjIwMDksIG5nYXkgTmdoaSBkaW5oIDIzIGNvIGhpZXUgbHVjIGRlbiBuYXks IA0KbHVjIGx1b25nIHRoYW5oIHRyYSBjaHV5ZW4gbmdhbmggR1RWVCBjdWEgVFAga2hvbmcgY28g dGhhbSBxdXllbiBjaGUgdGFpIGRvaSANCnZvaSBjYWMgdmkgcGhhbSBoYW5oIGNoaW5oIGhvYXQg ZG9uZyB4YXkgZHVuZyBuaHUgdGhpIGNvbmcgY29uZyB0cmluaCBjYXUsIGR1b25nIGJvIA0Ka2hv bmcgZGFtIGJhbyB0aWV1IGNodWFuIGt5IHRodWF0OyB0YWkgbGFwIG1hdCBkdW9uZyBraG9uZyBk YW0gYmFvIGtldCBjYXU7IGtob25nIA0KdGh1YyBoaWVuIGR1eSB0dSwgYmFvIGR1b25nLCBzdWEg Y2h1YSBjb25nIHRyaW5oIGNhdSwgZHVvbmcgYm8gdGhlbyB0cmFjaCBuaGllbSBkdW9jIA0KZ2lh by4uLiAiTmdoaSBkaW5oIDIzIGRhIHRyb2kgdGF5IHRoYW5oIHRyYSBHVFZUIiwgb25nIE5hbSBu b2kuIA0KDQpPbmcgVHJhbiBRdWFuZyBQaHVvbmcgY3VuZyBjaG8gcmFuZywgcXV5IGRpbmggbmF5 IGRhIGdheSBraG8ga2hhbiByYXQgbG9uIHRyb25nIA0KY29uZyB0YWMgYmFvIHZlLCBraWVtIHRy YSwga2llbSBzb2F0IGNhYyBjb25nIHRyaW5oIGdpYW8gdGhvbmcgY3VhIFNvIHRyZW4gZGlhIGJh biBUUC4gDQpPbmcgUGh1b25nIGN1bmcgdGhhbmcgdGhhbiBkdSBiYW8gcmFuZyB0dSBuYXkgZGVu IGhldCBtdWEgbXVhIDIwMTAsIHRpbmggaGluaCBsdW4gDQpzdXAgbWF0IGR1b25nIHRyZW4gZGlh IGJhbiBUUCBzZSB2YW4gY29uIHRpZXAgdHVjIHhheSByYSBkbyBjaGF0IGx1b25nIGN1YSBtb3Qg c28gY29uZyANCnRyaW5oIG5nYW0gaGV0IHN1YyBwaHVjIHRhcCwgbmhhdCBsYSBoZSB0aG9uZyBj b25nIHRob2F0IG51b2MgY3UgdmEgb25nIGNhcCBudW9jIGhpZW4gDQpodXUuIEhpZW4gbmF5IGNh YyBjb25nIHRyaW5oIGhhIHRhbmcga3kgdGh1YXQgdGFpIFRQIGNvbiBuaGlldSBiYXQgY2FwLCBj byBxdWFuIHF1YW4gbHkgDQp2YW4gY2h1YSBraWVtIHNvYXQgZHVvYyBjaGF0IGx1b25nIGN1YSBo ZSB0aG9uZy4gQmVuIGNhbmggZG8sIGRvIFRQIGNodWEgY28gcXV5IA0KaG9hY2ggYm8gdHJpIHZp IHRyaSBjYWMgY29uZyB0cmluaCBuZ2FtIGRhIGdheSByYXQgbmhpZXUga2hvIGtoYW4gdHJvbmcg Y29uZyB0YWMgcXVhbiBseS4gDQpWaSB2YXksIE5oYSBudW9jIGNhbiBzb20gYmFuIGhhbmggdmEg cXV5IGRpbmggaGFvIGt5IHRodWF0IGNodW5nIGNobyBjYWMgY29uZyB0cmluaCANCm5nYW0sIGNv IG5odSB2YXkgbW9pIGNvIGNvIHNvIHh1IGx5IHN1IGNvIHZhIHhhYyBkaW5oIHRyYWNoIG5oaWVt IHJvIHJhbmcsIHRyYW5oIGhpZW4gDQp0dW9uZyBjbyBxdWEgbmhpZXUgcGh1aSBkYW8gY29uZyB0 cmluaCBuZ2FtIHRyZW4gbW90IG1hdCBjYXQgbmdhbmcgZHVvbmcuIA0KDQozOTYgZG9uIHZpIGNv biBubyB0aWVuIHBoYXQNCg0KU28gR1RWVCBjaG8gYmlldCwgdHJvbmcgMTAgdGhhbmcgZGF1IG5h bSAyMDEwLCBUaGFuaCB0cmEgR1RWVCBkYSB4dSBwaGF0IDg2MSANCnRydW9uZyBob3AgdmkgcGhh bSB0cm9uZyB0aGkgY29uZyBkdW9uZyBibyB2b2kgc28gdGllbiBnYW4gMyw3IHRpIGRvbmcuIFR1 eSBuaGllbiwgaGllbiANCm5heSBjb24gMzk2IGRvbiB2aSB0aGkgY29uZyBiaSBwaGF0IHZhbiBj aHVhIGNoYXAgaGFuaCBxdXlldCBkaW5oIHh1IHBoYXQsIHZvaSB0b25nIHNvIA0KdGllbiB0cmVu IDgsNSB0aSBkb25nLiBEZSBjaGFuIGNoaW5oLCBrZSB0dSBuYXksIFNvIEdUVlQga2hvbmcgY2Fw IHBoZXAgdGhpIGNvbmcsIGhvYWMgDQpnaWEgaGFuIGdpYXkgcGhlcCBkb2kgdm9pIGNhYyBkb24g dmkgY2h1YSBraGFjIHBodWMgdmkgcGhhbSB2YSBjaHVhIG5vcCBwaGF0LiANCg0KUGhhaSBjaGl1 IHRyYWNoIG5oaWVtIGhpbmggc3UgIA0KDQpUcm8gbGFpIHZvaSBjYWMgc3UgY28gdGhvaSBnaWFu IHF1YSwgbmdheSAyNi4xMCwgR2lhbSBkb2MgU28gR1RWVCBkYSB5ZXUgY2F1IGNhYyBkb24gDQp2 aSBxdWFuIGx5IGNvbmcgdHJpbmggaGEgdGFuZyBreSB0aHVhdCBuaGFuaCBjaG9uZyB0cmllbiBr aGFpIG5oaWV1IGJpZW4gcGhhcCBraWVtIHRyYSwgDQp4dSBseSBuaHVuZyBjb25nIHRyaW5oIGFu aCBodW9uZyBkZW4gdHJhdCB0dSBhbiB0b2FuIGdpYW8gdGhvbmcuIA0KVHJvbmcgZG8sIENodSB0 aWNoIFVCTkQgcXVhbiAtIGh1eWVuIHBoYWkgY2hpIGRhbyBsdWMgbHVvbmcgVGhhbmggdHJhIFhh eSBkdW5nIGtpZW0gDQp0cmEgdG9hbiBibyB2aWEgaGUgZHVvYyBwaGFuIGNhcCBxdWFuIGx5LCBz dWEgY2h1YSBuZ2F5IHZpZWMgaGFtIGdhIHRoYXAgaG9uIGhvYWMgY2FvIA0KaG9uIHZpYSBoZSwg eHUgbHkgdmllYyBuZ3VvaSBkYW4gdHUgeSB2dW90IG5vaSB2aWEgaGUgZ2F5IGFuaCBodW9uZyBk ZW4gaGUgdGhvbmcgdGhvYXQgDQpudW9jIHZhIGdheSBtYXQgYW4gdG9hbiBnaWFvIHRob25nLiBD aHUgdGljaCBVQk5EIHF1YW4gLSBodXllbiBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gDQp0cnVvYyBD aHUgdGljaCBVQk5EIFRQIG5ldSBkZSB4YXkgcmEgc3UgY28gdHJlbiBjYWMgdHV5ZW4gZHVvbmcs IHZpYSBoZSBkdW9jIHBoYW4gY2FwIA0KcXVhbiBseS4gQ2FjIGJhbiBxdWFuIGx5LCBjaHUgZGF1 IHR1IGtoYW4gdHJ1b25nIHRvIGNodWMga2llbSB0cmEsIHJhIHNvYXQgdG9hbiBibyBoZSANCnRo b25nIHBodWkgZGFvLCB4dSBseSBuZ2F5IG5odW5nIHZpIHRyaSBjbyBuZ3V5IGNvIGx1biBzdXAg dHJlbiBkdW9uZy4gRGFjIGJpZXQsIGJhbiANCnF1YW4gbHksIGNodSBkYXUgdHUgcGhhaSBjaGl1 IHRyYWNoIG5oaWVtIGRlbiBidSBtb2kgdGhpZXQgaGFpIGNobyBjYWMgYmVuIGxpZW4gcXVhbiB2 YSANCmNoaSBwaGkga2hhYyBwaHVjIGRlIHRyYSBsYWkgbmd1eWVuIHRyYW5nIGNobyBuaHVuZyBj b25nIHRyaW5oIGR1b25nIGJvOyBuZXUgZ2F5IHJhIHN1IA0KY28gbmdoaWVtIHRyb25nIGhvYWMg dGFpIG5hbiBnaWFvIHRob25nIGNoZXQgbmd1b2kgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIGhpbmgg c3UuIA0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMTAvM0JBMjFF NjUvIFRhIExhbSAyOC8xMC8yMDEwLCAwNzowMCBHTVQrNw0KDQonTmV1IGxhIENodSB0aWNoIFRQ IEhDTSB0b2kgc2UgY2hpdSB0cmFjaCBuaGllbSB2ZSBobyB0dSB0aGFuJw0KDQpPbmcgTGUgSGll dSBEYW5nLCBQaG8gY2h1IG5oaWVtIEhvaSBkb25nIHR1IHZhbiB2ZSBkYW4gY2h1IHZhIHBoYXAg bHVhdCB0aHVvYyBVeSANCmJhbiBUcnVuZyB1b25nIE1UVFEgVk4gY2hvIHJhbmcsIGRlIHh1YXQg aGllbiBoYW5nIGxvYXQgImhvIHR1IHRoYW4iIHRob2kgZ2lhbiBnYW4gDQpkYXkgdHJhY2ggbmhp ZW0gdGh1b2MgdmUgVUJORCB2YSBTbyBHaWFvIHRob25nIFRQIEhDTS4NCg0KKiAnSG8gdHUgdGhh bicgc3V5dCBjaHVuZyBudW90IG90byBnaXVhIFNhaSBHb24gDQoqICdIbyB0dSB0aGFuJyBvIFRQ IEhDTSBuaHUgbmFtIHNhdSBtdWEgDQoNClRoZW8gb25nIERhbmcsIHRydW9jIGRheSwgZHVvbmcg c2Ega2hvbmcgeHVhdCBoaWVuICJobyB0dSB0aGFuIiwgbmdhcCBudW9jLCBrZXQgeGUsIGxvIA0K Y290LiBCYXkgZ2lvIG5oaWV1IGR1IGFuLCBxdXkgaG9hY2gsIHRhaSBsYXAgbWF0IGR1b25nIGR1 b2MgdHJpZW4ga2hhaSB2b2kgaHkgdm9uZyBraGkgDQpob2FuIHRoYW5oIG5odW5nIGNvbmcgdHJp bmggbG9uLCBuZ3VvaSBkYW4gdGhhbmggcGhvIHNlIHRodSBodW9uZyB0aGFuaCBxdWEgZG8uIE5o dW5nIA0KcmF0IHRpZWMsIGNhbmcgc3VhIGNhbmcgdG9pIHRlIGhvbi4NCg0KT25nIERhbmcgbmhh biBtYW5oLCBraG9uZyBwaGFpIGJheSBnaW8gY28gbmd1b2kgY2hldCBtb2kgIm1heSBtbyIgcXV5 IHRyYWNoIG5oaWVtIA0KY2hvIGFpPyBNYSBjYWNoIGRheSAyLTMgbmFtLCBvIHF1YW4gNyBjdW5n IGNvIG1vdCBlbSBiZSBsb3QgaG8gdmkga2hvbmcgY28gYmllbiBjYW0gDQpuaHVuZyBraG9uZyB0 aGF5IGFpIGR1bmcgcmEgY2hpdSB0cmFjaCBuaGllbS4gIk5ldSBsdWMgZG8gbWEgcXV5IHJvIHRy YWNoIG5oaWVtIGNobyBhaSANCmRlIGtob2kgdG8gdGhpIGhlIHF1YSBzZSBraG9uZyBuaHUgaGll biBuYXkiLCBvbmcgRGFuZyBub2kuDQoNClZlIHRyYWNoIG5oaWVtIGN1IHRoZSBraGkgZGUgeGF5 IHJhIG5odW5nICJobyB0dSB0aGFuIiwgb25nIERhbmcgY2hvIHJhbmcgdGh1b2MgdmUgDQpVQk5E IHZhIFNvIEdUVlQgVFAsIHZpIGRheSBsYSBoYWkgY28gcXVhbiBjb25nIHF1eWVuIGNhbyBuaGF0 IGRlIHF1YW4gbHkgZG8gdGhpLiANCiJUaGVvIHRvaSwgY2h1bmcgdGEgeHUgbHkga2hvbmcgbmdo aWVtIGtoYWMsIGJhbyBjaGUgY2hvIG5oYXUuIFRoaSBjb25nIHZhIGdpYW0gc2F0IA0KbW9jIG5n b2FjIHZvaSBuaGF1LiBEbyBkbyBobyBraG9uZyBzbyBiaSB0cnV5IGN1dSB0cmFjaCBuaGllbSBu ZW4gaG8gdmFuIHRpZXAgdHVjIA0KbGFtIiwgb25nIERhbmcgbm9pIHRoZW0uDQoNCihBbmg6IE5n YXkgc2F1IGtodSBzdSB2aWVjIHhheSByYSBkb24gdmkgdGhpIGNvbmcgY28gbWF0IHRpZW4gaGFu aCBraGFjIHBodWMgc3UgY28uIEFuaDogQW4gTmhvbi4pIA0KDQpDdW5nIHRoZW8gdmkgcGhvIGNo dSBuaGllbSwgdHJvbmcgdnUgY2hpIEhhIFRoaSBUdXlldCBNYWkgdmEgcXVldCBuYXAgaG8gZ2Eg bG9pIHJhLCByb2kgDQpyYSBkdW9uZyBiaSB4ZSB0YWkgY2FuIGNoZXQsIENodSB0aWNoIFVCTkQg cXVhbiBUaHUgRHVjIGNvIG5vaTogIm5ldSBraG9uZyBhaSBjaGl1IA0KdHJhY2ggbmhpZW0gdHJ1 b2MgY2FpIGNoZXQgb2FuIHVvbmcgY3VhIGNoaSBNYWkgdGhpIHRvaSB4aW4gY2hpdSIuICJUcnVv YyBjYXUgbm9pIGRvLCANCmtob25nIGJpZXQgVUJORCB0aGFuaCBwaG8gY28gdGhheSB4YXUgaG8g a2hvbmc/IFRvaSBjaG8gcmFuZyBVeSBiYW4gcGhhaSBjaGl1IHRyYWNoIA0KbmhpZW0gdHJ1b2Mu IE5ldSB0b2kgbGEgQ2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gdG9pIHNlIGR1bmcgcmEgY2hpdSB0 cmFjaCBuaGllbSIsIG9uZyANCkRhbmcgcGhhdCBiaWV1Lg0KDQpPbmcgRGFuZyBjdW5nIGNobyBo YXkgc2Uga2llbiBuZ2hpIGxlbiBVQk5EIFRQIG5lbiBsYW0gcm8gdHJhY2ggbmhpZW0gbW90IHZ1 IGRpZW4gDQpoaW5oIGRlIHJhbiBkZSB2ZSBzYXUuIER1YSByYSB2aSBkdSBvIGR1b25nIE5ndXll biBLaWVtICJjb24gZHVvbmcgdGUgaGFpIG5oYXQiLCBvbmcgDQpEYW5nIGNobyByYW5nLCBVQk5E IHZhIFNvIHBoYWkgeHVvbmcga2llbSB0cmEgeGVtIHNhdSBraGkgdGhpIGNvbmcgdGFpIGxhcCBt YXQgYmFuZyANCmNobyBjb24gZHVvbmcgbmF5LCBjaHUgZGF1IHR1IGNvIGxhbSBkdW5nIG5odSB0 cm9uZyBob3AgZG9uZyB2YSBjbyB0cmEgbGFpIGhpZW4gdHJhbmcgDQptYXQgZHVvbmcgbmh1IGJh biBkYXUga2hvbmc/ICJOZXUgYW5oIGxhbSBkb2kgdHJhLCBwaGFpIGJhdCBhbmggbGFtIGxhaS4g TmV1IGtob25nIA0KYnVvYyBuaGEgdGhhdSB2YSBiZW4gdGhpIGNvbmcgY2hpdSB0cmFjaCBuaGll bSB0aGkga2hvbmcgdGhlIGxhbSBndW9uZyBjaG8gbmd1b2kga2hhYyANCmR1b2MuIFRyb25nIHZp ZWMgbmF5LCB0aGFpIGRvIGN1YSBVQk5EIFRQIGtob25nIGN1b25nIHF1eWV0IHh1IGx5LCBiYXQg bHVjIi4NCg0KIlZvaSB0dSBjYWNoIGxhIFBobyBDaHUgbmhpZW0gSG9pIGRvbmcgdHUgdmFuIHZl IGRhbiBjaHUgdmEgcGhhcCBsdWF0LCB0b2kgc2UgZGF1IHRyYW5oIA0KZGVuIGN1bmcgZG9pIHF1 eWVuIGxvaSBjaG8gZGFuIiwgb25nIERhbmcgYmF5IHRvIHRoYWkgZG8gYnVjIHh1Yy4NCk9uZyBu aGFuIG1hbmgsIG5ldSBuZ3VvaSBkYW4gZ2FwIHBoYWkgc3UgY28gdmUgZ2lhbyB0aG9uZyBjbyB0 aGUgbGllbiBoZSB2b2kgbHVhdCBzdSANCm1hbmggZGFuIGR1bmcgcmEga2hvaSBraWVuIGRvaSBx dXllbiBsb2kgY2hvIG1pbmguIFZpIGR1IG5odSBvbmcgTmd1eWVuIFZhbiBMYW5nIA0KKDc5IHR1 b2ksIHF1YW4gMSwgVFAgSENNKSBkYSBkdW5nIGxlbiBraG9pIGtpZW4gU28gR1RWVCB2aSAibG8g Y290IiBkdW5nIHRydW9jIG5oYSANCm9uZyBob24gMiBuYW0gcm9uZyByYSBsYW0gdGhhdCB0aHUg dmUga2luaCBkb2FuaC4NCg0KVHJhIGxvaSB2ZSBiaWVuIHBoYXAgZ2lhaSBxdXlldCB0aW5oIHRy YW5nIG5heSwgb25nIGNobyByYW5nLCBjYWNoIHRvdCBuaGF0IGxhIFVCTkQgVFAgDQpwaGFpIHRv IGNodWMgZG9hbiBraWVtIHRyYSBuaHVuZyBjb25nIHRyaW5oIHRyZW4gZGlhIGJhbi4gTmh1bmcg Y29uIGR1b25nIHRvaSB0ZSB0aGkgDQpwaGFpIHRoYW5oIHRyYSBraWVtIHRyYSB0cnVvYywgbmV1 IHRoYXkgY28gc3UgY28gdGhpIGJhdCBuaGEgdGhhdSBsYW0gbGFpIGhvYW4gdG9hbi4NCg0KVmUg cGhpYSBIRE5EIFRQIEhDTSwgZGFpIGJpZXUgUGhhbSBNaW5oIFRyaSBjaG8gYmlldDogIkx1YyBu YXkga2hvbmcgY2hvIHBoZXAgDQpkdW4gZGF5IHRyYWNoIG5oaWVtIGNobyBhaSBjYS4gQ2hpbmgg cXV5ZW4gdGhhbmggcGhvIGNhbiB4ZW0geGV0IG5naGllbSB0dWMgZGUgZ2lhaSANCnF1eWV0IG5o YW5oIG5oYXQgdGluaCBoaW5oIHRvaSB0ZSBoaWVuIG5heSIuDQoNClR1eSBuaGllbiBvbmcgVHJp IGN1bmcgY2hvIHJhbmcsIGRlIHhheSByYSBuaHVuZyAiaG8gdHUgdGhhbiIgbmh1IHZ1YSBxdWEs IHRyYWNoIG5oaWVtIA0KZGEgcm8gcmFuZyB0aHVvYyB2ZSBuZ3VvaSB0aGkgY29uZy4gSG8gbGFt IHF1YSBhdSwgcXVhIGNhdSB0aGEuDQoNCiJUaGVvIHRvaSwgdHJ1b2MgaGV0IHBoYWkgZGFuaCBn aWEga2h1eWV0IGRpZW0sIGhhdSBxdWEgY3VhIHRpbmggdHJhbmcgdGhpIGNvbmcgYXUgZGFuIA0K ZGVuIGNoYXQgbHVvbmcgZHVvbmcgc2Ega2VtLiBEYXkgbGEgdGhpZXUgc290IG5naGllbSB0cm9u ZyBjYW4ga2hhYyBwaHVjIG5nYXkiLCBvbmcgDQpUcmkgY2hvIGJpZXQuDQoNCkNvbiBvbmcgbmdo aSBEYW5nIFZhbiBLaG9hIHRoaSBjaG8gcmFuZywgdmFpIHRybyBjdWEgSERORCBjYW4gZ2lhbSBz YXQgY2hhdCBjaGUgaG9uIA0KY29uZyB2aWVjIGN1YSBVQk5EIGtob25nIGRlIG5odW5nIHRpbmgg dHJhbmcgbmF5IGN1IHRpZXAgZGllbiBtYWkuDQoNCiJUcmFjaCBuaGllbSB0cnVjIHRpZXAgbyBk b24gdmkgdGhpIGNvbmcsIGdpYW0gc2F0IHZhIGNodSBkYXUgdHUiLCBvbmcgS2hvYSBuaGFuIG1h bmggDQp2YSBjaG8gcmFuZywgcGhhaSBsYW0gcm8gbmh1bmcgZG9uIHZpIG5heSBsYSBhaSBraGkg ZGUgbmh1bmcgImhvIHR1IHRoYW4iIGdheSB0YWkgbmFuIHhheSANCnJhLg0KDQpDYSBuaGFuIG9u ZyBjdW5nIHR1IG5oYW4gdGhpZXUgc290IHZhIHRyYWNoIG5oaWVtIGxhbSB2aWVjIGtob25nIGhp ZXUgcXVhLCBraG9uZyBsYW0gDQp0cm9uIG5oaWVtIHZ1IG1hIGN1IHRyaSB0aW4gdHVvbmcgZ2lh byBwaG8uIE9uZyBLaG9hIGNobyBiaWV0LCBjYWNoIGRheSA1LTcgbmFtIHZlIA0KdHJ1b2MsIG9u ZyBkYSBwaGFuIGFuaCB2ZSB0aW5oIHRyYW5nIGR1b25nIHNhIHh1b25nIGNhcCwgdGhpIGNvbmcg YXUsIG5odW5nICJsb2kgbm9pIGN1YSANCnRvaSBraG9uZyBjbyBoaWV1IHF1YSIuDQoNCiJIYW5n IGxvYXQgdGFpIG5hbiB4YXkgcmEsIG5odW5nIGNhaSBjaGV0IHRodW9uZyB0YW0gZG8gY2FjIGNv bmcgdHJpbmggdGhpIGNvbmcgYXUgZGEgDQpsYW0gbmd1b2kgZGFuIHZvIGN1bmcgYnVjIHh1Yy4g RGlldSBkbyBjaG8gdGhheSBjaGF0IGx1b25nIGFuIHNpbmggeGEgaG9pLCBjaGF0IGx1b25nIA0K Y3VvYyBzb25nIGN1YSBuZ3VvaSBkYW4ga2hvbmcgZGFtIGJhbywgY2FuIHBoYWkgY28gbW90IHRv IGNodWMsIGNvIHF1YW4gZHVuZyByYSBuaGFuIA0KdHJhY2ggbmhpZW0gbmF5Iiwgb25nIEtob2Eg YnVjIHh1YyB0cm9uZyBraGkgdGhpIHNhdCBjYWMgY29uZyB0cmluaCBkYW5nIHRoaSBjb25nIG5n YXkgDQoyNS8xMC4NCg0KVGhlbyB0aG9uZyBrZSBjdWEgU28gR2lhbyB0aG9uZyBWYW4gdGFpIFRQ IEhDTSAoR1RWVCksIHR1IGdpdWEgdGhhbmcgNyBkZW4gMjIvMTAgDQp0cmVuIGRpYSBiYW4gdGhh bmggcGhvIGRhIHhheSByYSBraG9hbmcgMzAgdnUgc3VwIGx1biBkdW9uZy4gVHJ1b2MgYnVjIHh1 YyBjdWEgZHUgDQpsdWFuLCBuZ2F5IDI2LzEwLCBzYXUga2hpIGRpIHRoaSBzYXQgY2FjIGtodSB2 dWMgbG8gY290IGNvIG5ndXkgY28gbGFpIHh1YXQgaGllbiAiaG8gdHUgDQp0aGFuIiwgRG9hbiBk YWkgYmlldSBIRE5EIFRQIEhDTSBkYSBjbyBjdW9jIGxhbSB2aWVjIHZvaSBTbyBHVFZUIHZlIGNv bmcgdGFjIA0KZ2lhbSBzYXQgY3VhIGRvbiB2aSBuYXkuIE5odW5nIG5nYXkgdHJvbmcgbmdheSwg bWF0IGR1b25nIG8gZ29jIG5nYSB0dSBUbyBLeSAtIA0KTmd1eWVuIEFuaCBUaHUgKHBodW9uZyBU YW4gQ2hhbmggSGllcCwgcXVhbiAxMiwgVFAgSENNKSBiYXQgbmdvIHN1cCB4dW9uZyBtb3QgaG8g cm9uZywgDQpraGllbiBjaGllYyB4ZSB0YWkgOCB0YW4gZGkgbmdhbmcgcXVhIGdhcCBuYW4uICAg DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0NC8yMDEwMTAy NTE3NTIyMS5hc3B4IE5ndXllbiBNaSAyNS8xMC8yMDEwIDE3OjUyIA0KDQpUUC5IQ006IER1b25n IHBobyBkYW5nIHRybyBuZW4gbmhhbSBuaG8gIA0KICANCihUTk8pIER1b25nIHBobyBUUC5IQ00g ZGFuZyB0cm8gbmVuIG5oYW0gbmhvLCBzdXQgbHVuIGJvaSBuaHVuZyBjb25nIHRyaW5oIHRoaSAN CmNvbmcgZGUgbGFpLiBEbyBsYSBuaGFuIGRpbmggY3VhIGNhYyBkYWkgYmlldSBIRE5EIFRQLkhD TSB0cm9uZyBidW9pIGtpZW0gdHJhIGNhYyANCmRpZW0gIm5vbmciLCAiaG8gdHUgdGhhbiIgdHJv bmcgbmdheSBob20gbmF5IDI1LjEwLiAgIA0KDQoqIER1YSB4ZSBraG9uZyBoZXQsICJobyB0dSB0 aGFuIiB0YW5nIHRoZW0NCg0KRG9hbiBraWVtIHRyYSBkYSBkaSB0aHVjIHRlIHRhaSBzYXUga2h1 IHZ1YyBvIGNhYyBxdWFuIHRyb25nIFRQIG5odTogcXVhbiAzLCBCaW5oIA0KVGhhbmgsIFBodSBO aHVhbiwgVGFuIEJpbmguIFF1YSBkbywgaGF1IGhldCAiaG8gdHUgdGhhbiIgaGF5IGxvIGNvdCB0 aGkgY29uZyBjb25nIA0KdHJpbmggY2hhbSB0aWVuIGRvIGRldSBuYW0gbyBuaHVuZyBraHUgdnVj IGNobywgdHJ1b25nIGhvYyBoYXkgdmkgdHJpIG5nYSB0dSB2b2kgbHV1IA0KbHVvbmcgeGUgY28g cXVhIGxhaSBjYW8uIA0KDQooQW5oOiBNb3QgIm8gdm9pIiB2dWEgbW9pIHh1YXQgaGllbiB0cnVv YyBzbyBuaGEgMTA5LCBQaGFuIERpbmggUGh1bmcsIFEuUGh1IE5odWFuLCANCmRhbmcgY28gZGF1 IGhpZXUgc3V0IGx1biByb25nIGhvbiAtIEFuaDogTmd1eWVuIE1pKSANCg0KQ3UgdGhlLCB0YWkg a2h1IHZ1YyBuZ2EgdHUgQnVpIEh1dSBOZ2hpYSAtIFZ1IFR1bmcgKFEuQmluaCBUaGFuaCksIGNv bmcgdHJpbmggdGhpIGNvbmcgDQpjbyByYW8gY2hhbiByYXQgc28gc2FpLiBUdSBuZ29haSBuaGlu IHZhbyBjbyB0aGUgdGhheSBiZW4gdHJvbmcgY29uZyB0cmluaCBsYSBtb3QgaG8gbnVvYyANCnRv LiBOZ3VvaSBkYW4gZGkgbmdhbmcgcXVhIGNvIHRoZSBiaSBzdXAgaG8gYmF0IGN1IGx1YyBuYW8s IGRhYyBiaWV0IGxhIGtoaSB0cm9pIG11YS4NCg0KQ2FjIGxvIGNvdCB0aHVvYyBraHUgdnVjIExl IFZhbiBTeSwgVHJhbiBRdWFuZyBEaWV1IChRLjMpLCBQaGFtIFZhbiBIYWksIENhY2ggTWFuZyAN ClRoYW5nIFRhbSAoUS5UYW4gQmluaCkgbGEgbmh1bmcgY29uZyB0cmluaCB0aGkgY29uZyBpIGFj aCBrZW8gZGFpIGhvbiBtb3QgbmFtIG5heS4NCg0KKEFuaDogTG8gY290ICJiYXkiIG5ndW9pIGRv YW4gQnVpIEh1dSBOZ2hpYSAtIFZ1IFR1bmcsIFEuQmluaCBUaGFuaCAtIEFuaDogTmd1eWVuIE1p KQ0KDQpCZW4gY2FuaCBkbywgbmhpZXUgY29uIGR1b25nIGN1bmcgZGFuZyBjaGl1IGhhdSBxdWEg bmFuZyBuZSBzYXUga2hpIGxvIGNvdCBkb2kgZGkuIFRpZXUgDQpiaWV1IG5odSBkb2FuIG5nYSB0 dSBYbyBWaWV0IE5naGUgVGluaCAtIFBoYW4gVmFuIEhhbiAoUS5CaW5oIFRoYW5oKSB2b2kgbWF0 IGR1b25nIA0KbmhhbSBuaG8sIGxvbSBjaG9tIGRhLCBvIGdhIHJhdCBuaGlldS4NCg0KTWF0IGR1 b25nIEhvYW5nIEhvYSBUaGFtIChRLkJpbmggVGhhbmgpLCBuZ2F5IHRydW9jIGNvbmcgdHJ1b25n IFRIUFQgSG9hbmcgDQpIb2EgVGhhbTsgZHVvbmcgUGhhbiBEYW5nIEx1dSAoUS5QaHUgTmh1YW4p Li4uIGxhaSBsYSBjYWkgImJheSIgdHUgdGhhbiBkb2kgdm9pIGNhYyANCnBodW9uZyB0aWVuIGdp YW8gdGhvbmcgYm9pIG5odW5nIG5hcCBobyBnYSB0cm9pLCBzdXQgdGhhdCB0aHVvbmcuDQoNCihB bmg6IE1hdCBkdW9uZyBuZ2F5IGdpYW8gbG8gWG8gVmlldCBOZ2hlIFRpbmggLSBQaGFuIFZhbiBI YW4gLSBBbmg6IE5ndXllbiBNaSkNCg0KT25nIERhbmcgVmFuIEtob2EsIGRhaSBiaWV1IEhETkQg VFAuSENNLCBidWMgeHVjOiAiRGFpIGJpZXUgSERORCBUUCBkYSByYXQgDQpuaGlldSBsYW4gbGVu IHRpZW5nIHZlIHRpbmggdHJhbmcgdGFpIGxhcCBtYXQgZHVvbmcgYXUgdGEsIG5oYW0gbmhvIHNh dSBraGkgY29uZyB0cmluaCBkb2kgDQpkaSBuaHVuZyBkYXUgcm9pIGxhaSB2YW8gZGF5LiBQaGFp IGNoYW5nIGNodWEgeGF5IHJhIHN1IGNvIGNoZXQgbmd1b2kgdGhpIGNodW5nIHRhIGNodWEgDQps dXUgdGFtPyBDaHVuZyB0b2kgc2UgdGllcCB0dWMgY28gY2FjIGtpZW4gbmdoaSBtYW5oIG1lIGRl biBVQk5EIFRQLCBTbyBHVFZUIHZlIA0KdmllYyBuYXkuIEJvaSBkYXkgbGEgbmh1bmcgbW9pIGRl IGRvYSBoYW5nIG5nYXksIGhhbmcgZ2lvIGRvaSB2b2kgc3UgYW4gdG9hbiBjdWEgbmd1b2kgZGFu IGtoaSBsdXUgdGhvbmcgdHJlbiBkdW9uZyIuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vTmV3cy9QYWdlcy8yMDEwNDUvMjAxMDExMDcyMjI0NTIuYXNweCBQLlQgUGh1b25nIFRoYW5o IDA3LzExLzIwMTAgMjI6MjQgDQoNClRodSB0dW9uZyAmIFRQIEhDTTogVGhvYXQgbnVvYyBTYWkg R29uIHRhYyAiY2hvIGhpZW0iICANCiAgDQoqIE5nYXAgbmFuZyBsaWVuIHRpZXAgdHJlbiBkaWVu IHJvbmcgDQoNCkR1IGFuIChEQSkgVmUgc2luaCBtb2kgdHJ1b25nIChWU01UKSBUUC5IQ00gZGEg eG9uZyBob24gOTAlIGtob2kgbHVvbmcsIHRyb25nIA0KZG8gcmllbmcgcGhhbiBsYXAgZGF0IGNv bmcgdGhvYXQgbnVvYyB0YWkgY2FjIHF1YW4gdHJ1bmcgdGFtIGhvYW4gdGhhbmggZGVuIDk3JSwg bmh1bmcgDQp2aSBzYW8gdmFuIGNodWEgdGhheSBoaWV1IHF1YSBjaG9uZyBuZ2FwIGR1b2MgcGhh dCBodXkgdHJlbiB0aHVjIHRlPyANCg0KQ28gdGhlIHRoYXksIHBoYW4gdmllYyBjb24gbGFpIGN1 YSBEQSB0dXkgaXQgbmh1bmcgbGFpIGxhIG5odW5nIGhhbmcgbXVjIHJhdCBwaHVjIHRhcCB2YSAN CmxhIG1hdSBjaG90IHF1eWV0IGRpbmggc3UgdmFuIGhhbmggY3VhIHRvYW4gaGUgdGhvbmcuIEN1 IHRoZSwgZ2FuIDYwIGttIGNvbmcgZGEgbGFwIGRhdCANCnRhaSBjYWMgcXVhbiAxLCAzLCAxMCwg QmluaCBUaGFuaCwgVGFuIEJpbmgsIFBodSBOaHVhbiwgR28gVmFwLi4uIHZhbiBjaHVhIHRoZSBr ZXQgbm9pIA0KdmEgcGhhdCBodXkgaGlldSBxdWEgdGhvYXQgbnVvYyBtdWEgY2hpIHZpIHZ1b25n IHZhaSB0cmFtIG1ldCBjb25nIGNodWEgbGFwIGRhdC4gVHJvbmcgDQpkbywgdHV5ZW4gY29uZyB0 cmVuIGR1b25nIFhvIFZpZXQgTmdoZSBUaW5oIHRob2F0IG51b2MgY2hvIGtodSB2dWMgdHUgQmVu IHhlIE1pZW4gDQpEb25nIGRlbiBjYXUgVGhpIE5naGUgaGllbiBkYSBob2FuIHRoYW5oIHRvaSA5 OSUsIGNoaSBjb24gMSBkaWVtIG51dCB0YWkgY2hhbiBjYXUgVGhpIA0KTmdoZSBjaHVhIHRoaSBj b25nIGhvIGdhLiBDb25nIHRyZW4gZHVvbmcgTGUgUXVhbmcgRGluaCwgQnVpIEh1dSBOZ2hpYSBj dW5nIGNvbiANCjgwMG0gY2h1YSB4b25nLiBDYWMgdHV5ZW4gY29uZyBuYXkgZGV1IGRvIFRvbmcg Y29uZyB0eSAoVENUKSB4YXkgZHVuZyBIYSBOb2kgdGhpIA0KY29uZyBxdWEgaSBhY2ggc3VvdCB0 aG9pIGdpYW4gcXVhLg0KDQooQW5oOiBOZ2FwIG5hbmcsIGhhbmcgbG9hdCB4ZSBjaGV0IG1heSB0 cmVuIGR1b25nIFhvIFZpZXQgTmdoZSBUaW5oIChRLkJpbmggVGhhbmgpIA0KY2hpZXUgNi4xMSAt IEFuaDogQmFjaCBEdW9uZykgDQoNClR1b25nIHR1LCB0dXllbiBjb25nIGNoYXkgZG9jIGR1b25n IE5ndXllbiBLaWVtIHZhIFBoYW4gRGluaCBQaHVuZyB0aG9hdCBudW9jIGNobyANCmtodSB2dWMg cmF0IHJvbmcgdHUgbmdhIDYgR28gVmFwIGRlbiBjYXUgS2lldSwgZGFjIGJpZXQgY2hvbmcgbmdh cCBjaG8gdG9hbiBibyBjb25nIA0KdmllbiBHaWEgRGluaCwgdmFuIGNodWEgdGhlIHBoYXQgaHV5 IGhpZXUgcXVhIGNoaSB2aSB2dW9uZyBtb3Qgc28gY29uZyBkb2FuIGl0IG9pLCBjaHUgDQp5ZXUg ZG8gZ2lhbyBjYXQgdm9pIGR1b25nIHNhdCB2YSBvbmcgY2FwIG51b2MgaGllbiBodXUuIFR1eWVu IGNvbmcgdHJlbiBkdW9uZyBMZSBWYW4gDQpTeSB0aG9hdCBudW9jIGNobyBraHUgdnVjIHR1IExh bmcgQ2hhIENhIGRlbiBjYXUgTGUgVmFuIFN5IGN1bmcgdnVvbmcgbW90IGRvYW4gcmF0IA0Kbmdh biBkbyBiYW5nIG5nYW5nIGR1b25nIHNhdC4uLg0KDQpIYXUgcXVhIGN1YSAiYmF5IiB0aGF1IGdp YSByZSANCg0KQ28gdGhlIG5vaSwgc3UgYmUgdGFjIGN1YSBEQSBWU01UIGhpZW4gbmF5IGNvIG5n dXllbiBuaGFuIHR1IHRpbmggdHJhbmcgYm8gdGhhdSBnaWEgDQp0aGFwIG1hIFRoYW5oIE5pZW4g dHVuZyBjbyBsb2F0IGJhaSBwaGFuIGFuaC4gVHJvbmcgZG8sIGNvIHRoZSBsYXkgdmkgZHUgdHJ1 b25nIGhvcCANClRDVCB4YXkgZHVuZyBCYWNoIERhbmcgKGRhIGJpIGNhdCBob3AgZG9uZykgaGF5 IFRDVCB4YXkgZHVuZyBIYSBOb2kgdGhpIGNvbmcgcmF0IGJlIA0KYm9pLCBjaGFtIHRyZS4gVHJh IGxvaSBUaGFuaCBOaWVuLCBvbmcgSm9obiBHLkRyeWJ1cmdoLCBLeSBzdSB0cnVvbmcgQ29uZyB0 eSBDRE0gDQooTXkpLCBkb24gdmkgdHUgdmFuIGdpYW0gc2F0IGNobyBiaWV0LCBjYSAyIFRDVCBu YXkgZGV1IGR1IHRyaW5oIGRvIGRlIHRodWMgaGllbiBjb25nIA0KdGFjIGxhcCBkYXQgY29uZywg c29uZyB2YW4gZGUgY2hpbmggY3VhIG5oYSB0aGF1IGxhIHRhaSBjaGluaCBraG9uZyBkYW0gYmFv LiBOZ3V5ZW4gDQpuaGFuIGxhIHR1IGdpYWkgZG9hbiBkYXUgdGhhdSwgbmhhIHRoYXUgZGEga2hv bmcgbHVvbmcgZHVvYyBjYWMgdGlldSBjaHVhbiBxdWEgY2FvIA0KY3VuZyBuaHUgbmh1bmcga2hv IGtoYW4gY3VhIERBIGRlIGNvIHRoZSB0aW5oIHRvYW4gY2hpbmggeGFjIGNoaSBwaGkgdmEgdmFu IGRlIGxvaSBsby4gQ2hpbmggDQp2aSB2YXksIHRyb25nIHF1YSB0cmluaCB0aGkgY29uZywgbmhh IHRoYXUgY2FtIHRoYXkgZGUgZGFwIHVuZyBkdW5nIGNhYyB0aWV1IGNodWFuIG5heSANCnRoaSBo byBwaGFpIGJvIHJhIG5oaWV1IGNoaSBwaGkgaG9uLCB0aGFtIGNoaSBjaGl1IGxvLiANCg0KIlRo dWMgc3UgdHJvbmcgcXVhIHRyaW5oIGNob24gdGhhdSwgY2h1bmcgdG9pIGRhIGNhbiBuaGFjIHJh dCBreS4gVHV5IG5oaWVuLCBjaGkgbmh1bmcgDQp0cnVvbmcgaG9wIGRhYyBiaWV0IGNodW5nIHRv aSBtb2kgY28gdGhlIGxvYWkgY2FjIG5oYSB0aGF1IGdpYSB0aGFwLCBib2kgcXV5IGRpbmggY3Vh IFZOIA0KY3VuZyBuaHUgTmdhbiBoYW5nIFRoZSBnaW9pIChuaGEgdGFpIHRybyBPREEgY2hvIERB KSBraG9uZyBraG9uZyBjaGUgZ2lhIHNhbiBuZW4gcmF0IA0Ka2hvIGxvYWkgbmhhIHRoYXUgZ2lh IHRoYXAiLCBvbmcgRHJ5YnVyZ2ggbm9pLg0KDQpIYW5nIG11YyB0aG9hdCBudW9jIHRoYWkgY3Vh IERBIGNvbiBuYW4gZ2lhaSBob24gdmkgY2EgMiBnb2kgdGhhdSB0cm9uZyB5ZXUgaGllbiBuYXkg DQpkZXUgbGEgcGhhbiB2aWVjICAia2hvIG5oYWkiIG5oYXQgZG8gY2FjIG5oYSB0aGF1IFRydW5n IFF1b2MgY2h1YSBsYWkgc2F1IGtoaSBkYSAiZ2FtIiANCmhldCAibmFjIi4gVHJvbmcgZG8sIGdv aSB0aGF1IDEwQSBkaSBkb2kgZHVvbmcgb25nIGNhcCBudW9jIHBoaSAyLjAwMCBtbSBvIGtodSB2 dWMgDQpjYXUgRGllbiBCaWVuIFBodSBkYSBkdW9jIGdpYW8gY2hvIFRDVCBjYXAgbnVvYyBTYWkg R29uIChTYXdhY28pIHBob2kgaG9wIHZvaSBDb25nIA0KdHkgVERXIChNeSkgdGhpIGNvbmcuIFRo ZW8gdGltIGhpZXUgY3VhIFRoYW5oIE5pZW4sIHRydW9jIGRheSBuaGEgdGhhdSBDU0NFQyBjaGkg Ym8gDQpnaWEga2hvYW5nIDMwMC4wMDAgVVNEIGNobyBoYW5nIG11YyBuYXkgbmVuIG5naGllbSBu aGllbiB0cnVuZyB0aGF1ICh0cm9uZyBraGkgY2FjIA0KbmhhIHRoYXUga2hhYyBkZXUgYm8gZ2lh IGtob2FuZyAyIHRyaWV1IFVTRCkuIA0KDQpEZW4gbmF5LCBzYXUga2hpIGdpYW8gbGFpIGNobyBT YXdhY28gdGhpIGdvaSB0aGF1IG5heSBkYSB0cm8gdmUgZHVuZyBnaWEgdHJpIGJhbiBkYXUgbGEg DQpob24gMiB0cmlldSBVU0QuIFR1b25nIHR1LCBkb2FuIGNvbmcgYmFuZyBzb25nIFNhaSBHb24g ZG8gbmhhIHRoYXUgVE1FQyBDSEVDIDMgDQooY3VuZyBjdWEgVHJ1bmcgUXVvYykgdGhpIGNvbmcg Y3VuZyBidW9jIHBoYWkgdGFjaCB0aGFuaCBnb2kgdGhhdSA3QiB2YSBnaWFvIGNobyBDb25nIA0K dHkgdGhvYXQgbnVvYyBkbyB0aGkgVFAuIExlIHJhLCBuZXUgdGhpIGNvbmcgZHVuZyB0aWVuIGRv IHRoaSBwaGFuIHZvbiBjaG8gZ29pIHRoYXUgbmF5IA0KY3VuZyBkdW9jIGxheSB0dSBPREEgY3Vh IE5nYW4gaGFuZyBUaGUgZ2lvaSwgc29uZyBkbyBjaGFtIHRyZSBzdW90IDQgbmFtIHF1YSBuZW4g DQpjdW9pIGN1bmcgZGEgcGhhaSB0aHVjIGhpZW4gYmFuZyBuZ2FuIHNhY2ggVFAsIHRvbiBraG9h bmcgNzAgdGkgZG9uZy4gDQoNClRpZXAgdHVjIHZ1b25nICJiYXkiIA0KDQpEYW5nIGxvIG5nYWkg bGEgdGluaCB0cmFuZyB0aGF1IGdpYSB0aGFwIHNlIGNodWEgZHVuZyBsYWkgbyBkYXksIGJvaSB0 aGVvIEJhbiBxdWFuIGx5IERBLCANCm1vaSBkYXkgZGEgY28gdGhlbSBtb3QgbmhhIHRoYXUgYm8g Z2lhIHJhdCB0aGFwIGNobyBnb2kgdGhhdSBtb2kuIEJhbiBxdWFuIGx5IERBIGRhIA0KeWV1IGNh dSBuaGEgdGhhdSBjaHVuZyBtaW5oIHZvaSBjYWkgZ2lhIG5odSB2YXkgaG8gY28gdGhlIGRhbSBi YW8gZHVvYyBjYWMgdGlldSBjaGkga3kgDQp0aHVhdCBjdWEgZ29pIHRoYXUsIHZvaSBtdWMgZGlj aCBsYSBkZSBuaGEgdGhhdSBjYW4gbmhhYyBsYWkgdmFuIGRlIGxvaSBsbyBtYSB0dSBydXQgbHVp LiANClR1eSBuaGllbiwgbmhhIHRoYXUgdmFuIGNhbSBrZXQgdGh1YyBoaWVuIGdvaSB0aGF1IGR1 bmcga3kgdGh1YXQgdmEgY2h1IGRhdSB0dSBkYSBraG9uZyANCnRoZSBsb2FpIG5oYSB0aGF1IG5h eS4gTmh1IHZheSwga2hvbmcgYWkgZGFtIGtoYW5nIGRpbmggdHJvbmcgdGhvaSBnaWFuIHRvaSwg Z29pIHRoYXUgDQptb2kgbmF5IGtob25nIGRpIHZhbyAidmV0IHhlIGRvIiBjdWEgaGFuZyBsb2F0 IGdvaSB0aGF1IGdpYSByZSB2dWEgcXVhLiANCg0KRG9pIG8gbmhpZW0gdHUgZGllbSBuYXkgc2Fu ZyBkaWVtIGtoYWMNCg0KVHJlbiB0aHVjIHRlLCBEQSBWU01UIG11b24gcGhhdCBodXkgaGlldSBx dWEgY2hvbmcgbmdhcCB0cmlldCBkZSB0aGkga2hvbmcgdGhlIGNoaSANCnRyb25nIGNobyB2YW8g aGUgdGhvbmcgY29uZyB0aG9hdCBudW9jIG11YSBtYSBwaGFpIGhvYW4gdGhhbmggZG9uZyBibyBo YW5nIG11YyB0aG9hdCANCm51b2MgdGhhaSwgbmFvIHZldCBsb25nIGtlbmggdmEgeGF5IGR1bmcg bmhhIG1heSB4dSBseSBudW9jIHRoYWkuIEJvaSBxdXkgdHJpbmggdmFuIA0KaGFuaCB0aG9hdCBu dW9jIGN1YSBEQSBnb20sIGhlIHRob25nIGNvbmcgYmFvIHR1IGNoYXkgdm9pIGR1b25nIGtpbmgg M20gZGF0IGR1b2kgDQpsb25nIGtlbmggTmhpZXUgTG9jIC0gVGhpIE5naGUgbGFtIG5oaWVtIHZ1 IHRhaSB0b2FuIGJvIG51b2MgdGhhaSBjaG8gbHV1IHZ1YyByb25nIA0KaG9uIDMzIGttMiBvIGto dSB0cnVuZyB0YW0uDQoNCkJlbiBjYW5oIGRvLCBoZSB0aG9uZyBjb25nIHRob2F0IG51b2MgY2Fw IDIgLSAzIGxhbSBuaGllbSB2dSBnb20gbnVvYyBtdWEgdHJlbiBjYWMgDQp0dXllbiBkdW9uZyB2 ZSBjb25nIGJhbywgc2F1IGRvIGR1YSB2ZSB0cmFtIGJvbSB0cmVuIGR1b25nIE5ndXllbiBIdXUg Q2FuaCANCihRLkJpbmggVGhhbmgpIGRlIGx1b2MgcmFjLCB4dSBseSBtdWkgdHJ1b2Mga2hpIGRv IHJhIHNvbmcgU2FpIEdvbi4gUXVhbiB0cm9uZyBob24gbGEgDQpnaWFpIGRvYW4gMiBjdWEgREEg c2UgeGF5IHRoZW0gbmhhIG1heSB4dSBseSBudW9jIHRoYWkgcGhpYSBRLjIgZGUgbGFtIHNhY2gg bnVvYyB0aGVtIA0KbW90IGJ1b2MgbnVhIHRydW9jIGtoaSBkbyByYSBzb25nLg0KDQooQW5oOiBW aWVjIGxhcCBkYXQgY29uZyB0aG9hdCBudW9jIG11YSB0cmVuIG1vdCBzbyB0dXllbiBkdW9uZyBi aSB2dW9uZyBkdW9uZyBzYXQgdmEgDQpjb25nIHRyaW5oIG5nYW0gLSBBbmg6IFAuVCkgDQoNClR1 eSBuaGllbiwgdGhlbyBUcnVuZyB0YW0gUXVhbiBseSBkaWV1IGhhbmggY2h1b25nIHRyaW5oIGNo b25nIG5nYXAsIGhpZW4gbmF5IG5nb2FpIA0KMyUgY29uZyB0aG9hdCBudW9jIG11YSBjaHVhIGR1 b2MgbGFwIGRhdCwgdGhpIGhhbmcgbXVjIHRob2F0IG51b2MgdGhhaSBjdWEgREEgdmFuIA0KY29u IHZ1b25nIDIgZG9hbiBxdWFuIHRyb25nIGxhIGtpY2ggY29uZyBiYW8gZHVvaSBsb25nIGtlbmgg ZG9hbiBxdWEgY2F1IERpZW4gQmllbiANClBodSB2YSBraWNoIGNvbmcgYmFuZyBzb25nIFNhaSBH b24uIERvIGRvLCBkdSB0cmFtIGJvbSBkYSBob2FuIHRhdCwgbmh1bmcgY2h1YSB0aGUgDQp2YW4g aGFuaCBkbyBjaHVhIGRvbmcgYm8gdm9pIGhlIHRob25nIHRodSBnb20uDQoNCkRhbmcgbG8gbmdh aSBob24gbGEgZ2lhaSBkb2FuIDIgY3VhIERBICh4YXkgZHVuZyBuaGEgbWF5IHh1IGx5IG51b2Mg dGhhaSkgZGVuIG5heSBtb2kgDQpkYW5nIHRyb25nIGdpYWkgZG9hbiBsYXAgdGhpZXQga2UgY28g c28uIFRoZW8ga2UgaG9hY2gsIHNvbSBuaGF0IHRoaSBkZW4gbmFtIDIwMTYgbmhhIA0KbWF5IG1v aSBob2FuIHRoYW5oIGdpYWkgZG9hbiAxIGNvIGNvbmcgc3VhdCA2MTAuMDAwIG0zL25nYXkgdmEg ZGVuIDIwMjUgaG9hbiB0aGFuaCANCmdpYWkgZG9hbiAyIGNvIGNvbmcgc3VhdCA4MDAuMDAwIG0z L25nYXkuIA0KDQpOaHUgdmF5LCBEQSBWU01UIGdpYWkgZG9hbiAxIGR1IGNvIHhvbmcgY3VvaSBu YW0gMjAxMSB0aGVvIGR1bmcga2UgaG9hY2ggdGhpIHZpZWMgDQp0aHUgZ29tIHZhIHh1IGx5IG51 b2MgdGhhaSBjdW5nIGNoaSBkdW5nIG8gYnVvYyBwaGEgbG9hbmcgdHJ1b2Mga2hpIHhhIHJhIHNv bmcgU2FpIA0KR29uLiBOZ2F5IHR1IGdpYWkgZG9hbiB0aGlldCBrZSBEQSwgbmhpZXUgY2h1eWVu IGdpYSBkYSBjaG8gcmFuZyB2aWVjIHh1IGx5IG51b2MgdGhhaSANCmJhbmcgcGh1b25nIGFuIHBo YSBsb2FuZyBjaGFuZyBxdWEgY3VuZyBjaGkgbGEgY2h1eWVuIG8gbmhpZW0gdHUgY2hvIG5heSBz YW5nIGNobyANCmtoYWMsIHR1YyBudW9jIHRoYWkgdm9uIHhhIHRoYW5nIHZhbyBrZW5oIE5oaWV1 IExvYyAtIFRoaSBOZ2hlIGdheSBvIG5oaWVtIHRoaSBuYXkgc2UgDQpjaG8gcmEgc29uZyBTYWkg R29uLiANCg0KTmdhcCBuYW5nIGxpZW4gdGllcCB0cmVuIGRpZW4gcm9uZw0KDQpHaGkgbmhhbiBt b2kgbmhhdCB0dSAzIGNvbiBtdWEgY2hpZXUgNSwgNiB2YSA3LjExIGNobyB0aGF5LCBoYW5nIGxv YXQgdHV5ZW4gZHVvbmcgbyBjYWMgDQpxdWFuIHRydW5nIHRhbSB2YSB2ZW4gdHJ1bmcgdGFtIFRQ LkhDTSBkZXUgbmdhcCBzYXUsIGR1IGhlIHRob25nIHRob2F0IG51b2MgdGFpIGtodSANCnZ1YyBu YXkgZGEgZHVvYyBsYXAgZGF0IGdhbiBob2FuIGNoaW5oLiBUcm9uZyBkbywgY2FjIGR1b25nIEJ1 aSBIdXUgTmdoaWEsIE5nbyBUYXQgDQpUbywgVW5nIFZhbiBLaGllbSAoUS5CaW5oIFRoYW5oKS4u LiBudW9jIG5nYXAgc2F1IGhvbiBudWEgbWV0LiBEdW9uZyBYbyBWaWV0IA0KTmdoZSBUaW5oIChR LkJpbmggVGhhbmgpIGN1bmcgbmdhcCBuYW5nLCBkYWMgYmlldCBtb3Qgc28gaGVtIGN1b2kgZHVv bmcgWG8gVmlldCANCk5naGUgVGluaCAoZ2FuIGtlbmggVGhhbmggRGEpIG51b2MgZGFuZyBjYW8g ZGVuIDFtLiBUdW9uZyB0dSwgZHVvbmcgRGluaCBUaWVuIA0KSG9hbmcgKGRvYW4gdHUgY2F1IEJv bmcgZGVuIGR1b25nIFBoYW4gRGFuZyBMdXUpLCBQaGFuIERpbmggUGh1bmcsIEJhIFRoYW5nIEhh aSwgDQpEaWVuIEJpZW4gUGh1LCBxdW9jIGxvIDEzLi4uIG51b2MgbmdhcCBsZW5oIGxhbmcsIHRy YW5nIHhvYS4gVHJlbiBkdW9uZyBOZ3V5ZW4gSHV1IA0KQ2FuaCwgeGUgY28gImJvaSIgZ2l1YSBi aWVuIG51b2MgbWVuaCBtb25nLCBuaGlldSBkb2FuIG5nYXAgaG9uIDFtLiANCg0KVGFpIGtodSB2 dWMgdHJ1bmcgdGFtIFEuMSwgZHVvbmcgTmd1eWVuIFRoYWkgSG9jLCBDbyBCYWMsIE5ndXllbiBL aGFjIE5odSwgRGUgDQpUaGFtLi4uIG51b2MgZGFuZyBraGEgY2FvLiBEb2MgZHVvbmcgQmVuIFBo dSBEaW5oIHZhIE5ndXllbiBOZ29jIEN1bmcgKFEuOCksIA0KbnVvYyB0dSBrZW5oIFRhdSBIdSB0 cmFuIHF1YSBkdW9uZyB2YW8gbmhhIGRhbi4gTyBuaGlldSBraHUgdnVjIGtoYWMgbmh1IGR1b25n IEdpYSANClBodSAoUS42KSwgdm9uZyB4b2F5IENheSBHbyAoUS4xMSwpIHZvbmcgeG9heSBIdW5n IFZ1b25nIC0gQ2hhdSBWYW4gTGllbSAoUS41KSANCnRybyB0aGFuaCBuaHVuZyBiaWVuIG51b2Mg bWVuaCBtb25nIGtoaSBtdWEga2V0IGhvcCB2b2kgdHJpZXUgY3VvbmcuLi4gDQoNCmh0dHA6Ly90 dHh2YS5jb20vdnUtYW4tY2hpbmgtdHJpLXZhLWRvbi10by1jYW8vDQoNClZVIEFOIENISU5IIFRS SSBWQSBET04gVE8gQ0FPIFRSVU9DIERBSSBIT0kgMTEgQ1VBIERBTkcgDQoNCktpbmggZ3VpOiAN Cg0KLSBEL2MgTm9uZyBEdWMgTWFuaCAtIFRvbmcgYmkgdGh1IHZhIGNhYyBVeSB2aWVuIEJvIGNo aW5oIHRyaQ0KLSBEL2MgVHJ1b25nIFRhbiBTYW5nIC0gVGh1b25nIFRydWMgQmFuIGJpIHRodSB2 YSBCQ0hUVSBLaG9hIDEwDQotIEQvYyBOZ3V5ZW4gVmFuIENoaSAtIENodSBOaGllbSBVQiBLaWVt IFRyYSBUcnVuZyBVb25nIERhbmcNCg0KVG9pIHRlbiBsYSBNYWkgRG9jLCBEYW5nIHZpZW4gaHV1 IHRyaSBvIHRhaSAzNyBUaGFvIERpZW4sIFAuIFRoYW8gRGllbiwgUS4gMiwgVHAuIEhDTS4gDQpD YW4gY3UgTXVjIDMgRGlldSAzIERpZXUgTGUgRGFuZyBxdXkgZGluaCB2ZSBxdXllbiBjdWEgbmd1 b2kgRGFuZyB2aWVuIHRvaSBjbyBkb24gDQpuYXkgbm9pIGR1bmcgbmh1IHNhdToNCg0KSS4gQ0hB VCBWQU4NCg0KMS4gVmkgc2FvIGNhYyB2dSBhbiBjaGluaCB0cmkgbmdoaWVtIHRyb25nIGRhIHhh eSByYSB0dSBLaG9hIDQgbWEga2hvbmcgZ2lhaSBxdXlldCBjdSANCmJhbiBnaWFvIGhldCBraG9h IHRydW9jIGRlbiBraG9hIHNhdT8gTmF5IEtob2EgMTAgc2FwIGhldCBuaGllbSBreSB2YSBkYW5n IGNodWFuIGJpIA0KZGFpIGhvaSAxMSB2YW4ga2hvbmcgZ2lhaSBxdXlldCBtYSBkaWVuIGJpZW4g dGh1YyB0ZSB0cm9uZyBub2kgYm8gbGFuaCBkYW8gRGFuZyBjaGkgDQoiYmFuZyBtYXQga2hvbmcg YmFuZyBsb25nIiBuZ2F5IGNhbmcgbmdoaWVtIHRyb25nIGxhbSBjaG8gZHUgbHVhbiB0cm9uZyBE YW5nIG5nb2FpIA0KZGFuIHJhdCBiYXQgYmluaC4gUGhhaSBjaGFuZyB0dSB2dSBTYXUgU3UgLSBW dSBUNCB0YW8gY28gaG9pIHJhIGRvaSBUb25nIEN1YyBJSSBkZSB0YWNoIA0Ka2hvaSBCbyBUb25n IFRoYW0gTXV1LCBCbyBRdW9jIFBob25nIHZhIHNhdSBWdSBDaGluaCBkZW4gTmd1eWVuIENoaSBW aW5oIHRpZXAgDQp0dWMgdGhlbyAxIHN1IGNoaSBkYW8gbmdhbSBjdWEgImJvbiB0YXkgc2FpIFRy dW5nIFF1b2MiIGtodXluaCBkYW8gVG9uZyBDdWMgSUkgKFRDSUkpPw0KDQooQW5oIGNodXA6IE5n dXllbiBDaGkgVmluaCkNCg0KMi4gVmkgc2FvIGxhIFRvbmcgQmkgVGh1IChUQlQpIGxhIEJpIFRo dSBEYW5nIFV5IFF1YW4gU3UgVHJ1bmcgVW9uZyAoRFVRU1RXKSANCm1hIGRvbmcgY2hpIE5vbmcg RHVjIE1hbmgga2hvbmcgdGllcCBuaGFuIHkga2llbiBjdWEgRGFpIHR1b25nIFZvIE5ndXllbiBH aWFwIHNhdSANCmtoaSBkb2MgdmFuIGJhbiBjdWEgRC9jIFZ1IE1pbmggVHJpIC0gaGllbiBjb25n IHRhYyB0YWkgVENJSSAtIG1hIERhaSB0dW9uZyBkYSBkb2MsIGRhIA0KZGFuaCBnaWEgZG8gbGEg InN1IHRvIGNhbyBjdWEgbW90IGNhbiBibywgbW90IERhbmcgdmllbiBjbyB0cmluaCBkbyB2YSBj byB0cmFjaCBuaGllbSANCmNhbywgZHVuZyBjYW0sIGRhbSB0byBjYW8gbmh1bmcgaGFuaCBkb25n IG1hIG1pbmggY2hvIGxhIHNhaSB0cmFpIGRhbmcgZ2F5IG5ndXkgaGFpIA0KZGVuIERhbmcgZGVu IHF1YW4gZG9pIi4gIkRheSBsYSBzdSB0byBjYW8gdGhlbyBkdW5nIGRpZXUgbGUgRGFuZywgcGhh cCBsdWF0IE5oYSBOdW9jIA0KY3VhIG1vdCBjYW4gYm8gRGFuZyB2aWVuIGR1b25nIGNodWMsIGN1 YSBuZ3VvaSB0cm9uZyBjdW9jLCBraG9uZyBwaGFpIGxhIG1vdCB0aHUgbmFjIA0KZGFuaCwgdGh1 IG5ndW9pIG5nb2FpIGN1b2MiIChWYW4gYmFuIGd1aSBCbyBDaGluaCBUcmkgKEJDVCkgdmEgQmFu IEJpIFRodSAoQkJUKSBreSANCm5nYXkgMTAvMDYvMjAwOSkuIERhaSB0dW9uZyBuaGFjIGxhaSBs b2kgbm9pIGN1YSBUQlQgZGEgbm9pIHZvaSBEYWkgdHVvbmcgdHJ1b2Mgbmh1bmcgDQpraHV5ZXQg ZGllbSBjdWEgTmd1eWVuIENoaSBWaW5oIGxhICJraG9uZyBsZW4gdHJ1bmcgdW9uZyB2YSBjaHVh IGJpZXQgZHVhIGRpIGRhdSBkZSANCnJlbiBsdXllbiIuIFZheSB2aSBzYW8gVEJUIG51b3QgbG9p IG5vaSB2b2kgRGFpIHR1b25nIGxhaSB0aGFuZyBxdWFuIGhhbSB0cnVuZyB0dW9uZywgDQpnaWFv IHRyb25nIHRyYWNoIFRvbmcgQ3VjIFRydW9uZyBUQ0lJLCByb2kgZGUgYmF0IE5ndXllbiBDaGkg VmluaCBsZW4gVGh1IFRydW9uZyBCbyANClF1b2MgUGhvbmcgKEJRUCk/IFBoYWkgY2hhbmcgZGF5 IGxhIGhhdSBxdWEgY3VhIHZpZWMgY28geSBraG9uZyBnaWFpIHF1eWV0IHZ1IFQ0IG1hIA0KY2Fu IGJvIFRDSUkgcmF0IGJhdCBiaW5oIGJ1b2MgcGhhaSB0byBjYW8gbmh1IGJhaSB2aWV0IGN1YSBE L2MgVnUgTWluaCBUcmkgIlRDSUkgdmkgYWkgDQpuZW4gbm9pIj8gVmkgc2FvIHkga2llbiB0cmVu IHZhbiBiYW4gZ3VpIEJDVCwgQkJUIGN1YSBEYWkgdHVvbmcgVm8gTmd1eWVuIEdpYXAga3kgDQpu Z2F5IDEwLzA2LzIwMDkgdmEgY2EgdmFuIGJhbiBEYWkgdHVvbmcgZ3VpIDIgY3V1IFRCVCBMZSBL aGEgUGhpZXUgdmEgRG8gTXVvaSBreSANCm5nYXkgMDgvMDYvMjAwOSBraG9uZyBkdW9jIHhlbSB4 ZXQgZ2lhaSBxdXlldCB2YSB0cmEgbG9pPyBUaGFtIGNoaSB0dSBUcnVuZyB1b25nIGNvbiANCmR1 YSByYSBkdSBsdWFuIGNobyByYW5nIGNodSB2aWV0IHZhIGNodSBreSBjdWEgRGFpIHR1b25nIGxh IGdpYSB2YSBjYSBkdSBsdWFuIGNvIHNvIERhbmcgDQpUQ0lJIGRvaSBreSBsdWF0IEQvYyBWdSBN aW5oIFRyaS4NCg0KKEFuaCBjaHVwOiBUcnVuZyB0dW9uZyBMdW9uZyBRdWFuZyBMaWV0LCBUcnVu ZyB0dW9uZyBOZ3V5ZW4gQ2hpIFZpbmgpDQoNCk5ldSBxdWEgdmF5IHR1IFRCVCBkZW4gQkJUIGRl dSBraG9uZyBjaGFwIGhhbmggcXV5IGRpbmggY3VhIGRpZXUgbGUgRGFuZyBkYSBxdXkgDQpkaW5o IHZlIHF1eWVuIGN1YSBuZ3VvaSBEYW5nIHZpZW4gY2h1IGtob25nIG5vaSBsYSB0aGVvIGx1YXQg a2hpZXUgbmFpIHRvIGNhbyBkYSBiYW4gDQpoYW5oLiBEL2MgVnUgTWluaCBUcmkgdmEgRGFpIHR1 b25nIFZvIE5ndXllbiBHaWFwIGRldSBub2kgZGVuIE5ndXllbiBDaGkgVmluaCBtYSANClRCVCBk YSBudW90IGxvaSBub2kgdm9pIERhaSB0dW9uZywgbmF5IHZpIHNhbyBraG9uZyBjaGkgZGFvIFV5 IEJhbiBLaWVtIFRyYSBUcnVuZyANClVvbmcgKFVCS1RUVykgbGFtIG5oaWVtIHZ1IHhlbSB4ZXQg dHJpbmggcmEgQkNIVFcgZGUgZ2lhaSBxdXlldCB2ZSBUQ0lJIHZhIA0KTmd1eWVuIENoaSBWaW5o IHRoZW8gcXV5IGRpbmggY3VhIERpZXUgTGUgRGFuZyBkYSBxdXkgZGluaCB0YWkgTXVjIDUgRGll dSAzMj8NCg0KMy4gQ28gcGhhaSB2aSB0cmFjaCBuaGllbSBuZ3VvaSBkdW5nIGRhdSBEVVFTVFcg bGEgVEJUIGtob25nIG11b24gZ2lhaSBxdXlldCBkdXQgDQpkaWVtIHZ1IFRDSUkgbWEgZHUgbHVh biBjb24gZHVhIHJhIG1vdCB2aWVjIGxhbSBuZ3V5IGhhaSBuZ2hpZW0gdHJvbmcgY3VhIFRDSUkg bGEgDQpjdW9jIGdhcCBtYXQgZ2l1YSBkYWkgZGllbiBUb25nIEN1YyBUaW5oIEJhbyBIb2EgTmFt IC0gVHJ1bmcgUXVvYywgdm9pIFRDSUkgLSBWaWV0IA0KTmFtLCBkYSBsdXUgdHJ1IGJhbyBxdWFu IG1hdCB2ZSBub2kgZHVuZyBiaWVuIFZpZXQgTmFtIHRoYW5oIG1vdCB0aW5oIGhheSBraHUgdHUg dHJpIA0KY3VhIFRydW5nIFF1b2MgcGhhaSBraG9uZz8gVmEgY28gcGhhaSB0dSBjdW9jIGdhcCBu aGF1IG5heSBtYSB0cm9uZyBuYW0gMjAwOSBUcnVuZyANClF1b2MgaGV0IHR1bmcgcmEgImNhaSBs dW9pIGJvIiBsYW5oIGhhaSBUcnVuZyBRdW9jIGRlICJsaWVtIiB4dW9uZyBjYSBsYW5oIGhhaSBW aWV0IA0KTmFtICJudW90IiBjYSBoYWkgZGFvIEhvYW5nIFNhIC0gVHJ1b25nIFNhIGR1YSB2ZSB0 aHVvYyBIb2EgTmFtOyBkZW4gdmllYyBsYXAgc2FuIA0KYmF5IHF1YW4gc3UgdHJlbiBkYW8gSG9h bmcgU2EgdmEgeGF5IG5oaWV1IHRoYW5oIHRyaSBjYW8gb2Mga2llbiBjbyBwaGFpIGtob25nPyBU aGFtIA0KY2hpIGdhbiBkYXkgZGF1IHRoYW5nIDEyLzIwMDkgVHJ1bmcgUXVvYyBjb24gYmF0IGdp dSB0YXUgZGFuaCBjYSBjdWEgbmd1IGRhbiBRdWFuZyANCk5nYWkgdmUgZGFvIFBodSBMYW0gdGh1 b2MgcXVhbiBkYW8gSG9hbmcgU2EgZGUgaGFuaCBoYS4gSG9pIG5naGUgY2EgVmlldCBOYW0gZGEg DQp0aG9uZyBrZSBuYW0gMjAwOSAiVHJ1bmcgUXVvYyBkYSBiYXQgZ2l1IDQgdnUgdm9pIDE3IHRh dSB2YSAyMTAgbmd1IGRhbiIsIHRpY2ggdGh1IG5ndSANCmN1IHNhbiBwaGFtIGdheSB0aGlldCBo YWkga2hvYW5nIDggdHkgVk5EIGJ1b2MgY2hpbmggcGh1IFZpZXQgTmFtIHBoYWkgcmEgY29uZyBo YW0gDQpwaGFuIGRvaSAoVHVvaSBUcmUgbmdheSAxMyAmIDE1LzEyLzIwMDkpLiBOZ2F5IGRhdSBu YW0gMjAxMCwgVHJ1bmcgUXVvYyBjb24gY29uZyBibyB2aWVjIA0KcGhhdCB0cmllbiBkdSBsaWNo IHRyZW4gZGFvIEhvYW5nIFNhIFZpZXQgTmFtIHZhIGR1YSBuaGlldSB0YXUgY2EgY3VhIG5ndSBk YW4gDQp4YW0gbGFuIGxhbmggaGFpIFZpZXQgTmFtLCBjbyBub2kgY2hpIGNhY2ggY3VhIFRodWFu IEFuIChIdWUpIDI0IGhhaSBseSB2ZSBwaGlhIERvbmcgDQpCYWMgKFR1b2kgVHJlIG5nYXkgMDUv MDEvMjAxMCkuDQoNCkRheSBjaGluaCBsYSBoYXUgcXVhIHR1IHN1IGNvIHkga2hvbmcgZ2lhaSBx dXlldCBkdXQgZGllbSB2dSBUNCAtIFRDSUkgZGUgImJvbiB0YXkgc2FpIA0KVHJ1bmcgUXVvYyIg bW9jIG5vaSBnaXVwIFRydW5nIFF1b2MgbmdheSBjYW5nIGJhbmggdHJ1b25nIGxhbmggaGFpIHV5 IGhpZXAgVmlldCANCk5hbS4NCg0KNC4gQ29uIHRyZW4gZGF0IGxpZW4gaGF1IHF1YSBjdWEgdmll YyBUNCAtIFRDSUkgZGEgZHVhIGRlbiB2aWVjIEJDVCByYSBrZXQgbHVhbiBjaG8ga2hhaSANCnRo YWMgQm94aWMgVGF5IE5ndXllbiBiYXQgY2hhcCB5IGtpZW4gdHJvbmcgdGh1IERhaSB0dW9uZyBW byBOZ3V5ZW4gR2lhcCBndWkgVGh1IA0KVHVvbmcgQ2hpbmggUGh1IGt5IG5nYXkgMDUvMDEvMjAw OSBkYSBjaGkgcm86IHR1IDE5ODAgY2hpbmggcGh1IGRhIGhvcCB0YWMgdm9pIGtob2kgDQpDT01F Q09OIGtoYW8gc2F0IEJveGljIFRheSBOZ3V5ZW4gdmEgY2FjIGNodXllbiBnaWEgTGllbiBYbyBk YSBraHV5ZW4gY2hpbmggcGh1IA0KdGEga2hvbmcgbmVuIGtoYWkgdGhhYyBkbyBuaGlldSBuZ3V5 IGhhaSBnYXkgcmEgbGF1IGRhaSBjaG8gaGUgc2luaCB0aGFpIGtob25nIGtoYWMgcGh1YyANCmR1 b2MgY2hvIGRhbiBjdSBUYXkgTmd1eWVuIHZhIGNhIGNobyBEb25nIEJhbmcgTmFtIEJvLiBEYXkg bGEgZHUgYW4gbG9uIG5odSBEdW5nIA0KUXVhdCB2aSBzYW8gQkNUIHR1IGtldCBsdWFuIGJhdCBj aGFwIGx1YXQgVG8gQ2h1YyBRdW9jIEhvaSBkYSBxdXkgZGluaCBsYSBwaGFpIGR1b2MgDQpRdW9j IEhvaSAicXV5ZXQgZGluaCBrZSBob2FjaCBwaGF0IHRyaWVuIGtpbmggdGUgeGEgaG9pIGN1YSBk YXQgbnVvYyIgKE11YyAzIERpZXUgMikuIA0KRGVuIG5heSBjb2kgbmh1IHZpZWMgZGEgcm9pLCBU cnVuZyBRdW9jIGRhIGR1b2MgaG9wIGRvbmcgZHVhIHRoaWV0IGJpIHZhIGhhbmcgdHJhbSANCmNv bmcgbmhhbiB0cmEgaGluaCB2YW8gVGF5IE5ndXllbiBtYSBiYW8gY2FvIHRhYyBkb25nIG1vaSB0 cnVvbmcgdmFuIGNodWEgZHVvYyBsYW0gDQpybyB0cnVvYyBjaGF0IHZhbiBjdWEgbmhpZXUgZGFp IGJpZXUgUXVvYyBIb2kgdGFpIGt5IGhvcCB2dWEgcXVhLiBEYXkgY28gcGhhaSBsYSBUcnVuZyAN ClVvbmcgRGFuZyBtYSB0cmFjaCBuaGllbSBuZ3VvaSBkdW5nIGRhdSBsYSBUQlQgZGVuIEJDVCB2 YSB0aHVvbmcgdHJ1YyBCQlQgZGEgY28gDQp5ICJsYW0gdGhheSBjb25nIHZpZWMgY3VhIHRvIGNo dWMga2hhYyB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmkiIG1hIGN1b25nIGxpbmggMTk5MSBkYSAN CmdoaSBybyBsYSAiRGFuZyBraG9uZyBkdW9jIGxhbSIuIFR1IGtldCBsdWFuIG5heSBjdWEgQkNU IGRhIGxhbSB0aGF5IHRvIGNodWMgUXVvYyANCkhvaSB0cm9uZyBoZSB0aG9uZyBjaGluaCB0cmkg ZGUgY2hpbmggcGh1IHR1IHkgbGFtIGtob25nIGNhbiBxdXlldCBkaW5oIGN1YSBRdW9jIEhvaSAN CnBoYWkga2hvbmc/IERheSBjYW5nIGxvIHJvIHN1IGNoaSBkYW8gbmdhbSBjdWEgYmUgbHUgdGF5 IHNhaSBUcnVuZyBRdW9jIG1hIGNhYyB2dSB2aWVjIA0KdHJlbiBCaWVuIERvbmcgVHJ1bmcgUXVv YyBkYSBnYXkgcmEgY2hvIG5ndSBkYW4sIHZhIFRydW5nIFF1b2MgY2FuZyBsYW4gdG9pIGNhbmcg Y28geSANCmRheSBkdWEgdmllYyB0aHVjIGhpZW4gY2FjIGR1IGFuIHRob2F0IG51b2MgdGFpIFRQ LiBIQ00/DQoNCihBbmggY2h1cDogTGUgVGhhbmggSGFpIC0gVXkgVmllbiBCQ1QgKQ0KDQo1LiBY aW4gaG9pIFRCVCwgQkNULCBCQlQgdmkgc2FvIHRvaSBsaWVuIHR1YyBjbyBkb24gdG8gY2FvIG9u ZyBMZSBUaGFuaCBIYWkgLSBVeSBWaWVuIA0KQkNUIC0gQmkgVGh1IFRoYW5oIFV5IFRQLiBIQ00g dHUgSG9pIG5naGkgVHJ1bmcgVW9uZyAoSE5UVykgMyBkZW4gMTEgKHRydSANCkhOVFcgOCAmIDkp IGRldSBjbyB2YW4gYmFuIGd1aSBFTVMgY28gbmd1b2kga3kgbmhhbiBtYSBraG9uZyBkdW9jIGdp YWkgcXV5ZXQgdmEgDQp0cmEgbG9pIHRoZW8gZGlldSBsZSBEYW5nIHF1eSBkaW5oLiANClVCS1RU VyBkYSA0IGxhbiBjdSBjYW4gYm8gbGFtIHZpZWMgdm9pIHRvaSB0cnVjIHRpZXAgdGFpIG5oYSB2 YSB0YWkgdmFuIHBob25nIHBoaWEgDQpOYW0sIGRhIGNobyBiaWV0IFRydW5nIFVvbmcgY28gcmEg MyB0aG9uZyBiYW8gY2hpIHBoZSBiaW5oIG9uZyBMZSBUaGFuaCBIYWksIGxhbSB0b2kgDQpyYXQg YmF0IGJpbmguIA0KRHUgbHVhbiB0cmVuIG1hbmcgdmEgdHJlbiBtaWVuZyBuZ3VvaSBkYW4gZGV1 IG5vaSBMZSBUaGFuaCBIYWkgY2hpbmggbGEgbmd1b2kgZ29jIA0KSG9hLiBDbyBsZSB2aSB0aGUs IGNhYyBkdSBhbiB0aG9hdCBudW9jIGxvbiBuaGF0IGN1YSBUUC4gSENNLCBraGkgb25nIExlIFRo YW5oIEhhaSBsYSANCkNodSBUaWNoIFV5IEJhbiBOaGFuIERhbiAoQ1QgVUJORCksIFRydW5nIFF1 b2MgZGV1IHRydW5nIHRoYXUsIGRlIHJvaSBraG9uZyBkdSANCmFuIG5hbyBsYW0gZHVuZyB0aG9p IGhhbiwgY3Uga2VvIGRhaSBnYXkga2hvIGRhbiwgZ2F5IGFjaCB0YWMgZ2lhbyB0aG9uZyBuaGll dSBuYW0gbGllbi4gDQoNCk5nYXkgdnUgUENJIHBoaWEgTmhhdCBCYW4gZGEga2V0IHRvaSBuZ3Vv aSBkdWEgaG9pIGxvIGNobyBjYW4gYm8gVmlldCBOYW0gbWEgdHJ1bmcgDQpVb25nIGN1IGR1bmcg ZGFuZywgaGV0IG5vaSBsdWF0IGNodWEgcXV5IGRpbmgsIGR1bmcgY2h1bmcgY3UgbnVvYyBuZ29h aSBkZSB4dSBseTsgZGVuIA0Ka2hpIE5oYXQgY3VuZyBjYXAgdmFuIGJhbiBjaHVuZyBjdSBsYWkg ZGljaCBrZW8gZGFpLCByb2kgY2hpIGR1YSByYSB4ZXQgeHUgdmllYyBjaG8gdGh1ZSANCm5oYSBs YW0gdmFuIHBob25nLCBraG9uZyBkYW0gdmFjaCByYSB0cmFjaCBuaGllbSBjaHUgZHUgYW4gY2hp bmggbGEgQ1QgVUJORCBMZSANClRoYW5oIEhhaSAtIGxhIFV5IFZpZW4gQmFuIENoYXAgSGFuaCBL aG9hIDksIG5heSBsYSBCaSB0aHUgVGhhbmggdXksIFV5IHZpZW4gQkNULiANCg0KVGhlbyBkaWV1 IGxlIERhbmcgZGEgcXV5IGRpbmggdGhhbSBxdXllbiB0aGkgaGFuaCBreSBsdWF0IERhbmcgdmll biB2aSBwaGFtLCB0YWkgRGlldSANCjM2LCBkYSBjaGkgcm8gdGFpIE11YyAzIGxhICJCQ0hUVyBx dXlldCBkaW5oIGNhYyBoaW5oIHRodWMga3kgbHVhdCBEYW5nIHZpZW4ga2UgY2EgDQpVVkJDSFRX LCBVVkJCVCwgVVZCQ1QiOyB0YWkgc2FvIGdhbiBoZXQgbmhpZW0ga3kgMTAgcXVhIDExIGt5IEhv aSBOZ2hpIA0KQkNIVFcgbWEga2hvbmcgZHVhIHJhIHh1IGx5IGt5IGx1YXQgb25nIExlIFRoYW5o IEhhaSB0aGVvIGNhYyBub2kgZHVuZyBkb24gdG8gY2FvIA0KY3VhIHRvaSBtYSBjaGkgcmEgdGhv bmcgYmFvIHBoZSBiaW5oLiANCg0KVG9pIGRhIG5oaWV1IGxhbiBwaGF0IGJpZXUga2hpIGxhbSB2 aWVjIHZvaSBjYW4gYm8gVUJLVFRXIHZhIGNhIHRyZW4gZG9uIGdvaSBITlRXIGRvaSANCmtoYWkg dHJ1IERhbmcgYmFpIGJvIGNhYyBjaHVjIGRhbmggY3VhIG9uZyBMZSBUaGFuaCBIYWksIHZpIHNh byBUcnVuZyBVb25nIERhbmcgDQpraG9uZyBnaWFpIHF1eWV0IHZhIHRyYSBsb2kgdG9pIHRoZW8g ZGlldSBsZSBEYW5nIHF1eSBkaW5oPw0KDQpJSS4gS0lFTiBOR0hJIA0KDQpIaWVuIG5heSBUcnVu ZyBVb25nIGRhbmcgY2h1YW4gYmkgdGllbiB0b2kgRGFpIEhvaSAxMSB0dSB2aWVjIHRvIGNodWMg RGFpIEhvaSBEYW5nIA0KY2FjIGNhcCBkZW4gbGFwIGJhbiBkdSB0aGFvIGN1b25nIGxpbmggYm8g c3VuZyB2YSBiYW8gY2FvIGNoaW5oIHRyaSwgdG9pIGtpZW4gbmdoaSBUQlQgLSANCkJDVCAtIEJC VCBjYW4gZ2lhaSBxdXlldCBkdXQgZGllbSBjYWMgdnUgYW4gY2hpbmggdHJpIG5naGllbSB0cm9u ZyBtYSBLaG9hIDkgZGEgYmFuIA0KZ2lhbyBsYWkgdmEgbm9pIGR1bmcgdG8gY2FvIGN1YSBEL2Mg VnUgTWluaCBUcmkgdmEgdG9pLCBuaHUgc2F1Og0KDQoxLiBUQ0lJIGxhIGNvIHF1YW4gdGluaCBi YW8gY3VhIFZpZXQgTmFtLCBUcnVuZyBVb25nIERhbmcgY2FuIGR1YSB2YW4gYmFuIGN1YSBEL2Mg DQpWdSBNaW5oIFRyaSByYSBnaWFpIHF1eWV0IHRob25nIHF1YSBVQktUVFcsIGRpZXUgdHJhIHRo dSB0aGFwIGNodW5nIGN1IHZhIG5naGllbSANCnR1YyB0aWVwIHRodSB5IGtpZW4gY3VhIERhaSB0 dW9uZyBWbyBOZ3V5ZW4gR2lhcCBjdW5nIG5odSBjdWEgRGFuZyB2aWVuIGxhbyB0aGFuaCANCmNh Y2ggbWFuZyB2YSBEYW5nIHZpZW4gaHV1IHRyaSBjdWEgdG9pIHRoZW8gZHVuZyBkaWV1IGxlIERh bmcgZGEgcXV5IGRpbmguIFRydW9jIGhldCANClRCVCBjdW5nIEJDVCB2YSBCQlQgY28gY3VvYyBo b3AgbW8gcm9uZyBjbyBjYSBVQktUVFcsIDIgY3V1IFRCVCB2YSBtb3Qgc28gY3V1IA0KVXkgVmll biBUcnVuZyBVb25nIGRhIGNvIHRodSBndWkgZGVuIGRlIGdpYWkgcXV5ZXQgZHV0IGRpZW0gbGEg cGhhaSBnaWFpIHRhbiBUQ0lJIGR1YSANCnZlIEJvIFRvbmcgVGhhbSBNdXUgY3VhIEJvIFF1b2Mg UGhvbmcgbmh1IHRydW9jIGRheS4NCg0KKEFuaCBjaHVwOiBEYWkgdHVvbmcgVm8gTmd1eWVuIEdp YXApDQoNCjIuIEtpZW4gbmdoaSBUQlQgY2FuIHR1IGtpZW0gZGllbSB2ZSBsb2kgbm9pIHZvaSBE YWkgdHVvbmcgVm8gTmd1eWVuIEdpYXAgdHJ1b2MgZGF5IA0KdmUgdmllYyBhaSB0aGFuZyBxdWFu IGhhbSBUcnVuZyB0dW9uZz8gYWkgZHVhIGxhbSBUb25nIEN1YyBUcnVvbmcgcm9pIGxlbiBUaHUg DQpUcnVvbmcgQm8gUXVvYyBQaG9uZyBjaG8gTmd1eWVuIENoaSBWaW5oPyBOZXUgVEJUIHR1IHBo YW4gbGFpIGxvaSBub2kgdm9pIERhaSANCnR1b25nIFZvIE5ndXllbiBHaWFwLCBiYXQgY2hhcCBj YSB0aHUgRGFpIHR1b25nIGRhIGt5IGdvaSB2YSBiYXQgY2hhcCB0aHUgY3VhIGxhbyANCnRoYW5o IGN1dSBjaGllbiBiaW5oIGRhIGNvaSBOZ3V5ZW4gQ2hpIFZpbmggbGEgIkhvIHBodSBzaW5oIGNh dSB0dSIgdGhpIGRvIGJhbiB0YXkgY2hpIA0KZGFvIG5hbz8gVEJUIGxhIHRydW9uZyBiYW4gY2hp IGRhbyAiSG9jIHRhcCB2YSBsYW0gdGhlbyB0YW0gZ3VvbmcgZGFvIGR1YyBIbyBDaGkgDQpNaW5o IiBoYXkgdHUgbGllbiBoZSBkYSBob2MgZHVvYyBnaSwgZGEgbGFtIHRoZW8gbmh1IHRoZSBuYW8g ZG9pIHZvaSBuZ3VvaSBob2MgdHJvIHh1YXQgDQpzYWMgY3VhIEJhYyBIbyBsYSBjbyBEYWkgdHVv bmcgTmd1eWVuIENoaSBUaGFuaD8gSGF5IGR1bmcgdHUgY2FjaCBsYSBCVERVUVNUVyANCmxhIFRC VCBkZSBkdWEgImNhdSB0dSIgTmd1eWVuIENoaSBWaW5oIHJhIHh1IGx5IGtob25nIGNoaSBiYW5n IGt5IGx1YXQgRGFuZyBsYSBraGFpIA0KdHJ1IHJhIGtob2kgRGFuZywgbWEgY2EgdmUgcXVhbiBw aGFwIHRydWF0IGJvIGNhYyBjaHVjIGRhbmggdHUgVHJ1bmcgdHVvbmcgLSBUb25nIEN1YyANClRy dW9uZyBUQ0lJIC0gZGVuIFRodSBUcnVvbmcgQm8gUXVvYyBQaG9uZyBtb2kgdGh1YyBzdSBsYSBs YW0gdGhlbyB0YW0gZ3VvbmcgZGFvIA0KZHVjIEhvIENoaSBNaW5oIHRydW9jIGtoaSBidW9jIHZh byBEYWkgSG9pIDExLg0KDQozLiBMYSBuZ3VvaSBkdW5nIGRhdSBUcnVuZyBVb25nIERhbmcgS2hv YSAxMCBUQlQgY2FuIGNvIHRyYWNoIG5oaWVtIGdpYWkgcXV5ZXQgZHV0IA0KZGllbSBjYWMgdnUg YW4gY2hpbmggdHJpIG5naGllbSB0cm9uZyBtYSBLaG9hIDkgZGEgYmFuIGdpYW8gbGFpIHRydW9j IGtoaSBidW9jIHZhbyBEYWkgDQpIb2kgMTEuIFRydW9jIHRpZW4gbGEgdnUgU2F1IFN1IC0gdnUg VDQgZGVuIHZ1IFRDSUksIGRlIHhvYSBzbyBUQ0lJIGR1YSB2ZSBCbyBUb25nIA0KVGhhbSBNdXUg dGh1b2MgQm8gUXVvYyBQaG9uZzsgdmEgZ2lhaSBxdXlldCBkdXQgZGllbSB2dSBEYW5nIHRpY2gg b25nIExlIER1YyBBbmggDQpkZSB4b2EgdGVuIHRyb25nIERhbmcgZHUgb25nIHRhIGxhIG5ndXll biBEYWkgdHVvbmcsIG5ndXllbiBDaHUgdGljaCBudW9jIGRlIHRyYSBsYWkgc3UgDQp0cm9uZyBz YW5nIGN1YSBEYW5nIENvbmcgU2FuIFZpZXQgTmFtLCBjdWEgTmhhIE51b2MgVmlldCBOYW0gbWEg ZHUgbHVhbiB0cm9uZyB2YSANCm5nb2FpIG51b2MgbHVvbiBtb25nIGNoby4NCg0KNC4gS2llbiBu Z2hpIFRCVCBjbyB0cmFjaCBuaGllbSBjdW5nIEJDVCwgQkJUIHZhIFVCS1RUVyBEYW5nIGR1YSBj YWMgbm9pIGR1bmcgDQp0byBjYW8gb25nIExlIFRoYW5oIEhhaSBjdWEgdG9pIHZhIGJpZW4gYmFu IDQgbGFuIGNhbiBibyBVQktUVFcgZGEgbGFtIHZpZWMgdm9pIHRvaSANCmRlIGR1YSByYSBITkJD SFRXIHh1IGx5IGt5IGx1YXQgdGhlbyBkdW5nIHF1eSBkaW5oIHRhaSBNdWMgMyBEaWV1IDM2IGRp ZXUgbGUgRGFuZyANCm1hIHRvaSBkYSBuaGlldSBsYW4ga2llbiBuZ2hpIHRyZW4gZG9uLCB0cmVu IGJpZW4gYmFuIGxhbSB2aWVjIHZvaSBjYW4gYm8gVUJLVFRXIGxhIA0Ka2hhaSB0cnUgb25nIExl IFRoYW5oIEhhaSByYSBraG9pIERhbmcsIHR1b2MgYm8gY2FjIGRhbmggaGlldSBVVkJDVCwgQmkg dGh1IFRoYW5oIA0KVXkgdHJ1b2Mga2hpIFRQLiBIQ00gY2h1YW4gYmkgRGFpIEhvaSBEYW5nIEJv IGRlIHRpZW4gdG9pIERhaSBIb2kgMTEuDQoNClRyZW4gZGF5IGxhIGNhYyBub2kgZHVuZyBjaGF0 IHZhbiB2YSBraWVuIG5oaSBjdWEgdG9pIHlldSBjYXUgVHJ1bmcgVW9uZyBEYW5nIHRydW9jIA0K aGV0IGxhIFRCVCwgQkNUIHZhIEJCVCBwaGFpIGdpYWkgcXV5ZXQgdmEgdHJhIGxvaSB0b2kgdGhl byBxdXkgZGluaCBjdWEgZGlldSBsZSBEYW5nLg0KDQpLaW5oIGNodWMgY2FjIGRvbmcgY2hpIG1h bmgga2hvZSBkZSBzYW5nIHN1b3QgbGFtIGhldCBuaGllbSB2dSBjdWEgbmhpZW0ga3kgMTAgbGEg DQpwaGFpIGdpYWkgcXV5ZXQgZHV0IGRpZW0gY2FjIHZ1IGFuIGNoaW5oIHRyaSBuZ2hpZW0gdHJv bmcgdmEgY2FjIHRvIGNhbyBjdWEgRGFuZyB2aWVuIA0KdHJ1b2MgRGFpIEhvaSAxMS4NCg0KTmd1 b2kgS3kgRG9uDQpNQUkgRE9DDQooMDk1ODA1NDEzNikgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ny8yMDEwMTExOTE3NDYxMy5hc3B4IE1pbmggTmFtIDE5 LzExLzIwMTAgMTc6NDYgDQoNClRQIEhDTTogTmdhcCBudW9jLCBrZXQgeGUgbmhpZXUgdHV5ZW4g ZHVvbmcgIA0KICANCihUTk8pIENvbiBtdWEgbG9uIGtlbyBkYWkgaG9uIDMgZ2lvIGRvbmcgaG8g Y2hpZXUgMTkuMTEgZGEga2hpZW4gbmhpZXUgdHV5ZW4gZHVvbmcgDQp0cmVuIGRpYSBiYW4gVFAu SENNIGJpZW4gdGhhbmggc29uZyB2YSBnYXkga2V0IHhlIG5naGllbSB0cm9uZy4gDQoNCkNhYyBj b24gZHVvbmcgRGllbiBCaWVuIFBodSwgWG8gVmlldCBOZ2hlIFRpbmgsIEJhY2ggRGFuZywgRGlu aCBCbyBMaW5oLCBRdW9jIGxvIA0KMTMgKFEuIEJpbmggVGhhbmgpLCBYYSBsbyBIYSBOb2kgKFEu OSksIEtpbmggRHVvbmcgVnVvbmcsIEhvbmcgQmFuZyAoUS42KS4uLiBuZ2FwIA0Kc2F1IHRyb25n IG51b2MsIGtoaWVuIG1vaSBwaHVvbmcgdGllbiBnaWFvIHRob25nIGRpIGNodXllbiByYXQga2hv IGtoYW4uIA0KDQpLaG9uZyBpdCBuZ3VvaSBiaSBjaGV0IG1heSB4ZSBkbyBwaGFpIGJhbmcgcXVh IG5odW5nIGRvYW4gbnVvYyBuZ2FwIHNhdSwgdmEgaG8gdHJvIA0KdGhhbmgga2hhY2ggaGFuZyBj dWEgbmh1bmcgdGhvIHN1YSB4ZSAiYW4gdGhlbyIgbnVvYyBuZ2FwLCB2b2kgZ2lhIGNodWkgYnVn aSB0dSANCjIwLjAwMC0zMC4wMDAgZG9uZy9sYW4uIE5oaWV1IG5ndW9pIGtoYWMgdGhpIGRhbmgg Y2hvbiBjYWNoIGJpIGJvbSBsb2kgbnVvYyBkZSBkYXQgeGUuDQoNCkRvIG5oaWV1IHR1eWVuIGR1 b25nIGJpIG5nYXAgc2F1IHZhIHhheSByYSB0aW5oIHRyYW5nIHVuIHhlIGtlbyBkYWksIG5oaWV1 IG5ndW9pIHR1eSBkYSANCmhldCBnaW8gbGFtIHZpZWMgdmFuIG5hbiBsYWkgY28gcXVhbiBob2Fj IGdoZSB2YW8gcXVhbiBudW9jIG5nb2kgY2hvIGhvaSBsYXUgbW9pIHJhIHZlLiANCg0KRGFuZyBs dXUgeSwgZG8gbXVhIGxvbiBrZW0gZ2lvIG1hbmgsIHRhaSBtb3Qgc28gdHV5ZW4gZHVvbmcsIGRp ZW4gaGluaCBuaHUgSGFpIEJhIA0KVHJ1bmcgKHNhdSBCdXUgZGllbiBUUC5IQ00pLCBtb3Qgc28g Y2F5IHhhbmggYmF0IGdvYyBuZ2EgcmEgZHVvbmcsIG1heSBtYW4gbGEgDQpraG9uZyBjbyB0aGll dCBoYWkgdmUgbmd1b2kuDQpEZW4gMTcgZ2lvIDMwIHBodXQgbmdheSAxOS4xMSwgdGluaCBoaW5o IG5nYXAgbnVvYyB2YSB1biB4ZSB0cmVuIG5oaWV1IHR1eWVuIGR1b25nIHZhbiANCmNodWEgZHVv YyBjYWkgdGhpZW4sIG1hYyBkdSBjbyBtYXQgbHVjIGx1b25nIENhbmggc2F0IGdpYW8gdGhvbmcu IA0KDQooQW5oOiBCYWMgdGFpIHhlIG9tIG5nb2kgY2hvIGtoYWNoIGdpdWEgImJpZW4gbnVvYyIg dGFpIGR1b25nIExlIFZhbiBTeSAoUS4zKQ0KKEFuaDogS2h1IHBobyB2YW4gaG9hIGNoaW0gdHJv bmcgYmllbiBudW9jKQ0KKEFuaDogQ2hvIE5ndXllbiBWYW4gVHJvaSAoUS4zKSB2YW5nIGhvZSkN CihBbmg6IER1b25nIExlIFZhbiBTeSBiaWVuIHRoYW5oIHNvbmcgc2F1IGNvbiBtdWEgbG9uIGNo aWV1IDE5LjExKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDQ1LzIwMTAxMTA2MTg0NzUyLmFzcHggTWluaCBOYW0gKHRodWMgaGllbikgMDYvMTEvMjAxMCAx ODo0NyANCg0KVFAgSENNOiBNdWEgbG9uIGdheSBuZ2FwIG5oaWV1IG5vaSAgDQogIA0KKFROTykg Q29uIG11YSBsb24gdmFvIGNoaWV1IG5heSAoNi4xMSkgZGEgYmllbiBuaGlldSB0dXllbiBkdW9u ZyB0YWkgVFAuSENNIHRoYW5oIHNvbmcuIA0KTmhpZXUgdHV5ZW4gZHVvbmcgdGh1b2MgY2FjIHF1 YW4gMiwgNywgOCwgMTIsIFRodSBEdWMsIEJpbmggVGhhbmgsIEdvIFZhcCwgVGFuIA0KQmluaC4u LiBuZ2FwIHNhdSB0cm9uZyBudW9jLiBOZ2F5IGNhIG5oaWV1IHR1eWVuIGR1b25nIG8gdHJ1bmcg dGFtIFEuMSBuaHUgQ28gQmFjLCANCk5ndXllbiBLaGFjIE5odSwgRGUgVGhhbS4uLiBjdW5nIGJp IGJpZW4gdGhhbmggc29uZywga2hpZW4gY2FjIHBodW9uZyB0aWVuIGdpYW8gDQp0aG9uZyBkaSBs YWkga2hvIGtoYW4uIA0KDQpEdW9pIGNvbiBtdWEgdGFtIHRhLCBkdW9uZyBOZ3V5ZW4gSHV1IENh bmgsIFEuQmluaCBUaGFuaCBuaGFuaCBjaG9uZyB0aGFuaCBiaWVuIA0KbnVvYyBtZW5oIG1vbmcu IE5oaWV1IGNobyBuZ2FwIHNhdSBkZW4gMCw4bS4gUmF0IG5oaWV1IG90bywgeGUgbWF5IGtoaSBk aSBxdWEgZG9hbiANCmR1b25nIG5heSBkYSBiaSBjaGV0IG1heSBnaXVhIGR1b25nLg0KDQpLaG8g c28ga2hvbmcga2VtIG5ndW9pIGRpIGR1b25nIGxhIGNhYyBobyBkYW4gc29uZyBkb2MgaGFpIGJl biBkdW9uZyBuYXksIGtoaSBsdW9uZyANCm90byBkaSBxdWEgdGFvIG5lbiBzb25nIG51b2MgdHJh biB2YW8gbmhhLCBraGllbiBuZ3VvaSBkYW4gZHVuZyBtb2kgdGh1IGNvIHRoZSBkZSBjaGUgY2hh biB2YSBkdWEgbmhhdSB0YXQgbnVvYy4NCg0KVHJvaSBjYW5nIHRvaSwgZHVvbmcgbmdhcCBuYW5n IGtoaWVuIGNhYyB4ZSBvdG8sIHhlIGdhbiBtYXkgYmkgY2hldCBtYXkgbGEgbGlldC4gTmhpZXUg DQpkb2FuIHRyZW4gZHVvbmcgTmd1eWVuIEh1dSBDYW5oIGJpIG5nYXAgbmFuZywgeGUgZ2FuIG1h eSBraG9uZyB0aGUgZGkgZHVvYyBwaGFpIA0KcXVheSBkYXUsIHRhbyBuZW4gc3UgaG9uIGxvYW4g dmUgZ2lhbyB0aG9uZyBvIGtodSB2dWMgbmF5Lg0KDQooQW5oOiBOdW9jIG5nYXAgdHJhbiB2YW8g bmhhLCBuZ3VvaSBuaGEgbW90IGhvIGRhbiBtYXQgdGllbiBkdW9uZyBOZ3V5ZW4gSHV1IENhbmgt IA0KUS5CaW5oIFRoYW5oLCBkdWEgbmhhdSB0YXQgbnVvYykNCg0KKEFuaDogTmhpZXUgeGUgZ2Fu IG1heSBiaSBjaGV0IG1heSBkbyBuZ3VvaSBkaWV1IGtoaWVuIGxpZXUgbGluaCB2dW90IHF1YSBt dWMgbnVvYyANCm5nYXAgc2F1IHBoYWkgdHJhIGdpYSBjaG8gbW90IGxhbiBjaHVpIGJ1Z2kgbGEg MjAuMDAwIGRvbmcpIA0KDQooQW5oOiBEdW9uZyBOZ3V5ZW4gSHV1IENhbmggYmllbiB0aGFuaCBi aWVuIG51b2MgbWVuaCBtb25nKSANCg0KKEFuaDogTmhpZXUgcGh1b25nIHRpZW4gZ2lhbyB0aG9u ZyBsaWV1IGxpbmggdnVvdCBxdWEgZG9hbiBudW9jIG5nYXAgc2F1IG5odW5nIGN1b2kgY3VuZyBj dW5nIGRhbmggY2hhbyB0aHVhKQ0KDQooQW5oOiBLaHVuZyBjYW5oIGhvbiBsb2FuIGRvIHhlIGNo ZXQgbWF5IGJpIGRvbiB1LCBraGllbiBjYWMgdGhvIGNodWkgYnVnaSBsYW0gdmllYyBraG9uZyBu Z2hpIHRheSkNCg0KKEFuaDogRHVvbmcgTGUgVmFuIFN5IChRLjMpIHZ1YSBkdW9jIHRyYW5nIG5o dWEgdmFpIG5nYXkgY3VuZyBkYSBjaGltIHRyb25nIGJpZW4gbnVvYykNCg0KKEFuaDogVHV5ZW4g ZHVvbmcgRGUgVGhhbSBvIGtodSB2dWMgdHJ1bmcgdGFtIFRQIGN1bmcgYmkgbmdhcCBzYXUgdHJv bmcgbnVvYykNCg0KKEFuaDogTnVvYyBuZ2FwIHRyYW4gdmFvIGNhYyBobyBraW5oIGRvYW5oIG1h dCB0aWVuIGR1b25nIExlIFZhbiBTeSAtIFEuMykgDQoNCkRlbiAxOCBnaW8sIHRpbmggaGluaCBu Z2FwIG51b2MgdmEgZ2lhbyB0aG9uZyB0YWkga2h1IHZ1YyBkdW9uZyBOZ3V5ZW4gSHV1IENhbmgg dmFuIGNodWEgZHVvYyBjYWkgdGhpZW4uIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvQ2F1 LVZhbi1UaGFuaC0yLWNvLXRoZS1zYXAtYmF0LWN1LWx1Yy1uYW8vNjUwNTAwMjcvMTU3LyBWTkUg VmlldCBCYW8gKFRoZW9fVm5NZWRpYSkgMzAvMy8yMDA2LCAyMToyMCBHTVQrNyANCg0KVFAgSENN OiBDYXUgVmFuIFRoYW5oIDIgY28gdGhlIHNhcCBiYXQgY3UgbHVjIG5hbyCWIE9uZyBMZSBUaGFu aCBIYWkgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIA0KDQpEbyBsYSBub2kgZHVuZyB0cm9uZyBjb25n IGRpZW4ga2hhbiBjdWEgQm8gR2lhbyB0aG9uZyBWYW4gdGFpIHZ1YSBndWkgVUJORCBUUCANCkhD TS4gVHJvbmcgZG8gY2hpIHJvLCBuZ29haSBraHUgdnVjIHF1YW5oIGxvIHRodW5nIGRlbSAxNS8z LCBuaGlldSBoYW5nIG11YyBraGFjIA0KY3VhIGNheSBjYXUgbmF5IGNvIHRoZSBiaSBzYXAgYmF0 IGN1IGx1YyBuYW8uIEhhbmcgY2h1YyBuZ2hpbiB4ZSB0YWkgbHV1IHRob25nIHF1YSBWYW4gDQpU aGFuaCAyIG1vaSBuZ2F5IGRhbmcgdHJvbmcgdGluaCB0cmFuZyBjdWMga3kgbmd1eSBoaWVtLg0K DQpUaGVvIGNvbmcgZGllbiwgQm8gR2lhbyB0aG9uZyB2YW4gdGFpIHRob25nIG5oYXQgdm9pIFNv IEdpYW8gdGhvbmcgY29uZyBjaGluaCB2ZSB2aWVjIA0KYm9tIGJlIHRvbmcgbGFwIGRheSBsbyBy b25nIGRvIG5lbiBkdW9uZyBiaSBsdW4gZHVvaSBiYW4gYmUgdG9uZyBxdWEgZG8gYmkgdGh1bmcg ZGVtIA0KMTUvMy4gRG9pIHZvaSBiYSBiYW4gYmUgdG9uZyBjb24gbGFpLCBnaWFwIGtodSB2dWMg aGFtIGNodWkgc28gMSB2YSBzbyAyLCBwaGFpIGRlIHBob25nIA0KY28gdGhlIGJpIHNhcCBiYXQg bmdvIGdheSBhbmggaHVvbmcgbmdoaWVtIHRyb25nIGRlbiBhbiB0b2FuIGdpYW8gdGhvbmcuDQoN ClZlIGxhdSBkYWkgZGUgZGFtIGJhbyB2aWVjIHh1IGx5IHRyaWV0IGRlIGNhYyBraHV5ZXQgdGF0 IGNvIHRoZSBnYXkgcmEgc3UgY28gYmF0IG5nbywgQm8gDQpHaWFvIHRob25nIHZhbiB0YWkgZGUg bmdoaSBVQk5EIFRQIEhDTSBnaWFvIFNvIEdpYW8gdGhvbmcgY29uZyBjaGluaCB2YSBkb24gdmkg dHUgDQp2YW4gbmdoaWVuIGN1dSwgZGUgeHVhdCBjYWMgcGh1b25nIGFuIHN1YSBjaHVhIGhvYW4g Y2hpbmggaG9uIG8gY2FjIG11YyBkbyBraGFjIA0KbmhhdS4NCg0KQ2FjIGRvbiB2aSBkdW9jIGdp YW8gbmhpZW0gdnUgcXVhbiB0cmFjIHRpZXAgdHVjIGNvbmcgdmllYyBjdWEgbWluaCB2YSBjbyBi YW8gY2FvIGRpbmggDQpreSAoaGFuZyB0aGFuZykgY3VuZyBuaHUgYmFvIGNhbyBkb3QgeHVhdCAo bmV1IGNhbiB0aGlldCkgdmUgbmh1bmcgZGllbiBiaWVuIGNvbmcgdHJpbmggDQpvIGtodSB2dWMg Y2F1IHZhIGhhbSBjaHVpIGRlIGNvIGdpYWkgcGhhcCBraXAgdGhvaS4NCg0KQm8gR1RWVCBjdW5n IGx1dSB5LCB2aWVjIHRodWMgaGllbiBuZ2F5IGJpZW4gcGhhcCBsYXAgZGF5IGxvIHJvbmcgZHVv aSBjYWMgYmFuIHF1YSBkbyANCmRvIG5lbiBkdW9uZyBiaSBsdW4gbGEgY2FuIHRoaWV0IGRlIGRh bSBiYW8gdHV5ZXQgZG9pIGFuIHRvYW4gZ2lhbyB0aG9uZy4gVHJvbmcga2hpIGNodWEgDQp0aHVj IGhpZW4geG9uZyB2aWVjIG5heSwgY2FuIGNvIGJpZW4gcGhhcCBjYW5oIGJhbyBjYW4gdGhpZXQg ZG9pIHZvaSBjYWMgcGh1b25nIHRpZW4gcXVhIA0KbGFpIGtodSB2dWMgY2F1IHZhIGhhbSBjaHVp Lg0KDQpDYXUgVmFuIFRoYW5oIDIgbmFtIHRyZW4gdHV5ZW4gdHJvbmcgZGllbSBkaSB0dSBjdWEg bmdvIHBoaWEgRG9uZyBjdWEgVFAgSENNIHZlIA0KY2FuZyBTYWkgR29uLiBIaWVuIG5heSwgbW9p IG5nYXksIGhhbmcgY2h1YyBuZ2hpbiB4ZSB0YWkgbHV1IHRob25nIHF1YSBjYXkgY2F1IG5heS4N Cg0KTWF5IG5nYXkgcXVhLCBkb24gdmkgdGhpIGNvbmcgZGEgY2hvIGRhbyBjYWMgZHVvbmcgcmFu aCBuZ2F5IHZpIHRyaSB0aWVwIG5vaSBnaXVhIHRoYW5oIA0KaGFtIGNodWkgdmEgZHVvbmcgZGFu LiBUYWkgY2FjIHJhbmggZGFvIG5heSBzZSBkYXQgY2FjIHRhbSBjYW8gc3UgY2hhdCBsdW9uZyBj YW8gbyBnaXVhIA0KdmEgZG8gYmUgdG9uZyBtYWMgY2FvIGRlIHRhbyByYSAia2hlIiBjbyBnaWFu IGdpdWEgdGhhbmggaGFtIGNodWkgdmEgZHVvbmcgZGFuLiBQaGlhIA0KdHJlbiBtYXQgZHVvbmcg c2UgbGFwIGRhdCBjYWMgYmFuIGNhbyBzdSB0b25nIGhvcCBkZSB4ZSBxdWEgbGFpIGVtIHRodWFu Lg0KDQpDaGlldSAzMC8zLCB0dSBjYWMgcmFuaCBkYW8gdHJlbiBjbyB0aGUgdGhheSBtb3Qgc28g bG8gcm9uZyBkYSBkdW9jIGxhcCBkYXkgYmUgdG9uZyBtYWMgDQp0aGFwLCBtb3Qgc28gbG8ga2hh YyB2YW4gY2h1YSBkYXkgdmEgc2UgZHVvYyB0aWVwIHR1YyBib20sIHBodW4gYmUgdG9uZyB0cm9u ZyBkZW0gMzAvMy4NCg0KQ3VjIEdpYW0gZGluaCB2YSBxdWFuIGx5IGNoYXQgbHVvbmcgY29uZyB0 cmluaCBnaWFvIHRob25nIGN1bmcgdnVhIGNvIHZhbiBiYW4gbmV1IHJvOiANCmNhYyBnaWFpIHBo YXAgc3VhIGNodWEgZHVvYyBhcCBkdW5nIHBoYWkgZGFtIGJhbyBzYXUgbmF5IGtob25nIHRhbyBy YSBjYWMgbG8gc3V0IGJhdCANCnRodW9uZyBuaHUgZGEgeGF5IHJhOyBoYW4gY2hlIHRvaSBkYSBh bmggaHVvbmcgdG9pIGdpYW8gdGhvbmcgdHJlbiBkdW9uZzsgY2FuIHhlbSB4ZXQsIA0KeHUgbHkg byB0YXQgY2EgY2FjIGtodSB2dWMgbmVuIGR1b25nIGdpYXAgaGFpIGhhbSBjaHVpICg0IHBoaWEp Li4uDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0NoaW5oLVRyaS9UUC1IQ00tQnVjLXh1Yy1uaGlldS12 ZS1jb25nLXRyaW5oLXh1b25nLWNhcC1vLW5oaWVtLzIwNjQxNDE1Lzk2LyBQaGFtIEN1b25nIDA2 LzEyLzIwMDYsIDIyOjQyIEdNVCs3IA0KDQpUUC5IQ006IEJ1YyB4dWMgbmhpZXUgdmUgY29uZyB0 cmluaCB4dW9uZyBjYXAsIG8gbmhpZW0NCg0KVHJvbmcgY2FjIGJ1b2kgdGllcCB4dWMgY3UgdHJp IGN1YSBkYWkgYmlldSBIRE5EIFRQLkhDTSB0YWkgMjQgcXVhbiAtIGh1eWVuLCBjdSB0cmkgZGEg DQpiYXkgdG8gbmhpZXUgYnVjIHh1YyB2ZSB4YXkgZHVuZyBjbyBiYW4sIG1vaSB0cnVvbmcsIGNh aSBjYWNoIGhhbmggY2hpbmguIENhYyB2YW4gZGUgDQpuYXkgc2UgZHVvYyB0aGFvIGx1YW4sIGNo YXQgdmFuIHRhaSBreSBob3AgdGh1IDksIEhETkQgVFAga2hvYSBWSUkga2hhaSBtYWMgdmFvIHNh bmcgDQpuZ2F5IDcvMTIuDQoNCk5oaWV1IGNvbmcgdHJpbmggY2hhbSwgeHVvbmcgY2FwDQoNCihC dW5nIGJpbmggQ2F5IEdvLCAgVFAuSENNICJWdW5nIHJvbiBsdSB0cm9uZyBkbyB0aGkiLiAoYW5o OiBUcmFuIER1eSkNCg0KQ3UgdHJpIGNhYyBxdWFuLCBodXllbiB0aWVwIHR1YyBraWVuIG5naGkg VFAgZGF5IG5oYW5oIGhvbiBudWEgY29uZyB0YWMgY2FpIGNhY2ggaGFuaCANCmNoaW5oLiBDYWMg U28gLSBuZ2FuaCBjYW4gY28gc3UgcGhvaSBob3AgZG9uZyBibyB0cm9uZyB2aWVjIHRoaSBjb25n IGNvIHNvIGhhIHRhbmc6IA0KZGllbiwgbnVvYywgZGllbiB0aG9haS4uLiBWaWVjIG5heSBkYSBu aGlldSBsYW4ga2llbiBuZ2hpIG5odW5nIGNodWEgZHVvYyBraGFjIHBodWMgDQpkYW5nIGtlLCBn YXkgbGFuZyBwaGkgdGllbiBjdWEgdmEgYW5oIGh1b25nIGRlbiBzaW5oIGhvYXQgY3VhIG5ndW9p IGRhbi4gDQoNCkN1IHRyaSBraWVuIG5naGkgVFAgY2hpIGRhbyBjYWMgU28sIG5nYW5oLCBkaWEg cGh1b25nIGNvIHN1IHBob2kgaG9wIGRvbmcgYm8gdHJvbmcgdmllYyANCnRodWMgaGllbiBkYXQg ZG9pIHRlbiBkdW9uZyBnYW4gbGllbiB2b2kgZGlldSBjaGluaCB2YSB0aG9uZyBuaGF0IHNvIG5o YSBtb3QgY2FjaCBraG9hIA0KaG9jIChxdWFuIDEsIEdvIFZhcCwgQmluaCBUYW4pOyB0YW5nIGN1 b25nIHBob2kgaG9wIHZvaSB0aW5oIEJpbmggRHVvbmcgdHJvbmcgdmllYyANCnF1YW4gbHkgY2Fj IGRvbiB2aSBraGFpIHRoYWMgY2F0IGRhbiB2aWVjIHRoYXkgZG9pIGRvbmcgY2hheSB2YSBzYXQg bG8gYm8gc29uZy4NCg0KQ3UgdHJpIHF1YW4gMTIga2hpZXUgbmFpIGRlbiBidSBnaWFpIHRvYSBs aWVuIHF1YW4gZGVuIGR1IGFuIGR1b25nIFh1eWVuIEEgdGh1b2Mga2h1IDUgDQpoYSBvIHRvIDI0 LCBraHUgcGhvIDIuIEN1IHRyaSBxdWFuIFRodSBEdWMga2llbiBuZ2hpIFRQIHRoYW5oIHRyYSBj b25nIHRyaW5oIGNvbmcgaG9wIG8gDQptbyBjYXUgdnVvdCBHbyBEdWEgKHBoaWEgcGh1b25nIEJp bmggQ2hpZXUpLg0KDQpEdSBhbiBDb25nIHR5IGRpZW4gU2FpIEdvbiwgZHUgYW4gSGFjb3RhLCBk dSBhbiBkaWVuIEJhIFJpYSAtIFZ1bmcgVGF1IGRhIGtlbyBkYWkgdHJlbiANCjMgbmFtIG5odW5n IGNodWEgaGllcCB0aHVvbmcgZGVuIGJ1LCBnaWFpIHRvYS4gQ3UgdHJpIHF1YW4gNyBraWVuIG5n aGkgVFAgeGVtIHhldCBsYWkgDQp0aW5oIGtoYSB0aGkgY3VhIGNhYyBkdSBhbiB2YSBuYW5nIGx1 YyBjaHUgZGF1IHR1Lg0KDQpDdSB0cmkgcXVhbiBCaW5oIFRoYW5oIGtpZW4gbmdoaSBkYXkgbmhh bmggdGllbiBkbyBkdSBhbiBraHUgcXV5IGhvYWNoIGJhbiBkYW8gQmluaCANClF1b2kgLSBUaGFu aCBEYSB2YSBjb25nIGJvIGxvIHRyaW5oIHRodWMgaGllbiBkZSBjdSB0cmkga2hvbmcgYmkgeGFv IHRyb24gY3VvYyBzb25nLg0KDQpIaWVuIG5heSBtb3Qgc28gdHV5ZW4gZHVvbmcsIHZpYSBoZSBj dWEga2h1IHRydW5nIHRhbSBxdWFuIDEgZGEgYmkgeHVvbmcgY2FwIHZhIGh1IA0KaG9uZyBuYW5n LCBnYXkga2hvIGtoYW4gY2hvIHZpZWMgZGkgbGFpIGN1YSBuZ3VvaSBkYW4gdmEgbWF0IG15IHF1 YW4gZG8gdGhpOiB2aWEgaGUgDQpkdW9uZyBOZ3V5ZW4gSHVlLCBxdWFuIDEgKGRheSBzbyBjaGFu KTsgZHVvbmcgVG9uIFRoYXQgRGFtIGRvYW4gdGllcCBnaWFwIGdpdWEgVG9uIA0KVGhhdCBEYW0g dmEgVG9uIFRoYXQgVGhpZXA7IGR1b25nIE5ndXllbiBUcnVuZyBOZ2FuIGRvYW4gdGllcCBnaWFw IGdpdWEgZHVvbmcgDQpOZ3V5ZW4gVHJ1bmcgTmdhbiB2YSBDaHUgTWFuaCBUcmluaC4gQ3UgdHJp IGRlIG5naGkgbmFuZyBjYXAsIHN1YSBjaHVhLCBkb25nIHRob2kgDQpzdWEgY2h1YSBuYXAgZGF5 IGN1YSBjb25nIHRyaW5oIGt5IHRodWF0IHRhaSBsZSBkdW9uZyBzbyAzNiBMZSBMb2kgKHF1YW4g MSkuDQoNCkR1b25nIFBoYW0gVmFuIENoaSB0aHVvbmcgeHV5ZW4gYmkgbmdhcCB1bmcgZG8gbXVh IHZhIHRyaWV1IGN1b25nOyBuZ2EgdHUgZHVvbmcgDQpCaW5oIFRpZW4gLSBQaGFtIFZhbiBDaGkg YmkgZGFvIGxlbiwgbGFwIGxhaSBuaGlldSBsYW4gZ2F5IGh1IGhvbmcgbWF0IGR1b25nIGdheSBr aG8gDQpraGFuIGNobyB2aWVjIGRpIGxhaSBjdWEgbmd1b2kgZGFuLiBOaGlldSBsYW4gY3UgdHJp IHF1YW4gNiBraWVuIG5naGkgbmh1bmcgY2h1YSBkdW9jIA0Ka2hhYyBwaHVjLg0KDQpUdXllbiBk dW9uZyBUcmFuIFh1YW4gU29hbiB0dSBjYXUgVGFuIFRodWFuIDIgZGVuIGNvbmcgY3UgeGEgbmdh biBoYW5nIHRodW9uZyANCnh1eWVuIGJpIG5nYXAgdW5nIGRvIHRyaWV1IGN1b25nLCBuaGlldSBk b2FuIHZpYSBoZSBiaSBodSBob25nIG5hbmcsIGx1biBzYXQuIEtpZW4gbmdoaSANCnNvbSBuYW5n IGNhcCBkdW9uZyBUcmFuIFh1YW4gU29hbjsgdGllcCB0dWMgbmFuZyBjYXAgZHVvbmcgTGUgVmFu IEx1b25nLCBwaHVvbmcgDQpUYW4gUGhvbmcgZG9hbiBjb24gbGFpIGRhIGJpIHh1b25nIGNhcCBu YW5nLCBkb2FuIHR1IGR1b25nIFRyYW4gWHVhbiBTb2FuIGRlbiBjYXUgDQpSYWNoIERpYSAocXVh biA3KS4NCg0KQ3UgdHJpIHBoYW4gYW5oIHRyZW4gZGlhIGJhbiBxdWFuIDEsIHF1YW4gMywgY2Fj IHZpYSBoZSB0cmVuIG5oaWV1IHR1eWVuIGR1b25nIGNvbiB0b3QgDQpuaHVuZyBsYWkgZGFvLCB4 b2kgZGUgbGFtIG1vaSAoZHVvbmcgTmd1eWVuIEh1dSBDYXUsIHF1YW4gMTsuLi4pIGdheSB0b24g a2VtLCBsYW5nIA0KcGhpLg0KDQpPIG5oaWVtIG1vaSB0cnVvbmcsIHRoaWV1IHRydW9uZyBob2MN Cg0KQ2FjIGR1b25nIEJpbmggRG9uZywgUGh1IERpbmgsIFRydW9uZyBEaW5oIEhvaSwgSHVuZyBQ aHUgdGh1b25nIHh1eWVuIGJpIG5nYXAgDQp1bmcgZG8gdHJpZXUgY3VvbmcsIGJpIGh1IGhvbmcg bmFuZywgbWF0IGNhdSBzbyAyIG5vaSBwaHVvbmcgMTQsIDE1IGhpZW4gYmkgbHVuLCBnaG8gZ2hl IA0Ka2hvbmcgYmFuZyBwaGFuZywgZ2F5IGtobyBraGFuIGNobyB0cm9uZyB2aWVjIGRpIGxhaSBj dWEgbmd1b2kgZGFuLCB0aHVvbmcgeHV5ZW4geGF5IA0KcmEgdGFpIG5hbiBnaWFvIHRob25nLC4u Li4gQ3UgdHJpIGtpZW4gbmdoaSBzb20gbmFuZyBjYXAgdmEga2hhYyBwaHVjLCBkb25nIHRob2kg ZGF5IA0KbmhhbmggdGllbiBkbyB0aGkgY29uZyBkdSBhbiBjb25nIHRyaW5oIGNhdSBUYSBRdWFu ZyBCdXUsIGR1b25nIEF1IER1b25nIExhbiAocXVhbiANCjgpLg0KDQpUaGVvIHkga2llbiBjdWEg Y3UgdHJpLCB2aWVjIHRoaSBjb25nIGNhYyB0dXllbiBkdW9uZyBjYW4gc29uZyBzb25nIHZvaSB4 YXkgZHVuZyBoZSANCnRob25nIHRob2F0IG51b2MuIENhYyB0dXllbiBkdW9uZyB0cmVuIGRpYSBi YW4gcXVhbiA5OiBEbyBYdWFuIEhvcCwgTGEgWHVhbiBPYWksIA0KTmd1eWVuIER1eSBUcmluaCwg Tmd1eWVuIFhpZW4sIEhvYW5nIEh1dSBOYS4uLiBraG9uZyBjbyBoZSB0aG9uZyB0aG9hdCBudW9j IG5lbiBkdSANCmRhIGR1b2MgZHV5IHR1IHZhbiBraG9uZyBoaWV1IHF1YSwgZ2F5IGxhbmcgcGhp LiBUdXllbiBkdW9uZyBEdW9uZyBEaW5oIEhvaSBraG9pIA0KY29uZyB0dSBuYW0gMjAwMCBuaHVu ZyBkZW4gbmF5IHZhbiBjaHVhIGhvYW4gdGhhbmguDQoNCkRvaSB2b2kgU28gdGFpIG5ndXllbiAt IG1vaSB0cnVvbmcsIGN1IHRyaSBuZXUgYnVjIHh1YyB2ZSBiYWkgcmFjIG8ga2h1IGRhbiBjdSBC YSBYYW4gDQooeGEgQmluaCBLaGFuaCwgaHV5ZW4gQ2FuIEdpbykgYm9jIG11aSBob2kgdGhvaSwg Z2F5IG8gbmhpZW0gbmFuZywgYW5oIGh1b25nIGRlbiBzdWMgDQpraG9lIGN1YSBuZ3VvaSBkYW4g dmEga2h1IHZ1YyBudW9pIHRvbS4gQ29uZyB0eSBkaWNoIHZ1IENvbmcgaWNoIGNvIGtoYWMgcGh1 YyBuaHVuZyANCnRpbmggaGluaCB2YW4ga2hvbmcgZHVvYyBjYWkgdGhpZW4uIEN1IHRyaSBraWVu IG5naGkgZGkgZG9pIGJhaSByYWMgc2FuZyBub2kga2hhYyBwaHUgaG9wIA0KaG9uIGRlIGRhbSBi YW8gc3VjIGtob2UgY2hvIG5ndW9pIGRhbi4NCg0KQ3VuZyB2ZSBtb2kgdHJ1b25nLCBjdSB0cmkg a2llbiBuZ2hpIHNvbSB0aHVjIGhpZW4gZGkgZG9pIGNhYyBjbyBzbyBzYW4geHVhdCBnYWNoIG51 bmcgDQpwaHVvbmcgTG9uZyBCaW5oLCBMb25nIFRoYW5oIE15OyB4aSBuZ2hpZXAgUG9zdmluYSwg cGh1b25nIFBodW9jIExvbmcgQTsgeGkgDQpuZ2hpZXAgbGFwIG1heSAxOCwgcGh1b25nIFBodW9j IExvbmcgQiB2aSBuYW0gdHJvbmcga2h1IHZ1YyBkYW4gY3UgdmEgZ2F5IG8gbmhpZW0uDQoNCkRv aSB2b2kgU28gZ2lhbyBkdWMgLSBkYW8gdGFvLCBjdSB0cmkgbmV1IHkga2llbjogaGllbiBwaHVv bmcgQmluaCBIdW5nIEhvYSBBIGtob25nIGNvIA0KdHJ1b25nIG1hbiBub24sIG5ndW9pIGRhbiBi dW9jIHBoYWkgZ29pIGNvbiBlbSB2YW8gY2FjIG5oYSB0cmUgdHUgbmhhbiBraG9uZyBkYW0gYmFv IA0KdmUgY28gc28gdmF0IGNoYXQsIGt5IG5hbmcgc3UgcGhhbSBjdWEgZG9pIG5ndSBnaWFvIHZp ZW47IGtpZW4gbmdoaSBuZ2FuaCBjaHVjIG5hbmcgDQpxdWFuIHRhbSB4YXkgZHVuZyB0cnVvbmcg bW9pLg0KDQpDdSB0cmkgcXVhbiBUYW4gUGh1IGtpZW4gbmdoaSwgdnVhIHF1YSB0aGFuaCBwaG8g eHUgbHkgdmFuIGRlIG5ndW9pIHNvbmcgbGFuZyB0aGFuZywgYW4gDQp4aW4gcmF0IHRvdC4gVHV5 IG5oaWVuLCBnYW4gZGF5IGRhIHh1YXQgaGllbiB0cm8gbGFpIGhpZW4gdHVvbmcgc29uZyBsYW5n IHRoYW5nIHZhIGFuIHhpbiwgDQpuaGF0IGxhIHZhbyBjYWMgbmdheSB0aHUgNywgY2h1IG5oYXQu IFRQIGNhbiBraWVtIHRyYSB0aHVvbmcgeHV5ZW4sIG5oYW0ga2lwIHRob2kgcGhhdCANCmhpZW4g dmEgeHUgbHkga2llbiBxdXlldC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDUwLzIwMTAxMjA5MTM1OTM3LmFzcHggTmd1eWVuIE1pIDA5LzEyLzIwMTAgMTM6 NTkgDQoNClRQIEhDTTogTmUgdHJhY2ggbmhpZW0gImhvIHR1IHRoYW4iICANCg0KUGhhaSBjaGFt IGR1dCAiaG8gdHUgdGhhbiIgc2F1IDYgdGhhbmcgDQoNCihUTk8pICJIbyB0dSB0aGFuIiB0cm8g dGhhbmggZGUgdGFpICJub25nIiBtYSBjYWMgZGFpIGJpZXUgKERCKSBkYXQgcmEgdHJvbmcgYnVv aSBjaGF0IA0KdmFuIHRhaSBreSBob3AgdGh1IDE5IEhETkQgVFAuSENNIGtob2EgVklJIHZhbyBz YW5nIG5heSwgOS4xMi4NCg0KKiBCYW8gZG9uZyBjaGF0IGx1b25nIGNvbmcgdHJpbmggeGF5IGR1 bmcNCiogQ2hheSB0aGVvIEdEUCwgYm8gcXVlbiBuaGlldSB2YW4gZGUgYW4gc2luaCwgeGEgaG9p DQoNClRoaSBjb25nIGtlbSB0YW8gImhvIHR1IHRoYW4iICANCg0KR2lhaSB0cmluaCB0cnVvYyBI RE5EIFRQIHZlIHN1IHh1YXQgaGllbiBjdWEgY2FjICJobyB0dSB0aGFuIiwgR2lhbSBkb2MgKEdE KSBTbyANCkdUVlQgVFAuSENNIFRyYW4gUXVhbmcgUGh1b25nIGtldCBsdWFuIHZpZWMgdGFpIGxh cCBtYXQgZHVvbmcgdHJvbmcgdGhvaSBnaWFuIHF1YSANCmtob25nIGdheSBuZW4gbW90ICJobyB0 dSB0aGFuIiBuYW8gKD8hKS4NCiANCihBbmg6IE1vdCAiaG8gdHUgdGhhbiIgdHJlbiBkdW9uZyBM ZSBRdWFuZyBEaW5oLCBRLkJpbmggVGhhbmgsIFRQLkhDTSAtIEFuaDogTmd1eWVuIE1pKSANCg0K RGlhIGNoYXQgVFAgbGEgbmVuIGRhdCB5ZXUsIGJlbiBjYW5oIGRvLCB2aWVjIGtoYWkgdGhhYyBu dW9jIG5nYW0gZGEgbGFtIGRhdCBzdXAgbHVuIA0Ka2hvbmcgZGV1LCBsYW0gY2FjIGNvbmcgdHJp bmggbmdhbSBiaSBnYXkgdm8gZ2F5IHJhIGhvLiBEbyBsYSBuZ3V5ZW4gbmhhbiBjaHUgeWV1IGN1 YSANCnRpbmggdHJhbmcgbHVuIHN1cCB0cmVuIG1hdCBkdW9uZyBUUCB0aGVvIGJhbyBjYW8gY3Vh IEdEIFNvIEdUVlQuDQoNCkJlbiBjYW5oIGRvLCBvbmcgUGh1b25nIGN1bmcgY2hvIHJhbmcga2lu aCBwaGkgdHUgYm8gbWF0IGR1b25nIGNodWEgZHUuIFZpZWMgdHJ1bmcgDQp0dSwgZGFpIHR1IGR1 b25nIHhhIHRhaSBUUC5IQ00gY2hpIGRhcCB1bmcgMiUgeWV1IGNhdSBuZW4gZHVvbmcgcGhvIGRh bmcgeHVvbmcgY2FwLg0KDQpUdXkgbmhpZW4sIGNoYXQgdmFuIGN1YSBjYWMgREIgSERORCB2YSBw aGFuIGJhbyBjYW8gdGhlbSBjdWEgU28gVGFpIG5ndXllbiB2YSBNb2kgDQp0cnVvbmcgKFROLU1U KSBjdW5nIG5odSBTbyBYYXkgZHVuZyBkZXUga2hhbmcgZGluaCAiaG8gdHUgdGhhbiIgbGEgZG8g Y2hhdCBsdW9uZyB0aGkgDQpjb25nIHZhIFNvIEdUVlQga2hvbmcgdGhlIGR1YSBkYXkgdHJhY2gg bmhpZW0uDQoNClRoZW8gYmFvIGNhbyBjdWEgR2lhbSBkb2MgU28gR1RWVCBUUC5IQ00gVHJhbiBR dWFuZyBQaHVvbmc6IFR1IGtoaSAiaG8gdHUgDQp0aGFuIiBkYXUgdGllbiB4dWF0IGhpZW4gKHRo YW5nIDcuMjAxMCkgZGVuIG5heSBUUC5IQ00gZGEgY28gNTcgImhvIHR1IHRoYW4iLiBUcm9uZyBk bywgMzYgdnUgc3VwIGx1biB0YWkgY2FjIHZpIHRyaSBraG9uZyBkbyBjb25nIHRyaW5oIHRoaSBj b25nIHZhIDIxIHZ1IHhheSByYSB0cm9uZyBxdWEgDQp0cmluaCB0aGkgY29uZy4NCg0KVGF0IGNh IDU3IHZ1IGx1biBzdXAgZGV1IGR1b2MgbGFwIGJpZW4gYmFuIGNoaSB0aWV0LCBobyBjdWEgZG9u IHZpIG5hbyB0aGkgZG9uIHZpIGRvIGNoaXUgDQp0cmFjaCBuaGllbSwgYm8gY2hpIHBoaSBraGFj IHBodWMgY2h1IGtob25nIGxheSBraW5oIHBoaSBjdWEgTmhhIG51b2MuDQoNCkJhIFBoYW0gUGh1 b25nIFRoYW8sIENodSB0aWNoIEhETkQgVFAsIGNoaW5oIGxhaSBiYW8gY2FvIGN1YSBTbyBHVFZU OiAiSG9tIG5heSANCig5LjEyKSwgZGEgbGVuIGRlbiA1OSBobyBzdXAgbHVuIHRhaSBUUC5IQ00u IEhvbSBxdWEgKDguMTIpIG1vaSBjbyB0aGVtIGhhaSB2dSBudWEiLg0KDQpEQiBOZ3V5ZW4gVmFu IFNlbiBoZXQgc3VjIGJhdCBuZ28gdmkgdHJhIGxvaSBjdWEgR0QgU28gR1RWVCBkdW9jIGNodWFu IGJpIGt5IA0Kbmh1bmcga2hvbmcgZ2lhaSB0aGljaCBkdW9jIGRlbiA2Myw3MiUgdmFuIGRlIG5n dXllbiBuaGFuICJobyB0dSB0aGFuIiAoY2FjIGhvIGtob25nIA0KZG8gdGhpIGNvbmcpIG1hIGxh aSAiZGEiIHF1YSB2YW4gZGUgc3VwIGx1biBjdWEgVFAuIEx5IGdpYWkgcmFuZyBraGFpIHRoYWMg bnVvYyBuZ2FtIGxhIA0Kbmd1eWVuIG5oYW4gY2h1IHlldSBjdWEgY2FjICJobyB0dSB0aGFuIiwg dGhlbyBEQiBTZW4gbGEgZ2lhaSB0aGljaCBoZXQgc3VjIGtob25nIHRob2EgDQpkYW5nLiANCg0K Iktob25nIHRoZSBsYXkgbW90IHRpbmggaGluaCBsb24gZGUgcXV5IGxhbSBuZ3V5ZW4gbmhhbiBj aG8gY2FjICJobyB0dSB0aGFuIiBjdSB0aGUgbWEgDQpraG9uZyBjbyBkYW5oIGdpYSBuZ3V5ZW4g bmhhbiB0cnVjIHRpZXAgbmFvIiwgREIgU2VuIGNvIHkga2llbi4NCg0KRGEgY28gYmFvIG5oaWV1 IHZ1ICJobyB0dSB0aGFuIiBiaSB4dSBseSB0cmFjaCBuaGllbT8gQ2hpIHBoaSBibyByYSBkZSBz dWEgY2h1YSBsYSBiYW8gDQpuaGlldT8gVmEgc3VhIGNodWEgeG9uZyBjbyBkYW0gYmFvIHNlIGto b25nIGNvbiBsdW4gc3VwPyBEYXkgbGEgY2F1IGhvaSBEQiBUcnVvbmcgDQpUcm9uZyBOZ2hpYSB2 YSBuaGlldSBEQiBIRE5EIGJ1YyB4dWMgZGF0IHJhLg0KDQpUaGVvIERCIE1pbmggSHVvbmcsIG1h YyBkdSBoaWVuIG5heSBjaHVhIGNvIHRodW9uZyB2b25nIHZlIG5ndW9pIGRvICJobyB0dSB0aGFu IiANCm5odW5nIGtob25nIHRoZSBkYW0gYmFvIHR1b25nIGxhaSBzZSBuaHUgdGhlIG5hbyBuZXUg dGluaCB0cmFuZyBuYXkgY29uIGRpZW4gYmllbi4NCg0KREIgTmd1eWVuIERhbmcgTmdoaWEgZGFu IHJhIGtldCBsdWFuIGN1YSBUaGFuaCB1eSBUUC5IQ00gKG5nYXkgMTIuMTEuMjAxMCkgDQpraGFu ZyBkaW5oOiAiVGluaCB0cmFuZyBsdW4gc3VwIG1hdCBkdW9uZyB2YW4geGF5IHJhLCBjaGF0IGx1 b25nIGNvbmcgdGFjIHRhaSBsYXAgbWF0IA0KZHVvbmcgbW90IHNvIG5vaSBjb24ga2VtLCBnYXkg bWF0IGFuIHRvYW4gZ2lhbyB0aG9uZyBkdW9uZyBibyIuIEtldCBsdWFuIGN1YSBVQk5EIA0KVFAu SENNIChuZ2F5IDEuMTEuMjAxMCkgY3VuZyBraGFuZyBkaW5oOiAiVmllYyB0aGkgY29uZyBjYWMg Y29uZyB0cmluaCBoYSB0YW5nIGt5IA0KdGh1YXQgY2h1YSB0dWFuIHRodSBuZ2hpZW0gY2FjIHF1 eSB0cmluaCB0aGkgY29uZywgbmdoaWVtIHRodSB0aGVvIHF1eSBkaW5oIGhpZW4gaGFuaCIuDQpW aSB2YXksICJLaG9uZyB0aGUgZGUgdGluaCB0cmFuZyAiYW4gY2FwIiB0aWVuIGN1YSBjdWEgZGFu IG5odSB2YXkgZHVvYy4gQ2hvIGRlbiBnaW8gDQptb2kgdGhhbmggbGFwIGRvYW4ga2llbSB0cmEs IHhhYyBkaW5oIG5ndXllbiBuaGFuIHZhIHZvaSBjYWNoIGxhbSBsYSBobyB4dWF0IGhpZW4gdGhp IA0KbGFwIGRpIG5nYXkgdGhpIGxhbSBzYW8geGFjIGRpbmggZHVvYyBuZ3V5ZW4gbmhhbj8iLCBE QiBOZ3V5ZW4gRGFuZyBOZ2hpYSBidWMgeHVjLg0KIA0KIkRheSBsYSBoYXUgcXVhIGN1YSB2aWVj IGtpZW0gdHJhLCBnaWFtIHNhdCBjdWEgbmdhbmggZ2lhbyB0aG9uZyIsIERCIE5ndXllbiBWYW4g QmFjaCBraGFuZyBkaW5oLg0KDQpIRE5EIFRQIHlldSBjYXUgU28gR1RWVCBjaHUgdHJpLCBwaG9p IGhvcCB2b2kgY2FjIHNvIG5nYW5oIGxpZW4gcXVhbiBjbyBrZXQgbHVhbiB2YSANCmdpYWkgcXV5 ZXQgZHV0IGRpZW0gdmUgdGluaCB0cmFuZyAiaG8gdHUgdGhhbiIgdHJ1b2MgNiB0aGFuZyB0b2ku DQoNCktob25nIGRvIGhpZXUgcXVhIGRhdSB0dSBiYW5nIHNvIGx1b25nIGNvbmcgdHJpbmgNCg0K QmFvIGNhbyB2ZSBjaGF0IGx1b25nIGRhdSB0dSB0YWkgVFAuSENNLCBHRCBTbyBLZSBob2FjaCB2 YSBEYXUgdHUgKEtILURUKSBUaGFpIA0KVmFuIFJlIG5oaW4gbmhhbjogZGF1IHR1IGNodW5nIGN1 YSBUUCB0aGkga2hvbmcgZGFuIHRyYWkgbmh1bmcga2hpIGtpbmggcGhpIHJvdCB2ZSANCnF1YW4s IGh1eWVuIHRoaSBkYXUgdHUgZGFuIHRyYWkuDQoNClRoZW8gb25nIFJlLCBVQk5EIFRQIHNlIGtp ZW0gdHJhIGxhaSBuYW5nIGx1YyB0cmllbiBraGFpIGRhdSB0dSBjdW5nIG5odSBwaGFpIHRhbmcg DQpjdW9uZyBuYW5nIGx1YyBiYW4gcXVhbiBseSBkdSBhbiBjdWEgcXVhbiwgaHV5ZW4uIEhpZXUg cXVhIGRhdSB0dSBjdWEgVFAuSENNIGNhbyANCmhvbiBjdWEgY2EgbnVvYyB2YSBnb3AgcGhhbiBw aGF0IHRyaWVuIGtpbmggdGUsIHhhIGhvaSBUUCwgbmFuZyBjYXAgaGUgdGhvbmcgaGEgdGFuZyBr eSANCnRodWF0IGRhbmcgbmdheSBjYW5nIHh1b25nIGNhcCBjdWEgVFAsIG5oYXQgbGEgY29uZyB0 cmluaCBnaWFvIHRob25nLCBjaG9uZyBuZ2FwLCBnaWFvIA0KZHVjLCB5IHRlLi4uDQoNClRoZW8g YmFvIGNhbyBjdWEgU28gS0gtRFQsIHR1IG5hbSAyMDA2LTIwMDkgdmEgZHUga2llbiAyMDEwLCBj byA3ODQgY29uZyB0cmluaCANCmhvYW4gdGhhbmggZHVvYyBkdWEgdmFvIHN1IGR1bmcsIHZvaSB0 b25nIHZvbiBkYXUgdHUgMjguMjQ1IHRpIGRvbmcuIFRyb25nIGRvIGNvIA0KY2F1IFRodSBUaGll bSwgY2F1IE5ndXllbiBWYW4gQ3UsIGNhdSBUYW4gVGh1YW4sIGNhdSBIb2FuZyBIb2EgVGhhbSwg ZHVvbmcgTmd1eWVuIA0KVmFuIFRyb2kgLSBOYW0gS3kgS2hvaSBOZ2hpYS4uLg0KDQoiS2hvbmcg dGhlIGNoaSBsaWV0IGtlIGRhbmggbXVjIGNhYyBjb25nIHRyaW5oIGRhIGR1YSB2YW8gc3UgZHVu ZyByb2kgbm9pIGxhIGRhdSB0dSBjbyANCmhpZXUgcXVhIiCWIERCIERhbmcgVmFuIEtob2EgDQoN ClR1eSBuaGllbiwgREIgRGFuZyBWYW4gS2hvYSBjaHVhIGJhbmcgbG9uZyB2b2kgY2FjaCBkYW5o IGdpYSBoaWV1IHF1YSBkYXUgdHUgY3VhIFNvIA0KS0gtRFQuIERCIEtob2EgY2hhdCB2YW4sIHZp ZWMgeGFjIGRpbmggaGlldSBxdWEgZGF1IHR1IGtob25nIHRoZSBjaGkgbGlldCBrZSBkYW5oIG11 YyANCmNhYyBjb25nIHRyaW5oIGRhIGR1YSB2YW8gc3UgZHVuZyByb2kgbm9pIGxhIGRhdSB0dSBj byBoaWV1IHF1YS4gVmkgdHJvbmcgY2FjIGNvbmcgdHJpbmggDQpkbywgY28gcmF0IG5oaWV1IGNv bmcgdHJpbmggdGhpIGNvbmcga2VvIGRhaSwgImRvaSB2b24iLCB0aGkgY29uZyB4b25nIHBoYWkg c3VhIGNodWEgdmEgDQp0aGFtIGNoaSB4b25nIHJvaSB2YW4gY2h1YSBzdSBkdW5nIGR1b2MuIA0K DQpNb3QgbG9hdCBkYW4gY2h1bmcgZGEgZHVvYyBvbmcgbGlldCBrZSByYSBuaHU6IGNhdSBIb2Fu ZyBIb2EgVGhhbSB4YXkgY2EgY2h1YyBuYW0gDQptb2kgeG9uZywgdm9uIGRhdSB0dSB0dSAxOCB0 aSBkb25nICJkb2kgbGVuIiBjYSB0cmFtIHRpIGRvbmc7IGNhdSBOZ3V5ZW4gVmFuIEN1IG5heSBk YSANCmR1YSB2YW8gc3UgZHVuZyBuaHVuZyBsYSBtb3QgdHJvbmcgbmh1bmcgdGFpIHRpZW5nIGxv biB2ZSB0aGkgY29uZyBrZW8gZGFpOyBjYXUgVmFuIA0KVGhhbmggdmFuIHBoYWkgc3VhIGNodWEs IGNob25nIGx1bjsgY2F1IEdvIER1YSBnYW4gNyBuYW0gY2h1YSB4b25nLCBUcnVuZyB0YW0gdGhl IA0KZHVjIHRoZSB0aGFvIGh1eWVuIEJpbmggQ2hhbmggZGF1IHR1IGNhIHRyYW0gdHJpZXUgbmh1 bmcga2hvbmcgY28gbWFuIGhpbmggbmVuIGN1b2kgDQpjdW5nIHJhcCBjaGlldSBwaGltIGRlbiBn aW8gdmFuIGNodWEga2hhaSB0aGFjIHN1IGR1bmcgZHVvYy4uLg0KTmh1IHZheSwgImhpZXUgcXVh IGRhdSB0dSBvIGNobyBuYW8/IiwgREIgS2hvYSBob2kuDQoNCkNhYyBEQiBkZSBuZ2hpLCBkbyBo aWV1IHF1YSBkYXUgdHUgY3VhIFRQIHBoYWkgZGFuaCBnaWEgdmUgaGlldSBxdWEga2luaCB0ZSB4 YSBob2ksIFRQIA0KYm8gdm9uIHJhIGJhbyBuaGlldSB2YSB0aHUgbGFpIGR1b2MgYmFvIG5oaWV1 IGNodSBraG9uZyBjaGkgbGlldCBrZSBjb25nIHRyaW5oLg0KDQpDdSB0cmkgTmd1eWVuIFZhbiBE bywgSG9pIHZpZW4gSG9pIFZhdCBseSBUUC5IQ00sIGNvIHkga2llbiBkZW4gSERORCBxdWEgZGll biANCnRob2FpOiBWaWVjIGx1biBzdXAgbWF0IGR1b25nIGNvIG5ndXllbiBuaGFuIGNoaW5oIGxh IGRvIG5lbiBtb25nIG5nYW0gZHVvYyBsYW0gDQpiYW5nIGNhdCAxMDAlIGNodSBraG9uZyBwaGFp IGRvIGJpZW4gZG9pIGtoaSBoYXUsIGx1biBUUCBoYXkga2hhaSB0aGFjIG51b2MgbmdhbS4NCg0K R0QgU28gVE4tTVQgRGFvIEFuaCBLaWV0OiBOdW9jIG5nYW0gbGEgbW90IHRyb25nIG5odW5nIG5n dXllbiBuaGFuIGRhbiBkZW4gdGluaCANCnRyYW5nIFRQIGJpIGx1bi4gTmh1bmcga2hhaSB0aGFj IG51b2MgbmdhbSBraG9uZyB0aGUgZ2F5IHJhIG5odW5nIGhvIGN1YyBibyAoImhvIHR1IA0KdGhh biIpIG5odSB0aGUgZHVvYy4gS2hvbmcgY28gcXVhbiBoZSBuaGFuIHF1YSBnaSBnaXVhIGtoYWkg dGhhYyBudW9jIG5nYW0gdm9pIGNhYyBobyANCmx1biBzdXAgdHJlbiBkdW9uZyBwaG8gaGllbiBu YXkuDQoNCktoYWkgdGhhYyBudW9jIG5nYW0gdmFuIGNvbiB0cm9uZyBkbyBhbiB0b2FuLiANCg0K UGhvIEdEIFNvIFhheSBkdW5nIE5ndXllbiBWYW4gSGllcDogR2FuIDYwIGhvIHN1cCBsdW4gdnVh IHJvaSBjaHVuZyB0YSB0aGF5IGR1b2MgDQpyYXQgbGEgcm8gbGEgZG8gcXVhIHRyaW5oIGhvYW4g dGhpZW4gY2FjIGNvbmcgdHJpbmgga2hvbmcgZHVuZyBreSB0aHVhdC4gVG9pIG11b24gY2FuaCAN CmJhbyB2b2kgYW5oIFBodW9uZywgaGllbiBuYXksIGNvbmcgdGFjIGxhcCBkYXQgb25nIGNhcCB0 aG9hdCBudW9jLCBjYWMgY29uZyB0cmluaCB0aGkgDQpjb25nIHRyZW4gbWF0IGR1b25nIHZhbiBk YW5nIGRpZW4gcmEuIFZpIHZheSwgU28gR1RWVCBuZW4geGVtIGxhaSwgY2hhbiBjaGluaCBreSAN CnRodWF0IGRlIGtob25nIHhheSByYSBuaHVuZyBobyBuaHUgdGhlIGNodSBraG9uZyBjaG8ga2V0 IGx1YW4gbmdoaWVuIGN1dS4NCg0KREIgSHV5bmggQ29uZyBIdW5nOiBHRCBTbyBHVFZUIG5vaSBy YW5nIGdpbyBTbyBraG9uZyBxdWFuIGx5IGhlIHRob25nIGNhcCB0aG9hdCANCm51b2MgbnVhIG5l biBraG9uZyBuYW0gZHVvYyB2aWVjIHN1cCBsdW4gbWF0IGR1b25nLCBkaWV1IG5heSB0b2kgZGEg bmdoZSBjYWNoIGRheSANCm1vdCB0aGFuZy4gVmllYyBxdWFuIGx5IGR1b25nIHZhIGNhYyBjb25n IHRyaW5oIGR1b2kgbG9uZyBkdW9uZyBsYSB0cmFjaCBuaGllbSBjdWEgU28gR1RWVC4NCg0KaHR0 cDovL2RhbnRyaS5jb20udm4vU3VraWVuL0tldC14ZS1vLVRQSENNLUNhbmctdGhvbmctY2FuZy10 YWMvMjAwNy8xMS8yMDQ0NjQudmlwICAwNi8xMS8yMDA3IC0gMzowMCBQTQ0KDQpLZXQgeGUgbyBU UEhDTTogQ2FuZyB0aG9uZyBjYW5nIHRhYyENCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQ LUhDTS1LaG9uZy1raGktYmktby1uaGllbS1uZ2F5LWNhbmctdHJhbS10cm9uZy80NTIzODAwMy8x NTcvIDExLzUvMjAwNywgMjM6MjggR01UKzcNCg0KVFAuSENNOiBLaG9uZyBraGkgYmkgbyBuaGll bSBuZ2F5IGNhbmcgdHJhbSB0cm9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8y MDEwMTAvS2hpLXR1LXRoYW4tbGFtaWVuZy1jb25nLWxvLXRoaWVuLTk0MTUzNS8gMTc6NTcsIDEx LzEwLzIwMTAgKEdNVCs3KQ0KDQpUUCBIQ006IE5odW5nIG1pZW5nIGNvbmcgbG8gdGhpZW4gdHUg dGhhbiANCg0KTmhpZXUgbWllbmcgY29uZyBsbyB0aGllbiB0cm8gdGhhbmggY2FpIGJheSB0cmVu IGR1b25nLCBkYW4gZGVuIG5odW5nIGNhaSBjaGV0IHRodW9uZyB0YW0gIG8gVFAgSENNLiANCg0K aHR0cDovL3d3dy50aW4yNDcuY29tL3RwaGNtX3RodV9ob2lfc2FuX2dvbGZfbGFuZ19waGktMy0y MTM4ODczNC5odG1sIHZuTWVkaWEudm4gMjgvMDIvMjAwOSAyMjoyNw0KDQpUUC5IQ006IER1IGFu IHNhbiBnb2xmIGdheSBsYW5nIHBoaSBsb24gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9U UEhDTS1UaHUtaG9pLWRhdC1jdWEtZGFuLWNoby1jYW4tYm8tYmFuLWtpZW0tbG9pLzIwNzYyNDE0 LzE1Ny8gVGhhaSBUaGllbiAwMy8xLzIwMDgsIDIxOjEyIEdNVCs3IA0KDQpUUC5IQ006IFRodSBo b2kgZGF0IGN1YSBkYW4gY2hvIGNhbiBibyBiYW4ga2llbSBsb2k/IA0KDQqWIEhhbmcgY2h1YyBu Z2hpbiBtMiBkYXQgdGFpIHBodW9uZyBBbiBQaHUsIHF1YW4gMiwgVFAuSENNIGR1b2MgdGh1IGhv aSBkdW9pIA0KZGFuaCBuZ2hpYSBOaGEgbnVvYyBkZSBjaGlhIGNobyBjYW4gYm8gImtobyBraGFu IHZlIG5oYSBvIi4gVHV5IG5oaWVuLCBuaGlldSBsbyANCmRhdCBkdW9jIGNodSBkYXUgdHUgImJh dCBkZW4geGFuaCIgY2hvIGNodSBkYXQgYmFuIGtpZW0gbG9pIGJhdCBjaGFwIHF1eSBkaW5oIGN1 YSBwaGFwIGx1YXQuIA0KDQpUaHUgaG9pIHZ1b3QgZGllbiB0aWNoIGR1b2MgZ2lhbz8NCg0KTmFt IDE5OTgsIGtoaSB0aGFuaCBsYXAgcXVhbiwgUXVhbiB1eSB2YSBVQk5EIHF1YW4gMiBjbyBjaHUg dHJ1b25nIGNobyBsYXAgZHUgYW4gDQpraHUgbmhhIG8gQ2FuIGJvIGNvbmcgbmhhbiB2aWVuIChD QkNOVikgdGFpIHBodW9uZyBBbiBQaHUgZGUgdGFvIGRpZXUga2llbiBjaG8gDQpDQkNOViB5ZW4g dGFtIGNvbmcgdGFjLiBUYWkgcXV5ZXQgZGluaCAxNTUzL1FELVVCIG5nYXkgNS85LzE5OTgsIFVC TkQgcXVhbiAyIGRhIA0KZ2lhbyBjaG8gQ29uZyB0eSBRdWFuIGx5IHZhIHBoYXQgdHJpZW4gbmhh IHF1YW4gMiBsYW0gY2h1IGRhdSB0dSBkdSBhbi4gUXV5IG1vIGN1YSBkdSANCmFuIGxhIDRoYSB2 b2kgbXVjIHRpZXUgcXV5IGhvYWNoIHZhIHhheSBkdW5nIGNvIHNvIGhhIHRhbmcga3kgdGh1YXQs IHBoYW4gbG8gYmFuIG5lbiBjaG8gDQpDQkNOViBraG9uZyB0aW5oIGxhaS4NCg0KVHV5IG5oaWVu LCBuZ2F5IHNhdSBraGkgY28gcXV5ZXQgZGluaCBnaWFvIGxhbSBjaHUgZGF1IHR1LCB0aGF5IHZp IHBoYWkgdGllbiBoYW5oIGNhYyANCmJ1b2MgbGFwIGR1IGFuIGRhdSB0dSwgcGh1b25nIGFuIGRl biBidSBnaWFpIHRvYSB2YSB0cmluaCBUaHUgdHVvbmcgQ2hpbmggcGh1IHBoZSBkdXlldCANCnF1 eWV0IGRpbmggdGh1IGhvaSwgZ2lhbyBkYXQ7IENvbmcgdHkgUXVhbiBseSB2YSBwaGF0IHRyaWVu IG5oYSBxdWFuIDIgZGEgaG9pIGhhIGRlbiBidSwgDQpkaSBkb2kgMTYgaG8gZGFuIHZvaSBtdWMg ZGVuIGJ1IHRob25nIG5oYXQgY2hvIHRhdCBjYSBjYWMgbG9haSBkYXQgbGEgODAuMDAwIGRvbmcv bTIuDQoNCkRlbiBsdWMgbmF5LCBraGkgZGEgZ2lhaSB0b2EgdHJhbmcgZGF0IGN1YSBkYW4sIGNo dSBkYXUgdHUgbW9pIGxhcCBwaHVvbmcgYW4gZGVuIGJ1IGdpYWkgDQp0b2EgdHJpbmggU28gVGFp IGNoaW5oIJYgdmF0IGdpYSB2YSAiZGUgeHVhdCIgY2hvbiBtb3QgdHJvbmcgYmEgcGh1b25nIGFu OiBkZW4gYnUgODAuMDAwIA0KZG9uZy9tMiBjaG8gdGF0IGNhIGNhYyBsb2FpIGRhdDsgaG9hbiBk b2kgZGF0IHRyb25nIGR1IGFuIHZhIGNobyBuZ3VvaSBkYW4gdGhhbSBnaWEgZHUgYW4uDQoNCihB bmggY2h1cDogUmF0IG5oaWV1IGxvIGR1b2MgY2h1eWVuIG5odW9uZyBraGkgZGF0IGNodWEgY2h1 eWVuIHF1eWVuIHN1IGR1bmcgZGF0KSANCg0KTWFjIGR1ICJjYW0gZGVuIGNoYXkgdHJ1b2MgbyB0 byIgbmh1bmcga2hvbmcgaGlldSB2aSBseSBkbyBnaSwgcGh1b25nIGFuIGdpYSB2YW4gZHVvYyAN ClNvIFRhaSBjaGluaCCWIHZhdCBnaWEga3kgY2hhcCB0aHVhbiBjaGkgdHJvbmcgNiBuZ2F5IHRy aW5oIGR1eWV0LiBRdXlldCBkaW5oIG5ldSBjaHVuZyANCmNodW5nOiAiQ2hhcCB0aHVhbiBwaHVv bmcgYW4gY3VhIGNodSBkYXUgdHUiLg0KDQpLaG9uZyBkb2kgY28gcXV5ZXQgZGluaCBwaGUgZHV5 ZXQgdGh1IGhvaSBnaWFvIGRhdCBjdWEgVGh1IHR1b25nIENoaW5oIHBodSwgZGF1IG5hbSANCjE5 OTksIEhvaSBkb25nIGdpYWkgcXV5ZXQgZGF0IGNobyBDQkNOViBxdWFuIDIgZHVvYyBsYXAgdmEg dGllbiBoYW5oIG5nYXkgdmllYyB4ZXQgZHV5ZXQgY2FwIGRhdC4NCg0KUXVhIHRoYW5oIHRyYSwg RG9hbiB0aGFuaCB0cmEgcGhhdCBoaWVuLCB0cm9uZyA4NiBuZW4gbmhhIGR1b2MgeGV0IGR1eWV0 LCBjaGkgY28gNDEgDQp0cnVvbmcgaG9wIGxhIENCQ05WIGtobyBraGFuLCBidWMgeHVjIHZlIG5o YSBvLiBOZ29haSByYSBjbyAyOSBuZW4gbmhhIGR1b2MgVUJORCANCnF1YW4gY2hhcCB0aHVhbiBj aG8gY2h1IGRhdSB0dSBkdWEgdmFvIGRpZW4ga2luaCBkb2FuaCwgdHJvbmcgZG8gY28gMTYgbmVu IG5hbSBuZ29haSANCnJhbmggZGF0IGN1YSBUaHUgdHVvbmcuIFRvbmcgZGllbiB0aWNoIGRvaSBk dSBzbyB2b2kgcXV5ZXQgZGluaCB0aHUgaG9pIGdpYW8gZGF0IGNvIGRpZW4gDQp0aWNoIGxlbiBk ZW4gMzMuODIzbTINCg0KTmh1IHZheSBDb25nIHR5IFF1YW4gbHkgdmEgcGhhdCB0cmllbiBuaGEg cXVhbiAyIGRhIGNvIHkgbGFtIHRyYWkga2hpIHRodSBob2kgdnVvdCBkaWVuIA0KdGljaCBkYXQg c28gdm9pIHlldSBjYXUsIGRvbmcgbmdoaWEgdm9pIHZpZWMgY28gbmhpZXUgaG8gZGFuIG1hdCBk YXQgIm9hbiIgaGV0IHN1YyB2byANCmx5Li4uDQoNCkRvIGxhIGNodWEga2UgdmllYyBiYW4gMjkg bmVuIGtpbmggZG9hbmgga2hvbmcgZHVvYyBjaHUgZGF1IHR1IGNvbmcga2hhaSwgZG9uZyB0aG9p IA0KY29uIHR1eSB0aWVuIGR1YSByYSBtdWMgZ2lhIHRoYXAgaG9uIGdpYSB0aGkgdHJ1b25nIG8g dHVuZyB0aG9pIGRpZW0gZ2FwIG5oaWV1IGxhbi4gDQoNCk5oYSBudW9jIHRoaWV0IGhhaSBuaGll dSB0eSBkb25nIHRpZW4gdGh1ZSA/DQoNClRvYW4gY2FuaCBraHUgZGF0LCB0cm9uZyBkbyBjbyBj YSBwaGFuIGRpZW4gdGljaCB0aHUgaG9pIHZ1b3QgZGllbiB0aWNoIGN1YSBkYW4gbGVuIHRvaSAN CnRyZW4gMzMuMDAwIG0yLg0KDQpUaGVvIHF1eSBkaW5oIGN1YSBMdWF0IERhdCBkYWkgbmFtIDE5 OTMsIGRhdCBjaHVhIGNodXllbiBxdXllbiBzdSBkdW5nIGRhdCB0aGkga2hvbmcgDQpkdW9jIGNo dXllbiBuaHVvbmcgZHVvaSBiYXQgY3UgaGluaCB0aHVjIG5hby4gVHV5IG5oaWVuLCBjaHUgZGF1 IHR1IGRhIGJhdCBjaGFwIGRpZXUgDQpuYXkgdmEgdGllbiBoYW5oIGt5IGhvcCBkb25nIGNodXll biBuaHVvbmcgcXV5ZW4gc3UgZHVuZyBkYXQgY2hvIGNhYyBkb2kgdHVvbmcgZHVvYyANCm11YSBu ZW4gKGRpZXUgMTEpIG5nYXkgY2Ega2hpIGR1IGFuIGNodWEgZHVvYyBwaGUgZHV5ZXQuIFNhdSBk byBjaHUgZGF1IHR1IGNvbiBreSBob3AgDQpkb25nICJob3AgdGh1YyBob2EiIGNobyA0MyB0cnVv bmcgaG9wIGR1b2MgcGhhbiBuZW4gKGdhbiA1MCUgc28gQ0JDTlYgZHVvYyB4ZXQgDQptdWEgbmVu KSBjaHV5ZW4gbmh1b25nIGNobyBuZ3VvaSBraGFjLCB0aHUgY2hlbmggbGVuaCBnaWEgbyB0dW5n IHRob2kgZGllbSBnYXAgdHUgNSANCmRlbiA3IGxhbi4NCg0KVmllYyBsYW0gbmF5IGN1YSBwaGlh IGNodSBkYXUgdHUgLSBDb25nIHR5IFF1YW4gbHkga2luaCBkb2FuaCBuaGEgcXVhbiAyLCBVQk5E IHF1YW4gDQoyIGtob25nIGhlIGhheSBiaWV0IHZhIG5nYW4gc2FjaCBxdWFuIGN1bmcga2hvbmcg dGh1IGR1b2Mga2hvYW4gdGllbiBuYW8gdHUgZ2lhIHRyaSANCmNoZW5oIGxlY2ggY3VhIDQzIG5l biBuYXkgliB0aGVvIHVvYyB0aW5oIGxlbiB0b2kgaGFuZyB0eSBkb25nLiBEaWV1IGRhbmcgY2h1 IHkgbGEgbyBob3AgDQpkb25nIGNodXllbiBuaHVvbmcgInRheSBiYSwgdGF5IHR1IiBuYXksIGRv YW4gdGhhbmggdHJhIHBoYXQgaGllbiBsYSBwaGFuIGxvbiBjYWMgaG9wIA0KZG9uZyBkZXUgc2Fp IHBoYW0gdmUgbmd1eWVuIHRhYyB2YSBwaGFwIGx5Lg0KDQpDdSB0aGUsIGtob25nIGt5IGhvcCBk b25nIGNobyBuZ3VvaSBuaGFuIGNodXllbiBuaHVvbmcga2UgdGllcCBtYSBjaGkgbGFwIHBodSBs dWMgDQpob3AgZG9uZyBjaG8gbmd1b2kgbmhhbiBjaHV5ZW4gbmh1b25nOyBob3AgZG9uZyBraG9u ZyBnaGkgbmdheSwgdGhhbmcsIG5hbTsgaG9wIA0KZG9uZyBraG9uZyBjbyBobyBzbyBkdXlldCBi YW4gbmVuIG5oYSBjdWEgSG9pIGRvbmcgZ2lhaSBxdXlldCBkYXQgY2hvIENCQ05WIHF1YW4gMi4u Lg0KDQpUdSBrZXQgcXVhIHRoYW5oIHRyYSwgQ2hhbmggdGhhbmggdHJhIFRQIGRhIGNvIGtpZW4g bmdoaSB0byBjaHVjIGtpZW0gZGllbSwgeHUgbHkgdHJhY2ggDQpuaGllbSBkb2kgdm9pIFVCTkQg cXVhbiAyLCBkYSBjbyBzYWkgcGhhbSBuZ2hpZW0gdHJvbmcgdHJvbmcgcXVhIHRyaW5oIHRodWMg aGllbiBkdSANCmFuIHR1IGtoYXUgbGFwIGJhbyBjYW8gZHUgYW4sIGJvaSB0aHVvbmcgZ2lhaSBw aG9uZyBtYXQgYmFuZywgZHV5ZXQgZGFuaCBzYWNoIENCQ05WIA0KbXVhIG5lbiwgZGVuIGtoYXUg dGh1YyBoaWVuIGR1IGFuLg0KDQpLaWVuIG5naGkgQ2h1IHRpY2ggVUJORC5UUCB0aHUgaG9pIHNv IG5lbiBuaGEgZG9pIGR1IGN1YSBkdSBhbiBtYSBjaHUgZGF1IHR1IGRlbSANCmJhbiBraW5oIGRv YW5oIGRlIHRodSBub3AgbmdhbiBzYWNoIE5oYSBudW9jOyBraWVtIGRpZW0geHUgbHkgdHJhY2gg bmhpZW0gZG9pIHZvaSANCm5odW5nIGNhbiBibyB0YWkgQ29uZyB0eSBRdWFuIGx5IGtpbmggZG9h bmggbmhhIHF1YW4gMiBkZSB4YXkgcmEgaGFuZyBsb2F0IHNhaSBwaGFtIA0KdHJvbmcgcXVhIHRy aW5oIHRodWMgaGllbiBkdSBhbiBraHUgbmhhIG8gQ0JDTlYgcGh1b25nIEFuIFBodSwgcXVhbiAy Lg0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVUJORC1UUEhDTS1iaS1jYXAtZHVvaS15ZXUt Y2F1LXJ1dC1raW5oLW5naGllbS8yMDc3MTI5MS8xNTcvIDAyLzMvMjAwOCwgMDQ6MTUgR01UKzcN Cg0KVFAgSENNOiBVQk5EIFRQIGtob25nIHh1IGx5IGNvbmcgdmllYyBraXAgdGhvaSANCg0KLSBD aHVhIGNoaSBkYW8geHUgbHkga2lwIHRob2kgdmllYyBnaWFvIGRhdCBraGkgY2h1YSBjbyBxdXll dCBkaW5oIHRodSBob2kgZGF0OyANCg0KLSBOYW0gMTk5NSwgdGhhbmggdHJhIFRQIGtpZW4gbmdo aSBVQk5ELlRQIEhDTTogdGh1IGhvaSB0b2FuIGJvIGNhYyBraHUgZGF0IG1hIFNvIExhbyBkb25n ICYgVGh1b25nIGJpbmggeGEgaG9pIA0Ka2hvbmcgc3UgZHVuZzsgdGh1IGhvaSBjYWMgcXV5ZXQg ZGluaCBtYSBVQk5EIG1vdCBzbyBIdXllbiBjb25nIG5oYW4gcXV5ZW4gc3UgZHVuZyBkYXQgdnVv dCB0aGFtIHF1eWVuLCB2aSBwaGFtIA0KbHVhdCBkYXQgZGFpOyB4dSBseSBtb3Qgc28gdHJ1b25n IGhvcCBzYW5nIG5odW9uZyB0cmFpIHBoZXAga2hhYy4uLiANCk5odW5nLCAxMyBuYW0gcXVhLCBr ZXQgbHVhbiBraWVtIHRyYSB2YSBraWVuIG5naGkgY3VhIFRoYW5oIHRyYSBUUEhDTSBkYSBiaSBV Qk5EIFRQIEhDTSB2YSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgDQoiYm8gcXVlbiIgbW90IGNhY2gg a2hvIGhpZXUuIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9MYW9Eb25nL3ZuZWNvbm9t eS52bi9UcEhDTS12YS1IYS1Ob2ktdHJvbmctVG9wLTIwLXRoYW5oLXBoby1jby1tb2ktdHJ1b25n LWxhbS12aWVjLWtlbS1uaGF0LzI1NDgyMTguZXBpDQoNClRwLkhDTTogdHJvbmcgVG9wIDIwIHRo YW5oIHBobyBjbyBtb2kgdHJ1b25nIGxhbSB2aWVjIGtlbSBuaGF0IA0KDQpodHRwOi8vdmlldGJh by52bi9LaG9hLWhvYy9IYS1Ob2ktVFBIQ00tVG9wLTYtdGhhbmgtcGhvLW8tbmhpZW0tYnVpLW5o YXQtdGhlLWdpb2kvNzAxMDE2MzcvMTg4LyAyNi8xMC8gMjAwNywgMjE6MzEgR01UKzcgDQoNClRQ SENNOiBUcm9uZyB0b3AgNiB0aGFuaCBwaG8gbyBuaGllbSBidWkgbmhhdCB0aGUgZ2lvaSANCg0K aHR0cDovL2NodXllbnRyYW5nLnR1b2l0cmUudm4vVmllY2xhbS9JbmRleC5hc3B4P0FydGljbGVJ RD0zOTcxMDYmQ2hhbm5lbElEPTI2OSAyNS8wOC8yMDEwLCAxMToyMSAoR01UKzcpDQoNClRQLkhD TSBkdW5nIGRhdSBjYSBudW9jIHZlIHRhaSBuYW4gbGFvIGRvbmcgDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi94YWhvaS8yMDA5LzAzLzgzNDY3NC8NCg0KVFAgSENNOiBNdWEgdHJhaSBtdWEg LSBUUC5IQ00gY2hpbSB0cm9uZyBiaWVuIG51b2MNCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFo b2kvMjAxMDAxL0hhbmctbmdhbi1oby1kYW4tZGlldS1kdW5nLXNvbmctY2h1bmctdm9pLW51b2Mt Y29uZy04OTAzMDcvIDA5OjQyLCAxOS0wMS0yMDEwIChHTVQrNykNCg0KVFAuSENNOiBIYW5nIG5n YW4gaG8gZGFuIGRpZXUgZHVuZyBzb25nIGNodW5nIHZvaSBudW9jIGNvbmcgDQoNCmh0dHA6Ly90 dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvMzg5MzAxL0NhdS1kdW9uZy1CaW5oLVRyaWV1LTIt MTAtbmFtLWNodWEteG9uZy5odG1sIDEwLzA3LzIwMTAsIDA3OjI2IChHTVQrNykgDQoNClRQIEhD TTogQ2F1IGR1b25nIEJpbmggVHJpZXUgMjogMTAgbmFtIGNodWEgeG9uZyEgS2luaCBwaGkgbGVu IGdhcCAxMCBsYW4hIE9uZyBMZSBUaGFuaCBIYWkgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIGxvbiAN Cg0KVFQtIEh1b25nIHJhIHZhbyBUUC5IQ00gcXVhIGtodSB2dWMgY2F1IEJpbmggVHJpZXUgbGEg ZGllbSBub25nIHZlIGtldCB4ZSB2YSB0aW5oIA0KaGluaCBjYW5nIGNhbmcgdGhhbmcgaG9uIGto aSBjYXUgQmluaCBUcmlldSAxIGR1b2MgcmFvIGNoYW4gZGUgc3VhIGNodWEuIFRyb25nIGtoaSBk bywgDQpkdSBhbiBjYXUgZHVvbmcgQmluaCBUcmlldSAyIGtob2kgY29uZyBjYWNoIGRheSAxMCBu YW0gdmFuIGNodWEgbGFtIHhvbmc7IHR1YyBsYSB0dSBraGkgb25nIExlIFRoYW5oIEhhaSBsYW0g Q2h1IHRpY2ggVUJORCBUUCBIQ00uDQoNCkRhdSB0aGFuZyAyLTIwMDEsIFRvbmcgY29uZyB0eSBY YXkgZHVuZyBjb25nIHRyaW5oIGdpYW8gdGhvbmcgNSAoVG9uZyBjb25nIHR5IDUpIC0gDQpjaHUg ZGF1IHR1IGR1IGFuIEJPVCAoZGF1IHR1LCBraW5oIGRvYW5oIHZhIGNodXllbiBnaWFvKSAtIGRh IGtob2kgY29uZyBkdSBhbiBjYXUgDQpkdW9uZyBCaW5oIFRyaWV1IDIgKFEuQmluaCBUaGFuaCB2 YSBRLlRodSBEdWMpIGNvIHRvbmcgY2hpZXUgZGFpIDEwLjY1NCw3bSB2YSBkdSANCmtpZW4gaG9h biB0aGFuaCBzYXUgMjQgdGhhbmcgdGhpIGNvbmcuIFRyb25nIGR1IGFuIG5heSBjbyBjb25nIHRy aW5oIHhheSBkdW5nIGNhdSBCaW5oIA0KVHJpZXUgMiwgbW8gcm9uZyBxdW9jIGxvIDEzIHR1IG5n YSBuYW0gRGFpIGxpZXQgc2kgKFEuQmluaCBUaGFuaCkgZGVuIG5nYSB0dSBCaW5oIA0KUGh1b2Mg KFEuVGh1IER1YyksIG1vIHJvbmcgZHVvbmcgVW5nIFZhbiBLaGllbSAoZG9hbiB0dSBuZ2EgbmFt IERhaSBsaWV0IHNpIGRlbiANCmNhdSBTYWkgR29uKSwgeGF5IGR1bmcgbnV0IGdpYW8gdGhvbmcg Tmd1eWVuIFhpIC0gRGluaCBCbyBMaW5oIHZhIG51dCBnaWFvIHRob25nIG5nYSANCm5hbSBEYWkg bGlldCBzaS4uLg0KDQpEb2kga2luaCBwaGkgZ2FwIDEwIGxhbg0KDQpUdXkgbmhpZW4sIHZhbyBu YW0gMjAwMiBUUCBsYWkgdGhheSBkb2kgY2h1IHRydW9uZyBraGkgcXV5ZXQgZGluaCBtbyByb25n IHF1b2MgbG8gMTMgDQp0dSBuZ2EgdHUgQmluaCBUcmlldSBkZW4gbmdhIHR1IEJpbmggUGh1b2Mg bGVuIDUzbSB0aGF5IHZpIDMybS4gVGhlbyB0aW5oIHRvYW4gY3VhIA0KVG9uZyBjb25nIHR5IDUs IHRoYXkgZG9pIG5heSBzZSBraGllbiB2b24gZGF1IHR1IGJhbiBkYXUgdHUgMzQxLDkgdGkgZG9u ZyB0YW5nIGxlbiBob24gDQoxLjYwMCB0aSBkb25nIHZhIHNvIHZvbiBuYXkgdnVvdCBxdWEga2hh IG5hbmcgbmhhIGRhdSB0dS4gVmkgdmF5LCBzYXUga2hpIHhheSBkdW5nIA0KeG9uZyBjYXUgQmlu aCBUcmlldSAyLCBUb25nIGNvbmcgdHkgNSBkYSBub2kgbG9pIHRhbSBiaWV0IHZvaSBkdSBhbiB2 YW8gbmFtIDIwMDQuDQoNClRoYW5nIDMtMjAwNSwgVUJORCBUUCBnaWFvIGxhaSBkdSBhbiBuYXkg Y2hvIENvbmcgdHkgY28gcGhhbiBEYXUgdHUgaGEgdGFuZyBreSB0aHVhdCANClRQIChDSUkpIGxh bSBjaHUgZGF1IHR1IG1vaS4gTWFpIGRlbiB0aGFuZyA3LTIwMDcsIENJSSBtb2kgdHJpbmggdGhh bSBkaW5oIGRpZXUgY2hpbmggDQpkdSBhbiBjYXUgZHVvbmcgQmluaCBUcmlldSAyIHZvaSB0b25n IG11YyBkYXUgdHUgMy40OTMgdGkgZG9uZywgZG9uZyB0aG9pIGNoaWEgbmhvIGR1IA0KYW4gcmEg dGhhbmggYmF5IHRpZXUgZHUgYW4gdmEgZGVuIG5hbSAyMDA5IG1vaSBraG9pIGNvbmcgdGlldSBk dSBhbiBkYXUgdGllbiBsYSBzdWEgDQpjaHVhIG5hbmcgY2FwIGNhdSBCaW5oIFRyaWV1IGN1IChj YXUgQmluaCBUcmlldSAxKS4gTmh1IHZheSBzYXUgZ2FuIDEwIG5hbSBraG9pIGNvbmcgDQpkdSBh biBjYXUgZHVvbmcgQmluaCBUcmlldSAyLCB2aWVjIGx1dSB0aG9uZyBxdWEgdHV5ZW4gZHVvbmcg bmF5IGNvbiBkYXkgdHJhYyB0cm8uDQoNCkFpIGNoaXUgdHJhY2ggbmhpZW0/DQoNClRyb25nIG5o aWV1IG5hbSB0cm8gbGFpIGRheSwga2h1IHZ1YyBjYXUgQmluaCBUcmlldSBsdW9uIG5hbSB0cm9u ZyAidG9wIHRlbiIga2V0IHhlIG8gDQpUUC4gVHJvbmcgZG8sIGRpZW0gbm9uZyB2ZSBrZXQgeGUg bGEgbmdhIG5hbSBEYWkgbGlldCBzaSwgZ2lhbyBsbyBuZ2EgdHUgQmluaCBUcmlldSwgZ2lhbyAN CmxvIE5ndXllbiBYaSAtIERpbmggQm8gTGluaC4gVHJ1b2MgdGluaCBoaW5oIHRyZW4sIFNvIEdp YW8gdGhvbmcgdmFuIHRhaSBUUCBwaGFpIHRvIA0KY2h1YyBwaGFuIGx1b25nIGdpYW8gdGhvbmcg ZHVvbmcgbW90IGNoaWV1IG8ga2h1IHZ1YyBuYXkgZGUgdGltIGNhY2ggZ2lhbSBib3QgYWNoIHRh YyANCmdpYW8gdGhvbmcuDQoNClRoZSBuaHVuZyBnaWFpIHBoYXAgcGhhbiBsdW9uZyBnaWFvIHRo b25nIHZhbiBraG9uZyB4b2EgZHVvYyBuYW4ga2V0IHhlIG8gZ2lhbyBsbyBuZ2EgDQp0dSBCaW5o IFRyaWV1IHZhIHVuIHRhYyBnaWFvIHRob25nIG8gbmdhIG5hbSBEYWkgbGlldCBzaS4gVHJvbmcg ZG8sIG5hbmcgbmUgbmhhdCBsYSBnaWFvIA0KbG8gbmdhIHR1IEJpbmggVHJpZXUgdGh1b25nIHh1 eWVuIGtldCB4ZSB2YW8gZ2lvIGNhbyBkaWVtIChuaGF0IGxhIGx1YyBjbyB4ZSBsdWEgY2hheSAN CnF1YSkuIFRpbmggaGluaCBrZXQgeGUgbyBkYXkgY2FuZyBjYW5nIHRoYW5nIGhvbiB0cm9uZyBu Z2F5IGxlIHRldCwgY3VvaSB0dWFuIHZhIGRhdSB0dWFuLCANCmtoaSBzbyB4ZSBraGFjaCB0dSBi ZW4geGUgbWllbiBEb25nIGRpIGNhYyB0aW5oIHZhIGRvIHZlIFRQLkhDTSB0YW5nIGdhcCAyLTMg bGFuIG5nYXkgDQp0aHVvbmcgdmEgc28geGUgbHVhIGRpIHZhIHZlIGdhIFNhaSBHb24gdGFuZyBs ZW4gZ2FwIDMtNCBsYW4gbmdheSB0aHVvbmcuLi4NCg0KQ28gdGhlIG5vaSBjaGluaCBkdSBhbiBj YXUgZHVvbmcgQmluaCBUcmlldSAyIHRoaSBjb25nIGNoYW0gdHJlIGRhIGxhbSB0cmFtIHRyb25n IHRoZW0gDQpuYW4ga2V0IHhlIG8ga2h1IHZ1YyBub2kgdHJlbi4gVHJvbmcga2hpIGRvLCBjaHVh IGNvIGNvIHF1YW4gbmFvIG5vaSB2ZSB0cmFjaCBuaGllbSANCnRyb25nIHZpZWMgY2hhbSB0cmUg bmF5LiBUaGVvIGdoaSBuaGFuIGN1YSBjaHVuZyB0b2ksIG1haSBkZW4gbmFtIDIwMDYsIGNhYyBj byBxdWFuIA0KY2h1YyBuYW5nIFRQIG1vaSBrZXQgdGh1YyB0aHVvbmcgdGhhbyBob3AgZG9uZyBt dWEgbGFpIGR1IGFuIEJPVCBjYXUgZHVvbmcgQmluaCANClRyaWV1IDIgdm9pIFRvbmcgY29uZyB0 eSA1LiBUaWVwIGRvLCBtYXQgZ2FuIGJhIG5hbSBsYW0gdGh1IHR1YyBtb2kgdHJpZW4ga2hhaSB0 aWVwIG1vdCANCnBoYW4gY3VhIGR1IGFuIGxhIG5hbmcgY2FwIHN1YSBjaHVhIGNhdSBCaW5oIFRy aWV1IDEuIEJvaSB2aSBkZW4gbmF5IHRvYW4gYm8gbWF0IGJhbmcgDQpjdWEgZHUgYW4gdmFuICJh biBiaW5oIGJhdCBkb25nIiBkbyBjaHVhIGRlbiBidSBnaWFpIHRvYSBuZW4gY2h1IGRhdSB0dSBt b2kgY3VhIGR1IGFuIA0KY3VuZyBraG9uZyB4YWMgZGluaCBkdW9jIHRob2kgZ2lhbiBsYW0geG9u ZyBkdSBhbi4NCg0KTkdPQyBBTg0KDQpIaSB2b25nIGRlbiB0aGFuZyA2LTIwMTMgDQoNClRyYW8g ZG9pIHZvaSBQViBUdW9pIFRyZSwgb25nIERVT05HIFFVQU5HIENIQVUgLSBwaG8gZ2lhbSBkb2Mg ZGF1IHR1IENJSSAodG9uZyB0aGF1IA0KdGhpIGNvbmcgZHUgYW4gY2F1IGR1b25nIEJpbmggVHJp ZXUgMiBoaWVuIG5heSkgLSBjaG8gYmlldDogDQoNCiogRHUgYW4gY2F1IGR1b25nIEJpbmggVHJp ZXUgMiBnaWFpIGRvYW4gMiBkbyBDSUkgbGFwIGNvIGRlbiBiYXkgdGlldSBkdSBhbiwgbmh1bmcg aGllbiANCm5heSBtb2kgdHJpZW4ga2hhaSBtb3QgdGlldSBkdSBhbiBzdWEgY2h1YSBjYXUgQmlu aCBUcmlldSAxLCBjYWMgdGlldSBkdSBhbiBjb24gbGFpIGJhbyBnaW8gbW9pIGR1b2MgdHJpZW4g a2hhaT8NCg0KLSBOZ2F5IDIzLTItMjAxMCwgQ0lJIGRhIHRyaW5oIFNvIEdUVlQgVFAgdGhhbSBk aW5oIHRpZXUgZHUgYW4gbmFuZyBjYXAgdmEgbW8gcm9uZyANCnF1b2MgbG8gMTMgZG9hbiB0dSBn YSBCaW5oIFRyaWV1IGRlbiBudXQgZ2lhbyB0aG9uZyBCaW5oIFBodW9jIChRLlRodSBEdWMpIHR1 IDMybSANCmxlbiA1M20uIFR1eSBuaGllbiwgU28gR1RWVCBUUCBjaG8gYmlldCBkYW5nIHhlbSB4 ZXQgbGFpIHZpIHRpbmggZGVuIHBodW9uZyBhbiBsYW0gDQpkdW9uZyBrZXQgbm9pIHZvaSBkdSBh biBUYW4gU29uIE5oYXQgLSBCaW5oIExvaSAtIHZhbmggZGFpIG5nb2FpIChkdSBhbiBkbyBjb25n IHR5IA0KbnVvYyBuZ29haSBsYW0gY2h1IGRhdSB0dSkgdmEgZHUgYW4gdHV5ZW4gbWV0cm8gM0Ig KGRvIEJhbiBxdWFuIGx5IGR1b25nIHNhdCBkbyB0aGkgDQpUUC5IQ00gbGFtIGNodSBkYXUgdHUp LiBUaWV1IGR1IGFuIG1vIHJvbmcgbnV0IGdpYW8gdGhvbmcgbmdhIG5hbSBEYWkgbGlldCBzaSAN CihRLkJpbmggVGhhbmgpIHRoaSBjb24gZGFuZyBiYW4gdmkgU28gR1RWVCBUUCB5ZXUgY2F1IENJ SSB0aW5oIHRoZW0gcGh1b25nIGFuIHhheSANCmR1bmcgbnV0IGdpYW8gdGhvbmcgY28gY2F1IHZ1 b3QsIGhhbSBjaHVpIGRlIGRhcCB1bmcgbmh1IGNhdSBnaWFvIHRob25nIHRyb25nIHR1b25nIA0K bGFpLg0KDQpPIHRpZXUgZHUgYW4gbW8gcm9uZyBkdW9uZyBOZ3V5ZW4gWGksIFNvIEdUVlQgVFAg eWV1IGNhdSBDSUkgYm8gc3VuZyBkb2FuIGR1b25nIA0KTmd1eWVuIFhpIGRhaSBraG9hbmcgNjAw bSBkZSBrZXQgbm9pIHZvaSBkdSBhbiB4YXkgZHVuZyBjYXUgRG8uIFRoZW8gZG8sIHR1eWVuIA0K ZHVvbmcgdHJlbiBzZSBtbyByb25nIHRob25nIHRob2FuZyB0dSB0dXllbiBkdW9uZyBWYW0gVGh1 YXQgLSBWdW9uIExhaSAoUS4xMikgLSANCk5ndXllbiBYaSAtIFVuZyBWYW4gS2hpZW0gZGVuIGNh dSBTYWkgR29uIChRLkJpbmggVGhhbmgpLg0KDQoqIER1IGFuIGNhdSBkdW9uZyBCaW5oIFRyaWV1 IDIgdHJpIHRyZSBnYW4gMTAgbmFtIHF1YS4gVGhlbyBvbmcsIHZpIHNhbz8NCg0KLSBEdSBhbiBu YXkga2VvIGRhaSB2aSBuZ3VvbiB2b24gZGF1IHR1IGJpIGhhbiBjaGUuIEN1IHRoZSBsYSB0cm9u ZyB0aG9pIGdpYW4gVG9uZyBjb25nIA0KdHkgNSB0aGkgY29uZyBtbyByb25nIHF1b2MgbG8gMTMg bGVuIDMybSB0aGkgVFAgeWV1IGNhdSBtbyByb25nIGxlbiA1My02MG0gbmVuIGRvbiB2aSANCm5h eSBraG9uZyBkdSB2b24gZGF1IHR1LiBIb24gbnVhLCBjb25nIHRyaW5oIG5heSBjb24gdGhlIGhp ZW4gc3UgdGhpZXUgdGFtIG5oaW4gdmUgDQp0dW9uZyBsYWkuIEx1YyBkbywgZG8gVFAgY2h1YSBj byBxdXkgaG9hY2ggdG9uZyB0aGUgdmUgZ2lhbyB0aG9uZyB2YW4gdGFpIG5lbiBkdSBhbiANCmto b25nIHRpbmggdmllYyBrZXQgbm9pIHZvaSBjYWMgZHUgYW4gVGFuIFNvbiBOaGF0IC0gQmluaCBM b2kgLSB2YW5oIGRhaSBuZ29haSB2YSBkdSBhbiANCnR1eWVuIG1ldHJvIHNvIDNCIHNlIHhheSBk dW5nIHNhdSBuYXkuDQoNCkR1IGFuIGNoYW0gbW90IHBoYW4gY3VuZyB2aSBjYW4gY28gdGhvaSBn aWFuIGRlIGNodXllbiBkb2kgY2h1IGRhdSB0dSB0dSBUb25nIGNvbmcgdHkgDQo1IHZlIENJSS4g RGFjIGJpZXQga2hvIGtoYW4gbmhhdCBsYSB2ZSBkZW4gYnUgZ2lhaSB0b2EuIENvIHRoZSBub2kg bmd1eWVuIG5oYW4gY2hhbSB0cmUgDQpjdWEgZHUgYW4gbmF5IGxhIGRvIG5oaWV1IHlldSB0byBr aGFjaCBxdWFuLg0KDQoqIFZheSB0aGVvIG9uZywgZGVuIGJhbyBnaW8gbmd1b2kgZGFuIG8ga2h1 IHZ1YyBjdWEgbmdvIHBoaWEgZG9uZyBUUCBtb2kga2hvbmcgY29uIA0KY2hpdSBjYW5oIGtldCB4 ZSB2YSBkdW9uZyBzYSBuaGVjaCBuaGFjIG5odSBoaWVuIG5heT8NCg0KLSBIaWVuIG5heSwgQ0lJ IGNvIGR1IHZvbiBkZSB0aHVjIGhpZW4gZHUgYW4gbmF5IG5odW5nIGtobyBraGFuIHZ1b25nIG1h YyBuaGlldSBuaGF0IA0KbGEgdmllYyBnaWFpIHRvYSBtYXQgYmFuZy4gTmV1IHR1IGRheSBkZW4g Y3VvaSBuYW0gMjAxMCwgVFAga2hvbmcgYm8gc3VuZyB2b24gY2hvIGNhYyANCnF1YW4gZGUgZGVu IGJ1IGdpYWkgdG9hIG1hdCBiYW5nIHRoaSB2aWVjIHRyaWVuIGtoYWkgY2FjIHRpZXUgZHUgYW4g c2UgY29uIGdhcCByYXQgbmhpZXUgDQpraG8ga2hhbi4gTmV1IGdpYWkgdG9hIG1hdCBiYW5nIHhv bmcgdmFvIHRoYW5nIDYtMjAxMSB0aGkgZGVuIHRoYW5nIDYtMjAxMyBkdSBhbiBjYXUgDQpkdW9u ZyBCaW5oIFRyaWV1IDIgbW9pIGhvYW4gdGhhbmguDQoNCk4uQU4gdGh1YyBoaWVuIA0KDQooQ3Ug dHJpIHF1YW4gdGFtOiBEdW5nIG5odSBMYW5oIGRhbyBDb25nIHR5IGNvIHBoYW4gRGF1IHR1IGhh IHRhbmcga3kgdGh1YXQgVFAgLSBDSUkgLSBkYSBwaGFuIHRpY2gsIA0KY29uZyB0cmluaCBDYXUg ZHVvbmcgQmluaCBUcmlldSAyIG5heSB0aGUgaGllbiBzdSB0aGlldSB0YW0gbmhpbiB2ZSB0dW9u ZyBsYWk7IGx1YyBkbywgVFAgY2h1YSBjbyANCnF1eSBob2FjaCB0b25nIHRoZSB2ZSBnaWFvIHRo b25nIHZhbiB0YWkgbmVuIGR1IGFuIGtob25nIHRpbmggdmllYyBrZXQgbm9pIHZvaSBjYWMgZHUg YW4gDQpUYW4gU29uIE5oYXQgLSBCaW5oIExvaSAtIHZhbmggZGFpIG5nb2FpIHZhIGR1IGFuIHR1 eWVuIG1ldHJvIHNvIDNCIHNlIHhheSBkdW5nIHNhdSBuYXkuIA0KDQpUcm9uZyBuaGlldSBuYW0g dHJvIGxhaSBkYXksIGtodSB2dWMgY2F1IEJpbmggVHJpZXUgbHVvbiBsYSB0cm9uZyBkaWVtIGtl dCB4ZSBvIFRQIEhDTSwgdmEgDQpvbmcgTmd1eWVuIE1pbmggVHJpZXQgLSBuZ3V5ZW4gQmkgdGh1 IFRoYW5oIHV5IFRQIEhDTSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gbG9uIHZlIHZhbiBkZSBidWMg eHVjIG5heS4pIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvRHVvbmctdGFjLWRp ZW4tZ2lhdC1uZ3VvaS1jaGV0LzIwMDk0LzEzNDA4Mi5sYW9kb25nIDc6NTkgQU0sIDE0LzA0LzIw MDkNCg0KVFAgSENNOiBEdW9uZyB0YWMsIGRpZW4gZ2lhdCwgbmd1b2kgY2hldA0KDQpTYW5nIDEz LjQsIGNvbiBtdWEgbG9uIGtlbyBkYWkgaG9uIDIgZ2lvIGxhbSBuZ2FwIG5hbmcgaGFuZyBsb2F0 IHR1eWVuIGR1b25nIG8gVFBIQ00uIEN1bmcgbHVjIGRvIGRhIHhheSByYSBzdSBjbyANCmRheSBk aWVuIGR1dCByb2kgeHVvbmcgZHVvbmcsIGxhbSBtb3Qgbmd1b2kgY2hldCwgbW90IHNvIG5ndW9p IGJpIHRodW9uZy4NCg0KRHVvbmcgcGhvIGNoaW0gbmdhcCB0cm9uZyBiaWVuIG51b2MgDQoNCmh0 dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9DYWMtZHUtYW4tbmhhLW8tVFBIQ00tS2llbS10 cmEtbGEtcmEtc2FpLXBoYW0vMjAxMDYvMTg5MzU1Lmxhb2RvbmcgOTowMCBBTSwgMjMvMDYvMjAx MA0KDQpUUCBIQ006IENhYyBkdSBhbiBuaGEgbyBUUEhDTSAtIEtpZW0gdHJhIGxhIHJhIHNhaSBw aGFtIQ0KDQpNYWMgZHUgbW9pIGNoaSBraWVtIHRyYSBjbyAyMC8yMzAgZHUgYW4gbmhhIG8sIG5o dW5nIGRvYW4ga2llbSB0cmEgZGEgcGhhdCBoaWVuIGhhdSBoZXQgY2FjIGR1IGFuIGRldSBjbyBp dCBuaGlldSB2aSBwaGFtIGNhYyBxdXkgZGluaC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL25ld3MvUGFnZXMvMjAxMDI4LzIwMTAwNzA1MDIzMDUxLmFzcHggMDUvMDcvMjAxMCAyOjMw IA0KDQpUUCBIQ006IEhhaSBodW5nICJjb25nIG5naGUiIHRyb25nIHJhdSBtdW9uZyAtIHN1IGR1 bmcgdGh1b2MgY2FtIC0gdmllbiAiZG9jIiB2YSB0aHVvYyAibW8iIGxhbSByYXUgbW9pIG5nYXkg Y2FvIDEwIGNtIA0KIA0KUmF1IG11b25nIGxhIGxvYWkgcmF1IHBobyBiaWVuIHRyb25nIGJ1YSBh biBoYW5nIG5nYXkuIE5odW5nIGl0IGFpIG5nbyBtbyByYXUgbm9uIG1vbiwgYmF0IG1hdCBsYWkg ZHVvYyANCmtob25nIGl0IG5ndW9pIHRyb25nIHJhdSBvIFRQLkhDTSBzdSBkdW5nIG5odW5nIHRo dW9jIGNhbSwgdGh1b2Mga2ljaCB0aGljaCB0YW5nIHRydW9uZy4uLiwgdGhhbSBjaGkgY2EgDQpu aG90IHRoYWkgZGUgbWF1IHRodSBob2FjaC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZu L05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzE1MDE0NjU2LmFzcHggIDE1LzA3LzIwMTAgMTo0NiAN Cg0KVFAgSENNOiBDaGF0IGx1b25nIHJhdSBkYW5nIGJpIHRoYSBub2khIFJhdSAia3kgc2luaCIg dHJlbiBrZW5oIG51b2MgZGVuIA0KICANCkNvIHF1YW4gY2h1YyBuYW5nIGJvIHRheSEgQ2h1YSBj byBjbyBzbyBzYW4geHVhdCByYXUgdHJvbmcgImNodW9pIHRodWMgcGhhbSBhbiB0b2FuIg0KDQpo dHRwOi8vdmlldGJhby52bi9YYS1ob2kvR2FuLTE1MDBoYS1kYXQtbm9uZy10cnVvbmctZHVvYy1n aWFvLXRodWUtbXVvbi10cmFpLXBoZXAvNDAwMTI4NzEvMTU3LyAxNy8xMi8gMjAwMywgMDk6MTAg R01UKzcgDQoNClRQIEhDTTogR2FuIDE1MDBoYSBkYXQgbm9uZyB0cnVvbmcgZHVvYyBnaWFvLCB0 aHVlLCBtdW9uIHRyYWkgcGhlcCAoeGluIHhlbSBjaGkgdGlldCBvIHBoYW4gdGllcCB0aGVvKSAN Cg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI0LzIwMTAwNjA3 MDAyOTU5LmFzcHggMDcvMDYvMjAxMCAwOjI5IA0KDQpUUCBIQ006IFBoYW4gbG8gYmFuIGRhdCBj b25nIHZpZW4gIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEw NDAvMjAxMDEwMDMwMDE1MzAuYXNweCAwMy8xMC8yMDEwIDA6MTUgDQoNClRQLkhDTTogbmhpZXUg dHV5ZW4gZHVvbmcgbmdhcCBuYW5nIHNhdSBtdWEgICANCg0KTmhpZXUgdHV5ZW4gZHVvbmcgdGh1 b2MgY2FjIHF1YW4gMSwgMywgNSwgMTAuLi4gKFRQLkhDTSkgYmkgbmdhcCByYXQgc2F1IHNhdSB0 cmFuIG11YSBsb24ga2VvIGRhaSB0dSA4LTEwIGdpbyBzYW5nIHF1YS4gDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNjE1MDUwNi5hc3B4IDA2 LzEwLzIwMTAgMTU6MDUgDQoNClRQIEhDTTogR2FuIG1vdCBudWEgc28gcGh1b25nLCB4YSBUUC5I Q00gbGEgbyBkaWNoIFNYSCAgDQoNClRyZSBiaSBzb3QgeHVhdCBodXlldCBkYW5nIGRpZXUgdHJp IG8gQmVuaCB2aWVuIE5oaSBkb25nIDIgLSBBbmg6IFRoYW5oIFR1bmcNCg0KVGFpIFRQLkhDTSwg c290IHh1YXQgaHV5ZXQgKFNYSCkgZGEgdGFuZyBsaWVuIHR1YyB0cm9uZyBiYSB0aGFuZyAodGhh bmcgNywgOCwgOSkgdmEgZHUga2llbiB2YW4gdGllcCB0dWMgdGFuZyB0cm9uZyB0aGFuZyAxMC4g SGllbiBuYXksIGdhbiBtb3QgbnVhIHNvIHBodW9uZywgeGEgY3VhIFRQLkhDTSAoMTY2LzMyMiBw aHVvbmcsIHhhKSBkdW9jIHhhYyBkaW5oIGxhIG8gZGljaCBTWEgsIHRyb25nIGRvIDM1IGRpZW0g bGEgbyBkaWNoIGtlbyBkYWkgKHN1b3QgMyB0aGFuZykuIA0KDQpodHRwOi8vd3d3LnJmYS5vcmcv dmlldG5hbWVzZS9pbl9kZXB0aC9XaHktaG8tY2hpLW1pbmgtY2l0eS1pcy1zdGlsbC1mbG9vZGVk LWFmdGVyLXRoZS1yYWluLXFuaHUtMDYxMzIwMTAxNTA5MjMuaHRtbCAyMDEwLTA2LTEzIFF1eW5o IE5odSwgcGhvbmcgdmllbiBSRkENCg0KVFAgSENNOiBOZ3V5ZW4gbmhhbiB2YW4gY29uIHRyb25n IHRpbmggdHJhbmcgdHJvaSBtdWEgbmdhcCBudW9jIGxhIGRvIHRoaWV1IHF1eSBob2FjaCBwaGF0 IHRyaWVuIGRvbmcgYm8hIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVGllbi1uaGEtbnVv Yy1tYW5oLWFpLW5heS10aWEvNDAxODU3MDEvMTU3LyBUaHUgaGFpLCAwNSBUaGFuZyBoYWkgMjAw NywgMDc6MDIgR01UKzcgDQoNClRQIEhDTTogVGllbiBuaGEgbnVvYywgbWFuaCBhaSBuYXkgInRp YSIgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1RQSENNLVR1LWhpbmgt a2UtZ2lldC1kb25nLW5naGllcC1oaWVwLWRhbS8zMDExOTkxNi8yMTgvIDI4LzUvMjAwNiwgMDU6 MDQgR01UKzcgDQoNClRQSENNOiBHaWV0IGRvbmcgbmdoaWVwLCBoaWVwIGRhbSANCg0KaHR0cDov L3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvVFAtSENNLXRpZXUtY3VjLXRoYW0tbmh1bmct dmFuLWNvbi1waG8tYmllbi12YS1uZ2hpZW0tdHJvbmcvNDAxMTk1ODkvMjE4LyAyMC8xMS8yMDA2 LCAwODoyMCBHTVQrNw0KDQpUUC5IQ006IFRpZXUgY3VjLCB0aGFtIG5odW5nIHBobyBiaWVuIHZh IG5naGllbSB0cm9uZyEgDQoNCmh0dHA6Ly93d3cudGh1dmllbnBoYXBsdWF0LnZuL2RlZmF1bHQu YXNweD9DVD1OVyZOSUQ9MzMzMjMgMTgvMTIvMjAwOQ0KDQpUUCBIQ006IFRoYW0gbmh1bmcga2ll dS4uLiBOZ3V5ZW4gVmFuIEtob2UNCg0KSGFpIGNodSBreSAiVEhVQU4gRElBIERJRU0iIGdpYSAu Li4gYm9uIHRyYW0gdHJpZXUgZG9uZyENCg0KQ2h1YSBob2MgaGV0IGNhcCBoYWkgbmh1bmcga2hl byBhbiBub2ksIE5ndXllbiBWYW4gS2hvZSBkdW9jIG5oYW4gdmFvIGxhbSBuaGFuIHZpZW4gdmFu IGhvYSANCnRob25nIHRpbiB4YSBBbiBQaHUgRG9uZywgaHV5ZW4gSG9jIE1vbiwgc2F1IGRvIGxl byBsZW4gZ2hlIENodSB0aWNoIHhhLiBEZSB0cmVvIGNhbywgY2h1aSBzYXUsIA0KS2hvZSB0aW0g Y2FjaCAidG90IG5naGllcCBkYWkgaG9jIiwgImFtIiBsdW9uIGJhbmcgInRoYWMgc2kga2luaCB0 ZSIuIA0KDQpUaGFuZyB0aWVuIHZlIGh1eWVuIEhvYyBNb24sIEtob2UgZ2l1IGNodWMgVHJ1b25n IHBob25nIEtpbmggdGUgdHUgbmFtIDE5OTUsIFBobyBjaHUgdGljaCBuYW0gMTk5NyANCnJvaSBj aGllbSBjaGUgbmdvaSB2YW8gZ2hlIENodSB0aWNoIFVCTkQgaHV5ZW4gbmFtIDIwMDAuIEJlbiBj YW5oIG5ob20gY2FuIGJvIGR1b2kgdHJ1b25nIGR1b2Mgc2FuZyANCnR1eWVuLCBLaG9lIGtldCBn aWFvIHZvaSBuaGlldSAiY2hpZW4gaHV1IiBsYSAgZGF1IG5hdSwgImNvIiBkYXQsIGNodSBkb2Fu aCBuZ2hpZXAuLi4gaGluaCB0aGFuaCANCmR1b25nIGRheSBjaHV5ZW4gdGh1IGdvbSwgZGF1IGNv IGRhdCwgY2hheSBkdSBhbiwgYmFvIGtlIHNhbiBsYXAsIHhheSBkdW5nIGxhdS4gDQoNClNvIHZv aSBkdW9uZyBkYXkgdGlldSBjdWMgZGF0IGRhaSBvIEdvIFZhcCBjdWEgbmd1eWVuIENodSB0aWNo IFVCTkQgcXVhbiBUcmFuIEtpbSBMb25nIHRoaSBkdW9uZyBkYXkgDQpjdWEgS2hvZSBnaGUgZ29t IGhvbiBuaGlldS4uLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwMjkvMjAxMDA3MTIyMzIyNDMuYXNweCBNaW5oIE5hbS0gSG9haSBOYW0gMTIvMDcvMjAxMCAy MzoyMiANCg0KVFAgSENNOiBSYXUgImt5IHNpbmgiIHRyZW4ga2VuaCBudW9jIGRlbiAtIG5ndXkg aGllbSBkb2kgdm9pIHN1YyBraG9lIG5ndW9pIHRpZXUgdGh1LiANCg0KaHR0cDovL3d3dy50aW4y NDcuY29tL25oaWV1X2Nhbl9ib190aGFtX25odW5nJTJDX3RpZXVfY3VjX3Ryb25nX2xpbmhfdnVj X25oYV9kYXQtNi0yMTMxNDg4OC5odG1sIDE3LzA4LzIwMDYgLSAwNTo1NyAtIE5ndW9uOiB2bkV4 cHJlc3MubmV0DQoNClRQIEhDTTogTmhpZXUgY2FuIGJvIHRoYW0gbmh1bmcsIHRpZXUgY3VjIHRy b25nIGxpbmggdnVjIG5oYSBkYXQgDQoNCi0gQ2h1IHlldSB0YXAgdHJ1bmcgbyB2aWVjIHRoYW5o IGx5LCBiYW4gbmhhIGRhdCB0aHVvYyBzbyBodXUgbmhhIG51b2M7IA0KbG9pIGR1bmcgZGFuaCBu Z2hpYSBsYXAgZHUgYW4gbmhhIGNobyBuZ3VvaSBjbyB0aHUgbmhhcCB0aGFwIGhvYWMgY2hvIGNh biBibywgDQpjb25nIG5oYW4gdmllbiBuaHVuZyBzYXUgZG8gcGhhbiBsbywgYmFuIG5lbiBraG9u ZyBkdW5nIGRvaSB0dW9uZy4uLg0KDQotIFZpIHBoYW0gcGhvIGJpZW4gdHJlbiBsaW5oIHZ1YyB0 YWkgY2hpbmggbGEgdmllYyBtdWEgc2FtIHZhdCB0dSB0cmFuZyB0aGlldCBiaSB2b2kgZ2lhIHRy aSANCmxvbiBraG9uZyBxdWEgZGF1IHRoYXUgaG9hYyBxdWFuIGx5IGRhdSB0aGF1IGtob25nIGNo YXQgY2hlLCBsYW0gcGhhdCBzaW5oIG5oaWV1IHRpZXUgY3VjLCBnYXkgdGhhdCB0aG9hdCwgdGhp ZXQgaGFpIGxvbi4NCg0KaHR0cDovL3d3dy5kb25nYWJhbmsuY29tLnZuL3NlcnZpY2UvNjMuaHRt bA0KDQpUUCBIQ006IFZhbiBwaG9uZyBUaGFuaCB1eSBUUC5IQ00gZHVuZyB0aWVuIHRodWUgY3Vh IGRhbiBnb3AgY28gcGhhbiB2YW8gbmdhbiBoYW5nIERvbmcgQSwga2llbSBsb2kuIA0KDQpodHRw Oi8vdmlldG5hbW5ldC52bi94YWhvaS9waGFwbHVhdC8yMDEwMDcvTmFuLW5oYW4ta2luaC1ob2Fu Zy1rZS1jaHV5ZW4tYmktYmFvLXZlLW5nYW4taGFuZy1iYW4tOTI0NDk3LyBEYW0gRGUgMjI6MDks IDI0LzA3LzIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006IEJhbyB2ZSBOZ2FuIGhhbmcgRG9uZyBBIGJh biBkb2kgdGFjIGtoYWNoIGhhbmcgLSAxIG5ndW9pIGJpIHRodW9uZyANCg0KTmFuIG5oYW4gY2hv IGJpZXQgYmkgaGFpIGJhbyB2ZSBkdW5nIHN1bmcgdXkgaGllcCB2YSA0IJYgNSBwaGF0IHN1bmcg ZGEgbm8uIDQgdm8gZGFuIGRhIGR1b2MgdGltIHRoYXkgdGFpIGhpZW4gdHJ1b25nLiAgDQoNCkJh IExlIFF1eW5oIFRodSwgUGhvIEdpYW0gZG9jIE1ha2V0dGluZyBraWVtIHBoYXQgbmdvbiB2aWVu IGN1YSBOZ2FuIGhhbmcgRG9uZyBBIA0Ka2hhbmcgZGluaCBjaGkgY28gMSBwaGF0IHN1bmcgbm8g dmEgbm9pOiAiRGVuIHRob2kgZGllbSBuYXkgY2h1bmcgdG9pIGNoaSB4YWMgZGluaCANCmtoYXUg c3VuZyBwaGF0IG5vIGxhIGtoYXUgc3VuZyBjbyBnaWF5IHBoZXAuIENvbiB2ZSBraGF1IHN1bmcg a2hvbmcgY28gZ2lheSBwaGVwLCANCmNodW5nIHRvaSBkYW5nIGNobyBrZXQgbHVhbiBjaGluaCB0 aHVjLi4uIiANCg0KaHR0cDovL3ZpZXRiYW8udm4vS2luaC10ZS9IYW5nLWxvYXQtQVRNLXJvLWRp ZW4tVHJhY2gtbmhpZW0tbmdhbi1oYW5nLWRlbi1kYXUvNjUxOTE2NzYvOTEvIEtob25nIE5odW5n IDA4LzQvIDIwMTAsIDE2OjMzIEdNVCs3DQoNCk1heSBBVE0gY3VhIG5nYW4gaGFuZyBEb25nIEEg Ymkgcm8gZGllbg0KDQpodHRwOi8vZm9ydW0uaGl2LmNvbS52bi9kZWZhdWx0LmFzcHg/Zz1wb3N0 cyZtPTE5OTgxMyAwODoyNzowMCAyMC8wNS8yMDEwDQoNCktoYWNoIGhhbmcgbGFpIGJpIGRpZW4g Z2lhdCB0YWkgY290IEFUTSBOZ2FuIGhhbmcgRG9uZyBBDQoNClRoZW8gcGhhbiBhbmggY3VhIG5n dW9pIGRhbiBkZW4gQmFvIENBTkQsIHZhbyBsdWMgMTloIG5nYXkgMTgvNS8yMDEwLCBjaGkgTi5U LiBjbyANCnZhbyBnaWFvIGRpY2ggdGFpIGNvdCBBVE0gY3VhIE5nYW4gaGFuZyAoTkgpIERvbmcg QSBkYXQgdHJ1b2MgY3VhIFVCTkQgcGh1b25nIA0KWHVhbiBMYSAocXVhbiBUYXkgSG8sIEhhIE5v aSkuIEtoaSBjYW0gdmFvIHRheSBuYW0gY3VhIGN1YSBjb3QsIGNoaSBOLlQuIGRhIGJpIGRpZW4g DQpnaWF0IG1hbmgsIHRlIGJhaSBjYW5oIHRheSB0cmFpLiBEdSBnaWF0IHZvaSBkdW9jIHRheSBy YSwgbmh1bmcgc3UgdmllYyB0cmVuIGRhIGtoaWVuIGNoaSBULiANCmhldCBzdWMgaG9hbmcgc28u IA0KDQpCdWMgeHVjIHRydW9jIHRpbmggdHJhbmcgbmF5LCBjaGkgTi5ULiBkYSBuZ2F5IGxhcCB0 dWMgZ29pIGRpZW4gcGhhbiBhbmggbGFpIHZvaSBUcnVuZyANCnRhbSBUaGUgY3VhIG5nYW4gaGFu Zy4gRHVvYyBiaWV0LCBtYWMgZHUgdHJ1b2MgZG8gSGEgTm9pIGNvIG11YSwgbmh1bmcgdmkgdHJp IGNvdCANCkFUTSB0cmVuIHZpYSBoZSBraGEga2hvIHJhby4NCg0KU2FuZyAxOS81LCBQViBCYW8g Q0FORCBkYSBsaWVuIGhlIHZvaSBiYSBOZ3V5ZW4gVGhpIEtpbSBEdW9uZywgR2lhbSBkb2MgTmdh biANCmhhbmcgRG9uZyBBLCBjaGkgbmhhbmggSGEgTm9pIGRlIGJpZXQgdGhlbSB0aG9uZyB0aW4u IEJhIER1b25nIGRhIHhhYyBuaGFuIHN1IGNvIHZhIA0KY2hvIGJpZXQgZGllbiBybyB0dSBiYW5n IGRlbiBjdWEgY290LiAiS2hpIHRyb2kgbXVhLCB0aGluaCB0aG9hbmcgaGllbiB0dW9uZyBuYXkg dmFuIHhheSByYSIuIA0KRGlldSBkYW5nIG5vaSBsYSBobyBkaWVuIGJhbmcgZGVuIGN1bmcgbGEg bW90IHRyb25nIG5odW5nIHN1IGNvIGRhIGdhcCBwaGFpIHRydW9jIGRheSwgDQptYSBjYWMgTkgg ZGV1IGRhIHR1eWVuIGJvIHJhIHNvYXQsIHN1YSBjaHVhLCBkYW0gYmFvIGFuIHRvYW4gY2hvIGto YWNoIGhhbmcgZ2lhbyBkaWNoOyANCihzb25nIGRlbiBuYXkgdmFuIHhheSByYSB0YWkgQVRNIE5n YW4gaGFuZyBEb25nIEEpLiANCg0KLQ0KaHR0cDovL3d3dy5zZ2dwLm9yZy52bi9jaGluaHRyaS8y MDA3LzExLzEzMjk2Mi8gVGh1IG5hbSwgMjkvMTEvMjAwNywgMDE6MzcgKEdNVCs3KQ0KDQpUUCBI Q006IERvYW4gZGFpIGJpZXUgZG8gb25nIExlIFRoYW5oIEhhaSwgVVZCQ1QsIEJpIHRodSBUaGFu aCB1eSBUUEhDTSBsYW0gVHJ1b25nIGRvYW4gdGhhbSwgDQpsYW0gdmllYyB0YWkgVHJ1bmcgUXVv YyB0dSBuZ2F5IDE4IGRlbiBuZ2F5IDI2LTExLTIwMDcuIE9uZyBIYSBRdW9jIEN1b25nLCBVViBU aHVvbmcgdnUgQkNUIFRydW5nIFF1b2MgZGEgdGllcCBkb2FuLg0KDQpPbmcgTGUgVGhhbmggSGFp IGRhbmggZ2lhIGNhbyBuaHVuZyB0dXUgdG8gbG9uIG1hIFRydW5nIFF1b2MgZGEgZGF0IGR1b2Mg dHJvbmcgY2FpIGNhY2gsIG1vIGN1YTsgDQp0aG9uZyBiYW8gdm9pIGxhbmggZGFvIFRydW5nIHVv bmcgdmEgY2FjIGRpYSBwaHVvbmcgY3VhIFRydW5nIFF1b2Mgbmh1bmcgbmV0IGxvbiB2ZSB0aW5o IGhpbmggVmlldCBOYW0gZ2FuIGRheS4gDQpPbmcgSGFpIGNhbSBvbiBUcnVuZyBRdW9jIGRhIHRp ZXAgZG9uIGRvYW4gcmF0IHRyb25nIHRoaSwgY2h1IGRhbywgdGh1IHhlcCBtb3QgY2h1b25nIHRy aW5oIGxhbSB2aWVjIHBodSBob3AsIGNvIGhpZXUgcXVhLCBkYXAgdW5nIGR1b2MgY2FjIHlldSBj YXUgY3VhIGNodXllbiBjb25nIHRhYy4NCg0KSGFpIGJlbiBkZXUgdnVpIG11bmcgdHJ1b2Mgbmh1 bmcgdGhhbmggdHV1IHRvIGxvbiBjdWEgMiBudW9jIHZhIHF1YW4gaGUgaHV1IG5naGksIA0KaG9w IHRhYyBjdWEgMiBudW9jIG5nYXkgY2FuZyBwaGF0IHRyaWVuIHRvYW4gZGllbiB0aGVvIHRpbmgg dGhhbiAxNiBjaHUgdmFuZyANCiJMYW5nIGdpZW5nIHRoYW4gdGhpZW4sIEhvcCB0YWMgdG9hbiBk aWVuLCBPbiBkaW5oIGxhdSBkYWksIEh1b25nIHRvaSB0dW9uZyBsYWkiIA0KdmEgdGluaCB0aGFu IDQgdG90ICJMYW5nIGdpZW5nIHRvdCwgQmFuIGJlIHRvdCwgRG9uZyBjaGkgdG90LCBEb2kgdGFj IHRvdCIuIA0KDQpodHRwOi8vYmFvdG9xdW9jLmNvbS8yMDA5LzA2LzEwL2QlRTElQkIlOTNuZy1j aGktdCVFMSVCQiU5MXQtbGFuZy1naSVFMSVCQiU4MW5nLXQlRTElQkIlOTF0LWxhLXRoJUUxJUJB JUJGLW5heS0lQzYlQjAvDQoNCkRvbmcgY2hpIHRvdCwgbGFuZyBnaWVuZyB0b3QgbGEgdGhlIG5h eSB1PyANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvU3BlY2lhbFRvcGljL1NwcmF0 bHlQYXJhY2Vscw0KDQpUcnVuZyBRdW9jIHRoaWV0IGxhcCBkb24gdmkgaGFuaCBjaGluaCBkZSBx dWFuIHRyaSBoYWkgcXVhbiBkYW8gSG9hbmcgU2EgdmEgVHJ1b25nIFNhIA0KDQpodHRwOi8vdmll dGluZm8uZXUvMTI3Lzg1NzYwL3RhdS1jYS1sYWktYmktYmF0LWdpdS10YXUtZG9pLXRpZW4tY2h1 b2MuaHRtIDI2LTAzLTIwMTAgMTI6MDQNCg0KVGF1IGNhIFZOIGJpIFRydW5nIFF1b2MgYmF0IGdp dSwgZG9pIHRpZW4gY2h1b2MgDQoNCk1vdCB0YXUgZGFuaCBiYXQgY3VhIG5ndSBkYW4geGEgQmlu aCBDaGF1LCBodXllbiBCaW5oIFNvbiwgUXVhbmcgTmdhaSB0YWkgdnVuZyBiaWVuIA0KSG9hbmcg U2EgdGh1b2MgY2h1IHF1eWVuIGN1YSBWaWV0IE5hbSBsYWkgYmkgVHJ1bmcgUXVvYyBiYXQgZ2l1 IGRvaSB0aWVuIGNodW9jIDE1MCB0cmlldSBkb25nLi4uDQoNClRvYW4gYm8gMTIgdGh1eWVuIHZp ZW4sIHRodXllbiB0cnVvbmcgdmEgdGF1IGJpIGJhdCBnaXUgZHVhIHZlIGRhbyBQaHUgTGFtLiAN Cg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS92aWV0bmFtL3N0b3J5LzIwMDcvMDcv MDcwNzE5X3N0aW1lc19zcHJhdGx5cy5zaHRtbCAxOS83LzIwMDcgMTloMjUgR01UIEJhaSBjdWEg Um9nZXIgTWl0dG9uIGRhbmcgdHJlbiBiYW8gVGhlIFN0cmFpdHMgVGltZXMsIFNpbmdhcG9yZSAN Cg0KRGllbiBiaWVuIG1vaSB0YWkgVHJ1b25nIFNhDQoNCkNhbmcgdGhhbmcgZGFuZyBkYW5nIGxl biBnaXVhIFRydW5nIFF1b2MgdmEgVmlldCBOYW0geHVuZyBxdWFuaCBxdXllbiBraWVtIA0Kc29h dCBxdWFuIGRhbyBUcnVvbmcgU2EgKFNwcmF0bHlzKSBzYXUga2hpIGxhaSB4YXkgcmEgbW90IHZ1 IGR1bmcgZG8gYmFvIGx1YyBudWEgDQp0cm9uZyBraHUgdnVjIG5nb2FpIGtob2kgZ2lhdSBkYXUg bHVhIG5heS4NCg0KVGF1IGhhaSBxdWFuIFRydW5nIFF1b2MgaG9tIDkvNyBkYSBuYSBzdW5nIHZh byBtb3Qgc28gdGh1eWVuIGRhbmggY2EgY3VhIG5ndSANCmRhbiBWaWV0IE5hbSB0cm9uZyB2dW5n IGJpZW4gZ2FuIFRydW9uZyBTYSwgY2FjaCBUUCBIbyBDaGkgTWluaCAzNTBrbS4NCkNhYyBuZ3Vv biB0aW4gcXVhbiBzdSBub2kgbmdheSA5LzcgaGFpIHRhdSBjaGllbiBjbyBkb25nIEJQUy01MDAg Y3VhIFZpZXQgTmFtIA0KZG8gTmdhIHRoaWV0IGtlIGRhIHZvaSB2YSBkZW4gaGllbiB0cnVvbmcg bmh1bmcgcGhhaSBkdW5nIHR1IHhhIHZpIGhvYSBsdWMgcXVhIG1hbmggdHUgdGF1IFRydW5nIFF1 b2MuDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2Uvd29ybGRuZXdzL3N0b3J5LzIw MDcvMTAvMDcxMDIzX3BhcmFjZWx0b3VyaXNtLnNodG1sIDIzLzEwLzIwMDcgLSAxNGg1NiBHTVQN Cg0KVHJ1bmcgUXVvYyBtbyByb25nIGR1IGxpY2ggSG9hbmcgU2ENCg0KQ3VjIER1IGxpY2ggdGlu aCBIYWkgTmFtIChUcnVuZyBRdW9jKSBtb2kgdGhvbmcgcXVhIG1vdCBkdSBhbiBwaGF0IHRyaWVu IGR1IGxpY2ggDQpvIGtodSB2dWMgYmllbiBkb25nLCB0cm9uZyBkbyBjbyBxdWFuIGRhbyBIb2Fu ZyBTYS4NCg0KVHJlbiB0aHVjIHRlLCBUcnVuZyBRdW9jIGJhdCBkYXUgdGllbiBoYW5oIGNhYyB0 b3VyIHRoYW0gcXVhbiB0YWkgZG8gbW90IHZhaSANCm5hbSB0cnVvYyB2YSBzdSBkdW5nIHRhdSB0 aHV5ZW4gcXVhbiBzdSBkZSB2YW4gY2h1eWVuIGR1IGtoYWNoLg0KDQpUbyBOaGF0IGJhbyBMYW8g ZG9uZyBjdW5nIHRyaWNoIGxvaSBtb3QgcXVhbiBjaHVjIGNoaW5oIHBodSBUcnVuZyBRdW9jIG5v aSANCnJhbmcgZHUgbGljaCBzZSBtYW5nIGxhaSBuaHVuZyBsb2kgaWNoIGtpbmggdGUgbG9uIGNo byBIb2FuZyBTYSBjdW5nIG5odSANCmN1bmcgY28gY2h1IHF1eWVuIGN1YSBUcnVuZyBRdW9jIGRv aSB2b2kgcXVhbiBkYW8gbmF5Li4gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1RoZS1naW9p LzIwMTAvMDQvM0JBMUIzMzQvIDI2LzQvMjAxMCwgMDk6MjAgR01UKzcNCg0KVHJ1bmcgUXVvYyB0 dWFuIHRyYSB0aHVvbmcgeHV5ZW4gbyBUcnVvbmcgU2ENCg0KQ28gcXVhbiBxdWFuIGx5IG5ndSBu Z2hpZXAgVHJ1bmcgUXVvYyBob20gcXVhIGNobyBiaWV0IGRhIGJhdCBkYXUgdmllYyB0dWFuIHRy YSANCnRodW9uZyB4dXllbiBvIGtodSB2dWMgcXVhbiBkYW8gVHJ1b25nIFNhIGN1YSBWaWV0IE5h bS4NCg0KV3UgWmh1YW5nLCBnaWFtIGRvYyBjdWMgcXVhbiBseSBuZ2hlIGNhIG8gQmllbiBEb25n LCB0aHVvYyBCbyBOb25nIG5naGllcCBUcnVuZyANClF1b2MsIGNobyBiaWV0IGhvIHZ1YSBkdWEg aGFpIHRhdSBOZ3UgY2hpbmggMzAxIHZhIDMwMiBkZW4gdGhheSB0aGUgY2hvIGhhaSB0YXUgc28g aGlldSANCjMxMSB2YSAyMDIuIENhYyBjdW9jIHR1YW4gdHJhIHRodW9uZyB4dXllbiBkYSBiYXQg ZGF1IHR1IGRhdSB0aGFuZyA0LCB0YWkga2h1IHZ1YyBxdWFuIA0KZGFvIFRydW9uZyBTYSwgV3Ug bm9pLiANCg0KV3Ugbm9pIGNhYyB0YXUgbmF5IGR1b2MgZGlldSBkaSBkZSBobyB0b25nIHRhdSB0 aHV5ZW4gZGFuaCBjYSBjdWEgbmd1IGRhbiBUcnVuZyBRdW9jIA0KdHJlbiBCaWVuIERvbmcsIHZh ICJraGFuZyBkaW5oIHF1eWVuIGRhbmggYmF0IHRyZW4gdnVuZyBiaWVuIiBxdWFuaCBUcnVvbmcg U2EuIA0KDQooQW5oOiBUYXUgbmd1IGNoaW5oIDMxMSBjdWEgVHJ1bmcgUXVvYyBjbyB0YWkgdHJv bmcgNC41MDAgdGFuLCB0dW5nIGxhIG1vdCB0YXUgY2hpZW4hKSAgIA0KDQpodHRwOi8vd3d3LnZp ZXRuYW1uZXQudm4veGFob2kvMjAxMDA1L1RhdS1jYS1WaWV0LU5hbS1sYWktYmktdGF1LVRydW5n LVF1b2MtYmF0LWdpdS05MDgyNjAvMTQ6NTMsIDA2LzA1LzIwMTAgKEdNVCs3KQ0KDQpUYXUgY2Eg VmlldCBOYW0gbGFpIGJpIHRhdSBUcnVuZyBRdW9jIGJhdCBnaXUgDQoNClRyZW4gdGF1LCBuZ29h aSB0aHV5ZW4gdHJ1b25nIERhbmcgVGFtIGNvbiBjbyAxMSB0aHV5ZW4gdmllbiBkZXUgdHJ1IHRh aSBjYWMgeGEgY3VhIA0KaHV5ZW4gQmluaCBTb24sIFF1YW5nIE5nYWkuIEtoaSB0YXUgb25nIFRh bSBiaSBiYXQgZ2l1LCB0b2FuIGJvIHNvIGhhaSBzYW4gZGFuaCBkdW9jIA0KY3VuZyBwaHVvbmcg dGllbiBtYXkgbW9jIGJpIGN1b3Agc2FjaC4gDQoNCmh0dHA6Ly92aXRpbmZvLmNvbS52bi9NTXVj dGluL1F1YW5zdS9USFNLL0xBNzcxMjEvZGVmYXVsdC5odG1sIDI3LzA1LzIwMTAsIDIyOjQ3KEdN VCs3KSBDYW8gUGhvbmcgKHRoZW8gVEhYKQ0KDQpUcnVuZyBRdW9jIHR1IHkgbGFwIGRhdCB0cmFt IGRpZW4gdGhvYWkgZGkgZG9uZyB0cmVuIGRhbyBDaHUgVGhhcCBjdWEgVmlldCBOYW0gDQoNClZp ZWMgVHJ1bmcgUXVvYyB0dSB5IGxhcCBkYXQgdGhpZXQgYmkgdmllbiB0aG9uZyB0cmVuIGRhbyBD aHUgVGhhcCANCnRodW9jIGNodSBxdXllbiBsYW5oIGhhaSBWaWV0IE5hbSBsYSBtb3QgaGFuaCBk b25nIHNhaSB0cmFpLCB2aSBwaGFtIA0KbmdoaWVtIHRyb25nIGNodSBxdXllbiB0cmVuIGJpZW4g Y3VhIFZpZXQgTmFtLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8y MDEwMzIvMjAxMDA4MDYwMDE4MTIuYXNweCAwNi8wOC8yMDEwIDA6MTggDQoNClRydW5nIFF1b2Mg dGllbiBoYW5oIGtoYW8gc2F0IGRpYSBjaGFuIHRhaSBraHUgdnVjIGRhbyBUcmkgVG9uICh0aHVv YyBxdWFuIGRhbyBIb2FuZyANClNhKSwgc2FuIGxhcCwgbW8gcm9uZyBkYW8gVHJpIFRvbiANCg0K VHUgY3VvaSB0aGFuZyA1LjIwMTAgZGVuIG5heSwgcGhpYSBUUSBkYSBzdSBkdW5nIHRhdSBraGFv IHNhdCBNL1YgV2VzdGVybiBTcGlyaXQgY3VuZyANCm5oaWV1IHRhdSBiYW8gdmUgdGllbiBoYW5o IGtoYW8gc2F0IGRpYSBjaGFuIHRhaSBraHUgdnVjIGRhbyBUcmkgVG9uLCBxdWFuIGRhbyBIb2Fu ZyBTYSANCnZhIHRhaSBjYWMgbG8gZGF1IGtoaSAxNDEsIDE0MiB2YSAxNDMgdHJlbiB0aGVtIGx1 YyBkaWEgVk4sIGNhY2ggZGFvIEx5IFNvbiwgdGluaCBRdWFuZyANCk5nYWkga2hvYW5nIDkwLTEx NiBoYWkgbHkuDQoNCmh0dHA6Ly93d3cudmlldC5yZmkuZnIvdmlldC1uYW0vMjAxMDExMDMtdHJ1 bmctcXVvYy10YXAtdHJhbi1iYW4tZGFuLXRoYXQtdGFpLWJpZW4tZG9uZy1kZS10aGktdXktdm9p LWxhbmctZ2llbmcgVHJvbmcgTmdoaWEgIDAzLzExLzIwMTAgDQoNClRydW5nIFF1b2MgdGFwIHRy YW4gYmFuIGRhbiB0aGF0IHRhaSBCaWVuIERvbmcgZGUgdGhpIHV5IHZvaSBsYW5nIGdpZW5nIA0K DQpRdWFuIGRvaSBUcnVuZyBRdW9jIHZ1YSB0byBjaHVjIG1vdCBjdW9jIHRoYW8gZGllbiBxdWFu IHN1IGRvYyBibyBiaWVuIGRhbyBIYWkgTmFtLCANCmh1eSBkb25nIGdhbiAyMDAwIGxpbmggdGh1 eSBxdWFuIGx1YyBjaGllbi4gQ3VvYyB0YXAgdHJhbiBkdW9jIHRyaW5oIGJheSBuaHUgbW90IGhv YXQgDQpkb25nIGJpbmggdGh1b25nIGN1YSBxdWFuIGRvaSBUcnVuZyBRdW9jLCBuaHVuZyBCYWMg S2luaCBraG9uZyBjaGUgZ2lhdSBtdWMgdGlldSANCnRoaSB1eSB2b2kgY2FjIG51b2MgRG9uZyBO YW0gQSBkYW5nIHRyYW5oIGNoYXAgY2h1IHF1eWVuIHZvaSBobyB0YWkgdnVuZyBUcnVvbmcgU2Eg DQp2YSBIb2FuZyBTYS4NCg0KKEFuaDogSGFpIHF1YW4gVHJ1bmcgUXVvYyB0YXAgdHJhbiB0cmVu IEJpZW4gRG9uZyBjdW9pIHRoYW5nIDYvMjAxMC4gQW5oOiBBRlAgLyBQLlllb25nLURhZSkNCg0K VGhlbyB0byBHbG9iYWwgVGltZXMgKEhvYW4gY2F1IFRob2kgYmFvKSBzbyByYSBob20gbmF5ICgw My8xMS8yMDEwKSBkdW9jIEFGUCB0cmljaCANCmRhbiwgY3VvYyB0YXAgdHJhbiBtYW5nIHRlbiBH aWFvIExvbmcgMjAxMCBraG9pIHN1IHR1IGhvbSBxdWEsIGRvIGJpbmggY2h1bmcgVGh1eSANCnF1 YW4gbHVjIGNoaWVuIFRydW5nIFF1b2MgdGh1YyBoaWVuLiBIdXkgZG9uZyBtb3QgbHVjIGx1b25n IGJhbyBnb20gaXQgbmhhdCAxMDAgY2hpZW4gDQpoYW0sIHRhdSBuZ2FtLCBwaGkgY28gY2FjIGxv YWkgdmEga2hvYW5nIDE4MDAgcXVhbiBuaGFuLiANCg0KTm9pIGR1bmcgY2FjIGJhaSB0YXAgYmFv IGdvbSBjaGllbiBkaWNoIHRhbiBjb25nIGxlbiBiYWkgYmllbiwga2V0IGhvcCBtYXkgYmF5IGNo dXllbiANCnF1YW4sIHRhdSBkbyBibywgeGUgdGFuZyBsb2kgbnVvYywgdmEgdGF1IHRhbiBjb25n IG5oYW5oLiBMdWMgbHVvbmcgZG8gYm8gZHVvYyB0cnVjIA0KdGhhbmcgY2hpZW4gZGF1IGhvIHRy bywgdHJvbmcga2hpIG8gbmdvYWkga2hvaSwgdGF1IHJhIG1pbiB2YSB0YXUgc2FuIHRhdSBuZ2Ft IGN1bmcgdGhhbSANCmdpYSBkaWVuIHRhcC4gDQoNCk5vaSBjaG9uIGRlIHRvIGNodWMgdGFwIHRy YW4ga2hvbmcgcGhhaSBsYSBraG9uZyBjbyBjaHUgZGljaC4gQ3VvYyBkaWVuIHRhcCBkbyBibyBk dW9jIA0KdG8gY2h1YyBkb2MgdGhlbyBibyBiaWVuIGN1YSBkYW8gSGFpIE5hbSwgc2F0IFZpbmgg QmFjIEJvIGN1YSBWaWV0IE5hbSB2YSBuYW0gbyBnb2MgDQpUYXkgQmFjIEJpZW4gRG9uZyBtYSBU cnVuZyBRdW9jIGRvaSBjaHUgcXV5ZW4gdHJlbiA4MCUgZGllbiB0aWNoLCBiYXQgY2hhcCB2aWVj IFZpZXQgDQpOYW0gdmEgbmhpZXUgcXVvYyBnaWEga2hhYyBjdW5nIGtpZW0gc29hdCBjYWMgZGFv IHZhIHR1eWVuIGJvIGNodSBxdXllbiBjdWEgbWluaC4gDQoNCk11YyB0aWV1IHBobyB0cnVvbmcg dXkgbHVjIHF1YSBjdW9jIHRhcCB0cmFuIG5heSBkYSBkdW9jIGdpb2kgY2h1YyBxdWFuIHN1IFRy dW5nIFF1b2MgDQp4YWMgbmhhbi4gTW90IHNpIHF1YW4gY2hpIGh1eSBjdW9jIHRoYW8gZGllbiB4 aW4gZ2lhdSB0ZW4gZGEgY2hvIHJhbmcgY3VvYyB0aGFvIGRpZW4gDQpxdWFuIHN1IG5heSBuaGFt IG5ldSBiYXQgdHJ1b2MgdGhlIGdpb2kgbW90IGJpbmggY2h1bmcgVGh1eSBxdWFuIGx1YyBjaGll biBUcnVuZyANClF1b2MgaGllbiBkYWkuIA0KDQpMeSBLaWV0IChMaSBKaWUpLCBtb3QgY2h1eWVu IGdpYSBUcnVuZyBRdW9jIHZlIGhhaSBxdWFuIGR1b2MgdG8gR2xvYmFsIFRpbWVzIHRyaWNoIGRh biANCm5oYW4gZGluaCA6ICJWZSBjYW4gYmFuLCBkYXkgbGEgbW90IGN1b2MgdGFwIHRyYW4gdGhv bmcgdGh1b25nLCBuaHVuZyBubyBjdW5nIGR1YSB0cmVuIA0KdGh1YyB0ZSBjaGllbiB0cnVvbmcg dHJvbmcgdnVuZyBCaWVuIERvbmcuIEN1b2MgdGFwIHRyYW4ga2hvbmcgcGhhaSBsYSBtb3QgdGlu IGhpZXUgZGFjIA0KYmlldCwgbmh1bmcgY2h1bmcgdG9pIGNob24gZGlhIGRpZW0gZG8gZGUgbmV1 IGJhdCBuYW5nIGx1YyBjdW5nIG5odSBzdWMgbWFuaCBjdWEgaGFpIA0KcXVhbiBUcnVuZyBRdW9j Ii4gVGhlbyBjaHV5ZW4gZ2lhIG5heSA6ICIgVHJvbmcgbmh1bmcgbmFtIGdhbiBkYXksIGRhIGNv IG1vdCBzbyANCm51b2MgY2FuIHRoaWVwIHZhbyBiaWVuIERvbmcsIGN1bmcgdGFwIHRyYW4gdm9p IGNhYyBudW9jIGxhbmcgZ2llbmcgY3VhIGNodW5nIHRvaSwgZG8gZG8gDQpiYXkgZ2lvIGRlbiBs dWMgY2h1bmcgdG9pIHBoYWkgZG9pIHBobyB2b2kgbmh1bmcgaGFuaCBkb25nIGNhbiB0aGllcCBk byBiYW5nIHF1eWVuIGx1YyANCmNoaW5oIHRyaS4iIA0KDQpYaW4gbmhhYyBsYWkgbGEgeHVuZyBk b3QgdnUgdHJhbmcgZGEgdHVuZyB4YXkgcmEgZ2l1YSBoYWkgcXVhbiBUcnVuZyBRdW9jIHZvaSBo YWkgcXVhbiANClZpZXQgTmFtIHZhbyBuYW0gMTk4OCwga2hpIEJhYyBLaW5oIHR1bmcgbHVjIGx1 b25nIGRhbmggY2hpZW0gbW90IHNvIGRhbyBkbyBWaWV0IA0KTmFtIGtpZW0gc29hdCB0YWkgdnVu ZyBxdWFuIGRhbyBUcnVvbmcgU2EsIGJhbiBjaGltIG1vdCBzbyB0YXUgVmlldCBOYW0gbGFtIGNo byBob24gDQo3MCB0aHV5IHRodSB0aGlldCBtYW5nLiBUcm9uZyBuaHVuZyBuYW0gZ2FuIGRheSwg VHJ1bmcgUXVvYyBsYWkgY28gdGhhaSBkbyBsYW4gbHVvdCB0cm8gDQpsYWksIGtoYW5nIGRpbmgg bWFuaCBtZSBob24gZG9pIGhvaSBjaHUgcXV5ZW4sIHZhIHRodW9uZyB4dXllbiBiYXQgZ2l1IHRh dSBkYW5oIGNhIGN1YSANClZpZXQgTmFtIGJpIGhvIGNobyBsYSBkYSB4YW0gbmhhcCB2dW5nIGJp ZW4gY3VhIFRydW5nIFF1b2MuDQoNClR1IG5oaWV1IHRoYW5nIG5heSwgQmFjIEtpbmggbmdheSBj YW5nIGxvIG5nYWkgdmUgZG9uZyB0aGFpIGN1YSBWaWV0IE5hbSB2YSBjYWMgbnVvYyANCkRvbmcg TmFtIEEgZGFuZyB0YW5nIGN1b25nIHF1YW4gaGUgdm9pIEhvYSBLeSwgZGFjIGJpZXQgbGEgdmUg cGh1b25nIGRpZW4gcXVvYyANCnBob25nLiBUaGVvIGhhbmcgdGluIEFQLCBUcnVuZyBRdW9jIHJh dCBwaGFuIG5vIHRydW9jIHN1IGtpZW4gSG9hIEt5IGdhbiBkYXkgZGEgY29uZyANCmtoYWkgY2Fu IHRoaWVwIHZhbyBobyBzbyBCaWVuIERvbmcuIA0KDQpZIGtpZW4gYmFuIGRvYzoNCk5WIDQvMTEv MjAxMDogDQpUcnVuZyBRdW9jIHRhcCB0cmFuIHNhdCBWaW5oIEJhYyBCbyBjdWEgVmlldCBOYW0s IG8gZ29jIFRheSBCYWMgQmllbiBEb25nIHR1YyBsYSBvIA0KbmdvYWkga2hvaSBjYWMgdGluaCBR dWFuZyBCaW5oIHZhIFF1YW5nIFRyaSBjdWEgVmlldCBOYW0uICANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzEyMDQyMzA4LmFzcHggMTIvMDcv MjAxMCA0OjIzIA0KDQpUcnVuZyBRdW9jIHRob25nIHF1YSAiQ3VvbmcgeWV1IHF1eSBob2FjaCB4 YXkgZHVuZyB2YSBwaGF0IHRyaWVuIGRhbyBkdSBsaWNoIHF1b2MgdGUgDQpIYWkgTmFtIDIwMTAt MjAyMCIgLSBkdWEgSG9hbmcgU2EgdmEgVHJ1b25nIFNhIHZhbyBxdXkgaG9hY2ggeGF5IGR1bmcg dmEgcGhhdCB0cmllbiANCmRhbyBkdSBsaWNoIHF1b2MgdGUgSGFpIE5hbTsgdmkgcGhhbSBuZ2hp ZW0gdHJvbmcgY2h1IHF1eWVuIGN1YSBWTiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2No aW5odHJpLzIwMTAwMi8xMzAtdGF1LWNhLVRydW5nLVF1b2MteGFtLXBoYW0tdnVuZy1iaWVuLW1p ZW4tVHJ1bmctODkzNDU4LzEyOjUxLCBUaHUgQmF5LCAwNi8wMi8yMDEwIChHTVQrNykNCg0KMTMw IHRhdSBjYSBUcnVuZyBRdW9jIHhhbSBwaGFtIHZ1bmcgYmllbiBtaWVuIFRydW5nIC0gTmhpZXUg dGF1IGNhIGNvIHRpbmggbGFuIA0Kc2F1IHZhbyB2dW5nIGJpZW4gbWllbiBUcnVuZyBkZSBraGFp IHRoYWMgdHJhaSBwaGVwLg0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8w Ni8zQkExQ0UxNC8gMTIvNi8yMDEwLCAwOTozNSBHTVQrNw0KDQoiVGF1IGxhIiBsYWkgZGFtIGNo aW0gdGF1IGRhbmggY2EgVmlldCBOYW0gDQogDQpSYW5nIHNhbmcgMTIvNi8yMDEwIHRhdSBkYW5o IGNhIGN1YSB0aHV5ZW4gdHJ1b25nIFZvIFh1YW4gVGllbiBjdW5nIDE3IG5ndSBkYW4gZGFvIA0K THkgU29uIChRdWFuZyBOZ2FpKSB0cmVuIGR1b25nIGhhbmggbmdoZSB0dSBUcnVvbmcgU2EgdmUg dnVuZyBiaWVuIEJpbmggRGluaCBkYSBiaSANCnRhdSBsYSBkYW0gY2hpbSByb2kgYm8gY2hheS4N Cg0KVGhlbyBjYWMgbmd1IGRhbiBnYXAgbmFuLCBzYXUgcGhpZW4gYmllbiBvIFRydW9uZyBTYSB0 cm8gdmUsIGhvIGRhbmggYmF0IGR1b2Mga2hvYW5nIA0KMjAgdGFuIHRodXkgc2FuLCBkdSBraWVu IHZlIGRlbiBkYW8gTHkgU29uIHZhbyBjaGlldSAxMi82IGRlIGJhbiBjYSB2YSBuZ2hpIG5nb2kg Y2h1YW4gDQpiaSBhbiBUZXQgRG9hbiBuZ28gKG11bmcgNS81KS4gVHV5IG5oaWVuLCBraG9hbmcg Mmggc2FuZyBuYXksIHRhdSB2ZSBkZW4gY2FjaCBkYW8gDQpOaG9uIENoYXUgKEN1IExhbyBYYW5o KSAxMiBoYWkgbHkgdGhpIGJpIHRhdSBsYSBkYW0gY2hpbS4gcm9pIGJvIGNoYXkuIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMTcvMjAxMDA0MTkwMDE1MTEu YXNweCAxOS8wNC8yMDEwIDA6MTUgDQoNClRydW5nIFF1b2MgbGFpIHRpZXAgdHVjIGJhdCBnaXUg dGF1IGNhIFZOIA0KDQpOZ2F5IDE4LjQsIG9uZyBEdW9uZyBOaHV0LCBQaG8gY2h1IHRpY2ggVUJO RCB4YSBBbiBIYWksIGh1eWVuIGRhbyBMeSBTb24gKFF1YW5nIE5nYWkpLCANCmNobyBiaWV0IHRh dSBjYSBRTmcgLSA2NjQ3OCBUUyBjdWEgb25nIE1haSBQaHVuZyBMdXUgKG8gdGhvbiBUYXksIHhh IEFuIEhhaSkgDQp2b2kgOSBuZ3UgZGFuIHRyb25nIGx1YyBkYW5nIGhhbmggbmdoZSB0YWkga2h1 IHZ1YyBkYW8gRGEgTG9pIChxdWFuIGRhbyBIb2FuZyBTYSBjdWEgDQpWTikgZGEgYmkgaGFpIHF1 YW4gVHJ1bmcgUXVvYyBiYXQgZ2l1IHZhbyBuZ2F5IDE0LjQuIFBoaWEgVHJ1bmcgUXVvYyBjb24g eWV1IGNhdSBnaWEgDQpkaW5oIGNhYyBuZ3UgZGFuIG5vcCA3MC4wMDAgTkRUIGRlIGNodW9jIG5n dW9pIHZhIHRhdS4gDQoNCi0NCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDYvMDUvNTY5 ODQ1LyAxNDowMCcgMTIvMDUvMjAwNiAoR01UKzcpIA0KDQpUUEhDTTogTmhpZXUga2hvIGJhaSBO aGEgbnVvYyBiaSAnYW4gdHVvaSBudW90IHNvbmcnIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5j b20udm4vTmV3cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTUwMDI0MTMuYXNweCBNLlZvbmcgIDE1LzA4 LzIwMTAgMDoyNCANCg0KVFAgSENNOiBOaHVuZyBjdWEgbmdvICJzaWV1IHVuIHRhYyIgIA0KICAN ClhlIHF1YSBuaGlldSwgdGFpIG5hbiwgcmFvIGNoYW4sIG5nYXAgbnVvYy4uLiBsYSBuaHVuZyBu Z3V5ZW4gbmhhbiBnYXkgbmVuIHRpbmggdHJhbmcgdW4gDQp0YWMgZ2lhbyB0aG9uZyBuZ2hpZW0g dHJvbmcgdHJlbiBjYWMgdHV5ZW4gZHVvbmcgaHV5ZXQgbWFjaCBjdWEgVFAuSENNLCBuaHU6IFFM MTMsIA0KeGEgbG8gSGEgTm9pIHZhIExpZW4gdGluaCBsbyAyNUIuIE5oaWV1IHRhaSB4ZSBuZ2Fv IG5nYW4gZ29pIHRpbmggdHJhbmcgbmF5IGxhICJzaWV1IHVuIHRhYyIgDQoNCmh0dHA6Ly93d3cu ZmJuYy5jb20udm4vRGV0YWlsU2VsZWN0L0luZGV4LzkzMjEgVGh1IEhpZW4gMDQvMTEvMjAxMCAo R01UICsgNykNCg0KVFBIQ006IG5oaWV1IGNvbmcgdHJpbmggZ2lhbyB0aG9uZyBjaGFtIHRpZW4g ZG8gZG8gZ2lhaSBwaG9uZyBtYXQgYmFuZyANCg0KTmdheSAzLzExLCB0YWkgYnVvaSBsYW0gdmll YyB2b2kgQmFuIEtpbmggdGUgTmdhbiBzYWNoIC0gSERORCBUUCBIbyBDaGkgTWluaCwgU28gDQpH aWFvIHRob25nIFZhbiB0YWkgdGhhbmggcGhvIGNobyBiaWV0LCBuaGlldSBjb25nIHRyaW5oIGdp YW8gdGhvbmcgdHJvbmcgZGllbSBkYW5nIA0KY2hhbSB0aWVuIGRvIGRvIGNvbmcgdGFjIGdpYWkg cGhvbmcgbWF0IGJhbmcsIGRpIGRvaSBoYSB0YW5nIGt5IHRodWF0LiBDbyBuaHVuZyBjb25nIA0K dHJpbmggZGEgdHJpZW4ga2hhaSBob24gMTAgbmFtIHZhbiBjaHVhIGhvYW4gdGhhbmguDQogIA0K VGluaCBkZW4gbmFtIDIwMTAsIFNvIEdpYW8gdGhvbmcgVmFuIHRhaSBkdW9jIGdpYW8gcXVhbiBs eSAxNzMgZHUgYW4sIHRyb25nIGRvIGNvIDgzIA0KZHUgYW4gY2h1eWVuIHRpZXAsIHZvaSB0b25n IG5ndW9uIHZvbiBkdW9jIGdpYW8gbGEgMi4yNDggdHkgZG9uZy4gVHJvbmcgZG8sIDEwIGR1IGFu IA0KZHVvYyB4YWMgZGluaCBsYSBjb25nIHRyaW5oIGdpYW8gdGhvbmcgdHJvbmcgZGllbSBkbyBT byBsYW0gY2h1IGRhdSB0dSwgY2hpIGNvIDIgY29uZyANCnRyaW5oIGR1b2MgZHVhIHZhbyBzdSBk dW5nLCBjbyBjb25nIHRyaW5oIHBoYWkgbmd1bmcgdGhpIGNvbmcgZG8ga2hvbmcgZ2lhaSBwaG9u ZyBkdW9jIA0KbWF0IGJhbmcuIFZpIGR1IG5odSBjYXUgSG9hbmcgSG9hIFRoYW0sIHNhdSAgMTIg bmFtIHRoaSBjb25nLCBjaGkgbW9pIHRob25nIHhlIGhvaSANCmRhdSB0aGFuZyA5IG5hbSBuYXku IA0KIA0KRGUgZGF5IG5oYW5oIHRpZW4gZG8gdGhpIGNvbmcsIFNvIHlldSBjYXUgVUJORCBjYWMg cXVhbiwgaHV5ZW4gdGFwIHRydW5nIGdpYWkgcGhvbmcgDQptYXQgYmFuZywgYmFuIGdpYW8gY2hv IGNhYyBjaHUgZGF1IHR1IGRlIHRodWMgaGllbiBkdSBhbi4gVmUgbGF1IGRhaSwgbmdhbmggR2lh byB0aG9uZyANCmtpZW4gbmdoaSBVQk5EIHRoYW5oIHBobyB0aGFuaCBsYXAgQmFuIGNoaSBkYW8g dmUgY29uZyB0YWMgZ2lhaSBwaG9uZyBtYXQgYmFuZywgeGVtIA0KeGV0IGRpZXUgY2hpbmggbGFp IGNoaW5oIHNhY2ggZ2lhIGRlbiBidSwgY2hpbmggc2FjaCB0YWkgZGluaCBjdS4uLiBkb2kgdm9p IGNhYyBobyBkYW4sIGRvbiB2aSBiaSBnaWFpIHRvYS4gIA0KDQpodHRwOi8vdGlubW9pLnZuL01h dC1ob24tMjg1MC10eS1kb25nLXZpLWNoYW0tdGllbi1kby0wNzM5MDEzLmh0bWwgQmFpIHZpZXQg Y2FwIG5oYXQgbHVjOiAwODoyMSBuZ2F5IDA0LzA3LzIwMDkgDQoNClRQIEhDTTogTWF0IGhvbiAy Ljg1MCB0eSBkb25nIHZpIGNhYyBkdSBhbiBjaGFtIHRpZW4gZG8gDQoNCmh0dHA6Ly90dW9pdHJl LnZuL0NoaW5oLXRyaS1YYS1ob2kvNDA3MDc5L0xhaS1zdXAtImJheS1kdW9uZyIteGUtdGFpLWNo b25nLXZvLmh0bWwgU09OIEJJTkggMjIvMTAvMjAxMCwgMDc6NDUgKEdNVCs3KSANCg0KVFAgSENN OiBMYWkgc3VwICJiYXkgZHVvbmciLCB4ZSB0YWkgY2hvbmcgdm8NCg0KVFRPIC0gVHJvbmcgY29u IG11YSBuaGUga2hvYW5nIDIwZzMwIG5nYXkgMjEtMTAsIHhlIHRhaSBiaWVuIHNvIDc3SC05ODE5 IGRvIHRhaSB4ZSANCk5ndXllbiBUYW4gSG9hIChxdWUgQmluaCBEaW5oKSBkaWV1IGtoaWVuIHRy ZW4gZHVvbmcgQ2FjaCBNYW5nIGRlbiBuZ2EgYmEgQ2FjaCANCk1hbmcgLSBMdXkgQmFuIEJpY2gg KFAuVGFuIFRoYW5oLCBRLlRhbiBQaHUsIFRQLkhDTSkgdGhpIGJpICJzdXAgYmF5IiwgbmdhIGNo b25nIA0Kdm8gbmFtIGdpdWEgZHVvbmcuIA0KDQooQW5oOiBIaWVuIHRydW9uZyBjaGllYyB4ZSB0 YWkgYmkgInN1cCBiYXkiIG5hbSBjaG9uZyB2byBnaXVhIGR1b25nIC0gQW5oOiBTb24gQmluaCkg DQoNClRhaSBoaWVuIHRydW9uZywgY2hpZWMgeGUgdGFpIGJpIG5hbiBjaGFuIGxvaSBob24gbW90 IG51YSBuZ2EgYmEsIHhlIHJhIHZhbyBiaSBjYW4gdHJvLiANCk1vdCBjaGllYyB4ZSB0YWkga2hh YyBkdW9jIGRpZXUgZG9uZyBkZW4gZGUgdHJ1bmcgY2h1eWVuIGhhbmcgaG9hLiBYZSBiaSBuYW4g Y2hvIHhlIGNhdSBkdWEgcmEga2hvaSBoaWVuIHRydW9uZy4gDQpWdSB0YWkgbmFuIGNoaSBsYW0g dGFpIHhlIEhvYSBiaSB4YXkgeGF0IG5oZS4gDQoNClRoZW8gbmd1b2kgZGFuLCBub2kgeGUgdGFp IGxhdCBuZ2FuZyB0aHVvbmcgbmdheSBsYSBxdWFuIGh1IHRpZXUgcmF0IGRvbmcga2hhY2ggbmh1 bmcgZG8gdHJvaSBtdWEgbmVuIGRpIGNodXllbiBkaSBub2kga2hhYy4gDQpDaG8geGUgdGFpIHN1 cCBobyBkdW9jIHNhbiBsYXAgbWF0IGR1b25nIGtob25nIGxhdSBzYXUga2hpIGRhbyB4b2kgbGFw IGRhdCBoZSB0aG9uZyBjYXAgdGhvYXQgbnVvYy4gDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5u ZWwvMTk4Ny8yMDEwMDcvQmFuZy1uaG9tLXR1b2ktdGVlbi10aHVjLWhpZW4taGFuZy1jaHVjLXZ1 LWhpZXAtZGFtLTE3NTg3MDEvIDExLzA3LzIwMTAgMjA6MTE6MzkgDQoNClRQIEhDTTogQmFuZyBu aG9tIHR1b2kgdGVlbiB0aHVjIGhpZW4gaGFuZyBjaHVjIHZ1IGhpZXAgZGFtDQoNCmh0dHA6Ly92 aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1NhaS1waGFtLW5naGllbS10cm9uZy10cm9uZy1x dWFuLWx5LWRhdC1kYWktby1Ib2MtTW9uLVRQLUhDTS80NTIzNDU3OC8yMTgvIDE1LzQvMjAwNywg MjM6NDggR01UKzcgDQoNClRQIEhDTTogU2FpIHBoYW0gbmdoaWVtIHRyb25nIHRyb25nIHF1YW4g bHkgZGF0IGRhaSBvIEhvYyBNb24sIFRQLkhDTQ0KDQpIYW5nIHRyYW0gaGEgZGF0LCB2b2kgc3Ug dGllcCB0YXkgY3VhIG1vdCBzbyBjYW4gYm8gcXVhbiBseSB0cmVuIGRpYSBiYW4sIGRhIGJpIGNh YyBkYXUgDQpuYXUsIGNhYyBjb25nIHR5IHR1IG5oYW4gcGhhIHZvIHF1eSBob2FjaDsga2VvIHRo ZW8gZG8gbGEgZG9pIHNvbmcgaGFuZyBuZ2FuIGhvIGRhbiBiaSANCmFuaCBodW9uZyB2YSBoYW5n IGNodWMgdGkgZG9uZyBjdWEgTmhhIG51b2MgYmkgbWF0IHRyYW5nLiBDaHV5ZW4geGF5IHJhIG8g aHV5ZW4gSG9jIA0KTW9uLCBUUC5IQ00gbmhpZXUgbmFtIGxpZW4sIGdheSBidWMgeHVjIHRyb25n IGR1IGx1YW4uIE5odW5nIGRpZXUgbGEgbGEgbmh1bmcgY2FuIGJvIA0KdGllcCB0YXkgY2hvIG5o dW5nIHNhaSBwaGFtIHZhbiBkYW5nIHVuZyBkdW5nIHRhaSBjaHVjLCB0aGFtIGNoaSBjb24uLi4g bGVuIGNodWMhDQoNCihBbmggY2h1cDogS2h1IGRhdCBsYW0gZHUgYW4gY28gZGFpIG1vYyBkYXkp DQoNClRpZXAgdGF5IGNobyBkb2FuaCBuZ2hpZXAgY2hpZW0gZG9hdCA1LjAwMCBsdW9uZyB2YW5n IC0gQ28geSBsYW0gc2FpIGxlY2ggaG8gc28gZHUgYW4NCg0KaHR0cDovL3dvcmxkY3VwLm5sZC5j b20udm4vOTAyMjBwMGMxMDAyL2FpLWRhLXhhLXhlby0xNTAwLWhhLWRhdC1ub25nLXRydW9uZy0u aHRtICBDYW0gTGFuIDA4LzAxLzIwMDQgMjI6MjMgDQoNClRQIEhDTTogWGEgeGVvIDE1MDAgaGEg ZGF0IG5vbmcgdHJ1b25nIC0gVGhpIG5oYXUgY2hpZW0gZGF0IA0KDQoqNjM1IGhhIGRhdCBiaSB4 YSB4ZW8gZGEgZHVvYyBsYW0gdGh1IHR1YyAiaG9wIHRodWMgaG9hIj8NCg0KVUJORCBUUCBkYSBn aWFvIDEwLjE1OSBoYSBkYXQgY2hvIDYgbm9uZyB0cnVvbmcgKE5UKSBnb20gTlQgTGUgTWluaCBY dWFuLCBOVCANClBoYW0gVmFuIEhhaSwgTlQgUGhhbSBWYW4gQ29pLCBDb25nIHR5IEJvIHN1YSAo dGh1b2MgVG9uZyBDb25nIHR5IE5vbmcgbmdoaWVwIA0KU2FpIEdvbiAtIE5OU0cpLCBOVCBMYW5n IExlICh0aHVvYyBodXllbiBCaW5oIENoYW5oKSB2YSBOVCBUYW0gVGFuICh0aHVvYyBodXllbiAN CkN1IENoaSkuIFRoZSBuaHVuZywgdHUgbmFtIDE5ODkgZGVuIG5heSwgbW90IHNvIGRhdCB0aHVv YyBjYWMgTlQgdHJlbiBkYSBiaSBsYW4gY2hpZW0sIHN1IGR1bmcgc2FpIG11YyBkaWNoLg0KDQpU aGkgbmhhdSBjaGllbSBkYXQNCg0KVHUgcXV5IElJIGRlbiBxdXkgSVYvMjAwMywgRG9hbiBLaWVt IHRyYSBTbyBOb25nIG5naGllcCB2YSBQaGF0IHRyaWVuIG5vbmcgdGhvbiAoTk4gDQomIFBUTlQp IFRQIHZhIFNvIFRhaSBuZ3V5ZW4gLSBNb2kgdHJ1b25nIChUTiAtIE1UKSBUUCBkYSB0aWVuIGhh bmggcmEgc29hdCwga2llbSB0cmEgDQp2aWVjIHF1YW4gbHksIHN1IGR1bmcgZGF0IG5vbmcgbmdo aWVwIHRhaSA2IE5UIHRyZW4uIEtldCBxdWEgYmFvIGNhbyB0aGF0IGtobyB0aW46IERpZW4gDQp0 aWNoIGNoaSBjb24gOC42ODYvMTAuMTU5IGhhIGRhdCBkdW9jIGdpYW87IHNvIGRhdCBiaSAibWF0 IiwgeGFtIHBoYW0gZ2FuIDEuNTAwIGhhLiANCg0KQ2FjIHRoYW5oIHZpZW4gdHJvbmcgZG9hbiBr aWVtIHRyYSBjdW5nIGhldCBzdWMgYmF0IG5nbyBraGkgYmlldCBuZ3V5ZW4gbmhhbiBjaGluaCBs YW0gDQptYXQgY2EgbmdhbiBoYSBkYXQgbGEgTlQgYmkgImJ1b2MiIHBoYWkgY2F0IGNoaWEgZGF0 IG5ldSBtdW9uIHllbiBvbiB0cm9uZyBjb25nIHRhYyBjYW5oIHRhYywgdHJvbmcgdHJvdC4gDQoN CiJMb2kgZHVuZyB1eSB0aGUgY3VhIG1pbmgsIGNhYyBsYW5oIGRhbyB0aWVuIG5oaWVtIGN1YSBk aWEgcGh1b25nIChUUCBIQ00pIGhvYWMgY3VhIA0KY28gcXVhbiBjaHUgcXVhbiAoVG9uZyBDb25n IHR5IE5OU0cgVFApIGRhIGdvaSB5IGxhbmggZGFvIE5UIHBoYWkgdHUgbmd1eWVuIGNodXllbiBn aWFvIA0KdmFpIG1hdSBkYXQgZ2l1cCBkaWEgcGh1b25nIGxvIGNobyBvIGNobyBuZ3VvaSBkYW4g ZGkga2luaCB0ZSBtb2kgdmEgbmd1b2kgZGFuIHNvIA0KdGFpLiBEb2kgbGFpLCBkaWEgcGh1b25n IHNlIG5oYW0gbWF0IGxhbSBuZ28gbmh1bmcgc2FpIHBoYW0gY3VhIE5ULi4uIiwgYmEgTmd1eWVu IFRoaSBEdSwgQ2hhbmggVGhhbmggdHJhIFNvIFROIC0gTVQgVFAsIG5oYW4gZGluaC4gDQoNClRo ZW8gUGhvIEdpYW0gZG9jIFRodW9uZyB0cnVjIFNvIE5OICYgUFROVCBUUCBQaGFtIFRodXlldCwg dG9uZyBkaWVuIHRpY2ggZGF0IA0KY3VhIDYgTlQgZGEgY2h1eWVuIGdpYW8gY2hvIGRpYSBwaHVv bmcsIGRvbiB2aSBraGFjIGxhIDYzNSBoYTsgY3UgdGhlOg0KDQotIFR1IG5hbSAxOTg5IE5UIFRh bSBUYW4gZGEgY2h1eWVuIHF1eWVuIHF1YW4gbHkgMjgyIGhhIGNobyA0IHhhIGh1eWVuIEN1IENo aSwgDQpiaWVuIGRhdCB0cm9uZyB0cm90IHRoYW5oIGRhdCB0aG8gY3UgZGFuaCBkZSAiZ2lhbiBk YW4iLCBkb25nIHRob2kgImR1YSIgZ2FuIDQ1IGhhIGxhbSANCmJhaSBjaG9uIGxhcCByYWMgc28g MSBuYW0gMjAwMjsgKG9uZyBMZSBUaGFuaCBIYWkgLSBDaHUgdGljaCBVQk5EIFRQIEhDTSwgdHUg MjAwMS0yMDA2LCBwaGFpIGNoaXUgdHJhY2ggbmhpZW0uKQ0KIA0KLSBOVCBMZSBNaW5oIFh1YW4g bmFtIDE5OTcgZGEgY2h1eWVuIGdpYW8gNDAgaGEgY2hvIGh1eWVuIEJpbmggQ2hhbmggbGFwIGto dSBjb25nIG5naGllcC4gDQoNCi0gTlQgUGhhbSBWYW4gSGFpIChUUCBIQ00pIGN1bmcgYnVvYyBw aGFpIGdpYW8gMzIgaGEgY2hvIGh1eWVuIER1YyBIb2EgKExvbmcgDQpBbikgdmFvIG5hbSAxOTkx OyAob25nIFRydW9uZyBUYW4gU2FuZyAtIHF1ZSBvIGh1eWVuIER1YyBIb2EgLSB0aW5oIExvbmcg QW4sIG5ndXllbiBsYSBnaWFtIGRvYyBOVCBuYXksIA0Kbmd1eWVuIEdpYW0gZG9jIFNvIE5vbmcg TmdoaWVwIFRQIEhDTSBkZW4gbmFtIDE5OTIgdGhpIGxhbSBDaHUgdGljaCBVQk5EIFRQLCBwaGFp IGNoaXUgdHJhY2ggbmhpZW0pICANCg0KLSBOVCBQaGFtIFZhbiBDb2kgY2h1eWVuIDE3Niw3IGhh IGdvbTogMTI2LDc3IGhhIGNobyBDb25nIHR5IEZvU2FDbyBuYW0gMTk5MSB2YSANCjIwMDEgZGUg dHJvbmcgY2F5IFBhY2hpcmEgeHVhdCBraGF1LCAyNSBoYSBjaG8gWGkgbmdoaWVwIENoYW4gbnVv aSBoZW8gRG9uZyBIaWVwIG5hbSANCjIwMDEgdmEgZ2FuIDI1IGhhIGNobyBYaSBuZ2hpZXAgQ2hh biBudW9pIGhlbyBQaHVvYyBMb25nIG5hbSAyMDAyLi4uIChvbmcgTmd1eWVuIE1pbmggVHJpZXQg LSANCkJpIHRodSBUaGFuaCB1eSBUUCBIQ00sIHR1IDIwMDAgLSAyMDA2LCBwaGFpIGNoaXUgdHJh Y2ggbmhpZW0pDQoNClRhdCBjYSBkZXUgZHVvYyB0aHVjIGhpZW4gdGhlbyBjaGkgZGFvIG1pZW5n IGhvYWMgZ2lheSB0YXkuIA0KDQoxNCBuYW0gdHJvaSBxdWEsIDYzNSBoYSBkYXQgYmkgeGEgeGVv IHRyZW4gZGEgZHVvYyAiaG9hbiBjaGluaCBjYWMgdGh1IHR1YyBwaGFwIGx5IiB0aGVvIA0KcXV5 IGRpbmguIENvbiBob24gODM4IGhhIGRhdCBjaHV5ZW4gZ2lhbyB0aGVvIGxlbmggY2h1YSBob2Fu IGNoaW5oIHRodSB0dWM7IHRyb25nIGRvIA0KTlQgUGhhbSBWYW4gQ29pIGxhIDYzMiBoYSwgQ29u ZyB0eSBCbyBzdWEgMTA4IGhhLCBOVCBQaGFtIFZhbiBIYWkgMjYsOCBoYS4uLiB0aGkgYmkgZG9h biBraWVtIHRyYSBwaGF0IGhpZW4gZ2l1IGxhaS4gDQoNCktob25nIGNoaSBjbyBjYWMgY2Egbmhh biwgZG9uIHZpIE5oYSBudW9jIGNoaWVtIGR1bmcsIG5odW5nIGhvIGRhbiBnaWFwIHJhbmggdm9p IGRhdCANCk5UIGN1bmcgdHJhbmggdGh1IHhhbSBjYW5oIGNhIGNodWMgbmdhbiBtZXQgdnVvbmcs IG5odSBnaWEgZGluaCBjdWEgYmEgUGhhbSBUaGkgDQpIYW5oIHZhIG9uZyBEYW5nIEJhIERvbmcg byBhcCA2LCB4YSBQaGFtIFZhbiBIYWkgZGEgY2hpZW0gZHVuZyAxNTAwMCBtMiBkYXQgTlQgDQpQ aGFtIFZhbiBIYWkgdHJvbmcgYmFjaCBkYW4gdHUgbmFtIDE5ODkgZGVuIG5heS4gDQoNCkxvaSBu b25nIHRydW9uZywgZGlhIHBodW9uZyBoYXkgY28gcXVhbiBjaHUgcXVhbj8gDQoNClBobyBHaWFt IGRvYyBTbyBUTi1NVCBUUCBOZ3V5ZW4gVGhhbmggTmhhbiBjaG8gcmFuZyBkZSBoaWVuIHR1b25n IGNoaWVtIGR1bmcsIA0KeGFtIGNhbmggY2EgbmdhbiBoYSBkYXQgTlQgdHJvbmcgbW90IHRob2kg Z2lhbiBsYXUgbmh1IHZheSwgU28gTk4gJiBQVE5UIFRQIHZhIA0KVG9uZyBDb25nIHR5IE5OU0cg VFAgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIGhvYW4gdG9hbi4gKE9uZyBUcnVvbmcgVGFuIFNhbmcg LSBVeSANCnZpZW4gQm8gQ2hpbmggVHJpLCBuZ3V5ZW4gbGEgR2lhbSBkb2Mgc28gTm9uZyBOZ2hp ZXAgVFAgSENNLCBkZW4gbmFtIDE5OTIgdGhpIGxhbSANCkNodSB0aWNoIFVCTkQgVFAgSENNLCBw aGFpIGNoaXUgdHJhY2ggbmhpZW0uKQ0KDQpOZ29haSBuaHVuZyBuZ3V5ZW4gbmhhbiBkbzogY2h1 eWVuIGRhbiBkaWVuIHRpY2ggdGhvIGN1IGNhcCBjaG8gY2FjIGhvIGdpYW4gZGFuIHZlIGRpYSAN CnBodW9uZyBxdWFuIGx5LCBjaHV5ZW4gZ2lhbyBjaG8gZG9uIHZpIGtoYWMgdHJvbmcgcXVhIHRy aW5oIHRodWMgaGllbiBxdXkgaG9hY2ggY2h1bmcgDQpjdWEgVFAuLi4sICJTbyBOTiAmIFBUTlQg VFAgdmEgVG9uZyBDb25nIHR5IE5OU0cgIGtob25nIHRoZSBkbyB0cmFjaCBuaGllbSByYW5nICAN CmRhdCBjaHVhIHhhYyBkaW5oIHJhbmggY2FtIG1vYyBjdSB0aGUgbmVuIHZpZWMgcXVhbiBseSwg c3UgZHVuZyBkYXQgY3VhIGNhYyBOVCBjb24gDQpuaGlldSBraG8ga2hhbiwgdG9uIHRhaSB2YSB2 dW9uZyBtYWMiIC0gb25nIE5oYW4gbm9pIHRoYW5nLiANClRoZW8gb25nLCBTbyBOTiAmIFBUTlQg VFAgcGhhaSB4YWMgZGluaCB0aGF0IGN1IHRoZSB2ZSB0aG9pIGRpZW0gdmEgaGllbiB0cmFuZywg cGhvaSANCmhvcCB2b2kgZGlhIHBodW9uZyB0aWVuIGhhbmggZG8gbGFpIGRpZW4gdGljaCByYW5o IGRhdCBoaWVuIGNvIHRydW9jIG5hbSAyMDA0IHZhIG5oYW5oIA0KY2hvbmcgZ29pIGJhbyBjYW8g dHJpbmggbGVuIFVCTkQgVFAgeGVtIHhldC4gDQpPbmcgTmhhbiBjdW5nIG5oYW4gbWFuaCBuZXUg a2hvbmcgY28gc3Uga2llbiBxdXlldCBraWVtIHRyYSB0aGkgY2hhYyBjaGFuIGRpZW4gdGljaCAN CmRhdCBOVCBiaSBsYW4gY2hpZW0sICBzdSBkdW5nIHNhaSBtdWMgZGljaCBraG9uZyBkdW5nIGxh aSBjb24gc28gMTUwMCBoYS4gDQoNCk5nb2FpIHJhLCBjdW5nIGNhbiBwaGFpIHRydXkgY3V1IHRy YWNoIG5oaWVtIGN1YSBuaHVuZyBjYSBuaGFuLCBkb24gdmkgdHVuZyBsb2kgZHVuZyANCmNodWMg cXV5ZW4gYnVvYyBOVCBwaGFpIGNoaWEgY2F0IGRhdCBzYW4geHVhdCB2aSB0cnVjIGxvaSBjYSBu aGFuLg0KDQooWSBraWVuIGN1IHRyaTogT25nIFRydW9uZyBUYW4gU2FuZyAtIFV5IHZpZW4gQm8g Q2hpbmggVHJpLCBxdWUgbyBodXllbiBEdWMgSG9hIC0gDQp0aW5oIExvbmcgQW4sIG5ndXllbiBs YSBnaWFtIGRvYyBOVCBQaGFtIFZhbiBIYWksIG5ndXllbiBHaWFtIGRvYyBTbyBOb25nIE5naGll cCBUUCANCkhDTSwgZGVuIG5hbSAxOTkyIHRoaSBsYW0gQ2h1IHRpY2ggVUJORCBUUCwgcGhhaSBj aGl1IHRyYWNoIG5oaWVtIHZlIG5odW5nIHNhaSAgDQpwaGFtIHRyb25nIHZ1IHZpZWMgbmF5OyB0 aWVwIHRoZW8gbGEgY2FjIG9uZyBOZ3V5ZW4gTWluaCB0cmlldCB2YSBMZSBUaGFuaCBIYWkgbGFu IGx1b3QgbGFtDQpCaSB0aHUgVGhhbmggVXkgaG9hYyBjaHUgdGljaCBVQk5EIFRQIGN1bmcgcGhh aSBjaGl1IHRyYWNoIG5oaWVtOyBnYW4gMTUwMCBoZWN0YSBkYXQgYmkgY2hpZW0gZHVuZyANCnRy YWkgcGhhcCBsdWF0LCB0cnVjIGxvaSBjYSBuaGFuLi4uIHRyb25nIHJhdCBuaGlldSBuYW07IHZp ZWMgY2hpYSB0YWNoLCBzYXAgbmhhcCBoYXkgcGhhbiBjaGlhIGxhaSANCmRhdCBkYWkgZ2l1YSBj YWMgdGluaCBsYSB0aHVvYyB0aGFtIHF1eWVuIGN1YSBRdW9jIEhvaSBjaHUga2hvbmcgcGhhaSBj dWEgY2FjIE5vbmcgdHJ1b25nIGhheSBzbyBOb25nIE5naGllcCwgDQpoYXkgVFAgSENNIHZhIHRp bmggTG9uZyBBbi4uLikgDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS1YYS1ob2kvNDA3 MDY0L0xhaS12by1vbmctbnVvYy1zdXAtbWF0LWR1b25nLmh0bWwgTi5UUklFVSAyMi8xMC8yMDEw LCAwODowOCAoR01UKzcpIA0KDQpUUCBIQ006IExhaSB2byBvbmcgbnVvYywgc3VwIG1hdCBkdW9u Zw0KDQpUVCAtIEtob2FuZyA3ZzMwIG5nYXkgMjEtMTAsIG1hdCBkdW9uZyBIb2FuZyBWYW4gVGh1 IHNhdCBnaWFvIGxvIHZvaSBkdW9uZyBMZSANCkJpbmgsIFAuNCwgUS5UYW4gQmluaCwgVFAuSENN IGJhdCBuZ28gdm8gcmEgdmEgbnVvYyB0dSBiZW4gZHVvaSBwaHVuIGxlbiB0dW5nIHRvZSANCmto aWVuIG1hdCBkdW9uZyBiaSBraG9ldCB0aGFuaCBobyByb25nIGtob2FuZyAxLDJtLCBzYXUgaG9u IDFtLiANCg0KKEFuaDogSGllbiB0cnVvbmcgdnUgdm8gb25nIG51b2MgbGFtIHN1cCBtYXQgZHVv bmcgdHJlbiBkdW9uZyBIb2FuZyBWYW4gVGh1IHNhbmcgDQoyMS0xMCAtIEFuaDogTi5UcmlldSkg DQoNCk5ndXllbiBuaGFuIGxhIG9uZyBjYXAgbnVvYyBwaGkgMjAwIGNhcCBudW9jIGNobyB0cnUg Y3V1IGhvYSBiaSBiZSwgbnVvYyB0cm9uZyBvbmcgDQp0cmFuIHJhIGN1b24gdGhlbyBkYXQgZGEg Y2hheSB2YW8ga2hlIGhvIGN1YSBkdW9uZyBvbmcgdGhvYXQgbnVvYyBwaGkgMTAwMCBuYW0gZ2Fu IGRvIA0KdmEgdGFvIG5lbiBsbyBob25nIGdheSBzdXAgbWF0IGR1b25nLiANCg0KU2F1IGtoaSB4 YXkgcmEgc3UgY28sIENoaSBuaGFuaCBjYXAgbnVvYyBIb2EgVGFuIGRhIHRyaWVuIGtoYWkga2hh YyBwaHVjIHRyYSBsYWkgbWF0IGR1b25nIG5nYXkgdHJvbmcgbmdheS4gDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAyOC8yMDEwMDcwNzAwMTg0Mi5hc3B4IE1p bmggTmFtIC0gTmdvYyBLaG9pIDA3LzA3LzIwMTAgMDoxOCANCg0KVFAgSENNOiBDYWMgZHUgYW4g T0RBIGRldSBiaSAiZG9pIiB2b24NCiAgDQpDYWMgZHUgYW4gT0RBIGRldSBiaSBkb2kgdm9uIGRh dSB0dSBuaHUgZGFpIGxvIERvbmcgVGF5LCBtb2kgdHJ1b25nIG51b2MgZG9pIHRoYW5oIA0KMy42 MDAgdGkgZG9uZywgdHV5ZW4gbWV0cm8gc28gMSBjaHVhIGtob2kgY29uZyBjdW5nIGRhIHRhbmcg dHUgMSwxIHRpIFVTRCBsZW4gMiwzIA0KdGkgVVNELCBkdSBhbiB2ZSBzaW5oIG1vaSB0cnVvbmcg dGFuZyB0dSAyMDAgdHJpZXUgbGVuIDM1NCB0cmlldSBVU0QiIA0KDQotIFNvIHRpZW4gMTQyIHRp IGRvbmcgbmdhbiBzYWNoIFRQIGRhIHVuZyB0cnVvYyBkZSBraGFjIHBodWMgc3VhIGNodWEgY2F1 IFZhbiBUaGFuaCAyIA0KaGllbiBjaHVhIHRodSBob2kgbGFpIGR1b2MgdHUgY2FjIGRvbiB2aSwg Y2EgbmhhbiBzYWkgcGhhbSANCi0gQ2h1YSB4YWMgZGluaCBkdW9jIGFpIHNlIHRpZXAgdHVjIGNo aSBoYW5nIHRyYW0gdGkgZG9uZyBzdWEgY2h1YSBkdW9uZyBOZ3V5ZW4gSHV1IA0KQ2FuaCBoYXkg bGFpIG5nYW4gc2FjaCBUUC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1Bh Z2VzLzIwMTAyOS8yMDEwMDcxNDAxMDEyMy5hc3B4IE5ob20gUFYgMTQvMDcvMjAxMCAxOjAxIA0K DQpUUCBIQ006IFJhdSAia3kgc2luaCIgdHJlbiBrZW5oIG51b2MgZGVuICAtIEJhbyBkb25nIG5n dXkgY28gbmdvIGRvYyAgDQogIA0KQ2FjIGNvIHF1YW4gY2h1YyBuYW5nIGRldSBiaWV0IHJhdSBt dW9uZyB0cm9uZyB0cmVuIGtlbmggbnVvYyBkZW4gY28gdGhlIGdheSBkb2MgY2hvIA0Kbmd1b2kg dGlldSBkdW5nLCAgbmh1bmcgdGh1YyB0ZSAicmF1IGRvYyIgdmFuIHRvbiB0YWkgdHJhbiBsYW4u IA0KDQpIaWVuIDEwMCUgcmF1IG11b25nIG51b2MgZHVvYyB0cm9uZyBvIG5odW5nIHZ1bmcgZGF0 IHRydW5nIG5nYXAgbnVvYyB2YSBoYXUgaGV0IHN1IA0KZHVuZyBuZ3VvbiBudW9jIGtlbmggcmFj aC4gRGllbiB0aWNoIHN1IGR1bmcgbmd1b24gbnVvYyBrZW5oIHJhY2ggYmkgbyBuaGllbSBjaGll bSANCjQ3LDM0JSAoUC5UaGFuaCBYdWFuLCBRLjEyIHRodW9jIGtlbmggVGhhbSBMdW9uZzsgUC5U YW0gUGh1LCBRLlRodSBEdWMsIHJhY2ggDQpDYXUgTG9uIHZhIHJhY2ggTmdoZSB0aHVvYyBuaGFu aCBzb25nIFNhaSBHb24pLiBEYXkgbGEgbmh1bmcgdnVuZyBkYSBkdW9jIGRlIG5naGkgDQpjaHV5 ZW4gZG9pIG5odW5nIHRpZW4gZG8gY29uIGNoYW0uIA0KDQpEYWMgYmlldCB2YW4gY29uIDMwJSBu b25nIGRhbiBzdSBkdW5nIGRhdSBuaG90IGRlIHBob25nIHRydSByYXkgbWVtIG8gZ2lhaSBkb2Fu IDItMyANCm5nYXkgdHJ1b2MgdGh1IGhvYWNoIHRyZW4gcmF1IG11b25nIG51b2MuIA0KDQpOZ3V5 IGNvICANCg0KIkRvIG51b2Mga2VuaCBCYSBCbyBiaSBvIG5oaWVtIG5lbiBjaGF0IGx1b25nIHJh dSBtdW9uZyBvIGRpYSBwaHVvbmcgY3VuZyBiaSBhbmggDQpodW9uZy4gUmF1IG11b25nIHRyb25n IG8gZGF5IGJhbiBvIGRhdSBjaHUgbmhpZXUgbmd1b2kgZGFuIHZhIG5nYXkgY2EgdHVpIGN1bmcg a2hvbmcgDQpkYW0gYW4iLi0gQmEgTmd1eWVuIEtpbSBPYW5oLCBDaHUgdGljaCBIb2kgTm9uZyBk YW4gUC5CaW5oIENoaWV1IChRLlRodSBEdWMpLCBjaG8gYmlldC4NCg0KQmFjIHNpIFRyYW4gVmFu IEt5LCBIb2kgS2hvYSBob2Mga3kgdGh1YXQgYW4gdG9hbiB0aHVjIHBoYW0gVk4sIHBodSB0cmFj aCBBVFZTVFAgDQpwaGlhIE5hbSwgY2FuaCBiYW86ICJSYXUgbXVvbmcgY28gdG8gY2h1YyBsb25n IGxlbyAodGhhbiByb25nLCB4b3ApIG5lbiBodXQgbnVvYyByYXQgDQpuaGlldSwgZG8gdmF5IG5l dSB0cm9uZyB0cm9uZyBtb2kgdHJ1b25nIG8gbmhpZW0gbmFuZyB0aGkgY2h1bmcgc2UgaHV0IG5o dW5nIGRvYyBjaGF0LCANCmNhYyBraW0gbG9haSBuYW5nLiBOZ3VvaSB0aWV1IGR1bmcga2hpIHN1 IGR1bmcgY28gbmd1eSBjbyBuZ28gZG9jIGNhcCB0aW5oIHZhIG1hbiB0aW5oLiANCkNhcCB0aW5o IHRoaSBjbyB0aGUgbmhpbiB0aGF5IGR1b2MgZ2lvbmcgbmh1IHF1YSBjYWMgdnUgbmdvIGRvYyB0 aHVjIHBoYW0gdmFuIHRodW9uZyANCnh1eWVuIHhheSByYS4gQ29uIG5nbyBkb2MgbWFuIHRpbmgg dGhpIGtob25nIGhpZW4gaGluaCBuZ2F5LCBtYSB2ZSBsYXUgZGFpIHF1YSBzdSBkdW5nIA0Kc2Fu IHBoYW0gcmF1IHRyb25nIHRyb25nIG1vaSB0cnVvbmcgbyBuaGllbSBuaHUgdGhlLCBjbyB0aGUg c2UgdGljaCB0dSBkYW4gbmh1bmcgZG9jIA0KY2hhdCwgY2FjIGtpbSBsb2FpIG5hbmcgbmh1IGNo aSwgdGh1eSBuZ2FuLCBhc2VuLi4uIHNlIGdheSBoYWkgY2hvIHN1YyBraG9lIG5odTogdW5nIHRo dSwgDQphbmggaHVvbmcgbGVuIGNodWMgbmFuZyBzaW5oIHNhbiAoaGllbSBtdW9uLCB2byBzaW5o KS4uLiIuDQoNCkFuaCBjaHVwOiBDYWMgY2FuaCBkb25nIHJhdSBtdW9uZyBvIFAuQmluaCBDaGll dSAoUS5UaHUgRHVjKSBkZXUgc3UgZHVuZyBuZ3VvbiBudW9jIGNoaW5oIA0KdHUga2VuaCBCYSBC byBkYW5nIGJpIG8gbmhpZW0ga2ltIGxvYWkgdHJhbSB0cm9uZyAtIEFuaDogTS5OIA0KDQpodHRw Oi8vd3d3LnZpZXRuYW1uZXQudm4vaGNtLzIwMTAwOC9Ib24tY2hpZW4tdHJlbi1kdW9uZy1waG8t U2FpLUdvbi0yLW5ndW9pLWJpLWRhbS1jaGV0LTkyNzMxNS8gUXVvYyBRdWFuZyAyMjozOSwgMDYv MDgvMjAxMCAoR01UKzcpDQoNClRQLkhDTTogSG9uIGNoaWVuIHRyZW4gZHVvbmcgcGhvIFNhaSBH b24sIDIgbmd1b2kgYmkgZGFtIGNoZXQNCg0KS2hvYW5nIDE5aDE1JyBuZ2F5IDYvOC8yMDEwLCBt b3QgdnUgYW4gbWFuZyBkYWMgYmlldCBuZ2hpZW0gdHJvbmcgeGF5IHJhIG5nYXkgdHJ1b2MgDQp0 b2EgbmhhIHNvIDI0OCBkdW9uZyBDb25nIFF1eW5oLCBwaHVvbmcgUGhhbSBOZ3UgTGFvLCBxdWFu IDEuDQoNCjMgdGhhbmggbmllbiBkaSB0cmVuIGhhaSB4ZSBTSCBiaSBkYW0gZ3VjIHRhaSBjaG8u IDIgdHJvbmcgc28gbmF5IGRhIGNoZXQsIG5ndW9pIGNvbiBsYWkgY3VuZyB0cm9uZyB0aW5oIHRy YW5nIG5ndXkga2ljaCANCg0KaHR0cDovL3d3dy5pdGFleHByZXNzLmNvbS52bi90aW5faXRhL2Rf aV9zX25nL3BoYXBfbHVfdC90cF9oY21fbV90X3ZfZ2lfdF9uZ19pX2RhX21hbl9naV9hX2Jhbl9u Z2F5IEJ1aSBOaHVuZyAxOS8xMS8yMDA3IDQ6NDYgcG0gDQoNClRQLkhDTTogR2lldCBuZ3VvaSBk YSBtYW4gZ2l1YSBiYW4gbmdheSAodGFpIHF1YW4gVGFuIEJpbmgpIA0KDQpDaGlldSAxNy8xMSwg bmhhbiB2aWVuIHNob3AgcXVhbiBhbyBCbHVlLUV4Y2hhbmdlIHRhaSBzbyA0MTIgVHJ1b25nIENo aW5oIChwaHVvbmcgDQoxMywgcXVhbiBUYW4gQmluaCwgVFAuSENNKSBwaGF0IGhpZW4gY2hpIE5n dXllbiBIb2FuZyBBbmggVGh1IChuaGFuIHZpZW4gY3VhIA0KaGFuZywgMTkgdHVvaSwgcXVlIEFu IEdpYW5nKSBuYW0gY2hldCB0cmVuIHZ1bmcgbWF1IG5nYXkgdHJvbmcgY3VhIGhhbmcuIEtlIHRo dSBhYyBkYSANCmR1bmcgZGFvIGRhbSBuaGlldSBuaGF0IHZhbyBidW5nIHZhIGNvIG5hbiBuaGFu IGtoaWVuIG5hbiBuaGFuIHR1IHZvbmcgdGFpIGNoby4gDQoNCmh0dHA6Ly9iYW9vbmxpbmUudm4v cGhhcC1sdWF0L3BoYXAtbHVhdC90cGhjbS1uYnNwLXhldC14dS1iYW5nLWN1b3AtZ2lldC1uZ3Vv aS1kYS1tYW4uaHRtbCAgMjkvMS8yMDEwIDE1OjA5IA0KDQpULlBIQ00gOiBCYW5nIGN1b3AgZGEg bWFuIGdpZXQgdm8gY2hvbmcgY2h1IGRvYW5oIG5naGllcCBLaW0gU29uIChvIHF1YW4gR28gVmFw KSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMTAzLzIwMTEw MTEzMDAwODQ5LmFzcHggRGFtIEh1eSAxMy8wMS8yMDExIDA6MDggDQoNClRQIEhDTTogTmhpZXUg Z2lhbSBkb2MgYmkgYmFuZyBiYWkgImJpcCIgY3VvbmcgZG9hdCB0YWkgc2FuICANCiANClBob25n IENTRFQgdG9pIHBoYW0gdmUgdHJhdCB0dSB4YSBob2kgKFBDNDUpLCBDb25nIGFuIFRQLkhDTSB2 dWEgaG9hbiB0YXQga2V0IGx1YW4gDQpkaWV1IHRyYSB2ZSBiYW5nIGRhbmggYmFpICJiaXAiIGRv IFRyYW4gU3kgUGh1b25nICgzMyB0dW9pLCBuZ3UgUS5UaHUgRHVjKSBjYW0gZGF1LCANCnZhIGNo dXllbiBobyBzbyBzYW5nIFZpZW4gS1NORCBUUC5IQ00gZGUgbmdoaSB0cnV5IHRvIHRvbmcgY29u ZyA3IGJpIGNhbiwgZ29tOiANCg0KVHJhbiBTeSBQaHVvbmcsIFRyYW4gTmdvYyBVeWVuICg0MiB0 dW9pLCBuZ3UgUS4xMiksIFRyYW4gVmFuIFRoYW8gKDM1IHR1b2ksIG5ndSANClEuMyksIFZvbmcg Q3VuIER1b25nICg0MiB0dW9pLCBuZ3UgUS5CaW5oIFRhbiksIExlIFRoZSBEYW5oICg0OSB0dW9p LCBxdWUgSGFpIA0KUGhvbmcpLCBOZ3V5ZW4gVGhhYyBCYWNoICgzNiB0dW9pLCBuZ3UgUS4xKSwg Tmd1eWVuIFRpZW4gVGhhbiAoMzAgdHVvaSwgbmd1IFEuMSkgdmUgDQpoYW5oIHZpIGN1b25nIGRv YXQgdGFpIHNhbiB2YSBsYW0gZ2lhIGNvbiBkYXUsIHRhaSBsaWV1IGNvIHF1YW4gdG8gY2h1Yy4g VGhlbyBrZXQgbHVhbiANCmRpZXUgdHJhLCBQaHVvbmcgY3VuZyBkb25nIGJvbiBnaWEgZG9hbmgg bmhhbiwgZ2lhbSBkb2MsIG5oYW4gdmllbiBraW5oIGRvYW5oIGN1YSBjYWMgDQpjb25nIHR5IGNo dSBkb25nIGxhbSBxdWVuIHZvaSBjYWMgZ2lhbSBkb2MsIHRvbmcgZ2lhbSBkb2MgY3VhIGNvbmcg dHkgbG9uIHRhaSBUUC5IQ00gDQp0aG9uZyBxdWEgaW50ZXJuZXQsIHRob25nIHRpbiBxdWFuZyBj YW8uLi4gU2F1IGRvLCBib24gY2h1bmcgZGF0IHZhbiBkZSBob3AgdGFjIGtpbmggDQpkb2FuaCwg aGVuIHRhaSBraGFjaCBzYW4gZ2lhbyBkaWNoLiANCg0KVGFpIGtoYWNoIHNhbiwgYm9uIGNodW5n ICJnaWFuZyBiYXkiIHRvIGNodWMgZGFuaCBiYWksIGdpYSB2byBkaSByYSBuZ29haSBjbyB2aWVj LCByb2kgDQpuaG8gbmFuIG5oYW4gZGFuaCBnaXVtIHZhaSB2YW4uIFR1b25nIGxhIGNob2kgZ2l1 bSwgbmh1bmcgc2F1IGtoaSB0aHVhLCBib24gY2h1bmcgZXAgDQpuYW4gbmhhbiBwaGFpIHRyYSB0 aWVuIHRodWEgYmFjLiBUdSB0aGFuZyA1IGRlbiB0aGFuZyAxMi4yMDA5LCBib24gY2h1bmcgZGEg Z2F5IHJhIGl0IA0KbmhhdCA2IHZ1IGN1b25nIGRvYXQgdGFpIHNhbiB2b2kgc28gdGllbiBnYW4g NTAwIHRyaWV1IGRvbmcgdmEgMjAgbmdhbiBVU0QuIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1u aW5oLVBoYXAtbHVhdC9Dby1iYWMtaG9hdC1kb25nLWNvbmcta2hhaS80NTEzODY1My8yMTgvIE4u RC5NICAxMy8xLzIwMDQsIDAxOjEyIEdNVCs3IA0KDQpUUCBIQ006IENvIGJhYyBob2F0IGRvbmcg Y29uZyBraGFpDQoNCkJhbyBUaGFuaCBOaWVuIHNvIHJhIG5nYXkgMTYvMTIvMjAwMyBwaGFuIGFu aCB0aW5oIHRyYW5nIGNvIGJhYyBjbyB0byBjaHVjIGhvYXQgZG9uZyANCmNvbmcga2hhaSBrZW8g ZGFpIG5oaWV1IG5hbSB0YWkga2h1IHZ1YyBkdW9uZyBIb2FuZyBIb2EgVGhhbSwgUC4xMywgUS5U YW4gQmluaCANCihUUC5IQ00pIGdheSBtYXQgYW4gbmluaCB0cmF0IHR1IG5naGllbSB0cm9uZyB2 YSBsYW0gdGFuIGdpYSBiYWkgc2FuIHJhdCBuaGlldSBuZ3VvaS4gDQoNCk5nYXkgMTcvMTIsIFRy dW5nIHRhIE5ndXllbiBWYW4gSHVuZyAtIFRydW9uZyBDb25nIGFuIFAuMTMga2hpIHRyYSBsb2kg cGhvbmcgdmFuIA0KdHJlbiBUaGFuaCBOaWVuIGNhbSBrZXQgc2UgdHJpZXQgdGlldSBjYWMgdG8g Y2h1YyBjbyBiYWMgdGFpIGRheSwgdGhlIG5odW5nIGhpZW4gbmF5IHRpbmggDQpoaW5oIGNhbmcg dHJvIG5lbiBjdWMga3kgcGh1YyB0YXAuIFRoZW8gZ2hpIG5oYW4gY3VhIGNodW5nIHRvaSB2YW8g Y2hpZXUgNi8xLzIwMDQsIGNvIGl0IA0KbmhhdCAzIHNvbmcgYmF1IGN1YSB2YSAxIHNvbmcgbGFj IHh1IHVwIC0gbmd1YSBhbiB0aHVhIGRhbSBkbyBtb3Qgc28gZG9pIHR1b25nIGNvIGJhYyANCmNo dXllbiBuZ2hpZXAgZ2F5IHNvbmcgdGh1IGh1dCBoYW5nIHRyYW0gY29uIGJhYy4gRGUgbmdoaSBj aGluaCBxdXllbiBkaWEgcGh1b25nIHNvbSByYSB0YXkgeHUgbHkuIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNTEvMjAxMDEyMTkyMzQxMjcuYXNweCBIb2Fp IE5hbSAxOS8xMi8yMDEwIDIzOjQxIA0KDQpUUCBIQ006IERhbmggYmFjIGNvbmcga2hhaSAtIFF1 eSBtbyB2YSBjaHV5ZW4gbmdoaWVwIA0KICANCihBbmg6IFNheSBzdWEgZGFuaCBiYWMgYmFuZyBt YXkgbyBkaWVtIDIwMyBkdW9uZyBzbyAxMSwgUC4xMCwgUS42IC0gQW5oOiBIb2FpIE5hbSkNCg0K VGhhbmcgNC4yMDEwLCBCYW8gVGhhbmggTmllbiBkYSB0dW5nIHBoYW4gYW5oIHRpbmggdHJhbmcg bWF5IGRhbmggYmFjIHZhbyB0YW4gY2FjIA0Ka2h1IGRhbiBjdS4gVGhlIG5odW5nIHNhdSA2IHRo YW5nLCB0aW5oIHRyYW5nIG5heSBraG9uZyBnaWFtLCB0aGFtIGNoaSBjb24geHVhdCBoaWVuIA0K bmhpZXUgZG9uZyBtYXkgdmEgdHJvIGRhbmggYmFjIGhpZW4gZGFpIGhvbi4gDQoNCkJ1YyB4dWMg Y3VhIG5ndW9pIGRhbg0KDQpOaGlldSBuZ3VvaSBkYW4gbyBQLjEwLCBRLjYgKFRQLkhDTSkgZ3Vp IGRvbiBkZW4gQmFvIFRoYW5oIE5pZW4gcGhhbiBhbmggbyBkaWEgYmFuIA0KcGh1b25nIGNvIGhh aSB2byBjaG9uZyBvbmcgTmcuIHRvIGNodWMga2luaCBkb2FuaCBtYXkgZGFuaCBiYWMgc3VvdCBu Z2F5IGRlbTsgDQpraG9uZyBjaGkgInRob25nIGxpbmgiIG8gZGlhIGJhbiBQLjEwIG1hIGNvbiBi YW5oIHRydW9uZyBzYW5nIGNhYyBwaHVvbmcga2hhYyBuaHUgOCANCnZhIDExLiBWaWVjIGtpbmgg ZG9hbmggbWF5IGRhbmggYmFjIGRhIGxhbSBjb24gZW0gaG8sIGtob25nIGNoaSBtYXQgdGllbiBt YSBjb24gbWF0IA0KY2EgdGhvaSBnaWFuLCBzdW90IG5nYXkgIm5nb2kgdGhpZW4iIGtoaWVuIHZp ZWMgaG9jIGhhbmggZ2lhbSBzdXQsIGNvIGtoaSB0cm9uIGhvYyBkZSB2YW8gDQpkYW5oIGJhYyB2 b2kgbWF5Lg0KDQpDaHVuZyB0b2kgY28gbWF0IG8gZHVvbmcgc28gMTEsIGtodSBkYW4gY3UgQmlu aCBQaHUgdGh1b2MgUC4xMCwgUS42IHZhbyBzYW5nIDExLjEyLiANCkRhbyBxdWEgZGFvIGxhaSB0 dXllbiBkdW9uZyBuYXkgY2h1bmcgdG9pIGRlbSBkdW9jIGl0IG5oYXQgY28gNSBkaWVtIGRhdCBt YXkgZGFuaCBiYWMgDQpyYXQgY29uZyBraGFpLCBkaWVtIG5hbyBjdW5nIHRodSBodXQgcmF0IG5o aWV1IG5ndW9pIGNob2kuIA0KDQpUYXAgeGUgdmFvIGNhbiBuaGEgY2FwIDQgY28gZGlhIGNoaSB0 aGVvIGRvbiBwaGFuIGFuaCBsYSBzbyA0IGR1b25nIDExLCBjYW5oIGN1YSBraGVwIA0KaG8gbmh1 bmcgdGhheSBjbyBraGFjaCwgaGFpIG5ndW9pIG1vdCBuYW0gbW90IG51IGtob2FuZyBob24gMjAg dHVvaSBkb24gZGEgcmEga2VvIA0Kcm9uZyBjdWEgZGUgbmdoaSBjaHVuZyB0b2kgY2hheSB0aGFu ZyB4ZSB2YW8gYmVuIHRyb25nIG5oYSBjaG8gYW4gdG9hbi4gRGllbSBuYXkgY28gDQp0b25nIGNv bmcgMTEgbWF5IGRhbmggYmFjIHZvaSBjYWMgdHJvIG5odSBkdWEgaGVvLCBkdWEgY2hvLi4uIE1v YyAyMCBuZ2FuIG11YSA0MCB0aGUgDQpjaHVuZyB0b2kgbmdvaSB2YW8gY2hpZWMgbWF5IGJhdC4g Q2h1YSBkYXkgNSBwaHV0LCBtYXkgZGEgbnVvdCBzYWNoIHNvIHRoZSB2dWEgbW9pIA0KbXVhIGN1 YSBjaHVuZyB0b2kuIA0KDQpUaWVwIHR1YyBzYW5nIGRpZW0gdGh1IGhhaSBsYSBjYW4gbmhhIHNv IDY3LiBPIGRheSBjbyAxMCBtYXkgZHVvYyBxdWFuIGx5IGJvaSBtb3QgY28gDQpnYWkgcmF0IHRy ZS4gTmhpbiB2YW8gMTAgbWF5IGRvaSBjdSwgY2h1bmcgdG9pICJkb2kiIGNob2kgbWF5ICIxMiBj b24gZ2lhcCBjaHUga2hvbmcgDQpjaG9pIG1heSBjdSIsIHRoaSBjbyBnYWkgbmhhbmggbmhhdSBo dW9uZyBkYW46ICJBbmggbXVvbiBjaG9pIG1heSBkbyBzYW5nIDIwMyAoZGllbSBkYXQgDQptYXkg byBzbyBuaGEgMjAzIGNhY2ggZG8ga2hvYW5nIDEwMG0pIHZpIGJlbiBkYXkgdm9pIGJlbiBuYXkg bGEgbW90Ii4gRHVuZyBuaHUgDQpsb2kgY28gZ2FpLCBkaWVtIDIwMyBjbyAxMiBtYXksIHRyb25n IGRvIGNvIDIgbWF5IDEyIGNvbiBnaWFwICh0dWMgbG9haSBtYXkgbW9pIHN1IGR1bmcgDQpjb25n IG5naGUgYmFuZyBwaGFuIG1lbSB2aSB0aW5oKSBkYW5nIGNvIDYtNyB0aGFuaCBuaWVuIG1hdCBk YW4gdmFvIG1hbiBoaW5oLiBUaGF5IA0Ka2hhY2gsIG1vdCB0aGFuaCBuaWVuIGR1bmcgZGF5IGhv aSBjaG9pIGdpIHRoaSBjaHVuZyB0b2kgbm9pIG11b24gY2hvaSBtYXkgIjEyIGNvbiANCmdpYXAi LiBMYXAgdHVjIGFuaCB0YSBjaG8gYmlldCBjaG9pIG1heSBuYXkgaXQgbmhhdCBtb3QgbGFuIGxh IDUwIG5nYW4gZG9uZy4gQ2FtIHRpZW4gDQp4b25nLCBhbmggdGEgbGF5IGNoaWEgcmEgbW8ga2hv YSB2YSBiYXQgbWF5IHZhbyBuYWMgMTAwIGRpZW0gY2hvIGNodW5nIHRvaSBjaG9pLiANCk5odW5n IGNoaSB0cm9uZyB0aWNoIHRhYywgNTAgbmdhbiBkb25nIGN1YSBjaHVuZyB0b2kgZGEgdGh1YSBz YWNoLiBCZW4gY2FuaCBjaHVuZyB0b2ksIDMgDQp0aGFuaCBuaWVuIGN1bmcgZGFuZyBjYXkgY3Ug dmkgYmkgbWF5IGFuIGhldCB0aWVuLiBMYXkgY28gaG9tIG5heSBraG9uZyBoZW4sIGNodW5nIHRv aSANCmRhdCB4ZSByYSBraG9pIHR1IGRpZW0uIA0KDQooQW5oOiBEdW5nIGJ1YSB0cnVhIG5nYXkg dGFpIG1heSBkYW5oIGJhYyAtIEFuaDogSG9haSBOYW0pIA0KDQpDaHVuZyB0b2kgdGllcCB0dWMg ZGVuIGRpZW0gODgxIGR1b25nIEhhdSBHaWFuZyAoUC4xMSwgUS42KSwgZGF5IGN1bmcgbGEgZGll bSBuYW0gDQp0cm9uZyBkb24gcGhhbiBhbmggY3VhIG5ndW9pIGRhbi4gTyBkaWVtIG5heSwgYmVu IG5nb2FpIGNvIGJheSAzIG1heSBjaG9pIGdhbWUgY3Uga3kgDQpraG9uZyBtb3QgYm9uZyBuZ3Vv aSwgbmh1bmcgcXVhIG1vdCBidWMgbWFuIGtpbiB0aGkgYmVuIHRyb25nIGNvIDEwIG1heSBkYW5o IGJhYyANCmR1b2MgcXVhbiBseSBib2kgbW90IG5ndW9pIGRhbiBvbmcga2hvYW5nIHRyZW4gNDAg dHVvaS4gDQoNClF1eSBtbyB2YSBjaHV5ZW4gbmdoaWVwDQoNCkN1bmcgdGhlbyBkb24gcGhhbiBh bmggY3VhIG5ndW9pIGRhbiwgY2h1bmcgdG9pIHRpZXAgdHVjIHRvaSBkaWVtIDc2NiBkdW9uZyBI YXUgDQpHaWFuZywgUC4xMiwgUS42LiBUaGVvIHBoYW4gYW5oLCBkaWVtIG5heSBxdXkgbW8gdmEg Y2h1eWVuIG5naGllcCBiYWMgbmhhdCBvIFEuNiANCmhpZW4gbmF5LiBOaGluIGJlbiBuZ29haSB0 aGkgY2hhbmcgY28gdmUgZ2kgbGEgbW90IHR1IGRpZW0gZGF0IG1heSBkYW5oIGJhYyBxdXkgbW8g dmkgDQpiZW4gbmdvYWkgY2hpIGRhdCA0IG1heSBjaG9pIGdhbWUuIEtoaSBjaHVuZyB0b2kgdGFw IHZhbyB0aGkgbW90IGJhbyB2ZSB4dWF0IGhpZW4gbW8gDQpjYW5oIGN1YSBtb2kgY2hhby4gRHVu ZyB4ZSB2YSBidW9jIHF1YSBjYW5oIGN1YSwgbHVjIG5heSBjaHVuZyB0b2kgbW9pIGJhdCBuZ28g dmkgYmVuIA0KdHJvbmcgbGEgbW90IGRhbiB2b2kgMjMgbWF5IGRhbmggYmFjIChjbyA4IG1heSBk b2kgbW9pKSBjdW5nIHZvaSBtb3Qgc28ga2hhY2ggZGFuZyANCm5nb2kgc2F5IHN1YSBkYW4gbWF0 IHZhbyBtYW4gaGluaC4gDQoNClRoZW8gcXVhbiBzYXQgY3VhIGNodW5nIHRvaSwgZGllbSA3NjYg Y28gMyBuZ3VvaSwgMiBuYW0gdmEgMSBudSBkaWV1IGhhbmguIE5ndW9pIG51IA0KbGFtIG5oaWVt IHZ1IHRodSB0aWVuIHBoYXQgdGhlLCBtb3QgbmFtIGxhbSBuaGllbSB2dSBnaW9pIHRoaWV1IG1h eSBtb2kgdmEgY2FjaCBjaG9pLCANCmNvbiBtb3QgbmFtIGdpdSB4ZSBraWVtIGJhbyB2ZSBiZW4g bmdvYWkuIE8gdHUgZGllbSBuYXksIGRhYyBiaWV0IGNvIG1vdCBtYXkgbG9uIGRhbmggDQpjaG8g NCBuZ3VvaSBjaG9pIGN1bmcgbW90IGx1Yy4gVGhhdCB0aGV1IGRhdCB4ZSByYSBraG9pIGRpZW0g NzY2IHZpIHRodWEgbGllbiB0dWMsIGNodW5nIA0KdG9pIG1vaSBoaWV1IG8gZGF5ICh2YSBtb3Qg c28gZGllbSBraGFjKSB2aWVjIGRhdCB2YWkgbWF5IGNob2kgZ2FtZSBjdSBreSBvIGJlbiBuZ29h aSANCnZ1YSBsYSBuZ3V5IHRyYW5nLCB2dWEgbGEgbW90IGFtIGhpZXUgY3VhIG1vdCBkaWVtIGRh bmggYmFjIGNodXllbiBuZ2hpZXAuIA0KDQpUcm9uZyBxdWEgdHJpbmggdGltIGhpZXUsIGNodW5n IHRvaSBuaGFuIHRoYXk6IGtob25nIGNoaSBjYWMgdHUgZGllbSBkYW5oIGJhYyBvIFEuNiBkYW0g DQoidHVuZyBob2FuaCIsIG1hIG8gbW90IHNvIHF1YW4ga2hhYyBuaHUgVGFuIEJpbmgsIDEyLi4u IHRpbmggdHJhbmcgZGFuaCBiYWMgYmFuZyBtYXkgDQpjdW5nIGNvbmcga2hhaSBraG9uZyBrZW0u IEN1IHRoZSB0cmVuIG1vdCBkb2FuIGR1b25nIEF1IENvIChQLjE0LCBRLlRhbiBCaW5oKSBjaHVh IA0KZGF5IDIwMG0gY28gaGFpIGRpZW0gZGF0IG1heSBkYW5oIGJhYyBsdW9uIGRvbmcgbmdoZXQg a2hhY2guIA0KDQpUcnVhIDExLjEyIGNodW5nIHRvaSBidW9jIHZhbyBtb3QgZGllbSBkYXUgZHVv bmcgQXUgQ28uIE8gZGF5IGNvIDEyIG1heSBkYW5oIGJhYyANCnRyb25nIGRvIGNvIDYgbWF5IGRv aSBtb2kgZHVvYyBxdWFuIGx5IGJvaSBoYWkgbmd1b2ksIG1vdCBuYW0gbW90IG51LiBRdXkgZGlu aCBvIGRheSANCmN1bmcgbGEgdm9pIG1heSBkb2kgbW9pIGtob25nIGNobyBjaG9pIGR1b2kgNTAg bmdhbiBkb25nLiBUaWVwIHR1YyBzYW5nIGRpYSBjaGkgMTAwNCANCmR1b25nIEF1IENvLiBUYWkg ZGF5IGNvIDE0IG1heSBkYW5oIGJhYyBjdW5nIGhhbmcgY2h1YyB0aGFuaCBuaWVuIGRhbmcgdmEg bW8gaG9pIA0KImRhdSIgdm9pIG1heSwgY28gbmd1b2kgY29uIHZ1YSBjaG9pIHZ1YSBhbiBjb20g ZGUgdGllcCB0aGVtIHN1Yy4gRHVuZyB4ZSBvIG5nb2FpIA0KY2h1bmcgdG9pIG5nb2kgdmFvIG1v dCBtYXkgYmF0IGN1IGt5IHZhIGxheSB0byAyMCBuZ2FuIGRvbmcgbXVhIDQwIHRoZS4gQ3VuZyBu aHUgDQpuaHVuZyBsYW4gdHJ1b2MgbWFjIGR1IGRhdCBjYWMgY3VhIG5odW5nIGN1b2kgY3VuZyB2 YW4gdGh1YSBzYWNoLiBUaWVwIHR1YyBtdWEgdGhlbSANCjQwIHRoZSBkZSBuZ29pIHZhbyBtb3Qg bWF5IGtoYWMgbmhhbSAidGh1IHZhbiBtYXkiLCBuaHVuZyByb3QgY3VvYyBjaHVuZyB0b2kgY3Vu ZyANCmtob25nIHRoZSB0aGFuZyBub2kgbWF5Li4uDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9uZXdzL1BhZ2VzLzIwMTA1Mi8yMDEwMTIyMTIzMjgyNS5hc3B4IFR1eSBQaG9uZyAyMS8x Mi8yMDEwIDIzOjI4IA0KDQpUUCBIQ00gdmEgQmluaCBEdW9uZzogRGFuaCBiYWMgY29uZyBraGFp IC0gS2h1YXkgZG9uZyB2dW5nIHF1ZSAgDQogDQpLaG9uZyBjaGkgbyBUUC5IQ00sIHRhaSBCaW5o IER1b25nLCBuaGlldSBraHUgdnVjIG1heSBkYW5oIGJhYyBjdW5nIHh1YXQgaGllbiBuaGFuIG5o YW4sIHRoYW0gY2hpIG5nYXkgc2F0IHRydW9uZyBob2MuIA0KDQpDaGF5IG5hbg0KDQpUYWkgbW90 IGRpZW0gZGFuaCBiYWMgYmFuZyBtYXkgZ2FuIG5nYSBiYSBPbmcgWGEgKGtodSBwaG8gRG9uZyBU YW4sIHRoaSB0cmFuIERpIEFuLCANCkJpbmggRHVvbmcpLCBjaHVuZyB0b2kgZ2FwIGFuaCBQaGFt IFZhbiBIb2FuZyAoMzAgdHVvaSkgbGFtIGJhbyB2ZSBtb3QgY29uZyB0eSBvIERpIA0KQW4uIEFu aCBIb2FuZyBrZSB0dW5nIGxhICJjb24gbmdoaWVuIiBjbyB0aWVuZyBvIGtodSB2dWMsIHN1b3Qg bmdheSBjaG9pIGNhYyB0cm8gbmh1IA0KZHVhIG5ndWEsIGRhbmggYmF0Li4uICJOZ2hpZW4gZGVu IG11YyBtYSBuZ2F5IGtoaSBuZ3UsIHRvaSB2YW4gbW8gdGhheSBjYSB0aWVuZyBuZ3VhIA0KbG9j IGNvYyBoYXkgdGllbmcgaHUgY3VhIG5odW5nIGNvbiB0aHUuIEN1IGNvIGJhbyBuaGlldSB0aWVu IGtpZW0gZHVvYyBkZXUgbnVvbmcgaGV0IA0KdmFvIGNhYyBjbyBtYXkgZGFuaCBiYWMiLCBIb2Fu ZyBrZS4gTmd1b2kgbmhhIGN1YSBIb2FuZyBjaG8gYmlldCBjbyB0aG9pIGRpZW0gYW5oIGFuIA0K ZGFtLCBuYW0gZGUgbyBjYWMgdHUgZGllbSBkYW5oIGJhYyB0cmVuIGR1b25nIERUNzQzICh4YSBU YW4gRG9uZyBIaWVwLCBodXllbiBEaSANCkFuKS4gRG8gdmF5IG11b24sIEhvYW5nIHBoYWkgbGFt IHRodWUgY2hvIGNodSB0aWVtIGRlIHRydSBuby4gR2lhIGRpbmggbGFtIG1vaSBjYWNoIA0Kbmh1 bmcgdmFuIGtob25nIGFuIHRodWEgbmVuIHBoYWkgY2h1eWVuIG5oYSB2ZSBUaHUgRHVjIHNpbmgg c29uZyBkZSBjdXUgSG9hbmcgdGhvYXQgDQpraG9pIHRybyBkbyBkZW4uIA0KDQpDdW5nIGNhbmgg bmdvIHZvaSBIb2FuZyBsYSBtb3QgdGhhbmggbmllbiB0ZW4gS2hhbmcsIGhpZW4gY3VuZyBsYW0g YmFvIHZlIHZvaSBzbyB0aWVuIA0KbHVvbmcgMSw1IHRyaWV1IGRvbmcvdGhhbmcuIEdhcCBLaGFu ZyB0YWkgbW90IGRpZW0gZGFuaCBiYWMgdHJlbiBkdW9uZyBEVDc0MyAoYXAgDQpDaGlldSBMaWV1 LCB4YSBUYW4gRG9uZyBIaWVwKSwgZHUgZG9pIG1hdCBxdWFuZyBzYXUgc2F1IG1vdCBkZW0gdGh1 YyB0cmFuZyBjdW5nIGNvIA0KbWF5IGRhbmggYmFjLCBtaWVuZyBuZ2FwIG5nYW4gbmdhcCBkYWks IG5odW5nIGFuaCBtYXQgS2hhbmcgdmFuICB0aGVtIHRodW9uZyBuaGluIA0Kbmh1bmcgImNvbiBu Z2hpZW4iIGtoYWMgZGFuZyBkYW5oIGJhYy4gTmdhdCBub2ksIGJhbyBuaGlldSB0aWVuIGJhYyBL aGFuZyBkYSBudW9uZyANCnNhY2ggc2F1IGNhIHRydWMgZGVtICgyMiBnaW8pLiBLaGFuZyBub2k6 ICJCYXkgZ2lvIGNvIG5oaWV1IHRybyBoYXAgZGFuIHF1YSwgY2hhbiBkdWEgDQpuZ3VhIHRoaSBx dWEgZHVhIGhlbywgZHVhIGNobywgaGluaCBhbmggdHV5ZXQgZGVwLCBhbSB0aGFuaCBoYXAgZGFu Ii4gU2F1IGtoaSBkdW9jIGNobyANCjEwMC4wMDAgZG9uZywgS2hhbmcgY2hvaSB0cm8gZHVhIGhl by4gQ28gbHVjIEtoYW5nIGFuIGR1b2MgcmF0IG5oaWV1IGRvbmcgeHUsIG5ldSBxdXkgDQpyYSB0 aWVuIGxhIGxvaSBkZW4gNDAwLjAwMCBkb25nLCBuaHVuZyBraG9hbmcgMjAgcGh1dCBzYXUgdGhp IGJpICJjaGF5IHR1aSIsIHRyZW4gdGF5IA0Ka2hvbmcgY29uIG1vdCB4dS4gS2hhbmcgY2hvIGJp ZXQgY28gbmdheSBkYSB0aHVhIGRlbiAxIHRyaWV1IGRvbmcgdmEgaGllbiBnaW8gZGFuZyANCnRo aWV1IG5vIG5odW5nIG5ndW9pIHRyb25nIGdpYSBkaW5oIGRlbiAxMDAgdHJpZXUgZG9uZy4gVm9p IHNvIHRpZW4gbHVvbmcgbmh1IEtoYW5nIA0KZGFuZyBsYW0gYmFvIHZlIGNoYWMgY3VuZyBwaGFp IG1hdCBjYSBjaHVjIG5hbSBtb2kgdHJhIGR1b2Mgbm8uIA0KDQpDbyBxdWFuIGNodWMgbmFuZyBs byBsYQ0KDQpUYW5nIGN1b25nIGtpZW0gdHJhIHh1IGx5IA0KDQpPbmcgSHV5bmggVmFuIE5oaSwg UGhvIGNodSB0aWNoIFVCTkQgdGluaCBCaW5oIER1b25nIHZ1YSBreSBjb25nIHZhbiBzbyANCjM3 NDYvVUJORC1WWCB5ZXUgY2F1IFNvIFZhbiBob2EgLSBUaGUgdGhhbyAtIER1IGxpY2gsIENvbmcg YW4gdGluaCwgUXVhbiBseSB0aGkgDQp0cnVvbmcuLi4gdGllcCB0dWMgdGFuZyBjdW9uZyBraWVt IHRyYSwgeHUgbHkgbmdhbiBjaGFuIHRybyBjaG9pIGRpZW4gdHUgZGFuaCBiYWMgdHJlbiBkaWEg DQpiYW4uIFRoZW8gZG8sIFVCTkQgdGluaCBCaW5oIER1b25nIHlldSBjYXUgY2FjIGRvbiB2aSBu ZXUgdHJlbiBjaHUgZG9uZyBwaGF0IGhpZW4sIA0KeHUgbHkgdHJpZXQgZGUgY2FjIGNvIHNvIHNh biB4dWF0LCBsYXAgcmFwLCB2YW4gY2h1eWVuIG1heSBkYW5oIGJhYyB2YSB4dSBseSBuZ2hpZW0g Y2FjIA0KY2EgbmhhbiBsaWVuIHF1YW4uIA0KDQpEYW8gcXVhbmggbW90IHZvbmcga2h1IHZ1YyB4 YSBUYW4gRG9uZyBIaWVwIHZhIHRoaSB0cmFuIERpIEFuLCBjaHVuZyB0b2kgZGVtIA0Ka2hvYW5n IDIwIGRpZW0gZGF0IG1heSBkYW5oIGJhYyB2b2kgdHJlbiAxMDAgbWF5LiBDbyBuaHVuZyBub2kg bmh1IHRyZW4gZHVvbmcgDQpEVDc0MywgY2FjIGRpZW0gZGF0IG1heSBkYW5oIGJhYyBjYWNoIG5o YXUgY2hpIHZhaSB0cmFtIG1ldC4gSGF1IGhldCBjYWMgZGllbSBraG9uZyANCmNvIGJhbmcgaGll dSwgZGlhIGNoaSB2YSBtb2kgZGllbSBjbyBtb3Qgbmd1b2kgbnUgZHVuZyB0aHUgdGllbi4gQ2h1 bmcgdG9pIGdoZSB2YW8gbW90IA0KZGllbSBkYXQgNyBtYXkgZGFuaCBiYWMgdGFpIGtodSBwaG8g RG9uZyBUYW4sIHRoaSB0cmFuIERpIEFuLiBDYW4gcGhvbmcgbGEgbW90IG5oYSB0cm8gDQpjaG8g dGh1ZSwgYmVuIHRyb25nIGRvbmcgbmdoZXQgbmd1b2ksIGNodSB5ZXUgbGEgdGhhbmggdGhpZXUg bmllbi4gRGllbSBkYXQgbWF5IGRhbmggDQpiYWMgbmF5IGxhIGN1YSBtb3Qgbmd1b2kgdGVuIE4u LCBob2F0IGRvbmcgbGllbiB0dWMgdHUgc2FuZyBkZW4gMTIgZ2lvIGRlbSwgbmV1IGNvIGtoYWNo IA0KdGhpIGRvbmcgY3VhIHBodWMgdnUgY2hvIHRhbiBzYW5nLiBPIGNhYyBhcCBDaGlldSBMaWV1 LCBEb25nIFRhbiAoeGEgVGFuIERvbmcgSGllcCkgDQpjaHVuZyB0b2kgZGVtIGR1b2MgaG9uIDEw ICBkaWVtIGRhdCBtYXkgZGFuaCBiYWMsIGhvYXQgZG9uZyBjb25nIGtoYWkgdmEgY2FjIGRpZW0g DQpuYXkgZGV1IGN1YSBoYWkgdm8gY2hvbmcgVC4gdmEgTC4gdHUgVFAuSENNLiANCg0KS2hpIGNo dW5nIHRvaSBkZW4gdGltIGhpZXUgdGluaCB0cmFuZyBkYW5oIGJhYyB0cmFuIGxhbiwgdHJ1bmcg dGEgTmd1eWVuIEhvbmcgVHJ1b25nLCANClRydW9uZyBjb25nIGFuIHhhIFRhbiBEb25nIEhpZXAs ICJkYXkiIHNhbmcgYm8gcGhhbiBWYW4gaG9hIC0gVGhvbmcgdGluLiBOaHVuZyBzYXUgDQpraGkg ZGUgY2FwIGRlbiB0cmFjaCBuaGllbSBjdWEgbmdhbmggY29uZyBhbiBkaWEgcGh1b25nLCB0aGkg IHRydW5nIHRhIFRydW9uZyBtb2kgbmhpbiANCm5oYW4gbGEgbWF5IG5hbSBuYXkgQ29uZyBhbiB4 YSBUYW4gRG9uZyBIaWVwIGN1bmcgbmFtIGR1b2MgY2FjIHR1IGRpZW0gZGF0IG1heSANCmRhbmgg YmFjLCBuaHVuZyB4dSBseSB0aGkgcmF0IGl0LiAiQ2h1bmcgdG9pIGRhIG5hbSBkYW5oIHNhY2gg bmh1bmcgZGlhIGRpZW0gZGF0IG1heSANCmRhbmggYmFjIHRyb25nIHRheSwgbmh1bmcgdmFuIHBo YWkgY2hvIGhvcCB2YSBkZSB4dWF0IGdpYWkgcGhhcCB2YSBwaG9pIGhvcCB2b2kgY2FjIA0Kbmdh bmgga2hhYyBkZSBraWVtIHRyYSwgeHUgbHkgZHV0IGRpZW0iLCB0cnVuZyB0YSBUcnVvbmcgbm9p LiBSaWVuZyBjYXUgaG9pIGNvIGhheSANCmtob25nIHZpZWMgY2FuaCBzYXQga2h1IHZ1YyBiYW8g a2UgY2hvIGRpZW0gZGFuaCBiYWMsIHRydW5nIHRhIFRydW9uZyBjaG8gYmlldDogIkhpZW4gDQpn aW8gdGhpIGNodWEgcGhhdCBoaWVuIGRhdSBoaWV1IHZpIHBoYW0gdmEgbmV1IGNvIHNlIHh1IGx5 IG5naGllbSIuIA0KDQpUcm8gbGFpICJkaWVtIG5vbmciDQoNCkJhbyBUaGFuaCBOaWVuIHZhbyB0 aGFuZyA0LjIwMTAgdHVuZyBjbyBsb2F0IGJhaSBwaGFuIGFuaCBtYXkgZGFuaCBiYWMgdHJhbiBs YW4gdHJlbiANCmRpYSBiYW4gdGhpIHhhIFRodSBEYXUgTW90IChCaW5oIER1b25nKS4gVGllcCB0 aHUgcGhhbiBhbmgsIENvbmcgYW4gdGhpIHhhIFRodSBEYXUgDQpNb3QgZGEgY2hpIGRhbyBjb25n IGFuIGRpYSBwaHVvbmcgdHJ1eSBxdWV0LiBUcnVuZyB0YSBOZ3V5ZW4gVGhhbmggS2hpZW0sIFBo byANCnRydW9uZyBDb25nIGFuIHBodW9uZyBDaGFuaCBOZ2hpYSAodGhpIHhhIFRodSBEYXUgTW90 KSwgY2hvIGJpZXQ6ICJLZSB0dSBraGkgQmFvIA0KVGhhbmggTmllbiBjbyBsb2F0IGJhaSBwaGFu IGFuaCB2ZSB0aW5oIHRyYW5nIG1heSBkYW5oIGJhYyB0cmVuIGRpYSBiYW4sIGNodW5nIHRvaSAN CnRodW9uZyB4dXllbiBwaG9pIGhvcCBjb25nIGFuIHRoaSB4YSB0cnV5IHF1ZXQgdmEgZGVuIG5h eSBoYXUgbmh1IHRyZW4gZGlhIGJhbiBjaHVhIA0KcGhhdCBoaWVuIG5odW5nIHR1IGRpZW0gbW9p LiBOZXUgcGhhdCBoaWVuLCBjaHVuZyB0b2kga2llbiBxdXlldCB4b2EgYm8gbmdheSIuIENvbmcg YW4gDQpwaHVvbmcgUGh1IExvaSAodGhpIHhhIFRodSBEYXUgTW90KSBjdW5nIHRodW9uZyB4dXll biByYSBxdWFuIHh1IGx5LiBNb2kgZGF5LCBjbyANCnF1YW4gbmF5IGRhIGJhdCBtb3QgdHUgZGll bSBkYXQgNyBtYXkgZGFuaCBiYWMgdGFpIGtodSBwaG8gMy4gRHUgdmF5LCB0aGVvIGdoaSBuaGFu IGN1YSANCmNodW5nIHRvaSwgdHJlbiBkaWEgYmFuIHRoaSB4YSBUaHUgRGF1IE1vdCB2YW4gY29u IG5oaWV1IGRpZW0gZGF0IG1heSBkYW5oIGJhYyBuaHU6IA0Ka2h1IHZ1YyBkdW9uZyBLOCAocGh1 b25nIFBodSBMb2kpIHZhIGtodSB2dWMga2h1IGRhbiBjdSBIaWVwIFRoYW5oIElJIChwaHVvbmcg DQpIaWVwIFRoYW5oKSBjbyBpdCBuaGF0IDQgZGllbSBraW5oIGRvYW5oIG1heSBkYW5oIGJhYyB2 b2kgc28gbHVvbmcgbW9pIGRpZW0gdHUgMyAtIDUgDQptYXkuIA0KDQpUYWkgaHV5ZW4gVGh1YW4g QW4sIG1vdCBzbyBkaWVtIGtpbmggZG9hbmggbG9haSBoaW5oIG5heSB0aHVvbmcgbmFtIGdhbiBj YWMgdHJ1b25nIA0KaG9jIG5odSB0cmVuIGR1b25nIDIyLTEyICh4YSBUaHVhbiBHaWFvKSBjbyAy IGRpZW0ga2luaCBkb2FuaCBtYXkgZGFuaCBiYWMuIFRoZW8gDQpuZ3VvaSBkYW4gbyBkYXksIGNo dSB5ZXUgZG9pIHR1b25nIGRlbiBjaG9pIGxhIHNpbmggdmllbiB0cnVvbmcgQ2FvIGRhbmcgbmdo ZSBWaWV0IE5hbSAtIFNpbmdhcG9yZS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA1Mi8yMDEwMTIyMTAwNDc0OC5hc3B4IE0uTiAgTWluaCBOYW0gSG9haSBO YW0gMjEvMTIvMjAxMCA3OjQ3IA0KDQpUUCBIQ006IERhbmggYmFjIGNvbmcga2hhaSAtIE5hbmcg Y2FwIGNvbmcgbmdoZSAiZG8gZGVuIiAgDQoNCihBbmg6IENhYyBjb24gYmFjIGRhbmcgc2F5IHN1 YSB0YWkgZGllbSAxMDA0IEF1IENvIFRQLkhDTSAtIGFuaDogSG9haSBOYW0pIA0KDQpCZW4gY2Fu aCBtYXkgZGFuaCBiYWMgZG9pIGN1LCBoaWVuIG5heSBkbyBuaHUgY2F1IGNhbiBjbyBjYWkgbW9p IHRodSBodXQgbmd1b2kgaGFtIGRvIA0KZGVuLCB2YSBkbyAidHJpbmggZG8iIGtoYWNoIGNob2kg ZGEga2hhIGhvbiwgdGhpIHRydW9uZyB4dWF0IGhpZW4gbG9haSBtYXkgZGFuaCBiYWMgZG9pIA0K bW9pIHN1IGR1bmcgY29uZyBuZ2hlIHZpIHRpbmggcmF0IHRpZW4gbG9pLCBkYW4gdHJvbmcgbmdo ZSBnb2kgbGEgIm1heSBkYWkgZ2lhIi4gDQoNCkhhbmcgbG9hdCBtYXkgZGFuaCBiYWMgbmh1IG1h eSBiYXQsIGR1YSBjaG8sIGR1YSBoZW8geHVhdCBoaWVuIG1heSBuYW0gdHJ1b2MgZ2lvIGRheSAN CmRhIGxhYyBoYXUuIE1hYyBkdSBjbyBoZSB0aG9uZyBkaWVuIHR1IGR1b2MgY2FpIGRhdCB0aGVv IHlldSBjYXUgZGUgIm1vYyB0dWkiIGtoYWNoIA0KY2hvaSwgbmh1bmcgY2FjIG1heSBkb2kgY3Ug a2hpZW4gbmd1b2kgY2hvaSBtYXQgY29uZyBkdXQgdGhlIHZhbyBtYXkuIE1hdCBraGFjLCAiZGll bSANCnlldSIgY3VhIG1heSBkb2kgY3UgY3VuZyBsYW0gY2FjIGNodSBtYXkgcGhpZW4gbG9uZyB2 aSB0aHVvbmcgeHV5ZW4gYmkgY2hhcCBkYW4gZGVuIA0KbG9hbiBtYXkuIA0KDQpLaGFjaCBjaG9p IGNodXllbiBuZ2hpZXAgbG9pIGR1bmcgZGllbSB5ZXUgbmF5LCBjaG8gbmd1b2kgcXVhbiBseSBs byBsYSBzZSBkdW5nICJ0aHUgDQp0aHVhdCIgbGFtIGNoYXAgbWF5IGRlIGFuIGdpYW4gZGllbS4g RGllbSBhbiBnaWFuIG5heSBkdW9jIHF1eSBkb2kgcmEgdGhlLCB0dSB0aGUgdGluaCANCnRoYW5o IHRpZW4uIENoaW5oIHZpIHRoZSBtYSBkYSBjbyBuaGlldSBkaWVtIGNvIG1heSBkYW5oIGJhYyBw aGFpIHRyYSBjaG8gbmd1b2kgY2hvaSANCmhhbmcgdHJpZXUgZG9uZyBuaHVuZyBraG9uZyBoaWV1 IG5ndXllbiBkbywgbWFjIGR1IGRhIGNhaSBjaGUgZG8gY2h1IG1heSBhbiA3IGtoYWNoIA0KYW4g MyBtYSB2YW4gdGh1YSBraGFjaC4uLiAgICAgICAgDQoNClR1IHBoYW4gYW5oIGN1YSBjYWMgIm9u ZyBiYSBjaHUiLCAibmhhIHNhbiB4dWF0IiBudW9jIG5nb2FpIGRhIGJhdCB0YXkgdmFvIGNhaSB0 aWVuLiBDaGkgDQpzYXUgbW90IHRob2kgZ2lhbiBuZ2FuIG1vdCBsb2FpIG1heSBkb2kgbW9pIHZv aSBjb25nIG5naGUgInZpIHRpbmgsIHN1IGR1bmcgY2hpcCBkaWVuIA0KdHUiLCBjbyB0aGUgbmdh biBjaGFuIG5odW5nIHZpIGtoYWNoIGNvIHRpbmggbGFtIGNoYXAgbWF5IGRlIGFuIGdpYW4gZGll bSwgZHVvYyBjaGFvIA0KYmFuLiBWb2kgY29uZyBuZ2hlIG1vaSBuYXksIG5ndW9pIGNob2kga2hv bmcgY2FuIHBoYWkgbXVhIHRoZSwgbXVvbiBkYW5oIGJhbyBuaGlldSANCm5ndW9pIHF1YW4gbHkg Y2hpIHZpZWMgbW8ga2hvYSwgY2FpIHNvIGRpZW0gdHVvbmcgdW5nLiAgICAgDQoNClRyb25nIHZh aSBuZ3VvaSBtdW9uIG11YSBtYXkgZGFuaCBiYWMsIGNodW5nIHRvaSBsYW0gcXVlbiB2b2kgVC4g KG5ndW9pIGN1bmcgY2FwIA0KbWF5IGNobyBjYWMgZGllbSBkYW5oIGJhYyBvIGRpYSBiYW4gUS4x MiwgQmluaCBUYW4pLiBULiBnaW9pIHRoaWV1IGhhbmcgbG9hdCBtYXkgdGhlbyANCmNhYyBsb2Fp ICBnaWEgdHUgMiw1IHRyaWV1IGRlbiAxOCB0cmlldSBkb25nLiBULiBjdW5nIGtob25nIG5nYW4g bmdhaSBkdWEgY2h1bmcgdG9pIGRlbiANCm1vdCAgZGllbSBtYSBULiBjdW5nIGNhcCBtYXkgZGUg Im11YyBzbyB0aGkiIHRpbmggbmFuZyB2dW90IHRyb2kgY3VhIG1heSBkb2kgbW9pLiANCg0KRGF5 IGxhIG1vdCBtYXkgZHVhIGNobyBuaHVuZyBkdW9jIGNoYXkgYmFuZyBoZSB0aG9uZyAiY2hpcCBk aWVuIHR1Ii4gVC4gbW8gbmFwIHZhIA0KY2FpIGRpZW0gbWEgbmd1b2kgY2hvaSBkYXQgNTAgbmdh biBkb25nLCB0dSBiYW5nIGRpZW4gdHUgaGllbiBsZW4gc28gMTAwLCB0dWMgYmFuZyAxMDAgDQp0 aGUgbWEga2hvbmcgbWF0IGNvbmcgZHV0IHR1bmcgdGhlIHZhbyBtYXkuIEN1IHRoZSwgVC4gYmFt IG51dCBjaG9pIHRoZW8geSBtaW5oIGNhIA0KY3VvYy4gVHJvbmcgdGljaCB0YWMgYmFuZyBkaWVu IHR1IGRhIHRybyB2ZSBzbyBraG9uZywgY28gbmdoaWEgbmd1b2kgY2hvaSB0aHVhIHNhY2guIA0K Ik5ldSBtYXkgY3UgcGhhaSBtYXQgdmFpIHBodXQgZGUgZHV0IGNodW5nIGRvIHRoZSB2YW8gdGhp IHZvaSBtYXkgZG9pIG1vaSwga2hvbmcgc28gDQpraGFjaCBhbiBnaWFuIHZhIHZhbiBjYWkgZGF0 IHRodSBwaGFwIGRlICJjaGVtIiB0aGVvIHkgbWluaCIsIFQuIGtob2UuDQoNCkNhYyBraWV1ICJo b3AgdGFjIGxhbSBhbiINCg0KVm9pIGtpbmggbmdoaWVtIHRoYW0gbmllbiB0cm9uZyBuZ2hlLCBU LiBraG9lIGRhIGN1bmcgY2FwIGhhbmcgdHJhbSBtYXkgdGhlbyBraWV1IA0KImhvcCB0YWMgbGFt IGFuIiB2b2kga2hhY2ggbyBraHUgdnVjIFEuMTIsIFRhbiBCaW5oLCBCaW5oIFRhbiB2YSBIb2Mg TW9uLiANCg0KTmdvYWkgcmEsIFQuIGN1bmcgdGh1b25nIHh1eWVuIGN1bmcgY2FwIG1heSBkYW5o IGJhYyBkaSBjYWMgdGluaCBMb25nIEFuLCBUaWVuIEdpYW5nLCANCkJpbmggRHVvbmcuLi4gdGhl byB5ZXUgY2F1IGN1YSBraGFjaC4gIk5ldSBhbmggbGF5IG1heSwgYW5oIG5lbiBsYXkgbWF5IGRv aSBtb2kgdmkgDQpiYXkgZ2lvIG1heSBkb2kgY3UgbyB0aGFuaCBwaG8gZGEgbGFjIGhhdS4gTWFj IGR1IGdpYSBob2kgY2FvIG5odW5nIGN1bmcgbmhhbmgga2VvIGxhaSB2b24iLCBULiBraHV5ZW4u IA0KDQpUaGVvIFQuLCBnaWEgY2FjIGxvYWkgbWF5IGRhbmggYmFjIGhpZW4gbmF5IG5odSBzYXU6 IGxvYWkgbWF5IGN1IG5odSBtYXkgYmF0LCBkdWEgY2hvLCANCmR1YSBoZW8gaGF5IGNoaWVjIG5v biBreSBkaWV1IGdpYSBjaGkga2hvYW5nIHR1IDIsNSB0cmlldSBkZW4gNCw1IHRyaWV1IGRvbmcv bWF5LiBNYXkgDQpkb2kgbW9pIHRoaSB0dSAxMiBkZW4gMTggdHJpZXUgZG9uZy9tYXkuIExvYWkg bmF5IGR1b2MgbmhhcCB2ZSB0dSBUcnVuZyBRdW9jIG5ndXllbiANCmtpZW4gbmh1bmcgZG8gbmhh cCBsYXUgbmVuIGNhYyBsaW5oIGtpZW4gZHVvYyB0aGFvIHJvaSByYSB0dW5nIGJvIHBoYW4uICJO ZXUgYW5oIGRvbmcgeSANCmdpYSBjYSB0aGkgYW5oIHRoaWNoIGNhaSBuYW8gdG9pIGJhbyB0cm9u IGdvaS4gTmdvYWkgcmEgdG9pIGJhbyBoYW5oIHZlIGt5IHRodWF0IG5ldSBodSB0b2kgDQpkdWEg bmhhbiB2aWVuIGRlbiBzdWEgdGFuIG5vaSBtaWVuIHBoaSIsIFQuIGNhbSBrZXQuDQoNCiJDaGlu aCBzYWNoIiBraW5oIGRvYW5oIGN1YSBULiBkb2kgdm9pIGtoYWNoIGhhbmcgY3VuZyBraGEgbGlu aCBob2F0OiBjbyB0aGUgbXVhIGR1dCANCmRvYW4gaG9hYyBuZXUga2hvbmcgdGhpIGhvcCB0YWMu ICJOZXUgYW5oIGRhdCBtYXkgbyBraHUgdnVjIFEuMTIgdGhpIHRvaSBzZSBjdW5nIGNhcCANCm1h eSB2YSBiYW8gdHJvbiBnb2ksIHR1IGtoYXUgc3VhIGNodWEgaHUgaG9uZyBkZW4gdmllYyBraG9u ZyBiaSBiYXQuIEFuaCBjaGkgY2hpdSB0cmFjaCANCm5oaWVtIHRodWUgbWF0IGJhbmcgdmEgdGll biBkaWVuLiBTbyB0aWVuIHRodSBkdW9jIGhhbmcgbmdheSBjaGlhIGRvaSIsIFQuIG5vaSB2ZSAN CnBodW9uZyBhbiBob3AgdGFjIG5odSB2YXkuIA0KDQpDbyBsZSB0aGF5IGNodW5nIHRvaSBjaHVh IHRpbiBjaHV5ZW4gImJhbyBiaSBiYXQiLCBuZW4gVC4ga2hvZSB0aGVtOiAiVG9pIGN1bmcgY2Fw IGhhbmcgDQp0cmFtIG1heSBjaG8gY2EgY2h1YyBkaWVtLCB0b2kgcGhhaSBsbyBuaGlldSBraG9h biBsYW0uIENvbiBuZXUgYmkgdGh1IG1heSB0aGkgdG9pIGxhIA0Kbmd1b2kgbWF0IHRyYW5nIGFu aCBjbyBiaSBtYXQgZ2kgZGF1LiBOZXUgZG9uZyB5IHRoaSBraGkgdGltIG1hdCBiYW5nIGFuaCBj aG8gdG9pIGJpZXQgDQpkaWEgY2hpIGN1IHRoZS4gS2hpIHRvaSBub2kgYmFvIGR1b2MgbGEgYW5o IHllbiB0YW0gdGh1ZSBtYXQgYmFuZywgdG9pIHNlIG1hbmcgbWF5IHRvaSIuICAgDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzMy8yMDEwMDgwOTAxMTM0OC5h c3B4IFRyYW4gVGhhbmggQmluaCAwOS8wOC8yMDEwIDE6MTMgDQoNClRQIEhDTTogQmF0IGFuISAg DQogIA0KQ2hpIHRyb25nIG1vdCB0aG9pIGdpYW4gbmdhbiwgbmhpZXUgY2h1eWVuIGhhbmggaHVu ZywgZGFuaCBnaWV0IG5oYXUgeGF5IHJhIG5nYXkgZ2l1YSANCnRydW5nIHRhbSBUUC5IQ00ga2hp ZW4gY2hvIGN1IGRhbiB0aGFuaCBwaG8gY2FtIHRoYXkgdm8gY3VuZyBiYXQgYW4uIA0KDQpOaGlu IGxhaSwgdGhheSBseSBkbyBkZSBuZ3VvaSB0YSBoYW5oIGh1bmcsIGdpZXQgbmhhdSBtYSBydW5n IG1pbmg6IGJhbyB2ZSBxdWFuIGNvbSANCmRhbmggbmd1b2kgZ2F5IHRodW9uZyB0aWNoIGNoaSB2 aSBtb3QgbG9pIGN1IGNhaSB2YXQgdmFuaCwgY2FjIHRoYW5oIG5pZW4gdnVuZyBkYW8gZ2lldCAN Cm5oYXUgdmFvIHRvaSA2LjggdHJlbiBkdW9uZyBDb25nIFF1eW5oIChRLjEpIGtoaWVuIDIgdGhh bmggbmllbiB0aGlldCBtYW5nIHZhIDEgbmd1b2kgDQpiaSB0aHVvbmcgdGljaCBuYW5nIGNoaSB2 aSBtb3QgdmEgcXVldCBuaG8uIA0KDQpDYWNoIGRheSBraG9uZyBsYXUsIG5ndW9pIHZpZXQgY2h1 bmcga2llbiBjYW5oIDYgYmFuIHRyZSB0dW9pIGNvIDE2LTE3IGNobyBuaGF1IHRyZW4gMiANCnhl IFdhdmUgY2hheSB0dSBkdW9uZyBOZ3V5ZW4gS2llbSB2b25nIGxlbiBuZ2Egc2F1IFF1YW5nIFRy dW5nIChRLkdvIFZhcCksIDQgYmFuIA0KbmdvaSBzYXUga2VvIGxlIG1hIHRhdSBjaG9wIGx1YSB0 cmVuIGR1b25nIGRlIHRoaSB1eSBraGllbiBjaG8gbmd1b2kgZGkgZHVvbmcgbW90IHBoZW4gDQpo dSB2aWEuIEFpIGFpIGN1bmcgbGUgbHVvaSB4YW5oIG1hdCwga2hvbmcgYmlldCBtYXkgImNodSBu aG9jIiBuYXkgZGVtIG1hIHRhdSBkaSBjaGVtIA0KYWksIGRhbmggYWkuLi4NCg0KTmhpZXUgbmd1 b2kga2UsIGtoaSBsZW4gdGF4aSB0aHVvbmcgdGhheSBtb3Qgc28gdGFpIHhlIHRodSBzYW4gY2Fj IHRoYW5oIGdvIHZ1b25nIHZvaSANCm11YyBkaWNoIGtoaSBjbyB2YSBxdWV0IGhvYWMgZ2lhbmgg a2hhY2gsIGRhbiBkZW4gY3UgY2FpIGxhIHJ1dCByYSBkZSAieHUiIG5oYXUuDQogDQpUcnVvbmcg Y29uZyBhbiBwaHVvbmcgbyBtb3QgcXVhbiB2ZW4gVFAuSENNIGtlLCBtb2kgZGF5IG9uZyBwaGFp IHhpbiB5IGtpZW4gRGFuZyANCnV5IHZhIFVCTkQgcGh1b25nIGRlIGt5IGJhbiBoYW5oIG1vdCB0 aG9uZyBiYW8gdmUgdmllYyAidmFuIGRvbmcgZ2lhbyBub3AgdnUga2hpIA0KdmEgY2FjIGNvbmcg Y3Uga2hhYyIgZ3VpIGRlbiB0YXQgY2EgY2FjIGhvIGRhbiwga2UgY2EgdGhvbmcgYmFvIGx1b24g cmFuZyBuZXUgbmd1b2kgbmFvIA0KYmlldCBrZSB0YW5nIHRydSB2dSBraGkgaG9hYyBjYWMgY29u ZyBjdSBraGFjIG1hIGtob25nIGtoYWkgYmFvIGN1bmcgYmkgcXV5IHRvaSwgbmhhbSANCmRheSBs ZW4gbW90IHBob25nIHRyYW8gdG8gZ2lhYyB0b2kgcGhhbSB0cm9uZyBxdWFuIGNodW5nLiANCg0K VGhlIG5odW5nLCBzYXUgdnUgYW4gbWFuZyB0cmVuIGR1b25nIENvbmcgUXV5bmgsIHZpIHRydW9u ZyBjb25nIGFuIHBodW9uZyBuYXkgdGh1YSANCm5oYW46ICJLaGkgbmd1b2kgdGEgZGEgcmFwIHRh bSBsYW0gZGlldSBhYyB0aGkgbW90IGN1YyBkYSwgbW90IGNheSBnYXkgZ28gaG9hYyBtb3QgY29u IA0KZGFvIG5obyBkdW5nIGRlIGxhbSBiZXAgY3VuZyB0cm8gdGhhbmggY29uZyBjdSBwaGFtIHRv aS4gVmkgdmF5LCBtb2kgbHVjIHJhIGR1b25nIG5ldSANCmdhcCBhaSBkbyBodW5nIGhhbiwgY28g YmFuIGNoYXQgY29uIGRvIHRoaSBuZW4gdHJhbmggZGkgbGEgdG90IG5oYXQiLiBEYXkgbGEgY2Fj aCBoYW5oIHh1IA0KdmEgY3VuZyBsYSBjYWNoIGdpYW8gZHVjIGN1YSBuaGlldSBiYWMgY2hhIG1l IGhpZW4gbmF5IGRvaSB2b2kgY29uIGNhaS4gRGlldSBuYXkga2hpZW4gDQpjaG8gY2FpIGFjIGN1 IG5ob24gbmhvbiB0dSBkYWMsIG1vaSBraGkgY28gZGlwIGxhIGJ1bmcgbGVuIHRoYW5oIGNhYyB2 dSBhbiBkYW5oIG5ndW9pIA0KZ2F5IHRodW9uZyB0aWNoLCBnaWV0IG5ndW9pIHZhIGFuIG1hbmcg bmdheSBtb3QgbmhpZXUgaG9uLiANCg0KTyBuaHVuZyBkbyB0aGkgbG9uLCBkdW9uZyBuaHUgdHJv bmcgbG9uZyBtb2kgY3UgZGFuIGRldSBjYW0gdGhheSBiYXQgYW4gbW9pIGtoaSByYSANCmR1b25n LiBCb2ksIGtob25nIGFpIGJpZXQgdHJvbmcgY2FjIGNvcCB4ZSwgdHJvbmcgbW9pIHR1aSBxdWFu IGN1YSBrZSBhYyBsdXUgdGhvbmcgdHJlbiANCmR1b25nIGxpZXUgY28gdGh1IHNhbiBkYW8gaGF5 IGtob25nLiBWaSB2YXksIHN1IHRyYW4gYXAgdmEgcGhhbiB1bmcgdGhhdCBuaGFuaCBjdWEgbHVj IA0KbHVvbmcgY2FuaCBzYXQgZG9pIHZvaSBjYWMgYmFuZyBuaG9tIHRvaSBwaGFtLCBuaHVuZyBr ZSBjb24gZG8gbGEgcmF0IGNhbiB0aGlldCB2YSBsYSANCmRpZXUgbmd1b2kgZGFuIGx1b24gbHVv biBtb25nIGRvaS4NCg0KaHR0cDovL3d3dy5jYW5kLmNvbS52bi92aS1WTi9waG9uZ3N1LzIwMTAv OC8xMzQ5ODAuY2FuZCBOaG9tIFBWIDExOjU0OjAwIDA2LzA4LzIwMTAgDQoNCk5odW5nIHN1IHRo YXQgdmUgdHJ1bSBnaWFuZyBobyBIYWkgIkJhbmgiOiANCg0KTW9pIGx1b25nIGR1eWVuIEhhaSAi QmFuaCItTmFtIENhbS1EdW5nICJIYSINCg0KTmFtIENhbSB4dW9uZyBIYWkgUGhvbmcgZGUgZ2Fw IER1bmcgIkhhIi4gRHVuZyAiSGEiIGNobyBLeSAiaG9hYyIgbW90IGRhbiBlbSANCnRpbiBjYW4g bWFuZyB4ZSBNYXpkYSA5MjkgbGVuIEhhIE5vaSBkb24uIE5hbSBDYW0gZGUgcGhvbmcgRHVuZyAi SGEiIGNob2kgeGF1IA0KbmVuIGtob25nIGRpIHZvaSBLeSAiaG9hYyIgbWEgbmhheSBzYW5nIG5n b2kgeGUgY3VhIEhhaSAiQmFuaCIgdmEgSGFpICJidWkiLiBYZSBjaGF5IA0KdGhhbmcgdmUgc2ll dSB0aGkgY3VhIER1bmcgIkhhIiB0cmVuIGR1b25nIERpZW4gQmllbiBQaHUsIEhhaSBQaG9uZy4g VGFpIGRheSwgTmFtIA0KQ2FtIHZvIGhhIGdpb25nIHhpbiBsb2kgRHVuZyAiSGEiIHZhIHhpbiBk dW9jIHJhIG1vIHRoYXAgaHVvbmcgY2hvIGJvIER1bmcgIkhhIi4gDQoNClNhdSB2dSBLaGFuaCAi VHJhbmciIHhvIGtoYW0gbyBIYSBOb2ksIHRpbmggaGluaCBhbiBuaW5oIHRyYXQgdHUgdGFtIHll biBvbiB0cm9uZyBtb3QgDQp0aG9pIGdpYW4gbmdhbi4gS2hpIGNvIGNoZSB0aGkgdHJ1b25nIGJh dCBkYXUgcGhhdCB0cmllbiwgY2FjIGRpY2ggdnUgdGh1b25nIG1haSBidW9uIGJhbiANCmdpdWEg Y2FjIHRpbmggdGhhbmggcGhvIHZhIGR1b25nIGJpZW4gIGdpb2kgZ2l1YSBWaWV0IE5hbSB2b2kg Y2FjIG51b2MgbGFuZyBnaWVuZyBtbyANCmN1YSwgY2FjIGRpY2ggdnUgdnVpIGNob2kgZ2lhaSB0 cmkgY2FvIGNhcCBjdW5nIGR1YSBuaGF1IHBoYXQgdHJpZW4gdGhpIGNhYyBiYW5nIG5ob20gdG9p IA0KcGhhbSBob2F0IGRvbmcgdGhlbyBraWV1ICJ4YSBob2kgZGVuIiBjdW5nIGJhdCBkYXUgbGVu IHRoZW8gdmEgdGhvYyBiYW4gdGF5IG5oYXAgbmh1YSANCmN1YSBjaHVuZyB2YW8gdGF0IGNhIG5o dW5nIGxpbmggdnVjIGRlIGtpZW0gdGllbi4NCg0KQ3VuZyBwaGFpIHRodWEgbmhhbiByYW5nOiBj byBtb3QgdGhvaSBkaWVtLCBjaHVuZyB0YSBjaHVhIG1hbmggdGF5IHRyYW4gYXAgbG9haSB0b2kg DQpwaGFtIG5heSwgbmVuIG5vIGNvIGRpZXUga2llbiBwaGF0IHRyaWVuIGtoYSBwaHVjIHRhcCwg YmFuIGNoYXQgcmF0IHhhbyBxdXlldCB2YSBkYWMgYmlldCANCmxhIHJhdCBtYW5oIGRvbmcgdmEg dGFuIGJhbyBjdWEgYm9uIGdpYW5nIGhvIGNvIHNvIG1hIGNvIGRhdCBkZSBwaGF0IHRyaWVuLiBO aHVuZyB0ZW4gDQp0dW9pIGRhbiBhbmgsIGRhbiBjaGkgZ2FuIGxpZW4gdm9pIG5odW5nIGJhbmcg bmhvbSB0b2kgcGhhbSBuaHUgU29uICJCYWNoIHRhbmciLCANClRoYW5nICJUYWkgRGF1IiwgSGFp ICJCYW5oIiwgRHVuZyAiSGEiLCBNaW5oICJTdXQiLCBOYW0gQ2FtLCBIYW5oIFN1Li4uIENhYyBk aWNoIA0KdnUgYmFvIGtlIGJlbiBiYWksIHNvbmcgYmFjLCBuaGEgaGFuZywga2hhY2ggc2FuLCB2 dSB0cnVvbmcsIGJ1b24gYmFuIG1hIHR1eSBkZW4gY2FjIA0KZGljaCB2dSBkb2kgbm8sIGRhbSB0 aHVlIGNoZW0gbXVvbiwgaG9hdCBkb25nIHRyYW5nIHRyb24sIG5odW5nIHZ1IHRoYW5oIHRvYW4g bmhhdSANCmRhbSBtYXUgZ2l1YSBjYWMgYmFuZyBkYW5nIGdpYW5nIGhvIGRlIHRyYW5oIGdpYW5o IGxhbmggZGlhLCB0cmFuaCBnaWFuaCAicXV5ZW4gbHVjIA0KZGVuIiBsaWVuIHR1YyB4YXkgcmEg byBuaGlldSBkaWEgcGh1b25nIGRldSBkbyBjYWMgYmFuZyBkYW5nIG5heSBnYXkgcmEuDQoNCkRh YyBiaWV0IG8gVFAgSENNLCB0aGFuZyAxMC8xOTk3LCBzYXUgbW90IHRob2kgZ2lhbiB0YXAgdHJ1 bmcgY2FpIHRhbyBkdW9jIHRoYSB2ZSwgDQpUcnVvbmcgVmFuIENhbSAoTmFtIENhbSkgdm9pIHRo YW0gdm9uZyB0cm8gdGhhbmggdGhvbmcgbGluaCBjYWMgYmFuZyBuaG9tIHRvaSANCnBoYW0sIGhh biBkYSB4YW8gcXV5ZXQgZGUgcmEgc2FjaCBsdW9jICJUaWVuIC0gQ2hpbmggcXV5ZW4gLSB0aGUg bHVjIGRlbiIgbmhhbSBwaHVjIHZ1IA0KYW0gbXV1IGRlbiB0b2kgY3VhIGhhbi4gSGFuIGRhIGNo byBwaHVjIGhvaSwgc2FwIHhlcCBsYWkgdG8gY2h1YywgcGhhbiBjaGlhIGRpYSBiYW4gZGUgDQpo aW5oIHRoYW5oIGNhYyBzb25nIGJhYyB2b2kgcXV5IG1vIGxvbi4gU2F1IGRvIGR1bmcgbmh1bmcg ZG9uZyB0aWVuIGJhdCBjaGluaCB0dSBjYWMgDQpzb25nIGJhYyBkZSBkYXUgdHUga2luaCBkb2Fu aCBuaGEgaGFuZywgdnUgdHJ1b25nIGRlIHZ1YSBydWEgdGllbiwgdnVhIG5ndXkgdGFvIGxhIGxh bSANCmFuIGx1b25nIHRoaWVuLCBjaGUgZGF5IGNhYyBob2F0IGRvbmcgdG9pIHBoYW0gY3VhIGNo dW5nLg0KDQpOaGFtIGhpZW0gaG9uLCBOYW0gQ2FtIGNvbiB0byBjaHVjIHRoYSBob2EsIG11YSBj aHVvYyBtb3Qgc28gY2FuIGJvIHRyb25nIGNhYyBjbyANCnF1YW4gcGhvbmcgY2hvbmcgdG9pIHBo YW0gbyBUUCBIQ00gZGUgbmh1bmcgbmd1b2kgbmF5IGJhbyBjaGUgY2hvIGNhYyBob2F0IGRvbmcg DQpwaGFtIHRvaSBjdWEgY2h1bmcuIEN1bmcgdGhvaSBkaWVtIG5heSwgdGFpIEhhIE5vaSB2YSBj YWMgdGluaCBwaGlhIEJhYywgbHVjIGx1b25nIA0KQ29uZyBhbiB0aHVvbmcgeHV5ZW4gdG8gY2h1 YyBjYWMgZG90IHRydXkgcXVldCB0b2kgcGhhbSBoaW5oIHN1LiBEYW0gZ2lhbmcgaG8gInRyYSAN CkJhYyIgY29tIGNhbiBuaHUgQ3VvbmcgImhpcCIsIFRoYW5oICJjaGFuIiwgVGhhbmcgImNoYXAi OyBIYWkgIkJhbmgiLCBEdW5nICJkdWkiLCANCkR1bmcgIkJhYyBjYW4iLCBOZ29jICJkb2kiLi4u IE1vaSB0YXkgZ2lhbmcgaG8gY29tIGNhbiBuYXkga2VvIHRoZW8gaGFuZyBjaHVjIGRhbiBlbSAN Cm1hdSBsYW5oIG51YSBjaGF5IHZhbyBUUCBIQ00gdGltIGRhdCBudW9uZyB0aGFuLg0KDQpOaGll dSB0ZW4gZ2lhbmcgaG8gInRyYSBCYWMiIGN1bmcgYmFuZyBuaGlldSBjYWNoIGRlIHRpZXAgY2Fu IHZvaSB0cnVtIGdpYW5nIGhvIE5hbSANCkNhbSBuaGFtIHRpbSBjaG8gbWluaCB2YSBkYW0gZGFu IGVtIG1vdCBjaG8gZHVhLiBDaGluaCB2aWVjIGRvIGRhIGhpbmggdGhhbmggdHJvbmcgDQpkYXUg TmFtIENhbSBhbyB2b25nIHRob24gdGluaCB0b2FuICBibyBnaW9pIGdpYW5nIGhvIGNhIG51b2Mg dmUgbW90IG1vaSB2YSBoYW4gDQpuZ2hpZW0gbmhpZW4gdHJvIHRoYW5oICJvbmcgdHJ1bSIuDQoN CkxhaSBub2kgdmUgdGhvaSBnaWFuIE5hbSBDYW0gYmkgY2FpIHRhbyBvIG1pZW4gQmFjLCBiYW5n IG5odW5nIG1vaSBxdWFuIGhlIGN1YSBkYW0gDQpnaWFuZyBobyAidHJhIEJhYyIsIEhpZXAgInBo byBtYSIsIGNvbiByZSBOYW0gQ2FtIGRhIHRpZXAgY2FuIGR1b2Mgdm9pIFRoYW5nICJUYWkgDQpE YXUiIHZhIFRodXlldCAiYnVvbiB2dWEiIGN1bmcgbW90IHNvIHF1YW4gY2h1YyBraGFjIGRlIGN1 dSBOYW0gQ2FtIHJhIGtob2kgdHJhaSANCnNvbS4NCg0KU2F1IG5odW5nIHBoaSB2dSBUaGFuZyAi VGFpIERhdSIgaGV0IG1pbmggY3VuZyBUaHV5ZXQgImJ1b24gdnVhIiBjdXUgcmEga2hvaSB0cmFp LCANCk5hbSBDYW0gdmEgVGhhbmcgIlRhaSBEYXUiIHRvIHJhIGtoYW5nIGtoaXQgaG9uLiBUaG9u ZyBxdWEgVGhhbmcgIlRhaSBEYXUiLCBOYW0gDQpDYW0gYmlldCB0aWVuZyB2YSBiYXQgcXVlbiB2 b2kgIER1bmcgIkhhIi4gTyBIYWkgUGhvbmcgbmh1bmcgRHVuZyAiSGEiIGxhIG1vdCB0cnVtIA0K Z2lhbmcgaG8gY29tIGNhbiBuaGF0IHZhIGx1b24gY28gc3UgdGhhY2ggdGh1YyB2b2kgTmFtIENh bSB0YW4gdHJvbmcgVFAgSENNLiBUdXkgDQpuaGllbiwgbHVjIG5heSBEdW5nICJIYSIgZGFuZyBj YW4gaGluaCBib25nIGN1YSBOYW0gQ2FtIGRlIGRhbmggYm9uZyBjaG8gdGVuIHR1b2kgDQpjdWEg bWluaCB0cm9uZyBnaW9pIGdpYW5nIGhvLiBWaSB0aGUga2hpIGJhIFhhbSwgY2hpIHJ1b3QgTmFt IENhbSBjaGV0LCBEdW5nICJIYSIgDQpsaWVuIGRpZXUgZ2FuIDIwIHRlbiBkYW4gZW0gY28gc28g bWEsIGJheSB0dSBIYWkgUGhvbmcgdmFvIFRQIEhDTSBkZSB2aWVuZyBkYW0gdGFuZyANCmJhIFhh bS4NCg0KSXQgYnVhIHNhdSwgYm8gRHVuZyAiSGEiIHF1YSBkb2ksIE5hbSBDYW0gdG8gcmEgY29p IHRodW9uZyB2YSBjaGkgbmhvIFRoYW5nICJUYWkgDQpEYXUiIGNobyBtb3QgZGUgdHUgdHUgSGEg Tm9pIHZhYyBtb3Qgdm9uZyBob2EgeHVvbmcgSGFpIFBob25nIHZpZW5nLiBWdSBjb2kgdGh1b25n IA0KbmF5IGRhIGxhbSBjaG8gRHVuZyAiSGEiIGdpYW4gc29pIG1hdSB2YSBtYXQgbWF0IHZvaSBk YW0gZGFuIGVtLiBWdWEgbG8geG9uZyBkYW0gDQp0YW5nIGJvIG1pbmgsIER1bmcgIkhhIiBkYSBz YWkgZGFtIGRhbiBlbSBvIFRQIEhDTSBkZW4gY2FjIHNvbmcgYmFjIGN1YSBOYW0gQ2FtIA0KYmFv IGtlIHF1YXkgdHVuZyBidW5nLiBOYW0gQ2FtIGhvYW5nIHNvIHRydW9jIG5odW5nIGNoaWV1ICBx dWF5IHJvaSBjdWEgRHVuZyAiSGEiIA0Kbmh1bmcgY3VuZyBjaHVhIHRoZSB0aW0gcmEgY2FjaCBn by4NCg0KVGhhbmcgMTEvMTk5OCwgdnVhIG1hbiBoYW4gdHUsIEhhaSAiQmFuaCIgdGllcCB0dWMg dHUgdGFwIGRhbiBlbSB2YSB0byBjaHVjIGJhbyBrZSBjYWMgIA0KbmhhIGhhbmcsIHZ1IHRydW9u ZyBvIEhhIE5vaSwgbmh1bmcgZG8gQ29uZyBhbiBIYSBOb2kgdHJ1eSBxdWV0IGdhdCBuZW4gSGFp ICJCYW5oIiANCnZhIGRhbSBkYW4gZW0gdGllcCB0dWMgbGFuaCBtYXQgdmFvIFRQIEhDTS4gVGhv aSBnaWFuIG5heSBIYWkgIkJhbmgiIHJhdCAidmEiLCBoYW4gDQp0aHVvbmcga2hvbmcgY28gdGll biB0aWV1IHhhaSBjaHUgZHVuZyBub2kgZGVuIGNodXllbiBudW9pIG1vdCBkYW0gZGFuIGVtIGR1 IHRodSBkdSANCnRodWMuDQoNCkRhbmcgdHJvbmcgY29uIGJpIGN1YyB0aGkgIHRoYW5nIDEwIG5h bSBheSwgRHVuZyAiSGEiIG5nbyBsb2kgdm9pIE5hbSBDYW0gZGUgSGFpIA0KIkJhbmgiIHZlIGxh bSBkYW4gZW0gY2hvIE5hbSBDYW0uIEx1YyBuYXksIE5hbSBDYW0gdGh1YSBiaWV0IHNvIG1hIGN1 YSBIYWkgDQoiQmFuaCIgdmEgbmh1bmcgdGF5IGdpYW5nIGhvICJ0cmEgQmFjIiB0aHVvbmcgZHUg bWF1IGxhbmgsIGhhbiB0aGFtIG5naGkgdHJvbmcgYnVuZywgDQpyb2kgY28gbmdheSBjdW5nIGNh biBkZW4gbmh1bmcgdGVuICBuYXkgZGF5LiAgTHVjIG5heSBkdW9pIHRheSBOYW0gQ2FtIGNvIGNh IHRyYW0gdGVuIA0KZGFuIGVtIHZhbyBkaWVuIGNvbSBjYW4gdGh1b2MgZHUgbG9haSB0dSBkYW0g dGh1ZSBjaGVtIG11b24gZGVuIGJhbyBrZSBzb25nIGJhYywgbmhhIA0KaGFuZywgdnUgdHJ1b25n IG5lbiBiZSBuZ29haSAgTmFtIENhbSBraG9uZyB0byByYSB2b24gdmEuIFR1eSBuaGllbiB0ZW4g dHJ1bSBnaWFuZyBobyANCnZhbiB0byByYSBiaWV0IGR1bmcgbmd1b2kgbmVuIE5hbSBDYW0gdmFu IGNvaSBIYWkgIkJhbmgiIG5odSBkYW4gZW0gdmEgbmhvIG5odW5nIA0Ka2hvYW4gdGllbiBuaG8s IGR1IGRlIEhhaSAiQmFuaCIgdGlldSB4YWkgdmEgbG8gY2hvIGRhbSBkYW4gZW0uIFNhdSBuYXks IG1vaSBxdWFuIGhlIA0KSGFpICJCYW5oIiB2b2kgTmFtIENhbSBuZ2F5IGNhbmcgdGhhbiB0aGll dC4NCg0KRGF1IG5hbSAxOTk5LCBkZSB0cmEgb24gVGhhbmcgIlRhaSBEYXUiLCBOYW0gQ2FtIGRh IG1vaSBUaGFuZyAiVGFpIERhdSIgdmFvIFRQIA0KSENNIGNob2kuIE5hbSBDYW0gbW8gdGllYyBr aG9hbiBkYWkgVGhhbmcgIlRhaSBEYXUiIHR1IHJ1b3UgbmdvbiBkZW4gZ2FpIGRlcC4gDQpDdW5n IHRyb25nIG5odW5nIG5nYXkgbyBUUCBIQ00sIFRoYW5nICJUYWkgRGF1IiB2YSBOYW0gQ2FtIGRh IHRob25nIG5oYXQgdm9pIA0KbmhhdSB2aWVjIG1vIHJvbmcgbGluaCB2dWMgY2EgZG8gYm9uZyBk YSByYSBjYWMgdGluaCBwaGlhIEJhYywgdGllbiB0b2kgaG9wIG5oYXQgZ2lvaSANCmdpYW5nIGhv IGNhIG51b2MuDQoNCkx1YyBuYXkgbmdvYWkga2lhIHRoYW5oIHRoZSBjdWEgRHVuZyAiSGEiIHJh dCBtYW5oLiBOYW0gQ2FtIHRvYW4gdGluaCBwaGFpIHRpbSBtb2kgDQpjYWNoIGRlIGRhbiBob2Eg dm9pIER1bmcgIkhhIiB0aGkgdmllYyBsb24gbW9pIHRoYW5oLiBWaSB0aGUgbXVhIGRvbmcgbmFt IDE5OTksIG5oYW4gDQpkYW0gY3VvaSBjb24gZ2FpIEhvaSAiY29uIiwgY2hhdSBUaGFuZyAiVGFp IERhdSIsIEhhaSAiQmFuaCIgdmEgY2h1eWVuIGdpYSBjbyBiYWMgVGEgDQpEYWMgTHVuZyAoTHkg ZG9pKSBkYSB0aGFwIHR1bmcgZHVhIE5hbSBDYW0gYmF5IHJhIEhhIE5vaS4NCg0KVGFpIGRheSwg VGhhbmcgIlRhaSBEYXUiIHRvIGNodWMgbW90IGx1YyBsdW9uZyBodW5nIGhhdSBkaSB0cmVuIDEw IHhlIG90byBjb24gcmEgdGFuIA0Kc2FuIGJheSBkb24gTmFtIENhbS4gVHUgc2FuIGJheSwgZG9h biB4ZSBjaGF5IHRoYW5nIHZlIHBobyBMdW9uZyBTdSBBIGRlIE5hbSANCkNhbSBnaGUgdGhhbSBz b25nIGJhYyBjdWEgVGhhbmcgIlRhaSBEYXUiLCBzYXUgZG8gY2EgZG9hbiBrZW8gbmhhdSB2ZSBu Z2hpIHRhaSBraGFjaCANCnNhbiBMYXN2ZWdhcyBjdWEgTG9uZyAidmFuZyIuDQoNCkR1b2MgZGlw IHRyYSBsZSwgVGhhbmcgIlRhaSBEYXUiIHRvIGNodWMga2hvYW4gZGFpIGxhaSBOYW0gQ2FtLiBU dXkgbmhpZW4gY2hvIGRlbiBsdWMgDQpuYXksIFRoYW5nICJUYWkgRGF1IiB2YW4gY2hpIGxhIHRl biB0cm9jIHBodSBtb2kgcGhhdC4gQ2FpIHN1IGh1b25nIHRodSBsb24gbmhhdCBjdWEgDQpUaGFu ZyBsYSBjaHVpIHZhbyBtYXkgdGllbSBob3QgdG9jIHRoYW5oIG51IGNobyBtYXkgZW0uLi4gZ2Fp IGRhdS4gVmkgdGhlIGVtIHV0IG1hIA0KVGhhbmcgbG8gY2hvIE5hbSBDYW0gdG9hbiBiaSBOYW0g Q2FtIGNoZS4uLg0KDQpIYWkgbmdheSBzYXUsIE5hbSBDYW0geHVvbmcgSGFpIFBob25nIGRlIGdh cCBEdW5nICJIYSIuIER1bmcgIkhhIiBjaG8gS3kgImhvYWMiIA0KbW90IGRhbiBlbSB0aW4gY2Fu IG1hbmcgeGUgTWF6ZGEgOTI5IGxlbiBIYSBOb2kgZG9uLiBOYW0gQ2FtIGRlIHBob25nIER1bmcg IkhhIiANCmNob2kgeGF1IG5lbiBraG9uZyBkaSB2b2kgS3kgImhvYWMiIG1hIG5oYXkgc2FuZyBu Z29pIHhlIGN1YSBIYWkgIkJhbmgiIHZhIEhhaSAiYnVpIi4gDQpYZSBjaGF5IHRoYW5nIHZlIHNp ZXUgdGhpIGN1YSBEdW5nICJIYSIgdHJlbiBkdW9uZyBEaWVuIEJpZW4gUGh1LCBIYWkgUGhvbmcu IFRhaSBkYXksIA0KTmFtIENhbSB2byBoYSBnaW9uZyB4aW4gbG9pIER1bmcgIkhhIiB2YSB4aW4g ZHVvYyByYSBtbyB0aGFwIGh1b25nIGNobyBibyBEdW5nIA0KIkhhIi4NCg0KTyBuZ2hpYSB0cmFu ZyBnYW4gbmdvaSBtbyBibyBEdW5nICJIYSIgbHVjIGF5IGNvIG1heSBjYWkgaHV5ZXQgZGEgZHVv YyBkYW8gc2FuLCBEdW5nIA0KIkhhIiBrZXUgSGFpICJCYW5oIiB0b2kgbm9pIGdvOiBUcmVuIGNv aSBkb2kgbmF5IG5ndW9pIGdpZXQgdGFvIGNoaSBjbyBtYXkhIE5ldSB0YW8gY2hldCANCmR1bmcg Ym8gY2hpZXUgbWEgaGF5IGhvbSB2YW4gZGFuZyBob2FuZyB2YSBkdWEgdGFvIHZlIG5hbSBjaG8g Y2FpIGh1eWV0IG5heSBuaGUuDQoNCi0gRW0gZHVuZyBub2kgZ28gbmh1IHZheSEgLSBOYW0gQ2Ft IG5naGUgdGhheSBjaGFuIGxhaS4NCg0KLSBUb2kgY2hldCBjb24gY28gY2hvIGNob24sIGNvbiBh bmggY2hldCBraG9uZyBiaWV0IGNob24gbyBjaG8gbmFvIGRhdT8gLSBEdW5nICJIYSIgdGh1YSBj byBkb3AgbGFpLg0KDQpLaG9uZyBuZ28sIGNhdSBub2kgZ28gY3VhIER1bmcgIkhhIiBzYXUgbmF5 IGxhaSB0cm8gdGhhbmggc3UgdGhhdC4NCg0KU2F1IGRvIGNhIGhhaSBkYW4gaG9hLCBEdW5nICJI YSIgdGhhbmggdGhhdDogIlNhcCB0b2kgZW0gdmFvIFNhaSBHb24gc29uZywgY28gZ2kgYW5oIA0K TmFtIGdpdXAgZG8gbmhlISIuIE5hbSBDYW0gbmhhbiBsb2kgdmEgaHVhIGdpdXAgZG8uIFNhdSBk byBjYSBkb2FuIGtlbyBuaGF1IHJhIERvIA0KU29uIG5naGkuIFRyb25nIDIgbmdheSBOYW0gQ2Ft IHZhIGJhdSBkb2FuIG8gRG8gU29uLCBEdW5nICJIYSIgY29uIGRpZXUgaGFuIGhvbiANCmNodWMg Z2FpIGRpZW0gaGFuZyBzYW5nIHR1IEhhaSBQaG9uZyB4dW9uZyBkZSBwaHVjIHZ1IE5hbSBDYW0g dmEgZG9uZyBib24uDQoNClRoYW5nIDgvMjAwMCwgdGhheSBIYWkgIkJhbmgiIGR1b2MgdmllYyBu ZW4gTmFtIENhbSBuYW5nIGRvIGJhbmcgY2FjaCBjaG8gbmhpZXUgDQp0aWVuIGJhYy4gTmFtIENh bSBjb24gaGFvIHBob25nIGNobyBIYWkgIkJhbmgiIHRoYW0gZ2lhIGNvIHBoYW4gImJhbyBrZSIg dnUgdHJ1b25nIA0KUGhpIFRodXllbiBzbyAzNCBkdW9uZyBUb24gRHVjIFRoYW5nLCBxdWFuIDEs IFRQIEhDTS4gTW9pIHRoYW5nIE5hbSBDYW0gY2hpYSANCmNobyBIYWkgQmFuaCAxMCB0cmlldSBk b25nLiBOYW0gQ2FtIGNvbiBjaG8gSGFpICJCYW5oIiB0aWVuIGRlIHRodWUgY2FuIG5oYSBzbyAy MSANCmR1b25nIFRodSBLaG9hIEh1YW4gcGh1b25nIEJlbiBUaGFuaCwgcXVhbiAxLCBkZSBtbyAg dGllbSBjYXQgdG9jIHRoYW5oIG51IA0KIlZhbidzIi4gVG9hbiBibyBsb2kgbmh1YW4gdHUgcXVh biBjYXQgdG9jIG5heSBOYW0gQ2FtIGNobyBIYWkgIkJhbmgiIGhldCBkZSBudW9pIA0KZGFtIGRh biBlbS4NCg0KVGhvaSBkaWVtIG5heSBsYSB0aG9pIGRpZW0gaHV5IGhvYW5nIG5oYXQgY3VhIEhh aSAiQmFuaCIsIGx1YyBuYW8gdGllbiBjdW5nIGRheSB0dWksIGNvIA0KbmFuZyB0cml1IHNvaSBk YXkgeGljaCBiYW5nIHZhbmcgMjRLLCBhbiBtYWMgdGhpIHRvYW4gaGFuZyBoaWV1IHZhIHRyZW4g dGF5IGx1YyBuYW8gY3VuZyANCmxvbmcgbGFuaCBjaGllYyBuaGFuIGtpbSBjdW9uZyBnYW4gMTAg Y2FyYS4NCg0KQ3VuZyB0aG9pIGRpZW0gbmF5IHRoaSBjb25nIHRhYyB0cnV5IHF1ZXQgdG9pIHBo YW0gbyBIYWkgUGhvbmcgdmEgSGEgTm9pIGN1YSBsdWMgbHVvbmcgDQpDb25nIGFuIGxhbSBxdWEg bWFuaCwgRHVuZyAiSGEiIGN1bmcgZGFtIGRhbiBlbSB0dSBIYWkgUGhvbmcgaGV0IGRhdCBsYW0g YW4gbmVuIA0KYm8gdmFvIFRQIEhDTS4gTHVjIG5heSBkdW5nIGRhbmcgc2F1IER1bmcgIkhhIiBs YSBNaW5oICJTdXQiLCBtb3QgdGVuIHRydW0gYnVvbiANCmxhdSBtYSB0dXkgY3VuZyBtdW9uIGxv aSBkdW5nIHNvIG1hIGN1YSBEdW5nICJIYSIgZGUgeHVuZyBodW5nIHh1bmcgYmEgdmEgcGh1YyB2 dSANCmNobyB2aWVjIGtpbmggZG9hbmggY2FpIGNoZXQgdHJhbmcgY3VhIGhhbi4gVmkgdGhlIE1p bmggIlN1dCIgbHVvbiBkdW5nIGRhbmcgc2F1IGtpY2ggDQpkb25nIER1bmcgIkhhIiByYSBtYXQg dHJhbmggY2hhcCBsYW5oIGRpYSB2b2kgdHJ1bSBOYW0gQ2FtLiANCg0KRHVuZyAiSGEiIG5naGUg dGluIEhhaSAiQmFuaCIgZHVvYyBOYW0gQ2FtIGRvIGRhdSB0cm8gbGVuIGdpYXUgY28gdGhpIGhl dCBzdWMgdHVjIA0KdG9pLiBNb3QgaG9tLCBEdW5nICJIYSIgZ2FwIEhhaSAiQmFuaCIgdmEgbGVu IGdpb25nIGRhbiBjaGk6ICJIaWVuIHNvIGRhbiBlbSBjdWEgY2hpIA0KdmFvIGRheSBraGEgZG9u ZywgY2h1IGh1b25nIGxvYyBvIFBoaSBUaHV5ZW4gbGEgZHUgcm9pLCB0YXQgY2EgbG9pIG5odWFu IHRodSBkdW9jIHR1IA0KdGllbSBjYXQgdG9jIHRoYW5nIGVtIHBoYWkgbm9wIGNobyBjaGkgZGUg bnVvaSBjaHVuZyBubywgbmV1IGtob25nIGNoaSBzZSBjaG8gZGFuIGVtIGRpIA0KcXVheSBwaGEg dmEgdGh1IHRpZW4gYmFvIGtlIG8gY2FjIG5oYSBoYW5nLCB2dSB0cnVvbmcsIGJhdCBrZSBsYSBj dWEgYWkuLi4iLg0KDQpEdW5nICJIYSIgY29uIHJhIHlldSBzYWNoIGNobyBIYWkgIkJhbmgiIHBo YWkgZGFuIER1bmcgIkhhIiBkaSBnYXAgY2h1IHZ1IHRydW9uZyANClBoaSBUaHV5ZW4gZGUgdGhv bmcgY2FvIGNhYyBkaWV1IGtpZW46IFRodSBuaGF0LCBjaG8gRHVuZyAiSGEiIGRvbmcgZ29wIGNv IHBoYW4gMSANCnRyaWV1IGRvbmcgbmh1bmcgbG9pIG5odWFuIHRoaSBwaGFpIGNoaWEgYmFuZyBj byBkb25nIGNhbyBuaGF0LiBUaHUgaGFpIGxhLCBjaHUgdnUgDQp0cnVvbmcgUGhpIFRodXllbiBw aGFpIG11YSBsdW9uIGNhbiBuaGEgc28gMjEgVGh1IEtob2EgSHVhbiBjaG8gSGFpICJCYW5oIiB2 YSANCkR1bmcgIkhhIi4gVGh1IGJhLCBIYWkgIkJhbmgiIGJvIE5hbSBDYW0gdmUgcGh1IER1bmcg IkhhIiBtbyBzb25nIGJhYywgbW9pIG5nYXkgDQpob2F0IGRvbmcgYmEgY2EgdmEgbmh1b25nIGNo byBIYWkgIkJhbmgiIHBodSB0cm9uZyBjb2kgbW90IGNhLCBiYW5nIGtob25nIER1bmcgIkhhIiAN CnNlIHF1YXkgY2hvIGNhIHRoYXkgbGFuIHRvIGhldCBkdW9uZyBsYW0gYW4uDQoNClRhdCBjYSBu aHVuZyB5ZXUgc2FjaCBjdWEgRHVuZyAiSGEiICBIYWkgIkJhbmgiIGRldSBiYW8gY2FvIGxhaSBj aGkgdGlldCB2b2kgIE5hbSANCkNhbS4gVGhlbyBsZW5oIGN1YSBOYW0gQ2FtLCBIYWkgIkJhbmgi IHRyYSBsb2kgdGhhbmcgdHVuZyB2b2kgRHVuZyAiSGEiIHJhbmcsIGNodSANCnZ1IHRydW9uZyBQ aGkgVGh1eWVuIGtob25nIGNoYXAgbmhhbiB5ZXUgc2FjaCB0cmVuLg0KDQpEZSBjaHVuZyBtaW5o IGxvaSBub2kgY3VhIG1pbmgga2hvbmcgcGhhaSBjaGkgZGUgZ2lvIGJheSwgZ2l1YSB0aGFuZyA5 LzIwMDAsIER1bmcgDQoiSGEiIGNobyBkYW4gZW0gbWFuZyB0b2kgdGllbSBjYXQgdG9jIGN1YSBI YWkgIkJhbmgiIDIgeG8gcGhhbiBuZ3VvaSB2YSB0dW9pIGtoYXAgDQpuaGEsIER1bmcgIkhhIiBj b24gYnVvYyBIYWkgIkJhbmgiIHBoYWkgZ28gbWF5IGxhbmggIG8gdGllbSBjYXQgdG9jOiAiQ2hv IGNoaSBtdW9uIA0KZG8gdmkgY2hpIGtobyBraGFuIHF1YSwgY2h1YSBzYW0gZHVvYyIuDQoNCkNo dWEgZHVuZyBvIGRvLCBEdW5nICJIYSIgY2hvIGRhbiBlbSB0b2kgcXVheSBwaGEgdnUgdHJ1b25n IE1vbmFjbyBjdWEgTmFtIENhbSwgDQp0byBjaHVjIGNoZW0gbmhhdSB0YWkgbW90IHNvbmcgYmFj IG8gY2F1IEhhbmcsIERvbmcgTmFpICB2YSBuaHVuZyBzb25nIGJhYyBraGFjIGRvIA0KTmFtIENh bSBiYW8ga2UuIERlbSAyOS85LzIwMDAsIER1bmcgIkhhIiB0aWVwIHR1YyAiZGFpIG5hbyIgdnUg dHJ1b25nIFBoaSBUaHV5ZW4gDQpiYW5nIGNhY2ggdG8gY2h1YyBtb3QgdGllYyBzaW5oIG5oYXQg Z2lhIGRlIGNobyBraG9hbmcgMjAgZGFuIGVtIHZhbyB2dSB0cnVvbmcgbmF5IA0KcXVheSBwaGEg bmVtIG1hbSB0b20sIGNodW90IGNoZXQsIHBoYW4gbmd1b2ksIHJhbiByZXQgeHVvbmcgc2FuIG5o YXkuIERlbSBob20gYXksIA0KaG9uIDIwMCB0aHVjIGtoYWNoIGRhbmcgbmhheSBuaG90IG8gdnUg dHJ1b25nIFBoaSBUaHV5ZW4gYmkgbW90IHBoZW4gaG9uIHZpYSBsZW4gDQptYXksIG1hbmggYWkg bmF5IHRpbSBkdW9uZyB0aG9hdCBraG9pIHZ1IHRydW9uZy4gU2F1IGRvIER1bmcgIkhhIiB0aWVw IHR1YyBiYXQgSGFpIA0KIkJhbmgiIHBoYWkgYnVvYyBjaHUgUGhpIFRodXllbiB0aHVjIGhpZW4g eWV1IHNhY2ggZGEgZGUgcmEsIG5ldSBraG9uZyBEdW5nICJIYSIgc2UgDQp0aWVwIHR1YyBxdWF5 IG5hdCB2dSB0cnVvbmcuLi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1Bh Z2VzLzIwMTAzNC8yMDEwMDgyMjAwMTkyOS5hc3B4IE4uVHVhbiBEYXQsIEFuaDogRGllcCBEdWMg TWluaCAyMi8wOC8yMDEwIDA6MTkgDQoNClRQLkhDTTogVGh1IHBoaSB0dSBkb25nIG8gdG8gdmFv IHRydW5nIHRhbSBUUC5IQ006IFZhbiBjaHVhIHRodXlldCBwaHVjICANCiANCkdpYWkgcGhhcCBF UlAgc2UgY2hhbmcgdGhlIGdpdXAgZ2lhaSBxdXlldCB0aW5oIHRyYW5nIGtldCB4ZSB0aHVvbmcg dHJ1YyB0aGUgbmF5IHRhaSBUUC5IQ00gDQooQW5oIGNodXA6IENhbmgga2V0IHhlIG5naGllbSB0 cm9uZyBvIFRQSENNKSANCg0KT25nIFBoYW4gUGh1bmcgU2FuaCAtIFBobyBjaHUgdGljaCB0aHVv bmcgdHJ1YyBIaWVwIGhvaSBLaG9hIGhvYyBreSB0aHVhdCB4YXkgZHVuZyANClRQLkhDTSwgYmF5 IHRvOiBDaGkgbmh1IG1vdCBjaGllYyBhbyBkZXAgDQpOZXUgaGUgdGhvbmcgRVJQIGJhdCBkYXUg dGh1IHBoaSB0dSBuYW0gMjAxMiBuaHUgbG8gdHJpbmggY3VhIElURCB0aGkgc2UgY2hhbmcgZ2lh aSANCnF1eWV0IGR1b2MgZ2kga2hhIGRpIGNobyB2YW4gZGUgZ2lhbyB0aG9uZy4gQm9pIGl0IG5o YXQgcGhhaSBkZW4gbmFtIDIwMjAgdGhpIGdpYW8gdGhvbmcgDQpUUCBtb2kgZGF0IGR1b2MgYnVv YyBjaHV5ZW4gYmllbiB2b2kgaGFuZyBsb2F0IGNvbmcgdHJpbmggbG9uIHZhIG1ldHJvLiBLaGkg ZGEgeGF5IA0KZHVuZyBkdW9jIGNvIGJhbiBwaGFuIGdvYyB0aGkgdmllYyBhcCBkdW5nIGdpYWkg cGhhcCBuZ29uIG5odSBFUlAgbW9pIHBoYXQgaHV5IGR1b2MgDQpoaWV1IHF1YS4gQ3VuZyBraG9u ZyBuZW4gbmdoaWVuIGN1dSBFUlAgdHJ1b2Mgcm9pICJjYXQgdmFvIHR1IiwgY2hvIHRob2kgZGll bSBwaHUgaG9wIA0KdGhpIGRlbSByYSBhcCBkdW5nIG5odSBtb3Qgc28geSBraWVuIGRlIHh1YXQs IGJvaSBjYWMgc28gbGlldSB2ZSBkYW4gc28sIG1hdCBkbyBsdXUgdGhvbmcsIA0KdG8gY2h1YyBn aWFvIHRob25nLCBjb25nIG5naGUuLi4gc2UgdGhheSBkb2kgdGhlbyB0dW5nIHRob2kgZGllbSB2 YSBrZXQgcXVhIG5naGllbiBjdXUgDQpjdWEgbmdheSBob20gbmF5IHNlIHNvbSB0cm8gbmVuIGxh YyBoYXUgdmFvIG5nYXkgbWFpLiBEbyBkbywgdHJvbmcgZGlldSBraWVuIGdpYW8gDQp0aG9uZyBo aWVuIG5heSwgVFAuSENNIGNhbiB0YXAgdHJ1bmcgbmhhbiBsdWMgdmEgbmd1b24gdm9uIGNobyBj YWMgZHUgYW4ga2hhYyBjYXAgDQp0aGlldCBob24sIGNvbiB5IHR1b25nIEVSUCBnaW9uZyBuaHUg bW90IGNoaWVjIGFvIGRlcCwga2hvYW4gaGF5IG11YSB0cm9uZyB0aG9pIGRpZW0gDQpuYXkga2hp IG1hIHRhIGNhbiAibWFjIGFtIiBjYWkgZGEgcm9pIG1vaSB0aW5oIGNodXllbiAibWFjIGRlcCIg c2F1LiANCg0KaHR0cDovL3RpbnR1Yy50aW1uaGFuaC5jb20vcGhhcC1sdWF0L2FuLW5pbmgtdHJh dC10dS8yMDEwMDkxNS8zNUFBQkEzQy9UUEhDTS1OdS1naWFtLWRvYy1sdWEtZGFvLXRpbmgtdmkt Y2hpZW0tZG9hdC0yNS10eS1kb25nLmh0bSAxNS8wOS8yMDEwIDA4OjIzOjAwDQoNClRQLkhDTTog TnUgZ2lhbSBkb2MgbHVhIGRhbyB0aW5oIHZpLCBjaGllbSBkb2F0IDIsNSB0eSBkb25nIA0KDQpo dHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvMTMtbmFtLS02MDAtdGktZG9uZy0tdGFuLW5h dC8yMDA5My8xMjk5NDMubGFvZG9uZyAxMDozMCBQTSwgMTIvMDMvMjAwOQ0KDQpUUCBIQ006IGR1 b25nIE5ndXllbiBIdXUgQ2FuaCAtIDEzIG5hbSArIDYwMCB0aSBkb25nID0gdGFuIG5hdCENCg0K U3VvdCA1IG5hbSB4YXkgZHVuZywgOCBuYW0gZHVhIHZhbyBraGFpIHRoYWMsIGR1b25nIE5ndXll biBIdXUgQ2FuaCBjaHVhIG1vdCBuZ2F5IGxhbmggbGFuLCANCnBoYW5nIHBoaXUuIEN1bmcgbmdh biBheSB0aG9pIGdpYW4sIG5nYW4gc2FjaCB0aGFuaCBwaG8gZGEgdG9uIHZhbyBjb24gZHVvbmcg bmF5IGtob2FuZyA2MDAgdGkgDQpkb25nIG5odW5nIHJvdCBjdW9jIGRlbiBuYXksIG5vIHZhbiB0 YW4gbmF0ISANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwOC9DaGF5LXJ1 aS14dW9uZy1nby10aGlldC1oYWktaGFuZy10eS1kb25nLTkyNzQ3Ny8gVENOIDIxOjUwIDA3LzA4 LzIwMTAgKEdNVCs3KQ0KDQpUUCBIQ006IENoYXkgcnVpIHh1b25nIGdvLCB0aGlldCBoYWkgaGFu ZyB0eSBkb25nDQoNCjI1MDBtMiBuaGEgeHVvbmcgdHJvbmcgZG8gY28gbmhpZXUgdGhhbmggcGhh bSwgdHJhbmcgdGhpZXQgYmkgdmEgZGF5IGNodXllbiBzYW4geHVhdCANCmNvIHRyaSBnaWEgaGFu ZyB0aSBkb25nIGRhIGJpIHRoaWV1IHJ1aSB0cm9uZyB2dSBjaGF5IHhheSByYSB2YW8gY2hpZXUg bmdheSA3LzguIA0KDQpodHRwOi8vc2d0dC52bi9UaG9pLXN1LzEyNjIwMS9UaWVuLW1hdC1udW90 LXBoYWktY3VjLXR1Yy5odG1sIFZ1IE5ndXllbiAyMS4wNy4yMDEwLCAxNTozNiAoR01UKzcpIA0K DQpUUCBIQ006IE11YSBiYW4gbmhhIGRhdCB0cmVuIGdpYXkgLSBUaWVuIG1hdCwgbnVvdCBwaGFp IGN1YyB0dWMhIA0KDQpOaGlldSBkdSBhbiB0aHUgdGllbiB4b25nLCBsYW5oIG1hdCAtIE5ndW9p IGRhbiBkb25nIHRpZW4gaG9uIDYgbmFtIHZhbiBjaHVhIHRoYXkgbmhhIA0KZGF1IChkdSBhbiBQ aHVvYyBLaWVuIC0gTmhhIEJlLCBUUC5IQ00gZ2lhaSBkb2FuIDMpIA0KDQpLaG9uZyByaWVuZyBn aSBkdSBhbiBQaHVvYyBLaWVuZywgbmhpZXUga2hhY2ggaGFuZyBtdWEgbmhhIHRyZW4gZ2lheSBj dWEgY2FjIGR1IGFuIA0Ka2hhYyBjdW5nIGNoaXUgY2h1bmcgY2FuaCBuZ28sIG5odTogDQotIER1 IGFuIGJhdCBkb25nIHNhbiBOZ3V5ZW4gUXV5ZW4gUGxhemEgdGFpIHF1YW4gQmluaCBUYW47DQot IER1IGFuIE1vbnRhbmEgKHF1YW4gVGFuIFBodSwgVFAuSENNKTsNCi0gSGFuZyBsb2F0IGR1IGFu IGtoYWMgbmh1IFRoZSBBZG9uaXMgMSwgMiAocXVhbiBHbyBWYXApLCBjYW4gaG8gUm95YWwgKHF1 YW4gQmluaCBUaGFuaCkuLi4gY3VuZyBiYW4gbmhhIHRyZW4gZ2lheS4gDQoNCkhhbmcgbG9hdCBz YWkgcGhhbSBiaSBwaGF0IGhpZW4gbmh1bmcgbmd1b2kgZGFuIHlldSBjYXUgaG9hbiBsYWkgdGll biB0aGkgY2h1IGRhdSB0dSBsYW4gDQp0cmFuaCwgdGhpZXQgaGFpIHRodW9jIHZlIGtoYWNoIGhh bmcuIA0KDQpodHRwOi8vdGludHVjb25saW5lLnZpZXRuYW1uZXQudm4vdm4vdGh1b25nbmhhdC8y MTQ0NjcvaW5kZXguaHRtbCAyNS8wMy8yMDA5IDE1OjIzIChHTVQgKzcpDQoNClRQIEhDTTogIkN1 b3AiIGRhdCBraG8gYmFpIGNvbmcsIG8gYXQgImJpZW4iIHRoYW5oIG5oYSByaWVuZyANCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMDkvMDkvODY3MTY1LyAxODozMiwgMDYv MDkvMjAwOSAoR01UKzcpDQoNClRQLkhDTSBsYW5nIHBoaSAxMDAgdHJpZXUgbTIgZGF0IGNvbmcg DQoNCmh0dHA6Ly93d3cuYmFudGlubmhhZGF0LnZuL2xhbmctcGhpLW1hdC1iYW5nLXRhaS10cGhj bS00ODkuaHRtbCBUaGVvIERhdSBUdSAwNy8wMS8yMDEwDQoNCkxhbmcgcGhpIG1hdCBiYW5nIHRh aSBUUC5IQ00gDQoNCkNhYyBraHUgZGF0IGRvIGNhYyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgcXVh biBseSB0YWkgVFAuSENNIHRodW9uZyBjbyB0eSBsZSBzdSBkdW5nIA0KZGF0IGNodWEgZGVuIDUw JS4gQ2FjIGtlIGhvYWNoIHRodSBob2kgY3VuZyBiYXQgZGF1IHR1IG5hbSAyMDAwLCBuaHVuZyBk ZW4gbmF5LCBoaWV1IA0KcXVhIHZhbiBjb24gcmF0IGhhbiBjaGUuDQoNCk9uZyBUcmFuIE5hbSBU cmFuZywgUGhvIGdpYW0gZG9jIFNvIFRhaSBjaGluaCBUUC5IQ00gY2hvIGJpZXQsIG5hbSAyMDA5 LCBUUCB0aHUgDQpob2kgIDQ5IGRpYSBjaGkgbmhhIGRhdCAodm9pIGRpZW4gdGljaCB0cmVuIDEx Ni4wMDAgbTIpIGNvIGhpZXUgcXVhIHN1IGR1bmcgdGhhcC4NCg0KQ29uIHNvIG5heSBsYSBrZXQg cXVhIGxvbiBuaGF0IHRyb25nIGNvbmcgdGFjIHRyZW4ga2UgdHUgbmFtIDIwMDAgdmEgY2hpZW0g ZGVuIDM2JSB0cmVuIA0KdG9uZyBzbyBkaWEgY2hpIGRhIHRodSBob2kuDQoNCk5odSB2YXksIHRp bmggZGVuIHRob2kgZGllbSBuYXksIFRQIGRhIHRodSBob2kgZHVvYyAxNzcgZGlhIGNoaSBuaGEg ZGF0LCB2b2kgZGllbiB0aWNoIA0KdHJlbiAzOTUuMjg4IG0yLiBEYSBwaGFuLCBuaHVuZyBraHUg ZGF0IGRhIHRodSBob2kgc2UgZHVvYyBibyB0cmkgeGF5IGR1bmcgY2FjIGNvbmcgDQp0cmluaCBj b25nIGNvbmcgKHRydW9uZyBob2MsIGJlbmggdmllbi4uLikuIE5nb2FpIHJhLCBUUCBjdW5nIGRh IHRvIGNodWMgZGF1IGdpYSB2YSANCmNodXllbiBuaHVvbmcgcXV5ZW4gc3UgZHVuZyBkYXQgY3Vh IDE5IGRpYSBjaGkgZGF0IGRlIHRhbyBuZ3VvbiB0aHUgbmdhbiBzYWNoLg0KDQooVGluaCBkZW4g dGhvaSBkaWVtIG5heSwgVFAuSENNIGRhIHRodSBob2kgZHVvYyB0cmVuIDM5NS4yODggbTIuIEFu aCBtaW5oIGhvYS4pDQoNCk1vdCB0aG9uZyBrZSBraGFjIGR1b2MgcGhhbiBhbmggdHJvbmcgY2h1 b25nIHRyaW5oICJOb2kgdmEgTGFtIiBjdWEgRGFpIFRydXllbiBoaW5oIA0KVFAuSENNIHZlIHZh biBkZSB0cmVuIGNobyB0aGF5LCBkZW4gY3VvaSBuYW0gMjAwOCwgVFAgY28gNDEwIGtodSBkYXQg ZG8gY2FjIGRvYW5oIA0KbmdoaWVwIG5oYSBudW9jIGRhbmcgc3UgZHVuZyBob2FjIHF1YW4gbHks IHZvaSBkaWVuIHRpY2ggZ2FuIDYgdHJpZXUgbTIuDQoNClRyb25nIGRvLCBkaWVuIHRpY2ggZGF0 IHN1IGR1bmcgZHVuZyBtdWMgZGljaCBvIHZhbyBraG9hbmcgMi41MDMuMDAwIG0yLCB2YSBkaWVu IHRpY2ggDQpjaG8gdGh1ZSB0cmFpIHF1eSBkaW5oIGxhIDI0LjUzNCBtMi4gVHJvbmcga2hpIGRv LCB0aGVvIG9uZyBOZ3V5ZW4gVmFuIEhvbmcsIFRydW9uZyANCnBob25nIGtpbmggdGUgZGF0LCBT byBUYWkgbmd1eWVuIE1vaSB0cnVvbmcgVFAuSENNLCBzbyBtYXQgYmFuZywga2hvIGJhaSBsYW5n IHBoaSANCnRpbmggZGVuIHRoYW5nIDEwLzIwMDkgbGEgMjIwIGhhLg0KDQpPIHZhaSB0cm8gZ2lh bSBzYXQsIG9uZyBOZ3V5ZW4gTWluaCBIb2FuZywgbmd1eWVuIFRydW9uZyBiYW4gS2luaCB0ZSBO Z2FuIHNhY2ggDQpIRE5EIFRQIGNobyByYW5nLCBCaW5oIFRhbiwgcXVhbiA4LCBDb25nIHR5IEx1 b25nIHRodWMsIENvbmcgdHkgS2hvIGJhaSBsYSBuaHVuZyANCiJkaWEgY2hpIiBsYW5nIHBoaSBt YXQgYmFuZyBjYW8sIHZvaSB0aSBsZSBzdSBkdW5nIGRhdCBkdW9pIDUwJS4gVGhhbSBjaGksIGNv biBzbyBuYXkgdGFpIA0KVG9uZyBjb25nIHR5IEx1b25nIHRodWMgbWllbiBOYW0gY2h1YSBkZW4g MzAlLiBUaGVvIGRvLCBkb24gdmkgbmF5IGRhbmcgc28gaHV1IA0KMzA3IG1hdCBiYW5nLCB2b2kg ZGllbiB0aWNoIHRyZW4gMzAwLjAwMCBtMiBuaHVuZyBkaWVuIHRpY2ggc3UgZHVuZyBjaG8gMTk1 IGtobyBiYWkgbGFpIA0KY2h1YSB0b2kgMTAwLjAwMG0yLg0KDQpTdSBsYW5nIHBoaSBkYXQgZG8g dGhpIGxhIGtob25nIG5obywgbmh1bmcgcXVhIHRyaW5oIHRodSBob2kgbGFpIGRpZW4gcmEgcXVh IGNoYW0uIFZlIHZhbiANCmRlIG5heSwgVFMuIFRyYW4gRHUgTGljaCwgKG5ndXllbiBWaWVuIHRy dW9uZyBWaWVuIEtpbmggdGUgVFAuSENNKSBjaG8gcmFuZywgdHJ1b2MgDQpoZXQsIGRhdCBjb25n IGRvIGNhYyBkb2FuaCBuZ2hpZXAgbmhhIG51b2MgcXVhbiBseSB0aHVvbmcgY28geWV1IHRvIGxp Y2ggc3UsIGhvbiBudWEsIA0KdHJvbmcgcXVhIHRyaW5oIGNvIHBoYW4gaG9hLCBkb2FuaCBuZ2hp ZXAgZGEgdHUgY2h1eWVuIGRvaSBjaHVjIG5hbmcgdmEgaG9wIHRodWMgaG9hIA0KY2FjIGtodSBk YXQgdmFvIHRhaSBzYW4gY28gZGluaCBjdWEgZG9hbmggbmdoaWVwLg0KDQpNYXQga2hhYywgQm8g VGFpIGNoaW5oIHZhbiBjaHVhIGNvIGNvIGNoZSBybyByYW5nIGNobyB2aWVjIHRodSBob2kgZGF0 IHZhIHRhaSBzYW4gdHJlbiANCmRhdC4gRG8gZG8sIG5oaWV1IGRvYW5oIG5naGllcCBkYSBrZW8g ZGFpIHRob2kgaGFuIGdpYW8gdHJhIGRlIGh1b25nIGNoZW5oIGxlY2ggZ2lhIGtoaSANCmNobyB0 aHVlIG1hdCBiYW5nLiBOZ29haSByYSwgdmllYyBuaGlldSBkdSBhbiBjdWEgY2FjIGRvYW5oIG5n aGllcCB0dSBuaGFuICJ0cmVvIiBoYW5nIA0KY2h1YyBuYW0gc2F1IGtoaSBkdW9jIGNhcCBwaGVw IGRhIHRhbyBzdWMgY2FuIGxvbiBkb2kgdm9pIHZpZWMgdGh1IGhvaSBkYXQgc3UgZHVuZyBrZW0g DQpoaWV1IHF1YSB0YWkgY2FjIGRvYW5oIG5naGllcCBuaGEgbnVvYyB0cmVuIGRpYSBiYW4gVFAu SENNLiAgIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVFAtSENNLU5oaWV1LWR1LWFuLWNo b25nLW5nYXAtZGFtLWNoYW4tdGFpLWNoby80NTI0NjcwNC8xNTcvIE5ndXllbiBEaW5oIE11b2kg MTcvNy8yMDA3LCAwMDoxMSBHTVQrNyANCg0KVFAgSENNOiBOaGlldSBkdSBhbiBjaG9uZyBuZ2Fw ICJkYW0gY2hhbiB0YWkgY2hvIg0KDQpDaGlldSAxNi43LCB0YWkgYnVvaSBob3AgYmFvIGRvIFNv IEdpYW8gdGhvbmcgLSBDb25nIGNoaW5oIHRvIGNodWMsIG9uZyBUaGFpIE1pbmggSG9hLCANClBo byBnaWFtIGRvYyBDb25nIHR5IHRob2F0IG51b2MgZG8gdGhpLCBjaG8gYmlldCB2aWVjIHRyaWVu IGtoYWkgY2FjIGR1IGFuIHRob2F0IG51b2MgDQpjaG9uZyBuZ2FwIHRyZW4gZGlhIGJhbiBUUCBk YW5nIGdhcCByYXQgbmhpZXUgdnVvbmcgbWFjLiANCg0KRGllbiBoaW5oOiBkdSBhbiBraWVtIHNv YXQgdHJpZXUgY2F1IEJvbmcsIEJpbmggVHJpZXUsIEJpbmggTG9pLCBSYWNoIExhbmcsIFEuQmlu aCANClRoYW5oIChkdW9jIFVCTkQgVFAgcGhlIGR1eWV0IG5nYXkgMTguNi4yMDAyLCB0b25nIG11 YyBkYXUgdHUgMTkyLjE4NC4wMDAuMDAwIA0KZG9uZykgbmhpZXUgZ29pIHRoYXUgZGEgYmkgdGFt IG5ndW5nIHRoaSBjb25nIGRvIHZ1b25nIGdpYWkgcGhvbmcgbWF0IGJhbmcgdmEgaG8gc28gDQp0 aGlldCBrZSBreSB0aHVhdC4gRHUgYW4gbmFvIHZldCBtdW9uZyBOaGF0IEJhbiAoUS5UYW4gQmlu aCwgUS5QaHUgTmh1YW4pIGR1b2MgcGhlIA0KZHV5ZXQgbmdheSAyLjYuMjAwNCB2b2kgdG9uZyBt dWMgZGF1IHR1IDk2LjM3My4wMDAuMDAwIGRvbmcsIHRvYW4gYm8gZ29pIHRoYXUgc28gMSBjdWEg DQpkdSBhbiBkZW4gbmF5IHZhbiBjaHVhIHRoaSBjb25nIGRvIFEuVGFuIEJpbmggY2h1YSBnaWFp IHBob25nIG1hdCBiYW5nIGN1YSA0NSBobyBkYW4sIA0KZ29pIHRoYXUgc28gMiBjdW5nIGJpIG5n dW5nIHRyZSB0dSB0aGFuZyAxLjIwMDcgZG8gY2h1YSBiYW4gZ2lhbyBtYXQgYmFuZyAxNTUsNW0g ZG9hbiANCmN1b2kgY29uZyB0cmluaC4NCg0KRHUgYW4gY2FpIHRhbyBoZSB0aG9uZyB0aG9hdCBu dW9jIFRvIEhpZW4gVGhhbmggLSAgY29uZyBCYSBYZXAgKFEuMywgUS4xMCkgY28gdG9uZyANCm11 YyBkYXUgdHUgNzQuODU1LjAwMC4wMDAgZG9uZywgZHVvYyBVQk5EIFRQIHBoZSBkdXlldCBuZ2F5 IDI2LjEwLjIwMDEsIGN1bmcgDQpkYW5nIGdhcCBraG8ga2hhbiB0YWkgZ29pIHRoYXUgeGF5IGxh cCBzbyAyLiBUaGVvIGRvLCBkdW9uZyBUcmFuIFZhbiBEYW5nIGRvYW4gdHUgDQpDYWNoIE1hbmcg VGhhbmcgOCBkZW4gZG9hbiBkdW9uZyBzYXQgZGFuIHZhbyBOaGEgbWF5IHRvYSB4ZSBTYWkgR29u IGhpZW4ga2hvbmcgdGhlIA0KdHJpZW4ga2hhaSBsYXAgZGF0IGNvbmcgaG9wIGRvIGNodWEgdGhl IGRpIGRvaSBsdW9pIGRpZW4gdHJ1bmcgdGhlIHZhIHRyYW0gYmllbiBhcCwgdnVvbmcgDQpuaGEg ZGFuLi4uIFRoZW8gU28gR1RDQywgaGF1IGhldCBjYWMgZHUgYW4gY2hvbmcgbmdhcCAiZGFtIGNo YW4gdGFpIGNobyIgZG8gVFAuSENNIA0KaGllbiB0aGlldSBxdXkgbmhhIHRhaSBkaW5oIGN1IGNo byBuZ3VvaSBkYW4gYmkgZ2lhaSB0b2EgdGFpIGNhYyBkdSBhbiwgdHJvbmcga2hpIGNodW9uZyAN CnRyaW5oIHhheSBkdW5nIDEwLjAwMCBjYW4gbmhhIHBodWMgdnUgZ2lhaSB0b2Ega2VuaCByYWNo IGRlbiBuYXkgdmFuIGNodWEgY28uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uaGFkYXQudm4vbmV3 cy9sb2FkL2lkLTI3MzAgKFRoZW8gRGF0IFZpZXQpIDAxLzEyLzIwMTAgOToxMyBBTQ0KDQpUcC5I Q006IExhbmcgcGhpIGhhbmcgdHJhbSBoYSBkYXQgDQoNClRyb25nIGtoaSB0cnVvbmcgaG9jLCBu aGEgbyB4YSBob2ksIGNhbiBobyB0YWkgZGluaCBjdS4uLiBraG9uZyB0aW0gcmEgZGF0IGRlIHhh eSwgdGhpIGhhbmcgDQp0cmFtIGhhIGRhdCBvIG5odW5nIHZpIHRyaSAidmFuZyIgcXV5IGhvYWNo IGxhbSBzYW4gZ29sZiBkYW5nIGJpIGxhbmcgcGhpIG5oaWV1IG5hbSBxdWEuDQoNClhpbiBzYW4g Z29sZiBkZSB4YXkuLi4gYmlldCB0aHUNCg0KVGhlbyBiYW8gY2FvIGN1YSBCbyBUYWkgbmd1eWVu IHZhIE1vaSB0cnVvbmcsIGhpZW4gY2EgbnVvYyBjbyAxOSBzYW4gZ29sZiBob2F0IGRvbmcsIA0K NzAgZHUgYW4ga2hhYyBkYW5nIGR1b2MgcXV5IGhvYWNoIHhheSBkdW5nLiBUcm9uZyBkbywgVHAu SENNIGNvIDYgZHUgYW4gc2FuIGdvbGYgZGEgDQpkdW9jIGNhcCBwaGVwLCBuaHVuZyB0aHVjIHRl IGNoaSBjbyBtb3QgZHUgYW4gZGkgdmFvIGhvYXQgZG9uZyB0dSBuYW0gMTk5NTsgYm9uIGR1IGFu IA0KZGFuZyBob2FuIHRhdCBjb25nIHRhYyBib2kgdGh1b25nLCBnaWFpIHBob25nIG1hdCBiYW5n OyBtb3QgZHUgYW4gZGEgIGJpICBjaGFtIGR1dCBob2F0IA0KZG9uZyB0cnVvYyB0aG9pIGhhbiB2 YSBkYSB0aHUgaG9pIGdpYXkgcGhlcCBkYXUgdHUuDQoNCkRpZXUgZGFuZyBjaHUgeSBsYSBjYWMg ZHUgYW4gc2FuIGdvbGYgbmF5IGRldSBjbyBxdXkgbW8gc3UgZHVuZyBoYW5nIHRyYW0gaGEgZGF0 IG5odSANCmR1IGFuIHNhbiBnb2xmIExhbSBWaWVuIHRhaSBwaHVvbmcgTG9uZyBCaW5oIHZhIExv bmcgVGhhbmggTXkgKHF1YW4gOSkgY28gcXV5IG1vIA0Kc3UgZHVuZyAzMDAgaGE7IGR1IGFuIHNh biBnb2xmIHRhaSBwaHVvbmcgQW4gUGh1LCBxdWFuIDIgc3UgZHVuZyBob24gMTMyIGhhOyBkdSBh biBzYW4gDQpnb2xmIEdTIHRhaSB4YSBUYW4gVGhvbmcgSG9pLCBodXllbiBDdSBDaGkgKHRodW9j IEtodSBkbyB0aGkgdGF5IGJhYyBUcC5IQ00pIHN1IA0KZHVuZyAyMDAgaGE7IGR1IGFuIHNhbiBn b2xmIFRhbiBTb24gTmhhdCAocXVhbiBUYW4gQmluaCkgc3UgZHVuZyBob24gMTU3IGhhIGRhdDsg ZHUgDQphbiBzYW4gZ29sZiBTaW5nIFZpZXQgdGFpIHhhIExlIE1pbmggWHVhbiAoaHV5ZW4gQmlu aCBDaGFuaCkgY28gcXV5IG1vIHN1IGR1bmcgMzAwIA0KaGEuDQoNCkJhbyBjYW8gY3VhIFVCTkQg VHAuSENNIHZlIHRpbmggaGluaCBzdSBkdW5nIHNhbiBnb2xmIHRyZW4gZGlhIGJhbiBjaG8gdGhh eSwgdmllYyANCnRodWMgaGllbiBxdWEgbmhpZXUgZHUgYW4gc2FuIGdvbGYgY2hpZW0gZGllbiB0 aWNoIGRhdCBub25nIG5naGllcCByYXQgbG9uOyBob24gbnVhIGNob2kgDQpnb2xmIGtob25nIHBo YWkgbGEgYm8gbW9uIHRoZSB0aGFvIHF1YW4gY2h1bmcsIHRyb25nIGtoaSBjYWMgY29uZyB0cmlu aCBjb25nIGNvbmcgdmEgDQpwaHVjIGxvaSB4YSBob2kgZGFuZyB0aGlldSBjYSBkaWEgZGllbSB2 YSBxdXkgbW8uDQoNCk1hdCBraGFjLCB2aWVjIGRlbiBidSBnaWFpIHRvYSBrZW8gZGFpLCBjaGFt IHRyaWVuIGtoYWkgZHUgYW4gYW5oIGh1b25nIHRvaSBkb2kgc29uZyBjdWEgDQpuZ3VvaSBkYW4g YmkgdGh1IGhvaSBkYXQuIE1vdCBzbyBkdSBhbiBjbyBtb3QgcGhhbiBkaWVuIHRpY2ggZGF0IGR1 b2Mgc3UgZHVuZyBjaG8gbXVjIA0KZGljaCBraG9uZyBwaGFpIHNhbiBnb2xmIG5odTogbmhhIGhh bmcsIHRydW5nIHRhbSB0aHVvbmcgbWFpLCBraHUgdnVpIGNob2kgZ2lhaSB0cmkgliANCnRoZSBk dWMgdGhlIHRoYW8sIG5oYSBvIJYgYmlldCB0aHUgZGUgYmFuIHZhIGNobyB0aHVlLCBraHUgbmdo aSBkdW9uZy4NCg0KIlRyZW8iIDgwMCBoYSBkYXQgbm9uZyBuZ2hpZXANCg0KVGhlbyBTbyBUYWkg bmd1eWVuIHZhIE1vaSB0cnVvbmcgVHAuSENNLCBkaWVuIHRpY2ggZGF0IG5vbmcgbmdoaWVwIGRh bmcgZ2lhbSANCm5oYW5oLCB0cm9uZyB2b25nIDE1IG5hbSBxdWEsIGRhIGdpYW0ga2hvYW5nIDE4 LjAwMCBoYSAodHJ1bmcgYmluaCwgbW9pIG5hbSBnaWFtIGRlbiANCjEuNDAwIGhhKS4gTmd1eWVu IG5oYW4gcGhvIGJpZW4geHVhdCBwaGF0IHR1IHRpbmggdHJhbmcgZGF0IG5vbmcgbmdoaWVwIGJp IGJvIGhvYW5nIGRvIA0KcXV5IGhvYWNoICJ0cmVvIi4gR29wIHBoYW4gdmFvIHN1IGxhbmcgcGhp IG5heSBwaGFpIGtlIGRlbiBjYWMgZHUgYW4gc2FuIGdvbGYgZGFuZyANCiJ0cmVvIiA4MDAgaGEg ZGF0IG5vbmcgbmdoaWVwLg0KDQpNb3QgdHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZ2F5IGJ1YyB4 dWMgZHUgbHVhbiBsYSBjYWMgZHUgYW4gc2FuIGdvbGYgbGF5IGRhdCBub25nIA0KbmdoaWVwIGRl biBidSB2b2kgZ2lhIHJlIG1hdC4gU2F1IGRvLCBiYW5nIG5oaWV1IGJpZW4gcGhhcCBjaHUgZGF1 IHR1IHhpbiBjaHV5ZW4gZG9pIA0KY29uZyBuYW5nIGhvYWMgeGluICJ0aGVtIiBkaWVuIHRpY2gg ZGF0IGRlIHhheSBkdW5nIGNhYyBraHUgZG8gdGhpLCB0aHVvbmcgbWFpLCBraGFjaCANCnNhbiBr aW5oIGRvYW5oIHZvaSBnaWEgY2FvLiBEdSBhbiBzYW4gZ29sZiBBbiBQaHUgbGEgZGllbiBoaW5o IG5oYXQuIER1IGNvIHZpIHRyaSAidmFuZyIgDQp0YWkga2h1IHZ1YyBxdWFuIDIgbmh1bmcgcXVh IGdhbiA5IG5hbSBjYXAgcGhlcCwgZHUgYW4gdmFuIGkgYWNoIHRyaWVuIGtoYWkgZG8gdnVvbmcg DQpkZW4gYnUgZ2lhaSB0b2EgdmkgZ2lhIGRlbiBidSBxdWEgdGhhcCB2YSBjdW5nIG5oYWMgdHJv bmcgYXAgZHVuZy4gR2lhIGRhdCBub25nIG5naGllcCANCmR1b2MgImFwIiB0YWkgZHUgYW4gbmF5 IGxhIDE1MC4wMDAgliAyMDAuMDAwIGRvbmcgbW90IG0yICh0aGVvIHBodW9uZyBhbiBwaGUgZHV5 ZXQgDQpuYW0gMjAwMykuIFNhdSBuaGlldSBsYW4ga2hpZXUgbmFpLCBjaHUgZGF1IHR1IGxhIENv bmcgdHkgQ1AgZGF1IHR1IHZhIHBoYXQgdHJpZW4gU2FpIA0KR29uIChDb25nIHR5IFNESSkgbmFu ZyBnaWEgZGVuIGJ1IGxlbiA4NzAuMDAwIGRvbmcgbW90IG0yLiBUdXkgbmhpZW4sIG11YyBnaWEg bmF5IA0KdmFuIHRoYXAgaG9uIG5oaWV1IGtoaSBkb2kgY2hpZXUgdm9pIGdpYSBib2kgdGh1b25n IGR1IGFuIGNvbmcgaWNoIChsYW0gZHVvbmcpIHRhaSBraHUgDQp2dWMgcXVhbiAyIGhpZW4gbmF5 IGRhIGxlbiB0b2kgMSw1IHRyaWV1IGRvbmcgbW90IG0yIGRhdCBub25nIG5naGllcC4gQ29uIG1h dCB0aWVuIA0KZHVvbmcgRG8gWHVhbiBIb3AgZGFvIGRvbmcgdHUgMTUgLSAyMCB0cmlldSBkb25n Lg0KDQpLaG9uZyBuaHVuZyB0aGUsIHRyb25nIHRvIHRyaW5oIHhpbiBwaGUgZHV5ZXQgcXV5IGhv YWNoIGNoaSB0aWV0IGR1IGFuIGN1YSBjaHUgZGF1IHR1LCANCmNhYyBoYW5nIG11YyB4YXkgZHVu ZyBkaWEgb2MgY3VuZyBuYW0gdHJvbmcgInRvcCIgZGF1IGRhbmggc2FjaDogRGF0IHhheSBkdW5n IGJpZXQgDQp0aHUgMTQ3LjYwMCBtMjsgZGF0IHhheSBkdW5nIG5oYSBsaWVuIGtlIGNvIHNhbiB2 dW9uIDUuODAwIG0yOyBjYW4gaG8gY2FvIGNhcCAxNSB0YW5nIA0KNi42NTAgbTI7IGtoYWNoIHNh biAxMiB0YW5nIDIuNjAwIG0yLi4uIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGluaHRyaS8y MDA4LzExLzgxMTM5Mi8gVGFuIFRodWFuICAxNzoxOSwgMDEvMTEvMjAwOCAoR01UKzcpDQoNClRQ LkhDTTogTGFuZyBwaGkga2hvIGJhaSBuaHVuZyB0aGlldSBkYXQgeGF5IHRydW9uZywgbmhhIHRh aSBkaW5oIGN1DQoNCi0gUmF0IG5oaWV1IGtobyBiYWkgYmkgYm8gaG9hbmcgaG9hYyBjaG8gdGh1 ZSBsYWkgc2FpIG11YyBkaWNoLCBuaHVuZyBkYXQgZGUgDQp4YXkgdHJ1b25nLCBuaGEgdGFpIGRp bmggY3UsIGNvbmcgdHJpbmggeGEgaG9pIGxhaSBraG9uZyBjby4gVHJvbmcga2hpIGRvLCB2aWVj IHRodSBob2kgY2FjIA0Ka2hvIGJhaSBuYXkgZGFuZyBnYXAgbmhpZXUgdHJhYyB0cm8uDQoNClNh bmcgMzEvMTAsIEJhbiBLaW5oIHRlIHZhIE5nYW4gc2FjaCBIRE5EIHRoYW5oIHBobyBIbyBDaGkg TWluaCBjbyBidW9pIGxhbSB2aWVjIA0Kdm9pIHF1YW4gOCB2ZSB0aW5oIGhpbmggc3UgZHVuZyBr aG8gYmFpIHRyZW4gZGlhIGJhbiB0aG9pIGdpYW4gcXVhLiBRdWFuIDggbGEgcXVhbiBuZ2hlbyAN Cm5oYXQgbmhpIHRyb25nIHZ1bmcgbm9pIHRoYW5oIGN1YSB0aGFuaCBwaG8gdm9pIHR5IGxlIGhv IG5naGVvIGNoaWVtIDEsNCUuIA0KDQpUb25nIHNvIGhvIGRhbmcgc29uZyB0cmVuIGtlbmggcmFj aCBsYSAyMyBuZ2hpbiBobyBjYW4gZ2lhaSB0b2EgZGVuIGJ1IHRhaSBkaW5oIGN1IG5oYW0gDQpj aGluaCB0cmFuZyBkbyB0aGkuIFRoZSBuaHVuZywgbW90IG5naGljaCBseSBtYSBjYWMgZGFpIGJp ZXUgdGhhbSBkdSBkYXQgcmEgbGEgdHJvbmcga2hpIA0KZGlhIHBodW9uZyBraG9uZyBjbyBkYXQg ZGUgeGF5IGR1bmcgY2h1bmcgY3UgcGh1YyB2dSB0YWkgZGluaCBjdSB2YSBjYWMgY29uZyB0cmlu aCANCnBodWMgbG9pIGtoYWMgdGhpIGNvIGhhbmcgdHJhbSBuZ2hpbiBtZXQgdnVvbmcgZGF0IHN1 IGR1bmcgbGFuZyBwaGksIHNhaSBtdWMgZGljaC4NCg0KQmFvIGNhbyBjdWEgcXVhbiA4IGNobyBi aWV0LCBoaWVuIHRvYW4gcXVhbiBjbyAxNTkga2hvIGJhaSB2b2kgdG9uZyBkaWVuIHRpY2ggNDM1 LDQgDQpuZ2hpbiBtMi4gVHJvbmcgc28gbmF5IGNvIDc3IGtobyBiYWkgZGFuZyBkdW9jIHF1YW4g a2llbiBuZ2hpIHRodSBob2ksIGNodXllbiBkb2kgDQpjb25nIG5hbmcgZGUgcGh1YyB2dSBjaHVv bmcgdHJpbmggdGFpIGRpbmggY3UgdmEgeGF5IGR1bmcgY2FjIGNvbmcgdHJpbmggcGh1YyBsb2kg DQp4YSBob2kuIFBoYW4gbG9uIGNhYyBjb25nIHRyaW5oIG5heSB0YXAgdHJ1bmcgbyBCZW4gQmlu aCBEb25nLCBQaGFtIFRoZSBIaWVuLi4uDQoNClRoZW8gVUJORCBxdWFuIDgsIGNoaSBjbyA1Ny8x NTkga2hvLCBiYWkgdm9pIGRpZW4gdGljaCBzdSBkdW5nIDE3NC42ODltMiBsYSBkdW9jIHN1IA0K ZHVuZyBkdW5nIG11YyBkaWNoLCBzbyBjb24gbGFpIGhhdSBuaHUgZGFuZyBiaSBibyB0cm9uZyBo b2FjIGNobyB0aHVlIGxhaSBzYWkgbXVjIGRpY2guIA0KRG8gdmllYyB0aHUgaG9pIG5odW5nIGto dSBkYXQgdHJlbiBraG8ga2hhbiAoZGFjIGJpZXQgbGEgbmh1bmcga2h1IGRhdCBkbyBUcnVuZyB1 b25nIA0KcXVhbiBseSksIGxhbmggZGFvIFVCTkQgUS44IHZ1YSBkZSBuZ2hpIHZvaSBsYW5oIGRh byBVQk5EIFRQIGNhbiBjbyBuaHVuZyBiaWVuIA0KcGhhcCBtYW5oIHRheSBob24gdHJvbmcgdmll YyB0aHUgaG9pIGRhdCBjb25nLCBuaGFtIHRyYW5oIHN1IGxhbmcgcGhpIG5odSBoaWVuIG5heS4g DQoNCihBbmg6IEhhbmcgY2h1YyBuZ2hpbiBjYW4gbmhhIHRyZW4gZGlhIGJhbiBxdWFuIDggcGhh aSBnaWFpIHRvYSBkZSBjaGluaCB0cmFuZyBkbyB0aGkgDQpuaHVuZyBxdXkgZGF0IHRhaSBkaW5o IGN1IGxhaSBjaHVhIGNvLCB0cm9uZyBraGkgZG8sIGtobyBiYWkgdG9hIGxhYyB0YWkgZGlhIHBo dW9uZyBuYXkgDQpkYW5nIGJpIGxhbmcgcGhpLiBBbmg6IFQuVGh1YW4uKSANCg0KSGFuZyB0cmFt IG5nYW4gbWV0IHZ1b25nIGtobyBiYWkgZGEgZHVvYyBVQk5EIFRQIGdpYW8gbGFpIGNobyBxdWFu IDggbGFtIHRydW9uZyANCmhvYyBuaHVuZyBkb24gdmkgcXVhbiBseSBkYXkgZHVhIGtob25nIGNo aXUgYmFuIGdpYW8gaG9hYyBkb2kgdGllbiBib2kgdGh1b25nIGtob25nIA0KZHVuZyBxdXkgZGlu aC4gVGluaCBoaW5oIG5heSBsYW0ga2UgaG9hY2ggY2hpbmggdHJhbmcgZG8gdGhpLCBuYW5nIGNh byBoaWV1IHF1YSBzdSBkdW5nIA0KZGF0IGN1YSBxdWFuIDggZ2FwIGtobyBraGFuLg0KDQpPbmcg Tmd1eWVuIFRoYW5oIENodW5nLCBDaHUgdGljaCBVQk5EIHF1YW4gOCBjaG8gYmlldCwgcGhhaSBt YXQgZGVuIDMgbmFtIGxhcCBobyANCnNvIHBoYXAgbHkgcXVhbiBtb2kgZHVvYyBVQk5EIFRQIHJh IHF1eWV0IGRpbmggdGh1IGhvaSBraG8gYmFpIDEzNSBMdW9uZyBOZ29jIA0KUXV5ZW4gZGUgeGF5 IHRydW9uZyBtYW0gbm9uLiBTb25nIGhpZW4gbmF5LCBkdSBkb24gdmkgdGh1ZSBraG8gYmFpIG5h eSBraG9uZyBjaGl1IA0KYmFuIGdpYW8gZGF0IG5odW5nIHF1YW4gdmFuIGtob25nIHRoZSB0aWVu IGhhbmggY3VvbmcgY2hlIGR1b2MgdmkgZG9uIHZpIGNodSBxdWFuIA0KY3VhIGtodSBkYXQgbmF5 IGxhIENvbmcgdHkgS2hvIGJhaSBUUC4NCg0KQ2h1b25nIHRyaW5oIHRhaSBkaW5oIGN1IG1hIHF1 YW4gOCB2YWNoIHJhIHR1IG5heSBkZW4gbmFtIDIwMTUgbGEgY2FuIHBoYWkgY28gdHJlbiAxMCAN Cm5naGluIGNhbiBuaGEgZGUgcGh1YyB2dSB0YWkgZGluaCBjdS4gVHJvbmcgbmFtIDIwMDkgc2Ug eGF5IDEuMDAwIGNhbiB2YSBkZW4gMjAxMCB4YXkgDQp0aGVtIDYuMDAwIGNhbi4gU28gY29uIGxh aSBzZSB0aWVuIGhhbmggdGllcCB0cm9uZyB0aG9pIGdpYW4gY29uIGxhaS4gVGhlIG5odW5nLCBx dXkgZGF0IA0KZGUgeGF5IG5oYSB0YWkgZGluaCBjdSBsYWkga2hvbmcgYmlldCB0aW0gZGF1Lg0K DQpDYXUgY2h1eWVuIHBoYXAgbHkgdmUgdmllYyB0aHUgaG9pIGtobyA0ODEgQmVuIEJhIERpbmgs IHBodW9uZyA5LCBxdWFuIDggZGFuZyBsYW0gDQpkYXUgZGF1IGNhYyBjbyBxdWFuIHF1YW4gbHkg bmhhIG51b2MuIEtobyA0ODEgQmVuIEJhIERpbmggZG8gQ29uZyB0eSBLaG8gYmFpIFRQICh0aHVv YyANClRvbmcgQ29uZyB0eSBEaWEgb2MgU2FpIEdvbikgcXVhbiBseS4gQ29uZyB0eSBuYXkgY2hv IENvbmcgdHkgY28gcGhhbiBIb2EgDQpjaGF0IHZhdCBsaWV1IGRpZW4gdGh1ZSBtYXQgYmFuZyB0 cmVuIHR1IG5hbSAxOTg1IGRlbiBuYXksIGhvcCBkb25nIGR1b2Mga3kgbGFpIGhhbmcgDQpuYW0u IE5nYXkgMzEvMTIvMjAwNyBsYSB0aG9pIGhhbiB0aHVlIGNoYW0gZHV0Lg0KDQpDdW9pIG5hbSAy MDA3LCBDb25nIHR5IEtobyBiYWkgVFAgZG9pIGJlbiB0aHVlIHRyYSBsYWkgbWF0IGJhbmcgdHJv bmcgdGhhbmcgMS8yMDA4IGRlIA0KZ2lhbyBjaG8gVUJORCBxdWFuIDggdGh1YyBoaWVuIGR1IGFu IGRhdSB0dSB4YXkgZHVuZyB0cnVvbmcgY28gc28gY2h1YW4gcXVvYyBnaWEgDQpuaHVuZyBiZW4g dGh1ZSBraG9uZyBjaGl1IHRyYSwgY2FuIHRybyB2aWVjIGtoYW8gc2F0LCBkbyB2ZSBoaWVuIHRy YW5nIGtodSBkYXQuIEtob25nIGNoaSANCnRoZSwgdHJvbmcgcXVhIHRyaW5oIHRodWUga2hvIGJh aSwgY29uZyB0eSBkYSBsYXkgaG9uIDIuMDAwbTIgZGF0IHBoYW4gbmVuIGNobyAyNCBjYW4gYm8s IA0KY29uZyBuaGFuIHZpZW4geGF5IG5oYSBvLg0KDQpEZSB0aHUgaG9pIGtobyB0cmVuLCBiYSBj byBxdWFuIGxhIFRvbmcgQ29uZyB0eSBEaWEgb2MgU2FpIEdvbiwgVUJORCBxdWFuIDggdmEgU28g DQpYYXkgZHVuZyBsYWkgZHVhIHJhIG5odW5nIGh1b25nIGdpYWkgcXV5ZXQga2hhYyBuaGF1LiBD b25nIHR5IEtobyBiYWkgVFAgZGUgbmdoaSBraG9pIA0Ka2llbiBiZW4gdGh1ZSByYSB0b2EgZGUg ZG9pIGxhaSBraG8gdmEgdGllbiB0aHVlLiBVQk5EIHF1YW4gOCB0aGkgY2hvIHJhbmcgbmVuIHRh Y2ggaGFpIA0Kc3UgdmllYyBuYXkgcmEuIE1vdCBtYXQgZGUgY2hvIHF1YW4gY3VvbmcgY2hlIHRo dSBob2kgcGhhbiBkaWVuIHRpY2ggaG9uIDEwIG5naGluIG0yIA0Ka2hvIGJhaSBkbyBiZW4gdGh1 ZSBkYW5nIHN1IGR1bmcuDQoNClBoYW4gZGllbiB0aWNoIGJlbiB0aHVlIGRhIHBoYW4gbmVuIGJv IHRyaSBjaG8gY2FuIGJvLCBjb25nIG5oYW4gdmllbiB4YXkgbmhhIHRoaSBzZSANCmtoYW8gc2F0 LCB0aHUgdGhhcCBwaGFwIGx5LCBsYXAgcGh1b25nIGFuIGJvaSB0aHVvbmcsIGdpYWkgcGhvbmcg bWF0IGJhbmcgdGhlbyBxdXkgZGluaCANCmhpZW4gaGFuaC4gQ29uIHZpZWMgZ2lhaSBxdXlldCB0 aGFuaCBseSBob3AgZG9uZyB0aHVlIGtobyBiYWkgZ2l1YSBDb25nIHR5IEtobyBiYWkgVFAgDQp2 YSBiZW4gdGh1ZSBsYSBtb3QgdnUga2llbiBkb2MgbGFwIGdpdWEgaGFpIGJlbiBkbyB0b2EgYW4g Z2lhaSBxdXlldC4gU28gWGF5IGR1bmcgbGFpIGNobyANCnJhbmcgbXVvbiBuaGFuaCBjaG9uZyB0 aHUgaG9pIG1hdCBiYW5nIFVCTkQgVFAgbmVuIGR1bmcgcXV5ZXQgZGluaCBjdW9uZyBjaGUgaGFu aCBjaGluaC4NCg0KT25nIE5ndXllbiBNaW5oIEhvYW5nIC0gVHJ1b25nIGJhbiBLaW5oIHRlIHZh IE5nYW4gc2FjaCBIRE5EIFRQIGNobyByYW5nIGRvIA0KbGFtIGtob25nIGtpZW4gcXV5ZXQgY2h1 IHRodWUgY28gdGhvaSBoYW4sIGtob25nIHBoYWkgbGEgbXVvbiBrZW8gZGFpIGJhbyBuaGlldSBj dW5nIGR1b2MuIA0KS2hvbmcgY28gY2h1eWVuIGFuaCBjdSBkZSBob2FuZyBraG8gYmFpLCBraG9u ZyBjbyBjaHV5ZW4gYW5oIGxhbSBhbiBraG9uZyANCmR1b2MgbWEga2hpIGJhbiBhbmggbGFpIGR1 b2MgbmhhbiA1MCUgc28gdGllbiBkby4NCg0KQ29uIHRoZW8gb25nIEhvaSBkb25nIERhbmcgVmFu IEtob2E6ICJWaWVjIHN1IGR1bmcgbGFuZyBwaGkga2hvIGJhaSBuYXkgZGFuZyBsYSB0ZSANCnRy YW5nIHRvbiB0YWkgZGFpIGRhbmcgdmEgY2FuIHNvbSBkdW9jIGdpYWkgcXV5ZXQgZHV0IGRpZW0u IENvIHJhdCBuaGlldSBraG8gYmFpLCBuaHVuZyANCnN1IGR1bmcga2hvbmcgaGlldSBxdWEgbGEg a2hvbmcgY28gZ2kgbW9pIHZhIGtob25nIHJpZW5nIGdpIG8gcXVhbiA4IG1hIG8gdHJlbiBkaWEg YmFuIA0KdGhhbmggcGhvIGN1bmcgbmh1IGNhIG51b2Mgbm9pIGNodW5nLiBUZSB0cmFuZyBuYXkg c2UgY29uIHRvbiB0YWkgZGVuIGJhbyBnaW8/IEtoaSBtYSANCmNhY2ggZGF5IGhvbiAxIHRoYXAg bmllbiwgRGFuZywgTmhhIG51b2MgZGEgZGF0IHJhIG5odW5nIGtob25nIGxhbSBkdW9jIi4NCg0K S2V0IHRodWMgYnVvaSBsYW0gdmllYywgb25nIEhvYW5nIG5oYW4gbWFuaCwgcXVhbiBwaGFpIGxh bSBkdXQga2hvYXQsIHRodSBob2kgbmh1bmcgDQpraG8gYmFpIHN1IGR1bmcgc2FpIG11YyBkaWNo LCBjYSBraG8gYmFpIFRydW5nIHVvbmcgcXVhbiBseSBsYW4ga2hvIGJhaSB0aGFuaCBwaG8uIERv biANCnZpIG5hbyBraG9uZyBjaGFwIGhhbmggcGhhaSB0aWVuIGhhbmggY3VvbmcgY2hlLiBLaG9u ZyBjbyBseSBkbyBnaSBkZSBraG8gYmFpIGJvIHRyb25nLCANCmhheSBjaHV5ZW4gZG9pIG11YyBk aWNoLCBjaG8gdGh1ZSBsYWksIHRyb25nIGtoaSBiaWV0IGJhbyBjb25nIHRyaW5oIGNhbiBkdW9j IHhheSBkdW5nIA0Kbmh1IHRydW9uZyBob2MsIGJlbmggdmllbiwgYmVuIHhlLCBjYWMgY29uZyB0 cmluaCBwaHVjIGxvaSB4YSBob2kgY2FuIHhheSBkdW5nIG5odW5nIGtob25nIGNvIGRhdC4gDQoN Cmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0tpbmgtZG9hbmgvMjAxMC8wMS8zQkExN0UzNy8gMTkv MS8yMDEwLCAxMDozOSBHTVQrNw0KDQpUUCBIQ006IExhbmcgcGhpIG5oaWV1IGRhdCBnaXVhIHRy dW5nIHRhbSBTYWkgR29uDQoNCmh0dHA6Ly9kYW50b2N2aWV0bmFtLmNvbS8/dGFnPWwlQzYlQjAl QzYlQTFsbmctcXVhbmctbGklRTElQkIlODd0IEJNIDc6NTAgMTEvMTAvMjAxMCANCg0KVFAgSENN OiBCbyB0cnVvbmcgUXVvYyBwaG9uZyBUcnVuZyBRdW9jIHRoYW0gVmlldCBOYW0gKDEwLzEwLzIw MTApIA0KDQpZIGtpZW4gZGllbiBkYW46IA0KRGFuVmlldDc5IDIwOjIxOiANCg0KTHVvbmcgUXVh bmcgTGlldCBzYW5nIHRoYW0gVmlldCBOYW0gZGUgaG9wIHZlIGFuIG5pbmggY2hpIGxhIGhpbmgg dGh1Yy4gTXVjIHRpZXUgY3VhIFRydW5nIFF1b2MgDQpsYSB0YWMgZG9uZyB2YW8gbmhhbiBzdSBW Ti4gSG8gTHVvbmcgc2FuZyBzZSB0aW0gY2FjaCBoYXUgdGh1YW4gY2hvIE5ndXllbiBNaW5oIFRy aWV0IHRhaSBjdSANCnRoZW0gbmhpZW0ga3kgbnVhIGNobyBkdSBOZ3V5ZW4gTWluaCBUcmlldCB1 eSB0aW4ga2hvbmcgY2FvLCBzdWMga2hvZSB5ZXUgdmEgZGEgZ2FuIDcwIHR1b2kuIA0KR2lvIG5h eSBjaGFjIG9uZyBUcmlldCBkYW5nIG11bmcgdGhhbSEgRGFuIG1pbmggY29uIGtobyBkYWkgZGFp ISBPbmcgVHJpZXQgbGEgbmd1b2kgY2FtIGRhdQ0KcGhlIE5ndXllbiBUYW4gRHVuZywgTGUgVGhh bmggSGFpLCBMZSBIb25nIEFuaC4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdz L1BhZ2VzLzIwMTAyOC8yMDEwMDcwOTAxMDE1NC5hc3B4IERhbSBIdXkgMDkvMDcvMjAxMCAxOjAx IA0KDQpUUCBIQ006IEJvbiBjdW9wIHR1IEhhaSBQaG9uZyB2YW8gVFAuSENNIGdheSBhbiBkZSAi bGFwIG5naGllcCIgDQoNCkNodW5nIG5naGUgY2FjICJkYW4gYW5oIGdpYW5nIGhvIiBvIEhhaSBQ aG9uZyB2YW8gVFAuSENNIGhvYXQgZG9uZyBjbyBjdW9jIHNvbmcgc3VuZyB0dWMgbmVuIHJ1IG5o YXUgdmFvIFRQLkhDTSANCmRpIGN1b3AgZGUgImxhcCBuZ2hpZXAiLiANCg0KaHR0cDovL3ZpZXRu YW1uZXQudm4vaGNtLzIwMTAwOC9CYXQtY29jLWRhaS1naWEteGFuZy1kYXUtZG9pLTM0LXR5LWRv bmctY2h1b2MtbWFuZy05MjcyOTcvIFF1b2MgUXVhbmcgMjA6NDcsIDA2LzA4LzIwMTAgKEdNVCs3 KQ0KDQpUUC5IQ006IEJhdCBjb2MgZGFpIGdpYSB4YW5nIGRhdSBkb2kgMyw0IHR5IGRvbmcgY2h1 b2MgbWFuZw0KDQpTYXUga2hpIGR1YSBuYW4gbmhhbiBsZW4gbW90IHhlIG8gdG8gZHUgbGljaCwg bmhvbSBiYXQgY29jIHJhIHlldSBzYWNoIG5ldSBraG9uZyB0cmEgMyw0IA0KdHkgZG9uZyBzZSBr aG8gYmFvIHRvYW4gdGluaCBtYW5nLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8y MDEwMTAvU3VwLWNvbmctdHJvbmctbHVjLW11YS10by0xLW5ndW9pLWNoZXQtdGhhbS05NDAyNDYv IFRyYW4gQ2hhbmggTmdoaWEgMDg6MDUsIDExLzEwLzIwMTAgKEdNVCs3KSANCg0KVFAgSENNOiBT dXAgY29uZyB0cm9uZyBtdWEsIDEgbmd1b2kgY2hldCB0aGFtIG8gVFAgSENNIA0KDQpOaGlldSBu Z3VvaSB0aGF5IG5ndW9pIGRhbiBvbmcgdHJ1b3QgbmdhIHRyb2kgdmFvIGNvbmcgbmh1bmcgZGFu aCBiYXQgbHVjLg0KDQpWdSB0YWkgbmFuIHRodW9uZyB0YW0geGF5IHJhIHZhbyBjaGlldSB0b2kg MTAvMTAsIHZhbyB0aG9pIGRpZW0gbmhpZXUga2h1IHZ1YyBvIA0KVFAuSENNIGJpIG5nYXAgbmFu ZyB0cm9uZyBjb24gbXVhIHRhbSB0YSAuDQoNCihBbmggY2h1cDogTmFuIG5oYW4gZHVvYyB0aW0g dGhheSBuZ2F5IG1pZW5nIGNvbmcuIEFuaDogVHJhbiBDaGFuaCBOZ2hpYSkNCg0KVGFpIGtodSB2 dWMgdHJlbiBkdW9uZyBUbyBOZ29jIFZhbiAoa20gMTcxMysyNzMgUC4gTGluaCBUYXkgUS4gVGh1 IER1YykgbnVvYyBtdWEgDQp0cmFuZyB4b2EgcGh1IGtpbiBkdW9uZy4gS2hvbmcgdGhlIHBoYW4g YmlldCBkdW9jIGRhdSBsYSBobyBzYXUsIGRhdSBsYSBkdW9uZyBkaS4gVHJ1b2MgDQpkbywgdHJl biBkb2FuIGR1b25nIG5heSBjbyBtb3QgY29uZyB0aG9hdCBudW9jIG5nYW5nIGRhaSBraG9hbmcg OG0gZGEgY2hpbSB0cm9uZyANCm51b2MgbXVhLCBuZW4ga2hvbmcgYWkgY28gdGhlIHBoYXQgaGll biBkdW9jLiANCg0KVmFvIGtob2FuZyAxOGg1MCBjdW5nIG5nYXksIG1vdCBuZ3VvaSBkYW4gb25n IGRpIHhlIGRhcCBodW9uZyB0dSBjaG8gVGh1IER1YyB2ZSANClRhbSBCaW5oIGRhIGJhdCBuZ28g YmkgbG90IHRob20geHVvbmcgdmEgYmkgbnVvYyBjdW9uIHRyb2kgdmFvIG1pZW5nIGNvbmcgdHJ1 b2Mgc3UgDQpuZ28gbmdhbmcgY3VhIGJhIGNvbiBjaHVuZyBxdWFuaC4gTmhpZXUgbmd1b2kgdHJp IGhvLCBuaHVuZyBtdWEgcXVhIGxvbiBuZW4gbW9pIA0Kbmd1b2kga2hvbmcgdGhlIHVuZyBjdXUg a2lwIHRob2kuDQoNCkhhaSBtdW9pIHBodXQgc2F1LCBuZ290IG11YSwgeGFjIG5ndW9pIGRhbiBv bmcgZGEgZHVvYyB0aW0gdGhheSBvIHBoaWEgaGEgbHV1IHZhIGNoaWVjIA0KeGUgZGFwIGRhbmcg Y2hhbiBuZ2F5IG1pZW5nIGNvbmcuDQoNCkNvbmcgYW4gUS5UaHUgRHVjIGRhIGNvIG1hdCB0YWkg aGllbiB0cnVvbmcuIERvIG5ndW9pIGRhbiBvbmcgbmF5IGtob25nIGNvIGdpYXkgdG8gdHV5IHRo YW4gbmVuIGNodWEgeGFjIGRpbmggZHVvYyBkYW5oIHRhbmguIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vaGNtLzIwMTAxMC9TdXAtaG8tdHUtdGhhbi14ZS1jb250YWluZXItY2hvbmctdm8t OTQxNzQxLyBUcmFuIENoYW5oIE5naGlhIDE1OjM2LCAxMi8xMC8yMDEwIChHTVQrNykNCg0KVFAu SENNOiBTdXAgaG8gdHUgdGhhbiwgeGUgY29udGFpbmVyIGNob25nIHZvDQoNCkJpIHN1cCB4dW9u ZyBobyB0dSB0aGFuLCBjaGllYyBjb250YWluZXIgbmdhIGNob25nIHZvIHZhIG5oaWV1IG5ndW9p IG1heSBtYW4gdGhvYXQgY2hldC4NCg0KTW90IHhlIGRhdSBrZW8gYmkgY2hvbmcgYmFuaCBraGkg ZGFuZyBsdXUgdGhvbmcgdHJlbiBkdW9uZyBLaGEgVmFuIENhbiAoUC4gTGluaCBUcnVuZyANClEu IFRodSBEdWMgVFAuSENNKSB2YW8gbHVjIDEyaCBuZ2F5IDEyLzEwLg0KDQooQW5oOiBIaWVuIHRy dW9uZyB2dSB0YWkgbmFuLiBBbmg6IFRyYW4gQ2hhbmggTmdoaWEpDQoNClN1IGNvIHhheSByYSBr aGkgY2hpZWMgeGUgY29udGFpbmVyIGJpZW4gc28gNTdNIC0gMjU0MiBjdWEgY29uZyB0eSBUTkhI IEhhaSBUcnVvbmcgDQpUaGFuaCBsdXUgdGhvbmcgdHJlbiBkdW9uZyBLaGEgVmFuIENhbiBkbyBs YWkgeGUgTGUgTWFuaCBIdW9uZyBjYW0gbGFpLCBraGkgZGVuIA0KdHJ1b2MgbmhhIHNvIDEyMDYg ZHVvbmcgS2hhIFZhbiBDYW4gLCBiYXQgbmdvIGJhbmggc2F1IGJlbiB0cmFpIHN1cCB4dW9uZyBr ZW8gdG9hbiBibyANCmNoaWVjIHhlIG5nYSBuZ2FuZyByYSBkdW9uZy4gDQoNCk1vdCBjaGllYyB4 ZSBkdSBsaWNoIGJpZW4gc28gNjBWLTU3NzggZGkgbmd1b2MgY2hpZXUgZGEgYmkgZGUgdHJ1bmcg cGhhbiBkdW9pIHhlLiBSYXQgDQptYXkga2hvbmcgY28gdGh1b25nIHZvbmcgdmUgbmd1b2kuIA0K DQpUYWkgaGllbiB0cnVvbmcsIHRvYW4gYm8gZGF1IHZhIHJvIG1vb2MgeGUgbGF0IG5nYW5nIGdp dWEgZHVvbmcuIER1b2kgYmFuaCBiZW4gdHJhaSBsbyANCnJhIG1vdCBsbyB0aHVuZyBjbyBkdW9u ZyBraW5oIGdhbiAybSB2YSBzYXUgM20uIEdpYW8gdGhvbmcgdGFpIGtodSB2dWMgbm9pIHRyZW4g YmkgDQpuZ2hlbiBjdWMgYm8uDQoNCihBbmg6Q2hpZWMgY29udGFpbmVyIG5nYSBjaG9uZyB2byB0 cmVuIGR1b25nLiBBbmg6IFRyYW4gQ2hhbmggTmdoaWEpDQoNCk5oaWV1IG5ndW9pIGRhbiB0YWkg ZGF5IGNobyBiaWV0IHRydW9jIGtoaSB0YWkgbmFuIHhheSByYSwgbWF0IGR1b25nIGRhIGNvIGRh dSBoaWV1IGx1biANCnN1dCB2YSBuZ3VvaSBkYW4gZGEgZGF0IGNodW9uZyBuZ2FpIHZhdCBjYW5o IGJhby4gVHV5IG5oaWVuIGRvIGR1b25nIHF1YSBoZXAsIGxhaSB4ZSANCmNvbnRhaW5lciB2YW4g bGFvIHZhbyBnYXkgcmEgc3UgY28gbmh1IHRyZW4uDQoNCkJhIGNvbiBjaG8gYmlldCB0cnVvYyBk byBraG9hbmcgMTAgbmdheSwgY2FjaCB2aSB0cmkgeGUgY29udGFpbmVyIGJpIG5hbiBraG9hbmcg MzBtIA0KY3VuZyBiaSB0aHVuZyBtb3QgbG8gdmEgZGEgZHVvYyBkb24gdmkgY2F1IGR1b25nIHZh IGxhcCBsby4NCg0KKEFuaDogSGllbiB0cnVvbmcgY2hpZWMgaG8gdHUgdGhhbiBtYSBjaGllYyBj b250YWluZXIgYmkuLi5zYXAgYmF5LiBBbmg6IFRyYW4gQ2hhbmggTmdoaWEpDQoNCkR1b2MgYmll dCB0cm9uZyB0aG9pIGdpYW4gZ2FuIGRheSwgZHVvbmcgS2hhIFZhbiBDYW4gbGllbiB0dWMgeGF5 IHJhIHRhaSBuYW4uIE5nYXkgDQo5LzEwLCBtb3QgcGh1IG51IGNobyBjb24gZGkgaG9jIHZlIHZh cCBwaGFpIG5hcCBobyBnYSB0ZSBuZ2EgdnVhIGtpcCBsdWMgeGUgdGFpIGxhbyB0b2kgY2FuIGNo ZXQgdGFpIGNoby4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vaGNtLzIwMTAxMC9MYWktY2hvYW5n LXZvaS1udS1zaW5oLXRhbS10aWVuLWNoby1iYW4tcXVheS1waGltLTk0MTcwNS8gTmd1eWVuIFRp ZW4gIDEzOjExLCAxMi8xMC8yMDEwIChHTVQrNykNCg0KVFAuSENNOiBDaG9hbmcgdm9pIG51IHNp bmggInRhbSIgY2hvIGJhbiBxdWF5IHBoaW0NCg0KLSBDdSBkYW4gbWFuZyBiaSBjaG9hbmcgdm9p IGNsaXAgZGFpIGhvbiA2IHBodXQgcXVheSBjYW5oIG1vdCAibnUgc2luaCB2aWVuIiB2dWEgdGFt IA0KdnVhIHZvIHR1IGxhbSBkYW5nLCBhbiBub2kgdHVjIHRpdSBkZSBjaG8gYmFuIHF1YXkgcGhp bSB0dSBBIC0gWi4gDQoNCkNsaXAgZGFpIGhvbiA2IHBodXQgbmF5LCBkdW9jIG1vdCB0aGFuaCB2 aWVuIGN1YSBtb3QgdHJhbmcgd2ViIGNoaWEgc2UgdmlkZW8gdHJ1YyB0dXllbiANCmR1YSBsZW4g dmFvIG5nYXkgMjMvOC8yMDEwLCB2YSBjaGkgaG9uIDEgdGhhbmcgc2F1IGtoaSBkb2FuIGNsaXAg ZHVvYyBkYW5nIHRhaSBkYSBjbyANCmhhbmcgY2h1YyBuZ2FuIGx1b3Qgbmd1b2kgdHJ1eSBjYXAu IA0KDQpUaGVvIGN1b25nYnN0biAtIHRoYW5oIHZpZW4gZGEgdHVuZyBkb2FuIHZpZGVvIGxlbiB0 cmFuZyB3ZWIgdHJlbiwgY2EgNCBjbyBnYWkgeHVhdCBoaWVuIA0KdHJvbmcgY2xpcCBkZXUgbGEg c2luaCB2aWVuIGN1YSBtb3QgdHJ1b25nIGRhaSBob2MgcGhpYSBCYWMuIA0KDQooQW5oIGR1b2Mg Y2h1cCB0dSBkb2FuIGNsaXAuKQ0KDQpEb2FuIHZpZGVvIGdoaSBsYWkgY2FuaCBtb3QgIm51IHNp bmggdmllbiIgdGVuIExpZW4gKHF1ZSBIdW5nIFllbiwgdGhlbyBuaHUgbG9pIHRob2FpIA0KY3Vh IG5ndW9pIGNhbSBkaWVuIHRob2FpIHF1YXkpLCBkYW5nIHRhbSB0cm9uZyB0dSB0aGUga2hvbmcg bWFuaCB2YWkgY2hlIHRoYW4uIFRoZSANCm5odW5nIGNvIGdhaSBuYXkga2hvbmcgaGUgbmdhaSBu Z3VuZyBtYSBjb24gdG8gcmEgdmUgdGhpY2ggdGh1LCBsaWVuIHR1YyBsYW0gbmh1bmcgDQpkb25n IHRhYyBoZXQgc3VjIHR1YyB0aXUgZGUgY2hvIGJhbiBtaW5oIGdoaSBsYWkuIA0KDQpDYSA0IGNv IGdhaSB4dWF0IGhpZW4gdHJvbmcgZG9hbiBjbGlwIGxpZW4gdHVjIGNvIG5odW5nIGxvaSBub2kg bmdoZSBwaGFpIGdpYXQgbWluaCBuaHU6DQogIlR1bmcgbGVuIG1hbmcgcXVhIG5heSBkdW9jIGRh eSBuaGk/IjsgIktoZW8gbGFpIG5vaSB0aWVuZyEiLi4uIHZhIGNvbiBuaGlldSBjYXUgdGhvYWkg DQpraG9uZyB0aWVuIG5vaSByYS4gDQoNCkJlbiBjYW5oIG5odW5nIGNhdSBub2kgImhldCBob24i IGRvLCBuaG9tIDQgY28gZ2FpIG5heSBjb24gc28gc2FuaCBuZXUgY2xpcCBuYXkgdHVuZyANCmxl biBtYW5nIHRoaSBraG9uZyBiaWV0IGNvIG5oaWV1IG5ndW9pIHhlbSwgdmEgY28gdGhlIG5vaSB0 aWVuZyBuaHUgWVYsIFZBIC0gKGhhaSBuaGFuIA0KdmF0IGRhIHR1bmcgZ2F5IGRpbmggZGFtIHZl IG5odW5nIGNsaXAgZGEgdHVuZyBsZW4gbWFuZykga2hvbmcgbmhpPyANCg0KS2hpIG5naGUgbmh1 bmcgY2F1IHRob2FpIHRyZW4gY2FjIGN1IGRhbiBtYW5nIGtob25nIGtob2kgaG90IGhvYW5nIHZl IG1vdCBzbyBibyBwaGFuIA0KZ2lvaSB0cmUsIGRhYyBiaWV0IGxhIHNpbmggdmllbiBkYW5nIGNv IG1vdCAieG8gaGFuZyIgaGllbiBuYXkuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTAzMS8yMDEwMDcyODIyNTYwOS5hc3B4IFRoYW5oIFRvbmcgMjgvMDcvMjAx MCAyMjo1NiANCg0KVFAgSENNOiBEdSBhbiBuaGEgeGEgaG9pIHRyZW4gZ2lheSB0aGkgbmhpZXUs IGR1IGFuIGhvYW4gdGhhbmggcXVhIGl0LiBDb24gZHVvbmcgZGUgbmd1b2kgdGh1IGh1b25nIA0K ZGVuIGR1b2Mgdm9pIG5oYSB4YSBob2kgeGVtIHJhIGNvbiByYXQgeGEuIA0KDQpodHRwOi8vbmV3 cy5uZHRodWFuLmNvbS92aWV0LW5hbS8yMDEwLzA3LzEwLzE0MjEwMi1ob2MtbW9uLWdpYW8tZGF0 LWR1LWFuLW8tbXVjLWtob25nLWJpbmgtdGh1b25nLnNodG1sIHR1b2l0cmUudm4gMDg6MDAgMTAv MDcvMjAxMA0KDQpUUCBIQ006IEdpYW8gZGF0LCBkdSBhbiBvIG11YyAia2hvbmcgYmluaCB0aHVv bmciIC0gQnVvbmcgbG9uZyBxdWFuIGx5DQoNClF1YSB0aGFuaCB0cmEgY2hvIHRoYXkgc2FpIHBo YW0gY3VhIENvbmcgdHkgSG9hbmcgSGFpIHRhaSBodXllbiBIb2MgTW9uIChUUC5IQ00pIGxhIHJh dCBuZ2hpZW0gdHJvbmcsIA0KZ2F5IHRoaWV0IGhhaSBjaG8gTmhhIG51b2MNCg0KU3UgYnVvbmcg bG9uZyBxdWFuIGx5IHRyb25nIHRob2kgZ2lhbiBkYWkgZGEgdGFvIGRpZXUga2llbiBjaG8gQ29u ZyB0eSBIb2FuZyBIYWkgdGh1YyANCmhpZW4gbmhpZXUgZHUgYW4gcXV5IG1vIGxvbiBuaHVuZyBk ZW4gbmF5IHRhdCBjYSBkZXUgY2h1YSB0aHVjIGhpZW4geG9uZywgaGUgdGhvbmcgaGEgDQp0YW5n IGt5IHRodWF0IGNodWEgaG9hbiBjaGluaC4uLiBUYWkgY2FjIGR1IGFuIGNvIHF1eWV0IGRpbmgg Z2lhbyBkYXQsIGtlIGNhIGNhYyBraHUgZGF0IA0Kbm9uZyBuZ2hpZXAgY2hpIG1vaSBkdW9jIHRo b2EgdGh1YW4gZGlhIGRpZW0sIGNodWEgZHVvYyBkdXlldCBxdXkgaG9hY2ggbmh1bmcgY2h1IA0K ZGF1IHR1IGRhIHR1IHkgcGhhbiBsbyBiYW4gbmVuIHRyb25nIG1vdCB0aG9pIGdpYW4gZGFpLg0K Q3UgdGhlLCBjbyBkZW4gMjMwIHRydW9uZyBob3AgdmkgcGhhbSBxdXkgaG9hY2ggeGF5IGR1bmcs IHRyb25nIGRvIHZpIHBoYW0gdGFpIGJhIGR1IA0KYW4gdm9pIHRpIGxlIHZpIHBoYW0geGF5IGR1 bmcgZGVuIDUxJSwgY2h1IHlldSBzYWkgdGhpZXQga2UsIHNhaSBxdXkgaG9hY2ggZHVvYyBkdXll dC4uLiANCk5naGllbSB0cm9uZyBob24sIGNvIGRlbiA5MyBjb25nIHRyaW5oIGdvbSBuaGEgbywg bmhhIHh1b25nIHhheSBkdW5nIHRyZW4gZGF0IG5vbmcgDQpuZ2hpZXAgbmh1bmcga2hvbmcgZHVv YyBwaGF0IGhpZW4NCg0KVHJvbmcgY3VuZyBtb3QgdGhvaSBkaWVtICgyMDAxLTIwMDMpLCBsYW5o IGRhbyBVQk5EIGh1eWVuIGRhIGNoYXAgdGh1YW4gZGlhIGRpZW0gDQpjaG8gQ29uZyB0eSBIb2Fu ZyBIYWkgKHRoYW5oIGxhcCB0aGFuZyA3LTIwMDApIHRodWMgaGllbiAxMSBkdSBhbiB2b2kgdG9u ZyBkaWVuIHRpY2ggDQpkYXQgbGVuIGRlbiAxMDBoYSwgdHJvbmcga2hpIHZvbiBkaWV1IGxlIGN1 YSBjb25nIHR5IGNoaSAyNSB0aSBkb25nLiBUcm9uZyBzbyBuYXkgZ29tIA0KYm9uIGR1IGFuIHBo YW4gbG8gaG8gbGUsIGJhIGR1IGFuIGtodSBuaGEgbyB2YSBib24ga2h1IGRhdCBub25nIG5naGll cC4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL0NhaS10YW8tdmlhLWhlLW8tVFBIQ00t LVRoaWV1LXRhbS1uaGluLWxhbmctcGhpLWxvbi8xNDgvNDM5MjIzOC5lcGkgU0dHUCANCiANClRQ IEhDTTogQ2FpIHRhbyB2aWEgaGUgdGhpZXUgdGFtIG5oaW4sIGxhbmcgcGhpIGxvbiANCg0KaHR0 cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvU2FpLXBoYW0tbmdoaWVtLXRyb25nLXRy b25nLXF1YW4tbHktZGF0LWRhaS1vLUhvYy1Nb24tVFAtSENNLzQ1MjM0NTc4LzIxOC8gMTUvNC8y MDA3LCAyMzo0OCBHTVQrNyANCg0KU2FpIHBoYW0gbmdoaWVtIHRyb25nIHRyb25nIHF1YW4gbHkg ZGF0IGRhaSBvIEhvYyBNb24sIFRQLkhDTQ0KDQpIYW5nIHRyYW0gaGEgZGF0LCB2b2kgc3UgdGll cCB0YXkgY3VhIG1vdCBzbyBjYW4gYm8gcXVhbiBseSB0cmVuIGRpYSBiYW4sIGRhIGJpIGNhYyBk YXUgDQpuYXUsIGNhYyBjb25nIHR5IHR1IG5oYW4gcGhhIHZvIHF1eSBob2FjaDsga2VvIHRoZW8g ZG8gbGEgZG9pIHNvbmcgaGFuZyBuZ2FuIGhvIGRhbiBiaSANCmFuaCBodW9uZyB2YSBoYW5nIGNo dWMgdGkgZG9uZyBjdWEgTmhhIG51b2MgYmkgbWF0IHRyYW5nLiBDaHV5ZW4geGF5IHJhIG8gaHV5 ZW4gSG9jIA0KTW9uLCBUUC5IQ00gbmhpZXUgbmFtIGxpZW4sIGdheSBidWMgeHVjIHRyb25nIGR1 IGx1YW4uIE5odW5nIGRpZXUgbGEgbGEgbmh1bmcgY2FuIGJvIA0KdGllcCB0YXkgY2hvIG5odW5n IHNhaSBwaGFtIHZhbiBkYW5nIHVuZyBkdW5nIHRhaSBjaHVjLCB0aGFtIGNoaSBjb24uLi4gbGVu IGNodWMhDQoNCihBbmggY2h1cDogS2h1IGRhdCBsYW0gZHUgYW4gY28gZGFpIG1vYyBkYXkpDQoN ClRpZXAgdGF5IGNobyBkb2FuaCBuZ2hpZXAgY2hpZW0gZG9hdCA1MDAwIGx1b25nIHZhbmcgLSBD byB5IGxhbSBzYWkgbGVjaCBobyBzbyBkdSBhbiANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1 YXQudm4vP0NUPU5XJk5JRD0zNjM5IDIxLzA5LzIwMDcNCg0KVFAgSENNOiBEdSBhbiBraHUgbmhh IG8gRGFpIGhvYyBxdW9jIGdpYSBUUC5IQ00gLSBIYW5nIGxvYXQgYmUgYm9pIHh1bmcgcXVhbmgg Y2h1eWVuIG11YSBiYW4gZGF0IC0gTW90IGRpZW4gaGluaCB2ZSB2aSBwaGFtIEx1YXQgRGF0IGRh aQ0KDQpTYW5nIDIwLjksIGhvbiAxNTAgbmd1b2kgbXVhIGRhdCB0YWkgZHUgYW4ga2h1IG5oYSBv IERhaSBob2MgUXVvYyBnaWEgVFAuSENNIA0KKERIUUcpIGRhIHRhcCB0cnVuZyB0YWkgaG9pIHRy dW9uZyBESFFHIGRlIGR1YSBraWVuIG5naGkuIFRoZW8gZG8sIGR1IGRhIG11YSBkYXQgdGFpIA0K ZHUgYW4gbmF5IDYgbmFtIHF1YSBuaHVuZyBuYXkgaG8gbGFpIGR1b2MgdGhvbmcgYmFvIHRodSBo b2kgbGFpIGRhdC4gSG9uIDYwMCBuZ3VvaSBkYSANCm11YSBkYXQgbyBkdSBhbiBESFFHIGJpIGxh bSB2YW8gY2FuaCBuZ28gbmF5LiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAxMDMyLzIwMTAwODA2MjIzNTE1LmFzcHggVGhhbmggVG9uZyAwNy8wOC8yMDEwIDc6 NTUgDQoNClRQIEhDTTogQW0gZGFtIGRhdCBuZW4gZHUgYW4gLSBIYXUgbmh1IGtob25nIGNvIHNh biBwaGFtIG1vaSANCg0KTWFjIGNobyBnaWEgdGhpIHRydW9uZyB4dW9uZyB0aGFwIG5oYXQgc2F1 IG5oaWV1IG5hbSBiaWVuIGRvbmcsIG1haSBsdWMgdHJlbiB0aGkgcGhhbiANCmRhdCBuZW4gZHUg YW4gdmFuIHRpZXAgdHVjIHRyYSB2ZSBzbyAwLiANCg0KR2lhIGdpYW0gdmFuIGUgLSBTYW4gcGhh bSAiY2hpbmggY2h1IiBxdWEgaXQNCg0KVGhlbyBuaHVuZyBuZ3VvaSBtb2kgZ2lvaSB0YWkga2h1 IHZ1YyBxdWFuIDIsIDksIDcsIGtoYWNoIGhhbmcgcXVhbiB0YW0gdmEgYm8gdm9uIGRhdSANCnR1 IGNodSB5ZXUgbGEgbmh1bmcgZGF0IG5lbiBkbyBjaGluaCBjaHUgZGF1IHR1IGR1bmcgcmEgc2Fu ZyBuaHVvbmcuIENvbiBuaHVuZyBkdSBhbiANCmxhdSBkb2kgdGhpIHJhdCBpdCBuZ3VvaSBxdWFu IHRhbS4gVHV5IG5oaWVuLCBzYW4gcGhhbSAiY2hpbmggY2h1IiBoaWVuIGNvbiByYXQgaXQgdHJl biB0aGkgDQp0cnVvbmcuIA0KDQpMeSBnaWFpIHZlIG11YyB0dXQgZ2lhbSBjdWEgbWFpIGx1YyB0 aGkgdHJ1b25nIHRyZW4gdGhpIHBoYW4gZGF0IG5lbiBkdSBhbiwgb25nIFRyYW4gDQpEYW5nIEto b2EsIEdpYW0gZG9jIHNhbiBnaWFvIGRpY2ggRGFpIFBodWMgY2hvIHJhbmcsIHR1IG5hbSAyMDA3 IHRvaSBuYXksIHRoaSB0cnVvbmcgDQpkYXQgbmVuIGhhdSBuaHUga2hvbmcgY28gc2FuIHBoYW0g bW9pLiBTYW4gcGhhbSBjdSB0aGkgZHVvYyBtdWEgZGkgYmFuIGxhaSBuaGlldSBsYW4gDQpuZW4g Z2lhIGRhIGRvaSBsZW4gcXVhIGNhbywgZG8gdmF5IGtob25nIHRodSBodXQga2hhY2ggaGFuZyBk YXUgdHUgdmFvLiANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vP0NUPU5XJk5JRD0z NTg1IDE5LzA5LzIwMDcNCg0KVFAgSENNOiBNdWEgZGF0IHRyb25nIGR1IGFuIG5oYSBvIGN1YSBE YWkgaG9jIFF1b2MgZ2lhIFRQSENNIGdhbiAxLjUwMCBraGFjaCBoYW5nICJuZ29pIHRyZW4gbHVh Ig0KDQpUYXQgY2Ega2hhY2ggaGFuZyB0aG9uZyBuaGF0IHNlIGNvIHZhbiBiYW4ga2llbiBuZ2hp IFVCTkQgVFBIQ00gdmEgZGUgbmdoaSBkdW9jIGRvaSB0aG9haSB2b2kgbGFuaCBkYW8gVFAgbmhh bSBsYW0gcm8gbmh1bmcga2h1YXQgdGF0IGN1YSBkdSBhbiANCg0KQ2h1bmcgdG9pIGNvIGNhbSBn aWFjIG1pbmggZGEgYmkgbHVhIGtoaSBtdWEgbmVuIGRhdCB0cm9uZyBkdSBhbiBkYXUgdHUgeGF5 IGR1bmcga2h1IA0KbmhhIG8gY2FuIGJvLCBnaWFuZyB2aWVuIERhaSBob2MgUXVvYyBnaWEgKERI UUcpIFRQSENNIHRhaSBwaHVvbmcgUGh1IEh1dSBxdWFuIDkgDQotIFRQSENNIiwgZG8gbGEgc3Ug dGhhdCB2b25nIGN1YSBoYXUgaGV0IGtoYWNoIGhhbmcgdGFpIGN1b2MgaG9wIHZvaSBCYW4gUXVh biBseSBkdSANCmFuIGRlIHRob25nIGJhbyB0aW5oIGhpbmggdHJpZW4ga2hhaSBkdSBhbiB0cmVu IHZhbyBjaGlldSAxOC05LiANCg0KNiBuYW0gImFuIiBiYW5oIHZlIC0gRHUgYW4gbmhhIG8gREgg UXVvYyBnaWEgVFBIQ00gc2F1IDYgbmFtIHZhbiBjb24gdHJlbiBnaWF5IA0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDAvMjAxMDA5MzAwMDEzNTIuYXNweCBN YWkgVm9uZyAzMC8wOS8yMDEwIDA6MTMgDQoNClRQIEhDTTogQmF0IGx1Yywga2hvbmcgcXVhbiBs eSBkdW9jLCBxdWF5IHF1YSBjYW0gdHJlIGVtIHZ1aSBjaG9pISANCiAgDQooQW5oIGNodXA6IERv bmcgY3VhIGtodSB0cm8gY2hvaSB0cmVuIGNhdCwgQ29uZyB2aWVuIFRhbyBEYW4ga2hvbmcgY29u IGNobyB2dWkgY2hvaSBjaG8gdHJlIGVtIC0gQW5oOiBEaWVwIER1YyBNaW5oKQ0KDQpDaGlldSAy NC45LCBraHUgdHJvIGNob2kgdHJlbiBjYXQgZGFuaCBjaG8gdGhpZXUgbmhpIHRhaSBDb25nIHZp ZW4gVGFvIERhbiAoUS4xLCANClRQLkhDTSkgZG90IG5nb3Qgbmd1bmcgaG9hdCBkb25nIG1hIGx5 IGRvIHRhbSBuZ3VuZyBsYSB2aSBub2kgZGF5IGtob25nIGRhbSBiYW8gdmUgDQphbiBuaW5oIHRy YXQgdHUgKCE/KS4gDQoNClRoZW8gQ29uZyB0eSBjb25nIHZpZW4gY2F5IHhhbmggVFAuSENNLCBk YXkgbGEga2h1IHRybyBjaG9pIGRhbmggY2hvIHRoaWV1IG5oaSwgaG9hbiANCnRvYW4gbWllbiBw aGksIGRvIENvbmcgdHkgbGllbiBkb2FuaCBMZXZlciBWTiB0YWkgdHJvIHRvYW4gYm8gdGhpZXQg YmkgdHJvIGNob2kuIA0KDQpOYW0gMjAwNiwgY2EgaGFpIHNvIGx1YyBiYXkgZ2lvIGxhIFNvIFZh biBob2EgLSBUaG9uZyB0aW4gdmEgU28gR2lhbyB0aG9uZyAtIGNvbmcgDQpjaGluaCBUUCBkZXUg dW5nIGhvIHZpZWMgbGFwIGRhdCBjYWMgdGhpZXQgYmkgdHJvIGNob2kgY2hvIHRoaWV1IG5oaSB0 YWkgQ29uZyB2aWVuIFRhbyANCkRhbiwgbmhhbSB0YW5nIGN1b25nIHRvIGNodWMgc2FuIGNob2kg Y2hvIHRyZSBlbSB0YWkgY2FjIGNvbmcgdmllbi4gS2h1IHRybyBjaG9pIHRyZW4gDQpjYXQgbmF5 IGNvIDggdGhpZXQgYmkgdHJvIGNob2ksIGhvYW4gdG9hbiBsYW5oIG1hbmggbmh1IG1hbmcgdHJ1 b3QsIHhpY2ggZHUgdmEgbW90IHNvIHRybyBjaG9pIHZhbiBkb25nIGtoYWMuIA0KDQpOZ2F5IDI0 LjksIEtodSBRdWFuIGx5IGdpYW8gdGhvbmcgZG8gdGhpIHNvIDEsIHRodW9jIFNvIEdpYW8gdGhv bmcgdmFuIHRhaSAoR1RWVCkgDQpUUC5IQ00gZGEgcmEgbW90IHZhbiBiYW4gZG9uZyBkYXUgImto YW4iIGd1aSBkZW4gQ29uZyB0eSBjb25nIHZpZW4gY2F5IHhhbmggDQpUUC5IQ00sIGRlIG5naGkg Y2hvIHRhbSBuZ3VuZyBraHUgdHJvIGNob2kgdHJlbiBjYXQgdGFpIENvbmcgdmllbiBUYW8gRGFu IGtlIHR1IG5nYXkgDQoyNC45LiBMeSBkbyB0YW0gbmd1bmcgeHVhdCBwaGF0IHR1IHZhbiBiYW4g a2llbiBuZ2hpIGN1YSBDb25nIGFuIChDQSkgUS4xIHZhIHkga2llbiANCmNoaSBkYW8gY3VhIEdp YW0gZG9jIFNvIEdUVlQgVFAuIA0KDQpUaGVvIHZhbiBiYW4ga2llbiBuZ2hpIGN1YSBDLkEgUS4x LCB0dSBraGkga2h1IHRybyBjaG9pIHRyZW4gY2F0IGRpIHZhbyBob2F0IGRvbmcgKG5hbSANCjIw MDYpIGNobyBkZW4gbmF5LCB0YWkgZGF5IGRhIHhheSByYSAxMCB2dSB2aSBwaGFtIHZlIGFuIG5p bmggdHJhdCB0dSwgdHJvbmcgZG8gY28gNCB2dSANCnBoYWkgeHUgbHkgaGluaCBzdS4gTmdvYWkg cmEsIGNvbiBjbyA2IHZ1IG1hdSB0aHVhbiwgeGljaCBtaWNoIHRyb25nIGx1YyBjaG9pIHRybyBj aG9pIGNhdCANCmRhbiBkZW4gZGFuaCBuaGF1LCBkYSBiaSBDLkEgUC5CZW4gVGhhbmggY3VuZyBw aG9pIGhvcCB2b2kgQmFuIHF1YW4gbHkgQ29uZyB2aWVuIA0KVGFvIERhbiB4dSBseS4gDQoNCk5n dXllbiBuaGFuIGNodSB5ZXUsIHRoZW8gQ0EgUS4xLCB0dSBraGkga2h1IHRybyBjaG9pIGNhdCBk aSB2YW8gaG9hdCBkb25nLCBkYSB0aHUgaHV0IA0Kc28gZG9uZyB0aGFuaCBuaWVuIGRlbiBkYXkg dnVpIGNob2ksIHRyb25nIGRvIGNvIGtob25nIGl0IHRoYW5oIHRoaWV1IG5pZW4gaHUgaG9uZywg dGhpZXUgDQpzdSBxdWFuIHRhbSBnaWFvIGR1YyB0dSBwaGlhIGdpYSBkaW5oOyBzbyBob2Mgc2lu aCB0cm9uIGhvYyBjdW5nIHR1IHRhcCB2ZSBkYXkgY2hvaS4gIFR1eSANCmxhIHRybyBjaG9pIGRh bmggY2hvIHRoaWV1IG5oaSwgbmh1bmcgY2FjIGVtIGtob25nIGR1b2MgY2hvaSB2aSBkYSBiaSBt b3Qgc28gdGhhbmggdGhpZXUgDQpuaWVuIGh1IGhvbmcgZGVuIGdpYW5oIGNob2kuIFR1IHZpZWMg dHJhbmggZ2lhbmggdHJvIGNob2kgZGEgeGF5IHJhIHZhIGNoYW0gZGFuIGRlbiANCnhpY2ggbWlj aCwgZGFuaCBuaGF1Lg0KDQogVHV5IHZheSwgbW90IHNvIG5ndW9pIGRhbiBtYSBjaHVuZyB0b2kg Z2FwIHRhaSBDb25nIHZpZW4gVGFvIERhbiBkYSBidWMgeHVjIHRydW9jIA0KdmllYyBkb25nIGN1 YSBraHUgdnVpIGNob2kgZGFuaCBjaG8gdHJlIGVtIG8gY29uZyB2aWVuIG5heS4gIlZhbiBkZSBs YSBjb25nIHRhYyBxdWFuIGx5IA0Kbmh1IHRoZSBuYW8gZGUgYmFvIGRhbSBhbiB0b2FuIHRyYXQg dHUgY2hvIGNhYyBlbSB2dWkgY2hvaSBjaHUga2hvbmcgcGhhaSBoZSBjdSBraG9uZyANCnF1YW4g bHkgZHVvYyB0aGkgZG9uZyBjdWEiIC0gbW90IG5ndW9pIGRhbiBub2kuIA0KDQpQaG8gYmFuIFZh biBob2EgWGEgaG9pIEhETkQgVFAuSENNIC0gb25nIE5ndXllbiBWYW4gTWluaCBjaG8gYmlldDog SGllbiBuYXksIA0KdHJlbiBkaWEgYmFuIFRQIGNoaSBjbyAxIGNvbmcgdmllbiB2YSBzYW4gY2hv aSBjaG8gdHJlIGVtIGR1bmcgbmdoaWEsIGxhIENvbmcgdmllbiANCktoYW5oIEhvaSBvIFEuNDsg Y2FjIGNvbmcgdmllbiBraGFjIGN1bmcgY28ga2h1IHZ1aSBjaG9pIGNobyB0cmUgZW0sIG5odW5n IHF1eSBtbyByYXQgDQpuaG8uIFRQIGRhbmcgY2FuIGNvIHRoZW0gbmhpZXUgc2FuIGNob2kgY2hv IHRyZSBlbSwgdm9pIGNhYyB0cm8gY2hvaSB0YXAgdGhlIGN1bmcgbmh1IGNhIA0KbmhhbiwgbyBk YW5nIG1pZW4gcGhpIGhvYWMgY28gdGh1IHRpZW4uIE9uZyBNaW5oIGN1bmcgYnVjIHh1YzogIlZp ZWMgU28gR1RWVCBxdXlldCANCmRpbmggdGFtIG5ndW5nIGtodSB0cm8gY2hvaSBjaG8gdGhpZXUg bmhpIG8gQ29uZyB2aWVuIFRhbyBEYW4gbGEga2hvbmcgaG9wIGx5LCBib2kgdmkgDQpjaHVuZyB0 YSBkYW5nIGNhbiBwaGFpIGRhdSB0dSB0aGVtIG5oaWV1IGtodSB2dWkgY2hvaSBuaHUgdGhlIi4g DQoNClRoZW8gcXVhbiBkaWVtIGN1YSBIRE5EIFRQLCB0cm9uZyBreSBob3AgY3VvaSBuYW0gbmF5 LCBzZSByYSBuZ2hpIHF1eWV0IHZlIHZpZWMgZGF1IA0KdHUgY2FjIGtodSB2dWkgY2hvaSBjaG8g dHJlIGVtIHRhaSBjYWMgY29uZyB2aWVuLCBjYWMgbmhhIHZhbiBob2EgdGhpZXUgbmhpLCB0cm9u ZyBkbyB0YW5nIA0KY3VvbmcgZGF5IG5hbmcga2hpZXUgdmEgdGFuZyBjdW9uZyBzYW4gY2hvaSBj aG8gY2FjIGVtLiBNb3QgdGhhbmggcGhvIGxvbiBuaHUgDQpUUC5IQ00sIHZvaSBraG9hbmcgMSw2 IHRyaWV1IHRyZSBlbSwgdGhpIHZpZWMgeGF5IGR1bmcgY2FjIHNhbiBjaG9pIGRhbmggY2hvIHRo aWV1IG5oaSANCmxhIGRpZXUgY2FwIGJhY2gsIGNodSBraG9uZyBseSBkbyBnaSBsYWkgZGVwIGRp Lg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjgvMjAxMDA3 MDYxNTAyMDAuYXNweCAwNi8wNy8yMDEwIDE1OjUyIA0KDQpUUCBIQ006IFF1eSBob2FjaCBuaGEg Y2FvIHRhbmcgdGFpIGtodSB2dWMgdHJ1bmcgdGFtIFRQLkhDTSAtICJOaHVuZyBjYXkgdGFtIGNh bSBjaGkgY2hpdCB0cmVuIGNoaWVjIGJhbmgiIA0KDQpEaWVuIHRpY2ggZGF0IGNobyBnaWFvIHRo b25nIHRhaSBUUC5IQ00gY2hpIGNvLi4uIDUlIC0gUXV5IGhvYWNoIGtob25nIGNvIGR1IGNobyBj aG8gZ2lhbyB0aG9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2J2a2gvMjAxMDA4L1Jh by1yYW8tdG8tRGllbi1sdWMtQmluaC1DaGFuaC1UUEhDTS1tb2MtdHVpLWtoYWNoLTkzMDg5MC8g MTY6MTIsIDIyLzA4LzIwMTAgKEdNVCs3KQ0KDQpUUC5IQ006IE5ndW9pIGRhbiByYW8gcmFvIHRv IERpZW4gbHVjIEJpbmggQ2hhbmggbW9jIHR1aSBraGFjaA0KDQotIFNhdSBwaGFuIGFuaCBjdWEg MSBobyBkYW4gdHJlbiBWaWV0TmFtTmV0IHZlIHZpZWMgbm9wIHBoYXQgZG8gZG9uZyB0aWVuIGRp ZW4gbXVvbiwgDQpuaGlldSBobyBkYW4gaHV5ZW4gQmluaCBDaGFuaCBhbyBhbyB0byBiaSBuaGEg ZGllbiAibW9jIHR1aSIuIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzM5 MzkzMy9LaGF0LW51b2Mtc2FjaC12aS1xdXktaG9hY2gtInRyZW8iLmh0bWwgUVVBTkcgS0hBSSAw Ni8wOC8yMDEwLCAwNTo1MCAoR01UKzcpIA0KDQpUUCBIQ006IEtoYXQgbnVvYyBzYWNoIHZpIHF1 eSBob2FjaCAidHJlbyIgDQoNClRoZW8gcXV5IGRpbmgsIGRvbiB2aSBjYXAgbnVvYyBwaGFpIGtl byBkdW9uZyBvbmcgZ2FuIGRvbmcgaG8gbnVvYyBtaWVuIHBoaSBjaG8gDQpraGFjaCBoYW5nLiBU aGUgbmh1bmcgdGFpIFRQLkhDTSwgbmhpZXUga2h1IHZ1YyBuZ2FuaCBjYXAgbnVvYyBraG9uZyBk YW0gZGF1IHR1IA0KbWEgbmd1b2kgZGFuIG11b24gYm8gdGllbiB0dWkgcmEgZGUga2VvIG9uZywg bGFwIGRvbmcgaG8gY3VuZyBraG9uZyBkdW9jLg0KDQpDaHV5ZW4gbmF5IHhheSByYSB2b2kgaGFu ZyBuZ2FuIGhvIGRhbiB0YWkgY2FjIGtodSBxdXkgaG9hY2ggInRyZW8iIG8gYXAgNCwgeGEgQmlu aCANCkh1bmcsIEguQmluaCBDaGFuaCB2YSBraHUgdnVjIFAuMTMsIFEuQmluaCBUaGFuaC4NCg0K UGhhaSBkdW5nIG51b2MgZG8NCg0KQ2FjaCBraG9uZyB4YSBraHUgZG8gdGhpIFBodSBNeSBIdW5n LCBoYW5nIG5nYW4gaG8gZGFuIHNvbmcgZG9jIGR1b25nIFBoYW0gSHVuZywgDQphcCA0LCB4YSBC aW5oIEh1bmcgcGhhaSBjaGl1IGNhbmggdGhpZXUgbnVvYyBzYWNoLiBIb24gY2h1YyBuYW0gcXVh LCBiaWV0IGJhbyBsYW4gDQpuZ3VvaSBkYW4gbyBkYXkgdmFjIGRvbiBnbyBjdWEgY2FjIGNvIHF1 YW4gY2h1YyBuYW5nIHZvaSBtb25nIG1vaSBkdW9jIGNhcCBudW9jIA0KDQpzYWNoIG5odW5nIGRl dSBuaGFuIGR1b2Mgbmh1bmcgY2FpIGxhYyBkYXUgdmkga2h1IHZ1YyBuYXkgbmFtIHRyb25nIGto dSBxdXkgaG9hY2guDQpDdW5nIGRvIG5hbSB0cm9uZyBraHUgcXV5IGhvYWNoIGtodSBkYW4gY3Ug QmluaCBIb2EsIFAuMTMsIFEuQmluaCBUaGFuaCBtYSBuaGlldSANCm5hbSBxdWEgaGFuZyBjaHVj IGhvIGRhbiBvIGhlbSAyOTUgTm8gVHJhbmcgTG9uZyBjaGl1IGNhbmgga2hhdCBudW9jIHNhY2gu IEJhIFZ1IA0KVGhpIExlIEhpZW4sIG1vdCBuZ3VvaSBkYW4gbyBkYXksIGtlOiAiRGUgY28gbnVv YyBkdW5nLCBjYWNoIDItMyBuZ2F5IHRvaSBwaGFpIGRheSANCnNvbSBtb3QgbGFuIGNhbmggbXVh IGtob2FuZyAxMCBkb2kgbnVvYyB0dSBuaHVuZyBuZ3VvaSBnYW5oIG51b2MgdHJvbmcgaGVtIHZv aSBnaWEgDQo0LjAwMCBkb25nL2RvaSBudW9jIGtob2FuZyAzNSBsaXQiLg0KDQpLaG9uZyBjb25n IGJhbmcgdm9pIGRhbiBraHUgcXV5IGhvYWNoDQoNCk9uZyBQaGFuIFZhbiBDb25nLCBwaG8gY2h1 IHRpY2ggVUJORCB4YSBCaW5oIEh1bmcsIGNobyBiaWV0IGtodSB2dWMgYXAgNCBuYW0gDQp0cm9u ZyBraHUgcXV5IGhvYWNoIGxhbmcgZGFpIGhvYyB2YSBraHUgZGFuIGN1IGNvIHF1eWV0IGRpbmgg Y3VhIFRodSB0dW9uZyBDaGluaCBwaHUgDQp0aHUgaG9pIGRhdCB0dSBuYW0gMTk5Ni4gVmllYyBn aWFpIHRvYSBkZW4gYnUgZHVvYyBnaWFvIGxhaSBjaG8gQ29uZyB0eSBwaGF0IHRyaWVuIGNvbmcg DQpuZ2hpZXAgVGFuIFRodWFuIHRodWMgaGllbiB0cnVvYyBkZSBiYW4gZ2lhbyBsYWkgY2hvIENv bmcgdHkgbGllbiBkb2FuaCBQaHUgTXkgSHVuZywgDQpuaHVuZyBkZW4gbmF5IGNvbmcgdGFjIHRo b2EgdGh1YW4gZGVuIGJ1IHZhbiBjaHVhIHh1YyB0aWVuLiANCg0KT25nIENvbmcgbm9pIG9uZyB0 aGF1IGhpZXUgbm9pIGtoYW8ga2hhdCBudW9jIHNhY2ggY3VhIGhvbiAyLjAwMCBobyBkYW4gbyBk aWEgDQpwaHVvbmcuIENvbiBtb3QgcGhvIGdpYW0gZG9jIENvbmcgdHkgY28gcGhhbiBDYXAgbnVv YyBDaG8gTG9uIGNobyBiaWV0IGRhIGRlbiANCmtoYW8gc2F0IHZhIGxlbiBwaHVvbmcgYW4gcGhh dCB0cmllbiBtYW5nIGx1b2kgY2FwIG51b2MgY2hvIGtodSB2dWMgYXAgNCwgeGEgDQpCaW5oIEh1 bmcgdm9pIHRvbmcgdm9uIGxlbiBnYW4gMzAgdGkgZG9uZyBuaHVuZyBkbyB2dW9uZyBxdXkgaG9h Y2ggbmVuIGtob25nIHRoZSBkYXUgdHUuIA0KDQpSbyByYW5nIHZpZWMgcXV5IGhvYWNoIHZhIHRp ZW4gZG8gdGh1YyBoaWVuIHF1eSBob2FjaCBsYSBkbyBOaGEgbnVvYyBsYW0gY2h1IGtob25nIA0K cGhhaSB0cmFjaCBuaGllbSBjdWEgbmd1b2kgZGFuLCBuaHVuZyBraGkgcGhhdCBzaW5oIG5odW5n IGhlIGx1eSBkbyBxdXkgaG9hY2gga2VvIGRhaSANCnRoaSBuZ3VvaSBkYW4gcGhhaSBnYW5oIGNo aXUuIE5odSB2YXkgbGEga2hvbmcgY29uZyBiYW5nLiANCg0KT25nIFRSVU9ORyBUUk9ORyBOR0hJ QSAoZGFpIGJpZXUgSERORCBUUC5IQ00pIGNobyBiaWV0OiBOZXUgZG8gbG9pIGNobyANCnF1eSBo b2FjaCBtYSBraG9uZyBjdW5nIGNhcCBudW9jIHNhY2ggY2hvIGRhbiBsYSBraG9uZyBjaGFwIG5o YW4gZHVvYzogVmllYyBuYXkgbGEgDQp0cmFjaCBuaGllbSBjdWEgTmhhIG51b2MgdmkgTmhhIG51 b2MgbGFtIHF1eSBob2FjaCBjaHUga2hvbmcgcGhhaSBuZ3VvaSBkYW4gbGFtLiANCg0KVHUgY2F1 IGNodXllbiBraGF0IG51b2Mgc2FjaCBjdWEgYmEgY29uIGFwIDQsIHhhIEJpbmggSHVuZyAoQmlu aCBDaGFuaCkgdmEgYmEgY29uIA0KaGVtIDI5NSBObyBUcmFuZyBMb25nIChCaW5oIFRoYW5oKSBj YW4geGVtIGxhaSBxdXkgaG9hY2ggY29uIGtoYSB0aGksIGhvcCBseSB0aGkgDQpuaGFuaCBjaG9u ZyB0cmllbiBraGFpLCBuZXUga2hvbmcgdGhpIHhvYSBkaSwga2hvbmcgbmVuIGRlIHF1eSBob2Fj aCAidHJlbyIga2VvIGRhaS4gDQoNCk5odW5nIG5ndW9pIHRodWMgaGllbiBxdXkgaG9hY2ggbmVu IGRhdCBtaW5oIHZhbyB2aSB0cmkgbmh1bmcgbmd1b2kgZGFuIGRhbmcgc29uZyANCnRyb25nIHZ1 bmcgcXV5IGhvYWNoIGRlIGNvIGNhY2ggaGFuaCB4dSBwaHUgaG9wLg0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTIwNDI3MDUuYXNweCAxMi8w Ny8yMDEwIDQ6MjcgDQoNClRQIEhDTTogVnVvbmcgbWFjIHRpZW4gc3UgZHVuZyBkYXQgLSBEZSBu YXkgc2luaCB0aWV1IGN1YyB2YSBwaHVjIHRhcCBob2EgdGh1IHR1YyANCiAgDQpNdWMgdGllbiBz dSBkdW5nIGRhdCBxdWEgY2FvIHNlIGRheSBnaWEgYmF0IGRvbmcgc2FuIHRhbmcgdm90IC0gQW5o OiBEaWVwIER1YyBNaW5oDQoNCkRvYW5oIG5naGllcCAoRE4pIGJhdCBkb25nIHNhbiAoQkRTKSB0 YWkgVFAuSENNIGRhbmcga2V1IGN1dSB2aSBzbyB0aWVuIHN1IGR1bmcgZGF0IA0KKFNERCkgcGhh aSBkb25nIHRoZW8gTmdoaSBkaW5oIDY5IChjbyBoaWV1IGx1YyB0dSAxLjEwLjIwMDkpIGNhbyBj aG90IHZvdC4gDQoNCiJIb2FuZyBxdWEgeGluIHJ1dCBsYWkgaG8gc28iIA0KDQpUaGVvIG9uZyBM ZSBOZ29jIFR1LCBHaWFtIGRvYyBDb25nIHR5IGtpbmggZG9hbmggcGhhdCB0cmllbiBuaGEgQmlu aCBEYW4sIHZpZWMgdGhhbSANCmRpbmggZ2lhIGRhdCBnYW4gbmh1IGR1b2Mga2hvYW4gdHJvbiBj aG8gZG9uIHZpIHR1IHZhbiwgdHV5IG5oaWVuIHRoYW0gZGluaCBjdWEgY2FjIGRvbiANCnZpIG5h eSBjaGluaCB4YWMgdG9pIGRhdSwgc2F0IGdpYSB0aGkgdHJ1b25nIHRvaSBtdWMgbmFvIHRoaSBr aG9uZyB0aGUgY2hhYyBjaGFuIGR1b2MuIA0KSG9uIG51YSwgbGF5IGdpIGRhbSBiYW8gc3UgdGhh bSBkaW5oIG5heSBsYSB2byB0dSwgYm9pIGhvYW4gdG9hbiBjbyB0aGUgeGF5IHJhIHRpbmggdHJh bmcgDQpETiAibmhvIHZhIiB0dSB2YW4gdGhhbSBkaW5oIGdpYSBkYXQgdGhhcCB4dW9uZyAodHJv bmcgdHJ1b25nIGhvcCBkb25nIHRpZW4gU0REKSANCmhvYWMgY2FvIGxlbiAodHJvbmcgdHJ1b25n IGhvcCBkaW5oIGdpYSBkZSBiYW4gY2hvIE5oYSBudW9jKS4gDQoNCmh0dHA6Ly93d3cubGFvZG9u Zy5jb20udm4vSG9tZS9NdWEtZ2F5LWtldC14ZS10cmFtLXRyb25nLzIwMTA2LzE4OTkwMi5sYW9k b25nIDg6NDEgQU0sIDI3LzA2LzIwMTANCg0KVFAgSENNOiBNdWEgZ2F5IGtldCB4ZSB0cmFtIHRy b25nICAtIERpZXUgZGFuZyBub2kgbGEgbmhpZXUgdHV5ZW4gZHVvbmcgZGEgbGFwIGRhdCBoZSB0 aG9uZyBjb25nIG5odW5nIHZhbiBjdSBtdWEgbGEgbmdhcC4gDQoNCmh0dHA6Ly92aWV0YmFvLnZu L1hhLWhvaS9UUEhDTS1PLW5oaWVtLW5ndW9uLW51b2Mtby1tdWMtYmFvLWRvbmcvNzAwMjUyNTUv MTU3LyAyOC85LzIwMDUsIDExOjM4IEdNVCs3IA0KDQpUUEhDTTogTyBuaGllbSBuZ3VvbiBudW9j IG8gbXVjIGJhbyBkb25nIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVFAtSENNLUtob25n LWtoaS1iaS1vLW5oaWVtLW5nYXktY2FuZy10cmFtLXRyb25nLzQ1MjM4MDAzLzE1Ny8gMTEvNS8y MDA3LCAyMzoyOCBHTVQrNyANCg0KVFAuSENNOiBLaG9uZyBraGkgYmkgbyBuaGllbSBuZ2F5IGNh bmcgdHJhbSB0cm9uZyAtIGJlbmggdGF0IGdpYSB0YW5nIA0KDQpodHRwOi8vbmV3cy5iYWNzaS5j b20vY2h1eWVuLWtob2EvdW5nLWJ1b3UvdHBoY20taG9uLTUwMDAtdHJ1b25nLWhvcC1tYWMtdW5n LXRodS1tb2ktbmFtLS5odG1sIDA0LzEyLzIwMDkgMDc6NTkgDQoNClRQLkhDTTogSG9uIDUuMDAw IHRydW9uZyBob3AgbWFjIHVuZyB0aHUgbW9pIG5hbSANCg0KaHR0cDovL3d3dy5zZ2dwLm9yZy52 bi9tb2l0cnVvbmdkb3RoaS8yMDEwLzUvMjI0OTY4LyAwMy8wNS8yMDEwLCAwMjoyNSAoR01UKzcp DQoNClRQSENNOiBPIG5oaWVtIG1vaSB0cnVvbmcgLSBIaWVtIGhvYSBtb2kgdHUgdGluaCBCaW5o IER1b25nIA0KDQpDaGkgY28gMTQvMzAwIGRvYW5oIG5naGllcCBkdW9jIGtoYW8gc2F0IHRhaSB0 aW5oIEJpbmggRHVvbmcgZGF0IHRpZXUgY2h1YW4gdmUgbW9pIA0KdHJ1b25nLiBOaHVuZyBkYW5n IGxvIG5nYWkgaG9uLCB2aWVjIGdheSBvIG5oaWVtIGN1YSBkb2FuaCBuZ2hpZXAgKEROKSBkYW5n IGhvYXQgDQpkb25nIHNhbiB4dWF0IHRyZW4gZGlhIGJhbiB0aW5oIEJpbmggRHVvbmcgbGFpIGxh IG1vaSBob2EgZG9pIHZvaSBjdW9jIHNvbmcgbmd1b2kgZGFuIA0KVFBIQ00gKDEwMDEga2lldSB2 aSBwaGFtKSANCg0KVHJvbmcgYm9pIGNhbmggVFBIQ00gZGFuZyBnb25nIG1pbmggdGltIGdpYWkg cGhhcCBjYWkgdGhpZW4gdGluaCB0cmFuZyBvIG5oaWVtIG1vaSANCnRydW9uZyBuaGFtIGNhaSB0 aGllbiBjaGF0IGx1b25nIGN1b2Mgc29uZyBjaG8gbmd1b2kgZGFuIHRoaSBwaGlhIHRodW9uZyBu Z3VvbiBCaW5oIER1b25nLCANCmNoYXQgdGhhaSBjb25nIG5naGllcCBjaHVhIHF1YSB4dSBseSB2 YW4gdm8gdHUgeGEgcmEgDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL1ZpZXRuYW1l c2VOZXdzL3ZpZXRuYW1uZXdzL0Fpci1wb2xsdXRpb24taW4tYmlnLVZpZXRuYW1lc2UtY2l0aWVz LWJlaW5nLWFsZXJ0ZWQtMTAxMTIwMTAxMDEzMDcuaHRtbCBSRkEtMTEtMTAtMjAxMA0KDQpUUCBI Q00gLSBIYSBOb2k6IEtob25nIGtoaSBjYWMgZG8gdGhpIGxvbiBjbyBub25nIGRvIG8gbmhpZW0g bmFuZw0KDQpOYW0gZG8gdGhpIGxvbiB0YWkgVmlldCBOYW0gaGllbiBjbyBub25nIGRvIG8gbmhp ZW0ga2hvbmcga2hpIGtoYSBjYW8gbGEgdGhhbmggcGhvIEhvIA0KQ2hpIE1pbmgsIEJpbmggRHVv bmcsIERvbmcgTmFpLCBIYWkgUGhvbmcgdmEgSGEgTm9pLg0KDQpCYW8gU2FpZ29uIEdpYWkgUGhv bmcgbW9pIGRhbmcgdGFpIHRob25nIHRpbiAgbmF5IHZhICBjaG8gYmlldCB0aGVtLCBjYWMgbmd1 eWVuIG5oYW4gDQpjaGluaCBkYW4gdG9pIHRpbmggdHJhbmcgbmF5IGxhIGRvIGhhdSBxdWEgY3Vh IGhvYXQgZG9uZyBzYW4geHVhdCBjb25nIG5naGllcCB2YSBnaWFvIA0KdGhvbmcuDQoNClRoZW8g a2hhbyBzYXQgY3VhIEJvIENvbmcgdGh1b25nIHRoaSBjYWMgaG9hdCBkb25nIHNhbiB4dWF0IGNv bmcgbmdoaWVwIGNoaWVtIDQwJSANCm5ndXllbiBuaGFuIGdheSByYSBvIG5oaWVtLCBwaGFuIGNv biBsYWkgZG8gc2luaCBob2F0IGhhbmcgbmdheSBjdWEgbmd1b2kgZGFuIHZhIA0KbmdhbmggZ2lh byB0aG9uZyAsIHZhbiB0YWkgZ2F5IHJhLg0KDQpPIG5oaWVtIHRhbmcgY2FvIHRhaSBjYWMga2h1 IGNvbmcgbmdoaWVwIGxhIGRvIG5odW5nIHh1IGx5IGtoaSB0aGFpIGNvbiBkb24gZ2lhbiwgaG9h YyANCmRvYW5oIG5naGllcCBjbyB5IHhhIGtoaSB0aGFpIGtob25nIHF1YSB4dSBseS4NCg0KQ2hv IGRlbiBuYXkgY2FjIGhpbmggdGh1YyBraWVtIHRyYSwgeHUgbHkgbmh1bmcgdnUgdmkgcGhhbSBt b2kgdHJ1b25nIGNoaSBjaHUgdHJvbmcgDQpkZW4gdmllYyB4dSBseSBudW9jIHRoYWkgdmEgY2hh dCB0aGFpIG5ndXkgaGFpIGN1YSBkb2FuaCBuZ2hpZXAgbWEgY2h1YSBtYXkgcXVhbiB0YW0gDQpk ZW4ga2hpIHRoYWksIHZpIHRoZSBuaGlldSBkb2FuaCBuZ2hpZXAgdmFuIHhlbSBuaGUgdmFuIGRl IG5heS4gDQoNClZlIGNhYyBob2F0IGRvbmcgZ2lhbyB0aG9uZywgdmFuIHRhaSwgc28gcGh1b25n IHRpZW4gZGkgY2h1eWVuIGNhIG5oYW4gZGEgdnVvdCBjb24gc28gDQpoYW5nIHRyaWV1LCB0dXkg bmhhIG51b2MgdmFuIGtodXllbiBraGljaCB2aWVjIHN1IGR1bmcgcGh1b25nIHRpZW4gY2h1eWVu IGNobyBjb25nIA0KY29uZywgbmh1bmcgY3VuZyBjaHVhIHRodSBodXQgZHVvYyBzdSB0aGFtIGdp YSB0aWNoIGN1YyBjdWEgbmd1b2kgZGFuLg0KDQoiTyBuaGllbSBraG9uZyBraGkgbGEgc2F0IHRo dSB0aGFtIGxhbmciLCBkbyBsYSBjYW5oIGJhbyBjdWEgY2FjIGNodXllbiBnaWEsIHZpIGtob25n IA0KZ2F5IGhhdSBxdWEgdHVjIGtoYWMgbWEgdGlldSBkaWV0IGFtIHRoYW0gc3VjIGtob2UgY3Vh IHRhcCB0aGUgdmUgbGF1IGRhaS4NCiANCmh0dHA6Ly93d3cuZGlhY2hhdHZuLmNvbS9mb3J1bXMv dHAtaGNtLW1vaS1uZ3Vvbi1udW9jLWRldS1vLW5oaWVtLXQzNzc1Lmh0bWwgMDYvMjAwOQ0KDQpU UCBIQ006IE1vaSBuZ3VvbiBudW9jIGRldSBvIG5oaWVtIA0KDQpodHRwOi8vdmlldGJhby52bi9B bi1uaW5oLVBoYXAtbHVhdC9Tby1rZXQtMi1uYW0tY2FpLWNhY2gtdHUtcGhhcC1LZXQtcXVhLWNo dWEtbmh1LW1vbmctbXVvbi80MDA1MzcwMC8yMTgvIENISSBNQUkgVmlldCBCYW8gKFRoZW9fVHVv aVRyZSkgICAzMC8xMC8gMjAwNCwgMDg6NDIgR01UKzcgDQoNClRQIEhDTTogMiBuYW0gY2FpIGNh Y2ggdHUgcGhhcCAtICJ5ZXUga2VtLCB0b24gdGFpIGxhaSBuaGlldSBob24iIA0KDQpCYW8gY2Fv IHRhaSBob2kgbmdoaSBzbyBrZXQgaGFpIG5hbSB0aHVjIGhpZW4gbmdoaSBxdXlldCAwOC1OUS9U VyBjdWEgQm8gQ2hpbmggdHJpIA0KdmUgY2FpIGNhY2ggdHUgcGhhcCBkbyBUaGFuaCB1eSBUUC5I Q00gdG8gY2h1YyBuZ2F5IDI5LTEwLg0KDQpPbmcgVHJhbiBIb2FuZyBUaGFtLCB0cnVvbmcgQmFu IGNoaSBkYW8gY2FpIGNhY2ggdHUgcGhhcCBUUC5IQ00sIGNobyBiaWV0IHRyb25nIGhhaSANCm5h bSBxdWEgY2FjIG5nYW5oIGNodWMgbmFuZyBkYSB0aHUgbHkga2V0IHRodWMgZGlldSB0cmEgMTYu ODYzIHZ1LCB0cnV5IHRvIDE1LjcyNSB2dSwgDQpkaW5oIGNoaSBkaWV1IHRyYSAyNzYgdnUsIFRv YSBhbiBuaGFuIGRhbiBUUCBkYSB4ZXQgeHUgMTUuMzE4IHZ1LCBkYXQgdGkgbGUgOTMsNTUlLg0K DQpWaWVjIGN1bmcgY28sIHhheSBkdW5nIGNhYyBjbyBxdWFuIHR1IHBoYXAgdHV5IG5oaWV1IGNv IGdhbmcgbmh1bmcgbmhpbiBjaHVuZyB2YW4gDQpjaHVhIGRhcCB1bmcgZHVvYyB5ZXUgY2F1IG5o aWVtIHZ1IHRyb25nIHRob2kga3kgbW9pLCB2aWVjIHBoYSBhbiBjb24gdGhhcCwgZG9pIG5ndSAN CmNhbiBibyB0dSBwaGFwIGNvbiB0aGlldSwgdHJpbmggZG8gY2h1YSBkb25nIGRldSwgbW90IGJv IHBoYW4gc2Egc3V0IHBoYW0gY2hhdCBkYW8gZHVjLg0KDQpCYW8gY2FvIGN1bmcgY2hvIGJpZXQg dGkgbGUgdG9hIGFuIHRyYSBobyBzbyBjaG8gVktTIGRlIGRpZXUgdHJhIGJvIHN1bmcgbGEgNCw3 JSwgdHV5IA0KbmhpZW4gdGhlbyBiYW8gY2FvIHRhaSBjdW9jIGhvcCBRdW9jIGhvaSBkYW5nIGRp ZW4gcmEgdGhpIHRpIGxlIG5heSB0b2kgMTMlLg0KDQpUaGVvIGNoYW5oIGFuIFRvYSBhbiBuaGFu IGRhbiBUUC5IQ00gQnVpIEhvYW5nIERhbmgsIHZ1b25nIG1hYyBuaGF0IGN1YSB0b2EgYW4gDQpo aWVuIG5heSBsYSB0aGVvIHRpbmggdGhhbiBjdWEgbmdoaSBxdXlldCAwOC1OUS9UVyB2aWVjIHhl dCB4dSBjdWEgdG9hIGFuIHBoYWkgZHVhIHZhbyANCmtldCBxdWEgcXVhIHRyaW5oIHRyYW5oIHR1 bmcgdGFpIHBoaWVuIHRvYSBuaHVuZyBCbyBsdWF0IFRUSFMgMjAwMyBraG9uZyBxdWkgZGluaCB0 byANCnR1bmcgdHJhbmggdHVuZyBtYSB2YW4gbGEgeGV0IGhvaSwgY2hpIGNvIHRyYW5oIGx1YW4g Z2l1YSBWS1MgdmEgbHVhdCBzdS4gQ2hpbmggdmkgdmF5LCANCmNhYyBsdWF0IHN1IHZhbiB0aHVv bmcga2hpZXUgbmFpIHRvYSB2ZSB2YW4gZGUgdG9hIGNodWEgdGh1YyBoaWVuIGRheSBkdSB2aWVj IHRyYW5oIHR1bmcgDQp0YWkgcGhpZW4gdG9hLg0KDQpMdWF0IHN1IE5ndXllbiBEYW5nIFRydW5n LCBjaHUgbmhpZW0gRG9hbiBsdWF0IHN1IFRQLkhDTSwgY3VuZyBjaG8gYmlldDogIlRodWMgdGUg DQpjYWMgbHVhdCBzdSBraGkgdGhhbSBnaWEgYmFvIGNodWEgZGEgZ2FwIG5oaWV1IHRybyBuZ2Fp IHZlIHRodSB0dWMuIFRvYSBhbiB5ZXUgY2F1IGx1YXQgc3UgDQp0aGFtIGdpYSBiYW8gY2h1YSBw aGFpIGNvIHZhbiBiYW4gY2hhcCBuaGFuIGx1YXQgc3UgY3VhIGJpIGNhbyB0aGkgbW9pIGNhcCBn aWF5IGNodW5nIA0KbmhhbiBiYW8gY2h1YSwgbmh1bmcgbmV1IGJpIGNhbyBiaSB0YW0gZ2lhbSBt YSBsdWF0IHN1IGNodWEgY28gZ2lheSBjaHVuZyBuaGFuIGJhbyANCmNodWEgdGhpIGtob25nIHZh byBkdW9jIHRyYWkgZ2lhbSBkZSBsYXkgdmFuIGJhbiBkb25nIHkgbHVhdCBzdSBjdWEgYmkgY2Fv PyIuDQoNClRoZW8geSBraWVuIGN1YSBjYWMgY28gcXVhbiB0dSBwaGFwIHRhaSBob2kgbmdoaSwg bW90IHNvIGhhbiBjaGUgdG9uIHRhaSBuaHUgYW4gdG9uIGRvbmcsIA0KdGkgbGUgcGhhIGFuIGNo dWEgY2FvLi4uIG5ndXllbiBuaGFuIG1vdCBwaGFuIGN1bmcgZG8gdmllYyB0aGlldSBodXQgYmll biBjaGUgY3VhIG5nYW5oLiANCk1hIGNoZSBkbyBjaGluaCBzYWNoIGRvaSB2b2kgY2FuIGJvIG5n YW5oIGNoaW5oIGxhIG5ndXllbiBuaGFuIGtob25nIHRodSBodXQgZHVvYyANCm5oYW4gbHVjIHZh byBsYW0gdmllYyB0cm9uZyBuZ2FuaCB0dSBwaGFwLiBIaWVuIG5heSBjYSBjbyBxdWFuIGRpZXUg dHJhLCB2aWVuIGtpZW0gc2F0IA0KdmEgdG9hIGFuIGRldSB0aGlldSByYXQgbmhpZXUgYmllbiBj aGUuDQoNClBoYXQgYmlldSB0YWkgaG9pIG5naGksIEJpIHRodSBUaGFuaCB1eSBUUC5IQ00gTmd1 eWVuIE1pbmggVHJpZXQgZGEgbHV1IHkgY2FjIGNvIA0KcXVhbiB0dSBwaGFwIGN1YSBUUCBwaGFp IGRvdCBwaGEsIGNodSBkb25nIHRyb25nIGNvbmcgdGFjIGNhbiBiby4gTmV1IHRoaWV1IGh1dCBi aWVuIA0KY2hlIHRoaSBwaGFpIHN1IGR1bmcgbmhhbiB2aWVuIGhvcCBkb25nLCB0cnVvYyBtYXQg Y2h1YSB0aGUgZGFtIGJhbyAiY2hhdCIgY3VhIGRvaSBuZ3UgDQpjYW4gYm8sIGNvbmcgY2h1YyBu Z2FuaCB0aGkgY3VuZyBwaGFpIGRhbSBiYW8gZHUgImx1b25nIiBkZSBnaWFpIHF1eWV0IGNvbmcg dmllYy4NCg0KQmkgdGh1IFRoYW5oIHV5IFRQLkhDTSBOZ3V5ZW4gTWluaCBUcmlldDogIlF1YSB0 cmluaCBjYWkgY2FjaCB0dSBwaGFwIGRhIGRhdCBkdW9jIA0KbmhpZXUga2V0IHF1YSwgbmh1bmcg Y3VuZyBxdWEgYmFvIGNhbyB0aGkgdGhheSBwaGFuIHlldSBrZW0sIHRvbiB0YWkgbGFpIG5oaWV1 IGhvbi4gQ29uZyANCnRhYyBwaG8gYmllbiwgdHV5ZW4gdHJ1eWVuIHBoYXAgbHVhdCBub2kgY2h1 bmcgY29uIHlldSwgbmhpZXUgbmd1b2kgZGFuIG5nYXkgY2Egbmh1bmcgDQpraWVuIHRodWMgcGhh cCBsdWF0IHNvIGRhbmcgY3VuZyBraG9uZyBiaWV0LiBUaSBsZSBhbiB0b24gZG9uZyBjdWEgY2Fj IG5nYW5oIGNvbiBjYW8sIA0Ka2hpZXUga2llbiBjdWEgZGFuIGNvbiBuaGlldSBuaHVuZyBjaHVh IGR1b2MgZ2lhaSBxdXlldC4gQ2FjIG5nYW5oIHR1IHBoYXAgY2FuIGhvcCBsYWkgDQp2YSBjdW5n IGJhbiBkZSBkdWEgcmEgcGh1b25nIGh1b25nIGRlbiBiYW8gZ2lvIHNlIGtob25nIGNvbiB0aW5o IHRyYW5nIGFuIHRvbiBkb25nIG5heT8iLg0KDQpPbmcgVHJ1b25nIFZpbmggVHJvbmcNCihUcmFv IGRvaSB2b2kgb25nIFRydW9uZyBWaW5oIFRyb25nLCBiaSB0aHUgVHJ1bmcgdW9uZyBEYW5nLCB0 cnVvbmcgQmFuIG5vaSBjaGluaCANCnRydW5nIHVvbmcpIA0KDQoqIE9uZyBkYW5oIGdpYSB0aGUg bmFvIHZlIHF1YSB0cmluaCBjYWkgY2FjaCB0dSBwaGFwIGRvaSB2b2kgdmllYyBoYW4gY2hlIG9h biBzYWkgY2hvIG5ndW9pIGRhbj8NCg0KLSBEYWkgZGEgc28gY2FjIHZ1IGFuIGR1b2MgeGV0IHh1 IGR1bmcgbmd1b2ksIGR1bmcgdG9pIG5odW5nIHZhbiBraG9uZyB0aGUgdHJhbmggZHVvYyANCmNv IG5odW5nIHZ1IG9hbiBzYWkuIFR1IGtoaSBjYWkgY2FjaCB0dSBwaGFwIGRlbiBuYXksIGNvbmcg dm9pIHZpZWMgYmFuIGhhbmggbmdoaSBxdXlldCANCjM4OCB2ZSBib2kgdGh1b25nIG9hbiBzYWkg ZG8gY28gcXVhbiB0byB0dW5nIGdheSByYSB0aGkgdmllYyBvYW4gc2FpIGNobyBuZ3VvaSBkYW4g ZGEgaGFuIA0KY2hlIHJhdCBuaGlldS4NCg0KKiBUaGVvIG9uZywgY28gaGF5IGtob25nIHRhbSBs eSBjYXUgdG9hbiBzbyBsYW0gb2FuIGRhbiBkZW4gYm8gbG90IHRvaSBwaGFtPw0KDQotIEhhbiBj aGUgb2FuIHNhaSBjaHVuZyBuYW8gdG90IGNodW5nIGF5LCBuaHVuZyBkYW5nIGxvIGxhIGhpZW4g Y28gdGFtIGx5IHZpIHNvIG9hbiBtYSANCmJvIGxvdCB0b2kgcGhhbS4gVGhlbyB0b2ksIHBoYWkg bmFuZyBjYW8gdHUgdHVvbmcsIHRyYWNoIG5oaWVtIGN1YSBjYW4gYm8gbmdhbmggdHUgcGhhcDog DQpjaG9uZyBsb3QgdG9pIHBoYW0gdmEgY2hvbmcgb2FuIHNhaSBjaG8gbmd1b2kgdm8gdG9pLg0K DQoqIFF1YSBuaHVuZyB2aWVjIGJvaSB0aHVvbmcgb2FuIHNhaSB2dWEgcm9pLCBoaW5oIG5odSBj aGkgY28gTmhhIG51b2MsIGNodWEgdGhheSBjYSANCm5oYW4gY2FuIGJvLCBjb25nIGNodWMgbmFv IGNoaXUgdHJhY2ggbmhpZW0/DQoNCi0gUGhhaSB4ZW0geGV0IHRyYWNoIG5oaWVtIGNhIG5oYW4g Y2FuIGJvIGNvbmcgY2h1YyBkb2kgdm9pIHR1bmcgdnUgdmllYyBjdSB0aGUsIGtob25nIA0KcGhh aSBzYWkgcGhhbSBjdWEgY28gcXVhbiB0byB0dW5nIHRyb25nIHZ1IG5hbyBjdW5nIGdpb25nIHZ1 IG5hby4gVHV5IHRpbmggY2hhdCBtdWMgZG8gDQpzYWkgcGhhbSBtYSBjYW4gYm8sIGNvbmcgY2h1 YyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0uDQoNCiogVGhlbyBvbmcsIHRob2kgZ2lhbiBxdWEgbmd1 eWVuIG5oYW4gY2hpbmggZGFuIGRlbiB2aWVjIHhheSByYSBvYW4gc2FpIGxhIGdpPw0KDQotIENo dW5nIHRvaSBzZSBjbyBjdW9jIG5naGllbiBjdXUsIHBoYW4gdGljaCBjYWMgbmd1eWVuIG5oYW4g ZGFuIGRlbiB2aWVjIHhldCB4dSwgdHJ1eSANCnRvIHNhaS4gVGh1YyB0ZSBjbyBuaGlldSBuZ3V5 ZW4gbmhhbjogZG8gbmFuZyBsdWMsIHRyaW5oIGRvIGNhbiBibywga2hvbmcgbG9haSB0cnUgY28g Y2EgDQp0cnVvbmcgaG9wIGNvIHksICJiZW5oIGJlbiBuYXkgYm8gYmVuIGtpYSIgY3VhIG5ndW9p IGNvIHRoYW0gcXV5ZW4uDQoNCkNodW5nIHRvaSBuZ2hpIHBoYWkgdHVuZyBidW9jIHhlbSB4ZXQg dmEgeHUgbHksIGNoYW4gY2hpbmggY29uZyB0YWMgZGlldSB0cmEsIHRydXkgdG8sIHhldCANCnh1 IGN1YSBjYWMgY28gcXVhbiB0byB0dW5nIGNobyBjaGluaCB4YWMsIGtob25nIGRlIHhheSByYSBv YW4gc2FpLCBnYXkgdGhpZXQgaGFpIG5naGllbSANCnRyb25nIGNobyBuZ3VvaSBiaSBvYW4gbWEg Ym9pIHRodW9uZyB2YXQgY2hhdCBjdW5nIGtob25nIHRoZSBidSBkYXAgZHVvYy4gIk5oYXQgbmhh dCANCnRhaSB0dSwgdGhpZW4gdGh1IHRhaSBuZ29haSIgbWEuDQoNCmh0dHA6Ly92aWV0YmFvLnZu L0FuLW5pbmgtUGhhcC1sdWF0L0NhaS1jYWNoLXR1LXBoYXAtY29uLW5oaWV1LXZ1b25nLSBtYWMv MTA4ODQ3ODEvMjE4LyAgTmd1eWVuIEhhaSAoVGhlb19WbkV4cHJlc3MubmV0KSAzMC8xMC8yMDA0 LCAxODo0MiBHTVQrNyANCg0KVFAgSENNOiBDYWkgY2FjaCB0dSBwaGFwIGNvbiBuaGlldSB2dW9u ZyBtYWMgDQoNCkRvaSBuZ3UgY2FuIGJvIGNvbiB0aGlldSwgdHJpbmggZG8ga2hvbmcgZG9uZyBk ZXUsIGhpZXUgcXVhIHRyb25nIGdpYWkgcXV5ZXQga2hpZXUgbmFpLCANCnRvIGNhbyBjaHVhIGNh byB2YSBtb3QgYm8gcGhhbiBzYSBzdXQgdmUgcGhhbSBjaGF0IGRhbyBkdWMuLi4gbGEgbmh1bmcg dmFuIGRlIGNvbiB0b24gDQp0YWkgdHUga2hpIHRodWMgaGllbiBOZ2hpIHF1eWV0IDA4LU5RL1RX IHZlIGNhaSBjYWNoIHR1IHBoYXAuDQoNCkRvaSB2b2kgbmdhbmgga2llbSBzYXQsIGJhIFZvIFRo aSBLaW0gSG9uZywgVmllbiB0cnVvbmcgVktTTkQgVFAgSENNIHRodWEgbmhhbjogDQoiS2V0IHF1 YSBjYWkgY2FjaCB0dSBwaGFwIGN1YSBWS1MgdHJvbmcgMiBuYW0gcXVhIGNodWEgdGh1YyBzdSBu aHUgeS4gQ2h1bmcgdG9pIHBoYWkgDQpuaGluIG5oYW4gcmFuZyB0cmluaCBkbywgbmFuZyBsdWMg Y3VhIGN1YSBjYW4gYm8ga2llbSBzYXQgY2h1YSBkZXUgdGF5LCBjaHVhIHRodWMgc3UgDQpuZ2Fu ZyB0YW0gdm9pIHlldSBjYXUgY3VhIGNhaSBjYWNoIHR1IHBoYXA6IHZhbiBjb24gdGluaCB0cmFu ZyBxdWEgdGhvaSBoYW4gdGFtIGdpYW0sIGhvDQogc28gYmkgdHJhIGRpIHRyYSBsYWkuLi4iLg0K DQpWaWVjIHRyYW5oIHR1bmcgdGFpIHBoaWVuIHRvYSB0aGVvIHF1eSBkaW5oIG1vaSBjdW5nIGNv biBuaGlldSBiYXQgY2FwLiBDaGFuaCBhbiBUQU5EIA0KVFAgSENNIEJ1aSBIb2FuZyBEYW5oIG5l dSBybzogaG9pIGRvbmcgeGV0IHh1IGRhIGRhbmggbmhpZXUgdGhvaSBnaWFuIHRob2EgZGFuZyBj aG8gDQpjYWMgYmVuLCBsdWF0IHN1IHRoYW0gZ2lhIHRyYW5oIGx1YW4sIHBoYXQgYmlldSB5IGtp ZW4sIGNodSB0b2EgdGh1YyBoaWVuIHZhaSB0cm8gZGlldSBoYW5oIA0KdHJvbmcgeGV0IGhvaSwg dGhlIGhpZW4gdGluaCBkYW4gY2h1LiAiVHV5IG5oaWVuLCBoaWVuIG5heSwgdGhlbyBuZ2hpIHF1 eWV0IDA4IHZpZWMgeGV0IHh1IA0KY3VhIFRvYSBhbiBwaGFpIGR1YSB2YW8ga2V0IHF1YSBxdWEg dHJpbmggdHJhbmggdHVuZyB0YWkgcGhpZW4gdG9hLiBOaHVuZyBCbyBsdWF0IFRUSFMgDQoyMDAz IGtob25nIHF1eSBkaW5oIHRvIHR1bmcgbGEgInRyYW5oIHR1bmciIG1hIHZhbiBsYSB4ZXQgaG9p LCBjaGkgY28gInRyYW5oIGx1YW4iIGdpdWEgDQpWS1MgdmEgbHVhdCBzdS4gVmkgdmF5LCBjYWMg bHVhdCBzdSB2YW4gdGh1b25nIGtoaWV1IG5haSB0b2EgdmUgdmllYyB0b2EgY2h1YSB0aHVjIGhp ZW4gDQpkYXkgZHUgdmllYyAidHJhbmggdHVuZyIgdGFpIHBoaWVuIHRvYSIsIG9uZyBEYW5oIG5v aS4NCg0KVmUgcGhpYSBEb2FuIGx1YXQgc3UgVFAgSENNLCBPbmcgTmd1eWVuIERhbmcgVHJ1bmcs IGNodSBuaGllbSBEb2FuIGx1YXQgc3UgVFAgDQp0cmluaCBiYXksIHRpbmggdGhhbiBjdWEgbmdo aSBxdXlldCB0aGUgaGllbiB0cm9uZyBxdXkgZGluaCBjdWEgQm8gbHVhdCBUbyB0dW5nIGhpbmgg c3UgbGEgDQpjaG8gcGhlcCBsdWF0IHN1IHRoYW0gdG8gdHVuZyBzb20sIHR1IGdpYWkgZG9hbiBr aG9pIHRvIHZ1IGFuLiBTb25nLCB0aHVjIHRlIGNhYyBsdWF0IHN1IA0KZGEgZ2FwIG5oaWV1IHRy byBuZ2FpIHZlIHRodSB0dWMuIFRvYSBhbiB5ZXUgY2F1IGx1YXQgc3UgdGhhbSBnaWEgYmFvIGNo dWEgcGhhaSBjbyB2YW4gDQpiYW4gY2hhcCBuaGFuIGx1YXQgc3UgY3VhIGJpIGNhbyB0aGkgbW9p IGNhcCBHaWF5IGNodW5nIG5oYW4gYmFvIGNodWEgbmh1bmcgbmV1IGJpIGNhbyANCmJpIHRhbSBn aWFtIG1hIGx1YXQgc3UgY2h1YSBjbyBHaWF5IGNodW5nIG5oYW4gYmFvIGNodWEgdGhpIGtob25n IHZhbyBkdW9jIHRyYWkgZ2lhbSANCmRlIGxheSB2YW4gYmFuIGRvbmcgeSBsdWF0IHN1IGN1YSBi aSBjYW8uIE5odW5nIHF1eSBkaW5oIHRyYWkgbmd1b2MgbmhhdSBuYXkga2hpZW4gY2FjIA0KbHVh dCBzdSBraG8gdGFjIG5naGllcC4NCg0KU28ga2V0IGhhaSBuYW0gdGh1YyBoaWVuIE5naGkgcXV5 ZXQgMDggaG9tIG5heSwgY2hvIHRoYXkgdHJvbmcgMiBuYW0gcXVhIGNhYyBjbyBxdWFuIA0KY2h1 YyBuYW5nIGRhIHRyaWV0IHBoYSAxNjQgYmFuZyBuaG9tIGdvbSA1ODcgdGVuIGdpZXQgbmd1b2ks IGN1b3AgdGFpIHNhbjsgMzcxIGJhbmcgDQpuaG9tIGdvbSA5NDggdGVuIGN1b3AgZ2lhdCB0YWkg c2FuOyA4OTAgbyBjbyBiYWMsMS41NTQgdnUgdmUgbWEgdHV5OyAxMjAgdnUgbGllbiBxdWFuIA0K ZGVuIG51b2MgbmdvYWkuLi4gVGluaCBoaW5oIHBoYW0gcGhhcCBoaW5oIHN1IHRhaSBUUCBIQ00g Z2lhbSBkYW5nIGtlLg0KDQpUdXkgbmhpZW4sIHRoZW8gb25nIFRyYW4gSG9hbmcgVGhhbSwgVHJ1 b25nIEJhbiBjaGkgZGFvIGNhaSBjYWNoIHR1IHBoYXAgVFAgSENNLCANCmhpZW4gdmFuIGNvbiB0 b24gdGFpIG5odW5nIHZhbiBkZSBuaHUgc28gdnUgYW4gdm9pIHRpbmggY2hhdCBuZ3V5IGhpZW0g dmFuIGNvbiB4YXkgcmEgDQpuaGlldSwgc28gdm9pIGNoaSB0aWV1IGRlIHJhIGxhIGNodWEgZGF0 LCB2aWVjIGtoYW0gcGhhIGFuIGNvbiB0aGFwLCBoaWV1IHF1YSBnaWFpIHF1eWV0IA0Ka2hpZXUg bmFpIHRvIGNhbyBjaHVhIGNhbywgZG9pIG5ndSBjYW4gYm8gdHUgcGhhcCBjb24gdGhpZXUsIHRy aW5oIGRvIGNodWEgZG9uZyBkZXUsIG1vdCANCnNvIGJvIHBoYW4gc2Egc3V0IHZlIHBoYW0gY2hh dCBkYW8gZHVjLCBjbyBjYW4gYm8gYmkgbXVhIGNodW9jLCB2aSBwaGFtIHBoYXAgbHVhdCBwaGFp IA0KeHUgbHkuLi4NCg0KTmd1eWVuIG5oYW4gY3VhIG5odW5nIHRvbiB0YWkgYmFvIGdvbSBjYSBj aHUgcXVhbiB2YSBraGFjaCBxdWFuLiBDaGFuZyBoYW4gbmh1IGFuIA0KdG9uIGRvbmcsIHR5IGxl IHBoYSBhbiBjaHVhIGNhby4uLiwgdGhlbyB5IGtpZW4gY3VhIGNhYyBjbyBxdWFuIHR1IHBoYXAg dGhpIG1vdCBwaGFuIGRvIA0KdmllYyB0aGlldSBodXQgYmllbiBjaGUgY3VhIG5nYW5oLiBOZ2Fu IHNhY2ggZGFuaCBjaG8gY29uZyB0YWMgdHUgcGhhcCBjb24gaGFuIGhlcCwgY2hlIA0KZG8gY2hp bmggc2FjaCBkb2kgdm9pIGNhbiBibyBuZ2FuaCBjb24gdGhhcCBuZW4ga2hvbmcgdGh1IGh1dCBk dW9jIG5oYW4gbHVjIHZhbyBsYW0gDQp2aWVjIHRyb25nIG5nYW5oIHR1IHBoYXAuDQoNClZlIGJp ZW4gcGhhcCBnaWFpIHF1eWV0IG5odW5nIHRvbiB0YWkgdHJlbiwgQmkgdGh1IFRoYW5oIHV5IE5n dXllbiBNaW5oIFRyaWV0LCBub2k6IA0KIkdpYWkgcGhhcCBjaG8gdGh1YyB0cmFuZyB0aGlldSBo dXQgYmllbiBjaGUgbGEgcGhhaSBzdSBkdW5nIG5oYW4gdmllbiBob3AgZG9uZy4gTmV1IA0KdHJ1 b2MgbWF0IGNodWEgdGhlIGRhbSBiYW8gImNoYXQiIGN1YSBkb2kgbmd1IGNhbiBibywgY29uZyBj aHVjIG5nYW5oIHRoaSBjdW5nIHBoYWkgDQpkYW0gYmFvIGR1ICJsdW9uZyIgZGUgZ2lhaSBxdXll dCBjb25nIHZpZWMiLiBWZSBsYXUgZGFpIHRoaSBuZ2FuaCB0dSBwaGFwIHBoYWkgY28ga2UgDQpo b2FjaCBkYW8gdGFvLCB0YW5nIHRvYyBkYW8gdGFvIGRvaSBuZ3UgY2FuIGJvIHZvaSB0cmluaCBk byBkYWkgaG9jIGNoaW5oIHF1eSwgY28gcXVhbiB0dSANCnBoYXAgY3VhIFRQIHBoYWkgZG90IHBo YSwgY2h1IGRvbmcgdHJvbmcgY29uZyB0YWMgY2FuIGJvLiBEb2kgdm9pIHRpbmggdHJhbmcgYW4g dG9uIGRvbmcgDQpjb24gY2FvLCBjYWMgbmdhbmggdHUgcGhhcCBjYW4gaG9wIGxhaSB2YSBjdW5n IGJhbiBkZSBkdWEgcmEgcGh1b25nIGh1b25nLg0KDQpPbmcgVHJ1b25nIFZpbmggVHJvbmcsIEJp IHRodSBUcnVuZyB1b25nIERhbmcsIFRydW9uZyBCYW4gbm9pIGNoaW5oIFRydW5nIHVvbmcgDQpu ZXUgcm86ICJDb25nIHZpZWMgbmhpZXUgbmVuIHJhdCBjYW4gc3UgdGljaCBjdWMgY3VhIGNhbiBi bywgY29uZyBjaHVjIG5ldSBraG9uZyBzZSANCmtob25nIGRhdCBkdW9jIGhpZXUgcXVhIG5odSBt b25nIG11b24iLiBPbmcgVHJvbmcgY3VuZyBsdXUgeSBjYWMgY28gcXVhbiB0dSBwaGFwIA0KdHJ1 b2MgbWF0IGNhbiBraGFjIHBodWMgbW90IHNvIGJhdCBjYXAsIHRoaWV1IHNvdCBoaWVuIG5heSBu aHUgdHkgbGUgcGhhIGFuIGNodWEgcm8gdGh1IA0KcGhhbSB0aGFwLCB0eSBsZSBhbiBodXksIHN1 YSBjYW8gKDE3JSksIHRoaSBoYW5oIGFuIHRvbiBkb25nIG5oaWV1Lg0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDQwMzExMDcuYXNweCAwNC8w OC8yMDEwIDM6MTEgDQoNClRQLkhDTTogSG9pIGxvIGhhbmcgdGkgZG9uZyBkZSBjbyBkdSBhbiBk aWEgb2MgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDAv MjAxMDA5MjcwMDU0MDMuYXNweCAyNy8wOS8yMDEwIDA6NTQgIA0KDQpUUCBIQ006IERhbiBidWMg Ym9pIHZpIHF1eSBob2FjaCAidHJlbyIgIA0KICANCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9U UEhDTS1jby1uaGlldS1xdXktaG9hY2gtdHJlby1uaGF0LzY1MDcxODI2LzEyNS8gMzAvMTAvMjAw NiwgMTQ6MzIgR01UKzcgDQoNClRQIEhDTSBjbyBuaGlldSBxdXkgaG9hY2ggInRyZW8iIG5oYXQg ICAgICAgIA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL0wlQzMlQUFfVGhhbmhfSCVF MSVCQSVBM2kgDQoNCk9uZyBMZSBUaGFuaCBIYWkgZHVvYyBibyB0cmkgdGllcCB0dWMgbGFtIEJp IHRodSB0aGFuaCB1eSBuaGllbSBreSAyMDEwIC0gMjAxNSANCg0KaHR0cDovL3ZpZXRiYW8udm4v WGEtaG9pL0hvLXR1LXRoYW4tby1UUC1IQ00tbmh1LW5hbS1zYXUtbXVhLzExMTg2MTE4LzE1Ny8g MTMvMTAvMjAxMCwgMjI6MzYgR01UKzcgDQoNClRQIEhDTTogIkhvIHR1IHRoYW4iIG8gVFAgSENN IG5odSBuYW0gc2F1IG11YSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMTAv U2FpLUdvbi1kYXktcmF5LWhvLXR1LXRoYW4tOTQyMDAzLyBUaGFpIFBodW9uZyAxOToxMiwgMTMv MTAvMjAxMCAoR01UKzcpDQoNCk5oYSBudW9jIC0gVFAuSENNOiBOb2kga2hpZXAgc28gbWFuZyB0 ZW4uLi4gaG8gdHUgdGhhbiBvIFRQLkhDTQ0KDQotIExpZW4gdGllcCBjYWMgdnUgeGUgdGFpLCB4 ZSB0YXhpLCB4ZSBjb250YWluZXIuLi4gc3VwIGhvIHR1IHRoYW4gdHJlbiBuaHVuZyB0dXllbiBk dW9uZyBvIA0KVFAuSENNIGtoaWVuIG5ndW9pIGRpIGR1b25nIHRob3QgdGltLiBIbyB0dSB0aGFu IGRhbmcgImhvYW5oIGhhbmgiIG8gU2FpIEdvbiB0aGF0IHN1IA0KbGEgbm9pIGtoaWVwIHNvIGN1 YSBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25nLiANCg0KKiBUUC5IQ006IFJhIGR1b25nIGdhcC4u LiBobyB0dSB0aGFuDQoqIFN1cCBobyB0dSB0aGFuLCB4ZSBjb250YWluZXIgY2hvbmcgdm8NCg0K Tm9pIHNvIG1hbmcgdGVuOiBIbyB0dSB0aGFuISANCg0KQ2hpZXUgMTMvMTAsIEtodSBxdWFuIGx5 IGdpYW8gdGhvbmcgZG8gdGhpIHNvIDIgZGEgYmFvIGNhbyBTbyBHVFZUIHZlIG5ndXllbiBuaGFu IA0KeHVhdCBoaWVuIGhvIHR1IHRoYW4gbGFtIGxhdCB4ZSBjb250YWluZXIuIFZ1IG1vdCBjb250 YWluZXIgbGF0IG5nYW5nIGRlIGxlbiBjaGllYyB4ZSBvdG8gDQo0IGNobyB2aSBzdXAgaG8gdHUg dGhhbiBjYW5nIGxhbSBuZ3VvaSBkYW4gU2FpIEdvbiBiYXQgYW4gbW9pIGtoaSByYSBkdW9uZy4g DQoNCkNhY2ggZG8gbW90IG5nYXksIHRydWEgMTIvMTAsIGRhbmcgbHV1IHRob25nIHRyZW4gZHVv bmcgS2hhIFZhbiBDYW4sIHBodW9uZyBMaW5oIA0KVGF5LCBxdWFuIFRodSBEdWMsIHRhaSB4ZSBM ZSBNYW5oIEh1b25nIGRhIHN1eXQgY2hldCBzYXUgY3UgbGF0IHhlIGNvbnRhaW5lciBraGFjLiAN Cg0KVGhlbyBiYW8gY2FvIGN1YSBLaHUgcXVhbiBseSBnaWFvIHRob25nIGRvIHRoaSAyLCB0cnVv YyBraGkgeGF5IHJhIHZ1IHRhaSBuYW4sIG1hdCBkdW9uZyANCnRhaSBnaWFvIGxvIEtoYSBWYW4g Q2FuIC0gSG9hbmcgRGlldSAyIGRhIGNvIGRhdSBoaWV1IHN1dCBsdW4uIFRyb25nIGx1YyBDb25n IHR5IA0KVE5ISCBNVFYgY29uZyB0cmluaCBTYWkgR29uIHZhIFRydW5nIHRhbSBjaG9uZyBuZ2Fw IGRhbmcgcGhvaSBob3Aga2hhYyBwaHVjIHZpZWMgDQpzdXQgbHVuIG1hdCBkdW9uZyB0aGkgeGF5 IHJhIHN1IGNvICghPykuIE5ndXllbiBuaGFuIHh1YXQgaGllbiBobyB0dSB0aGFuIHRoZW8gZ2lh aSB0aGljaCANCmN1YSBkb24gdmkgbmF5IGxhIGRvIHR1eWVuIG9uZyBuaGFuaCBjYXAgbnVvYyBi aSBiZSwgdGFvIHRoYW5oIGhhbSBlY2gsIGdheSB4b2kgbG8gDQptYXQgZHVvbmcuIEhpZW4gaG8g dHUgdGhhbiB0cmVuIGR1b25nIEtoYSBWYW4gQ2FuIGRhIGR1b2Mga2hhYyBwaHVjLiANCg0KKEFu aDogSG8gdHUgdGhhbiB4dWF0IGhpZW4gYmF0IG5nbyBsYW0geGUgYm9uIGNob25nIHZvIHRydWEg MTIvMTAgdHJlbiBkdW9uZyBLaGEgVmFuIA0KQ2FuLikgDQooQW5oOiBEdW9uZyBMZSBWYW4gU3kg Y3VuZyBsaWVuIHRpZXAgeHVhdCBoaWVuIG5odW5nIGNhaSBobyBzYXUgaG9hbSBzbyB0YWkgbGFw IG1hdCBkdW9uZyBjYXUgdGhhLikgDQoNCkxpZW4gdGllcCBjYWMgdnUgdGFpIG5hbiBkbyBobyB0 dSB0aGFuIGdheSByYSBraGllbiBuaGlldSBuZ3VvaSBnaWF0IG1pbmgsIGNvIHRoZSBub2kgdHUg DQp0cnVuZyB0YW0gVFAgcmEgZGVuIG5nb2FpIHRoYW5oLCBub2kgbmFvIGN1bmcgY28gaG8gdHUg dGhhbi4gDQoNClRhaSBsYXAgYXUsIGFpIGxvdCBoby4uLiByYW5nIGNoaXU/ISANCg0KTmd1eWVu IG5oYW4gY2hpbmggbGFtIHh1YXQgaGllbiBuaHVuZyBjYWkgImJheSBnaWV0IG5ndW9pIiB0cmVu IGR1b25nIGxhIGRvIHRpbmggdHJhbmcgDQp0aGkgY29uZyB2YSB0YWkgbGFwIG1hdCBkdW9uZyBj YXUgdGhhIGN1YSBjYWMgbmhhIHRoYXUuIFRoZSBuaHVuZywgY2FjIGJpZW4gcGhhcCB4dSBwaGF0 IA0KY3VhIFNvIEdUVlQsIGNvIHF1YW4gY2h1YyBuYW5nIGNodWEgZHUgbWFuaCBkZSByYW4gZGUg bmh1bmcgdmkgcGhhbSBiZSBib2kgbmF5LiANCg0KTmdheSBjYSBraGkgc3UgY28sIHRhaSBuYW4g eGF5IHJhLCBuZ3VvaSBkYW4ga2hvbmcgYmlldCAia2V1IGN1dSIgYWkgZGUgZG9pIGJvaSB0aHVv bmchDQoNCiJIaWVuIGNvbiBraG9hbmcgNDAwIG5oYSB0aGF1IHRoaSBjb25nIGNhYyBkdSBhbiB0 cmVuIGRpYSBiYW4gVFAgbm8gdGllbiBwaGF0IHZpIHBoYXQgDQpkYW8gZHVvbmcsIHRhaSBsYXAg bWF0IGR1b25nLi4uIGhvbiA4IHR5IGRvbmciIC0gbW90IGNhbiBibyBTbyBHVFZUIGNobyBiaWV0 LiANCg0KKEFuaDogTmd1b2kgU2FpIEdvbiBraGllcCBzbyB2b2kgbmh1bmcgY2FpIGhvIHR1IHRo YW4gbnVvdCB4ZSBuaHUgdGhlIG5heS4gVmEgdHJvbmcgDQp0aW5oIHRyYW5nIGR1b25nIG5nYXAg dGhlIG5heSwgbGlldSBjbyBwaGF0IGhpZW4gZGF1IGxhLi4uIGhvIHR1IHRoYW4gZGUgdHJhbmg/ ICkNCg0KRGFuZyBub2ksIHBoYW4gbG9uIGNhYyBobyB0dSB0aGFuIHh1YXQgaGllbiB0cmVuIGR1 b25nIHNhdSBraGkgImxvIGNvdCIgY3VhIGR1IGFuIFZlIA0Kc2luaCBtb2kgdHJ1b25nIE5oaWV1 IExvYyAtIFRoaSBOZ2hlIGRvaSBkaS4gVHJhbyBkb2kgdm9pIFBWIFZpZXROYW1OZXQgdmUgdmFu IGRlIA0KbmF5LCBQaG8gR2lhbSBkb2MgU28gR1RWVCBUcmFuIFRoZSBLeSBjaG8gYmlldCwgc28g ZGEgYXAgZHVuZyBuaGlldSBiaWVuIHBoYXAgDQptYW5oLCBnaWFvIFRoYW5oIHRyYSBTbyBraWVt IHRyYSBjb25nIHRhYyB0YWkgbGFwIG1hdCBkdW9uZywgcGhhdCBoYW5oIGNoaW5oIGhvYWMgZGlu aCANCmNoaSB0aGkgY29uZyB2b2kgbmhhIHRoYXUgdmkgcGhhbSBuaGlldSBsYW4uICJOZ2F5IGNh IHBodW9uZyBhbiBkYW5oIHZhbyB0dWkgdGllbiBjdWEgDQpuaGEgdGhhdSBjdW5nIGR1b2Mgc28g YXAgZHVuZy4gTmhhIHRoYXUgbmFvIGNoYXkgeSwgdmkgcGhhbSBuaGlldSBsYW4uLi4gc2UgYmkg dHJ1IHRpZW4gDQpraGkga2V0IHRodWMgZ29pIHRoYXUiIC0gb25nIEt5IGtoYW5nIGRpbmguIA0K DQpodHRwOi8vd3d3LnNnZ3Aub3JnLnZuL21vaXRydW9uZ2RvdGhpLzIwMTAvMTEvMjQyMTM2LyBR VU9DIEhVTkcgLSBIQUkgWUVOIDA0LzExLzIwMTAsIDAyOjMwIChHTVQrNykgDQoNClRQSENNOiBO aGlldSBjb25nIHRyaW5oIHRyb25nIGRpZW0gdGhpIGNvbmcgY2hhbSBnYXkgbGFuZyBwaGkgDQoN CkhhbmcgbG9hdCBjb25nIHRyaW5oIHRoaSBjb25nIGtlbyBkYWkgbmhpZXUgbmFtIGdheSBsYW5n IHBoaSBraGllbiBkdSBsdWFuIGJ1YyB4dWMuIA0KQ29uZyB0YWMgdHJpZW4ga2hhaSBkdSBhbiwg Y2hhdCBsdW9uZyBjb25nIHRyaW5oIGNodWEgZGF0IHlldSBjYXUsIGdpYSBjYSBkZW4gYnUgY2h1 YSBob3AgDQpseS4uLiBsYSBuaHVuZyB2YW4gZGUgbm9uZyB0cm9uZyBidW9pIGdpYW0gc2F0IHZl IHRpZW4gZG8gZGF1IHR1IHhheSBkdW5nIGNvIGJhbiBuaHVuZyANCmNvbmcgdHJpbmggdHJvbmcg ZGllbSB0YWkgU28gR2lhbyB0aG9uZyBWYW4gdGFpIChHVFZUKSBUUEhDTSBjdWEgQmFuIEtpbmgg dGUgLSANCk5nYW4gc2FjaCAtIEhETkQgVFBIQ00gbmdheSAzLTExLg0KDQpDaGFtIGRvIHZ1b25n IG1hdCBiYW5nDQoNCkNhYyBjb25nIHRyaW5oIGdpYW8gdGhvbmcgdHJvbmcgZGllbSBnYXAgcmF0 IG5oaWV1IGtobyBraGFuLCB2dW9uZyBtYWMgdHJvbmcgcXVhIHRyaW5oIHRyaWVuIA0Ka2hhaSBk dSBhbiwgY2h1IHlldSBsYSBnaWFpIHBob25nIG1hdCBiYW5nLCBkaSBkb2kgaGEgdGFuZyBreSB0 aHVhdCBjaGFtLCB2b24gY2hvIGNvbmcgdGFjIA0KeGF5IGxhcCB0aGlldSB2YSBraG9uZyBkYXAg dW5nIGtpcCB5ZXUgY2F1Li4uIEN1IHRoZSBuaHUgY2FjIGR1IGFuOiBEdSBhbiB2ZSBzaW5oIG1v aSANCnRydW9uZyAobHV1IHZ1YyBOaGlldSBMb2MgLSBUaGkgTmdoZSksIGR1IGFuIHhheSBkdW5n IGNhdSBIb2FuZyBIb2EgVGhhbS4uLg0KDQooQW5oOiBEdSBhbiB2ZSBzaW5oIG1vaSB0cnVvbmcg bHV1IHZ1YyBOaGlldSBMb2MgLSBUaGkgTmdoZSAtIG1vdCB0cm9uZyBuaHVuZyBjb25nIHRyaW5o IHRoaSBjb25nIGNoYW0pDQoNClF1YW4gbHkga2VtDQoNCk9uZyBIdXluaCBDb25nIEh1bmcsIFBo byBiYW4gS2luaCB0ZSB2YSBOZ2FuIHNhY2ggSERORCBUUCBjaG8gcmFuZywga2hvIGtoYW4gDQpu aGF0IGhpZW4gbmF5IGxhIHZ1b25nIHZlIGNvIGNoZSBjaGluaCBzYWNoLCBnaWEgY2EgZGVuIGJ1 IGNodWEgaG9wIGx5LCBraG9uZyBuaGF0IHF1YW4uIA0KQ29uZyB0YWMgdHJpZW4ga2hhaSBkdSBh biwgcGhvaSBob3AgZ2l1YSBjYWMgZG9uIHZpIGtlbSBuaHUgY2h1YSBjbyBraHUgdGFpIGRpbmgg Y3UgZGEgDQplcCBnaWEgYm9pIHRodW9uZyByb2kgY3VvbmcgY2hlIGRpIGRvaSBkYW4uIE9uZyBI dW5nIGRlIG5naGkgZHUgYW4gbmFvIGNhbiB0aGlldCB0aGkgZGF1IA0KdHUsIGtob25nIG5lbiBk YW4gdHJhaSBnYXkgbGFuZyBwaGkuDQoNCkRhaSBiaWV1IFRydW9uZyBUcm9uZyBOZ2hpYSBkYXQg dmFuIGRlOiBDaGFtIGRvIHZ1b25nIG1hdCBiYW5nIHZhIGNhYyBjb25nIHRyaW5oIA0KbmdhbSBs YSBkbyBraGF1IHRvIGNodWMgdGhpIGNvbmcsIHR1IHZhbiBrZW0gZGFuIGRlbiBnaWEgdGhhbmgg dGFuZyBsZW4uIER1IGFuIGRhbiB0cmFpIA0KdHJvbmcga2hpIG5oYW4gbHVjIGNvIGhhbi4gRGFp IGRpZW4gU28gVGFpIGNoaW5oIGNobyByYW5nLCB2b2kgbW90IGtob2kgbHVvbmcgY29uZyB0cmlu aCANCnF1YSBsb24gbmh1IHZheSwgU28gR1RWVCBraG9uZyB0aGUgbGFtIG5vaSwgVFAgcGhhaSBj aGkgZGFvIHRyb25nIGNvbmcgdGFjIGdpYWkgcGhvbmcgDQptYXQgYmFuZywgdmkgdGhlIGtob25n IHRoZSBwaGF0IGNhYyBkb24gdmkgdGhpIGNvbmcgY2hhbSB2aSBraG9uZyBjbyBtYXQgYmFuZyB0 aGkgY29uZy4gDQoNClRyYSBsb2kgbmh1bmcgdmFuIGRlIG5ldSB0cmVuLCBvbmcgVHJhbiBRdWFu ZyBQaHVvbmcsIEdpYW0gZG9jIFNvIEdUVlQgY2hvIHJhbmcsIA0KaGFpIHZhbiBkZSBtYSBuZ3Vv aSBkYW4gcXVhbiB0YW0gbGEgdGllbiBkbyB2YSBjaGF0IGx1b25nIGNvbmcgdHJpbmguIENhYyBj b25nIHRyaW5oIA0KY2hhbSBsYSBkbyB2dW9uZyBtYXQgYmFuZywgY2FjIGNvbmcgdHJpbmggbmdh bSwgdHV5IG5oaWVuIGNvIGxvaSBjdWEgY2h1IGRhdSB0dSBkdSBhbi4gDQpDaGF0IGx1b25nIGNv bmcgdHJpbmggdHVvbmcgZG9pIHRvdCwgc29uZyBjdW5nIGNvIG1vdCBzbyBjb25nIHRyaW5oIGNo dWEgZGF0IHlldSBjYXUsIA0KbmhhdCBsYSBjYWMgY29uZyB0cmluaCB0aGkgY29uZyB0cm9uZyBr aHUgdnVjIG5vaSB0aGFuaC4gTWF0IGtoYWMsIHRyaW5oIGRvIHR1IHZhbiB0aGlldCANCmtlIHZh IGdpYW0gc2F0IGNodWEgdGhlbyBraXAgc28gdm9pIHRoZSBnaW9pLCBjYWMgbmhhIHRoYXUgVk4g Y2h1YSBkdSBuYW5nIGx1YyAodHJ1IG1vdCANCnNvIGl0KS4gDQoNCk9uZyBQaGFtIFZhbiBEb25n LCBUcnVvbmcgYmFuIEtpbmggdGUgLSBOZ2FuIHNhY2ggLSBIRE5EIFRQIGNobyByYW5nLCBoYXUg aGV0IGNhYyANCmR1IGFuIHRpZW4gZG8gZGV1IGNoYW0sIGNoYXQgbHVvbmcgY2h1YSBkYXQgeWV1 IGNhdS4gT25nIG5oYW4gbWFuaCwgbHkgZG8gY2hhbSBkbyBtYXQgDQpiYW5nIG5odSBzbyBkdWEg cmEgbGEgY2h1YSB0aHV5ZXQgcGh1Yy4gQ2FuIHBoYWkgdGluaCB0b2FuIGxhaSB2aSB0cmVuIHRo dWMgdGUgZ2lhaSBwaG9uZyANCm1hdCBiYW5nIG5odW5nIGNodWEgY28gY2hvIHRhaSBkaW5oIGN1 LCBnaWEgY2EgY2h1YSBob3AgbHkuICJTbyBrZXUgdGhpZXUgdm9uIHRyb25nIGtoaSANCmdoaSB2 b24gMTQuMDAwIHR5IGRvbmcsIHRodWMgdGUgZGEgZ2lhaSBuZ2FuIDIzLjAwMCB0eSBkb25nLiBO aHUgdmF5IHNhbyBnb2kgbGEgdGhpZXUgDQp2b24uIFR1IG5odW5nIHZhbiBkZSB0cmVuLCBjaG8g dGhheSBuYW5nIGx1YyBxdWFuIGx5IGNvIHZhbiBkZSIgLSBvbmcgRG9uZyBub2kgDQoNCmh0dHA6 Ly92aWV0YmFvLnZuL1hhLWhvaS9UUC1IQ00tbW9pLW5hbS1tYXQtMjAwLXR5LWRvbmctdmktdGhh dC10aG9hdC1udW9jLzEwNzg2ODU0LzE1Ny8gKFRoZW8gVGhhbmggTmllbikgMTEvOS8yMDAyLCAx MDoyMiBHTVQrNyANCg0KVFAgSENNOiBtb2kgbmFtIG1hdCAyMDAgdHkgZG9uZyB2aSB0aGF0IHRo b2F0IG51b2MgDQoNClRyb25nIGhvbiA4MDAgbmdoaW4gbTMgbnVvYyBjdW5nIGNhcCBjaG8gZGFu IG1vaSBuZ2F5IHRoaSBjbyB0cmVuIDMwMCBuZ2hpbiBtMyB0aG9hdCANCnJhIG5nb2FpLiBNb3Qg dHJvbmcgbmh1bmcgbmd1eWVuIG5oYW4gZ2F5IHJhIHRpbmggdHJhbmcgbmF5IGxhIGhlIHRob25n IGN1bmcgY2FwIG51b2MgDQpkYSB4dW9uZyBjYXAgdmEgY29uZyB0YWMgcGhhdCBoaWVuLCBzdWEg Y2h1YSBzdSBjbyBjaHVhIGtpcCB0aG9pLg0KDQpDYWMgY28gcXVhbiBxdWFuIGx5IGRldSBiaWV0 IGNvIG5oaWV1IGtodSB2dWMgdGh1b25nIHh1eWVuIGJpIHRoYXQgdGhvYXQgbnVvYyB2b2kga2hv aSANCmx1b25nICJraG9uZyBsbyIgbmh1OiBraHUgZ2lhbiBkYW4gcXVhbiA5ICg1MSUpLCBraHUg dnVjIFRydW5nIENoYW5oIGh1eWVuIEhvYyANCk1vbiAoMzklKS4uLiBuaHVuZyBraG9uZyBjbyBi aWVuIHBoYXAga2hhYyBwaHVjIGh1dSBoaWV1LiBUaW5oIHRyYW5nIHRob2F0IG51b2MgdHUgDQpk dW9uZyBvbmcgZGllbiByYSB0cm9uZyBuaGlldSBnaW8sIHRoYW0gY2hpIG5oaWV1IG5nYXkgZ2F5 IGxhbmcgcGhpIGxvbi4gRG9uIGN1IG5odSANCmR1b25nIG9uZyBjYXAgbnVvYyB0cmVuIGR1b25n IE5ndXllbiBCaW5oIEtoaWVtIChxdWFuIDEpLCBiaSB2byBpdCBuaGF0IDUgbGFuLCBjbyBsdWMg DQpudW9jIGNoYXkgdHJhbiByYSBkdW9uZyBzdW90IGNhIG5nYXkuIERvbiB2aSB0aGkgY29uZyBk ZW4gc3VhIGhvbSB0cnVvYyB0aGkgaG9tIHNhdSBudW9jIGxhaSB0aWVwIHR1YyBjaGF5Lg0KDQpU cmVuIHRodWMgdGUsIGhpZW4gbmF5IENvbmcgdHkgQ2FwIG51b2MgdGhhbmggcGhvIGtob25nIHhh YyBkaW5oIGR1b2Mga2hvaSBsdW9uZyANCm51b2MgYmkgdGhhdCB0aG9hdCBjdWEgdHVuZyBjaGkg bmhhbmgsIGRvIGtob25nIGNvIGRvbmcgaG8gdG9uZyBvIGNhYyBraHUgdnVjIGRvIGNoaSANCm5o YW5oIHF1YW4gbHkuIFZpIHZheSwga2hvbmcgdGhlIGRlIHJhIGJpZW4gcGhhcCB4dSBseSBkb2kg dm9pIGNhYyBkb24gdmkgbGFtIHRoYXQgdGhvYXQgDQpraG9pIGx1b25nIGxvbi4gSGllbiB0cmFu ZyBuYXkgZGEgdGFvIGRpZXUga2llbiBjaG8gbW90IHNvIGNoaSBuaGFuaCBsbyBsYSB0cmllbiBr aGFpIA0KY29uZyB0YWMgcGhhdCBoaWVuIHZhIHN1YSBjaHVhIG9uZyBudW9jIHZvLiBUdXkgbmhp ZW4sIHRoZW8gb25nIFZvIFF1YW5nIENoYXUgLSBHaWFtIA0KZG9jIENvbmcgdHkgQ2FwIG51b2Mg LSBoZSB0aG9uZyBjdW5nIGNhcCBudW9jIGN1YSB0aGFuaCBwaG8gbGEgbWFuZyB2b25nIG5lbiBr aG9uZyB0aGUgbGFwIGRhdCBkb25nIGhvIHRvbmcgY2hvIHR1bmcga2h1IHZ1YyBkdW9jLg0KDQpU cm9uZyBraGkgZG8sIG9uZyBOZ3V5ZW4gVmlldCBTb24sIFRydW9uZyBwaG9uZyBLZSBob2FjaCB2 YSBEYXUgdHUgU28gR1RDQywgY2hvIA0KYmlldCBrZSBob2FjaCBuYW0gMjAwMiBjdWEgQ29uZyB0 eSBDYXAgbnVvYyBsYSBjaGkga2hvYW5nIDUwIHR5IGRvbmcgZGUgcGhhdCB0cmllbiANCm1hbmcg bHVvaSB2YSBzdWEgY2h1YSBkdW9uZyBvbmcgY2FwIG51b2MgYmkgbXVjLiBOaHVuZyBkZW4gbmF5 LCBjb25nIHR5IG5heSBjaGkgdGh1YyANCmhpZW4gZHVvYyBraG9hbmcgOC05JSBraG9pIGx1b25n IGNvbmcgdHJpbmguDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIw MTA0Ni8yMDEwMTExMTAwNTExMS5hc3B4IE1haSBWb25nIDExLzExLzIwMTAgMDo1MSANCg0KVFAg SENNOiAxNjEgbG9pIG8gbmhhIG1heSB4dSBseSBudW9jIHRoYWkgbG9uIG5oYXQgVk4gIA0KICAN CkhvbSBxdWEgMTAuMTEsIEJhbiBLaW5oIHRlIC0gTmdhbiBzYWNoIC0gSERORCBUUC5IQ00gZGEg Y28gYnVvaSBnaWFtIHNhdCB2ZSB0aWVuIA0KZG8gZGF1IHR1LCBkYW5oIGdpYSBoaWV1IHF1YSBj dWEgZHUgYW4gTmhhIG1heSB4dSBseSBudW9jIHRoYWkgKFhMTlQpIEJpbmggSHVuZy4gDQpDb25n IHR5IFROSEggbW90IHRoYW5oIHZpZW4gdGhvYXQgbnVvYyBkbyB0aGkgVFAuSENNIChUTkRUKSBs YSBkb24gdmkgZHVvYyANClVCTkQgVFAuSENNIGdpYW8gdHJ1YyB0aWVwIHRoZW8gZG9pLCB0aWVw IG5oYW4sIHF1YW4gbHkgdmFuIGhhbmgga2hhaSB0aGFjIHZhIGR1eSB0dSwgDQpzdWEgY2h1YSBu aGEgbWF5LiANCg0KTmhhIG1heSBYTE5UIEJpbmggSHVuZyBkdW9jIGtob2kgY29uZyB2YW8gdGhh bmcgMTEuMjAwNCwgZHVhIHZhbyB2YW4gaGFuaCB0dSANCnRoYW5nIDYuMjAwOSwgdG9hIGxhYyB0 YWkgYXAgNSwgeGEgQmluaCBIdW5nLCBILkJpbmggQ2hhbmguIER1IGtpZW4gbmhhIG1heSBzZSBu YW5nIA0KY29uZyBzdWF0IGxlbiA1MTIuMDAwbTMvbmdheSAodHUgMTQxLjAwMG0zL25nYXkpIHRy b25nIGdpYWkgZG9hbiAyLCBkdW9jIHRodWMgaGllbiB0dSBuYW0gMjAxMCwgaG9hbiB0YXQgdmFv IDIwMTUuIA0KDQooQW5oOiBIaWVuIHR1b25nIGx1biB0YWkga2h1IHZ1YyBOaGEgbWF5IFhMTlQg QmluaCBIdW5nIC0gQW5oOiBNLlYpIA0KDQpDb25nIHR5IFRORFQgY2hpbmggdGh1YyB0aWVwIG5o YW4gdmFuIGhhbmggdHJhbSBib20gRG9uZyBEaWV1IHZhIG5oYSBtYXkgQmluaCANCkh1bmcgdHUg bmdheSAxNi41LjIwMDkgY2hvIGRlbiBuYXksIHZvaSBzdSBobyB0cm8ga3kgdGh1YXQgY3VhIENv bmcgdHkgdHUgdmFuIENETSANCihNeSkuIFRpbmggZGVuIG5nYXkgMTkuMTAuMjAxMCwgQ29uZyB0 eSBUTkRUIGRhIHBoYXQgaGllbiAxNjEgbG9pIGtoaWVtIGtodXlldCwgaGllbiANCmRhIGtoYWMg cGh1YyBkdW9jIDEyNSBsb2kuIENhYyBsb2kgdG9uIHRhaSBsYXUsIGNodWEgZHVvYyBraGFjIHBo dWMgZ2F5IGFuaCBodW9uZyANCm5naGllbSB0cm9uZyBkZW4gaG9hdCBkb25nLiBOb2kgY29tIG5o YXQgbGEgbWF5IGNvIGRhYyBidW4gbHkgdGFtIGtob25nIGhvYXQgZG9uZyANCmR1b2MgdHUgbHVj IHRpZXAgbmhhbiBjb25nIHRyaW5oLCBhbmggaHVvbmcgZGVuIGNhIGRheSBjaHV5ZW4geHUgbHkg YnVuLiANCg0KT25nIE5ndXllbiBQaHVvYyBUaGFvLCBHaWFtIGRvYyBUcnVuZyB0YW0gRGlldSBo YW5oIENodW9uZyB0cmluaCBjaG9uZyBuZ2FwIA0KbnVvYyBUUC5IQ00sIG5oYW4gZGluaCBraGll bSBraHV5ZXQgZG8gbmVuIGRhdCBsdW4sIHR1IGRvIGtlbyB0aGVvIGNhIGhlIHRob25nIGNvbmcg DQp0cmluaCBuZ2FtIG5odSBkdW9uZyBkaWVuIG5hbSBiZW4gZHVvaSBiaSBhbmggaHVvbmcgbmdo aWVtIHRyb25nLiBUcm9uZyB0aGFuZyA2IHZ1YSANCnF1YSwgbmVuIGRhdCBsdW4ga2hvbmcgZGV1 IGRhIGxhbSBkdXQgZGF5IGNhcCBuZ3VvbiBjdW5nIGNhcCBkaWVuIGNobyBraHUgdnVjIGJvbSB0 YWkgDQpuaGEgbWF5LCBnYXkgbWF0IGRpZW4gdG9hbiBibyB2YSBoaWVuIG5oYSB0aGF1IGNoaSBt b2kgdGhheSB0aGUgY2FwIHRhbS4gTGFpIGNvbiBjbyBoaWVuIA0KdHVvbmcgcm8gcmkgbnVvYyBu Z2FtIHRhaSBkdW9uZyBoYW0uICJDaHVuZyB0b2kgZGEgeWV1IGNhdSBjYWMgZG9uIHZpIGxpZW4g cXVhbiB4dSBseSwgDQpuaHVuZyBkZW4gbmF5IHZhbiBjaHVhIGtoYWMgcGh1YywgdGluaCB0cmFu ZyBybyByaSBudW9jIG5nYXkgY2FuZyBuYW5nLCB0aGFtIGNoaSBjbyBsdWMgDQp4aSBwaHVuIG51 b2MgdGhhbmggdm9pIiwgUGhvIFRHRCBDb25nIHR5IFRORFQgb25nIExlIFRobyBEYWMgbm9pLiAN Cg0KTmhhIG1heSBYTE5UIEJpbmggSHVuZyBoaWVuIGNvIHF1eSBtbyBsb24gbmhhdCBWTiwgdHJp IGdpYSAxMDAgdHJpZXUgVVNELCB0aHVvYyBkdSANCmFuIENhaSB0aGllbiBtb2kgdHJ1b25nIG51 b2MgVFAuSENNLCBuZ3VvbiB2b24gdmF5IE9EQSBjdWEgTmhhdCBCYW4gdmEgdm9uIGRvaSANCnVu ZyBjdWEgVk4uIEdvaSB0aGF1IHhheSBkdW5nIG5oYSBtYXkgZG8gbmhhIHRoYXUgbGllbiBkYW5o IE4uRS5TIEpWIChOaGF0IEJhbikgdGhpIA0KY29uZywgdGhlbyB0aGlldCBrZSBjdWEgbmhhIHRo YXUgdHUgdmFuIE5oYXQgQmFuIC0gQ29uZyB0eSBQQ0kuIEx1YyB0aGkgY29uZyBkb25nIGNvYywg DQpjb25nIHRyaW5oIG5heSAgdHVuZyB4YXkgcmEgc3UgY28gY29jIGJpIG5naGllbmcgaGFuZyBs b2F0IChraG9hbmcgdGhhbmcgMTAuMjAwNSkuIA0KDQpodHRwOi8vYmV0YS50aGFuaG5pZW4uY29t LnZuL1BhZ2VzLzIwMTAxMjMxL25hbS0yMDExLXRwLWhjbS12YW4tbmdhcC1udW9jLXZhLXVuLXRh Yy5hc3B4IFRyYW4gRHV5IDMxLzEyLzIwMTAgMTg6MjUgDQoNClRQIEhDTTogTmFtIDIwMTEsIFRQ LkhDTSB2YW4gbmdhcCBudW9jIHZhIHVuIHRhYw0KDQooVE5PKSBOZ2F5IDMxLjEyLCBTbyBHaWFv IHRob25nIHZhbiB0YWkgKEdUVlQpIFRQLkhDTSBjaG8gYmlldCwgbmFtIDIwMTEsIG5nYXAgDQpu dW9jIHZhIHVuIHRhYyBnaWFvIHRob25nIHRpZXAgdHVjIGRpZW4gYmllbiBwaHVjIHRhcC4gDQoN Ck5vaSBkdW5nDQoNClRoZW8gb25nIERhdSBBbiBQaHVjLCBUcnVvbmcgcGhvbmcgUXVhbiBseSwg S2hhaSB0aGFjIGhhIHRhbmcgLSBTbyBHVFZUIFRQLkhDTSwgDQpuaHVuZyBkaWVuIGJpZW4gYmF0 IHRodW9uZyBjdWEgdGhvaSB0aWV0IHRyb25nIHRob2kgZ2lhbiBxdWEsIGN1bmcgdm9pIG5odW5n IHRhYyBkb25nIA0KY3VhIHZpZWMgdHJpZW4ga2hhaSBkb25nIGJvIHRyZW4gZGllbiByb25nIGNh YyBkdSBhbiBoYSB0YW5nIGRvIHRoaSBsYW0ga2hhIG5hbmcgdGhvYXQgDQpudW9jIGN1YSBoZSB0 aG9uZyB0aG9hdCBudW9jIGhpZW4gaHV1IHF1YSB0YWkuIERvIHZheSwgdGluaCB0cmFuZyBuZ2Fw IG51b2MgY28gZGF1IGhpZXUgDQpnaWEgdGFuZyBjdWMgYm8gdGFpIG1vdCBzbyBraHUgdnVjIHRy ZW4gZGlhIGJhbiB0aGFuaCBwaG8sIGdheSBhbmggaHVvbmcgbG9uIGRlbiB2ZSBzaW5oIA0KbW9p IHRydW9uZyB2YSBteSBxdWFuIHRoYW5oIHBoby4gDQoNCkN1bmcgdGhlbyBTbyBHVFZULCBuZ2Fw IG51b2MgZG8gbXVhIGxvbiB2YSB0cmlldSBjdW9uZyBkYSBsYW0gY2hvIHRob2kgZ2lhbiBkaSBs YWkgdGFpIA0KVFAuSENNIGNoYW0gaG9uIG5oaWV1IHNvIHZvaSBjYWMgbmFtIHRydW9jLCBkYWMg YmlldCBsYSBvdG8ga2hpIGx1dSB0aG9uZyB0cm9uZyBraHUgDQp2dWMgbm9pIHRoYW5oLiANCg0K U28gR1RWVCBjdW5nIHRodWEgbmhhbiwgdHJvbmcgbXVhIG11YSAyMDEwLCBsaWVuIHRpZXAgeHVh dCBoaWVuIG5oaWV1IGhvIHN1cCB0cmVuIG1hdCANCmR1b25nLCBnYXkgYnVjIHh1YyB0cm9uZyBk dSBsdWFuLiBUdSB0aGFuZyA3LjIwMTAgZGVuIDI4LjEyLjIwMTAsIGRhIHhheSByYSA2NCB2dSBs dW4gDQpzdXAgbWF0IGR1b25nLiANCg0KKEFuaDogIkhvIHR1IHRoYW4iIGxhIG1vdCB0cm9uZyBu aHVuZyB2YW4gZGUgZ2F5IGJ1YyB4dWMgY2hvIG5ndW9pIGRhbiBUUC5IQ00gdHJvbmcgDQpuYW0g MjAxMCAtIEFuaDogVHJhbiBEdXkpIA0KDQpIaWVuIFNvIEdUVlQgZGFuZyBwaG9pIGhvcCB2b2kg Y2FjIG5oYSBraG9hIGhvYyB0aWVuIGhhbmgga2llbSB0cmEgY2FjIHN1IGNvIGx1biwgc3VwIA0K bWF0IGR1b25nIHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gZGUgeGFjIGRpbmggY2hpbmggeGFjIG5n dXllbiBuaGFuIHZhIGR1YSByYSBjYWMgZ2lhaSANCnBoYXAgdHJpZXQgZGUsIGdpYW0gdGhpZXUg Y2FjIHN1IGNvIGx1biBzdXAgeGF5IHJhIHRyb25nIHRob2kgZ2lhbiB0b2kuIA0KDQpEZSBkYW0g YmFvIGFuIHRvYW4gZ2lhbyB0aG9uZywgZ2lhbSB0aGlldSBidWMgeHVjIGN1YSBuZ3VvaSBkYW4g dGhhbmggcGhvIHRyb25nIG5hbSANCjIwMTEsIG9uZyBMZSBUb2FuLCBQaG8gZ2lhbSBkb2MgU28g R1RWVCBUUC5IQ00gZGEgY2hpIGRhbyBjYWMgZG9uIHZpIHRydWMgdGh1b2MgDQpuZ2hpZW4gY3V1 IHRhY2ggZG9uZyB4ZSAyIGJhbmggdm9pIGRvbmcgeGUgNCBiYW5oIG8gbmh1bmcgdHV5ZW4gZHVv bmcgY28gbWF0IGRvIGx1dSANCnRob25nIGNhby4gDQoNClNvIEdUVlQgY3VuZyB5ZXUgY2F1IGNh YyBuaGEgdGhhdSB0aGkgY29uZyBjaGllbSBkdW5nIG1hdCBkdW9uZyBkZSByYSBwaHVvbmcgYW4g dGhpIA0KY29uZyBkdW5nIHRob2kgaGFuLCB0cmFuaCB0aW5oIHRyYW5nICJsbyBjb3QiIGFuIG5n dSBxdWEgbGF1IHRydW9jIG5oYSBuZ3VvaSBkYW4gdmEgeGluIA0KZ2lhIGhhbiB0aG9pIGdpYW4g dG9uIHRhaSAibG8gY290Ii4gDQoNCkRvaSB2b2kgImhvIHR1IHRoYW4iLCBvbmcgVG9hbiB5ZXUg Y2F1IGNhYyBraHUgcXVhbiBseSBnaWFvIHRob25nIHRhbmcgY3VvbmcgdHVhbiB0cmEgDQpwaGF0 IGhpZW4gc29tICJobyB0dSB0aGFuIiBkYW5nICJwaG9pIHRoYWkiLiBPbmcgVG9hbiBjdW5nIGRl IG5naGkgY2FjIHNvLCBuZ2FuaCwgY2h1IA0KZGF1IHR1IGNvIGNvbmcgdHJpbmggbmdhbSBkdW9p IG1hdCBkdW9uZyBwaG9pIGhvcCB4dSBseSAiaG8gdHUgdGhhbiIuIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMTgwMTIyMjAuYXNweCBQaHVv bmcgVGhhbmggMTgvMTAvMjAxMCAxOjIyIA0KDQpUUCBIQ006IFRoaSBjb25nIGtpZXUgImJheSBu Z3VvaSIgICANCiAgDQooQW5oOiBIZSB0aG9uZyBjb25nIHRob2F0IG51b2MgZGEgdmEgZGFuZyBs YXAgZGF0IG8gdHJ1bmcgdGFtIFRQLkhDTSAtIGRvIGhvYTogRHUgU29uKQ0KDQpUdSBoYW5nIGxv YXQgdnUgc3VwIGhvIGdheSB0YWkgbmFuIG8gVFAuSENNLCBuaGlldSBjaHV5ZW4gZ2lhIGNhbmgg YmFvIHRpbmggdHJhbmcgbmF5IA0Kc2UgY29uIHRhaSBkaWVuIGRvIHZpZWMgbGFwIGRhdCBvbmcg Y2FwIC0gdGhvYXQgbnVvYyBraG9uZyBkdW5nIGt5IHRodWF0IGRhbiB0YW8gbmVuIGNhYyANCmhv IHJvbmcgbmFtIGFuIHRyb25nIGxvbmcgZGF0LCBzYW4gc2FuZyBzdXAgeHVvbmcgYmF0IGt5IGx1 YyBuYW8gZGUgImJheSIgbmd1b2kgZGkgDQpkdW9uZy4gDQoNClRTIFZ1IFh1YW4gSG9hIChLaG9h IFhheSBkdW5nLCBEYWkgaG9jIEJhY2gga2hvYSBUUC5IQ00pIGNobyByYW5nLCB0cm9uZyBjYWMg dnUgDQpzdXAgaG8gdnVhIHF1YSwgcGhhbiBsb24gbWF0IGR1b25nIG5odWEgYmVuIHRyZW4gZGV1 IGtob25nIGNvIGRhdSBoaWV1IGx1biwgc29uZyB0aHVjIA0KdGUgYmVuIHRyb25nIGxvbmcgZGF0 IGRhIHh1YXQgaGllbiBjYWMgaG8gcm9uZy4gQ2hvIG5lbiwga2hpIHhlIGNvIHRhaSB0cm9uZyBk dSBuYW5nIGNoYXkgDQpxdWEsIHBoYW4gZHVvbmcgbGFwIHR1YyBzdXAgeHVvbmcgZG90IG5nb3Qs IGdheSB0YWkgbmFuLiBOZ3V5ZW4gbmhhbiwgdGhlbyBUUyBIb2EsIGNvIA0KdGhlIGRvIGNhYyBj b25nIHRob2F0IG51b2MgYmVuIGR1b2kgZGEgZHVvYyBsYXAgZGF0IGtob25nIGR1bmcga3kgdGh1 YXQsIG1vaSBub2kgZ2l1YSANCmNhYyBkb3QgY29uZyBiaSBobyBraGllbiBudW9jIHRoYXkgdmkg Y2hheSB0cm9uZyBvbmcgY29uZyB0aGkgbGFpIGNoYXkgcmEgbmdvYWkuIExhdSBkYW4gDQpkYXQg Y2F0LCB2YXQgbGlldSB0cm9uZyBsb25nIGRhdCBiaSBjdW9uIHRyb2ksIGRlIGxhaSBjYWMga2hv YW5nIHRyb25nIG5hbSBjaHVjIGNobyBnYXkgdGFpIA0KaG9hLg0KDQpLaG9uZyBjaGkgY29uZyB0 aG9hdCBudW9jIG1hIHZvaSBoZSB0aG9uZyBvbmcgY2FwIG51b2MgY3VuZyBuZ3V5IGhpZW0ga2hv bmcga2VtLCANCmJvaSBudW9jIGNoYXkgdHJvbmcgb25nIGNhcCBudW9jIGNvIGFwIHN1YXQgbG9u LCB0b2MgZG8gZG9uZyBjaGF5IG5oYW5oIG5lbiBraGkgYmkgcm8gcmkgDQp0aGkgcGh1dCBtYW5o IHRyb25nIGxvbmcgZGF0IGxhbSBkYXQgY2F0IGN1b24gdHJvaSBjYW5nIG5oYW5oLCBobyBuZ2Ft IGNhbmcgcm9uZyBraGllbiANCm1hdCBkdW9uZyBiZW4gdHJlbiBkZSBkYW5nIHN1cCB4dW9uZy4g TW90IG5ndXllbiBuaGFuIGtoYWMgbGEgY29uZyB0YWMgdGFpIGxhcCBtYXQgDQpkdW9uZyBjYXUg dGhhIGN1bmcga2hpZW4gbnVvYyB0dSB0cmVuIG5nYW0geHVvbmcgbG9uZyBkYXQsIGN1b24gdHJv aSBkYXQgY2F0IGJlbiBkdW9pIA0KdmEgdmUgbGF1IGRhaSBkYW4gaGluaCB0aGFuaCBjYWMgaG8g bmdhbSB0dW9uZyB0dSBuaHUgdHJ1b25nIGhvcCB0cmVuLiBPbmcgSG9hIGtoYW5nIA0KZGluaCwg dmUgbmd1eWVuIHRhYywgbmV1IG5oYSB0aGF1IHRoaSBjb25nIGR1bmcga3kgdGh1YXQsIGRhbSBi YW8gY2hhdCBsdW9uZyB0aGkga2hvbmcgYmFvIGdpbyB4YXkgcmEgc3VwIGhvIGtpZXUgbmF5Lg0K DQpEYW5nIG5vaSBsYSwgdGhlbyBUUyBIb2EsIHRpbmggdHJhbmcgaG8gbmdhbSBraG9uZyBwaGFp IGNodXllbiBtb2kgbyBUUC5IQ00gbWEgZGEgDQpkdW9jIGNhYyBjaHV5ZW4gZ2lhIGNhbmggYmFv IHR1IGNhY2ggZGF5IG1heSBuYW0uICJUcnVvYyBkYXksIGtoaSBjaHVhbiBiaSBzdWEgY2h1YSAN CmNvbmcgdGhvYXQgbnVvYyB0cmVuIGR1b25nIFBhc3RldXIgKFEuMSksIGJlbiBob25nIFNvIEdU VlQsIHRvaSBkYSBjbyBkaXAgY2h1aSB4dW9uZyANCmR1b25nIGNvbmcgbmF5IGRlIHF1YW4gc2F0 LiBMdWMgZG8sIGR1b25nIGNvbmcgYmkgdm8sIG51b2MgY2hheSBhbyBhdCBjdW9uIHRyb2kgZGF0 IGNhdCANCmJlbiBuZ29haSBjb25nLCBkZSBsYWkgbmh1bmcgbG8gaG9uZyBsb24gbWEgbmd1b2kg ZHVuZyBkdW9pIGNvIHRoZSBuaGluIHRoYXkgbG9wIGtldCANCmNhdSBtYXQgZHVvbmcgeGUgY2hh eSBiZW4gdHJlbi4gUmF0IG1heSwgZHVvbmcgUGFzdGV1ciBraG9uZyBjbyB4ZSB0YWkgY2hheSB2 YSBwaGFuIA0KY29uZyBiaSBob25nIG5hbSBvIGxhbiBkdW9uZyBjaG8geGUgMiBiYW5oIG5lbiBk YSBraG9uZyB4YXkgcmEgc3UgY28gZGFuZyB0aWVjLiBOaGFjIA0KbGFpIGNodXllbiBjdSBkZSB0 aGF5IHJhbmcgdmFuIGRlIHN1cCBobyBkYSBkdW9jIGRlIGNhcCB2YSBjYW5oIGJhbyBkZW4gY2Fj IGNvIHF1YW4gDQpjaHVjIG5hbmcgdHUgbGF1IG5odW5nIGRlbiBuYXkgbGFpIHh1YXQgaGllbiB2 b2kgbXVjIGRvIGRheSBkYWMgdmEgbmdoaWVtIHRyb25nIiAtIG9uZyANCkhvYSBub2kuDQoNClRT S0ggSG9hbmcgTmdvYyBLeSAtIGNodXllbiBnaWEgbmdoaWVuIGN1dSBkaWEgY2hhdCAtIGN1bmcg Y2FuaCBiYW8gY2FjIHNhaSBzb3QgdmUgDQpreSB0aHVhdCBraGkgbGFwIGRhdCBjb25nIHRob2F0 IG51b2Mgc2UgcmF0IG5ndXkgaGllbSB2ZSBsYXUgZGFpLiBCb2kgbmV1IHN1cCBobyBkbyB0YWkg bGFwIA0KY2F1IHRoYSBjbyB0aGUga2hhYyBwaHVjIGJhbmcgdmllYyB0YWkgbGFwIGxhaSwgbmh1 bmcgbmV1IGxhcCBkYXQgY29uZyBzYWkga3kgdGh1YXQgdHJvbmcgDQpsb25nIGRhdCB0aGkga2hv bmcgY2FjaCBnaSBraGFjIHBodWMgdHJpZXQgZGUsIG5nb2FpIHZpZWMgcGhhaSBkYW8gbGVuIGxh bSBsYWkuDQoNCkNhbiBraGFuIHRydW9uZyBraWVtIHRyYSBjaGF0IGx1b25nIHRoaSBjb25nDQoN Ck9uZyBLeSBjaG8gcmFuZywgbmd1b2kgZGFuIGhvYW4gdG9hbiBjbyBxdXllbiBkYXQgbmdoaSB2 YW4gdmUgY2hhdCBsdW9uZyB0aGkgY29uZyANCmNvbmcgdGhvYXQgbnVvYyBvIGJlbiBkdW9pIGNh YyB0dXllbiBkdW9uZyB4YXkgcmEgdGFpIG5hbiBjdW5nIG5odSBjYWMgdHV5ZW4gZHVvbmcgDQpj b24gbGFpLCBuaGF0IGxhIHZvaSBoZSB0aG9uZyBjb25nIGRvIGNhYyBuaGEgdGhhdSB0aGkgY29u ZyBjYXUgdGhhIGdheSByYSBzdSBjbyBzdXAgaG8uIA0KVHJvbmcgZG8sIExpZW4gZGFuaCB4YXkg ZHVuZyBWSUMgbGEgbW90IHRyb25nIG5odW5nIG5oYSB0aGF1IGJlIGJvaSBuaGF0IHZhIHR1bmcg YmkgDQp4dSBwaGF0IGhhbmcgdHJhbSBiaWVuIGJhbiB0cm9uZyBxdWEgdHJpbmggdGhpIGNvbmcs IGRheSBjdW5nIGxhIG5oYSB0aGF1IGRhIGRlIHhheSByYSBzdSANCmNvIHN1cCBobyB0YWkgY2F1 IEtpZXUgKG5nYXkgOC4xMCkgdmEgZ2lhbyBsbyBWbyBUaGkgU2F1IC0gSGFpIEJhIFRydW5nIChu Z2F5IDEwLjEwKS4gDQpOaHUgdmF5LCBsaWV1IGNhYyB0dXllbiBjb25nIHRob2F0IG51b2MgZG8g VklDIGxhcCBkYXQgdHJlbiBjYWMgZHVvbmcgTmd1eWVuIERpbmggDQpDaGlldSwgQ2FjaCBNYW5n IFRoYW5nIFRhbSwgQmEgVGhhbmcgSGFpLCBUcmFuIEtoYW5oIER1LCBUcmFuIE5oYXQgRHVhdCwg VHJhbiANCktoYWMgQ2hhbiwgVHJhbiBRdWFuZyBLaGFpLCBEYW5nIER1bmcuLi4gY28gZGFtIGJh byBjaGF0IGx1b25nIHZhIGtob25nIHhheSByYSBzdSANCmNvIHN1cCBobyB0cm9uZyB0dW9uZyBs YWk/IA0KDQpUdW9uZyB0dSwgVG9uZyBjb25nIHR5IHhheSBkdW5nIHNvIDEgZGEgZGUgeGF5IHJh IHN1IGNvIHN1cCBobyB0YWkgbmdhIHR1IFBodSBOaHVhbiANCihuZ2F5IDEuOCkgY3VuZyBsYSBu aGEgdGhhdSB0aGkgY29uZyB0cmVuIG5oaWV1IHR1eWVuIGR1b25nIGtoYWMgbmh1IFBoYW4gRGlu aCBQaHVuZywgDQpOZ3V5ZW4gS2llbSwgRGluaCBUaWVuIEhvYW5nLCBMZSBRdWFuZyBEaW5oLCBQ aGFtIFZhbiBIYWkuLi4gDQoNCkNvbiBsaWVuIGRhbmggRHJlY28gLSBDaWVuY28gNSBkZSB4YXkg cmEgMiBzdSBjbyBzdXAgaG8gdnVhIHF1YSBsYSBkb24gdmkgdGhpIGNvbmcgbGFwIA0KY29uZyB0 cmVuIHRydWMgZHVvbmcgTGUgVmFuIFN5LCBCdWkgVGhpIFh1YW4uLi4NCg0KTmd1b2kgZGFuIGto b25nIHRoZSBiaWV0IGNoYXQgbHVvbmcgbGFwIGRhdCBjYWMgdHV5ZW4gY29uZyBiZW4gZHVvaSBs b25nIGRhdCB0aGUgbmFvLCANCmxpZXUgcm9pIGJhbyBnaW8gdmEgbyBkYXUgdGluaCB0cmFuZyBz dXAgaG8gc2UgbGFpIHRhaSBkaWVuPyBUaGlldCBuZ2hpIGNhYyBjbyBxdWFuIGNodWMgDQpuYW5n IGNhbiBraGFuIHRydW9uZyB0aGFuaCBsYXAgZG9hbiBraWVtIHRyYSByYSBzb2F0IGxhaSBjaGF0 IGx1b25nIHRhaSBjYWMgdHV5ZW4gZHVvbmcgDQpkbyBjYWMgbmhhIHRoYXUgbmF5IHRoaSBjb25n LCBzYXUgZG8gbW8gcm9uZyByYSB0b2FuIGJvIGhlIHRob25nIHRob2F0IG51b2MgY3VhIFRQLiBC b2kgDQpuZXUgY2hhbSBwaGF0IGhpZW4gY2FjIHNhaSBzb3QsIHRoaSBjYWMgaG8gbmdhbSBzb20g bXVvbiBjdW5nIHNlIGhpbmggdGhhbmggYW0gdGhhbSANCnRyb25nIGxvbmcgZGF0LCBjaHVjIGNo byBnYXkgdGFpIGhvYSBjaG8gbmd1b2kgZGFuLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL25ld3MvUGFnZXMvMjAxMDQ2LzIwMTAxMTA5MTUwMzQ5LmFzcHggMDkvMTEvMjAxMCAxNTow NSANCg0KU2FpIEdvbiBzb25nIGNodW5nIHZvaSB0cmlldSBjdW9uZyAtIEJhaSAxOiBOaGEgbmhh IHhheSAiZGUiICANCg0KSGF1IG5odSBuaGEgbmFvIG8gZHVvbmcgQmluaCBRdW9pIChRLkJpbmgg VGhhbmgpIGN1bmcgeGF5ICJkZSIgbmdhbiBudW9jIHRyaWV1IA0KY3VvbmcgLSBBbmg6IFRyaSBR dWFuZw0KDQooVE5PKSBUcmlldSBjdW9uZyBkYSB0aHVjIHN1IHRybyB0aGFuaCBub2kga2luaCBo b2FuZyBjdWEgbmhpZXUgbmd1b2kgZGFuIFRQLkhDTS4gDQpOdW9jIHRyYW4gdmFvIG5oYSwgbW9p IHNpbmggaG9hdCBiaSBkYW8gbG9uLCBjaHV5ZW4gbXV1IHNpbmggY3VhIG5oaWV1IG5ndW9pIHJv aSB0dW5nIA0Kcm9pIG11IHZvaSBuaGlldSB0aW5oIGh1b25nIGRvIGtob2MgZG8gY3VvaS4gIA0K DQpUcmlldSBjdW9uZyBkYW5nIGRpZW4gYmllbiB2byBjdW5nIHBodWMgdGFwIGtoaSBuaHVuZyBk aW5oIG1vaSBsaWVuIHR1YyB4dWF0IGhpZW4uIA0KRHVvbmcgbmh1IG1vaSBuZ3VvaSBkZXUgYmF0 IGx1YyB0cnVvYyBjYWkgbGUgImxlbiB0aGVvIGNvbiBudW9jIiBuYXk/IENvIGxlLCBuZ3VvaSBT YWkgDQpHb24gZGEgZGVuIGx1YyBwaGFpICJzb25nIGNodW5nIiB2b2kgdHJpZXUgY3Vvbmcgcm9p ISANCg0KIkdpYWMiIG51b2MgaG9hbmggaGFuaA0KDQpUcnVvYyBkdSBiYW8gdHJpZXUgY3Vvbmcg dGFpIFRQLkhDTSBzZSB0YW8gZGluaCBreSBsdWMgbW9pIHZhbyBjaGlldSA4LjExLCBjaHVuZyB0 b2kgDQpkYSB4dW9uZyB0aHVjIHRlIHRhaSBraHUgQmluaCBRdW9pIChRLkJpbmggVGhhbmgpIHZh byBkZW0gNi4xMS4gDQoNClRyb2kgZGEga2h1eWEgbWEgYW5oIExlIEFuaCBUYW4sIG5oYSBvIGR1 b25nIEJpbmggUXVvaSB2YW4gaGkgaHVjIHRyb24geGkgbWFuZyB2b2kgDQpkb25nIGNhdCB0cnVv YyBuaGEuIA0KDQpBbmggZGFuZyBraGFuIHRydW9uZyB4YXkgdmFjaCBuZ2FuIG5nYXkgdHJ1b2Mg Y3VhIGRlIGNoYW4gY29uIG51b2MgZGFuZyBjYW8gdHUgZG90IA0KdHJpZXUgY3VvbmcgdGllcCB0 dWMgInF1YXkiIHZhbyByYW5nIHNhbmcgaG9tIHNhdS4NCg0KQW5oIFRhbiB0cmFuaCB0aHUgeGF5 IHZhY2ggbmdhbiBuZ2F5IGdpdWEgaGFpIGRvdCB0cmlldSBjdW9uZyAtIEFuaDogVHJpIFF1YW5n DQogDQpDaGkgdHJ1b2MgZG8gY2h1bmcgMjAgcGh1dCwgZG9uZyBudW9jIGR1IHRvbiBjdWEgZG90 IHRyaWV1IGN1b25nIGRhbmcgbHVjIDE3IGdpbyANCmNoaWV1IG1vaSB2dWEgcnV0IGJvdCwgc2F1 IGtoaSBsYW0gbmdhcCB1bmcgY2EgbmhhIGFuaCBUYW4gY3VuZyBuaHUgY2EgY29uIGR1b25nIEJp bmggDQpRdW9pLCB2b2kgY2hpZXUgY2FvIGdhbiBudWEgbWV0LiANCg0KTW9pIGtoaSBkdW9uZyBC aW5oIFF1b2kgbmdhcCBzYXUgZGVuIGdhbiBoZXQgYmFuaCB4ZSwgaGFuZyBsb2F0IG5oYSBkYW4g YmkgbnVvYyB0cmFuIHZhbyAgLSBBbmg6IFRyaSBRdWFuZw0KDQoiTmhhbiBsdWMgbnVvYyBydXQs IHR1aSB0cmFuaCB0aHUgeGF5IHRhbSBjYWkgZGUgY2hhbiBuaG8gZGUgbmdhbiBudW9jIGRhbmcg dHJvbmcgdmFpIA0KdGllbmcgZG9uZyBobyB0b2ksIG1heSBiYW8gY2F0IGNoaXUgZHVuZyBoZXQg bm9pIG51YSByb2kiLCBhbmggVGFuIHRoYW4gdGhvIHZvaSBkb2kgbWF0IA0KdGhhbSBxdWFuZyB2 aSBwaGFpIHRodWMgdHJhbmcgc3VvdCBtYXkgZGVtIHZ1YSByb2kgZGUgZG9pIHBobyB2b2kgY29u IG51b2MgZGFuZyBjYW8gDQpsaWVuIHR1YyBsdWMgbnVhIGRlbSB2ZSBzYW5nLg0KDQpCYW8gbmhp ZXUgbmFtIHF1YSwgbmd1b2kgZGFuIGtodSBuYXkgZGEgcXVhIGFtIGFuaCBoYWkgdGllbmcgInRy aWV1IGN1b25nIiwgaG8gDQpjb2kgbmh1bmcgZG90IGxlbiB4dW9uZyBjdWEgY29uIG51b2MgbmF5 IGxhICJnaWFjIi4NCg0KRGVuIGJhbiBhbiBjb20gY3VuZyBwaGFpIGtlIGNhbyBuaHUgdGhlIG5h eSAtIEFuaDogVHJpIFF1YW5nDQoNCiJHaWFjIiBtYWMgc3VjIGxlbiBsb2kgdmFvIHBob25nIG5n dSwgImdpYWMiIG5nYW5nIG5oaWVuIG5nYXAgc2F1IG5oYSB0YW0sICJnaWFjIiBoYSANCmhlICJ4 b2kiIHR1bmcgZG8gZGFjIHZhICJnaWFjIiB0aGEgaG8gbGFtIGRhbyBsb24gY3VvYyBzb25nIG1v aSBuZ3VvaS4uLg0KDQoiQ3VuZyB2aSB0cmlldSBjdW9uZyBtYSB2byBjaG9uZyB0dWkga2hvbmcg dGhlIGRlIGNvbiBjYWkgbyBkYXkgZHVvYyBtYSBwaGFpIGd1aSBvIG5oYSANCmJhIG5nb2FpLiBU b2kgdG9pIGtob25nIGNvIGNvbiBjYWkgbyBkYXkgY3VuZyBuaG8gIGxhbSIsIGFuaCBUYW4gY2hp YSBzZS4NCg0KVHJpZXUgY3Vvbmcga2hvbmcgZGEga2hvLCBuaHVuZyBraGkgbnVvYyBkYW5nIGNh byAiY2FwIGtlIiB2b2kgbXVhIHRvIGtlbyBkYWksIG5ndW9pIA0KZGFuIHNvbmcgdGFpIGtodSB2 dWMgQmluaCBRdW9pIGNhbmcgcm9pIHZhbyBjYW5oIGRpZXUgZHVuZy4gDQoNCk5ldSBkaSBkb2Mg ZHVvbmcgQmluaCBRdW9pLCBxdWEga2h1IGNodW5nIGN1IFRoYW5oIERhLCBkZSB0aGF5IGhhdSBu aHUgbmhhIG5hbyBjdW5nIHhheSAiZGUgYmFvIiB0aGFuaCB2YWNoIGNoYW4gbnVvYyB0cmlldSBj dW9uZywgdmEgdGhhbSBjaGkgY3VuZyBjbyBraG9uZyBpdCBnaWEgZGluaCBsYW0gImRhcCIgbmhv IG5nYXkgdHJ1b2MgY3VhIGRlIHRpZXUgbnVvYy4NCg0KTmh1bmcgY29uICJkYXAiIG5obyB0cnVv YyBuaGEgZHVuZyBkZSB0aWV1IG51b2MgdHJpZXUgY3VvbmcgbyBsbyBBLCBjaHVuZyBjdSBUaGFu aCANCkRhIC0gQW5oOiBUcmkgUXVhbmcNCg0KWGF5ICJkZSIgY2hvbmcuLi4gImdpYWMiDQoNCkhh aSB2byBjaG9uZyBuaGEgY2hpIFh1YW4sIG8ga2UgYmVuIG5oYSBhbmggVGFuIGN1bmcgZGFuZyBn YXAgcnV0IHhheSAiZGUgYmFvIiAodmFjaCANCm5nYW4pIHRydW9jIGN1YSBkZSBjaG9uZyAiZ2lh YyIuIE1heSBkZW0gbGllbiwgY2EgbmhhIGNoaSBwaGFpIHRodWMgZGF5IGx1YyAzIGdpbyBzYW5n IA0KZGUgdGF0IG51b2MgcmEgbmdvYWkuIA0KDQoiTnVvYyBraG9uZyBjaGkgdHJhbiB0dSBuZ29h aSB2YW8gbWEgY29uIHUgbGVuIHR1IGhlIHRob25nIGNvbmcgdHJvbmcgbmhhLCBtb2kgbGFuIHZh eSANCmxhIGtobyBsYW0iLCBjaGkgWHVhbiBjaG8gaGF5Lg0KDQpOaGEgdGFtIGN1bmcgcGhhaSB4 YXkgImRlIiBkZSBuZ2FuIG51b2MgdSBuZ3VvYyBsZW4gdHUgaGUgdGhvbmcgY29uZyAtIEFuaDog VHJpIFF1YW5nDQoNCiJEZW4gY2hvIG5hbSBuZ3UgY3VuZyBraG9uZyBjbywgaGFpIHZvIGNob25n IHBoYWkga2UgZ2hlIGRlIG5ndSB0YW0sIHZ1YSBuZ3UgdnVhIGNhbmggbnVvYyBkYW5nIiBDaGkg WHVhbg0KDQpDaG9uZyBjaGkgWHVhbiBjdW5nIHZ1YSBtb2kgeGF5ICJkZSIgbmdheSB0YWkgY3Vh IG5oYSB0YW0gZGUgbmdhbiBudW9jIHUgbGVuIHR1IGxvIA0KY29uZyB0cm9uZyBwaG9uZyB0YW0u IE5odW5nIGJpdCBjaG8gbmF5LCB0aGkgInRoYW5nIGdpYWMiIGxhaSB1b25nIG5nYW5oIG5nb2kg bGVuIGNobyBraGFjLg0KDQpDaGkgWHVhbiBjaG8gYmlldCwgdHUgZGF1IHRoYW5nIDExIGRlbiBu YXksIG5nYXkgbmFvIGN1bmcgY28gZGV1IGRhbiBoYWkgZG90IHRyaWV1IA0KY3VvbmcuICJEb3Qg bW90IHR1IDUsIDYgZ2lvIGNoaWV1IGNobyB0b2kgOSBnaW8gdG9pLCBkb3QgMiBsYSB0dSAzIGdp byBzYW5nIGNobyB0b2kgNiBnaW8gDQpzYW5nLiBDYSBuZ2F5IGN1IGxvIGRvaSBwaG8gdm9pIGNv biBudW9jIGRhbmcsIHRodSBob2kgbGFtIGFuICBzYW8gY2hvIGR1b2MiLCBjaGkgDQpYdWFuIHF1 YW4gbG9uZyBub2kuDQoNCkdpb25nIG5odSB2YXksIGNoaSBUaHUsIGJhbiBxdWFuIGFuIG8ga2h1 IHZ1YyBnYW4gZG8sIGN1bmcgdG8gcmEgdm8gY3VuZyBsbyBsYW5nIHZpIA0Ka2hvbmcgYmlldCBi YW8gZ2lvIHRyaWV1IGN1b25nIG1vaSBnaWFtLg0KDQpIZSBjbyB0cmlldSBjdW9uZyBrZW0gbXVh IHRvLCBuaGEgY2hpIFRodSB0YW4gbmF0IHRoZSBuYXkgLSBBbmg6IFRyaSBRdWFuZw0KDQpTdW90 IG5oaWV1IG5nYXkgcXVhLCBjaGkga2hvbmcgYnVvbiBiYW4gZ2kgZHVvYyB2aSBtYWkgbG8gY2hv bmcgY2hvaSB2b2kgbXVjIG51b2MgDQpkYW5nIGNhbyBudWEgbWV0IHRydW9jIHF1YW4uDQoNCkhl IGN1IGRlbiAxNyBnaW8gY2hpZXUsIGNoaSBUaHUgbGFpIGxvIGtoaWVuZyBiYW8gY2F0IGNoYW4g dGhhbmggY29uICJkZSIgbG9uLCByb2kgY29pIA0Kbm9pIHRoZW0gbWF5IHRhbSB2YW4gZGUgbmdh biBudW9jIHRyYW4gdmFvLg0KIk1heSBuYW0gdHJ1b2MgbnVvYyBkYXUgY28gbGVuIGNhbyBkdSB2 YXksIGtob25nIGhpZXUgdGFpIHNhbyBuYW0gbmF5IHRyaWV1IGN1b25nIGxhaSANCnBodWMgdGFw IGRlbiB0aGUuIE5ldSB0dSBkYXkgZGVuIGN1b2kgdGhhbmcgY3UgbmdhcCB1bmcgdGhlIG5heSB0 aGkgdHVpIGtob25nIGJpZXQgbGFtIA0Kc2FvIHNvbmcgZGF5IiwgY2hpIFRodSBidW9uIHJhdSBk YXQgY2F1IGhvaSBjaG8gY2hpbmggbWluaC4NCg0KVHJpZXUgY3VvbmcgbmFtIHNhdSBjYW8gaG9u IG5hbSB0cnVvYyANCg0KIlR1IG5hbSAyMDA0IGRlbiBuYXksIGRpbmggdHJpZXUgY2FvIG5oYXQg bmFtIGxpZW4gdHVjIHRhbmcuIE5oaWV1IGRvdCB0cmlldSBjdW9uZyBjbyANCm11YyBudW9jIGRp bmggdHJpZXUgZGF0IHZhIHZ1b3QgZ2lhIHRyaSB0cm9uZyBjaHVvaSBzbyBsaWV1IGxpY2ggc3Us IG5hbSBzYXUgY2FvIGhvbiBuYW0gDQp0cnVvYyBuaHUgZGluaCB0cmlldSBjdW9uZyBuYW0gMjAw NiB0YWkgdHJhbSBQaHUgQW4gbXVjIG51b2MgZGF0IGxpY2ggc3UgbGEgMSw0N20sIA0KbmFtIDIw MDcgZGluaCB0cmlldSBsYWkgY2FvIGxhIDEsNDltLCBuYW0gMjAwOCBsYSAxLDU1bSwgbmFtIDIw MDkgbGEgMSw1Nm0gdmEgbmFtIA0KbmF5IGNvIHRoZSBzZSBsYSAxLDU4bSANCkRvdCB0cmlldSBj dW9uZyBnaXVhIHRoYW5nIDExIG5hbSAyMDA4IGNvIGRpbmggdHJpZXUgbGljaCBzdSB0cm9uZyB2 b25nIDQ5IG5hbSAoa2UgdHUgDQpuYW0gMTk2MCkgdmFvIGNoaWV1IG5nYXkgMTMuMTEuMjAwOCAo bmhhbSBuZ2F5IDE2LjEwIGFtIGxpY2gpIGxhIDEsNTQgbS4NClNhbmcgbmdheSAxNS4xMi4yMDA4 LCBkaW5oIHRyaWV1IGxhaSBjb24gY2FvIGhvbiB0aGFuZyAxMSwgdm9pIGRpbmggdHJpZXUgZGF0 IDEsNTVtIA0KKG5oYW0gbmdheSAxOS4xMSBhbSBsaWNoKSBsYSAxLDU1IG0gKGx1YyA1IGdpbykg dnVvdCBtdWMgYmFvIGRvbmcgY2FwIElJSSAoMCwwNSBtKS4gIA0KTmFtIDIwMDksIGRpbmggdHJp ZXUgdGllcCB0dWMgcGhhIGt5IGx1YyBjdWEgbmFtIDIwMDgsIGRhdCBkaW5oIHRyaWV1IGNhbyAx LDU2bSAobmdheSANCjE0LjExIG5oYW0gbmdheSAyOC45IGFtIGxpY2gpLiANClZhIG5hbSAyMDEw LCBjaGlldSB0b2kgbmdheSA3LjExLCBkaW5oIHRyaWV1IGRhIGRhdCBtdWMgbGEgMSw1NW0gKG5o YW0gbmdheSAyLjEwIGFtIA0KbGljaCkuDQpSbyByYW5nIG11YyBudW9jIGRpbmggdHJpZXUgbmdh eSBjYW5nIGNhbyBob24sIHZhIGtoaSBwaGFuIHRpY2ggc28gbGlldSBkaW5oIHRyaWV1IGNhIA0K bmFtIGNobyB0aGF5IGtob25nIGNoaSB2YW8gY2FjIHRoYW5nIGNhbyBkaWVtIGN1YSB0cmlldSBj dW9uZyBsYSB0aGFuZyAxMCwgMTEgdmEgMTIsIA0KbWEgY2FjIHRoYW5nIGtoYWMgY3VuZyBjbyB4 dSBodW9uZyBkYW5nIGNhby4iIC0gVGhhYyBzaSBMZSBUaGkgWHVhbiBMYW4gLSBOZ3V5ZW4gTGUg SGFuaCAoRGFpIEtoaSB0dW9uZyB0aHV5IHZhbiBOYW0gQm8pDQooQ29uIHRpZXApDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTEwOTE2MTkzNi5h c3B4IFRyaSBRdWFuZyAxMC8xMS8yMDEwIDk6MTkgDQoNClNhaSBHb24gc29uZyBjaHVuZyB2b2kg dHJpZXUgY3VvbmcgLSBCYWkgMjogTmdoZW8gdmkgY2hvbmcgbmdhcCAgDQoNCihOaGEgY2hpIFRy YW5nIG8gdGFuZyB0cmV0IGNodW5nIGN1IFRoYW5oIERhIG11b24gbmFuZyBuZW4gY3VuZyBraG9u ZyBkdW9jIHZpIHRyYW4gDQpuaGEgcXVhIHRoYXAgLSBBbmg6IFRyaSBRdWFuZykgIA0KDQooVE5P KSAiVHVpIG1vaSB2dWEgdmF5IHRpZW4gZGUgbmFuZyBuZW4gbmhhLCBubyBjdSBjaHVhIHRyYSB4 b25nIHRoaSBzYXAgcGhhaSBkZSB0aGVtIA0Kbm8gbW9pIGRlIG5hbmcgbmhhIHRpZXAsIHZpIG51 b2MgdHJpZXUgY3VvbmcgbmdhcCBjYW8ga2hvbmcgbmdvLi4uIi4gRG8gbGEgdGFtIHN1IGN1YSAN Cm9uZyBUYW0sIDYwIHR1b2ksIG5ndSBvIGR1b25nIFBoYW0gVGhlIEhpZW4sIFEuOCwgVFAuSENN LiANCg0KKiBCYWkgMTogTmhhIG5oYSB4YXkgImRlIg0KDQpLaG9uZyBjaGl1IHRodWEgbmh1bmcg Y29uIHRyaWV1IGN1b25nIGh1bmcgaGFuLCBuaGlldSBuZ3VvaSBkYW4gZGEgZG9pIHBobyBiYW5n IGNhY2ggDQpuYW5nIGNhbyBuZW4gbmhhIGN1YSBtaW5oIGRlIGNob25nIGNob2kuIE5odW5nIGRv IGxhIGRpZXUgbmhpZXUgbmd1b2kgbXVvbiwgY29uIA0KdmllYyB0aHVjIGhpZW4gdGhpIGxhbSBn aWFuIG5hbi4gIA0KDQoiUGhlcCBTb24gVGluaCIgY3VuZyBjaGFvIHRodWEuLi4NCg0KUGh1b25n IDcgdmEgcGh1b25nIDggdHJlbiB0cnVjIGR1b25nIFBoYW0gVGhlIEhpZW4gKFEuOCkgbmdhbiBj YWNoIG5oYXUgY2hpIGJhbmcgDQptb3QgY2hpZWMgY2F1LCBuaHVuZyBuZXUgcGh1b25nIDggaXQg bmdhcCB0aGkgcGh1b25nIDcgbGFpIG5nYXAgbmFuZyB0aHVvbmcgeHV5ZW4gDQp0cm9uZyBuaHVu ZyBkb3QgdHJpZXUgY3VvbmcsIGRhYyBiaWV0IGxhIHRob2kgZGllbSB0cmlldSBjdW9uZyBkaWVu IGJpZW4gcGh1YyB0YXAgbmh1IA0KbmhpZXUgbmdheSBxdWEuIA0KDQpOaGEgb25nIFRhbSBub2kg dHJlbiB0aHVvYyBwaHVvbmcgNyB2YSBjdW5nIGdpb25nIG5odSBuaGlldSBnaWEgZGluaCBraGFj LCBuaHVuZyANCm5nYXkgZ2FuIGRheSwgb25nIFRhbSBwaGFpIGRhdSBraG8gZG9pIHBobyB2b2kg Y2FjIGRvdCB0cmlldSBjdW9uZyBsaWVuIHR1YyB4YXkgcmEuDQoNCihBbmg6IE51b2MgbmdhcCB0 cmFuIGxhbiB2YW8gbmhhIG9uZyBUYW0gLSBBbmg6IFRyaSBRdWFuZykgDQoNCk11YyBudW9jIG5n b2FpIGR1b25nIGNhbyBob24gbmhhIG9uZyBUYW0gaG9uIDEwIGNtLCBuZW4gbHVjIG5hbywgY2Fu aCBjb25nIG5oYSANCm9uZyBjdW5nIGRlIHNhbiBoYW5nIGNodWMgYmFvIGNhdC4gSGUgbnVvYyBs ZW4gbHVjIG5hbyB0aGkgY2hhbiBiYW8gY2F0IG5nYW4gbnVvYyBuZ2F5IA0KbHVjIGRvLiANCiAN Ck9uZyBUYW0gY2hvIGJpZXQsIGNhYyB0dSBkbyBiYW5nIGdvIHRyb25nIG5oYSBuZ2FtIG51b2Mg bGF1IG5nYXkgYmkgYm9uZyB0cm9jIGhhbmcgDQpsb2F0LiBOZ29haSByYSwgbnVvYyB0cmlldSBj dW9uZyBjdW5nIGxhbSBodSBoYWkgbmhpZXUgdmF0IGR1bmcsIHRoaWV0IGJpIGNvIGdpYSB0cmkg a2hhYy4gDQoNCihBbmg6IEhldCBvbmcgdGF0IG51b2MsIHJvaSBkZW4gY2hhdSB0aWVwIHN1YyAt IEFuaDogVHJpIFF1YW5nKSANCg0KU29uZyBvbmcgVGFtIGNoYW5nIHRoZSBjaHV5ZW4gZG8gZGkg ZGF1IGR1b2Mgdmkga2hvbmcgZ2lhbiBuaGEgcXVhIGNoYXQgaGVwLg0KDQoiQmkgbmdhcCBob2Fp IG5lbiBuaGlldSBsdWMgdHVpIGJvIGx1b24sIGtob2kgdGF0IG51b2MsIGRlIGtoaSBuYW8gbnVv YyBydXQgdGhpIGxhdSBuaGEgbGFpLiANCkNoYW5nIGhhbiBtdWEgbmF5IGRpLCBudW9jIG5nYXAg bmdheSBoYWkgbGFuLCBtaW5oIHZ1YSB0YXQgbnVvYyB4b25nLCBudW9jIGxhaSB1IGxlbiANCnRp ZXAsIG5ldSB0YXQgbnVhIHRoaSBob2kgc3VjIGRhdSBjaGl1IG5vaSIsIG9uZyBUYW0gdGhhbiB2 YW4uDQoNCihBbmg6IE9uZyBUYW0gZGFuZyB0aW5oIHZheSB0aWVuIHRoZW0gZGUgbmFuZyB0aWVw IG5lbiBuaGEgbGFuIG51YSAtIEFuaDogVHJpIFF1YW5nKQ0KDQpDYWNoIGRheSBraG9uZyBsYXUs IG9uZyBUYW0gdmF5IHRpZW4gbmFuZyBuZW4gdmEgdHJhbiBuaGEgZGUgdHJhbmggbmdhcC4gTmh1 bmcgbWF5IA0KdGhhbmcgZ2FuIGRheSwgdHJpZXUgY3VvbmcgbmdheSBjYW5nIGRhbmcgY2FvLiBP bmcgZGFuZyB0aW5oIHBoYWkgdmF5IHRoZW0gdGllbiBkZSBzdWEgDQpsYWkgbmVuIG5oYSBsYW4g bnVhLCB0cm9uZyBraGkgY29uIGNodWEgdHJhIHhvbmcga2hvYW4gbm8gY3UuDQoNCiJUdSBjdXUg bWluaCIgdmEgY2hvIGRvaS4uLg0KDQpOaGEgbyBjYSBuaGFuIG5odSBvbmcgVGFtIGNvbiBjbyBj byBob2kgbmFuZyBuZW4gdHJhbmggbmdhcCwgc29uZywgZG9pIHZvaSBuZ3VvaSANCmRhbiBzb25n IHRhaSBjYWMga2h1IGNodW5nIGN1LCBtdW9uIG5hbmcgbmhhIGtob25nIHBoYWkgY2h1eWVuIGRl LiBDaGkgVm8gVGhpIE1pbmggDQpUcmFuZywgY2h1IG5oYSBzbyAwMzkgY2h1bmcgY3UgVGhhbmgg RGEgKFEuQmluaCBUaGFuaCkgbGEgbW90IHRyb25nIG5odW5nIHRydW9uZyANCmhvcCBuaHUgdGhl LiANCg0KKEFuaDogTmhhIGNoaSBUcmFuZyBraG9uZyB0aGUgbmFuZyBuZW4gbGVuIGR1b2MgbnVh IHZpIHRyYW4gbmhhIHF1YSB0aGFwIHZhIG5oYSBjaGkgDQp0aHVvYyB0YW5nIHRyZXQgY3VhIGNo dW5nIGN1IFRoYW5oIERhIC0gQW5oOiBUcmkgUXVhbmcpDQoNCk5oYSBjaGkgbmFtIG8gdGFuZyB0 cmV0IGN1YSBjaHVuZyBjdS4gVHJ1b2MgZGF5LCBjdSBtb2kgZG90IHRyaWV1IGN1b25nLCBuaGEg Y2hpIGRldSBiaSANCm5nYXAuIA0KDQpDaGkgVHJhbmcgcXV5ZXQgZGluaCBuYW5nIG5lbiwgdHJv bmcga2hpIGtob25nIHRoZSBuYW5nIHRyYW4gbmhhLiBEaWV1IG5heSBkb25nIG5naGlhIA0Kdm9p IHZpZWMgdGh1IGhlcCBkYW5nIGtlIGNoaWV1IGNhbyBnaXVhIG5lbiB2YSB0cmFuLCBkbyB2YXkg bXVvbiBuYW5nIHRoZW0gbmVuIGxhIA0KY2h1eWVuIGtob25nIHRoZS4gDQoNCiJOZXUgZG90IG5h eSBuYW5nIHRpZXAgbmVuIG5oYSB0aGkgdHJhbiBuaGEgdGhhcCBsYW0sIG8ga2hvbmcgdGllbi4g VG9pIGRhbmggcGhhaSBnYW4gDQp0YW0gdGFtIGNoYW4gYmFuZyBnbyBkZSBuZ2FuIG51b2MgYm90 IiwgY2hpIFRyYW5nIG5vaS4NCiANClRyb25nIGtoaSBkbywgY2hpIExlIFRoaSBMaWVuLCBzb25n IG8gbG8gQSBjdW5nIGNodW5nIGN1IG5heSB0aGkga2V1IGtobyB2aSBudW9jIHRyaWV1IA0KY3Vv bmcgZ2FuIGRheSBsZW4geHVvbmcgcmF0ICJob24iLCBiYW8gaGFpIG5oYSBjaGkgbmdhcCB0dSB0 cm9uZyByYSBuZ29haSBzdW90IG5oaWV1IA0KbmdheSBsaWVuLg0KIA0KKEFuaDogTmhhIGNoaSBM aWVuIHBoYWkga2UgaGFpIHRhbSB2YW4gY2FvIDEgbWV0IG1vaSBkdSBzdWMgY2hhbiBudW9jIHRy aWV1IGN1b25nIJYgDQpBbmg6IFRyaSBRdWFuZykNCg0KIkx1YyB0cnVvYyBtb2kgdGhhbmcgY2hp IGRvaSBwaG8gdm9pIGhhaSBsYW4gdHJpZXUgY3VvbmcsIG5odW5nIGRhbyBuYXkga2hvbmcgaGll dSBzYW8gDQpudW9jIG5nYXAgbGllbiB0dWMuIE1vaSBsYW4gY28geGUgbG8gdG8gaGF5IHhlIG1h eSBjaGF5IG5oYW5oIHF1YSB0cnVvYyBuaGEsIG51b2MgDQoibmhheSIgcXVhIHZhY2ggbmdhbiBh byBhbywgY2EgbmhhIHRvaSB0YXQga2hvbmcgeHVlIiwgY2hpIExpZW4ga2UuDQoNCkRlIGRvIHRh dCBudW9jLCBuaGEgY2hpIExpZW4gcGhhaSBwaGFuIGNvbmcgbmhhdSByYSBkdW5nIG5nb2FpIGR1 b25nIHRydW9jIG5oYSwgaGUgDQp0aGF5IHhlIG5hbyBjaGF5IHRvYyBkbyBuaGFuaCB0aGkgeWV1 IGNhdSBobyBjaGF5IGNoYW0gbGFpLiANCg0KTWF5IGhvbSBuYXksIG1heSBib20gbyBraHUgY2h1 bmcgY3UgdHJlbiBiaSB2byBoaWV1IGhvYSBkbyBjb25nIHRob2F0IG51b2MgbmdhcCByYWMsIA0K bGFtIHRhYyBuZ2hlbiBkdW9uZyBib20uIERvIHZheSwgbnVvYyBjYW5nIGRhbmcgY2FvIGhvbiBi aW5oIHRodW9uZywgbmhhIGRhbiBjYW5nIA0Ka2hvbiBkb24uIA0KDQpDaGkgTGllbiBjaG8gaGF5 LCBudW9jIGtob25nIGNoaSB4YW0gbGFuIHR1IGJlbiBuZ29haSBtYSBjb24gdSBsZW4gdHUga2hh cCBjYWMgbmdvYyANCm5nYWNoIHRyb25nIG5oYSwgdGhhbSBjaGkgbGEgdHUgYm9uIHJ1YSBjaGVu IHZvbiBuYW0gdHJlbiBjYW8sIGdheSBodSBoYWkgbmhpZXUgZG8gZGFjLiAgDQoNCihBbmg6IFRy dW9jIGNodW5nIGN1IFRoYW5oIERhIChRLkJpbmggVGhhbmgpIG5nYXAgbmFuZyBtb2kga2hpIHRy aWV1IGN1b25nIGxlbiAtIEFuaDogVHJpIFF1YW5nKQ0KDQpOaHVuZyBnaWEgZGluaCBodW5nIGNo aXUgbmFuIG5nYXAgdW5nIHNvbSBuaGF0IG8ga2h1IFRoYW5oIERhIGNoaW5oIGxhIGNhYyBobyB0 YWkgDQpraHUgc2F0IGxvLCBuYW0gZHVvaSBjaGFuIGNhdSBLaW5oLg0KDQpEbyBraG9uZyB0aGUg eGF5IGR1bmcgbmhhIGtpZW4gY28gdHJlbiBkYXQgZ2lhaSB0b2EsIG5lbiBuZ3VvaSBkYW4ga2h1 IG5heSBwaGFpIHNvbmcgDQp0cm9uZyBkaWV1IGtpZW4gaGV0IHN1YyB0ZSBoYWkgbW9pIGtoaSBu dW9jIHRyaWV1IGRhbmcgbGVuLCBkYWMgYmlldCBsYSBjYWMgbmhhIHNhdCBibyANCnNvbmcuIA0K IA0KKEFuaDogSGF1IGhldCBjYWMgbmhhIHNhdCBibyBzb25nIG8gZHVvaSBjaGFuIGNhdSBLaW5o IFRoYW5oIERhIGRldSBraG9uIGRvbiBtb2kga2hpIA0KbnVvYyBkYW5nIC0gQW5oOiBUcmkgUXVh bmcpDQoNCkRhbmcgdGh1b25nIHZhIGNhbSBjYW5oIG5oYXQgbGEgY2FjIGVtIG5obyBvIGtodSBu YXkuIE1vaSB0b2kgaG9jIGJhaSwgY2FjIGVtIHBoYWkgDQpuZ29pIGNhbSBjdWkgZ2l1YSBiaWVu IG51b2MgbGVuaCBsYW5nIGtoYXAgcGhvbmcuIA0KDQpNYXkgaG8gbnVvaSB0b20gZ2lvbmcgY3Vh IG5oYSBjaGkgSGFuZywgdGFpIGtodSB2dWMgdHJlbiwgY3VuZyBiaSBudW9jIHRyaWV1IGN1b25n IA0KeGFtIGxhbiBzdW90IG5oaWV1IG5nYXkgcXVhLCBidW9jIGNoaSBwaGFpIHhheSBjYW8gbWll bmcgaG8gbGVuIHRoZW0gMjAgY20uIA0KDQooQW5oOiBOZ3VvaSBkYW4gZGFuZyB0dSBtaW5oIGRv aSBwaG8gdm9pIHRyaWV1IGN1b25nIC0gQW5oOiBUcmkgUXVhbmcpIA0KDQpDbyBjaHVuZyBraWVu IGNhbmggbmd1b2kgZGFuIFRQLkhDTSB0aHVjIHRyYW5nIGN1bmcgdHJpZXUgY3VvbmcgdmEgdGF0 IG51b2MgdmEgbW8gDQpob2kgbW9pIGNvIGNhbSBnaWFjIG5odSB0dW5nIGdpYSBkaW5oIHBoYWkg ZG9uIGRvYyBjaG9uZyBjaG9pIHZvaSBuYW4gImNvbiBudW9jIGxlbiANCnh1b25nIiBuZ2F5IGNh bmcgY2FvLg0KDQpUaGF0IGtobyBoaW5oIGR1bmcgZ2l1YSBtb3QgZG8gdGhpIHRvIGxvbiB2YSBo aWVuIGRhaSBuaGF0IGNhIG51b2Mgbmh1IFRQLkhDTSBsYWkgDQpwaGFpIGNoaXUgY2FuaCBiaSB0 cmlldSBjdW9uZyAidGFuIHBoYSI/IA0KDQpOZ3VvaSBkYW4gdnVuZyB0cmlldSBjdW9uZyBkYW5n ICJ0dSBjdXUgbWluaCIgdmEgY2hvIGRvaSBuaHVuZyBiaWVuIHBoYXAgY2FuIGNvLCBoaWV1IA0K cXVhIHR1IGNvIHF1YW4gY2h1YyBuYW5nLg0KDQpWYW4gY28gdGluIGhpZXUgdnVpDQoNCk5hbSAy MDA3LCBraHUgdnVjIG5vaSB0aGFuaCBUUC5IQ00gY28gZGVuIDkyIGRpZW0gbmdhcCBkbyB0cmll dSBjdW9uZywgbHVjIGRvIGRpbmggDQp0cmlldSBjaGkgY28gMSw0N20uIA0KDQpUdXkgbmhpZW4s IGNoaWV1IHRvaSA4LjExIHZ1YSBxdWEsIGRpbmggdHJpZXUgMSw1MG0gbWEgY2hpIG5nYXAgY28g MTIgdHV5ZW4gZHVvbmcgdmEgDQpzYW5nIDkuMTEgY2hpIGNvbiBuZ2FwIDcgdHV5ZW4gZHVvbmcg a2hpIGRpbmggdHJpZXUgbyBtdWMgMSw0OW0uIENhYyB0dXllbiBkdW9uZyANCnRydW9jIGRheSBu Z2FwIG5hbmcgZG8gdHJpZXUgY3Vvbmcgbmh1IE5ndXllbiBIdXUgQ2FuaCwgVW5nIFZhbiBLaGll bSwgY2FjIGNvbiANCmR1b25nIHRyb25nIGtodSBWYW4gVGhhbmggKFEuQmluaCBUaGFuaCkuLi4g ZGEgZ2lhbSBuZ2FwIGRhbmcga2UgbGEgbmhvIHZhby4uLiB2YW4gDQptb3QgY2hpZXUuIA0KDQpE b2kgdm9pIGtodSB2dWMgbm9pIHRoYW5oLCBnaWFpIHBoYXAgY2FwIGJhY2ggZGEgdmEgZGFuZyBh cCBkdW5nIGxhIGxhcCB2YW4gbW90IGNoaWV1IA0KZGUgbmdhbiB0cmlldSBjdW9uZyB0YWkgY2Fj IG1pZW5nIGNvbmcgeGEsIGdpdXAgZ2lhbSB2YSB4b2EgbmdhcCB0YWkgbmhpZXUga2h1IHZ1Yy4g Q2FjIA0KdmFuIG5heSB0dSBkb25nIGRvbmcgbGFpIGtoaSB0cmlldSBjdW9uZyBsZW4gdmEgdHUg ZG9uZyBtbyByYSBraGkgdHJpZXUgcnV0LiBUaW5oIHR1IGtoaSANCmJhdCBkYXUgdGh1YyBoaWVu IGdpYWkgcGhhcCBuYXkgdmFvIHRoYW5nIDEwLjIwMDggZGVuIG5heSwgZGEgY28gMzE5IHZhbiBt b3QgY2hpZXUgDQpkdW9jIGxhcC4gVGhlbyBrZSBob2FjaCwgdHUgbmF5IGRlbiBjdW9pIG5hbSwg VHJ1bmcgdGFtIENob25nIG5nYXAgc2UgbGFwIHRoZW0gMTMxIA0KdmFuIG51YSwgdHJlbiBraHUg dnVjIGNhYyBxdWFuIDEsIDUsIDcgdmEgSC5OaGEgQmUuDQoNClRoZW8ga2UgaG9hY2gsIHR1IG5h eSBkZW4gY3VvaSBuYW0sIFRydW5nIHRhbSBDaG9uZyBuZ2FwIHNlIGxhcCB0aGVtIDEzMSB2YW4g bnVhLCANCnRyZW4ga2h1IHZ1YyBjYWMgcXVhbiAxLCA1LCA3IHZhIEguTmhhIEJlLiAoTWFpIFZv bmcpDQooQ29uIHRpZXApDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTA0Ni8yMDEwMTEwOTE3NDAwMi5hc3B4IDExLzExLzIwMTAgMTc6NTUgDQoNClNhaSBHb24g c29uZyBjaHVuZyB2b2kgdHJpZXUgY3VvbmcgLSBCYWkgMzogRGluaCB0cmlldSBjb24gdGFuZyAg DQogIA0KKEFuaDogTmd1b2kgZGFuIFAuSGllcCBCaW5oIENoYW5oIHNlIGNvbiBkb2kgbWF0IGNh bmggc29uZyBjaHVuZyB2b2kgdHJpZXUgY3VvbmcgdHJvbmcgdGhvaSBnaWFuIGRhaSAtIEFuaDog RC5ELk1pbmgpDQoNCihUTk8pIFRyb25nIG5odW5nIG5hbSBnYW4gZGF5LCBsaWVuIHRpZXAgbXVj IG51b2MgdHJpZXUgY3VvbmcgdGFpIFRQLkhDTSBvIG11YyBjYW8sIHRpbmggaGluaCBuZ2FwIGx1 dCBuZ2hpZW0gdHJvbmcgeGF5IHJhIG8gbmhpZXUgaG9uLCBsYW0gYW5oIGh1b25nIGxvbiBkZW4g ZG9pIHNvbmcgDQp2YSBzYW4geHVhdCBjdWEgbmd1b2kgZGFuLg0KDQoqIEJhaSAyOiBOZ2hlbyB2 aSBjaG9uZyBuZ2FwDQoqIEJhaSAxOiBOaGEgbmhhIHhheSAiZGUiDQoNCkR1b2kgZGF5IGxhIGJh aSB2aWV0IGN1YSB0aGFjIHNpIExlIFRoaSBYdWFuIExhbiAtIE5ndXllbiBMZSBIYW5oIChEYWkg S2hpIHR1b25nIHRodXkgDQp2YW4ga2h1IHZ1YyBOYW0gQm8pIGx5IGdpYWkgc3UgYmF0IHRodW9u ZyBuaHVuZyBkb3QgbGVuIHh1b25nIGN1YSBjb24gbnVvYyB0YWkgaGFpIG5heS4gDQoNCk11YyBu dW9jIHRydW5nIGJpbmgvbmFtIGRldSB0YW5nIA0KDQpWdW5nIGN1YSBzb25nIE5hbSBCbyB0dSBW dW5nIFRhdSBkZW4gTXVpIENhIE1hdSBjaGl1IGFuaCBodW9uZyBjaGUgZG8gYmFuIG5oYXQgDQp0 cmlldSBraG9uZyBkZXUgY3VhIGJpZW4gRG9uZy4gTW90IG5nYXkgY28gMiBsYW4gdHJpZXUgbGVu IHZhIDIgbGFuIHRyaWV1IHh1b25nLiBUcm9uZyB0b2FuIGtodSB2dWMgdmVuIGJvIGJpZW4gTmFt IEJvLCBtdWMgbnVvYyB0cmlldSBjYW8gbmhhdCBuYW0gdGh1b25nIHh1YXQgaGllbiB2YW8gDQpj YWMgdGhhbmcgMTAsIDExLiBUcm9uZyBjYWMgdGhhbmcgNiB2YSA3LCBtdWMgbnVvYyB0cmlldSB0 aGFwIG5oYXQgbmFtLiANCg0KVHJpZXUgYmllbiBEb25nIGNvbiBjbyBjYWMgeWV1IHRvIHBoaSB0 cmlldSBhbmggaHVvbmcgZGVuIGRhbyBkb25nIG11YyBudW9jIHRhaSB2dW5nIA0KdmVuIGJpZW4g TmFtIEJvLCBiYW8gZ29tIHN1IGRhbmcvcnV0IG11YyBudW9jIGRvIGdpbyBtdWEgdmEgZ2lvIGJh byBnYXkgcmEuIE5odSANCmNodW5nIHRhIGRhIGJpZXQsIG5nb2FpIGNhYyBzb25nIHRyaWV1IHRo aWVuIHZhbiBjYWMgaGllbiB0dW9uZyBraGkgdHVvbmcgdGh1eSB2YW4gDQooS1RUVikga2hhYyBu aHUgYmFvLCBnaW8gbXVhIGN1bmcgY28gYW5oIGh1b25nIHRvaSBzdSBiaWVuIGRvaSBtdWMgbnVv YyBiaWVuLiANCg0KVGh1YyB0ZSBjaHVvaSBzbyBsaWV1IHRydW5nIGJpbmggdHJ1b3QgMTkgbmFt IHRhaSBWdW5nIFRhdSBjbyB4dSB0aGUgdGFuZyBsaWVuIHR1YywgdHJ1bmcgDQpiaW5oIHRydW90 IGNodW9pIHNvIGxpZXUgMTk4MSAtIDIwMDggdGFuZyAzLDYgY20uIFRyYW0gUGh1IEFuIChzb25n IFNhaSBHb24pIGNvIGNodW9pIA0Kc28gbGlldSBtdWMgbnVvYyB0aHVjIGRvIHR1IDE5ODEgLSAy MDA5LCBkYWkgMjkgbmFtLCBtdWMgbnVvYyB0cnVuZyBiaW5oIG5hbSB0YWkgUGh1IA0KQW4gdHVv bmcgdHUgVnVuZyBUYXUgY3VuZyBjbyBzdSB0YW5nIGxlbiBkYW4gdHJvbmcgbmh1bmcgbmFtIGdh biBkYXkuDQogDQooQW5oOiBOZ3VvaSBkYW4gVFAuSENNIGRpZXUgZHVuZyB2aSB0cmlldSBjdW9u ZyBsZW4gY2FvIC0gQW5oOiBELkQuTWluaCkgDQoNClNhdSBuYW0gMjAwNSwgbXVjIG51b2MgdHJ1 bmcgYmluaCB0YWkgUGh1IEFuIGxlbiBuaGFuaCBob24gdGFpIFZ1bmcgVGF1LiBOaHUgdmF5IGxh IA0KbmdvYWkgYW5oIGh1b25nIGN1YSB0cmlldSBiaWVuIERvbmcgY29uIGNvIG5odW5nIG5ndXll biBuaGFuIGtoYWMgbGFtIGNobyBtdWMgbnVvYyANClBodSBBbiB0YW5nIG5oYW5oIHRyb25nIHRo b2kga3kgbmF5Lg0KDQooQW5oOiBCaWV1IGRvIG11YyBudW9jIGNhbyBuaGF0IG5hbSB0cmFtIFBo dSBBbikgDQogDQpEdW9uZyBiaWVuIHRyaW5oIEhtYXggbmFtIChoaW5oIHRyZW4pIGNobyB0aGF5 LCB0dSBuYW0gMTk5OCB0cm8gdmUgdHJ1b2MgbXVjIG51b2MgDQpIbWF4IG5hbSB0YWkgUGh1IEFu IGJpZW4gZG9pIHR1YW4gdHUgdGhlbyBjYWMgY2h1IGt5IGNvIGRvIGRhaSBraG9hbmcgMTkgbmFt IHZhIG11YyANCm51b2MgdHJ1bmcgYmluaCB0cm9uZyB0aG9pIGt5IG5heSAoMTk2MS0xOTk4KSBs YSAxMjYgY20uDQoNCiJSbyByYW5nIG11YyBudW9jIGRpbmggdHJpZXUgbmdheSBjYW5nIGNhbyBo b24sIHZhIGtoaSBwaGFuIHRpY2ggc28gbGlldSBkaW5oIHRyaWV1IGNhIA0KbmFtLCB0aGkga2hv bmcgY2hpIHZhbyBjYWMgdGhhbmcgY2FvIGRpZW0gY3VhIHRyaWV1IGN1b25nIGxhIHRoYW5nIDEw LCAxMSB2YSAxMiwgbWEgY2FjIA0KdGhhbmcga2hhYyBjdW5nIGNvIHh1IGh1b25nIGRhbmcgY2Fv IiAtIExlIFRoaSBYdWFuIExhbiAtIE5ndXllbiBMZSBIYW5oDQoNClR1IG5hbSAxOTk5IGNvIHN1 IGdpYSB0YW5nIGxpZW4gdHVjIG11YyBudW9jIGNhbyBuaGF0IG5hbSB0YWkgUGh1IEFuLCBtdWMg bnVvYyBkaW5oIA0KdHJpZXUgY3VvbmcgbmFtIHNhdSBsdW9uIGNhbyBob24gbmFtIHRydW9jLCBt dWMgbnVvYyB0cnVuZyBiaW5oIHRpbmggY2hvIGNhIGNodW9pIHNvIA0KbGlldSAoMTk2MSAtIDIw MDgpIHRhbmcgbGVuIG11YyAxMzAgY20uDQoNCk5odSB2YXkgbmdvYWkgeWV1IHRvIHRyaWV1IGJp ZW4gRG9uZyBjb24gY28gbmh1bmcgeWV1IHRvIGtoYWMgZG9uZyBnb3AgcGhhbiBxdWFuIA0KdHJv bmcgdHJvbmcgc3UgZ2lhIHRhbmcgbXVjIG51b2MgZGluaCB0cmlldSB2dW5nIGhhIGx1dSBzb25n IFNhaSBHb24gLSBEb25nIE5haS4gDQoNClRyaWV1IGN1b25nIGRvdCBiaWVuIHZhIGtlbyBkYWkg aG9uDQoNCk1vdCB2YW4gZGUga2hpIG5naGllbiBjdXUgdmUgdHJpZXUgY3VvbmcgY2FvIGRvdCBi aWVuIGNobyB0aGF5IHZhbyB0aGFuZyAxMCB2YSAxMSwga2hpIA0KY2FjIGRvdCBraG9uZyBraGkg bGFuaCBiYXQgZGF1IHh1YXQgaGllbiB2b2kgY3VvbmcgZG8gdHUgdHJ1bmcgYmluaCBkZW4gbWFu aCwgZG9uZyB0aG9pIA0KdHJlbiBiaWVuIERvbmcgY28gY2FjIGNvbiBiYW8sIGFwIHRoYXAgbmhp ZXQgZG9pIGhvYWMgYXAgdGhhcCBnYXkgcmEgZ2lvIG1hbmgsIHNvbmcgY2FvIA0Ka2VvIGRhaSAy LTMgbmdheSB0cnVvYyBraGkgY28gdHJpZXUgY3VvbmcsIGRheSBkb24gbnVvYyBiaWVuIHZhbyBj YWMgdnVuZyB2ZW4gYmllbiwgY3VhIA0Kc29uZywgbmVuIGRpbmggdHJpZXUgY3VvbmcgZGFuZyBj YW8gaG9uIHZhIHRob2kgZ2lhbiBjbyB0cmlldSBjdW9uZyBrZW8gZGFpIGhvbi4gDQoNCk5nb2Fp IHJhLCB0cm9uZyBuaHVuZyBuYW0gZ2FuIGRheSwgcGhhbiB0aWNoIHNvIGxpZXUgY2hvIHRoYXkg a2hvYW5nIGdhbiA0MCUgY2FjIGRvdCANCnRyaWV1IGN1b25nIHRydW5nIHZvaSBsdWMgY28geGF5 IHJhIG11YSBsb24gdm9pIGx1b25nIG11YSB0cmVuIGRpYSBiYW4gVFAuSENNIHR1IDMwIG1tIHRy byBsZW4sIGN1IHRoZSBuaHUgdHJvbmcgbmdheSAxMC4xMC4yMDEwIGNvIG11YSB0dSA3MC0xNTAg bW0gKGRpbmggdHJpZXUgMSw0OW0pLCANCm5nYXkgNi4xMSBsdW9uZyBtdWEgZG8gZHVvYyB0YWkg US4xIGxhOiA3MiBtbSwgVGh1IER1YyA5MiBtbSwgTmhhIEJlIDI5IG1tLCBRLjI6IDQ0IG1tLg0K IA0KKEFuaDogR2l1YSBkbyB0aGkgaGllbiBkYWkgbmh1IFRQLkhDTSwgbmd1b2kgZGFuIHZhbiBw aGFpIGNob25nIGNob2kgdm9pICJnaWFjIiBudW9jIGNvIHRlbiB0cmlldSBjdW9uZyAtIEFuaDog RC5ELk1pbmgpDQoNClBoYW4gdGljaCBkb3QgdHJpZXUgY3VvbmcgY2FvIGJhdCB0aHVvbmcgdmEg a2VvIGRhaSBuaGlldSBuZ2F5IG5oYXQgdHUgdHJ1b2MgZGVuIG5heSANCih0dSAyOS4xMCBkZW4g Ny4xMS4yMDEwLCBsZSByYSBsdWMgbmF5IG51b2MgdHJpZXUgdGhhcCksIGNodW5nIHRvaSBuaGFu IHRoYXkgY28gDQp0YWMgZG9uZyBkYW5nIGtlIHR1IG5odW5nIGRvdCBraG9uZyBraGkgbGFuaC4g DQoNCkJhbiBkbyBtYXQgZGF0IGx1YyAxMyBnaW8gbmdheSAyNS4xMC4yMDEwOiBLaG9uZyBraGkg bGFuaCByYXQgbWFuaCwgcGhpYSBuYW0gbGEgdHJ1YyANCnJhbmggaG9hdCBkb25nIG1hbmggdm9p IGNhYyBuaGlldSBkb25nIGdheSBtdWEsIGdyYWllbnQgYXAgZGF5IHNpdCBsYW0gY2hvIGdpbyBt dWEgDQpkb25nIGJhYyBtYW5oIGxlbiwgZGluaCB0cmlldSBuZ2F5IDI1LjEwLjIwMTAgbGEgMSw1 Nm0sIGNhbyBtb3QgY2FjaCBiYXQgdGh1b25nIChoaW5oIA0KYmVuIGR1b2kpLg0KIA0KKEFuaDog QmlldSBkbyBEaW5oIHRyaWV1IGxvbiBuaGFuIHRhaSB0cmFtIFBodSBBbiBzb25nIHNhaSBHb24g dHUgMjAwMCBkZW4gMjAxMCkNCg0KRHUgYmFvIGRpbmggdHJpZXUgbW9pIA0KDQpEaWVuIGJpZW4g dHJpZXUgYmllbiBEb25nIHZhIG11YyBudW9jIGhhIGx1dSBzb25nIFNhaSBHb24gLSBEb25nIE5h aSBuYW0gMjAxMDogVGhlbyANCnh1IHRoZSBuaHVuZyBuYW0gZ2FuIGRheSBtdWMgbnVvYyBkaW5o IHRyaWV1IHRyb25nIGtodSB2dWMgdGllcCB0dWMgZ2lhIHRhbmcsIHRyb25nIGNhYyANCnRoYW5n IDEsIDIgdmEgMyBtdWMgbnVvYyBkaW5oIHRyaWV1IHRhaSBQaHUgQW4gZGEgdnVvdCBtdWMgYmFv IGRvbmcgKEJEKSBJSSwgaGFpIGRpbmggDQp0cmlldSBjdW9uZyB0cm9uZyB0aGFuZyAxMCBkZXUg bGVuIG11YyB4YXAgeGkgQkQgSUlJICgxLDUwbSApIHZhIGRpbmggdHJpZXUgY3VvbmcgZGF1IA0K dGhhbmcgMTEgZHUgYmFvIHNlIGxhIDEsNThtOyB2dW90IG11YyBCRCBJSUkgdmEgdnVvdCBtdWMg Y2FvIG5oYXQgbGljaCBzdSAodGhhbmcgDQoxMS4yMDA5KS4NCg0KVGhlbyBuaGFuIGRpbmggZGFp IGhhbiB0aGkgdHJpZXUgY3VvbmcgYmllbiBEb25nIHRyb25nIHRoYW5nIDEyIG5hbSBuYXkgc2Ug bGVuIG11YyBjYW8gDQpuaGF0IG5hbSwgY2FvIGhvbiB0cmlldSB0aGFuZyAxMS4gDQoNCk5odSB2 YXkgbXVjIG51b2MgdGFpIGhhIGx1dSBzb25nIFNhaSBHb24gLSBEb25nIE5haSBjbyBuaGlldSBr aGEgbmFuZyBsZW4gY2FvIHZhIG5ldSANCnZhbyB0aG9pIGt5IHRyaWV1IGN1b25nIHRoYW5nIDEy IG1hIGdpbyBtdWEgZG9uZyBiYWMgdHJlbiBiaWVuIERvbmcgaG9hdCBkb25nIG1hbmggDQp0aGkg bXVjIG51b2MgdHJvbmcgaGUgdGhvbmcgc29uZyB2YSBrZW5oIHJhY2ggdGFpIFRQLkhDTSBjb24g bGVuIGNhbyBob24gdmEga2VvIGRhaSANCnRyb25nIG5oaWV1IG5nYXkgaG9uIG51YS4NCg0KU2F1 IG5ndXllbiBuaGFuIGtoaWVuIFRQLkhDTSBuZ2FwIGx1dA0KDQoxLiBUUCBuYW0gbyBraHUgdnVj IGNoaXUgYW5oIGh1b25nIGN1YSB0aHV5IHRyaWV1LiBUcnVvYyBkYXkgdGFpIGRpYSBiYW4gbmF5 IGNvIG5odW5nIA0KY2hvIGRvIGNhbyBjaGkgYmFuZyB2b2kgbXVjIG51b2MgZGluaCB0cmlldS4g U2F1IG5oaWV1IG5hbSBkYXkgbWFuaCBwaGF0IHRyaWVuIGRvIHRoaSwgDQpUUCBkYSBuYXkgc2lu aCBtb3Qga2hvaSBsdW9uZyBiZSB0b25nIGtob25nIGxvIGRhdCB0cmVuIG5lbiBkYXQgeWV1ICh0 cnUgbW90IHZhaSBub2kgbyANClEuMSwgUS45LCBIb2MgTW9uLCBHbyBWYXAgaGllbiBjb24gZ2l1 IGR1b2MgZGlhIGhpbmggY2FvIGhvbikgY29uZyB2b2kgdG9jIGRvIGtoYWkgDQp0aGFjIG51b2Mg bmdhbSBxdWEgbXVjLCBuaGF0IGxhIHR1IHBoaWEgbmd1b2kgZGFuIGRlIHBodWMgdnUgY2hvIHNp bmggaG9hdCBoYW5nIG5nYXkgDQpkYSBraGllbiBtdWMgbnVvYyBuZ2FtIGN1YSBUUCBiaSB0dXQg ZGFuZyBrZS4gSGF1IHF1YSBsYSBuaGlldSBraHUgdnVjIHRydW9jIGRheSBjaHVuZyANCjUgbmFt IGtob25nIGhlIGJpIG5nYXAgdGhpIG5heSBsYWkgdGhhbmggc29uZyB0cm9uZyBtb2kgZG90IHRy aWV1IGN1b25nIGhheSBtdWEgDQpsb24uIE1hdCBraGFjLCBuaHVuZyBuYW0gZ2FuIGRheSBkaW5o IHRyaWV1IG5nYXkgY2FuZyBkYW5nIGNhby4gDQoNCjIuIE5nYXAgbHV0IGdpYSB0YW5nIHRhaSBU UC5IQ00gY29uIGRvIHRhYyBkb25nIGN1YSBudW9jIGJpZW4gZGFuZyBjYW8gdmEgbHUgcGhhdCBz aW5oIA0KdHUgaGEgbHV1IGN1YSBjYWMgc29uZyBTYWkgR29uLCBEb25nIE5haSBiYXQga2Ugdmll YyBtb3Qgc28gaG8gbmh1IERhdSBUaWVuZywgVHJpIEFuLCANClRoYWMgTW8gY28geGEgbHUgaGF5 IGtob25nLiANCg0KMy4gVmFpIG5hbSB0cm8gbGFpIGRheSBsdW9uZyBtdWEgZG8gZHVvYyB0YWkg VFAuSENNIGNhbmcgbmdheSBjYW5nIGxvbi4gDQoNCjQuIEhpZW4gdmFvIHRob2kgZGllbSBjdW9p IG11YSBtdWEgbmVuIGNhYyB2dW5nIHRydW5nLCBobyBjbyBraGEgbmFuZyB0aWNoIHRydSBudW9j IA0KdHJlbiBkaWEgYmFuIFRQIGN1bmcgZGEgZGF5LCBtYXQgZGF0IGRhIGR1IGRvIGFtLCBuZW4g a2hhIG5hbmcgdGhvYXQgbnVvYyByYXQgY2hhbSB2YSANCml0LiBDaGluaCB2aSB2YXksIG11YSBk aWVuIHJhIGR1bmcgbHVjIHRyaWV1IGN1b25nIGxvbiBkYSBraGllbiBuaGlldSBraHUgdnVjIHRh aSBUUCBjaGltIHRyb25nIGJpZW4gbnVvYy4gDQoNCjUuIEhlIHRob25nIGNvIHNvIGhhIHRhbmcs IGRhYyBiaWV0IGxhIGhlIHRob25nIGNhcCB0aG9hdCBudW9jIGN1YSBUUCBkYSBsYWMgaGF1IHNv IHZvaSANCnRvYyBkbyBwaGF0IHRyaWVuIG1hbmggbWUgY3VhIG1vdCBkbyB0aGkgbG9uIG5oYXQg bnVvYyBuaHUgVFAuSENNLiANCg0KNi4gTmd1eWVuIG5oYW4gY3VvaSBjdW5nIG5odW5nIHJhdCBx dWFuIHRyb25nLCBsYSBuaGlldSBuZ3VvaSBkYW4gdGhpZXUgeSB0aHVjIHRyb25nIA0KdmllYyBn aXUgZ2luIG1vaSB0cnVvbmcsIG5odSB4YSByYWMgYnVhIGJhaSwgeGF5IGR1bmcgbGFuIGNoaWVt IGxhbSBiaXQgY29uZywga2VuaCByYWNoLi4uIC0gT25nIE5ndXllbiBOZ29jIEFuaCAocXV5ZW4g VmllbiB0cnVvbmcgVmllbiBRdXkgaG9hY2ggVGh1eSBsb2kgbWllbiBOYW0pIExlIFRoaSBYdWFu IExhbiAtIE5ndXllbiBMZSBIYW5oIChEYWkgS2hpIHR1b25nIHRodXkgdmFuIGtodSB2dWMgTmFt IEJvKQ0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDYvMjAx MDExMTEwMDM4NTkuYXNweCBOaG9tIFBWIENULVhIICAxMS8xMS8yMDEwIDA6MzggDQoNClNhaSBH b24gbXVhIGx1ICAtICBCaSBoYWkgdnVuZyByb24gbHUgIA0KICANCihBbmg6IENhdSBiZSBuYXkg ZGFuZyB0YXQgbnVvYyByYSBraG9pIG5oYSB0YWkgaGVtIDMwOEEvMjggZHVvbmcgRGllbiBCaWVu IFBodSwgDQpQLjIyLCBRLkJpbmggVGhhbmgsIFRQLkhDTSAtIEFuaDogQmFjaCBEdW9uZykgDQoN Ck5vaSB0b2kgbHUgbHV0LCBuZ3VvaSB0YSBoYXkgbmdoaSBkZW4gbWllbiBUcnVuZywgbWllbiBU YXkgTmFtIEJvOyBpdCBhaSBoaW5oIGR1bmcgcmEgDQpyYW5nIGx1IFNhaSBHb24gY3VuZyAiZHUg ZGFuIiBraG9uZyBrZW0uIA0KDQpUcm9uZyBuaHVuZyBuZ2F5IG11YSB0byBjb25nIHZvaSB0cmll dSBjdW9uZyBsaWNoIHN1LCBQViBUaGFuaCBOaWVuIGRhIGN1bmcgc29uZyB2YSANCnRoYXUgaGll dSBwaGFuIG5hbyBub2kga2hvbiBraG8gY3VhIG5ndW9pIGRhbiBTYWkgR29uLiBPIG5odW5nIGto dSB2dWMgbmh1IFEuQmluaCANClRoYW5oLCBUaHUgRHVjLCBRLjYsIFEuNywgUS44Li4uLCBudW9j IHRyZW4gdHJvaSBkbyB4dW9uZywgZHVvaSBzb25nIGRhbmcgbGVuIGtob25nIGNoaSANCmdheSBu Z2FwIGR1b25nLCBtYSBjb24gdGFuIGNvbmcgbmhhIGRhbiwga2hpZW4gbmd1b2kgZGFuIHRodW9u ZyB4dXllbiBwaGFpIHNvbmcgDQpjaHVuZyB2b2kgbHUuIA0KDQoiR2lhaSBjdXUiIGRhbSB0YW5n IA0KDQpLaG9hbmcgMTcgZ2lvIDMwIGNodSBuaGF0IDcuMTEsIG11YSBsaWVuIHR1YyB0cnV0IHh1 b25nLCBudW9jIGxhcCBsbyBtaWVuZyBjb25nLCByb2kgY2hpIA0KdmFpIHBodXQgc2F1LCB0cmFu IHJhIG5oaWV1IGNvbiBoZW0gdHJlbiBkdW9uZyBQaGFtIFRoZSBIaWVuIChRLjgpLiBNb2kgbmd1 b2kgdHJvbmcgDQpnaWEgZGluaCBhbmggTmd1eWVuIFF1b2MgVHJ1bmcgKDI3MzcvNCBkdW9uZyBQ aGFtIFRoZSBIaWVuLCBQLjcsIFEuOCkgZGFuZyBsbyBsYW5nIA0Kdmkgc28gbnVvYyBkYW5nIGNh byBhbmggaHVvbmcgZGVuIGRhbSB0YW5nIHRyb25nIGdpYSBkaW5oLiAiTm9pIGJ1b24gbmd1b2kg dGhhbiBtYXQgDQpjaHVhIGR1dCwgY2EgZ2lhIGRpbmggZGV1IGxvIGxhbmcgYm9pIG5nYXAgbnVv YyBzZSBraGllbiBiYW4gYmUsIG5ndW9pIHRoYW4ga2hvIGRlbiBjaGlhIA0KYnVvbiB2b2kgZ2lh IGRpbmgiLCBhbmggSHVuZyBib2MgYmFjaC4gTm9pIGxvIGN1YSBhbmggSHVuZyB2YSBuZ3VvaSB0 aGFuIGRhIHRybyB0aGFuaCBzdSB0aGF0Lg0KIA0KIChBbmg6IE5nYXAgbnVvYyBkbyB0cmlldSBj dW9uZyBkdW9uZz9YbyBWaWV0IE5naGUgVGluaCwgUS5CaW5oP1RoYW5oIC0gQW5oOiANCkJhY2gg RHVvbmcNCg0KRGUgdmFvIGR1b2MgZGFtIHRhbmcgbmhhIGFuaCBUcnVuZywgY2h1bmcgdG9pIHBo YWkgY2hheSBxdWEgbW90IGRvYW4gImNhdSBjYW4iIGNhbyANCmdhbiBjYSBtZXQgdnVhIGR1b2Mg bmd1b2kgZGFuIGdvcCB0aWVuIHhheSBkdW5nLCBuaGFtIG5nYW4gbnVvYyB0dSBuZ29haSBkdW9u ZyB0cmFuIA0KdmFvIGhlbS4gVGhlIG5odW5nLCAiY2F1IGNhbiIgY2hpIHRhYyBkdW5nIHBoYW4g bmFvLCBudW9jIGJhdCBkYXUgbGFwIHhhcCBiYW5oIHhlIGtoaSANCmNodW5nIHRvaSBkZW4gbm9p LiBNb3QgbWF1IG51b2MgZGVuIHNpIHZvaSBtdWkgaG9pIHRob2kgeGFtIGNoaWVtIGJhdSBraG9u ZyBraGkgdSB1YXQgDQpjdWEgZGFtIHRhbmcuIFRpZXAgY2h1bmcgdG9pLCBhbmggVHJ1bmcgY2hv IGJpZXQgaG9tIHRydW9jLCBuaGlldSBuZ3VvaSBkZW4gdmllbmcgZGFtIA0KdGFuZyB0aGF5IG51 b2MgbmdhcCBsdXQgY29uIGhlbSwgbmdhbiBuZ2FtIGxhYyBkYXUuIEhhaSBiZW4ga2UgZHVuZyB0 cm9uZywgbmd1b2kgZHVuZyANCm5nb2FpLCBiaWVuIG51b2MgbmdhbiBjYW4sIGNoaSBiaWV0IHZh eSB0YXkgdmEgbm9pIGNodXllbiBxdWEgZGllbiB0aG9haS4gIk51b2MgbmdhcCANCmNhbywgeGUg bWF5IGtob25nIGNoYXkgZHVvYyB2YSBuaGlldSBuZ3VvaSBtYW5nIGdpYXksIGJvIHRheSBkdW5n IG5nb2FpIGR1b25nIGNoaXUgDQp0cmFuIiwgYW5oIFRydW5nIHRoYW4uIEFuaCBub2kgdGllcDog Ik5oYSB0dWkgbmFuZyBsZW4gZ2FuIDFtIG1hIGhvbSBxdWEgbnVvYyBtdW9uIA0KdHJhbiB2YW8s IGJ1YSBuYXkgY2h1YSBiaWV0IHNhbyBkYXkuIEhvbSBxdWEsIG11YSBjb25nIHZvaSB0cmlldSBj dW9uZyBsYW0gbnVvYyBkYW5nIA0KbmhhbmgsIHNvIHF1YSwgaG9hIHF1YSwgZG8gZGFjIGN1bmcg cGhhaSBidW5nIGNoYXkgdHJhbmggbnVvYywga2UgY2EgcXVhbiB0YWkgY3VuZyBwaGFpIA0Ka2Ug bGVuIGNhby4uLiIuDQoNCkRlICJnaWFpIGN1dSIgZGFtIHRhbmcsIG9uZyBQaGFuIFR1YyAoYmFv IHZlIHRvIGRhbiBwaG8gUC43LCBRLjgpLCBjaG8gYmlldCBuZ3VvaSBkYW4gDQp0cm9uZyB4b20g ZGEgZ29wIHRpZW4gbXVhIG1heSBib20gImhvYSB0aWVuIiB2YSBvbmcgbnVvYyBkZSBib20gcmEg bmdvYWkgbW9pIGtoaSANCm51b2MgbGVuIGNhby4gIktodSB2dWMgbmF5IG5hbSB0cm9uZyBiYW4g ZGFvIEJpbmggQW4sIG5odW5nIG1heSBuYW0gbmF5IGtob25nIGNvbiANCmJpbmggYW4gbnVhLCB2 aSBudW9jIGhvYW5oIGhhbmgsIHRhbiBwaGEgY2EgZHVvbmcgdmEgbmhhIHJvaSIsIG9uZyBUdWMg Y2h1YSBjaGF0IG5vaS4gDQoNCiJLaG9jIiB0cm9uZyBuZ2F5IGN1b2kNCg0KU2F1IGhhaSBuZ2F5 IGRhbSBjdW9pLCBhbmggTmd1eWVuIE1pbmggTmh1dCwgbmd1IG8gUS4xMCBrZSBjaG8gY2h1bmcg dG9pIG5naGUgY2F1IA0KY2h1eWVuIGN1b2kuLi4gcmEgbnVvYyBtYXQgdHJvbmcgbmdheSB2dWkg bmhhdCBkb2kgbWluaC4gU28gbGEgYm8gbWUgYW5oIHR1IEtpZW4gR2lhbmcgDQp0YXQgdGEgbGVu IFNhaSBHb24gc29tIGRlIGtpcCBkdSBsZSBjdW9pIGN1YSBjb24gdHJhaSB2YW8gY2hpZXUgY2h1 IG5oYXQuIFZheSBtYSBzYXAgdG9pIA0KZ2lvIHZhbyBsZSBjaGluaCwga2hhY2gga2h1YSB2YW4g Y29uIGxvZSBob2UsIHRoYW4gcGh1IHRoaSBjaHVhIGNvIG1hdCBuaHUgZGEgaGVuLiBEaWVuIA0K dGhvYWkgY2hvIGhhaSB0aGFuZyBiYW4gcmEgYmVuIHhlIGRvbiBjaGEgbWUsIGFuaCBOaHV0IGNh bmcgaG9hbmcga2hpIG5naGUgZ2lvbmcgaG90IA0KaGFpIGN1YSBuZ3VvaSBiYW46ICJOdW9jIG5n YXAgbWVuaCBtb25nIG1heSBvaSwgeGUgY2hldCBtYXkga2hvbmcgZGkgZHVvYyEiLiBDaHVhIA0K aGV0LCBjbyBkYXUgY2h1IHJlIGNvbiBsaWVuIHR1YyBuaGFuIGR1b2MgbmhpZXUgY3UgZGllbiB0 aG9haSBjdWEgbmd1b2kgdGhhbiwgYmFuIGJlIGdvaSB4aW4gdG9pIHRyZSBob2FjIGtpZXUga2hv bmcgdGhlIHRvaSBkdW9jLCBkYW5oIGhlbiBndWkgcXVhIHNhdSwgInZpIG51b2MgbyBoZW0gdHVp IG5nYXAgDQpjYW8gcXVhLCBraG9uZyBkYW4geGUgcmEgZHVvYywgdmEgbGFpIHBoYWkgbyBuaGEg Y2hvbmcgbHUhIi4gDQoNCiJEYW4gbyBkYXkgZGEga2V1IGN1dSB0dSBuaGlldSBuYW0gbmF5IG1h IGNoYW5nIHRoYXkgYWkgbmdvIG5nYW5nIGdpIHRvaSIgLUJhIFRyYW4gVGhpIEhhaSAtIG5ndSBQ LjE2LCBRLjgsIFRQLkhDTSANCg0KRG9pIG1haSBkZW4gZ2FuIDIwIGdpbywga2hhY2ggY28gbWF0 IGRvaSBsYSwgdm8gY2hvbmcgYW5oIHF1eWV0IGRpbmggdmFvIGxlLCBkdSBjaGkgY28gDQptYXQg dGhhbiBwaHUgY28gZGF1LCBjb24gdGhhbiBwaHUgY2h1IHJlICJ4aW4gcGhlcCBkZW4gdHJlIHZp IG51b2MgbmdhcCEiLiBEZW4gZ2FuIDIxIA0KZ2lvLCBjYSB0aWVjIGN1b2kgbGFpIG5ob24gbmhh byB2aSBzdSB4dWF0IGhpZW4gY3VhIHRoYW4gcGh1IHZhIDIgbmd1b2kgYmFuIGN1YSBhbmggTmh1 dCwgDQp0cm9uZyB0aW5oIHRyYW5nIHVvdCBzdW5nLCBob2kgaGFtLCB2dWEgZG9pLCB2dWEgbGFu aCBydW4sIHNhdSBraGkgdGhvYXQgcmEga2hvaSB2dW5nICJyb24gDQpsdSIgdHJlbiBkdW9uZyBL aW5oIER1b25nIFZ1b25nIChkb2FuIGdhbiBCZW4geGUgbWllbiBUYXkpLiANCg0KTmhvIGxhaSBj YW5oICJjaHVwIGVjaCIgdmEgbG9pIG51b2MgZGVuIGdhbiB0aGF0IGx1bmcsIG9uZyBUcnVvbmcg TWluaCBHaWFuZyAoY2hhIGFuaCANCk5odXQpIHZhbiBjaHVhIGhldCBiYW5nIGhvYW5nOiAiVHJ1 b2MgZ2lvIHR1aSBjbyBuZ2hlIFNhaSBHb24gbmdhcCBudW9jLCBuaHVuZyBuZ2hpIA0KY3VuZyBr aG9uZyBkZW4gbm9pIG5hby4gTmF5IG5oaW4gdGhheSBjYW5oIHR1b25nIG5nYXAgbyB0aGFuaCBw aG8gbW9pIGJpZXQgY28ga2hhYyBnaSANCmx1IG8gbWllbiBUYXkgdHVpIHR1aSBkYXUhIi4gDQoN ClZhbyB0aHVuZyBsdW5nIG5nYXANCg0KS2hvYW5nIDE3IGdpbyAzMCBuZ2F5IDguMTEsIGNodW5n IHRvaSB2YW8gYmVuIFBodSBEaW5oIChRLjgpIC0gbm9pIGR1b2MgbmhpZXUgbmd1b2kgDQpnb2kg dnVpIGxhICJ0aHVuZyBsdW5nIiBuZ2FwIGN1YSBTYWkgR29uLiBWdWEgcXVhIGNhdSBOaGkgVGhp ZW4gRHVvbmcgcmUgdmFvIGR1b25nIA0KUGhhbSBUaGUgSGllbiAoUC43LCBRLjgpIGNoYXkgbW90 IGRvYW4sIGNodW5nIHRvaSB0aGF5IG51b2MgYmF0IGRhdSB0cmFuIGxlbiBkdW9uZy4gDQpOdW9j IGxlbiBuaGFuaCBob24gY2h1bmcgdG9pIHR1b25nLiBNb3QgdmFpIGhvIGJhdCBkYXUgdHVjIHRy dWMgYmVuIGNhbmggY2hpZWMgbWF5IA0KYm9tIGRlIGJvbSBudW9jIHJhIGtob2kgbmhhLiBOaHVu ZyBuaGEgY2FvIGhvbiBtb3QgY2h1dCBjdW5nIGN1IG5ndW9pIHJhIGR1bmcgDQoiY2FuaCIgY29u IG51b2MuIA0KIA0KKEFuaDogTWUgY29uIGNoaSBMYW0gVGhpIE5nb2MgUGh1b25nLCBRLkJpbmgg VGhhbmgsIG5nb2kgY2hvIG51b2MgcnV0IC0gQW5oOiBCYW8gVGhpZW4pDQoNClRoYXkgY2h1bmcg dG9pIHZ1YSBkaSBjaGFtIHJhaSB2dWEgY2h1cCBhbmgsIG1vdCB2YWkgbmd1b2kgZGFuIG5oYWMg bmhvOiAiUXVheSB4ZSBsYWkgDQpkaSwgdm8gbGEga2hvbmcgY28gZHVvbmcgdmUgZG8hIi4gTG9p IGNhbmggYmFvIGN1YSBuaHVuZyBuZ3VvaSBkYW4gbmdheSBjYW5nIHRhbmcga2hpIA0KdGhheSBj aHVuZyB0b2kgaG9pIHRoYW0gZHVvbmcgZGkgdGllcC4gUmUgdmFvIGR1b25nIEJhIFRvLCBsZW8g bGVuIGNoaWVjIHBoYSBjdSBreSBvIA0KQmVuIERhIHNhbmcgYmVuIFBodSBEaW5oIChQLjE2LCBR LjgpLCBjaHVuZyB0b2kgdGhheSB0b2FuIG51b2MsIHJhYywgdm8gZHVhLi4uIHRyb2kgbGVuaCAN CmJlbmguIENvbiBkdW9uZyBCZW4gUGh1IERpbmggYmllbiBtYXQgbWEgdGhheSB2YW8gZG8gbGEg Y29uIHNvbmcgS2VuaCBEb2kgLSBLZW5oIA0KVGUgYmFuaCB0cnVvbmcgbW8gcm9uZy4gVHJvaSBz YXAgdG9pLCBkdW9uZyBraG9uZyBkZW4sIG5ldSBraG9uZyBjbyBoYW5nIGR1YSBkb2MgdGhlbyAN CmJvIHNvbmcgdGhpIGNodW5nIHRvaSBraG9uZyB0aGUgcGhhbiBiaWV0IGR1b2MgZGF1IGxhIHJh bmggZ2lvaSBnaXVhIHNvbmcgdmEgZHVvbmcuDQoNClRpZXAgdHVjIGRpIHNhdSB2YW8gdHJvbmcs IGNodW5nIHRvaSBiYXQgZ2FwIGNhIG1vdCB2dW5nIHRyYW5nIHhvYSB0b2FuIG51b2MsIGNvIGxh cCANCm5odW5nIG5ndW9pIGRhbiBub2kgZGF5IHZvaSB0aGUgZ2lvaSBiZW4gbmdvYWkuIE5odW5n IGN1IGRpZW4gdGhvYWkgZ29pIG5oYWMgbmhhdSBpIG9pOiANCiJ2ZSBjaHVhPyIsICJ0b2kgZGF1 IHJvaT8iLCAibnVvYyBkYW5nIGxlbiIuLi4gTW9pIHF1YW4gdGFtIGN1YSBuZ3VvaSBkYW4gbyBk YXkgbGEgbnVvYyANCnNlIGxlbiBkZW4gZGF1IHZhIGJhbyBnaW8gcnV0IGNodSBraG9uZyBoZSBu Z2hlIGhvIG5oYWMgZGVuIGdpYSBoYW5nIGhvYSwgZ2lhIHZhbmcsIGdpYSANCmRvIGJ1YSBuYXkg bGVvIGRlbiBkYXUuDQoNCk5nb2kgYm8gdGF5IG5oaW4gY29uIG51b2MgZGFuZyB0cmFuIHZhbyBu aGEgbmh1IHRoYWMsIGJhIFRyYW4gVGhpIEhhaSB0aG8gZGFpOiAiRGFuIG8gDQpkYXkgZGEga2V1 IGN1dSB0dSBuaGlldSBuYW0gbmF5IG1hIGNoYW5nIHRoYXkgYWkgbmdvIG5nYW5nIGdpIHRvaSIu DQoNCk1haSBsbyBob2kgdGhhbSB2YSBjaHVwIGFuaCwgY2h1bmcgdG9pIGRhIHF1ZW4gbG9pIGNh biBkYW4gY3VhIG5ndW9pIGRhbiAicGhhaSByYSBraG9pIA0Ka2h1IHZ1YyBuYXkgdHJ1b2MgMTgg Z2lvIiwgbmVuIGRhIHBoYWkgdHJhIGdpYS4gRGVuIGdhbiAyMCBnaW8sIG51b2MgZGEgbmdhcCBz YXUgbHV0IG1hdCANCnllbiBjaGllYyB4ZSBnYW4gbWF5LCBraGllbiBjaHVuZyB0b2kgcGhhaSBk YW4gYm8gZ2FuIGNheSBzbyBkZSB0cm8gbGFpIGJlbiBwaGEuIER1bmcgDQp0cmVuIGJlbiBwaGEg dHJvbmcgdHJhbmcgdGhhaSB2dWEgZG9pLCB2dWEgbGFuaCBydW4sIGNodW5nIHRvaSBjbyBjYW0g Z2lhYyBuaHUgdnVhIHRob2F0IA0Ka2hvaSB2dW5nIGx1IGR1IHZhIGF1IGxvIGNobyBzbyBwaGFu IGN1YSBuZ3VvaSBkYW4gbyByb24gbHUgYmVuIFBodSBEaW5oLiANCg0KRHVvbmcgYmllbiB0aGFu aCBzb25nIA0KDQpDdW5nIHZhbyB0aG9pIGRpZW0gY2hpZXUgdG9pIDguMTEsIGR1b25nIFhvIFZp ZXQgTmdoZSBUaW5oIChRLkJpbmggVGhhbmgpIHRybyBuZW4gDQpuYW8gbG9hbi4gTXVhLCB0cmll dSBjdW9uZyBkYW5nIGNhbyBsYW0gY2hvIHR1eWVuIGR1b25nIG5heSBiaWVuIHRoYW5oIHNvbmcu IFhlIG1heSwgDQpuZ3VvaSBkaSBibywgdGhhbSBjaGkgY28gY2EgbW90IHNvIHhlIG8gdG8gY2hl biBsYW4gbGVuIHZpYSBoZSBob25nIHRyYW5oIGJpICJ0aHV5IGtpY2giLCANCmtoaWVuIGNhIGto dSB2dWMgbmhvbiBuaGFvLCBjaGVuIGNodWMgbmh1IG1vdCBjdW9jIGNoYXkgbG9hbi4gRHVvaSBs b25nIGR1b25nLCBudW9jIA0KbmdhcCBoZXQgYmFuaCB4ZSBtYXkuIERvYW4gbmd1b2kgaGkgaHVj IGRheSB4ZS4gTW90IHNvIHhlIG1heSAibmdvbiIgdGhpIGdhbSBydSwga2V1IA0KbGVuIHVuZyB1 Yy4gVGllbmcgdHJlIGNvbiBzbyBoYWkga2hvYyB0aGV0LCB0aWVuZyBuaHVuZyBiYSBjaHUgcXVh biBoZXQgbGVuIHZpIGJpIG5ndW9pIGRpIA0KYm8geGFtIGNoaWVtICJkaWEgYmFuIiwgdGllbmcg cXVhdCBuYXQgbmhhdSBsYW0gY2hvIG5odW5nIGNvbiBuZ3VvaSBxdWFuIHRyb25nIGx1IA0KY2Fu ZyB0cm8gbmVuIGNhdSBiYW4uIA0KDQoxOCBnaW8gbmdheSA4LjExLCBjYSBraHUgdnVjIEJpbmgg UXVvaSAtIFRoYW5oIERhIChRLkJpbmggVGhhbmgpIGRhIG5nYXAgc2F1IHRyb25nIA0KbnVvYy4g Q29uIGx1IHRyYW4gdmFvIG5oYSBxdWEgbmhhbmgsIG5oaWV1IGdpYSBkaW5oIGRhIGtob25nIGNo dWFuIGJpIGtpcC4gVGFpIG5oYSBjaGkgDQpMYW0gVGhpIE5nb2MgUGh1b25nLCBiZXAsIG5oYSB2 ZSBzaW5oIGRhIGJpIG5nYXAgc2F1IG5lbiBjaGkga2hvbmcgdGhlIG5hbyBuYXUgYW4uIA0KQ2hp ZWMgZ2l1b25nIG5ndSBkdXkgbmhhdCBjdWEgdm8gY2hvbmcgdmEgMSBkdWEgY29uIGN1bmcgYmkg bmdhcCBudW9jLCBjaGFuIGdvaSwgDQptdW5nIG1lbiB1b3Qgc3VuZy4gSGFpIG1lIGNvbiBjaGkg bmdvaSB0cmVuIGNhaSBiYW4gbmhvIGNobyBjaG9uZyAibG9pIG51b2MiIGRpIG11YSANCnRodWMg YW4uIA0KDQpMbyBzbyBkaWVuIGdpYXQsIGNoZXQgZHVvaSANCg0KS2hvbmcgY2hpIGNoaXUgY2Fu aCBudW9jIHRhbiBjb25nIHZhbyBuaGEgbGFtIGh1IGhhbyB0YWkgc2FuLCB4ZSBjbyB0YXQgbWF5 IGhhbmcgbG9hdCwgDQpxdWFuIGFvIHVvdCBzdW5nIGhvaSBoYW0ga2hpIGRlbiBzbyBsYW0sIGto b25nIGl0IG5ndW9pLCBuaHUgYmEgTmd1eWVuIFRoaSBEaWVwLCBvIA0KYmVuIFBodSBEaW5oIChR LjgpIHRob2F0IGNoZXQgdHJvbmcgZ2FuZyB0YWMga2hpIGJpIGRpZW4gZ2lhdC4uLiBkbyBkbyBk aWVuIHRyb25nIG5oYSBiaSBuZ2FwIG51b2MuIA0KDQpDaGkgTmd1eWVuIFRoaSBEdW5nLCBuZ3Ug UC4xNiwgUS44LCB2dWEgYmUgY29uIGxvaSBudW9jIGJpIGJvbSB2dWEgaHVvbmcgZGFuIGNodW5n IA0KdG9pIHhlbSBjYW5oICJ0dSBnaWEiIGN1YSBtaW5oIG5heSBkYSBiaWVuIHRoYW5oIGFvISBT YW5nIHNvbSwgdHUgZ2l1b25nIG5ndSBidW9jIA0KeHVvbmcsIGNoYW4gZGEgZHVuZyBudW9jLiBD aGkgRHVuZyBjaG8gYmlldCwgbWF5IG5nYXkgbmF5LCBjYW5oIHNpbmggaG9hdCB0cm9uZyB4b20g DQp0cm8gbmVuIHJhdCBraG8ga2hhbiwga2hvbmcga2hhYyBnaSAibXVhIG51b2Mgbm9pIiBvIG1p ZW4gVGF5LiBDaGkgbG8gbGFuZyBuaGF0IGxhIGR1YSANCmNvbiBuaG8gNyB0aGFuZyB0dW9pLCAi Y2hpIHNvIG5vIHNvIHNheSBsb3QgeHVvbmcgbnVvYyB0aGkgdHVpIGNoZXQgbWF0ISIuIA0KDQpo dHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDA1L1RQSENNLUNodWMtY2hvLWNhdC1k aWVuLWx1YW4tcGhpZW4tOTA5OTYxLyBUaGFpIFBodW9uZyAxNzo1OCwgMTQvMDUvMjAxMCAoR01U KzcpDQoNClRQLkhDTTogQ2h1YyBjaG8uLi4gY2F0IGRpZW4gbHVhbiBwaGllbiAtIHZhbiBsYW5n IHBoaSBkaWVuDQosDQotIFRpbmggaGluaCBjdXAgZGllbiBsaWVuIHR1YyB0cmVuIGRpZW4gcm9u ZyB0aG9pIGdpYW4gcXVhLCBsYW5oIGRhbyBEaWVuIGx1YyBUUC5IQ00gDQpraGFuZyBkaW5oIGNo dWEgY3VwIGRpZW4gbHVvbiBwaGllbiBtYSBjaGkgInF1YW5nIG1lIG5oYW5oIGNheSwgYmFvIHRy aSBsdW9pIGRpZW4gDQp0cnVvYyBtdWEgbXVhLi4uIiANCg0KVElOIExJRU4gUVVBTg0KDQoqIE1h dCBkaWVuIHRvYW4gdGhhbmggcGhvLCBuaGEgZ2lhbSBkb2MgRGllbiBsdWMgdmFuIHNhbmcgDQoq IEtobyB2aSAib25nIiBkaWVuIGx1YyANCiogVFAuSENNOiBUaHVvbmcgZGUga2hvYyB2aSBkaWVu IGx1YyBjYXAgaHV5ZW4gDQoqIERpZW4gbHVjIFRQLkhDTSB0dW5nIHF1YW4gdGltIGNvdCBkaWVu ICJybyByaSINCg0KTmh1bmcgbmdheSBxdWEsIG5oaWV0IGRvIG8gVFAuSENNIGxlbiB0b2kgMzgw Qy4gS2hvbmcgY2hpIGtobyB2aSBuYW5nIG5vbmcgbWEgDQpuZ3VvaSBkYW4gY29uIGNoaXUgdGhl bSBjYW5oICJkZW4gZGF1IiBraGkgaGFuZyBsb2F0IGtodSB2dWMgbyBUUC5IQ00gYmkgbWF0IGRp ZW4uIA0KDQpUcnVvYyB0aW5oIHRyYW5nIG5heSwgb25nIFRyYW4gS2hpZW0gVHVhbiwgUGhvIFRH RCBDb25nIHR5IERpZW4gbHVjIFRQLkhDTSBraGFuZyANCmRpbmgsIHRoYW5oIHBobyBjaHVhIGRl biBtdWMgcGhhaSBjdXAgbHVhbiBwaGllbiBuaHUgY2FjIHRpbmggbWEgY2hpICJjdXAgZGllbiBk ZSBiYW8gDQp0cmkgaGUgdGhvbmcgbHVvaSBkaWVuLCBxdWFuZyBtZSBuaGFuaCBjYXkuLi4gbmhh bSBkYW0gYmFvIGFuIHRvYW4gbHVvaSBkaWVuIHRydW9jIG11YSBtdWEiLiANCg0KKEFuaDogR2lh byB0aG9uZyBob24gbG9hbiBkbyBoZSB0aG9uZyBkZW4gZ2lhbyB0aG9uZyBraG9uZyBob2F0IGRv bmcgdHJlbiBkdW9uZyBDTVQ4LiBBbmg6IFRoYWkgUGh1b25nKSANCg0KVGhlbyBvbmcgVnUgVGhl IEN1b25nLCBUcnVvbmcgcGhvbmcga3kgdGh1YXQgRGllbiBsdWMgVFAuSENNLCBtb3Qgc28ga2h1 IHZ1YyB2dWEgDQpiaSBjdXAgZGllbiB0aGVvIGxpY2ggeG9uZyBsYWkgZ2FwIHN1IGNvIHF1YSB0 YWkgY3VjIGJvIGxhbSBDQiBiYXQgZGFuIGRlbiBtYXQgZGllbi4gIkJpIA0KY3VwIDIsMyBsYW4g dHJvbmcgbW90IHR1YW4gZG8gc3UgY28gbmdvYWkgeSBtdW9uIGtoaWVuIG5ndW9pIGRhbiBoaWV1 IGxhbSBuZ2FuaCBkaWVuIA0KY3VwIGx1YW4gcGhpZW4uIFRoZW8gcXV5IGRpbmggbW9pIGxhbiBj dXAgZGllbiBraG9uZyBxdWEgNSB0aWVuZyBkb25nIGhvIHZhIGtob25nIHF1YSANCjEgbGFuL3R1 YW4sIHRydSBraGkgY28gc3UgY28ga2hhY2ggcXVhbiIsIG9uZyBDdW9uZyBraGFuZyBkaW5oLiAN Cg0KVGFwIGRvYW4gRGllbiBsdWMgVmlldCBOYW0gKEVWTikgY2hvIGJpZXQgdGluaCBoaW5oIGN1 bmcgY2FwIGRpZW4gdHJvbmcgdGhhbmcgNS8yMDEwIA0KdGllcCB0dWMga2hvIGtoYW4gZG8gdGhv aSB0aWV0IG5hbmcgbm9uZyB0cmVuIGRpZW4gcm9uZywgbHV1IGx1b25nIG51b2MgdmUgY2FjIGhv IHRodXkgDQpkaWVuIGRldSB0aGFwIGhvbiBnaWEgdHJpIHRydW5nIGJpbmggbmhpZXUgbmFtIHF1 YS4gVHJvbmcga2hpIGRvLCBjYWMgbmhhIG1heSBuaGlldCBkaWVuIA0KdGhhbiBtb2kgbyBtaWVu IEJhYyB2YW4gaGFuaCBjaHVhIG9uIGRpbmggY29uIG5oYSBtYXkgbmhpZXQgZGllbiB0aGFuIFF1 YW5nIE5pbmgsIA0KSGFpIFBob25nLCBDYW0gUGhhIGhpZW4gZGFuZyBiaSBzdSBjbyBraGllbiBj b25nIHN1YXQgcGhhdCBoYW4gY2hlLi4uIA0KDQpUcm9uZyB0dWFuIHR1IDEwLzUgLSAxNi81LCBz YW4gbHVvbmcgZGllbiBUYXAgZG9hbiBEaWVuIGx1YyBWaWV0IE5hbSAoRVZOKSBwaGFuIGJvIA0K Y2hvIGRpZW4gbHVjIHRoYW5oIHBobyBsYSA0NSw0MyB0cmlldSBrV2gvbmdheS4gVHVhbiB0aWVw IHRoZW8gdHUgMTcvNSAtIDIzLzUsIHNhbiBsdW9uZyANCmRpZW4gVFAuSENNIGxhIDQ2LDUgdHJp ZXUga1doL25nYXkuIFRoZSBuaHVuZyBkbyB0aW5oIGhpbmggbmFuZyBub25nIGtlbyBkYWksIG5o dSANCmNhdSBzdSBkdW5nIGRpZW4gY3VhIG5ndW9pIGRhbiB0YW5nIGNhbyBraGllbiBzYW4gbHVv bmcgdGlldSB0aHUgZGllbiBiaW5oIHF1YW4gY3VhIA0KVFAuSENNIHRhbmcgdm90IGxlbiB0b2kg NDksMzggdHJpZXUga1doL25nYXkuIFRoYW0gY2hpIG5nYXkgMTIvNSB2dWEgcXVhIGx1b25nIHRp ZXUgDQp0aHUgZGllbiBvIHRoYW5oIHBobyBsZW4gdG9pIDUwLDAzIHRyaWV1IGtXaC9uZ2F5Li4u LCBkYWkgZGllbiBkaWVuIGx1YyB0aGFuaCBwaG8gbmV1IGNvbiANCnNvIGJhbyBkb25nLiANCg0K Ik1vaSBuZ2F5IFRQLkhDTSB0aWV0IGtpZW0gY2FuIHBoYWkgdGlldCBraWVtIGtob2FuZyA2JSBz YW4gbHVvbmcgZGllbiB0aWV1IHRodSANCihraG9hbmcgMSwwNyB0cmlldSBLV2gvbmdheSkuIE5l dSBraG9uZywgY3UgdGluaCB0cmFuZyBkaWVuIHRpZXUgdGh1IHZ1b3QgcXVhIG11YyBjaG8gDQpw aGVwIGN1YSBFVk4sIHRoYW5oIHBobyBzZSBwaGFpIGNhdCBkaWVuIGx1YW4gcGhpZW4gbmh1IGNh YyB0aW5oIHRyb25nIHRob2kgZ2lhbiB0b2kiLCANCm9uZyBUdWFuIGxvIG5nYWkuIA0KDQpUcm9u ZyBraGkgZG8sIGxhbmggZGFvIG5nYW5oIGRpZW4gdGhhbmggcGhvIGNobyByYW5nIG5oaWV1IGRv biB2aSBzYW4geHVhdCBraW5oIGRvYW5oLCANCmRpY2ggdnUsIG5ndW9pIGRhbiBkdW5nIGRpZW4g c2luaCBob2F0Li4uIGNvbiBxdWEgbGFuaCBwaGkuIENoaSBjYW4gbW9pIGdpYSBkaW5oIGdpYW0g DQpuaGlldCBkbyBtYXkgbGFuaCwgdGF0IGJvdCB2YWkgYm9uZyBkZW4gbGEgY28gdGhlIHRpZXQg a2llbSA1LTEwJSBsdW9uZyBkaWVuIG5hbmcgdGlldSANCnRodSBjdWEgY2EgdGhhbmggcGhvLiAN Cg0KIk5oaWV1IG5ndW9pIGRpIHZhbyBjYWMgbmhhIGhhbmcsIGtoYWNoIHNhbiAzIHNhbywgdHJ1 bmcgdGFtIHRodW9uZyBtYWkgY2FwIGNhcC4uLiBwaGFpIA0KbWFjIGFvIHZlc3QsIGFvIGtob2Fj IGNobyBkbyBsYW5oLiBUcm9uZyBraGkgZG8gbmhpZXUgbm9pIGtob25nIGNvIGRpZW4gc3UgZHVu ZywgY2FjIA0KdGluaCBwaGFpIGN1cCBsdWFuIHBoaWVuIGNvbiBuZ2FuaCBkaWVuIHBoYWkgYXAg ZHVuZyBtb2kgYmllbiBwaGFwIGhvIGhhbyB0aWV0IGtpZW0gDQpkaWVuLi4uIiwgb25nIEN1b25n IGRhbiBjaHVuZy4NCg0KTGllbiBxdWFuIGRlbiBjb25nIHRhYyB0aWV0IGtpZW0gZGllbiB0cm9u ZyBuYW0gMjAxMCwgUGhvIENodSB0aWNoIFVCTkQgVFAuSENNIA0KTmd1eWVuIFRoYW5oIFRhaSB2 dWEgeWV1IGNhdSBTbyBHVFZUIGNoaSBkYW8gQ29uZyB0eSBDaGlldSBzYW5nIGNvbmcgY29uZywg Y29uZyANCnZpZW4gY2F5IHhhbmguLi4gcmEgc29hdCBsYWkgY2FjIHR1eWVuIGR1b25nLCBraHUg dnVjIGNvbmcgY29uZyBjaHVhIHRodWMgaGllbiBjYXQgZ2lhbSANCnNvIGx1b25nIGRlbiBjaGll dSBzYW5nIGtob25nIGNhbiB0aGlldC4gRG9uZyB0aG9pLCBTbyBHVFZUIGNhbiBraWVtIHRyYSwg Z2lhbSBzYXQgDQp2aWVjIGNhdCBnaWFtIDUwJSBzbyBsdW9uZyBkZW4gY2hpZXUgc2FuZyBjb25n IGNvbmcgdGFpIGNhYyB0dXllbiBkdW9uZywgcGhvLCBraHUgdnVjIA0KY29uZyB2aWVuLi4uIE5n b2FpIHJhIGNhYyBkb24gdmkgY2FuIGdpYW0gc2F0IGNoYXQgY2hlIHRob2kgZ2lhbiBiYXQsIHRh dCBkZW4gY2hpZXUgc2FuZyANCmNvbmcgY29uZyBkZSB2dWEgdGlldCBraWVtIGRpZW4gdnVhIGRh bSBiYW8gQVRHVCwgYW4gbmluaCB0cmF0IHR1LiBUaGVvIHF1eSBkaW5oLCBzYXUgDQoyMmggY2Fj IGhlIHRob25nIGRlbiBxdWFuZyBjYW8gbmdvYWkgdHJvaSBwaGFpIHRhdCBkZSB0aWV0IGtpZW0g ZGllbi4gTmh1bmcgdGh1YyB0ZSBxdWEgDQpraWVtIHRyYSBjdWEgZGllbiBsdWMgdGhhbmggcGhv LCBoYW5nIGxvYXQgYmFuZyBxdWFuIGNhbyB2YW4gc2FuZyBkZW4gZGVuIDIzaCwgMjRoLi4uIA0K Z2F5IGxhbmcgcGhpIGRpZW4uIA0KIA0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAw OC8xMS84MTEzOTIvIFRhbiBUaHVhbiAgMTc6MTksIDAxLzExLzIwMDggKEdNVCs3KQ0KDQpUUC5I Q006IExhbmcgcGhpIGtobyBiYWkgbmh1bmcgdGhpZXUgZGF0IHhheSB0cnVvbmcsIG5oYSB0YWkg ZGluaCBjdQ0KDQotIFJhdCBuaGlldSBraG8gYmFpIGJpIGJvIGhvYW5nIGhvYWMgY2hvIHRodWUg bGFpIHNhaSBtdWMgZGljaCwgbmh1bmcgZGF0IGRlIA0KeGF5IHRydW9uZywgbmhhIHRhaSBkaW5o IGN1LCBjb25nIHRyaW5oIHhhIGhvaSBsYWkga2hvbmcgY28uIFRyb25nIGtoaSBkbywgdmllYyB0 aHUgaG9pIGNhYyANCmtobyBiYWkgbmF5IGRhbmcgZ2FwIG5oaWV1IHRyYWMgdHJvLg0KDQpTYW5n IDMxLzEwLCBCYW4gS2luaCB0ZSB2YSBOZ2FuIHNhY2ggSERORCB0aGFuaCBwaG8gSG8gQ2hpIE1p bmggY28gYnVvaSBsYW0gdmllYyANCnZvaSBxdWFuIDggdmUgdGluaCBoaW5oIHN1IGR1bmcga2hv IGJhaSB0cmVuIGRpYSBiYW4gdGhvaSBnaWFuIHF1YS4gUXVhbiA4IGxhIHF1YW4gbmdoZW8gDQpu aGF0IG5oaSB0cm9uZyB2dW5nIG5vaSB0aGFuaCBjdWEgdGhhbmggcGhvIHZvaSB0eSBsZSBobyBu Z2hlbyBjaGllbSAxLDQlLiANCg0KVG9uZyBzbyBobyBkYW5nIHNvbmcgdHJlbiBrZW5oIHJhY2gg bGEgMjMgbmdoaW4gaG8gY2FuIGdpYWkgdG9hIGRlbiBidSB0YWkgZGluaCBjdSBuaGFtIA0KY2hp bmggdHJhbmcgZG8gdGhpLiBUaGUgbmh1bmcsIG1vdCBuZ2hpY2ggbHkgbWEgY2FjIGRhaSBiaWV1 IHRoYW0gZHUgZGF0IHJhIGxhIHRyb25nIGtoaSANCmRpYSBwaHVvbmcga2hvbmcgY28gZGF0IGRl IHhheSBkdW5nIGNodW5nIGN1IHBodWMgdnUgdGFpIGRpbmggY3UgdmEgY2FjIGNvbmcgdHJpbmgg DQpwaHVjIGxvaSBraGFjIHRoaSBjbyBoYW5nIHRyYW0gbmdoaW4gbWV0IHZ1b25nIGRhdCBzdSBk dW5nIGxhbmcgcGhpLCBzYWkgbXVjIGRpY2guDQoNCkJhbyBjYW8gY3VhIHF1YW4gOCBjaG8gYmll dCwgaGllbiB0b2FuIHF1YW4gY28gMTU5IGtobyBiYWkgdm9pIHRvbmcgZGllbiB0aWNoIDQzNSw0 IA0KbmdoaW4gbTIuIFRyb25nIHNvIG5heSBjbyA3NyBraG8gYmFpIGRhbmcgZHVvYyBxdWFuIGtp ZW4gbmdoaSB0aHUgaG9pLCBjaHV5ZW4gZG9pIA0KY29uZyBuYW5nIGRlIHBodWMgdnUgY2h1b25n IHRyaW5oIHRhaSBkaW5oIGN1IHZhIHhheSBkdW5nIGNhYyBjb25nIHRyaW5oIHBodWMgbG9pIA0K eGEgaG9pLiBQaGFuIGxvbiBjYWMgY29uZyB0cmluaCBuYXkgdGFwIHRydW5nIG8gQmVuIEJpbmgg RG9uZywgUGhhbSBUaGUgSGllbi4uLg0KDQpUaGVvIFVCTkQgcXVhbiA4LCBjaGkgY28gNTcvMTU5 IGtobywgYmFpIHZvaSBkaWVuIHRpY2ggc3UgZHVuZyAxNzQuNjg5bTIgbGEgZHVvYyBzdSANCmR1 bmcgZHVuZyBtdWMgZGljaCwgc28gY29uIGxhaSBoYXUgbmh1IGRhbmcgYmkgYm8gdHJvbmcgaG9h YyBjaG8gdGh1ZSBsYWkgc2FpIG11YyBkaWNoLiANCkRvIHZpZWMgdGh1IGhvaSBuaHVuZyBraHUg ZGF0IHRyZW4ga2hvIGtoYW4gKGRhYyBiaWV0IGxhIG5odW5nIGtodSBkYXQgZG8gVHJ1bmcgdW9u ZyANCnF1YW4gbHkpLCBsYW5oIGRhbyBVQk5EIFEuOCB2dWEgZGUgbmdoaSB2b2kgbGFuaCBkYW8g VUJORCBUUCBjYW4gY28gbmh1bmcgYmllbiANCnBoYXAgbWFuaCB0YXkgaG9uIHRyb25nIHZpZWMg dGh1IGhvaSBkYXQgY29uZywgbmhhbSB0cmFuaCBzdSBsYW5nIHBoaSBuaHUgaGllbiBuYXkuIA0K DQooQW5oOiBIYW5nIGNodWMgbmdoaW4gY2FuIG5oYSB0cmVuIGRpYSBiYW4gcXVhbiA4IHBoYWkg Z2lhaSB0b2EgZGUgY2hpbmggdHJhbmcgZG8gdGhpIA0Kbmh1bmcgcXV5IGRhdCB0YWkgZGluaCBj dSBsYWkgY2h1YSBjbywgdHJvbmcga2hpIGRvLCBraG8gYmFpIHRvYSBsYWMgdGFpIGRpYSBwaHVv bmcgbmF5IA0KZGFuZyBiaSBsYW5nIHBoaS4gQW5oOiBULlRodWFuLikgDQoNCkhhbmcgdHJhbSBu Z2FuIG1ldCB2dW9uZyBraG8gYmFpIGRhIGR1b2MgVUJORCBUUCBnaWFvIGxhaSBjaG8gcXVhbiA4 IGxhbSB0cnVvbmcgDQpob2Mgbmh1bmcgZG9uIHZpIHF1YW4gbHkgZGF5IGR1YSBraG9uZyBjaGl1 IGJhbiBnaWFvIGhvYWMgZG9pIHRpZW4gYm9pIHRodW9uZyBraG9uZyANCmR1bmcgcXV5IGRpbmgu IFRpbmggaGluaCBuYXkgbGFtIGtlIGhvYWNoIGNoaW5oIHRyYW5nIGRvIHRoaSwgbmFuZyBjYW8g aGlldSBxdWEgc3UgZHVuZyANCmRhdCBjdWEgcXVhbiA4IGdhcCBraG8ga2hhbi4NCg0KT25nIE5n dXllbiBUaGFuaCBDaHVuZywgQ2h1IHRpY2ggVUJORCBxdWFuIDggY2hvIGJpZXQsIHBoYWkgbWF0 IGRlbiAzIG5hbSBsYXAgaG8gDQpzbyBwaGFwIGx5IHF1YW4gbW9pIGR1b2MgVUJORCBUUCByYSBx dXlldCBkaW5oIHRodSBob2kga2hvIGJhaSAxMzUgTHVvbmcgTmdvYyANClF1eWVuIGRlIHhheSB0 cnVvbmcgbWFtIG5vbi4gU29uZyBoaWVuIG5heSwgZHUgZG9uIHZpIHRodWUga2hvIGJhaSBuYXkg a2hvbmcgY2hpdSANCmJhbiBnaWFvIGRhdCBuaHVuZyBxdWFuIHZhbiBraG9uZyB0aGUgdGllbiBo YW5oIGN1b25nIGNoZSBkdW9jIHZpIGRvbiB2aSBjaHUgcXVhbiANCmN1YSBraHUgZGF0IG5heSBs YSBDb25nIHR5IEtobyBiYWkgVFAuDQoNCkNodW9uZyB0cmluaCB0YWkgZGluaCBjdSBtYSBxdWFu IDggdmFjaCByYSB0dSBuYXkgZGVuIG5hbSAyMDE1IGxhIGNhbiBwaGFpIGNvIHRyZW4gMTAgDQpu Z2hpbiBjYW4gbmhhIGRlIHBodWMgdnUgdGFpIGRpbmggY3UuIFRyb25nIG5hbSAyMDA5IHNlIHhh eSAxLjAwMCBjYW4gdmEgZGVuIDIwMTAgeGF5IA0KdGhlbSA2LjAwMCBjYW4uIFNvIGNvbiBsYWkg c2UgdGllbiBoYW5oIHRpZXAgdHJvbmcgdGhvaSBnaWFuIGNvbiBsYWkuIFRoZSBuaHVuZywgcXV5 IGRhdCANCmRlIHhheSBuaGEgdGFpIGRpbmggY3UgbGFpIGtob25nIGJpZXQgdGltIGRhdS4NCg0K Q2F1IGNodXllbiBwaGFwIGx5IHZlIHZpZWMgdGh1IGhvaSBraG8gNDgxIEJlbiBCYSBEaW5oLCBw aHVvbmcgOSwgcXVhbiA4IGRhbmcgbGFtIA0KZGF1IGRhdSBjYWMgY28gcXVhbiBxdWFuIGx5IG5o YSBudW9jLiBLaG8gNDgxIEJlbiBCYSBEaW5oIGRvIENvbmcgdHkgS2hvIGJhaSBUUCAodGh1b2Mg DQpUb25nIENvbmcgdHkgRGlhIG9jIFNhaSBHb24pIHF1YW4gbHkuIENvbmcgdHkgbmF5IGNobyBD b25nIHR5IGNvIHBoYW4gSG9hIA0KY2hhdCB2YXQgbGlldSBkaWVuIHRodWUgbWF0IGJhbmcgdHJl biB0dSBuYW0gMTk4NSBkZW4gbmF5LCBob3AgZG9uZyBkdW9jIGt5IGxhaSBoYW5nIA0KbmFtLiBO Z2F5IDMxLzEyLzIwMDcgbGEgdGhvaSBoYW4gdGh1ZSBjaGFtIGR1dC4NCg0KQ3VvaSBuYW0gMjAw NywgQ29uZyB0eSBLaG8gYmFpIFRQIGRvaSBiZW4gdGh1ZSB0cmEgbGFpIG1hdCBiYW5nIHRyb25n IHRoYW5nIDEvMjAwOCBkZSANCmdpYW8gY2hvIFVCTkQgcXVhbiA4IHRodWMgaGllbiBkdSBhbiBk YXUgdHUgeGF5IGR1bmcgdHJ1b25nIGNvIHNvIGNodWFuIHF1b2MgZ2lhIA0Kbmh1bmcgYmVuIHRo dWUga2hvbmcgY2hpdSB0cmEsIGNhbiB0cm8gdmllYyBraGFvIHNhdCwgZG8gdmUgaGllbiB0cmFu ZyBraHUgZGF0LiBLaG9uZyBjaGkgDQp0aGUsIHRyb25nIHF1YSB0cmluaCB0aHVlIGtobyBiYWks IGNvbmcgdHkgZGEgbGF5IGhvbiAyLjAwMG0yIGRhdCBwaGFuIG5lbiBjaG8gMjQgY2FuIGJvLCAN CmNvbmcgbmhhbiB2aWVuIHhheSBuaGEgby4NCg0KRGUgdGh1IGhvaSBraG8gdHJlbiwgYmEgY28g cXVhbiBsYSBUb25nIENvbmcgdHkgRGlhIG9jIFNhaSBHb24sIFVCTkQgcXVhbiA4IHZhIFNvIA0K WGF5IGR1bmcgbGFpIGR1YSByYSBuaHVuZyBodW9uZyBnaWFpIHF1eWV0IGtoYWMgbmhhdS4gQ29u ZyB0eSBLaG8gYmFpIFRQIGRlIG5naGkga2hvaSANCmtpZW4gYmVuIHRodWUgcmEgdG9hIGRlIGRv aSBsYWkga2hvIHZhIHRpZW4gdGh1ZS4gVUJORCBxdWFuIDggdGhpIGNobyByYW5nIG5lbiB0YWNo IGhhaSANCnN1IHZpZWMgbmF5IHJhLiBNb3QgbWF0IGRlIGNobyBxdWFuIGN1b25nIGNoZSB0aHUg aG9pIHBoYW4gZGllbiB0aWNoIGhvbiAxMCBuZ2hpbiBtMiANCmtobyBiYWkgZG8gYmVuIHRodWUg ZGFuZyBzdSBkdW5nLg0KDQpQaGFuIGRpZW4gdGljaCBiZW4gdGh1ZSBkYSBwaGFuIG5lbiBibyB0 cmkgY2hvIGNhbiBibywgY29uZyBuaGFuIHZpZW4geGF5IG5oYSB0aGkgc2UgDQpraGFvIHNhdCwg dGh1IHRoYXAgcGhhcCBseSwgbGFwIHBodW9uZyBhbiBib2kgdGh1b25nLCBnaWFpIHBob25nIG1h dCBiYW5nIHRoZW8gcXV5IGRpbmggDQpoaWVuIGhhbmguIENvbiB2aWVjIGdpYWkgcXV5ZXQgdGhh bmggbHkgaG9wIGRvbmcgdGh1ZSBraG8gYmFpIGdpdWEgQ29uZyB0eSBLaG8gYmFpIFRQIA0KdmEg YmVuIHRodWUgbGEgbW90IHZ1IGtpZW4gZG9jIGxhcCBnaXVhIGhhaSBiZW4gZG8gdG9hIGFuIGdp YWkgcXV5ZXQuIFNvIFhheSBkdW5nIGxhaSBjaG8gDQpyYW5nIG11b24gbmhhbmggY2hvbmcgdGh1 IGhvaSBtYXQgYmFuZyBVQk5EIFRQIG5lbiBkdW5nIHF1eWV0IGRpbmggY3VvbmcgY2hlIGhhbmgg Y2hpbmguDQoNCk9uZyBOZ3V5ZW4gTWluaCBIb2FuZyAtIFRydW9uZyBiYW4gS2luaCB0ZSB2YSBO Z2FuIHNhY2ggSERORCBUUCBjaG8gcmFuZyBkbyANCmxhbSBraG9uZyBraWVuIHF1eWV0IGNodSB0 aHVlIGNvIHRob2kgaGFuLCBraG9uZyBwaGFpIGxhIG11b24ga2VvIGRhaSBiYW8gbmhpZXUgY3Vu ZyBkdW9jLiANCktob25nIGNvIGNodXllbiBhbmggY3UgZGUgaG9hbmcga2hvIGJhaSwga2hvbmcg Y28gY2h1eWVuIGFuaCBsYW0gYW4ga2hvbmcgDQpkdW9jIG1hIGtoaSBiYW4gYW5oIGxhaSBkdW9j IG5oYW4gNTAlIHNvIHRpZW4gZG8uDQoNCkNvbiB0aGVvIG9uZyBIb2kgZG9uZyBEYW5nIFZhbiBL aG9hOiAiVmllYyBzdSBkdW5nIGxhbmcgcGhpIGtobyBiYWkgbmF5IGRhbmcgbGEgdGUgDQp0cmFu ZyB0b24gdGFpIGRhaSBkYW5nIHZhIGNhbiBzb20gZHVvYyBnaWFpIHF1eWV0IGR1dCBkaWVtLiBD byByYXQgbmhpZXUga2hvIGJhaSwgbmh1bmcgDQpzdSBkdW5nIGtob25nIGhpZXUgcXVhIGxhIGto b25nIGNvIGdpIG1vaSB2YSBraG9uZyByaWVuZyBnaSBvIHF1YW4gOCBtYSBvIHRyZW4gZGlhIGJh biANCnRoYW5oIHBobyBjdW5nIG5odSBjYSBudW9jIG5vaSBjaHVuZy4gVGUgdHJhbmcgbmF5IHNl IGNvbiB0b24gdGFpIGRlbiBiYW8gZ2lvPyBLaGkgbWEgDQpjYWNoIGRheSBob24gMSB0aGFwIG5p ZW4sIERhbmcsIE5oYSBudW9jIGRhIGRhdCByYSBuaHVuZyBraG9uZyBsYW0gZHVvYyIuDQoNCktl dCB0aHVjIGJ1b2kgbGFtIHZpZWMsIG9uZyBIb2FuZyBuaGFuIG1hbmgsIHF1YW4gcGhhaSBsYW0g ZHV0IGtob2F0LCB0aHUgaG9pIG5odW5nIA0Ka2hvIGJhaSBzdSBkdW5nIHNhaSBtdWMgZGljaCwg Y2Ega2hvIGJhaSBUcnVuZyB1b25nIHF1YW4gbHkgbGFuIGtobyBiYWkgdGhhbmggcGhvLiBEb24g DQp2aSBuYW8ga2hvbmcgY2hhcCBoYW5oIHBoYWkgdGllbiBoYW5oIGN1b25nIGNoZS4gS2hvbmcg Y28gbHkgZG8gZ2kgZGUga2hvIGJhaSBibyB0cm9uZywgDQpoYXkgY2h1eWVuIGRvaSBtdWMgZGlj aCwgY2hvIHRodWUgbGFpLCB0cm9uZyBraGkgYmlldCBiYW8gY29uZyB0cmluaCBjYW4gZHVvYyB4 YXkgZHVuZyANCm5odSB0cnVvbmcgaG9jLCBiZW5oIHZpZW4sIGJlbiB4ZSwgY2FjIGNvbmcgdHJp bmggcGh1YyBsb2kgeGEgaG9pIGNhbiB4YXkgZHVuZyBuaHVuZyANCmtob25nIGNvIGRhdC4gDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0NS8yMDEwMTEwNjEz MjMwNi5hc3B4IFRoZW8gTmd1b2kgTGFvIERvbmcgMDYvMTEvMjAxMCA5OjAwICANCg0KVFAgSENN OiBHaWEgaGFuZyBob2EgdGFuZyAicmF0IG1hdCIgICANCg0KKEFuaDogS2hhY2ggY2hvbiBtdWEg Y2EgdGFpIGNobyBkYXUgbW9pIEJpbmggRGllbikgDQoNCk5oYSBjdW5nIGNhcCB2aWVuIGR1IGx5 IGRvIGRlIHRhbmcgZ2lhIHNhbiBwaGFtLiBHaWEgaGFuZyBob2EsIGRhYyBiaWV0IGxhIHJhdSwg Y3UsIHF1YSwgDQp0aHVjIHBoYW0gdHVvaSBzb25nIHRhaSBjYWMgY2hvIGRhbmcgdGFuZyBjYW8u IA0KDQpUZSBudW9jIHRoZW8gbXVhDQogDQpEYXUgdGhhbmcgMTEtMjAxMCwgbW90IHNvIHNpZXUg dGhpIHRhaSBUUEhDTSB0YW5nIGdpYSAzJSAtIDI1JSBoYW5nIHRyYW0gbWF0IGhhbmcgDQpiYW5o IGtlbywgdGh1YyBwaGFtLCBob2EgbXkgcGhhbSwgZGF1IGFuLCBkbyBnaWEgZHVuZywgbmhvbSwg bmh1YS4uLiBEYWkgZGllbiBzaWV1IHRoaSANCkhhIE5vaSBjaG8gYmlldCBuaGEgY3VuZyBjYXAg bmV1IHJhIGR1IGx5IGRvIG5odSB0aSBnaWEgdGFuZywgdmFuZyB0YW5nLCBuZ3V5ZW4gbGlldSAN CnRhbmcuLi4gZGUgdGFuZyBnaWEuIE5oaWV1IG5oYSBjdW5nIGNhcCBtdW9uIHRhbmcgZ2lhIGhv YWMgZGUgeHVhdCB0YW5nIGdpYSBraG9uZyBkdW9jIA0Kc2lldSB0aGkgY2hhcCBuaGFuLCBsYXAg dHVjIGdheSBhcCBsdWMgYmFuZyBjYWNoIHRob25nIGJhbyBoZXQgaGFuZywgY3VuZyBjYXAgbmhv IGdpb3QgDQpob2FjIHRhbSBuZ3VuZyBjdW5nIGNhcCBoYW5nLiBNb3Qgc28gbmhhIGN1bmcgY2Fw IGNob24gaGluaCB0aHVjIGtodXllbiBtYWkgZ2lhbSANCmdpYSwgdGFuZyBxdWEgaG9hYyB0aGF5 IGRvaSBiYW8gYmksIGdpYW0gdHJvbmcgbHVvbmcgbW9uIGhhbmcuLi4gZGUga2hlbyBsZW8gdGFu ZyBnaWEuIA0KVGhlbyBjYWMgc2lldSB0aGksIGtob25nIGxvYWkgdHJ1IGtoYSBuYW5nIG5oYSBj dW5nIGNhcCAidGUgbnVvYyB0aGVvIG11YSIuIA0KDQpUYWkgY2FjIGNobyBsZSB0cmVuIGRpYSBi YW4gVFBIQ00sIG5nb2FpIG5odW5nIG1hdCBoYW5nIGtlIHRyZW4sIHRhbmcgInJhdCIgbmhhdCB0 cm9uZyANCm51YSB0aGFuZyBuYXkgbGEgY2FjIGxvYWkgcmF1LCBjdSwgcXVhLCB0aHV5IGhhaSBz YW4gdHVvaSBzb25nLiBUYWkgY2hvIEFuIERvbmcgKHF1YW4gNSksIA0KUmFjaCBPbmcgKHF1YW4g OCksIFRoaSBOZ2hlIChxdWFuIEJpbmggVGhhbmgpLCBnaWEgbmhpZXUgbWF0IGhhbmcgZHVuZyB0 cm9uZyBidWEgDQpjb20gaGFuZyBuZ2F5IHZhbiBkdW5nIG8gbXVjIGNhbyB2YSB0YW5nIG5oZTog ZHVhIGxlbyAxMC4wMDAgZG9uZyAtIDEyLjAwMCBkb25nL2tnLCANCnhhIGxhY2ggMzUuMDAwIGRv bmcva2csIGRhdSBjbyB2ZSAxNS4wMDAgZG9uZyAtIDIwLjAwMCBkb25nL2tnLCBib25nIGNhaSB0 cmFuZyBEYSBMYXQgDQozNS4wMDAgZG9uZyAgLSAzNy4wMDAgZG9uZy9rZywga2hvYWkgdGF5IGhv bmcgRGEgTGF0IDY1LjAwMCBkb25nL2tnLCBjYSBybyA1NS4wMDAgDQpkb25nIC0gNjAuMDAwIGRv bmcva2csIGNhIGRpZXUgaG9uZyAzNy4wMDAgZG9uZyAgLSA0NS4wMDAgZG9uZy9rZywgY2Ega2Vv IDkwLjAwMCBkb25nIA0KLSAxMjAuMDAwIGRvbmcva2csIGNhIG51YyAzNS4wMDAgZG9uZyAtIDQ1 LjAwMCBkb25nL2tnLCBjYSB0aHUgMTIwLjAwMCBkb25nIC0gMTMwLjAwMCANCmRvbmcva2cuLi4g TW90IHNvIHRpZXUgdGh1b25nIGNobyBUaGkgTmdoZSBjaG8gcmFuZyBkbyBhbmggaHVvbmcgY3Vh IG11YSBsdSBvIG1pZW4gDQpUcnVuZywgZ2lhIG8gY2hvIGRhdSBtb2kgdGFuZyBuZW4gaG8gcGhh aSB0YW5nIHRoZW8uIE11YyBnaWEgbmF5IGRhICJkdW5nIiBob24gbW90IA0KdHVhbiBuYXksIHR1 eSB0aGVvIGJ1b2kgY2hvIG1hIGRhbyBkb25nIHRhbmcsIGdpYW0gNS4wMDAgZG9uZyAgLSAzLjAw MCBkb25nL2tnLiANCg0KTW90IGNhbiBibyBCYW4gUXVhbiBseSBjaG8gZGF1IG1vaSBCaW5oIERp ZW4gY2hvIGJpZXQgdmkgdGhlbyBkb2kgZ2lhIGNhIGhhbmcgaG9hIG1vaSANCm5nYXkgbmVuIHZ1 YSByb2kgZ2hlIGNobyBnYW4gbmhhLCBjaGkgInNvYyIgdmkgYmkgbmd1b2kgYmFuICJjaGVtIiBx dWEgIm5nb3QiOiAiVG9pIA0KbXVhIDIwMGcgdG9pIDEwLjAwMCBkb25nLCAzMDBnIHhhIGxhY2gg YnVwIDExLjAwMCBkb25nLiBUcm9uZyBraGkgZG8sIHRhaSBjaG8gZGF1IG1vaSwgDQpnaWEgdG9p IGNoaSAzNS4wMDAgZG9uZy9rZywgeGEgbGFjaCAxOC4wMDAgZG9uZyAtIDIwLjAwMCBkb25nL2tn LiBLaG9uZyBoaWV1IHR1IGNobyBzaSANCnZlIGNobyBsZSwgbmd1b2kgYmFuIGNhbiwgZG8sIGRv bmcsIGRlbSB2YSBjb25nIGNoaSBwaGkgdGhlIG5hbyBtYSBiYW4gcXVhIGRhdCIgLSBjaGkgYnVj IHh1Yy4gIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAyL3MyMDItNDAzNzUxL2xvYW4tdGVu LWR1b25nLXBoby1vLXRwaGNtLmh0bSAyMC8wNi8yMDEwIC0gMTM6MzANCg0KVFBIQ006ICJMb2Fu Ii4uLiB0ZW4gZHVvbmcsIHBobyBvIFRQSENNDQoNCihEYW4gdHJpKSAtIER1IGRhIGNvIEhvaSBk b25nIGRhdCB0ZW4gZHVvbmcgdHUgMTUgbmFtIG5heSwgdGhlIG5odW5nIGhlIHRob25nIGR1b25n IG8gDQpUUEhDTSB2YW4gZGF0IHRlbiBsb2FuIHhpIGRlbiBub2kgY2FjIGNvIHF1YW4gcXVhbiBs eSBjdW5nIHBoYWkgImJvIHRheSIga2hpIHhhYyBkaW5oIHRlbiBkdW9uZy4NCg0KaHR0cDovL3Zu ZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDEvM0JBMTc1QTUvIDQvMS8yMDEwLCAxMTo1MCBH TVQrNw0KDQpUUEhDTTogVm8gZGUgbyBUUCBIQ00sIGhhbmcgdHJhbSBobyBkYW4gaG9hbmcgbG9h bg0KDQpSYW5nIHNhbmcgbmF5LCBtb3QgZG9hbiBkZSBiZXRvbmcgbyBuaGFuaCBzb25nIFNhaSBH b24gZGEgdm8sIG51b2MgdHJhbiBhbyBhdCB2YW8ga2h1IA0KcGhvIDgsIHBodW9uZyBIaWVwIEJp bmggQ2hhbmgsIHF1YW4gVGh1IER1YywgVFAgSENNLg0KDQpEb2FuIGJvIGRlIGJpIHZvIGtob2Fu ZyAxMCBtZXQgbmFtIG8gUmFjaCBWby4gTnVvYyB0dSBiZW4gbmdvYWkgdHJhbiB2YW8gbGFtIGhh bmcgDQp0cmFtIGhvIGRhbiBvIGRheSBraG9uZyBraXAgdHJvIHRheS4gVGF0IGNhIGRvIGRhYyB0 cm9uZyBuaGEgbmh1IHR1IGxhbmgsIHF1YW4gYW8sIGJhbiANCmdoZS4uLiBkZXUgbm9pIGxlbmgg YmVuaCB0cmVuIG51b2MuICJEYXkgbGEgbGFuIGRhdSB0aWVuIG5oYSB0b2kgYmkgbmdhcCBuaHUg dGhlIG5heS4gTWF5IA0KbmFtIHRydW9jIG51b2MgZGFuZyBjYW8gbmh1bmcga2hvbmcgdHJhbiB2 YW8gbmhhIiwgY2hpIE5ndXllbiBUaGkgTWFpIGNobyBiaWV0Lg0KDQooQW5oOiBEb2FuIGJvIGRl IGJpIHZvIGxhbSBudW9jIHRyYW4gdmFvIGtodSBkYW4gY3UuIEFuaDogQW4gTmhvbi4pDQoNClRo ZW8gY2hpIE1haSwgaG9tIHRydW9jIG51b2MgZGEgZGFuZyBjYW8sIGRvYW4gZGUgdHJlbiBjbyBk YXUgaGlldSBiaSB2bywgbmd1b2kgZGFuIGRhIA0KYmFvIGxlbiBwaHVvbmcuIFNhdSBkbywgcGh1 b25nIGRhIGN1IG5ndW9pIGRlbiBnaWEgY28sIG5odW5nIGRlbiBzYW5nIG5heSB0aGkgYmkgdm8u DQoNCmh0dHA6Ly93d3cuc2FpZ29ubmV3cy52bi9zbmNkZXRhaWxuZXdzLmFzcHg/SXRlbT04MTcm S2luZD03IDE2LTA4LTIwMDYgMDA6MDAgQU0NCg0KVFAuSENNOiBuaGlldSBjYW4gYm8gdGhhbSBu aHVuZywgdGlldSBjdWMgdHJvbmcgbGluaCB2dWMgbmhhIGRhdCANCg0KaHR0cDovL3d3dy5raW5o dGVub25ndGhvbi5jb20udm4vU3RvcnkveGFob2kvMjAwNy8xMC83MzQyLmh0bWwgMzEvMTAvMjAw Ny05OjE2IFBNKQ0KDQpUUC5IQ006IERhbiBob2FuZyBsb2FuIHZpIGNodW5nIGN1IHNhcCBzYXAN Cg0KMTZoIGhvbSBuYXksIGdhbiB0cmFtIGhvIGRhbiB0cm9uZyBjaHVuZyBjdSBDb3NhY28sIGR1 b25nIE5ndXllbiBTaWV1LCBxdWFuIDEgZGkgZG9pIA0Ka2hhbiBjYXAgdmkgY28gbmd1eSBjbyBz YXAgYmF0IGN1IGx1YyBuYW8uIA0KQmFuIGRhdSwgbmd1eWVuIG5oYW4gZHVvYyB4YWMgZGluaCBk byB0aGkgY29uZyB0YW5nIGhhbSBjYW8gb2MgU2FpZ29uIFJlc2lkZW5jZXMgKHNvIA0KMTFEIFRo aSBTYWNoLCBuZ2F5IGJlbiBjYW5oIGNodW5nIGN1IENvc2FjbykgZGEgbGFtIHN1dCBuZW4gZGF0 IG5nYXkgYmVuIGNhbmggY2h1bmcgY3UgeHVvbmcgc2F1IGhvbiAyIG1ldC4NCg0KRGVuIDE2aDE1 LCBwaGFuIGxlIGR1b25nIChuZ2F5IGJlbiBjaHVuZyBjdSkgYmkgc3V0IHRoZW0gMCw1IG1ldCBu dWEuIFRyb25nIGtoaSBkbywgDQp2aWVjIGdpYSBjbyBuZW4gbW9uZyBjYW8gb2MgdmEgY2h1bmcg Y3UgQ29zYWNvIGRhbmcga2hhbiB0cnVvbmcgdGh1YyBoaWVuLCBkb25nIHRob2ksIA0KY29uZyB0 YWMgZGkgZG9pIGtoYW4gY2FwIG5ndW9pIHZhIHRhaSBzYW4gY3VhIGdhbiAxMDAgaG8gZGFuIHRh aSBjaHVuZyBjdSBDb3NhY28gZHVvYyANCmtoYW4gdHJ1b25nIHRpZW4gaGFuaC4NCg0KaHR0cDov L3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDYvM0JBMUQ2QjEvIDI4LzYvMjAxMCwgMDk6 MjEgR01UKzcNCg0KVFAuSENNOiBTYXAgNSBjYW4gbmhhIGdheSBuYW8gbG9hbiBkYW4gY3UNCg0K Q2hpZXUgMjcvNiBoYW5nIHRyYW0gbmd1b2kgZGFuIHNvbmcgdHJvbmcgaGVtIDE2NiBkdW9uZyBU YSBRdWFuZyBCdXUgKHF1YW4gOCwgVFAgDQpIQ00pIGJvIGNoYXkgdGFuIGxvYW4ga2hpIGNhbiBu aGEgZGFuZyB4YXkgZHVuZyBiYXQgbmdvIGRvIHNhcCBrZW8gdGhlbyA0IG5oYSBsaWVuIGtlLiAN Cg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM2LzIwMTAwOTA1 MjMyNzMxLmFzcHggTWluaCBOYW0gMDUvMDkvMjAxMCAyMzoyNyANCg0KVFAgSENNOiBkb2FuaCBu Z2hpZXAgcGhhaSBuZ3VuZyB0aGkgY29uZyB2aSBkdW9jIGdpYW8uLi4gbmhhbSBkYXQgIA0KICAN CihBbmggY2h1cDogS2h1IGRhdCBkYW5nIHhheSByYSB0cmFuaCBjaGFwIGdpdWEgQ29uZyB0eSBU YWkgTmd1eWVuIHZhIGNhYyBobyBkYW4gLSBBbmg6IE1pbmggTmFtKQ0KDQpDbyBxdWFuIGNodWMg bmFuZyBnaWFvIGRhdCBjaG8gZG9hbmggbmdoaWVwIGNob25nIGxlbiByYW5oIGRhdCBjdWEgY2Fj IGhvIA0KZGFuIGRhIGR1b2MgY2FwIHNvIGRvIGRhbiBkZW4gbmh1bmcgdHJhbmggY2hhcCwga2hp ZXUga2llbiBrZW8gZGFpLi4uIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDA2MDg3MDU2NTMv dHBoY21fbmhpbl9kYXVfY3VuZ190aGF5X29fbmhpZW0uaHRtbD9tb2RlPXByaW50DQoNClRQIEhD TTogTmhpbiBkYXUgY3VuZyB0aGF5IG8gbmhpZW0gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dM L0RvaS1zb25nLzIwMTAvMDkvM0JBMjBEQ0IvIDI3LzkvMjAxMCwgMTA6NDAgR01UKzcNCg0KVFAg SENNOiBCZSBsb3AgNCBnYXkgeHVvbmcgdmFpIHZpIGRlbyBjYXAgbmFuZyANCg0KQ2FuIGN1IHZh byB0b24gdGh1b25nIGN1bmcgdGluaCB0cmFuZyBjb3Qgc29uZyBiaSB2ZW8gdmEgZ3UgbHVuZywg YmFjIHNpIGNobyByYW5nIHZpZWMgYmUgDQpwaGFpIHZhYyBjYXAgbmFuZyBkaSBibyBtb2kgbmdh eSB2YSBrZW8gZGFpIHRyb25nIG5oaWV1IG5hbSBjaGluaCBsYSBuZ3V5ZW4gbmhhbiBnYXkgeHVv bmcgdmFpLg0KDQpZIGtpZW4gYmFuIGRvYyAoNjYpIA0KQ2h1b25nIHRyaW5oIGdpYW8gZHVjDQpI b2Mgc2luaCBjdWEgdG9pIG5nYXkgbmFvIGN1bmcgbWFuZyB0cmVuIHZhaSBpdCBuaGF0IDUga2cg c2FjaCB2by4gQ2FuZyBuZ2F5IGJvIGdpYW8gDQpkdWMgY2FuZyBiYXQgbWFuZyBuaGlldSBzYWNo LiBIbyBpbiBjYSBuaHVuZyBxdXllbiB2byBiYWkgdGFwIGRlIGhvYyBzaW5oIGtob25nIHBoYWkg DQpjaGVwIGRlLCBuaHVuZyB2YW4gYmF0IGhvYyBzaW5oIHBoYWkgbWFuZyBjYSB2byBkZSBnaGkg Y2hlcC4gIA0KKEhvYW5nIEhhbmgpDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTAzNi8yMDEwMDkwMTAwNTA1OS5hc3B4IE5ob20gUFYgMDEvMDkvMjAxMCAwOjUx IA0KDQpUUCBIQ006IE5naGV0IHRobyB0cm9uZyBsb3AgaG9jICANCiAgDQpTaSBzbyB2dW90IGdh biBnYXAgZG9pIHRoZW8gY2h1YW4gcXVvYyBnaWEsIG5odW5nIG5odW5nIG5nb2kgdHJ1b25nIGNv IGNhYyBsb3AgaG9jIG5odSANCnZheSB2YW4gbGEgbmllbSBtb25nIHVvYyBjdWEgbmhpZXUgcGh1 IGh1eW5oIGhvYyBzaW5oLiANCg0KQW5oIGNodXA6IEhvYyBzaW5oIG5nb2kgY2hlbiBjaHVjIHRy b25nIGxvcCBob2MgbyB0cnVvbmcgdGlldSBob2MgTmFtIFRoYW5oIENvbmcgDQooSGEgTm9pKSAt IEFuaDogQmljaCBOZ29jDQoNCk5nYXkgdHV1IHRydW9uZywga2hpIHZ1YSBuaGFuIGxvcCwgbW90 IGdpYW8gdmllbiAoR1YpIGNodSBuaGllbSBjdWEgdHJ1b25nIFRpZXUgaG9jIA0KKFRIKSBMZSBW YW4gU3kgKFEuVGFuIEJpbmgsIFRQLkhDTSkgaG90IGhhaSBjaGF5IHZhbyBwaG9uZyBoaWV1IHRy dW9uZyBub2k6ICJUaGF5IA0Kb2ksIGxvcCBlbSBjbyBkZW4gNTcgaG9jIHNpbmggKEhTKSwgY28g bmhhbSBraG9uZyB0aGF5PyIuIA0KDQpDb24gY2hpIFQuTCwgcGh1IGh1eW5oIEhTIHRydW9uZyBU SCBMZSBOZ29jIEhhbiAoUS4xKSBjdW5nICJjaG9hbmciIGtoaSBuaGluIGRhbmggDQpzYWNoIGxv cCBjb24gbWluaCBjbyB0b25nIGNvbmcgNDkgSFMuLi4gDQoNCkNoaSBOZ29jLCBwaHUgaHV5bmgg SFMgdHJ1b25nIFRIIEJhdSBTZW4gKFEuNSkgY2hvIGJpZXQ6ICJDdSB0dW9uZyB0dW9uZyBjYW5o IDQ1IA0KZHVhIHRyZSBjaGVuIGNodWMgbmhhdSB0cm9uZyAxIGxvcCBob2MgbWEgY2hpIGNvIDEg Y28gZ2lhbyB2YSAxIGNvIGJhbyBtYXUgY2hhbSBzb2MgY2EgDQpuZ2F5IGxhIHRvaSB0aGF5IHNv IHF1YSBuaHVuZyBjaGFuZyBiaWV0IGxhbSBzYW8iLi4uDQoNCkRheSBraG9uZyBwaGFpIGNodXll biBoaWVtIGdhcCBvIGNhYyB0cnVvbmcgVEggdGFpIFRQLkhDTS4gT25nIFRhIFRhbiAtIFRydW9u ZyANCnBob25nIEdEIFEuVGFuIFBodSwgY2hvIGJpZXQ6ICJIaWVuIG5heSBxdWFuIGNvIDEgdHJ1 b25nIFRIIGRhdCBjaHVhbiBxdW9jIGdpYSBjbyBzaSANCnNvIHRoZW8gcXV5IGRpbmggbGEgMzUg SFMvbG9wLCBuaHVuZyB0cnVvbmcgY29uIGxhaSBiaW5oIHF1YW4gbGEgNDcuIFRyb25nIGRvIGNv IDIgDQp0cnVvbmcgcGhhaSBjaGl1IGFwIGx1YyBuYW5nIG5lIGxhIHRydW9uZyBUSCBMZSBMYWkg dmEgSHV5bmggVmFuIENoaW5oIi4gDQoNCk5hbSBuYXksIHRydW9uZyBUSCBMZSBMYWkgbmhhbiBo b24gNjAwIEhTLCBzaSBzbyB0cnVuZyBiaW5oIG1vaSBsb3Aga2hvYW5nIDUzIC0gNTQuIA0KT25n IEh1eW5oIExvbmcsIEhpZXUgdHJ1b25nIG5oYSB0cnVvbmcgdGhvbmcgdGluOiAiQ28gbG9wIHNp IHNvIGxlbiBkZW4gNjAiLg0KRHVuZyBtaWNybyBnaWFuZyBiYWkgbyBsb3AgMQ0KDQpUYWkgSGEg Tm9pLCB0aW5oIHRyYW5nIG5heSBjb24gY2FuZyB0aGFuZyBob24uIFRydW9uZyBUSCBLaW0gTGll biAoUS5Eb25nIERhKSBsYSANCm1vdCB0cm9uZyBuaHVuZyB0cnVvbmcgbWEgZGEgc28gcGh1IGh1 eW5oIGRldSBtb25nIG11b24gY2hvIGNvbiB2YW8gbG9wIDEuIENoaW5oIHZpIA0KbHkgZG8gZG8s IG5hbSBuYW8gdHJ1b25nIG5heSBjdW5nIHJvaSB2YW8gdGluaCB0cmFuZyBxdWEgdGFpLCB0aHVv bmcgcGhhaSBjaGFwIG5oYW4gc2kgc28gDQp0b2kgaG9uIDYwIEhTL2xvcC4gVGhlbyBoaWV1IHRy dW9uZyBuaGEgdHJ1b25nLCB0dSA0IG5hbSBuYXksIGNoaSB0aWV1IHR1eWVuIHNpbmggbG9wIDEg DQpjdWEgdHJ1b25nIGRldSB0YW5nLCB0aHVvbmcgbGEgNjAwIGhvYWMgNzAwIEhTLCB0cm9uZyBk byB0eSBsZSBIUyB0cmFpIHR1eWVuIGx1b24gY2hpZW0gDQpraG9hbmcgNTAlLiBEYXkgbGEgbmd1 eWVuIG5oYW4ga2hpZW4gc2kgc28gbG9wIGhvYyB0aHVvbmcgbGEga2hvYW5nIDY1IEhTLiBWaSB0 aGUgdHUgDQp2YWkgbmFtIG5heSBuaGEgdHJ1b25nIHBoYWkgdHJhbmcgYmkgaGUgdGhvbmcgYW1w bGkgZGUgZ2lhbyB2aWVuIGdpYW5nIGJhaSBiYW5nIG1pY3JvLiANCk1vdCBHViB0cnVvbmcgbmF5 IHRhbSBzdTogIktoaSBjaHVhIHRyYW5nIGJpIG1pY3JvIGRlIGdpYW5nIGJhaSwgc2F1IG1vdCBu Z2F5IGxlbiBsb3AgDQp0aGkgY2h1bmcgdG9pIGNhbSBnaWFjIG5odSBiaSBkdXQgaG9pLCB0aGFt IGNoaSB2ZSBuaGEga2hvbmcgZHUgc3VjIGRlIG5vaSBjaHV5ZW4gdm9pIA0KY2hvbmcsIGNvbiBu dWEuLi4iLiANCg0KIkN1IHBoYWkgZXAgc2kgc28iDQoNCk9uZyBCdWkgSHV1IFBodW9jLCBIaWV1 IHRydW9uZyB0cnVvbmcgVEggTGUgVmFuIFN5IChRLlRhbiBCaW5oKSBub2k6ICJBcCBsdWMgc2kg c28gDQpjb24gZG8gbmh1IGNhdSBob2MgYmFuIHRydSIuIE9uZyBUYSBUYW4sIFRydW9uZyBwaG9u ZyBHRCBRLlRhbiBQaHUgdGhpIHRob25nIHRpbjogDQoiVHJ1b2MgZGF5IGNodW5nIHRhIGN1IG5n aGkgbGEgY2FjIG5hbSBkZXAgdGhpIHNlIGdpYSB0YW5nIGRhbiBzbywga2VvIHRoZW8gc28gbHVv bmcgSFMgDQpuaGFwIGhvYyB0YW5nLiBUaHVjIHRlIGtob25nIHBoYWkgdmF5LCBtb2kgbmFtIHNv IEhTIGRldSB0YW5nIGJvaSBraG9uZyBjaGkgbGEgZGFuIHNvIA0KY28gaHV1IG1hIGNvbiBkbyBz byBsdW9uZyBkYW4gbmhhcCBjdS4gVHJhY2ggbmhpZW0gY3VhIHRydW9uZyBsYSBwaGFpIHRodSBu aGFuIGhldCBzbyANCmx1b25nIHRyZSB0cmVuIGRpYSBiYW4gbmVuIGN1IHBoYWkgZXAgc2kgc28u IERlIGdpYWkgcXV5ZXQgdGluaCB0cmFuZyBuYXkgY2hpIGNvIGNhY2ggZHV5IA0KbmhhdCBsYSBw aGFpIHhheSBkdW5nIG5oaWV1IHRydW9uZyBob24gbnVhIi4gKEIuVCAtIFAuTCkgDQoNClRydW9u ZyBUSCBOYW0gVGhhbmggQ29uZyAoUS5Eb25nIERhKSBjdW5nIGxhIGRpZW0gbm9uZywgbmFtIG5h eSBzaSBzbyBjdW5nIGxlbiANCnRvaSBob24gNjAgSFMvbG9wLiBEb3QgdHV5ZW4gc2luaCB2dWEg cXVhLCBjaGkgcmllbmcgdHJlIGRpZW4gZHVuZyB0dXllbiB2YW8gdHJ1b25nIGRhIA0KY28gdHJl biA2MDAgSFMsIHRyb25nIGtoaSBkaWV1IGtpZW4gY28gc28gdmF0IGNoYXQgY3VhIHRydW9uZyBj aGkgZGFwIHVuZyBkdW9jIGtob2FuZyA1MDAgDQpIUy4NCg0KTyBsdWEgdHVvaSBjYW4gZHVvYyBy ZW4gbHV5ZW4sIHVvbiBuYW4gdHUgY2FjaCBjYW0gYnV0IGRlbiB0dSB0aGUgbmdvaSB0aGkgc2kg c28gY2FvIGdhbiANCmdhcCBkb2kgc28gdm9pIHF1eSBkaW5oIGtoaWVuIEhTIGtobyBkdW9jIHF1 YW4gdGFtIGR1bmcgbXVjLiANCg0KIkR1IGdpYW8gdmllbiBjbyBnaW9pIGRlbiBtYXksIG5oaWV0 IHRpbmggZGVuIG1heSBjdW5nIGtob25nIHRoZSBkYXkgaG9jIGNvIGNoYXQgbHVvbmcgDQp2b2kg bG9wIGNvIHNpIHNvIHF1YSBjYW8gbmh1IHZheSIgLSBNb3QgcGh1IGh1eW5oIHRhaSBIYSBOb2kg DQoNCkNvIEJ1aSBUaGkgS2ltIER1bmcgLSBHViBsb3AgMSB0cnVvbmcgVEggTmd1eWVuIFZhbiBU cm9pLCBRLjQsIFRQLkhDTSAtIGNobyANCnJhbmc6ICJUcmUgbG9wIDEgcmF0IGhpZXUgZG9uZyBu aHVuZyBsYWkgYmlldCBzbyBjbyBnaWFvIG5lbiB2aWVjIG51b2kga2hvbmcgdG9uIG5oaWV1IA0K dGhvaSBnaWFuIGJhbmcgdmllYyBkYXkgY2h1LiBUaG9pIGdpYW4gZGF1IGNvIGVtIGJpZXQgY2h1 LCBjbyBlbSBjaHVhIGJpZXQsIHRyb25nIGRvIHRyZSANCmJpZXQgY2h1IGhhdSBoZXQgbGFpIGR1 b2MgZGF5IGtob25nIGR1bmcgY2h1YW4gbmVuIG5ldSBsb3AgcXVhIGRvbmcgdGhpIHF1YSB0aGF0 IGNvIGdpYW8gDQpyYXQga2hvIi4gDQoNCkN1bmcgdGFtIHRyYW5nLCBtb3QgR1YgUS5UYW4gQmlu aCB0aHVhIG5oYW46ICJMb3AgdG9pIGNvIDUwIEhTIG5lbiBjYSBuZ2F5IGhhdSBuaHUgDQp0b2kg a2hvbmcgdGhlIG5nb2kgbW90IGNobyBtYSBwaGFpIGtlbSBjYXAgdHVuZyB0cm8gbW90IGRlIGRh bSBiYW8gcmFuZyBob2MgdHJvIGN1YSANCm1pbmggZGEgdmlldCBkdW5nIG5ldCwgbmdvaSBkdW5n IHR1IHRoZSIuIA0KDQpLaG9uZyBjaGkgY28gY2hhdCBsdW9uZyBob2MgdGFwIGJpIGFuaCBodW9u ZyBtYSBzdWMga2hvZSwgdGhpIGx1YyBjdWEgSFMgdHJvbmcgbmh1bmcgDQpsb3AgZG9uZyBjdW5n IHJhdCBkYW5nIGxvIG5nYWkuIE1vdCBjaGllYyBiYW4gaG9jIGR1b2MgdGhpZXQga2UgY2hvIDIg SFMgdGhpIG5heSBjbyB0b2kgIA0KMyBIUyAgbmdvaSBjaGVuIGNodWMuIEtob2FuZyBjYWNoIGdp dWEgY2FjIGJhbiBob2MgY3VuZyBzYW4gc2F0IG5oYXUsIGRheSBiYW4gZGF1IA0KY3VuZyBwaGFp IGtlIGdhbiBuZ2F5IGJ1YyBnaWFuZyBkZSB0YW4gZHVuZyB0b2kgZGEgZGllbiB0aWNoLi4uDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxMzIz NTY0OC5hc3B4IEJUaCBQLkwgMTMvMDkvMjAxMCAyMzo1NiANCg0KVFAgSENNOiBEdW5nIG1haSAi dGhpIGRpZW0iIHRyZW4gaG9jIHRybyEgDQoNCjEyIG5hbSB2YW4gY29uICJ0aGkgZGllbSIgLSBO aGlldSBjaHVvbmcgdHJpbmggdGhpIGRpZW0gdHJvbmcgbW90IHRydW9uZyENCg0KQmF0IGRhdSB0 dSBuYW0gaG9jIG5heSwgY28gNSB0cnVvbmcgdGFpIFRQLkhDTSB0aGFtIGdpYSBkYXkgdGhpIGRp ZW0gY2h1b25nIHRyaW5oIA0KcXVvYyB0ZSBjdWEgREggQ2FtYnJpZGdlICh2aWV0IHRhdCBDVCBD YW1icmlkZ2UpIGJhbyBnb20gdHJ1b25nIFRpZXUgaG9jIChUSCkgDQpOZ3V5ZW4gQmluaCBLaGll bSwgVEggTGUgTmdvYyBIYW4sIFRIIFRyYW4gSHVuZyBEYW8sIFRIQ1MgTmd1eWVuIER1IChRLjEp IHZhIA0KVEhDUyBMZSBRdXkgRG9uIChRLjMpLiBOaHUgdmF5IG8gY2FjIHRydW9uZyBuYXkgZGFu ZyB0b24gdGFpIDMgQ1QgZ2lhbmcgZGF5IHRpZW5nIA0KQW5oOiB0aWVuZyBBbmggcGhvIHRob25n IChiYWMgVEhDUykgaG9hYyB0aWVuZyBBbmggdHUgY2hvbiAoYmFjIFRIKSwgdGFuZyBjdW9uZyAN CnRpZW5nIEFuaCAoVENUQSkgdmEgQ1QgQ2FtYnJpZGdlIHRyb25nIGRvIDIgQ1Qgc2F1IGRldSBs YSB0aGkgZGllbS4gRG8gbGEgY2h1YSBrZSANCm5hbSBob2MgbmF5LCB0dSBkdSBraWVuIHRpZW4g aGFuaCBkYWkgdHJhLCBCbyBHRC1EVCBjaGkgdHJpZW4ga2hhaSBDVCB0aGkgZGllbSBkYXkgDQpu Z29haSBuZ3UgY2hvIEhTIGxvcCAzIHRhaSAxMDAgdHJ1b25nIFRIIG8gaG9uIDIwIHRpbmgsIHRo YW5oLiANCg0KMTIgbmFtIHZhbiBjb24gInRoaSBkaWVtIg0KDQpDVCBUQ1RBIGR1b2MgYmF0IGRh dSB0aGkgZGllbSB0dSBuYW0gaG9jIDE5OTgtMTk5OSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVuZyBE YW8gDQooUS4xKSB2b2kgY2h1YSB0b2kgMTAwIEhTLiBTYW5nIG5hbSBob2MgdGh1IDIsIENUIHRp ZXAgdHVjIGR1b2MgbW8gcm9uZyB0YWkgY2FjIHRydW9uZyANClRIIExlIE5nb2MgSGFuIChRLjEp LCBUSCBEaW5oIFRpZW4gSG9hbmcgKFEuMSksIFRIIE5ndXllbiBUaGFpIFNvbiAoUS4zKS4gRGVu IA0KbmF5LCBDVCBkYSB0aGkgZGllbSBkdW9jIDEyIG5hbSB2YSBjbyAxNzIgdHJ1b25nIFRIIHZv aSBraG9hbmcgNDcuNTAwIEhTIHRoYW0gZ2lhLiANCk9uZyBOZ3V5ZW4gSG9haSBDaHVvbmcgLSBQ aG8gZ2lhbSBkb2MgU28gR0QtRFQgVFAuSENNLCBjaG8gYmlldDogIlRyb25nIHRob2kgDQpkaWVt IGhpZW4gbmF5LCBDVCBjaHVhIHRoZSB0aHVjIGhpZW4gZGFpIHRyYSBkbyBjb24gbmh1bmcga2hv IGtoYW4gdmUgY28gc28gdmF0IGNoYXQsIA0KZG9pIG5ndSBnaWFvIHZpZW4uLi4gVHV5IG5oaWVu IFNvIGx1b24gZ2lhbyBxdXllbiBjaHUgZG9uZyBjaG8gY2FjIHRydW9uZyBUSCwgbmV1IA0KdHJ1 b25nIG5hbyB0aGF5IGNvIGR1IGRpZXUga2llbiB0aGkgZGFuZyBreSB0aGFtIGdpYS4gTmFtIGhv YyBuYXksIHF1YSBwaGFuIGFuaCwgQ1QgY28gDQp0aGF5IGRvaSBkZSBnaWFtIGJvdCBhcCBsdWMg Y2hvIHBodSBodXluaCBjdW5nIG5odSBIUywgZG8gbGEgY2FjIHRydW9uZyBraG9uZyB0aHVjIA0K aGllbiBraGFvIHNhdCBraGEgbmFuZyBob2MgbmdvYWkgbmd1LiBDYWMgdHJ1b25nIFRIIHNlIHRv IGNodWMgY2hvIHBodSBodXluaCBIUyBkYW5nIA0Ka3kgdGhhbSBnaWEgdmEgY2h1b25nIHRyaW5o IGJhdCBkYXUgdGh1YyBoaWVuIHR1IGhvYyBreSAyIi4gTmh1IHZheSBDVCBuYXkgZGEgZGllbiBy YSANCjEyIG5hbSBuaHVuZyBjaHVhIGJpZXQgYmFvIGdpbyBtb2kgY2hhbSBkdXQgZ2lhaSBkb2Fu IHRoaSBkaWVtLiANCg0KVHJvbmcga2hpIGRvLCBuYW0gaG9jIG1vaSBuYXksIG5oaWV1IEhTIGxh aSBidW9jIHZhbyBjYWMgQ1QgdGhpIGRpZW0ga2hhYyB2b2kgbmh1bmcgDQp0aWV1IGNoaSB2YSBt dWMgZGljaCBraGFjIG5oYXUuDQoNCkRpZW4gaGluaCBsYSB0YWkgdHJ1b25nIFRIIFRyYW4gSHVu ZyBEYW8gKFEuMSkgaGllbiBjbyAzOSBsb3AsIHRyb25nIGRvIGNvIDI0IGxvcCBUQSANCnR1IGNo b24sIDEyIGxvcCBUQ1RBIHZhIDMgbG9wIENUIENhbWJyaWRnZS4gSG9jIHBoaSBjYWMgbG9wIG5h eSBraGFjIG5oYXUgcm8gcmV0OiANCkxvcCBUQSB0dSBjaG9uIG1vaSB0aGFuZyBkb25nIDMwLjAw MCBkb25nLCBtb2kgdHVhbiBob2MgMiB0aWV0OyBsb3AgVENUQSBkb25nIA0KMTEwLjAwMCBkb25n L3RoYW5nIChjbyBnaWFvIHZpZW4gbnVvYyBuZ29haSksIHR1YW4gaG9jIDggdGlldDsgdHJvbmcg a2hpIGxvcCBDVCANCkNhbWJyaWRnZSBsYSAxNTAgVVNEL3RoYW5nLCB0dWFuIGhvYyA2IHRpZXQg dm9pIGdpYW8gdmllbiBuZ3VvaSBudW9jIG5nb2FpIGRvIERIIA0KQ2FtYnJpZGdlIGNoaSBkaW5o LiBDdW5nIHZvaSBzdSBjaGVuaCBsZWNoIGhvYyBwaGksIHNpIHNvIG8gY2FjIGxvcCBuYXkgY3Vu ZyBraGFjIG5oYXUgDQpkYW5nIGtlLiBMb3AgVEEgdHUgY2hvbiBzaSBzbyB0dSA0NSBIUyB0cm8g bGVuLCBUQ1RBIGxhIDM1IC0gNDAgSFMsIGNvbiBsb3AgQ1QgDQpDYW1icmlkZ2UgY2hpIDI3LTI4 IEhTL2xvcC4gDQoNCkhTIGNvIGNhbSBnaWFjIGJpIGRvaSB4dSBraG9uZyBjb25nIGJhbmcgDQoN CiJNdW9uIGFwIGR1bmcgbW90IG1vIGhpbmggbW9pIHBoYWkgdG8gY2h1YyB0aGkgZGllbSBuaHVu ZyBwaGFpIGNvIHRob2kgaGFuIGRlIA0KY2h1eWVuIHNhbmcgbW90IGdpYWkgZG9hbiBtb2kgY2h1 IGtob25nIHRoZSB0aGkgZGllbSBoYW5nIGNodWMgbmFtIHRyb2kuIFZpZWMgbmF5IGFuaCANCmh1 b25nIHJhdCBsb24gZGVuIHRhbSBseSBjdWEgY2EgSFMgdmEgZ2lhbyB2aWVuLiBEb2kgdm9pIGdp YW8gdmllbiwgZGkgZGF5IG1hIGtob25nIGJpZXQgDQpzYW5nIG5hbSBjbyB0aWVwIHR1YyBkYXkg bW9uIG5heSBraG9uZywga2hpIGRvLCB0YW0gbHkga2hvbmcgYW4gdGFtIHNlIGRhbiBkZW4ga2hv bmcgDQpjaHUgdGFtIGRhdSB0dSBnaWFvIGFuIGxhdSBkYWksIGtob25nIHRvYW4gdGFtIHRvYW4g eSBjaG8gY29uZyB2aWVjIGhpZW4gdGFpLiBEb2kgdm9pIEhTIA0KY3VuZyB2YXksIG5hbSBuYXkg ZHVvYyBob2Mgbmh1bmcgY2h1YSBiaWV0IHNhbmcgbmFtIGNvIHRpZXAgdHVjIGhvYyBudWEga2hv bmcuIEhvbiANCm51YSwgY2FjIG1vbiBob2MgdGhpIGRpZW0gdGh1b25nIGtob25nIGR1b2MgdGlu aCB0cm9uZyBkaWVtIGNoaW5oIGtob2EgbmVuIEhTIA0KdGh1b25nIGl0IGNodSB0YW0gZGF1IHR1 LiBDaHUga3kgdGhpIGRpZW0gY2hvIDEgQ1QgaG9jIHRodW9uZyBsYSAzIG5hbSwgc2F1IGRvIHBo YWkgY28gDQp0b25nIGtldCwgZGFuaCBnaWEuIE5ldSBjaHVhIGhvYW4gdGhpZW4gc2UgZGUgcmEg bmh1bmcgZGlldSBjaGluaCB2YSB0aWVwIHR1YyB0aHVjIGhpZW4gDQp0aGkgZGllbSB0aGVtIDEg bmFtIG51YSwgdHV5IG5oaWVuIGtob25nIHRoZSBrZW8gZGFpIHF1YSA1IG5hbS4gDQoNClZpZWMg dG9uIHRhaSBjdW5nIGx1YyAzIGNodW9uZyB0cmluaCB0cm9uZyBjdW5nIDEgdHJ1b25nIGhvYyB2 b2kgc3Uga2hhYyBiaWV0IHZlIGhvYyBwaGksIA0Kc2kgc28gbG9wLCBDVCBob2MgdmUgbWF0IHRh bSBseSBnaWFvIGR1YyBzZSBnYXkgYW5oIGh1b25nIGxvbiBkZW4gc3UgcGhhdCB0cmllbiB0YW0g bHkgDQpjdWEgSFMsIG5oYXQgbGEgbyBsdWEgdHVvaSB0aWV1IGhvYy4gQ2FjIGVtIHNlIGNvIGNh bSBnaWFjLCBjbyBzdXkgbmdoaSBoaW5oIG5odSBtaW5oIA0KZGFuZyBiaSBkb2kgeHUga2hvbmcg Y29uZyBiYW5nIHZvaSBjYWMgYmFuIGtoYWMuIiAtIFRoYWMgc2kgQnVpIFRoaSBUb2FuLCBUcnVv bmcgYm8gDQptb24gVGFtIGx5IGhvYyB0cnVvbmcgREggU2FpIEdvbiBiYXkgdG8uIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDgyMzQ3MTAu YXNweCBEYW5nIE5ndXllbiAtIE1pbmggRHVuZyBUaHV5IE5nYW4gIDA4LzEwLzIwMTAgMjM6NDcg DQoNClRQIEhDTTogQ2FuIHF1YW4gbHkgZGUgY2hvbmcgbHVhIGRhbyBkdSBob2MgIA0KDQpTYXUg a2hpIFRoYW5oIE5pZW4gZGFuZyBsb2F0IGJhaSBUaHVjIGh1IGR1IGhvYyBkaW5oIGN1LCBuaGll dSBiYW4gZG9jIGxpZW4gbGFjIGN1bmcgDQpjYXAgdGhlbSB0aG9uZyB0aW4uIFRyb25nIHNvIGRv LCBjbyB2dSB2aWVjIG1hbmcgZGF1IGhpZXUgbHVhIGRhbyBuaHVuZyBuZ3VvaSBtdW9uIA0KZGlu aCBjdSBiYW5nIGNvbiBkdW9uZyBkdSBob2MuIA0KDQpEb25nIDMuMDAwIFVTRCwgMiBuYW0gY2h1 YSBkdW9jIHBob25nIHZhbiANCg0KVGllcCB4dWMgdm9pIHBob25nIHZpZW4gVGhhbmggTmllbiwg Y28gSC5OZyAodGh1b25nIHRydSB0YWkgdGluaCBWaW5oIExvbmcpIGNobyBiaWV0OiANClZhbyBr aG9hbmcgdGhhbmcgMy4yMDA4LCBxdWEgbmd1b2kgcXVlbiwgY28gTmcuIGR1b2MgZ2lvaSB0aGll dSBkZW4gQ29uZyB0eSBkdSBob2MgDQpUaGFpIC0gT1NUIChjaGkgbmhhbmggNDQyIE5ndXllbiBU cmkgUGh1b25nLCBRLjEwLCBUUC5IQ00pLiBUYWkgZGF5LCBiYSBQaGFtIFRoaSANClF1eW5oIE5o dSAtIFBobyBnaWFtIGRvYyBjb25nIHR5LCBkYSB0dSB2YW4gTmcuIGxhbSBobyBzbyBkdSBob2Mg dGFpIE15IHZhIGh1YSBoZW4gDQpzYXUga2hpIHJhIHRydW9uZyBsYW0gdmllYyB0aGkgY28gdGhl IHhpbiBkdW9jIGRpbmggY3UuIA0KDQpCYSBOaHUgdHUgdmFuIHJhbmcgTmcuIHBoYWkgbm9wIGhv IHNvIHRydW9jIGJhbyBnb20gbW90IHNvIGdpYXkgdG8gY2FuIHRoaWV0IG5odSBob2MgDQpiYSwg YmFuZyB0b3QgbmdoaWVwIFRIUFQsIGJhbmcgZGllbS4uLiBkZSB4aW4gdGh1IG1vaSBuaGFwIGhv Yy4gVHJ1b2MgdGllbiwgTmcuIHBoYWkgDQpub3Aga2hvYW4gdGllbiA1MDAgVVNEIGdvaSBsYSBw aGkgaGFuaCBjaGluaCBkb3QgMS4gU2F1IGRvLCBOZy4gdGllcCB0dWMgZHVvYyB5ZXUgY2F1IA0K bm9wIHRoZW0gMi41MDAgVVNEIGRlIGxvIGNhYyB0aHUgdHVjLCBnaWF5IHRvIHBob25nIHZhbiBk ZSB4dWF0IGNhbmggKGdvaSBsYSBwaGkgaGFuaCANCmNoaW5oIGRvdCAyKS4gQmEgTmh1IGh1YSBy YW5nIG5ldSBraG9uZyB4aW4gZHVvYyB0aGkgdGh1YywgY29uZyB0eSBzZSB0cmEgdGllbiBsYWku IFNhdSANCmtoaSBub3AgZGF5IGR1IGdpYXkgdG8sIHRpZW4gYmFjLCBkZW4gbmF5LCBzYXUgaG9u IDIgbmFtLCBOZy4gdmFuIGNodWEgZHVvYyBnb2kgcGhvbmcgDQp2YW4gbGFuIG5hby4gDQoNClRo ZW8gdGhvbmcgdGluIHR1IFNvIEtlIGhvYWNoIC0gRGF1IHR1IFRQLkhDTSwgQ29uZyB0eSBPU1Qg ZHVvYyBkYW5nIGt5IGR1b2kgdGVuIA0KQ29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAo ZGlhIGNoaSAzNi8xQiBMYW0gU29uLCBQLjYsIFEuQmluaCBUaGFuaCksIG9uZyANClRyYW4gVGFu IFRoYWkgbGEgZ2lhbSBkb2MuIENvbmcgdHkgbmF5IHRob25nIGJhbyBnaWFpIHRoZSBuZ2F5IDku My4yMDEwLiBDb24gY2hpIG5oYW5oIA0KQ29uZyB0eSBUTkhIIHR1IHZhbiBkdSBob2MgVGhhaSAo dGFpIDQ0MiBOZ3V5ZW4gVHJpIFBodW9uZywgUS4xMCkgY3VuZyBkYSBnaWFpIHRoZSANCm5nYXkg MjkuMTIuMjAwOS4NCg0KVHJ1b25nIGhvcCBjdWEgTmcuIGtob25nIHBoYWkgbGEgY2EgYmlldC4g VHJvbmcgY3VuZyBraG9hbmcgdGhvaSBnaWFuIHR1IGRhdSBuYW0gMjAwOCANCmRlbiBraG9hbmcg dGhhbmcgNy4yMDA5LCBuaGlldSBuZ3VvaSB0aW0gZGVuIENvbmcgdHkgT1NUIHZhIGN1bmcgZHVv YyB0dSB2YW4gY3VuZyBtb3QgDQpub2kgZHVuZy4gRGEgc28gY2FjIG5hbiBuaGFuIG5heSBkZXUg Y2hvIGJpZXQgcGhhaSBkb25nIGhldCAyLjcwMCBVU0QgKHRydW9uZyBob3AgDQpjaGkgTmcuIGxh IDMuMDAwIFVTRCAtIFBWKSBwaGkgaGFuaCBjaGluaCB2YSB0aHUgdHVjLiBUaGFtIGNoaSBjbyBu Z3VvaSBjb24gZG9uZyANCmtob2FuZyAzLjUwMCAtIDQuMDAwIFVTRCBwaGkgbmF5LiBUaGVvIHF1 eSBkaW5oIGN1YSBjb25nIHR5LCBuZ29haSBwaGkgaGFuaCBjaGluaCAoc2UgDQpraG9uZyBkdW9j IHRyYSBsYWkgdm9pIGJhdCBjdSBseSBkbyBuYW8pIHZhIGNhYyBjaGkgcGhpIHhpbiB0aGkgdGh1 Yywgbmh1bmcgbmd1b2kgbm9wIGhvIA0Kc28gY29uIHBoYWkgZG9uZyB0aGVtIHR1IDQuODAwIC0g Ni4wMDAgVVNEIHBoaSBkaWNoIHZ1IG5ldSBsYXkgZHVvYyB0aGkgdGh1Yy4gDQoNClRoZW8gaG8g c28gdGFpIENvIHF1YW4gQ2FuaCBzYXQgZGlldSB0cmEgQ29uZyBhbiBRLjEwIChUUC5IQ00pLCBj byBnYW4gMjAgbmd1b2kgZGEgDQpndWkgZG9uIHRvIGNhbyB2ZSB2aWVjIGJpIGx1YSBkYW8ga2hp IGRhbmcga3kgZHUgaG9jIHRhaSBDb25nIHR5IE9TVC4gRGF5IGxhIGNvbmcgdHkgZG8gDQpvbmcg VHJhbiBUYW4gVGhhaSBkdW5nIHRlbiBkb25nIHRob2kgbGEgZ2lhbSBkb2MuIA0KDQpMYXkgdGll biB4b25nLCBjb25nIHR5IGdpYWkgdGhlDQoNCk5odW5nIHRpbmggdGlldCBzYXUgbmF5IG1hIGNh YyBuYW4gbmhhbiB0byBjYW8gZGVuIGNvIHF1YW4gY2FuaCBzYXQgZGlldSB0cmEgZGV1IGtoYSAN Cmdpb25nIG5oYXUuIFRoZW8gZG8sIHNhdSBtb3QgdGhvaSBnaWFuIGRhaSBraG9uZyB0aGF5IHRp biB0dWMgKGtob2FuZyAyIG5hbSksIG5odW5nIA0Kbmd1b2kgbmF5IGxpZW4gbGFjIHZvaSBiYSBO aHUgZGUgaG9pIGNobyBybyB2YW4gZGUuIEhvYWMgbmh1bmcgbmd1b2kgZGEgZGkgcGhvbmcgdmFu IA0KdGFpIExhbmggc3UgcXVhbiBNeSBuaHVuZyBuaGlldSBsYW4ga2hvbmcgbmhhbiBkdW9jIHRo aSB0aHVjLCBkYSB0aW0gZGVuIGNvbmcgdHkgZGUgDQpydXQgbGFpIHRpZW4uIFR1IGRheSwgbW9p IGNodXllbiBiYXQgZGF1IHZvIGxvLg0KDQpDaGkgTi4gLSBtb3Qgbmd1b2kgZGFuZyBreSBsYW0g dGh1IHR1YyBkdSBob2MgdGFpIENvbmcgdHkgT1NULCBrZSBsYWk6ICJLaGkgbW9pIG5ndW9pIA0K Z29pIGRpZW4gY2hvIGJhIE5odSwgYmEgdGEgY2hvIGJpZXQgbXVvbiBnaWFpIHF1eWV0IHRoaSBs ZW4gY29uZyB0eSBnYXAgb25nIFRoYWkgLSBnaWFtIA0KZG9jLiBOaHVuZyBDb25nIHR5IE9TVCBk YSBraG9uZyBjb24gaG9hdCBkb25nIHRhaSBkaWEgY2hpIGN1IHZpIGhpZW4gbmF5IG5vaSBkYXkg bGEgDQptb3QgbmhhIGhhbmcgeWVuIHNhbyEgRGVuIGx1YyBjaHVuZyB0b2kgdGltIGRlbiBuaGEg b25nIFRoYWkgdGhpIG5ndW9pIG5oYSBjaG8gYmlldCANCkNvbmcgdHkgT1NUIGRhIGdpYWkgdGhl LCBtb2kgdmllYyBoYXkgbGllbiBsYWMgdm9pIGJhIE5odS4uLiIuDQoNClRpbmggdHJhbmcgZHVu IGRheSB0cmFjaCBuaGllbSBuYXkga2VvIGRhaSByYXQgbGF1IHZhIGNhIGJhIE5odSwgb25nIFRo YWkgaGllbiBuYXkgZGV1IA0KbGFuIHRyb24gbmh1bmcgbmd1b2kgbGFtIHRodSB0dWMgZHUgaG9j LiBUcm9uZyBraGkgZG8sIGhvYyBiYSBjaGluaCwgZ2lheSB0byBuaGEgZGF0Li4uIA0KZGV1IG5h bSB0cm9uZyB0YXkgYmEgTmh1IGtoaWVuIG5odW5nIG5ndW9pIG5vcCBkb24geGluIGR1IGhvYyBk ZXUgcmF0IGtobyBraGFuIHRyb25nIA0KdmllYyB4b2F5IHhvIG5odW5nIGNvbmcgdmllYyBraGFj LiBUaGFtIGNoaSwgQ29uZyB0eSBPU1QgY29uIGxhbSBtYXQgaG8gY2hpZXUgY3VhIA0KY2hpIE5n LiBuaHVuZyBraGkgbGllbiBsYWMsIGJhIE5odSBraG9uZyBjaGl1IGJvaSB0aHVvbmcgbWEgY29u IGxvbiB0aWVuZyB0aGFjaCB0aHVjIA0KY2hpIE5nLiBkaSB0byBjYW8uIA0KDQpUdSBraGkgY2Fj IG5hbiBuaGFuIGd1aSBkb24gdG8gY2FvIGNobyBkZW4gbmF5LCBjbyBxdWFuIGNhbmggc2F0IGRp ZXUgdHJhIGRhIGxheSBsb2kga2hhaSANCmN1YSBjYWMgbmFuIG5oYW4sIGN1bmcgbHVjIHRyaWV1 IHRhcCBiYSBOaHUsIG9uZyBUaGFpIGNhIHRoYXkgMyBsYW4gbmh1bmcgY2h1YSBsYW4gbmFvIDIg DQpuZ3VvaSBuYXkgY28gbWF0ICghKS4gDQoNCkR1IGhvYyBjaHVhIGNoYWMgY28gdGhlIGRpbmgg Y3UNCg0KTGllbiBxdWFuIGRlbiBuaHVuZyB2YW4gZGUgeGluIHRoaSB0aHVjIGR1IGhvYyB2YSBk aW5oIGN1IHRhaSBVYywgQ2FuYWRhLCBkYWkgZGllbiAyIA0KbnVvYyBuYXkgZGEgY28gbmh1bmcg Z2lhaSB0aGljaCBybyByYW5nLiANCg0KVHJhIGxvaSBjYXUgaG9pIFVjIGNvIGNoaW5oIHNhY2gg bmhhcCBjdSBkYW5oIGNobyBkdSBob2Mgc2luaCBuaHUgdGhlIG5hbywgZGFpIGRpZW4gVmFuIA0K cGhvbmcgVGhpIHRodWMgdmEgUXVvYyB0aWNoIFRvbmcgbGFuaCBzdSBxdWFuIFVjIFRQLkhDTSBj aG8gYmlldDogDQpDbyBuaGlldSBkdSBob2Mgc2luaCBxdXlldCBkaW5oIG5vcCBobyBzbyB4aW4g ZGluaCBjdSB0YWkgVWMgc2F1IGtoaSBkYSBob2FuIHRhdCBraG9hIA0KaG9jLiBEYXkgbGEgbW90 IHF1eSB0cmluaCBob2FuIHRvYW4gcmllbmcgYmlldCwgdmEga2hvbmcgY28gc3UgYmFvIGRhbSBu YW8gdmUgdmllYyBtb3QgDQpraGkgY28gZHVvYyB0aGkgdGh1YyBkdSBob2MgdGhpIGR1IGhvYyBz aW5oIHNlIGhvaSBkdSB0YXQgY2EgY2FjIGRpZXUga2llbiBkZSBkdW9jIGNoYXAgDQp0aHVhbiBk aW5oIGN1LiANCg0KRGluaCBjdSB0aGVvIGRpZW4gY28gdGF5IG5naGUgKEdlbmVyYWwgU2tpbGxl ZCBNaWdyYXRpb24pIHBodSB0aHVvYyBjaHUgeWV1IHZhbyBuaHUgDQpjYXUgY3VhIHRoaSB0cnVv bmcgbGFvIGRvbmcgVWMuIFRpZXUgY2h1YW4gZGUgZHVvYyBjYXAgdGhpIHRodWMgZGluaCBjdSB0 aGVvIGRpZW4gY28gdGF5IA0KbmdoZSBjbyB0aGUgdGhheSBkb2kgZGUgZGFwIHVuZyB2b2kgaG9h biBjYW5oIGtpbmggdGUgY3VhIFVjLiBUYXQgY2EgZHVvbmcgZG9uIHhpbiB0aGkgDQp0aHVjIGRp bmggY3UgdGhlbyBkaWVuIGNvIHRheSBuZ2hlIGRldSBwaGFpIGRhcCB1bmcgZGF5IGR1IG5odW5n IHRpZXUgY2h1YW4gcGh1IGhvcCBkZSANCnJhIHRyb25nIEx1YXQgRGkgdHJ1IFVjLCBraG9uZyBr ZSBkdW9uZyBkb24gZG8gdHJ1b2MgZGF5IGRhIHR1bmcgbyBVYyBoYXkgY2h1YS4gRGlldSANCnF1 YW4gdHJvbmcgbWEgbmh1bmcgbmd1b2kgbWFuZyB0aGkgdGh1YyBkdSBob2MgY2FuIGx1dSB5IGxh IGJhdCBjdSBzdSB0aGF5IGRvaSBuYW8gDQp0cm9uZyB0aWV1IGNodWFuIGNhcCB0aGkgdGh1YyBk aW5oIGN1IHRoZW8gZGllbiBjbyB0YXkgbmdoZSBzZSBraG9uZyBhbmggaHVvbmcgZGVuIA0Kbmh1 bmcgZGlldSBraWVuIGN1YSB0aGkgdGh1YyBkdSBob2MuIA0KDQpEdSBob2Mgc2luaCBraG9uZyBu ZW4gY28gcXV5ZXQgZGluaCBjaG9uIGx1YSBuZ2FuaCBob2MgY2hpIHZvaSBoeSB2b25nIGRhdCBk dW9jIG11YyANCmRpY2ggZGluaCBjdSwgYm9pIHZpIGNodW9uZyB0cmluaCBkaW5oIGN1IHRoZW8g ZGllbiBjbyB0YXkgbmdoZSBzZSB0aWVwIHR1YyB0aGF5IGRvaSB2YSANCmRpZXUgY2hpbmggZGUg cGh1IGhvcCB2b2kgbmh1IGNhdSBjdWEgbmVuIGtpbmggdGUgVWMuIA0KDQpUaG9uZyB0aW4gY2hp IHRpZXQgdmUgbmh1bmcgeWV1IGNhdSBjdWEgdGhpIHRodWMgZGluaCBjdSB0aGVvIGRpZW4gY28g dGF5IG5naGUgY28gdHJlbiANCnRyYW5nIHdlYiBjdWEgQm8gTmhhcCBjdSB2YSBRdW9jIHRpY2gg KERJQUMpIHRhaSBkaWEgY2hpOiBodHRwOi8vd3d3LmltbWkuZ292LmF1L3NraWxsZWQvZ2VuZXJh bC1za2lsbGVkLW1pZ3JhdGlvbi8uDQoNCktoaSBkdSBob2Mgc2luaCBjbyB5IGRpbmggeGluIHRo aSB0aHVjIGR1IGhvYyBkZSBkaW5oIGN1IG8gQ2FuYWRhLCBjYW4gcGhhaSBsdXUgeSBuaHVuZyAN CmRpZXUgc2F1OiANCg0KTmd1b2kgY28gdGhpIHRodWMgZHUgaG9jIGJhdCBidW9jIHBoYWkgdmUg bnVvYyBraGkgaGV0IGt5IGhhbiBjaG8gcGhlcCAodGhvbmcgdGh1b25nIA0KdGhlbyBkdW5nIHRo b2kgaGFuIGhvYW4gdGhhbmggY2h1b25nIHRyaW5oIGhvYykgdmEgaG8gcGhhaSBjYW0ga2V0IHR1 YW4gdGh1IGRpZXUga2llbiANCm5heSBraGkgbm9wIGRvbiB4aW4gdGhpIHRodWMgZHUgaG9jLiBT aW5oIHZpZW4gbnVvYyBuZ29haSBjbyB0aGUgdGhhbSBnaWEgbW90IHNvIGNodW9uZyANCnRyaW5o IGN1YSBDaGluaCBwaHUgQ2FuYWRhIGNobyBwaGVwIGhvIG8gbGFpIHZhIGxhbSB2aWVjIHRhaSBD YW5hZGEgc2F1IGtoaSBob2FuIHRoYW5oIA0KY2h1b25nIHRyaW5oIGhvYywgdmEgdHJvbmcgbW90 IHNvIHRydW9uZyBob3AsIHNhdSBtb3QgdGhvaSBnaWFuIGhvIG5vcCBkb24geGluIGRpbmggY3Uu IA0KTmV1IGtob25nIGR1IGRpZXUga2llbiBkYXAgdW5nIG5odW5nIGNodW9uZyB0cmluaCBuaHUg dmF5LCBzaW5oIHZpZW4gbnVvYyBuZ29haSBiYXQgDQpidW9jIHBoYWkgcm9pIGtob2kgQ2FuYWRh IGtoaSBoZXQgaGFuIHRoaSB0aHVjIGR1IGhvYy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxNTAwMjcyMC5hc3B4IERhbmcgTmd1eWVuIDE1 LzA5LzIwMTAgMDoyNyAgDQoNClRQIEhDTTogVGh1YyBodSAiZHUgaG9jIGRpbmggY3UiICANCiAg DQpEZSBjYW5oIHRyYW5oIHZhIHRodSBodXQgbmd1b2kgaG9jLCB0aG9pIGdpYW4gZ2FuIGRheSwg bmhpZXUgY29uZyB0eSBkdSBob2MgZHVhIHJhIGNoaWV1IA0KcXVhbmcgY2FvIG1vaTogIkR1IGhv YyBkZSBkaW5oIGN1IiEgDQoNCi0gQ29uZyB0eSBkdSBob2MgRHVjIFR1IChRLjEwIFRQLkhDTSkg aHVhIGhlbiB4aW4gdmlzYSBxdWEgTXkgZGluaCBjdSB0dSBTaW5nYXBvcmUgDQpjaG8gbmd1b2kg aG9jOyAgaG9jIHRhaSBTaW5nYXBvcmUsIGxhbSB2aWVjIHZhIGRpbmggY3UgdGFpIE15IHZvaSBj aHVvbmcgdHJpbmggaG9jIHZhIA0KbGFtIHkgdGEgY2hpIHBoaSBjdWEgY2h1b25nIHRyaW5oIG5h eSBsYSAxNC45MDAgVVNEOw0KDQotIENvbmcgdHkgSGllcCBBIC0gbW90IGNvbmcgdHkgY2h1eWVu IHZlIHRodW9uZyBtYWkgeGF5IGR1bmcgKFEuVGFuIEJpbmgsIFRQLkhDTSkgDQpub2kgY2FuIHR1 eWVuIHNpbmggbmdhbmggRHVvYyBzYW5nIE15IGhvYyB2YSBkdW9jIGRpbmggY3Ugc2F1IGJhIG5h bSAobHV1IHk6IGJhbyB0cm9uIA0KZ29pIHZhIGJhbyBuZ2hlKS4gVHJvbiBnb2kgY2hvIG1vaSB0 aHUgdHVjIGxhIDM1MDAwIFVTRCIsICAidGhlIHhhbmgiIGR1b2MgY2FtIGRvYW4gDQpzZSBkdW9j IGNhcCBzYXUga2hvYW5nIDQgdGhhbmcgbyBNeS4NCg0KLSBWZSBjaHVvbmcgdHJpbmggRGlyZWN0 IE51cnNlLCBoaWVuIG5heSBjdW5nIGNvIENvbmcgdHkgY28gcGhhbiBkYXUgdHUgTmd1b24gbmhh biB0YWkgDQpxdW9jIHRlIGNoYXUgQSAoQUlUUkkpIHJhbyB0dXllbiBzaW5oLiBWZSBob2MgcGhp LCBob2MgYm9uZywgdXUgZGFpLCBodWEgaGVuLi4uIGN1YSANCmNodW9uZyB0cmluaCwgY29uZyB0 eSBuYXkgZ2lvaSB0aGlldSBjdW5nIHR1b25nIHR1IG5odSBDb25nIHR5IGR1IGhvYyBEdWMgVHUu IA0KDQpCbyBwaGFuIHZpc2EgY3VhIExhbmggc3UgcXVhbiBNeSB0YWkgVFAuSENNIGtoYW5nIGRp bmg6ICJDYWMgY29uZyB0eSB0dSBuaGFuIHh1YyANCnRpZW4gY2FjIGNodW9uZyB0cmluaCBkdSBo b2MgdGFpIE15IGtob25nIHRoZSBkYW0gYmFvIHZpZWMgY2FwIHZpc2EgbGFtIHZpZWMgaGF5IGRp bmggDQpjdSBzYXUga2hpIGhvYW4gdGF0IGtob2EgaG9jLiBDYWMgbG9haSB2aXNhIG5heSBwaGFp IGR1b2MgY2hhcCB0aHVhbiBib2kgQ2hpbmggcGh1IE15IA0KdmEgY28gZ2lvaSBoYW4gdmUgc28g bHVvbmcuIENhYyBkdW9uZyBkb24geGluIHZpc2Egc2luaCB2aWVuIChTVikgcGhhaSBjaHVuZyB0 byBkdW9jIDMgDQpkaWV1OiBsYSBuaHVuZyBTViBkaWNoIHRodWMsIHBoYWkgY28ga2hhIG5hbmcg Y2hpIHRyYSBjaG8gcXVhIHRyaW5oIGhvYyB0YXAgdmEgY28ga2UgDQpob2FjaCB0cm8gdmUgVk4u IE5ldSBTViBraG9uZyB0aGUgdGh1eWV0IHBodWMgZHVvYyB2aWVuIGNodWMgbGFuaCBzdSB2ZSBi YXQga3kgdmFuIGRlIA0KbmFvIHRyb25nIDMgZGlldSBuYXksIHRoZW8gcXV5IGRpbmggY3VhIGx1 YXQgcGhhcCBNeSwgdGhpIHZpZW4gY2h1YyBsYW5oIHN1IGtob25nIHRoZSANCmNhcCB2aXNhIGNo byBuZ3VvaSBkbyIuIA0KDQpUcm9uZyBraGkgQm8gcGhhbiB2aXNhIGN1YSBMYW5oIHN1IHF1YW4g TXkgdGFpIFRQLkhDTSBkYSBraGFuZyBkaW5oIG5odSB2YXksIG5oaWV1IA0KY29uZyB0eSBkdSBo b2MgdmFuIGNhbSBkb2FuICJkYW0gYmFvIHhpbiBkdW9jIHZpc2EiLg0KDQooVHJ1bmcgdGFtIHR1 IHZhbiBnaWFvIGR1YyBNeSAoRWR1Y2F0aW9uVVNBKSBkYSBjbyB0YWkgSGEgTm9pIHZhbyBuZ2F5 IDEzLjkgdmEgdHJ1b2MgDQpkbywgbmdheSA1LjggdGFpIFRQLkhDTTsgbGEgbmd1b24gdGhvbmcg dGluIGNoaW5oIHRodWMgY3VhIENoaW5oIHBodSBNeSB2ZSBkdSBob2MgdGFpIA0KTXkgdmEgY3Vu ZyBjYXAgdGhvbmcgdGluIG1pZW4gcGhpLCBjaGluaCB4YWMsIGtob25nIHRoaWVuIHZpIHZlIGNh YyBjbyBob2kgaG9jIHRhcCBjaG8gDQpTViB2YSBwaHUgaHV5bmggVmlldCBOYW0uIA0KTmdvYWkg cmEsIEJvIHBoYW4gdmlzYSBjdWEgTGFuaCBzdSBxdWFuIE15IHRhaSBUUC5IQ00gY3VuZyBjaG8g YmlldCBtb3Qgc28gdHJ1bmcgDQp0YW0gdHUgdmFuIGR1IGhvYyB0aGluaCB0aG9hbmcgY28gdGh1 IHBoaSBraGkgY3VuZyBjYXAgdGhvbmcgdGluIGNobyBTVi4gTmh1bmcgdGhvbmcgDQp0aW4gdmUg dmlzYSBkYSBjbyB0cmVuIHRyYW5nIHdlYiBodHRwOi8vaG9jaGltaW5oLnVzY29uc3VsYXRlLmdv di9zdHVkZW50L3Zpc2EuaHRtbC4gU1YgDQpraG9uZyBjYW4gcGhhaSB0cmEgdGllbiBjaG8gbmh1 bmcgdGhvbmcgdGluIHZlIHZpc2EgbWEgY2FjIHRydW5nIHRhbSB0dSB2YW4gY3VuZyBjYXAgdmkg DQpuaHVuZyB0aG9uZyB0aW4gbmF5IGR1b2MgdG9uZyBsYW5oIHN1IGN1bmcgY2FwIG1pZW4gcGhp IHRyZW4gd2Vic2l0ZSkgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTAzNy8yMDEwMDkwNjIzMDYxNC5hc3B4IERhbmcgTmd1eWVuIC0gVGhpZW4gTG9uZyAwNi8w OS8yMDEwIDIzOjA2IA0KDQpUUCBIQ006IEhvYyBwaGkgdGFuZywgY2hhdCBsdW9uZyBjaHVhIHRh bmcgLSBUaGlldSBodXQgdHJhbSB0cm9uZyBnaWFuZyB2aWVuIA0KDQpCYWkgdG9hbiB2ZSBob2Mg cGhpIChIUCkgdmEgY2hhdCBsdW9uZyBjYW5nIHRoYW5nIG5oYXQga2hpIHhldCBkZW4geWV1IHRv IG5oYW4gbHVjLiBMdWMgDQpsdW9uZyBnaWFuZyB2aWVuIGJhYyBESC1DRCBjaHVhIGR1IG1hbmgg a2hpZW4gbG8gdHJpbmggSFAgZGkgY3VuZyBjaGF0IGx1b25nIGtob25nIA0KYmlldCBiYW8gZ2lv IG1vaSBzb20gc29uZyBoYW5oLiANCg0KNjQgc2luaCB2aWVuL2dpYW5nIHZpZW4gDQoNClRoZW8g YmFvIGNhbyBjdWEgVXkgYmFuIFRodW9uZyB2dSAoVUJUVikgUXVvYyBob2kgdHJvbmcgY2h1eWVu IGtoYW8gc2F0IGRhdSBuYW0gDQoyMDEwIHRhaSBjYWMgdHJ1b25nIERILCB0dSBuYW0gMTk4NyBk ZW4gMjAwOSBzbyBzaW5oIHZpZW4gKFNWKSB0cmVuIGNhIG51b2MgdGFuZyAxMyANCmxhbiBuaHVu ZyBzbyBnaWFuZyB2aWVuIChHVikgY2hpIHRhbmcgMyBsYW4sIGRvIGRvIHR5IGxlIFNWL0dWIHF1 YSBjYW8gc28gdm9pIHF1eSBkaW5oLiANCkJvIEdELURUIHF1eSBkaW5oIDI4IFNWL0dWIG5odW5n IG8gbmhpZXUgdHJ1b25nLCB0eSBsZSBuYXkgbGVuIHRvaSA0MCwgdGhhbSBjaGkgY28gDQp0cnVv bmcgZGVuIHRyZW4gNjAuIA0KDQpUcm9uZyBtb3QgbGFuIHZlIHRoYW0gdHJ1b25nIERIIENvbmcg bmdoaWVwIFRQLkhDTSwgUGhvIHRodSB0dW9uZyBOZ3V5ZW4gVGhpZW4gDQpOaGFuIGRhdCB2YW4g ZGU6ICJMYW0gc2FvIGRlIGRhbSBiYW8gY2hhdCBsdW9uZyBkYW8gdGFvIGtoaSBkb2kgbmd1IEdW IHF1YSBtb25nIHNvIA0Kdm9pIHNvIGx1b25nIFNWPyBEZSBwaGF0IHRyaWVuIGRvaSBuZ3UgR1Yg dGhpIHJhdCBraG8sIG5odW5nIGRlIHBoYXQgdHJpZW4gc28gbHVvbmcgU1YgDQp0aGkgZGUiLiBQ aG8gdGh1IHR1b25nIGNvbiBiYW4ga2hvYW4gdmUgdHkgbGUgU1YvR1YgY3VhIHRydW9uZywgdGlu aCB0cnVuZyBiaW5oIG1vaSBHViANCmtlbSBnYW4gNDggU1YuIFRob2kgZGllbSBkbywgdHJ1b25n IERIIENvbmcgbmdoaWVwIFRQLkhDTSBjbyBob24gNTIuMDAwIFNWIGNhYyANCmhlIHZvaSAxLjUw MCBjYW4gYm8gdmllbiBjaHVjLCB0cm9uZyBkbyBHViBjbyBodXUgY28gMS4wODUgbmd1b2kuIENv IDEyIEdWIGxhICBHUywgDQpQR1MsIDExMCBHViBsYSAgVFMgdmEgbmdoaWVuIGN1dSBzaW5oIChO Q1MpLiBIaWVuIG5heSB0cnVvbmcgY28gdHJlbiA4MC4wMDAgU1YgdGhlbyANCmhvYyBjYWMgYmFj IGRhbyB0YW8gdm9pIDE1IEdTLCBQR1MsIDExMCBUUyB2YSBOQ1M7IDgwMCB0aGFjIHNpIHZhIGhv YyB2aWVuIGNhbyBob2MuIA0KTmh1IHZheSwgc2F1IDMgbmFtLCBzbyBTViBkYSB0YW5nIHZvdCBs ZW4gMjguMDAwIG5ndW9pIG5odW5nIHRydW9uZyBjaGkgdGhlbSBkdW9jIDMgDQpHViBjbyBob2Mg aGFtIEdTLCBQR1MsIGdpdSBuZ3V5ZW4gc28gbHVvbmcgR1YgY28gdHJpbmggZG8gVFMgdmEgTkNT LiBUcm9uZyBraGkgZG8sIA0KSFAgY3VhIERIIENvbmcgbmdoaWVwIFRQLkhDTSBkYSB0YW5nIHR1 IG11YyB0cnVuZyBiaW5oIDI1MC4wMDBkL3RoYW5nIChuYW0gMjAwNykgDQpsZW4gNDAwLjAwMGQv dGhhbmcgKG5hbSAyMDA5KSwgbHVvbiBjYW8gaG9uIG11YyBxdXkgZGluaCBraG9hbmcgMjUgLSAz MCUuIA0KDQpZIGtpZW46DQoNCkNhbiBjb25nIGtoYWkgdm9pIFNWDQoqICJUYW5nIEhQIHRoaSBw aGFpIHhldCBkZW4gbmhpZXUgbWF0LCB2YSBxdWFuIHRyb25nIGxhIHR1aSBlbSBjbyBkaWV1IGtp ZW4gaG9jIHRvdCBob24gDQpoYXkga2hvbmcuIFNhcCB0b2ksIFNWIG5nYW5oIFkgRHVvYyBwaGFp IGRvbmcgbXVjIHRyYW4gaG9jIHBoaSBjYW8gbmhhdC4gU28gbHVvbmcgDQpTViBsaWVuIHR1YyB0 YW5nLCB0dWkgZW0gdGh1YyB0YXAgdGFpIGNhYyBiZW5oIHZpZW4gdHJvbmcgdGluaCB0cmFuZyBx dWEgdGFpIGtlbyBkYWkgbWF5IA0KbmFtIG5heSBraG9uZyB0aGF5IGRvaS4gTmV1IHRhbmcgSFAs IG5oYSB0cnVvbmcgY3VuZyBwaGFpIHRoYXkgZG9pIG1vdCBzbyBxdXllbiBsb2kgDQp1dSB0aWVu IGNobyBTViIuIE5ndXllbiBUaGkgTXkgTG9hbiAoU1YgbmFtIDMga2hvYSBZIGRhIGtob2EsIERI IFkgRHVvYyAgVFAuSENNKSANCg0KKiAiS2hpIHRhbmcgSFAsIGNhaSBtYSBjaHVuZyBlbSBjYW4g bGEgdHJ1b25nIGNvbmcga2hhaSBjaGkgcGhpIGhvcCBseSwgY29uZyBibyBjaGllbiANCmx1b2Mg cGhhdCB0cmllbiwgbmhhdCBsYSBjaGF0IGx1b25nIGdpYW5nIGRheS4gSGllbiB0YWksIG5oaWV1 IGtoaSBlbSB2YSBjYWMgYmFuIHZhbiBjaHVhIA0KaGFpIGxvbmcgdmUgR1YuIEtoaSBHViBnaWFu ZywgcmF0IG5oaWV1IFNWIGtob25nIGhpZXUgZHVvYyIuIE5ndXllbiBUaGkgT2FuaCAoU1YgDQpu YW0gdGh1IDMga2hvYSBWYW4gaG9jIHZhIE5nb24gbmd1LCB0cnVvbmcgREggS2hvYSBob2MgeGEg aG9pIHZhIE5oYW4gdmFuIC0gREggDQpRdW9jIGdpYSBUUC5IQ00pIA0KDQpOaGlldSB0cnVvbmcg REgga2hhYyBjdW5nIHRyb25nIHRpbmggdHJhbmcgdHVvbmcgdHUuIFRoZW8gYmFvIGNhbyBjdWEg dHJ1b25nIERIIFNhaSANCkdvbiB2b2kgZG9hbiBraWVtIHRyYSBjdWEgVUJUViBRdW9jIGhvaSB2 YW8gdGhhbmcgMS4yMDEwLCB0cnVvbmcgY28ga2hvYW5nIDIyLjAwMCANClNWIHZvaSAzNzEgR1Yu IFR1eSBuaGllbiwgdGhlbyBiYW8gY2FvICJCYSBjb25nIGtoYWkiIChEaWV1IGtpZW4gZGFvIHRh bywgcXV5IG1vIGRhbyANCnRhbzsgTmd1b24gbHVjIChzbyBsdW9uZywgdHJpbmggZG8gZ2lhbyB2 aWVuKTsgVGFpIGNoaW5oIHRodSAtIGNoaSkgdHJlbiB3ZWJzaXRlIGN1YSANCnRydW9uZywgc28g bHVvbmcgR1YgY2hpIGNvICAzNDMgbmd1b2kgKGNodWEga2UgMTQxIEdWIHRoaW5oIGdpYW5nKSwg bmh1IHZheSwgdHkgbGUgDQpTVi9HViBsYSAgNjQvMS4gDQoNClRoaWV1IGdpYW5nIHZpZW4gY2hh dCBsdW9uZyBjYW8NCg0KVHJ1b2MgdGh1YyB0cmFuZyB0aGlldSBodXQgZG9pIG5ndSBHViwgY2Fj IHRydW9uZyBESCBwaGFpIGxpZW4gdHVjIHR1eWVuIG5ndW9pLiBUdSBuYW0gDQoyMDA3IGRlbiBu YXksIHRydW9uZyBESCBMdWF0IFRQLkhDTSBsdW9uIHRob25nIGJhbyB0dXllbiBkdW5nIEdWLiBH YW4gY3VvaSBuYW0gDQoyMDA5LCB0cnVvbmcgdGhvbmcgYmFvIHR1eWVuIGRlbiA0NSBHViBkYXkg Y2FjIG1vbiBjaHV5ZW4gbmdhbmguIE5nb2FpIGNhYyB1bmcgdmllbiANCmNvIGhvYyB2aSBUUywg dGhhYyBzaSBkdW9jIHV1IHRpZW4geGV0IHR1eWVuLCBjYWMgU1YgY3VhIHRydW9uZyBjaHVhIGR1 b2MgY2FwIGJhbmcgdG90IA0KbmdoaWVwLCBjbyB0aGUgbm9wIGdpYXkgY2h1bmcgbmhhbiB0b3Qg bmdoaWVwIHRhbSB0aG9pIGRlIHRoaSB0dXllbiBHVi4NCg0KTmh1bmcgdHJ1b25nIGNvIG1vIGNh YyBuZ2FuaCBtb2kgY2FuZyBwaGFpIGxpZW4gdHVjIHR1eWVuIEdWIGRlIGRhcCB1bmcgbmh1IGNh dSANCmdpYW5nIGRheS4gRG9uIGN1IG5odSB0aGFuZyA2IHZ1YSBxdWEsIGJvIG1vbiBEaWEgbHkg a2luaCB0ZSB2YSBQaGF0IHRyaWVuIHZ1bmcsIGtob2EgDQpEaWEgbHksIHRydW9uZyBESCBLaG9h IGhvYyB4YSBob2kgdmEgTmhhbiB2YW4gKERIIFF1b2MgZ2lhIFRQLkhDTSkgZGEgY28gdGhvbmcg DQpiYW8gdHV5ZW4gR1YuIA0KDQpUaHVjIHRyYW5nIG5heSBjb24gbmdoaWVtIHRyb25nIGhvbiBv IGNhYyB0cnVvbmcgREggdnVuZy4gQ2FjIHRydW9uZyBuaHUgREggVGllbiANCkdpYW5nLCBBbiBH aWFuZyBsaWVuIHR1YyBkYW5nIHR1eWVuIGR1bmcgR1YgY3VhIHJhdCBuaGlldSBuZ2FuaC4gDQoN Ck5nYXkgY2EgdHJ1b25nIGxvbiB2YSBjbyBkb2kgbmd1IEdWIHRyaW5oIGRvIGNhbyBuaHUgREgg S2hvYSBob2MgdHUgbmhpZW4gKERIIFF1b2MgDQpnaWEgVFAuSENNKSBjdW5nIHBoYWkgdGh1b25n IHh1eWVuIHRpbSB0aGVtIEdWLiBQR1MtVFMgRHVvbmcgQW5oIER1YywgUGhvIGhpZXUgDQp0cnVv bmcgdHJ1b25nLCBjaG8gYmlldDogIlRpbmggdGhlbyB0aWV1IGNoaSBjdWEgQm8gR0QtRFQgdmUg dHkgbGUgU1YvR1YgdGhpIHRydW9uZyANCmRhcCB1bmcgeWV1IGNhdSBuaHVuZyB2YW4gcGhhaSB0 dXllbiBsaWVuIHR1YyBkZSB0aHUgaHV0IHRoZW0gbmhhbiBsdWMgY2hhdCBsdW9uZyBjYW8uIA0K SGllbiBzbyBsdW9uZyBHViBjdWEgdHJ1b25nIGtob25nIHRoaWV1IG5oaWV1IG5odW5nIGNoYXQg bHVvbmcgdmFuIGNodWEgZGF0IHRhbSBjdWEgDQptb3QgdHJ1b25nIGNvIHRoZSBjYW5oIHRyYW5o IHZvaSB0aGUgZ2lvaSIuIE9uZyBEdWMgZ2lhaSB0aGljaCB0aGVtIHZlIGNoYXQgbHVvbmcgDQpk b2kgbmd1IEdWOiAiTyBuaGlldSB0cnVvbmcsIHNvIGx1b25nIEdWIGRhIHRhbmcgaG9uIHJhdCBu aGlldSBzbyB2b2kgMTAgbmFtIHRydW9jIA0Kbmh1bmcgY2hhdCBsdW9uZyB2YW4ga2hvbmcgdGFu ZyBkYW5nIGtlLiBUcm9uZyBraGkgZG8sIGNhYyBHViBkYXUgZGFuIHBoYW4gbG9uIGRhIG5naGkg aHV1Ii4NCg0KVGhlbyBiYW8gY2FvIGN1YSBVQlRWIFF1b2MgaG9pIGRhdSBuYW0gMjAxMCwgY2hp IGNvIDUwJSBHViBjYWMgdHJ1b25nIERIIGhpZW4gbmF5IGRhdCB0cmluaCBkbyBzYXUgREguIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzgvMjAxMDA5MTMw MDQ5MTkuYXNweCAxMy8wOS8yMDEwIDA6NDkgDQoNClRQIEhDTTogUGhhdCBzaW5oIDI2OSBkaWVt IG5nYXAgICANCiAgDQo1IG5hbSB2YSBoYW5nIHRyYW0gdHJpZXUgVVNEIGRhIGNoaSBjaG8gY2Fj IGR1IGFuIHRob2F0IG51b2Mgbmh1bmcgaGlldSBxdWEgY2hvbmcgbmdhcCB2YW4gY2h1YSB0aGF5 IC0gQW5oOiBEaWVwIER1YyBNaW5oIA0KDQpTYXUgNCAtIDUgbmFtIHRyaWVuIGtoYWkgaGFuZyBs b2F0IGR1IGFuIGNob25nIG5nYXAsIHRpbmggaGluaCBuZ2FwIG51b2MgY3VhIFRQLkhDTSANCmRl biBnaW8gdmFuIGNodWEgbWF5IHNhbmcgc3VhLiBEYW5nIGxvIG5nYWkgaG9uLCBkYSBwaGF0IHNp bmggdGhlbSBoYW5nIGxvYXQgdmFuIGRlIG5nb2FpIGR1IGtpZW4uLi4gDQpUaGVvIFRydW5nIHRh bSBEaWV1IGhhbmggY2h1b25nIHRyaW5oIGNob25nIG5nYXAgbnVvYyBUUC5IQ00sIHR1IGRhdSBu YW0gZGVuIG5heSANCmRhIGtpZW0gdHJhLCBwaGF0IGhpZW4gMjY5IHZpIHRyaSBjdWEgaGUgdGhv bmcgdGhvYXQgbnVvYyBiaSB4YW0gaGFpIGdheSBuZ2FwLg0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzYvMjAxMDA5MDUyMzExNDQuYXNweCBQaHVvbmcgVGhh bmggMDUvMDkvMjAxMCAyMzoxMSAgDQoNClRQIEhDTTogTmhhIHRoYXUgY29pIHRodW9uZyBwaGFw IGx1YXQgIA0KICANCihBbmggY2h1cDogTmhpZXUgbmhhIHRoYXUgdGhpIGNvbmcgYmUgYm9pLCBj YXUgdGhhIGdheSBhbmggaHVvbmcgZGVuIHZpZWMgZGkgbGFpIHZhIHNpbmggDQpob2F0IGN1YSBu Z3VvaSBkYW4gLSBBbmg6IFAuVCkNCg0KTmhhbiBkYW5oIE5oYSBudW9jIHRodWMgaGllbiBxdXll biBxdWFuIGx5IHRyb25nIGxpbmggdnVjIHhheSBkdW5nLCB0aGkgY29uZyBuaHVuZyANCmNvbmcg dHJpbmggZGFuIHNpbmggdHJvbmcgZGllbSwgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGRhbmcgZG9p IG1hdCB2b2kgdGhhY2ggdGh1YyANCm5naGllbSB0cm9uZyB0dSBwaGlhIGNhYyBuaGEgdGhhdS4g DQoNClRpbmggdHUgdGhhbmcgMy4yMDA4IGRlbiBuYXksIHRvYW4gVFAgY28gNDIyIG5oYSB0aGF1 IGxpZW4gdHVjIHRyaSBob2FuLCB0aW0gbW9pIGNhY2ggbmUgDQp0cmFuaCwgZG9pIHBobyBkZSBr aG9uZyB0aHVjIGhpZW4gaG9hYyBkYXkgZHVhIGtlbyBkYWkgdmllYyB0aGkgaGFuaCAyLjUwMCBx dXlldCBkaW5oIHh1IA0KcGhhdCB2aSBwaGFtIGhhbmggY2hpbmggdm9pIHRvbmcgc28gdGllbiBw aGF0IHBoYWkgbm9wIGxlbiBkZW4gOCw1IHRpIGRvbmcuIERpZXUgbmF5IA0KZG9uZyBuZ2hpYSB2 b2kgdmllYyBjYWMgbmhhIHRoYXUgbmF5IGRhbmcgY2hpZW0gZHVuZyB0aWVuIHRpIGRhbmcgbHkg cGhhaSBuYW0gdHJvbmcgDQpuZ2FuIHNhY2ggbmhhIG51b2MgZGUgcGh1YyB2dSBjYWMgY29uZyB0 cmluaCBjb25nIGNvbmcga2hhYy4NCg0KTW9pIG5oYSB0aGF1IG5vIGhhbmcgdHJhbSBiaWVuIGJh biANCg0KRGFuZyBsbyBuZ2FpIGxhIG5odW5nIG5oYSB0aGF1IGxvbiwgdGhpIGNvbmcgY2FjIGR1 IGFuIHRyb25nIGRpZW0gY3VhIFRQIGxhaSBsYSBkb2kgdHVvbmcgDQp2aSBwaGFtIG5oaWV1IG5o YXQgdmEgY3VuZyBjaGF5IHkgbm9wIHBoYXQgbmhhdC4gDQoNClRyb25nIGRvLCBuaGEgdGhhdSBT aGltaXp1IChOaGF0KSB0aGkgY29uZyBkdSBhbiBDYWkgdGhpZW4gbW9pIHRydW9uZyBudW9jIGR1 bmcgZGF1IA0KYmFuZyAicGhvbmcgdGhhbiIgdm9pIDIwMCBiaWVuIGJhbiB4dSBwaGF0LCB0dW9u ZyBkdW9uZyB0b25nIHNvIHRpZW4gaG9uIDgyNyB0cmlldSBkb25nLiANClRvbmcgY29uZyB0eSB4 YXkgZHVuZyBzbyAxICh0aGkgY29uZyBuaGlldSBjb25nIHRyaW5oIHRyb25nIGRpZW0gdHJlbiBk aWEgYmFuIFRQIG5odSANCmNhdSBUaHUgVGhpZW0sIHZlIHNpbmggbW9pIHRydW9uZywgc3VhIGNo dWEgY2F1IFZhbiBUaGFuaCAyLi4uKSBjb24gbm8gMTUwIGJpZW4gYmFuIA0KeHUgcGhhdCB2b2kg c28gdGllbiBob24gNTIzIHRyaWV1IGRvbmcuIA0KDQpUdW9uZyB0dSwgaGFuZyBsb2F0IG5oYSB0 aGF1IGxvbiBraGFjIG5odSBUT0EgKE5oYXQpLCBMaWVuIGRhbmggeGF5IGR1bmcgVklDLCANCk9i YXlhc2hpIChOaGF0KSwgQ29uZyB0eSBjb25nIHRyaW5oIGdpYW8gdGhvbmcgY29uZyBjaGFuaCwg Q29uZyB0eSBDUCBkYXUgdHUgdmEgcGhhdCANCnRyaWVuIHhheSBkdW5nLCBDb25nIHR5IGxpZW4g ZG9hbmggSFVELCBDb25nIHR5IFROSEggVHJpIFZpZXQgVGhhbmgsIExpZW4gZGFuaCANCkRyZWNv IC0gQ2llbmNvIDUuLi4gZGV1IGNodWEgbm9wIHBoYXQgdm9pIHNvIHRpZW4gaGFuZyB0cmFtIHRy aWV1IGRvbmcuDQoNCk9uZyBOZ3V5ZW4gQmF0IEhhbiAtIFBobyBjaGFuaCB0aGFuaCB0cmEgU28g R1RWVCBUUC5IQ00gLSBjaG8gYmlldCwgY2FjIG5oYSB0aGF1IA0KbmF5LCB0cm9uZyBxdWEgdHJp bmggdGhpIGNvbmcgY2FjIGNvbmcgdHJpbmggdGhvYXQgbnVvYyB2YSBnaWFvIHRob25nLCBkYSB2 aSBwaGFtIGhhdSBuaHUgDQpraG9uZyB0aGlldSBtb3QgbG9pIG5hbywgbmh1OiBraG9uZyB0aHVj IGhpZW4gZHVuZyBwaHVvbmcgYW4gdGhpIGNvbmc7IGtob25nIHRoaSBjb25nIA0KY3VvbiBjaGll dSBnYXkgYW5oIGh1b25nIGFuIHRvYW4gZ2lhbyB0aG9uZzsgZGUgdmF0IHR1IHZhIG1heSBtb2Mg YmVuIG5nb2FpICJsbyBjb3QiIA0KZ2F5IGNhbiB0cm8gZ2lhbyB0aG9uZzsgdGFpIGxhcCBtYXQg ZHVvbmcgY2F1IHRoYTsga2hvbmcga2hhbyBzYXQga3kgdHJ1b2Mga2hpIHRoaSBjb25nIA0KZ2F5 IGh1IGhvbmcgY2FjIGNvbmcgdHJpbmgga3kgdGh1YXQsIGxhbSBsdW4gbnV0IG5oYSBkYW47IGto b25nIGJvIHRyaSBuZ3VvaSBodW9uZyBkYW4gDQpnaWFvIHRob25nIGJlbiBuZ29haSAibG8gY290 Ii4uLg0KIA0KKEFuaCBjaHVwOiBWYXQgdHUsIHJhYyB0aGFpIHR1IG1vdCBjb25nIHRyaW5oIGRv IHRyYW4gcmEgZHVvbmcpDQoNClRoZW8gb25nIEhhbiwgdGhvaSBnaWFuIHF1YSB0aGFuaCB0cmEg ZGEgbGllbiB0dWMgZ3VpIHZhbiBiYW4gZGVuIHR1bmcgbmhhIHRoYXUgdmkgcGhhbSANCmRlIHll dSBjYXUgZG9uZyBwaGF0IG5odW5nIHJhdCBpdCBkb24gdmkgY2hhcCBoYW5oLCBraGllbiBzbyB0 aWVuIHh1IHBoYXQgbm8gZG9uZyBjaG9uZyANCmNoYXQgcXVhIGNhYyBuYW0uIA0KDQpDaHUgZGF1 IHR1IG8gZGF1Pw0KDQpLeSBzdSBQaGFuIFBodW5nIFNhbmggLSBQaG8gY2h1IHRpY2ggdGh1b25n IHRydWMgSGllcCBob2kgS2hvYSBob2Mga3kgdGh1YXQgeGF5IGR1bmcgDQpUUC5IQ00sIGNobyBy YW5nIHRoaSBjb25nIGNhdSB0aGEgbG9pIHRydW9jIHRpZW4gbGEgY3VhIG5oYSB0aGF1IG5odW5n IGRlIG5oYSB0aGF1IHRoaSANCmNvbmcgYmUgYm9pLCBjaGF5IHkgdGhpIHRyYWNoIG5oaWVtIHRo dW9jIHZlIGNodSBkYXUgdHUuIENodSBkYXUgdHUgbGEgZG9uIHZpIGRhaSBkaWVuIA0KTmhhIG51 b2MsIGRhaSBkaWVuIG5ndW9pIGRhbiBkdW5nIHJhIGx1YSBjaG9uIG5oYSB0aGF1LCBkb2MgdGh1 YyBuaGEgdGhhdSB2YSBjaGl1IHRyYWNoIA0KbmhpZW0gdmUgY2hhdCBsdW9uZywgdGllbiBkbyBj b25nIHRyaW5oLiBOZXUga2hvbmcgc2lldCBjaGF0IHRyYWNoIG5oaWVtIGN1YSBjaHUgZGF1IHR1 IA0Ka2VtIHRoZW8gY2FjIGJpZW4gcGhhcCBjaGUgdGFpIHR1b25nIHh1bmcgdGhpIHRpbmggdHJh bmcgbmF5IHNlIGNvbiB0aWVwIHR1Yy4gDQogDQooQW5oIGNodXA6ICJMbyBjb3QiIGNoYW4gbmdh bmcgZ2F5IHVuIHRhYyBnaWFvIHRob25nIC0gQW5oOiBQLlQpDQoNClR1eSBuaGllbiwgb25nIFNh bmggY3VuZyBjaG8gcmFuZyBkb24gdmkgeHUgcGhhdCBjbyBsb2kga2hvbmcgbmhvIGtoaSB0aGll dSBuZ2hpZW0gDQpraGFjIHRyb25nIHh1IGx5IHZpIHBoYW0gY3VhIGNhYyBuaGEgdGhhdS4gVHJl biB0aHVjIHRlLCBOZ2hpIGRpbmggMzQvMjAxMCB2ZSB4dSBwaGF0IHZpIA0KcGhhbSBoYW5oIGNo aW5oIHRyb25nIGxpbmggdnVjIGdpYW8gdGhvbmcgZHVvbmcgYm8gZGEgdGFuZyBtdWMgeHUgcGhh dCBsZW4gaGFuZyBjaHVjIA0KbGFuIHNvIHZvaSB0cnVvYy4gVmUgY28gYmFuIGxhIGR1IHN1YyBy YW4gZGUgbmhhIHRoYXUuIE5odW5nIGRlbiB0aG9pIGRpZW0gaGllbiB0YWksIHJhdCANCmhpZW0g bmhhIHRoYXUgdmkgcGhhbSBiaSBkaW5oIGNoaSB0aGkgY29uZywgYnVvYyBraGFjIHBodWMgaGF1 IHF1YSB0aGVvIGR1bmcgdGluaCB0aGFuIA0KTmdoaSBkaW5oIDM0LiBIYXUgbmh1IHRoYW5oIHRy YSBnaWFvIHRob25nIGNoaSB4dSBseSB0aGVvIGtpZXUgbGFwIGJpZW4gYmFuIGhhbmggY2hpbmgg DQp2YSB5ZXUgY2F1IGtoYWMgcGh1Yywgc29uZyBzYXUgZG8gbmhhIHRoYXUgY28gbm9wIHBoYXQg dmEga2hhYyBwaHVjIGhheSBraG9uZyBsYWkgY2h1YSANCmNvIGNhY2ggbmFvIGNoZSB0YWkgY2hv IGhpZXUgcXVhLiANCg0KVHJvbmcgcXVhIHRyaW5oIHRoaSBjb25nLCBkaWV1IG1hIG5ndW9pIGRh biB0cm9uZyBkb2kgbGEgc3UgY2h1IGRvbmcgY3VhIGNodSBkYXUgdHUgDQp0cm9uZyB2aWVjIGdp YW0gc2F0LCBuZ2FuIGNoYW4gbmd1eSBjbyBnYXkgdGhpZXQgaGFpIGRvIGhhbmggdmkgYmUgdHJl LCBjYXUgdGhhIGN1YSBuaGEgDQp0aGF1LiBUdXkgbmhpZW4sIGdhbiBuaHUgY2h1IGRhdSB0dSAi Ym8gbHVuZyIga2hhdSBuYXkgdmEga2hvbmcgcGhhaSBjaGl1IG1vdCBjaGUgdGFpIA0KbmFvIGto aSBuaGEgdGhhdSBsaWVuIHR1YyB2aSBwaGFtLiBPbmcgU2FuaCBjaG8gcmFuZzogIkNoaSBjbyBz dSByYW5nIGJ1b2MgaG9wIGRvbmcgDQpjaGF0IGNoZSB2YSBzdSBnaWFtIHNhdCBnYXQgZ2FvIGN1 YSBjaHUgZGF1IHR1IG1vaSBkdSBzdWMgbmdhbiBjaGFuIHR1IGdvYyBjYWMgdmkgcGhhbSANCmN1 YSBuaGEgdGhhdS4gQ2h1IGRlIG5oYSB0aGF1IHZpIHBoYW0gbyBhdCByb2kgcGhvIG1hYyBjaG8g dGhhbmggdHJhIGdpYW8gdGhvbmcgeHUgcGhhdCANCm5odSBoaWVuIG5heSB2YW4gY2hpIGxhIGJp ZW4gcGhhcCBjaHVhIGNoYXksIG1hIG5odW5nIHRoaWV0IGhhaSB2ZSB1biB0YWMsIHRhaSBuYW4g Z2lhbyANCnRob25nLCB0aGlldCBoYWkgdmUgc2luaCBtYW5nLCBjdWEgY2FpLi4uIGN1bmcgZGEg eGF5IHJhIHRyZW4gdGh1YyB0ZSIuICAgIA0KDQpEb25nIHF1YW4gZGllbSB0cmVuLCBsdWF0IHN1 IFRydW9uZyBYdWFuIFRhbSAtIFV5IHZpZW4gSG9pIGRvbmcgbHVhdCBzdSB0b2FuIHF1b2MgLSAN CmN1bmcgY2hvIHJhbmcgY2FjIGJpZW4gcGhhcCBoYW5oIGNoaW5oIG5ldSBsYW0gbmdoaWVtIHNl IG1hbmcgdGluaCByYW4gZGUgcmF0IGxvbi4gDQpUaGVvIHF1eSBkaW5oLCB0cm9uZyB0cnVvbmcg aG9wIG5oYSB0aGF1IGtob25nIHR1IG5ndXllbiB0aHVjIGhpZW4gcXV5ZXQgZGluaCB4dSBwaGF0 LCANCkNoYW5oIHRoYW5oIHRyYSBTbyBHVFZUIGhvYW4gdG9hbiBjbyB0aGFtIHF1eWVuIHJhIHF1 eWV0IGRpbmggY3VvbmcgY2hlIHRoaSBoYW5oIGJhbmcgDQpjYWNoIHBob2kgaG9wIHZvaSBuZ2Fu IGhhbmcga2hhdSB0cnUgdGllbiB2aSBwaGFtIHR1IHRhaSBraG9hbiBjdWEgbmhhIHRoYXUgZGUg DQpjaHV5ZW4gdmFvIGtobyBiYWMuIEhvYWMgeWV1IGNhdSBjaHUgZGF1IHR1IGNvbmcgdHJpbmgg a2hhdSB0cnUgdGllbiB2aSBwaGFtIHRyb25nIHF1YSANCnRyaW5oIHRoYW5oIHRvYW4gY2hvIG5o YSB0aGF1LCB0YW0gZ2l1IG1heSBtb2MsIHRoaWV0IGJpIHRoaSBjb25nIGN1YSBuaGEgdGhhdS4u Lg0KDQogIlRyZW4gdGh1YyB0ZSwgdGllbiB4dSBwaGF0IHZpIHBoYW0gaGFuaCBjaGluaCBkdW9j IG5vcCB2YW8gbmdhbiBzYWNoIG5oYSBudW9jIG5lbiBkYSANCnRhbyByYSB0aW5oIHRyYW5nIGNo YSBjaHVuZyBraG9uZyBhaSBraG9jLCBkYXkgbGEgbW90IG5ndXllbiBuaGFuIGtoaWVuIHZpZWMg ZG9uIGRvYyANCm5vcCBwaGF0IGtob25nIGR1b2MgbGFtIHJvdCByYW8uIENoaW5oIGRpZXUgbmF5 IHNlIHRhbyBuZW4gdGhvaSBjaGF5IHkgbyBuaGEgdGhhdSwgYm9pIA0KY2hpIGNvIHkgdGh1YyBz dSBkdW5nIGx1YXQgcGhhcCBjdWEgZG9uIHZpIHh1IHBoYXQgbW9pIHRhbyByYSB5IHRodWMgdHVh biB0aHUgbHVhdCBwaGFwIA0KY2hvIGNhYyBuaGEgdGhhdSIsIGx1YXQgc3UgVGFtIG5oYW4gbWFu aC4gDQoNCkxhcCBkYW5oIHNhY2ggImRlbiI/IA0KDQpUaGVvIG9uZyBOZ3V5ZW4gQmF0IEhhbiwg dHUgdHJ1b2MgZGVuIG5heSB2aWVjIGNhcCBwaGVwIHRoaSBjb25nIGNobyBuaGEgdGhhdSBraGEg ZGUgDQpkYWksIGNvIGhvIHNvIGxhIGNhcCBwaGVwIGNodSBraG9uZyBjYW4gYmlldCBuaGEgdGhh dSBkYSB2aSBwaGFtIGJhbyBuaGlldSBsYW4sIHZpIHBoYW0gDQpuaHVuZyBsb2kgbmdoaWVtIHRy b25nIG5hby4gRG8gZG8sIHRoYW5oIHRyYSBnaWFvIHRob25nIGRhbmcgc29hbiB0aGFvIHF1eSBk aW5oIGNoYW4gDQpjaGluaCB2aWVjIHRoaSBjb25nIGN1YSBjYWMgbmhhIHRoYXUsIHRyb25nIGRv IHJhbmcgYnVvYyB0cmFjaCBuaGllbSBnaXVhIG5oYSB0aGF1IHZvaSANCmNodSBkYXUgdHUgdmEg Y28gcXVhbiBxdWFuIGx5IG5oYSBudW9jLiBDdSB0aGUsIGRvbiB2aSBjYXAgcGhlcCAodGh1b2Mg U28gR1RWVCBob2FjIA0KY2FjIHF1YW4sIGh1eWVuKSB0cnVvYyBraGkgY2FwIGdpYXkgcGhlcCB0 aGkgY29uZyBjaG8gbmhhIHRoYXUgcGhhaSBjbyB5IGtpZW4gY3VhIHRoYW5oIA0KdHJhIGdpYW8g dGhvbmcgeGFjIG5oYW4gbmhhIHRoYXUgZGEgaG9hbiB0aGFuaCBjYWMgYmllbiBiYW4geHUgcGhh dCBoYW5oIGNoaW5oLiBOZ29haSANCnJhLCBTbyBHVFZUIGN1bmcgc2UgbGFwIGRhbmggc2FjaCAi ZGVuIiBnb20gY2FjIG5oYSB0aGF1IHRodW9uZyB4dXllbiB2aSBwaGFtIGRlIA0Ka2llbiBuZ2hp IFVCTkQgVFAgY2FtIHRoYW0gZ2lhIGRhdSB0aGF1IHhheSBkdW5nIGNhYyBjb25nIHRyaW5oIGhh IHRhbmcgZGF1IHR1IGJhbmcgbmdhbiBzYWNoIFRQLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDM3LzIwMTAwOTA2MjM0ODUyLmFzcHggUFQgMDYvMDkvMjAx MCAyMzo0OCAodHJpY2gpDQoNClRQIEhDTTogVHVjIG51b2MsIHZvIGJvIC0gTmd1b2kgZGFuIGRp IGtpZW4gIA0KDQooQW5oIGNodXA6ICJMbyBjb3QiIHRoaSBjb25nIGNoYW0gdHJlLCBiZSBib2kg Z2F5IHRoaWV0IGhhaSBjaG8gbmd1b2kgZGFuIHN1b3QgbmhpZXUgbmFtIHF1YSAtIEFuaDogRC5E Lk1pbmgpDQoNCk5ndW9pIGRhbiBWTiB2b24gY2h1YSBxdWVuIHZvaSBuaHVuZyB2dSBraWVuICBk b2kgYm9pIHRodW9uZyBraGkgcXV5ZW4gbG9pIGhvcCBwaGFwIA0KY3VhIG1pbmggYmkgeGFtIHBo YW0uIFRoZSBuaHVuZywgdGhlbyBjYWMgbHVhdCBzdSB2YSBjaHV5ZW4gZ2lhLCBtb3QgdnUgImRh byB0dW5nIA0KZGluaCIgbGEgY2FuIHRoaWV0IGRlIGNoYW4gY2hpbmggc3UgY2hheSBpIGN1YSBu aGEgdGhhdSB2YSB0aGFpIGRvIHRoaWV1IHRyYWNoIG5oaWVtIA0KY3VhIGNodSBkYXUgdHUgZGFu ZyB0b24gdGFpIG5nYW5nIG5oaWVuIG8gY2FjIGNvbmcgdHJpbmggZ2lhbyB0aG9uZyBoaWVuIG5h eS4gDQoNClZpZWMgVG9hIGFuIG5oYW4gZGFuICBUUC5IQ00gdGh1IGx5IGRvbiBjdWEgb25nIE5n dXllbiBWYW4gTGFuZyAobmd1IGR1b25nIA0KTmd1eWVuIEh1eSBUdSwgUC5EYSBLYW8sIFEuMSwg VFAuSENNKSBraWVuIFNvIEdpYW8gdGhvbmcgdmFuIHRhaSAoR1RWVCkgZG9pIGJvaSANCnRodW9u ZyB0aGlldCBoYWkgZG8gImxvIGNvdCIgdGhpIGNvbmcgY2F1IHRoYSwgYmUgdHJlIG1vaSBkYXkg ZHVvYyB4ZW0gbGEgbW90IHZ1IGtpZW4gDQpjaHVhIHR1bmcgY28gdGllbiBsZS4gQm9pIHRhaSBU UC5IQ00gZGEgY28gdHJ1b25nIGhvcCBuZ3VvaSBkYW4ga2llbiBuaGEgdGhhdSANCk9iYXlhc2hp IChOaGF0KSB0aGkgY29uZyBkdSBhbiBkYWkgbG8gRG9uZyBUYXkgbGFtIGx1biBudXQgbmhhIGRh biAobyBRLjIpLCBzb25nIG5ndW9pIA0KZGFuIGtob2kga2llbiBjaHUgZGF1IHR1IHZhIGNvIHF1 YW4gcXVhbiBseSBuaGEgbnVvYyB0aGkgZGF5IGxhIHZ1IGtpZW4gZGF1IHRpZW4uDQoNCkR1IGx1 YW4gaGFuIGRhIHF1YSBxdWVuIHZvaSB0aW5oIHRyYW5nIHRoaSBjb25nIGJlIHRyZSwgY2F1IHRo YSB0YWkgZHUgYW4gVmUgc2luaCBtb2kgDQp0cnVvbmcgKGx1dSB2dWMgTmhpZXUgTG9jIC0gVGhp IE5naGUpLCBtYSBtb3QgdHJvbmcgbmh1bmcgZ29pIHRoYXUgY2hheSBpIG5oYXQgbGEgZ29pIA0K c28gNyBkbyBuaGEgdGhhdSBUcnVuZyBRdW9jIFRNRUMgQ0hFQyAzIHRoaSBjb25nLiBWYSB2aWVj IG9uZyBMYW5nIGtob2kga2llbiBkb2kgDQpib2kgdGh1b25nIHRoaWV0IGhhaSBkbyB2aWVjIHRo aSBjb25nIGdvaSBzbyA3IGxhIG1vdCBoYW5oIGRvbmcgInR1YyBudW9jLCB2byBibyIuIEtoaSAN Cm5oYSB0aGF1IFRNRUMgQ0hFQyAzIHRpZW4gaGFuaCByYW8gY2hhbiAibG8gY290IiB0cnVvYyBu aGEgb25nIHZhbyBuYW0gMjAwNSwgZ2lhIGRpbmggDQpvbmcgZGEgdnVpIHZlIGhvcCB0YWMgZGUg cGh1YyB2dSB2aWVjIHRoaSBjb25nLiBUaGUgbmh1bmcsICJsbyBjb3QiIHR1b25nIGNoaSBtb2Mg DQpsZW4gdmFpIHRoYW5nIGtob25nIG5nbyBkYXkgZHVhIGhldCBuYW0gbmF5IHNhbmcgbmFtIGto YWMga2hpZW4gdGhpZXQgaGFpIHZlIGtpbmggdGUgDQp0cm8gbmVuIHF1YSBzdWMgY2hpdSBkdW5n LiBUcmFvIGRvaSB2b2kgVGhhbmggTmllbiwgb25nIExhbmcgY2hvIGJpZXQgZGEgZGVvIGR1b2kg dnUgDQpraWVuIG5heSByb25nIHJhIHN1b3QgNCBuYW0gbmF5LiANCg0KRGFpIGJpZXUgSERORCBU UC5IQ00gRGFuZyBWYW4gS2hvYSBjaG8gcmFuZywgdmllYyBuZ3VvaSBkYW4gbWFuaCBkYW4ga2hv aSBraWVuIA0KZGUgZG9pIHF1eWVuIGxvaSBob3AgcGhhcCBsYSBkYXUgaGlldSBkYW5nIG11bmcg dHJvbmcgbW90IHhhIGhvaSBtYSBjbyBxdWFuIHF1YW4gbHkgDQpuaGEgbnVvYywgbmhhIHRoYXUg aGF5IG5ndW9pIGRhbiBkZXUgYmluaCBkYW5nIHZhIG1vaSBzdSB4YW0gcGhhbSBxdXllbiBsb2kg Z2F5IHRvbiANCmhhaSB2YXQgY2hhdCBoYXkgdGluaCB0aGFuIGRldSBwaGFpIGR1b2MgZGVuIGJ1 Lg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzAvMjAxMDA3 MjIwMjE2NTYuYXNweCBEaW5oIE11b2kgMjIvMDcvMjAxMCAyOjE2IA0KDQpUUC5IQ006IGxhaSBr ZXQgeGUgbmdoaWVtIHRyb25nICANCiAgDQpTYW5nIDIxLjcsIG1vdCB2dSB1biB0YWMgZ2lhbyB0 aG9uZyBuZ2hpZW0gdHJvbmcgeHVhdCBwaGF0IHR1IGNoYW4gY2F1IEJpbmggVHJpZXUgMiB0cmVu IA0KcXVvYyBsbyAxMyAoUUwxMyksIFEuVGh1IER1Yywgc2F1IGRvIGxhbiBzYW5nIG5oaWV1IHR1 eWVuIGR1b25nIGxhbiBjYW4gdGh1b2MgUS5CaW5oIA0KVGhhbmgsIGtlbyBkYWkgdHUgNyBnaW8g ZGVuIDkgZ2lvIHNhbmcuIA0KDQpEbyBtYXQgZHVvbmcgUUwxMyAoZG9hbiB0dSBnaWFvIGNhdCB2 b2kgZHVvbmcgS2hhIFZhbiBDYW4gZGVuIHRyYW0gdGh1IHBoaSBjaGFuIGNhdSANCkJpbmggVHJp ZXUgMikgYmkgbmdhcCBzYXUgdHJvbmcgbnVvYyBob24gbnVhIG1ldCBuZW4gaGF1IGhldCBwaHVv bmcgdGllbiBwaGFpIGVwIHNhbmcgDQpsdXUgdGhvbmcgdHJlbiBwaGFuIGR1b25nIGtob25nIGJp IG5nYXAgZGFuIGRlbiB1biB0YWMuIERvIG5nYXAgcXVhIHNhdSBuZW4gcmF0IG5oaWV1IA0KeGUg bWF5IHBoYWkgZGFuIGJvLiBNYXQga2hhYywgbWF0IGR1b25nIGNvbiBiaSAibG8gY290IiB0aGkg Y29uZyBjaGllbSBkdW5nIGtoaWVuIHRpbmggDQpjYW5oIHVuIHRhYyBjYW5nIHRyYW0gdHJvbmcu IFRpbmggdHJhbmcgbmF5IHNhdSBkbyBsYW4gcm9uZyB0cmVuIGNhYyB0dXllbiBkdW9uZyBEaW5o IA0KQm8gTGluaCwgTmd1eWVuIFhpLCBVbmcgVmFuIEtoaWVtLCBEMi4uLg0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzYvMjAxMDA5MDUwMjA3MTIuYXNweCBE YW0gSHV5IDA1LzA5LzIwMTAgMjowNyANCg0KVFAgSENNOiBEdW9uZyBkYXkgdG8gY2h1YyBjYSB0 cmFtIHZ1ICJ4ZW0gbWF0IiBjbyBkYXUgdHJhaSBwaGVwICANCg0KaHR0cDovL3d3dy5pZXNkLmdv di52bi93ZWJwbHVzL3ZpZXdlci5wcmludC5hc3A/YWlkPTcxJmw9Vk4gTGUgWHVhbiBLaG9pIA0K DQpUUCBIQ00gTyBuaGllbSBuZ3VvbiBudW9jIHRyZW4gZGlhIGJhbiBUUEhDTSBoaWVuIG5heSBk dW9jIGRhbmggZ2lhIGxhIG5naGllbSB0cm9uZyBuaGF0LiANCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDM3LzIwMTAwOTA2MDAwMzM1LmFzcHggSC5DdSAwNi8w OS8yMDEwIDA6MDMgDQoNClRQIEhDTTogdGFpIHRydW9uZyBESCBRdW9jIGdpYSBUUC5IQ00sIHRp bmggUXVhbmcgTmdhaSBwaGFpIGRhdSB0dSBnYW4gMjAgdGkgZG9uZyANCnhheSBreSB0dWMgeGEg c2luaCB2aWVuIFF1YW5nIE5nYWksIGdvbSA2MCBwaG9uZywgZGFwIHVuZyBjaG8gbyBjaG8gZ2Fu IDUwMCBzaW5oIHZpZW4gDQpRdWFuZyBOZ2FpIGRhbmcgaG9jIHRhcCB0YWkgVFAuSENNOyBraG9u ZyBybyBkb2kgdm9pIHNpbmggdmllbiB0dSBjYWMgdGluaCBraGFjIHRoaSANCmNobyBhbiwgY2hv IG8gY28gZHVvYyBkYW0gYmFvIGRlIHllbiB0YW0gaG9jIHRhcCBraG9uZy4NCg0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDgvVFBIQ00tZGEtcGhvaS1iYXkteWV1LWtlbS1zYXUt My1uYW0tdmFvLVdUTy05MzI5NTUvIENhIEhhbyAxOTozOCwgMzEvMDgvMjAxMCAoR01UKzcpDQoN ClRQLkhDTSBkYSBwaG9pIGJheSB5ZXUga2VtIHNhdSAzIG5hbSB2YW8gV1RPDQoNCk5oYW4gZGlu aCBuYXkgZG8gVFMuIFRyYW4gRHUgTGljaCBkdWEgcmEgdGFpIGhvaSB0aGFvICJEYW5oIGdpYSB0 YWMgZG9uZyAzIG5hbSBnaWEgDQpuaGFwIFdUTyB2YSB0YWkgY2F1IHRydWMga2luaCB0ZSBUUC5I Q00iLCBkaWVuIHJhIHRhaSBUUC5IQ00gaG9tIG5heSAoMzEvOCkuDQoNClRoZW8gb25nIExpY2gs IHNhdSBiYSBuYW0gZ2lhIG5oYXAgV1RPLCBkZW4gbmF5IG5lbiBraW5oIHRlIG51b2MgdGEgdmFu IHBodSB0aHVvYyANCmNodSB5ZXUgdmFvIHZvbiBudW9jIG5nb2FpLiBOZXUgbmh1IGNhY2ggZGF5 IGdhbiAyMCBuYW0gbmd1b24gdm9uIG5heSBjaGkgZG9uZyBnb3AgDQpraG9hbmcgOCUgdmFvIHN1 IHBoYXQgdHJpZW4sIGdpbyBkYSBsZW4gdG9pIGhvbiA2MCUuIA0KDQpUdXkgbmhpZW4sIG5hbmcg bHVjICJoYXAgdGh1IiB2b24ga2VtIGxhIG5ndXllbiBuaGFuIGNvdCBsb2kgZHVhIGRlbiBsYW0g cGhhdCwgZGF1IHR1IA0KZGFuIHRyYWksIGx1bmcgdHVuZyB0cm9uZyBnaWFpIG5nYW4gY2FjIGR1 IGFuIGRhdSB0dSB0YWkgVmlldCBOYW0uIFZhIGNobyBkZW4gbmF5LCB0cmVuIHRoaSANCnRydW9u ZyBWaWV0IE5hbSwgZGFjIGJpZXQgbGEgVFAuSENNIHRyYW4gbmdhcCBjYWMgc2FuIHBoYW0gZGF0 IHRpZW4gbmhhdCB0aGUgZ2lvaSwgdGhlIA0Kbmh1bmcgY2FjIGRvYW5oIG5naGllcCB0cm9uZyBu dW9jIGxhaSBjaHVhIHRoZSB0aWVwIGNhbiBjb25nIG5naGUgc2FuIHh1YXQgbmh1bmcgc2FuIA0K cGhhbSBuYXkuIA0KDQoiTmdheSBjYSB2aWVjIGRhbyBkdW9uZyBsYW0gaGUgdGhvbmcgY2FwIHRo b2F0IG51b2MgY2hvIFRQLkhDTSBtYSBjaHVuZyB0YSBjb24gc3UgDQpkdW5nIGNvbmcgbmdoZSBk YW8gbXVvbmcgdGFpIGRvbmcgYmFuZyBzb25nIEN1dSBMb25nLCBzdW90IG5nYXkgZG9pIHBobyB2 b2kgbmdhcCANCmx1dCwgdm9pIHRhYyBkdW9uZyB0aGkgbm9pIGdpIGRlbiBjaHV5ZW4gdGhheSBk b2kuLi4iLCBvbmcgTGljaCB0aGFuIHBoaWVuLg0KDQpDbyBjaHVuZyBjYWNoIG5oaW4gdmUgbmVu IGtpbmggdGUgVFAuSENNLCBQR1MgLSBUUy4gVHJhbiBEaW5oIFRoaWVuLCBWaWVuIHRydW9uZyAN ClZpZW4ga2luaCB0ZSBWaWV0IE5hbSBjaG8gcmFuZywgY28gY2F1IGNodWEgdGhvYXQga2hvaSB0 cmluaCBkbyAiY29uZyBuZ2hpZXAgY28ga2hpIGNvIA0KZGllbiIgdmFuIG5hbmcgdmUgZ2lhIGNv bmcsIGxhcCByYXAsIGxlIHRodW9jIGJlbiBuZ29haSwgY2h1YSB0aHVjIHN1IGRvbmcgdmFpIHRy byBkYXUgdGF1IA0Ka2VvIG5lbiBraW5oIHRlIGNhIG51b2MuIA0KDQpodHRwOi8vdnR2LnZuL0Fy dGljbGUvR2V0L0NoaV82X25ndW9pX2Rhbl9UUC5IQ01fY2hvbl94ZV9idXl0X19fX19fM2YyMGFl ZTM1Yy5odG1sDQoNClRQIEhDTTogTW9pIG5hbSwgbWFuZyBsdW9pIHhlIGJ1eXQgdGFpIFRQLkhD TSBkYW5nIGRlIGxhbmcgcGhpIGhhbmcgdHJhbSB0cmlldSBjaG8gbmdvaS4gDQoNCk5ldSBjb25n IGRvbiBxdWEgY2FjIG5hbSwgdGhpIHNvIGdoZSBuZ29pIHZhIGNobyBkdW5nIGJpIGJvIHRyb25n IHRyZW4gY2FjIGNodXllbiB4ZSBidXl0IGNvIHRoZSBsZW4gdG9pIGhhbmcgdHkgZG9uZy4NCg0K VHJvbmcgYm9pIGNhbmggYWNoIHRhYyB2YSB0YWkgbmFuIGdpYW8gdGhvbmcgZGFuZyBsYSBub2kg YW0gYW5oLCB0aGkgZGF5IGNvIHRoZSBub2kgbGEgc3UgbGFuZyBwaGkga2hvbmcgdGhlIGNoYXAg bmhhbi4NCg0KVGhlbyB0aG9uZyBrZSwgY2hpIGNvIGtob2FuZyA2JSBuZ3VvaSBkYW4gdGFpIFRQ LkhDTSBjaG9uIHhlIGJ1eXQgbGEgcGh1b25nIHRpZW4gZGkgbGFpLiBYZSBtYXkgcXVhIG5oaWV1 LCANCmxvIGNvdCBxdWEgbmhpZXUsIGR1b25nIHF1YSBjaGF0IGhlcCwgbHVvbmcgdHV5ZW4gY2h1 YSBob3AgbHkgY3VuZyB2b2kgaGFuZyBsb2F0IGx5IGRvIGtoYWMgdGh1b25nIHh1eWVuIGR1b2Mg dmllbiBkYW4gZGUgZ2lhaSB0aGljaCBjaG8gc3Uga2VtIGhpZXUgcXVhIGN1YSBtYW5nIGx1b2kg eGUgYnV5dC4gTmh1bmcga2hvIGtoYW4sIHRybyBuZ2FpIG5heSAgcGhhaSBtYXQgaGFuZyBjaHVj IG5hbSBudWEgbW9pIGdpYWkgcXV5ZXQgZHVvYy4gVmEgbmh1IHRoZSwgaGFuZyB0eSBjaG8gdHJv bmcgY28gdGhlIHBoYXQgc2luaCB0cm9uZyBxdWEgdHJpbmggdmFuIGhhbmggbWFuZyBsdW9pIHhl IGJ1eXQgc2UgbmdoaWVtIG5oaWVuIGR1b2MgdGh1YSBuaGFuLg0KDQpodHRwOi8vdmlldGJhby52 bi9YYS1ob2kvVFBIQ00tTWFpLW1lLXRhbmctdHJ1b25nLWJvLXJvaS1jaGF0LWx1b25nLXNvbmcv MTczNTE3MzAyNS8xMjUvIFZpZXQgQmFvIChUaGVvIERhbiB0cmkpIDA4LzEyLzIwMTAsIDE3OjAy IEdNVCs3IA0KDQpUUC5IQ006IE1haSBtZSB0YW5nIHRydW9uZywgJ2JvIHJvaScgY2hhdCBsdW9u ZyBzb25nIA0KDQoiTmV1IGNoaSBsYXkgR0RQIGxhbSB0aWV1IGNoaSBkYW5oIGdpYSB0aGFuaCB0 aWNoIHRoaSBjdW5nIGdpb25nIG5odSBudW9pIGNvbiBsYXkgdGlldSANCmNoaSBtYXAuIER1YSBu YW8gbWFwIG5oYXQgdGhpIGR1b2MgeGVtIGxhIGtob2UgbmhhdCB2YSB0aG9uZyBtaW5oIG5oYXQu IDUgbmFtIHF1YSwgDQpUUEhDTSB0YW5nIHRydW9uZyBkaSBsZW4gbmh1bmcgbXVjIHNvbmcsIGNo YXQgbHVvbmcgc29uZyBjdWEgbmd1b2kgZGFuIGRpIG5ndW9jIA0KbGFpIi4NCg0KRGFuaCBnaWEg a2V0IHF1YSBzYXUgbW90IG5hbSB0cmllbiBraGFpIGtlIGhvYWNoICJOYW0gMjAxMCAtIE5hbSB0 aHVjIGhpZW4gbmVwIHNvbmcgDQp2YW4gbWluaCAtIG15IHF1YW4gZG8gdGhpIiwgbmhpZXUgZGFp IGJpZXUgSERORCBUUEhDTSBkYW5oIGdpYSAidmFuIG1pbmgiLCAibXkgDQpxdWFuIiBjdWEgdGhh bmggcGhvIGNvbiBuaGlldSB2aWVjIHBoYWkgbGFtLi4uDQogDQpOYW0gMjAxMCBsYSBuYW0gVFBI Q00gdGh1YyBoaWVuIGtlIGhvYWNoICJOYW0gdGh1YyBoaWVuIG5lcCBzb25nIHZhbiBtaW5oIC0g bXkgDQpxdWFuIGRvIHRoaSIuIENhYyBjYXAsIG5nYW5oIGN1YSB0aGFuaCBwaG8gZGEgdGh1b25n IHh1eWVuIGtpZW0gdHJhIHZhIHR1eWVuIHRydXllbiANCmRlbiB0dW5nIGNhIG5oYW4sIGNvIHF1 YW4sIHRvIGNodWMuDQoNCihBbmg6ICJIbyB0dSB0aGFuIiwgdmFuIGRlIG5vaSBjb20gbW9pIHRh aSBUUEhDTSkgDQoNCkRhaSBiaWV1IFRyYW4gVGhpIE5nb2MgQW5oIC0gVHJ1b25nIEJhbiBWYW4g aG9hIHhhIGhvaSBIRE5EIFRQSENNIC0gY2hvIGJpZXQsIA0KY2FjIHZpIHBoYW0gbmh1IHRoaSBj b25nIHJhbyBjaGFuIGNoaWVtIGR1bmcgbWF0IGR1b25nLCBkaWV1IGtoaWVuIHBodW9uZyB0aWVu IHF1YSANCnRhaSwgcGh1b25nIHRpZW4gdmFuIHRhaSBoYW5oIGtoYWNoIGNvbmcgY29uZyBkb24g dHJhIGtoYWNoIGtob25nIGR1bmcgbm9pIHF1aSBkaW5oLCBkYSANCmJpIGtpZW0gdHJhLCB4dSBw aGF0IG5naGllbS4gSGUgdGhvbmcgZ2lhbyB0aG9uZyBkdW9uZyBibyBkdW9jIGRpIHR1LCBuYW5n IGNhcCB0aHVvbmcgDQp4dXllbi4NCiANClRyb25nIGJhbyBjYW8gdmUga2V0IHF1YSB0aHVjIGhp ZW4ga2UgaG9hY2ggbmFtIGN1YSBCYW4gVmFuIGhvYSB4YSBob2ksIHRoYW5oIHRpY2ggDQpjdW5n IG5oaWV1IG5odW5nIHRvYW4gbmh1bmcgdGhhbmggdGljaCBiZW4gbmdvYWkuIE5odW5nIHZhbiBk ZSBjYXAgYmFjaCBuaHU6IGtldCB4ZSwgDQpuZ2FwIG51b2MsIG8gbmhpZW0gbW9pIHRydW9uZywg ZHVhIHhlLCByb2kgZGVuIGNodXllbiAiaG8gdHUgdGhhbiIsIGJhbyBsdWMgaG9jIA0KZHVvbmcu Li4gdGhpIHZhbiAibmhheSBtdWEiIGJlbiBuZ29haSB4YSBob2kuDQogDQpUaGVvIGJhIE5nb2Mg QW5oLCBuZ3V5ZW4gbmhhbiBkYW4gZGVuIG15IHF1YW4gZG8gdGhpIGNodWEgdG90LCBuZXAgc29u ZyBjb24gdGhpZXUgDQp2YW4gbWluaC4uLiBsYSBkbyAiSGEgdGFuZyBreSB0aHVhdCBkbyB0aGkg dHV5IGR1b2MgdGFwIHRydW5nIGRhdSB0dSwgbmFuZyBjYXAsIG1vIHJvbmcgDQpuaHVuZyBjaHVh IGRhcCB1bmcgeWV1IGNhdSB2YSB0b2MgZG8gcGhhdCB0cmllbiBjdWEga2luaCB0ZSAtIHhhIGhv aS4gWSB0aHVjIGJhbyB2ZSBtb2kgDQp0cnVvbmcgdHJvbmcgeGEgaG9pIGNodWEgY2FvLCB2YW4g aG9hIGdpYW8gdGhvbmcgY2h1YSBjbyBuaGlldSBjaHV5ZW4gYmllbiB0aWNoIGN1YyIuDQogDQpU aHVjIGhpZW4gY2h1IHRydW9uZyBjdWEgdGhhbmggcGhvLCBuaGlldSBraHUgcGhvLCBhcCwgdG8g ZG9hbiBrZXQuLi4gY3VuZyBkYSB0byBjaHVjIA0KbmhpZXUgYnVvaSBob3AgZGFuLCBwaG8gYmll biBjYWMga2llbiB0aHVjIHBoYXAgbHVhdCwgY2FjIGNodSB0cnVvbmcgY2hpbmggc2FjaCBjdWEg bmhhIA0KbnVvYywuLi4gVHV5IG5oaWVuLCBjYWMgY3VvYyBob3AgY2h1YSB0YXAgdHJ1bmcgdmFv IG5vaSBkdW5nIGNoaW5oLCBjaGkgY28gNzAlIGRhbiB0aGFtIA0KZ2lhLg0KIA0KVmFuIG5hbiBi YW8gbHVjIGhvYyBkdW9uZywgYmFvIGx1YyBnaWEgZGluaCwgdHUgdGFwIGR1YSB4ZSwgcGhvbmcg dWUgbyBiZW4geGUsIG5vaSB0dWMsIA0KY2h1aSB0aGUgbyBxdWFuIGNhZmUgbGUgZHVvbmcuLi4g Y29uIG5oaWV1Lg0KIA0KVHJvbmcgMiBuYW0gdHJ1b2MsIFRQSENNIHRodWMgaGllbiBrZSBob2Fj aDogIk5hbSB0aHVjIGhpZW4gbmVwIHNvbmcgdmFuIG1pbmggZG8gDQp0aGkiLCBuaHVuZyB2YW4g ZGUgImN1IG1lbSIgbmF5IGx1YyBuYW8gY3VuZyBsYW0gIm5vbmciIGJhbiBuZ2hpIHN1LiBIYWkg bmFtIHNhdSwgDQpUUEhDTSBsYWkgZ2FuIHRoZW0gdHJvbmcgdHJhY2ggbW9pICJteSBxdWFuIGRv IHRoaSIuIE5odW5nIHZhbiBkZSBjdSBjaHVhIGR1b2MgDQpsYW5nIHh1b25nIHRoaSBjYWMgdmFu IGRlIG1vaSBuaHU6IHRyaWV1IGN1b25nLCBkdWEgeGUsIGJhbyBsdWMgaG9jIGR1b25nLCBobyB0 dSB0aGFuLi4uIA0KZGEgIm5nb2MgZGF1IiBkYXkuDQogDQooQW5oOiBNb2kgdHJ1b25nIHNvbmcg YmkgbyBuaGllbSBuZ2hpZW0gdHJvbmcpIA0KIA0KTHkgZ2lhaSB2aWVjIFRQSENNIG5nYXAgbGll biBtaWVuLCBvbmcgTmd1eWVuIFRoYW5oIFRhaSAtIFBobyBDaHUgdGljaCB0aHVvbmcgdHJ1YyAN ClVCTkQgVFBIQ00tICBjaG8gYmlldDogIlRoYW5oIHBobyB0dSAzIHRyaWV1IGRhbiB0YW5nIGRv dCBiaWVuIGxlbiAxMCB0cmlldSBkYW4gZ2F5IA0KcmF0IG5oaWV1IGtobyBraGFuIGNobyB2YW4g ZGUgcXVhbiBseSwgYW4gc2luaCB4YSBob2kuIFRhbiBzdWF0IG11YSwgbHVvbmcgbXVhIGxvbiwg DQp0cmlldSBjdW9uZyBjb25nIHZvaSBtdWMgbnVvYyBiaWVuIHRhbmcgbmVuIFRQSENNIGJpIGFu aCBodW9uZyBuZ2hpZW0gdHJvbmciLg0KIA0KRGUgZ2lhaSBxdXlldCB2YW4gZGUgYnVjIHh1YyBu YXksIG9uZyBOZ3V5ZW4gVGhhbmggVGFpIGNobyBiaWV0IHNlIHF1eSBob2FjaCB4YXkgDQpkdW5n IGNhYyBobyBkaWV1IHRpZXQsIGdpZW5nIG5nYW0gdmEga2llbiBuZ2hpIFRodSB0dW9uZyBjaGlu aCBwaHUgZHVhIGtlIGhvYWNoIHhheSANCmR1bmcgMTIgY29uZyBuZ2FuIHRyaWV1IHZlIFRQSENN Lg0KIA0KRGFpIGJpZXUgUGhhbSBWYW4gRG9uZyAtIFRydW9uZyBCYW4ga2luaCB0ZSAtIG5nYW4g c2FjaCBIRE5EIFRQIHRodWEgbmhhbjogIkNhYyANCmdpYWkgcGhhcCBraW5oIHRlIGNvbiBiYXQg Y2FwLiBLZXQgeGUsIG5nYXAgbnVvYyBsYW0gbmFuIGxvbmcgbmhhIGRhdSB0dSB2YSBraGFjaCBk dSANCmxpY2gsIGFuaCBodW9uZyBkZW4gZG9pIHNvbmcsIHNpbmggaG9hdCBjdWEgbmd1b2kgZGFu Ii4NCiANCk5oaWV1IGRhaSBiaWV1IGNvbiBjaG8gcmFuZywgVFBIQ00gZGFuZyBiaSAiYmVuaCBH RFAiLiBWaSBxdWEgY2h1IHRyb25nIGRlbiBtdWMgDQp0aWV1IHRhbmcgdHJ1b25nIGtpbmggdGUg bWEgImJvIHF1ZW4iIGNhYyB2YW4gZGUgeGEgaG9pIGRhbmcgZ2F5IGJ1YyB4dWMgY2hvIG5ndW9p IGRhbi4NCiANCkRhaSBiaWV1IFRydW9uZyBUcm9uZyBOZ2hpYSBjaG8gcmFuZywgZHUgdG9uZyBz YW4gcGhhbSBub2kgZGlhIChHRFApIHRyZW4gZGlhIGJhbiANCnRoYW5oIHBobyB1b2MgZGF0IGdh biA0MjAuMDAwIHR5IGRvbmcsIHRhbmcgMTEsNSUgc28gdm9pIGN1bmcga3ksIHZ1b3QgMTUlIHNv IHZvaSBjaGkgDQp0aWV1IEhvaSBkb25nIG5oYW4gZGFuIHRoYW5oIHBobyBkZSByYSwgc29uZyBr aG9uZyB2aSB0aGUgbWEgbmd1b2kgZGFuIHZ1aSBsb25nLiAiTmV1IA0KY2hpIGxheSBHRFAgbGFt IHRpZXUgY2hpIGRhbmggZ2lhIHRoYW5oIHRpY2ggdGhpIGN1bmcgZ2lvbmcgbmh1IG51b2kgY29u IGxheSB0aWV1IGNoaSBsYSANCm1hcCB2YXkuIER1YSBuYW8gbWFwIG5oYXQgdGhpIGR1b2MgeGVt IGxhIGtob2UgbmhhdCB2YSB0aG9uZyBtaW5oIG5oYXQuIFRyb25nIDUgbmFtIA0KcXVhLCBraW5o IHRlIFRQSENNIGNoaSBtb2kgcGhhdCB0cmllbiB0aGVvIGJlIHJvbmcuIFRQSENNIHRhbmcgdHJ1 b25nIGRpIGxlbiBuaHVuZyANCm11YyBzb25nLCBjaGF0IGx1b25nIHNvbmcgY3VhIG5ndW9pIGRh biBkaSBuZ3VvYyBsYWkiLCBkYWkgYmlldSBOZ2hpYSB2aSB2b24uDQogDQoiRG9pIHZvaSBuZ3Vv aSBkYW4sIHN1IHBoYXQgdHJpZW4ga2luaCB0ZSBkb25nIG5naGlhIHZvaSB2aWVjIGRpIGR1b25n IGRlIGRhbmcsIHN1YyBraG9lIA0KZHVvYyBjaGFtIHNvYyB0b3QsIGhvYyB0YXAgdG90LCBnaWEg Y2EgaG9wIGx5LCBjaGF0IGx1b25nIGhhbmcgaG9hIHRvdCBob24uLi4gY2h1IG5ndW9pIA0KZGFu IGtob25nIHF1YW4gdGFtIGRlbiBjb24gc28gR0RQIGxhIGJhbyBuaGlldSIsIE5ndXllbiBBbiBC aW5oIGJ1YyB4dWMuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vUGFnZXMvZGVmYXVs dC5hc3B4IDA5LzAzLzIwMDkgMDoyMiANCg0KVFAgSENNOiBCdWMgeHVjIGN1YSBuZ3VvaSBkYW4g VFAgbGEgdmkgc2FvIG5oaWV1IHR1eWVuIGR1b25nIG1vaSBkdW9jIGxhcCBkYXQgY29uZyB0aG9h dCBudW9jICJob2FuaCB0cmFuZyIgDQp2YW4gbmdhcCBsZW5oIGxhbmcuIFZpIHNhbyBkYSBsYXAg ZGF0IGNvbmcgbW9pIG5odW5nIG5nYXAgdGhhbSBjaGkgY29uIG5oaWV1IGhvbiBjaGkgc2F1IG1v dCBjb24gbXVhIHRyYWkgbXVhPyANCkNhYyBkdSBhbiBjaG9uZyBuZ2FwIG1hIFRQLkhDTSBkYW5n IHRodWMgaGllbiwgbmhhdCBsYSBkdSBhbiB2ZSBzaW5oIG1vaSB0cnVvbmcsIGNhaSB0aGllbiBt b2kgdHJ1b25nIG51b2MuLi4gDQpraGkgbmFvIHBoYXQgaHV5IHRhYyBkdW5nPyANCg0KJ1R1eSBt dWEgY2h1YSB0aHVjIHN1IGxvbiBjdW5nIGRhIGdheSByYSBuZ2FwIGx1dCB0cmVuIGRpZW4gcm9u ZyBjYSBub2kgdmEgbmdvYWkgdGhhbmgnIC0gVGllbiBzaSBUbyBWYW4gVHJ1b25nIA0Kbmd1eWVu IFZpZW4gdHJ1b25nIFZpZW4gUXV5IGhvYWNoIHRodXkgbG9pIG1pZW4gTmFtIGNobyBiaWV0Lg0K DQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVGllbi1uaGEtbnVvYy1tYW5oLWFpLW5heS10aWEv NDAxODU3MDEvMTU3LyBUaHUgaGFpLCAwNSBUaGFuZyBoYWkgMjAwNywgMDc6MDIgR01UKzcgDQoN CkNvIHF1YW4gY2h1YyBuYW5nIFRQLkhDTSB2dWEga2V0IHRodWMgdGhhbmggdHJhLCBraWVtIHRy YSBoYWkgY29uZyB0cmluaCB4YXkgZHVuZyBjbyBiYW4gdGFpIFRydW9uZyBUSFBUIG5hbmcga2hp ZXUgDQpURFRUIE5ndXllbiBUaGkgRGluaCAoUS44KSB2YSBjb25nIHRydW9uZyB4dSBseSByYWMg R28gQ2F0Lg0KDQpSYXQgbmhpZXUga2lldSBzYWkgcGhhbSBkdW9jIHBoYXQgaGllbiBuaHUgcnV0 IHRpYSB0aWVuIGJhYywgbGFtIGl0IGJhbyBuaGlldS4uLg0KDQpNb2kgZG9uIHZpLi4uICJ0aWEi IG1vdCBpdA0KDQpTYWkgdHUga2hhbyBzYXQgZGVuIHRoaSBjb25nDQoNCmh0dHA6Ly91cy52aWV0 bmFtbmV0LnZuL3hhaG9pL2RvaXNvbmcvMjAwNy8wMy82Njg1MjIvIDA0OjQwLCAwMi8wMy8yMDA3 IChHTVQrNykNCg0KVFAgSENNOiAnUnV0IHJ1b3QnIGR1IGFuIHRyZW4gMTU5IHR5IGRvbmcgKGR1 IGFuIGJhaSByYWMgR28gQ2F0KQ0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDA4 LzExLzgxMTM5Mi8gMTc6MTknIDAxLzExLzIwMDggKEdNVCs3KQ0KDQpUUCBIQ006IER1IGtobyBi YWkgbmh1bmcgdGhpZXUgZGF0IHhheSB0cnVvbmcsIG5oYSB0YWkgZGluaCBjdSANCg0KaHR0cDov L3d3dy5iYW9tb2kuY29tL0luZm8vWHUtbmdoaWVtLW5odW5nLXNhaS1waGFtLXRyb25nLXhheS1k dW5nLW5oYS1jYW8tdGFuZy10YWktVFAtSENNLzU4LzQ2MzQ4NDQuZXBpIA0KDQpUUCBIQ006IGRp YSBiYW4gbm9uZywgcGh1YyB0YXAgbmhhdCB2ZSB0aW5oIHRyYW5nIHhheSBkdW5nIHNhaSBwaGVw LCB0cmFpIHBoZXAgDQoNCkxhIG1vdCB0cm9uZyAyIHRoYW5oIHBobyBkdW9jIGRhYyBjYWNoIGNo byBwaGVwIHRoaSBkaWVtIHRoYW5oIGxhcCBsdWMgbHVvbmcgdGhhbmggdHJhIA0KeGF5IGR1bmcg ZGUgcXVhbiBseSB2YW4gZGUgeGF5IGR1bmcgdHJlbiBkaWEgYmFuLCBuaHVuZyBjbyBtb3QgZGll dSBkYW5nIGJ1b24gbGEgY2hpbmggDQpvIFRQIEhDTSwgbm9pIGNvIGx1YyBsdW9uZyB0aGFuaCB0 cmEgeGF5IGR1bmcgaHVuZyBoYXUgbmhhdCwgbGFpIGxhIGRpYSBiYW4gbm9uZywgcGh1YyANCnRh cCBuaGF0IHZlIHRpbmggdHJhbmcgeGF5IGR1bmcgc2FpIHBoZXAsIHRyYWkgcGhlcC4uLiANCg0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDkvQ2FuLWNhbmgtdnUtc2FwLXRhaS1j b25nLXRydW9uZy1QaHUtTXktSHVuZy05MzMxMjcvIDEzOjI4LCAwMS8wOS8yMDEwIChHTVQrNykN Cg0KVFAuSENNOiBWdSBzYXAga2luaCBob2FuZyB0YWkgY29uZyB0cnVvbmcgUGh1IE15IEh1bmcg LSBTYW4gYmUtdG9uZyBzYXAgeHVvbmcgY28gZGllbiB0aWNoIGtob2FuZyAyMTUgbWV0IHZ1b25n ICANCg0KaHR0cDovL3BoYXBsdWF0dHAudm4vMjAxMDA3MjUxMjU4MzQ1NjFwMGMxMDE1L3RwLWhj bS1zYXAtMTEtY2FuLW5oYS14dW9uZy1zb25nLXRoYW5oLWRhLmh0bSAyNS8wNy8yMDEwIC0gMDE6 MDEgUE0NCg0KVFAuIEhDTTogU2FwIDExIGNhbiBuaGEgeHVvbmcgc29uZyBUaGFuaCBEYQ0KDQpo dHRwOi8vbmdvaXNhby5uZXQvTmV3cy9UaG9pLWN1b2MvMjAxMC8wOC8zQjlEMEE5OS8gMi84LzIw MTAsIDIwOjU1IEdNVCs3DQoNClRQLiBIQ006IFNhcCBuaGEgbyBUUCBIQ00sIDcgbmd1b2kgYmkg dnVpIGxhcA0KDQpodHRwOi8vd3d3LmJhb2RhdHZpZXQudm4vSG9tZS9jaGluaHRyaXhhaG9pL1Nh cC1uaGEtMy10YW5nLWhhaS1uZ3VvaS1iaS10aHVvbmctbmFuZy8yMDEwOC8xMDYwMjcuZGF0dmll dCA5OjU2IFBNLCAwMi8wOC8yMDEwDQoNClRQLiBIQ006IFNhcCBuaGEgMyB0YW5nLCBoYWkgbmd1 b2kgYmkgdGh1b25nIG5hbmcgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1Bh Z2VzLzIwMTAzOC8yMDEwMDkxMzAwNTk1OC5hc3B4IERhbSBIdXkgMTMvMDkvMjAxMCAwOjU5IA0K DQpUUCBIQ006IE51IGRhbyBkaWVuIFZpZXQga2lldSBiaSBjb24gZG8gdGFuIGNvbmcgIC0gdnUg dmllYyBtYW5nIHRpbmggY2hhdCBtYW5oIGRvbmcsIG5ndXkgaGllbSANCiAgDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzgvMjAxMDA5MTMwMDU5NTguYXNweCAx My8wOS8yMDEwIDA6NTkgDQoNClRQIEhDTTogVGhvaSBnaWFuIHF1YSwgbmhpZXUgY2h1bmcgY3Ug ZGEgYmkga2UgbGEgZG90IG5oYXAgdGFuIGNvbmcga2hpZW4gbmd1b2kgZGFuIHZvIGN1bmcgaG9h bmcgbWFuZw0KDQpUcm9uZyBzbyBkbyBjbyBuaHVuZyB2dSBraGEgbmdoaWVtIHRyb25nIG5odTog DQoNCi0gY3VvaSBuYW0gMjAwOSwgdGFpIGJhaSBnaXUgeGUgY3VhIGNodW5nIGN1IGNhbyBjYXAg U3JlYyBUb3dlciAoUS4zKSwgY2Egc2kgDQpraWVtIGRpZW4gdmllbiBkaWVuIGFuaCBOZ29jIEhp ZW4gYmkga2UgbGEgbWF0IGNhbSBtYSB0YXUgY2hlbSBiaSB0aHVvbmcgbmFuZyBwaGFpIGR1YSBk aSBjYXAgY3V1OyANCg0KLSBjdW9pIHRoYW5nIDcuMjAxMCwgY2hpIFQuSy5IICgyOSB0dW9pLCBu Z3UgbyBjaHVuZyBjdSBWYW4gRG8sIFAuMSwgUS40KSB2dWEgDQptbyBjdWEgdmFvIG5oYSBkYSBi aSBtb3QgdGhhbmggbmllbiB4b25nIHZhbyBkdW5nIGRhbywgcm9pIGRpZW4ga2hvbmcgY2hlLiAN ClNhdSBkbywgaHVuZyB0aHUgbGF5IGNvbmcgc28gdGFtIGtob2EgdGF5LCBuaG90IG5hbiBuaGFu IHRyb25nIG5oYSB2ZSBzaW5oOyByb2kgbGF5IHRhaSBzYW4gdGF1IHRob2F0Li4uIA0KDQpodHRw Oi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDcvM0JBMUUzOTYvIDIxLzcvMjAx MCwgMTA6MTggR01UKzcNCg0KVFAgSENNOiBEYW8gY2hpY2ggaG9hbmggaGFuaCB0cmVuIHhlIGJ1 eXQgDQoNCmh0dHA6Ly90aW50dWMudGltbmhhbmguY29tL3BoYXAtbHVhdC9hbi1uaW5oLXRyYXQt dHUvMjAxMDEwMjkvMzVBQUUxNjEvTmh1bmctdGUtbmFuLW5odWMtbmhvaS10YWktbGFuZy1kYWkt aG9jLS1CYWktMS1DdW9wLWdpYXQtbmdheS1jYW5nLXRhby10b24uaHRtIDI5LzEwLzIwMTAgMTQ6 MTQ6MDANCg0KVFAgSENNOiBOaHVuZyB0ZSBuYW4gbmh1YyBuaG9pIHRhaSBsYW5nIGRhaSBob2Mg LSBCYWkgMTogQ3VvcCBnaWF0IG5nYXkgY2FuZyB0YW8gdG9uIA0KDQooQW5oOiBIaW5oIGFuaCBu aHVuZyBuZ3VvaSBiaSBiYXQga2hpICJsYW0gYW4iIHRhaSBsYW5nIERIIC0gQW5oOiBUcmkgUXVh bmcpDQoNCiBIaWVuIGtodSB2dWMgREggUXVvYyBnaWEgVFAuSENNIGRhbmcgdG9uIHRhaSBuaHVu ZyBsb2FpIHRlIG5hbiBuYW8/ICAgDQoNClRoZW8gQ29uZyBhbiB4YSBEb25nIEhvYSAoSC5EaSBB biwgQmluaCBEdW9uZyksIGdhbiBkYXksIGNhYyBuaG9tIGN1b3AgZ2lhdCB0YWkgDQpsYW5nIERI IGRhbmcgdHJvIG5lbiBsaWV1IGxpbmggdmEgdGFvIHRvbiBob24gdm9pIG5odW5nIHRodSBkb2Fu IGNob25nIHRyYSB2byBjdW5nIA0Kbmd1eSBoaWVtIGtoaSBiaSB0cnV5IGR1b2kuDQoNCkNob25n IHRyYSBiYW5nIGhvaSBjYXkgdmEgcm9pIGRpZW4gdHUgY2hlDQoNCk1hYyBkdSBuYW4gY3VvcCBn aWF0IGNvIGdpYW0gdHJvbmcgdGhvaSBnaWFuIGdhbiBkYXkgZG8gbHVjIGx1b25nIGNvbmcgYW4g a2h1IHZ1YyBjdWEgDQp4YSBEb25nIEhvYSB0byBjaHVjIHR1YW4gdHJhLCB0cmluaCBzYXQgcmFv IHJpZXQsIG5odW5nIGNhYyBzaW5oIHZpZW4gKFNWKSB2YW4gY2h1YSBob2FuIA0KdG9hbiB5ZW4g dGFtIHRydW9jIG5odW5nIHRodSBkb2FuIGN1b3AgIm5vbmciLCB0cm9tIGNhcCBuZ2F5IGNhbmcg dGFvIHRvbiBjdWEgYm9uIHRvaSANCnBoYW0gbmdheSBnaXVhIHRoYW5oIHRoaWVuIGJhY2ggbmhh dC4gDQoNCihBbmg6IERvYW4gZHVvbmcgdHUgREggS2hvYSBob2MgVHUgbmhpZW4gZGFuIHZhbyBr eSB0dWMgeGEgREggUXVvYyBnaWEgVFAuSENNIHRodW9uZyANCnh1eWVuIHhheSByYSBjdW9wIGdp YXQgLSBBbmg6IFRyaSBRdWFuZykNCg0KVHJ1b25nIGNvbmcgYW4geGEgRG9uZyBIb2EgTmd1eWVu IFZhbiBDdW9uZyBjaG8gYmlldCwgbmdheSBjYW5nIGNvIG5oaWV1IG5ob20gdG9pIA0KcGhhbSBo b2F0IGRvbmcgbyBsYW5nIERILg0KDQoiR2FuIGRheSwgbmhvIHN1IGNhcCBiYW8ga2lwIHRob2kg Y3VhIG5ndW9pIGRhbiwgbHVjIGx1b25nIHR1YW4gdHJhIGN1YSBjb25nIGFuIHhhIERvbmcgDQpI b2EgdmEgZGFuIHBob25nIGFwIFRhbiBMYXAgZGEgcGhvaSBob3AgYmF0ICJub25nIiBuaGlldSBu Z3VvaSBjdW9wIHhlIG1heSwgZ2lhdCB0YWkgDQpzYW4gY3VhIFNWLCBkYWMgYmlldCBsYSBraHUg dnVjIGhvIGRhLCBub2kgY28gbmhpZXUgU1YgdHUgdGFwIiwgb25nIEN1b25nIG5vaS4NCg0KTW9p IGRheSwgbW90IHZ1IGN1b3AgdGF4aSBjdW5nIGRhIHhheSByYSB0YWkga2h1IHZ1YyBobyBkYSBz b25nIGJvbiB0b2kgcGhhbSBkYSBiaSBsdWMgDQpsdW9uZyBjb25nIGFuIHRvbSBnb24uDQoNCiJO aG9tIGN1b3AgbmF5IGdpYSBsYW0ga2hhY2ggZGkgZHVvbmcsIG5obyB0YWkgeGUgY2hvIGRlbiBu b2kgaGVvIGxhbmggbyBraHUgdnVjIGhvIA0KZGEgdmEgcmEgdGF5IGN1b3AgeGUuIFR1eSBuaGll biwgbmdheSBzYXUgZG8sIGx1YyBsdW9uZyB0dWFuIHRyYSBkYSBwaG9pIGhvcCBiYXQgZHVvYyAN Cm5ob20gY3VvcCBuYXkiLCBvbmcgQ3Vvbmcga2UuDQoNClRoZW8gY2FjIGNvbmcgYW4gdmllbiBv IHhhIERvbmcgSG9hLCBnYW4gZGF5LCBtb2kga2hpIGJpIHRydXkgZHVvaSwgYm9uIGN1b3AgZ2lh dCBkdW5nIA0KY2EgaG9pIGNheSwgb3QgYm90IHZhIG1hIHRhdSwgdGhhbSBjaGkgbGEgcm9pIGRp ZW4gdHUgY2hlIGRlIGNob25nIHRyYSBoZXQgc3VjIGxpZXUgbGluaC4gDQoNCihBbmg6IENoaSB0 cm9uZyBuaGF5IG1hdCwgbmh1bmcgY2hpZWMgeGUgbWF5IGN1YSBTViBraG9uZyBjYW5oIG1hIGJh eSAtIEFuaDogVHJpIFF1YW5nKSANCg0KQmFjIFQuUCwgbW90IG5ndW9pIHNvbmcgbGF1IG5hbSB0 YWkgbGFuZyBESCwgZ2FuIGt5IHR1YyB4YSAoS1RYKSBrZTogIkNhY2ggZGF5IG1heSANCm5nYXks IHRhaSBtb3QgcXVhbiBhbiB0cmVuIGR1b25nIDYyMSBkYW4gcmEgeGEgbG8gSGEgTm9pLCBkYSB4 YXkgcmEgbW90IHZ1IGN1b3AgeGUgbWF5IA0KdGF5IGdhIGRhdCB0aWVuLiBLaGkgY2h1IG5oYSB0 cnV5IGR1b2kgdGhlbyBib24gY3VvcCwgbGllbiBiaSBjaHVuZyBkdW5nIG1hIHRhdSBjaG9uZyB0 cmEgDQpkb2kgY2hlbSIuDQoNCkJhYyBULlAgbm9pIHRoZW0gbHVjIHRydW9jLCB0dXkgbmFuIGN1 b3AgZ2lhdCBjbyB4YXkgcmEgdGh1b25nIHh1eWVuIG5odW5nIGtob25nIGNvIA0KY2h1eWVuIGJv biBjdW9wIGNob25nIHRyYSBxdXlldCBsaWV0IGJhbmcgdnUga2hpIG5odSB0aG9pIGdpYW4gZ2Fu IGRheS4NCg0KQ3VvcCB4ZSBtYXkgYmFuZyAiZG9hbiBiZSBraG9hIg0KDQpDb25nIGFuIGtodSB2 dWMgbyB4YSBEb25nIEhvYSBjaG8gYmlldCwga2hpIGhvYXQgZG9uZywgYm9uIGN1b3AgZ2lhdCB0 aHVvbmcgZGkgdGhlbyANCm5ob20gdHUgaGFpIGRlbiBib24gbmd1b2ksIGFuIG1hYyBraGEgbGlj aCBzdSwgZGkgY3VuZyBsdWMgYmFuZyBuaGlldSB4ZSBtYXkuDQpMb2kgZHVuZyBzbyBobyBjdWEg U1YgdmEgbmd1b2kgZGFuIHRhaSBjYWMgcXVhbiBjb20sIGRpZW0ga2luaCBkb2FuaCwgY2FjIGto dSBuaGEgDQp0cm8uLi4sIGJvbiBjdW9wIHhlIG1heSBsaWVuIGR1bmcgImRvYW4gYmUga2hvYSIg ZGUgY3VvcCB4ZSBtYXkgY2hheSB0aG9hdC4gDQoNCkRheSBsYSAiZG9hbiBiZSBraG9hIiBjdWEg Ym9uIGN1b3AgYmkgY29uZyBhbiB4YSBEb25nIEhvYSB0aHUgZ2l1IC0gQW5oOiBUcmkgUXVhbmcN Cg0KIlRhdCBjYSBjaGkgZGllbiByYSB0cm9uZyB2b25nIG1heSBjaHVjIGdpYXksIG5lbiBkYSBw aGFuIGNodSB4ZSBraG9uZyBraXAgcGhhdCBoaWVuLg0KVHJvbmcgdHJ1b25nIGhvcCBiaSBwaGF0 IGhpZW4gdGhpIGNodW5nIGNvIGRvbmcgYm9uIGNoZSBjaGFuIGRlIGN1bmcgdGF1IHRob2F0IGFu IA0KdG9hbiIsIGFuaCBMdW9uZywgY29uZyBhbiBraHUgdnVjIGN1YSB4YSBEb25nIEhvYSBub2ku DQoNCk5nb2FpIHJhLCBuYW4gY3VvcCBnaWF0IHRhaSBzYW4gbmh1IGRpZW4gdGhvYWksIGdpbyB4 YWNoLCBkbyB0cmFuZyBzdWMgY3VuZyBkaWVuIHJhIGtoYSANCnBobyBiaWVuIHRhaSB0dXllbiBk dW9uZyB0dSB0cnVvbmcgREggS2hvYSBob2MgdHUgbmhpZW4gZGFuIHZhbyBreSB0dWMgeGEgKEtU WCkgREggDQpRdW9jIGdpYSBUUC5IQ00uDQoNCk5oaWV1IHRydW9uZyBob3AgY3VvcCBnaWF0IGRh IGtob25nIHhheSByYSBuaG8gc3UgdHJvIGdpdXAgY3VhIG5ndW9pIGRhbiB2YSBsdWMgbHVvbmcg DQp0dWFuIHRyYSBob2F0IGRvbmcgdGljaCBjdWMuDQoNCk5nYXkgMTcuMTAsIG1vdCBuaG9tIGN1 b3AgIm5vbmciIGRhbmcgdGluaCByYSB0YXkgdGFpIGtodSB2dWMgZGFuIHZhbyBLVFggREggUXVv YyANCmdpYSBUUC5IQ00gdGhpIG5ndW9pIGRhbiBsaWVuIHRydXkgaG8sIGRvbmcgdGhvaSBsdWMg bHVvbmcgdHVhbiB0cmEgdGFpIGNobyBkYSB0cnV5IGR1b2kgDQpuZ2FuIGNoYW4gdmEgYmF0IGdp dSBraXAgdGhvaS4NCg0KVHJ1b2MgZG8sIGNoaWV1IDQuNiwgbHVjIGx1b25nIHR1YW4gdHJhIGtp ZW0gdHJhIGRvdCB4dWF0IGhhaSBuZ3VvaSBkYW5nIGRpIHhlIG1heSB0aGkgDQpwaGF0IGhpZW4g dHJvbmcgbmd1b2kgY3VhIGNodW5nIGNvIHNvaSBkYXkgY2h1eWVuIGJpIGR1dCBkbyBtb2kgdnVh IGdpYXQgZHVvYyBvIG5vaSANCmtoYWMuDQoNClF1YSBkaWV1IHRyYSBraGFpIHRoYWMsIGNodW5n IGtoYWkgbmhhbiBkYW5nIHJhbyBxdWFuaCBsYW5nIERIIGRlIHRpZXAgdHVjIGN1b3AgZ2lhdCB0 YWkgc2FuIFNWIHRoaSBiaSBiYXQuIA0KDQpbQ29uZyBhbiB4YSBEb25nIEhvYSBsdXUgeTogbW9p IGtoaSB4YXkgcmEgdHJvbSBjYXAgaG9hYyBjdW9wICJub25nIiwgU1YgdmEgbmd1b2kgDQpkYW4g Y28gdGhlIGJhbyBuZ2F5IHF1YSBkdW9uZyBkYXkgbm9uZzogMDY1MCAzNzUwIDg3MiBkZSBjb25n IGFuIHhhIGtpcCB0aG9pIGdpdXAgDQpkby5dIA0KIA0KVmFvIDE3IGdpbyAzMCBwaHV0IG5nYXkg NS42LCBoYWkgbmd1b2kga2hhYyBkaSB4ZSBtYXkgY28gaGFuaCB2aSBkYW5nIG5nbyBkYSBiaSBj b25nIGFuIGtodSB2dWMgY2hvIGR1bmcgeGUga2llbSB0cmEuDQoNClNhdSBraGkgdHJhIGhvaSwg Y2h1bmcgY2hvIGJpZXQgZGFuZyBkdW5nIGNoaWVjIHhlIHZ1YSB0cm9tIGR1b2MgZGUgdGllcCB0 dWMgZGkgImtpZW0gDQphbiIgbyB0dXllbiBkdW9uZyBESCBRdW9jIGdpYSBUUC5IQ00uIEN1IHRo ZSBsYSBjaHVuZyBzZSBkdW5nICJkb2FuIGJlIGtob2EiIGRlIA0KY3VvcCB4ZSBtYXkuDQpUaGVv IG9uZyBOZ3V5ZW4gVmFuIEN1b25nLCB0dSBkYXUgbmFtIGRlbiBuYXksIGxhbmcgREggZGEgeGF5 IHJhIDU0IHZ1IHZpZWMgbGllbiANCnF1YW4gZGVuIGFuIG5pbmggdHJhdCB0dSB2YSBkb2kgc29u ZyB4YSBob2ksIGdpYW0gNSB2dSBzbyB2b2kgY3VuZyBreSBuYW0gbmdvYWkuIA0KDQooQW5oOiBU dSBkYXUgbmFtIGRlbiBuYXksIGNvbmcgYW4geGEgRG9uZyBIb2EgZGEgeHUgbHkgMzEgdnUgdHJv bSBjYXAgdGFpIHNhbiBTViB2YSBuZ3VvaSBkYW4gbyBsYW5nIERIIC0gQW5oOiBUcmkgUXVhbmcp IA0KDQpUcm9uZyBkbywgdHJvbSBjYXAgY28gMzEgdnUsIGdpYW0gaGFpIHZ1IHNvIHZvaSBjdW5n IGt5IG5hbSBuZ29haS4NCg0KQ29uZyBhbiB4YSBEb25nIEhvYSBkYSBsYW0gcm8gMTEgdnUgdmEg YmF0IDE0IG5ndW9pLCB0aHUgaG9pIGJhIHhlIG1heSwgbW90IGxhcHRvcCANCmN1bmcgMjYgdHJp ZXUgZG9uZyB0aWVuIG1hdC4NCkRhYyBiaWV0LCB0cm9uZyAxMCB0aGFuZyBxdWEsIGNvbmcgYW4g eGEgdHJlbiBjdW5nIGRhIGJhdCBnaXUgbW90IGRvaSB0dW9uZyBzdSBkdW5nIG1hIA0KdHV5IHRy b25nIGtodW9uIHZpZW4gbGFuZyBESC4gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMC04NTg0 MjUwMTgvbmh1bmdfdGVfbmFuX25odWNfbmhvaV90YWlfbGFuZ19kYWlfaG9jX2JhaV8yX2NhdV9k ZV9kZV9ob25fY2F1X2NhX25ic3AuaHRtbCBUcmkgUXVhbmcgKFRoZW8gd3d3LnRoYW5obmllbi5j b20udm4pIA0KDQpUUCBIQ006IE5odW5nIHRlIG5hbiBuaHVjIG5ob2kgdGFpIGxhbmcgZGFpIGhv YyAtIEJhaSAyOiBDYXUgImRlIiBkZSBob24gY2F1IGNhICANCg0KKFROTykgTyBsYW5nIGRhaSBo b2MgKERIKSwgaGUgZGVuIGtodSBuaGEgdHJvIG5hbyBob2kgdmUgbmFuIG1hdCBjYXAsIGNodW5n IHRvaSBjdW5nIA0KZGV1IG5naGUgc2luaCB2aWVuIChTVikga2Uga2hvbmcgaGV0IGNodXllbi4g RGllbiB0aG9haSBkaSBkb25nLCBtYXkgdGluaCB4YWNoIHRheSBjdWEgDQpTViBjdSBsaWVuIHR1 YyAiZG9pIG5vbiByYSBkaSIuIA0KDQoqIEJhaSAxOiBDdW9wIGdpYXQgbmdheSBjYW5nIHRhbyB0 b24gDQoNCk1hdCBjYXAgYW0gYW5oIFNWIA0KDQpOYW4gbWF0IGNhcCB0YWkgY2FjIGtodSBuaGEg dHJvIG8ga2h1IHZ1YyBESCBRdW9jIGdpYSBUUC5IQ00gZGllbiByYSBwaG8gYmllbiBkZW4gDQpu b2kgY2FjIGtobyBjaHUgY2hhbiBuYW4gY2Egdm9pIHZpZWMgYmFvIGNobyBjb25nIGFuIGRpYSBw aHVvbmcgbmhvIHRpbSBnaXVwLg0KIA0KKEFuaDogVGFpIGtodW9uIHZpZW4gREggUXVvYyBnaWEg VFAuSENNIHZhbiBjb24gcmF0IG5oaWV1IGtodSBuaGEgdHJvIGhlbyBodXQgdmEgDQptYXQgYW4g dG9hbiBuaHUgdGhlIG5heSAtIEFuaDogVHJpIFF1YW5nKSANCg0KIlRydW9jIGRheSwgbWluaCBt YXQgY2FpIGRpZW4gdGhvYWkgaG9uIHRyaWV1IGRvbmcsIGRpIGJhbyBjb25nIGFuIHRoaSBjdW5n IGl0IGh5IHZvbmcgDQp0aW0gbGFpIGR1b2MgbGFtLCBuZW4gdGhvaSwgcmFuZyBsYW0gdGhlbSBt dWEgY2FpIGtoYWMgdmFpIHRyYW0gbmdhbiBkb25nIHhhaSBkbyB2YXkiLCANCkh1bmcsIFNWIG5h bSAzIHRydW9uZyBESCBLaG9hIGhvYyBYYSBob2kgdmEgTmhhbiB2YW4gVFAuSENNIG5vaS4gDQoN Ck4uVC5UaGFvLCBTViB0cnVvbmcgREggS2hvYSBob2MgWGEgaG9pIHZhIE5oYW4gdmFuIFRQLkhD TSwgbW9pIGRlbiB0cm8gaG9jIHRhaSANCmtodSBuaGEgbyBzYXUgdHJ1b25nIERIIEFuIG5pbmgg KHRodW9jIGtodSBwaG8gNiwgUC5MaW5oIFRydW5nLCBRLlRodSBEdWMpIGtlOiANCiJQaG9uZyBj dWEgbWluaCBtb2kgYmkgbWF0IGhhaSBjYWkgZGllbiB0aG9haS4gQ2EgcGhvbmcgZGFuZyBuZ3Ug dGhpIGJvbiB0cm9tIGxlbiB2YW8gDQoiY2F1IiBtYXQgbWEga2hvbmcgYWkgYmlldCIuDQoNCkhh aSBjbyBiYW4gc2F0IHBob25nIGN1YSBUaGFvIGN1bmcgdnVhIGJpIHRyb20gImNhdSIgbWF0IGxh cHRvcCwgbmVuIGhvYW5nIHF1YSBsaWVuIA0KY2h1eWVuIGRpIG5vaSBraGFjIG8uDQoNCkRhIHBo YW4sIG5ndXllbiBuaGFuIG1hdCBjYXAgdGFpIGNhYyBraHUgbmhhIHRybyBub2kgdHJlbiBsYSBk byBTViB0aGlldSBjYW5oIGdpYWMuIA0KVHJvbmcgMTAgdHJ1b25nIGhvcCBjaHVuZyB0b2kgbmdo ZSBTViBrZSBsaWVuIHF1YW4gZGVuIG1hdCBjYXAgdGFpIHNhbiB0aGkgY28gZGVuIHRhbSANCnRy dW9uZyBob3AgU1Ygbm9pIGRvIG5ndSBxdWVuIHZhIGJpIGtlIGdpYW4gbGVuIHZhbyBwaG9uZyBs YXkgZG8uIA0KDQoiQm9uIHRyb20gYmF5IGdpbyBsaWV1IGxhbSwgaGUgdGhheSBwaG9uZyBuYW8g a2hlcCBjdWEgaG8gdmEgY2h1IHBob25nIGRhbmcgbmd1IHRoaSANCmJpbmggdGluaCBtbyBjdWEg YnVvYyB2YW8uIE5ldSBTViB0cm9uZyBwaG9uZyB0aHVjIGRheSwgYm9uIGNodW5nIHZvIG5vaSAi dmFvIG5oYW0gDQpwaG9uZyIgZGUgZGFuaCBiYWkgY2h1b24sIGNvbiBraG9uZyB0aGkgbGF5IHRh aSBzYW4gcm9pIGJvIGRpIG5nYXkiLCBhbmggTHVvbmcsIGNvbmcgYW4ga2h1IHZ1YyBvIHhhIERv bmcgSG9hIGNobyBiaWV0LiANCg0KQ2hpIEhhLCBiYW4gcXVhbiBnYW4ga2h1IG5oYSB0cm8gdHJl biBjaG8gYmlldCB0aGVtOiBHYW4gZGF5LCBuaGlldSBuZ3VvaSBnaWEgZGFuaCANCm5oYW4gdmll biBjdWEgY2FjIGNvbmcgdHkgZGVuIGJhbiBzYW4gcGhhbSBjbyBib2MgdGhhbSB0cnVuZyB0aHVv bmcsIGRlIGx1YSBsYXkgdGFpIHNhbiANCmN1YSBuaHVuZyBTViBuaGUgZGEuDQoNCiJCb24gbmF5 IHRodW9uZyBnaWEgdm8gY2hvIFNWIGNhbyB0aGUgdHJ1bmcgdGh1b25nLCB2YSB0aGUgbmFvIGN1 bmcgdHJ1bmcgZGFtLiBTYXUgDQpkbywgYm9uIGNodW5nIHlldSBjYXUgU1YgZGllbiB0ZW4gdmFv IGJpZW4gYmFuIHJvaSBoZW4gbmdheSBsZW4gdHJ1IHNvIGNvbmcgdHkgZGUgbmhhbiANCnRpZW4g dGh1b25nIHZvaSBkaWV1IGtpZW4gU1YgcGhhaSB1bmcgdHJ1b2MgdGllbiBob2FjIHRhaSBzYW4g bmh1IGRpZW4gdGhvYWksIHRyYW5nIHN1Yy4uLiANCmRlIGxhbSB0aW4uIEtoaSBTViB0aW0gZGVu IGNhYyBkaWEgY2hpIGNvbmcgdHkgdHJlbiB0aGkgbW9pIGJpZXQgbWluaCBiaSBnYXQiLCBjaGkg SGEga2UuDQoNCkR1YSB4ZSB2YW4gY2h1YSBnaWFtDQoNCkhpZW4gdGFpLCB0aW5oIGhpbmggZHVh IHhlIHZhbiBkaWVuIHJhIGRldSBkYW4gdmFvIG1vaSBjdW9pIHR1YW4gbyBraHUgdnVjIGhvIGRh IGN1YSANCmxhbmcgREguIA0KDQoiSGF1IG5odSB0aHUgYmF5LCBjaHUgbmhhdCBuYW8sIGNhYyBu aG9tIGR1YSB4ZSBjdW5nIHR1IHRhcCBuZXQgcG8sIGRhbmggdm9uZywgZHVhIHRvYyANCmRvIG8g Y2FjIHR1eWVuIGR1b25nIGhvIGRhLCBnYXkgbmd1eSBoaWVtIGNobyBuZ3VvaSBkYW4gdmEgU1Yu IE5ldSBjYWMgbmhvbSBkdWEgeGUgDQppdCBuZ3VvaSB0aGkgY29uZyBhbiB4YSB0cnVjIHRpZXAg Y28gbWF0IGRlIHRydXkgYmF0LCB0YW0gZ2l1IHBodW9uZyB0aWVuLCBjb24gbmV1IHF1eSBtbyAN CmhhbmcgdHJhbSB4ZSB0aGkgY2h1bmcgdG9pIHBoYWkgbmhvIGRlbiBsdWMgbHVvbmcgY2FuaCBz YXQgMTEzLCBjYW5oIHNhdCBnaWFvIHRob25nIA0KaHV5ZW4gRGkgQW4gY3VuZyBwaG9pIGhvcCB0 cnV5IHF1ZXQiLCBhbmggTmd1eWVuIFZhbiBDdW9uZywgRG9pIHRydW9uZyBjb25nIGFuIHhhIA0K RG9uZyBIb2EgKEJpbmggRHVvbmcpIG5vaS4gDQoNCihBbmg6IER1b25nIGRvYyBobyBkYSB0aHVv bmcgeHV5ZW4gZGllbiByYSBuYW4gZHVhIHRvYyBkbyB2YW8gY3VvaSB0dWFuIC0gQW5oOiBUcmkg UXVhbmcpICANCg0KTW90IHNvIGNoaSBiYW4gaGFuZyByb25nIGRvYyBibyBobyBkYSBrZSwgdHJ1 b2MgZGF5LCBjaGkgdHVuZyBjaHVuZyBraWVuIG5oaWV1IHZ1IHRhaSANCm5hbiBuZ2hpZW0gdHJv bmcgZG8gZHVhIHhlIGxhbmcgbGFjaCB0YWkga2h1IHZ1YyB0cmVuLg0KDQpEYWMgYmlldCwgY2hp ZXUgY3VvaSB0dWFuIG5hbyBjdW5nIGNvIHJhdCBkb25nIFNWIHR1IHRhcCBoYWkgYmVuIGR1b25n IG8gZ2FuIGJvIGhvIGRlIA0KeGVtIGR1YSB4ZS4gQ2FjIHRheSBsYWkgbGlldSBtYW5nIG5ldCBw byBsYW8gZGkgcm9pIG5hbSBkYWkgdHJlbiB0aGFuIHhlIGJpZXUgZGllbiB2byBjdW5nIA0KbWFv IGhpZW0uDQoNCkRpZXUgZGFuZyBub2kgbGEgc2F1IGtoaSBkdWEgeGUgeG9uZywgY2FjIG5ob20g InllbmcgaHVuZyIgY29uIGNoYXkgdGFuIGxvYW4gdHJvbmcgY2FjIA0KdHV5ZW4gZHVvbmcgZG9u ZyBkdWMgbmd1b2kgcXVhIGxhaSwgZGUgZG9hIHRydWMgdGllcCBkZW4gc3UgYW4gdG9hbiBjdWEg U1YgdmEgbmd1b2kgDQpkYW4uDQoNClRoaWV1IHRhIFBoYW4gVmFuIFN1LCBEb2kgdHJ1b25nIERv aSBjYW5oIHNhdCBnaWFvIHRob25nIFEuVGh1IER1YyAoVFAuSENNKSBub2k6IA0KIlR1IGRhdSBu YW0gZGVuIG5heSwgY2h1bmcgdG9pIGRhIHBob2kgaG9wIGN1bmcgQ1NHVCBodXllbiBEaSBBbiBk ZSB0cmFuIGFwIGRvaSB0dW9uZyBkdWEgeGUgdmEgYmF0IGdpdSBoYW5nIGxvYXQgdGhhbmggbmll biBkdWEgeGUgdHJhaSBwaGVwIHRhaSBobyBkYS4gVHV5IG5oaWVuLCB2YW4gDQpuYW4gdHJlbiB2 YW4gY2h1YSBjbyBkYXUgaGlldSBkdW5nIGxhaSwgZG8gdmF5IHNhcCB0b2ksIGNodW5nIHRvaSBz ZSB0aWVwIHR1YyBwaG9pIGhvcCBsYW0gDQptYW5oIHRheSBob24gbnVhIi4NCg0KS2hvbmcgY2hp IGNvIGR1YSB4ZSwgbm9pIG5heSBjb24gbGEgZGllbSBoZW4gInh1IiBuaGF1IGN1YSBnaW9pIGdp YW5nIGhvLiBUaGVvIG5ndW9uIA0KdGluIHJpZW5nIGN1YSBUaGFuaCBOaWVuIE9ubGluZSwgbW9p IHR1YW4gdHJ1b2MsIG1vdCB2dSBkYW5oIG5oYXUgdGFwIHRoZSBkYSBkaWVuIHJhIA0KbmdheSBn aXVhIGJhbiBuZ2F5LiANCg0KIlRvaSBkYW5nIGRpIGJvIHRhcCB0aGUgZHVjIGdhbiBobyBkYSB0 aGkgYmF0IG5nbyB0aGF5IG5oaWV1IHRoYW5oIG5pZW4ga2VvIHRvaSwgdHUgdGFwIA0KZG9uZyBs YW0sIHJvaSB0dWkgbm8geGFjaCBuaGlldSBodW5nIGtoaSwgZ2F5IGdvYyBkZSBydW90IGRhbmgg bmhhdS4gVG9pIGhvYW5nIHF1YSBuZW4gDQpibyBjaGF5IHZlIG5oYSBkZW4gbm9pIGR1dCBjYSBk ZXAgbHVvbiIsIG1vdCBuaGFuIGNodW5nIGtlIGxhaS4gDQoNClR1IGRhdSBuYW0gZGVuIG5heSwg bGFuZyBESCBjbyBoYW5nIGNodWMgdnUgZ2F5IHJvaSB0cmF0IHR1LCBtYSBuZ3V5ZW4gbmhhbiBj dWEgcGhhbiANCmxvbiB2dSB4byB4YXQgbmhhdSB4dWF0IHBoYXQgdHUgY2FjIHF1YW4gbmhhdS4N Cg0KSGllbiB0YWksIGxhbmcgREggY28gaGFuZyBjaHVjIHF1YW4gbmhhdSBsb24gbmhvLCB0aGFt IGNoaSBuZ2F5IHRyb25nIGJlbiB4ZSBidXl0IHRhbSANCmN1YSBraHUgdnVjIG5heSBjdW5nIGNv IG1vdCBxdWFuIG5oYXUgdG8gZHVuZy4gDQoNCk9uZyBNYWkgVGhhbmggQmluaCAtIFRydW9uZyBw aG9uZyBRdWFuIGx5IHZhIHBoYXQgdHJpZW4gZG8gdGhpIERIIFF1b2MgZ2lhIFRQLkhDTSANCi0g bHkgZ2lhaTogbmhpZXUgZGllbSBraW5oIGRvYW5oIHF1YW4gYW4sIHF1YW4gbmhhdSB0cm9uZyBs YW5nIHZhbiB0b24gdGFpIGxhIGRvIHRpZW4gZG8gDQpnaWFpIHRvYSBkZW4gYnUgY3VhIGRpYSBw aHVvbmcgY29uIHRyaWVuIGtoYWkgY2hhbS4gDQoNClRoZW8gb25nIEJpbmgsIHNhcCB0b2ksIERI IFF1b2MgZ2lhIFRQLkhDTSBzZSBkYW5oIGdhbiAyMCBoYSBkYXQgZGUgeGF5IGR1bmcga2h1IA0K ZGljaCB2dSBjb25nIGNvbmcgZGFuaCBjaG8gU1YsIHZvaSBjYWMgY29uZyB0cmluaCB0aGlldCB5 ZXUgbmh1IHNpZXUgdGhpLCBiZW5oIHZpZW4sIG5oYSANCnZhbiBob2EsIGtodSBnaWFpIHRyaSB2 dWkgY2hvaS4uLiwgZGUgcGh1YyB2dSBuaHUgY2F1IHNpbmggaG9hdCBjaG8gU1YgREggUXVvYyBn aWEgDQpUUC5IQ00uDQoNCkRpZW0gIm5vbmciIGhvIGRhDQoNClR1IGxhdSwgbmd1b2kgZGFuIHZh IFNWIG8gbGFuZyBESCBnb2kgaG8gZGEgbGEgImhvIHR1IHRoYW4iIHZpIGNvIGtoYSBuaGlldSB0 cnVvbmcgaG9wIA0KdGhpZXQgbWFuZyBkbyB4dW9uZyBobyB0YW0gYmkgY2h1b3QgcnV0IGhvYWMg ZGFvIGNob2kgdmEgYmF0IG5nbyBiaSB0cnVvdCBjaGFuIHRlIHh1b25nIA0KbnVvYy4NCg0KVHJ1 b2MgZGF5LCBESCBRdW9jIGdpYSBUUC5IQ00gZGEgdGhpZXQgbGFwIHR1b25nIHJhbyBiYW8gcXVh bmggaG8gZGUgdHJhbmggdGluaCB0cmFuZyANClNWIHR1IHRhcCwgbGFtICJtb2kiIGNobyBjYWMg bmhvbSB0b2kgcGhhbS4NCg0KU29uZywgbW90IHNvIHZpIHRyaSBjdWEgdHVvbmcgcmFvIGRhIGJp IHBoYSBkbyBuZ2F5IHNhdSBkbyB2YSBTViBjdSB2aWVjIGNoYXkgeGUgbWF5IA0KdmFvIGNob2kg dmEgY2FjIGNhcCB0aW5oIG5oYW4gdGhpIHZvIHR1IGhlbiBoby4gDQoNCk9uZyBNYWkgVGhhbmgg QmluaCBjaG8gYmlldDogVGhlbyBrZSBob2FjaCwgREggUXVvYyBnaWEgVFAuSENNIHNlIGtoYW4g dHJ1b25nIA0KdGhhbmggbGFwIFRydW5nIHRhbSBRdWFuIGx5IHZhIHBoYXQgdHJpZW4gZG8gdGhp IERIIFF1b2MgZ2lhIFRQLkhDTSwgdHJvbmcgZG8gY28gdG8gDQphbiBuaW5oIHRyYXQgdHUuIFRv IG5heSBzZSB0aHVvbmcgeHV5ZW4gdHVhbiB0cmEsIG5oYWMgbmhvIFNWIGtob25nIGR1b2MgeHVv bmcgaG8gdGFtLg0KDQpIaWVuIHRhaSwgdG9hbiBsYW5nIERIIHZhbiBjaHVhIGNvIGhvIGJvaSBj aG8gU1YuIFNvbmcsIHRoZW8gb25nIEJpbmgsIFNWIGNvIHRoZSBzdSANCmR1bmcgZGljaCB2dSBo byBib2kgY28gdGh1IHBoaSBjdWEgdHJ1b25nIERIIFRoZSBkdWMgdGhlIHRoYW8gSUkgbmFtIG8g bmdhIGJhIERhaSANCkN1b25nLg0KDQoiVHUgZGF1IG5hbSBkZW4gbmF5LCB0YWkgaG8gZGEgY28g bW90IHRydW9uZyBob3AgdHUgdm9uZyBkbyB0YW0gaG8sIGdpYW0gYmEgdnUgc28gdm9pIA0KY3Vu ZyBreSBuYW0gbmdvYWkuIFRyb25nIGtoaSBkbywgbmFuIGN1b3AgdGFpIHNhbiBjbyBodW5nIGto aSB0YWkgaG8gZGEgeGF5IHJhIGhhaSB2dSwgDQpnaWFtIGJhIHZ1IHNvIHZvaSBjdW5nIGt5IG5h bSBuZ29haS4gTHVjIGx1b25nIGNvbmcgYW4geGEga2hhaSB0aGFjIGxhbSBybyBoYWkgdnUsIGJh dCANCmJvbiBkb2kgdHVvbmciLCBUcnVvbmcgY29uZyBhbiB4YSBEb25nIEhvYSBjaG8gYmlldC4N Cg0KTWFjIGR1IGNvbiBzbyB0dSB2b25nIGRvIHRhbSBobyB0aGVvIHNvIGxpZXUgdG9uZyBob3Ag Y3VhIGNvbmcgYW4geGEgRG9uZyBIb2EgY28gDQpnaWFtIG5odW5nIGRheSB2YW4gbGEgZGllbSAi bm9uZyIgY3VhIGxhbmcgREggdm9pIG5oaWV1IHRydW9uZyBob3AgdHJhbiBsb3QsIGN1b3AgDQoi bm9uZyIgdGhlbyBsb2kga2UgY3VhIG5ndW9pIGRhbiB2YSBTVi4gKENvbiB0aWVwKQ0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDQvMjAxMDEwMjgxNTUxNTcu YXNweCBUcmkgUXVhbmcgMDEvMTEvMjAxMCA4OjUyIA0KDQpUUCBIQ006IE5odW5nIHRlIG5hbiBu aHVjIG5ob2kgdGFpIGxhbmcgREggLSBCYWkgMzogQ2FuIG5oYW5oIHRheSB2YSBtYW5oIHRheSAg DQoNCihBbmg6IFRvaSBwaGFtIHNlIHRpZXAgdHVjIGhvYW5oIGhhbmggdGFpIGxhbmcgREggbmV1 IG5odSBjaHVhIGNvIG5odW5nIGhhbmggZG9uZyANCnRyYW4gYXAgcXV5ZXQgbGlldCB2YSBkb25n IGJvIC0gQW5oOiBUcmkgUXVhbmcpDQoNCihUTk8pIE1hYyBkdSBuZ2F5IHR1IGRhdSB0aGFuZyAx MCwgVUJORCBUUC5IQ00gZGEgY2hpIGRhbyBDb25nIGFuIFRQIGNodSB0cmkgDQpwaG9pIGhvcCB2 b2kgVUJORCBRLlRodSBEdWMgdmEgREggUXVvYyBnaWEgVFAuSENNLCBDb25nIGFuIHRpbmggQmlu aCBEdW9uZyANCmRlIHRhbiBjb25nIHRyYW4gYXAgYm9uIHRvaSBwaGFtLCB0ZSBuYW4geGEgaG9p IHRhaSBraHUgdnVjIERIIFF1b2MgZ2lhIFRQLkhDTSAoUS5UaHUgRHVjKSwgc29uZyBzYXUgZ2Fu IDMgdHVhbiBxdWEsIG5odW5nIGJpZW4gcGhhcCBybyByYW5nIHZhIHF1eWV0IGxpZXQgDQp2YW4g Y2h1YSBkdW9jIHRodWMgaGllbi4gDQoNCiogQmFpIDE6IEN1b3AgZ2lhdCBuZ2F5IGNhbmcgdGFv IHRvbiANCiogQmFpIDI6IENhdSAiZGUiIGRlIGhvbiBjYXUgY2EgDQoNClRoZW8gbW90IG5ndW9u IHRpbiByaWVuZyBjdWEgVGhhbmggTmllbiBPbmxpbmUsIHR1YW4gdHJ1b2MgQ29uZyBhbiBRLlRo dSBEdWMgZGEgDQp0cmlldSB0YXAgY2FjIGx1YyBsdW9uZyBhbiBuaW5oIHRyYXQgdHUsIGFuIHRv YW4gZ2lhbyB0aG9uZyB2YSBuaGlldSBiYW4sIG5nYW5oIGxpZW4gcXVhbiANCmRlIGhvcCBiYW4g dmUgdmllYyBjaHV5ZW4gaG9hIGRpYSBiYW4sIHRyYW4gYXAgdG9pIHBoYW0gdGFpIGtodSBESCBR dW9jIGdpYSwgY29uIGdvaSBsYSANCmxhbmcgREguDQoNCihBbmg6IEtodSB2dWMgaG8gZGEgKHRo dW9jIGRpYSBwaGFuIEJpbmggRHVvbmcpIGJhbyBnaW8gbW9pIGhldCBiaSBjb2kgbGEgImRpZW0g DQpub25nIiBjaHV5ZW4geGF5IHJhIHRyYW4gbG90LCB0cm9tIGN1b3A/IC0gQW5oOiBUcmkgUXVh bmcpDQoNClRpbmggZGVuIHRob2kgZGllbSBoaWVuIHRhaSwgY29uZyB0YWMgdHJhbiBhcCB0b2kg cGhhbSwgdGFuZyBjdW9uZyBhbiBuaW5oIHRyYXQgdHUgdGFpIGxhbmcgDQpESCBjaGkgZHVuZyBs YWkgbyBtdWMgImtoYW8gc2F0IGxhaSIgdmEgeHVhdCBoaWVuIHZhaSBob2F0IGRvbmcgbmhvIGxl Lg0KDQpPbmcgTWFpIFRoYW5oIEJpbmgsIFRydW9uZyBwaG9uZyBxdWFuIGx5IGRvIHRoaSB2YSBk aWNoIHZ1IHRodW9jIFRydW5nIHRhbSBxdWFuIGx5IA0KdmEgcGhhdCB0cmllbiBkbyB0aGkgREgg UXVvYyBnaWEgVFAuSENNIG5vaTogIkNodW5nIHRvaSBjdW5nIGNoaSB2dWEgdGhhbmggbGFwIGRv aSB0cmF0IA0KdHUsIGNodXllbiB0byBjaHVjIHR1YW4gdHJhIG5oYWMgbmhvIGNhYyBiYW4gU1Yg bGFpIHZhbmcgZGVuIGtodSBobyBkYSB0YW0gbWEgdGhvaS4gVmEgDQpoaWVuIHRhaSB2YW4gcGhh aSBjaG8gY2FjIGNvIHF1YW4gY2h1YyBuYW5nLCBkYWMgYmlldCBsYSBsdWMgbHVvbmcgY29uZyBh biB0YW5nIGN1b25nIA0KY2FjIGhvYXQgZG9uZyBxdXkgbW8gdmEgZGFpIGhvaSBob24iLg0KDQpU cm9uZyBraGkgZG8sIGRvaSBDYW5oIHNhdCBnaWFvIHRob25nIFEuVGh1IER1YyBkYW5nIGJhdCBk YXUgbGVuIGtlIGhvYWNoIHBob2kgaG9wIA0KY3VuZyBsdWMgbHVvbmcgQ1NHVCBodXllbiBEaSBB biAoQmluaCBEdW9uZykgZGUgdGFuZyBjdW9uZyBjb25nIHRhYyBwaG9uZyBuZ3VhIA0KbmFuIHR1 IHRhcCBkdWEgeGUsICJkb3QiIHhlIHZhIGJpZXUgZGllbiB0b2MgZG8gdGFpIGtodSBobyBkYSAo dGh1b2MgZGlhIHBoYW4gYXAgVGFuIExhcCwgDQp4YSBEb25nIEhvYSwgSC5EaSBBbikuIA0KDQoo QW5oOiBOYW4gY3VvcCBnaWF0IHhheSByYSB0aHVvbmcgeHV5ZW4gdHJlbiB0dXllbiBkdW9uZyBk YW4gdmFvIGt5IHR1YyB4YSBESCBRdW9jIA0KZ2lhIFRQLkhDTSAtIEFuaDogVHJpIFF1YW5nKQ0K DQpOZ29haSByYSwgdHV5IGNvbmcgYW4geGEgRG9uZyBIb2EgbW9pIGxlbiBrZSBob2FjaCB0aGFu aCBsYXAgdG8gY2h1eWVuIGNob25nIGN1b3AgDQoibm9uZyIgdGFpIGRpYSBiYW4gbGFuZyBESCwg c29uZyBsdWMgbHVvbmcgdmFuIGNvbiBraGEgbW9uZyBuZW4ga2hvIGNvIHRoZSBkYXQgaGlldSAN CnF1YSBjYW8gdHJvbmcgdmllYyBkYW0gYmFvIGFuIHRvYW4gY2hvIGhhbmcgY2h1YyBuZ2FuIHNp bmggdmllbiAoU1YpIHRhaSBraHUgdnVjIHRyZW4uIA0KRG8gbGEgY2h1YSBrZSwgZ2FuIGRheSwg Ym9uIGN1b3AgZ2lhdCBjbyB4dSBodW9uZyBjaG9uZyB0cmEgbmd1b2kgdGhpIGhhbmggY29uZyB2 dSByYXQgDQpxdXlldCBsaWV0IHZhIGxpZXUgbGluaCwgZGUgZG9hIHRydWMgdGllcCBkb2kgdm9p IHRpbmggbWFuZyBjb25nIGFuIHR1YW4gdHJhLiANCg0KIkhpZW4gdGFpLCBkdSBsdWMgbHVvbmcg bW9uZyBuaHVuZyBjaHVuZyB0b2kgY28gZ2FuZyBsYW0gbW9pIHZpZWMgZGUgY28gdGhlIGhhbiBj aGUgDQpjYW5nIHNvbSBjYW5nIHRvdCBuYW4gdHJvbSBjdW9wIHRhaSBzYW4gU1YgdmEgbmd1b2kg ZGFuIHRhaSBsYW5nIERILiBTYXAgdG9pLCBraGkgY28gc3UgDQpwaG9pIGhvcCBtYW5oIG1lIHZh IHRodW9uZyB4dXllbiBob24gZ2l1YSBsdWMgbHVvbmcgY29uZyBhbiwgYW4gbmluaCBjdWEgY2Eg QmluaCANCkR1b25nIHZhIFRQLkhDTSB0aGkgY29uZyB0YWMgdHJhbiBhcCB0b2kgcGhhbSBzZSBj byBoaWV1IHF1YSBjYW8gaG9uIiwgb25nIE5ndXllbiANClZhbiBDdW9uZywgVHJ1b25nIGNvbmcg YW4geGEgRG9uZyBIb2Egbm9pLg0KDQooQW5oOiBWaWVjIGhhbiBjaGUgdGUgbmFuIG8gbGFuZyBE SCBjb24gcGh1IHRodW9jIHJhdCBuaGlldSB2YW8geSB0aHVjIGNhbmggZ2lhYyBjdWEgDQpzaW5o IHZpZW4gLSBBbmg6IFRyaSBRdWFuZykNCg0KQ29uIG5obywgdHJ1b2MgZGF5IERIIFF1b2MgZ2lh IFRQLkhDTSB0dW5nIGhvcCBiYW4gbmhpZXUgbGFuIHZlIHZpZWMgdGhhbmggbGFwIA0Kbmh1bmcg Y2hvdCBiYW8gdmUsIGRhbSBiYW8gYW4gbmluaCBjaG8gU1YgbyBuaGlldSB0dXllbiBkdW9uZyB0 cm9uZyBwaGFtIHZpIGxhbmcgDQpESC4gDQoNClR1eSBuaGllbiwgY2hvIGRlbiBuYXksIGtlIGhv YWNoIG5heSB2YW4gY2h1YSBwaGF0IGh1eSBoaWV1IHF1YSBjYW8uDQoNCkNoaSBtb2kgZGF5IHRo b2ksIERIIFF1b2MgZ2lhIFRQLkhDTSBjdW5nIHhheSBoZSB0aG9uZyByYW8gcXVhbmgga2h1IHZ1 YyBobyBkYSBkZSANCmhhbiBjaGUgbmFuIFNWIHR1IHRhcCB2byB0aW5oIGxhbSAibW9pIG5nb24i IGNobyBib24gdG9pIHBoYW0uIA0KDQpTb25nLCBuZ2F5IHNhdSBkbywgbHVvaSByYW8gYmkgcGhh IHZvLCBjb24gY2FjIGRvaSBiYW8gdmUgY3VhIERIIFF1b2MgZ2lhIFRQLkhDTSANCnRodWUgY2Fu aCBnaXUga2h1IHZ1YyB0cmVuIHZhbiBjdSBkZSBTViB0cmFuIHZhbyB0aG9haSBtYWkuIA0KDQpW YSBkaSBuaGllbiBuaHVuZyB2dSB0cmFuIGxvdCwgdHJvbSB4ZSBvIGRheSB2YW4gY3UgdGllcCB0 dWMgeGF5IHJhLg0KTm9pIGdpIHRoaSBub2ksIHZpZWMgaGFuIGNoZSB0ZSBuYW4gdHJvbSBjdW9w IG8gbGFuZyBESCBjb24gcGh1IHRodW9jIHJhdCBuaGlldSB2YW8geSANCnRodWMgY2FuaCBnaWFj IGN1YSBTVi4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQw LzIwMTAxMDAyMDA1OTU3LmFzcHggMDIvMTAvMjAxMCAxOjAwIA0KDQpUUCBIQ006IFNhdSB0aW4g bmhhbiBkZSBkb2EgbGEuLi4gY2hlbSB0aGF0ICAgICANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDMyLzIwMTAwODA0MDIzNzEzLmFzcHggMDQvMDgvMjAxMCAy OjM3ICANCg0KVFAuSENNOiBCYW8gdmUgcXVhbiBjb20gTWluaCBEdWMgIGhhbmggaHVuZyB0aHVj IGtoYWNoIC0gQmFvIGRvbmcgdmUgY2hhdCBsdW9uZyB2ZSBzaSAgDQoNCihBbmggY2h1cDogUXVh biBjb20gTWluaCBEdWMgdHJlbiBkdW9uZyBUb24gVGhhdCBUdW5nLCBRLjEsIFRQLkhDTSAtIGFu aDogTS5OKQ0KDQpDaGUgZ2lhdSBuaGFuIHZpZW4gc2FpIHBoYW0sIHRhdSB0YW4gdGFuZyB2YXQg DQoNClRvbmcgbGFuaCBzdSBxdWFuIEhhIExhbiBkZSBuZ2hpIGRpZXUgdHJhIHRvYW4gYm8gdnUg dmllYyAobmFuIG5oYW4gbGEgVmlldCBraWV1IEhhIExhbikNCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMyLzIwMTAwODA1MDI0MzI1LmFzcHggRGFtIEh1eSAw NS8wOC8yMDEwIDI6NDMgDQoNClRQLkhDTTogQmFvIHZlIHF1YW4gY29tIE1pbmggRHVjIGhhbmgg aHVuZyBraGFjaCBoYW5nIC0gQ2EgNSBiYW8gdmUgcXVhbiBjb20gTWluaCBEdWMgY2h1YSBjbyBj aHVuZyBjaGkgbmdoaWVwIHZ1ICANCiAgDQpUdSB5IG11YSByb2kgZGllbiwgZHVpIGN1aSAtIExv bmcgbGVvIHRyb25nIGtoYXUgdHV5ZW4gbmhhbiB2aWVuIA0KDQpUcmVuIGRpYSBiYW4gVFAgY28g MjEwIGNvbmcgdHkgYmFvIHZlICh0cm9uZyBkbyBjbyA0OCBjb25nIHR5IGNvIHBoYW4sIDE1MCBj b25nIHR5IA0KbW90IGhvYWMgaGFpIHRoYW5oIHZpZW4sIDIgY29uZyB0eSBsaWVuIGRvYW5oLCAx MCBjaGkgbmhhbmggdmFuIHBob25nIGN1YSBjb25nIHR5IA0KbyBjYWMgdGluaCB0aGFuaCBraGFj IGRhdCB0YWkgVFAuSENNKSB2b2kga2hvYW5nIDIwLjAwMCBuaGFuIHZpZW4gYmFvIHZlLiBEbyBj YW4gDQpsdW9uZyBuaGFuIHZpZW4gZG9uZyBkYW8gbmh1IHZheSBuZW4gY29uZyB0YWMgdHV5ZW4g Y2hvbiBkYXUgdmFvIGN1YSBuaGlldSBjb25nIHR5IA0KYmFvIHZlIHJhdCBsb25nIGxlby4gDQoN Cmh0dHA6Ly93d3cudGhlc2FpZ29udGltZXMudm4vSG9tZS90aG9pc3Uvc3VraWVuLzEzMDkwLyAx MS8xMi8yMDA4LCAwOTo0OSAoR01UKzcpDQoNClRQIEhDTTogQ2hpIHNvIG5hbmcgbHVjIGNhbmgg dHJhbmggY2FwIHRpbmggUENJIDIwMDggY3VhIFRQIEhDTSB0dXQgaGFuZw0KDQpodHRwOi8vd3d3 LnNndHQuY29tLnZuL2RldGFpbDI5LmFzcHg/bmV3c2lkPTUzMTQ3JmZsZD1IVE1HLzIwMDkvMDYx OS81MzE0NyAyMC4wNi4yMDA5IDA4OjIxDQoNCk1vaSBuZ2F5IFRQLkhDTSBiaSB0aGF0IHRob2F0 IGdhbiA1MDAuMDAwIG0zIG51b2Mgc2FjaCANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8v Tmhhbi12aWVuLW5nYW5oLWRpZW4tdGhvYWktdHJvbS1jYXAtZGllbi10aG9haS8xNDEvMzc5MjE3 NS5lcGkNCg0KVFAgSENNOiBOaGFuIHZpZW4gbmdhbmggZGllbiB0aG9haSB0cm9tIGNhcCBkaWVu IHRob2FpIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMDA2MDY4OTU5MDkvZ2lldF9uZ3VvaV9j aGF0X3hhY19sYW1fM19tYW5oX2RlX3BoaV90YW5nLmh0bWwgMjkvNy8yMDA1LCAzOjM1IFBNIChU aGVvIERhbiB0cmkgKQ0KDQpUUEhDTTogR2lldCBuZ3VvaSwgY2hhdCB4YWMgbGFtIDMgbWFuaCBk ZSBwaGkgdGFuZyAtIHZ1dCB0aGFuIHRhaSBIb2MgTW9uLCBjaGFuIG8gcXVhbiA3LCBuZW0gZGF1 IHh1b25nIHNvbmcgU2FpIEdvbi4gDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52bi9ob21lLzIwMDkw NTI4MDgzMTU1MTg5cDBjMTAwNS9jaGFuLW90by1naXVhLXBoby1jdW9wLTE1LXR5LWRvbmcuaHRt IFRodSBuYW0sIDI4LzUvMjAwOSwgODozNyhHTVQrNykgDQogIA0KVFAgSENNOiBDaGFuIG90byBn aXVhIHBobyBjdW9wIDEsNSB0eSBkb25nIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9QaGFw LWx1YXQvMjAxMC8wMy8zQkExOTlGNC8gMTMvMy8yMDEwLCAwMDowNSBHTVQrNw0KDQpUUCBIQ006 IEdpYW5oIGtoYWNoIGRpIHhlIG9tLCBtb3Qgbmd1b2kgYmkgZGFtIGNoZXQgDQoNCmh0dHA6Ly92 aWV0bmFtbmV0LnZuL2hjbS8yMDEwMDgvR2lldC1uZ3VvaS10aW5oLWJhbmctMi1uaGF0LWRhby05 MzEzODIvMTg6NTUsIDI0LzA4LzIwMTAgKEdNVCs3KSANCg0KVFAuSENNOiBHaWV0IG5ndW9pIHRp bmggYmFuZyAyIG5oYXQgZGFvIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9Q YWdlcy8yMDEwMzkvMjAxMDA5MjYxNzQ4NTguYXNweCAyNi8wOS8yMDEwIDE3OjQ4IA0KDQpUUCBI Q006IE1vdCB2dSBjdW9uZyBzYXQsIDggbmd1b2kgYmkgdGh1b25nIA0KDQpodHRwOi8vd3d3Lm5s ZC5jb20udm4vMjAxMDAyMDgwNzQ1OTg4UDBDMTAxOS90cGhjbS10aGVtLXZ1LWdpZXQtbmd1b2kt Y2hhdC14YWMtdGhhbmgtbmhpZXUtcGhhbi5odG0gVGh1IGhhaSwgMDgvMDIvMjAxMCB8IDE5OjU3 R01UKzcNCg0KVFBIQ006IFRoZW0gdnUgZ2lldCBuZ3VvaSBjaGF0IHhhYyB0aGFuaCBuaGlldSBw aGFuIChjaGF0IGN1IGJhIGxhbSA4IG1hbmgpIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v eGFob2kvcGhhcGx1YXQvMjAwOTEyL0NoZS1iaWVuLW1hLXR1eS1naXVhLXRoYW5oLXBoby04ODMz MzAvIENhcCBuaGF0IGx1YyAxNzozNCwgMDkvMTIvMjAwOSAoR01UKzcpDQoNCkNoZSBiaWVuIG1h IHR1eSBnaXVhIFRQLkhDTSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDMyLzIwMTAwODA0MTg0MDU4LmFzcHggMDQvMDgvMjAxMCAxODo0MCANCg0KVFAuSENN IGRvaSBtYXQgdm9pIG5oaWV1IGxvYWkgYmVuaCAgIA0KDQpTbyBjYSBzb3QgeHVhdCBodXlldCB0 cm9uZyB0aGFuZyA3IGRhIHRhbmcgZ2FwIGRvaSBzbyB2b2kgdGhhbmcgdHJ1b2MuIEJlbmggdGF5 IGNoYW4gDQptaWVuZyBjbyBnaWFtIG5oZSBuaHVuZyBzbyBjYSBiZW5oIHZhbiBvIG11YyBjYW8u IEJlbiBjYW5oIGRvLCBjdW0gQS9IMU4xIGRhIHF1YXkgDQp0cm8gbGFpLiBUUC5IQ00gZGFuZyBk b2kgbWF0IHZvaSBuaGlldSBsb2FpIGJlbmggZGFuZyBjbyBuZ3V5IGNvIGxhbiByb25nIHRyb25n IG11YSBtdWEgbmF5LiAgIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvWGEtaG9p LWRlbi1sYW0tbG9hbi1vLUJWLURhLWtob2Eta2h1LXZ1Yy1UaHUtRHVjLzIwMTAxLzE2OTYyMy5s YW9kb25nIDg6MjQgQU0sIDA3LzAxLzIwMTANCg0KVFAgSENNICJYYSBob2kgZGVuIiBsYW0gbG9h biBvIEJWIERhIGtob2Ega2h1IHZ1YyBUaHUgRHVjIA0KDQpodHRwOi8vd3d3LnBodW51b25saW5l LmNvbS52bi8yMDEwL1BhZ2VzL21vaS1uYW0tbWF0LXRyb20tMzAwMC14ZS1tYXkuYXNweCAwNC8w MS8yMDEwIDEwOjU0ICANCg0KVFAgSENNOiBNb2kgbmFtIG1hdCB0cm9tIDMuMDAwIHhlIG1heSAt IEJhbyBkb25nIHRvaSBwaGFtIGN1b3AgImNvIGhvaSB2YSBsdXUgZG9uZyIgDQoNCmh0dHA6Ly93 d3cucGh1bnVvbmxpbmUuY29tLnZuLzIwMTAvUGFnZXMvdnUtaG9jLXNpbmgtYmktZGllbi1naWF0 LWNoZXQtby1xdGh1LWR1Yy10cGhjbS1zZS1raG9pLXRvLXZ1LWFuLmFzcHggMjIvMDEvMjAxMCA4 OjI3ICANCg0KVFAuSENNOiBNb3QgaG9jIHNpbmggYmkgZGllbiBnaWF0IGNoZXQgdGFpIGNvbmcg dHJ1b25nIGxhcCBkYXQgY29uZyBYdWFuIFRydW9uZyAoUC5MaW5oIFh1YW4sIFEuVGh1IER1Yyku ICANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vZGVmYXVsdC5hc3B4P0NUPU5XJk5J RD02MDc1IDI4LzEyLzIwMDcNCg0KVFBIQ006IENhbiBjYXUgc2FwIGxhbSA1IG5ndW9pIGJpIHRo dW9uZw0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIwLTM2NjUyMy9yb3QtZ29pLWNhdS1i aW5oLXRyaWV1LWdpYW8tdGhvbmctaG9uLWxvYW4uaHRtIDEwLzEyLzIwMDkgLSAwMDozMA0KDQpU UEhDTTogUm90IGdvaSBjYXUgQmluaCBUcmlldSwgZ2lhbyB0aG9uZyBob24gbG9hbiANCg0KaHR0 cDovL3BoYXBsdWF0dHAudm4vMjAxMDAxMjgwODI4NDAxODJwMTAxNWMxMDc0L2Jvbi1jYW4tbmhh LWJpLXRoaWV1LXJ1aS1vLXRwaGNtLmh0bSAyOC8wMS8yMDEwIC0gMDg6MjggUE0NCg0KVFAuSENN OiBCb24gY2FuIG5oYSBiaSB0aGlldSBydWkNCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvUGhh cC1sdWF0LzIwMDgvMTIvM0JBMDk0MkMvDQoNCkNvbmcgdHJpbmggdm9uIGRhdSB0dSAxMC4wMDAg dHkgZG9uZyBiaSBydXQgcnVvdCAtIGR1IGFuIGR1b25nIGNhbyB0b2MgVFAgSENNIC0gVHJ1bmcg THVvbmcNCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL1F1eS1ob2FjaC10cmVvLWR1 LWFuLXRyZW8tdGFpLVRQSENNLUxhbS1raG8tZGFuLzIwMDc1LzM3MTM0Lmxhb2RvbmcgMjEuNS4y MDA3IDA3OjM0IChHTVQgKyA3KQ0KDQpUUEhDTTogUXV5IGhvYWNoICJ0cmVvIiwgZHUgYW4gInRy ZW8iIGxhbSBraG8gZGFuIA0KDQoiTWFjIGNhbiIgdm9pIHF1eSBob2FjaCAidHJlbyIgLSBRdXkg aG9hY2ggZ2l1IGRhdCAtIGRhbiBjaGV0IGRvIC0gUXV5IGhvYWNoIGNob25nIGxlbiBxdXkgaG9h Y2ggDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL3BhZ2VzLzIwMTAwMi8yMDEw MDEwNDAxMTkzOS5hc3B4IDA0LzAxLzIwMTAgMToxOSAgIA0KIA0KVFAuSENNOiBEdSBhbiBraHUg ZG8gdGhpIG1vaSBUaHUgVGhpZW06IDYgYmkgY2FuIGNoaWVtIGRvYXQgZ2FuIDQgdGkgZG9uZyAg IA0KDQpodHRwOi8vd3d3LmJhb3hheWR1bmcuY29tLnZuLz9NTlU9MTE0MSZDaGl0aWV0PTEwODg0 JlN0eWxlPTEgQ2FwIG5oYXQ6IDEwLzUvMjAwOCA4OjA1OjMwIEFNDQoNClRQIEhvIENoaSBNaW5o OiBDb25nIGJvIGtldCBsdWFuIHRoYW5oIHRyYSB2ZSBEdSBhbiBLaHUgZG8gdGhpIG1vaSBUaHUg VGhpZW0NCg0KTm9pIGR1bmcga2V0IGx1YW4gdGhhbmggdHJhIGRhIGNoaSByYSBuaHVuZyBzYWkg cGhhbSB0cm9uZyBxdWEgdHJpbmggdGh1YyBoaWVuIGR1IGFuLiANCkN1IHRoZSB2aWVjIEtpZW4g dHJ1YyBzdSB0cnVvbmcgdGhhbmggcGhvIEhvIENoaSBNaW5oIHBoZSBkdXlldCBxdXkgaG9hY2gg DQpjaGkgdGlldCAxLzIwMDAga2h1IHRydW5nIHRhbSBEbyB0aGkgbW9pIFRodSBUaGllbSBsYW0g Z2lhbSAyMmhhIHNvIHZvaSANCmRpZW4gdGljaCBkdW9jIFRodSB0dW9uZyBDaGluaCBwaHUgcGhl IGR1eWV0IHZhIHNhdSBkbyBraG9uZyBkdW9jIHBobyBiaWVuIA0KY29uZyBraGFpIGRlbiBuZ3Vv aSBkYW4gbGEgdmkgcGhhbSBOZ2hpIGRpbmggOTEvTkQtQ1AuDQoNCmh0dHA6Ly90aW50dWMueGFs by52bi8wNDIxMTEwODM5OC90cF9ob19jaGlfbWluaF9jYW5fY2hhbV9kdXRfbmh1bmdfZHVfYW5f eGVfdGhpdF9jb25nX3ZpZW4uaHRtbCBUaHUgYmEsIDI5LzgvMjAwNiwgMToyNyBBTSANCg0KVFAg SG8gQ2hpIE1pbmg6IENhbiBjaGFtIGR1dCBuaHVuZyBkdSBhbiAieGUgdGhpdCIgY29uZyB2aWVu IA0KDQpodHRwOi8vcXV5bW9pdHJ1b25naGFub2kudm4vY29udGVudDM3MC52bmRjIDIzLjExLjIw MDkgMTA6MDMNCg0KVFBIQ006IE8gbmhpZW0ga2hvbmcga2hpIG5naGllbSB0cm9uZyANCg0KaHR0 cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDgvMDcvM0JBMDQ5N0YvIDE4LzcvMjAwOCwg MTc6MjUgR01UKzcNCg0KVFAgSENNOiBOZ3V5ZW4gQ2h1IHRpY2ggVUJORCBwaHVvbmcgMTEgdmEg cGh1b25nIDEyLCBxdWFuIEdvIFZhcCwgYmkgcGhhdCBoaWVuIG5oYW4gdGllbiBjdWEgZGFuIGRl IGhvcCB0aHVjIGhvYSBuaGEgeGF5IGR1bmcgdHJhaSBwaGVwIHZhIGtob25nIHRodWMgaGllbiB2 aWVjIGNodXllbiBtdWMgZGljaCBzdSBkdW5nIGRhdC4NCg0KaHR0cDovL3d3dy5sYW9kb25nLmNv bS52bi9Ib21lL1NvLWNhLWNoYW4tdGh1b25nLXNvLW5hby12YS10dS12b25nLXRhbmctZ2FwLWRv aS1uYW0tbmdvYWkvMjAxMDIvMTc0NzY0Lmxhb2RvbmcgNzoyNiBBTSwgMjIvMDIvMjAxMA0KDQpU UEhDTTogU28gY2EgY2hhbiB0aHVvbmcgc28gbmFvIHZhIHR1IHZvbmcgdGFuZyBnYXAgZG9pIG5h bSBuZ29haQ0KDQpUaGVvIHNvIGxpZXUgYmFvIGNhbyBjdWEgMzkgZG9uIHZpIHkgdGUgdHJlbiBk aWEgYmFuIFRQSENNLCB0cm9uZyAzIG5nYXkgdGV0ICh0dSAxMiB0b2kgMTQuMi4yMDEwKSwgdG9u ZyBzbyBsdW90IGJlbmggbmhhbiB0b2kga2hhbSBjYWMgbG9haSB0YWkgY2FjIGJlbmggdmllbiAo QlYpIGxhIDE2LjExNyBjYS4NCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1hhLWhvaS8y MDA2LzA3LzNCOUVCRDBDLyAxMS83LzIwMDYsIDA2OjM1IEdNVCs3DQoNCkRlbiAyMDEwLCBUUCBI Q00gY2hpIHRhbmcgdGhlbSAzLjEwMCBoYSBkYXQgbw0KDQpUcm9uZyBwaHVvbmcgYW4gZGlldSBj aGluaCBxdXkgaG9hY2ggc3UgZHVuZyBkYXQgZGVuIDIwMTAgbWEgVUJORCBUUCBIQ00gdHJpbmgg SERORCB0YWkga3kgaG9wIGxhbiB0aHUgNyBzYW5nIDExLzcsIHRyb25nIDUgbmFtIHRvaSAodHUg MjAwNi0yMDEwKSwgVFAgSENNIGNoaSBkYW5oIHRoZW0gMy4xMDAgaGEgZGFuaCBjaG8gZGF0IG8u IFNvIHZvaSBxdXkgaG9hY2ggY3UgZGEgZHVvYyBUaHUgdHVvbmcgcGhlIGR1eWV0LCBkaWVuIHRp Y2ggZGF0IG8gZ2lhbSBob24gMTMuMzAwIGhhLg0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10 cmktWGEtaG9pLzIxNzg5MS9TYWktcGhhbS1uZ2hpZW0tdHJvbmctdGFpLVZpZXRuYW0tQWlybGlu ZXMuaHRtbCBUaHUgU2F1LCAzMS8wOC8yMDA3LCAwODozMiAoR01UKzcpIA0KDQpUYWkgVG9uZyBj b25nIHR5IERpYSBvYyBTYWkgR29uOg0KDQpEb2FuIHRoYW5oIHRyYSBDUCB4YWMgZGluaCBjbyBu aGlldSBzYWkgcGhhbSB2b2kgc28gdGllbiBsZW4gZGVuIDE1LDgzMiB0aSBkb25nLiANClRyb25n IGRvLCBxdXlldCB0b2FuIHNhaSBraG9hbmcgMTQgdGksIHN1IGR1bmcgZGF0IGtob25nIGR1bmcg Y2hlIGRvIGhvbiAxIHRpLCBubyB0aWVuIHN1IA0KZHVuZyBkYXQgMjYyIHRyaWV1LCB0aGFuaCB0 b2FuIHNhaSA3OSB0cmlldSwgY2hpIHNhaSB2dW90IHF1aSBkaW5oIDc2NiB0cmlldSwgdHUgdGFu ZyBnaWEgYmFuIA0KaG9uIDYgdGkgZG9uZywgbm8gdGh1ZSB0aHUgbmhhcCBkb2FuaCBuZ2hpZXAg a2hvYW5nIDM4IHRyaWV1LiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDYv MDMvM0I5RTdFRDAvIDIzLzMvMjAwNiwgMTA6MTggR01UKzcNCg0KVFAgSENNOiBUb25nIGNoaWV1 IGRhaSBkb2FuIGR1b25nIGJpIG5nYXAgdGh1b2MgZHVvbmcgTmd1eWVuIEh1dSBDYW5oIGR1b2Mg dGhvbmcga2UgbGEgaG9uIDMwMCBtLCB2b2kgZG8gbmdhcCBzYXUgdHUgMjAgZGVuIDYwIGNtLiAN Cg0KVGhlbyB0aW5oIHRvYW4sIG11b24gbWF0IGR1b25nIHZ1b3QgcXVhIGRpbmggdHJpZXUgY3Vv bmcgY2FvIG5oYXQgdGhpIHBoYWkgbmFuZyBjYW8gdGhlbSA2MC0xMDAgY20uDQoNCmh0dHA6Ly92 aWV0YmFvLnZuL1hhLWhvaS9UUC1Iby1DaGktTWluaC1UZS1uYW4tdGhhbS1uaHVuZy1sYW5nLXBo aS1jaHVhLWR1b2MtZGF5LWx1aS80NTIyMzQzNC8xNTcvIDExLzEvMjAwNywgMjM6MzEgR01UKzcN Cg0KVFAgSG8gQ2hpIE1pbmg6IFRlIG5hbiB0aGFtIG5odW5nLCAibGFuZyBwaGkga2hvbmcgZHVv YyBkYXkgbHVpLCBraG9uZyBkYXAgdW5nIGR1b2MgbG9uZyBtb25nIG1vaSBjdWEgbmhhbiBkYW4i IA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vdHBoY21fc2FpX3BoYW1fbmdoaWVtX3Ryb25nX29f ZHVfYW5fZGF1X3R1X2NudHQtNi0yMTMyMzg2Mi5odG1sICAgTmd1b246IFRpZW5QaG9uZy52bg0K DQpUUEhDTTogU2FpIHBoYW0gbmdoaWVtIHRyb25nIG8gZHUgYW4gZGF1IHR1IENOVFQgLSBOYW5n IGdpYSBkZSBtb2kgdGllbiBuZ2FuIHNhY2gNCg0KVHJvbmcgcXVhIHRyaW5oIHRoYW5oIHRyYSwg Y28gcXVhbiBjaHVjIG5hbmcgZGEgcGhhdCBoaWVuIG5oaWV1IHNhaSBwaGFtIG5naGllbSB0cm9u ZyANCnRhaSBUcnVuZyB0YW0gdGluIGhvYyAoVFRUSCksIHRodW9jIFZhbiBwaG9uZyBIRE5EICYg VUJORCBUUEhDTS4gDQoNClRoZW8gS2V0IGx1YW4gdGhhbmggdHJhLCBWYW4gcGhvbmcgSERORCZV Qk5EIFRQSENNIGRhIGtob25nIHR1YW4gdGh1IHF1eSANCmRpbmggdmUgcXVhbiBseSBjaGkgcGhp IGRhdSB0dSwgY28gZGF1IGhpZXUgdmkgcGhhbSBxdXkgZGluaCB2ZSB0aGFuaCwgcXV5ZXQgdG9h bi4gDQpDYW4gY3UgdmFvIGRlIHh1YXQgY3VhIFRydW5nIHRhbSB0aW4gaG9jLCBjaHUgZGF1IHR1 IGRhIHRyaW5oLCBkZSBuZ2hpIHF1eWV0IHRvYW4gdnVvdCANCmRpbmggbXVjIHNvIHRpZW4gaG9u IDEsNiB0eSBkb25nLiAgDQoNCk5naGllbSB0cm9uZyBob24sIFZhbiBwaG9uZyBIRE5EJlVCTkQg VFBIQ00gZGEgYnVvbmcgbG9uZyBxdWFuIGx5IGRlIFRydW5nIA0KdGFtIHRpbiBob2MgdmkgcGhh bSBuZ2hpZW0gdHJvbmcgY2FjIHF1eSBkaW5oOiBDbyB5IGxhbSB0cmFpIGdheSB0aGlldCBoYWkg bmdhbiBzYWNoIA0KTmhhIG51b2MsIGxhcCBtYW5nIGR1bmcgcmllbmcga2hvbmcgY28gZ2lheSBw aGVwLCBuZ2hpZW0gdGh1IGhvcCBkb25nIHNhaSBraG9pIGx1b25nLiAgDQoNCmh0dHA6Ly93d3cu dGhhdWtpbmh2aWV0bmFtLmNvbS9pbmRleC5waHAveGFob2kvdHAtaGNtLXRoYW5oLXRyYS1raWVu LW5naGktdGh1LWhvaS0yMC01LXR5LWRvbmctc2FpLXBoYW0vMTUwMTY3LnNuDQoNClRQIEhDTTog U2FpIHBoYW0gdGFpIGNoaW5oIDEsNDUgdHkgZG9uZyB0YWkgRGFpIFRydXllbiBoaW5oIFRQLkhD TQ0KDQpodHRwOi8vd3d3LmJhb2RhdHZpZXQudm4vSG9tZS90aGVnaW9pc28xL0RhaS10cnV5ZW4t aGluaC1UUC1IQ00tQmFuLXNvbmctYmFuLWtlbmgtdHJhbi1sYW4vMjAxMDYvOTc3NzAuZGF0dmll dCA5OjI0IEFNLCAxNS8wNi8yMDEwDQoNClRQIEhDTTogRGFpIHRydXllbiBoaW5oIFRQIEhDTSBi YW4gc29uZywgYmFuIGtlbmggdHJhbiBsYW4gDQoNCkNobyBkb2kgdGFjIHR1bmcgaG9hbmggLSBV dSBkYWkgdGhvYW5nIGJhdCBuZ28NCg0KS2hvbmcgY2hpIGJvIG1hYyBkb2kgdGFjIHR1IGRvIGto YWkgdGhhYyBub2kgZHVuZyB2YSBzdSBkdW5nIG1pZW4gcGhpIG5oaWV1IGNodW9uZyB0cmluaCwg DQpIVFYgY29uIGR1YSByYSBuaGlldSB1dSBkYWkgdGhvYW5nIGRlbiBsYSBsdW5nOiBiYW4gdGh1 b25nIGhpZXUsIGJhbiBjbyBzbyB2YXQgY2hhdCwgYnUgZGFwIA0KY2hpIHBoaSwuLi5jaG8gZG9p IHRhYywgbGFtIHRoYXQgdGh1IGhhbmcgY2h1YyB0eSBkb25nLg0KDQpodHRwOi8vd3d3Mi50aGFu aG5pZW4uY29tLnZuL1BoYXBsdWF0LzIwMDgvOC80LzI1NDMwNy50bm8NCg0KVFAgSENNOiBOaGll dSBzYWkgcGhhbSBuZ2hpZW0gdHJvbmcgdGFpIENvZmlkZWMgDQoNCkNvIHF1YW4gY2h1YyBuYW5n IGRhIHBoYXQgaGllbiBoYW5nIGxvYXQgc2FpIHBoYW0ga2luaCB0ZSBuZ2hpZW0gdHJvbmcgdGFp IENvZmlkZWMsIA0KdHVuZyBkdW9jIHhlbSBsYSBkb2FuaCBuZ2hpZXAgY2hlIGJpZW4gdmEgeHVh dCBraGF1IGhhbmcgdGh1eSBoYWkgc2FuIGhhbmcgZGF1IGN1YSANClRQLkhDTTsgY28gZGF1IGhp ZXUgdmkgcGhhbSBMdWF0IFBob25nLCBjaG9uZyB0aGFtIG5odW5nIHZhIGNvIHkgbGFtIHRyYWkg cXV5IGRpbmggDQpwaGFwIGx1YXQsIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZyB2ZSB0aGlldCBo YWkga2luaCB0ZS4gDQpEYXkgbGEgbW90IHRyb25nIG5odW5nIG5ndXllbiBuaGFuIGRhbiBkZW4g dmllYyB0dSBuYW0gMjAwNCBkZW4gbmdheSAzMC42LjIwMDcsIA0KY29uZyB0eSBsaWVuIHR1YyBs byBob24gMTAxIHRpIGRvbmcgKHNvIHRyb24pLiANCg0KTWFjIGR1LCBVQk5EIFRQLkhDTSBkYSBj aG8gcGhlcCBDb2ZpZGVjIGJhbiB0YWkgc2FuICh0aGFuaCBseSB4aSBuZ2hpZXAgVGh1IER1Yywg DQpuaGEgbyBRLjEsIGRlbiBidSBkYXQgbyBILkNhbiBHaW8pIGR1b2MgaG9uIDQ5LDMgdGkgZG9u Zywgbmh1bmcgY3VuZyBraG9uZyBkdSBidSBkYXAgDQpraG9hbiB0aGlldCBoYWkgdHUgaG9hdCBk b25nIHNhbiB4dWF0IGtpbmggZG9hbmggdmEga2hvYW4gbm8ga2hvIHRodSBob2kuIFR1IGRvLCAN CmRhbiBkZW4gdGluaCBoaW5oIHRhaSBjaGluaCBjdWEgY29uZyB0eSBkdSBraWVuIGRlbiBuZ2F5 IDMwLjYuMjAwNyBtYXQgY2FuIGRvaSBob24gNzIgdGkgZG9uZy4gDQoNCkRhYyBiaWV0LCBjbyBx dWFuIGNodWMgbmFuZyBjb24gcGhhdCBoaWVuIENvZmlkZWMgeHVhdCBraGF1IGhhbmcgdGh1eSBz YW4gbmh1bmcgDQpraG9uZyB0aHUgaG9pIGR1b2MgdGllbiwgc28gbm8ga2hvIGRvaSBsZW4gZGVu IGhvbiAyLDMgdHJpZXUgVVNELiANCg0KTmdvYWkgcmEsIGNvIHF1YW4gY2h1YyBuYW5nIGNvbiBw aGF0IGhpZW4gbmhpZXUgc2FpIHBoYW0ga2hhYyBsaWVuIHF1YW4gZGVuIHZpZWMgDQpiYW4gaGFu ZyBjdWEgQ29maWRlYywgbmh1IHRyb25nIG5oaWV1IGhvcCBkb25nIGJhbiBoYW5nIGN1YSBDb2Zp ZGVjIGNvIGRhdSBoaWV1IA0KZ2lhIG1hbyBjaHUga3ksIGhvIHNvOyBodXkgY2h1bmcgdHUgbXVh IGhhbmcuLi4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9oY20vMjAxMDA4L1RydXktcXVl dC1zYXQtdGh1LXRyZW4tc29uZy1TYWktR29uLTkyOTEyMS8gTmhhdCBUYW4gLSBUaGlldSBIdXll biAtIFRydW5nIExpZXUgLSBNaW5oIFRhbSAxMDowNiwgMTUvMDgvMjAxMCAoR01UKzcpIA0KDQpU UCBIQ006IE5odW5nICJzYXQgdGh1IiB0cmVuIHNvbmcgU2FpIEdvbjoNCg0KLSBEdW5nIHh1bmcg ZGllbiBjaGljaCBjYTsNCi0gTmh1bmcgY2hpZWMgZ2hlIGR1bmcgdGUgZGllbiwgcGhpYSB0cnVv YyBjbyBoYWkgY2hpZWMgZ29uZyBsb24gbmVuIHRodW9uZyBnb2kgbGEgInNhdCANCnRodSBoYWkg Y2FuZyI7DQotIER1bmcgbHVvaSBkYXkgaG9uIHF1aSBkaW5oOw0KLSBTaW5oIHZhdCBuZ29haSBs YWk6IFJ1YSB0YWkgZG8sIGNhIGxhdSBraW5oLi4uDQoNCiJUcnVvYyBkYXkgY2EgdG9tIG5oaWV1 IGxhbSBuaHVuZyBkYW4gY3UgZGFuaCBiYXQga2lldSB0YW4gZGlldCBuZW4gbmdheSBjYW5nIGl0 Li4uIERhIA0Kc28gZGFuIGRhbmggY2EgbyBkYXkgbGFpIGRlbiB0dSBEb25nIE5haSwgTG9uZyBB biwgVGllbiBHaWFuZyBuZW4gdmllYyBrZXQgaG9wIHZvaSANCmNoaW5oIHF1eWVuIGRpYSBwaHVv bmcgZGUgeHUgbHkgcmF0IGtobyIsIC0gYW5oIE5ndXllbiBUaGFuaCBQaG9uZywgdGh1eWVuIHRy dW9uZywgDQp0cnVvbmcgZG9hbiBraWVtIHRyYSwgY2hvIGJpZXQuIA0KDQpOaGlldSBkYW4gY2hh aSwgY2hvIGJpZXQsIHNvbmcgU2FpIEdvbiAoZG9hbiB0dSBiZW4gQmFjaCBEYW5nIChRLjEpIGRl biBjdWEgc29uZyBWYW0gDQpUaHVhdCAoUS4xMiksIGNhYyBsb2FpIGNhIGNhIHJvLCBjYSBsb2Mg dHUgbmhpZW4gaGF1IG5odSBraG9uZyBjb24uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vbmV3cy9QYWdlcy8yMDEwMzAvMjAxMDA3MjExNjQzMTMuYXNweCAyMS8wNy8yMDEwIDE2OjQz ICANCg0KVFAgSENNOiA0IGJpIGNhbiBuZ3V5ZW4gbGEgbGFuaCBkYW8gQ29uZyB0eSBUaHV5IGhh aSBzYW4gRHV5ZW4gSGFpICh0ZW4gZ2lhbyBkaWNoIA0KQ29uZyB0eSBDb2ZpZGVjKSBwaGFtIHRv aSA6ICJDbyB5IGxhbSB0cmFpIGNhYyBxdXkgZGluaCB2ZSBraW5oIHRlIGdheSBoYXUgcXVhIG5n aGllbSANCnRyb25nIiB2YSAiTG9pIGR1bmcgY2h1YyB2dSBxdXllbiBoYW4gdHJvbmcga2hpIHRo aSBoYW5oIGNvbmcgdnUiLiANCg0KTmhvbSBiaSBjYW4gbmF5LCBnb206IFZvIEh1ZSBUcmFuICg2 NiB0dW9pLCBxdWUgTG9uZyBBbiwgbmd1eWVuIEdpYW0gZG9jIENvbmcgdHkgDQpDb2ZpZGVjKSwg Tmd1eWVuIFRoYW5oIFh1YW4gKDUyIHR1b2ksIG5ndSBRLjEwLCBuZ3V5ZW4gcXV5ZW4gR2lhbSBk b2MgQ29uZyB0eSANCkNvZmlkZWMpLCBEYW5nIEh1dSBUaGluaCAoNDUgdHVvaSwgbmd1IFEuNSwg VHJ1b25nIHBob25nIHh1YXQgbmhhcCBraGF1KSB2YSBOZ28gDQpOZ29jIFNvbiAoNDkgdHVvaSwg cXVlIEJlbiBUcmUsIFBobyBwaG9uZyBraW5oIGRvYW5oIHh1YXQgbmhhcCBraGF1IGRldSB0aHVv YyBDb25nIA0KdHkgQ29maWRlYykuDQoNClRyb25nIHF1YSB0cmluaCBkaWV1IGhhbmggaG9hdCBk b25nIHRhaSBDb25nIHR5IENvZmlkZWMsIG5ob20gYmkgY2FuIG5heSBkYSB0aGlldSB0aW5oIA0K dGhhbiB0cmFjaCBuaGllbSwgY28geSBsYW0gdHJhaSBnYXkgdGhhdCB0aG9hdCB0YWkgc2FuIGhh bmcgdGkgZG9uZyB0aWVuIGN1YSBuaGEgbnVvYy4NCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL3Rw aGNtX3RoYW5oX3RyYV9raWVuX25naGlfdGh1X2hvaV8yMCUyQzVfdHlfZG9uZ19zYWlfcGhhbS0x LTQzODY1Lmh0bWwgMTUvMDcvMjAwOCAtIDIzOjUwIC0gTmd1b246IFZpZXROYW1OZXQudm4NCg0K VFAuSENNOiAieG9hIHNvIiBkYXQgY2F5IHhhbmgsIGxhbiBoYW5oIGxhbmcgc29uZyByYWNoLCAi cXVlbiIgbGFtIG5naGlhIHZ1IHRodWUgMSw0IHR5IGRvbmcgKHhheSByYSB0YWkgZHUgYW4gS2h1 IGRhbiBjdSBUcnVuZyBTb24pIA0KDQpodHRwOi8vY29uZ3R5bHVhdDEtNS52bi90aW4tdHVjLXBo YXAtbHVhdC8xMDgteGEtaG9pLWRlbi1kYXQtY2FuZy1ob2FuaC1oYW5oLXRhaS10aGFuaC1waG8t aGNtLmh0bWwNCg0KIlhhIGhvaSBkZW4iIGRhdCBDYW5nIGhvYW5oIGhhbmggbyBUUCBIQ00NCg0K S2UgdHUga2hpICJibyBnaWEiIE5hbSBDYW0gYmkgbGF0IGRvLCBtYW5oIGRhdCBtYXUgbW8gU2Fp IHRoYW5oIHRybyB0aGFuaCAibW8gdmFuZyIgY2hvIG5oaWV1IGJhbmcgbmhvbSAieGEgaG9pIGRl biIgZGF0IEJhYyBuaGF5IHZhbyBjaGlhIHBoYW4uIA0KICAgICAgDQpCb24gY2h1bmcgZGEgdG8g Y2h1YyBjYWMgcGhpIHZ1IG11YSBiYW4gbWEgdHV5LCBkYW0gdGh1ZSBjaGVtIG11b24sIGRvaSBu byB0aHVlLCANCmN1b3Agc29uZyBiYWMuLi4gZ2F5IG1hdCBhbiBuaW5oIHRyYXQgdHUgeGEgaG9p LiBHYW4gZGF5IG5oYXQgbGEgdnUgaGFtIGhhaSBvbmcgRGFuZyANClh1YW4gU2kgKFBobyBnaWFt IGRvYyBDb25nIHR5IFROSEggSG9hbmcgSGFpLCB0cnUgc28gdG9hIGxhYyBILkhvYyBNb24pIGRl IGRpZXQgDQpraGF1IGdheSBjaGFuIGRvbmcgZHUgbHVhbi4NCg0KVGluaCBoaW5oIGFuIG5pbmgg dHJhdCB0dSBjdWEgVFAuSENNIGx1b24gZGllbiBiaWVuIHBodWMgdGFwLg0KDQpodHRwOi8vdm5l eHByZXNzLm5ldC9HTC9LaW5oLWRvYW5oLzIwMDgvMDkvM0JBMDYzMEUvIDYvOS8yMDA4LCAxMTow OSBHTVQrNw0KDQpUUCBIQ006IE5oaWV1IGNheSB4YW5nIGRvbmcgdGhpZXUgLSBnaWFuIGxhbg0K DQpDdSBraWVtIHRyYSA1IGNheSB4YW5nIHRoaSBjbyBtb3QgdHJ1b25nIGhvcCBnaWFuIGxhbi4g Q28gbm9pLCBraGFjaCBoYW5nIGJpIG1vYyB0dWkgaG9uIDEuNzAwIGRvbmcgY2hvIG1vaSBsaXQg eGFuZy4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyNi8y MDEwMDYyMjAyMDM0My5hc3B4IDIyLzA2LzIwMTAgNzowMyANCg0KVFAgSENNOiBHaWFuZyBobyB0 dSB4dSBvIFNhaSBHb24gLSBDYWMgY3VvYyB0aGFuaCB0b2FuIGRhbSBtYXUgLSBCb25nIGRhbmcg Y3VhIGNhYyB0cnVtIGdpYW5nIGhvIGRpZXUga2hpZW4sIGNhYyB0aGUgbHVjIGRlbiBkdW5nIHBo aWEgc2F1IA0KDQpEZW4gbmF5LCBuZ3VvaSBkYW4gdGhhbmggcGhvIHZhbiBjaHVhIHF1ZW4gY3Vv YyB0cnV5IHNhdCBkYW0gbWF1IHRyb25nIGRlbSBiYW5nIHN1bmcsIA0KbWEgdGF1IHhheSByYSB0 YWkgRGFpIGxvIERvbmcgVGF5IChRLjEpLiBWaWVuIGRhbiBkYSBiYXkgdmUgaHVvbmcgcXVhbiBh biB2ZW4gZHVvbmcgbm9pIA0KY28gbmhpZXUgbmd1b2kgdHUgdGFwLCBuaHVuZyByYXQgbWF5IGto b25nIHRydW5nIGFpIG1hIGdhbSB0aGFuZyB2YW8gdHUgYmFuIGNvbS4gU29uZyBpdCANCmFpIGJp ZXQgcmFuZyBkYXkgbGEgdnUgZHVuZyBkbyBnaXVhIDIgYmFuZyBuaG9tIGdpYW5nIGhvIGNvIG1h dSBtYXQuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjMv MjAxMDA2MDUwMDQ2MDkuYXNweCAwNS8wNi8yMDEwIDA6NDYgDQoNClRQIEhDTTogQ2FuIGJvIGJh biBHUE1CIGNoaWVtIGRvYXQgaG9uIDcgdGkgZG9uZyB0aWVuIGRlbiBidSBkZW0gY2EgZG8gDQoN Cmh0dHA6Ly93d3cudmlldG5hbXBsdXMudm4vSG9tZS9UUEhDTS1waGEtby1iYWMtZ2FtLWNhdS1i YXQtZ2l1LTQ1LWRvaS10dW9uZy8yMDEwNi80OTczNC52bnBsdXMNCg0KVFAuIEhDTTogTW90IG8g YmFjIGxvbiBuYW0gbyBraHUgdnVjIGR1b2kgZ2FtIGNhdSBDb25nIEx5DQoNCmh0dHA6Ly93d3cu dmlldG5hbXBsdXMudm4vSG9tZS9QaGEtdGhlbS1tb3Qtby1jYS1kby1ib25nLWRhLWxvbi10YWkt VFAtSENNLzIwMTA2LzQ5NTc5LnZucGx1cyAxOC8wNi8yMDEwIA0KDQpUUC4gSENNOiBUaGVtIG1v dCBvIGNhIGRvIGJvbmcgZGEgbG9uIHRhaSBUUC4gSENNDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52 bi8yMDA5MTExODAzMzgxMDczNXAwYzEwMDUvYmFuLWhhbmctcm9uZy1iaS1kYW0tY3VvcC1kdGRk Lmh0bSAxOC8xMS8yMDA5LCAxNTo0MShHTVQrNykNCg0KVFAgSENNOiBCYW4gaGFuZyByb25nIGJp IGRhbSwgY3VvcCBkaWVuIHRob2FpIGRpIGRvbmcgIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4v MDAtNDQzODQ1NTcxL3RwaGNtX3RhbV9naXVfM19kb2lfdHVvbmdfaGllcF9kYW1fdGFwX3RoZV90 cmVfdmlfdGhhbmhfbmllbi5odG1sIEQuTE9BTiBUaGVvIFNHR1AgLSAwOS8wNi8yMDA4DQoNClRQ IEhDTTogSGllcCBkYW0gdGFwIHRoZSB0cmUgdmkgdGhhbmggbmllbiAtIGNodXAgaGluaCwgaGFt IGRvYSBuZXUgdG8gY2FvIHNlIGJpIHR1bmcgaGluaCBhbmggbGVuIEludGVybmV0DQoNCmh0dHA6 Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9UcmlldC1waGEtby1zYW4teHVhdC10aWVuLWdpYS8y MDEwNi8xODg5MzcubGFvZG9uZyBDaGkgSGEgODo0NCBBTSwgMTkvMDYvMjAxMA0KDQpUUCBIQ006 IE8gc2FuIHh1YXQgdGllbiBnaWEgdGFpIFEuNiAtIG1lbmggZ2lhIDUuMDAwIGRvbmcsIHNvIGx1 b25nIGxvbi4gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDEyOTc0Njg5MS9xdWFuX2hlX3hv bmdfcm9pX2dpZXRfY2hldF9uZ3VvaV90aW5oLmh0bWwgIDE5LzEyIDExOjUyJw0KDQpUUCBIQ006 IFF1YW4gaGUgeG9uZyByb2kgZ2lldCBjaGV0IG5ndW9pIHRpbmgNCg0KaHR0cDovL3R1b2l0cmUu dm4vQ2hpbmgtdHJpLVhhLWhvaS8zMDk4MDIvS2hhbmgta2lldC12aS1xdWEtQ2FtcHVjaGlhLWRh bmgtYmFjLmh0bWwNCg0KVFAuSENNOiBOaGlldSBkdW9uZyBkYXkgdG8gY2h1YyBjbyBiYWMgY2h1 eWVuIG5naGllcCBkYW4gZGF0IGNvbiBiYWMgc2FuZyBDYW1wdWNoaWEgImRvdCB0aWVuIiANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDI4LzIwMTAwNzA3MjM0 NDQ2LmFzcHggMDgvMDcvMjAxMCA0OjQ0IA0KDQpUUCBIQ006IERlbiBsdW90IGNhbmcgYmllbiAi a2V1IGN1dSIgIA0KDQpDYW5nIENhdCBMYWkgKFEuMiwgVFAuSENNKSB2dWEgY28gdmFuIGJhbiAi a2V1IGN1dSIgdmUgdGluaCBoaW5oIHVuIHUgaGFuZyBob2EgeHVhdCANCm5oYXAga2hhdSAoWE5L KSB0YWkgY2FuZywgeHVhdCBwaGF0IHR1IHF1eSBkaW5oIHh1IHBoYXQgdGFpIHhlIGNvbnRhaW5l ciBraG9uZyBjbyBiYW5nIA0KbGFpIEZDIChoaWV1IGx1YyB0dSBuZ2F5IDEuNykuIA0KDQo2IG5n YXksIHUgZG9uZyAzMC44NzUgY29udGFpbmVyIC0gVGluaCBoaW5oIHVuIHUgaGFuZyBob2EgdGFp IGNhYyBjYW5nIGRhIHJhdCBuZ2hpZW0gdHJvbmcNCg0KRGF5IGxhIHZhbiBiYW4gdGh1IGhhaSB0 cm9uZyB2b25nIGNodWEgZGF5IDEgdHVhbiBjdWEgY2FuZyBDYXQgTGFpIHRyaW5oIGNhYyBjbyBx dWFuIGNvIA0KdGhhbSBxdXllbiwgY3VuZyBub2kgZHVuZyBwaGFuIGFuaCB0aW5oIGhpbmggdW4g dSBoYW5nIGhvYSB2YSBkaW5oIHRyZSBob2F0IGRvbmcgdGFpIGNhbmcuIA0KDQpodHRwOi8vdHVv aXRyZS52bi9DaGluaC10cmktWGEtaG9pLzI2MjgzMC9CYW8tZG9uZy10aW5oLXRyYW5nLWhhbmct Y2hvLWNhbmcuaHRtbCAxMi8wNi8yMDA4LCAwNzo0OSAoR01UKzcpIA0KDQpUUCBIQ006IEJhbyBk b25nIHRpbmggdHJhbmcgImhhbmcgY2hvIGNhbmciIA0KDQpIYW5nIHRyYW0gbmdhbiB0YW4gaGFu ZyBjaG9uIGNoYW4gdGFpIGNhbmcgZG8gdnVvbmcgbyBraGF1IHZhbiBjaHV5ZW4sIG5oaWV1IHRh dSANCmhhbmcgcGhhaSBuYW0gY2hvIGRlIHZhbyB0cmEgaGFuZyAgbGEgaGF1IHF1YSBjdWEgdmll YyBxdWkgaG9hY2ggY2FuZyBiaWVuIGtob25nIHNhdCANCnZvaSB0aHVjIHRlLi4uIFRpbmggdHJh bmcgaGFuZyBob2EgdSBkb25nIHRhaSBjYWMgY2FuZyBjdWEgVFAuSENNIHRyb25nIHRob2kgZ2lh biBnYW4gDQpkYXkgZGEgZ2lvbmcgbGVuIHRpZW5nIGNodW9uZyBiYW8gZG9uZy4gDQoNCk5ldSB0 aW5oIHRyYW5nIG5heSBrZW8gZGFpIHNlIGFuaCBodW9uZyBsb24gZGVuIHBoYXQgdHJpZW4ga2lu aCB0ZSB0cm9uZyB0dW9uZyBsYWkuDQoNCkNhbmcgaGV0IGNobyBkZSBoYW5nIC0gVGhpZXUgY2Fu ZyB2aSBxdWkgaG9hY2gga2VtIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvTGFp LXhheS1yYS10YWktbmFuLWNoZXQtbmd1b2ktdHJlbi1jYXUtdnVvdC1UaHUtVGhpZW0vMjAxMDYv MTg5Mzc2Lmxhb2RvbmcgNzoxOCBBTSwgMjMvMDYvMjAxMA0KDQpMYWkgeGF5IHJhIHRhaSBuYW4g Y2hldCBuZ3VvaSB0cmVuIGNhdSB2dW90IFRodSBUaGllbQ0KDQpodHRwOi8vd3d3LnNnZ3Aub3Jn LnZuL21vaXRydW9uZ2RvdGhpLzIwMDgvMy8xNDcxMjcvIDI2LzAzLzIwMDgsIDAxOjU2IChHTVQr NykNCg0KVFBIQ006IE8gbmhpZW0ga2hvbmcga2hpIGxhbSB0YW5nIGNhYyBiZW5oIGR1b25nIGhv IGhhcCANCg0KaHR0cDovL2JveGl0dm4ud29yZHByZXNzLmNvbS8yMDEwLzA5LzA2L2h5LWQlQzYl QjBhLXJhLXZuaC1tbmctbmclRTElQkIlQjFhLyBEYW5nIGJvaSBidm5wb3N0IG9uIDA2LzA5LzIw MTAgbHVjIDc6NDcgc2FuZyANCg0KVG9uZyBiaSB0aHU6IEhheSBkdWEgTGUgVGhhbmggSGFpIHZh IGRvbmcgYm9uIHJhIHRydW9jIHZhbmggbW9uZyBuZ3VhIA0KDQpDT05HIEhPQSBYQSBIT0kgQ0hV IE5HSElBIFZJRVQgTkFNDQpEb2MgbGFwIC0gVHUgZG8gLSBIYW5oIHBodWMNCioqKg0KSGEgTm9p IG5nYXkgNi85LzIwMTANCg0KSEFZIERVQSBSQSBWQU5IIE1PTkcgTkdVQSBURU4gTEUgVEhBTkgg SEFJLCBVWSBWSUVOIEJPIENISU5IIFRSSSBEQU5HIENPTkcgU0FOIFZJRVQgTkFNLCANCkJJIFRI VSBUSEFOSCBVWSwgTkdVWUVOIENIVSBUSUNIIFVCTkQgVFAgSE8gQ0hJIE1JTkggVkEgRE9ORyBC T04gRE8gREEgREFQIE5IQSwgQ1VPUCBEQVQgDQpDVUEgQkEgRFVPTkcgVEhJIEtJTkgsIFRIQU4g TkhBTiBDVUEgQkEgTElFVCBTSSENCg0KS2luaCBndWk6IC0gUXVvYyBIb2kgLSBVeSBiYW4gVGh1 b25nIHZ1IFF1b2MgSG9pDQotIENodSB0aWNoIE51b2MgTmd1eWVuIE1pbmggVHJpZXQNCi0gTmd1 eWVuIENodSB0aWNoIE51b2MgTGUgRHVjIEFuaA0KLSBOZ3V5ZW4gQ2h1IHRpY2ggTnVvYyBUcmFu IER1YyBMdW9uZw0KLSBDaHUgdGljaCBRdW9jIEhvaSBOZ3V5ZW4gUGh1IFRyb25nDQotIE5ndXll biBDaHUgdGljaCBRdW9jIEhvaSBOZ3V5ZW4gVmFuIEFuDQotIFRodSB0dW9uZyBDaGluaCBwaHUg Tmd1eWVuIFRhbiBEdW5nDQotIE5ndXllbiBUaHUgdHVvbmcgQ2hpbmggcGh1IFBoYW4gVmFuIEto YWkNCi0gVmllbiB0cnVvbmcgVktTTkRUQyBUcmFuIFF1b2MgVnVvbmcNCi0gQm8gdHJ1b25nIENv bmcgYW4gTGUgSG9uZyBBbmgNCi0gVGh1IHRydW9uZyBDbyBxdWFuIERpZXUgdHJhIC0gQm8gQ29u ZyBhbg0KDQpEb25nIGtpbmggZ3VpOiAtIEJhbiBDaGFwIGhhbmggVHJ1bmcgdW9uZyBEQ1NWTg0K LSBCbyBDaGluaCB0cmkgRENTVk4NCi0gQmFuIEJpIHRodSBEQ1NWTg0KLSBUb25nIEJpIHRodSBE Q1NWTiBOb25nIER1YyBNYW5oDQotIE5ndXllbiBUb25nIEJpIHRodSBEQ1NWTiBEbyBNdW9pDQot IE5ndXllbiBUb25nIEJpIHRodSBEQ1NWTiBMZSBLaGEgUGhpZXUNCi0gVGh1b25nIHRydWMgQmFu IGJpIHRodSBEQ1NWTiBUcnVvbmcgVGFuIFNhbmcNCi0gVHJ1b25nIEJhbiBUbyBjaHVjIFRydW5n IHVvbmcgRENTVk4gSG8gRHVjIFZpZXQNCi0gQ2h1IG5oaWVtIFV5IGJhbiBLaWVtIHRyYSBUcnVu ZyB1b25nIERDU1ZOIE5ndXllbiBWYW4gQ2hpDQoNClRvaSBsYSBDdSBIdXkgSGEgVnUsIENvbmcg ZGFuIFZpZXQgTmFtLCBUaWVuIHNpIEx1YXQsIGhvIGtoYXUgdGh1b25nIHRydSB0YWkgMjQgDQpE aWVuIEJpZW4gUGh1LCBIYSBOb2ksIHhpbiBndWkgdG9pIFF1eSB2aSBsb2kgY2hhbyB0cmFuIHRy b25nLg0KDQpDYW4gY3UgTHVhdCBLaGlldSBuYWksIHRvIGNhbywgYmFuZyBEb24gbmF5IHRvaSB0 byBjYW8gdmEgeWV1IGNhdSBRdXkgdmkgdHJ1eSBjdXUgdHJhY2ggDQpuaGllbSBoaW5oIHN1IHZh IGR1YSByYSB2YW5oIG1vbmcgbmd1YSB0ZW4gTGUgVGhhbmggSGFpLCB1eSB2aWVuIEJvIENoaW5o IHRyaSwgQmkgdGh1IA0KVGhhbmggdXksIG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4g dGhhbmggcGhvIEhvIENoaSBNaW5oIHZhIGRvbmcgYm9uIGRvIGRhIA0KZGFwIG5oYSwgY3VvcCBk YXQgbyBjdWEgYmEgRHVvbmcgVGhpIEtpbmgsIHRoYW4gbmhhbiBjdWEgQmEgTGlldCBzaSwgdGFp IDI1NS82LzI3IE5nbyANClRhdCBUbywgcGh1b25nIDIyIHF1YW4gQmluaCBUaGFuaCwgdGhhbmgg cGhvIEhvIENoaSBNaW5oLg0KDQpCYSBEdW9uZyBUaGkgS2luaCwgbmd1eWVuIHF1YW4gdGFpIFRh eSBIbywgeGEgUGh1IFRoYWksIGh1eWVuIFBodSBWYW5nLCB0aW5oIFRodWEgDQpUaGllbiAtIEh1 ZSwgaG8ga2hhdSB0aHVvbmcgdHJ1IHRhaSAyNTUvNi8yNyBOZ28gVGF0IFRvLCBwaHVvbmcgMjIg cXVhbiBCaW5oIFRoYW5oLCANCnRoYW5oIHBobyBIbyBDaGkgTWluaCwgYmFuIHRoYW4gZGEgdGhh bSBnaWEgY2EgaGFpIGN1b2MgY2hpZW4gdHJhbmggYWkgcXVvYywgY28gbWUgbGEgDQpCYSBNZSBW aWV0IE5hbSBhbmggaHVuZywgY28gYm8sIGNob25nLCBjb24gdmEgY2EgYm9uIGVtIHRyYWkgbWEg YmEgS2luaCBkYSBnaXVwIG1lIA0KbnVvaSB0dSBuaG8gZGV1IHRoYW0gZ2lhIFZlIFF1b2MgRG9h biByb2kgUXVhbiBkb2kgbmhhbiBkYW4gVmlldCBOYW0sIHRyb25nIGRvIDMgZW0gDQp0cmFpIER1 b25nIFZhbiBDbywgRHVvbmcgVmFuIEh1dSB2YSBEdW9uZyBWYW4gTGluaCBkYSBhbmggZHVuZyBo eSBzaW5oIHRyb25nIA0KY3VvYyBraGFuZyBjaGllbiBjaG9uZyB0aHVjIGRhbiBQaGFwLCBoaWVu IGRvaSBtaW5oIGNobyBUbyBRdW9jLg0KDQpWb2kgY29uZyBoaWVuIHRvIGxvbiBuaHUgdmF5IGRv aSB2b2kgRGFuIHRvYyB2YSBjaGluaCB0aGUgaGllbiBoYW5oLCBiYSBEdW9uZyBUaGkgS2luaCAN CmhhbiBwaGFpIGR1b2MgTmhhIG51b2MgcXVhbiB0YW0gZGFjIGJpZXQsIGNoaSBpdCBsbyBjaG8g bW90IGNobyBvIHRvaSB0aGlldS4NCg0KVGhlIG5odW5nLCBiYSBEdW9uZyBUaGkgS2luaCBjaGFu ZyBuaHVuZyBraG9uZyBkdW9jIE5oYSBudW9jIGNhcCBuaGEsIGRhdCBkZSBvIG1hIA0KY29uIGJp IHRlbiBMZSBUaGFuaCBIYWksIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENoaSBNaW5oLCBo aWVuIGxhIFV5IHZpZW4gQm8gDQpDaGluaCB0cmksIEJpIHRodSBUaGFuaCB1eSBEYW5nIENvbmcg c2FuIFZpZXQgTmFtIHRoYW5oIHBobyBIbyBDaGkgTWluaCBjdW5nIENodSANCnRpY2ggVUJORCBx dWFuIEJpbmggVGhhbmggTmd1eWVuIEh1dSBOaGFuLCBRdXllbiBDaHUgdGljaCBVQk5EIHF1YW4g QmluaCANClRoYW5oIE5ndXllbiBRdW9jIEh1bmcgdmEgZG9uZyBib24gZGFwIHRhbiBuaGEgdmEg Y3VvcCB0cmFuZyBkYXQgbyB0YWkgMjU1LzYvMjcgTmdvIA0KVGF0IFRvLCBwaHVvbmcgMjIgcXVh biBCaW5oIFRoYW5oLCB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggbWEgYmEgZGEgbXVhIGJhbmcgZG9u ZyANCnRpZW4gYmEgY2hhdCBjaGl1IGNhIGRvaSEgDQoNCk5odW5nIGhhbmggdmkgdG9pIGFjIG5l dSB0cmVuIGN1YSB0ZW4gTGUgVGhhbmggSGFpIHZhIGRvbmcgYm9uIGRpZW4gcmEgY3UgdGhlIG5o dSBzYXU6DQpOZ2F5IDAzLzEyLzIwMDIsIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENoaSBN aW5oIExlIFRoYW5oIEhhaSBkYSByYSBRdXlldCANCmRpbmggc28gNTAxMy9RRC1VQiBuZ2F5IDMv MTIvMjAwMiB2ZSB2aWVjIGdpYW8gOS4wMzkgbTIgZGF0IHRhaSBwaHVvbmcgMjIsIHF1YW4gDQpC aW5oIFRoYW5oICh0cm9uZyBkbyBjbyBuaGEsIGRhdCBvIGN1YSBiYSBEdW9uZyBUaGkgS2luaCkg Y2hvIENvbmcgdHkgRGF1IHR1IHZhIHhheSANCmR1bmcgVGhhbmggbmllbiB4dW5nIHBob25nIGRv IGVtIHJ1b3QgTGUgVGhhbmggSGFpIGxhIExlIFRhbiBIdW5nIGxhbSBnaWFtIGRvYyBkZSANCnhh eSBkdW5nIFRydW5nIHRhbSBUaHVvbmcgbWFpIHRodW9jIHNvIGh1dSB0dSBuaGFuIGNvIGNodWMg bmFuZyBraW5oIGRvYW5oIG5oYSBvLCANCmRpY2ggdnUsIHRodW9uZyBtYWkuDQoNCkRpZXUgMjcg THVhdCBEYXQgZGFpIDE5OTMgcXV5IGRpbmg6ICJUcm9uZyB0cnVvbmcgaG9wIHRoYXQgY2FuIHRo aWV0LCBOaGEgbnVvYyB0aHUgaG9pIA0KZGF0IGRhbmcgc3UgZHVuZyBjdWEgbmd1b2kgc3UgZHVu ZyBkYXQgZGUgc3UgZHVuZyB2YW8gbXVjIGRpY2ggcXVvYyBwaG9uZywgYW4gbmluaCwgDQpsb2kg aWNoIHF1b2MgZ2lhLCBsb2kgaWNoIGNvbmcgY29uZyIuIExlIGRpIG5oaWVuIFRydW5nIHRhbSBU aHVvbmcgbWFpIGtob25nIHBoYWkgbGEgDQpjb25nIHRyaW5oIHF1b2MgcGhvbmcsIGFuIG5pbmgs IGxvaSBpY2ggcXVvYyBnaWEsIGxvaSBpY2ggY29uZyBjb25nIG5lbiBuZ2F5IGNhIGtoaSBUcnVu ZyANCnRhbSBUaHVvbmcgbWFpIHRodW9jIHNvIGh1dSBOaGEgbnVvYywgVUJORCBUUCBIbyBDaGkg TWluaCBraG9uZyBjbyBxdXllbiB0aHUgDQpob2kgZGF0IG8gY3VhIGJhIEtpbmgsIGh1b25nIGhv IFRydW5nIHRhbSBUaHVvbmcgbWFpIG5heSB0aHVvYyBzbyBodXUgdHUgbmhhbi4gRG8gDQpkbywg UXV5ZXQgZGluaCBzbyA1MDEzL1FELVVCIG5nYXkgMy8xMi8yMDAyIGN1YSBDaHUgdGljaCBVQk5E IHRoYW5oIHBobyBIbyBDaGkgDQpNaW5oIExlIFRoYW5oIEhhaSBkdXQga2hvYXQgbGEgaGFuaCB2 aSBjb25nIG5oaWVuIGNoaWVtIGRvYXQgaGF5IG5vaSB0cmFuZyByYSBsYSBjdW9wIA0KZGF0IG8g Y3VhIGJhIEtpbmghDQoNCkJhbiB0aGFuIER1IGFuIFRydW5nIHRhbSBUaHVvbmcgbWFpIHR1IG5v IGN1bmcgZGEgYm9jIGxvIGxhIG1vdCBkdSBhbiAibWFmaWEiIHZvaSANCm5odW5nIGNodW5nIGN1 IHNhdSBkYXkuDQoNCi0gTmdheSAwNC85LzIwMDIgYmFuZyBDb25nIHZhbiBzbyAzNDkzL0tIRFQt WEQgU28gS0gtRFQgZGUgbmdoaSBVQk5EIHRoYW5oIA0KcGhvIEhvIENoaSBNaW5oIHhlbSB4ZXQg dmllYyAidGhheSBkb2kgdG9hbiBibyBub2kgZHVuZyBkdSBhbiIgZGUgYmllbiBkdSBhbiBPS1gg DQp0aGFuaCBEdSBhbiBUcnVuZyB0YW0gVGh1b25nIG1haSBuaHVuZyB0cnVvYyBkbyA5IHRoYW5n LCBuZ2F5IDE1LzEvMjAwMiBDaHUgdGljaCANClVCTkQgVFAgTGUgVGhhbmggSGFpIGRhIHJhIHZh biBiYW4gc28gMTM5L1VCLURCIGNoaSBkYW8gdGhhbmggbGFwIEhvaSBkb25nIGRlbiBidSANCnRo aWV0IGhhaSwgZ2lhaSBwaG9uZyBtYXQgYmFuZyBjdWEgRHUgYW4uIE5naGlhIGxhIHRlbiBMZSBU aGFuaCBIYWkgZGEgbGFtIGNhaSB2aWVjIA0KInNpbmggY29uIHJvaSBtb2kgc2luaCBjaGEiIQ0K DQotIENvbmcgdHkgRGF1IHR1IHZhIFhheSBkdW5nIFRoYW5oIG5pZW4geHVuZyBwaG9uZyBsYSAi Y2h1IGRhdSB0dSByb20iOiB2b24gdHUgY28gKGtlIA0KY2EgdmF5IG5nYW4gaGFuZykgY2hpIGNo aWVtIDQuMyUgdG9uZyB2b24gZGF1IHR1IGN1YSBEdSBhbi4gTmdoaWEgbGEgRHUgYW4gZHVvYyBo aW5oIA0KdGhhbmgga2hvbmcgdHJlbiBuYW5nIGx1YyBjdWEgY2h1IGRhdSB0dSBtYSBob2FuIHRv YW4gZHVhIHRyZW4gIm5hbmcgbHVjIGN1b3AgZGF0IiBjdWEgDQpjaHUgdGljaCBVQk5EIFRQIEhv IENoaSBNaW5oIExlIFRoYW5oIEhhaS4NCg0KVGh1YyBoaWVuIFF1eWV0IGRpbmggc28gNTAxMy9R RC1VQiBuZ2F5IDMvMTIvMjAwMiBjdWEgQ2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gDQpIbyBDaGkg TWluaCBMZSBUaGFuaCBIYWksIHZhbyBzYW5nIDE4LzEwLzIwMDIgQ2h1IHRpY2ggVUJORCBxdWFu IEJpbmggVGhhbmggDQpOZ3V5ZW4gSHV1IE5oYW4gZGEgY3UgbW90IGx1YyBsdW9uZyBkb25nIGRh byBjb25nIGFuLCBkYW4gcGhvbmcuLi4gZGFwIG5oYSBjdWEgYmEgDQpLaW5oIG5vaSBjbyBCYW4g dGhvIFRvIHRpZW4gdmEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyBWYW4gSHV1IHZh IER1b25nIA0KVmFuIExpbmggdmEgbmdheSAyNS80LzIwMDIsIFF1eWVuIENodSB0aWNoIFVCTkQg cXVhbiBCaW5oIFRoYW5oIE5ndXllbiBRdW9jIA0KSHVuZyBkYSByYSBRdXlldCBkaW5oIHNvIDE0 NDIvUUQtVUIgKEJCVCkgIlZlIHZpZWMgYnVvYyBiYSBEdW9uZyBUaGkgS2luaCBnaWFvIA0KZGF0 IHRhaSBzbyAyNTUvNi8yNyBkdW9uZyBOZ28gVGF0IFRvLCBwaHVvbmcgMjIgcXVhbiBCaW5oIFRo YW5oIGRlIHRodWMgaGllbiBkdSBhbiANCnhheSBkdW5nIFRydW5nIHRhbSBUaHVvbmcgbWFpIC0g Y2FuIGhvIE5ndXllbiBIdXUgQ2FuaCwgcGh1b25nIDIyLCBxdWFuIEJpbmggDQpUaGFuaCIgZGUg cm9pIHNhbmcgNy81LzIwMDMgZHVhIGx1YyBsdW9uZyBjdW9wIGx1b24gZGF0IG8gY3VhIGJhIEtp bmghDQoNClF1YSB1YXQgdWMsIGJhIER1b25nIFRoaSBLaW5oIGRhIG5nYSBiZW5oIHZhIGNoZXQg bW90IGNhY2ggdHVjIHR1b2khDQoNClRodWEgUXV5IHZpLCANCg0KVHV5ZW4gbmdvbiBEb2MgbGFw IG5nYXkgMi85LzE5NDUga2hhbmcgZGluaDogIlRhdCBjYSBtb2kgbmd1b2kgZGV1IHNpbmggcmEg Y28gcXV5ZW4gDQpiaW5oIGRhbmcuIFRhbyBob2EgY2hvIGhvIG5odW5nIHF1eWVuIGtob25nIGFp IGNvIHRoZSB4YW0gcGhhbSBkdW9jOyB0cm9uZyBuaHVuZyANCnF1eWVuIGF5LCBjbyBxdXllbiBk dW9jIHNvbmcsIHF1eWVuIHR1IGRvIHZhIHF1eWVuIG11dSBjYXUgaGFuaCBwaHVjIi4NCg0KSGll biBwaGFwIHF1eSBkaW5oIHZlIE5oYSBudW9jIHZhIG5odW5nIHF1eWVuIGNvIGJhbiBjdWEgY29u ZyBkYW4gVmlldCBOYW0gdHJvbmcgDQpkbzoNCg0KLSBEaWV1IDI6ICJOaGEgbnVvYyBDb25nIGhv YSB4YSBob2kgY2h1IG5naGlhIFZpZXQgTmFtIGxhIE5oYSBudW9jIGN1YSBuaGFuIGRhbiwgZG8g DQpuaGFuIGRhbiwgdmkgbmhhbiBkYW4iLg0KLSBEaWV1IDM6ICJOaGEgbnVvYyBiYW8gZGFtIHZh IGtob25nIG5ndW5nIHBoYXQgaHV5IHF1eWVuIGxhbSBjaHUgdmUgbW9pIG1hdCBjdWEgDQpuaGFu IGRhbiwgbmdoaWVtIHRyaSBtb2kgaGFuaCBkb25nIHhhbSBwaGFtIGxvaSBpY2ggY3VhIFRvIHF1 b2MgdmEgY3VhIG5oYW4gZGFuOyB4YXkgDQpkdW5nIGRhdCBudW9jIGdpYXUgbWFuaCwgdGh1YyBo aWVuIGNvbmcgYmFuZyB4YSBob2ksIG1vaSBuZ3VvaSBjbyBjdW9jIHNvbmcgYW0gbm8sIHR1IA0K ZG8sIGhhbmggcGh1YywgY28gZGlldSBraWVuIHBoYXQgdHJpZW4gdG9hbiBkaWVuIi4NCg0KLSBE aWV1IDQ4OiAiTmhhIG51b2MgcGhhdCBodXkgdGluaCB0aGFuIHlldSBudW9jIHZhIGNodSBuZ2hp YSBhbmggaHVuZyBjYWNoIG1hbmcgY3VhIA0KbmhhbiBkYW4uLi50aHVjIGNoaW5oIHNhY2ggaGF1 IHBodW9uZyBxdWFuIGRvaSIuIA0KDQotIERpZXUgNTg6ICJDb25nIGRhbiBjbyBxdXllbiBzbyBo dXUgdmUgdGh1IG5oYXAgaG9wIHBoYXAsIGN1YSBjYWkgZGUgZGFuaCwgbmhhIG8uLi4gDQpOaGEg bnVvYyBiYW8gaG8gcXV5ZW4gc28gaHV1IGhvcCBwaGFwIHZhIHF1eWVuIHRodWEga2UgY3VhIGNv bmcgZGFuIi4NCg0KLSBEaWV1IDcwOiAiQ29uZyBkYW4gY28gcXV5ZW4gdHUgZG8gdGluIG5ndW9u ZywgdG9uIGdpYW8uLi5OaHVuZyBub2kgdGhvIHR1IGN1YSBjYWMgdGluIA0Kbmd1b25nLCB0b24g Z2lhbyBkdW9jIHBoYXAgbHVhdCBiYW8gaG8iLg0KDQpQaGFwIGxlbmggVXUgZGFpIG5ndW9pIGhv YXQgZG9uZyBjYWNoIG1hbmcsIGxpZXQgc2kgdmEgZ2lhIGRpbmggbGlldCBzaSwgdGh1b25nIGJp bmgsIGJlbmggDQpiaW5oLCBuZ3VvaSBob2F0IGRvbmcga2hhbmcgY2hpZW4sIG5ndW9pIGNvIGNv bmcgZ2l1cCBkbyBjYWNoIG1hbmcgdGFpIERpZW0gYSwgS2hvYW4gDQoyIERpZXUgOSBxdXkgZGlu aDoiR2lhIGRpbmggbGlldCBzaSBkdW9jIHV1IHRpZW4gZ2lhbyBkYXQsIGR1b2MgZ2lhaSBxdXll dCBkYXQgbywgaG8gdHJvIGRlIA0KY28gbmhhIG8uIg0KDQpDaHUgdGljaCBIbyBDaGkgTWluaCBs dW9uIGJpZXQgb24gY2FjIExpZXQgc2k6DQoNCi0gVGh1IG5oYW4gY2FjIGNvbiBsaWV0IHNpIGxh bSBjb24gbnVvaSBuZ2F5IDExLTExLTE5NDY6ICIuLi5Ub2kgZ3VpIGxvaSBjaHVjIHRoYW4gYWkg Y2hvIA0KY2FjIGdpYSBkaW5oIGxpZXQgc2kgZG8gdmEgdG9pIG5oYW4gY2FjIGNvbiBsaWV0IHNp IGxhbSBjb24gbnVvaSBjdWEgdG9pIi4NCg0KLSBUaHUgZ3VpIEdpYW0gZG9jIFNvIFkgdGUgQmFj IEJvLCBuZ2F5IDctMS0xOTQ3OiAiLi4uaG8gY2hldCBjaG8gVG8gcXVvYyBzb25nIG1haSwgDQp2 YXQgY2hhdCBobyBtYXQgZGkgbmh1bmcgdGluaCB0aGFuIGhvIHNlIGx1b24gc29uZyBtYWkgdm9p IG5vbiBzb25nIFZpZXQgTmFtLiBOaHVuZyANCnRoYW5oIG5pZW4gZG8gbGEgYW5oIGh1bmcgZGFu IHRvYy4gRG9uZyBiYW8gdmEgVG8gcXVvYyBzZSBraG9uZyBiYW8gZ2lvIHF1ZW4gb24gaG8uIg0K DQotIERpZW4gdHUgdGFpIGJ1b2kgbGUgZGF0IHZvbmcgaG9hIG8gRGFpIExpZXQgc2kgbmdheSAz MS0xMi0xOTU0OiAiLi4uIENhYyBsaWV0IHNpIGhpIHNpbmgsIA0Kbmh1bmcgY29uZyB0cmFuZyB0 byBsb24gY3VhIGNhYyBsaWV0IHNpIGRhIGdoaSBzYXUgdmFvIGxvbmcgdG9hbiBkYW4gdmEgbm9u IHNvbmcgZGF0IA0KbnVvYy4gQ2FjIGxpZXQgc2kgZGEgaGkgc2luaCwgbmh1bmcgY2hpIGtoaSBk dW5nIGNhbSBjdWEgY2FjIGxpZXQgc2kgZGEgdGhhbSBuaHVhbiB2YW8gDQp0YW0gaG9uIGN1YSB0 b2FuIHF1YW4gdmEgZGFuIHRhIHRyb25nIGN1b2MgZGF1IHRyYW5oIGRhbmcgZ2lhbmggaG9hIGJp bmgsIHRob25nIG5oYXQsIA0KZG9jIGxhcCB2YSBkYW4gY2h1IHRyb25nIG51b2MuIE1hdSBub25n IGN1YSBjYWMgbGlldCBzaSBkYSBuaHVvbSBsYSBxdW9jIGtpIHZlIHZhbmcgDQpjYW5nIHRoZW0g ZG8gdGhhbS4gVGllbmcgdGhvbSBjdWEgY2FjIGxpZXQgc2kgbXVvbiBkb2kgbHV1IHRydXllbiBz dSB4YW5oLiINCg0KLSBUaHUgZ3VpIEJvIHRydW9uZyBCbyBUaHVvbmcgYmluaCBuZ2F5IDI3LTct MTk1NjogIlRodW9uZyBiaW5oLCBiZW5oIGJpbmgsIGdpYSANCmRpbmggcXVhbiBuaGFuIHZhIGdp YSBkaW5oIGxpZXQgc2kgbGEgbmh1bmcgbmd1b2kgY28gY29uZyB2b2kgVG8gcXVvYywgdm9pIG5o YW4gZGFuLiANCkNobyBuZW4gYm9uIHBoYW4gY3VhIGNodW5nIHRhIGxhIHBoYWkgYmlldCBvbiwg cGhhaSB0aHVvbmcgeWV1IHZhIGdpdXAgZG8gaG8uIiANCg0KTmh1IHZheSwgYmFuZyB2aWVjIGRh cCBuaGEsIGRhcCBub2kgdGhvIHR1IHRvIHRpZW4gdmEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENv LCBEdW9uZyANClZhbiBIdXUgdmEgRHVvbmcgVmFuIExpbmgsIGN1b3AgZGF0IG8gY3VhIGJhIER1 b25nIFRoaSBLaW5oIGNobyBlbSBydW90IG1pbmggTGUgDQpUYW4gSHVuZywgY3VvcCBkaSBjYWkg UXV5ZW4gQ29uIE5ndW9pIHRvaSB0aGlldSBuaGF0LCBRdXllbiBNdXUgY2F1IGhhbmggcGh1YyB0 b2kgDQp0aGlldSBuaGF0IGN1YSBjb25nIGRhbiBsYSBRdXllbiBjbyBuaGEgbywgdGVuIGFjIG9u IExlIFRoYW5oIEhhaSwgVXkgdmllbiBCbyBDaGluaCANCnRyaSwgQmkgdGh1IFRoYW5oIHV5IERh bmcgQ29uZyBzYW4gVmlldCBOYW0sIG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4gVGhh bmggDQpwaG8gSG8gQ2hpIE1pbmggY3VuZyBjYWMgdGVuIE5ndXllbiBIdXUgTmhhbiwgQ2h1IHRp Y2ggdmEgTmd1eWVuIFF1b2MgSHVuZywgDQpRdXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4g cXVhbiBCaW5oIFRoYW5oLCB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggdmEgZG9uZyBib24gDQpraGFj IGRhIHRyYW5nIHRyb24gY2hhIGRhcCBUdXllbiBuZ29uIERvYyBsYXAsIEhpZW4gcGhhcCB2YSBw aGFwIGx1YXQsIG5nYW5nIG5oaWVuIA0KbmdvaSB4b20gbGVuIG5odW5nIGxvaSBrZXUgZ29pIGJp ZXQgb24gTGlldCBzaSBjdWEgQ2h1IHRpY2ggSG8gQ2hpIE1pbmgsIGxhdCBkbyB0cmVuIHRodWMg DQp0ZSBjaGluaCBxdXllbiBjdWEgRGFuLCBkbyBEYW4sIHZpIERhbiB2YSBkbyBkbyBsYSAibHUg Y3VvcCBuZ2F5IiwgbGEgZ2lhYywgbGEgIm5vaSB4YW0iIA0KLSBLZSBUaHUgY3VhIHRvYW4gdGhl IG5oYW4gZGFuIFZpZXQgTmFtIQ0KDQpCYW4gdGhhbiBRdXkgdmkgbHVvbiBsdW9uIG5ldSBjYW8g VHV5ZW4gbmdvbiBEb2MgbGFwLCBsdW9uIGtldSBnb2kgIlNvbmcgdmEgbGFtIHZpZWMgdGhlbyBI aWVuIHBoYXAgdmEgUGhhcCBsdWF0IiwgIkhvYyB0YXAgdGFtIGd1b25nIGRhbyBkdWMgSG8gQ2hp IE1pbmgiLCAiQ2hvbmcgZGllbiANCmJpZW4gaG9hIGJpbmgsIGxhdCBkbyBjaGluaCBxdXllbiBu aGFuIGRhbiBjdWEgY2FjIHRoZSBsdWMgdGh1IGRpY2giLCB2LnYuIHZhIHYudi4gVmF5IGNvbiAN CmNobyBnaSBudWEgbWEgUXV5IHZpIGtob25nIGxvaSBjbyB0ZW4gYWMgb24gTGUgVGhhbmggSGFp IGN1bmcgZG9uZyBib24gcmEgeGV0IHh1IHRydW9jIA0KVG9hIGFuIE5oYW4gZGFuIGRlIGJhdCBj aHVuZyBwaGFpIERlbiBObyBNYXUgbWEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyAN ClZhbiBIdXUgdmEgRHVvbmcgVmFuIExpbmggZGEgZG8gcmEgZGUgVG8gUXVvYyBxdXlldCBzaW5o IQ0KDQpUcmVuIHRpbmggdGhhbiBkbywgbmhhbiBLeSBuaWVtIGxhbiB0aHUgNjUgTmdheSBEb2Mg bGFwIDIvOSwgdG9pLCBDdSBIdXkgSGEgVnUsIHlldSANCmNhdSBRdXkgdmkga2hhbiBjYXAgY2hp IGRhbyBob2FjIHRydWMgdGllcDoNCg0KMS4gS2hvaSB0byBiaSBjYW4gdmEgYmF0IGdpYW0gTGUg VGhhbmggSGFpIHZhIE5ndXllbiBIdXUgTmhhbiwgTmd1eWVuIFF1b2MgSHVuZyANCmN1bmcgZG9u ZyBib24ga2hhYyBkZSBkdWEgY2h1bmcgcmEgdmFuaCBtb25nIG5ndWEgZGUgYnVvYyBjaHVuZyBs YW5oIGFuIHZlICJUb2kgaHV5IA0KaG9haSB0YWkgc2FuIiBxdXkgZGluaCB0YWkgRGlldSAxNDMs ICJUb2kgY29uZyBuaGllbiBjaGllbSBkb2F0IHRhaSBzYW4iIHF1eSBkaW5oIHRhaSANCkRpZXUg MTM3LCAiVG9pIGhvYXQgZG9uZyBuaGFtIGxhdCBkbyBjaGluaCBxdXllbiBuaGFuIGRhbiIgcXV5 IGRpbmggdGFpIERpZXUgNzkgQm8gDQpMdWF0IGhpbmggc3UgZG8gZGEgZGFwIG5oYSwgZGFwIG5v aSB0aG8gdHUgdG8gdGllbiB2YSBjYWMgTGlldCBzaSBEdW9uZyBWYW4gQ28sIER1b25nIA0KVmFu IEh1dSB2YSBEdW9uZyBWYW4gTGluaCwgY3VvcCBkYXQgbyBjdWEgYmEgRHVvbmcgVGhpIEtpbmgg ZG9uZyB0aG9pIGRlIGJ1b2MgDQpjaHVuZyB0cmEgbGFpIGNobyBuaHVuZyBuZ3VvaSB0aHVhIGtl IGJhIER1b25nIFRoaSBLaW5oIG5oYSB2YSBkYXQgbyBtYSBjaHVuZyBkYSBkYXAgDQp2YSBjdW9w IGN1YSBiYSBLaW5oLg0KDQoyLiBUcnV5IGNhcCBuaGEgbywgZGF0IG8gY2hvIGJhIER1b25nIFRo aSBLaW5oIHRoZW8gdGlldSBjaHVhbiB0aGFuIG5oYW4gY28gY29uZyBudW9pIA0KY2FjIExpZXQg c2kgRHVvbmcgVmFuIENvLCBEdW9uZyBWYW4gSHV1IHZhIER1b25nIFZhbiBMaW5oLg0KDQpEZSBu Z2hpIFF1eSB2aSBnaWFpIHF1eWV0IERvbiB0byBjYW8gbmF5IHRoZW8gZHVuZyBxdXkgZGluaCBj dWEgTHVhdCBLaGlldSBuYWksIHRvIGNhby4NCg0KVHJhbiB0cm9uZywgDQpEVDogMDkwNDM1MDE4 NywgRW1haWw6IGhhdnVsYXdAeWFob28uY29tLiBUaWVuIHNpIEx1YXQgQ3UgSHV5IEhhIFZ1IA0K UGh1IGx1YzoNCg0KKEFuaCBjaHVwOiBOaGEgY3VhIGJhIER1b25nIFRoaSBLaW5oIGRhbmcgYmkg ZGFwIHBoYSwgY29uZyBhbiBkdW5nIHhlbSkNCihBbmggY2h1cDogQmllbiBsYWkgYnV1IGRpZW4g bmhhbiBjaHV5ZW4gZG9uIHRvIGNhbyBjdWEgVFMuIEN1IEh1eSBIYSBWdSkgIA0KDQpbaHR0cDov L3d3dy5xdWFuMi5ob2NoaW1pbmhjaXR5Lmdvdi52bi9pbnRyby5hc3B4P0luZm9Db2RlPTQxNA0K DQpUUCBIQ006IE9uZyBOZ3V5ZW4gTWluaCBUcmlldCBsYSBkYWkgYmlldSBRSCwgZG9hbiBUUCBI Q00NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0NodS10aWNoLW51b2MtTmd1eWVuLU1pbmgt VHJpZXQtdGllcC14dWMtY3UtdHJpLUNoaW5oLXRvaS1jb24tYmktdGh1LXR1Yy1oYW5oLzQwMjMw Nzc0LzE1Ny8gTEUgQU5IIERVIDI0LzExLzIwMDcsIDA3OjM3IEdNVCs3DQoNCk9uZyBDaHUgdGlj aCBudW9jIE5ndXllbiBNaW5oIFRyaWV0IHRpZXAgeHVjIGN1IHRyaTogDQoNCisgRGUgbmdoaSB0 aGFuaCB0cmEgdG9hbiBkaWVuIGR1IGFuIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbQ0KDQpUcnVv YyBuaHVuZyBidWMgeHVjIGN1YSBuaGlldSBuZ3VvaSBkYW4gcXVhbiAyIHRhaSBidW9pIHRpZXAg eHVjIGRhaSBiaWV1IFF1b2MgaG9pIGNoaWV1IDIzLTExLCANCkNodSB0aWNoIG51b2MgTmd1eWVu IE1pbmggVHJpZXQgcXVhIHF1eWV0Og0KDQoiVG9pIHNlIHRydWMgdGllcCBwaGFuIGFuaCB2YSBk ZSBuZ2hpIFRodSB0dW9uZyBDaGluaCBwaHUgY2hvIGxhcCBkb2FuIHRoYW5oIHRyYSB0b25nIA0K aG9wIGR1IG1hbmggdmFvIHRoYW5oIHRyYSB0b2FuIGRpZW4gZHUgYW4ga2h1IGRvIHRoaSBtb2kg VGh1IFRoaWVtIHR1IHF1aSBob2FjaCwgcXVhbiANCmx5LCBzdSBkdW5nIGRhdC4uLiBkZW4gMTYw aGEgZGF0IHRhaSBkaW5oIGN1IG1hIGN1IHRyaSBxdWFuIDIgZGFuZyB0aGFjIG1hYyIuDQoNClRy dW9jIGRvLCBtb3QgbGFuaCBkYW8gVGhhbmggdHJhIENoaW5oIHBodSBjdW5nIGNobyBiaWV0IHNl IGRlIG5naGkgVGh1IHR1b25nIGNobyANCnRoYW5oIHRyYSB0b2FuIGRpZW4gdmllYyBxdWFuIGx5 LCBzdSBkdW5nIGRhdCB0cmVuIGRpYSBiYW4gcXVhbiAyLCB0cm9uZyBkbyBjbyBkdSBhbiBraHUg DQpkbyB0aGkgbW9pIFRodSBUaGllbS4gIlZpZWMgbmFvIGR1bmcgY2FuIHBoYWkgZHVvYyBrZXQg bHVhbiwgdW5nIGhvIFRQIHRpZXAgdHVjIGxhbSwgDQpjaG8gbmFvIHNhaSBjdW5nIGNhbiBwaGFp IGtoYW5nIGRpbmggZGUgY2hhbiBjaGluaCwga2hhYyBwaHVjIiAtIHZpIGxhbmggZGFvIG5heSBu b2kuDQoNClRyb25nIGx1YyBjaG8gc3UgZ2lhaSBxdXlldCBjdWEgY2FjIGNvIHF1YW4gY2h1YyBu YW5nLCBDaHUgdGljaCBudW9jIGRlIG5naGkgbmd1b2kgZGFuIA0KYmkgYW5oIGh1b25nIGN1YSBk dSBhbiBUaHUgVGhpZW0gY2FuIGhldCBzdWMgYmluaCB0aW5oLiBTdSB1bmcgaG8gY3VhIENodSB0 aWNoIG51b2MgDQpkdW9jIGN1IHRyaSBxdWFuIDIgbmhpZXQgbGlldCBkb25nIHRpbmguIFR1eSBu aGllbiwgdGhlbyBjdSB0cmksIGRvYW4gdGhhbmggdHJhIG5ldSB2YW8sIGNhbiANCnRoaWV0IHBo YWkgdGllcCB4dWMgdm9pIG5ndW9pIGRhbiBkZSBuYW0gdGhvbmcgdGluIGR1b2MgZGF5IGR1IGhv bi4gVHJ1b2MgZG8sIGtoaSBuZXUgeSANCmtpZW4sIGN1IHRyaSBraG9uZyBkb25nIHRpbmggdm9p IGNhY2ggZ2lhaSB0aGljaCBjdWEgVUJORCBUUCB0YWkgdmFuIGJhbiA3MzkzIG5nYXkgMzEtDQox MC0yMDA3IGd1aSBUaHUgdHVvbmcgQ2hpbmggcGh1IGJhbyBjYW8gdmllYyB0aHVjIGhpZW4gcXVp IGhvYWNoIGRhdSB0dSBraHUgZG8gdGhpIA0KbW9pIFRodSBUaGllbS4NCg0KQ3UgdHJpIGNobyBy YW5nIGNvbiBuaGlldSBkaWV1IGtodWF0IHRhdCBwaGlhIHNhdSBkdSBhbiBuYXkgY2FuIHBoYWkg ZHVvYyBsYW0gcm8uIEN1IHRyaSANCmN1bmcga2hvbmcgYmFuZyBsb25nIHZvaSBjaGkgZGFvIG1v aSBkYXkgY3VhIGJpIHRodSBUaGFuaCB1eSBUUC5IQ00gcmFuZyAia2hhbiANCnRydW9uZyBjaHVh biBiaSBkYXkgZHUgcXVpIGRhdCB0YWkgZGluaCBjdSB0cm9uZyBwaGFtIHZpIG5hbSBwaHVvbmcg ZGUgeGF5IGR1bmcgDQoxMi41NTUgY2FuIGhvIGNodW5nIGN1IGRhcCB1bmcgeWV1IGNhdSB0YWkg ZGluaCBjdSBjaG8gbmd1b2kgZGFuIHRyb25nIGR1IGFuIiwgdmkgdGhlbyANCmN1IHRyaSwga2hv bmcgdGhlIGRvbiBxdWEgbmhpZXUgbmd1b2kgdmFvIGNodW5nIGN1Lg0KDQpTYW5nIGN1bmcgbmdh eSwgY3UgdHJpIHF1YW4gMSBtb3QgbGFuIG51YSBidWMgeHVjIHRydW9jIHRpbmggdHJhbmcgcXVp IGhvYWNoICJ0cmVvIiBkYW4gDQpkZW4gInRyZW8iIGNhIGN1b2Mgc29uZyBuZ3VvaSBkYW4uICJL aGkgbmFvIGNvIG5ndW9pIHlldSB0aGkgaGF5IHRpbmggZGVuIGNodXllbiBjdW9pIA0Kdm8iLCBj dSB0cmkgdmkgdm9uIG5odSB2YXkgZGUgZGUgbmdoaSBjaGluaCBxdXllbiBraGkgbmFvIGNvIHRp ZW4sIGtoaSBuYW8gdGltIGR1b2MgZG9pIA0KdGFjIHhheSBkdW5nIHRoaSBoYXkgcXVpIGhvYWNo IGdpYWkgdG9hLCBjaHUgZHVuZyBraG9hbmggdnVuZyBkZSBkbyByYXQga2hvIGNobyBkYW4uIA0K IlF1aSBob2FjaCB0cmVvIGhpZW4gbmF5IGdpb25nIG5odSBiYXQgbmd1b2kgdGEgbmhvdCB2YW8g dGh1bmcgcGh1eSwgbGF1IGxhdSBkaSBuZ2FuZyANCmdvIG1heSBjYWkiIC0gY3UgdHJpIHNvIHNh bmguDQoNCkxpZW4gcXVhbiBkZW4gdGh1IHR1YyBoYW5oIGNoaW5oLCBtb3QgY3UgdHJpIGNobyBi aWV0OiAiQ28gY3UgYmEgaG9uIDcwIHR1b2ksIHNhdSBraGkgDQpjaG9uZyBjaGV0IGR1b2MgbW90 IG5hbSB0aGkgbW9pIHRpZW4gaGFuaCBsYW0gZ2lheSB0byBuaGEgZGF0LiBMZW4gcXVhbiwgY2Fu IGJvIHlldSANCmNhdSBwaGFpIGJvIHR1YyBnaWF5IGNodW5nIHR1LiBTYXUga2hpIG5vcCBnaWF5 IGNodW5nIHR1IHRoaSBjYW4gYm8geWV1IGNhdSBibyBzdW5nIGdpYXkgDQp4YWMgbmhhbiBkb2Mg dGhhbiIuIENhIGhvaSB0cnVvbmcga2hvbmcgYWkgbmluIGR1b2MgY3VvaS4gQ2h1IHRpY2ggbnVv YyBjaGlhIHNlOiAiVGh1IA0KdHVjIGNvbiBsYW0gbmhpZXUga2hlLCBjaGluaCB0b2kgY29uIGJp IHRodSB0dWMgaGFuaCIuIFRoZW8gQ2h1IHRpY2ggbnVvYywgY29uIHF1YSBuaGlldSANCnF1aSBk aW5oIGJhdCBob3AgbHksIHR1b25nIHJhbmcgcXVpIGRpbmggY2hpIHRpZXQgdGhpIGJhbyB2ZSBj aG8gbmd1b2kgZGFuIG5odW5nIHRodWMgY2hhdCBsYSBsYW0ga2hvIG5ndW9pIGRhbi5dDQoNCmh0 dHA6Ly93d3cueGFsdWFuLmNvbS9tb2R1bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNp ZD0yNDIyOCBRVU9DIFRIQU5IIC0gQU5IIERVIDA1LzEyLzA3IDIxOjA5IA0KDQpUUCBIQ006IEJv IHRyaSB0YWkgZGluaCBjdSBzYWkgcXV5IGRpbmggbyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0N Cg0KTmd1b2kgZGFuIHBoYWkgY2hpdSB0aGlldCAtIFRhaSBkaW5oIGN1IG8gNSBwaHVvbmcgYmll biB0aGFuaCB0YWkgZGluaCBjdSBvIG5oaWV1IG5vaSEgDQoNCihBbmg6IEtodSB0YWkgZGluaCBj dSBBbiBQaHUgY3VhIGR1IGFuIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSBuYW0gbmdheSBiZW4g dHJ1YyANCmR1b25nIEx1b25nIERpbmggQ3VhLCBRLjIsIFRQLkhDTSkgDQogDQpYb2F5IHF1YW5o ICJkaWVtIG5vbmciIDE2MCBoYSBkYXQgdGFpIGRpbmggY3UgY2hvIGR1IGFuIGtodSBkbyB0aGkg bW9pIFRodSBUaGllbSwgDQpVQk5EIFRQSENNIGRhIG5oaWV1IGxhbiBnaWFpIHRoaWNoIHZvaSBk YW4gdmEgYmFvIGNhbyBUaHUgdHVvbmcgQ2hpbmggcGh1IHZlIHRoYWMgDQptYWMsIGtoaWV1IG5h aSBjdWEgZGFuLg0KDQpUdXkgbmhpZW4sIG5ndW9pIGRhbiB2YW4gY2h1YSBkb25nIHRpbmggdmUg c3Uga2hhYyBuaGF1IGdpdWEgcXV5ZXQgZGluaCBjdWEgVGh1IHR1b25nIA0KQ2hpbmggcGh1IHZh IHZpZWMgdGh1YyBoaWVuIGN1YSBVQk5EIFRQIHZlIHZpIHRyaSBkYXQgdGFpIGRpbmggY3UuIENh dSBjaHV5ZW4gbmF5IHZhbiANCmNodWEgZHVuZyBsYWkuLi4gDQoNCk5odW5nIGtoaWV1IG5haSBj dWEgbmd1b2kgZGFuIHhvYXkgcXVhbmggdmllYyBVQk5EIFRQIGRhIHRodWMgaGllbiBraG9uZyBk dW5nIHZpIA0KdHJpIDE2MCBoYSBkYXQgdGFpIGRpbmggY3UgZGEga2VvIGRhaSB2YSB2YW4gY29u IHRpZXAgdHVjLiBWaSBzYW8/IA0KDQpEdSBhbiB4YXkgZHVuZyBraHUgZG8gdGhpIG1vaSBUaHUg VGhpZW0gY2hpbmggdGh1YyBkdW9jIGtob2kgZG9uZyBraGkgVUJORCBUUCBjbyANCnRvIHRyaW5o IFRodSB0dW9uZyBDaGluaCBwaHUgdmFvIG5hbSAxOTk2IHhpbiBkdXlldCBxdWkgaG9hY2ggeGF5 IGR1bmcga2h1IGRvIHRoaSANCm1vaSBuYXkgKHRodW9jIGh1eWVuIFRodSBEdWMgdHJ1b2MgZGF5 LCBuYXkgbGEgcXVhbiAyKS4gVGhlbyBkbywga2h1IGRvIHRoaSBjbyBkaWVuIA0KdGljaCBkdW9j IHhhYyBkaW5oIGtob2FuZyA3NzAgaGEsIGNvbiBkYXQgZGFuaCBjaG8gdGFpIGRpbmggY3Uga2hv YW5nIDE2MCBoYSBkdW9jICJibyANCnRyaSB0aWVwIGNhbiBnaWFwIHJhbmggcGhhbSB2aSBsYXAg cXVpIGhvYWNoIi4gDQoNClF1eWV0IGRpbmggY3VhIFRodSB0dW9uZzogdGFpIGRpbmggY3UgbyA1 IHBodW9uZyANCg0KUXV5ZXQgZGluaCBjdWEgVGh1IHR1b25nIENoaW5oIHBodSBwaGUgZHV5ZXQg cXVpIGhvYWNoIHhheSBkdW5nIGtodSBkbyB0aGkgbW9pIFRodSANClRoaWVtIGRhIHhhYyBkaW5o IHF1aSBtbyBjdWEgZHUgYW46IHRvbmcgZGllbiB0aWNoIDkzMCBoYSwgdHJvbmcgZG86IGtodSBk byB0aGkgbW9pIA0KNzcwaGEgdmEga2h1IHRhaSBkaW5oIGN1IDE2MGhhLiBOZ2hpIHF1eWV0IDIx IG5hbSAyMDAyIHZlIGRhdSB0dSB4YXkgZHVuZyB0cnVuZyB0YW0gDQpkbyB0aGkgbW9pIFRodSBU aGllbSBjdWEgSERORCBUUCBraG9hIFZJIGN1bmcgeGFjIGRpbmggcXVpIG1vIGR1IGFuIGxhIDkz MCBoYSwgdHJvbmcgDQpkbyBraHUgdHJ1bmcgdGFtIGRvIHRoaSBtb2kgVGh1IFRoaWVtIDc3MCBo YSB2YSBraHUgdGFpIGRpbmggY3UgMTYwaGEuIA0KDQpEZW4ga2hvYW5nIGRhdSBuYW0gMjAwMiwg dGFpIHZhbiBiYW4gY3VhIFRodSB0dW9uZyBDaGluaCBwaHUgZG9uZyB5IGNobyBVQk5EIFRQIA0K dGh1IGhvaSA5MzAgaGEgZGF0IGRlIHRodWMgaGllbiBkdSBhbiBub2kgdHJlbiwgbW90IGxhbiBu dWEgeGFjIGRpbmggcm8gcGhhbiBkaWVuIHRpY2ggDQpkdW9jIHRodSBob2kgZ29tIDc3MCBoYSBk ZSB4YXkgZHVuZyBraHUgZG8gdGhpIG1vaSB2YSAxNjAgaGEgZGUgeGF5IGR1bmcga2h1IHRhaSBk aW5oIA0KY3UuIEhhaSBwaGFuIGtodSBjaHVjIG5hbmcgY28gYmFuIG5heSBkdW9jIFRodSB0dW9u ZyBjaGkgZGljaCBkYW5oIG5hbSB0cmVuIHBoYW0gdmkgDQpuYW0gcGh1b25nLCB0cm9uZyBkbyBj byBiYSBwaHVvbmcgYmkgZ2lhaSB0b2EgdHJhbmc6IFRodSBUaGllbSwgQW4gTG9pIERvbmcsIEFu IA0KS2hhbmg7IGhhaSBwaHVvbmcgYmkgZ2lhaSB0b2EgbW90IHBoYW4gbGEgQmluaCBBbiB2YSBC aW5oIEtoYW5oLiANCg0KVGhlbyBxdXlldCBkaW5oIG5heSwgcGhhbiBkYXQgdGFpIGRpbmggY3Ug Y3VhIGR1IGFuIGN1bmcgbmFtIHRyZW4gcGhhbSB2aSBuYW0gcGh1b25nIA0KbmF5LCB0dXkgY2h1 YSBkdW9jIHhhYyBkaW5oIGNoaW5oIHhhYyBvIG5odW5nIGRpYSBkaWVtIG5hby4gVGh1IHR1b25n IENoaW5oIHBodSB5ZXUgDQpjYXUgY2hpbmggcXV5ZW4gdGhhbmggcGhvIHNvbSB0byBjaHVjIGJv aSB0aHVvbmcsIGdpYWkgcGhvbmcgbWF0IGJhbmcsIHhheSBkdW5nIGtodSANCnRhaSBkaW5oIGN1 IHZhIHF1YW4gbHkgY2hhdCBjaGUgY2FjIGtodSBkYXQgZHVvYyBnaWFpIHRvYSB0cm9uZyBwaGFt IHZpIG5hbSBwaHVvbmcgbm9pIHRyZW4uIA0KDQpDYWMgcXV5ZXQgZGluaCB0cmVuIGNobyB0aGF5 IGNoaSBkYW8gY3VhIFRodSB0dW9uZyBkYSB4YWMgZGluaCByYXQgcm8gZGllbiB0aWNoIGRhdCBk dW9jIA0KdGh1IGhvaSBkZSB4YXkga2h1IGRvIHRoaSBtb2kgdmEgeGF5IGtodSB0YWkgZGluaCBj dSBjdW5nIG5odSBnaW9pIGhhbiBwaGFtIHZpIGR1b2MgdGh1IA0KaG9pIGRhdC4gDQoNCk5odSB2 YXkgdHUgZGF1IFRodSB0dW9uZyBDaGluaCBwaHUgdmEgSERORCBUUCBkYSB4YWMgZGluaCBjaG8g bmd1b2kgZGFuIGJpIGdpYWkgdG9hIA0KZHVvYyB0YWkgZGluaCBjdSB0YWkgY2hvIGRlIGR1b2Mg aHVvbmcgbmh1bmcgbG9pIGljaCB0dSB2aWVjIHBoYXQgdHJpZW4ga2h1IGRvIHRoaSBtb2kuIA0K VGhlIG5odW5nIHNhdSBkbyBVQk5EIFRQIGRhIHRodWMgaGllbiBxdXlldCBkaW5oIGN1YSBUaHUg dHVvbmcgQ2hpbmggcGh1IGN1bmcgbmh1IA0KbmdoaSBxdXlldCBjdWEgSERORCBUUCB2ZSBkdSBh biBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0ga2hvbmcgaG9hbiB0b2FuIGR1bmcgbmh1IA0KdmF5 LiANCg0KVUJORCBUUDogcmFpIHJhIG5oaWV1IG5vaSANCg0KVGhlbyBtb3QgYmFvIGNhbyBjdWEg VUJORCBUUCwgdGFpIGN1b2MgaG9wIG5nYXkgMTQtMy0yMDAyLCBDaHUgdGljaCBVQk5EIFRQIExl IA0KVGhhbmggSGFpIGx1YyBkbyBraGFuZyBkaW5oIHBoYWkgdGh1YyBoaWVuIGR1bmcgdGhlbyBx dXlldCBkaW5oIGN1YSBUaHUgdHVvbmcgdmUgcXVpIA0KbW8gY3VhIGR1IGFuIFRodSBUaGllbS4g RGllbiB0aWNoIGRhdCBwaGFpIHRodSBob2kgbGEgOTMwIGhhLCBiYW8gZ29tIDc3MGhhIGRlIHhh eSANCmR1bmcga2h1IGRvIHRoaSBtb2kgdmEgMTYwIGhhIGRlIHhheSBkdW5nIGtodSB0YWkgZGlu aCBjdS4gDQoNCk9uZyBnaWFvIGNobyBLaWVuIHRydWMgc3UgdHJ1b25nIFRQIChuYXkgbGEgU28g UXVpIGhvYWNoIC0ga2llbiB0cnVjIFRQKSB2YSBnaWFtIGRvYyANClNvIERpYSBjaGluaCAtIG5o YSBkYXQgKG5heSBsYSBTbyBUYWkgbmd1eWVuIHZhIG1vaSB0cnVvbmcgVFApIGNvIHRyYWNoIG5o aWVtIGNhbSBtb2MgDQpnaWFvIGR1IDc3MCBoYSBjdWEga2h1IHRydW5nIHRhbSwgdGhlbyBnaWFp IHBoYXAgYm8gc3VuZyBraHUgdGFpIGRpbmggY3UgQmluaCBLaGFuaCANCnZhbyBraHUgdHJ1bmcg dGFtIGRvIHRoaSBtb2kgVGh1IFRoaWVtLiBSaWVuZyBkYXQgdGFpIGRpbmggY3UsIENodSB0aWNo IExlIFRoYW5oIEhhaSANCnlldSBjYXUgcmEgc29hdCBxdWkgZGF0IHRyZW4gZGlhIGJhbiBxdWFu IDIgZGUgeHVhdCBwaGFtIHZpIGdpYW8gZHUgMTYgMGhhIGRlIHhheSBkdW5nIA0KY2FjIGtodSB0 YWkgZGluaCBjdSB0aHVvYyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0sIHRpbmggZGVuIHZpZWMg dGh1IGhvaSBkYXQgY3VhIGNhYyBkdSANCmFuIGNoYW0gdHJpZW4ga2hhaS4gVHV5IG5oaWVuIHRh aSBrZXQgbHVhbiBuYXkga2hvbmcga2hhbmcgZGluaCBybyBwaGFuIGRpZW4gdGljaCBkYXQgdGFp IA0KZGluaCBjdSBwaGFpIG5hbSBvIG5hbSBwaHVvbmcgdHJvbmcgcGhhbSB2aSBkdSBhbiBuaHUg VGh1IHR1b25nIGRhIHF1eWV0IGRpbmggdHJ1b2MgDQpkby4gDQoNClNhdSBkbyBuZ2F5IDE5LTMt MjAwMiB0aWVwIHR1YyBjbyBtb3QgY3VvYyBob3AgYmFuIHZlIHZhbiBkZSB4YWMgZGluaCByYW5o IHRhaSBkaW5oIGN1IA0KcGh1YyB2dSBkZW4gYnUgZ2lhaSB0b2EgY2hvIGR1IGFuIFRodSBUaGll bSwgZHVvaSBzdSBjaHUgdHJpIGN1YSBDaHUgdGljaCBVQk5EIFRQIA0KTGUgVGhhbmggSGFpLiBD dW9jIGhvcCBuYXkga2hlcCBsYWksIG5nYXkgMjItMy0yMDAyIHZhbiBwaG9uZyBVQk5EIFRQIGNo aW5oIHRodWMgY28gDQp2YW4gYmFuIHRob25nIGJhbyBrZXQgbHVhbiBjdWEgQ2h1IHRpY2ggTGUg VGhhbmggSGFpIHZvaSBub2kgZHVuZyBwaGFpIGRhbSBiYW8gZHUgMTYwIA0KaGEgZGF0IHRhaSBk aW5oIGN1IGNobyBkdSBhbiBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0uIA0KDQpOaHVuZyB2ZSB2 aSB0cmkgeGF5IGtodSB0YWkgZGluaCBjdSwgb25nIEhhaSBkYSBjaGkgZGFvICIuLi4ga2hvbmcg bmhhdCB0aGlldCBvIG1vdCBkaWEgDQpkaWVtLCBjbyB0aGUgYm8gdHJpIHR1IDMtNCBkaWEgZGll bSB0cmVuIGRpYSBiYW4gcXVhbiAyIjsgeWV1IGNhdSBjbyBtb3Qga2h1IHRhaSBkaW5oIGN1IA0K a2hvYW5nIDEwLTIwIGhhIGdhbiBraHUgZG8gdGhpIFRodSBUaGllbS4gVHUgc2F1IGtldCBsdWFu IG5heSwgY2FjIGNvIHF1YW4gdGh1YyBoaWVuIA0KYm8gdHJpIHRhaSBkaW5oIGN1IGNvIGNvIHNv IHZhbiBkdW5nIGRlICJjaGFtIiBjYWMga2h1IHRhaSBkaW5oIGN1IHRhaSBtb3Qgc28ga2h1IHZ1 YyANCmtoYWMgbmhhdSwgbWllbiBsYSBuYW0gdHJlbiBkaWEgYmFuIHF1YW4gMi4gDQoNCkNobyBk ZW4gbmF5LCBjYWMga2h1IHRhaSBkaW5oIGN1IGNobyBkdSBhbiBraHUgZG8gdGhpIG1vaSBUaHUg VGhpZW0gZHVvYyBibyB0cmkgdGFpIHNhdSANCnZpIHRyaSBraGFjIG5oYXUgdHJlbiBkaWEgYmFu IHF1YW4gMiB2b2kgdG9uZyBkaWVuIHRpY2gga2hvYW5nIDE2NCBoYSwgdGh1b2MgY2FjIHBodW9u ZyANCkJpbmggS2hhbmgsIEFuIFBodSwgVGhhbmggTXkgTG9pLCBDYXQgTGFpLiBUcm9uZyBzbyBu YXkgY2hpIGNvIGR1eSBuaGF0IGtodSB0YWkgZGluaCANCmN1IDE1LDUgaGEgbmFtIG8gcGh1b25n IEJpbmggS2hhbmggLSBtb3QgdHJvbmcgbmFtIHBodW9uZyBjbyB0ZW4gdHJvbmcgcXVpIGhvYWNo IGRvIA0KdGhpIG1vaSBUaHUgVGhpZW0gdGhlbyBxdXlldCBkaW5oIGN1YSBUaHUgdHVvbmcuIFRo ZW8gVUJORCBxdWFuIDIsIGRheSBsYSBraHUgdGFpIGRpbmggDQpjdSBuYW0gdHJvbmcgcGhhbSB2 aSBxdWkgaG9hY2ggZG8gdGhpIG1vaSBUaHUgVGhpZW0gZGUgdGFpIGRpbmggY3UgY2hvIG5odW5n IA0Kbmd1b2kgc29uZyBsYXUgbmFtIG8gYmFuIGRhbyBUaHUgVGhpZW0sIG5heSBiaSBnaWFpIHRv YS4gDQoNCk5odSB2YXksIHBoYW4gbG9uIG5ndW9pIGRhbiBiaSBnaWFpIHRvYSB0cm9uZyBkdSBh biBkYSBraG9uZyBkdW9jIGJvIHRyaSB0YWkgZGluaCBjdSANCnRyb25nIGtodSB2dWMgdGhlbyB0 aW5oIHRoYW4gcXV5ZXQgZGluaCBjdWEgVGh1IHR1b25nLiANCg0KQ2hpbmggdmllYyB0YWkgZGlu aCBjdSBzYWkgdmkgdHJpIGRvIGRhIGRhbiBkZW4gdmllYyBuaGlldSBjdSBkYW4gdHJvbmcgZHUg YW4gZG8gdGhpIG1vaSANClRodSBUaGllbSBsaWVuIHR1YyB0aGFjIG1hYywga2hpZXUgbmFpLi4u IHRyb25nIG5oaWV1IG5hbSBxdWEuIA0KDQpOZ3VvaSBkYW4gdGhhbiBiaSB0aGlldCB0aG9pIA0K DQpOaGlldSBjdSBkYW4gYmkgZ2lhaSB0b2EgdHJvbmcgZHUgYW4ga2h1IGRvIHRoaSBtb2kgVGh1 IFRoaWVtIGNobyByYW5nIG5ldSBraG9uZyBkdW9jIA0KdGFpIGRpbmggY3UgdHJvbmcgcGhhbSB2 aSBuYW0gcGh1b25nIGNvIHRlbiB0cm9uZyBxdWkgaG9hY2ggZG8gdGhpIG1vaSBUaHUgVGhpZW0s IGhvIA0Kc2UgYmkgdGhpZXQgdGhvaSB2ZSBnaWEgdHJpIHN1IGR1bmcgY2FuIGhvIGhvYWMgbmVu IGRhdCB0YWkgZGluaCBjdSwgZGFjIGJpZXQgbGEgZ2lhIHRyaSB2byANCmhpbmggdHUga2h1IGRv IHRoaSBtb2kgbmF5IG1hbmcgbGFpIG1hIGxlIHJhIGhvIHBoYWkgZHVvYyB0aHUgaHVvbmcuIA0K DQpVQk5EIFRQIGJvIHRyaSB0YWkgZGluaCBjdSBraG9uZyBkdW5nIHZpIHRyaSBuaHUgdmF5IGxh bSBhbmggaHVvbmcgZGVuIHF1eWVuIHZhIGxvaSANCmljaCBjaGluaCBkYW5nIGN1YSBoby4gTm9p IG5odSBvbmcgTGUgSGlldSBEYW5nIC0gcGhvIGNodSB0aWNoIFVCTVRUUSBUUCAtIGtoaSB4YXkg DQpkdW5nIGRvIHRoaSBtb2kgVGh1IFRoaWVtIHRoaSBuZ3VvaSBodW9uZyB0aHUgdHJ1b2MgdGll biBwaGFpIGxhIG5ndW9pIGRhbiBxdWFuIDIsIG5oYXQgDQpsYSBuaG9tIG5ndW9pIGNvIHBoYW4g aGkgc2luaCBtb3QgcGhhbiBxdXllbiBsb2kgY3VhIG1pbmggcGh1YyB2dSBzdSBwaGF0IHRyaWVu IA0KY2h1bmcuLi4gDQoNCkdpYWkgdGhpY2ggY3VhIFVCTkQgVFBIQ00gDQoNClRyb25nIGJhbyBj YW8gZ3VpIFRodSB0dW9uZyBDaGluaCBwaHUgbW9pIGRheSB2ZSBwaGFuIGRhdCB0YWkgZGluaCBj dSBjaG8gZGFuLCBVQk5EIA0KVFAga2hhbmcgZGluaCBraGkgbGFwIHF1aSBob2FjaCB4YXkgZHVu ZyBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gKDE5OTYtMTk5OCksIGNvIA0KcXVhbiBuYXkgZGEg eGFjIGRpbmggcXVpIGRhdCBwaHVjIHZ1IHRhaSBkaW5oIGN1IGtob2FuZyAxNjAgaGEuIFR1eSBu aGllbiwgdmUgdmkgdHJpIGx1YyANCmRhdSB0aGkgY2hpIHhhYyBkaW5oIGtodSBkYXQgNjAgaGEg dGh1b2MgcGh1b25nIEJpbmggS2hhbmggdmEgQW4gUGh1LCBuYW0gZ2lhcCByYW5oIA0Ka2h1IGRv IHRoaSBtb2kgdmUgcGhpYSBkb25nLiBEYXkgbGEgcXVpIGRhdCB0YWkgZGluaCBjdSB0cm9uZyBn aWFpIGRvYW4gZGF1IGN1YSBkdSBhbi4gDQpSaWVuZyAxMDAgaGEgZGF0IHRhaSBkaW5oIGN1IGNv biBsYWksIHRoZW8gVUJORCBUUCwgY2h1YSBkdW9jIHhhYyBkaW5oIHZpIHRyaSBjdSB0aGUuIA0K DQpQaGFuIGRhdCA2MCBoYSB0YWkgZGluaCBjdSBub2kgdHJlbiwgVUJORCBUUCBjaG8gYmlldCBk YSBkdW5nIDE3LDMgaGEgdGh1b2MgcGh1b25nIEFuIA0KUGh1LCBnaWFwIHJhbmggcGh1b25nIEJp bmggS2hhbmgsIGRlIGxhbSBraHUgdGFpIGRpbmggY3UgY2hvIGR1IGFuIGRhaSBsbyBkb25nIHRh eS4gDQpQaGFuIGNvbiBsYWkga2hvYW5nIDQyIGhhIHRodW9jIHBodW9uZyBCaW5oIEtoYW5oIGR1 b2MgZHVhIHZhbyBraHUgZG8gdGhpIG1vaSBUaHUgDQpUaGllbSBuaHVuZyB0cm9uZyBwaGFuIGRh dCBuYXksIFVCTkQgVFAgZGEgY2F0IHJhIDE1LDUgaGEgZGUgdGFpIGRpbmggY3UgY2hvIG5ndW9p IA0KZGFuIG8gbGF1IG5hbSwgbmF5IGJpIGdpYWkgdG9hIG5odSBkYSBkZSBjYXAuIA0KDQpVQk5E IFRQIGN1bmcgbm9pIGNodSBjaHVvbmcgY3VhIHRoYW5oIHBobyBsYSBraHUgdGFpIGRpbmggY3Ug dGFpIHBodW9uZyBCaW5oIEtoYW5oLCANCmdpYXAgcmFuaCBraHUgZG8gdGhpIG1vaSBUaHUgVGhp ZW0sIGNoaSBibyB0cmkgY2FuIGhvIGNodW5nIGN1LCBraG9uZyBibyB0cmkgbmVuIGRhdCBsaWVu IA0Ka2UuIENoaW5oIHZpIHZheSwgVUJORCBUUCBtb2kgcXV5ZXQgZGluaCBibyB0cmkgdGFpIGRp bmggY3UgYmFuZyBuZW4gZGF0IG8geGEga2h1IA0KdHJ1bmcgdGFtIGRvIHRoaSBtb2kgVGh1IFRo aWVtIHRhaSBjYWMgcGh1b25nIEFuIFBodSwgQ2F0IExhaSB2YSBUaGFuaCBNeSBMb2kuIA0KDQpD dW5nIHRoZW8gYmFvIGNhbyBjdWEgVUJORCBUUCwgdGh1YyB0ZSBkYXQgdGllcCBnaWFwIHZvaSBr aHUgdHJ1bmcgdGFtIGRvIHRoaSBtb2kgVGh1IA0KVGhpZW0ga2hvbmcgY29uIGR1IGRlIGJvIHRy aSBraHUgdGFpIGRpbmggY3UgMTYwaGEgdmkgZGEgY28gbmhpZXUgZHUgYW4gZHVvYyBnaWFvIGRh dCANCnRydW9jIG5hbSAyMDAyLiANCg0KTWFjIGR1IGRhIGNvIGdhbmcgZ2lhaSB0aGljaCBuaGll dSBsYW4gbmh1bmcgdmFuIGRlIGxpZW4gcXVhbiBkZW4gdGhhYyBtYWMsIGtoaWV1IG5haSANCmN1 YSBkYW4gdmUgMTYwIGhhIGRhdCB0YWkgZGluaCBjdSB0cm9uZyBkdSBhbiBraHUgZG8gdGhpIG1v aSBUaHUgVGhpZW0sIG5odW5nIGR1IGx1YW4gDQp2YSBuZ3VvaSBkYW4gdmFuIGNodWEgZG9uZyB0 aW5oLiANCg0KW05ndW9uIGRvYyB0aGVtOiBodHRwOi8vd3d3LnhhbHVhbi5jb20vbW9kdWxlcy5w aHA/bmFtZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9MjQyMjgjaXh6ejE0WUI1aXpBQl0gDQoNCmh0 dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwvMTk4Ny8yMDEwMDgvR2lhLXN1LWhpZXAtZGFtLWhvYy10 cm8tNy10dW9pLTE3NjMxODAvIEEuSCAxMi8wOC8yMDEwIDIwOjEzOjAwIA0KDQpUUCBIQ006IEdp YSBzdSBoaWVwIGRhbSBob2MgdHJvIDcgdHVvaSANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRu YW1lc2UvcHJvZ3JhbXMvU2NpZW5jZUFuZEVudmlyb25tZW50L2RhLXBodW9jLWdhcmJhZ2UtZHVt cGluZy1zaXRlLWEtc291cmNlLW9mLXBvbGx1dGlvbi0wODI0MjAwOTEzMTcxMi5odG1sIEdpYSBN aW5oLCBwaG9uZyB2aWVuIFJGQQ0KDQpUUCBIQ006IEtodSBsaWVuIGhpZXAgeHUgbHkgcmFjIERh IFBodW9jIGdheSBvIG5oaWVtIHRyYW0gdHJvbmcgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAxMDAyMTk0NS5hc3B4IE1pbmggTmFtIDEwLzEw LzIwMTAgMjoxOSANCg0KVFAgSENNOiBraHUgREggUXVvYyBnaWEgVFAuSENNIC0gZGlhIGJhbiBw aHVjIHRhcCB2ZSB0b2kgcGhhbSB2YSB0ZSBuYW4geGEgaG9pIA0KICANCmh0dHA6Ly92aWV0YmFv LnZuL1hhLWhvaS9UUEhDTS1zby1jYS1uYW8tcGhhLXRoYWktbmhpZXUtaG9uLXNvLWNhLXNpbmgv NDAyMzA5MDAvMTU3LyBMLlRILkggMjUvMTEvMjAwNywgMDc6NTMgR01UKzcgDQoNClRQLkhDTTog c28gY2EgbmFvIHBoYSB0aGFpIG5oaWV1IGhvbiBzbyBjYSBzaW5oDQoNClRpIGxlIHNvIGNhIG5h byBwaGEgdGhhaSBzbyB2b2kgc28gY2Egc2luaCB0cm9uZyBuYW0gMjAwNiB0YWkgVFAuSENNIGxh IDEwMyw0JS4gU28gdm9pIA0KbmFtIDIwMDAsIHNvIGNhIG5hbyBwaGEgdGhhaSBnaWFtIDMwJSAo dGkgbGUgMTMyLjAwMC8xMDMuOTcyIGNhKS4gU28gdm9pIG11YyB0aWV1IA0KQ2hpZW4gbHVvYyBk YW4gc28gVk4gZGUgcmEgZGVuIG5hbSAyMDA2IHBoYWkgZ2lhbSA1MCUgc28gY2EgbmFvIHBoYSB0 aGFpIHNvIHZvaSBuYW0gDQoyMDAwIHRoaSBUUC5IQ00gY2h1YSBkYXQgZHVvYy4gDQoNCkRheSBs YSBzbyBsaWV1IHZ1YSBkdW9jIFVCTkQgVFAuSENNIGJhbyBjYW8gQ2hpbmggcGh1IHZlIHZpZWMg dGh1YyBoaWVuIENoaWVuIGx1b2MgZGFuIHNvIGdpYWkgZG9hbiAyMDAxLTIwMDYuIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDQvMjAxMDEwMjUyMzIzMzQu YXNweCAyNi8xMC8yMDEwIDc6MDAgDQoNClRQIEhDTTogTmhpZXUgbm9pIG5nYXAgbHV0IHZpIHRy aWV1IGN1b25nICANCiAgDQooVE5PKSBUaGVvIERhaSBraGkgdHVvbmcgdGh1eSB2YW4ga2h1IHZ1 YyBOYW0gQm8sIGRpbmggdHJpZXUgY3VvbmcgdG9pIDI1LjEwIGxlbiBkZW4gDQoxLDVtIChvIHRy YW0gUGh1IEFuLCB0cmVuIHNvbmcgU2FpIEdvbiwgVFAuSENNKSwgbyBtdWMgYmFvIGRvbmcgMy4g TmhpZXUga2h1IHZ1YyANCnRyZW4gZGlhIGJhbiBUUC5IQ00gZGEgbmdhcCBzYXUgdHJvbmcgbnVv Yy4gDQoNCkNhYyBraHUgdnVjIG5nYXAgc2F1IGxhIHBodW9uZyBIaWVwIEJpbmggQ2hhbmgsIEhp ZXAgQmluaCBQaHVvYyAoUS5UaHUgRHVjKS4NCiANCktodSB2dWMgUS5CaW5oIFRoYW5oIG5nYXAg dHJlbiBkaWVuIHJvbmcuIFRyb25nIGRvLCBjYWMgdHV5ZW4gZHVvbmcgVGFtIFZ1LCBCdWkgDQpI dXUgTmdoaWEsIFhvIFZpZXQgTmdoZSBUaW5oLi4uLCBtdWMgbnVvYyBjYW8gbGVuIGRlbiBob24g MCw1bS4NCiANCktodSB2dWMgYmVuIFBodSBEaW5oIChRLjgpIG51b2MgdHJhbiBibyBzb25nLCBr aG9uZyBjb24gcGhhbiBiaWV0IGR1b2MgZGF1IGxhIHNvbmcsIA0KZGF1IGxhIGJvLiBCZW4gQmlu aCBQaHUsIE1lIENvYywgQmluaCBEb25nIChRLjgpIG5odSBtb3QgIm9jIGRhbyIgY3VhIHRoYW5o IHBoby4NCiANClRhaSBkdW9uZyBQaGFtIFRoZSBIaWVuIChRLjgpLCBIdXluaCBUYW4gUGhhdCwg Tmd1eWVuIFRoaSBUaGFwIChRLjcpLCBjYWMgcGh1b25nIA0KdGllbiBnaWFvIHRob25nIGJpIGJv bSBsb2kgbnVvYy4NCiANClRyaWV1IGN1b25nIGxlbiBjYW8gY3VuZyBsYW0gY2hvIG5oaWV1IHNh IGxhbiBraG9uZyBjaHVpIGR1b2MgcXVhIGNhdSBCaW5oIExvaSwgZ2F5IA0KdGFjIG5naGVuIGdp YW8gdGhvbmcgZHVvbmcgdGh1eSBuaGlldSBnaW8gbGllbi4gDQoNClRydW9jIGRvLCB2YW8gbmdh eSAyNC4xMCwgdGluaCB0cmFuZyB0dW9uZyB0dSBjdW5nIHhheSByYSBvIGtodSB2dWMgY2F1IEJp bmggTG9pIGRvIA0KdHJpZXUgY3VvbmcgbGVuIGNhby4NCg0KRGFpIEtoaSB0dW9uZyB0aHV5IHZh biBraHUgdnVjIE5hbSBCbyBkdSBiYW8gdHJvbmcgY2FjIG5nYXkgMjYgLSAyOC4xMCwgZGluaCB0 cmlldSANCnZhbiBvIG11YyBiYW8gZG9uZyAzLiBNdWMgbnVvYyB0cmlldSBkbyB0YWkgdHJhbSBQ aHUgQW4gKHNvbmcgU2FpIEdvbikgY28gdGhlIGRhdCANCjEsNDdtICgyNi4xMCksIDEsNDRtICgy Ny4xMCkuIFRyaWV1IGN1b25nIHNlIGRhbiBydXQgY2hhbSB2YW8gbmdheSAyOC4xMCwgbyBtdWMg DQoxLDQzbSB2YSB4dW9uZyBjb24gMSwzbSB2YW8gbmdheSAyOS4xMC4NCg0KQmVuIGNhbmggZG8s IEJhbiBDaGkgaHV5IFBob25nIGNob25nIGx1dCBiYW8gVFAuSENNIGN1bmcgeWV1IGNhdSBjYWMg cXVhbiAxMiwgVGh1IA0KRHVjLCBCaW5oIFRoYW5oLCBHbyBWYXAsIGh1eWVuIEhvYyBNb24sIEN1 IENoaS4uLiBraGFuIHRydW9uZyBraWVtIHRyYSBjYWMgZG9hbiBibyANCmJhbyB4dW5nIHlldSwg aHV5IGRvbmcgbHVjIGx1b25nLCB2YXQgdHUgY2h1IGRvbmcgdW5nIHBobyB2b2kgdHJpZXUgY3Vv bmcgdmEgbmd1eSBjbyANCmdheSBuZ2FwIHVuZyB0cmVuIGRpZW4gcm9uZy4NCg0KTW90IHNvIGhp bmggYW5oIHNpbmggaG9hdCBjdWEgbmd1b2kgZGFuIHRhaSBjYWMga2h1IHZ1YyBiaSB0cmlldSBj dW9uZyB0b2kgMjUuMTA6IA0KKEFuaDogVHJpZXUgY3VvbmcgZ2F5IG5nYXAgdG9hbiBraHUgdnVj IGJlbiBQaHUgRGluaCwgUS44KSANCihBbmg6IE5ndW9pIGRhbiBiaSBib20gbG9pIHRyb25nIG51 b2MpDQooQW5oOiBDYWMgaG8gZGFuIG8gYmVuIFBodSBEaW5oIG1vaSBuYW0gZGV1IHBoYWkgbmFu ZyBuZW4gbmhhIGxlbiBjYW8pDQoNCihBbmg6IEJhIFR1IFRoaSBCYWNoIE1haSBzbyBuaGEgNC8y LCBiZW4gUGh1IERpbmgsIHBodW9uZyAxNiwgUS44IGNobyBiaWV0OiAiU2F1IDQgDQpsYW4gbmFu ZyBuZW4gbmhhLCBjaGlldSBjYW8gdHJhbiBuaGEgdHUgNG0gZ2lvIGNoaSBjb24gMSw3bTsgY2h1 aSByYSBjaHVpIHZvIG5odSBjYWkgDQpoYW5nIikNCg0KKEFuaDogRGEgbmFuZyBuZW4gbmhhIGxl biAwLDdtIHNvIHZvaSBtYXQgZHVvbmcgbmh1bmcgbmhhIGFuaCBjaGkgTGFpIFZvbmcgSHV1IDE3 QSwgDQpkdW9uZyBOZ3V5ZW4gTmdvYyBDdW5nLCBwaHVvbmcgMTYsIFEuOCkgdmFuIGJpIG5nYXAg bW9pIGtoaSB0cmlldSBsZW4uLi4pDQoNCihBbmg6IFNvbmcgY2h1bmcgdm9pIHRyaWV1IGN1b25n KQ0KKEFuaDogTnVvYyB0cmFuIHZhbyBuaGEsIGJhIGNoYXUgY3VuZyB0YXQgbnVvYykNCihBbmg6 IFZpIGNodWEgY28gYm8ga2UgbmVuIG1vaSBraGkgbnVvYyB0cmlldSBsZW4gY2FvLCB0YWkga2h1 IHZ1YyBiZW4gUGh1IERpbmgsIHNvbmcgdmEgYm8gbGFpIGxpZW4gbW90IG1hY2guLi4pDQooQW5o Oi4uLiBraG9uZyBjb24gcGhhbiBiaWV0IGR1b2MgZGF1IGxhIHNvbmcsIGRhdSBsYSBibykNCihB bmg6IE5ndW9pIGRhbiBvIGRheSBjaG8gYmlldCBobyBwaGFpIGxhbSBuaHVuZyBoYW5nIHJhbyBk ZSBuZ2FuIGNhY2ggZHVvbmcgdmEgc29uZy4uLikNCihBbmg6Li4uIERlIHRyYW5oIG5ndXkgaGll bSBjaG8gbW9pIG5ndW9pIGtoaSBkaSBsYWkgdGFpIGtodSB2dWMgbmF5IG1vaSBraGkgdHJpZXUg bGVuKQ0KKEFuaDogTmhpZXUgdHV5ZW4gZHVvbmcgbyBRLjgsIFEuNiBuZ2FwIG5hbmcpDQooQW5o OiBYZSBsb2kgbnVvYykNCihBbmg6IER1b25nIEJ1aSBIdXUgTmdoaWEgKFEuQmluaCBUaGFuaCkg dGhhbmggInNvbmciDQooQW5oOiBRLkJpbmggVGhhbmggbmdhcCB0cmVuIGRpZW4gcm9uZw0KKEFu aDogTW90IGdpYSBkaW5oIGNob25nIG51b2MgdHJhbiB2YW8gbmhhIGJhbmcgY2FjaCBkdW5nIHhl IG1heSB2YSBiYW8gY2F0IGxhbSAiY2hvdCBjaGFuIikNCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL3Rpbm5oYW5oLzIwMTAwOS9UcC1IQ00tQ3UtZ2lhLWRhcC14ZS1kaS1jYS1waGUtY2hldC10 aGFtLTkzNTM5NC8gMTA6NDAsIDE0LzA5LzIwMTAgKEdNVCs3KQ0KDQpUcC4gSENNOiBDdSBnaWEg ZGFwIHhlIGRpIGNhIHBoZSBjaGV0IHRoYW0NCg0KQ3UgSGFpIFNhbSAoODAgdHVvaSksIG8geGEg QmluaCBNeSwgaHV5ZW4gQ3UgQ2hpIChUUEhDTSkgdHJlbiBkdW9uZyBkYXAgeGUgZGkgdW9uZyAN CmNhIHBoZSBkYSBraG9uZyBtYXkgYmkgeGUgdGFpIGNhbiBjaGV0IHRhaSBjaG8uDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAxMDAyMjIxOS5h c3B4IFRoYW5oIFR1bmcgMTAvMTAvMjAxMCAyOjIyIA0KIA0KVFAgSENNOiBUaHVvYyB0YXkgeG8g Z2l1biBGdWdhY2FyIGdpYSBoaWVuIGRhbmcgZHVvYyBiYW4gdHJvbiBvIFRQLkhDTTsgZGF5IGxh IG1vdCANCm5oYW4gaGlldSB0aHVvYyBjbyBuaGlldSBuZ3VvaSBkYW4gaGF5IHN1IGR1bmcuIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTMw MDE3NDMuYXNweCBNLlZvbmcgMTMvMDgvMjAxMCAwOjE3IA0KDQpUUC5IQ006IDEyIHZpIHRyaSBj byBuZ3V5IGNvIHNhdCBsbyBvIFRQLkhDTSAgIA0KDQpodHRwOi8vd3d3LnR1b2l0cmUuY29tLnZu L1RpYW55b24vSW5kZXguYXNweD9BcnRpY2xlSUQ9MzUxMjEyJkNoYW5uZWxJRD0zIFRodSBTYXUs IDA0LzEyLzIwMDksIDA1OjU3IChHTVQrNykNCg0KVFAgSENNOiBEdSBhbiBiYWkgcmFjIERhIFBo dW9jIC0gQ2hvIHRhbSB1bmcgOSB0cmlldSBVU0QgbGEgc2FpIGx1YXQNCg0KaHR0cDovL3ZpZXRi YW8udm4vWGEtaG9pL05oaWV1LWR1LWFuLWNob25nLW5nYXAtY3VhLVRQLUhDTS1jaGFtLXRpZW4t ZG8vMTA4NDQ0NTkvMTU3LyBMZSBDdW9uZyAxNy8xMi8gMjAwMywgMDg6NTEgR01UKzcNCg0KVFAg SENNOiBOaGlldSBkdSBhbiBjaG9uZyBuZ2FwIGN1YSBUUCBIQ00gY2hhbSB0aWVuIGRvIA0KDQpE YWMgYmlldCwgY2FjIGRpZW0gbmdhcCBuYW5nIHZhIHRodW9uZyB4dXllbiBuaHUga2h1IHZ1YyBU aGFuaCBEYSBkZXUga2hvbmcgaG9hbiB0aGFuaC4NCg0KaHR0cDovL3d3dy50aW5tb2kudm4vS2V0 LWN1bmctdHUtcGhpYS1jdWEtbmdvLXNhbi1iYXktVGFuLVNvbi1OaGF0LTEwNzEyMDEuaHRtbCAx MjozNiBuZ2F5IDIxLzEwLzIwMDkgDQoNClRQIEhDTTogS2V0IGN1bmcgdHUgcGhpYSBjdWEgbmdv IHNhbiBiYXkgVGFuIFNvbiBOaGF0DQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1o b2kvMjAwNi8wNy8zQjlFQkNBOS8gMTEvNy8yMDA2LCAwOTo1NiBHTVQrNw0KDQpOb25nIGJvbmcg dmllYyBkZW4gYnUsIHRhaSBkaW5oIGN1IHRhaSBIRE5EIFRQIEhDTSANCg0KVHJvbmcga2hpIG5o aWV1IGhvIGtob25nIGNvIG5oYSB0YWkgZGluaCBjdSB0aGkgdGhlbyB5IGtpZW4gY3UgdHJpLCBo aWVuIGtodSBCYXUgQ2F0IElJLCBxdWFuIFRhbiBCaW5oIGNvIDE4MCBjYW4gaG8gdGFpIGxvIEsg dmEgbG8gUyBibyBob2FuZy4gTmhpZXUgeSBraWVuIGN1IHRyaSBjdW5nIHRoYWMgbWFjIHZlIHRp bmggdHJhbmcgcXV5IGhvYWNoIHRyZW8uIEN1IHRyaSBwaHVvbmcgMTUsIHF1YW4gVGFuIEJpbmgg Y2hvIGJpZXQgcXV5IGhvYWNoIHRyZW4gZGlhIGJhbiB0dSBuYW0gMTk5NyBkZW4gbmF5IGNodWEg Y28gaHVvbmcgZ2lhaSBxdXlldCBsYW0gbmd1b2kgZGFuIGtob25nIHllbiB0YW0uIFRhaSBwaHVv bmcgMSwgcXVhbiAzLCBjaHVuZyBjdSBkdW9uZyBzYXQgdGh1b2MgZGllbiBxdXkgaG9hY2ggdHJl byBnYW4gMTMgbmFtLg0KQ3UgdHJpIGh1eWVuIEJpbmggQ2hhbmggZGF0IHZhbiBkZSBuaGEgbyBj YWMga2h1IHRhaSBkaW5oIGN1IGNvIGdpYSBxdWEgY2FvIHNvIHZvaSB0aHUgbmhhcCB2YSBkZW4g YnUgZ2lhaSB0b2EuIE5ndW9pIGRhbiB5ZXUgY2F1IGxhbmggZGFvIHRoYW5oIHBobyBjYW4gcXVh biB0YW0gaG9uIG51YSB2ZSBjYWkgY2FjaCBoYW5oIGNoaW5oLCBuaGF0IGxhIHRodSB0dWMgeGlu IHBoZXAgeGF5IGR1bmcsIGNhcCBzbyBuaGEsIHhpbiBzbyBuaGEsIGxhcCBkaWVuIGtlLi4uDQoN ClRoZW8gRG9hbiBnaWFtIHNhdCBjdWEgQmFuIFBoYXAgY2hlIEhETkQgVFBIQ00sIGRlbiBuYXks IGNvbmcgdGFjIHRhaSBkaW5oIGN1ICJjaHVhIGJhbyBkYW0gdGFpIHRhbyBsYWkgZHVvYyBub2kg byBtb2ksIGN1b2Mgc29uZyBtb2kgYmFuZyBob2FjIHRvdCBob24gbm9pIG8gY3UgY2hvIG5odW5n IG5ndW9pIGNvIG5oYSBvIGhvcCBwaGFwLCBob3AgbGUgZGFuZyBzaW5oIHNvbmcgb24gZGluaCBw aGFpIGNoYXAgaGFuaCBkaSBkb2kuIiAsIFRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gY28gaG9uIDYw IGR1IGFuIHhheSBkdW5nIG5oYSB0YWkgZGluaCBjdSBuaHVuZyB0b2MgZG8gdHJpZW4ga2hhaSBy YXQgY2hhbQ0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9WaWV0bmFtZXNlTmV3cy92 aWV0bmFtbmV3cy8yNy1jYXNlcy1vZi1zdWJzaWRlbmNlLXdpdGhpbi00LW1vbnRocy0xMDIzMjAx MDExNTY0MS5odG1sIFJGQSAyMy4xMC4yMDEwDQoNClRQIEhDTTogVHJvbmcgdm9uZyA0IHRoYW5n IGNvIDI3IHZ1IGx1biBzdXQgZHVvbmcgcGhvIHRhaSBUUCBIQ00NCg0KVHJvbmcgY3VvYyBob3Ag dGhhbyBsdWFuIHZlIGNhYyB2dSBzdXQgbHVuIGR1b25nIHBobyBkdW9jIHRvIGNodWMgdmFvIG5n YXkgaG9tIHF1YSANCnRhaSB0aGFuaCBwaG8gSENNLCBzbyBHVFZUIGNobyBiaWV0IGNoaSB0cm9u ZyB2b25nIDQgdGhhbmcgZGEgY28gMjcgdnUgeGF5IHJhIHRyZW4gDQpuaGlldSBub2kgdHJvbmcg dGhhbmggcGhvLg0KDQpUaGVvIGJhbyBjYW8gY3VhIGNvIHF1YW4gaHV1IHRyYWNoIHRoaSBuaHVu ZyB2dSBuYXkgZGV1IG5hbSB0cm9uZyB0cmFjaCBuaGllbSBjdWEgY2FjIA0KZG9uIHZpIHRoaSBj b25nIG5hbmcgY2FwIGhheSBsYW0gbW9pIGNhYyBjb24gZHVvbmcgdHJvbmcgdGhhbmggcGhvIG5o dW5nIHZhbiBraG9uZyANCmNvIG1vdCBiaWVuIHBoYXAgY2hlIHRhaSBuYW8gZG9pIHZvaSBjYWMg ZG9uIHZpIG5heS4NCg0KT25nIExlIEhvYW5nIFF1YW4sIENodSB0aWNoIFVCTkQgdGhhbmggcGhv IGRhIHlldSBjYXUgY2FjIGNvIHF1YW4sIHNvIG5nYW5oIGxpZW4gDQpxdWFuIGRlbiB4YXkgZHVu ZyBwaGFpIHhhYyBkaW5oIGN1IHRoZSB0cmFjaCBuaGllbSBjdWEgY2FjIGNodSBkYXUgdHUsIGhh eSBuaGEgdGhhdSBkZSANCmNvIGJpZW4gcGhhcCBjaGUgdGFpLg0KDQpUcm9uZyBuaGlldSB0aGFu ZyBxdWEgY2FjIHZ1IHN1dCBsdW4gZHVvbmcgZGEgbGFtIG5oaWV1IHRhaSBuYW4gZ2lhbyB0aG9u ZyB4YXkgcmEsIHhlIG8gDQp0byBsaWVuIHR1YyBiaSBsYXQgZ2F5IGxvIHNvIGNobyBuZ3VvaSBk YW4gdHJvbmcga2hhcCB0aGFuaCBwaG8uIE5oaWV1IGhvIGxvbiBob24gMyBtZXQgDQpkdW9jIGdv aSBsYSBobyB0dSB0aGFuIHh1YXQgaGllbiBkb3QgbmdvdCBraGllbiBuZ3VvaSBkaSBkdW9uZyBo ZXQgc3VjIGxvIG5nYWkgY2hvIHN1IGFuIA0KdG9hbiBjdWEgYmFuIHRoYW4gaG8uDQoNCktob25n IHJpZW5nIGdpIHRyb25nIHBoYW0gdmkgdGhhbmggcGhvIHh1YXQgaGllbiBjYWMgdnUgc3V0IGx1 biBoYXkgY2FjIGhvIGR1b2MgZ29pIGxhIA0KaG8gZGlhIG5ndWMsIG1hIG5oaWV1IGNvbmcgdHJp bmggbG9uIGN1bmcgZGFuZyB4dWF0IGhpZW4gdGluaCB0cmFuZyBzdXQgbHVuIG5heS4NCg0KVGhl byBiYW8gY2FvIGN1YSBiYW4gcXVhbiBseSBkdSBhbiBNeSBUaHVhbiB0aGkgdmllYyBsdW4gbmVu IHR1eWVuIGR1b25nIFRhbiBUYW8tDQpDaG8gRGVtIGRhbmcgY28gZGF1IGhpZXUgc3V0IGx1biBu Z2hpZW0gdHJvbmcuIFR1eWVuIGR1b25nIG5heSB0dXkgZGEgZHVvYyBjYW5oIGJhbyANCmxhIGNv IHRhbmcgZGlhIGNoYXQgcGh1YyB0YXAsIGJpIGFuaCBodW9uZyBjdWEgbnVvYyBuZ2FtIHZhIGxh bSB0cm8gbmdhaSBjYWMgdHJhYyANCm5naGllbSBxdWFuIHRyYWMgbmh1bmcgY2FjIGdpYWkgcGhh cCB4dSBseSBraG9uZyBoaWV1IHF1YSBkYSBkYW4gZGVuIHN1dCBsdW4ga2hvbmcgdGhlIA0Ka2ll bSBzb2F0Lg0KDQpEdW9uZyBjYW8gdG9jIFRQLUhDTS1UcnVuZyBMdW9uZyBjdW5nIGtob25nIGto YWMgbWF5LiBEYXkgbGEgZHVvbmcgY2FvIHRvYyBsb2FpIA0KQSBkdW9jIHRoaWV0IGtlIGNobyBw aGVwIGNhYyBsb2FpIGNoYXkgdm9pIHRvYyBkbyAxMjBrbS9naW8sIGNvIDQgbGFuIHhlIG8gdG8g dmEgMiBsYW4gDQpkdW5nIHhlIGtoYW4gY2FwLiBUdXkgaG9hbmggdHJhbmcgbGEgdGhlIG5odW5n IGNvbiBkdW9uZyBjYW8gdG9jIG5heSBkYW5nIHh1YXQgaGllbiANCm5oaWV1IGNobyBsdW4gdHJl biBtYXQgZHVvbmcga2hpZW4gbmd1b2kgZGFuIHJhdCBsbyBuZ2FpIHZhIGNodSBkYXUgdHUgY3Vu ZyBjaHVhIGJhbyANCmNhbyB2aWVjIG5heSB2b2kgY28gcXVhbiBjaHUgcXVhbi4gRHUgYW4gbmF5 IGtob2kgY29uZyB0dSBuYW0gMjAwNCB2YSB0aGVvIGR1IGtpZW4gc2UgDQpob2FuIHRhdCB2YW8g bmFtIDIwMTEuIA0KDQpodHRwOi8vYmVlLm5ldC52bi9jaGFubmVsLzE5ODcvMjAxMDA4L0NoYXkt bm8tdGFpLWN1YS1oYW5nLWJhbi10aGlldC1iaS1jaHVhLWNoYXktMTc2MjY1OC8gMDkvMDgvMjAx MCAxNDozODo1MyANCg0KVFAgSENNOiBDaGF5IG5vIHRhaSBjdWEgaGFuZyBiYW4gdGhpZXQgYmkg Y2h1YSBjaGF5IFExLVRQSENNIA0KDQpodHRwOi8vYmVlLm5ldC52bi9jaGFubmVsLzE5ODcvMjAx MDA4L0NoYXktbG9uLXRhaS14aS1uZ2hpZXAtY2hlLWJpZW4tbGFtLXNhbi0xNzYyNDY3LyAwNy8w OC8yMDEwIDIyOjU4OjA0DQoNClRQIEhDTTogQ2hheSBsb24gdGFpIHhpIG5naGllcCBjaGUgYmll biBsYW0gc2FuIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9IYW5nLXRyYW0tbmd1b2kt ZGFuLWhvYW5nLWxvYW4tdmktcm8ta2hpLWNsby8xNDEvNTU1Mzk3Ny5lcGkgMTQtMS0yMDExIA0K DQpUUCBIQ006IEhhbmcgdHJhbSBuZ3VvaSBkYW4gaG9hbmcgbG9hbiB2aSBybyBraGkgY2xvIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDA4L01vdC1zaW5oLXZpZW4t dHJlby1jby10cm9uZy1raHVvbi12aWVuLUtUWC05MjgwMTYvICAxMToyOSwgMTAvMDgvMjAxMCAo R01UKzcpDQoNClRQIEhDTTogTW90IHNpbmggdmllbiB0cmVvIGNvIHRyb25nIGtodW9uIHZpZW4g S1RYDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkxMC9UUEhDTS1waGF0LWhpZW4t Z2FuLTkwMDAtbW9pLW5ndXktaGllbS10dS1kaWVuLTg3NjI1Ny8gQ2FwIG5oYXQgbHVjIDIwOjU5 LCBUaHUgU2F1LCAzMC8xMC8yMDA5IChHTVQrNykNCg0KVFAuSENNOiA5LjAwMCBtb2kgbmd1eSBo aWVtIHR1IGRpZW4NCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL1ZpZXQtdGllcC12 dS1jaHVhLWNvLWR1LWFuLXZhbi10aHUtaG9pLWRhdC1jdWEtZGFuLzIwMDk1LzEzODIyOC5sYW9k b25nIDg6MzAgQU0sIDE0LzA1LzIwMDkNCg0KVFAgSENNOiAiY2h1YSBjbyBkdSBhbiwgdmFuIHRo dSBob2kgZGF0IGN1YSBkYW4iDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS80MC10 aS1kb25nLXZhby10dWktYWkvMjAxMDEvMTcxMDUzLmxhb2RvbmcgODozMSBBTSwgMTkvMDEvMjAx MA0KDQpUUEhDTTogQmVuaCB2aWVuIE5oYW4gZGFuIDExNSBidW9jIGJlbmggbmhhbiBub2kgdHJ1 IG11YSB0aHVvYyBnaWEgY2FvOiA0MCB0aSBkb25nIHZhbyB0dWkgYWk/IA0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTAwMTU3MTYuYXNweCBU aGFuaCBUdW5nIC0gTGllbiBDaGF1IC0gVC5EYXQgMTAvMDgvMjAxMCAxOjU3IA0KDQpUUCBIQ006 IENoaSB0aWV1ICJxdWEgdGF5IiBsYW0gdGFuZyBnYW5oIG5hbmcgdmllbiBwaGkgIA0KICANCkto YWMgdm9pIGdpYSBjYSBjdWEgbmh1bmcgbWF0IGhhbmcgdGlldSBkdW5nIGtoYWMsIHZpZWMgdGFu ZyB2aWVuIHBoaSBjYW4gcGhhaSBjYW4gbmhhYyANCnlldSB0byB0YWMgZG9uZyBkZW4gc3VjIGto b2Ugbmd1b2kgZGFuLiANCg0KVGFuZyBnaWEgdmllbiBwaGkgPSBuZ3VvaSBuZ2hlbyBtYXQga2hh IG5hbmcgY2h1YSBiZW5oDQoNCiJOZ2FuaCB5IHRlIGtob25nIG5lbiBjaGkgbmdoaSBkZW4gdmll YyBkaWV1IGNoaW5oIHRhbmcgZ2lhIHZpZW4gcGhpLCBtYSBjYW4gY2h1IHRyb25nIA0Ka2llbSBz b2F0IGNoaSB0aWV1LCBtdWEgc2FtIG8gQlYgY29uZyBkZSBnaWFtIGJvdCBnYW5oIG5hbmcgdmll biBwaGkgY2hvIG5ndW9pIGRhbiIgliANCk1vdCBjaHV5ZW4gZ2lhIGN1YSBCbyBZIHRlDQoNClRy YW8gZG9pIHZvaSBQViBUaGFuaCBOaWVuLCBvbmcgRGFuZyBWYW4gS2hvYSwgZGFpIGJpZXUgSERO RCBUUC5IQ00gY2hpYSBzZTogDQoiQ2h1IHRydW9uZyB0YW5nIHZpZW4gcGhpIGRhIGR1b2MgY2h1 bmcgdGEgdGluaCBkZW4gdHUgbGF1IHJvaSwgdG9pIGNobyByYW5nIG5ndW9pIGRhbiANCmN1bmcg c2UgY2hpYSBzZSBkb25nIGdvcCB0aGVtIHZvaSBuZ2FuaCB5IHRlLCBoYXUgbW9uZyBjbyBzdSBj aGFtIHNvYyBzdWMga2hvZSBuZ2F5IA0KbW90IHRvdCBob24uIE5odW5nIG1vdCBzbyBtdWMgdGFu ZyB0aGVvIGR1IHRoYW8gdnVhIHF1YSBzZSBnYXkgImNob2FuZyIsIGJvaSB0YW5nIGNhbyANCmRv dCBuZ290LiBOaGlldSBjdSB0cmkgbG8gbmdhaSBraGkgdmllbiBwaGkgdGFuZyBjYW8sIHN1YyBr aG9lIG5ndW9pIGRhbiBzZSByYSBzYW8/IFZpZWMgbG8gDQpsYW5nIGN1YSBuZ3VvaSBiZW5oIGxh IGNvIGNvIHNvLCBib2kgbWF0IGJhbmcgY2h1bmcgZG9pIHNvbmcgbmd1b2kgZGFuIGNvbiBuaGll dSBraG8ga2hhbiIuIA0KDQpNYWMgZHUgbmdhbiBzYWNoIG5oYSBudW9jIChOU05OKSBjb24gaGFu IGNoZSwgY29uIG5oaWV1IGxpbmggdnVjIHBoYWkgdXUgdGllbiwgbmh1bmcgDQpDaGluaCBwaHUg ZGEgdXUgdGllbiB0YW5nIGNoaSBOU05OIGNobyB5IHRlIGhhbmcgbmFtLCBuYW0gc2F1IGNhbyBo b24gbmFtIHRydW9jLiANCkNoYW5nIGhhbjogbmFtIDIwMDIgbGEgNy4xODcgdGkgZG9uZyAoY2hp ZW0gNSUgTlNOTik7IG5hbSAyMDA3IHRhbmcgbGVuIDIzLjI4MCB0aSANCmRvbmcgKDYsMyUgTlNO TiksIG5hbSAyMDA4IGtob2FuZyAyNy40NjMgdGkgZG9uZy4uLiANCg0KVGFpIFRQLkhDTSwgdHJv bmcgbmFtIDIwMDksIGNoaSB0aW5oIHJpZW5nIG8gY2FjIEJWIGNhcCBUUCwgTlNOTiBjYXAgY2hv IEJWIGhvYXQgDQpkb25nIChjaGkgbHVvbmcsIGNoaSBoYW5oIGNoaW5oLi4uKSBsYSA5MDAgdGkg ZG9uZywgbmFtIDIwMTAgbGEgOTkwIHRpIGRvbmcsIGNodWEgdGluaCANCmtpbmggcGhpIG11YSBt YXkgbW9jIHRyYW5nIHRoaWV0IGJpLiANCg0KVmFvIGJlbmggdmllbiBjb25nIHR1b25nIHJlLi4u DQoNCkNhYyBuaGEgcXVhbiBseSBCViB0dSwgdmEgbmhpZXUgYmFjIHNpIGRhbmcgbGFtIHZpZWMg dGFpIGNhYyBCViBjb25nIGNvIGNodW5nIG5oYW4gDQpkaW5oOiAiTmhpZXUgdHJ1b25nIGhvcCB2 YW8gQlYgY29uZyB0dW9uZyByZSwgbmh1bmcgaG9hIHJhIHRpbmggdG9uZyBjaGkgdGlldSBsYWkg dGhpIA0KdGhheSBnYW4gYmFuZyB2b2kgQlYgdHUuIEJvaSBvIEJWIGNvbmcsIG5ndW9pIGJlbmgg cGhhaSBjaGkgdGlldSBuaGlldSBraG9hbiBraG9uZyANCm5hbSB0cm9uZyB2aWVuIHBoaSIuIENo aSBELlQuSC5QICgzNiB0dW9pLCBuZ3UgQmllbiBIb2EsIERvbmcgTmFpKSB0cnVvYyBraGkgZGkg c2luaCANCmR1YSBjb24gdGh1IGhhaSwgYmFuIGRhdSBkaW5oIHZhbyBtb3QgQlYgcGh1IHNhbiBj b25nIG8gVFAuSENNLCBuaHVuZyByb2kgcXVhIGhvaSANCnRoYW0gbmd1b2kgYmFuIHZ1YSBzaW5o IG8gQlYgbmF5LCB0aW5oIHJhIHRvbmcgY2hpIHBoaSBjaG8gY2Egc2luaCwgInRpZW4gbmF5LCB0 aWVuIG5vIiANCmN1bmcgbmdhbmcgbmd1YSB2b2kgbW90IEJWIHR1IG8gVFAsIG5lbiBjaGkgcXV5 ZXQgZGluaCBzYW5nIEJWIHR1LCBtYSB0aGVvIGNoaSAiZGUgDQpraG9uZyBiaSBraG8gdmUgY2h1 eWVuIGtpZW0gZ2l1b25nIi4NCg0KQ2FjIGJhYyBzaSBjaG8gcmFuZywgaGFuZyBuYW0sIE5oYSBu dW9jIGNhcCBraW5oIHBoaSBjaG8gY2FjIEJWIGNvbmcgZGUgeGF5IGR1bmcsIHN1YSANCmNodWEs IG11YSBzYW0gdHJhbmcgdGhpZXQgYmksIGNoaSB0aWVuIGx1b25nIG5oYW4gdmllbi4uLiwgbmh1 bmcgY28gbmh1bmcga2hvYW4gY2hpIE5oYSANCm51b2Mga2hvbmcgcXVhbiB4dXllbiBoZXQgZHVv YywgY2hhbmcgaGFuIG5odSBuaHVuZyBnb2kgdGhhdSBtdWEgc2FtIG1heSBtb2MgdGhpZXQgDQpi aSwgZHVuZyBjdS4uLiBNb3QgYmFjIHNpIHRydW9uZyBraG9hIGN1YSBtb3QgQlYgY29uZyAobyBR LjUsIFRQLkhDTSkgY2FtIG1vdCBsb2FpIA0KZHVuZyBjdSByYXQgbmhvIGR1bmcgdHJvbmcgcGhh dSB0aHVhdCBub2kgdm9pIGNodW5nIHRvaTogIkN1bmcgbG9haSBkdW5nIGN1IHkgbmh1IHZheSwg DQpuaHVuZyBCViB0dSBjYW5oIEJWIGNodW5nIHRvaSBsYWkgbXVhIHZhbyByZSBob24gMSB0cmll dSBkb25nLiBWaSBCViB0b2kgZHVuZyBwaHVvbmcgDQp0aHVjICJhcCBnaWEiIHRoZW8gZ2lhIHRy dW5nIHRoYXUgY3VhIG1vdCBCViBjb25nIHRydW9jIGRvLCBtYSBraG9uZyBiaWV0IEJWIGNvbmcg ZG8gDQpkYXUgdGhhdSB0aGUgbmFvIGRlIG11YSBzYW4gcGhhbSB5IGNoYW5nIG5odW5nIGxhaSBk YXQgaG9uIDEgdHJpZXUgZG9uZyBzbyB2b2kgQlYgdHUgbGEgDQpkaWV1IHJhdCBiYXQgaG9wIGx5 LiBEYXkgY2hpIG1vaSBsYSBtb3Qgc2FuIHBoYW0gYmUgdGksIGNvIGdpYSB0cmkgY2h1YSBkZW4g MTAgdHJpZXUgZG9uZywgDQpjb24gaGFuZyBuZ2FuIGxvYWkgbWF5IG1vYywgZHVuZyBjdSBraGFj IHRoaSBzYW8/IE5ldSBuaHUgdmF5IHRoaSBOaGEgbnVvYyB0b24gbW90IA0Ka2hvYW4gdGllbiBr aG9uZyBuaG8gY2hvIG5odW5nIHZ1IG11YSBzYW0gdGhlIG5heS4gRHVuZyBjdSBCViBjb25nIG11 YSBkYXQsIGtlbyANCnRoZW8gbmd1b2kgYmVuaCBzZSBwaGFpIHRyYSB0aWVuIGNobyBkdW5nIGN1 IGRvIi4gDQoNCiJLaGkgeGEgaG9pIGhvYSBvIEJWIGNvbmcsIGNhbiBsdXUgeSB2b2kgbmh1bmcg dHJ1b25nIGhvcCBsaWVuIGRhbmggbXVhIHNhbSBtYXkgbW9jLCANCnZpIG5oaWV1IG1heSBkYXQg dmFvIEJWIGNvbmcgZGEgYmkgInR1IG5oYW4gaG9hIiBkYXkgZ2lhIHRyaSBjdWEgbWF5IG1vYyBk byBsZW4gcmF0IGNhbywgDQpjYW8gaG9uIG5oaWV1IHNvIHZvaSBnaWEgdHJpIHRodWMsIHRoYW0g Y2hpIGxhIG1heSBkYSBzdSBkdW5nIHJvaSBkdW9jIHRhbiB0cmFuZyBsYWkgdGluaCANCmJhbmcg Z2lhIG1heSBtb2kuIEdpYSB0aGlldCBiaSBkYXkgbGVuIGNhbyBkb25nIG5naGlhIHZvaSB2aWVj IEJWIHNlIHBoYWkgdGluaCBnaWEgZGF0IA0KY2hvIGJlbmggbmhhbi4gVmllYyBnaWFtIGR1b2Mg Z2lhIG11YSBtYXkgbW9jIHRoaWV0IGJpIHNlIGdpdXAgdmllbiBwaGkgZGljaCB2dSBkdW9jIA0K dGluaCBvIG11YyBwaHUgaG9wLCB0dSBkbyBnaWFtIGR1b2MgZ2FuaCBuYW5nIGNobyBuZ3VvaSBi ZW5oIiwgbW90IG5oYSBxdWFuIGx5IEJWIHR1IA0Kbm9pLiBCYSBIb25nIFZhbiwgQmFuIFRodWMg aGllbiBjaGluaCBzYWNoIEJIWVQgKHRodW9jIEJhbyBoaWVtIHhhIGhvaSBWTikgY2hvIA0KYmll dDogIkhpZW4gY2h1YSBjbyBxdXkgdHJpbmggY2h1eWVuIG1vbiwgcGhhYyBkbyBkaWV1IHRyaSBj aHVhbiBkYW4gZGVuIHRpbmggdHJhbmcgbGFtIA0KZHVuZyB0cm9uZyBjaGkgZGluaCBjYWMga3kg dGh1YXQgeSB0ZSwga2UgZG9uIHRodW9jLiBDbyB0aW5oIHRyYW5nIGN1bmcgbG9haSBoaW5oIGRp Y2ggdnUgDQpuaHVuZyBnaWEgY2hlbmggbGVjaCByYXQgbmhpZXUgZ2l1YSBjYWMgQlYuIENvIHF1 YW4gY2h1YyBuYW5nIGNhbiBraXAgdGhvaSBwaGF0IGhpZW4gDQpuaHVuZyBiYXQgaG9wIGx5IHRy b25nIGNoaSBkaW5oIGN1YSBiYWMgc2kgdmEgYmlldSBoaWVuIGxhbSBkdW5nIHRodW9jLCBreSB0 aHVhdCBsYW0gZ2lhIA0KdGFuZyBjaGkgcGhpIGtoYW0sIGNodWEgYmVuaCBraG9uZyBjYW4gdGhp ZXQiLg0KDQpPbmcgRGFuZyBWYW4gS2hvYSBjaG8gcmFuZzogIkRhIGRlbiBsdWMgY2FuIGNvIGNo dXllbiBnaWEga2luaCB0ZSB0cm9uZyBsaW5oIHZ1YyB5IHRlIA0KZGUgbW8geGUgdGFuIGdvYywg cGhhbiB0aWNoIGNoaSBsaSwgcm8gcmFuZyB0YXQgY2EgY2FjIGtob2FuIGNoaSBjaG8gZGF1IHZh byBvIGNhYyBCViANCmNvbmcuIExhbSBzYW8gZGUgcGhhbiBkYXUgdmFvIG5heSAobXVhIHNhbSBt YXkgbW9jIHRoaWV0IGJpLi4uKSAidHJvbmcgc2FuZyIgbmhhdCwgaG9wIA0KbHkgbmhhdCBkZSBk byBnYW5oIG5hbmcgY2hpIHBoaSAoZGF1IHJhKSBjaG8gbmd1b2kgYmVuaCIuDQoNCmh0dHA6Ly93 d3cueWtob2FuZXQuY29tL3Rob2lzdS9jaGF0dGhhaWJlbmh2aWVuL251b2NoYWliZW5odmllbi5o dG0NCg0KVFAgSENNOiBLaW5oIGhvYW5nIG51b2MgdGhhaSBiZW5oIHZpZW4gDQoNCkJ1b2MgdmFv IGNvbmcgQmVuaCB2aWVuIFVuZyBidW91IFRQIEhDTSwgbmhpZXUgbmd1b2kgcGhhaSBiaXQgbXVp IHZpIG11aSBob2kgYm9jIA0KbGVuLiBRdWEgbW90IGxvIGNvbmcgdm8sIGRvbmcgbnVvYyBkZW4g Y2hheSBvbmcgb2MgcmEgcGhpYSBvbmcgdGhvYXQgbnVvYyBjb25nIGNvbmcsIA0KdHJvbmcga2hp IHBob25nIHh1IGx5IG51b2MgdGhhaSBjYWNoIGRvIGNoaSB2YWkgbWV0Lg0KDQpUUCBIQ00gaGll biBjb24gdHJlbiA0MCBiZW5oIHZpZW4gY2h1YSBjbyBoZSB0aG9uZyB4dSBseSBudW9jIGRhdCBj aHVhbiB2YSAzNSBjbyBzbyANCmtoYWMgdGhhbSBjaGkgY2h1YSBjbyBjYSBoZSB0aG9uZyB4dSBs eS4gTnVvYyBiYW4gZGkgdGhhbmcgeHVvbmcgY29uZyB0aG9hdCBudW9jIHZhIHJhIA0KbW9pIHRy dW9uZy4NCg0KTmhpZXUgdHJhbSB4dSBseSBudW9jIGJpIGJvIGtob25nDQoNCkJlbmggdmllbiBB biBCaW5oIFRQIEhDTSBjbyBraHUgeHUgbHkgbnVvYyB0aGFpIGtoYSByb25nIG5odW5nIGhlIHRo b25nIGtob25nIGhvYXQgZG9uZyBob24gMTAgbmFtIG5heSwga2hpZW4gbnVvYyB0aGFpIHkgdGUg Y2hheSB0aGFuZyByYSBjb25nIGNvbmcgY29uZy4gDQoNCk1hbSBiZW5oIHR1IGRvIHBoYXQgdGFu IA0KDQpodHRwOi8vYmFpdmlldC5waGFudmllbi5jb20vMjAxMC8xLzYvbnVvYy10aGFpLWJlbmgt dmllbi10dS1kby1yYS1tb2ktdHJ1b25nLmh0bWwNCg0KVFAgSENNOiBOdW9jIHRoYWkgYmVuaCB2 aWVuIHR1IGRvIHJhIG1vaSB0cnVvbmcNCg0KS2hvYW5nIDIvMyB0cm9uZyB0b25nIHNvIDEzOSBi ZW5oIHZpZW4gdHJlbiBkaWEgYmFuIFRQSENNIGNodWEgY28gaGUgdGhvbmcgeHUgbHkgDQpudW9j IHRoYWkgZGF0IHRpZXUgY2h1YW4sIHRob25nIHRpbiB0dSBTbyBUYWkgbmd1eWVuIE1vaSB0cnVv bmcgVFBIQ00gbmdheSAzLTEgY2hvIA0KYmlldC4NCg0KSGllbiBtb2kgbmdheSBjbyBob24gMjAu MDAwbTMgbnVvYyB0aGFpIHR1IGNhYyBiZW5oIHZpZW4gIGNodWEgcXVhIHh1IGx5IGR1b2MgdGhh aSB0cnVjIA0KdGllcCAgcmEgaGUgdGhvbmcgIGNvbmcgdGhvYXQgbnVvYyBjb25nIGNvbmcgIGN1 YSB0aGFuaCBwaG8sIGdheSBvIG5oaWVtICBuZ3VvbiBudW9jIA0KY2FjIGtlbmggcmFjaCwgc29u ZyBuZ29pIGFuaCBodW9uZyBraG9uZyBuaG8gZGVuIHN1YyBraG9lICBjb25nIGRvbmcuDQoNCmh0 dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9OdW9jLXRoYWkteS10ZS1TT1MvMjAwNzgvNDk0 NTcubGFvZG9uZyA4OjIyIEFNLCAwNy8wOC8yMDA3DQoNClRQLkhDTTogTnVvYyB0aGFpIHkgdGU6 IFNPUyENCg0KTnVvYyB0aGFpIHkgdGUgZHVvYyB4ZXAgdmFvIG5ob20gY2hhdCB0aGFpIG5ndXkg aGFpLiBUaGUgbmh1bmcgdHJvbmcgbmhpZXUgbmFtIHF1YSwgDQpoYW5nIG5nYXkgY28gZGVuIGhh bmcgY2h1YyBuZ2FuIG1ldCBraG9pIG51b2MgdGhhaSB5IHRlIGNodWEgcXVhIHh1IGx5IHZvIHR1 IHhhIHRoYW5nIA0KcmEgbW9pIHRydW9uZyBtYSBraG9uZyBxdWEgeHUgbHkhDQoNCmh0dHA6Ly93 d3cubGFvZG9uZy5jb20udm4vSG9tZS9OdW9jLXRoYWktNjktYmVuaC12aWVuLWtob25nLWRhdC10 aWV1LWNodWFuLW1vaS10cnVvbmcvMjAwNzgvNDkwNDQubGFvZG9uZyA0OjExIFBNLCAwMy8wOC8y MDA3DQoNClRQLkhDTTogTnVvYyB0aGFpIDY5IGJlbmggdmllbiBraG9uZyBkYXQgdGlldSBjaHVh biBtb2kgdHJ1b25nIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvODUtdGFuLW1v aS1uZ2F5LzIwMDcxMC81OTgxNy5sYW9kb25nIDc6NDIgQU0sIDE2LzEwLzIwMDcgTGUgVGhhbmgg UGhvbmcNCg0KVFAgSENNOiA4LDUgdGFuIGNoYXQgdGhhaSB5IHRlIG1vaSBuZ2F5LCBjaGkgY28g MSAtIDIgYmVuaCB2aWVuLCB0cnVuZyB0YW0gZGFuZyBreSBjaHUgbmd1b24gdGhhaSBjaGF0IHRo YWkgbmd1eSBoYWkNCg0KTW9pIG5nYXksIGNhYyBiZW5oIHZpZW4gdmEgdHJ1bmcgdGFtIHkgdGUs IHBob25nIG1hY2ggdHUgbmhhbiB0cmVuIGRpYSBiYW4gVFBIQ00gdGhhaSANCnJhIGtob2FuZyA4 LDUgdGFuIGNoYXQgdGhhaSB5IHRlLiBUaG9uZyB0aW4gbmF5IG5ndW9pIGRhbiBjaHVhIHR1bmcg ZHVvYyBiaWV0LCBuZW4gY2h1YSANCnRoYXkgc28gaGFpIHZpIGtob25nIGJpZXQgbWluaCBkYW5n IHNvbmcgdHJvbmcgdHJvbmcgbW90IG1vaSB0cnVvbmcgY3VjIGt5IG5ndXkgaGllbS4NCg0KRGFu ZyBzbyBob24sIFRQSENNIGNvIDEwMyBiZW5oIHZpZW4sIDI0IHRydW5nIHRhbSB5IHRlLCAzMTcg dHJhbSB5IHRlIHhhLCBwaHVvbmcgdmEgDQoxMC4wMDAgcGhvbmcgbWFjaCB0dSBuaGFuLCBuaHVu ZyBjaGkgY28gMSAtIDIgYmVuaCB2aWVuLCB0cnVuZyB0YW0gbGEgY28gZGFuZyBreSBjaHUgbmd1 b24gdGhhaSBjaGF0IHRoYWkgbmd1eSBoYWkuDQoNCkN1bmcgdm9pIG5nYW4gYXkgY2hhdCB0aGFp IHJhbiBsYSBoYW5nIG5naGluIG1ldCBraG9pIG51b2MgdGhhaSBiZW5oIHZpZW4gdHJvaSB2YW8s IG5nYW0gDQp2YW8gbW9pIHRydW9uZywgdHJvbmcga2hvbmcga2hpLCB0cm9uZyBuZ3VvbiBudW9j LiBLaG9uZyBhaSBjaGV0IHZpIGR1bmcgcGhhaSByYWMgdGhhaSB5IA0KdGUgbmVuIGNvbiBuZ3Vv aSBraG9uZyBzbyBubyBuaHUgc28gdGFpIG5hbiBnaWFvIHRob25nLiBOaHVuZyBuZ3VvaSBkYW4g ZGFuZyBiaSBjYWMgDQpsb2FpIGNoYXQgdGhhaSBuZ3V5IGhhaSBuYXkgaHV5IGhvYWkgc3VjIGto b2UsIGdheSByYSBjYWMgbG9haSBiZW5oIHRhdCBraGFjIG5oYXUuIA0KDQpEZSBjaG8gZGFuIHBo YWkgY2hpdSBkdW5nIG1vdCBtb2kgdHJ1b25nIHNvbmcga2VtIGNoYXQgbHVvbmcsIGJpIHRvbiBo YWkgc3VjIGtob2UgdmkgbyANCm5oaWVtIHZhIHN1IGFuaCBodW9uZyBjdWEgY2FjIGxvYWkgY2hh dCB0aGFpIG5ndXkgaGFpLCB0aGkgZG8gbGEgdHJhY2ggbmhpZW0gY3VhIGNoaW5oIA0KcXV5ZW4u IDgsNSB0YW4gY2hhdCB0aGFpIHkgdGUgdHJlbiBjaGkgbGEgbW90IHZpIGR1LiANCg0KaHR0cDov L3ZpZXRuYW1uZXQudm4veGFob2kvMjAwOC8wNi83ODY5MzQvIDIzOjM3LCAwNS8wNi8yMDA4IChH TVQrNykNCg0KVFAgSENNOiBCZW5oIHZpZW4gRlYgYmFuIHRodW9jIGNhbyAzNSUtMzglIHNvIHZv aSB0aGkgdHJ1b25nDQoNClNhdSBraGkgbWF0IDMwMC4wMDAgZG9uZyB0aWVuIGtoYW0gYmVuaCB0 YWkgQmVuaCB2aWVuIChCVikgRlYsIHNvIHRpZW4gdGh1b2MgbWEgYmVuaCANCm5oYW4gcGhhaSB0 cmEgbmhpZXUgaG9uIGtob2FuZyAzNSUgLSAzOCUgc28gdm9pIHRoaSB0cnVvbmcgYmVuIG5nb2Fp LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAwNy8wMy82NzU2MjgvIDA5OjQ3LCBU aHUgVHUsIDIxLzAzLzIwMDcgKEdNVCs3KQ0KDQpUUCBIQ006IEJWIENobyBSYXkgLSBCYW4gdGh1 b2MgY2hvIGJlbmggbmhhbiBkYXQgaG9uIDE2LTIwJQ0KDQpodHRwOi8vd3d3Ni52bm1lZGlhLnZu L25ld3NkZXRhaWwuYXNwP05ld3NJZD04NDM5NyZDYXRpZD0yMyAxNGg0OCIgLCBuZ2F5IDIxLzAz LzIwMDcgIA0KDQpUUCBIQ006IEJlbmggdmllbiBDaG8gUmF5IC0gVGllbiBsYWkgYmFuIHRodW9j IGNoaWEgY2hvIGNhbiBibyANCg0KaHR0cDovL2JhaXZpZXQucGhhbnZpZW4uY29tLzIwMDkvOS80 L3RyYW4tbGFuLWJhYy1zaS1rZS1kb24tZ2lhLWNhby1kZS1odW9uZy1ob2EtaG9uZy5odG1sDQoN ClRQIEhDTTogS3kga2hvbmcgaG8gc28gZGUgcnV0IHJ1b3QgYmFvIGhpZW0geSB0ZSB2b2kgbW9p IGRvbiB0aHVvYyB0cmkgZ2lhIHR1IDMgZGVuIDQgdHJpZXUgZG9uZyB0YWkgQmVuaCB2aWVuICBD aG8gUmF5IA0KDQpodHRwOi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi8/Q1Q9TlcmTklEPTg1ODYg MDUvMDMvMjAwOA0KDQpUUCBIQ006IEN0eSBkdW9jIHBoYW0gdHJ1bmcgdW9uZyAyICJDbyBtYXki IHRpZXUgdGllbiBuaGEgbnVvYyENCg0KSGFuZyBsb2F0IG1hdCBiYW5nIGNvbmcgc2FuIGR1b2Mg bGFuaCBkYW8gQ29kdXBoYXIgY2hvIHRodWUgZGUgYm8gdGllbiB2YW8gcXV5IGRlbiB4YWkgcmll bmcuIA0KDQpodHRwOi8vd3d3LnNhaWdvbm5ld3Mudm4vc25jZGV0YWlsbmV3cy5hc3B4P0l0ZW09 NDMwNjQmS2luZD0yMjYgMTQtMDMtMjAwOCAwNzo0MCBBTQ0KDQpUUEhDTTogSG9uIDQuMDAwIGNv bmcgbmhhbiBkaW5oIGNvbmcgLSBDb25nIHR5IFROSEggR2lheSBkYSBIdWUgUGhvbmcgKFEuIEdv IFZhcCwgVFBIQ00pIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDA4 L0tpZW4tR2lhbmctVGh1LWtoby1jb25nLXR5LUR1b2MtdGhhbS1vLTEyLXR5LWRvbmctOTI3OTg0 LyBCdWkgQ3VvbmcgMDk6MjksIDEwLzA4LzIwMTAgKEdNVCs3KQ0KDQpUUCBIQ006IEtlIHRvYW4g dmEgdGh1IHF1eSBDb25nIHR5IER1b2MgdGh1IHkgdGhhbSBvIHRhaSBzYW4gODY1IHRyaWV1IGRv bmcgIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vZGF1X2hpZXVfYmF0X3RodW9uZ190cm9uZ19k YXVfZ2lhXyVFMiU4MCU5Q2RhdF92YW5nJUUyJTgwJTlEX29fdHBoY20tMS0yMTMxNDg5NS5odG1s IDE3LzEwLzIwMDggTmd1b246IFZpZXROYW1OZXQudm4NCg0KVFAgSENNOiBEYXUgaGlldSBiYXQg dGh1b25nIHRyb25nIGRhdSBnaWEgImRhdCB2YW5nIiBvIFRQLkhDTQ0KDQpodHRwOi8vd3d3LmNh bmQuY29tLnZuL3ZpLVZOL3BoYXBsdWF0LzIwMDgvNy85NDU2NC5jYW5kIDE2OjA2OjAwIDA1LzA3 LzIwMDgNCg0KVFAgSENNOiBDb25nIGtoYWkgdHJvbSB0aGVwIHRhaSBoYW0gZGFuIFRodSBUaGll bSAoVFAgSENNKQ0KDQoxaCBuZ2F5IDgvNiwgaG9uIDQwIGRvaSB0dW9uZyB0dSB0YXAgdHJ1b2Mg Y29uZyB0cnVvbmcgbmFtIG8ga2h1IHZ1YyBhcCBDYXkgQmFuZywgcGh1b25nIFRodSBUaGllbSwg cXVhbiAyIHZvaSBtYSB0YXUgdmEgZGFvIG5ob24gdGFuIGNvbmcsIGtob25nIGNoZSBsdWMgbHVv bmcgYmFvIHZlIHZhIGxheSBkaSBraG9hbmcgMiB0YW4gdGhlcCB0cmkgZ2lhIGhvbiAyOCB0cmll dSBkb25nIGN1bmcgMTUgY2F5IHhhIGdvIHRoZXAuDQoNClRoZW8gYmFuIGJhbyBjYW8gY3VhIEJh biBxdWFuIGx5IGR1IGFuIGdvaSB0aGF1IHNvIDIgdGhpIGNoaSB0cm9uZyB2b25nIHRoYW5nIDYv MjAwOCwgdGFpIGNvbmcgdHJpbmggbmF5IGNvIGdhbiAzMCB2dSB0cm9tIGN1b3AgdmF0IHR1IGNv bmcgdHJpbmggbmh1IHNhdCB0aGVwLCBtYXkgbW9jLi4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMDUvMjAxMDAxMjUwMDUwMzEuYXNweCAyNS8wMS8yMDEw IDA6NTAgDQoNClRQLkhDTTogVnUgdGlldSBjdWMgZGF0IGRhaSB0YWkgQ29uZyB0eSB4YXkgZHVu ZyBHbyBWYXA6ICANCiANClRyYW4gS2ltIExvbmcgKG5ndXllbiBDaHUgdGljaCBVQk5EIFEuR28g VmFwKSBiaSBkZSBuZ2hpIHRydXkgdG8gdmUgdG9pOiBuaGFuIGhvaSBsbywgZHVhIGhvaSBsbywg bG9pIGR1bmcgY2h1YyB2dSwgcXV5ZW4gaGFuIGdheSBhbmggaHVvbmcgZG9pIHZvaSBuZ3VvaSBr aGFjIGRlIHRydWMgbG9pOyBOZ3V5ZW4gVmFuIFRpbmggKG5ndXllbiBCaSB0aHUpIHZlIHRvaTog bmhhbiBob2kgbG8uIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmkteGEtaG9pL1BoYXAt bHVhdC8zODU4MTcvVnUtdGlldS1jdWMtdGFpLUNvbmctdHktR28tTW9uLU5ndXllbi1jaHUtdGlj aC1xdWFuLWxhbmgtMjYtbmFtLXR1Lmh0bWw/cD1odHRwJTNBJTJGJTJGdHVvaXRyZS52biUyRkNo aW5oLXRyaS14YS1ob2klMkZQaGFwLWx1YXQlMkYzODU4MTclMkZWdS10aWV1LWN1Yy10YWktQ29u Zy10eS1Hby1Nb24tTmd1eWVuLWNodS10aWNoLXF1YW4tbGFuaC0yNi1uYW0tdHUuaHRtbCAyMi8w Ni8yMDEwLCAxNToxNCAoR01UKzcpIA0KDQpUUCBIQ006IFRpZXUgY3VjIHRhaSBDb25nIHR5IEdv IE1vbiAtICBOZ3V5ZW4gY2h1IHRpY2ggVUJORCBxdWFuIEdvIFZhcCBwaGFtIHRvaSAiZHVhIGhv aSBsbyIgdmEgImxvaSBkdW5nIGNodWMgdnUgDQpxdXllbiBoYW4gZ2F5IGFuaCBodW9uZyBkb2kg dm9pIG5ndW9pIGtoYWMgZGUgdHJ1YyBsb2kiICgyNiBuYW0gdHUpOw0KDQpOZ3V5ZW4gYmkgdGh1 IFF1YW4gdXkgR28gVmFwIE5ndXllbiBWYW4gVGluaCwgdG9hIGN1bmcgY2h1eWVuIHR1IHRvaSBk YW5oICJuaGFuIA0KaG9pIGxvIiBzYW5nIHh1IHZlIG1vdCB0b2kgZGFuaCBraGFjIG5oZSBob24g bGEgImxvaSBkdW5nIGNodWMgdnUgcXV5ZW4gaGFuIGdheSBhbmggDQpodW9uZyBkb2kgdm9pIG5n dW9pIGtoYWMgZGUgdHJ1YyBsb2kiICgxMyBuYW0gdHUpLg0KDQpodHRwOi8vd3d3LnZuZXhwcmVz cy5uZXQvR0wvWGEtaG9pLzIwMDkvMTEvM0JBMTU0OEQvDQoNClRQIEhDTTogZG9hbmggbmdoaWVw IHZhbiB0YWkgYmF0IGJpbmggdmkgcGhhaSBkb25nIHBoaSBvYW4gZHUga2hvbmcgbHV1IHRob25n IGJhbmcgZHVvbmcgRGllbiBCaWVuIFBodSwgDQpkYW4gZGVuIG5oaWV1IGN1b2MgZGluaCB0YWkg Y3VhIGNhYyBsYWkgeGUgbmdheSB0cmFtIHRodSBwaGkgeGEgbG8gSGEgTm9pIHR1IGRhdSB0aGFu ZyAxMS4gRGUgbmdoaSBuZ3VuZyBob2F0IGRvbmcgdHJhbSB0aHUgcGhpIHhhIGxvIEhhIE5vaS4N Cg0KaHR0cDovL3d3dy50aW5tb2kudm4vUXVhbi0xMi1UUEhDTS1OZ2FtLWFuLXRoYW0tcGhhbi1i aS1kb2ktMDUxODY0OS5odG1sIDAyOjQ4IG5nYXkgMDkvMDUvMjAwOQ0KDQpRdWFuIDEyIC0gVFAu SENNOiBOZ2FtIGFuLCB0aGFtIHBoYW4gYmkgZG9pDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZu L1RpYW55b24vSW5kZXguYXNweD9BcnRpY2xlSUQ9ODg5NjQmQ2hhbm5lbElEPTEyIDA1LzA3LzIw MDcsIDE4OjA2DQoNClRQIEhDTSA6IE5ndXllbiBDaHUgdGljaCBVQk5EIHF1YW4gMTIgYmkgZGUg bmdoaSB0cnV5IHRvIC0gdG9pIGRhbmggIkNvIHkgbGFtIHRyYWkgY2FjIHF1eSBkaW5oIGN1YSBO aGEgbnVvYyB2ZSBxdWFuIGx5IGtpbmggdGUsIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZyIuIA0K DQpodHRwOi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9kZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTE0 MTQ2IDAxLzA4LzIwMDgNCg0KVFAuSENNOiBUaHUgaG9pICJnaWF5IGRvIiBzYWksIFVCTkQgcXVh biAxMiB0aHVhIGtpZW4NCg0KaHR0cDovL2RvYW5obmhhbnRpbWVzLmNvbS9TMThONzkwL1RoYW5o LVh1YW4sLXF1YW4tMTIsLVRQSENNLWtoby12aS1vLW5oaWVtLXZhLXF1eS1ob2FjaC10cmVvLmh0 bWwgMTAvMDcvMjAwOCAwNzowNA0KDQpUaGFuaCBYdWFuLCBxdWFuIDEyLCBUUEhDTSBraG8gdmkg byBuaGllbSB2YSBxdXkgaG9hY2ggdHJlbyANCg0KVGhhbmggTG9jIChodXllbiBIb2MgTW9uIHh1 YSwgbmF5IGxhIHBodW9uZyBUaGFuaCBYdWFuLCBxdWFuIDEyLCBUUEhDTSkgbGEgdnVuZyB0cm9u ZyBob2EgbGFpIG5vaSB0aWVuZywgbW90IGRhdSBtb2kgY3VuZyB1bmcgaG9hIGxhaSBjaG8gbmhp ZXUgZGllbSB1b3AgdHJhIHRyb25nIHRoYW5oIHBobyBuaHVuZyBuYW0gNzAgLSA5MC4gTmh1bmcg byBub2kgYXksIGJheSBnaW8gY2hpIGNvbiBuaHVuZyB2dW9uIGxhaSB0cm8gZ29jIGJvaSBuZ3Vv biBudW9jIG8gbmhpZW0gbmFuZyB2YSB2aSBtYW5oIGRhdCBuYXkgZGFuZyBsYSBkdSBhbiB0cmVv IGN1YSB0aGFuaCBwaG8uDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA4LzA3 LzNCQTA0OTdGLyAxOC83LzIwMDgsIDE3OjI1IEdNVCs3DQoNClRQIEhDTTogTmhpZXUgY2FuIGJv ICdhbicgdGllbiB0dSBkYXQgZGFpDQoNCmh0dHA6Ly90aW50dWMudGltbmhhbmguY29tL3hhLWhv aS8yMDA5MDMwNi8zNUE4RjMyMi9RVUFOLTEyLS1UUEhDTS1IYW5nLWNodWMtaG8tZGFuLW5nYXAt dHJvbmctbnVvYy1kby5odG0gMDYvMDMvMjAwOSAxNToyMTo1Nw0KDQpRVUFOIDEyIC0gVFBIQ006 IEhhbmcgY2h1YyBobyBkYW4gbmdhcCB0cm9uZyBudW9jIGRvDQoNCkRvIGNoaXUga2hvbmcgbm9p IHRpbmggdHJhbmcgbnVvYyBuZ2FwLCBvIG5oaWVtLCBuaGlldSBobyBkYSBibyBuaGEgZGkgbm9p IGtoYWMNCg0KaHR0cDovL3d3dy5yZTI0aC5jb20vP3BhZ2U9dGludHVjJnZpZXc9ZGV0YWlsMiZp ZHRpbj0zNTQ4JmlkYm94PTM1NiAxNS8xMS8yMDA4IDA2OjQ5OjU1IEFNDQoNClF1YW4gMTIsIFRQ SENNOiBDbyBjaG8gbW9pIG5odW5nIHZhbiBiYW4gbGUgZHVvbmcNCg0KQ2hpIGVtIHRpZXUgdGh1 b25nIG8gY2hvIEJhdSBOYWkgKGR1b25nIFRydW9uZyBDaGluaCwgcGh1b25nIFRhbiBIdW5nIFRo dWFuLCBxdWFuIDEyLCBUUEhDTSkgbmdheSBuZ2F5IG5nYWMgbmdvYWkgY2hvIGR1b2Mgdm8gY2hv IG1vaS4gVHJvbmcga2hpIGRvLCBjaG8gQW4gU3VvbmcgeGF5IHhvbmcgdHUgY3VvaSBuYW0gMjAw MyB2YW4gYm8gaG9hbmcgbmVuIHRpZXUgdGh1b25nIGRhbmggYnVvbiBiYW4gby4uLiBsZSBkdW9u ZyENCg0KaHR0cDovL25ld3Muc29jYmF5LmNvbS9waHVvbmdfaGllcF90aGFuaF9xdWFuXzEyX3Rw aGNtX2Rhbl9ob2FuZ19tYW5nX3ZpX25hbl90cm9tX2NhcC02MDA1ODY0MDQtMzM2MTk5NjguaHRt bCBzZ2dwLm9yZy52biAtIDE1OjE0IDExLTA4LTIwMDgNCg0KUGh1b25nIEhpZXAgVGhhbmgsIHF1 YW4gMTIsIFRQSENNOiBEYW4gaG9hbmcgbWFuZyB2aSBuYW4gdHJvbSBjYXANCg0KaHR0cDovL3d3 dy5oaWVuZGFpaG9hLmNvbS9lbnZpcm9ubWVudF9kZXRhaWwucGhwP2lkPTY4NSAoMzAtMDctMjAw OSAxMTo1MDozMykNCg0KWHVvbmcgRGV0IFRhbiBLaGFpIE1pbmggKFF1YW4gMTIgLSBUUC4gSG8g Q2hpIE1pbmgpOiBYYSB0cm9tIG51b2MgdGhhaSwgbGFtIHNhcCB0dW9uZyB2YXkgY2h1bmcgY3Ug VGluIFBob25nIA0KDQpEdSBhbiB4YXkgZHVuZyBjaHVuZyBjdSBjaG8gbmd1b2kgdGh1IG5oYXAg dGhhcCBjdWEgQ29uZyB0eSBUTkhIIFNhbiB4dWF0IHRodW9uZyBtYWkgeGF5IGR1bmcgVGluIFBo b25nIChDb25nIHR5IFRpbiBQaG9uZyksIHRhaSBxdWFuIDEyLCBkYW5nIGNvIG5ndXkgY28gY2hh bSB0aWVuIGRvLiBOZ3V5ZW4gbmhhbiBsYSBoZSB0aG9uZyB0dW9uZyB2YXkgZGEgYmkgZG8gc2Fw IGRvIG51b2MgdGhhaSB0dSBoZSB0aG9uZyB4YSBuZ2FtIHR1IHh1b25nIGRldCBiZW4gY2FuaCBn YXkgcmEuIA0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvTmdoZW8tdmktby1uaGll bS12YS1xdXktaG9hY2gtdHJlby8yMDA4Ny85Njk1My5sYW9kb25nIDU6MDUgUE0sIDEwLzA3LzIw MDgNCg0KUGh1b25nIFRoYW5oIFh1YW4sIHF1YW4gMTIsIFRQLkhDTTogTmdoZW8gdmkgbyBuaGll bSB2YSBxdXkgaG9hY2ggdHJlbyAtIEhvIG5naGVvIHRhbmcNCiAgDQpodHRwOi8vdGludHVjLnhh bG8udm4vMDA4Njk5NDA1MTEvcXVhbl8xMl94b2FfcXV5X2hvYWNoX3RyZW9fbGFpX3Z1b25nX3F1 eV9ob2FjaF9jaGlfdGlldC5odG1sIDI4LzgvMjAwOCwgMTE6MjAgUE0gIChUaGVvIFBoYXAgbHVh dCBUUEhDTSApDQoNClF1YW4gMTI6IFhvYSBxdXkgaG9hY2ggInRyZW8iIGxhaSB2dW9uZyBxdXkg aG9hY2ggY2hpIHRpZXQNCg0KUXVhbiBjb24gbmhpZXUgcXV5IGhvYWNoICJ0cmVvIiwgY2h1IHll dSBsYSBxdXkgaG9hY2ggY29uZyB0cmluaCBjb25nIGNvbmcsIGNheSB4YW5oLCBnaWFvIHRob25n LiANCg0KQ2FjIGRhaSBiaWV1IEhETkQgVFAgZGF0IHJhIG5oaWV1IHZhbiBkZSBjaG8gcXVhbiAx MiBuaHUgbmd1b2kgZGFuIGtob25nIGR1b2MgeGF5IGR1bmcgbmhhIHRhbSB0cm9uZyBraHUgdnVj IHF1eSBob2FjaCBkdSBraWVuIGNobyBkdW9uZyBibyB2YSBkdW9uZyBzYXQsIGtodSBxdXkgaG9h Y2ggMjUwIGhhIGNheSB4YW5oIHRhaSBoYWkgcGh1b25nIFRoYW5oIFh1YW4sIFRob2kgQW4gInRy ZW8iIGRhIHF1YSBsYXUuLi4gDQoNClZlIGtodSB2dWMgMTAwIGhhIGRhIHhvYSBxdXkgaG9hY2gg Y29uZyB2aWVuIGNheSB4YW5oIG5odW5nIHF1YW4ga2hvbmcgeGFjIG5oYW4gY2hvIG5ndW9pIGRh biBvIGRheSBkdW9jIHRodWMgaGllbiBjYWMgcXV5ZW4gc3UgZHVuZyBkYXQuLi4gDQoNCmh0dHA6 Ly93d3cuc2dncC5vcmcudm4vbW9pdHJ1b25nZG90aGkvMjAwOS80LzE4NjE5My8gIFRodSBuYW0s IDAyLzA0LzIwMDksIDIzOjI2IChHTVQrNykNCg0KR2lhbSBkaW5oIGNoYXQgbHVvbmcgY29uZyB0 cmluaCBUcnVvbmcgTmd1eWVuIFRoaSBEaW5oIChxdWFuIDgsIFRQSENNKQ0KDQpEb2FuIGdpYW0g c2F0IGNodW5nIGtpZW4gc3UgeHVvbmcgY2FwIGN1YSBuZ29pIHRydW9uZyBuYXkgdHJhbSB0cm9u Zywgc2FuIHRydW9uZyBuaGlldSBub2kgYmkgc3VwIGx1biB2YSBuZ2FwIG51b2Mgdm9pIG5odW5n IHZldCBudXQgeGUgZG9jIG5nYW5nIGNhYyBidWMgdHVvbmcuIA0KDQpodHRwOi8vd3d3LmNhbmQu Y29tLnZuL3ZpLVZOL3BoYXBsdWF0LzIwMDgvNy8xMjYyNDYuY2FuZCAxNjozMDowMCAxMC8wMi8y MDEwDQoNCktob2kgdG8gdnUgYW4gbGFtIG1vaSBnaW9pIGhvaSBsbyB2YSBkdWEgaG9pIGxvIGhv biAxMCB0eSBkb25nIC0geGF5IHJhIHRhaSBUUCBIQ00uDQoNCmh0dHA6Ly93d3cudm5leHByZXNz Lm5ldC9HTC9YYS1ob2kvMjAwOC8wNi8zQkEwM0UzNi8gQ2h1IG5oYXQsIDI5LzYvMjAwOCwgMDk6 MTMgR01UKzcNCg0KVFAgSENNOiBCZSB0b25nIHNhcCBkZSAzIGNvbmcgbmhhbiBsYW0gbW90IG5n dW9pIGNoZXQNCg0KVnUgdmllYyB4YXkgcmEgc2FuZyAyOC82IHRhaSBjb25nIHRyaW5oIHhheSBk dW5nIG5oYSB4dW9uZyBjdWEgbW90IGNvbmcgdHkgZGllbiB0dSBuYW0gdHJvbmcgS2h1IGNvbmcg bmdoZSBjYW8gVFAgSENNLCB0aHVvYyBkaWEgYmFuIHF1YW4gOS4NCg0KaHR0cDovL3d3dy52bmV4 cHJlc3MubmV0L0dML1hhLWhvaS8yMDA4LzA3LzNCQTA0MDcyLyBUaHUgdHUsIDIvNy8yMDA4LCAy Mjo1OSBHTVQrNw0KDQpUUCBIQ006IENhbmcgdGluIHRydW9uZyBkYWkgaG9jIGJhbiB0aHVjIGFu IGJhbiANCg0KaHR0cDovL3ZpZXRiYW8udm4vR2lhby1kdWMvQ2hheS10cnVvbmcta2hvLXF1YS1h aS1vaS80MDAzNjUxNC8yMDIvIDEwLzYvMjAwNCwgMDU6MjggR01UKzcgMTAvNi8yMDA0LCAwNToy OCBHTVQrNyANCg0KVFAgSENNOiBDaGF5IHRydW9uZywga2hvIHF1YSBhaSBvaSAtIE5oaWV1IHRo dSB0YXksIG5oaWV1IGJhdCBjb25nIQ0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEt aG9pLzIwMDcvMDkvM0I5RkE5NkMvDQoNClRQIEhDTTogQ2hpIGJhYyB0cmlldSBjaG8gY29uIHZh byBsb3AgMQ0KDQpOaGlldSBwaHUgaHV5bmggZGEgcGhhaSBjaGkgInBob25nIGJpIiBiYWMgdHJp ZXUgdm9pIGhpIHZvbmcga2llbSBtb3QgY2hvIGNobyBjb24gdmFvIGxvcCAxIHRhaSBUUCBIQ00u IA0KDQpodHRwOi8vbWVnYWZ1bi52bi9jaGFubmVsLzE5MjIvMjAxMDA1L0NoYS1tZS1nb25nLW1p bmgtY2hheS10cnVvbmctY2hvLWNvbi12YW8tbG9wLU1vdC03NjY4OS8gMTY6MDcsICAxOC8wNS8y MDEwIChHTVQrNykNCg0KVFAgSENNOiBDaGEgbWUgImdvbmcgbWluaCIgY2hheSB0cnVvbmcgY2hv IGNvbiB2YW8gbG9wIE1vdCANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0hvYy1naWEtY2Fw LWJhbmctdGhhdC10cmFuLWxhbi80MDIyNzgxMS8xNTcvIDA1LzExLzIwMDcsIDA2OjMwIEdNVCs3 IA0KDQpUUC5IQ006ICJIb2MgZ2lhLCBjYXAgYmFuZyB0aGF0IiB0cmFuIGxhbg0KDQpodHRwOi8v d3d3LmNhbmQuY29tLnZuL3ZpLVZOL3BoYXBsdWF0LzIwMDgvMy84NjQ5MS5jYW5kIDA5OjE4OjAw IDA3LzAzLzIwMDgNCg0KVFAgSENNOiA3IHRyaWV1IGRvbmcgbGEgY28gYmFuZyBkYWkgaG9jLi4u IGdpYSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Bza3MvMjAxMDA5L0Nob2FuZy12b2kt dGh1LW5oYXAtZ2lhbmctdmllbi1EYWktaG9jLTkzNTU4MS8gQ2FtIFF1eWVuIDA3OjUxLCAxNS8w OS8yMDEwIChHTVQrNykgDQoNClRQIEhDTTogTmhpZXUgZ2lhbmcgdmllbiBjbyB0aHUgbmhhcCBy YXQgY2FvIG5odW5nIGtob25nIGtlIGtoYWkgdmEgbm9wIHRodWUgDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzMS8yMDEwMDcyOTIyNTgyMi5hc3B4IERhbmcg Tmd1eWVuIDI5LzA3LzIwMTAgMjI6NTggDQoNClRQIEhDTTogTGFwIGxvIHR1eWVuIHNpbmggLSBL aG9uZyBjbyBwaGFwIG5oYW4gdmFuIHR1eWVuIHNpbmghICANCg0KTW90IG5ob20gbmd1b2kgdHUg bGFwIHJhIG1vdCB0cnVuZyB0YW0ga2hvbmcgY28gcGhhcCBuaGFuLCByb2kgdHUgbGllbiBrZXQg dm9pIGNhYyB0cnVvbmcgbmdoZSBkZSB0dXllbiBzaW5oLCBkYW8gdGFvIHZhIGNhcCBiYW5nIHR1 IGJhYyBUQyBjaG8gZGVuIENEIG1hIGtob25nIHF1YSBiYXQgY3UgY28gcXVhbiBxdWFuIGx5IG5h by4uLiANCg0KRG8gbGEgVHJ1bmcgdGFtIFRpbiBob2MgdmEgUXVhbiBseSBraW5oIHRlIE1hSVQg KE1hSVQpIG8gMTIyIC0gMTI0IEJhdSBDYXQgMiwgUC4xMiwgUS5UYW4gQmluaCwgVFAuSENNOyBN YUlUIGRhIGNvIG5oaWV1IGxhbiBtYW8gZGFuaCBsYSB0cnVjIHRodW9jIFNvIExELVRCLVhIIHZh IHRydW9uZyBUQyBLaW5oIHRlIGt5IHRodWF0IFF1YW5nIFRydW5nLiBIaWVuIE1hSVQgZGFuZyBk YW8gdGFvIHRyYWkgcXV5IGRpbmggdm9pIHNvIGx1b25nIGhvYyBzaW5oIGtoYSBkb25nLg0KDQpo dHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOTEwL0R1bmctZGUtY2h1eWVuLWdpYS1u b2ktbmh1LWNvLWRhbS1iaS1ib25nLTg3Mjk2Ny8gMDg6NDgsIDEwLzEwLzIwMDkgKEdNVCs3KQ0K DQpUUCBIQ006IFVuIHRhYyBnaWFvIHRob25nIHRhaSBUUCBIQ00gLSBOaGEga2hvYSBob2Mgbmhp ZXQgdGluaCBkdWEgcmEgbmhpZXUgcGh1b25nIGFuIA0KY2hvbmcgdW4gdGFjIGdpYW8gdGhvbmcg bmh1bmcgdGhhdCB2b25nIHZpIGNhYyBraWVuIG5naGksIGRlIHh1YXQgdHVhIG5odSAiY28gZGFt IGJpIGJvbmciLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDM1LzIwMTAwODI4MDAyNjU0LmFzcHggTi5UcmFuIFRhbSAyOC8wOC8yMDEwIDA6MjYgDQoNClRQ IEhDTTogRG9hbmggbmdoaWVwIGtldSBraG8gdmkgZ2lhbyB0aG9uZyAgDQogIA0KVW4gdGFjIGdp YW8gdGhvbmcgbGEgdmFuIGRlIG1hIGRvYW5oIG5naGllcCAoRE4pIE5oYXQgQmFuIGJ1YyB4dWMg bmhhdCB0cm9uZyBidW9pIGdhcCBnbyANCmxhbmggZGFvIFVCTkQgVFBIQ00gdmEgY2FjIHNvLCBi YW4gbmdhbmggZGllbiByYSB2YW8gaG9tIHF1YSAoMjcuOCkuIA0KRGF5IGN1bmcgbGEgYnVjIHh1 YyBjaHVuZyBjdWEgY29uZyBkb25nIEROIG8gVk4uIA0KDQotIFZhbiBuYW4gdW4gdGFjIGdheSB0 aGlldCBoYWkgbG9uIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzM4Njcw NC9NdWEtZGF1LW11YS1UUEhDTS1uZ2FwLTIwLWRpZW0uaHRtbDI3LzA2LzIwMTAsIDA3OjU1IChH TVQrNykgDQoNClRQIEhDTTogTXVhIGRhdSBtdWEsIG5nYXAgMjAgZGllbSANCg0KKENoaWV1IDI2 LTYsIG1vdCBjb24gbXVhIGtlbyBkYWkga2hvYW5nIDQwIHBodXQgZGEgbGFtIG5oaWV1IHR1eWVu IGR1b25nIG8gVFAuSENNIGJpIG5nYXAgbmFuZy4pIA0KDQpodHRwOi8vd3d3LnBodW51b25saW5l LmNvbS52bi8yMDEwL1BhZ2VzL3N1dC1uZW4tbmhhLWhhaS1uZ3VvaS1iaS10aHVvbmcuYXNweCAy Mi8wMS8yMDEwIDg6MzcgIA0KDQpUUCBIQ006IFN1dCBuZW4gbmhhLCBoYWkgbmd1b2kgYmkgdGh1 b25nIA0KDQoobmdvaSBuaGEgZHVvYyB4YXkgZHVuZyBzYXQgbWVwIGN1YSBtb3Qgbmhhbmgga2Vu aCBOaGlldSBMb2MgLSBUaGkgTmdoZSB2YSBkYXkgbGEga2h1IHZ1YyBjbyBuZ3V5IGNvIHN1dCBs dW4gcmF0IGNhby4pDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDEvQ2hl dC1kdW5nLXRyZW4tZHVvbmctdmUtbmhhLTg4OTgyMi8gMjE6MzksIFRodSBTYXUsIDE1LzAxLzIw MTAgKEdNVCs3KQ0KDQpUUC5IQ006ICJjaGV0IGR1bmciIHRyZW4gZHVvbmcgdmUgbmhhDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0MC8yMDEwMTAwMTAxMDg1 MC5hc3B4IFRoYW5oIFR1bmcgIDAxLzEwLzIwMTAgMTowOCANCg0KVFAgSENNOiAzMSBjb25nIG5o YW4gYmkgbmdvIGRvYyB0YXAgdGhlICANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05l d3MvUGFnZXMvMjAxMDM4LzIwMTAwOTE0MTgyNzQ4LmFzcHggMTQvMDkvMjAxMCAxODoyNyANCg0K VFAgSENNOiBUYXhpIGxvdCAiaG8gdm9pIiBkbyBsbyBjb3QgZGUgbGFpICANCg0KQ2hpZXUgMTQu OSB0YWkgZGF1IGhlbSAzODYgTGUgVmFuIFN5LCBQLjE0LCBRLjMgKFRQLkhDTSksIHRyb25nIGNv biBtdWEgdGFtIHRhIGtlbyBkYWksIG1vdCBjaGllYyB4ZSB0YXhpIGRhbmcgZGkgdHJlbiBkdW9u ZyBkYSBiYXQgbmdvIGxvdCB2YW8gImhvIHZvaSIgZGF5IG51b2MsIHJvbmcgZ2FuIDEwbTIgdmEg c2F1IGhvbiAzbQ0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEw MzgvMjAxMDA5MTQwMDAzMDAuYXNweCAgTmdvYyBUaG8gMTQvMDkvMjAxMCAwOjAzIA0KDQpUUCBI Q006IFhlIHRhaSBzYXAgYmF5IGdpdWEgbG8gZG8gbWF0IGR1b25nIHN1dCBsdW47IFRoZW8gbmd1 b2kgZGFuLCBkYXkgbGEgZG9hbiB0dW5nIGNvIGxvIGNvdCBjdWEgbW90IGNvbmcgdHJpbmggZGEg ZG9uIGRpIHR1IG1heSB0aGFuZyBuYXkuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMzUvMjAxMDA4MjgwMDI2NTQuYXNweCBOLlRyYW4gVGFtIDI4LzA4LzIw MTAgMDoyNiANCg0KVFAgSENNOiBUYXhpIHRhbyBhbiB0dW9uZyB4YXUgKCJjbyBxdWF5IiwgImNo YXQgY2hlbSIgdGllbiBjdWEga2hhY2gpIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMzcvMjAxMDA5MDYxOTA1NDEuYXNweCBOZ3V5ZW4gTWkgMDYvMDkvMjAx MCAxOTowNSANCg0KVFAuSENNOiBIb2F0IGRvbmcgdmFuIHRhaSBiYW5nIHRheGkgZGFuZyBjbyBj aGlldSBodW9uZyBkaWVuIGJpZW4gcGh1YyB0YXAgZGEgeHVhdCANCmhpZW4gdGluaCB0cmFuZyBj YWMgdGFpIHhlIHRheGkgbXVhIGNvbmcgY3UgZGlldSBraGllbiB0dSB4YSwgbmhhbSBraWNoIHh1 bmcgbGFtIGRvbmcgaG8gDQp0aW5oIGN1b2MgY2hheSBuaGFuaCBob24gZGUgZGUgZGFuZyAibW9j IHR1aSIga2hhY2ggaGFuZy4NCkNhYyBsb2FpIGNvbmcgY3UgZGlldSBraGllbiB0dSB4YSBuYXkg ZHVvYyBiYXkgYmFuIHJvbmcgcmFpIHRhaSBjYWMgY2hvIGtpbSBraGkgZGllbiBtYXkgDQpvIFRQ LkhDTSB2b2kgZ2lhIGNoaSBraG9hbmcgMjUwLjAwMCBkb25nL2NhaS4gDQoNCmh0dHA6Ly93d3cu dGllbnBob25nLnZuL1BoYXAtTHVhdC8xMDc1NDQvVGhlbS1oYW5nLWxvYXQtc2FpLXBoYW0tdHJv bmctY2FjLWR1LWFuLWRhdC1kYWktdGFpLVEyLmh0bWwgMTU6MjkgMDgvMDEvMjAwOCANCg0KVFAg SENNOiBUaGVtIGhhbmcgbG9hdCBzYWkgcGhhbSB0cm9uZyBjYWMgZHUgYW4gZGF0IGRhaSB0YWkg UXVhbiAyDQoNCi0gVGFpIGR1IGFuIHhheSBjaG8gQW4gS2hhbmggKHBodW9uZyBCaW5oIEtoYW5o KSwgbmhpZXUgc2FpIHBoYW0gdHJvbmcgcXVhbiBseSB4YXkgZHVuZyBjaG8sIGR1eWV0IGR1IGFu IGRhdSB0dSwgdGhpZXQga2UuLi4gRGFjIGJpZXQsIHZpZWMgdHJpZW4ga2hhaSBjaHUgdHJ1b25n IGR1bmcgbmdhbiBzYWNoIGRlIGdpYW0gZ2lhIHRodWUgc2FwIGNobyB0aWV1IHRodW9uZywgcXVh IHRoYW5oIHRyYSBwaGF0IGhpZW4gNiBobyBjaHVhIG5oYW4gZ2lhbSBnaWEhDQoNCi0gVHJvbmcg ZHUgYW4geGF5IGR1bmcga2h1IHRhaSBkaW5oIGN1IDE3LDMgaGEgdGFpIHBodW9uZyBBbiBQaHUs IEJpbmggS2hhbmgsIEhvaSBkb25nIGRlbiBidSB0aGlldCBoYWkgZ2lhaSBwaG9uZyBtYXQgYmFu ZyBRLjIgZGEga2hvbmcgdGh1YyBoaWVuIGR1bmcgY2FjIHF1eSBkaW5oIGN1YSBDaGluaCBwaHUs IEN0eSBRdWFuIGx5IG5oYSBRLjIgZGEgY2hpIHBodWMgdnUgYm9pIHRodW9uZyBzYWkgZ2FuIDE1 MCB0cmlldSBkb25nOyBjYWMgY29uZyB0eSB0dSB2YW4sIHRoaWV0IGtlIHRoYW0gZ2lhIGR1IGFu IGNvIG5oaWV1IHNhaSBwaGFtLi4uDQoNCi0gVGFpIGR1IGFuIGNhdSBLeSBIYSAocGh1b25nIFRo YW5oIE15IExvaSksICBjbyBuaGlldSBzYWkgc290IHRyb25nIHRoaWV0IGtlLCBtb3Qgc28gaGFu ZyBtdWMgdGhpIGNvbmcgc2FpIHZvaSBobyBzbyB0aGlldCBrZS4gDQoNCi0gVGFpIGR1IGFuIHhh eSBjaHVuZyBjdSBjYW8gY2FwIEFuIFBodSBHaWEgZG8gQ3R5IFFMIHZhIFBUTiBRLjIgbGFtIGNo dSBkYXUgdHUgZGEgdHUgeSBzdSBkdW5nIGdhbiA0LjAwMG0yIGRhdCBsYSB0YWkgc2FuIGNvbmcg a2hpIGNodWEgY28gcXV5ZXQgZGluaCBnaWFvIGRhdCwga2hvaSBjb25nIGtoaSBjaHVhIGR1b2Mg cGhlIGR1eWV0IGhvIHNvICB0aGlldCBrZSwga2hvbmcgbGFwIGtlIGhvYWNoIGRhdSB0dSBkdSBh bi4gDQoNCi0gSG9pIGRvbmcgZGVuIGJ1IGdpYWkgcGhvbmcgbWF0IGJhbmcgUS4yIGRhIGRlbiBi dSBzYWkgNDAwbTIgZGF0IGNobyAyIGRvaSB0dW9uZyB0cm9uZyBkdSBhbiAxMzEgaGEgdGFpIEFu IFBodSwgQW4gS2hhbmguDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTAzMS8yMDEwMDczMDAwNTg0My5hc3B4IFRUIC0gS04gLSBOViAzMC8wNy8yMDEwIDA6NTgg DQoNClRQIEhDTTogVGFwIHlvZ2EsIGhhbmcgbG9hdCBjaGFuIHRodW9uZyAtIE1vaSB0aGF5IGRh eSBtb3Qga2lldSANCg0KaHR0cDovL3VzLnZpZXRuYW1uZXQudm4veGFob2kvZG9pc29uZy8yMDA3 LzAzLzY2ODUyMi8gMDQ6NDAsIDAyLzAzLzIwMDcgKEdNVCs3KQ0KDQpUUCBIQ006IENvbmcgdHkg Q29uZyB2aWVuIGNheSB4YW5oIHRoYW5oIHBobyBuZ2hpZW0gdGh1IHRoYW5oIHRvYW4ga2hvaSBs dW9uZyB0aHVjIGhpZW4gDQpraG9uZyBkdW5nIGtob2kgbHVvbmcgdGh1YyB0ZSB0aGkgY29uZyAx MDEgdHkgZG9uZyANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkxMTE5MDkwNjE2NzQycDBj MTAwNS9iYXQta2hhbi1jYXAtbW90LWdpYW0tZG9jLXRodWUtc2F0LXRodS1naWV0LW5ndW9pLmh0 bSAxOS8xMS8yMDA5LCAwOToxMyhHTVQrNykNCg0KVFAgSENNOiAiSG9wIGRvbmciIGdpZXQgbmd1 b2kgZGlldCBraGF1IC0gTW90IGdpYW0gZG9jIHRodWUgc2F0IHRodSBnaWV0IGNhcCBwaG8gIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOTEwL1RhbmctMS1sYWktcmFpLXRh bmctMi10cnV5LXNhdC04NzU3MzQvIFZpbmggUGhhbiAgMDA6MDgsICAyOC8xMC8yMDA5IChHTVQr NykgDQoNClRQIEhDTTogUnVuZyByb24gLSAnVGFuZyAxJyBsYWkgcmFpLCAidGFuZyAyIi4uLiB0 cnV5IHNhdCANCg0KTWF1IHRodWFuIGNhaSBuaGF1IHZvaSBuZ3VvaSBuZ29pIGJhbiBuaGF1IGtl IGJlbiwgZHVvYyBjaHUgcXVhbiBjYW4gbmdhbiBuZW4gVGFuIGJvIA0KdmU7IGtob2FuZyAxNSBw aHV0IHNhdSBkZW0gdGhlbyAxIGNvbiBkYW8sIGN1bmcgMSBkdWkgY3VpIHR1IGNoZSBiYW5nIHNh dCwgcXVheSBsYWkgcXVhbiANCmN1IHRpZXAgdHVjIGdvaSBiaWEgdW9uZyBuaGFtIGdheSBnbyB2 b2kgSHVuZy4gRG8gdHUgdGluIHZvaSBzbyBodW5nIGtoaSB0cm9uZyB0YXkgbmVuIA0KVGFuIGN1 IG5nb2kgbmhpbiBzYW5nIGJhbiBIdW5nIGNodWkuLi4gdm8gdHUuIFRyb25nIGx1YyBxdWF5IHJh IGNobyBraGFjLCBUYW4gYmkgSHVuZyANCm5oYW8gc2FuZyBkYW0gMSBuaGF0IHZhbyBidW5nIHZh IGNoZXQgdHJlbiBkdW9uZyBkaSBjYXAgY3V1IQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v eGFob2kvcGhhcGx1YXQvMjAxMDAzL0RvLWJvLWJhbmctb3RvLWdpdW9uZy1zdW5nLXRydXktc2F0 LW5ndW9pLWdpdWEtdHJ1YS04OTk5NDIvIERhbSBEZSAgMTY6NTQsIDIxLzAzLzIwMTAgKEdNVCs3 KQ0KDQpUUC5IQ006ICdEbyBibycgYmFuZyBvdG8sIGdpdW9uZyBzdW5nIHRydXkgc2F0IG5ndW9p IGdpdWEgdHJ1YSAtIEN1b2MgYmFvIHRodSBjdWEgZ2lhbmcgaG8gTmFtIERpbmgNCg0KVGhlbSBt b3QgdnUgdHJ1eSBzYXQgInNhYyBtdWkiIHhhIGhvaSBkZW4gZGllbiByYSB0YWkgcXVhbiBUaHUg RHVjIFRQLkhDTS4gDQpCYW5nIG5ob20gZG8gTmd1eWVuIERhbmcgVHJ1bmcgY2FtIGRhdSBrZW8g dGhlbyAxMCBkYW4gZW0gZGkgb3RvIGtlbyBkZW4gdmEgZ2l1b25nIHN1bmcgZGllbiBkZSB0cnV5 IHNhdCBkb2kgdGh1LiANCiANClZ1IHZpZWMgeGF5IHJhIHZhbyBraG9hbmcgMTFoIG5nYXkgMjAv MywgZGEgbGFtIG5oaWV1IG5ndW9pIGRhbiBtb3QgcGhlbiANCmtpbmggaG9hbmcga2hpIGNodW5n IGtpZW4gbW90IG1hbiB0aGFuaCB0b2FuICJzYWMgbXVpIiB4YSBob2kgZGVuLg0KDQpUaGVvIG5o aWV1IG5ndW9pIGRhbiBkaWEgcGh1b25nLCBxdWFuIGNhIHBoZSAzQSBsYSBtb3QgZGlhIGRpZW0g a2hhIHBodWMgdGFwIA0Ka2hpIHRodW9uZyB4YXkgcmEgY2FjIGN1b2MgZHVuZyBkbyBnaXVhIGNh YyBiYW5nIG5ob20gbWFuZyB0aW5oIGNoYXQgY29uIGRvLCANCnhhIGhvaSBkZW4uIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjgvMjAxMDA3MTExNjQ3MTAu YXNweCAxMS8wNy8yMDEwIDE2OjQ3DQoNClRQIEhDTTogQmFuZyBuaG9tIGx1dSBtYW5oIGRhbiBj YW5oIGRlIGhpZXAgZGFtLCBjdW9wIGN1YSAgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2hjbS8y MDEwMDkvVHJvbi10aHVlLWhvbi1jaHVjLXR5LWRvbmctdGFpLWtoYWNoLXNhbi1lcXVhdG9yaWFs LTkzNzQ0Ny8gMTk6MzIsICAyNC8wOS8yMDEwIChHTVQrNykNCg0KVFAuSENNOiBLaGFjaCBzYW4g NSBzYW8gdHJvbiB0aHVlIGhvbiBjaHVjIHR5IGRvbmcgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAyNDEwMjcxNi5hc3B4IFRyaSBRdWFuZyAy NC8xMC8yMDEwIDEwOjI3IA0KDQpUUCBIQ006IDU1MCB4ZSB0dSB0YXAgZ2F5IG1hdCB0cmF0IHR1 ICANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDMwLzIwMTAw NzIzMTYxMTQ5LmFzcHggIDI0LzA3LzIwMTAgMTY6MTEgDQoNClRQIEhDTTogUXVhaSB4ZSBraHV5 bmggZGFvIGRlbSBTYWkgR29uIC0gIlllbmcgaHVuZyIgeGEgbG8geGUgdG9hYyBtYW4gZGVtIC0g IkNvaSB0cm9pIGJhbmcgdnVuZyINCg0KTmd1b2kgZGFuIHJhdCBidWMgeHVjIHRydW9jIHRpbmgg dHJhbmcgY2EgbmdhbiAicXVhaSB4ZSIsIGNhYyB0aGFuaCB0aGlldSBuaWVuIHR1IHRhcCBkdWEg DQp4ZSBoYW5nIGRlbTsgbGFuZyBsYWNoLCBkYW5oIHZvbmcsIG5ldCBwbyB0aGF1IGRlbSBzdW90 IHNhbmcsIGdheSBuZ3V5IGhpZW0sIG1hdCBhbiBuaW5oIHRyYXQgdHUuLi4gDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8yMDEwMDkyMzA5MjMyMS5hc3B4 IDIzLzA5LzIwMTAgOToyMyANCg0KVFAuSENNOiBOYW4gZHVhIHhlIG5nYXkgY2FuZyB0YW5nIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDUvMjAxMDExMDIy MzI0MDMuYXNweCBEYW0gSHV5IC0gSG9haSAgTmFtIDAyLzExLzIwMTAgMjM6MjQgDQoNClRQIEhD TTogQ1NHVCBkaSB0cmUsIHZlIHNvbSwgbGEgY2EgcXVhbiBhbi4uLiAgDQoNCihBbmg6IENTR1Qg dnVpIHZlIHRhbSB0cm9uZyBnaW8gbGFtIHZpZWMgbyBxdWFuIGNhIHBoZSAtIGFuaDogRGFtIEh1 eSkgDQoNCk5oaWV1IG5nYXkgZ2hpIG5oYW4gdGh1YyB0ZSwgUFYgVGhhbmggTmllbiBuaGFuIHRo YXkgYmVuIGNhbmggbmh1bmcgQ1NHVCBjYW4gbWFuIA0Kdm9pIGNvbmcgdmllYywgdGh1YyBoaWVu IGR1bmcgdGhvaSBnaWFuLCBkaWV1IGxlbmggdGhpIHZhbiBjb24gbmh1bmcgQ1NHVCBjaGVuaCBt YW5nLCANCmJvIGNob3QuLi4gbWFjIHRpbmggaGluaCBnaWFvIHRob25nIGxvbiB4b24uIA0KDQpI b24gMSB0aGFuZyB0cnVvYywgUGhvbmcgQ2FuaCBzYXQgZ2lhbyB0aG9uZyAoQ1NHVCkgZHVvbmcg Ym8gLSBkdW9uZyBzYXQgKFBDNjcpIA0KQ29uZyBhbiBUUC5IQ00gdGllcCBuaGFuIGhvbiAyMDAg Q1NHVCBibyBzdW5nIGNobyBjYWMgZG9pLiAiRGllcCBraHVjIiBsdWMgbHVvbmcgDQptb25nLCB0 aGlldSB0dSBkbyBraG9uZyBjb24gZHVvYyBuaGFjIGRlbi4gTmh1bmcgdGh1YyB0ZSBnaWFvIHRo b25nIHRyZW4gZHVvbmcsIHRhaSANCmNhYyBnaWFvIGxvIHJhdCBsb24geG9uIG1hIGtob25nIHRo YXkgYm9uZyBkYW5nIENTR1QgZGF1LCBkdSBxdXkgZGluaCBjdWEgbmdhbmggbGEgDQpwaGFpIHR1 YW4gdHJhLCBraWVtIHNvYXQgZ2lhbyB0aG9uZyAyNC8yNC4NCg0KVGEgdGEgYW4gc2FuZy4uLg0K DQpUaGVvIGNhbiBibyBtb3QgZG9pIENTR1QgbyB0cnVuZyB0YW0gdGhhbmggcGhvLCB2aWVjIGFu IHNhbmcgdGhpIG1vaSBDU0dUIHBoYWkgdHUgbG8gDQpsaWV1IHRydW9jIGRvLCBraG9uZyBkdW9j IHBoZXAgdHJvbmcgbHVjIHRoaSBoYW5oIG5oaWVtIHZ1IGJvIGRpIGFuLi4uIFF1eSBkaW5oIGxh IHZheSANCm5odW5nIGNodW5nIHRvaSByYXQgbmhpZXUgbGFuIHRoYXkgY2FjIENTR1QgYm8gY2Eg dHJ1YyBkaSBhbiBzYW5nLg0KDQpTYW5nIDI0LjEwLCB0cm9uZyB2YWkgdGh1YyBraGFjaCwgY2h1 bmcgdG9pIGRhIGNvIG1hdCB0YWkgcXVhbiBhbiBraHVhdCB0cm9uZyBraHVvbiB2aWVuIA0KdHJ1 b25nIG5nb2FpIG5ndSBIYWkgRGFuZyBvIG1hdCB0aWVuIGR1b25nIERpZW4gQmllbiBQaHUgKGdh biBnaWFvIGxvIERpZW4gQmllbiBQaHUgLSANCkxlIFF1eSBEb24sIFEuMykuIEtodW9uIHZpZW4g cXVhbiBraGEgcm9uZywgZHVvYyBiYW8gYm9jIGJvaSA0IGJ1YyB0dW9uZyBjYW8gbmVuIA0KYmVu IG5nb2FpIG5oaW4gdmFvIGNoYW5nIHRoYXkgZ2kuIENvIGxlIGRheSBsYSBkaWV1IGtpZW4gbHkg dHVvbmcgZGUgbW90IHNvIENTR1QgRG9pIA0KQmFuIENvICJudXAiIHZhbyBhbiBzYW5nLCB0cmFu aCBzdSBuaG9tIG5nbyBjdWEgbmd1b2kgZGFuIGN1bmcgbmh1IGx1YyBsdW9uZyBraWVtIHRyYSBk aWV1IGxlbmguIA0KDQpNb2kga2hvYW5nIDcgZ2lvIDQwIHBodXQsIHRyb25nIGtoaSBnaWFvIHRo b25nIG5nb2FpIGR1b25nIERpZW4gQmllbiBQaHUgY29uIGtoYSBsb24gDQp4b24sIDQgQ1NHVCB0 cmVuIDIgY2hpZWMgbW8gdG8gNTFBMSAtIDAzNDYgdmEgNTFBMSAtIDA0NzkgY2hheSBhbyB2YW8g cXVhbi4gRHVuZyANCnhlLCA0IENTR1QgdGhhbiBuaGllbiB2YW8gYmFuIGFuIGdvaSBtb24sIHRy b25nIGx1YyBhbiBjdW9pIG5vaSByYXQgdnVpIHZlLiBEZW4gDQo4IGdpbyBjdW5nIG5nYXksIDIg Q1NHVCBkaSB0cmVuIGNoaWVjIG1vIHRvIDUxQTEgLSAwMzI0IGN1bmcgdHJvIHRvaSwgdmFvIG5n b2kgY3VuZyBiYW4gdm9pIA0KNCBDU0dUIHRydW9jIGRvLiBDbyBsZSBkb2kgZG9uZyBuZ2hpZXAg YW4gc2FuZyB4b25nIG1vaSB4dWF0IHBoYXQgbmVuIDQgQ1NHVCB2YW8gDQp0cnVvYyBraG9uZyBt YXkgbm9uZyB2b2ksIHZ1YSB1b25nIG51b2MgdnVhICJ0YW0iLiBIb24gMzAgcGh1dCBzYXUsIGNh IDYgQ1NHVCBtb2kgDQpjaGl1IHJ1dCBkaSBsYW0gbmhpZW0gdnUuIA0KDQpLaG9hbmcgNyBnaW8g NTAgc2FuZyAyNi4xMCwgY2h1bmcgdG9pIHF1YXkgbGFpIHF1YW4gdHJlbiB2YSBwaGF0IGhpZW4g MyBtbyB0byBCS1MgdmFuIA0Kbmh1IHNhbmcgMjQuMTAgZHVuZyB0cnVvYyBxdWFuIHR1IGtoaSBu YW8uIDYgQ1NHVCBkYSBhbiBzYW5nIHhvbmcgbmh1bmcgdmFuIG5nb2kgDQoidGFtIiBjaHV5ZW4g cm9tIHJhIG1haSBkZW4gOCBnaW8gMzAgcGh1dCBtb2kgdGllcCB0dWMgcmEgZHVvbmcuLi4gVHVv bmcgdHUsIGdhbiA4IGdpbyANCm5nYXkgMjcuMTAsIDYgQ1NHVCBkaSB0cmVuIDMgbW8gdG8gNTFB MSAtIDAzNDYsIDUxQTEgLSAwNDc5LCA1MUExIC0gMDQ5MCwgc2FjIHBodWMgDQpjaGluaCB0ZSBu Z29pIGFuIHNhbmcgeG9uZywgdGFuIGdhdSBkZW4gOCBnaW8gMzUuLi4gDQoNCi4uLi5jYSBwaGUg dHJvbmcgZ2lvIGNhbyBkaWVtDQoNCjYgZ2lvIHNhbmcgMzAuMTAsIGNodW5nIHRvaSBjbyBtYXQg dGFpIERvaSBDU0dUIFRhbiBTb24gTmhhdCAobmFtIHRyZW4gZHVvbmcgVHJhbiANCkh1eSBMaWV1 LCBRLlBodSBOaHVhbikuIEx1YyBuYXkgdHJvaSBkYW5nIG11YSBuaG8gbmVuIGRlbiA2IGdpbyAx NSBwaHV0LCBoYW5nIGNodWMgDQp4ZSBtbyB0byBkYWMgY2h1bmcsIG1vaSB4ZSBjbyBoYWkgQ1NH VCBtb2kgcm8gZ2EgcGhvbmcgZGkgbGFtIG5oaWVtIHZ1LiBDaHVuZyB0b2kgDQpiYW0gdGhlbyBt b3QgeGUgY2hheSBkb2MgZHVvbmcgTmd1eWVuIFZhbiBUcm9pLCB2YW8gZHVvbmcgQ29uZyBIb2Eg dmEgZHVuZyBsYWkgbyANCmdpYW8gbG8gSG9hbmcgSG9hIFRoYW0gLSBDb25nIEhvYSBkZSBkaWV1 IHRpZXQgIGdpYW8gdGhvbmcuIE11YSBjYW5nIG5hbmcgaGF0IGhvbiANCm5odW5nIHRhaSBjYWMg Z2lhbyBsbyB0dSB2b25nIHhvYXkgQ29uZyBIb2EgZGVuIGR1b25nIFRydW9uZyBDaGluaCB0aGF5 IGx1YyBsdW9uZyANCkNTR1QgdmFuIGR1bmcgY2hvdCBuZW4gZ2lhbyB0aG9uZyBraGEgdHJhdCB0 dS4gQ2h1YSBkZW4gOCBnaW8sIDIgQ1NHVCByb2kgY2hvdCBIb2FuZyANCkhvYSBUaGFtIC0gQ29u ZyBIb2EgKFEuVGFuIEJpbmgpIGNoYXkgdmUgaHVvbmcgZHVvbmcgVHJ1b25nIENoaW5oLiBLaGkg ZGVuIGdpYW8gDQpsbyBUYW4gIEt5LVRhbiBRdXkgLSBUcnVvbmcgQ2hpbmgsIGNoaWVjIG1vIHRv IGRvdCBuZ290IG9tIGN1YSwgZGkgdmFvIG1vdCBjb24gaGVtIA0Kc2F1IHRyZW4gZHVvbmcgVGFu IEt5LVRhbiBRdXkgKFEuVGFuIEJpbmgpLCByb2kgY2h1aSB0b3QgdmFvIHF1YW4gY2EgcGhlIENh eSBYb2FpLCBibyANCm1hYyBnaWFvIHRob25nIG5nb2FpIGR1b25nIGJhdCBkYXUgbG9uIHhvbiB2 aSBraG9uZyBjbyBDU0dULg0KDQooQW5oOiBDU0dUIGN1YSBEb2kgQmFuIENvIGRhbmcgbmdvaSBk aWVtIHRhbSkgDQoNCktoaSAyIENTR1QgbmF5IHRvaSwgdHJvbmcgcXVhbiBkYSBjbyA0IG1vIHRv IGRhYyBjaHVuZyBjdWEgQ1NHVCBkYXUgdHUgYmFvIGdpby4gDQpLaG9hbmcgNi03IENTR1QgZGFu ZyBuZ29pIGFuIHNhbmcsIHVvbmcgbnVvYywgbm9pIGNodXllbiB2dWkgdmUuIExhdCBzYXUsIDIg dHJvbmcgc28gDQpDU0dUIGRlbiB0cnVvYyBkdW5nIGRheSBsZW4geGUgdm90IGRpLiBOaG9tIENT R1QgY29uIGxhaSB0aWVwIHR1YyBuZ29pIG5vaSBjaHV5ZW4gDQpyb20gcmEsIGNobyBiYW4gZGVu IHNhdSBhbiBzYW5nLCB1b25nIGNhIHBoZSB4b25nIG1vaSBsdWMgdHVjIHJvaSBraG9pIHF1YW4g Y2hheSByYSANCmR1b25nIFRydW9uZyBDaGluaCB2YSBDb25nIEhvYSB0dWFuIHRyYSBraWVtIHNv YXQuLi4gIlNhbmcgbmFvIG1heSBvbmcgQ1NHVCBkaSB4ZSANCm1vIHRvIGNoYXkgYW0gYW0gdmFv IHF1YW4iLCBtb3Qgbmd1b2kgZGFuIG8gZGF5IG5vaS4NCg0KRGkgdW9uZyBudW9jIHJvaS4uLiB2 ZSENCg0KKEFuaDogQ1NHVCBjdWEgRG9pIFRhbiBTb24gTmhhdCB2YW8gcXVhbiBjYSBwaGUgQ2F5 IFhvYWkpIA0KDQpLaG9hbmcgMTAgZ2lvIG5nYXkgMzAuMTAsIGNodW5nIHRvaSBkYSBjbyBtYXQg dGFpIHF1YW4gY2EgcGhlICJjb2MiIHRydW9jIGNvbmcgY3VhIERvaSANCkNTR1QgSGFuZyBYYW5o LCBuYW0gZHVvaSBjaGFuIGNhdSBCaW5oIFRyaWV1IEkgKFAuSGllcCBCaW5oIENoYW5oLCBRLlRo dSBEdWMpLCANCmNobyB0aGVvIGNoYW4gQ1NHVCBkaSBjYSAyIHRyb25nIG5nYXkuIFRyb2kgbXVh IGxhbSByYW0sIDQgQ1NHVCBtYWMgc2FjIHBodWMsIA0Ka2hvYWMgYW8gbXVhIGJlbiBuZ29haSBk aSAyIHhlIG1vIHRvIGRhYyBjaHVuZyA1MUExIC0gMDM1NCwgNTFBMSAtIDAzMTUgY2hheSB2b2kg dG9jIA0KZG8gMjAgLSAzMCBrbS9naW8gbmVuIGNodW5nIHRvaSBkZSBkYW5nICJkZW8gYmFtIi4g SGFpIG1vIHRvIGRpIGRlbiBnaWFvIGxvIE5ndXllbiBYaSANCi0gWG8gVmlldCBOZ2hlIFRpbmgs IHRoaSBtb3QgdHJvbmcgMiBiYW0gY29pIG5odSB2ZSByYSBoaWV1IGdpIGRvIGNobyAyIGRvbmcg bmdoaWVwIA0KZGFuZyBkaWV1IHRpZXQgdGFpIGRheS4gQ3UgbmdoaSA0IENTR1Qgc2UgY2hheSBy YSBkdW9uZyBOZ3V5ZW4gSHV1IENhbmggdHVhbiB0cmEgDQpraWVtIHNvYXQsIG5odW5nIGJhdCBu Z28gY2EgMiBtbyB0byBxdWVvIHRyYWkgY2hheSB2ZSBodW9uZyBUaGFuaCBEYSB2b2kgdG9jIGRv ICJzYW4gDQpiYXQgY3VvcCIuIENodW5nIHRvaSBjbyBiYW0gdGhlbyB2YSAibmdhIG5ndWEiIGto aSB0aGF5IGNhIDIgbW8gdG8gdGhhbiBuaGllbiBjaGF5IHZhbyANCnF1YW4gY2EgcGhlIFRpIEdv biAobG8gMywgY3UgeGEgVGhhbmggRGEpLiBIbyB2YW8gcXVhbiBnb2kgdGh1YyBhbiwgdGh1YyB1 b25nIHJhIG5nb2kgDQp2dWEgYW4gdnVhIG5vaSBjdW9pIHRob2FpIG1haS4gDQoNCihBbmg6IFhl IG1vIHRvIHZhbyBxdWFuIGNhIHBoZSBUaSBHb24gLSBhbmg6IERhbSBIdXkgLSBIb2FpICBOYW0p IA0KDQpLaG9hbmcgMzAgcGh1dCBzYXUsIDIgQ1NHVCBkdW5nIGNob3QgdGFpIGdpYW8gbG8gTmd1 eWVuIFhpIC0gWG8gVmlldCBOZ2hlIFRpbmggaG9pIA0KbmF5IGRpIHhlIG1vIHRvIDUxQTEgLSAw NzA3IGFvIHZhbyBxdWFuLCBtYWMga2UgY2hvIHRpbmggaGluaCBnaWFvIHRob25nIGRhbmcgcm9p IHJhbSANCm5nb2FpIGtpYS4uLiBMdWMgbmF5LCBjaHVuZyB0b2kgbW9pIGhpZXUgNCBDR1NUIGto aSBkaSBxdWEgY2hvdCBiYW0gY29pIGd1aSB0aG9uZyBkaWVwIA0KImNhIHBoZSIgY2hvIDIgQ1NH VC4gDQoNCktoaSBkYSB0dSBkdSAiYW5oIGhhbyIsIDYgQ1NHVCBuZ29pIHVvbmcgY2EgcGhlLCAi dGFtIiBkZW4gZ2FuIDEyIGdpbyB0aGkgMiBhbmggbW9pIA0KY2hpdSBsZW4geGUgcmEga2hvaSBx dWFuIGNoYXkgdGhhbmcgdmUgRG9pIENTR1QgSGFuZyBYYW5oLiBMdWMgZG8gZG9uZyBobyBjdWEg Y2h1bmcgDQp0b2kgZGllbSAxMiBnaW8gZHVuZy4gIkR1YSIgMiBDU0dUIG5heSB2ZSBkZW4gRG9p IENTR1QgSGFuaCBYYW5oLCBjaHVuZyB0b2kgdGllcCANCnR1YyBkaSB0aW0gMiB4ZSBtbyB0byBj b24gbGFpIHRoaSBjaGkgdGhheSAyIENTR1QgZGkgbW8gdG8gNTFBMSAtIDA3MDcgcXVheSB2ZSBs YWkgZ2lhbyANCmxvIGN1IHRpZXAgdHVjIGRpZXUgdGlldCBnaWFvIHRob25nDQoNClRoZW8gbW90 IGNhbiBibyBQQzY3LCB0aG9uZyB0aHVvbmcgY2FjIGRvaSBDU0dUIG1vaSBuZ2F5IGNoaWEgcXVh biByYSBsYW0gNiBjYSBkaSANCnR1YW4gdHJhIGtpZW0gc29hdDogdHUgNiAtIDEwIGdpbywgdHUg MTAgLSAxNCBnaW8sIHR1IDE0IC0gMTggZ2lvLCB0dSAxOCAtIDIyIGdpbywgdHUgMjIgLSAyIGdp byANCnNhbmcgaG9tIHNhdSwgdHUgMiAtIDYgZ2lvLi4uIE1vdCBDU0dUIHBoYWkgdGhhbSBnaWEg MiBjYS9uZ2F5LiANCg0KR2lvIGNhbyBkaWVtIHRodW9uZyBkdW9jIHRpbmggdHUgNiAtIDggZ2lv IHZhIHR1IDE2IC0gMTggZ2lvICh0dSAxMCAtIDEyIGdpbyBjdW5nIGR1b2MgDQp4ZW0gbmEgbmEg bmh1IGdpbyBjYW8gZGllbSBib2kgdmkgZGF5IGxhIGx1YyBob2Mgc2luaCB0YW4gdHJ1b25nLCBu Z3VvaSBkYW4gZGkgbGFtIHZlIA0KbmhhIG5naGkgdHJ1YSwgeGUgdGFpIGR1b2MgcGhlcCB2YW8g dHJ1bmcgdGFtIHRoYW5oIHBobyksIGJhdCBidW9jIENTR1QgcGhhaSBkdW5nIGNob3QgDQooZ2lh byBsbyBjbyBsdXUgbHVvbmcgcGh1b25nIHRpZW4gZG9uZywgdGh1b25nIGhheSB4YXkgcmEgdW4g dGFjIGdpYW8gdGhvbmcpIGRpZXUgdGlldCANCmdpYW8gdGhvbmcuIFNhdSBnaW8gY2FvIGRpZW0s IG5ldSBnaWFvIGxvIHRob25nIHRob2FuZyBDU0dUIG1vaSBkdW9jIHBoZXAgZGkgdHVhbiB0cmEg DQpraWVtIHNvYXQgeHUgbHkgeGUgdmkgcGhhbS4uLiAiTm9pIHRvbSBsYWkgbGEgQ1NHVCBwaGFp IGNvIG1hdCAyNC8yNCBkZSBkaWV1IHRpZXQsIHR1YW4gDQp0cmEsIGtpZW0gc29hdCBnaWFvIHRo b25nIHZhIGtob25nIGx5IGRvIGdpIHR1IHkgcm9pIGRpYSBiYW4gdHJvbmcgY2EgdHJ1YyIsIHZp IGNhbiBibyBuYXkgbm9pLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFn ZXMvMjAxMDQzLzIwMTAxMDE4MDExMzEwLmFzcHggVGhhbmggVHVuZyAxOC8xMC8yMDEwIDE6MTMg DQoNClRQIEhDTTogRHVvbmcgZGF5IGxheSB4YWMgbyBiZW5oIHZpZW4/IC0gVGh1IHR1YyAiaGFu aCBjaGluaCIgIA0KICANCkdpYSBkaW5oIG1vdCBWaWV0IGtpZXUgQ2FuYWRhIHJhdCBidWMgeHVj IGNobyByYW5nIGhvIGJpIGdvaSB5IGNoaSA2LjUwMCBVU0QgZGUgbGF5IA0KeGFjIG5ndW9pIHRo YW4gdHUgdm9uZyB0YWkgYmVuaCB2aWVuLCBraGkga2hvbmcgZGFwIHVuZyB0aGkgYmkgbGFtIGto by4uLiANCg0KR29pIHkgdHJhbmcgdHJvbiENCg0KRGVtIDguOSwgb25nIEguVC5OIChzaW5oIG5h bSAxOTUzLCBWaWV0IGtpZXUgQ2FuYWRhLCB0YW0gdHJ1IFEuNCwgVFAuSENNKSBsZW4gY29uIA0K bmhvaSBtYXUgY28gdGltLCBkdW9jIGR1YSB2YW8gY2FwIGN1dSBvIG1vdCBiZW5oIHZpZW4gKEJW KSB0YWkgUS4yLiBCYWMgc2kgeGFjIGRpbmggDQpvbmcgSC5ULk4gdHUgdm9uZyB0cnVvYyBraGkg dmFvIHZpZW4uIA0KDQpUaGVvIHBoYW4gYW5oIGN1YSBnaWEgZGluaCBvbmcgTi4sIG5nYXkgc2F1 IGtoaSBvbmcgTi4gdHUgdm9uZywgY28gbW90IGNhbiBibyBDb25nIGFuIA0KUS4yLCB0ZW4gRC4s IHZhbyBsYW0gdmllYyB2b2kgQlYgdmEgY28gaG9pIHF1YSBnaWEgZGluaCB2ZSB0aWVuIHN1IGJl bmggY3VhIG9uZyBOLiBPbmcgDQpELiBiYW8gdm9pIG5ndW9pIG5oYSBvbmcgTi4gY2hvIGNobyB4 YWMgcXVhIEJWIFEuNywgcXVhIGRvIHNlIGNvIG5ndW9pIGh1b25nIGRhbiBkYXkgDQpkdSB2ZSB0 aHUgdHVjIHRyaW5oIGJhbyB2YSBsYW0gY2FjIGJ1b2MgdGllcCB0aGVvIGRvaSB2b2kgbmd1b2kg bnVvYyBuZ29haSBtYXQgdGFpIFZOLi4uDQoNClNhdSBkbywgbW90IGNoaWVjIHhlIGR1b2MgZGll dSB0b2kgdHUgYmVuIG5nb2FpIChraG9uZyBwaGFpIHhlIEJWKSBkZSBjaG8geGFjIG9uZyBOLiAN CmRlbiBCViBRLjcsIGRpIHRoZW8geGUgY29uIGNvIGhhaSBuZ3VvaSBkYW4gb25nLiBIYWkgbmd1 b2kgbmF5IGRhdCB2YW4gZGUgdmUgdmllYyBsYW0gDQp0aHUgdHVjIHRyb24gZ29pIGRlIGxheSB4 YWMgb25nIE4uIHJhIHZvaSAzIG11YyBnaWE6IDQuNTAwIC0gNS41MDAgLSA2LjUwMCBVU0QgKGto b25nIA0KYmFvIGdvbSB0aWVuIGRhdCBtbykgdmEga2hhbmcgZGluaCAidHJvbmcgbW90IG5nYXkg bGEgeG9uZyB0YXQiLi4uDQoNCkJhbiBkYXUsIGNvbiBnYWkgb25nIE4uIG8gbnVvYyBuZ29haSBn b2kgdmUgZG9uZyB5IHZvaSBnaWEgNi41MDAgVVNELCBuaHVuZyBzYXUgZG8gDQpwaGlhIGdpYSBk aW5oIG9uZyBiYW4gYmFjIHZhIGtob25nIGNoYXAgbmhhbiB2aWVjIGxvIGRpY2ggdnUgdm9pIG1v dCBjYWkgZ2lhIHF1YSBjYW8gDQpuaHUgdGhlLiAiQ28gbGUgdmkgY2h1bmcgdG9pIGtob25nIGNo YXAgdGh1YW4gZGljaCB2dSBsYXkgeGFjIGR1b2MgdGluaCBiYW5nIFVTRCBjYW8gDQpjaG90IHZv dCBkbywgbmVuIHNhdSBkbyBkYSBiaSBnYXkga2hvIGtoYW4sIGtlbyBkYWkgdGhvaSBnaWFuIGR1 b2MgbmhhbiB4YWMiLCBuZ3VvaSB0aGFuIA0Kb25nIE4uIHRyaW5oIGJheSB2b2kgVGhhbmggTmll bi4NCg0KQmkgbGFtIGtobz8NCg0KVGhlbyBuaGlldSBiYWMgc2kgbGFtIGxhdSBuYW0gbyBraG9h IGNhcCBjdXUgY2FjIEJWLCB2b2kgbmh1bmcgdHJ1b25nIGhvcCB0dSB2b25nIA0Ka2hvbmcgcm8g bmd1eWVuIG5oYW4sIGNvIG5naGkgbmdvLCB0aGkgY28gcXVhbiBjb25nIGFuIHNlIHRodSBseSwg bGFtIHJvLiBUdXkgbmhpZW4sIA0KdGh1b25nIGxhIGdpYWkgcXV5ZXQgbmdheSB0cm9uZyBuZ2F5 IChrZSBjYSBjbyBnaWFpIHBoYXUgdHUgdGhpKSwgY2h1IGtob25nIGRlIGtlbyBkYWkuLi4gDQoN CkdpYSBkaW5oIG9uZyBOLiBjaG8gcmFuZyBvbmcgRC4ga2hvbmcgdGFuIHRpbmggaHVvbmcgZGFu IHJvIHJhbmcgdmUgdGh1IHR1YyBkZSBuaGFuIA0KeGFjLCBtYSBjbyB0aW5oIGxhbSBrZW8gZGFp IHRob2kgZ2lhbiwgZGFuIGRlbiAgdmllYyBvbmcgTi4gbWF0IG5nYXkgOC45IG5odW5nIG1haSBk ZW4gDQpkZW0gMTMuOSBnaWEgZGluaCBtb2kgZHVhIGR1b2MgeGFjIG9uZyB2ZSBkZSBtYWkgdGFu Zy4gDQoNCiJTYXUga2hpIGNodW5nIHRvaSBraG9uZyBkb25nIHkgbGFtIGRpY2ggdnUgNi41MDAg VVNELCBvbmcgRC4gY28gaGVuIGdpYSBkaW5oIGRhdSBnaW8gDQpjaGlldSA5LjkgbGVuIFVCTkQg UC5UaGFvIERpZW4gKFEuMiksIGNvbiBvbmcgRC4gZGVuIENvbmcgYW4gUC5UaGFvIERpZW4gbGF5 IGNhYyANCmdpYXkgdG8gbGllbiBxdWFuLCByb2kgaGFpIGJlbiBnYXAgbmhhdSBvIFVCTkQgcGh1 b25nIGRlIGxhbSBiYW8gdHUuIE5odW5nIGRlbiAxNCANCmdpbyBuZ2F5IDkuOSwgY2h1bmcgdG9p IGdvaSBkaWVuIHRoaSBkaWVuIHRob2FpIG9uZyBELiB0YXQgbWF5LiBMdWMgMTQgZ2lvIDMwIGdv aSBkdW9jIHRoaSANCm9uZyBELiBsYWkgYmFvIGdpYSBkaW5oIGN1IGxlbiBDb25nIGFuIFAuVGhh byBEaWVuIHhpbiBibyBobyBzbyBwaG90byByb2kgY2FtIHRoYW5nIGxlbiANClVCTkQgcGh1b25n LiBPbmcgRC4gY28gbm9pOiAiQ3UgbGFtIHRodSBkaSwgY29pIGNvIGR1b2Mga2hvbmc/IiwgbWEg c2F1IG5heSBjaHVuZyANCnRvaSBtb2kgaGlldSBkdW9jIG5ndSB5IGN1YSBjYXUgbm9pIG5heS4g THVjIGRvLCBuZ2hlIHRoZW8gbG9pIG9uZyBELiwgY2h1bmcgdG9pIGxlbiANCkNvbmcgYW4gUC5U aGFvIERpZW4geGluIGJvIGhvIHNvIHBob3RvIHRoaSBjb25nIGFuIHBodW9uZyBiYW8ga2hvbmcg ZHVvYyB2aSB0aGVvIHF1eSANCmRpbmggcGhhaSBkaWNoIHRoYW4gb25nIEQuIGxhIG5ndW9pIHRy dWMgdGllcCB0aHUgbHkgdnUgdmllYyBtb2kgbGF5IGR1b2MuIFZpIGNhbiBibyBjb25nIA0KYW4g cGh1b25nIHNhdSBraGkgZ2lhaSB0aGljaCBjdW5nIGxheSBsYW0gbGEgdmUgY2FjaCBodW9uZyBk YW4gY3VhIG9uZyBELiBDaHVuZyB0b2kgZ29pIA0KbGFpIGNobyBvbmcgRC4gdGhpIG5oYW4gZHVv YyBjYXUgdHJhIGxvaSAic2FuZyBtYWkgbGVuIENvbmcgYW4gUS4yISIuIFNhbmcgY2hpZXUgaG9t IA0Kc2F1ICgxMC45LCB0dWMgdGh1IHNhdSksIGNodW5nIHRvaSBsZW4gTGFuaCBzdSBxdWFuIENh bmFkYSBsYW0gdGh1IHR1Yywgbmh1bmcgcm9pIHZhbyANCmN1b2kgdHVhbiwgY28gcXVhbiBuYXkg bmdoaSwgZGVuIHRodSBoYWkgbmdheSAxMy4xMCBtb2kgbGFtIHZpZWMgbGFpIiwgbmd1b2kgbmhh IG9uZyBOLiANCnRodWF0IGxhaS4NCg0KVmEga2UgdGllcDogIkRlbiBuZ2F5IDEyLjksIHF1YSBk aWVuIHRob2FpLCBjaHVuZyB0b2kgY28gbm9pIHZvaSBvbmcgRC4gcmFuZyBuZ2F5IG1haSANCjEz LjkgY2h1bmcgdG9pIGRlbSBkZW4gY2FjIGdpYXkgdG8gbGllbiBxdWFuIGRlIGR1YSB4YWMgdmUu IE5odW5nIG9uZyBELiB0cmEgbG9pIG1vdCANCmNhdSB0aGF0IGxhbmggbHVuZzogTmdheSBtYWkg a2hvbmcgbGF5IHhhYyBkdW9jLCB2aSB0b2kgbmdoaSBkdWEgdm8gZGkga2hhbSBiZW5oLiBIb20g DQpuYXkgbGEgbmdheSB0cnVjIGN1YSB0b2ksIG1haSAxMy45IHRvaSBuZ2hpLiBOZ2hlIGNhdSBu b2kgZG8sIGNodW5nIHRvaSBraG9uZyBraW0gbmVuIA0KZHVvYyBidWMgeHVjLCB2YSBwaGFuIHVu ZyBsYWk6IE5ldSBhbmggbmdoaSB0aGkgY29uZyBhbiBxdWFuIHBoYWkgY28gbmd1b2kga2hhYyB0 aGF5IA0KYW5oIGdpYWkgcXV5ZXQgY29uZyB2aWVjLCB0YWkgc2FvIGNodW5nIHRvaSBwaGFpIHBo dSB0aHVvYyB2YW8gYW5oPyBEZW4gMTUgZ2lvIGNoaWV1IA0KMTMuOSwgY2h1bmcgdG9pIGRlbSBj YWMgZ2lheSB0byBsaWVuIHF1YW4gZGVuIGR1YSBjaG8gb25nIEQuIGRlIGxhbSB0aHUgdHVjIGxh eSB4YWMgdmEgDQprZW0gdGhlbyBsb2kgeGluIGtob25nIGxhbSBnaWFpIHBoYXUgdHUgdGhpLCBj byBjYSBjb25nIGhhbSBjdWEgTGFuaCBzdSBxdWFuIENhbmFkYSANCmN1bmcgZ2hpIG5ndXllbiB2 b25nIGN1YSBnaWEgZGluaCB4aW4ga2hvbmcgZ2lhaSBwaGF1IHR1IHRoaSwgbmh1bmcgb25nIEQu IG5vaSBkYXkgbGEgDQp5ZXUgY2F1LCBjaHUga2hvbmcgcGhhaSBtZW5oIGxlbmgsIHZhIGJhbyBn aWEgZGluaCBuZ29pIGNobyBkZSBvbmcgZGkgdHJpbmggY2FwIHRyZW4uIA0KDQpDaG8gZGVuIGhv biAxNyBnaW8ga2hvbmcgdGhheSBnaSwgY2h1bmcgdG9pIGdvaSBjaG8gb25nIEQuIHRoaSBvbmcg bm9pICIxOSBnaW8gZ2lhIGRpbmggDQpxdWEgQlYgUS43IGRlIGdpYWkgcXV5ZXQgbGF5IHhhYyBy YS4uLiIuIFNhdSBkbywgb25nIEQuIGN1bmcgdmFpIG5ndW9pIG51YSBkaSB4ZSBtYXkgZGVuIA0K QlYgUS43LiBMdWMgbmF5LCBoYWkgbmd1b2kgZGFuIG9uZyBkYXQgdmFuIGRlIGxvIGRpY2ggdnUg bm9pIHRyZW4gY3VuZyBjbyBtYXQiLiBRdWEgDQpraGUgY3VhIG5oYSB4YWMsIG5odW5nIG5ndW9p IHRoYW4gb25nIE4uIHRoYXkgbW90IHNvIG5ndW9pIGN1YSBzbywgbG9uZyBuZ3VjLCBwaGFuIA0K YnVuZyBjdWEgb25nIG5lbiB0YSBob2EgZGllbiB0aG9haSB2YW8gdHJvbmcgY2hvIG9uZyBELiBk ZSBwaGFuIHVuZyB2ZSB2aWVjIHRhaSBzYW8gZ2lhaSANCnBoYXUgdHUgdGhpIG1hIGtob25nIGNv IG1vdCBsb2kgdGhvbmcgYmFvIG5hbyBjaG8gZ2lhIGRpbmg/IE5odW5nIHJvaSB4YWMgb25nIE4u IHZhbiANCmR1b2MgZ2lhaSBwaGF1IGNob25nIHZhbmguIERvIHZheSwgdHJvbmcgYmllbiBiYW4g Z2lhbyBuaGFuIHhhYywgZ2lhIGRpbmggb25nIE4uIGNvIGdoaSANCnkga2llbiBsYSAiWGFjIGRh IGR1b2MgZ2lhaSBwaGF1IGtoaSBraG9uZyBjbyBzdSB0aG9uZyBiYW8gY3VhIGRhaSBkaWVuIGNv bmcgYW4sIHBoYXAgDQp5Ii4NCg0KRHVvbmcgZGF5Pw0KDQpLaG9uZyBjaGkgYnVjIHh1YyB2ZSB0 aGFpIGRvIGN1YSBvbmcgRC4sIGdpYSBkaW5oIG9uZyBOLiBjb24gZGF0IG5naGkgbmdvIGdpdWEg b25nIEQuIA0KdmEgaGFpIG5ndW9pIGRhbiBvbmcgdGhlbyBnb2kgeSAibG8gbGF5IHhhYyB0cm9u IGdvaSIgY28gImRheSBtbyIgbGllbiBxdWFuIGRlbiBuaGF1LiANCiJUYWkgc2FvIG9uZyBELiBs YWkgeWV1IGNhdSBkdWEgeGFjIG5ndW9pIG5oYSBjaHVuZyB0b2kgcXVhIG5oYSB4YWMgQlYgUS43 LCB0cm9uZyBraGkgDQpnaWEgZGluaCBtdW9uIGR1YSBxdWEgQlYgRlYgKGNvIGRlIGRhdCB0cnVj IHRpZXAgdm9pIG9uZyBELiwgbmh1bmcgb25nIEQuIGtodXllbiBsYSANCmdpbyBuYXkgY2hhYyBi ZW4gRlYgY2hhdCBjaG8pPyBWaSBzYW8ga2hpIHhlIGR1b2MgZGlldSBkZW4gZGUgZHVhIHhhYyBk aSB0aGkgY28gY2EgaGFpIA0Kbmd1b2kgZGFuIG9uZyBub2kgdHJlbiBkaSB0aGVvIGdvaSB5IHZl IGRpY2ggdnUgdHJvbiBnb2k/IE9uZyBELiBub2kgdm9pIGdpYSBkaW5oOiAiUXVhIA0KQlYgUS43 IHNlIGNvIG5ndW9pIGh1b25nIGRhbiBkYXkgZHUgdmUgdGh1IHR1YyIsIG5odW5nIGtoaSBzYW5n IG5oYSB4YWMgQlYgUS43IHRoaSANCmNoaW5oIGhhaSBuZ3VvaSBkYW4gb25nIGxhbSBkaWNoIHZ1 IG5vaSB0cmVuIGdhcCBjaHVuZyB0b2ksIGNodSBraG9uZyBjbyBhaSBraGFjIGh1b25nIA0KZGFu PyBWaSBzYW8gZGVtIDExLjkgKGx1YyBkYSBuZ29haSAyMiBnaW8pLCBtb3Qgbmd1b2kgdHJvbmcg Z2lhIGRpbmggY2h1bmcgdG9pIGNvIGN1b2MgDQpnb2kgbmhvIHR1IGRpZW4gdGhvYWkgb25nIEQu LCB0aGkgbmdheSB0aWVwIHNhdSBkbyBoYWkgbmd1b2kgZGFuIG9uZyBnb2kgeSBsYW0gZGljaCB2 dSBub2kgDQp0cmVuIGN1bmcgZ29pIHZhbyBtYXkgY2hpbmggbmd1b2kgdGhhbiBuYXkgZGUgdGll cCB0dWMgaG9pIHZlIHZ1IHZpZWMuIEtoaSBkbywgZ2lhIGRpbmggDQpkYSBwaGFuIHVuZyBtYW5o IHZvaSBoYWkgbmd1b2kgZGFuIG9uZzogTWF5IGFuaCBtdW9uIGdpdSB4YWMgZGVuIGJhbyBnaW8g dGhpIGdpdSBkaS4uLiANCnZhIHF1YSBzYW5nIGhvbSBzYXUgMTIuOSwgZ2lhIGRpbmggbGllbiBu aGFuIGR1b2Mgc3UgbGFuaCBsdW5nIHR1IG9uZyBELiIsIGRhaSBkaWVuIGdpYSANCmRpbmggb25n IE4uIG5ldSBoYW5nIGxvYXQgbmdoaSB2YW4uIA0KDQpDaHVuZyB0b2kgZGVtIG5odW5nIGJ1YyB4 dWMgY3VhIG5ndW9pIHRoYW4gb25nIE4uIGRlbiBsYW0gdmllYyB2b2kgQ29uZyBhbiBRLjIuIE9u ZyANCk5ndXllbiBWYW4gVHVlLCBEb2kgdHJ1b25nIERvaSBkaWV1IHRyYSB0b25nIGhvcCBDb25n IGFuIFEuMiwgbm9pOiAiUXVhIGRvbiBwaGFuIA0KYW5oIGNobyB0aGF5IGdpYSBkaW5oIG9uZyBO LiByYXQgYnVjIHh1Yy4gVm9pIHRydW9uZyBob3AgY3VhIG9uZyBILlQuTiwgdmUgbmd1eWVuIHRh YyANCmNhbiBnaWFpIHBoYXUgdHUgdGhpIGRlIGxhbSBybyBuZ3V5ZW4gbmhhbiBjYWkgY2hldCwg dmkgb25nIGNoZXQgY2h1YSBybyBuZ3V5ZW4gbmhhbi4gDQpOaHVuZyBuZXUgZHVuZyBuaHUgbmh1 bmcgZ2kgZ2lhIGRpbmggb25nIE4uIHBoYW4gYW5oIHZlIHRoYWkgZG8gbGFtIHZpZWMgY3VhIGNh biBibyANCmNvbmcgYW4gbGllbiBxdWFuIHRoaSBraG9uZyB0aGUgZHVvYy4gQ2h1bmcgdG9pIHhp biBwaG90byBsYWkgZG9uIHBoYW4gYW5oLCB2aSB0aGVvIHRvaSwgDQp2dSB2aWVjIG5heSBjYW4g cGhhaSBiYW8gY2FvIGNhcCB0cmVuIGRlIGxhbSBybyIuIA0KDQpWZSBuZ3V5ZW4gdGFjIGdpYWkg cXV5ZXQgbGF5IHhhYywgb25nIFR1ZSBub2k6ICJWb2kgbmh1bmcgdHJ1b25nIGhvcCBuaHUgdGhl IG5heSwgDQpjaHVuZyB0b2kgZ2lhaSBxdXlldCB0cmVuIHRpbmggdGhhbiBuaGFuaCBuaGF0LCBz b20gbmhhdCwgdmkgdGFtIGx5IGdpYSBkaW5oIG5ndW9pIGNoZXQgbHVjIA0KbmF5IHJhdCBtdW9u IGR1b2MgZHVhIHhhYyBuZ3VvaSB0aGFuIHZlIG5oYSwgZGUgbG8gYW4gdGFuZywgY2hvbiBjYXQi LiANCg0KVmUgdmllYyBvbmcgY29uZyBhbiBELiB5ZXUgY2F1IG5ndW9pIG5oYSBvbmcgTi4gdHUg ZGVuIENvbmcgYW4gUC5UaGFvIERpZW4gbGF5IGdpYXkgDQp0bywgY2EgY2FuIGJvIGNvbmcgYW4g cGh1b25nIG5heSB2YSBvbmcgVHVlIGRldSBraGFuZyBkaW5oIHRoZW8gcXV5IGRpbmggbmd1b2kg bmhhIA0KbmFuIG5oYW4ga2hvbmcgdGhlIHR1IGRpIGxheSBkdW9jLiANCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDIyMTkxNjQ0LmFzcHggQmFu IENUQkQgKHRvbmcgaG9wKSAyMi8xMC8yMDEwIDE5OjE2IA0KDQpUUCBIQ006IFBoYWkgeHUgbHkg bmdoaWVtIGNhbiBibyB2aSBwaGFtICANCg0KRG8gbGEgeSBraWVuIGN1YSBiYW4gUGhhbSBIb2Fu ZyBQaHVvbmcgKGhvYW5ncGh1b25nLi4uQGdtYWlsLmNvbSkgdmEgY3VuZyBsYSANCnRpZW5nbm9p IGNodW5nIGN1YSBzbyBkb25nIG5odW5nIG5ndW9pIGtoYWMgc2F1IGtoaSBkb2MgYmFpIER1b25n IGRheSBsYXkgeGFjIG8gYmVuaCB2aWVuPyANCmRhbmcgdHJlbiBUaGFuaCBOaWVuIG5nYXkgMTgu MTAuIA0KDQpOZ2hpYSB0dSBsYSBuZ2hpYSB0YW4hDQoNClRvaSBraG9uZyBuZ28gdGh1IHR1YyBs YXkgeGFjIHRoYW4gbmhhbiBiaSBjaGV0IGxhaSBuaGlldSBraGUgZGVuIHRoZSwgbGFpIGNvbiBi aSBnaWFpIHBoYXUgDQp0dSB0aGkga2hpIHRoYW4gbmhhbiBraG9uZyBkdW9jIHRob25nIGJhbyB2 YSBjaHVuZyBraWVuLiBNYXQgbmd1b2kgdGhhbiwgbmd1b2kgbmhhIGRhdSANCnhvdCBsYW0sIGFp IGN1bmcgbW9uZyBtdW9uIGR1b2MgZGVtIHRoaSBoYWkgdmUgZGUgY2hvbiBjYXQgYm9pIG5naGlh IHR1IGxhIG5naGlhIHRhbiwgDQp0aGUgbWEgb25nIEQuIHZhIG1vdCBzbyAiY28iIHZpIGxvaSBu aHVhbiBtYSBsYW0gdmllYyBtYXQgaGV0IG5oYW4gdGluaDogY28gdGluaCBnaXUgeGFjIA0KZGUg a2llbSBjaGFjLiBUb2kgbW9uZyBoYW5oIHZpIHhhdSBuYXkgY2FuIGR1b2MgbmdoaWVtIHRyaSBk ZSBuZ3VvaSBjaGV0IGR1b2MgeWVuIHZhIA0Kbmd1b2kgdGhhbiBjdWEgaG8gZG8gZGF1IGhvbi4N CkRhbSBUaGkgWHVhbiBVeWVuIChMZSBUaGkgSG9uZyBHYW0sIFAuNiwgVFAgTXkgVGhvKQ0KDQpL aWVtIHRpZW4gZG9jIGFjDQoNCkRvYyBiYWkgYmFvIG5heSB0b2kgdm8gY3VuZyBidWMgeHVjIHZl IHRoYWkgZG8gbGFtIHZpZWMgY3VhIG9uZyBELiBEYXQgbnVvYyBtaW5oIHNlIA0Ka2hvbmcgYmFv IGdpbyBsYSBtb3QgaGluaCBhbmggZGVwIHRyb25nIG1hdCBjdWEgbmh1bmcgbmd1b2kgeGEgeHUg bmV1IGNvIG5odW5nIG5ndW9pIA0Kbmh1IG9uZyBELiBCYW4gdGhhbiBvbmcgRCBsYSBjYW4gYm8g dGhvYWkgaG9hIGJpZW4gY2hhdCwgdmF5IG1hIGNodW5nIHRhIGtob25nIHh1IGx5IA0KZHVvYyBz YW8/IEtob25nIGJpZXQgZGVuIGJhbyBnaW8gbW90IHNvIHBoYW4gdHUgeGF1LCBiaWVuIGNoYXQg bW9pIGhldCBjYWkgdHJvIGtpZW0gdGllbiANCmRvYyBhYyBuYXk/DQpOZ3V5ZW4gVGh1IEh1b25n IChodW9uZ25ndXllbjg4N0BnbWFpbC5jb20pIA0KDQpWYWkgdHJvIGN1YSBiZW5oIHZpZW4gcmEg c2FvPw0KDQpWYWkgdHJvIGN1YSBiZW5oIHZpZW4gKEJWKSBvIGRhdSB0cm9uZyBuaHVuZyBzYWkg cGhhbSBjdWEgb25nIEQuLCBwaGFpIGNoYW5nIGNhYyBCViANCm5heSBjdW5nIHRpZXAgdGF5IGRl IG9uZyBEIGxhbSB0aWVuIG5ndW9pIG5oYSBvbmcgTiA/IFRoZW8gdG9pIGJpZXQsIGtob25nIGNo aSBuZ3VvaSANCm5oYW4gdGhpIGhhaSAgVmlldCBraWV1IGJpIGhhbmggaGEgbWEgdHUgbGF1IG5h eSwgdmllYyBuaGFuIHhhYyBjdWEgbmd1b2kgdHJvbmcgbnVvYyBvIA0KY2FjIEJWIGN1bmcgbGFt IG5oaWV1IGtoZSwgcmFjIHJvaSwgbmd1b2kgbmhhIGN1bmcgYmkgaGFuaCBoYS4gTmFtIGJhdCB0 YW0gbHkgbm9uZyANCmxvbmcgZHVhIG5ndW9pIG5oYSB2ZSBhbiB0YW5nIG5lbiBuaHVuZyBrZSB2 byBsdW9uZyB0YW0gdGh1b25nICJsYW0gdGllbiIgdGhhbiBuaGFuIA0Kbmd1b2kgY2hldC4gTmh1 bmcgaGFuaCB2aSBuYXkgZGEgYmkgeGEgaG9pIGxlbiBhbiwgYnVjIHh1YyB0dSBsYXUgbmh1bmcg dmFuIHRvbiB0YWkuIEJvIA0KWSB0ZSwgY2FjIFNvIFkgdGUgY2FuIHhlbSB4ZXQgbGFpIHZpZWMg bmF5LiANCk1pbmggSGEgKCBQLlRoYW8gRGllbiwgUS4yLCBUUC5IQ00pIA0KDQpMYW0gbWF0IHV5 IHRpbiBuZ2FuaCBjb25nIGFuDQoNCk5ldSBkdW5nIGRheSBsYSBzdSB0aGF0IHRoZW8gbmh1IHBo YW4gYW5oIGN1YSBnaWEgZGluaCBuZ3VvaSBxdWEgY28gdGhpIGxvYWkgY2hpbSAia2VuIA0Ka2Vu IiBuYXkgY2FuIHBoYWkgYmkgbmdoaWVtIHRyaSB0aGljaCBkYW5nLiBPbmcgYmEgdGEgY28gY2F1 OiAiTmdoaWEgdHUgbGEgbmdoaWEgdGFuIi4gDQpLaG9uZyBiaWV0IHZpIGNhbiBibyBuYXkgbmV1 IGdhcCB0cnVvbmcgaG9wIG5ndW9pIHRoYW4gY3VhIG1pbmggdHJvbmcgaG9hbiBjYW5oIHR1b25n IA0KdHUgc2UgbmdoaSBzYW8/IFRvaSBkZSBuZ2hpIGNhYyBjbyBxdWFuIGNodWMgbmFuZyBwaGFp IGxhbSBkZW4gbm9pIGRlbiBjaG9uIHZ1IG5heS4gDQpOZXUga2hvbmcgZ2lhaSBxdXlldCByb3Qg cmFvIHRoaSB0aW5oIHRyYW5nIG5heSBzZSBjb24gdGllcCBkaWVuLCBsYW0gbWF0IHV5IHRpbiBj dWEgDQpuZ2FuaCBjb25nIGFuLCBsYW0gbWF0IGRpIHRpbmggbmhhbiB2YW4gY3VhIG5ndW9pIFZp ZXQuDQpOZ3V5ZW4gWHVhbiBIb2F0IChob2F0bmd1eWVuYmRAZ21haWwuY29tKSAgDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxNzAyNDYxNS5h c3B4IDE3LzA5LzIwMTAgMjo0NiAgDQogDQpUUCBIQ006IERpY2ggdnUgYmFvIHZlIGNoYXQgbHVv bmcgYmkgdGhhIG5vaSAtICBDbyBxdWFuIHF1YW4gbHkgbm9pICJraG8iIA0KDQooQW5oIGNodXA6 IE1vdCBuZ3VvaSBkYW4gYmkgYmFvIHZlIGN1YSBtb3QgY29uZyB0eSBiYW8gdmUgZGFuaCBiaSB0 aHVvbmcgbyBRLjEgVFAgSENNLiBBbmg6IERhbSBIdXkpIA0KDQpLaW5oIGRvYW5oIGRpY2ggdnUg YmFvIHZlIGxhIG1vdCBuZ2hlLiBDYWMgY28gcXVhbiBjaHVjIG5hbmcsIGRhYyBiaWV0IGxhIG5n YW5oIGNvbmcgDQogYW4gbGEgZG9uIHZpIGNhcCBwaGVwIHZhIHF1YW4gbHkuIFR1eSBuaGllbiwg dmllYyBxdWFuIGx5IGNodSB5ZXUgY3VuZyBjaGkgdmUgbWF0IGhpbmggDQp0aHVjLCBoYW5oIGNo aW5oLiBDb24gdmUgZGFvIHRhbywgdHV5ZW4gZHVuZyB0aGkgY2FjIGNvbmcgdHkgYmFvIHZlIHR1 IGxvIGxheSBuZW4gY2hhdCANCmx1b25nIHZlIHNpIG5nYXkgY2FuZyB4dW9uZyBjYXAuIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMjIxODUx MTIuYXNweCBOZ3V5ZW4gTWkgMjIvMTAvMjAxMCAxODo1MSANCg0KVFAgSENNOiBEdWEgeGUga2hv bmcgaGV0LCAiaG8gdHUgdGhhbiIgdGFuZyB0aGVtICANCiAgDQooVE5PKSBUaGFuZyBhbiB0b2Fu IGdpYW8gdGhvbmcgKEFUR1QpIHRhaSBUUC5IQ00gZGEga2V0IHRodWMuIFRoZSBuaHVuZywgdmFu IGRlIA0KIm5vbmciIGxhIG5hbiBkdWEgeGUgZGEga2hvbmcgYmkgZGF5IGx1aS4gVGhlbSB2YW8g ZG8sIGdpYW8gdGhvbmcgdGFpIFRQIGxhaSBjYW5nIHRoZW0gDQpuZ3V5IGhpZW0gYm9pIHN1IHh1 YXQgaGllbiBsaWVuIHR1YyBjdWEgbmh1bmcgImhvIHR1IHRoYW4iIG1hIGR1b25nIG5odSBjYWMg Y28gcXVhbiANCmNodWMgbmFuZyBraG9uZyB0aGUga2llbSBzb2F0IGR1b2MuIA0KDQpCYXQgbHVj IHZvaSBkdWEgeGUgDQoNCkhpZW4gbmF5LCBjYWMgZGllbSAibm9uZyIgZHVhIHhlIGRhIHRyYWkg cmEgdHJlbiA1MCB0dXllbiBkdW9uZyB0aHVvYyBkaWEgYmFuIDE0IHF1YW4sIA0KaHV5ZW4gY3Vh IFRQLkhDTS4gVGluaCBoaW5oIHRoYW5oIHRoaWV1IG5pZW4gdHUgdGFwIGR1YSB4ZSwgZ2F5IHJv aSB0cmF0IHR1IGNvbmcgY29uZyANCnZhbiB0aWVwIHR1YyBkaWVuIGJpZW4gcGh1YyB0YXAgdmEg Y2h1YSBjbyBkYXUgaGlldSBiaSBkYXkgbHVpLg0KDQooQW5oOiBOaHVuZyAieWVuIGh1bmciIHhh IGxvIGtobyB0cmkgLSBBbmg6IE5naGlhIFBoYW0pDQoNCkRvaSB0dW9uZyB2aSBwaGFtIGNvIGRv IHR1b2kgdHUgMTQtMjAgdHVvaSwgc3UgZHVuZyBjYWMgbG9haSB4ZSBnYW4gbWF5IGR1b2MgZG9u IGRlbiwgDQp4b2F5IG5vbmcuLi4gVHUgMjIgZ2lvIGRlbSBkZW4gNiBnaW8gc2FuZyBob20gc2F1 LCBuaHVuZyAieWVuIGh1bmciIHhhIGxvIG5heSB2YW4gDQpnYXkgbmFvIGxvYW4gdHJlbiBkdW9u ZyBwaG8sIGFuaCBodW9uZyBkZW4gQVRHVCBjdWEgbmd1b2kgZGFuIHZhIGtoaSBiaSB0cnV5IGJh dCANCnRoaSBzYW4gc2FuZyBjaG9uZyBsYWkgbmd1b2kgdGhpIGhhbmggY29uZyB2dS4gDQoNClRy b25nIGtoaSBkbywgY2FjIGx1YyBsdW9uZyBDU0dUIHZhbiB0aGlldSBkb25nIGJvIHRyb25nIHZp ZWMgY2hvbmcgZHVhIHhlLiBLaGkgY2FjIA0KcXVhbiAxLCA1LCBCaW5oIFRoYW5oIHRhcCB0cnVu ZyBsdWMgbHVvbmcgdHJ1eSBkdW9pLCBuZ2FuIGNoYW4gZHVhIHhlIHRoaSBjYWMgZG9pIHR1b25n IA0KbGFpIGNodXllbiBzYW5nIGRpYSBiYW4ga2hhYyBuaHUgY2FjIHF1YW4gMywgNCB2YSBQaHUg Tmh1YW4uIERhYyBiaWV0LCBraHUgdnVjIFEuQmluaCANClRoYW5oIHZhbiBjb24gZGllbiBiaWVu IHBodWMgdGFwLiANCg0KQ2hpZXUgbmF5ICgyMi4xMCksIEJhbiBBVEdUIFRQLkhDTSBkYSB0b25n IGtldCB0aGFuZyBBVEdUIDIwMTAgdm9pIGNodSBkZSAiVmFuIA0KaG9hIGdpYW8gdGhvbmcgdmkg c3UgYW4gdG9hbiBjdWEgdGhhbmgsIHRoaWV1IG5oaSB2YSBjb25nIGRvbmciLg0KDQpUcm9uZyB0 aGFuZyBBVEdUICh0aGFuZyA5KSwgZGEgeGF5IHJhIDg1IHZ1IHRhaSBuYW4gZ2lhbyB0aG9uZyB0 cmVuIGRpYSBiYW4gVFAuSENNLCB0YW5nIDklIHNvIHZvaSBjdW5nIGt5IG5hbSAyMDA5LiANCg0K VHJvbmcgZG8sIGNhYyBsb2kgdmkgcGhhbSB0YXAgdHJ1bmcgdmFvOiB2aSBwaGFtIHRvYyBkbywg ZGkga2hvbmcgZHVuZyBwaGFuIGR1b25nLCBsYW4gDQpkdW9uZzsgY28gbm9uZyBkbyBydW91IGJp YSBraGkgZGlldSBraGllbiBwaHVvbmcgdGllbiBnaWFvIHRob25nLCBraG9uZyBkb2kgbXUgYmFv IA0KaGllbSwgZGkgYm8gcXVhIGR1b25nIGtob25nIGR1bmcgcXV5IGRpbmguIERheSBsYSBuaHVu ZyBoYW5oIHZpIHZpIHBoYW0gdGh1b25nIGRhbiANCmRlbiB0YWkgbmFuIGdpYW8gdGhvbmcuDQoN CktldCBxdWEgbGEgcXVhIG1vdCB0aGFuZyB0cmllbiBraGFpIHRoYW5nIEFUR1Qgdm9pIG11YyB0 aWV1IHZhIGNhYyBiaWVuIHBoYXAgZHVvYyBkZSANCnJhIGxhICJzZSBtYW5oIHRheSwgZ2lhaSBx dXlldCBuYW4gZHVhIHhlIiB0aGkgVFAuSENNIGNoaSBrZW8gZ2lhbSBkdW9jLi4uIDEgdnUgdHUg dGFwIA0KZHVhIHhlIHNvIHZvaSB0aGFuZyB0cnVvYy4NCg0KR2lhaSB0aGljaCB2ZSB2YW4gZGUg bmF5LCBQaG9uZyBDU0dUIGR1b25nIGJvLCBkdW9uZyBzYXQsIENvbmcgYW4gVFAuSENNIGNobyBy YW5nIA0KZG86IG5oaWV1IG5vaSBjaHVhIHF1YW4gdGFtIGR1bmcgbXVjIGRvaSB2b2kgdmllYyBn aWFpIHF1eWV0IHRlIG5hbiBkdWEgeGUsIGNoaSBkYXQgZ2lhaSANCnBoYXAgY2hvbmcgdmEgZGF0 IG5hbmcgdHJhY2ggbmhpZW0gY2hvIENTR1QgbWEgdGhpZXUgZ2lhaSBwaGFwIHBob25nIG5ndWEu DQoNClZpIHZheSwgdGhlbyBvbmcgVm8gVmFuIE5odWFuLCBUcnVvbmcgcGhvbmcgQ1NHVCBkdW9u ZyBibywgZHVvbmcgc2F0LCBDb25nIGFuIA0KVFAuSENNLCBwaGFpIHhlbSB0aW5oIHRyYW5nIG5h eSBsYSBtb3QgdGUgbmFuIHhhIGhvaSwgY2FuIGR1b2MgdHV5ZW4gdHJ1eWVuIHZhIGNodW5nIA0K c3VjIGdpYWkgcXV5ZXQgY3VhIG5oaWV1IGNhcCBjaGluaCBxdXllbiwgY28gcXVhbiBjaHVjIG5h bmcuDQoNCiJQaG9uZyBDU0dUIGR1b25nIGJvLCBkdW9uZyBzYXQgc2UgcGhvaSBob3AgZGUgaHV5 IGRvbmcgdG9pIGRhIGNhYyBsdWMgbHVvbmcgbmh1IA0KY2FuaCBzYXQgaGluaCBzdSwgY2FuaCBz YXQgcGhhbiB1bmcgbmhhbmgsIGNvbmcgYW4gcXVhbiBodXllbiwuLi4gdG8gY2h1YyBuZ2FuIGNo YW4sIA0KdHJ1eSBiYXQgdHJpZXQgZGUgY2FjIGRvaSB0dW9uZyBkdWEgeGUgbmF5Iiwgb25nIE5o dWFuIGNobyBiaWV0Lg0KIA0KKEFuaDogRGFtIGRvbmcgdHUgdGFwIHRyZW4gZHVvbmcgY2hvIGR1 YSB4ZSAtIEFuaDogTmdoaWEgUGhhbSkNCg0KQmVuIGNhbmggZG8sIENvbmcgYW4gVFAuSENNIHNl IHRpZXAgdHVjIGdpYWkgcXV5ZXQgY2FjIG1hbSBtb25nIHBoYXQgc2luaCB0ZSBuYW4gDQpuYXkg bmh1OiBraWVtIHNvYXQgY2hhdCBjaGUgY2FjIGhhbmcgcXVhbiBhbiB1b25nIHNhdSAyMyBnaW8s IHF1YW4gYmFyLCBjYSBwaGUsIHZ1IA0KdHJ1b25nOyBnaWFpIHRhbiB2aWVjIHR1IHRhcCwgY28g dnUgZHVhIHhlOyBraWVtIHRyYSwgdHV5ZW4gdHJ1eWVuIGNhYyBkaWVtIHN1YSB4ZSBraG9uZyAN CmRvbiBkZW4sIHhvYXkgbm9uZyBkZSB0aWVwIHRheSBjaG8gY2FjIGRvaSB0dW9uZyBkdWEgeGU7 IGtpZW0gZGllbSwgZ2lhbyBkdWMgY2FjIGRvaSANCnR1b25nIGR1YSB4ZSBuZ2F5IHRhaSB0byBk YW4gcGhvLCBub2kgY3UgdHJ1LGxhcCBobyBzbyB4dSBwaGF0LC4uLg0KDQoiSG8gdHUgdGhhbiI6 IGNodWEgYmlldCB4dSBzYW8NCg0KTWF0IGtoYWMsIGN1bmcgdHUgdGhhbmcgcXVhLCBuZ3VvaSBk YW4gVFAuSENNIGNvbiBjbyB0aGVtIG1vdCBub2kgbG8gbnVhIGtoaSBsdXUgDQp0aG9uZyB0cmVu IGR1b25nLiBEbyBsYSBzdSB4dWF0IGhpZW4gY3VhIGhhbmcgbG9hdCBobyB0dSB0aGFuLiBDaG8g ZGVuIHRob2kgZGllbSANCmhpZW4gbmF5ICgyMi4xMCksIGRhIGNvIGtob2FuZyAyNyAiaG8gdHUg dGhhbiIgbG8gcmEgdHJlbiBtYXQgZHVvbmcgdmEgImJheSIgY2FjIHBodW9uZyANCnRpZW4gZ2lh byB0aG9uZy4NCg0KVHJvbmcgZG8sIGxvbiBuaGF0IGxhICJobyB0dSB0aGFuIiBjbyBkaWVuIHRp Y2ggZ2FuIDEwbTIgdmEgY2hpZXUgc2F1IGhvbiAzbS4gQ2hpZWMgaG8gDQp4dWF0IGhpZW4gdGFp IGhlbSAzODYgTGUgVmFuIFN5IChRLjMsIFRQLkhDTSksIHRyb25nIGNvbiBtdWEgbG9uIGNoaWV1 IDE0LjkgZ2FuIA0Kbmh1ICJudW90IGNodW5nIiBjaGllYyB0YXhpIFZpbmFzdW4gNyBjaG8uIERh eSBsYSAibW9uIHF1YSIgY3VhIEJhbiBRdWFuIGx5IER1IGFuIA0KKEJRTERBKSBWZSBzaW5oIG1v aSB0cnVvbmcgVFAuSENNIGRlIGxhaSBzYXUga2hpIGxvIGNvdCBjb25nIHRyaW5oIGRhIHJ1dCBk aS4NCg0KKEFuaDogQmFuaCB4ZSB0YWkgbG90ICJobyB0dSB0aGFuIiAtIEFuaDogTmdvYyBUaG8p DQoNCkdhbiBkYXkgbmhhdCBsYSAiaG8gdHUgdGhhbiIgeHVhdCBoaWVuIHZhbyB0b2kgcXVhICgy MS4xMCkgdHJlbiBkdW9uZyBMdXkgQmFuIEJpY2ggDQp0aHVvYyBQLlRhbiBUaGFuaCwgUS5UYW4g UGh1IChUUC5IQ00pLiBIbyBsYW0gYmFuaCB4ZSB0YWkgYmllbiBzbyA3N0gtOTgxOSBjaG8gDQpk YXkgaGFuZyBzdXAgeHVvbmcsIGtoaWVuIHhlIGJpIGxhdCBuaGFvLg0KDQpUaGUgbmh1bmcsIGNo byBkZW4gdGhvaSBkaWVtIG5heSwgc2F1IG5oaWV1IHZ1IHhlIGNvIHN1cCBobywgdHJhIGxvaSBi YW8gY2hpIHZlIHBodW9uZyANCmFuIHh1IGx5LCBTbyBHVFZUIFRQLkhDTSB2YW4gY2hpIGNvIG1v dCBxdWFuIGRpZW0gbGE6IHRyZW4gbWF0IGR1b25nIFRQLkhDTSANCmhpZW4gbmF5IGNvIHJhdCBu aGlldSBjb25nIHRyaW5oIGRhbmcgdGhpIGNvbmcsIGN1YSBuaGlldSBkdSBhbiwgQlFMREEsIG5o YSB0aGF1IGtoYWMgDQpuaGF1LiBDaGluaCB2aSB0aGUsIHRhaSBuYW4geGF5IHJhIHRhaSB2aSB0 cmkgY3VhIG5oYSB0aGF1LCBCUUxEQSBuYW8gdGhpIG5ndW9pIGRvIGNoaXUuDQpOaHUgdGhlLCBr aGkgImhvIHR1IHRoYW4iIHh1YXQgaGllbiB0aGkgYmllbiBwaGFwIGtoYWMgcGh1YyBoYXUgcXVh IHZhbiBjaGkgbGEgZG9uIHZpIHRoaSANCmNvbmcgYml0LCBsYXAgaG8gbGFpLg0KIA0KKEFuaDog IkhvIHR1IHRoYW4iIC0gbmh1bmcgInF1YWkgdmF0IiBtb2kgZGUgZG9hIGFuIHRvYW4gZ2lhbyB0 aG9uZyAtIEFuaDogTmd1eWVuIE1pKQ0KDQpUcmEgbG9pIHBob25nIHZhbiBjdWEgcGhvbmcgdmll biBUaGFuaCBOaWVuIE9ubGluZSwga3kgc3UsIHRoYWMgc2kgUGhhbiBQaHVuZyBTYW5oLCANClBo byBjaHUgdGljaCB0aHVvbmcgdHJ1YyBIb2kgS2hvYSBob2Mga3kgdGh1YXQgeGF5IGR1bmcgVFAu SENNLCBkYW5oIGdpYTogQ28gY2FjIA0KImhvIHR1IHRoYW4iIHRyZW4gbGEgZG8gZG9uIHZpIHRo aSBjb25nIHRhaSBsYXAgbWF0IGR1b25nIGtob25nIGR1bmcgY2h1YW4sIHF1eSB0cmluaCwgDQp5 ZXUgY2F1IGt5IHRodWF0LiBEbyBsYSBzdSB2byB0cmFjaCBuaGllbSBjdWEgbmhhIHRoYXUsIGRv biB2aSBnaWFtIHNhdCB2YSBjYSBjbyBxdWFuIA0KcXVhbiBseS4gTmV1IGNoaSB4dSBseSB0aGVv IGtpZXUgImNodWEgY2hheSIsIGhvIHh1YXQgaGllbiB0aGkgbGFwIGxhaSBtYSBraG9uZyBraWVt IHRyYSwgDQp4dSBseSBkdW5nIHF1eSB0cmluaCB0aGkgdGluaCB0cmFuZyBzZSB0aWVwIGRpZW4g bmh1IGN1LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vaGNtLzIwMTAxMC9Iby1kZW4tdHUtdGhh bi1jaHVhLWJpLXRydXktdG8tY2h1YS1zby05NDMzOTkvIFRoYWkgUGh1b25nIDA2OjQwLCAyMC8x MC8yMDEwIChHTVQrNykNCg0KVFAgSENNOiBIbyB0dSB0aGFuLCBjaHVhIGJpIHRydXkgdG8gY2h1 YSBzbyANCg0KTGllbiBxdWFuIGRlbiB0YWkgbmFuIGRvIGNhYyBobyBkZW4gdHUgdGhhbiBnYXkg cmEsIEx1YXQgc3UgVGhhaSBWYW4gQ2h1bmcsIFZhbiBwaG9uZyANCkRvYW4gTHVhdCBzdSAoTFMp IFRQIGNobyByYW5nLCBjaHVhIHhheSByYSB0YWkgbmFuIGNoZXQgbmd1b2kgbWEgY2hpIGNhbiB0 aGlldCBoYWkgdGFpIA0Kc2FuLCBuZ3VvaSBkYW4gZGEgY28gdGhlIGtob2kga2llbi4gDQoNCiog Tm9pIGtoaWVwIHNvIG1hbmcgdGVuLi4uIGhvIHR1IHRoYW4gbyBUUC5IQ00NCiogU3VwIGhvIHR1 IHRoYW4sIHhlIGNvbnRhaW5lciBjaG9uZyB2bw0KDQpIbyB0dSB0aGFuIGxhIGRvIHRhaSBsYXAg dGFtIC4uLiANCg0KTmdheSAxOS8xMCwgZGFpIGRpZW4gdHUgdmFuIGdpYW0gc2F0IGR1IGFuIFZl IHNpbmggbW9pIHRydW9uZyBUUCBOaGlldSBMb2MgLSBUaGkgTmdoZSANCihDRE0pIHRodWEgbmhh biwga2hvYW5nIDEvNCBzbyB2dSBzdXAgaG8gdHUgdGhhbiBsYSAidGFjIHBoYW0iIGN1YSBkdSBh biBuYXkuIENvIHRoZSANCm5oYWMgbGFpIG5odW5nIGhvIHR1IHRoYW4gbGFtIGtoaWVwIHZpYSBu Z3VvaSBkaSBkdW9uZyBuaHU6IGtodSB2dWMgbmdhIHR1IFBodSBOaHVhbiwgDQpkdW9uZyBMZSBW YW4gU3ksIG5nYSB0dSBWbyBUaGkgU2F1IC0gSGFpIEJhIFRydW5nLi4uDQoNCkxlbiB0aWVuZyB2 ZSBjYWMgaG8gdHUgdGhhbiBuYXksIGRhaSBkaWVuIENETSBjaG8gcmFuZywgbmd1eWVuIG5oYW4g eHVhdCBoaWVuIGhvIHR1IA0KdGhhbiBkbyBtdWEgbG9uLCBtYXQgZHVvbmcgdnVhIHRhaSBsYXAg dGFtLCAiZHVuZyIgY29uZyB0cmluaCBuZ2FtIHZhIGNvIHZpZWMgbmhhIHRoYXUgDQp0aGkgY29u ZyBraG9uZyBkYXQgY2hhdCBsdW9uZyAuLi4gDQoNCihBbmg6IFJhIGR1b25nLCBuZ3VvaSBkYW4g a2hvbmcga2hvaSBiYXQgYW4gdm9pIG5odW5nIGNhaSAiYmF5IiBuaHUgdGhlIG5heSEgLSBuYXAg aG8gDQpnYSBuaG8gY2FvIGhvbiBtYXQgZHVvbmcgdHJlbiBYYSBsbyBIYSBOb2kuIEFuaDogVGhh aSBQaHVvbmcpDQooQW5oOiBWYSBjb25nIHRob2F0IG51b2MgY3VuZyB0cm8gdGhhbmggImJheSIg Z2lldCBuZ3VvaSBraGkgbXVhIGxvbiwgZHVvbmcgbmdhcC4gDQpBbmg6IFRoYWkgUGh1b25nKQ0K DQoiRG8gdGluaCBjaGF0IHRhaSBsYXAgdGFtLCBuaGEgdGhhdSB0aGkgY29uZyBraG9uZyB0dWFu IHRodSBjYWMgeWV1IGNhdSBreSB0aHVhdCBkYW4gZGVuIA0KY2FjIHN1IGNvIGx1biBzdXQgbWF0 IGR1b25nLiBDdSB0aGUsIHRhaSBoZW0gMzg2IExlIFZhbiBTeSwgbXVhIGxvbiBkb25nIGNoYXkg bmdhbSANCnRyb25nIGNvbmcgcGhhIHZvIGtldCBjYXUgY29uZyBjdSBkYW4gZG9uZyB0YW0gZ2F5 IGx1biBzdXQgbWF0IGR1b25nLiBIYXkgaG8gdHUgdGhhbiBvIA0KbmdhIHR1IFBodSBOaHVhbiBk byB0dW9uZyBnYWNoIHhheSB0YW0gY2hhbiBkYXUgY29uZyBiaSBzYXAgdmkgbXVhIGxvbiwgZGF0 IGRhIHRyb2kgDQp2YW8gY29uZyBsYW0gaG8gaGFtIGVjaCIgLSBkYWkgZGllbiBtb3QgbmhhIHRo YXUgZGFuIGNodW5nLiANCg0KTyBjYWMgaG8gdHUgdGhhbiBraGFjLCBuaGEgdGhhdSBnaWFpIHRo aWNoIGRvIHRob2kgZ2lhbiBkYW8gZHVvbmcga2VvIGRhaSwgbXVvbmcgZGFvIA0Kc2F1IGdheSBj aGFuIGRvbmcgY2FjIGNvbmcgdHJpbmggbGFuIGNhbiBuaHUgb25nIG51b2MsIGNhcCBkaWVuIGx1 YywgY2FwIGRpZW4gdGhvYWkuLi4gDQpsYW0gbHVuIHN1dCBtYXQgZHVvbmcuIE5nb2FpIHJhLCBu aGlldSB0dXllbiBjb25nIG5oYW5oIHRoaSBjb25nIHRyb25nIGRlbSwgc2FuZyByYSANCnBoYWkg dGFpIGxhcCB0cmEgbWF0IGR1b25nIGNobyBnaWFvIHRob25nIGRhIGtob25nIGRhbSBiYW8ga3kg dGh1YXQsIGRhbiBkZW4gbmd1eWVuIA0KbmhhbiBnYXkgc3VwIGhvIHR1IHRoYW4uIA0KDQoiVmkg dGhlLCBuaHVuZyB0dXllbiBkdW9uZyBtb2kgbGFtIHZhIGRhbyBsZW4gbmh1IHZheSBzYXUga2hp IGR1YSB2YW8gc3UgZHVuZyBzZSBiaSANCmx1biBzdXAgbW90IHNvIHZpIHRyaSBsYSBraG9uZyB0 cmFuaCBraG9pLiBNYXQgZHVvbmcgc2Ugb24gZGluaCBzYXUgdmFpIG5hbSwgdHJvbmcgDQpraG9h bmcgdGhvaSBnaWFuIGJhbyBoYW5oIGN1YSBjb25nIHRyaW5oIiAtIHZpIGNhbiBibyBDRE0gY2hv IGJpZXQuIA0KDQpDaHVhIHh1IGx5IGhpbmggc3UsIGNodWEgc28hIA0KDQpMaWVuIHF1YW4gZGVu IHZhbiBkZSB4dSBwaGF0LCBkb24gdmkgdHUgdmFuIGdpYW0gc2F0IGR1IGFuIE5oaWV1IExvYyAt IFRoaSBOZ2hlIGNobyANCnJhbmcgbW9pIGhpbmggdGh1YyB4dSBwaGF0IGRvaSB2b2kgY2FjIG5o YSB0aGF1IHZpIHBoYW0sIGNoYXkgeSBkZXUgZHVvYyBhcCBkdW5nLiBNb2kgDQpkYXksIG11YyBw aGF0IGNhbyBsZW4gZGVuIDIwIHRyaWV1IGRvbmcvbmdheSwgY3UgMTAgbmdheSBjaG90IHNvIG1v dCBsYW4gKHRvbmcgbXVjIHBoYXQgDQoyMDAgdHJpZXUgZG9uZykuICJUaGUgbmh1bmcgY28gbW90 IHNvIG5oYSB0aGF1IHF1eWV0Li4uIGNoYXkgeSwgdmFuIHZpIHBoYW0ga2hpZW4gDQpjaHVuZyB0 b2kgZGF1IGRhdSIgLSBtb3QgY2FuIGJvIENETSB0aHVhIG5oYW4uIEhpZW4gNCBuaGEgdGhhdSBk YW5nIGNoaXUgbXVjIHBoYXQgDQpuYXkgbGEgTGllbiBkYW5oIHhheSBkdW5nIFZJQywgVG9uZyBD b25nIHR5IFhheSBkdW5nIEhhIE5vaSwgVG9uZyBDb25nIHR5IHhheSANCmR1bmcgc28gMSB2YSBM aWVuIGRhbmggRHJlY28tQ2llbmNvIDUuIA0KDQpEb25nIHRob2ksIEJRTCBkdSBhbiBOaGlldSBM b2MgLSBUaGkgTmdoZSBkYW5nIHhlbSB4ZXQgdGltIG5oYSB0aGF1IHRoYXkgdGhlIFRvbmcgDQpY YXkgZHVuZyBIYSBOb2kgdGhpIGNvbmcgdHJlbiB0dXllbiBCdWkgSHV1IE5naGlhLCBxdWFuIEJp bmggVGhhbmggZG8gdGllbiBkbyBjaGFtLCANCnRoaSBjb25nIGF1Li4uIGtoaWVuIGNvbiBkdW9u ZyBuYXkgdGhhbmggbm9pICJiYXkiIHRhaSBuYW4uIERvbmcgdGhvaSwgbGFuaCBkYW8gU28gDQpH VFZUIFRQIGN1bmcgY2hvIGJpZXQgZGEgY2hpIGRhbyB0aGFuaCB0cmEgc28sIEJRTCBkdSBhbiB4 ZW0geGV0IGNhdCBob3AgZG9uZyBjdWEgDQpuaGEgdGhhdSBMaWVuIGRhbmggRHJlY28gLSBDaWVu Y28gNSBuZXUgdGllcCB0dWMgdmkgcGhhbSwgbmhhdCBsYSBzYXUgdnUgaG8gdHUgdGhhbiANCiJu dW90IiB4ZSB0YXhpIG8gZHVvbmcgTGUgVmFuIFN5LCBRLjMuIA0KDQpUaG9uZyBrZSBjdWEgU28g R1RWVCB0dSBkYXUgdGhhbmcgNy8yMDEwIGRlbiBuYXkgY28gZ2FuIDIwIHZ1IHN1cCBtYXQgZHVv bmcuIEhpZW4gDQptb3QgZG9hbiB0aGFuaCB0cmEgZG8gU28gR1RWVCBsYXAgZGFuZyB0b25nIGtp ZW0gdHJhLCByYSBzb2F0IGxhaSBuZ3V5ZW4gbmhhbiBjYWMgdnUgDQpzdXQgbHVuIG1hdCBkdW9u ZywgdGFvIGhvIHR1IHRoYW4gZGUgZG9hIG5ndW9pIGRpIGR1b25nLiANCg0KKEFuaDogTmh1bmcg Y2FpICJiYXkiIGRheSByYXkgdHJlbiBkdW9uZywgKGdhY2ggZGEgZHVvYyBkbyBkb25nIHRyZW4g cXVvYyBsbyAxMykuDQooQW5oOiBWYSBuaHVuZyBobyB0dSB0aGFuIGN1IHh1YXQgaGllbiBiYXQg dGhpbmggbGluaCB0cmVuIGR1b25nLiApIA0KDQpTYXUgbmh1bmcgdnUgdGFpIG5hbiB0aHVvbmcg dGFtIHhheSByYSB0cmVuIGNhYyB0dXllbiBkdW9uZyBvIFNhaSBHb24sIG5ndW9pIGRhbiBiYXQg DQphbiBraGkgcmEgZHVvbmcgbmh1bmcgbGFpIGtob25nIGJpZXQgcGhhaSBrZXUgYWk/IA0KDQpU dSBraG9hbmcgMi0zIG5hbSB0cnVvYywgdmFuIGRlIGtpZW0gZGllbSB0cmFjaCBuaGllbSBjdSB0 aGUgY3VhIGNhYyBjYSBuaGFuLCBkb24gdmkgDQpsaWVuIHF1YW4gZGEgZHVvYyBkZSBjYXAuIFRo YW0gY2hpIHZpZWMgeHUgbHkgaGluaCBzdSBuaGEgdGhhdSBjdW5nIGR1b2MgbGFuaCBkYW8gU28g DQpHVFZUIGtoYW5nIGRpbmggdHJvbmcgY2FjIGN1b2MgZ2lhbyBiYW4gdm9pIGJhbyBjaGkuIFRo ZSBuaHVuZyBzYXUgaGFuZyBsb2F0IHN1IGNvIHR1IA0KdGUgbmdhLCBsYXQgeGUgZGVuIGNoZXQg bmd1b2ksIGNodWEgY28gY2EgbmhhbiBkb24gdmkgbmFvIGJpIHRydXkgdG8sIHh1IGx5IGhpbmgg c3UuIA0KDQpMdWF0IHN1IFRoYWkgVmFuIENodW5nLCBWYW4gcGhvbmcgRG9hbiBMdWF0IHN1IChM UykgVFAgY2hvIHJhbmcsIGNodWEgeGF5IHJhIHRhaSBuYW4gDQpjaGV0IG5ndW9pIG1hIGNoaSBj YW4gdGhpZXQgaGFpIHRhaSBzYW4sIG5ndW9pIGRhbiBkYSBjbyB0aGUga2hvaSBraWVuLiBUdXkg bmhpZW4sIGNvIHRoZSANCm5vaSBiaWVuIHBoYXAgY2hlIHRhaSBoaWVuIG5heSBjaHVhIG5hbmcg a2hpZW4gbmhhIHRoYXUgImxvbiBsdWF0Ii4gDQoNClRodWMgdGUsIHRyb25nIGJhdCBreSBkdSBh biBuYW8gZGV1IHhhYyBkaW5oIHJvIHJhbmcgdHJhY2ggbmhpZW0gY3VhIHR1bmcgZG9uIHZpIHR1 IG5oYSANCnRoYXUsIHR1IHZhbiBnaWFtIHNhdCwgY2h1IGRhdSB0dSBoYXkgY28gcXVhbiBxdWFu IGx5LiBOZXUgY29uZyB0cmluaCBkYW5nIHRoaSBjb25nIHRoaSANCm5oYSB0aGF1IHNlIHBoYWkg Y2hpdSB0cmFjaCBuaGllbSBraGkgdGFpIG5hbiB4YXkgcmE7IGNvbiBjb25nIHRyaW5oIGRhIGJh biBnaWFvLCBuZ2hpZW0gDQp0aHUgbmV1IGNvIHRhaSBuYW4gY28gcXVhbiBxdWFuIGx5IHNlIHBo YWkgY2hpdSB0cmFjaCBuaGllbSB2b2kgbmd1b2kgZGFuLi4uDQoNClRoZW8gbmd1eWVuIHRhYywg ZG9uIHZpIG5hbyB0YWMgdHJhY2ggZGUgeGF5IHJhIHRhaSBuYW4gbmdoaWVtIHRyb25nLCBjaGV0 IG5ndW9pIHNlIGJpIHh1IA0KbHkgaGluaCBzdS4gIlZpIHRoZSwgbmV1IG5ndW9pIGRhbiBtdW9u IGtpZW4gdG9pIHNhbiBzYW5nIGhvIHRybyB2ZSBtYXQgcGhhcCBseSBkZSBuZ3VvaSANCmRhbiBu YW0gcm8gY2FuIGtpZW4gYWk6IG5oYSB0aGF1LCBjaHUgZGF1IHR1LCB0dSB2YW4gZ2lhbSBzYXQg aGF5IGRvbiB2aSBxdWFuIGx5PyIgLSBsdWF0IA0Kc3UgQ2h1bmcgY2hvIGJpZXQuDQpQaGFpIGNo YW5nIGRvIGNodWEgY28gYWkgYmkgdHJ1eSB0bywgY2h1YSBkdSBzdWMgcmFuIGRlIG5lbiB0aW5o IG1hbmcgY3VhIG5ndW9pIGRhbiB2YW4gDQpiaSBkYW5oIGN1b2Mgdm9pIHN1IGNodSBxdWFuLCB0 YWMgdHJhY2g/IA0KDQooQW5oOiBOaGlldSBobyB0dSB0aGFuIHh1YXQgaGllbiBnaXVhIGR1b25n IGtoaWVuIGNhYyBuaGEgdGhhdS4uLiBnaWF0IG1pbmguIE1vdCBjYW4gYm8gDQpuaGEgdGhhdSB0 aGkgY29uZyBkdSBhbiBOaGlldSBMb2MgLSBUaGkgTmdoZSB0aWV0IGxvLCBkb24gdmkgbmF5IGRh IGxhcCBkb2FuIGtpZW0gdHJhIA0KcmllbmcgZGUgcmEgc29hdCBjYWMgdHV5ZW4gZHVvbmcgdnVh IGhvYW4gdGhhbmggeGVtIGNvIGJpIGx1biBzdXQgbmhhbSBraGFjIHBodWMgc29tLiANCiJOZXUg cGhhdCBoaWVuIHNvbSBjYWMgdmV0IG51dCwgbG8gaG9uZyB0cmVuIGR1b25nIHRoaSBzdXQgbHVu IHNlIGtob25nIG5naGllbSB0cm9uZyIgLSBreSBzdSBuaGEgdGhhdSBuYXkgbm9pLikgDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8yMDEwMDkyMjE1MTQw NS5hc3B4IDIyLzA5LzIwMTAgNToxNCANCg0KVFAgSENNOiBUYWkgZGllbiBuYW4gZ2FpIGRpbmgg eGUgaG9pIGRlIHRyb20gdGllbiAtIHRpbmggaGluaCBBTlRUIHJhdCBrZW0gICAgDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOS8yMDEwMDkyMzE1NTg1NC5h c3B4IFRyaSBRdWFuZyAgMjUvMDkvMjAxMCA4OjU4IA0KDQpUUCBIQ006IE5odW5nICJoaWVwIHNp IiBjaG9uZyAiZGluaCB0YWMiIGJpIGRlIGRvYSAodGFpIFRQIEhDTSkgDQoNCihOaHVuZyAiaGll cCBzaSIgY2hvbmcgImRpbmggdGFjIiAtIEt5IDE6IENhbiBjaG9pICJiaWV0IGJheSIgYmVuIHhh IGxvKSANCg0KKFROTykgVGh1YyBraHV5YSBkYXkgc29tIHZhIHNhbiBzYW5nIGNoYXAgbmhhbiBu Z3V5IGhpZW0sIG5oaWV1IGJhbiB0cmUgZGFuZyBuZ2F5IA0KbmdheSB0aGFtIGxhbmcgdm9pIGhv YXQgZG9uZyBjaG9uZyAiZGluaCB0YWMiIHZhIGN1dSBuZ3V5IGNobyBoYW5nIG5nYW4gdHJ1b25n IGhvcCBiaSANCmNhbiBkaW5oIHRyZW4gZHVvbmcuIA0KDQpQViBiYW8gVGhhbmggTmllbiBPbmxp bmUgdnVhIGNvIG5odW5nIG5nYXkgcm9uZyBydW9pIGN1bmcgY2FjIGRvaSBjaG9uZyAiZGluaCB0 YWMiIA0KdmEgdmEgeGUgbHV1IGRvbmcgdGFpIFRQLkhDTS4NCg0KQ2FuIGNob2kgImJpZXQgYmF5 IiBiZW4geGEgbG8NCg0KRHVvaSBjaGFuIGNhdSB2dW90IHRyYW0gMiAoeGEgbG8gSGEgTm9pKSwg bmd1b2kgdGEgZGUgZGFuZyBuaGFuIHJhIG1vdCBjYW4gY2hvaSB0YW0gYm8gDQpkdW9jIGR1bmcg bGVuIGJvaSBib24gbWllbmcgdG9uIG1vbmcgbWFuaCwga2hvbmcgZGllbiB2YSBjdW5nIGNoYW5n IGNvIG51b2MuIA0KRG8gY2hpbmggbGEgbm9pIG1hIGRvaSB2YSB4ZSBsdXUgZG9uZyBRdWFuIGRv YW4gUS45IChUUC5IQ00pIGxhbSBjaG90ICJ2YW4gcGhvbmciIA0KZGUgaGFuZyBuZ2F5IHVuZyBj dXUgY2hvIG5odW5nIHRydW9uZyBob3AgYmkgY2FuIGRpbmggdHJlbiBkdW9uZy4NCg0KKEFuaCBj aHVwOiBUYW4gY2h1YW4gYmkgZG8gbmdoZSB2YSB4ZSBjaG8ga2hhY2ggY2FuIGRpbmggLSBBbmg6 IFRyaSBRdWFuZykgDQoNCkdvbmcgbWluaCBtdXUgc2luaA0KDQpCYXkgZ2lvIHNhbmcsIE5oYXQg VGFuIHZhIFR1YW4gVnUsIGhhaSB0aGFuaCB2aWVuIHhvbmcgeGFvIGN1YSBkb2kgdmEgeGUgbHV1 IGRvbmcgDQpRdWFuIGRvYW4gUS45LCB2YWMgZG8gbmdoZSBsZW4geGUgYmF0IGRhdSBtb3Qgbmdh eSBsYW0gdmllYyBtb2kuIA0KTmhpZW0gdnUgY3VhIGhvIGxhIGRhbyBtb3Qgdm9uZyBkb2MgeGEg bG8gSGEgTm9pLCB0dSBuZ2EgdHUgVGh1IER1YyBkZW4gbmdhIGJhIFRhbiANClZhbiBkZS4uLiBu aGF0IGRpbmguIA0KDQpDaG9jIGNob2MsIFRhbiBsYWkgbmhheSBwaG9jIHh1b25nIHhlIHJvaSBj dWkgbmd1b2kgbHVvbSB0dW5nIGNheSBkaW5oIGhpbmggYWNoIHJvIGJvIA0KdmFvIGNhaSB0dWkg bmhvLiBEYW5nIG5ndW9pIGNvbSBuaG9tIGN1YSBjaGFuZyB0cmFpIDIxIHR1b2kgdHJvIG5lbiBt byBhbyB2YSBjaGVuaCANCnZlbmggZ2l1YSBuaHVuZyBsYW4geGUgY28gbHVvdCBiYW5nIGJhbmcs IGFtIGFvIHRyZW4gZHVvbmcuIA0KDQooQW5oIGNodXA6IERvIGNodWEgZHVvYyB0cmFuZyBiaSBt YXkgaHV0IGRpbmggbmVuIFRhbiB2YSBjYWMgYmFuIHRyb25nIGRvaSBwaGFpIGx1b20gDQpkaW5o IGJhbmcgdGF5IC0gQW5oOiBUcmkgUXVhbmcpDQoNClNhdSBtb3QgbmFtIHJ1b2kgaG9hdCBkb25n LCBkb2kgY3VhIFRhbiB2YSBWdSB2YW4gY2h1YSBkdW9jIHNhbSBtYXkgaHV0IGRpbmggdmEgaG8g DQpwaGFpIGx1b20gYmFuZyB0YXkga2hvbmcgbmVuIHJhdCBjdWMuIA0KDQoiRG8gbHVvbSB0YXkg bmVuIG1vaSBuZ2F5IGJvbiBtaW5oIHRodSBraG9uZyBkdW9jIG5oaWV1IGRpbmggY2hvIGxhbS4g RGEgc28gbGEgbG9haSANCmRpbmggbGEgaGluaCBjb24gYWNoIHJvLCBjb24gbGFpIGxhIGRpbmgg Y2hpLiBQaGFpIGNoaSBkb2kgY3VhIG1pbmggZHVvYyBzYW0gbWF5IGh1dCBkaW5oIA0KdGhpIGNv bmcgdmllYyBjdW5nIHNlIGhpZXUgcXVhIGhvbiIsIFRhbiBub2kuIA0KDQpUYW4gdmEgVnUgZGV1 IGxhIGJvIGRvaSB2YSBkYW4gcXVhbiB4dWF0IG5ndSwgaG8gdGluaCBuZ3V5ZW4gdGhlbyBkdW9p IGNvbmcgdmllYyB0aGFtIA0KbGFuZyB0cmVuIG5nYXkgdHUgbmh1bmcgbmdheSBkYXUgdGhhbmgg bGFwIGNobyBkdSBraG8ga2hhbiB0cmFtIGJlLiANCg0KVGhvbmcgcXVhIGhhaSBzbyBkaWVuIHRo b2FpICJub25nIiAwMTIyNjY4MjYyNiAtIDAxMjI2NjgyNzI3LCBtb2kgbmdheSBkb2kgdmEgeGUg DQpRdWFuIGRvYW4gUS45IGNoaWEgcmEgaGFpIGNob3QsIGxhbSB2aWVjIHR1IDcgZ2lvIHNhbmcg ZGVuIDE4IGdpbyB0b2kuIEhlIGNvIG5ndW9pIGdvaSANCmRpZW4gbHVjIG5hbyB0aGkgdGhhbmgg dmllbiBjdWEgZG9pIGNvIG1hdCBsdWMgZG8gZGUgaG8gdHJvLiANCg0KIlRoYW0gY2hpIHNhdSBr aGkgZGEgdGFuIGNhLCBjbyBraGFjaCBjYXUgY3V1IG5nYXkgZ2l1YSAyMiBnaW8gZGVtLCBib24g bWluaCBjdW5nIA0KcGhhaSBjaGF5IHJhIHZhIHN1YSBnaXVwIiwgVGFuIG5vaS4gDQoNCk1vaSBs YW4gdmEsIGNhYyB0aGFuaCB2aWVuIHRyb25nIGRvaSBraWVtIGR1b2MgdHUgOC4wMDAgZG9uZyBk ZW4gMTAuMDAwIGRvbmcgdHV5IA0Ka2hvYW5nIGNhY2ggZGkgY2h1eWVuIHhhIGhheSBnYW4uIFRp bmggcmEgbW9pIG5nYXkgY2EgZG9pIGJvbiB0aGFuaCB2aWVuIGNoaSBraWVtIA0KZHVvYyBraG9h bmcgdHUgODAuMDAwIGRvbmcgZGVuIDEwMC4wMDAgZG9uZyB2YSB0YXQgY2EgZGV1IHNvbmcgcXVh IG5nYXkgYmFuZyBzbyB0aWVuIA0KaXQgb2kgZG8uIA0KDQooQW5oIGNodXA6IENhYyB0aGFuaCB2 aWVuIHRyb25nIGRvaSB2YSB4ZSBsdXUgZG9uZyBRdWFuIGRvYW4gUS45IGRhbmcgZ29uZyBtaW5o IHZvaSANCmNodXllbiBjb20gYW8gZ2FvIHRpZW4gdHVuZyBuZ2F5IGRlIGJhbSB0cnUgdm9pIGNv bmcgdmllYyB0aGFtIGxhbmcgLSBBbmg6IFRyaSBRdWFuZykNCg0KIkNvIGxhbiBib24gbWluaCB2 dWEgdmEgeGUgeG9uZyBjaG8ga2hhY2ggbmhpbiBsYWkgdGhheSBoYWkgYmFuaCB4ZSBjdWEgbWlu aCB4ZXAgbGVwIA0KbHVjIG5hbyBraG9uZyBiaWV0LCBkYW5oIGdvaSBkaWVuIGNhdSBjdXUgZG9u ZyBkb2kiLCBUdWFuIFZ1IGtlIGdpb25nIGNodWEgY2hhdC4gICANCg0KIkhpZW4gbmF5IGRvaSB2 YSB4ZSBsdXUgZG9uZyBRLjkgdmFuIGNodWEgY28gZHVvYyBtYXkgaHV0IGRpbmguIFF1YW4gZG9h biBkYSBkZSB4dWF0IA0Kcm9pIG5odW5nIGxhbmggZGFvIHF1YW4gdmFuIGRhbmcgeGVtIHhldC4g U2FwIHRvaSwgY2h1bmcgdG9pIHNlIG11YSA1IGNoaWVjIHhlIG1heSBob2EgDQpnaWEgZGUgaG8g dHJvIGNobyBjYWMgYmFuIGxhbSB2aWVjLCBkb25nIHRob2kgdmFuIGRvbmcgdGhlbSBjYWMgbmhh IHRhaSB0cm8gZGUgY2FpIHRoaWVuIA0KY3VvYyBzb25nIGN1YSBjYWMgdGhhbmggdmllbiwgdmEg ZGFjIGJpZXQgY2h1bmcgdG9pIHNlIG11YSBiYW8gaGllbSB0YWkgbmFuIGNobyBjYWMgYmFuIA0K eWVuIHRhbSBsYW0gdmllYy4gDQpBbmggZW0gdHJvbmcgZG9pIGN1bmcgY28gc2FuZyBraWVuIHRp bSBtYXQgYmFuZyBtbyByb25nIHRoYW5oIGRpZW0gdnVhIG5oYW4gcnVhIHhlIA0KdnVhIGxhbSBj b25nIHRhYyBzdWEgdmEgeGUgbHV1IGRvbmcgZGUgZ2l1cCBkbyBjaG8gbmd1b2kgZ2FwIG5hbi4g UXVhbiBkb2FuIHNlIGhvIHRybyANCmtpbmggcGhpIGRlIGNhYyBiYW4gbGFtIHRodSBuZ2hpZW0g bW8gaGluaCBuYXkiIC0gQW5oIENhbyBUaGFuaCBCaW5oLCBCaSB0aHUgUXVhbiANCmRvYW4gUS45 Lg0KDQpUcm9uZyBtb3QgbmFtIHJ1b2kgcXVhLCBkYSB0dW5nIGNvIG5oaWV1IHRoYW5oIHZpZW4g cGhhaSB0dSBibyBjb25nIHZpZWMgdmEgeGUgbHV1IA0KZG9uZyBnaXVhIGNodW5nIGRlIHRpbSB2 aWVjIGtoYWMgdmkgdGh1IG5oYXAga2hvbmcgZHUgc29uZy4gDQoNClR1b25nIHR1IG5odSB2YXks IG1vdCBzbyB0aGFuaCB2aWVuIHRyb25nIGJhIGRvaSB2YSB4ZSBsdXUgZG9uZyBjdWEgUXVhbiBk b2FuIA0KUS5UaHUgRHVjICBjdW5nIGdhcCBraG9uZyBpdCBraG8ga2hhbi4gTWF5IG1hbiBsYSBt b3Qgc28gdGhhbmggdmllbiBraGFjIGNvIHRpZW0gc3VhIA0KdmEgeGUgcmllbmcgbmVuIGN1bmcg dHVvbmcgdHJvIGxhbiBuaGF1IGRlIHNvbmcgdmEgY3VuZyBsYW0gdG90IGNvbmcgdGFjIGR1b2Mg Z2lhby4NCkNhbiBjaG9pICJkaSBkb25nIg0KDQpDYWMgdGhhbmggdmllbiB0cm9uZyBkb2kgY3Vh IEtpbSBDaGkgdHJhbmggbmFuZyB0cnUgbXVhIHRyb25nICJ2YW4gcGhvbmciIDRtMiBkdW5nIA0K dHJlbiBuZW4gZGF0IGdvIGdoZSBhbSB0aGFwIGR1b2kgZ2FtIGNhdSB2dW90IHRyYW0gMi4gQmVu IHRyb25nIGxhIGxpbmgga2luaCBjYWMgbG9haSBkbyANCm5naGUgdmEgc3VhIHhlIGN1IGt5IHZh IGNhaSBtYXkgYm9tIG5oby4gDQoNCiAoQW5oIGNodXA6ICJWYW4gcGhvbmciIGN1YSBkb2kgdmEg eGUgbHV1IGRvbmcgUXVhbiBkb2FuIFEuOSB0aHVvbmcgeHV5ZW4gYmkgdHJvbSANCiJkb24iIGRv IC0gQW5oOiBUcmkgUXVhbmcpDQoNCkRvaSB0cnVvbmcgZG9pIHZhIHhlIGx1dSBkb25nIFF1YW4g ZG9hbiBRLjkgS2ltIENoaSBnbyBnbyB2YW8gdGFtIHRvbiB0cmFuZyBjb20gY29wIA0Kbm9pOiAi Q2FpIGNob2kgbmF5IGJvbiBtaW5oIGRhIGNodXllbiBkaSBjaHV5ZW4gbGFpIG1heSBjaG8gcm9p IGRvLCBoaWVuIHRhaSBubyB0YW0gInF1YSANCmNhbmgiIGxhaSBkYXkuIENvIGtoaSB2YWkgYmEg bmdheSBsYWkgImJheSIgc2FuZyBjaG8ga2hhYyBraG9uZyBjaHVuZyB2aSBkdSBzYW8gYm9uIA0K bWluaCBjdW5nIGtob25nIGR1b2MgcGhlcCB0dSB5IGR1bmcgY2FpIGNob2kgbmh1IHRoZSIuIA0K DQpDaGkgZGEgImR1b2MiIHRyYXQgdHUgZG8gdGhpIHBodW9uZyBtb2kgbGVuIGxhbSB2aWVjIG1h eSBsYW4gdmkgdHUgeSBkdW5nICJ2YW4gcGhvbmciIA0KdHJlbiBsZSBkdW9uZyBkb2MgeGEgbG8u IA0KDQoiVmFuIGRlIG5hbSBvIGNobyBib24gbWluaCBraG9uZyBjbyBub2kgZGUgZHVuZyB0aWVt IHZhIHN1YSB4ZSB2YSBkZSBsYW0gbm9pIHRydSBuZ3UgDQpoYW5nIG5nYXkga2hpIGxhbSB2aWVj LiBEb2kgY2hpIGNvbiB0cm9uZyBjaG8gdmFvIHN1IHRob25nIGNhbSBjdWEgY2hpbmggcXV5ZW4g ZGlhIA0KcGh1b25nIGNodSBnaW8gY3VuZyBraG9uZyBiaWV0IHBoYWkgbGFtIHNhbyIsIENoaSBn aWFpIHRoaWNoLiANCg0KRGEga2hvIGxhaSBjb24gZ2FwIGVvLCB0aGFuZyBuYW8gY2FuIGNob2kg Y3VhIGRvaSBDaGkgY3VuZyBiaSBib24gZGFvIGNoaWNoIGdoZSAidGhhbSIgDQpkZXUgZGFuIDMt NCBsYW4uIE1vaSB0dWFuIHRydW9jLCB0b2FuIGJvIGRvIG5naGUsIG1heSBib20gbWEgZG9pIGRl IGxhaSBkYSBiaSB0cm9tIGNheSANCmN1YSBkb3QgbmhhcCB2YW8gImRvbiBkZXAiIHNhY2ggc2Uu DQoNCihBbmggY2h1cDogTW9pIG5nYXksIG5ob20gY3VhIFRhbiB0aHUgbHVvbSBkdW9jIGtob25n IGl0IGJheSBkaW5oIGN1YSBib24gImRpbmggDQp0YWMiIC0gQW5oOiBUcmkgUXVhbmcpDQoNCkRh bmcgcmFtIHJhbiB0cm8gY2h1eWVuIGdpdWEgdHJ1YSwgZGllbiB0aG9haSBUYW4gZG90IG5nb3Qg cmVvIGxlbi4gTGFuIG5heSBraG9uZyBwaGFpIA0KY3VvYyBnb2kgY2F1IGN1dSB0dSBuZ3VvaSBn YXAgbmFuIHRyZW4gZHVvbmcgbWEgbGEgdGluIG5oYW4gZGUgZG9hIGN1YSBrZSBsYSBtYXQgdm9p IG5vaSANCmR1bmcgInNhYyIgbXVpIHhhIGhvaSBkZW46ICJBaSBjaG8gdHVpIGJheSB2YSB4ZSBu Z29haSBkdW9uZy4gQ29pIGNodW5nIHRhbyBkbyEiLiANClRhbiBkb2MgdGluIG5oYW4gY2hvIGNh IGRvaSBuZ2hlIHhvbmcgcm9pIGN1b2k6ICJDaHV5ZW4gbmF5IHhheSByYSBuaHUgY29tIGJ1YS4g VHVpIA0KbmF5IG5oYW4gY2EgdHJhbSB0aW4gbmhhbiBuaHUgdmF5IHJvaS4gQ29uIGNvIG5oaWV1 IHZ1IG5oYSBtYXksIGdvaSBkaWVuIHF1YXkgcm9pLCANCmtodW5nIGJvIHRpbmggdGhhbiBudWEg a2lhISIuDQoNClZlIG5hbiBiaSBuaGFuIHRpbiwgZ29pIGRpZW4ga2h1bmcgYm8sIGNhYyB0aGFu aCB2aWVuIHZhIHhlIGx1dSBkb25nIGN1YSBRLlRodSBEdWMgDQpjdW5nIGdhcCB0aHVvbmcgeHV5 ZW4uIFZhIHRoYW0gY2hpLCBtb3QgdHJvbmcgYmEgZG9pIHZhIHhlIGx1dSBkb25nIGN1YSBxdWFu IA0KbmF5IGRhIHR1bmcgYmkgbW90IGRhbSBkb25nIGNvbiBkbyB0aWVwIGNhbiBkb2EgbmF0IGhh bmggaHVuZywgcmF0IG1heSBraG9uZyBjbyBhaSBiaSB0aHVvbmcgdGljaC4gICANCihDb24gdGll cCkgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0Ni8yMDEw MTExMzA5MTE0Mi5hc3B4IE4uUGh1IFRoZW8gTmd1b2kgTGFvIERvbmcgMTMvMTEvMjAxMCA5OjEx IA0KDQpUUCBIQ006ICJEaW5oIHRhYyIgbG9uZyBoYW5oIHRybyBsYWkgICANCiAgDQpDaGkgdHJv bmcgYnVvaSBzYW5nIDEyLTExLCBuaGlldSB4ZSBtYXkgYmkgZGluaCBkaW5oIHRyZW4gUXVvYyBs byAxQSBkb2FuIGRpIHF1YSBkaWEgDQpiYW4gVFBIQ00gbCBIaW5oIHRoYW5oIG5oaWV1ICJjdW5n IGR1b25nIGRpbmgiIG8gQmluaCBEdW9uZy4gDQoNClNhdSBraGkgYmFvIGNoaSBsZW4gdGllbmcs IGNvIHF1YW4gY2h1YyBuYW5nIGRvbmcgbG9hdCB2YW8gY3VvYywgbmFuIHJhaSBkaW5oIHRyZW4g Y2FjIA0KdHV5ZW4gcXVvYyBsbyBvIFRQSENNIHZhIEJpbmggRHVvbmcgZGUgImJheSIgbmd1b2kg ZGkgZHVvbmcgdGFtIGxhbmcgeHVvbmcuIE5heSANCnRpbmggdHJhbmcgbmF5IGRhbmcgdGFpIGRp ZW4sIG5oaWV1ICJkaW5oIHRhYyIgbW8gcm9uZyBkaWEgYmFuIGhvYXQgZG9uZyBzYW5nIGNhYyB0 dXllbiBkdW9uZyBtb2kuDQoNClJhaSBkaW5oIGdpdWEgYmFuIG5nYXkNCiANCkNoaWV1IDEwLTEx LCBjYWMgdGhhbmggdmllbiB0cm9uZyBkb2kgcGhvbmcgY2hvbmcgImRpbmggdGFjIiB0aHVvYyBR dWFuIGRvYW4gVGh1IA0KRHVjLVRQSENNIGRhbmcgZGlldSBraGllbiB4ZSBodXQgZGluaCBsYW0g bmhpZW0gdnUgdHJlbiBkdW9uZyB0aGkgcGhhdCBoaWVuIDIgdGhhbmggDQpuaWVuIGNvIGRhdSBo aWV1IGRhbmcgdGh1YyBoaWVuIGhhbmggdmkgcmFpIGRpbmggdHJlbiBRdW9jIGxvIDFBIChraHUg dnVjIGNhdSB2dW90IFNvbmcgDQpUaGFuIGdpYXAgcmFuaCBnaXVhIHRpbmggQmluaCBEdW9uZyB2 YSBxdWFuIFRodSBEdWMpLiANCg0KTGFwIHR1YywgbW90IHRoYW5oIHZpZW4gdHJvbmcgZG9pIGR1 bmcgeGUgbWF5IGJhbSB0aGVvLiBCaSBiYWkgbG8sIDIgZG9pIHR1b25nIG5heSBkYSANCnR1bmcg dG9hbiBibyBzbyBkaW5oIGRhbmcgY2FtIHRyZW4gdGF5IHJhIG1hdCBkdW9uZyB2YSBuaGFuaCBj aG9uZyBybyBtYXkgeGUgdGF1IHRob2F0IA0KdmUgaHVvbmcgdGluaCBCaW5oIER1b25nLiBUb2Fu IGJvIG5odW5nIG1hbmggZGluaCB0aGVwIGhpbmggdGhvaSBjb24gcmF0IG1vaSBzYXUgZG8gDQpk dW9jIG5ndW9pIGRhbiBkdW5nIGNob2kgY3VuZyB2b2kgeGUgaHV0IGRpbmggZ29tIGxhaSwgdG9u ZyBjb25nIGhvbiBudWEga2cuDQogDQpUaGVvIGFuaCBMZSBNaW5oIER1YywgQmkgdGh1IFF1YW4g ZG9hbiBUaHUgRHVjLCBuYW4gcmFpIGRpbmggdHJlbiBRdW9jIGxvIDFBIGRpIHF1YSANCmRpYSBi YW4gcXVhbiBUaHUgRHVjIGRhIGdpYW0gbmhpZXUga2hpIFF1YW4gZG9hbiBkdWEgY2FjIHhlIGh1 dCBkaW5oIHZhbyBob2F0IGRvbmcgDQpuaHVuZyB2YWkgbmdheSB0cm8gbGFpIGRheSwgY2h1eWVu IG5heSBiYXQgZGF1IGdpYSB0YW5nIHRybyBsYWkuIEFuaCBMZSBIb25nIEFuaCwgZG9pIA0KdHJ1 b25nIGRvaSB2YSB4ZSBsdXUgZG9uZyBwaHVvbmcgVGFtIEJpbmgsIGNobyBiaWV0ICJ0cm9uZyBu aHVuZyBuZ2F5IGdhbiBkYXksIG1vaSANCm5nYXkgZG9pIHZhIHhlIG5oYW4gNC01IGN1b2MgZ29p IGN1YSBuZ3VvaSBkaSBkdW9uZyBiaSBkaW5oIGRpbmgsIHRyb25nIGtoaSB0cnVvYyBkbyBjaGkg DQpraG9hbmcgMS0yIG5ndW9pL25nYXkiLg0KDQooQW5oOiBIb24gMTAga2cgZGluaCBkdW9jIHRv IHBob25nIGNob25nIHJhaSBkaW5oIGx1YyBsdW9uZyBUTlhQIHRpbmggQmluaCBEdW9uZyANCnRo dSBnb20gdHJvbmcgdm9uZyAzIHRoYW5nIC0gQW5oOiBOaHUgSGFpKSANCg0KU2FuZyAxMi0xMSwg dHJlbiBRdW9jIGxvIDFBIChkb2FuIGRpIHF1YSBwaHVvbmcgQW4gUGh1IERvbmcsIHF1YW4gMTIp LCBzYXUga2hpIGNoaWVjIA0KeGUgYW5oIERvYW4gVmluaCBUaHVhbiAobmd1IFRodSBEdWMpIGJp IHRodW5nIGJhbmggcGhhaSBkYXQgdmFvIHRpZW0gdmEgeGUgQy5OIGRlIA0KdmEsIGNoaSB2YWkg cGh1dCBzYXUgY28gZGVuIDMgY2hpZWMgeGUgbWF5IGtoYWMgY3VuZyB0cm9uZyB0aW5oIHRyYW5n IHR1b25nIHR1IGR1b2MgDQpuZ3VvaSBkaSBkdW9uZyBkYW4gdmFvIHRpZW0gQy5OLiANCg0KIkN1 bmcgZHVvbmcgZGluaCIgbW9pDQogDQpDb24gdGFpIEJpbmggRHVvbmcsIGFuaCBQaGFtIEhvbmcg VGhhbmcsIENoaSBodXkgdHJ1b25nIEJhbiBDaGkgaHV5IFROWFAgdGluaCANCkJpbmggRHVvbmcg KHRodW9jIFRpbmggZG9hbiBCaW5oIER1b25nKSwgY2hvIGJpZXQgc2F1IGtoaSBjYWMgImRpbmgg dGFjIiBiaSBiYXQsIG5hbiANCnJhaSBkaW5oIHRyZW4gZGlhIGJhbiB0aGkgeGEgVGh1IERhdSBN b3QgZ2FuIG5odSBraG9uZyBjb24sIHR1eSBuaGllbiBtb3Qgc28gdGllbSBzdWEgDQp4ZSBuYW0g dHJvbmcgImRhbmggc2FjaCBkZW4iIHZhbiBjbyBob2F0IGRvbmcuIERhYyBiaWV0IGhpZW4gbmF5 IGRhIGhpbmggdGhhbmggbmh1bmcgDQoiY3VuZyBkdW9uZyBkaW5oIiBtb2kgdHJlbiBkYWkgbG8g QmluaCBEdW9uZywgbmh1IGRvYW4gZ2FuIHRyYW0gdGh1IHBoaSBWaW5oIFBodSANCihodXllbiBU aHVhbiBBbiksIGtodSB2dWMgY29uZyBLQ04gTXkgUGh1b2MsIG5nYSBiYSBMYW5nIFhpIChodXll biBCZW4gQ2F0KS4uLiANCiANCihBbmg6IFhlIGFuaCBEb2FuIFZpbmggVGh1YW4gKG5ndSBUaHUg RHVjKSBiaSBiZSBiYW5oIHhlIGRvIGNhbiBwaGFpIGRpbmggdHJlbiBRdW9jIA0KbG8gMUEgZG9h biBkaSBxdWEgZGlhIGJhbiBxdWFuIDEyLVRQSENNIHRydWEgMTItMTEuIEFuaDogR2lhbmcgUGh1 b25nKSANCg0KQ2FjIHRoYW5oIHZpZW4gdHJvbmcgbHVjIGx1b25nICBUTlhQIGR1YSBjaHVuZyB0 b2kgeGVtIGNoaWVuIGxvaSBwaGFtIG1hIHhlIGh1dCBkaW5oIA0KdGh1IHZlIHRyb25nIHZvbmcg MyB0aGFuZyB0cm8gbGFpIGRheSBsYSBtb3QgeG8gZGluaCBuYW5nIGhvbiAxMCBrZy4gIk9uIG5o YXQgbGEga2hpIGNoYXkgDQpxdWEgZG9hbiBnYW4gdHJhbSB0aHUgcGhpIFZpbmggUGh1LCBkaW5o IG5oaWV1IGRlbiBub2kgY2h1bmcgdG9pIG5naGUgdGllbmcgbmFtIGNoYW0gDQpodXQgbGllbiB0 dWMsIGhvaSBzYW8gbWEgeGUgbmd1b2kgZGkgZHVvbmcga2hvbmcgYmkgY2FuPyItIGFuaCBUaGFu ZywgbW90IHRoYW5oIHZpZW4gDQpsdWMgbHVvbmcgIFROWFAsIGtlLiAgVGhlbyBhbmggVGhhbmcs IG5nb2FpIHZpZWMgcmFpIGRpbmgsIHRoYXkgcnVvdCB4ZSwgbmhpZXUgdGllbSBjb24gDQprZXQg aG9wIHZ1YSB0aGF5IHJ1b3QgdnVhIHBoYSBob25nIHhlIGtoYWNoIGRlIHZvaSB0aWVuLiBUaW5o IGRvYW4gZGEga2hvYW5oIHZ1bmcgdmEgDQpiYW8gY2FvIGhpZW4gdHJhbmcgdHJlbiBjaG8gY28g cXVhbiBjaHVjIG5hbmcgYmlldCBkZSB4dSBseS4gDQoNCiJEaW5oIHRhYyIgc2FwIGhhdSB0b2Eg DQoNClNhdSB0aG9pIGdpYW4gZGlldSB0cmEsIG5nYXkgMTItMTEsIHRodW9uZyB0YSBOZ3V5ZW4g UXVvYyBUdWFuLCBQaG8gdGh1IHRydW9uZyBjbyBxdWFuIA0KQ1NEVCBDb25nIGFuIHRoaSB4YSBU aHUgRGF1IE1vdCwgdGluaCBCaW5oIER1b25nLCBjaG8gYmlldCBkYSBjaHV5ZW4gaG8gc28gdnUg YW4gDQpzYW5nIFZLU05EIGN1bmcgY2FwIGRlIHRydXkgdG8gIiBkaW5oIHRhYyIgTmd1eWVuIFZh biBDb25nIChhbmgpIHRvaSAiQ28geSBsYW0gaHUgDQpob25nIHRhaSBzYW4iLiBUcnVvYyBkbywg bmdheSAxNi04LCBDb25nIGJpIGNhYyAiaGllcCBzaSIgcGh1b25nIFBodSBIb2EsIHRoaSB4YSBU aHUgDQpEYXUgTW90IGJhdCBxdWEgdGFuZyBkYW5nIHJhaSBkaW5oIHRyZW4gZHVvbmcuIA0KDQpU aGVvIGtldCBsdWFuIGRpZXUgdHJhLCBuZ2F5IDEzLTcsIE5ndXllbiBWYW4gQ29uZyAoMjAgdHVv aSkgdmFvIG8gdmEgbGFtIHRyb25nIHRpZW0gDQpzdWEgeGUgZG8gRGluaCBWYW4gU2FuZyAoY3Vu ZyBxdWUgTmluaCBCaW5oKSBsYW0gY2h1IHRyZW4gZGFpIGxvIEJpbmggRHVvbmcsIHBodW9uZyAN CkhpZXAgVGhhbmgsIHRoaSB4YSBUaHUgRGF1IE1vdC4gRGUgZHVvYyBkYXkgbmdoZSwgQ29uZyBk YSBuZ2hpIGNhY2ggZHVuZyBrZW8gdHJvbmcgdGllbSANCmNhdCBjYWMgbWllbmcgc2F0IG1vbmcg bWEgQ29uZyB0dSBkaSBtdWEgbyB2dWEgdmUgY2hhaSB2ZSB0YW8gdGhhbmggY2FjIG1pZW5nIHNh dCANCm5ob24gaGluaCB0YW0gZ2lhYyByb2kgcmFpIHRyZW4gZHVvbmcgdm9pIG11YyBkaWNoIGxh bSBob25nIHJ1b3QgeGUgY3VhIG5ndW9pIGRpIGR1b25nIA0KZGUgdmEgaG9hYyB0aGF5LiANCg0K VHJvbmcga2hvYW5nIDEgdGhhbmcgdmFvIG8gdGllbSBTYW5nIGRlbiBraGkgYmkgYmF0LCBDb25n IGRhIHJhaSBkaW5oIGtob2FuZyAxMCBsYW4uIA0KTW9pIG5nYXksIENvbmcgdHJ1YyB0aWVwIHRo YXkgcnVvdCB4ZSBjaG8ga2hhY2ggMy00IGxhbiwgZ2lhIHR1IDQ1LjAwMC01MC4wMDAgZG9uZy9y dW90LiANClRpZW4gdGh1IGR1b2MgQ29uZyBibyB0cm9uZyBsb24gc2F0IGRlIHZvIGNob25nIFNh bmcgY2hpIHRpZXUgY2h1bmcgY2hvIGNhIG5oYSAoY28gY2EgDQpDb25nKS4gVm8gY2hvbmcgU2Fu ZyBraGFpIGtoaSBsYXkgdGllbiBuZ2hpIGRheSBsYSB0aWVuIGRvIENvbmcgc3VhIHhlIG1hIGNv LCBraG9uZyANCmJpZXQgaGFuaCB2aSByYWkgZGluaCBjdWEgQ29uZy4gDQoNCkNvIHF1YW4gQ1NE VCBrZXQgbHVhbiBoYW5oIHZpIGN1YSBDb25nIGR1IHlldSB0byBjYXUgdGhhbmggdG9pICJjbyB5 IGxhbSBodSBob25nIHRhaSANCnNhbiIgcXV5IGRpbmggdGFpIGRpZXUgMTQzIEJvIEx1YXQgSGlu aCBzdS4gUmllbmcgdGllbSBzdWEgeGUgY3VhIFNhbmcga2hvbmcgY28gZ2lheSANCnBoZXAga2lu aCBkb2FuaCwgY28gcXVhbiBDU0RUIHNlIHRpZXAgdHVjIHhhYyBtaW5oIGxhbSBybyBoYW5oIHZp IGtpbmggZG9hbmggY3VhIFNhbmcgZGUgeHUgbHkgdGhlbyBsdWF0IGRpbmguIA0KDQpodHRwOi8v dmlldGJhby52bi9YYS1ob2kvVFAtSENNLUdpZXQtbmd1b2ktY3VvcC1jdWEtZ2l1YS1iYW4tbmdh eS8yMDc1NTQ5MS8xNTcvIER1YyBMb25nKHRvbmcgaG9wKSAxOC8xMS8yMDA3LCAxNTo1OSBHTVQr NyANCg0KVFAuSENNOiBHaWV0IG5ndW9pIGN1b3AgY3VhIGdpdWEgYmFuIG5nYXkgDQoNCkNoaWV1 IDE3LzExLCBtb3QgdnUgZ2lldCBuZ3VvaSB0YW8gdG9uIHhheSByYSB0YWkgY3VhIGhhbmcgYmFu IGRvIHRob2kgdHJhbmcgQmx1ZSAoNDEyIA0KVHJ1b25nIENoaW5oLCBQLjEzLCBRLlRhbiBCaW5o LCBUUC5IQ00pLiBOYW4gbmhhbiBsYSBOZ3V5ZW4gSG9hbmcgTWluaCBUaHUgKDE5IA0KdHVvaSwg cXVlIEFuIEdpYW5nKSwgbmhhbiB2aWVuIGJhbiBoYW5nIHRhaSBjdWEgaGFuZyBuYXkuDQoNClRo b25nIHRpbiBiYW4gZGF1IGNobyBiaWV0LCB0cnVvYyBkbyBjaHVuZyAxIGdpbywgaHVuZyB0aHUg ZGEgZ2lhIGRhbmcga2hhY2ggbXVhIGhhbmcgDQpsb3QgdmFvIGN1YSBoYW5nIHZhIGRhbSBjaGV0 IG51IG5oYW4gdmllbiBiYW5nIG5oaWV1IG5oYXQgZGFvLiBCb24gY2h1bmcgZGEgY3VvcCBzbyAN CnRpZW4gbWF0IGtob2FuZyAxIHRyaWV1IGRvbmcgdmEgdGF1IHRob2F0IG1hIGtob25nIGJpIG5o YW4gdmllbiBnaXUgeGUgcGhpYSB0cnVvYyBwaGF0IA0KaGllbi4gDQoNCmh0dHA6Ly93b3JsZGN1 cC5ubGQuY29tLnZuLzkwMjIwcDBjMTAwMi9haS1kYS14YS14ZW8tMTUwMC1oYS1kYXQtbm9uZy10 cnVvbmctLmh0bSAgQ2FtIExhbiAwOC8wMS8yMDA0IDIyOjIzIA0KDQpUUCBIQ006IENodWEga2hv aSB0byB2dSB4YSB4ZW8gMTUwMCBoYSBkYXQgbm9uZyB0cnVvbmcgLSB0aGkgbmhhdSBjaGllbSBk YXQgKG8gVFAgSENNKSANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1RQLUhDTS1HaWV0LW5n dW9pLWN1b3AtY3VhLWdpdWEtYmFuLW5nYXkvMjA3NTU0OTEvMTU3LyBEdWMgTG9uZyh0b25nIGhv cCkgMTgvMTEvMjAwNywgMTU6NTkgR01UKzcgDQoNClRQLkhDTTogR2lldCBuZ3VvaSBjdW9wIGN1 YSBnaXVhIGJhbiBuZ2F5ICh0aWVwKSANCg0KS2UgdHUgZGF1IG5hbSBkZW4gbmF5IHRyZW4gZGlh IGJhbiBUUC5IQ00gbGllbiB0dWMgeGF5IHJhIGNhYyB2dSBjdW9wIGdpYXQsIGdpZXQgbmd1b2kg DQpuZ3V5IGhpZW0sIHRhbyB0b24gaG9uIGJvbiBjaHVuZyBjb24gZ2F5IGFuIGdpdWEgYmFuIG5n YXkgdmEgbmdheSBjYSB0cm9uZyBraHUgdnVjIA0KZG9uZyBuZ3VvaSBxdWEgbGFpOiANCg0KKyBO Z2F5IDE2LzAxLCBtb3QgdnUgY3VvcCBuZ2hpZW0gdHJvbmcgdnVhIHhheSByYSB0cmVuIGR1b25n IERhbmcgVmFuIE5ndSwgcGh1b25nIA0KMTAsIHF1YW4gUGh1IE5odWFuKFRQLkhDTSksIG5hbiBu aGFuIGxhIGdpYW0gZG9jIG1vdCBkb2FuaCBuZ2hpZXAuDQoNCisgVHJ1YSBuZ2F5IDE1LzIsIG1v dCBiYW5nIGN1b3AgZ29tIGJvbiB0ZW4gZ2lhIGRhbmcga2hhY2ggaGFuZyBtdWEgdmFuZyB2YSBk dW5nIA0Kc3VuZyBraG9uZyBjaGUgY2h1IHRpZW0gY3VvcCBkaSAyMDAgdHJpZXUgZG9uZywgMS42 MDAgZG8gbGEgVWMgcm9pIGxlbiB4ZSBnYW4gbWF5IHRhdSANCnRob2F0Lg0KDQorIE5nYXkgMTMv Niwga2UgY3VvcCBkYSBkdW5nIHN1bmcgdXkgaGllcCBjaHUgdGllbSB2YW5nIE5nb2MgQ2hhdSBj dW9wIGRpIGhvbiAyMCANCmx1b25nIHZhbmcgdmEgbmhpZXUgbnUgdHJhbmcgY28gZ2lhIHRyaSBr aGFjLiBCb24gY3VvcCBnYXkgYW4gZ2l1YSBiYW4gbmdheSB2YSB0YWkgbm9pIA0KZG9uZyBuZ3Vv aSBxdWEgbGFpLg0KDQorIE5nYXkgMTkvNiwgQW5oIFBoYW0gSHV1IEhpZXAgKDI3IHR1b2kpIGJp IGJhbiBjaGV0IG5nYXkgdGFpIGN1YSBuaGEgbWluaCBzYXUga2hpIGJpIA0KNCB0ZW4gY3VvcCBr aG9uZyBjaGUsIGN1b3AgY2hpZWMgeGUgbWF5IFNILg0KDQorIDE0aCBjaGlldSBuZ2F5IDI1LzYs IG1vdCB2dSBkdW5nIHN1bmcgY3VvcCB0aWVtIHZhbmcgZGEgeGF5IHJhIHRhaSBUUC5IQ00gbmh1 bmcgDQpib24gdGVuIGN1b3AgZGEga2hvbmcgdGhhbmggY29uZyB0cm9uZyBwaGkgdnUgdGFvIHRv biBuYXkuDQoNCisgTmdheSAzLzcsIG1vdCB2dSBjdW9wIHRpZW4gbmdhbiBoYW5nIGtob25nIHRo YW5oIGRhIHhheSByYSB0YWkgdHJ1b2MgcGhvbmcgZ2lhbyBkaWNoIA0KQW4gRHVvbmcgVnVvbmcg dGh1b2MgQ2hpIG5oYW5oIFNhaSBHb24gY3VhIE5nYW4gaGFuZyBEYXUgdHUgdmEgUGhhdCB0cmll biBWaWV0IA0KTmFtLCBzbyAyOTUgLSBkdW9uZyBBbiBEdW9uZyBWdW9uZywgcGh1b25nIDMsIHF1 YW4gNSwgVFAgSG8gQ2hpIE1pbmguDQoNCisgMjVoIG5nYXkgMTMvNywgdGhlbSBtb3QgdnUgY3Vv cCB0aWVtIHZhbmcgdGFvIGJhbyB4YXkgcmEgdHJlbiBkaWEgYmFuIFRQLkhDTSANCm5odW5nIGNo dW5nIGRhIGJpIHRvbSBnb24uIERvaSB0dW9uZyBkdW5nIHN1bmcgZ2lhIHV5IGhpZXAgY2h1IHRp ZW0gdmEgZGFwIHR1IGtpbmggDQpjdW9wIHZhbmcuDQoNCisgMTVoIG5nYXkgMjgvOCwgaGFpIGRv aSB0dW9uZyBlcCB4ZSBuZ3VvaSBkaSBkdW9uZyB4aW4gdGllbiBuaHVuZyBiaSB0dSBjaG9pIGxp ZW4gbW9jIA0Kc3VuZyB1eSBoaWVwIGN1b3AgZGkgMi4wMDBVU0QuIFN1IHZpZWMgeGF5IHJhIHRh aSBuZ2EgdHUgVHJhbiBRdW9jIFRoYW8gLSBUdSBYdW9uZywgDQpQLjcsIFEuMywgVFBIQ00uDQoN CisgMTBoIG5nYXkgMDIvMTAsIFZ1IGN1b3AgZGllbiByYSBuaHUgdHJvbmcgcGhpbSwgMyB0eSBk b25nIGJpIGN1b3AgZ2l1YSBiYW4gbmdheSwgDQpnaXVhIGR1b25nLCB0cnVvYyBzdSBiYXQgbHVj IGN1YSBuYW4gbmhhbi4uLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFn ZXMvMjAxMDE4LzIwMTAwNDI5MDIyOTIwLmFzcHggRGFtIEh1eSAyOS8wNC8yMDEwIDI6MjkgDQoN ClRQIEhDTTogRGFuIGVtIER1bmcgImhhIiBzYXQgaGFpIGNodSBjaG8gdmF5ICANCiAgDQooVHUg ZGF0IGNhbmcgSGFpIFBob25nLCBtb3QgZGFuIGVtIGN1YSB0cnVtIHhhIGhvaSBkZW4ga2hldCB0 aWVuZyBtb3QgdGhvaSBEdW5nICJoYSIgZGEgdmFvIGdheSB0b2kgYWMgbyBUUC5IQ00uKSANCg0K aHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvcGhhcGx1YXQvMjAxMDAzL051LXNpbmgtZ2lldC1u Z3VvaS10cnVvYy1jb25nLXRydW9uZy04OTk2NzMvIDE1OjU2LCAgMTkvMDMvMjAxMCAoR01UKzcp DQoNClRQLkhDTTogTnUgc2luaCBnaWV0IG5ndW9pIHRydW9jIGNvbmcgdHJ1b25nIA0KDQpodHRw Oi8vd3d3LnZpZXRuYW1uZXQudm4vdm4veGEtaG9pLzc1MTcvdmEtY2hhbS1naWFvLXRob25nLS1k YW0tY2hldC1uZ3VvaS1naXVhLXBoby5odG1sIFF1b2MgUXVhbmcgMjYvMDEvMjAxMSAwOTowNzo1 MSBBTSAoR01UKzcpIA0KDQpUUCBIQ006IFZhIGNoYW0gZ2lhbyB0aG9uZywgZGFtIGNoZXQgbmd1 b2kgZ2l1YSBwaG8gDQoNClNhdSB2dSB2YSBxdWV0IHRyZW4gZHVvbmcsIG1vdCBuaG9tIHRoYW5o IG5pZW4gZGEgZGFtIGNoZXQgZG9pIHRodSB2YSBjdW9wIHhlIHRhdSB0aG9hdC4gDQoNCmh0dHA6 Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDEwLzA4LzNCQTFGNkYyLyAyMC84LzIwMTAs IDAwOjI5IEdNVCs3DQoNClRQLkhDTTogR2lldCBuZ3VvaSB0aW5oIHZpIGJpIGVwIGJvIHZvIA0K DQpodHRwOi8vd3d3Lml0YWV4cHJlc3MuY29tLnZuL3Rpbl9pdGEvZF9pX3NfbmcvcGhhcF9sdV90 L3RwX2hjbV9tX3Rfdl9naV90X25nX2lfZGFfbWFuX2dpX2FfYmFuX25nYXkgQnVpIE5odW5nIDE5 LzExLzIwMDcgNDo0NiBwbSANCg0KVFAuSENNOiBHaWV0IG5ndW9pIGRhIG1hbiBnaXVhIGJhbiBu Z2F5ISANCg0KaHR0cDovL3d3dy5tb2xpc2EuZ292LnZuL290aGVycy9mYXEvZmFxZGV0YWlsL3Rh YmlkLzIxMS9uZXdzaWQvMzY3ODgvc2VvL1RlLW5hbi1tYS10dXktby1UUEhDTS1CYW8tY2FvLW1v dC1kYW5nLXRodWMtdGUtbW90LW5lby9sYW5ndWFnZS92aS1WTi9EZWZhdWx0LmFzcHggMjUvMTEv MjAwNA0KDQpUUEhDTTogVGUgbmFuIG1hIHR1eSBvIFRQSENNOiBCYW8gY2FvIG1vdCBkYW5nLCB0 aHVjIHRlIG1vdCBuZW8gDQoNClRQIEhDTTogVGhvaSBnaWFuIHF1YSwgbmhpZXUgdnUgYW4gdmUg bWEgdHV5IG5odW5nIG11YyB4dSBwaGF0IGNvbiBuaGUuDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNv bS8zX2xhbmhfZGFvX3lfdGVfdHBfaGNtX2NvX3NhaV9waGFtX3Z1X251b2NfdHVvbmdfZGVuLTEt NzU5Ny5odG1sDQoNClRQIEhDTTogMyBsYW5oIGRhbyBzbyBZIHRlIGNvIHNhaSBwaGFtIHZ1IG51 b2MgdHVvbmcgJ2RlbicNCg0KQmFuIGdpYW0gZG9jIFNvIFkgdGUgdGhhbmggcGhvIGNoYW0gY29u ZyBibyB0aG9uZyB0aW4gbnVvYyB0dW9uZyBjbyBjaHVhIGNoYXQgZ2F5IA0KdW5nIHRodSAzLU1D UEQgZGFuIGRlbiB2aWVjIG51b2MgdHVvbmcgY28gY2h1YSAzLU1DUEQgdHJhbiBuZ2FwIHRoaSB0 cnVvbmcsIGdheSANCnRhYyBoYWkgeGF1IHRyb25nIGR1IGx1YW4geGEgaG9pLCBhbmggaHVvbmcg dG9pIHN1YyBraG9lIG5oYW4gZGFuLiANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL25odW5nX3Nh aV9waGFtX25naGllbV90cm9uZ19vX3V5X2Jhbl9waG9uZ19jaG9uZ19oaXZhaWRzX3RwaGNtLTYt ODk2NzAuaHRtbCBOZ3VvbjogVGllblBob25nLnZuDQoNClRQSENNOiBOaHVuZyBzYWkgcGhhbSBu Z2hpZW0gdHJvbmcgbyBVeSBiYW4gUGhvbmcgY2hvbmcgSElWL0FJRFMgVFBIQ00NCg0KVHJvbmcg bmh1bmcgbmFtIHF1YSwgVXkgYmFuIFBob25nIGNob25nIChVQlBDKSBISVYvQUlEUyBUcC4gSENN IGRhIG5oYW4gaGFuZyB0cmlldSBkbyBsYSANCnR1IGNhYyBuaGEgdGFpIHRybywgbmh1bmcgaG9h dCBkb25nIGtob25nIGhpZXUgcXVhIHZhIGNvIGRhdSBoaWV1IHRpZW4gY2hheSB2YW8gdHVpIGNh IG5oYW4uIA0KDQpMYW0gdHJhaSBsZW5oIFRodSB0dW9uZyAtIExhbSB0cmFpIHF1eSBkaW5oIGN1 YSBCbyBZIHRlDQoNClRoZW8gbmh1bmcgdGFpIGxpZXUgbWEgVGllbiBwaG9uZyB0aHUgdGhhcCBk dW9jLCBVQlBDIEhJVi9BSURTIGRhIGNvIG5odW5nIGJpZXUgDQpoaWVuIHNhaSBwaGFtIHRyb25n IGhvYXQgZG9uZyB0YWkgY2hpbmg7IGtpbmggcGhpIHRhaSB0cm8ga2hvbmcgcGh1YyB2dSBjaG8g Y29uZyBkb25nIA0KbmhpZW0gSElWIG1hIGRhIGJpIHhhIHhlbywgdHUgdHVpIHZhIGhhbmcgbG9h dCBjYWMgc2FpIHBoYW0ga2hhYy4gDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL1Rob2ktU3Uv MTUzOTY2L1RQSENNLVNvLW5ndW9pLWNoZXQtZG8tSElWQUlEUy1vLW11Yy1iYW8tZG9uZy5odG1s IExlIE5ndXllbiAxMzo1NCAwMy8wMy8yMDA5IA0KDQpUUEhDTTogU28gbmd1b2kgY2hldCBkbyBI SVYvQUlEUyBvIG11YyBiYW8gZG9uZyANCg0KVFAgIC0gVm9pIDQ0LjYwNiB0cnVvbmcgaG9wIGJp IG5oaWVtIHZhIDcuMjU5IGNoZXQsIGhpZW4gVFBIQ00gdHJvIHRoYW5oIGRpYSBwaHVvbmcgDQpk YW4gZGF1IGNhIG51b2MgdmUgc28gbmd1b2kgZHVvYyBwaGF0IGhpZW4gbGF5IG5oaWVtIGRvIGNh biBiZW5oIHRoZSBreSBISVYvQUlEUy4NCg0KVGluaCB0aGVvIHBoYW4gYm8gZGlhIGJhbiBkYW4g Y3UgdGhpIHR5IGxlIGxheSBuaGllbSBISVYgY3VhIFRQSENNIGN1bmcgY2FvIG5oYXQgdm9pIDY3 Ny8xMDAuMDAwIGRhbi4gDQoNCkJhIE5ndXllbiBUaGkgSG9haSBUaHUtIENodSB0aWNoIEhvaSBQ aG9uZyBjaG9uZyBISVYvQUlEUyBUUEhDTSBjaG8gYmlldCwgZGVuIGRhdSBuYW0gMjAwOSwgY2Eg bnVvYyBjbyBob24gMTc5IG5naGluIHRydW9uZyBob3AgbmhpZW0gSElWLCB0cm9uZyBkbyA3MS4x MTkgbmd1b2kgY2h1eWVuIHNhbmcgZ2lhaSBkb2FuIEFJRFMgdmEgNDEuNTQ0IG5ndW9pIGNoZXQu IA0KDQpDYWMgZGlhIHBodW9uZyBjbyB0eSBsZSBsYXkgbmhpZW0gY2FvIHNhdSBUUEhDTSBnb20g UXVhbmcgTmluaCAoNi40MzMgbmd1b2kpLCBTb24gDQpMYSAoNS41MjQgbmd1b2kpLCBUaGFpIE5n dXllbiAoNC43NTggbmd1b2kpLCBOZ2hlIEFuICg0LjY5NSBuZ3VvaSksIEJhIFJpYS1WdW5nIFRh dSANCig0LjAxNCBuZ3VvaSkgdmEgQ2FuIFRobyAoMy45MjAgbmd1b2kpLiBEYWMgYmlldCwgODMg cGhhbiB0cmFtIHRvbmcgc28gbmd1b2kgbWFjIA0KdGh1b2MgbmhvbSB0dW9pIHR1IDIwLTM5IHR1 b2kuICANCg0KaHR0cDovL3d3dy5tb2xpc2EuZ292LnZuL290aGVycy9mYXEvZmFxZGV0YWlsL3Rh YmlkLzIxMS9uZXdzaWQvMzY3ODgvc2VvL1RlLW5hbi1tYS10dXktby1UUEhDTS1CYW8tY2FvLW1v dC1kYW5nLXRodWMtdGUtbW90LW5lby9sYW5ndWFnZS92aS1WTi9EZWZhdWx0LmFzcHggMjUvMTEv MjAwNA0KDQpUUCBIQ006IENvbmcgdGFjIGNhaSBuZ2hpZW4gdGFpIGNvbmcgZG9uZyBuaHVuZyBu YW0gcXVhIHRvIHJhIGtob25nIGhpZXUgcXVhLg0KDQpDYWMgY28gcXVhbiBjaHVjIG5hbmcgdmFu IGtob25nIGtpZW0gc29hdCBkdW9jIHRpbmggaGluaCB2YW4gY2h1eWVuIG1hIHR1eSB2YW8gdGhh bmggcGhvLiANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vTmh1Yy1uaG9pLWJ1b20tZGVt LVNhaS1Hb24vMTA0LzMyMTIzNTEuZXBpIA0KDQpOaHVjIG5ob2kgJ2J1b20gZGVtJyBTYWkgR29u IJYgbmFuIG1haSBkYW0gIm5vIHJvIiANCg0KICgyNGgpIC0gIlZ1aSB2ZSB2b2kgZW0gbmhhIGFu aCwgZ2lhIGJhIHRyYW0gbmh1bmcgYW5oIG1vIGhhbmcgZGkgZW0gbGF5IHJlIGhhaSB0cmFtIA0K cnVvaSwgdGllbiBwaG9uZyBlbSBiYW8gbHVvbi4uLiBraGFjaCBzYW4gZ2FuIGRheSB0aG9pIi4g Q28gZ2FpIHZvaSBibyBhbyBxdWFuICJ0aGlldSANCnZhaSIgbmdvaSB0cmVuIGNoaWVjIHhlIHRh eSBnYSBjaGVvIGtlbyBuZ3VvaSBkYW4gb25nIGRpIGR1b25nLiANCg0KR2FpIG1haSBkYW0gbGFp ICJubyBybyIgU2FpIEdvbg0KDQpIaW5oIGFuaCBnYWkgbWFpIGRhbSBjaGF5IHhlIG1heSBiYW0g dGhlbyBjaGVvIGtlbywgbW9pIGNoYW8gbmh1bmcgbmd1b2kgZGFuIG9uZyANCmRpIGR1b25nIG1v dCBjYWNoIGNvbmcga2hhaSwgbG8gbGlldS4uLiBraG9uZyBraG8gZGUgYmF0IGdhcCB0YWkgY2Fj IHR1eWVuIGR1b25nIG5odSANCmNhdSBUaGkgTmdoZSwgWG8gVmlldCBOZ2hlIFRpbmgsIE5ndXll biBWYW4gTGFjIChkb2FuIGdpYXAgcmFuaCBxdWFuIDEgdmEgcXVhbiANCkJpbmggVGhhbmgpLCBI b2FuZyBWYW4gVGh1LCBOZ3V5ZW4gVHJvbmcgVHV5ZW4sIENvbmcgSG9hLCBUcnVvbmcgQ2hpbmgg KFRhbiANCkJpbmgpLCBQaGFuIFZhbiBUcmkgKEdvIFZhcCkuLi4NCg0KS2hvYW5nIDE4IGdpbywg YW5oIEh1bmcgdnVhIHRhbiBjb25nIHNvIGRlIHZlIG5oYSwga2hpIGRpIHF1YSBjYXUgVGhpIE5n aGUgdGhpIGJhdCBuZ28gDQptb3QgY28gZ2FpIHZvaSBudW9jIGRhIHRyYW5nIHRyZW8sIGRpZXUg a2hpZW4gY2hpZWMgeGUgQXR0aWxhIHBob25nIHR1IHBoaWEgc2F1IGxlbiANCmFwIHNhdCBiZW4g Y2FuaC4gVHVvbmcgbmd1b2kgcXVlbiwgbmd1b2kgZGFuIG9uZyBuYXkgcXVheSBxdWEgbmhpbiB0 aGkgY28gZ2FpIGJ1b25nIGxvaSByYXQgDQpuZ290IG5nYW86ICJ2dWkgdmUgdm9pIGVtIG5oYSBh bmgsIGdpYSBiYSB0cmFtIG5naGluIG5odW5nIGFuaCBtbyBoYW5nIGRpIGVtIGxheSByZSANCmhh aSB0cmFtIHJ1b2ksIHRpZW4gcGhvbmcgZW0gYmFvIGx1b24uLi4ga2hhY2ggc2FuIGdhbiBkYXkg dGhvaSIuDQoNCktob25nIGNoaSBhbmggSHVuZywgbmhpZXUgZGFuZyBtYXkgcmF1IGRpIHF1YSBk YXkgY3VuZyB0dW5nIGJpIGRpbmggbmh1bmcgbG9pIG1vaSANCnBoYW4gY2FtLCB0aG8gbG8gY3Vh IGdhaSBiYW4gZGFtIG1hIGRhbiBTYWkgVGhhbmggdGh1b25nIGdvaSBsYSAiYnVvbSBkZW0iLiBR dWFuIA0Kc2F0IHRhaSAiZGllbSBkZW4iIGNobyB0aGF5LCBnYWkgYmFuIGRhbSB0aHVvbmcgdHUg dGFwIHRoYW5oIHR1bmcgbmhvbSwgZGkgaGFpIG5ndW9pIA0KdHJlbiBtb3QgY2hpZWMgeGUgdGF5 IGdhLCBpdCBkb2kgbm9uIGJhbyBoaWVtLCBtYWMgbmh1bmcgY2hpZWMgYW8gInRoaWV1IHZhaSwg dGh1YSB0aGl0IiANCm5oYW0gZGUgbmd1eWVuIGx1bmcsIGJ1bmcgY28gbmd1b2kgY29uIHRhbyBh biB0dW9uZyBraGkgY28gdGluaCBtYWMgdmF5IG5nYW4gbG8gDQoibm9pIHkiIHJvaSAiZGlldSBo YW5oIiBvIGNvbiBkdW9uZyBsb24sIGNodWkgdmFvIGhlbSBuaG8uDQoNClRyb25nIGtoaSAiYnVv bSBkZW0iIG8gcXVhbmgga2h1IHZ1YyBjYXUgVGhpIE5naGUgYW4gZGllbiBkZXAsIGRpIHhlIHRh eSBnYSBkb2kgbW9pIA0KdGhpIHRhaSBjYWMga2h1IHZ1YyB0cmVuIGR1b25nIENvbmcgSG9hLCBQ aGFuIFZhbiBUcmksIE5ndXllbiBUcm9uZyBUdXllbiBjbyBwaGFuIA0KIm5naGVvIiBob24uIEdh aSAiYmFuIGhvYSIgbyBkYXkgdGh1b25nIGR1b2MgeGUgb20gY2hvIGhvYWMgZGkgYm8gZGUgYmF0 IGtoYWNoLCB2aSANCnZheSBtYSBnaWEgY2EgbyBkYXkgY3VuZyBraGEgImJlbyIuDQoNClZhbyBt b3QgYnVvaSB0b2kgZGF1IHR1YW4sIHRyb2kgbXVhIHhvaSB4YSwgaGFuZyB0cmFtIG5ndW9pIGNv IGdhbmcgImxvdCIgcXVhIG5nYSB0dSANCk5ndXllbiBUcm9uZyBUdXllbiAtIFBoYW0gVmFuIEhh aSAocXVhbiBUYW4gQmluaCkgbW9uZyBzb20gdmUgbmhhIHRoaSBiYSBkb2kgbmFtIA0KbnUgZGkg dHJlbiB4ZSBnYW4gbWF5IHR1IHBoaWEgc2F1IGxhbyBsZW4sIGRhdSBraG9uZyBub24gYmFvIGhp ZW0gcnUgZ2EsIG5ldCBwbywgYmFtIGNvaSANCmluaCBvaSBuaGFtIGdheSBzdSBjaHUgeSBjaG8g bmd1b2kgZGkgZHVvbmcuIENodWEgaGV0LCBwaGF0IGhpZW4gbW90IHNvIG5ndW9pIGRhbmcgdHJ1 IA0KbXVhLCBobyBsaWVuIHF1ZW8gdmFvIHJvaSBkZW4gdHVuZyBub2kgY28gZGFuZyBtYXkgcmF1 IGRlIGRvIGhvaSwgcnUgcmUgInRyYW5oIHRodSB0cm9pIA0KbXVhIHZ1aSB2ZSB0aSBraG9uZyBh bmggaGFpLi4uIiwgZ2FpIGJhbiBkYW0gZGF0IHZhbiBkZSBtb3QgY2FjaCBjb25nIGtoYWksIGJh dCBrZSBuZ3VvaSANCmxvbiBoYXkgbmhvIGtoaWVuIGtob25nIGl0IG5ndW9pIGtobyBjaGl1LCBi YXQgYmluaCB0cnVvYyBoYW5oIGRvbmcgY3VhIGNodW5nLg0KDQooQW5oOiBLaG9uZyBraG8gZGUg YmF0IGdhcCAiYnVvbSBkZW0iIHRhaSBtb3Qgc28gdHV5ZW4gZHVvbmcgbyBTYWkgR29uKSANCg0K VHVvbmcgdHUsIDcgZ2lvIHRvaSB0YWkgbXVpIHRhdSBUcnVvbmcgQ2hpbmgtIENvbmcgSG9hIChx dWFuIFRhbiBCaW5oKSwgY29uIGR1b25nIA0KaHV5ZXQgbWFjaCwgY3VhIG5nbyBwaGlhIFRheSB2 YW8gdHJ1bmcgdGFtIHRoYW5oIHBobyBkYSB4dWF0IGhpZW4gaGFuZyBjaHVjIGdhaSBtYWkgDQpk YW0gZHVuZyByYWkgcmFjIG5lcCBtaW5oIG8gY2FjIGdvYyBjYXksIGNvdCBkaWVuLCB0cmFtIHhl IGJ1eXQuLi4gaGFpIGJlbiBkdW9uZyBkZSBkb24gDQpraGFjaCAibGFuZyBjaG9pIi4NCg0KRGFu ZyBkdW5nIHRyb25nIGdvYyBjYXksIHRoYXkgbmd1b2kgZGFuIG9uZyBjaG8geGUgY2hheSBjaGFt IGxhaSwgY28gZ2FpIHZvaSBibyBkaWV1IA0KdGh1b2MgbGVuIG1pZW5nIHJpdCBtYW5oIG1vdCBo b2kgcm9pIG5oYW5oIGNob25nIGNhbSBtdSBiYW8gaGllbSByYSBsZSBkdW9uZyB2YXkgdGF5IA0K bW9pIGNoYW8uIENodWEga2lwIGhvaSwgZ2FpIG1haSBkYW0gImJhbyBnaWEiIGhhaSB0cmFtIG5n aGluLCAibmV1IGRpIHRoaSBuaGFuaCBsZW4sIGNvIA0KZ2kgbm9pIHNhdSBraG9uZyBjb25nIGFu IHRvaS4uLiIuDQoNCktoaSB0b2kgImNoZSIgYm8gZGkgZHVvYyBjaHVuZyAyMDAgbWV0IHRoaSBt b3QgcGh1IG51IGRhbmcgbmd1b2kgeHVlIHhvYSBjaG8gY28gZ2FpIA0KbmdvYWkgMjAsIG1vaSBk byBtYSBob25nIGJhbSB0aGVvICJkaSBjaG9pIGtob25nIGVtLCB0aGF5IGRhbyBjdWEgY2hpIG5n b24ga2hvbmcsIA0KbW9pIG8gcXVlIGxlbiBkby4uLiBnaWEgY2EgY2hpIGtob25nIG5vaSBjaHUg aGFuZyBkZXAgdGhpIG8gZGF5IGtob25nIGNvIGVtIG5hbyBiYW5nIi4gDQpLaGkgdG9pIGhvaSAi Z2lhIG5oaWV1PyIsICJiYSB0cmFtIGJhbyBwaG9uZywgbmV1IGRvbmcgeSB0aGkgZGkgdGhlbyBj aGkgdG9pIGtoYWNoIHNhbiBnYW4gDQpkYXkgdGhvaSIuIFRoYXkga2hhY2ggY2h1YSB1bmcgeSwg bmd1b2kgcGh1IG51IHRpZXAgdHVjIGNoZW8ga2VvICJ2YXkgZ2lhIG5oaWV1IGVtIA0KZGkgZHVv YyBuZSwgZHVuZyBnaWEgaGFpIHRyYW0gbmhhLiBNYXkgaG9tIG5heSBsZSBuZW4gY29uZyBhbiBs YW0gbWFuaCwga2llbSBraG9uZyBjbyANCmRhdSBkaSBsYW0gZ2kgbWF0IGNvbmcuLi4iLg0KDQpO YW4gbmhhbiBjdWEgZ2FpIG1haSBkYW0NCg0KSGluaCBhbmggbXVhIGJhbiBkYW0gY29uZyBraGFp IHRyZW4gbW90IHNvIHR1eWVuIGR1b25nIGtob25nIGNoaSBsYW0geGF1IGRpIGJ1YyANCnRyYW5o IGN1YSB0aGFuaCBwaG8gbWEgbm8gY29uIGFuaCBodW9uZyBkZW4gYW4gbmluaCB0cmF0IHR1LiBU cm9uZyBzbyBkbywga2hvbmcgaXQgDQpuZ3VvaSBkaSBkdW9uZyB2byBoaW5oIGNodW5nIGJpIHF1 eSBjaHVwIGxhIGdhaSBiYW4gZGFtLCBkYW4gb25nICJoYW0gY3VhIGxhIi4uLg0KDQpIYW5nIChu aGFuIHZpZW4ga2luaCBkb2FuaCkgY2hpYSBzZSwgZG8gZGFjIHRodSBjb25nIHZpZWMgdGh1b25n IHh1eWVuIGRpIHRpZXAga2hhY2ggdmUgDQptdW9uLCBuaGEgbGFpIG8gZ2FuICJwaG8gc3VuZyBz dW9uZyIgbmVuIG5oaWV1IGxhbiBiaSAia2hhY2ggbGFuZyBjaG9pIiBuaGFtIHR1b25nIA0KZ2Fp IGJhbiBkYW0uICJIb20gZG8ga2hvYW5nIDExIGdpbyBkZW0sIGVtIGRpIGR1IHRpZWMgdmUgbW90 IG1pbmgsIGtoaSBkZW4gZHVvbmcgDQpkdW9uZyBYbyBWaWV0IE5naGUgVGluaCB0aGkgY28gaGFp IHRoYW5oIG5pZW4gYmFtIHRoZW8gZ2EgZ2FtIGRpIGtoYWNoIHNhbi4gVHVjIGdpYW4gDQp2aSBi aSBxdXkgY2h1cCBsYSBnYWkgYmFuIGRhbSwgdG9pIHBoYW4gdW5nIGxhaSB0aGkgaG8gYnVvbmcg cmEgbmh1bmcgbG9pIGNodWkgYm9pLCBsYW5nIA0KbWEgcmF0IHZvIHZhbiBob2EuLi4iLCBIYW5n IGNobyBiaWV0LiBHaW8gZGF5LCBuaGlldSBuZ3VvaSBiYW4gdHJvbmcgeG9tIGN1bmcgdHJhbmcg DQpwaGFpIGx1YSB2b2kgY28gY3VuZyBraG9uZyBkYW0gcmEgbmdvYWkgZHVvbmcgaG9uZyBtYXQg aGF5IGRvaSBiYW4gbyBkbyB2aSBzbyBuaGFtIA0KdHVvbmcgbGEgImJ1b20gZGVtIi4NCg0KVHJv bmcga2hpIEhhbmcgdHJvIHRoYW5oIG5hbiBuaGFuIGN1YSBnYWkgYmFuIGRhbSwgdGhpIG1vdCBz byBkYW5nIG1heSByYXUgY3VuZyBiaSANCm9hbiBkbyBiaSBjaG8gbGEgdGh1IGRhbiBvbmcgImhh bSBjdWEgbGEiLCBtYSBhbmggVHVhbiBsYSBtb3QgdHJ1b25nIGhvbSBjdSB0aGUuIA0KTmd1b2kg dGhhbmggbmllbiBuYXkga2UsIHRvaSBkYW5nIGRpIHRyZW4gZHVvbmcgdGhpIGNvIGRpZW4gdGhv YWkgbmVuIGR1bmcgbGFpIG5naGUsIG5nYXkgDQpsdWMgZG8gY28gaGFpIGNvIGdhaSBkaSB0b2kg bW9pIG1vYyBuaHVuZyB0b2kga2hvbmcgZGUgeSwgImtob25nIGJpZXQgYWkgbmhpbiB0aGF5IHJv aSB2ZSANCmtlIGxhaSB2b2kgYmFuIGdhaSBsYSB0b2kgZGkgbXVhIGRhbS4uLiAiLCBjaGluaCBt aWVuZyBsdW9pIGRvYyBkaWEgbmF5IGRhIGxhbSBoYWkgbmd1b2kgDQpzdXl0IG51YSAiZHVvbmcg YWkgbmF5IGRpIiB2aSBiYW4gZ2FpIGtob25nIHRoZSBjaGFwIG5oYW4gY2hvbmcgdHVvbmcgbGFp IGN1YSBtaW5oIGxhIA0KZGFuIG9uZyAiaGFtIGN1YSBsYSIuDQoNCihBbmg6TW90IHNvIGtoYWMg ZHVvYyBjaG8gdHJlbiB4ZSBtYXksIGtob25nIGRvaSBub24gYmFvIGhpZW0uLi4gZGUgZ2F5IHN1 IGNodSB5KSANCiANCkN1bmcgY2FuaCBuZ28sIGFuaCBIYWkgdHVuZyBiaSB2byBjaG8gIm5oaW4g ZG9pIiBtYXkgbmdheSB2aSB0aG9pICJ0cmFuZyBob2EiLiBIb20gDQpkbywgYW5oIGRlbiBkb24g dm8gbGFtIHRhaSBtb3QgY29uZyB0eSB0cmVuIGR1b25nIFRydW9uZyBDaGluaCwga2hpIGRpIG5n YW5nIHF1YSAidm8gDQp0aW5oIiBsaWVjIG1hdCBuaGluIHRoaSBtb3QgY28gZ2FpIHBob25nIHhl IGJhbSB0aGVvLCBtYWMgY2hvIGxvaSBjaGFvIGN1YSBjbyBnYWkgeGluaCANCmRlcCwgYW5oIHZh biB0aWVwIHR1YyBkaS4uLiAibmh1bmcga2hpIHZvIHRvaSBkdW5nIHRydW9jIG1hdCwgY28gdGEg Y3VuZyBjbyBkb25nIGR1YSwgDQpjaGVvIGtlbyB2b2kgbG9pIGxlIGtobyBuZ2hlIG5lbiB2byB0 b2kgbmdoaSBuZ28sIG5oYXQgcXV5ZXQgY2hvIHJhbmcga2hvbmcgY28gbHVhIGxhbSANCnNhbyBj byBraG9pIiwgbmd1b2kgZGFuIG9uZyBuYXkgcGhhbiBidWEuDQoNCk5oaWV1IG5ndW9pIHRodW9u ZyBjaG8gcmFuZywgZ2FpIG1haSBkYW0gZHVuZyBkdW9uZyBwaGFuIGxvbiAicGh1YyB2dSIgY2hv IGdpb2kgdGFpIA0KeGUgY2hheSB4ZSBkdW9uZyBkYWkuIE5odW5nIGtob25nIHZpIHRoZSBtYSB0 cmFuaCBkdW9jICJjYW0gYmF5IiBjdWEgZ2FpIG1haSBkYW0uIA0KQW5oIFRoYW5oICh0YWkgeGUg eGUgdGFpKSBjaG8gYmlldCwga2hpIGFuaCBkdW5nIHhlIHRyZW4gbmdhIHR1IEFuIFN1b25nIChx dWFuIDEyKSBkZSANCm11YSB0aHVvYyBsYSwgdnVhIG1vIGN1YSByYSB0aGkgbW90IGNvIGdhaSBu aGF5IHRvdCBsZW4gdHJlbiBjYSBiaW4gbmdvaSBydSByZSBkaSBraGFjaCANCnNhbi4gS2hvbmcg ZG9uZyB5LCBhbmggZGUgbmdoaSB4dW9uZyB4ZSB0aGkgY28gZ2FpIGdpbyBtYXQgbHV1IG1hbmgs IGxvaSBraW0gdGllbSBkaW5oIA0KbWF1IGh1IGRvYSBsYSBiaSBISVYgdmEgInhpbiIgNTAgbmdo aW4gZG9uZyBkZSBkaSBjaGljaCBodXQuDQoNCkRhIHNvIGJpIG5naGllbiwgbWFjIGJlbmguLi4N Cg0KVGhlbyBzbyBsaWV1IHRob25nIGtlIGN1YSBjbyBxdWFuIGNodWMgbmFuZyB0aGkgZGEgc28g Z2FpIG1haSBkYW0gZHVuZyBkdW9uZyBkZXUgZGEgDQoidGFuIiwgbmdoaWVuIG1hIHR1eSwgaG9h YyBtYWMgYmVuaCB4YSBob2kuLi4NCg0KIk5ndSBuZ2F5LCBjYXkgZGVtIiwgZG8gbGEgdGhvaSBn aWFuIHNpbmggaG9hdCBjdWEgZ2FpICJidW9tIGRlbSIuIENhIG5nYXkgaG8gY2hpIG8gDQpuaGEg YW4gbmd1LCBiYWkgYmFjOyBraGkgbWFuIGRlbSBidW9uZyB4dW9uZywgImhhbmciIHR1IGtoYXAg bm9pIGR1b2MgImRpZXUgZG9uZyIgDQpkZW4gYm9pIGRvaSBxdWFuIGNoYW4gZGF0IHZhICJiYWkg ZGFwIiBsYSBuaHVuZyBraGFjaCBzYW4gcXVhbmgga2h1IHZ1Yy4NCg0KTmd1b2kgcGh1IG51IGJh biB0aHVvYyBsYSB0cmVuIGR1b25nIENvbmcgSG9hIGNobyBiaWV0LCAiY28gZHVhIGRpIGJhbiBk YW0gY2EgbWF5IA0KbmFtIG5heSByb2kgbmh1bmcgY28gdGllbiBkYXUsIG11YSBkbyBjdWEgdHVp IGN1bmcgbXVhIHRoaWV1Li4uIi4gVGh1YyB0ZSwgbW9pIGxhbiBiYW4gDQpkYW0gY2hvIGtoYWNo IHR1IDIwMCBkZW4gMzAwIG5naGluIG5odW5nIGNhYyBjbyBwaGFpICJjaGlhIG5hbSwgeGUgYmF5 IiBjaG8gInR1IG9uZywgDQp0dSBiYSIsIHRpZW4gdGh1ZSB4ZSwgYW8gcXVhbiwgc29uIHBoYW4g dmEgY2FjIGRvaSB0dW9uZyBiYW8ga2UuIFNvIGNvbiBsYWkgdm9uIHZlbiB0dSB2YWkgDQpjaHVj IGRlbiAxMDAgbmdoaW4gdGhpIGN1bmcgZHVvYyBnYWkgYmFuIGRhbSBkYW5oIHZhbyB2aWVjIGNo aWNoIGh1dCwgYmFpIGJhYywgbG8gZGUuLi4NCg0KTW90IHNvIG5ndW9pIGRhbiBzb25nIHF1YW5o ICJkaWVtIG5vbmciIGNobyBiaWV0LCAibWF5IGhvbSBuYXkgbGUgbmVuIG5odSB2YXkgbGEgaXQg DQpkbywgbmdheSB0aHVvbmcgZG9uZyBsYW0uLi4gY28gbmhpZXUgZ2FpIGJhbiBkYW0gZGkgZGF1 IG1vdCB0aG9pIGdpYW4gcm9pIHZlIGxhbSB0aWVwIHZhIA0KcGhhbiBsb24gaG8gZGV1IG5naGll biBtYSB0dXkiLiBUaGVvIGdpYWkgdGhpY2gsIGNvIHRoZSBzYXUga2hpIGJpIGNvIHF1YW4gY2h1 YyBuYW5nIGJhdCANCmR1YSBkaSB0cnVuZyB0YW0gInBodWMgaG9pIG5oYW4gcGhhbSIsIGNhaSBu Z2hpZW4uLi4gaG8gbGFpICJuZ3VhIHF1ZW4gZHVvbmcgY3UiLiAgDQoNCmh0dHA6Ly93d3cubGFv ZG9uZy5jb20udm4vSG9tZS9UaGFuaC1waG8tY28tbmd1eS1jby1waGFpLWJvaS10aHVvbmcvMjAx MDYvMTg4NTQ5Lmxhb2RvbmcgVHJhbiBQaGFuIDg6MTggQU0sIDE3LzA2LzIwMTANCg0KVFBIQ006 IER1IGFuIEJPVCBjYXUgUGh1IE15IHRhaSBUUEhDTSAtIFRoYW5oIHBobyBIQ00gY28gbmd1eSBj byBwaGFpIGJvaSB0aHVvbmcNCg0KQ2F5IGNhdSBkYXkgdmFuZyBQaHUgTXkgZGF1IHR1IGtob2Fu ZyAzLjAwMCB0aSBkb25nLCB4YXkgeG9uZyBjaGkgbGVvIHRlbyB4ZSBxdWEgbGFpLg0KDQpEbyBU UEhDTSBjaHVhIHRodWMgaGllbiBkdW5nIGNhbSBrZXQgaG9wIGRvbmcgQk9ULCBuZW4gY2F1IGRh eSB2YW5nIFBodSBNeSAoY28gDQp0b25nIHZvbiBkYXUgdHUga2hvYW5nIDMuMDAwIHRpIGRvbmcp IHhheSB4b25nIGNoaSBjbyBsZW8gdGVvIHBodW9uZyB0aWVuIGRpIGxhaS4gVm9pIHNvIA0KbHVv bmcgeGUgbHV1IHRob25nIGl0IG5odSBoaWVuIG5heSBraGllbiBDdHkgY28gcGhhbiBCT1QgY2F1 IFBodSBNeSAobmF5IGxhIEN0eSBDUCANCkRUWEQgUGh1IE15IC0gUE1DKSBsYW0gdmFvIHRpbmgg dHJhbmcgc28gdGllbiB0aHUgcGhpIGtob25nIGR1IGRlIHRyYSBubyB2YXkgdmEgbGFpIA0Kc3Vh dCBuZ2FuIGhhbmcuDQoNCk9uZyBNYWMgRGFuZyBOb3AgLSBQaG8gVG9uZyBHRCBQTUMgLSBjaG8g cmFuZywgbmd1eWVuIG5oYW4ga2hpZW4gY2hvIGx1b25nIHhlIHF1YSBjYXUgUGh1IE15IGl0IGxh IGRvIHRoYW5oIHBobyBraG9uZyB0aHVjIGhpZW4gZHVuZyBjYW0ga2V0IGhvcCBkb25nIEJPVCBr eSBnaXVhIFRQSENNIHZvaSBQTUMgbmFtIDIwMDUuIFRoZW8gaG9wIGRvbmcgQk9UIHF1eSBkaW5o LCBQTUMgZGF1IHR1IHhheSBkdW5nIGNhdSBQaHUgTXksIGNvbiB0aGFuaCBwaG8gZGF1IHR1IHhh eSBkdW5nIGR1b25nIHZhbmggZGFpIHBoaWEgZG9uZyBrZXQgbm9pIHRvaSBjaGFuIGNhdSBQaHUg TXkuIA0KDQpUcm9uZyB0cnVvbmcgaG9wIGNhdSBQaHUgTXkgeGF5IGR1bmcgeG9uZywgbmh1bmcg ZHVvbmcgdmFuaCBkYWkgcGhpYSBkb25nIGRvIHRoYW5oIHBobyBkYXUgdHUgY2h1YSBob2FuIHRo YW5oIGtpcCB0aGkgdGhhbmggcGhvIHBoYWkgYnUgZGFwIGNobyBQTUMgbW90IGtob2FuIHRpZW4g KGdpb25nIG5odSB0aHUgcGhpKSB0dW9uZyB1bmcgdm9pIHRob2kgZ2lhbiBjaGFtIHRyZS4gTWF0 IGtoYWMsIGhvcCBkb25nIGN1bmcgcmFuZyBidW9jLCBzYXUga2hpIHhheSB4b25nIGNhdSBQaHUg TXksIHRoYW5oIHBobyBwaGFpIGhhbiBjaGUgdG9pIGRhIGNhYyB4ZSB0YWkgbHV1IHRob25nIHR1 IG1vdCBzbyBodW9uZyBraGFjIGRlIGx1dSB0aG9uZyB2YW8gdmFuaCBkYWkgcGhpYSBkb25nIHF1 YSBjYXUgUGh1IE15Li4uIFR1eSB2YXksIHRoZW8gUE1DIHRoaSBuaHVuZyBkaWV1IGtob2FuIG5h eSBkZW4gbmF5IHZhbiBjaHVhIGR1b2MgdGhhbmggcGhvIHRodWMgaGllbi4gDQoNClRoZW8gUE1D LCBzbyBsdW9uZyB4ZSBxdWEgY2F1IFBodSBNeSBiaW5oIHF1YW4gbW9pIG5nYXkgY2hpIGNvIGto b2FuZyA1LjAwMCAtIDYuMDAwIGx1b3QgeGUsIHRoYXAgaG9uIG5oaWV1IHNvIHZvaSBkdSBraWVu IGJhbiBkYXUgbGEga2hvYW5nIDMwLjAwMCAtIDM1LjAwMCBsdW90LiANCg0KRG8gc28gbHVvbmcg eGUgb3RvIHF1YSBjYXUgUGh1IE15IHRoYXAsIG5lbiBkb2FuaCB0aHUgdGh1IHBoaSBjdW5nIGNo aSBkYXQga2hvYW5nIDEwMCAtIDE1MCB0cmlldSBkb25nL25nYXkuIE9uZyBOZ3V5ZW4gVGhhbmgg VGhhaSAtIFRvbmcgR0QgUE1DIC0gY2hvIGJpZXQsIHZvaSBzbyB0aWVuIHRodSBwaGkgbmh1IGhp ZW4gbmF5LCBQTUMga2hvbmcgZHUgbmd1b24gdGh1IGRlIHRyYSBubyB2YXkgdmEgbGFpIHN1YXQg Y2hvIGNhYyBuZ2FuIGhhbmcgbWEgUE1DIHZheSBkYXUgdHUgeGF5IGR1bmcgY2F1IFBodSBNeS4g DQoNClRoZW8ga2UgaG9hY2ggdHJhIG5vIG5nYW4gaGFuZywgdHJvbmcgZG90IHRoYW5nIDcuMjAx MCwgUE1DIHBoYWkgdHJhIG5vIHRvbmcgY29uZyBzbyB0aWVuIDE3OCB0aSBkb25nIHZhIGRvdCB0 aGFuZyAxLjIwMTEgcGhhaSB0aGFuaCB0b2FuIG5vIHZvaSBzbyB0aWVuIDE3MCB0aSBkb25nLiBW aSB2YXksIFBNQyBkYSBkZSBuZ2hpIHRoYW5oIHBobyBjaG8gdGFtIHVuZyB0dSBuZ2FuIHNhY2gg c28gdGllbiBraG9hbmcgMzQ4LDYgdGkgZG9uZywgZGUgUE1DIHRoYW5oIHRvYW4gbm8gdmF5IHZh IGxhaSBzdWF0IGNobyBuaHVuZyBkb3QgdGhhbmggdG9hbiB0cmVuLiANCg0KUmllbmcgbW90IHNv IGR1IGFuIGR1b25nIGtldCBub2kgdm9pIGNhdSBQaHUgTXkgdGh1b2MgdHV5ZW4gdmFuaCBkYWkg cGhpYSBkb25nIGRhbmcgZG8gUE1DIGRhbSBuaGFuIGRhdSB0dSwgb25nIE5ndXllbiBUaGFuaCBU aGFpIGNvbiBjaG8gYmlldCB0aGVtLCBraGkgdHJpZW4ga2hhaSB4YXkgZHVuZyBjYXUgUGh1IE15 LCB0aGF5IHRoYW5oIHBobyBjaGFtIHRyaWVuIGtoYWkgZGF1IHR1IGNhYyB0dXllbiBkdW9uZyBu aHUgY2FtIGtldCBob3AgZG9uZyBCT1QgbmVuIFBNQyBkYSB0aGFtIGdpYSBkYXUgdHUgeGF5IGR1 bmcsIGdvcCBwaGFuIGRheSBuaGFuaCB0aWVuIGRvIGhvYW4gdGhhbmggZG9uZyBibyBkdW9uZyB2 b2kgY2F1IFBodSBNeS4NCiANClRyZW4gdGh1YyB0ZSwgdHJvbmcgcXVhIHRyaW5oIGRhdSB0dSB4 YXkgZHVuZywgdGhhbmggcGhvIGxhaSBiYW4gZ2lhbyBtYXQgYmFuZyBraG9uZyBkdW5nIHRob2kg aGFuLCBsYW0gY2hvIGR1IGFuIGRlbiBuYXkgdmFuIGNodWEgaG9hbiB0aGFuaCBkb25nIGJvLCBk byBjdW5nIGNoaW5oIGxhIGx5IGRvIGtoaWVuIGx1dSBsdW9uZyB4ZSBxdWEgY2F1IFBodSBNeSB0 aGFwLiANCg0KIk5ldSBjYW4gY3UgdmFvIGRpZXUga2llbiBob3AgZG9uZyBkZSBsYW0gY2FuZyB2 b2kgbmhhdSB0aGkgdGhhbmggcGhvIHBoYWkgYm9pIHRodW9uZyBjaG8gUE1DLiBOaHVuZyBjaHVu ZyB0b2kgY2h1YSBsYW0gbmh1IHZheSwgbWEgY2hpIGRlIG5naGkgdGhhbmggcGhvIGNobyB0YW0g dW5nIG1vdCBraG9hbiB0aWVuIGRlIHRoYW5oIHRvYW4gbm8gdmF5IHZhIGxhaSBzdWF0IGNobyAy IGt5IHRyYSBubyBjdWEgbmFtIGRhdSB0aWVuIHNhdSBraGkgaG9hbiB0aGFuaCBjYXUgUGh1IE15 LiBWYSBraG9hbiBuYXkgc2UgZHVvYyBQTUMgdGhhbmggdG9hbiBsYWkgY2hvIHRoYW5oIHBobyB0 dSBuZ3VvbiB0aHUgcGhpIGNhYyBuYW0gc2F1IiAtIG9uZyBUaGFpIG5vaS4NCg0KaHR0cDovL3d3 dy50aWVucGhvbmcudm4vUGhhcC1MdWF0LzEwMDkwNy9UUEhDTS1EYXQtby1xdWFuLTItZGEtYmkt eGEteGVvLW5odS10aGUtbmFvLmh0bWwgMDg6MDQgMDYvMTEvMjAwNyANCg0KVFAuSENNOiBEYXQg byBxdWFuIDIgZGEgYmkgJ3hhIHhlbycgbmh1IHRoZSBuYW8/IA0KDQpMYXkgZGF0IGN1YSBkYW4g ImNoaWEiIGNobyBjYW4gYm8gcXVhbg0KDQpUcm9uZyBsdWMgVFBIQ00gZGFuZyBsb2F5IGhvYXkg Y2h1YSB0aW0gZHUgcXV5IGRhdCwgbmhhIGRlIHRhaSBkaW5oIGN1IGNobyBoYW5nIA0KY2h1YyBu Z2FuIGhvIGRhbiBiaSB0aHUgaG9pLCBnaWFpIHRvYSB0dSBkdSBhbiBLaHUgZG8gdGhpIG1vaSBU aHUgVGhpZW0gKHF1YW4gMikgdGhpIA0KaGFuZyBjaHVjIGhlYy10YSBkYXQgdGFpIHF1YW4gMiBk YW5nIGJpICJ4YSB4ZW8iLCBsYW4gY2hpZW0gdmEgc3UgZHVuZyBidWEgYmFpLiANCg0KRGFuZyBu b2kgaG9uLCAidGh1IHBoYW0iIGxhaSBjaGluaCBsYSBjaGluaCBxdXllbiBxdWFuIG5heSBjdW5n IGtoYSBuaGlldSBjb25nIHR5IGRpYSANCm9jIGR1b2MgInV1IGFpIiBnaWFvIGRhdCBuaGFtICJx dXkgaG9hY2ggY2hpbmggdHJhbmcgZG8gdGhpIi4gDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZu L1Rob2ktU3UvMTAxMzQ0L1RyYS1sYWktZGF0LXRhaS1kaW5oLWN1LWNoby1kYW4uaHRtbCBIYSBQ aGFuIDEzOjQ2IDEwLzExLzIwMDcgDQoNClRQSENNOiBQaGFpICdUcmEgbGFpJyBkYXQgdGFpIGRp bmggY3UgY2hvIGRhbiANCg0KQmkgdGh1IFRoYW5oIHV5IFRQSENNIExlIFRoYW5oIEhhaSBkYSBj aGkgZGFvIHhheSAxMi41MDAgY2FuIGhvIGNodW5nIGN1LCBkYXAgdW5nIHlldSBjYXUgDQp0YWkg ZGluaCBjdSBjaG8gZGFuIHRhaSBuaHVuZyBraHUgdnVjIG1hIGNhYyBjYXAgY2hpbmggcXV5ZW4g VFAgbmF5IGRhICJob2FuIGRvaSIgc2FuZyBjYWMgbm9pIHhhLCBnaWEgZGF0IHJlIGhvbiENCg0K Tmh1bmcga2h1IGRhdCBkYWMgZGlhIHRhaSBLRFRNVFQgZGEgY2hhdCBraW4gYmlldCB0aHUgdHUg bmhhbiENCg0KVHJ1b2MgImJpZW4gbWF0IiBuYXkgeHVhdCBoaWVuIQ0KDQpUaGVvIHRob25nIGJh byBzbyAyMjYtVEIvVFUgY3VhIFRoYW5oIHV5IFRQSENNLCBCaSB0aHUgVGhhbmggdXkgTGUgVGhh bmggSGFpIA0KY2hpIGRhbzogIlNvIFhheSBkdW5nLCBwaG9pIGhvcCBTbyBUTi1NVCBraGFuIHRy dW9uZyBjaHVhbiBiaSBkYXkgZHUgcXV5IGRhdCB0YWkgDQpkaW5oIGN1IHRyb25nIHBoYW0gdmkg NSBwaHVvbmcgKEFuIEtoYW5oLCBCaW5oIEFuLCBCaW5oIEtoYW5oLCBUaHUgVGhpZW0gdmEgQW4g DQpMb2kgRG9uZykgZGUgeGF5IGR1bmcgMTIuNTAwIGNhbiBobyBjaHVuZyBjdSwgZGFwIHVuZyBk dSB5ZXUgY2F1IHRhaSBkaW5oIGN1IGNobyBkYW4gDQpjdWEgZHUgYW4gS2h1IGRvIHRoaSBtb2kg VGh1IFRoaWVtIg0KDQpUcm9uZyBxdXlldCBkaW5oIDM2Ny9UVGcgY3VhIFRodSB0dW9uZyBjdW5n IG5ldSBybywgMTYwIGhhIGRpbmggY3UgY3VhIGRhbiBjdW5nIG5hbSANCnRyb25nIHBoYW0gdmkg NSBwaHVvbmcgdHJlbiB2YSBuaHUgVGllbiBwaG9uZyBkYSBwaGFuIGFuaCB0aGkgdHUgdHJ1b2Mg ZGVuIG5heSBDaGluaCANCnBodSBjdW5nIGNodWEgY2hvIHBoZXAgVFBIQ00gdGhheSBkb2kgbm9p IGR1bmcgdHJlbi4gDQoNClR1eSBuaGllbiwgdHUgbmhpZXUgbmFtIG5heSwgY2hpbmggcXV5ZW4g VFBIQ00gbGFpIGNodSB0cnVvbmcgImtob25nIG5oYXQgdGhpZXQgcGhhaSANCmN1bmcgbW90IGRp YSBkaWVtIiB2YSBuaGlldSBraHUgdGFpIGRpbmggY3UgdHJvbmcgc28gMTYwIGhhIGRhIGJpICJk YXkiIHJhIGtob2kgS2h1IGRvIA0KdGhpIG1vaSBUaHUgVGhpZW0uIA0KDQpQaG8gQ2h1IHRpY2gg VUJORCBUUEhDTSBOZ3V5ZW4gSHV1IFRpbiB0dW5nIGtoYW5nIGRpbmgsIHNlIGNvIDkwIGhhIHRh aSBkaW5oIGN1IA0KdGFpIE5hbSBSYWNoIENoaWVjIChwaHVvbmcgQW4gUGh1LCBxdWFuIDIpLCA1 MCBoYSB0YWkgcGh1b25nIENhdCBMYWkgdmEgNiw0IGhhIHRhaSANCnBodW9uZyBUaGFuaCBNeSBM b2kuLi4gDQoNCkNhYyB2aSBxdWFuIGNodWMgcXVhbiAyLCBCYW4gUXVhbiBseSBLaHUgZG8gdGhp IG1vaSBUaHUgVGhpZW0gY3VuZyBuaGlldSBsYW4gdHJhIGxvaSANCmRhbiBtYSBraG9uZyBoZSBk ZSBjYXAgZ2kgZGVuIGNhYyBraHUgdGFpIGRpbmggY3UgdGFpIEJpbmggQW4sIEJpbmggS2hhbmgs IFRodSBUaGllbS4gDQpOaHVuZyBuYXkgdGhpIEJpIHRodSBUaGFuaCB1eSBUUEhDTSBjbyB5IGtp ZW4ga2hvbmcgbmh1IGxhbmggZGFvIFRQSENNLCBxdWFuIDIgDQpkYSB0cmEgbG9pIGJhbyBjaGks IGN1IHRyaSBxdWFuIDIgdHJ1b2MgZGF5ISBWYXkgbGF1IG5heSBjaGluaCBxdXllbiBUUEhDTSBs YW0gdmF5IA0KZHVuZyBoYXkgc2FpPyANCg0KRG8gbGEgY2F1IGhvaSBtYSBuaGlldSBuZ3VvaSBk YW4gcXVhbiAyIG1vbmcgbXVvbiBzb20gZHVvYyB0cmEgbG9pIGNvbmcga2hhaSwgbWluaCANCmJh Y2guIFZvaSBjaGkgZGFvIHRyZW4gY3VhIEJpIHRodSBUaGFuaCB1eSBUUEhDTSwgZGFuIHF1YW4g MiBkYW5nIGh5IHZvbmcgc2UgZHVvYyANCiJ0cmEgbGFpIiBkYXQgdGFpIGRpbmggY3UgdGFpIG5v aSBtYSBobyBjbyBxdXllbiBkdW9jIGh1b25nLCB0dXkgbmhpZW4gaG8gdmFuIGNvbiBuaGlldSAN CmJhbiBraG9hbi4uLg0KDQpBaSBsb2ksIGFpIHRoaWV0Pw0KDQpUcmFvIGRvaSB2b2kgY2h1bmcg dG9pLCBuaGlldSBuZ3VvaSBkYW4gcXVhbiAyIGRhdCBjYXUgaG9pOiAiVm9pIGNoaSBkYW8gdHJl biB0aGkgc2UgY28gDQoxMi41MDAgY2FuIGhvIGNodW5nIGN1IHJhIGRvaSwgcGh1YyB2dSB0YWkg ZGluaCBjdSBuaHVuZyBiYW8gZ2lvIG1vaSBjbyB2YSB2b2kgZGllbiB0aWNoIA0KYmFvIG5oaWV1 LCBjbyBkdSAxNjAgaGEgbmh1IFRodSB0dW9uZyBkYSBjaGkgZGFvIGhheSBpdCBob24/Ii4gDQoN CkhpZW4gbmF5LCBwaGFuIGxvbiBjYWMga2h1IHRhaSBkaW5oIGN1IG1hIFRQSENNIGRpbmggZGFu aCBjaG8gZGFuIHF1YW4gMiBiaSBnaWFpIHRvYSANCm5odSBraHUgTmFtIFJhY2ggQ2hpZWMsIFRo YW5oIE15IExvaSwgQ2F0IExhaS4uLiBEdSBkYSBkdW9jIHRodWMgaGllbiBob24gNSBuYW0gDQpu YXkgbmh1bmcgY2h1YSBraHUgbmFvIGhvYW4gdGhhbmgsIHRoYW0gY2hpIGNvIG5vaSBjb24gY2h1 YSBnaWFpIHRvYSwgc2FuIGxhcCB4b25nISANCg0KTmh1bmcgbmd1b2kgZGEgY2hhcCBoYW5oIGdp YWkgdG9hLCBkZW4gYnUgdmEgdHJ1b2Mga2hvbmcgZHVvYyB0YWkgZGluaCBjdSB0YWkgNSBwaHVv bmcgDQp0cm9uZyBLaHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gbGlldSBjbyB0aGlldCB0aG9pIHZh IG5odW5nIGtodSB0YWkgZGluaCBjdSBtYSBjaGluaCANCnF1eWVuIFRQSENNIG5oaWV1IGxhbiBr aGFuZyBkaW5oIGRhIGR1IDE2MCBoYSBuYXkgdGh1YSB0aGlldSByYSBzYW8/IA0KDQpEaWV1IG1h IG5ndW9pIGRhbiBxdWFuIDIgY2FuIGxhIGNvbmcga2hhaSBxdXkgZGF0IGRhbmggeGF5IDEyLjUw MCBjYW4gaG8gY2h1bmcgY3UgdGFpIA0KZGluaCBjdSBsYSBiYW8gbmhpZXUsIG5ldSBpdCBob24g MTYwIGhhIHRoaSBzbyBjb24gbGFpIGdpYWkgcXV5ZXQgdGhlIG5hbywgVFBIQ00gc2Ugc3UgDQpk dW5nIHNvIGRhdCBuYXkgdmkgbG9pIGljaCBxdW9jIGdpYSBoYXkgdmFvIG11YyBkaWNoIGdpIGto YWM/DQoNCkhpZW4gbmF5LCBVQk5EIFRQSENNIGRhbmcga2hhbiB0cnVvbmcgbGFtIGJhbyBjYW8g dHJpbmggVGh1IHR1b25nIHZlIGNvIHNvIHBoYXAgDQpseSwgdG9hbiBibyBxdWEgdHJpbmggY2hp IGRhbywgZGlldSBoYW5oIHRvIGNodWMgdGh1YyBoaWVuIHF1eSBob2FjaCBLaHUgZG8gdGhpIG1v aSBUaHUgVGhpZW0uIA0KDQpUaGFuaCB1eSBUUEhDTSBjdW5nIGNoaSBkYW8gZGFtIGJhbyBub2kg byBtb2kgY2hvIG5ndW9pIGRhbiB0YWkgZGluaCBjdSB0b3QgaG9uIG5vaSANCm8gY3UuIE5odW5n IGRpZXUgZG8gY28gbGUgY2h1YSBkdSB2b2kgbmhpZXUgbmd1b2kgZGFuIHBoYWkgaHkgc2luaCBk YXQgZGFpIG5oYSBjdWEgZGUgY28gDQptb3QgIlBobyBEb25nIiB0YWkgS2h1IGRvIHRoaSBtb2kg VGh1IFRoaWVtIG1hIGRpZXUgaG8gY2FuIGNvbiBsYSBuaHVuZyBjaHUgdHJ1b25nIA0KY2hpY2gg c2FjaCBob3AgbHkgaG9wIHRpbmgsIGNvbmcgYmFuZywga2hvbmcgeHVhdCBwaGF0IHR1IGRvbmcg Y28gImNodWEgY2hheSIgdmEgInRpZW4gDQpoYXUgYmF0IG5oYXQiIG5odSBkYSB0dW5nIHhheSBy YSB0YWkgZGF5LiANCg0KQ2hvIGRlbiBuYXksIGhhbmcgbG9hdCB0aGFjIG1hYywga2llbiBuZ2hp IGN1YSBjdSB0cmkgcXVhbiAyIHZhbiBjaHVhIGR1b2MgZ2lhaSBkYXAgdGhvYSANCmRhbmcgdmEg aG8gY28gY28gc28gZGUgZGF0IGRhdSBob2kgdmUgdmllYyB0YWkgc2FvIG5oaWV1IGtodSBkYXQg bmFtIHRyb25nIHNvIDE2MCBoYSBkYXQgDQp0YWkgZGluaCBjdSB0cnVvYyAiYmllbiBtYXQiIGto b2kgS2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIG5heSBsYWkgZHVvYyB0cmEgbGFpPyANCg0KQWkg c2UgY2hpdSB0cmFjaCBuaGllbSB2ZSB2YW4gZGUgbmF5IHZhIHF1eSBob2FjaCBwaGFpIGR1b2Mg ICJkYW4gYmlldCwgZGFuIGJhbiwgZGFuIA0Ka2llbSB0cmEiICBuaHVuZyB2aSBseSBkbyBnaSBj aGkgImhlIG1vIiBraGkgZGFuIHBoYW4gdW5nLCBidWMgeHVjPw0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDA5MDcvMjAwOTAyMTUyMzI4NDcuYXNweCAxNS8wMi8y MDA5IDIzOjI4IA0KDQpUUCBIQ006IER1IGFuIFRodSBUaGllbSBwaGFpIHRyYSB0aWVuIGhvIHRy byBibyBzdW5nICAgDQoNClRodSBob2kgaG9uIDEzMSB0aSBkb25nIGNoaSB0cmEgc2FpIHF1eSBk aW5oIA0KDQpIb20gbmF5IDE2LjIsIEJhbiBib2kgdGh1b25nIGdpYWkgcGhvbmcgbWF0IGJhbmcg US4yLCBUUC5IQ00gY2hpbmggdGh1YyBjb25nIGJvIA0KZGFuaCBzYWNoIGNhYyB0cnVvbmcgaG9w IGNoaSBtb2kgdmEgY2hpIGhvIHRybyBibyBzdW5nIHRoZW8gY2hpbmggc2FjaCBtb2kgDQooUUQw Ni8yMDA5KSB0YWkgRHUgYW4gS2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIChLRFRNVFQpLiANClRy b25nIGRvLCBuZ29haSA0IGhvIG5oYW4gdGFpIGRpbmggY3UsIGNhYyBobyBjb24gbGFpIGRldSBu aGFuIGhvIHRybyBibyBzdW5nIGJhbmcgdGllbi4gDQpUb25nIHNvIGhvIHNvIG5oYSwgZGF0IHBo YWkgY2hpIHRyYSBib2kgdGh1b25nLCBobyB0cm8gYm8gc3VuZyB0aGVvIGNoaW5oIHNhY2ggbW9p IHRvYW4gDQpkdSBhbiBsYSAxMi4zMjMgaG8gc28sIHZvaSBzbyB0aWVuIHBoYWkgY2hpIGtob2Fu ZyAyNSBuZ2FuIHRpIGRvbmcuIA0KU29uZyBzb25nIHZvaSBjb25nIHRhYyBjaGkgdHJhIHRpZW4g Ym9pIHRodW9uZywgaG8gdHJvLCBCYW4gYm9pIHRodW9uZyBnaWFpIHBob25nIG1hdCANCmJhbmcg US4yIGNobyBiaWV0IHF1YSBraWVtIHRyYSwgcmEgc29hdCBkYSB4YWMgZGluaCBjbyAxLjY1NSBo byBzbyB0cm9uZyBLRFRNVFQgcGhhaSANCnRodSBob2kgdGllbiBkbyBib2kgdGh1b25nLCBobyB0 cm8sIHRodW9uZywgdGFtIHVuZy4uLiBzYWkgcXV5IGRpbmgsIHZvaSB0b25nIHNvIHRpZW4gcGhh aSB0aHUgaG9pIGhvbiAxMzEsNyB0aSBkb25nLiANCg0KKDI1IG5nYW4gdHkgZG9uZyBnYW4gZ2Fw IGRvaSB0b25nIG11YyBkYXUgdHUgZHUgYW4geGF5IGNhdSBOaGF0IFRhbiBvIEhhIE5vaSAtIDEz LDYgbmdoaW4gdHkgZG9uZy4gDQpOZXUgZG8gc2FpIHBoYW0gY3VhIG9uZyBMZSBUaGFuaCBIYWkg bWEgbmdhbiBzYWNoIHBoYWkgY2hpIHRoZW0gc28gdGllbiBkbywgdGhpIG9uZyBIYWkgcGhhaSBj aGl1IHRyYWNoIG5oaWVtIGNhIG5oYW4pDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhv aS9waGFwbHVhdC8yMDA5LzA5Lzg3MDQ4OC8gQ2FwIG5oYXQgbHVjIDEzOjQzLCBUaHUgU2F1LCAy NS8wOS8yMDA5IChHTVQrNykNCg0KVFAgSENNOiBIdXluaCBOZ29jIFNpIG5oYW4gYW4gMyBuYW0g bmhvLi4uIm5oYW4gdGhhbiB0b3QiIQ0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNl L3ZpZXRuYW0vc3RvcnkvMjAwOC8xMS8wODExMTJfcGNpX2JyaWJlLnNodG1sIDEyIFRoYW5nIDEx IDIwMDggLSBDYXAgbmhhdCAxNGg0OSBHTVQNCg0KVFAgSENNOiBDYWMga2hvYW4gdGllbiBob24g Miw0IHRyaWV1IGRvIGxhIG1hIFBDSSBiaSBjYW8gYnVvYyB0cmFvIGNobyBvbmcgSHV5bmggTmdv YyBTeSwgZGllbiByYSANCnRyb25nIGdpYWkgZG9hbiAyMDAyLTIwMDYuIERheSBjdW5nIGNoaW5o IGxhIGdpYWkgZG9hbiBDaHUgdGljaCBudW9jIFZpZXQgTmFtIGhpZW4gbmF5IA0KTmd1eWVuIE1p bmggVHJpZXQgZ2l1IGNodWMgQmkgdGh1IFRoYW5oIHV5IHRhaSBUUEhDTSwgTGUgVGhhbmggSGFp IGxhbSBjaHUgdGljaCBVQk5EIFRQIEhDTSANCg0KaHR0cDovL2NvaHV5bmgubXVsdGlwbHkuY29t L2pvdXJuYWwvaXRlbS8yNDMvMjQzICAyNi85LzA5IDk6NTAgUE0gdHVvbmcgc2kgdHVvbmcgDQoN ClRQIEhDTTogTmFtIGRpZXUgYnVvbiBjdW9pIHF1YSB2dSBhbiB4dSBvbmcgSHV5bmggTmdvYyBT aQ0KDQpUaW4gMTogVHJ1b2MgcGhpZW4gdG9hIA0KDQoiS2hhYyB2b2kgdGh1b25nIGxlLCB0cnVv YyBraGkgcGhpZW4geHUgYmF0IGRhdSwgdG9hIGRhIHlldSBjYXUgdGF0IGNhIG1vaSBuZ3VvaSBy b2kga2hvaSANCnBob25nIHh1IHRydW9jIGtoaSBjYWMgYmkgY2FvIGR1b2MgZGFuIGdpYWkgZGVu IHZhbmggbW9uZyBuZ3VhKCopLiBQaG9uZyB2aWVuIHRyb25nIA0KdmEgbmdvYWkgbnVvYyBwaGFp IHRhYyBuZ2hpZXAgbmdvYWksIHRob25nIHF1YSAyIG1hbiBoaW5oIGxvbi4gTHkgZG8gZHVvYyBj aHUgdG9hIGR1YSANCnJhIGxhIGRlIGdpdSBzdSBuZ2hpZW0gdHJhbmcgdmEga2hvbmcgbGFtIGFu aCBodW9uZyBkZW4gSG9pIGRvbmcgeGV0IHh1IGN1bmcgbmh1IGNhYyBiaSBjYW8uIg0KDQpUaW4g MjogU2F1IHBoaWVuIHRvYSANCg0KIi4uLmNodSB0b2EgTmd1eWVuIER1YyBTYXUgY3VuZyBjaG8g YmlldCwgdHJ1b2Mga2hpIHZ1IGFuIGR1b2MgZHVhIHJhIHhldCB4dSwgdG9hIGFuIA0KVFAgSENN IGRhIG5oYW4gZHVvYyByYXQgbmhpZXUgZG9uIHR1LCBjb25nIHZhbiBjdWEgY2FjIGJhbiBuZ2Fu aCwgdGFwIHRoZSAidGhhIHRoaWV0IiANCmRlIG5naGkgdG9hIGNvbmcgbWluaCB4ZW0geGV0IGdp dWEgY29uZyB2YSB0b2ksIGdpYW0gbmhlIGhpbmggcGhhdCBjaG8gY2FjIGJpIGNhby4iKCopIA0K DQpUb2EgYW4gVFAgSENNIGR1b2kgbmd1b2kgZHUgcGhpZW4geHUsIHRyb25nIGRvIGNvIGNhIGNh YyBjbyBxdWFuIGJhbyBjaGkgdHJvbmcgdmEgDQpuZ29haSBudW9jLCByYSBuZ29haSB2b2kgbHkg ZG8gImtob25nIGxhbSBhbmggaHVvbmcgZGVuIEhvaSBkb25nIHhldCB4dSIuIE5odW5nIA0KY3Vu ZyBjaGluaCBjaHUgdG9hIHBoaWVuIHRvYSBsYWkgdGh1YSBuaGFuIHJhbmcgdHJ1b2Mga2hpIHh1 IG9uZyB0YSBkYSAiZGEgbmhhbiBkdW9jIA0KcmF0IG5oaWV1IGRvbiB0dSwgY29uZyB2YW4gY3Vh IGNhYyBiYW4gbmdhbmgsIHRhcCB0aGUgInRoYSB0aGlldCIgZGUgbmdoaSB0b2EgY29uZyBtaW5o IA0KeGVtIHhldCBnaXVhIGNvbmcgdmEgdG9pLCBnaWFtIG5oZSBoaW5oIHBoYXQgY2hvIGNhYyBi aSBjYW8uIiBWYSBtb3QgcGhhbiBuaG8gZG8gbWEgDQphbiBwaGF0IG9uZyBTaSBjaGkgY29uIGxh IDMgbmFtIHR1IGdpYW0sIHRoYXAgaG9uIG5oaWV1IHNvIHZvaSBraHVuZyBoaW5oIHBoYXQgMTAt MjAgDQpuYW0gdHUgZ2lhbSB0aGVvIERpZXUgMTY1IEJvIEx1YXQgSGluaCBzdS4NCg0KVGhhdCBi dW9uIGN1b2kuIE9uZyBUb2EgZHVvaSBuZ3VvaSBkdSB4dSBtb3QgcGhpZW4gdG9hIGNvbmcga2hh aSB2aSBzbyBhbmggaHVvbmcgDQp0b2kgSG9pIGRvbmcgeGV0IHh1LiBOaHVuZyBvbmcgbGFpIGdp YW4gdGllcCB0aHVhIG5oYW4gcmFuZyBIb2kgZG9uZyB4ZXQgeHUgZGEgY2hpdSANCmFuaCBodW9u ZyBjdWEgbmh1bmcgImNvbmcgdmFuIGN1YSBjYWMgYmFuIG5nYW5oLCB0YXAgdGhlIiAoPykuLi4g ZGUgbmdoaSB0b2EgImdpYW0gDQpuaGUgaGluaCBwaGF0IGNobyBjYWMgYmkgY2FvIi4gRG8gbGEg ZGlldSBidW9uIGN1b2kgdGh1IG5oYXQuDQoNCkNvIHF1YW4gdHUgcGhhcCBraG9uZyBkb2MgbGFw LCB4ZXQgeHUgY2FuIGN1IHZhbyB0b2kgdHJhbmcgdmEgYmFuZyBjaHVuZyBtYSBsYWkgdGh1YSAN Cm5oYW4gYW5oIGh1b25nIGN1YSBjYWMgYmFuIG5nYW5oLCB0YXAgdGhlIHRyb25nIHF1eWV0IGRp bmggeGV0IHh1LiBEbyBsYSBkaWV1IGJ1b24gY3VvaSANCnRodSBoYWkuDQoNCkJpIGNhbyBTaSBi aSBwaGlhIE5oYXQgY2FvIGJ1b2MgbGEgbmhhbiA4MjAuMDAwIFVTRCB0aWVuIGhvaSBsbyBuaHVu ZyBuaHUgbmh1bmcgZ2kgDQpiYW8gY2hpIHR1b25nIHRodWF0IHZlIHBoaWVuIHRvYSB0aGkgc3Ug dmllYyBuYXkga2hvbmcgaGUgZHVvYyBWaWVuIGtpZW0gc2F0IG5oYWMgZGVuLiANClR1IHZ1IGFu IDgyMC4wMDAgVVNEIHh1b25nIGNvbiB2dSBhbiA1MiB0cmlldSBWTkQgKGxhIHNvIHRpZW4gb25n IFNpIG5oYW4gdHUgbmh1bmcgDQpuZ3VvaSB0aHVlIG5oYSBodXUgaGFvKS4gRG8gbGEgZGlldSBi dW9uIGN1b2kgdGh1IGJhLg0KDQpQaGllbiB0b2EgImd1aSBnaWF5IHRyaWV1IHRhcCB0b2kgODcg bmd1b2kgY28gbGllbiBxdWFuIHRyb25nIHZ1IGFuIG5odW5nIGNoaSBjbyBob24gY2h1YyANCm5n dW9pIGNvIG1hdCIuIFZhIHZpZWMgdmFuZyBtYXQgdG9pIDYwLTcwIG5ndW9pIGxpZW4gcXVhbiBk byBjdW5nIGNoYW5nIGhlIGFuaCBodW9uZyANCmdpIHRvaSB2aWVjIHhldCB4dSBjaG9uZyB2YW5o IHRyb25nIDIgbmdheSBjdWEgcGhpZW4gdG9hLiBEbyBsYSBkaWV1IGJ1b24gY3VvaSB0aHUgdHUu DQoNCk1vdCB2dSBhbiBkdW9jIGRpY2ggdGhhbiAiVGh1IHR1b25nIHRydWMgdGllcCBjaGkgZGFv Iiwgdm9pIHN1IHRoYW0gZ2lhIGhvcCB0YWMgY3VhIGNvIA0KcXVhbiB0dSBwaGFwIGhhaSBudW9j IG1hIGhhdSBxdWEgY3VhIG5vIGtoaWVuIE5oYXQgQmFuIHRhbSBuZ3VuZyB2aWVuIHRybyBPREEg Y2hvIA0KVmlldCBOYW0gbWEgY3VvaSBjdW5nIHRoYW5oIHJhIG1vdCB0aHUgZGF1IHZvaSBkdW9p IGNodW90LCBsaWVuIHF1YW4gdm9uIHZlbiB0b2kgc28gDQp0aWVuIGhvbiAxIHR5IGRvbmcgY2hv IHRodWUgbmhhIHNhaSBuZ3V5ZW4gdGFjLiBEbyBsYSBkaWV1IGJ1b24gY3VvaSB0aHUgbmFtLiAN Cg0KQmkgY2FvIFNpIGNoYWMgaGFuIHNlIGNoaSBwaGFpIG5nb2kgdHUgY2h1bmcgMSBuYW0sIHJv aSBzZSBkdW9jICJkYWMgeGEiIHNvbSBjb24ga2lwIGRpIA0KYW4gY3VvaSBjb24gZ2FpIChiaSBo b2FuIGRvIHZ1IGFuKS4gQ3VuZyBsYSBzdWkgZ2lhIG5odW5nIHN1aSBnaWEgVG9uZyB0aG9uZyBJ bmRvbmVzaWEgDQp0aGF0IHh1aSB4ZW8sIGR1b25nIGR1b25nIGxhIHN1aSBnaWEgVG9uZyB0aG9u ZyBkdW9uZyBuaGllbSBtYSBiaSBib24gbmFtIHJ1b2kgdHUgdmkgDQp0b2kgInRoYW0gbmh1bmci LiBEdW5nIGxhIG1vdCBxdW9jIGdpYSBraG9uZyBjbyB0aW5oLiBPIFZpZXQgTmFtICJkYXQgbnVv YyB0aW5oIHlldSIgDQpjaHVuZyB0YSB0aGkgY2hpIGxhIHN1aSBnaWEgKGR1IGNodWEgY2hpbmgg dGh1YykgY3VhIGFpIGRvIHRoaSB0b2EgYW4gZGEgY28gdGhlIG5oYW4gZHVvYyANCnJhdCBuaGll dSBkb24gdHUsIGNvbmcgdmFuIChzYW8ga2hvbmcgdGhheSBvbmcgVG9hIG5oYWMgdG9pIHRodSB0 YXkgaGF5IGRpZW4gdGhvYWkpIHhpbiANCmdpYW0gdG9pIHJvaS4gVmEgdGhlbyBkbyBtdWMgYW4g Y3VuZyBnaWFtIGNob25nIG1hdCwgdHUgMTAtMjAgbmFtIHR1IChraHVuZyBoaW5oIHBoYXQpIA0K eHVvbmcgY29uIDUtNiBuYW0gdHUgKGRlIG5naGkgY3VhIFZLUykgeHVvbmcgbnVhIGNvbiAzIG5h bSB0dSAoYW4gdHV5ZW4pIHZhIGNoYWMgc2UgDQp4dW9uZyBudWEgY29uLi4ueHh4IChkYWMgeGEp Lg0KR2lhIG1hIGNhYyBsby1jb3QgZGFuZyBnYXkgdGFjIG5naGVuLCBrZXQgeGUsIGxhbmcgcGhp IGtob25nIGJpZXQgYmFvIG5oaWV1IGN1YSBjYWksIA0KdGFpIG5ndXllbiBvIFRQIEhDTSBjdW5n IGdpYW0gZGkgdm9pIGN1bmcgdG9jIGRvIGF5ISANCg0KW0RvYyB0aGVtIGh0dHA6Ly93d3cudm5l eHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwOS8wOS8zQkExM0M5NS8gKCopLA0KaHR0cDovL3d3 dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDA5LzA5LzNCQTEzREUwLyAoKildDQoNClkg a2llbiBiYW4gZG9jOg0KQ28gSHV5bmggMjYvMDkvMDk6ICANCg0KQ29uIFNpIGxhbSBzdWkgZ2lh IHZvaSBjb24gZ2kgdmF5PyBEdW5nIGxhIGNvICJ0aGFuIG5oYW4iIHRvdC4NCg0KQ2ggMjcvOS8w OSANCg0KIlRodSB0dW9uZyB0cnVjIHRpZXAgY2hpIGRhbyIsIA0KU3VpIGdpYSB2b2kgTGUgVGhh bmggSGFpLCANClRoYW4gbmhhbiB0b3QgdGhhdC4gaGFoYS4uLiANCg0KaHR0cDovL2ZvcnVtcy52 aWV0YmFvLmNvbS90b3BpYy5hc3A/VE9QSUNfSUQ9NTE4NTAgMTEvMjQvMjAwOCA6ICAwNzo1OToy MSAgIA0KKG5ndW9uOiBodHRwOi8vd3d3LnNidG4ubmV0L2RlZmF1bHQuYXNweD9MYW5nSUQ9Mzgm dGFiSWQ9MTkzJkFydGljbGVJRD0zMTUzOCBUaHUgQmF5LCBOZ2F5IDIyIHRoYW5nIDExLTIwMDgp DQoNCk9uZyBIdXluaCBOZ29jIFNpIGdhcCBuYW4sIGNvIHRoZSBiaSB0aGFuaCB0b2FuIA0KIA0K VGluIFNhaWdvbiAtIEJhbyBjaGkgdGFpIFNhaWdvbiBob20gbmF5IGRhbmcgdGluIG9uZyBIdXlu aCBOZ29jIFNpLCBuZ3VvaSBiaSBjYW8gYnVvYyBuaGFuIGhvaSBsbyANCmN1YSBjb25nIHR5IE5o YXQgUENJLCB2dWEgZHVvYyBkdWEgdmFvIGJlbmggdmllbiB2aSB0YWkgYmllbiBtYWNoIG1hdSBu YW8uIFRyb25nIGtoaSBkbywgb25nIExlIFRvYW4gDQpsYSBQaG8gZ2lhbSBkb2Mgc28gZ2lhbyB0 aG9uZyB2YW4gdGFpIHRoYW5oIHBobyBTYWlnb24gZGEgZHVvYyBkZSBuZ2hpIHRhbSB0aG9pIGRh bSB0cmFjaCB2aSB0cmkgZ2lhbSANCmRvYyBkdSBhbiBkYWkgbG8gRG9uZyBUYXksIHRoYXkgY2hv IG9uZyBTaS4gTmhpZXUgbmd1b2kgY2hvIHJhbmcgZGF5IGNvIHRoZSBsYSBtb3QgdnUgZGFuIHhl cCBnaWV0IG5ndW9pIA0KZGUgYml0IG1pZW5nLiBIb2kgZGF1IHR1YW4sIHRoYW5oIHBobyBTYWln b24gZGEgcXV5ZXQgZGluaCB0YW0gZGluaCBjaGkgY29uZyB0YWMgZG9pIHZvaSBvbmcgSHV5bmgg TmdvYyBTaSANCmRlIHRpZXAgdHVjIGRpZXUgdHJhIGxhbSByby4gR2lvaSBjaHVjIHRoYW5oIHBo byBraGFuZyBkaW5oIGNhbSBrZXQgdGh1YyBoaWVuIGR1bmcgdGllbiBkbyBkdSBhbiANCnhhIGxv IERvbmcgVGF5LCBtYSB0aGVvIGtlIGhvYWNoIHRoaSBzZSBwaGFpIGhvYW4gdGF0IHZhbyBuYW0g MjAxMC4gRHUgYW4gbmF5IHZhIGR1IGFuIGNhaSB0YW8gbW9pIA0KdHJ1b25nIG51b2MgdGhhbmgg cGhvIFNhaWdvbiBkdW9jIHRhaSB0cm8gYm9pIG5ndW9uIHZvbiBPREEgZG8gY2hpbmggcGh1IE5o YXQgQmFuIGN1bmcgY2FwLiBDaG8gdG9pIA0KbmF5IHRyb25nIG5odW5nIHZhbiBiYW4gZHVvYyBj b25nIGtoYWkgcGhvIGJpZW4gdHJvbmcgbnVvYywgb25nIFNpIHZhbiBwaHUgbmhhbiBtb2kgdmll YyBsaWVuIHF1YW4gDQpkZW4gbmhhbiBob2kgbG8sIHZhIGtoYW5nIGRpbmggcmFuZyBxdWEgdHJp bmggZGF1IHRoYXUgdmEgY2hvbiB0aGF1IHRyb25nIGR1IGFuIG5heSBob2FuIHRvYW4gdGhlbyAN CmR1bmcgcXV5IGRpbmguIENvIHF1YW4gZGlldSB0cmEgY3VhIFZpZXQgTmFtIGNodWEgZHVhIHJh IGJhdCBjdSBrZXQgbHVhbiBuYW8gdmUgc2FpIHBoYW0gdGFpIGRheS4gDQpUdXkgbmhpZW4gdnUg Y2FvIGJ1b2MgaG9pIGxvIGhhbmcgdHJpZXUgZG8tbGEgZGEgZ2F5IGNodSB5IGRhYyBiaWV0IHRy b25nIGR1IGx1YW4gVmlldCBOYW0gdmEgTmhhdCBCYW4uIA0KQmFvIGNoaSBOaGF0IGRhIHBoYW5o IHBodWkgdnUgbmF5IHR1IGtoaSBjbyB0aW4gdmUgNCBjdXUgdmllbiBjaHVjIGNvbmcgdHkgUENJ IGR1dCBsb3QgY2hvIGNhYyBjYW4gYm8gDQpDb25nIHNhbiBWaWV0IE5hbSBkZSB0aGFuZyB0aGF1 LiA0IG5oYW4gdmF0IG5heSBiaSBkdWEgcmEgdG9hIHZhIGJpIHRvIGNhbyB2aSBwaGFtIGx1YXQg Y2hvbmcgY2FuaCB0cmFuaCANCmJhdCBiaW5oIGRhbmcgdGFpIG1vdCBzbyBudW9jIG5oYW4gdmll biB0cm8gY3VhIE5oYXQuIDQgYmkgY2FvIHNhdSBkbyBkYSB0aHUgbmhhbiB0b2kgZHVhIGhvaSBs byB0YWkgdG9hIA0KYW4gcXVhbiBUb2t5bywgdmEga2hhaSBsYSBkYSBob2kgbG8gaG9uIDgwMCww MDAgZG8tbGEgY2hvIEh1eW5oIE5nb2MgU2kgdmEgbGVuIGRlbiB0cmVuIDIgdHJpZXUgZG8tbGEg DQpjaG8gY2FjIHZpZW4gY2h1YyBraGFjLiBOaGlldSBuZ3VvaSBjaG8gcmFuZyBIdXluaCBOZ29j IFNpIGtob25nIHRoZSBtb3QgbWluaCBsYXkgdHJvbiBzbyB0aWVuIG5heSBtYSANCmNvbiBjbyBs aWVuIGhlIGRlbiBuaGlldSBjYW4gYm8gY2FvIGNhcCBraGFjLCBuZW4gbmF5IGNvIHRoZSBiaSBn aWV0IGRlIGJpdCBtaWVuZyBuaGFtIGNoZSBkYXUgY2hvIG5odW5nIA0Kbmd1b2kgbGllbiBoZSBr aGFjIGNvbiBsYWkgaGF5IGNoYW5nPyANCg0KWSBraWVuIGRpZW4gZGFuOg0KDQpjdXRlbzU1IDEx LzI2LzIwMDggMTU6NTI6MDk6DQoNCkR1dCBkaWVtIEh1eW5oIG5nb2MgU3kgdGhpIHNlIGtob25n IHRpbSByYSBtYW5oIG1vaSBudWEgdmk6IA0KDQpEdW5nIGRhdSB0aGFuaCBwaG8gSENNIGx1YyBk byBsYSBvbmcgTmd1eWVuIE1pbmggVHJpZXQsIGJpIHRodSB0aGFuaCB1eTsgb25nIExlIFRoYW5o IEhhaSBsYSANCmNodSB0aWNoIHV5IGJhbiBuaGFuIGRhbiwgdHVjIGxhIGRvIHRydW9uZywgY2Ft IGRhdSBibyBtYXkgaGFuaCBjaGFuaCwga2luaCB0ZSwgeGEgaG9pLiANClZpZWMgeGF5IGR1bmcg bW90IHhhIGxvIGNoYXkgcXVhIFNhaUdvbiBzYW5nIGRlbiBUaHUgVGhpZW0ga2hvbmcgdGhlIG5h byBraG9uZyBxdWEgYmFuIHRheSANCmN1YSBoYWkgb25nIGF5LiBDb24gSHV5bmggTmdvYyBTeSBj aGkgbGEgUGhvIGdpYW0gZG9jIHNvIGdpYW8gdGhvbmcgdmFuIHRhaSwga2llbSBnaWFtIGRvYyAN CmJhbiBxdWFuIGx5IGR1IGFuIFBNVSBEb25nIFRheS4gTWFuZyBsdW9pIGNoaWEgY2hhYyBnaXVh IGNhYyBxdWFuIGNodWMgbyBTYWlnb24gY2hhYyBjb24gcGhhaSANCmNvIGtob2FuIGRhbmggY2hv IGNhYyBxdWFuIGNodWMgdHJvbmcgQm8gR2lhbyBUaG9uZyBWYW4gVGFpIG8gSGEgTm9pIG51YSEg VHJ1b2MgZG8gb25nIFRyaWV0IA0KZGEgZHVuZyBkYXUgdGluaCBCaW5oIER1b25nIGNvbiBkZSBs YWkgbW90IG1hbmcgbHVvaSB0dW5nIGNoaWEgZGF0IHJ1bmcgY2FvIHN1IHZvaSBuaGF1LCBuaGll dSANCmRhbiBlbSBuYW0gcXV5ZW4gY2FvIHRyb25nIGRhbmcsIGNvIGFuaCBkaSB4YXkgY2h1YSBs b24gZGUgdGhvIGhpbmggSG8gQ2hpIE1pbmggdHJvbmcgY2hhbmggZGllbiEgDQpDb24gb25nIExl IFRoYW5oIEhhaSBkYSB0dW5nIGNoaSBodXkgdGhhbmggbmllbiB4dW5nIHBob25nIGNodXllbiB0 aGF1IG5odW5nIHZ1IHRoaSBjb25nLCBkYSBub2kgDQp0aWVuZyB2ZSB2dSBjYXUgVmFuIFRoYW5o IDIgY3VuZyBuaHUgdnUgZGF0IG8gVGh1IFRoaWVtLiBCYXkgZ2lvLCBvbmcgVHJpZXQgbGFtIGNo dSB0aWNoIG51b2MsIA0KY3VuZyB2b2kgb25nIEhhaSwgY2EgaGFpIG5nb2kgdmFvIHRyb25nIEJv IENoaW5oIFRyaSBjYSByb2kuDQooVHJpY2ggdHUgYmFpICJEb2MgdGFpIGxhbSBjYSBudW9jIG5o dWMiKQ0KDQpodHRwOi8vZm9ydW1zLnZpZXRiYW8uY29tL3RvcGljLmFzcD9UT1BJQ19JRD01MTA3 MSBOZ28gTmhhbiBEdW5nIDEwLzExLzIwMDggOiAgMTg6MzA6MDcgICANCg0KRG9jIHRhaSBsYW0g Y2EgbnVvYyBuaHVjDQoNClZ1IFBDSSBob2kgbG8gY2FjIHF1YW4gY2h1YyBEYW5nIENvbmcgU2Fu IG8gU2FpIEdvbiBkYSBkdW9jIGJhbyBjaGkgTmhhdCBCYW4gdmEgYmFvIHRpZW5nIA0KVmlldCBv IGtoYXAgdGhlIGdpb2kgbG9hbiB0aW4gdHUgbnVhIHRoYW5nIG5heSAuIE1vdCBzbyBuZ3VvaSBW aWV0IHNvbmcgbyBOaGF0IHRoYW4gcmFuZyANCmtoaSBuZ2hlIG5ndW9pIE5oYXQgbm9pIGRlbiB2 dSBkbyBhbmggY2hpIG11b24gY2h1aSB4dW9uZyBkYXQgbWEgdHJvbiwgdmkgeGF1IGhvISBCYW8g Y2hpIA0KTmhhdCBCYW4gZGEgZGlldSB0cmEga3ksIG5ldSB0ZW4gaG8gbmh1bmcgbmd1b2kgZHVh IHRpZW4gdmEgbmhhbiB0aWVuIGhvaSBsbyBjdWEgY29uZyB0eSANCnR1IHZhbiBreSB0aHVhdCBQ Q0kgLg0KDQpOdWEgdGhhbmcgdHJvaSB0cm9pIHF1YSwgcGhhbiB1bmcgY3VhIGRhbmcgQ29uZyBT YW4gVmlldCBOYW0gdmFuIGNvaSBuaHUga2hvbmcgY28gZ2kgaGV0LiANCktob25nIG5odW5nIHRo ZSwgbW90IHZpZW4gY2h1YyBjYW8gY2FwIG8gSGEgTm9pIGNvbiBsZW4gdGllbmcgdHJhY2ggY3Ug Y2hpbmggcGh1IE5oYXQgQmFuIA0Ka2hvbmcgY2hpdSBrZW0gc29hdCBiYW8gY2hpIHRyb25nIG51 b2MgaG8sIGRlIGJhbyBjaGkgdHUgZG8gbG9hbiB0aW4gbGFtIG1hdCB1eSB0aW4gbmhhIA0KbnVv YyBDb25nIFNhbiBWaWV0IE5hbSEgS2hpIGxvaSB0cmFjaCBtb2MgbmF5IGR1b2MgbG9hbiBiYW8s IGNhIG51b2MgTmhhdCBzZSBwaGFpIGJhdCBjdW9pISANClZpIGtob25nIGFpIGNvIHRoZSBub2kg bGVuIG1vdCB5IGtpZW4gbG8gYmljaCBuaHUgdmF5IQ0KDQpUdSB0aGFuZyBTYXUsIGNvIHF1YW4g Y29uZyB0byBUb2t5byBkYSBuaG8gQm8gTmdvYWkgZ2lhbyBOaGF0IGNodXllbiBobyBzbyB2dSBQ Q0kgaG9pIGxvIA0Kc2FuZyBIYSBOb2ksIHZvaSBiYW4gZGljaCB0aWVuZyBWaWV0IGNobyBkZSBo aWV1LCBkZSBuaG8gY2hpbmggcGh1IE5ndXllbiBUYW4gRHVuZyBjb25nIA0KdGFjIHRyb25nIGN1 b2MgZGlldSB0cmEuIE5nYXkgMTAgdGhhbmcgQmF5LCBwaG8gVGh1IFR1b25nIGtpZW0gQm8gVHJ1 b25nIE5nb2FpIGdpYW8gUGhhbSANCkdpYSBLaGllbSBob3AgYmFvIG8gSGEgTm9pLCBtb3Qga3kg Z2lhIE5oYXQgQmFuIGhvaSwgeGluIG9uZyBjaG8gYmlldCB2ZSB0aW5oIGhpbmggZGlldSANCnRy YSB2dSBQQ0kgZGkgdG9pIGRhdSByb2k/IE9uZyBQaGFtIEdpYSBraGllbSB0cmEgbG9pIHRpbmgg a2hvOiBDaHVhIG5oYW4gZHVvYyB0aG9uZyB0aW4gDQpjaGluaCB0aHVjLCBjdW5nIGNodWEgbmhh biBkdW9jIGxvaSB5ZXUgY2F1IGN1YSBjaGluaCBwaHUgTmhhdCBCYW4gdmUgdnUgbmF5IQ0KDQpL eSBnaWEgY3VhIHRvIGJhbyBBa2EgSGF0YSAoQ28gRG8sIGJhbyBjdWEgQ29uZyBTYW4gTmhhdCkg dmlldDogIk1vdCB0aG9uZyB0aW4gcXVhbiB0cm9uZyANCmxpZW4gcXVhbiB0b2kgQm8gTmdvYWkg R2lhbyBkaWVuIHJhIHRyZW4gaGFpIHR1YW4gbGUsIHRoZSBtYSBuZ3VvaSBkdW5nIGRhdSBibyBu YXkgbm9pIGxhIA0KY2h1YSBuaGFuIGR1b2MgdGhvbmcgdGluIHZhIG5odW5nIGxvaSB5ZXUgY2F1 IGN1YSBjaGluaCBwaHUgTmhhdCBCYW4hIiB2YSBuaGEgYmFvIGtldCBsdWFuOiANCiJIb2FjIGxh IG9uZyBCbyBUcnVvbmcgUGhhbSBHaWEgS2hpZW0gYmkgY2FwIHRyZW4gZGF1IGtpbiBraG9uZyBj aG8gYmlldCB0aW4gdHVjIG5heSEgSG9hYyANCmxhIG9uZyB0YSBiaWV0IG1hIG5lIHRyYW5oIGto b25nIHRyYSBsb2kuIENBIEhBSSB0cnVvbmcgaG9wIGRvIGRldSBjaG8gdGhheSBvbmcgdGEga2hv bmcgDQpkdSB0dSBjYWNoIG1vdCBibyB0cnVvbmcgbmdvYWkgZ2lhbyEiLiBUdSBuYW0gMjAwMCBj YWMgcXVhbiBjaHVjIG8gU2FpIEdvbiBkYSBkb2kgY29uZyB0eSANClBDSSBtdW9uIHRydW5nIHRo YXUgdGhpIHBoYWkgaG9pIGxvIGhvIDE1JSB0b25nIHNvIHRyb25nIGR1IGFuIHhheSBEYWkgTG8g RG9uZyBUYXkuIE5odW5nIGt5IA0Ka2VvIGJvdCBtb3QgdGhlbSBoYWksIGN1b2kgY3VuZyB0aHVh biBnaWEgMTAlISBEdSBhbiBuYXkgdHJpIGdpYSAzIHR5IFllbiwgZG8gY2hpbmggcGh1IE5oYXQg DQp2aWVuIHRybywgbGEgdGllbiBjdWEgZGFuIE5oYXQgZG9uZyB0aHVlIGdvcCBuZW4uIExheSAx MCUgbGEga2hvYW5nIDMwMCB0cmlldSBZZW4sIGdhbiAzIHRyaWV1IERvIGxhIQ0KDQpOdW9jIE5o YXQgY28gaGUgdGhvbmcgY29uZyBseSBjdWEgaG8uIEhvIG11b24gYmFvIHZlIHV5IHRpbiBxdW9j IGdpYSBuZW4gbGFtIGx1YXQgY2FtIA0KY2FjIGNvbmcgdHkgY3VhIGhvIGhvaSBsbyBjYWMgY2hp bmggcGh1IG5nb2FpIHF1b2MuIENvIG5odSB2YXkgdGhpIG1vaSBraG9pIGJpIGNhYyBudW9jIA0K a2hhYyBwaGFuIGRvaSwgdmkgdmllYyBjYW0gaG9pIGxvIGJhbyBkYW0gY2FjIHhpIG5naGllcCBk YXUgdGhhdSBkdW9jIGNhbmggdHJhbmggdGhhbmcgDQp0aGFuLCBuZ2F5IHRoYXQsIHRyb25nIGRh bmggZHUuIE5heSBtdW9uIGtldCB0b2kgbmh1bmcgbmd1b2kgY2FtIGRhdSBjb25nIHR5IFBDSSwg bmd1b2kgDQpOaGF0IGNhbiBtb2kgY2FjIHF1YW4gY2h1YyBDb25nIFNhbiByYSBkb2kgY2h1bmcu IE5ldSBvbmcgSHV5bmggTmdvYyBTeSBkdW9jIHBoZXAgRGFuZyANCkNvbmcgU2FuIGRpIFRva3lv IHJhIHRvYSBsYW0gY2h1bmcgKGNoaSBwaGkgY2h1eWVuIGNobywga2hhY2ggc2FuLCBhbiB1b25n IHNlIGRvIGNoaW5oIA0KcGh1IE5oYXQgQmFuIGRhaSB0aG8pIHRoaSBvbmcgdGEgdHUgY2hvaSBi YXkga2hhaSByYW5nIG9uZyB0YSBraG9uZyBiYW8gZ2lvIG5oYW4gbW90IA0KZG9uZyBob2kgbG8g bmFvIGN1YSBQQ0kgY2EhIE9uZyBIbyBYdWFuIFNvbiwgdGh1IHRydW9uZyBuZ29haSBnaWFvIEhh IE5vaSBjdW5nIGtoYW5nIA0KZGluaCAiYmFuIHF1YW4gbHkgZHUgYW4ga2hvbmcgaGUgY28gaGFu aCB2aSB0aWV1IGN1YyBuYW8gY2EhIg0KDQpOaHVuZyBIdXluaCBOZ29jIFN5IGN1bmcgY2hpIGxh IG1vdCBiYW5oIHhlIG5obyB0cm9uZyBndW9uZyBtYXkgY2hheSB0cmVuIGRhdSB0cmVuIGRhbiAN ClNhaSBHb24gdHJvbmcgdGhvaSBnaWFuIHhheSByYSB2dSBob2kgbG8gbmF5LiBEdW5nIGRhdSB0 aGFuaCBwaG8gbHVjIGRvIGxhIG9uZyBOZ3V5ZW4gDQpNaW5oIFRyaWV0LCBiaSB0aHUgdGhhbmgg dXk7IG9uZyBMZSBUaGFuaCBIYWkgbGEgY2h1IHRpY2ggdXkgYmFuIG5oYW4gZGFuLCB0dWMgbGEg ZG8gDQp0cnVvbmcsIGNhbSBkYXUgYm8gbWF5IGhhbmggY2hhbmgsIGtpbmggdGUsIHhhIGhvaS4g VmllYyB4YXkgZHVuZyBtb3QgeGEgbG8gY2hheSBxdWEgDQpTYWkgR29uIHNhbmcgZGVuIFRodSBU aGllbSBraG9uZyB0aGUgbmFvIGtob25nIHF1YSBiYW4gdGF5IGN1YSBoYWkgb25nIGF5LiBDb24g SHV5bmggDQpOZ29jIFN5IGNoaSBsYSBwaG8gZ2lhbSBkb2Mgc28gZ2lhbyB0aG9uZyB2YW4gdGFp LCBraWVtIGdpYW0gZG9jIGJhbiBxdWFuIGx5IGR1IGFuIFBNVSANCkRvbmcgVGF5LiBNYW5nIGx1 b2kgY2hpYSBjaGFjIGdpdWEgY2FjIHF1YW4gY2h1YyBvIFNhaSBHb24gY2hhYyBjb24gcGhhaSBj byBraG9hbiBkYW5oIA0KY2hvIGNhYyBxdWFuIGNodWMgdHJvbmcgQm8gR2lhbyBUaG9uZyBWYW4g VGFpIG8gSGEgTm9pIG51YSEgDQoNClRydW9jIGRvIG9uZyBUcmlldCBkYSBkdW5nIGRhdSB0aW5o IEJpbmggRHVvbmcgY29uIGRlIGxhaSBtb3QgbWFuZyBsdW9pIHR1bmcgY2hpYSBkYXQgDQpydW5n IGNhbyBzdSB2b2kgbmhhdSwgbmhpZXUgZGFuIGVtIHZhbiBjb24gbmFtIHF1eWVuIGNhbyB0cm9u ZyBkYW5nLCBjbyBhbmggZGkgeGF5IGNodWEgDQpsb24gZGUgdGhvIGhpbmggSG8gQ2hpIE1pbmgg dHJvbmcgY2hhbmggZGllbiEgQ29uIG9uZyBMZSBUaGFuaCBIYWkgZGEgdHVuZyBjaGkgaHV5IHRo YW5oIA0KbmllbiB4dW5nIHBob25nIGNodXllbiB0aGF1IG5odW5nIHZ1IHRoaSBjb25nLCBkYSBu b2kgdGllbmcgdmUgdnUgY2F1IFZhbiBUaGFuaCAyIGN1bmcgbmh1IA0KdnUgZGF0IG8gVGh1IFRo aWVtLiBCYXkgZ2lvLCBvbmcgVHJpZXQgbGFtIGNodSB0aWNoIG51b2MsIGN1bmcgdm9pIG9uZyBI YWksY2EgaGFpIG5nb2kgDQp2YW8gdHJvbmcgQm8gQ2hpbmggVHJpIGNhIHJvaS4gQWkgc2UgbGEg bmd1b2kgZGlldSB0cmEgY2FjIG9uZyB0cm9uZyBCbyBDaGluaCBUcmk/DQpLaG9uZyBjbyBhaSBo ZXQuIFZpIGRhbmcgQ29uZyBTYW4gVmlldCBOYW0gZG9jIHF1eWVuIGxhbmggZGFvLCBjaG8gbmVu IGtob25nIGNvIG1vdCBkaW5oIA0KY2hlIG5hbyBkb2MgbGFwIGJlbiBuZ29haSBkZSBraWVtIHNv YXQgY2FjIHF1YW4gY2h1YyBjYW8gbmhhdCBkYW5nIQ0KDQpUaGFtIG5odW5nIGxhIGR1bmcgcXV5 ZW4gaGFuaCBkZSBodW9uZyBsb2kgdmUgdGllbiB0YWksIHZhdCBjaGF0IGNobyBtaW5oLiBRdXll biBoYW5oIA0KdGh1b2MgdmUgbGFuaCB2dWMgY29uZywgdHJlbiBuZ3V5ZW4gdGFjIHBoYWkgZHVu ZyBkZSBtdXUgY2F1IGNvbmcgaWNoLiBMb2kgZHVuZyBxdXllbiANCmhhbmggZGUgaHVvbmcgbG9p IHJpZW5nLCBkaSBjb25nIHZpIHR1IGxhIGJhbiBjaGF0IGN1YSB0aGFtIG5odW5nLiBNb2kgdHJ1 b25nIHRodWFuIHRpZW4gDQpuaGF0IGRlIHRoYW0gbmh1bmcgcGhhdCB0cmllbiBsYSBjaGUgZG8g ZG9jIHRhaSwgbGEgZG9jIHF1eWVuIGNoaW5oIHRyaSwgZG9jIHF1eWVuIGtpbmggdGUuIA0KQ2Fj aCBuZ2FuIG5ndWEgdGhhbSBuaHVuZyBoaWV1IHF1YSBuaGF0IGxhIHRhbyBuZW4gbW90IHhhIGhv aSBjbyBjYWMgZGluaCBjaGUgcXV5ZW4gbHVjIGNhbiANCmJhbmcgbGFuIHZhIGtpZW0gc29hdCBs YW4gbmhhdS4gQmFvIGNoaSB0dSBkbyBsYSB2dSBraGkgY2hvbmcgdGhhbSBuaHVuZyBoaWV1IHF1 YSBuaGF0Lg0KDQpEb2kgdm9pIGNhYyBxdWFuIGNodWMgQ29uZyBTYW4sIGhlIHRob25nIGNhaSB0 cmkgZG9jIHF1eWVuIGN1YSBobyBsYSB0YWkgbmd1eWVuIHF1aSBiYXUgDQpzaW5oIGxvaSBraG9u ZyBiYW8gZ2lvIGhldCwgbGEgbHkgdHVvbmcsIGxhIGxlIHNvbmcgY3VhIGhvLCBsYSBraG9uZyBr aGkgaG8gdGhvIGhhbmcgbmdheSwgDQpobyBraG9uZyBiaWV0IHNvbmcgY2FjaCBuYW8ga2hhYy4g Q2hvIG5lbiBtb2kgY28gb25nIHRodSB0cnVvbmcgbmdvYWkgZ2lhbyB0aGFuIHBoaWVuIGNoaW5o IA0KcGh1IE5oYXQgQmFuIHNhaSBsYW0ga2hpIGNobyBjYWMgYmFvIGNoaSB0dSBkbyBkYW5nIHRp biB0dWMgbWEgY2FjIGJhbyBjaGkgdHUgdGltIHJhISANClZpIGNhIGRvaSBvbmcgdGEgY2hpIGJp ZXQgbW90IGxvaSBzb25nIGxhIGRhbmcgQ29uZyBTYW4ga2llbSBzb2F0IGNoYXQgY2hlIG1vaSBw aHVvbmcgDQp0aWVuIHRydXllbiB0aG9uZyB0cm9uZyBjYSBudW9jISBUYWkgc2FvIGNoaW5oIHBo dSBOaGF0IEJhbiBraG9uZyBiaWV0IGxhbSBuaHUgZGFuZyBDb25nIA0KU2FuIGN1YSBvbmcgdGE/ IEhheSBudW9jIE5oYXQgY3VuZyBjYW4gZGFuZyBjdWEgb25nIHRhIGxhbmggZGFvIGdpdXA/IENh IGRvaSBvbmcgdGEgDQpraG9uZyBiaWV0IGxhIHRoZSBnaW9pIGxvYWkgbmd1b2kgZGEgdGhheSBk b2ksIG51b2MgTmhhdCBkYSBkYW4gY2h1IGhvYSwgYmFvIGNoaSBOaGF0IA0KZGEgZHVvYyB0dSBk byB0dSBsYXUgcm9pIQ0KDQpLaGkgeHVhIFBoYW4gQm9pIENoYXUgc2FuZyBOaGF0IGRhIGNvIGx1 YyB0cm9uZyB0aGF5IG5ndW9pIE5oYXQgaG8gYW4gbyBsdW9uZyB0aGllbiwgDQp0cnVuZyB0aW4s IHRyb25nIGRhbmggZHUsIG1hIHNpbmggbG9uZyBobyB0aGVuLiBWYSBDdSB0dSBob2kgZGFuIFZp ZXQgbWluaCBraG9uZyBiaWV0IA0KYmFvIGdpbyBkYW8gZHVjIG1vaSB0aWVuIGR1b2MgYmFuZyBk YW4gUGh1IFRhbmcuIE1vdCB0cmFtIG5hbSBzYXUsIGRhbiBOaGF0IHZhbiBnaXUgbmVwIA0KdHJ1 bmcgdGluLCB0aWV0IG5naGlhOyBjb24gZGFuIFZpZXQgbWluaCB0aGkgbGFpIHR1dCBsdWkgY2Eg dmUgbWF0IGRhbyBkdWMuIFZpIGRhdSBuZW4gbm9pPyANClRhdCBjYSBjaGkgdmkgbW90IGhlIHRo b25nIGRvYyBxdXllbiENCg0KWSBraWVuIGRpZW4gZGFuOiANCg0KY3V0ZW81NSAxMC8yNS8yMDA4 IDA1OjUyOjIyOiANCg0KS2hpIGRlIGNhcCBkZW4gbW90IHN1IHZlYyB4YXkgcmEsIGJvbiBxdWFu IHRoYW0sIGRvYyB0YWkgdGh1b25nIGhheSBub2kgZGVuICJoaWVuIHR1b25nIiANCnZhICJiYW4g Y2hhdCIuIE5odSB2YXkgbmV1IG5vaSBkZW4gbmh1bmcgc3UgdmllYyB0aGFtIG5odW5nIHRhaSBW aWV0IE5hbSBxdWEgY2FjIGJhbyBjaGkgDQpkbyBjaGluaCBxdXllbiBjdWEgRGFuZyBDb25nIFNh biBraWVtIHNvYXQgdmEgcGhhdCBoYW5oIHRhaSBWTiBuZ2F5IG5heSB0dSBuaHVuZyBjaHV5ZW4g DQpsYXQgdmF0IG5odSBjb25nIGFuIGRvaSBhbiBob2kgbG8gdGFpIHBodW9uZyB4YSwgY2hvIGRl biBuaHVuZyB2dSB0aGFtIG5odW5nIGxvbiBuaHUgUE1VIDE4LCANClBDSSBtb2kgZGF5LCBuZ2F5 IG5hbyBjdW5nIGNvIHRpbiB0dWMgbm9pIHZlIHRoYW0gbmh1bmcgZG8gY2FjIGRhbmcgdmllbiBE YW5nIENvbmcgU2FuIA0KVmlldCBOYW0gY2h1IG11dSwgbmh1IHZheSB0aGkgY2hpbmggRENTIHBo YWkga2V0IGx1YW4gbGEgInRoYW0gbmh1bmcgdmEgIGhvaSBsbyBsYSBiYW4gDQpjaGF0IGN1YSBk b2MgdGFpIGNvbmcgc2FuIi4gDQoNCmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIw MDgvMTIvdmlldC1uYW0tY2hvLWNoaW0teHVvbmctdnUtY2F1LWNhbi10aG8uaHRtbCBUREMgcG9z dGVkIGJ5IFRyYSBUdSBEbyANCg0KVklFVCBOQU0gQ0hPIENISU0gWFVPTkcgVlUgQ0FVIENBTiBU SE8gU0FPIE5IQVQgS0hPTkcgQ0hPIENISU0gVlUgUENJIA0KDQpDdW9pIHR1YW4gdHJ1b2MgVGh1 IFR1b25nIER1bmcgdGllcCBjdXUgVGh1IFR1b25nIEZ1a3VkYSBkZSB0aHV5ZXQgcGh1YyBOaGF0 IHRpZXAgDQp0dWMgY2FwIE9EQSBiYXQgdGhhbmguIERlbiBob20gcXVhIHRoaSBDaHUgVGljaCBu dW9jIFRyaWV0IHBoYWkgcmEgdGF5LCBjdW5nIHRoYXQgYmFpIA0Kbm90LiBOZ2hlIG5vaSBwaGlh IE5oYXQgZG9pIGhvaSBuaGlldSBsYW0sIGtob25nIGNoaSBuaHVuZyBxdXllbiBsb2kga2luaCB0 ZSB2YSBjaGluaCB0cmkgDQptYSBjb24gYnVvYyBwaGFpIGR1YSB2dSB2aWVjIFBDSSByYSBhbmgg c2FuZyB0b2kgY3VuZy4gWGVtIGNhaSBjYWNoIG1hIG9uZyBUcmlldCBub2kgDQp2b2kgb25nIEZ1 a3VkYSBuaHUgZHVvaSBkYXksIGNoYW5nIGJpZXQgbGEgZGFuZyB0cmFjaCBoYXkgZGFuZyB0aHVv bmc6IA0KIlRyb25nIHZ1IGNhdSBDYW4gVGhvLCBjYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIFZO IHZhIE5oYXQgQmFuIGRhIGhvcCB0YWMgZGlldSB0cmEgDQpuZ2hpZW0gdHVjLCBkdWEgcmEgZHVv YyBjYWNoIGdpYWkgcXV5ZXQgaG9wIHRpbmgsIGhvcCBseS4gRG9pIHZvaSB2dSBQQ0ksIFZOIHNl IHRpZXAgdHVjIA0KcGhvaSBob3AgY2hhdCBjaGUgdm9pIE5oYXQgQmFuIGRlIHNvbSBsYW0gcm8g Y2FjIG5naGkgdmFuLCB4dSBseSB2dSB2aWVjIG5naGllbSBtaW5oLCANCmR1bmcgcGhhcCBsdWF0 LiIgQ2h1IHRpY2ggbnVvYyB0aW4gdHVvbmcgc3UgaG9wIHRhYyBnaXVhIGhhaSBudW9jIHRyb25n IHZpZWMgbGFtIHJvIHZ1IA0KUENJIHNlIGdpdXAgcXVhbiBoZSBodXUgbmdoaSB2YSBob3AgdGFj IGdpdWEgaGFpIG51b2MgbmdheSBjYW5nIHRoZW0gYmVuIGNoYXQuICh0cmljaCB0aW4gdHUgVFRY Vk4pDQoNCk5vaSBraWV1IG5heSB0aGkga2hhYyBnaSBiYW8gdG9pIGRhIGNobyBjaGltIHh1b25n IHZ1IGNhdSBDYW4gVGhvIGRlIGdpdSBnaW4gbW9pIHF1YW4gDQpoZSB0b3QgZGVwIGdpdWEgMiBu dW9jLCBzYW8gY2FjIG9uZyBraG9uZyBjaG8gY2hpbSB2dSBQQ0kgZGUgZ2l1IHF1YW4gaGUgdG90 IGRlcCB0dW9uZyANCnR1LiBEYW4gTmhhdCB0aGkgcGhhbiB1bmcgbWFuaCB2b2kgY2hpbmggcGh1 IGN1YSBobyB2ZSB2dSBQQ0ksIGNvbiBkYW4gVk4gdGhpIG5oYW4gDQp0aWVuIGRlbiBidSB4b25n IGltIHJlLCBtYSB0aWVuIG5heSBjdW5nIGNvbiBiaSB0aGFtIG5odW5nIG51YSBkYXkgbmhlLiBU b2kgcXVhIG5ldSBiYSANCmNvbiBjbyB4ZW0gdGhvaSBzdSB0cmVuIFZUViB0aGkgc2UgdGhheSBj YWNoIGR1YSB0aW4gY3VhIGNhaSBkYWkgVHJ1eWVuIGhpbmggVHJ1bmcgVW9uZyANCm5heSB2ZSBj dW9jIHRpZXAga2llbiBjdWEgb25nIFRyaWV0IHZvaSBvbmcgRnVrdWRhIHRoaSBzZSB0aGF5IHJh bmcgRGFuZyB0YSBiZSB0YWMgZGVuIA0KdGhlIG5hbyByb2kuIENvIHBoYXQgdGhhbmggdmllbiBk YW4gdGluOiAiQ2h1IHRpY2ggbnVvYyB0aWVwIGN1dSBUaHUgdHVvbmcgRnVrdWRhLCBoaWVuIA0K ZGFuZyBsYSBtb3QgaGEgbmdoaSBzaSBjdWEgTmhhdCwgbmd1b2kgY28gYW5oIGh1b25nIHJhdCBs b24gdHJvbmcgY2hpbmggcGh1IE5oYXQuLi4iLiBWYSANCnNhdSBkbyBsYSBiYW4gdGluIGR1b2Mg a2V0IHJhbmcgbmdhaSBGdWt1ZGEgaHVhIHNlIHhlbSB4ZXQgbm9pIGxhaSBPREEgY2hvIFZOLiBQ aGFpIGxhIA0KbmhhbiB2YXQgcXVhbiB0cm9uZyBuaHUgdGhlIHRoaSBsb2kgaHVhIG1vaSBjbyB0 aGUgZHVuZyBkZSB0cmFuIGFuIGRhbiBjaHVuZyBkdW9jIGNodS4NCk5oYXQgZGFuZyBnaGkgZGll bSB2b2kgZGFuIFZpZXQgTmFtIGdoZSB0aGF0LiBHaW8gaG8gbXVvbiBnaSBtYSBjaGEgZHVvYy4g DQoNClkga2llbiBiYW4gZG9jOg0KDQpOZ3VvaSBDbyBRdWFuIDIyOjQ4IDE0LzEyLzIwMDggOg0K DQpPbmcgVHJpZXQgbmhhYyBsYWkgY2h1eWVuIGNhdSBDYW4gVGhvIGxhIG5oYWMga2hlbyB2YSBo YW0gZG9hIE5oYXQsIHNhbyB0dWkgYm8gcXVhIGNobyANCmFuaCBkZSBnaXUgZ2luIG1vaSBxdWFu IGhlIHRvdCBkZXAsIGFuaCBlcCB0dWkgdG9pIGR1b25nIGN1bmcgdGhpIHF1YW4gaGUgY3VhIHRh IHNlIGRvbmcgDQpiYW5nIGRvLCBhbmggbG8gbWEgbGlldSBkaS4gQWkgbG8gYmlldCBsaWVuLCB1 IGRhbiBraG8uDQpWdSBjYXUgQ2FuIFRobyBsYSBsb2kgdmUga3kgdGh1YXQsIGR1IGNobyBubyBj byBnYXkgcmEgY2FuaCBkYXUgdGh1b25nIHRoaSBjdW5nIGxhIA0KY2h1eWVuIGRhdSBidW9uIG5n b2FpIHkgbXVvbi4gVG9pIGxvaSwgc2FpIHNvdCBjaGkgbGEgZGFuIHN1LiBOb2kgZGF1IGNvbiBk byBuaHVuZyBkYW4gDQp0YSBraG9uZyBoYW4uIENvbiBQQ0kgbGEgdnUgdGhhbSBuaHVuZywgaG9p IGxvLiANCkhhaSB2YW4gZGUgZG8gbmh1IG1vdCBkb2kgZHVhIGxlY2gsIG9uZyBUcmlldCBuZXUg cmEgbmd1IHkgc28gc2FuaCwgbmh1bmcgc2FvIG9uZyBraG9uZyAgDQpzbyBuZ3VvaSB0YSBjdW9p IHZpIHRyaW5oIGRvIGtob25nIGR1b2Mgb24uDQoNClRyYW4gTiAxNzo0NzE1LzEyLzIwMDg6DQoN CkNhdSBDYW4gVGhvIGxhIGxvaSBreSB0aHVhdCwgQ2hpIGh1eSB0cnVvbmcgY3VhIFRLTihuaGEg dGhhdSBjaGluaCkga2hvbmcgZHUgbmFuZyBsdWMgDQptb2kgZ2F5IHJhIHN1IGNvLCBUS04gZGEg ZGVuIGJ1IGNobyBjYWMgbmFuIG5oYW4gdm9pIHNvIHRpZW4gcmF0IHRob2EgZGFuZyBuaHVuZyBj YWMgDQpxdWFuIGFuIGNoYW4gZ2FuIGhldCwgZ2lvIGRlbSByYSBuZ2EgZ2lhIHZvaSBOSGF0IHNh byBraG9uZyB0aGF5IG5odWMgbmhpID8NCg0KUHNvbmtoYW5oIDAwOjI0IDE2LzEyLzIwMDg6DQoN CkNhaSBvbmcgTmd1eWVuIE1pbmggVHJpZXQgbmF5IGNoYW5nIGhpZXUgbm9pLCBsdWMgY2F1IENh biBUaG8gbW9pIHNhcCwgb25nIGF5IGRlbiB0YW4gDQpub2kgdmEgbm9pIG5nYXkgdm9pIGNhYyBu aGEgdGhhdSBOaGF0IHJhbmcgZHUgcmF0IGRhdSB0aHVvbmcgbmh1bmcga2hvbmcgZHVvYyBkZSBh bmggDQpodW9uZyBkZW4gdGllbiBkbywga2hvbmcgZGUgZHVvYyBkZSBhbmggaHVvbmcgZGUgcXVh biBoZSAyIG51b2MuIEdpbyB0aGkgbm9pIG5hbmcgbmh1IA0KdGhlIG5heSB0aGkgdGhhdCBsYSB0 ZS4gDQoNCkRPSSAoTElGRSkgMjE6MjkgMTYvMTIvMjAwODogIA0KDQpDYWkgbmh1YyBjdWEga2Ug ZGkgeGluIG1hIGNvbiBhbiBib3QsIGFuIHhlbiBtYSBjdSBsZW4gdGllbmcgZG9pIGNoYWMsIGRp ZXUga2llbi4uLlRodSANCmhvaSBtb3QgZS1raXAgbmh1IHRoZSB0aGkgbGFtIHNhbyBsYW0gdG90 IGR1b2MgdHJhY2ggbmhpZW0gY3VhIG1pbmguIA0KDQonRmFsbGVuIEFuZ2VsJyAwMTo0NyAxNy8x Mi8yMDA4OiANCg0KVG9pIHRoYXkgTmd1eWVuIE1pbmggVHJpZXQgbGEgdGF5IGNoaW5oIGtoYWNo IGJhdCB0YWkgdm8gZHVuZyBuaGF0IHR1IHRydW9jIGRlbiBnaW8uIENvbiANCm5obyBjYWNoIGRh eSBtYXkgdHVhbiwgb25nIG5heSBkZW4gdGhhbSBjb25nIHRyaW5oIHRodXkgZGllbiBTb24gTGEg dmEgcGhhdCBiaWV1IG1heSANCmxvaSB0cnVvYyBhbmggZW0gY29uZyBuaGFuOiAiTGUgbmluIGRh eTogcGhhaSBkaWVuIGtoaSBob2EgbnVvYyBOR0EsIGNodW5nIHRhIHBoYWkgY28gDQpnYW5nIHRo dWMgaGllbiB0b3QgbG9pIGRheSBjdWEgTGUgbmluIiEgVG9pIGtob25nIHRoZSB0dW9uZyB0dW9u ZyBub2kgbW90IHZpIGNodSB0aWNoIA0KbnVvYyBtYSBsYWkgcGhhdCBiaWV1IHRoaWV1IG11b2kg ZGVuIHRoZSEgDQoNCmh0dHA6Ly93d3cudm5uLW5ld3MuY29tL3NwaXAucGhwP2FydGljbGU1MDg2 IFRydW5nIERpZW4gKDE4LTEyLTIwMDgpIA0KDQpDaHVuZyBOYW8gQmkgVGh1IFNhaSBHb24gTGUg VGhhbmggSGFpIFR1IENodWM/IA0KDQpWdSBhbiB0aGFtIG5odW5nIFBDSSBkYSBkYXQgbGFuaCBk YW8gZGFuZyBjb25nIHNhbiBWaWV0IE5hbSBvIHZhbyB0aGUgY3VvaSBsdW5nIGNvcCBraGkgY2hp bmggcGh1IE5oYXQgQmFuIHR1eWVuIGJvIG5ndW5nIG1vaSB2aWVuIHRybyBPREEgdHUgbmFtIDIw MDksIGNobyBkZW4ga2hpIG5hbyANCkhhIE5vaSBnaWFpIHF1eWV0IHRob2EgZGFuZyB2dSB0aGFt IG5odW5nIHhheSBkdW5nIHhhIGxvIERvbmcgVGF5IHRhaSBTYWkgR29uLg0KDQpUaGVvIG5oaWV1 IHRpbiB0dWMgdG9uZyBob3AgdGhpIGtlIHR1IG5nYXkgNCB0aGFuZyAxMiwga2hpIERhaSBzdSBO aGF0IHRhaSBWaWV0IE5hbSBkb2MgdGhvbmcgYmFvIGNoaW5oIHRodWMgdHJvbmcgSG9pIG5naGkg Y2FjIG5oYSB0YWkgdHJvLCBCbyBjaGluaCB0cmkgRENTVk4gZGEgaG9wIGxpZW4gdHVjIA0Kbmhh bSB0aW0gYmllbiBwaGFwIGRvaSBwaG8uIFZpIHF1eWV0IGRpbmggbmd1bmcgdmllbiB0cm8gT0RB IGN1YSBOaGF0IGtob25nIGNoaSBsYW0gdGhpZXQgaGFpIGNobyBIYSBOb2kgbW90IHNvIGR1IGFu IGRhIHZhIGRhbmcgdGllbiBoYW5oIHBoYWkgbmd1bmcgbmh1IGR1b25nIHhlIGRpZW4gDQpuZ2Ft IEhhIE5vaSwgaGUgdGhvbmcgbW9pIHRydW9uZyB2ZSBzaW5oIHRhaSBIYWkgUGhvbmcsIGhlIHRo b25nIHRob2F0IG51b2MgdGFpIEhhIE5vaSB2YSBtb3Qgc28gZHUgYW4geGF5IGR1bmcgdGFpIGNh YyB0aW5oIHBoaWEgTmFtLCBtYSBjb24gbGFtIG1hdCB1eSB0aW4gY3VhIERDU1ZOIGRvaSANCnZv aSBjYWMgbmhhIHRhaSB0cm8ga2hhYy4gRENTVk4gLSB0aG9uZyBxdWEgQm8gbmdvYWkgZ2lhbyAt IGRhbmcgY28gdGltIGNhY2ggZ2lhaSB0aGljaCB2b2kgcGhpYSBOaGF0IEJhbiBkZSBtb25nIHRp bSBzdSB0aG9uZyBjYW0sIG5odW5nIHBoaWEgTmhhdCBkYSBhcCBsdWMgbWFuaCBtZSBsYSBIYSAN Ck5vaSBwaGFpIGhhbmggeHUgdHJhY2ggbmhpZW0gbmh1IG5ndW9pIE5oYXQgZGEgdHVuZyBuaGFu IHRyYWNoIG5oaWVtLiBUYWkgc2FvIE5oYXQgbGFpIGFwIGx1YyBtYW5oIG1lIGxlbiBEQ1NWTiAg bmh1IHZheT8NCg0KS2hpIHZ1IGFuIHRoYW0gbmh1bmcgYmkga2h1aSByYSBvIE5oYXQgZG8gNCBu aGFuIHZpZW4gY3VhIGNvbmcgdHkgdHUgdmFuIFRoYWkgQmluaCBEdW9uZyAoUENJKSB0dSB0aHUg bGEgZGEgZHVhIGtob2FuZyAyLDUgdHJpZXUgTXkgS2ltIGNobyBjYW4gYm8gRENTVk4gdGFpIFNh aSBHb24gDQpkZSBkdW9jIHRydW5nIHRoYXUgeGF5IGR1bmcgeGEgbG8gRG9uZyBUYXkgZG8gcXV5 IE9EQSBjdWEgTmhhdCB0YWkgdHJvLCB0aGkgcGhpYSBCbyANCm5nb2FpIGdpYW8gVmlldCBOYW0g ZGEgbGVuIHRpZW5nIHlldSBjYXUgTmhhdCBraG9uZyBuZW4gY2hvIGxvYW4gdGFpIHJvbmcgcmFp IHRyZW4gYmFvIGNoaSB2YSBjdW5nIGNhcCBjaGkgdGlldCBjYWMgZHUga2llbi4gVGhhaSBkbyBj dWEgRENTVk4gdmFvIGx1YyBkbyBsYW0gbmh1IGNodXllbiANCnRoYW0gbmh1bmcgeGEgbG8gRG9u ZyBUYXkgZG8gY29uZyB0eSBQQ0kgdGlldCBsbyBsYSBjaHV5ZW4gY3VhIGFpIGRvIGNodSBraG9u ZyBwaGFpIGN1YSBoby4NCg0KRGVuIHRoYW5nIDEwLCBraGkgNCBjYW4gYm8gY29uZyB0eSBQQ0kg Y3VhIE5oYXQgYmkgdHJ1eSB0byByYSB0b2Egdm9pIG5odW5nIGxvaSBraGFpIGxpZW4gaGUgZGVu IHZpZWMgZHVhIGhvaSBsbyBraG9hbmcgODIwIG5nYW4gTXkgS2ltIGNobyBIdXluaCBOZ29jIFNp LCBwaG8gc28gZ2lhbyB0aG9uZyB2YW4gdGFpIHRoYW5oIHBobyBTYWkgR29uIGtpZW0gY2h1IG5o aWVtIGJhbiBxdWFuIGx5IHhhIGxvIERvbmcgVGF5LCB0aGkgdG9hIGFuIE5oYXQgDQpCYW4geWV1 IGNhdSBwaGlhIFZpZXQgTmFtIHBoYWkgaG9wIHRhYywgZHVhIG5odW5nIGNhbiBibyB0aGFuaCBw aG8gU2FpIEdvbiBkYSBuaGFuIGhvaSBsbyByYSBkb2kgY2hhdCB0cnVvYyB0b2EgdGFpIFRva3lv LiBCbyBuZ29haSBnaWFvIHZhIEJvIGNvbmcgYW4gVmlldCBOYW0gdmllbiBseSBkbyANCmxhIFRv YSBhbiBOaGF0IEJhbiBjaHVhIGN1bmcgY2FwIGNoaSB0aWV0IGhvIHNvIG5lbiBraG9uZyB0aGUg dGh1YyBoaWVuIHRoZW8geWV1IGNhdS4NCg0KQmVuIGNhbmggaGFpIHRoYWkgZG8gYmF0IGhvcCB0 YWMgbm9pIHRyZW4sIG5oaWV1IGNhbiBibyBWaWV0IE5hbSBkYSBjbyBuaHVuZyBwaGF0IGJpZXUg DQp0cmVuIGJhbyBjaGkgbWFuZyB0aW5oIGNoYXQgYmFvIGNoZSBjaG8gbmh1bmcgY2FuIGJvIHRo YW0gbmh1bmcgdGFpIFNhaSBHb24uIERhIG5oaWV1IGxhbiBwaGlhIGNvIHF1YW4gZGlldSB0cmEg dnUgYW4gdGhhbSBuaHVuZyBQQ0kgY3VhIE5oYXQgYmFuIHRpZW5nIGxhIE5oYXQgc2Ugbmd1bmcg dG9hbiANCmJvIHZpZW4gdHJvIE9EQSBjaG8gZGVuIGtoaSBuYW8gVmlldCBOYW0gdG8gdGhhaSBk byBob3AgdGFjIHZvaSBOaGF0IHRyb25nIHZpZWMgZ2lhaSBxdXlldCB2dSB0aGFtIG5odW5nIFBD SS4gTmh1IHZheSwgdHJ1b2Mga2hpIERhaSBzdSBOaGF0IGNvbmcgYm8gcXV5ZXQgZGluaCBuZ3Vu ZyB2aWVuIHRybyBPREEgdmFvIG5nYXkgNCB0aGFuZyAxMiwgY2hhYyBjaGFuIGxhIEJvIGNoaW5o IHRyaSBEQ1NWTiBkYSBiaWV0IGRlbiBsb2kgY2FuaCBjYW8gDQpuYXkuIFRhaSBzYW8gQm8gY2hp bmggdHJpIGJpZXQgZGlldSBuYXkgbWEga2hvbmcgY2hpdSBnaWFpIHF1eWV0IGRlIGNobyBkZW4g a2hpIE5oYXQgdHV5ZW4gYm8gY29uZyBraGFpIGN1cCB2aWVuIHRybyBPREEgdGhpIG1vaSBob3Ag aGFuaCwgY3UgUGhhbSBHaWEgS2hpZW0gc2FuZyBUb2t5byANCmRlIGNodWFuIGJpIGNobyBjaHV5 ZW4gZGkgTmhhdCBjYXUgY3V1IGN1YSBOZ3V5ZW4gVGFuIER1bmcuIFRpbmggY2FuaCBjdWEgQm8g Y2hpbmggDQp0cmkgRENTVk4gbmh1IGRhbSBnYSBudW90IHBoYWkgZGF5IHRodW5nLiBDbyBoYWkg bmd1eWVuIGRvIGtoaWVuIEJvIGNoaW5oIHRyaSBEQ1NWTiBkYSBhbiBiaW5oIGJhdCBkb25nIHRy dW9jIGxvaSBjYW5oIGNhbyBjdWEgTmhhdCBCYW4gdHJvbmcgdGhvaSBnaWFuIHF1YS4NClRodSBu aGF0IGxhIGNvaSB0aHVvbmcgc3UgY2FuaCBiYW8gY3VhIE5oYXQgdmkgbmdoaSBsYSBOaGF0IHNl IGtob25nIG5ndW5nIHZpZW4gdHJvIE9EQSBuaHUgaG9pIHhheSByYSB2dSB0aGFtIG5odW5nIFBN VSAxOCB2YW8gbmFtIDIwMDYuIEx1YyBkbywgY3V1IFRodSBUdW9uZyANCktvaXp1bWkgdGhhbiBj aGluaCBkZW4gVmlldCBOYW0gZGUgdGltIGhpZXUsIGN1bmcgbmh1IGNobyBuaGlldSBwaGFpIGRv YW4gc2FuZyBWaWV0IA0KTmFtIGRpZXUgdHJhLCBuaHVuZyByb3QgY3VvYyBsYWkgY2hvIGNoaW0g eHVvbmcuIERvIGRvIG1hIEJvIGNoaW5oIHRyaSBEQ1NWTiBkYSBraG9uZyB0aGVtIGRlIHkuDQpU aHUgaGFpIGxhIG5odW5nIGRvaSBob2kgY3VhIE5oYXQgQmFuIGRhIGRhdCBCbyBjaGluaCB0cmkg RENTVk4gdmFvIHRoZSBraG8geHUga2hpIA0KZG9pIGhvaSBuaHVuZyBuZ3VvaSB0cmFjaCBuaGll bSBsb24gbmhhdCBwaGFpIHR1IHh1IHZlIHZ1IHRoYW0gbmh1bmcgUENJLiBUdWMgbGEgZGF0IA0K bGFuaCBkYW8gQm8gY2hpbmggdHJpIERDU1ZOIHBoYWkgbmhhbiB0cmFjaCBuaGllbSB2ZSBuaHVu ZyBiZSBib2kgbm9pIHRyZW4uDQoNCkRpZXUga2hpZW4gY2hvIE5oYXQgcGhhaSBsYW0gYXAgbHVj IG1hbmggdmEgZGF0IEJvIGNoaW5oIHRyaSBEQ1NWTiAgbyB2YW8gdGhlIHBoYWkgdHUgeHUgDQps YSBib2kgdmkgbmV1IE5oYXQga2hvbmcgYXAgbHVjLCBzZSBraG8gbm9pIHZvaSBjb25nIGNodW5n IE5oYXQgQmFuIHZlIHNvIHRpZW4gdGh1ZSBtYW5nIA0KZGkgY2hvIHRoYW0gbmh1bmcgdGFpIFZp ZXQgTmFtIHRpZXUgeGFpIGhvYW5nIHBoaSBtYSBraG9uZyBjbyBtb3QgYmllbiBwaGFwIG5hbyAN CmNoZSB0YWkuIERpZXUgbWEgY2hpbmggcGh1IE5oYXQgQmFuIGRvaSBob2kga2hvbmcgcGhhaSBt YW5nIG9uZyBIdXluaCBOZ29jIFNpIGhheSBuaHVuZyBjYW4gYm8gDQp0cmFjaCBuaGllbSBkdSBh biB0cm9uZyBVeSBiYW4gbmhhbiBkYW4gdGhhbmggcGhvIFNhaSBHb24gcmEgdG9hIGtldCB0b2ku IFZpIG5odW5nIG5ndW9pIG5heSBjaGkgDQpsYSBuYW4gbmhhbiBjdWEgbW90IGNodW9pIHRoYW0g bmh1bmcgdHJvbmcgVGhhbmggVXkgU2FpIEdvbiANCnZhIGNvIGxpZW4gaGUgZGVuIGNhcCBUcnVu ZyBVb25nLiBNb3QgY2EgbmhhbiBIdXluaCBOZ29jIFNpIHNlIGtob25nIGRhbSByYSBnaWEgY2hv IGNvbmcgdHkgTmhhdCANCnRydW5nIHRoYXUgZG9uZyBjaG8gaG8gMTUlIHRpZW4gbmhhbiB0aGF1 LCBuZXUga2hvbmcgZHVvYyBiYW8gY2hlIHR1IGJlbiB0cmVuLg0KDQpUYWkgdGhhbmggcGhvIFNh aSBHb24gY28gaGFpIGR1b25nIGRheSBiYW8gY2hlIHRoYW0gbmh1bmcgbm9pIHRpZW5nLiBEdW9u ZyBkYXkgdGh1IG5oYXQgbGEgZG8gDQpjaGluaCBvbmcgTGUgVGhhbmggSGFpLCBCaSBUaHUgVGhh bmggVXkgU2FpIEdvbiwgVXkgdmllbiBCbyBjaGluaCB0cmkgZGlldSBkb25nLiBEdW9uZyBkYXkg dGh1IGhhaSANCmxhIGRvIGNoaW5oIG9uZyBUcnVvbmcgVGFuIFNhbmcsIFRodW9uZyBUcnVjIEJh biBCaSBUaHUsIG5ndW9pIG5hbSByYXQgbmhpZXUgZHVvbmcgZGF5IHRoYW0gbyB0cm9uZyANCm5v aSBibyBkYW5nIGhpZW4gbmF5LiBDYSBoYWkgZGV1IGxhIG5odW5nIG5ndW9pIG1hdSBjaG90IGN1 YSBwaGUgTmd1eWVuIFRhbiBEdW5nLg0KDQpCYXQgb25nIFRydW9uZyBUYW4gU2FuZyB0dSBjaHVj IHJhdCBraG8gdmEgbmhhdCBsYSBnaGVwIHZhbyB0b2kgdGhhbSBvIHRyb25nIHZhaSB0cm8gDQpU aHVvbmcgdHJ1YyBCYW4gQmkgVGh1IGhpZW4gbmF5IGN1YSBvbmcgdGEuIERvIGRvIGNoaSBjb24g bGFpIG9uZyBMZSBUaGFuaCBIYWksIFV5IHZpZW4gDQpCbyBjaGluaCB0cmkgcGhhaSBuaGFuIHRy YWNoIG5oaWVtIHR1IGNodWMgQmkgdGh1IFRoYW5oIFV5IFNhaSBHb24uIEJvaSBvbmcgTGUgDQpU aGFuaCBIYWkga2hvbmcgdHUgY2h1YyB0aGkgIE5oYXQgQmFuIHNlIGtobyBtbyBsYWkgdmllbiB0 cm8gT0RBLiBEYSBzbyB5IGtpZW4gdHJvbmcgDQpCbyBjaGluaCB0cmkgbGEgb25nIExlIFRoYW5o IEhhaSBwaGFpIHR1IGNodWMgdmkgbmd1b24gdmllbiB0cm8gY3VhIE5oYXQgcXVhIGxvbiB2YSAN CnF1YW4gdHJvbmcgY2hvIEhhIE5vaSB2YW8gbHVjIG5heS4gU2F1IGtoaSBvbmcgTGUgVGhhbmgg SGFpIHR1IGNodWMgdGhpIEJvIGNoaW5oIHRyaSANCkRDU1ZOIGNvIHRoZSBzZSBrZW8gb25nIHRh IHJhIEhhIE5vaSwgdmFuIGdpdSB0dSBjYWNoIFV5IHZpZW4gQm8gY2hpbmggdHJpIG5odW5nIG5n b2kgDQpjaG9pIHhvaSBudW9jIG1vdCB0aG9pIGdpYW4gLSB0dW9uZyB0dSBuaHUgdnUgb25nIFRy dW9uZyBUYW4gU2FuZyBiaSB0byBjYW8gdGhhbSBuaHVuZyANCnZvaSBuZ3VvaSBIb2EgdmFvIGN1 b2kgdGhhcCBuaWVuIDkwOyBsdWMgZG8gb25nIERvIE11b2kgZGEgcGhhaSBrZW8gb25nIFNhbmcg cmEgSGEgTm9pIA0KY2hvIG5nb2kgY2hvaSB4b2kgbnVvYyBjaG8gbmd1b2kgZHUgbHVhbiwgY3Ug b25nIHRhIGxhbSBUcnVvbmcgYmFuIGtpbmggdGUgVHJ1bmcgdW9uZyBkYW5nLg0KDQpDYWkga2hv IGN1YSBCbyBjaGluaCB0cmkgRENTVk4gbGEgbGFtIHNhbyBvbmcgTGUgVGhhbmggSGFpIHR1IGNo dWMgbWEga2hvbmcgZ2F5IG5ndXkgaGFpIA0KZGVuIHV5IHRpbiBjdWEgY2hlIGRvLiBCb2kgb25n IExlIFRoYW5oIEhhaSB2dWEgbGEgQmkgdGh1IHRoYW5oIHV5IFNhaSBHb24sIA0KdnVhIGxhIFV5 IHZpZW4gQm8gY2hpbmggdHJpLiBDaGFjIGNoYW4gbGEga2hpIG9uZyBMZSBUaGFuaCBIYWkgbmhh biB0cmFjaCBuaGllbSB0dSB4dSANCmR1b2kgaGluaCB0aHVjIG5hbyBkaSBudWEsIHV5IHRpbiBj dWEgQm8gY2hpbmggdHJpIERDU1ZOIHN1dCBnaWFtIHZhIHRpZXAgdHVjIGRhbmggbWF0IA0Kbmll bSB0aW4gcmF0IGxvbiB0cm9uZyBkYW5nIHZpZW4gRENTVk4uIA0KDQpUb20gbGFpLCB2dSBhbiBQ Q0kgZGFuZyBkYXQgQm8gY2hpbmggdHJpIENvbmcgc2FuIFZpZXQgTmFtIHJvaSB2YW8gdGhlIHJh dCBraG8geHUgdHJ1b2MgDQpoYWkgYXAgbHVjIGN1YSBOaGF0IHZhIGN1YSBub2kgYm8gZGFuZy4g T25nIExlIFRoYW5oIEhhaSBzZSBsYSBjb24gZGUgdGUgdGhhbiBkZSBjdXUgdXkgDQp0aW4gY3Vh IGRhbmcgdmEgY2hpbmggcGh1IENvbmcgc2FuIFZpZXQgTmFtIGRhbmcgeHVvbmcgZG9jIHRoZSB0 aGFtIGhpZW4gbmF5LiANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvVGhh bmctVGFpLURhdS1tYW5nLXRvaS1jdW9pLWN1bmctdGFpLXZ1LWFuLU5hbS1DYW0vMTEwMzU0MTYv MjE4LyAyOS8xMS8yMDA3LCAxNTowMiBHTVQrNw0KDQpUaGFuZyAiVGFpIERhdSIgLSBtYW5nIHRv aSB0cm9uZyB2dSBhbiBOYW0gQ2FtDQoNClNhdSBnYW4gNiBuYW0gImxhbiBraG9uZyBzdWkgdGFt IiBiYXQgY2hhcCBzdSB0cnV5IGJhdCBnYXQgZ2FvLCBUaGFuZyAiVGFpIERhdSIgYmF0IG5nbyBs YWkgdHJpbmggZGllbiBjb25nIGFuLiBIaWVuLCBseSBkbyBkYXUgdGh1IGN1YSBUaGFuZyBjaHVh IGR1b2MgdGlldCBsbywgbmh1bmcgbG9pIGtoYWkgY3VhIA0KbmhhbiB2YXQgY29tIGNhbiBuYXkg aHVhIGhlbiBzZSBoZSBtbyBuaGlldSAiYmkgbWF0IiB0cm9uZyB0aGUgZ2lvaSB4YSBob2kgZGVu IGN1YSBOYW0gQ2FtLg0KDQpOaHVuZyBtYW5nIHRvaSB0cm9uZyB2dSBhbiBOYW0gQ2FtIHNlIGR1 b2MgbGF0IGdpbyBsYWkuDQoNCkR1b2kgc3UgY2hpIGRhbyBjdWEgVGhhbmcsIGhlIHRob25nIHNv bmcgYmFjIGN1YSBOYW0gQ2FtIG8gcGhpYSBCYWMgcGhhdCB0cmllbiB2b2kgDQptYW5nIGx1b2kg Y2hhbiByZXQgZG9uZyBvIG5oaWV1IHRpbmggdGhhbmguIFRoYW0gY2hpLCBjaHVuZyBjb24gbW9j IG5vaSB2b2kgY2FjIGR1b25nIGRheSBjbyBiYWMgcXVvYyB0ZS4NCg0KS2hpIENvbmcgYW4gSGEg Tm9pIG1vIGNoaWVuIGRpY2ggdHJpZXQgcGhhIGNhYyB0byBjaHVjIHRvaSBwaGFtIHhhIGhvaSBk ZW4sIA0Kc28gVGhhbmcgYmkgYmF0LCBOYW0gQ2FtIGRhIGR1YSBUaGFuZyB2YW8gbWllbiBOYW0g ZGUgImxhbmggbmFuIi4NCg0KQmFuIGNodXllbiBhbiBOYW0gQ2FtIHR1bmcgeGFjIGRpbmgsIG9u ZyB0cnVtIGR1bmcgbmd1b24gdGllbiBiYXQgY2hpbmggdGh1IGR1b2MgdHUgDQp2aWVjIHRvIGNo dWMgY28gYmFjIGRlIG51b2kgZHVvbmcgZGFuIGVtIHZhIHF1YW4gaGUgKG5nb2FpIGdpYW8pIHZv aSBtb3Qgc28gY2FuIGJvIA0KY28gY2h1YyBxdXllbiwgc2EgZG9hIGJpZW4gY2hhdCBiYW8gY2hl IGNobyBob2F0IGRvbmcgcGhhbSB0b2kuDQoNCmh0dHA6Ly93d3cudmJjcmFkaW8ubmV0L3NwaXAu cGhwP2FydGljbGUyOTU0IFRodSBOYW0gMTkvMDIvMjAwOSAgVHJhbiBIdW5nDQoNClZ1IFh1IEh1 eW5oIE5nb2MgU3k6IERhdSBWb2kgRHVvaSBDaHVvdCENCg0KTW90IHR1YW4gbGUgc2F1IGtoaSBI dXluaCBOZ29jIFN5IGJpIGJhdCB0YW0gZ2lhbSwgZHUgbHVhbiB2YW4gY29uIGJhbiB0YW4geG9u IHNhbyB2ZSANCnN1IHZpZWMgbmF5LiBUaW5oIHJhIHRoaSBob24gbnVhIG5hbSBzYXUga2hpIHRv YSBhbiBUb2t5byBjaGluaCB0aHVjIHRydXkgdG8gNCBuaGFuIHZpZW4gDQpjdWEgY29uZyB0eSBU dSB2YW4gUXVvYyB0ZSBUaGFpIEJpbmggRHVvbmcgKFBhY2lmaWMgQ29uc3VsdGFudHMgSW50ZXJu YXRpb25hbCBQQ0kpIHZlIHRvaSANCiJob2kgbG8gY2FuIGJvIENvbmcgc2FuIFZpZXQgTmFtIGRl IGR1b2MgdHJ1bmcgdGhhdSIsIHZhIG5ldSBkaWNoIGRhbmggdGVuIG5ndW9pIGNhbiBibyBkYSAN Cm5oYW4gc28gdGllbiBob2kgbG8gbGVuIGRlbiAyLDYgdHJpZXUgZG8gbGEgbGEgSHV5bmggTmdv YyBTeSwgbWFpIGRlbiB0dWFuIHF1YSwgb25nIFN5IG1vaSANCmNoaW5oIHRodWMgYmkgdG9uZyBn aWFtLiBTYXUgZ2FuIDggdGhhbmcgdHJvaSBuZ29hbiBjbyBiYW8gY2hlIGNobyBoYW5oIGRvbmcg dGhhbSBvIGN1YSBvbmcgDQpTeSwgRENTVk4gc2F1IGN1bmcgZGEgcGhhaSBjaGl1IGtodWF0IHBo dWMgZHVvaSBhcCBsdWMgY3VhIGR1IGx1YW4gcXVvYyB0ZSwgZGFjIGJpZXQsIGxhcCANCnRydW9u ZyBjdW9uZyBxdXlldCBjdWEgY2hpbmggcGh1IE5oYXQgQmFuLCBkZSBkdWEgY29uIGRlIHJhIHRl IHRoYW4uIFR1eSBuaGllbiwgY3VuZyBjaGluaCANCnF1YSBuaHVuZyB0aHUgZG9hbiBtbyBhbSBj dWEgbmhhIG51b2MgdHJvbmcgdmllYyBuYXkgbWEgbmd1b2kgdGEgbGFpIGNhbmcgdGhheSBybyBo b24sIGRvIA0KbGEgY2hlIGRvIG5heSBob2FuIHRvYW4ga2hvbmcgY28gY2h1IGRpY2ggZGlldCB0 cnUgdGhhbSBuaHVuZyBuaHUgaG8gbHVvbiBodWEgaGVuIHZvaSBuZ3VvaSBkYW4uDQoNCkhvbiBu dWEgbmFtIHRyb2kgdnVhIHF1YSwgdHJvbmcga2hpIGNoaW5oIHBodSBOaGF0IHRpZW4gaGFuaCB2 aWVjIHhldCB4dSBuaHVuZyB2aWVuIGNodWMgDQpOaGF0IHBoYW0gbHVhdCwgdmEga2V1IGdvaSBD U1ZOIGhheSB4ZXQgeHUgY2FuIGJvIGN1YSBtaW5oLCB0aGkgbmd1b2kgdGEgY2hpIHRoYXkgdHUg cGhpYSANCkhhIE5vaSBuaHVuZyB0aGFpIGRvIGtobyBoaWV1LiBEYXUgdGhhbmcgNi0yMDA4LCBr aGkgdG9hIGFuIFRva3lvIHRoYW5oIGxhcCBVeSBCYW4gZGFjIA0KYmlldCBkaWV1IHRyYSB2dSBo b2kgbG8gbmF5LCBkb25nIHRob2kgZ3VpIENTVk4gImdpYXkgZGUgbmdoaSBob3AgdGFjIGRpZXUg dHJhIiwgbmV1IGRpY2ggDQpkYW5oIG5ndW9pIG5oYW4gdGllbiBob2kgbG8gbGEgSHV5bmggTmdv YyBTeSB0aGkgSGEgTm9pIGxhbSBuZ28sIGtob25nIHBodWMgZGFwLiBEYXUgDQp0aGFuZyA4LCBr aGkgdG9hIGFuIFRva3lvIGt5IHRyYXQgdG9uZyBnaWFtIDQgbmdoaSBjYW4sIHZhIGJhbyBjaGkg TmhhdCByYW4gcm8gbG9hbiB0aW4gDQpuYXksIHRoaSB0aHUgdHJ1b25nIE5nb2FpIEdpYW8gQ1NW TiBIbyBYdWFuIFNvbiB0aW0gY2FjaCBidW5nIGJpdCBxdWEgZGUgbmdoaSAiY2FjIGNvIA0KcXVh biB0cnV5ZW4gdGhvbmcgZGFpIGNodW5nIGN1YSBoYWkgbnVvYyBraG9uZyBuZW4gZHVhIHRpbi4i IE5nYXkgMjUtOCwga2hpIGNoaW5oIHBodSANCk5oYXQgY2hpbmggdGh1YyB0cnV5IHRvIDQgdmll biBjaHVjIFBDSSB2YSBkZW4gdGhhbmcgOS0yMDA4LCBkZSBuZ2hpIHRoYW5oIGxhcCB1eSBiYW4g DQpob24gaG9wIGNob25nIHRoYW0gbmh1bmcsIHRoaSBIYSBOb2kgdmFuIGxpIGxvbSB0dXllbiBi byAia2hvbmcgY28gaGFuaCB2aSB0aWV1IGN1YyBuaHUgDQpiYW8gY2hpIE5oYXQgQmFuIGRhIGR1 YS4iDQoNCkNobyBkZW4gbmdheSAxMi0xMSwgdHJvbmcgcGhpZW4geHUgZGF1IHRpZW4gdGFpIHRv YSBhbiBUb2t5bywga2hpIDQgbmdoaSBjYW4gZGV1IHRodSANCm5oYW4gdmUgY2FjIHRvaSBkYW5o IGJpIGNhbyBidW9jIHRoaSBuZ2F5IGhvbSBzYXUsIE5ndXllbiBUYW4gRHVuZyBodWEgaGVuICJz ZSBjaG8gZGlldSANCnRyYSIsIG5odW5nIGNoaSBodWEgZGUgbHVhIGdhdCBkdSBsdWFuLCB2aSBi aWVuIHBoYXAgZHVhIHJhIGNoaSBsYSAidGFtIGRpbmggY2hpIGNvbmcgdGFjIi4gDQpUdW9uZyB0 dSBuaHUgdmF5LCBuZ2F5IDIxLTExLCBOZ3V5ZW4gTWluaCBUcmlldCBodWEgdm9pIHRodSB0dW9u ZyBOaGF0IGxhICJzZSB4dSBseSBuZ2hpZW0gDQpraGFjIHZ1IFBDSSIsIG5odW5nIHJvaSB2YW4g dGFuZyBsbywgSHV5bmggTmdvYyBTeSB2YW4ga2hvbmcgYmkgdHJ1eSB0by4NCg0KVHJ1b2MgdGhh aSBkbyBuZ29hbiBjbyBjdWEgQ1NWTiwgZGF1IHRoYW5nIDEyLCBOaGF0IHR1eWVuIGJvIG5ndW5n IHZpZW4gdHJvIE9EQSwgZG9uZyBiYW5nIA0KbmdhbiBraG9hbiA3MDAgdHJpZXUgZG8gbGEgZGEg Y2FwIGNobyBuYW0gMjAwOC4gRGF5IGxhIGxhbiBkYXUgdGllbiBOaGF0IHBoYWkgYXAgZHVuZyBi aWVuIA0KcGhhcCBjdW5nIHJhbiBuaHUgdmF5LiBDaG9hbmcgdmFuZyB0cnVvYyBsaWV1IHRodW9j IGRhbmcgIm1hZGUgaW4gSmFwYW4iLCBuZ2F5IDktMTIsIGJvIENvbmcgYW4gDQp0aG9uZyBiYW8g ImRhIGtob2kgdG8gdnUgYW4gbmhhbiBob2kgbG8gbGllbiBxdWFuIGRlbiBvbmcgSHV5bmggTmdv YyBTeSIsIG5odW5nIGtob25nIHRpZXQgDQpsbyB0aGVtIGNoaSB0aWV0IG5hbywgdmEgSHV5bmgg TmdvYyBTeSB2YW4gY29uIHRhaSBuZ29haS4gQ28gbGUgbGlldSB0aHVvYyBjaHVhIGR1IGRhbmcg ZG9pIA0Kdm9pIGNvbiBiZW5oIGxpIGxvbS4gVHJvbmcgMiB0aGFuZyB0aWVwIHRoZW8sIHRpbmgg dHJhbmcgYnVuZyBuaHVuZyB2YW4gdGllcCB0dWMga2VvIGRhaS4gDQpNb3QgbWF0IEhhIE5vaSBj byB0cmFuIGFuIGR1IGx1YW4gYmFuZyBuaHVuZyBsb2kgdHV5ZW4gYm8gc2FpIHN1IHRoYXQgbmh1 ICJOaGF0IEJhbiBzYXAgbm9pIA0KbGFpIHZpZW4gdHJvIE9EQSBjaG8gVmlldCBOYW0iLCBtYXQg a2hhYyBobyB2YW4gZG9uZyBoYXUgdHJ1b25nIGRlIE5oYXQgQmFuIHRoYXkgZG9pIHRoYWkgZG8u IA0KVHV5IG5oaWVuLCBjaGluaCBwaHUgTmhhdCB2YW4gY3VvbmcgcXV5ZXQgZHV5IHRyaSBsYXAg dHJ1b25nIGN1bmcgcmFuIGN1YSBtaW5oLiBOZ2F5IDI5LTEsIA0KdG9hIGFuIFRva3lvIGtldCBh biBjYWMgY2FuIHBoYW0gdHUgMjAgdGhhbmcgZGVuIDIgbmFtIHR1IGdpYW0uIFNhdSBjdW5nLCBu Z2F5IDExLTIsIEh1eW5oIE5nb2MgDQpTeSBtb2kgYmkgYmF0IHRhbSBnaWFtIGN1bmcgdm9pIHZp ZW4gY3V1IHBodSB0YSBMZSBRdWEuDQoNClR1eSBuaGllbiwgY2hpbmggbmdheSBraGkgbWEgbmd1 b2kgdGEgdHVvbmcgbGEgQ1NWTiBkYSBwaGFpIG5odW9uZyBibyB0cnVvYyBhcCBsdWMgY3VhIA0K cXVvYyB0ZSBkZSB4ZXQgeHUgbmdoaWVtIGNoaW5oIHZ1IHRoYW0gbmh1bmcgbmF5LCB0aGkgbW90 IGxhbiBudWEgSGEgTm9pIGxhaSBjaG8gdGhheSANCmhvIHZhbiBuZ29hbiBjbyB0YWkgZGllbiB0 cm8gbHVhIGJpcC4gVnUgUENJIGRhbmcgY28gY2hpZXUgaHVvbmcgY29uIHZvaSB0cm8gdGhhbmgg Y29uIA0KY2h1b3QgbmhhdC4NClRodWMgY2hhdCBjdWEgdnUgbmF5IGxhIHRoYW0gbmh1bmcsIGhv aSBsby4gQ2FjIHZpZW4gY2h1YyBQQ0kgcGhhaSAibG90IHRheSIgY2hvIGNhbiBibyANCkNTVk4g MTAlIHRyaSBnaWEgY3VhIGhvcCBkb25nIGRlIGR1b2MgdHJ1bmcgdGhhdSwgdG9uZyBjb25nIGxl biBkZW4gMiw2IHRyaWV1IGRvIGxhLiANCg0KS2hpIG5naGUgdGluIEh1eW5oIE5nb2MgU3kgYmkg YmF0IGdpdSB2YW8gbmdheSAxMS0yIHZ1YSBxdWEsIG5oaWV1IG5ndW9pIHR1b25nIHJhbmcgb25n IA0KU3kgc2UgYmkgdHJ1eSB0byB2ZSB0b2kgdGhhbSBuaHVuZy4gTmh1bmcgbmd1b2kgdGEgZGEg bGFtLCB2aSBDU1ZOIGxhaSBsdWEgYmlwIG5odSBkYSB0dW5nIA0KYmlwIHJhdCBuaGlldSBsYW4g dHJvbmcgcXVhIGtodS4gSG8gZGEgY2hvbiB0aG9pIGRpZW0gaG9hbmcgdGhhaSB0dSBOaGF0IGRh bmcgdmllbmcgdGhhbSANClZpZXQgTmFtIGRlIGJhdCBnaXUgSHV5bmggTmdvYyBTeS4gSG8gZGEg Y2hvIGJpZXQgdHJ1b2MgdmUgdmllYyBiYXQgZ2l1IGRlIGNhIG1vdCBsdWMgDQpsdW9uZyBwaG9u ZyB2aWVuIGRvbmcgZGFvIGRlbiBzYW4gdGluIHRydW9jIGNhbiBuaGEgNCB0YW5nIGN1YSBvbmcg U3kgbyBTYWkgR29uLiBIbyBkYSANCmRlIGJhbyBjaGkgbmhhIG51b2MgbWFjIHRpbmggZGFuZyB0 YWkgbmh1bmcgdGFtIGhpbmggY2h1cCBvbmcgU3kgYmkgZGlldSByYSBraG9pIG5oYS4uLi4gDQpU YXQgY2Egbmh1bmcgdGh1IHRodWF0IGRvIG5oYW0gdGFvIGFuIHR1b25nIHJhbmcgbHVhdCBwaGFw IG5naGllbSBtaW5oIGRhbmcgZHVvYyB0aHVjIHRoaSwgDQpuaHVuZyB0aHVjIGNoYXQgZG8gY2hp IGxhIG1vdCBtYW4gYW8gdGh1YXQgcmUgdGllbi4gQmFuIGNhbyB0cmFuZyBsZSByYSBwaGFpIGxh ICJ0aGFtIG5odW5nLCANCmhvaSBsbyIsIG1hIGNoaWV1IHRoZW8gYm8gbHVhdCBoaW5oIHN1IGN1 YSBDU1ZOIHRoaSBoaW5oIHBoYXQgY28gdGhlIGxlbiBkZW4gdHUgaGluaCwgbmF5IGRhIA0KYmkg Y2h1eWVuIHRoYW5oICdsb2kgZHVuZyBjaHVjIHZ1IHF1eWVuIGhhbiB0cm9uZyBraGkgdGhpIGhh bmggY29uZyB2dScgdm9pIG11YyBhbiB0b2kgZGEgDQpsYSB0dSAxMCBkZW4gMTUgbmFtIHR1IGdp YW0uIFR1IHRvaSB0cmFuZyB0aGFtIG5odW5nIHRpZW4gdmllbiB0cm8gbmdvYWkgcXVvYyBsZW4g ZGVuIGdhbiANCjMgdHJpZXUgZG8gbGEsIGNvIGxpZW4gcXVhbiBkZW4gbmhpZXUgbmhhbiB2YXQg dGh1b25nIHRhbmcgY3VhIGNoZSBkbywgdHJvIHRoYW5oIHRoYW0gbGFtIA0KdGllbiBjaG8gdGh1 ZSBuaGEgY29uZywgdG9uZyBjb25nIGtob2FuZyA4MC4wMDAgZG8gbGEsIGNoaWEgY2hhYyB2b2kg bW90IHNvIGNhbiBibyB0ZXAgcml1LCANCnRyb25nIGtob2FuaCBraGFjIGNvbiB2b2kgZGEgYmll biB0aGFuaCBjb24gY2h1b3QhLg0KDQpSbyByYW5nIEJvIENoaW5oIHRyaSBEQ1NWTiBkYW5nIG11 b24gZW0gbmhlbSB2dSBuYXksIG5odSBkYSBuaGlldSBsYW4gdHJvbmcgcXVhIGtodS4NClRyb25n IG1vdCBjaGUgZG8gZG9jIHRhaSwgdmllYyBkdXkgdHJpIHF1eWVuIGx1YyBkdW9jIHBoYW4gYm8g dGhlbyBiZSBjYW5oLCBkYXQgdHJlbiANCmNhbiBiYW4gcXV5ZW4gbG9pLiBCbyBjaGluaCB0cmkg ZGFuZyBjb25nIHNhbiBnb20gMTUgdXkgdmllbiBkYW5oIHRvYW4gcXV5ZW4gY2hpYSBjaGFjIA0K Ym9uZyBsb2MsIGJhbyBnb20gdGFpIG5ndXllbiBjdWEgZGF0IG51b2MsIHRpZW4gdmllbiB0cm8g bmdvYWkgcXVvYyB2YSBtb2kgY2h1YyB0dW9jIHRyb25nIA0KZ3VvbmcgbWF5IG5oYSBudW9jLiBI dXluaCBOZ29jIFN5IGNoaSBsYSBtb3QgbWF0IHhpY2ggdHJvbmcgdG9hbiBibyBoZSB0aG9uZyBu YXkuIE9uZyB0YSANCmtob25nIHRoZSBudW90IHRyb24gc28gdGllbiBnYW4gMyB0cmlldSBkbyBs YSwgbWEgcGhhaSBjaGlhIGNoYWMgdm9pIG5odW5nIG5oYW4gc3Uga2hhYy4gDQpOaHVuZyBuZ3Vv aSBkbyBsYSBhaT8uIFRyb25nIHRob2kgZ2lhbiBhbiBob2kgbG8gY3VhIFBDSSwgSHV5bmggTmdv YyBTeSBuYW0gZHVvaSBxdXllbiBjdWEgDQpOZ3V5ZW4gTWluaCBUcmlldCBsYSBiaSB0aHUgdGhh bmggdXkgdmEgTGUgVGhhbmggSGFpIGxhIGNodSB0aWNoIFV5IEJhbiBOaGFuIERhbiB0aGFuaCBw aG8gDQpTYWkgR29uLiBCYXkgZ2lvIFRyaWV0IGxlbiBsYW0gY2h1IHRpY2ggbnVvYywgdmEgSGFp IGxlbiBjaHVjIGJpIHRodSB0aGFuaCB1eS4gQ2EgMiBkZXUgbGEgDQp1eSB2aWVuIGJvIGNoaW5o IHRyaS4gSGFpIGNvbiBsYSBzdWkgZ2lhIHZvaSBTeS4gVm9pIG5odW5nIG1hYyBtaXUgdmUgcXV5 ZW4gbG9pIHZhIHRpbmggDQpjYW0gbmh1IHZheSwgdmEgbmhhdCBsYSBuaHUgY2F1IGJhbyBjaGUg Y2hvIG5oYXUgZGUgY3VuZyB0b24gdGFpLCBzZSBraG9uZyBiYW8gZ2lvIGNvIHZpZWMgDQpjaGUg ZG8gbmF5IHhldCB4dSBuZ2hpZW0gbWluaCBuaHVuZyB2dSB0aGFtIG5odW5nLg0KQ2hpbmggaGUg dGhvbmcgcXV5ZW4gbHVjIGRvYyBxdXllbiBkYSBkZSByYSB0aGFtIG5odW5nLCBuZW4gbm8ga2hv bmcgbGFtIHNhbyBjbyB0aGUgZGlldCB0cnUgDQp0aGFtIG5odW5nLCB2aSBsYW0gbmh1IHRoZSB0 dWMgbGEgdHUgaHV5IGRpZXQgbWluaC4gVGF0IGNhIG5odW5nIHZ1IHRoYW0gbmh1bmcgZ29jIHR1 IHRydW9jIA0KdG9pIG5heSBkZXUgbmh1IHZheS4gTmh1bmcgdGhhbmggcGhhbiBsaWVuIGNhbiBu aHUgdGh1IHRydW9uZyBOZ3V5ZW4gVmlldCBUaWVuLCB0aHUgdHJ1b25nIE1haSANClZhbiBEYXUs IGJvIHRydW9uZyBWdSBOZ29jIEhhaSwgdG9uZyBnaWFtIGRvYyBCdWkgVGllbiBEdW5nLCB0b25n IGdpYW0gZG9jIFRyYW4gTWFpIEhhbmgsIHRodSANCnRydW9uZyBjb25nIGFuIEJ1aSBRdW9jIEh1 eSwgdmllbiBwaG8gUGhhbSBTaSBDaGllbi4uLiBkZXUgZHVvYyBiYW8gY2hlIHRhbiB0aW5oLCB0 YW8gdGhvaSBnaWFuIA0KY2hvIGhvIHRodSB0aWV1IGRhdSB2ZXQgdmEgdGF1IHRhbiB0YWkgc2Fu LCBjaG8gZGVuIGx1YyBraG9uZyB0aGUgZW0gbmhlbSBub2kgdGhpIG1vaSBiaSBtYW5nIA0KcmEg eGV0IHh1IHNvIHNhaSwgbyB0dSB0dW9uZyB0cnVuZyBtb3QgdGhvaSBnaWFuIG5nYW4gcm9pIGR1 b2MgdHJhIHR1IGRvLCBzb25nIGN1b2MgZG9pIHhhIGhvYSANCnZvaSBzbyB0aWVuIGNoaWVtIGR1 b2MuIFRhdCBjYSBkZXUgY2h1bmcgbW90IGtpY2ggYmFuLCB2YSBIdXluaCBOZ29jIFN5IGxhbiBu YXkgY3VuZyBraG9uZyBraGFjLg0KDQpUaGFtIG5odW5nIHBoYXQgeHVhdCB0dSBsb25nIHRoYW0g Y3VhIGNvbiBuZ3VvaSwgdmEgbm8geHVhdCBoaWVuIG8gYmF0IGN1IG5vaSBkYXUuIE5odW5nIGNo aSANCnRyb25nIG1vdCB0aGUgY2hlIGRhbiBjaHUsIHZvaSBxdXllbiBsdWMgZHVvYyBtaW5oIGRp bmggcm8gcmFuZywgdm9pIG5lbiB0dSBwaGFwIGRvYyBsYXAgdmEgDQpjb25nIG1pbmgsIHZhIHZv aSBuZW4gdHUgZG8gYmFvIGNoaSBkdW9jIHRvbiB0cm9uZywgbmd1b2kgdGEgbW9pIGNvIHRoZSBw aGF0IGdpYWMgbWFtIG1vbmcgDQp0aGFtIG5odW5nIGtpcCB0aG9pIGRlIG5nYW4gY2hhbiBodXUg aGlldS4gQ29uIHRyb25nIG1vdCBjaGUgZG8gZG9jIHRhaSwgY2hvIGR1IGNvIHV5IGJhbiBiYWkg DQp0cnUgdGhhbSBuaHVuZyBoYXkgbXVvbiBuZ2FuIHNhYyBsZW5oLCBuZ2hpIHF1eWV0Li4uIHRh dCBjYSBjaGkgbGEgZGUgZGFuIGNhbmguIFZpIHRoZSwgdmllYyANCmRpZXQgdHJ1IHRoYW0gbmh1 bmcgcGhhaSBuaGFtIHRvaSBtdWMgdGlldSB0b2kgaGF1IGxhIGNoYW0gZHV0IGRvYyB0YWksIHR1 YyBsYSBkZXAgc2FjaCBtb2kgDQp0cnVvbmcgZ2l1cCBjaG8gdGhhbSBuaHVuZyBjbyBjbyBob2kg c2luaCBzb2kgbmF5IG5vLiBEb25nIHRob2kgdHJ1b2MgbWF0IGdpYSB0YW5nIGFwIGx1YyANCmxl biBkdSBsdWFuIHRyb25nLCBuZ29haSBudW9jIGN1bmcgbmh1IHF1b2MgdGUgZGUgbG9pIHJhIGFu aCBzYW5nIHRvYW4gYm8gbmh1bmcgbyBkdSBjaGUgY2hvIA0KY2hvIEh1eW5oIE5nb2MgU3kuIENo dW5nIHRhIGN1b25nIHF1eWV0IGtob25nIGRlIGNobyBjb24gdm9pIGJpZW4gdGhhbmggY29uIGNo dW90ISAgICAgDQoNCmh0dHA6Ly93d3cuZGN2b25saW5lLm5ldC9waHAvbW9kdWxlcy5waHA/bmFt ZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9NjQxMSAgRENWT25saW5lIC0gVGluIG5nYW4gKEFGUCkN Cg0KVmlldCBOYW0gZGUgbmdoaSBoYWkgdmllbiBjaHVjIGJpIGtldCBhbiBsYW0gZHVuZyBxdXll biBsdWMgdHJvbmcgY2h1eWVuIHRoYW0gbmh1bmcgDQp0YWkgdGllbmcgZGEgbGFtIE5oYXQgQmFu IG5ndW5nIHZpZW4gdHJvIGNobyBWaWV0IE5hbSB0cnVvYyBkYXkuDQoNCkNhbmggc2F0IGNobyBo YXkgb25nIEh1eW5oIE5nb2MgU3kgdmEgb25nIHBobyBjdWEgb25nIFN5LCBsYSBvbmcgTGUgUXVh IG5lbiBiaSB0cnV5IA0KdG8gdmkgdG9pICJsYW0gZHVuZyBxdXllbiBsdWMiLCB0aGVvIGJhbiB0 aW4gZGkgdHJlbiB0byBUaGFuaCBOaWVuLg0KDQpPbmcgU3kgdHJ1b2MgZGF5IGxhIG5ndW9pIGRp ZXUgaGFuaCBEdSBhbiBYYSBsbyBEb25nIC0gVGF5LCBtb3QgY29uZyB0cmluaCB4YXkgZHVuZyAN CmhhIHRhbmcga2llbiB0cnVjIGxvbiBuaGF0IG8gdGhhbmggcGhvIEhvIENoaSBNaW5oIHZvaSB0 aWVuIHRhaSB0cm8gY3VhIE5oYXQgQmFuLg0KDQpIb20gdGhhbmcgQmEsIG1vdCB0b2EgYW4gbyBE b25nIEtpbmggKFRva3lvKSBkYSByYSB0cmF0IGFuIHR1IHRyZW8gY2hvIG9uZyBNYXNheW9zaGkg DQpUYWdhLCBjdXUgY2h1IHRpY2ggY29uZyB0eSB0dSB2YW4gUGFjaWZpYyBDb25zdWx0YW50cyBJ bnRlcm5hdGlvbmFsIChQQ0kpIGNvIHRydSBzbyBuYW0gbyANCkRvbmcgS2luaCwgc2F1IGtoaSBr ZXQgdG9pIG9uZyBUYWdhIGRhIGhvaSBsbyBvbmcgU3kuDQoNClRvYSBhbiBEb25nIEtpbmggY2hv IGhheSBjb25nIHR5IFBDSSBkYSBkdXQgbG90IGNobyBvbmcgU3kgODIwLjAwMCBkby1sYSBkZSBk b2kgbGFpLCANCmR1b2MgdHJ1bmcgdGhhdSB4YXkgZHVuZyB0cm9uZyBEdSBhbiBYYSBsbyBEb25n IC0gVGF5IG5heS4NCg0KQ2FuaCBzYXQgVmlldCBOYW0ga2V0IGx1YW4gcmFuZyBvbmcgU3kgdmEg b25nIFF1YSBkYSB0aHVhIG5oYW4gc3UgbGFtIGR1bmcgcXV5ZW4gbHVjIA0KY2hvIGljaCBsb2kg Y2EgbmhhbiBraGkgaGFpIG9uZyBjaG8gdGh1ZSBtb3QgdmFuIHBob25nIGN1YSBuaGEgbnVvYyBk YW5oIGNobyB2aWVuIGNodWMgDQpkaWEgcGh1b25nIGxhbSB2aWVjIHRyb25nIGR1IGFuIG5heSwg dGhlbyBiYW8gVHVvaSBUcmUgY2hvIGhheS4NCg0KQ29uZyB0eSBQQ0kgZGEgdHJhIDgwLjAwMCBk by1sYSB0aWVuICJ0aHVlIiBjaG8gdmFuIHBob25nIG5odW5nIG9uZyBRdWEgZGEgZ2l1IGxheSBz byANCnRpZW4gbmF5LCBjaGlhIGNoYWMgY2hvIG9uZyBTeSB2YSBjYWMgbmhhbiB2aWVuIGtoYWMs IHRoZW8gYmFvIFRoYW5oIE5pZW4uDQoNCkJhbiB0dW9uZyB0aHVhdCBjdW5nIGNobyBoYXkgbGEg Y2FjIHZpZW4gY2h1YyBuYXkgZGEgdHJhIGxhaSA4OC41NjUgZG8tbGEuDQoNCkNvbmcgdG8gdmll biBWaWV0IE5hbSBzZSB4ZW0gbGFpIGJhbiBiYW8gY2FvIGN1YSBjYW5oIHNhdCB0cnVvYyBraGkg Y28gcXV5ZXQgZGluaCBzZSANCnRydXkgdG8gY2hpbmggdGh1YyBuaHVuZyBuZ3VvaSBuYXkgaGF5 IGtob25nLg0KDQpUcm9uZyBsdWMgZG8sIGhhbmcgUENJIGRhIGJpIHBoYXQgdmEgYmEgY3V1IHZp ZW4gY2h1YyBkaWV1IGhhbmggaGFuZywgYmVuIGNhbmggb25nIA0KVGFnYSwgZGEgYmkga2V0IGFu IHRyZW8gYm9pIHRvYSBhbiBOaGF0IEJhbi4NCg0KSG9tIHRoYW5nIEJhIG5hbSBuYXksIG5oYSBu dW9jIFZpZXQgTmFtIGNvbmcgc2FuIGRhIGNhbSBrZXQgc3UgZHVuZyB0aWVuIHZpZW4gdHJvIA0K Y3VhIE5oYXQgQmFuIC0gbGEgbnVvYyB2aWVuIHRybyBuaGlldSBuaGF0IGNobyBWaWV0IE5hbSAt IG1vdCBjYWNoIGh1dSBoaWV1IGhvbiwgc2F1IA0Ka2hpIGhhaSBiZW4gZGEga3kgbW90IGJhbiB0 aG9hIHRodWFuIGRlIE5oYXQgQmFuIHRpZXAgdHVjIHRhaSB2aWVuIHRybyBzYXUgbW90IHRob2kg Z2lhbiANCmJpIG5ndW5nIHZpIGNodXllbiB0aGFtIG5odW5nIGRheSB0YWkgdGllbmcgY3VhIFBD SSBuYXkuDQoNClkga2llbiBiYW4gZG9jOg0KDQpOZ3V5ZW4gSHV1IFZpZW4gMjAwOS0wNi0xMiAy MzozMDoxMzoNCg0KVGhhbmcgTGUgVGhhbmggSGFpIHV5IHZpZW4gQm8gY2hpbmggdHJpIGNhbiBw aGFpIGJpIHRydXkgdG8gdG9pICJjaGUgZHUgZHVuZyB0cm9uZyBib25nIA0KdG9pIiBjaG8gZGFu IGVtIEh1eW5oIE5nb2MgU3kgKGJpIHRydXkgdG8gdG9pICJsYW0gZHVuZyBxdXllbiBsdWMiKQ0K DQpLaGkgY2hpbmggcGh1IE5oYXQgQmFuIGNobyBWaWV0IE5hbSB2YXkgdGllbiB4YXkgZHVuZywg bmdvYWkgbmh1bmcgbXVjIGRpY2ggdmkgbG9pIA0KaWNoIHF1b2MgZ2lhLCBuaGFuIGRhbiBOaGF0 IGNvbiB2aSB0aW5oIGh1dSBuZ2hpIHZhIGRvbmcgbWluaCBjaGllbiBsdW9jIEJpZW4gRG9uZy4N Cg0KVGhhbSBuaHVuZyBuZ3VvbiB2b24gT0RBIGxhIHRpZW4gdGh1ZSBjdWEgbmd1b2kgZGFuIE5o YXQ7IGxhIG51b3QgdHJvbiB0aWVuIG5vIG1hIA0KY29uIGNoYXUgbmd1b2kgVmlldCBOYW0gc2F1 IG5heSBwaGFpIQ0KRHUgdm9uIE9EQSBkYSBkdW9jIG5vaSBsYWksIG5odW5nIGNoYWMgY2hhbiBx dW9jIHRoZSBkYSBsYWkgbW90IGxhbiBiaSB0b24gdGh1b25nLCBpdCANCm5oYXQgdHJ1b2MgY29u IG1hdCBraGluaCBiaSwgZ2hlIHRvbSBjdWEgbmd1b2kgTmhhdCENCg0KVGhvaSBTaG9ndW4gbyBO aGF0LCBuaHVuZyBrZSBhbiBjYXAgbmh1IExlIFRoYW5oIEhhaSB1eSB2aWVuIEJvIGNoaW5oIHRy aSB2YSBIdXluaCANCk5nb2MgU3kgY28gdGhlIGJpIGNoYXQgdGF5LCBjaGF0IGNoYW4gdmkgZG8g bGEgY2h1eWVuIG5odWMgcXVvYyB0aGUuDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIw MTAtMDYtMjQtbmRuLXZhLXZ1LXhpLWNhbmctZGFuLXBjaSBIdXluaCBQaGFuIDI2LzA2LzIwMTAg MDY6MDAgR01UKzcNCg0KVnUgeGkgY2FuZyBkYW4gUENJDQoNClRoZW8gbmd1b24gdGluIHR1IGNv IHF1YW4gY2h1YyBuYW5nIFZpZXQgTmFtLCBoaWVuIGRhIGNvIGR1IGNodW5nIGN1IGRlIGR1YSBu Z3V5ZW4gDQpHaWFtIGRvYyBkdSBhbiBEb25nIFRheSB2YSBNb2kgdHJ1b25nIG51b2MgVFAgSENN IHJhIGxhaSB2YW5oIG1vbmcgbmd1YSB2aSB0b2kgDQpuaGFuIGhvaSBsbyBob24gMjAwIG5nYW4g VVNEIHR1IGNhYyBjdXUgcXVhbiBjaHVjIGNvbmcgdHkgdHUgdmFuIFBhY2lmaWMgQ29uc3VsdGFu Y3kgDQpJbnRlcm5hdGlvbmFsIChQQ0kpOyAgdGhlbyBuaHVuZyB0aG9uZyB0aW4gZHVvYyBkYW5n IHRhaSB0cmVuIGJhbyBjaGkgTmhhdCBCYW4sIHRvbmcgc28gDQp0aWVuIG9uZyBIdXluaCBOZ29j IFN5IGRhIG5oYW4gY28gdGhlIGxlbiB0b2kgODAwIG5nYW4gVVNELCB2YSB0aGFtIGNoaSBjb24g Z2FwIGJhIA0KbGFuIGNvbiBzbyBkby4NCg0KTmhvbSBsYW0gcGhpbSBORE4gbGFpIHRpZXAgdHVj IGxhbiBkZW4gQ3VjIFRodWUgVFAgSENNLiBUaGVvIHRob25nIHRpbiBobyB0aHUgdGhhcCBkdW9j IA0KdHJlbiBiYW8gY2hpIFZpZXQgTmFtLCB0cnVvYyBkbywgQ3VjIFRodWUgdGhhbmggcGhvIGRh IGNobyBiaWV0IHJhbmcgUENJIGtlIGtoYWkgbXVjIHRodSANCm5oYXAgY2hpdSB0aHVlIHRodSBu aGFwIGNhIG5oYW4gY3VhIGNhYyBjaHV5ZW4gZ2lhIG51b2MgbmdvYWkgbGFtIHZpZWMgdGFpIGR1 IGFuIGRhaSBsbyANCkRvbmcgVGF5IHZhIE1vaSB0cnVvbmcgbnVvYyBUUC5IQ00gdGhhcCBob24g bmhpZXUgc28gdm9pIGhvcCBkb25nIGRhIGt5IHZvaSBiYW4gcXVhbiBseSANCmR1IGFuLiBUaGVv IGRvLCB0cm9uZyBuYW0gMjAwNSAxMSBjaHV5ZW4gZ2lhIGN1YSBQQ0kgZGEga2Uga2hhaSB0aHUg bmhhcCB0aGFwIGhvbiBzbyB2b2kgDQpob3AgZG9uZyB2b2kgdG9uZyBzbyB0aWVuIGxhIDM0IHR5 IGRvbmcuIE5naGllbSB0cm9uZyBob24sIGdhcCBuYW0gbGFuIHNvIGRvIGNvbiBraG9uZyANCmNo aXUga2hhaSB0aHVlIHRodSBuaGFwLg0KDQpIbyBkYXQgcmEgaGFpIGNhdSBob2kgdm9pIGxhbmgg ZGFvIEN1YyBUaHVlOiBDbyBoYXkga2hvbmcgdmllYyB0cm9uIHRodWUgdGh1IG5oYXAsIHZhLCAN Cm5ldSBjbywgc2UgYmkgdHJ1eSB0aHUgdGhlIG5hbz8gQ2F1IHRyYSBsb2kgaG8gbmhhbiBkdW9j IGxhICJ2YW4gZGUgbmF5IHF1YSB0ZSBuaGksIA0KbmVuIEN1YyBraG9uZyB0aGUgdHJhIGxvaSIu DQoNCmh0dHA6Ly90cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDgvMTIvYm8tY2hpbmgtdHJp LXBjaS12YS1oYWktdG8tYmFvLmh0bWwgVERDIHBvc2VkIGJ5IFRyYSBUdSBEbyANCg0KQm8gY2hp bmggdHJpIHZhIHZ1IFBDSSANCg0KT25nIE5ndXllbiBNaW5oIFRyaWV0LCBUcnVvbmcgVGFuIFNh bmcgdmEgY2EgSG8gRHVjIFZpZXQgKFRydW9uZyBiYW4gVG8gY2h1YyBUVykgIA0KZGEgcGhhaSB2 YW8gVFAgSENNIGRlIGJhbiBiYWMgdm9pIExlIFRoYW5oIEhhaSAmIFRoYW5oIHV5IHR1IGdpdWEg dHVhbi4gTGUgVGhhbmggDQpIYWksIEJpIHRodSBUaGFuaCB1eSwga2hvbmcgdGhlIGtob25nIGRp bmggdHJ1YyB0aWVwIGRlbiB2dSBuaGFuIGhvaSBsbyBjdWEgSHV5bmggTmdvYyANClN5LCBuaHVu ZyBkaWV1IG5heSBjaG8gdGhheSB2aWVjIGxhbSB0b2kgY3VuZyBkZSBkdWEgcmEgYW5oIHNhbmcg dGhlbyB5ZXUgY2F1IGN1YSBwaGlhIA0KTmhhdCBsYSByYXQga2hvIHZhIGRlIHNlIGRhbiBkZW4g YmUgdGFjLiBMeSBkbyBsYSBMZSBUaGFuaCBIYWkgbGEgZG9uZyBtaW5oIHF1YW4gdHJvbmcgDQpj dWEgb25nIE5ndXllbiBUYW4gRHVuZywgY2hpbmggbmhvIG9uZyBEdW5nIG1hIG9uZyBIYWkgdmFv IGR1b2MgQkNUIGtob2EgWCB2dWEgDQpyb2ksIHRyb25nIGtoaSB0cnVvYyBEYWkgaG9pIFggZGEg Y28ga2hhIG5hbmcgYmF5IGtob2kgY2EgZ2hlIHV5IHZpZW4gVFcuIA0KDQpPbmcgRHVuZyB2YSBv bmcgSGFpIGNvIG5odW5nIG1vaSBxdWFuIGhlIHZlIHF1eWVuIGxvaSBraW5oIHRlIHJhdCBraGFu ZyBraGl0IHZvaSBuaGF1LiANCkhhdSBoZXQga2h1IGRhdCB2YW5nIGN1YSB0aGFuaCBwaG8gYmkg ZGVtIGRpIGJhbiByZSBtYSBiYW8gY2hpIGNvIGxlbiB0aWVuZyB2dWEgcXVhLCBsYSANCmJhbiBj aG8gbmd1b2kgbmhhIGN1YSBvbmcgRHVuZyAoY29uIGdhaSBQaHVvbmcsIGVtIHRyYWkgVHUgVGhh bmcsIHZhIGNhIGNobyBiYSBjb24gDQpiZW4gdm8gVGh1IHR1b25nLCBjbyBsZSBiYXkgZ2lvIG1v aSBuZ3VvaSBjbyB0aGUgaGlldSBkdW9jIHZpIHNhbyBjYWMgdG8gYmFvIHNhdSBraGkgZHVhIA0K dGluIHRoaSBuaGFuaCBjaG9uZyBpbSBiYXQpLiBCaWV0IGR1b2MgZGlldSBuYXkgbmVuIHBoaWEg TmhhdCB0aWVwIHR1YyB0aGEgbW9pIGRlIGNvIHRoZSANCmRhdCBkdW9jIHRoZW0gbmh1bmcgcXV5 ZW4gbG9pIG1hIGtob25nIGRhbmggbWF0IG11YyBkaWNoIGN1b2kgY3VuZyB2YSB0aWVwIHR1YyBk dWEgDQpWaWV0IE5hbSB2YW8gYmF5IGNoYXQgaG9uLiBDdXUgVGh1IFR1b25nIEZ1a3VkYSB0cmFu aCB0aHUgZGVuIEhhIE5vaSBkZSByYSBnaWEuIA0KT25nIER1bmcgY28gbGUga2hvIG1hIHRob2F0 IGtob2kgY2FpIGJheSBuYXkuIA0KDQpOZ29haSByYSBvbmcgRHVuZyBkYW5nIGNhbiB0cmFuaCBu aHVuZyBiaWVuIGRvbmcgbWFuaCB2ZSBraW5oIHRlIHRydW9jIGtoaSBob2kgbmdoaSANClRXIGxh biA5LCBuaHVuZyBjaGFjIGNoYW4gbGFuIG5heSBzZSBjbyBkYXUgZGEgdm9pIG9uZyBTYW5nLCBn aW8gZGF5IGRhIHRybyB0aGFuaCBkb2kgDQp0aHUgY2hpbmggY3VhIG9uZyBEdW5nIGhpZW4gbmF5 LiANCg0KSG9pIG5naGkgbmF5IGR1b2MgeGVtIGxhIG1vdCBkYWkgaG9pIGdpdWEgbmhpZW0ga2hv YSBYIHZhIHNlIGxhIG1vdCB0cmFuIGNoaWVuIHF1eWV0IA0KbGlldCB2ZSBuaGFuIHN1IGNhbyBj YXAsIGNhYyB2aSB0cmkgdHUgdHJ1IHRyaWV1IGRpbmggY28gdGhlIGJpIHRoYXkgZG9pLiBEbyBj dW5nIGxhIGx5IGRvIHZpIA0Kc2FvIG1hIHRob2kgZ2lhbiB0byBjaHVjIGhvaSBuZ2hpIG5heSBj dW5nIGRhbmcgZHVvYyBnaWFuaCBnaWF0IHF1eWV0IGxpZXQ6IHBoZSBvbmcgRHVuZyANCnRoaSBt dW9uIHBoYWkgdG8gY2h1YyB0cnVvYyBUZXQsIHRyb25nIHRoYW5nIDEuMjAwOSwgbmh1bmcgcGhl IG9uZyBTYW5nIHRoaSBtdW9uIHBoYWkgDQpzYXUgVGV0LCB0cm9uZyB0aGFuZyAyLjIwMDkuIFRo b25nIGRvYyBOZ2FuIGhhbmcgbmhhIG51b2MgTmd1eWVuIFZhbiBHaWF1ICJkdW9jIiAgDQpUaHUg dHVvbmcgeWV1IGNhdSBwaGFpIGtpbSBkdW9jIHR5IGdpYSBraG9uZyB2dW90IHF1YSAxNzIwMCBW TkQvVVNEIHNhdSBoZXQgdGhhbmcgDQoyLjIwMDkgcm9pIGJ1b25nLiBEdSB0cnUgbmdvYWkgdGUg cXVvYyBnaWEgc2FwIGNhbiwgY2FjIFRhcCBkb2FuIHZhIGRvYW5oIG5naGllcCBsb24gDQpjdWEg TmhhIG51b2MgY29uIGtob25nIGR1b2MgZGFwIHVuZyBuaHVuZyB5ZXUgY2F1IG11YSBjaGkgdmFp IGNodWMgdHJpZXUgVVNEIHRyb25nIA0KaG9uIDIgdHVhbiBxdWEuIA0KDQpPbmcgRHVuZyBjb24g cGhhaSBkb2kgcGhvIHZvaSAxIHZhbiBkZSBsb24ga2hhYyBsYSBzdSBraG9uZyBybyByYW5nIHRy b25nIG1vaSBxdWFuIGhlIA0Kdm9pIFRydW5nIFF1b2MuIFRyb25nIGNodXllbiB0aGFtIFRydW5n IGN1b2kgdGhhbmcgMTAgdnVhIHJvaSwgVHJ1bmcgUXVvYyBkYSBkYW5oIA0KbmdoaSB0aHVjIGRv biB0aWVwIGxvbmcgdHJvbmcgbmhhdCBjdWEgVFEgZGUgZG9uIHRpZXAgb25nIER1bmcsIG1hIG5n aGkgdGh1YyBuYXkgdHUgDQp0cnVvYyBkZW4gZ2lvIFRydW5nIFF1b2MgY2h1YSBkdW5nIGRlIGRv biB0aWVwIGJhdCBreSBsYW5oIGRhbyBEYW5nIGhheSBOaGEgTnVvYyBuYW8gDQpjdWEgVmlldCBO YW0uIERpZXUgbmF5IGRhIGdheSByYSBzdSBuZ2hpIGt5IHJhdCBsb24gdHJvbmcgbm9pIGJvIGJv aSB2aSB0aGVvIHNhcCB4ZXAgDQpuZ29haSBnaWFvIHRydW9jIGNodXllbiBkaSB0aGkgVHJ1bmcg UXVvYyBjaGkgZGluaCBkYW5oIG1vdCBuZ2hpIHRodWMgdnVhIHBoYWkgbWEgdGhvaS4gDQpOZ3Vv aSB0YSBkYXQgdmFuIGRlIHJhbmcga2hvbmcgYmlldCBvbmcgRHVuZyBkYSBjbyBuaHVuZyBjYW0g a2V0IGRhYyBiaWV0IGdpIHZvaSBUcnVuZyANClF1b2MgdHJvbmcgbmh1bmcgbmdheSBvIFF1YW5n IFRheSB0cnVvYyBraGkgZGVuIEJhYyBLaW5oIGRlIGJhdCBkYXUgY2h1eWVuIHZpZW5nIA0KdGhh bSBjaGluaCB0aHVjIHRhaSBCYWMgS2luaCBtYSBsYWkgZHVvYyB0aGF5IGRvaSBuZ2hpIHRodWMg bmdvYWkgZ2lhbyBsb25nIHRyb25nIHZhIGJhdCBuZ28gZGVuIG5odSB2YXkuDQoNClkga2llbiBi YW4gZG9jOiANCg0KMS4gVFRLSCAyMToyNyAxNC8xMi8yMDA4ICAgDQoNCigxKSBLaGkgbmd1b2kg SG9hIG1hIHR1IHRlIHZvaSBvbmcgRHVuZyB0aGkgZGF5IGxhIGRhdSBoaWV1IHhhdSBjaG8gVk4g KE5ndXllbiB0YWMgDQpsYW0gYW4gY3VhIG5ndW9pIEhvYSBsYSBraGkgaG8gY2FuIGRlbiBtaW5o IHRoaSBobyB2byBjdW5nIHR1IHRlIHZhIHRoYW4gdGhpZW4pOyANCigyKSBPbmcgRHVuZyBsYSAx IG5ndW9pIGNvIGhvaSwgb25nIG5heSBsZW8gY2F5IGdpb2kgbGFtLCBuaHVuZyBuaHVuZyBrZSAN Cm5heSBobyBraG9uZyBjbyBxdW9jIGdpYSBkYW4gdG9jIHRyb25nIGRhdSBobyBkYXUgbWEgY2hp IGNvIGJhbiB0aGFuIGhvIGxhIHF1YW4gdHJvbmc7ICANCigzKSBOZXUgVHJ1bmcgUXVvYyB2YSBv bmcgRHVuZyB0dSB0ZSB2b2kgbmhhdSB0aGkgY2hhbiBjaGFuIGxhIGxhbmggdGhvIFZOIHNlIGJp IGJhbiBoZXQsIGtob25nIHNvbSB0aGkgbXVvbiENCg0KMi4gVitEIDE3OjE3IDEzLzEyLzIwMDg6 IA0KDQpDb24gdGhvbmcgdGluIG5heSBudWEsIG9uZyBIYWkgbGEgZW0gcmUgVHJ1b25nIE15IEhv YTsgZGF5IG1vIHJlIG1hIHBodWMgdGFwIA0KDQozLiBTdSBUaGF0IDE4OjMwIDE2LzEyLzIwMDg6 IA0KDQpDbyB0aW4gYW5oIFRyaWV0IHNlIHZlIHZ1b24gdmFvIG5hbSBzYXUuIEFuaCBCYSBEdW5n IGhheSBUdSBTYW5nIHNlIGxhbSBDaHUgDQp0aWNoIG51b2Mga2llbSBUb25nIGJpIHRodS4gSGll biBhbmggMyB2YSBhbmggNCBkYW5nIGRhIG5oYXUsIGNoYWMgY3VuZyB2aSBjYWkgdnUgbmF5IGRh eS4gDQoNCjQuIEdvIEtpZW4gMjE6NDEgMTQvMTIvMjAwODogICAgDQoNCkFuaCBMZSBUaGFuaCBI YWkgY3VuZyBjbyBtb3QgZGUgdHUgcnVvdCByYXQgZGluaCBkYW0gKG5ndW9pIHR1bmcgZ2lhdSBu aGF0IHNhbiBjaHVuZyANCmtob2FuIFZOICYgdHJvbmcgbW90IGJhaSBiYW8gZ2FuIGRheSB2YW4g a2hhbmcgZGluaCBkdSBjaHVuZyBraG9hbiBkaSB4dW9uZyB0aGkgb25nIA0KdGEgdmFuIGdpYXUp IGxhIG9uZyBEYW5nIFRoYW5oIFRhbS4gRGF1IG5hbSAyMDA4IHRoaSBvbmcgVGFtIHZhbiBjb24g cmF0IG5vaSAmIA0KZHVvYyBjYSBuZ29pIGhldCBsb2kgYm9pIGJhbyBjaGkgbGEgbmd1b2kgcmF0 IG1hdCB0YXkga2V1IGdvaSBuaGEgZGF1IHR1IG51b2MgbmdvYWkgDQpibyB2b24gdmFvICYgbGEg b25nIGNodSBjdWEgbmhpZXUga2h1IENOIGxvbiBvIFZOLiBNb2kga2hpIGFuaCBIYWkgY2FuIG1v bmV5IGRlIHh1IA0KbHkgdnUgZ2kgdGhpIGNoaSBjYW4gYWxvIGNobyBkYW4gZW0gVGFtIGxhIGNv IHRpZW4gZGUgY2hheSBuZ2F5LiBOYXkgYmF0IGRvbmcgc2FuIGR1bmcsIA0KZW0gVGFtIGRhbmcg Y2h1YW4gYmkgbGVuIHRob3Qgdmkgbm8gbmdhbiBoYW5nIGtob25nIGNvIG5ndW9uIHRyYSwgY2h1 YSBiaWV0IGFuaCBIYWkgDQpjbyBjb24gZGUgdHUgdGhhbiB0aW4gbmFvIGtoYWMgY29uZyBuYXAg bmhhbSBsbyBjaG8gZGFuIGFuaCBxdWEgY29uIGJpIGN1YyBuYXkga2hvbmcuIENodW5nIHRhIGNo byB4ZW0uIA0KDQpodHRwOi8vdHJhbmRvbmdjaGFuLmJsb2dzcG90LmNvbS8yMDA4LzEyL3ZpZXQt bmFtLWNoby1jaGltLXh1b25nLXZ1LWNhdS1jYW4tdGhvLmh0bWwgVERDIHBvc3RlZCBieSBUcmEg VHUgRG8gDQoNClZJRVQgTkFNIENITyBDSElNIFhVT05HIFZVIENBVSBDQU4gVEhPIFNBTyBOSEFU IEtIT05HIENITyBDSElNIFZVIFBDSSANCg0KQ3VvaSB0dWFuIHRydW9jIFRodSBUdW9uZyBEdW5n IHRpZXAgY3V1IFRodSBUdW9uZyBGdWt1ZGEgZGUgdGh1eWV0IHBodWMgTmhhdCB0aWVwIA0KdHVj IGNhcCBPREEgYmF0IHRoYW5oLiBEZW4gaG9tIHF1YSB0aGkgQ2h1IFRpY2ggbnVvYyBUcmlldCBw aGFpIHJhIHRheSwgY3VuZyB0aGF0IGJhaSANCm5vdC4gTmdoZSBub2kgcGhpYSBOaGF0IGRvaSBo b2kgbmhpZXUgbGFtLCBraG9uZyBjaGkgbmh1bmcgcXV5ZW4gbG9pIGtpbmggdGUgdmEgY2hpbmgg dHJpIA0KbWEgY29uIGJ1b2MgcGhhaSBkdWEgdnUgdmllYyBQQ0kgcmEgYW5oIHNhbmcgdG9pIGN1 bmcuIFhlbSBjYWkgY2FjaCBtYSBvbmcgVHJpZXQgbm9pIA0Kdm9pIG9uZyBGdWt1ZGEgbmh1IGR1 b2kgZGF5LCBjaGFuZyBiaWV0IGxhIGRhbmcgdHJhY2ggaGF5IGRhbmcgdGh1b25nOiANCiJUcm9u ZyB2dSBjYXUgQ2FuIFRobywgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGN1YSBWTiB2YSBOaGF0IEJh biBkYSBob3AgdGFjIGRpZXUgdHJhIA0KbmdoaWVtIHR1YywgZHVhIHJhIGR1b2MgY2FjaCBnaWFp IHF1eWV0IGhvcCB0aW5oLCBob3AgbHkuIERvaSB2b2kgdnUgUENJLCBWTiBzZSB0aWVwIHR1YyAN CnBob2kgaG9wIGNoYXQgY2hlIHZvaSBOaGF0IEJhbiBkZSBzb20gbGFtIHJvIGNhYyBuZ2hpIHZh biwgeHUgbHkgdnUgdmllYyBuZ2hpZW0gbWluaCwgDQpkdW5nIHBoYXAgbHVhdC4iIENodSB0aWNo IG51b2MgdGluIHR1b25nIHN1IGhvcCB0YWMgZ2l1YSBoYWkgbnVvYyB0cm9uZyB2aWVjIGxhbSBy byB2dSANClBDSSBzZSBnaXVwIHF1YW4gaGUgaHV1IG5naGkgdmEgaG9wIHRhYyBnaXVhIGhhaSBu dW9jIG5nYXkgY2FuZyB0aGVtIGJlbiBjaGF0LiAodHJpY2ggdGluIHR1IFRUWFZOKQ0KDQpOb2kg a2lldSBuYXkgdGhpIGtoYWMgZ2kgYmFvIHRvaSBkYSBjaG8gY2hpbSB4dW9uZyB2dSBjYXUgQ2Fu IFRobyBkZSBnaXUgZ2luIG1vaSBxdWFuIA0KaGUgdG90IGRlcCBnaXVhIDIgbnVvYywgc2FvIGNh YyBvbmcga2hvbmcgY2hvIGNoaW0gdnUgUENJIGRlIGdpdSBxdWFuIGhlIHRvdCBkZXAgdHVvbmcg DQp0dS4gRGFuIE5oYXQgdGhpIHBoYW4gdW5nIG1hbmggdm9pIGNoaW5oIHBodSBjdWEgaG8gdmUg dnUgUENJLCBjb24gZGFuIFZOIHRoaSBuaGFuIA0KdGllbiBkZW4gYnUgeG9uZyBpbSByZSwgbWEg dGllbiBuYXkgY3VuZyBjb24gYmkgdGhhbSBuaHVuZyBudWEgZGF5IG5oZS4gVG9pIHF1YSBuZXUg YmEgDQpjb24gY28geGVtIHRob2kgc3UgdHJlbiBWVFYgdGhpIHNlIHRoYXkgY2FjaCBkdWEgdGlu IGN1YSBjYWkgZGFpIFRydXllbiBoaW5oIFRydW5nIFVvbmcgDQpuYXkgdmUgY3VvYyB0aWVwIGtp ZW4gY3VhIG9uZyBUcmlldCB2b2kgb25nIEZ1a3VkYSB0aGkgc2UgdGhheSByYW5nIERhbmcgdGEg YmUgdGFjIGRlbiANCnRoZSBuYW8gcm9pLiBDbyBwaGF0IHRoYW5oIHZpZW4gZGFuIHRpbjogIkNo dSB0aWNoIG51b2MgdGllcCBjdXUgVGh1IHR1b25nIEZ1a3VkYSwgaGllbiANCmRhbmcgbGEgbW90 IGhhIG5naGkgc2kgY3VhIE5oYXQsIG5ndW9pIGNvIGFuaCBodW9uZyByYXQgbG9uIHRyb25nIGNo aW5oIHBodSBOaGF0Li4uIi4gVmEgDQpzYXUgZG8gbGEgYmFuIHRpbiBkdW9jIGtldCByYW5nIG5n YWkgRnVrdWRhIGh1YSBzZSB4ZW0geGV0IG5vaSBsYWkgT0RBIGNobyBWTi4gUGhhaSBsYSANCm5o YW4gdmF0IHF1YW4gdHJvbmcgbmh1IHRoZSB0aGkgbG9pIGh1YSBtb2kgY28gdGhlIGR1bmcgZGUg dHJhbiBhbiBkYW4gY2h1bmcgZHVvYyBjaHUuDQpOaGF0IGRhbmcgZ2hpIGRpZW0gdm9pIGRhbiBW aWV0IE5hbSBnaGUgdGhhdC4gR2lvIGhvIG11b24gZ2kgbWEgY2hhIGR1b2MuIA0KDQpodHRwOi8v dHJhbmRvbmdjaGFuLmJsb2dzcG90LmNvbS8yMDA5LzAxL21vdC1zby10aW4tdmFuLWFuZy1jaHUt eS5odG1sIER1b2MgZGFuZyBib2kgVHJhIFR1IERvIHZhbyBsdWMgMjI6NTUgKDAxLzIwMDkpIA0K DQpNb3Qgc28gdGluIHZhbiBkYW5nIGNodSB5ICh2dSBQQ0kgdmEgdmllYyBpbiB0aWVuKQ0KDQpW ZSB2dSBhbiBQQ0ksIE5oYXQgZGFuZyBnYXkgc3VjIGVwIHJhdCBuYW5nIGxlbiBVQk5EIFRQLiBI Q00gYmFuZyBjYWNoIHZpZW4gZGFuIA0KdmFvIG1vdCBkaWV1IGtob2FuIHRyb25nIGhvcCBkb25n IGNhcCB2b24gT0RBLCBub2kgcmFuZyBuZXUgY28gZGF1IGhpZXUgcm8gcmV0IChjaHVhIA0KY2Fu IGRlbiBiYW5nIGNodW5nKSB2ZSB2aWVjIHRoYW0gbmh1bmcgaGF5IGNvIHRpbmggc3UgZHVuZyB0 aWVuIHZheSB1dSBkYWkga2hvbmcgZHVuZyANCnlldSBjYXUgdGhpIHBoaWEgTmhhdCBjbyBxdXll biB5ZXUgY2F1IHBoaWEgVmlldCBOYW0gaG9hbiB0cmEgdm9uIHZheSBuZ2F5IGxhcCB0dWMgbWEg DQpraG9uZyBwaGFpIGNobyBkZW4gaGV0IGhhbi4gQ29uIHNvIGR1b2MgdGluaCB0b2FuIGxlbiBk ZW4gaGFuZyB0eSBVU0QgbWEgTmhhdCBub2kgDQpyYW5nIGRhbmcgY2FuIG5oYWMgdmllYyB5ZXUg Y2F1IFZOIHBoYWkgaG9hbiB0cmEgbmdheS4gVmllYyBuYXkgZGFuZyBsYW0gdGhhbmggcGhvIA0K SENNIHJvaSBib2ksIFRXIGN1bmcgY2h1YSBiaWV0IHBoYWkgY2FuIHRoaWVwIHRoZSBuYW8uDQoN ClRyb25nIGtoaSBkbywgb25nIExlIFRoYW5oIEhhaSBnYW4gbmh1IGRhIGR1b2Mga2hhbmcgZGlu aCBsYSBraG9uZyBiaSBsdWFuIHRvaSBnaSANCm5naGllbSB0cm9uZyB0cm9uZyBEYW5nIGRlIGNv IHRoZSBkYW4gZGVuIGJpIHh1IGx5IGhpbmggc3UuIEhvaSBuZ2hpIFRXIDkgdnVhIHJvaSANCmto b25nIHJhIGR1b2MgcXV5ZXQgZGluaCBreSBsdWF0IG9uZyB0YSB2ZSB0b2kgdGhpZXUgdGluaCB0 aGFuIHRyYWNoIG5oaWVtIGRlIGNvIHRoZSBtbyANCmR1b25nIGNobyB2aWVjIGt5IGx1YXQgdmEg dGh1eWVuIGNodXllbiB4dW9uZyBjYWMgdmkgdHJpIHRoYXAgaG9uIGhpZW4gbmF5LCBjaG8gZHUg bGEgY28gDQptb3QgbmhvbSBraG9uZyBuaG8gZ2F5IHN1YyBlcCBidW9jIHRvaSBvbmcgdGEgdHJv bmcgaG9pIG5naGkuIFZpZWMgdGhheSB2aSB0cmkgQmkgdGh1IA0KdGhhbmggdXkgaGllbiBuYXkg Y3VhIG9uZyB0YSBjdW5nIGRhbmcgZ2FwIG5oaWV1IGtobyBraGFuIHZpIGNodWEgdGltIHJhIGNo dWMgdnUgZ2kgDQp0dW9uZyB4dW5nIHZvaSB2aSB0aGUgVXkgdmllbiBCQ1QgY3VhIG9uZyB0YSBo aWVuIG5heS4gTmhvbSBjaG9uZyBkb2kgb25nIHRhIGhpZW4gbmF5IA0KdmFuIG5vaSByYW5nIHNl ICJjaGllbiBkYXUiIGRlbiBjdW5nIGRlIGhhIGJlIG9uZyB0YSwgdHJvbmcga2hpIGRvIG9uZyB0 YSB0dXllbiBibyB2b2kgDQoiZGFuIGVtIiBsYSBuaHVuZyBkYWkgZ2lhIGNodXllbiBraW5oIHRh aSBjaG8gb25nIHRhIHJhbmcgInllbiB0YW0sIHZ1bmcgbmh1IGJhbiB0aGFjaCIgDQp2aSBvbmcg dGEgbGllbiBxdWFuIGRlbiBoYXUgaGV0IG5oYW4gdmF0IHRvIG5oYXQuDQoNCk1vdCBuZ3VvbiB0 aW4gY2hpbmggeGFjIGNobyBiaWV0IHJhbmcgdHJvbmcgNyBuZ2F5IHF1YSwgTmdhbiBoYW5nIE5o YSBOdW9jIGRhIGNobyANCnZhbyBsdXUgdGhvbmcgMjAgbmdoaW4gdGkgZG9uZyB0aWVuIG1hdCBt b2kgaW4sIGNvbmcgdm9pIGNhYyBjaGluaCBzYWNoIGdpYW0gbGFpIHN1YXQgdGllcCANCnRoZW8g bnVhLCBzZSBsYW0gdG9uZyBjdW5nIHRpZW4gdHJvbmcgdm9uZyAzIHRoYW5nIHRvaSB0YW5nIGxl biBob24gMTAwIG5naGluIHRpIGRvbmcuIA0KQ2h1eWVuIGdpYSBjdW5nIGNhcCB0aW4gbmF5IGNo byBiaWV0IHZvaSBsdW9uZyB0YW5nIGN1bmcgdGllbiBsb24gbmh1IHRoZSBuYXkgbWEgdHJvbmcg DQpsdWMga2luaCB0ZSBkYW5nIHN1eSBnaWFtIG1hbmggc2UgZGFuIHRvaSBtb3Qgc3UgbWF0IGdp YSBuYW5nIG5lIHRpZW4gZG9uZyB0cm9uZyB2b25nIDYgDQp0aGFuZyB0b2kuDQoNCmh0dHA6Ly90 cmFuZG9uZ2NoYW4uYmxvZ3Nwb3QuY29tLzIwMDlfMDNfMDFfYXJjaGl2ZS5odG1sICBEdW9jIGRh bmcgYm9pIFRyYSBUdSBEbyB2YW8gbHVjIDAwOjQ3DQoNClRvbmcgYmkgdGh1IE5vbmcgRHVjIE1h bmggdmEgT0RBIE5oYXQgIA0KDQpUQlQgTm9uZyBEdWMgTWFuaCBzYXAgZGkgTmhhdC4gRGF5IGxh IHlldSBjYXUgcmF0IGN1b25nIHF1eWV0IGN1YSBOaGF0IHRydW9jIGtoaSANCnR1eWVuIGJvIG5v aSBsYWkgT0RBIGhvaSB0dWFuIHRydW9jLiBQaGlhIE5oYXQgZGEga2hvbmcgY2hhcCBuaGFuIGRv biB0aWVwIFRodSBUdW9uZyANCnRoZW8gbmdoaSBsZSBjaGluaCB0aHVjIG5lbiBvbmcgRHVuZyBw aGFpIGh1eSBibyBjaHV5ZW4gZGkgTmhhdCBkdSBraWVuIHR1IGN1b2kgdGhhbmcgDQpHaWVuZy4g VGhheSB2YW8gZG8gTmhhdCBkZSBuZ2hpIGd1aSBtb3QgQm8gVHJ1b25nIGRhaSBkaWVuIENoaW5o IHBodSBkZSBjYW0ga2V0IA0Kbmh1bmcgdmFuIGRlIGtpbmggdGUsIHZhIHNhdSBkbyBwaGFpIGxh IFRCVCB2aWVuZyB0aGFtIGRlIGNvIG5odW5nIGNhbSBrZXQgY2hpbmggdHJpLiANCk9uZyBQaGFt IEdpYSBLaGllbSwgUGhvIFRodSBUdW9uZyBraWVtIEJvIFRydW9uZyBOZ29haSBnaWFvIGRhIGto ZW8gbGVvIHRyYW5oIG5lIA0KdHJhY2ggbmhpZW0gZGkgTmhhdCwgb25nIFZvIEhvbmcgUGh1YyBw aGFpIHRodWMgaGllbiBuaGllbSB2dSBuYXkuDQoNCk5odW5nIGNhbSBrZXQgY3VhIENoaW5oIFBo dSB2ZSBxdXllbiBsb2kga2luaCB0ZSBjaG8gTmhhdCBtYSBvbmcgUGh1YyBjaHV5ZW4gZGVuIGRh IA0KbGFtIE5oYXQgdGhvYSBtYW4gdmEgcmEgdHV5ZW4gYm8gbm9pIGxhaSBPREEgY2hvIFZOLCBu aHVuZyBobyBuaGFuIG1hbmggcmFuZyB0aWVuIHNlIA0KY2hpIGdpYWkgbmdhbiBraGkgbmFvIG5o dW5nIGNhbSBrZXQgY2hpbmggdHJpIGR1b2MgdGh1YyBoaWVuLiBDaHVhIHJvIG5odW5nIGNhbSBr ZXQgDQpjaGluaCB0cmkgbWEgTmhhdCBkb2kgaG9pIGxhIGdpIG5odW5nIG5vIGRhbmcgbGFtIGNo byBCQ1QgcmF0IGJvaSByb2kuIE5oYXQgY2hvIGJpZXQgaG8gDQpzYW4gc2FuZyB0dXllbiBibyBj aGFtIGR1dCBPREEgYmF0IGt5IGx1YyBuYW8gbmV1IFZOIGtob25nIHRodWMgaGllbiBkdW5nIGNh YyBjYW0gDQprZXQuIERhbmcgdmEgTmhhIE51b2MgZGEgY2hhcCBuaGFuIHRyYSBuaHVuZyBjYWkg Z2lhIHJhdCBsb24gZGUgY28gZHVvYyBsb2kgdHV5ZW4gYm8gDQpub2kgbGFpIHZpZW4gdHJvIGN1 YSBOaGF0IGRlIHRyYW4gYW4gZGFuIGNodW5nLCBuYXkgdmkgc28geHVhdCBnaSBtYSBOaGF0IGRv aSB5IHRoaSBjaGFjIA0KY2hhbiByYW5nIHNlIGdheSByb2kgbG9hbiB0cm9uZyBudW9jLiBLaG9u ZyBiaWV0IG5odW5nIGNhbSBrZXQgY2hpbmggdHJpIE5oYXQgZG9pIGhvaSBsYSANCmdpIG5odW5n IGNoYWMgY2hhbiBwaGFpIGxhIG5odW5nIGdpIHJhdCB0byB0YXQgdmkgTmhhdCByYXQgdHUgdGlu IG5oYWMgbGFpIG5oaWV1IGxhbiB2b2kgcGhpYSANClZpZXQgTmFtIGxhIHRhdCBjYSBuaHVuZyBu aGEgdGFpIHRybyBraGFjIGR1IGRhIGNhbSBrZXQgY2hvIFZOIHRyb25nIG5hbSAyMDA5IG5odW5n IA0KZGV1IGRhbmcgY2hvIHF1eWV0IGRpbmggY3VhIE5oYXQgZGUgaGFuaCBkb25nIHR1b25nIHR1 Lg0KDQpPbmcgTWFuaCBkYW5nIHRydW5nIHRyaW5oIHRpbSBjYWNoIG5lIHRyYW5oIG5odW5nIGNo dWEgYmlldCBjbyB0aW0gZHVvYyBjYWNoIGdpIGhheSANCmtob25nIHZpIGFwIGx1YyBraG9uZyBj aGkgZGVuIHR1IGJlbiBuZ29haSBtYSBjYSBiZW4gdHJvbmcuIEx5IGRvIGxhIGNobyBkdSBub2kg Ym8gYmkgDQpjaGlhIHJlIG5hbmcgbmUgbmh1bmcgdGF0IGNhIGRldSBjbyBtb3QgcXV5ZW4gbG9p IGNodW5nIGxhIHN1IHRvbiB0YWkgY3VhIERhbmcgZGUgYmFvIHZlIA0KZGFjIHF1eWVuIGNhIG5o YW4sIGRvIHZheSBvbmcgTWFuaCBraG8gbG9uZyB0cmFuaCBuZSB0cnVvYyBkb2kgaG9pIGN1YSBu aHVuZyBuZ3VvaSANCiJkb25nIGNoaSIuIE1vdCB2aSB0dW5nIGxhIHRybyBseSBjaG8gb25nIE1h bmggdmFvIGtob2EgdHJ1b2MgY2hvIGJpZXQgb25nIE1hbmggdGFtIA0Kc3UgcmFuZyBkYW5nIHJh dCBib2kgcm9pLCB2aSBuZXUgeWV1IGNhdSBjdWEgTmhhdCBjbyBnaSBsaWVuIHF1YW4gZGVuIHN1 IHF1eWVuIGxvaSBjdWEgDQpEYW5nIHRoaSBjaGFjIGNoYW4gb25nIGF5IGtob25nIGRhbSBjbyB5 IGtpZW4gbGFtIHZ1aSBsb25nIE5oYXQsIG1hIG5ldSBuaHUgdGhlIHRoaSBzZSANCmFuaCBodW9u ZyBkZW4gZ2lhaSBuZ2FuIE9EQSAtIG1hIGNhaSBuYXkgY3VuZyBkZSBkb2EgZGVuIHN1IHRvbiB2 b25nIGN1YSBEYW5nLiBNb3QgDQpjaHV5ZW4gZGkgbGFuaCBpdCBkdSBuaGlldSBjaG8gc3Ugbmdo aWVwIGN1YSBvbmcgdGEuIA0KDQpDaGluaCBwaHUgZHVvaSBzdSBsYW5oIGRhbyBjdWEgRGFuZyBk YSBwaGFpIGRhcCB1bmcgbmh1bmcgeWV1IGNhdSBnYW4gbmh1IG1lbmggbGVuaCANCmN1YSBOaGF0 OiBiYXQgSHV5bmggTmdvYyBTeSBwaGFpIGRpZW4gcmEgdHJvbmcgbHVjIFRoYWkgdHUgTmhhdCBk ZW4gVk4sIGtob25nIGR1b2MgDQp0cmUgaG9uIGR1IGNoaSBtb3QgbmdheTsgTmhhdCBzZSBkdW9j IHF1eWVuIHNvIGh1dSB0dSA3NSUgZGVuIDEwMCUgY2FjIGRvYW5oIG5naGllcCANCnRyb25nIGNh YyBsaW5oIHZ1YyBjaHUgbHVjIG1hIHR1IHRydW9jIGRlbiBnaW8gY2hpIGNvIGRvYW5oIG5naGll cCBuaGEgbnVvYyBtb2kgZHVvYyANCnRoYW0gZ2lhIHZpIGx5IGRvIGFuIG5pbmggcXVvYyBnaWEg KG5odSB2aWVuIHRob25nLCBkYXUga2hpLCBkaWVuIGx1YywgLi4uLik7IHZpZWMgY28gcGhhbiAN CmhvYSBjYWMgZG9hbmggbmdoaWVwIG5oYSBudW9jIHRyb25nIGNhYyBsaW5oIHZ1YyBuYXkgdGhp IHBoaWEgTmhhdCBzZSBkdW9jIHV1IHRpZW4gbGEgDQpkb2kgdGFjIHZhIGNvIGRvbmcgY2hpZW4g bHVvYy4gQ2hpbmggUGh1IGRhIGNoaSB0aGkgc3VhIGRvaSBoYW5nIGxvYXQgY2FjIG5naGkgZGlu aCwgdGhhbSANCmNoaSBzdWEgbHVhdCAidHJpbmgiIFF1b2MgSG9pIG5oYW0gdGFvIGNvIHNvIGx1 YXQgZGUgdGh1YyBoaWVuIGNhYyBjYW0ga2V0IGNobyBOaGF0LiBEdSANCnRoYW8gbHVhdCB2aWVu IHRob25nIGNobyBwaGVwIHRhdCBjYSBjYWMgdGhhbmggcGhhbiBraW5oIHRlIGtob25nIHBoYW4g YmlldCBzbyBodXUgZHVvYyANCnF1eWVuIHRoYW0gZ2lhIHZhbyB2aWVjIGtpbmggZG9hbmggaGEg dGFuZyB2aWVuIHRob25nICh0cnVvYyBnaW8gcGhhaSBsYSBkb2FuaCBuZ2hpZXAgDQpuaGEgbnVv YyBob2FjIG5oYSBudW9jIGNoaWVtIGNvIHBoYW4gY2hpIHBob2kpLCBoYXkgZGUgeHVhdCBjaGlh IHRhY2ggdGFwIGRvYW4gRVZOIA0KdGhhbmggbmh1bmcgZG9uIHZpIG5obyBob24gbW9pIG5naGUg Y3UgdHVvbmcgbGEgZGUgdG90IGhvbiBjaG8gZGF0IG51b2Mgbmh1bmcgZG9uZyANCmx1YyBjdWEg Y2h1bmcgdGh1YyByYSBsYSBkZSBkYXAgdW5nIGNhbSBrZXQgdm9pIE5oYXQuIA0KDQpRdXllbiBs b2kga2luaCB0ZSB0aGkgZGUgZGFuZyBiYW4gbmh1bmcgcXV5ZW4gbG9pIGNoaW5oIHRyaSBzZSBk b2kgY2hhYyB0aGUgbmFvIHRoaSBjaHVhIA0Kcm8gTmhhdCBzZSBkYW5oIG51b2MgY28gdGllcCB0 aGVvIHJhIHNhby4gTmh1bmcgdG9pIGJheSBnaW8sIGJhbmcgbnVvYyBjbyBPREEsIE5oYXQgZGEg DQpkb2F0IGR1b2Mgbmh1bmcgcXVhbiBjbyBxdWFuIHRyb25nIHZhIGNoaWVtIGR1b2MgbW90IHRo ZSBjbyBjaHUgZG9uZy4gTW90IHRpbmggdGhlIA0KdGhhdCBkYW5nIGJ1b24gY2hvIGRhbiB0b2Ms IGR1bmcgbGEgdGhvaSBkYWkgdG9hbiBjYXUgaG9hLCBuZ3VvaSB0YSBraG9uZyBjYW4gZHVuZyBk ZW4gDQpzdW5nIGRhbiBkZSBtbyByb25nIHRodW9jIGRpYS4gWGVtIFRWIGhvbSBxdWEgdmEgaG9t IG5heSB0aGF5IGhvIHRvYW4gY2EgbmdvaSBjYWMgDQpuaGEgZGF1IHR1IE5oYXQsIGNhIG5nb2kg Vk4gbGEgZGlhIGRpZW0gZGF1IHR1IGhhcCBkYW4sIG1hIGR1bmcgbGEgaGFwIGRhbiBxdWEgZGkg Y2h1Lg0KDQpodHRwOi8vdHJhbmRvbmdjaGFuLmJsb2dzcG90LmNvbS8yMDA5LzAyL2NhYy1uaGEt YmFvLWhheS1jby1sZW4uaHRtbCAyLzIwMDkgRHVvYyBkYW5nIGJvaSBUcmEgVHUgRG8gdmFvIGx1 YyAxNzozNiANCg0KVGluIGxpZW4gcXVhbiB0b2kgdnUgUENJIA0KDQpEYWkgVHJ1eWVuIGhpbmgg VmlldCBOYW0gVlRWLCBtb3QgZGFpIGN1YSB0cnVuZyB1b25nIGRhaSBkaWVuIGNobyBxdW9jIGdp YSwgY2FjaCBkYXkgDQoyIGhvbSwgY2h1b25nIHRyaW5oIHRob2kgc3UgN2ggdG9pIChiYW4gdGlu IHF1YW4gdHJvbmcgbmhhdCB0cm9uZyBuZ2F5KSwgZHVhIHRpbiBUaHUgDQpUdW9uZyB0aWVwIDEg RGFpIHN1IGh1dSBuZ2hpIGN1YSBOaGF0LCBtb3QgY2h1YyB2dSB0dW9uZyB0cnVuZyBkZSBsYW0g dHUgdGhpZW4sIGNoYW5nIA0KY28gY2h1dCBxdXllbiBoYW4gaGF5IHR1IGNhY2ggZGFpIGRpZW4g cXVvYyBnaWEgbmFvLiBUaHUgVHVvbmcgZGEgcGhhaSB0aWVwIG1vdCBuZ3VvaSANCm5odSB0aGUg dGhpIHRoYXkgY2FpIHRoZSBjdWEgcXVvYyBnaWEgeHVvbmcgdGhhcCBkZW4gdGhlIG5hbyByb2ks IGF5IHZheSBtYSBjYWkgVlRWIG5heSANCmxlbiBnaW9uZzogIlRodSB0dW9uZyB5ZXUgY2F1IE5o YXQgbmhhbmggY2hvbmcgbm9pIGxhaSBjYXAgdm9uIE9EQSB0cm9uZyB0aGFuZyA0IA0KbmF5Li4u Li4iLiBDaGFuZyBoaWV1IFRodSBUdW9uZyBkYW5nIGdpdW9uZyBvYWkgdm9pIE5oYXQgaGF5IGdp dW9uZyBvYWkgdm9pIGRhbi4gDQpUcm9uZyBraGkgZG8gdGhpIHRpbiB0dWMgdHUgaGF1IHRydW9u ZyBjaG8gYmlldCBDaGluaCBwaHUgZGFuZyBwaGFpIHh1b25nIG51b2MsIGh1YSANCmhlbiwgbmFu IG5pLCBjYW0ga2V0IG5odW5nIE5oYXQgdmFuIGNodWEgdHJhIGxvaSBkb25nIHkgdG9pIGtoaSBu YW8gVk4gbGFtIHJvIHZ1IFBDSS4gDQpUaGFpIHR1IE5oYXQgZ3VpIGRlbiBtb3QgdGhvbmcgZGll cCByYXQgcm8gcmFuZyBsYSBjaG8gZHUgSG9hbmcgZ2lhIE5oYXQga2hvbmcgdGhhbSANCmdpYSB2 YW8gY2hpbmggdHJpIHZhIGNvbmcgdmllYyBjdWEgQ2hpbmggcGh1IE5oYXQsIG5odW5nIEhvYW5n IGdpYSBOaGF0IHJhdCBoaWV1IHRpbmggDQpjYW0gdmEgdGhhaSBkbyBjdWEgZGFuIE5oYXQuIE5n dW9pIGRhbiBOaGF0IHNlIGtob25nIGJhbyBnaW8gdGhhIHRodSBjaG8gQ2hpbmggcGh1IA0KbmV1 IHRpZXAgdHVjIGRlbSB0aWVuIGRvbmcgdGh1ZSBjdWEgZGFuIE5oYXQgdGFpIHRybyBjaG8gbm9p IG5hbyBtYSBiaSB0aGFtIG5odW5nIA0Kbmh1bmcga2hvbmcgeHUgbHkgcm8gcmFuZy4gT25nIGN1 bmcgYmF5IHRvIHJhbmcgdGhlbyBvbmcgQ2hpbmggcGh1IE5oYXQgc2Uga2llbiBxdXlldCANCnll dSBjYXUgdHJhIGxhaSBuaHVuZyBraG9hbiBkYSB0YWkgdHJvIG5odW5nIGJpIHRoYW0gbGFtLiBU aGUgdmF5IG1hIGJhbiB0aW4gY3VhIFZUViANCmhvbSByb2kgbGFtIGNobyBtb2kgbmd1b2kgY3Ug dHVvbmcgVmlldCBOYW0gZGFuZyB0aGFuZyB0aGUuIA0KDQpIdXluaCBOZ29jIFN5IGRhbmcgYmkg YmF0IHZhbyBsdWMgVGhhaSB0dSBOaGF0IHZhbyBWaWV0IE5hbSwgY2h1YSBiaWV0IGxhIGNvIG1v aSBxdWFuIA0KaGUgZ2ksIG5odW5nIG5oaW4gaGllbiB0dW9uZyB0aGkgdGhhdCBsYSBuaHVjIG5o YSwgY2hhbmcga2hhYyBnaSBobyB2YW8gZGF0IG51b2MgbmF5IHJhIGxlbmguIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDIvMjAxMDEwMTUwODQ0MjguYXNw eCAxNS8xMC8yMDEwIDg6NDQgDQoNClRQIEhDTTogSHV5bmggTmdvYyBTaSBiaSB4ZXQgeHUgdmUg dG9pICJuaGFuIGhvaSBsbyIgKDE1LjEwKSANCg0KKiBCYSBuaGFuIGNodW5nIG5ndW9pIE5oYXQg dmFuZyBtYXQgDQoNCiogVHJ1eSB0byBIdXluaCBOZ29jIFNpIG8ga2h1bmcgaGluaCBwaGF0IGNv IG11YyBhbiB0dSBoaW5oIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdl cy8yMDEwMzQvMjAxMDA4MTYwMTE3MTYuYXNweCBMZSBOZ2EgMTYvMDgvMjAxMCAxOjE3IA0KDQpL ZXQgbHVhbiBkaWV1IHRyYSB2aWVjIG5oYW4gaG9pIGxvIGN1YSBvbmcgSHV5bmggTmdvYyBTaSAg DQogIA0KKiBUYWNoIGhhbmggdmkgNiBsYW4gbmhhbiB0aWVuIGNvbiBsYWkgdGhhbmggdnUgYW4g a2hhYyBkZSB0aWVwIHR1YyBkaWV1IHRyYSANCg0KTmh1IFRoYW5oIE5pZW4gZGEgZHVhIHRpbiwg Q28gcXVhbiBDU0RUIC0gQm8gQ29uZyBhbiBjbyBrZXQgbHVhbiBkaWV1IHRyYSwgY2h1eWVuIA0K aG8gc28gc2FuZyBWaWVuIEtTTkQgdG9pIGNhbyBkZSBuZ2hpIHRydXkgdG8gb25nIEh1eW5oIE5n b2MgU2ksIG5ndXllbiBHaWFtIGRvYyANCkJhbiBRdWFuIGx5IGR1IGFuIChCUUxEQSkgZGFpIGxv IERvbmcgLSBUYXkgVFAuSENNLCB2ZSBoYW5oIHZpIG5oYW4gaG9pIGxvIA0KMjYyLjAwMCBVU0Qg Y3VhIENvbmcgdHkgdHUgdmFuIHF1b2MgdGUgVGhhaSBCaW5oIER1b25nIChQQ0kgTmhhdCBCYW4p LiANCg0KVGhlbyBjbyBxdWFuIGRpZXUgdHJhLCBkZSB0aWVuIGhhbmggZGF1IHRoYXUgZ29pIHRo YXUgdHUgdmFuIHRoaWV0IGtlLCBCUUxEQSBEYWkgbG8gDQpEb25nIC0gVGF5IG1vaSA1IGNvbmcg dHkgZ29tOiBQQ0kgKENvbmcgdHkgdHUgdmFuIHF1b2MgdGUgVGhhaSBCaW5oIER1b25nKTsgTmlw cG9uIA0KS29pZTsgSmFwYW4gT3ZlcnNlYXMgQ29uc3VsdGFudHMgQ28sIEx0ZDsgTmlwcG9uIEVu Z2luZWVyaW5nIENvbnN1bHRhbnRzIENvLCBMdGQgdmEgDQpZYWNoaW8gRW5naW5lZXJpbmcgQ29u c3VsdGFudHMgQ28sIEx0ZCB0aGFtIGdpYSBkYXUgdGhhdS4gS2V0IHF1YSwgUENJIGRhIHRydW5n IHRoYXUuIA0KDQoiRHVuZyB0aWV0IGxvIHZpZWMgbmF5IHZvaSBhaSIgDQoNCktldCBsdWFuIGRp ZXUgdHJhIGNobyBiaWV0LCB0dSBuZ3VvbiB0YWkgbGlldSBwaGlhIE5oYXQgY3VuZyBjYXAsIGNv IHF1YW4gZGlldSB0cmEgcGhhdCANCmhpZW4sIGtoaSBjaHVhbiBiaSB0aGFtIGdpYSBkYXUgdGhh dSBnb2kgdGhhdSB0dSB2YW4gdGhpZXQga2UgZHUgYW4gRGFpIGxvIERvbmcgLSBUYXksIA0KUENJ IGNvIHkgZGluaCBsaWVuIGRvYW5oIHZvaSBOaXBwb24gS29pZS4gTmh1bmcgYmlldCBCUUxEQSBr aG9uZyBtdW9uIGNhYyBuaGEgDQp0aGF1IGxpZW4gZG9hbmggbmVuIFBDSSBkb2MgbGFwIHRoYW0g Z2lhIHRoYXUuIE5oYW0gY2FuaCB0cmFuaCB2b2kgY2FjIGRvbiB2aSBraGFjLCBvbmcgDQpTYWth c2hpdGEgSGFydW8gKHRoYW5oIHZpZW4gQmFuIGdpYW0gZG9jLCBUcnVvbmcgcGhvbmcgY2FjIGR1 IGFuIGdpYW8gdGhvbmcgY3VhIFBDSSkgDQpiYW4gYmFjIHZvaSBUcnVvbmcgdmFuIHBob25nIGRh aSBkaWVuIFBDSSB0YWkgVk4gdGltIGNhY2ggdGllcCBjYW4gSHV5bmggTmdvYyBTaSBkZSANCmR1 YSBob2kgbG8uIFNhdSBkbywgYmlldCBOZ3V5ZW4gVGhhbmggSG9hbmcsIFRvbmcgZ2lhbSBkb2Mg Tm9yZm9saywgbGEgbmd1b2kgY28gbW9pIA0KcXVhbiBoZSB2b2kgSHV5bmggTmdvYyBTaSBxdWEg ZGFuaCBnb2xmIChjYWMgcXVhbiBjaHVjIFBDSSB0aGkgaGF5IHRydSBuZ3UgbyBraGFjaCANCnNh biBOb3Jmb2xrIG5lbiBiaWV0IEhvYW5nKSwgS29uZG8gTWFzYW1pIChHaWFtIGRvYyBkdSBhbiBD YWkgdGhpZW4gbW9pIHRydW9uZyANCm51b2MpIGRhIG5obyBvbmcgSG9hbmcgaGVuIGdhcCBvbmcg U2kuIEtob2FuZyB0aGFuZyAyLjIwMDEsIFNha2FubyBUc3VuZW8gKFRydW9uZyANCnZhbiBwaG9u ZyBkYWkgZGllbiBQQ0kgdGFpIFZOKSB2YSBLb25kbyBNYXNhbWkgZGEgY28gY3VvYyBnYXAgb25n IFNpIHRhaSBraGFjaCBzYW4gDQpOb3Jmb2xrIGRhdCB2YW4gZGUgImNoYXkiIGdvaSB0aGF1IHR1 IHZhbiB0aGlldCBrZSBuaHVuZyBvbmcgU2kga2hvbmcgdHJhIGxvaSBkbyBjbyANCkhvYW5nIG8g ZG8uIEtoaSBoYWkgbmd1b2kgY3VhIFBDSSBsZW4geGUgcmEgdmUgdGhpIG9uZyBTaSBnb2kgZGll biB0aG9haSBiYW8gZHVuZyB0aWV0IGxvIA0KdmllYyBuYXkgdm9pIGFpIHZhIGhlbiBnYXAgbmhh dSBvIG1vdCBub2kga2hhYy4gDQoNCkN1b2MgaGVuIHNhdSBkbyBkaWVuIHJhIHRhaSBxdWFuIGth cmFva2UsIG9uZyBTaSBkb2kgY2hpIDIwJSBnaWEgdHJpIGdvaSB0aGF1IGRlIGdpdXAgUENJIA0K dHJ1bmcgdGhhdS4gTmhpZXUgbGFuIG5nYSBnaWEsIGNoaSBwaGkgbmF5IGR1b2MgZ2lhbSB4dW9u ZyBjb24gMTAlLiBOaHVuZyBwaGlhIFBDSSANCmNobyByYW5nIGNoaSBwaGkgbmF5IHZhbiBxdWEg Y2FvIG5lbiBjaHVhIGNoYXAgdGh1YW4uIExvIHNvIG1hdCBkdSBhbiBraGkgb25nIFNpIHF1YSAN CmNhbmcsIFNha2FzaGl0YSBIYXJ1byBsaWVuIGxhYyB2b2kgUGhvIGNodSB0aWNoIEhEUVQsIFRy dW9uZyBwaG9uZyBjYWMgZHUgYW4gY3VhIFBDSSwgDQpkZSB4dWF0OiAiTmV1IGhhbmggZG9uZyBj dW5nIG5oYWMgdGhpIHNlIGtob25nIG5oYW4gZHVvYyBob3AgZG9uZyB2YSBuZXUgb25nIFNpIA0K a2hvbmcgZ2lhbSB0aGkgY3UgdGFtIHRob2kgY2hhcCBuaGFuIDEwJSIsIHZhIFNha2FzaGl0YSBI YXJ1byBuaGFuIGR1b2MgbGVuaDogIkN1IA0KbGFtIHRoZW8geSBkb2kgcGh1b25nIi4gDQoNClNh dSBuaGlldSBsYW4gdGh1b25nIHRoYW8sIG9uZyBTaSBraG9uZyBkb25nIHkgZ2lhbSwgY3VvaSBj dW5nIGdpYSAiY2hheSB0aGF1IiBjYSBoYWkgDQpiZW4gY2hhcCBuaGFuIGxhIDEwJS4gRG8gYmll dCBkZSB0cnVuZyBkdW9jIHRoYXUgY2FuIHBoYWkgY28gYmFuIHRpZXUgY2h1YW4gZGFuaCBnaWEg DQpjaGkgdGlldCBobyBzbyBkdSB0aGF1IGRlIGxhcCBobyBzbyBkdSB0aGF1IG5lbiBwaGlhIFBD SSBkZSBuZ2hpIG9uZyBTaSBjdW5nIGNhcCB0aG9uZyB0aW4gDQp2ZSBnb2kgdGhhdS4gT25nIFNp IGRvbmcgeSwgaGVuIG5nYXkgZ2lvIGRlbiBtb3Qga2hhY2ggc2FuIG8gVFAuSENNIHZhIG5obyBu Z3VvaSANCnF1ZW4gZG9jIGJhbmcgdGllbmcgQW5oIGNobyBTYWthbm8gVHN1bmVvIGdoaSBjaGVw LiANCg0KVGhhbmcgNi4yMDAxLCBQQ0kgdHJ1bmcgdGhhdSBkdSBhbiB0dSB2YW4gdGhpZXQga2Uu IE5nYXkgc2F1IGRvLCBTYWthbm8gVHN1bmVvIHZhIA0KU2FrYXNoaXRhIEhhcnVvIGJhbiBiYWMg bGljaCB0cmluaCBkdWEgdGllbiBjaG8gb25nIFNpLiBDdSB0aGUsIHNhdSBraGkgUENJIG5oYW4g dGllbiB0YW0gDQp1bmcgY3VhIGhvcCBkb25nIHR1IHZhbiB0aGlldCBrZSBzZSBkdWEgMS8zICh0 dW9uZyBkdW9uZyAzMDAuMDAwIFVTRCksIGRvdCB0aHUgaGFpIHNlIA0KZHVhIHNhdSBraGkgbmhh biB0aGFuaCB0b2FuIGhvcCBkb25nIGRvdCBkYXUgdGllbiwgZG90IHRodSBiYSBzYXUga2hpIG5o YW4gdGllbiB0aGFuaCANCnRvYW4gaG9wIGRvbmcgbGFuIDIuLi4gVG9uZyBjb25nIDEwJSBnaWEg dHJpIGhvcCBkb25nIGtob2FuZyA5MDAuMDAwIFVTRC4gDQoNCk5ndW9uIHRpbiBjdWEgVGhhbmgg TmllbiBjaG8gYmlldCBnaWEgZGluaCBvbmcgSHV5bmggTmdvYyBTaSB2dWEgbGllbiBsYWMgbmhv IHRoZW0gDQpsdWF0IHN1IFBoYW0gQ29uZyBVdCAoRG9hbiBsdWF0IHN1IFRQLkhDTSkgdGhhbSBn aWEgYmFvIGNodWEgY2hvIG9uZyBTaSB0cm9uZyB2dSBhbiANCm5heS4gVHJ1b2MgZGF5LCB0cm9u ZyBnaWFpIGRvYW4gZGlldSB0cmEsIGx1YXQgc3UgUGhhbiBUcnVuZyBIb2FpIHZhIGx1YXQgc3Ug UGhhbiBEdWMgDQpMaW5oIGN1bmcgZGEgZHVvYyBnaWEgZGluaCBvbmcgU2kgbmhvIHRoYW0gZ2lh IGJhbyB2ZSBxdXllbiBsb2kgY2hvIG9uZyBTaS4gDQoNCktldCBsdWFuIGRpZXUgdHJhIGN1bmcg bmV1IGNhYyB0YWkgbGlldSBwaGlhIE5oYXQgY3VuZyBjYXAgY29uIGNobyB0aGF5IHRoYW5nIDku MjAwMSwgDQpTYWthc2hpdGEgZ2FwIG9uZyBTaSBvIGtoYWNoIHNhbiBOZXcgV29ybGQgdmEgZGF0 IHZhbiBkZSBkdWEgaG9pIGxvIGRlIGR1b2MgaG9wIGRvbmcgDQp0dSB2YW4gZ2lhbSBzYXQgdmEg b25nIFNpIGRvaSAxNSUgZ2lhIHRyaSBob3AgZG9uZy4gRG8gZ2lhIHF1YSBjYW8gbmVuIFNha2Fz aGl0YSB4aW4gDQpkdW9jIGdpYW0geHVvbmcuIFNhdSBuaGlldSBsYW4gY28ga2UsIG9uZyBTaSBj aGFwIHRodWFuIGdpYW0geHVvbmcgY29uIDExJS4gVGhlbyBsb2kgDQpraGFpIGN1YSBvbmcgU2Fr YW5vIFRzdW5lbyB0aGkgc28gdGllbiAxMSUgdHVvbmcgZHVvbmcgMS43MDAuMDAwIFVTRC4gVGhl byBxdXlldCANCmRpbmggY3VhIENoaW5oIHBodSB0aGkgZ29pIHRoYXUgbmF5IHBoYWkgdG8gY2h1 YyBkYXUgdGhhdSBxdW9jIHRlIG5odW5nIG5nYXkgMTguMy4yMDAyLCANCkJRTERBIGNvIGNvbmcg dmFuIGRvIG9uZyBIdXluaCBOZ29jIFNpIGt5IGRlIG5naGkgVUJORCBUUC5IQ00geGVtIHhldCB0 cmluaCANCkNoaW5oIHBodSBwaGUgZHV5ZXQga2UgaG9hY2ggZGF1IHRoYXUgZ2lhaSBkb2FuIDEs IHRyb25nIGRvIGNvIG5vaSBkdW5nIGRlIG5naGkgY2hpIA0KZGluaCB0aGF1IGNobyBQQ0kuIFNh dSBkbywgVUJORCBUUC5IQ00sIGNhYyBibyBuZ2FuaCBkYSBjbyB2YW4gYmFuIGtpZW4gbmdoaSB2 YSANCkNoaW5oIHBodSBjaGFwIHRodWFuIGR1IGFuIG5heSBkdW9jIGNoaSBkaW5oIHRoYXUuIA0K DQpWaSBzYW8gY2hpIHRydXkgdG8gb25nIFNpIG5oYW4gaG9pIGxvIDI2Mi4wMDAgVVNEPw0KDQpL ZXQgbHVhbiBkaWV1IHRyYSBub2kgcm8gb25nIEh1eW5oIE5nb2MgU2kga2hvbmcgdGh1YSBuaGFu IGNvIHZpZWMgdGhvYSB0aHVhbiBkdWEgaG9pIA0KbG8gZGUgZHVvYyB0cnVuZyB0aGF1LiBPbmcg U2kgY2hpIGtoYWkgY28gcXVlbiBiaWV0IGNhYyBvbmcgSG9hbmcsIEtvbmRvIE1hc2FtaSwgDQpT YWthc2hpdGEgSGFydW8sIFNha2FubyBUc3VuZW87IGNvIGRlbiBraGFjaCBzYW4gTm9yZm9sayBu aHVuZyBraG9uZyBjbyB0aG9hIHRodWFuIA0KY2h1eWVuIGNoaSAxMCUgZGUgdHJ1bmcgdGhhdSBk dSBhbiB0dSB2YW4gdGhpZXQga2UuIFR1b25nIHR1LCBvbmcgU2kgY3VuZyBraGFpIGtob25nIA0K Z2FwLCBraG9uZyB0aG9hIHRodWFuIGNodXllbiBjaGkgMTElIGN1YSBob3AgZG9uZyB0dSB2YW4g Z2lhbSBzYXQuIA0KDQpEdSB2YXksIGNvIHF1YW4gZGlldSB0cmEgeGFjIGRpbmggY28gZHUgY28g c28ga2V0IGx1YW4gSHV5bmggTmdvYyBTaSBuaGFuIGhvaSBsbyANCjI2Mi4wMDAgVVNELiBDdSB0 aGUsIHRoZW8gbG9pIGtoYWkgY3VhIFNha2FubyBUc3VuZW8sIHRoYW5nIDQuMjAwMyBvbmcgU2kg eWV1IGNhdSANCnBoYWkgZHVhIHNvIHRpZW4gMjYyLjAwMCBVU0QuIFNha2FubyBUc3VuZW8gZ29p IGRpZW4gdGhvbmcgYmFvIGNobyBTYWthc2hpdGEgSGFydW8gDQpiaWV0LiBOZ2F5IDI4LjUuMjAw MywgU2FrYW5vIFRzdW5lbywgU2FrYXNoaXRhIEhhcnVvIHZhIFRha2FzdSBLdW5pbyBkZW4gTmdh biBoYW5nIA0KVG9reW8gTWl0c3ViaXNoaSBjaGkgbmhhbmggVFAuSENNIHJ1dCB0b25nIGNvbmcg MTQwLjAwMCBVU0QgdmEgNjUwLjYwMC4wMDAgVk5EIA0KKHNvIHRpZW4gVmlldCBuYXkgZG9pIHNh bmcgNDIuMDAwIFVTRCB0YWkgbW90IGN1YSBoYW5nIHZhbmcga2hvbmcgbmhvIGRpYSBjaGkpLiBT YXUgZG8sIA0KY2EgaGFpIGtob2FuIHRpZW4gdHJlbiBjb25nIHZvaSA4MC4wMDAgVVNEIChtYW5n IHR1IE5oYXQgc2FuZykgZHVvYyBjaG8gdmFvIHR1aSB4YWNoLCANClNha2FubyBUc3VuZW8gdmEg VGFrYXN1IEt1bmlvIG1hbmcgZGVuIEJRTERBIGR1YSBjaG8gb25nIFNpLiBLaGkgZHVhIHRpZW4s IA0KU2FrYW5vIGNvIG5obyBobyB0cm8gdHJhIHRpZW4gdGFtIHVuZyBob3AgZG9uZyBkb3QgMiBz b20uIE5nb2FpIHJhLCBkb2kgYmVuIGNvbiBnaWFvIA0Ka2VvIHR1IG5heSB2ZSBzYXUgVGFrYXN1 IEt1bmlvIHNlIGxhIG5ndW9pIGR1YSB0aWVuLiBMb2kga2hhaSBuYXkgY3VhIFNha2FubyBUc3Vu ZW8gDQpwaHUgaG9wIHZvaSBsb2kga2hhaSBjdWEgVGFrYXN1IEt1bmlvIHZhIFNha2FzaGl0YSBI YXJ1by4gU2FrYXNoaXRhIEhhcnVvIGtoYWkgdGhlbSANCmRvIHF1eSBjdWEgUENJIG8gVFAuSENN IGtob25nIGR1IHRpZW4sIG5lbiBQQ0kgTmhhdCBCYW4gZGEgbGFtIHRodSB0dWMgY2h1eWVuIA0K MTQwLjAwMCBVU0QgcXVhIE5nYW4gaGFuZyBUb2t5byBNaXRzdWJpc2hpLg0KDQpDbyBxdWFuIGRp ZXUgdHJhIHhhYyBtaW5oIHRhaSBDdWMgUXVhbiBseSB4dWF0IG5oYXAgY2FuaCAtIEJvIENvbmcg YW4gdGhheSBvbmcgVGFrYXN1IA0KS3VuaW8gbmhhcCBjYW5oIHZhbyBWTiB0dSAyNyAtIDI4LjUu MjAwMy4gTmdhbiBoYW5nIFRva3lvIE1pdHN1YmlzaGkgY2hpIG5oYW5oIA0KVFAuSENNIGN1bmcg Y3VuZyBjYXAgY2h1bmcgdHUgY2hvIHRoYXkgU2FrYXNoaXRhIEhhcnVvIHJ1dCB0aWVuIHZhbyBu Z2F5IDI4LjUuMjAwMyANCnRydW5nIGtob3Agdm9pIHNvIHRpZW4gdHJlbi4gQm8gVHUgcGhhcCBO aGF0IEJhbiBjdW5nIGNhcCBoYWkgaG9hIGRvbiBydXQgdGllbiB0YWkgUXV5IA0KUENJIE5oYXQg QmFuLCB0b25nIGNvbmcgODAuMDAwIFVTRC4gTmdvYWkgcmEsIGNvIHF1YW4gZGlldSB0cmEgY29u IHRodSB0aGFwIG5oaWV1IA0KY2h1bmcgY3UgY2hvIHRoYXkgSHV5bmggTmdvYyBTaSBkYSBsYW0g bmh1bmcgdmllYyBjbyBsb2kgY2hvIFBDSSB0cm9uZyBxdWEgdHJpbmggZG9uIA0KdmkgbmF5IHRo dWMgaGllbiBoYWkgaG9wIGRvbmcgbm9pIHRyZW4uIA0KDQpLZXQgbHVhbiBkaWV1IHRyYSBjdW5n IG5ldSBuZ29haSBsYW4gZHVhIHRpZW4gbmF5LCBjYWMgcXVhbiBjaHVjIFBDSSBjb24gNyBsYW4g ZHVhIHRpZW4gDQpraGFjIGNobyBIdXluaCBOZ29jIFNpLiBUaGFuZyAyLjIwMDksIHRoYW5nIDcu MjAwOSB2YSB0aGFuZyA2LjIwMTAsIGNvIHF1YW4gZGlldSB0cmEgDQpjbyB2YW4gYmFuIHV5IHRo YWMgdHUgcGhhcCBndWkgQm8gVHUgcGhhcCBOaGF0IEJhbiBkZSBuZ2hpIGN1bmcgY2FwIGNhYyB0 YWkgbGlldSBjaHVuZyANCmN1IGNvIGxpZW4gcXVhbiBkZW4gdmllYyBxdWFuIGNodWMgUENJIGR1 YSBob2kgbG8gY2hvIEh1eW5oIE5nb2MgU2kuIERvIEJvIFR1IHBoYXAgDQpOaGF0IEJhbiBjaHVh IGN1bmcgY2FwIHRhaSBsaWV1LCBtYSB0aG9pIGhhbiBkaWV1IHRyYSB2dSBhbiBkYSBoZXQgbmVu IGNvIHF1YW4gZGlldSB0cmEgDQpxdXlldCBkaW5oIHRhY2ggaGFuaCB2aSBuaGFuIGhvaSBsbyA2 IGxhbiBjb24gbGFpIHRoYW5oIG1vdCB2dSBhbiBraGFjLCBraGkgbmFvIHRodSB0aGFwIA0KZHUg Y2h1bmcgY3UgdGhpIHh1IGx5IHNhdS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAxODA5NDkyOS5hc3B4IE5ndXllbiBNaSAxOC8xMC8yMDEw IDk6NDkgDQoNClRQIEhDTTogSHV5bmggTmdvYyBTaSBsYW5oIGFuIHR1IGNodW5nIHRoYW4gDQog IA0KKFROTykgQ2h1bmcgdGhhbiBsYSBtdWMgYW4gbWEgSHV5bmggTmdvYyBTaSwgbmd1eWVuIFBo byBnaWFtIGRvYyBTbyBHVENDIHZhIA0KR2lhbSBkb2MgQmFuIHF1YW4gbHkgZHUgYW4gRGFpIGxv IERvbmcgVGF5IHZhIG1vaSB0cnVvbmcgbnVvYyBUUC5IQ00sIHBoYWkgbmhhbiANCmxhbmggY2hv IGhhbmggdmkgIm5oYW4gaG9pIGxvIiBjdWEgbWluaCwgVEFORCBUUC5IQ00gdHV5ZW4gcGhhdCB2 YW8gbHVjIDkgZ2lvIDQ1IA0KcGh1dCBzYW5nIG5heSAoMTguMTApLiANCg0KVHJvbmcgbmh1bmcg cGhpZW4geHUgdHJ1b2MgZG8sIFZpZW4gS1NORCBkYSB0cnV5IHRvIGJpIGNhbyBIdXluaCBOZ29j IFNpIHZlIHRvaSANCiJuaGFuIGhvaSBsbyIsIHRoZW8gS2hvYW4gNCwgRGlldSAyNzkgQm8gbHVh dCBIaW5oIHN1IHZhIGR1YSByYSBtdWMgYW4gZGUgbmdoaSBsYSB0dSANCmNodW5nIHRoYW4uDQoN CihBbmg6IEh1eW5oIE5nb2MgU2kgZHVvYyBkYW4gZ2lhaSByYSBraG9pIHRvYSBzYXUgcGhpZW4g eHUgLSBBbmg6IE5ndXllbiBNaSkgDQoNClR1eSBuaGllbiwgdHJvbmcgc3VvdCBjYWMgcGhpZW4g dG9hLCBIdXluaCBOZ29jIFNpIHZhbiBtb3QgbXVjIGtob25nIHRodWEgbmhhbiBoYW5oIA0Kdmkg cGhhbSB0b2kuIEJlbiBwaGlhIGJpIGNhbyB2YSBsdWF0IHN1IGN1YSBiaSBjYW8gY2hvIHJhbmcg Y2h1bmcgY3UgVmllbiBLU05EIGR1YSByYSwgDQpkbyBiZW4gcGhpYSBOaGF0IGN1bmcgY2FwLCBr aG9uZyBkdSBkZSBidW9jIHRvaSBiaSBjYW8gdmEgZGUgbmdoaSB0cmEgaG8gc28gdmUgZGlldSB0 cmEgDQpibyBzdW5nLg0KDQpRdWEgcXVhIHRyaW5oIG5naGkgYW4sIFRBTkQgVFAuSENNIGtldCBs dWF0OiBjaHVuZyBjdSBjdWEgVmllbiBLU05EIFRQLkhDTSBsYSANCmhvYW4gdG9hbiBkYXkgZHUs IGNvIHRpbmggcGhhcCBseSB2YSBkdSBjbyBzbyBkZSBidW9jIHRvaSBIdXluaCBOZ29jIFNpLiBU YXQgY2Egbm9pIA0KZHVuZyBjdWEgYmVuIE5oYXQgY3VuZyBjYXAsIGxvaSBraGFpIGN1YSBQQ0kg ZGV1IGR1b2MgdGh1IHRoYXAgYm9pIGNvIHF1YW4gZGlldSB0cmEgdmEgDQpjaHV5ZW4gcXVhIFZp ZXQgTmFtIHRob25nIHF1YSBEYWkgc3UgcXVhbiwgdGhlbyBkdW5nIEx1YXQgdHVvbmcgdHJvIHR1 IHBoYXAgbWEgUXVvYyANCmhvaSBWaWV0IE5hbSBkYSBwaGUgZHV5ZXQsIGRldSBob3AgdGh1YyBo b2EuDQoNClRhdCBjYSBjYWMgY2h1bmcgY3UgZGV1IGNodW5nIG1pbmggUENJIGRhIGR1YSBob2kg bG8gc28gdGllbiAyNjIuMDAwIFVTRCAodHVvbmcgDQpkdW9uZyA0IHRpIGRvbmcsIHRoZW8gdGhv aSBnaWEgbHVjIGF5KSBjaG8gSHV5bmggTmdvYyBTaSB2YW8gbmdheSAyOC41LjIwMDMuIE1hdCBr aGFjLCANClRBTkQgY3VuZyBraGFuZyBkaW5oIG5odW5nICJ1dSBhaSIgSHV5bmggTmdvYyBTaSBs YW0gbG9pIGNobyBQQ0kgbmh1IGJhbiBjYW8gDQp0cmFuZyBuZXUgbGEgZHUgY2FuIGN1Lg0KDQpW aSB2YXksIFRBTkQgVFAuSENNIHR1eWVuIHBoYXQgYmkgY2FvIEh1eW5oIE5nb2MgU2kgdmUgdG9p IG5oYW4gaG9pIGxvLCBhcCBkdW5nIA0KbXVjIGFuIHR1IGNodW5nIHRoYW4uIEhhaSBuZ29pIG5o YSBjdWEgYmkgY2FvIGJpIGtlIGJpZW4gdGFpIHNhbi4gTmdvYWkgcmEsIGNvIHF1YW4gZGlldSAN CnRyYSBCbyBDb25nIGFuIHNlIHRpZXAgdHVjIGRpZXUgdHJhIHRpZXAgNiBoYW5oIHZpIG5oYW4g aG9pIGxvIGtoYWMgY3VhIEh1eW5oIE5nb2MgU2kgdm9pIA0Kc28gdGllbiBsZW4gZGVuIGdhbiAy IHRyaWV1IFVTRC4NCg0KVHJ1b2MgZG8sIEh1eW5oIE5nb2MgU2kgZGEgYmkgdHV5ZW4gYW4gNiBu YW0gdHUgdmUgdG9pICJsb2kgZHVuZyBjaHVjIHZ1IHF1eWVuIGhhbiANCnRyb25nIHRoaSBoYW5o IGNvbmcgdnUiLiANCg0KVG9uZyBob3AgaGFpIGJhbiBhbiB0cmVuLCBIdXluaCBOZ29jIFNpIHBo YWkgbGFuaCBhbiB0dSBjaHVuZyB0aGFuLiBUaG9pIGhhbiB0dSBiYXQgZGF1IA0KdHUgbmdheSAx MS4yLjIwMDkuDQoNCmh0dHA6Ly90dWRvdmlzLmNvbS92aXNfZm9ydW1zL2ZvcnVtMjgvOTA0MS5o dG1sIE5ndW9pIE5oYXQgTGEgIFBvc3RlZDogMjAvMS8yMDA4IDA5OjMwIGFtDQoNCkxlIFRoYW5o IEhhaTogVGFpIEhvYSBjdWEgbmd1b2kgZGFuIEJ1bmcgU2F1IFhhIA0KDQpMZSBUaGFuaCBIYWks IE5ndXllbiBWYW4gRHVhIHZhIFBoYW0gQ2hpbmggVHJ1YyBjdW5nIHZvaSBuaHVuZyB0YXkgc2Fp IGN1YSBobywgZHVhIA0KdmFvIHF1eWVuIGx1YywgIiB2dWEgYW4gY3VvcCB2dWEgbGEgbGFuZyIu DQoNCkxlIFRoYW5oIEhhaSBkYSBsYW0gcXV5ZW4gdmEgdnVvdCBxdXllbiBjYXAgdHJlbiBjdWEg bWluaCAoZG8gbGEgQ2hpbmggUGh1KSB2b2kgdHUgDQpjYWNoIGxhIG1vdCBDaHUgVGljaCBVQk5E IFRoYW5oIFBobyBIbyBDaGkgTWluaCwgTGUgVGhhbmggSGFpIGRhIGtob25nIG5nYW4gDQpuZ2Fp IHZvaSB2YSBiYW4gaGFuaCBxdXlldCBkaW5oIHRodSBob2kgZGF0IG1vdCBjYWNoIHRyYWkgbHVh dCwgZG8gbGEgUUQgMjY2NiBjdW5nIG1vdCANCnNvIHF1eWV0IGRpbmgga2hhYyBnb20gMjcxNywg MjE5MyBkZSB0aHUgZ29tIGRhdCBjdWEgbmd1b2kgZGFuIG5naGVvLg0KDQpTYXUga2hpIGdpYSB0 dSBjaGllYyBnaGUgQ2h1IFRpY2ggVUJETiBUaGFuaCBwaG8gZGUgbGVuIG5hbSBCaSB0aHUgVGhh bmggdXksIExlIA0KVGhhbmggSGFpIGNhbmcgdG8gcm8gcXV5ZW4gdGhlIHZhIHN1YyBtYW5oIEJB TiBUQVkgU0FUIGN1YSBtaW5oLiBMb2kgZHVuZyBjaHVjIA0KcXV5ZW4gc2FuIGNvIHRyb25nIHRh eSBMZSBUaGFuaCBIYWkga2hvbmcgbmdhbiBuZ2FpIGNoYSBkYXAgSGllbiBQaGFwIHZhIEx1YXQg UGhhcCwgDQpjdW5nIG5odSB0aGFpIGRvIHZvIG9uIHZhIHBoYW4gYm9pIGRvaSB2b2kgY2FjIHRp ZW4gbmhhbiBkYSBkbyBtYXUgZGUgeGF5IGR1bmcgdmEgZ2l1IA0KbnVvYy4NCg0KVm9pIGN1b25n IHZpIG1vdCBiaSB0aHUgVGhhbmggdXkuIE5odW5nIGtob25nIHRoZSBnaWFpIHRoaWNoIGR1b2Mg dmllYyBsYW0gdHJhaSBsdWF0IGN1YSANCmNoaW5oIG1pbmggbWEgbmd1b2kgZGFuIGRhbmcgeWV1 IGNhdSBnaWFpIHRyaW5oLiBEbyBkbyBMZSBUaGFuaCBIYWkgZGEgY2F0IG5oYWMgDQpOZ3V5ZW4g VmFuIER1YSAtIHBobyBDaHUgVGljaCBVQkROIFRoYW5oIFBobyBsZW4gbGFtIHBobyBiaSB0aHUg dGh1b25nIHRydWMgDQpUaGFuaCBVeTsgZG9uZyB0aG9pLCBjaGkgZGFvIGJ1b2MgdGF0IGNhIG5o dW5nIG5ndW9pIGRhbiBraGlldSBuYWkgcGhhaSByYSB0b2EgZGUgcGhhbiANCmdpYWkgbW90IGNh Y2ggbmhhbmcgY3VvaS4gQ2hpIGRhbyBidW9jIFVCTkQgVGhhbmggUGhvIHZhIFVCTkQgUXVhbiA5 IHBoYWkgcmFvIA0KcmlldCBkYXAgcGhhIG5oYSBkYW4gbW90IGNhY2ggbyBhdCwgY3VvYyB0YW4g cGhhIG5heSBkdW9jIGNoaWEgbGFtIDIgZG90IG1vaSBkb3QgZ29tIDcgDQpobyBkYW4uIERlIGxh bSBkdW9jIGRpZXUgbmF5IExlIFRoYW5oIEhhaSByYSBsZW5oIGNobyBjaGluaCBxdXllbiBUaGFu aCBQaG8gdmEgY2hpbmggDQpxdXllbiBRdWFuIDkgcGhhaSBodXkgZG9uZyBjYWMgbHVjIGx1b25n IGdvbTogcXVhbiBkb2ksIGNvbmcgYW4gbmhhbiBkYW4gdmEgdGF0IGNhIGRhbiANCnBob25nIG8g Y2FjIGNvIHNvIGhhIHRhbmcgZGVuIGhvIHRybyB2YSBiYW8gdmUgY2hvIHZpZWMgbGFtIHRyYWkg cGhhcCBsdWF0IGN1YSBtaW5oLg0KDQpEZSB0byBwaGFuIHVuZyB2aWVjIGxhbSB2byBuaGFuIGRh byBjdWEgTGUgVGhhbmggSGFpIG5nYXkgMTYvMTEvMjAwNyBuZ3VvaSBkYW4gDQpxdXlldCB0YW0g cGhhbiBkb2kgYmFuZyBjdW9jIHh1b25nIGR1b25nLiBWaSB0aGUsIGtob25nIGNvbiBjYWNoIG5h byBob24gbnVhIExlIA0KVGhhbmggSGFpIGRhIHJhIGxlbmggdHJpZXUgdGFwIGRvYW4gdGhhbmgg bmllbiB4dW5nIHBob25nIGN1YSBUaGFuaCBQaG8gY2hhbiBjYWMgbmdhIA0KZHVvbmcgZGUgZGFu IGFwIGRhbiB2YSBuZ2hpZW0gdHJvbmcgbmhhdCBsYSB4ZSBjbyB0byBxdW9jLiBEYXkgbGEgbW90 IHRoYWkgZG8gcGhhbiBib2kgDQpraG9uZyB0aGUgY28gZG9pIHZvaSBtb3QgRGFuZyB2aWVuIGNv bmcgc2FuIHZhIGN1bmcgbGEgbW90IG5oYSBsYW5oIGRhbyBjYW8gbmhhdCBjdWEgDQpUaGFuaCBQ aG8uIEhhbmggZG9uZyBuYXkgcmF0IG5naGllbSB0cm9uZy4NCg0KTmdheSAyMi8xMS8yMDA3IGxh aSBtb3QgbGFuIG51YSBuZ3VvaSBkYW4gZGVuIFVCTkQgcXVhbiA5IHlldSBjYXUgZ2lhaSBxdXll dCBuaHVuZyANCmtoaWV1IG5haSBtYSBuZ3VvaSBkYW4gZGEgdGhhYyBtYWMgKHRoZW8gbGljaCB0 aWVwIGRhbiBjdWEgVUJORCBRdWFuIDkpLiBWaSBkdW9jIA0Kbmd1b2kgZGFuIGNobyBiaWV0IHRy dW9jIG5lbiBiYSBMZSBUaGkgVGFtIENodSBUaWNoIFVCTkQgUXVhbiA5IGNoaSBkYW8gY2hvIGNv bmcgDQphbiBRdWFuIDkgcGhvaSBob3Agdm9pIGNhYyBiYW4gbmdhbmggZG9hbiB0aGUgY3VhIHF1 YW4sIHRyb25nIGRvIGNvIGNhIHF1YW4gZG9pLCB2aSANCmNodWEgZHUgbmVuIGRhIHRhbmcgY3Vv bmcgdGhlbSBib24gZ2lhbmcgaG8gZGFuZyBzb25nIHRyZW4gZGlhIGJhbiBxdWFuLCBkZW4gaG8g dHJvIA0KY29uZyBhbiBkZSBkYW4gYXAgdmEgZGFuaCBkYW4gdHJlbiBkdW9uZyBkaSBkZW4gVUJO RCBRdWFuLCBkYWMgYmlldCBuaGF0IHRhaSBjb25nIA0KVUJORCBRdWFuIDkuIFNhdSBkbyBuZ3Vv aSBkYW4gbGFpIGR1b2MgY29uZyBhbiBxdWFuIDkgImNoYW0gc29jIiBiYW5nIGNhY2ggZHVuZyAN CnF1eWVuIGx1YyBkZSBjaHVwIG11IG5ndW9pIGRhbiBkaSBraGlldSBuYWkgbmdheSBob20gZG8g dm9pIHRvaSBkYW5oICJ0dSB0YXAgbm9pIGNvbmcgY29uZyIuDQoNCmh0dHA6Ly92bi5hbnN3ZXJz LnlhaG9vLmNvbS9xdWVzdGlvbi9pbmRleD9xaWQ9MjAwODA1MjYyMjUzMDRBQTNMWDJQDQoNCkxl IFRoYW5oIEhhaSAoSGFpIE5odXQpIEJpIFRodSBUaGFuaCBwaG8gSENNIGNoaXUgdHJhY2ggbmhp ZW0gdmUgdmllYyBjaHVuZyBjdSANCk5ndXllbiBTaWV1IG5naGllbmcNCg0KTmdvYWkgbmVuIG1v bmcgY2hpdSBsdWMga2VtLCB0b2EgbmhhIGNodW5nIGN1IE5ndXllbiBTaWV1IGJpIG5naGllbmcg aG9pIHRoYW5nIDEwIA0KbmFtIG5nb2FpIGRvIGFuaCBodW9uZyB0dSBjb25nIHRyaW5oIHhheSBk dW5nIGNhbyBvYyBTYWkgR29uIFJlc2lkZW50LCBkYW5nIHRpZXAgdHVjIA0KbmdoaWVuZyA0IG1t IG1vdCB0aGFuZyB2YSBsdW4gdHJhbSB0cm9uZy4gDQoNClRoZW8ga2V0IHF1YSBraWVtIGRpbmgg Y29uZyBibyBjaGlldSAyNi81IGN1YSBWaWVuIGtob2EgaG9jIHZhIHBoYXQgdHJpZW4gY29uZyBu Z2hlIA0KZGlhIGNoYXQgLSBuZW4gbW9uZyAtIHhheSBkdW5nIGNvbmcgdHJpbmgsIHZlIGxhdSBk YWkgY2FuIGNvIGtlIGhvYWNoIHBoYSBibyBjaHVuZyBjdSANCk5ndXllbiBTaWV1IGRlIHhheSBs YWkgdmkgbmVuIG1vbmcgdG9hIG5oYSBjbyBraGEgbmFuZyBjaGl1IGx1YyBrZW0uLi4gDQoNCmh0 dHA6Ly92bi5hbnN3ZXJzLnlhaG9vLmNvbS9xdWVzdGlvbi9pbmRleD9xaWQ9MjAwODA1MjYyMjUz MDRBQTNMWDJQDQoNCkNodXllbiBjdWEgb25nIEJpIHRodSBIQ00gTGUgVGhhbmggSGFpIG5heSBj b24gZGFpLiBWdSBoYW0gY2h1aSBWYW4gVGhhbmgsIGhvaSBkbywgIA0Kb25nIHRhICdhbicgZHUg cXVhIGRlbiBiYXkgZ2lvIHNhdSBjYSBjaHVjIG5hbSBjaG9uZyBsdW4gbWEgdmFuIGNvbiBsdW4s IHJvaSB2dSAiYW4iIGRhdCANCmRhaSBraHUgUGh1IE15IEh1bmcgbnVhLi4uIHRpZW4gbmhpZXUg dmF5IG9uZyBkYSBkYXUgY2hvIGhldDsgbWEgb25nIHZhbiBjb24gdGhhbSwgIA0KdmFuIGRvaSBu aGEgbnVvYyBjaGkgbW9pIG5hbSBoYW5nIHRyYW0gdHkgZG9uZyBkZSBudW9pIGRvaSBxdWFuIHRo YW5oIG5pZW4geHVuZyANCnBob25nIGN1YSBvbmcgY2hvbmcga2V0IHhlIHRoYXkgdmkgZHVuZyBz byB0aWVuIGRvIGRlIHhheSBjYXUgZHVvbmcgY2hvbmcga2V0IHhlIGh1dSANCmhpZXUgaG9uOyBj byBwaGFpIGhheSBob24ga28/DQoNCmh0dHA6Ly9kYW5sZW50aWVuZy53b3JkcHJlc3MuY29tLzIw MDkvMDUvMTMvbGUtdGhhbmgtaGFpLWRvYy1xdXllbi10cmFuLWxvdC8gQ3UgVHJpIFF1YW4gMiAg MTMvMDUvMjAwOQ0KDQpMZSBUaGFuaCBIYWkgRG9jIFF1eWVuIFRyYW4gTG90IQ0KDQpYaW4gY2hh biB0aGFuaCBjYW0gb24gTVlLIGRhIHRhbiB0aW5oIGdpdXAgZG8sIGdvcCBwaGFuIGxhbSBuaHV0 IGNoaSBib24gdGhhbSBxdWFuIA0KdmEgY3VuZyBjbyBuaWVtIHRpbiB2YW8gY29uZyBseSB2YSBz dSB0aGF0IGNobyBuaGFuIGRhbi4NClhpbiB2dWkgbG9uZyBjaG8gcGhvIGJpZW4gYmFpIG5heS4N ClhpbiBkYSB0YS4NCkN1IFRyaSBRdWFuIDINCg0KKioqDQoNCkxlIFRoYW5oIEhhaSBEb2MgUXV5 ZW4gVHJhbiBMb3QhDQoNCkxlIFRoYW5oIEhhaSB1eSB2aWVuIGJvIGNoaW5oIHRyaSwgYmkgdGh1 IHRoYW5oIHV5IHRoYW5oIHBobyBIbyBjaGkgTWluaCwgZHVuZyA0NSB0eSANClZORCBkZSBtdWEg Y2FjIGNodWMgZGFuaCBub2kgdHJlbiEgU2F1IGRvIGR1bmcgYmFuIHRheSBzYXQgZGUgdHJhbiBs b3QgZGFuIG5naGVvIHRoYW5oIA0KcGhvIEhDTSwgYmllbiBuaGFuIGRhbiB0aGFuaCBnaWFpIGNh cCB2byBzYW4sIHRoYW5oIGJhbiBraG8gbm9uZy4uLiBjb24gSGFpIHR1IGJpZW4gY2hhdCBiYW4g dGhhbiBtaW5oIHRoYW5oIGdpYWkgY2FwIGJvYyBsb3QhIA0KDQpEZSB2aWVjIHRoYW0gbmh1bmcg dHJvIHRoYW5oIGRvYyBxdXllbiBjdWEgbWluaCwgaG8gTGUga2hvbmcgdHUgYmF0IGN1IHRodSBk b2FuIG5hbywgDQpuaGFtIGN1bmcgY28gY2FpIGdoZSBjdWEgbWluaCAuLi4gTmhhbiBkYW4ga2hv bmcgbmd1bmcgdG8gY2FvIHRvaSBhYyBjdWEgTGUgVGhhbmggDQpIYWksIHRoaSBsaWVuIHNhdSBk byBjbyB0aW4gTGUgdGhhbmggSGFpIGJpIGRpZXUgY2h1eWVuIGRpIG5vaSBraGFjLi4uIFNhdSBt b3QgdGhvaSBnaWFuIA0KY2hheSBjaG90LCBsbyBsb3QsIGhvIExlIGxhaSBuZ29pIHZ1bmcgY2hh YyB0cmVuIGNhaSBnaGUgbXVhIHZvaSBnaWEgaGFuZyB0eSBWTkQuIA0KDQpTYXUgdnUgdGhhbSBu aHVuZyBhbiBob2kgbG8gdGFpIGR1IGFuIGRhaSBsbyBEb25nIFRheSwgY2hpbmggcGhpYSBOaGF0 IEJhbiBkYSBjdW5nIGNhcCANCmhvIHNvIGFuIGJhbiBjdWEgaG8gTGUgaG9uZyBhbiBjaGFuIG5n dW9uIHZvbiBPREEgZG8gcGhpYSBOaGF0IGN1bmcgY2FwIHZvaSB5ZXUgY2F1IA0KcGhhaSB4dSBs eSBMZSBUaGFuaCBIYWksIHRoaSBtb2kgZ2lhaSBuZ2FuIHZvbiBPREEuLi4gIA0KU2F1IGRvIGNh aSBnaGUgY3VhIGhvIExhICh0dWMgTGUgVGhhbmggSGFpKSBiaSBsdW5nIGxheSBkdSBkb2kgdmEg ZGEgY28gdGluIExlIEhvbmcgQW5oIA0Kc2UgdGhheSB0aGUhIE5odW5nIExlIFRoYW5oIEhhaSBj byBiaWV0IHRhaSBjaHVpIGxvbi4uLiBOYXkgdGhpIGNhaSBnaGUgY3VhIExlIFRoYW5oIEhhaSAN Cmtob25nIGJpIHN1cCBtYSBjb24gZHVvYyBnaWEgY28gdnVuZyBjaGFjIHRoZW0gISEhDQoNCkRl IGR1b2MgZG9jIHF1eWVuIHRyYW4gbG90IG5oYW4gZGFuLCBjaGFjIGNoYW4gaG8gTGEgZGEgYm8g cmEga2hvbmcgaXQgdHkgZG9uZyEgTmF5IGRlIA0KdGh1IGhvaSB2b24sIGhvIExhIGRhIG5hbmcg ZHUgYW4ga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIHRoYW5oIHN1IG5naGllcCBjaGluaCB0cmks IGFpIA0Ka2hvbmcgY2hhcCBoYW5oIGRpIGRvaSBnaWFpIHRvYSBiYW4gZ2lhbyBtYXQgYmFuZyBs YSBjaG9uZyBkb2kgZGFuZywgY2hvbmcgZG9pIGNodSANCnRydW9uZyBsb24gY3VhIG5oYSBudW9j ISBEdXQga2hvYXQgdG9pIG5nYXkgMzEgdGhhbmcgOSAobGFtIGdpIGNvIG5nYXkgMzEvOS4gY2hp IGNvIA0KbmdheSAzMC85IHRob2kpIHBoYWkgaG9hbiB0aGFuaCBnaWFpIHRvYSB4b25nLiBIbyBu YW8gY2hheSB5IHNlIGJpIGN1b25nIGNoZSEgDQoNClZpIExlIHRoYW5oIEhhaSBkYSBnaWFuIGxh biAxNjAgaGEgZGF0IHRhaSBkaW5oIGN1IGN1YSBkYW4sIGJpZW4gdGhhbmggZGF0IGN1YSBnaWEg dG9jIA0KbWluaCwgY3VhIGJhbmcgbmhvbSBtaW5oISBuZW4gZHUgYW4ga2h1IGRvIHRoaSBtb2kg VGh1IFRoaWVtIGJpZW4gdGhhbmggZHUgYW46IA0KS2hvbmcgY28gcGh1b25nIGFuIGRlbiBidSEg RHUgYW4ga2hvbmcgY28gZGF0IHRhaSBkaW5oIGN1IGNobyBkYW4sIG5odSBsb2kgdGh1IG5oYW4g DQpjdWEgdGVuIEh1YSBOZ29jIFRoYW8sIHRydW9uZyBiYW4gYm9pIHRodW9uZyBnaWFpIHBob25n IG1hdCBiYW5nIHF1YW4gMjogQ2h1IHRydW9uZyANCmxhY2ggTHVhdCAhPyBIb25nIGxhbSBnaWF1 IGNobyBMZSBUaGFuaCBIYWkgdmEgYmFuIGN1bmcgaG9hIG5oYW4gZGFuISANCg0KTmdheSBuYXkg bmhhbiBkYW4gYmkgYm9jIGxvdCBob24gdGhvaSBxdWFuIGxpZXUgcGhvbmcga2llbiBraGkgeHVh IGdhcCBuaGlldSBsYW4hIENhYyANCmN1b25nIGhhbyBhYyBiYSBraGkgeHVhIHRoaSBkdWEgdmFv IGNoaW5oIHF1eWVuLCBuZW4gbmhhbiBkYW4gdmFuIGNvbiBkYXQgZGUgc29uZyBzb3QgDQpxdWEg bmdheSEgTmF5IGdpYW4gYWMgaG9uOiBDaGluaCBxdXllbiBjaGluaCBsYSBjdW9uZyBoYW8gYWMg YmEsIHZ1YSBjbyBjaHVjLCB2dWEgY28gDQpxdXllbiB2dWEgY28gY29uZyBhbiwgcXVhbiBkb2ks IHZ1IGtoaSB0cm9uZyB0YXksIG5oYXQgbGEgbGFpIGNvIGNodSB0cnVvbmcgbG9uIGN1YSBuaGEg DQpudW9jLCBzdSBuZ2hpZXAgY2hpbmggdHJpIGN1YSBkYW5nLCBuZW4gY2hpbmggcXV5ZW4gdnVh IGxhIGNodSBkdSBhbiwgdnVhIGxhIGNodSBkYXUgdHUsIA0KdnVhIGJhbiBoYW5oIGx1YXQgcGhh cCBsYWkgdnVhIGxhIHF1YW4gdG9hISBuZW4gbmhhbiBkYW4ga2hvbmcgY29uIHRhYyBkYXQgZGUg Y2FtIGR1aSEhISANCg0KQWkga2hpZXUgbmFpIGxhIGNob25nIGRvaSBkYW5nISBBaSBkYW0gYmFv IGdhbiB0byBjYW8gbGEgY2hvbmcgZG9pIGRhbmcsIGxhIGxhbSBtYXQgYW4gDQpuaW5oIHRyYXQg dHUsIHBoYSBob2FpIG1vaSBkYWkgZG9hbiBrZXQgdG9hbiBkYW4hLi4uIE5lbiBuaGFuIGRhbiBi aSBtYXQgbmhhIGRhdCBtYSBsYWkgDQpjb24gYmkgYmF0IGRpIHR1IS4uLiBUaG9pIGJ1b2kgbmdh eSBuYXkgdmFuIG1pbmggaGllbiBkYWkgYmFvIG5oaWV1IHRoaSB0aHUgZG9hbiBib2MgbG90LCAN CnRyYW4gbG90IGN1YSBiYW8gcXV5ZW4gbmhhbSBoaWVtIGJheSBuaGlldSEgQXkgdmF5IG1hIHZh biBsdW9uIG1vbSByZXUgcmFvOiBDaGFtIGxvIA0KZG9pIHNvbmcgY2hvIGRhbiBuZ2hlbyEgbmhh biBkYW4gdHJvbmcga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIGxhIG5ndW9pIGR1b2MgaHVvbmcg DQpsb2kgdHJ1b2MgdGllbiEgVGF0IGNhIHZpIGRhbiwgZG8gZGFuIHZhIHBodWMgdnUgZGFuLi4u IE5odW5nIHZvaSBuaHVuZyBnaSB4YXkgcmEgbmh1IA0KaGllbiBuYXk6IE5ndW9pIHRoaWV0IGhh aSBuaGF0LCB0aGlldCBoYWkgZGVuIG1hdCBuaGEgbWF0IGN1YSB2YSBjbyBraGkgY29uIGJpIGRp IHR1IG5ldSANCmRhbSB0byBjYW8gbGEgbmd1b2kgZGFuIHRoYXAgY28gYmUgbWllbmchIENvbiBu Z3VvaSBodW9uZyBsb2kgbmhpZXUgbmhhdCwgbGEgbmd1b2kgZG9jIA0KcXV5ZW4gYm9jIGxvdCBk YW4gbmdoZW8gY2hpbmggbGEgTGUgVGhhbmggSGFpIQ0KDQpIbyBMYSBzb25nIGFuIGNob2kgYnVv bmcgdGhhISBUaGFtIGNoaSBnaWEgZGluaCB5IGNvbiBjaG9pIGx1b24gbWEgdHV5ISBUaGVvIG5o dSBsb2kgDQprZSBjdWEgYmFjIHNpIHJpZW5nIGN1YSBnaWEgZGluaCB5ISBOaHUgdmF5IGJhbiBj aGF0IHRoYXQgY3VhIFV5IHZpZW4gYm8gY2hpbmggdHJpIGRhIGJvYyANCmxvIHJvISBMYSBtb3Qg dGVuIGdpYW4gbWFuaCwgZ2lhIG5oYW4sIGdpYSBuZ2hpYSwgbGEgVGFuIFRodXkgSG9hbmcsIGxh IFBvbiBQb3QgWWVuZyBzYSANCnJpLCBsYSBQaGF0IHhpdCwgbGEgSGl0bGVyLi4uDQoNCihDdSBU cmkgUXVhbiAyKQ0KDQpodHRwOi8vd3d3LnZpZXRtYWlzYXUub3JnL2ZvcnVtL3Nob3d0aHJlYWQu cGhwP3Q9NDM2MTggQ1UgVFJJIFFVQU4gMiBUSEFOSCBQSE8gU0FJIEdPTiAxMi0xNS0yMDA3LCAw MjozOCBBTSANClRhaSBIb2EgQ2hvIERhdCBOdW9jLCBIaWVtIEhvYSBDdWEgRGFuIFRvYw0KDQpM ZSBUaGFuaCBIYWk6IFRlbiBraHVuZyBibyBkdW5nIGJhbiB0YXkgc2F0IGJvcCBjaGV0IDUwLjAw MCBkYW4gbmdoZW8gdHJvbmcga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtIC0gVFAgSENNDQogICAg DQpDYWMgQmFvOiBDb25nIEFuIG5oYW4gZGFuLCBMYW8gRG9uZywgTm9uZyBUaG9uIG5nYXkgbmF5 LCBOb25nIE5naGllcCwgVGllbiANClBob25nIHZhIG5oYXQgbGEgQmFvIERhaSBEb2FuIEtldCB0 cm9uZyB0aG9pIGdpYW4gdnVhIHF1YSBkYSBjbyBoYW5nIGxvYXQgcGhvbmcgc3UgDQpkaWV1IHRy YSBuZXUgZGljaCBkYW5oIExlIFRoYW5oIEhhaSBwaGEgbmF0IHF1aSBob2FjaCBLaHUgZG8gdGhp IG1vaSBUaHUgVGhpZW0gDQooS0RUTVRUKS4gVmkgZGF5IGxhIGNhYyBCYW8gY3VhIFRydW5nIFVv bmcsIExlIFRoYW5oIEhhaSBraG9uZyBsYW0gZ2kgZHVvYyEgQ29uIA0KYmFvIHRhaSB0aGFuaCBw aG8gU2FpIEdvbiBuaHU6IFNhaSBHb24gR2lhaSBwaG9uZywgVHVvaSB0cmUuLi4gY2hpIGRhbmcg YmFpIGR1b2MgbW90IA0Ka3ksIGNodWFuIGJpIGRhbmcga3kgMiB0aGkgYmkgYml0IG1pZW5nLi4u DQoNCkJhbyBEYWkgRG9hbiBLZXQgdHJvbmcgc28gMTY5IGRvIHBob25nIHZpZW4gSHV1IE5ndXll biwgaGllbiBsYSBQaG8gVG9uZyBCaWVuIFRhcCANCnBodSB0cmFjaCBwaGlhIE5hbSwgZGEgZHVu ZyBjYW0gdmlldDoNCg0KVnUgbGFtIGJpZW4gbWF0IDE2MCBoYSBkYXQgdGFpIGRpbmggY3UgY3Vh IGRhbiwgdmkgZHUgbmF5IGNobyB0aGF5IHN1IHR1eSB0aWVuIHRvaSBsb25nIA0KcXV5ZW4gY3Vh IG1vdCBjaGluaCBxdXllbiBvIHRoYW5oIHBobyB0YW0gY28gbG9uIG5oYXQgbnVvYy4gTm9pIFF1 YW4gdHJlbiB0cm9uZyANCnh1b25nLCBuZ3VvaSB0YSB0cm9uZyB2YW8sIG1hIGNvbiBraG9uZyBz byBjaGkgYWksIGh1b25nIGNoaSBvIG5odW5nIG5vaSB4YSB4b2kgbWF0IA0KdHJvaSE/DQoNCk5n b2FpIG1hdCB0aGkgZ2lhIG5oYW4gZ2lhIG5naGlhLCBuaHVuZyBsYWkgY2hpIGRhbyBib24gZ2lh YyBub2kgeGFtIGR1bmcgYmFuIHRheSBzYXQgDQpib3AgY2hldCBsYW4sIGNoZXQgbW9uLCBraGll biA1MC4wMDAgZGFuIG5naGVvIHRyb25nIGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSwgc29uZyAN Cmtob25nIGR1b2MsIG1hIGNoZXQgY3VuZyBraG9uZyB4b25nIQ0KDQpEYW4ga2hvbmcgY2hpdSBn aWFvIG1hdCBiYW5nIHZpIGRlbiBidSBjaGkgYmFuZyA1JSBnaWEgdHJpLCB0aGkgYmkgY3Vvbmcg Y2hlLCBraGlldSBuYWkgDQp0aGkgYmkgY2hvIGxhIGNob25nIGRvaSBEQU5HIHZhIE5oYSBOdW9j LiBUYXAgdHJ1bmcga2hpZXUga2llbiB0aGkgYmkgY2hvIGxhIHBoYSBob2FpLCANCmJpIHF1YW4g Y2hlLCBiaSB0dSBkYXkuLi4NCg0KQm9uIGtodW5nIGJvIHR1eSB0YW4gYWMgZ2lldCBoYWkgZGFu IGxhbmgsIG5odW5nIGxhIGNoaSB0cm9uZyBuaGF5IG1hdCEgQ29uIGJvbiBMZSANClRoYW5oIEhh aSBkdW5nIGJhbiB0YXkgc2F0IGJvcCBkYW4sIHhpZXQgY28gZGFuIG5naGVvIGNoZXQgbGFuLCBj aGV0IG1vbi4uLiBjaGV0IHRyb25nIA0KdHVpIG5odWMgdmkgcXV5ZW4gZHVvYyBzb25nIGN1bmcg YmkgdHVvYyBtYXQhIEtob25nIGFpIGRhbSBiYW8gdmUsIGtob25nIGFpIGRhbSBiZW5oIA0KdnVj IGRhbiBvYW4uLi4gVmkgc2UgYmkgdmEgbGF5IQ0KDQpCb24ga2h1bmcgYm8gY2hpIGdpZXQgaG9u IG5nYW4gbmd1b2kgdGFpIFRydW5nIFRhbSBUaHVvbmcgTWFpIFRoZSBHaW9pLCBtYSBjYSB0aGUg DQpnaW9pIHJ1bmcgZG9uZywgdGFuZyB0aHVvbmcuLi4NCkNvbiB0ZW4gTGUgVGhhbmggSGFpIGdp YW4gYWMgaG9uIGJvbiBraHVuZyBibywgZHVuZyBiYW4gdGF5IHNhdCBib3AgY2hldCA1MC4wMDAg ZGFuIA0KbmdoZW8gdm8gdG9pLi4uIE1vbmcgcmFuZyBuaGFuIGxvYWkgdGllbiBibyBoYXkgbGVu IHRpZW5nIGJlbmggdnVjLi4uIENodW5nIGJpZXQgc2FwIHRvaSANCm5nYXkgdGFuLCBuZW4gaGll biBuYXkgY2h1bmcgZGFuZyByYSBzdWMgY3VvbmcgY2hpZW0gbmhhIGRhdCBjdWEgbmhhbiBkYW4s IHRodSBob2kgZGF0IA0KY3VhIGRhbiBtYSBjaGkgZHVuZyBsb2EgcGhvbmcgdGhhbmggZG9jIGRh bmggdGFuaCB0dW5nIGhvLi4uIHRoaSBxdWEgbGEgZGlldSBjaHVhIHR1bmcgDQp4YXkgcmEuLi4N Cg0KKEhpZW4gbmF5IGxvYSBwaG9uZyB0aGFuaCBjdWEgUGh1b25nIEJpbmggS2hhbmggLSBxdWFu IDIgLSBUUCBIQ00gbGllbiB0dWMgZHVuZyBsb2EgDQpwaGF0IHRoYW5oIGRlIHRodSBob2kgZGF0 IGN1YSBkYW4pDQoNClR1IGdpYWMgbm9pIHhhbSBiaWVuIHRoYW5oIGtodW5nIGJvIHZhIG5heSBz YXAgYmllbiBob2EgdGhhbmggYm9uIGRpZXQgY2h1bmcuLi4NCg0KKENVIFRSSSBRVUFOIDIgVEhB TkggUEhPIFNBSSBHT04pDQoNCmh0dHA6Ly9ob2lsYXRyYWxvaS5ibG9nc3BvdC5jb20vMjAwOS8x MC9kYW4tb2FuLWtodS1vLXRoaS1tb2ktdGh1LXRoaWVtLmh0bWwNCg0KREFOIE9BTiBLSFUgRE8g VEhJIE1PSSBUSFUgVEhJRU0NCg0KTmdheSAwNy8xMC8yMDA5IFVCTkQgcXVhbiAyIGh1eSBkb25n IGdhbiAyMDAgbmd1b2k7IGJhbyBnb206IENhbiBibywgY29uZyBuaGFuIA0KdmllbiBjaHVjLCBD b25nIGFuIGNhYyBsb2FpLCBjYW5oIHNhdCBjbyBkb25nLCBjYW5oIHNhdCAxMTMsIGFuIG5pbmgs IGNhbmggc2F0IHRyYXQgdHUsIA0KZ2lhbyB0aG9uZywgYm8gZG9pLCBkYW4gcGhvbmcsIHF1YW4g Y2h1bmcgdHUgcGhhdC4uLiB0aHVvYyB0aGFuaCBwaG8gU2FpZ29uLCBkYSBkdW5nIHZ1IA0KbHVj IHZhIGN1b25nIHF1eWVuLCB0dXkgdGllbiBwaGEgY3VhIG5oYSB2YSBxdWF0IG5nYSwgZGUgb25n IGdpYSBnYW4gODAgdHVvaSwgbGEgbGFvIA0KdGhhbmggY2FjaCBtYW5nIHRlbiBsYTogVlUgQ09O RyBUQU0geHVvbmcgZGF0ISBLaGllbiBvbmcgYmF0IHRpbmghIEJhIERVT05HIA0KVEhJIENBTkgg dm8gb25nIGdhbiA2MCB0dW9pLCBiaSBraG9uZyBjaGUgZGVuIG5nYXQgeGl1LCB0cnVvYyBzdSBj aHVuZyBraWVuIHZhIGxhbSANCmNodW5nIGN1YSBtb3QgdmkgRGFpIHRhIGNvbmcgYW4gdGhhbmgg cGhvIFNhaWdvbiBkYSB2ZSBodXUsIGtoaSBvbmcgbmF5IGRlbiB0aGFtIA0Ka2hpZW4gb25nIHZv IGN1bmcgYnVjIHh1YyB2YSBsZW4gdGllbmcgY3VjIGx1YyBwaGFuIGRvaSEgVGh1b2MgY2FwIGN1 YSBvbmcgbGEgY2FjIGNvbmcgDQphbiBuaGFuIHJhIG9uZywgbmh1bmcgYm9uIGNodW5nIGdpYSBk aWVjIHZhIHlldSBjYXUgb25nIGdpdSB0cmF0IHR1IGRlIGNobyBjaHVuZyB0aGkgDQpoYW5oIGNv bmcgdnUsIG5ldSBraG9uZyBzZSBiaSBiYXQgZ2l1ISANCg0KS2hpIHRpZW4gaGFuaCBjdW9uZyBj aGUgZG8gdmUgbmhhIHNvOiBCMjAvNyBMVU9ORyBESU5IIENVQSwgdG8gMTIsIGtodSBwaG8gMSwg DQpwaHVvbmcgQmluaCBBbiwgcXVhbiAyLCBjdWEgb25nIFRhbSB2YSBiYSBDYW5oLCBjaHVuZyBj YW5oIGdpYWMgZGVuIG11YyBkbzsgbW9pIHZhdCANCmR1bmcgbmdoaSBuZ28gbGEgY2FtZXJhLCBn aGkgYW0sIGRheSBkaWVuIHRob2FpIC4uLiBkZXUgYmkgY2F0IGR1dCEgS2hpIHJhIHZlIGNvbiBi dW9uZyANCmxvaSBkZSBkb2E6IE5ldSBkZSBsb3QgaGluaCBhbmgsIGFtIHRoYW5oIHJhIG5nb2Fp IHNlIGJpIG5naGllbSB0cmkhIFZpIG5oYSBvbmcga2luaCANCmRvYW5oIGRpZW4gdGhvYWkgdmEg Y2FjIGxvYWkgZGllbiB0dSENCg0KR2lhIGRpbmggb25nIGtoaWV1IG5haSBRdXlldCBEaW5oIDEy ODU2L1FELVVCTkQgdmEgVGhvbmcgQmFvIDI2NjAvVEItSERCVCANCm5nYXkgMjIvMDgvMjAwOSBW L3YgY3VvbmcgY2hlIGRvIHZlIGNvIHRpbmggdmkgcGhhbSBQaGFwIEx1YXQsIG5odW5nIGtob25n IGR1b2MgYmF0IA0Ka3kgY28gcXVhbiBuYW8gbmhhbiBkb24hIFZpIGhvIHRodWEgYmlldCB2aWVj IGxhbSBuYXkgY3VhIGhvIGxhIHZpIHBoYW0gUGhhcCBMdWF0IG1vdCANCmNhY2ggbmdoaWVtIHRy b25nISANCg0KVmkgcGhhbSBEaWV1IDEgdmEgRGlldSAyIFF1eWV0IERpbmg6IDc0LyAyMDA2LyBR RC1VQk5EIG5nYXkgMTcvMDUvMjAwNiBWL3Yga2llbSANCmtlIGJhdCBidW9jIGRvIFVCTkQgdGhh bmggcGhvIFNhaWdvbiBiYW4gaGFuaDogDQoNCk11b24ga2llbSBrZSBiYXQgYnVvYyBwaGFpIGNv IFF1eWV0IGRpbmggdGh1IGhvaSBkYXQgY3UgdGhlIGRvaSB2b2kgdHVuZyB0aHVhIGRhdCBkbyBo byANCmdpYSBkaW5oIGNhIG5oYW4gZGFuZyBzdSBkdW5nLiBIbyBjdWEgb25nIGtob25nIG5hbSB0 cm9uZyByYW5oIChyYW5oIGdpb2kpIHRodSBob2kgZGF0IA0KdGhlbyBRRCAxOTk3LCBjYW4gY3Ug dmFvIEJhbiBEbyAwMi9CQi1CUUwuIA0KDQpTYXUgZG8sIGRvYW4gY3VvbmcgY2hlIGtlbyBkZW4g bmhhIG9uZzogTmd1eWVuIFZhbiBUaGFjaCwgZGlhIGNoaSBCMTkvMSwgdG8gOSwga2h1IA0KcGhv IDEsIHBodW9uZyBCaW5oIEFuLiBPbmcgVGhhY2ggaGllbiBsYSBCaSBUaHUga2llbSBLaHUgcGhv IHRydW9uZyBLaHUgcGhvIDEhIERvIA0Kb25nIHRvIGNhbyBoYW5oIHZpIHZpIHBoYW0gcGhhcCBs dWF0IGN1YSBjaGluaCBxdXllbiBxdWFuIDIsIHRodSBob2kgZGF0IGN1YSBkYW4gZGFuZyANCnN1 IGR1bmcgaG9wIHBoYXAgbWEga2hvbmcgY28gcXV5ZXQgZGluaCB0aHUgaG9pISBIb24gbnVhLCBv bmcgY29uIGNodW5nIG1pbmggZHVvYyANCmtodSBwaG8gY3VhIG9uZyBuYW0gbmdvYWkgcmFuaCAo cmFuaCBnaW9pKSBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gKCEpIG5lbiBvbmcgZGEgYmkgDQpj YWNoIGNodWMgYmkgdGh1IHZhIGtodSBwaG8gdHJ1b25nICghKSwgbmF5IGNvbiBkZSBkb2Ega2hh aSB0cnUgcmEga2hvaSBkYW5nIQ0KDQpWaSBseSBkbyBsYW0gYW4sIGdpYSBkaW5oIG9uZyB2YW5n IG5oYS4gQ2h1bmcgZHVuZyBtYXkgaGFuIGNhdCBraG9hLCBwaGEgY3VhLCB4YW0gDQpwaGFtIGdp YSBjdSBiYXQgaG9wIHBoYXAsIHRydW9jIHN1IHBoYW4gZG9pLCBkYSBkYW8sIHZhdCBsb24gdm9p IG5oYW4gZGFuIGRpYSBwaHVvbmcuIA0KDQpYaW4gbW9pIGNvaSBtb3QgZG9hbiB2aWRlbyBkbyBu aGFuIGRhbiBxdWF5IGR1b2MgbmdoZSBybyB0aWVuZyBkYSBkYW8sIGRhIGRhbywgZGEgDQpkYW8u Li4gDQoNCkNhdCBraG9hLCBwaGEgY3VhIGN1b25nIGNoaWVtIG5oYQ0KDQpIaWVuIG5heSBuaGFu IGRhbiB0cm9uZyBLaHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gcXVhbiAyIHZvIGN1bmcgYnVjIHh1 YyEgTmdheSANCjE0LzEwLzIwMDkgZGEgdG8gY2h1YyBiaWV1IHRpbmggdG8gY2FvIHRvaSBhYywg ZHVuZyBiYW4gdGF5IHNhdCBkZSBjdW9uZyBjaGllbSBuaGEgdmEgZGF0IA0KY3VhIGRhbiBuZ2hl byAoISkgc2F1IGRvIGNoaWEgY2hvIG5oYXUhIFRodSBob2kgZGF0IGN1YSBuaGFuIGRhbiBkYW5n IHN1IGR1bmcgbWEgDQpraG9uZyBjbyBxdXlldCBkaW5oIHRodSBob2khIERhdCBjdWEgbmhhbiBk YW4gZGFuZyBzdSBkdW5nIHF1eSBob2FjaCBsYW0ga2h1IGRhbiBjdSwgDQpkdW9pIG5oYW4gZGFu IGRpIGtob2kgdm9pIGdpYSBiZW8sIHJvaSBkZW0ga2luaCBkb2FuaCBtb2kgZ29pIHR1IGJhbiBk byB2YW8gby4gQ3UgdGhlIA0KZGF0IGN1YSAxNDMgaG8gbWF0IHRpZW4gZHVvbmcgTHVvbmcgRGlu aCBDdWEsIGtodSBwaG8gMSwgcGh1b25nIEJpbmggS2hhbmggZGVuIGJ1IA0Kdm9pIGdpYSBhbiBj dW9wOiAxLjM2MC4wMDAgZG9uZy8gMW0yLiBTYXUgZG8gYmFuIHJhIGtob2FuZyAxMDAuMDAwLjAw MCBkb25nLzFtMi4gDQoNClhpbiBob2kgY28gY2hpbmggcXV5ZW4gbmFvIHRyZW4gdGhlIGdpb2ks IHR1IHh1bmcgbGEgY3VhIGRhbiwgZG8gZGFuIHZhIHZpIGRhbiBtYSBib2MgbG90IA0KbmhhbiBk YW4gbGEgb25nIGNodSBjdWEgbWluaCBkZW4gbmh1IHZheSE/IA0KDQpDaGluaCBxdXllbiBraGkg dGhheSBuaGFuIGRhbiBkaSBiaWV1IHRpbmggeGluIGR1bmcgaG9pOiBBaSBraWNoIGRvbmcgeHVp IGR1YyBkaSBiaWV1IA0KdGluaCE/IA0KDQpDaGluaCBoYW5oIGRvbmcgZHVuZyBiYW4gdGF5IHNh dCBhbiBjdW9wIG5oYSBkYXQgY3VhIG5oYW4gZGFuIGdpdWEgYmFuIG5nYXksIGtoaWV1IG5haSAN Cmtob25nIGdpYWkgcXV5ZXQsIGNvbiBiaSBkZSBkb2EuLi4gdGhpIG5oYW4gZGFuIGtob25nIGRp IGJpZXUgdGluaCBtb2kgbGEgbGEhIA0KDQpIaWVuIG5heSBuaGFuIGRhbiByYXQgYnVjIHh1YyEg UmF0IG5oaWV1IG5ndW9pIGRvaSBkaSBiaWV1IHRpbmghIENoYWMgY2hhbiBzZSBubyBsb24gDQp0 cm9uZyBtb3QgbmdheSBnYW4gZGF5ISBYaW4gZ29wIHBoYW4gdW5nIGhvLCBsZW4gdGllbmcgYmFv IHZlIGRhbiBvYW4ga2h1IGRvIHRoaSBtb2kgDQpxdWFuIDIuIA0KDQpDdSB0cmkgcXVhbiAyIA0K DQpodHRwOi8vd3d3LnRpYWxpYS5jb20vc2hvd3RocmVhZC5waHA/dD0xMzMxMTcgVGh1cnNkYXks IE9jdG9iZXIgMjUsIDIwMDcgDQoNClRQIEhDTTogQmFvIGN1YSBNYXQgVHJhbiBUbyBRdW9jIHRv IGNhbyBMZSBUaGFuaCBIYWkgInBoYSBuYXQga2UgaG9hY2ggVGh1IFRoaWVtIiANCg0KVG8gYmFv IERhaSBEb2FuIEtldCBkdWEgcmEgY2FjIGNodW5nIGN1IGRlIGNodW5nIG1pbmggcmFuZyBvbmcg TGUgVGhhbmggSGFpLCBoaWVuIGxhIA0KYmkgdGh1IHRoYW5oIHV5IFNhaSBHb24sIGtoaSBjb24g bGEgY2h1IHRpY2ggVUJORCB0aGFuaCBwaG8sIGRhIGNvIG5odW5nIHF1eWV0IGRpbmggDQpjaHV5 ZW4gcXV5ZW4sIGRpIG5ndW9jIGxvbmcgZGFuLCB0cmFpIHZvaSBjYW0ga2V0IGJhbiBkYXUga2hp IGNvIGR1IGFuIHF1aSBob2FjaCBraHUgDQp2dWMgVGh1IFRoaWVtIHRoYW5oIG1vdCBraHUgZG8g dGhpIG1vaS4NCg0KQ2hpbmggdmkgbmhpZXUgZGlldSBtbyBhbSBjdWEgZHUgYW4gRG8gVGhpIE1v aSBUaHUgVGhpZW0gbWEgcGhhbiBkb25nIGNhYyBuZ3VvaSANCmN1IGRhbiBkaWEgcGh1b25nIGJp IG1hdCBuaGEgbWF0IGRhdCBkYSBraG9uZyBjaGl1IG5oYW4gdGllbiBkZW4gYnUuIE1vdCB0cm9u ZyANCm5odW5nIGx5IGRvIGNoaW5oIGxhIG5oYW4gbmh1bmcga2hvYW4gdGllbiBuYXkgc2Uga2hv bmcgZHUgZGUgbXVhIGxhaSBjaG8gbyBkdSANCm5nYXkgdHJvbmcgbmh1bmcga2h1IHRhaSBkaW5o IGN1IG1vaS4gDQoNCmh0dHA6Ly90cnVvbmdkdXluaGF0LnZud2VibG9ncy5jb20vcHJpbnQvMTU0 NS80NjMyMyBXZWRuZXNkYXksIDl0aCBKYW51YXJ5IDIwMDgNCg0KWHVuZyBxdWFuaCBkdSBhbiBr aHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gVFAgSENNOiANCg0KQmkgdGh1IExlIFRoYW5oIEhhaSBw aGUgYmluaCBjaHUgdGljaCBMZSBUaGFuaCBIYWkNCg0KRGF5IGR1b2MgeGVtIGxhIG1vdCB2dSBz Y2FuZGFsIGxvbiBuaGF0IHZlIG5oYSBkYXQgdGFpIFRQIEhvIENoaSBNaW5oLiBOZ3VvaSBjaGl1 IA0KdHJhY2ggbmhpZW0gY2hpbmgsIHRoZW8gYmFvIGNoaSwgbGEgb25nIExlIFRoYW5oIEhhaSwg bmd1eWVuIENodSB0aWNoIFVCTkQgVFAgSENNLCANCm5heSBsYSBCaSB0aHUgVGhhbmggdXkgVFAg SENNLiBEaWV1IGt5IGxhIGxhIGNoaW5oIEJpIHRodSB0aGFuaCB1eSBMZSBUaGFuaCBIYWkgdnVh IA0KbG9uIHRpZW5nIHBoZSBiaW5oLi4uIGNodSB0aWNoIExlIFRoYW5oIEhhaSEgVnUgdmllYyBu YXkgZGEgYmkgdG8gYmFvIERhaSBEb2FuIEtldCBwaGFuIA0KYW5oIChYZW0gY2hpIHRpZXQgdGFp IGRpYSBjaGk6IGh0dHA6Ly93d3cuYmFvZGFpZG9hbmtldC5uZXQvZGRrL21kTmV3cy5kZGs/bWFz dGVySWQ9MzcNCiZjYXRlZ29yeUlkPTk1JmlkPTM0MzUpDQoNCmh0dHA6Ly93d3cudmlldGJhby5j b20vP3BwaWQ9NDUmcGlkPTExNCZuaWQ9MTM4MjMxIFZVIEhPQUkgTkFNIDEyLzExLzIwMDgsIDEy OjAwOjAwIEFNDQoNClRQIEhDTTogVGFuIE1hbiBWZSBLaHUgRG8gVGhpIE1vaSBUaHUgVGhpZW0g LSBUaGFuaCBwaG8gSENNDQoNCkFpIGxhIGRhbiBUaHUgVGhpZW0/DQoNCk5nYXkgeHVhLCB2dW5n IGRhdCBUaHUgVGhpZW0gZGFuIGNodW5nIG8gZGF5IHBoYW4gbmhpZXUgbGEgZGFuIG1pZXQgdnVv biBjdSB0cnUuIFNhdSANCm5hbSAxOTc1LCBub2kgZGF5IHRhcCB0cnVuZyBjdWEgY3UgeGEgY29u ZyBuaGFuIGNhYyB4aSBuZ2hpZXA6IEJhc29uLCBDYXJpYywgRHVvbmcgU2F0LCANCkRldCB2YSBJ biB2LnYuLi4NCg0KVGh1IFRoaWVtIHRybyB0aGFuaCBLaHUgRG8gVGhpIE1vaQ0KDQpOYW0gMTk5 NyBUaHUgVGhpZW0gYmllbiB0aGFuaCAiS2h1IERvIFRoaSBNb2kiIHZhIG5oYXAgdmFvIHBoYW4g ZGF0IGN1YSBRdWFuIDIgIA0KdGh1b2MgdGhhbmggcGhvIFNhaWdvbi4gUXVhbiAyIGdvbSBjbyA1 IHBodW9uZzogQW4gS2hhbmgsIEJpbmggQW4sIEJpbmggS2hhbmgsIA0KVGh1IFRoaWVtIHZhIEFu IExvaSBEb25nLiBOZ29haSByYSwga2hpIGNvIHN1IGRpIGRvaSBjdWEgZGFuIFF1YW4gMiBkZSB0 YWkgZGluaCBjdSwgDQpjaGluaCBwaHUgZGEgZGFjIGJpZXQgZGFuaCBjaG8gZGFuIHRhaSBkaW5o IGN1IDE2MC5oYSBkYXQgZGUgZGFuIGtob2kgcGhhaSBkb2kgZGkgeGEuDQoNClRodSB0dW9uZyBj aGkgZGFvIHZhIHRpZW4gaGFuaCB0aGFuaCB0cmENCg0KTmdheSAzLzEyLzIwMDcsIFV5IEJhbiBO aGFuIGRhbiB0aGFuaCBwaG8gU2FpZ29uIGNvIGN1b2MgbGFtIHZpZWMgdm9pIFRodSB0dW9uZyAN CkNoaW5oIHBodSwgVUJORCB0aGFuaCBwaG8gZGEga2llbiBuZ2hpIFRodSB0dW9uZyBjaGkgZGFv IHRpZW4gaGFuaCB0aGFuaCB0cmEgY2FjIER1IA0KQW4gRGluaCBjdSBLRFRNVFQsIGRvbmcgdGhv aSBjb25nIGtoYWkga2V0IGx1YW4gdGhhbmggdHJhIGR1IGFuLiBLaWVuIG5naGkgdHJlbiBkYSAN CmR1b2MgVGh1IHR1b25nIGNoYXAgdGh1YW4gdmEgZ2lhbyBjaG8gVUJORCB0aGFuaCBwaG8gdGh1 YyBoaWVuLCBiYW8gY2FvIGtldCBxdWEgbGVuIA0KVGh1IHR1b25nLiANClR1eSBuaGllbiwgY2hv IGRlbiBuYXkgZGEgdHJvbiBtb3QgbmFtIHRyb2kgbWEgVUJORCB2YW4gY2h1YSBjbyBkb25nIHRo YWkgbmFvIHRodWMgDQpoaWVuIHN1IGNoaSBkYW8gdHJlbi4gVmEga2UgdHUgbmdheSBjbyBnaWF5 IHRvIGNoaW5oIHRodWMgdGhhbmggbGFwIEtodSBEVE1UVCBkZW4gbmF5IA0KZGEgaG9uIDEwIG5h bSBtYSBrZSBob2FjaCBjYWkgdGllbiB2YW4gY29uIGxhIHF1eSBob2FjaCB0cmVvLg0KDQpUaHVj IHRlIGNobyB0aGF5LCBxdXkgaG9hY2ggS2h1IERUTVRUIGJpICJ0cmVvIiBob24gMTAgbmFtIHRy b2kNCg0KQ28gdHJlbyB0aGkgbW9pIGxhbSBhbiBraGFtIGtoYS4gVmkgdHJvbmcga2hpIGRvIGRh dCBUaHUgVGhpZW0gYmkgeGVvIHRoaXQsIGJpIHBoYSBuYXQgDQp0aGFuaCBuaGlldSBtYW5oIG5o by4gTmhpZXUgImRhaSBnaWEiIG8gbWFpIHRhbiBkYXUgZGF1IGN1bmcgZHVvYyAiY2FwIGRhdCIs IHRpZW4gaGFuaCANCnNhbiBsYXAgbWF0IGJhbmcsIHhheSBiaWV0IHRodSBraW5oIGRvYW5oLCBw aGFuIGxvLCBiYW4gbmVuIHYudi4uLiBUcm9uZyBraGkgZGF0IDE2MC5oYSANCmRhbmggY2hvIGRh biBUaHUgVGhpZW0gdGFpIGRpbmggY3UgYmkgZGFuaCB0cmFvLiBLaG9uZyBuaHVuZyB2YXksIGNo aW5oIHNhY2ggZ2lhaSB0b2EgDQpkZW4gYnUga2hvbmcgdGhpIGhhbmggZHVuZyBsdWF0Lg0KDQpO aHVuZyBzYWkgcGhhbSBsaWVuIG1pZW4gbmV1IHRyZW4gY2FjaCBkYXkgbmhpZXUgbmFtIHRyb2kg YWkgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbT8NCg0KVHJ1b2MgZG8sIEJpIHRodSBUaGFuaCB1 eSBUUCBTYWlnb24gY3VuZyBkYSBjaGkgZGFvIHBoYWkgeGF5IGNhdCBuaGFuaCAxMi41MDAgY2Fu IGhvIA0KY2h1bmcgY3Ugdm9pIGNoYXQgbHVvbmcgdG90IHRhaSBjYWMga2h1IHZ1YyBkYXQgdGh1 b2MgcGhhbSB2aSBRdWFuIDIgZGUgYm8gdHJpIGNobyBjYWMgaG8gDQpkYW4gdGFpIGRpbmggY3Ug dHJvbmcgZHUgYW4geGF5IGR1bmcgRFRNVFQuIE5heSBsYWkgdGhvbmcgYmFvLCBCaSB0aHUgVGhh bmggdXkgDQpMZSBUaGFuaCBIYWkgY3VuZyBkYSBub2kgcm86ICJEYXQgdHJvbmcgS2h1IERUTVRU IHNlIGRhbmggZGUgeGF5IGR1bmcgS2h1IFRhaSANCkRpbmggY3UgY2hvIGRhbiBUaHUgVGhpZW0s IGNodSBraG9uZyBsYW0gdGFpIHNhbiBkZSBnb3Agdm9uIGNobyBDb25nIHR5IHZhIGR1YSBsZW4g DQpzYW4gYmFuIGRhdSBnaWEgbmh1IGR1IGtpZW4gdHJ1b2MgZGF5IGN1YSB0aGFuaCBwaG8gbWEg YmFvIERhaSBEb2FuIEtldCBkYSB0dW5nIGRlIGNhcC4NCg0KQ28gc3Ugc2FpIGJpZXQgZ2lhIGRh dCANCg0KLSBUaGVvIGdpYSBiaWV1IGhpZW4gaGFuaCBtb2kgbmdheSBkYXQgbW9pIHRhbmcgZ2lh LiBEYXQgVGh1IFRoaWVtIGN1bmcgbGEgZGF0IGRvIHRoaSB2aSANCmRhbiBvIGNhYyBub2kga2hh YyB0cmFuIHZhbyB0aGFuaCBwaG8gbW9pIG5nYXkgbW90IG5oaWV1LiBUaGVvIHRob2kgZ2lhIGhp ZW4gbmF5LCBkYXQgDQpUaHUgVGhpZW0gdGluaCB0cnVuZyBiaW5oIGdpYSBtb3QgbWV0IHZ1b25n IChtLjIpIGl0IG5oYXQgcGhhaSA2MCB0cmlldSBkb25nLiBOaHVuZyBvYWkgDQpvYW0gdGhheSEg Q2hpbmggcXV5ZW4gdGhhbmggcGhvIHJhIGdpYSwgcXV5IGRpbmggbW90IG1ldCB2dW9uZyBjaGkg Y28gMTQgdHJpZXUgZG9uZy4gDQpWYSBuaHUgdmF5LCB0aGkgbmd1b2kgZGFuIGJpIHRoaWV0IHRo b2kgcXVhIG5oaWV1LiBOZ3VvaSBkYW4gYmkgdGhpZXQgbW90IHRodW9jIHZ1b25nIGxhIA0KNDYg dHJpZXUgZG9uZy4gU3Ugc2FpIGJpZXQgbmF5IHF1YSBsb24gIQ0KDQotIFRodSBob2ksIG5ldSBk aSBkb2kgZGFuIGRpIG5vaSBraGFjIHRoaSBkYXQgYXkgYmFuIGNobyBhaT8gTmhhdCBkaW5oIGxh IGNhYyBjb25nIHR5IG51b2MgDQpuZ29haSBoYXkgY2FjICJkYWkgZ2lhIiBtdWEuIFJvaSBzbyB0 aWVuIHNhaSBiaWV0IGRvIGNoYXkgdmFvIHR1aSBhaT8NCi0gVmkgZHUgdG9pIGNvIG1vdCBuZW4g bmhhIHJvbmcgZG8gZHVvYyBsYSAxMDBtMi4gTW90IG1ldCB2dW9uZyBiaSB0aGlldCB0aG9pIGxh IDQ2IHRyaWV1IA0KZG9uZy4gTGF5IDQ2IHRyaWV1IGRvbmcgWCAxMDBtMiB0aGkgdG9uZyBjb25n IHNvIHRpZW4gY3VhIHRvaSBiaSB0aGlldCBsYSA0NjAwIHRyaWV1IA0KZG9uZyAoNCw2IHR5IGRv bmcpLiBNb3QgY29uIHNvIGtob25nIHBoYWkgbGEgbmhvIQ0KDQpLaHUgZGF0IDE2MC5oYSBkYW5o IGNobyBkYW4gVGh1IFRoaWVtIGJheSBnaW8gbyBkYXU/DQoNCk5ldSB0aW5oIHRoZW8gbGUgY29u ZyBiYW5nIHZhIGNvIGxvbmcgdGh1b25nIGRhbiB0aGkgSERORCB0aGFuaCBwaG8gU2FpZ29uIHBo YWkgY28gc3UgDQpkbyBkYWMgaGFuIGhvaSB2YSB2ZSByYSBiYW4gZG8gZGF0IGF5IHRvYSBsYWMg dGFpIGRhdT8gQ2hpYSBsbyByYSwgcm9pIGNobyBkYW4gYmF0IHRoYW0gDQpjb25nIGtoYWkgY28g YmllbiBiYW4gaGFuIGhvaS4gTmh1IHRoZSBtb2kgZ29pIGxhIGxhbSB2aWVjICJ2aSBkYW4iIHZh IG5odSB0aGUgbW9pIGNvbmcgDQpiYW5nLiANCg0KTmd1b2kgZGFuIFRodSBUaGllbSBoaWVuIG5h eSByYXQgYnVjIHh1YyB2ZSBLaHUgZGF0IDE2MCBoYSBkYW5oIGNobyBkYW4gVGh1IFRoaWVtIA0K dGFpIGRpbmggY3UuIFRhaSBzYW8gSERORCB0aGFuaCBwaG8ga2hvbmcgY29uZyBraGFpIGhvYSBz dSB2aWVjIG1hIGN1IHRoYW0gdGhhLCB0aGFtIHRodXQuDQogDQpVQk5ELCBIRE5EIHRoYW5oIHBo byBIQ00gcGhhaSBjb25nIGtoYWkgaG9hIHN1IHZpZWMgbmF5IG5nYXkNCg0KQmkgdGh1IFRoYW5o IHV5IGxhIG9uZyBMZSBUaGFuaCBIYWkgdmEgVHJ1b25nIEJhbiBCb2kgVGh1b25nIGxhIG9uZyBO Z3V5ZW4gVmFuIA0KRHVhIHBoYWkgY2hpdSB0cmFjaCBuaGllbSB0cnVjIHRpZXAgdmUgdnUgZGF0 IG5heS4NCg0KTmd1b2kgZGFuIGtob25nIHRoZSBydXQgcmUgdHJ1b2MgY29uZyBsYW8gZGF1IHR1 IGNvbmcgc3VjIHZhIHRpZW4gYmFjIHZhbyBuZ29pIG5oYSBjdWEgDQptaW5oIGhhbmcgbWF5IGNo dWMgbmFtIHRyb2kuIERvIGxhIGRpIHNhbiBjdWEgb25nIGJhIGRlIGxhaSwgZG8gbGEgbW8gaG9p IG51b2MgbWF0IGN1YSANCm1pbmggZGFuaCBkdW0gaGFuZyBiYW8gbGF1IG5heS4NCkRpIGRvaSBj aG8gbywga2llbSBtb3QgY2hvIG1vaSBjaG8gYmFuZyBjaG8gY3UgbGEgY2EgbW90IHZhbiBkZS4g TmV1IGNoYW5oIHF1eWVuIA0KVGhhbmggcGhvIGtob25nIGNvbmcga2hhaSBob2EgS2h1IGRhdCAx NjAuaGEgZGFuaCByaWVuZyBjaG8gZGFuIHRhaSBkaW5oIGN1IHRoaSBuaGF0IA0KZGluaCBkYSBj byBnaSBtbyBhbSB0cm9uZyBkbz8NCg0KQnVjIHh1YyBjdWEgbmFuIG5oYW4gYmkgZ2lhaSB0b2Eg bmhhIGRhdDogDQoNCjEtIFBoYWkgZHVvYyB0YWkgZGluaCBjdSB0YWkgS2h1IGRhdCAxNjAgaGEg bWEgTmhhIE51b2MgZGEgZGFuaCBjaG8gbmd1b2kgVGh1IFRoaWVtLiANCk5vaSB0YWkgZGluaCBj dSBraG9uZyBwaGFpIGxhIGNodW5nIGN1Lg0KDQoyLSBOb2kgbG8gYXUgdmEgYmFuIGtob2FuIHRo dSBuaGF0IGxhIGtoaSBiaSBnaWFpIHRvYSB0aGkgZG9uIGRpIG8gZGF1Pw0KMy0gR2lhIGRlbiBi dSBjdWEgTmhhIE51b2MgcmF0IHRoYXAgc28gdm9pIGdpYSB0aGkgdHJ1b25nIGhpZW4gbmF5LiBT dSBjaGVuaCBsZWNoIHF1YSB4YSwgDQpraG9uZyAgdGhlIGNoYXAgbmhhbiBkdW9jLiANCg0KQ2hh bmggcXV5ZW4gaHVhIGhlbiBkdSBkaWV1IG5odW5nIGtob25nIGRpIHZhbyB0aHVjIHRlIGRlIGdp YWkgcXV5ZXQgdmFuIGRlDQoNCkN1IG1vaSBsYW4gZ29pIGRhbiBkaSBob3AgbGEgY2FuIGJvIGxh aSBub2kgIkt5IG5heSBjbyBVQk5EIHRoYW5oIHBobyB2ZSBob3AiLiBOaHVuZyANCnJ1dCBjdW9j IGxhIGh1YSBjdW9pIGRlIGNobyBkYW4gZGkgaG9wLg0KT25nIE5ndXllbiBNaW5oIFRyaWV0LCBk dW9uZyBraW0gY2h1IHRpY2ggbnVvYyBsYSB1bmcgdmllbiBkYWkgYmlldSBRdW9jIGhvaSBjdWEg DQpRdWFuIDIuIENhY2ggZGF5IG1heSB0aGFuZyBvbmcgVHJpZXQgY28gdmUgdGhhbSBkYW4gUXVh biAyIHZhIGNvIGh1YSB2b2kgZGFuIGxhIHZhbiANCmRlIHRhaSBkaW5oIGN1IHZhIGJvaSB0aHVv bmcgc2UgZHVvYyBnaWFpIHF1eWV0IG5oYW5oIGNob25nPw0KQ2FjaCBkYXkga2hvYW5nIG1vdCB0 aGFuZywgb25nIE5ndXllbiBUYW4gRHVuZyB0cm9uZyB2YWkgdHJvIFRodSB0dW9uZyBjdW5nIGxh aSBodWEgDQp0aGFuaCB0cmEgdmEgZ2lhaSBxdXlldCB2YW4gZGUgZGkgZG9pIHZhIGJvaSB0aHVv bmcgY2hvIGRhbiBUaHUgVGhpZW0uDQpDYSBoYWkgb25nIGRldSBsYSBuZ3VvaSBjbyBjaHVjIHZ1 IGNhbyBuaGF0IGRhIGh1YSBnaWFpIHF1eWV0IHZhbiBkZS4gTmh1bmcgeGVtIHJhLCANCmNoYW5o IHF1eWVuIGRpYSBwaHVvbmcgdmFuIHUgbGkgdmEgbGFtIHRoZW8geSByaWVuZyBjdWEgbWluaCwg a2hvbmcgY29pIGhhaSBvbmcgcmEgZ2k/IA0KDQpOZ2F5IDgvMTIvMjAwOCB2dWEgcXVhLCBjYW4g Ym8gUXVhbiAgbGFpIG1vaSBkYW4gZGkgaG9wIHZlIHZ1IGdpYWkgdG9hIC0gYm9pIHRodW9uZy4g VmEgDQpjdW5nIG5odSBtYXkgbGFuIHRydW9jLCBjYW4gYm8gUXVhbiBub2kgY28gY2FwIHRyZW4g dmUgZHUgaG9wLiBOaHVuZyB0aHVjIHRlIGNoYW5nIGNvIA0KbWEgbmFvIHZlIGxhbSBuZ3VvaSBk YW4gcGhhbiBuby4gSG8gY2hvIHJhbmcgY2hhbmggcXV5ZW4gZGEgbHVhIGJpcCBobyBuaGlldSBs YW4uIExhbiANCnNhdSBobyBzZSBraG9uZyBkaSBob3AgbnVhPw0KDQpOZ3VvaSBkYW4gcGhhdCBi aWV1IHRyb25nIGN1b2MgaG9wIG5nYXkgOC8xMiB2dWEgcXVhOiAiQ2h1bmcgdG9pIGxhIG5ndW9p IGNvIHRhaSBzYW4gZGUgDQpiYW4uIENodW5nIHRvaSBtdW9uIGdhcCB0cnVjIHRpZXAgbmd1b2kg bXVhIGhhbmcsIGNodSBjaHVuZyB0b2kga2hvbmcgY2FuIGdhcCBjbyBoYXkgDQpuZ3VvaSB0cnVu ZyBnaWFuIGxhbSBtYXQgdGhvaSBnaW8gdmEga2hvbmcgZ2lhaSBxdXlldCBkdW9jIGdpPyIuDQoN Ck5ndW9pIGRhbiBUaHUgVGhpZW0gbmhhdCBxdXlldCBkb2kgY2hvIGJhbmcgZHVvYyBLaHUgZGF0 IDE2MCBoYSBkYW5oIGNobyBoby4gSG8gbm9pIA0KbmdheSB2b2kgY2FuIGJvIHF1YW4gcmFuZzog IkNodW5nIHRvaSBjbyAxMiBuZ2FuIGhvIGRhbi4gTmV1IGNoYW5oIHF1eWVuIGxhbSBkdW5nIGxh IA0KZ2lhbyBkYXQgY3VhIGNodW5nIHRvaSBjaG8gY2h1bmcgdG9pIHRoaSBtb2kgaG8gc2UgY28g ODAgbWV0IHZ1b25nIGRhdCB2dWEgbyB2dWEgdHJvbmcgDQpyYXUuIENodSBsZW4gY2h1bmcgY3Ug ZGUgbmdhbSBtYXkgYmF5IGEhIi4NCg0KQ28gbmd1b2kgaG9pIHRoYW5nIENhbiBibzogIkNvIHBo YWkgY2FjIG9uZyB0aWNoIHRodSBkYXQgY3VhIGNodW5nIHRvaSBkZSBnaWFvIGxhaSBjaG8gY28g DQpMYW4gQW5oIGtob25nPyAoTGFuIEFuaCBsYSBjb24gZ2FpIGN1YSBjbyBUaHUgdHVvbmcgVm8g VmFuIEtpZXQpLiBDYWMgb25nIGFuIHRyYW5nIA0KbWFjIHRyb24sIG8gYmlldCB0aHUsIGRpIHhl IGhvaSBsYW5nIGNvbmcgZGF1IGNvIGJpZXQgbmd1b2kgZGFuIHNvbmcgY3VjIGtobyB0aGUgbmFv PyIuDQogQ2FjIG9uZyAiY28gdGluaCIgbGFtIHNhaSBsdWF0IHBoYXAsIGNvIHRpbmggbHVhIGRh byBuZ3VvaSBkYW4gYmFuZyBuaHVuZyBxdXlldCBuZ2hpIHZvIA0KdmFuLCB4YSB4dWEuIEJhbyBk YW5nIHJhbmggcmFuaCBsYSBjbyBUaG9uZyBUdSByYW5nIGNodXllbiBkZW4gYnUgZGF0IFRodSBU aGllbSBzZSANCmdpYW8gY2hvIFNvIE1vaSBUcnVvbmcgZ2lhaSBxdXlldC4gQ2FjIG9uZyB0aGkg aGFuaCBzYWkgYmV0LiBNdW9uIGJvYyBsb3Qgbmd1b2kgZGFuLiANCk11b24gZG9uIGRhbiB2YW8g ZHVvbmcgY3VuZyBkZSBjaG8gZGFuIHR1IHNhdCIuDQoNClNhdSBkYXkgbGEgYmFpIHZpZXQgY3Vh IGJhbyBUaGFuaCBOaWVuIG5vaSB2ZSBjdW9jIGhvcCBnaXVhIGRhbiB2YSBjaGFuaCBxdXllbiB0 cm9uZyANCnZ1IGdpYWkgdG9hIHZhIGRlbiBidSBjaG8gZGFuIFRodSBUaGllbToNCg0KSG9tIHF1 YSBVQk5EIFEuMiBkYSBjb25nIGJvIG11YyBkaWV1IGNoaW5oIGR1IGtpZW4sIGJvIHN1bmcgbW90 IHNvIGNoaW5oIHNhY2ggaG8gDQp0cm8gdmEgdGFpIGRpbmggY3UgKFREQykgZGUgbGF5IHkga2ll biBjb25nIGtoYWkgbmd1b2kgZGFuIHRodW9jIER1IGFuIEtodSBkbyB0aGkgbW9pIA0KVGh1IFRo aWVtLCB0cnVvYyBraGkgdHJpbmggVUJORCBUUCBxdXlldCBkaW5oLiANCkN1IHRoZTogZGlldSBj aGluaCBtdWMgaG8gdHJvIHRoZW8gZ2lhIHRyaSBjaHV5ZW4gbmh1b25nIG5oYSBkYXQgdGh1YyB0 ZSBkb2kgdm9pIGRhdCBvIA0KbWF0IHRpZW4gZHVvbmcgTHVvbmcgRGluaCBDdWEgbGEgMTQsMSB0 cmlldSBkb25nL20yICh0aGVvIGNodW5nIHRodSB0aGFtIGRpbmggdmEgcGhlIA0KZHV5ZXQgY3Vh IFVCTkQgVFAuSENNKSwgc28gdm9pIG11YyBobyB0cm8gYm8gc3VuZyB0cnVvYyBkYXkgdHUgMiB0 cmlldSAtIDQgdHJpZXUgDQpkb25nL20yOyBtdWMgaG8gdHJvIGNoZW5oIGxlY2ggNCwxIHRyaWV1 IGRvbmcvbTIgIGNobyBjYWMgdHJ1b25nIGhvcCBkYSBibyB0cmkgVERDOyANCm5hbmcgZGllbiB0 aWNoIHhheSBkdW5nIGNhbiBobyBuaG8gbmhhdCB0dSA0NW0yIGxlbiA1Nm0yIChkdW9jIG11YSBn aWEgVERDKTsgYm8gdHJpIA0KZHUgZGllbiB0aWNoIHRpZXUgY2h1YW4gVERDIGR1b2MgaHVvbmcs IGtob25nIGtob25nIGNoZSBzbyBsdW9uZyBjYW4gaG8gKG5odW5nIA0Ka2hvbmcgcXVhIGhhbiBt dWMgMjAwbTIvaG8pOyB4YXkgZHVuZyB0aGVtIDIuMDAwIGNhbiBobyBkZSBibyB0cmkgbm9pIG8g Y2hvIGNhYyANCnRydW9uZyBob3Aga2hvbmcgZHUgZGlldSBraWVuIFREQyBuaHVuZyBraG9uZyBj b24gbm9pIG8gbmFvIGtoYWMuIA0KTWFjIGR1IGRlIG5naGkgZGlldSBjaGluaCwgYm8gc3VuZyBj dWEgVUJORCBRLjIgZHVvYyB4ZW0gbGEgY2hpbmggc2FjaCBtbyB0aGVvIA0KaHVvbmcgY28gbG9p IGNobyBkYW4sIHNvbmcgcGhhbiBsb24geSBraWVuIG5ndW9pIGRhbiBjaG8gcmFuZyBjaGluaCBz YWNoIGRlbiBidSwgZ2lhaSANCnRvYSwgVERDIHRhaSBkdSBhbiB2YW4gY2h1YSB0aG9hIGRhbmc7 IGdpYSBkZW4gYnUgdmFuIGNvbiB0aGFwIHNvIHZvaSBjYWMgZHUgYW4gbGFuIGNhbi4gDQoNCkNo YW5oIHF1eWVuIHRoYW5oIHBobyBTYWlnb24gc2UgdGhpIGhhbmggcXV5IGtlDQoNClZpIG5ndW9p IGRhbiBiaSBnaWFpIHRvYSBuaGEgY3VhIHZhIGtob25nIGNoaXUgbmhhbiB0aWVuIGRlbiBidSB2 b2kgZ2lhIHRoYXAgbmVuIGNoYW5oIA0KcXV5ZW4gZGEgY28gYW0gbXV1IHZvIGN1bmcgdGhhbSBk b2MsIGRvbiBuZ3VvaSBkYW4gdmFvIGNoYW4gdHVvbmcsIHZhbyBidW9jIGR1b25nIA0KY3VuZyBi YW5nIG1vdCBrZSBob2FjaCB0aW5oIHZpIGJ1b2Mgbmd1b2kgZGFuIFRodSBUaGllbSBwaGFpIG5o YW4gc3UgYmF0IGNvbmcgYmFuZyANCnBoYXAgbHVhdCB0cmkgdHJhIG1hIGNoYW5oIHF1eWVuIGNo byBkYW4gdmFvIGJheSBzYXAgbmV1IHZhbiBjdW5nIGRhdSBraG9uZyBjaGl1IHRodWFuIA0KcGh1 YyBkaWV1IGtpZW4gdm8gbHkgbWEgY2hhbmggcXV5ZW4gdGhhbmggcGhvIGRhdCByYTsgYmF0IGhv cCBwaGFwOyBkaSByYSBuZ29haSBsdWF0IA0KcGhhcCBxdW9jIHRlIHZhIHF1b2MgZ2lhIFZpZXQg TmFtOyBraG9uZyBkdW5nIHZvaSB0aHUgdHVjIE5nYW4gSGFuZyBRdW9jIFRlOyBxdXkga2UgDQpk byBuaHUgc2F1OiANCkNoYW5oIHF1eWVuIHRoYW5oIHBobyBkYSBjbyBzYW4gdHJvbmcgdGF5IHRl biBobywgc28gY2h1bmcgbWluaCBuaGFuIGRhbiwgc28gaG8ga2hhdSANCi4uLi4uIGN1YSBuaHVu ZyBobyBkYW4gYmkgZ2lhaSB0b2EgdmEgZHVvYyBkZW4gYnUuDQpDaGFuaCBxdXllbiBsYW0gdGhh bmggRGFuaCBTYWNoIHNhbiB0ZW4gaG8gdmEgc28gdGllbiBkdW9jIGJvaSB0aHVvbmcuIE1hbmcg ZGFuaCANCnNhY2ggZGVuIG1vdCBOZ2FuIEhhbmcgbmFvIGRvLiBSb2kgbW8gbW90IGNodW9uZyBt dWMgY2hvIG5hbiBuaGFuIHRoZW8gZGFuaCBzYWNoIA0KdmEgc28gdGllbiBkYSBnaGkgc2FuLg0K TmdhbiBIYW5nIGJhdCBidW9jIHBoYWkgdGhpIGhhbmggdGhlbyB5IG11b24gY3VhIGNoYW5oIHF1 eWVuIHRoYW5oIHBoby4gU2F1IGtoaSANCk5nYW4gSGFuZyBsYW0geG9uZyBjYWMgdGh1IHR1YyBj dWEgY2FjIGNodW9uZyBtdWMgdGhlbyBsZW5oIGNoYW5oIHF1eWVuIG1hYyBkYXUgDQpraG9uZyBj byBzdSBkb25nIHRpbmggdmEgZG9uZyB5IGN1YSBuZ3VvaSBkYW4gdmEgbmd1b2kgZGFuIGN1bmcg a2hvbmcgbWF5IG1heSBoYXkgDQpiaWV0IHNvIHRpZW4gdHJvbmcgY2h1b25nIG11YyBjdWEgbWlu aCBjbyBiYW8gbmhpZXU/IFRhaSBzYW8gbGFpIGNvPyAuLi4uDQoNCkRheSBsYSBtb3QgY2FpIGJh eSBzYXAuIE5ldSBuZ3VvaSBkYW4ga2V1IGNhIHRoaSBjaGFuaCBxdXllbiBzZSBub2kgcmFuZyBu Z3VvaSBkYW4gZGEgDQpiYW5nIGxvbmcgdm9pIHN1IGRlbiBidSB2b2kgc28gdGllbiBkby4gTGFt IG5odSBzdSBkYSByb2kuDQoNCkNoYW5oIHF1eWVuIHRoYW5oIHBobyBzZSBtYW5nIHJhIHRoaSBo YW5oIHF1eSBrZSBkbyBtb3QgbmdheSByYXQgZ2FuIGRheSB2b2kgbmh1bmcgDQpuZ3VvaSBkYW4g a2hvbmcgY2hpdSBlcCBnaWEgYm9pIHRodW9uZyB2YSBraG9uZyBjaGl1IGRpIGRvaSBkaSBub2kg a2hhYy4gDQoNCkNhaSBraG8gdGFtIHZhIGNhaSBraG8gY2hvIG5ndW9pIGRhbiB0aGFwIGNvIGJl IGhvbmcga2hvbmcgYmlldCBrZXUgY2EgdmFvIGRhdSBsYSBvIGNobyANCmRvLiBMaWV1IGJhbyBj aGkgdHJvbmcgbnVvYyBjbyBuaGEgYmFvIG5hbyBkYW0gbmhheSB2YW8gY2FuIHRoaWVwIGtob25n PyANCg0KVHJ1b2Mgbm9pIGRhdSBraG8gY3VuZyBjdWMgY3VhIG5ndW9pIGRhbiBiaSB1YyBoaWVw LCBib2MgbG90OyB0cnVvYyBxdXkga2UgdGhhbSBkb2Mgbmh1IA0KdmF5LCB0aGlldCB0dW9uZyBu Z3VvaSBkYW4gYmlldCByYW5nIG1pbmggYmkgZXAgYnVvYyB0cmFpIHZvaSBwaGFwIGx1YXQsIHRy YWkgdm9pIGRhbyBkdWMgDQpuaHVuZyB2YW4gcGhhaSBjYW0gY2hpdSB2aSBraG9uZyBiaWV0IGtl dSBjYSB2YW8gZGF1LCB2YSBraG9uZyBkYW0gY2hvbmcgbGFpIGNoYW5oIA0KcXV5ZW4uDQpWaSB0 aW5oIG5ndW9pLCB2aSBjdW5nIG1vdCBkb25nIG1hdSBWaWV0LCB2aSBraG9uZyBuaGFuIHRhbSBu Z29pIG5oaW4ga2hpIHRoYXkgZG9uZyANCmJhbyBtaW5oIGJpIHVjIGhpZXA7IHZpIGx1b25nIHRy aSBjdWEgbW90IGNvbiBuZ3VvaS4uLiBDaHVuZyB0b2kga2hhbiB0aGlldCBrZXUgZ29pIA0Kbmh1 bmcgbG9uZyBoYW8gdGFtLiBDaHVuZyB0b2kga2V1IGdvaSBiYW8gY2hpIHZhIGdpb2kgdHJ1eWVu IHRob25nIG8gdHJvbmcgbnVvYyB2YSBvIA0KbnVvYyBuZ29haSBoYXkgdmFvIGN1b2MgaGF1IGdp dXAgZG8gZHVvYyBkb25nIGJhbyBkYW5nIG8gYnVvYyBkdW9uZyBjdW5nLCBkYW5nIHZvIA0KY3Vu ZyB0aG9uZyBraG8sIGtob25nIGFpIHJhIHRheSBjdXUgdm90Lg0KDQpDYWxpZm9ybmlhLCBuZ2F5 IDkgdGhhbmcgMTIgbmFtIDIwMDguDQpWVSBIT0FJLU5BTQ0KRW1haWw6IGhvYWluYW0udnU2M0B5 YWhvby5jb20gDQoNCmh0dHA6Ly93d3cuZGF0dmlldC5jb20vYXJjaGl2ZS9pbmRleC5waHAvdC0x MDU2MTkuaHRtbCAwNS0wNC0yMDA2LCAwNzoyNSBQTQ0KDQpEYW4gTmdoZW8gVGh1IFRoaWVtIEJp IEJvbiBEaWEgVGFjIENvbmcgU2FuIFRyYW4gTG90DQoNCkRPTiBLSElFVSBOQUkgS0hBTiBDQVAg KExBTiBUSFUgOSkNCg0KVi92OiA0MiBobyBkYW4gY2F1IFRodSBUaGllbSwgVFAgSG8gQ2hpIE1p bmggYmkgYm9uIGRpYSB0YWMgQ29uZyBTYW4gZGlhIHBodW9uZyBjdW9wIGRhdCwgDQoNCktpbmgg Z3VpOg0KDQotIE9uZyBUb25nIEJpIHRodSBEYW5nIENvbmcgc2FuIFZpZXQgTmFtOw0KLSBPbmcg Q2h1IHRpY2ggTnVvYyBDb25nIGhvYSBYSENOIFZpZXQgTmFtOw0KLSBPbmcgQ2h1IHRpY2ggUXVv YyBob2k7DQotIE9uZyBUaHUgdHVvbmcgQ2hpbmggcGh1Ow0KLSBPbmcgQ2h1IG5oaWVtIFV5IGJh biBLaWVtIHRyYSBUVSBEYW5nOw0KLSBPbmcgQm8gdHJ1b25nIEJvIFRhaSBuZ3V5ZW4gLSBNb2kg dHJ1b25nOw0KLSBPbmcgVG9uZyBUaGFuaCB0cmEgQ2hpbmggcGh1Ow0KLSBPbmcgVHJ1b25nIEJh biBEYW4gbmd1eWVuIGN1YSBRdW9jIGhvaTsNCi0gT25nIEJpIHRodSBUaGFuaCB1eSBUUCBIbyBD aGkgTWluaDsNCi0gT25nIENodSB0aWNoIFVCTkQgVFAgSG8gQ2hpIE1pbmguDQoNCkNodW5nIHRv aSBnb20gNDIgaG8gZGFuIHRodW9jIHRvIDE3LCBraHUgcGhvIDIsIGR1b25nIE5nbyBUYXQgVG8s IFBodW9uZyAyMiwgUXVhbiANCkJpbmggVGhhbmgsIHRoYW5oIHBobyBIbyBDaGkgTWluaCwgbGEg Y2FuIGJvIGNvbmcgbmhhbiB2aWVuIG5oYSBudW9jLCBibyBkb2kgY2h1eWVuIA0KbmdhbmgsIGNv bmcgbmhhbiB2aWVuIHF1b2MgcGhvbmcgdmEgYmEgY29uIGxhbyBkb25nIG5naGVvLCBsYW0gZG9u IG5heSBraGFuIHRoaWV0IA0KdHJpbmggbGVuIGNhYyBvbmcgY3V1IHhldCBtb3QgdmllYyB2byBj dW5nIGJhdCBjb25nIHZhIG9hbiB0cmFpIG5odSBzYXU6DQoNCkRlIHRodWMgaGllbiBkdSBhbiB4 YXkgZHVuZyBjYXUgVGh1IFRoaWVtLCA0MiBobyBkYW4gY2h1bmcgdG9pIGRhIHNpbmggc29uZyBv IGRheSB0dSANCnRydW9jIG5nYXkgMTUtMTAtMTk5MywgdHJvbmcgZG8gY28gbW90IHNvIGhvIGRh IG8gdHUgdHJ1b2MgbmdheSBjbyBjaGluaCBxdXllbiBjYWNoIA0KbWFuZyAzMC00LTE5NzUgKGNv IGdpYXkgdG8gbGllbiBxdWFuIGNodW5nIG1pbmgpLCBwaGFpIGdpYWkgdG9hIHRyYW5nLCBuaHVu ZyBjaGluaCANCnF1eWVuIGRpYSBwaHVvbmcgZGEgbGllbiB0dWMgcmEgbGVuaCBjdW9uZyBjaGUg Z2lhaSB0b2EgbWEga2hvbmcgdGh1YyBoaWVuIGRlbiBidSwgdGFpIA0KZGluaCBjdSB0aGVvIGR1 bmcgTHVhdCBEYXQgZGFpIDIwMDMuDQoNClN1IHZpZWMgZGEga2VvIGRhaSAyIG5hbSBxdWEsIGxh bSBjaG8gNDIgaG8gZGFuIGNodW5nIHRvaSB2byBjdW5nIGRhdSBraG8sIGJ1YyB4dWMsIA0Kbmdh eSBkZW0gbG8gc28gY2hpbmggcXV5ZW4sIHNvbmcgdHJvbmcgY2FuaCBsb2FuIGxhYywgb2FuIGhh bi4gVHUgdGhhbmcgMi0yMDA1IGRlbiANCm5heSwgY2h1bmcgdG9pIGRhIGxpZW4gdHVjIGd1aSBk b24ga2hpZXUgbmFpLCBuaHVuZyBjaGluaCBxdXllbiBsYW0gbmdvLCBraG9uZyB0cmEgbG9pIA0K dGhlbyBkdW5nIEx1YXQgZGluaC4gQ29uIGR1b25nIGtoaWV1IG5haSB0aGVvIGR1bmcgcGhhcCBs dWF0IGN1YSBjaHVuZyB0b2kgZGFuZyBiaSANCmNoYW4gZHVuZyBjdW5nIHZvaSBuZ3V5IGNvIHZp bmggdmllbiBraG9uZyBkdW9jIGdpYWkgcXV5ZXQgdGhhdSB0aW5oIGRhdCBseSAoY3VuZyBuaHUg DQpyYXQgbmhpZXUgdnUgdmllYyBraGFjKS4gTmh1bmcgbmd1b2kgY28gdHJhY2ggbmhpZW0ga2hv bmcgdGhlbSBkZW0geGlhIGRlbiB2aWVjIGRlbiANCmJ1LCB0YWkgZGluaCBjdSBjaG8gZGFuLCBt YSBjaGkgYmlldCByYSBsZW5oIGN1b25nIGNoZSBnaWFpIHRvYSBuaGlldSBsYW4sIHZhbyBjYWMg bmdheSAzMC0NCjktMjAwNSwgbmdheSAyNi0wMi0yMDA2LCBuZ2F5IDI0LTMtMjAwNiB2YSBoaWVu IGRhbmcgY29uZyBibyB0aG9pIGhhbiBjdW9pIGN1bmcgbGEgDQpuZ2F5IDA1LTUtMjAwNiwgdHVj IGxhIG5ndXkgY28gYXAgeHVvbmcgY2hpIGNvbiB2YWkgY2h1YyBnaW8gbnVhLg0KDQpUcm9uZyAy IG5nYXkgMjYgdmEgMjctMDItMjAwNiwgb25nIE5ndXllbiBWYW4gRHVhLCBQaG8gQ2h1IHRpY2gg dmEgb25nIExlIFRoYW5oIA0KSGFpLCBDaHUgdGljaCBVQk5EIFRQIEhDTSBkYSB0dXllbiBibyB0 cnVvYyBuaGFuIGRhbiB2YSBiYW8gY2hpOiBTZSBnaWFpIHF1eWV0IGJvaSANCnRodW9uZyBjaG8g NDIgaG8gZGFuIG5nYXkgc2F1IGtoaSBjbyBDb25nIHZhbiBjdWEgQm8gVGFpIG5ndXllbiB2YSBN b2kgdHJ1b25nLiBNYWMgDQpkdSBCbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcgZGEgY28gMyBD b25nIHZhbiB5ZXUgY2F1IHRoYW5oIHBobyBkZW4gYnUgY2hvIGNodW5nIA0KdG9pIHRoZW8gZHVu ZyBMdWF0IERhdCBkYWkgKENvbmcgdmFuIHNvIDQyMTkvQlROTVQtREQgbmdheSAyNi0xMC0yMDA1 OyBDb25nIHZhbiANCkhvYSB0b2Mgc28gNzQ0L0JUTk1ULSBERCBuZ2F5IDI3LTAyLTIwMDYgdmEg Q29uZyB2YW4gc28gMTE2NS9CVE5NVC1ERCBuZ2F5IA0KMjQvMy8yMDA2KSwgbmh1bmcgZGVuIG5h eSwgVUJORCBUUCBIQ00gdmFuIGtob25nIHRodWMgaGllbiBkZW4gYnUgdGhlbyBkdW5nIGx1YXQg DQp2YSBuaHUgZGEgaHVhIGhlbiwgbWEgbGllbiB0dWMgdGhvbmcgYmFvIGN1b25nIGNoZSB2YSBk dWEgZGkgdGFtIGN1Lg0KDQpVQk5EIFRQIEhDTSBkYSBjaGkgZGFvIHZhIFVCTkQgcXVhbiBCaW5o IFRoYW5oIGRhIHRodWMgaGllbiBtb3QgbG9hdCBoYW5oIHZpIHNhaSANCnRyYWkgZHVvaSBkYXkg ZG9pIHZvaSA0MiBobyBkYW4gY2h1bmcgdG9pOg0KDQpDbyB0aW5oIHRoaSBjb25nIHhheSBkdW5n IGRlIHRhbyByYSB0aW5oIHRyYW5nIG5ndXkgaGllbSwgdHJvbmcga2hpIGNodWEgeGVtIHhldCBn aWFpIA0KcXV5ZXQgcXV5ZW4gbG9pIGhvcCBwaGFwIGN1YSBuZ3VvaSBkYW4sIHJvaSBsYXkgY2hp bmggY28gZG8gZGUgZ2lhaSB0b2EsIGRpIGRvaSAxMiB0cm9uZyANCnNvIDQyIGhvIGRhbi4gUXV5 ZXQgZGluaCBjdW9uZyBjaGUgaGFuaCBjaGluaCBnaWFpIHRvYSBuaGEgZGF0LCBuaHVuZyBsYWkg ZHVvYyB0aGUgaGllbiANCmR1b2kgY2hpZXUgYmFpIGRpIGRvaSwgImJhbyB2ZSIgbmd1b2kgZGFu IGtob2kgdGluaCB0cmFuZyBuZ3V5IGhpZW0gZG8gY2hpbmggcXV5ZW4gY2h1IA0KZG9uZyB0YW8g cmE7IA0KDQpLaG9uZyB0aHVjIGhpZW4gdmllYyBraWVtIGtlLCBkYW5oIGdpYSB0YWkgc2FuIGRl IGxhbSBjbyBzbyBib2kgdGh1b25nLCBobyB0cm8gZGkgZG9pIA0KdGhlbyBkdW5nIHF1eSBkaW5o IGN1YSBMdWF0IERhdCBkYWkgbmFtIDIwMDMgKGNoaSBobyB0cm8gZGkgZG9pIHR1IDEwLTIwIHRy aWV1IGRvbmcvaG8sIA0Ka2hvbmcgY29uZyBraGFpLCBtaW5oIGJhY2gsIHRyb25nIGtoaSBjb24g c28gbmV1IHRyb25nIHBodW9uZyBhbiBib2kgdGh1b25nIDI2NCBobyBsZW4gDQpkZW4gMzY2IHR5 IGRvbmcpOyANCg0KS2hvbmcgYm9pIHRodW9uZyB2ZSBuaGEgbyB2YSBkYXQgbyBkZSBiYW8gZGFt IHF1eWVuIGxvaSBob3AgcGhhcCBjdWEgbmd1b2kgZGFuIHRoZW8gDQpraG9hbiAxLCBEaWV1IDQy OyBraG9hbiA0IHZhIDYsIERpZXUgNTAsIEx1YXQgRGF0IGRhaSwgZG9uZyB0aG9pIGRhIGR1b2Mg Y2hpIHJvIHRhaSBtdWMgDQoyLCBDb25nIHZhbiBzbyA0MjE5L0JUTk1ULUREIG5nYXkgMjYtMTAt MjAwNTsgbXVjIDEsIDIsIDMsIDcsIENvbmcgdmFuIHNvIA0KNzQ0L0JUTk1ULUREIG5nYXkgMjct MDItMjAwNjsgbXVjIDEsIENvbmcgdmFuIHNvIDExNjUvQlROTVQtREQgbmdheSAyNC0zLQ0KMjAw NiBjdWEgQm8gVGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nOyANCg0KTGllbiB0dWMgZ2F5IHN1YyBl cCwgZGUgZG9hIGN1b25nIGNoZSBnaWFpIHRvYSwgZHVvaSBjaHVuZyB0b2kgcmEgZHVvbmcgKHZp IGtob25nIHRoZSBjbyANCmhhbmcgdHJhbSB0cmlldSBkZSBtdWEgbmhhIHRhaSBkaW5oIGN1KSwg YmF0IGNoYXAgeSBraWVuIGxlbiB0aWVuZyBiZW5oIHZ1YyBuZ3VvaSBkYW4gDQptb3QgY2FjaCBo b3AgcGhhcCB2YSBob3AgbHkgY3VhIG1vdCBsb2F0IGNvIHF1YW4gbmh1OiBCbyBUYWkgbmd1eWVu IE1vaSB0cnVvbmcsIEJhbyANCk5oYW4gRGFuLCBEYWkgVHJ1eWVuIGhpbmggVmlldCBOYW0sIEJh byBMYW8gRG9uZywgQmFvIFRpZW4gUGhvbmcsIEJhbyBDb25nIGFuIFRQIA0KSENNLCBCYW8gTmd1 b2kgbGFvIGRvbmcsLi4uKTsgDQoNClBodSBuaGFuIHF1eWVuIHBoYXAgbHkgY28gYmFuIGN1YSBu Z3VvaSBkYW5nIHN1IGR1bmcgZGF0IG8gdGhlbyBxdXkgZGluaCB0YWkgRGlldSA0MiANCmN1YSBM dWF0IERhdCBkYWkgbmFtIDIwMDMsIGN1bmcgbmh1IHRhaSBjYWMgdmFuIGJhbiBjaGkgZGFvIGN1 YSBjdWEgRGFuZywgdmFuIGJhbiANCmh1b25nIGRhbiB0aGkgaGFuaCBjdWEgQ2hpbmggcGh1OyAN Cg0KRG8gaGV0IG1vaSBzdSBraG8ga2hhbiB2YSBoYXUgcXVhIChkbyBzdSBxdWFuIGx5IHlldSBr ZW0sIHNhaSBsYW0sIGJhdCBjYXAgY3VhIGNoaW5oIA0KcXV5ZW4gdHJvbmcgc3VvdCBtYXkgY2h1 YyBuYW0gcXVhKSBsZW4gZGF1IG5ndW9pIGRhbi4gQ3VvbmcgY2hlLCBnaWFpIHRvYSB0cmFuZyBr aG9uZyANCmNhbiBiaWV0IGRlbiBxdXllbiBsb2kgaG9wIHBoYXAsIGNoaW5oIGRhbmcgdG9pIHRo aWV1IHZlIGNobyBvIGN1YSBuZ3VvaSBkYW4gdm8gdG9pOyANCg0KTmd1b2kgdGEgZGFuZyB0YW0g ZHVuZyBxdXllbiBsdWMgdHVvYyBkb2F0IGdhbiBuaHUgdG9hbiBibyB0YWkgc2FuIGRvIGNodW5n IHRvaSBnYXkgDQpkdW5nIGNhIGRvaSBiYW5nIG1vIGhvaSwgbnVvYyBtYXQuIENodW5nIHRvaSBj aGkgbGEgbmh1bmcgbmd1b2kgZGFuIG5ndSBjdSBuZ2hlbyBraG8sIA0KbXVvbiBsYW0gbmd1b2kg dHUgdGUsIGx1b25nIHRoaWVuLCBtdW9uIHNpbmggc29uZyBvbiBkaW5oIGhvcCBwaGFwLCBraG9u ZyBoZSBsYW4gDQpjaGllbSBkYXQgZGFpLCBraG9uZyBtdW9uIGdheSBraG8gY2hvIE5oYSBudW9j OyBjaGkgdmkgbmh1IGNhdSBtdXUgc2luaCwgcGhhaSBtdWEgbGFpIA0KbmhhIGRhdCBjdWEgbmd1 b2kga2hhYywgbmh1bmcga2hvbmcgZHVvYyBjaGluaCBxdXllbiBob3AgdGh1YyBob2EgdmkgYmkg cm9pIHZhbyBxdXkgDQpob2FjaCB0cmVvICh0aGVvIFF1eWV0IGRpbmggc28gMzAwOS9RRC1VQiBu Z2F5IDI2LTExLTE5OTIgY3VhIFVCTkQgVFAgSENNKS4gDQoNCkNodW5nIHRvaSB2b24gZGEgcGhh aSBzb25nIHRyb25nIGNhbmggbmdoZW8gaGVuLCB0YW0gdGh1b25nIHRyb25nIG1vdCB0aGFuaCBw aG8gcGhvbiANCmhvYSBydWMgcm8sIG5odW5nIG5heSBzdSB2byB0aW5oLCB2byBuZ2hpYSB2YSB2 byBseSBkYW5nIG5oYW4gdGFtIGRheSBjaHVuZyB0b2kgdmFvIA0KY2FuaCBuZ28ga2hvbiBxdWFu IHRoYW0gdGh1b25nLiANCg0KVmkgbmh1bmcgbHkgZG8gbm9pIHRyZW4sIGNodW5nIHRvaSBraW5o IGRlIG5naGkgY2FjIG9uZywgdm9pIGx1b25nIHRhbSB2YSB0cmFjaCBuaGllbSANCmN1YSBuaHVu ZyBuZ3VvaSBsYW5oIGRhbyBEYW5nIHZhIE5oYSBudW9jIGN1YSBkYW4sIGRvIGRhbiwgdmkgZGFu LCBoYXkgY3V1IG5odW5nIG5ndW9pIA0KZGFuIG5naGVvIGNodW5nIHRvaSB0aG9hdCBraG9pIG5n dXkgY28gYmFuIGN1bmcgaG9hLCBtYXQgc2FjaCBuaGEgY3VhLCBiaSBkYXkgdmFvIGJ1b2MgDQpk dW9uZyBjdW5nLCBob2FuZyBtYW5nIHRvdCBkbywgbWF0IGhldCBsb25nIHRpbiBjdW9pIGN1bmcg dmFvIERhbmcsIE5oYSBudW9jLg0KDQpUaHUgaG9pLCB0YWkgc2FvIGNvIHF1YSBuaGlldSBuZ3Vv aSBkYW4ga2hvbmcgdGhlIGNoYXAgaGFuaCBkdW5nIFBoYXAgbHVhdCB2ZSBuaGEgZGF0IA0KdHJv bmcgbmh1bmcgbmFtIHF1YT8gTmV1IGNodW5nIHRvaSBjbyBsYW0gdGllbiwgbmhpZXUgY3VhIG5o dSBtb3Qgc28gcXVhbiBjaHVjLCB0aGkgZGEgDQpjaGllbSBkdW9jIG5oYSBjYW8gY3VhIHJvbmcs IHZvaSBtb2kgdGh1IGdpYXkgdG8gZGF5IGR1LCBjaHUga2hvbmcgcGhhaSBjYW0gY2hpdSB0aW5o IA0KY2FuaCBtdWEgYmFuIHRyYW8gdGF5IG5odSB2YW4geGF5IHJhLiBLaG9uZyByaWVuZyBnaSA0 MiBobyBkYW4gY2h1bmcgdG9pLCBtYSB0cmVuIGtoYXAgDQpkYXQgbnVvYyBuYXksIGNvbiBoYW5n IGNodWMgdmFuIHRydW9uZyBob3AgbXVhIGJhbiBuaGEgZGF0LCBkdSBtdW9uIHNhbmcgdGVuIGN1 bmcgDQpraG9uZyBhaSBjaG8sIG11b24gZG9uZyB0aHVlIGN1bmcga2hvbmcgeG9uZywgbXVvbiBO aGEgbnVvYyBjaGUgY2hvIGN1bmcga2hvbmcgDQpkdW9jIHZhIGJ1b2MgcGhhaSByb2kgdmFvIHRp bmggdGhlIHJvIHJhbmcgbGEgaG9wIGxlLCBob3AgbHkgbmh1bmcgY3UgYmkgY29pIGxhIGJhdCBo b3AgDQpwaGFwLiBMdWF0IERhdCBkYWkgbmFtIDIwMDMgZGEgbW8gcmEgY2hvIGNodW5nIHRvaSBt b3QgbG9pIHRob2F0LCBkdWEgcGhhcCBsdWF0IHRybyB2ZSANCnZvaSBjdW9jIHNvbmcsIG5oYW0g YmFvIHZlIG5ndW9pIHR1IHRlLCBsdW9uZyB0aGllbi4gTmV1IGNoaW5oIHF1eWVuIHZhbiBjb2kg Y2h1bmcgdG9pIA0KbGEgbmh1bmcgbmd1b2kgbGFuIGNoaWVtIGRhdCBkYWksIHR1YyBsYSBjb2kg Y2h1bmcgdG9pIG5odSBuaHVuZyBrZSBjdW9wIGRhdCwgdGhpIGtoYWMgDQpuYW8gdGllcCB0dWMg YmFvIHZlIGNobyBuaHVuZyBkaWV1IGJhdCBjb25nLCB2byBseSwgcGhpIHRodWMgdGUuIFRoYW0g Y2hpLCBVQk5EIHRoYW5oIA0KcGhvIGNvbiBjaG8gcmFuZywgZGF0IGxhbiBjaGllbSB0cnVvYyBu Z2F5IDMwLTQtMTk3NSAoZGF0IGN1YSBjaGUgZG8gbmd1eSBxdWFuLCBuZ3V5IA0KcXV5ZW4pIGN1 bmcga2hvbmcgZHVvYyBib2kgdGh1b25nLg0KDQpDaHVuZyB0b2kgaHkgdm9uZyByYW5nLCB0aWVu ZyBrZXUgY3VhIG1pbmgga2hvbmcgYmkgcm9pIHZhbyB0dXlldCB2b25nIG5odSBHaWFvIHN1IA0K Tmd1eWVuIExhbiBEdW5nLCBkYWkgYmlldSBRdW9jIGhvaSBkYSBrZXUgdHJlbiBtYXQgYmFvOiAi VG9pIGN1IGJhbiBraG9hbiBzdXkgbmdoaSANCnZlIGhhbmcgbmdoaW4sIGhhbmcgdmFuIGNhYyBk b24gdHUga2hpZXUgbmFpLCB0byBjYW8gY3VhIG5odW5nIGNvbmcgZGFuIGJpbmggdGh1b25nIA0K a2hvbmcgY28gbHVhdCBzdSBuYW8sIGtob25nIGNvIGRvYW4gdGhlIG5hbyBvIFRydW5nIHVvbmcg YmVuaCB2dWMsIGtob25nIGhpZXUgbGFtIHNhbyANCmNvIHRoZSBnaWFuaCBnaWF0IGR1b2MgY29u ZyBseSIuDQoNCkNodW5nIHRvaSBidW9jIHBoYWkgdHVhbiB0aGVvIG1lbmggbGVuaCBvYW4gdHJh aSBjdWEgY2hpbmggcXV5ZW4gaGF5IHBoYWkgY2hvbmcgZG9pIGxhaSANCnN1IGJhdCBjb25nLCB2 byBseT8gVHVhbiB0aGVvIHRoaSB0YW4gZ2lhLCBiYWkgc2FuLCB0aGkgYmFuIGN1bmcgaG9hLCB0 aGkgZ2lldCBjaGV0IGNhIGN1b2MgDQpzb25nIHZhIGNvbmcgbHk7IGNob25nIGRvaSB0aGkgYmkg TmhhIG51b2MgbGVuIGFuLCBiaSBsdWF0IHBoYXAgdHJ1bmcgcGhhdC4gTmh1IHZheSANCmNoYW5n IGtoYWMgbmFvIGJpIGJ1YSBsdW9pIGRhbmggYmF5PyENCg0KTG9uZyB0aW4gdmFvIGNvbmcgbHkg Y3VhIGNodW5nIHRvaSBkYW5nIGJpIHN1cCBkbyBraG9uZyBnaSBjdXUgdmFuIQ0KQ3VvYyBzb25n IGN1YSBjaHVuZyB0b2kgZGFuZyBiaSBkZSBkb2EgdHVuZyBuZ2F5LCB0dW5nIGdpby4NCkNodW5n IHRvaSBraGFuIHRoaWV0IHRyb25nIG1vbmcgY2FjIG9uZyBjdXUgZ2l1cC4NCg0KKioqDQpHaGkg Y2h1IGN1YSBtYW5nIFkgS2llbjogTW90IGJhbiBkb2MgLSBraG9uZyBnaGkgdGVuIC0gZ3VpICJE T04gS0hJRVUgTkFJIEtIQU4gDQpDQVAgKExBTiBUSFUgOSkiIHRyZW4gZGF5OyB0cm9uZyBob2Fu IGNhbmggY3VhIGhvIHRoaSBjaHVuZyB0YSBjbyB0aGUgZG9hbiByYW5nIHZpIHNvIA0KYmkgdHJh biBhcCBuZW4ga2hvbmcgdGhlIGNvbmcga2hhaSBsZW4gdGllbmcgbmh1IHRhaSBuaHVuZyBudW9j IGRhbiBjaHUsIHRvbiB0cm9uZyBxdXllbiANCmNvbiBuZ3VvaSBkdW9jIS4NCg0KWSBraWVuIGJh biBkb2M6IA0KDQpUZXRoaWVuZGFpdGhhbmggMDUtMDUtMjAwNiwgMDk6MzkgQU06DQoNClN1YyBu ZW4gY2FuZyBjYW8gLCBzdWMgYmF0IGNhbmcgbG9uLiBDb24gY2hhbiBjaG8gZ2kgbnVhIG1hIGto b25nIGN1bmcgbmhhdSBnb3AgZ2lvIA0KdGhhbmggYmFvIGRlIGxhdCBkbyBjaGUgZG8gcGhpIG5o YW4gbmdoaWEgbmF5LiBNb3QgY2hlIGRvIG5ndSB4dWFuICwgY3VvcCBib2MgdmEgdGFuIA0KYmFv IA0KRGEgY2hpbiBsYW4gdGh1YSB2b2kga2llbiBtYSBraG9uZyBhaSBkb2FpIGhvYWkgdGhpIGR1 IGNvIHRpZXAgdHVjIGRpIG51YSB0aGkgQ1Mgc2UgdGh1b25nIA0KdGluaCBzYW8/IEhheSBEVU5H IExFTiBEQVUgVFJBTkggQ0hPIENISU5IIE1JTkggVkEgQ0hPIERBTiBUT0MgDQpWSUVUIE5BTSBk ZSBtYW5nIGNvbmcgYmFuZyBiYWMgYWkgY2hvIGNvbiBjaGF1IHRhIGRvaSBzYXUuLg0KDQpUcmFu RGFuVGllbiAwNS0wNi0yMDA2LCAwODo1MyBQTToNCg0KQ2FjIHZpIERheSB0byBjdWEgZGFuIG5o dSBNdW9pIC1BbmggLUtpZXQga2hvbmcgYWkgY28gbm9pIG1vdCB0YW0gYmFuZyBUcnVuZyBob2Mg DQpjaGluaCBxdXksIGtob25nIGFpIGJpZXQgbm9pIG1vdCBuZ29haSBuZ3UuIEF5IHRoZSBtYSBr aG9uZyBhaSBiYW8gYWkgY2FjIHZpIG5heSBkZXUgcmF0IA0KdGhvbmcgdGhhbyBtb3QgdHUgdHJv bmcgdGllbmcgTXk6IERvbGEuIFh1YSBraWEgY2FjIHZpIGRhbmggTXkgZGVuIGNhaSBsYWkgcXVh biwgbmF5IA0KdmFuIHZhdCBub2MgbGVuIG1hIGNodWkgTXksIGF5IHRoZSBtYSBjdSB0aGF5IHRp ZW4gTXkgdGhpIG1hdCBjYWMgdmkgbGFpIHNhbmcgaG9uIGNhIG1hdCANCmN1IHZvIHRyb25nIGRl bS4gQmF0IGdpYWMgdG9pIGNob3QgbmdoaSBkZW4gY2F1IHRobyBjdWEgVGFuIERhOiANCg0KIkNo aSBib2kgdGhhbmcgZGFuIG5ndSBxdWEgbG9uOyANCkNobyBuZW4gY2h1bmcgbm8gbW9pIGxhbSBx dWFuIi4gDQoNCktoaSBvbmcgUGhhbiBWYW4gS2hhaSBuaGFuIGNodWMgVGh1IHR1b25nLCBjbyBu aGlldSBsb2kgZG9uIG9uZyBsYSBuZ3VvaSBkdWMgZG8uIA0KRGlldSBuYXkgc2UgZHVvYyB0aHVj IHRlIHZhIGxpY2ggc3UgeGFjIG1pbmguIENvIGRpZXUsIGNvbiB0cmFpIG9uZyB0aGkgY2hhYyBj aGFuIGtob25nIA0KcGhhaSB0aGUuIEhhbiBsYSBtb3QgdHJ1bSBNYWZpYSB0YWkgVk4uIEhhbiBu aGFwIGNhIG5odW5nIGNoaWVjIHRhdSBjaG8gZGF5IG90byBjdSB2YW8gVk4gDQpkZSBiYW4gc2Fu ZyBUUSwgaGFuIGNvIG1heSBraGFjaCBzYW4gdGFpIEhhIE5vaSB2YSBTYWkgR29uLiBLaGkgQ0Eg bHVuZyBiYXQgDQpQaGFtIEh1eSBQaHVvYywgaGFuIGRhbmcgbmdvaSBjdW5nIGNoaWV1IGJhYyB2 b2kgUGh1b2MuIFRydW9jIGtoaSBDQSBhcCB2YW8sIGRhIA0KZGllbiB0aG9haSBjaG8gaGFuIGRl IGhhbiBiaWV0IGR1b25nIHRhdSB0aG9hdC4gTHVjIHRvYSBhbiB4dSBQaHVvYyBjbyBtb3QgbXVj IGFuIDMgDQpuYW0gZGFuaCBjaG8gdG9pIGRhbmggYmFjLiBTYXUgbmF5IGhhbiBjdW5nIGJpIGJh dCB2ZSB0b2kgYnVvbiBsYXUsIG5odW5nIHJvaSBsYWkgZHVvYyANCnRoYSBuZ2F5LiBWaSB2dSBk byBvbmcgS2hhaSB4aW4gdHUgY2h1YyBuaHVuZyBEYW5nIGxhaSBjYW4gbmdhbi4gRGVuIHZ1IG5o YSB0aGF1IA0KSElTRyBjdWEgVHJ1bmcgUXVvYyB0cnVuZyB0aGF1IHhheSBkdW5nIHNhbiB2YW4g ZG9uZyBxdW9jIHRlIG8gSGEgTm9pIHRoaSBzdSBuZ2hpIA0KbmdvIGN1YSB4YSBob2kgbGFpIGNh bmcgYW0gaS4gTmhhIHRoYXUgZG8gbGEgZG8gY29uIGdhaSBraWVtIHRpbmggbmhhbiBjdWEgSGEg UXVhbmcgRHUgDQprZW8gdHUgVFEgc2FuZy4gSGFuIGtob25nIGNvIHR1IGNhY2ggcGhhcCBuaGFu IGN1bmcgbmh1IG1vaSBnaWF5IHRvIGNhbiB0aGlldCBjaG8gdmllYyANCmRhdSB0aGF1LiBUaGUg bWEgaGFuIHZhbiB0cnVuZyB0aGF1LiBTYXUgbmF5IEhvaSBLaWVuIHRydWMgdmEgSG9pIFhheSBk dW5nIHBoYXQgaGllbiANCnJhLiBUaGlldCBrZSB2dWEga2hvbmcgY28gdGhhbSBteSwga2hvbmcg YW4gdG9hbiwgYmFvIGNoaSBjdW5nIGxlbiB0aWVuZywgYXkgdGhlIG1hIGFpIA0KZG8gZGEgYmF0 IGRlbiB4YW5oIGNobyB2dSBkaSBkZW0gbmF5LiBDaGFuZyBwaGFpIHZpIG5vIHJlIGhvbiBoYWkg bmhhIHRoYXUga2lhIG1hIHZpIG5vIA0KYmlldCBsYW0gbHVhdCBuaGlldSBob24gY2FjIG5oYSB0 aGF1IGtpYS4gS2hvbmcgY2hvIGJvbiBuYXkgdHJ1bmcgdGhhdSB0aGkgbG8gdGF5IGhldC4gQ2Fj IA0KcXVhbiBjaHVjIENoaW5oIHBodSBhbiBiYW8gbmhpZXUgcm9pPyBDYWMgcXVhbiBvIEJvIGFu IGJhbyBuaGV1IHJvaT8gQ2FjIHF1YW4gbyBVeSANCmJhbiBUaGUgRHVjIFRoZSBUaGFvLCBvIExp ZW4gZG9hbiBCb25nIGRhIGFuIGJhbyBuaGlldSByb2k/IEtob25nIGNobyBib24gbmF5IHRydW5n IA0KdGhhdSB0YXQgY2h1bmcgc2UgdG8gZ2lhYy4gSG9pIHNlIGxheSBtbyBvIGRhdSBkZSBjaGUg Y2hvIGhldCBjYWMgYm8gbWF0IGtpYS4gSG9tIDE0LzggDQpraGkgbmdoZSB0aXZpIHRob25nIGJh byBuaGEgdGhhdSBISVNHIHRydW5nIHRoYXUsIG1vdCBiYSBoYW5nIHhlbiBvIGNobyB0b2kgYm9u ZyB0aG90IA0KbGVuIHJhbmcgIkJvIGNvbiBvbmcgYXkgcXVhIG5heSBhbiBkdSIuIE1vdCBuZ3Vv aSBiYW4gdG9pIHRyb25nIGhvaSBLaWVuIHRydWMgSE4gYmFvIA0Kdm9pIHRvaSByYW5nOiAiTGFt IHRoZW8gcGh1b25nIGFuIEEyIGN1YSBuaGEgdGhhdSBjdW5nIGtob25nIGFuIHRvYW4sIGxhaSB2 dWEgbGFtIHZ1YSANCmNoYXAgdmEgdmEgc3VhIGNodWEsIHZhIGxhaSB0aGVvIG5odSB0aGlldCBr ZSBuYXkgdmEgdm9pIG5vaSB0aGF0IGN1YSBUUSB0aGkgY2hpIGhldCANCmtob2FuZyA0MCB0cmll dSBVU0QgdGhvaSwgbXVvaSBtYXkgdHJpZXUgZG9sYSBjb24gbGFpIGRlIHZvIGJlbyBsdSBxdWFu IHRoYW0gZG8uIExhbSANCnRoZW8ga2lldSBuYXksIHNhbiB2YW4gZG9uZyBjbyB0aGUgc2FwIHh1 b25nIGJhdCBjdSBsdWMgbmFvLiJEZSB0cmFuIGFuIGR1IGx1YW4gdmEgZGFuIA0KYXAgY2FjIHkg a2llbiBwaGFuIGRvaSwgaG9tIDE1LzggQmFuIFR1IHR1b25nIFZhbiBob2EgVFcgY2hvIGhvcCB2 b2kgdG9uZyBiaWVuIHRhcCANCmNhYyBiYW8gZGUgdGhvbmcgYmFvIHJhbmc6IEhJU0cgbGEgbmhh IHRoYXUgY3VhIGJhbiBUYWkgY2hpbmggcXVhbiB0cmkgVFcgRGFuZyBDU1RRLCANCmRheSBsYSBz dSBob3AgdGFjIGh1dSBuZ2hpIGdpdWEgaGFpIERhbmcuIE5ndW9pIHRhIHZhbiBjb24gbmhvIHRy dW9jIGRheSBjYWMgcXVhbiB0aGFtIA0KZHVuZyBkYW5oIG5naGlhIERhbmcgY3VuZyBkYSB0dW5n IGdpb2kgdGhpZXUgbW90IGNodSBjaHVhIChMZSBUYW4gQ3VvbmcpIHZhIG1vdCB0YXkgZGFvIA0K YnVhIChLaGFuaCB0cmFuZykgY2hvIG5oaWV1IHZ1IGRhaSBzdSBjdWEgRGFuZyEgDQoNCkJhIFRy dW9uZyBNeSBIb2Ega2hpIGNvbiBsYSBDaHUgdGljaCBIb2kgbGllbiBoaWVwIHBodSBudSBWTiBk YSB0dW5nIG5oYW4gcXVhIGJpZXUgDQptYXkgdHJhbSBuZ2FuIERvIGN1YSBQaGFtIEh1eSBQaHVv Yy4gVGVuIGN1YSBiYSB0aGkgcmF0IGRlcCwgbmh1bmcgYm8gbWF0IHZhIHRhbSANCmRpYSBjdWEg YmEgdGhpIGxhaSBuZ3VvYyBsYWkuIEx1YyBiaSBQaHVvYyB0byBjYW8sIGJhIGRhIGtob2MgdGh1 dCB0aGl0IGJlbiB0YWkgb25nIE11b2kgDQoiQW5oIE11b2kuLi4uIGVtIGNob3QgZGFpLCB4aW4g YW5oIHRoYSBjaG8uIiBDaHV5ZW4gZGVuIHRoZSBsYSB4b25nLCBiYSBNeSBIb2Ega2hvbmcgDQpj aGkga2hvbmcgdmFvIHR1IG1hIGNvbiBkdW9jIHRoYW5nIHRpZW4gbGVuIFBobyBDaHUgdGljaCBR dW9jIGhvaSEuIA0KDQpPbmcgUGhhbSBWYW4gVHJhIGNvIDUgYmlldCB0aHUuIE9uZyBQaGFtIFRo ZSBEdXlldCBjbyAzIGJpZXQgdGh1LiBPbmcgTGUgWHVhbiBUdW5nIA0KY28gbmdvaSBiaWV0IHRo dSB0cmkgZ2lhIDQwMDAgY2F5IHZhbmcsIHYudi4uLiBDaHVuZyBkYW4gYWkgY3VuZyBiaWV0IGNh LiANCg0KT25nIFRydW9uZyBUYW4gU2FuZywga2hpIGNvbiBsYSBCaSB0aHUgdGhhbmggdXkgdGhh bmggcGhvIEhDTSBkZSB4YXkgcmEgbWF5IHZ1IHRoYW0gbmh1bmcgDQpsYW0gbWF0IGN1YSBuaGEg bnVvYyBtYXkgbmdhbiB0eSBkb25nLCBtYSBvbmcgY3UgdHJ1bmcgdmFvIHV5IHZpZW4gQm8gY2hp bmggdHJpLiBOZ2hlIG5vaSANCm9uZyBwaGFpIGN1bmcgcmEgaGFuZyB0eSBkZSBjbyBkdW9jIGNh aSBjaGFuIGRvLiANCg0KVnUgdmllYyBuYXkgYmkgdm8gbG8ga2hpIG1vaSBkYXkgQ29uZyBhbiBI YSBOb2kgY2hvIGJhdCBMZSBRdWFuZyBUaHVvbmcgLSBQaG8gDQp0cnVvbmcgYmFuIHRodW9uZyB0 cnVjLCBCYW4gdG8gY2h1YyBUVyBEYW5nLCB2ZSB0b2kgbW9pIGdpb2kgaG9pIGxvIGRlIGNobyBj YWMgVXkgdmllbiANClRXIHZhbyBkdW9jIEJvIENoaW5oIHRyaS4gTmh1bmcgY2FjIGNvIHF1YW4g Y3VhIERhbmcgbGFpIGxvYW4gYmFvIHJhbmc6IE9uZyBMZSANClF1YW5nIFRodW9uZyB2aSBwaGFt IGt5IGx1YXQgRGFuZyB2aSBodSBob2EuIFRoYXQgbGEgbnVjIGN1b2kgdmkgY28gcXVhbiBjaHVj IG5hbyANCnRyb25nIERhbmcgbWEgbGFpIGtob25nIGh1IGhvYSBkYXUuIERlbiBuaHUgbW90IHZp IFRodSBUcnVvbmcgQm8gVkggbGEgTFRLIGNvbiBhbiANCm5hbSB2b2kgY29uIGRhdSBtaW5oIGxh IG51IGNhIHN5IG5vaSB0aWVuZyBUTCBkZSBkZW4gbm9pIGNvIGNvbiwgY2hvIG5lbiBUTCBtb2kg bWFuZyANCmNvbiB0cmFpIHZpIFRodSBUcnVvbmcgcmFuZzogIk5vIGxhIGNvbiBjdWEgYm8gYW5o LCBsYSBlbSBhbmggY2h1IGtob25nIHBoYWkgbGEgY29uIGN1YSANCmFuaCwgY2FpIG5oYSBuYXkg c2F1IG5heSBjdW5nIGNvIHBoYW4gY3VhIG5vIi4gSGF5IG5odSBvbmcgUGhvIGJhbiBUdSBUdW9u ZyBWSCBEYW8gDQpEdXkgUXVhdCB0aGkgYmkgZGFuIGdvaSBsYSBMYW8gYWkgY3VhIFZOLiBUaGFu IG9pOiBjaGkgbyBWTiBtb2kgY28gbmh1bmcgY2h1eWVuIGRvbmcgDQp0cm9pIG5odSB2YXkuIA0K DQpIZW9Ob2NOZ1NpbmhDdW4gMDUtMDctMjAwNiwgMDk6MTEgQU06DQoNCkNodSBUaXQgaG9pIGRh biBiYSAtIE1vbmcgQ2FpLCBRdWFuZyBOaW5oDQoNCkNvbmcgYW4gdGhpIHhhIE1vbmcgQ2FpLCBR dWFuZyBOaW5oIHZ1YSBraG9pIHRvLCBiYXQgdGFtIGdpYW0gdmEga2hhbSB4ZXQga2hhbiBjYXAg DQpjaG8gbyBjdWEgRGFvIFRoaSBQaHVvbmcgKFNOIDE5NzApLCBuZ3V5ZW4gbGEgQ2h1IHRpY2gg SG9pIHBodSBudSB4YSBIYWkgVGllbiB2aSBkYSANCmxvaSBkdW5nIGNodWMgdnUsIHF1eWVuIGhh biB0aGFtIG8sIGNoaWVtIGRvYXQgMSw2IHR5IGRvbmcgY3VhIG5ndW9pIG5naGVvLg0KDQpUaGVv IGRpZXUgdHJhIGJhbiBkYXUgY3VhIENvIHF1YW4gQ1NEVCB0b2kgcGhhbSBraW5oIHRlIHZhIGNo dWMgdnUgdGhpIHhhIE1vbmcgQ2FpLCANCnR1IG5hbSAyMDA0LCBEYW8gVGhpIFBodW9uZyBkYSBs YW0gZHVuZyBjaHVjIHZ1IHF1eWVuIGhhbiBsYSBDaHUgdGljaCBIb2kgcGh1IG51IHhhIA0KSGFp IFRpZW4sIGtpZW0gdG8gdHJ1b25nIHRvIHZheSB2b24gdGhvbiAzIGRpIHRodSwgbmhhbiBjdWEg bmd1b2kgZGFuIHhhIEhhaSBUaWVuIHRyYSBubyANCmdvYyB2YXkgbmdhbiBoYW5nLg0KDQpOaHVu ZyBzYXUga2hpIG5oYW4gdGllbiwgUGh1b25nIGRhIGtob25nIHRyYSBtYSBnaXUgbGFpIGNoaSB0 aWV1IHZhbyBtdWMgZGljaCBjYSBuaGFuLiANCkRhbyBUaGkgUGh1b25nIGRhIGNoaWVtIGRvYXQg dGllbiBjdWEgNjggaG9pIHZpZW4gcGh1IG51IHRyb25nIHhhIG5vcCB0cmEgbm8gZ29jIHZvbiAN CnZheSBOZ2FuIGhhbmcgQ2hpbmggc2FjaCB4YSBob2kgdmEgTmdhbiBoYW5nIE5vbmcgbmdoaWVw IHZhIFBoYXQgdHJpZW4gbm9uZyB0aG9uIHRoaSANCnhhIE1vbmcgQ2FpIHRyZW4gNDM0IHRyaWV1 IGRvbmcuIE5nb2FpIHJhIFBodW9uZyBjb24gdmF5IHRpZW4gY3VhIDYgaG9pIHZpZW4ga2hhYyB2 YSANCm11b24gMTMgc28gZG8gZGUgdGhlIGNoYXAgbmdhbiBoYW5nIHZheSB0aWVuIHZhIGNoaWVt IGRvYXQgbHVvbiBkZSBzdSBkdW5nIHZhbyBtdWMgDQpkaWNoIGNhIG5oYW4gdm9pIHNvIHRpZW4g MSB0eSAyNDkgdHJpZXUgZG9uZy4NCg0KVGhlbyBMYWkgTWluaCBEb25nIC0gVFRYVk4NCg0KaHR0 cDovL3d3dy52aWV0LWFzaWEubmV0L21vZHVsZXMucGhwP25hbWU9TmV3cyZmaWxlPXNhdmUmc2lk PTE0OSAxMi4wNC4yMDEwDQoNClRQIEhDTTogU0FJIFBIQU0gTkdISUVNIFRST05HIFRBSSBEVSBB TiBUSFUgVEhJRU0NCg0KVG9pIG5nYXkgMzAvNi8yMDEwLCA1MC4wMDAgZGFuIG5naGVvIG1hdCBu aGEsIGRhdCBjdW5nIGtob25nIGR1b2MgdGFpIGRpbmggY3UgdGFpIDUgDQpwaHVvbmcgdGhlbyBR RCAzNjcvVFRnIHZpIFVCTkQgVFAgSENNIHZhIFF1YW4gMiB2aSBwaGFtIG5naGllbSB0cm9uZyBj aHUgdHJ1b25nIA0KY2hpbmggc2FjaCBjdWEgRGFuZyB2YSBwaGFwIGx1YXQgbmhhIG51b2MgdHJv bmcgYm9pIHRodW9uZyBnaWFpIHBob25nIG1hdCBiYW5nIA0KS2h1IGRvIHRoaSBtb2kgVGh1IFRo aWVtIC0gUTIgLSBUUCBIQ00NCg0KRE9OIFRPIENBTyAmIEtFVSBDVVUgS0hBTiBDQVAgTEFOIDI1 DQoNClRoYW5oIHBobyBIQ00sIG5nYXkgMDUgdGhhbmcgMDQgbmFtIDIwMTANCg0KS2luaCBnb2k6 IFFVWSBCQU8sIERBSSANCg0KVGhlbyBwaGFuIGFuaCBjdWEgY2FuIGJvLCBkYW5nIHZpZW4sIG5o YW4gZGFuLCBjYWMgZG9hbiB0aGUgdmEgYmFvLCBkYWkuLi4gdHJvbmcgbmhpZXUgDQpuYW0gcXVh LCBUb25nIFRoYW5oIFRyYSBDaGluaCBQaHUgZGEgdGhvbmcgbmhhdCB0aGVvIEtldCBMdWFuIHNv OiAyOTA4L1RUQ1AtQ0lJSSANCm5nYXkgMjUvMTIvMjAwOCBkbyBQaG8gVG9uZyBUaGFuaCBUcmEg Q2hpbmggUGh1IExlIFRpZW4gSGFvIGt5IHZhIG1vaSBuaGF0IGxhIEtldCANCkx1YW4gc286IDI1 NzQvQkMtVFRDUCBuZ2F5IDIwLzEwLzIwMDkgZG8gUGhvIFRvbmcgVGhhbmggVHJhIENoaW5oIFBo dSBOZ3V5ZW4gDQpEdWMgSGFuaDsgY3VuZyBuaGF0IHRyaSB4YWMgZGluaDoNCg0KVUJORCB0aGFu aCBwaG8gSENNIHZhIHF1YW4gMiBjbyB0aW5oIFZpIHBoYW0gUGhhcCBMdWF0Og0KDQoxLyBWaSBw aGFtIERpZXUgMjEgTHVhdCBEYXQgRGFpIG5hbSAxOTkzOiAiVmllYyBnaWFvIGRhdCBkYW5nIGNv IG5ndW9pIHN1IGR1bmcgY2hvIA0Kbmd1b2kga2hhYywgY2hpIGR1b2MgdGllbiBoYW5oIHNhdSBr aGkgY28gcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBkbyIuIE5odW5nIGNvIHRpbmggDQpraG9uZyBi YW4gaGFuaCBRRCB0aHUgaG9pIGRhdCBjaG8gdHVuZyBobyENCg0KMi8gVmkgcGhhbSBEaWV1IDI4 IEx1YXQgRGF0IERhaSBuYW0gMTk5MzogVHJ1b2Mga2hpIHRodSBob2kgZGF0IHBoYWkgdGhvbmcg YmFvIGNobyANCm5ndW9pIGRhbmcgc3UgZHVuZyBiaWV0IGx5IGRvIHRodSBob2ksIHRob2kgZ2lh biwga2UgaG9hY2ggZGkgY2h1eWVuLCBwaHVvbmcgYW4gZGVuIGJ1IA0KdGhpZXQgaGFpLi4uIFR1 eSBuaGllbiBVQk5EIHF1YW4gMiBkYSBraG9uZyBsYW0gZHVuZyB0cmluaCB0dSwgdGh1IHR1YyB0 aGVvIHF1aSBkaW5oIGN1YSANClBoYXAgTHVhdCENCg0KMy8gVmkgcGhhbSBraG9hbiAyLjEsIERp ZXUgMiBRRCAxOTk3L1FELVVCIG5nYXkgMTAvNS8yMDAyIHRodSBob2kgZGF0IEtodSBUcnVuZyAN ClRhbSBEbyBUaGkgVGh1IFRoaWVtOiBUcmFjaCBuaGllbSBjdWEgVUJORCBxdWFuIDIgcGhhaSBy YSBxdXlldCBkaW5oIHRodSBob2kgZGF0IA0KdmEgY2hpbmggbHkgYmllbiBkb25nIHRyZW4gY2Fj IGdpYXkgY2h1bmcgbmhhbiBxdXllbiBzdSBkdW5nIGRhdCBkYSBjYXAgY2hvIGNhYyBobyBkYW4g DQp0cm9uZyBraHUgdnVjLiBOb2kgZHVuZyBxdXlldCBkaW5oIG5heSB0aHUgaG9pIGRhdCBjaHVu ZywgY2hpIHhhYyBkaW5oIGRpZW4gdGljaCB0aHUgaG9pLCANCmtob25nIHhhYyBkaW5oIGR1b2Mg ZG9pIHR1b25nIHN1IGR1bmcgZGF0IGJpIHRodSBob2kgdHJvbmcga2h1IHZ1YyBxdWkgaG9hY2gu IERhbiBkZW4gDQp2aWVjIHR1eSB0aWVuLCB0aHUgaG9pIGtob25nLCB0aHUgaG9pIHZ1b3QgaGFu ZyB0cmFtIGhhIQ0KDQo0LyBWaWVjIHRodWMgaGllbiBjb25nIHRhYyBib2kgdGh1b25nLCBobyB0 cm8gdmEgdGFpIGRpbmggY3UgZHUgYW4gS0RUTSBUaHUgVGhpZW0gbGFpIA0KY2FuIGN1IHZhbyBj YWMgcXVpIGRpbmggY3VhIHRoYW5oIHBobywgY2FjIHF1aSBkaW5oIG5heSBjYW4gY3UgdmFvIEx1 YXQgZGF0IGRhaSAxOTkzLCANCk5naGkgZGluaCAyMi8xOTk4L05ELUNQIHZhIE5naGkgZGluaCA4 Ny9DUCBuZ2F5IDE3LzA4LzE5OTQgZGEgaGV0IGhpZXUgbHVjIGxhIGhvYW4gDQp0b2FuIHNhaSBw aGFtLg0KDQo1LyBUcmluaCB0dSB0aHUgdHVjIHRodSBob2kgZGF0LCBwaHVvbmcgYW4gZGVuIGJ1 IGdpYWkgcGhvbmcgbWF0IGJhbmcga2hvbmcgdGh1YyBoaWVuIA0KZHVuZyBxdWkgZGluaCEgTmh1 bmcgdG9uIHRhaSB2ZSBraWVtIGtlLCBjaGlldCB0aW5oIGRlbiBidSB0aGlldSBjb25nIGtoYWkg bWluaCBiYWNoLCANCnR1eSB0aWVuIG11b24gZGVuIGJ1IGNobyBhaSBiYW8gbmhpZXUgbGEgZG8g Y2FtIHRpbmghIEN1bmcgZGllbiB0aWNoLCBuZ3VvbiBnb2MgbWEgDQpjaGVuaCBsZWNoIGhhbmcg Y2h1YyBsYW47IGRhIGdheSBidWMgeHVjIGNobyBuZ3VvaSBkYW4sIGRhbiBkZW4ga2hpZXUgbmFp IGdheSBnYXQhDQoNCjYvIER1IGFuIEtEVE0gVGh1IFRoaWVtIGtob25nIGNvIHBodW9uZyBhbiBi b2kgdGh1b25nIGR1b2MgZHV5ZXQgbGEgdmkgcGhhbSBEaWV1IA0KMjggTHVhdCBEYXQgRGFpIG5h bSAxOTkzOyBEaWV1IDMyIE5naGkgRGluaCAyMi8xOTk4L05ELUNQIG5nYXkgMjQvMDQvMTk5OCB2 YSANCkRpZXUgNTAgTmdoaSBEaW5oIDE5Ny8yMDA0L05ELUNQLiBWaWVjIGJvaSB0aHVvbmcgdGhp ZXQgaGFpIGNoaSBjYW4gY3UgY2FjIFFEIA0KMTg4L1FELVVCIG5nYXkgMjgvMDcvMjAwNCwgUUQg MTIzLzIwMDYvUUQtVUIgbmdheSAxNi84LzIwMDYgdmEgUUQgDQowNi8yMDA5L1FELVVCIG5nYXkg MjEvMDEvMjAwOSB2ZSBzdWEgZG9pIGJvIHN1bmcgUUQgMTM1L1FELVVCIG5nYXkgMjEvMTEvMjAw MiANCmxhIGhvYW4gdG9hbiBuZ3V5IGJpZW4hDQoNCjcvIFZpZWMgT25nIExlIFRoYW5oIEhhaSwg QmkgdGh1IHRoYW5oIHV5IGtpZW0gVHJ1b25nIEJhbiBDaGkgRGFvIER1IGFuIEtEVE0gDQpUVCwg ZG8gVUJORCBxdWFuIDIgdGhhbSBtdXUgKHRoZW8gS2V0IEx1YW4gVFRyIFRQIEhDTSBuZ2F5IDEv MTAvMjAwOCkgY28gdGluaCANCmNoaSBkYW8gbGFtIGJpZW4gbWF0IDE2MCBoYSB0YWkgZGluaCBj dSBjdWEgZGFuIHRhaSA1IFBodW9uZywgZGEgdHVvYyBkb2F0IHF1eWVuIHRhaSBkaW5oIA0KY3Ug dGFpIGNobyBjdWEgZGFuIG5naGVvISBUaGF5IHZhbyBkbyBsYSBsb2kgZHVuZyBjaHUgdHJ1b25n IHRhaSBkaW5oIGN1IGRlIHRodSBob2kgZGF0IA0KdHJhbiBsYW4gbGVuIHRvaSA4IHBodW9uZyEg VGh1IGhvaSB2dW90IHRyb2kgaGFuZyB0cmFtIGhhLCBzYXUgZG8gYmFuIGdpYSBjYW8gY2hvIGNh YyANCmNvbmcgdHkgbnVvYyBuZ29haSEgQ3UgdGhlIGtodSBkYXQgdGFpIGRpbmggY3UgZGFuZyBs eSBjdWEgZGFuLCBraG9hbmcgNDAgaGEgdGFpIHBodW9uZyANCkFuIEtoYW5oLCBuZ2F5IGNoYW4g Y2F1IFRodSBUaGllbSBkYSBiYW4gY2hvIENvbmcgVHkgR1MgSGFuIFF1b2MhIERhYyBiaWV0IA0K bmdoaWVtIHRyb25nIGxhIGNoaW5oIHF1eWVuIGR1bmcgcXV5ZW4gbHVjIGN1b25nIGNoaWVtLCBj byBobyBuaGFuIGR1b2MgZGVuIGJ1LCBjbyANCm5oaWV1IGhvIGNodWEgbmhhbiBkZW4gYnUhIE5o dW5nIHZhbiBiaSBjaGluaCBxdXllbiBodXkgZG9uZyBoYW5nIHRyYW0gbmd1b2kgZGVuIA0KY3Vv bmcgY2hlISBEdW9pIGRhbiBuZ2hlbyBkaSBkZSBiYW4gZ2lhIGNhbyBjaG8gbnVvYyBuZ29haSEg R29wIHBoYW4gcGhhIG5hdCBLRFRNIA0KVGh1IFRoaWVtISBUYW8ga2hvYW5nIGNhY2ggbG9uLCBo byBzYXUgY2hlbmggbGVjaCBnaXVhIGdpYXUgdmEgbmdoZW8hDQoNCjgvIFZpZWMgT25nIExlIFRy b25nIFNhbmcsIGNodSB0aWNoIFVCTkQgcXVhbiAyIGR1bmcgbW9pIHRodSBkb2FuOiANCg0KMSAt IFR1eWVuIHRydXllbiB4dXllbiB0YWM6DQpDaHUgdHJ1b25nLCBkdW9uZyBsb2kgZHVuZyBkYW4g Y3VhIERhbmcsIGR1b2MgdGhlIGhpZW4gbWluaCBiYWNoIHF1YSBMdWF0IFBoYXAgTmhhIA0KbnVv Yywgbmh1bmcgT25nIGtob25nIG5naGllbSB0dWMgdGh1YyBoaWVuLCBjbyB0aW5oIG5lIGx1YXQs IGxhY2ggbHVhdDsgbGFtIHRoaWV0IGhhaSBkZW4gDQo5MCUgcXV5ZW4gbG9pIGN1YSBkYW4gbmdo ZW8hIE5odW5nIHZhbiBsb24gdGllbmcgY2hvIHJhbmc6IERlbiBidSB0aGVvIGNoaW5oIHNhY2gg bWEgDQpPbmcgZGFuZyBhcCBkYXQgY28gbG9pIG5oYXQgY2hvIGRhbiENClR1eSB0aWVuIGtoaSBn b2kgbmh1bmcgbmd1b2kgKHZpIHNvIGhhaSkgcGhhaSBiYW4gZ2lhbyBuaGEgZGF0IGxhIHlldSBu dW9jISBMYSBnb3AgcGhhbiANCnhheSBkdW5nIGRhdCBudW9jISBUaHVjIGNoYXQgZGF0IGJpIE9u ZyBkdW5nIHF1eWVuIGx1YyBjdW9uZyBjaGllbSEgU2F1IGRvIGJhbiBjaG8gDQpDb25nIHR5IG51 b2MgbmdvYWkgdm9pIGdpYSBjYW8hDQoNCjIgLSBMdWEgZG9pOg0KT25nIGNobyBkYW4gYW4gYmFu aCB2ZSEgVHJvbmcga2hpIGRhbiBtYXQgbmhhLCBtYXQgZGF0LCBwaGFpIHRhaSBkaW5oIGN1IHRy b25nIG5odW5nIA0KY2h1bmcgY3Uga2VtIGNoYXQgbHVvbmcgbWEgZ2lhIGxhaSBjYW8hDQoNCjMg LSBCYW8gY2FvIGtob25nIG5oaWV1IGxhbiBrZXQgcXVhIHRpZW4gZG8gYm9pIHRodW9uZzsgZGUg dHV5ZW4gdHJ1eWVuIHh1eWVuIHRhYywgbmhhbSANCmxhbSBjaG8gbmd1b2kgZGFuIGx1bmcgbGF5 LCBnaWFvIGRvbmcsIHNvIGhhaSEgRGUgZGUgYmUgbGF5IG5oYSBkYXQgY3VhIG5oYW4gZGFuIQ0K DQo0IC0gSHUgZG9hOg0KTmhhbiBkYW4gZGFuZyBzdSBkdW5nIG5oYSBkYXQgaG9wIHBoYXAsIG9u IGRpbmgsIGRlbiBidSBjaGkgZHVvYyBraG9hbmcgMTAlIGdpYSB0cmksIA0Ka2hvbmcgYm8gdHJp IHRhaSBkaW5oIGN1ISBEdSBkbyBkYW4gdHUgbG8gbm9pIG8gbW9pISBOZXUga2hvbmcgc2UgYmkg Z29pIHRpZW4gdmFvIG5nYW4gDQpoYW5nIHZhIGN1b25nIGNoZSwgcGhhIGRvIG5oYS4gRGUgdGh1 IGhvaSBkYXQhDQoNCjUgLSBDaHVwIG11IG5odW5nIG5ndW9pIGtoaWV1IG5haTogQ2hvbmcgZG9p IERhbmcgdmEgTmhhIE51b2M7IGNobyBuZ3VvaSB0aGVvIGRvaSANCmxpZW4gdHVjISBUZSBoYWkg bmhhdCBsYSB2dSBjYW8gbGFtIGNoaW5oIHRyaSENCg0KNiAtIEtob25nIGNvbmcga2hhaSBtaW5o IGJhY2ggdHJvbmcgY2hpZXQgdGluaCwgbmd1b24gZ29jLCBkaWVuIHRpY2guLi4gZGFuIGRlbiB0 dXkgdGllbiwgDQpiYW4gb24hIEJhdCBjb25nDQoNCjcgLSBOZ2hpZW0gdHJvbmcgbmhhdCBsYSBi YW4gaGFuaCBoYW5nIGxvYXQgcXV5ZXQgZGluaCBjdW9uZyBjaGUgdGh1IGhvaSBkYXQ7IHBoYSBk byANCm5oYSBvIHNhaSBsdWF0LCAoIFZpIHBoYW0gQ2hpIFRoaSAwNS8yMDA2L0NULVRUZywgdmkg cGhhbSBuZ2hpZW0gdHJvbmcgRGlldSA2MCBOZ2hpIA0KRGluaDogODQvMjAwNy9ORC1DUCkgY28g dGluaCBkYXkgZGFuIG5naGVvIHJhIGR1b25nOyB2aSBwaGFtIG5naGllbSB0cm9uZyB2YSBsYW0g DQptYXQgbmllbSB0aW4sIHV5IHRpbiBjdWEgRGFuZyB2YSBOaGEgTnVvYyEgR29wIHBoYW4gbGFt IG1hdCBvbiBkaW5oIGFuIG5pbmggY2hpbmggdHJpIA0KdGFpIGRpYSBwaHVvbmchIE9uZyBTYW5n IHR1IG5ndXllbiBkYW5oIG1hdCBiYW4gY2hhdCB0b3QgZGVwIGN1YSBDaGluaCBxdXllbjogRG8g ZGFuIA0KdmEgdmkgZGFuOyB0aGFuaCBuZ3VvaSBkaSBsYW0gdGh1ZSBjaG8gY2FjIGNodSBkdSBh biEgQ2hpIHBoaSBjdW9uZyBjaGUga2hvbmcgdGh1IGR1b2MgDQpjdWEgZGFuISBMYWkgZGkgZG9p IGNhYyBjaHUgZHUgYW4gbnVvYyBuZ29haSENCg0KOCAtIFRoZW8gbmd1b2kgZGFuIHF1YW4gOTog QmFuIHRoYW4gT25nIFNhbmcgdGh1byBuaG8gcGhhaSBzb25nIHRyb25nIHRydW9uZyBnaWFvIA0K ZHVvbmcgZGFjIGJpZXQgZGFuaCBjaG8gdGhpZXUgbmllbiBodSBob25nISBOYXkgYmFuIGNoYXQg bmF5IGtob25nIHRoYXkgZG9pISBPbmcgZHVuZyANCmx1YXQgcnVuZywgZHVuZyBjdW9uZyBxdXll biBkZSB0cnUgZGFwIGRhbiBuZ2hlbyBsdW9uZyB0aGllbiEgQmkgVG8gY2FvIGdheSBnYXQgdGFp IA0KcXVhbiA5ISBOYXkgbGFpIHRpZXAgdHVjIHRhaSBRMiENCg0KOS8gQ2hpIHBoaSBkZW4gYnUg Z2lhaSBwaG9uZyBtYXQgYmFuZyBLRFRNIFRodSBUaGllbSB0cmVuIDUwIG5nYW4gdHkgVk5EOyB0 cm9uZyANCmtoaSBtb2kgY2hpIHRyYSBkZW4gYnUgZHVvYyBraG9hbmcgMTEgbmdhbiB0eSBWTkQg KHRyb25nIHNvIG5heSBjbyA1IG5nYW4gdHkgZG8gbmdhbiANCnNhY2ggdmEgNiBuZ2FuIHR5IHZh eSBtdW9uIHZhIGJhbiB0cmFpIHBoaWV1LCBkdSB0cnUgdHJhaSBwaGlldTogMjAgbmdhbiB0eSwg bmh1bmcga2hvbmcgDQpjbyBuZ3VvaSBtdWEhKS4gVmF5IG1hIHF1YW4gMiBkYW0gYmFvIGNhbyBs YW87IGRhIGdpYWkgdG9hIHRyZW4gOTAlPyBUaHVjIGNoYXQgY2h1YSANCmNvIG5oYSBkYXUgdHUg bmFvLCBtYSBjaGkgY28gbmhhIGRhdSB0dSBraW5oIGRvYW5oIG5oYSBvLCBwaGFuIGxvIGJhbiBu ZW4uLi4gZGUgZGF1IGNvLCANCnRydWMgbG9pIQ0KDQpLaWVuIE5naGk6IA0KDQpDaHVuZyB0b2kg Y2FjIERhbmcgdmllbiwgY2FuIGJvIHZhIG5oYW4gZGFuIGtldSBnb2kgbmh1bmcgbmd1b2kgY28g Y2h1YyBxdXllbiBwaGFpIA0KZ3VvbmcgbWF1IHR1YW4gdGh1IEx1YXQgUGhhcCBOaGEgTnVvYywg a2hvbmcgZHVvYyBsYWNoIGx1YXQsIG5ndXkgYmllbiBsYW0gdGhpZXQgaGFpIA0KY2hvIE5oYSBu dW9jIHZhIG5oYW4gZGFuISBOZXUgdmFuIGRlIHRpbmggdHJhbmcgYmF0IHR1YW4gbmh1IGhpZW4g bmF5IHNlIGdheSBoYXUgcXVhIA0Ka2hvIGx1b25nISBHYXkgbWF0IG5pZW0gdGluIG5nYXkgY2Fu ZyBuZ2hpZW0gdHJvbmcgdmkgIlRyZW4gYmFvLCBEdW9pIGtob25nIG5naGUiICANCnZhIGNodXll biB4YXkgZGVuIGtob25nIHRoZSB0cmFuaCBraG9pLCB0aGVvIGFuaCBzYW5nIGNoaSBkYW4gdHJ1 eWVuIHRob25nIGN1YSBkYW4gdG9jOg0KTm9pIG5hbyBjbyBhcCBidWMsIGJhdCBjb25nLCBib2Mg bG90LCBub2kgZG8gY28gZGF1IHRyYW5oISBLaGkgZG8gZ2lhaSBjYXAgYmkgYm9jIGxvdCBzZSAN Cm5vaSBkYXkhIERlIGJhbyB2ZSBxdXllbiBsb2kgY3VhIG1pbmggbWEgTHVhdCBQaGFwIGRhIHF1 aSBkaW5oLiANCg0KQ1UgVFJJIFFVQU4gMiBDVU5HIFRPIENBTyAmIEtFVSBDVVUgS0hBTiBDQVAN Cg0KRGluaCBrZW0gY2h1IGt5IGN1YSBjdSB0cmkgcXVhbiAyDQoNCk5vaSBHb2k6DQpUb25nIEJp IFRodSBUVyBEYW5nLCANCkNodSBUaWNoIFF1b2MgSG9pLCANCkNodSBUaWNoIG51b2MsIA0KVGh1 IFR1b25nIENoaW5oIFBodSwgDQpUb25nIFRoYW5oIFRyYSBDaGluaCBQaHUsIA0KQmFuIEtpZW0g VHJhIFRXIERhbmcsIA0KQmFuIENoaSBEYW8gcGhvbmcgY2hvbmcgdGhhbSBuaHVuZw0KSERORCAm IFVCTkQgVFAgSENNIChCYW4gUGhhcCBDaGUpIERvYW4gRGFpIEJpZXUgUXVvYyBob2kuIA0KDQpo dHRwOi8vdm50aHVxdWFuLm5ldC9kaWVuZGFuL3RtLmFzcHg/bT0zMzQ5MTImbXBhZ2U9MSZrZXk9 JiMzMzQ5MTIgMjUuMi4yMDA4IDc6MTA6MzMgIA0KDQpCYW8gY2h1YSBMZSBUaGFuaCBIYWkgbmd1 b2MgZGFpIDE1MDAgdHJlIGVtIHRhaSBraHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gDQoNCkJhbyBj aHVhIExlIFRoYW5oIEhhaSBkdW5nIGJhbiB0YXkgc2F0IGN1b25nIGNoaWVtIG5oYSBkYXQgY3Vh IGRhbiBuZ2hlbyEgRGEgYmkgbmhhbiANCmRhbiB0byBjYW8gdHJ1b2MgZHUgbHVhbiB0cm9uZyB2 YSBuZ29haSBudW9jISBOaHVuZyB2YW4gbmdvYW4gY28sIHRpZXAgdHVjIHBoYSBuYXQgcXVpIA0K aG9hY2ggS0RUTVRUISBDb2kgdGh1b25nIGR1IGx1YW4sIGNoYSBkYXAgbGVuIFBoYXAgTHVhdCwg bmdhbmcgbmhpZW4gdGhhY2ggdGh1YyBkdSANCmx1YW4gdmEgZGFjIGJpZXQgY29pIHRodW9uZyBj YXAgdHJlbiEgVGFpIHNhbyBobyBMYSBkYW0gbGlldSBtYW5nIG5odSB2YXk/IA0KDQpEbyBuaGFu IGRhbiBkYSBiaWV0IHJvIGFtIG11dSBhbiBjdW9wIGRhdCBjdWEgaG8gTGEsIG5lbiB2aWVjIGRp IGRvaSwgZ2lhaSB0b2EgYmkgbmd1bmcgDQp0cmUhIE5oYW4gZGFuIGtob25nIGNoYXAgbmhhbiBi YW8gY2h1YSBsb25nIGhhbmggdHJhaSBwaGFwIGx1YXQhIA0KDQpOYXkgaG8gTGEgbmdoaSByYSBt b3QgY2hpZXUgY3VjIGRvYyBhYzogTGEgZGFuaCB2YW8gdHJlIGVtIGRlIGdheSBhcCBsdWMhIERh eSBsYSBoYW5oIA0KZG9uZyBiaSBvaSBjdWMga3kgbmdoaWVtIHRyb25nOiANCg0KUGh1b25nIFRo dSBUaGllbSBsYSBtb3QgdHJvbmcgNSBwaHVvbmcgYmkgZ2lhaSB0b2EgdHJhbmchIE5heSBuZ3Vv aSBkYW4gcXV5ZXQga2hvbmcgDQpjaGl1IGRpIGRvaSwgdGhpIGhvIExhIHJhIGxlbmggcGhhaSBk dWEgY2FjIGVtIGhvYyBzaW5oIHRpZXUgaG9jIC0gdGh1b2MgdHJ1b25nIHRpZXUgaG9jIA0KVGh1 IFRoaWVtLCBraHUgcGhvIDEsIHBodW9uZyBUaHUgVGhpZW0gLSBkaSBkb2kgeHVvbmcgcGh1b25n IFRoYW5oIE15IExvaSwgY2FjaCB4YSANCm5vaSBvIGN1YSBjYWMgZW0ga2hvYW5nIGdhbiAyMCBr bSEgRGlldSBuYXkgYnVvYyBjYWMgYmFjIGNoYSBtZSBwaGFpIGRpIGRvaSB0aGVvIGNhYyANCmVt IG5obyB4dW9uZyBjYWMgY2h1bmcgY3UgY2hhdCBsdW9uZyB0aGFwLCBnaWEgY2FvLCBkZSBjaG8g Y2FjIGVtIG5obyBib3QgY3VjIG5ob2MgZG8gDQpwaGFpIGRpIGNodXllbiBkZW4gdHJ1b25nISBO ZXUga2hvbmcgdGhpIGNhYyBlbSBuaG8gYnVvYyBwaGFpIHRoYXQgaG9jISBUdSBuaGllbiANCmto b25nIGNhbiBwaGFpIG5ob2MgY29uZyBnaWFpIHRvYSBtYSBuZ3VvaSBkYW4gcGhhaSB1biB1biBj aGF5IHRoZW8hIA0KDQpWaSBjaGEgbWUgbmFvIGN1bmcgbXVvbiBjaG8gY29uIGNhaSBtaW5oIGhv YyBoYW5oIGRlbiBub2kgZGVuIGNob24sIG5lbiBwaGFpIGNvIHRhbyANCm1vaSB0aHVhbiBsb2kg Y2hvIGNvbiBjYWkgbWluaCEgQmlldCBkdW9jIHlldSBkaWVtIG5heSwgbmVuIEJhbyBjaHVhIGJl biBuZ2hpIHJhIGNhY2ggDQpkYW5oIHZhbyB0cmUgZW0sIHRoaSB0YXQgbmhpZW4gY2hhIG1lIHZp IHRodW9uZyBjb24gbmVuIGJ1b2MgbG9uZyBwaGFpIGNoYXAgdGh1YW4gZGkgZG9pIA0Kdm9pIGdp YSBkZW4gYnUgcmUgbWF0ISBDaHVhIGR1b2MgMTAlIGdpYSB0cmkhIA0KDQpIb2kgcGh1IGh1eW5o IGhvYyBzaW5oIGRhbmcgdGljaCBjdWMga2hpZXUgbmFpISBOZXUga2hvbmcgZHVvYywgdGhpIGRh bmggcGhhaSBoaSBzaW5oIA0KYmFuZyBjYWNoIGRlIGNobyBjb24gZW0gbmdoaSBob2MhIE5ldSAx NTAwIGhvYyBzaW5oIHRpZXUgaG9jIHBoYWkgbmdoaSBob2Mgdmkga2hvbmcgDQpkb25nIHkgZGkg ZG9pIHRoaSBCYW8gY2h1YSBjbyBjb24gZHVuZyB2dW5nIT8gQXQgc2UgdGhhbmggdmllYyBsb24h IEx1YyBkbyBkdSBsdWFuIHRyb25nIA0KdmEgbmdvYWkgbnVvYyBzZSBraG9uZyBkZSB5ZW4gY2hv IGhvIExhISANCg0KVHJ1b25nIHRpZXUgaG9jIFRodSBUaGllbSBjbyBraG9hbmcgMTUwMCBlbSBu aG8gaG9jIHRpZXUgaG9jLCBkYSBzbyBjYWMgZW0gbW9pIGNoaSANCmhvYyBsb3AgMSB2YSBsb3Ag MiwgdHVjIHZhbyBkbyB0dW9pIHR1IDYgZGVuIDggdHVvaS4gTmdvaSB0cnVvbmcgbmF5IHRydW9j IGRheSBsYSBUcnVvbmcgDQpUaWV1IEhvYyBjaG8gaG9jIHNpbmggbnUgdGVuIHRydW9uZzpUaGFu aCBBTk5BLCB0aHVvYyBxdXllbiBzbyBodXUgY3VhIERvbmcgTWVuIA0KVGhhbmggR2lhIFRodSBU aGllbSwgbmF5IGJpIGN1b25nIGNoaWVtIHZhIGRpbmggZHVhIHZhbyBraW5oIGRvYW5oLCB0cmkg Z2lhIGdhbiB0cmFtIA0KdHJpZXUgbW90IG1ldCB2dW9uZyEgRHVvYyBiaWV0IGRvIGtob25nIGR1 bmcgdmFvIG11YyBkaWNoIGdpYW8gZHVjLCBuZW4gZG9uZyBNZW4gDQpUaGFuaCBHaWEgVGh1IFRo aWVtIGhpZW4gZGFuZyBkb2kgbGFpIHRydW9uZyBkZSBkdW5nIGR1bmcgbXVjIGRpY2ggYmFuIGRh dS4gDQoNCkN1IHRyaSBxdWFuIDIga2V1IGdvaSBtb2kgbmd1b2kgaGF5IHRpZXAgdGF5IHZvaSBi YSBjb24gVGh1IFRoaWVtIHBoYWkga2llbiBxdXlldCBjaGFuIA0KZHVuZyBoYW5oIHZpIHRobyBi YW8gdmEgbWF0IG5oYW4gdGluaCBuYXkgY3VhIGJhbyBjaHVhIExlIFRoYW5oIEhhaS4gDQoNClRy b25nIHRob2kgZ2lhbiB2dWEgcXVhLCBjaGkgY28gdnUgaGFuaCBodW5nIG5ndW9jIGRhaSBtb3Qg dmFpIHRyZSBlbSBtYSBiYW8gY2hpIHRyb25nIA0KbnVvYyBsaWVuIHR1YyBkYW5nIHRpbiEgTmF5 IEJhbyBjaHVhIG5ndW9jIGRhaSAxNTAwIGhvYyBzaW5oIG5obyB0aGkga2hvbmcgbW90IHRvIGJh byANCm5hbyBvIFRoYW5oIFBobyBIbyBDaGkgTWluaCBkYW0gZHVhIHRpbiE/IA0KDQpYaW4gaG9p OiBDaHUgbmdoaWEgeGEgaG9pIGxhIHV1IHZpZXQ7IGtob25nIGNvIGNhbmggbmd1b2kgYm9jIGxv dCBuZ3VvaSEgVmllYyBiYW8gY2h1YSANCkxlIFRoYW5oIEhhaSBhbiBjdW9wIGRhdCBjdWEgZGFu IG5naGVvIGdpdWEgYmFuIG5nYXkgZGUgdGh1IGxvaSBiYXQgY2hpbmgsIGJhbmcgY2h1bmcgDQp2 dW5nIG5odSBudWkhIFZheSBWaWV0IE5hbSB0aGVvIGNodSBuZ2hpYSBuYW8gaGF5IGRhIGJvYyBs byBjaGFuIHR1b25nIGNodSBuZ2hpYSBib2MgbG90PyANCg0KaHR0cDovL3d3dy5uZ3VvaS12aWV0 LmNvbS9hYnNvbHV0ZW5tL2FubXZpZXdlci5hc3A/YT04ODYwMiZ6PTE1NyAyNC8xMi8yMDA4DQoN CkNvbmcgdHJpbmggYmUgYm9pIG5oYXQgU2FpIEdvbiBsaWVuIHF1YW4gZGVuIExlIFRoYW5oIEhh aSwgSHV5bmggTmdvYyBTaSwgMiBxdWFuIGNodWMgdmFuIGJpbmggYW4gdm8gc3UNCiANCkFuaCBj aHVwOiBPbmcgTGUgVGhhbmggSGFpLCBjdXUgY2h1IHRpY2ggVFAgU2FpIEdvbiwgbmF5IGxhIHV5 IHZpZW4gQm8gQ2hpbmggVHJpIA0Ka2llbSBiaSB0aHUgVGhhbmggVXkgU2FpIEdvbiwgZHVvYyB4 ZW0gbGEgImRhbyBkaWVuIiBjYWMgZHUgYW4gdGFpIHRpZW5nIG8gU2FpIEdvbi4NCg0KU2FpIEdv biAoTlYpIC0gVGhhbmggdHJhIHRoYW5oIHBobyBTYWkgR29uIHZ1YSBjb25nIGJvIGtldCBsdWFu IHRoYW5oIHRyYSAiRHUgYW4gDQpjYXUtZHVvbmcgTmd1eWVuIEh1dSBDYW5oIi4gTHVjIGRhdSwg dG9uZyB2b24gZGF1IHR1IGNobyBkdSBhbiBuYXkgbGEgMjc4IHR5IGRvbmcsIHNhdSANCmRvIGR1 b2MgImRpZXUgY2hpbmgiIHRoYW5oIDQxOSB0eSBkb25nLiBOYW0gbmFtIHNhdSBraGkgaG9hbiB0 aGFuaCAoMjAwMiksIGhvaSBnaXVhIA0KbmFtIDIwMDcsIFVCTkQgdGhhbmggcGhvIFNhaSBHb24g cGhhaSBjaGkgMTQxIHR5IGRlIHN1YSBjaHVhIGNhdSBWYW4gVGhhbmggMiAobmFtIA0KdHJvbmcg ZHUgYW4pIHZhIGhhaSBkYXUgZHVvbmcgZGFuIHZhbyBjYXUuIENodWEga2UgcGhhaSBjaGkga2hv YW5nIDQgdHkgZG9uZyBjaG8gNTcgDQpjYW4gbmhhIGJpIG51dC4NCg0KVGhhbmggdHJhIHRoYW5o IHBobyBTYWkgR29uIGRhIHhhYyBkaW5oICJEdSBhbiBjYXUgZHVvbmcgTmd1eWVuIEh1dSBDYW5o IiBsYSAiYmUgDQpib2kgbmhhdCBTYWkgR29uIiB2YSAibGFwIGt5IGx1YyB2ZSBjYWMgc2FpIHBo YW0iLg0KDQpIb2kgY3VvaSB0aGFwIG5pZW4gMTk5MCwgIkR1IGFuIGNhdSBkdW9uZyBOZ3V5ZW4g SHV1IENhbmgiIHR1bmcgZHVvYyB4YWMgZGluaCBsYSANCm1vdCB0cm9uZyBuaHVuZyBjb25nIHRy aW5oIHF1YW4gdHJvbmcgbmhhdCBkZSBwaGF0IHRyaWVuIFNhaSBHb24uIER1IGFuIG5heSBub2kg ZGFpIA0KZHVvbmcgTGUgVGhhbmggVG9uIChjaG8gdGllcCBnaWFwIHZvaSBkdW9uZyBUb24gRHVj IFRoYW5nLCB0ZW4gY3UgbGEgQ3VvbmcgRGUpLCBjaGF5IA0KY2FwIGhvbmcgVGhhbyBDYW0gdmll biAoU28gVGh1KSwgcXVhIGhhaSBjYXkgY2F1IGRhbiByYSBUYW4gQ2FuZyAoa2h1IHZ1YyBjaGFu IGNhdSBTYWkgR29uKS4gDQpUdXkgbmhpZW4sIHNhdSBraGkgaG9hbiB0YXQsIHRvYW4gYm8gY29u IGR1b25nIGN1bmcgbmh1IGhhaSBjYXkgY2F1IChjYXUgTmd1eWVuIEh1dSBDYW5oLCANCmNhdSBW YW4gVGhhbmggMikgZGV1IGx1biwgc3V0LCBiaWVuIGRhbmcuIER1b25nIE5ndXllbiBIdXUgQ2Fu aCB0cm8gdGhhbmggY29uIGR1b25nIA0KbmdhcCBuYW5nIG5oYXQgU2FpIEdvbi4NCg0KVGhlbyB0 aGFuaCB0cmEgdGhhbmggcGhvIFNhaSBHb24sIGNvbmcgdHkgVGhhbmggTmllbiBYdW5nIFBob25n LCBjaHUgZGF1IHR1ICJEdSBhbiANCmNhdS1kdW9uZyBOZ3V5ZW4gSHV1IENhbmgiIHBoYWkgY2hp dSB0cmFjaCBuaGllbSB2ZSB2aWVjIGx1biBudXQgZHVvbmcsIGx1biBudXQgZHVvbmcgDQpkYW4g bGVuIGNhdSB2YSBsdW4gdm8gY2F1IFZhbiBUaGFuaCAyIHZpIGtob25nIHR1YW4gdGh1IHF1eSBk aW5oIHF1YW4gbHkgY2hhdCBsdW9uZyB4YXkgZHVuZy4NCg0KVHUgdmFuIHRoaWV0IGtlIGxhIGNv bmcgdHkgVHUgVmFuIFRoaWV0IEtlIEdpYW8gVGhvbmcgVmFuIFRhaSBwaGlhIE5hbSwgdHUgdmFu IGdpYW0gDQpzYXQgbGEgcGhhbiB2aWVuIEtob2EgSG9jIENvbmcgTmdoZSBHaWFvIFRob25nIFZh biBUYWkgY3VuZyB0aHVvYyBCbyBHaWFvIFRob25nIFZhbiBUYWksIA0KcGhhaSBjaGl1IHRyYWNo IG5oaWVtIGNoaW5oIHZlIHZpZWMgbHVuIG51dCBkdW9uZyBkYW4gbGVuIGNhdSBWYW4gVGhhbmgg MiBsYW4gdGh1IGhhaSANCihzYXUga2hpIHN1YSkgdmEgbnV0IG5oYSBkYW4uLi4NCg0KRGFuZyBs dXUgeSBsYSBraG9uZyB0aGF5IHRoYW5oIHRyYSB0aGFuaCBwaG8gU2FpIEdvbiBkZSBjYXAgZGVu IHRyYWNoIG5oaWVtIGN1YSBvbmcgSHV5bmggDQpOZ29jIFN5IHZhIG9uZyBMZSBUaGFuaCBIYWku DQoNCkhvaSBkYXUgdGhhcCBuaWVuIDIwMDAsIG5oaWV1IHRvIGJhbyBvIFNhaSBHb24gZGEgYmF0 IGRhdSBoZSB0aG9uZyB2YSBjb25nIGJvIGhhbmcgbG9hdCANCnNhaSBwaGFtIGN1YSBjb25nIHR5 IFRoYW5oIE5pZW4gWHVuZyBQaG9uZywgdGh1b2MgbHVjIGx1b25nIFRoYW5oIE5pZW4gWHVuZyBQ aG9uZyBkbyBvbmcgDQpIdXluaCBOZ29jIFN5IGxhbSBnaWFtIGRvYy4gVHV5IHRoaWV1IGNhIG5o YW4gbHVjLCBraW5oIG5naGllbSwgdGFpIGNoYW5oLCB0aGlldCBiaSBuaHVuZyANCmNvbmcgdHkg VGhhbmggTmllbiBYdW5nIFBob25nIHZhbiBkdW9jIG9uZyBMZSBUaGFuaCBIYWkgKGN1dSBjaGkg aHV5IHRydW9uZyBsdWMgbHVvbmcgDQpUaGFuaCBOaWVuIFh1bmcgUGhvbmcpLCBsdWMgZG8gbGEg Y2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gU2FpIEdvbiBnaWFvIGxhbSBjaHUgZGF1IHR1IG5oaWV1 IA0KY29uZyB0cmluaCBoYSB0YW5nIGdpYW8gdGhvbmcgbmh1OiBEdSBhbiBjYXUtZHVvbmcgTmd1 eWVuIEh1dSBDYW5oLCBEdSBhbiBuYW5nIGNhcC1tbyByb25nIA0KZHVvbmcgRGllbiBCaWVuIFBo dSwgRHUgYW4geGF5IGR1bmcgdHJhbSB0aHUgcGhpIHhhIGxvIEhhIE5vaSwgRHUgYW4gbmFuZyBj YXAtbW8gcm9uZyBkdW9uZyANCmxpZW4gdGluaCBsbyAyNS4uLiB2YSBjdW9pIGN1bmcgdGF0IGNh IG5odW5nIGR1IGFuIG5heSBkZXUga2VtIGNoYXQgbHVvbmcgKGR1b25nIGx1biwgaGFtIGx1biwg DQpjYXUgbHVuLCBiaSB0aHVuZyBtYXQsLi4uKSwgZGVuIG5heSB2YW4gY2h1YSBraGFjIHBodWMg eG9uZyBoYXUgcXVhLg0KDQpEdSB0YW8gcmEgdm8gc28gZGlldSB0aWVuZyBuaHUgdnVhIGtlIHNv bmcgb25nIEh1eW5oIE5nb2MgU3kgdmFuIGR1b2MgYm8gbmhpZW0gbGFtIHBobyBnaWFtIA0KZG9j IFNvIEdpYW8gVGhvbmcgQ29uZyBDaGFuaCBTYWkgR29uIGtpZW0gZ2lhbSBkb2MgQmFuIFF1YW4g THkgRHUgQW4gRGFpIExvIERvbmcgVGF5IHZhIA0KTW9pIFRydW9uZyBOdW9jLiBUdSB0aGFuZyA2 IHZ1YSBxdWEgZGVuIG5heSwgb25nIEh1eW5oIE5nb2MgU3kgdHJvIHRoYW5oIG5oYW4gdmF0IGNo aW5oIHRyb25nIA0KdnUgbmhhbiA4MjAgbmdhbiBVU0QgZG8gdGFwIGRvYW4gUENJIGN1YSBOaGF0 IGhvaSBsby4gQm9pIGNoaW5oIHF1eWVuIGN1YSBEQ1NWTiB0aGlldSB0aGllbiBjaGkgDQpob3Ag dGFjIGRpZXUgdHJhIHZlIHZ1IG5oYW4gaG9pIGxvIG5heSwgY2hpbmggcGh1IE5oYXQgZGEgcXV5 ZXQgZGluaCB0YW0gbmd1bmcgZ2lhaSBuZ2FuIGNhYyBraG9hbiANCnZheSB1dSBkYWkgZGFuaCBj aG8gVmlldCBOYW0uIENoaW5oIHF1eWVuIENTVk4gY2hpIG1vaSB0YW0gZGluaCBjaGkgY2h1YyB2 dSBjdWEgb25nIEh1eW5oIE5nb2MgU3ksIA0KY2h1eWVuIG9uZyBTeSB0dSBCYW4gUXVhbiBMeSBE dSBBbiBEYWkgTG8gRG9uZyBUYXkgdmEgTW9pIFRydW9uZyBOdW9jIHZlICJzaW5oIGhvYXQgRGFu ZyIgdGFpIFNvIEdpYW8gVGhvbmcgVmFuIFRhaS4gDQoNClNhdSBraGkgdnUgUENJIGRvIGJlLCBo b2kgdGhhbmcgNywgZGFtIGN1b2kgZ2l1YSBjb24gb25nIEh1eW5oIE5nb2MgU3kgdmEgb25nIExl IFRoYW5oIEhhaSBkYSBiaSB0YW0gaG9hbi4NCg0KSG9pIGN1b2kgbmFtIG5nb2FpLCB0byBEYWkg RG9hbiBLZXQgdHVuZyBjb25nIGJvIG1vdCBsb2F0IGJhaSBkaWV1IHRyYSB2ZSB2aWVjIFVCTkQg dGhhbmggcGhvIA0KU2FpIEdvbiB0dSBkb25nIGRlbSBiYW4gdG9hbiBibyBkYXQgZGFuaCBjaG8g dmllYyB0YWkgZGluaCBjdSBuaHVuZyBnaWEgZGluaCBiaSB0aHUgaG9pIGRhdCwgDQpnaWFpIHRv YSBuaGEgZGUgdGh1YyBoaWVuIGR1IGFuIGRhaSBsbyBEb25nIFRheSwgZG9uZyB0aG9pIGNoaSBk aWNoIGRhbmggbmd1b2kgcGhhaSBjaGl1IHRyYWNoIA0KbmhpZW0gdmUgc2FpIHBoYW0gZG8gbGEg b25nIExlIFRoYW5oIEhhaSAobmF5IGxhIHV5IHZpZW4gQm8gQ2hpbmggVHJpLCBraWVtIGJpIHRo dSBUaGFuaCBVeSBTYWkgR29uKS4gDQoNCk5odW5nIGRpZW4gYmllbiBtb2kgbmhhdCBsaWVuIHF1 YW4gZGVuIHZ1IFBDSSBjaG8gdGhheSwgdmllYyAidGhpZXQga2UgY2hpIHRpZXQgZGFpIGxvIERv bmcgVGF5IA0KdmEgZ2lhbSBzYXQgeGF5IGR1bmcgY28gc28gaGEgdGFuZyBzYXUga2h1IHRhaSBk aW5oIGN1IiB0aHVvYyBtb3QgdHJvbmcgYmEgZ29pIHRoYXUgY28gbGllbiBxdWFuIGRlbiBQQ0ku IA0KKEcuRCkNCg0KaHR0cDovL2hlbnZlc2FpZ29uMS53b3JkcHJlc3MuY29tLzIwMDkvMDIvMTAv JUUyJTgwJTlDYW5oLWhhaSVFMiU4MCU5RC1sZS10aGFuaC1oJUUxJUJBJUEzaS1iaS10aCVDNiVC MC10aGFuaC0lRTElQkIlQTd5LXNhaWdvbi0lRTIlODAlOUN0aCVDNiVCMCVFMiU4MCU5RC0lRTIl ODAlOUNhbmgtYmElRTIlODAlOUQtbmd5JUUxJUJCJTg1bi10JUUxJUJBJUE1bi1kdW5nLSVFMiU4 MCU5M3RoJUUxJUJCJUE3LXQlQzYlQjAvIERvbmcgQ2hpIDEwLzIvMjAwOQ0KDQpUUCBIQ006IEJp IHRodSB0aGFuaCB1eSBTYWlnb24gTGUgVGhhbmggSGFpIHRoYXQgcmEgbGEgaG8gTGEgbmd1b2kg SG9hLCBraG9uZyBiaWV0IHR1IGx1YyANCm5hbyB0cmVuIGJ1b2MgZHVvbmcgZGFuZyBudW9jIFZp ZXQgY2hvIFRhdSBjb25nIG1hIGhvIExhIGJpZW4gdGhhbmggaG8gTGUgDQoNCmh0dHA6Ly92bmV4 cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzAzLzNCOUU3QjA0LyAxNi8zLzIwMDYsIDEwOjIyIEdN VCs3IEx1dSBEdWMNCg0KVFAgSENNOiBDYXUgVmFuIFRoYW5oIDIgYmkgdGh1bmcgbW90IGhvIGxv biAtIHJvbmcgZ2FuIDIgbSwgbmdheSBtbyBoYW0gY2h1aSBwaGlhIHF1YW4gQmluaCBUaGFuaC4g DQpOaHUgdmF5LCBjaGkgc2F1IGhvbiB0aGFuZyBydW9pIHN1YSBjaHVhIHZhIGR1YSB2YW8gc3Ug ZHVuZywgY2F5IGNhdSBuYXkgbGFpIHhheSByYSBzdSBjby4NCg0KaHR0cDovL3ZuZXhwcmVzcy5u ZXQvR0wvWGEtaG9pLzIwMDYvMDMvM0I5RTdCOTUvIDE3LzMvMjAwNiwgMTI6MDEgR01UKzcNCg0K VFAgSENNOiAnVmV0IHRodW5nIHRyZW4gY2F1IFZhbiBUaGFuaCAyIHF1YSBnaGUgcm9uJw0KDQpQ aG8gZ2lhbSBkb2MgU28gR2lhbyB0aG9uZyBjb25nIGNoaW5oIFRQIEhDTSBOZ3V5ZW4gVmlldCBT b24gZGEgdGhvdCBsZW4gbmh1IHZheSwgDQpraGkgdHJhbyBkb2kgdm9pIFZuRXhwcmVzcyBjaGll dSAxNi8zIHZlIHN1IGNvIHhheSByYSBsdWMgMGggY3VuZyBuZ2F5IHRhaSBjYXkgY2F1IG5vaSB0 aWVuZyBuYXkuDQoNCiJDYWkgY2hvIHRodW5nIGF5IGdoZSBxdWEuIENoaSBjYW4geGUgZGkgcXVh LCBsb3QgYmFuaCBsYSBsYXQgbGllbi4gTW90IGNheSBjYXUgbWEgDQpsaWVuIHRpZXAgeGF5IHJh IGNhYyBzdSBjbywgcm9pIHRvaSBkYXkgbGEgZ2kgbnVhPyBHaGUgcXVhISIsIFBobyBnaWFtIGRv YyBTbyBHVENDIG5vaS4NCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwNDA1MzA4NS9kdW9uZ19n aXVhX2hhbV9jaHVpX3ZhX2NhdV92YW5fdGhhbmhfMl9sdW5fN190YWMuaHRtbCBUdW9pIHRyZSAt IDI1LzEwLzIwMDUNCg0KVFAgSENNOiBEdW9uZyBnaXVhIGhhbSBjaHVpIHZhIGNhdSBWYW4gVGhh bmggMjogTHVuIDcgdGFjICg3MGNtKQ0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kv MjAwNi8wMy8zQjlFODMxRC8gMzAvMy8yMDA2LCAwNzoxMiBHTVQrNw0KDQpUUCBIQ006IE5oaWV1 IGhhbmcgbXVjIGNhdSBWYW4gVGhhbmggMiBjbyB0aGUgc2FwIGJhdCBjdSBsdWMgbmFvIA0KDQpE byBsYSBub2kgZHVuZyBtb3QgcGhhbiB0cm9uZyBjb25nIGRpZW4ga2hhbiBjdWEgQm8gR2lhbyB0 aG9uZyBWYW4gdGFpIHZ1YSBndWkgDQpVQk5EIFRQIEhDTS4gVHJvbmcgZG8gY2hpIHJvLCBuZ29h aSBraHUgdnVjIHF1YW5oIGxvIHRodW5nIGRlbSAxNS8zLCBuaGlldSBoYW5nIA0KbXVjIGtoYWMg Y3VhIGNheSBjYXUgbmF5IGNvIHRoZSBiaSBzYXAgYmF0IGN1IGx1YyBuYW8uIEhhbmcgY2h1YyBu Z2hpbiB4ZSB0YWkgDQpsdXUgdGhvbmcgcXVhIFZhbiBUaGFuaCAyIG1vaSBuZ2F5IGRhbmcgdHJv bmcgdGluaCB0cmFuZyBjdWMga3kgbmd1eSBoaWVtLiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQv R0wvWGEtaG9pLzIwMDYvMDMvM0I5RTdFRDAvIDIzLzMvMjAwNiwgMTA6MTggR01UKzcNCg0KVFAg SENNOiBDYXUsIGR1b25nIE5ndXllbiBIdXUgQ2FuaCBsYW0gZHUgdGh1ICd0cm9uZyBiZW5oJyAt IE5ndXkgY28gZG8sIHNhcCBiYXQgY3UgbHVjIG5hbw0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9H TC9YYS1ob2kvMjAwNi8wMy8zQjlFN0VEMC8gMjMvMy8yMDA2LCAxMDoxOCBHTVQrNw0KDQpUUCBI Q006IENhdSB2dW90IE5ndXllbiBIdXUgQ2FuaCBsdW4gcXVhIGRvIHZhIGtlbSBteSBxdWFuDQoN Ci0tLS0tDQpQaGFuIDQ6IEN1IHRyaSBraWVuIG5naGk6IEJvIGNoaW5oIHRyaSBraWVtIHRyYSwg a2llbSBkaWVtLCBjaGF0IHZhbiwgY2FjaCBjaHVjIG9uZyBMZSBIb25nIEFuaCB0aGFtIG5odW5n LCB0aG9pIG5hdCANCg0KaHR0cDovL2hvbGFuaHVvbmcubXVsdGlwbHkuY29tL2pvdXJuYWwvaXRl bS8xMDE3IGZvciBldmVyeW9uZSAxNi81LzEwIDEyOjU4IEFNIA0KDQpOZ3VvaSBkYW4gYmF0IGJp bmggdmUgY2FpIGtoYXUgaGlldSBjdWEgb25nIEJvIHRydW9uZyBMZSBIb25nIEFuaCAgDQoNCkFu aCBjaHVwOiBQYW5vICJDb25nIGFuIG5oYW4gZGFuIGNoaSBiaWV0IGNvbiBkYW5nIGNvbiBtaW5o IiBvIHRydSBzbyBCbyBDb25nIGFuIC0gSGEgTm9pIA0KDQoiQ2hpIGJpZXQgY29uIGRhbmcsIGNv biBtaW5oIiBsYSBwaGllbiBkaWVuLCBjdWMgZG9hbiwgdGhpZXUga2luaCB0cm9uZyBuaGFuIGRh biEgDQoNClBoYW4gZG9pIGtlIGRhIHJhIGxlbmggbGFtIHJhIGNhaSBwYW5vIGNvIGRvbmcgbmF5 ISANCkJvIHRydW9uZyBjdW5nIHR1IGRhbiBtYSByYSwgZ2lvIHF1YXkgbGFpIGNvaSB0aHVvbmcg ZGFuISANCkR1bmcgbGEgYW4gY2hhbyBkYWkgYmF0ISANCktob25nIGNvIGRhbiwgb25nIGxhbSBk dW9jIGdpPyANCktob25nIGNvIGRhbiB0aGkgY29uIGNodSBxdXllbiBkYXQgbnVvYyBraG9uZz8g IA0KS2hvbmcgY28gZGFuIGxhbSByYSBjdWEgY2FpIGRvbmcgdGh1ZSB0aGkgb25nIGxheSBnaSBt YSBodW9uZz8gDQoNCktoYXUgaGlldSBjdWEgb25nIG5odSB0aGUgdGhpIGtoYWMgZ2kgb25nIGNo dWkgdGhhbmcgdmFvIG1hdCBuZ3VvaSBkYW4hICANCg0KWSBraWVuIGJhbiBkb2M6DQoNCkNvaHV5 bmggMTYvNToNClBhbm8gbmF5IGRhIG5vaSBsZW4gc3UgdGhhdCEgDQoNCkhvbGFuaHVvbmcgQW5o dGh1IDE2LzU6IA0KTyBkYXkgaGF1IG5odSBraG9uZyBub2kgdG9pIGNodSBuaGFuIGN1YSBkYXQg bnVvYyBsYSBkYW4gdG9jIFZOLCBuZ3VvaSBkYW4gVk4gIA0KDQpWR0ggMTYvNToNCkNhbmcgZG9j IHRoaSBjYW5nIHJvIGJhbiBjaGF0IHRob2kgbmF0IA0KDQpNb3QgbmFuZyBoYWkgc3VvbmcgMTYv NTogDQoNCkJvIHRydW9uZyBjaG8gdm9pIG5nYW8gZG9pIA0KQW4gdHJlbiBuZ29pIGNob2MgYnVv bmcgbG9pIGtoaW5oIGtoaSANCk5hbmcgbXVhIG5vbmcgdnUgZGVuIGt5ICANCk1vbmcgbmF5IGto b25nIGNob25nIGxheSBnaSBvbmcgeG9pPyAgIA0KDQpMLkggMTYvNToNCkJvIHRydW9uZyBDQSBr aG9uIG5hbiwga2hvbmcgY28gbmd1b2kgZGFuIGxhbSBsdW5nLCBkb25nIHRodWUgdGhpIGxheSBk YXUgcmEgbWF1IGwuLi4gY2hvIG9uZyBsaWVtPyAgDQoNClRpYSBYIDE2LzU6DQpLaGF1IGhpZXUg bmF5IGhhbSBjaHVhIHN1IGJpIHF1YW47IHJhdCB4dWkgcXVheSEgDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi9oY20vMjAxMDA5L0NoaS10aWV0LXZ1LWNhdC1jby1sYW5oLWRhby1RUGh1LU5o dWFuLXRhaS1uaGEtcmllbmctOTM2NjkxLyAxNzozNCwgMjAvMDkvMjAxMCAoR01UKzcpIA0KDQpB TlRUOiBIYWkgbGFuaCBkYW8gcXVhbiBQaHUgTmh1YW4gYmkgc2F0IGhhaSAoVFAuSENNKSANCg0K MiB0aGFuaCBuaWVuIHRpbSBkZW4gbmhhIGhhbmggaHVuZywgY2F0IGNvIDMgbmd1b2kgcGh1IG51 LiANCkRvbmcgZGFvIGNhbmggc2F0IGRhIHRvaSBiYXQgaHVuZyB0aHUuIDMgbmFuIG5oYW4gZHVv YyBjaHV5ZW4gZGkgY2FwIGN1dSBiYW5nIHhlICJ0YXhpIiAoMSBuZ3VvaSBjaGV0LCAyIG5ndW9p IGJpIHRodW9uZyBuYW5nKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDM5LzIwMTAwOTIyMDExNDI5LmFzcHggVGhhbmggRG9uZyAtIEJ1aSBDaGllbiAyMi8w OS8yMDEwIDE6MTQgDQoNCiJDb25nIGRhbiBraG9uZyBxdW9jIHRpY2giICANCg0KTW90IGJvIHBo YW4gbmd1b2kgZGFuIGRlbiBsdWMgY2hldCBjdW5nIGNodWEgdGhlIGhvYW4gdGhhbmggdGFtIG5n dXllbiBjaGluaCBkYW5nIGxvIGNhaSANCnNvIGhvIGtoYXUgY2hvIGdpYSBkaW5oIHZhIGNhYyBj b24gZHVvYyBjYWkgZ2lheSBDTU5ELCBtYWMgZHUgZGEgbmhpZXUgbGFuIGRlIGRhdCB2b2kgY2Fj IGNvIHF1YW4gY28gdGhhbSBxdXllbi4NCg0KKEFuaCBjaHVwOiBCYSBIdWUgdmEgY2FjIGNvbiBj aGF1IGRlbiBnaW8gbmF5IHZhbiBtbyBjbyBkdW9jIHNvIGhvIGtoYXUgLSBBbmg6IFRoYW5oIERv bmcpDQoNCktoaSBQViBUaGFuaCBOaWVuIHRpbSBkZW4gbmhhLCBvbmcgVGluaCB2dWEgcXVhIGRv aSA0IG5nYXkuIE5oaW4gY2FuIG5oYSB0cmFuaCwgdmFjaCANCmRhdCwgeGFjIHhvIGR1IHRoYXkg Z2lhIGRpbmggb25nIFRpbmgga2hvIGtoYW4gdGhlIG5hby4gQmVuIGRpIGFuaCBjaG9uZywgYmEg SHVlIHRob24gDQp0aHVjOiAiT25nIG5oYSB0b2kgY2hvIGRlbiBsdWMgY2hldCBjdW5nIGNodWEg dGhlIGhvYW4gdGhhbmggdGFtIG5ndXllbiBsbyBjYWkgc28gaG8gDQpraGF1IGNobyBnaWEgZGlu aCB2YSBjYWMgY29uIGR1b2MgY2FpIGdpYXkgQ01ORCIuIA0KDQpEbyBsYSBiaSBraWNoIGN1YSBn aWEgZGluaCBvbmcgVHJhbiBUaGFuaCBUaW5oIHZhIGJhIEh1eW5oIEh1ZSBvIDE0M0EvNiBkdW9u ZyBCbyANCkdhLCB0byA2LCBhcCAxLCB4YSBBbiBQaHUgVGF5IChodXllbiBCaW5oIENoYW5oLCBU UC5IQ00pLiBPbmcgVGluaCBxdWUgbyBRdWFuZyANCk5nYWksIGtldCBob24gdm9pIGJhIEh1ZSB0 YWkgU2FpIEdvbiB0cnVvYyBuYW0gMTk3NS4gTmFtIDE5ODksIGhvIGRvbiB2ZSBkaWEgY2hpIHRy ZW4gDQpzb25nIGNobyBkZW4gbmF5LiBPbmcgVGluaCBjbyBobyBraGF1IG8gUXVhbmcgTmdhaSB2 YSBjbyBDTU5ELCBiYSBIdWUgdGhpIGdpYSBkaW5oIHR1IA0KdGFuLCBnaWF5IHRvIG1hdCBoZXQs IGNoaSBjb24gQ01ORCwgbmhhIGtob25nIGNvIGNodSBxdXllbiBuZW4gdmllYyBuaGFwIGtoYXUg DQpUUC5IQ00gbGEga2hvbmcgdGhlLiBCYSBIdWUgY28gNCBuZ3VvaSBjb24sIGdpYXkgdG8gdHV5 IHRoYW4gY3VhIGhvIGNoaSBjbyB2b24gdmVuIA0Ka2hhaSBzaW5oLiBOZ3VvaSBjb24gbG9uIG5h eSBkYSAzMyB0dW9pLCBuaG8gbmhhdCAyNiB0dW9pLCB0YXQgY2Ega2hvbmcgZHVvYyBob2MgaGFu aCANCmRlbiBub2kgZGVuIGNob24uIEtoaSB0cnVvbmcgdGhhbmgsIG1vIHVvYyBuaG8gbmhvaSBs YSB4aW4gdmFvIGxhbSBjb25nIG5oYW4gY3VhIA0KY2FjIGNvbmcgdHksIHhpIG5naGllcCBjdW5n IHRybyBuZW4geGEgdm9pLiANCg0KW1RpZXAgeHVjIHZvaSBUaGFuaCBOaWVuLCBvbmcgTmd1eWVu IFZhbiBDaGllbiwgUGhvIGJpIHRodSBEYW5nIHV5IHhhIHZhIG9uZyANCk5ndXllbiBLaW0gS2hh bmgsIFBobyBjaHUgdGljaCBVQk5EIHhhIEFuIEJpbmgsIGRldSBjaG8gYmlldCBzZSB0aWVuIGhh bmggeGVtIHhldCwgDQp4YWMgbWluaCB2ZSB0cnVvbmcgaG9wIGN1YSBvbmcgTHVvbmcgWHVhbiBU aGFuaC4gIkRheSBsYSBtb3QgdGhpZXUgc290IGN1YSBkaWEgDQpwaHVvbmcgY2h1bmcgdG9pIGto aSBhbmggVGhhbmggc29uZyB0cmVuIGRpYSBiYW4gZGEgbGF1IG1hIGtob25nIGNvIGdpYXkgdG8g Z2kgY2EuIA0KVHJ1b2MgbWF0LCBjaHVuZyB0b2kgc2UgaHVvbmcgZGFuIGFuaCBUaGFuaCBsYW0g ZG9uIGRlIFVCTkQgeGEgeGFjIG5oYW4gdmUgdGluaCANCnRyYW5nIGN1IHRydSBuaGFtIGdpdXAg YW5oIGNvIGRpZXUga2llbiBkZW4gdGFtIHRydSB2YSBzaW5oIHNvbmcgdGFpIFRQLkhDTSIsIG9u ZyANCkNoaWVuIG5vaS5dIA0KDQpOZ3VvaSBjb24gbG9uIHRlbiBsYSBUcmFuIFRoYW5oIEhhaSBk YSBsYXAgZ2lhIGRpbmggdmEgZGEgY28gMyBjb24uIFZpIGtob25nIGNvIENNTkQgDQpuZW4ga2hv bmcgdGhlIGRhbmcga3kga2V0IGhvbiwga2hhaSBzaW5oIGNobyBjYWMgY29uIHRoaSBsYW0gZHVv YyBuaHVuZyB2aSBraG9uZyBjbyBobyANCmtoYXUgbmVuIHR1b25nIGxhaSBjdWEgbmh1bmcgZHVh IGNvbiBjaGFuZyBiaWV0IHJhIHNhby4gQ29uIG5ndW9pIGNvbiBnYWkgdGh1IGJhIGxhIA0KVHJh biBUaGkgS2ltIEN1YyBtdW9uIHhpbiB2YW8gY29uZyB0eSBuaHVuZyBub2kgbmhhbiB2aWVjIGto b25nIGNoYXAgbmhhbiB2aSBraG9uZyANCmNvIENNTkQuIEtoaSBDdWMgbGF5IGNob25nLCBkdSBj aG9uZyBjbyBobyBraGF1IG5odW5nIHZvIGNob25nIHZhbiBraG9uZyB0aGUgZGFuZyANCmt5IGtl dCBob24uLi4NCg0KVGllcCB4dWMgdm9pIGNodW5nIHRvaSwgb25nIFZvIER1YyBNYW5oLCBUbyB0 cnVvbmcgdG8gNiwgYXAgMSwgeGEgQW4gUGh1IFRheSwgbm9pOiANCiJEYXkgbGEgYnVjIHh1YyBr aG9uZyBjaGkgY3VhIGdpYSBkaW5oIGJhIEh1ZSBtYSBjb24gY3VhIGJhbiB0aGFuIHRvaSB2YSBi YSBjb24gbyBkYXkuIA0KQ28gY3VvYyBob3AgbmFvIHRvaSBjdW5nIHBoYW4gYW5oLCBtb25nIG1v aSBjYXAgdHJlbiBiYW5nIGNhY2ggbmFvIGRvIHhlbSB4ZXQsIGdpYWkgDQpxdXlldCwgZ2l1cCBj aG8gY2FjIGNoYXUgbGFtIGR1b2MgQ01ORCBuaHVuZyB2YW4ga2hvbmcgZHVvYy4gTHkgZG8geGEg ZHVhIHJhIGxhIGRvIA0Ka2h1IG5heSBiaSBnaWFpIHRvYSwga2hvbmcgY2hvIG5oYXAgaG8ga2hh dSwga2hvbmcgY28gaG8ga2hhdSB0aGkga2hvbmcgdGhlIGNhcCBDTU5EIi4gDQoNClRyb2kgdGhl byBkb25nIGRvaS4uLg0KDQpDb24gdHJ1b25nIGhvcCBjdWEgb25nIEx1b25nIFh1YW4gVGhhbmgg KHRlbiBnb2kga2hhYyBsYSBMZSBEYWkgUGh1b25nLCBzaW5oIG5hbSANCjE5NDgpIG1hIGNodW5n IHRvaSB0aWVwIHh1YyB0aGkgaG9hbiB0b2FuIGtoYWMuIE1lIG9uZyBsYXkgbW90IG5ndW9pIGxp bmggUGhhcCBnb2MgUGhpIA0Kcm9pIHNpbmggcmEgb25nLiBOYW0gMTk3MSBvbmcgZGkgYm8gZG9p IHZhIHNhdSBnaWFpIHBob25nIHRoaSByYSBxdWFuLiBTYXUgbW90IHRob2kgZ2lhbiANCnNvbmcg byBxdWUsIG9uZyBUaGFuaCBibyB2ZSBUUC5IQ00gbGFuZyB0aGFuZyByb2kgZG8ga2hvbmcgY28g Z2lheSB0byB0dXkgdGhhbiBuZW4gYmkgDQoidGh1IGdvbSIgZHVhIGRpIGxhbyBkb25nIHRhcCB0 cnVuZyBnYW4gNSBuYW0gdGFpIGh1eWVuIFBodSBHaWFvLCB0aW5oIFNvbmcgQmUgY3UgKG5heSBs YSBCaW5oIER1b25nKS4gDQoNClNhdSBraGkgaGV0IHRob2kgZ2lhbiBsYW8gZG9uZywgb25nIFRo YW5oIGdhcCBiYSBOZ28gVGhpIFRodSBIYSwgbmd1b2kgY3VuZyBjYW5oIG5nbyANCnZhIHRybyB0 aGFuaCB2byBjaG9uZy4gU2F1IGRvIHZvIGNob25nIG9uZyBzaW5oIGNvbiBnYWkgZGF1IGxvbmcg bGEgTGUgVGhpIEhvbmcgDQpOaHVuZy4gR2lhIGRpbmggbmhvIGN1YSBvbmcgdHJvaSBkYXQgdGhl byBkb25nIGRvaSBoZXQgbm9pIG5heSBkZW4gbm9pIGtoYWMsIGN1b2kgY3VuZyANCmRpbmggY3Ug byBhcCA0QiAoYXAgU3VvaSBEYXQgY3UpIC0gbm9pIGNoaSBxdXkgdHUgdmFpIG5vYyBuaGEgZGFu IGRpIGN1IHR1IGRvIHR1IG1pZW4gDQpCYWMsIHRodW9jIHhhIFRhbiBMYXAsIGh1eWVuIERvbmcg UGh1LCB0aW5oIEJpbmggUGh1b2MuIE5hbSAxOTkyLCB2byBjaG9uZyBvbmcgc2luaCANCnRoZW0g bmd1b2kgY29uIHRyYWksIGRhdCB0ZW4gbGEgTGUgTWluaCBIYWkuIERvIGN1b2Mgc29uZyBxdWEg a2hvIGtoYW4sIHZhIGxhaSBzdW90IG5nYXkgDQpjaGkgYmlldCB2YW8gcnVuZyBkb24gY3VpLCBi ZSBtYW5nLCBkb3QgdGhhbiBraWVtIHNvbmcgbmVuIHZvIGNob25nIG9uZyBjaGFuZyBiaWV0IGdp IA0KZGVuIGhvIGtoYXUsIGdpYXkgdG8gdHV5IHRoYW4gY2hvIG1pbmggdmEgbGFtIHRodSB0dWMg a2hhaSBzaW5oIGNobyBjYWMgY29uLiBWYWkgbmFtIHNhdSANCmhvIHJvaSBub2kgbmF5IGRlbiBh cCBUYW4gVGhpbmggKGFwIE51b2MgVmFuZyBjdSksIHhhIEFuIEJpbmgsIGh1eWVuIFBodSBHaWFv LCB0aW5oIA0KQmluaCBEdW9uZy4gTmFtIDIwMDQsIGJhIEhhIGJpIGJlbmggcXVhIGRvaSwgTGUg TWluaCBIYWkgbHVjIG5heSBkYSAxOCB0dW9pLCBibyBxdWUgDQpyYSB0aGkgeGEgaG9jIG5naGUg a2llbSBzb25nLiBPbmcgVGhhbmggdmFuIG8gbGFpIGFwIFRhbiBEaW5oIGN1bmcgY28gY29uIGdh aSBkYXUsIGx1YyANCm5heSBjdW5nIGRhIGxheSBjaG9uZy4gQ3VvYyBzb25nIGN1IHRoZSB0cm9p IGRpIGNobyBkZW4gZGF1IHRoYW5nIDcuMjAxMCwgYW5oIFZ1IFZhbiANCkR1YyAobmd1IFAuMTEs IFEuR28gVmFwLCBUUC5IQ00pLCBsYSBsYW5nIGdpZW5nIGN1IGN1YSBvbmcgVGhhbmggMjAgbmFt IHRydW9jIHRhaSANCmFwIDRCLCBtdW9uIGR1YSBvbmcgdmUgVFAuSENNIGRlIGdpdXAgb25nIGNv IGN1b2Mgc29uZyBzYW5nIHN1YSBob24gdGhpIG1vaSAiYmF0IG5ndWEiIA0KbGEgb25nIFRoYW5o IGhvYW4gdG9hbiBraG9uZyBjbyBnaWF5IHRvIGdpIHR1eSB0aGFuLg0KDQpMYW4gdGhlbyB0aG9u ZyB0aW4gb25nIFRoYW5oIGN1bmcgY2FwLCBUaGFuaCBOaWVuIGRhIGN1bmcgYW5oIFZ1IFZhbiBE dWMgZHVhIG9uZyANCmxlbiBhcCBEb25nIFNlbiAoeGEgQW4gQmluaCwgaHV5ZW4gUGh1IEdpYW8s IHRpbmggQmluaCBEdW9uZykgdGltIGdhcCBvbmcgVG9uZyBWYW4gDQpTYW0sIG5ndXllbiBsYSBj aGluaCB0cmkgdmllbiBEYWkgZG9pIDYsIFRpZXUgZG9hbiAzLCBMdSBkb2FuIDIyLCBRdWFuIGRv YW4gNC4gT25nIFNhbSANCnhhYyBuaGFuIG9uZyBUaGFuaCB0dW5nIHRoYW0gZ2lhIGN1bmcgZG9u IHZpIG1pbmggdmEgcmF0IGJhdCBuZ28gdHJ1b2MgaG9hbiBjYW5oIHRybyANCnRyZXUgY3VhIG5n dW9pIGRvbmcgZG9pIGN1IG5heS4gIlRvaSBtb25nIGNhYyBjYXAgdGhhbSBxdXllbiBzb20geGVt IHhldCBob2FuIGNhbmggDQp2YSBkaWV1IGtpZW4gY3UgdHJ1IGN1YSBhbmggVGhhbmggZGUgZ2l1 cCBhbmggYXkgbmhhcCBobyBraGF1IHZhIGxhbSBnaWF5IHRvIHR1eSB0aGFuLCANCnNvbSBvbiBk aW5oIGN1b2Mgc29uZyBjdW5nIGNvbiBjaGF1IG5odSBiYW8gbmd1b2kga2hhYyIsIG9uZyBTYW0g bm9pLiANCg0KaHR0cDovL3d3dy52ZmVqLnZuL3ZuL2NoaV90aWV0LzE3MTkxL2NodW5nX21pbmhf dGh1X2RpZW5fdHVfX19uaWVtX21vbmdfZG9pX2N1YV9kYW4gMDYvMDgvMjAwOSwgMTI6NTc6MDAg UE0gDQoNCkNvbmcgYW46IENodW5nIG1pbmggdGh1IGRpZW4gdHUgLSBuaWVtIG1vbmcgZG9pIGN1 YSBkYW4gLSBLZSBob2FjaCBkYSB0aHVjIGhpZW4gZGVuIGRhdT8gDQoNCihWRkVKKSAtIFRyb25n IGtlIGhvYWNoIHRvbmcgdGhlIHBoYXQgdHJpZW4gQ2hpbmggcGh1IGRpZW4gdHUgVmlldCBOYW0g ZGVuIG5hbSAyMDEwLCANCmNvIGR1YSByYSBtdWMgdGlldSBwaGFuIGRhdSB0b2kgMjAxMCwgMjUg cGhhbiB0cmFtIGRhbiBkbyB0aGkgc2Ugc3UgZHVuZyBjaHVuZyBtaW5oIHRodSBkaWVuIHR1LiAN Cg0KS2UgaG9hY2ggZGEgY28gVmlldCBOYW0gdGEgZGEgdGh1YyBoaWVuIGRlbiBkYXUgaGF5IGtl IGhvYWNoIHRyZW4gdmFuIHZhbiBjb24gbmFtIA0KdHJlbiBiYW4gZ2lheSBtYSBjaHVhIGR1b2Mg dHJpZW4ga2hhaT8NCiANClRodWMgcmEsIG5ldSBWaWV0IE5hbSBzdSBkdW5nIGNodW5nIG1pbmgg dGh1IGRpZW4gdHUgdGhheSBjaG8gY2h1bmcgbWluaCB0aHUgdHJ1eWVuIA0KdGhvbmcgbGEgcmF0 IHRvdCwgdmkgY29uZyBuZ2hlIG1vaSBzZSBtYW5nIGxhaSByYXQgbmhpZXUgdGllbiBpY2ggY2hv IGRhbiwgZ2l1cCBjYWMgY28gcXVhbiANCmNodWMgbmFuZyBxdWFuIGx5IHRvdCBzbyBsaWV1Lg0K DQpTdSBkdW5nIGNodW5nIG1pbmggdGh1IGRpZW4gdHUsIGRhbiBzZSB0aWV0IGtpZW0gZHVvYyBy YXQgbmhpZXUgdGhvaSBnaWFuLiBIbyANCnNlIGtob25nIHBoYWkgZGVtIG5oaWV1IGxvYWkgZ2lh eSB0byB0cm9uZyBib3AgdmEgc2UgdHJhbmggZHVvYyB2aWVjIHF1ZW4gaG9hYyANCm1hdCBnaWF5 IHRvLCBsYW0gZ2lhbSBib3QgYm8gbWF5IGNvbmcga2VuaCBjdWEgY2FjIGNvIHF1YW4gbmhhIG51 b2MuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY250dC8yMDEwMDkvUXVhbi10aHVlLWJh by10cmEtdHJ1b2MtcmEtc29hdC0yMDAwMDAtZGllbS1naWFvLWRpY2gtOTM3MzY3LyAxMTozOCwg IDI0LzA5LzIwMTAgKEdNVCs3KSANCg0KQ29uZyBhbjogVGhlbyB0aW4gdHVjIG1vaSBkYXkgdHUg Q3VjIGNhbmggc2F0IHF1YW4gbHkgaGFuaCBjaGluaCB2ZSB0cmF0IHR1IHhhIGhvaSAtIEJvIENv bmcgYW4sIGRlIGFuIGNvIHNvIGR1IGxpZXUgY2h1bmcgbWluaCB0aHUgZGllbiB0dSwgZHUga2ll biBjdW9pIG5hbSAyMDExIG1vaSBkdW9jIHRyaWVuIGtoYWkhIA0KDQpodHRwOi8vd3d3LnRoYW5o bmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMTAwMjEyMzkuYXNweCBOZ28gSG9u ZyBTb24gMTAvMTAvMjAxMCAyOjEyIA0KDQpDb25nIGFuOiBNb3QgcGh1IG51IGJpIGJhbiBzYW5n IFRydW5nIFF1b2MsIHRob2F0IG5hbiB0cm8gdmUgbmh1bmcgQ29uZyBhbiB0dSBjaG9pLCBjaHVh IGdpYWkgcXV5ZXQgZ2lheSB0byANCg0KVHJvIHZlIHNhdSAxNiBuYW0gYmkgYmFuIHNhbmcgVHJ1 bmcgUXVvYyAgDQogIA0KRG8gbGEgdHJ1b25nIGhvcCBjdWEgY2hpIFRyYW4gVGhpIFR1eWV0LCBv IHhvbSBCYWMsIHRob24gVHJ1bmcgVGluIDIsIHRoaSB0cmFuIFR1eSANClBodW9jLCBodXllbiBU dXkgUGh1b2MsIHRpbmggQmluaCBEaW5oLiANCg0KS2hpIGRhbmcgc29uZyBjdW5nIGdpYSBkaW5o LCBuYW0gMTk5NCBjbyBtb3QgcGh1IG51IHRlbiBWaW5oLCBxdWUgbyBCYSBWaSwgSGEgVGF5IA0K c29uZyBnYSBuZ2hpYSBuaHUgdm8gY2hvbmcgdm9pIG1vdCBuZ3VvaSBkYW4gb25nIGN1bmcgeG9t IGN1YSBjaGkgVHV5ZXQsIHJ1IGNoaSByYSANCkJhYyB0aGFtIHRodSBkbyBIYSBOb2kuIFZpIGNh IHRpbiBuZW4gY2hpIG5naGUgdGhlbyB2YSBiaWV0IHRpY2ggc3VvdCAxNiBuYW0gcXVhLiBOYW0g DQpkbyBjaGkgVHV5ZXQgMjggdHVvaSB2YSBjaHVhIGxhcCBnaWEgZGluaC4gDQoNCkJpIGx1YSBx dWEgYmllbiBnaW9pIA0KDQpLaGkgZGVuIEhhIE5vaSwgVmluaCBraG9uZyBkdWEgY2hpIFR1eWV0 IGRpIHRoYW0gdGh1IHRodSBkbyBuaHUgZGEgaHVhIG1hIGR1YSBjaGkgbGVuIA0KdGhhbmcgY3Vh IGtoYXUgTGFuZyBTb24gYmFuZyB4ZSBraGFjaC4gS2hpIHhlIGRhIHF1YSBwaGlhIFRydW5nIFF1 b2MsIGNoaSBUdXlldCBtb2kgDQpwaGF0IGhpZW4gcmEgbWluaCBiaSBkdWEgZGkgYmFuLiBDaGkg ZGluaCBiYW8gY29uZyBhbiBUcnVuZyBRdW9jIHZlIHRpbmggdHJhbmcgYmkgYmF0IA0KY29jIGN1 YSBtaW5oLCBuaHVuZyBWaW5oIGRhIGdvaSA0IG5ndW9pIGRhbiBvbmcgdG8gY2FvLCBraG9lIG1h bmggZGVuIGRhbmggdmEgZGUgZG9hLCANCmJ1b2MgY2hpIHBoYWkgZGkgdGhlbyBjaHVuZy4NCg0K U2F1IGRvIGNoaSBkdW9jIGJhbiBjaG8gbW90IG5ndW9pIGRhbiBvbmcgdHJlbiA1MCB0dW9pLCBu Z3VvaSBWaWV0IGdvYyBIb2EsIGdpYSA2MDAgDQpuaGFuIGRhbiB0ZSwgdm9pIGxvaSBodWEgbGEg bXVhIGNoaSBkZSBjdW5nIGRpIGJ1b24gYmFuLiBTYXUgZG8sIG5ndW9pIGRhbiBvbmcgbmF5IChj aGkgDQpraG9uZyBiaWV0IHRlbikgYmFuIGNoaSBjaG8gbW90IG5ndW9pIGRhbiBvbmcga2hhYyAz NSB0dW9pLCB0ZW4gbGEgTHVhbiBBIERpIChwaGllbiBhbSANCnRpZW5nIFF1YW5nIERvbmcgc2Fu ZyB0aWVuZyBWaWV0KS4gTHVhbiBBIERpIG11YSBjaGkgdmUgbGFtIHZvIHZvaSBnaWEgMi43MDAg bmhhbiBkYW4gDQp0ZS4gTHVjIG5heSwgY2hpIGdhcCBtb3Qgc28gcGh1IG51IFZpZXQgTmFtIGN1 bmcgYmkgYmF0IGNvYyBzYW5nIFRydW5nIFF1b2MgZGUgYmFuIA0KbGFtIHZvLCBraHV5ZW4gY2hp IG5lbiBjaGFwIG5oYW4gaG9hbiBjYW5oIHZpIG5ldSBraG9uZyB0aHVhbiB0aGVvIGNvIHRoZSBi aSBiYW4gdmFvIA0KY2FjIG8gY2h1YSBtYWkgZGFtLCB2YSBuaHUgdmF5IHRpbmggY2FuaCBjb24g Y28gdGhlIGJpIGRhdCBob24uIA0KDQpOZ2hlIHRoZW8gbG9pIGtodXllbiBjdWEgbmd1b2kgY3Vu ZyBjYW5oIG5nbywgY2hpIGNoYXAgbmhhbiBsYW0gdm8gTHVhbiBBIERpLiBUdSBkbyANCmNoaSBz b25nIHZvaSBMdWFuIEEgRGkgdGFpIHhhIE1vIENvIFhhbSwgaHV5ZW4gWGluIFBoaW5nLCB0aW5o IFF1YW5nIERvbmcsIFRydW5nIA0KUXVvYy4gDQoNCk5oYXAgY2FuaCAibGF1IiB2ZSBxdWUNCg0K TmhpbiBkYW5nIHZlIGtoYWMga2hvIGN1YSBjaGksIGtoaSBjaHVuZyB0b2kgaG9pIGNoaSBkdW9j IGRvaSB4dSBuaHUgdGhlIG5hbywgY2hpIHRyYSBsb2kgDQpiYW5nIHRodSB0aWVuZyBWaWV0IHJv IHJhbmcgbmh1bmcgZ2lvbmcgaG9pIGN1bmcgdmEgY2hhbSB2aSBkYSAxNiBuYW0geGEgcXVlIGh1 b25nLCANCnJhbmcgTHVhbiBBIERpIGRvaSB4dSB0b3Qgdm9pIGNoaSwga2hvbmcgZGFuaCBkYXAs IGhhbmggaGEgY2hpLiBUaG9pIGdpYW4gZGF1IGNoaSByYXQgc28gDQpoYWkgdmkgY28gZG9uLCBj aGkgY28gbW90IG1pbmgsIGxhaSBsYW4gZGF1IHhhIHF1ZSwga2hvbmcgYmlldCB0aWVuZyBUcnVu ZyBRdW9jLiBOaHVuZyANCnJvaSBxdWEgdGhvaSBnaWFuLCBjaGkgaG9hIG5oYXAgZGFuIHZvaSBj dW9jIHNvbmcgbW9pLiBDaGkgY28gMiBjb24gdm9pIG5ndW9pIGRhbiBvbmcgDQpuYXkuIENvbiBk YXUgMTUgdHVvaSwgY29uIHRodSBoYWkgZHVvYyAxMCB0dW9pIHZhIGRldSBsYSBjb24gdHJhaS4N Cg0KVGhvaSBnaWFuIGRhdSBzYXUga2hpIGxhbSB2byBMdWFuLCBjaGkgbyBuaGEgbGFtIHZpZWMg bmhhLCBzYXUgZG8gY2hpIGRpIGxhbSBvIG1vdCB4aSANCm5naGllcCBzYW4geHVhdCBkbyBkYSB4 dWF0IGtoYXUuIEN1b2Mgc29uZyB2YXQgY2hhdCBjdWEgY2hpIG8gbXVjIHRydW5nIGJpbmgsIGR1 IGFuLiBDaGkgDQpiYW8gbm9pIGNoaSBzb25nIGNvIGtob2FuZyA0IGRlbiA1IG5ndW9pIGN1bmcg YmkgYmF0IGNvYyBkZSBiYW4gbGFtIHZvIGRhbiBvbmcgVHJ1bmcgDQpRdW9jLiBUaGVvIGNoaSwg a2hvYW5nIDEwIG5hbSB0cm8gdmUgdHJ1b2MsIHRpbmggdHJhbmcgcGh1IG51IFZpZXQgTmFtIGJp IGJhdCBjb2MgeGF5IA0KcmEgbmhpZXUsIGhpZW4gbmF5IHRpbmggdHJhbmcgbmF5IGRhIGdpYW0u DQoNCihBbmggY2h1cDogQ2hpIFRyYW4gVGhpIFR1eWV0IHNhdSAxNiBuYW0geGEgcXVlIHRybyB2 ZSkNCg0KVmkgeGEgcXVlIG5lbiBjaGkgVHV5ZXQgcmF0IG5obyBuaGEuIE5hbSAxOTk5LCBkdW9j IHBoZXAgY3VhIEx1YW4sIGNoaSBxdXlldCBkaW5oIHRybyANCnZlIFZpZXQgTmFtIHRoYW0gcXVl LCBuaHVuZyBraGkgZGkgZGVuIGdhbiBjdWEga2hhdSwgY2hpIGJpIGN1b3AgaGV0IHRpZW4gYmFj LCB0dSB0cmFuZyANCm5lbiBraG9uZyB0aGUgdmUgcXVlIGR1b2MuIExhbiBuYXksIGN1bmcgZHVv YyBwaGVwIGN1YSBMdWFuLCBjaGkgbGFpIHF1eWV0IHRhbSB2ZSBxdWUuIA0KTmh1bmcgdmkgY2h1 YSBuaGFwIGtoYXUgZHVvYyBvIFRydW5nIFF1b2MsIGtob25nIGNvIGJhdCBjdSBnaWF5IHRvIHR1 eSB0aGFuIGhvcCBwaGFwIA0KbmFvIG5lbiBraG9uZyB0aGUgbGFtIGNhYyB0aHUgdHVjIG5oYXAg Y2FuaCwgY2hpIGJ1b2MgcGhhaSBkaSAibGF1IiB2ZSBxdWUgc2F1IGtoaSBjaGkgDQoxMDAgbmhh biBkYW4gdGUgY2hvIG1vdCBuaG9tIG5ndW9pIGNodXllbiBkdWEgbmd1b2kgcXVhIGxhaSBiaWVu IGdpb2kgVmlldCAtIFRydW5nLiANCkhvIGR1YSBjaGkgInZ1b3QgYmllbiIgYmFuZyB0aHV5ZW4g cXVhIHNvbmcgTW9uZyBDYWksIHRoZW8gZHVvbmcgc29uZyB0cm8gdmUgVmlldCANCk5hbS4NCg0K TW9uZyBkdW9jIGxhbSBsYWkgZ2lheSB0byB0dXkgdGhhbg0KDQpDaGkgVHV5ZXQgdmUgdG9pIFR1 eSBQaHVvYywgQmluaCBEaW5oIHZhbyBuZ2F5IDIuMTAuMjAxMC4gU2F1IDE2IG5hbSB4YSBxdWUs IHRlbiBjdWEgDQpjaGkga2hvbmcgY29uIHRyb25nIGhvIGtoYXUgdmkgZ2lhIGRpbmggY28gbmhp ZXUgYmllbiBkb25nLiBDaGkgZGEgYmFvIHZvaSBDb25nIGFuIA0KaHV5ZW4gVHV5IFBodW9jIHZl IHN1IGNvIG1hdCBjdWEgbWluaCB0YWkgcXVlIG5oYSB2YSBkZSBuZ2hpIGR1b2MgY2FwIGNhYyBn aWF5IHRvIHR1eSANCnRoYW4gZGUgZHVvYyAibmhhcCBraGF1IiBob3AgcGhhcC4gVHV5IG5oaWVu LCBjbyBxdWFuIGNvbmcgYW4gdHJhIGxvaSByYW5nIHRydW9uZyBob3AgDQpjdWEgY2hpIGxhIGNo dWEgY28gdGllbiBsZSBuZW4gY2h1YSBnaWFpIHF1eWV0IGR1b2MuDQoNCkhpZW4gbmF5IG5ndW9p IHBodSBudSBkYW5nIHRodW9uZyBuYXkgZGFuZyBjYW4gZ2lheSB0byB0dXkgdGhhbiBob3AgcGhh cCBkZSBjbyB0aGUgZGkgDQpsYWkgdGh1YW4gdGllbi4gTW9uZyBtdW9uIGN1YSBjaGkgbGEgc2Ug ZHVhIGNhYyBjb24gY3VhIGNoaSB2ZSB0aGFtIHF1ZSBuZ29haSwgbmh1bmcgdmkgDQpraG9uZyBj byBnaWF5IHRvIHR1eSB0aGFuIG5lbiB2aWVjIGRpIGxhaSwgZ2lhbyBkaWNoIHJhdCBraG8ga2hh bi4NCg0KKFkga2llbiBiYW4gZG9jOg0KVGh1dHVjLWhhbmhjaGluaEB5YWhvby5jb206IFN1IHZp ZWMgbmF5IGdhbiB0dW9uZyB0dSBuaHUgbmd1b2kgbWF0IGdpYXkgdG8gZGkgdHJpbmggDQpiYW8g eGluIGNhcCBsYWksIGhvYWMgbmh1IG5ndW9pIGdhcCBuYW4sIG1hdCB0aWNoIG5heSB0cm8gdmU7 IGtob25nIGhpZXUgc2FvIGNvIHF1YW4gDQpjb25nIGFuIGxhaSBjaHVhIGdpYWkgcXV5ZXQ7IG5n dW9pIGRhbiBnYXAgbmFuIGRhIGtobyBzbyBsYW0gcm9pLCBuZW4gbmhpZXQgdGluaCBnaXVwIGRv IA0KZGFuIG1vaSBwaGFpLikgDQoNCmh0dHA6Ly9kYW5sYW1iYW8ud29yZHByZXNzLmNvbS8yMDEw LzExLzE4L3ZpZGVvLWMlRTElQkElQURuLWMlRTElQkElQTNuaC1jb25nLWFuLWIlRTElQkElQUZ0 LWdhaS1tJUUxJUJBJUExaS1kYW0teHVjLXBoJUUxJUJBJUExbS1uaGFuLXBoJUUxJUJBJUE5bS1o JUUxJUJCJThELyBQb3N0ZWQgb24gMTgvMTEvMjAxMCBieSBCYW8gRGFuIA0KDQpDb25nIGFuOiBW aWRlbyBjYW4gY2FuaCBDb25nIGFuIHh1YyBwaGFtIG5oYW4gcGhhbSBwaHUgbnUgKG8gUXVhbmcg TmluaCkgDQoNCihEb2FuIGNsaXAgdHJlbiBjbyBuaHVuZyBjYW5oIHZhIGxvaSB0aG9haSBraG9u ZyBwaHUgaG9wIHZvaSBiYW4gZG9jIGNodWEgdHJ1b25nIHRoYW5oLiBDYWMgYmFuIGNhbiBjYW4g bmhhYyB0cnVvYyBraGkgeGVtKQ0KDQpNb3QgdmlkZW8gY2xpcCBjbyBub2kgZHVuZyAiY29uZyBh biBiYXQgZ2FpIG1haSBkYW0gdmEgcXVheSB2aWRlbyBsYWkiIHZ1YSBkdW9jIHBoYXQgDQp0YW4g dHJlbiBuaGlldSB0cmFuZyBtYW5nIHhhIGhvaS4NCg0KTmd1b2kgeGVtIG5naGUgZHVvYyByYXQg cm8gbmh1bmcgY2F1IHJhIGxlbmggZGF5IHZlIHRoaSB1eSwgZG9hIG5hdCAibWF5LCB0YW8iIGN1 YSBtb3QgDQpjb25nIGFuIHRydW9jIDIgY28gZ2FpIGR1b2MgY2hvIGxhIGNvIGhhbmggdmkgbWFp IGRhbSB0cm9uZyBjbGlwLCBuaHUgImNvbiBuYXkgbWF5IA0KZHVuZyBkYXkgdGFvIGNodXAga2ll dSBhbmgsIG5oYW5oISIsICJkYW5nIGhhaSB0YXkgcmEsIGQuIG1lIG1heSIsICJxdWF5IG1hdCBy YSBkYXkiLi4uIA0KDQpDbyBpdCBuaGF0IDQgbmd1b2kgZGFuIG9uZyB0cm9uZyBjbGlwIJYgcXVh eSB2aWRlbyB2YSBnaGkgY2hlcCCWIGR1b2MgaGlldSBsYSBjYWMgbmhhbiANCnZpZW4gZGFuZyBs YXAgYmllbiBiYW4ga2hpIDIgY28gZ2FpIHRyb25nIHRpbmggdHJhbmcgaG9hbiB0b2FuIGtob2Eg dGhhbi4gSGFpIGNvIGdhaSBiaSBlcCANCmJ1b2MgcGhhaSBkdW5nIG5nYW5nIG1hdCB2YSBkYW5n IHRheSwga2hvbmcgdGhlIGNoZSBkYXkgZHVvYyB0aGFuIHRoZSB0cm9uZyBraGkgYmkgdGh1IA0K aGluaCBiYW5nIGRpZW4gdGhvYWkgY2FtIHRheS4gDQoNClZhbyBuaHVuZyBnaWF5IGN1b2kgY3Vh IGNsaXAsIG5ndW9pIHhlbSB0aGF5IG1vdCB0cm9uZyBoYWkgY28gc2F1IGtoaSBiaSBlcCBidW9j IGR1bmcgDQpkYXkgdGhhbiB0aGUgbG9hIGxvIGRhIHN1cCB4dW9uZyBjYW5oIGdpdW9uZyBvbSBt YXQga2hvYyB0cm9uZyB0aWVuZyBxdWF0IHRoYW8gY3VhICANCm5ndW9pIGRhbiBvbmcgdGhhdSBo aW5oLCAibWF5IGtob2MgY2FpIGdpPyIgDQoNClZpZGVvIGNsaXAgbmF5IGNvIGRvIGRhaSBob24g MSBwaHV0IHJ1b2kgZGEgZ2F5IHNvYywgbGFtIGNhIHRoZSBnaW9pIGRhbmcgeG9uIHhhbyBiYW4g dGFuLiANCkNhYyB5IGtpZW4gZHVvYyBnaGkgbmhhbiBkZXUgbGVuIGFuIG1hbmggbWUgaGFuaCB2 aSBjdWEgbmh1bmcgdmllbiBjaHVjIGNvbmcgdnUgVmlldCBOYW0gdHJvbmcgY2xpcCB4dWMgcGhh bSBuYW5nIG5lIG5oYW4gcGhhbSBuZ3VvaSBwaHUgbnUuIA0KDQpodHRwOi8vYm94aXR2bi53b3Jk cHJlc3MuY29tLzIwMTAvMDgvMjQvbSVFMSVCQiU5OXQtdiVFMSVCQiVBNS1uLWwlRTElQkIlOUJu LW5oJUUxJUJBJUE1dC1uJUM2JUIwJUUxJUJCJTlCYy1iJUUxJUJBJUEzeS1uYW0tbmF5LWNoJUM2 JUIwYS1kJUM2JUIwJUUxJUJCJUEzYy14JUUxJUJCJUFELWwvIE5vbmcgZGFuIEJpbmggRHVvbmcg IChidm4gcG9zdCBvbiAyNC8wOC8yMDEwIDM6NDAgc2FuZykgIA0KDQpDb25nIGFuOiBUaW5oIHRo YW4gYmFvIHZlIG5ndW9pIGRhbiBkYXUgdHJhbmggdm9pIHRoYW0gbmh1bmcgcmF0IGtlbSANCg0K TW90IHZ1IGFuIGxvbiBuaGF0IG51b2MsIGJheSBuYW0gbmF5IGNodWEgZHVvYyB4dSBseSEgDQoN CkNoaW5oIHF1eWVuIHRpbmggQmluaCBEdW9uZyB0aHUgaG9pIHZhIGJvaSB0aHVvbmcgZGF0IHRy YWkgcGhhcCBsdWF0IC0gQ3VvbmcgYnVjIG5ndW9pIGRhbg0KDQpTYWkgcGhhbSBkb25nIHRyb2ks IG5odW5nIGNodWEgZG9uZyB0b2kgQ2hpbmggcGh1IA0KDQoiTmd1b2kgdG8gY2FvIGtoaWV1IG5h aSB2YSB5ZXUgY2F1IHRoYW5oIHRyYSIga2hvbmcgZHVvYyBhaSBob2kgdG9pIHZhIGtob25nIGR1 b2MgYmlldCB0aSBnaSB2ZSBrZXQgcXVhIHRoYW5oIHRyYS4gIA0KDQpTYXUgdGhhbmggdHJhLCBj aGluaCBxdXllbiB0cmEgdGh1IG5odW5nIG5ndW9pIGt5IGRvbiB2YSBkaSBraGlldSBraWVuLCB0 YW4gYmFvIHZhIGtob2MgbGlldCBob24gdHJ1b2MuIA0KKFhpbiB4ZW0gY2hpIHRpZXQgbyBwaGFu IHRpZXAgdGhlbykgDQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMDAzMjQxMDUyNDYyOTdQMEMx Ny9iby1jb25nLWFuLWR1b2MtY2h1eWVuLW5odW9uZy1kYXQtdGFpLTQwLWhhbmctYmFpLXZhLTU0 LXRyYW4taHVuZy1kYW8uaHRtIFAuViAxMTozMiAoR01UKzcpIC0gMjQvMy8yMDEwIA0KDQpDb25n IGFuOiBCbyBDb25nIGFuIGNodSB0cnVvbmcgY2h1eWVuIG5odW9uZyBkYXQgdGFpIHRydSBzbyA0 MCBIYW5nIEJhaSB2YSA1NCBUcmFuIEh1bmcgRGFvIA0KIA0KVGhlbyBuZ3VvbiB0aW4gdHUgQ29u ZyBUaG9uZyB0aW4gZGllbiB0dSBDaGluaCBwaHUsIFRodSB0dW9uZyBkYSBjaGFwIHRodWFuIGNo dSANCnRydW9uZyBkYXUgdHUgeGF5IGR1bmcgdHJ1IHNvIGxhbSB2aWVjIG1vaSBjdWEgMyB0b25n IGN1YyBjYW5oIHNhdCB0aHVvYyBCbyBDb25nIGFuIHRhaSANCnBodW9uZyBNYWkgRGljaCwgcXVh biBDYXUgR2lheSwgdGhhbmggcGhvIEhhIE5vaS4NCg0KRGUgbGF5IGtpbmggcGhpIGRhdSB0dSB4 YXkgZHVuZyB0cnUgc28gbGFtIHZpZWMgbW9pIGN1YSAzIHRvbmcgY3VjIHRyZW4sIFRodSB0dW9u ZyBkb25nIA0KeSBjaG8gQm8gQ29uZyBhbiBkdW9jIGJhbiB0YWkgc2FuIHRyZW4gZGF0IHZhIGNo dXllbiBuaHVvbmcgcXV5ZW4gc3UgZHVuZyBkYXQgdGhlbyBnaWEgDQp0aGkgdHJ1b25nLCBkdW5n IHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQsIHRhaSBzbyA0MCBIYW5nIEJhaSB2YSA1NCBUcmFuIEh1 bmcgRGFvLCBxdWFuIA0KSG9hbiBLaWVtLCB0aGFuaCBwaG8gSGEgTm9pLCB2b2kgZGllbiB0aWNo IGRhdCBsYSAxMy4zMDMsOCBtMiwgaGllbiBkbyBCbyBDb25nIGFuIA0KcXVhbiBseS4NCg0KKEN1 IHRyaSBxdWFuIHRhbTogTmV1IEJvIENvbmcgYW4ga2hvbmcgY2FuIHN1IGR1bmcgdHJ1IHNvIHZh IGRhdCB0YWkgNDAgSGFuZyBCYWkgdmEgNTQgDQpUcmFuIEh1bmcgRGFvIG51YSB0aGkgdHJhIGxh aSB0aGFuaCBwaG8gSGEgTm9pIHF1YW4gbHkgaGF5IENoaW5oIHBodSBnaWFvIGNobyBjbyBxdWFu IA0Ka2hhYyBxdWFuIGx5LCBjaHUga2hvbmcgaGlldSBzYW8gbGFpIGRpbmggZGVtIGJhbiBkZSBs YXkgdGllbiwgbGFtIGtpbmggcGhpLiBIb24gbnVhLCANCjIgbm9pIG5heSBjbyB0aGUgbGEgZGkg dGljaCBob2FjIGxhIGJpZXQgdGh1IGNvIGNhbiBiYW8gdG9uOyBuZW4gY2hhbmcsIGNhbiB4ZW0g eGV0IGxhaSBxdXlldCBkaW5oIG5heS4pIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBo YXAtbHVhdC9DU0dULWRhbmgtZGFuLWNoYXktbWF1LWRhdS8zMDE4MzM3NS8yMTgvIDE0LzYvMjAw NywgMTU6MjYgR01UKzcgDQoNCkNTR1Q6IGRhbmggZGFuIGNoYXkgbWF1IGRhdSAodGFpIE5naGUg QW4pIA0KDQpodHRwOi8vbmhhbmRhbi5jb20udm4vY21saW5rL25oYW4tZGFuLWktbi10L3RoLWkt cy9jaGluaC10ci9zLWtpLW4vYy1uaC1zYXQtZ2lhby10aG9uZy1jYW4tbmcteC1jby12LW4taG9h LWgtbi0xLjI3OTU4Nj9tb2RlPXByaW50I292MUs3Y3lGc2xPMCBILk5ndXllbiAxODo0NSwgMjgv MTIvMjAxMCAoR01UKzcpIA0KDQpDU0dUOiBuZXUgbmd1b2kgZGFuIGNvIHNhaSBwaGFtLCBjYW4g Ym8gY2hpZW4gc2kgcGhhaSBsaWNoIHN1IGdpYWkgdGhpY2ggdHVvbmcgdGFuIA0Kbmh1bmcgbG9p IHNhaSBwaGFtIGN1YSBobywgZGUgaG8gbmhhbiByYSBkZSBzdWEgdmEga2hvbmcgdGFpIHBoYW0g DQoNCmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1pRDk4eDRabWlNRSZmZWF0dXJlPXJl bGF0ZWQNCg0KQ1NHVDogZGFuaCBkYW4gbyBEaW5oIFF1YW4sIERvbmcgTmFpIA0KDQpodHRwOi8v d3d3LnlvdXR1YmUuY29tL3dhdGNoP3Y9QUlrYUNHTUU2RXMmZmVhdHVyZT1yZWxhdGVkICAyNC85 LzIwMDcgDQoNCkNhbmggc2F0ICdiYXQgdGFpJyBuZ3VvaSBkaSBkdW9uZyAobyBIYSBUaW5oKQ0K DQpodHRwOi8vd3d3LnRoYXVraW5odmlldG5hbS5jb20vaW5kZXgucGhwL2JhbmRvY3ZpZXQvY3Nn dC1kYW5oLW5ndW9pLXRyZW4tYmFvLWNoZS1kdW9pLWNvbi10aWVwLXR1Yy8xNzQzMjIuc24gDQoN CkNTR1QgZGFuaCBuZ3VvaTogVHJlbiBiYW8gY2hlLCBkdW9pIGNvbiB0aWVwIHR1YyEgDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0My8yMDEwMTAyNDAwMTMy NS5hc3B4IE5nb2MgTWluaCAyNC8xMC8yMDEwIDA6MTMgDQoNCkNvbmcgYW46IENTR1QgLSBCYWkg aG9jIGRhdSBkb24gIA0KDQpDbyB0aGUgbm9pIHZ1IHRhaSBuYW4ga2luaCBob2FuZyB4YXkgcmEg dmFvIHJhbmcgc2FuZyBuZ2F5IDE4LjEwIHRyZW4gUUwxQSwgdGh1b2MgZGlhIA0KcGhhbiB4YSBY dWFuIExhbSwgaHV5ZW4gTmdoaSBYdWFuIChIYSBUaW5oKSwga2hpZW4gY2hpZWMgeGUga2hhY2gg bWFuZyBCS1MgNDhLLQ0KNTg2OCBiaSBudW9jIGx1IGN1b24gdHJvaSwgbGFtIDIwIGhhbmgga2hh Y2ggdGhpZXQgbWFuZyBsYSBtb3QgYmFpIGhvYyBkYXUgZG9uIHZlIGNvbmcgDQp0YWMgcXVhbiBs eSBjdWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGN1bmcgbmh1IHkgdGh1YyBjaGFwIGhhbmggcGhh cCBsdWF0IGN1YSBuZ3VvaSBkYW4uIA0KDQpRdWFuIHNhdCB0YWkgaGllbiB0cnVvbmcsIG5oaWV1 IG5ndW9pIGRhIGRhdCBjYXUgaG9pLCB0YWkgc2FvIGNoaWVjIHhlIGtoYWNoIHhhdSBzbyBuYXkg DQpkYSBsb3QgcXVhIHRyYW0ga2llbSBzb2F0IGh1b25nIGRhbiBnaWFvIHRob25nIGN1YSBsdWMg bHVvbmcgY2FuaCBzYXQgZ2lhbyB0aG9uZyANCnRyZW4gUUwgMUE/IER1IGdpYWkgdGhpY2ggY2Fj aCBnaSBkaSBudWEgdGhpIGN1bmcga2hvbmcgdGhlIGJpZW4gaG8gZHVvYyBjaG8gc3UgDQp0aGll dSB0cmFjaCBuaGllbSBjdWEgbHVjIGx1b25nIENTR1QgbyBjaG90IGNoYW4gcGhpYSBOYW0gZGll bSBuZ2FwIGx1dCBuYXkuIE5ldSANCmx1YyBsdW9uZyBjYW5oIHNhdCB0aHVjIGhpZW4gdG90IG5o aWVtIHZ1IGN1YSBtaW5oLCBjdW5nIHZvaSBuZ3VvaSBsYWkgeGUgY28geSB0aHVjIA0KY2hhcCBo YW5oIGx1YXQgcGhhcCB0aGkgY2hhYyBjaGFuIHRoYW0gaG9hIGRhIGR1b2MgbmdhbiBjaGFuLi4u IA0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTEwLTI5LXBoYXQtbmdv bi1oYW5oLWRvbmctaGFpLXZpLXRoaWV1LWdpYS12YS1sb25nLWhvbmctbmdhbi1jYW4tIFRhYyBn aWE6IEt5IER1eWVuDQoNCkNvbmcgYW46IEhhaSB2aSAidGhpZXUgZ2lhIiCWICJUaGlldSBsdW9u ZyB0YW0iLCAiVGhpZXUgdHJhY2ggbmhpZW0iIC0gdmEgImxvbmcgaG9uZy4uLiBuZ2FuIGNhbiIg DQoNCiJUcmFpIGNhbSIgYm8geGl0LCBjb24gdGF1IFZpbmFzaGluLi4uZG90IG5oaWVuIHRybyBs YWkgdHJvbmcgdHVhbiBxdWEsIHZvaSBuaHVuZyBkdSBsdWFuIA0KZGEgY2hpZXUsIHF1eWV0IGxp ZXQgdmEgdGhhbmcgdGhhbiwgbmh1bmcgZGV1IGtob25nIHRoZSB0cmFuaCBuZSB2YW4gZGUgbHVv bmcgdGFtIHZhIA0KdHJhY2ggbmhpZW0gY3VhIHRhdCBjYSB4YSBob2kgdHJ1b2MgdmFuIG1lbmgg cXVvYyBnaWEuIFZhIGRvIGN1bmcgbGEgdGhvbmcgZGllcCBjdWEgDQpQaGF0IG5nb24gdmEgSGFu aCBkb25nIHR1YW4gbmF5IGd1aSB0b2kgYmFuIGRvYy4NCg0KKiBQTiZIRDogVmluYXNoaW4ga2hv bmcgdGhlIGRhbSB2YSB0aHUgZ3VpIG5odW5nIGxpbmggaG9uIGRhdSBraG8NCiogSGFpIGx5IGRv IGNobyBwaGVwIGRvbmcgY3VhIGR1IGFuIGFsdW1pbmENCiogSGFuZyBsb2F0IG5oYW4gc2kga2ll biBuZ2hpIHRhbSBuZ3VuZyBraGFpIHRoYWMgYm8teGl0DQoNCkJvIHhpdC4uLm5vIGJvIHhpdC4u LmJvIHhpdC4uLm5vLi4ubm8uLi5uby4uDQoNCkNvIG1vdCBsb2FpIHRhaSBuZ3V5ZW4gZHVvYyBk YW8gYm9pIGxlbiB0dSB0cm9uZyBsb25nIGRhdCwgdmEgZHVvYyBzaW5oIHRoYW5oIGhpbmggaGFp IJYgDQptb3QgZHUgYW4gbG9uLCBuZ2F5IGxhcCB0dWMsIG5vIHRybyB0aGFuaCBtb2kgcXVhbiB0 YW0gbG8gbGFuZyBsb24gdm9pIHhhIGhvaS4gRG8gbGEgYm8tIA0KeGl0IG8gVGF5IE5ndXllbi4N Cg0KVGFpIG5ndXllbiAtIGNvbiBkZSBjdWEgZGF0IG51b2MsIGJhbyBnaW8gY3VuZyBodWEgaGVu IHN1IHRydSBwaHUsIHN1IGdpYXUgY28gY2hvIHF1b2MgDQpnaWEuIE5odW5nICdjaHUgdGFpIGxp ZW4gdm9pIGNodSB0YWkgbW90IHZhbiItIG5nYXkga2hpIG1vaSB4dWF0IGhpZW4sIGR1IGFuIGJv LXhpdCBsYWkgDQpjaHVhIGNoYXAgbmd1eSBjbyBsYW0gcGhhbiB0YW0geGEgaG9pLiBOZ2F5IGNh IGdpdWEgbGFuaCBkYW8gdm9pIGxhbmggZGFvLiBHaXVhIG5odW5nIA0KcXVhbiBjaHVjIHZhIHRy aSB0aHVjIHRyb25nIGN1bmcgbW90IGxpbmggdnVjIGNodXllbiBtb24uIEFpIGN1bmcgY28gbHkg bGUgZGUgYmllbiBtaW5oIA0Ka2hhIG1hbmggbWUgY2hvIHF1YW4gZGllbSBjdWEgbWluaC4NCg0K Q2FpIGNodSBiby14aXQgbm8gIm5oYXkgY2FtIiB2YSBkZSBsYW0gdG9uIHRodW9uZyBjb24gbmd1 b2kgZGVuIG11YywgbmV1IG1vdCBuaGEgDQp2YW4sIG5oYSBiYW8gbmFvIGRvIG5hbyBiZW5oIHZ1 YyBjaHUgdHJ1b25nIGtoYWkgdGhhYyBiby14aXQsIGxhcCB0dWMgYmkgZHUgbHVhbiBzbyBkb25n IA0KeGEgaG9pIGtldCB0b2kgInZhbiBubywgYmFvIG5vIi4uLg0KDQpUdSBsdWMgbmFvLCBiby14 aXQgYm9uZyBuaHUgbW90ICJ0cmFpIGNhbSIuIFRoZW0gImR1bmcgY2hhbSIgbGFtLCBuaHVuZyBk byBkYW0gYWksIA0Ka2UgY2Ega2hvbmcgaXQgYmFjIHRyaSB0aHVjIHJhdCBnYSBsYW5nLCBkYW8g aG9hLCBkYW5nIGRvLi4uIGhvaSB4dWFuLCBkYW0gbW9uIG1lbiBkZW4gDQpnYW4uDQoNClRoZSBu aHVuZyBtb2kgZGF5LCBzYXUgbmh1bmcgdGhhbmcgbmdheSBpbSBhbmcsIGFtIHVjLCBib25nICJ0 cmFpIGNhbSIgYm8teGl0IGJpICJsbyANCmhhbmciLCBiYXQgY2hhcCBubyBkYW5nIGJ1b2MgcGhh aSAibXUgbmkgY2hlIHRhaSIgdGhhdCBjaGF0Lg0KDQpOZ3VvaSBsYW0gImxvIiwgbGFpIGtob25n IHBoYWkgY2FjIGJhYyB0cmkgdGh1YyBuZ3VvaSBWaWV0IG1hdSBkbyBkYSB2YW5nLiBNYSBsYSBu Z3VvaSANCkh1bmdhcmksIG11aSBjYW8sIGRhIHRyYW5nIG8gQ2hhdSBBdSB4YSB4b2kuIERvIGxh IGJvaSBzdSBjbyB0aGFtIGhvYSBidW4gZG8gY3VhIG51b2MgDQpIdW5nIHZ1YSB4YXkgcmEuIEhv biBtb3QgdHJpZXUgbTMgYnVuIGRvIGRvYyBoYWkgdHJhbiBraG9pIGJlIGNodWEsIG8gbmhpZW0g Y2EgbW90IA0KdnVuZyByb25nIGRlbiA0MCBrbTIuIE5vaSBjaG8gZHVuZyBob24sIHRyYWkgY2Ft IGJvIHhpdCB0dSB2byByYSBuaHVuZyBoaWVtIGhvYSBkYW5nIA0KbWFuZyB0cm9uZyBtaW5oIG5v LCBkbyBjb25nIG5naGUgdmEgdGhpZXQgYmkgbGFjIGhhdSBtYSBudW9jIEh1bmcgZHUgbmhhcC4N Cg0KQnVpIGRvIHBodSBraW4gbmh1bmcgbmdvaSBsYW5nLCBuaHVuZyBjYW5oIGRvbmcsIG5odW5n IG1hbmggdnVvbiBjdWEgbmd1b2kgZGFuIA0KSHVuZy4gRG9uZyBidW4gZG9jIGhhaSBkYSBjaGF5 IGxhbiB0b2kgc29uZyBEYW51eXAgKGRhaSAyLjg1MCBrbSksIGNvbiBzb25nIGxvbiB0aHUgDQpo YWkgbyBDaGF1IEF1LCBjaGF5IHF1YSBIdW5nYXJpLCBYZWNiaWEsIEJ1bmdhcmksIFJ1bWFuaSB2 YSBVY3JhaW5hLi4uIHRydW9jIGtoaSBkbyByYSANCkJpZW4gRGVuLiBEb25nIGJ1biBkbyB0aGVv IHNvbmcgRGFudXlwIGtoaWVuIGNvbiBzb25nIHhhbmggdGhvIG1vbmcgdGh1byBuYW8gYmllbiAN CnRoYW5oIGNvbiBzb25nICJkYXUgbWF0IGRvIi4gU3UgY28gbmF5IGtob25nIGNoaSBraGllbiBu dW9jIEh1bmcsIG1hIGJhdCBjdSBxdW9jIGdpYSANCm5hbyBjbyAiZGFuIGRpdSIgdm9pIGJvIHhp dCBkZXUgcmF0IGxvIG5nYWkuDQoNCihBbmg6IEJ1biBkbykNCg0KQ2hpbmggdmkgdGhlLCBtb3Qg bG9hdCBjYWMgYmFvIGR1YSBraG9uZyBuZ3VuZyBuZ2hpIHZlICJ0cmFpIGNhbSIgYm8geGl0IHZv aSBuaHVuZyANCnRob25nIHRpbiBub25nIGJvbmcgbGllbiBxdWFuIHZhbiBtZW5oIHF1b2MgZ2lh LiBEYW5nIGNodSB5IHZhIG5vaSBiYXQgbmhhdCwgY28gdGhlbSANCm5oaWV1IGNhbiBibyBsYW5o IGRhbyB0byBybyB0aGFpIGRvIHZhIG5oaWV0IGh1eWV0IGN1YSBtaW5oLCBreSB0ZW4ga2llbiBu Z2hpIHRhbSBkdW5nIA0Ka2hhaSB0aGFjIGJvIHhpdCwgbmh1IFBobyBDVCBudW9jIE5ndXllbiBU aGkgQmluaCwgbW90IG5oYSBsYW5oIGRhbyBjYXAgY2FvLCBuaHUgR1MgDQpIbyBOZ29jIERhaSwg R1MgQ2h1IEhhbywgR1MgRGFuZyBIdW5nIFZvLi4uY2FjIHRyaSB0aHVjIGNvIHRlbiB0dW9pIHR1 bmcgbGFtIHF1YW4gDQpseS4gVGllbmcgbm9pIHBoYW4gYmllbiBxdWFuaCAidHJhaSBjYW0iIHhh bmggbmh1IGxhIHJ1bmcuLi4gDQoNCk5nYXkgMjUtMTAsIFZpZXROYW1OZXQgY28gYmFpOiAiSGFp IGx5IGRvIGNobyBwaGVwIGRvbmcgY3VhIGR1IGFuIGFsdW1pbmEiIGN1YSBUUyANCk5ndXllbiBU aGFuaCBTb24sIEdpYW0gZG9jIENvbmcgdHkgTmFuZyBsdW9uZyBzb25nIEhvbmcsIHRodW9jIHRh cCBkb2FuIFRLViCWIA0KY2h1IGRhdSB0dSBkdSBhbiBibyB4aXQgVGF5IE5ndXllbiwgY2FuaCBi YW8gIk5ndXkgY28gdHUgY29uZyBuZ2hlIHRoYWkgYnVuIGRvOyB2YSBydWkgDQpybyB2ZSBraW5o IHRlIi4gQ2FpIG5ndXkgY28gc2Uga2hvbmcgdHJhbmgga2hvaSB4dWF0IHBoYXQgdHUgc3Ugbmhh cCBraGF1IGNhYyB0aGlldCBiaSBsYW4gDQpjb25nIG5naGUga2hhaSB0aGFjIGJvIHhpdCBsYW4g eHUgbHkgYnVuIGRvIGxhYyBoYXUtIGJpIGtpY2ggY3VhIGNhYyBudW9jIG5naGVvIGRhbmcgDQpw aGF0IHRyaWVuLCB0cm9uZyBib2kgY2FuaCB0aGllbiBuaGllbiwgdGhpZW4gdGFpIG5nYXkgY2Fu ZyB0aG9hdCBraG9pIHRhbSBraWVtIHNvYXQgY3VhIA0KY29uIG5ndW9pOg0KDQpUaGUgbmh1bmcs IHRydW9jIG5odW5nIGxvIG5nYWkgY3VhIHhhIGhvaSwgQm8gdHJ1b25nIFRhaSBOZ3V5ZW4gLSBN b2kgdHJ1b25nIFBoYW0gDQpLaG9pIE5ndXllbiBkYSB0cmFuIGFuIGR1IGx1YW4gYmFuZyBtb3Qg cGhhdCBuZ29uIGtoYSBhbiB0dW9uZzogIkJvIFROTVQga2hhbmcgDQpkaW5oLCBoYWkga2h1IHh1 IGx5IGJ1biBkbyBuYXkgKG8gVGF5IE5ndXllbi0gS0QpIGxhIGFuIHRvYW4uIFR1eSBuaGllbiwg dmkgY2h1YSB2YW4gDQpoYW5oIG5lbiBjaHVuZyB0b2kgbW9pIGtoYW5nIGRpbmggc3UgYW4gdG9h biB0cmVuIGx5IHRodXlldC4uLlNhdSBraGkgZGkga2hhbyBzYXQgbyANCkh1bmdhcnksIGJvIHNl IHRpZXAgdHVjIG5naGllbiBjdXUgY2hpIHNvIGFuIHRvYW4gbyBoYWkga2h1IHh1IGx5IGJ1biBk byINCg0KTW90IHN1IGtoYW5nIGRpbmggY3VhIHZpIHF1YW4gY2h1YyBkYXUgbmdhbmggdmUgbW9p IHRydW9uZyBjdW5nIHJhdC4uLmx5IHRodXlldCENCg0KTmh1bmcgbGFwIGx1YW4gY3VhIEJvIHRy dW9uZyBQaGFtIEtob2kgTmd1eWVuIGRhIGJpIGNoaW5oIG5ndW9pIHRyb25nIGN1b2MsIG9uZyAN Ck5ndXllbiBWYW4gQmFuLCBuZ3V5ZW4gVHJ1b25nIGJhbiBEdSBhbiBuaG9tIGN1YSBUS1YsIG5n dW9pIHR1bmcgdGhhbSBnaWEgdHJpZW4gDQpraGFpIGR1IGFuIFRhbiBSYWksIHBoYW4gYmFjOiAi UGh1b25nIHBoYXAgeHUgbHkgYnVuIGRvIGtpZXUgdGhhaSB1b3QgZGFuZyBhcCBkdW5nIGRvaSAN CnZvaSBoYWkgZHUgYW4gYm8geGl0IFRheSBOZ3V5ZW4ga2hvbmcgcGhhaSBsYSBwaHVvbmcgcGhh cCB0aWVuIHRpZW4uIE1hYyBkdSBUS1YgY2hvIA0KYmlldCB0aHVjIGhpZW4gdGhlbyBraWV1IGNo aWEgbywgbmh1bmcgbW9pIG8gdmFuIGxhIG1vdCBobyBidW4gZG8gdmEgY2FjIGhvIG5obyBuYXkg bmFtIA0KdHJvbmcgbW90IGhvIGJ1biBkbyBsb24uIFR1YyBuZXUgY28gYmllbiBkb25nIHRoaWVu IHRhaSB0aGkgY2FjIGhvIG5heSBzZSBiaSB0YW4gcGhhIG5odSANCm5oYXUsIG5ndXkgY28gdGhh bSBob2EgdmFuIGNvIHRoZSB4YXkgcmEgbmh1IG8gSHVuZ2FyeS4uLg0KDQpDb24gb25nIE5ndXll biBLaGFjIFZpbmggKENodSB0aWNoIFRvbmcgaG9pIERpYSBjaGF0IFZOKToNCg0KUGhhaSBkdW5n IGxhaSBkZSBkYW5oIGdpYSB0YWMgZG9uZy4gTmV1IHhheSByYSB2byBobyBjaHVhIGJ1biBkbyBv IFRheSBuZ3V5ZW4gc2UgcmF0IA0Kbmd1eSBoaWVtLCB2aSBjaGF0IGJ1biBkbyB0aGFtIHRoYXUg dmFvIHRhdCBjYSBsb3AgZGF0IGRhIHRyb25nIGtodSB2dWMgVGF5IG5ndXllbiB2YSANCmFuaCBo dW9uZyBkZW4gZGF1IG5ndW9uIGhlIHRob25nIHNvbmcgRG9uZyBOYWkuIE5ldSB4YXkgcmEgdHJ1 b25nIGhvcCBuaHUgdmF5IHRoaSANCmhhbmcgdHJpZXUgbmd1b2kgZGFuIHNlIGJpIGFuaCBodW9u ZyBib2kgY2FjIGhvYSBjaGF0IGRvYyBoYWkgdHUgY2FjIG1vIGJvIHhpdC4gLg0KDQpDdW5nIGto b25nIHBoYWkgY2hpIGNvIEh1bmdhcmksIG1hIG5nYXkgbyBUcnVuZyBRdW9jOiAiQ2hpbmggcGh1 IFRydW5nIFF1b2MgZGEgDQpkb25nIGN1YSBuaGlldSBtbyBraGFpIHRoYWMgYm8teGl0IHRyZW4g bGFuaCB0aG8gVHJ1bmcgUXVvYyBkZSB0cmFuaCB0aGFtIGhvYSBtb2kgDQp0cnVvbmcuDQoNCihB bmg6IEtoYWkgdGhhYyBibyB4aXQuIEFuaCBEYXQgVmlldCkgDQoNCk5odW5nIHRhbSBndW9uZyBi dW4gZG8geGEgY28sIGdhbiBjbywgbmh1bmcgc3UgY2FuIGdpYW4gdGhpZXQgdGhhIGN1YSBkdSBs dWFuIGtob25nIA0KYmlldCBjbyBrZXQgZ2FuIGR1b2Mgc3UgcGhhbiB0YW0geGEgaG9pLCBiYXQg ZGF1IHR1IGNhaSAidHJhaSBjYW0iIGRpYSBkYW5nIG5heSBraG9uZz8NCg0KTW9pIGRheSwgb25n IExlIER1b25nIFF1YW5nLCBUaHUgdHJ1b25nIEJvIENvbmcgdGh1b25nIGtpZW0gQ2h1IHRpY2gg SERRVCBUYXAgDQpkb2FuIENvbmcgbmdoaWVwIHRoYW4gLSBraG9hbmcgc2FuIFZOIChUS1YpLCBw aGF0IGJpZXUsIG5ldSBDaGluaCBwaHUgYmFvIGR1bmcgdGhpIA0KZHUgYW4gc2UgZHVvYyBkdW5n IChUdW9pIHRyZSwgbmdheSAyNC0xMCkNCg0KQ29uIEJvIHRydW9uZywgQ2h1IG5oaWVtIFZQQ1Ag Tmd1eWVuIFh1YW4gUGh1YyBjaG8gaGF5LCBDaGluaCBwaHUgc2UgbGFuZyBuZ2hlIA0KZGUgdGhh byBsdWFuIHRoZW0gbmhhbSBkaSBkZW4gcXV5ZXQgc2FjaCBjdW9pIGN1bmcgdHJvbmcgdmFuIGRl IG5heS4NCg0KQ2F1IGNodXllbiBibyB4aXQgY3VhIHRob2kgaGllbiBkYWkgc2FvIGdpb25nIGNh dSBjaHV5ZW4gdGluaCB5ZXUgdGh1byBob25nIGhvYW5nIGN1YSANCm9uZyBBZGFtIHZhIGJhIEV2 YSBsbyBhbiB0cmFpIGNhbSBkZW4gdGhlLiBOaHVuZyBob2EgcmEsIG9uZyBBZGFtIHZhIGJhIEV2 YSBjdW5nIGNvIA0KbHVjICJ0YW4gbGFuaCB0aW5oIHlldSI/IEN1bmcgY28gbHVjIGNhIGhhaSBr aG9uZyBjdW5nIG5oaW4gdmUgbW90IHBoaWE/DQoNClZpIHF1YW4gbmllbSB2ZSB0aW5oIHlldSwg dmkgY29uIHRpbSwgaGF5IHZpIGxvaSBpY2gga2hhYyBuaGF1Pw0KDQpIYXkgZ2lvIGRlbiBsdWMs IGNhIHhhIGhvaSB0YSBjdW5nIHBoYWkuLi4gYm9pIGhvYSBkZSB0aW0gc3UgbWF5IHJ1aToNCkJv IHhpdC4uLiBubyBibyB4aS4uLiBibyB4aXQuLi5ubyBibyB4aXQuLi5ibyB4aXQuLi5uby4uLm5v Li4ubm8uLmJvLi4ueGl0DQoNCkNhYyAiVGhpZXUgZ2lhIiB0cmFuaCBjYWkuLi4NCg0KTmh1bmcg bmdheSBxdWEsIGN1b2kgY3VuZywgcm9pIHRhaSBuYW4gYmF0IG5nbyBjdWEgY2hpZWMgeGUga2hh Y2ggYmkgbHUgY3VvbiB0cm9pIHh1b25nIA0Kc29uZyBMYW0sIGRvYW4geGEgWHVhbiBMYW0sIE5n aGkgWHVhbiAoSGEgVGluaCkgY3VuZyB0YW0ga2hlcCBsYWkgdm9pIG51b2MgbWF0IGN1YSANCmhh bmcgdHJpZXUgY29uIHRpbSBkYXUgZG9uIGRvaSB0aGVvIHR1bmcgbmdheSwgdHVuZyBnaW8sIHR1 bmcgcGh1dC4gVHJhbiBWYW4gVHJ1b25nLCANCmtlIGxhaSB4ZSBwaGlldSBsdXUgdmEgY29pIHRo dW9uZyBzaW5oIG1hbmcgaGFuaCBraGFjaCBkYSBiaSBiYXQgdmEgYmkga2hvaSB0by4gQ29uIGR1 b25nIA0Kc3UgbmdoaWVwIGN1YSBuaGFuIHZhdCBuYXkgZGEga2hvbmcgdGhlIGRhaSBuaHUgY2Fp IHRlbiBUcnVvbmcgY3VhIGFuaCB0YS4NCg0KTmh1bmcgYmF5IGdpbywgdm8gYmkga2ljaCB2ZSBs dW9uZyB0YW0gdmEgdHJhY2ggbmhpZW0gY29uIG5ndW9pIG1vaSBsYSBsdWMgdmVuIGNhbmggDQpt YW4gdGFuZy4gRGEgYmF0IGRhdSBjbyBzdSB0cmFuaCBjYWksIHRoYW5oIG1pbmgsIHRoYW0gY2hp ICJ0YW5nIGxvaSIgY2hvIG5oYXUgZ2l1YSBjYWMgDQoiVGhpZXUgZ2lhIi0gVGhpZXUgVHJhY2gg bmhpZW4sIFRoaWV1IEx1b25nIHRhbSwgdmkga2hvbmcgYWkgdGhheSBtaW5oIGNvIGxvaSB2b2kg MjAgDQpuaGFuIG1hbmcgdm8gdG9pIGJvbmcgbmhpZW4gcGhhaSBjaGV0IGtpYS4NCg0KQ2F1IHRy YSBsb2kgcGhvIGJpZW4gbWEgY2FjIHBob25nIHZpZW4gVmlldE5hbU5ldCwgbmdheSAyMi0xMCBu aGFuIGR1b2MgbGE6ICJDaHVuZyANCnRvaSBkYSBsYW0gaGV0IHRyYWNoIG5oaWVtIi4NCg0KT25n IE5ndXllbiBUcnVvbmcgVHVvbmcgKENvbmcgdHkgNDc0KTogIlNhbyBjaGFuIGNodW5nIHRvaSBj byBxdXllbiBsYXAgY2h1IGtob25nIA0KY28gcXV5ZW4gY2hhbiBoYXkgY2hvIHhlIGRpLCBjYWkg ZG8gbGEgcXV5ZW4gY3VhIENTR1QuIENodW5nIHRvaSB0aGkga2hvbmcgY28gYmllbiwgDQpraG9u ZyBjbyB0aGUsIGtob25nIGNvIGNoZSB0YWkgZGUgeHUgbHkuLi5DaHVuZyB0b2kgZGEgbGFtIGhl dCBjaHVjIG5hbmcgbmhpZW0gdi4uLk5ldSANCmxhaSB4ZSBjYW0gdGhheSBraG9uZyBhbiB0b2Fu IHRoaSBwaGFpIHR1IGJpZXQgZGUgZHVuZy4gQ2h1bmcgdG9pIGtob25nIGNvIHF1eWVuIGNoYW4g eGUiLg0KDQpDb24gb25nIE5ndXllbiBUaGFuaCBCYW8sIFRydW9uZyBwaG9uZyBDU0dUIEhhIFRp bmggY2hvIHJhbmcsIHZpZWMgcGhhbiBsdW9uZywgDQpsYXAgc2FvIGNoYW4gbGEgdHJhY2ggbmhp ZW0gY3VhIG5nYW5oIGdpYW8gdGhvbmcgZHVvbmcgYm86ICJIYW5nIG5naGluIGNoaWVjIHhlIHRh YyANCmRvbiBkb25nLCBraGkga2hvbmcgY28gc2FvIHRoaSBraG9uZyB0aGUgY2hhbiBkdW9jLiBU aGFpIGRvIGN1YSBsYWkgeGUsIHRoYWkgZG8gY3VhIA0Ka2hhY2gga2hvbmcgaG9wIHRhYyB0cm9u ZyB2aWVjIHBob2kgaG9wIG5nYW4gY2hhbiB4ZS4gQ28gbmh1bmcgeGUgZGFtIHRoYW5nIHZhbyAN CkNTR1QgZGUgY2hheS4uLktoaSB4ZSBDU0dUIHF1YXkgbmdhbmcgZ2l1YSBkdW9uZywgbGFpIHhl IHZhbiBsYWNoIHRyYW5oIGRlIHZ1b3QgZGkuLi4iDQoNCihBbmg6ICdDaHVuZyB0b2kgZGEgbGFt IGhldCB0cmFjaCBuaGllbScsIEFuaCBMYW8gRG9uZykgDQoNClRydW9jIGRvLCBraGkgdGhvbmcg dGluIHZvaSBiYW8gY2hpLCBvbmcgQmFvIGxhaSBub2kgcmFuZywgY2hpZWMgeGUgdHJlbiBkYSBi YXQgY2hhcCBoaWV1IA0KbGVuaCBjdWEgQ0dTVCBkZSBjaGF5IHZhbyBkb2FuIGR1b25nIG5nYXAg c2F1IG51b2MuIENTR1QgY28gZHVvaSB0aGVvIG5odW5nIGRvIA0KdHJvaSB0b2kgbmVuIGtob25n IGJhdCBkdW9jPyANCg0KQ3UgdGhlbyBjYWkgZGEgbmF5LCBjYWkgbG9naWMgbmF5LCB0aGkgbG9p IGNoaW5oIGxhIGNhaSB4ZSBraGFjaCBiZXAgZHVtIGRvLCB2YSBob2FuZyBzbyANCmRhIG5hbSBs aW0gdm9pIGNhaSBidW5nIGRheSBjYXQgc3VvdCBuaGlldSBuZ2F5IGR1b2kgZG9uZyBsdSBkdSwg bG9pIHRhaSBuaHVuZyBuZ3VvaSANCmtoYWNoLSBhaSBiYW8gZGEgbGVuIGNoaWVjIHhlIGF5LSBk ZSBiaSBsdSBjdW9uLg0KDQpDb24gbmV1IHRoZW8gbGUgcGhhaSBkYW8gbHkgdGhvbmcgdGh1b25n LCB0aGkgbWFjIGR1LCBjaGllYyB4ZSBkYSBkdW9jIHRydWMgdm90LCBkdW9jIA0Kc3VhIGNodWEs IHZhIG1hYyBkdSBoYXUgaGV0IG5hbiBuaGFuIHhhdSBzbyBkYSB0cm8gdmUgdm9pIGNhdCBidWks IGhhaSBvbmcgIlRoaWV1IGdpYSIgDQpraG9uZyBuZW4gdHJhbmggY2FpIG1hIG5lbiB0dSBuaGlu IGxhaSBtaW5oLCB0cnVvYyBraGkgY28gY2hpZWMgY2F1LCB0cnVjIGNhYyBvbmcgcmEgYW5oIA0K c2FuZyBjdWEgcGhhcCBsdWF0Lg0KDQpOZ3VvaSB2aWV0IGJhaSBuYXkgY2hpIGRheSBkdXQsIHhv dCB4YSBtb3QgZGlldTogVGFpIHNhbyBkYXQgbnVvYyB0YSwgZGFjIGJpZXQgZGFpIGRhdCBtaWVu IA0KVHJ1bmcsIGx1b24gcGhhaSBzb25nIGNodW5nIHZvaSBiYW8sIGx1LCBjYWMgdGluaCBjbyBj YWMgdHJ1bmcgdGFtIGN1dSBobyBwaG9uZyBraGkgYmFvIA0KbHV0IHhheSByYSwgbmh1bmcgbGFp IGNodWEgYmFvIGdpbyBuZ2hpIGRlbiB2aWVjIHNhbiB4dWF0IGFvIHBoYW8gY2hvIG5ndW9pIGRh biBkdSANCnBob25nIChnaW9uZyBuaHUgbXUgYmFvIGhpZW0gY2hvIG5ndW9pIGRpIHhlIG1heSB0 YWkgY2FjIGRvIHRoaSkuDQoNCk5ldSBjbyBhbyBwaGFvIGNobyBtb2kgbmd1b2kgZGFuLCBsb24s IGJlLCBnaWEsIHRyZS4uLnRoaSBraGkgbHUgdG9pLCB0cm9uZyBraGkgY2hvIGRvaSBjdXUgDQpo bywgbmd1b2kgZGFuLCBuaGF0IGxhIHRyZSBlbSwgcGh1IG51LCBuZ3VvaSBnaWEgeWV1Li4uY28g dGhlIGNodSBkb25nIGNodW5nIHNvbmcgdm9pIGx1LCANCmtob25nIGRlbiBub2kgcGhhaSBjaGV0 IG9hbiB1b25nIG5odSBuaHVuZyBuZ2F5IHF1YT8gQ28gcXVhIGtobyBraG9uZyBraGkgcGhvbmcg aG8gDQpjaG8gbmd1b2kgZGFuLCBiYW5nIG1vdCBnaWFpIHBoYXAgZG9uIGdpYW4gdmEga2hvbmcg cXVhIGRhdCBheT8NCg0KTG9uZyBob25nIHZhLi4uIG5nYW4gY2FuDQoNClZhIHZvaSBjYWkgZGEg dHJhbmggY2FpIGdpdWEgaGFpIG9uZyAiVGhpZXUgZ2lhIiBkYW5nIGhvYW5oIGhhbmggbmdhbmcg ZG9jIG8gYmF0IGN1IGxpbmggDQp2dWMgbmFvIGhpZW4gbmF5LCB4YSBob2kgdGEgbGFpIGRhbmcg cGhhaSBsYW5nIG5naGUsIHBoYWkgY2h1YW4gYmkgbW90IGNhaSBjYXUgdHJ1YyBraGFjIJYgDQpj byBkYWkuDQoNCkJvaSBjYWkgY29uIHRhdSBraG9uZyBsbyBWaW5hc2hpbiB2YW4gY2h1YSB0aG9h dCBraG9pIG5ndXkgY28gYmkgY2hpbSwgdHJvbmcga2hpIGhhaSBvbmcgDQpUaGlldSBMdW9uZyB0 YW0gdmEgVGhpZXUgVHJhY2ggbmhpZW0gdGhpIHZhbiBjaHVhIHRpbSByYS4NCg0KTmd1eWVuIEJp IHRodSBOZ2hlIEFuIFRyYW4gVmFuIEhhbmcgZHVhIHJhIGNvbiBzbywgdHJhbiBsdSBsdXQgY2h1 YSB0dW5nIGNvIHRyb25nIGxpY2ggDQpzdSBIYSBUaW5oIHZhIFF1YW5nIEJpbmggZGEgeG9hIHNv IDIwIHhhLCB0aGlldCBoYWkgaGFuZyBuZ2hpbiB0eSBkb25nLCB0dW9uZyBkdW9uZyANCnZvaSAi eG9hIHNvIiBjYSBtb3QgdGluaC4gVmF5IG5odW5nLCBzbyB2b2kgdGhpZXQgaGFpIDg2IG5naGlu IHR5IGRvbmcgbWEgVmluYXNoaW4gZ2F5IA0KcmEgdGhpIGNodWEgdGhhbSB2YW8gZGF1LiBPbmcg SGFuZyBkYXQgY2F1IGhvaTogIlF1YW4gdHJvbmcgbmhhdCBsYSBzYXUgZGF5IHh1IGx5IHRoZSBu YW8/IFRpZXAgc2F1IFZpbmFzaGluIHNlIGxhIGFpPyINCg0KQWkgc2UgdHJhIGxvaSBjaG8gY2Fj IGRhaSBiaWV1IFFILSBjdW5nIGNoaW5oIGxhIHRyYSBsb2kgY2hvIGRhbiBkYXk/DQoNCkNobyBk dSBUaHUgdHVvbmcgZGEgdGhhbmcgdGhhbiBkdW5nIHJhIG5oYW4gdHJhY2ggbmhpZW0gdmUgcGhp YSBDaGluaCBwaHUsIHRoZSBuaHVuZyANCnN1IHRpZXUgdGFuIGdhbiBtb3QgdHJhbSBuZ2FuIHR5 ICBkb25nIG1vIGhvaSBudW9jIG1hdCBjdWEgbmhhbiBkYW4gdHUgc3UgeWV1IGtlbSBjdWEgDQpi byBtYXkgZGlldSBoYW5oIFZpbmFzaGluIGRhIGxhIGNvbiBkYW8gc2FjLCBjdWEgdmFvIHRhbSBr aGFtIG5odW5nIGRhaSBiaWV1IFF1b2MgDQpob2kgdm9uICJsYW5oIG5odSBkYXQiIG5odSB4dWEg bmF5IG5ndW9pIGRhbiB0aHVvbmcgbmhhbiB4ZXQsIGtoaWVuIGNobyBobyBwaGFpIGR1bmcgDQpj YW0ga2V1IGxlbi4gRG8gdGh1YyByYSBjdW5nIGxhIHRpZW5nIGtldSBiaSB0aHVvbmcgY3VhIG5n dW9pIGRhbiB0cnVvYyB0b24gdGhhdCBuZ2hpZW0gdHJvbmcgbmF5Lg0KDQooQW5oOiBDb24gdGF1 IFZpbmFzaGluICBsYWkgbW9pIGR1b2MgJ3RydWMgdm90JywgQW5oIFZpZXROYW1OZXQpDQoNClRy b25nIGtoaSBkbywgdGh1IHRodWMsIGR1IGNvIGJhbSB0aGVvIGNhYyBzdSBraWVuLCBuaHVuZyBu Z3VvaSB2aWV0IGJhaSBuYXkgY3VuZyBob2EgY2EgDQptYXQsIGRhdSBjYSBkYXUgdmkgY2FjIGx5 IGxlIHRyYW5oIGNhaSwgdHUgY2FjIHBoaWEsIGNhYyBjbyBxdWFuIGNodWMgbmFuZyB0b2kgdGFw IGRvIGxlbiANCmRhdSBWaW5hc2hpbiwgbHVjIG5heSBkYSBuYW0gYmVwIGR1bSBkbywgZGF5IG51 b2kgdGllYyAtICJPaSB0aG9pIGJhbyBsaWV0IG5heSBjb24gDQpkYXU/Ii4gQmFvIHRoaSBkYSBt YXQsIGNoaSBjb24uLi5saWV0IG1hIHRob2khDQoNCk5nYXkgMjUtMTAsIHRyb25nIGJhbyBjYW8g Z3VpIHRvaSBkYWkgYmlldSBRSCwgQ2h1IG5oaWVtIFV5IGJhbiBUdSBwaGFwIFFIIGRhbiBsYWkg DQpjaHV5ZW4gVmluYXNoaW4gIk5odSBtb3QgZGllbiBoaW5oIGNobyB2aWVjIHR1eSBjbyBwaGF0 IGhpZW4gZGF1IGhpZXUgdG9pIHBoYW0gbmh1bmcgDQpraG9uZyB4dSBseSwgbmdhbiBjaGFuIGtp cCB0aG9pLg0KDQpVeSBiYW4gVHUgcGhhcFFIIGRhbmggZ2lhLCBxdWEgMTEgbGFuIHRoYW5oIHRy YSwga2llbSB0b2FuIG5odW5nIHNhaSBwaGFtLi4uTmh1bmcgDQpDaGluaCBwaHUgdmEgY2FjIGNv IHF1YW4gY2h1YyBuYW5nIGtob25nIGJpZXQsIGtob25nIGFpIGNoaXUgdHJhY2ggbmhpZW0uIFhh IGhvaSB2YSBjdSANCnRyaSByYXQgYnVjIHh1YyBjaG8gcmFuZyBjbyBzdSBiYW8gY2hlIGNobyBu aHVuZyB2aWVjIGxhbSBzYWkgdHJhaSwgdmkgcGhhbSBwaGFwIGx1YXQgY3VhIA0KVmluYXNoaW4g bGFtIHRoaWV0IGhhaSBsb24gZGVuIHRpZW4gdmEgdGFpIHNhbiBjdWEgbmhhIG51b2MiLg0KDQpV eSBiYW4gVHUgcGhhcCBsdXUgeSB0cm9uZyBxdWEgdHJpbmggdGh1YyBoaWVuIG5oaWVtIHZ1IHRo YW5oIHRyYSwgS2llbSB0b2FuIE5oYSBudW9jIA0KY2FjIGNhcCBkYSBwaGF0IGhpZW4gbmhpZXUg c2FpIHBoYW0sIGtpZW4gbmdoaSB0aHUgaG9pIG5oaWV1IHRpZW4gdmEgdGFpIHNhbiBuaHVuZyBL aWVtIA0KdG9hbiBOaGEgbnVvYyBraG9uZyBjaHV5ZW4gY28gcXVhbiBjbyB0aGFtIHF1eWVuIHh1 IGx5IGhpbmggc3UgbW90IHRydW9uZyBob3AgbmFvLg0KDQpTbyB2dSB2aWVjIGR1b2MgY28gcXVh biB0aGFuaCB0cmEgY2h1eWVuIGNobyBjbyBxdWFuIGRpZXUgdHJhIGN1bmcgcmF0IGl0Lg0KDQpU aGVtIHZhbyBkbywgbW90IHNvIGNhbiBibyBraWVtIHRvYW4gZGEgdmkgcGhhbSBxdXkgdGFjIGRh byBkdWMgbmdoZSBuZ2hpZXAsIHZpIHBoYW0gDQpwaGFwIGx1YXQsIGNvIGhhbmggdmkgdGhhbSBu aHVuZyINCg0KTmdheSBjaGlldSAyNS0xMCwgZGVuIGx1b3QgY28gcXVhbiBLaWVtIHRvYW4gTmhh IG51b2MgcGhhbiBiYWMuIFRoZW8gb25nIFZ1b25nIA0KRGluaCBIdWUsIFRvbmcgS1ROTiBjaG8g aGF5LCBLaWVtIHRvYW4gTmhhIG51b2MgKEtUTk4pIHR1bmcgbmhpZXUgbGFuIGxlbiBrZSANCmhv YWNoIGtpZW0gdG9hbiwgbmdheSB0dSBraGkgVmluYXNoaW4gY29uIGNodWEgbmFuZyBjYXAgbGVu IHRhcCBkb2FuLg0KDQpUdSBsdWMgVmluYXNoaW4gZGkgdmFvIGhvYXQgZG9uZyAoMjAwNikgZGVu IG5heSwgS1ROTiBkYSAyIGxhbiB4YXkgZHVuZyBrZSBob2FjaCANCmtpZW0gdG9hbiBkb2kgdm9p IHRhcCBkb2FuIG5heS4uLlR1eSBuaGllbiwga2UgaG9hY2ggbmF5IGxhaSB0aWVwIHR1YyBiaSAi dHJpIGhvYW4iIGJvaSANCmtob25nIGR1b2MgcGhlIGR1eWV0Lg0KDQpLaGkgZ3VpIGNobyBUaGFu aCB0cmEgQ2hpbmggcGh1LCB0aGkgIlRoYW5oIHRyYSBDaGluaCBwaHUgdGhheSBjbyBzdSB0cnVu ZyBsYXAgdmUgbW90IA0Kc28gbGluaCB2dWMgdmEgZG9pIHR1b25nIGtpZW0gdG9hbiIuDQoNClZh IHRodSB0aHVjLCBuZ3VvaSB2aWV0IGJhaSBuYXkgY3VuZyBuZ2hpIG1haSB2ZSBjYXUgcGhhdCBu Z29uIGN1YyBreSBhbiB0dW9uZyBjdWEgb25nIA0KTmd1eWVuIER1YyBLaWVuLCBVeSB2aWVuIFV5 IGJhbiBLaW5oIHRlIFFIIHRyZW4gYmFvIFZuRXhwcmVzcywgbmdheSAyMS0xMCAgcmFuZywgDQpW aW5hc2hpbiBkYSAicGhhIHNhbiB0aGVvIGtpZXUgVmlldCBOYW0iLiBOZ2hpYSBsYSBuZ3VvaSBs YW8gZG9uZyBraG9uZyBiaSBkYXkgcmEgDQpkdW9uZywgY2FjIGtob2FuIG5vIG5nYW4gaGFuZyB2 YW4gZHVvYyBkYW0gYmFvLi4uIHZhIENoaW5oIHBodSB2YW4gZ2l1IGR1b2Mgc3Ugb24gDQpkaW5o IHZpIG1vIi4NCg0KTmh1bmcgdGh1YSBiYWMgTmd1eWVuIER1YyBLaWVuLCBvIGNhYyBudW9jIHR1 IGJhbiwgZG9hbmggbmdoaWVwIHBoYSBzYW4sIG5ndW9pIGxhbyANCmRvbmcgYmkgZGF5IHJhIGR1 b25nLCB2YSBkdW9jIGh1b25nIGx1b25nIHRoYXQgbmdoaWVwLiBDb24gbyB0YSwgbmd1b2kgbGFv IGRvbmcgbyANClZpbmFzaGluIHZhbiBraG9uZyBiaSBkYXkgcmEgZHVvbmcsIGNhYyBraG9hbiBu byBuZ2FuIGhhbmcgdmFuIGR1b2MgYmFvIGRhbS4uLg0KdGhpIHRpZW4gZG8gbGEgdGllbiB0aHVl IGN1YSBuaGFuIGRhbiwgY3VhIHRvYW4geGEgaG9pIGRvbmcsIGhheSBsYSBxdXkgcmllbmcgY3Vh IE5oYSANCm51b2M/DQoNClZhIHRyb25nIGtoaSBtb3Qgc28gZGFpIGJpZXUgdHJhY2ggQ2hpbmgg cGh1LCB0aGkgY28gbGUsIGN1bmcgbmVuIG5oaW4gbmhhbiBsYWkgdHJhY2ggDQpuaGllbSBnaWFt IHNhdCBjdWEgUXVvYyBob2kga2hpIHR1IGNhY2ggZGF5IHZhaSBuYW0sIGNhYyBjaHV5ZW4gZ2lh IHRyb25nIHZhIG5nb2FpIA0KbnVvYyBkYSBjYW5oIGJhbyBtYW5oIG1lIHZlIG5odW5nIGJhdCBv biBjdWEgbW8gaGluaCBWaW5hc2hpbi4NCg0KRHUgbHVhbiBjdW5nIGNvIHF1eWVuIGRhdCBjYXUg aG9pIHZlIHRyYWNoIG5oaWVtIGN1YSBjYWMgY28gcXVhbiBiYW4gRGFuZywgbmh1bmcgDQpkYXUg bW9pIG5hbSBxdWFuIGx5IGNhYyBuaGFuIHN1IGR1bmcgZGF1IGNhYyB0YXAgZG9hbiBuaHUgb25n IFBoYW0gVGhhbmggQmluaCwgDQpuZ3VvaSBkYSBiaSBiYXQgdmkgbmh1bmcgc2FpIHBoYW0gbyBW aW5hc2hpbi4NCg0KSGF5IGNvIGxlIHZpIG1vIGhpbmggcXVhbiBseSB0YXAgZG9hbiBuaGEgbnVv YyAia2lldSBWaWV0IE5hbSIsIHBoYSBzYW4gInRoZW8ga2lldSANClZpZXQgTmFtIiwgbWEgdHJh Y2ggbmhpZW0gcXVhbiBseSBjdW5nIHRoZW8gImtpZXUgVmlldCBOYW0iLCBjaGFuZyBnaW9uZyBh aSwgcXVhIA0KbmhpZXUgZGF1IG1vaSBjaGl1IHRyYWNoIG5oaWVtLCBjaGFuZyBiaWV0IGNhIG5o YW4gbmFvIHBoYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KQ28gbGUsIGNodWEgYmFvIGdpbyB4YSBo b2kgdGEsIG5oYW4gZGFuIHRhIGJ1b2MgcGhhaSBkb25nIGhvIGNobyBOaGEgbnVvYyBtb3Qga2hv YW4gDQoiaG9jIHBoaSIga2hvbmcgbG8gZGVuIHZheS4NCg0KVmEgY2hvIGR1LCBjYWMgZGFpIGJp ZXUgUUggZGEgdGhhbmcgdGhhbiBkZSBjYXAgZGVuICJ2YW4gaG9hIHR1IGNodWMiIG5odW5nIHhl bSByYSANCnZhbiBob2EgbmF5IG8geGEgaG9pIHRhLCBjb24gbGEgY3VhICJxdXkgdmEgaGllbSIu IFZvaSBjYWMgbnVvYyB2YW4gbWluaCB0cmVuIHRoZSBnaW9pLCANCm5ndW9pIHRhIGhhbmggeHUg dGhlbyBraWV1IHRyYWNoIG5oaWVtICJuYW5nIG5nYW4gY2FuIiB2YSB2aWVjIHR1IGNodWMgIm5o ZSBuaHUgbG9uZyANCmhvbmciLg0KDQpDb24gbyB0YSwgdGhpIGNvIGtoaSB0cmFjaCBuaGllbSAi bmhlIG5odSBsb25nIGhvbmciLCB2YSB0dSBjaHVjIGxhaSAibmFuZyBuZ2FuIGNhbiIuIA0KS2hv IHRoZSBkYXkhDQoNCkNob3QgbmhvIG51IGN1b2kgaG9tIGN1YSBuaGEgcGhlIGJpbmggdmFuIGhv YyBIb2FuZyBOZ29jIEhpZW46ICJUYWkgY2FpIG51b2MgVmlldCBtaW5oIG5vIHRoZSIuIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDUvMjAxMDExMDIyMzI0 MDMuYXNweCBEYW0gSHV5IC0gSG9haSAgTmFtIDAyLzExLzIwMTAgMjM6MjQgDQoNCkNvbmcgYW46 IENTR1QgZGkgdHJlLCB2ZSBzb20sIGxhIGNhIHF1YW4gYW4uLi4gIA0KDQooQW5oOiBDU0dUIHZ1 aSB2ZSB0YW0gdHJvbmcgZ2lvIGxhbSB2aWVjIG8gcXVhbiBjYSBwaGUgLSBhbmg6IERhbSBIdXkp IA0KDQpOaGlldSBuZ2F5IGdoaSBuaGFuIHRodWMgdGUsIFBWIFRoYW5oIE5pZW4gbmhhbiB0aGF5 IGJlbiBjYW5oIG5odW5nIENTR1QgY2FuIG1hbiANCnZvaSBjb25nIHZpZWMsIHRodWMgaGllbiBk dW5nIHRob2kgZ2lhbiwgZGlldSBsZW5oIHRoaSB2YW4gY29uIG5odW5nIENTR1QgY2hlbmggbWFu ZywgDQpibyBjaG90Li4uIG1hYyB0aW5oIGhpbmggZ2lhbyB0aG9uZyBsb24geG9uLiANCg0KSG9u IDEgdGhhbmcgdHJ1b2MsIFBob25nIENhbmggc2F0IGdpYW8gdGhvbmcgKENTR1QpIGR1b25nIGJv IC0gZHVvbmcgc2F0IChQQzY3KSANCkNvbmcgYW4gVFAuSENNIHRpZXAgbmhhbiBob24gMjAwIENT R1QgYm8gc3VuZyBjaG8gY2FjIGRvaS4gIkRpZXAga2h1YyIgbHVjIGx1b25nIA0KbW9uZywgdGhp ZXUgdHUgZG8ga2hvbmcgY29uIGR1b2MgbmhhYyBkZW4uIE5odW5nIHRodWMgdGUgZ2lhbyB0aG9u ZyB0cmVuIGR1b25nLCB0YWkgDQpjYWMgZ2lhbyBsbyByYXQgbG9uIHhvbiBtYSBraG9uZyB0aGF5 IGJvbmcgZGFuZyBDU0dUIGRhdSwgZHUgcXV5IGRpbmggY3VhIG5nYW5oIGxhIA0KcGhhaSB0dWFu IHRyYSwga2llbSBzb2F0IGdpYW8gdGhvbmcgMjQvMjQuDQoNClRhIHRhIGFuIHNhbmcuLi4NCg0K VGhlbyBjYW4gYm8gbW90IGRvaSBDU0dUIG8gdHJ1bmcgdGFtIHRoYW5oIHBobywgdmllYyBhbiBz YW5nIHRoaSBtb2kgQ1NHVCBwaGFpIHR1IGxvIA0KbGlldSB0cnVvYyBkbywga2hvbmcgZHVvYyBw aGVwIHRyb25nIGx1YyB0aGkgaGFuaCBuaGllbSB2dSBibyBkaSBhbi4uLiBRdXkgZGluaCBsYSB2 YXkgDQpuaHVuZyBjaHVuZyB0b2kgcmF0IG5oaWV1IGxhbiB0aGF5IGNhYyBDU0dUIGJvIGNhIHRy dWMgZGkgYW4gc2FuZy4NCg0KU2FuZyAyNC4xMCwgdHJvbmcgdmFpIHRodWMga2hhY2gsIGNodW5n IHRvaSBkYSBjbyBtYXQgdGFpIHF1YW4gYW4ga2h1YXQgdHJvbmcga2h1b24gdmllbiANCnRydW9u ZyBuZ29haSBuZ3UgSGFpIERhbmcgbyBtYXQgdGllbiBkdW9uZyBEaWVuIEJpZW4gUGh1IChnYW4g Z2lhbyBsbyBEaWVuIEJpZW4gUGh1IC0gDQpMZSBRdXkgRG9uLCBRLjMpLiBLaHVvbiB2aWVuIHF1 YW4ga2hhIHJvbmcsIGR1b2MgYmFvIGJvYyBib2kgNCBidWMgdHVvbmcgY2FvIG5lbiANCmJlbiBu Z29haSBuaGluIHZhbyBjaGFuZyB0aGF5IGdpLiBDbyBsZSBkYXkgbGEgZGlldSBraWVuIGx5IHR1 b25nIGRlIG1vdCBzbyBDU0dUIERvaSANCkJhbiBDbyAibnVwIiB2YW8gYW4gc2FuZywgdHJhbmgg c3UgbmhvbSBuZ28gY3VhIG5ndW9pIGRhbiBjdW5nIG5odSBsdWMgbHVvbmcga2llbSB0cmEgZGll dSBsZW5oLiANCg0KTW9pIGtob2FuZyA3IGdpbyA0MCBwaHV0LCB0cm9uZyBraGkgZ2lhbyB0aG9u ZyBuZ29haSBkdW9uZyBEaWVuIEJpZW4gUGh1IGNvbiBraGEgbG9uIA0KeG9uLCA0IENTR1QgdHJl biAyIGNoaWVjIG1vIHRvIDUxQTEgLSAwMzQ2IHZhIDUxQTEgLSAwNDc5IGNoYXkgYW8gdmFvIHF1 YW4uIER1bmcgDQp4ZSwgNCBDU0dUIHRoYW4gbmhpZW4gdmFvIGJhbiBhbiBnb2kgbW9uLCB0cm9u ZyBsdWMgYW4gY3VvaSBub2kgcmF0IHZ1aSB2ZS4gRGVuIA0KOCBnaW8gY3VuZyBuZ2F5LCAyIENT R1QgZGkgdHJlbiBjaGllYyBtbyB0byA1MUExIC0gMDMyNCBjdW5nIHRybyB0b2ksIHZhbyBuZ29p IGN1bmcgYmFuIHZvaSANCjQgQ1NHVCB0cnVvYyBkby4gQ28gbGUgZG9pIGRvbmcgbmdoaWVwIGFu IHNhbmcgeG9uZyBtb2kgeHVhdCBwaGF0IG5lbiA0IENTR1QgdmFvIA0KdHJ1b2Mga2hvbmcgbWF5 IG5vbmcgdm9pLCB2dWEgdW9uZyBudW9jIHZ1YSAidGFtIi4gSG9uIDMwIHBodXQgc2F1LCBjYSA2 IENTR1QgbW9pIA0KY2hpdSBydXQgZGkgbGFtIG5oaWVtIHZ1LiANCg0KS2hvYW5nIDcgZ2lvIDUw IHNhbmcgMjYuMTAsIGNodW5nIHRvaSBxdWF5IGxhaSBxdWFuIHRyZW4gdmEgcGhhdCBoaWVuIDMg bW8gdG8gQktTIHZhbiANCm5odSBzYW5nIDI0LjEwIGR1bmcgdHJ1b2MgcXVhbiB0dSBraGkgbmFv LiA2IENTR1QgZGEgYW4gc2FuZyB4b25nIG5odW5nIHZhbiBuZ29pIA0KInRhbSIgY2h1eWVuIHJv bSByYSBtYWkgZGVuIDggZ2lvIDMwIHBodXQgbW9pIHRpZXAgdHVjIHJhIGR1b25nLi4uIFR1b25n IHR1LCBnYW4gOCBnaW8gDQpuZ2F5IDI3LjEwLCA2IENTR1QgZGkgdHJlbiAzIG1vIHRvIDUxQTEg LSAwMzQ2LCA1MUExIC0gMDQ3OSwgNTFBMSAtIDA0OTAsIHNhYyBwaHVjIA0KY2hpbmggdGUgbmdv aSBhbiBzYW5nIHhvbmcsIHRhbiBnYXUgZGVuIDggZ2lvIDM1Li4uIA0KDQouLi4uY2EgcGhlIHRy b25nIGdpbyBjYW8gZGllbQ0KDQo2IGdpbyBzYW5nIDMwLjEwLCBjaHVuZyB0b2kgY28gbWF0IHRh aSBEb2kgQ1NHVCBUYW4gU29uIE5oYXQgKG5hbSB0cmVuIGR1b25nIFRyYW4gDQpIdXkgTGlldSwg US5QaHUgTmh1YW4pLiBMdWMgbmF5IHRyb2kgZGFuZyBtdWEgbmhvIG5lbiBkZW4gNiBnaW8gMTUg cGh1dCwgaGFuZyBjaHVjIA0KeGUgbW8gdG8gZGFjIGNodW5nLCBtb2kgeGUgY28gaGFpIENTR1Qg bW9pIHJvIGdhIHBob25nIGRpIGxhbSBuaGllbSB2dS4gQ2h1bmcgdG9pIA0KYmFtIHRoZW8gbW90 IHhlIGNoYXkgZG9jIGR1b25nIE5ndXllbiBWYW4gVHJvaSwgdmFvIGR1b25nIENvbmcgSG9hIHZh IGR1bmcgbGFpIG8gDQpnaWFvIGxvIEhvYW5nIEhvYSBUaGFtIC0gQ29uZyBIb2EgZGUgZGlldSB0 aWV0ICBnaWFvIHRob25nLiBNdWEgY2FuZyBuYW5nIGhhdCBob24gDQpuaHVuZyB0YWkgY2FjIGdp YW8gbG8gdHUgdm9uZyB4b2F5IENvbmcgSG9hIGRlbiBkdW9uZyBUcnVvbmcgQ2hpbmggdGhheSBs dWMgbHVvbmcgDQpDU0dUIHZhbiBkdW5nIGNob3QgbmVuIGdpYW8gdGhvbmcga2hhIHRyYXQgdHUu IENodWEgZGVuIDggZ2lvLCAyIENTR1Qgcm9pIGNob3QgSG9hbmcgDQpIb2EgVGhhbSAtIENvbmcg SG9hIChRLlRhbiBCaW5oKSBjaGF5IHZlIGh1b25nIGR1b25nIFRydW9uZyBDaGluaC4gS2hpIGRl biBnaWFvIA0KbG8gVGFuICBLeS1UYW4gUXV5IC0gVHJ1b25nIENoaW5oLCBjaGllYyBtbyB0byBk b3QgbmdvdCBvbSBjdWEsIGRpIHZhbyBtb3QgY29uIGhlbSANCnNhdSB0cmVuIGR1b25nIFRhbiBL eS1UYW4gUXV5IChRLlRhbiBCaW5oKSwgcm9pIGNodWkgdG90IHZhbyBxdWFuIGNhIHBoZSBDYXkg WG9haSwgYm8gDQptYWMgZ2lhbyB0aG9uZyBuZ29haSBkdW9uZyBiYXQgZGF1IGxvbiB4b24gdmkg a2hvbmcgY28gQ1NHVC4NCg0KKEFuaDogQ1NHVCBjdWEgRG9pIEJhbiBDbyBkYW5nIG5nb2kgZGll bSB0YW0pIA0KDQpLaGkgMiBDU0dUIG5heSB0b2ksIHRyb25nIHF1YW4gZGEgY28gNCBtbyB0byBk YWMgY2h1bmcgY3VhIENTR1QgZGF1IHR1IGJhbyBnaW8uIA0KS2hvYW5nIDYtNyBDU0dUIGRhbmcg bmdvaSBhbiBzYW5nLCB1b25nIG51b2MsIG5vaSBjaHV5ZW4gdnVpIHZlLiBMYXQgc2F1LCAyIHRy b25nIHNvIA0KQ1NHVCBkZW4gdHJ1b2MgZHVuZyBkYXkgbGVuIHhlIHZvdCBkaS4gTmhvbSBDU0dU IGNvbiBsYWkgdGllcCB0dWMgbmdvaSBub2kgY2h1eWVuIA0Kcm9tIHJhLCBjaG8gYmFuIGRlbiBz YXUgYW4gc2FuZywgdW9uZyBjYSBwaGUgeG9uZyBtb2kgbHVjIHR1YyByb2kga2hvaSBxdWFuIGNo YXkgcmEgDQpkdW9uZyBUcnVvbmcgQ2hpbmggdmEgQ29uZyBIb2EgdHVhbiB0cmEga2llbSBzb2F0 Li4uICJTYW5nIG5hbyBtYXkgb25nIENTR1QgZGkgeGUgDQptbyB0byBjaGF5IGFtIGFtIHZhbyBx dWFuIiwgbW90IG5ndW9pIGRhbiBvIGRheSBub2kuDQoNCkRpIHVvbmcgbnVvYyByb2kuLi4gdmUh DQoNCihBbmg6IENTR1QgY3VhIERvaSBUYW4gU29uIE5oYXQgdmFvIHF1YW4gY2EgcGhlIENheSBY b2FpKSANCg0KS2hvYW5nIDEwIGdpbyBuZ2F5IDMwLjEwLCBjaHVuZyB0b2kgZGEgY28gbWF0IHRh aSBxdWFuIGNhIHBoZSAiY29jIiB0cnVvYyBjb25nIGN1YSBEb2kgDQpDU0dUIEhhbmcgWGFuaCwg bmFtIGR1b2kgY2hhbiBjYXUgQmluaCBUcmlldSBJIChQLkhpZXAgQmluaCBDaGFuaCwgUS5UaHUg RHVjKSwgDQpjaG8gdGhlbyBjaGFuIENTR1QgZGkgY2EgMiB0cm9uZyBuZ2F5LiBUcm9pIG11YSBs YW0gcmFtLCA0IENTR1QgbWFjIHNhYyBwaHVjLCANCmtob2FjIGFvIG11YSBiZW4gbmdvYWkgZGkg MiB4ZSBtbyB0byBkYWMgY2h1bmcgNTFBMSAtIDAzNTQsIDUxQTEgLSAwMzE1IGNoYXkgdm9pIHRv YyANCmRvIDIwIC0gMzAga20vZ2lvIG5lbiBjaHVuZyB0b2kgZGUgZGFuZyAiZGVvIGJhbSIuIEhh aSBtbyB0byBkaSBkZW4gZ2lhbyBsbyBOZ3V5ZW4gWGkgDQotIFhvIFZpZXQgTmdoZSBUaW5oLCB0 aGkgbW90IHRyb25nIDIgYmFtIGNvaSBuaHUgdmUgcmEgaGlldSBnaSBkbyBjaG8gMiBkb25nIG5n aGllcCANCmRhbmcgZGlldSB0aWV0IHRhaSBkYXkuIEN1IG5naGkgNCBDU0dUIHNlIGNoYXkgcmEg ZHVvbmcgTmd1eWVuIEh1dSBDYW5oIHR1YW4gdHJhIA0Ka2llbSBzb2F0LCBuaHVuZyBiYXQgbmdv IGNhIDIgbW8gdG8gcXVlbyB0cmFpIGNoYXkgdmUgaHVvbmcgVGhhbmggRGEgdm9pIHRvYyBkbyAi c2FuIA0KYmF0IGN1b3AiLiBDaHVuZyB0b2kgY28gYmFtIHRoZW8gdmEgIm5nYSBuZ3VhIiBraGkg dGhheSBjYSAyIG1vIHRvIHRoYW4gbmhpZW4gY2hheSB2YW8gDQpxdWFuIGNhIHBoZSBUaSBHb24g KGxvIDMsIGN1IHhhIFRoYW5oIERhKS4gSG8gdmFvIHF1YW4gZ29pIHRodWMgYW4sIHRodWMgdW9u ZyByYSBuZ29pIA0KdnVhIGFuIHZ1YSBub2kgY3VvaSB0aG9haSBtYWkuIA0KDQooQW5oOiBYZSBt byB0byB2YW8gcXVhbiBjYSBwaGUgVGkgR29uIC0gYW5oOiBEYW0gSHV5IC0gSG9haSAgTmFtKSAN Cg0KS2hvYW5nIDMwIHBodXQgc2F1LCAyIENTR1QgZHVuZyBjaG90IHRhaSBnaWFvIGxvIE5ndXll biBYaSAtIFhvIFZpZXQgTmdoZSBUaW5oIGhvaSANCm5heSBkaSB4ZSBtbyB0byA1MUExIC0gMDcw NyBhbyB2YW8gcXVhbiwgbWFjIGtlIGNobyB0aW5oIGhpbmggZ2lhbyB0aG9uZyBkYW5nIHJvaSBy YW0gDQpuZ29haSBraWEuLi4gTHVjIG5heSwgY2h1bmcgdG9pIG1vaSBoaWV1IDQgQ0dTVCBraGkg ZGkgcXVhIGNob3QgYmFtIGNvaSBndWkgdGhvbmcgZGllcCANCiJjYSBwaGUiIGNobyAyIENTR1Qu IA0KDQpLaGkgZGEgdHUgZHUgImFuaCBoYW8iLCA2IENTR1QgbmdvaSB1b25nIGNhIHBoZSwgInRh bSIgZGVuIGdhbiAxMiBnaW8gdGhpIDIgYW5oIG1vaSANCmNoaXUgbGVuIHhlIHJhIGtob2kgcXVh biBjaGF5IHRoYW5nIHZlIERvaSBDU0dUIEhhbmcgWGFuaC4gTHVjIGRvIGRvbmcgaG8gY3VhIGNo dW5nIA0KdG9pIGRpZW0gMTIgZ2lvIGR1bmcuICJEdWEiIDIgQ1NHVCBuYXkgdmUgZGVuIERvaSBD U0dUIEhhbmggWGFuaCwgY2h1bmcgdG9pIHRpZXAgDQp0dWMgZGkgdGltIDIgeGUgbW8gdG8gY29u IGxhaSB0aGkgY2hpIHRoYXkgMiBDU0dUIGRpIG1vIHRvIDUxQTEgLSAwNzA3IHF1YXkgdmUgbGFp IGdpYW8gDQpsbyBjdSB0aWVwIHR1YyBkaWV1IHRpZXQgZ2lhbyB0aG9uZw0KDQpUaGVvIG1vdCBj YW4gYm8gUEM2NywgdGhvbmcgdGh1b25nIGNhYyBkb2kgQ1NHVCBtb2kgbmdheSBjaGlhIHF1YW4g cmEgbGFtIDYgY2EgZGkgDQp0dWFuIHRyYSBraWVtIHNvYXQ6IHR1IDYgLSAxMCBnaW8sIHR1IDEw IC0gMTQgZ2lvLCB0dSAxNCAtIDE4IGdpbywgdHUgMTggLSAyMiBnaW8sIHR1IDIyIC0gMiBnaW8g DQpzYW5nIGhvbSBzYXUsIHR1IDIgLSA2IGdpby4uLiBNb3QgQ1NHVCBwaGFpIHRoYW0gZ2lhIDIg Y2EvbmdheS4gDQoNCkdpbyBjYW8gZGllbSB0aHVvbmcgZHVvYyB0aW5oIHR1IDYgLSA4IGdpbyB2 YSB0dSAxNiAtIDE4IGdpbyAodHUgMTAgLSAxMiBnaW8gY3VuZyBkdW9jIA0KeGVtIG5hIG5hIG5o dSBnaW8gY2FvIGRpZW0gYm9pIHZpIGRheSBsYSBsdWMgaG9jIHNpbmggdGFuIHRydW9uZywgbmd1 b2kgZGFuIGRpIGxhbSB2ZSANCm5oYSBuZ2hpIHRydWEsIHhlIHRhaSBkdW9jIHBoZXAgdmFvIHRy dW5nIHRhbSB0aGFuaCBwaG8pLCBiYXQgYnVvYyBDU0dUIHBoYWkgZHVuZyBjaG90IA0KKGdpYW8g bG8gY28gbHV1IGx1b25nIHBodW9uZyB0aWVuIGRvbmcsIHRodW9uZyBoYXkgeGF5IHJhIHVuIHRh YyBnaWFvIHRob25nKSBkaWV1IHRpZXQgDQpnaWFvIHRob25nLiBTYXUgZ2lvIGNhbyBkaWVtLCBu ZXUgZ2lhbyBsbyB0aG9uZyB0aG9hbmcgQ1NHVCBtb2kgZHVvYyBwaGVwIGRpIHR1YW4gdHJhIA0K a2llbSBzb2F0IHh1IGx5IHhlIHZpIHBoYW0uLi4gIk5vaSB0b20gbGFpIGxhIENTR1QgcGhhaSBj byBtYXQgMjQvMjQgZGUgZGlldSB0aWV0LCB0dWFuIA0KdHJhLCBraWVtIHNvYXQgZ2lhbyB0aG9u ZyB2YSBraG9uZyBseSBkbyBnaSB0dSB5IHJvaSBkaWEgYmFuIHRyb25nIGNhIHRydWMiLCB2aSBj YW4gYm8gbmF5IG5vaS4gDQoNCmh0dHA6Ly90aW50dWMudGltbmhhbmguY29tL3BoYXAtbHVhdC8y MDEwMDMwNC8zNUFBMEVFMi9CYXQtY2h1LWtoby1oYW5nLXF1YW4tdHJhbmctcXVhbi1kdW5nLXF1 aS1tby1sb24uaHRtIDA0LzAzLzIwMTAgMDk6MTE6MDANCg0KQ29uZyBhbjogUXVhbiB0cmFuZywg cXVhbiBkdW5nIGxvdCByYSB0aGkgdHJ1b25nIHF1aSBtbyBsb24gDQoNCk5nYXkgMy0zLCBUcnVu ZyB0YSBOZ3V5ZW4gSG9hbmcgVHVhbiwgVHJ1b25nIENvbmcgYW4gcXVhbiBUYW4gUGh1IJYgVFBI Q00sIGNobyANCmJpZXQsIGNvIHF1YW4gQ1NEVCBDb25nIGFuIHF1YW4gbmF5IGRhIGtob2kgdG8g dnUgYW4sIGtob2kgdG8gYmkgY2FuIHZhIGJhdCB0YW0gZ2lhbSA0IA0KdGhhbmcgZGUgZGlldSB0 cmEgZG9pIHZvaSBUbyBUdWFuIEFuaCwgbmd1IDQ4LzIvNyBMZSBWYW4gUGhhbiAoUC4gUGh1IFRo byBIb2EsIFEuVGFuIA0KUGh1KSwgdmkgZGEgY28gaGFuaCB2aSAiQnVvbiBiYW4gaGFuZyBjYW0i Lg0KDQooTXUga2VwaSBjdWEgc2kgcXVhbiBxdWFuIGRvaSB2YSBub24gY3VhIENTIDExMywgQ1NH VCB0aHUgdGFpIGNvbmcgdHkgZG8gb25nICBUbyBUdWFuIEFuaChhbmggbmhvKSBsYW0gY2h1KSAN Cg0KU2F1IGtoaSBiYXQgZ2l1IGRvaSB0dW9uZywgbHVjIGx1b25nIGNvbmcgYW4gdGllbiBoYW5o IGtoYW0geGV0IG5oYSB2YSBjb25nIHR5IGRvIFRvIA0KVHVhbiBBbmggbGFtIGNodSwgcGhhdCBo aWVuIHZhIHRodSBnaXUgaG9uIDMwIGNodW5nIGxvYWkgaGFuZyBjYW0sIG5odTogY29uZywgcm9p IGRpZW4sIA0KZHVpIGN1aSwgcGh1IGhpZXUsIHF1YW4gYW8gY3VhIGx1YyBsdW9uZyBjb25nIGFu IHhhLi4uIA0KDQpUcnVvYyBkbywgYmFvIE5ndW9pIExhbyBEb25nIG5nYXkgMjUtNi0yMDA5IHZh IDI2LTYtMjAwOSBkYSB0aG9uZyB0aW4sIHZhbyBuZ2F5IDI0LQ0KNi0yMDA5LCBEb2kgUXVhbiBs eSB0aGkgdHJ1b25nIHBob2kgaG9wIHZvaSBEb2kgQ2FuaCBzYXQgZGlldSB0cmEgVG9pIHBoYW0g dmUgdHJhdCB0dSANCnF1YW4gbHkga2luaCB0ZSB2YSBjaHVjIHZ1ICh0YW0gdmlldCB0YXQgbGEg Q1NEVCBRTEtULUNWKSBDb25nIGFuIHF1YW4gVGFuIFBodSANCmtpZW0gdHJhIENvbmcgdHkgVE5I SCBTWC1YTksgVGFpIExhbiBBbmgsIG8gc28gNDgvMi83IExlIFZhbiBQaGFuIHZhIENvbmcgdHkg Q28gDQpwaGFuIFNYLVRNLVhOSyBQaHVjIFRobyBvIHNvIDAwNyBjaHVuZyBjdSBWdW9uIExhaSAo ZG9pIGRpZW4gQ29uZyB0eSBUYWkgTGFuIEFuaCkuIA0KDQpUYWkgMiBjb25nIHR5IG5heSwgbHVj IGx1b25nIGNodWMgbmFuZyBwaGF0IGhpZW4gaGFuZyBjaHVjIGNodW5nIGxvYWkgY2FjIG1hdCBo YW5nIA0KcXVhbiB0cmFuZyBxdWFuIGR1bmcsIGxhIG5odW5nIG1hdCBoYW5nIGNhbSBraW5oIGRv YW5oLCBuaHU6IG5vbiBjb2ksIG5vbiBrZXBwaSwgYmlhIA0KdGFwIGJhbiwgbGV1IHRydW5nIGRv aSwgYW8gZ2lhcCBjaG9uZyBkYW4sIGdpYXkgY2FwIHR1b25nLCBkYW8gZ2FtIGNhbyBzdSwgYmF0 IGR1LCBxdWFuIA0KYW8gcmFuIHJpLi4uIGN1YSBxdWFuIGRvaTsgS2hpZW4gbmh1YSBjbyBjaHUg UG9saWNlIGR1bmcgY2hvIGNhbmggc2F0IGNob25nIGJhbyBkb25nLCANCmR1aSBjdWksIG5vbiBj byBsdW9pIHNhdCBjdWEgY2FuaCBzYXQgY28gZG9uZywgbm9uIG5odWEgY3VhIENhbmggc2F0IDEx MywgZ2F5IHRpbiBoaWV1IA0KZ2lhbyB0aG9uZywgbm9uIGJhbyBoaWVtIG1hdSB2YW5nIGN1YSBj YW5oIHNhdCBnaWFvIHRob25nLCBhbyBnaWFwIGNob25nIGRhbiwgbWF5IHBoYSANCnNvbmcgZGll biB0aG9haSBkaSBkb25nLi4uIA0KDQooQW5oOiBOb24gMTEzIGN1YSBUdWFuIEFuaCBiaSB0aHUg Z2l1KSANCg0KTmdvYWkgcmEsIGx1YyBsdW9uZyBjaHVjIG5hbmcgY29uIHBoYXQgaGllbiBDb25n IHR5IFRhaSBMYW4gQW5oIGtpbmggZG9hbmggY2FjIG1hdCANCmhhbmcgY2hpIGRhbmggY2hvIGNh YyBob2F0IGRvbmcgcXVhbiBzdSwgbmh1OiBtYXkgYmFuIHRhcCBNQlQgMDMgKDIwMDYpIGNvIGJv IHRoaWV0IA0KYmkgdGFvIHRpZW5nIG5vLCBtbyBoaW5oIGRvbmcgZHVuZyBkZSBodWFuIGx1eWVu IGNhdSB0YW8gaG9hdCBkb25nIGN1YSBzdW5nIEFLLCBzdW5nIA0KQUsgYmFuIGtpZW0gdHJhIGJh bmcgbGF6ZSwgZGFuIEs1NiAoZHVuZyBjaG8gc3VuZyBBSyB2YSBzdW5nIENLQyksIGx1dSBkYW4g dGFwIGJhbmcgDQpraW0gbG9haSAoZGFuZyBxdWEgbmEsIHF1YSB0cnVuZyksIGhvcCBkYW4gc3Vu ZyBibyBiaW5oIGhlIEkgdmEgaGUgSUkuLi4gDQoNCkRhbmcgY2h1IHksIHRyb25nIHRhcCBiYW8g Z2lhIGRhaSBoYW5nIGNodWMgdHJhbmcgY3VhIENvbmcgdHkgVGFpIExhbiBBbmggY28gZGVuIDI5 OCANCmNodW5nIGxvYWkgaGFuZyAiZG9jIiwgbmh1OiBvbmcgbmhvbSBiYW4gZGVtIChsb2FpIDEg bWF0KSwgZ2lhIDEzLTE1IHRyaWV1IGRvbmcvY2FpOyANCm9uZyBuaG9tIGJhbiBkZW0gKGxvYWkg MiBtYXQpLCBnaWEgMjItMjUgdHJpZXUgZG9uZy9jYWkgKHh1YXQgeHUgdHUgTXkpOyBtYXkgcGhh IHNvbmcgDQooYmFuIGtpbmggMTUgbSCWIDI1IG0sIGdpYSAzOC01OCB0cmlldSBkb25nL2NhaSks IHRoYW0gY2hpIGNvIGNhLi4uIGJvYyBwaGEgbG9haSBraG9pIHZhIA0Kb25nIChkdW5nIGRlIGh1 YW4gbHV5ZW4gdHJvbmcgcXVhbiBzdSkgdmEgc3VuZyBCNDAgdmEgQjQxIChjbyBrZW0gdGhlbyBk YW4gdGFwKSB2b2kgDQpnaWEgYmFuIDMsNSAtIDMsNyB0cmlldSBkb25nL2toYXUuDQoNCihBbmg6 IEtpZW0ga2UgaGFuZyBjdWEgVG8gVHVhbiBBbmgpIA0KDQpUaGlldSB0YSBIbyBWaWV0IFR1YW4s IFBobyB0cnVvbmcgRG9pIENTRFQgUUxLVC1DViBDb25nIGFuIHF1YW4gVGFuIFBodSwgY2hvIA0K YmlldCBzYXUga2hpIGNvIGtldCBxdWEgZ2lhbSBkaW5oIHR1IGNvIHF1YW4gaGF1IGNhbiBjdWEg cXVhbiBkb2kgdmEgY29uZyBhbiB2ZSBjYWMgbWF0IA0KaGFuZyB0cmVuIGxhIGhhbmcgY2FtLCBj byBxdWFuIENTRFQgZGEgYmF0IGtoYW4gY2FwIFRvIFR1YW4gQW5oIGtoaSBkb2kgdHVvbmcgbmF5 IA0KZGFuZyBkaSB0cmVuIGR1b25nLiBMdWMgYmF0IGRvaSB0dW9uZywgY29uZyBhbiBjb24gdGh1 IGdpdSBkdW9jIG1vdCBzbyBoYW5nIGNhbSBuaHUgDQpyb2kgZGllbiwgZHVpIGN1aSwgY29uZy4u LiB0cmVuIG90byBtYSBUdWFuIEFuaCBkYW5nIGx1dSB0aG9uZyIuIA0KDQpUaGVvIHRydW5nIHRh IE5ndXllbiBIb2FuZyBUdWFuLCBUcnVvbmcgQ29uZyBhbiBxdWFuIFRhbiBQaHUsIGRheSBsYSBs b2FpIGFuIGRhdSANCnRpZW4gdHJlbiBkaWEgYmFuIFRQSENNIGRvIGNvIHF1YW4gQ1NEVCBDb25n IGFuIHF1YW4gVGFuIFBodSBkaWV1IHRyYSB2YSBraG9pIHRvLiANCkRlIHF1YSBtYXQgY28gcXVh biBwaGFwIGx1YXQsIGJpIGNhbiBUbyBUdWFuIEFuaCBkdW5nIHRodSBkb2FuIGxhcCByYSBtb3Qg c28gY29uZyB0eSANCnJvaSBkZSBuZ3VvaSBraGFjIGR1bmcgdGVuLCBjb24gbWluaCB0aGkgZHVu ZyByYSBkaWV1IGtoaWVuLiBUdXkgbmhpZW4gcXVhIGRpZXUgdHJhLCBkb2kgDQp0dW9uZyBuYXkg ZGEgdGh1YSBuaGFuIGhhbmggdmkgdmkgcGhhbSBwaGFwIGx1YXQuIEhpZW4gdnUgYW4gdmFuIGRh bmcgbW8gcm9uZyBkaWV1IHRyYSIuIA0KDQpodHRwOi8vbmV3cy5zb2NiYXkuY29tL2RpZW5fYmll bl9tb2lfbmhhdF92ZV92dV9waGF0X2hpZW5fa2hvX2hhbmdfcXVhbl90cmFuZ19xdWFuX2R1bmdf dGFpX3RwaGNtX3RydXlfY3V1X3RyYWNoX25oaWVtX2hpbmhfc3VfLTYxMjA0NTkzNy0yNTE2NTgy NDAgbmxkLmNvbS52biAtIDAzOjA4IDE1LTA3LTIwMDkgDQoNCkRpZW4gYmllbiBtb2kgbmhhdCB2 ZSB2dSBwaGF0IGhpZW4ga2hvIGhhbmcgcXVhbiB0cmFuZyBxdWFuIGR1bmcgdGFpIFRQIEhDTSAN Cg0KVHJ1eSBjdXUgdHJhY2ggbmhpZW0gaGluaCBzdSANCg0KRG8gbGEgY2hpIGRhbyBjdWEgVUJO RCBUUEhDTSB2ZSB2dSB2aWVjIHRyZW4uIChWaWVjImJhbiJ0cmUgbW8gY29pIG8gVHJ1b25nIFRp YSANClNhbmcsIENvbmcgYW4gdGhpIHhhIEJhbyBMb2MgZGFuZyBkaWV1IHRyYSBsYW0gcm8sIHR1 YW4gc2F1IHNlIGNvIGtldCBxdWEpICANCg0KVmFuIHBob25nIFVCTkQgVFBIQ00gdnVhIGNvIHZh biBiYW4gdHJ1eWVuIGRhdCB5IGtpZW4gY3VhIFBobyBDaHUgdGljaCBVQk5EIA0KVFAgTmd1eWVu IFRoaSBIb25nLCB0aG9uZyBuaGF0IGRlIG5naGkgY3VhIENoaSBjdWMgUUxUVCBUUEhDTSB2ZSB2 aWVjIGNodXllbiANCmdpYW8gaG8gc28gdnUgdmkgcGhhbSBjdWEgQ29uZyB0eSBUTkhIIFNYLVhO SyBUYWkgTGFuIEFuaCAoQ29uZyB0eSBUYWkgTGFuIEFuaCkgDQp2YSBDb25nIHR5IENvIHBoYW4g U2FuIHh1YXQgVGh1b25nIG1haSBYTksgUGh1YyBUaG8gKENvbmcgdHkgUGh1YyBUaG8pIGNobyBD b25nIA0KYW4gVFAgZGUgdHJ1eSBjdXUgdHJhY2ggbmhpZW0gaGluaCBzdS4gDQoNCihBbmg6IEhh bmcgcXVhbiB0cmFuZyBxdWFuIGR1bmcgZHVvYyBwaGF0IGhpZW4gdGFpIGtobyBjdWEgQ29uZyB0 eSBUTkhIIFNYLVhOSyBUYWkgTGFuIEFuaC4gQW5oOiBULlRJRU4pIA0KDQpEYXUgaGlldSB0b2kg cGhhbSANCg0KVGhlbyBVQk5EIFRQLCBDb25nIHR5IFRhaSBMYW4gQW5oIHZhIENvbmcgdHkgUGh1 YyBUaG8sIGRvIG9uZyBUbyBUdWFuIEFuaCBsYW0gDQpkYWkgZGllbiBjbyBkYXUgaGlldSB0b2kg cGhhbTogS2luaCBkb2FuaCBxdWFuIHRyYW5nLCBjb25nIGN1IGhvIHRybyBkdW9jIHN1IGR1bmcg dHJvbmcgDQpsdWMgbHVvbmcgdnUgdHJhbmcgdm9pIHNvIGx1b25nIGxvbiwgdHJpIGdpYSBoYW5n IGhvYSB0cmVuIDYwMCB0cmlldSBkb25nLCB2aSBwaGFtIHF1eSANCmRpbmggY3VhIE5naGkgZGlu aCA1OS8yMDA2L05ELUNQIG5nYXkgMTItNi0yMDA2IGN1YSBDaGluaCBwaHUgcXV5IGRpbmggY2hp IHRpZXQgDQpMdWF0IFRodW9uZyBtYWkgdmUgaGFuZyBob2EsIGRpY2ggdnUgY2FtIGtpbmggZG9h bmgsIGhhbiBjaGUga2luaCBkb2FuaCB2YSBraW5oIA0KZG9hbmggY28gZGlldSBraWVuLiANCg0K VUJORCBUUCBnaWFvIENvbmcgYW4gVFAgY28gdHJhY2ggbmhpZW0gdGllcCBuaGFuIGhvIHNvIHZp IHBoYW0gY3VhIENvbmcgdHkgVGFpIExhbiANCkFuaCB2YSBDb25nIHR5IFBodWMgVGhvLCBraWVt IHRyYSwgeGFjIG1pbmgsIHh1IGx5IHRoZW8gcXV5IGRpbmggY3VhIHBoYXAgbHVhdCwgYmFvIGNh byANCmtldCBxdWEgY2hvIFVCTkQgVFAuIFVCTkQgVFAgY3VuZyB5ZXUgY2F1IENvbmcgYW4gVFAg Y2hpIGRhbyBDb25nIGFuIHF1YW4gVGFuIA0KUGh1IGNvIGJpZW4gcGhhcCBiYW8gdmUgZGFuaCBk dSwgdGluaCBtYW5nIGN1YSBjYW4gYm8gbGFuaCBkYW8gRG9pIFF1YW4gbHkgVGhpIHRydW9uZyAN CihRTFRUKSBUYW4gUGh1IHZhIHh1IGx5IG5naGllbSBjYWMgaGFuaCB2aSBkZSBkb2EgY3VhIG9u ZyBUbyBUdWFuIEFuaC4gICANCg0KQ2hpZXUgMTQtIDcsIG9uZyBQaGFtIFRoYW5oIEJpbmgsIERv aSB0cnVvbmcgRG9pIFFMVFQgcXVhbiBUYW4gUGh1LCBjaG8gYmlldCBtb2kgDQp0aHUgZGEgZHVv YyBjaHVhbiBiaSB4b25nIG5odSBiaWVuIGJhbiBiYW4gZ2lhbywgaG8gc28sIGNodW5nIHR1IGxp ZW4gcXVhbiBkZW4gaG9hdCANCmRvbmcga2luaCBkb2FuaCBjdWEgaGFpIGNvbmcgdHkgdHJlbi4g VHJvbmcgZG8gY28gbmh1bmcgc28gc2FjaCwgY2h1bmcgdHUgY2h1bmcgbWluaCANCm9uZyBUbyBU dWFuIEFuaCBsYSBjaHUgY3VhIGhhaSBjb25nIHR5IG5heS4gVGFuZyB2YXQgaGFuZyBxdWFuIHRy YW5nLCBxdWFuIGR1bmcgdm9pIA0KMzggbWF0IGhhbmcgZGFuZyBkdW9jIG5pZW0gcGhvbmcgdGFt IGdpdSB0YWkga2hvIGNvbmcgc2FuIGN1YSBQaG9uZyBUYWkgY2hpbmggS2UgDQpob2FjaCBxdWFu IFRhbiBQaHUuIEN1bmcgdGhlbyBvbmcgQmluaCwgY2hvIGRlbiBjdW9pIGdpbyBjaGlldSBjdW5n IG5nYXkgcGhpYSBjb25nIA0KYW4gdmFuIGNodWEgbGllbiBoZSB2b2kgZG9pIGRlIHRpZXAgbmhh biBiYW4gZ2lhby4gDQoNClRhdSB0YW4gaGFuZyBob2EgDQoNClF1YSBwaGFuIGFuaCBjdWEgbmd1 b2kgZGFuIHhhIERhaSBMYW8sIHRoaSB4YSBCYW8gTG9jLCBMYW0gRG9uZywgdHJvbmcgY2FjIG5n YXkgdHUgDQoxMSBkZW4gMTQtNywgcXVhbiBseSBDb25nIHR5IFROSEggU2FuIHh1YXQgVGh1b25n IG1haSBUaGFuaCBOZ2EgKGhheSBjb24gZ29pIGxhIA0KQ29uZyB0eSBBbmggTmdhLCBkbyBvbmcg VG8gVHVhbiBBbmggbGFwIG5lbiksIGRhIGNobyBuaGFuIHZpZW4gZGVuIGRvbiB0b2FuIGJvIHNv IA0KaGFuZyBob2EgZ29tIHF1YW4gYW8sIGdpYXkgZGVwLCBtdSBiYW8gaG8gY29uZyBhbiwgYW8g Y2hvbmcgZGFuLCBwaGFvIGJvaS4uLiByYSBraG9pIA0Ka2hvIGhhbmcgY3VhIGNvbmcgdHkgdGFp IHNvIDY2N0IgUXVvYyBsbyAyMCwgeGEgRGFpIExhby4gSGllbiB0YWksIGNvbmcgdHkgbmF5IGNo aSBjb24gDQp2YWkgbmhhbiB2aWVuIHZhIHZhaSBibyBiYW4gZ2hlLiANCg0KW0xpZW4gcXVhbiBk ZW4gdmllYyBjbyBoYXkga2hvbmcgdmllYyAiYmFuIiB0cmUgbW8gY29pIG8gVHJ1b25nIFRpYSBT YW5nIChkbyBvbmcgVG8gDQpUdWFuIEFuaCBsYW0gY2h1KSB2b2kgZ2lhIDIwIHRyaWV1IJYgMjUg dHJpZXUgZG9uZy9lbSBuaHUgQmFvIE5MRCBkYSB0aG9uZyB0aW4sIG1vdCANCmNhbiBibyBjbyBx dWFuIGRpZXUgdHJhIENvbmcgYW4gdGhpIHhhIEJhbyBMb2MgY2hvIGJpZXQgdnUgdmllYyBkYW5n IGR1b2MgZGlldSB0cmEgbGFtIA0Kcm8uIFR1eSBjaHVhIGNvIGtldCBsdWFuIGNoaW5oIHRodWMg bmh1bmcgcXVhIHRpbSBoaWV1IGR1bmcgbGEgY28gaGllbiB0dW9uZyBjYW4gYm8gDQpUcnVvbmcg VGlhIFNhbmcgImJhbiIgdHJlIHJhIGNvbmcgZG9uZyB2b2kgZ2lhIGNhby4gQ29uIHRodW9uZyB0 YSBOZ3V5ZW4gVmFuIFRoaWV0LCANClRydW9uZyBDb25nIGFuIHRoaSB4YSBCYW8gTG9jLCBjaG8g YmlldCB0cm9uZyB0dWFuIHNhdSBzZSBjbyBrZXQgcXVhIGRpZXUgdHJhIHZ1IHZpZWMuXSANCg0K Q28gdGhlIGJpIHBoYXQgdHUgdG9pIDUgbmFtIA0KDQpCYXQga3kgbmd1b2kgbmFvIGNvIG5hbmcg bHVjIHRyYWNoIG5oaWVtIGhpbmggc3UgdmEgZGF0IGRvIHR1b2kgdGhlbyBsdWF0IGRpbmggbWEg Y28gDQpoYW5oIHZpIHBoYW0gdG9pIHhhbSBwaGFtIGRlbiBjaGUgZG8gcXVhbiBseSB2dSBraGkg dGhvIHNvLCBjb25nIGN1IGhvIHRybyBjdWEgTmhhIA0KbnVvYyB2b2kgbG9pIGNvIHksIGN1IHRo ZSBsYSB0aHVjIGhpZW4gbW90IHRyb25nIG5odW5nIGhhbmggdmk6IGNoZSB0YW8gLSB0YW5nIHRy dSAtIHZhbiANCmNodXllbiAtIHN1IGR1bmcgLSBtdWEgYmFuIHRyYWkgcGhlcCBoYXkgY2hpZW0g ZG9hdCB2dSBraGkgdGhvIHNvIChzdW5nIGhvaSwgY3VuZyBubywgDQpkYW8gZ2FtLCBsdW9pIGxl LCBnaWFvLCBtYWMsIGRpbmggYmEsIG1hIHRhdSwgcXVhIGRhbSBiYW5nIGtpbSBsb2FpIGhvYWMg dmF0IHJhbiwgY2FjIGxvYWkgDQpjb24pIGhvYWMgY29uZyBjdSBobyB0cm8gKGNhYyBsb2FpIHJv aSBjYW8gc3UsIHJvaSBkaWVuLCBkYXkgZGllbiwgZ2FuZyB0YXkgZGllbjsgY2FjIGxvYWkgDQps dXUgZGFuIGNheSwgc3VuZyBob2FjIGJpbmggeGl0IGhvaSBjYXksIG5nYXQsIGRvYywgZ2F5IG1l LCBzdW5nIGJhbiBkYW4gbmh1YSwgY2FvIHN1OyANCnN1bmcgdmEgZGFuIGJhbiBkaW5oLCBzdW5n IGJhbiBsYXNlciwgc3VuZyBiYW4gdHUgdHJ1b25nLi4uKSBzZSBiaSB0cnV5IGN1dSB0cmFjaCBu aGllbSANCmhpbmggc3UgbmV1IGRhIGJpIHh1IHBoYXQgdmkgcGhhbSBoYW5oIGNoaW5oIHZlIGhh bmggdmkgbmF5IGhvYWMgZGEgYmkga2V0IGFuIHZlIHRvaSBuYXksIA0KY2h1YSBkdW9jIHhvYSBh biB0aWNoIG1hIGNvbiB2aSBwaGFtIChkaWV1IDIzMyCWIEJvIEx1YXQgSGluaCBzdSAxOTk5KS4g DQoNCk11YyBoaW5oIHBoYXQgY3VhIHRvaSBwaGFtIG5heSBkdW9jIGNoaWEgdGhhbmggaGFpIGto dW5nIHZhIGhpbmggcGhhdCBibyBzdW5nOiBQaGF0IHR1IA0KdHUgMyB0aGFuZyBkZW4gMiBuYW0g KGFwIGR1bmcgdm9pIHRydW9uZyBob3AgcGhhbSB0b2kgY28gZHUgZGF1IGhpZXUgY2F1IHRoYW5o IGNvIGJhbikgDQpob2FjIHBoYXQgdHUgdHUgMSBuYW0gZGVuIDUgbmFtIChhcCBkdW5nIGRvaSB2 b2kgY2FjIHRydW9uZyBob3AgcGhhbSB0b2kgY28gdG8gY2h1YzsgDQp2YXQgcGhhbSBwaGFwIGNv IHNvIGx1b25nIGxvbjsgdmFuIGNodXllbiBtdWEgYmFuIHF1YSBiaWVuIGdpb2k7IGdheSBoYXUg cXVhIG5naGllbSANCnRyb25nOyB0YWkgcGhhbSBuZ3V5IGhpZW0pLiBOZ29haSBoaW5oIHBoYXQg Y2hpbmgsIG5ndW9pIHBoYW0gdG9pIGNvbiBjbyB0aGUgYmkgcGhhdCANCnRpZW4gdHUgNSB0cmll dSBkb25nIGRlbiA1MCB0cmlldSBkb25nOyBwaGF0IHF1YW4gY2hlIGhvYWMgY2FtIGN1IHRydSB0 dSAxIG5hbSBkZW4gNSANCm5hbS4gIChMdWF0IHN1IExlIE5ndXllbiBRdXluaCBUaGkpIA0KDQpU b20gdGF0IHZ1IHZpZWMgDQoNCk5nYXkgMjQtNiwgbHVjIGx1b25nIFFMVFQgICBxdWFuIFRhbiBQ aHUgLSBUUEhDTSBwaG9pIGhvcCB2b2kgRG9pIENTRFQgdG9pIHBoYW0gDQp2ZSB0cmF0IHR1IHF1 YW4gbHkga2luaCB0ZSB2YSBjaHVjIHZ1IENvbmcgYW4gcXVhbiBUYW4gUGh1LCBraWVtIHRyYSB2 YSBwaGF0IGhpZW4gdGFpIA0KQ29uZyB0eSBUTkhIIFNYLVhOSyBUYWkgTGFuIEFuaCAoc28gNDgv Mi83IExlIFZhbiBQaGFuLCBwaHVvbmcgUGh1IFRobyBIb2EsIA0KcXVhbiBUYW4gUGh1KSBsbyBo YW5nIHF1YW4gdHJhbmcsIHF1YW4gZHVuZyBjbyBxdXkgbW8gbG9uLiBOZ29haSBtb3QgbWF5IHBo YSBzb25nIA0KdmEgbmhpZXUgbWF0IGhhbmcgbmh1IG5vbiBjb2ksIG5vbiBrZXBpLCBiaWEgdGFw IGJhbiBjdWEgcXVhbiBkb2kuLi4gTHVjIGx1b25nIGtpZW0gdHJhIA0KY3VuZyBwaGF0IGhpZW4g aGFuZyBjaHVjIGNodW5nIGxvYWkgbWF0IGhhbmcgcXVhbiB0cmFuZywgcXVhbiBkdW5nIGNodWEg dGFpIHRydSBzbyANCkNvbmcgdHkgQ28gcGhhbiBTWC1UTS1YTksgUGh1YyBUaG8gKHNvIDAwNyBj aHVuZyBjdSBWdW9uIExhaSwgY3VuZyBjdWEgQ29uZyB0eSANClRhaSBMYW4gQW5oLCBkbyBvbmcg VG8gVHVhbiBBbmggbGFtIGRhaSBkaWVuKS4gICAgDQoNCmh0dHA6Ly92dGMudm4vNy02MDAwL3Bo YXAtbHVhdC9tdWEtYmFuLWRvLWR1bmctY29uZy1hbi1xdWFuLWRvaS1jb2ktY2h1bmctcGhhbS10 b2kuaHRtIChUaGVvIENBTkQpIDA3LzA5LzIwMDYgMTE6MzcgDQoNCkNvbmcgYW46IEhhbmcgcXVh biB0cmFuZyBkdW9jIG11YSBiYW4gY29uZyBraGFpIG8gZHVvbmcgTGUgRHVhbiAtIEhhIE5vaSAo dHJhaSBwaGFwIGx1YXQpIA0KDQpOZ2hpIGRpbmggNTkvMjAwNi9DUCBjdWEgQ2hpbmggcGh1IHF1 eSBkaW5oIHF1YW4gdHJhbmcsIHRyYW5nIHBodWMsIGNvbmcgY3UgaG8gdHJvLi4uDQogdGh1b2Mg bHVjIGx1b25nIENvbmcgYW4gdmEgUXVhbiBkb2kgbGEgbWF0IGhhbmcgTmhhIG51b2MgY2FtIGx1 dSB0aG9uZyB0cmVuIHRoaSANCnRydW9uZy4gVHV5IG5oaWVuLCBxdWEga2llbSB0cmEgMyBraW90 IHRhaSBkdW9uZyBMZSBEdWFuLCBIYSBOb2ksIGNvIHF1YW4gY2h1YyBuYW5nIGRhIA0KdGh1IGdp dSA0MCBiYW8gaGFuZyBob2EgbGEgZG8gZHVuZyBjdWEgbHVjIGx1b25nIENvbmcgYW4sIFF1YW4g ZG9pLg0KIA0KU2FuZyA2LzksIERvYW4gY29uZyB0YWMgbGllbiBuZ2FuaCBjdWEgVFAgSGEgTm9p IGdvbTogRG9pIENob25nIGJ1b24gbGF1IGhhbmcgY2FtIC0gDQpQaG9uZyBDU0RUIHRvaSBwaGFt IHZlIFRUUUxLVCB2YSBDViAtIENvbmcgYW4gVFAgSGEgTm9pLCBjbyBzdSBwaG9pIGhvcCBjdWEg RG9pIA0KUXVhbiBseSB0aGkgdHJ1b25nIHNvIDQgdGh1b2MgQ2hpIGN1YyBRdWFuIGx5IHRoaSB0 cnVvbmcgVFAgSGEgTm9pIGRhIHRpZW4gaGFuaCBraWVtIA0KdHJhIGhhbmggY2hpbmggMyBraW90 IHNvIDksIHNvIDEwIHZhIDExIHRodW9jIHNvIDEyMiBkdW9uZyBMZSBEdWFuLCBxdWFuIEhvYW4g S2llbSANCihjaHUga2luaCBkb2FuaCBraW90IHNvIDkgdmEgMTEgbGEgRG8gRGFuZyBUaHV5OyBr aW90IHNvIDEwIGxhIE5ndXllbiBUaGkgTmdvdCkuIENhYyANCmhvIGtpbmggZG9hbmggZGV1IGto b25nIHh1YXQgdHJpbmggZHVvYyBnaWF5IHRvIGRhbmcga3kga2luaCBkb2FuaCBob2FjIG5ndW9u IGdvYyBoYW5nIGhvYS4NCiANClF1YSBraWVtIHRyYSB0YWkgMyBraW90IG5heSBkYSB0aHUgZ2l1 IDQwIGJhbyBoYW5nIGhvYSBnb20gcXVhbiBhbyBzaSBxdWFuIFF1YW4gZG9pIHRodSANCmRvbmcg dmEgeHVhbiBoZSAobmhpZXUgYm8gcXVhbiBhbyBjb24gbmd1eWVuIG1hYyBDdWMgUXVhbiBuaHUg VG9uZyBjdWMgSGF1IGNhbik7IA0KcXVhbiBhbyBzaSBxdWFuIHRodSBkb25nLCB4dWFuIGhlIGN1 YSBsdWMgbHVvbmcgYW4gbmluaDsgZ2lheSwgZGVwLCBtdSBsdW9pIHRyYWksIGR1aSBjdWkgDQpj YW8gc3UsIHRoYXQgbHVuZywgcGh1IGhpZXUsIHF1b2MgaHV5LCBjYXJhdmF0IGN1YSBsdWMgbHVv bmcgQ29uZyBhbi4gVHJvbmcgc28gaGFuZyBob2EgDQpiaSB0aHUgZ2l1LCBkYW5nIGNodSB5IGNv IGtob2FuZyB0cmVuIDQ1MCBjaGllYyBkdWkgY3VpIGNhbyBzdS4uLg0KIA0KVGhlbyBOZ2hpIGRp bmggNTkvMjAwNi9DUCBjdWEgQ2hpbmggcGh1IHF1eSBkaW5oIHF1YW4gdHJhbmcsIHRyYW5nIHBo dWMsIGNvbmcgY3UgaG8gDQp0cm8uLi4gdGh1b2MgbHVjIGx1b25nIENvbmcgYW4gdmEgUXVhbiBk b2kgbGEgbWF0IGhhbmcgTmhhIG51b2MgY2FtIGx1dSB0aG9uZyB0cmVuIHRoaSANCnRydW9uZy4g Q2FjIGhvIHRyZW4gZGEga2hhaSBuaGFuIHZpZWMga2luaCBkb2FuaCBuaHVuZyBtYXQgaGFuZyBi aSB0aHUgZ2l1IGxhIHZpIHBoYW0gDQpwaGFwIGx1YXQuIEhpZW4gY2FjIGNvIHF1YW4gY2h1YyBu YW5nIGRhbmcgZGlldSB0cmEgbGFtIHJvIG5ndW9uIGhhbmcgZG8gZGF1IG1hIGNvIHRhaSAzIGtp b3QgbmF5Lg0KTmdvYWkgMyBraW90IG5vaSB0cmVuLCB2YW4gY29uIGtoYSBuaGlldSBraW90IGto YWMgdHJlbiBkdW9uZyBMZSBEdWFuIGtpbmggZG9hbmggbmh1bmcgbWF0IGhhbmcgTmhhIG51b2Mg Y2FtIGx1dSB0aG9uZy4gDQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAt MDUtMDcta2hpLWNhbmgtc2F0LWdpYW8tdGhvbmctZHVvYy1raG9hbi1jaGktdGlldS14dS1waGF0 IFRhYyBnaWE6IEtob2kgTmd1eWVuIDA3LzA1LzIwMTAgMDY6MDAgR01UKzcgDQoNCkNvbmcgYW46 IENhbmggc2F0IGdpYW8gdGhvbmcgZHVvYyAia2hvYW4iIGNoaSB0aWV1IHh1IHBoYXQgliB0aGll dSBraG9hIGhvYyANCg0KVmllYyBjYW5oIHNhdCBnaWFvIHRob25nIChDU0dUKSBkdW9jIGdpYW8g ImNoaSB0aWV1IiB4dSBwaGF0IHZpIHBoYW0gbW9pIG5nYXkgbGF1IG5heSANCm5odW5nIHR1b25n IGNoaSBsYSBjYXUgY2h1eWVuIHZ1aSBraGkgbm9pIGNodXllbiBwaGllbSBjdWEgbmh1bmcgbmd1 b2kgY28gcXVlbiBiaWV0IA0KQ1NHVC4gVGhhdCBraG9uZyBuZ28gdmEga2hvIGNvIHRoZSB0aW4g bm9pIGRheSBsYWkgbGEgdmllYyBjbyB0aGF0LiANCg0KTGFuaCBkYW8gQ1NHVCBIYSBOb2kgZGEg bGVuIGJhbywgbm9pIHRvZXQgcmEgdmllYyB2aWVjIGdpYW8gY2hpIHRpZXUgY2hvIGNhcCBkdW9p LiAgRGlwIA0KbmF5LCB0b25nIGNvbmcgbHVjIGx1b25nIENUR1QgdGh1IGRvIHBoYWkgeHUgcGhh dCA0MTUgdHJ1b25nIGhvcCB2aSBwaGFtIG1vaSBuZ2F5LiANCkR1b25nIG5oaWVuLCBjaGkgdGll dSBwaGFpIGxhcCBiYW8gbmhpZXUgYmllbiBiYW4sIHRhbSBnaXUgYmFvIG5oaWV1IHBodW9uZyB0 aWVuIGN1bmcgDQpkdW9jICJraG9hbiIgY2hvIHR1bmcgZG9pLCB0dW5nIHRvIENTR1QuIFRyYSBs b2kgYmFvIGNoaSwgVHJ1b25nIHBob25nIENTR1QgSGEgTm9pIA0KTmd1eWVuIER1eSBOZ29jIG5v aSB0aGFuZzogIkdpYW8gY2hpIHRpZXUgbGEgZGUgbmFuZyBjYW8gdHJhY2ggbmhpZW0sIGtodXll biBraGljaCANCmNhbmggc2F0IGxhbSB0b3QgbmhpZW0gdnUsIGNvbiB2aWVjIHh1IHBoYXQgcGhh aSBjYW4gY3UgdmFvIHRpbmggaGluaCB0aHVjIHRpZW4gdmkgcGhhbSIuDQoNCkNhdSBub2kgdHJl biBkdW5nIHR1eWV0IGRvaSBvIHZlIHNhdSwgdmllYyB4dSBwaGF0IHBoYWkgY2FuIGN1IHZhbyB0 aHVjIHRpZW4iLiAgVGhlIG5odW5nIA0KY2hhbmcgaGlldSBjYW4gY3UgdmFvICJ0aWVtIG5hbmci LCAidHJpZW4gdm9uZyIgbmFvIG1hIGxhbmggZGFvIENTR1QgImFwIiBjaG8gY2FwIA0KZHVvaSBj YWMgIm11YyBraG9hbiI/DQoNCkNvIGJhIGtoYSBuYW5nIGNvIHRoZSB4YXkgcmEuIE5ldSAibXVj IGtob2FuIiBsYSBwaHUgaG9wIHZvaSB0aHVjIHRpZW4gdmkgcGhhbSB0aGkgDQpjaGFjIGNoYW4g bmhpZXUgbmd1b2kgY3VuZyBkbyBiYW4ga2hvYW4uIE5odW5nICJ0aHVjIHRlIiB2aSBwaGFtIGN1 YSBuZ3VvaSBkYW4gZGF1IA0KY28gdGhlIGRvbmcgZGVtIGR1b2MgbW90IGNhY2ggY2h1YW4geGFj IHZlIGNvIGJhbiwga2UgY2EgdmllYyBsYXkgbmdheSBubyBidSBuZ2F5IGtpYSwgDQp0aGFuZyBu YXkgYnUgdGhhbmcga2hhYz8gTmdheSBjYSBjaGkgdGlldSB0dXllbiBzaW5oIGN1YSBjYWMgdHJ1 b25nIGRhaSBob2MsIGNhbyBkYW5nIA0KcGhhaSBkdWEgdHJlbiBzbyBsdW9uZyBob2Mgc2luaCwg a2hhIG5hbmcgZGFvIHRhbyBjdWEgaGUgdGhvbmcsIG5odSBjYXUgdmEgdHJpZW4gdm9uZyANCmtp bmggdGUtIHhhIGhvaSBkdW9jIGNvbmcgYm8gY29uZyBraGFpIGhhbmcgbmFtIHRydW9jIG1vaSBr eSB0aGkgY29uIGtob25nIGl0IGxhbiBwaGFpIA0KImR1IGRpIiBjaG8gcGh1IGhvcC4gDQoNCkJh biBraG9hbiBsb24gbmhhdCBsYSBvIGhhaSBraGEgbmFuZyBjb24gbGFpLiBUaHUgbmhhdCwgbmV1 IG5ndW9pIGRhbiB0aGFtIGdpYSBnaWFvIA0KdGhvbmcga2hvbmcgdmkgcGhhbSwgaG9hYyB2aSBw aGFtIGl0IGhvbiAibXVjIGtob2FuIiB0aGkgQ1NHVCBIYSBOb2kgInhvYXkiIGRhdSByYSANCnNv IGJpZW4gYmFuIGNhbiBwaGFpIGxhcCwgc28gcGh1b25nIHRpZW4gY2FuIHBoYWkgdGFtIGdpdSBj aG8gZHUgY2hpIHRpZXU/IEJvaSBsZSwgDQpkYSBjbyBjaGkgdGlldSBkdW9uZyBuaGllbiBjYXAg ZHVvaSBwaGFpIHBoYW4gZGF1IGhvYW4gdGhhbmggaG9hYyBsYW0gdnVvdC4gVmEgbmV1IGdpYW8g Y2hpIA0KdGlldSBjaGkgZGUgY2hvIHZ1aSB0aGkgY2hhbiBjaGFuIGxhbmggZGFvIENTR1QgSGEg Tm9pIGNoYW5nICJiYW4gaGFuaCIgbGFtIGdpIGNobyANCm1hdCB0aG9pIGdpYW4sIGNvIGtoaSBj b24gZ2FwIG5odW5nIGNodXllbiAicmFjaCB2aWVjIiB2ZSBjYWkgZ29pIGxhIGNoaSB0aWV1IGF5 Lg0KDQpUaHUgaGFpLCBuZXUgdGh1YyB0ZSB2aSBwaGFtIHZ1b3QgbXVjIGtob2FuIHZlIHNvIGJp ZW4gYmFuIHBoYWkgbGFwIHZhIHNvIHBodW9uZyB0aWVuIA0KcGhhaSB0YW0gZ2l1IHRoaSBDU0dU IEhhIE5vaSBjbyB0aGUgZGF0IGhvYWMgdnVvdCBjaGkgdGlldS4gTmh1bmcgZGEgZHUgImRpbmgg bXVjIiByb2kgDQp0aGkgY28gdGhlICJsbyBsYSIgaG9uIHRyb25nIHZpZWMgeHUgbHkgdmkgcGhh bT8uLi5IYXkuLi5IYXkuLi4/Li4uDQoNCk5odW5nIGNhdSBob2kgbmF5IHRoaSBjaGkgbHVjIGx1 b25nIENTR1QgSGEgTm9pIG1vaSBjbyB0aGUgdHJhIGxvaS4gDQoNCmh0dHA6Ly9kYW52aWV0LnZu LzcwOTRwMWMyNC9iYW5nLWhvYW5nLW5oaW4tY3NndC1sYW0tbHVhdC1uaHUtYW8tdGh1YXQuaHRt IDI3LzA2LzIwMTAgMDk6NTANCg0KQ1NHVDogImxhbSBsdWF0IiBuaHUgYW8gdGh1YXQgdHJlbiB0 dXllbiBkdW9uZyB0dSBUUEhDTSBkaSBLb24gVHVtIA0KDQpodHRwOi8vdXMuMjRoLmNvbS52bi90 aW4tdHVjLXN1LWtpZW4vY3NndC1sYW0tbHVhdC1uZ2F5LXRhaS1oYS1ub2ktYzQ2YTIyNzYzMi5o dG1sIDA1LzA1LzIwMDksIDA5OjQ1DQoNCkNTR1QgImxhbSBsdWF0IiBuZ2F5IHRhaSBIYSBOb2kg IA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDA3LzExLzc1NDE0NS8gMjE6NTIsIDEw LzExLzIwMDcgKEdNVCs3KQ0KDQpDU0dUOiBkYW5oIG5ndW9pIG5nYXkgdHJlbiBkdW9uZyBwaG8g dGFpIFRQLkhDTSANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEwMDMyNDEwNTI0NjI5N1AwQzE3 L2JvLWNvbmctYW4tZHVvYy1jaHV5ZW4tbmh1b25nLWRhdC10YWktNDAtaGFuZy1iYWktdmEtNTQt dHJhbi1odW5nLWRhby5odG0gUC5WIDExOjMyIChHTVQrNykgLSAyNC8zLzIwMTAgDQoNCkNoaW5o IHBodSCWIENvbmcgYW46IEJvIENvbmcgYW4gY2h1IHRydW9uZyBjaHV5ZW4gbmh1b25nIGRhdCB0 YWkgdHJ1IHNvIDQwIEhhbmcgQmFpIHZhIDU0IFRyYW4gSHVuZyBEYW8gDQogDQpUaGVvIG5ndW9u IHRpbiB0dSBDb25nIFRob25nIHRpbiBkaWVuIHR1IENoaW5oIHBodSwgVGh1IHR1b25nIGRhIGNo YXAgdGh1YW4gY2h1IA0KdHJ1b25nIGRhdSB0dSB4YXkgZHVuZyB0cnUgc28gbGFtIHZpZWMgbW9p IGN1YSAzIHRvbmcgY3VjIGNhbmggc2F0IHRodW9jIEJvIENvbmcgYW4gdGFpIA0KcGh1b25nIE1h aSBEaWNoLCBxdWFuIENhdSBHaWF5LCB0aGFuaCBwaG8gSGEgTm9pLg0KDQpEZSBsYXkga2luaCBw aGkgZGF1IHR1IHhheSBkdW5nIHRydSBzbyBsYW0gdmllYyBtb2kgY3VhIDMgdG9uZyBjdWMgdHJl biwgVGh1IHR1b25nIGRvbmcgDQp5IGNobyBCbyBDb25nIGFuIGR1b2MgYmFuIHRhaSBzYW4gdHJl biBkYXQgdmEgY2h1eWVuIG5odW9uZyBxdXllbiBzdSBkdW5nIGRhdCB0aGVvIGdpYSANCnRoaSB0 cnVvbmcsIGR1bmcgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCwgdGFpIHNvIDQwIEhhbmcgQmFpIHZh IDU0IFRyYW4gSHVuZyBEYW8sIHF1YW4gDQpIb2FuIEtpZW0sIHRoYW5oIHBobyBIYSBOb2ksIHZv aSBkaWVuIHRpY2ggZGF0IGxhIDEzLjMwMyw4IG0yLCBoaWVuIGRvIEJvIENvbmcgYW4gDQpxdWFu IGx5Lg0KDQooQ3UgdHJpIHF1YW4gdGFtOiBOZXUgQm8gQ29uZyBhbiBraG9uZyBjYW4gc3UgZHVu ZyB0cnUgc28gdmEgZGF0IHRhaSA0MCBIYW5nIEJhaSB2YSA1NCANClRyYW4gSHVuZyBEYW8gbnVh IHRoaSB0cmEgbGFpIHRoYW5oIHBobyBIYSBOb2kgcXVhbiBseSBoYXkgQ2hpbmggcGh1IGdpYW8g Y2hvIGNvIHF1YW4gDQpraGFjIHF1YW4gbHksIGNodSBraG9uZyBoaWV1IHNhbyBsYWkgZGluaCBk ZW0gYmFuIGRlIGxheSB0aWVuLCBsYW0ga2luaCBwaGkuIEhvbiBudWEsIA0KMiBub2kgbmF5IGNv IHRoZSBsYSBkaSB0aWNoIGhvYWMgbGEgYmlldCB0aHUgY28gY2FuIGJhbyB0b247IG5lbiBjaGFu ZywgY2FuIHhlbSB4ZXQgbGFpIHF1eWV0IGRpbmggbmF5LikgDQoNCmh0dHA6Ly9ib3hpdHZuLndv cmRwcmVzcy5jb20vMjAxMC8wOC8xOS9iYS1jb24tdiVFMSVCQiU4QnQtbnUlRTElQkIlOTF0LW0l RTElQkIlOTl0LW0lRTElQkElQTFuZy1uZyVDNiVCMCVFMSVCQiU5RGkvIENoaSBUdW5nIC0gVGh1 IEh1eWVuIChOZ3VvbjogTGFvZG9uZykNCg0KQ29uZyBhbiB2YSAzIGNvbiB2aXQgIm51b3QiIG1v dCBtYW5nIG5ndW9pDQoNCihMYW8gRG9uZykgLSBDaGkgdmkgbWF5IGNvbiB2aXQgaGF5IHBoYSBy b2ksIGhhaSBtZSBjb24gdmEgY2hhbSB2b2kgbmhhdSwgYmEgbWUgDQp0cm9uZyBsdWMgbm9uZyBn aWFuIGRhIGxhbSBkb24gZ3VpIGRlbiBjbyBxdWFuIGNvbmcgYW4gdm9pIG1vbmcgbXVvbiBjb25n IGFuIA0KZG9hIGNobyBkdWEgY29uIG1vdCB0cmFuIGRlIG5vIG5nb2FuIGhvbi4gVGhlIG5odW5n IHNhdSBtb3QgbmdheSwgY28gcXVhbiBjb25nIA0KYW4gZGEgdHJhIGxhaSBjaG8gYmEgY2hpZWMg cXVhbiB0YWkgdmEgeGFjIGNoZXQgZHVhIGNvbiB0cmFpLg0KDQpCaSBraWNoIA0KDQpIb24gbW90 IHRoYW5nIG5heSwgbmh1bmcgbmd1b2kgZGFuIHRob24gQmluaCBYdWFuLCB4YSBCaW5oIFRodWFu LCBodXllbiBEYWkgVHUsIA0KVGhhaSBOZ3V5ZW4sIGN1bmcgbmhhbiBkYW4gY2EgbnVvYywgdmFu IGNodWEgaGV0IGJhbmcgaG9hbmcgdmUgY2FpIGNoZXQgZGF5IGJhdCANCnRodW9uZyBjdWEgYW5o IFZ1IFZhbiBIaWVuLiBDYWkgY2hldCBraGllbiAyIGR1YSBjb24gdGhvIGNodWEgZGF5IDEwIHR1 b2kgY3VhIGFuaCB0cm8gDQp0aGFuaCBjb2kgY3V0LiBUdW9pIHRobyBjaHVhIHRoYXUgaGV0IG5v aSBkYXUgbmh1bmcgdHUga2hpIGtob25nIGNvbiBibyBjaHVuZyBib25nIHRybyANCm5lbiBuZ28g bmdhYyBkZSBob24sIGRlIGtob2MuIE5ndW9pIHZvIGdvYSB2YSBiYSBtZSBkZSBjdWEgYW5oIEhp ZW4gLSBiYSBOZ3V5ZW4gVGhpIA0KQ2hpbmgsIDY4IHR1b2kgLSB0aGkga2hvbmcgdGhlIG5hbyB0 aG9pIGRheSBkdXQuDQoNClZhbyBtb3QgYnVvaSBjaGlldSBtdW9uIGN1b2kgdGhhbmcgNywgbmhv bSBwaG9uZyB2aWVuIExhbyBkb25nIGRhIHRvaSBuaGEgYmEgQ2hpbmggDQptb3QgY2FuIG5oYSBu aG8gdHVlbmggdG9hbmcgbyB0aG9uIEJpbmggWHVhbiBkZSB0aW0gaGlldSBuZ3V5ZW4gbmhhbiBj YWkgY2hldCBiYXQgDQp0aHVvbmcgY3VhIGFuaCBIaWVuLiBOaHUgdGltIGR1b2Mgbmd1b2kgZGUg c2UgYm90IG5vaSBkYXUsIGJhIENoaW5oIGFuZyBhbmcgbnVvYyBtYXQgDQp1YXQgdWMgdnVhIGRh bSBuZ3VjIHRodW0gdGh1cCwgdnVhIGtldSB0cm9pIGtlIGxhaTogIk5oYSB0aGFuZyBIaWVuIG5v IG8gY2FuaCBuaGEgdG9pLCANCm5nYXkgMjAuNS4yMDEwLCAzIGNvbiB2aXQgY3VhIHZvIGNob25n IG5vIGxhaSBjaGF5IHNhbmcgbmhhIHRvaSBwaGEgcm9pLiBOaGlldSBsYW4gbm8gZGEgDQp0aGEg dml0IHJhIGtob25nIHRyb25nIGRlIHNhbmcgbmhhLCB0b2kgdHVjIHF1YSBtb2kgY2FtIGNhaSBn YXkgZGFwIGNobyBsdSB2aXQgbWF5IGNhaS4gDQpUaGFuZyBIaWVuIGx1YyBheSBkYW5nIG8gdHJv bmcgbmhhLCBjaGFuZyBoaWV1IG5vIGRhbmcgZ2lhbiBkb2kgZ2kgbWEga2hpIHRoYXkgdG9pIGRh bmggDQp2aXQgbmhhIG5vLCBubyBub2kgeHVuZyBsZW4gY2hheSByYSBnaWFuZyBsYXkgZ2F5IGN1 YSB0b2kuIFRyb25nIGx1YyBoYWkgbWUgY29uIGdpYW5nIGNvIA0KY2FpIGdheSwga2hvbmcgbWF5 IGdheSBkYXAgdmFvIGRhdSB0b2kgY2hheSBpdCBtYXUuIE1vaSBuZ3VvaSB0aGF5IHRoZSBkZXUg eG9uZyB2YW8gDQpjYW4gbmdhbiB0aGkgbm8gYm8gdmUgbmhhIG5hbS4gVG9pIGJpIGRhdSBkdW9j IGR1YSBjb24gZ2FpIGR1YSBkaSBiZW5oIHZpZW4sIG5odW5nIHN1b3QgDQptYXkgbmdheSBuYW0g dmllbiB0aGFuZyBIaWVuIGtob25nIHRoZW0gaG9pIHRvaSBsYXkgbW90IGNhdS4gVG9pIHR1YyBx dWEgbW9pIGJhbyBjaGkgDQpnYWkgbm8gdmlldCBjaG8gdG9pIGNhaSBkb24gZGUgdG9pIGt5LCB0 byBjYW8gbm8gZGFuaCBtZSBsZW4gQ29uZyBhbiBodXllbiB2b2kgeSBkaW5oIGRlIA0KY29uZyBh biBnb2kgbm8gbGVuIGRlIGRvYSBjaG8gbm8gbW90IHRyYW4gY2hvIG5vIGNodWEsIG5hbyBuZ28g aG9tIHRydW9jIGNvbmcgYW4gZ29pIA0Kbm8gbGVuLCBob20gc2F1IGNvbmcgYW4gdHJhIHZlIGNo byB0b2kgY2FpIHhhYyBjaGV0Ii4gIk9pIGdpb2kgb2kgbGEgZ2lvaSwgdG9pIHR1b25nIGxhIG5n dW9pIA0KdGEgZ2l1cCB0b2kgZGF5IGRvIG5vIG5hbyBuZ28gbmd1b2kgdGEgZ2lldCBjb24gdG9p LiBPaSBnaW9pIG9pLCBtZSBnaWV0IGNvbiByb2kgY29uIG9pLi4uIiAtIA0KYmEgQ2hpbmggdnVh IGtob2MgdnVhIGxhIGxhbmcuDQoNClRoYXkgYmEgbm9pIGtob2MsIGNvbiBiZSBWdSBUaGkgSG9h bmcgSGEgMyB0dW9pIGJhbSBjaGF0IGxheSBtZSBjdW5nIGdhbyB0dW9uZyBsZW4uIA0KTWUgbm8g LSBjaGkgVnUgVGhpIEh1b25nIC0gcGhhaSByYSBzdWMgZG8gZGFuaDogIktob25nIHBoYWkgY2Fj IGNodSBjb25nIGFuIGRhdSBtYSANCnNvIiBjb24gYmUgbW9pIG5pbi4gDQoNCkNoaSBIdW9uZyBr ZTogIk5nYXkgMjguNiwgQ29uZyBhbiBodXllbiBEYWkgVHUgZ29pIGNob25nIHRvaSBsZW4gZGUg aG9pIHZlIGxhIGRvbiBjdWEgDQpiYSBDaGluaCB2YSBiYXQgZ2lhbSBsdW9uIGNob25nIHRvaS4g RGVuIDE1IGdpbyBuZ2F5IDI5LjYsIHRvaSBkYW5nIGRpIGxhbSBkb25nIHRoaSANCnRoYW5nIGJl IGxvbiBjaGF5IHJhIGJhbyBsYSBjaHUgY29uZyBhbiB4YSBuaGFuIG1lIHJhIHZpZW4gbmdheSB2 b2kgYm8uIEtoaSB0b2kgcmEgdG9pIA0KdmllbiB0aGkgZGEgdGhheSAyIGFuaCBjb25nIGFuIGh1 eWVuIERhaSBUdSBkYSBjaHV5ZW4gY2hvbmcgdG9pIHRvaSBwaG9uZyBjYXAgY3V1IHRyb25nIA0K dGluaCB0cmFuZyBjaGFuIHRodW9uZyBuYW5nIG8gdnVuZyBkYXUsIG1hdCwgbmd1YyB2YSBob24g bWUgc2F1LiBEZW4gMjAgZ2lvLCBkbyBraG9uZyANCmR1IGtoYSBuYW5nIGN1dSBjaHVhIG5lbiBC ZW5oIHZpZW4gRGFpIFR1IGRhIGNodXllbiBhbmggSGllbiBsZW4gQmVuaCB2aWVuIERhIGtob2Eg DQpUcnVuZyB1b25nIFRoYWkgTmd1eWVuLiBUYWkgZGF5LCBkdSBkdW9jIGNhYyBiYWMgc2kgYmVu aCB2aWVuIERhIGtob2EgVHJ1bmcgdW9uZyANClRoYWkgTmd1eWVuIGhldCBzdWMgY3V1IGNodWEs IG5odW5nIGRvIHZldCB0aHVvbmcgcXVhIG5hbmcsIGFuaCBIaWVuIGRhIHR1IHZvbmcgdmFvIA0K bHVjIDRoMTUgbmdheSAzMC42Lg0KDQpDaGV0IGRvIGJpIGRhbmgNCg0KRGUgdGltIGhpZXUgbmd1 eWVuIG5oYW4gY2FpIGNoZXQgYmF0IHRodW9uZyBjdWEgYW5oIFZ1IFZhbiBIaWVuIG5nYXkgdGFp IHRydSBzbyBDb25nIA0KYW4gaHV5ZW4gRGFpIFR1LCBjaHVuZyB0b2kgZGEgZGVuIGxhbSB2aWVj IHZvaSBDb25nIGFuIHRpbmggVGhhaSBOZ3V5ZW4sIG5odW5nIHNhdSBjYSANCm1vdCBidW9pIGNo aWV1IGNobyBjaHVuZyB0b2kgbmdvaSBkb2kgdGFpIHRydSBzbyBDb25nIGFuIHRpbmgsIGNodW5n IHRvaSBkdW9jIG9uZyBUcmFuIA0KVmFuIENoaW4gLSBQaG8gcGhvbmcgQ29uZyB0YWMgY2hpbmgg dHJpIC0gdHJ1eWVuIGRhdCBsYWkgeSBraWVuIGN1YSBvbmcgTmd1eWVuIE5odSANClR1YW4gLSBQ aG8gR2lhbSBkb2MgQ29uZyBhbiB0aW5oIFRoYWkgTmd1eWVuIC0gcmFuZywga2hvbmcgdGhlIGN1 bmcgY2FwIHRob25nIHRpbiANCmNobyBiYW8gY2hpIHZhbyB0aG9pIGRpZW0gbmF5LCBkdSBjaGkg bGEgdGhvbmcgdGluIGJhbiBkYXUuIERheSBjbyBsZSBsYSBtb3QgdmllYyBsYW0ga2hvIA0KaGll dSBudWEgY3VhIENvbmcgYW4gVGhhaSBOZ3V5ZW4sIGJvaSB0dSBraGkgYmkgYmF0IGRlbiBraGkg bmFuIG5oYW4gdHUgdm9uZywgY28gcXVhbiANCmNvbmcgYW4gZGEgY28gbmh1bmcgdmllYyBsYW0g cmF0IGtobyBnaWFpIHRoaWNoLiBDdSB0aGUga2hpIGR1YSBhbmggSGllbiB2YW8gQmVuaCB2aWVu IA0KaHV5ZW4gRGFpIFR1IHZhIHNhdSBkbyBsYSBCZW5oIHZpZW4gRGEga2hvYSBUcnVuZyB1b25n IFRoYWkgTmd1eWVuLCBjYW4gYm8gQ29uZyBhbiANCmh1eWVuIERhaSBUdSBkZXUga2hhaSB0cm9u ZyBiZW5oIGFuIGN1YSBhbmggSGllbiBsYSAiYmkgbmdhIHZhIGNvIHRpZW4gc3Ugc3UgZHVuZyBt YSANCnR1eSIuDQpUaGUgbmh1bmcgbGFtIHZpZWMgdm9pIGNodW5nIHRvaSwgY29uZyBhbiB2aWVu IHhhIEJpbmggVGh1YW4gdGVuIGxhIFRyYW4gVmFuIEN1b25nIA0KKGFuaCBDdW9uZyBsYSBuZ3Vv aSB0cnVjIHRpZXAgcXVhbiBseSBkaWEgYmFuIHRob24gQmluaCBYdWFuIHZhIGN1bmcgbGEgbmd1 b2kgZHVhIGFuaCANCkhpZW4gbGVuIENvbmcgYW4gaHV5ZW4gZGUgYmkgYmF0KSB2YSByYXQgbmhp ZXUgbmd1b2kgZGFuIGN1bmcgdGhvbiBkZXUga2hhbmcgZGluaCwgYW5oIA0KSGllbiBraG9uZyBo ZSBjbyB0aWVuIHN1IG5naGllbiBtYSB0dXkgaGF5IG5naGllbiBydW91LiBUaWVwIG51YSwgcGhv bmcgZ2lhbSBjdWEgY29uZyANCmFuIGh1eWVuIGtoYSBraW4sIGtob25nIGNvIGRpZXUga2llbiBu Z29haSBjYW5oIG5hbyBjbyB0aGUga2hpZW4gbmFuIG5oYW4gYmkgbmdhIGhvYWMgDQp0dSB0aHVv bmcgZGFuIGRlbiBnYXkgdGh1b25nIHRpY2ggbmFuZyBjaG8gY28gdGhlLiBWYXkgbWEgdGFpIGhv IHNvIGJlbmggYW4gY3VhIGFuaCANCkhpZW4gZGV1IGdoaSByYXQgcm86ICJCZW5oIG5oYW4gdmFv IHZpZW4gdHJvbmcgdGluaCB0cmFuZyBob24gbWUgc2F1LCBiYW0gdGltIG5oaWV1IG8gDQptYXQg dHJhaSwgY2hhbiB0YXkgdHJheSB4dW9jLCBjbyBtb3QgdmV0IHJhY2ggbG9uIG8gbW9pIHRyZW4u IFRpZXUsIGRhaSB0aWVuIGtob25nIGtpZW0gDQpzb2F0Ii4gQmFjIHNpIFRydW9uZyBLaGFuaCBU aGllbiAtIFBobyBHaWFtIGRvYyBCZW5oIHZpZW4gaHV5ZW4gRGFpIFR1IC0gbW8gaG8gc28gDQpi ZW5oIGFuIGNobyBjaHVuZyB0b2kgeGVtIHZhIGtoYW5nIGRpbmg6ICJTYXUga2hpIGFuaCBIaWVu IGR1b2MgZHVhIHZhbyB2aWVuLCBjaHVuZyANCnRvaSBkYSBjaHVwIGNhdCBsb3AgbmFvLg0KDQpL ZXQgcXVhIGNobyB0aGF5IGJlbmggbmhhbiBiaSB4dWF0IGh1eWV0IG5hbyB2YSBtYW5nIG5hbyBv IG11YyBkbyByYXQgbmFuZywga2hvIGN1dSANCmNodWEgbmVuIGRhIGNodXllbiBhbmggdG9pIEJl bmggdmllbiBEYSBraG9hIFRydW5nIHVvbmcgVGhhaSBOZ3V5ZW4gZGUgdGllcCB0dWMgZGlldSAN CnRyaSIuIFRhaSBobyBzbyBiZW5oIGFuIGN1YSBhbmggSGllbiBvIEJlbmggdmllbiBEYSBraG9h IFRydW5nIHVvbmcgVGhhaSBOZ3V5ZW4gY3VuZyANCmdoaSBybywga2hpIGFuaCBIaWVuIHZhbyB2 aWVuIHRyb25nIHRpbmggdHJhbmcgY28gdGhlIGNvIDQgdmV0IGJhbSB0aW0sIGhpbmggYW5oIGNo dXAgbmFvIA0KY2hvIHRoYXkgY28ga2hvaSBtYXUgdHUgbG9uIHR1IHRodXkgdGhhaSBkdW9uZyBs ZW4gdG9pIHRodXkgZGluaCBwaGFpLCB0aWV1IGNhdSByYXQgdGhhcC4gDQpCZW5oIG5oYW4gaG9u IG1lIHNhdSwgdGhhbSBjaGkgY28gbHVjIHRhdCB0aG8gcGhhaSBjYW4gdGhpZXAgbmdvYWkga2hv YSBuaGlwIHRpbSBtb2kgDQpkYXAgdHJvIGxhaS4gIkRlbiA0aCBuZ2F5IDMwLjYsIGJlbmggbmhh biBIaWVuIGRhIHR1IHZvbmcgaG9hbiB0b2FuIGRvIHh1YXQgaHV5ZXQgbmFvIA0KcXVhIG5hbmci IC0gQmFjIHNpIER1b25nIEhvbmcgVGhhaSAtIFBobyBHaWFtIGRvYyBCZW5oIHZpZW4gRGEga2hv YSBUcnVuZyB1b25nIA0KVGhhaSBOZ3V5ZW4gLSBjaG8gYmlldC4NCg0KTGEgbmd1b2kgY3VuZyB0 aGFtIGdpYSBnaWFtIHNhdCB2YSBreSB2YW8gYmllbiBiYW4gbW8gdHUgdGhpLCBvbmcgVnUgVGll biBMYW5nIC0gSG9pIA0KdHJ1b25nIEhvaSBDdXUgY2hpZW4gYmluaCB0aG9uIDEsIHhhIEhhIFRo dW9uZywgaHV5ZW4gRGFpIFR1IC0ga2hhbmcgZGluaDogIktldCBxdWEgDQptbyB0dSB0aGkgbmFu IG5oYW4gVnUgVmFuIEhpZW4gY2hvIHRoYXksIHRhaSB4dW9uZyBzbyBkaW5oIGRhdSBjbyAyIHZl dCB0dSBtYXUsIHJhbiANCnh1b25nIHRoYWkgZHVvbmcgdHJhaSwgdm8geHVvbmcgaGFtIHRyYWks IGhhaSBsYSBwaG9pIHR1IG1hdSwgZ2F5IDQgY2hpZWMgeHVvbmcgc3VvbiByZSANCjMgLSA0IG8g aGFpIGJlbiB0cmFpLCBwaGFpLCBnYXkgY2FuZyB0YXkgdHJhaSIuIFZvaSBuaHVuZyB0aHVvbmcg dGljaCBuaHUgdHJlbiwgY28gdGhlIA0Ka2hhbmcgZGluaCByYW5nIFZ1IFZhbiBIaWVuIGRhIGJp IGRhbmggY2hldC4NCg0KVmkgcGhhbSB0byB0dW5nIA0KDQpUdSB2dSBhbiBuYXkgY28gdGhlIHRo YXksIHZpZWMgQ29uZyBhbiBodXllbiBEYWkgVHUgZGEgY28gZGF1IGhpZXUgdmkgcGhhbSB0byB0 dW5nIA0KdHJvbmcgcXVhIHRyaW5oIGRpZXUgdHJhLCBkYW4gZGVuIGNhaSBjaGV0IGRheSB0aHVv bmcgdGFtIGN1YSBhbmggVnUgVmFuIEhpZW4uIEN1IHRoZSwgDQpjbyBxdWFuIGNvbmcgYW4gcmEg bGVuaCBiYXQsIGtob2kgdG8gYW5oIEhpZW4gY2FuIGN1IHZhbyBrZXQgcXVhIGdpYW0gZGluaCB0 aHVvbmcgdGF0IA0KY3VhIGJhIE5ndXllbiBUaGkgQ2hpbmggMTMlICh0YW0gdGhvaSAxMSUpIG1h IGtob25nIGhlIGNvIGJpZW4gYmFuIHRob25nIGJhbyBjaG8gDQpnaWEgZGluaCwga2hvbmcgY28g c3UgY2h1bmcga2llbiBjdWEgZGFpIGRpZW4gY2hpbmggcXV5ZW4gZGlhIHBodW9uZyB0aGVvIHF1 eSBkaW5oIGN1YSANCkRpZXUgODAgdmEgRGlldSA4NSBjdWEgQm8gbHVhdCBUbyB0dW5nIGhpbmgg c3UuIEhvbiB0aGUgbnVhLCBkYXkgY2hpIGxhIG1hdSB0aHVhbiBuaG8sIA0KYnVuZyBwaGF0IG5o YXQgdGhvaSB0cm9uZyBnaWEgZGluaCwgY28gdGhlIGdpYWkgcXV5ZXQgYmFuZyBoaW5oIHRodWMg aG9hIGdpYWksIGFuaCBIaWVuIGxhaSANCmxhIG5vbmcgZGFuIGhpZW4gbGFuaCBjaGF0IHBoYWMs IGtob25nIHBoYWkgbGEgZG9pIHR1b25nIG5ndXkgaGllbSwgY28gdGhlIGJvIHRyb24sIGhvYWMg DQpnYXkga2hvIGtoYW4gY2hvIHF1YSB0cmluaCBkaWV1IHRyYSwgbmh1bmcgZGEgYmkgQ29uZyBh biBodXllbiBEYWkgVHUgYXAgZHVuZyBiaWVuIA0KcGhhcCBuZ2FuIGNoYW4gYmFuZyBjYWNoIGJh dCBnaWFtIGFuaCBIaWVuIHRvaSA5MCBuZ2F5IGxhIGRpZXUgaG9hbiB0b2FuIHRyYWkgdm9pIGNh YyANCnF1eSBkaW5oIGN1YSBEaWV1IDc5LCBEaWV1IDg4IEJvIGx1YXQgVG8gdHVuZyBoaW5oIHN1 LiBEaWV1IDc5LCBEaWV1IDg4IHF1eSBkaW5oIHJvIA0KdmllYyBiYXQgdGFtIGdpYW0gY2hpIGR1 b2MgdGh1YyBoaWVuIGtoaSBjbyBjYW4gY3UgY2h1bmcgdG8gYmkgY2FuIHNlIGdheSBraG8ga2hh biBjaG8gDQp2aWVjIGRpZXUgdHJhIG5odSBibyB0cm9uIGhvYWMgc2UgdGllcCB0dWMgcGhhbSB0 b2kuDQoNClRoZSBuaHVuZyBxdXkgZGluaCBkbyBkYSBiaSBibyBxdWEuIEhvbiB0aGUgbnVhLCBz YXUga2hpIGJhdCBnaWFtIHZhIHF1YW4gbHkgYW5oIFZ1IA0KVmFuIEhpZW4sIG5odW5nIENvbmcg YW4gaHV5ZW4gRGFpIFR1IGRhIGtob25nIGdpdSBkdW9jIHRpbmggbWFuZyBjaG8gYW5oIEhpZW4s IGRvIA0KbGEgdHJhY2ggbmhpZW0gY3VhIGNoaW5oIGNvIHF1YW4gY29uZyBhbiBtYSBraG9uZyB0 aGUgY28gZGlldSBnaSBwaHUgbmhhbiBkdW9jLiBEYXkgbGEgDQptb3QgdnUgYW4gaGV0IHN1YyBk YXUgbG9uZywgcmF0IGNhbiBuaGlldSBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQgY3VuZyB2YW8g Y3VvYyBsYW0gcm8gDQpuaHVuZyBrZSBuYW8gZGEgZ2F5IHJhIGNhaSBjaGV0IGN1YSBhbmggSGll biBkZSBnaXUgbmdoaWVtIGt5IGN1b25nIHBoZXAgbnVvYyB2YSBsb25nIA0KdGluIGN1YSBuZ3Vv aSBkYW4gdmFvIGNvIHF1YW4gYmFvIHZlIHBoYXAgbHVhdC4NCg0KKENUIC0gVEggaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9UaW4tVHVjL0JhLWNvbi12aXQtbnVvdC1tb3QtbWFuZy1uZ3VvaS85 MDkyKQ0KDQpZIGtpZW4gYmFuIGRvYzogDQoNCkJhdXhpdGUgVmlldCBOYW06DQoNCkJhaSBob2Mg Y2F5IGRhbmcgbmF5IHhpbiBiYSBjb24gaGF5IGtoYWMgY290IGdoaSB0YW0gdmEgZHVuZyBiYW8g Z2lvIGRlIGNobyBtb2kgDQpjaHV5ZW4gdGFpIGRpZW4uIEJhIGNvbiB0aW4gdHVvbmcgdmFvIGNv bmcgYW4gbmh1IG5ndW9pIGJhbyB2ZSBhbiBuaW5oIGNobyBtaW5oLCBkYXkgbGEgDQpkaWV1IHJh dCBkdW5nIG8gbW9pIHhhIGhvaSB0cnUgeGEgaG9pIGNodW5nIHRhLCBuaHUgYmFuZyBjaHVuZyBt YXkgbGF1IG5heSBjaG8gdGhheSBsdWMgDQpsdW9uZyBheSBkYSB0cm8gdGhhbmggaHVuZyB0aGFu IGN1YSBEYW5nLCBtYSBEYW5nIHRoaSB2YW4gY29uIGR1bmcgZGluaCBjaHVhIHRoYXkgDQpiaWV1 IGhpZW4gcXV5ZXQgdGFtIGxvYWkgYm8gaHVuZyB0aGFuLiBWYXksIG1pbmggdHJhbmggeGEgaHVu ZyB0aGFuLCByYWMgdm9pIHF1YW5oIG5oYSANCm1pbmgsIHJvaSBjbyBnaSBkb25nIGN1YSBiYW8g bmhhdSBjbyBob24ga2hvbmc/DQoNCkNvbiBiYXkgZ2lvIG1hIGRpIGRvaSBjb25nIGx5IHZvaS4u LiBhaSBkYXkgdT8gTmh1bmcga2Ugc2FuIHNhbmcgY3VvbmcgZGFtIHRhcCB0aGUgZ2FpIA0KdHJp bmggbGEgY29uIGVtIG5nYXkgdGhvIHRyb25nIHRpbmggbWluaD8gTmh1bmcga2Ugc2FuIHNhbmcg YmFvIGtlIGNobyBjYWkgdGFwIGRvYW4gDQpudW9uZyBoZXQgY3VhIGNhaSBjdWEgZGFuIGRlbiA4 NiBuZ2hpbiB0eSBkb25nIG1hIHZhbiBuaG9uIG5ob24gbGVuIGRpZW4gZGFuIGh1ZW5oIA0KaG9h bmcga2hvYWMgbGFjPyBWYW5nLCBtb3QgbWF0IGNodW5nIHRhIHZhbiBjdSBuZW4gaHkgdm9uZyB2 YSBraG9uZyBkdW9jIHBoZXAgdGF0IA0KY2FpIG5ndW9uIGxhbSBuZW4gc3Ugc29uZyB0aW5oIHRo YW4gY2hvIG1vaSBjaHVuZyB0YSB2YSBjaG8gY2EgY29uIGNoYXUgY2h1bmcgdGEgZG8sIA0Kbmh1 bmcgbWF0IGtoYWMsIHRob2kgdGhpLi4uIGJhIGNvbiBvaSwgaGF5IG5oZXQgY2FjIHRodSBkaWV1 IGx1YXQgbmF5IGtpYSB2YW8gZHVvaSBkdW5nIA0KdmF5IGJhIG1lIE5ndXllbiBUaGkgQ2hpbmgg cm9pIGJhIG5nb2kgbGVuIGRheSBjaG8gbGluaCBob24gY29uIGJhIGFuIG5naGkuIENodSBtaWVu ZyANCmJvbiBjdW9wIG5nYXkgY29uIHhvZW4geG9ldCBob24gdHJvbiB0cmUgYXkgbGFtIHNhbyBt YSBjbyB0aGUgZHVhIGxhaSBtb3QgcGhhbiBjb25nIGx5IA0KZGVuIGJ1IHRob2EgZGFuZyBjaG8g Y2FpIGNoZXQgb2FuIHRyYWkgY3VhIGNvbiBiYSBkdW9jLg0KDQpRdWFuZyBIb2EgMTMvMDgvMjAx MDogDQoNClNhbyBtYW5nIG5ndW9pIGNvIHRoZSBiaSByZSBydW5nIHRoZT8NCkRvYyBiYWkgbmF5 LCB0b2kgdGhhdCBzdSBiYW5nIGhvYW5nIHZhIGRhdSBsb25nLiBMYW0gc2FvIG1hbmcgbmd1b2kg bGFpIGNvIHRoZSBiaSByZSANCnJ1bmcgZGVuIG11YyBuaHUgdmF5LiBUb2kgbW9uZyByYW5nIGNh YyBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQgaGF5IHRodWMgc3UgdmkgZGFuIA0KbWEga2hhbiB0 cnVvbmcgZHVhIHZ1IGFuIG5naGllbSB0cm9uZyBuYXkgcmEgdHJ1b2MgYW5oIHNhbmcgZGUgdHJ1 bmcgdHJpIGRpY2ggZGFuZyANCm5odW5nIGtlIGdpZXQgbmd1b2kgZGFuIHZvIHRvaSB2YSBuaHVu ZyBrZSB2byB0cmFjaCBuaGllbSB0cnVvYyBzaW5oIG1hbmcgY3VhIG5oYW4gZGFuLiANCihOZ3Vv bjogaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9UaW4tVHVjL0JhLWNvbi12aXQtbnVvdC1tb3Qt bWFuZy1uZ3VvaS85MDkyKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDQzLzIwMTAxMDI0MDAxMTM1LmFzcHggTmhvbSBQViAyNC8xMC8yMDEwIDA6MTEgDQoN CkNvbmcgYW46IERpZXUgdHJhIHZpZW4gInh1IiBhbiBkYW4gc3U/ICANCiAgDQpUcm9uZyBxdWEg dHJpbmggdGh1IGx5IG1vdCB2dSBraWVuIGRhbiBzdSwgVEFORCBUUC5IQ00gcGhhdCBoaWVuIHZ1 IGFuIG5heSBkYSB0dW5nIA0KImR1b2MiIDIgZGlldSB0cmEgdmllbiBjdWEgUGhvbmcgMTAgLSBD dWMgQ2FuaCBzYXQgZGlldSB0cmEgdG9pIHBoYW0gdmUgdHJhdCB0dSBxdWFuIGx5IA0Ka2luaCB0 ZSB2YSBjaHVjIHZ1IChDMTVCIC0gQm8gQ29uZyBhbikgZ2lhaSBxdXlldC4gVmEgbmV1IGtob25n IGNvIHN1IHZhbyBjdW9jIGtpcCANCnRob2kgY3VhIENvIHF1YW4gZGlldSB0cmEgKENRRFQpIHRo dW9jIFZpZW4gS1NORCB0b2kgY2FvLCBjbyBsZSBuaGlldSB2YW4gZGUga2h1YXQgdGF0IA0KZGEg ZHVvYyBraGVwIGxhaS4gDQoNCk5odSBUaGFuaCBOaWVuIGRhIHRob25nIHRpbiwgVEFORCBUUC5I Q00gdnVhIHJhIHF1eWV0IGRpbmggYXAgZHVuZyBiaWVuIHBoYXAgDQpraGFuIGNhcCB0YW0gdGhv aSBkZSBuZ2FuIGNoYW4gb25nIEh1YW5nIFBhbyBUenUgKFRvbmcgZ2lhbSBkb2MgQ29uZyB0eSBU TkhIIFRhIA0KU2h1YW4sIHRydSBzbyB0YWkgbG8gNy05LTExLCBkdW9uZyBzbyAxLCBLQ04gVGFu IFRhbywgUC5UYW4gVGFvIEEsIFEuQmluaCBUYW4sIA0KVFAuSENNKSBjaHV5ZW4gZGljaCwgY2Ft IGNvIHBoYW4gZ2lhIHRyaSB0YWkgc2FuIGdvcCB2b24gMiwxIHRyaWV1IFVTRCBjdWEgb25nIG5h eSwgDQpuaGFtIGRhbSBiYW8gY29uZyB0YWMgeGV0IHh1IGN1YSB0b2EgYW4uIFRhaSBUQU5EIFRQ LkhDTSBoaWVuIG5heSwgb25nIEh1YW5nIFBhbyANClR6dSBsYSBiaSBkb24gdHJvbmcgdnUgdHJh bmggY2hhcCBob3AgZG9uZyBjaHV5ZW4gbmh1b25nIHZvbiBnb3AgY28gZ2lhIHRyaSBsZW4gZGVu IDM1IA0KdGkgZG9uZyB2b2kgY2FjIG5ndXllbiBkb24gZ29tIGNhYyBvbmcsIGJhOiBUcmFuIFR1 YW4gTWluaCwgTGFtIFRoaSBMZSwgRGllcCBUaHUgDQpIdWUsIExhbSBUaGkgRHVjLCBMYW0gVmFu IFRyb25nIChjdW5nIG5ndSBvIFEuNSkuIA0KDQoiWHUiIG5oYW5oLi4uDQoNCk5odW5nIDMgbmFt IHRydW9jIGRheSwgb25nIEh1YW5nIFBhbyBUenUgbGEgbmd1b2kgZHVhIGRvbiB0byBjYW8gZGVu IEMxNUIsIG5vaSByYW5nIA0Kb25nIG5obyBvbmcgTWluaCBkdW5nIHRlbiBDb25nIHR5IFROSEgg UXVhbmcgSHVuZyBuaHVuZyBvbmcgTWluaCBkYSB0dSB5IGJhbiANCmhvYSBkb24gdGFpIGNoaW5o IGNoaWVtIGRvYXQgaGFuZyB0aSBkb25nIHJvaSB0dXllbiBibyBDb25nIHR5IFF1YW5nIEh1bmcg bGEgY3VhIG1pbmguIA0KDQpTYXUga2hpIHRodSBseSB2dSBraWVuLCB4ZXQgdGhheSB2aWVjIGFw IGR1bmcgY2FjIGJpZW4gcGhhcCBraGFuIGNhcCB0YW0gdGhvaSBsYSBjYW4gdGhpZXQgDQpkZSBi YW8gdG9hbiB0aW5oIHRyYW5nIGhpZW4gY28sIHRyYW5oIGdheSB0aGlldCBoYWkga2hvbmcgdGhl IGtoYWMgcGh1YyBkdW9jIHZhIGRlIGRhbSANCmJhbyBjaG8gdmllYyB0aGkgaGFuaCBhbiBzYXUg bmF5LCBUQU5EIFRQLkhDTSBkYSByYSBxdXlldCBkaW5oICJBcCBkdW5nIGJpZW4gcGhhcCANCmto YW4gY2FwIHRhbSB0aG9pIiBub2kgdHJlbi4gTmdheSAyMS4xMCwgbmd1b24gdGluIHR1IEN1YyBU aGkgaGFuaCBhbiBkYW4gc3UgVFAuSENNIA0KY2hvIGJpZXQsIGNvIHF1YW4gbmF5IGRhIGNvIHZh biBiYW4gZ3VpIGRlbiBTbyBUdSBwaGFwLCBTbyBLZSBob2FjaCAtIERhdSB0dSwgY2FjIA0KcGhv bmcgY29uZyBjaHVuZy4uLiBkZSB0aGkgaGFuaCBxdXlldCBkaW5oIGN1YSBUQU5EIFRQLkhDTS4g DQoNCkRvbiB0byBjYW8gZGUgbmdheSA1LjMuMjAwNyB0aGkgdmFvIGN1bmcgbmdheSBDMTVCIGRh IHRodSBseSBnaWFpIHF1eWV0IHZhIGNodWEgZGF5IDIwIA0KbmdheSBzYXUgZGEgY28ga2V0IHF1 YS4gQ3UgdGhlIGxhIG5nYXkgMjIuMy4yMDA3LCAyIGRpZXUgdHJhIHZpZW4gTGUgWHVhbiBOYW0g dmEgTGUgDQpUaGFuaCBIdW5nIGN1YSBQaG9uZyAxMCAtIEMxNUIgZGEgbGFwIGR1b2MgYmllbiBi YW4gdm9pIG5vaSBkdW5nOiBvbmcgTWluaCB0cmEgbGFpIA0KQ29uZyB0eSBRdWFuZyBIdW5nIGNo byBvbmcgSHVhbmcgUGFvIFR6dSB2YSBvbmcgbmF5IHRyYSBsYWkgY2hvIG9uZyBNaW5oIDEsNiB0 aSANCmRvbmcuIA0KDQpTYXUgZG8gMiBuZ2F5LCBjdW5nIGR1b2kgc3UgY2h1bmcga2llbiBjdWEg ZGlldSB0cmEgdmllbiBjYW8gY2FwLCBvbmcgTWluaCB2YSBjYWMgdGhhbmggDQp2aWVuIGNvbmcg dHkgZGF0IGJ1dCBreSBsdW9uIGJpZW4gYmFuIHRob2EgdGh1YW4gY2h1eWVuIG5odW9uZyBDb25n IHR5IFF1YW5nIEh1bmcgDQpjaG8gMiBjYSBuaGFuIGtoYWMgdGhlbyBzdSBjaGkgZGFvIGN1YSBv bmcgSHVhbmcgUGFvIFR6dS4gVHV5IG5oaWVuIHNhdSBkbyBvbmcgSHVhbmcgDQpQYW8gVHp1IGto b25nIHRyYSBvbmcgTWluaCAxLDYgdGkgZG9uZyB2YSBvbmcgTWluaCBjdW5nIGtob25nIGtob2kg a2llbiBvbmcgSHVhbmcgDQpQYW8gVHp1IGRvaSBzbyB0aWVuIGF5LiBNYSBvbmcgTWluaCwgdm9p IHR1IGNhY2ggbGEgQ2h1IHRpY2ggSG9pIGRvbmcgdGhhbmggdmllbiBraWVtIA0KR2lhbSBkb2Mg Q29uZyB0eSBRdWFuZyBIdW5nIGNoaSBwaGF0IGRvbiB0byBjYW8gZGVuIFZpZW4gS1NORCB0b2kg Y2FvLCBuZXUgZGljaCANCmRhbmggY2FuIGJvIGRpZXUgdHJhIGRhIGxhbSBkdW5nIGNodWMgdnUg cXV5ZW4gaGFuIGNhdSBrZXQgdm9pIG9uZyBIdWFuZyBQYW8gVHp1IA0KY2hpZW0gZG9hdCBDb25n IHR5IFF1YW5nIEh1bmcgY3VhIGdpYSBkaW5oIG9uZy4NCg0KQ2hpIGxhIGFuIGRhbiBzdSANCg0K VGllbiBoYW5oIHhhYyBtaW5oIGRvbiB0byBjYW8gY3VhIG9uZyBNaW5oLCBDUURUIGN1YSBWaWVu IEtTTkQgdG9pIGNhbyB4YWMgZGluaCANCmxhbmggZGFvIEMxNSBnaWFvIGNobyBQaG9uZyAxMCAt IEMxNUIgZGlldSB0cmEgZG9uIGN1YSBIdWFuZyBQYW8gVHp1IHRvIGNhbyBvbmcgDQpNaW5oIGxh IGNvIGNhbiBjdS4gVHV5IG5oaWVuLCBxdWEgdHJpbmggeGFjIG1pbmggZGEgeGFjIGRpbmggZHVv YyBkYXkgbGEgbW90IHZ1IHRyYW5oIA0KY2hhcCB2ZSBtYXQgZGFuIHN1LCB0cmFuaCBjaGFwIHZl IHF1eWVuIHNvIGh1dSBjb25nIHR5IHRoaSBsZSByYSBwaGFpIGNoYW0gZHV0IHZpZWMgeGFjIA0K bWluaCB2YSBjaHV5ZW4gdG9hbiBibyBobyBzbyBjdWEgdnUgdmllYyBkZW4gVEFORCBUUC5IQ00g Z2lhaSBxdXlldC4gDQpOaHVuZyBjYWMgb25nIExlIFh1YW4gTmFtIHZhIExlIFRoYW5oIEh1bmcg bGFpIGxhcCBiaWVuIGJhbiBsYW0gdmllYyBsdWMgMTUgZ2lvIDMwIA0KbmdheSAyMi4zLjIwMDcg Z2l1YSBjYWMgYmVuIGR1b25nIHN1IHZvaSBuaGF1ICh0aHVjIGNoYXQgZGF5IGxhIGJpZW4gYmFu IGhvYSBnaWFpKS4gQmllbiANCmJhbiBuYXkgY3VuZyBraG9uZyBjbyBtYXQgbmh1bmcgbmd1b2kg dGhhbSBnaWEgZ29wIHZvbiB2YW8gQ29uZyB0eSBUTkhIIFF1YW5nIA0KSHVuZyBkYSBkdW9jIFNv IEtlIGhvYWNoIC0gRGF1IHR1IHZhIFVCTkQgVFAuSENNIHhhYyBuaGFuIHRyb25nIHRodSB0dWMg cGhhcCBseSANCmN1YSBjb25nIHR5LCBtYSBjaGkgY28gbW90IG1pbmggb25nIE1pbmggZGFpIGRp ZW4uICJIb24gbnVhIHZlIGNodWMgbmFuZywgbmhpZW0gdnUgDQpjdWEgUGhvbmcgMTAgLSBDMTVC IGxhIFBob25nIGRpZXUgdHJhIGNhYyB0b2kgcGhhbSB2ZSB0byB0dW5nIHRyb25nIGxpbmggdnVj IGtpbmgga2UuIA0KRG8gdmF5IHZpZWMgbGFtIHRyZW4gY3VhIGNhbiBibyBQaG9uZyAxMCAtIEMx NUIgbGEgdHJhaSB2b2kgY2h1YyBuYW5nIG5oaWVtIHZ1Iiwga2V0IA0KbHVhbiBjdWEgQ1FEVCBu ZXUgcm8uDQoNCkNRRFQga2V0IGx1YW4gdmllYyBvbmcgTWluaCB0byBjYW8gY2FjIG9uZyBMZSBY dWFuIE5hbSB2YSBMZSBUaGFuaCBIdW5nICgyIGRpZXUgdHJhIA0KdmllbiBjdWEgUGhvbmcgMTAg LSBDMTVCKSBsYW0gZHVuZyBjaHVjIHZ1LCBxdXllbiBoYW4gbGEgZHVuZyB2YSBjbyBjYW4gY3Uu IE5odW5nIA0KcXVhIHRyaW5oIHhhYyBtaW5oIGNodWEgeGFjIGRpbmggZHVvYyBkb25nIGNvIHZ1 IGxvaSBoYXkgdmkgZG9uZyBjbyBjYSBuaGFuIGtoYWMgDQpuZW4gY2hpIGtpZW4gbmdoaSBCbyBD b25nIGFuIHh1IGx5IGt5IGx1YXQgdmUgbWF0IGhhbmggY2hpbmggZG9pIHZvaSBoby4gRG9uZyB0 aG9pLCANCkNRRFQgY3VuZyBkZSBuZ2hpIG9uZyBNaW5oIHRpZW4gaGFuaCB0aHUgdHVjIGtob2kg a2llbiBvbmcgSHVhbmcgUGFvIFR6dSBkZW4gVEFORCBUUC5IQ00gZGUgZGFtIGJhbyBxdXllbiBs b2kgY3VhIG1pbmguIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8y MDEwNDMvMjAxMDEwMTgwMTEzMTAuYXNweCBUaGFuaCBUdW5nIDE4LzEwLzIwMTAgMToxMyANCg0K Q29uZyBhbjogRHVvbmcgZGF5IGxheSB4YWMgbyBiZW5oIHZpZW4/IC0gVGh1IHR1YyAiaGFuaCBj aGluaCIgIA0KICANCkdpYSBkaW5oIG1vdCBWaWV0IGtpZXUgQ2FuYWRhIHJhdCBidWMgeHVjIGNo byByYW5nIGhvIGJpIGdvaSB5IGNoaSA2LjUwMCBVU0QgZGUgbGF5IA0KeGFjIG5ndW9pIHRoYW4g dHUgdm9uZyB0YWkgYmVuaCB2aWVuLCBraGkga2hvbmcgZGFwIHVuZyB0aGkgYmkgbGFtIGtoby4u LiANCg0KR29pIHkgdHJhbmcgdHJvbiENCg0KRGVtIDguOSwgb25nIEguVC5OIChzaW5oIG5hbSAx OTUzLCBWaWV0IGtpZXUgQ2FuYWRhLCB0YW0gdHJ1IFEuNCwgVFAuSENNKSBsZW4gY29uIA0Kbmhv aSBtYXUgY28gdGltLCBkdW9jIGR1YSB2YW8gY2FwIGN1dSBvIG1vdCBiZW5oIHZpZW4gKEJWKSB0 YWkgUS4yLiBCYWMgc2kgeGFjIGRpbmggDQpvbmcgSC5ULk4gdHUgdm9uZyB0cnVvYyBraGkgdmFv IHZpZW4uIA0KDQpUaGVvIHBoYW4gYW5oIGN1YSBnaWEgZGluaCBvbmcgTi4sIG5nYXkgc2F1IGto aSBvbmcgTi4gdHUgdm9uZywgY28gbW90IGNhbiBibyBDb25nIGFuIA0KUS4yLCB0ZW4gRC4sIHZh byBsYW0gdmllYyB2b2kgQlYgdmEgY28gaG9pIHF1YSBnaWEgZGluaCB2ZSB0aWVuIHN1IGJlbmgg Y3VhIG9uZyBOLiBPbmcgDQpELiBiYW8gdm9pIG5ndW9pIG5oYSBvbmcgTi4gY2hvIGNobyB4YWMg cXVhIEJWIFEuNywgcXVhIGRvIHNlIGNvIG5ndW9pIGh1b25nIGRhbiBkYXkgDQpkdSB2ZSB0aHUg dHVjIHRyaW5oIGJhbyB2YSBsYW0gY2FjIGJ1b2MgdGllcCB0aGVvIGRvaSB2b2kgbmd1b2kgbnVv YyBuZ29haSBtYXQgdGFpIFZOLi4uDQoNClNhdSBkbywgbW90IGNoaWVjIHhlIGR1b2MgZGlldSB0 b2kgdHUgYmVuIG5nb2FpIChraG9uZyBwaGFpIHhlIEJWKSBkZSBjaG8geGFjIG9uZyBOLiANCmRl biBCViBRLjcsIGRpIHRoZW8geGUgY29uIGNvIGhhaSBuZ3VvaSBkYW4gb25nLiBIYWkgbmd1b2kg bmF5IGRhdCB2YW4gZGUgdmUgdmllYyBsYW0gDQp0aHUgdHVjIHRyb24gZ29pIGRlIGxheSB4YWMg b25nIE4uIHJhIHZvaSAzIG11YyBnaWE6IDQuNTAwIC0gNS41MDAgLSA2LjUwMCBVU0QgKGtob25n IA0KYmFvIGdvbSB0aWVuIGRhdCBtbykgdmEga2hhbmcgZGluaCAidHJvbmcgbW90IG5nYXkgbGEg eG9uZyB0YXQiLi4uDQoNCkJhbiBkYXUsIGNvbiBnYWkgb25nIE4uIG8gbnVvYyBuZ29haSBnb2kg dmUgZG9uZyB5IHZvaSBnaWEgNi41MDAgVVNELCBuaHVuZyBzYXUgZG8gDQpwaGlhIGdpYSBkaW5o IG9uZyBiYW4gYmFjIHZhIGtob25nIGNoYXAgbmhhbiB2aWVjIGxvIGRpY2ggdnUgdm9pIG1vdCBj YWkgZ2lhIHF1YSBjYW8gDQpuaHUgdGhlLiAiQ28gbGUgdmkgY2h1bmcgdG9pIGtob25nIGNoYXAg dGh1YW4gZGljaCB2dSBsYXkgeGFjIGR1b2MgdGluaCBiYW5nIFVTRCBjYW8gDQpjaG90IHZvdCBk bywgbmVuIHNhdSBkbyBkYSBiaSBnYXkga2hvIGtoYW4sIGtlbyBkYWkgdGhvaSBnaWFuIGR1b2Mg bmhhbiB4YWMiLCBuZ3VvaSB0aGFuIA0Kb25nIE4uIHRyaW5oIGJheSB2b2kgVGhhbmggTmllbi4N Cg0KQmkgbGFtIGtobz8NCg0KVGhlbyBuaGlldSBiYWMgc2kgbGFtIGxhdSBuYW0gbyBraG9hIGNh cCBjdXUgY2FjIEJWLCB2b2kgbmh1bmcgdHJ1b25nIGhvcCB0dSB2b25nIA0Ka2hvbmcgcm8gbmd1 eWVuIG5oYW4sIGNvIG5naGkgbmdvLCB0aGkgY28gcXVhbiBjb25nIGFuIHNlIHRodSBseSwgbGFt IHJvLiBUdXkgbmhpZW4sIA0KdGh1b25nIGxhIGdpYWkgcXV5ZXQgbmdheSB0cm9uZyBuZ2F5IChr ZSBjYSBjbyBnaWFpIHBoYXUgdHUgdGhpKSwgY2h1IGtob25nIGRlIGtlbyBkYWkuLi4gDQoNCkdp YSBkaW5oIG9uZyBOLiBjaG8gcmFuZyBvbmcgRC4ga2hvbmcgdGFuIHRpbmggaHVvbmcgZGFuIHJv IHJhbmcgdmUgdGh1IHR1YyBkZSBuaGFuIA0KeGFjLCBtYSBjbyB0aW5oIGxhbSBrZW8gZGFpIHRo b2kgZ2lhbiwgZGFuIGRlbiAgdmllYyBvbmcgTi4gbWF0IG5nYXkgOC45IG5odW5nIG1haSBkZW4g DQpkZW0gMTMuOSBnaWEgZGluaCBtb2kgZHVhIGR1b2MgeGFjIG9uZyB2ZSBkZSBtYWkgdGFuZy4g DQoNCiJTYXUga2hpIGNodW5nIHRvaSBraG9uZyBkb25nIHkgbGFtIGRpY2ggdnUgNi41MDAgVVNE LCBvbmcgRC4gY28gaGVuIGdpYSBkaW5oIGRhdSBnaW8gDQpjaGlldSA5LjkgbGVuIFVCTkQgUC5U aGFvIERpZW4gKFEuMiksIGNvbiBvbmcgRC4gZGVuIENvbmcgYW4gUC5UaGFvIERpZW4gbGF5IGNh YyANCmdpYXkgdG8gbGllbiBxdWFuLCByb2kgaGFpIGJlbiBnYXAgbmhhdSBvIFVCTkQgcGh1b25n IGRlIGxhbSBiYW8gdHUuIE5odW5nIGRlbiAxNCANCmdpbyBuZ2F5IDkuOSwgY2h1bmcgdG9pIGdv aSBkaWVuIHRoaSBkaWVuIHRob2FpIG9uZyBELiB0YXQgbWF5LiBMdWMgMTQgZ2lvIDMwIGdvaSBk dW9jIHRoaSANCm9uZyBELiBsYWkgYmFvIGdpYSBkaW5oIGN1IGxlbiBDb25nIGFuIFAuVGhhbyBE aWVuIHhpbiBibyBobyBzbyBwaG90byByb2kgY2FtIHRoYW5nIGxlbiANClVCTkQgcGh1b25nLiBP bmcgRC4gY28gbm9pOiAiQ3UgbGFtIHRodSBkaSwgY29pIGNvIGR1b2Mga2hvbmc/IiwgbWEgc2F1 IG5heSBjaHVuZyANCnRvaSBtb2kgaGlldSBkdW9jIG5ndSB5IGN1YSBjYXUgbm9pIG5heS4gTHVj IGRvLCBuZ2hlIHRoZW8gbG9pIG9uZyBELiwgY2h1bmcgdG9pIGxlbiANCkNvbmcgYW4gUC5UaGFv IERpZW4geGluIGJvIGhvIHNvIHBob3RvIHRoaSBjb25nIGFuIHBodW9uZyBiYW8ga2hvbmcgZHVv YyB2aSB0aGVvIHF1eSANCmRpbmggcGhhaSBkaWNoIHRoYW4gb25nIEQuIGxhIG5ndW9pIHRydWMg dGllcCB0aHUgbHkgdnUgdmllYyBtb2kgbGF5IGR1b2MuIFZpIGNhbiBibyBjb25nIA0KYW4gcGh1 b25nIHNhdSBraGkgZ2lhaSB0aGljaCBjdW5nIGxheSBsYW0gbGEgdmUgY2FjaCBodW9uZyBkYW4g Y3VhIG9uZyBELiBDaHVuZyB0b2kgZ29pIA0KbGFpIGNobyBvbmcgRC4gdGhpIG5oYW4gZHVvYyBj YXUgdHJhIGxvaSAic2FuZyBtYWkgbGVuIENvbmcgYW4gUS4yISIuIFNhbmcgY2hpZXUgaG9tIA0K c2F1ICgxMC45LCB0dWMgdGh1IHNhdSksIGNodW5nIHRvaSBsZW4gTGFuaCBzdSBxdWFuIENhbmFk YSBsYW0gdGh1IHR1Yywgbmh1bmcgcm9pIHZhbyANCmN1b2kgdHVhbiwgY28gcXVhbiBuYXkgbmdo aSwgZGVuIHRodSBoYWkgbmdheSAxMy4xMCBtb2kgbGFtIHZpZWMgbGFpIiwgbmd1b2kgbmhhIG9u ZyBOLiANCnRodWF0IGxhaS4NCg0KVmEga2UgdGllcDogIkRlbiBuZ2F5IDEyLjksIHF1YSBkaWVu IHRob2FpLCBjaHVuZyB0b2kgY28gbm9pIHZvaSBvbmcgRC4gcmFuZyBuZ2F5IG1haSANCjEzLjkg Y2h1bmcgdG9pIGRlbSBkZW4gY2FjIGdpYXkgdG8gbGllbiBxdWFuIGRlIGR1YSB4YWMgdmUuIE5o dW5nIG9uZyBELiB0cmEgbG9pIG1vdCANCmNhdSB0aGF0IGxhbmggbHVuZzogTmdheSBtYWkga2hv bmcgbGF5IHhhYyBkdW9jLCB2aSB0b2kgbmdoaSBkdWEgdm8gZGkga2hhbSBiZW5oLiBIb20gDQpu YXkgbGEgbmdheSB0cnVjIGN1YSB0b2ksIG1haSAxMy45IHRvaSBuZ2hpLiBOZ2hlIGNhdSBub2kg ZG8sIGNodW5nIHRvaSBraG9uZyBraW0gbmVuIA0KZHVvYyBidWMgeHVjLCB2YSBwaGFuIHVuZyBs YWk6IE5ldSBhbmggbmdoaSB0aGkgY29uZyBhbiBxdWFuIHBoYWkgY28gbmd1b2kga2hhYyB0aGF5 IA0KYW5oIGdpYWkgcXV5ZXQgY29uZyB2aWVjLCB0YWkgc2FvIGNodW5nIHRvaSBwaGFpIHBodSB0 aHVvYyB2YW8gYW5oPyBEZW4gMTUgZ2lvIGNoaWV1IA0KMTMuOSwgY2h1bmcgdG9pIGRlbSBjYWMg Z2lheSB0byBsaWVuIHF1YW4gZGVuIGR1YSBjaG8gb25nIEQuIGRlIGxhbSB0aHUgdHVjIGxheSB4 YWMgdmEgDQprZW0gdGhlbyBsb2kgeGluIGtob25nIGxhbSBnaWFpIHBoYXUgdHUgdGhpLCBjbyBj YSBjb25nIGhhbSBjdWEgTGFuaCBzdSBxdWFuIENhbmFkYSANCmN1bmcgZ2hpIG5ndXllbiB2b25n IGN1YSBnaWEgZGluaCB4aW4ga2hvbmcgZ2lhaSBwaGF1IHR1IHRoaSwgbmh1bmcgb25nIEQuIG5v aSBkYXkgbGEgDQp5ZXUgY2F1LCBjaHUga2hvbmcgcGhhaSBtZW5oIGxlbmgsIHZhIGJhbyBnaWEg ZGluaCBuZ29pIGNobyBkZSBvbmcgZGkgdHJpbmggY2FwIHRyZW4uIA0KDQpDaG8gZGVuIGhvbiAx NyBnaW8ga2hvbmcgdGhheSBnaSwgY2h1bmcgdG9pIGdvaSBjaG8gb25nIEQuIHRoaSBvbmcgbm9p ICIxOSBnaW8gZ2lhIGRpbmggDQpxdWEgQlYgUS43IGRlIGdpYWkgcXV5ZXQgbGF5IHhhYyByYS4u LiIuIFNhdSBkbywgb25nIEQuIGN1bmcgdmFpIG5ndW9pIG51YSBkaSB4ZSBtYXkgZGVuIA0KQlYg US43LiBMdWMgbmF5LCBoYWkgbmd1b2kgZGFuIG9uZyBkYXQgdmFuIGRlIGxvIGRpY2ggdnUgbm9p IHRyZW4gY3VuZyBjbyBtYXQiLiBRdWEgDQpraGUgY3VhIG5oYSB4YWMsIG5odW5nIG5ndW9pIHRo YW4gb25nIE4uIHRoYXkgbW90IHNvIG5ndW9pIGN1YSBzbywgbG9uZyBuZ3VjLCBwaGFuIA0KYnVu ZyBjdWEgb25nIG5lbiB0YSBob2EgZGllbiB0aG9haSB2YW8gdHJvbmcgY2hvIG9uZyBELiBkZSBw aGFuIHVuZyB2ZSB2aWVjIHRhaSBzYW8gZ2lhaSANCnBoYXUgdHUgdGhpIG1hIGtob25nIGNvIG1v dCBsb2kgdGhvbmcgYmFvIG5hbyBjaG8gZ2lhIGRpbmg/IE5odW5nIHJvaSB4YWMgb25nIE4uIHZh biANCmR1b2MgZ2lhaSBwaGF1IGNob25nIHZhbmguIERvIHZheSwgdHJvbmcgYmllbiBiYW4gZ2lh byBuaGFuIHhhYywgZ2lhIGRpbmggb25nIE4uIGNvIGdoaSANCnkga2llbiBsYSAiWGFjIGRhIGR1 b2MgZ2lhaSBwaGF1IGtoaSBraG9uZyBjbyBzdSB0aG9uZyBiYW8gY3VhIGRhaSBkaWVuIGNvbmcg YW4sIHBoYXAgDQp5Ii4NCg0KRHVvbmcgZGF5Pw0KDQpLaG9uZyBjaGkgYnVjIHh1YyB2ZSB0aGFp IGRvIGN1YSBvbmcgRC4sIGdpYSBkaW5oIG9uZyBOLiBjb24gZGF0IG5naGkgbmdvIGdpdWEgb25n IEQuIA0KdmEgaGFpIG5ndW9pIGRhbiBvbmcgdGhlbyBnb2kgeSAibG8gbGF5IHhhYyB0cm9uIGdv aSIgY28gImRheSBtbyIgbGllbiBxdWFuIGRlbiBuaGF1LiANCiJUYWkgc2FvIG9uZyBELiBsYWkg eWV1IGNhdSBkdWEgeGFjIG5ndW9pIG5oYSBjaHVuZyB0b2kgcXVhIG5oYSB4YWMgQlYgUS43LCB0 cm9uZyBraGkgDQpnaWEgZGluaCBtdW9uIGR1YSBxdWEgQlYgRlYgKGNvIGRlIGRhdCB0cnVjIHRp ZXAgdm9pIG9uZyBELiwgbmh1bmcgb25nIEQuIGtodXllbiBsYSANCmdpbyBuYXkgY2hhYyBiZW4g RlYgY2hhdCBjaG8pPyBWaSBzYW8ga2hpIHhlIGR1b2MgZGlldSBkZW4gZGUgZHVhIHhhYyBkaSB0 aGkgY28gY2EgaGFpIA0Kbmd1b2kgZGFuIG9uZyBub2kgdHJlbiBkaSB0aGVvIGdvaSB5IHZlIGRp Y2ggdnUgdHJvbiBnb2k/IE9uZyBELiBub2kgdm9pIGdpYSBkaW5oOiAiUXVhIA0KQlYgUS43IHNl IGNvIG5ndW9pIGh1b25nIGRhbiBkYXkgZHUgdmUgdGh1IHR1YyIsIG5odW5nIGtoaSBzYW5nIG5o YSB4YWMgQlYgUS43IHRoaSANCmNoaW5oIGhhaSBuZ3VvaSBkYW4gb25nIGxhbSBkaWNoIHZ1IG5v aSB0cmVuIGdhcCBjaHVuZyB0b2ksIGNodSBraG9uZyBjbyBhaSBraGFjIGh1b25nIA0KZGFuPyBW aSBzYW8gZGVtIDExLjkgKGx1YyBkYSBuZ29haSAyMiBnaW8pLCBtb3Qgbmd1b2kgdHJvbmcgZ2lh IGRpbmggY2h1bmcgdG9pIGNvIGN1b2MgDQpnb2kgbmhvIHR1IGRpZW4gdGhvYWkgb25nIEQuLCB0 aGkgbmdheSB0aWVwIHNhdSBkbyBoYWkgbmd1b2kgZGFuIG9uZyBnb2kgeSBsYW0gZGljaCB2dSBu b2kgDQp0cmVuIGN1bmcgZ29pIHZhbyBtYXkgY2hpbmggbmd1b2kgdGhhbiBuYXkgZGUgdGllcCB0 dWMgaG9pIHZlIHZ1IHZpZWMuIEtoaSBkbywgZ2lhIGRpbmggDQpkYSBwaGFuIHVuZyBtYW5oIHZv aSBoYWkgbmd1b2kgZGFuIG9uZzogTWF5IGFuaCBtdW9uIGdpdSB4YWMgZGVuIGJhbyBnaW8gdGhp IGdpdSBkaS4uLiANCnZhIHF1YSBzYW5nIGhvbSBzYXUgMTIuOSwgZ2lhIGRpbmggbGllbiBuaGFu IGR1b2Mgc3UgbGFuaCBsdW5nIHR1IG9uZyBELiIsIGRhaSBkaWVuIGdpYSANCmRpbmggb25nIE4u IG5ldSBoYW5nIGxvYXQgbmdoaSB2YW4uIA0KDQpDaHVuZyB0b2kgZGVtIG5odW5nIGJ1YyB4dWMg Y3VhIG5ndW9pIHRoYW4gb25nIE4uIGRlbiBsYW0gdmllYyB2b2kgQ29uZyBhbiBRLjIuIE9uZyAN Ck5ndXllbiBWYW4gVHVlLCBEb2kgdHJ1b25nIERvaSBkaWV1IHRyYSB0b25nIGhvcCBDb25nIGFu IFEuMiwgbm9pOiAiUXVhIGRvbiBwaGFuIA0KYW5oIGNobyB0aGF5IGdpYSBkaW5oIG9uZyBOLiBy YXQgYnVjIHh1Yy4gVm9pIHRydW9uZyBob3AgY3VhIG9uZyBILlQuTiwgdmUgbmd1eWVuIHRhYyAN CmNhbiBnaWFpIHBoYXUgdHUgdGhpIGRlIGxhbSBybyBuZ3V5ZW4gbmhhbiBjYWkgY2hldCwgdmkg b25nIGNoZXQgY2h1YSBybyBuZ3V5ZW4gbmhhbi4gDQpOaHVuZyBuZXUgZHVuZyBuaHUgbmh1bmcg Z2kgZ2lhIGRpbmggb25nIE4uIHBoYW4gYW5oIHZlIHRoYWkgZG8gbGFtIHZpZWMgY3VhIGNhbiBi byANCmNvbmcgYW4gbGllbiBxdWFuIHRoaSBraG9uZyB0aGUgZHVvYy4gQ2h1bmcgdG9pIHhpbiBw aG90byBsYWkgZG9uIHBoYW4gYW5oLCB2aSB0aGVvIHRvaSwgDQp2dSB2aWVjIG5heSBjYW4gcGhh aSBiYW8gY2FvIGNhcCB0cmVuIGRlIGxhbSBybyIuIA0KDQpWZSBuZ3V5ZW4gdGFjIGdpYWkgcXV5 ZXQgbGF5IHhhYywgb25nIFR1ZSBub2k6ICJWb2kgbmh1bmcgdHJ1b25nIGhvcCBuaHUgdGhlIG5h eSwgDQpjaHVuZyB0b2kgZ2lhaSBxdXlldCB0cmVuIHRpbmggdGhhbiBuaGFuaCBuaGF0LCBzb20g bmhhdCwgdmkgdGFtIGx5IGdpYSBkaW5oIG5ndW9pIGNoZXQgbHVjIA0KbmF5IHJhdCBtdW9uIGR1 b2MgZHVhIHhhYyBuZ3VvaSB0aGFuIHZlIG5oYSwgZGUgbG8gYW4gdGFuZywgY2hvbiBjYXQiLiAN Cg0KVmUgdmllYyBvbmcgY29uZyBhbiBELiB5ZXUgY2F1IG5ndW9pIG5oYSBvbmcgTi4gdHUgZGVu IENvbmcgYW4gUC5UaGFvIERpZW4gbGF5IGdpYXkgDQp0bywgY2EgY2FuIGJvIGNvbmcgYW4gcGh1 b25nIG5heSB2YSBvbmcgVHVlIGRldSBraGFuZyBkaW5oIHRoZW8gcXV5IGRpbmggbmd1b2kgbmhh IA0KbmFuIG5oYW4ga2hvbmcgdGhlIHR1IGRpIGxheSBkdW9jLiANCg0KaHR0cDovL3d3dy50aGFu aG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIwMTAxMDIyMTkxNjQ0LmFzcHggQmFuIENU QkQgKHRvbmcgaG9wKSAyMi8xMC8yMDEwIDE5OjE2IA0KDQpDb25nIGFuOiBQaGFpIHh1IGx5IG5n aGllbSBjYW4gYm8gdmkgcGhhbSAgDQoNCkRvIGxhIHkga2llbiBjdWEgYmFuIFBoYW0gSG9hbmcg UGh1b25nIChob2FuZ3BodW9uZy4uLkBnbWFpbC5jb20pIHZhIGN1bmcgbGEgDQp0aWVuZ25vaSBj aHVuZyBjdWEgc28gZG9uZyBuaHVuZyBuZ3VvaSBraGFjIHNhdSBraGkgZG9jIGJhaSBEdW9uZyBk YXkgbGF5IHhhYyBvIGJlbmggdmllbj8gDQpkYW5nIHRyZW4gVGhhbmggTmllbiBuZ2F5IDE4LjEw LiANCg0KTmdoaWEgdHUgbGEgbmdoaWEgdGFuIQ0KDQpUb2kga2hvbmcgbmdvIHRodSB0dWMgbGF5 IHhhYyB0aGFuIG5oYW4gYmkgY2hldCBsYWkgbmhpZXUga2hlIGRlbiB0aGUsIGxhaSBjb24gYmkg Z2lhaSBwaGF1IA0KdHUgdGhpIGtoaSB0aGFuIG5oYW4ga2hvbmcgZHVvYyB0aG9uZyBiYW8gdmEg Y2h1bmcga2llbi4gTWF0IG5ndW9pIHRoYW4sIG5ndW9pIG5oYSBkYXUgDQp4b3QgbGFtLCBhaSBj dW5nIG1vbmcgbXVvbiBkdW9jIGRlbSB0aGkgaGFpIHZlIGRlIGNob24gY2F0IGJvaSBuZ2hpYSB0 dSBsYSBuZ2hpYSB0YW4sIA0KdGhlIG1hIG9uZyBELiB2YSBtb3Qgc28gImNvIiB2aSBsb2kgbmh1 YW4gbWEgbGFtIHZpZWMgbWF0IGhldCBuaGFuIHRpbmg6IGNvIHRpbmggZ2l1IHhhYyANCmRlIGtp ZW0gY2hhYy4gVG9pIG1vbmcgaGFuaCB2aSB4YXUgbmF5IGNhbiBkdW9jIG5naGllbSB0cmkgZGUg bmd1b2kgY2hldCBkdW9jIHllbiB2YSANCm5ndW9pIHRoYW4gY3VhIGhvIGRvIGRhdSBob24uDQpE YW0gVGhpIFh1YW4gVXllbiAoTGUgVGhpIEhvbmcgR2FtLCBQLjYsIFRQIE15IFRobykNCg0KS2ll bSB0aWVuIGRvYyBhYw0KDQpEb2MgYmFpIGJhbyBuYXkgdG9pIHZvIGN1bmcgYnVjIHh1YyB2ZSB0 aGFpIGRvIGxhbSB2aWVjIGN1YSBvbmcgRC4gRGF0IG51b2MgbWluaCBzZSANCmtob25nIGJhbyBn aW8gbGEgbW90IGhpbmggYW5oIGRlcCB0cm9uZyBtYXQgY3VhIG5odW5nIG5ndW9pIHhhIHh1IG5l dSBjbyBuaHVuZyBuZ3VvaSANCm5odSBvbmcgRC4gQmFuIHRoYW4gb25nIEQgbGEgY2FuIGJvIHRo b2FpIGhvYSBiaWVuIGNoYXQsIHZheSBtYSBjaHVuZyB0YSBraG9uZyB4dSBseSANCmR1b2Mgc2Fv PyBLaG9uZyBiaWV0IGRlbiBiYW8gZ2lvIG1vdCBzbyBwaGFuIHR1IHhhdSwgYmllbiBjaGF0IG1v aSBoZXQgY2FpIHRybyBraWVtIHRpZW4gDQpkb2MgYWMgbmF5Pw0KTmd1eWVuIFRodSBIdW9uZyAo aHVvbmduZ3V5ZW44ODdAZ21haWwuY29tKSANCg0KVmFpIHRybyBjdWEgYmVuaCB2aWVuIHJhIHNh bz8NCg0KVmFpIHRybyBjdWEgYmVuaCB2aWVuIChCVikgbyBkYXUgdHJvbmcgbmh1bmcgc2FpIHBo YW0gY3VhIG9uZyBELiwgcGhhaSBjaGFuZyBjYWMgQlYgDQpuYXkgY3VuZyB0aWVwIHRheSBkZSBv bmcgRCBsYW0gdGllbiBuZ3VvaSBuaGEgb25nIE4gPyBUaGVvIHRvaSBiaWV0LCBraG9uZyBjaGkg bmd1b2kgDQpuaGFuIHRoaSBoYWkgIFZpZXQga2lldSBiaSBoYW5oIGhhIG1hIHR1IGxhdSBuYXks IHZpZWMgbmhhbiB4YWMgY3VhIG5ndW9pIHRyb25nIG51b2MgbyANCmNhYyBCViBjdW5nIGxhbSBu aGlldSBraGUsIHJhYyByb2ksIG5ndW9pIG5oYSBjdW5nIGJpIGhhbmggaGEuIE5hbSBiYXQgdGFt IGx5IG5vbmcgDQpsb25nIGR1YSBuZ3VvaSBuaGEgdmUgYW4gdGFuZyBuZW4gbmh1bmcga2Ugdm8g bHVvbmcgdGFtIHRodW9uZyAibGFtIHRpZW4iIHRoYW4gbmhhbiANCm5ndW9pIGNoZXQuIE5odW5n IGhhbmggdmkgbmF5IGRhIGJpIHhhIGhvaSBsZW4gYW4sIGJ1YyB4dWMgdHUgbGF1IG5odW5nIHZh biB0b24gdGFpLiBCbyANClkgdGUsIGNhYyBTbyBZIHRlIGNhbiB4ZW0geGV0IGxhaSB2aWVjIG5h eS4gDQpNaW5oIEhhICggUC5UaGFvIERpZW4sIFEuMiwgVFAuSENNKSANCg0KTGFtIG1hdCB1eSB0 aW4gbmdhbmggY29uZyBhbg0KDQpOZXUgZHVuZyBkYXkgbGEgc3UgdGhhdCB0aGVvIG5odSBwaGFu IGFuaCBjdWEgZ2lhIGRpbmggbmd1b2kgcXVhIGNvIHRoaSBsb2FpIGNoaW0gImtlbiANCmtlbiIg bmF5IGNhbiBwaGFpIGJpIG5naGllbSB0cmkgdGhpY2ggZGFuZy4gT25nIGJhIHRhIGNvIGNhdTog Ik5naGlhIHR1IGxhIG5naGlhIHRhbiIuIA0KS2hvbmcgYmlldCB2aSBjYW4gYm8gbmF5IG5ldSBn YXAgdHJ1b25nIGhvcCBuZ3VvaSB0aGFuIGN1YSBtaW5oIHRyb25nIGhvYW4gY2FuaCB0dW9uZyAN CnR1IHNlIG5naGkgc2FvPyBUb2kgZGUgbmdoaSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgcGhhaSBs YW0gZGVuIG5vaSBkZW4gY2hvbiB2dSBuYXkuIA0KTmV1IGtob25nIGdpYWkgcXV5ZXQgcm90IHJh byB0aGkgdGluaCB0cmFuZyBuYXkgc2UgY29uIHRpZXAgZGllbiwgbGFtIG1hdCB1eSB0aW4gY3Vh IA0KbmdhbmggY29uZyBhbiwgbGFtIG1hdCBkaSB0aW5oIG5oYW4gdmFuIGN1YSBuZ3VvaSBWaWV0 Lg0KTmd1eWVuIFh1YW4gSG9hdCAoaG9hdG5ndXllbmJkQGdtYWlsLmNvbSkgIA0KDQpodHRwOi8v d3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vMjAxMS8wNC8xMTA0MjhfdmlldF9kZWF0 aC5zaHRtbCAxMTozOCBHTVQgLSAyOC80LzIwMTEgDQoNCkFOVFQ6IFZ1IGNoZXQgbmd1b2kgbyBC aW5oIER1b25nOiBDQSAnZ2EgdGluaCc/IA0KDQpodHRwOi8vbGFvZG9uZy5jb20udm4vVGluLVR1 Yy9EYXUtaGlldS1iYXQtdGh1b25nLXRyb25nLXZ1LW5hbi1uaGFuLWNoZXQtdGFpLW5oYS10YW0t Z2l1LzQxMjk5IFRoZW8gVGhhbmggTmllbiAyOS40LjIwMTEgMTA6MzkgKEdNVCArIDcpIA0KDQpB TlRUOiBOYW4gbmhhbiBjaGV0IHRhaSBuaGEgdGFtIGdpdSAtIE5odW5nIGRhdSBoaWV1IGJhdCB0 aHVvbmcgDQoNCk5nYXkgMjguNCwgQ29uZyBhbiBCaW5oIER1b25nIHRpZXAgbmhhbiBkb24ga2hp ZXUgbmFpIGN1YSBnaWEgZGluaCBuYW4gbmhhbiwgZGUgbmdoaSANCmxhbSBybyBjYWkgY2hldCBj dWEgYW5oIE5ndXllbiBDb25nIE5odXQgKFNOIDE5NzgsIHF1ZSBUaWVuIEdpYW5nKSB0YWkgdHJ1 IHNvIENvbmcgYW4gDQpILkJlbiBDYXQ7IGRvbmcgdGhvaSBsYW0gcm8gZG9uIHRodSB0byBjYW8g dm8gbmFuIG5oYW4gYmkgImdhIiB2YW8ga2hhY2ggc2FuLg0KDQpWYW8gbmdheSAyNS40LCBjaGkg Tmd1eWVuIFRoaSBUaGFuaCBUdXllbiAoU04gMTk4MSwgcXVlIFF1YW5nIE5nYWksIHZvIGFuaCBO aHV0LCANCmRldSBsYW0gbyBDb25nIHR5IFROSEggbG9wIEt1bWhvIHRhaSBLQ04gTXkgUGh1b2Ms IEJlbiBDYXQpIG5oYW4gZHVvYyB0aW4gY2hvbmcgDQpiaSBjaGV0IHRhaSBuaGEgdGFtIGdpdSBD b25nIGFuIEguQmVuIENhdC4gRGVuIG5nYXkgaG9tIHNhdSwgY29uZyBhbiB0cmFvIGNobyBjaGkg DQpUdXllbiBiYW4gcGhvdG8gInRodSB0dXlldCBtZW5oIGN1YSBhbmggTmh1dCIuIFF1YSB4ZW0g eGV0IG5ldCBjaHUsIGNoaSBUdXllbiBraGFuZyANCmRpbmggZG8ga2hvbmcgcGhhaSBsYSB0aHUg Y3VhIGNob25nIGNoaSB2aWV0Lg0KIA0KIE5ldCBjaHUga2hvbmcgZ2lvbmcgY3VhIGNob25nPw0K DQooQW5oOiBMYSB0aHUgdHV5ZXQgbWVuaCAoYmVuIHBoYWkpIHZhIG5ldCBjaHUgY3VhIGFuaCBO aHV0IHRyb25nIGN1b24gc28gbWEgdGhlbyB2byANCm5hbiBuaGFuIGxhIGtoYWMgbmhhdSBob2Fu IHRvYW4pIA0KDQpUaHUgdHV5ZXQgbWVuaCBtYSBDb25nIGFuIEguQmVuIENhdCBjaG8gcmFuZyBj dWEgYW5oIE5odXQgdmEgY3VuZyBjYXAgY2hvIGdpYSBkaW5oIA0KZ29tIDQgdHJhbmcgZ2lheS4g VGh1IG5heSB0aHUgbmhhbiBxdWEgdHJpbmggbGFtIHZpZWMgdGFpIENvbmcgdHkgbG9wIEt1bWhv LCB0dSBuYW0gDQoyMDA4IGRlbiBuYXkgZGEgYmkgbWF0IGtob2FuZyA2LjAwMCBkZW4gNy4wMDAg bG9wIHhlIHRyb25nIGtobyB0aGFuaCBwaGFtIG5lbiB0cmFjaCANCm5oaWVtIHRodW9jIHZlIGFu aCBOaHV0LiBOZ3V5ZW4gbmhhbiwga2hpIGtpZW0gdHJhIHRyb25nIG1heSB0aW5oIHBoYXQgaGll biBjbyBiYW4gDQpoYW5oIGxlbmggeHVhdCAxLjAwMCBjYWk7IG5odW5nIGtob25nIGNvIGxlbmgg bmhhcCBraG8sIGtob25nIGNvIGNodW5nIHR1Li4uDQoNClR1eSBuaGllbiwga2hvbmcgaGlldSB2 aSBzYW8gdGFjIGdpYSBidWMgdGh1IGxhaSBiaWV0IGtoYSByYW5oIHJlIHZlIGhpbmggcGhhdCAi dG9pIGN1YSANCm1pbmggc2UgYmkgZ2lhbSBnaXUgdHUgMTUgZGVuIDIwIG5hbS4gTmF5IGRvIGJp IG5oaWV1IGxvYWkgYmVuaCBuaHUgc29pIHRoYW4sIG5oaWVtIA0KdHJ1bmcgdGlldCBuaWV1LCBk b2kgZGllbiB2b2kgYW4gdHUgY2FvIG5lbiBiZSB0YWMsIHRpbSBkZW4gY2FpIGNoZXQiLg0KDQpD dW5nIGNhcCBjaG8gYmFvIGNoaSAidGh1IHR1eWV0IG1lbmgiIHZhIG5odW5nIG5ldCBjaHUgdmll dCB0cm9uZyBjdW9uIHNvIHRheSBjdWEgYW5oIA0KTmh1dCBkZSBkb2kgY2hpZXUsIGNoaSBUdXll biBraGFuZyBkaW5oOiAiTmV0IGNodSB0cm9uZyBsYSB0aHUgdHV5ZXQgbWVuaCBraG9uZyBwaGFp IA0KbmV0IGNodSBjdWEgYW5oIE5odXQuIEN1IHRoZSwgY2h1IGN1YSBOaHV0IHRvLCBuZXQgZHV0 LiBDb24gdHJvbmcgYnVjIHRodSB0dXlldCBtZW5oLCANCmRvIG5naGllbmcgdmEga2hvYW5nIGNh Y2ggdHVuZyBjaHUga2hhYyBuaGF1IHJhdCBuaGlldSIuDQoNClNhbmcgcXVhLCB0cmFvIGRvaSB2 b2kgYmFvIGNoaSwgdGh1b25nIHRhIFBoYW0gWHVhbiBUcnVvbmcsIHF1eWVuIENoYW5oIHZhbiBw aG9uZyANCkNvbmcgYW4gdGluaCBCaW5oIER1b25nLCBjaG8gYmlldDogIk5ldSBnaWEgZGluaCB5 ZXUgY2F1IHRoaSBjbyBxdWFuIGNodWMgbmFuZyBzZSB0aWVuIA0KaGFuaCBnaWFtIGRpbmggbmV0 IGNodSIuDQoNCkRvYW4gZ2hpIGFtIGdhIHZvIG5hbiBuaGFuIGRpIGtoYWNoIHNhbiwgYmFuIGRh dC4uLg0KDQooQW5oOiBDaGkgVHV5ZW4gYmVuIGRpIGFuaCBjdWEgY2hvbmcsIHRyb25nIGtoaSBj aG8ga2hhbSBuZ2hpZW0gdHUgdGhpIC0gQW5oIGNodXAgdGFpIA0KQmVuaCB2aWVuIERhIGtob2Eg QmluaCBEdW9uZyB2YW8gbmdheSAyNi40KSANCg0KU2F1IGtoaSBkdWEgbmd1b2kgY2hvbmcgeGF1 IHNvIHZlIHF1ZSBhbiB0YW5nLCBjaGkgVHV5ZW4gZ3VpIGUtbWFpbCBjaG8gbmhpZXUgUFYgYmFv IA0KY2hpIDIgZG9hbiBiYW5nIGdoaSBhbSwgdHJvbmcgZG8gZ2lvbmcgbW90IG5ndW9pIGRhbiBv bmcgZ2EgZ2FtIGNoaSB2YW8ga2hhY2ggc2FuIHZhIA0KZG9uZyB0aG9pIGRlIG5naGkgYmFuIG1h bmggZGF0IGRlLi4uIGN1dSBjaG9uZy4NCg0KTmd1b2kgbm9pIGNodXllbiB2b2kgY2hpIFR1eWVu IHRyb25nIGRvYW4gYmFuZyBnaGkgYW0gZHVvYyBjaGkgVHV5ZW4gZ29pIGxhIFBodSAoPyksIA0K bm9pIGdpb25nIG1pZW4gTmFtLiBOZ3VvaSBuYXkgeHVuZyBkYW5nIGRpZXUgdHJhIHZ1IGFuIGxp ZW4gcXVhbiBkZW4gY2hvbmcgY2hpIFR1eWVuIA0KdmEgZ2EgZ2FtLCBydSBjaGkgVHV5ZW4gImRp IHZvIGtoYWNoIHNhbiBnYXAiIGRlICIuLi5tdW9uIGNhaSB0YW0gYmF5Ii4gVmEgY29uIG5oYW4g DQpuaHUgY2hpIFR1eWVuOiAiQ2hvbmcgZW0gYmlldCBtaW5oIHBoYW0gdG9pLCBrZXUgbG8gZ2l1 bSwgYmFuIG1pZW5nIGRhdCBkZSBkZW4gb24gDQpkYXAgbmdoaWGFIi4NCg0KVGhlbyBjaGkgVHV5 ZW4sIHRydWEgMjMuNCAodGh1IGJheSkgY2hpIGRhbmcgbyBjb25nIHR5IHRoaSB0aGF5IGNvIGN1 b2MgZ29pIG5obyB0dSBzbyANCmRpZW4gdGhvYWkgMDkxODOFLi4gQ2hpIGdvaSBsYWkgdGhpIG5n dW9pIG5naGUgbWF5IHh1bmcgdGVuIFBodSwgbm9pIGRhbmcgZGlldSB0cmEgdnUgDQphbiBjdWEg Y2hvbmcgY2hpIHZhIGJ1b25nIGxvaSB2ZSB2YW4uIFRoYXkga2hhIG5naGksIGNoaSBUdXllbiBj dW5nIG1vdCBzbyBkb25nIA0KbmdoaWVwIGR1bmcgZGllbiB0aG9haSBkZSBnaGkgYW0uIENodWEg aGV0LCB0b2kgdGh1IGJheSB2YSB0b2kgY2h1IG5oYXQgKDI0LjQpLCBvbmcgUGh1IA0KdGllcCB0 dWMgbmhpZXUgbGFuIGdvaSBkaWVuIHZlIHZhbiwgZ2EgZ2FtLi4uICJWbyBjaG9uZyB0b2kgY28g bWllbmcgZGF0IG8gTXkgUGh1b2MgMywgDQpuaHVuZyBraG9uZyBoaWV1IHNhbyBuZ3VvaSBkYW4g b25nIHh1bmcgdGVuIFBodSBiaWV0IHZhIG5oYWMgZGVuIiwgY2hpIFR1eWVuIG5vaS4gDQpDaHVu ZyB0b2kgdGh1IGdvaSB2YW8gc28gZGkgZG9uZyBjdWEgIm5ndW9pIHh1bmcgdGVuIFBodSIgbWEg Y2hpIFR1eWVuIGN1bmcgY2FwLCANCm5odW5nIGtob25nIGFpIGJhdCBtYXkuDQoNCk5ndW9pICJn YSIgdGluaCBsYSBhaT8gQ28gcGhhaSBsYSBkaWV1IHRyYSB2aWVuIG5odSBuZ2hpIHZhbiB2YSBu aHVuZyBkaWV1IHRyYSB2aWVuIHRoYW0gDQpnaWEgdnUgYW4gbmF5IGNvIGFpIHRlbiBQaHU/Li4u IFRyYW8gZG9pICB4dW5nIHF1YW5oIHRob25nIHRpbiB0cmVuLCB0aHVvbmcgdGEgVHJ1b25nIGNo byANCmJpZXQgc2UgYmFvIGNhbyB2b2kgR2lhbSBkb2MgQ29uZyBhbiB0aW5oIGRlIGRpZXUgdHJh IGxhbSByby4NCg0KQ28gZGF1IGhpZXUgaGluaCBzdSBzZSBraG9pIHRvIHZ1IGFuDQoNClRoZW8g aG8gc28gY3VhIFZpZW4gS1NORCBILkJlbiBDYXQsIHRyb25nIHRoYW5nIDguMjAxMCwgbmhhbiBk dW9jIHRpbiBiYW8gQ29uZyB0eSANClROSEggbG9wIEt1bWhvIChjaHV5ZW4gc2FuIHh1YXQgbG9w IHhlIG8gdG8pIGJpIG1hdCA1NiB2byB4ZSwgQ29uZyBhbiB0aW5oIEJpbmggDQpEdW9uZyB0aGFu aCBsYXAgYmFuIGNodXllbiBhbi4gRGVuIG5nYXkgMjEuNCwgQ29uZyBhbiBCZW4gQ2F0IG1vaSBh bmggTmh1dCBsZW4gZGUgDQpkaWV1IHRyYSB2YSB0aHUgZ2l1IG1vdCBzbyB2YXQgY2h1bmcgY3Vh IHZ1IGFuLiBEZW4ga2hvYW5nIDYgZ2lvIHNhbmcgbmdheSAyNS40LCBjYWMgY2FuIA0KYm8gcGhh dCBoaWVuIE5odXQgZGEgY2hldCB0cm9uZyB0dSB0aGUgdHJlbyBjby4NCg0KS2V0IHF1YSBraGFt IG5naGllbSBoaWVuIHRydW9uZywgY28gTmh1dCBiaSB0cm9uZyBiYW5nIGRheSBzYWMgcGluIGRp ZW4gdGhvYWksIG1vdCBkYXUgDQp0cmVvIHZhbyBzb25nIHNhdCBjdWEgc28gdHJvbmcgcGhvbmcg Y3VhIERvaSBDYW5oIHNhdCBobyB0cm8gdHUgcGhhcCBDb25nIGFuIEguQmVuIA0KQ2F0LiBIYWkg YmVuIGNvIGNvIHZldCB0aGF0IGJhbSBkYXAsIDIgY2hhbiBuYW4gbmhhbiBjaG9tIGNoYW0gZGF0 IGRvIGRheSBkaWVuIHRob2FpIA0KZGEgZ2lhbi4gQmEgTmdvIFRoaSBOZ29jIFRoYW5oLCBWaWVu IHRydW9uZyBWaWVuIEtTTkQgSC5CZW4gQ2F0LCBjaG8gYmlldDogIktldCANCnF1YSBraGFtIG5n aGllbSBkYSB4YWMgZGluaCBOaHV0IGNoZXQgZG8gdGhhdCBjby4gQ29uIG5ndXllbiBuaGFuLCBo aWVuIGNvIHF1YW4gY2h1YyANCm5hbmcgY2h1YSB0aGUgeGFjIGRpbmggZHVvYyIuIFJpZW5nIHRp bmggdGlldCBtYSBjaGkgVHV5ZW4gY2hvIHJhbmcgIkFuaCBOaHV0IGJpIGJhdCB0dSANCjIxIC0g MjUuNCwgbWEga2hvbmcgZHVvYyBnYXAgbWF0IiwgYmEgVGhhbmggY2hvIGJpZXQ6ICJWaWVuIGto b25nIGhlIGJpZXQuIE5ldSBnaWEgDQpkaW5oIG5hbiBuaGFuIGNvIGRvbiB5ZXUgY2F1IHNlIHhl bSB4ZXQgbGFtIHJvIi4NCg0KVHJvbmcga2hpIGRvLCB4b2F5IHF1YW5oIHRyYWNoIG5oaWVtIGN1 YSBjaGllbiBzaSB0cnVjLCBnYWMgdHJvbmcgbmdheSB4YXkgcmEgY2FpIGNoZXQgDQpjdWEgYW5o IE5odXQgdmEgZGFjIGJpZXQgbGEgc29pIGRheSBzYWMgcGluIGRpZW4gdGhvYWkgbmFuIG5oYW4g bGF5IG8gZGF1IHJhPyBUaHVvbmcgdGEgDQpUcnVvbmcgY2hvIGJpZXQ6ICJTYXUga2hpIGRpZXUg dHJhIHhvbmcgc2Uga2llbSBkaWVtLCB4dSBseSBuaHVuZyBuZ3VvaSBsaWVuIGRvaSB0cmFjaCAN Cm5oaWVtLiBSaWVuZyBhbmggTmh1dCBjaGkgYmkgdGFtIGdpdSBoYW5oIGNoaW5oIGNobyBuZW4g bW9pIHNpbmggaG9hdCBraG9uZyBnYXQgZ2FvIA0Kbmh1IHRhbSBnaXUgaGluaCBzdS4gVmkgdmF5 LCBuYW4gbmhhbiBjbyBkdW9jIHNvaSBkYXkgc2FjIHBpbiBkaWVuIHRob2FpIGxhIGtob25nIGto byIuIA0KQ29uIHZpZWMgdGFtIGdpdSBuZ3VvaSBtYSBraG9uZyB0aG9uZyBiYW8gY2hvIHRoYW4g bmhhbiBnaWEgZGluaCBjbyBkdW5nIHBoYXAgbHVhdCANCmhheSBraG9uZz8gT25nIFRydW9uZyB0 cmEgbG9pIHZpZWMgZG8gZG8gQ29uZyBhbiBILkJlbiBDYXQgeHUgbHkgbmVuIG9uZyBraG9uZyBi aWV0Lg0KDQpDdW5nIHRoZW8gdGh1b25nIHRhIFRydW9uZywgbmV1IHBoYXQgaGllbiBjbyBkYXUg aGlldSBwaGFtIHRvaSBoaW5oIHN1IHNlIGtob2kgdG8gdnUgYW4uDQoNCktob25nIHRpZXAgeHVj IHZvaSBiYW8gY2hpDQoNClRydWEgMjguNCwgUFYgbmhpZXUgYmFvIGNvIG1hdCB0YWkgdHJ1IHNv IENvbmcgYW4gSC5CZW4gQ2F0IGRhbmcga3kgZ2FwIG1hdCBsYW5oIGRhbyANCmRlIHRpbSBoaWV1 IHZ1IHZpZWMuIFRoaWV1IHV5IExlIER1YyBUdWFuLCB0cnVjIGJhbiwgY2hvIGJpZXQgbGFuaCBk YW8gYmFuIGhvcC4gUFYgZGUgDQpuZ2hpIGNobyBsYW5oIGRhbyBob3AgeG9uZyB0cmFvIGRvaSwg bmh1bmcgdGhpZXUgdXkgVHVhbiBub2k6ICJUb2kgZHVvYyBwaGFuIGNvbmcgdGhheSANCm1hdCBs YW5oIGRhbyB0cnVjIGJhbiBkaWV1IGhhbmggZG9uIHZpLCBjYWMgYW5oIG11b24gZ2kgbGVuIGNv bmcgYW4gdGluaCBsYW0gdmllYyIuIA0KDQpodHRwOi8vd3d3LmRhbmxlbnRpZW5nLm5ldC9zcGlw LnBocD9hcnRpY2xlNTk0NCBUYSBQaG9uZyBUYW4gIDEyLzA4LzIwMTAgDQoNCkNvbmcgYW46IFZv IGNvIGJhbiBuZ3VvaSBkYW4gLSBTdSBraG9uIG5hbiB0b3QgY3VuZyAgDQoNCkJhbyBMYW8gRG9u ZyBuZ2F5IDEwIHRoYW5nIDgsIDIwMTAgZ2hpIGxhaSBsb2kga2UgY3VhIGFuaCBOZ3V5ZW4gVHVh biBIdW5nIChzaW5oIA0KdmllbiBuYW0gdGh1IDQgdHJ1b25nIERhaSBIb2MgU3UgUGhhbSBUaGFp IE5ndXllbikgbGEgbmd1b2kgY2FtIGxhaSB4ZSBtYXkgY2hvIA0Kbmd1b2kgeWV1IEhvYW5nIFRo aSBUcmEgKHNpbmggdmllbiB0cnVvbmcgREhTUCkgbmdheSA2IHRoYW5nIDgsIDIwMTAuDQoNCkRp ZW4gYmllbiB2dSBhbiBjaG8gdGhheSBzdSBraG9uIG5hbiB0b3QgY3VuZyBjdWEgaGFpIGtlIGR1 b2MgZ29pIGxhICJDb25nIGFuIG5oYW4gDQpuaGFuIiAoc2F1IG5heSBkdW9jIGJpZXQgZG8gbGEg VGhpZXUgVXkgVHJ1b25nIERpbmggSG9hbmcgdmEgVGh1b25nIFNpIE5ndXllbiANCk5nb2MgSGF1 IGNvbmcgdGFjIHRhaSBQaG9uZyBDU0dUIENvbmcgQW4gdGluaCBUaGFpIE5ndXllbikuDQoNCihB bmggY2h1cDogTnUgc2luaCBUcmEgdGFpIGJlbmggdmllbiwgbmdheSAxMSB0aGFuZyA4LiBIaW5o OiBWTkV4cHJlc3MpIA0KDQoiVG9pIDYgdGhhbmcgOCwgSHVuZyBjaG8gVHJhIHR1IHRydW9uZyBE SFNQIHZlIG5oYSBuZ3VvaSB0aGFuIHRyZW4gZHVvbmcgQ01UOCwgY2EgDQpoYWkgZGV1IGtob25n IGRvaSBtdSBiYW8gaGllbS4gRGVuIGtodSB2dWMgdHVvbmcgZGFpIGxpZXQgc2kgY2FuaCBraGFj aCBzYW4gVGhhaSBOZ3V5ZW4gDQpiYXQgbmdvIGNvIGhhaSBuZ3VvaSBtYWMgdGh1b25nIHBodWMg ZXAgeGUgSHVuZyBiYXQgZHVuZyBsYWkuIEtob25nIHBoYWkgDQpuZ3VvaSBvIHRoYW5oIHBobyAo bmhhIEh1bmcgbyBTb25nIENvbmcpIHNvIGdhcCBwaGFpIG5ndW9pIHhhdSBuZW4gSHVuZyBkYSB0 YW5nIGdhIA0KYm8gY2hheS4gSGFpIG5ndW9pIGxhIHZ1b3QgbGVuIHRydW9jLCBIdW5nIHF1YXkg ZGF1IHhlIHRpZXAgdHVjIGJvIGNoYXkgdGhpIG5naGUgdGllbmcgDQpzdW5nIG5vIGNoYXQgY2h1 YS4iIFRoYXkgdmkgbWFjIGNhbmggcGh1YyBkYW5nIGhvYW5nIHZhIHJhIGhpZXUgY2hvIG5ndW9p IHZpIHBoYW0gDQpkdW5nIGxhaSB0aGkgMiBDU0dUIG5heSBjbyBoYW5oIHZpIGdpb25nIHkgbmh1 IGtlIGN1b3AgKG1hYyB0aHVvbmcgcGh1Yywgc2FuIGR1b2ksIGVwIA0KeGUgZ2F5IG5ndXkgaGll bSwgYmFuIHN1bmcpIHRoaSBhaSBtYSBraG9uZyBob2FuZyBzbyBibyBjaGF5IHRydW9jIHRpbmgg aGluaCB4YSBob2kgDQp0cm9tIGN1b3AgZHVuZyAiaGFuZyBub25nIiBub2kgbGVuIG5odSBydW9p IG5heSwgbmhhdCBsYSBraHUgdnVjIHBoaWEgQmFjLiBTdSBoaWVuIA0KZGllbiBjdWEgaG8ga2hv bmcgYmFvIHZlIHRyYXQgdHUgYW4gdG9hbiBjaG8gZGFuIG1hIGNoaSBsYW0gY2hvIG5ndW9pIGRh biBraW5oIGhvYW5nIA0KdG90IGRvLiBOaHUgdmF5LCB0cnVvYyBraGkgZW0gVHJhIGJpIGJhbiB0 cnVuZyB2YW8gZHVpLCB0aGkgMiBDU0dUIG5vIGRhIGJhbiB0cnVvYyAyIA0KcGhhdCBkYW4gcm9p LCBuaHVuZyBwaGF0IGRhbiBzYXUgKHRydW5nIGRpY2gpIHJvIHJhbmcgbGEgY28geSAidGlldSBk aWV0IiBrZSAiY3VuZyBkYXUiIA0KY2hvIGNoYW5nIHBoYWkgInZvIHRpbmgiIGhheSAibGFjIGRh biIgZ2kgaGV0Lg0KDQpLaG9uZyB0aGF5IGR1b2MgbG9pIGN1YSBtaW5oLCB0aGF5IHZpIGdvaSBj aG8gZG9uZyBkb2kgbWFjIGNhbmggcGh1YywgdGhvbmcgYmFvIGJpZW4gDQpzbyB4ZSBuZ3VvaSB2 aSBwaGFtIGRlIGhvIGNoYW4gbGFpIHRoaSAyIENTR1QgbmF5IGxhaSBjbyB0aWVwIHR1YyBoYW5o IHZpIG5ndXkgaGllbSBjaG8gDQpuYW4gbmhhbiBsYSBydW90IGR1b2ksIGVwIHhlIGtoaSB4ZSBk YW5nIGNoYXkgdG9jIGRvIG5oYW5oIHZhIGJhbiB0aGFuZyB2YW8gbmd1b2kgbmFuIA0Kbmhhbi4g IkNhbmcgaG9hbmcsIEh1bmcgdGFuZyBnYSB2dW90IHF1YSBkdW9uZyB0cm9uIHRydW5nIHRhbSBo dW9uZyByYSBkdW9uZyBDTVQ4LiANCk5odW5nIGNoaSBkdW9jIG1vdCBkb2FuLCBjaGllYyB4ZSBt YXkgY3VhIGhhaSBuZ3VvaSBsYSBtYXQgZGEgdnVvdCBsZW4gZXAgZGF1IHhlIGN1YSANCkh1bmcg a2hpZW4gY2hpZWMgeGUgZG8gbmdoaWVuZy4gSHVuZyBrZXQgdGh1YyBkb2FuIHJ1b3QgZHVvaSB2 b2kgbmV0IG1hdCB0aGF0IHRoYW46IA0KJ0toaSBlbSBkYW5nIGxvYXkgaG9heSBjaHVhIGtpcCBk dW5nIHhlIGRhIG5naGUgdGhheSB0aWVuZyBzdW5nIG5vIGNob2kgdGFpLCBuZ29hbmggbGFpIA0K dGhheSBUcmEgZGEgZGFtIG1hdSBvIHZ1bmcgZHVpLiBUcmEgY2hpIGtpcCBrZXU6IEVtIGJpIGJh biByb2kuJw0KIk5nYXkgc2F1IGtoaSB0aWVuZyBzdW5nIG5vLCBuaGlldSBuZ3VvaSBkYW4gcXVh bmggZG8gZGEgeHVtIGxhaS4gIkhhaSBuZ3VvaSBtYWMgDQp0aHVvbmcgcGh1YyBwaGFuIGJ1YSBs YSBjb25nIGFuIGRhbmcgdHJ1eSBiYXQgdG9pIHBoYW0gdmEgdmFuIGR1bmcgbmd1eWVuIGRvIGRl IG1hYyANClRyYSBkYW0gZGlhIHRyb25nIG1hdS4iIEh1bmcgdGllcCBjaHV5ZW4uIE1vdCBsdWMg c2F1IG1vaSBjbyBuZ3VvaSBub2kgdGVuIFF1YW4gZGVuIA0KZ2l1cCBIdW5nIGR1YSBUcmEgdmFv IGJlbmggdmllbi4gS2hpIGhhaSBuZ3VvaSB0aGFuaCBuaWVuIHRydXkgZHVvaSBkaW5oIG5oYXQg dm8gZGFuIA0Kcm9pIGdhbiBjaGllYyB4ZSBtYXksIG5ndW9pIGRhbiBkYSBraG9uZyBkb25nIHkg dmEgbW90IHBodSBudSB0ZW4gVmlldCBuaGEgbyBnYW4gZG8gZGEgDQp0YW0gZ2l1IGNoaWVjIHZv IGRhbi4gRHVvYyBiaWV0LCB2byBkYW4gc2F1IGRvIGRhIGR1b2MgZ2lhbyBsYWkgY2hvIGNvIHF1 YW4gY29uZyBhbi4iDQoNClNhdSBraGkgbmFuIG5oYW4gVHJhIGJpIHRodW9uZywgbWF1IHJhIHhv aSB4YSwgMiBDU0dUIG5vIGRhIGdpbyB0aHUgZG9hbiB2dSBraG9uZyBjaG8gDQpuYW4gbmhhbiBs YSAidG9pIHBoYW0iIG5oYW0gbXVjIGRpY2ggbmdhbiBjYW4gcXVhbiBjaHVuZyBuaGFuIGRhbiBk dW5nIGNhbiB0aGllcCANCnZhbyB2dSB2aWVjLCBtYWMgdGluaCBjaG8gaG8gdHUgdHVuZyB0dSB0 YWMgdHJlbiBzaW5oIG1hbmcgZGFuZyBiaSAidHJlbyB0cmVuIHNvaSB0b2MiIGN1YSANCm5hbiBu aGFuLCBraG9uZyBuaGFuaCBjaG9uZyBjYXAgY3V1IG5hbiBuaGFuIHZhIHBoaSB0YW5nIGRhdSB2 ZXQgcGhhbSB0b2kgY3VhIG1pbmguDQoNCiJOZ2F5IHNhdSBkbywgbHVjIGx1b25nIGNodWMgbmFu ZyBkYSBkZW4gY2hvIGhhaSBjaGllYyB4ZSBnYW4gbWF5IGRpIG1hIGtob25nIGxhcCANCmJpZW4g YmFuIGhpZW4gdHJ1b25nLiBUYWkgbm9pIHhheSByYSB2dSB2aWVjLCBjaGkgY29uIGxhaSB2dW5n IG1hdS4iIFBoYWkgY2hhbmcga2UgdGh1IGFjIA0KaHVuZyBoYW5nIGtpYSBiaWV0IHRydW9jIGhh bmggdmkgY3VhIGhvIHNlIGR1b2MgImNob25nIGx1bmciIG5lbiBtYWMgc3VjIHRoZSBoaWVuIHV5 IA0KcXV5ZW4sIHhlbSB0aHVvbmcgdGluaCBtYW5nIG5ndW9pIGRhbiB2byB0b2k/DQoNClR1eSBu aGllbiwgIlRoaWVuIGJhdCBkdW5nIGdpYW4sIiAiY28gbmd1b2kgZGFuIGNvbiBraGFuZyBkaW5o LCBiaWV0IGhhaSB0aGFuaCBuaWVuIHRydXkgDQpkdW9pIGxhIENTR1QsIGJpZXQgaG8gdHJ1b2Mg dHVuZyBsYW0gbyBraHUgdnVjIGJlbiB4ZSBUaGFpIE5ndXllbiB2YSBiaWV0IGNhIHRlbiBuZ3Vv aSANCmRlbiBkdWEgaGFpIGNoaWVjIHhlIG1heSByYSBraG9pIGhpZW4gdHJ1b25nLiIgdmEgbmd1 b2kgZGFuICJuZ28geSBzYW4gc2FuZyBsYW0gY2h1bmcgDQp2aSBuaGluIHRoYXkgbmd1b2kgdGhh bmggbmllbiBtYWMgdGh1b25nIHBodWMgbmdvaSBwaGlhIHNhdSB4ZSBnYW4gbWF5IG5vIHN1bmcg dmFvIFRyYS4iDQoiRGVuIG5nYXkgaG9tIHNhdSAobmdheSA3IHRoYW5nIDgpIGtoaSBsZW4gQ0Eg VGhhbmggUGhvIGRlIGt5IGJpZW4gYmFuIHZpIHBoYW0gaGFuaCANCmNoaW5oIHZpIHZpIHBoYW0g bHVhdCBnaWFvIHRob25nIHRvaSA2IHRoYW5nIDgsIEh1bmcgbW9pIG5oYW4gZGluaCBkdW9jIGhh aSBuZ3VvaSB0cnV5IA0KZHVvaSBtaW5oIGNvIGNodWMgbmFuZyBraWVtIHNvYXQgZ2lhbyB0aG9u Zy4gQm9pIG5nb2FpIGhhaSBsb2kgdmUga2hvbmcgZG9pIG11IGJhbyANCmhpZW0sIGJpZW4gYmFu IGdoaSBsb2kgdGh1IGJhIGxhOiAiS2hvbmcgY2hhcCBoYW5oIGhpZXUgbGVuaCBjdWEgbmd1b2kg a2llbSBzb2F0IGdpYW8gDQp0aG9uZy4iIEh1bmcga2hvbmcgY2hhcCBuaGFuIGxvaSBuYXkgdmk6 ICJLaG9uZyBjbyBkYXUgaGlldSBnaSBkZSBwaGFuIGJpZXQgbmd1b2kgZG8gDQpsYSBuZ3VvaSBr aWVtIHNvYXQgZ2lhbyB0aG9uZy4iDQoNCk5ndW9pIGRhbiBvIFRoYWkgTmd1eWVuIGNhbmcgYnVj IHh1YyBob24gdmkgbmV1IGRhIGxhIGNvbmcgYW4ga2llbSBzb2F0IGdpYW8gdGhvbmcgY28gDQpk dW9jIHBoZXAgcnVvdCBkdW9pIHZhIGJhbiBzdW5nIHRyZW4gZHVvbmcgbmh1IHZheSBraG9uZz8g TWUgY3VhIE5ndXllbiBUdWFuIEh1bmcgDQp0aGFjIG1hYzogIkNvbiB0b2kgdmkgcGhhbSBsdWF0 IGdpYW8gdGhvbmcsIGtob25nIGRvaSBtdSBiYW8gaGllbSBuaHVuZyBjbyBkYW5nIGJpIA0KYmFu IGtob25nPyINCg0KQ2F1IGhvaSByYXQgZG9uIGdpYW4sIGxhbmggZGFvIGNvbmcgYW4gVGhhaSBO Z3V5ZW4gY2h1YSB0cmEgbG9pIHRoYWMgbWFjIGN1YSBtZSBhbmggDQpIdW5nLCBuaHVuZyBjYW4g Y3UgdmFvIGNhYyBxdXkgZGluaCBwaGFwIGx1YXQgaGllbiBoYW5oLCB0b2kgeGluIGR1b2MgdHJh IGxvaSB2b2kgYmEgDQpuZ2F5IHJhbmc6DQpIYW5oIHZpIGtob25nIGRvaSBtdSBiYW8gaGllbSBr aGkgdGhhbSBnaWEgZ2lhbyB0aG9uZyBsYSB2aSBwaGFtIGhhbmggY2hpbmggdGh1b2MgDQpsb2Fp IG5oZSBuaGF0LCBkdW9jIHF1eSBkaW5oIHRhaSBOZ2hpIGRpbmggc28gMzQvMjAxMC9ORC1DUCBu Z2F5IDIwLzQvMjAxMCBjdWEgY2hpbmggDQpwaHUuIEtob25nIGNvIHF1eSBkaW5oIHBoYXAgbHVh dCBuYW8gY2hvIHBoZXAgY29uZyBhbiBiYW4gbmd1b2kgdmkgcGhhbSB2ZSBhbiB0b2FuIA0KZ2lh byB0aG9uZy4NCg0KTmdheSAyMyB0aGFuZyA3LCAyMDEwLCBhbmggTmd1eWVuIFZhbiBLaHVvbmcg Y2hvIG5ndW9pIHlldSBkaSBtdWEgc2FtIGJhbmcgeGUgDQptYXkga2hvbmcgZG9pIG11IGJhbyBo aWVtLCBjdW5nIGJpIENTR1QgaHV5ZW4gVGFuIFllbiAoQmFjIEdpYW5nKSBkdW9pIGJhdCB2YSAN CmRhbmggY2hldCB0cm9uZyB0cnUgc28gY29uZyBhbiBodXllbi4NCg0KVGluIG1vaSBuaGF0LCBW aWV0bmFtbmV0IGNobyBoYXksIG5nYXkgNyB0aGFuZyA4LCAyMDEwLCBhbmggVHJhbiBEdXkgSGFp IChuZ3UgcGh1b25nIA0KQ2FpIEtlLCBxdWFuIE5pbmggS2lldSwgdGhhbmggcGhvIENhbiBUaG8p IGJpIGNvbmcgYW4gaHV5ZW4gQ2hhdSBUaGFuaCBBLCB0aW5oIEhhdSANCkdpYW5nIGJhdCB2aSAi bmdoaSB2YW4gbGllbiBxdWFuIGRlbiBtb3QgdnUgY3VvcCBnaWF0LiIgTmdheSA4IHRoYW5nIDgs IDIwMTAsIGdpYSBkaW5oIA0KZHVvYyBiYW8gYW5oIEhhaSBkYSBjaGV0LiBDbyBxdWFuIGNodWMg bmFuZyBkYSBraGFtIG5naGllbSBoaWVuIHRydW9uZyB2YSBtbyB0dSB0aGkgDQpkZSB4YWMgZGlu aCBuZ3V5ZW4gbmhhbiBjYWkgY2hldCBjdWEgYW5oIEhhaSwgbmh1bmcgY2h1YSBjbyBrZXQgbHVh bi4NCg0KSG9hbmcgVGhpIFRyYSwgTmd1eWVuIFR1YW4gSHVuZyBjb2kgbmh1IG1heSBtYW4gaG9u IGNhYyBuYW4gbmhhbiBrZSB0cmVuIHZpIGJpIA0KaGFuaCBodW5nIGNobyBkb25nIG5ndW9pIHZh IGNvIG5oaWV1IG5ndW9pIGRhbiBjaHVuZyBraWVuLCBuaGlldSBuZ3VvaSBiaWV0IHJvIGtlIHRo dSBhYy4NCg0KQ28gbW90IG5ndXllbiB0YWMgZG9uIGdpYW4gbWEgYWkgY3VuZyBiaWV0IGxhOiAi TXVvbiBuZ3VvaSBraGFjIHRpbiBtaW5oLCB0cnVvYyBoZXQgDQphbmggaGF5IGNodW5nIG1pbmgg YW5oIGxhIG5ndW9pIGRhbmcgdGluLiIgMiBDU0dUIFRydW9uZyBEaW5oIEhvYW5nIHZhIE5ndXll biANCk5nb2MgSGF1IGtob25nIGhlIGNodW5nIG1pbmggY2hvIG5ndW9pIGRhbiBiaWV0IGhvIGxh IENTR1QgbW90IGNhY2ggImRhbmggY2hpbmggDQpuZ29uIHRodWFuIiBtYSBsYWkgdGhlIGhpZW4g YmUgbmdvYWksIGhhbmggdmkgZ2lvbmcgeSBuaHUgMiBrZSBjdW9wIGh1bmcgaGFuLCBiYW8gc2Fv IA0KYW5oIEh1bmcga2hvbmcgbGFpIHhlIGJvIGNoYXk/IFNhdSBkbywgZG9uIHZpIGN1YSAyIENT R1QgbmF5IGxhaSBsYXAgYmllbiBiYW4gdmkgcGhhbSANCmhhbmggY2hpbmggZ2hpIGxvaSAia2hv bmcgY2hhcCBoYW5oIGhpZXUgbGVuaCBjdWEgbmd1b2kga2llbSBzb2F0IGdpYW8gdGhvbmciIGRl IGxhcCANCmxpZW0sIGJhbyBjaHVhIGNobyBoYW5oIHZpIGdheSBuZ3V5IGhpZW0gZGVuIHRpbmgg bWFuZyBuZ3VvaSBkYW4gKHJ1b3QgZHVvaSwgZXAgeGUsIA0KYmFuIG5ndW9pKSBjdWEgZG9uZyBk b2kgbWluaC4NCg0KTGFtIGR1bmcgcXV5ZW4gbHVjIG5oYSBudW9jIGRlIHRodWMgaGllbiBoYW5o IHZpIG5ndXkgaGllbSBkZW4gdGluaCBtYW5nIG5ndW9pIGRhbiwgDQp4ZW0gdGh1b25nIGx1YXQg cGhhcCwgZ2F5IGFuIHhvbmcgbGFpIHRpZXAgdHVjIHZ1IGtob25nIGNobyBuYW4gbmhhbiBob25n IHBoaSB0YW5nIA0KY2h1bmcgY3UgdG9pIGFjLiBIYW5oIHZpIGRvIGNoaSBjbyB0aGUgZ29pIGJh bmcgY3VtIHR1ICIgc3Uga2hvbiBuYW4gdG90IGN1bmciIGN1YSANCm5odW5nIGtlIGR1b2MgZ29p IGxhIGNvbmcgYW4gbmhhbiBkYW4uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3 cy9QYWdlcy8yMDEwMzMvMjAxMDA4MTQwMDE2NDMuYXNweCBCYW4gQ1RCRCAodG9uZyBob3ApIDE0 LzA4LzIwMTAgMDoxNiAodHJpY2gpDQoNCkNvbmcgYW46IFBoYWkgeHUgbHksIGtob25nIGR1b2Mg YmFvIGNoZSANCiAgDQpEbyBsYSBtb3QgdHJvbmcgcmF0IG5oaWV1IHkga2llbiBjdWEgYmFuIGRv YyBkb2kgdm9pIHZ1IGNhbmggc2F0IGdpYW8gdGhvbmcgZHVuZyANCnN1bmcgYmFuIHZhbyBkdWkg bmd1b2kgZGFuIHhheSByYSB0YWkgVFAgVGhhaSBOZ3V5ZW4gdmFvIHRvaSA2LjggbWEgQmFvIA0K VGhhbmggTmllbiBkYSBjbyBuaGlldSBiYWkgdmlldCBwaGFuIGFuaC4gDQoNCkNhbiBsYW0gcm8g DQoNClRvaSBraG9uZyB0aGUgdGluIGNodXllbiBjb25nIGFuIGJhbiBjaGkgdGhpZW4gbWEgbGFp IHRydW5nIGR1aSBuZ3VvaSBraGFjLCBzYXUgZG8gDQpsYWkgZG8gbG9pIGRvIHN1bmcgYmkgY3Vv cCBjbyB0aGkgY2FuZyBraG8gaGlldSBob24uIExhIG1vdCBjYW5oIHNhdCBkdW9jIHBoZXAgc3Ug DQpkdW5nIHN1bmcgbGFpIGRlIGJpIGN1b3AgY28gaG9hIHJhIGhvIGtob25nIGR1b2MgZGFvIHRh byB0b3Qgc2FvPyBDYW4gbGFtIHJvIHZpZWMgbmF5LCANCmtob25nIG5lbiBiYW8gY2hlLiBCYW8g Y2hpIGN1bmcgbmVuIHRoZW8gZG9pIGR1YSB0aW4gdGh1b25nIHh1eWVuIGRlIGR1IGx1YW4gYmll dCANCmh1b25nIHh1IGx5IGRvaSB2b2kgMiBDU0dUIG5heSBuaHUgdGhlIG5hby4gKGxldHJ1bmdz bkBnbWFpbC5jb20pIA0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0v MjAxMC8wOS8xMDA5MjNfaHJ3X3BvbGljZS5zaHRtbCAwNzowNyBHTVQgLSBUaHUgbmFtLCAyMyB0 aGFuZyA5LCAyMDEwIA0KDQpUbyBjaHVjIG5oYW4gcXV5ZW4geWV1IGNhdSBkaWV1IHRyYSBjb25n IGFuDQoNCihBbmggY2h1cDogVnUgYW4gQmFjIEdpYW5nIHhheSByYSBjdW9pIHRoYW5nIDcvMjAx MCkNCg0KVG8gY2h1YyB0aGVvIGRvaSBuaGFuIHF1eWVuIEh1bWFuIFJpZ2h0cyBXYXRjaCAoSFJX KSB2dWEgbGVuIHRpZW5nIHlldSBjYXUgY2hpbmggDQpwaHUgVmlldCBOYW0gZGlldSB0cmEgY2Fj IHZ1IGNhbyBidW9jIGNvbmcgYW4gaGFuaCB4dSB0YW4gYmFvIHZvaSBkYW4uDQoNClRvIGNodWMg Y28gdHJ1IHNvIGNoaW5oIHRhaSBOZXcgWW9yayB2aWV0IHRyb25nIG1vdCB0aG9uZyBjYW8gcmEg dmFvIHRvaSB0aHUgVHUsIHJhbmcgaG8gDQpjbyB0cm9uZyB0YXkgdGFpIGxpZXUgdmUgMTkgdnUg YmFvIGhhbmggbGllbiBxdWFuIGNvbmcgYW4gVmlldCBOYW0sIHRyb25nIGRvIDE1IG5ndW9pIA0K Y2hldCwgdHJvbmcgbW90IG5hbSBxdWEuDQoNCk9uZyBQaGlsIFJvYmVydHNvbiwgUGhvIEdpYW0g ZG9jIHBodSB0cmFjaCBBIGNoYXUgY3VhIEhSVyAsIG5vaTogIlRob25nIHRpbiB2ZSBjYWMgDQp2 dSBiYW8gaGFuaCBjdWEgY29uZyBhbiBkYW5nIG5nYXkgY2FuZyBuaGlldSBtb3QgY2FjaCBkYW5n IGJhbyBkb25nIG8gVmlldCBOYW0sIGdheSANCnF1YW4gbmdhaSBuZ2hpZW0gdHJvbmcgcmFuZyBj YWMgc2FpIHBoYW0gbmF5IGtoYSBwaG8gYmllbiB2YSBjbyB0aW5oIGhlIHRob25nLiINCg0KSFJX IGtldSBnb2kgY2hpbmggcGh1IFZpZXQgTmFtIHJhIGx1YXQgY2FtIGNvbmcgYW4gbGFtIGR1bmcg cXV5ZW4gbHVjIHZhIGJhbyBkYW0gDQpyYW5nIGJhdCBjdSBjb25nIGFuIHZpZW4gbmFvIGNvIGhh bmggZG9uZyBuaHUgdmF5IHNlIGJpIGt5IGx1YXQsIHRoYW0gY2hpIHRydXkgdG8gaGluaCBzdS4g DQoNCkhpZW4gY2hpbmggcGh1IFZpZXQgTmFtIGNodWEgY28gcGhhbiB1bmcgZ2kgdmUgdGhvbmcg Y2FvIGN1YSBIUlcuDQoNCkhSVyBkZSBjYXAgdG9pIGNhYyB0cnVvbmcgaG9wIG5ndW9pIGRhbiB0 dSB2b25nIHNhdSBraGkgYmkgY29uZyBhbiBiYXQsIG5odSB2dSBCYWMgDQpHaWFuZyBob2kgY3Vv aSB0aGFuZyBCYXkuDQoNClRyb25nIHZ1IG5heSwgYW5oIE5ndXllbiBWYW4gS2h1b25nLCAyMSB0 dW9pLCB0aGlldCBtYW5nIGNoaSB2YWkgZ2lvIHNhdSBraGkgYmkgY2FuaCANCnNhdCBnaWFvIHRo b25nIGJhdCB2ZSBkb24gdmkga2hvbmcgZG9pIG11IGJhbyBoaWVtLiBDYWkgY2hldCBjdWEgYW5o IGRhIGRhbiB0b2kgdmllYyANCmhhbmcgbmdoaW4gbmd1b2kga2VvIGxlbiB0cnUgc28gdXkgYmFu IHRpbmggZG9pIGdpYSB0aGljaC4NCg0KVGhhbmcgdHJ1b2MsIG1vdCBjYW5oIHNhdCB2aWVuIGdp YW8gdGhvbmcgZGEgYmkgYmF0IHZpIGxpZW4gcXVhbiwgY3VuZyB2b2kgbW90IGxvYXQgbmd1b2kg DQpkYW4gdmkgdG9pICJnYXkgcm9pIHRyYXQgdHUgY29uZyBjb25nIi4NCg0KQ2h1YSBraWVuIHF1 eWV0DQoNClRob25nIGNhbyBjdWEgSFJXIGNvbiBuaGFjIHRvaSB2dSBvbmcgVnUgVmFuIEhpZW4s IHRhaSBUaGFpIE5ndXllbiwgdHUgdm9uZyBob20gDQozMC8wNiBzYXUga2hpIGJpIGNvbmcgYW4g dGhhbmggcGhvIGJhdCBnaXUgdmkgeG8geGF0IHZvaSBtZSBydW90Lg0KDQpPbmcgSGllbiBkdW9j IGNvbmcgYW4gbWFuZyBkaSBjYXAgY3V1IHRyb25nIHRpbmggdHJhbmcgaG9uIG1lIHZhIGNoZXQg dmkgeHVhdCBodXlldCBuYW8uDQoNClR1eSBuaGllbiBjaG8gdG9pIG5heSBjb25nIGFuIFRoYWkg Tmd1eWVuIHZhbiBjaHVhIGNvIGdpYWkgdGhpY2ggdGhhdSBkYW8gdmUgY2FpIGNoZXQgDQpjdWEg b25nLg0KDQpIUlcgdmlldCByYW5nIHRyb25nIHRvYW4gYm8gc28gMTkgdnUgYmFvIGhhbmggbGll biBxdWFuIGNvbmcgYW4gbWEgaG8gY28gdHJvbmcgdGF5LCANCmNodWEgY28gY2FuIGJvIGNvbmcg YW4gbmFvIGJpIGtldCBhbi4NCg0KVGhlbyB0byBjaHVjIG5heSwgY29uZyBhbiB2aWVuIHNhaSBw aGFtIHRodW9uZyBjaGkgYmkga3kgbHVhdCBoaW5oIHRodWMgbmhlLCBuaHUgeGluIGxvaSANCmdp YSBkaW5oIG5hbiBuaGFuLCBjaHV5ZW4gY29uZyB0YWMgaG9hYyBiYW8gY2FvIHZlIHNhaSBwaGFt Lg0KDQpPbmcgUm9iZXJ0c29uIHBoYXQgYmlldTogIkNobyB0b2kga2hpIGNhbmggc2F0IG5oYW4g dGh1YyBkdW9jIHJhbmcgbmV1IGhvIGxhbSBzYWksIGhvIA0Kc2UgYmkgdHJ1bmcgcGhhdCwgdGhp IHNlIGtob25nIGNvIGdpIGtoaWVuIGhvIGNoYW0gZHV0IGNhY2ggaGFuaCB4dSBsYW0gcXV5ZW4s IHRoYW0gY2hpIA0KZGFuaCBuZ3VvaSBkYW4gZGVuIGNoZXQuIg0KDQpodHRwOi8vbmd1b2ljYW90 dW9pLm9yZy52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBhcmVudD0wJnpvbmU9NyZJRD00NjU3 IE5ndXllbiBUcm9uZyBUaGFuZyAwNy8wOS8yMDEwIDM6MzggUE0pDQoNCkNvbmcgYW46IFBobyBU b25nIGN1YyB0cnVvbmcgVG9uZyBjdWMgQ2FuaCBzYXQgYmkgbG8gIm1hIHRodWF0IiB0aGFtIG5o dW5nICAgDQoNCkNvIGxlIGRvIGxhIHZ1IHZpZWMgaGkgaHV1IHZhIGJpIGhhaSwgY28gbW90IGto b25nIGhhaSBvIHRob2kgZGFpIG5heSwga2hpIHZvIG1vdCBxdWFuIA0KY2h1YyBkYXkgcXV5ZW4g dXkgbyBtb3QgY28gcXVhbiBwaGFwIGx1YXQgbGFpIGR1b2MgImRvYyBkYWMiIGh1b25nIGNoZSBk byBodXUgdHJpIGtoaSANCm1vaSAzMyB0dW9pLCBkZSBsYWkgbWllbmcgdGllbmcgdGhlIGdpYW4g ZGFtIHRpZXUgIm5oYSBheSB0aGF0IHZvIHBodWMsIHNpbmggY29uIHJvaSBtb2kgDQpzaW5oIGNo YSAuLi4iIA0KDQpEbyBsYSB0cnVvbmcgaG9wIG5naGkgaHV1IGN1YSBiYSBCdWkgVGhpIEtpbSBM aWVuLCB0aHVvbmcgdHJ1IHRhaSB0byAzOCwgcGh1b25nIFF1YW5nIA0KVHJ1bmcsIHRoYW5oIHBo byBUaGFpIEJpbmggLSB2byBEYWkgdGEgVHJhbiBWYW4gVmUsIG5ndXllbiBHaWFtIGRvYyBDb25n IGFuIHRpbmggDQpUaGFpIEJpbmgsIG5heSBsYSBQaG8gVG9uZyBDdWMgdHJ1b25nIFRvbmcgY3Vj IENhbmggc2F0IFF1YW4gbGkgaGFuaCBjaGluaCB2ZSB0cmF0IHR1IA0KYW4gdG9hbiB4YSBob2kg LSBCbyBDb25nIGFuLg0KDQpTYXUga2hpIGN1b20gdHJvbiAxNjMgdGhhbmcgbHVvbmcgaHV1ICgx MyBuYW0gNyB0aGFuZyksIGJpIGJhbyBjaGkgcGhhdCBoaWVuIGRpZXUgdHJhLCANCm9uZyBEYWkg dGEgVHJhbiBWYW4gVmUgcGhhaSB2b2kgdmEgImRpZXUgZGluaCIgdm9pIGxhbmggZGFvIEJhbyBo aWVtIHhhIGhvaSAoQkhYSCkgDQp0aW5oIFRoYWkgQmluaCwgbmhhbiBuaHVjIGRlbSBub3AgbGFp IHNvIHRpZW4gZ2lhbiBsYW4sIG5oYW0gbGFwIGxpZW0gZHUgbHVhbiBkZSBiYW8gDQp0b2FuIGNo byBjYWkgZ2hlIHF1YW4gdHJ1b25nIGRhbmcgZGEgdGhpbmggcGhhdC4gTmh1bmcgdHJvIHRyZXUg dGhheSBvbmcgbGFpIGRvIHRybyBtYSANCnRodWF0IHRpZXAgdHVjIGxhbSBobyBzbyBnaWEgZ3Vp IHRpbSBjbyBob2kgbGFtIGxhaSBjaGUgZG8gaHV1IHRyaSBjaG8gdm8uIENoaSBkYW5nIHRpZWMg DQpjaG8gbmh1bmcgY2FuIGJvLCBuaGFuIHZpZW4gY28gcXVhbiBCSFhIIFRoYWkgQmluaCBkYSBt YXUgbWFuICJjaGFwIGhhbmgiIHN1IGNoaSBkYW8gDQpjdWEgY2FwIHRyZW4sIGNoYXAgbmhhbiBo byBzbyBnaWEgbWFvIGtpYTsgZGUgcm9pIHNhdSBkdW5nIG1vdCBuYW0gbGFpIGJpIGNoaW5oIG9u ZyBUcmFuIA0KVmFuIFZlIHJhIGxlbmggdG9uZyBnaWFtIHZlIHRvaSBkYW5oIGRvLiBEaWV1IGto byBoaWV1IGxhIHJpZW5nIGhvIHNvIGdpYSBtYW8gZ3VpIA0KQkhYSCBjdWEgdm8gb25nIHRhIGxh aSBkdW9jICJtaWVuIHRydSIgbmFtIG5nb2FpIGhvIHNvIHZ1IGFuLCBraGllbiBkdSBsdWFuIHhh IGhvaSBidWMgDQp4dWMgaG9haSBuZ2hpLCBsbyBuZ2FpIHZhIGJhdCBiaW5oLi4uDQoNCkNhaSBs YW8gaG9hbiBkb25nLCAiYmEgR2lhbSBkb2MiIGhvYXQgZG9uZyBjYWNoIG1hbmcgdHUgbmFtIDgg dHVvaSANCg0KTmdheSAxNC02LTIwMDcsIERhaSB0YSBUcmFuIFZhbiBWZSwgR2lhbSBkb2MgQ29u ZyBhbiB0aW5oIFRoYWkgQmluaCwga2kgdmEgY2FwIA0KQ2h1bmcgbWluaCB0aHUgbmhhbiBkYW4s IGNvIHNvIGhpZXUgMTUwNzA4NzAzLCBjaGluaCB0aHVjICJjYWkgbGFvIGhvYW4gZG9uZyIgY2hv IGJhIA0Kdm8gbGEgQnVpIFRoaSBLaW0gTGllbiwgdHUgImJhIGxhbyBnYW4gNjAgdHVvaSIsIHNp bmggbmdheSAyMC05LTE5NDkgdHJvIGxhaSBuZ2F5IDE0LTYtDQoxOTYwIHR1b2kgdGllbiBtYW4g a2luaC4gVGh1YyByYSBjdW5nIGNoYW5nIGNvIHBoZXAgbmhpZW0gbWF1IG5hbyBjYSwgZG8gbGEg c3UgdGhhdCBjYXkgDQpkYW5nIGN1YSBzdSBtYW4gdHJhIHRoYW0gbGFtLCBidW9jIG9uZyBWZSBw aGFpIHRyYSB2ZSBuZ3V5ZW4gdHJhbmcgZHVuZyBuZ2F5LCB0aGFuZywgDQpuYW0gc2luaCBjdWEg dm8uIE5ndW9uIGdvYyB2b24gZGEgeGF5IHJhIGNhY2ggZGF5IDE3IG5hbSB2ZSB0cnVvYyAobmFt IDE5OTMpLCBkbyANCmNvbmcgdGFjIHRyb25nIG5nYW5oIENvbmcgYW4sIG9uZyBUcmFuIFZhbiBW ZSBkYSBuaG8gZG9uZyBuZ2hpZXAgY2FpIHN1YSBobyBzbyBsaSBsaWNoLCANCmNodW5nIG1pbmgg dGh1IG5oYW4gZGFuIGNobyB2bywga2hhaSBraG9uZyBsZW4gMTEgdHVvaSwgZGUgZHUgdHVvaSBs YW0gY2hlIGRvIGh1dSB0cmkgDQp0aGVvIHF1eSBkaW5oLiBOZ2F5IDEwLTExLTE5OTMsIHZvIG9u ZywgYmEgQnVpIFRoaSBLaW0gTGllbiBjaGluaCB0aHVjIGNvIFF1eWV0IGRpbmggDQo4NS9RRCBu Z2hpIGh1dSB2b2kgYm8gaG8gc28gZ2lhIHNpbmggbmFtIDE5NDksIGhvbiBoYW4gb25nIFZlIChj aG9uZykgMTAgdHVvaSA/DQoNCkNodW5nIG1pbmggdGh1IGN1YSBiYSBCdWkgVGhpIEtpbSBMaWVu LiANCg0KU3UgdGhhdCBiaSBwaG9pIGJheSByYSBjdW5nIHR1IHBoYXQgaGllbiBjdWEgbmhhbiBk YW4uIFZhbyBjdW9pIG5odW5nIG5hbSA5MCBjdWEgdGhlIGtpIA0KdHJ1b2MsIHBodW9uZyBRdWFu ZyBUcnVuZywgdGhhbmggcGhvIFRoYWkgQmluaCBkYSBjbyBuaGlldSB0aW4gZG9uIHRob2ksIGRh bSB0aWV1IA0KInRyb25nIHBodW9uZyBjbyB2byBjdWEgbW90ICJzZXAiIHRyb25nIG5nYW5oIENv bmcgYW4gbW9pIGhvbiAzMCB0dW9pIGRhIGR1b2MgaHVvbmcgDQpsdW9uZyBodXUiLiBDaGluaCBx dXllbiBzbyB0YWkgY2hvIHJhIHNvYXQgbGFpIHRvYW4gYm8gZGFuaCBzYWNoIGh1dSB0cmkgdHJl biBkaWEgYmFuIA0KcGh1b25nIG5odW5nIGtob25nIGNvIHRydW9uZyBob3AgbmFvIG5odSBkYW4g cGhhbiBhbmguIFRyb25nIHRodWMgdGUsIG1vdCBzbyBsYW5oIA0KZGFvIGNodSBjaG90IGN1YSBw aHVvbmcgY28gYmlldCB2aWVjIG5heSBuaHVuZyBiYW4gdGhhbiBiYSBCdWkgVGhpIEtpbSBMaWVu IGtob25nIGhlIA0KZGFuZyBraSBuZ2hpIGh1dSB2YSBsaW5oIGx1b25nIHRhaSBwaHVvbmcuIENo byBkdSBjbyBiaWV0IGJhIExpZW4gZGFuZyBsaW5oIGx1b25nIGh1dSBvIA0KIm5nYWNoIiBuYW8g Y3VuZyBkYW5oIHBoYWkgbmdhbSBtaWVuZywga2hvbmcgYWkgZGFtIGRvbmcgZGVuICJyYXUgaHVt Iig/KSANCg0KVHUgcGhhdCBoaWVuIGN1YSBxdWFuIGNodW5nLCBjaHVuZyB0b2kgZGEgdHJ1YyB0 aWVwIGNvIGJ1b2kgbGFtIHZpZWMgdm9pIHRvIHRydW9uZyBodXUgdHJpIA0KdG8gMzggKG5vaSBi YSBMaWVuIGRhbmcga2kgaG8ga2hhdSB0aHVvbmcgdHJ1KSB2YSBjYW4gYm8gY2h1eWVuIHF1YW4g dGhlbyBkb2kgaHV1IHRyaSBjdWEgDQpwaHVvbmcgUXVhbmcgVHJ1bmcsIHN1IHZpZWMgbmV1IHRy ZW4gbW90IGxhbiBudWEgZHVvYyB4YWMgbGFwOiBraG9uZyBjbyBhaSB0ZW4gbGEgQnVpIA0KVGhp IEtpbSBMaWVuIGxpbmggbHVvbmcgaHV1IHRhaSBwaHVvbmcuIFRybyBsYWkgQ28gcXVhbiBCSFhI IHRpbmggVGhhaSBCaW5oLCBjaHVuZyANCnRvaSBwaGF0IGhpZW4gdHJlbiBtYW5nIHZpIHRpbmgg cXVhbiBsaSBub2kgYm8sIHRyb25nIGRhbmggc2FjaCBuZ2hpIGh1dSB0aGVvIHZhbiBMLCB0YWkg c28gDQp0aHUgdHUgNTQwLCBzbyBzbyAxMTIwNDgxLCBjbyB0ZW4gQnVpIFRoaSBLaW0gTGllbi4g Tmd1eWVuIHF1YW4geGEgRG9uZyBHaWFuZywgaHV5ZW4gDQpEb25nIEh1bmcuIE5vaSB0aHVvbmcg dHJ1IGRhbmcga2kgaHVvbmcgbHVvbmcgaHV1IHRhaSB0byAzOCwgcGh1b25nIFF1YW5nIFRydW5n LCANCnRoYW5oIHBobyBUaGFpIEJpbmgsIGRhbmcgaHVvbmcgbXVjIGx1b25nIDg1NC4zNjBkIC8g dGhhbmcgKHRob2kgZGllbSB0aGFuZyA2LTIwMDYpLiANClRoZSBtYSB0cmVuIDEwIG5hbSBxdWEs IGJhIExpZW4gdmFuIGxhbmcgbGUsIG5naGllbSBuaGllbiBsaW5oIGx1b25nIGh1dSB0aSB0aSBt YSBraG9uZyANCmNhbiBwaGFpIGRhbmcga2kgdm9pIGNoaW5oIHF1eWVuIHNvIHRhaS4gIA0KDQpT YXUgbmF5IHN1IHZpZWMgdm8gbG8sIGNodW5nIHRvaSBkdW9jIGJpZXQsIGhhbmcgdGhhbmcgY2Fu IGJvIGNoaSB0cmEgQkhYSCB0aGFuaCBwaG8gDQpUaGFpIEJpbmggcGhhaSB0cnVjIHRpZXAgbWFu ZyB0aWVuIGx1b25nIGh1dSBkZW4gdGFuIG5oYSB0cmFvIGNobyBiYSBMaWVuLiBUaGUgbW9pIGJp ZXQgDQp1eSBxdXllbiB2YSBhbmggaHVvbmcgY3VhIG9uZyBUcmFuIFZhbiBWZSwgdGhhdCBraHVu ZyBraGllcD8gDQoNClNvYXQgeGV0IGxhaSB0b2FuIGJvIGhvIHNvIGdpYSBtYW8gZGUgbmdoaSBo dXUgY3VhIGJhIEJ1aSBUaGkgS2ltIExpZW4gZGEgYm9jIGxvIGRheSByYXkgDQpzdSBiaSBoYWku IFRhaSBRdXlldCBkaW5oIHNvIDg1L1FELCBuZ2F5IDEwLTExLTE5OTMgY3VhIEdpYW0gZG9jIFNv IEdpYW8gdGhvbmcgVmFuIA0KdGFpIFRoYWkgQmluaCwgdGhpIDggdHVvaSBiYSBMaWVuIGRhIHRo YW0gZ2lhIGNhY2ggbWFuZzsgMTQgdHVvaSBsYSBxdWFuIG5oYW4gdGh1b2MgDQpUcnVuZyBkb2Fu IDk1MiAtIHZ1bmcgSSBIYWkgcXVhbjsgMTggdHVvaSBsYSBjb25nIG5oYW4gWGkgbmdoaWVwIGNv IGtoaSBHaWFvIHRob25nIFRoYWkgQmluaC4gDQpOaHVuZyB0YWkgQmFvIGNhbyBrZXQgcXVhIHhh YyBtaW5oIHNvIDEzL0tULCBuZ2F5IDIxLTUtMjAwNyBjdWEgUGhvbmcga2llbSB0cmEgDQpCSFhI IHRpbmggVGhhaSBCaW5oIGRhIHhhYyBkaW5oIGJhIExpZW4gY2hpIGNvIHRob2kgZ2lhbiBjb25n IHRhYyAxMCBuYW0sICh0dSAxMC0xOTgzIA0KZGVuIDExLTE5OTMpLCBkdXkgbmhhdCBjaGkgbyBt b3QgZG9uIHZpIGxhIFhpIG5naGllcCBjbyBraGkgZ2lhbyB0aG9uZyBUaGFpIEJpbmguIFRoZSAN Cm1hIGtob25nIGJpZXQgZHVhIHZhbyBjYW4gY3UgbmFvLCB0YWkgUXV5ZXQgZGluaCBuZ2hpIGh1 dSBjdWEgYmEgTGllbiBsYWkgZHVvYyB0aW5oIHRob2kgDQpnaWFuIHF1eSBkb2kgbGEgMjUgbmFt IDYgdGhhbmcuDQpDdW5nIGRvIGFwIGx1YyBjdWEgZHUgbHVhbiB4YSBob2kgdmEgYmFvIGNoaSwg ZG9uZyB0aG9pIGRlIGJhbyB0b2FuIGNobyBjYWkgZ2hlIHF1YW4gDQp0cnVvbmcgZGEgYnVvYyBv bmcgVHJhbiBWYW4gVmUgcGhhaSBkaWNoIHRoYW4gdHJ1YyB0aWVwICJkaWV1IGRpbmgiIHZvaSBs YW5oIGRhbyBCSFhIIA0KdGluaCBUaGFpIEJpbmguIE5nYXkgMTEtNi0yMDA3LCBCSFhIIHRpbmgg VGhhaSBCaW5oIHJhIFF1eWV0IGRpbmggc28gMDQvUUQsIGNoYW0gDQpkdXQgdHJhIGx1b25nIGh1 dSB2YSBkb25nIHRob2kgdHJhIGJhIEJ1aSBUaGkgS2ltIExpZW4gdmUgWGkgbmdoaWVwIENvIGto aSBnaWFvIHRob25nIA0KdmFuIHRhaSBUaGFpIEJpbmgsIHRyb25nIGtoaSBYaSBuZ2hpZXAgZGEg dGh1YyBoaWVuIGNodXllbiBkb2kgc2FuZyBDb25nIHR5IENQIGdhbiBjaHVjIA0KbmFtIG5heS4g VGh1IGhvaSBsYWkgc28gdGllbiA0OS4xODguMzAwZCBsdW9uZyBodXUgbWFuIHRyYSBtYSBiYSBM aWVuIGRhIGxpbmggKHRodSBsYXkgDQpsZSkgdHJvbmcgdG9uZyBnaWEgdHJpIGRhIHRodSBodW9u ZyBoYW5nIHRyYW0gdHJpZXUgZG9uZy4gTGUgcmEgdnUgdmllYyBuZXUgdHJlbiBwaGFpIGR1b2Mg DQpraG9pIHRvIHZhIHRydXkgY3V1IHRyYWNoIG5oaWVtIGhpbmggc3UsIHRoZSBuaHVuZyBraG9p IHRvIGFpIGtoaSBtYSBjaG9uZyBiYSBkYW5nIA0KbmdoZXUgbmdoZW4gbGEgR2lhbSBkb2MgQ29u ZyBhbiB0aW5oPyANCg0KVGllcCB0dWMgdHJvIGFvIHRodWF0IG1hbiB0cmE6IE5oYW4gdmllbiBj byB0cnVvYyBkb2FuaCBuZ2hpZXAsICJxdWEgY2F1IGNoZW0gdmFuIg0KDQpUdW9uZyByYW5nIG5o dW5nIHNhaSBwaGFtIG5ldSB0cmVuIHNlIGR1b2Mga2hhYyBwaHVjIHZhIGNoYW0gZHV0LCBkZSBy b2kgbmd1b2kgZG9pIA0KY3VuZyBjbyB0aGUgYm8gcXVhLiBOYW8gbmdvIGxvbmcgdGhhbSBjdWEg a2UgdGhhbSBuaHVuZyBraG9uZyBjbyBkYXksIGhvIGxhaSB0aWVwIHR1YyANCmxhbSAiYW8gdGh1 YXQiIGxhcCBobyBzbyBnaWEgbWFvIGd1aSBCSFhILiBPbmcgVHJhbiBWYW4gVmUgZGEgInNhaSIg YmEgSG9hbmcgVGhpIA0KSG9uZywgQ2h1IHRpY2ggSERRVCwga2llbSBHaWFtIGRvYyBDb25nIHR5 IENQIER1IGxpY2ggJiBUaHVvbmcgbWFpIEhhaSBCaW5oLCANCm1vdCBkb2FuaCBuZ2hpZXAgdHUg bmhhbiBkYSB0dW5nIGR1b2Mgb25nIGNoZSBjaG8sIGxhbSBobyBzbyBnaWEgZ3VpIEJIWEggZGUg Y2hvIGNvIA0KaG9pIHRpZXAgdHVjIGxhbSB0aHUgdHVjIGh1dSB0cmkgY2hvIHZvLiBEaWV1IG5n aGljaCBsaSBsYSwgdGFpIFRvIHRyaW5oIHNvIDY4L2N2LXRjLCBuZ2F5IDI2LQ0KMTItMjAwNiBj dWEgQ29uZyB0eSBDUCBEdSBsaWNoICYgVGh1b25nIG1haSBIYWkgQmluaCAoZGF1IG5oYW4gY29u ZyB2YW4gZGVuIGRlIG5nYXkgDQoxNy00LTIwMDcpLCBiYSBIb2FuZyBUaGkgSG9uZyBsYWkga2hl byBiaWEgcmEgdGhvaSBnaWFuIGNvbmcgdGFjIGN1YSBiYSBMaWVuIG5odSANCnNhdTogVHUgdGhh bmcgMS0xOTk1IGRlbiB0aGFuZyA0LTIwMDUgY29uZyB0YWMgdGFpIENvbmcgdHkgQ1AgdmFuIHRh aSBiaWVuIEhvYW5nIFBoYXQuIA0KVHUgNS0gMjAwNSBkZW4gbmF5ICh0aG9pIGRpZW0gY3VhIFRv IHRyaW5oKSBjb25nIHRhYyB0YWkgQ29uZyB0eSBDUCBEdSBsaWNoICYgVGh1b25nIA0KbWFpIEhh aSBCaW5oLiBOaHVuZyBjdW5nIHRhaSBUbyB0cmluaCBzbyAxMC9jdi10YywgbmdheSAxMC03LTIw MDcsIGJhIEhvbmcgbGFpIGdoaTogVHUgDQp0aGFuZyAxLTIwMDIgZGVuIHRoYW5nIDQgLSAyMDA1 LCBjb25nIHRhYyB0YWkgQ29uZyB0eSBDUCB2YW4gdGFpIGJpZW4gSG9hbmcgUGhhdC4gVHUgDQp0 aGFuZyA1LTIwMDUgZGVuIHRoYW5nIDctMjAwNywgY29uZyB0YWMgdGFpIENvbmcgdHkgQ1AgRHUg bGljaCAmIFRodW9uZyBtYWkgSGFpIA0KQmluaC4gQ2hvIGR1IHR1b2kgdGFjIGNodWEgY2FvLCB0 aGUgbWEgYmEgSG9uZyBsYWkgbHUgbGFuIGRlbiB2YXk/IFRyb25nIHRodWMgdGUsIGtob2kgDQpk aWVtIHRob2kgZ2lhbiBjb25nIHRhYyBjdWEgYmEgTGllbiBvIGhhaSBDb25nIHR5IG1hIHRvIHRy aW5oIG5ldSB0aGkgdGFpIHRob2kgZGllbSBkbyBjYSANCmhhaSBDb25nIHR5IGRldSBjaHVhIHRo YW5oIGxhcC4gDQoNClNvbmcgY2hpIG5oaW4gdmFvIGhhbmggdHUgY3VhIDIgdG8gdHJpbmggbmV1 IHRyZW4gZGEgYm9jIGxvIHJvIGhhbmggdmkgZ2lhbiBkb2kgY3VhIGJhIA0KSG9hbmcgVGhpIEhv bmcsIHRyb25nIGtoaSBiYSBCdWkgVGhpIEtpbSBMaWVuIGNodWEgaGUgY28gbWF0IGxheSBtb3Qg bmdheSBvIDIgQ29uZyANCnR5IHRyZW4gdmEgdHJvbmcgdGhvaSBkaWVtIGRvIGJhIExpZW4gZGFu ZyB0aHUgaHVvbmcgbHVvbmcgaHV1IGRlbiB0YW4gdGhhbmcgNiAtIDIwMDc/IA0KTWFjIGR1IGJp ZXQgcm8gaG8gc28gZ2lhIG1hbyB2YSBraG9uZyBjbyB0aGF0LCBraG9uZyBoaWV1IHZpIGxlIGdp IG1hIEJIWEggdGluaCBUaGFpIA0KQmluaCBsYWkgY2hhcCBuaGFuIGhvIHNvIGFvLCB0aWVwIHR1 YyBsYW0gdGh1IHR1YyB0aGFtIGdpYSBCSFhILCBjb25nIG5oYW4gbmd1b2MgdmUgDQp0cnVvYyAx NCBuYW0gY2hvIGJhIEJ1aSBUaGkgS2ltIExpZW4/IFBoYWkgY2hhbmcgdmkgdXkgcXV5ZW4sIG8g ZXAgY3VhIGNob25nIGJhIGhheSANCnZpIG1vdCBsaSBkbyBuYW8ga2hhYyBtYSBkZW4gbmF5IGNo dWEgYWkgbGkgZ2lhaSBub2kuIENoaSBkYW5nIHRodW9uZyB0aGF5IGNobyAzIGNhbiBibywgDQpu aGFuIHZpZW4gQkhYSCB0aW5oIFRoYWkgQmluaCBsYSBjaGkgQnVpIFRoaSBOaHVuZywgVnUgVGhp IFRoYW8gdmEgYW5oIEx5IENvbmcgDQpUcnVvbmcgY2hpIHZpICJjaGFwIGhhbmgiIG5naGllbSBs ZW5oIGN1YSBjYXAgdHJlbiwgbWF1IG1hbiBsYW0gdGh1IHR1YyBtYW4gdHJhIGd1aSANCkJIWEgg Y2hvIGJhLCBkZSByb2kgc2F1IGR1bmcgbW90IG5hbSBsYWkgZHVvYyBjaGluaCBjaG9uZyBiYSBy YSBsZW5oIHRvbmcgZ2lhbT8gRHV5IA0KY2hpIHJpZW5nIHRydW9uZyBob3AgZ2lhbiBsYW4gY3Vh IGJhIGxhaSBkdW9jICJtaWVuIHRydSIgbmFtIG5nb2FpIHZ1IGFuLiBWYSBuaHUgdGhlLCBiYSAN CkJ1aSBUaGkgS2ltIExpZW4gbmdoaWVtIG5oaWVuIGR1b2MgImRhYyBjYWNoIiBkdW5nIG5nb2Fp IHZvbmcgcGhhcCBsdWF0IHZhIGNvIGxlIGNoaSANCnZhaSBuYW0gbnVhIHRob2ksIGJhIGxhaSB0 aWVwIHR1YyBkdW9jIGh1b25nIGx1b25nIGh1dSB0cmk/DQoNCk5odW5nIGRpZXUgdHJvbmcgdGhh eS4uLg0KDQpRdWFuIHNhdCB0aGVvIGRvaSB0b2FuIGJvIGRpZW4gYmllbiBjdWEgdnUgdmllYyBu ZXUgdHJlbiwgbWF5IGFpIG1hIGNoYW5nIGRhdSBsb25nLiANCkJ1b24gdmkgY28gY2hlIHF1YW4g bGkgaGFuaCBjaGluaCBjdWEgY2h1bmcgdGEgY29uIG5oaWV1IGxvIGhvbmcgZGUgYm9uIGNvIGhv aSAiZHVjIA0KbnVvYywgYmVvIGNvIi4gQnVvbiB2aSBuaHVuZyBuaGEgY2h1YyB0cmFjaCBkYXkg cXV5ZW4gdXkga2hvbmcgZ2l1IG5naGllbSBraSBjdW9uZyANCnBoZXAgbnVvYywgYSB0b25nLCB0 aWVwIHRheSBjaG8gYm9uIGxvaSBkdW5nIGJvbiBydXQgdGllbiBjdWEgY3VhIE5oYSBudW9jIHZh IG5oYW4gZGFuLiANCkJ1b24gY2hvIHhhIGhvaSBkYXkgcmF5IGJvbiBxdWFuIHRoYW0gZGFuZyBo b2FuaCBoYW5oLCBjaG8gZHUgZGEgbmhpZXUgYm9uZyBsb2MgDQpuaHVuZyBraG9uZyB0dSBtb3Qg dGh1IGRvYW4gbmhvIG5oYXQgbmFvIGRlIHZvIHZldC4gQnVvbiBjaG8gdmkgcXVhbiBjaHVjIGRh eSBxdXllbiANCnV5IG5odSBvbmcgVHJhbiBWYW4gVmUgZGFuZyBnaXUgdHJvbmcgdHJhY2ggbyBt b3QgbmdhbmggcXVhbiB0cm9uZywgdGhhbmggdHJpIGFuIG5pbmggDQpjdWEgZGF0IG51b2MsIGNo byBkdWEgdGluIHlldSBjdWEgbmhhbiBkYW4gbGFpIGNvIG5odW5nIHZpZWMgbGFtIGdpYW4gZG9p LCBkZW4gbmh1IHZheQ0KDQpUcm9uZyBxdWEgdHJpbmggZGlldSB0cmEgbGFtIHNhbmcgdG8gdnUg dmllYyBuYXksIGNodW5nIHRvaSBjb24gdGllcCBuaGFuIGtoYSBuaGlldSB0aG9uZyANCnRpbiBj dWEgcXVhbiBjaHVuZyBwaGFuIGFuaCB2ZSBuaGlldSBzdSB2aWVjIGRpbmggbGl1IGN1YSBvbmcg VHJhbiBWYW4gVmUgdHJvbmcgbW90IHNvIA0KdnUgdmllYyBuZ2hpZW0gdHJvbmcga2hhYyBvIFRo YWkgQmluaCwgeGluIHNlIHBoYW4gYW5oIHRvaSBiYW4gZG9jLiBOaHVuZyB0YWkgdGhvaSBkaWVt IA0KbmF5LCBkdSBsdWFuIHhhIGhvaSBvIFRoYWkgQmluaCB0byByYSByYXQgYmF0IGJpbmggdmEg ZG9pIGhvaSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgY3VhIA0KVHJ1bmcgdW9uZyB2YSBkaWEgcGh1 b25nIHNvbSBsYW0gc2FuZyB0byBzdSB0aGF0LCB4dSBsaSBuZ2hpZW0gbWluaCB0aGVvIHF1eSBk aW5oIGN1YSANCnBoYXAgbHVhdCB4dW5nIHF1YW5oIHZpZWMgbGFtIGdpYSBobyBzbyBraGFpIGto b25nIHR1b2kgdmUgaHV1LCBnaWEgaG8gc28gZ3VpIEJIWEggY3VhIA0Kdm8gRGFpIHRhIFRyYW4g VmFuIFZlLiBEb25nIHRob2ksIGtpZW4gcXV5ZXQgdGh1IGhvaSBsYWkgZ2lhIHRyaSBkYSB0aHUg aHVvbmcgaGFuZyB0cmFtIA0KdHJpZXUgZG9uZyBtYSBiYSBCdWkgVGhpIEtpbSBMaWVuIGRhIGNo aWVtIGRvYXQsIHRyYSBsYWkgY29uZyBxdXkgTmhhIG51b2MuIENoYW0gZHV0IA0KdmEgeHUgbGkg aHV5IGJvIHRodSB0dWMgbWFuIHRyYSwgc28gQkhYSCBjdWEgYmEgTGllbiB0YWkgY28gcXVhbiBC SFhIIHRpbmggVGhhaSBCaW5oLiANCkRvIGxhIHZpZWMgbGFtIHRoaWV0IHRodWMgZ29wIHBoYW4g Y3VuZyBjbyBuaWVtIHRpbiBjdWEgZGFuIGRvaSB2b2kgRGFuZywgZGF5IGx1aSB0ZSANCnRoYW0g bmh1bmcgaGllbiBuYXksIHRoZSBoaWVuIHN1IGNvbmcgYmFuZywgbmdoaWVtIG1pbmggY3VhIHBo YXAgbHVhdC4gDQoNCmh0dHA6Ly9oYXRuYW5nLm5ldC9zaG93dGhyZWFkLnBocD9wPTM4MTMxMA0K DQpIdW5nIHRoYW4gSGFub2kgTmd1eWVuIER1YyBOaGFuaCB0aGFtIG5odW5nIA0KDQpUdW9uZyBO Z3V5ZW4gRHVjIE5oYW5oLCBnaWFtIGRvYyBTbyBDb25nIEFuIHRoYW5oIHBobyBIYSBOb2kgYmkg dGh1b2MgY2FwIHRvIGNhbyANCmxhIHRoYW0gbmh1bmcsIGN1YSBxdXllbiB2YSBjbyBxdWFuIGhl IHZvaSBkYW0geGEgaG9pIGRlbi4gDQoNCk5ndXllbiBUaWVuLCBtb3QgdmllbiBjaHVjIFNvIENv bmcgQW4gSGEgTm9pIGd1aSBkb24gdG8gY2FvIHRvaSBMZSBIb25nIEFuaCwgYm8gDQp0cnVvbmcg Q29uZyBBbiB2YSBuaGlldSBjaHVjIHNhYyBraGFjIGN1YSBjaGUgZG8sIGNhbyBidW9jIE5ndXll biBEdWMgTmhhbmggbmhpZXUgDQpkaWV1IHF1YSBsYSBkb24gbWEgY2h1bmcgdG9pIHBobyBiaWVu IGR1b2kgZGF5Lg0KDQooSGluaCB0cmVuOiBOZ3V5ZW4gRHVjIE5oYW5oLCBnaWFtIGRvYyBTbyBD b25nIEFuIHRoYW5oIHBobyBIYSBOb2kgKGJlbiBwaGFpKSANCmR1bmcgY2h1cCBoaW5oIHZvaSBj b24gdHJhaSwgTmd1eWVuIER1YyBRdWFuZyB0dSBRdWFuZyBiZW8gKGJlbiB0cmFpKS4gQm8gdGhh bSBuaHVuZyANCmRlIGNvbiBhbiBjaG9pIGtoZXQgdGllbmcgSGluaDogYmxvZyBIYUxvbmdWSVAu Y29tKQ0KDQpDb25nIGhvYSB4YSBob2kgY2h1IG5naGlhIFZpZXQgTmFtDQpEb2MgbGFwIC0gVHUg ZG8gLSBIYW5oIHBodWMNCg0KS2luaCBndWk6DQoNCi0gRC9jIEJvIHRydW9uZyBMZSBIb25nIEFu aA0KLSBEL2MgQmkgdGh1IFRoYW5oIHV5IFBoYW0gUXVhbmcgTmdoaQ0KLSBEL2MgQ2h1IG5oaWVt IFVCS1QgVHJ1bmcgdW9uZw0KLSBDYWMgZC9jIFRodSB0cnVvbmcgQm8gQ29uZyBhbg0KLSBEL2Mg Q2h1IHRpY2ggVUJORCBIYSBOb2kNCg0KVGh1YSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8hIFRvaSBs YSBOZ3V5ZW4gVGllbiwgaGllbiBkYW5nIGNvbmcgdGFjIHRhaSBDb25nIEFuIEhhIA0KTm9pLiBW b2kgZ2FuIDMwIGNodWMgbmFtIHRoYW0gbmllbiBjb25nIHRhYywgdG9pIGRhIHRyYWkgcXVhIG5o aWV1IGRvaSBnaWFtIGRvYywgY2h1bmcgDQpraWVuIG5oaWV1IGNodXllbiBidW9uIHZ1aSBjdWEg Q29uZyBBbiBIYSBOb2kuIE5odW5nIGNvIG1vdCBzdSB0aGF0IHRvaSB4aW4gbWFuaCBkYW4gDQp0 cmluaCBiYXkgdm9pIGNhYyBkb25nIGNoaSBsYW5oIGRhbyBsYSBjaHVhIGJhbyBnaW8gQ29uZyBB biBIYSBOb2kgbGFpIG5hdCBuaHUgaGllbiBuYXkgDQp2YSBuZ3VvaSBnYXkgcmEgdGluaCB0cmFu ZyBuYXkgY2hpbmggbGEgb25nIE5ndXllbiBEdWMgTmhhbmgsIGdpYW0gZG9jIENvbmcgQW4gSGEg Tm9pLg0KDQpUcnVvYyBkYXksIHZpZWMgY2hheSBjaHVjLCBjaGF5IHF1eWVuIGN1bmcgZGEgeGF5 IHJhIHRyb25nIENvbmcgQW4gSGEgTm9pIG5odW5nIA0KY2h1YSBtYW5nIHRpbmggY2hhdCBwaG8g Ymllbi4gTmh1bmcgdHUga2hpIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oIGxlbiBsYW0gZ2lhbSBkb2Mg DQp0aGkgdmllYyBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gZGEgdHJvIHRoYW5oIHBobyBiaWVuLCBk dW9uZyBuaGllbiwgdm9pIGJhdCBreSBhaSBtdW9uIA0KbGVuIGdpdSB2aSB0cmkgbGFuaCBkYW8s IGR1IG5obyBuaGF0IGxhIHBobyBjb25nIGFuIHBodW9uZy4gVmllYyBibyBuaGllbSwgbHVhbiBj aHV5ZW4gDQpkZXUgZG8gb25nIE5oYW5oIHF1eWV0IGRpbmggaGV0LiBDYWMgZG9uZyBjaGkgcGhv IGdpYW0gZG9jIGRldSBraG9uZyBjbyB2YWkgdHJvIGdpLiANCk5oaWV1IHRydW9uZyBob3AsIG9u ZyBOaGFuaCBuaGFuIHRpZW4gY2hheSBjaHVjLCBjaGF5IHF1eWVuIHJvaSwgbmh1bmcgYmkgZHUg bHVhbiANCkNvbmcgQW4gSGEgTm9pIGtob25nIGRvbmcgdGluaCwgdmkgc28gY2FuIGJvIGRvIGRh IHR1bmcgYmkga3kgbHVhdCwgb25nIE5oYW5oIGxhaSBsYXkgDQpkYW5oIGNhcCB0cmVuIGRlIGxh biBhdCwgbmh1OiAidHJ1b25nIGhvcCBuYXksIGFuaCBVdCwgYW5oIEJhLCBhbmggQm9uLi4uIG8g Qm8gdmEgQmkgdGh1LCANCmNodSB0aWNoIFRQIGRhIGRvbmcgeSByb2kiIGhvYWMgInRydW9uZyBo b3AgbmF5IGRvIGFuaCBVdCwgYW5oIEJhLCBhbmggQm9uLi4uIG8gQm8sIGQvYyANCkJpIHRodSwg Y2h1IHRpY2ggVFAgZ2lvaSB0aGlldSIuIFRodSBkb2FuIG5heSBjdWEgb25nIE5oYW5oIGFuaCBo dW9uZyB4YXUgZGVuIGNhYyBkL2MgDQpsYW5oIGRhbywgbmhhdCBsYSBuaHVuZyBhaSBraG9uZyBo aWV1IHRodSBkb2FuLCBjb24gbmd1b2kgdGhhdCBjdWEgb25nIE5oYW5oLg0KDQpHYW4gZGF5LCBv bmcgTmhhbmggZGFuZyBkdW5nIGNoaW5oIHNhY2ggbHVhbiBjaHV5ZW4gY2FuIGJvIGRlIHJ1bmcg ZG9hIGJ1b2MgbW9pIA0Kbmd1b2kgcGhhaSBjaGF5IGRlIGxheSB0aWVuOyBkb25nIHRob2kgdGFv IGNvIGRlIGRlIHR1IG5ndW9pIEhhIFRheSBjdSAob25nIE5oYW5oIGxhIA0Kbmd1b2kgSGEgVGF5 KSBuYW0gZ2l1IG5odW5nIGNodWMgdnUgcXVhbiB0cm9uZyBjdWEgQ29uZyBBbiBIYSBOb2kuIENv IGRvbmcgY2hpIA0KZGFuZyBsYW0gdHJ1b25nIG1vdCBkb24gdmkgb24gZGluaCwgcGhhdCBodXkg bmFuZyBsdWMgdG90LCBvbmcgTmhhbmggZGlldSBzYW5nIGRvbiB2aSANCmtoYWMgZGUgdGFvIGRp ZXUga2llbiBjaG8gZGFuIGVtIGxlbi4gT25nIEhhaSwgdHJ1b25nIHBob25nIGNhbmggc2F0IGdp YW8gdGhvbmcgZGFuZyANCmxhbSB0aHUgdHVjIG5naGkgaHV1LCB0aGF5IGNvIG5oaWV1IG5ndW9p IG11b24gdmFvIHZpIHRyaSBsYW5oIGRhbyBuYXksIG9uZyBOZ3V5ZW4gRHVjIA0KTmhhbmggdGhv bmcgcXVhIG1vdCBzbyBkZSB0dSBiYW4gdGluIHJhIGdpYSwgYWkgbXVvbiBsZW4gdHJ1b25nIHBo b25nIGNhbmggc2F0IGdpYW8gDQp0aG9uZyB0aGkgcGhhaSBub3AgMSB0cmlldSBkbyBsYS4gRGEg Y28gbmd1b2kgbm9wIDEgdHJpZXUgZG8gdmEgZGEgZHVvYyBvbmcgTmhhbmggY2hhbSANCmNob24g bGFtIHRydW9uZyBwaG9uZyBjYW5oIHNhdCBnaWFvIHRob25nIChkdW9uZyBuaGllbiwgc2F1IGto aSBsZW4gY2h1YyBobyBzZSB0aW0gbW9pIA0KY2FjaCB0aHUgaG9pIGxhaSBzbyB0aWVuIGRhIGRv IHJhIHZhIGRvIGNoaW5oIGxhIG5ndXllbiBuaGFuIGdheSByYSB0aWV1IGN1Yywgc2FjaCBuaGll dSANCm5oYW4gZGFuKS4gTW9pIG5ndW9uIHRpZW4gY2hheSBjaHVjLCBjaGF5IHF1eWVuIGRldSBk byB2ZSBnaWEgZGluaCBvbmcgTmd1eWVuIER1YyANCk5oYW5oLg0KDQpEYW0gY3VvaSBjb24gdHJh aSBvbmcgTmd1eWVuIER1YyBOaGFuaCBjdW5nIGxhIGRhbSBjdW9pIGt5IGN1Yywgc2FjIG11aSB4 YSBob2kgZGVuIA0KbmhhdCB0dSB0cnVvYyBkZW4gbmF5LiBOZ29haSB2aWVjIHRvIGNodWMgbGlu aCBkaW5oIGRpZW4gcmEgMDMgbmdheSBsaWVuIHZvaSBsdW9uZyBraGFjaCANCmxlbiBkZW4gbWF5 IG5naGluIG5ndW9pLCBvbmcgTmhhbmggY29uIHNhaSBtYXkgZGUgdHUgbGEgbmh1bmcgdGVuIHRy dW0geGEgaG9pIGRlbiANCihjaG9pIHZvaSBvbmcgTmhhbmggdHUga2hpIG9uZyB0YSBjb24gbGEg dHJ1b25nIHBob25nIGNhbmggc2F0IGRpZXUgdHJhKSBjYW0gdGhpZXAgbW9pIA0KZGVuIGdhcCBu aHVuZyB0ZW4gY28gbWF1IG1hdCB0cm9uZyBnaW9pIHhhIGhvaSBkZW4sIHRydW0gYnVvbiBsYXUs IGRvaSBubyB0aHVlLCBiYW8ga2UgDQpub2kgbGEgb25nIE5oYW5oIG1vaSBuaHVuZyB5ZXUgY2F1 IGtob25nIGR1b2MgZGVuIGR1IGRhbSBjdW9pLiBNb2kgY3VvaSBtYSBraG9uZyANCmNobyBkZW4g ZHUgZGFtIGN1b2kgdGhpIGNoaSBjbyBsYSB5ZXUgY2F1IG5vcCB0aWVuLCBnb2kgbGEgIm11bmcg dm9uZyBjaGF1Ii4gVHJ1bmcgYmluaCANCm1vaSBwaG9uZyBiaSAibXVuZyB2b25nIGNoYXUiIG5h eSBraG9uZyBkdW9pIDMwMDAgVVNELiBOaGlldSB0aWVuIG5lbiBjb24gdHJhaSBvbmcgDQpOaGFu aCAoTmd1eWVuIER1YyBRdWFuZykgZGEgdHJvIHRoYW5oIHRheSBjaG9pIGtoZXQgdGllbmcgSGEg Tm9pIChjaGkgY2FuIGxlbiBtYW5nIA0KSW50ZXJuZXQgZ28gTmd1eWVuIER1YyBRdWFuZyB0aGkg c2UgY28gbmhpZXUgYmFpLCBhbmggcGhhbiBhbmggdmllYyBhbiBjaG9pIGN1YSANCk5ndXllbiBE dWMgUXVhbmcpLg0KDQpYaW4ga2hhbmcgZGluaCByYW5nLCBnaWEgdHJ1b25nLCBkb2MgZG9hbiwg b25nIE5oYW5oIGtob25nIGtlbSBkYW4gYW5oIGRpIHRydW9jLCANCm5odW5nIG5pbmggaG90LCBs dXUgbWFuaCB0aGkgZGFuIGFuaCwgZGFuIGNoaSBkaSB0cnVvYyBnb2kgb25nIE5oYW5oIGxhIHN1 IHBodS4NCg0KVGh1YSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8hIE5odW5nIHZpZWMgb25nIE5ndXll biBEdWMgTmhhbmggbGFtIGRhIHZhIGRhbmcgbGFtIA0Kbmh1YyBuaG9pIENvbmcgQW4gSGEgTm9p LiBOZ3VvaSBkYW4ga2hvbmcgdGluIHZhbyBDb25nIEFuIEhhIE5vaS4gQ2FuIGJvLCBjaGllbiBz eSANCmtob25nIHRpbiB2YW8gbGFuaCBkYW8gQ29uZyBBbiBUUC4gSGEgTm9pLiBWaSB2YXksIHRv aSBkZSBuZ2hpIGNhYyBkb25nIGNoaSBsYW5oIGRhbyANCmNhbiBjbyBuaHVuZyBiaWVuIHBoYXAg Y2hhbiBjaGluaCwgY3VuZyBjbyBsYWkgQ29uZyBBbiBIYSBOb2k6DQoNCi0gVXkgYmFuIGtpZW0g dHJhIFRydW5nIHVvbmcga2llbSB0cmEgdG9hbiBkaWVuIHZlIG9uZyBOaGFuaA0KDQotIENhY2gg Y2h1YyBnaWFtIGRvYywgZGlldSBjaHV5ZW4gb25nIE5ndXllbiBEdWMgTmhhbmggdmUgVmFuIHBo b25nIEJvIGhvYWMgVmllbiANCmNoaWVuIGx1b2MuDQoNCi0gQm8gbmhpZW0gbmd1b2kgY28gdGFp LCBkdWMgbGFtIGdpYW0gZG9jIENvbmcgQW4gSGEgTm9pLiBUb3QgbmhhdCBsYSBjaG9uIGRvbmcg Y2hpIG8gDQpjYWMgQ3VjLCBUb25nIGN1YyBkZSBraG9uZyBkaW5oIGRhbmcgZ2kgZGVuIGNhYyB0 aWV1IGN1YyB0cnVvYyBkYXkgY3VhIENvbmcgQW4gSGEgDQpOb2kuDQoNCi0gQ2FjIGRvbmcgY2hp IGxhbmggZGFvIEJvIGNhbiBsYW0gdmllYyB2b2kgQmFuIEdpYW0gRG9jIENvbmcgQW4gSGEgTm9p IGRlIGNvIA0Kbmh1bmcgYmllbiBwaGFwIGxvYWkgYm8gaG9hbiB0b2FuIGhpZW4gdHVvbmcgY2hh eSBjaHVjLCBjaGF5IHF1eWVuIGhpZW4gbmF5Lg0KDQpDYWMgZG9uZyBjaGkgbGFuaCBkYW8gY3Ug a2hhY2ggcXVhbiBraWVtIHRyYSwgeHUgbHksIG5odW5nIHhpbiBkdW5nIHRpZXQgbG8gdGVuIHRv aS4NCg0KWGluIHRyYW4gdHJvbmcgY2FtIG9uIGNhYyBkb25nIGNoaSBsYW5oIGRhbyENCg0KSGEg Tm9pLCBuZ2F5IDExIHRoYW5nIDQgbmFtIDIwMDkNCk5ndXllbiBUaWVuDQoNCmh0dHA6Ly90aW5s ZXRyYWkud29yZHByZXNzLmNvbS8yMDEwLzA2LzA0L25ndXklRTElQkIlODVuLSVDMyVCMCVFMSVC QiVBOWMtbmhhbmgtdnVhLXRoYW0tbmh1bmctbGVuLWNoJUUxJUJCJUE5Yy1waG8tdCVFMSVCQiU5 NW5nLWMlRTElQkIlQTVjLXRyJUM2JUIwJUUxJUJCJTlGbmctYW4tbmluaC8gRGFuZyBib2kgdGlu bGV0cmFpIDA2LzA0LzIwMTAgDQoNClZ1YSB0aGFtIG5odW5nIGxlbiBjaHVjIHBobyB0b25nIGN1 YyB0cnVvbmcgQW4gTmluaA0KDQpOZ3V5ZW4gRHVjIE5oYW5oIGR1b2MgYm8gbmhpZW0gdmFvIGNo dWMgdnUgUGhvIFRvbmcgY3VjIHRydW9uZyBUb25nIGN1YyBBbiBuaW5oIA0KSUksIEJvIENvbmcg YW47IHZhbiBraWVtIG5oaWVtIGNhIGNodWMgZ2lhbSBkb2MgU28gQ29uZyBBbiBIYSBOb2k7IHF1 eWV0IGRpbmggYm8gDQpuaGllbSBsYSBkbyBMZSBIb25nIEFuaCCWIEJvIHRydW9uZyBCbyBDb25n IGFuIGt5ISANCg0KaHR0cDovL3d3dy5ncmVlbnNwdW4uY29tL2Jib2FyZC9xLWFuZC1hLWZldGNo LW1zZy50Y2w/bXNnX2lkPTAwQ0YwYyAoTEVOIE1BTkcgVGh1IHR1IDIxLCBUaGFuZyBCYXkgMjAw NCkNCg0KQ3UgVHJhbiBEYWkgU29uIHRvIGNhbyBCbyB0cnVvbmcgQ29uZyBhbiBMZSBIb25nIEFu aCAgDQoNCkhhIE5vaSwgbmdheSAyMCB0aGFuZyA3IG5hbSAyMDA0IA0KDQpLaW5oIGd1aTogDQot IEQvYyBUb25nIEJpIHRodSANCi0gRC9jIENodSBUaWNoIG51b2MgDQotIEQvYyBUaHUgdHVvbmcg Q2hpbmggcGh1IA0KLSBEL2MgQ2h1IHRpY2ggUXVvYyBob2kgDQotIEQvYyBCbyB0cnVvbmcgQm8g Q29uZyBhbiANCg0KVG9pIGxhOiBUcmFuIERhaSBTb24gLSA3NSB0dW9pIC0gNTcgbmFtIHR1b2kg RGFuZywgQ3V1IGNoaWVuIGJpbmgsIFRodW9uZyBiaW5oIHNvIG5hbywgDQpjYW4gYm8gVGllbiBr aG9pIG5naGlhIC0gSG8ga2hhdSB0aHVvbmcgdHJ1IHRhaTogNTEgcGhvIEhhbmcgQmFpLCBQaHVv bmcgSGFuZyBCYWksIA0KUXVhbiBIb2FuIEtpZW0sIFRoYW5oIHBobyBIYSBOb2kuIFhpbiBjbyBt YXkgbG9pIGNoYXQgdmFuIGNhYyBkb25nIGNoaS4gDQoNCjEpIEhvbSBxdWEsIHRvaSB2dWEgZHVv YyBuZ2hlIDEgdGluIGdpYXQgZ2FuOiBCbyB0cnVvbmcgQm8gQ29uZyBhbiBMZSBIb25nIEFuaCBk YSANCmRpZXUgZG9uZyBtb3QgRG9pIENvbmcgYW4gZGlldSB0cmEgY3VhIEJvIHRvaSBuZ2F5IDEw LzcvMjAwNCB0aWVuIGhhbmggYmF0IG5nbyBraGFtIA0KeGV0IG5oYSBvbmcgTGUgSG9uZyBIYSBv IDYyIE5nbyBRdXllbiwgc3VvdCB0dSAyMSBnaW8gMzAgbmdheSAxMC83IGRlbiAxIGdpbyAzMCBu Z2F5IA0KMTEvNyB2b2kgbHkgZG8gZHV5IG5oYXQgbGE6ICJDbyB0aW4gb25nIEhvbmcgSGEgZGFu ZyBjbyBvIHRyb25nIG5oYSAxIGJhbiB0YWkgbGlldSB2byANCmN1bmcgcXVhbiB0cm9uZyBkZSBu Z2F5IDE3LzYvMjAwNCBtYSBuZXUgZGUgbG90IHJhIG5nb2FpIGRhbiBjaHVuZyB0aGkgY28gdGhl IGdheSB0YWMgDQpoYWkgdm8gY3VuZyBsb24gbGFvIGNobyBEYW5nIHRhICg/KS4gRGF5IGxhIG5n dXllbiB2YW4gbG9pIHR1eWVuIGJvIGN1YSBvbmcgRGFpIHRhIERhbyANClRyb25nIFN5IC0gUGhv IEdpYW0gZG9jIENvbmcgYW4gVGhhbmggcGhvIEhhIE5vaSBnaWFpIHRoaWNoIGNobyBvbmcgTGUg SG9uZyBIYSB2YSANCmdpYSBkaW5oIG9uZyBIYSAtIG9uZyBTeSB0cmluaCB0cm9uZyBub2kgbXVj IHRpZXUgZHV5IG5oYXQgbGEgdGltIHRhaSBsaWV1IG5nYXkgMTcvNi8yMDA0LCANCm5nb2FpIHJh IGtob25nIGNvIGJhdCBjdSBtb3QgbXVjIHRpZXUgbmFvIGtoYWMuIEN1b2kgY3VuZyBzZSBjaGkg bGFtIGJpZW4gYmFuIGNvIGhheSANCmtob25nIGNvIHRhaSBsaWV1IG5nYXkgMTcvNi8yMDA0IHRh aSBuaGEgb25nIEhvbmcgSGEgbWEgdGhvaS4gDQoNCk9uZyBIb25nIEhhIHR1eSBiaSBiYXQgbmdv IHZhIHZpIGNodWEgZHVvYyBiaWV0ICJ0YWkgbGlldSBuZ2F5IDE3LzYvMjAwNCIgbGEgdGFpIGxp ZXUgZ2ksIA0KbmVuIHNhbiBzYW5nIGRlIERvaSBkaWV1IHRyYSB0aWVuIGhhbmgga2hhbSB4ZXQg dmkgdGluIHR1b25nIG8gbG9pIHR1eWVuIGJvIGN1YSBEYWkgdGEgDQpDb25nIGFuIERhbyBUcm9u ZyBTeS4gDQoNCk5odW5nIHNhdSBob24gMyB0aWVuZyBkb25nIGhvIGtoYW0geGV0LCBEb2kgQW4g bmluaCBkaWV1IHRyYSBraG9uZyB0aW0gdGhheSBjYWkgInRhaSANCmxpZXUgbmdheSAxNy82LzIw MDQiIGRhdSBjYS4gRGFuZyBsZSBobyBwaGFpIHhpbiBsb2kgb25nIEhvbmcgSGEgKHRoZW8gbG9p IGh1YSBjdWEgb25nIA0KRGFpIHRhIERhbyBUcm9uZyBTeSkgdmEgZGlldSBsYSBsdW5nIGxhIGhv IHR1eSB0aWVuIG5nYW5nIG5oaWVuIHR1eWVuIGJvIHRpY2ggdGh1IG1vdCBzbyANCnRhaSBsaWV1 IG1hIGhvIHR1eWVuIGJvIGxhIHRyYWkgdm9pIHF1YW4gZGllbSBjdWEgRGFuZywgbmh1IGNhYyBi YWkgdmlldCBjdWEgVHJ1bmcgdHVvbmcgDQpUcmFuIERvLCBjdWEgVGllbiBzaSBWYXQgbHkgTmd1 eWVuIFRoYW5oIEdpYW5nIHYudi4uLiANCg0KVHJvbmcgYmllbiBiYW4ga2hhbSB4ZXQgbWFuZyB2 ZSBCbywgb25nIEhvbmcgSGEgZGEgZ2hpIHJvIHkga2llbiBjdWEgbWluaC4NCiANCjIpIFRvaSBi ZW4gY28gZGkgbXVvbiB0aW0gInRhaSBsaWV1IG5nYXkgMTcvNi8yMDA0IiBsYSBjYWkgZ2k/IFR1 eSB0b2kgY2h1YSBkdW9jIHhlbSANCnRvYW4gdmFuIHRhaSBsaWV1IG5heSwgbmh1bmcgcXVhIGNh YyBiYW4gYmUgY2hvIGJpZXQsIHRvaSBjbyB0aGUgaGlldSBkdW9jIG5vaSBkdW5nIA0KY2hpbmgg Y3VhICJ0YWkgbGlldSBuZ2F5IDE3LzYvMjAwNCIgbmF5OiANCg0KYSkgRGF5IGxhIGJ1YyB0aHUg Y3VhIG5oaWV1IHZpIHR1b25nIGxpbmggdHJvbmcgUXVhbiBkb2ksIG5odW5nIGxhaSBkdW5nIHRl biBUaHVvbmcgDQp0dW9uZyBOYW0gS2hhbmgsIG5ndXllbiBQaG8gY2h1IG5oaWVtIFRvbmcgY3Vj IENoaW5oIHRyaSBRRE5EVk4sIG5ndXllbiB1eSANCnZpZW4gVHJ1bmcgdW9uZyBEYW5nIGNhYyBr aG9hIDUsIDYsIDcgZ3VpIGNobyBCYW4gY2hhcCBoYW5oIFRydW5nIHVvbmcgRGFuZyBDb25nIA0K c2FuIFZpZXQgTmFtLiANCg0KYikgQnVjIHRodSB0byBjYW8gY2FjIGhhbmggdmkgcGhhbSB0b2kg bmdoaWVtIHRyb25nIGN1YSBtb3Qgc28gY2FuIGJvIGJpZW4gY2hhdCB0cm9uZyANClRvbmcgY3Vj IElJLCBkdW5nIGRhdSBsYSBEYW5nIFZ1IENoaW5oIChUcnVuZyB0dW9uZykgdmEgTmd1eWVuIENo aSBWaW5oIChUaGlldSANCnR1b25nKS4gDQoNCkhvIGRhIGJpYSBkYXQgcmEgY28gY28gc28gYmkg bWF0IG5hbSB0cm9uZyBUbyBjaHVjIENJQSBjdWEgSG9hIEt5IGR1YSBjYWMgdGluIGJhby4gDQpI byBiYW4gbmhhdSBiaWEgY2h1eWVuOiBDSUEgZGEsIGRhbmcgbGllbiBsYWMsIGR1IGRvLCBjaGkg ZGFvIG1vdCBzbyBkb25nIGNhbiBibyBsYW5oIA0KZGFvIERhbmcgdmEgTmhhIG51b2MgdGEgY28g bmh1bmcgaG9hdCBkb25nIGNob25nIGxhaSBUbyBxdW9jLCB0cm9uZyBkbyBjbyBjYWMgZG9uZyAN CmNoaTogTm9uZyBEdWMgTWFuaCAtIE5ndXllbiBWYW4gQW4gLSBQaGFtIFZhbiBEb25nIC0gVm8g Tmd1eWVuIEdpYXAgLSBWbyBWYW4gDQpLaWV0IC0gUGhhbiBWYW4gS2hhaSAtIFRydW9uZyBUYW4g U2FuZyAtIFBoYW4gRGllbiAtIFBoYW0gR2lhIEtoaWVtIC0gQnVpIFRoaWVuIA0KTmdvIC0gTWFp IENoaSBUaG8gLSBMZSBWYW4gRHVuZyAtIFZvIFRoaSBUaGFuZyB2YSBoYW5nIGNodWMgY2FuIGJv IGNhcCBUdW9uZyB0cm9uZyANClF1YW4gZG9pIHYudi4uLiANCg0KTmh1bmcgZG9uZyBjaGkgdHJl biB2b24gbGEgbmh1bmcgY2FuIGJvIHRydW5nIGtpZW4sIG1hIGFpIGN1bmcgYmlldCwgdGhlIG1h IGRhIGJpIGJvbiANCnhhdSB0cm9uZyBUb25nIGN1YyBJSSBiYXkgZGF0LCB2dSBjYW8sIGJvaSBk ZW4uIA0KDQpOZXUgbmh1IHN1IGJpYSBkYXQgYXkgbGEgZG8gQ28gcXVhbiBUaW5oIGJhbyBIb2Eg S3kgQ0lBIGdheSByYSB0aGkgcXVhIGRlIGhpZXUsIG5odW5nIA0KZGF5IGxhaSBkbyBuaHVuZyBj YW4gYm8gbGF1IG5heSBkdW9jIERhbmcsIE5oYSBudW9jLCBRdWFuIGRvaSB0YSB0aW4gbmhpZW0s IHRpbiBkdW5nIA0KZ2F5IHJhLiANCg0KYykgT25nIE5hbSBLaGFuaCBraWVuIHF1eWV0IGRvaSBM YW5oIGRhbyBEYW5nIHZhIE5oYSBudW9jIGtpZW4gcXV5ZXQgeHUgdHJpLCBraG9uZyANCmR1b2Mg YmFvIGNoZS4gT25nIE5hbSBLaGFuaCBkb2kgcGhhaSBuZ2hpZW0gdHJpIGJvbiB0b2kgcGhhbSB2 YSBwaGFpIHh1IHRyaSBuZ2hpZW0gDQp2b2kgYm9uIGJhbyBjaGUgbyB0cm9uZyBEYW5nLCBiYXQg a2UgaG8gZ2l1IGNodWMgdnUgbmFvISANCg0KT25nIE5hbSBLaGFuaCBkb2kgdHJ1eSBjdXUgdHJh Y2ggbmhpZW0gY3VhIG9uZyBMZSBEdWMgQW5oIGRvaSB2b2kgY2FjIGhvYXQgZG9uZyBwaGFtIHRv aSBjdWEgVG9uZyBjdWMgSUkuIA0KDQpkKSBPbmcgTmFtIEtoYW5oIGRvaSBCbyBDaGluaCB0cmkg cGhhaSBiYW8gY2FvIHRvYW4gYm8gdnUgYW4gcmEgdHJ1b2MgQmFuIGNoYXAgaGFuaCANClRydW5n IHVvbmcgRGFuZyBjaHUga2hvbmcgZHVvYyB0dSBjb2kgbWluaCBjYW8gaG9uIFRydW5nIHVvbmcg RGFuZywgdmEgdHV5IHRpZW4gYmFvIA0KY2hlLCBibyBxdWEuIA0KDQplKSBTYXUga2hpIGR1b2Mg YmlldCBub2kgZHVuZyAidGFpIGxpZXUgbmdheSAxNy82LzIwMDQiIGN1YSBvbmcgTmFtIEtoYW5o LCB0b2kgdGhhdCBzdSANCmJhbmcgaG9hbmcgdmUgdGluaCBuZ2hpZW0gdHJvbmcgY3VhIGhvYXQg ZG9uZyB0b2kgcGhhbSBub2kgdHJlbiAobWEgRGFpIHR1b25nIFZvIA0KTmd1eWVuIEdpYXAgZGEg bm9pIGxhIHNhaSBsYW0gc2lldSBuZ2hpZW0gdHJvbmcpLiANCg0KVG9pIGN1bmcgaGlldSB0cnVv YyBraWEgdmEgaGllbiBuYXkgdHJvbmcgRGFuZyBjbyBjYWMgdGhlIGx1YyB2YW4gZGFuZyB0aW0g bW9pIGNhY2ggYmFvIA0KY2hlIHZvaSBjYWMgbHkgZG86IA0KIkdpdSBnaW4gc3Ugb24gZGluaCBj aGluaCB0cmkiICgxKSANCiJCYW8gdmUgdXkgdGluIGN1YSBUb25nIGN1YyBJSSIgKDIpIA0KDQpW aWVjIEJvIENvbmcgYW4gYmF0IG5nbyBraGFtIHhldCBuaGEgb25nIExlIEhvbmcgSGEgZGVtIG5n YXkgMTAvNy8yMDA0IHZ1YSBxdWEgIA0KY2h1bmcgdG8gb25nIExlIEhvbmcgQW5oIHRodW9jIHZl IHBoZSBtdW9uIGJ1bmcgYml0LCBiYW8gY2hlIHN1IHZpZWMuIA0KDQozKSBUb2kgbmdoaSBuZXUg dGh1IG5nYXkgMTcvNi8yMDA0IGN1YSBvbmcgTmFtIEtoYW5oIGR1b2MgbmhpZXUgbmd1b2kgZG9j IHRoaSBraG9uZyANCmNvIGFuaCBodW9uZyBnaSB4YXUgZG9pIHZvaSBEYW5nLCBkb2kgdm9pIE5o YSBudW9jIHRhIGNhLiANCg0KUXVhIHRodSBvbmcgTmFtIEtoYW5oIGd1aSBUcnVuZyB1b25nIERh bmcsIG1vaSBuZ3VvaSBjYW5nIHRoZW0gdGluIHR1b25nIGxhIERhbmcgDQp0YSB2YW4gbWFuaCB2 aSBkYSB2YWNoIG1hdCwgY2hpZW4gdGhhbmcgZHVvYyBib24gcGhhIGhvYWksIGJpZW4gY2hhdCwg ZHUgbm8gZGEgZGkgc2F1LCANCmxlbyBjYW8gISANCg0KRGF5IGxhIGJhaSBob2MgZGF0IGdpYSwg Z2l1cCBjaHVuZyB0YSBwaGF0IGhpZW4gdmEgbmhhbiBybyBuaHVuZyBwaGFuIHR1IHhhdSB4YSBk dSBsb2FpLCANCmtoYWMgdm9pIGJvbiBUcmFuIE1haSBIYW5oLCBCdWkgUXVvYyBIdXksIEx1b25n IFF1b2MgRHVuZywgTGEgVGhpIEtpbSBPYW5oLCBWdSANClh1YW4gVHJ1b25nIHYudi4uLiANCg0K VmllYyBuZ2hpZW0gdHJpIGJvbiB0b2kgcGhhbSB0cm9uZyBUb25nIGN1YyBJSSB2YSB2aWVjIHh1 IHRyaSBib24gYmFvIGNoZSBzZSBnaXVwIGNobyANCkRhbmcgdGEgY28gbmhpZXUgYmFpIGhvYyBx dXkgZ2lhIGRlIHhheSBkdW5nIERhbmcgdGEgLSBRdWFuIGRvaSB0YSB2dW5nIG1hbmguIA0KDQo0 KSBSaWVuZyBkb2kgdm9pIGQvYyBMZSBIb25nIEFuaCAtIEJvIHRydW9uZyBCbyBDb25nIGFuLCB0 b2kgY28gbWF5IGtpZW4gbmdoaSB2YSBjdW5nIA0KbGEgbWF5IGxvaSBraHV5ZW4gdGFtIHRpbmg6 IA0KDQphKSBEb25nIGNoaSBuZW4gY2h1eWVuIHNhbmcgbGFwIHRydW9uZyBraWVuIHF1eWV0IGRp ZXUgdHJhIGRlIG5naGllbSB0cmkgYm9uIHRvaSBwaGFtIA0KdHJvbmcgVG9uZyBjdWMgSUkgdmEg eHUgbHkgbmdoaWVtIGRvaSB2b2kgY2FjIHBoYW4gdHUgYmFvIGNoZSB2dSBuYXkuIA0KDQpiKSBW b2kgZC9jIExlIEhvbmcgSGEsIHZvbiBsYSBjaG8gcXVlbiBiaWV0IHRoYW4gdGluaCB2YSBjb25n IHRhYyB2b2kgbmhhdSBxdWEgbmh1bmcgDQpuYW0gdGhhbmcgdHJvbmcgaGFpIGN1b2Mga2hhbmcg Y2hpZW4gdHJ1b25nIGt5LCB0b2kgZHVvYyBiaWV0IGRvIGxhIG1vdCBjYW4gYm8gTGFvIA0KdGhh bmggdHJvbmcgbmdhbmggQ29uZyBhbiAoZGEgdGhhbSBnaWEgY29uZyB0YWMgQ29uZyBhbiB0dSAy MC84LzE5NDUpIGRhIHR1bmcgZHVvYyANClRydW5nIHVvbmcgRGFuZyBjdSBkaSBob2MgbHkgbHVh biB0YWkgVmllbiBNYWMgLSBMZW5pbiBvIEJhYyBLaW5oIGN1bmcgdm9pIGNhYyBkL2MgDQpOZ3V5 ZW4gRHVjIFRhbSwgSG9hbmcgVHVuZyB2LnYuLi4gZGEgdHVuZyBwaHUgdHJhY2ggVHJ1b25nIENv bmcgYW4gVHJ1bmcgdW9uZyANCigxOTUzIC0gMTk1NiksIGxhIENoYW5oIFZhbiBwaG9uZyB2YSBW dSB0cnVvbmcgVnUgVG9uZyBob3AgQm8gQ29uZyBhbiwgZGEgdHVuZyBsYSANClRydW9uZyBiYW4g VG9uZyBrZXQgTGljaCBzdSBOZ2FuaCBDb25nIGFuLCBsYSBUcnVvbmcgYmFuIE5naGllbiBjdXUg Q2hpIHZpZW4gQW4gDQpuaW5oIE1pZW4gTmFtIHN1b3QgMjAgbmFtIGtoYW5nIGNoaWVuIGNob25n IE15LCBkYSB0dW5nIGxhIHV5IHZpZW4gVGh1b25nIHRydWMgDQpEYW5nLCBEb2FuIEJvIENvbmcg YW4gKDE5NTYgLSAxOTc0KSwgZHVvYyBwaG9uZyBxdWFuIGhhbSBEYWkgdGEgdHUgbmFtIDE5NTcu IA0KDQpEb25nIGNoaSBCbyB0cnVvbmcgbmVuIGNvIHRoYWkgZG8gdHJhbiB0cm9uZyBkZW4geGlu IGxvaSB2ZSBoYW5oIHZpIGtoYW0geGV0IG5oYSBkL2MgDQpIb25nIEhhIGRlbSBuZ2F5IDEwLzcv MjAwNCB2dWEgcXVhLiANCg0KYykgVm9pIGNhYyBjYW4gYm8gY3VhIEJvIGRhIHZpIHBoYW0gUGhh cCBsdWF0IHRyb25nIHZ1IGtoYW0geGV0IGRlbSBuZ2F5IDEwLzcvMjAwNCANCmNhbiBjbyBzdSBr aWVtIHRyYSB2YSB4dSBseSBjdSB0aGUgdm9pIHR1bmcgY2FuIGJvIGNvIHRyYWNoIG5oaWVtLiAN Cg0KZCkgTmhhbiBkYXksIHRvaSBjdW5nIG11b24gbmhhYyBkL2MgY2hvIGtpZW0gdHJhIHZhIHN1 YSBjaHVhIG5odW5nIHNhaSBsYW0gdHJvbmcgdmllYyANCmJpYSBkYXQgdnUgY2FvIG5odW5nIG5n dW9pIHZvIHRvaSBsYSAiR2lhbiBkaWVwIiBuaHUgY2FjIHZ1IE5ndXllbiBLaGFjIFRvYW4gLSBQ aGFtIA0KSG9uZyBTb24gLSBOZ3V5ZW4gVnUgQmluaCB2dWEgcXVhLiANCg0KTmV1IGQvYyBuZ2hp ZW0gdHVjIHN1YSBjaHVhIG5odW5nIHNhaSBsYW0gdHJlbiB0aGkgdG9pIG5naGkgZC9jIGNvIHRo ZSB4dW5nIGRhbmcgbyBsYWkgY2h1YyB2dSBCbyB0cnVvbmcgQm8gQ29uZyBhbi4gDQoNCihUcmFu IERhaSBTb24gLSA3NSB0dW9pIC0gNTcgbmFtIHR1b2kgRGFuZywgQ3V1IGNoaWVuIGJpbmgsIA0K NTEgcGhvIEhhbmcgQmFpLCBQaHVvbmcgSGFuZyBCYWksIFF1YW4gSG9hbiBLaWVtLCBUaGFuaCBw aG8gSGEgTm9pLikgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMDYvMDQvNTY0 MDI0LyAyNS8wNC8yMDA2IDEyOjA5IChHTVQrNykgDQoNCk9uZyBMZSBIb25nIEFuaCwgdGVuIHRo dW9uZyBnb2kgbGEgVXQgQW5oLCBnaW9pIHRpbmg6IE5hbSANCg0KTmdheSBzaW5oOiAxMi8xMS8x OTQ5IA0KDQpRdWUgcXVhbjogWGEgVmluaCBCaW5oIEJhYywgaHV5ZW4gVmluaCBUaHVhbiwgdGlu aCBLaWVuIEdpYW5nLiAgDQoNCk5vaSBvIGhpZW4gbmF5OiBRdWFuIDEgVGhhbmggcGhvIEhvIENo aSBNaW5oIA0KDQoxOTYwLTE5NjU6IERvYW4gVmFuIG5naGUgeGEgVmluaCBCaW5oLCBuaGFuIHZp ZW4gUGhvbmcgR2lhbyBkdWMgaHV5ZW4gVmluaCBUaHVhbiANCjE5NjYtMTk2NzogQ2FuIGJvIHR1 eWVuIGh1YW4geGEsIENoYW5oIHZhbiBwaG9uZyB4YSBEb2kgDQoxOTY4LTA1LzE5Njg6IFBobyBi aSB0aHUgZG9hbiBUaGFuaCBuaWVuIHhhLCBjYW4gYm8gRG9hbiBUTiBodXllbiANCjA2LzE5Njkt MDYvMTk3NzogQ2FuIGJvIGRvYW4gVE4gdGluaCwgVXkgdmllbiBCQ0gsIFVWIFRodW9uZyB2dSBE b2FuIFROIHRpbmggS2llbiBHaWFuZywgQmkgdGh1IERvYW4gVE4gdGhpIHhhIFJhY2ggR2lhIA0K MDcvMTk3Ny0wNi8xOTgyOiBQaG8gQmkgdGh1IGRvYW4gVE4gdGluaCwgdGluaCB1eSB2aWVuLCBC aSB0aHUgZG9hbiBUTiB0aW5oIEtpZW4gR2lhbmcgDQowNy8xOTgyLTA5LzE5ODY6IFRpbmggdXkg dmllbiwgUGhvIHRydW9uZyBCYW4gVG8gY2h1YyBUaW5oIHV5IEtpZW4gR2lhbmcgDQoxMC8xOTg2 LTA2LzE5ODc6IFV5IHZpZW4gVGh1b25nIHZ1LCBDaHUgbmhpZW0gVUIgS2llbSB0cmEgdGluaCB1 eSBLaWVuIEdpYW5nIA0KMDcvMTk4Ny0wNy8xOTkwOiBVeSB2aWVuIFRodW9uZyB2dSBUaW5oIHV5 LCBUcnVvbmcgYmFuIFRvIGNodWMgVGluaCB1eSwgQmkgdGh1IGh1eWVuIHV5IENoYXUgVGhhbmgs IHRpbmggS2llbiBHaWFuZyANCjA4LzE5OTAtMDgvMTk5MTogVXkgdmllbiBUaHVvbmcgdnUsIFRy dW9uZyBCYW4gVG8gY2h1YyBUaW5oIHV5IEtpZW4gR2lhbmcgDQowOS8xOTkxLTA1LzE5OTY6IFBo byBCaSB0aHUgdGh1b25nIHRydWMgVGluaCB1eSwgQmkgdGh1IFRpbmggdXksIENodSB0aWNoIEhE TkQgdGluaCBLaWVuIEdpYW5nIA0KMDYvMTk5Ni0wMy8yMDAxOiBVeSB2aWVuIFRydW5nIHVvbmcg RGFuZywgQmkgdGh1IFRpbmggdXkgS2llbiBHaWFuZywgUGhvIGNodSBuaGllbSBVeSBiYW4gS2ll bSB0cmEgVHJ1bmcgdW9uZyANCjA0LzIwMDEtMjAwMjogVXkgdmllbiBCbyBDaGluaCB0cmksIEJp IHRodSBUcnVuZyB1b25nIERhbmcsIENodSBuaGllbSBVeSBiYW4gS2llbSB0cmEgVHJ1bmcgdW9u Zy4gDQoyMDAyLW5heTogQm8gdHJ1b25nIEJvIENvbmcgYW4gDQoNCmh0dHA6Ly9ib3hpdHZuLndv cmRwcmVzcy5jb20vMjAxMC8wOC8yNC9tJUUxJUJCJTk5dC12JUUxJUJCJUE1LW4tbCVFMSVCQiU5 Qm4tbmglRTElQkElQTV0LW4lQzYlQjAlRTElQkIlOUJjLWIlRTElQkElQTN5LW5hbS1uYXktY2gl QzYlQjBhLWQlQzYlQjAlRTElQkIlQTNjLXglRTElQkIlQUQtbC8gTm9uZyBkYW4gQmluaCBEdW9u ZyAgKGJ2biBwb3N0IG9uIDI0LzA4LzIwMTAgMzo0MCBzYW5nKSAgDQoNCkNvbmcgYW46IE1vdCB2 dSBhbiBsb24gbmhhdCBudW9jLCBiYXkgbmFtIG5heSBjaHVhIGR1b2MgeHUgbHkhDQoNClNhaSBw aGFtIGRvbmcgdHJvaSwgbmh1bmcgY2h1YSBkb25nIHRvaSBDaGluaCBwaHUgDQoNCjEgLSJOZ3Vv aSB0byBjYW8ga2hpZXUgbmFpIHZhIHlldSBjYXUgdGhhbmggdHJhIiBraG9uZyBkdW9jIGFpIGhv aSB0b2kgdmEga2hvbmcgZHVvYyBiaWV0IHRpIGdpIHZlIGtldCBxdWEgdGhhbmggdHJhLiAgDQoN ClRoYW5nIDExLTIwMDcsIGNodW5nIHRvaSwgaG9uIGJhIG11b2kgbmd1b2kgZGFuLCBkYSB0aW0g ZHUgY2FjaCBkZSByYSBIYSBOb2kga2hpZXUgDQpraWVuIHZpZWMgY2hpbmggcXV5ZW4gdGluaCBC aW5oIER1b25nIHRodSBob2kgdmEgYm9pIHRodW9uZyBkYXQgdHJhaSBwaGFwIGx1YXQgbWEgbGFp IA0KY3VvbmcgY2hlIGRlIHRodWMgaGllbiBjYWMgcXV5ZXQgZGluaCBuYXkuIFNhdSBuaGlldSBu Z2F5IGFuIGNodWMgbmFtIGNobyB0YWkgdHJ1IHNvIA0KdGllcCBkYW4gY3VhIFRydW5nIHVvbmcg ZGFuZyB2YSBOaGEgbnVvYywgdmEgZGF1IHRyYW5oIHF1eWV0IGxpZXQgdm9pIGNhbiBibyB0YWkg dHJ1IHNvIA0KdGllcCBkYW4sIGNodW5nIHRvaSBkdW9jIGh1YSBsYSBjbyBxdWFuIHRpZXAgZGFu IHNlIGJhbyBjYW8gbGVuIGNhcCB0cmVuIGRlIHRvIGNodWMgdGhhbmggDQp0cmEgbGFtIHJvIG5v aSBkdW5nIGNodW5nIHRvaSBraGlldSBraWVuLiBTdW90IG5hbSAyMDA4LCBraG9uZyBhaSB0aWVw IHh1YywgdGltIGhpZXUgdmEgDQp0cmEgbG9pIGNobyBjaHVuZyB0b2kgYmlldCBDaGluaCBwaHUg ZGEgdGhhbmggdHJhIGNodWEsIGtldCBxdWEgbmh1IHRoZSBuYW8uIENoaSB0aGF5IHRyZW4gDQpi YW8gY2hpLCBUaGFuaCB0cmEgZGEgbGFtIHZpZWMgdm9pIHRpbmggQmluaCBEdW9uZyB2YSBkYSBw aGF0IGhpZW4gY28gbmhpZXUgInNhaSBwaGFtIA0KZG9uZyB0cm9pIiwgInNhaSBwaGFtIGNvIGJh biBzbyAgdm9pIHF1eSBkaW5oIGN1YSBDaGluaCBwaHUgdHJvbmcgbGluaCB2dWMgYm9pIHRodW9u ZyANCmdpYWkgcGhvbmcgbWF0IGJhbmciLCB2YSAidHJ1YyBsb2kgdGllbiB0eS4uLiB0YWkgc2ll dSBkdSBhbiBLaHUgbGllbiBob3AgY29uZyBuZ2hpZXAgLSANCmRpY2ggdnUgLSBkbyB0aGkgdGlu aCBCaW5oIER1b25nIi4uLiANCg0KMiAtIFNhdSB0aGFuaCB0cmEsIGNoaW5oIHF1eWVuIHRyYSB0 aHUgbmh1bmcgbmd1b2kga3kgZG9uIHZhIGRpIGtoaWV1IGtpZW4sIHRhbiBiYW8gdmEga2hvYyBs aWV0IGhvbiB0cnVvYy4NCg0KVGhheSBiYW8gY2hpIGxvYW4gdGluLCBjaHVuZyB0b2kgeWVuIGNo aSB2YSBjaG8gZG9pIE5oYSBudW9jIHh1IGx5IHNhaSBwaGFtLCB0cmEgbGFpIHN1IA0KY29uZyBi YW5nIHZhIG5odW5nIHF1eWVuIGxvaSBob3AgcGhhcCBjaG8gbWluaC4gTmh1bmcgZGF1IG5hbSAy MDA5LCBVQk5EIHRpbmggDQpCaW5oIER1b25nIGxhaSBnb2kgY2hvIGNodW5nIHRvaSBuaHVuZyBx dXlldCBkaW5oIGJvaSB0aHVvbmcgZGF0LCBjYW4gY3UgdmFvIFF1eWV0IA0KZGluaCAxNjQvMjAw My9RRCBuZ2F5IDIzLTYtMjAwMyBjdWEgQ2h1IHRpY2ggVUJORCB0aW5oIEJpbmggRHVvbmcgdmEg Y2FjIHF1eWV0IA0KZGluaCB0aHUgaG9pIGRhdCBkYSBkdW9jIHRpbmgsIGh1eWVuLCB0aGkgYmFu IGhhbmggdHJhaSBwaGFwIGx1YXQgdHUgdHJ1b2Mga2hpIGRlIGFuIEtodSANCmxpZW4gaG9wIGR1 b2MgQ2hpbmggcGh1IHBoZSBkdXlldC4gRG9uZyB0aG9pLCBVQk5EIHRpbmgsIGh1eWVuLCB0aGkg Y3VuZyBjbyBjb25nIHZhbiANCmtoYW5nIGRpbmggbGEgUXV5ZXQgZGluaCAxNjQvMjAwMy9RRCBu Z2F5IDIzLTYtMjAwMyBjdWEgQ2h1IHRpY2ggVUJORCB0aW5oIEJpbmggDQpEdW9uZyB2YSBjYWMg cXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBkYSBiYW4gaGFuaCB0cnVvYyBkYXkgbGEgaG9hbiB0b2Fu IGR1bmcgcGhhcCBsdWF0LiANCk5ldSBuaHVuZyBuZ3VvaSBjb24gbGFpIGtob25nIGNoaXUgbGFu aCB0aWVuIGdpYW8gZGF0LCBjaGluaCBxdXllbiBzZSB0byBjaHVjIGN1b25nIA0KY2hlLg0KVGhh bmcgMy0yMDA5LCBjaHVuZyB0b2kgbGFpIHBoYWkga2VvIG5oYXUgcmEgSGEgTm9pLiBHYW4gbW90 IHRoYW5nIHRyb2kgdG9pIGx1aSwgY2hvIGRvaSwgDQpjaHVuZyB0b2kgY2hpIG5oYW4gZHVvYyBt b3QgZ2lheSBjdWEgdHJ1IHNvIHRpZXAgZGFuIGNodXllbiBkb24gdHJvIHZlIGNobyB0aW5oIEJp bmggDQpEdW9uZyBnaWFpIHF1eWV0LiBDb24gVXkgYmFuIERhbiBjaHUgdmEgUGhhcCBsdWF0IGN1 YSBNYXQgdHJhbiBUbyBxdW9jIFRydW5nIHVvbmcgDQp0aGkgY2hvIG1vdCBjb25nIHZhbiBjaHV5 ZW4gZG9uIGRlIG5naGkgVGh1IHR1b25nIGdpYWkgcXV5ZXQuDQoNCkNodW5nIHRvaSB0cm8gdmUg dGluaC4gVmEgbGFuIG5heSBraG9uZyBwaGFpIGNobyBkb2kgbGF1LiBVQk5EIHRpbmgsIGh1eWVu LCB0aGkgZGEgbGllbiANCnR1YyBiYW4gaGFuaCBjYWMgcXV5ZXQgZGluaCByb2kgdG8gY2h1YyBj dW9uZyBjaGUgZGUgdGh1IGhvaSBkYXQgY3VhIFhYWCBobyBjaHVhIGNoaXUgDQpuaGFuIHRpZW4u IENhY2ggbGFtIGN1YSBobyBib2MgbG8gcm8gcmFuZyBtdWMgZGljaCB0cmEgdGh1IG5odW5nIGtl IGRhbSBjaG9uZyBsYWkgY2h1IA0KdHJ1b25nIGN1YSB0aW5oLiBIbyBtdW9uIGNodW5nIHRvIGNo byBtb2kgbmd1b2kgYmlldCBsYTogYWkgZGFtIGJlIG5hbmcgY2hvbmcgdHJvaSB0aGkgDQpyb3Qg Y3VvYyBzZSBwaGFpIHRyYW5nIHRheS4gSG8gZGEgbGllbiB0dWMgaGFtIGRvYSwga2h1bmcgYm8g dGluaCB0aGFuIGNodW5nIHRvaSBsaWVuIHR1YyANCnRyb25nIHNhdSBuYW0gcXVhIG5heSBsYSBs dWMgY2h1bmcgdG8gaG8ga2hvbmcgcGhhaSBjaGkgbm9pIHN1b25nLiANCg0KTWFpIGNobyBkZW4g bmdheSBob20gbmF5LCBnaXVhIHRoYW5nIDggbmFtIDIwMTAsIG5odW5nIG5ndW9pIGNoYXAgbmhh biBsYW5oIHRpZW4gDQpnaWFvIGRhdCB0aGkgbmhhIGN1YSB2YW4gbyBuZ3V5ZW4gY2h1YSBwaGFp IGRpIGRvaSwgdnVvbiB0dW9jLCBob2EgbWF1IHZhbiBjdSB0aWVwIHR1YyANCmtoYWkgdGhhYy4u LiB0cm9uZyBraGkgY2h1bmcgdG9pIG8gbmdheSBiZW4gY2FuaCwgdHJvbmcgY3VuZyBtb3Qga2h1 IHZ1YywgdGhpIGRhIGJpIGN1b25nIA0KY2hlIHR1IHRoYW5nIDUtMjAwOSBkZW4gbmdheSAyOS0x Mi0yMDA5LiANCg0KTmd1b2kgYmkgY3VvbmcgY2hlIHRoaSBuaGEgY3VhIGJpIGRhcCB0YW4gbmF0 LCBydW9uZyB2dW9uIGNheSBjb2ksIGhvYSBtYXUgYmkgdWkgc2FjaCwgDQpnaWEgc3VjIHRoaSBi aSBjaG9uIHNvbmcgaG9hYyBiYXQgZGksIHRob2MgbHVhIHh1YyBoZXQsIHF1YW4gYW8sIGRvIGRh dCwga2UgY2EgY2hlbiBkdWEgDQpjdW5nIGxheSBraG9uZyBjb24gdGh1IGdpLiBDaHVuZyB0b2kg Y28gZGF5IGR1IHBoaW0sIGFuaCB2YSBnaWF5IHRvIGNodW5nIG1pbmggc3UgdGhhdCANCnRhbiBh YyBuYXkuIFNhdSBjdW9uZyBjaGUsIGNvIG5ndW9pIHBoYWkgZHVuZyB0cmFuaCwgbGEsIGJhdC4u LiBjaGUgbGV1IHRhbSBkZSBvLiBDaGluaCANCnF1eWVuIHRpZXAgdHVjIGNobyBsdWMgbHVvbmcg dG9pIHRoYW8gZ2lvLCBkb3QgcnVpLiBEZW0gY2EgZ2lhIGRpbmggc2FuZyBudW9uZyBuYXUgbmhh IA0KYmVuIGNhbmggKHZhbiBjb24gbyB5ZW4gdmkgY2hhcCBuaGFuIGxheSB0aWVuLCBnaWFvIGRh dCkgdGhpIGNoaW5oIHF1eWVuIHRpZXAgdHVjIGRlbiBkZSANCmRhcCBwaGEgbmhhIGNobyBvIHRh bS4gQ2h1IG5oYSBwaGFuIHVuZyBxdXlldCBsaWV0IG1vaSBjaGl1IGJvIGRpLiBMdWMgbHVvbmcg Y3VvbmcgY2hlIA0KdGhpIGhhbmcgbmdhbiBuZ3VvaSwgZGF5IGR1IGRhaSBkaWVuIGN1YSBiYSBj YXAgdGluaCwgaHV5ZW4gdGhpIHZhIHhhOyBkYXkgZHUgY2FjIHRoYW5oIA0KcGhhbjogZGFuZywg Y2hpbmggcXV5ZW4sIHRoYW5oIG5pZW4sIGNvbmcgYW4uLi4odGluaCwgaHV5ZW4sIHhhKTsgdm9p IGRheSBkdSB0cmFuZyBiaSwgdnUgDQpraGkgcGh1b25nIHRpZW4gY2FuIHRoaWV0LiBDaGkgY2Fu IGFpIGNvIHRoYWkgZG8gbXVvbiBuZ2FuIGNhbiwgY2hvbmcgY3UgbGFpIGxhIHNlIGJpIGRhbmgs IA0KYmkgYmF0IGRlbSBkaS4gDQoNClZhIG5odW5nIGhhbmggdmkgInZpIG11YyB0aWV1IGljaCBu dW9jLCBsb2kgZGFuIiBuYXkgY3VhIGNoaW5oIHF1eWVuIGRhIGR1b2MgYmFvIHZlIGJvaSANCm5o dW5nIGJhbmcgY2FtIGR1bmcgbGVuIGtoYXAgbm9pOiAiS2h1IHZ1YyBjdW9uZyBjaGUsIGNhbSB2 YW8iLCAiQ2FtIHF1YXkgcGhpbSwgDQpjaHVwIGhpbmgiOyBoYW5nIG1heSBjaHVjIGxldSB0cmFp IGNob3QgY2hhbiBkdW9jIGR1bmcgbGVuIHRydW9jIDI0IGdpbywgY2FjaCB0cnVuZyB0YW0gDQpj dW9uZyBjaGUgdHUgMiBrbS4uLg0KDQpOaGlldSBkaWVuIHRpY2ggZGF0IGJpIGN1b25nIGNoZSB0 aHUgaG9pIHR1IDIwMDcsIGRlbiBuYXkgZGEgc3UgZHVuZyBsYW0gZ2kgZGF1ISBSbyByYW5nIA0K dmllYyB0byBjaHVjIGN1b25nIGNoZSBraG9uZyBwaGFpIHZpIHlldSBjYXUgZ2lhaSB0b2EgbWF0 IGJhbmcgZGUgZGFtIGJhbyB0aWVuIGRvIGRhdSB0dSANCnhheSBkdW5nLCBtYSBuaGFtIG11YyB0 aWV1IHRyYSB0aHUgbmd1b2kgZGkga2hpZXUga2llbiwgdG8gY2FvLCBkb25nIHRob2kgZGUgdHJh biBhcCANCm5odW5nIG5ndW9pIHRydW9jIGRheSBkYSB2aSBkZSBkb2EsIHNvIGhhaSBwaGFpIGxh eSB0aWVuIGJvaSB0aHVvbmcgZ2lhbyBkYXQgbmF5IGtob25nIA0KZGFtIHF1YXkgbGFpIGtoaWV1 IGtpZW4uIA0KDQozIC0gS2V0IHF1YSB0aGFuaCB0cmEgbmh1IHRoZSBuYW8gbWEgY2hpbmggcXV5 ZW4gdGluaCBCaW5oIER1b25nIGxhaSB0aWVwIHR1YyBsYW0gZ2hlIA0Kbmh1IHRoZT8NCg0KUXVh IHVhdCB1YyB2ZSB2aWVjIFVCTkQgdGluaCBCaW5oIER1b25nIGN1IGNobyByYW5nIG1pbmggZHVu ZyB2YSB0aWVwIHR1YyBjdW9uZyBjaGUgDQpsYXkgZGF0IGN1YSBkYW4gbW90IGNhY2ggaGV0IHN1 YyBuZ2FuZyBuZ3VvYywgY2h1bmcgdG9pIHF1eWV0IHRhbSB0aW0gY2hvIGJhbmcgZHVvYyANCmNh YyBrZXQgbHVhbiBUaGFuaCB0cmEga2h1IGxpZW4gaG9wLiANCg0KRG9jIGhldCBiYW8gY2FvIGN1 YSB0byBjb25nIHRhYyBUaGFuaCB0cmEgQ2hpbmggcGh1IGRlIG5nYXkgMzAgdGhhbmcgMDIgbmFt IDIwMDggZG8gDQpPbmcgQnVpIFRoYW5oIE1pbmgga3ksIGNvIE9uZyBWbyBWYW4gRG9uZyBreSB0 ZW4gYmVuIGNhbmggdmEgZG9uZyBkYXUgZGFpIGRpZW4gDQpWYW4gcGhvbmcgdGFpIFRQIEhvIENo aSBNaW5oOyB2YSBjbyBkb2Mga2V0IGx1YW4gVGhhbmggdHJhIHNvIDI2MjMvS0wtVFRDUCBuZ2F5 IA0KMjYtMTEtMjAwOCBkbyBwaG8gVG9uZyB0aGFuaCB0cmEgTGUgVGllbiBIYW8ga3k7IG1vaSBo aWV1IGhldCB2aSBzYW8sIHNhdSBraGkgdGhhbmggdHJhLCANCmNoaW5oIHF1eWVuIHRpbmggQmlu aCBEdW9uZyBsYWkgdGllcCB0dWMgbmh1bmcgaGFuaCB2aSB0cmFpIHBoYXAgbHVhdCBtb3QgY2Fj aCBxdXlldCBsaWV0IA0Kbmh1IHRoZS4NCk8gZGF5LCBjaGkgeGluIHRyaWNoIG1vdCB2YWkgZG9h biBsaWVuIHF1YW4gZGVuIHRodSBob2kgZGF0IHZhIGJvaSB0aHVvbmcgZ2lhaSB0b2Egbmh1IHNh dToNCg0KQS4gQmFvIGNhbyBjdWEgdG8gY29uZyB0YWMgVGhhbmggdHJhIGNoaW5oIHBodSwgUGhh biBJSUktS2V0IHF1YSBraWVtIHRyYSwgeGFjIG1pbmgsIGRhIG5ldToNCiIxLiAtIFF1eWV0IGRp bmggcGh1b25nIGFuIGRlbiBidSB0cnVvYyBraGkgY28gcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBs YSBzYWkgcXV5IGRpbmggDQpwaGFwIGx1YXQuDQpWaWVjIGJhbiBoYW5oIFF1eWV0IGRpbmggMTY0 LzIwMDMvUUQgbmdheSAyMy02LTIwMDMgY3VhIFVCTkQgdGluaCBCaW5oIER1b25nIA0KcGhlIGR1 eWV0IHBodW9uZyBhbiBkZW4gYnUgdGhpZXQgaGFpIGtoaSBjaHVhIGJhbiBoYW5oIFF1eWV0IGRp bmggdGh1IGhvaSBkYXQgKHRodSBob2kgDQp0b25nIHRoZSB2YSByaWVuZyBjaG8gdHVuZyBobyks IGNodWEgdGhhbmggbGFwIEhvaSBkb25nIGRlbiBidSBsYSBraG9uZyBkdW5nIHRyaW5oIHR1IHRo dSANCnR1YyBkZW4gYnUgdGhpZXQgaGFpIHRoZW8gZGlldSAzNCBjdWEgbmdoaSBkaW5oIHNvIDIy LzE5OTgtTkQtQ1AgbmdheSAyNCB0aGFuZyA0IG5hbSANCjE5OTggY3VhIENoaW5oIHBodSB2ZSBk ZW4gYnUgdGhpZXQgaGFpIGtoaSBOaGEgbnVvYyB0aHUgaG9pIGRhdCBkZSBzdSBkdW5nIHZhbyBt dWMgDQpkaWNoIHF1b2MgcGhvbmcsIGFuIG5pbmgsIGxvaSBpY2ggcXVvYyBnaWEsIGxvaSBpY2gg Y29uZyBjb25nLiBUaGVvIGRvLCBVQk5EIHRpbmggcGhhaSANCnJhIFF1eWV0IGRpbmggdGh1IGhv aSBkYXQsIHRoYW5oIGxhcCBIb2kgZG9uZyBkZW4gYnUgdGhpZXQgaGFpIGdpYWkgcGhvbmcgbWF0 IGJhbmcsIEhvaSANCmRvbmcgZGVuIGJ1IGtpZW0gdHJhLCBraWVtIGtlIHRoaWV0IGhhaSB0aHVj IHRlIGRlIGxhcCBwaHVvbmcgYW4gZGVuIGJ1IHRyaW5oIENodSB0aWNoIA0KVUJORCB0aW5oIHBo ZSBkdXlldC4gDQoNCjIuIC0gS2hvbmcgdHJhbyBxdXlldCBkaW5oIHRodSBob2kgZGF0OyBraG9u ZyBiYW4gaGFuaCBxdXlldCBkaW5oIGRlbiBidSB0aGlldCBoYWkuLi4gY2hvIA0KdHVuZyBobyBk YW4gbGEgdGhpZXUgc290Lg0KDQpTYXUga2hpIGNvIGNodSB0cnVvbmcgcXV5IGhvYWNoIEtodSBs aWVuIGhvcCwgVUJORCB0aW5oIEJpbmggRHVvbmcgYmFuIGhhbmggY2FjIA0KUXV5ZXQgZGluaCB0 aHUgaG9pIGRhdCB2YW8gY3VvaSBuYW0gMjAwNCB2YSBkYXUgbmFtIDIwMDU7IFVCTkQgaHV5ZW4s IHRoaSB4YSBiYW4gDQpoYW5oIFF1eWV0IGRpbmggdGh1IGhvaSBkYXQgY3UgdGhlIGNobyB0dW5n IGhvIGRhbiB2YW8gY3VvaSBuYW0gMjAwNS4gQ2FjIGNhcCBjaGluaCANCnF1eWVuIGRpYSBwaHVv bmcgY2h1YSB0byBjaHVjIHRodWMgaGllbiBsYXAgYmllbiBiYW4gYmFuIGdpYW8gbmhhbiBxdXll dCBkaW5oIHRodSBob2kgDQpjaG8gY2FjIGhvIGRhbiwgdmkgdmF5IGNodWEgdGhlIGtoYW5nIGRp bmggZHVvYyBuZ3VvaSBkYW4gY28gZGF0IGJpIHRodSBob2kgZGEgbmhhbiANCnF1eWV0IGRpbmgg dGh1IGhvaSBkYXQuIFF1YSBsYW0gdmllYyB2b2kgVUJORCBodXllbiB0YW4gVXllbiwgVUJORCB0 aGkgeGEgVGh1IERhdSANCk1vdCB2YSBtb3Qgc28gbmd1b2kgY28gbGllbiBxdWFuIGR1b2MgYmll dCB0YWkgY2FjIGRpYSBwaHVvbmcgbmF5IGtob25nIGJhbiBoYW5oIHF1eWV0IA0KZGluaCBkZW4g YnUgdGhpZXQgaGFpIHZlIGRhdCwgdmUgdGFpIGRpbmggY3UuLi4gY2hvIGNhYyBobyBkYW4gbGEg c2FpIHZvaSBxdXkgZGluaCBwaGFwIA0KbHVhdC4uLg0KVHJvbmcgMTA0IGhvIHNvLCBraG9uZyBj byBobyBzbyBuYW8gY28gcXV5ZXQgZGluaCBib2kgdGh1b25nIHRoaWV0IGhhaSwgaG8gdHJvIGRp IGRvaSwgdGFpIA0KZGluaCBjdS4uLg0KDQozLiAtIFRodSBseSBkZSBnaWFpIHF1eWV0IGtoaWV1 IG5haSBjaHVhIGR1bmcgdGh1IHR1YywgdmFuIGR1bmcgcGhhcCBsdWF0IGNodWEgcGh1IGhvcC4N Cg0KLi4uLjEwNCBobyBzbyBjbyAxMDQgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBjdWEgY2FjIGhv IGtoaWV1IG5haSBiYW4gaGFuaCBzYXUgTHVhdCBkYXQgZGFpIA0KMjAwMywgTmdoaSBkaW5oIDE4 MS8yMDA0L05ELUNQIHZhIE5naGkgZGluaCAxOTcvMjAwNC9ORC1DUCBjbyBoaWV1IGx1Yywgbmh1 bmcgY2FjIA0KY2FwIGNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgbGFpIGFwIGR1bmcgTmdoaSBkaW5o IHNvIDIyLzE5OTgvTkQtQ1AgbGEgY2h1YSBwaHUgaG9wLg0KDQo0LiAtIENhYyB0b24gdGFpIHRo aWV1IHNvdCBraGFjIGNhbiBraGFjIHBodWMuDQoNClF1YSAxMDQgaG8gc28gZ2lhaSBxdXlldCBr aGlldSBuYWkgY28gMTUgaG8gc28ga2hvbmcgY28gYmllbiBiYW4ga2llbSBrZSwgODkgaG8gc28g Y29uIA0KbGFpIGNvIDY5IGJpZW4gYmFuIGtpZW0ga2Uga2hvbmcgY28gY2h1IGhvIGt5IHZhbyBi aWVuIGJhbjsgMTggaG8gc28ga2hvbmcgY28gYmllbiBiYW4gDQpib2kgdGh1b25nLCB0cm9uZyA4 NiBiaWVuIGJhbiBib2kgdGh1b25nIGtob25nIGNvIGNodSBobyBreSB0ZW47IDQyIGhvIHNvIGto b25nIGNvIHRvIA0Ka2hhaSBkYXQgdmEgdGFpIHNhbiB0cmVuIGRhdCwgNDUgaG8ga2hvbmcgY28g Y2h1IGhvIGt5IHZhbyB0byBraGFpLiBWaSB2YXkgaG8gc28gY2h1YSBkYW0gDQpiYW8gZHVuZyB0 cmluaCB0dSB0aHUgdHVjIHRodSBob2kgZGF0IHZhIGJvaSB0aHVvbmcgdGhpZXQgaGFpIGtoaSB0 aHUgaG9pIGRhdC4uLg0KDQpVQk5EIGh1eWVuIFRhbiBVeWVuIGJhbiBoYW5oIDE4IFF1eWV0IGRp bmggYnVvYyB0aGFvIGdpbyBjb25nIHRyaW5oIHRydW9jIGtoaSBiYW4gDQpoYW5oIFF1eWV0IGRp bmggdGh1IGhvaSBkYXQgbGEga2hvbmcgZHVuZyB0cmluaCB0dSB0aGVvIHF1eSBkaW5oOyBjYWMg aG8gc28gZHVvYyBraWVtIA0KdHJhIGRldSBjbyB0aW5oIHRyYW5nIGNodW5nOiBkb24geGluIHhh YyBuaGFuIG5ndW9uIGdvYyBuaGEsIGRhdDsgZG9uIHhpbiBobyB0cm8gZGkgZG9pOyANCmRvbiB4 aW4gaG8gdHJvIGNoaSBwaGkgZGFvIHRhbyBuZ2hlLi4uIG5ndW9pIGxhbSBkb24ga2hvbmcga3kg dGVuIG1hIGNoaW5oIHF1eWVuIHhhIGt5IA0KeGFjIG5oYW4sIGRvbmcgZGF1Lg0KDQpUbyBjb25n IHRhYyBuaGFuIGRpbmggdHJvbmcga2hvYW5nIDUuMDAwIGhvIHNvIGJvaSB0aHVvbmcgdGhpZXQg aGFpIHRyb25nIGR1IGFuIG5heSANCmN1bmcgdG9uIHRhaSBuaHVuZyB0aGlldSBzb3QgdmUgdHJp bmggdHUsIHRodSB0dWMgbmh1IGRhIG5ldSB0cmVuIi4NCg0KQiAtIEtFVCBMVUFOIFNPIDI2MjMv S0wtVFRDUCBuZ2F5IDI2LTExLTIwMDggY3VhIFRoYW5oIHRyYSBDaGluaCBwaHUsIHRhaSBwaGFu IA0KQi1LZXQgcXVhIFRoYW5oIHRyYSwgY3VuZyBjbyBjYWMgbm9pIGR1bmcgbmh1IHNhdToNCiJJ LiAtIFF1YSB0cmluaCBoaW5oIHRoYW5oIHZhIHBoYXQgdHJpZW4gS2h1IGxpZW4gaG9wOg0KRGUg YW4gdG9uZyB0aGUgZGF1IHR1IHZhIHBoYXQgdHJpZW4gS2h1IGxpZW4gaG9wIENvbmcgbmdoaWVw IC0gRGljaCB2dSB2YSBEbyB0aGkgQmluaCANCkR1b25nIGR1b2MgVGh1IHR1b25nIENoaW5oIHBo dSBjaGluaCB0aHVjIHBoZSBkdXlldCB0YWkgUXV5ZXQgZGluaCBzbyA5MTIvUUQtVFRnIA0Kbmdh eSAwMS85LzIwMDUuDQouLi4uICJUcmVuIHRodWMgdGUsIHRodWMgaGllbiB5IGtpZW4gY2hpIGRh byBjdWEgQmFuIFRodW9uZyB2dSBUaW5oIHV5IEJpbmggRHVvbmcsIA0KVUJORCB0aW5oIGRhIGJh dCBkYXUgdHJpZW4ga2hhaSBjb25nIHRhYyBkZW4gYnUsIGdpYWkgdG9hIHR1IGN1b2kgbmFtIDIw MDMiLg0KVGhlbyBRdXlldCBkaW5oIHNvIDg3My9RRC1UVGcgbmdheSAwMS8xMC8yMDAyIGN1YSBU aHUgdHVvbmcgQ2hpbmggcGh1IHZlIHZpZWMgcGhlIA0KZHV5ZXQgcXV5IGhvYWNoLCBrZSBob2Fj aCBzdSBkdW5nIGRhdCBjdWEgdGluaCBCaW5oIER1b25nIGRlbiBuYW0gMjAxMCB0aGkga2hvbmcg Y28gDQpxdXkgaG9hY2ggS2h1IGxpZW4gaG9wIENvbmcgbmdoaWVwIC0gRGljaCB2dSB2YSBkbyB0 aGkgQmluaCBEdW9uZywgbmh1bmcgdHJvbmcgZG8gY28gDQpxdXkgaG9hY2gga2h1IGNvbmcgbmdo aWVwIERvbmcgQmF1IEJlbyB2b2kgZGllbiB0aWNoIDMwMCBoYSB2YSBraHUgY29uZyBuZ2hpZXAg DQpUcnVvbmcgQm9uZyBCb25nIHZvaSBkaWVuIHRpY2ggNTAwIGhhIG1hIGhpZW4gbmF5IGxhIG1v dCBwaGFuIGN1YSBLaHUgbGllbiBob3AuIFR1eSANCm5oaWVuLCBjaGkgdGlldSBkYXQgc3UgZHVu ZyBkZSB4YXkgZHVuZyBLaHUgbGllbiBob3AgZHVvYyBibyBzdW5nIHZhbyBxdXkgaG9hY2ggc3Ug DQpkdW5nIGRhdCBkaWV1IGNoaW5oIGRlbiBuYW0gMjAxMCB2YSBrZSBob2FjaCBzdSBkdW5nIGRh dCA1IG5hbSAoMjAwNiAtIDIwMTApIGN1YSB0aW5oIA0KQmluaCBEdW9uZyB0aGVvIE5naGkgcXV5 ZXQgc28gNTcvTlEtQ1AgbmdheSAyOC8xMS8yMDA3IGN1YSBDaGluaCBwaHUuDQoNCklJLiAtIEtl dCBxdWEgdGhhbmggdHJhIHZpZWMgdHJpZW4ga2hhaSBkdSBhbiBLaHUgbGllbiBob3A6DQoNCjEt IENvbmcgdGFjIGRlbiBidSwgZ2lhaSB0b2E6DQoNCjEuMS4gQ2h1IHRydW9uZyBib2kgdGh1b25n IHZhIHF1YSB0cmluaCB0cmllbiBraGFpIGdpYWkgdG9hLCBib2kgdGh1b25nOg0KDQpEZSBhbiB0 b25nIHRoZSBkYXUgdHUgdmEgcGhhdCB0cmllbiBLaHUgbGllbiBob3AgZHVvYyBUaHUgdHVvbmcg Q2hpbmggcGh1IGNoYXAgdGh1YW4gDQp2ZSBjaHUgdHJ1b25nIHRhaSB2YW4gYmFuIHNvIDI5NS9D UC1DTiBuZ2F5IDE5LzMvMjAwMyB2YSBkdW9jIFRodSB0dW9uZyBwaGUgZHV5ZXQgDQpjaGluaCB0 aHVjIHRhaSBRdXlldCBkaW5oIHNvIDkxMi9RRC1UVGcgbmdheSAwMS85LzIwMDUsIG5odW5nIHRy ZW4gdGh1YyB0ZSwgbmdheSANCjEwLzkvMjAwMiBVQk5EIHRpbmggQmluaCBEdW9uZyBkYSBjbyBR dXlldCBkaW5oIHNvIDUxODUvUUQtQ1QgdGhhbmggbGFwIEJhbiBjaGkgDQpkYW8gZ2lhaSB0b2Eg Ym9pIHRodW9uZyBwaHVjIHZ1IHhheSBkdW5nIEtodSBsaWVuIGhvcCwgc2F1IGRvIFVCTkQgdGlu aCBCaW5oIER1b25nIA0KZGEgYmFuIGhhbmggcXV5ZXQgZGluaCBzbyAxNjQvMjAwMy9RRC1VQiBu Z2F5IDIzLzYvMjAwMyBxdXkgZGluaCBjaHUgdHJ1b25nIGJvaSANCnRodW9uZyBkYXQgdmEgdGFp IHNhbiB0cmVuIGRhdCBjb25nIHRyaW5oIEtodSBsaWVuIGhvcC4gDQoNClR1IGN1b2kgdGhhbmcg MTEvMjAwMywgdG8gY2h1eWVuIHZpZW4ga2V0IGhvcCB2b2kgY2hpbmggcXV5ZW4gdHVuZyB4YSB0 aWVuIGhhbmgga2llbSANCmtlLCBkbyBkZW0gZGF0IGRhaSwgdGFpIHNhbiB0cmVuIGRhdCBjdWEg Y2FjIGhvIGdpYSBkaW5oLCBjYSBuaGFuLCB0byBjaHVjIGJpIHF1eSBob2FjaCBkZSANCnRodWMg aGllbiBkdSBhbiB0cmVuIGRpYSBiYW4gY2FjIHhhLiBUdSBjdW9pIHRoYW5nIDEyLzIwMDMgQmFu IHF1YW4gbHkgS2h1IGxpZW4gaG9wIGJhdCANCmRhdSBjaGkgdGllbiBkZW4gYnUgY2hvIGNhYyBo byBnaWEgZGluaCBjYSBuaGFuIGNvIGRhdCB2YSB0YWkgc2FuIHRyZW4gZGF0IGJpIGdpYWkgdG9h Lg0KDQpOZ2F5IDA0LzYvMjAwNCBVQk5EIHRpbmggQmluaCBEdW9uZyBiYW4gaGFuaCBRdXlldCBk aW5oIHNvIDYxLzIwMDQvUUQtVUIgcGhlIA0KZHV5ZXQgRHUgYW4gZGVuIGJ1IGdpYWkgcGhvbmcg bWF0IGJhbmcgdmEgcGhhdCB0cmllbiBLaHUgbGllbiBob3AuIFR1IG5nYXkgMjAvMTAvMjAwNCAN CmRlbiBuZ2F5IDA1LzUvMjAwNSBVQk5EIHRpbmggQmluaCBEdW9uZyBkYSBiYW4gaGFuaCBjYWMg cXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBkZSANCnhheSBkdW5nIEtodSBsaWVuIGhvcC4NCg0KMS4y IC0gVmllYyB0aHVjIGhpZW4gY2hpbmggc2FjaCBwaGFwIGx1YXQgdHJvbmcgZ2lhaSB0b2EgYm9p IHRodW9uZzoNCg0KLSBUaGVvIFF1eWV0IGRpbmggOTEyL1FELVRUZyBuZ2F5IDAxLzkvMjAwNSBj dWEgVGh1IHR1b25nIENoaW5oIHBodSB0aGkgdmllYyB0cmllbiANCmtoYWkgdGh1YyBoaWVuIGR1 IGFuIHRoZW8gY2FjIHF1eSBkaW5oIGN1YSBMdWF0IGRhdCBkYWkgMjAwMyB2YSBOZ2hpIGRpbmgg MTgxLzIwMDQvTkQtDQpDUCwgbmh1bmcgdHJlbiB0aHVjIHRlIFVCTkQgdGluaCBCaW5oIER1b25n IHJhIHF1eWV0IGRpbmggdmEgYXAgZHVuZyBRdXlldCBkaW5oIA0KMTY0LzIwMDMvUUQtVUIgbmdh eSAyMy82LzIwMDMgYmFuIGhhbmggcXV5IGRpbmggZGVuIGJ1IGdpYWkgdG9hIHRoZW8gTmdoaSBk aW5oIA0KMjIvMTk5OC9ORC1DUCwgdGFpIHRob2kgZGllbSBuYXkgTHVhdCBkYXQgZGFpIDIwMDMg Y2h1YSBjbyBoaWV1IGx1Yy4NCg0KLSBVQk5EIHRpbmggQmluaCBEdW9uZyBjaGkgcmEgcXV5ZXQg ZGluaCB0aGFuaCBsYXAgQmFuIGNoaSBkYW8gZ2lhaSB0b2EgYm9pIHRodW9uZyBtYSANCmtob25n IHRoYW5oIGxhcCBIb2kgZG9uZyBkZW4gYnUgdGhpZXQgaGFpIGdpYWkgcGhvbmcgbWF0IGJhbmcs IG5lbiBraG9uZyBjbyBkYWkgZGllbiANCmN1YSBjYWMgaG8gZGFuIGNvIG5oYSwgZGF0IGJpIGdp YWkgdG9hIHRoYW0gZ2lhLiBEbyBraG9uZyB0aGFuaCBsYXAgSG9pIGRvbmcgZGVuIGJ1IHRoaWV0 IA0KaGFpIGdpYWkgcGhvbmcgbWF0IGJhbmcgbyBjYWMgaHV5ZW4gbmVuIGN1bmcga2hvbmcgbGFw IHBodW9uZyBhbiBkZW4gYnUsIGRhbiBkZW4gDQpraG9uZyBjbyBkb25nIHRhYyB0aGFtIGRpbmgg cGhlIGR1eWV0IHBodW9uZyBhbjsga2hvbmcgZ2lhbyBuaGllbSB2dSBjaG8gY2FjIGNhcCwgY2Fj IA0KbmdhbmggZGUgdGh1YyBoaWVuIGNodWMgbmFuZyB0aGFtIG11dSB0dW5nIGxpbmggdnVjIGxh IGtob25nIGR1bmcgdm9pIHF1eSBkaW5oIHRhaSANCmRpZXUgMzIsIGRpZXUgMzMgTmdoaSBkaW5o IDIyLzE5OTgtTkQtQ1AgbmdheSAyNC80LzE5OTggKGRpZXUgMzIgcXV5IGRpbmggdmUgSG9pIA0K ZG9uZyBkZW4gYnUgdGhpZXQgaGFpIGdpYWkgcGhvbmcgbWF0IGJhbmcsIGRpZXUgMzMgcXV5IGRp bmggdmUgdHJhY2ggbmhpZW0gY3VhIFVCTkQgDQpjYWMgY2FwLCBjYWMgbmdhbmgpOyBkaWV1IDM5 LCBkaWV1IDQwLCBkaWV1IDQxLCBkaWV1IDQzLCBkaWV1IDQ0LCBkaWV1IDQ1IE5naGkgZGluaCAN CjE5Ny8yMDA0L05ELUNQIG5nYXkgMDMvMTIvMjAwNCBjdWEgQ2hpbmggcGh1IHZlIGJvaSB0aHVv bmcsIGhvIHRybyB2YSB0YWkgZGluaCBjdSBraGkgDQpOaGEgbnVvYyB0aHUgaG9pIGRhdC4NCg0K MS4zIC0gVmUgaG8gc28gYm9pIHRodW9uZzoNCg0KLSBLaG9uZyBjbyBiaWVuIGJhbiB2ZSBraGFv IHNhdCB0aHVjIGRpYSB0cnVvYyBraGkgZ2lhaSB0b2EgZGUgeGFjIGRpbmggdGh1YyB0cmFuZyBu aGEsIGRhdCANCnZhIHRhaSBzYW4gdHJlbiBkYXQgY3VhIGRhbiB0YWkga2h1IHZ1YyBnaWFpIHRv YSBsYW0gY28gc28gY2hvIHZpZWMgeGF5IGR1bmcgcGh1b25nIGFuIGJvaSANCnRodW9uZyB0aGll dCBoYWkgZ2lhaSBwaG9uZyBtYXQgYmFuZzsga2hvbmcgY28gcGh1b25nIGFuIGRlbiBidSBjdSB0 aGUgZGFuIGRlbiBraG9uZyANCnBoZSBkdXlldCBwaHVvbmcgYW4gZGVuIGJ1Lg0KDQotIFRyb25n IGhvIHNvIGJvaSB0aHVvbmcsIGRpZW4gdGljaCB0aHUgaG9pIGNoaSBkdW9jIHRoZSBoaWVuIHRy b25nIGJpZW4gYmFuIGtpZW0ga2UgZG8gDQpjYW4gYm8gVG8gY2h1eWVuIHZpZW4gdmEgY2FuIGJv IGFwLCB4YSBkaSBraWVtIGtlIHhhYyBkaW5oLiBOaGlldSBiaWVuIGJhbiBraWVtIGtlIGRhdCAN CnZhIHRhaSBzYW4gdGFpIHhhIFBodSBDaGFuaCBraG9uZyBjbyBreSB0ZW4gY3VhIG5ndW9pIGNv IHRoYW0gcXV5ZW4gY3VhIFVCTkQgeGEsIA0Ka2hvbmcgZG9uZyBkYXUgVUJORCB4YSwgY2hpIGRv bmcgZGF1IHRyZW8gdmFvIGJpZW4gYmFuIGtpZW0ga2UuDQoNCi0gVmllYyB0dW9uZyBwaGFuIGRh dCBraG9uZyBjbyB0aWV1IGNoaSBybyByYW5nLCBjYWMgaG8gc28gZGF0IHR1b25nIHBoYW4gZHVv YyBjaGFwIG5oYW4gDQpkZW4gYnUgdGhpIGdpYXkgdG8gdHVvbmcgcGhhbiBsYW0gdGhlbyBtYXUg Y3VhIEJhbiBxdWFuIGx5IEtodSBsaWVuIGhvcCBzb2FuIHNhbiwgDQpraG9uZyBnaGkgbmdheSwg dGhhbmcsIG5hbSB0dW9uZyBwaGFuIGRhdCwga2hvbmcgZ2hpIHJvIG1vaSBxdWFuIGhlIGdpdWEg bmd1b2kgY2hvIHZvaSANCm5ndW9pIG5oYW4sIGtob25nIGdoaSBybyB0cmVuIGRhdCB0dW9uZyBw aGFuIGNvIG5oYSBoYXkga2hvbmcgY28gbmhhLiBEbyBjYWNoIGxhbSBuaHUgDQp2YXkgbmVuIGRh IGNvIHRydW9uZyBob3Agb25nIE5ndXllbiBWYW4gVGh1IC0gQmkgdGh1IERhbmcgdXksIGtpZW0g Q2h1IHRpY2ggVUJORCANCnhhIFBodSBNeSAodGhpIHhhIFRodSBEYXUgTW90KSBkYSBreSB4YWMg bmhhbiB2YW8gZ2lheSB0dW9uZyBwaGFuIGRhdCBkZSBuaGFuIHRpZW4gDQpob2kgbG8gdmEgZGEg YmkgdHJ1eSBjdXUgdHJhY2ggbmhpZW0gaGluaCBzdS4NCg0KMS40IC0gS2V0IHF1YSB0aHVjIGhp ZW4gY29uZyB0YWMgZGVuIGJ1IGdpYWkgdG9hOg0KDQpEZW4gdGhvaSBkaWVtIFRodSB0dW9uZyBD aGluaCBwaHUgY28gUXV5ZXQgZGluaCA5MTIvUUQtVFRnIG5nYXkgMDEvOS8yMDA1IHBoZSANCmR1 eWV0ICJEZSBhbiB0b25nIHRoZSBkYXUgdHUgdmEgcGhhdCB0cmllbiBLaHUgbGllbiBob3AgY29u ZyBuZ2hpZXAgLSBEaWNoIHZ1IC0gRG8gdGhpIA0KQmluaCBEdW9uZyIgdGhpIHZpZWMgZ2lhaSB0 b2EsIGJvaSB0aHVvbmcgZGEgdGh1YyBoaWVuIGR1b2MgODUlIGRpZW4gdGljaCBxdXkgaG9hY2gN Cg0KMi4xIC0gVmllYyBnaWFvIGRhdCBjaG8gdGh1ZSBkYXQgdHJvbmcga2h1IGxpZW4gaG9wOg0K DQpNYWMgZGF1IGNhYyBxdXlldCBkaW5oIGdpYW8gZGF0IHZhIGNhYyBob3AgZG9uZyB0aHVlIGRh dCBkdW9jIGt5IHZhbyBuYW0gMjAwNiB2YSANCjIwMDcsIG5odW5nIHRodWMgY2hhdCB2aWVjIGdp YW8gZGF0LCBjaG8gdGh1ZSBkYXQgZG9pIHZvaSBjYWMgbmhhIGRhdSB0dSBraHUgY29uZyBuZ2hp ZXAgDQpkYSBkdW9jIFVCTkQgdGluaCBCaW5oIER1b25nIGRvbmcgeSB2ZSBtYXQgY2h1IHRydW9u ZyB0aG9uZyBxdWEgdmllYyBwaGUgZHV5ZXQgdmFvIA0KY2FjIGhvcCBkb25nICJkZW4gYnUgbWF0 IGJhbmcgZGF0IGRhaSB2YSBkYXUgdHUgY29uZyB0cmluaCB0YW8gbHVjIiBreSBrZXQgZ2l1YSBC YW4gcXVhbiANCmx5IChCUUwpIEtodSBsaWVuIGhvcCB2YSBjYWMgbmhhIGRhdSB0dSB2YW8gbmFt IDIwMDQgdm9pIGRvbiBnaWEgNzAwIHRyaWV1IGRvbmcvaGEgDQooY2h1YSBiYW8gZ29tIHRpZW4g c3UgZHVuZyBkYXQgaG9hYyB0aWVuIHRodWUgZGF0IHBoYWkgbm9wKSIuDQoNCktFVCBNQSBLSE9O RyBLRVQNCg0KTmh1IHZheSwgY2hpIHJpZW5nIHZlIHRodSBob2kgZGF0LCBkZW4gYnUsIGdpYWkg cGhvbmcgbWF0IGJhbmcsIG5oaWV1IHZpZWMgZGEgZHVvYyANClVCTkQgdGluaCBCaW5oIER1b25n IHRodWMgaGllbiBob2FuIHRvYW4gc2FpIHF1eSBkaW5oIHBoYXAgbHVhdC4gU2FpIHBoYW0gY28g YmFuIA0KbmhhdCBsYSBiYW4gaGFuaCBRdXlldCBkaW5oIDE2NC8yMDAzL1FEIG5nYXkgMjMtNi0y MDAzIHZhIGNhYyBxdXlldCBkaW5oIHRodSBob2kgZGF0IA0KY3VhIHRpbmgsIGh1eWVuIHRoaSBr eSB0cnVvYyBuZ2F5IDEtOS0yMDA1LCBuZ2F5IGRlIGFuIHRvbmcgdGhlIEtodSBsaWVuIGhvcCBk dW9jIENoaW5oIA0KcGh1IHBoZSBkdXlldC4gDQpMZSByYSwgbW90IHZhbiBiYW4gYmFuIGhhbmgg c2FpIHBoYXAgbHVhdCB0aGkgcGhhaSBiaSB0aHUgaG9pLCBodXkgYm8gdmEgdGltIGNhY2gga2hh YyANCnBodWMgaGF1IHF1YSBkbyB2aWVjIHRodWMgaGllbiBjYWMgdmFuIGJhbiBuYXkgZ2F5IHJh LiBEYW5nIG5heSwgc2F1IGtoaSBUaGFuaCB0cmEgZGEgDQprZXQgbHVhbiBuaHVuZyBzYWkgdHJh aSBuaHUgdHJlbiwgVUJORCB0aW5oIEJpbmggRHVvbmcgdmFuIHRpZXAgdHVjIHJhIHZhbiBiYW4g dHJhIGxvaSANCnZvaSBkYW4gcmFuZyBobyBsYW0gZHVuZyBwaGFwIGx1YXQuIFZhIHRyb25nIG5h bSAyMDA5LCBobyBkYSBiYW4gaGFuaCBoYW5nIGxvYXQgcXV5ZXQgDQpkaW5oIGN1b25nIGNoZSBk ZSB0aHVjIGhpZW4gY2FjIHF1eWV0IGRpbmggc2FpIHRyYWkgbm9pIHRyZW4uIENvaSBuaHUgY2h1 YSBoZSBjbyB0aGFuaCB0cmEuIA0KVmkgc2FvPyBWaSB0cmVuIHRodWMgdGUsIGtldCBsdWFuIFRo YW5oIHRyYSBkYSBraG9uZyBjb25nIGtoYWkuIE5ndW9pIGRhbiB0cnVjIHRpZXAga2hpZXUgDQpu YWkgdG8gY2FvIHZlIG5odW5nIHNhaSBwaGFtIGN1YSB0aW5oIGRhIGtob25nIGR1b2MgYWkgY2hv IGJpZXQgZ2kgdmUga2V0IHF1YSB0aGFuaCB0cmEuDQoNClRoYW5oIHRyYSBub2kgc2FpLCB0aW5o IGxhaSBiYW8gbGEgVGhhbmggdHJhIG5vaSBkdW5nLiBOZ3VvaSBkYW4gcGhhbiBkb2kgdGhpIHRp bmggYmFvIGxhIA0Kbmd1b2kgZGFuIGRvbmcgdGh1YW4uIERhbiBkYSBiaSBiaXQgbW9tLCBjaGlu aCBxdXllbiBuYW0gZG9jIHF1eWVuIHBoYXQgbmdvbiwgdGhpIA0KdmllYyBkb2kgdHJhbmcgdGhh eSBkZW4gY28gZ2kgbGEga2hvIGtoYW4uDQoNClRhaSBjb25nIHZhbiBnb2kgY2hvIG5odW5nIGhv IGRhbiBraGlldSBuYWkgY2hpbmggc2FjaCBib2kgdGh1b25nIGN1YSBVQk5EIHRpbmggQmluaCAN CkR1b25nIGxhIHRyYWkgcGhhcCBsdWF0LCBkdW9jIGJhIFRyYW4gdGhpIEtpbSBWYW4sIFBobyBj aHUgdGljaCBVQk5EIHRpbmgga3kgbmdheSAyNy0NCjAyLTIwMDksIGNoaW5oIHF1eWVuIHRpbmgg QmluaCBEdW9uZyBraGFuZyBkaW5oOg0KIkNhbiBjdSBOZ2hpIGRpbmggc28gMjIvMTk5OC1ORC1D UCBuZ2F5IDI0IHRoYW5nIDQgbmFtIDE5OTggY3VhIENoaW5oIHBodSB2YSBjb25nIA0KdmFuIDI5 NS9DUC1DTiBuZ2F5IDE5LTMtMjAwMyBjdWEgVGh1IHR1b25nIENoaW5oIHBodSwgVUJORCB0aW5o IGRhIGJhbiBoYW5oIA0KUXV5ZXQgZGluaCAxNjQvMjAwMy9RRCBuZ2F5IDIzLTYtMjAwMyBxdXkg ZGluaCB2ZSBib2kgdGh1b25nIGRhdCB2YSB0YWkgc2FuIHRyZW4gZGF0LCANCmxhIGR1bmcgcXV5 IGRpbmggcGhhcCBsdWF0Ii4NCiJUaGFuaCB0cmEgQ2hpbmggcGh1IC4uLiBjbyBrZXQgbHVhbiBR dXlldCBkaW5oIDE2NC8yMDAzL1FEIG5nYXkgMjMtNi0yMDAzIGxhIGR1bmcgDQpwaGFwIGx1YXQg dmEgY2hvIHBoZXAgdGllcCB0dWMgdGh1YyBoaWVuIGRlbiBoZXQgZHUgYW4iLg0KDQpDb24gYmFv IEJpbmggRHVvbmcsIGNvIHF1YW4gY3VhIGRhbmcgYm8gdGluaCBCaW5oIER1b25nIG5nYXkgMzEt My0yMDA5IHRoaSBpbiBoaW5oIA0Kbmh1bmcgbmd1b2kgZGFuIGRhbmcgcGhhbiBkb2kgVUJORCB0 aW5oIEJpbmggRHVvbmcgdGFpIGN1b2MgaG9wIGRvaSB0aG9haSBuZ2F5IDEzLQ0KMy0yMDA5LCBy b2kgZ2hpIGNodTogIk5ndW9pIGRhbiBkb25nIHRpbmgga3kgYmllbiBiYW4gcGh1b25nIGFuIGdp YWkgcXV5ZXQgdG9uIGRvbmcgDQp0cm9uZyBraHUgbGllbiBob3AuIE5ndW9pIGRhbiBkb25nIHRo dWFuLCBiYW8gZGFtIGNvbmcgdGFjIGJvaSB0aHVvbmcgZ2lhaSB0b2EgS0xIIA0KY3VhIFVCTkQg dGluaCBCaW5oIER1b25nIi4NCg0KTmh1bmcgbyBkYXksIHZhbiBkZSBsYSBvIGNobzogdGFpIHNh byBjYWMgcXV5ZXQgZGluaCBzYWkgdHJhaSBraG9uZyBkdW9jIFRoYW5oIHRyYSBDaGluaCANCnBo dSBraWVuIG5naGkgdGh1IGhvaSB2YSBodXkgYm8sIHZhIHRhaSBzYW8gVGhhbmggdHJhIGtob25n IGNvbmcga2hhaSBub2kgZHVuZyBrZXQgbHVhbiANCm5odW5nIHNhaSB0cmFpIHRhaSBLaHUgbGll biBob3AgY29uZyBuZ2hpZXAgLSBkaWNoIHZ1IC0gZG8gdGhpIHRpbmggQmluaCBEdW9uZz8gVmEg dGFpIA0Kc2FvIHZvaSBuaHVuZyBzYWkgcGhhbSBkb25nIHRyb2kgbmh1IHZheSBjdW5nIHZvaSBo YW5nIGxvYXQgdmllYyBsYW0gdHJhaSBwaGFwIGx1YXQgdHJvbmcgDQp2aWVjIGdpYW8gZGF0LCBj aG8gdGh1ZSBkYXQsIGNobyBjaHV5ZW4gbmh1b25nIGR1IGFuLi4uIG1hIGNobyB0b2kgaG9tIG5h eSwgY2h1YSBjbyBjYW4gDQpibyBuYW8gY3VhIFVCTkQgdGluaCBCaW5oIER1b25nLCBjaHUgZGF1 IHR1IGR1IGFuLCBiaSB4dSBseT8NCg0KTkRCRA0KDQpQaHUgbHVjOg0KDQoiUGhhaSBjaGFuZyBu ZXUga2hvbmcgY28gdHUgZG8gYmFvIGNoaSwga2hvbmcgY28gdHUgZG8gbmdvbiBsdWFuLCB0aGkg c3UgdGhhdCBzZSBiaSBuaGFuIA0KY2hpbSB0cm9uZyBib25nIHRvaSwgY3VuZyB2b2kgYmFvIG5o aWV1IG9hbiB1YyBjdWEgbmd1b2kgZGFuIHZvIHRvaSA/Ig0KDQpBbmggY2h1cDogTmh1bmcgbmd1 b2kgdHJvbmcgYW5oIGxhOg0KU28gMTogSHV5bmggVmFuIE5naGllcCBTbyAyOiBUaGFpIFRoaSBI bw0KU28gMzogTGUgVmFuIEhvYSBTbyA0OiBUaGFpIFZhbiBCaQ0KVGFpIGN1b2MgaG9wIGRvaSB0 aG9haSB2b2kgQmEgVHJhbiB0aGkgS2ltIFZhbiwgUGhvIGNodSB0aWNoIFVCTkQgdGluaCB2YW8g bmdheSAxMy0zIA0KbyB4YSBUYW4gVmluaCBIaWVwLCBUYW4gVXllbiBCRC4gSG8gZGFuZyBwaGFu IGRvaSBVQk5EIHRpbmggQmluaCBEdW9uZyBib2kgDQp0aHVvbmcgdGhlbyBwaHVvbmcgYW4gZ2lh aSBxdXlldCB0b24gZG9uZyBjdWEgVUJORCB0aW5oIEJpbmggRHVvbmcuIA0KQmFvIERpZW4gdHUg QmluaCBEdW9uZyBuZ2F5IDMxLTMtMjAwOSBkYW5nIGhpbmggaG8gdmEgZ2hpIGNodSAiTmd1b2kg ZGFuIGRvbmcgdGluaCANCmt5IGJpZW4gYmFuIHBodW9uZyBhbiBnaWFpIHF1eWV0IHRvbiBkb25n IHRyb25nIGtodSBsaWVuIGhvcC4gTmd1b2kgZGFuIGRvbmcgdGh1YW4sIA0KYmFvIGRhbSBjb25n IHRhYyBib2kgdGh1b25nIGdpYWkgdG9hIEtMSCBjdWEgVUJORCB0aW5oIEJpbmggRHVvbmciLg0K DQpEYXkgbGEgbW90IHRyb25nIHJhdCBuaGlldSB0aHUgZG9hbiBkZSBkYW5oIGxhYyBodW9uZyBk dSBsdWFuLCBkb2kgdHJhbmcgdGhheSBkZW4gbW90IA0KY2FjaCB0cmFuZyB0cm9uIG5oYXQgY2hl IG1hdCBuaGFuIGRhbjsgZGF5IGN1bmcgbGEgbW90IHRyb25nIG5odW5nIGhhdSBxdWEgY3VhIGNo aW5oIA0Kc2FjaCBOaGEgbnVvYyBkb2MgcXV5ZW4gYmFvIGNoaSwgdmEgbmd1b2kgZGFuIGtob25n IGR1b2MgcXV5ZW4gdHUgZG8gbmdvbiBsdWFuLiANCg0KKEN1IHRyaSBxdWFuIHRhbTogVnUgYW4g bmF5IGxpZW4gcXVhbiB0cnVjIHRpZXAgdG9pIG5ob20gdGhhbSBuaHVuZyBvIHRpbmggQmluaCBE dW9uZywgDQpsYSBxdWUgb25nIE5ndXllbiBNaW5oIFRyaWV0LCBjdW5nIGxhIG5vaSBvbmcgVHJp ZXQgbGFtIEJpIHRodSB0aW5oIHV5IHRydW9jIGtoaSBjaHV5ZW4gDQpxdWEgbGFtIEJpIHRodSBv IFRQIEhDTS4gT25nIFRyaWV0IHZhIG9uZyBMZSBIb25nIEFuaCBkZXUgbGFtIFVWQkNUIGtob2Eg OSB2YSBkdW9jIGNodXllbiANCnF1YSBsYW0gVVZCQ1Qga2hvYSAxMC4gQ2hhYyBjaGFuIEJvIGNo aW5oIHRyaSBraG9hIDkgKDIwMDEtMjAwNikgdmEgVUJLVCBUVyBEYW5nIGtob2EgOSANCmRhIGJp ZXQgZGVuIHZ1IGFuIHJhdCBsb24gbmF5OyBuaHVuZyBVVkJDVCBraG9hIDkgZHVvYyB0YWkgY3Ug cXVhIEJDVCBraG9hIDEwIGdvbTogTm9uZyANCkR1YyBNYW5oLCBOZ3V5ZW4gTWluaCBUcmlldCwg Tmd1eWVuIFRhbiBEdW5nLCBOZ3V5ZW4gUGh1IFRyb25nLCBUcnVvbmcgVGFuIFNhbmcgdmEgTGUg SG9uZyANCkFuaDsgY29uIGNodSBuaGllbSBVQktUIFRXIERhbmcga2hvYSA5IGxhIG9uZyBOZ3V5 ZW4gVmFuIENoaSBVVkJDSFRXLCBuaGFuIGNodWMgY2h1IG5oaWVtDQpVQktUIFRXIHR1IG5hbSAy MDAyIHRoYXkgY2hvIG9uZyBMZSBIb25nIEFuaCAtIGNodXllbiBxdWEgbGFtIEJvIHRydW9uZyBi byBDb25nIGFuOyBvbmcgDQpOZ3V5ZW4gVmFuIENoaSBuYXkgY3VuZyBsYSBVVkJDVCBraG9hIDEw LiBOaHUgdmF5IGNvIGl0IG5oYXQgNyBVVkJDVCBraG9hIDEwIGRhIGJpZXQgdnUgYW4gbmF5IHR1 IGxhdSkuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjgv MjAxMDA3MDkwMTA2MjMuYXNweCBUaGFpIFNvbiAwOS8wNy8yMDEwIDE6MDYgDQoNCkNvbmcgYW46 IFh1IGx5IGFuIHRoYW0gbmh1bmcgcXVhIGNoYW0gICANCg0KVHUga2hpIHBoYXQgaGllbiwgZGll dSB0cmEgY2hvIHRvaSB4ZXQgeHUgbW90IHZ1IHRoYW0gbmh1bmcgbmhhbmggbmhhdCBjdW5nIHBo YWkgbWF0IDEyIHRoYW5nLCBjaGFtIG5oYXQgNTAgdGhhbmcsIHRpbmggdHJ1bmcgYmluaCBsYSAz MCB0aGFuZy4gDQoNCiJOaHUgdmF5IGxhIGNoYW0gcXVhLCB2dWEga2hvbmcgZGFwIHVuZyBkdW9j IHlldSBjYXUgY3VhIGN1b2MgZGF1IHRyYW5oIGNob25nIHRoYW0gbmh1bmcsIHZ1YSBnYXkgcmEg c3UgaG9haSBuZ2hpIHRyb25nIG5oYW4gZGFuIiAoLSBPbmcgRHVvbmcgVGhhbmggQmFjLCBQaG8g Y2hhbmggdmFuIHBob25nIFRydW5nIHVvbmcgRGFuZyBjaG8gYmlldC4pDQoNCihZIGtpZW4gY3Ug dHJpOiBEdW5nIG5odSBkYW5oIGdpYSBjdWEgbmhpZXUgY28gcXVhbiwgYmFuIG5naGFuaCB2YSBi YW8gY2hpIG8gdHJ1bmcgDQp1b25nIHZhIGRpYSBwaHVvbmcsIHRyb25nIHRob2kgZ2lhbiBvbmcg TGUgSG9uZyBBbmggbGFtIGJvIHRydW9uZyBibyBDb25nIGFuLCANCm5naGFuaCBDb25nIGFuIGNv IG5oaWV1IGJpZXUgaGllbiB0cmkgdHJlLCB5ZXUga2VtIHRyb25nIGNvbmcgdGFjLCBzYSBzdXQs IHRpZXUgY3VjLCANCnRoYW0gbmh1bmcsIGx1b2kgbmhhYywga2hvbmcgdGh1YyBoaWVuIGRheSBk dSBuaGllbSB2dSwgdGhpZXUga2luaCB0cm9uZyBuaGFuIGRhbiwgDQp0aGFtIGNoaSB1YyBoaWVw LCBidWMgaGFpIG5ndW9pIGRhbi4gVm9pIG5hbmcgbHVjIGNvbmcgdGFjIG5oaWV1IHlldSBrZW0g bmh1IHZheSwgDQpvbmcgTGUgSG9uZyBBbmggZGEga2hvbmcgaG9hbiB0aGFuaCBuaGllbSB2dS4g RGFjIGJpZXQsIHZvaSBraGF1IGhpZXUgImNoaSBiaWV0IGNvbiBkYW5nIGNvbiBtaW5oIiwgDQpv bmcgTGUgSG9uZyBBbmggZGEgdHUgdGhlIGhpZW4gdHJpbmggZG8gbHkgbHVhbiBrZW0sIGxhcCB0 cnVvbmcgdHUgdHVvbmcgcGhpZW4gZGllbiwgDQpzYWkgbGFtLCB4YSBkYW4sIHhhIHJvaSB0b24g Y2hpIGR1bmcgZGFuLCBjYW4gdGhpZXQgY3VhIG5naGFuaCBDb25nIGFuIGxhICJ2aSBudW9jIHF1 ZW4gdGhhbiwgdmkgZGFuIHBodWMgdnUiLCBkaSANCm5ndW9jIGxhaSBuaHVuZyBkYW8gbHkgdmEg dHJ1eWVuIHRob25nIGNhbyBkZXAgY3VhIGRhbiB0b2MuIERvbmcgYmFvLCBjdSB0cmkgcmF0IHRo YXQgdm9uZyANCnZlIG9uZyBMZSBIb25nIEFuaC4gS2llbiBuZ2hpIENoaW5oIHBodSwgUXVvYyBo b2ksIFRydW5nIHVvbmcga2llbSB0cmEsIGtpZW0gZGllbSANCnRvYW4gZGllbiwga3kgbHVhdCwg Y2FjaCBjaHVjIG9uZyBMZSBIb25nIEFuaC4pIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5o LVBoYXAtbHVhdC9UaGF0LXRob2F0LXRyb25nLXhheS1kdW5nLWNvLWJhbi1BaS1jaGl1LXRyYWNo LW5oaWVtLzcwMDMzOTMzLzIxOC8gMTgvMTIvMjAwNSwgMTQ6NTEgR01UKzcNCg0KQ29uZyBhbjog RGEgbmhpZXUgbmFtIHRyb2kgcXVhLCB2YW4gY2h1YSBraG9pIHRvIHZ1IGFuIHRoYW0gbmh1bmcs IHRoYXQgdGhvYXQsIGxhbmcgcGhpIHRhaSBkdSBhbiB0b24gdGFvIE5oYSBIYXQgTG9uIEhhIE5v aSANCg0KaHR0cDovL3d3dy50aG9uZ2x1YW4ub3JnL3ZuL21vZHVsZXMucGhwP25hbWU9TmV3cyZm aWxlPWFydGljbGUmc2lkPTMxNDQgKEJ1aSBUaW4pIDAxLzEwLzIwMDggMTc6Mzk6MzAgRURUICAN Cg0KQ29uZyBhbjogQ2h1YSBraG9pIHRvIHZ1IGFuIG9uZyBQaGFtIFF1YW5nIE5naGksIG5ndXll biBCbyB0cnVvbmcgVmFuIGhvYSwgYmkgY2hpbmggDQpjYW4gYm8gdHJvbmcgQm8gVmFuIGhvYSwg dG8gY2FvIG9uZyBOZ2hpIGFuIGJhbiB0cm9uZyB2dSBjaGluaCBwaHUgUGhhcCB2aWVuIHRybyB0 YW4gDQp0cmFuZyBOaGEgaGF0IGxvbiBUaGFuaCBwaG8gSGEgTm9pOyBvbmcgTmdoaSBsYXAgNSBj b25nIHR5IGN1YSBibyAodmUgb3AgdHVvbmcsIA0KbG9wIG1haSwgdGhpZXQgYmkgc2FuIGtoYXUs IGdoZSBuZ29pLCB0cmFuZyB0cmksIHRoYW0sIGFuIG5pbmguLi4pIGRlIG5oYW4gdGhhdSANCmNv bmcgdHJpbmggbmF5LCByaWVuZyBCbyB0cnVvbmcgbnVvdCAxNSUgZ2lhIHRoYXUuIA0KDQpCbyBD b25nIGFuIGRhIHR1bmcgY3UgZG9hbiBkaWV1IHRyYSBuaHVuZyBzYXUgZG8gbGFpIGVtIG5oZW0u IEJhbyBjaGkgY3VhIFBoYXAgdHVuZyBub2kgdmUgdnUgYmUgYm9pIG5heS4gDQoNCmh0dHA6Ly9w aGFwbHVhdHhhaG9pLnZuLzIwMTAwODIzMTAwMzg0ODBwMTAwMmMxMDM4L3BodW9uZy1uaW5oLWhv dC12YS1kb25nLWJvbi1jby1uaGlldS10aW5oLXRpZXQtdGFuZy1uYW5nLmh0bQ0KDQpDb25nIGFu OiBWdSBhbiBvbmcgdHJ1bSBQaHVvbmcgIk5pbmggSG90IiBraGV0IHRpZW5nIG8gUXVhbmcgTmlu aCB2YSBkb25nIGJvbiAtIG5oaWV1ICJ0aW5oIHRpZXQiIGJpIG5hbSBuZ29haSBobyBzbyB2dSBh bi4uLiAoISkgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAy OC8yMDEwMDcwOTAxMDYyMy5hc3B4IFRoYWkgU29uIDA5LzA3LzIwMTAgMTowNiANCg0KQ29uZyBh bjogQ2hhbSB2YSBjb24gdGhpZXUgY2h1IGRvbmcgZGlldSB0cmEsIHRhbiBjb25nIHRvaSBwaGFt IA0KDQpQaG8gdG9uZyBLaWVtIHRvYW4gTmhhIG51b2MgLSBvbmcgSG9hbmcgSG9uZyBMYWMsIGNo byBiaWV0OiAiVHJvbmcgaGFpIG5hbSBxdWEsIGNodW5nIHRvaSANCmRhIGNodXllbiBjbyBxdWFu IGNodWMgbmFuZyAzIC0gNCB2dSBjbyBkYXUgaGlldSBzYWkgcGhhbSwgdGhhbSBuaHVuZywgbmh1 bmcgdmllYyB4dSBseSBkZW4gDQpkYXUgdGhpIGNodW5nIHRvaSBjdW5nIGtob25nIGR1b2Mgcm8i LiANCg0KT25nIEhvYW5nIEhvbmcgTGFjIC0gUGhvIHRvbmcgS2llbSB0b2FuIE5oYSBudW9jLCBj aG8gYmlldCB0aGVtOiBEYW5nIGNodSB5LCBraWVtIHRvYW4gTmhhIG51b2MgDQpkYSBwaGF0IGhp ZW4ga2hhIG5oaWV1IHRydW9uZyBob3AgaHVvbmcgc2FpIGNoaW5oIHNhY2ggdHJvbmcga2h1b24g a2hvIHRodWMgaGllbiBjYWMgYw0KaHVvbmcgdHJpbmggaG8gdHJvIGNob25nIHN1eSBnaWFtIGtp bmggdGUgdGhlbyBOZ2hpIHF1eWV0IHNvIDMwIGN1YSBDaGluaCBwaHUuIA0KQ2FjIGNoaW5oIHNh Y2ggbmF5IGNoaSB1dSB0aWVuIGNobyBjYWMgZG9hbmggbmdoaWVwIHZ1YSB2YSBuaG8gbmh1bmcg ZGEgY28ga2hvbmcgaXQgDQp0YXAgZG9hbiwgdG9uZyBjb25nIHR5IDkwLCA5MSBjdW5nIGR1b2Mg aHVvbmc7IGN1IHRoZTogDQoNCi0gQ29uZyB0eSBDUCB0YWkgYmFvIGhpZW0gZHVvYyBtaWVuIGdp YW0gMTYgdGkgZG9uZzsgDQotIFRvbmcgY29uZyB0eSBkYXUgdHUgdmEga2luaCBkb2FuaCB2b24g bmhhIG51b2MgKFNDSUMpIGR1b2MgbWllbiBnaWFtIDM1IHRpIGRvbmc7DQotIFRvbmcgY29uZyB0 eSBjb25nIG5naGllcCB4aSBtYW5nIGR1b2MgbWllbiBnaWFtIDIxIHRpIGRvbmcuLi4gDQoNCktp ZW0gdG9hbiBOaGEgbnVvYyBkZSBuZ2hpIGNhYyBjbyBxdWFuIHNvbSBsYW0gcm8gbmh1bmcgc2Fp IHBoYW0gbmdoaWVtIHRyb25nIG5heS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTAyOC8yMDEwMDcwOTAxMDYyMy5hc3B4IFRoYWkgU29uIDA5LzA3LzIwMTAg MTowNiANCg0KQ2hpbmggcGh1IC0gQ29uZyBhbjogTW90IHNvIHZ1IHZpZWMga2VvIGRhaSBuaGll dSBuYW0gdmEgImRhIGRpIGRhIGxhaSIgZ2l1YSBjYWMgY28gcXVhbiB0byB0dW5nIGRvIHF1YW4g ZGllbSBraGFjIGJpZXQuIA0KTmd1eWVuIG5oYW4gbGEgZG8gY28gY2hlIHBob2kgaG9wIGhvYWMg dGhpZXUgY2FjIGNvbmcgY3UgZGUgZGluaCB0aW5oLCBkaW5oIGx1b25nIHZ1IGFuLiANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI4LzIwMTAwNzA5MDEwNjIz LmFzcHggVGhhaSBTb24gMDkvMDcvMjAxMCAxOjA2IA0KDQpDaGluaCBwaHUgLSBDb25nIGFuOiBD aHVhIHRoYW5oIGxhcCBkdW9jIHRydW5nIHRhbSBnaWFtIGRpbmggcXVvYyBnaWEgIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjgvMjAxMDA3MDkwMTA2MjMu YXNweCBUaGFpIFNvbiAwOS8wNy8yMDEwIDE6MDYgDQoNCkNvbmcgYW46IFZ1IGFuIHRpZXUgY3Vj IHRhaSBDb25nIHR5IHhhbmcgZGF1IGhhbmcga2hvbmcga2hvaSB0byB0dSBuYW0gMjAwNCBuaHVu ZyBrZW8gZGFpIA0KZGVuIG5heSB2aSAiY28gbmhpZXUga2V0IHF1YSBnaWFtIGRpbmgga2hhYyBu aGF1IiAgDQoNCmh0dHA6Ly9waGFwbHVhdHRwLnZuLzIwMTAwMzMwMTE1MjUwMzhwMTA2M2MxMDE2 L25oaWV1LWRpZW4tYmllbi1jby1sb2ktY2hvLWNhYy1iaS1jYW8uaHRtIDMxLzAzLzIwMTAgLSAx Mjo0OCBBTQ0KDQpDb25nIEFuOiBWdSAicnV0IHJ1b3QiIHR1b25nIGRhaSBEaWVuIEJpZW4gUGh1 IC0gY28gc3Ugc2FpIHNvIGdhbiA0MCB0YW4gZG9uZyBnaXVhIDIgYmFuIGtldCANCmx1YW4gZ2lh bSBkaW5oIGRldSBjdWEgVmllbiBLaG9hIGhvYyBoaW5oIHN1IEJvIENvbmcgYW4gDQoNCmh0dHA6 Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAzOC8yMDEwMDkxNzAyNDYxNS5h c3B4IDE3LzA5LzIwMTAgMjo0NiAgDQogDQpDb25nIGFuOiBEaWNoIHZ1IGJhbyB2ZSBjaGF0IGx1 b25nIGJpIHRoYSBub2kgLSAgQ28gcXVhbiBxdWFuIGx5IG5vaSAia2hvIiANCg0KKEFuaCBjaHVw OiBNb3Qgbmd1b2kgZGFuIGJpIGJhbyB2ZSBjdWEgbW90IGNvbmcgdHkgYmFvIHZlIGRhbmggYmkg dGh1b25nIG8gUS4xIFRQIEhDTS4gQW5oOiBEYW0gSHV5KSANCg0KS2luaCBkb2FuaCBkaWNoIHZ1 IGJhbyB2ZSBsYSBtb3QgbmdoZS4gQ2FjIGNvIHF1YW4gY2h1YyBuYW5nLCBkYWMgYmlldCBsYSBu Z2FuaCBjb25nIA0KIGFuIGxhIGRvbiB2aSBjYXAgcGhlcCB2YSBxdWFuIGx5LiBUdXkgbmhpZW4s IHZpZWMgcXVhbiBseSBjaHUgeWV1IGN1bmcgY2hpIHZlIG1hdCBoaW5oIA0KdGh1YywgaGFuaCBj aGluaC4gQ29uIHZlIGRhbyB0YW8sIHR1eWVuIGR1bmcgdGhpIGNhYyBjb25nIHR5IGJhbyB2ZSB0 dSBsbyBsYXkgbmVuIGNoYXQgDQpsdW9uZyB2ZSBzaSBuZ2F5IGNhbmcgeHVvbmcgY2FwLiANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM4LzIwMTAwOTE4MDE0 MTUwLmFzcHggTWFpIFRyYW0gIDE4LzA5LzIwMTAgMTo0MSANCg0KQm8gQ29uZyBhbjogTGFtIHZl IHNpIGRlIG5odSBjaG9pIC0gVGluaCB0cmFuZyB2ZSBzaSBraG9uZyBkdW9jIGNob24gbG9jIHZh IGRhbyB0YW8gbmh1IHF1eSBkaW5oIGxhIHRpbmggaGluaCBjaHVuZywga2hvbmcgY2hpIG8gVFAu SENNLiANCg0KVmkgZHUgZGllbiBoaW5oIG5odSBUUCBDYW4gVGhvIHZ1YSBjbyBjdW9jIHRvbmcg cmEgc29hdCBjYWMgY28gc28ga2luaCBkb2FuaCBkaWNoIHZ1IA0KYmFvIHZlIHRyZW4gZGlhIGJh biB2YSBjaG8gdGhheSBidWMgdHJhbmggY3VuZyB2byBjdW5nIGJhdCBuaGFvIC0gTHVhIG5ndW9p IGxhbyBkb25nIC0gRHVuZyB2ZSBzaSBkb2kgZGF1IHZlIHNpIC0gSGFuZyBsb2F0IHNhaSBwaGFt ICEgICAgICAgICANCiAgIA0KaHR0cDovL3d3dy5sYW1kb25nLmdvdi52bi92aS0uVk4vYS9zb3Zo dHRkbC90aW50dWMuLi5COXAuYXNweCBTQSAxOC8wMy8yMDEwIDEyOjEzICANCg0KQ29uZyBhbjog R2lhIGJhbiBiaWVuIHNvIHhlIGRlcCBjbyB0aGUgbGEgMTUuMDAwIFVTRC9jaGllYyAudi52LiAN Cg0KaHR0cDovL3d3dy5jb25nYW5iaW5odGh1YW4uZ292LnZuL2luZGV4LnBocD9vcHRpb249Y29t X2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTQzNzkmSXRlbWlkPTYzIE5ob20gUFYgVGhvaSBzdSAx NC8xMS8yMDEwIDA5OjU2IA0KDQpDaGluaCBwaHUgLSBDb25nIGFuOiBDaGFtIGJhbiBoYW5oIGh1 b25nIGRhbiB2aWVjIGJhbiBkYXUgZ2lhIHF1eWVuIHN1IGR1bmcgYmllbiBzbyB4ZSBvdG8sIHhl IG1vdG8sIHhlIGdhbiBtYXkgZGVwDQoNCkNodWEgdGhlIHRyaWVuIGtoYWkgdmkgY2hvIGh1b25n IGRhbiEgDQoNClRhaSBoYXUgaGV0IGNhYyB0aW5oLCBUUCBsb24gbmh1IEhhIE5vaSwgSGFpIFBo b25nLCBOZ2hlIEFuLCBEYSBOYW5nLCBIbyBDaGkgTWluaCwgDQpDYW4gVGhvLCBraGFvIHNhdCBj dWEgUFYgTGFvIERvbmcgdHUgQ0EgY2FjIFRQIG5heSBjaG8gdGhheSwgZG8gY2h1YSBjbyBodW9u ZyBkYW4gDQpjdSB0aGUgdHUgQm8gQ29uZyBhbiBuZW4gY2h1IHRydW9uZyBkYXUgZ2lhIGJpZW4g c28geGUgZGVwIHZhbiBjaHVhIHRoZSB0cmllbiBraGFpLiANCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM4LzIwMTAwOTE4MDAzNzA2LmFzcHggMTgvMDkvMjAx MCAwOjM3IA0KDQpDb25nIGFuOiBUcmluaCBkbyBuZ2hpZXAgdnUgY29uIG5oaWV1IGhhbiBjaGUs IHRoaWV1IGtpbmggdHJvbmcgbmhhbiBkYW4gDQoNClZ1IGhhbmcgY2h1YyBuaGFuIHZpZW4gYmkg Y29uZyBhbiBob2kgY3VuZyB2YSBwaGFpIGxhbiB0YXkgdmkgMSBnaWFtIGRvYyANCnRodW9jIFNv IENvbmcgdGh1b25nIFRQIEhhIE5vaSBraGFpIG1hdCBkaWVuIHRob2FpIC0gRGFuaCBkdSBuZ3Vv aSBDTlZDIGJpIHh1YyBwaGFtIG5naGllbSB0cm9uZyAgDQogIA0KQ29uZyBhbiBoYW5oIHh1IG5o dSB2YXkgbGEga2hvbmcgdGhlIGNoYXAgbmhhbiAtIFRyaW5oIGRvIHRoaSBoYW5oIGNvbmcgdnUg a2VtIA0KDQoiQ29uZyBhbiBwaHVvbmcgY2hpIGNvIHRoYW0gcXV5ZW4gbmFtIHRpbmggaGluaCwg c2F1IGRvIGxhcCBiaWVuIGJhbiBiYW8gY29uZyBhbiANCnF1YW4gY2h1IGtob25nIGR1b2MgdHUg ZG9uZyBkaSBob2kgY3VuZywgbGFuIHRheSBuZ3VvaSBraGFjLCBkaWV1IG5heSBkYSBkdW9jIHF1 eSBkaW5oIA0Kcm8gdHJvbmcgUGhhcCBsZW5oIERpZXUgdHJhIGhpbmggc3UiIC0gTFMgVHJhbiBE aW5oIFRyaWVuIChEb2FuIGx1YXQgc3UgSGEgTm9pKSBiYXkgdG8gDQoNCmh0dHA6Ly93d3cubGFv ZG9uZy5jb20udm4vSG9tZS9UdW9jLWRhbmgtaGlldS1jb25nLWFuLW5oYW4tZGFuLWN1YS0yLXNp LXF1YW4tbmhhbi1ob2ktbG8tMS10aS1kb25nLzIwMDg2LzkxNTI3Lmxhb2RvbmcgNC42LjIwMDgg MDg6MzkgKEdNVCArIDcpIA0KDQpDb25nIGFuOiAyIHNpIHF1YW4gY29uZyBhbiBuaGFuIGhvaSBs byAxIHRpIGRvbmcgDQoNCmh0dHA6Ly93d3cudGlubW9pLnZuL0hhaS1jYW5oLXNhdC1naWFvLXRo b25nLW5oYW4taG9pLWxvLTIwMC10cmlldS1kb25nLTAzNTk3MC5odG1sIDEwOjQ4IDIyLzAzLzIw MDkgDQoNCkNvbmcgQW46IEhhaSBjYW5oIHNhdCBnaWFvIHRob25nIG5oYW4gaG9pIGxvIDIwMCB0 cmlldSBkb25nIA0KDQpodHRwOi8vbmxkLmNvbS52bi8yMDA5MTEzMDA1MDk1NzY4MlAwQzEwMTkv bmhhbi1ob2ktbG8tMi1jYW5oLXNhdC1naWFvLXRob25nLWJpLWFuLXRyZW8uaHRtDQoNCkNvbmcg QW46IFRoZW0gMiBDU0dUIG5oYW4gaG9pIGxvLCBtb2kgZ2lvaSBob2kgbG8sIHRpZXUgaHV5IHRh aSBsaWV1IGNvIHF1YW4gTmhhIG51b2MgdmEgdG8gY2h1YyB4YSBob2kgKGJpIGxvLCBjaGkgYmkg YW4gdHJlbykgDQoNCmh0dHA6Ly9kYW5sdWFuLm9yZy9ub2RlLzIwMjMNCg0KQ29uZyBhbjogQmF0 IGJvIG5ndW9pIGRhbiBjaGkgdmkgbWFjIGFvIGNvIGluIGtoYXUgaGlldSB5ZXUgbnVvYyANCg0K aHR0cDovL3d3dy54YWx1YW4uY29tL21vZHVsZXMucGhwP25hbWU9TmV3cyZmaWxlPWFydGljbGUm c2lkPTk2ODc5ICAwOC8wMS8wOSAxODowNiANCg0KQm8gdHJ1b25nIExlIEhvbmcgQW5oIHRpZXAg dGhhbiBtYXQgRGFpIHN1IFRydW5nIFF1b2MgDQoNCkNoaWV1IDgvMSB0YWkgSGEgTm9pLCBkb25n IGNoaSBEYWkgdHVvbmcgTGUgSG9uZyBBbmgsIFV5IHZpZW4gQm8gQ2hpbmggdHJpLCBCbyB0cnVv bmcgDQpCbyBDb25nIGFuIGRhIHRpZXAgdGhhbiBtYXQgRGFpIHN1IFRydW5nIFF1b2MgVG9uIFF1 b2MgVHVvbmcgDQoNCkJvIHRydW9uZyBMZSBIb25nIEFuaCBjaHVjIHN1YyBraG9lIGRvbmcgY2hp IERhaSBzdSB2YSBjaHVjIG1vaSBxdWFuIGhlIGhvcCB0YWMgdG9hbiANCmRpZW4gZ2l1YSBoYWkg RGFuZywgaGFpIG5oYSBudW9jIHZhIGx1YyBsdW9uZyBDb25nIGFuLCBBbiBuaW5oIGhhaSBudW9j IGtob25nIG5ndW5nIA0KcGhhdCB0cmllbiB2YSB0aW4gdHVvbmcgZG9uZyBjaGkgRGFpIHN1IFRv biBRdW9jIFR1b25nIHNlIGtlIHR1YywgcGhhdCBodXkgdG90IHZhaSB0cm8gDQpjYXUgbm9pIGh1 dSBuZ2hpIHRodWMgZGF5IHF1YW4gaGUgaG9wIHRhYyBoYWkgbnVvYyB2YSBnaXVhIEJvIENvbmcg YW4gVmlldCBOYW0gdm9pIA0KY2FjIGNvIHF1YW4gdGh1YyB0aGkgcGhhcCBsdWF0IGN1YSBUcnVu ZyBRdW9jIHBoYXQgdHJpZW4gdGhlbyBwaHVvbmcgY2hhbSAxNiBjaHUgdmEgdGluaCB0aGFuIDQg dG90IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vaGNtLzIwMTAwOS9UYXUtbGEtbm8tc3Vu Zy10YW4tY29uZy1uZ3UtZGFuLTEtbmd1b2ktdHUtdm9uZy05MzQzNDMvIDE5OjM1LCAwOC8wOS8y MDEwIChHTVQrNykgDQoNCktpZW4gR2lhbmc6IFRhdSAibGEiIG5vIHN1bmcgdGFuIGNvbmcgbmd1 IGRhbiBWTiBnaXVhIEJpZW4gRG9uZywgMSBuZ3VvaSB0dSB2b25nICAgDQoNCmh0dHA6Ly93d3cu dm9hbmV3cy5jb20vdmlldG5hbWVzZS9uZXdzL2NoaW5hLXZpZXRuYW0tbGF3LWVuZm9yY2VtZW50 LTA5LTE2LTIwMTAtMTAzMDQzNTU5Lmh0bWwgMTYvOS8yMDEwIA0KDQpIYW5nIHRpbiBUYW4gSG9h IGN1YSBuaGEgbnVvYyBUcnVuZyBRdW9jIGNobyBiaWV0LCBvbmcgQ2hhdSBWaW5oIEtodW9uZyAt IFV5IHZpZW4gDQpUaHVvbmcgdnUgQm8gQ2hpbmggdHJpIERhbmcgQ29uZyBTYW4gVHJ1bmcgUXVv YywgdGllcCBraWVuIEJvIHRydW9uZyBCbyBDb25nIGFuIFZpZXQgTmFtIExlIEhvbmcgQW5oICAN Cg0KVGFpIGN1b2MgZ2FwIG5heSBvbmcgTGUgSG9uZyBBbmggbm9pIHJhbmcgVmlldCBOYW0gbXVv biBjdW5nIGNvIHN1IGhvcCB0YWMgdm9pIFRydW5nIFF1b2MgDQp0cm9uZyBubyBsdWMgcGhvbmcg Y2hvbmcgdG9pIHBoYW0gdmEgZ2l1IHZ1bmcgYW4gbmluaCB0cmF0IHR1IG8gbW9pIG51b2MgdGhl byBwaHVvbmcgY2hhbSAiMTYgY2h1IiB2YSB0aW5oIHRoYW4gIjQgdG90IiANCg0KaHR0cDovL3R1 YW52aWV0bmFtLm5ldC8yMDEwLTA4LTAxLW5oYS1udW9jLWRhbmctcXVlbi1kb2ktdmVkYW4tYm9p LXRodW9uZy0gS2lldSBQaG9uZw0KDQpDb25nIGFuOiBDaHVhIGtob2kgdG8gY29uZyB0eSBWZWRh biwgbWFjIGR1IFZlZGFuIGxhIHRodSBwaGFtIGNvIHRpbmggZ2F5IG8gbmhpZW0gc29uZyBUaGkg VmFpIHN1b3QgMTQgbmFtLCBoYXUgcXVhIGRhYyBiaWV0IG5naGllbSB0cm9uZyANCg0KaHR0cDov L3ZpZXRuYW1uZXQudm4veGFob2kvMjAwOC8wOS84MDUxNzAvICAxOToxOCwgMjMvMDkvMjAwOCAo R01UKzcpDQoNCkNvbmcgYW46IERhIGNvIHRyZW4gNzAwIGRvbiB0aHUga2V1IGN1dSB2YSB0byBj YW8gZ29pIGRlbiBDdWMgY2FuaCBzYXQgbW9pIHRydW9uZywgQm8gQ29uZyBhbiwNCg0KRGVuIG5n YXkgMjMvOS8yMDA4LCBkYSBjbyB0cmVuIDcwMCBkb24gdGh1IGtldSBjdXUgdmEgdG8gY2FvIGdv aSBkZW4gQ3VjIGNhbmggc2F0IG1vaSANCnRydW9uZywgQm8gQ29uZyBhbiwgdHUgY2FjIGhvIGRh biBzb25nIGRvYyB0aGVvIHNvbmcgVGhpIFZhaSwgbyBUUC5IQ00gZGVuIERvbmcgTmFpIHZhIEJh IFJpYSAtIFZ1bmcgVGF1Lg0KDQpNb2kgZGF5LCBuZ2F5IDIyLzkvIDIwMDgsIGNoaW5oIGJhbiB0 aGFuIEN1YyBjYW5oIHNhdCBtb2kgdHJ1b25nLCBCbyBDb25nIGFuIGN1bmcgDQpwaGF0IGhpZW4g dGhlbSBvbmcgeGEgY2hhdCB0aGFpIHRodSA0IHh1b25nIGxvbmcgc29uZyBUaGkgVmFpLg0KDQoo Q3UgdHJpIHF1YW4gdGFtOiBjaGkgcmllbmcgdmllYyBjaHVhIGtob2kgdG8gY29uZyB0eSBWZWRh biBnYXkgbyBuaGllbSBtb2kgdHJ1b25nIA0KY3VuZyBkdSBkZSB5ZXUgY2F1IG9uZyBMZSBIb25n IEFuaCBwaGFpIHR1IGNodWMgdmkga2hvbmcgdGh1YyBoaWVuIG5oaWVtIHZ1OyBsdW9pIGJpZW5n LikgDQoNCmh0dHA6Ly93d3cua2luaHRlbm9uZ3Rob24uY29tLnZuL1N0b3J5L2JhbmRvYy8yMDEw LzMvMjIyODEuaHRtbCAwMS8wMy8yMDEwLTExOjAxIEFNIA0KDQpBTi1UVDogU2FjaCBtZSB0aW4g ZGkgZG9hbiBiYXkgYmFuIGNvbmcga2hhaSBraGFwIG5vaSANCg0KaHR0cDovL2RhbnRyaS5jb20u dm4vYzIwMi9zMjAyLTQwMDgzNi9tZS10aW4tZGktZG9hbi12YW4tY29uLXBoby1iaWVuLmh0bSAw Ny8wNi8yMDEwIC0gMDk6MDcNCg0KQU4tVFQ6IE1lIHRpbiBkaSBkb2FuIGxhIHBobyBiaWVuIC0g bW9pIG5ndW9pIGRldSBiaWV0IGtob25nIGxlIGNvbmcgYW4gbGFpIGtob25nIGJpZXQgIA0KDQpo dHRwOi8vdm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwOC8wOS8zQkEwNjQzMS8gOS85LzIw MDgsIDExOjM2IEdNVCs3DQoNCkFOVFQ6IFRyb20gY2FwIHR1bmcgaG9hbmgga2hhcCBub2kgLSBD byB0aHUgcGhhbSBhbiB0cm9tIDIzIHhlIG1heSBtYSB2YW4gY2h1YSBiaSBiYXQgDQoNCmh0dHA6 Ly93d3cucmZhLm9yZy92aWV0bmFtZXNlL2luX2RlcHRoL3VwZGF0ZS1vbi1oYS1naWFuZy1zZXgt c2NhbmRhbC0wOTIyMjAxMDA3NDAzMy5odG1sIEdpYSBNaW5oLCBiaWVuIHRhcCB2aWVuIFJGQSAy MDEwLTA5LTIyIA0KDQpDb25nIGFuOiBWdSBhbiBtdWEgZGFtIG51IHNpbmggSGEgR2lhbmcgY2Fu IHN1IGNodSBkb25nIGN1YSBCbyBDb25nIGFuIA0KDQpWdSBhbiBtdWEgZGFtIGhvYyBzaW5oIHZp IHRoYW5oIG5pZW4gdGFpIHRpbmggSGEgR2lhbmcgZ2F5IHhvbiB4YW8gZHUgbHVhbiB0dSBob2kg Y3VvaSANCm5hbSBuZ29haSBjaG8gZGVuIGdhbiBkYXk7IHZhIGR1b25nIG5odSBuaGlldSBzdSBr aWVuIGRhbmcga2hpZW4gY2hvIHZ1IHZpZWMga2hvbmcgDQpkdW9jIGNodSB5IGRlbiBudWEuDQoN CihBbmg6IE9uZyBOZ3V5ZW4gVHJ1b25nIFRvIFBob3RvIGNvdXJ0ZXN5IG9mIGJhb2xhb2NhaS52 bikNCg0KS2UgdHUgdGhhbmcgY2hpbiBuYW0gbmdvYWksIGtoaSBoaWV1IHRydW9uZyBUcnVvbmcg UFRUSCB0aGkgdHJhbiBWaWV0IExhbSwgdGluaCBIYSANCkdpYW5nIGJpIG1vdCBzbyBwaHUgaHV5 bmggdG8gY2FvIGNvIGhhbmggdmkgbXVhIGRhbSBudSBzaW5oIG5nYXkgdHJvbmcgdHJ1b25nIGN1 YSANCm9uZywgZGVuIG5heSBkYSB0cm9uIG1vdCBuYW0uDQpUcm9uZyBraG9hbmcgdGhvaSBnaWFu IG1vdCBuYW0gYXksIG5oaWV1IHN1IGtpZW4gZGEgeGF5IHJhIHZvaSBoYWkgdnUgYW4gc28gdGhh bSwgcm9pIA0KcGh1YyB0aGFtIGJpIGhvYW4sIHZhIFRvYSBhbiBOaGFuIGRhbiB0aW5oIEhhIEdp YW5nIGh1eSBhbiBkZSBkaWV1IHRyYSBsYWkgdHUgZGF1Lg0KVHV5IG5oaWVuLCBzYXUgYmFvIHN1 IGtpZW4ga2hpZW4gZHUgbHVhbiBwaGFuIG5vIHZlIGhhbmggdmkgY3VhIG1vdCBzbyBnaWFvIGNo dWMgdHJvbmcgDQpuZ2FuaCBnaWFvIGR1YywgY2FuIGJvIGNhcCBjYW8sIHZhIGRvYW5oIGdpYSBj dWEgdGluaCBIYSBHaWFuZywgdHJvbmcgZG8gY28gY2Egb25nIGNodSANCnRpY2ggdGluaCBOZ3V5 ZW4gVHJ1b25nIFRvLCB0aGkgZGVuIG5heSB2dSBhbiBkdW9jIGdpYWkgcXV5ZXQgZGVuIGRhdT8N Cg0KRGllbiB0aWVuIHZ1IGFuIA0KDQpMdWF0IHN1IFRyYW4gRGluaCBUcmllbiwgbmd1b2kgdHUg bmd1eWVuIHRoYW0gZ2lhIHZ1IGFuIGJhbyBjaHVhIGNobyBoYWkgbnUgc2luaCANCk5ndXllbiBU aGkgSGFuZyB2YSBOZ3V5ZW4gVGhhbmggVGh1eSwgdmFvIG5nYXkgNiB0aGFuZyA5IHZ1YSBxdWEg Y2hvIGJpZXQ6IA0KDQonVHUga2hpIG9uZyBOZ3V5ZW4gVHJ1b25nIFRvIGJpIHh1IGx5IGt5IGx1 YXQsIHRoaSB0aGFpIGRvIGN1YSBjbyBxdWFuIGRpZXUgdHJhIENvbmcgYW4gDQpUaW5oIChIYSBH aWFuZykgdGhlIGhpZW4gc3UgbWVtIG1haSBob24gZG9pIHZvaSBnaWEgZGluaCBjdWEgaGFpIGNo YXUgVGh1eSB2YSBIYW5nLiANClR1eSBuaGllbiBkbyBjaGkgbGEgY2FjaCB0aWVwIHh1YyB0aG9p LCBjb24gdGh1YyB0aWVuIGhhbmggZG9uZyBjaHVhIGNvIGRpZXUgZ2kgbW9pIGhvbiANCnRydW9j LiBEb24gY3UgdmllYyB2aSBwaGFtIHBoYXAgbHVhdCBkb2kgdm9pIG5odW5nIGNhbiBibyBuaHUg b25nIE5ndXllbiBUcnVvbmcgVG8sIA0KaGF5IGRvaSB2b2kgRGluaCBYdWFuIEh1bmcsIERpbmgg WHVhbiBEdW5nLCB2YSBtb3Qgc28gY2FuIGJvIHRyb25nIGRhbmggc2FjaCBkZW4gDQptYSBjYWMg Y2hhdSBkdWEgcmEgLi4uZGVuIG5heSB2YW4gY2h1YSB4dSBseSBreSBsdWF0IGRvaSB2b2kgY2Fu IGJvIG8gY2FwIGRpYSBwaHVvbmc7IA0KY3VuZyBjaHVhIGtob2kgdG8gdGllcCBuaHVuZyBuZ3Vv aSBkbyB2ZSB0b2kgcXVhbiBoZSB0aW5oIGR1YyB2b2kgdHJlIHZpIHRoYW5oIG5pZW4sIGNodWEg DQpjbyBhaSBiaSBraG9pIHRvIHRoZW0gdHJvbmcgdnUgdmllYyBkby4gDQoNCkRvaSB2b2kgY2Fu IGJvLCBjb25nIGFuLCB2aWVuIGtpZW0gc2F0LCB0b2EgYW4gY2FwIHNvIHRoYW0gdHJvbmcgdnUg YW4gbmF5IHZpIHBoYW0gDQpuZ2hpZW0gdHJvbmcgdmUgbWF0IHRvIHR1bmc7IGxhbSBzYWkgbGVj aCBobyBzbyB2dSBhbiB2YW4gY2h1YSBkdW9jIGtob2kgdG8sIGNodWEgeGVtIA0KeGV0Lg0KDQpO Z29haSByYSwgdmFuIGRlIGNhIHhhIGhvaSBkYW5nIGJ1YyB4dWMgbGEgdmllYyBjaGF1IFRodXkg dmEgY2hhdSBIYW5nIGRhbmcgYmkgZ2lhbSANCmdpdS4gRG9pIHZvaSBsdWF0IHN1IHRoaSBobyB0 aW0gbW9pIGNhY2ggbmdhbiBjaGFuLCBuZ2FuZyBuaGllbiB2aSBwaGFtIHBoYXAgbHVhdC4gDQoN Ck5odSB0aGUgZG9pIHZvaSB2dSBhbiBuYXkgY2hpIGR1b2MgbW90IHBoYW4gbGEgdmllYyB0cnVu ZyB1b25nIGdpYWkgcXV5ZXQgY2h1YyB2dSBkb2kgDQp2b2kgb25nIE5ndXllbiBUcnVvbmcgVG87 IGNvbiBjYSB0YW5nIGJhbmcgcGhpYSBzYXUgdnUgYW4gbmF5IHZhIHRhdCBjYSBuaHVuZyB2YW4g ZGUgDQpjYW4gbGFtIHJvIGN1bmcgZGFuZyBiaSBjbyBkYXUgaGlldSAnY2hpbSB4dW9uZ5IuIA0K DQooQW5oOiBQYW5vIHBob25nIGNob25nIHhhbSBoYWkgdGluaCBkdWMgdHJlIGVtLiBBRlAgcGhv dG8pDQoNCk5ndXllbiBuaGFuIGNoaW5oIHZpIEJvIGNvbmcgYW4gdmEgVmllbiBraWVtIHNhdCBO aGFuIGRhbiBUb2kgY2FvIGtob25nIHJ1dCB2dSBhbiANCm5heSBsZW4sIHZhIHZpZWMgY2hpIGRh byB0aGlldSBuZ2hpZW0gbWluaCwgdGhpZXUgZHV0IGtob2F0LiBUcm9uZyBraGkgVXkgYmFuIFRo dW9uZyANCnZ1IFF1b2MgaG9pIGN1bmcgbmh1IFV5IGJhbiBUdSBwaGFwIFF1b2MgaG9pIHJhdCBx dWFuIHRhbSBkZW4gdnUgdmllYyBuYXkgY3VuZyBkYSANCmNvIHZhbiBiYW4gdHJhIGxvaSBjaHVu ZyB0b2kgdmEgZ3VpIGNobyBjYSBWaWVuIGtpZW0gc2F0IHZhIEJvIGNvbmcgYW4sIG5odW5nIGRl biBuYXkgDQp2YW4gY2h1YSBkdW9jIHhlbSB4ZXQgdmEgdHJhIGxvaSB5IGtpZW4gZG8uIA0KDQpU aHVjIHJhIGRheSBsYSB2dSBhbiBsaWVuIHF1YW4gZGVuIGNhYyBxdWFuIGNodWMgZGlhIHBodW9u ZywgdmkgZHUgdHJ1b2MgZGF5IG9uZyANCk5ndXllbiBUcnVvbmcgVG8gbmdvYWkgY2h1YyB2dSBQ aG8gYmkgdGh1IFRpbmggVXksIENodSB0aWNoIHRpbmgsIG9uZyBjb24gZHVvYyBwaGFuIA0KY29u ZyB0aGVvIGRvaSBtYW5nIHBoYXAgbHVhdCBjdWEgY28gcXVhbiB0dSBwaGFwIHRpbmguIE5ldSBr aG9uZyBnaWFpIHF1eWV0IGNodWMgdnUgDQpvbmcgTmd1eWVuIFRydW9uZyBUbywga2hvbmcgYWkg ZGFtIGR1bmcgZGVuIHZ1IGFuIG5heS4gQmF5IGdpbyBvbmcgTmd1eWVuIFRydW9uZyANClRvIGJp IGRpbmggY2hpIGNodWMgdnUgcm9pLCBuaHVuZyB2aWVjIGtoYWMgY28gdGhlIGdpYWkgcXV5ZXQg bW90IGNhY2ggcmF0IG5oZSBuaGFuZywgZG9uIA0KZ2lhbiB0aG9pOyBuaHVuZyBjb24gZ2lhbyBj aG8gZGlhIHBodW9uZyBraG9uZyB0aGUgbmFvIGdpYWkgcXV5ZXQgZHVvYyEgDQoNClNhcCBkZW4g ZGF5IGNvIGxlIHRvaSBzZSBjbyB0aHUgdGhlbyBkdSBsdWFuOiB0cm9uZyBzbyBuaHVuZyBjYW4g Ym8gdmkgcGhhbSBwaGFwIGx1YXQgZG87IA0Ka2UgY2EgY2FuIGJvIG1hdCB0dSBwaGlhIGNvIHF1 YW4gY29uZyBhbiwgZGV1IGxhICdjb24gb25nIG5vLCBjaGF1IG9uZyBraWGSLiBDbyBwaGFpIHZp IA0Kbmd1eWVuIG5oYW4gZG8ga2hvbmcsIG1hIHRhbmcgYmFuZyBkbyBkYW5nIGJpIGNoaW0/kiAN Cg0KVGluaCBoaW5oIGhhaSBudSBzaW5oICANCg0KSGFpIG51IHNpbmggSGFuZyB2YSBUaHV5IHR1 IGtoaSBiaSBiYXQgdmFvIHRyYWkgZGVuIG5nYXkgMTEgdGhhbmcgNiB2dWEgcXVhIG1vaSBkdW9j IA0KcGhlcCBnYXAgZ2lhIGRpbmggbW90IGxhbiBkdXkgbmhhdC4gR2lhIGRpbmggY2hpIGR1b2Mg cGhlcCBndWkgcXVhIHRoYW0gbnVvaSBtYSB0aG9pLiANCkx5IGRvIGR1b2MgY29uZyBhbiBkdWEg cmEgYm9pIGRhbmcgdHJvbmcgcXVhIHRyaW5oIGRpZXUgdHJhIG5lbiBnaWEgZGluaCBraG9uZyBk dW9jIHRoYW0gZ2FwLg0KDQpWYW8gbmdheSAyMSB0aGFuZyA5LCBiYSBOZ3V5ZW4gVGhpIFRob20s IG1lIGN1YSBlbSBOZ3V5ZW4gVGhhbmggVGh1eSwgYmF5IHRvIG5vaSANCm5pZW0gY3VhIG5ndW9p IG1lIGNvIGNvbiBiaSBnaWFtIHRyb25nIHR1IG1hIGJhbiB0aGFuIGtob25nIHRoZSBsYW0gZ2kg ZHVvYyBuZ29haSANCnZpZWMgZG9pIGNobyBjb25nIGx5IHNvaSB0byBjaG8gdnUgdmllYyBjdWEg Y29uIGJhOg0KDQoiQmF5IGdpbyBjaGkgYmlldCBjaG8gZG9pLCBtb25nIG1vaS4gRGlldSBtb25n IG5oYXQgbGEgdGluaCBraGFjaCBxdWFuIGN1YSBjbyBxdWFuIA0KZGlldSB0cmE7IGRpZXUgdGh1 IGhhaSBsYSBzdSBjb25nIGJhbmcgY3VhIGx1YXQgcGhhcC4gQ2hpIG1vbmcgbXVvbiBtb2kgdmll YyBtaW5oIGJhY2guIA0KTmV1IGNvIGNoYW5nIGNhYyBjaGF1IHBoYW0gdG9pIHRoaSBtdWMgZG8g dGhlIG5hbyB2YSBodW9uZyB4dSBseSB0YXQgY2Egbmh1bmcgbmd1b2kga2lhIHJhIHNhby4gDQoN CkNodW5nIHRvaSBjaGkgbXVvbiBob2k6IGx1YXQgcGhhcCBkYSBxdWkgZGluaCBybyByYW5nIHZl IHZpZWMgbmh1bmcgbmd1b2kgY28gcXVhbiBoZSANCnZvaSB0cmUgdmkgdGhhbmggbmllbiAocGhh aSB4dSBseSkgbyBtdWMgZG8gdGhlIG5hbz8gQmF5IGdpbyBjaGFuZyBiaWV0IHRoZSBuYW8gbWEg dmFuIA0KaW0gbGFuZywgdHJvbmcga2hpIGNvbiBjaHVuZyB0b2kgKGN1IGdvaSBjYWMgY2hhdSB2 dWEgbGEgbmFuIG5oYW4sIHZ1YSBsYSAndG9pIHBoYW2SKSBiaSANCmdpYW0gZ2l1IHN1b3QuIg0K DQpIYWkgYmEgbWUgY28gY29uIGdhaSBkYW5nIGJpIGdpYW0gZ2l1IHRvIHJvIGJhbiBraG9hbiwg bGlldSBCbyBDb25nIGFuIGNvIHRoYXUgZHVvYyANCm5pZW0gbW9uZyBkb2kgbmdheSBkZW0gY3Vh IGhvLCBsYW0gc2FvIGNobyB2dSB2aWVjIHNvbSBkdW9jIGxhbSBzYW5nIHRvIGhheSBraG9uZyEg DQoNCnkga2llbiBiYW4gZG9jOg0KDQpORCBndWkgb25nIExlIEhvbmcgQW5oOiANCkJvIGNvbmcg YW4ga2hvbmcgZHVvYyBiYW8gY2hlLCBuZSB0cmFuaCwga2hvbmcgZHVvYyBibyBuaGllbSB2dSEg S2hvbmcgbGFtIGR1b2MgdGhpIHR1IGNodWMgZGkuIA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4v MDAtMTAyODUwNjIxNy9ib19jaGluaF90cmlfbGFtX3ZpZWNfdm9pX2Jhbl90aHVvbmdfdnVfZGFu Z191eV9jb25nX2FuX3RydW5nX3VvbmcuaHRtbD9tb2RlPXByaW50IFBWIHZhIFRUWFZOICAzMC83 LzIwMTAgDQoNCkNvbmcgYW46IFRpbmggaGluaCB0cmF0IHR1IGFuIHRvYW4geGEgaG9pIG5oaWV1 IGhhbiBjaGUgDQoNCi0gQ29uZyB0YWMgbmFtLCBwaGFuIHRpY2gsIGR1IGJhbyB0aW5oIGhpbmgg dmEgdGhhbSBtdXUgY2hpZW4gbHVvYyB0cm9uZyBjb25nIHRhYyANCmRhbSBiYW8gYW4gbmluaCB0 cmVuIG1vdCBzbyBsaW5oIHZ1YyBjb24gaGFuIGNoZS4gDQoNCi0gQW4gbmluaCwgdHJhdCB0dSBj YWMgZGlhIGJhbiB0cm9uZyBkaWVtIGNodWEgdGhhdCB2dW5nIGNoYWMuIA0KDQotIENvbmcgdGFj IHBoYXQgaGllbiwgZGF1IHRyYW5oIHZvaSBtb3Qgc28gbG9haSB0b2kgcGhhbSBtb2kgeHVhdCBo aWVuLCB0b2kgcGhhbSANCmtpbmggdGUsIHRoYW0gbmh1bmcgY2h1YSBraXAgdGhvaTsgDQoNCi0g RGlldSB0cmEsIHh1IGx5IG1vdCBzbyB2dSB0aGFtIG5odW5nIGNvbiBrZW8gZGFpLiANCg0KLSBD b25nIHRhYyB0dSB0dW9uZywgZ2lhbyBkdWMgY2hpbmggdHJpIG8gbW90IHNvIG5vaSBjaHVhIG5o YXkgYmVuLCBraXAgdGhvaS4gDQpNb3QgYm8gcGhhbiBjYW4gYm8sIGRhbmcgdmllbiwgY2hpZW4g c2kgdHUgdHVvbmcgdHJ1bmcgYmluaCBjaHUgbmdoaWEsIGxhbSB2aWVjIA0KY2FtIGNodW5nLCB0 aW5oIGNoaWVuIGRhdSB2YSB0aW5oIHRoYW4gdHJhY2ggbmhpZW0gY2h1YSBjYW87IG1vdCBzbyBp dCB0aGlldSByZW4gDQpsdXllbiB0dSBkdW9uZywgdmkgcGhhbSBreSBsdWF0LCB2aSBwaGFtIHBo YW0gY2hhdCwgZGFvIGR1YywgdmkgcGhhbSBwaGFwIGx1YXQuIA0KDQpodHRwOi8vZGZjLnZuL3hh LWhvaS9waGEtZHVvbmctZGF5LXRyb20tY2FwLXhlLW1heS1zYW5nLWNhbXB1Y2hpYS10aWV1LXRo dS8xODkxMi5kZmMNCg0KQU4tVFQ6IHRyb20gY2FwIHhlIG1heSBzYW5nIENhbXB1Y2hpYSB0aWV1 IHRodQ0KDQpodHRwOi8vd3d3LmJhb2JhY2thbi5vcmcudm4vY2hhbm5lbC8xMTAzLzIwMTAwNS9C YWMtS2FuLXhldC14dS1uaG9tLXRyb20tY2FwLXhlLW1heS1saWVuLXRpbmgtMTk0Mzk0My8gMTA6 NDgnIDI3LzA1LzIwMTAgKEdNVCs3KQ0KDQpBTlRUOiBUcm9tIGNhcCB4ZSBtYXkgaG9hbmggaGFu aCAtIGxpZW4gdGluaCANCg0KaHR0cDovL3d3dy5hbm5pbmh0aHVkby52bi90aWFueW9uL2luZGV4 LmFzcHg/YXJ0aWNsZWlkPTcwMzE5JmNoYW5uZWxpZD04MCAyMi8wMy8yMDEwLCAxODowNg0KDQpB TlRUOiBUcm9tIGNhcCBoYW5nIHRyYW0geGUgbWF5IHRhaSBjYWMga2h1IGNodW5nIGN1DQoNCk5o aWV1IGRvaSB0dW9uZyBkYSBjdWEgdHJvbSBjYXAgaGFuZyB0cmFtIHhlIG1heSBjYWMgbG9haSB0 YWkgY2FjIGtodSBjaHVuZyBjdSBjdWEgbmd1b2kgZGFuIA0KDQpodHRwOi8vdm5leHByZXNzLm5l dC9HTC9QaGFwLWx1YXQvMjAxMC8wOS8zQkEyMDk2MC8gMjEvOS8yMDEwLCAxMDoyNyBHTVQrNw0K DQpBTlRUOiBYYXkgcmEgbmhpZXUgdnUgZ2lldCBuZ3VvaSB0aGUgaGllbiBzdSBzdXkgdGhvYWkg ZGFvIGR1YyBuZ2hpZW0gdHJvbmcgKHRhaSBIYSBOb2kpDQpDYWMgdnUgYW4gbWFuZyBuZ2F5IGNh bmcgbmdoaWVtIHRyb25nLCBtYW5nIHRpbmggY2hhdCB0YW4gYmFvIHZhIHRpbmggdmkgbmh1IGNh dCBjbywgY2hhdCBkYXUsIHBoYW4gdGhheSBoYXkgZG90IHhhYy4uLiANCg0KaHR0cDovL3ZuZXhw cmVzcy5uZXQvR0wvUGhhcC1sdWF0LzIwMTAvMDkvM0JBMjA5NjAvIDIxLzkvMjAxMCwgMTA6Mjcg R01UKzcNCg0KQU5UVDogU28gdnUgY3VvcCB4ZSBtYXksIHRhaSBzYW4gY3VhIGxhaSB4ZSB0YXhp IGRpZW4gYmllbiBwaHVjIHRhcCwgdGFuZyB0aGVvIHR1bmcgbmFtICh0YWkgSGEgTm9pKS4gDQpU cm9uZyBob24gMy4wMDAgdnUgeGF5IHJhIGNvIGRlbiA3MDAgbGEgY3VvcCB4ZSBtYXksIGhvbiAx NTAgdnUgY3VvcCB0YWkgc2FuIHRhaSB4ZSB0YXhpIA0KDQpodHRwOi8vd3d3LmJhb2Jpbmh0aHVh bi5jb20udm4vdm4vZGVmYXVsdC5hc3B4P2NhdF9pZD01NzImbmV3c19pZD0yNDU1MQ0KDQpBTlRU OiAiQnVuZyBwaGF0Ii4uLiB0cmUgaG9hIHRvaSBwaGFtIC0gVG9pIHBoYW0gbmdheSBjYW5nIHRy ZSBob2EuLi4NCg0KVHJvbmcgaGFuZyBsb2F0IGNhYyB2dSBhbiBnaWV0IG5ndW9pLCBjdW9wIHRh aSBzYW4sIGhpZXAgZGFtLi4uIGN1YSBuaHVuZyB0aGFuZyBkYXUgbmFtIA0KMjAwOSwgaGF1IGhl dCBodW5nIHRodSBkZXUgY29uIHJhdCB0cmUgZHVvaSAyNSB0dW9pLCB0aGFtIGNoaSBjaGkgbW9p IDE2IC0gMTcgdHVvaS4gICANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3ZuL3hhLWhvaS83 NTE3L3ZhLWNoYW0tZ2lhby10aG9uZy0tZGFtLWNoZXQtbmd1b2ktZ2l1YS1waG8uaHRtbCBRdW9j IFF1YW5nIDI2LzAxLzIwMTEgMDk6MDc6NTEgQU0gKEdNVCs3KSANCg0KQU5UVDogVmEgY2hhbSBn aWFvIHRob25nLCBkYW0gY2hldCBuZ3VvaSBnaXVhIHBobyAobyBUUCBIQ00pIA0KDQpodHRwOi8v dm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwOC8xMi8zQkEwOTg5Mi8gMTcvMTIvMjAwOCwg MTc6NDAgR01UKzcgDQoNCkFOVFQ6IDIgbmd1b2kgYmkgZ2lldCBibyB2YW8gdGh1bmcgeG9wICh0 YWkgVFAgSENNKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDI5LzIwMTAwNzE3MTMyMDA5LmFzcHggMTcvMDcvMjAxMCAxMDoyMCANCg0KQU5UVDogTmd1b2kg ZGkgZHVvbmcgdGhpZXQgbWFuZyB2aS4uLiAiZGluaCB0YWMiIA0KDQpodHRwOi8vbmxkLmNvbS52 bi8yMDEwMDgyNzA1NDExNjkyM1AwQzEwNzcvZGluaC10YWMtbGFpLWhvYW5oLWhhbmgtby1oYS1u b2kuaHRtIDI3LzA4LzIwMTAgMDU6NDFHTVQrNw0KDQpBTlRUOiAiRGluaCB0YWMiIGxhaSBob2Fu aCBoYW5oIG8gSGEgTm9pIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdl cy8yMDEwMzkvMjAxMDA5MjIxNTE0MDUuYXNweCAyMi8wOS8yMDEwIDU6MTQgDQoNCkFOVFQ6IFRh aSBkaWVuIG5hbiBnYWkgZGluaCB4ZSBob2kgZGUgdHJvbSB0aWVuIChvIFRQIEhDTSkgLSB0aW5o IGhpbmggQU5UVCByYXQga2VtICAgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3 cy9QYWdlcy8yMDEwMzkvMjAxMDA5MjMxNTU4NTQuYXNweCBUcmkgUXVhbmcgIDI1LzA5LzIwMTAg ODo1OCANCg0KQU5UVDogTmh1bmcgImhpZXAgc2kiIGNob25nICJkaW5oIHRhYyIgYmkgZGUgZG9h ICh0YWkgVFAgSENNKSANCg0KKE5odW5nICJoaWVwIHNpIiBjaG9uZyAiZGluaCB0YWMiIC0gS3kg MTogQ2FuIGNob2kgImJpZXQgYmF5IiBiZW4geGEgbG8pIA0KDQooVE5PKSBUaHVjIGtodXlhIGRh eSBzb20gdmEgc2FuIHNhbmcgY2hhcCBuaGFuIG5ndXkgaGllbSwgbmhpZXUgYmFuIHRyZSBkYW5n IG5nYXkgDQpuZ2F5IHRoYW0gbGFuZyB2b2kgaG9hdCBkb25nIGNob25nICJkaW5oIHRhYyIgdmEg Y3V1IG5ndXkgY2hvIGhhbmcgbmdhbiB0cnVvbmcgaG9wIGJpIA0KY2FuIGRpbmggdHJlbiBkdW9u Zy4gDQoNClBWIGJhbyBUaGFuaCBOaWVuIE9ubGluZSB2dWEgY28gbmh1bmcgbmdheSByb25nIHJ1 b2kgY3VuZyBjYWMgZG9pIGNob25nICJkaW5oIHRhYyIgDQp2YSB2YSB4ZSBsdXUgZG9uZyB0YWkg VFAuSENNLg0KDQpDYW4gY2hvaSAiYmlldCBiYXkiIGJlbiB4YSBsbw0KDQpEdW9pIGNoYW4gY2F1 IHZ1b3QgdHJhbSAyICh4YSBsbyBIYSBOb2kpLCBuZ3VvaSB0YSBkZSBkYW5nIG5oYW4gcmEgbW90 IGNhbiBjaG9pIHRhbSBibyANCmR1b2MgZHVuZyBsZW4gYm9pIGJvbiBtaWVuZyB0b24gbW9uZyBt YW5oLCBraG9uZyBkaWVuIHZhIGN1bmcgY2hhbmcgY28gbnVvYy4gDQpEbyBjaGluaCBsYSBub2kg bWEgZG9pIHZhIHhlIGx1dSBkb25nIFF1YW4gZG9hbiBRLjkgKFRQLkhDTSkgbGFtIGNob3QgInZh biBwaG9uZyIgDQpkZSBoYW5nIG5nYXkgdW5nIGN1dSBjaG8gbmh1bmcgdHJ1b25nIGhvcCBiaSBj YW4gZGluaCB0cmVuIGR1b25nLg0KDQooQW5oIGNodXA6IFRhbiBjaHVhbiBiaSBkbyBuZ2hlIHZh IHhlIGNobyBraGFjaCBjYW4gZGluaCAtIEFuaDogVHJpIFF1YW5nKSANCg0KR29uZyBtaW5oIG11 dSBzaW5oDQoNCkJheSBnaW8gc2FuZywgTmhhdCBUYW4gdmEgVHVhbiBWdSwgaGFpIHRoYW5oIHZp ZW4geG9uZyB4YW8gY3VhIGRvaSB2YSB4ZSBsdXUgZG9uZyANClF1YW4gZG9hbiBRLjksIHZhYyBk byBuZ2hlIGxlbiB4ZSBiYXQgZGF1IG1vdCBuZ2F5IGxhbSB2aWVjIG1vaS4gDQpOaGllbSB2dSBj dWEgaG8gbGEgZGFvIG1vdCB2b25nIGRvYyB4YSBsbyBIYSBOb2ksIHR1IG5nYSB0dSBUaHUgRHVj IGRlbiBuZ2EgYmEgVGFuIA0KVmFuIGRlLi4uIG5oYXQgZGluaC4gDQoNCkNob2MgY2hvYywgVGFu IGxhaSBuaGF5IHBob2MgeHVvbmcgeGUgcm9pIGN1aSBuZ3VvaSBsdW9tIHR1bmcgY2F5IGRpbmgg aGluaCBhY2ggcm8gYm8gDQp2YW8gY2FpIHR1aSBuaG8uIERhbmcgbmd1b2kgY29tIG5ob20gY3Vh IGNoYW5nIHRyYWkgMjEgdHVvaSB0cm8gbmVuIG1vIGFvIHZhIGNoZW5oIA0KdmVuaCBnaXVhIG5o dW5nIGxhbiB4ZSBjbyBsdW90IGJhbmcgYmFuZywgYW0gYW8gdHJlbiBkdW9uZy4gDQoNCihBbmgg Y2h1cDogRG8gY2h1YSBkdW9jIHRyYW5nIGJpIG1heSBodXQgZGluaCBuZW4gVGFuIHZhIGNhYyBi YW4gdHJvbmcgZG9pIHBoYWkgbHVvbSANCmRpbmggYmFuZyB0YXkgLSBBbmg6IFRyaSBRdWFuZykN Cg0KU2F1IG1vdCBuYW0gcnVvaSBob2F0IGRvbmcsIGRvaSBjdWEgVGFuIHZhIFZ1IHZhbiBjaHVh IGR1b2Mgc2FtIG1heSBodXQgZGluaCB2YSBobyANCnBoYWkgbHVvbSBiYW5nIHRheSBraG9uZyBu ZW4gcmF0IGN1Yy4gDQoNCiJEbyBsdW9tIHRheSBuZW4gbW9pIG5nYXkgYm9uIG1pbmggdGh1IGto b25nIGR1b2MgbmhpZXUgZGluaCBjaG8gbGFtLiBEYSBzbyBsYSBsb2FpIA0KZGluaCBsYSBoaW5o IGNvbiBhY2ggcm8sIGNvbiBsYWkgbGEgZGluaCBjaGkuIFBoYWkgY2hpIGRvaSBjdWEgbWluaCBk dW9jIHNhbSBtYXkgaHV0IGRpbmggDQp0aGkgY29uZyB2aWVjIGN1bmcgc2UgaGlldSBxdWEgaG9u IiwgVGFuIG5vaS4gDQoNClRhbiB2YSBWdSBkZXUgbGEgYm8gZG9pIHZhIGRhbiBxdWFuIHh1YXQg bmd1LCBobyB0aW5oIG5ndXllbiB0aGVvIGR1b2kgY29uZyB2aWVjIHRoYW0gDQpsYW5nIHRyZW4g bmdheSB0dSBuaHVuZyBuZ2F5IGRhdSB0aGFuaCBsYXAgY2hvIGR1IGtobyBraGFuIHRyYW0gYmUu IA0KDQpUaG9uZyBxdWEgaGFpIHNvIGRpZW4gdGhvYWkgIm5vbmciIDAxMjI2NjgyNjI2IC0gMDEy MjY2ODI3MjcsIG1vaSBuZ2F5IGRvaSB2YSB4ZSANClF1YW4gZG9hbiBRLjkgY2hpYSByYSBoYWkg Y2hvdCwgbGFtIHZpZWMgdHUgNyBnaW8gc2FuZyBkZW4gMTggZ2lvIHRvaS4gSGUgY28gbmd1b2kg Z29pIA0KZGllbiBsdWMgbmFvIHRoaSB0aGFuaCB2aWVuIGN1YSBkb2kgY28gbWF0IGx1YyBkbyBk ZSBobyB0cm8uIA0KDQoiVGhhbSBjaGkgc2F1IGtoaSBkYSB0YW4gY2EsIGNvIGtoYWNoIGNhdSBj dXUgbmdheSBnaXVhIDIyIGdpbyBkZW0sIGJvbiBtaW5oIGN1bmcgDQpwaGFpIGNoYXkgcmEgdmEg c3VhIGdpdXAiLCBUYW4gbm9pLiANCg0KTW9pIGxhbiB2YSwgY2FjIHRoYW5oIHZpZW4gdHJvbmcg ZG9pIGtpZW0gZHVvYyB0dSA4LjAwMCBkb25nIGRlbiAxMC4wMDAgZG9uZyB0dXkgDQpraG9hbmcg Y2FjaCBkaSBjaHV5ZW4geGEgaGF5IGdhbi4gVGluaCByYSBtb2kgbmdheSBjYSBkb2kgYm9uIHRo YW5oIHZpZW4gY2hpIGtpZW0gDQpkdW9jIGtob2FuZyB0dSA4MC4wMDAgZG9uZyBkZW4gMTAwLjAw MCBkb25nIHZhIHRhdCBjYSBkZXUgc29uZyBxdWEgbmdheSBiYW5nIHNvIHRpZW4gDQppdCBvaSBk by4gDQoNCihBbmggY2h1cDogQ2FjIHRoYW5oIHZpZW4gdHJvbmcgZG9pIHZhIHhlIGx1dSBkb25n IFF1YW4gZG9hbiBRLjkgZGFuZyBnb25nIG1pbmggdm9pIA0KY2h1eWVuIGNvbSBhbyBnYW8gdGll biB0dW5nIG5nYXkgZGUgYmFtIHRydSB2b2kgY29uZyB2aWVjIHRoYW0gbGFuZyAtIEFuaDogVHJp IFF1YW5nKQ0KDQoiQ28gbGFuIGJvbiBtaW5oIHZ1YSB2YSB4ZSB4b25nIGNobyBraGFjaCBuaGlu IGxhaSB0aGF5IGhhaSBiYW5oIHhlIGN1YSBtaW5oIHhlcCBsZXAgDQpsdWMgbmFvIGtob25nIGJp ZXQsIGRhbmggZ29pIGRpZW4gY2F1IGN1dSBkb25nIGRvaSIsIFR1YW4gVnUga2UgZ2lvbmcgY2h1 YSBjaGF0LiAgIA0KDQoiSGllbiBuYXkgZG9pIHZhIHhlIGx1dSBkb25nIFEuOSB2YW4gY2h1YSBj byBkdW9jIG1heSBodXQgZGluaC4gUXVhbiBkb2FuIGRhIGRlIHh1YXQgDQpyb2kgbmh1bmcgbGFu aCBkYW8gcXVhbiB2YW4gZGFuZyB4ZW0geGV0LiBTYXAgdG9pLCBjaHVuZyB0b2kgc2UgbXVhIDUg Y2hpZWMgeGUgbWF5IGhvYSANCmdpYSBkZSBobyB0cm8gY2hvIGNhYyBiYW4gbGFtIHZpZWMsIGRv bmcgdGhvaSB2YW4gZG9uZyB0aGVtIGNhYyBuaGEgdGFpIHRybyBkZSBjYWkgdGhpZW4gDQpjdW9j IHNvbmcgY3VhIGNhYyB0aGFuaCB2aWVuLCB2YSBkYWMgYmlldCBjaHVuZyB0b2kgc2UgbXVhIGJh byBoaWVtIHRhaSBuYW4gY2hvIGNhYyBiYW4gDQp5ZW4gdGFtIGxhbSB2aWVjLiANCkFuaCBlbSB0 cm9uZyBkb2kgY3VuZyBjbyBzYW5nIGtpZW4gdGltIG1hdCBiYW5nIG1vIHJvbmcgdGhhbmggZGll bSB2dWEgbmhhbiBydWEgeGUgDQp2dWEgbGFtIGNvbmcgdGFjIHN1YSB2YSB4ZSBsdXUgZG9uZyBk ZSBnaXVwIGRvIGNobyBuZ3VvaSBnYXAgbmFuLiBRdWFuIGRvYW4gc2UgaG8gdHJvIA0Ka2luaCBw aGkgZGUgY2FjIGJhbiBsYW0gdGh1IG5naGllbSBtbyBoaW5oIG5heSIgLSBBbmggQ2FvIFRoYW5o IEJpbmgsIEJpIHRodSBRdWFuIA0KZG9hbiBRLjkuDQoNClRyb25nIG1vdCBuYW0gcnVvaSBxdWEs IGRhIHR1bmcgY28gbmhpZXUgdGhhbmggdmllbiBwaGFpIHR1IGJvIGNvbmcgdmllYyB2YSB4ZSBs dXUgDQpkb25nIGdpdWEgY2h1bmcgZGUgdGltIHZpZWMga2hhYyB2aSB0aHUgbmhhcCBraG9uZyBk dSBzb25nLiANCg0KVHVvbmcgdHUgbmh1IHZheSwgbW90IHNvIHRoYW5oIHZpZW4gdHJvbmcgYmEg ZG9pIHZhIHhlIGx1dSBkb25nIGN1YSBRdWFuIGRvYW4gDQpRLlRodSBEdWMgIGN1bmcgZ2FwIGto b25nIGl0IGtobyBraGFuLiBNYXkgbWFuIGxhIG1vdCBzbyB0aGFuaCB2aWVuIGtoYWMgY28gdGll bSBzdWEgDQp2YSB4ZSByaWVuZyBuZW4gY3VuZyB0dW9uZyB0cm8gbGFuIG5oYXUgZGUgc29uZyB2 YSBjdW5nIGxhbSB0b3QgY29uZyB0YWMgZHVvYyBnaWFvLg0KQ2FuIGNob2kgImRpIGRvbmciDQoN CkNhYyB0aGFuaCB2aWVuIHRyb25nIGRvaSBjdWEgS2ltIENoaSB0cmFuaCBuYW5nIHRydSBtdWEg dHJvbmcgInZhbiBwaG9uZyIgNG0yIGR1bmcgDQp0cmVuIG5lbiBkYXQgZ28gZ2hlIGFtIHRoYXAg ZHVvaSBnYW0gY2F1IHZ1b3QgdHJhbSAyLiBCZW4gdHJvbmcgbGEgbGluaCBraW5oIGNhYyBsb2Fp IGRvIA0KbmdoZSB2YSBzdWEgeGUgY3Uga3kgdmEgY2FpIG1heSBib20gbmhvLiANCg0KIChBbmgg Y2h1cDogIlZhbiBwaG9uZyIgY3VhIGRvaSB2YSB4ZSBsdXUgZG9uZyBRdWFuIGRvYW4gUS45IHRo dW9uZyB4dXllbiBiaSB0cm9tIA0KImRvbiIgZG8gLSBBbmg6IFRyaSBRdWFuZykNCg0KRG9pIHRy dW9uZyBkb2kgdmEgeGUgbHV1IGRvbmcgUXVhbiBkb2FuIFEuOSBLaW0gQ2hpIGdvIGdvIHZhbyB0 YW0gdG9uIHRyYW5nIGNvbSBjb3AgDQpub2k6ICJDYWkgY2hvaSBuYXkgYm9uIG1pbmggZGEgY2h1 eWVuIGRpIGNodXllbiBsYWkgbWF5IGNobyByb2kgZG8sIGhpZW4gdGFpIG5vIHRhbSAicXVhIA0K Y2FuaCIgbGFpIGRheS4gQ28ga2hpIHZhaSBiYSBuZ2F5IGxhaSAiYmF5IiBzYW5nIGNobyBraGFj IGtob25nIGNodW5nIHZpIGR1IHNhbyBib24gDQptaW5oIGN1bmcga2hvbmcgZHVvYyBwaGVwIHR1 IHkgZHVuZyBjYWkgY2hvaSBuaHUgdGhlIi4gDQoNCkNoaSBkYSAiZHVvYyIgdHJhdCB0dSBkbyB0 aGkgcGh1b25nIG1vaSBsZW4gbGFtIHZpZWMgbWF5IGxhbiB2aSB0dSB5IGR1bmcgInZhbiBwaG9u ZyIgDQp0cmVuIGxlIGR1b25nIGRvYyB4YSBsby4gDQoNCiJWYW4gZGUgbmFtIG8gY2hvIGJvbiBt aW5oIGtob25nIGNvIG5vaSBkZSBkdW5nIHRpZW0gdmEgc3VhIHhlIHZhIGRlIGxhbSBub2kgdHJ1 IG5ndSANCmhhbmcgbmdheSBraGkgbGFtIHZpZWMuIERvaSBjaGkgY29uIHRyb25nIGNobyB2YW8g c3UgdGhvbmcgY2FtIGN1YSBjaGluaCBxdXllbiBkaWEgDQpwaHVvbmcgY2h1IGdpbyBjdW5nIGto b25nIGJpZXQgcGhhaSBsYW0gc2FvIiwgQ2hpIGdpYWkgdGhpY2guIA0KDQpEYSBraG8gbGFpIGNv biBnYXAgZW8sIHRoYW5nIG5hbyBjYW4gY2hvaSBjdWEgZG9pIENoaSBjdW5nIGJpIGJvbiBkYW8g Y2hpY2ggZ2hlICJ0aGFtIiANCmRldSBkYW4gMy00IGxhbi4gTW9pIHR1YW4gdHJ1b2MsIHRvYW4g Ym8gZG8gbmdoZSwgbWF5IGJvbSBtYSBkb2kgZGUgbGFpIGRhIGJpIHRyb20gY2F5IA0KY3VhIGRv dCBuaGFwIHZhbyAiZG9uIGRlcCIgc2FjaCBzZS4NCg0KKEFuaCBjaHVwOiBNb2kgbmdheSwgbmhv bSBjdWEgVGFuIHRodSBsdW9tIGR1b2Mga2hvbmcgaXQgYmF5IGRpbmggY3VhIGJvbiAiZGluaCAN CnRhYyIgLSBBbmg6IFRyaSBRdWFuZykNCg0KRGFuZyByYW0gcmFuIHRybyBjaHV5ZW4gZ2l1YSB0 cnVhLCBkaWVuIHRob2FpIFRhbiBkb3QgbmdvdCByZW8gbGVuLiBMYW4gbmF5IGtob25nIHBoYWkg DQpjdW9jIGdvaSBjYXUgY3V1IHR1IG5ndW9pIGdhcCBuYW4gdHJlbiBkdW9uZyBtYSBsYSB0aW4g bmhhbiBkZSBkb2EgY3VhIGtlIGxhIG1hdCB2b2kgbm9pIA0KZHVuZyAic2FjIiBtdWkgeGEgaG9p IGRlbjogIkFpIGNobyB0dWkgYmF5IHZhIHhlIG5nb2FpIGR1b25nLiBDb2kgY2h1bmcgdGFvIGRv ISIuIA0KVGFuIGRvYyB0aW4gbmhhbiBjaG8gY2EgZG9pIG5naGUgeG9uZyByb2kgY3VvaTogIkNo dXllbiBuYXkgeGF5IHJhIG5odSBjb20gYnVhLiBUdWkgDQpuYXkgbmhhbiBjYSB0cmFtIHRpbiBu aGFuIG5odSB2YXkgcm9pLiBDb24gY28gbmhpZXUgdnUgbmhhIG1heSwgZ29pIGRpZW4gcXVheSBy b2ksIA0Ka2h1bmcgYm8gdGluaCB0aGFuIG51YSBraWEhIi4NCg0KVmUgbmFuIGJpIG5oYW4gdGlu LCBnb2kgZGllbiBraHVuZyBibywgY2FjIHRoYW5oIHZpZW4gdmEgeGUgbHV1IGRvbmcgY3VhIFEu VGh1IER1YyANCmN1bmcgZ2FwIHRodW9uZyB4dXllbi4gVmEgdGhhbSBjaGksIG1vdCB0cm9uZyBi YSBkb2kgdmEgeGUgbHV1IGRvbmcgY3VhIHF1YW4gDQpuYXkgZGEgdHVuZyBiaSBtb3QgZGFtIGRv bmcgY29uIGRvIHRpZXAgY2FuIGRvYSBuYXQgaGFuaCBodW5nLCByYXQgbWF5IGtob25nIGNvIGFp IGJpIHRodW9uZyB0aWNoLiAgIA0KKENvbiB0aWVwKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDM5LzIwMTAwOTIzMDkyMzIxLmFzcHggMjMvMDkvMjAxMCA5 OjIzIA0KDQpBTlRUOiBOYW4gZHVhIHhlIG5nYXkgY2FuZyB0YW5nICh0YWkgVFAuSENNKSAgDQog IA0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvSGFpLUR1b25nLWJhdC0yLWNh bmgtc2F0LW5oYW4taG9pLWxvLzQwMDgxMTkwLzIxOC8gMzEvNS8yMDA1LCAwODoxOSBHTVQrNw0K DQpBTlRUOiAyIGNhbmggc2F0IG5oYW4gaG9pIGxvICh0YWkgSGFpIER1b25nKSANCg0KaHR0cDov L3ZpZXRiYW8udm4vWGEtaG9pL0Nhbmgtc2F0LWdpYW8tdGhvbmctbmhhbi1ob2ktbG8tbGFtLWhp ZXUtbHVjLXBoYXAtbHVhdC1iaS1uaG9uLzY1MDg5MzQ0LzE1Ny8gMTgvNC8yMDA3LCAxMToyMSBH TVQrNyANCg0KQU5UVDogQ2FuaCBzYXQgZ2lhbyB0aG9uZyBuaGFuIGhvaSBsbyBsYW0gaGlldSBs dWMgcGhhcCBsdWF0IGJpICJuaG9uIi4gRG8gbGEgbW90IA0KdHJvbmcgbmh1bmcgbmd1eWVuIG5o YW4gZGFuIGRlbiB0aW5oIHRyYW5nIGdpYW8gdGhvbmcgcGh1YyB0YXAsIHRhaSBuYW4gdGFuZyBj YW8gdHJvbmcgdGhvaSBnaWFuIHF1YS4gDQoNCmh0dHA6Ly9ob2xhbmh1b25nLm11bHRpcGx5LmNv bS9qb3VybmFsL2l0ZW0vMTAxNyBmb3IgZXZlcnlvbmUgMTYvNS8xMCAxMjo1OCBBTSANCg0KT25n IExlIEhvbmcgQW5oOiAiQ29uZyBhbiBjaGkgYmlldCBjb24gZGFuZyBjb24gbWluaCIgDQoNCmh0 dHA6Ly90aW50dWMueGFsby52bi8wMDEwMjM5MjE0OTYvMTVfY2FuaF9zYXRfZ2lhb190aG9uZ19u aGFuX2hvaV9sb190YXBfdGhlLmh0bWwgVGhlbyBWbkV4cHJlc3MsIFRpZW4gUGhvbmcgLSAxMy8w MS8yMDA2DQoNCkFOVFQ6IDE1IGNhbmggc2F0IGdpYW8gdGhvbmcgbmhhbiBob2kgbG8gdGFwIHRo ZSAobyBRdWFuZyBOaW5oKQ0KDQpTbyB0aWVuIGR1YSAtIG5oYW4gaG9pIGxvIGRhIGR1b2MgaG8g bm9wIGxhaSBsYSAzLDUgdHJpZXUgZG9uZy4gVHV5IG5oaWVuLCBtb3Qgbmd1b24gdGluIA0Ka2hh YyBjaG8gaGF5LCBzbyB0aWVuIHNhaSBwaGFtIHRyb25nIHZ1IHZpZWMgbmF5IGxvbiBob24gY29u IHNvIHRyZW4gbmhpZXUgbGFuLCB2YSBzbyANCm5ndW9pIGxpZW4gcXVhbiBraG9uZyBjaGkgZHVu ZyBsYWkgbyAxNSBuZ3VvaS4gDQoNCihDdSB0cmkgcXVhbiB0YW06IFZvaSBraGF1IGhpZXUgImNo aSBiaWV0IGNvbiBkYW5nIGNvbiBtaW5oIiwgbmdhbmggY29uZyBhbiANCmtobyBtYSBkYW8gdGFv IGR1b2Mgbmh1bmcgbmd1b2kgdmkgbnVvYyB2aSBkYW4gdGh1YyBzdTsgY29uIGVtIGN1YSBuaGFu IGRhbiANCmNobyB2YW8gcGh1YyB2dSB0cm9uZyBuZ2hhbmggY29uZyBhbiByYXQgZGUgYmkgb25n IExlIEhvbmcgQW5oIGxhbSBjaG8gaHUgaG9uZzsgaGVuIG5oYXQuKSANCg0KaHR0cDovL3d3dy52 dGMudm4vNy0yMzI4NzEvcGhhcC1sdWF0L25oYW4taG9pLWxvLTItY2FuaC1zYXQtZ2lhby10aG9u Zy1iaS1waGF0LXR1Lmh0bSAzMC8xMS8yMDA5IDIyOjE5DQoNCkFOVFQ6IDIgY2FuaCBzYXQgZ2lh byB0aG9uZyBuaGFuIGhvaSBsbyB2YSBtb2kgZ2lvaSBob2kgbG8gKG8gVGllbiBHaWFuZykgDQoN Cmh0dHA6Ly93d3cudGluMjQ3LmNvbS9jYW5oX3NhdF9kaV9jdW9wX2JpX3R1b2NfcXVhbl90aWNo LTYtMjEyMTM4ODcuaHRtbCB2bkV4cHJlc3MubmV0IDA2LzAyLzIwMDcgLSAyMDo0MyANCg0KQU5U VDogQ2FuIGJvIGNhbmggc2F0IGRpZXUgdHJhIGRpIGN1b3AgLSBjbyBrZSBob2FjaCAtIGNvIHRv IGNodWMgIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9Nb3QtY2FuaC1z YXQtYmktMy1uYW0tdHUtdmktbGFtLXNhaS1sZWNoLWhvLXNvLXZ1LWFuLzEwODI3ODg0LzIxOC8g VGh1IHR1LCAzMCBUaGFuZyBiYXkgMjAwMywgMDk6MjEgR01UKzcgDQoNCkFOVFQ6IENhbmggc2F0 IGRpZXUgdHJhIGxhbSBzYWkgbGVjaCBobyBzbyB2dSBhbiBtYSB0dXkgDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1Boby1waG9uZy1jYW5oLXNhdC1kaWV1LXRyYS1sYW0t c2FpLWxlY2gtaG8tc28tdnUtSGFpLUNoaS8xMDk3MDgzOS8yMTgvIDEyLzgvMjAwNiwgMDg6MzEg R01UKzcgDQoNCkFOVFQ6IFBobyBwaG9uZyBjYW5oIHNhdCBkaWV1IHRyYSBsYW0gc2FpIGxlY2gg aG8gc28gdnUgSGFpIENoaSANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5lbC8xOTgzLzIwMDkx MC80MDAwLWtob2FuLWNoaS1zYWktY3VhLWdvaS1raWNoLWNhdS1raG9uZy1tYXQtbWF0LTE3MjY1 NTMvIDI3LzEwLzIwMDkgMTk6MTE6MTQgDQoNCkNvbmcgYW46IENodWEga2hvaSB0byB2dSBnb2kg a2ljaCBjYXUgZ2FuIDQwMDAga2hvYW4gY2hpIHNhaSB0dW9uZyBkdW9uZyA4MzM0IHR5IGRvbmcg IA0KDQpodHRwOi8vcGhhcGx1YXR0cC52bi8yMDA5MTIyMTExMzM1ODg4NHAwYzEwMTUvc2FwLW5o YS1raGllbi1iYS1uZ3VvaS1jaGV0LXNlLWtob2ktdG8tdnUtYW4uaHRtIDIyLzEyLzIwMDkgLSAx MjozMCBBTSANCg0KQ29uZyBhbjogQ2h1YSBraG9pIHRvIHZ1IGFuIHNhcCBuaGEga2hpZW4gYmEg bmd1b2kgY2hldCAobyBCaW5oIER1b25nKSANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5lbC8x OTgzLzIwMDkvMDkvMTcyMTE4OS8gMTcvMDkvMjAwOSAxNTowMTozMyANCg0KQ29uZyBhbjogU2lu aCB2aWVuIGJpIGNvbmcgYW4gZGFuaCB0byAiaG8gZXAgY3VuZyIgKG8gSGEgVGluaCkgDQoNCkxp ZW4gcXVhbiBkZW4gdnUgQ1NHVCB2YSBDU0NEIGRhbmggZGFuIHRyZW4gZHVvbmcgcGhvLCBzYW5n IG5nYXkgMTcvOSwgc2F1IGtoaSBsYW0gDQp2aWVjIHZvaSBjb25nIGFuIFRQIEhhIFRpbmgsIGFu aCBEYW5nIERpbmggVmlldCBTViB0cnVvbmcgQ0QgVmlldCBEdWMgY2hvIHJhbmcgYmkgDQplcCBu aGFuIGRhIGRhbSB2YW8geGUgY2FuaCBzYXQuIA0KDQpodHRwOi8vbXkub3BlcmEuY29tL0FvLVRy YW5nLU9pL2Jsb2cvc2hvdy5kbWwvMTQ2NzIxMTIgDQoNCkNvbmcgYW46IE5nYW4gY2FuIHZpZWMg bGFtIHlldSBudW9jIGxhIHRyYWkgZGFvIGx5OyBuZW4gdW5nIGhvIHBob25nIHRyYW8gaW4ga2hh dSBoaWV1IEhTLlRTLlZOICANCg0KaHR0cDovL25ndW9pY2FvdHVvaS5vcmcudm4vU3RvcnkuYXNw eD9sYW5nPXZuJnpvbmVwYXJlbnQ9MCZ6b25lPTcmSUQ9NDUxNSBUcmFuIE15ICAwMy8wOC8yMDEw LTk6MTQgQU0NCg0KQU5UVDogQ28gcXVhbiBkaWV1IHRyYSB0YW8gY2h1bmcgY3UgZ2lhIGRlIGto b2kgdG8gLSBCdW9jIHRvaS4uLiBraWV1IG1hYyBjYSANCg0KKFZ1IGFuIHRoYW0gbyAxMCBuYW0g Y2h1YSB0aW0gcmEgY2FuIGN1IGRlIGJ1b2MgdG9pIG5ndW9pIGRhbiB2byB0b2kgbyBCaW5oIER1 b25nKSANCg0KQmFvIE5ndW9pIGNhbyB0dW9pIHNvIDU5KDc3NiksIHJhIG5nYXkgMTYtNy0yMDEw IHZpZXQgdmUgdnUgYW4gbm9pIHRyZW4gY2hvIGJpZXQgZG8gbWF1IA0KdGh1YW4gcXV5ZW4gbG9p IGdpdWEgY2h1IG1vIGRhIHZvaSBjaGluaCBxdXllbiBtYSA2IGNvbmcgZGFuIHZvIHRvaSBiaSBi aWVuIHRoYW5oICJ2YXQgdGUgdGhhbiIuDQoNClZ1IGFuIGtlbyBkYWkgaG9uIDEwIG5hbSwgcXVh IDUgYmFuIGtldCBsdWFuIGRpZXUgdHJhLCAzIGJhbiBjYW8gdHJhbmcgbmh1bmcgY2FvIGJ1b2Mg DQp2YW4ga2hvbmcgZHVvYyBjYWMgYmkgY2FvIHRhbSBwaHVjIGtoYXUgcGh1Yy4gSGFpIGRhbmcg dmllbiBiaSBraGFpIHRydSBvYW4sIG1vdCBuZ3VvaSANCmRhIHRpbSBkZW4gY2FpIGNoZXQsIG1v dCBuZ3VvaSBtb2kgdG90IG5naGllcCBkYWkgaG9jLCBiaSAiY2hvbiIgY2hhbiB0YWkgY2hvLiBO Z2F5IDIxLTctDQoyMDEwLCBUQU5EIHRpbmggQmluaCBEdW9uZyBxdXlldCBkaW5oIGxhaSBkdWEg dnUgYW4gcmEgeGV0IHh1IHNvIHRoYW0uIEtoaSBjYWMgYmkgY2FvLCANCnRoYW4gbmhhbiwgbHVh dCBzdSBjbyBtYXQgdGhpIFRvYSBiYW8gaG9hbiB4dSB2aSBtb3QgbGkgZG8ga2hvbmcgZGFuZyBj by4uLg0KDQpUYW8gY2h1bmcgY3UgZ2lhIGRlIGtob2kgdG8gLSBCdW9jIHRvaS4uLiBraWV1IG1h YyBjYSANCg0KTmdoaWEgbGEgY28gcXVhbiBkaWV1IHRyYSB2YSBWaWVuIGtpZW0gc2F0IG5oYW4g ZGFuIG8gZGF5IGtob2kgdG8sIHRydXkgdG8gdGhlbyBraWV1ICJtYWMgDQpjYSIgY2FvIGJ1b2Mg Y2hpZW0gZG9hdCBuaGlldSwgdm8gY2FuIGN1LCBjYWMgYmkgY2FvIHZhIFRvYSBwaHVjIHRoYW0g a2hvbmcgY2hhcCBuaGFuIA0KdGhpIGdpYW0geHVvbmcsIHZhbiBraG9uZyBjaGFwIG5oYW4gbnVh IHRoaSB0aWVwIHR1YyBnaWFtIG51YS4uLiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEt aG9pLzIwMTAvMDMvM0JBMTk4ODkvIDEwLzMvMjAxMCwgMTk6NTMgR01UKzcNCg0KQ29uZyBBbjog Q2hheSBjaHVuZyBjdSAxOCB0YW5nLCAyIG5ndW9pIGNoZXQgKGR1b2MgZHVhIGRpIGNhcCBjdXUg YmFuZyB4ZSBvbTsgbyBIYSBOb2kpIA0KDQoxOGggdG9pIDEwLzMgbmh1bmcgY290IGtob2kgYm9j IGNhbyB0YWkgdGFuZyAxNiBjaHVuZyBjdSBKU0MgMzQgKExlIFZhbiBMdW9uZywgSGEgDQpOb2kp LiBOaGlldSBjdSBkYW4gYmkgbWFjIGtldCBsYW8gcmEgYmFuIGNvbmcgdmF5IGtoYW4gY2F1IGN1 dS4gVHJvbmcgdHV5ZXQgdm9uZywgY28gDQpnaWEgZGluaCBkYSBiZW4gcXVhbiBhbyB0aGFuaCBk YXksIGJ1b2MgY29uIG1pbmggdGhhIHh1b25nIHRhbmcgZHVvaS4NCg0KQW5oIEhvIFN5IEJhYywg bW90IG5oYW4gY2h1bmcga2UgbGFpOiAiVGhhdCBraW5oIGhvYW5nLCBuaHVuZyBjb3Qga2hvaSBk ZW4gY3VvbiBjYW8sIA0KdGllbmcgbGEgaGV0LiBOaGlldSBuZ3VvaSBsYW8geHVvbmcgdGFuZyAx LCBjb24gbmh1bmcgbmd1b2kgbyB0YW5nIGNhbyB0aGkgZG8gcmEgYmFuIA0KY29uZyB2YXkgYW8g Y2F1IGN1dSIuDQoNCkNoaSBWdW9uZyBMYW4gUGh1b25nLCAzNCB0dW9pIHZhIGNvbiB0cmFpIEx1 dSBHaWEgTWluaCAxMCB0dW9pLCBzb25nIHRhaSB0YW5nIDE4IGRhIHR1IA0Kdm9uZyB0YWkgYmVu aCB2aWVuIGRvIGJpIG5nYXQga2hvaS4gMyBuZ3VvaSBraGFjIGJpIHRodW9uZyBkYW5nIGR1b2Mg Y2FwIGN1dS4gDQoNClkga2llbiBiYW4gZG9jICgxMCkgDQoNClF1YSBjaGFtIHRyZQ0KDQpYaW4g Y2hpYSBidW9uIGN1bmcgbm9pIGRhdSBjdWEgYW5oIFZpbmggbGEgY2hvbmcgY3VhIGNoaSBMYW4g UGh1b25nIHZhIGNoYSBjdWEgY2hhdSBNaW5oLiANCkJ1b2kgY2hpZXUgaG9tIHF1YSB0b2kgZGEg Y2h1bmcga2llbiB2dSB2aWVjIHR1IGRhdSBkZW4gY3VvaS4gDQpUaGF0IHN1IHRvaSByYXQgYnVj IHh1YyB2aSB0aGFpIGRvIGtob25nIGNoaXUgaG9wIHRhYyBjdWEgYmFuIHF1YW4gbHkgdG9hIG5o YS4gUm9pIHNhdSBkbyBkZW4gbGluaCBjdXUgaG9hLCA2IGNoaWVjIHhlIGN1bmcgdmFvIHR1IGx1 YyA2aDQ1IHZheSBtYSBkZW4gN2gzMCBtb2kgYmF0IGRhdSBjaG8gdGhhbmcgbGVuIGN1dSBuZ3Vv aS4NCg0KS2hpIHZ1IHZpZWMgZGEgZ2lhaSBxdXlldCBzYXAgeG9uZyB0aGkgdG9pIHRoYXkgYW5o IHhlIG9tIGRhIGR1YSBoYWkgbWUgY29uIGNoaSBMYW4gdmEgDQpjaGF1IE1pbmggcGhvbmcgeGUg bWF5IHZlIHZhIG5vaTogIktob25nIGN1dSBkdW9jIG51YSByb2ksIGRpIFBodW5nIEh1bmcgcm9p IiAodHJpY2ggDQpuZ3V5ZW4gdmFuIGxvaSBhbmggYXkgbm9pKSBsYW0gdGF0IGNhIGNodW5nIHRv aSBiYW5nIGhvYW5nLiANCg0KVGh1b25nIHRoaSBraGkgeGUgY3V1IGhvYSBuaGFuIGxlbmggZGkg a2hpIGNvIGJhbyBjaGF5IGxhIHBoYWkgY28geGUgY3V1IHRodW9uZyBkaSBjdW5nLCANCnZheSB0 YWkgc2FvIGtoaSBtZSBjb24gY2hpIExhbiBkdWEgcmEgbWEgcGhhaSAzMCBwaHV0IHNhdSBtb2kg ZHVhIG1lIGNvbiBjaGkgYXkgdmFvIA0KdmllbiBkdW9jLCBtYSBkdWEgdmFvIHZpZW4gYmFuZyB4 ZSBvbS4gQ2FjIGNvIHF1YW4gY2h1YyBuYW5nIGdpYWkgdGhpY2ggbmh1IHRoZSBuYW8/IEJhbiBx dWFuIGx5IHRvYSBuaGEgY2hpdSB0cmFjaCBuaGllbSBuaHUgdGhlIG5hbz8gVGhhdCBkYW5nIGJ1 b24gY2hvIGdpYSBkaW5oIGFuaCANClZpbmguIFhpbiBjaGlhIGJ1b24gbm9pIGRhdSBjdWEgYW5o LiANCihOZ3V5ZW4gVmFuIEh1bmcpDQoNCkNoaWEgYnVvbiBjdW5nIGdpYSBkaW5oIGNoaSBQaHVv bmcNCg0KS2h1IG5oYSBuYXkgcmF0IGdhbiB0cnVvbmcgcGhvbmcgY2hheSBjaHVhIGNoYXkuIE5o dW5nIHJhdCBsYXUgc2F1IGtoaSBjbyBkYW0gY2hheSANCnZhbiBraG9uZyB0aGF5IGNvIGN1dSBo b2EgZGVuLiBUaGF0IGRhdSBsb25nIGNobyAyIG1lIGNvbiBjaGkgTGFuIFBodW9uZywgeGluIGNo aWEgDQpidW9uIGN1bmcgZ2lhIGRpbmguIA0KKEJhbiBkb2MgSGEgTm9pKQ0KDQpDYW4gcGhhaSB0 cmFuZyBiaSB0aGlldCBiaSBjdXUgaG8NCg0KVHJhbmcgYmkgY3V1IGhvIHRyb25nIGNhYyBuaGEg Y2FvIHRhbmcgbyBWTiByYXQga2VtLiBUcm9uZyB0cnVvbmcgaG9wIDIgbWUgY29uIGNoaSANClBo dW9uZyBuYXksIG5ldSBjbyBtYXQgbmEgcGhvbmcga2hvaSB0aGkgY2hhYyBraG9uZyBjbyBrZXQg cXVhIGJpIHRoYW0gbmF5LiBDbyB0cmFuZyANCmJpIG5heSwgY28ga2hhIG5hbmcgdGhvYXQgcmEg bmdvYWkgYmFuZyBkdW9uZyBjYXUgdGhhbmcgYm8gYmF0IGNoYXAga2hvaSBkYXkgZGFjLiBUcm9u ZyANCmNhYyBjaHVuZyBjdSwga2hhY2ggc2FuIGNhbyB0YW5nIG8gbnVvYyBuZ29haSBtYSB0b2kg ZGEgZ2FwLCBjYWMgcGhvbmcgZGV1IGNvIHRoaWV0IGJpIA0KbmF5Lg0KKEJpYmkpIA0KDQpodHRw Oi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwNDAvMjAxMDA5MzAwMDEzNTIu YXNweCBNYWkgVm9uZyAzMC8wOS8yMDEwIDA6MTMgDQoNCkNvbmcgYW46IEtob25nIHF1YW4gbHkg ZHVvYywgcXVheSBxdWEgZGUgbmdoaSBjYW0ga2h1IHZ1aSBjaG9pIGN1YSB0cmUgZW0hIA0KICAN CihBbmggY2h1cDogRG9uZyBjdWEga2h1IHRybyBjaG9pIHRyZW4gY2F0LCBDb25nIHZpZW4gVGFv IERhbiBraG9uZyBjb24gY2hvIHZ1aSBjaG9pIGNobyB0cmUgZW0gLSBBbmg6IERpZXAgRHVjIE1p bmgpDQoNCkNoaWV1IDI0LjksIGtodSB0cm8gY2hvaSB0cmVuIGNhdCBkYW5oIGNobyB0aGlldSBu aGkgdGFpIENvbmcgdmllbiBUYW8gRGFuIChRLjEsIA0KVFAuSENNKSBkb3QgbmdvdCBuZ3VuZyBo b2F0IGRvbmcgbWEgbHkgZG8gdGFtIG5ndW5nIGxhIHZpIG5vaSBkYXkga2hvbmcgZGFtIGJhbyB2 ZSANCmFuIG5pbmggdHJhdCB0dSAoIT8pLiANCg0KVGhlbyBDb25nIHR5IGNvbmcgdmllbiBjYXkg eGFuaCBUUC5IQ00sIGRheSBsYSBraHUgdHJvIGNob2kgZGFuaCBjaG8gdGhpZXUgbmhpLCBob2Fu IA0KdG9hbiBtaWVuIHBoaSwgZG8gQ29uZyB0eSBsaWVuIGRvYW5oIExldmVyIFZOIHRhaSB0cm8g dG9hbiBibyB0aGlldCBiaSB0cm8gY2hvaS4gDQoNCk5hbSAyMDA2LCBjYSBoYWkgc28gbHVjIGJh eSBnaW8gbGEgU28gVmFuIGhvYSAtIFRob25nIHRpbiB2YSBTbyBHaWFvIHRob25nIC0gY29uZyAN CmNoaW5oIFRQIGRldSB1bmcgaG8gdmllYyBsYXAgZGF0IGNhYyB0aGlldCBiaSB0cm8gY2hvaSBj aG8gdGhpZXUgbmhpIHRhaSBDb25nIHZpZW4gVGFvIA0KRGFuLCBuaGFtIHRhbmcgY3VvbmcgdG8g Y2h1YyBzYW4gY2hvaSBjaG8gdHJlIGVtIHRhaSBjYWMgY29uZyB2aWVuLiBLaHUgdHJvIGNob2kg dHJlbiANCmNhdCBuYXkgY28gOCB0aGlldCBiaSB0cm8gY2hvaSwgaG9hbiB0b2FuIGxhbmggbWFu aCBuaHUgbWFuZyB0cnVvdCwgeGljaCBkdSB2YSBtb3Qgc28gdHJvIGNob2kgdmFuIGRvbmcga2hh Yy4gDQoNCk5nYXkgMjQuOSwgS2h1IFF1YW4gbHkgZ2lhbyB0aG9uZyBkbyB0aGkgc28gMSwgdGh1 b2MgU28gR2lhbyB0aG9uZyB2YW4gdGFpIChHVFZUKSANClRQLkhDTSBkYSByYSBtb3QgdmFuIGJh biBkb25nIGRhdSAia2hhbiIgZ3VpIGRlbiBDb25nIHR5IGNvbmcgdmllbiBjYXkgeGFuaCANClRQ LkhDTSwgZGUgbmdoaSBjaG8gdGFtIG5ndW5nIGtodSB0cm8gY2hvaSB0cmVuIGNhdCB0YWkgQ29u ZyB2aWVuIFRhbyBEYW4ga2UgdHUgbmdheSANCjI0LjkuIEx5IGRvIHRhbSBuZ3VuZyB4dWF0IHBo YXQgdHUgdmFuIGJhbiBraWVuIG5naGkgY3VhIENvbmcgYW4gKENBKSBRLjEgdmEgeSBraWVuIA0K Y2hpIGRhbyBjdWEgR2lhbSBkb2MgU28gR1RWVCBUUC4gDQoNClRoZW8gdmFuIGJhbiBraWVuIG5n aGkgY3VhIEMuQSBRLjEsIHR1IGtoaSBraHUgdHJvIGNob2kgdHJlbiBjYXQgZGkgdmFvIGhvYXQg ZG9uZyAobmFtIA0KMjAwNikgY2hvIGRlbiBuYXksIHRhaSBkYXkgZGEgeGF5IHJhIDEwIHZ1IHZp IHBoYW0gdmUgYW4gbmluaCB0cmF0IHR1LCB0cm9uZyBkbyBjbyA0IHZ1IA0KcGhhaSB4dSBseSBo aW5oIHN1LiBOZ29haSByYSwgY29uIGNvIDYgdnUgbWF1IHRodWFuLCB4aWNoIG1pY2ggdHJvbmcg bHVjIGNob2kgdHJvIGNob2kgY2F0IA0KZGFuIGRlbiBkYW5oIG5oYXUsIGRhIGJpIEMuQSBQLkJl biBUaGFuaCBjdW5nIHBob2kgaG9wIHZvaSBCYW4gcXVhbiBseSBDb25nIHZpZW4gDQpUYW8gRGFu IHh1IGx5LiANCg0KTmd1eWVuIG5oYW4gY2h1IHlldSwgdGhlbyBDQSBRLjEsIHR1IGtoaSBraHUg dHJvIGNob2kgY2F0IGRpIHZhbyBob2F0IGRvbmcsIGRhIHRodSBodXQgDQpzbyBkb25nIHRoYW5o IG5pZW4gZGVuIGRheSB2dWkgY2hvaSwgdHJvbmcgZG8gY28ga2hvbmcgaXQgdGhhbmggdGhpZXUg bmllbiBodSBob25nLCB0aGlldSANCnN1IHF1YW4gdGFtIGdpYW8gZHVjIHR1IHBoaWEgZ2lhIGRp bmg7IHNvIGhvYyBzaW5oIHRyb24gaG9jIGN1bmcgdHUgdGFwIHZlIGRheSBjaG9pLiAgVHV5IA0K bGEgdHJvIGNob2kgZGFuaCBjaG8gdGhpZXUgbmhpLCBuaHVuZyBjYWMgZW0ga2hvbmcgZHVvYyBj aG9pIHZpIGRhIGJpIG1vdCBzbyB0aGFuaCB0aGlldSANCm5pZW4gaHUgaG9uZyBkZW4gZ2lhbmgg Y2hvaS4gVHUgdmllYyB0cmFuaCBnaWFuaCB0cm8gY2hvaSBkYSB4YXkgcmEgdmEgY2hhbSBkYW4g ZGVuIA0KeGljaCBtaWNoLCBkYW5oIG5oYXUuDQoNClR1eSB2YXksIG1vdCBzbyBuZ3VvaSBkYW4g bWEgY2h1bmcgdG9pIGdhcCB0YWkgQ29uZyB2aWVuIFRhbyBEYW4gZGEgYnVjIHh1YyB0cnVvYyAN CnZpZWMgZG9uZyBjdWEga2h1IHZ1aSBjaG9pIGRhbmggY2hvIHRyZSBlbSBvIGNvbmcgdmllbiBu YXkuICJWYW4gZGUgbGEgY29uZyB0YWMgcXVhbiBseSANCm5odSB0aGUgbmFvIGRlIGJhbyBkYW0g YW4gdG9hbiB0cmF0IHR1IGNobyBjYWMgZW0gdnVpIGNob2kgY2h1IGtob25nIHBoYWkgaGUgY3Ug a2hvbmcgDQpxdWFuIGx5IGR1b2MgdGhpIGRvbmcgY3VhIiAtIG1vdCBuZ3VvaSBkYW4gbm9pLiAN Cg0KUGhvIGJhbiBWYW4gaG9hIFhhIGhvaSBIRE5EIFRQLkhDTSAtIG9uZyBOZ3V5ZW4gVmFuIE1p bmggY2hvIGJpZXQ6IEhpZW4gbmF5LCANCnRyZW4gZGlhIGJhbiBUUCBjaGkgY28gMSBjb25nIHZp ZW4gdmEgc2FuIGNob2kgY2hvIHRyZSBlbSBkdW5nIG5naGlhLCBsYSBDb25nIHZpZW4gDQpLaGFu aCBIb2kgbyBRLjQ7IGNhYyBjb25nIHZpZW4ga2hhYyBjdW5nIGNvIGtodSB2dWkgY2hvaSBjaG8g dHJlIGVtLCBuaHVuZyBxdXkgbW8gcmF0IA0KbmhvLiBUUCBkYW5nIGNhbiBjbyB0aGVtIG5oaWV1 IHNhbiBjaG9pIGNobyB0cmUgZW0sIHZvaSBjYWMgdHJvIGNob2kgdGFwIHRoZSBjdW5nIG5odSBj YSANCm5oYW4sIG8gZGFuZyBtaWVuIHBoaSBob2FjIGNvIHRodSB0aWVuLiBPbmcgTWluaCBjdW5n IGJ1YyB4dWM6ICJWaWVjIFNvIEdUVlQgcXV5ZXQgDQpkaW5oIHRhbSBuZ3VuZyBraHUgdHJvIGNo b2kgY2hvIHRoaWV1IG5oaSBvIENvbmcgdmllbiBUYW8gRGFuIGxhIGtob25nIGhvcCBseSwgYm9p IHZpIA0KY2h1bmcgdGEgZGFuZyBjYW4gcGhhaSBkYXUgdHUgdGhlbSBuaGlldSBraHUgdnVpIGNo b2kgbmh1IHRoZSIuIA0KDQpUaGVvIHF1YW4gZGllbSBjdWEgSERORCBUUCwgdHJvbmcga3kgaG9w IGN1b2kgbmFtIG5heSwgc2UgcmEgbmdoaSBxdXlldCB2ZSB2aWVjIGRhdSANCnR1IGNhYyBraHUg dnVpIGNob2kgY2hvIHRyZSBlbSB0YWkgY2FjIGNvbmcgdmllbiwgY2FjIG5oYSB2YW4gaG9hIHRo aWV1IG5oaSwgdHJvbmcgZG8gdGFuZyANCmN1b25nIGRheSBuYW5nIGtoaWV1IHZhIHRhbmcgY3Vv bmcgc2FuIGNob2kgY2hvIGNhYyBlbS4gTW90IHRoYW5oIHBobyBsb24gbmh1IA0KVFAuSENNLCB2 b2kga2hvYW5nIDEsNiB0cmlldSB0cmUgZW0sIHRoaSB2aWVjIHhheSBkdW5nIGNhYyBzYW4gY2hv aSBkYW5oIGNobyB0aGlldSBuaGkgDQpsYSBkaWV1IGNhcCBiYWNoLCBjaHUga2hvbmcgbHkgZG8g Z2kgbGFpIGRlcCBkaS4gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vVGluLVR1Yy9LaG9u Zy14dS1seS1uZ2hpZW0tbGFtLXNhby1jaGFtLWR1dC1uYW4tbW9jLXR1aS10cmVuLXhlLWJ1eXQv OTgxOCBDaGkgSGFpIDE5LjguMjAxMCAxMDoyNSAoR01UICsgNykgDQoNCkNvbmcgYW46IEtob25n IHh1IGx5IG5naGllbSBsYW0gc2FvIGNoYW0gZHV0IG5hbiBtb2MgdHVpIHRyZW4geGUgYnV5dD8g DQoNCiogVFAuSENNOiBNb2MgdHVpIGxvbmcgaGFuaCB0cmVuIHhlIGJ1eXQgDQoNCihMRCkgLUJh byBMYW8gRG9uZyBuZ2F5IDE4LjggZGEgY28gYmFpIHBoYW4gYW5oIHZlIG5hbiBtb2MgdHVpIGhh bmgga2hhY2ggZGkgeGUgYnV5dCANCnZhIG5ndW9pIGRhbiBkYSBkdW5nIGNhbSBiYXQgZ2l1IDIg dGVuIG1vYyB0dWkga2hpIGNodW5nIGR1bmcgZGFvIGNob25nIHRyYSBsYW0gMyANCm5ndW9pIGJp IHRodW9uZy4NCg0KVGhlIG5odW5nLCBkYW5nIGJhbyBkb25nIGxhIG5nYXkgc2F1IGtoaSBiaSBi YXQgZ2l1LCBDb25nIGFuIHF1YW4gVGh1IER1YyBkYSB0aGEgMiB0ZW4gDQptb2MgdHVpIG5heSB2 ZSwga2hpZW4gbmh1bmcgbmd1b2kgZGFuIGRhIHRoYW0gZ2lhIGJhdCBnaXUgYm9uIG1vYyB0dWkg cGhhaSBob2FuZyBzbyB2aSANCnNvIGJpIHRyYSB0aHUuIE5odSB2YXksIG5ldSBjdSB0aW5oIHRy YW5nIG5heSB0aGkgbmFuIG1vYyB0dWkgaG9hbmggaGFuaCB0cmVuIGNhYyBjaHV5ZW4gDQp4ZSBi dXl0IGRlbiBiYW8gZ2lvIG1vaSBjaGFtIGR1dCAoIT8pLg0KDQooQW5oOiBOYW4gbmhhbiBiaSBi b24gbW9jIHR1aSBkYW0gYmkgdGh1b25nLCBkZW4gbmF5IGxhaSBkYW5nIGhvYW5nIG1hbmcgdmkg c28gYmkgdHJhIA0KdGh1ISBBbmg6IFAuQikgDQoNCkNoaWV1IDE4LjgsIG5ndW9pIGRhbiBsaWVu IHR1YyBwaGFuIGFuaCBkZW4gY2FjIGNvIHF1YW4gYmFvIGNoaSB2ZSBzdSB2aWVjICJiYXQgbmdv IiBsYSANCjIgdGVuIG1vYyB0dWkgdHJlbiB4ZSBidXl0IHNhdSBraGkgYmkgcGhhdCBnaWFjIGRh IGR1bmcgZGFvIGRhbSB0cm9uZyB0aHVvbmcgMyBuZ3VvaSwgDQpuaHVuZyBzYXUga2hpIG5odW5n IG5ndW9pIGR1bmcgY2FtIGRvIG1hdSBiYXQgZHVvYyBib24gbW9jIHR1aSBjbyBodW5nIGtoaSBn YXkgYW4sIA0KbGFpIGJpIG1vdCBwaGVuIGhvYW5nIHNvIHZpIGNvbmcgYW4gZGEgdGhhIGNodW5n IHJhLiBUaGVvIGRpZXUgdHJhIGN1YSBCYW8gTGFvIERvbmcsIDIgDQp0ZW4gbW9jIHR1aSBiaSBu Z3VvaSBkYW4gYmF0IGdpdSBsYSBIb2FuZyBEdWMgVm9uZyAoc2luaCBuYW0gMTk1Nywgbmd1IFRo dSBEdWMpIHZhIA0KUGh1IFZhbiBUdWFuICh0dSBIYWksIHNpbmggbmFtIDE5NjksIG5ndSBBbiBM YWMgQSwgcXVhbiBCaW5oIFRhbikuIA0KDQpOZ2F5IHNhdSBraGkgY2h1bmcgdHUgdHJ1IHNvIGNv bmcgYW4gdHJvIHZlLCBjaHVuZyBsYWkgbGFuZyB2YW5nIGtodSB2dWMgbm9pIGNodW5nIGJpIA0K bmd1b2kgZGFuIGJhdCBnaXUgdmEgaGFtIGRvYSBzZSB0cmEgdGh1IG5odW5nIGFpIGRhIGJhdCBj aHVuZyBnaWFvIGNvbmcgYW4uIFBWIExhbyANCkRvbmcgZGEgbGllbiBsYWMgdm9pIENvbmcgYW4g cXVhbiBUaHUgRHVjLCB0aGkgZHVvYyBiaWV0LCBkbyB0aW5oIGNoYXQgY3VhIHZ1IHZpZWMgbmh1 IA0Kc28gdGllbiB0YW5nIHZhdCBjaHVhIGRlbiAyIHRyaWV1IGRvbmcsIHZldCB0aHVvbmcgY3Vh IDMgbmFuIG5oYW4gY2h1YSBkZW4gMTElIG5lbiBjaHVhIA0KdGhlIGNhdSB0aGFuaCB0aGVvIGto dW5nIHh1IGx5IGhpbmggc3UgbmVuIGNoaSB4dSBwaGF0IGhhbmggY2hpbmguIFF1YSBsYSBtb3Qg Y3Ugc29jIA0KY2hvIG5odW5nIG5ndW9pIGRhbiBkYSB0aGFtIGdpYSBiYXQgYm9uIG1vYyB0dWkg dmEgbmdheSBjYSBQViBMYW8gRG9uZy4gDQoNClBWIExhbyBEb25nIHRybyBsYWkga2h1IHZ1YyB0 cmFtIHhlIGJ1eXQgdHJlbiBxdW9jIGxvIDEzLCBwaHVvbmcgSGllcCBCaW5oIENoYW5oLCBxdWFu IA0KVGh1IER1YyBub2kgbWEgY2FjIGRvaSB0dW9uZyBuYXkgZGEgaGFuaCBodW5nIG5ndW9pIGJh dCBxdWEgdGFuZy4gQ2hpIEggYnVjIHh1YyANCmNobyBiaWV0LCBidW9pIHNhbmcgMTguOCwgY2hp IEggdmFvIGNobyB0aGkgcGhhdCBoaWVuIGRvaSB0dW9uZyBWb25nIGRhbmcgbGFuZyB0aGFuZyAN CnRyb25nIGNoby4gSG9hbmcgaG90IHZpIHNvIG5oYW4gbWF0LCBjaGkgcGhhaSBsYW5oIG1hdCBW b25nIHZpIHNvIGJpIHRyYSB0aHUuIENoaSBIIA0KaG9hbmcgbWFuZyB2aSBraG9uZyBiaWV0IGFp IHNlIGJhbyB2ZSBuaHVuZyBuZ3VvaSBkYW4gdGhhbSBnaWEgYmF0IHRvaSBwaGFtISANCg0KQW5o IE1haSBWYW4gQ2hpZW0gKG5ndW9pIGJpIHRodW9uZyBraGkgdGhhbSBnaWEgYmF0IGJvbiBtb2Mg dHVpKSBjaG8gcmFuZywgbmhpZXUgbGFuIA0KYmF0IGJpbmggdmkgaGFuaCB2aSBtb2MgdHVpIGN1 YSBjYWMgZG9pIHR1b25nLCBhbmggZGEgcmEgdGF5IG5nYW4gY2FuIHZhIGJpIGNhYyBkb2kgdHVv bmcgDQpkYW5oIGdheSB0aHVvbmcgdGljaCBwaGFpIG5oYXAgdmllbiwgYmkga2UgZGFvIHZhbyBj byBkZSBkb2EuIEN1IHR1b25nIHJhbmcgY2FjIGRvaSANCnR1b25nIG5heSBiaSBiYXQsIGJpIHh1 IGx5IG5naGllbSwgYWkgZGUgdnVhIGJpIGJhdCB4b25nIGRhIGR1b2MgdGhhLiBBbmggQ2hpZW0g ZGEgDQpuaGlldSBsYW4gYmkgaGFtIGRvYSwgYmkgZGFuaCBwaGFpIG5oYXAgdmllbiwgYmF5IGdp byBkYW0gbW9jIHR1aSBuYXkgbGFpIGR1b2MgdGhhIHJhIA0Kbmh1IHZheSwgbGlldSBuaHVuZyBu Z3VvaSBkYSB0dW5nIHRvIGdpYWMgdmF5IGJhdCBjaHVuZyBjbyBjb24gZGFtIGxpZXUgbWluaCBk ZSB0byBnaWFjIA0KY2h1bmcgbnVhIGhheSBraG9uZz8gDQoNClRoZW8gbW90IGx1YXQgc3UgdGh1 b2MgRG9hbiBsdWF0IHN1IFRQSENNLCB0aGkgaGFuaCB2aSBjdWEgMiBkb2kgdHVvbmcgbW9jIHR1 aSBkdW5nIA0KaHVuZyBraGkgbGEgaGFuaCB2aSBjb24gZG8uIFhldCBvIDIgZ29jIGRvLCBnb2Mg ZG8gdmF0IGNoYXQsIHNvIHRpZW4gbWEgaGFpIGRvaSB0dW9uZyBtb2MgDQpjdWEgbmFuIG5oYW4g Y2hpIHRyZW4gODAgbmdhbiBkb25nICh0cm9uZyBsdWF0IGhpbmggc3UgbGEgdHJlbiAyIHRyaWV1 IGRvbmcpIG5lbiBjaHVhIHRoZSANCmNhdSB0aGFuaCB5ZXUgdG8gaGluaCBzdSBuaHVuZyB4ZXQg dmUgZ29jIGRvIHhhIGhvaSwgdGhlbyBEaWV1IDEzOCwgQm8gbHVhdCBIaW5oIHN1IGJvIA0KeHVu ZywgdGhpIHNvIHRpZW4gZHVvaSAyIHRyaWV1IGRvbmcgbmh1bmcgbGFpIGdheSBoYXUgcXVhIG5n aGllbSB0cm9uZyBib2k6IEhhbmggdmkgDQpwaGFtIHBoYXAgY29uZyBraGFpLCBkZSBkb2EsIHRo YWNoIHRodWMgZHUgbHVhbiwgY28gZGF1IGhpZXUgaGFuaCBodW5nIGRlIHRhdSB0aG9hdCAoY3Ug DQp0aGUgbyBkYXkgbGEgZGFtIGJpIHRodW9uZyAzIG5ndW9pKSwgc3UgZHVuZyBodW5nIGtoaSBj aHV5ZW4gbmdoaWVwIGN1YSAyIGRvaSB0dW9uZyANClZvbmcgdmEgVHVhbiBjbyB0aGUgY2F1IHRo YW5oIHRvaSBwaGFtLCBjbyB0aGUgeHUgbHkgZHVvYy4gDQoNCmh0dHA6Ly9uZ3VvaWNhb3R1b2ku b3JnLnZuL3ByaW50Q29udGVudC5hc3B4P0lEPTQ5MzUgVHVhbiBEYXQtSGEgQW5oICAwOS8xMS8y MDEwIC0gMTA6MDEgQU0gDQoNCkNvbmcgYW46IG5nYW5oIGNvbmcgYW4gY2FuIGtpZW4gcXV5ZXQg aG9uIG51YSB2b2kgY2FjIGxvYWkgdG9pIHBoYW0sIGxhbSBzYW8gZGUgbmd1b2kgDQpkYW4gZHVh IGNvbiBkZW4gdHJ1b25nLCByYSBkdW9uZyBraG9uZyBjb24gY2FtIHRoYXkgbmd1eSBoaWVtLiBT byB0b2kgcGhhbSBsYW4gdHJvbiANCm5nb2FpIHhhIGhvaSBjb24gbmhpZXUuICJDbyBkb2kgdHVv bmcgbW9jIHR1aSB0cmVuIHhlIGJ1eXQgYmkgbmd1b2kgZGFuIGJhdCBxdWEgdGFuZywgDQpnaWFv IGNobyBjb25nIGFuIHRoaSBsYWkgZHVvYyB0aGEsIHZpIHNvIHRpZW4gbW9jIHR1aSBjaHVhIGRl biAyIHRyaWV1IGRvbmcsIG5ndW9pIGRhbiByYXQgDQpraG9uZyB5ZW4gdGFtLiBDbyBtb3Qgc28g ZG9pIHR1b25nIHBoYW0gdG9pIGR1b2MgdGhhIHJhdCBraG8gaGlldSIuDQoNCk1vdCBzbyBkYWkg YmlldSBRSCBiYXkgdG8gbG8gbmdhaSB0cnVvYyB0aW5oIHRyYW5nIG1vdCBzbyBjYW4gYm8gbmdh bmggY29uZyBhbiBzdSBkdW5nIA0KdnUgbHVjIGtob25nIHBodSBob3AgZ2F5IHJhIG5odW5nIGNh aSBjaGV0IG5nb2FpIHkgbXVvbiwgbmdhbmggY29uZyBhbiBjYW4geGVtIGxhaSANCmNhIHZlIGdp YW8gZHVjIGt5IG5hbmcgaG9hdCBkb25nIGN1YSBjYWMgY2FuIGJvLCBjaGllbiBzaSBjdW5nIG5o dSB2aWVjIHRyYW5nIGJpIGNhYyB0aGlldCBiaS4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5p bmgtUGhhcC1sdWF0LzUtbmFtLWNodWEteHUteG9uZy12dS1jb24tY29uZy1hbi1kYW0tY2hldC1u dS1zaW5oLzEwOTkwMTcwLzIxOC8gQW5oIFRodSAyNi8xMi8yMDA2LCAwODo0MyBHTVQrNyANCg0K Q29uZyBhbjogNSBuYW0gY2h1YSB4dSB4b25nIHZ1IGNvbiBjb25nIGFuIGRhbSBjaGV0IG51IHNp bmggdmkgbmh1bmcgdGhpZXUgc290IGN1YSBjb25nIGFuIHRyb25nIHF1YSB0cmluaCB0aHUgbHkg aG8gc28uDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0LzItY28tcXVhbi1j b25nLWFuLXZpLXBoYW0tdGh1LXR1Yy10by10dW5nLXZ1LUxhbmctSG9hLUxhYy8xMDkwNTg4NS8y MTgvIDEyLzQvMjAwNSwgMDY6MDAgR01UKzcgDQoNCkNvbmcgYW46IDIgY28gcXVhbiBjb25nIGFu IHZpIHBoYW0gdGh1IHR1YyB0byB0dW5nIHZ1IExhbmcgLSBIb2EgTGFjIA0KDQpodHRwOi8vZGFu dHJpLmNvbS52bi9jMjAvczIwLTM0OTU2NS9ub2ktZGF5LWR1dC1jdWEtdm8tdG9uZy1kYW5oLWhv LWN1dS1uZ3VvaS5odG0gMTEvMDkvMjAwOSAtIDE1OjMwIA0KDQpDb25nIGFuOiBDaHVhIGtob2kg dG8gdnUgYW4gIkhvIG8gS2h1IGR1IGxpY2ggRGFpIE5hbSBjYW4gY2hldCBuZ3VvaSIgKG8gQmlu aCBEdW9uZykgDQoNCk5hbiBuaGFuIHRoaWV0IG1hbmcgbGEgYW5oIE5ndXllbiBDb25nIERhbmgs IDQ3IHR1b2kgbyB0YWkgcGh1b25nIEhpZXAgQW4sIHRoaSB4YSBUaHUgRGF1IE1vdC4gDQoNCmh0 dHA6Ly93MTEudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8wNC8zQkExQUY1NS8gMTgvNC8y MDEwLCAxOToyMyBHTVQrNw0KDQpDb25nIGFuOiBDaHVhIGtob2kgdG8gdnUgYW4gIlNhcCBtb3Qg bmhpcCBkYW4gY2F1IFRoYW5oIFRyaSIgKG8gSGEgTm9pKSANCg0KaHR0cDovL3d3dy50dW9pdHJl LmNvbS52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTM1MTIxMiZDaGFubmVsSUQ9MyBU aHUgU2F1LCAwNC8xMi8yMDA5LCAwNTo1NyAoR01UKzcpDQoNCkNvbmcgYW46IENodWEga2hvaSB0 byB2dSBEdSBhbiBiYWkgcmFjIERhIFBodW9jIC0gQ2hvIHRhbSB1bmcgOSB0cmlldSBVU0QgbGEg c2FpIGx1YXQgKG8gVFAgSENNKSANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAw OS8wOS84NjY0ODkvIDE4OjQ4LCAwMS8wOS8yMDA5IChHTVQrNykNCg0KQ29uZyBhbjogY2h1YSBr aG9pIHRvIHZ1IGFuIG9uZyBUcnVvbmcgQ2hpIFRydW5nIGtoaSBsYW0gVGh1IHRydW9uZyBCbyBU YWkgY2hpbmggY28gIA0Ka2h1eWV0IGRpZW0sIHZpIHBoYW0gbGFtIHRoYXQgdGh1IG5nYW4gc2Fj aCBOaGEgbnVvYyB2b2kgc28gdGllbiBsb24sIGFuaCBodW9uZyBkZW4gdXkgDQp0aW4gY3VhIEJv IFRhaSBjaGluaDsgY28gbGllbiBxdWFuIHRvaSB0YXAgZG9hbiBUYW4gVGFvLiAgIA0KDQpodHRw Oi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9EZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTU4MTUyNC8x Mi8yMDA3DQoNCkNvbmcgYW46IFRoYW0gbyB0aWVuIHR5IHZhbiBraG9uZyBiaSB0cnV5IHRvIC0g Q2h1eWVuIGtobyB0aW4gbmF5IHhheSByYSB0YWkgQ29uZyB0eSBEdW9jIHBoYW0gVHJ1bmcgdW9u ZyAyIChDb2R1cGhhKSB0cnVjIHRodW9jIFRvbmcgQ29uZyB0eSBEdW9jIFZpZXQgTmFtIChCbyBZ IHRlKSANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vP0NUPU5XJk5JRD04NTg2IDA1 LzAzLzIwMDggDQoNCkNoaW5oIHBodSAtIENvbmcgYW46IEN0eSBkdW9jIHBoYW0gdHJ1bmcgdW9u ZyAyIChUUEhDTSkgIkNvIG1heSIgdGlldSB0aWVuIG5oYSBudW9jIQ0KDQpIYW5nIGxvYXQgbWF0 IGJhbmcgY29uZyBzYW4gZHVvYyBsYW5oIGRhbyBDb2R1cGhhciBjaG8gdGh1ZSBkZSBibyB0aWVu IHZhbyBxdXkgZGVuIHhhaSByaWVuZy4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAw Ny8wOS83NDQ1OTcvIDI1LTA5LTIwMDcgMTU6MTkgKEdNVCs3KQ0KDQpDaGluaCBwaHUgLSBDb25n IGFuOiBWdSBiaWVuIGN1IHhhIHRoYW5oIGJpZXQgdGh1IC0gVmkgc2FvIGNvbmcgYW4gY2h1YSB2 YW8gY3VvYz8NCg0KRGEgbmhpZXUgbGFuIFV5IGJhbiBLaG9hIGhvYyBDb25nIG5naGUgdmEgTW9p IHRydW9uZyBjdWEgUXVvYyBob2ksIFRoYW5oIHRyYSBDaGluaCBwaHUga2llbiBuZ2hpIA0KdGhh bmggdHJhIGNhYyBzYWkgcGhhbSB0YWkgZHUgYW4gbmF5IG5odW5nIHZhbiBjaHVhIHRoZSB0aHVj IGhpZW4uICAgICAgDQoNCk1vaSBkYXksIFV5IGJhbiBLaG9hIGhvYyBDb25nIG5naGUgdmEgTW9p IHRydW9uZyBjdWEgUXVvYyBob2kgbGFpIGRlIG5naGkgVGh1IHR1b25nIGdpYW8gVGhhbmggdHJh IENoaW5oIHBodSANCnRoYW5oIHRyYSBkdSBhbiBuaGEgbyB0YWkgcGh1b25nIFBodW9jIExvbmcg QiAocXVhbiA5LCBUUC5IQ00pIGN1YSBDb25nIHR5IFBodSBEdWMuIA0KDQpEdSBhbiBuYXkgY28g bmhpZXUga2h1YXQgdGF0LCBuYW0gMjAwNiwgVGhhbmggdHJhIENoaW5oIHBodSB0dW5nIGtpZW4g bmdoaSBUaHUgdHVvbmcgZ2lhbyBjbyBxdWFuIG5heSB0aGFuaCB0cmEsIA0KbmV1IGNvIGRhdSBo aWV1IGhpbmggc3Ugc2UgY2h1eWVuIGNvIHF1YW4gZGlldSB0cmEgZ2lhaSBxdXlldC4gTmh1bmcg dHUgZG8gZGVuIG5heSBraWVuIG5naGkgdHJlbiB2YW4gY2h1YSBkdW9jIGhvaSBkYXAgKD8hKSAN Cg0KVmkgc2FvIFNhd2FjbyBjaGkgeGluIG1vdCBoYSBkZSBsYW0gZHUgYW4gbmh1bmcgQ2h1IHRp Y2ggVUJORCBxdWFuIDkgbHVjIGJheSBnaW8gbGFpICJ1dSBhaSIgY2hvIGRlbiBob24gYmEgaGVj LXRhIGRhdD8NCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvQ2FuaC1zYXQt bWEtdHV5LWRpLWJ1b24taGVyb2luLzEwOTQyODkzLzIxOC8gMjAvMS8yMDA2LCAwOTo1MyBHTVQr NyANCg0KQU5UVDogQ2FuaCBzYXQgbWEgdHV5IGRpIGJ1b24gaGVyb2luIA0KDQpodHRwOi8vdnR2 LnZuL0FydGljbGUvR2V0Lzg0NDY4ICANCg0KQU5UVDogQ29uZyBhbiBwaHUgdHJhY2ggZGlhIGJh biBuaGFuIGhvaSBsbyBjdWEgY29uIGJ1b24gbWEgdHV5ICh0YWkgSGEgTm9pKSANCg0KaHR0cDov L3BoYXBsdWF0dHAudm4vMjAxMDA5MTQxMTIyMTM4NHAxMDE1YzEwNzQvY28tZ2FpLXRyZS1iaS1n aWV0LWdpYXUteGFjLXRyb25nLXRodW5nLW51b2MtZGEuaHRtIDE1LzA5LzIwMTAgLSAxMjoxNyBB TQ0KDQpBTlRUOiBUaGVtIDEgY28gZ2FpIHRyZSBiaSBnaWV0LCBnaWF1IHhhYyB0cm9uZyB0aHVu ZyBudW9jIGRhICh0YWkgVFAgSENNKSANCg0KaHR0cDovL3d3dy5pbmZvLnZuL2xhd3MvY3JpbWlu YWwvMzM5OTEtY2FuLWItY29uZy1hbi1xdW4tbHktdGgtdHJuZy1idW9uLWx1LXFzaWV1LXhlcSAw OToxMCAyMDEwIDExOjEzIA0KDQpBTlRUOiBDYW4gYm8gY29uZyBhbiwgcXVhbiBseSB0aGkgdHJ1 b25nIGJ1b24gbGF1ICJzaWV1IHhlIiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvUGhhcC1s dWF0LzIwMTAvMDYvM0JBMUNENjUvIDExLzYvMjAxMCwgMDk6MjcgR01UKzcNCg0KQU5UVDogQ2Fu aCBzYXQgY2FtIGRhdSBuaG9tICd4aW4gZGV1JyBuZ3VvaSBkaSBkdW9uZyANCg0KaHR0cDovL3d3 dy50aW4yNDcuY29tL2Nhbmhfc2F0X2RpX2N1b3BfYmlfdHVvY19xdWFuX3RpY2gtNi0yMTIxMzg4 Ny5odG1sIDYvMi8yMDA3IA0KDQpBTlRUOiBDYW5oIHNhdCBkaSBjdW9wICh0YWkgVFAgSENNKSAg DQoNCkNhbmggc2F0IG5heSBkYSBjdW5nIDMgbmd1b2kgYmFuIGxlbiBrZSBob2FjaCBjdW9wIHRh aSBzYW4gY3VhIG1vdCBuZ3VvaSBiYW4gbWEgdHV5IHRvbmcgaG9wLiANCg0KaHR0cDovL3d3dy50 aW4yNDcuY29tL3NlX3R1b2NfcXVhbl90aWNoXzJfY2FuaF9zYXRfcGNjY19kaV9jdW9wX2dpYXQt MS0yMTQyMzA3OS5odG1sIDEyLzA1LzIwMDkgLSAyMzo1NyAtIFZpZXROYW1OZXQudm4NCg0KQU5U VDogQ2FuaCBzYXQgUENDQyBkaSBjdW9wIGdpYXQNCg0KaHR0cDovL2J1enoueXVtZS52bi94ZW0t YnV6ei90cmFuLWxvdC1jdW9wLWN1YS1kYW5nLXR1bmctaG9hbmgtdGFpLWJlbi14ZS1taWVuLWRv bmcuYWN0eWJveS4zNUE1MzNFNS5odG1sDQoNCkFOVFQ6IFRyYW4gbG90LCBjdW9wIGN1YSBkYW5n IHR1bmcgaG9hbmggDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIw MTA0Ny8yMDEwMTExNjAwMjY1My5hc3B4IDE2LzExLzIwMTAgMDoyNg0KDQpDb25nIGFuOiBUaGll dSB1eSBjb25nIGFuIHRoYW0gZ2lhIHRydXkgc2F0IChraG9uZyBraGFjIGdpIGNvbiBkbywgeGEg aG9pIGRlbikgIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL0hhLU5v aS1HaWV0LW5ndW9pLWN1b3Atbmdhbi1oYW5nLTk0NDE0Ni8gMTM6NTAsIDI0LzEwLzIwMTAgKEdN VCs3KQ0KDQpBTlRUOiBHaWV0IG5ndW9pLCBjdW9wIG5nYW4gaGFuZyBuZ2F5IHRhaSBIYSBOb2kg DQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9CdW5nLXBoYXQtbmFuLXRyb20tY2FwLXBodS10 dW5nLW8tdG8vMTEwNDYxMjYvMTU3LyAyMy8yLyAyMDA4LCAxMTozMyBHTVQrNw0KDQpBTlRUOiBC dW5nIHBoYXQgbmFuIHRyb20gY2FwIHBodSB0dW5nIG8gdG8NCg0KaHR0cDovL3ZuZXhwcmVzcy5u ZXQvVmlldG5hbS9YYS1ob2kvMjAwOC8wMi8zQjlGRjNDNi8gMTgvMi8yMDA4LCAwOToxOCBHTVQr Nw0KDQpBTlRUOiBUcm9tIGNhcCBob2FuaCBoYW5oIHRhaSBjYWMgdHV5ZW4geGUgYnV5dA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDA5NDEvMjAwOTEwMDcwMDM1 NTUuYXNweCBEYW0gSHV5IC0gRGluaCBNdW9pIDA3LzEwLzIwMDkgMDozNSANCg0KQU5UVDogSGFu ZyB0cm9tIGNhcCBkYXkgcmF5ISAtIE5hbiAiYmUga2luaCwgbW9jIGRlbiIgLSBuaHVuZyBraHUg Y2hvIGhhbmcgdHJvbSBjYXAgZHVvYyBtdWEgYmFuIG1vdCBjYWNoIGhldCBzdWMgZGUgZGFuZy4N Cg0KaHR0cDovL2hvbGFuaHVvbmcubXVsdGlwbHkuY29tL2pvdXJuYWwvaXRlbS8xMDE3IGZvciBl dmVyeW9uZSAxNi81LzEwIDEyOjU4IEFNIA0KDQpPbmcgTGUgSG9uZyBBbmg6ICJDb25nIGFuIGNo aSBiaWV0IGNvbiBkYW5nIGNvbiBtaW5oISIgDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRy aS1YYS1ob2kvMTM4NTQwL0JvLXRydW9uZy1OZ3V5ZW4tU2luaC1IdW5nLWNhbi1naWFpLXRyaW5o LXJvLXRydW9jLWtoaS1yb2ktQm8tVGFpLWNoaW5oLmh0bWwgMTgvMDUvMjAwNiwgMDU6NDkgKEdN VCs3KSANCg0KRGFpIGJpZXUgUXVvYyBob2kgTmd1eWVuIE1pbmggVGh1eWV0IGRlIG5naGk6ICJU aHUgdHVvbmcgdmEgQ2hpbmggcGh1IG5lbiB4aW4gbG9pIHRvYW4gZGFuIiANCg0KQmVuIGhhbmgg bGFuZyBRdW9jIGhvaSwgYmFvIFR1b2kgVHJlIGRhIHRyYW8gZG9pIHZvaSBEYWkgYmlldSBOZ3V5 ZW4gTWluaCBUaHV5ZXQgdmUgbG9pIGRlIG5naGkgY3VhIG9uZy4gDQoNCiogVHVvaSBUcmU6IFZp IHNhbyBvbmcgZHVhIHJhIGRlIG5naGkgIlRodSB0dW9uZyB2YSBDaGluaCBwaHUgbmVuIHhpbiBs b2kgdG9hbiBkYW4iPw0KDQoqIERhaSBiaWV1IE5ndXllbiBNaW5oIFRodXlldDogVG9pIHRoYXkg ZGF5IGxhIHkgY2h1bmcsIG5ndXllbiB2b25nIGN1YSBjdSB0cmkgbWEgdG9pIHRpZXAgDQp4dWMu IEN1IHRyaSBub2kgcmFuZzogYmVuIGNhbmggdXUgZGllbSwgcXVhbiBseSBuaGEgbnVvYyBjb24g cmF0IG5oaWV1IGtodXlldCBkaWVtLCBjYSANCnZlIGtpbmggdGUgLSB4YSBob2kgbGFuIG1hdCBt YXQgY2FuIGJvIChjYW4gYm8gaHUgaG9uZykgdmEgdXkgdGluIGdpYW0gc3V0LiBWYSBuaHUgdGhl IHRoaSANCm5ndW9pIGR1bmcgZGF1IHBoYWkgY2hpdSB0cmFjaCBuaGllbS4gDQoNCi0tLS0tDQpo dHRwOi8vdmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDA2LzA0LzU2NDAyNC8NCg0KT25nIExlIEhv bmcgQW5oIC0gcXVlIG8gS2llbiBHaWFuZywgbmd1eWVuIEJpIHRodSBUaW5oIHV5LCBDaHUgdGlj aCBIRE5EIHRpbmggS2llbiBHaWFuZw0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvTG9hbi1k YXQtZGFpLXRyZW4tZGFvLVBodS1RdW9jLzcwMTAxODU1LzE1Ny8NCg0KUGh1IFF1b2MgLSBLaWVu IEdpYW5nOiBEYXQgcnVuZyBiaSBtdWEgYmFuIHZvIHRvaSB2YSANCg0KaHR0cDovL3d3dy50aWVu cGhvbmcudm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0xMTE5NDAmQ2hhbm5lbElEPTIg MjIvMDIvMjAwOCwgMTc6MDMNCg0KS2llbiBHaWFuZzogQmFvIGNoaWVtIGRhdCBydW5nIG8gS2ll biBHaWFuZywgcXVhbiBjaHVjIGN1bmcgeGkgcGhhbiENCg0KaHR0cDovL3d3dy5jb25nYW5iaW5o dGh1YW4uZ292LnZuL2luZGV4LnBocD92aWV3PWFydGljbGUmaWQ9MTQzOCUzQW5nbi1jaG4tbm4t YnVvbi1sdS1oYS10aWVuJm9wdGlvbj1jb21fY29udGVudCZJdGVtaWQ9MTUyICAgMTQvNy8gMjAw OSAwODo1OCANCg0KSGEgVGllbiAtIEtpZW4gR2lhbmc6IEJ1b24gbGF1Li4uIGNvbmcga2hhaSAN Cg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAwNi8wNC81NjQwMjQvDQoNCktpZW4g R2lhbmc6IE9uZyBMZSBIb25nIEFuaCBsZW4gY2h1YyBCbyB0cnVvbmcgQm8gQ29uZyBhbiANCg0K aHR0cDovL3d3dy52aWV0Lm5ldC9waXBlcm1haWwvdm5iaXovMjAwMi1EZWNlbWJlci8wMDAzNTMu aHRtbCBUcmFuIEh1dSBIb25nIFRydW9uZyAwNzoyOTowMCAxMC0xMi0wMg0KDQpLaWVuIEdpYW5n OiBCdW9uIGxhdSBjb25nIGtoYWksIHRoYWNoIHRodWMgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hh LWhvaS9Mb2FuLWRhdC1kYWktdHJlbi1kYW8tUGh1LVF1b2MvNzAxMDE4NTUvMTU3Lw0KDQpLaWVu IEdpYW5nOiBEYXQgcnVuZywgZGF0IGNvbmcsIG11YSBiYW4gdm8gdHUgKG8gaHV5ZW4gUGh1IFF1 b2MpIC0gSGFuZyB0cmlldSBtZXQgdnVvbmcgZGF0IHNhdSB0aGFuaCB0cmEgdmFuIGNodWEgdGhl IHRodSBob2kuIA0KDQpMb2FuIGRhdCBkYWkgZGFuZyB0aWVwIHR1YyB4YXkgcmEgdHJlbiBob24g ZGFvIGR1b2MgcXVpIGhvYWNoIGR1IGxpY2ggbG9uIG5oYXQgbnVvYyBuYXkuDQoNCmh0dHA6Ly93 d3cudGllbnBob25nLnZuL1RpYW55b24vSW5kZXguYXNweD9BcnRpY2xlSUQ9MTIwMDM0JkNoYW5u ZWxJRD0xMiBIb25nIExpbmggMjMvMDQvMjAwOCwgMTU6MzANCg0KS2llbiBHaWFuZzogQ28gaGFu IGNodSB0cnVvbmcgY2hvIHRodWUgcnVuZyBsYW0gZHUgbGljaCB0cmVuIGRhbyBQaHUgUXVvYyAt IHJ1bmcgc2UgdGllcCB0dWMgYmkuLi4gbGFtIHRoaXQgDQoNClJ1bmcgUGh1IFF1b2MgdGhvaSBn aWFuIHF1YSBkYSBiaSB0YW4gcGhhIG5hbmcgbmUgdHUgcGhvbmcgdHJhbyB0cm9uZyB0aWV1LCBk b3QgdGhhbiwgZGFjIGJpZXQgbGEgY29uIGtoYXQgZGF0IGR1IGxpY2ggDQpkYW5nIGxhbSBjaG8g bGEgcGhvaSB0cmVuIGhvbiBkYW8gbG9uIG5oYXQgVmlldCBOYW0gbmF5IHRlbyBkYW4uIA0KDQpI ZSBzaW5oIHRoYWkgdHJlbiBkYW8gZGFuZyBiaSBiaWVuIGRvaSBtYW5oIG1lLiBWb2kgY2h1IHRy dW9uZyBnaWFvIHJ1bmcgbGFtIGR1IGxpY2ggdHJhbiBsYW4gbm9pIHRyZW4sIA0KY2hhYyBjaGFu IHJhbmcgaGFuZyBuZ2FuIGhhIHJ1bmcgc2UgdGllcCB0dWMgYmkuLi4gbGFtIHRoaXQuIA0KDQpo dHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9UaW5oLUtpZW4tR2lhbmctdmFuLXBo b3QtbG8teWV1LWNhdS1jdWEtVGh1LXR1b25nLzcwMDk2NDY5LzIxOC8gMDMvOS8yMDA3LCAxMDo1 NCBHTVQrNyAoVGhlb19UaWVuX1Bob25nKSANCg0KS2llbiBHaWFuZzogSGFuZyBsb2F0IGNhbiBi byBvIHRoaSB4YSBIYSBUaWVuIGJpIHRvIGNhbyB0aGFtIG5odW5nIGRhdCBkYWkgDQoNClRoZW8g ZG9uIHRvIGNhbyAzMCBjYW4gYm8gdGhhbSBuaHVuZyBkYXQgZGFpIG8gVFggSGEgVGllbiBjdWEg b25nIEhvYW5nIFZhbiBIdW5nIA0KKHRodW9uZyBiaW5oIDQvNCkgZ3VpIGJhbyBUaWVuIHBob25n LCBjbyBnaWEgZGluaCB0aGF1IHRvbSBoYW5nIGNodWMgbG8gZGF0LCBuaGlldSBsbyBkYSBzYW5n IGJhbiwgY2hvIHRodWUuDQoNCktldCBxdWEgdGhhbmggdHJhIGNobyB0aGF5IG5oaWV1IG5vaSBk dW5nIG9uZyBIdW5nIHRvIGNhbyBjYW4gYm8gdGhhdSB0b20gZGF0IGRhaSB2ZSBjaG8gY2Egbmhh biBsYSBjbyB0aGF0Lg0KDQpWYW4gcGhvbmcgQ2hpbmggcGh1IG5nYXkgMjIvMTIvMjAwNiBkYSBj byB2YW4gYmFuIHRydXllbiBkYXQgeSBraWVuIGN1YSBQaG8gVGh1IHR1b25nIFRydW9uZyBWaW5o IFRyb25nLCB5ZXUgY2F1IFVCTkQgdGluaCBLaWVuIEdpYW5nIHRoYW5oIHRyYSBsYW0gcm8gbm9p IGR1bmcgb25nIA0KSHVuZyB0byBjYW8gImNhbiBibyBsb2kgZHVuZyBjaHVjIHZ1LCBxdXllbiBo YW4sIGNoaWVtIGRhdCBjdWEgZGFuIiwgeHUgbHkgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0 Lg0KDQpWdSB2aWVjIHBoYWkgYmFvIGNhbyBsZW4gQ2hpbmggcGh1IHRyb25nIHF1aSBJLzIwMDcu IE5heSBkYSBnYW4gaGV0IHF1aSBJSUkgbmh1bmcga2hvbmcgaGlldSBzYW8gY2FjIG5nYW5oIGNo dWMgbmFuZyBvIEtpZW4gR2lhbmcgdmFuIGtob25nIGtldCBsdWFuIGR1b2MgZGUgYmFvIGNhby4N Cg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMTAvM0JBMjExQjEvXCAyLzEw LzIwMTAsIDE2OjU3IEdNVCs3DQoNCktpZW4gR2lhbmc6IDUwLjAwMCB0byByb2kgYW4gdG9hbiBn aWFvIHRob25nIGNvIG5vaSBkdW5nIHNleCANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8v Tm9uZy1ib25nLWJ1b24tbGF1LWJpZW4tZ2lvaS1UYXktTmFtLUt5LUkvNTgvMzgzNjAzNS5lcGkg VklSIA0KDQpIYSBUaWVuIC0gS2llbiBHaWFuZzogQ3VhIGtoYXUgcXVvYyB0ZSBIYSBUaWVuLCBu b2kgS2llbiBHaWFuZyB2YSBDYW1wdWNoaWEgdHUgbGF1IGRhIHRybyB0aGFuaCBtb3QgdHJvbmcg bmh1bmcgZGllbSBidW9uIGxhdSBsb24gbmhhdCB2dW5nIGJpZW4gZ2lvaSBUYXkgTmFtIA0KDQpU cm9uZyBkaXAgZ2lhcCBUZXQgTmd1eWVuIERhbiBDYW5oIERhbiwgY2FjIHRheSBidW9uIGxhdSB0 aHVvbmcgdGFwIHRydW5nICJkYW5oIiBtYW5oIHZhbyBtYXQgaGFuZyB0aHVvYyBsYSwgYm90IG5n b3QsIGR1b25nIHRpbmggbHV5ZW4gVGhhaSBMYW4sIGJhbmggbXV0Li4uDQoNCmh0dHA6Ly9uZXdz LnNvY2JheS5jb20veGFfeGlhX2J1b25fbGF1X25odV9ydW9pXy02MDAyMjQwNzgtMzM2MTk5Njgu aHRtbCAgdmlldG5hbW5ldC52biAtIDExOjEzIDA1LTAxLTIwMDcgDQoNClhhIFhpYSCWIEtpZW4g R2lhbmc6IEJ1b24gbGF1IG5odSBydW9pISBMdWMgbHVvbmcgcXVhbiBseSB0aGkgdHJ1b25nIGRp YSBwaHVvbmcgZHVvbmcgbmh1IGJhdCBsdWMuIA0KDQpCZW4gWHVvbmcgLSBLaWVuIEdpYW5nOiBC dW9uIGxhdSBub25nIGNhIG5nYXkgbGFuIGRlbSAtIENhYyB0YXkgYnVvbiBsYXUgbmdvaSBraHVh dCBtaW5oIHRyb25nIGJvbmcgbWF0IHVvbmcgcnVvdSwgdHJvIGNodXllbiB4b20gdHUsIGNobyBo YW5nIGRlbiB0YXAga2V0IGRlIG5oYW5oIGNob25nIHRhaSB2ZSBtb3QgZGF1IG1vaSB0aWV1IHRo dSBvIEhhIFRpZW4uIA0KDQpodHRwOi8vZ2lhZGluaC5uZXQudm4vMjAwOTExMTgxMjQxMDY5M3Aw YzEwMDUveWV1LXJhdS14YW5oLWN1b25nLWRhbS1iZS10aGlldS1uYW5nLXRyaS10dWUuaHRtIDE4 LzExLzIwMDksIDEyOjQ2KEdNVCs3KQ0KDQpLaWVuIGdpYW5nOiAiWWV1IHJhdSB4YW5oIiBjdW9u ZyBkYW0gYmUgZ2FpIGJhaSBsaWV0LCB0aGlldSBuYW5nIHRyaSB0dWUgDQoNCmh0dHA6Ly93d3cu dmlldG5hbW5ldC52bi90aW5uaGFuaC8yMDEwMTAvS2llbi1HaWFuZy1NZS10aW4tY2hhLXRodWUt bmd1b2ktZ2lldC1jb24tOTQxNDgxLyAxNDowNSwgMTEvMTAvMjAxMCAoR01UKzcpDQoNCktpZW4g R2lhbmc6IE1lIHRpbiwgY2hhIHRodWUgbmd1b2kgZ2lldCBjb24gDQoNCmh0dHA6Ly90dW9pdHJl LnZuL0NoaW5oLXRyaS1YYS1ob2kvNzk5MTMvVUJORC10aW5oLWRhLWNvLW5oaWV1LXNhaS1waGFt LW5naGllbS10cm9uZy5odG1sIE1JTkggUVVBTiAyMy8wNS8yMDA1LCAwODoxNiAoR01UKzcpIA0K DQpLaWVuIEdpYW5nOiBVQk5EIHRpbmggY28gbmhpZXUgc2FpIHBoYW0gbmdoaWVtIHRyb25nIHZl IHF1YW4gbHkgZGF0IGRhaSANCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwMjgwNDU2NDUzL2hh X3RpZW5fa2llbl9naWFuZ19hbl9kYXRfY2FjX3F1YW5fdGhhbV9iaV90b19jYW8uaHRtbCAyMS8x Mi8yMDA3LCAzOjMyIFBNICAoVGhlbyBQaGFwIGx1YXQgVFBIQ00gKSANCg0KSGEgVGllbiAoS2ll biBHaWFuZyk6ICJBbiIgZGF0LCBjYWMgInF1YW4gdGhhbSIgYmkgdG8gY2FvDQoNCk1vdCB0aHVv bmcgYmluaCB0byBjYW8gMzAgY2FuIGJvIHRoYW0gbmh1bmcgbyB0aGkgeGEgSGEgVGllbiAoS2ll biBHaWFuZykgdHJvbmcgbmhpZXUgbmFtIHF1YS4gTmd1b2kgdG8gY2FvIHR1bmcgYmkgcmFuIGRl LCBtb2kgZGF5IGNvbiBiaSBrZSBsYSB0YW4gY29uZyBsYW0gZ2F5IGNoYW4uIE5nYW5oIA0KY2h1 YyBuYW5nIHRpbmggS2llbiBHaWFuZyBjaGkgdmFvIGN1b2Mga2hpIGNvIGNoaSBkYW8gY3VhIFBo byB0aHUgdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcuLi4NCg0KVHUgZ2l1YSBuYW0gMjAwNCwgdGh1 b25nIGJpbmggNC80IEhvYW5nIFZhbiBIdW5nIChuZ3UgYXAgUmFjaCBWdW9jLCB4YSBUaHVhbiBZ ZW4sIA0KdGhpIHhhIEhhIFRpZW4pIGxhbSBkb24gdG8gY2FvIG9uZyBUcmFuIFZhbiBMYW0gLSB0 aGkgdXkgdmllbiwgYmkgdGh1IHBodW9uZyBUbyBDaGF1ICh0aGkgeGEgSGEgVGllbikgLSB0aGFt IG5odW5nIDI5IGxvIGRhdC4gDQoNClF1YSBxdWEgdHJpbmggdHUgZGlldSB0cmEsIG9uZyBIdW5n IHBoYXQgaGllbiB0aGVtIDI5IGNhbiBibyBraGFjIGN1YSBkaWEgcGh1b25nIG5heSBjdW5nICJh biBkYXQiLiBUcm9uZyBkbyBjbyBnaWEgZGluaCBjYW4gYm8gdGhhdSB0b20gaGFuZyBjaHVjIGxv IGRhdCwgbmhpZXUgbG8gZGEgc2FuZyBiYW4sIGNobyB0aHVlLiANCg0KQ2FjIGNhbiBibyBuYXkg bGF5IGRhdCBjb25nIHBoYW4gbG8sIGNoaWEgY2hhYyBob2FjIGNhdCBiYW4gdm9pICJjYW0ga2V0 IiBzZSBob3AgdGh1YyANCmhvYTsgcmEgY2FjIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQgY3VhIGRh biBjaHVhIGxhbSBob3AgdGh1YyBob2EgZGVtIGJhbiBjaG8gbmd1b2kga2hhYy4uLiANCg0KKE9u ZyBIb2FuZyBWYW4gSHVuZyAtIG5ndW9pIGR1bmcgY2FtIHRvIGNhbyB0aWV1IGN1YyBjdWEgY2Fj IHF1YW4gY2h1YyBvIHRoaSB4YSBIYSBUaWVuIC0gYmkgaGFuaCBodW5nIGdheSBjaGFuLCBkYW5n IGRpZXUgdHJpIHRhaSBCZW5oIHZpZW4gSGEgVGllbikNCg0KS2llbiB0cmkgdG8gY2FvIHRpZXUg Y3VjIA0KDQpDYWMgZG9uIHRvIGNhbyBjdWEgb25nIEh1bmcgZ3VpIGRlbiBjYWMgY28gcXVhbiBj aHVjIG5hbmcgbmhpZXUgbGFuIG5odW5nIGtob25nIGR1b2MgZGlldSB0cmEgbGFtIHJvLiBUaGFt IGNoaSBzYXUga2hpIGd1aSBkb24sIG9uZyBIdW5nIGRhIGJpIGNvbmcgYW4gbW9pIGxlbiBsYW0g dmllYyANCm5oaWV1IGxhbiwgdHJvbmcgZG8gY28gbGFuIHZhbyBuZ2F5IDExLTktMjAwNiBDb25n IGFuIHRoaSB4YSBIYSBUaWVuIG1vaSBvbmcgSHVuZyBsZW4gcGh1b25nIFRvIENoYXUgKG5vaSBj byBuaGlldSBjYW4gYm8gYmkgdG8gY2FvIHRoYW0gbmh1bmcgZGF0KSBkZSAidGhhbSB2YW4iIGRl bi4uLiAyMiANCmdpbyBkb25nIGhvLiANCg0KVGhheSB0aW5oIGhpbmggY28gdmUgImtob25nIHNh bmcgc3VhIiwgb25nIEh1bmcgbWFuZyBkb24gdG8gY2FvIHJhIEhhIE5vaSBndWkgbGFuaCBkYW8g RGFuZyB2YSBOaGEgbnVvYy4gQ3VvaSBuYW0gMjAwNiwgVmFuIHBob25nIENoaW5oIHBodSBjbyB2 YW4gYmFuIHRydXllbiBkYXQgeSANCmtpZW4gY3VhIFBobyB0aHUgdHVvbmcgQ2hpbmggcGh1IFRy dW9uZyBWaW5oIFRyb25nIG5ldSBybzogIllldSBjYXUgVUJORCB0aW5oIEtpZW4gDQpHaWFuZyB0 aGFuaCB0cmEgbGFtIHJvIG5vaSBkdW5nIG9uZyBIdW5nIHRvIGNhby4uLiBWdSB2aWVjIHBoYWkg YmFvIGNhbyBsZW4gVGh1IHR1b25nIENoaW5oIHBodSB0cm9uZyBxdWkgMS0yMDA3Ii4gDQoNClRo ZSBuaHVuZyBtYWkgZGVuIG5nYXkgOS0xMS0yMDA3LCBVQk5EIHRpbmggS2llbiBHaWFuZyBtb2kg Y28gYmFvIGNhbyBsZW4gVGh1IHR1b25nIENoaW5oIHBodS4gVGhlbyBkbywgdGluaCB0aHVhIG5o YW4gMjQvMzAgZG9pIHR1b25nIGJpIHRvIGNhbyBjbyBzYWkgcGhhbTsgdGh1IGhvaSANCmhvbiA4 MDAuMDAwbTIgZGF0IHZhIHRyZW4gMSw3IHRpIGRvbmcuIFR1eSBuaGllbiBvbmcgSHVuZyBjaG8g cmFuZyBrZXQgbHVhbiBjdWEgVUJORCANCnRpbmggS2llbiBHaWFuZyB2YW4gcXVhICJ1dSBhaSIg c28gY2FuIGJvIHRoYW0gbmh1bmcsIG5oaWV1IG5vaSBkdW5nIHRvIGNhbyBjdWEgb25nIGNodWEg ZHVvYyBsYW0gcm8uIA0KDQpTdSB2aWVjIGtob25nIGR1bmcgbGFpLCBvbmcgSHVuZyBrZTogIkRl bSA5LTEyLTIwMDcgdG9pIHRpZXAgdHVjIGRlbSBkb24gdG8gY2FvIHRyaW5oIA0KYmF5IHZvaSBv bmcgVHJhbiBMYW0gKG5ndXllbiBwaG8gY2h1IHRpY2ggVUJORCB0aW5oIEtpZW4gR2lhbmcgLSBu YXkgbGEgY2h1IHRpY2ggSG9pIA0KQmFvIHRybyBiZW5oIG5oYW4gbmdoZW8gS2llbiBHaWFuZyks IHRyZW4gZHVvbmcgZGkgeGUgbWF5IHZlIGRlbiB4YSBLaWVuIEJpbmggKEtpZW4gTHVvbmcpIHRo aSBiYXQgbmdvIGJpIGhhaSBuZ3VvaSBsYSBjaGF5IHhlIG1heSBkYXAgbmdhbmcgaG9uZywgbGFt IHRvaSBuZ2EgZ2F5IGNoYW4gDQp0cmFpLCBoaWVuIGRhbmcgcGhhaSBkaWV1IHRyaSIuIE9uZyBI dW5nIGJ1YyB4dWMgY2hvIHJhbmcgZGF5IGxhIG1vdCB2dSAiZG9uIHRodSIgY28gY2h1IHkuIA0K DQpBaSBjaGllbSBkYXQgbmhpZXUgbmhhdD8gDQoNClRoZW8ga2V0IGx1YW4gY3VhIFRoYW5oIHRy YSB0aW5oIEtpZW4gR2lhbmcsIGhhdSBoZXQgY2FuIGJvIGJpIHRvIGNhbyBkZXUgImRpbmgiIHZh byB0aWV1IGN1YyBkYXQgZGFpLCB0cm9uZyBkbyBvbmcgUGhhbSBWYW4gSG9hbmcgLSB0cnVvbmcg QmFuIHR1eWVuIGdpYW8gdGhpIHhhIEhhIFRpZW4gLSBsYSBuZ3VvaSAiY2hpZW0iIG5oaWV1IGRh dCBuaGF0LiBHaWEgZGluaCBvbmcgSG9hbmcgY28gYmF5IGxvIGRhdCwgZGllbiB0aWNoIHRyZW4g DQoyMC41NDBtMi4gTmFtIDIwMDMsIG9uZyBIb2FuZyBkdW9jIGNhcCA5LjE0MCw1bTIgZGF0IHRh aSBraHUgcGhvIDMsIHBodW9uZyBUbyBDaGF1LiANCg0KRGlldSBkYW5nIG5vaSBsYSBraHUgdnVj IG9uZyBIb2FuZyBkdW9jIGNhcCBsYSBraHUgZGF0IGJhaSBib2kgdmVuIGJpZW4sIHR1eWV0IGRv aSANCmtob25nIGR1b2MgY2FwIGNobyBjYSBuaGFuLCBuZ2hpZW0gY2FtIHNhbmcgbmh1b25nLiBT YXUga2hpIGR1b2MgY2FwIGdpYXkgY2h1bmcgDQpuaGFuLCBvbmcgSG9hbmcgZGEgdHUgdmUgcXVp IGhvYWNoLCBwaGFuIDM1IGxvIGNodXllbiBuaHVvbmcgdGh1IGxvaSBiYXQgY2hpbmggaGFuZyAN CnRyYW0gdHJpZXUgZG9uZzsgdHJvbmcgZG8gY28gMjkgaG9wIGRvbmcga2hvbmcgZ2hpIGdpYSBj aHV5ZW4gbmh1b25nLCBzYXUgaG9wIGRvbmcgY29uIGxhaSBnaGkgZ2lhIGNodXllbiBuaHVvbmcg dG9uZyBjb25nIHRyZW4gODkgdHJpZXUgZG9uZy4gDQoNCktob25nIGNoaSBvbmcgSG9hbmcgbWEg dm8gb25nLCBiYSBOZ3V5ZW4gVGhpIENodW9uZywgY3VuZyBuZ2FuZyBuaGllbiBsYXkgZGF0IHBo YW4gDQpsbyBiYW4gbmVuLiBDbyBxdWFuIGNodWMgbmFuZyB4YWMgZGluaCBkaWVuIHRpY2ggZGF0 IGJhIENodW9uZyBjaGllbSBnaXUgbGEgNC4yNjAsMjVtMiB0YWkga2h1IHBobyAzLCBwaHVvbmcg VG8gQ2hhdSBjdW5nIGxhIGtodSBkYXQgbmhhIG51b2MgcXVhbiBseS4gQmEgDQpDaHVvbmcgc2F1 IGtoaSAicGh1IHBoZXAiIGNvIGdpYXkgdG8gZGEgdHV5IHRpZW4gcGhhbiBsbyBjaHV5ZW4gbmh1 b25nIGNobyBuYW0gbmd1b2ksIGJpZXUgeGVuIGNobyB0YW0gbmd1b2kga2hhYy4gTW90IHNvIGhv IHNhdSBraGkgZHVvYyBiYSBDaHVvbmcgImJhbiBwaGF0IiBkYXQgY3VuZyBkYSANCnNhbmcgYmFu IGh1b25nIGxvaSBoYW5nIHRyYW0gdHJpZXUgZG9uZy4gVGhhbmggdHJhIGtpZW4gbmdoaSB0aHUg aG9pIDEyLjkyOSw4bTIgZGF0IGNhcCBiYXQgaG9wIHBoYXAgY2hvIGdpYSBkaW5oIG9uZyBIb2Fu ZywgdGh1IGhvaSA2MjcuMjUwLjAwMCBkb25nIHRpZW4gInBoYW4gbG8gYmFuIG5lbiIgDQp2YSB0 aWVuIGNhYyBobyBkdW9jIG9uZyBIb2FuZyAiYmlldSIgZGF0IHNhdSBkbyBkZW0gYmFuLiANCg0K RG9pIHZvaSBvbmcgTGFtIFZhbiBEdW9uZyAtIHBobyBjaHUgbmhpZW0gVXkgYmFuIGtpZW0gdHJh IFRoaSB1eSBIYSBUaWVuLCB0aGFuaCB0cmEgdGluaCBkZSBuZ2hpIHRodSBob2kgMTQzLjM0Myw4 bTIgZGF0IHZhIHRyZW4gMjIgdHJpZXUgZG9uZyBkbyB0aHUgbG9pIGJhdCBjaGluaCB0dSBkYXQu IA0KQ29uIG9uZyBOZ3V5ZW4gVGhhbmggUGh1bmcgLSBjaGFuaCB0aGFuaCB0cmEgVGhpIHV5IEhh IFRpZW4gLSBiaSBkZSBuZ2hpIHRodSBob2kgNDMuMjAzLDJtMiBkYXQgdmEgYnVvYyBnaWEgZGlu aCBvbmcgbmF5IHBoYWkgbm9wIGxhaSBjaG8gTmhhIG51b2MgNzMuODUzLjA1MCBkb25nIA0KdGll biBiYW4gZGF0IHZhIHRpZW4gbGF5IGJvaSB0aHVvbmcgZGF0IHRyYWkgcXVpIGRpbmguIE9uZyBU cmFuIFZhbiBMYW0gLSBiaSB0aHUgcGh1b25nIFRvIENoYXUgLSBiaSBkZSBuZ2hpIHRodSBob2kg aGFpIGxvIGRhdCByb25nIHRyZW4gNTAuMDAwbTIgdmEgdHJlbiAzMDAgdHJpZXUgZG9uZywgZG9u ZyB0aG9pIGRlIG5naGkgdGh1IGhvaSAyODMgdHJpZXUgZG9uZyB0aWVuIGJhbiBkYXQgY3VhIGJv biBobyBkdW9jIG9uZyBMYW0gbGF5IGRhdCBuaGEgDQpudW9jIGJpZXUgeGVuLi4uIA0KKE5nYW5o IGNodWMgbmFuZyB0aW5oIEtpZW4gR2lhbmcgY2hpIHZhbyBjdW9jIGtoaSBjbyBjaGkgZGFvIGN1 YSBQaG8gdGh1IHR1b25nLCB2YXkgVGluaCB1eSB2YSBVQk5EIHRpbmggS2llbiBHaWFuZyBjdW5n IGNhbiBraWVtIGtpZW0gcm8gdHJhY2ggbmhpZW0gdHJvbmcgdnUgdmllYyBuYXkuKQ0KDQpodHRw Oi8vd3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTE1NDAzMiZD aGFubmVsSUQ9MiAwNC8wMy8yMDA5LCAwODo1MQ0KDQpLaWVuIEdpYW5nOiBUcnVvbmcgcGhvbmcg S2luaCB0ZSBDaHV5ZW4gbmdhbmggKFVCTkQgVGluaCkgdnVhIGJpIGtob2kgdG8gYmF0IGdpYW0s IHZpIGxpZW4gcXVhbiANCmRlbiB2dSBtdWEgYmFuIGR1IGFuLCB0cnVjIGxvaSBtb3QgdHkgZG9u ZyB2YSBjaGllbSBkb2F0IGR1IGFuIDEuMDAwIGhhIGRhdC4gDQoNClVCTkQgdGluaCBLaWVuIEdp YW5nIHBoYWkga2llbSBkaWVtIHRyYWNoIG5oaWVtIQ0KDQpWdSBhbiBsaWVuIHF1YW4gZGVuIG1v dCBjYW4gYm8gdHJvbmcgZGF1IG5hbyBjdWEgVUJORCBUaW5oIHZhIHRyYWNoIG5oaWVtIG1vdCBz byBuZ3VvaSBsaWVuIHF1YW4sIA0KbGFtIHhhdSBkaSBoaW5oIGFuaCBVQk5EIFRpbmggdHJvbmcg bWF0IGNhYyBuaGEgZGF1IHR1LiANCg0KaHR0cDovL3d3dy52ZmVqLnZuL3ZuL2NoaV90aWV0LzE3 MjYwL2RlX2JpZW5fa2llbl9naWFuZ19iaV94YW1faGFpX19fX19uaHVuZ19uaGFuZ19jaHV5ZW5f eHVfbHkgMDgvMDgvMjAwOSwgMTA6Mzk6MzMgQU0gDQoNCktpZW4gR2lhbmc6IERlIGJpZW4gS2ll biBHaWFuZyBiaSB4YW0gaGFpIA0KDQpOZ3VvbiB2b24gdHJ1bmcgdW9uZyB2YSBuZ2FuIHNhY2gg ZGlhIHBodW9uZyBkYXUgdHUgbmhpZXUgY2hvIHZpZWMgeGF5IGR1bmcgdmEgYmFvIHZlIGRlIGJp ZW4uIA0KVHV5IG5oaWVuLCB0aW5oIHRyYW5nIGhhbmcgdHJhbSBobyBkYW4gY2F0IG5oYSwgdHJv bmcgdHJvdCwgY2hhbiBudW9pLi4uIHRyZW4ga2hhcCBjYWMgdHV5ZW4gZGUgDQp0cmVuIGRpYSBi YW4gdGluaCBLaWVuIEdpYW5nIGRpZW4gcmEgbW9pIGx1YyBtb2kgcGh1YyB0YXAgaG9uLCBrZW8g ZGFpIG5oaWV1IG5hbSBuaHVuZyB2aWVjIGdpYWkgcXV5ZXQgdmFuIG5odW5nIG5oYW5nDQoNCmh0 dHA6Ly90aW50dWMueGFsby52bi8wMC0xMzE5MDAxNjQ2L2R1YV94YXlfc2FuX2dvbGYuaHRtbCAo VGhlbyBCYW8gRGF1IFR1ICkgMTIvMy8yMDA4LCAwOjAwIEFNDQoNCktpZW4gR2lhbmc6IER1YSB4 YXkgc2FuIGdvbGYhIA0KDQpQaHUgUXVvYyBkdW9jIHF1eSBob2FjaCB2b2kgNCBzYW4gZ29sZg0K IA0KaHR0cDovL3d3dy50aGVzYWlnb250aW1lcy52bi9Ib21lL3Rob2lzdS9zdWtpZW4vMjM3NS8g MjYvMS8yMDA4LCAxMDozMSAoR01UKzcpDQoNCktpZW4gR2lhbmc6IFBoYXQgdHJpZW4gbyBhdCBz YW4gZ29sZiAtIGxvaSBoYXkgaGFpPyANCg0KWSBraWVuIGJhbiBkb2M6DQoNCkxldmFuc29uOg0K DQpOZ3VvaSBkYW4gUGh1IFF1b2MgcGhhaSBuaHVvbmcgMjAuMDAwbTMgbnVvYy9uZ2F5IGNobyA0 IHNhbiBnb2xmPyANCg0KTGEgbW90IG5ndW9pIGRhbiBzb25nIHRyZW4gZGFvIFBodSBRdW9jLCBr aGkgZG9jIHRoYXkgUGh1IFF1b2MgcXV5IGhvYWNoIHhheSBkdW5nIDQgc2FuIGdvbGYgDQpsYW0g dG9pIGtob25nIGtob2kgZ2lhdCBtaW5oOyBxdXkgZGF0IGRhbmggZGUgeGF5IGR1bmcgc2FuIGdv bGYgbGEgcXVhIG5oaWV1IHNvIHZvaSBkaWVuIHRpY2ggZGFvIFBodSBRdW9jICg1NzNrbbIpLg0K DQpWYW4gZGUgdGh1IDIsIG1vaSBzYW4gZ29sZiAxOCBsbywgbW9pIG5nYXkgY2FuIDUuMDAwbTMg bnVvYyBkZSB0dW9pLCBuaHUgdmF5IG5ldSBQaHUgUXVvYyANCnhheSBkdW5nIDQgc2FuIGdvbGYg dGhpIG1vaSBuZ2F5IHBoYWkgY2FuIDIwLjAwMG0zIG51b2MuIFBodSBRdW9jIGRhbmcgdGhpZXUg bnVvYyBuZW4gcGhhaSANCnF1eSBob2FjaCB4YXkgZHVuZyAzIGhvIGNodWEgbnVvYyBkZSBwaHVj IHZ1IGNobyBuZ3VvaSBkYW4gdHJlbiBkYW8uIE1vdCBobyBjbyBzdWMgY2h1YSA0MC4wMDBtMywg DQpoYWkgaG8gY28gc3VjIGNodWEgMjAuMDAwbTMuIENhYyBobyBjaHVhIG51b2MgbmF5IGRldSBk dSBraWVuIGxheSBudW9jIHR1IGNhYyBzdW9pIGxvbiB0cmVuIGRhbywgDQpuaHVuZyBkZW4gbXVh IGhhbiB0aGkgY2FjIGNvbiBzdW9pIG5heSBkZXUgY2FuIG51b2MgdmEgbXVjIG51b2MgbmdhbSBv IFBodSBRdW9jIGhpZW4gbmF5IGRhIHN1dCBnaWFtIG5naGllbSB0cm9uZy4NCg0KQ29uIG5obyBs YSBUQktUU0cgdHVuZyBkYW5nIGJhaSB2ZSB0aW5oIHRyYW5nIHRoaWV1IG51b2MgdHVvaSBjaG8g Y2FjIHZ1b24gdGlldSB0YWkgDQpQaHUgUXVvYyBkbyBoYW4gaGFuIGdheSByYSwga2hvbmcgYmll dCBuaHVuZyBuZ3VvaSBsYW0gcXV5IGhvYWNoIHZhIGxhbmggZGFvIHRpbmggS2llbiBHaWFuZyBj byB0aW5oIGRlbiB2YW4gZGUgbmF5IGtob25nPw0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vbmV3cy9QYWdlcy8yMDEwMjgvMjAxMDA3MDgyMzM3NTYuYXNweCAwOC8wNy8yMDEwIDIzOjM3 IA0KDQpLaWVuIEdpYW5nOiBIaWVwIGRhbSB0cmUgZW0gliBuYW4gbmhhbiBsYSBlbSBLLkMgbW9p IDE0IHR1b2kNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM3 LzIwMTAwOTA2MTYyNzI4LmFzcHggR2lhbmcgU29uICAwNi8wOS8yMDEwIDE2OjI3IA0KDQpLaWVu IEdpYW5nOiBQaHUgUXVvYyBjdW5nIG5nYXAhICAgDQoNCktob25nIHBoYWkgY3UgZG8gdGhpIGxv biBuaHUgSGEgTm9pLCBUUC5IQ00uLi4gbW9pIGNoaXUgY2FuaCBuZ2FwIG51b2MgbXVhLCBob20g DQpuYXkgNi45LCBtb3QgY29uIG11YSBuYW5nIGhhdCBkYSBiaWVuIHRoaSB0cmFuIER1b25nIERv bmcsIGh1eWVuIGRhbyBQaHUgUXVvYyAoS2llbiANCkdpYW5nKSwgbW90IGRvIHRoaSBuaG8gbmFt IHNhdCBiaWVuIHRoYW5oIG1vdC4uLiBiaWVuIG51b2MgbmdvdDsgIG51b2MgbmdhcCBzYXUsIG5n dW9pIA0KZGFuIGR1bmcgY2EgbWF5IGJvbSBkZSBib20gbnVvYyByYSBraG9pIG5oYS4gRGFuIGJv IGN1bmcgcGhhaSB0aW0gbGVuIGNobyBjYW8gZGUgdHJhbmggbmdhcC4gDQoNCmh0dHA6Ly9uZ3Vv aWNhb3R1b2kub3JnLnZuL1N0b3J5LmFzcHg/bGFuZz12biZ6b25lcGFyZW50PTAmem9uZT03JklE PTI1MTIgMjgvMDQvMjAwOS04OjU1IEFNKQ0KDQpLaWVuIEdpYW5nOiBDb25nIGFuIGxhaSBiYXQg Z2l1IG5ndW9pIHRyYWkgcGhhcCBsdWF0DQoNCkJhbyBOZ3VvaSBjYW8gdHVvaSBuaGFuIGR1b2Mg ZG9uIHRodSBraGFuIGNhcCBjdWEgaGFuZyB0cmFtIGhvIGRhbiBodXllbiBBbiBNaW5oLCB0aW5o IEtpZW4gR2lhbmcsIHRvIGNhbyBjb25nIGFuIA0KdGluaCBLaWVuIEdpYW5nIGJhdCBnaXUgdHJh aSBwaGFwIGx1YXQgZG9pIHZvaSBvbmcgVm8gVHJ1bmcgS2llbiAoNzQgdHVvaSksIENoaSBob2kg dHJ1b25nIENoaSBob2kgTkNUIGFwIENhbiBHYW8sIA0KeGEgRG9uZyBIdW5nIEIsIGh1eWVuIEFu IE1pbmggdmEgYmEgTmd1eWVuIFRoaSBTYW5oICg3MCB0dW9pKSwgZ2lhIGRpbmggbGlldCBzaSB0 cnUgdGFpIGFwIENhbiBHYW8sIHRyb25nIGtoaSANCmhvIGRhbmcgdG9pIFVCTkQgdGluaCBLaWVu IEdpYW5nIGRlIHRvIGNhbywga2llbiBuZ2hpIHh1bmcgcXVhbmggdmllYyB0aGFtIG5odW5nIGRh dCBkYWkgeGF5IHJhIHRhaSBodXllbiBuYXkuDQoNClZpZWMgYmF0IGdpdSBoYWkgbmd1b2kgbm9p IHRyZW4ga2hvbmcgaGUgY28gbGVuaCBiYXQgZ2l1IGN1YSBjYXAgY28gdGhhbSBxdXllbiwga2hv bmcgY28gcXV5ZXQgZGluaCB0YW0gZ2lhbSBjdW5nIA0Kbmh1IHF1eWV0IGRpbmgga2hvaSB0byBi aSBjYW4gbmh1IGx1YXQgZGluaA0KDQpUaGVvIGRvbiB0cmluaCBiYXksIG5hbSAyMDAxIHRhcCB0 aGUgbmhhbiBkYW4gcGhhdCBoaWVuIG1vdCBzbyBjYW4gYm8gbG9pIGR1bmcgY2hpZW0gZGF0IHJ1 bmcsIGxhIHRhaSBzYW4gY3VhIHF1b2MgZ2lhIA0KZGUgY2hpYSBuaGF1LiBOaGFuIGRhbiBkYSBj byByYXQgbmhpZXUgZG9uIGd1aSBkZW4gdGluaCwgaHV5ZW4gdG8gY2FvLCBraWVuIG5naGkgbmh1 bmcgdmFuIGtob25nIGR1b2MgdHJhIGxvaS4gDQpOZ3VvYyBsYWksIGNvbmcgYW4gc28gdGFpIHRy aWV1IHRhcCBiYXQgY3UgYWkgZGkgdG8gZ2lhYywga2hpZXUga2llbiBsZW4gY28gcXVhbiBjb25n IGFuLCB5ZXUgY2F1IGRhbiBraSBjYW0ga2V0IA0Ka2hvbmcga2hpZXUga2llbiwgdG8gY2FvIG51 YSwgbGFtIG5ndW9pIGRhbiBoZXQgc3VjIGhvYW5nIG1hbmcuDQoNCi4uLi5DYWMgaGFuaCB2aSBj dWEgY28gcXVhbiBjYW5oIHNhdCBkaWV1IHRyYSBjb25nIGFuIHRpbmggS2llbiBHaWFuZyBkYSBk dSB5ZXUgdG8gY2F1IHRoYW5oIHRvaSBoaW5oIHN1LCBxdXkgZGluaCANCnRhaSBEaWV1IDEyMzog VG9pIGJhdCwgZ2l1IGhvYWMgZ2lhbSBuZ3VvaSB0cmFpIHBoYXAgbHVhdCwgS2hvYW4gMTogIk5n dW9pIG5hbyBiYXQsIGdpdSBob2FjIGdpYW0gbmd1b2kgdHJhaSBwaGFwIGx1YXQsIA0KdGhpIGJp IHBoYXQgY2FuaCBjYW8sIGNhaSB0YW8ga2hvbmcgZ2lhbSBnaXUgZGVuIGhhaSBuYW0gaG9hYyBw aGF0IHR1IHR1IGJhIHRoYW5nIGRlbiBoYWkgbmFtIjsgS2hvYW4gMjogIlBoYW0gdG9pIA0KdGh1 b2MgbW90IHRyb25nIGNhYyB0cnVvbmcgaG9wIHNhdSBkYXksIHRoaSBiaSBwaGF0IHR1IHR1IG1v dCBuYW0gZGVuIG5hbSBuYW06IFRpZXQgYSkgQ28gdG8gY2h1YzsgVGlldCBiKSBMb2kgZHVuZyAN CmNodWMgdnUsIHF1eWVuIGhhbi4uLiIuDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0tpbmgtdGUvMzg5 ODMyL1BodS1RdW9jLWNoby1jYXQtY2FuaC0tLUt5LTIgLUR1LWFuLXhpLWNoby5odG1sIDEzLzA3 LzIwMTAsIDA4OjQ1IChHTVQrNykgDQoNClBodSBRdW9jIC0gS2llbiBHaWFuZzogTmhpZXUgZHUg YW4uLi4gY2hpIHhpIGNobyAtIGR1IGFuIHRoaSBuaGlldSBuaHVuZyBkaSB2YW8gaG9hdCBkb25n IGl0DQoNClBodSBRdW9jIGhpZW4gZGEgdGh1IGh1dCBnYW4gMjMwIGR1IGFuIGRhdSB0dSwgdGFw IHRydW5nIGNodSB5ZXUgdHJvbmcgbGluaCB2dWMgZHUgbGljaC4gDQpUdXkgbmhpZW4sIHRvaSBu YXkgbW9pIGNvIHNhdSBkdSBhbiBkaSB2YW8gaG9hdCBkb25nLi4uIA0KDQpodHRwOi8vdGluMjQ3 Lmlwdm5uLmNvbS9waGFwLWx1YXQvaGFuZy1sYXUtby1hdC1kby1iby1BNEEyMTguaXB2bm4NCg0K S2llbiBHaWFuZzogSGFuZyBsYXUgbyBhdCBkbyBibyANCg0KVGFpIEtpZW4gR2lhbmcsIGhhbmcg bmdheSBoYW5nIGxhdSB0dSBDYW1wdWNoaWEgdmFuIGxpZW4gdHVjIGRvIHNhbmcgbmdhIGN1YSBr aGF1IFhhIFhpYSB2YSBHaWFuZyBUaGFuaC4gDQpHYW4gZGF5IG8ga2h1IHZ1YyBiZW4gWHVvbmcg dmEgRGEgRHVuZywgdGh1b2MgeGEgTXkgRHVjIChUWCBIYSBUaWVuKSwgaG9hdCBkb25nIGJ1b24g bGF1IHRybyBuZW4gc29pIGRvbmcgaG9uLiANClNvbSBjaGlldSB0dW5nIHRvcCB4ZSBnYW4gbWF5 IGNobyBoYW5nIGxhdSB0dSBkYXkgeHVvaSBxdW9jIGxvIDgwIGRvIHZlIFRYIEhhIFRpZW4sIFRQ IFJhY2ggR2lhLiANCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwLTEwNDQxNzgxNC9idW9uX2xh dV9vX2tpZW5fZ2lhbmdfbm9uZ19odW5nX2h1Yy5odG1sIChUaGVvIEJhbyBOb25nIG5naGllcCAp IDIyLzEvMjAxMCwgMTA6NDkgQU0gDQoNCktpZW4gR2lhbmc6IEJ1b24gbGF1IG5vbmcgaHVuZyBo dWMhIA0KDQpodHRwOi8vdGhldGhhb3ZhbmhvYS52bi8xMzJOMjAwODA3MjkwOTQyMjMwOVQxNzMv a2llbi1naWFuZy10YWktcGhhdC1uYW4tYnVvbi1sYXUteGFuZy1kYXUtcXVhLWJpZW4tZ2lvaS5o dG0gMzAvMDcvMjAwOCAwMDo1MyAgICAgDQoNCktpZW4gR2lhbmc6IFRhaSBwaGF0IG5hbiBidW9u IGxhdSB4YW5nIGRhdSBxdWEgYmllbiBnaW9pIA0KDQpodHRwOi8vbmV3cy5waGFudmllbi5jb20v YnVvbi1sYXUteGFuZy1kYXUtdGllcC10dWMtbm9uZy8xYTQ3NDkxZTEvDQoNCktoaSBnaWEgeGFu ZyBkYXUgdHJvbmcgbnVvYyB0YW5nIHRoaSB0YWkgQ2FtcHVjaGlhICBnaWEgbmhpZW4gbGlldSAg Y3VuZyB0YW5nIHRoZW8gdm9pIG11YyB0dSAyMi4wMDAgZGVuIDI1LjAwMCBkb25nL2xpdCB0dXkg Y2h1bmcgbG9haS4gTW9pIGxpdCB4YW5nIGRhdSB2YW4gY2h1eWVuIHRoYW5oIGNvbmcgcXVhIGJp ZW4gZ2lvaSB0aHUgbG9pIGtob2FuZyA1LjAwMCBkb25nLiBWaSB2YXksIGhhbmcgbG9hdCBuZ3Vv aSBkYW4gY3VhIGtoYXUgdGhhbSBnaWEgdmFuIGNodXllbiB4YW5nIGRhdSBxdWEgYmllbiBnaW9p Lg0KDQpodHRwOi8vd3d3LnRoYW5odHJhLmdvdi52bi9Qb3J0bGV0QmxhbmsuYXNweC81MDI5QTM5 ODc0RDY0OTE0OUIyRUJENEMwNjEzMDBFMi9WaWV3L1Bob25nLWNob25nLXRoYW0tbmh1bmcvRjE1 N0NFQURFOTBDNDVCRDk3MjYyNjJBMTNFNzdGMTgvODk3MS50dGNwP3ByaW50PUN0eV9YTktfVGh1 eV9zYW5fS2llbl9HaWFuZ18tU2FpX3BoYW1fbm9pX3RpZXBfc2FpX3BoYW0kMTQ5MzUgMDIvMDcv MjAwNyAwNTo0OTozOCBQTSAgSG9uZyBMaW5oIChUUE8pDQoNCktpZW4gR2lhbmc6IEN0eSBYTksg VGh1eSBzYW4gS2llbiBHaWFuZyBzYWkgcGhhbSBub2kgdGllcCBzYWkgcGhhbQ0KDQpIYW5nIGxv YXQgc2FpIHBoYW0gbmdoaWVtIHRyb25nLCBrZW8gZGFpIGN1YSBDdHkgWE5LIFRodXkgc2FuIEtp ZW4gR2lhbmcsIG1vdCBETiANCk5oYSBudW9jLCBkYSBsYW0gY2hvIEN0eSBuYXkgZGlldSBkdW5n LiBDbyBpdCBuaGF0IDUgY2FuIGJvIGRhIGJpIGtob2kgdG8sIGJhdCB0YW0gZ2lhbS4gVHV5IG5o aWVuIGhhbmcgbG9hdCBzYWkgcGhhbSBraGFjIHZhbiBjaHVhIGR1b2MgbGFtIHJvLiANCg0KTGFu aCBkYW8gdGluaCBLaWVuIEdpYW5nIHRyb25nICJidW9jIGR1b25nIGN1bmciIGRhIGNob24gZ2lh aSBwaGFwIGJhbiBDdHksIGJhbiBjYSANCnRodW9uZyBoaWV1IEtpc2ltZXggY2hvIG1vdCB0dSBu aGFuIG8gQ2EgTWF1IGRlIGdpYWkgdGhvYXQgbm8uDQoNCk1vaSBuZ2F5IGNoaSA1IHRyaWV1IGRv bmcgdGllbi4uLiBuaGF1DQoNCkN0eSBYTksgVGh1eSBzYW4gS2llbiBHaWFuZyB0aGFuaCBsYXAg dHUgbmFtIDE5OTYgdm9pIHRodW9uZyBoaWV1IGdpYW8gZGljaCANCktpc2ltZXggbm9pIHRpZW5n IHRyb25nIHZhIG5nb2FpIG51b2MuIFNhbiBwaGFtIGN1YSBDdHkgZGEgc29tIGNvIG1hdCB0cmVu IGNhYyB0aGkgdHJ1b25nIGxvbiBvIGNoYXUgQXUuIA0KDQpMYW5oIGRhbyB0aW5oIEtpZW4gR2lh bmcgY29pIEtpc2ltZXggbGEgZG9hbmggbmdoaWVwIGNvbiBjdW5nLCBsYSBuaWVtIHR1IGhhbyB0 cm9uZyANCm5nYW5oIGNoZSBiaWVuIHZhIHh1YXQga2hhdSB0aHV5IHNhbiBjdWEgdGluaC4gVHV5 IG5oaWVuIHRob2kgaG9hbmcga2ltIGN1YSBDdHkgbmF5IGNoYW5nIGR1b2MgYmFvIGxhdS4gDQoN ClR1IHRoYW5nIDcvMjAwMyBkZW4gMy8yMDA2IEN0eSBkYSB0aHVhIGxvIGhvbiA0Niw3IHR5IGRv bmc7IGRlbiBjdW9pIHRoYW5nIDMvMjAwNyANCnRoaWV1IG5vIGhvbiAxODUgdHkgZG9uZywgdHJv bmcgZG8gbm8gbmdhbiBoYW5nIDE0NyB0eSwgbm8ga2hhY2ggaGFuZyAzNSw1IHR5LCBubyBuZ2Fu IHNhY2ggMiw3IHR5LiANCg0KKEFuaCBjaHVwOiBPIHZpIHRoZSBkYWMgZGlhIHRhaSBUUC4gUmFj aCBHaWEgbmh1bmcgY3VhIGhhbmcga2hvbmcgbWF0IHRpZW4gdGh1ZSBtYXQgYmFuZyBuYXkgY3Vh IEN0eSBLaXNpbWV4IHZhbiBraW5oIGRvYW5oIHRodWEgbG8uKQ0KDQpUcm9uZyBraGkgQ3R5IGxp ZW4gdGllcCB0aHVhIGxvLCBubyBuYW4gY2hvbmcgY2hhdCwgY29uZyBuaGFuIGtob25nIGNvIGx1 b25nLCB0aGlldSB2aWVjIA0KbGFtIHRoaSBsYW5oIGRhbyBDdHkgbGFpIGNoaSB0aWV1IHZvIHRv aSB2YS4gR2FuIDUwMCB0cmlldSBkb25nIGRhIGJpIGNoaSBzYWkgbmd1eWVuIHRhYzsgY2hpIHZ1 b3QgcXVpIGtoZW4gdGh1b25nIDYxMCB0cmlldSBkb25nLiANCg0KRGFjIGJpZXQgdGllbiBjaGkg dGllcCBraGFjaCBkdW9jIHRoZSBoaWVuIHRyZW4gaG9hIGRvbiB0dSB0aGFuZyA4LzIwMDMgZGVu IDEwLzEwLzIwMDYgDQpsZW4gdG9pIDQuNTgwLjc0NC4wMDAgZG9uZy4gTmh1IHZheSBiaW5oIHF1 YW4gbW9pIG5nYXkgQ3R5IG5heSBjaGkgY2hvIGFuIG5oYXUgdHJlbiA1IHRyaWV1IGRvbmcuIA0K DQpMYW5oIGRhbyBDdHkgY29uIGxheSB2b24gbXVhIG5ndXllbiBsaWV1IGhhaSBzYW4gZGUga2lu aCBkb2FuaC4uLiBkYXQgbyBUUEhDTS4gVmllYyANCmtpbmggZG9hbmggbmF5IGNoYW5nIG5odW5n IGtob25nIG1hbmcgbGFpIGxvaSBuaHVhbiBtYSBjb24gb20gdGhlbSBtb3Qga2hvYW4gbm8gMiw0 IHR5IGRvbmcuIA0KDQpNb3Qgc28gY2EgbmhhbiBjbyBxdXllbiBsdWMgdHJvbmcgQ3R5IEtpc2lt ZXggY29uIGNoaWVtIGR1bmcgdHJlbiA1NDQgdHJpZXUgZG9uZyB2b24gdmF5IGN1YSBuZ2FuIGhh bmcgZGUgZGFvIHZ1b25nIHRvbSB2YSBrZW8gZHVvbmcgZGF5IGhhIHRoZSB2YW8gdHJhbmcgdHJh aSBjYSBuaGFuIGN1YSANCm1pbmguIEhhbmcgbG9hdCBzYWkgcGhhbSBraGFjIHRyb25nIHhheSBk dW5nIGNvIGJhbiwgdHJvbmcgInRoYW5oIGx5IHRhaSBzYW4gbWF5IGNoYSBjYSIuLi4gZ2F5IHRo aWV0IGhhaSBjaG8gQ3R5IGhhbmcgdHkgZG9uZy4gDQoNClNhaSBwaGFtIG5vaSB0aWVwIHNhaSBw aGFtDQoNClNhaSBwaGFtIGtlbyBkYWksIGxpZW4gdHVjIGRlbiAyIGRvaSBHaWFtIGRvYyBDdHkg S2lzaW1leC4gUGhvbmcgQ1NEVCB0b2kgcGhhbSBraW5oIHRlIHZhIGNodWMgdnUgQ0EgdGluaCBL aWVuIEdpYW5nIChQQzE1KSBraG9pIHRvIHZhIGJhdCB0YW0gZ2lhbTogT25nIENoYXUgTWluaCBU YW0sIA0Kbmd1eWVuIEdpYW0gZG9jIEN0eTsgb25nIEh1eW5oIFZhbiBTb24sIEdpYW0gZG9jIEN0 eTsgb25nIEx5IFRodWEgVGhpZW4sIG5ndXllbiBLZSB0b2FuIHRydW9uZy4gDQoNClRhaSBDaGkg bmhhbmggY3VhIEtpc2ltZXggZG9uZyBvIFRYIEhhIFRpZW4gY28gcXVhbiBkaWV1IHRyYSBjdW5n IGRhIGJhdCB0YW0gZ2lhbSANCkdpYW0gZG9jLCBQaG8gZ2lhbSBkb2MgdmEgS2UgdG9hbiBnb206 IEhvbmcgS2ltIFRodXksIExlIFF1YW5nIE5naGllbSB2YSBQaGFtIFZhbiBNYW5oIHZlIHRvaSAi dGhhbSBvIHZhIGNvIHkgbGFtIHRyYWkiLiANCg0KQ28gcXVhbiBjaHVjIG5hbmcgY3VuZyBkYW5n IGRpZXUgdHJhIGxhbSBybyBzYWkgcGhhbSBjdWEgb25nIFBodW5nIFRoYW5oIEtoaWVtLCBuZ3V5 ZW4gR2lhbSBkb2Mga2hvIHZhbjsgYmEgTGFtIFRoYW5oIEhhLCBHaWFtIGRvYyB4aSBuZ2hpZXAg Y2hlIGJpZW4gdGh1eSBzYW4geHVhdCANCmtoYXUgQW4gSG9hOyBNYWkgVGh1b25nIFh1YW4sIG5n dXllbiBQaG8gZ2lhbSBkb2MgeGkgbmdoaWVwIGtpbmggZG9hbmggdmEgbnVvaSB0cm9uZyB0aHV5 IHNhbiBIYSBUaWVuOyBMZSBWYW4gVnVuZywgRHVvbmcgS2hhYyBCZW4sIEh1eW5oIENoYXUgU2Fu ZzsgVm8gTWluaCANClRyaWV0LCBOZ3V5ZW4gS2hvYSBIbyBBbmguLi4gbGEgbmh1bmcgY2FuIGJv IGNodSBjaG90IGN1YSBDdHkgY28gdmFpIHRybyAidGllcCB0YXkiIGNobyBjYWMgY2FuIGJvIGto YWMgbGFtIHRyYWkgZ2F5IHRoaWV0IGhhaSBoYW5nIHR5IGRvbmcuIA0KDQpEdSBsdWFuIGN1bmcg ZGFuZyBkYXQgdmFuIGRlIHZlIHBoaSB2dSBsYXkgdm9uIFNYS0QgY3VhIEN0eSBkZSBtdWEgZGF0 IHRyZW4gZHVvbmcgTmd1eWVuIFRydW5nIFRydWMgdm9pIGRhbmggbmdoaWEgY2hpYSBjaG8gQ0Ig lkNOViBraG9uZyBjbyBuaGEgbyBuaHVuZyBzYXUgZG8gDQpjaHUgeWV1IGNoaWEgY2hhYyBjaG8g bW90IG5ob20gbmd1b2kgY28gcXV5ZW4gbHVjLCBkYWMgYmlldCBuaGlldSBjYW4gYm8gZGEgY28g bmhhIGNhbyBjdWEgcm9uZyB2YW4gY28gcGhhbi4gDQoNClZhIG5oaWV1IGtodWF0IHRhdCBraGFj IHZhbiBjaHVhIGR1b2MgbGFtIHNhbmcgdG8gbyBDdHkgS2lzaW1leC4gTW90IGNhbiBibyBkYSBi aSBraG9pIA0KdG8gbm9pOiAiQ29uIG5oaWV1ICJuZ3VvaSIgc2FpIHBoYW0gaG9uIHRyb25nIEtp c2ltZXggdmFuIG5ob24gbmhvIi4NCg0KTGFuaCBkYW8gdGluaCBLaWVuIEdpYW5nIHRyb25nICJi dW9jIGR1b25nIGN1bmciIGRhIHBoYWkgYmFuIEN0eSBjaG8gbW90IHR1IG5oYW4gdm9pIA0KbW90 IGNhbSBrZXQgcGhhaSAiZ2FuaCIgdG9hbiBibyBubyB2YSAibnVvaSIgZHVvYyB0b2FuIGJvIENC IJYgQ05WIGN1YSBLaXNpbWV4LiBTdSBzdXAgZG8gY3VhIEN0eSBuYXkgY28gdmFpIHRybyANCnRy YWNoIG5oaWVtIGN1YSBsYW5oIGRhbyB0aW5oIEtpZW4gR2lhbmcuIA0KDQpodHRwOi8vdHVvaXRy ZS52bi9DaGluaC10cmktWGEtaG9pLzc5OTEzL1VCTkQtdGluaC1kYS1jby1uaGlldS1zYWktcGhh bS1uZ2hpZW0tdHJvbmcuaHRtbCBNSU5IIFFVQU4gMjMvMDUvMjAwNSwgMDg6MTYgKEdNVCs3KSAN Cg0KS2llbiBHaWFuZzogVUJORCBodXllbiBQaHUgUXVvYyB0dSB5IGt5IGR1eWV0IGRvbiB2YSBn aWFvIGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5ZW4gc3UgZHVuZyBkYXQgdHJlbiBkaWVuIHRpY2gg cnVuZyBwaG9uZyBobyBraG9hbmcgdHJlbiAzMTguMDAwbTIgdmEgcGhhbiByYSAzOCBsbyBkYXQg Y2FwIGNobyBjYW4gYm8gdmEgZ2lhIGRpbmggY2FuIGJvIHRpbmgsIGh1eWVuIG8ga2h1IHZ1YyBk dSBraWVuIHF1aSBob2FjaCBkdSBsaWNoIHRhaSBhcCBWdW5nIEJhdSB0aHVvYyB4YSBDdWEgQ2Fu LiANCg0KS2UgZGVuIGxhIHZpZWMgZGUgY2hvIG9uZyBUcmFuIFZhbiBVbmcgLSBuZ3V5ZW4gaHV5 ZW4gZG9pIHRydW9uZyBIdXllbiBkb2kgUGh1IFF1b2MgLSBwaGFuIGxvIDM2LjYxMm0yIGRhdCBx dW9jIHBob25nIHRvYSBsYWMgdGFpIGtodSB2dWMgQmEgS2VvLCB0aGkgdHJhbiBEdW9uZyBEb25n LCByb2kgc2F1IGRvIGNhcCBjaGlhIGNoYWMgY2hvIGNhYyBxdWFuIGNodWMuIA0KDQpUdW9uZyB0 dSwgY2h1eWVuIGNoaWEgY2hhYyAyMi41MDRtMiBraHUgZGF0IHF1b2MgcGhvbmcgY3VuZyBuYW0g byBCYSBLZW8gZHVvYyBwaG8gY2h1IHRpY2ggdGh1b25nIHRydWMgVUJORCB0aW5oIEtpZW4gR2lh bmcgUGhhbSBMb25nIGt5IGR1eWV0IGRvbmcgeSwgdGFvIGRpZXUga2llbiBjaG8gb25nIERvIFRv IC0gbmd1eWVuIGNodSB0aWNoIFVCTkQgaHV5ZW4gUGh1IFF1b2MgLSBjYXAgZ2lheSBkbyB4YXkg ZHVuZyBuaGEgbyB2YSBjYWMgY29uZyB0cmluaCBkYW4gZHVuZy4gDQoNCmh0dHA6Ly9jaG9uZ3Ro YW1uaHVuZy50aGFuaHRyYS5jb20udm4vVXNlclBhZ2VzL05ld3MvZGV0YWlsL3RhYmlkLzczL25l d3NpZC82NDMvc2VvL1lldS1jYXUta2llbS10cmEtbGFuaC1kYW8tVkNCLWNoaS1uaGFuaC1LaWVu LUdpYW5nL0RlZmF1bHQuYXNweA0KDQpLaWVuIEdpYW5nOiBDYW4gYm8gVkNCIEtpZW4gR2lhbmcg dGhhbSBvIDEsNzIgdHkgZG9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5o LzIwMTAwOC9LaWVuLUdpYW5nLVRodS1raG8tY29uZy10eS1EdW9jLXRoYW0tby0xMi10eS1kb25n LTkyNzk4NC8gQnVpIEN1b25nIDA5OjI5LCAxMC8wOC8yMDEwIChHTVQrNykNCg0KS2llbiBHaWFu ZzogVGh1IGtobyBjb25nIHR5IER1b2MgdGhhbSBvIDEsMiB0eSBkb25nIA0KDQpodHRwOi8vdHVv aXRyZS52bi9DaGluaC10cmktWGEtaG9pLzc5OTEzL1VCTkQtdGluaC1kYS1jby1uaGlldS1zYWkt cGhhbS1uZ2hpZW0tdHJvbmcuaHRtbCBNSU5IIFFVQU4gMjMvMDUvMjAwNSwgMDg6MTYgKEdNVCs3 KSANCg0KS2llbiBHaWFuZzogQmFuIGNhbiBzdSBEYW5nIFVCTkQgdGluaCBLaWVuIEdpYW5nIGxh IGRhIGJ1b25nIGxvbmcgdmFpIHRybyBjaGkgZGFvIHF1YW4gbHkgZGF0IGRhaSBvIGRhbyBQaHUg UXVvYywgDQpkZSBjYWMgcXVhbiBjaHVjIG8gaHV5ZW4gZGFvIG5heSB0dSB0dW5nIHR1IHRhYyB0 cm9uZyB2aWVjIGt5IGR1eWV0LCBnaWFvIGNhcCwgYmFvIGNoaWVtIGRhdCBkYWkuIA0KDQpodHRw Oi8vaG9tZS52bm4udm4vaHV5ZW5faG9uX2RhdF9fa2llbl9naWFuZ19fX2Nhbl9ib19jaGlhX2No YWNfZGF0X2NvbmctMTY3NzcyMTYtNjI1Mjc4NTAwLTAgLSAgdHVvaXRyZS5jb20udm4gMjUtMDEt MjAxMCAwNzo1OSBEVUMgVklOSCAtIFRBTiBUSEFJIA0KDQpLaWVuIEdpYW5nOiBIdXllbiBIb24g RGF0IC0gQ2FuIGJvIGNoaWEgY2hhYyBkYXQgY29uZyANCg0KQ2FwIGRhdCBzYWkgZG9pIHR1b25n IA0KDQpUYWkgeGEgQmluaCBHaWFuZywgY2FuaCBkb25nIGFwIFRhbSBOZ2FuIG5hbSB0cm9uZyBk aWVuIHRpY2ggMzAwaGEgdHJ1b2MgZGF5IGdpYW8gY2hvIENvbmcgdHkgVGhpZW4gU2luaC4gVmkg ZG9uIHZpIG5heSBraG9uZyBraGFpIHRoYWMgbmVuIFVCTkQgdGluaCB0aHUgaG9pIGRlIGNhcCAN CmNobyBuaHVuZyBkb2kgdHVvbmcgZGllbiBjaGluaCBzYWNoLCBraG9uZyBkYXQgY2FuaCB0YWMg bmh1bmcgc2F1IGRvIGNodWEgcm8gdGFpIHNhbyBsYWkgY28gbmhpZXUgdGh1YSBkbyBnaWEgZGlu aCBjYW4gYm8gZHVuZyB0ZW4NCg0KQ2FuIGJvICJjaGllbSIgZGF0IGNvbmcgDQoNClRhaSB0aGkg dHJhbiBIb24gRGF0LCBjbyBraHUgZGF0IGdpYXAgcXVvYyBsbyA4MCBnaWEgdGhpIHRydW9uZyBo aWVuIGxlbiB0b2kgaGFuZyB0cmFtIGx1b25nIHZhbmcuIEtodSBkYXQgbmF5IHZvbiBjdWEgQ29u ZyB0eSBDaGUgYmllbiBub25nIGxhbSBzYW4gS2llbiBHaWFuZywgVUJORCBodXllbiBIb24gRGF0 IGNvIHZhbiBiYW4geGluIHRpbmggZ2lhbyBjaG8gZGlhIHBodW9uZyBkZSBwaHVjIHZ1IG11YyBk aWNoIGNvbmcgY29uZy4gDQpUaGUgbmh1bmcgdHUgbmFtIDIwMDQsIGxvIGRhdCBsb3QgdmFvIHRh eSBnaWEgZGluaCBvbmcgRG8gRHVjIFRyb25nIChsdWMgYXkgbGEgYmkgdGh1IGh1eWVuIHV5KSBk byBvbmcgRG8gSG9haSBUaGFuaCAoY2FuIGJvIGJhbiB0byBjaHVjIGh1eWVuIHV5LCBjb24gb25n IFRyb25nKSBkdW5nIHRlbi4gDQpUcnVuZyB0YW0gWSB0ZSBodXllbiBIb24gRGF0IGR1b2MgcXV5 IGhvYWNoIHR1IG5hbSAxOTg0IHRyZW4gZGllbiB0aWNoIDk0LjUwMG0yICwgDQpuaHVuZyBzYXUg ZG8gaG9uIDY2LjAwMG0gMiBkYXQgcGhpYSBzYXUgdHJ1bmcgdGFtIGJpIGNhdCB2YSBnaWFvIGNo byBnYW4gMzAgaG8gbGEgY2FuIGJvIGNvbmcgbmhhbiB2aWVuIG5nYW5oIHkgdGUuDQoNClRyb25n IGtoaSBkbywga2h1IGRhdCBtYXQgdGllbiBnaWFwIHF1b2MgbG8gODAsIG5hbSBrZSBiZW4gVHJ1 bmcgdGFtIFkgdGUgaHV5ZW4gSG9uIERhdCBkdW9jIHBoYW4gdGhhbmggdGFtIGxvIHZhIGNoaWEg Y2hvIG5oaWV1IGNhbiBibyBodXllbiwgdHJvbmcgZG8gY28gYmkgdGh1IGh1eWVuIHV5IA0KTmd1 eWVuIFRoYW5oIEhvYSwgbmd1eWVuIGJpIHRodSBodXllbiB1eSBOZ3V5ZW4gVHJ1bmcgVHJpZXUs IG5ndXllbiB0aHVvbmcgdnUgaHV5ZW4gdXkgTmd1eWVuIFZhbiBIYW5oLCBuZ3V5ZW4gcGhvIGJp IHRodSBodXllbiB1eSBQaGFtIER1YyBUaHVhbiwgdHJ1b25nIHBob25nIHkgdGUgVnUgWHVhbiBN dWkuLi4gDQoNCkRlbiBuYW0gMTk5OCwga2hpIFVCTkQgdGluaCBLaWVuIEdpYW5nIHJhIHF1eWV0 IGRpbmggZ2lhbyBkYXQgZGUgeGF5IGJlbmggdmllbiB0aGkgZGllbiB0aWNoIHRodWMgdGUgY2hp IGNvbiBsYWkgMTguMDAwbSAyIC4gDQoNClJpZW5nIGtodSBkYXQgbmdheSB0cnVvYyBtYXQgdHJ1 bmcgdGFtIGh1eWVuIEhvbiBEYXQgY28gbWF0IHRpZW4gZ2lhcCBxdW9jIGxvIDY0LCBkdSB2aSBw aGFtIGhhbmggbGFuZyBsbyBnaW9pIG5odW5nIGN1bmcgZHVvYyBsYXAgc28gZG8gcGhhbiBsbyBj YXAgY2hvIGJheSBobyBjYW4gYm8uIA0KDQpOZ29haSBjYWMgdmkgcGhhbSB0cmVuLCBodXllbiBI b24gRGF0IHZhIG1vdCBzbyB4YSBjb24gY2FwIGRhdCBjaG8gbmhpZXUgZ2lhIGRpbmggY2FuIGJv IGtoYWMuIENoYW5nIGhhbiwgeGEgVGhvIFNvbiBjYXAgaG9uIDcuNjAwbSAyIGNobyB0YW0gZ2lh IGRpbmggY2FuIGJvIGFwIEhvbiANClF1ZW87IGh1eWVuIGhvcCB0aHVjIGhvYSBxdXllbiBzdSBk dW5nIGRhdCB2dW90IGRpZW4gdGljaCBnYW4gNC4wMDBtIDIgdGFpIHRoaSB0cmFuIEhvbiBEYXQg Y2hvIGhhaSBvbmcgTmd1eWVuIFRoYW5oIFNhbmcgKHBobyBwaG9uZyB0YWkgY2hpbmggLSBrZSBo b2FjaCkuLi4NCg0KaHR0cDovL2RpYW9jLnR1b2l0cmUudm4vSW5kZXguYXNweD9BcnRpY2xlSUQ9 MjcwNzYxJkNoYW5uZWxJRD00NTAgMjcvMDcvMjAwOCwgMTY6MjggVFRYVk4NCktpZW4gR2lhbmc6 IER1IGFuIGxhbiBiaWVuIEtpZW4gR2lhbmcga2hvIHRodSBob2kgdm9uDQoNCktpZW4gR2lhbmcg aGllbiBjbyBkZW4gNSBkdSBhbiBsYW4gYmllbiBnb20gMyBkdSBhbiB0YWkgdGhhbmggcGhvIFJh Y2ggR2lhLCAxIG8gaHV5ZW4gS2llbiBMdW9uZyB2YSAxIG8gdGhpIHhhIEhhIFRpZW4uIFRoZW8g dW9jIHRpbmggc28gYm8sIHNvIHZvbiBibyByYSBiYW4gZGF1IGNobyBjYWMgZHUgYW4gbmF5IGRl biBnYW4gMS4wMDAgdGkgZG9uZyBuaHVuZyBraGEgbmFuZyB0aHUgaG9pIHZvbiBsYSBraG9uZyBr aGEgdGhpLg0KQ2h1IHlldSBsYSBkbyBrZSBob2FjaCBraG9uZyBzYXQgdm9pIHRodWMgdGUsIGxh aSB0aG9uZyBxdWEgcXVhIG5oaWV1IHRydW5nIGdpYW4gZGF5IGdpYSBsZW4gY2FvLg0KRHUgYW4g bGFuIGJpZW4gcXVpIG1vIDQ4MCBoZWMgdGEgdGFpIHRoYW5oIHBobyBSYWNoIEdpYSBkZW4gbmF5 IGRhIGhvbiAxMCBuYW0gdHJvaSBxdWEsIHRob2kgZ2lhbiBrZW8gZGFpIGdhcCAyIGxhbiBzbyB2 b2kgZHUga2llbiBiYW4gZGF1LCBraG9pIGx1b25nIGNvbmcgdmllYyBjaGkgbW9pIGhvYW4gdGhh bmggY2h1YSBkdW9jIG1vdCBudWE7IG5odW5nIGR1IGFuIGtoYWMgY3VuZyBkYW5nIGxhbSB2YW8g Y2FuaCB0dW9uZyB0dS4NCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvaW5fZGVwdGgv S2llbi1HaWFuZy1zZWEtZW5jcm9hY2hpbmctcHJvamVjdC1jb250aW51ZXMtdG8tdGFrZS1oZWF2 eS10b2xsLW9uLWxvY2FsLXBlb3BsZS1UUXVhbmctMTIxOTIwMDgwOTU2MzEuaHRtbD9zZWFyY2h0 ZXJtPU5vbmUgVGhhbmggUXVhbmcsIHBob25nIHZpZW4gUkZBIDIwMDgtMTItMTkNCg0KS2llbiBH aWFuZzogIkR1IGFuIGxhbiBiaWVuIEtpZW4gR2lhbmciLCByYWMgcm9pIGRhdCBkYWkgbyBtaWVu IFRheQ0KDQpOZ3VvaSBkYW4gbyBSYWNoIEdpYSBkYSBjbyBwaGFuIHVuZyBtYW5oIG1lIHRydW9j IGNhYyBoYW5oIGRvbmcgY3VhIGNoaW5oIHF1eWVuIA0KeHVuZyBxdWFuaCAiRHUgYW4gbGFuIGJp ZW4gS2llbiBHaWFuZyIsIG1hIG5oaWV1IG5nb2kgY2FvIGdpYWMgbGEgbGFuIGRhdCBjdWEgZGFu IGNodSBraG9uZyBwaGFpIGxhbiBiaWVuLg0KDQpUcm9uZyBtYXkgbmdheSBuYXksIHRyb25nIGx1 YyBjYWMgcmFjIHJvaSB0YWkgcGh1b25nIEFuIEhvYSwgdGhhbmggcGhvIFJhY2ggR2lhIGNodWEg ZHVvYyBnaWFpIHF1eWV0IHRob2EgZGFuZywgZ2lvaSBjYW0gcXV5ZW4gZ2lhIHRhbmcgaGFuaCBk b25nIHRhaSB0aGVtIG5oaWV1IHBodW9uZyANCmtoYWMgbnVhLCBraGllbiBkYW4gb2FuIGxhbSBj YW5oIG1hIGhvIHRoYW4gbGEgInZvIGN1bmcga2hvbiBraG8iLiANCg0KVGhhbmggUXVhbmcgdGlt IGhpZXUgdGluaCBoaW5oIG5heSwgdmEgZHVvYyBvbmcgTGUgTXkgRHVjLCBuYW4gbmhhbiB2YSBs YSBkYWkgZGllbiBjaG8gc28gZGFuIG9hbiBheSwgY2hvIGJpZXQuDQoNClRhbiBjb25nIGJhbmcg cm9pIGRpZW4NCg0KTy4gTGUgTXkgRHVjOiBOb2kgZHVuZyByYSBraG9uIGtobyB0aGkgaG8ga2hv biBraG8gMTAgbmFtIHJvaSBjaHUga2hvbmcgcGhhaSBtb2kgZGF5LiBMeSBkbyBsYSB2aSBjYXkg Y29pLCBob2EgbWF1IG5nYXAgbnVvYyBjaGV0LCBraG9uZyB0aGUgdHJvbmcgcmF1IGdpIGR1b2M7 IG5oYXQgbGEgDQpoaWVuIG5heSBjaGluaCBxdXllbiB0aGFuaCBwaG8gUmFjaCBHaWEgdmEgQmFu IFF1YW4gbHkgRHUgYW4gIkxhbiBiaWVuIEtpZW4gR2lhbmciIGR1YSBsdWMgbHVvbmcgY29uZyBh biB4dW9uZyBjdW9uZyBjaGUgZGF0IGRhaS4NCkNodW5nIHRvaSBjaG8gZGF5IGxhIGRpZXUga2hv bmcgaG9wIGx5IHZpIGRhdCBjdWEgY2h1bmcgdG9pIGNodWEgY28gbGVuaCB0aHUgaG9pIG1hIGFu aCANCnJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIGxhIHNhaS4gSG9uIG51YSBkYXQgY3VhIGNodW5n IHRvaSBkYW5nIHRyb25nIHZvbmcga2hpZXUga2llbiwgY2h1YSBkdW9jIGdpYWkgcXV5ZXQgZHV0 IGRpZW0gbWEgYW5oIGxhaSBkdWEgcXV5ZXQgZGluaCBjdW9uZyBjaGUuDQpIb20gcm9pIGx1YyBs dW9uZyBjb25nIGFuIHh1b25nIGN1b25nIGNoZSwgZHVuZyByb2kgZGllbiB0YW4gY29uZyAzIG5n dW9pIGRhbiBiYSwgdHJvbmcgZG8gY28gbW90IGJhIDc3IHR1b2kgYmkgeGl1LCBwaGFpIGR1YSBk aSBiZW5oIHZpZW4uIERheSBsYSBoYW5oIGRvbmcgZGFuIGFwIHF1YSBkYW5nIHZpIG5ndW9pIGRh biBjaHVuZyB0b2kgY2hpIHlldSBjYXUgY2hpbmggcXV5ZW4gdmEgYmFuIHF1YW4gbHkgZHUgYW4g dGh1YyBoaWVuIGNobyBkdW5nIHBoYXAgbHVhdCB2YSBsdWF0IGRhdCBkYWkuIE5odW5nIGhvIGto b25nIGxhbSB2aWVjIGdpIGhldC4gDQpDaHVuZyB0b2kgY2hpIHlldSBjYXUgbGEgbmV1IGNodW5n IHRvaSBzYWkgdGhpIGhvIGxhcCBiaWVuIGJhbiByYW5nIGRvYW4gY3VvbmcgY2hlIGN1b25nIA0K Y2hlIGNhYyBvbmcgY2FjIGJhIHZpIHBoYW0gY2hvbmcgbGVuaCBnaSBkby4uLiBDdSBsYXAgYmll biBiYW4gZGUgc2F1IG5heSBjaHVuZyB0b2kgY29uIGtoaWV1IGtpZW4uDQpOaHVuZyBobyBkZW0g bHVjIGx1b25nIGNvbmcgYW4gZGVuIGhhbmggZG9uZyBuaHUgdmF5IGxhIGJheS4gVGh1IGhhaSBs YSBkdW5nIHJvaSBkaWVuIHRhbiBjb25nIHBodSBudSA3MC04MCB0dW9pIHRoaSBxdWEgdGFuIG5o YW4uIENodW5nIHRvaSBwaGFuIGRvaSBxdXlldCBsaWV0Lg0KTmh1bmcgdGh1YSBkYXQgbmF5IGNo dW5nIHRvaSBjYW5oIHRhYyB0b2kgdGhlIGhlIHRodSBiYSByb2ksIGN1bmcgdHUgNjAgdG9pIDEw MCBuYW0gcm9pLiBCYXkgZ2lvIGNoaW5oIHF1eWVuIHNvIHRhaSB2YSBiYW4gcXVhbiBseSBkdSBh biBuYXksIGhvIGxpZXUgbWFuZywgbGlldSBsaW5oLiBUcm9uZyBraGkgY2h1bmcgdG9pIGNodWEg bmhhbiB0aWVuIGJvaSB0aHVvbmcgbWEgaG8gbGFpIHRodWMgaGllbiB2aWVjIGN1b25nIGNoZS4g DQoNClJpZW5nIHZpZWMgY2h1bmcgdG9pIGNodWEgbmhhbiB0aWVuIGtob25nIHBoYWkgdmkgdmFu IGRlIGRhdCBoYXkgcmU7IG5ldSBjYWMgYW5oIGxhbSANCmR1bmcgcGhhcCBsdWF0IHRoaSBjaHVu ZyB0b2kgZ2lhIG5hbyBjdW5nIHBoYWkgbmhhbi4gRG8gbGEsIHRodSBuaGF0LCBuaGEgbnVvYyBs YXkgZGF0IGNodW5nIHRvaSBwaGFpIGNvIHF1eWV0IGRpbmggdGh1IGhvaSBkYXQ7IHRodSBoYWks IHRodSBkYXQgdmFvIHRob2kgZGllbSBuYW8gdGhpIHRpbmggZ2lhIA0KY3VhIHRob2kgZGllbSBk by4gSG8gdGh1IGRhdCBuZ2F5IGhvbSBuYXkgbWEgdGluaCBnaWEgMTIgbmFtIHZlIHRydW9jIHRo aSBsYW0gc2FvIGNoaXUgbm9pPw0KDQpDaG9uZyBuZ3VvaSB0aGkgaGFuaCBjb25nIHZ1Pw0KDQpU aGFuaCBRdWFuZzogVGh1YSBhbmgsIHRybyBsYWkgdmFuIGRlIG5hbmcgdGF5IGN1YSBnaW9pIGNh bSBxdXllbiwgbmdoZSBub2kgbGEgZ2lvaSBjYW0gDQpxdXllbiBkaWEgcGh1b25nIHRpZXAgdHVj IGhhbmggZG9uZyB0YW4gcGhhIGNheSB0cmFpLCBob2EgbWF1IGN1YSBjdSBkYW4sIHZhbiBkZSBu YXkgdGllcCBkaWVuIHJhIHNhbz8NCg0KTy4gTGUgTXkgRHVjOiBIaWVuIGhvIHRodWUgbmd1b2kg YmVuIG5nb2FpIHZvIGN1YSBkbyBoZXQgdG9hbiBibyBzbyBjYXkgdHJlbiBkdW9uZyBobyBtdW9u IGxheS4gSG8gY3VhIHNhY2ggc2Ugbmh1bmcgY2F5IGNvaSBtYSBjaHVuZyB0b2kgdHJvbmcgdHUg MzAgZGVuIDYwIG5hbSBuYXkuDQpDaHVuZyB0b2kga2hvbmcgdGhlIGNob25nIGRvIGR1b2MgY2h1 eWVuIGRvLCB2aSBsYW0gbmh1IHZheSB0aGkgaG8gY2hvIGxhIGNob25nIG5ndW9pIHRoaSBoYW5o IGNvbmcgdnUuIENodW5nIHRvaSBub2kgbWF5IG9uZyBjdWEgdGhpIGN1IGN1YSwgbmh1bmcgc2Fp IHBoYXAgbHVhdCBvIGNobyBsYSBhbmggDQpjdWEgY2F5IGhheSBsYW0gZ2kgdGhpIGN1bmcgcGhh aSBsYXAgYmllbiBiYW4uIEhvIGtob25nIGxhcCBiaWVuIGJhbiBnaSBoZXQsIGRvIGxhIGNhaSBz YWkgdGh1IG5oYXQuIA0KVGh1IGhhaSBsYSBraGkgbmd1b2kgZGFuIHJhIHBoYW4gZG9pLCBjaGkg eWV1IGNhdSBsYSBhbmggbGF5IGRhdCB0b2kgcGhhaSBjbyBxdXlldCBkaW5oIHRodSANCmhvaSwg YW5oIGN1YSBjYXkgY3VhIHRvaSBhbmggcGhhaSBsYXAgYmllbiBiYW4gbGEgY3VhIGNheSBnaSBj dWEgdG9pLCB0aGkgaG8gbGFpIGR1bmcgcm9pIA0KZGllbiBraG9uZyBjaGUgbmh1bmcgbmd1b2kg ZGFuIGJhIGRvLiBEbyBsYSBjaHV5ZW4gYmF5Lg0KDQpUaGFuaCBRdWFuZzogQ2h1bmcgdG9pIGN1 bmcgZHVvYyB0aW4gbGEgY28gbmhpZXUgbmd1b2ksIGtlIGNhIHBodSBudSwgYmkgYmF0IGdpYW0g byBwaHVvbmcsIHJvaSBiYXQgbGFtIGtpZW0gZGllbSByYW5nIGhvIGNvIGxvaSwgZHUgaG8gYmkg cGhpYSBjYW0gcXV5ZW4gYXAgYnVjLiBWYW4gZGUgbmF5IHJhIHNhbz8NCg0KTy4gTGUgTXkgRHVj OiBUcnVvYyBraGkgbmd1b2kgZGFuIGNob25nIGRvaSB0aGkgaG8geHVjIG1heSBiYSBuYXkgbGVu IHhlIGNvbmcgYW4gZHVhIHZlIHBodW9uZywgbmh1bmcgY3VuZyBraG9uZyBsYXAgYmllbiBiYW4u IFRvaSBtb2kgbm9pIGxhIGN1IGR1YSB0YXkgY2hvIGhvIGNvbmcuIEtoaSANCm5ob3QgdG9pLCB0 YW0gZ2l1IHRvaSBhbmggcGhhaSBsYXAgYmllbiBiYW4sIHBoYWkgcmEgcXV5ZXQgZGluaCBuaG90 IG5ndW9pIHRoZW8gbHVhdCBwaGFwIFZpZXQgTmFtLCBjaG8gYmlldCB0b2kgdG9pIGdpPyANCkhv IGtob25nIHRyYSBsb2kgZHVvYywgdmEgbGFpIHRoYSB2ZSB0aG9pLiBSb2kgaG8gY2FvIGJ1b2Mg bmh1bmcgbmd1b2kgYmkgYmF0IGRvIHRvaSBjaG9uZyANCm5ndW9pIHRoaSBoYW5oIGNvbmcgdnUu IE5odW5nIG5ndW9pIGRhbiBnaXUgZGF0IGN1YSBobyB0aGkgbGFtIHNhbyBnb2kgbGEgY2hvbmcg bmd1b2kgdGhpIGhhbmggY29uZyB2dT8NCg0KVGhhbmggUXVhbmc6IFRodWEgYW5oIGhhbmggZG9u ZyBuaHUgdmF5IGN1YSBnaW9pIGNhbSBxdXllbiBoaWVuIGtlbyBkYWkgYmFvIGxhdSByb2k/DQoN Ck8uIExlIE15IER1YzogQ2hvIHRvaSBuZ2F5IGhvbSBuYXkgdGhpIHRpbmggdHJhbmcgbmF5IGtl byBkYWkga2hvYW5nIDMwIG5nYXkgcm9pLiBEb3QgDQpuYXkgaG8gY3VvbmcgY2hlIHRvaSAzIHBo dW9uZywgZ29tIFZpbmggQmFvLCBWaW5oIExhYyB2YSBBbiBIb2EsIHZvaSB0b25nIGNvbmcgNDcg aG8gZGFuLiBIaWVuIG5heSBjb24gNDYgaG8gZGFuIGtob25nIG5oYW4gdGllbiBnb2kgbGEgYm9p IHRodW9uZywgbWEgaG8gZG9pIGRpIGJpZXUgDQp0aW5oLCBraGlldSBuYWkgdm9pIFRodSB0dW9u ZyBvIG5nb2FpIEhhIE5vaS4gQ2h1bmcgdG9pIGNvIGdvaSBkb24gbGVuIGRvYW4gdGhhbmggdHJh LCBjYWMgY28gcXVhbiBiYW8gY2hpLiANClRoYW5oIHBobyBSYWNoIEdpYSwgVUJORCB0aW5oIEtp ZW4gR2lhbmcsIHRpbmggdXkgS2llbiBHaWFuZywgMyBjbyBxdWFuIG5heSBraG9uZyANCnRpZXAg ZGFuLiBOZXUgdGhlbyBsdWF0IHBoYXAgdGhpIGtoaSBjaHVuZyB0b2kgbm9wIGRvbiwgaG8gcGhh aSBuaGFuIGRvbiB2YSBjaG8gY2h1bmcgdG9pIA0KYmllbiBuaGFuLiBWYSB0aGVvIGx1YXQgZGlu aCB0aGkgdHJvbmcgdm9uZyAzMCBuZ2F5LCBobyBwaGFpIHRyYSBsb2kgYmFuZyB2YW4gYmFuIGx5 IGRvIGdpIGNodW5nIHRvaSBiaSBjdW9uZyBjaGUgbmh1IHZheS4gTmh1bmcgaG8gY2hhbmcgY28g YmllbiBuaGFuLCB2YW4gYmFuIG5hbyBoZXQsIGtoaWVuIGJhIA0KY29uIGN1IGRpIHRvaSBkaSBs dWksIHRyb25nIGtoaSBvbmcgbG9uIG5heSBkdW4gZGF5IGNobyBvbmcga2lhLCB0aGFuaCBwaG8g ZGF5IGxlbiB0aW5oLCBsYW0gdGhlbyBjaGkgZGFvIGN1YSB0aW5oIG1hLg0KDQpDb24gMSBuZ3Vv aSBjdW5nIGtoaWV1IGtpZW4NCg0KVGhhbmggUXVhbmc6IFRodWEgYW5oLCBuZXUgZGkgdmFvIGNo aSB0aWV0IGN1IHRoZSBob24gdGhpIGRhbiBvYW4gbyBkYXkgcGhhbiBubyB2aSBoYW5oIGRvbmcg ImNob25nIGNoZW8iIGN1YSBnaW9pIGNhbSBxdXllbiBkaWEgcGh1b25nIGxpZW4gcXVhbiB2aWVj IGN1b25nIGNoaWVtIGRhdCB2b2kgDQp0aWVuIGJvaSB0aHVvbmcgcmUgbWF0IHZhIHJvaSBobyBk ZW0gYmFuIGxhaSB2b2kgZ2lhIHJhdCBjYW8uIE5oYW4gZGF5IHhpbiBhbmggbm9pIHF1YSB2ZSB2 YW4gZGUgbmF5Pw0KDQpPLiBMZSBNeSBEdWM6IE5ldSBtYSBub2kgdmUgdHJpbmggdHUgdGhpIGhh bmggdmllYyB0aHUgaG9pIHZhIGRlbiBidSwgZ2lhaSB0b2EgdGhpIHJvIHJhbmcgbGEgY2hpbmgg cXV5ZW4gdGh1YyBoaWVuIHNhaS4gQ29uIG5vaSB2ZSB2YW4gZGUgZ2lhIGNhIHRoaSBoaWVuIG5h eSBobyBhcCBkdW5nIGRhdCBjdWEgDQpjaHVuZyB0b2kgdGh1b2MgZGllbiBkYXQgbm9uZyBuZ2hp ZXAgaGFuZyA0LiANCk1hIGRhdCBub25nIG5naGllcCBoYW5nIDQgdGhpIGdpYSBjaGkgY28gOCBu Z2FuIGRvbmcvbTIuIE5odW5nIGtoaSBobyBzYW4gbGFwIGRhdCwgDQpkb25nIHRodWUgbmF5IG5v IHhvbmcgdGhpIHJhbyBiYW4gdGhlbyBsb2FpIGRhdCBuZW4gdGh1b2Mga2h1IHRydW5nIHRhbSBk byB0aGkgbG9haSAzIHZvaSBnaWEgdHUgNTAwLjAwMCB0b2kgMiB0cmlldSBkb25nL20yLg0KDQpU aGFuaCBRdWFuZzogTmh1bmcgdHJlbiB0aHVjIHRlIGhvIGJvaSB0aHVvbmcgYmFvIG5oaWV1Pw0K DQpPLiBMZSBNeSBEdWM6IENoaSBjbyA4IG5nYW4gZG9uZy9tMiwgdmEgc2F1IGNobyB0aGVtIDUg bmdhbiBudWEgbGEgMTMuMjAwIGRvbmcvbTIuIE1hIGtodW5nIGdpYSBuYXkgbGEga2h1bmcgZ2lh IGN1YSBuYW0gMTk5OSwgdGhlbyBuZ2hpIGRpbmggc28gMiBjdWEgVGh1IHR1b25nIENoaW5oIHBo dSB2ZSB2aWVjIGRlbiBidSwgZ2lhaSB0b2EuIA0KQ29uIGNvbmcgdHJpbmggImxhbiBiaWVuIEtp ZW4gR2lhbmciIGtob25nIHBoYWkgbGEgY29uZyB0cmluaCBxdW9jIHBob25nLCBraG9uZyBwaGFp IGNvbmcgdHJpbmggY29uZyBjb25nIHF1b2MgZ2lhLCBtYSBsYSBnaWFvIGNobyBtb3QgY29uZyB0 eSBwaGF0IHRyaWVuIG5oYSBvIGRlIHBoYW4gbG8gYmFuIG5lbiBuaGEsIGtodSBkYW4gY3UgdGhv aS4gRG8gZG8gaG8ga2hvbmcgdGhlIGFwIGR1bmcgZGF0IGNodW5nIHRvaSB2YW8ga2h1bmcgZ2lh IG5oYSBudW9jIGR1b2MsIG1hIHBoYWkgYXAgZHVuZyBraHVuZyBnaWEgdGhpIHRydW9uZy4NCg0K VGhhbmggUXVhbmc6IEJheSBnaW8sIHRydW9jIHRpbmggY2FuaCBuaHUgdmF5IHRoaSBuaHVuZyBu Z3VvaSBkYW4gYmkgYW5oIGh1b25nLCBub2kgY2h1bmcsIGNvIGNvbiBoeSB2b25nIGdpIGtob25n Pw0KDQpPLiBMZSBNeSBEdWM6IFRvaSBjbyBub2kgdm9pIGJhIGNvbiByYW5nIHZhbiBkZSBkYXQg ZGFpIGRhIGNvIGx1YXQsIGNodSBraG9uZyBwaGFpIA0Ka2hvbmcgY28gbHVhdC4gTmh1bmcgZ2lv aSBjYW0gcXV5ZW4gbGFpIGtob25nIHRodWMgaGllbiBkaWV1IGRvLCB2YSBjaGkgYXAgZ2lhIDEz LjIwMCBkb25nL20yLg0KQmF5IGdpbywgbmV1IHRpbmggZGllbiB0aWNoIDUuMDAwIG0yIGRhdCBi aSBtYXQgbmhhbiB2b2kgMTMuMjAwIGRvbmcgdGhpLCB4aW4gbG9pLCByYSBkaSANCmRvaSBkdW9j IGNoaSBjbyBtb3QgY2FpIG5lbiBuaGEuDQpIaWVuIG5heSBnaW9pIGNhbSBxdXllbiBjaG9uZyBj aGVvIG8gImR1IGFuIGxhbiBiaWVuIiwgbmh1bmcgdGh1YyByYSBjaGFuZyBjbyBsYW4gYmllbiAN CmdpIGhldCwgbWEgdmllYyBuYXksIGJhbyBnaW9pIGRhIHBob25nIHZhbiBobywgaG9pIHJhbmcg YW5oIGxhbiBiaWVuIGhheSBsYW4gZGF0IGN1YSBkYW4sIHRoaSBobyBraG9uZyB0cmEgbG9pIGR1 b2MuDQpUb2kgY2FtIGtldCByYW5nIG5odW5nIGxvaSB0b2kgbm9pIHZ1YSByb2kgbGEgZHVuZyBz dSB0aGF0LiBOZXUgVGh1IHR1b25nIGNvIGhvaSB0b2ksIHRvaSANCmN1bmcgeWV1IGNhdSBvbmcg eHVvbmcgZGF5IHhlbSBkYXQgbmF5IGxhIGRhdCAibGFuIGJpZW4iIGhheSBkYXQgdGh1b2MgY2Eg dHJhbSBuYW0gbmF5Pw0KTmV1IGNoaW5oIHBodSB2YSB0aW5oIEtpZW4gR2lhbmcga2hvbmcgZ2lh aSBxdXlldCB2YW4gZGUgdGhvYSBkYW5nLCBkdW5nIHRoZW8gbHVhdCBkYXQgZGFpLCB0aGkgY2h1 bmcgdG9pIHRpZXAgdHVjIGtoaWV1IGtpZW4ga2VvIGRhaS4gSG8gY28gdGhlIGNoZSBkYXksIGto b2EgbGFwIHRhdCBjYSBuaHVuZyANCnZpZWMgbGFtIHNhaSB0cmFpIGN1YSBoby4gTmh1bmcgdG9p IG5vaSByYW5nIDQ3IGhvIGRhbiBvYW4gbmF5LCBjb24gbW90IG5ndW9pIGN1b2kgY3VuZyBjdW5n IGtoaWV1IGtpZW4gY2hvIGJhbmcgZHVvYy4NCg0KVGhhbmggUXVhbmc6IFhpbiBjYW0gb24gYW5o IExlIE15IER1YyByYXQgbmhpZXUuDQoNCi0tLS0tDQpodHRwOi8vcmZ2bi5jb20vP3A9Mjc3MiBT dW5kYXksIDEyLzQvMjAwOSANCg0KS2llbiBHaWFuZzogIkR1IGFuIGxhbiBiaWVuIGhheSBsYW4g ZGF0IGN1YSBkYW4iPw0KDQooVGhhbmggUXVhbmcsIHBob25nIHZpZW4gZGFpIFJGQSAyMDA5LTA0 LTEwKQ0KDQpUaHVhIHF1eSB2aSwgY2FjaCBuYXkgaXQgbGF1LCBCYW4gVmlldCBOZ3UgRGFpIEFD VEQgY2h1bmcgdG9pIGNvIGRlIGNhcCAiRHUgYW4gbGFuIGJpZW4gS2llbiBHaWFuZyIsIHF1YSBk bywgY3UgZGFuIA0KY2FjIFBodW9uZyBBbiBIb2EsIEFuIExhYyB0aHVvYyBUUCBSYWNoIEdpYSwg S2llbiBHaWFuZywgcGhhbiB1bmcgbWFuaCBtZSB0cnVvYyBoYW5oIGRvbmcgY3VhIGdpb2kgY2Ft IHF1eWVuIGtldCBob3AgDQp2b2kgZGFpIGdpYSBsYW4gZGF0IGN1YSBkYW4sIHRoYXkgdmkgImxh biBiaWVuIiwgZGUgbW8gcm9uZyB0aGVtIGRhdCBkYWkgdGhlbyBuaHUga2UgaG9hY2guIEhhdSBx dWEgbGEgaGFuZyB0cmFtIA0KaG8gZGFuIGJpIGNvbmcgYW4gZGFuIGFwLCBtYXQgc2luaCBrZSwg bGFtIGNhbmgga2hvIGtoYW4gbmdoaWVtIHRyb25nLiBUaW5oIGhpbmggbmF5IGhpZW4gZ2lvIHJh IHNhbz8NCg0KUXVhIGN1b2MgdHJhbyBkb2kgdm9pIFRoYW5oIFF1YW5nLCBtb3QgbmFuIG5oYW4g Y2h1IGNob3QgY3VhICJEdSBhbiBsYW4gYmllbiBLaWVuIEdpYW5nIiwgbGEgYW5oIExlIER1YyBN eSwgY2hvIGJpZXQ6DQoNCktlIGhvYWNoIGN1b25nIGJ1YyBiYW5nIHBoYXAgbHVhdCANCg0KTGUg RHVjIE15IDogQmF5IGdpbyBubyBkYW5nIHZ1b25nLCBkYW5nIHZ1b25nIGxhIHZpLCB0YWkgdmkg byBLaWVuIEdpYW5nIGNvIG1vdCBzbyBobyBkYW4gbmd1b2kgdGEgY28gc28gZG8gZHVvYyBjYXAg DQpjaHUgcXV5ZW4gcm8gcmFuZywgdGhpIGNoaW5oIHF1eWVuIGtob25nIHRoZSBub2kgbmd1b2kg ZGFuIGxhbiBkYXQgZHVvYy4gU28gZG8gY2FwIHR1IG5hbSAxOTk5IHZvaSBsYWkgbmFtIDIwMDMs IA0KY2FpIHRoaSBjbyB0cnVvYyBraGkgY28gZHUgYW4gbGFuIGJpZW4sIGNhaSB0aGkgc2F1IGto aSBjbyBkdSBhbiBsYW4gYmllbiwgbmh1bmcgbWEgY2FwIGNodSBxdXllbiB0aGkgaGllbiBuYXkg bmd1b2kgdGEgDQpnaGkgcmF0IHJvIGxhIGRhdCBjdWEgZGFuLCBjYW5oIHRhYyB0b2kgZGF1IHRo aSBjYXAgdG9pIGRvLCBraG9uZyBjbyBhaSB0cmFuaCBjaGFwIHRoaSBkdW9jIGNhcCBzbyBkbywg ZG8gbGEgbHVhdC4gDQoNCk5odW5nIG1hIG5vIHNhaSBzb3QgbyBjaG8gbGEgbm8gcXVlbiBkaSwg dHJvbmcgY2FpIGRhaSBkYXQgZG8gY28gbmh1bmcgbWFuaCBkYXQgbmd1b2kgdGEgY2FwIHRvaSBk by4gSGllbiBuYXkgY2FpIGJhbiANCmR1IGFuIGN1YSBLaWVuIEdpYW5nIHRoaSBubyB0aW5oIGxh IGdpPyBMYSBubyB0aW5oIHhvYSBsYXAgbW8gZGkgY2FpIHJhbmggZ2lvaSBnaXVhIGRhdCBjdWEg ZGFuIGNvIG1heSBjaHVjIG5hbSBuYXkgcm9pIA0Kdm9pIHRoYW5oIHBobyBsYW4gYmllbiwgZHUg YW4gbGFuIGJpZW4gbW9pLiBOaHVuZyBtYSB0cmFuaCBjaGFwIG8gY2hvIGxhIGhpZW4gbmF5IG5v IGxhbSBjYW4gbGFtIGJ1YSBuaGlldSBxdWEsIGxhbSBidWEgDQpsYW0gY2FuIHZhbiBkZSBsYSBy YW5oIGdpb2kgY3VhIGRhdCwgbm8ga2hvbmcgY2hpdSBjYXAgc28gZG8gY2hvIG5ndW9pIHRhIHZh IG5vIHRpbmggeG9hIGRpIGNhaSByYW5oIGdpb2kuDQoNClRoYW5oIFF1YW5nIDogVHJvIGxhaSB2 YW4gZGUgZG9pIHZvaSBuaHVuZyBjdSBkYW4gY28gc28gZG8gcm9pIHRoaSBiYXkgZ2lvLi4uDQoN CkxlIER1YyBNeSA6IEN1bmcgY3VvbmcgYnVjIGx1b24uIEJheSBnaW8gaG8gY3VvbmcgYnVjLCB0 aGVvIHRvaSBuZ2hpIGN1b25nIGJ1YyBiYW5nIHBoYXAgbHVhdCBjaHUgY2h1YSBwaGFpIGxhIGRh biBhcCB2YSBjdW9uZyBidWMgYmFuZyBzdW5nIG9uZywgYmFuZyBjb24gbmd1b2kuIEN1b25nIGJ1 YyBiYW5nIHBoYXAgbHVhdCBjbyBuZ2hpYSBsYSBhbmgga2hvbmcgcmEgcXV5ZXQgZGluaCB0aHUg aG9pIGRhdCBjdWEgbmd1b2kgdGEgbWEgYW5oICANCnJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIGRh dCBjdWEgbmd1b2kgdGEuIFF1eWV0IGRpbmggY3VvbmcgY2hlIGNvIG5naGlhIGxhIHF1eWV0IGRp bmggYmF0IGJ1b2MgZGFuIHBoYWkgdGhpIGhhbmgsIG5ndW9pIGRhbiBwaGFpIHRoaSBoYW5oLg0K QW5oIGxhbSB0cmFpIGx1YXQgbWEgYW5oIGJhdCBkYW4gcGhhaSBjdW9uZyBidWMgYmFuZyBwaGFw IGx1YXQuIEFuaCBraG9uZyByYSBxdXlldCBkaW5oIHRodSBob2kgZGF0IGN1YSBuZ3VvaSB0YSBt YSBhbmggcmEgcXV5ZXQgZGluaCBjdW9uZyBjaGUgZGF0LiBCYXkgZ2lvIGFuaCBjdW9uZyBjaGUg DQpkYXQgY3VhIG5ndW9pIHRhIHRoaSBhbmggcGhhaSBkdWEgdmFvIHF1eWV0IGRpbmggdGh1IGhv aSBkYXQgZGF1PyBLaG9uZyBjbyBxdXlldCBkaW5oIHRodSBob2kgZGF0LiANCkRhbiBwaGFuIGRv aS4gQmF5IGdpbyB4YWMgZGluaCByYW5oIGdpb2kgZ2l1YSBkYXQgY3VhIGRhbiB2YSBkYXQgY3Vh IG5oYSBudW9jIGxhbiBiaWVuIGxhIG8gZGF1IGRlIGNobyBkYW4gYmlldCB0aGkga2hvbmcgYWkg ZGFtIHhhYyBkaW5oIGRpZXUgZG8uIFRhaSBzYW8/IFlldSBjYXUgZHVhIGJhbiBkbyB0eSBsZSBt b3QgbmFtIHRyYW0gbWEgY28gc28gdHJpbmggdGh1IHR1b25nIGNoaW5oIHBodSBkZSBtYSB4aW4g cGhlcCBkdSBhbiBsYW4gYmllbiB0aGkgDQpraG9uZyBhaSBkYW0gZHVhIHJhIGhldCwgdGFpIHZp IGNvIHNvIGRvIHRoaSBtb2kgeGFjIGRpbmggZHVvYyBkYXQgbmFvIGxhIGRhdCBjdWEgZGFuLCBk YXQgbmFvIGxhIGRhdCBjaHVhbiBiaSBsYW4gYmllbiB0aGkgbW9pIGNvIHJhbmggZ2lvaS4NCkNh aSB0aHUgaGFpIG51YSBsYSBraGkgY2hpbmggcGh1IGt5IHF1eWV0IGRpbmggY2hvIGJhbiBxdWFu IGx5IGR1IGFuIGxhbiBiaWVuIEtpZW4gR2lhbmcgDQpsYSBwaGFpIHRyb25nIGRpZW4gbGFuIGJp ZW4gdGhpIG5hbSAxOTk4IG5nYXkgbmFtIGRvIG5vIGRhIGJhbiBjdWEgbmd1b2kgdGEgbWF5IHRy YW0gY2FpIHNvIGRvIHJvaSwgYmFuIGNob25nIGxlbiBkYXQgY3VhIGRhbiBsdW9uLiANCkNvIG5n aGlhIGxhIGFuaCBsYXkgZGF0IGN1YSBkYW4gYW5oIGJhbiBraG9uZyB0cmVuIGdpYXkgdG8gY2hv IG5ndW9pIHRhIG1heSB0cmFtIGNhaSBzbyBkbywgMjk0IHNvIGRvLCBtYSBoaWVuIG5heSBoYXUg cXVhIGRvIG5vIGNoaSBnaWFpIHF1eWV0IGNoaSBraG9hbmcgMjAwIGNhaSwgY29uIGxhaSA5NCBz byBkbyBtYWMga2V0LCBraG9uZyBjbyBkYXQgZGUgZ2lhbyB2aSBkYW4ga2hvbmcgY2hpdSBnaWFv IGRhdC4NCg0KQmFuIHF1YW4gbHkgZHUgYW4gbGFtIHNhaSANCg0KVGhhbmggUXVhbmcgOiBUaGUg dGhpIGhvIGdpYWkgcXV5ZXQgbGFtIHNhbz8NCg0KTGUgRHVjIE15IDogVGhpIGJheSBnaW8gbW9p IGRhbmcgY2hvbmcgZG9pLCBiaWV1IHRpbmgsIGRpIHRodWEga2llbi4gVGh1YSBsYSB0aHVhIG8g Y2hvIGRvLiBOZ3V5ZW4gbmhhbiB0aHVhIGtpZW4gbGEgZ2k/IExhIG1pbmgga2hvbmcgY2hvIGxh IGNoaW5oIHF1eWVuIGxhbSBzYWkgbWEgY2hvIGxhIA0KYmFuIHF1YW4gbHkgZHUgYW4gbGFtIHNh aS4gTmd1b2kgbmFvIGNoaSBkYW8gY2hvIGJhbiBxdWFuIGx5IGR1IGFuIGxhbSBzYWkgdGhpIGRv IGxhIHV5IGJhbiBuaGFuIGRhbiB0aW5oLg0KDQpUaGFuaCBRdWFuZyA6IFRoZSB0aGkgbmdheSBi YXkgZ2lvIGdpb2kgY2FtIHF1eWVuIGRpYSBwaHVvbmcsIGtlIGNhIFVCTkQgdGluaCwgdGhpIGhv IGNvIGhhbmggZG9uZyBuaHUgdGhlIG5hbz8NCg0KTGUgRHVjIE15IDogVGhpIGhvIHJhIHF1eWV0 IGRpbmggY3VvbmcgY2hlIGRhbiwgYmF0IGRhbiBwaGFpIHRoaSBoYW5oIHRoZW8gY2FpIHNhaSB0 cmFpIGRvLiBUb2kgY2hvIGNhaSBkbyBsYSBjdW9uZyBjaGUgYmFuZyBwaGFwIGx1YXQuIERhbiBt dW9uIGJpZXUgdGluaCBoYXkgbGEgZGFuIG11b24gdGh1YSBraWVuIHRoaSBobyBiYWMgaGV0LiBC YWMgaGV0IGJhbmcgY2FjaCBuYW8/IEJheSBnaW8gZ3VpIGRvbiBsZW4gdGhpIGhvIG5vaSBsYSBo byANCmR1bmcsIGhvIGJhYyBkb24gY3VhIG1pbmguIA0KDQpCaWV1IHRpbmggbGVuIHRoaSBobyBk ZXAuIEhvIGNobyBjb25nIGFuLCBibyBkb2ksIHJvaSBkYW4gcXVhbiB0dSB2ZSB4dW9uZyBjaGF0 IGNheSwgZG9uIHBoYSBjYXkgY3VhIG5ndW9pIHRhLiBIaWVuIG5heSBobyBkYSBjaGF0IGNheSBj dWEgbmd1b2kgdGEgaGV0IHJvaSwgZG9uIGR1b25nLiBNYSB0aGF5IA0KZGFuIGNvIGJpZXUgaGll biBydWMgcmljaCBkaSBiaWV1IHRpbmggdGhpIGhvIGhvaSBnaWFtIGxhaSBtb3QgY2h1dC4NCg0K VGhhbmggUXVhbmcgOiBOZ2F5IGJheSBnaW8gdGhpIHRpbmggaGluaCBuaHUgdGhlIG5hbz8gQ2Fu ZyB0aGFuZyBsYW0ga2hvbmc/DQoNCkxlIER1YyBNeSA6IFRoaSBiYXkgZ2lvIGxhIGhvIGRhbmcg dWkgZHVvbmcgbGFuIGRhdCBkYW4sIHRoaSBkYW4gaGllbiBuYXkgY28ga2hhIG5hbmcgbGEgc2Ug ZGkgSGEgTm9pIGJpZXUgdGluaCwgdGFpIG8gdGluaCBuYXkgYmlldSB0aW5oIGtob25nIHhvbmcg cm9pLCB0aHVhIGtpZW4gY3VuZyBraG9uZyB4b25nIHJvaSwgYWkgeHU/IGtob25nIGNvIG5ndW9p IHh1LiBCYXkgZ2lvIHBoYWkgZGkgSGEgTm9pLiBOZXUgbWEgbGFtIGNhbmcgcXVhLCANCmtob25n IHRyYSBkYXQgbGFpIGNobyBkYW4sIGtob25nIGJvaSB0aHVvbmcgdGhvYSBkYW5nIHRoaSBkYW4g c2UgZGkgSGEgTm9pIGJpZXUgdGluaC4NCkRhbiB0aGlldCB0aG9pIHR1IDEwIG5hbSBuYXkgDQoN ClRoYW5oIFF1YW5nIDogTmh1bmcgbWEgYmF5IGdpbywgdHJvbmcgdGluaCBjYW5oIGhpZW4gZ2lv IG5odSB2YXkgdGhpIHRyb25nIG5odW5nIG5nYXkgc2FwIHRvaSBsaWV1IHNlIHJhIHNhbz8NCg0K TGUgRHVjIE15OiBCYXkgZ2lvIG5ldSBtYSBub2kgdmUgdGhpZXQgaGFpIHRoaSBoaWVuIG5heSBs YSB0cmVuIDEwIG5hbSBuYXkgZGFuIGtob25nIGNvIGRhdCBkZSBjYW5oIHRhYy4gVmkgZGFuIHZ1 bmcgZG8gdHJ1b2MgZGF5IHNvbmcgYmFuZyB0cm9uZyByYXUgdHJvbmcgaG9hLCB0cm9uZyB0YXQg Y2Egbmh1bmcgZ2kgZGUgaG8gc2luaCBzb25nIHZpIGhvIGNvIGRhdCBkZSBjYW5oIHRhYy4gQW5o IGhpZXUgbm9uZyBkYW4gcGhhaSBjbyBkYXQgY2FuaCANCnRhYywgdGhpIDEwIG5hbSBuYXkgcXV5 IGhvYWNoIHRyZW8gbmh1IHZheSwgZGFuIGtob25nIGxhbSBkdW9jIGdpIGhldC4gS2hvbmcgY2hv IHBoZXAgc3VhIG5oYSwga2hvbmcgY2hvIHBoZXAgeGF5IG5oYSwga2hvbmcgY2hvIHBoZXAgbXVh IGJhbi4gDQpEYXQgbGEgbW90IHRodSBoYW5nIGhvYSBkYWMgYmlldCBkZSBjYW0gY28sIGRlIG11 YSBiYW4sIGRlIGtpZW0gZG9uZyB0aWVuIHhvYXkgc28sIHZhIGRhdCBkZSBjYW5oIHRhYyB0cm9u ZyByYXUgdHJvbmcgbmF5IGtpYSBiYW4gZGUgc29uZyBxdWEgbmdheSwgdGhpIDEwIG5hbSBuYXkg a2hvbmcgdHJvbmcgZHVvYyBnaSBoZXQsIGtob25nIGxhbSBkdW9jIGdpIGhldC4gRG8gbGEgY2Fp IGFwIGJ1YyB0aHUgbmh1dC4gDQpDYWkgYXAgYnVjIHRodSBoYWksIHZvIGx5IGxhIGdpPyBEYXQg dHJlbiBnaWEgdGhpIHRydW9uZyBoaWVuIG5heSBuZXUgbmd1b2kgdGEgY2FtIG1pZW5nIGRhdCBk bywgbmd1b2kgdGEgYmFuIHRoaSBjYWkgZ2lhIGxhIGJheSB0YW0gdHJhbSBuZ2FuIG1vdCBtZXQg dnVvbmcsIHZpIGxhIGRhdCBkbyB0aGkgbG9haSBiYSBtYSwgbmh1bmcgbWEgYW5oIGJhdCB0dWkg cGhhaSBnaWFvIGRhdCBjaG8gYW5oICB2YSBhbmggYm9pIHRodW9uZyB2b2kgZ2lhIG5hbSBuZ2Fu LCANCm11b2kgYmEgbmdhbiB0aGkgbGFtIHNhbyB0dWkgZ2lhbyBjaG8gYW5oIGR1b2MhIERvIGxh IGNhaSB2byBseSB0aHUgaGFpLiBBbmggZGFuIGFwIGNhaSBkbyBsYSBiYXkuDQpIaWVuIG5heSBt YWMgZHUgaG8gY2h1YSBkYW4gYXAgbmh1IGJhdCBuZ3VvaSBoYXkgbGEgbmhvdCB0dSBhaSBoZXQs IG5odW5nIGhvIGRhIGNobyBjdSBsdWMgbHVvbmcgY29uZyBhbiBuYXkgbm8geHVvbmcgY2hhdCBj YXkgcGhhIGNheSBjdWEgbmd1b2kgdGEuIENheSBuZ3VvaSB0YSB0cm9uZyBuYW0gDQpzYXUgbXVv aSBuYW0gbmF5IG1hIGhvIG5vaSBkYW4gdHJvbmcgY2F5IGxhbiBjaGllbSBkYXQgbmhhIG51b2Mg cm9pIGhvIGNoYXQgYm8gY2F5IGN1YSBuZ3VvaSB0YSBtYSBraG9uZyBib2kgdGh1b25nIG1vdCBj YWMgbmFvIGhldC4NCkRvIGxhIGNhaSBzYWkgdGh1IGJhLiBDYWkgZG8gbGEgYW5oIGN1b25nIGJ1 YyByb2ksIGFwIGJ1YyByb2ksIHBoYWkga2hvbmc/IENheSB0cm9uZyB2dW9uIG5ndW9pIHRhIHRy b25nIG1heSBjaHVjIG5hbSBuYXksIHRyaSBnaWEgY2F5IGRvIHRpbmggYmFuZyB2YWkgdHJhbSBu Z2FuIHZheSBtYSBobyANCnh1b25nIGNoYXQgY2F5IGN1YSBuZ3VvaSB0YSBsYSBzYW8/IERvIGxh IGNhaSBjdW9uZyBidWMgdGh1IGJhLg0KQ2FpIGN1b25nIGJ1YyB0aHUgdHUgdmUgdGFtIGx5IHJh dCBsYSBuYW5nIG5lLiBUaGVvIGNodSB0cnVvbmcgY3VhIGRhbmcgdmEgbmhhIG51b2MsIGtoaSBu Z3VvaSBkYW4gYmkgbWF0IGRhdCB0aGkgcGhhaSBkdW9jIGJvaSB0aHVvbmcgdGhvYSBkYW5nIHZh IHBoYWkgZHVvYyBjbyBub2kgbyBtb2ksIGNvIG5vaSB0YWkgZGluaCBjdSBtb2kgYmFuZyBob2Fj IHRvdCBob24gY2hvIGN1LCBuaHVuZyBkYW5nIG5heSBubyBraG9uZyBib2kgdGh1b25nIHRob2Eg DQpkYW5nIHZhIGhvIHRybyBjdW5nIGtob25nIGx1b24sIG1hIGNvbiBkYW4gYXAgbmd1b2kgdGEg bnVhLiBEYW4gbyBkYXkgbmd1b2kgdGEgY2hpIHlldSBjYXUgYW5oIHRoaSBoYW5oIGR1bmcgbHVh dC4gDQpBbmggbGF5IGRhdCBjdWEgdG9pIHBoYWkgcmEgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCwg bGF5IGRhdCBjdWEgdG9pIGFuaCBwaGFpIGJvaSB0aHVvbmcgdGhlbyBnaWEgdGhpIHRydW9uZyB0 aG9hIGRhbmcsIHZhIGFuaCBsYXkgZGF0IGN1YSB0b2kgdGhpIGFuaCBwaGFpIGdoaSBybyBtdWMg ZGljaCBsYXkgZGUgbGFtIGdpLiBBbmggbGF5IGRlIGxhbSBkdW9uZyB0aGkgdHVpIHRvaSBkYXUg ZGFtIGNob25nIGFuaC4gQW5oIHhheSBkdW5nIHNhbiBiYXkgcXVhbiBzdSBoYXkgDQpsYSBjYW5n IHRoaSB0dWkgdG9pIGRhdSBkYW0gY2hvbmcgYW5oLiBOaHVuZyBtYSBhbmggbGF5IGRhdCBjdWEg dG9pIGdpYW8gY2hvIG5oYSBkYXUgdHUga2hhYywgYW5oIGJhbiBkZSBsYXkgdGllbiBsb2kgdGhp IHRvaSBjaG9uZyBhbmggY2h1ISANCkhpZW4gbmF5IG8gVSBNaW5oIG5ndW9pIHRhIGtlbyBsZW4g bmd1b2kgdGEgYmlldSB0aW5oLCBuZ3VvaSB0YSBub2kgZGEgZGFvIGJlIGx1IHRoYW0gDQpuaHVu ZywgZGEgZGFvIGNodSB0aWNoIHRpbmggQnVpIE5nb2MgU29uIGNodSBuZ3VvaSB0YSBraG9uZyBj aG9uZyBkYW5nLCBraG9uZyBjaG9uZyBuaGEgbnVvYywgbWEgY2hvbmcgbmh1bmcga2UgbGFtIGJh eS4NCg0KVGhhbmggUXVhbmcgOiBOb2kgY2h1bmcgdGluaCBoaW5oIGN1b25nIGNoZSB0aHUgaG9p IGRhdCBkYWkgbyBLaWVuIEdpYW5nIHJhIHNhbz8NCg0KTGUgRHVjIE15IDogUmF0IGxhIGJhdCBj YXAuIFJhdCBsYSBiYXQgY2FwLiBSYXQgbGEgbmhpZXUsIEtpZW4gTHVvbmcgY3VuZyBkaW5oIHRy b25nIHRpbmggdHJhbmcgbmF5LiBIdXllbiBLaWVuIEx1b25nLCB0aW5oIEtpZW4gR2lhbmcsIGN1 bmcgbGEgZGllbSBub25nLiBSb2kgaHV5ZW4gQW4gTWluaCANCmN1bmcgbGEgZGllbSBub25nLiBI b20gcm9pIEFuIE1pbmggbGVuIGJpZXUgdGluaCBjdW5nIHZpIGRhdCBkYWkgdGhvaS4gDQpUaGFu aCBwaG8gUmFjaCBHaWEgY3VuZyB2YXkuIE5vaSBjaHVuZyBsYSBuaHVuZyBkaWVtIG5vbmcgdmUg ZGF0IGNhdCBkZXUgY28gZGluaCB0b2kgY2h1eWVuIGRvIGhldCwgZGV1IGRvIGNhY2ggbGFtIGNo b25nIGNoZW8sIGxhbSBraG9uZyBkdW5nIHBoYXAgbHVhdC4NCg0KVGhhbmggUXVhbmcgOiBUcm9u ZyB2YW4gZGUgcmFjIHJvaSB2ZSBkYXQgZGFpIHRoaSBjaG8gdG9pIGdpbyBuYXkgY2FjIHZpZW4g Y2h1YyBvIGRpYSBwaHVvbmcgY28gYWkgYmkgYW5oIGh1b25nIGdpIGNodWE/DQoNCkxlIER1YyBN eSA6IEJheSBnaW8gdGhpIG1vdCBwaG8gY2h1IHRpY2ggYmkgZGluaCBjaGkgY29uZyB0YWMgcm9p LCBsZW4gYmFvIGNoaSByb2kuIE1vdCB0cnVvbmcgcGhvbmcuIE5vaSBjaHVuZyB2dSBhbiBkbyB0 aGkga2hvYW5nIDUgbmd1b2kgdGhhbSBuaHVuZyBuZ2F5IHRyb25nIG5vaSBibyBVQk5EIHRpbmgg S2llbiBHaWFuZywgdHJvbmcgZG8gbmd1b2kgdGEgYmlldCBsYSBwaG8gY2h1IHRpY2ggdGluaCBz YWkgcGhhbSB2ZSBkYXQgZGFpLiANClNhaSBwaGFtIHZlIGRhdCBkYWkgbGEgY2FpIGdpPyBMYSB0 aGFtIG5odW5nIHZlIHRpZW4gYmFjIGNobyBsYSBjYWkgZ2khIA0KDQpUaGFuaCBRdWFuZyA6IE1h IHNhaSBwaGFtIHZlIGRhdCBkYWkgZG8gY28gZGluaCBsaXUgdG9pIGR1IGFuIGxhbiBiaWVuIEtp ZW4gR2lhbmcgbmF5IGtob25nPw0KDQpMZSBEdWMgTXkgOiBDbyBsdW9uLiBNb3QgcGhhbiBsYSBj byBsdW9uLiBBbmggcmEgbmh1bmcgcXV5ZXQgZGluaCBzYWkgdHJhaS4gDQoNCi0NCmh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi90aW5uaGFuaC8yMDEwMTAvU29jLXZvaS1oaW5oLWFuaC1jby1nYWkt dGFtLXRyYW4tby1jYXUtVGhlLUh1Yy05NDE0NjIvIE5ndXllbiBMYW0gMTI6MDUsIDExLzEwLzIw MTAgKEdNVCs3KQ0KDQpDb25nIGFuOiBDYW4geHUgcGhhdCBjbyBnYWkgdGFtIHRyYW4gbyBjYXUg VGhlIEh1YyBnYXkgc29jIA0KDQpNYWMgY2hvIG5odW5nIG5ndW9pIHh1bmcgcXVhbmggYmFuIHRh biwgY28gZ2FpIHZhbiB0aGFuIG5oaWVuLCB0dSB0dSBjb2kgYW8gcm9pIHRhbSBuZ2F5IGJlbiBj YW5oIGNhdSBUaGUgSHVjIHNhbmcgcnVjIGRlbi4NCg0KVHJvbmcgZG9hbiBjbGlwIGRhaSBraG9h bmcgMSBwaHV0LCBsYSBoaW5oIGFuaCBtb3QgY28gZ2FpIGxhbiBsdW90IGNvaSBhbyB2YSB0YW0g bmdheSBjYW5oIGNhdS4NCg0KQW5oIGNodXA6IEhpbmggYW5oIGNvIGdhaSB0YW0gdHJhbiBiZW4g Y2F1IFRoZSBIdWMgZHVvYyBjaHVwIGxhaSB0dSBjbGlwLg0KDQpTYXUga2hpIGRvYW4gY2xpcCBi aSBsYW4gdHJ1eWVuIHRyZW4gbWFuZyBkYSBuaGFuaCBjaG9uZyB0aHUgaHV0IGR1b2MgaG9uIDcz LjAwMCBsdW90IG5ndW9pIHhlbS4NCg0KRGEgc28gZGV1IHRvIHJhIGJpIHNvYywgdmEgcGhhbiBu byB0cnVvYyB2aWVjIGxhbSB0aGlldSBzdXkgbmdoaSBjdWEgY28gZ2FpIHRhbSB0cmFuIHRyb25n IA0KY2xpcCBuaGF0IGxhIHZpZWMgbGFtIHRoaWV1IHZhbiBob2EgbmF5IGxhaSBkaWVuIHJhIGxv IGxpZXUgbmdheSB0YWkgbm9pIGRhbmcgbGEgdGFtIGRpZW0gDQpjaG8gY2FjIGhvYXQgZG9uZyBj aGFvIG11bmcgRGFpIGxlIDEuMDAwIG5hbS4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9I by10dS10aGFuLW8tVFAtSENNLW5odS1uYW0tc2F1LW11YS8xMTE4NjExOC8xNTcvIDEzLzEwLzIw MTAsIDIyOjM2IEdNVCs3IA0KDQpDb25nIGFuOiBDaHVhIGtob2kgdG8gdnUgYW4gIkhvIHR1IHRo YW4iIG5odSBuYW0gc2F1IG11YSBvIFRQIEhDTSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZu L2hjbS8yMDEwMTAvU3VwLWNvbmctdHJvbmctbHVjLW11YS10by0xLW5ndW9pLWNoZXQtdGhhbS05 NDAyNDYvIFRyYW4gQ2hhbmggTmdoaWEgMDg6MDUsIDExLzEwLzIwMTAgKEdNVCs3KSANCg0KQ29u ZyBhbjogQ2FuIGtob2kgdG8gdnUgYW4gc3VwIGNvbmcgdHJvbmcgbXVhLCAxIG5ndW9pIGNoZXQg dGhhbSBvIFRQIEhDTSANCg0KTmhpZXUgbmd1b2kgdGhheSBuZ3VvaSBkYW4gb25nIHRydW90IG5n YSB0cm9pIHZhbyBjb25nIG5odW5nIGRhbmggYmF0IGx1Yy4NCg0KVnUgdGFpIG5hbiB0aHVvbmcg dGFtIHhheSByYSB2YW8gY2hpZXUgdG9pIDEwLzEwLCB2YW8gdGhvaSBkaWVtIG5oaWV1IGtodSB2 dWMgbyANClRQLkhDTSBiaSBuZ2FwIG5hbmcgdHJvbmcgY29uIG11YSB0YW0gdGEgLg0KDQooQW5o IGNodXA6IE5hbiBuaGFuIGR1b2MgdGltIHRoYXkgbmdheSBtaWVuZyBjb25nLiBBbmg6IFRyYW4g Q2hhbmggTmdoaWEpDQoNClRhaSBraHUgdnVjIHRyZW4gZHVvbmcgVG8gTmdvYyBWYW4gKGttIDE3 MTMrMjczIFAuIExpbmggVGF5IFEuIFRodSBEdWMpIG51b2MgbXVhIA0KdHJhbmcgeG9hIHBodSBr aW4gZHVvbmcuIEtob25nIHRoZSBwaGFuIGJpZXQgZHVvYyBkYXUgbGEgaG8gc2F1LCBkYXUgbGEg ZHVvbmcgZGkuIFRydW9jIA0KZG8sIHRyZW4gZG9hbiBkdW9uZyBuYXkgY28gbW90IGNvbmcgdGhv YXQgbnVvYyBuZ2FuZyBkYWkga2hvYW5nIDhtIGRhIGNoaW0gdHJvbmcgDQpudW9jIG11YSwgbmVu IGtob25nIGFpIGNvIHRoZSBwaGF0IGhpZW4gZHVvYy4gDQoNClZhbyBraG9hbmcgMThoNTAgY3Vu ZyBuZ2F5LCBtb3Qgbmd1b2kgZGFuIG9uZyBkaSB4ZSBkYXAgaHVvbmcgdHUgY2hvIFRodSBEdWMg dmUgDQpUYW0gQmluaCBkYSBiYXQgbmdvIGJpIGxvdCB0aG9tIHh1b25nIHZhIGJpIG51b2MgY3Vv biB0cm9pIHZhbyBtaWVuZyBjb25nIHRydW9jIHN1IA0KbmdvIG5nYW5nIGN1YSBiYSBjb24gY2h1 bmcgcXVhbmguIE5oaWV1IG5ndW9pIHRyaSBobywgbmh1bmcgbXVhIHF1YSBsb24gbmVuIG1vaSAN Cm5ndW9pIGtob25nIHRoZSB1bmcgY3V1IGtpcCB0aG9pLg0KDQpIYWkgbXVvaSBwaHV0IHNhdSwg bmdvdCBtdWEsIHhhYyBuZ3VvaSBkYW4gb25nIGRhIGR1b2MgdGltIHRoYXkgbyBwaGlhIGhhIGx1 dSB2YSBjaGllYyANCnhlIGRhcCBkYW5nIGNoYW4gbmdheSBtaWVuZyBjb25nLg0KDQpDb25nIGFu IFEuVGh1IER1YyBkYSBjbyBtYXQgdGFpIGhpZW4gdHJ1b25nLiBEbyBuZ3VvaSBkYW4gb25nIG5h eSBraG9uZyBjbyBnaWF5IHRvIHR1eSB0aGFuIG5lbiBjaHVhIHhhYyBkaW5oIGR1b2MgZGFuaCB0 YW5oLiANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vVFBIQ00tWGUtdGFpLXN1cC10aWVw LWhvLXR1LXRoYW4vMTQxLzUwNTgzOTQuZXBpIDIxLzEwLzIwMTAgDQoNCkNvbmcgYW46IFhlIHRh aSBzdXAgdGllcCAiaG8gdHUgdGhhbiIgVFAgSENNDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2hj bS8yMDEwMTAvSG8tZGVuLXR1LXRoYW4tY2h1YS1iaS10cnV5LXRvLWNodWEtc28tOTQzMzk5LyBU aGFpIFBodW9uZyAwNjo0MCwgMjAvMTAvMjAxMCAoR01UKzcpDQoNCkNvbmcgYW46IEhvIHR1IHRo YW4sIGNodWEgYmkgdHJ1eSB0byBjaHVhIHNvIA0KDQpMaWVuIHF1YW4gZGVuIHRhaSBuYW4gZG8g Y2FjIGhvIGRlbiB0dSB0aGFuIGdheSByYSwgTHVhdCBzdSBUaGFpIFZhbiBDaHVuZywgVmFuIHBo b25nIA0KRG9hbiBMdWF0IHN1IChMUykgVFAgY2hvIHJhbmcsIGNodWEgeGF5IHJhIHRhaSBuYW4g Y2hldCBuZ3VvaSBtYSBjaGkgY2FuIHRoaWV0IGhhaSB0YWkgDQpzYW4sIG5ndW9pIGRhbiBkYSBj byB0aGUga2hvaSBraWVuLiANCg0KKiBOb2kga2hpZXAgc28gbWFuZyB0ZW4uLi4gaG8gdHUgdGhh biBvIFRQLkhDTQ0KKiBTdXAgaG8gdHUgdGhhbiwgeGUgY29udGFpbmVyIGNob25nIHZvDQoNCkhv IHR1IHRoYW4gbGEgZG8gdGFpIGxhcCB0YW0gLi4uIA0KDQpOZ2F5IDE5LzEwLCBkYWkgZGllbiB0 dSB2YW4gZ2lhbSBzYXQgZHUgYW4gVmUgc2luaCBtb2kgdHJ1b25nIFRQIE5oaWV1IExvYyAtIFRo aSBOZ2hlIA0KKENETSkgdGh1YSBuaGFuLCBraG9hbmcgMS80IHNvIHZ1IHN1cCBobyB0dSB0aGFu IGxhICJ0YWMgcGhhbSIgY3VhIGR1IGFuIG5heS4gQ28gdGhlIA0KbmhhYyBsYWkgbmh1bmcgaG8g dHUgdGhhbiBsYW0ga2hpZXAgdmlhIG5ndW9pIGRpIGR1b25nIG5odToga2h1IHZ1YyBuZ2EgdHUg UGh1IE5odWFuLCANCmR1b25nIExlIFZhbiBTeSwgbmdhIHR1IFZvIFRoaSBTYXUgLSBIYWkgQmEg VHJ1bmcuLi4NCg0KTGVuIHRpZW5nIHZlIGNhYyBobyB0dSB0aGFuIG5heSwgZGFpIGRpZW4gQ0RN IGNobyByYW5nLCBuZ3V5ZW4gbmhhbiB4dWF0IGhpZW4gaG8gdHUgDQp0aGFuIGRvIG11YSBsb24s IG1hdCBkdW9uZyB2dWEgdGFpIGxhcCB0YW0sICJkdW5nIiBjb25nIHRyaW5oIG5nYW0gdmEgY28g dmllYyBuaGEgdGhhdSANCnRoaSBjb25nIGtob25nIGRhdCBjaGF0IGx1b25nIC4uLiANCg0KKEFu aDogUmEgZHVvbmcsIG5ndW9pIGRhbiBraG9uZyBraG9pIGJhdCBhbiB2b2kgbmh1bmcgY2FpICJi YXkiIG5odSB0aGUgbmF5ISAtIG5hcCBobyANCmdhIG5obyBjYW8gaG9uIG1hdCBkdW9uZyB0cmVu IFhhIGxvIEhhIE5vaS4gQW5oOiBUaGFpIFBodW9uZykNCihBbmg6IFZhIGNvbmcgdGhvYXQgbnVv YyBjdW5nIHRybyB0aGFuaCAiYmF5IiBnaWV0IG5ndW9pIGtoaSBtdWEgbG9uLCBkdW9uZyBuZ2Fw LiANCkFuaDogVGhhaSBQaHVvbmcpDQoNCiJEbyB0aW5oIGNoYXQgdGFpIGxhcCB0YW0sIG5oYSB0 aGF1IHRoaSBjb25nIGtob25nIHR1YW4gdGh1IGNhYyB5ZXUgY2F1IGt5IHRodWF0IGRhbiBkZW4g DQpjYWMgc3UgY28gbHVuIHN1dCBtYXQgZHVvbmcuIEN1IHRoZSwgdGFpIGhlbSAzODYgTGUgVmFu IFN5LCBtdWEgbG9uIGRvbmcgY2hheSBuZ2FtIA0KdHJvbmcgY29uZyBwaGEgdm8ga2V0IGNhdSBj b25nIGN1IGRhbiBkb25nIHRhbSBnYXkgbHVuIHN1dCBtYXQgZHVvbmcuIEhheSBobyB0dSB0aGFu IG8gDQpuZ2EgdHUgUGh1IE5odWFuIGRvIHR1b25nIGdhY2ggeGF5IHRhbSBjaGFuIGRhdSBjb25n IGJpIHNhcCB2aSBtdWEgbG9uLCBkYXQgZGEgdHJvaSANCnZhbyBjb25nIGxhbSBobyBoYW0gZWNo IiAtIGRhaSBkaWVuIG1vdCBuaGEgdGhhdSBkYW4gY2h1bmcuIA0KDQpPIGNhYyBobyB0dSB0aGFu IGtoYWMsIG5oYSB0aGF1IGdpYWkgdGhpY2ggZG8gdGhvaSBnaWFuIGRhbyBkdW9uZyBrZW8gZGFp LCBtdW9uZyBkYW8gDQpzYXUgZ2F5IGNoYW4gZG9uZyBjYWMgY29uZyB0cmluaCBsYW4gY2FuIG5o dSBvbmcgbnVvYywgY2FwIGRpZW4gbHVjLCBjYXAgZGllbiB0aG9haS4uLiANCmxhbSBsdW4gc3V0 IG1hdCBkdW9uZy4gTmdvYWkgcmEsIG5oaWV1IHR1eWVuIGNvbmcgbmhhbmggdGhpIGNvbmcgdHJv bmcgZGVtLCBzYW5nIHJhIA0KcGhhaSB0YWkgbGFwIHRyYSBtYXQgZHVvbmcgY2hvIGdpYW8gdGhv bmcgZGEga2hvbmcgZGFtIGJhbyBreSB0aHVhdCwgZGFuIGRlbiBuZ3V5ZW4gDQpuaGFuIGdheSBz dXAgaG8gdHUgdGhhbi4gDQoNCiJWaSB0aGUsIG5odW5nIHR1eWVuIGR1b25nIG1vaSBsYW0gdmEg ZGFvIGxlbiBuaHUgdmF5IHNhdSBraGkgZHVhIHZhbyBzdSBkdW5nIHNlIGJpIA0KbHVuIHN1cCBt b3Qgc28gdmkgdHJpIGxhIGtob25nIHRyYW5oIGtob2kuIE1hdCBkdW9uZyBzZSBvbiBkaW5oIHNh dSB2YWkgbmFtLCB0cm9uZyANCmtob2FuZyB0aG9pIGdpYW4gYmFvIGhhbmggY3VhIGNvbmcgdHJp bmgiIC0gdmkgY2FuIGJvIENETSBjaG8gYmlldC4gDQoNCkNodWEgeHUgbHkgaGluaCBzdSwgY2h1 YSBzbyEgDQoNCkxpZW4gcXVhbiBkZW4gdmFuIGRlIHh1IHBoYXQsIGRvbiB2aSB0dSB2YW4gZ2lh bSBzYXQgZHUgYW4gTmhpZXUgTG9jIC0gVGhpIE5naGUgY2hvIA0KcmFuZyBtb2kgaGluaCB0aHVj IHh1IHBoYXQgZG9pIHZvaSBjYWMgbmhhIHRoYXUgdmkgcGhhbSwgY2hheSB5IGRldSBkdW9jIGFw IGR1bmcuIE1vaSANCmRheSwgbXVjIHBoYXQgY2FvIGxlbiBkZW4gMjAgdHJpZXUgZG9uZy9uZ2F5 LCBjdSAxMCBuZ2F5IGNob3Qgc28gbW90IGxhbiAodG9uZyBtdWMgcGhhdCANCjIwMCB0cmlldSBk b25nKS4gIlRoZSBuaHVuZyBjbyBtb3Qgc28gbmhhIHRoYXUgcXV5ZXQuLi4gY2hheSB5LCB2YW4g dmkgcGhhbSBraGllbiANCmNodW5nIHRvaSBkYXUgZGF1IiAtIG1vdCBjYW4gYm8gQ0RNIHRodWEg bmhhbi4gSGllbiA0IG5oYSB0aGF1IGRhbmcgY2hpdSBtdWMgcGhhdCANCm5heSBsYSBMaWVuIGRh bmggeGF5IGR1bmcgVklDLCBUb25nIENvbmcgdHkgWGF5IGR1bmcgSGEgTm9pLCBUb25nIENvbmcg dHkgeGF5IA0KZHVuZyBzbyAxIHZhIExpZW4gZGFuaCBEcmVjby1DaWVuY28gNS4gDQoNCkRvbmcg dGhvaSwgQlFMIGR1IGFuIE5oaWV1IExvYyAtIFRoaSBOZ2hlIGRhbmcgeGVtIHhldCB0aW0gbmhh IHRoYXUgdGhheSB0aGUgVG9uZyANClhheSBkdW5nIEhhIE5vaSB0aGkgY29uZyB0cmVuIHR1eWVu IEJ1aSBIdXUgTmdoaWEsIHF1YW4gQmluaCBUaGFuaCBkbyB0aWVuIGRvIGNoYW0sIA0KdGhpIGNv bmcgYXUuLi4ga2hpZW4gY29uIGR1b25nIG5heSB0aGFuaCBub2kgImJheSIgdGFpIG5hbi4gRG9u ZyB0aG9pLCBsYW5oIGRhbyBTbyANCkdUVlQgVFAgY3VuZyBjaG8gYmlldCBkYSBjaGkgZGFvIHRo YW5oIHRyYSBzbywgQlFMIGR1IGFuIHhlbSB4ZXQgY2F0IGhvcCBkb25nIGN1YSANCm5oYSB0aGF1 IExpZW4gZGFuaCBEcmVjbyAtIENpZW5jbyA1IG5ldSB0aWVwIHR1YyB2aSBwaGFtLCBuaGF0IGxh IHNhdSB2dSBobyB0dSB0aGFuIA0KIm51b3QiIHhlIHRheGkgbyBkdW9uZyBMZSBWYW4gU3ksIFEu My4gDQoNClRob25nIGtlIGN1YSBTbyBHVFZUIHR1IGRhdSB0aGFuZyA3LzIwMTAgZGVuIG5heSBj byBnYW4gMjAgdnUgc3VwIG1hdCBkdW9uZy4gSGllbiANCm1vdCBkb2FuIHRoYW5oIHRyYSBkbyBT byBHVFZUIGxhcCBkYW5nIHRvbmcga2llbSB0cmEsIHJhIHNvYXQgbGFpIG5ndXllbiBuaGFuIGNh YyB2dSANCnN1dCBsdW4gbWF0IGR1b25nLCB0YW8gaG8gdHUgdGhhbiBkZSBkb2Egbmd1b2kgZGkg ZHVvbmcuIA0KDQooQW5oOiBOaHVuZyBjYWkgImJheSIgZGF5IHJheSB0cmVuIGR1b25nLCAoZ2Fj aCBkYSBkdW9jIGRvIGRvbmcgdHJlbiBxdW9jIGxvIDEzKS4NCihBbmg6IFZhIG5odW5nIGhvIHR1 IHRoYW4gY3UgeHVhdCBoaWVuIGJhdCB0aGluaCBsaW5oIHRyZW4gZHVvbmcuICkgDQoNClNhdSBu aHVuZyB2dSB0YWkgbmFuIHRodW9uZyB0YW0geGF5IHJhIHRyZW4gY2FjIHR1eWVuIGR1b25nIG8g U2FpIEdvbiwgbmd1b2kgZGFuIGJhdCANCmFuIGtoaSByYSBkdW9uZyBuaHVuZyBsYWkga2hvbmcg YmlldCBwaGFpIGtldSBhaT8gDQoNClR1IGtob2FuZyAyLTMgbmFtIHRydW9jLCB2YW4gZGUga2ll bSBkaWVtIHRyYWNoIG5oaWVtIGN1IHRoZSBjdWEgY2FjIGNhIG5oYW4sIGRvbiB2aSANCmxpZW4g cXVhbiBkYSBkdW9jIGRlIGNhcC4gVGhhbSBjaGkgdmllYyB4dSBseSBoaW5oIHN1IG5oYSB0aGF1 IGN1bmcgZHVvYyBsYW5oIGRhbyBTbyANCkdUVlQga2hhbmcgZGluaCB0cm9uZyBjYWMgY3VvYyBn aWFvIGJhbiB2b2kgYmFvIGNoaS4gVGhlIG5odW5nIHNhdSBoYW5nIGxvYXQgc3UgY28gdHUgDQp0 ZSBuZ2EsIGxhdCB4ZSBkZW4gY2hldCBuZ3VvaSwgY2h1YSBjbyBjYSBuaGFuIGRvbiB2aSBuYW8g YmkgdHJ1eSB0bywgeHUgbHkgaGluaCBzdS4gDQoNCkx1YXQgc3UgVGhhaSBWYW4gQ2h1bmcsIFZh biBwaG9uZyBEb2FuIEx1YXQgc3UgKExTKSBUUCBjaG8gcmFuZywgY2h1YSB4YXkgcmEgdGFpIG5h biANCmNoZXQgbmd1b2kgbWEgY2hpIGNhbiB0aGlldCBoYWkgdGFpIHNhbiwgbmd1b2kgZGFuIGRh IGNvIHRoZSBraG9pIGtpZW4uIFR1eSBuaGllbiwgY28gdGhlIA0Kbm9pIGJpZW4gcGhhcCBjaGUg dGFpIGhpZW4gbmF5IGNodWEgbmFuZyBraGllbiBuaGEgdGhhdSAibG9uIGx1YXQiLiANCg0KVGh1 YyB0ZSwgdHJvbmcgYmF0IGt5IGR1IGFuIG5hbyBkZXUgeGFjIGRpbmggcm8gcmFuZyB0cmFjaCBu aGllbSBjdWEgdHVuZyBkb24gdmkgdHUgbmhhIA0KdGhhdSwgdHUgdmFuIGdpYW0gc2F0LCBjaHUg ZGF1IHR1IGhheSBjbyBxdWFuIHF1YW4gbHkuIE5ldSBjb25nIHRyaW5oIGRhbmcgdGhpIGNvbmcg dGhpIA0KbmhhIHRoYXUgc2UgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIGtoaSB0YWkgbmFuIHhheSBy YTsgY29uIGNvbmcgdHJpbmggZGEgYmFuIGdpYW8sIG5naGllbSANCnRodSBuZXUgY28gdGFpIG5h biBjbyBxdWFuIHF1YW4gbHkgc2UgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIHZvaSBuZ3VvaSBkYW4u Li4NCg0KVGhlbyBuZ3V5ZW4gdGFjLCBkb24gdmkgbmFvIHRhYyB0cmFjaCBkZSB4YXkgcmEgdGFp IG5hbiBuZ2hpZW0gdHJvbmcsIGNoZXQgbmd1b2kgc2UgYmkgeHUgDQpseSBoaW5oIHN1LiAiVmkg dGhlLCBuZXUgbmd1b2kgZGFuIG11b24ga2llbiB0b2kgc2FuIHNhbmcgaG8gdHJvIHZlIG1hdCBw aGFwIGx5IGRlIG5ndW9pIA0KZGFuIG5hbSBybyBjYW4ga2llbiBhaTogbmhhIHRoYXUsIGNodSBk YXUgdHUsIHR1IHZhbiBnaWFtIHNhdCBoYXkgZG9uIHZpIHF1YW4gbHk/IiAtIGx1YXQgDQpzdSBD aHVuZyBjaG8gYmlldC4NClBoYWkgY2hhbmcgZG8gY2h1YSBjbyBhaSBiaSB0cnV5IHRvLCBjaHVh IGR1IHN1YyByYW4gZGUgbmVuIHRpbmggbWFuZyBjdWEgbmd1b2kgZGFuIHZhbiANCmJpIGRhbmgg Y3VvYyB2b2kgc3UgY2h1IHF1YW4sIHRhYyB0cmFjaD8gDQoNCihBbmg6IE5oaWV1IGhvIHR1IHRo YW4geHVhdCBoaWVuIGdpdWEgZHVvbmcga2hpZW4gY2FjIG5oYSB0aGF1Li4uIGdpYXQgbWluaC4g TW90IGNhbiBibyANCm5oYSB0aGF1IHRoaSBjb25nIGR1IGFuIE5oaWV1IExvYyAtIFRoaSBOZ2hl IHRpZXQgbG8sIGRvbiB2aSBuYXkgZGEgbGFwIGRvYW4ga2llbSB0cmEgDQpyaWVuZyBkZSByYSBz b2F0IGNhYyB0dXllbiBkdW9uZyB2dWEgaG9hbiB0aGFuaCB4ZW0gY28gYmkgbHVuIHN1dCBuaGFt IGtoYWMgcGh1YyBzb20uIA0KIk5ldSBwaGF0IGhpZW4gc29tIGNhYyB2ZXQgbnV0LCBsbyBob25n IHRyZW4gZHVvbmcgdGhpIHN1dCBsdW4gc2Uga2hvbmcgbmdoaWVtIHRyb25nIiAtIGt5IHN1IG5o YSB0aGF1IG5heSBub2kuKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFn ZXMvMjAxMDQzLzIwMTAxMDI0MTAyNzE2LmFzcHggVHJpIFF1YW5nIDI0LzEwLzIwMTAgMTA6Mjcg DQoNCkNvbmcgYW46IDU1MCB4ZSB0dSB0YXAgZ2F5IG1hdCB0cmF0IHR1IG8gVFAgSENNIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDMvMjAxMDEwMjIxODUx MTIuYXNweCBOZ3V5ZW4gTWkgMjIvMTAvMjAxMCAxODo1MSANCg0KQ29uZyBhbjogRHVhIHhlIGto b25nIGhldCwgImhvIHR1IHRoYW4iIHRhbmcgdGhlbSBvIFRQIEhDTSANCiAgDQooVE5PKSBUaGFu ZyBhbiB0b2FuIGdpYW8gdGhvbmcgKEFUR1QpIHRhaSBUUC5IQ00gZGEga2V0IHRodWMuIFRoZSBu aHVuZywgdmFuIGRlIA0KIm5vbmciIGxhIG5hbiBkdWEgeGUgZGEga2hvbmcgYmkgZGF5IGx1aS4g VGhlbSB2YW8gZG8sIGdpYW8gdGhvbmcgdGFpIFRQIGxhaSBjYW5nIHRoZW0gDQpuZ3V5IGhpZW0g Ym9pIHN1IHh1YXQgaGllbiBsaWVuIHR1YyBjdWEgbmh1bmcgImhvIHR1IHRoYW4iIG1hIGR1b25n IG5odSBjYWMgY28gcXVhbiANCmNodWMgbmFuZyBraG9uZyB0aGUga2llbSBzb2F0IGR1b2MuIA0K DQpCYXQgbHVjIHZvaSBkdWEgeGUgDQoNCkhpZW4gbmF5LCBjYWMgZGllbSAibm9uZyIgZHVhIHhl IGRhIHRyYWkgcmEgdHJlbiA1MCB0dXllbiBkdW9uZyB0aHVvYyBkaWEgYmFuIDE0IHF1YW4sIA0K aHV5ZW4gY3VhIFRQLkhDTS4gVGluaCBoaW5oIHRoYW5oIHRoaWV1IG5pZW4gdHUgdGFwIGR1YSB4 ZSwgZ2F5IHJvaSB0cmF0IHR1IGNvbmcgY29uZyANCnZhbiB0aWVwIHR1YyBkaWVuIGJpZW4gcGh1 YyB0YXAgdmEgY2h1YSBjbyBkYXUgaGlldSBiaSBkYXkgbHVpLg0KDQooQW5oOiBOaHVuZyAieWVu IGh1bmciIHhhIGxvIGtobyB0cmkgLSBBbmg6IE5naGlhIFBoYW0pDQoNCkRvaSB0dW9uZyB2aSBw aGFtIGNvIGRvIHR1b2kgdHUgMTQtMjAgdHVvaSwgc3UgZHVuZyBjYWMgbG9haSB4ZSBnYW4gbWF5 IGR1b2MgZG9uIGRlbiwgDQp4b2F5IG5vbmcuLi4gVHUgMjIgZ2lvIGRlbSBkZW4gNiBnaW8gc2Fu ZyBob20gc2F1LCBuaHVuZyAieWVuIGh1bmciIHhhIGxvIG5heSB2YW4gDQpnYXkgbmFvIGxvYW4g dHJlbiBkdW9uZyBwaG8sIGFuaCBodW9uZyBkZW4gQVRHVCBjdWEgbmd1b2kgZGFuIHZhIGtoaSBi aSB0cnV5IGJhdCANCnRoaSBzYW4gc2FuZyBjaG9uZyBsYWkgbmd1b2kgdGhpIGhhbmggY29uZyB2 dS4gDQoNClRyb25nIGtoaSBkbywgY2FjIGx1YyBsdW9uZyBDU0dUIHZhbiB0aGlldSBkb25nIGJv IHRyb25nIHZpZWMgY2hvbmcgZHVhIHhlLiBLaGkgY2FjIA0KcXVhbiAxLCA1LCBCaW5oIFRoYW5o IHRhcCB0cnVuZyBsdWMgbHVvbmcgdHJ1eSBkdW9pLCBuZ2FuIGNoYW4gZHVhIHhlIHRoaSBjYWMg ZG9pIHR1b25nIA0KbGFpIGNodXllbiBzYW5nIGRpYSBiYW4ga2hhYyBuaHUgY2FjIHF1YW4gMywg NCB2YSBQaHUgTmh1YW4uIERhYyBiaWV0LCBraHUgdnVjIFEuQmluaCANClRoYW5oIHZhbiBjb24g ZGllbiBiaWVuIHBodWMgdGFwLiANCg0KQ2hpZXUgbmF5ICgyMi4xMCksIEJhbiBBVEdUIFRQLkhD TSBkYSB0b25nIGtldCB0aGFuZyBBVEdUIDIwMTAgdm9pIGNodSBkZSAiVmFuIA0KaG9hIGdpYW8g dGhvbmcgdmkgc3UgYW4gdG9hbiBjdWEgdGhhbmgsIHRoaWV1IG5oaSB2YSBjb25nIGRvbmciLg0K DQpUaGVvIGJhbyBjYW8gdGhhbmggdGljaCBkYXQgZHVvYyBjdWEgQmFuIEFUR1QsIHRyb25nIHRo YW5nIEFUR1QgbHVjIGx1b25nIGNhbmggc2F0IA0KZ2lhbyB0aG9uZyAoQ1NHVCkgZGEga2llbSB0 cmEsIHBoYXQgaGllbiB2YSB4dSBseSBob24gMTQzLjUwMCB0cnVvbmcgaG9wIHZpIHBoYW0gbHVh dCANCmdpYW8gdGhvbmcgZHVvbmcgYm8sIHRodSB0cmVuIDIxIHR5IGRvbmcsIHRhbSBnaXUgaG9u IDQuMjAwIHhlIHZpIHBoYW0gdmEgdHVvYyBnYW4gDQo0LjAwMCBnaWF5IHBoZXAgbGFpIHhlLg0K DQpDdW5nIHRyb25nIHRoYW5nIEFUR1QgKHRoYW5nIDkpLCBkYSB4YXkgcmEgODUgdnUgdGFpIG5h biBnaWFvIHRob25nIHRyZW4gZGlhIGJhbiANClRQLkhDTSwgdGFuZyA5JSBzbyB2b2kgY3VuZyBr eSBuYW0gMjAwOS4gDQoNClRyb25nIGRvLCBjYWMgbG9pIHZpIHBoYW0gdGFwIHRydW5nIHZhbzog dmkgcGhhbSB0b2MgZG8sIGRpIGtob25nIGR1bmcgcGhhbiBkdW9uZywgbGFuIA0KZHVvbmc7IGNv IG5vbmcgZG8gcnVvdSBiaWEga2hpIGRpZXUga2hpZW4gcGh1b25nIHRpZW4gZ2lhbyB0aG9uZywg a2hvbmcgZG9pIG11IGJhbyANCmhpZW0sIGRpIGJvIHF1YSBkdW9uZyBraG9uZyBkdW5nIHF1eSBk aW5oLiBEYXkgbGEgbmh1bmcgaGFuaCB2aSB2aSBwaGFtIHRodW9uZyBkYW4gDQpkZW4gdGFpIG5h biBnaWFvIHRob25nLg0KDQpLZXQgcXVhIGxhIHF1YSBtb3QgdGhhbmcgdHJpZW4ga2hhaSB0aGFu ZyBBVEdUIHZvaSBtdWMgdGlldSB2YSBjYWMgYmllbiBwaGFwIGR1b2MgZGUgDQpyYSBsYSAic2Ug bWFuaCB0YXksIGdpYWkgcXV5ZXQgbmFuIGR1YSB4ZSIgdGhpIFRQLkhDTSBjaGkga2VvIGdpYW0g ZHVvYy4uLiAxIHZ1IHR1IHRhcCANCmR1YSB4ZSBzbyB2b2kgdGhhbmcgdHJ1b2MuDQoNCkdpYWkg dGhpY2ggdmUgdmFuIGRlIG5heSwgUGhvbmcgQ1NHVCBkdW9uZyBibywgZHVvbmcgc2F0LCBDb25n IGFuIFRQLkhDTSBjaG8gcmFuZyANCmRvOiBuaGlldSBub2kgY2h1YSBxdWFuIHRhbSBkdW5nIG11 YyBkb2kgdm9pIHZpZWMgZ2lhaSBxdXlldCB0ZSBuYW4gZHVhIHhlLCBjaGkgZGF0IGdpYWkgDQpw aGFwIGNob25nIHZhIGRhdCBuYW5nIHRyYWNoIG5oaWVtIGNobyBDU0dUIG1hIHRoaWV1IGdpYWkg cGhhcCBwaG9uZyBuZ3VhLg0KDQpWaSB2YXksIHRoZW8gb25nIFZvIFZhbiBOaHVhbiwgVHJ1b25n IHBob25nIENTR1QgZHVvbmcgYm8sIGR1b25nIHNhdCwgQ29uZyBhbiANClRQLkhDTSwgcGhhaSB4 ZW0gdGluaCB0cmFuZyBuYXkgbGEgbW90IHRlIG5hbiB4YSBob2ksIGNhbiBkdW9jIHR1eWVuIHRy dXllbiB2YSBjaHVuZyANCnN1YyBnaWFpIHF1eWV0IGN1YSBuaGlldSBjYXAgY2hpbmggcXV5ZW4s IGNvIHF1YW4gY2h1YyBuYW5nLg0KDQoiUGhvbmcgQ1NHVCBkdW9uZyBibywgZHVvbmcgc2F0IHNl IHBob2kgaG9wIGRlIGh1eSBkb25nIHRvaSBkYSBjYWMgbHVjIGx1b25nIG5odSANCmNhbmggc2F0 IGhpbmggc3UsIGNhbmggc2F0IHBoYW4gdW5nIG5oYW5oLCBjb25nIGFuIHF1YW4gaHV5ZW4sLi4u IHRvIGNodWMgbmdhbiBjaGFuLCANCnRydXkgYmF0IHRyaWV0IGRlIGNhYyBkb2kgdHVvbmcgZHVh IHhlIG5heSIsIG9uZyBOaHVhbiBjaG8gYmlldC4NCiANCihBbmg6IERhbSBkb25nIHR1IHRhcCB0 cmVuIGR1b25nIGNobyBkdWEgeGUgLSBBbmg6IE5naGlhIFBoYW0pDQoNCkJlbiBjYW5oIGRvLCBD b25nIGFuIFRQLkhDTSBzZSB0aWVwIHR1YyBnaWFpIHF1eWV0IGNhYyBtYW0gbW9uZyBwaGF0IHNp bmggdGUgbmFuIA0KbmF5IG5odToga2llbSBzb2F0IGNoYXQgY2hlIGNhYyBoYW5nIHF1YW4gYW4g dW9uZyBzYXUgMjMgZ2lvLCBxdWFuIGJhciwgY2EgcGhlLCB2dSANCnRydW9uZzsgZ2lhaSB0YW4g dmllYyB0dSB0YXAsIGNvIHZ1IGR1YSB4ZTsga2llbSB0cmEsIHR1eWVuIHRydXllbiBjYWMgZGll bSBzdWEgeGUga2hvbmcgDQpkb24gZGVuLCB4b2F5IG5vbmcgZGUgdGllcCB0YXkgY2hvIGNhYyBk b2kgdHVvbmcgZHVhIHhlOyBraWVtIGRpZW0sIGdpYW8gZHVjIGNhYyBkb2kgDQp0dW9uZyBkdWEg eGUgbmdheSB0YWkgdG8gZGFuIHBobywgbm9pIGN1IHRydSxsYXAgaG8gc28geHUgcGhhdCwuLi4N Cg0KIkhvIHR1IHRoYW4iOiBjaHVhIGJpZXQgeHUgc2FvDQoNCk1hdCBraGFjLCBjdW5nIHR1IHRo YW5nIHF1YSwgbmd1b2kgZGFuIFRQLkhDTSBjb24gY28gdGhlbSBtb3Qgbm9pIGxvIG51YSBraGkg bHV1IA0KdGhvbmcgdHJlbiBkdW9uZy4gRG8gbGEgc3UgeHVhdCBoaWVuIGN1YSBoYW5nIGxvYXQg aG8gdHUgdGhhbi4gQ2hvIGRlbiB0aG9pIGRpZW0gaGllbiBuYXkgKDIyLjEwKSwgZGEgY28ga2hv YW5nIDI3ICJobyB0dSB0aGFuIiBsbyByYSB0cmVuIG1hdCBkdW9uZyB2YSAiYmF5IiBjYWMgcGh1 b25nIA0KdGllbiBnaWFvIHRob25nLg0KDQpUcm9uZyBkbywgbG9uIG5oYXQgbGEgImhvIHR1IHRo YW4iIGNvIGRpZW4gdGljaCBnYW4gMTBtMiB2YSBjaGlldSBzYXUgaG9uIDNtLiBDaGllYyBobyAN Cnh1YXQgaGllbiB0YWkgaGVtIDM4NiBMZSBWYW4gU3kgKFEuMywgVFAuSENNKSwgdHJvbmcgY29u IG11YSBsb24gY2hpZXUgMTQuOSBnYW4gDQpuaHUgIm51b3QgY2h1bmciIGNoaWVjIHRheGkgVmlu YXN1biA3IGNoby4gRGF5IGxhICJtb24gcXVhIiBjdWEgQmFuIFF1YW4gbHkgRHUgYW4gDQooQlFM REEpIFZlIHNpbmggbW9pIHRydW9uZyBUUC5IQ00gZGUgbGFpIHNhdSBraGkgbG8gY290IGNvbmcg dHJpbmggZGEgcnV0IGRpLg0KDQooQW5oOiBCYW5oIHhlIHRhaSBsb3QgImhvIHR1IHRoYW4iIC0g QW5oOiBOZ29jIFRobykNCg0KR2FuIGRheSBuaGF0IGxhICJobyB0dSB0aGFuIiB4dWF0IGhpZW4g dmFvIHRvaSBxdWEgKDIxLjEwKSB0cmVuIGR1b25nIEx1eSBCYW4gQmljaCANCnRodW9jIFAuVGFu IFRoYW5oLCBRLlRhbiBQaHUgKFRQLkhDTSkuIEhvIGxhbSBiYW5oIHhlIHRhaSBiaWVuIHNvIDc3 SC05ODE5IGNobyANCmRheSBoYW5nIHN1cCB4dW9uZywga2hpZW4geGUgYmkgbGF0IG5oYW8uDQoN ClRoZSBuaHVuZywgY2hvIGRlbiB0aG9pIGRpZW0gbmF5LCBzYXUgbmhpZXUgdnUgeGUgY28gc3Vw IGhvLCB0cmEgbG9pIGJhbyBjaGkgdmUgcGh1b25nIA0KYW4geHUgbHksIFNvIEdUVlQgVFAuSENN IHZhbiBjaGkgY28gbW90IHF1YW4gZGllbSBsYTogdHJlbiBtYXQgZHVvbmcgVFAuSENNIA0KaGll biBuYXkgY28gcmF0IG5oaWV1IGNvbmcgdHJpbmggZGFuZyB0aGkgY29uZywgY3VhIG5oaWV1IGR1 IGFuLCBCUUxEQSwgbmhhIHRoYXUga2hhYyANCm5oYXUuIENoaW5oIHZpIHRoZSwgdGFpIG5hbiB4 YXkgcmEgdGFpIHZpIHRyaSBjdWEgbmhhIHRoYXUsIEJRTERBIG5hbyB0aGkgbmd1b2kgZG8gY2hp dS4NCk5odSB0aGUsIGtoaSAiaG8gdHUgdGhhbiIgeHVhdCBoaWVuIHRoaSBiaWVuIHBoYXAga2hh YyBwaHVjIGhhdSBxdWEgdmFuIGNoaSBsYSBkb24gdmkgdGhpIA0KY29uZyBiaXQsIGxhcCBobyBs YWkuDQogDQooQW5oOiAiSG8gdHUgdGhhbiIgLSBuaHVuZyAicXVhaSB2YXQiIG1vaSBkZSBkb2Eg YW4gdG9hbiBnaWFvIHRob25nIC0gQW5oOiBOZ3V5ZW4gTWkpDQoNClRyYSBsb2kgcGhvbmcgdmFu IGN1YSBwaG9uZyB2aWVuIFRoYW5oIE5pZW4gT25saW5lLCBreSBzdSwgdGhhYyBzaSBQaGFuIFBo dW5nIFNhbmgsIA0KUGhvIGNodSB0aWNoIHRodW9uZyB0cnVjIEhvaSBLaG9hIGhvYyBreSB0aHVh dCB4YXkgZHVuZyBUUC5IQ00sIGRhbmggZ2lhOiBDbyBjYWMgDQoiaG8gdHUgdGhhbiIgdHJlbiBs YSBkbyBkb24gdmkgdGhpIGNvbmcgdGFpIGxhcCBtYXQgZHVvbmcga2hvbmcgZHVuZyBjaHVhbiwg cXV5IHRyaW5oLCANCnlldSBjYXUga3kgdGh1YXQuIERvIGxhIHN1IHZvIHRyYWNoIG5oaWVtIGN1 YSBuaGEgdGhhdSwgZG9uIHZpIGdpYW0gc2F0IHZhIGNhIGNvIHF1YW4gDQpxdWFuIGx5LiBOZXUg Y2hpIHh1IGx5IHRoZW8ga2lldSAiY2h1YSBjaGF5IiwgaG8geHVhdCBoaWVuIHRoaSBsYXAgbGFp IG1hIGtob25nIGtpZW0gdHJhLCANCnh1IGx5IGR1bmcgcXV5IHRyaW5oIHRoaSB0aW5oIHRyYW5n IHNlIHRpZXAgZGllbiBuaHUgY3UuIA0KDQpodHRwOi8vd3d3LnZubGF3ZmluZC5jb20udm4vZGVm YXVsdC5hc3B4P3RhYmlkPTE3MCZJRD0xODEzICgyMToyMiwgMTgvMDcvMjAwNSkNCg0KQ29uZyBh bjogQm9uIENhbmggc2F0IGdpYW8gdGhvbmcgRG9uZyBOYWkgbmhhbiBob2kgbG8gDQoNCmh0dHA6 Ly9kYW50cmkuY29tLnZuL2MyNS9zMTcwLTMwMTE1MC90YW0tZ2lhbS10aHVvbmctdXktY29uZy1h bi1uaGFuLWhvaS1sby1ob24tMS10eS1kb25nLmh0bQ0KDQpDb25nIGFuOiBUaHVvbmcgdXkgQ29u ZyBhbiBuaGFuIGhvaSBsbyBob24gMSB0eSBkb25nIChiYW8ga2UgY2hvIG5oaWV1IGNodSBwaHVv bmcgDQp0aWVuIHZhbiB0YWkgcXVhIGtobywgcXVhIHRyb25nIHRhaSB0cmVuIGRpYSBiYW4gdGlu aCBWaW5oIExvbmcgZGUgbmhhbiBob2kgbG8uKSANCg0KaHR0cDovL3d3dy52dWlxdWEuY29tL2Mz MS8yODg4NDgvdHJ1b25nLWNvbmctYW4tcGh1b25nLWt5LXRyYXQtdm9pLXRpZW4tdGV0LWRvYW5o LW5naGllcCAxMi40NHBtIDAyLTAzLTIwMTANCg0KQ29uZyBhbjogVHJ1b25nIGNvbmcgYW4gcGh1 b25nIGt5ICd0cmF0JyB2b2kgdGllbiBUZXQgZG9hbmggbmdoaWVwIChwaHVvbmcgUGh1b25nIExp ZXQsIFRoYW5oIFh1YW4sIEhhIE5vaSkNCg0KaHR0cDovL2Rhbmx1YW4ub3JnL25vZGUvNTcyMiAg DQoNCkNvbmcgYW46IENoYW4gZHVuZyBUcmFuIFF1eSBUaGFuZywgdGh1IGt5IEJvIHRydW9uZyBC byBDb25nIEFuDQoNCkNPTkcgSE9BIFhBIEhPSSBDSFUgTkdISUEgVklFVCBOQU0NCkRvYyBsYXAg LSBUdSBkbyAtIEhhbmggcGh1Yw0KDQpIYSBOb2ksIG5nYXkgMjUgdGhhbmcgNCBuYW0gMjAxMA0K DQpLaW5oIGd1aTogRC9jIExlIEhvbmcgQW5oLCBCbyB0cnVvbmcgQm8gQ29uZyBhbg0KDQpUb2kg bGEgbW90IGNhbiBibyBDb25nIGFuIFRwLiBIYSBOb2kgZGEgbmdoaSBodXUgeGluIGR1b2MgdHJp bmggYmF5IHZvaSBjYWMgZG9uZyBjaGkgDQpsYW5oIGRhbyBCbyBDb25nIGFuIG1vdCB2aWVjIG5o dSBzYXUgKHhpbiBwaGVwIGR1b2MgZ2lhdSB0ZW4sIGtob25nIHBoYWkgdmkgc28gYWkgdHJhIA0K dGh1IG1hIGtob25nIG11b24gY2FjIGRvbmcgY2hpIHBoYWkgYmFuIHRhbSBkZW4gbmd1b2kgeGUg Y2hpZXUgbmF5IGxhbSBnaSkuDQoNClZlIGh1dSByb2ksIHRvaSBjbyBkaWV1IGtpZW4gdGhhbSBn aWEgbmhpZXUgY2F1IGxhYyBibywgaG9pIGRvYW4sIGdhcCBnbyBjYWMgYmFuIGJlIGxhbyANCnRo YW5oLCBjYWMgYW5oIGVtIGRvYW5oIG5naGllcCBuZW4gYmlldCBkdW9jIGtoYSBuaGlldSB0aG9u ZyB0aW4gY3VhIHRob2kgY3VvYy4gVGhvaSANCmdpYW4gdnVhIHF1YSwgcmF0IG5oaWV1IGFuaCBl bSBkb2FuaCBuZ2hpZXAgYm9jIGJhY2ggdGFtIHN1IHZvaSB0b2kgcmFuZywgYW5oIFF1eSANClRo YW5nICh0aHUga3kgZG9uZyBjaGkgQm8gdHJ1b25nKSB0aHVvbmcgeHV5ZW4gZ2FwIGdvLCBlcCBj YWMgZG9hbmggbmdoaWVwIHVuZyBobyB0aWVuIA0Kdm9pIGNhYyBseSBkbyBjaHVhbiBiaSBsYW0g bmhhLCB4YXkgdHUgZHVvbmcsIG5oYSB0aG8gaG8sIGNvbiBkaSBob2MsIHNpbmggbmhhdCB2bywg Y29uKCEpLi4uIA0KTW9pIGxhbiBuaHUgdmF5LCBzbyB0aWVuIGxlbiBkZW4gaGFuZyB0cmFtIHRy aWV1IGRvbmcsIHRoYW0gY2hpIGNhIHR5IGJhYy4gQ2FjIA0KZG9hbmggbmdoaWVwIHJhdCBhbSB1 YyB2aSBiaSAidHJhbiBsb3QiIG1vdCBjYWNoIHRyYW5nIHRyb24sIG5odW5nIGtob25nIGRhbSBw aGFuIHVuZywgDQpkYW5oIHBoYWkgY2hpIHRpZW4sICJuZ2FtIGJvIGhvbiBsYW0gbmdvdCIuIEFu aCBRdXkgVGhhbmcgY29uIHF1YW4gaGUgY2hhdCBjaGUgdm9pIA0KY2FjIGFuaCBOaGFuaCAoZ2lh bSBkb2MgQ29uZyBhbiBIYSBOb2kpLCBDaHVuZyAiY29uIiAoVHJ1b25nIHBob25nIGNhbmggc2F0 IGhpbmggc3UsIEhhIE5vaSksIA0KYW5oIEx1YywgYW5oIEhhIChDdWMgY2FuaCBzYXQga2luaCB0 ZSksIEh1bmcgIk5nbyIgKGNvbiB0cmFpIGRvbmcgY2hpIA0KUGhhbSBRdXkgTmdvLCBUb25nIGN1 YyB0cnVvbmcgVG9uZyBjdWMgVkksIHRydW9jIGxhbSBhbiBuaW5oLCBuYXkgY2h1eWVuIHNhbmcg Y2FuaCANCnNhdCksIFF1YW5nICJiZW8iIChjb24gdHJhaSBkb25nIGNoaSBOZ3V5ZW4gRHVjIE5o YW5oLCBnaWFtIGRvYyBDb25nIGFuIFRwLiBIYSBOb2kpIA0KdmEgbmhpZXUgbmd1b2kga2hvbmcg cGhhaSBsYSBjYW4gYm8gY29uZyBhbiwgdHJvbmcgZG8gY28gSHVuZywgdGh1b25nIGdvaSBsYSBI dW5nICJnYW8iLCANCmhheSBIdW5nICJ0YSBubyIgaGluaCB0aGFuaCBuZW4gZHVvbmcgZGF5IGNo YXkgYW4sIGNoYXkgcXV5ZW4sIGNoYXkgY2h1YywgbGFtIA0KdGllbiBjYWMgZG9hbmggbmdoaWVw LiBNb3Qgc28gZG9uZyBjaGkgbyBWYW4gcGhvbmcgQm8gYmlldCB2YSBraG9uZyBkb25nIHRpbmgg dmllYyANCmxhbSBhbiBzYWkgdHJhaSBjdWEgYW5oIFF1eSBUaGFuZyB0aGkgYW5oIFRoYW5nIHRo dW9uZyB4dXllbiBkaSBub2kgeGF1LCB0dW5nIHRpbiBzYWkgc3UgDQp0aGF0LiBBbmggUXV5IFRo YW5nIGNvbiB0aHVvbmcgeHV5ZW4gY3VuZyBjYXAgdGhvbmcgdGluIGNobyBIdW5nICJ0YSBubyIg ZGUgZG9pIA0KdHVvbmcgbmF5IHN1IGR1bmcgdmFvIHZpZWMgZ2EgZ2FtLCBsYW0gdGllbiBuaHVu ZyBuZ3VvaSBkYW5nIHRodW9jIGRpZW4geGVtIHhldCBkZSANCmJhdCwgYm8gbmhpZW0gaG9hYyBr eSBsdWF0IHZhIGNhYyBkb2FuaCBuZ2hpZXAgY28gdmFuIGRlLiBIdW5nICJ0YSBubyIgZGkgZGF1 IGN1bmcgDQpraG9lIGxhICJjb24gbnVvaSIsICJlbSBudW9pIiwgImNoYXUgbnVvaSIgY3VhIG5o aWV1IGRvbmcgY2hpIGxhbmggZGFvIHRyb25nIEJvIENoaW5oIA0KdHJpLCBCYW4gQmkgdGh1LCBC byBDb25nIGFuIG5lbiBraG9uZyBpdCBuZ3VvaSBuZSBzbywgbmhvIHZhLiBUb2kgdGhheSBuaHVu ZyB2aWVjIGxhbSBkbyANCmN1YSBhbmggUXV5IFRoYW5nIHJhdCBzYWkgdHJhaSwgYW5oIGh1b25n IG5naGllbSB0cm9uZyBkZW4gdXkgdGluIGN1YSBEYW5nLCBOZ2FuaCBDb25nIGFuLCANCmNhbiBw aGFpIHh1IGx5IGNhbmcgc29tIGNhbmcgdG90Lg0KDQpWb2kgdGF0IGNhIGxvbmcga2luaCB0cm9u ZywgeWV1IG1lbiBkYW5oIGNobyBkb25nIGNoaSBCbyB0cnVvbmcsIHRvaSB4aW4gZHVvYyBkZSBu Z2hpIA0KZG9uZyBjaGkgTGUgSG9uZyBBbmgga2hvbmcgZGUgYW5oIFF1eSBUaGFuZyBsYW0gdGh1 IGt5IG51YSB2YSBraG9uZyBnaXUgYmF0IGN1IHZpIA0KdHJpIGxhbmggZGFvIG5hbyB0cm9uZyBu Z2FuaCBDb25nIGFuOyB4ZW0geGV0IHRyYWNoIG5oaWVtIG5odW5nIGNhIG5oYW4gdHJvbmcgbm9p IGJvIA0KY28gbmh1bmcgdmllYyBsYW0gdmkgcGhhbSBwaGFwIGx1YXQsIGt5IGx1YXQgY3VhIE5n YW5oLCB0cmFpIG5ndXllbiB0YWMgY3VhIERhbmcgbmV1IG8gdHJlbi4gDQpDaG8gcGhlcCBjbyBx dWFuIGRpZXUgdHJhIHZhbyBjdW9jLCB4dSBseSBIdW5nICJ0YSBubyIgdmUgaGFuaCB2aSBtYW8g ZGFuaCBuZ3VvaSANCnRoYW4gY3VhIGxhbmggZGFvIGNhbyBjYXAgY3VhIEJvIENoaW5oIHRyaSwg QmFuIEJpIHRodSwgQm8gQ29uZyBhbiBkZSBsYW0gbmh1bmcgdmllYyANCmxhbSBzYWkgdHJhaSwg dmkgcGhhbSBwaGFwIGx1YXQsIGFuaCBodW9uZyBuZ2hpZW0gdHJvbmcgZGVuIHV5IHRpbiBjdWEg RGFuZywgY3VhIE5nYW5oLiANCkNodW5nIHRvaSBjbyBkYXkgZHUgdGFpIGxpZXUgdmUgaG9hdCBk b25nIHZpIHBoYW0gcGhhcCBsdWF0IGN1YSBIdW5nICJ0YSBubyJ2YSBzYW4gc2FuZyANCmN1bmcg Y2FwIGNodW5nIGN1IG5ldSBjbyBxdWFuIGRpZXUgdHJhIGNoaW5oIHRodWMgdmFvIGN1b2MuDQoN ClhpbiBjaHVjIGRvbmcgY2hpIEJvIHRydW9uZyBtYW5oIGtob2UsIGdhcCBuaGlldSB0aGFuaCBj b25nIGhvbiBudWEgdHJvbmcgY3VvYyBzb25nLCBjb25nIHZpZWMuLy4NCg0KTW90IGNhbiBibyBD b25nIGFuIFRwLiBIYSBOb2kgbmdoaSBodXUNCg0KTm9pIG5oYW46IENhYyBkb25nIGNoaSBsYW5o IGRhbyBCbyBDb25nIGFuIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzUxMDM3 My9Db25nLWFuLXRoaS10cmFuLWd1aS10aHUteGluLXRpZW4tZG9hbmgtbmdoaWVwLmh0bWwgMjEv MDgvMjAxMCANCg0KQ29uZyBhbjogQ29uZyBhbiB0aGkgdHJhbiBndWkgdGh1ICd4aW4gdGllbicg ZG9hbmggbmdoaWVwIChvIFF1YW5nIEJpbmgpIA0KDQpUUCAtIFZpZW4gbGkgZG8ga2hvIGtoYW4g a2luaCBwaGkgdHJvbmcgdmllYyB0byBjaHVjIGt5IG5pZW0gNjAgbmFtIG5nYXkgdHJ1eWVuIHRo b25nLCANCkNvbmcgYW4gdGhpIHRyYW4gUXV5IERhdCwgaHV5ZW4gTWluaCBIb2EgKFF1YW5nIEJp bmgpIGRhIGd1aSB0aHUgInhpbiB0aWVuIiBjYWMgZG9hbmggDQpuZ2hpZXAgdmEgaG8ga2luaCBk b2FuaCB0cmVuIGRpYSBiYW4uIA0KDQpUcnVvbmcgQ29uZyBhbiB0aGkgdHJhbiBEaW5oIFRvYW4g TmdoZSBnaWFpIGJheToiS2luaCBwaGkgcm90IGNobyBob2F0IGRvbmcgY3VhIENvbmcgDQphbiB0 aGkgdHJhbiBlbyBoZXAgcXVhLCB0dSBkYXUgbmFtIHRvaSBnaW8gbGFpIHRpZXAgdG9pIDMgZG9h biBjYXAgdHJlbiB2ZSBjb25nIHRhYyBuZW4gcmF0IA0Ka2hvIGtoYW4uIENodW5nIHRvaSBuYXkg cmEgc2FuZyBraWVuIG5heSwgY2hpIHZpZXQgdGh1IG5nbyBjaHUgY28gYXAgZGF0IG11YyBkb25n IGdvcCANCmRhdSIgDQoNCk5oaWV1IGRvYW5oIG5naGllcCB2YSBobyBraW5oIGRvYW5oIHRyZW4g ZGlhIGJhbiB0aGkgcGhhbiBuYW4gdm9pIFRpZW4gUGhvbmc6ICJMYW0gYW4gDQpvIGNhaSBodXll biBuZ2hlbyBuYXkga2hvIGtoYW4gbGFtLiBNb2kgbmFtIGNvIGhhbmcgdHJhbSB0aHUgcGhhaSBx dXllbiBnb3AsIHVuZyBobyANCmRhIGR1IG1ldCBtb2kgbGFtIHJvaS4gSG8gbGEgY29uZyBhbiwg Y28gbmdhbiBzYWNoIE5oYSBudW9jIGNhcCBkZSBob2F0IGRvbmcgbWEgY29uIA0KZGkgeGluIHRo aSBraG8gY29pIHF1YS4gTWEga2hvbmcgY2hvIGhvIHRoaSBlIGtob25nIG9uIi4NCg0KRHUgbHVh biBsYSB2YXksIHR1eSBuaGllbiBraGkgdHJhbyBkb2kgdm9pIFBWIFRpZW4gUGhvbmcsIG9uZyBO Z2hlIGxhaSB0aWV0IGxvOiBDaHVuZyB0b2kgc2UgdGllcCB0dWMgInF1eWVuIGdvcCIuLi4NCg0K LQ0KaHR0cDovL25ndW9pLXZpZXQuY29tL2Fic29sdXRlbm0vYW5tdmlld2VyLmFzcD9hPTEwNzk0 MCZ6PTIgRnJpZGF5LCBGZWJydWFyeSAwNSwgMjAxMA0KDQpDb25nIEFuOiBWdSBuaGEgdmFuIFRy YW4gS2hhaSBUaGFuaCBUaHV5IGJpIGtldCBhbiB0dSAzIG5hbSBydW9pIC0gTmFuIG5oYW4gdGhh bmggYmkgY2FvDQoNCkhBIE5PSSAoTlYpIC0gTmhhIHZhbiwgbmhhIGJhbyB0dSBkbyBUcmFuIEto YWkgVGhhbmggVGh1eSBiaSBjaGUgZG8gSGEgTm9pIGtldCBhbiAzIA0KbmFtIHJ1b2kgdHUgdHJv bmcga2hpIGNob25nIGJhIGNoaSBiaSAyIG5hbSB0dSB0cmVvIHRyb25nIG1vdCBwaGllbiB4dSBj YWMgbG9pIGJhbyBjaHVhLCANCmNodW5nIGN1IGN1YSBsdWF0IHN1IGR1YSByYSBkZXUgYmkgZ2F0 IGRpLg0KDQpCYSBUcmFuIEtoYWkgVGhhbmggVGh1eSwgNDkgdHVvaSwgbGEgbmd1b2kgc2F1IGN1 bmcgdHJvbmcgbW90IGNodW9pIDE2IG5ndW9pIHZhbiBkb25nIA0KZGFuIGNodSBob2EgZGF0IG51 b2MsIGJpIGtldCBhbiB0dSB0dSB0aGFuZyAxMCBuYW0gMjAwOSBkZW4gbmF5LiBDYWMgY2hpbmgg cGh1IGN1YSANCm5oaWV1IG51b2MgY3VuZyBuaHUgbmhpZXUgdG8gY2h1YyBiYW8gdmUgbmhhbiBx dXllbiB0aGUgZ2lvaSBrZXUgZ29pIGNoZSBkbyBIYSBOb2kgDQp0b24gdHJvbmcgbmhhbiBxdXll biB2YSB0cmEgdHUgZG8gY2hvIGhvIG5odW5nIGRldSBraG9uZyBjbyB0YWMgZHVuZy4NCg0KQ2h1 eWVuIHZvIGNob25nIGJhIFRyYW4gS2hhaSBUaGFuaCBUaHV5IGJpIHZ1IGNhbyAiY28geSBnYXkg dGh1b25nIHRpY2giIGRhIGJpIGxvIHJvIA0KbmdheSB0dSBraGkgdnUgdmllYyB4YXkgcmEgYnVv aSB0b2kgbmdheSA4IHRoYW5nIDEwIG5hbSAyMDA5IG8gSGEgTm9pLiBCYSBUaHV5IHRyYSBsb2kg DQp0cnVjIHRpZXAgcXVhIGRpZW4gdGhvYWkgY2hvIHBob25nIHZpZW4gZGFpIFJGQSBiaWV0IG5n YXkga2hpIGJhIG5nb2kgbyB0cnUgc28gY29uZyBhbiANCnBodW9uZyBsYSB2byBjaG9uZyBiYSBi aSBoYW5oIGh1bmcuIEJhIGJpIG5lbSBnYWNoIHZvIGRhdSBtYXUgY2hheSB4b2kgeGEsIG11b24g ZGkgDQpiZW5oIHZpZW4gY2h1YSB0aHVvbmcgbmh1bmcgYmkgZ2l1IGxhaS4NClJvaSB2byBjaG9u ZyBiYSBiaSBjb25nIGFuIHF1YW4gRG9uZyBEYSB0b25nIGdpYW0uIEJhIFRodXkgYmkgbmhvdCB0 dSBkbyB0b2kgbmdheSByYSANCnRvYSB0cm9uZyBraGkgb25nIERvIEJhIFRhbiwgY2hvbmcgYmEs IHRoaSBkdW9jIHRoYSByYSA0IG5nYXkgc2F1IGRvLg0KDQpNb3QgbmdheSBzYXUga2hpIHZ1IGRh biBkdW5nIGhhbmggaHVuZyB2byBjaG9uZyBiYSBUcmFuIEtoYWkgVGhhbmggVGh1eSB4YXkgcmEs IGJhbyANCkRhbiBUcmkgZHVhIHRpbiB2b2kgbm9pIGR1bmcgZG8gY29uZyBhbiBkdWEgdm9pIHRh bSBoaW5oIGNodXAgTmd1eWVuIE1hbmggRGllcCwga2UgDQpoYW5oIGh1bmcgdm8gY2hvbmcgYmEs IGRhbmcgZHVvYyBjaHVhIHZldCB0aHVvbmcgbyBzYXUgdGFpIHBoYWkuDQoNClJhdCBuaGlldSBi bG9nZ2VycyB0cm9uZyBzbyBkbyBjbyBibG9nZ2VyIERpbmggVGFuIEx1YyBkaWV1IHRyYSBkYSB0 aGF5IHRhbSBoaW5oIGRvIGxhIA0KaGluaCBnaWEgZG8gY29uZyBhbiBjaHVwIGxhaSBidW9pIGNo aWV1IG5nYXkgOSB0aGFuZyAxMCBuYW0gMjAwOSBsdWMgNSBnaW8gMTQgcGh1dCBiYW5nIA0KbWF5 IGhpbmggU29ueSBEU0MtVzUgdHJvbmcga2hpIHRhbSBoaW5oIG5ndXllbiB0aHV5IGR1b2MgY2h1 cCBuZ2F5IDI5IHRoYW5nIDIgDQpuYW0gMjAwNSBsdWMgMTAgZ2lvIDIyIHBodXQgNDEgZ2lheSBi dW9pIHNhbmcuIA0KDQooQW5oOiBUYW0gaGluaCBnaWE6IGNodXAgTmd1eWVuIE1hbmggRGllcCBk YW5nIGR1b2Mgc2FuIHNvYyBvIGJlbmggdmllbi4gSGluaDogYmFvIA0KRGFuIFRyaSkNCg0KKEFu aDogQ29weSB0cmFuZyBtYW5nIGN1YSBEaW5oIFRhbiBMdWMgdm9pIGNoaSB0aWV0IHhhYyBkaW5o IG5nYXkgZ2lvIHRhbSBoaW5oIGR1b2MgDQpjaHVwIGxhaSB2YSBuZ2F5IGdpbyB0YW0gaGluaCBu Z3V5ZW4gdGh1eSBkdW9jIGNodXAuIEhpbmg6IHR1IEJsb2cgRGluaCBUYW4gTHVjKQ0KDQpbSGlu aCBkdW9pOiBIaW5oIGRpZXUgdHJhIGN1YSBCbG9nZ2VyIERpbmggVGFuIEx1YyBjaG8gdGhheSBu Z3VvbiBnb2MgY3VhIHRhbSBoaW5oIGxhIA0KdGFtIGhpbmggbmF5IGRhIGR1b2MgY2h1cCBsYWkg YmFuZyBtYXkgU29ueSBEU0MtVzUgbmdheSA5IHRoYW5nIDEwIG5hbSAyMDA5IGx1YyA1IA0KZ2lv IDE0IHBodXQgY2hpZXUgdHUgdGFtIGhpbmggbmd1eWVuIHRodXkgY2h1cCBuZ2F5IDI5IHRoYW5n IDIgbmFtIDIwMDUgbHVjIDEwIGdpbyAyMiANCnBodXQgNDEgZ2lheSBidW9pIHNhbmcuIChIaW5o OiBCbG9nIERpbmggVGFuIEx1YyldDQoNCk5nYXkgNSB0aGFuZyAxMSBuYW0gMjAwOSwgb25nIERv IEJhIFRhbiBndWkgIkRvbiBLaGlldSBOYWkgdmEgS2V1IE9hbiIgdG9pIFZpZW4gDQpLaWVtIFNh dCB2YSBDU0RUIGNvbmcgYW4gcXVhbiBEb25nIERhIHRyaW5oIGJheSBjaGkgdGlldCBzdSB0aGF0 IG5odW5nIGdpIGRhIHhheSByYSwgDQpjaHVuZyBtaW5oIHZvIGNob25nIG9uZyBsYSBuYW4gbmhh biBjaHUga2hvbmcgcGhhaSBuaHVuZyBrZSBnYXkgcmEgdnUgdmllYy4NCg0KVnUgaGFuaCBodW5n IHhheSB0YSB0cnVvYyBtYXQgZGFtICJEYW4gUGhvbmciIGtob2FuZyBjaHVjIHRlbiBuaHVuZyBj aHVuZyBjaGkgDQpkdW5nIG5oaW4gbWEga2hvbmcgY2FuIHRoaWVwLiBUcm9uZyBzbyBuaHVuZyBr ZSBoYW5oIGh1bmcgdm8gY2hvbmcgb25nIFRhbiwgY28gbW90IA0Kbmd1b2kgbWFjIGRvbmcgcGh1 YyAiRGFuIFBob25nIi4NCg0KTmdheSA0IHRoYW5nIDEgbmFtIDIwMTAsIG9uZyBUYW4gZ3VpIGRv biBkZSBuZ2hpIGtob2kgdG8gbmh1bmcga2UgaGFuaCBodW5nIHZvIA0KY2hvbmcgb25nIGdvbSBO Z3V5ZW4gTWFuaCBEaWVwIHZhIE5nbyBEdWMgTG9pLg0KDQpUdXkgbmhpZW4sICJWaWVuIEtpZW0g U2F0IE5oYW4gRGFuIiBxdWFuIERvbmcgRGEgbmdheSA4IHRoYW5nIDEgbmFtIDIwMTAgbGFpIGR1 YSANCnJhICJCYW4gQ2FvIFRyYW5nIiB0cnV5IHRvIHZvIGNob25nIERvIEJhIFRhbi1UcmFuIEto YWkgVGhhbmggVGh1eSB2ZSB0b2kgIkNvIHkgZ2F5IA0KdGh1b25nIHRpY2giIHRoZW8ga2hvYW4g MiBkaWV1IDEwNCBjdWEgQm8gTHVhdCBIaW5oIFN1Lg0KDQpUcm9uZyBkb24ga2V1IG9hbiwgb25n IFRhbiBjaG8gaGF5IGtob25nIGhlIHRoYXkgRGllcCBiaSB0aHVvbmcgdGljaCBnaSBuaHVuZyB0 cm9uZyANCiJCYW4gQ2FvIFRyYW5nIiBsYWkgdmlldCBEaWVwIGJpIHJhdCBuaGlldSB0aHVvbmcg dGljaCwgdHJvbmcgZG8gY2EgInZldCB0aHVvbmcgcmFjaCBkYSANCmRhdSB2dW5nIGNoYW0iLCAi ZGFwIHJhY2ggZGEgbm9uZyB2dW5nIHNhdSBtYW5nIHRhaSBwaGFpLCByaSBtYXUiIHYudi4uLg0K DQpUaHVvbmcgdGljaCBnaWEgY3VhIERpZXAgdGhpIGR1b2MgY2FpICJWaWVuIEtpZW0gU2F0IE5o YW4gRGFuIiBrZXQgbHVhbiBsYSB0aHVvbmcgdGF0IA0KMTMlIHRyb25nIGtoaSB0aHVvbmcgdGlj aCB0aGF0IGN1YSB2byBjaG9uZyBiYSBUaHV5IHRoaSBjaGkgZHVvYyBkaW5oIGNvIDMlLg0KDQpU cm9uZyBwaGllbiB0b2EsIEx1YXQgU3UgVHJhbiBWdSBIYWkgZGEgZHVhIHJhIGNhYyBjaHVuZyBj dSBjaG8gdGhheSB0YW0gaGluaCBjaHVwIA0KRGllcCBiaSB0aHVvbmcgbGEgdGFtIGhpbmggZ2lh LCB0aGFtIHBoYW4gcGhpZW4gdG9hIG5vaSBuZXUga2hpZXUgbmFpIGhpbmggdGhpZXQgaGluaCBn aWEgDQp0aGkuLi4ga2hpZXUgbmFpIHZvaSB0byBiYW8uIE9uZyBIYWkgbm9pIHBoaWVuIHRvYSBu YXkgZGEgYmllbiAiYmkgaGFpIiB0aGFuaCAiYmkgY2FvIiB2YSANCnhldCB4dSBzYWkgdGh1IHR1 YyBIaW5oIFN1IFRvIFR1bmcuIE9uZyBkYSBiaSBuZ2F0IGxvaSwga2hvbmcgY2hvIHRyaW5oIGJh eSBoZXQgbmh1bmcgDQpkaWV1IG9uZyB2YWNoIHJhIGNobyB0aGF5IGNhaSBzYWkgdHJhaSBjdWEg dnUgYW4gdHUgZGlldSB0cmEsIGNhbyB0cmFuZyBkZW4gcGhpZW4geHUuDQoNCkxTIEhhaSwgdHJ1 b2MgcGhpZW4gdG9hIG1vdCBuZ2F5LCBkYSBndWkgbW90IGJhbiAidG9tIGx1b2MgcXVhbiBkaWVt IiBjdWEgb25nIGNobyANCiJIb2kgZG9uZyB4ZXQgeHUgc28gdGhhbSIgZ29tIDE1IGRpZW0gZGUg ZG9pIHRyYSB0dSBkbyBuZ2F5IGNobyBiaSBjYW8sIGRpbmggY2hpIHZ1IGFuIA0KdmEgZGlldSB0 cmEgbGFpICJnaWFpIHF1eWV0IHRoZW8gaHVvbmcga2hhYyIuDQoNCiIxLiBCaWVuIGJhbiBwaGFt IHBoYXAgcXVhIHRhbmcgZG8gY29uZyBhbiBwaHVvbmcgVHJ1bmcgUGh1bmcgcXVhbiBEb25nIERh IEhhIA0KTm9pIGxhcCB0b2kgOCB0aGFuZyAxMCBuYW0gMjAwOSBsYSBraG9uZyBjbyB0aGF0LCB2 aWVjIGJhdCBoYWkgYmkgY2FvIGxhIGJhdCBob3AgcGhhcC4iDQoNCiIyLiBOZ2F5IDkgdGhhbmcg MTAgbmFtIDIwMDksIGNvbmcgYW4gcXVhbiBEb25nIERhIGRhIGN1bmcgY2FwIGNobyBiYW8gY2hp IG5odW5nIA0KdGhvbmcgdGluIHZlIHZ1IGFuIGtob25nIGR1bmcgdm9pIGhvIHNvIHZ1IGFuLiIN Cg0KIjQuIE5odW5nIGxvaSBraGFpIGN1YSBuaHVuZyBuZ3VvaSBkdW9jIGNvaSBsYSBiaSBoYWks IG5oYW4gY2h1bmcgZHVvYyB0aG9uZyBuaGF0LCANCm5odW5nIHBoaSBsb2dpYywgbWF1IHRodWFu IHZvaSBHaWF5IENodW5nIFRodW9uZywga2V0IGx1YW4gR2lhbSBEaW5oLCBiYW4gdmUgaGllbiAN CnRydW9uZywgdmF0IGNodW5nIHZhIHRodWMgdGUgdnUgYW4uIg0KDQoiNi4gR2lheSBjaHVuZyB0 aHVvbmcgbWF1IHRodWFuIGtldCBsdWFuIGdpYW0gZGluaCwga2hvbmcgY28gdGFpIGxpZXUgZGFu ZyB0aW4gY2F5IHhhYyANCmRpbmggdGh1b25nIHRpY2ggY3VhIE5ndXllbiBNYW5oIERpZXAgbGll biBxdWFuIHRvaSB2dSB4byB4YXQgbmdheSA4IHRoYW5nIDEwIG5hbSANCjIwMDkuIg0KDQoiNy4g Q28gcXVhbiBjb25nIGFuIGRhIHNhbmcgdGFjIG5ndXllbiBuaGFuIGRhbiBkZW4gdnUgeG8geGF0 IG5nYXkgOCB0aGFuZyAxMCBuYW0gDQoyMDA5IHRydW9jIGtoaSBjbyBjYWMgbG9pIGtoYWkgY3Vh IG5odW5nIGR1b25nIHN1IGxpZW4gcXVhbiB0cnVjIHRpZXAuIg0KDQoiMTEuIENhbyB0cmFuZyB0 cmFpIGtldCBsdWFuIGdpYW0gZGluaCwga2hvbmcgbGFtIHJvIGJpIGNhbyBuYW8gZ2F5IHRvbiB0 aHVvbmcgbmFvIHZhIA0KbXVjIGRvIG5hbyBkb2kgdm9pIE5ndXllbiBNYW5oIERpZXAsIGhheSBr aG9uZyB0aGUgbGFtIHJvIGR1b2Mgdmkga2hvbmcgY28gdmllYyBkbz8iDQoNCiIxNC4gVnUgeG8g eGF0IG5obyB0b2kgOCB0aGFuZyAxMCBuYW0gMjAwOSBuZXUgZHVuZyBuaHUgbWlldSB0YSB0cm9u ZyBjYW8gdHJhbmcsIGxhIHZ1IA0KeG8geGF0IG5obywgdHJvbmcgbm9pIGJvIG5oYW4gZGFuLCBj YW4gZ2lhaSBxdXlldCB0aGVvIGh1b25nIGhvYSBnaWFpIG5odSBsYXUgbmF5IGNvbmcgDQphbiB2 YSBjaGluaCBxdXllbiBjYXAgY28gc28gdmFuIGxhbS4gVmllYyBsYW0gbG9uIHZ1IHZpZWMga2hv bmcgY28gbG9pIGNobyBjYWMgY2FwLCBjYWMgDQpuZ2FuaCIuDQoNClRhaSBwaGllbiB0b2EgTHVh dCBTdSBIYWkgZGEgdHJpbmggYmF5IGNobyB0aGF5IHZ1IGFuICJob2FuIHRvYW4gbmd1eSB0YW8g dmEgdnUga2hvbmciLiANClRoZW8gYmFuIHRpbiBBRlAsIGJhIFRodXkgbGEgbG9uIHRyb25nIHBo aWVuIHRvYSAiVG9pIHBoYW4gZG9pIHBoaWVuIHh1IHZhIHRvaSBraG9uZyANCmRlbiBkYXkgZGUg cGhhaSBjaGl1IGR1bmcgY2FpIG5heSIuIEJhIGRhIGJpIGxvaSByYSBraG9pIHBob25nIHh1IG5l biBraGkgYmFuIGFuIGR1b2MgDQp0dXllbiBibyB0aGkgYmEga2hvbmcgY28gbWF0Lg0KDQpTYXUg cGhpZW4gdG9hLCBMUyBIYWkgY2hvIGRhaSBCQkMgaGF5IG9uZyBkYSBraG9uZyBkdW9jIGNobyB0 cmluaCBiYXkgaGV0IG5odW5nIGdpIA0Kb25nIG11b24gdHJpbmggYmF5IGRlIGJhbyBjaHVhLg0K DQoiS2V0IGFuIG5hbiBuaGFuIGN1YSBtb3QgdnUgaGFuaCBodW5nIGJhbmcgbW90IGJhbiBhbiB0 dSBsYSB0aGVtIG1vdCBiYW5nIGNodW5nIGNobyANCnRoYXkgbmh1bmcgbm8gbHVjIHBoaSBseSBj dWEgbmhhIGNhbSBxdXllbiBIYSBOb2kgbmhhbSBiaXQgbWllbmcgbmh1bmcgbmd1b2kgY2hpIA0K dHJpY2giLiBCcmFkIEFkYW1zLCBnaWFtIGRvYyBBIENoYXUgY3VhIFRvIENodWMgVGhlbyBEb2kg TmhhbiBRdXllbiBIUlcgbmhhbiANCnhldCB2ZSBwaGllbiB0b2Egdm8gY2hvbmcgb25nIFRhbi4N Cg0KSG9pIHRoYW5nIDQgbmFtIDIwMDksIG5oYSBiYSBUcmFuIEtoYWkgVGhhbmggVGh1eSBkYSBi aSAia2UgeGF1IiBuZW0gcGhhbiwgY2h1b3QgDQpjaGV0IHRyb24gbGFuIGRhdSBuaG90IHZhbyB0 cnVvYyBuaGEgaG9uIG1vdCBjaHVjIGxhbiBkZSBraHVuZyBiby4NCg0KQmEgVHJhbiBLaGFpIFRo YW5oIFRodXkgY29uZyB0YWMgdm9pIG1vdCBzbyBiYW8gZGUgdmlldCBiYWksIGt5IHN1IHRob2kg c3UgVmlldCBOYW0uIA0KQmEgZGEgYmkgYm8gdHUgbW90IGxhbiA5IHRoYW5nIGhvaSBuYW0gMjAw Ny4gVHJ1b2MgZG8sIG5oaWV1IGxhbiBiaSBkYXUgdG8sIGhhbmggaHVuZy4gDQpCYSBiaSBiZW5o IHRpZXUgZHVvbmcsIGNhbyBodXlldCBhcCwgY2h1bmcgbmh1YyBkYXUga2luaCBuaWVuIG5odW5n IHRodW9jIGNodWEgYmVuaCANCnRodW9uZyBraG9uZyBkdW9jIGNobyBuaGFuIG8gdHJvbmcgdHUu ICAgDQoNCmh0dHA6Ly9kYW5sYW1iYW8ud29yZHByZXNzLmNvbS8yMDEwLzA5LzE3L25oYS12YW4t dHJhbi1raGFpLXRoYW5oLXRodXktYmktZGFuaC1kYXAtdHJvbmctdHUvIEtob2EgRGllbSAyMDEw LTA5LTE2IFBvc3RlZCBvbiAxNy8wOS8yMDEwIGJ5IERhbiBCYW8gDQoNCkNvbmcgYW46IE5oYSB2 YW4gVHJhbiBLaGFpIFRoYW5oIFRodXkgYmkgZGFuaCBkYXAgdHJvbmcgdHUgIA0KDQpCYSBUcmFu IEtoYWkgVGhhbmggVGh1eSwgMSB0cm9uZyA2IG5ndW9pIGNhbSBidXQgVmlldCBOYW0gZGEgZHVv YyBUbyBjaHVjIFRoZW8gZG9pIA0KTmhhbiBxdXllbiB0cmFvIGdpYWkgSGVsbG1hbi9IYW1tZXR0 IHZhbyBkYXUgbmFtIG5heSwgaGllbiBkYW5nIGJpIGNhbSB0dSB0YWkgbmhhIHR1IA0Kc28gNSBv IExhbSBTb24sIFRoYW5oIEhvYS4NCg0KQmkgZGFuaCB2aSBxdWFuIGdpYW8ga2hvbmcgY2FuIHRo aWVwDQoNCkJpIGtldCBhbiAzIG5hbSBydW9pIHR1IGdpYW0gdHJvbmcgcGhpZW4geHUgbmdheSA1 LzIvMjAxMCB2b2kgdG9pIGRhbmggY28geSBnYXkgdGh1b25nIA0KdGljaCwgdHJvbmcgbGFuIHRo YW0gbnVvaSBtb2kgbmhhdCB2YW8gbmdheSAxLzksIGdpYSBkaW5oIGJhIGRhIG5oYW4gdGhheSBu aHVuZyBkYXUgdmV0IA0KYmkgaGFuaCBodW5nIHZhIHRpbmggdGhhbiBraG9uZyBkdW9jIHRvdCBj dWEgYmEuIFNhdSBuaHVuZyBsYW4gZ2FuZyBob2ksIG9uZyBEbyBCYSANClRhbiwgY2hvbmcgYmEg VGh1eSwgZHVvYyBjaG8gYmlldCBiYSBkYSBiaSBkYW5oIGRhcCBkYSBtYW4ga2hhcCBuZ3VvaSwg ZGFjIGJpZXQgbGEgDQpuaHVuZyBjaG8gbmd1eSBoaWVtLg0KDQpPbmcgVGFuIGtlIGxhaSBuaHVu ZyBnaSBiaWV0IGR1b2M6ICJTYXUgaG9tIDMvOCBraGkgZ2lhIGRpbmggdmFvIHRoYW0gVHJhbiBL aGFpIFRoYW5oIA0KVGh1eSB4b25nLCB0aGkgdG9pIGhvbSBkbywgVGh1eSB2ZSB0cmFpIHZhIGRh IGR1b2MgY2FuaCBiYW8gbGEgc2UgYmkgZGFuaC4gQ28gbW90IHBoYW0gDQpuaGFuIHRlbiBsYSBD dWMsIGN1bmcgbyB0cm9uZyBjdW5nIGtodSBudSBkbyB0aGkga2hvbmcgYmlldCB2aSBseSBkbyBn aSBjdW5nIGRhIHBoYW8gdGluIA0KbGEgc2UgZGFuaCBUaHV5LiBLaGkgVGh1eSBiaWV0IHRpbiBi aSBkYW5oIHRoaSBUaHV5IGN1bmcgZGEgYmFvIHZvaSBxdWFuIGdpYW8gdGVuIGxhIGNvIA0KTWFp LCBiYW8gdG9pIGxhbiB0aHUgMyB0aGkgY28gTWFpIGRhIHBoYW4gdW5nIHZhIG5vaSBsYSBzZSB4 YWMgbmhhbiBsYWkgdGhvbmcgdGluIG5heSB2YSBzZSANCnh1IGx5IG5odW5nIHRodWMgdGUgdGhv bmcgdGluIGRvIGtob25nIGR1b2MgeHUgbHkuIENodXllbiBkYSB4YXkgcmEgbGEgdmFvIHRvaSBt dW5nIDUsIA0KbHVjIDIxIGdpbywgVGh1eSBkYSBiaSBwaGFtIG5oYW4gQ3VjIGRvdCBuaGFwIHZh byBwaG9uZyBnaWFtIHZhIGJhdCBkYXUgZGFuaC4gUGhhbSANCm5oYW4gQ3VjIGRhIGRhbmggcmF0 IGhpZW0gZG9jLCBkdW5nIHRvYW4gY3VpIGNobyB0YXkgdmEgZGF1IGdvaSBkZSB0aHVjIHZhbyBu Z3VjLCB2YW8gDQpidW5nIHZhIGRhbmggY2EgdmFvIHBoYW4gaGllbSBjdWEgVGh1eSIuDQoNCkto aSBiYSBUaHV5IGtlIGRlbiBkYXkgdGhpIG9uZyBUYW4gY28gaG9pIHRhaSBzYW8ga2hvbmcga2V1 IGxlbiBkZSBkdW9jIHRybyBnaXVwIG5odW5nIA0KZHVvYyBiYSBUaHV5IGNobyBiaWV0IGxhIGNh bmcga2V1IHRvIHRoaSBzZSBiaSBkYW5oIG1hbmggaG9uIHZhIG5ldSBkbyBjbyBhaSBnaXVwIHRo aSANCm5ndW9pIGRvIGN1bmcgc2UgYmkgbGllbiBsdXkuIERhIGNvIG5odW5nIHRydW9uZyBob3Ag bmh1bmcgcGhhbSBuaGFuIG5vaSBjaHV5ZW4gdm9pIA0KYmEgVGh1eSB2YSBuZ2F5IG5nYXkgaG9t IHNhdSBkZXUgYmkgY2FjaCBseSBuaHUgcGhhbSBuaGFuIFBoYW0gVGhhbmggTmhpZW4gdmEgDQpw aGFtIG5oYW4gVHJhbiBOZ29jIEFuaC4gT25nIFRhbiBub2kgcmFuZyBvbmcga2hvbmcgdGhlIHRp biBkdW9jIG1vdCBjaHV5ZW4gIG5odSANCnBoYW0gbmhhbiBoaWVwIGRhcCBuaGF1IGxhaSBjbyB0 aGUgeGF5IHJhIG5odSB2YXkgbWEga2hvbmcgY28gc3UgY2FuIHRoaWVwIG5hbyBjdWEgY2FjIA0K cXVhbiB0dSB0aGkgb25nIGRhIGR1b2MgY2FjIGNhbiBibyBnaWFtIHNhdCB4YWMgbmhhbi4NCg0K T25nIFRhbiBub2k6DQoiSG9tIGRvIGNvIGhhaSBjYW4gYm8gZ2lhbSBzYXQsIGNvIG5naGlhIGxh IGdoaSBjaGVwIGxhaSBjdW9jIG5vaSBjaHV5ZW4gY3VhIGNodW5nIHRvaSwgDQpnb20gY28gY2Fu IGJvIFRyYWkgdmEgY2FuIGJvIEx1b25nLiBDYW4gYm8gdHJhaSBjbyB4YWMgbmhhbiBsYSBjaHV5 ZW4gbmF5IGRhIHhheSByYSB2YSANCmRlIG1vaSBoYWkgbmd1b2kgbGVuIGRlIGdpYW5nIGhvYSB2 YSBwaGlhIHRyYWkgY28geHUgbHkgcGhhbSBuaGFuIEN1YyBuaHVuZyB4dSBwaGF0IA0Kbmh1IHRo ZSBuYW8gdGhpIGNoYW5nIGFpIGJpZXQgZHVvYy4iDQoNCkJpIGNvIGxhcCANCg0KQmEgVGh1eSB2 YSBvbmcgVGFuIGNobyByYW5nIG5odW5nIGhhbmggZG9uZyBjdWEgcGhhbSBuaGFuIEN1YyB2YSBx dWFuIHR1IGNoYWMgZGEgDQpkdW9jIHNhcCB4ZXAgdHUgdHJ1b2MgdmkgdGhlbyBsZSB0aHVvbmcg dGhpIGNhYyBwaGFtIG5oYW4ga2hvbmcgZHVvYyBwaGVwIGN1bmcgbmh1IA0Ka2hvbmcgdGhlIHF1 YSBwaG9uZyBuZ3VvaSBraGFjIGtoaSBraG9uZyBjbyBsZW5oIGN1YSB0cmVuIHZhIHF1YW4gdHUg ZGkga2VtLiBCYW4gdGhhbiANCmJhIFRodXkgY2hvIHJhbmcgdHJvbmcgdHUgYmEgc29uZyByYXQg ZHVvYyBsb25nIG1vaSBuZ3VvaSB2YSBraG9uZyBjbyBseSBkbyBjaGluaCBkYW5nIA0KbmFvIGRh biBkZW4gbmh1bmcgdmllYyBkYSB4YXkgcmEgY2hvIGJhLg0KDQpPbmcgVGFuIGNobyBiaWV0IHZl IHRpbmggdGhhbiBjdWEgYmEgUGhhbSBLaGFpIFRoYW5oIFRodXk6DQoiVGh1eSBsdW9uIGx1b24g Ymkgbmh1bmcgYXAgbHVjIHJhdCBuYW5nIG5lIGxhIHRyb25nIHRob2kgZ2lhbiBkbyBUaHV5IGx1 b24gYmkga2hhbSB4ZXQsIA0KbHVjIHhldCBraGFwIGJhbiB0aGFuLiBLaGkgVGh1eSByYSBraG9p IHRyYWkgZGkgbGFvIGRvbmcgdGhpIFRodXkgYmkgY2FuIGJvIGtoYW0geGV0IHR1aSANCnF1YW4g YW8geGVtIGNvIGdpIGtob25nIHRoaSB0YXQgbmhpZW4gdHJvbmcgbmd1b2kgVGh1eSBsdW9uIGx1 b24gY28gdGh1b2MgdmkgbW90IG5nYXkgDQpwaGFpIHVvbmcgcmF0IG5oaWV1IHRodSB0aHVvYyBt YSBkbyBiZW4geSB0ZSBxdWFuIGx5LiBOaHVuZyB0aHUgdGh1b2MgbWEgZ2lhIGRpbmggaGFuZyAN CnRoYW5nIGdvaSB2YW8gdGhpIGhvIHBoYXQgY2hvIHZhbyBkYXUgbmdheS4gVGh1b2MgdGh1b25n IHh1eWVuIGRlIHRyb25nIHR1aSBhbywgbHVvbiANCmx1b24gYmkgbHVjIHNvYXQgcmEgdmEgdGhh bSB2YW4sIGx1b24gbHVvbiBiaSB0cmEgdmFuIHZlIHRpbmggdGhhbiwgcmF0IGxhIGtobyBjaGl1 LiBUcm9uZyANCnRob2kgZ2lhbiBuYXkgVGh1eSBjdW5nIHBoYXQgaGllbiByYSBsYSBUaHV5IGRh IGJpIGNhY2ggbHkgaG9hbiB0b2FuIHZhIGRhIG5naGllbSBjYW0gDQpjYWMgZG9pIHR1b25nIHh1 bmcgcXVhbmgga2hvbmcgZHVvYyB0aWVwIHh1YywgcXVhbiBoZSB2b2kgVGh1eS4iDQoNCk9uZyBU YW4gYmF5IHRvIG5vaSBsbyBjaG8gbmd1b2kgdm8gZGFuZyB0cm9uZyBjYW5oIGxhbyB0dSBjdWEg bWluaDoNCiJNb2kgbGFuIGdpYSBkaW5oIHZhbyB0aGFtIHRoaSByYXQgbGEgZGF1IHhvdCB2b2kg aGluaCBhbmggY3VhIFRodXkgdmkgc3VjIGtob2Uga2hvbmcgDQpjaGl1IG5vaS4gQ2FpIHRodSBo YWkgbGEgYXAgbHVjIHRpbmggdGhhbiB2aSBiYXkgZ2lvIFRodXkgYmkgY2FjaCBseSB2YSBjdW5n IGxhIGNhaSBjbyBjaG8gDQptb2kgbmd1b2kgcnVvbmcgYm8gVGh1eSB0cm9uZyBjYWkgbW9pIHRy dW9uZyBkby4iDQoNCk9uZyBUYW4gY2hvIGJpZXQgb25nIGNoaSBtb25nIHRob2kgZ2lhbiB0cm9p IHF1YSBtYXUgZGUgZGVuIGRhdSB0aGFuZyBvbmcgbGFpIGNvIHRoZSANCnZhbyB0aGFtIHZvLiBP bmcgaHkgdm9uZyBtb2kgbmd1b2kgY28gdGhlIGNoaWEgc2Ugbmh1bmcgZ2kgdm8gb25nIGRhbmcg Y2hpdSBkdW5nIHZhIA0KbmhpbiB0aGF5IGR1b2Mgc3UgdGhhdCBjdW5nIG5odSBuaHVuZyBnaSBk YW5nIHhheSByYSBub2kgbWEgbmhhbiBxdXllbiBraG9uZyBjbyBkYXQgDQpzb25nLiBPbmcgY2hv IHJhbmcgbmh1bmcgZ2kgdm8gb25nIGRhbmcgY2hpdSBsYSBtb3QgZGlldSByYXQgdm8gbHkgdmEg dm8gbmhhbiBkYW8ga2hpIA0KYmEgVGh1eSBkYSBraG9uZyBsYW0gYmF0IGN1IGRpZXUgZ2kgc2Fp IHRyYWkuDQoNCi0NCkNvbmcgYW46IE1vdCBzbyB2dSBhbiBuZ2hpZW0gdHJvbmcga2hhYyBjYW4g a2hvaSB0byBuZ2hpZW0gbWluaCANCi0NCmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1l NWR2cHVwVElSaw0KDQpUUCBIQ006IENoaW5oIHF1eWVuIGNhdCBraG9hLCBwaGEgY3VhIGN1b25n IGNoaWVtIG5oYSBvIGN1YSBkYW4gDQoNCmh0dHA6Ly9ib3hpdHZuLndvcmRwcmVzcy5jb20vMjAx MC8wOS8wNi9oeS1kJUM2JUIwYS1yYS12bmgtbW5nLW5nJUUxJUJCJUIxYS8gRGFuZyBib2kgYnZu cG9zdCBvbiAwNi8wOS8yMDEwIGx1YyA3OjQ3IHNhbmcgDQoNCkhheSBkdWEgTGUgVGhhbmggSGFp IHZhIGRvbmcgYm9uIHJhIHRydW9jIHZhbmggbW9uZyBuZ3VhIA0KDQpDT05HIEhPQSBYQSBIT0kg Q0hVIE5HSElBIFZJRVQgTkFNDQpEb2MgbGFwIJYgVHUgZG8gliBIYW5oIHBodWMNCioqKg0KSGEg Tm9pIG5nYXkgNi85LzIwMTANCg0KSEFZIERVQSBSQSBWQU5IIE1PTkcgTkdVQSBURU4gTEUgVEhB TkggSEFJLCBVWSBWSUVOIEJPIENISU5IIFRSSSBEQU5HIENPTkcgU0FOIFZJRVQgTkFNLCANCkJJ IFRIVSBUSEFOSCBVWSwgTkdVWUVOIENIVSBUSUNIIFVCTkQgVFAgSE8gQ0hJIE1JTkggVkEgRE9O RyBCT04gRE8gREEgREFQIE5IQSwgQ1VPUCBEQVQgDQpDVUEgQkEgRFVPTkcgVEhJIEtJTkgsIFRI QU4gTkhBTiBDVUEgQkEgTElFVCBTSSENCg0KS2luaCBndWk6IC0gUXVvYyBIb2kgliBVeSBiYW4g VGh1b25nIHZ1IFF1b2MgSG9pDQotIENodSB0aWNoIE51b2MgTmd1eWVuIE1pbmggVHJpZXQNCi0g Tmd1eWVuIENodSB0aWNoIE51b2MgTGUgRHVjIEFuaA0KLSBOZ3V5ZW4gQ2h1IHRpY2ggTnVvYyBU cmFuIER1YyBMdW9uZw0KLSBDaHUgdGljaCBRdW9jIEhvaSBOZ3V5ZW4gUGh1IFRyb25nDQotIE5n dXllbiBDaHUgdGljaCBRdW9jIEhvaSBOZ3V5ZW4gVmFuIEFuDQotIFRodSB0dW9uZyBDaGluaCBw aHUgTmd1eWVuIFRhbiBEdW5nDQotIE5ndXllbiBUaHUgdHVvbmcgQ2hpbmggcGh1IFBoYW4gVmFu IEtoYWkNCi0gVmllbiB0cnVvbmcgVktTTkRUQyBUcmFuIFF1b2MgVnVvbmcNCi0gQm8gdHJ1b25n IENvbmcgYW4gTGUgSG9uZyBBbmgNCi0gVGh1IHRydW9uZyBDbyBxdWFuIERpZXUgdHJhIJYgQm8g Q29uZyBhbg0KDQpEb25nIGtpbmggZ3VpOiAtIEJhbiBDaGFwIGhhbmggVHJ1bmcgdW9uZyBEQ1NW Tg0KLSBCbyBDaGluaCB0cmkgRENTVk4NCi0gQmFuIEJpIHRodSBEQ1NWTg0KLSBUb25nIEJpIHRo dSBEQ1NWTiBOb25nIER1YyBNYW5oDQotIE5ndXllbiBUb25nIEJpIHRodSBEQ1NWTiBEbyBNdW9p DQotIE5ndXllbiBUb25nIEJpIHRodSBEQ1NWTiBMZSBLaGEgUGhpZXUNCi0gVGh1b25nIHRydWMg QmFuIGJpIHRodSBEQ1NWTiBUcnVvbmcgVGFuIFNhbmcNCi0gVHJ1b25nIEJhbiBUbyBjaHVjIFRy dW5nIHVvbmcgRENTVk4gSG8gRHVjIFZpZXQNCi0gQ2h1IG5oaWVtIFV5IGJhbiBLaWVtIHRyYSBU cnVuZyB1b25nIERDU1ZOIE5ndXllbiBWYW4gQ2hpDQoNClRvaSBsYSBDdSBIdXkgSGEgVnUsIENv bmcgZGFuIFZpZXQgTmFtLCBUaWVuIHNpIEx1YXQsIGhvIGtoYXUgdGh1b25nIHRydSB0YWkgMjQg DQpEaWVuIEJpZW4gUGh1LCBIYSBOb2ksIHhpbiBndWkgdG9pIFF1eSB2aSBsb2kgY2hhbyB0cmFu IHRyb25nLg0KDQpDYW4gY3UgTHVhdCBLaGlldSBuYWksIHRvIGNhbywgYmFuZyBEb24gbmF5IHRv aSB0byBjYW8gdmEgeWV1IGNhdSBRdXkgdmkgdHJ1eSBjdXUgdHJhY2ggDQpuaGllbSBoaW5oIHN1 IHZhIGR1YSByYSB2YW5oIG1vbmcgbmd1YSB0ZW4gTGUgVGhhbmggSGFpLCB1eSB2aWVuIEJvIENo aW5oIHRyaSwgQmkgdGh1IA0KVGhhbmggdXksIG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBk YW4gdGhhbmggcGhvIEhvIENoaSBNaW5oIHZhIGRvbmcgYm9uIGRvIGRhIA0KZGFwIG5oYSwgY3Vv cCBkYXQgbyBjdWEgYmEgRHVvbmcgVGhpIEtpbmgsIHRoYW4gbmhhbiBjdWEgQmEgTGlldCBzaSwg dGFpIDI1NS82LzI3IE5nbyANClRhdCBUbywgcGh1b25nIDIyIHF1YW4gQmluaCBUaGFuaCwgdGhh bmggcGhvIEhvIENoaSBNaW5oLg0KDQpCYSBEdW9uZyBUaGkgS2luaCwgbmd1eWVuIHF1YW4gdGFp IFRheSBIbywgeGEgUGh1IFRoYWksIGh1eWVuIFBodSBWYW5nLCB0aW5oIFRodWEgDQpUaGllbiCW IEh1ZSwgaG8ga2hhdSB0aHVvbmcgdHJ1IHRhaSAyNTUvNi8yNyBOZ28gVGF0IFRvLCBwaHVvbmcg MjIgcXVhbiBCaW5oIFRoYW5oLCANCnRoYW5oIHBobyBIbyBDaGkgTWluaCwgYmFuIHRoYW4gZGEg dGhhbSBnaWEgY2EgaGFpIGN1b2MgY2hpZW4gdHJhbmggYWkgcXVvYywgY28gbWUgbGEgDQpCYSBN ZSBWaWV0IE5hbSBhbmggaHVuZywgY28gYm8sIGNob25nLCBjb24gdmEgY2EgYm9uIGVtIHRyYWkg bWEgYmEgS2luaCBkYSBnaXVwIG1lIA0KbnVvaSB0dSBuaG8gZGV1IHRoYW0gZ2lhIFZlIFF1b2Mg RG9hbiByb2kgUXVhbiBkb2kgbmhhbiBkYW4gVmlldCBOYW0sIHRyb25nIGRvIDMgZW0gDQp0cmFp IER1b25nIFZhbiBDbywgRHVvbmcgVmFuIEh1dSB2YSBEdW9uZyBWYW4gTGluaCBkYSBhbmggZHVu ZyBoeSBzaW5oIHRyb25nIA0KY3VvYyBraGFuZyBjaGllbiBjaG9uZyB0aHVjIGRhbiBQaGFwLCBo aWVuIGRvaSBtaW5oIGNobyBUbyBRdW9jLg0KDQpWb2kgY29uZyBoaWVuIHRvIGxvbiBuaHUgdmF5 IGRvaSB2b2kgRGFuIHRvYyB2YSBjaGluaCB0aGUgaGllbiBoYW5oLCBiYSBEdW9uZyBUaGkgS2lu aCANCmhhbiBwaGFpIGR1b2MgTmhhIG51b2MgcXVhbiB0YW0gZGFjIGJpZXQsIGNoaSBpdCBsbyBj aG8gbW90IGNobyBvIHRvaSB0aGlldS4NCg0KVGhlIG5odW5nLCBiYSBEdW9uZyBUaGkgS2luaCBj aGFuZyBuaHVuZyBraG9uZyBkdW9jIE5oYSBudW9jIGNhcCBuaGEsIGRhdCBkZSBvIG1hIA0KY29u IGJpIHRlbiBMZSBUaGFuaCBIYWksIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENoaSBNaW5o LCBoaWVuIGxhIFV5IHZpZW4gQm8gDQpDaGluaCB0cmksIEJpIHRodSBUaGFuaCB1eSBEYW5nIENv bmcgc2FuIFZpZXQgTmFtIHRoYW5oIHBobyBIbyBDaGkgTWluaCBjdW5nIENodSANCnRpY2ggVUJO RCBxdWFuIEJpbmggVGhhbmggTmd1eWVuIEh1dSBOaGFuLCBRdXllbiBDaHUgdGljaCBVQk5EIHF1 YW4gQmluaCANClRoYW5oIE5ndXllbiBRdW9jIEh1bmcgdmEgZG9uZyBib24gZGFwIHRhbiBuaGEg dmEgY3VvcCB0cmFuZyBkYXQgbyB0YWkgMjU1LzYvMjcgTmdvIA0KVGF0IFRvLCBwaHVvbmcgMjIg cXVhbiBCaW5oIFRoYW5oLCB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggbWEgYmEgZGEgbXVhIGJhbmcg ZG9uZyANCnRpZW4gYmEgY2hhdCBjaGl1IGNhIGRvaSEgDQoNCk5odW5nIGhhbmggdmkgdG9pIGFj IG5ldSB0cmVuIGN1YSB0ZW4gTGUgVGhhbmggSGFpIHZhIGRvbmcgYm9uIGRpZW4gcmEgY3UgdGhl IG5odSBzYXU6DQpOZ2F5IDAzLzEyLzIwMDIsIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhvIENo aSBNaW5oIExlIFRoYW5oIEhhaSBkYSByYSBRdXlldCANCmRpbmggc28gNTAxMy9RRC1VQiBuZ2F5 IDMvMTIvMjAwMiB2ZSB2aWVjIGdpYW8gOS4wMzkgbTIgZGF0IHRhaSBwaHVvbmcgMjIsIHF1YW4g DQpCaW5oIFRoYW5oICh0cm9uZyBkbyBjbyBuaGEsIGRhdCBvIGN1YSBiYSBEdW9uZyBUaGkgS2lu aCkgY2hvIENvbmcgdHkgRGF1IHR1IHZhIHhheSANCmR1bmcgVGhhbmggbmllbiB4dW5nIHBob25n IGRvIGVtIHJ1b3QgTGUgVGhhbmggSGFpIGxhIExlIFRhbiBIdW5nIGxhbSBnaWFtIGRvYyBkZSAN CnhheSBkdW5nIFRydW5nIHRhbSBUaHVvbmcgbWFpIHRodW9jIHNvIGh1dSB0dSBuaGFuIGNvIGNo dWMgbmFuZyBraW5oIGRvYW5oIG5oYSBvLCANCmRpY2ggdnUsIHRodW9uZyBtYWkuDQoNCkRpZXUg MjcgTHVhdCBEYXQgZGFpIDE5OTMgcXV5IGRpbmg6ICJUcm9uZyB0cnVvbmcgaG9wIHRoYXQgY2Fu IHRoaWV0LCBOaGEgbnVvYyB0aHUgaG9pIA0KZGF0IGRhbmcgc3UgZHVuZyBjdWEgbmd1b2kgc3Ug ZHVuZyBkYXQgZGUgc3UgZHVuZyB2YW8gbXVjIGRpY2ggcXVvYyBwaG9uZywgYW4gbmluaCwgDQps b2kgaWNoIHF1b2MgZ2lhLCBsb2kgaWNoIGNvbmcgY29uZyIuIExlIGRpIG5oaWVuIFRydW5nIHRh bSBUaHVvbmcgbWFpIGtob25nIHBoYWkgbGEgDQpjb25nIHRyaW5oIHF1b2MgcGhvbmcsIGFuIG5p bmgsIGxvaSBpY2ggcXVvYyBnaWEsIGxvaSBpY2ggY29uZyBjb25nIG5lbiBuZ2F5IGNhIGtoaSBU cnVuZyANCnRhbSBUaHVvbmcgbWFpIHRodW9jIHNvIGh1dSBOaGEgbnVvYywgVUJORCBUUCBIbyBD aGkgTWluaCBraG9uZyBjbyBxdXllbiB0aHUgDQpob2kgZGF0IG8gY3VhIGJhIEtpbmgsIGh1b25n IGhvIFRydW5nIHRhbSBUaHVvbmcgbWFpIG5heSB0aHVvYyBzbyBodXUgdHUgbmhhbi4gRG8gDQpk bywgUXV5ZXQgZGluaCBzbyA1MDEzL1FELVVCIG5nYXkgMy8xMi8yMDAyIGN1YSBDaHUgdGljaCBV Qk5EIHRoYW5oIHBobyBIbyBDaGkgDQpNaW5oIExlIFRoYW5oIEhhaSBkdXQga2hvYXQgbGEgaGFu aCB2aSBjb25nIG5oaWVuIGNoaWVtIGRvYXQgaGF5IG5vaSB0cmFuZyByYSBsYSBjdW9wIA0KZGF0 IG8gY3VhIGJhIEtpbmghDQoNCkJhbiB0aGFuIER1IGFuIFRydW5nIHRhbSBUaHVvbmcgbWFpIHR1 IG5vIGN1bmcgZGEgYm9jIGxvIGxhIG1vdCBkdSBhbiAibWFmaWEiIHZvaSANCm5odW5nIGNodW5n IGN1IHNhdSBkYXkuDQoNCi0gTmdheSAwNC85LzIwMDIgYmFuZyBDb25nIHZhbiBzbyAzNDkzL0tI RFQtWEQgU28gS0gtRFQgZGUgbmdoaSBVQk5EIHRoYW5oIA0KcGhvIEhvIENoaSBNaW5oIHhlbSB4 ZXQgdmllYyAidGhheSBkb2kgdG9hbiBibyBub2kgZHVuZyBkdSBhbiIgZGUgYmllbiBkdSBhbiBP S1ggDQp0aGFuaCBEdSBhbiBUcnVuZyB0YW0gVGh1b25nIG1haSBuaHVuZyB0cnVvYyBkbyA5IHRo YW5nLCBuZ2F5IDE1LzEvMjAwMiBDaHUgdGljaCANClVCTkQgVFAgTGUgVGhhbmggSGFpIGRhIHJh IHZhbiBiYW4gc28gMTM5L1VCLURCIGNoaSBkYW8gdGhhbmggbGFwIEhvaSBkb25nIGRlbiBidSAN CnRoaWV0IGhhaSwgZ2lhaSBwaG9uZyBtYXQgYmFuZyBjdWEgRHUgYW4uIE5naGlhIGxhIHRlbiBM ZSBUaGFuaCBIYWkgZGEgbGFtIGNhaSB2aWVjIA0KInNpbmggY29uIHJvaSBtb2kgc2luaCBjaGEi IQ0KDQotIENvbmcgdHkgRGF1IHR1IHZhIFhheSBkdW5nIFRoYW5oIG5pZW4geHVuZyBwaG9uZyBs YSAiY2h1IGRhdSB0dSByb20iOiB2b24gdHUgY28gKGtlIA0KY2EgdmF5IG5nYW4gaGFuZykgY2hp IGNoaWVtIDQuMyUgdG9uZyB2b24gZGF1IHR1IGN1YSBEdSBhbi4gTmdoaWEgbGEgRHUgYW4gZHVv YyBoaW5oIA0KdGhhbmgga2hvbmcgdHJlbiBuYW5nIGx1YyBjdWEgY2h1IGRhdSB0dSBtYSBob2Fu IHRvYW4gZHVhIHRyZW4gIm5hbmcgbHVjIGN1b3AgZGF0IiBjdWEgDQpjaHUgdGljaCBVQk5EIFRQ IEhvIENoaSBNaW5oIExlIFRoYW5oIEhhaS4NCg0KVGh1YyBoaWVuIFF1eWV0IGRpbmggc28gNTAx My9RRC1VQiBuZ2F5IDMvMTIvMjAwMiBjdWEgQ2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gDQpIbyBD aGkgTWluaCBMZSBUaGFuaCBIYWksIHZhbyBzYW5nIDE4LzEwLzIwMDIgQ2h1IHRpY2ggVUJORCBx dWFuIEJpbmggVGhhbmggDQpOZ3V5ZW4gSHV1IE5oYW4gZGEgY3UgbW90IGx1YyBsdW9uZyBkb25n IGRhbyBjb25nIGFuLCBkYW4gcGhvbmcuLi4gZGFwIG5oYSBjdWEgYmEgDQpLaW5oIG5vaSBjbyBC YW4gdGhvIFRvIHRpZW4gdmEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyBWYW4gSHV1 IHZhIER1b25nIA0KVmFuIExpbmggdmEgbmdheSAyNS80LzIwMDIsIFF1eWVuIENodSB0aWNoIFVC TkQgcXVhbiBCaW5oIFRoYW5oIE5ndXllbiBRdW9jIA0KSHVuZyBkYSByYSBRdXlldCBkaW5oIHNv IDE0NDIvUUQtVUIgKEJCVCkgIlZlIHZpZWMgYnVvYyBiYSBEdW9uZyBUaGkgS2luaCBnaWFvIA0K ZGF0IHRhaSBzbyAyNTUvNi8yNyBkdW9uZyBOZ28gVGF0IFRvLCBwaHVvbmcgMjIgcXVhbiBCaW5o IFRoYW5oIGRlIHRodWMgaGllbiBkdSBhbiANCnhheSBkdW5nIFRydW5nIHRhbSBUaHVvbmcgbWFp IJYgY2FuIGhvIE5ndXllbiBIdXUgQ2FuaCwgcGh1b25nIDIyLCBxdWFuIEJpbmggDQpUaGFuaCIg ZGUgcm9pIHNhbmcgNy81LzIwMDMgZHVhIGx1YyBsdW9uZyBjdW9wIGx1b24gZGF0IG8gY3VhIGJh IEtpbmghDQoNClF1YSB1YXQgdWMsIGJhIER1b25nIFRoaSBLaW5oIGRhIG5nYSBiZW5oIHZhIGNo ZXQgbW90IGNhY2ggdHVjIHR1b2khDQoNClRodWEgUXV5IHZpLCANCg0KVHV5ZW4gbmdvbiBEb2Mg bGFwIG5nYXkgMi85LzE5NDUga2hhbmcgZGluaDogIlRhdCBjYSBtb2kgbmd1b2kgZGV1IHNpbmgg cmEgY28gcXV5ZW4gDQpiaW5oIGRhbmcuIFRhbyBob2EgY2hvIGhvIG5odW5nIHF1eWVuIGtob25n IGFpIGNvIHRoZSB4YW0gcGhhbSBkdW9jOyB0cm9uZyBuaHVuZyANCnF1eWVuIGF5LCBjbyBxdXll biBkdW9jIHNvbmcsIHF1eWVuIHR1IGRvIHZhIHF1eWVuIG11dSBjYXUgaGFuaCBwaHVjIi4NCg0K SGllbiBwaGFwIHF1eSBkaW5oIHZlIE5oYSBudW9jIHZhIG5odW5nIHF1eWVuIGNvIGJhbiBjdWEg Y29uZyBkYW4gVmlldCBOYW0gdHJvbmcgDQpkbzoNCg0KLSBEaWV1IDI6ICJOaGEgbnVvYyBDb25n IGhvYSB4YSBob2kgY2h1IG5naGlhIFZpZXQgTmFtIGxhIE5oYSBudW9jIGN1YSBuaGFuIGRhbiwg ZG8gDQpuaGFuIGRhbiwgdmkgbmhhbiBkYW4iLg0KLSBEaWV1IDM6ICJOaGEgbnVvYyBiYW8gZGFt IHZhIGtob25nIG5ndW5nIHBoYXQgaHV5IHF1eWVuIGxhbSBjaHUgdmUgbW9pIG1hdCBjdWEgDQpu aGFuIGRhbiwgbmdoaWVtIHRyaSBtb2kgaGFuaCBkb25nIHhhbSBwaGFtIGxvaSBpY2ggY3VhIFRv IHF1b2MgdmEgY3VhIG5oYW4gZGFuOyB4YXkgDQpkdW5nIGRhdCBudW9jIGdpYXUgbWFuaCwgdGh1 YyBoaWVuIGNvbmcgYmFuZyB4YSBob2ksIG1vaSBuZ3VvaSBjbyBjdW9jIHNvbmcgYW0gbm8sIHR1 IA0KZG8sIGhhbmggcGh1YywgY28gZGlldSBraWVuIHBoYXQgdHJpZW4gdG9hbiBkaWVuIi4NCg0K LSBEaWV1IDQ4OiAiTmhhIG51b2MgcGhhdCBodXkgdGluaCB0aGFuIHlldSBudW9jIHZhIGNodSBu Z2hpYSBhbmggaHVuZyBjYWNoIG1hbmcgY3VhIA0KbmhhbiBkYW4uLi50aHVjIGNoaW5oIHNhY2gg aGF1IHBodW9uZyBxdWFuIGRvaSIuIA0KDQotIERpZXUgNTg6ICJDb25nIGRhbiBjbyBxdXllbiBz byBodXUgdmUgdGh1IG5oYXAgaG9wIHBoYXAsIGN1YSBjYWkgZGUgZGFuaCwgbmhhIG8uLi4gDQpO aGEgbnVvYyBiYW8gaG8gcXV5ZW4gc28gaHV1IGhvcCBwaGFwIHZhIHF1eWVuIHRodWEga2UgY3Vh IGNvbmcgZGFuIi4NCg0KLSBEaWV1IDcwOiAiQ29uZyBkYW4gY28gcXV5ZW4gdHUgZG8gdGluIG5n dW9uZywgdG9uIGdpYW8uLi5OaHVuZyBub2kgdGhvIHR1IGN1YSBjYWMgdGluIA0Kbmd1b25nLCB0 b24gZ2lhbyBkdW9jIHBoYXAgbHVhdCBiYW8gaG8iLg0KDQpQaGFwIGxlbmggVXUgZGFpIG5ndW9p IGhvYXQgZG9uZyBjYWNoIG1hbmcsIGxpZXQgc2kgdmEgZ2lhIGRpbmggbGlldCBzaSwgdGh1b25n IGJpbmgsIGJlbmggDQpiaW5oLCBuZ3VvaSBob2F0IGRvbmcga2hhbmcgY2hpZW4sIG5ndW9pIGNv IGNvbmcgZ2l1cCBkbyBjYWNoIG1hbmcgdGFpIERpZW0gYSwgS2hvYW4gDQoyIERpZXUgOSBxdXkg ZGluaDoiR2lhIGRpbmggbGlldCBzaSBkdW9jIHV1IHRpZW4gZ2lhbyBkYXQsIGR1b2MgZ2lhaSBx dXlldCBkYXQgbywgaG8gdHJvIGRlIA0KY28gbmhhIG8uIg0KDQpDaHUgdGljaCBIbyBDaGkgTWlu aCBsdW9uIGJpZXQgb24gY2FjIExpZXQgc2k6DQoNCi0gVGh1IG5oYW4gY2FjIGNvbiBsaWV0IHNp IGxhbSBjb24gbnVvaSBuZ2F5IDExLTExLTE5NDY6ICIuLi5Ub2kgZ3VpIGxvaSBjaHVjIHRoYW4g YWkgY2hvIA0KY2FjIGdpYSBkaW5oIGxpZXQgc2kgZG8gdmEgdG9pIG5oYW4gY2FjIGNvbiBsaWV0 IHNpIGxhbSBjb24gbnVvaSBjdWEgdG9pIi4NCg0KLSBUaHUgZ3VpIEdpYW0gZG9jIFNvIFkgdGUg QmFjIEJvLCBuZ2F5IDctMS0xOTQ3OiAiLi4uaG8gY2hldCBjaG8gVG8gcXVvYyBzb25nIG1haSwg DQp2YXQgY2hhdCBobyBtYXQgZGkgbmh1bmcgdGluaCB0aGFuIGhvIHNlIGx1b24gc29uZyBtYWkg dm9pIG5vbiBzb25nIFZpZXQgTmFtLiBOaHVuZyANCnRoYW5oIG5pZW4gZG8gbGEgYW5oIGh1bmcg ZGFuIHRvYy4gRG9uZyBiYW8gdmEgVG8gcXVvYyBzZSBraG9uZyBiYW8gZ2lvIHF1ZW4gb24gaG8u Ig0KDQotIERpZW4gdHUgdGFpIGJ1b2kgbGUgZGF0IHZvbmcgaG9hIG8gRGFpIExpZXQgc2kgbmdh eSAzMS0xMi0xOTU0OiAiLi4uIENhYyBsaWV0IHNpIGhpIHNpbmgsIA0Kbmh1bmcgY29uZyB0cmFu ZyB0byBsb24gY3VhIGNhYyBsaWV0IHNpIGRhIGdoaSBzYXUgdmFvIGxvbmcgdG9hbiBkYW4gdmEg bm9uIHNvbmcgZGF0IA0KbnVvYy4gQ2FjIGxpZXQgc2kgZGEgaGkgc2luaCwgbmh1bmcgY2hpIGto aSBkdW5nIGNhbSBjdWEgY2FjIGxpZXQgc2kgZGEgdGhhbSBuaHVhbiB2YW8gDQp0YW0gaG9uIGN1 YSB0b2FuIHF1YW4gdmEgZGFuIHRhIHRyb25nIGN1b2MgZGF1IHRyYW5oIGRhbmcgZ2lhbmggaG9h IGJpbmgsIHRob25nIG5oYXQsIA0KZG9jIGxhcCB2YSBkYW4gY2h1IHRyb25nIG51b2MuIE1hdSBu b25nIGN1YSBjYWMgbGlldCBzaSBkYSBuaHVvbSBsYSBxdW9jIGtpIHZlIHZhbmcgDQpjYW5nIHRo ZW0gZG8gdGhhbS4gVGllbmcgdGhvbSBjdWEgY2FjIGxpZXQgc2kgbXVvbiBkb2kgbHV1IHRydXll biBzdSB4YW5oLiINCg0KLSBUaHUgZ3VpIEJvIHRydW9uZyBCbyBUaHVvbmcgYmluaCBuZ2F5IDI3 LTctMTk1NjogIlRodW9uZyBiaW5oLCBiZW5oIGJpbmgsIGdpYSANCmRpbmggcXVhbiBuaGFuIHZh IGdpYSBkaW5oIGxpZXQgc2kgbGEgbmh1bmcgbmd1b2kgY28gY29uZyB2b2kgVG8gcXVvYywgdm9p IG5oYW4gZGFuLiANCkNobyBuZW4gYm9uIHBoYW4gY3VhIGNodW5nIHRhIGxhIHBoYWkgYmlldCBv biwgcGhhaSB0aHVvbmcgeWV1IHZhIGdpdXAgZG8gaG8uIiANCg0KTmh1IHZheSwgYmFuZyB2aWVj IGRhcCBuaGEsIGRhcCBub2kgdGhvIHR1IHRvIHRpZW4gdmEgY2FjIExpZXQgc2kgRHVvbmcgVmFu IENvLCBEdW9uZyANClZhbiBIdXUgdmEgRHVvbmcgVmFuIExpbmgsIGN1b3AgZGF0IG8gY3VhIGJh IER1b25nIFRoaSBLaW5oIGNobyBlbSBydW90IG1pbmggTGUgDQpUYW4gSHVuZywgY3VvcCBkaSBj YWkgUXV5ZW4gQ29uIE5ndW9pIHRvaSB0aGlldSBuaGF0LCBRdXllbiBNdXUgY2F1IGhhbmggcGh1 YyB0b2kgDQp0aGlldSBuaGF0IGN1YSBjb25nIGRhbiBsYSBRdXllbiBjbyBuaGEgbywgdGVuIGFj IG9uIExlIFRoYW5oIEhhaSwgVXkgdmllbiBCbyBDaGluaCANCnRyaSwgQmkgdGh1IFRoYW5oIHV5 IERhbmcgQ29uZyBzYW4gVmlldCBOYW0sIG5ndXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBkYW4g VGhhbmggDQpwaG8gSG8gQ2hpIE1pbmggY3VuZyBjYWMgdGVuIE5ndXllbiBIdXUgTmhhbiwgQ2h1 IHRpY2ggdmEgTmd1eWVuIFF1b2MgSHVuZywgDQpRdXllbiBDaHUgdGljaCBVeSBiYW4gbmhhbiBk YW4gcXVhbiBCaW5oIFRoYW5oLCB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggdmEgZG9uZyBib24gDQpr aGFjIGRhIHRyYW5nIHRyb24gY2hhIGRhcCBUdXllbiBuZ29uIERvYyBsYXAsIEhpZW4gcGhhcCB2 YSBwaGFwIGx1YXQsIG5nYW5nIG5oaWVuIA0KbmdvaSB4b20gbGVuIG5odW5nIGxvaSBrZXUgZ29p IGJpZXQgb24gTGlldCBzaSBjdWEgQ2h1IHRpY2ggSG8gQ2hpIE1pbmgsIGxhdCBkbyB0cmVuIHRo dWMgDQp0ZSBjaGluaCBxdXllbiBjdWEgRGFuLCBkbyBEYW4sIHZpIERhbiB2YSBkbyBkbyBsYSAi bHUgY3VvcCBuZ2F5IiwgbGEgZ2lhYywgbGEgIm5vaSB4YW0iIA0KliBLZSBUaHUgY3VhIHRvYW4g dGhlIG5oYW4gZGFuIFZpZXQgTmFtIQ0KDQpCYW4gdGhhbiBRdXkgdmkgbHVvbiBsdW9uIG5ldSBj YW8gVHV5ZW4gbmdvbiBEb2MgbGFwLCBsdW9uIGtldSBnb2kgIlNvbmcgdmEgbGFtIHZpZWMgdGhl byBIaWVuIHBoYXAgdmEgUGhhcCBsdWF0IiwgIkhvYyB0YXAgdGFtIGd1b25nIGRhbyBkdWMgSG8g Q2hpIE1pbmgiLCAiQ2hvbmcgZGllbiANCmJpZW4gaG9hIGJpbmgsIGxhdCBkbyBjaGluaCBxdXll biBuaGFuIGRhbiBjdWEgY2FjIHRoZSBsdWMgdGh1IGRpY2giLCB2LnYuIHZhIHYudi4gVmF5IGNv biANCmNobyBnaSBudWEgbWEgUXV5IHZpIGtob25nIGxvaSBjbyB0ZW4gYWMgb24gTGUgVGhhbmgg SGFpIGN1bmcgZG9uZyBib24gcmEgeGV0IHh1IHRydW9jIA0KVG9hIGFuIE5oYW4gZGFuIGRlIGJh dCBjaHVuZyBwaGFpIERlbiBObyBNYXUgbWEgY2FjIExpZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9u ZyANClZhbiBIdXUgdmEgRHVvbmcgVmFuIExpbmggZGEgZG8gcmEgZGUgVG8gUXVvYyBxdXlldCBz aW5oIQ0KDQpUcmVuIHRpbmggdGhhbiBkbywgbmhhbiBLeSBuaWVtIGxhbiB0aHUgNjUgTmdheSBE b2MgbGFwIDIvOSwgdG9pLCBDdSBIdXkgSGEgVnUsIHlldSANCmNhdSBRdXkgdmkga2hhbiBjYXAg Y2hpIGRhbyBob2FjIHRydWMgdGllcDoNCg0KMS4gS2hvaSB0byBiaSBjYW4gdmEgYmF0IGdpYW0g TGUgVGhhbmggSGFpIHZhIE5ndXllbiBIdXUgTmhhbiwgTmd1eWVuIFF1b2MgSHVuZyANCmN1bmcg ZG9uZyBib24ga2hhYyBkZSBkdWEgY2h1bmcgcmEgdmFuaCBtb25nIG5ndWEgZGUgYnVvYyBjaHVu ZyBsYW5oIGFuIHZlICJUb2kgaHV5IA0KaG9haSB0YWkgc2FuIiBxdXkgZGluaCB0YWkgRGlldSAx NDMsICJUb2kgY29uZyBuaGllbiBjaGllbSBkb2F0IHRhaSBzYW4iIHF1eSBkaW5oIHRhaSANCkRp ZXUgMTM3LCAiVG9pIGhvYXQgZG9uZyBuaGFtIGxhdCBkbyBjaGluaCBxdXllbiBuaGFuIGRhbiIg cXV5IGRpbmggdGFpIERpZXUgNzkgQm8gDQpMdWF0IGhpbmggc3UgZG8gZGEgZGFwIG5oYSwgZGFw IG5vaSB0aG8gdHUgdG8gdGllbiB2YSBjYWMgTGlldCBzaSBEdW9uZyBWYW4gQ28sIER1b25nIA0K VmFuIEh1dSB2YSBEdW9uZyBWYW4gTGluaCwgY3VvcCBkYXQgbyBjdWEgYmEgRHVvbmcgVGhpIEtp bmggZG9uZyB0aG9pIGRlIGJ1b2MgDQpjaHVuZyB0cmEgbGFpIGNobyBuaHVuZyBuZ3VvaSB0aHVh IGtlIGJhIER1b25nIFRoaSBLaW5oIG5oYSB2YSBkYXQgbyBtYSBjaHVuZyBkYSBkYXAgDQp2YSBj dW9wIGN1YSBiYSBLaW5oLg0KDQoyLiBUcnV5IGNhcCBuaGEgbywgZGF0IG8gY2hvIGJhIER1b25n IFRoaSBLaW5oIHRoZW8gdGlldSBjaHVhbiB0aGFuIG5oYW4gY28gY29uZyBudW9pIA0KY2FjIExp ZXQgc2kgRHVvbmcgVmFuIENvLCBEdW9uZyBWYW4gSHV1IHZhIER1b25nIFZhbiBMaW5oLg0KDQpE ZSBuZ2hpIFF1eSB2aSBnaWFpIHF1eWV0IERvbiB0byBjYW8gbmF5IHRoZW8gZHVuZyBxdXkgZGlu aCBjdWEgTHVhdCBLaGlldSBuYWksIHRvIGNhby4NCg0KVHJhbiB0cm9uZywgDQpEVDogMDkwNDM1 MDE4NywgRW1haWw6IGhhdnVsYXdAeWFob28uY29tLiBUaWVuIHNpIEx1YXQgQ3UgSHV5IEhhIFZ1 IA0KUGh1IGx1YzoNCg0KKEFuaCBjaHVwOiBOaGEgY3VhIGJhIER1b25nIFRoaSBLaW5oIGRhbmcg YmkgZGFwIHBoYSwgY29uZyBhbiBkdW5nIHhlbSkNCihBbmggY2h1cDogQmllbiBsYWkgYnV1IGRp ZW4gbmhhbiBjaHV5ZW4gZG9uIHRvIGNhbyBjdWEgVFMuIEN1IEh1eSBIYSBWdSkgIA0KDQpodHRw Oi8vd3d3LnF1YW4yLmhvY2hpbWluaGNpdHkuZ292LnZuL2ludHJvLmFzcHg/SW5mb0NvZGU9NDE0 DQoNClRQIEhDTTogT25nIE5ndXllbiBNaW5oIFRyaWV0IGxhIGRhaSBiaWV1IFFILCBkb2FuIFRQ IEhDTQ0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvQ2h1LXRpY2gtbnVvYy1OZ3V5ZW4tTWlu aC1UcmlldC10aWVwLXh1Yy1jdS10cmktQ2hpbmgtdG9pLWNvbi1iaS10aHUtdHVjLWhhbmgvNDAy MzA3NzQvMTU3LyBMRSBBTkggRFUgMjQvMTEvMjAwNywgMDc6MzcgR01UKzcNCg0KT25nIENodSB0 aWNoIG51b2MgTmd1eWVuIE1pbmggVHJpZXQgdGllcCB4dWMgY3UgdHJpOiANCg0KKyBEZSBuZ2hp IHRoYW5oIHRyYSB0b2FuIGRpZW4gZHUgYW4ga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtDQoNClRy dW9jIG5odW5nIGJ1YyB4dWMgY3VhIG5oaWV1IG5ndW9pIGRhbiBxdWFuIDIgdGFpIGJ1b2kgdGll cCB4dWMgZGFpIGJpZXUgUXVvYyBob2kgY2hpZXUgMjMtMTEsIA0KQ2h1IHRpY2ggbnVvYyBOZ3V5 ZW4gTWluaCBUcmlldCBxdWEgcXV5ZXQ6DQoNCiJUb2kgc2UgdHJ1YyB0aWVwIHBoYW4gYW5oIHZh IGRlIG5naGkgVGh1IHR1b25nIENoaW5oIHBodSBjaG8gbGFwIGRvYW4gdGhhbmggdHJhIHRvbmcg DQpob3AgZHUgbWFuaCB2YW8gdGhhbmggdHJhIHRvYW4gZGllbiBkdSBhbiBraHUgZG8gdGhpIG1v aSBUaHUgVGhpZW0gdHUgcXVpIGhvYWNoLCBxdWFuIA0KbHksIHN1IGR1bmcgZGF0Li4uIGRlbiAx NjBoYSBkYXQgdGFpIGRpbmggY3UgbWEgY3UgdHJpIHF1YW4gMiBkYW5nIHRoYWMgbWFjIi4NCg0K VHJ1b2MgZG8sIG1vdCBsYW5oIGRhbyBUaGFuaCB0cmEgQ2hpbmggcGh1IGN1bmcgY2hvIGJpZXQg c2UgZGUgbmdoaSBUaHUgdHVvbmcgY2hvIA0KdGhhbmggdHJhIHRvYW4gZGllbiB2aWVjIHF1YW4g bHksIHN1IGR1bmcgZGF0IHRyZW4gZGlhIGJhbiBxdWFuIDIsIHRyb25nIGRvIGNvIGR1IGFuIGto dSANCmRvIHRoaSBtb2kgVGh1IFRoaWVtLiAiVmllYyBuYW8gZHVuZyBjYW4gcGhhaSBkdW9jIGtl dCBsdWFuLCB1bmcgaG8gVFAgdGllcCB0dWMgbGFtLCANCmNobyBuYW8gc2FpIGN1bmcgY2FuIHBo YWkga2hhbmcgZGluaCBkZSBjaGFuIGNoaW5oLCBraGFjIHBodWMiIC0gdmkgbGFuaCBkYW8gbmF5 IG5vaS4NCg0KVHJvbmcgbHVjIGNobyBzdSBnaWFpIHF1eWV0IGN1YSBjYWMgY28gcXVhbiBjaHVj IG5hbmcsIENodSB0aWNoIG51b2MgZGUgbmdoaSBuZ3VvaSBkYW4gDQpiaSBhbmggaHVvbmcgY3Vh IGR1IGFuIFRodSBUaGllbSBjYW4gaGV0IHN1YyBiaW5oIHRpbmguIFN1IHVuZyBobyBjdWEgQ2h1 IHRpY2ggbnVvYyANCmR1b2MgY3UgdHJpIHF1YW4gMiBuaGlldCBsaWV0IGRvbmcgdGluaC4gVHV5 IG5oaWVuLCB0aGVvIGN1IHRyaSwgZG9hbiB0aGFuaCB0cmEgbmV1IHZhbywgY2FuIA0KdGhpZXQg cGhhaSB0aWVwIHh1YyB2b2kgbmd1b2kgZGFuIGRlIG5hbSB0aG9uZyB0aW4gZHVvYyBkYXkgZHUg aG9uLiBUcnVvYyBkbywga2hpIG5ldSB5IA0Ka2llbiwgY3UgdHJpIGtob25nIGRvbmcgdGluaCB2 b2kgY2FjaCBnaWFpIHRoaWNoIGN1YSBVQk5EIFRQIHRhaSB2YW4gYmFuIDczOTMgbmdheSAzMS0N CjEwLTIwMDcgZ3VpIFRodSB0dW9uZyBDaGluaCBwaHUgYmFvIGNhbyB2aWVjIHRodWMgaGllbiBx dWkgaG9hY2ggZGF1IHR1IGtodSBkbyB0aGkgDQptb2kgVGh1IFRoaWVtLg0KDQpDdSB0cmkgY2hv IHJhbmcgY29uIG5oaWV1IGRpZXUga2h1YXQgdGF0IHBoaWEgc2F1IGR1IGFuIG5heSBjYW4gcGhh aSBkdW9jIGxhbSByby4gQ3UgdHJpIA0KY3VuZyBraG9uZyBiYW5nIGxvbmcgdm9pIGNoaSBkYW8g bW9pIGRheSBjdWEgYmkgdGh1IFRoYW5oIHV5IFRQLkhDTSByYW5nICJraGFuIA0KdHJ1b25nIGNo dWFuIGJpIGRheSBkdSBxdWkgZGF0IHRhaSBkaW5oIGN1IHRyb25nIHBoYW0gdmkgbmFtIHBodW9u ZyBkZSB4YXkgZHVuZyANCjEyLjU1NSBjYW4gaG8gY2h1bmcgY3UgZGFwIHVuZyB5ZXUgY2F1IHRh aSBkaW5oIGN1IGNobyBuZ3VvaSBkYW4gdHJvbmcgZHUgYW4iLCB2aSB0aGVvIA0KY3UgdHJpLCBr aG9uZyB0aGUgZG9uIHF1YSBuaGlldSBuZ3VvaSB2YW8gY2h1bmcgY3UuDQoNClNhbmcgY3VuZyBu Z2F5LCBjdSB0cmkgcXVhbiAxIG1vdCBsYW4gbnVhIGJ1YyB4dWMgdHJ1b2MgdGluaCB0cmFuZyBx dWkgaG9hY2ggInRyZW8iIGRhbiANCmRlbiAidHJlbyIgY2EgY3VvYyBzb25nIG5ndW9pIGRhbi4g IktoaSBuYW8gY28gbmd1b2kgeWV1IHRoaSBoYXkgdGluaCBkZW4gY2h1eWVuIGN1b2kgDQp2byIs IGN1IHRyaSB2aSB2b24gbmh1IHZheSBkZSBkZSBuZ2hpIGNoaW5oIHF1eWVuIGtoaSBuYW8gY28g dGllbiwga2hpIG5hbyB0aW0gZHVvYyBkb2kgDQp0YWMgeGF5IGR1bmcgdGhpIGhheSBxdWkgaG9h Y2ggZ2lhaSB0b2EsIGNodSBkdW5nIGtob2FuaCB2dW5nIGRlIGRvIHJhdCBraG8gY2hvIGRhbi4g DQoiUXVpIGhvYWNoIHRyZW8gaGllbiBuYXkgZ2lvbmcgbmh1IGJhdCBuZ3VvaSB0YSBuaG90IHZh byB0aHVuZyBwaHV5LCBsYXUgbGF1IGRpIG5nYW5nIA0KZ28gbWF5IGNhaSIgLSBjdSB0cmkgc28g c2FuaC4NCg0KTGllbiBxdWFuIGRlbiB0aHUgdHVjIGhhbmggY2hpbmgsIG1vdCBjdSB0cmkgY2hv IGJpZXQ6ICJDbyBjdSBiYSBob24gNzAgdHVvaSwgc2F1IGtoaSANCmNob25nIGNoZXQgZHVvYyBt b3QgbmFtIHRoaSBtb2kgdGllbiBoYW5oIGxhbSBnaWF5IHRvIG5oYSBkYXQuIExlbiBxdWFuLCBj YW4gYm8geWV1IA0KY2F1IHBoYWkgYm8gdHVjIGdpYXkgY2h1bmcgdHUuIFNhdSBraGkgbm9wIGdp YXkgY2h1bmcgdHUgdGhpIGNhbiBibyB5ZXUgY2F1IGJvIHN1bmcgZ2lheSANCnhhYyBuaGFuIGRv YyB0aGFuIi4gQ2EgaG9pIHRydW9uZyBraG9uZyBhaSBuaW4gZHVvYyBjdW9pLiBDaHUgdGljaCBu dW9jIGNoaWEgc2U6ICJUaHUgDQp0dWMgY29uIGxhbSBuaGlldSBraGUsIGNoaW5oIHRvaSBjb24g YmkgdGh1IHR1YyBoYW5oIi4gVGhlbyBDaHUgdGljaCBudW9jLCBjb24gcXVhIG5oaWV1IA0KcXVp IGRpbmggYmF0IGhvcCBseSwgdHVvbmcgcmFuZyBxdWkgZGluaCBjaGkgdGlldCB0aGkgYmFvIHZl IGNobyBuZ3VvaSBkYW4gbmh1bmcgdGh1YyBjaGF0IGxhIGxhbSBraG8gbmd1b2kgZGFuLiANCg0K aHR0cHM6Ly9kYWlseXZuZXdzLndvcmRwcmVzcy5jb20vMjAxMC8xMC8wOS9sZS10aGFuaC1oJUUx JUJBJUEzaS1uZ3V5JUUxJUJCJTg1bi10JUUxJUJBJUE1bi1kdW5nLXZhLXYlRTElQkIlQTUtYyVD NiVCMCVFMSVCQiU5QnAtMTUtdCVFMSVCQiVCNy11c2QtdCVFMSVCQSVBMWkta2h1LWRvLXRoJUUx JUJCJThCLW0lRTElQkIlOUJpLXRoJUUxJUJCJUE3LXRoaWVtLXF1JUUxJUJBJUFEbi0yLXRwaGNt LyBEYWlseVZOZXdzIERhbiBEZW4gMDkvMTAvMjAxMCANCg0KTGUgVGhhbmggSGFpLCBOZ3V5ZW4g VGFuIER1bmcsIE5ndXllbiBNaW5oIFRyaWV0IHZhIHZ1IGN1b3AgMTUgdHkgVVNEIHRhaSBraHUg ZG8gdGhpIG1vaSBUaHUgVGhpZW0gcXVhbiAyIFRQSENNDQoNClRodSBkb2FuIGN1b3AgZGF0IHZh IHZ1IFZpbmFzaW4gMg0KDQpLaHUgZG8gdGhpIG1vaSBUaHUgVGhpZW0gliBRdWFuIDIgliBUUEhD TSBsYSBtYW5oIGRhdCByb25nIDkzMGhhIG5hbSBuZ2F5IGJlbiANCmJvIGNvbiBzb25nIFNhaSBH b24sIGRvaSBkaWVuIGtodSB0cnVuZyB0YW0gc2FtIHVhdCBzYW5nIHRyb25nIHNvIDEgdGhhbmgg cGhvLiBEbyBjbyB2aSANCnRyaSB0dXlldCBkZXAgbmh1IHZheSBuZW4gVGh1IFRoaWVtIHRhdCB5 ZXUgZGEgdHJvIHRoYW5oIG1pZW5nIG1vaSB0aG9tIGhhcCBkYW4gY2FjIA0KZGFpIGdpYSBiYXQg ZG9uZyBzYW4gdmEgbW90IHNvIHF1YW4gY2h1YyBiaWVuIGNoYXQgY3VhIFRQIEhvIENoaSBNaW5o IHZhIFRydW5nIFVvbmcuIA0KDQpUdSAyMDAyLCBsYW5oIGRhbyB0aGFuaCBwaG8gbWEgbHVjIGRv IG9uZyBMZSBUaGFuaCBIYWkgbGEgY2h1IHRpY2ggdGhhbmggcGhvIGRhIHZvaSB2YSANCnJhIGxl bmggdGh1IGhvaSBkYXQga2hpIGNodWEgdGh1YyBoaWVuIG5odW5nIHF1eSBkaW5oIGJhdCBidW9j IGN1YSBwaGFwIGx1YXQuIFN1IHZvIHRyYWNoIA0KbmhpZW0gdGhheSByYXQgcm8ga2hpIGR1IGFu IGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSBkdW9jIGdvaSBtb3QgY2FjaCBtaWEgbWFpIGxhIGR1 IA0KYW4gQk9OIEtIT05HOiAia2hvbmcgZHUgYW4gZGF1IHR1LCBraG9uZyBxdXkgaG9hY2ggY2hp IHRpZXQsIGtob25nIHBodW9uZyBhbiBib2kgDQp0aHVvbmcsIGtob25nIG5oYSB0YWkgZGluaCBj dSIuIEtob25nIGR1bmcgbGFpIG8gZG8sIHZvaSBkYSB0YW0gJ3RodSBob2kgZGF0IHZvaSBjaGkg cGhpIA0KdGhhcCBuaGF0JywgTGUgVGhhbmggSGFpIGRhIGNoaSBkYW8gZGFuIGVtIGxheSBnaWEg ZGF0IHR1IG5hbSAxOTk1ICh0aGVvIHF1eWV0IGRpbmggMDUgDQpuZ2F5IDQvMS8xOTk1KSBkZSBi b2kgdGh1b25nIGNobyBkYW4gdHUgbmFtIDIwMDIgZGVuIGdpbyBiYXQgY2hhcCBjYWMgcXV5IGRp bmggY3VhIA0KUXVvYyBob2kgdmEgQ2hpbmggcGh1IGJvaSB0aHVvbmcgc2F0IGdpYSB0aGkgdHJ1 b25nLg0KDQpTdSBiYXQgaG9wIGxpIG8gZGF5IGxhIGNoZW5oIGxlY2ggZ2lhIGJvaSB0aHVvbmcg dmEgZ2lhIHRoaSB0cnVvbmcgdnVvdCBxdWEgc3VjIHR1b25nIA0KdHVvbmcgY3VhIG1vaSBuZ3Vv aSwgdGhlbyBxdXlldCBkaW5oIDEzNS9RRC1VQiBuZ2F5IDIxLzExLzIwMDIgY3VhIFVCTkQgVFBI Q00sIA0KZ2lhIGJvaSB0aHVvbmcgZGF0IG8gbGEga2hvYW5nIDIgdHJpZXUgZG9uZyBtb3QgbWV0 IHZ1b25nLCBkYXQgbm9uZyBuZ2hpZXAgMjAwLjAwMCANCmRvbmcgbW90IG1ldCB2dW9uZywgY29u IGdpYSB0aGkgdHJ1b25nIHRoaSBjYW8gdm90LCBkYXQgbyB0cm9uZyBkdSBhbiA3MCB0cmlldSBk b25nLCBkYXQgDQpub25nIG5naGllcCBiYW5nIDQwJSBraG9hbmcgMjggdHJpZXUgZG9uZy4gVHJv bmcgbHVjIFF1b2MgaG9pIHZhIENoaW5oIHBodSB0cmluaCANCnRyb25nIHRob25nIGNhbyB2b2kg cXVvYyBkYW4gcmFuZyB0dSBuYW0gMjAwMyBzZSBib2kgdGh1b25nIGRheSBkdSBuaHVuZyB0aGll dCBoYWkgbWEgDQpuaGEgbnVvYyBnYXkgcmEga2hpIHRodSBob2kgZGF0IGN1YSBkYW4sIGJvaSB0 aHVvbmcgc2F0IGdpYSB0aGkgdHJ1b25nLCB0aGkgbyBTYWkgR29uLCBMZSANClRoYW5oIEhhaSBs YWkgYmF0IGNoYXAgaGV0IHRhdCBjYSBxdXkgZGluaCBjdWEgY2FwIHRyZW4gZGUgbmVvIGdpYSBi b2kgdGh1b25nIGhvbiBjaHVjIA0KbmFtIHF1YSB2byBseSBsYW0gaGFpIGRhbiBkZW4uIENoZW5o IGxlY2ggZ2lhIGJvaSB0aHVvbmcgbGVuIGRlbiBoYW5nIGNodWMgdGhhbSBjaGkgDQpoYW5nIHRy YW0gbGFuIGNoYWMgY2hhbiBwaGFpIGxhbSBkZW0gZGVuIG5odW5nIHF1eWVuIGxvaSBraG9uZyBs byBuaHVuZyBob2FuIHRvYW4gDQpwaGkgcGhhcCBjaG8gTGUgVGhhbmggSGFpIHZhIGUga2lwLiBU aW5oIHNvIHNvIG1vaSBtZXQgdnVvbmcgZGF0IGNhYyBxdWFuIGxhbSAndmVuaCcgDQpyYSBkdW9j IDMwIHRyaWV1IGRvbmcgdGhpIHRvbmcgc28gdGllbiBkYW4gVGh1IFRoaWVtIGJpICduYW5nJyBt YXQgc2UgbGEgbW90IGNvbiBzbyB2b2kgDQp2byBzbyBuaHVuZyBzbyAwIGRhbmcgc2F1OiAyNzAu MDAwIHR5IGRvbmcgdHVvbmcgZHVvbmcgKGxvbiBnYXAgMyBsYW4gc28gdGllbiANCnRoaWV0IGhh aSBjdWEgdnUgYW4gVmluYXNpbi4gS2hvbmcgY29uIG5naGkgbmdvIGdpIG51YSwgdnUgJ2N1b3Ag ZGF0JyBvIFRodSBUaGllbSB2YSANCnZ1IFZpbmFzaW4gbGEgMiB2dSBhbiB0aGFtIG5odW5nIGxv biBuaGF0IHRyb25nIGxpY2ggc3UgY2FjaCBtYW5nIFZpZXQgTmFtLg0KDQpOYW0gMjAwOCwgc2F1 IGtoaSBsYW0gc29uZyBwaGFuIG5vIGN1YSBuZ3VvaSBkYW4gVGh1IFRoaWVtIHZlIGNhYyBxdXkg ZGluaCBib2kgDQp0aHVvbmcgcXVhIHZvIGxpICdubyB0dW5nJyB0cmVuIGNhYyB0byBiYW8gdXkg dGluIGN1YSBjYSBudW9jLCB0aGFuaCBwaG8gdmEgcXVhbiAyIGRhIHRpbSANCmNhY2ggJ3hvYSBk aXUnIG5oYW4gZGFuIHZhIG1vdCBiYW4gZHUgdGhhbyBzdWEgZG9pIGJvIHN1bmcgY2hpbmggc2Fj aCBib2kgdGh1b25nIGR1b2MgDQpkdWEgcmEgdHJ1bmcgY2F1IHkga2llbiBjdSB0cmkgY2hvIGNv IHZlIGRhbiBjaHUuIEN1IHRyaSwgdHJvbmcgZG8gY28gbmhpZXUgY3V1IGNoaWVuIGJpbmggDQp2 YSBkYW5nIHZpZW4gdHJ1bmcga2llbiwgZGEgdGhhbmcgdGh1bmcgYmFjIGJvIGR1IHRoYW8gbmF5 IHZpIGx5IGRvIGR1IHRoYW8ga2hvbmcgYm9pIA0KdGh1b25nIHNhdCBnaWEgdGhpIHRydW9uZyB0 aGVvIGx1YXQgRGF0IERhaSAyMDAzIHZhIG5naGkgZGluaCAxOTcgY3VhIENoaW5oIFBodSBtYSBo byANCnRybyB0aGVvIGtpZXUgYm8gdGhpIGNobyB0aGVtIGNodXQgZGluaCBraG9uZyBkYW5nIGtl LiBDaG8gZHUgbmhhbiBkYW4gZGEgYmFjIHBodW9uZyANCmFuIHN1YSBkb2kgYm8gc3VuZyBuaHVu ZyAnY2hpbmggcXV5ZW4gY3VhIGRhbiBkbyBkYW4gdmkgZGFuJyBxdWFuIDIgbWEgZHVuZyBkYXUg bGEgQmkgDQp0aHUgcXVhbiBUYXQgVGhhbmggUGhvbmcgdmEgQ2h1IHRpY2ggcXVhbiBMZSBUcm9u ZyBTYW5nIChkZXUgbGEgbmh1bmcgZGUgdHUgdGhhbiB0aW4gDQpjdWEgTGUgVGhhbmggSGFpKSB2 YW4gY3UgZGUgdHJpbmggdGhhbmggcGhvIHZhIHRoYW5oIHBobyB2YW4gY3UgbmdhbmcgbmhpZW4g cGhlIGR1eWV0IA0KbW90IHF1eWV0IGRpbmggdnVhIHRyYWkgcXV5IGRpbmggY3VhIHRyZW4gdnVh IHRyYWkgeSBjdSB0cmkgKHF1eWV0IGRpbmggMDYgbmdheSANCjIxLzEvMjAwOSkuIER1bmcgbmdo aSBkYXUgb2MgbGFuaCBkYW8gdGEgJ2RhdSBwaHUnIG1hIGxhbSB0bywgZGUgZGFtIGJhbyBhbiB0 b2FuIGNobyANCm1pbmgsIHRydW9jIGtoaSBsaWV1IG1pbmggZGF0IGJ1dCBreSB2YW8gbW90IHF1 eWV0IGRpbmggdHJhaSBsdWF0IGN1YSBVQk5ELCBOZ3V5ZW4gDQpUaGFuaCBUYWkgliBQaG8gQ1Qg VUJORCBUUEhDTSBkYSB5ZXUgY2F1IExlIFRoYW5oIEhhaSBjaHUgdHJpIGN1b2MgaG9wIGN1YSB0 YXAgDQp0aGUgVGh1b25nIHRydWMgdGhhbmggdXkgdmFvIHRoYW5nIDEyLzIwMDggZGUgdGhvbmcg cXVhIGNodSB0cnVvbmcga2hvbmcgdGh1YyBoaWVuIA0KdGhlbyBsdWF0IERhdCBEYWkgMjAwMyB2 YSBjYWMgbmdoaSBkaW5oIGN1YSBDaGluaCBQaHUsIGNoaSBobyB0cm8gdGhlbSBjaG8gZGFuIFRo dSANClRoaWVtLiBUaGUgbGEgdGFwIHRoZSB0aGFuaCB1eSBUUEhDTSBkYSBxdXlldCwgbWEgY28g cXV5ZXQgc2FpIGRpIGNoYW5nIG51YSB0aGkgY3VuZyANCmNoYW5nIHRoZSBuYW8geHUgZHVvYyBj YSB0YXAgdGhlIHRoYW5oIHV5LiBQaHVvbmcgdGh1YyAncGhhbSB0b2kgY28gdG8gY2h1YycgdGhl byBsdWF0IA0KaGluaCBzdSBsYSB0aW5oIHRpZXQgdGFuZyBuYW5nIG5odW5nIHRoZW8gbHVhdCBj dWEgRGFuZyB0aGkgY2hpbmggbGEgbW90IHRpbmggdGlldCBnaWFtIG5oZSANCih0aGFtIGNoaSBu aGUgbmh1IGtob25nKSwgdmkgdmF5IHBodW9uZyB0aHVjIG5heSBkdW9jIGRlbSByYSB2YW4gZHVu ZyB0aHVvbmcgeHV5ZW4uDQoNCk5vaSB0b20gbGFpIGxhIG5odW5nIGdpIG1hIGxhbmggZGFvIFRQ SENNIGRhIHF1eWV0IHRoaSBzZSBtYWkgbWFpIGtob25nIHRoYXkgZG9pIG1hYyANCnJhbmcgbHVh dCB2YSBuZ2hpIGRpbmggY28gdGhheSBkb2kgdGhlIG5hbyB2YSBiYW8gbmhpZXUgbGFuIGRpIG51 YS4gQ3UgeWVuIHRhbSB2YXkgZGkhDQoNCk5obyBvbiBjaGluaCBzYWNoIG1vaSBjdWEgb25nIEhh aSBnaWEgZGluaCB0b2kgaG9uIDggdHJhbSBtZXQgdnVvbmcgZGF0IGNhY2ggZHVvbmcgDQpEb25n IEtob2kgbWFjIG5oYXQgU2FpIEdvbiBob24gMjAwIG1ldCBzZSBjaGkgbXVhIGR1b2MgaG9uIDIg bWV0IHZ1b25nIGRhdCBvIA0KZHVvbmcgRG9uZyBLaG9pLiBRdWEgbGEgY3VvYyBzb25nIGN1YSB0 b2kgY29uIHR1aSBuaHVjIHJlIHJ1bmcgaG9uIGtpZXAgbm8gbGU/DQoNCidSYSBoYW5nJw0KDQpT YXUga2hpIGRhIHRodSBnb20gZHVvYyBtb3QgZGllbiB0aWNoIGRhdCBraGEgbG9uLCBidW9jIHRp ZXAgdGhlbyBwaGFpIHRpbmggbGEgJ3JhIGhhbmcnIA0KaGF5IG5vaSB0aGVvIGdpb25nIGN1YSBn aW9pIGtpbmggZG9hbmggbGEgJ2hpZW4gdGh1YyBob2EgbG9pIG5odWFuJy4gTGFuaCBkYW8gdGhh bmggcGhvIA0KZGEgY2hvbiBtYXQgRGFuZyBUaGFuaCBUYW0gZGUgZ29pIHZhbmcsIG1hIERhbmcg VGhhbmggVGFtIGxhIGFpLCBsYSBuaGEgdHUgYmFuIGdpYXUgDQpzbyBtb3QgVk4sIGxhIGNodSB0 aWNoIGhvYWMgZ2lhbSBkb2MgY3VhIGNhYyBjb25nIHR5IGtlY2ggc3Ugbmh1IFNhaSBHb24gSW52 ZXN0LCBLaW5oIA0KQmFjLCBUYXAgZG9hbiBUYW4gVGFvIChiYSBIYWkgVGFtIGNoaSBydW90IGN1 YSB0aHUgVHVvbmcgTmd1eWVuIFRhbiBEdW5nIGxhbSBjaHUgDQp0aWNoKSwgRGFuZyBUaGFuaCB0 YW0gZGEgeGluIGR1b2MgYm9uIGNhYyBkdSBhbiBuaG8gdmFvIG5odW5nIG1vaSBxdWFuIGhlICd0 ZSBuaGknIA0Kdm9pIGNhYyB2aSBsYW5oIGRhbyBkYXQgbnVvYyB0cm9uZyBkbyBjbyBuaGFuIHZh dCBjaGluaCBjdWEgdnUgVmluYXNpbi1UaHUgVHVvbmcgDQpOZ3V5ZW4gVGFuIER1bmcuIFRoZW8g dGlldCBsbyBjdWEgYmFvIGNoaSwgdHJvbmcgbHVjIGdpYSBkYXQgdGhpIHRydW9uZyBxdWFuIDIg bGllbiB0dWMgDQpzb3Qgbm9uZyB0aGkgbGFuaCBkYW8gdGhhbmggcGhvIGxhaSB0aW5oIGNobyBD b25nIHZpZW4gUGhhbiBtZW0gY3VhIERhbmcgVGhhbmggVGFtIA0KbW90IGNhaSBnaWEga2hvbmcg dGhlICdsYW5oJyBob246IDEwIHRyaWV1IGRvbmcgbW90IG1ldCB2dW9uZyAoMS41MDAgdHkgY2hv IGRpZW4gdGljaCANCjE1LDloYSkuIEN1bmcgdGhlbyBiYW8gY2hpLCBEYW5nIFRoYW5oIFRhbSBk YSBkZW0gZGF0IG5heSBkaSBnb3Agdm9uIHBoYXAgZGluaCB2b2kgDQpkb2kgdGFjIG51b2Mgbmdv YWkgZHVvYyAxLjUwMFVTRCBtb3QgbWV0IHZ1b25nLiBMeSBreSBob24gbnVhIGxhIHRoYW5nIDA3 IG5hbSAyMDA5IA0KKG1vdCBuYW0gc2F1IGtoaSBtdWEgZGF0IHZhIHRpZW4gaGFuaCBkdSBhbiks IGNodSBkYXUgdHUgZHUgYW4gQ29uZyB2aWVuIHBoYW4gbWVtIA0KdmFuIGNodWEgZG9uZyBtb3Qg eHUgdGllbiBkYXQgY2hvIG5oYSBudW9jLiBTZSBjb24gcmF0IG5oaWV1IGR1IGFuIG51YSBkdW9j IGdpYW8gZGF0IHZhIA0KdGllbiBkYXQgY3VhIGRhbiBzZSB0aWVwIHR1YyB1biB1biBjaGF5IHJh IGtob2kgdHVpIGRhbiB2byB0dWkgY2FjIHR1IGJhbiB0aGFuIGh1dSB2YSBjYWMgDQpxdWFuIGNo dWMgdGhhbSBuaHVuZy4gRG9uZyB0aWVuIGtob25nIGxvIGtpZW0gZHVvYyB0dSB2dSBhcCBwaGUg VGh1IFRoaWVtIHNlIGRvbmcgDQp2YWkgdHJvIHRoZSBuYW8gdHJvbmcgdnUgY2hheSBnaGUgdHJv bmcgY2FjIGRhaSBob2kgc2FwIG1vIG1hbiB0aG9pIGdpYW4gdG9pPw0KDQpDbyBuaGFuIGNvIG5v aSAnQ3VvcCBkZW0gbGEgZ2lhYywgY3VvcCBuZ2F5IGxhIHF1YW4nLiBWYW4gYmlldCBxdWFuIHRo aSBwaGFpICdjdW9wJyANCm1vaSBsYSBxdWFuIG5odW5nIGN1b3Agdm9pIG11YyBkbyBjaG9uZyBt YXQgbmh1IHZheSB0aGkgZGFuIGNvIG1hIGNhcCBkYXQgbWEgYW4uDQoNCkxvIGRpZW4gbyBkdTog Tmd1eWVuIFRhbiBEdW5nDQoNClRpbmggaGluaCBjdW9wIGJvYyBkYW5nIHh1b24geGUgdGhpIG5h bSAyMDA2IG9uZyBOZ3V5ZW4gTWluaCBUcmlldCB0cnVuZyBjdSBjaHVjIA0KQ2h1IHRpY2ggbnVv YyB2YSBiYXQgZGF1IHNpbmggaG9hdCB0byBkYWkgYmlldSBRdW9jIGhvaSB0YWkgcXVhbiAyLiBU dSBraGkgc2luaCBob2F0IHRhaSANCmRheSBvbmcgVHJpZXQga2hvbmcgY28gZHVvYyBtb3Qgbmdh eSB0YW4gaHVvbmcgY3VvYyBkb2kgQ2h1IHRpY2ggbnVvYyBtYSBzdW90IG5nYXkgDQpwaGFpICds YW5oIGR1JyBuaHVuZyBidWMgeHVjIGN1YSBjdSB0cmkgUGh1b25nIFRodSBUaGllbSB2aSBiaSBi b2MgbG90IG1vdCBjYWNoIHF1YSANCnRhbiBiYW8gYm9pICdiYW4gdGF5IHNhdCcgY3VhIGNoaW5o IHF1eWVuLiBLaG9uZyBjaGl1IG5vaSBzdSB0cmFjaCBtb2MgY3VhIGRhbiwgdHJvbmcgDQpidW9p IHNpbmggaG9hdCB2b2kgY3UgdHJpIFRodSBUaGllbSB0aGFuZyAxMS8yMDA3LCBvbmcgVHJpZXQg Z2lvIG5hbSBkYW0gbG9uIHRpZW5nIA0KdHV5ZW4gYm86IHRvaSBzZSB2ZSB5ZXUgY2F1IFRodSB0 dW9uZyBkdWEgZG9hbiB0aGFuaCB0cmEgQ2hpbmggcGh1IGxpZW4gbmdoYW5oIA0KdmFvIHRoYW5o IHRyYSB0b2FuIGRpZW4ga2h1IGRvIHRoaSBtb2kgVGh1IFRoaWVtLiBIYXkgZG9pIGRheSEgKENv aSBibyBuaHUgb25nIHRhDQogbW9pIHhlbSBwaGltIGhvYXQgaGluaCBjdWEgTmdhISkuDQoNCkJp ZXQgdHJ1b2MgdGluaCBoaW5oIGJhdCBvbiB2aSBkYW4ga2llbiBxdXlldCBkYXUgdHJhbmggY2hv bmcgdGhhbSBuaHVuZywgTGUgVGhhbmggSGFpIA0KZGEgY2F1IGN1dSBvIGR1IGN1YSBtaW5oIGxh IE5ndXllbiBUYW4gRHVuZyB2YSBtb3Qga2ljaCBiYW4gdGh1b25nIGdhcCBkYSBkaWVuIHJhOiAN CnRoYW5oIHBobyB4aW4gZHVvYyBuZ2hpZW0ga2hhYyB0dSB0aGFuaCB0cmEgdmEgb25nIER1bmcg ZGEgJ3Z1aSB2ZSBuaGFuIGxvaScgDQooa2hvbmcgY2hvIFRoYW5oIHRyYSBDaGluaCBwaHUgdm8g dGhhbmggdHJhIHRoYW5oIHBobyB2aSBsaSBkbyBUaGFuaCB0cmEuLi4gYmFuKS4gDQpDaGFjIGxh IFRoYW5oIHRyYSBDaGluaCBwaHUgY2hpIGNodXllbiBsYW0gbmh1bmcgdnUgYW4gJ2NodW90IG5o YXQnLCBraG9uZyBsYW0gJ2NodW90IA0KY29uZycuIFRyb25nIGxpY2ggc3UgY2FjaCBtYW5nIGN1 YSBkYXQgbnVvYywgTmd1eWVuIFRhbiBEdW5nIGN1bmcgZGEgY28gcXV5ZXQgZGluaCANCnR1b25n IHR1IGxhIGNhbiB0cm8gdGhhbmggdHJhIENoaW5oIHBodSB2byB0aGFuaCB0cmEgY29uIGN1bmcg VmluYXNpbiwga2V0IGN1YyBsYSBWaW5hc2luIA0KZGEgY2hpbSBuZ2F5IGtoaSBjaHVhbiBiaSBy YSBraG9pIGtlbyB0aGVvIGdhbiA1IHR5IFVTRCB0aWVuIHRodWUgY3VhIGRhbi4NCg0KVGllcCBu b2kgaGFuaCBkb25nIGJhbyBjaGUgY2hvIHRhcCBkb2FuIHRoYW0gbmh1bmcgTGUgVGhhbmggSGFp LCBjYSBuaGFuIFRodSB0dW9uZyANCkR1bmcgZGEgcXVhIG1hdCB0YXAgdGhlIChraG9uZyBkdW5n IHRoYW0gcXV5ZW4pIGNoaW5oIHBodSBuZ2FuZyBuaGllbiBob3AgdGh1YyBob2EgDQpjaG8gc2Fp IHBoYW0gY3VhIFRQSENNIGJhbmcgY29uZyB2YW4gOTc3L1ZQQ1AtS05UTiBuZ2F5IDMvMTAvMjAw OCBjaG8gcGhlcCANClRQSENNIHRodSBob2kgZGF0IGtodSBkbyB0aGkgbW9pIFRodSBUaGllbSBt YSBraG9uZyBjYW4gbGFtIHBodW9uZyBhbiBib2kgdGh1b25nIA0Kbmh1IG5naGkgZGluaCBjdWEg Q2hpbmggcGh1IGRhIHF1aSBkaW5oLg0KDQpCYXQgZHVvYyB0aW4gaGlldSB0b3QgdHUgbmdhaSBU aHUgdHVvbmcsIGR1b2MgbmhhbiBuaHVuZyBkb25nIHRpZW4gaGF1IGhpbmggbWEgY2hpbmggDQpx dXllbiBnb2kgbGEgJ3RpZW4gZHUgYW4nLCBjYW4gYm8gcXVhbiAyIHRoaSBuaGF1IGRhbiBhcCBl cCBkYW4ga2V0IGhvcCB2b2kgbHVhIHBoaW5oIGRlIA0KZGFuIG5oZSBkYSBraSBjaGFwIG5oYW4g Y2hpbmggc2FjaCBib2kgdGh1b25nIGJhdCBsdW9uZy4gUXVvYyBob2kgdGhpIG5odSBkYSBiaXQg bWF0LCANCmJpdCB0YWkgdHJ1b2MgdnUgYW4gbG9uIG5oYXQgbGljaCBzdSBkYXQgbnVvYy4NCg0K RGFuIGRlbiBjaHVuZyB0b2kgbXVvbiBRdW9jIGhvaSBwaGFpIGNodW5nIHRvIHN1IGR1bmcgY2Ft IG1hIG1vaSBkYWkgYmlldSBkZXUgY28gDQp0cm9uZyB0cmFpIHRpbSBtaW5oIHRvIGNodWMgdGhh bmggdHJhIDIgdnUgYW4gc2lldSBuZ2hpZW0gdHJvbmcgbGEgdnUgVmluYXNpbiB2YSBraHUgZG8g DQp0aGkgbW9pIFRodSBUaGllbS4gQ29uIG5oaWV1IGNoaSB0aWV0IGNoYW4gZG9uZyBudWEsIG5l dSBRdW9jIGhvaSBtdW9uIGJpZXQgY2hhbiB0byBrZSANCnRvYyB2dSB0aWV1IGN1YyBuYXkgeGlu IGN1IGhvaSBkb25nIGNoaSBDaHUgdGljaCBUcmlldCBsYSBiaWV0IGhldC4gQ2h1bmcgdG9pIG1v bmcgbmhhbiANCmR1b2MgdGhvbmcgdGluIGRpYSBjaGkgbm9pIG8gY3VhIGNhYyBsYW5oIGRhbyB0 aGFuaCBwaG8gdmEgcXVhbiAyIGNvIGRpbmggbGl1IGRlbiB2dSBUaHUgDQpUaGllbSB2YSBnaWEg ZGluaCBkZSBjbyBkaXAgc2UgdmllbmcgdGhhbSB2YSB2YW4gZG9uZyB0aHV5ZXQgcGh1YyBjYWMg J2RvbmcgY2hpJyB0cm8gdmUgDQpkdW5nIGNvbiBkdW9uZyBtYSBkYW5nIGRhIGNob24uIENhdSB0 cm9pIGtoYW4gcGhhdCBwaHUgaG8gY2hvIGtlIHRodSBjdWEgbmhhbiBkYW4gbGEgDQpMZSBUaGFu aCBIYWksIE5ndXllbiBUYW4gRHVuZywgTmd1eWVuIFRydW5nIFRpbmgsVGF0IFRoYW5oIFBob25n LCBMZSBUcm9uZyBTYW5nIHZhIG5odW5nIA0Ka2UgYmFvIGNoZSwgdG9uZyBwaGFtLCBkb3Qgbmhp ZW4gY28gbGllbSBzaSB2YSB0dSBuZ3V5ZW4ga2hvbmcgdW5nIGN1IHRyb25nIA0KZGFpIGhvaSBk YW5nIHRoYW5oIHBobyB2YSB0cnVuZyB1b25nIHRvaSBkYXkuDQoNCihZIGtpZW4gY3UgdHJpOiBO aHUgdmF5IG5oaWV1IG5hbSBkYSB0cm9pIHF1YSBtYSBuZ3VvaSBkYW4gcXVhbiAyIFRQIEhDTSB2 YW4gDQpwaGFpIGNoaXUgb2FuIHVjIHZpIHRoYW0gbmh1bmcgbG9uZyBoYW5oLiBPbmcgTmd1eWVu IE1pbmggVHJpZXQgaHVhIG1hIGtob25nIGxhbQ0KdHVjIGxhIHRoaWV1IHR1IHRyb25nLCBraG9u ZyBob2FuIHRoYW5oIG5oaWVtIHZ1LiBPbmcgTmd1eWVuIFRhbiBEdW5nIGxvIGRpZW4gcm9pLCAN Cm5heSBsYWkgbG8gZGllbiB0aGVtIG9uZyBUcmlldCBudWEuIFZ1IGFuIG5heSBraG9uZyBiaWV0 IHJvaSBzZSBkaSBkZW4gZGF1LikgDQoNCi0NCmh0dHA6Ly9mb3J1bXMudGh1eW5nYW9ubGluZS5j b20vdG0uYXNweD9tPTgxNDEzOSZtcGFnZT0xJmtleT0mIzgxNDEzOSBUcnVuZyBEaWVuIA0KDQpD b25nIGFuOiBPbmcgTGUgSG9uZyBBbmggbXVvbiBsYW0gQmkgdGh1IFNhaSBHb24gDQoNClZ1IHRo YW0gbmh1bmcgUENJIGRhIGRhbiBkZW4gaGF1IHF1YSBiYXQgbmdvIGRvaSB2b2kgQm8gY2hpbmgg dHJpIERhbmcgQ29uZyBzYW4gVmlldCANCk5hbSBsYSBjaGluaCBwaHUgTmhhdCBjdXAgdmllbiB0 cm8gT0RBIG5hbSAyMDA5LCBjaG8gZGVuIGtoaSBuYW8gSGEgTm9pIGdpYWkgcXV5ZXQgDQpob3Ag bHkgdnUgVGhhbmggdXkgU2FpIEdvbiBkYSB0aGFtIG8gbGVuIGRlbiAyLDUgdHJpZXUgTXkgS2lt IHRyb25nIHZpZWMgeGF5IGNhdCB4YSBsbyANCkRvbmcgVGF5IHRoYW5oIHBobyBTYWkgR29uIHR1 IHF1eSBPREEgY3VhIE5oYXQuIERpZXUgYmF0IG5nbyBkb2kgdm9pIGNhIG9uZyBOb25nIA0KRHVj IE1hbmggbGFuIG9uZyBOZ3V5ZW4gVGFuIER1bmcgbGEgY2hpbmggcGh1IE5oYXQsIHF1YSBhcCBs dWMgdHUgY3V1IFRodSBUdW9uZyANCkp1bmljaGlybyBLb2l6dW1pIHZhIEN1dSBUaHUgVHVvbmcg U2hpbnpvIEFiZSAobGEgaGFpIFRodSBUdW9uZyBkb24gbmhpZXUgdmllbiB0cm8gDQpPREEgY2hv IERhbmcgQ29uZyBzYW4gVmlldCBOYW0gdHUgMjAwNCAtMjAwNykgbGEgcGhhaSBjYWNoIGNodWMg dG9hbiBibyBsYW5oIGRhbyANClRoYW5oIHV5IFNhaSBHb24uIFRoYW5oIHV5IFNhaSBHb24gaGll biBkbyA1IG5ndW9pIGNhbSBjaGljaDogTGUgVGhhbmggSGFpLCBVeSB2aWVuIA0KZHVuZyBoYW5n IHRodSAxMCB0cm9uZyBzbyAxNCBVeSB2aWVuIEJvIGNoaW5oIHRyaSwgaGllbiBsYSBCaSB0aHUg VGhhbmggdXkgU2FpIEdvbjsgTGUgDQpIb25nIFF1YW4sIFV5IHZpZW4gVHJ1bmcgdW9uZyBkYW5n IGtob2EgWCwgaGllbiBsYSBQaG8gYmkgdGh1IHRoYW5oIFV5IGtpZW0gQ2h1IA0KdGljaCB1eSBi YW4gbmhhbiBkYW4gdGhhbmggcGhvOyBIdXluaCBUaGkgTmhhbiwgVXkgdmllbiBUcnVuZyB1b25n IGRhbmcga2hvYSBYLCBjdXUgDQpUaHUgdHJ1b25nIGJvIHRodW9uZyBiaW5oIHhhIGhvaSB2dWEg ZHVvYyBCbyBjaGluaCB0cmkgZGlldSBkb25nIHZlIGxhbSBQaG8gYmkgdGh1IA0KdGhhbmggdXkg U2FpIEdvbiB2YW8gbmdheSAxMSB0aGFuZyAxMiBuYW0gMjAwOCBzYXUga2hpIHZ1IHRoYW0gbmh1 bmcgUENJIGJ1bmcgbm87IA0KTmd1eWVuIFZhbiBEdWEsIFBobyBiaSB0aHUgdHJ1b25nIHRydWMg VGhhbmggVXk7IHZhIEJhIFBoYW0gUGh1b25nIFRoYW8sIFBobyBiaSANCnRodSBUaGFuaCB1eSBr aWVtIENodSB0aWNoIEhvaSBkb25nIG5oYW4gZGFuIHRoYW5oIHBoby4gDQoNCk5odW5nIGFwIGx1 YyBjdWEgY2hpbmggcGh1IE5oYXQgZGEga2hpZW4gY2hvIEJvIGNoaW5oIHRyaSBEQ1NWTiBwaGFp IGhvcCBsaWVuIHRpZXAgDQpuaGlldSBsYW4gdHJvbmcgdGhhbmcgMTEgdmEgZGF1IHRoYW5nIDEy IHZvaSBoYWkgbXVjIHRpZXU6IFRodSBuaGF0IGxhIHRpbSBiaWVuIHBoYXAgdGhheSANCmRvaSBu aGFuIHN1IHRhaSBUaGFuaCB1eSBTYWkgZ29uIGRlIHNvbSBsYW0gaGFpIGxvbmcgTmhhdCBCYW4g aGF1IG5oYW4gbGFpIHNvIHZpZW4gdHJvIA0KT0RBIG5hbSAyMDA5IGxlbiBkZW4gaG9uIDEgdHkg TXkgS2ltLiBUaHUgaGFpIGxhIHRoYW8gbHVhbiB2ZSBub2kgZHVuZyBob3AgSG9pIG5naGkgDQpU cnVuZyB1b25nIGRhbmcgbGFuIHRodSA5IHZhbyB0cnVuZyB0dWFuIHRoYW5nIDEgbmFtIDIwMDku IFZpZWMgYmEgSHV5bmggVGhpIE5oYW4sIA0KVXkgdmllbiB0cnVuZyB1b25nIGRhbmcga2hvYSBY LCBkYW5nIGxhbSBUaHUgdHJ1b25nIHRodW9uZyB0cnVjIEJvIGxhbyBkb25nIHRodW9uZyANCmJp bmggdHUgbmFtIDIwMDYsIGR1b2MgQm8gY2hpbmggdHJpIC0gcXVhIHN1IHNhcCB4ZXAgY3VhIG9u ZyBIbyBWaWV0IER1YywgVXkgdmllbiBibyANCmNoaW5oIHRyaSwgVHJ1b25nIGJhbiBUbyBjaHVj IFRydW5nIHVvbmcgZGFuZyAtIGRpZXUgZG9uZyB2ZSBsYW0gUGhvIGJpIHRodSBUaGFuaCB1eSAN ClNhaSBHb24gdmFvIG5nYXkgMTEgdGhhbmcgMTIgbmFtIDIwMDgsIGRhIGxhbSBjaG8gZHUgbHVh biBzdXkgZGllbiByYW5nIGJhIE5oYW4gZGFuZyANCmNodWFuIGJpIGRlIHRoZSBvbmcgTGUgVGhh bmggSGFpLiBUcmVuIHRodWMgdGUsIGJhIE5oYW4gY29uIGR1bmcgc2F1IG9uZyBMZSBIb25nIA0K UXVhbiwgVXkgdmllbiBUcnVuZyB1b25nLCBkYW5nIGxhbSBwaG8gYmkgdGh1IGtpZW0gQ2h1IHRp Y2ggVXkgYmFuIG5oYW4gZGFuIHRoYW5oIA0KcGhvIG5lbiBraG8gY28gdGhlIHZvdCBsZW4gdGhh eSB0aGUgb25nIExlIFRoYW5oIEhhaS4gVHV5IG5oaWVuLCBuZXUgQm8gY2hpbmggdHJpIG11b24g DQpkdWEgYmEgTmhhbiBsZW4gdGhheSBvbmcgTGUgVGhhbmggSGFpIHRoaSBwaGFpIGNvIHRoZW0g bmh1bmcgY2h1YW4gYmkgbnVhIC0gc2UgYmFuIG8gDQpwaGFuIHNhdS4gDQoNCkhpZW4gbmF5LCBu aGFuIHN1IGNvIG5oaWV1IHhhYyB4dWF0IGxlbiB0aGF5IG9uZyBMZSBUaGFuaCBIYWkgbGEgZGFp IHR1b25nIGNvbmcgYW4gTGUgDQpIb25nIEFuaC4gRGF5IGxhIGRpZXUgYmF0IG5nbyBkb2kgdm9p IGR1IGx1YW4gYmVuIG5nb2FpLCBuaHVuZyBsYWkgbGEga2V0IHF1YSBjdWEgbmh1bmcgDQpjdW9j IG1hYyBjYSBiZW4gdHJvbmcgQm8gY2hpbmggdHJpIGtoaSBtYSBjYSBoYWkgcGhlIE5vbmcgRHVj IE1hbmggdmEgcGhlIE5ndXllbiANClRhbiBEdW5nIGJhdCBwaGFuIHRoYW5nIGJhaSB0cm9uZyB2 aWVjIHRyYW5oIGdpYW5oIG5oYW4gc3UgZGUgZG9hdCBjaHVjIGJpIHRodSBTYWkgR29uLiANClBo ZSBOZ3V5ZW4gVGFuIER1bmcgdGltIG1vaSBjYWNoIGdpdSBMZSBUaGFuaCBIYWkga2hvbmcgdHUg Y2h1YyBCaSB0aHUgVGhhbmggdXkgDQpkZSBjaHVuZyBtaW5oIHZvaSBkdSBsdWFuIHJhbmcgVGhh bmggdXkga2hvbmcgYmkgYXAgbHVjIGN1YSBjaGluaCBwaHUgTmhhdCwgdmEgY3VuZyANCm11b24g bmFuZyBkbyBvbmcgSGFpIHZ1YSBtb2kgbGVuIGxhbSBCaSB0aHUgdHUgbmFtIDIwMDYgKHRoYXkg dGhlIG9uZyBOZ3V5ZW4gTWluaCANClRyaWV0IGR1b2MgYmF1IGxhbSBDaHUgdGljaCBudW9jKSB2 b2kgbmhpZW0ga3kgY29uIGtlbyBkYWkgZGVuIG5hbSAyMDEwLiBIb24gdGhlIG51YSwgDQpMZSBU aGFuaCBIYWkgZHVvYyBjb2kgbGEgZGFuIGVtIGNhdCBydW90IGN1YSBUcnVvbmcgVGFuIFNhbmcg dmEgTmd1eWVuIFRhbiBEdW5nIA0KbmVuIGtob25nIHRoZSBkZSBtYXQgU2FpIEdvbiB2YW8gdGF5 IG5odW5nIHRoZSBsdWMga2hhYy4gVHJvbmcga2hpIGRvLCBwaGUgTm9uZyBEdWMgDQpNYW5oIGto b25nIG11b24gdXkgdGhlIGN1YSBvbmcgRHVuZyB2YSBvbmcgU2FuZyBxdWEgbWFuaCB0YWkgU2Fp IEdvbiwgZG9uZyB0aG9pIA0Ka2hvbmcgdGhlIG1hdCBuZ3VvbiBPREEgY3VhIE5oYXQgdHJvbmcg bmFtIDIwMDkgdmkgc2UgYW5oIGh1b25nIGRlbiBuaHVuZyBkdSBhbiANCmRhdSB0dSBwaGF0IHRy aWVuIHRhaSB0aGFuaCBwaG8gSGEgTm9pIGRhbmcgdGllbiBoYW5oLCBoaWVuIGRhbmcgcGhhaSBu Z3VuZyBuaHUgZHUgYW4geGUgDQpkaWVtIG5nYW0gdmEgZHUgYW4gdGhvYXQgbnVvYyB0YWkgSGEg Tm9pLiANCg0KUGhlIG9uZyBNYW5oIGRhIGxpZW4ga2V0IHZvaSBvbmcgUGhhbSBRdWFuZyBOZ2hp LCBCaSB0aHUgdGhhbmggdXkgSGEgTm9pLCBhcCBsdWMgb25nIA0KTGUgVGhhbmggSGFpIHBoYWkg bmhhbiB0cmFjaCBuaGllbSB0dSBjaHVjLiBIaWVuIGNvIG5oaWV1IHhhYyBzdWF0IGxhIG9uZyBM ZSBUaGFuaCANCkhhaSBzZSB0dSBjaHVjIGR1b2kgaGluaCB0aHVjIGhvYW4gY2h1eWVuIGNvbmcg dGFjIHJhIEhhIE5vaSBkYW0gdHJhY2ggbW90IGNvbmcgdGFjIA0KbmFvIGRvIG5odSBreSBvbmcg VHJ1b25nIFRhbiBTYW5nIGJpIGNhY2ggY2h1YyBCaSB0aHUgdGhhbmggdXkgU2FpIEdvbiB2YW8g Y3VvaSB0aGFwIA0KbmllbiA5MCBkbyB2dSBhbiB0aGFtIG5odW5nIE5hbSBDYW0uIFRoYXkgdGhl IG9uZyBMZSBUaGFuaCBIYWkga2hvbmcgdGhlIGRvbiBuaGFuIA0Kc3UgY3VhIFRoYW5oIHV5IFNh aSBHb24gbGVuIHRoZSwgdmkgY2Egb25nIExlIEhvbmcgUXVhbiBsYW4gYmEgSHV5bmggVGhpIE5o YW4sIG1hYyANCmR1IGRhbmcgbGEgUGhvIGJpIHRodSBuaHVuZyBjaGkgbW9pIGxhIFV5IHZpZW4g dHJ1bmcgdW9uZyBkYW5nLiBUcmFjaCB2dSBCaSB0aHUgVGhhbmggDQp1eSBTYWkgR29uIJcgdGhh bmggcGhvIGxvbiB0aHUgaGFpIHNhdSBIYSBOb2kglyBwaGFpIGxhIG1vdCBVeSB2aWVuIEJvIGNo aW5oIHRyaS4gDQpDaGluaCB2aSBseSBkbyBuYXksIEJvIGNoaW5oIHRyaSBwaGFpIGRlIGN1IG5n dW9pIGN1YSBCbyBjaGluaCB0cmkgdmUgbmFtIEJpIHRodSBUaGFuaCANCnV5IFNhaSBHb24gaG9h YyBsYSBCbyBDaGluaCB0cmkgcGhhaSBkZSBuZ2hpIFRydW5nIHVvbmcgZGFuZyBiYXUgYm8geHVu ZyBvbmcgTGUgDQpIb2FuZyBRdWFuIGhheSBiYSBIdXluaCBUaGkgTmhhbiB2YW8gQm8gY2hpbmgg dHJpIHRoaSBobyBtb2kgY28gdGhlIHRoYXkgdGhlIG9uZyBMZSANClRoYW5oIEhhaS4gDQoNClRo ZW8gZHUgbHVhbiB0YWkgSGEgTm9pIHRoaSBkYWkgdHVvbmcgTGUgSG9uZyBBbmggZGFuZyB2YW4g ZG9uZyBkZSBCbyBjaGluaCB0cmkgcGhhbiANCmNvbmcgdmUgbmFtIEJpIHRodSBUaGFuaCB1eSBT YWkgR29uLiBPbmcgTGUgSG9uZyBBbmgglyB0dXkgbGFtIEJvIHRydW9uZyBDb25nIGFuIA0KlyBu aHVuZyBraG9uZyBjbyBnb2MgZ2FjIHRyb25nIG5nYW5oIGNvbmcgYW4sIG1hIGxlbiBsYW0gQm8g dHJ1b25nIHRyb25nIG1vdCB0cnVvbmcgDQpob3AgZGFjIGJpZXQuIFZhbyB0aGFuZyA0IG5hbSAy MDAxLCBvbmcgTGUgSG9uZyBBbmggdHUgdmkgdmkgdHJpIEJpIHRodSBUaW5oIHV5IEtpZW4gDQpH aWFuZyBkYSBkdW9jIGRlIGN1IHZhbyBCbyBjaGluaCB0cmkgdmEgcGhhbiBjb25nIGxhbSBUcnVv bmcgYmFuIGtpZW0gdHJhIFRydW5nIHVvbmcgDQpkYW5nIGtob2EgSVguIERlbiBnaXVhIG5hbSAy MDAyLCBUaHVvbmcgdHVvbmcgTGUgTWluaCBIdW9uZywgQm8gdHJ1b25nIEJvIGNvbmcgDQphbiBi aSBiZW5oIHVuZyB0aHUgbmVuIHhpbiBuZ2hpIHZhIG1hdCBzYXUgZG8gbW90IG5hbSwgQm8gY2hp bmggdHJpIGRhIGN1IG9uZyBMZSBIb25nIA0KQW5oIHNhbmcgdGhheSB0aGUgdHJhY2ggdnUgQm8g dHJ1b25nIGNvbmcgYW4uIERlbiBuZ2F5IDkgdGhhbmcgMSBuYW0gMjAwNSwgTGUgSG9uZyANCkFu aCBtb2kgZHVvYyBwaG9uZyBxdWFuIGhhbSBEYWkgdHVvbmcgY29uZyBhbi4gVHJvbmcgcXVhIHRy aW5oIGhvYXQgZG9uZyB0dSBuYW0gDQoxOTY5IHNhdSBraGkgdGhhbSBnaWEgdmFvIGRhbmcgQ29u ZyBzYW4gVmlldCBOYW0sIG9uZyBMZSBIb25nIEFuaCBjaHVhIGNvIGxhbiBuYW8gDQpsYW0gY29u ZyBhbiBtYSBjaGkgbGFtIGNvbmcgdGFjIHZhbiBjb25nIHZhbiBuZ2hlIHZhIGRhbmcgZG9hbiB0 YWkgdGluaCBLaWVuIEdpYW5nLiANCg0KTmV1IG9uZyBMZSBIb25nIEFuaCBjdSBzYW5nIGxhbSBC aSB0aHUgVGhhbmggdXkgU2FpIEdvbiB0aGkgbmd1b2kgY28gbmhpZXUgdHJpZW4gDQp2b25nIG5h bSBnaGUgQm8gdHJ1b25nIGNvbmcgYW4gbGEgb25nIFRydW9uZyBIb2EgQmluaCwgbW9pIGR1b2Mg cGhhbiBjb25nIGxhbSANCkNoYW5oIGFuIHRvYSBhbiB0b2kgY2FvIHR1IG5nYXkgMjUgdGhhbmcg NyBuYW0gMjAwNy4gVHJ1b2MgZG8sIG9uZyBUcnVvbmcgSG9hIEJpbmggbGEgDQpUaHUgVHJ1b25n IEJvIGNvbmcgYW4gdm9pIHF1YW4gaGFtIFRydW5nIHR1b25nIHR1IG5hbSAyMDA2LiBPbmcgVHJ1 b25nIEhvYSBCaW5oIA0KbGEgY2FuIGJvIHh1YXQgdGhhbiBuZ2FuaCBjb25nIGFuIHZhIHR1bmcg bGFtIFBobyBnaWFtIGRvYyBjb25nIGFuIFRoYW5oIHBobyBTYWkgDQpHb24sIGR1b2kgdGhvaSBU cnVvbmcgVGFuIFNhbmcgbGFtIEJpIHRodSBUaGFuaCB1eSBTYWkgR29uLiBWaWVjIG9uZyBMZSBI b25nIEFuaCANCnZhbiBkb25nIGRlIHZlIGxhbSBCaSB0aHUgU2FpIGdvbiBsYSBvbmcgdGEga2hv bmcgbmh1bmcgbXVvbiB4YXkgZHVuZyBtb3QgdnVvbmcgDQpxdW9jIHJpZW5nIGNobyBtaW5oIHRh aSBtaWVuIE5hbSBzYXUgbmhpZXUgbmFtIGhvYXQgZG9uZyB2YSBsYW5oIGRhbyB0aW5oIEtpZW4g R2lhbmcsIA0KbWEgY29uIG51b2kgdGhhbSB2b25nIHRybyB0aGFuaCBjaHUgdGljaCBudW9jIHZh byBuYW0gMjAxMSBzYXUga2hpIG9uZyBOZ3V5ZW4gTWluaCANClRyaWV0IHZlIGh1dS4gT25nIExl IEhvbmcgQW5oIGRhbmcgbXVvbiB0YXkgeG9hIG1hdSBzYWMgY29uZyBhbiBkZSBidW9jIHJhIHRo ZSBnaW9pIA0KYmVuIG5nb2FpIHZvaSBjaHVjIENodSB0aWNoIG51b2MsIGNobyB0aGF5IGxhIG9u ZyBkYWkgdHVvbmcgY29uZyBhbiBkYW5nIGNodWFuIGJpIG1vdCANCnR1b25nIGxhaSBraGEgeGEg Y2hvIG1pbmggdHUgdnVvbmcgcXVvYyBTYWkgR29uLiANCg0KVmllYyBvbmcgTGUgSG9uZyBBbmgg Y28gbGFtIEJpIHRodSBUaGFuaCB1eSBTYWkgZ29uIGhheSBraG9uZywgY29uIHJhdCBuaGlldSBk YXUgaG9pIA0KbG9uIHRyb25nIGR1IGx1YW47IG5odW5nIGRpZXUgdGhheSBybyBsYSBhcCBsdWMg Y3VhIGNoaW5oIHBodSBOaGF0IHF1YSB2dSB0aGFtIG5odW5nIA0KUENJIGRhbmcgbGFtIHJ1bmcg ZG9uZyBCbyBjaGluaCB0cmkgQ29uZyBzYW4gVmlldCBOYW0uIE9uZyBNYW5oIHNlIHBoYWkgY2h1 bmcgDQpxdXlldCB2YW4gZGUgbmhhbiBzdSBub2kgdHJlbiB0cm9uZyBreSBob3AgbGFuIHRodSA5 IGN1YSBUcnVuZyBVb25nIGRhbmcgQ1NWTiB2YW8gDQpnaXVhIHRoYW5nIDEgbmFtIDIwMDkgdG9p IGRheSwgZGUgY29uIGtpcCB0cmEgbG9pIHZvaSBOaGF0IHZlIHNvIHBoYW4gY3VhIG9uZyBMZSBU aGFuaCANCkhhaS4gTmV1IG9uZyBMZSBIb25nIEFuaCBkdW9jIHBoYW4gY29uZyBsYW0gQmkgdGh1 IFRoYW5oIHV5IFNhaSBHb24gdGhpIEJvIGNoaW5oIA0KdHJpIHBoYWkgeWV1IGNhdSBUcnVuZyB1 b25nIGRhbmcgYmF1IGJvIHh1bmcgY2hhbmggYW4gVHJ1b25nIEhvYSBCaW5oIGhheSBUdW9uZyAN Ck5ndXllbiBLaGFuaCBUb2FuIHZhbyBsYW0gVXkgdmllbiBCbyBjaGluaCB0cmkgZGUgZHVvYyBw aGFuIGNvbmcgbGFtIEJvIHRydW9uZyANCmNvbmcgYW4uIENvbiBuZXUgQm8gY2hpbmggdHJpIGNo b24gYmEgSHV5bmggVGhpIE5oYW4gbGVuIGxhbSBCaSB0aHUgdGhheSBvbmcgTGUgDQpUaGFuaCBI YWkgdGhpIGN1bmcgcGhhaSB5ZXUgY2F1IFRydW5nIHVvbmcgZGFuZyBiYXUgYmEgTmhhbiBsYW0g VXkgdmllbiBCbyBjaGluaCANCnRyaS4gVHUgZGF5IGNobyBkZW4gbmdheSBxdXlldCBkaW5oIG5v aSB0cmVuIGtob25nIGNvbiBiYW8gbGF1IG51YSwgY2hhYyBjaGFuIGxhIGNhYyBwaGUgDQpzZSB0 aW0gY2FjaCBraHV5bmggbG9hdCBsYW4gbmhhdSBkZSBuYW0gbGF5IG5odW5nIGRhYyBxdXllbiB0 YWkgdnVvbmcgcXVvYyBTYWkgR29uLCANCnNhdSBraGkgb25nIExlIFRoYW5oIEhhaSByYSBkaS4g DQoNCi0tLS0tDQpQaHUgbHVjIDE6IEh1bmcgdGhhbiBIYSBOb2kgTmd1eWVuIER1YyBOaGFuaCB0 aGFtIG5odW5nIA0KDQpodHRwOi8vaGF0bmFuZy5uZXQvc2hvd3RocmVhZC5waHA/cD0zODEzMTAg DQoNCkh1bmcgdGhhbiBIYW5vaSBOZ3V5ZW4gRHVjIE5oYW5oIHRoYW0gbmh1bmcgDQoNClR1b25n IE5ndXllbiBEdWMgTmhhbmgsIGdpYW0gZG9jIFNvIENvbmcgQW4gdGhhbmggcGhvIEhhIE5vaSBi aSB0aHVvYyBjYXAgdG8gY2FvIA0KbGEgdGhhbSBuaHVuZywgY3VhIHF1eWVuIHZhIGNvIHF1YW4g aGUgdm9pIGRhbSB4YSBob2kgZGVuLiANCg0KTmd1eWVuIFRpZW4sIG1vdCB2aWVuIGNodWMgU28g Q29uZyBBbiBIYSBOb2kgZ3VpIGRvbiB0byBjYW8gdG9pIExlIEhvbmcgQW5oLCBibyANCnRydW9u ZyBDb25nIEFuIHZhIG5oaWV1IGNodWMgc2FjIGtoYWMgY3VhIGNoZSBkbywgY2FvIGJ1b2MgTmd1 eWVuIER1YyBOaGFuaCBuaGlldSANCmRpZXUgcXVhIGxhIGRvbiBtYSBjaHVuZyB0b2kgcGhvIGJp ZW4gZHVvaSBkYXkuDQoNCihIaW5oIHRyZW46IE5ndXllbiBEdWMgTmhhbmgsIGdpYW0gZG9jIFNv IENvbmcgQW4gdGhhbmggcGhvIEhhIE5vaSAoYmVuIHBoYWkpIA0KZHVuZyBjaHVwIGhpbmggdm9p IGNvbiB0cmFpLCBOZ3V5ZW4gRHVjIFF1YW5nIHR1IFF1YW5nIGJlbyAoYmVuIHRyYWkpLiBCbyB0 aGFtIG5odW5nIA0KZGUgY29uIGFuIGNob2kga2hldCB0aWVuZyBIaW5oOiBibG9nIEhhTG9uZ1ZJ UC5jb20pDQoNCkNvbmcgaG9hIHhhIGhvaSBjaHUgbmdoaWEgVmlldCBOYW0NCkRvYyBsYXAgLSBU dSBkbyAtIEhhbmggcGh1Yw0KDQpLaW5oIGd1aToNCg0KLSBEL2MgQm8gdHJ1b25nIExlIEhvbmcg QW5oDQotIEQvYyBCaSB0aHUgVGhhbmggdXkgUGhhbSBRdWFuZyBOZ2hpDQotIEQvYyBDaHUgbmhp ZW0gVUJLVCBUcnVuZyB1b25nDQotIENhYyBkL2MgVGh1IHRydW9uZyBCbyBDb25nIGFuDQotIEQv YyBDaHUgdGljaCBVQk5EIEhhIE5vaQ0KDQpUaHVhIGNhYyBkb25nIGNoaSBsYW5oIGRhbyEgVG9p IGxhIE5ndXllbiBUaWVuLCBoaWVuIGRhbmcgY29uZyB0YWMgdGFpIENvbmcgQW4gSGEgDQpOb2ku IFZvaSBnYW4gMzAgY2h1YyBuYW0gdGhhbSBuaWVuIGNvbmcgdGFjLCB0b2kgZGEgdHJhaSBxdWEg bmhpZXUgZG9pIGdpYW0gZG9jLCBjaHVuZyANCmtpZW4gbmhpZXUgY2h1eWVuIGJ1b24gdnVpIGN1 YSBDb25nIEFuIEhhIE5vaS4gTmh1bmcgY28gbW90IHN1IHRoYXQgdG9pIHhpbiBtYW5oIGRhbiAN CnRyaW5oIGJheSB2b2kgY2FjIGRvbmcgY2hpIGxhbmggZGFvIGxhIGNodWEgYmFvIGdpbyBDb25n IEFuIEhhIE5vaSBsYWkgbmF0IG5odSBoaWVuIG5heSANCnZhIG5ndW9pIGdheSByYSB0aW5oIHRy YW5nIG5heSBjaGluaCBsYSBvbmcgTmd1eWVuIER1YyBOaGFuaCwgZ2lhbSBkb2MgQ29uZyBBbiBI YSBOb2kuDQoNClRydW9jIGRheSwgdmllYyBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gY3VuZyBkYSB4 YXkgcmEgdHJvbmcgQ29uZyBBbiBIYSBOb2kgbmh1bmcgDQpjaHVhIG1hbmcgdGluaCBjaGF0IHBo byBiaWVuLiBOaHVuZyB0dSBraGkgb25nIE5ndXllbiBEdWMgTmhhbmggbGVuIGxhbSBnaWFtIGRv YyANCnRoaSB2aWVjIGNoYXkgY2h1YywgY2hheSBxdXllbiBkYSB0cm8gdGhhbmggcGhvIGJpZW4s IGR1b25nIG5oaWVuLCB2b2kgYmF0IGt5IGFpIG11b24gDQpsZW4gZ2l1IHZpIHRyaSBsYW5oIGRh bywgZHUgbmhvIG5oYXQgbGEgcGhvIGNvbmcgYW4gcGh1b25nLiBWaWVjIGJvIG5oaWVtLCBsdWFu IGNodXllbiANCmRldSBkbyBvbmcgTmhhbmggcXV5ZXQgZGluaCBoZXQuIENhYyBkb25nIGNoaSBw aG8gZ2lhbSBkb2MgZGV1IGtob25nIGNvIHZhaSB0cm8gZ2kuIA0KTmhpZXUgdHJ1b25nIGhvcCwg b25nIE5oYW5oIG5oYW4gdGllbiBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gcm9pLCBuaHVuZyBiaSBk dSBsdWFuIA0KQ29uZyBBbiBIYSBOb2kga2hvbmcgZG9uZyB0aW5oLCB2aSBzbyBjYW4gYm8gZG8g ZGEgdHVuZyBiaSBreSBsdWF0LCBvbmcgTmhhbmggbGFpIGxheSANCmRhbmggY2FwIHRyZW4gZGUg bGFuIGF0LCBuaHU6ICJ0cnVvbmcgaG9wIG5heSwgYW5oIFV0LCBhbmggQmEsIGFuaCBCb24uLi4g byBCbyB2YSBCaSB0aHUsIA0KY2h1IHRpY2ggVFAgZGEgZG9uZyB5IHJvaSIgaG9hYyAidHJ1b25n IGhvcCBuYXkgZG8gYW5oIFV0LCBhbmggQmEsIGFuaCBCb24uLi4gbyBCbywgZC9jIA0KQmkgdGh1 LCBjaHUgdGljaCBUUCBnaW9pIHRoaWV1Ii4gVGh1IGRvYW4gbmF5IGN1YSBvbmcgTmhhbmggYW5o IGh1b25nIHhhdSBkZW4gY2FjIGQvYyANCmxhbmggZGFvLCBuaGF0IGxhIG5odW5nIGFpIGtob25n IGhpZXUgdGh1IGRvYW4sIGNvbiBuZ3VvaSB0aGF0IGN1YSBvbmcgTmhhbmguDQoNCkdhbiBkYXks IG9uZyBOaGFuaCBkYW5nIGR1bmcgY2hpbmggc2FjaCBsdWFuIGNodXllbiBjYW4gYm8gZGUgcnVu ZyBkb2EgYnVvYyBtb2kgDQpuZ3VvaSBwaGFpIGNoYXkgZGUgbGF5IHRpZW47IGRvbmcgdGhvaSB0 YW8gY28gZGUgZGUgdHUgbmd1b2kgSGEgVGF5IGN1IChvbmcgTmhhbmggbGEgDQpuZ3VvaSBIYSBU YXkpIG5hbSBnaXUgbmh1bmcgY2h1YyB2dSBxdWFuIHRyb25nIGN1YSBDb25nIEFuIEhhIE5vaS4g Q28gZG9uZyBjaGkgDQpkYW5nIGxhbSB0cnVvbmcgbW90IGRvbiB2aSBvbiBkaW5oLCBwaGF0IGh1 eSBuYW5nIGx1YyB0b3QsIG9uZyBOaGFuaCBkaWV1IHNhbmcgZG9uIHZpIA0Ka2hhYyBkZSB0YW8g ZGlldSBraWVuIGNobyBkYW4gZW0gbGVuLiBPbmcgSGFpLCB0cnVvbmcgcGhvbmcgY2FuaCBzYXQg Z2lhbyB0aG9uZyBkYW5nIA0KbGFtIHRodSB0dWMgbmdoaSBodXUsIHRoYXkgY28gbmhpZXUgbmd1 b2kgbXVvbiB2YW8gdmkgdHJpIGxhbmggZGFvIG5heSwgb25nIE5ndXllbiBEdWMgDQpOaGFuaCB0 aG9uZyBxdWEgbW90IHNvIGRlIHR1IGJhbiB0aW4gcmEgZ2lhLCBhaSBtdW9uIGxlbiB0cnVvbmcg cGhvbmcgY2FuaCBzYXQgZ2lhbyANCnRob25nIHRoaSBwaGFpIG5vcCAxIHRyaWV1IGRvIGxhLiBE YSBjbyBuZ3VvaSBub3AgMSB0cmlldSBkbyB2YSBkYSBkdW9jIG9uZyBOaGFuaCBjaGFtIA0KY2hv biBsYW0gdHJ1b25nIHBob25nIGNhbmggc2F0IGdpYW8gdGhvbmcgKGR1b25nIG5oaWVuLCBzYXUg a2hpIGxlbiBjaHVjIGhvIHNlIHRpbSBtb2kgDQpjYWNoIHRodSBob2kgbGFpIHNvIHRpZW4gZGEg ZG8gcmEgdmEgZG8gY2hpbmggbGEgbmd1eWVuIG5oYW4gZ2F5IHJhIHRpZXUgY3VjLCBzYWNoIG5o aWV1IA0KbmhhbiBkYW4pLiBNb2kgbmd1b24gdGllbiBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gZGV1 IGRvIHZlIGdpYSBkaW5oIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oLg0KDQpEYW0gY3VvaSBjb24gdHJh aSBvbmcgTmd1eWVuIER1YyBOaGFuaCBjdW5nIGxhIGRhbSBjdW9pIGt5IGN1Yywgc2FjIG11aSB4 YSBob2kgZGVuIA0KbmhhdCB0dSB0cnVvYyBkZW4gbmF5LiBOZ29haSB2aWVjIHRvIGNodWMgbGlu aCBkaW5oIGRpZW4gcmEgMDMgbmdheSBsaWVuIHZvaSBsdW9uZyBraGFjaCANCmxlbiBkZW4gbWF5 IG5naGluIG5ndW9pLCBvbmcgTmhhbmggY29uIHNhaSBtYXkgZGUgdHUgbGEgbmh1bmcgdGVuIHRy dW0geGEgaG9pIGRlbiANCihjaG9pIHZvaSBvbmcgTmhhbmggdHUga2hpIG9uZyB0YSBjb24gbGEg dHJ1b25nIHBob25nIGNhbmggc2F0IGRpZXUgdHJhKSBjYW0gdGhpZXAgbW9pIA0KZGVuIGdhcCBu aHVuZyB0ZW4gY28gbWF1IG1hdCB0cm9uZyBnaW9pIHhhIGhvaSBkZW4sIHRydW0gYnVvbiBsYXUs IGRvaSBubyB0aHVlLCBiYW8ga2UgDQpub2kgbGEgb25nIE5oYW5oIG1vaSBuaHVuZyB5ZXUgY2F1 IGtob25nIGR1b2MgZGVuIGR1IGRhbSBjdW9pLiBNb2kgY3VvaSBtYSBraG9uZyANCmNobyBkZW4g ZHUgZGFtIGN1b2kgdGhpIGNoaSBjbyBsYSB5ZXUgY2F1IG5vcCB0aWVuLCBnb2kgbGEgIm11bmcg dm9uZyBjaGF1Ii4gVHJ1bmcgYmluaCANCm1vaSBwaG9uZyBiaSAibXVuZyB2b25nIGNoYXUiIG5h eSBraG9uZyBkdW9pIDMwMDAgVVNELiBOaGlldSB0aWVuIG5lbiBjb24gdHJhaSBvbmcgDQpOaGFu aCAoTmd1eWVuIER1YyBRdWFuZykgZGEgdHJvIHRoYW5oIHRheSBjaG9pIGtoZXQgdGllbmcgSGEg Tm9pIChjaGkgY2FuIGxlbiBtYW5nIA0KSW50ZXJuZXQgZ28gTmd1eWVuIER1YyBRdWFuZyB0aGkg c2UgY28gbmhpZXUgYmFpLCBhbmggcGhhbiBhbmggdmllYyBhbiBjaG9pIGN1YSBOZ3V5ZW4gRHVj IFF1YW5nKS4NCg0KWGluIGtoYW5nIGRpbmggcmFuZywgZ2lhIHRydW9uZywgZG9jIGRvYW4sIG9u ZyBOaGFuaCBraG9uZyBrZW0gZGFuIGFuaCBkaSB0cnVvYywgDQpuaHVuZyBuaW5oIGhvdCwgbHV1 IG1hbmggdGhpIGRhbiBhbmgsIGRhbiBjaGkgZGkgdHJ1b2MgZ29pIG9uZyBOaGFuaCBsYSBzdSBw aHUuDQoNClRodWEgY2FjIGRvbmcgY2hpIGxhbmggZGFvISBOaHVuZyB2aWVjIG9uZyBOZ3V5ZW4g RHVjIE5oYW5oIGxhbSBkYSB2YSBkYW5nIGxhbSANCm5odWMgbmhvaSBDb25nIEFuIEhhIE5vaS4g Tmd1b2kgZGFuIGtob25nIHRpbiB2YW8gQ29uZyBBbiBIYSBOb2kuIENhbiBibywgY2hpZW4gc3kg DQpraG9uZyB0aW4gdmFvIGxhbmggZGFvIENvbmcgQW4gVFAuIEhhIE5vaS4gVmkgdmF5LCB0b2kg ZGUgbmdoaSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8gDQpjYW4gY28gbmh1bmcgYmllbiBwaGFwIGNo YW4gY2hpbmgsIGN1bmcgY28gbGFpIENvbmcgQW4gSGEgTm9pOg0KDQotIFV5IGJhbiBraWVtIHRy YSBUcnVuZyB1b25nIGtpZW0gdHJhIHRvYW4gZGllbiB2ZSBvbmcgTmhhbmgNCg0KLSBDYWNoIGNo dWMgZ2lhbSBkb2MsIGRpZXUgY2h1eWVuIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oIHZlIFZhbiBwaG9u ZyBCbyBob2FjIFZpZW4gY2hpZW4gbHVvYy4NCg0KLSBCbyBuaGllbSBuZ3VvaSBjbyB0YWksIGR1 YyBsYW0gZ2lhbSBkb2MgQ29uZyBBbiBIYSBOb2kuIFRvdCBuaGF0IGxhIGNob24gZG9uZyBjaGkg byANCmNhYyBDdWMsIFRvbmcgY3VjIGRlIGtob25nIGRpbmggZGFuZyBnaSBkZW4gY2FjIHRpZXUg Y3VjIHRydW9jIGRheSBjdWEgQ29uZyBBbiBIYSBOb2kuDQoNCi0gQ2FjIGRvbmcgY2hpIGxhbmgg ZGFvIEJvIGNhbiBsYW0gdmllYyB2b2kgQmFuIEdpYW0gRG9jIENvbmcgQW4gSGEgTm9pIGRlIGNv IA0Kbmh1bmcgYmllbiBwaGFwIGxvYWkgYm8gaG9hbiB0b2FuIGhpZW4gdHVvbmcgY2hheSBjaHVj LCBjaGF5IHF1eWVuIGhpZW4gbmF5Lg0KDQpDYWMgZG9uZyBjaGkgbGFuaCBkYW8gY3Uga2hhY2gg cXVhbiBraWVtIHRyYSwgeHUgbHksIG5odW5nIHhpbiBkdW5nIHRpZXQgbG8gdGVuIHRvaS4NCg0K WGluIHRyYW4gdHJvbmcgY2FtIG9uIGNhYyBkb25nIGNoaSBsYW5oIGRhbyENCg0KSGEgTm9pLCBu Z2F5IDExIHRoYW5nIDQgbmFtIDIwMDkNCk5ndXllbiBUaWVuIA0KDQpodHRwOi8vd3d3Lm5ndW9p LXZpZXQuY29tL2Fic29sdXRlbm0vYW5tdmlld2VyLmFzcD9hPTExMzc4NiAwMi82LzIwMTAgVE4g DQoNClZ1YSB0aGFtIG5odW5nIE5ndXllbiBEdWMgTmhhbmggbGVuIGNodWMgcGhvIHRvbmcgY3Vj IHRydW9uZyBBbiBOaW5oIA0KDQpOZ2F5IDMxLzUvMjAxMCB2dWEgcXVhLCBvbmcgTmd1eWVuIER1 YyBOaGFuaCBkdW9jIHRoYW5nIGNodWMgcGhvIHRvbmcgY3VjIHRydW9uZyANClRvbmcgQ3VjIEFu IE5pbmgsIG5odW5nIHZhbiBraWVtIG5oaWVtIGNhIGNodWMgZ2lhbSBkb2MgU28gQ29uZyBBbiBI YSBOb2kuDQoNCihBbmg6IEhhaSBibyBjb24gTmd1eWVuIER1YyBOaGFuaCB2YSBOZ3V5ZW4gRHVj IFF1YW5nIHR1IFF1YW5nIEJlbyBjaHVwIGhpbmggDQpiZW4gaG8gR3VvbT8gSGluaDogdGhvbmd0 aW5iZXJsaW4ubmV0KQ0KDQpLaGkgdnUgYW4gY28gYmFjIG5oaWV1IHRyaWV1IGRvIGxhIGN1YSBC dWkgVGllbiBEdW5nLCB0b25nIGdpYW0gZG9jIEJhbiBRdWFuIEx5IA0KY2FjIGR1IGFuIChjYXUg ZHVvbmcpIFBNVSAxOCBjdWEgQm8gR2lhbyBUaG9uZyBWYW4gVGFpIG5vIHJhIGhvaSBuYW0gMjAw NiwgbW90IA0KdHJvbmcgbmh1bmcgc2FpIHBoYW0gY3VhIEJ1aSBUaWVuIER1bmcgYmkgcGhhbmgg cGh1aSBsYSBjaG8gbmhpZXUgcXVhbiBjaHVjIGN1YSANCm5oaWV1IG5nYW5oLCBjbyBxdWFuIGto YWMgbmhhdSB4YWkgY2h1YSB4ZSBob2kgY3VhIGNhYyBkdSBhbiBob2FuIHRhdDsgZHVuZyByYSwg DQpjYWMgeGUgbmF5IHBoYWkgYmFuIGRpLCB0aGFuaCBseSB0YWkgc2FuIGN1YSBkdSBhbjsgTmd1 eWVuIER1YyBOaGFuaCBjdW5nIGRhIHBoYWkgDQp0cmEgbGFpIG1vdCBjYWkgeGUgaG9pIGRvIEJ1 aSBUaWVuIER1bmcgY3VuZy4gDQoNCmh0dHA6Ly92aWV0YmYuY29tL2ZvcnVtL2FyY2hpdmUvaW5k ZXgucGhwL3QtNjQyMjguaHRtbCBITiAwOS0yNi0yMDA4LCAwODoyNQ0KIA0KVmVuIGJ1YyBtYW4g dmUgZ2lhIGRpbmggdmEgc3UgbmdoaWVwIGN1YSBnaWFtIGRvYyBDQVRQIEhOIQ0KDQpHaWFtIGRv YyBDQSBUUC4gSGEgTm9pIE5ndXllbiBEdWMgTmhhbmggLSBEaWVuIHRob2FpOiAwOTEzMjA4NTg5 LCBsYSB0dW9uZyB4dWF0IA0KdGhhbiB0dSB2dW5nIGNoaWVtIHRydW5nIEhhIFRheS4gU2F1IGJh byBuYW0gYm9uIGJhIGxhbiBsb24gY3VuZyBjYXAgbWF0IGhpcCByYXQgZ2lhbiANCnhhbyBkaWVu IGhpbmgsIHRyYW0gbHVhbiBjdW5nIGJhbyBuaGlldSBjdW5nIGJhYyBjdW9jIHNvbmcsIGJhYyBO aGFuaCBjdWEgY2h1bmcgdGEgcnUgDQpidW4gZGF0IEhhIFRheSB2dW9uIHZhaSB2ZSBIYSBOb2kg bGFtIGdpYW0gZG9jIGNvbmcgYW4gdGh1IGRvIGN1YSBjYSBudW9jLiBWYSBjdW5nIA0KY28gbGUg ZHVvaSB0aG9pIGJhYyBDaHV5ZW4sIGJhYyBOaGFuaCBiaSBraW0ga2VwIG5oaWV1IHF1YSwgbmVu IGtoaSBsZW4gbGFtIGdpYW0gZG9jIA0Kcm9pIGl0IGxhdSBzYXUgZG8sIGRheSBkbyBuaGlldSBu ZW4gYmFjIGNvbiBkdW9jIHBob25nIGhhbSB0dW9uZywgYmFjIHRybyBuZW4gbmdvbmcgDQpuZ2hl bmgsIGNoYW5nIHNvIGJvIGNvbiB0aGFuZyBuYW8uIENoYWMgaGFuIGNhYyBiYW4gY3VuZyBjb24g bmhvIHZ1IFBNVSAxOCBjdWEgDQoiRHVuZyB0b25nIiBub2kgdGllbmcgMSB0aG9pLCBCYWMgTmhh bmgga2hpIGRvIGxhIFBHRCBjdW5nIGR1bmcgMSB4ZSBjdWEgUE1VLiBBeSANCnZheSBtYSBiYWMg dmFuIHZ1b3QgcXVhIGJ1YSByaXUgZHUgbHVhbiwgbmdhbmcgbmhpZW4gdGhhbmcgY2h1YyBuaHUg dGh1b25nLiBCYXkgZ2lvIA0KYmFjIG5nYW5nIG5oaWVuIHR1eWVuIGJvIHZvaSByYXQgbmhpZXUg ZGUgdHUgdHJvbmcgbHVjIHRyYSBkdSB0dXUgaGF1ICJNb3QgbWluaCB0YW8gYmF5IA0KZ2lvIGRp IDMtNCBjYWkgeGUsIDUtNiB0YWkgeGUsIHhlIGJldCBjbyBodW1tZXIgeGVtIHRoYW5nIG5hbyBs YW0gZ2kgZHVvYyB0YW8/IiANCg0KT2khIFRoZSB0aGkga2luaCByb2kuIEJhYyB2YW4gbGFtIHJh IHZlIGdpYW4gZGkuIE8gY2FpIG5oYSBiZSBiZSBvIFRydW9uZyBEaW5oIG5odW5nIGFpIA0KYmll dCBiYWMgY28gYmFvIG5oaWV1IGJpZXQgdGh1IG8ga2hhcCBudW9jIFZpZXQgTmFtIG5heS4gRG90 IHZ1YSByb2ksIGJhYyBjb24gdnVvbiB2b2kgDQpzYW5nIExhbywgbXVhIGRhdCBiZW4gZG8uLi4g QmFjIGN1bmcgZ2lhIGRpbmggdGFwIHRoZW8gdGhlIHZpcCBvIE5pa2tvLSBraGFjaCBzYW4gbm9p IA0KdGllbmcgSE4gdmUgZG8gZGF0IGRvLCB2YSBiYWMgY3VuZyB0aGljaCBhbiBtb24gYW4gTmhh dCAtIGNoYWMgbW9uZyBzb25nIGxhdSB2ZXQgbG9jIA0KbmhpZXUuLi4gQmFjIGNvbiB0aGFjaCB0 aHVjIG5oaWV1IG5ndW9pIHZhIGRpZW4gaGluaCBUb25nIGN1YyBjYW5oIHNhdCBkYSBjaG9pIGxh aSBiYWMgdnUgTmV3Y2VudHVyeS4gDQoNClBodSBuaGFuOiBOZ3V5ZW4gVGhpIFBodW9uZy0gMDkw NC4uLi4uLkR1b25nIGR1b25nIGxhIHBodSBuaGFuIG5nYWkgZ2lhbSBkb2MgdGhldCByYSANCmx1 YSwgbmdvYWkgaGluaCBob2kgbHVuIDEgdGksIG5odW5nIG1hIGRhbmggbG8gY2FtIHR1IGN1IGdv aSBsYSB0aG9pIHJvaS4gTmh1IHRybyBoZSwgdm8gDQp0aHUgbGluaCBjb25nIGFuLCBsbyBkZSBk YSBtYW4gdGFuIGJhbywgbmdheSBuYW8ga2hvbmcgbGVuIEhhbmcgQmFpLCBMbyBEdWMgdGhhIHZh aSBjb24gDQpsbyBuZ2hpbiBkaWVtIGxhIGJhYyBidW9uIGhvbiBjYSBiaWV0IHRpbiBjaG9uZyBk aSBnYWkuLi4gDQoNClRydW9uZyBuYW06IE5ndXllbiBEdWMgUXVhbmctIGR0aG9haTogMDkwOTU1 NTU1OQ0KDQpbYmxvZzogaHR0cDovL2F1LmJsb2cuIDM2MC55YWhvby4gY29tL2Jsb2ctIHYwWU5K YVl6YnFzM09hYnAgNVdBcm1kbUJmZy0/Y3E9MSwgeW0gbGEgYnVtYnVtODU4OV0NCg0KQW5oIFF1 YW5nIGN1YSBjaHVuZyB0YSB0aGkgbmd1IGRpZW4gaGluaC4gSG9jIGNhcCAzIFRyYW4gUGh1LCBz dW90IG5nYXkgZGkgdGhheSBjbyB2YSANCmNobyB0aWVuIHRoYW5nIGhvYyBnaW9pIGRlIG5oaW4g YmFpLCBheSB2YXkgbWEgZ2lhIGRpbmggdmFuIGtob25nIGJpZXQgbHVvbmcgc3VjIG1pbmgsIA0K Y2hvIGFuaCBkaSBkdSBob2MuIEtldCBxdWEgYW5oIHNpbmggbmFtIDg0IG5odW5nIHNhdSA0IG5h bSBib24gYmEgbyBudW9jIG5nb2FpIHZlIA0KVmlldCBOYW0sIGhldCBVYyByb2kgQW5oLCBhbmgg bGFpIHZlIFZOIGNheSBsYWkgUk1JVC4gVm9pIHRpZW0gbHVjIGN1YSBibywgY2hhYyBhbmggc2Ug DQpjbyBiYW5nLiBDaHVuZyB0YSBjdW5nIHZvIHRheSBjaHVjIGFuaCB0aGFuaCBjb25nIG5oZSEg DQoNClRodSBudTogTmd1eWVuIFBodW9uZyBBbmgtIDA3Ny4uLi4uDQoNCltibG9nIHRodSAxOiBo dHRwOi8vMzYwLnlhaG9vLiBjb20vcHJvZmlsZS0gVVdqNlJ1bzBkcVJWcTFzTCBmcklUDQpibG9n IHRodSAyOiBodHRwOi8vdWsuMzYwLiB5YWhvby5jb20vIHByb2ZpbGUtN0YzVXBPTXogY3FVN2E5 NlpDa2ZLMWljLSA/Y3E9MSwgeW06IGJpY3VhYm9tZSB2YSBlbWJpZGF5XQ0KDQpCYW4gbmF5IHRo aSBzaW5oIG5hbSA4OCwgYmFuZyB0dW9pIHRvLCBuZ29haSBoaW5oIGdpb25nIG9uZyBhbmgsIGJl bywgZGVuLCB4YXUgbmh1bmcgY28gDQoxIGNodSBuaHVuZywgY2h1cCBhbmggYW4gbGFtIG5oZSwg bW9pIG5ndW9pIHZhbyBwaG90b3N0cmVhbSB0cm9uZyBibG9nIGVtIHkgc2UgYmlldC4gDQpEdSBl bSBjbyBuaHUgbmFvIG5odW5nIGR1b2MgY2FpIGJvIGVtIGxhbSB0byB0aGUsIG1hIHRyZW4gZGFu aCBuZ2hpYSBsYSBiYW4gY2h1YSBjbyANCm5ndW9pIHlldSBuaHVuZyB0byB0aGUgbGEgdG8gcGhh aSB0aWVwIHh1YyB2YSBub2kgY2h1eWVuIHZvaSAzIG15IG5hbSBuZ3Ugdm9pIGVtIHkgDQpyb2Fp LiBDaHVuZyBubyBkZXUgYmFvIG5oYW0gbWF0IGxhbSB0aGkgY3VvaSBjdW5nIGN1bmcgeG9uZyBu aHVuZyBoYWkgbGFtIG5lbiBraG9uZyANCmR1eSB0cmkgbm9pLi4uIEF5IHZheSBuaHVuZyB2b2kg bW9pIG5ndW9pIHh1bmcgcXVhbmggZW0gc29uZyByYXQgbmVuIG5hLCAiZ2lhdSBuZ2hlIiANCm5l biBhaSBjdW5nIG5naGkgZW0gb2sgbGFtIChjYWkgbmF5IG1vaSBuZ3VvaSBkb2MgYmxvZyBlbSBz ZSBiaWV0KS4uLiBPLiBOaHVuZyBtYSBub2kgDQpuaHUgdGhlIGVtIGxhaSBraG9uZyBkdW9jIGRp ZW0gZ2kgYT8gVHJvaSBraG9uZyBiYXQgY29uZywgYnUgbGFpIGVtIG5heSBob2MgaGFuaCBjdW5n IA0KdmFvIGxvYWkgZHVvYy4gQ2h1eWVuIEFuaCBBbXMgdmEgYmF5IGdpbyBkYW5nIGhvYyBvIFVL Li4uIExheSBoZXQgaW90IHRob25nIG1pbmggY3VhIA0KdGhhbmcgYW5oLCB0aG9pIGFuaCBuaHVv bmcgZW0gY3VuZyBkdW9jLi4uIA0KDQpDb24gZGF1IHR1b25nIGxhaTogMDkwLi4uLi4uLg0KDQpb YmxvZzogaHR0cDovLzM2MC55YWhvby4gY29tL3Byb2ZpbGUtIGNaYVRpM2c5Y3FpZDgzb3AgTEVN V2R6SjFYdy0/Y3E9MSwgDQp5bSBsYSBsaW5ocHVwcHk4NV0gDQoNCkNoaSBuYXkgdGhpIGhvYW5o IHRyYW5nIHRob2kgcm9pLiBCbyBsYSBOZ3V5ZW4gVGhhbmggU29uIHZ1IHRydW9uZyB2dSBuZ29h aSBnaWFvLCB0aSBudWEgDQpsZW4gdGh1IHRydW9uZyBibyBuZ29haSBnaWFvIGtpIHZ1YSByb2ks IHRydW90IGNodWMgdmkgZGluaCBraWVuIHR1bmcuLi4gTyBOZ2Egdm9pIGJvIHR1IGJlLCANCmN1 bmcgdGkgdG9lIExvbW9ub3hvdi0gdHJ1b25nIGRhaSBob2Mgc28gMSBOZ2Egbmh1bmcgbWEgaG9j IGtob25nIHRoZW8gZHVvYyB2ZSBudW9jIGNodWkgdmFvIHRydW9uZyBjb24gDQpvbmcgY2hhdSBj aGEgTmdvYWkgZ2lhbyB2aSBibyBjbyBzdWF0LiBIb2MgaGFuaCBjaGFuZyBiYW5nIGFpIG5odW5n IGNvIG5nb2FpIGhpbmggDQoxbTcwICsgYm8gbGFtIHRvIG5lbiByYSB0cnVvbmcgdHJvbmcga2hp IGtob2kgZHVhIE5nb2FpIGdpYW8gZ2lvaSBob24gZ2FwIHRpIGxhbiBib24gDQpjaGVuIHRpbSB2 aWVjLCBjaGkgTGluaCBjdWEgY2h1bmcgdGEgdW5nIGR1bmcgdmFvIEN1YyBMYW5oIFN1IEJvIE5n b2FpIEdpYW8gbGFtIHZpZWMuIA0KU29uZyB0cm9uZyBuaHVuZyBsdWEsIGNoaSBjaGkgYmlldCBk ZW4gTG91aXMgVnVpdHRvbiwgR3VjY2ksIFByYWRhLiBDaGluaCB2aSBuaGEgY2hpIA0KZ2lhdSwg Y2hpIHRpZXUgdGllbiBuaHUgcGhhLiANCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1Bo YXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFpLCAyOC8xMC8yMDAyLCAwMzowOSBHTVQr Nw0KDQpIYSBOb2k6IENodWEga2hvaSB0byB2dSBhbiB0aGFtIG5odW5nLCBsYW5nIHBoaSB0YWkg Y29uZyB0cmluaCBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5vaSAtIGNvIGxpZW4gcXVhbiB0b2kg b25nIFBoYW0gUXVhbmcgTmdoaSANCg0KTmhhIGhhdCBMb24gSGEgTm9pOiBDYWMgc2FpIHBoYW0g bGllbiB0aWVwIHRyb25nIHF1YSB0cmluaCB0cmllbiBraGFpIGR1IGFuIGNhcCBxdW9jIGdpYSAN Cm5heSBkYSBkYW4gdG9pIHZpZWMgY29uZyB0cmluaCBjaHVhIHRoaSBjb25nIHhvbmcgZGEgZHVv YyBuZ2hpZW0gdGh1Lg0KDQpEbyBkbywga2hpIHRoYW5oIHRyYSBCbyBUYWkgY2hpbmgga2llbSB0 cmEgMjIvNDMgaGFuZyBtdWMgY29uZyB0cmluaCwgdG9uZyBnaWEgdHJpIGdhbiAyOSw3IHR5IA0K ZG9uZyB0aGkgZ2FuIDEyLDEgdHkgZG9uZyBsYSBnaWEgdHJpIG5naGllbSB0aHUgdnVvdCB0aHVj IHRlLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMC9CYW8tdGFu Zy1IYS1Ob2ktbW9pLWtoYW5oLXRoYW5oLWRhLWJpLXRyb20tY2FwLTk0MTkxNS8gIEFuaCBOZ29j IDExOjIwLCAxMy8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBCYW8gdGFuZyBIYSBOb2kgdnVh IGtoYW5oIHRoYW5oIGRhIGJpIHRyb20gDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52bi8yMDEwMDQw MjA4MTY0MjQ1OHAwYzEwMDUvcGh1Yy10aGFtLXZ1LWRhbS1vLXRyZS1lbS1vLWRvbmctYW5oLWhh LW5vaS10b2ktbmFuZy1hbi1uaGUuaHRtIDAyLzA0LzIwMTAsIDA4OjIyKEdNVCs3KQ0KDQpIYSBO b2k6IERhbSBvIHRyZSBlbSBvIERvbmcgQW5oIC0gVG9pIG5hbmcgliBhbiBuaGUgDQoNCmh0dHA6 Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNy8xMC8zQjlGQjRDMi8gDQoNCkhhIE5v aTogUGhvICd2YXknIGdpdWEgdGh1IGRvIA0KDQpodHRwOi8vaG9tZS52bm4udm4vY2FuX3RldF9f aGFfbm9pX3VuX3RhY190cmllbl9taWVuLTMzNjE5OTY4LTYyNTcwNTY1Ny0wIHZuZXhwcmVzcy5u ZXQgLSAwNi0wMi0yMDEwIDEyOjA1DQoNCkhhIE5vaTogdW4gdGFjIHRyaWVuIG1pZW4gDQoNCmh0 dHA6Ly92dHYudm4vQXJ0aWNsZS9HZXQvODQ0NjggIA0KDQpIYSBOb2k6IENvbmcgYW4gcGh1IHRy YWNoIGRpYSBiYW4gbmhhbiBob2kgbG8gY3VhIGNvbiBidW9uIG1hIHR1eSAgDQoNCmh0dHA6Ly93 d3cubG9hbnRpbi5jb20vdG4teVlzZHM1YTZGTS9oYS1ub2ktbW90LWNhbmgtc2F0LWNvLWRvbmct ZGFuaC0yLWhvYy1zaW5oLXRydW5nLWhvYy0yOTA5MjAxMC5odG0gMjkvMDkvMjAxMCwgOToyMSBB TSANCg0KSGEgTm9pOiBNb3QgY2FuaCBzYXQgY28gZG9uZyBkYW5oIDIgaG9jIHNpbmggdHJ1bmcg aG9jICgyOS8wOS8yMDEwKSANCg0KVmkgc2kgZGllbiB2b2kgYmFuIGdhaSwgbmhvbSBuZ3VvaSBk byBtb3QgY2hpZW4gc2kgQ2FuaCBzYXQgY28gZG9uZyAoQ1NDRCkgQ0EgVFAuIEhhIA0KTm9pIGNh bSBkYXUgZGEgZGVuIHRhbiBjb25nIHRydW9uZyAieHUiIDIgaG9jIHNpbmggVHJ1b25nIFRIUFQg Tmd1eWVuIFRydW9uZyBUbyAocXVhbiBUaGFuaCBYdWFuKS4uLiANCg0KaHR0cDovL3ZpZXRiYW8u dm4vQW4tbmluaC1QaGFwLWx1YXQvTW90LWNhbmgtc2F0LUhhLU5vaS1nb2ktY29uLWRvLWNoZW0t My1kb25nLWRvaS1vLUJvLzcwMDkwNjI5LzIxOC8gMDUvNy8yMDA3LCAxMTo0MCBHTVQrNw0KDQpI YSBOb2k6IE1vdCBjYW5oIHNhdCBIYSBOb2kgZ29pIGNvbiBkbyBjaGVtIDMgZG9uZyBkb2kgDQoN ClZ1IHRyb25nIGFuIHhheSByYSB0b2kgMy83LCB0YWkgcGhvIEtpbSBNYSwgQmEgRGluaCBIYSBO b2ksIGxhbSAzIGNhbiBibyBjaGllbiBzeSBDdWMgDQpDYW5oIHNhdCBiYW8gdmUgdmEgaG8gdHJv IHR1IHBoYXAgKEMyMikgQm8gQ29uZyBhbiB0cm9uZyB0aHVvbmcuIFRyb25nIG5ob20gZ2F5IGFu IA0KY28gbW90IG5ndW9pIGxpZW4gcXVhbiBsYSBjaGllbiBzeSBUcnVuZyBkb2FuIENhbmggc2F0 IGNvIGRvbmcgKFBDMTgpIENBIFRQIEhhIE5vaS4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5p bmgtUGhhcC1sdWF0L0hhLU5vaS1YdS1seS1jYW4tYm8tc2FpLXBoYW0tdHJvbmctY2FwLWJpZW4t c28vMTczNTE3MzM0MS8yMTgvDQoNCkhhIE5vaTogTmhpZXUgc2FpIHBoYW0gdHJvbmcgdmllYyBj YXAgYmllbiBzbyB4ZTsgbW90IHNvIHRydW9uZyBob3AgY28gc2FpIHBoYW0gdHJvbmcgcXV5IHRy aW5oIGRhbmcga3kgdmEgY2FwIGJpZW4gc28uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v eGFob2kvMjAwOS8wNC84Mzk4MDkvIDIyOjEwJyAwMi8wNC8yMDA5IChHTVQrNykgDQoNCkhhIE5v aTogWGEgaG9pIGRlbiB0YWMgb2FpIHRhYyBxdWFpIGdpdWEgYmFuIG5nYXkgDQoNCmh0dHA6Ly92 bmV4cHJlc3MubmV0L1ZpZXRuYW0vWGEtaG9pLzIwMDgvMDIvM0I5RkYzQzYvIDE4LzIvMjAwOCwg MDk6MTggR01UKzcNCg0KSGEgTm9pOiBUcm9tIGNhcCBob2FuaCBoYW5oIHRhaSBjYWMgdHV5ZW4g eGUgYnV5dCANCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDAyLzEw LzNCOUMxQzk3LyAyOC0xMC0yMDAyLCAwMzowOSBHTVQrNw0KDQpIYSBOb2k6IENhbiBraG9pIHRv IHZhIGFuIHRoYW0gbmh1bmcgbGFuZyBwaGkgdGFpIGNvbmcgdHJpbmggTmhhIGhhdCBMb24gSGEg Tm9pIA0KDQpUaGFuaCB0cmEgTmhhIG51b2MgdnVhIGNvIGtldCBsdWFuIHZlIGR1IGFuIHRvbiB0 YW8gTmhhIGhhdCBMb24sIHNhdSA1IG5hbSBjb25nIHRyaW5oIG5heSAidGFtIiBkdWEgdmFvIHN1 IGR1bmcuIA0KDQpUaGVvIGRvLCBoYW5nIGxvYXQgdmkgcGhhbSB2ZSBkYXUgdHUgeGF5IGR1bmcg Y28gYmFuIGRhIHhheSByYSB0dSBuYW0gMTk5NCwgdHJ1b2Mga2hpIA0KQ2hpbmggcGh1IGdpYW8g Y2hvIEJvIFZhbiBob2EgbGFtIGNodSBkYXUgdHUuIEhpZW4gY2h1YSBybyBiYW8gZ2lvIGNvbmcg dHJpbmggbW9pIGR1b2MgcXV5ZXQgdG9hbi4NCg0KTmd1eWVuIG5oYW4gY3VhIHRhdCBjYSBjYWMg c2FpIHBoYW0gdHJlbiwgVGhhbmggdHJhIE5oYSBudW9jIGRhIGtldCBsdWFuIGxhIGRvIGNhYyBj byANCnF1YW4gbGllbiBxdWFuIGtob25nIHRvbiB0cm9uZyB2YSBjaGFwIGhhbmggY2FjIHF1eSBk aW5oIHZlIHhheSBkdW5nIGhpZW4gaGFuaCBjdWEgDQpOaGEgbnVvYy4gQ29uZyB0cmluaCBjdW9p IGN1bmcgZHVvYyB0cmllbiBraGFpIHZvaSBoaW5oIHRodWMgInZ1YSB0aGlldCBrZSwgdnVhIHRo aSBjb25nIi4gDQoNCk5nb2FpIHJhLCBnYW4gbW90IG5hbSB0cnVvYyBraGkgQ2hpbmggcGh1IGdp YW8gY29uZyB0cmluaCBjaG8gQm8gVmFuIGhvYSwgQm8gbmF5IGRhIA0KY2h1IGRvbmcgbGFwIGJh biBkb24gZ2lhLiBTb25nIGRlbiBsdWMgZHUgYW4gZHVvYyB0cmllbiBraGFpLCBiYW4gbmF5IHZh biBjaHVhIGxhcCBkdW9jIA0KYm8gZG9uIGdpYSBkYWMgdGh1LiBWaSB0aGUgaGF1IGhldCBjYWMg aGFuZyBtdWMgeGF5IGxhcCBkZXUgZHVvYyB0aGFuaCB0b2FuIGR1b2kgZGFuZyANCnRhbSB1bmcs IHRhbSB0aW5oLi4uDQoNClRoYW5oIHRyYSBOaGEgbnVvYyBkYSBwaGF0IGhpZW4gdG9hbiBibyBo ZSB0aG9uZyB0aGlldCBiaSBhbSB0aGFuaCB2YSBjaGlldSBzYW5nIHNhbiANCmtoYXUgKHRvbmcg dHJpIGdpYSAxMywyIHRpIGRvbmcpIGRhIGR1b2MgbmhhcCB2ZSBuYW0gaW0gdHJvbmcga2hvIDUg bmFtIG5heS4gVGllbiB0aHVlIA0Ka2hvIGJhaSBjdWEgQ29uZyB0eSBUaGFpIEJpbmggRHVvbmcg dG9uIDEwNSB0cmlldSBkb25nLiBHaWFpIHRoaWNoIHZlIHZpZWMgbGFuZyBwaGkgDQpjb25nIHNh biBuYXksIEJhbiBxdWFuIGx5IGNobyByYW5nIGhvIGRhICJxdWVuIiBxdXkgZGluaCBsYSBsYXAg ZGF0IHRoaWV0IGJpIGRvaSB2b2kgcGhpYSANCm51b2MgbmdvYWkgdGhpIHBoYWkgY28gbGllbiBr ZXQgdm9pIG1vdCBkb24gdmkgY28gY2h1YyBuYW5nIHRyb25nIG51b2MuDQoNClRyb25nIHF1YSB0 cmluaCB0aGkgY29uZywgbmhpZXUgaG9wIGRvbmcgbXVhIGJhbiBsb25nIHZvbmcgZGEgZHVvYyBs YXAuIFRyb25nIGRvLCANCnJpZW5nIHZpZWMgdGhhdSBtdWEgdGhpZXQgYmkgZGlldSBob2EsIGRp ZW4gdHUsIGNhcCBkaWVuLCB0dSBkaWVuIGFwLi4uICg0LzQ4IGhhbmcgbXVjIGR1b2MgDQp4YWMg bWluaCkgZGEgbGFtIHRoYXQgdGhvYXQgbmdhbiBzYWNoIDggdHkgZG9uZy4NCg0KQ2FjIHNhaSBw aGFtIGxpZW4gdGllcCB0cm9uZyBxdWEgdHJpbmggdHJpZW4ga2hhaSBkdSBhbiBjYXAgcXVvYyBn aWEgbmF5IGRhIGRhbiB0b2kgdmllYyANCmNvbmcgdHJpbmggY2h1YSB0aGkgY29uZyB4b25nIGRh IGR1b2MgbmdoaWVtIHRodS4NCg0KRG8gZG8sIGtoaSB0aGFuaCB0cmEgQm8gVGFpIGNoaW5oIGtp ZW0gdHJhIDIyLzQzIGhhbmcgbXVjIGNvbmcgdHJpbmgsIHRvbmcgZ2lhIHRyaSBnYW4gDQoyOSw3 IHR5IGRvbmcgdGhpIGdhbiAxMiwxIHR5IGRvbmcgbGEgZ2lhIHRyaSBuZ2hpZW0gdGh1IHZ1b3Qg dGh1YyB0ZS4NCg0KKEN1IHRyaSBxdWFuIHRhbTogUGhhaSBjaGFuZyB2aSBraG9uZyBraG9pIHRv IHZ1IGFuIHRoYW0gbmh1bmcgbGFuZyBwaGkgdGFpIGNvbmcgdHJpbmggTmhhIEhhdCBMb24gSGEg Tm9pDQptYSBvbmcgTmd1eWVuIER1YyBOaGFuaCBkdW9jIHRoYW5nIGNodWMgdmEgdmFuIGtpZW0g bHVvbiBjaHVjIEdpYW0gZG9jIENvbmcgYW4gSGEgTm9pPykNCg0KaHR0cDovL3ZpZXRiYW8udm4v QW4tbmluaC1QaGFwLWx1YXQvVGhhdC10aG9hdC10cm9uZy14YXktZHVuZy1jby1iYW4tQWktY2hp dS10cmFjaC1uaGllbS83MDAzMzkzMy8yMTgvIDE4LzEyLzIwMDUsIDE0OjUxIEdNVCs3DQoNCkNh biBraG9pIHRvIHZ1IGFuIHRoYW0gbmh1bmcgdGFpIGR1IGFuIGNhaSB0YW8gTmhhIEhhdCBMb24g SGEgTm9pOg0KDQpUcm9uZyB2b25nIDIgbmFtLCBUaGFuaCB0cmEgY2h1eWVuIG5nYW5oIHhheSBk dW5nIHRvIGNodWMgdGhhbmggdHJhIDMxIGR1IGFuIA0KKHRvbmcgc28gdm9uIDE3LjMwMCB0aSBk b25nKSB0aGkgY2EgMzEgZHUgYW4gZGV1IGNvIHNhaSBwaGFtIHZvaSBzbyB0aWVuIHRoYXQgdGhv YXQsIGxhbmcgDQpwaGkgbGVuIHRvaSAyLjA3MCB0aSBkb25nLg0KDQpUaW5oIGhpbmggdGhhbSBu aHVuZyB0cm9uZyB4YXkgZHVuZyBjbyBiYW4gbmdoaWVtIHRyb25nIGxhIHZheSBuaHVuZyB0cm9u ZyBxdWEgDQp0cmluaCBkaWV1IHRyYSBsb2FpIGFuIG5heSwgY2FjIGNvIHF1YW4gYmFvIHZlIHBo YXAgbHVhdCwgdHJvbmcgZG8gY28gQ28gcXVhbiBEaWV1IHRyYSwgZ2FwIHJhdCBuaGlldSBraG8g a2hhbi4NCg0KVGh1b25nIHRhIE5ndXllbiBUcm9uZyBMb25nIC0gVHJ1b25nIHBob25nIDYgQ3Vj IENTRFQgdG9pIHBoYW0gdmUgdHJhdCB0dSBxdWFuIGx5IA0Ka2luaCB0ZSB2YSBjaHVjIHZ1IChD LTE1KSBsYWkgbmV1IHJhIG1vdCBraG8ga2hhbiBudWEgdHJvbmcgY29uZyB0YWMgZGlldSB0cmEg bWEgDQp2dSBhbiB0aGFtIG5odW5nIHhheSByYSB0YWkgY29uZyB0cmluaCB0dSBibyB2YSB0b24g dGFvIE5oYSBoYXQgTG9uIEhhIE5vaSBsYSBtb3QgdmkgZHUuDQpDb25nIHRyaW5oIG5heSBjbyB0 b25nIG11YyBkYXUgdHUgZHVvYyBkdXlldCBsYSAxNTYgdGkgZG9uZyBiYW5nIG5ndW9uIHZvbiBu Z2FuIHNhY2ggMTAwJS4gDQpDb25nIHRyaW5oIGdvbSAzNCBoYW5nIG11YyB4YXkgbGFwIHZhIDE0 IGhhbmcgbXVjIGxhcCBkYXQgdGhpZXQgYmkuIEJhbmcgY2FjIGJpZW4gcGhhcCANCm5naGllcCB2 dSwgQ28gcXVhbiBEaWV1IHRyYSBkYSBsYXAgY2h1eWVuIGFuIHZhIGNob24gcmEgNCBoYW5nIG11 YyBkaWV1IHRyYSwgeGFjIG1pbmguIA0KS2V0IHF1YSBjYSA0IGhhbmcgbXVjIG5heSBkZXUgY28g ZGF1IGhpZXUgdmkgcGhhbS4gTmh1bmcgY2hvIGRlbiBuYXkgY29uZyB0cmluaCBkYSBkdWEgDQp2 YW8gc3UgZHVuZyBuaGlldSBuYW0gbWEgdmFuIGNodWEgcXV5ZXQgdG9hbiBjbyBuZ2hpYSBsYSBj aHVhIHhhYyBkaW5oIGR1b2MgDQptdWMgZG8gdGhpZXQgaGFpIG5lbiB2YW4gY2h1YSBjbyBjbyBz byBkZSB4ZW0geGV0IGtob2kgdG8gdnUgYW4gaGluaCBzdS4NCg0KVGh1b25nIHRhIE5ndXllbiBU cm9uZyBMb25nIGRhdCBjYXUgaG9pOiAiVGFpIHNhbyBsYWkgcGhhaSBjaG8gcXV5ZXQgdG9hbiBt b2kgeGFjIA0KZGluaCBkdW9jIHRoaWV0IGhhaT8iLCB2YSBvbmcgY2hvIHJhbmc6ICJDaGluaCBj YWkgcmFuZyBidW9jIGRvIGRhIGxhbSBuYW4gbG9uZyBuaGlldSANCnRyaW5oIHNhdCwgZGlldSB0 cmEgdmllbiBraGkgdGllcCBjYW4gdnUgdmllYyB0aGFtIG5odW5nIHRyb25nIHhheSBkdW5nIGNv IGJhbiwgY3VuZyANCmNvIG5naGlhIGxhIHNlIGJvIGxvdCBuaGlldSB0b2kgcGhhbSB0cm9uZyBs aW5oIHZ1YyBuYXkiIA0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvUGhhcC1sdWF0LzIw MDIvMTAvM0I5QzFDOTcvIFRodSBoYWksIDI4LzEwLzIwMDIsIDAzOjA5IEdNVCs3DQoNCkNhbiBr aG9pIHRvIHZ1IGFuIHRoYW0gbmh1bmcgdGFpIGR1IGFuIGNhaSB0YW8gTmhhIEhhdCBMb24gSGEg Tm9pOih0aWVwKQ0KDQpDb25nIHRyaW5oIE5oYSBIYXQgTG9uIC0gSGEgTm9pOiBUb2FuIGJvIGhl IHRob25nIHRoaWV0IGJpIGFtIHRoYW5oIHZhIGNoaWV1IHNhbmcgDQpzYW4ga2hhdSAodG9uZyB0 cmkgZ2lhIDEzLDIgdGkgZG9uZykgZGEgZHVvYyBuaGFwIHZlIG5hbSBpbSB0cm9uZyBraG8gNSBu YW0gbmF5LiAoRGVuIG5heSAyMDA5LCBjdSB0cmkgcXVhbiB0YW0sIGtob25nIHJvIHNvIHRoaWV0 IGJpIG5heSBjbyBjb24gZGF5IGR1LCBuZ3V5ZW4gdmVuIGtob25nPykNCg0KVHJvbmcgcXVhIHRy aW5oIHRoaSBjb25nLCBuaGlldSBob3AgZG9uZyBtdWEgYmFuIGxvbmcgdm9uZyBkYSBkdW9jIGxh cC4gVHJvbmcgZG8sIA0KcmllbmcgdmllYyB0aGF1IG11YSB0aGlldCBiaSBkaWV1IGhvYSwgZGll biB0dS4uLiBkYSBsYW0gdGhhdCB0aG9hdCBuZ2FuIHNhY2ggOCB0eSBkb25nLiANCg0KLS0tLS0N ClBodSBsdWMgMjogIkRhIE5hbmcga2hvbmcgcGhhdCBoaWVuIHZ1IHRoYW0gbmh1bmcgbmFvIiAg DQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9Ib21lL1Rob2lTdS90dW9pdHJlLnZuL0RhLU5hbmct a2hvbmctcGhhdC1oaWVuLXZ1LXRoYW0tbmh1bmctbmFvLzUzMDg2ODcuZXBpIEhVVSBLSEEgLSBD SEkgUVVPQyAtIFRSQU4gTEUgSE9BICAzLzEyLzIwMTAsIDA4OjAwIChHTVQrNykgDQoNCkt5IGhv cCBIRE5EIGNhYyB0aW5oLCB0aGFuaCBwaG86IERhIE5hbmcga2hvbmcgcGhhdCBoaWVuIHZ1IHRo YW0gbmh1bmcgbmFvIA0KDQpUVCAtIE5nYXkgMi0xMiwgSERORCBUUCBEYSBOYW5nIGRhIHRpZW4g aGFuaCB0aGFvIGx1YW4gdmEgdGhvbmcgcXVhIHNhdSBuZ2hpIHF1eWV0LiANCkNhYyB2YW4gZGUg byBuaGllbSBtb2kgdHJ1b25nLCBnaWEgZGF0LCBibyB0cmkgdGFpIGRpbmggY3UsIGNvbmcgdGFj IGRpIGRvaSBnaWFpIHRvYSBkdW9jIA0KY2FjIGRhaSBiaWV1IGRhYyBiaWV0IHF1YW4gdGFtLiAN Cg0KKEFuaDogTW90IGRvYW4gcXVvYyBsbyA5MUIgdnVhIHhheSBkdW5nIHhvbmcgZGEgYmkgaHUg aG9uZyAgLSBBbmg6IENoaSBRdW9jKSANCg0KVmUgdG8gdHJpbmggZGUgbmdoaSBhcCBkdW5nIGdp YSBkYXQgbmFtIDIwMTEgbmh1IGdpYSBkYXQgbmFtIDIwMTAsIGRhaSBiaWV1IE5ndXllbiANClF1 YW5nIE5nYSBjaG8gcmFuZyB2aWVjIGFwIGR1bmcgbmh1IHZheSBsYSBraG9uZyBob3AgbHkuIEhp ZW4gRGEgTmFuZyBkYW5nIHRpZW4gDQpoYW5oIGdpYWkgdG9hIHJhdCBuaGlldSBkdSBhbiBsaWVu IHF1YW4gZGVuIGtodSB2dWMgZGF0IG5vbmcgbmdoaWVwLCB0cm9uZyBraGkgZG8gZ2lhIGRhdCAN CmFwIGR1bmcgZGVuIGJ1IGRlIHRodSBob2kgZG9pIHZvaSBsb2FpIGRhdCBuYXkgY2hpIDM1LjAw MCBkb25nL20yIGxhIHF1YSB0aGFwLCBnYXkga2hvIGtoYW4gY2hvIGRhbi4gDQoNCk5nb2FpIHJh LCB0aGVvIG9uZyBOZ2EsIFRQIGNodWEgcXVhbiBseSBjaGF0IGNhYyBiYW4gcXVhbiBseSBkdSBh biBraGkgdGllbiBoYW5oIGRvIGRhYywgDQphcCBnaWEgZGVuIGJ1LCBnaXVhIGNhYyBiYW4gcXVh biBseSBuaGlldSBraGkgY28gbXVjIGhvIHRybyBkZW4gYnUga2hhYyBuaGF1IGtoaWVuIG5ndW9p IGRhbiBidWMgeHVjLiANCg0KVUJORCBUUCBEYSBOYW5nIGJhbyBjYW8gbmFtIDIwMTAgVFAga2hv bmcgcGhhdCBoaWVuIHZ1IHRoYW0gbmh1bmcgbmFvLiBDbyBkYWkgDQpiaWV1IGJhbiBraG9hbjog IkJhbyBjYW8gbmh1IHZheSBsaWV1IG5ndW9pIGRhbiBjbyB0aW4ga2hvbmc/Ii4gDQoNCmh0dHA6 Ly9kYW5sYW1iYW8uY29tLzIwMTAvMTIvMDQvZGEtbiVFMSVCQSVCNW5nLWtob25nLXRoYW0tbmh1 bmctdmEtYyVFMSVCQSVBNW0tYyVFMSVCQiVBRGEtc2luaC12aWVuLWglRTElQkIlODctdCVFMSVC QSVBMWktY2glRTElQkIlQTljLyBieSBCYW8gRGFuIFBvc3RlZCBvbiAwNC8xMi8yMDEwIA0KDQpE YSBOYW5nIDogIktob25nIHRoYW0gbmh1bmciIHZhICJjYW0gY3VhIiBzaW5oIHZpZW4gaGUgdGFp IGNodWMgIQ0KDQpCaSB0aHUga2llbSBUaWVuIHN5IGRvbSBOZ3V5ZW4gQmEgVGhhbmggY2hpIGRh byAiY2FtIGN1YSIgc2luaCB2aWVuIHRhaSBjaHVjDQoNCpYgVUJORCBUUCBEYSBOYW5nIHZ1YSBj byB2YW4gYmFuIGd1aSBjYWMgc28sIGJhbiwgbmdhbmgsIHF1YW4sIGh1eWVuIGNoaSBkYW8gDQoi a2hvbmcgdGllcCBuaGFuIHNpbmggdmllbiB0b3QgbmdoaWVwIGhlIHRhaSBjaHVjIiB2YW8gbGFt IHZpZWMgdGFpIGNhYyBjbyBxdWFuLCANCmRvbiB2aSB0aHVvYyBibyBtYXkgbmhhIG51b2MuIA0K DQpRdXkgZGluaCB0cmVuIGRhIGdheSByYSBuaGlldSBwaGFuIHVuZywgbmhhdCBsYSBkb2kgdm9p IG5odW5nIGhvYyB2aWVuIGRhbmcgdGhlbyBob2MgDQpjYWMgY2h1b25nIHRyaW5oIHRhaSBjaHVj LiBUaGFtIGNoaSwgY28geSBraWVuIHRoYW5nIHRoYW4gY2hvIHJhbmcgZGF5IGxhIG1vdCBxdXll dCBkaW5oIA0KcGhhbiBiaWV0IHZhIGhvYW4gdG9hbiB0cmFpIHBoYXAgbHVhdC4gDQoNClRyYSBs b2kgdHJlbiBiYW8gVHVvaSBUcmUsIG9uZyBEYW5nIENvbmcgTmd1IJYgZ2lhbSBkb2MgU28gTm9p IHZ1IERhIE5hbmcgliBjaG8gDQpiaWV0OiBxdXkgZGluaCBkbyBuaGFtIG5hbmcgY2FvIGNoYXQg bHVvbmcgZG9pIG5ndSBjYW4gYm8uDQoNCkJhbmcgdGFpIGNodWMgdmFuIGxhIG1vdCB2YW4gYmFu ZyBkdW9jIEJvIGdpYW8gZHVjIGNvbmcgbmhhbiwgbWFjIGR1IHRyb25nIG5odW5nIA0KbmFtIHZ1 YSBxdWEsIGNoYXQgbHVvbmcgZGFvIHRhbyBkYWkgaG9jIGhlIHRhaSBjaHVjIGxhbiBjaGluaCBx dXkgbmdheSBjYW5nIGRpIHh1b25nLg0KDQpOaGlldSBxdWFuIGNodWMgZHVuZyBkYXUgVmlldCBO YW0gY3VuZyB0dW5nIGNvIHZhbiBiYW5nIHRhaSBjaHVjLiANCg0KaHR0cDovL3ZpZXRiYW8udm4v QW4tbmluaC1QaGFwLWx1YXQvRGEtTmFuZy1odXktY2FjLXZhbi1iYW4teGUtcmFvLzEwOTQ0OTkx LzIxOC8gKFRoZW8gTGFvIERvbmcpIDE0LzIvMjAwNiwgMTA6MTUgR01UKzcgDQoNCkRhIE5hbmc6 IEJhbiBoYW5oIDEzIHZhbiBiYW4gdHJhaSBsdWF0IA0KDQpHaWFtIGRvYyBTbyBUdSBwaGFwIERh IE5hbmcgU3VvbmcgTmd1eWV0IFRodSBjaG8gYmlldCwgc28gZGEgcmEgc29hdCwgdGhhbSBtdXUg Y2hvIA0KVUJORCB0aGFuaCBwaG8gdHJpbmggdHUgdmEgY2FjaCB4dSBseSAxMyB2YW4gYmFuIHRy YWkgbHVhdCB2dWEgYmkgQ3VjIGtpZW0gdHJhIHZhbiBiYW4gQm8gVHUgcGhhcCBwaGF0IGhpZW4u DQoNClRyb25nIHNvIGRvLCA0IHZhbiBiYW4gYmkgaHV5IGJvIGhvYW4gdG9hbiBnb20gcXV5ZXQg ZGluaCAxMzcvMjAwMS9RRC1VQiBuZ2F5IA0KMTEvOS8yMDAxIHZlIHh1IHBoYXQgaGFuaCBjaGlu aCB2YSB0aHUgcGhhdCB0cnVjIHRpZXAgZG9pIHZvaSB2aSBwaGFtIGhhbmggY2hpbmggdHJvbmcg DQpxdWFuIGx5IGRvIHRoaSB0cmVuIGRpYSBiYW4gdGhhbmggcGhvIERhIE5hbmcuIFF1eWV0IGRp bmggMTU1LzIwMDIvUUQtVUIsIG5nYXkgDQoyNy8xMi8yMDAyIHZlIHZpZWMgYmFuIGhhbmggY2Fj IHF1eSBkaW5oIHh1IHBoYXQgdmkgcGhhbSBoYW5oIGNoaW5oIHZhIGN1b25nIGNoZSANCmhhbmgg Y2hpbmggZG9pIHZvaSBoYW5oIHZpIGtob25nIGNoYXAgaGFuaCBxdXlldCBkaW5oIHRodSBob2kg ZGF0Lg0KDQpRdXlldCBkaW5oIDEwMjYvUUQtVUIsIG5nYXkgMjQvMi8yMDAzIHZlIHh1IGx5IGhh bmggdmkgZGlldSBraGllbiB4ZSBnYW4gbWF5LCBtb3RvLCANCm90byBjaGF5IHF1YSB0b2MgZG8g cXV5IGRpbmggdmEgcXV5ZXQgZGluaCAyMC8yMDA0L1FELVVCLCBuZ2F5IDExLzIvMjAwNCAoeHUg bHkgY2FjIA0KaGFuaCB2aSB2aSBwaGFtIHZlIHRyYXQgdHUgYW4gdG9hbiBnaWFvIHRob25nLCBk byB0aGkgdmEgdmUgc2luaCBtb2kgdHJ1b25nIHRhaSBtb3Qgc28gDQp0dXllbiBkdW9uZyB0cm9u ZyBkaWVtLg0KDQpOZ29haSByYSwgU28gVHUgcGhhcCBEYSBOYW5nIGN1bmcgZGFuZyBraWVuIG5n aGkgaHV5IGRvIDEvNSBzbyBxdXlldCBkaW5oIHRyYWkgbHVhdCBraGFjLiANCg0KaHR0cDovL3Z0 Yy52bi8yLTIyNjk3OC94YS1ob2kvZGEtbmFuZy1oYW5nLWxvYXQtc2FpLXBoYW0ta2hvYW4tdGh1 LWRhdS1uYW0taG9jLmh0bSAyNC8wOS8yMDA5IDE4OjA2IA0KDQpEYSBOYW5nOiBIYW5nIGxvYXQg c2FpIHBoYW0ga2hvYW4gdGh1IGRhdSBuYW0gaG9jIA0KDQpodHRwOi8vZGFuYW5nLmdvdi52bi9U YWJJRC82OC9DSUQvNjE5L0l0ZW1JRC8xOTkxMi9kZWZhdWx0LmFzcHgNCg0KRGEgTmFuZzogRHUg YW4gNDEgdHJpZXUgVVNEIGNodWEgcXV5ZXQgdG9hbiBkYSB4dW9uZyBjYXAgDQoNCmh0dHA6Ly9k YW5sdWFudm4ud29yZHByZXNzLmNvbS8yMDA5LzEyLzE1L2NodXklRTElQkIlODduLXYlRTElQkIl ODEtb25nLW5ndXklRTElQkIlODVuLWJhLXRoYW5oLWNhdS1jaHV5JUUxJUJCJTg3bi0xMC1uYW0t bmglQzYlQjBuZy1jaCVDNiVCMGEtY3UvICAxNS8xMi8yMDA5IA0KDQpEYSBOYW5nOiBDaHV5ZW4g dmUgT25nIE5ndXllbiBCYSBUaGFuaA0KIA0KT25nIE5ndXllbiBCYSBUaGFuaCwgVXkgdmllbiBU cnVuZyB1b25nIERhbmcsIEJpIHRodSBUaGFuaCB1eSBraWVtIENodSB0aWNoIEhvaSBkb25nIG5o YW4gZGFuIHRoYW5oIHBobyBEYSBOYW5nDQoNClZ1IGFuIGxpZW4gcXVhbiBkZW4gb25nIFBoYW0g TWluaCBUaG9uZyB0dW5nIGR1b2MgeGVtIGxhIHZ1IHRoYW0gbmh1bmcgbG9uIG5oYXQgbWllbiBU cnVuZy4gT25nIFRob25nIGJpIGR1YSByYSB4dSBoYWkgbGFuLCBtb3QgbGFuIHZhbyBuYW0gMjAw MSB2YSBtb3QgbGFuIHZhbyBuYW0gMjAwNCwgaGluaCBwaGF0IHRvbmcgaG9wIGNobyBjYSBoYWkg dG9pIGxhIDE2IG5hbSA0IHRoYW5nIHR1LiAgICANCg0KS2hpIGRpZXUgdHJhIHZ1IGFuIGxpZW4g cXVhbiBkZW4gb25nIFBoYW0gTWluaCBUaG9uZywgY2FjIGNvIHF1YW4gYmFvIHZlIHBoYXAgbHVh dCBjdWEgRGEgTmFuZyBwaGF0IGdpYWMsIG9uZyBOZ3V5ZW4gQmEgVGhhbmggLSBsdWMgZG8gZGFu ZyBsYSBDaHUgdGljaCB0aGFuaCBwaG8gRGEgTmFuZyAtIGNvIHRyYWNoIG5oaWVtIGxpZW4gZG9p LiANCg0KaHR0cDovL3Zpbmh4dWFuLm9yZy9waG9ydW0vdmlld3RvcGljLnBocD9mPTEzJnA9MjQx MDUNCg0KQmFuIGJhbyBjaHVhIGN1YSBMdWF0IHN1IE5ndXllbiBUaGkgRHVvbmcgSGEgY2hvIG5o YSBiYW8gRHVvbmcgVGllbg0KDQooTG9pIGdpb2kgdGhpZXU6IFBoaWVuIHRvYSB4dSB0dW9uZyBj b25nIGFuIFRyYW4gVmFuIFRoYW5oIGhvbSA3LTEyLTIwMDksIHRhaSBEYSBOYW5nLCBnYXkgc3Ug Y2h1IHkgY3VhIGNvbmcgbHVhbiBraGFwIG5vaS4gVHJvbmcgcGhpZW4gdG9hIG5heSwgTHVhdCBz dSBOZ3V5ZW4gVGhpIER1b25nIEhhLCBuZ3VvaSBiYW8gY2h1YSBjaG8gbmhhIGJhbyBEdW9uZyBU aWVuLCBkYSBwaGFuIHRpY2ggbW90IHNvIHN1IHZpZWMgZGFuZyBxdWFuIHRhbTsgZGFjIGJpZXQg Y28gbm9pIGR1bmcgbGllbiBxdWFuIHRydWMgdGllcCB0b2kgdG9hIGFuIERhIE5hbmcgdmEgb25n IE5ndXllbiBCYSBUaGFuaCAtIEJpIHRodSB0aGFuaCB1eSBUUCBEYSBOYW5nLiBDaHVuZyB0b2kg eGluIGRhbmcgZGUgbW9pIG5ndW9pIGN1bmcgdGhhbSBraGFvLikNCg0KVGh1YSBIb2kgZG9uZyB4 ZXQgeHUsDQoNClF1YSBuZ2hpZW4gY3V1IGhvIHNvIHZ1IGFuIHZhIHF1YSBkaWVuIGJpZW4gdGFp IHBoaWVuIFRvYSwgdG9pIGNvIGRheSBkdSBjYW4gY3UgZGUga2hhbmcgZGluaCByYW5nIHRoYW4g Y2h1IHRvaSwgb25nIER1b25nIFRpZW4sIHR1YyBEdW9uZyBOZ29jIFRpZW4sIG5ndXllbiBUcnVv bmcgZGFpIGRpZW4gYmFvIENvbmcgYW4gdGhhbmggcGhvIEhvIENoaSBNaW5oIHRhaSBIYSBOb2ks IGtob25nIHBoYW0gIlRvaSBsb2kgZHVuZyBjYWMgcXV5ZW4gdHUgZG8sIGRhbiBjaHUsIHhhbSBw aGFtIGxvaSBpY2ggY3VhIE5oYSBudW9jLCBxdXllbiwgbG9pIGljaCBob3AgcGhhcCBjdWEgdG8g Y2h1YywgY29uZyBkYW4iIHF1eSBkaW5oIHRhaSBEaWV1IDI1OCBCbyBMdWF0IGhpbmggc3Ugbmh1 IFRvYSBhbiBuaGFuIGRhbiB0aGFuaCBwaG8gRGEgTmFuZyAoc2F1IGRheSBnb2kgdGF0IFRvYSBh biB0aGFuaCBwaG8gRGEgTmFuZykgZG8gVGhhbSBwaGFuIC0gUGhvIENoYW5oIGFuIE5ndXllbiBU aGFuaCBsYW0gY2h1IHRvYSBIRFhYIGRhIHR1eWVuIHRhaSBCYW4gYW4gaGluaCBzdSBzbyB0aGFt IHNvIDE2LzIwMDkvSFNTVCBuZ2F5IDA3LzgvMjAwOSAoc2F1IGRheSBnb2kgdGF0IEJhbiBhbiku DQoNCkRpZXUgOCBCTEhTIHF1eSBkaW5oOiAiVG9pIHBoYW0gbGEgaGFuaCB2aSBuZ3V5IGhpZW0g Y2hvIHhhIGhvaSBkdW9jIHF1eSBkaW5oIHRyb25nIEJvIGx1YXQgaGluaCBzdSwgZG8gbmd1b2kg Y28gbmFuZyBsdWMgdHJhY2ggbmhpZW0gaGluaCBzdSB0aHVjIGhpZW4gbW90IGNhY2ggY28geSBo b2FjIHZvIHksIHhhbSBwaGFtIHF1eWVuLCBsb2kgaWNoIGhvcCBwaGFwIGN1YSB0byBjaHVjLCB4 YW0gcGhhbSB0aW5oIG1hbmcsIHN1YyBraG9lLCBkYW5oIGR1LCBuaGFuIHBoYW0sIHR1IGRvLCB0 YWkgc2FuLCBjYWMgcXV5ZW4sIGxvaSBpY2ggaG9wIHBoYXAga2hhYyBjdWEgY29uZyBkYW4uLi4i LCBEaWV1IDUxIEJMVFRIUyBxdXkgZGluaDogIk5ndW9pIGJpIGhhaSBsYSBuZ3VvaSBiaSB0aGll dCBoYWkgdmUgdGhlIGNoYXQsIHRpbmggdGhhbiwgdGFpIHNhbiBkbyB0b2kgcGhhbSBnYXkgcmEi LiBSb2kgY2FjIERpZXUgNjgsIDEzNyBCTFRUSFMgcXV5IGRpbmggdmUgbG9pIGtoYWkgY3VhIG5n dW9pIGJpIGhhaSwgRGlldSAxOTEgQkxUVEhTIHF1eSBkaW5oIHN1IGNvIG1hdCBjdWEgbmd1b2kg YmkgaGFpIHRhaSBwaGllbiB0b2EuLi4gTmh1IHZheSB0aGVvIHBoYXAgbHVhdCBoaW5oIHN1LCB0 b2kgcGhhbSBkdW9jIHhhYyBkaW5oIGJvaSBuZ3VvaSBiaSBoYWksIGtob25nIGNvIG5ndW9pIGJp IGhhaSB0aGkga2hvbmcgY28gdG9pIHBoYW0uDQoNCkNoYWMgY2hhbiAiVG9pIGxvaSBkdW5nIGNh YyBxdXllbiB0dSBkbywgZGFuIGNodSwgeGFtIHBoYW0gbG9pIGljaCBjdWEgTmhhIG51b2MsIHF1 eWVuLCBsb2kgaWNoIGhvcCBwaGFwIGN1YSB0byBjaHVjLCBjb25nIGRhbiIga2hvbmcgdGh1b2Mg Y2FjIHRvaSB4YW0gcGhhbSB0aW5oIG1hbmcsIHN1YyBraG9lIHZhIHZpIHRoZSBuZ3VvaSBiaSBo YWkgYm9pIHRvaSBwaGFtIG5heSBjaGFjIGNoYW4ga2hvbmcgY2hldCBob2FjIG1hdCBuYW5nIGx1 YyBoYW5oIHZpIGRhbiBzdSwgZG9uZyBuZ2hpYSB2b2kgdmllYyBuZ3VvaSBiaSBoYWkgcGhhaSBs ZW4gdGllbmcgdmUgdG9pIHBoYW0gYmFuZyBjYWNoIG5heSBoYXkgY2FjaCBraGFjLiBUaGUgbmh1 bmcgdHJvbmcgdG9hbiBibyBobyBzbyBjdWEgdnUgYW4gbGllbiBxdWFuIGRlbiBvbmcgRHVvbmcg VGllbiBraG9uZyBjbyBiYXQgY3UgZGF1IHZldCBuYW8gZHUgbGEgbmhvIG5oYXQgY2hvIHRoYXkg Y28gbmd1b2kgYmkgaGFpIG5odSBkb24gdG8gY2FvLCBsb2kga2hhaSwgY3VhIG5ndW9pIGJpIGhh aSB0YWkgQ28gcXVhbiBkaWV1IHRyYSB2ZSBoYW5oIHZpIHBoYW0gdG9pIGN1YSBvbmcgRHVvbmcg VGllbi4gRG8gZG8gaG9hbiB0b2FuIGtob25nIGNvIHZpZWMgb25nIER1b25nIFRpZW4gcGhhbSB0 b2kuIE5vaSBjYWNoIGtoYWMsIHZpZWMgVG9hIGFuIHRoYW5oIHBobyBEYSBOYW5nIHhldCB4dSBv bmcgRHVvbmcgVGllbiBsYSBoYW5oIHZpIHRydXkgY3V1IHRyYWNoIG5oaWVtIGhpbmggc3Ugbmd1 b2kga2hvbmcgY28gdG9pIHZhIGJhbiBhbiBtYSBUb2EgYW4gbmF5IHR1eWVuIGRvaSB2b2kgb25n IER1b25nIFRpZW4gbGEgYmFuIGFuIHRyYWkgcGhhcCBsdWF0IQ0KDQpWb2kgbHkgZG8gdHJlbiwg dG9pIHRyYW4gdHJvbmcgZGUgbmdoaSBIb2kgZG9uZyB4ZXQgeHUgdHV5ZW4gb25nIER1b25nIFRp ZW4sIHR1YyBEdW9uZyBOZ29jIFRpZW4sIGtob25nIHBoYW0gIlRvaSBsb2kgZHVuZyBjYWMgcXV5 ZW4gdHUgZG8sIGRhbiBjaHUsIHhhbSBwaGFtIGxvaSBpY2ggY3VhIE5oYSBudW9jLCBxdXllbiwg bG9pIGljaCBob3AgcGhhcCBjdWEgdG8gY2h1YywgY29uZyBkYW4iLCBkaW5oIGNoaSB2dSBhbiBk b2kgdm9pIG9uZyBEdW9uZyBUaWVuIHZhIHBodWMgaG9pIGNobyBvbmcgRHVvbmcgVGllbiBtb2kg cXV5ZW4gdmEgbG9pIGljaCBob3AgcGhhcC4NCg0KVGh1YSBIb2kgZG9uZyB4ZXQgeHUsDQoNCk5o dSB2YXksIHZlIG5ndXllbiB0YWMsIHRvaSBkYSBob2FuIHRoYW5oIG5oaWVtIHZ1IGJhbyBjaHVh IGNobyB0aGFuIGNodSBjdWEgdG9pIGxhIG9uZyBEdW9uZyBUaWVuIGRvIHRyb25nIHZ1IGFuIGto b25nIGNvIG5ndW9pIGJpIGhhaS4gVGhlIG5odW5nIGRlIG5odW5nIHF1eWVuIGNvIGJhbiBjdWEg Y29uZyBkYW4gcXV5IGRpbmggdGFpIERpZXUgNjkgKENvbmcgZGFuIGNvIHF1eWVuIHR1IGRvIG5n b24gbHVhbiwgdHUgZG8gYmFvIGNoaSwgY28gcXV5ZW4gZHVvYyB0aG9uZyB0aW4uLi4pLCBEaWV1 IDcxIChDb25nIGRhbiBjbyBxdXllbiBiYXQga2hhIHhhbSBwaGFtIHZlIHRoYW4gdGhlLCBkdW9j IHBoYXAgbHVhdCBiYW8gaG8gdmUgdGluaCBtYW5nLCBzdWMga2hvZSwgZGFuaCBkdSwgbmhhbiBw aGFtKSwgRGlldSA3NCAoQ29uZyBkYW4gY28gcXV5ZW4ga2hpZXUgbmFpLCBxdXllbiB0byBjYW8g dm9pIGNhYyBjbyBxdWFuIE5oYSBudW9jIGNvIHRoYW0gcXV5ZW4gdmUgbmh1bmcgdmllYyBsYW0g dHJhaSBwaGFwIGx1YXQgY3VhIGNvIHF1YW4gTmhhIG51b2MuLi4gaG9hYyBiYXQgY3UgY2Egbmhh biBuYW8pIGN1YSBIaWVuIHBoYXAgZHVvYyBiYW8gdmUgdHV5ZXQgZG9pLCB0b2kgdGhheSBjYW4g dGhpZXQgcGhhaSBjaHVuZyBtaW5oIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBkYSBjbyB0aW5o IGtldCBhbiBvYW4gY29uZyBkYW4gRHVvbmcgVGllbiBuaHUgdGhlIG5hby4NCg0KVGFpIEJhbiBh biB0cm9uZyBwaGFuICJYZXQgdGhheSIsIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBsdWFuIHRv aSBvbmcgRHVvbmcgVGllbiBuaHUgc2F1OiAiRG9pIHZvaSBEdW9uZyBUaWVuLCB2b2kgdHUgY2Fj aCBsYSBwaG9uZyB2aWVuLCB0cnVvbmcgVmFuIHBob25nIGRhaSBkaWVuIGJhbyBDb25nIGFuIHRo YW5oIHBobyBIbyBDaGkgTWluaCB0YWkgSGEgTm9pLCBiaSBjYW8gZGEgbG9pIGR1bmcgcXV5ZW4g dHUgZG8gYmFvIGNoaSBkZSB2aWV0IGJhaSBraG9uZyBkdW5nIHN1IHRoYXQgdmUgdGluaCBoaW5o IERhIE5hbmcgbmhhbSBnYXkgYW5oIGh1b25nIHhhdSBkZW4gdXkgdGluIGN1YSBjYW4gYm8gbGFu aCBkYW8gY3VuZyBuaHUgY2hpbmggcXV5ZW4gdGhhbmggcGhvIERhIE5hbmcuIER1b25nIFRpZW4g Y3VuZyBsYSBtb3QgdHJvbmcgbmh1bmcgbmd1b2kgY3VuZyBjYXAgdGFpIGxpZXUgY2hvIERpbmgg Q29uZyBTYXQgdGFuIHBoYXQgdGhvbmcgcXVhIHZpZWMgZ29pIERpbmggQ29uZyBTYXQgcmEgSGEg Tm9pIHZhbyBuZ2F5IDE0LzUvMjAwNyBkZSBobyB0cm8gdGllbiB2YSBkdWEgY2hvIFNhdCAwMiBj b25nIHZhbiBzbyA3Myw3NyBjdWEgVmllbiBLaWVtIHNhdCBuaGFuIGRhbiB0aGFuaCBwaG8gRGEg TmFuZywgYmFvIFNhdCBwaG90byB2YSBtYW5nIDAyIHRhaSBsaWV1IG5heSB2ZSB0YW4gcGhhdCB0 YWkgRGEgTmFuZy4gTmdvYWkgbmh1bmcgaGFuaCB2aSB0cmVuLCB0dSBuZ2F5IDE3LzUvMjAwNyBk ZW4gbmdheSAxOS81LzIwMDcsIER1b25nIFRpZW4gY29uIHRydWMgdGllcCB2YW8gRGEgTmFuZyBk ZSB0aGVvIGRvaSwgbmFtIHRpbmggaGluaCBkdSBsdWFuIHZlIGJhaSBiYW8gY3VhIER1b25nIFRp ZW4gdmlldCB2ZSBEYSBOYW5nIGN1bmcgbmh1IGtldCBxdWEgdGFuIHBoYXQgY29uZyB2YW4gc28g NzMsNzcgY3VhIERpbmggQ29uZyBTYXQuDQpUYWkgZGF5LCBEdW9uZyBUaWVuIGNvbiB0aWVwIHR1 YyBjdW5nIGNhcCBjaG8gRGluaCBDb25nIFNhdCBiYWkgdmlldCBjdWEgb25nIFRyYW4gRGluaCBC YSB2b2kgbmh1bmcgbm9pIGR1bmcga2hvbmcgZHVuZyBzdSB0aGF0IGRlIFNhdCBkb2MsIHN1IGR1 bmcgY2hvIG11YyBkaWNoIGtoaWV1IG5haSwgdG8gY2FvLiBRdWEgeGVtIHhldCBoYW5oIHZpIHBo YW0gdG9pIGN1YSBEdW9uZyBUaWVuLCBIb2kgZG9uZyB4ZXQgeHUgdGhheSByYW5nIER1b25nIFRp ZW4gY3VuZyBsYSBtb3QgdHJvbmcgbmh1bmcgYmkgY2FvIGRhIHRodWMgaGllbiB0b2kgcGhhbSBt b3QgY2FjaCB0aWNoIGN1YywgZGFjIGJpZXQgbGEgdmllYyB0cnVjIHRpZXAgY3VuZyBjYXAgY29u ZyB2YW4gNzMsNzcgZGUgRGluaCBDb25nIFNhdCB0YW4gcGhhdCIuDQoNCk5odSB2YXksIGRlIGNv IHRoZSB0dXllbiBvbmcgRHVvbmcgVGllbiBwaGFtICJUb2kgbG9pIGR1bmcgY2FjIHF1eWVuIHR1 IGRvLCBkYW4gY2h1LCB4YW0gcGhhbSBsb2kgaWNoIGN1YSBOaGEgbnVvYywgcXV5ZW4sIGxvaSBp Y2ggaG9wIHBoYXAgY3VhIHRvIGNodWMsIGNvbmcgZGFuIiBxdXkgZGluaCB0YWkgRGlldSAyNTgg Qm8gTHVhdCBoaW5oIHN1LCBUb2EgYW4gbmhhbiBkYW4gdGhhbmggcGhvIERhIE5hbmcgZGEgcXV5 IGNobyBvbmcgRHVvbmcgVGllbiBiYSBoYW5oIHZpIHNhdToNCg0KMS4gVmlldCBiYWkga2hvbmcg ZHVuZyBzdSB0aGF0IHZlIHRpbmggaGluaCBEYSBOYW5nIG5oYW0gZ2F5IGFuaCBodW9uZyB4YXUg ZGVuIHV5IHRpbiBjdWEgY2FuIGJvIGxhbmggZGFvIGN1bmcgbmh1IGNoaW5oIHF1eWVuIHRoYW5o IHBobyBEYSBOYW5nIiAoYmFpICJOZ3V5ZW4gbmhhbiBuYW8gbW90IHNvIGNvbmcgZGFuIGtoaWV1 IGtpZW4gZ2F5IGdhdD8iIGRhbmcgdHJlbiBiYW8gQ0FUUEhDTSBuZ2F5IDEwLzUvMjAwNykuDQoN CjIuIER1YSBjaG8gRGluaCBDb25nIFNhdCAwMiBjb25nIHZhbiBzbyA3Myw3NyBjdWEgVmllbiBr aWVtIHNhdCBuaGFuIGRhbiB0aGFuaCBwaG8gRGEgTmFuZywgYmFvIFNhdCBwaG90byB2YSBtYW5n IDAyIHRhaSBsaWV1IG5heSB2ZSB0YW4gcGhhdCB0YWkgRGEgTmFuZy4NCg0KMy4gQ3VuZyBjYXAg Y2hvIERpbmggQ29uZyBTYXQgYmFpIHZpZXQgY3VhIG9uZyBUcmFuIERpbmggQmEgdm9pIG5odW5n IG5vaSBkdW5nIGtob25nIGR1bmcgc3UgdGhhdCBkZSBTYXQgZG9jLCBzdSBkdW5nIGNobyBtdWMg ZGljaCBraGlldSBuYWksIHRvIGNhby4NCg0KVGhlIG5odW5nIGNhIGJhIGhhbmggdmkgbmF5IGhv YWMgbGEgYmlhIGRhdCwga2hvbmcgY28gdHJvbmcgQ2FvIHRyYW5nIGhvYWMga2hvbmcgdGh1b2Mg aGFuaCB2aSBiaSBwaGFwIGx1YXQgY2FtIG5lbiBraG9uZyB0aGUgbGEgY2h1bmcgY3Uga2V0IHRv aSBvbmcgRHVvbmcgVGllbiBuaHUgdHJpbmggYmF5IHNhdSBkYXkuDQoNCjEuIEhhbmggdmkgInZp ZXQgYmFpIGtob25nIGR1bmcgc3UgdGhhdCB2ZSB0aW5oIGhpbmggRGEgTmFuZyBuaGFtIGdheSBh bmggaHVvbmcgeGF1IGRlbiB1eSB0aW4gY3VhIGNhbiBibyBsYW5oIGRhbyBjdW5nIG5odSBjaGlu aCBxdXllbiB0aGFuaCBwaG8gRGEgTmFuZyIgbGEgYmlhIGRhdCwga2hvbmcgY28gdHJvbmcgQ2Fv IHRyYW5nLg0KDQpEZSB4YWMgZGluaCBvbmcgRHVvbmcgVGllbiBjbyBoYXkga2hvbmcgY28gaGFu aCB2aSB2aWV0IGJhbyBraG9uZyBkdW5nIHN1IHRoYXQgbmhhdCB0aGlldCBwaGFpIGNhbiBjdSB2 YW8gTHVhdCBCYW8gY2hpLiBUaHVjIHZheSwgS2hvYW4gMiBEaWV1IDkgTHVhdCBCYW8gY2hpIHF1 eSBkaW5oOiAiVG8gY2h1YywgY2EgbmhhbiBjbyBxdXllbiBwaGF0IGJpZXUgYmFuZyB2YW4gYmFu IHZlIG5odW5nIG5vaSBkdW5nIGRlIGNhcCB0cmVuIGJhbyBjaGkga2hpIGNvIGNhbiBjdSBjaG8g cmFuZyBiYW8gY2hpIGRhIHRob25nIHRpbiBzYWkgc3UgdGhhdCwgeHV5ZW4gdGFjLCB2dSBraG9u ZywgeHVjIHBoYW0gZGVuIG1pbmguIENvIHF1YW4gYmFvIGNoaSBwaGFpIGRhbmcsIHBoYXQgc29u ZyBsb2kgcGhhdCBiaWV1IGN1YSB0byBjaHVjLCBjYSBuaGFuIGRvaSB2b2kgdGhvbmcgdGluIGRh IGR1b2MgZGFuZywgcGhhdCBzb25nIHRyZW4gYmFvIGNoaSBjdWEgbWluaCIuIFRoZSBuaHVuZyBk YSBraG9uZyBjbyBiYXQgY3UgdG8gY2h1YywgY2EgbmhhbiBuYW8ga2hpZXUgbmFpLCB5ZXUgY2F1 IGJhbyBDb25nIGFuIHRoYW5oIHBobyBIbyBDaGkgTWluaCB2YSBjYSBuaGFuIG9uZyBEdW9uZyBU aWVuIGNhaSBjaGluaCwgeGluIGxvaSBzYXUga2hpIGJhaSAiTmd1eWVuIG5oYW4gbmFvIG1vdCBz byBjb25nIGRhbiBraGlldSBraWVuIGdheSBnYXQ/IiBkdW9jIGRhbmcsIGRvbmcgbmdoaWEgYmFp IGJhbyBuYXkgY3VhIG9uZyBEdW9uZyBUaWVuIGtob25nIGNvIHRob25nIHRpbiBzYWkgc3UgdGhh dC4gQmFvIGNhbyBzbyAyMDAvQkMvUFggMjEgbmdheSAyNi8xMS8yMDA5IGN1YSBCYW8gQ29uZyBh biB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggZ3VpIFRvYSBhbiBuaGFuIGRhbiB0b2kgY2FvIHRhaSBE YSBOYW5nIHZhIFZpZW4ga2llbSBzYXQgbmhhbiBkYW4gdG9pIGNhbyBraGFuZyBkaW5oOg0KDQoi VHJlbiBiYW8gQ0FUUCBuYW0gMjAwNywgb25nIER1b25nIFRpZW4gY2hpIHZpZXQgMSBiYWkgYmFv IHZlIERhIE5hbmcgdHVhIGRlICJOZ3V5ZW4gbmhhbiBuYW8gbW90IHNvIGNvbmcgZGFuIGtoaWV1 IGtpZW4gZ2F5IGdhdD8iIGRhbmcgdHJlbiBiYW8gQ0FUUCBuZ2F5IDEwLzUvMjAwNywgbm9pIGR1 bmcgcGhhbiBhbmggbW90IHNvIGJ1YyB4dWMgY3VhIG5ndW9pIGRhbiBEYSBOYW5nIHRyb25nIGRl biBidSB2YSBnaWFpIHBob25nIG1hdCBiYW5nLiBDdW9pIGJhaSB2aWV0LCB2b2kgdGluaCB0aGFu IGtoYWNoIHF1YW4gdmEgeGF5IGR1bmcsIHRhYyBnaWEgY3VuZyBkZSBuZ2hpIGNhYyBjbyBxdWFu IGNodWMgbmFuZyBsYW0gcm8gZGUgeHUgbHkgbmdoaWVtIG5odW5nIGNhIG5oYW4gc2FpIHBoYW0g dmEgbmh1bmcgYWkgbG9pIGR1bmcga2hpZXUgbmFpIHRvIGNhbyBraG9uZyBkdW5nIHN1IHRoYXQu IFR1IGtoaSBiYWkgYmFvIGRhbmcgY2hvIHRvaSBuYXksIGJhbyBDQVRQIGtob25nIGhlIG5oYW4g ZHVvYyBiYXQgY3UgY29uZyB2YW4sIGRvbiB0aHUgY3VhIGNvIHF1YW4sIGNhIG5oYW4gbmFvIG8g VFAgRGEgTmFuZyBraGlldSBuYWkgdmUgbm9pIGR1bmcgYmFpIHZpZXQgdHJlbi4gQ2FjIGNvIHF1 YW4gY2hpIGRhbyB2YSBxdWFuIGx5IG5oYSBudW9jIHZlIGJhbyBjaGkgbmh1IEJhbiB0dXllbiBn aWFvIHRydW5nIHVvbmcsIEJvIFRob25nIHRpbiAtIFRydXllbiB0aG9uZywgQmFuIFR1eWVuIGdp YW8gVGhhbmggdXksIFNvIFRob25nIHRpbiAtIFRydXllbiB0aG9uZyBUUCBIbyBDaGkgTWluaCBj dW5nIGtob25nIGhlIGNvIHkga2llbiBwaGUgYmluaCBob2FjIGx1dSB5IHJ1dCBraW5oIG5naGll bSBkb2kgdm9pIGJhaSBiYW8gdHJlbi4gDQpUcm9uZyBiYW4gQ2FvIHRyYW5nIHNvIDIwL0NULUtT RFQtVEEgbmdheSAxOC82LzIwMDkgY3VhIFZpZW4gS1NORCBUUCBEYSBOYW5nIGRlIG5naGkgdHJ1 eSB0byBvbmcgRHVvbmcgVGllbiBjdW5nIGtob25nIGhlIGRlIGNhcCB2YW4gZGUgbmF5LiBUdXkg bmhpZW4sIHRyb25nIGJhbiBhbiBzbyAxNi8yMDA5L0hTU1QgbmdheSA3LzgvMjAwOSBjdWEgVG9h IGFuIG5oYW4gZGFuIHRoYW5oIHBobyBEYSBOYW5nIGxhaSBnaGk6ICJEb2kgdm9pIER1b25nIFRp ZW4sIHZvaSB0dSBjYWNoIGxhIHBob25nIHZpZW4sIHRydW9uZyBWYW4gcGhvbmcgZGFpIGRpZW4g YmFvIENvbmcgYW4gdGhhbmggcGhvIEhvIENoaSBNaW5oIHRhaSBIYSBOb2ksIGJpIGNhbyBkYSBs b2kgZHVuZyBxdXllbiB0dSBkbyBiYW8gY2hpIGRlIHZpZXQgYmFpIGtob25nIGR1bmcgc3UgdGhh dCB2ZSB0aW5oIGhpbmggRGEgTmFuZyBuaGFtIGdheSBhbmggaHVvbmcgeGF1IGRlbiB1eSB0aW4g Y3VhIGNhbiBibyBsYW5oIGRhbyBjdW5nIG5odSBjaGluaCBxdXllbiB0aGFuaCBwaG8gRGEgTmFu ZyIuIFZpZWMgVG9hIGFuIG5oYW4gZGFuIHRoYW5oIHBobyBEYSBOYW5nIGtldCBsdWFuIG5odSB0 cmVuIHRoZW8gYmFvIENBVFAgbGEga2hvbmcgY28gY28gc28gdGh1YyB0ZSB2YSBwaGFwIGx5Ii4N Cg0KRGUgY2hvIGhldCBuaGUsIGdpYSB0aGlldCBiYW8gY2hpIHRob25nIHRpbiBzYWkgc3UgdGhh dCB2YSB0byBjaHVjLCBjYSBuaGFuIGNvIGxpZW4gcXVhbiBkYSB5ZXUgY2F1IGJhbyBjaGkgY2Fp IGNoaW5oIG1hIGNvIHF1YW4gYmFvIGNoaSB2YW4ga2hvbmcgY2FpIGNoaW5oIHRoaSB2dSB2aWVj IHNlIGR1b2MgZ2lhaSBxdXlldCBiYW5nIGJpZW4gcGhhcCBoYW5oIGNoaW5oLCBkYW4gc3UgY2h1 IGtob25nIHRoZSBiYW5nIGJpZW4gcGhhcCBoaW5oIHN1IHZhIGRheSBjaGluaCBsYSBiaWVuIHBo YXAgY2FuIHRoaWV0IGRlIGJhbyB2ZSBRdXllbiB0dSBkbyBiYW8gY2hpIGRhIGR1b2MgSGllbiBw aGFwIHF1eSBkaW5oLiBUaHVjIHZheSwgS2hvYW4gNCBEaWV1IDkgTHVhdCBCYW8gY2hpIHF1eSBk aW5oOiAiVHJvbmcgdHJ1b25nIGhvcCBjbyBxdWFuIGJhbyBjaGkga2hvbmcgY2FpIGNoaW5oLCB4 aW4gbG9pIGhvYWMgY2FpIGNoaW5oLCB4aW4gbG9pIGtob25nIGR1bmcgY2FjIHF1eSBkaW5oIGN1 YSBMdWF0IG5heSwga2hvbmcgZGFuZywgcGhhdCBzb25nIGxvaSBwaGF0IGJpZXUgY3VhIHRvIGNo dWMsIGNhIG5oYW4gdGhpIHRvIGNodWMsIGNhIG5oYW4gZG8gY28gcXV5ZW4ga2hpZXUgbmFpIHZv aSBjbyBxdWFuIGNodSBxdWFuIGJhbyBjaGksIGNvIHF1YW4gcXVhbiBseSBuaGEgbnVvYyB2ZSBi YW8gY2hpIGhvYWMga2hvaSBraWVuIHRhaSBUb2EgYW4iLg0KDQpOaHUgdmF5LCBiYW5nIHZpZWMg YmlhIGRhdCBjaG8gb25nIER1b25nIFRpZW4gaGFuaCB2aSAidmlldCBiYWkga2hvbmcgZHVuZyBz dSB0aGF0Li4uIiwgVG9hIGFuIHRoYW5oIHBobyBEYSBOYW5nIGRhIGNvIGhhbmggdmkgInZ1IGto b25nIiBvbmcgRHVvbmcgVGllbiB2YSBraG9uZyBuaHVuZyB0aGUsIGNvbiB4YW0gcGhhbSB0cmFu ZyB0cm9uIHRvIHR1bmcgaGluaCBzdSBraGkgbGF5IGhhbmggdmkgYmlhIGRhdCBuYXkgbGFtIGNh biBjdSBkZSB4ZXQgeHUgb25nIER1b25nIFRpZW4uIFRodWMgdmF5LCBUaGVvIERpZW0gYSBLaG9h biAxIERpZXUgMTY2IEJMVFRIUyAoVmllbiBraWVtIHNhdCB0cnV5IHRvIGJpIGNhbiB0cnVvYyBU b2EgYW4gYmFuZyBiYW4gY2FvIHRyYW5nKSwgRGllbSAyIERpZXUgMTc4IEJMVFRIUyAoUXV5ZXQg ZGluaCBkdWEgdnUgYW4gcmEgeGV0IHh1IHBoYWkgZ2hpIHJvIFRvaSBkYW5oIHZhIGRpZXUga2hv YW4gY3VhIEJMSFMgbWEgVmllbiBraWVtIHNhdCBhcCBkdW5nIGRvaSB2b2kgaGFuaCB2aSBjdWEg YmkgY2FvKSB2YSBEaWVtIGEgS2hvYW4gMSBEaWV1IDE3OSBCTFRUSFMgKFRoYW0gcGhhbiByYSBx dXlldCBkaW5oIHRyYSBobyBzbyBkZSBkaWV1IHRyYSBibyBzdW5nIGtoaSBjYW4geGVtIHhldCB0 aGVtIG5odW5nIGNodW5nIGN1IHF1YW4gdHJvbmcgZG9pIHZvaSB2dSBhbiBtYSBraG9uZyB0aGUg Ym8gc3VuZyB0YWkgcGhpZW4gdG9hIGR1b2MpIHRoaSBkb2kgdHVvbmcgeGV0IHh1IGN1YSBUb2Eg YW4gbGEgaGFuaCB2aSBwaGFtIHRvaSBkdW9jIFZpZW4ga2llbSBzYXQgbmV1IHRyb25nIENhbyB0 cmFuZyB2YSBUb2EgYW4gY28gcXV5ZW4gdHJhIGhvIHNvIHZ1IGFuIGNobyBWaWVuIEtpZW0gc2F0 IGRlIGRpZXUgdHJhIGJvIHN1bmcgaGFuaCB2aSBtYSB0aGVvIFRvYSBhbiBjbyBkYXUgaGlldSBw aGFtIHRvaS4gDQpOb2kgY2FjaCBraGFjLCBUb2EgYW4ga2hvbmcgY28gcXV5ZW4geGV0IHh1IGhh bmggdmkgbWEgVmllbiBLaWVtIHNhdCBraG9uZyBkZSBuZ2hpLiBDaGluaCB2aSB2YXksIERpZXUg MTk2IEJMVFRIUyBxdXkgZGluaCBnaW9pIGhhbiBjdWEgdmllYyB4ZXQgeHUgbmh1IHNhdTogIlRv YSBjaGkgeGV0IHh1IG5odW5nIGhhbmggdmkgdGhlbyB0b2kgZGFuaCBtYSBWaWVuIEtpZW0gc2F0 IHRydXkgdG8iLg0KDQpWaWVjIG9uZyBEdW9uZyBUaWVuIHZpZXQgYmFpIGRhbmcgdHJlbiBiYW8g Q29uZyBhbiBUUCBIbyBDaGkgTWluaCBkdW9jIENhbyB0cmFuZyBkZSBjYXAgbmh1IHNhdTogIlRp ZW4gZGEgZ2FwIFNhdCB2YSBUaGFuZyBuaGlldSBsYW4gZGUgbmFtIHRpbmggaGluaCBwaGFuIHVu ZyBjdWEgZHUgbHVhbiBuaGFuIGRhbiB0aGFuaCBwaG8ga2hpIGRvYyBiYWkgYmFvIGRvIFRpZW4g dmlldCB2ZSBraGlldSBraWVuIG8gRGEgTmFuZyBkYW5nIHRyZW4gYmFvIENvbmcgYW4gVFAgSG8g Q2hpIE1pbmggc28gcmEgbmdheSAxMC81LzIwMDciLiBEbyBkbywgdmllYyBUb2EgYW4gdGhhbmgg cGhvIERhIE5hbmcgZHVhIGhhbmggdmkgInZpZXQgYmFpIGtob25nIGR1bmcgc3UgdGhhdCIga2hv bmcgaGUgY28gdHJvbmcgQ2FvIHRyYW5nIHJhIHhldCB4dSBsYSB2aSBwaGFtIERpZXUgMTk2IEJM VFRIUyB2ZSBnaW9pIGhhbiBjdWEgdmllYyB4ZXQgeHUsIGRvbmcgbmdoaWEgVG9hIGFuIG5heSBj byB5ICJ0cnV5IGN1dSB0cmFjaCBuaGllbSBoaW5oIHN1IG5ndW9pIGtob25nIGNvIHRvaSIgZG9p IHZvaSBvbmcgRHVvbmcgVGllbi4NCg0KRGVuIGRheSBtb3QgY2F1IGhvaSBkdW9jIGRhdCByYSBs YSB0YWkgc2FvIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBsYWkgbGlldSBsaW5oIHZhIHRyYW5n IHRyb24gYmlhIGRhdCBjaG8gb25nIER1b25nIFRpZW4gaGFuaCB2aSAidmlldCBiYWkga2hvbmcg ZHVuZyBzdSB0aGF0Li4uIj8gQ2F1IHRyYSBsb2kgY2hpIGNvIHRoZSBsYSBkbyBhcCBsdWMgcGhh aSBrZXQgdG9pIG9uZyBEdW9uZyBUaWVuIGNobyBiYW5nIGR1b2Mgbmh1bmcgbmV1IGNoaSB2b2kg aGFuaCB2aSBsaWVuIHF1YW4gZGVuIGhhaSBjb25nIHZhbiBzbyA3MyB2YSA3NyBjdWEgVmllbiBL aWVtIHNhdCBuaGFuIGRhbiB0aGFuaCBwaG8gRGEgTmFuZyB0aGkga2hvbmcgdGhlIHF1eSBvbmcg VGllbiB2YW8gaGFuaCB2aSAibG9pIGR1bmcgY2FjIHF1eWVuIHR1IGRvLCBkYW4gY2h1IiAoY2Fj IHF1eWVuIG5heSBiYW8gZ29tIHR1IGRvIG5nb24gbHVhbiwgdHUgZG8gYmFvIGNoaSwgdHUgZG8g dGluIG5ndW9uZywgdG9uIGdpYW8sIHR1IGRvIGhvaSBob3AsIGxhcCBob2kuLi4pIG5lbiBUb2Eg YW4gdGhhbmggcGhvIERhIE5hbmcgZGFuaCBuaGFtIG1hdCBsYW0gbGlldSwgY28gYmlhIGRhdCBu aHUgdmF5IHRoaSBtb2kgcXV5IGR1b2Mgb25nIFRpZW4gdmFvIGhhbmggdmkgImxvaSBkdW5nIHF1 eWVuIHR1IGRvIGJhbyBjaGkiIHZhIHRyZW4gY28gc28gZG8gbW9pIGhvbmcga2hlcCBvbmcgVGll biB2YW8gdG9pIGRhbmggIkxvaSBkdW5nIGNhYyBxdXllbiB0dSBkbywgZGFuIGNodS4uLiIhDQpU aHVjIHZheSwgdGFpIGJhbiBhbiB0cm9uZyBwaGFuIGx1YW4gdG9pIG9uZyBUaWVuIG5odSB0cmVu IGRhIG5ldSwgaGFuaCB2aSAidmlldCBiYWkga2hvbmcgZHVuZyBzdSB0aGF0Li4uIiBkdW9jIGRp bmggdm9pICJMb2kgZHVuZyBxdXllbiB0dSBkbyBiYW8gY2hpIiBjb24gaGFuaCB2aSBsaWVuIHF1 YW4gZGVuIGhhaSBjb25nIHZhbiBzbyA3MyB2YSA3NyBjdWEgVmllbiBraWVtIHNhdCBuaGFuIGRh biB0aGFuaCBwaG8gRGEgTmFuZyBraG9uZyB0aGF5IGR1b2MgZGluaCB2b2kgIkxvaSBkdW5nIiBi YXQgY3UgcXV5ZW4gdHUgZG8sIGRhbiBjaHUgY3UgdGhlIG5hbyENCg0KMi4gSGFpIGNvbmcgdmFu IHNvIDczIHZhIDc3IGN1YSBWaWVuIGtpZW0gc2F0IG5oYW4gZGFuIHRoYW5oIHBobyBEYSBOYW5n IGtob25nIGNvIG5vaSBkdW5nIHNhaSBzdSB0aGF0IHZhIGtob25nIHBoYWkgdGFpIGxpZXUgYmkg cGhhcCBsdWF0IGNhbSBsdXUgaGFuaC4NCg0KRGlldSBoaWVuIG5oaWVuIGxhIGRlIGNvIHRoZSBr ZXQgbHVhbiB2aWVjIG9uZyBEdW9uZyBUaWVuIGR1YSAwMiBjb25nIHZhbiBzbyA3MyB2YSA3NyBj dWEgVktTTkQgVFAgRGEgTmFuZyBjaG8gRGluaCBDb25nIFNhdCBkZSByb2kgU2F0IHBob3RvIHZh IHRhbiBwaGF0IGxhIGhhbmggdmkgImxvaSBkdW5nIGNhYyBxdXllbiB0dSBkbywgZGFuIGNodSwg eGFtIHBoYW0gbG9pIGljaCBjdWEgTmhhIG51b2MsIHF1eWVuLCBsb2kgaWNoIGhvcCBwaGFwIGN1 YSB0byBjaHVjLCBjb25nIGRhbiIgdGhpIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBiYXQgYnVv YyBwaGFpIGNodW5nIG1pbmggaGFpIHRhaSBsaWV1IG5heSBjbyBub2kgZHVuZyBzYWkgc3UgdGhh dCB2aSBjaGkgY28gc2FpIHN1IHRoYXQgdGhpIHZpZWMgbHV1IGhhbmggaGFpIHRhaSBsaWV1IG5h eSBtb2kgY28ga2hhIG5hbmcgeGFtIHBoYW0gcXV5ZW4sIGxvaSBpY2ggY3VhIG5ndW9pIGtoYWMu IFRoZSBuaHVuZyB0YWkgQmFuIGFuIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBkYSBraG9uZyBo ZSBkYSBkb25nIGRlbiBub2kgZHVuZyBjdWEgMDIgY29uZyB2YW4gc28gNzMgdmEgNzcgY3VhIFZL U05EIFRQIERhIE5hbmcgY3VuZyBuaHUga2hvbmcgY28gYmF0IGN1IGtldCBsdWFuICJ2byIgbmFv IGxhIGhhaSB0YWkgbGlldSBuYXkgY28gbm9pIGR1bmcgc2FpIHN1IHRoYXQuIERvIGRvLCB2aWVj IFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBrZXQgYW4gb25nIER1b25nIFRpZW4gbGEgaG9hbiB0 b2FuIGtob25nIGNvIGNvIHNvIHZhIHZpIHZheSBsYSBoYW5oIHZpIGNvIHkgInRydXkgY3V1IHRy YWNoIG5oaWVtIGhpbmggc3Ugbmd1b2kga2hvbmcgY28gdG9pIiBkb2kgdm9pIG9uZyBEdW9uZyBU aWVuLg0KDQpNYWMgZGF1IHZheSwgbW90IGtoaSAwMiBjb25nIHZhbiBzbyA3MyB2YSA3NyBjdWEg VktTTkQgVFAgRGEgTmFuZyBkYSBkdW9jIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBkYXQgbGVu IGJhbiB4dSBhbiB0aGkga2hvbmcgdGhlIGtob25nIGxhbSBybyBub2kgZHVuZyBoYWkgdGFpIGxp ZXUgbmF5IGxhIGR1bmcgaGF5IHNhaSBzdSB0aGF0LiBEbyBsYSBDb25nIHZhbiBzbyA3My9LU0RU LUtUIG5nYXkgMzEvMTAvMjAwMCBndWkgTGFuaCBkYW8gVktTTkRUQyB2YSBDb25nIHZhbiBzbyA3 Ny9LU0RUL0tUIG5nYXkgMDEvMTEvMjAwMCBndWkgRC9jIFZpZW4gdHJ1b25nIFZLU05EVEMgdmEg RC9jIFBoYW4gRGllbiwgQmkgdGh1IFRoYW5oIHV5IERhIE5hbmcsIGNhIGhhaSBkZXUgZGUgY2Fw IGRlbiB2aWVjIG9uZyBOZ3V5ZW4gQmEgVGhhbmgsIENodSB0aWNoIFVCTkQgdGhhbmggcGhvIERh IE5hbmcgKGhpZW4gbGEgQmkgdGh1IFRoYW5oIHV5IERhIE5hbmcsIERhaSBiaWV1IFF1b2MgaG9p KSBkYSBuaGFuIGhvaSBsbyBjdWEgUGhhbSBNaW5oIFRob25nLCBHaWFtIGRvYyBDb25nIHR5IGhv cCBkb2FuaCB4YXkgbGFwIHZhIGtpbmggZG9hbmggbmhhIERhIE5hbmcsIE5ndXllbiBIdW5nLCBD aGkgaHV5IHBobyBDb25nIHRyaW5oIGR1b25nIEJhYyBOYW0uIA0KRGFjIGJpZXQgQ29uZyB2YW4g c28gNzcvS1NEVC9LVCBnaGkgcm86ICJUaG9uZyBraGFpIGNvIGR1YSBjaG8gb25nIE5ndXllbiBC YSBUaGFuaCAtIENodSB0aWNoIFV5IGJhbiBuaGFuIGRhbiB0aGFuaCBwaG8gRGEgTmFuZyBuaGll dSBsYW4gc28gdGllbiBsYSA0LjQyNSB0cmlldSBkb25nIHRoZW8geWV1IGNhdSBjdWEgb25nIFRo YW5oIGxhIENvbmcgdHkgbXVvbiBkdW9jIHRoYW5oIHRvYW4gdm9uIG5oYW5oIHBoYWkgdHJpY2gg bGFpIGNobyBvbmcgNSUgdHJlbiBzbyB2b24gZG8gY29uZyB0cmluaCB4YXkgZHVuZyBiYW5nIHZv biBuZ2FuIHNhY2ggdmEgMTUwLjAwMGQvbTIgdHJlbiBzbyBtZXQgdnVvbmcgZGF0IGRvIFV5IGJh biBuaGFuIGRhbiB0aGFuaCB0b2FuIGJhbmcgcXV5IGRhdCBkdW9uZyBCYWMgTmFtLi4uIFZvaSBj YWMgdGFpIGxpZXUsIGNodW5nIGN1IG5ldSB0cmVuLCB2YW8gY2hpZXUgbmdheSAzMS8xMC8yMDAw IHNhdSBraGkgcGhhbiB0aWNoIG1vdCBjYWNoIHNhdSBzYWMgdmEgY28gdHJhY2ggbmhpZW0sIHRo aSBjbyA1LzcgdGhhbmggdmllbiBVeSBiYW4gS2llbSBzYXQgdGhvbmcgbmhhdCBQaGFtIE1pbmgg VGhvbmcsIE5ndXllbiBDdW5nIHBoYW0gdG9pOiBEdWEgaG9pIGxvLCBOZ3V5ZW4gQmEgVGhhbmgg cGhhbSB0b2k6IE5oYW4gaG9pIGxvLiBEbyBkbyBuZXUgdnUgYW4gZHVuZyBsYWkgY2hpIHh1IGx5 IHF1eSBidW9jIHNvIHRpZW4gdHJlbiBjaG8gUGhhbSBNaW5oIFRob25nIHZhIE5ndXllbiBDdW5n IG1hIGtob25nIGRpZXUgdHJhLCB4dSBseSBkb2kgdHVvbmcgbmhhbiB0aWVuIHRoaSBzZSBvYW4g Y2hvIG5ndW9pIGR1YSB0aWVuLCB0cm9uZyBraGkgZG8gbmd1b2kgZG9pIGhvaSBsbyB0aGkgdm8g Y2FuLCBkdSBsdWFuIG5oYW4gZGFuIGtob25nIGRvbmcgdGluaCB2YSB2dSBhbiBraG9uZyBkdW9j IGdpYWkgcXV5ZXQgdHJpZXQgZGUgdmEgdGhvYSBkYW5nIi4NCg0KRG8ga2hvbmcgY28gYmF0IGN1 IGNvIHF1YW4gTmhhIG51b2MgY28gdGhhbSBxdXllbiBuYW8gY2hvIGRlbiB0aG9pIGRpZW0gZGll biByYSBwaGllbiB0b2EgcGh1YyB0aGFtIG5heSBrZXQgbHVhbiAwMiBjb25nIHZhbiBzbyA3MyB2 YSA3NyBjdWEgVktTTkQgVFAgRGEgTmFuZyBjbyBub2kgZHVuZyBzYWkgc3UgdGhhdCBjdW5nIG5o dSBraG9uZyBjbyBiYXQga3kgZGF1ICJNYXQiIG5hbyBkb25nIHRyZW4gaGFpIGNvbmcgdmFuIG5h eSBuZW4gaGFpIGNvbmcgdmFuIG5heSB0dXlldCBuaGllbiBraG9uZyBwaGFpIGxhIHRhaSBsaWV1 IGJpIHBoYXAgbHVhdCBjYW0gbHV1IGhhbmguIFZhIGxhaSBvbmcgRHVvbmcgVGllbiBraG9uZyBj b25nIHRhYyB0YWkgVktTTkQgVFAgRGEgTmFuZywgYmFvIENvbmcgYW4gdGhhbmggcGhvIEhvIENo aSBNaW5oIG5vaSBvbmcgY29uZyB0YWMga2hvbmcgcGhhaSBsYSBkaWEgY2hpIGRlbiBjdWEgMDIg Y29uZyB2YW4gc28gNzMgdmEgNzcgY3VhIFZLU05EIFRQIERhIE5hbmcgbmVuIGNhbmcga2hvbmcg Y28gcmFuZyBidW9jIG5hbyBkb2kgdm9pIG9uZyBEdW9uZyBUaWVuIHRyb25nIHZpZWMgbHV1IGhh bmggaGFpIGNvbmcgbmF5LiBEbyBkbyB2aWVjIG9uZyBEdW9uZyBUaWVuIGR1YSBjaG8gRGluaCBD b25nIFNhdCB4ZW0gdmEgdmllYyBTYXQgcGhvdG8gdmEgbHV1IGhhbmggaGFpIGNvbmcgdmFuIG5h eSBraG9uZyBjbyBnaSBsYSB0cmFpIHBoYXAgbHVhdC4NCg0KTWFjIGRhdSB2YXksIHZhbiBwaGFp IGtoYW5nIGRpbmggcmFuZyBUb2EgYW4gdGhhbmggcGhvIERhIE5hbmcgZGEgdnUga2hvbmcgb25n IER1b25nIFRpZW4gdm9pIGtldCBsdWFuIG9uZyBEdW9uZyBUaWVuICJiYW8iIERpbmggQ29uZyBT YXQgcGhvdG8gdmEgbWFuZyAwMiB0YWkgbGlldSBuYXkgdmUgdGFuIHBoYXQgdGFpIERhIE5hbmcu IENodW5nIGN1IGxhIHRhaSBoYWkgcGhpZW4gdG9hIHNvIHRoYW0gdHJ1b2MsIG5nYXkgMjItMjMv OS8yMDA4IHZhIG5nYXkgNi03LzgvMjAwOSwgRGluaCBDb25nIFNhdCBsdW9uIGtoYW5nIGRpbmgg dmllYyBwaG90byB2YSBwaGF0IHRhbiBoYWkgY29uZyB2YW4gc28gNzMgdmEgNzcgY3VhIFZpZW4g S2llbSBzYXQgdGhhbmggcGhvIERhIE5hbmcgbGEgZG8gU2F0IHR1IHkgbGFtLCBraG9uZyBiaSBh aSB4dWkgZ2l1Yy4NCg0KTmdvYWkgcmEsIFRvYSBhbiB0aGFuaCBwaG8gRGEgTmFuZyBkYSB0dSBt YXUgdGh1YW4ga2hpIGtldCBsdWFuIG5odSB2YXkuIFRhaSBCYW4gYW4gY28gZ2hpOiAiTmd1eWVu IFRyaW5oIFRoYW5nIGRvIHF1ZW4gYmlldCB2b2kgRHVvbmcgVGllbiAoVHJ1bmcgdGEsIFRydW9u ZyBkYWkgZGllbiBiYW8gQ29uZyBhbiB0aGFuaCBwaG8gSG8gQ2hpIE1pbmggdGFpIEhhIE5vaSkg bmVuIExpbmggZGEgYmFvIFRoYW5nIGRhbiBTYXQgZGVuIGdhcCBEdW9uZyBUaWVuIGRlIGR1YSBk b24uIFRoYW5nIGRvbmcgeSB2YSB0cnVjIHRpZXAgZGFuIFNhdCBkZW4gVmFuIHBob25nIGRhaSBk aWVuIGJhbyBDb25nIGFuIHRoYW5oIHBobyBIbyBDaGkgTWluaCBvIDE3NSBOZ3V5ZW4gVGhhaSBI b2MgLSBIYSBOb2kgZGUgZ2FwIFRpZW4uIFRhaSBkYXkgU2F0IGR1YSBEdW9uZyBUaWVuIGRvbiB0 byBjYW8gbmV1IHRyZW4gZG8gU2F0IGt5IHRlbiIuIE5odSB2YXksIERpbmggQ29uZyBTYXQgbGEg bmd1b2kgY2h1IGRvbmcgdG8gY2FvIG9uZyBOZ3V5ZW4gQmEgVGhhbmggdm9pIG5oYSBiYW8gRHVv bmcgVGllbiBuaHUgVG9hIGFuIHRoYW5oIHBobyBEYSBOYW5nIHRodWEgbmhhbiB0aGkga2hvbmcg dGhlIGNvIGNodXllbiBuZ3VvYyBsYWkgbGEgb25nIER1b25nIFRpZW4gImJhbyIgU2F0IHBob3Rv IHZhIHBoYXQgdGFuIGhhaSBjb25nIHZhbiBzbyA3MyB2YSA3NyBjdWEgVmllbiBLaWVtIHNhdCB0 aGFuaCBwaG8gRGEgTmFuZywgdHVjIGJpZW4gRGluaCBDb25nIFNhdCB0aGFuaCBuZ3VvaSB0aHUg ZG9uZyB0cm9uZyB2aWVjIHRvIGNhbyBvbmcgTmd1eWVuIEJhIFRoYW5oIQ0KDQpOaGFuIGRheSBj YW4ga2hhbmcgZGluaCByYW5nIGNob25nIHRoYW0gbmh1bmcgbGEgc3UgbmdoaWVwIGN1YSB0b2Fu IGRhbiBjaHUga2hvbmcgcGhhaSBsYSB2aWVjIHJpZW5nIGN1YSBjaGluaCBxdXllbiB2YSBjYWMg Y28gcXVhbiBiYW8gdmUgcGhhcCBsdWF0LCBkb25nIG5naGlhIGhvYXQgZG9uZyBjdWEgY2FjIGNv IHF1YW4gbmF5IHBoYWkgY2hpdSBzdSBnaWFtIHNhdCBjaGF0IGNoZSBjdWEgbmd1b2kgZGFuIHZh IGN1YSB4YSBob2kgdGhvbmcgcXVhIGJhbyBjaGkuIERlIG5vaSB2aWVjIG9uZyBEdW9uZyBUaWVu IGR1YSBjaG8gRGluaCBDb25nIFNhdCB4ZW0gaGFpIGNvbmcgdmFuIHNvIDczIHZhIDc3IGN1YSBW aWVuIEtpZW0gc2F0IHRoYW5oIHBobyBEYSBOYW5nIGxhIGhvYW4gdG9hbiBjaGluaCBkYW5nIHZh IGNhbiB0aGlldCwga2hvbmcgY2hpIHRyYW8gZG9pIHRob25nIHRpbiBkZSBjaG9uZyB0aGFtIG5o dW5nIGNvIGhpZXUgcXVhIGhvbiBtYSBjb24gZGUgZ2lhbSBzYXQgY2hpbmggcXV5ZW4gbm9pIGNo dW5nLCBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQgbm9pIHJpZW5nIHRyb25nIGRhdSB0cmFuaCBj aG9uZyB0aGFtIG5odW5nIQ0KDQpEaWV1IGRhbmcgbHV1IHkgbGEgbmdvYWkgaGFpIGNvbmcgdmFu IDczLDc3IGN1YSBWaWVuIEtTTkQgdGhhbmggcGhvIERhIE5hbmcsIHRoZW8gb25nIFRyYW4gVmFu IFRoYW5oLCBuZ3V5ZW4gQ2hhbmggVGhhbmggdHJhIEJvIENvbmcgYW4gdGFpIEJhbiB0cmluaCBi YXkgbmdheSAwMy8xMS8yMDA4IGxhbSB0aGVvIHlldSBjYXUgY3VhIHRvIGNvbmcgdGFjIGxpZW4g bmdhbmgga2VtIHRoZW8gY29uZyB2YW4gMzQyOS9WS1NUQy1WMiBuZ2F5IDMwLzEwLzIwMDggY3Vh IFZpZW4gS2llbSBzYXQgbmhhbiBkYW4gdG9pIGNhbywgY29uIGNvIG5oaWV1IHZhbiBiYW4gY3Vh IGNhYyBjbyBxdWFuIE5oYSBudW9jIGNvIHRoYW0gcXV5ZW4ga2hhYyB4YWMgbmhhbiBjYWMgZG9u IHRvIGNhbyB2ZSBoYW5oIHZpIHRoYW0gbmh1bmcgY3VhIG9uZyBOZ3V5ZW4gQmEgVGhhbmggY3Vh IG1vdCBzbyBjb25nIGRhbiB0aGFuaCBwaG8gRGEgTmFuZyAodHJvbmcgZG8gY28gZG9uIHRvIGNh byBjdWEgRGluaCBDb25nIFNhdCkgbGEgY28gY28gc28gdmEgZGUgeHVhdCB4dSBseSwgbmh1Og0K DQpCYW8gY2FvIHNvIDczL0JDLVZQQkNEIG5nYXkgMjYvMTAvMjAwNyBjdWEgVmFuIHBob25nIEJh biBjaGkgZGFvIFRydW5nIHVvbmcgdmUgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZyBndWkgVGh1IHR1 b25nIENoaW5oIHBodSB2YSBUaHVvbmcgdHJ1YyBCYW4gYmkgdGh1IHZhIEJhbyBjYW8gc28gMzgv QkMtVlBCQ0QgbmdheSAwNy80LzIwMDggY3VhIFZhbiBwaG9uZyBCYW4gY2hpIGRhbyBUcnVuZyB1 b25nIHZlIHBob25nIGNob25nIHRoYW0gbmh1bmcgZ3VpIEJhbiBCaSB0aHUgVHJ1bmcgdW9uZyBE YW5nIGRlIHh1YXQgeHUgbHkgdGhlbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0Lg0KDQpLZXQgbHVh biB0aGFuaCB0cmEgc28gNTI0L0tMVFQtQkNBIChWMjQpIG5nYXkgMDYvNi8yMDA4IGN1YSBCbyBD b25nIGFuIHhhYyBkaW5oIGNvIGR1IGNhbiBjdSBkZSBraG9pIHRvIHZ1IGFuIHZhIGJpIGNhbiB2 YSB2aWVjIENvbmcgYW4gdGhhbmggcGhvIERhIE5hbmcga2hvbmcga2hvaSB0byBkZSBkaWV1IHRy YSBsYSB2aSBwaGFtIERpZXUgMTAzLCAxMDQgQkxUVEhTLCBjbyBkYXUgaGlldSB2aSBwaGFtIERp ZXUgMjk0IEJMSFMuDQoNClRoZW8gS2hvYW4gMyBEaWV1IDggQkxIUyB0aGkgIlRvaSBuaGFuIGhv aSBsbyIgbGEgdG9pIHBoYW0gZGFjIGJpZXQgbmdoaWVtIHRyb25nIG5lbiB0aG9pIGhpZXUgdHJ1 eSBjdXUgdHJhY2ggbmhpZW0gaGluaCBzdSBkb2kgdm9pIHRvaSBwaGFtIG5heSBxdXkgZGluaCB0 YWkgRGllbSBkIEtob2FuIDIgRGlldSAyMyBCTEhTIGxhIDIwIG5hbS4gRG8gaGFuaCB2aSB0aGFt IG5odW5nIGR1b2MgbmV1IHRhaSBoYWkgY29uZyB2YW4gNzMgdmEgNzcgY3VhIFZpZW4gS1NORCB0 aGFuaCBwaG8gRGEgTmFuZyB2YSBjYWMgdmFuIGJhbiBuZXUgdHJlbiBjdWEgQmFuIGNoaSBkYW8g VHJ1bmcgdW9uZyB2ZSBwaG9uZyBjaG9uZyB0aGFtIG5odW5nIHZhIGN1YSBCbyBDb25nIGFuIGNo dWEgZHVvYyBraG9pIHRvIGRlIGRpZXUgdHJhIHRoZW8gbHVhdCBkaW5oIG5lbiBtb2kgdG8gY2Fv IHZlIGhhbmggdmkgdGhhbSBuaHVuZyBuYXkgdmFuIGx1b24gY28gZ2lhIHRyaSB2YSBjYW4gZHVv YyBjYWMgY28gcXVhbiBOaGEgbnVvYyBjbyB0aGFtIHF1eWVuIHRpZXAgdHVjIGdpYWkgcXV5ZXQu DQoNCjMuIEhhbmggdmkgImN1bmcgY2FwIGNobyBEaW5oIENvbmcgU2F0IGJhaSB2aWV0IGN1YSBv bmcgVHJhbiBEaW5oIEJhIHZvaSBuaHVuZyBub2kgZHVuZyBraG9uZyBkdW5nIHN1IHRoYXQgZGUg U2F0IGRvYywgc3UgZHVuZyBjaG8gbXVjIGRpY2gga2hpZXUgbmFpLCB0byBjYW8iIGxhIGJpYSBk YXQsIGtob25nIGNvIHRyb25nIENhbyB0cmFuZy4NCg0KVHJ1b2MgaGV0LCBUb2EgYW4gdGhhbmgg cGhvIERhIE5hbmcgaG9hbiB0b2FuIGtodWF0IHRhdCBraGkgbm9pIG9uZyBUcmFuIERpbmggQmEg Y28gYmFpIHZpZXQgdm9pIG5odW5nIG5vaSBkdW5nIGtob25nIGR1bmcgc3UgdGhhdCBuaHVuZyBs YWkga2hvbmcgbmV1IHJhIGR1b2MgYmFpIHZpZXQgZG8gY28gdGlldSBkZSBnaS4gVHJlbiB0aHVj IHRlLCBiYWkgdmlldCBjdWEgb25nIFRyYW4gRGluaCBCYSBjbyB0aWV1IGRlICJQaGFpIGNoYW5n IGhhbmcgbG9hdCBuaHVuZyB0byBjYW8gdmUgb25nIE5ndXllbiBCYSBUaGFuaCBsYSBraG9uZyBj byBjbyBzbyIgdmEgY2hvIGRlbiB0aG9pIGRpZW0gbmF5IGtob25nIGNvIGJhdCBjdSBjbyBxdWFu IE5oYSBudW9jIGNvIHRoYW0gcXV5ZW4gbmFvIGtldCBsdWFuIGJhaSB2aWV0IGN1YSBvbmcgVHJh biBEaW5oIEJhIGNvIG5vaSBkdW5nIHNhaSBzdSB0aGF0LCBkb25nIG5naGlhIFRvYSBhbiB0aGFu aCBwaG8gRGEgTmFuZyBkYSBjbyBoYW5oIHZpIGJpYSBkYXQuIERpZXUgZGFuZyBsdXUgeSBsYSB0 cm9uZyBDYW8gdHJhbmcgdmEgbmdheSB0cm9uZyBwaGFuICJOaGFuIHRoYXkiIGN1YSBCYW4gYW4s IGtob25nIGhlIGNvIGNoaSB0aWV0ICJEdW9uZyBUaWVuIGNvbiB0aWVwIHR1YyBjdW5nIGNhcCBj aG8gRGluaCBDb25nIFNhdCBiYWkgdmlldCBjdWEgb25nIFRyYW4gRGluaCBCYSB2b2kgbmh1bmcg bm9pIGR1bmcga2hvbmcgZHVuZyBzdSB0aGF0IGRlIFNhdCBkb2MsIHN1IGR1bmcgY2hvIG11YyBk aWNoIGtoaWV1IG5haSwgdG8gY2FvIi4gDQpEbyBkbywgdmllYyBUb2EgYW4gdGhhbmggcGhvIERh IE5hbmcgZHVhIGhhbmggdmkgdnVhIGJpYSBkYXQgdnVhIGtob25nIGhlIGNvIG5heSB0cm9uZyBD YW8gdHJhbmcgcmEgeGV0IHh1IGRlIGtldCBhbiBvbmcgRHVvbmcgVGllbiBraG9uZyBuaHVuZyB2 aSBwaGFtIERpZXUgMTk2IEJMVFRIUyB2ZSBnaW9pIGhhbiBjdWEgdmllYyB4ZXQgeHUgbWEgY29u IGxhIGhhbmggdmkgY28geSAidHJ1eSBjdXUgdHJhY2ggbmhpZW0gaGluaCBzdSBuZ3VvaSBraG9u ZyBjbyB0b2kiIGRvaSB2b2kgb25nIER1b25nIFRpZW4gdmEgInZ1IGtob25nIiBkb2kgdm9pIG9u ZyBUcmFuIERpbmggQmEhDQoNClRodWEgSG9pIGRvbmcgeGV0IHh1LA0KDQpLaG9uZyBuZ2hpIG5n byBnaSBudWEsIGJhbmcgdmllYyB4YW0gcGhhbSB0cmFuZyB0cm9uIHRvIHR1bmcgaGluaCBzdSB2 YSBiaWEgZGF0IGNodW5nIGN1IGRlIGtldCB0b2kgb25nIER1b25nIFRpZW4gdGhlIGhpZW4gdGFp IEJhbiBhbiBoaW5oIHN1IHNvIDE2LzIwMDkvSFNTVCBuZ2F5IDYtNy84LzIwMDksIFRvYSBhbiB0 aGFuaCBwaG8gRGEgTmFuZyBsYSBkaWVuIGhpbmggeGFtIHBoYW0gaG9hdCBkb25nIHR1IHBoYXAs IGxhbSBvYW4gbmd1b2kgdm8gdG9pLg0KDQpWaSB2YXksIHRvaSB0cmFuIHRyb25nIGRlIG5naGkg SG9pIGRvbmcgeGV0IHh1Og0KDQoxLiBUdXllbiBvbmcgRHVvbmcgVGllbiwgdHVjIER1b25nIE5n b2MgVGllbiwga2hvbmcgcGhhbSAiVG9pIGxvaSBkdW5nIGNhYyBxdXllbiB0dSBkbywgZGFuIGNo dSwgeGFtIHBoYW0gbG9pIGljaCBjdWEgTmhhIG51b2MsIHF1eWVuLCBsb2kgaWNoIGhvcCBwaGFw IGN1YSB0byBjaHVjLCBjb25nIGRhbiIsIGRpbmggY2hpIHZ1IGFuIGRvaSB2b2kgb25nIER1b25n IFRpZW4gdmEgcGh1YyBob2kgY2hvIG9uZyBEdW9uZyBUaWVuIG1vaSBxdXllbiB2YSBsb2kgaWNo IGhvcCBwaGFwLg0KDQoyLiBZZXUgY2F1IENvIHF1YW4gZGlldSB0cmEga2hvaSB0byB2dSBhbiBo aW5oIHN1IHZhIGtob2kgdG8gYmkgY2FuIGRvaSB2b2kgY2FjIHRoYW5oIHZpZW4gSG9pIGRvbmcg eGV0IHh1IFRvYSBhbiBuaGFuIGRhbiB0aGFuaCBwaG8gRGEgTmFuZyB0YWkgcGhpZW4gdG9hIG5n YXkgNi03LzgvMjAwOSB2ZSAiVG9pIHRydXkgY3V1IHRyYWNoIHRyYWNoIG5oaWVtIGhpbmggc3Ug bmd1b2kga2hvbmcgY28gdG9pIiBxdXkgZGluaCB0YWkgRGlldSAyOTUgQm8gTHVhdCBoaW5oIHN1 Lg0KDQpUb2kgY2hhbiB0aGFuaCBjYW0gb24gSG9pIGRvbmcgeGV0IHh1IHZhIHRhdCBjYSBtb2kg bmd1b2kgY28gbWF0IHRhaSBwaGllbiB0b2EgbmF5IGRhIGNodSB5IGxhbmcgbmdoZS4NCg0KTmd1 b2kgYmFvIGNodWENCkxTIE5UREgNCjI0IERpZW4gQmllbiBQaHUgLSBIYSBOb2kNCkRUOiAwNC4z OTkwMjI2OSwgMDk4MzM0NTM5Mi4gDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0NoaW5oLXRyaS14YS1o b2kvUGhhcC1sdWF0LzMzNTk0MC9LaGFuZy1uZ2hpLW9uZy1UcmFuLVZhbi1UaGFuaC12by10b2ku aHRtbCBNSU5IIFFVQU5HIDA5LzA5LzIwMDksIDA4OjI1IChHTVQrNykgDQoNClZpZW4gS1NORCB0 b2kgY2FvIGtoYW5nIG5naGkgY3V1IHR1b25nIFRyYW4gVmFuIFRoYW5oIHZvIHRvaSANCg0KTmdh eSA4LTksIHBobyB2aWVuIHRydW9uZyBWaWVuIEtpZW0gc2F0IG5oYW4gZGFuIHRvaSBjYW8gTGUg SHV1IFRoZSB4YWMgbmhhbjogVmllbiANClRodWMgaGFuaCBxdXllbiBjb25nIHRvIHZhIGtpZW0g c2F0IHhldCB4dSBwaHVjIHRoYW0gdGFpIERhIE5hbmcgZGEgY28ga2hhbmcgbmdoaSANCnBodWMg dGhhbSBtb3QgcGhhbiBiYW4gYW4gaGluaCBzdSBzbyB0aGFtIGN1YSBUQU5EIFRQIERhIE5hbmcg ZG9pIHZvaSBiaSBjYW8gVHJhbiANClZhbiBUaGFuaCAobmd1eWVuIGNoYW5oIHRoYW5oIHRyYSwg Qm8gQ29uZyBhbikuIA0KDQpUcm9uZyB2dSBhbiBuYXksIG9uZyBUcmFuIFZhbiBUaGFuaCBiaSB4 ZXQgeHUgdmUgdG9pICJsb2kgZHVuZyBjYWMgcXV5ZW4gdHUgZG8gZGFuIGNodSANCnhhbSBwaGFt IGxvaSBpY2ggY3VhIE5oYSBudW9jLCBxdXllbiB2YSBsb2kgaWNoIGhvcCBwaGFwIGN1YSB0byBj aHVjLCBjb25nIGRhbiIuDQoNClRydW9jIGRvLCBuZ2F5IDMxLTggVmllbiBUaHVjIGhhbmggcXV5 ZW4gY29uZyB0byB2YSBraWVtIHNhdCB4ZXQgeHUgcGh1YyB0aGFtIHRhaSBEYSANCk5hbmcgY28g a2hhbmcgbmdoaSBjaG8gcmFuZyBjYWMgY2h1bmcgY3UgdGhlIGhpZW4gdHJvbmcgaG8gc28sIHRh aSBsaWV1IGtob25nIGR1IGNvIHNvIA0KZGUgYnVvYyB0b2kgb25nIFRyYW4gVmFuIFRoYW5oIGRv bmcgcGhhbSB0b2kgImxvaSBkdW5nIGNhYyBxdXllbiB0dSBkbyBkYW4gY2h1Li4uIiwgDQpraG9u ZyBjbyBjYW4gY3UgcXV5IGtldCBvbmcgVHJhbiBWYW4gVGhhbmggcGhhbSB0b2kgY3VuZyBjYWMg YmkgY2FvIE5ndXllbiBQaGkgRHV5IA0KTGluaCwgRHVvbmcgVGllbiwgRGluaCBDb25nIFNhdCB2 b2kgdmFpIHRybyBjaHUgbXV1LCBjYW0gZGF1IG5odSBiYW4gYW4gZGEgbmV1LiANCg0KVmllbiBU aHVjIGhhbmggcXV5ZW4gY29uZyB0byB2YSBraWVtIHNhdCB4ZXQgeHUgcGh1YyB0aGFtIHRhaSBE YSBOYW5nIGRlIG5naGkgdG9hIA0KcGh1YyB0aGFtIFRBTkQgdG9pIGNhbyB0YWkgRGEgTmFuZyB0 dXllbiBiaSBjYW8gVHJhbiBWYW4gVGhhbmgga2hvbmcgcGhhbSB0b2ksIGh1eSANCm1vdCBwaGFu IGJhbiBhbiBzbyB0aGFtIHZhIGRpbmggY2hpIHZ1IGFuIGRvaSB2b2kgb25nIFRyYW4gVmFuIFRo YW5oLiANCg0KaHR0cDovL3d3dy5zYWlnb250aW4uY29tL3ZpJUUxJUJCJTg3dC1uYW0vY2hhbi1k dW5nLW5ndXklRTElQkIlODVuLWJhLXRoYW5oLXZhLWIlRTElQkElQjFuZy10aSVFMSVCQSVCRm4t c2ktZHolRTElQkIlOEZtLw0KDQpDaGFuIGR1bmcgTmd1eWVuIEJhIFRoYW5oIHZhIGJhbmcgdGll biBzaSBkem9tDQoNClNhdSB2dSBkYW4gYXAgZGFtIG1hdSBnaWFvIGRhbiB0YWkgR2lhbyB4dSBD b24gRGF1LCBuaHVuZyBhaSBvIERhIE5hbmcgZGV1IGJpZXQgcm8gDQprZSBnaWF1IG1hdCBkYW8g ZGllbiBjaGluaCBsYSBOZ3V5ZW4gQmEgVGhhbmgsIEJpIHRodSBEYSBOYW5nLg0KDQpWYXkgTmd1 eWVuIEJhIFRoYW5oIGxhIGFpPyBRdXllbiBsdWMgdGhlIG5hbyBtYSBkYW0gYmF0IGNoYXAgZHUg bHVhbiwgY29pIHRodW9uZyANCmx1YXQgcGhhcCwgYmFjaCBoYWkgZGFuIGxhbmg/DQoNCk5ndXll biBCYSBUaGFuaCBsYSBCaSB0aHUgVGhhbmggdXkga2llbSBDaHUgdGljaCBIb2kgZG9uZyBOaGFu IGRhbiB0aGFuaCBwaG8gRGEgDQpOYW5nLCB1eSB2aWVuIFRydW5nIHVvbmcgRGFuZywgdHJ1b25n IGRvYW4gREJRSCB0aGFuaCBwaG8gRGEgTmFuZywgdXkgdmllbiANClV5IGJhbiBUYWkgY2hpbmgs IE5nYW4gc2FjaCBjdWEgUXVvYyBob2kuIA0KDQpOZ3V5ZW4gQmEgVGhhbmggcXVlIG8gSG9hIFZh bmcsIERhIE5hbmcuIFRyaW5oIGRvIGhvYyB2YW46IHRpZW4gc2kgLCB0aHVjIGNoYXQgbGEgeSAN Cm11YSBiYW5nLiBEdSBsdWFuIGNobyByYW5nIFRoYW5oIGN1IGRhbiBlbSByYSBIYSBOb2kgbXVh IGNobyB5IGJhbmcgdGllbiBzeSBoZXQgNjAwIA0KdHJpZXUgVk5ELg0KDQooQW5oIGNodXA6IE1h dCB0aWVuIGtodSByZXNvcnQgU2FuZHkgQmVhY2gsY28ga2hhY2ggc2FuIGhhbmcgNCBzYW8gLG1h IE5ndXllbiBCYSANClRoYW5oIGNvIGNvIHBoYW4gdmEgY28gbW90IHZhaSBwaG9uZyBkYWMgYmll dCBkYW5oIHJpZW5nIGNobyBvbmcgdGEgbyBkYXkuIEhpbmggQ0xCIA0KTm8gS2lhKQ0KDQpOZ3V5 ZW4gQmEgVGhhbmggbmhpZXUgbGFuIGJpIHRvIGNhbyB2ZSB0aGFtIG5odW5nLiBNb3QgdmFpIGJh byBjaGkgeHUgbmluaCBjYSBuZ29pIA0Kb25nIHRhIG8gY2FpIGNvbmcgdGFjIGdvaSBsYSAiY2hp bmggdHJhbmcgZG8gdGhpIiwgY2hpbmggY29uZyB0YWMgbmF5IGRhIGRheSBuaGlldSBuZ3VvaSAN CmRhbiBEYSBOYW5nIGxhbSB2YW8gY2FuaCBzb25nIGNvIGN1YywgdGFvIG5lbiBtb3QgbHVjIGx1 b25nIGRhbiBvYW4gbmdheSBkZW0gZGkgDQpraGlldSBraWVuLCBvYW4ga2h1YXQgdGhhdSB0cm9p hQ0KDQpDaGlldSBraWVtIGNoYWMgbWEgTmd1eWVuIEJhIFRoYW5oIHRodW9uZyBkdW5nIHRyb25n IGtlIGhvYWNoICJkZW4gYnUgZ2lhaSB0b2EiIA0Kbmh1IHNhdSA6IGxheSBkYXQgY3VhIG5ndW9p IG5naGVvIGJhbiBjaG8gbmd1b2kgZ2lhdSwga2hpIG5ndW9pIG5naGVvIGtob25nIGR1IHRpZW4g DQptdWEgbGFpIGRhdCBkZSBzb25nIHRoaSBvbmcgdGEgImNobyBubywgcXVpIHJhIHZhbmcsIGto b25nIHRyYSBkdW9jIHNlIGdpYW8gY2hvIG5nYW4gDQpoYW5nIi4gTmhhbiBkYW4gbHVjIGRhdSBy YXQgIm11bmciLCBnaWFpIHRvYSB4b25nIGR1b2MgIm5vIi4gTmh1bmcgc2F1IHZhaSBuYW0sIG5v IDEgDQpjaGkgdmFuZyBjdWEgbmhhIG51b2MgNTAwLjAwMCBkb25nIHRybyB0aGFuaCAxLjUwMC4w MDAgKG5heSBsYSAyLjY1MC4wMDBkKSBkbyBnaWEgdmFuZyANCmxlbi4gTmF5IGtob25nIHRyYSBu b2ksIGNodW5nIGdpYW8gY2hvIG5nYW4gaGFuZyBzaWV0IG5vLiBUaGUgbGEgeG9uZywgcmEgYnVp IG8uIA0KDQooQW5oOiBOaGEgTmd1eWVuIEJhIFRoYW5oLCBEaWEgY2hpOiBTbyAxODksIENhY2gg TWFuZyBUaGFuZyA4LCBxdWFuIENhbSBMZSwgdGhhbmggDQpwaG8gRGEgTmFuZy4gSGluaCBDTEIg Tm8gS2lhKQ0KDQpUcm9uZyBjdW9jIGJhdSBjdSBRdW9jIGhvaSBraG9hIDEyLCBOZ3V5ZW4gQmEg VGhhbmggYmkgeGVtIHhldCB0dSBjYWNoIHVuZyBjdSB2aWVuIA0KdmkgZGFuIHRvIGNhbyB0aGFt IG5odW5nLiBOaHVuZyBkb2FuIHRoYW5oIHRyYSB0dSBIYSBOb2kgdmFvIERhIE5hbmcgdGhpIG1h bmcgdGhlbyANCnR1aSB0bywgdHVpIG5obyBkZSBuaGV0IHBob25nIGJpIHRpZW4gZG9sYSB2YW8g cm9pIHRybyBsYWkgdHJ1bmcgdW9uZyBiYW8gY2FvIGxhICJuaGFuIGRhbiANCnZ1IGtob25nLCBr aWVuIGJheSwgY29uIG9uZyBOZ3V5ZW4gQmEgVGhhbmggbmdheSB0aG8gdm8gdG9pIi4gQ2FpIGNo dW9pIG5heSBjdSB0aGUgDQp0aWVwIGRpZW4uIA0KDQpUYWkgc2FuIGdpYSBkaW5oIE5ndXllbiBC YSBUaGFuaCB0YWkgRGEgTmFuZyBraG9uZyBkZW0geHVlLiBEdSBsdWFuIHBoYW4gYW5oIHRoYW5n IA0KInF1eSB0dSIgbmhhIFRoYW5oIG1vaSB0dWFuIGRldSByYSBudW9jIG5nb2FpIGRhbmggYmFj LCBzbyBzbyBjdW5nIG1hdCANCjIwLjAwMCQvY2h1eWVuLiANCg0KTmhpZXUgbmd1b2kgZGFuIERh IE5hbmcgdmEgY2FjIHZ1bmcgbGFuIGNhbiBjYSBuZ29pIFRoYW5oIGxhIG1vdCAibGFuaCBkYW8g dGh1b25nIA0KZGFuIiwgZGFtIG5vaSBkYW0gbGFtLiBUaHVjIGNoYXQgZG8gY2hpIGxhIG5odW5n IGxvaSBkb24gdGhvaSBkbyBkYW4gZW0gVGhhbmggdGFvIA0KZHVuZyBuZW4sIG5nYXkgbmdheSBu aHVuZyBrZSBuYXkgZHVvYyB0cmEgdGllbiBkZSBkaSBsYW4gbGEgcmkgdGFpIGRhbiBjaHVuZyB2 ZSBjaHV5ZW4gDQpjbyBtb3Qgb25nIEJpIFRodSBUaGFuaCBkdWMgZG8uIFRhdCBjYSBkZXUgbGEg c3UgYmlhIGRhdC4gRHVvaSB0YXkgVGhhbmggbGEgbW90IGRhbSANCmxpbmggY28gcXV5ZW4gbHVj IGNvbiBsb24gaG9uIGNhIGNvbmcgYW4sIGNhbmggc2F0Lg0KDQpOZ29haSByYSwgYmFvIGNoaSBE YSBOYW5nIHZhIGNhYyB0aW5oIG1pZW4gVHJ1bmcgZGV1IGJpIFRoYW5oIGR1bmcgdGllbiB2YSBx dXllbiBsdWMgDQpiaXQgbWllbmcuIE5oaWV1IGdhIG5oYSBiYW8gZHVvYyB0aHVlIGNoaSBkZSBj aHV5ZW4gdmlldCBkZSB0YWkgY2EgbmdvaSBOZ3V5ZW4gQmEgDQpUaGFuaC4NCg0KVnUgZGFuIGFw IGRhbSBtYXUgdGFpIENvbiBEYXUgZG8gYmFuIHRheSBUaGFuaCBjaGkgZGFvLiBBaSBjdW5nIGJp ZXQsIGxhdSBuYXkgZ2lhIGRpbmggDQpuaGEgVGhhbmggbWUgbWFuIGNhaSBkYXQgQ29uIERhdSB2 b24gZGVwIHZhIHllbiB0aW5oLiBEZSBkYXQgZHVvYyBtdWMgZGljaCwgZ2lhIGRpbmggDQp2YSBk YW0gbGluaCBjdWEgVGhhbmgga2hvbmcgdHUgYmF0IGN1IHRodSBkb2FuIG5hby4gS2UgbmFvIGRh bSBsZW4gdGllbmcgY2hvbmcgbGFpIA0KVGhhbmggdGhpIGNvaSBuaHUgZHVuZyBtb25nIHllbiBv biBvIGNhaSBkYXQgRGEgTmFuZyBtYSBUaGFuaCB4dW5nIHZ1YS4NCg0KRGF5IGxhIG1vdCB2dSBh biBub2kgdGllbmcsIGNoYWMgbmhpZXUgYmFuIGRhIGJpZXQgZGVuOg0KDQpOYW0gMjAwNywgdHUg dnUgdmllYyBEaW5oIENvbmcgU2F0LCBOZ3V5ZW4gUGhpIER1eSBMaW5oLCB0dW9uZyBUcmFuIFZh biBUaGFuaCBiaSANCmJhdCB2b2kgdG9pIGRhbmggImxvaSBkdW5nIGNhYyBxdXllbiB0dSBkbywg ZGFuIGNodSwgeGFtIHBoYW0gbG9pIGljaCBjdWEgTmhhIG51b2MsIA0KcXV5ZW4sIGxvaSBpY2gg aG9wIHBoYXAgY3VhIHRvIGNodWMsIGNvbmcgZGFuIi4gVHV5IG5oaWVuLCB2aSBjYW4gYm8gbGFu aCBkYW8gY3VhIERhIA0KTmFuZyAiYmkgYW5oIGh1b25nIHV5IHRpbiwgYmkgdG8gY2FvIHNhaSBz dSB0aGF0IiwgY2hpbmggeGFjIGxhIGFpIHRoaSBraG9uZyBkdW9jIG5oYWMgDQpkZW4uDQoNCkNo byBkZW4ga2hpIHZ1IGFuIGR1b2MgZHVhIHJhIHh1IHBodWMgdGhhbSwgbmhhbiB2YXQgYmkgYW4g ImNvIGRhdSBoaWV1IGJpIHhhbSBoYWkgdXkgDQp0aW4iIG1vaSBkdW9jIGhlIG1vIGNoaW5oIGxh IG9uZyBOZ3V5ZW4gQmEgVGhhbmgsIEJpIHRodSBUaGFuaCB1eSBEYSBOYW5nLiBUcm9uZyANCnBo aWVuIHRvYSBwaHVjIHRoYW0sIGx1YXQgc3UgY3VhIG9uZyBEdW9uZyBUaWVuLCBjdW5nIHhhYyBk aW5oIG5ndW9pIGJpIERpbmggQ29uZyBTYXQgDQp0byBjYW8gbGEgTmd1eWVuIEJhIFRoYW5oLg0K DQpOaHVuZyB0YWkgbGlldSAidHJ1eWVuIGRvbiIgY2hpbmggbGEgaGFpIGNvbmcgdmFuIHNvIDcz IHZhIDc3IGRlIGNhcCBkZW4gdmllYyBvbmcgDQpOZ3V5ZW4gQmEgVGhhbmggZGEgbmhhbiBob2kg bG8gY3VhIFBoYW0gTWluaCBUaG9uZyA0LDQgdGkgZG9uZyB0cm9uZyBjYWMgY29uZyB0cmluaCAN CnhheSBkdW5nIENhdSBTb25nIEhhbiB2YSBkdW9uZyBCYWMgTmFtIG8gRGEgTmFuZy4gTmdvYWkg cmEsIGNhYyBkb24gdG8gY2FvIHZlIA0KaGFuaCB2aSB0aGFtIG5odW5nIGN1YSBvbmcgTmd1eWVu IEJhIFRoYW5oIGN1YSBtb3Qgc28gY29uZyBkYW4gdGhhbmggcGhvIERhIE5hbmcgDQpsYSBjbyBj byBzby4gVmEgS2V0IGx1YW4gdGhhbmggdHJhIHNvIDUyNC9LTFRULUJDQSAoVjI0KSBuZ2F5IDA2 LzYvMjAwOCBjdWEgQm8gDQpDb25nIGFuIHhhYyBkaW5oIGNvIGR1IGNhbiBjdSBkZSBraG9pIHRv IHZ1IGFuIHZhIGJpIGNhbiwgbmh1bmcgQ29uZyBhbiB0aGFuaCBwaG8gRGEgDQpOYW5nIGtob25n IGtob2kgdG8gb25nIE5ndXllbiBCYSBUaGFuaCBkZSBkaWV1IHRyYS4gDQoNCmh0dHA6Ly93d3cu cmZhLm9yZy92aWV0bmFtZXNlL2luX2RlcHRoL1RoZS1Db3VydC1vZi1Db3JydXB0aW9uLWFuZC1h bnRpLWNvcnJ1cHRpb24taW4tRGFuYW5nLUNpdHktMTIxNTIwMDkxNzM0NTAuaHRtbCAyMDA5LTEy LTE1IA0KDQpEYSBOYW5nOiBUaGFtIG5odW5nIHZhIHRvIGNhbyB0aGFtIG5odW5nIA0KDQpWdSB4 dSB0dW9uZyBjb25nIGFuIFRyYW4gVmFuIFRoYW5oIGhvbSA3LTEyIHRhaSBEYSBOYW5nIHRpZXAg dHVjIGdheSBzdSBjaHUgeSB2ZSB2aWVjICJiYW8gdmUiIG5ndW9pIHRvIGNhbyB0aGFtIG5odW5n IA0KDQpMZW4gdGllbmcgdm9pIEJhbiBWaWV0IE5ndSwgRGFpIEEgQ2hhdSBUdSBEbywgb25nIERv IFh1YW4gSGllbiwgbmd1eWVuIFRydW9uZyBiYW4gS2luaCB0ZSBEYSBOYW5nLCBodXllbiB1eSB0 aHVvbmcgdnUgRGEgTmFuZywgdm9pIHR1IGNhY2gsIG5ndW9pIGNvICBsaWVuIHF1YW4gdHJvbmcg dnUgYW4gY2hvIHJhbmcsICJwaGllbiB0b2EgbmF5IGhvYW4gdG9hbiB0cmFpIHBoYXAgbHVhdC4g Q2hhbmggYW4gVHJhbiBNYW4gZGEgbGFtIHRoYXkgY2EgYmVuIFZpZW4gS2llbSBzYXQgVG9pIGNh by4gQ2EgbmhhbiBvbmcgdmEgbW90IHNvIG5ndW9pIHNlIHRpZXAgdHVjIHJhIEhhIE5vaSB0aGFt IGR1IHBoaWVuIHRvYSB0YWkgdGhhbSBsYWkgc2UgZGllbiByYSB2YW8gbXVhIHh1YW4gMjAxMCB0 YWkgSGEgTm9pIi4gDQoNClRyb25nIGN1b2MgdHJhIGxvaSBwaG9uZyB2YW4gdm9pIFZpZXQgSHVu ZyAtQmFuIFZpZXQgTmd1LCBEYWkgQSBDaGF1IFR1IERvLCB0dSBEYSBOYW5nIG9uZyBEbyBYdWFu IEhpZW4gdGh1YXQgbGFpIHBoaWVuIHRvYS4gDQoNCk9uZyBEbyBYdWFuIEhpZW46IEJ1b2kgc2Fu ZyBobyB4dSwga2hvbmcgY2hvIGFpIHZhbyBkdSwgYmEgY29uIGRhdSB0cmFuaCBsYSBsZW4gdGhp IGN1b2kgY3VuZyBidW9pIGNoaWV1IGhvIGNobyB2YW8gZHUuIFBoaWVuIHRvYSBob20gZG8gKDA3 LTEyKSB0YXQgY2EgbW9pIG5ndW9pIHRoYW0gZHUgZGV1IGJpIHVjIGNoZS4uLg0KDQpPbmcgQ2hh bmggYW4gbmF5IGxhIGFpPyBPbmcgVHJhbiBNYW4sIGVtIHJ1b3QgYmEgVHJhbiBUaGkgVGh1eS4g QmEgVHJhbiBUaGkgVGh1eSBsYSANCnZvIG9uZyBOZ3V5ZW4gVmFuIENoaSwgb25nIE5ndXllbiBW YW4gQ2hpIGxhIHV5IHZpZW4gQm8gY2hpbmggdHJpLCBraWVtIFRydW9uZyBiYW4gDQpDaHUgbmhp ZW0gVXkgYmFuIEtpZW0gdHJhIFRydW5nIHVvbmcgZGFuZyBDU1ZOIGxhIGJhbiB0aGFuIGN1YSBv bmcgTmd1eWVuIEJhIFRoYW5oIA0KKEJpIHRodSB0aGFuaCB1eSBEYSBOYW5nLCBVeSB2aWVuIHRy dW5nIHVvbmcpLCB2aSB2YXkgbWEgaG8gYmFvIGNoZS4uLiANCk5odW5nIG1hIGtob25nIGR1b2Mg ZGF1Li4uYm9pIHZpIHZ1IGFuIGJhdCBkYXUgbW8gcmEgbW90IHZ1ICJ0aGFtIG5odW5nIE5ndXll biBCYSBUaGFuaCIga2hvbmcgdGhlIGNob2kgY2FpIG51YS4NCg0KQmF5IGdpbyBuaHVuZyBiYW4g YmFvIGNodWEgY3VhIGNhYyBsdWF0IHN1IHRhaSBwaGllbiB0b2EgZGFuZyBkdW9jIHR1bmcgcmEg Y2EgbnVvYyByb2kuDQoNCmh0dHA6Ly9kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJRC82MTkvSXRl bUlELzE5NTY1L2RlZmF1bHQuYXNweA0KDQpDaGUgcGh1IHZhIHBob2kgYmF5DQoNCmh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDgvTmhhbi12YXQtY28tdmFuLWRlLXBoYWkt ZHVvYy10aGF5LXRoZS10cnVvYy1kYWktaG9pLTkyNzY0My8gMDY6MDAsIDA5LzA4LzIwMTAgKEdN VCs3KSANCg0KRGEgTmFuZzogTmhhbiB2YXQgY28gdmFuIGRlIHBoYWkgZHVvYyB0aGF5IHRoZSB0 cnVvYyBkYWkgaG9pDQoNClRydW9uZyBCYW4gVG8gY2h1YyBUaGFuaCB1eSBEYSBOYW5nIEJ1aSBW YW4gVGllbmcgdHJvIGNodXllbiB2b2kgVmlldE5hbU5ldCANCnh1bmcgcXVhbmggdmllYyB0aGkg ZGllbSBiYXUgdHJ1YyB0aWVwIGJpIHRodSBxdWFuLCBodXllbiB1eTogIlRoZW8gdG9pLCB2YW4g ZGUgbmFtIG8gDQpjaG8sIG5ldSBtb3QgYmkgdGh1IGR1b25nIG5oaWVtIGtob25nIGNvbiB1eSB0 aW4sIGRhIGNvIG5odW5nIGRhdSBoaWV1IHZpIHBoYW0sIGR1b2MgDQpkdSBsdWFuIHBoYW4gYW5o LCBuaHVuZyBjYXAgdXkgdmFuIGNhIG5lIGtob25nIGNoaXUgdGhheSBkb2ksIGNvbiBjYXAgdHJl biBjdW5nIGtob25nIA0KcmEgdGF5IHh1IGx5LCB0aGkgZG8gbW9pIGxhIGRpZXUgZGFuZyBub2ku IE5odW5nIG5oYW4gdmF0IGNvIHZhbiBkZSBuaHUgdGhlIHBoYWkgZHVvYyANCnRoYXkgdGhlIHRy dW9jIGRhaSBob2kiLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA4L011 b24tZGFuLWNodS1waGFpLWNvLW5oaWV1LXVuZy12aWVuLW5nYW5nLXN1Yy10cmFuaC1jdS05Mjc5 MjEvIDA2OjA4LCBUaHUgQmEsIDEwLzA4LzIwMTAgKEdNVCs3KQ0KDQpEYSBOYW5nOiBNdW9uIGRh biBjaHUsIHBoYWkgY28gbmhpZXUgdW5nIHZpZW4gJ25nYW5nIHN1YycgdHJhbmggY3UgDQoNClRo ZW8gb25nIEJ1aSBWYW4gVGllbmcsIFRydW9uZyBCYW4gVG8gY2h1YyBUaGFuaCB1eSBEYSBOYW5n LCBtdW9uIHRoYXQgc3UgZGFuIGNodSwgDQpwaGFpIGNvIHRyYW5oIGN1IHRoYXQgc3UsIHZvaSAy LCAzIHVuZyBjdSB2aWVuIG5nYW5nIG5oYXUgdmUgY2h1YyB2dSB0cm9uZyBEYW5nLCANCmtob25n ICJxdXkgaG9hY2giIHRydW9jLCBiYXQga2Ugbmd1b2kgbmFvIGR1b2MgZGFpIGhvaSB0aW4gbmhp ZW0gaG9uIHNlIGxhIGJpIHRodSANCg0KaHR0cDovL2RhbmFuZy5nb3Yudm4vVGFiSUQvNjgvQ0lE LzYxOS9JdGVtSUQvMTkyOTcvZGVmYXVsdC5hc3B4DQoNCkRhIE5hbmc6IEFuIGNoYW4gdGllbiBo byB0cm8gbmd1IGRhbg0KDQpTbyB0aWVuIDEyNSB0cmlldSBkb25nIGN1YSBkdSBhbiwga2hpIGRl biB0YXkgbmd1IGRhbiBjaGkgY29uLi4uIDYwIHRyaWV1IGRvbmchIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzUvMjAxMDA4MjYwMTEwNTMuYXNweCAyNi8w OC8yMDEwIDE6MTAgDQoNCkRhIE5hbmc6IFRhdSBjdXUgaG8gU0FSIDQxMiBjdWEgVHJ1bmcgdGFt IFBob2kgaG9wIHRpbSBraWVtIGN1dSBuYW4gaGFuZyBoYWkga2h1IHZ1YyBJSSAoRGFuYW5nIE1S Q0MpIGJpIGR1dCBkYXkga2VvIA0KDQpPbmcgQ2FvIFZhbiBNaW5oLCBUbyB0cnVvbmcgZG9pIHRo dXllbiBzbyA0LCBraGEgYnVjIHh1YzogIlRvaSBuZ2F5IDIzIHNhbmcgbmdheSANCjI0LjgsIGto aSBuZ2hlIHRob25nIHRpbiB0YXUgdHJvbmcga2hpIGxhaSBkYXQgYmkgZHV0IGRheSwgcXVhIElD T00sIGJhbmcga2luaCBuZ2hpZW0gDQpuZ2hlIGJpZW4gbGF1IG5hbSwgY2h1bmcgdG9pIGRhIGtp ZW4gbmdoaSB2b2kgdGF1IGN1dSBobyBsdWMgcXVheSBsYWkgdGltIGtpZW0sIG5lbiB0aW0gDQp2 YW8gc2F0IHRyb25nIGRhdCBsaWVuLCBuZXUga2hvbmcgY28gbnVhIHRoaSBuZW4gdGltIHh1b25n IHRoZW8gbHVvbmcgbnVvYyBjaGF5LCBraG9uZyANCm5lbiB0aW0gbGVuIHZhIHRpbSByYS4gVGhl IG5odW5nLCBwaGlhIHRhdSBjdXUgaG8gYmFvIGhvIGxhbSB0aGVvIGNoaSB0aGkgdHUgcGhpYSBs YW5oIGRhbyANCnRyb25nIGJvLCBuZW4gY2h1bmcgdG9pIGtob25nIHRoZSBjYW4gdGhpZXAgZHVv Yy4gQ2h1bmcgdG9pIGN1bmcgcmF0IG11b24gcmEgYmllbiBzb20gDQpkZSBjdXUgbmh1bmcgbmd1 IGRhbiwgbmh1bmcgZG8gZ2lvIGxvbiwgY2h1bmcgdG9pIGtob25nIGR1b2MgY2hhcCB0aHVhbiBy YSBiaWVuIGNoaWV1IA0KbmdheSAyNC44LCBuZW4gc2FuZyBuYXkgbW9pIGxlbiBkdW9uZywgY3Vu ZyBkYSBsYSBraGEgdHJlISIuIERlIG1pbmggY2h1bmcgY2hvIGtpbmggDQpuZ2hpZW0gY3V1IGhv IHRyZW4gYmllbiBjdWEgbWluaCwgY2hpIHRyb25nIHZvbmcgMiB0aWVuZywgNiB0YXUgdGh1eWVu IGN1YSBuZ3UgZGFuIA0KZGEgY28gbWFuaCBtb2kgZGF1IHRpZW4gbGEgMiBjaGllYyBhbyBjdWEg bmd1IGRhbiB0cm9pIGRhdCB0cmVuIHZ1bmcgYmllbiwgdHJvbmcga2hpIA0KbHVjIGx1b25nIGN1 dSBobyB2YW4gY2h1YSB0aW0gZHVvYyB0aG9uZyB0aW4gZ2kgc2F1IDMgbmdheSBvIHRyZW4gYmll bi4gDQoNCmh0dHA6Ly93d3cuc2dncC5vcmcudm4vcGhhcGx1YXQvMjAwOC80LzE1MDA5Ni8gVGh1 IHR1LCAyMy8wNC8yMDA4LCAxNDowNSAoR01UKzcpDQoNCkRhIE5hbmc6IENoYW5oIGFuIFRBTkQg cXVhbiBMaWVuIENoaWV1IHR1eSB0aWVuIGJhbiBkYXUgZ2lhIHRydSBzbyB0b2EgYW4NCg0KaHR0 cDovL3ZpZXRiYW8udm4vWGEtaG9pL0hpZXUtdHJ1b25nLWJhbi1jYXkteGEtY3UtNTAtdHVvaS1s YXktOS10cmlldS1kb25nLzY1MDY5NzkyLzE1Ny8gVGh1IG5hbSwgMTIgVGhhbmcgbXVvaSAyMDA2 LCAwNzo1NiBHTVQrNyANCg0KRGEgTmFuZzogSGlldSB0cnVvbmcgYmFuIGNheSB4YSBjdSA1MCB0 dW9pIGxheSA5IHRyaWV1IGRvbmcNCg0KaHR0cDovL3d3dy5jYW5kLmNvbS52bi92aS1WTi9waGFw bHVhdC8yMDA4LzcvOTU3MzIuY2FuZCAgDQoNClh1IGxhaSB2dSBhbiB0YWkgQ29uZyB0eSBYTksg Tm9uZyBzYW4gdGh1YyBwaGFtIERhIE5hbmcNCg0KVG9uZyBzbyB0aWVuIG1hIE5ndXllbiBNYW5o IEh1bmcgY3VuZyBkb25nIGJvbiBkYSBob2FuIHZhIGNoaWVtIGRvYXQgcXVhIDMgdGh1b25nIHZ1 ICJtdWEgYmFuIiwgInh1YXQga2hhdSIga2hvbmcgdHJlbiA5IHR5IGRvbmcuIA0KDQpodHRwOi8v d3d3LnRodXZpZW5waGFwbHVhdC52bi8/Q1Q9TlcmTklEPTg0NjEwMS8wMy8yMDA4DQoNCkRhIE5h bmc6IFRDdHkgTWllbiBUcnVuZyBDb3NldmNvIChEYW5nIGJvIFRoYW5oIHBobyBEYSBOYW5nKSAt IFRpZXUgeGFpIGhvYW5nIHBoaSB0aWVuIG5oYSBudW9jDQoNCkNodSB0aWNoIEhEUVQgVHJhbiBY dWFuIERpbmggYmkga2hvaSB0byBiaSBjYW4gdm9pIHRvaSBkYW5oIGNvIHkgbGFtIHRyYWkgZ2F5 IGhhdSBxdWEgbmdoaWVtIHRyb25nLiANCg0KaHR0cDovL3d3dy5waGFwbHVhdHRwLnZuLzIwMDkx MjI1MDcxODMwMTUxcDBjMTAxMy9kYS1uYW5nLWNvbmctdHJpbmgtdGhvYXQtbnVvYy1raGUtY2Fu LWNodWEtYmlldC1raGktbmFvLXhvbmcuaHRtIDI1LzEyLzIwMDkgLSAwNzoyMiBBTQ0KDQpEYSBO YW5nOiBDb25nIHRyaW5oIHRob2F0IG51b2MgS2hlIENhbiBjaHVhIGJpZXQga2hpIG5hbyB4b25n DQoNCmh0dHA6Ly9kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJRC82MTkvSXRlbUlELzE5NTY1L2Rl ZmF1bHQuYXNweA0KDQpEYSBOYW5nOiBUcmFuIGx1dCBkYXUgbXVhIG8gRGEgTmFuZyBraGllbiBu Z3VvaSB0aGFuaCB0aGkgY3VuZyBuaHUgbm9uZyBkYW4gc29uZyB0cm9uZyBuaHVuZyBuZ2F5IGto b24gZG9uIHZpIHRhYyBkdW9uZywgbmdhcCBsdXQsIHRoaWV0IGhhaSBob2EgbWF1LiANCg0KQ29u IG5obywgbmFtIDIwMDYsIGtoaSBiYXQgZGF1IG5naGllbSB0aHUsIGR1YSB2YW8gc3UgZHVuZyBk dSBhbiBUTlZTIHRyaSBnaWEgNDEsNSB0cmlldSBVU0QsIGRhIGNvIG5oaWV1IGt5IHZvbmcsIHJh bmcgZGF5IHNlIGxhIGR1IGFuIGJpZW4gRGEgTmFuZyB0aGFuaCBtb3QgZG8gdGhpIGNvIGhlIHRo b25nIFROVlMgaGllbiBkYWkgbmhhdCBraHUgdnVjLiBOaHVuZywgZGVuIGhvbSBuYXksIHN1IHRo dWMgdmFuIGNodWEgZGFwIHVuZyB5ZXUgY2F1IHRodWMgdGUuIA0KDQpOZ2F5IDQvOSwgc2F1IG1v dCBkZW0gbXVhLCBuaGlldSB0dXllbiBkdW9uZyBjaGluaCBjdWEgRGEgTmFuZyBiaWVuIHRoYW5o IHNvbmcuIE5odW5nIG5nYXkgc2F1IGRvLCBsdSBjaG9uZyBsZW4gbHUga2hpZW4gbmd1b2kgdGhp IHRoYW5oIHJvaSB2YW8ga2hvbiBkb24uIA0KDQpodHRwOi8vZGFuYW5nLmdvdi52bi9UYWJJRC82 OC9DSUQvNjE5L0l0ZW1JRC8xOTMyNi9kZWZhdWx0LmFzcHgNCg0KRGEgTmFuZzogRHUgYW4gInhp IHBoYW4iLCBkYXQgdmFuZyBob2FuZyBob2EgLSBEdSBhbiAidHJpZXUgZG8iIG5odW5nIGNoaSB4 YXkuLi4gdHVvbmcgcmFvISANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0RhLU5hbmctMi4w MDAtaG8tZGFuLWJpLWdpYWktdG9hLW5odW5nLWNodWEtbmhhbi1kdW9jLXF1eWV0LWRpbmgtdGh1 LWhvaS1kYXQvNDUyNTY5NTQvMTU3LyAwNC8xMC8yMDA3LCAyMzo1OCBHTVQrNw0KDQpEYSBOYW5n OiAyLjAwMCBobyBkYW4gYmkgZ2lhaSB0b2Egbmh1bmcgImNodWEgbmhhbiBkdW9jIHF1eWV0IGRp bmggdGh1IGhvaSBkYXQiIA0KDQpodHRwOi8vZGFuYW5nLmdvdi52bi9UYWJJRC82OC9DSUQvNjE5 L0l0ZW1JRC8xOTkxMi9kZWZhdWx0LmFzcHgNCg0KRGEgTmFuZzogRHUgY2h1YSBkdW9jIHF1eWV0 IHRvYW4sIG5oaWV1IGhhbmcgbXVjIGN1YSBkdSBhbiB0aG9hdCBudW9jIHZhIHZlIHNpbmggbW9p IHRydW9uZyBUUCBEYSBOYW5nIC0gY28gdG9uZyB2b24gaG9uIDQxIHRyaWV1IFVTRCAtIGRhIGh1 IGhvbmcsIHh1b25nIGNhcCB0cmFtIHRyb25nIHZpIHN1IHZvIHRyYWNoIG5oaWVtIGN1YSBkb24g dmkgcXVhbiBseS4gSGFuZyBjaHVjIGRpZW0gZHVvbmcgb25nIGRhbiBudW9jIHRoYWkgYmkgdm8g bmF0IGtoaSBjaHVhIGJhbiBnaWFvIGRhIGtoaWVuIG1vaSBuYW0gVFAgRGEgTmFuZyBwaGFpIGJv IHJhIGNhIDEwIHRpIGRvbmcgZGUgZHV5IHR1LCBzdWEgY2h1YS4NCg0KaHR0cDovL21haXZhbmcu bmxkLmNvbS52bi8yMTc4MzNwMGMxMDAyL2RhLW5hbmctcGhhaS10aHUtaG9pLTQwLXRpLWRvbmct dGFtLXVuZy1zYWkuaHRtIFQuVHVuZyAxMy8wMy8yMDA4IDEwOjAzIChHTVQrNykNCg0KVGhhbmgg dHJhIENoaW5oIHBodTogRGEgTmFuZyBwaGFpIHRodSBob2kgNDAgdGkgZG9uZyB0YW0gdW5nIHNh aSANCg0KKE5MRE8pLSBUaGFuaCB0cmEgQ2hpbmggcGh1IHZ1YSBjbyBrZXQgbHVhbiB0aGFuaCB0 cmEgdmUgdmllYyBVQk5EIFRQIERhIE5hbmcgY2FuIA0KdGhpZXAgdmFvIHZpZWMgdGhhbmggdG9h biBob3AgZG9uZyB4YXkgZHVuZyBjdWEgZHUgYW4gdGhvYXQgbnVvYyB2YSB2ZSBzaW5oIFRQIG5h eSB2b2kgDQpUb25nIENvbmcgdHkgWGF5IGR1bmcgc28gMSAtIEJvIFhheSBkdW5nLiBUaGFuaCB0 cmEgQ2hpbmggcGh1IGtpZW4gbmdoaSBUaHUgdHVvbmcgDQpjaGkgZGFvIFVCTkQgVFAgRGEgTmFu ZyB0aGFuaCB0b2FuIHRyYSBsYWkgaG9uIDIwLDEgdGkgZG9uZyBnaWEgdHJpIHhheSBsYXAgZ29p IHRoYXUgDQp4YXkgZHVuZyBzbyAyLTMgY2hvIFRvbmcgQ29uZyB0eSBYYXkgZHVuZyBzbyAxLiBV Qk5EIFRQIERhIE5hbmcgcGhhaSBjbyBiaWVuIHBoYXAgDQp0aHUgaG9pIHR1IENvbmcgdHkgWGF5 IGR1bmcgc28gOCAobmF5IGxhIENvbmcgdHkgQ28gcGhhbiBEYXUgdHUgLSBYYXkgZHVuZyBzbyA4 KSA0MCB0aSANCmRvbmcgdGFtIHVuZyBzYWkgY2hvIGNvbmcgdHkgbmF5IHRyb25nIHF1YSB0cmlu aCB0cmllbiBraGFpIGR1IGFuLiANCg0KS2V0IGx1YW4gVGhhbmggdHJhIGN1bmcga2llbiBuZ2hp IGtpZW0gZGllbSBuZ2hpZW0gdHVjLCBsYW0gcm8gdHJhY2ggbmhpZW0gY3VhIFVCTkQgDQpUUCBE YSBOYW5nIHRyb25nIHZpZWMgcXV5ZXQgZGluaCB0YW0gdW5nIDQwIHRpIGRvbmcga2hvbmcgZHVu ZyBxdXkgZGluaCBjaG8gQ29uZyB0eSANClhheSBkdW5nIHNvIDggdmEgeHUgbHkgY2FjIGNhIG5o YW4sIGRvbiB2aSBsaWVuIHF1YW4uDQoNCmh0dHA6Ly9kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJ RC82MTkvSXRlbUlELzE5MTI3L2RlZmF1bHQuYXNweA0KDQpEYSBOYW5nOiBDdWEgc29uZyBQaHUg TG9jIGJvYyBtdWkgdGhvaSAibG9uZyBvYyINCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9I b21lL0RhLU5hbmctVGktbGUtdGhhdC10aG9hdC1udW9jLXNhY2gtbGEtMzA0NC8yMDA4OS8xMDU0 NzMubGFvZG9uZyBDYXAgbmhhdDogODozOSBBTSwgMDgvMDkvMjAwOA0KDQpEYSBOYW5nOiBUaSBs ZSB0aGF0IHRob2F0IG51b2Mgc2FjaCBsYSAzMCw0NCUNCg0KaHR0cDovL3d3dy5sYW9kb25nLmNv bS52bi9Ib21lL0Jlbmgtdmllbi1MYW8tRGEtTmFuZy1Nb2ktdHJ1b25nLWRvYy1oYWktZGUtbGF5 LWxhbi8yMDA2MTIvMTY2OTgubGFvZG9uZyBDYXAgbmhhdDogNzo0MiBBTSwgMjcvMTIvMjAwNg0K DQpEYSBOYW5nOiBNb2kgdHJ1b25nIGRvYyBoYWksIGRlIGxheSBsYW4gdGFpIGJlbmggdmllbiBM YW8gRGEgTmFuZyAgDQoNCmh0dHA6Ly9kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJRC82MTkvSXRl bUlELzE5OTY5L2RlZmF1bHQuYXNweA0KDQpEYSBOYW5nOiBUcmVuIDUwMCB0aWV1IHRodW9uZyB2 YXkga2luIFVCTkQgVFAgRGEgTmFuZw0KDQpodHRwOi8vd3d3LnRpbm1vaS52bi9EYS1OYW5nLUhv bi01NTAtdGlldS10aHVvbmctc2lldS10aGktQmFpLVRoby1iYWktdGhpLTExODM0NDYuaHRtbCAw NjoyMCBuZ2F5IDE2LzExLzIwMDkNCg0KQ2hpZXUgMTYvMTEsIGhvbiA1NTAgdGlldSB0aHVvbmcg ZGFuZyBraW5oIGRvYW5oIHRhaSBraHUgQiBzaWV1IHRoaSBCYWkgVGhvIFBsYXphIChEYSBOYW5n KSBkYSBiYWkgdGhpIGRlIHBoYW4gZG9pIHZpZWMgZGkgZG9pLg0KDQpCYSBQaGFtIFRoaSBLaW0g TC4gY2hvIGJpZXQsIG1heSBuYW0gdHJ1b2MgdGluaCBoaW5oIGJ1b24gYmFuIG8ga2h1IEIgc2ll dSB0aGkgQmFpIFRobyBlIGFtLCB0aHUgbmhhcCBiYXAgYmVuaCwgY2hpIHRob2kgZ2lhbiBuZ2Fu IHRybyBsYWkgZGF5IG1vaSBjbyBkYXUgaGlldSB0b3QgbGVuIG1vdCBjaHV0IHRoaSBjYWMgaG8g dGlldSB0aHVvbmcgbGFpIGJhdCBuZ28gbmhhbiBkdW9jIHBoYWkgY2h1eWVuIHNhbmcgY2hvIFRh biBDaGluaCBraGllbiBiYSBjb24gcmF0IGhvYW5nIG1hbmcsIGxvIG5nYWkNCg0KQ2hpIE5nb2Mg WWVuLCBraW5oIGRvYW5oIG15IHBoYW0gbyB0YW5nIDIga2h1IEIgc2lldSB0aGkgQmFpIFRobyBu b2kgcm86ICJDaHVuZyB0b2kga2hvbmcgdGhlIGNoYXAgbmhhbiBwaHVvbmcgYW4gdHJlbi4gTmV1 IGNhbiB0aGlldCwgY2h1bmcgdG9pIHNlIG5obyBsdWF0IHN1IGRlIGJhbyB2ZSBjaG8gcXV5ZW4g bG9pIGN1YSB0aWV1IHRodW9uZy4gS2h1IHZ1YyBjaG8gVGFuIENoaW5oIG5hbSB0cm9uZyBoZW0s IG5obyBoZXAsIHJhdCBraG8gZGUga2luaCBkb2FuaCwgZHVhIGNhYyBobyB0aWV1IHRodW9uZyB2 YW8gZG8gY2hhbmcga2hhYyBnaSBkYXkgY2h1bmcgdG9pIHZhbyBjaG8gcGhhIHNhbiwgdGlldCBk dW9uZyBidW9uIGJhbiEiLiANCg0KQ2hpIE5ndXllbiBUaGkgVHV5ZXQgVHJpbmggKGxvIDE2Mykg bm9pIHRoZW06ICJDYWNoIGRheSBnYW4gbnVhIG5hbSwga2h1IEEga2luaCBkb2FuaCBlIGFtIGRv IHZpZWMgY2FpIHRhbywgbmFuZyBjYXAga2hvbmcgcGh1IGhvcCBraGllbiBsdW9uZyBraGFjaCBn aWFtIHN1dCBuZ2hpZW0gdHJvbmcuIFRpbmggaGluaCBkbyBkYSBrZW8gdGhlbyByYXQgbmhpZXUg aGUgbHV5IGNobyB0aWV1IHRodW9uZyBraW5oIGRvYW5oIG8ga2h1IEIgbmh1bmcgY2h1bmcgdG9p IHZhbiBxdXlldCB0YW0gYmFtIHRydSBkZSBidW9uIGJhbi4gSG9uIG51YSwga2hpIHRpZXAgeHVj IHZvaSB0aWV1IHRodW9uZywgbGFuaCBkYW8gVFAgY3VuZyBodWEgZ2l1IGxhaSBraHUgQiBuZW4g dGlldSB0aHVvbmcgcGhhbiBuYW8geWVuIHRhbS4gVGFpIHNhbyBiYXkgZ2lvIGxhaSBkb3Qgbmdv dCB0aG9uZyBiYW8gZGkgZG9pIG5odSB2YXk/Ii4NCg0KaHR0cDovL2RhbmFuZy5nb3Yudm4vVGFi SUQvNjgvQ0lELzYxOS9JdGVtSUQvMTk5NTYvZGVmYXVsdC5hc3B4DQoNCkRhIE5hbmc6IENheSB4 YW5nIG8gRGEgTmFuZyBnaWFuIGxhbiAtIE5ndW9pIGRhbiB0aWVwIHR1YyBwaGFuIHVuZw0KDQpo dHRwOi8vZGFuYW5nLmdvdi52bi9UYWJJRC82OC9DSUQvNjE5L0l0ZW1JRC8xOTU1MC9kZWZhdWx0 LmFzcHgNCg0KRGEgTmFuZzogcmFpIGRpbmggdHJlbiBjYXUgVGh1YW4gUGh1b2MNCg0KaHR0cDov L3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL0NhYy1iZW5oLXZpZW4tZGV1LXF1YS10YWktdHJhbS10 cm9uZy8yMDA3Ni80MTExMy5sYW9kb25nICBDYXAgbmhhdDogODowOSBBTSwgMTUvMDYvMjAwNw0K DQpEYSBOYW5nOiBDYWMgYmVuaCB2aWVuIGRldSBxdWEgdGFpIHRyYW0gdHJvbmcNCg0KaHR0cDov L2RhbmFuZy5nb3Yudm4vVGFiSUQvNjgvQ0lELzYxOS9JdGVtSUQvMTk5NTUvZGVmYXVsdC5hc3B4 DQoNCkRhIE5hbmc6IG5oaWV1IGRvYW5oIG5naGllcCByYW0gcm8gZHVhIG1heSBtb2MsIHhlIGJl biBkZW4ga2hhaSB0aGFjIGtob2FuZyBzYW4gdHJhaSBwaGVwIChjaHUgeWV1IGxhIGRhdCBkb2kp IHRyZW4gZGlhIGJhbiB4YSBIb2EgU29uLCBIb2EgTmluaCBjdWEgaHV5ZW4gSG9hIFZhbmcuDQoN Cmh0dHA6Ly9kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJRC82MTkvSXRlbUlELzE5MjY1L2RlZmF1 bHQuYXNweA0KDQpEYSBOYW5nOiBDb24gY2hldCwgdm8gY2FwIGN1dSBjb24gYmkgYmFvIHZlIGJl bmggdmllbiBkYW5oDQoNCkNvbiB2dWEgc2luaCBkYSBtYXQsIHZvIGRhbmcgY2FwIGN1dSBuZW4g YW5oIEtpZXUgRGluaCBUaG9pIGNvIHhvbmcgdmFvIEJlbmggdmllbiBEYSBOYW5nIHRyb25nIGdp byBjaHVhIGR1b2MgdGhhbSBiZW5oIHZhIGJpIG5oYW4gdmllbiBiYW8gdmUgY3VhIGJlbmggdmll biBuYXkgZGFuaCBob2kgZG9uZyBkZW4gYmFtIHRpbSBtYXQgbWF5IQ0KDQpodHRwOi8vZGFuYW5n Lmdvdi52bi9UYWJJRC82OC9DSUQvNjE5L0l0ZW1JRC8xOTEyNy9kZWZhdWx0LmFzcHgNCg0KRGEg TmFuZzogVmUgZGVwIGN1YSB2aW5oIGJpZW4gVGhhbmggQmluaCBjbyB0aGUgYmkgZGUgZG9hIHZp IG8gbmhpZW0gbnVvYyB0aGFpIHRhaSBjdWEgc29uZyBQaHUgTG9jLg0KDQpodHRwOi8vZGFuYW5n Lmdvdi52bi9UYWJJRC82OC9DSUQvNjE5L0l0ZW1JRC8xOTI2Ni9kZWZhdWx0LmFzcHgNCg0KRGEg TmFuZzogIkJpZXUgdHVvbmcgbW9pIGN1YSBEYSBOYW5nIi4uLiBib2MgbXVpIGhvaSB0aG9pICAN Cg0KRHVvYyBkdWEgdmFvIHN1IGR1bmcsIENhdSBUaHVhbiBQaHVvYyBuaGFuaCBjaG9uZyB0cm8g dGhhbmggZGllbSB0aHUgaHV0IGtoYWNoIGR1IGxpY2ggdmEgdHJvIHRoYW5oICJiaWV1IHR1b25n IG1vaSBjaG8gVFAgRGEgTmFuZyIgbmFuZyBkb25nLiBUdXkgbmhpZW4sIG5pZW0gdnVpIGNodWEg dGhhdCBzdSB0cm9uIHZlbiBraGkgaGF1IGhldCBhaSBkaSBxdWEgY2F5IGNhdSBjdW5nIHBoYWkg dGhvdCBsZW4gImRlcCBuaHVuZyBob2kgcXVhIi4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9p L0RhLU5hbmctMTAwLXRpLWRvbmctdHktbGUtdGhhdC10aG9hdC1udW9jLW1heS1jb24tZHVvaS0y NS80MDE4ODM2OC8xNTcvIFRodSBiYXksIDI0IFRoYW5nIGhhaSAyMDA3LCAxNDowNCBHTVQrNyAN Cg0KRGEgTmFuZzogMTAwIHRpIGRvbmcsIHR5IGxlIHRoYXQgdGhvYXQgbnVvYyBtYXkgY29uLi4u IGR1b2kgMjUlDQoNCmh0dHA6Ly9jYS5jYW5kLmNvbS52bi92aS12bi9iYW5kb2N2YWNhbmQveWtp ZW5iYW5kb2MvMjAwOS84LzE1NTUwNy5jYW5kIDEwOjQxLCAwNy8xMi8yMDA5DQoNCkRhIE5hbmc6 IER1b25nIExlIFRyb25nIFRhbiAtIER1b25nIHBobyBoYXkgYmFpIGxheQ0KDQpOaGluIGNvbiBk dW9uZyBxdWEgbGF5IGxvaSwgZGF5IG8gdm9pIG8gdHJhdSBraG9uZyBhaSBuZ2hpIGRvIGxhIGR1 b25nIG8ga2h1IHZ1YyBkbyB0aGkgY3VhIHRoYW5oIHBobyBsb24gbmhhdCBtaWVuIFRydW5nLg0K DQpOZW4gZHVvbmcgdHJvYyBsbyBraG9uZyB0aGUgZ29pIGRvIGxhIG8gdm9pLCBvIHRyYXUgbnVh IG1hIGRhIHRoYW5oIGhhbSBobywgZGkgbGFpIHZvIGN1bmcga2hvIGtoYW4uDQoNCmh0dHA6Ly93 d3cubGFvZG9uZy5jb20udm4vSG9tZS9CZW5oLXZpZW4tTGFvLURhLU5hbmctTW9pLXRydW9uZy1k b2MtaGFpLWRlLWxheS1sYW4vMjAwNjEyLzE2Njk4Lmxhb2RvbmcgQ2FwIG5oYXQ6IDc6NDIgQU0s IDI3LzEyLzIwMDYNCg0KRGEgTmFuZzogVGhhbmcgNi4yMDA2LCBCViBMYW8gRGEgTmFuZyBjaGlu aCB0aHVjIGhvYXQgZG9uZy4gVHV5IG5oaWVuIGJlbmggdmllbiBkYSBib2MgbG8gaGFuZyBsb2F0 IGJhdCBjYXAgYmF0IG5ndW9uIHR1IGNvbmcgdGFjIGRhdSB0dSB4YXkgZHVuZy4gRGlldSBuYXkg ZGFuZyBkZSBkb2Egc3VjIGtob2Uga2hvbmcgY2hpIGNobyBiZW5oIG5oYW4sIG1hIGNvbiBjYSB2 b2kgbmd1b2kgbGFtIGNvbmcgdGFjIGRpZXUgdHJpLg0KDQpOdW9jIHRoYWkgYm9jIG11aSBob2kg a2hhcCBiZW5oIHZpZW4NCg0KTHVjIGJlbmggdmllbiBkdW9jIGR1YSB2YW8gaG9hdCBkb25nLCBj YSB0YXAgdGhlIGJhYyBzaSwgeSB0YSBkZXUgY2h1bmcgaHVuZyBraGkgcGhhdCBoaWVuIHJhIHRv YW4gYm8gaGUgdGhvbmcgbnVvYyB0aGFpIG8gZGF5IC0gdm9uIGFuIGNodWEgdGluaCBkb2MgaGFp IGNhbyAtIGR1b2Mgdm8gdHUgdGhhaSByYSBtb2kgdHJ1b25nIHR1IG5oaWVuIG1hIGNoYW5nIGNv IGJhdCBreSB0aGlldCBiaSB4dSBseSBuYW8uIFRhdCBjYSBudW9jIHRoYWkgZGV1IGR1b2MgdGhp ZXQga2UgZG8gZG9uIHZlIG1vdCBobyBnYSBuaG8gcm9uZyBjaHVhIGRheSAxbTIsIGtob25nIGNv IG5hcCBkYXkgdmEgdHJ1YyB0aWVwIG5nYW0geHVvbmcgZGF0LiBOaHVuZyBuZ2F5IG11YSwgbnVv YyB0aGFpIHRyYW4gcXVhIGhvIGdhIGNoYXkgdmFvIHNhbiBiZW5oIHZpZW4gbGVuaCBsYW5nLiBC YWMgc2kgdmEgYmVuaCBuaGFuIHBoYWkgbG9pIHF1YSBxdWFuZyBudW9jIG5nYXAgbmF5IGRlIGRl biBwaG9uZyBkaWV1IHRyaS4gTXVpIGhvaSBib2MgbGVuIGtpbmgga2h1bmcuDQoNCk9uZyBMZSBW YW4gRHVjIC0gR2lhbSBkb2MgYmVuaCB2aWVuIC0gY2hvIGJpZXQ6ICJDYWMgYmVuaCBkaWV1IHRy aSB0YWkgZGF5IGRldSBvIG5ob20gY3VjIGt5IG5ndXkgaGllbSB2YSB0aW5oIGxheSBsYW4gY2Fv LCBuZW4ga2hpIHhheSBkdW5nIHBoYWkgdGluaCBkZW4gcGh1b25nIGFuIHV1IHRpZW4gbmhhdCBs YSBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkgdmEgbmhhIHhhYy4gTmh1bmcgdGh1YyB0ZSwgMiBk aWVtIHV1IHRpZW4gZGV1IGtob25nIGNvIHRhaSBiZW5oIHZpZW4gbmF5Ii4gDQpEdW9jIGJpZXQs IGdpYWkgZG9hbiAxLCBiZW5oIHZpZW4gZHVvYyB0aGlldCBrZSB2b2kgNTAgZ2l1b25nIG5odW5n IGRlbiBuYXksIHNvIGx1b25nIGdpdW9uZyB4ZXAgZGF0IHRvaSBkYSBjdW5nIGNoaSBkdW9jIDM1 IGNhaS4NCg0KT25nIExlIFZhbiBEdWMgY2hvIGJpZXQ6ICJIaWVuIG5heSwgYmVuaCB2aWVuIGRh bmcgdGhpZXUgdHJhbSB0cm9uZyBiYWMgc2ksIGNoYW5nIGFpIGRhbSB0aW0gdmllYyB0YWkgbW9p IHRydW9uZyBxdWEgZG9jIGhhaSwgZGUgbGF5IGxhbiIuDQoNCmh0dHA6Ly92aWV0YnVpbGQudm4v dGludHVjLXN1a2llbi0xOTIuaHRtbA0KDQpEYSBOYW5nOiBOaGlldSBjb25nIHRyaW5oIHRyb25n IGRpZW0gZ2lhbSBjaGFuIHRhaSBjaG8NCg0KaHR0cDovL3d3dy50aW5tb2kudm4vTWllbi1UcnVu Zy1UaGlldS1kaWVuLW5odW5nLXRvbi10aGF0LWRpZW4tbGFpLXRhbmctMDYxNzA5MzMuaHRtbCAw OTo0MyAyMC8wNi8yMDEwDQoNCkRhIE5hbmc6IE1vaSBtdWEgZ2lvbmcgZGEuLi4gZHVvbmcgbmdh cCwgZGllbiBjdXAhDQoNCmh0dHA6Ly9teS5vcGVyYS5jb20vdGlubmhhbmgvYmxvZy8wODEyMDIx ODAwNDAgVHVlc2RheSwgMi4gRGVjZW1iZXIgMjAwOCwgMTE6MDA6NDANCg0KRGEgTmFuZzogQ2hh eSBsb24gdGFpIGtobyB5IGN1IGJlbmggdmllbiBEYSBOYW5nIA0KDQpodHRwOi8vdmlldGJhby52 bi9YYS1ob2kvRGEtTmFuZy1sYW5nLXBoaS10aWVuLXRpLXZpLWRpZW4ta2UtY28tQU1SLzQwMDky NTI2LzE1Ny8gVGh1IGhhaSwgMDggVGhhbmcgdGFtIDIwMDUsIDA5OjAxIEdNVCs3IA0KDQpEYSBO YW5nOiBsYW5nIHBoaSB0aWVuIHRpIHZpIGRpZW4ga2UgY28gQU1SIA0KDQpodHRwOi8vYmVlLm5l dC52bi9jaGFubmVsLzE5ODcvMjAxMDA4L0todS1jb25nLW5naGllcC10YWktRGEtTmFuZy1jaGlt LXRyb25nLWx1YS0xNzYyNTc0LyAwOC8wOC8yMDEwIDIyOjMzOjUyIA0KDQpEYSBOYW5nOiBDaGF5 IGxvbiwga2h1IGNvbmcgbmdoaWVwIEFuIERvbiBjaGltIHRyb25nIGx1YSANCg0KaHR0cDovL3d3 dy50aW5tb2kudm4vRGEtTmFuZy1Ob25nLWRhbi1kaWV1LWR1bmctdmktdHJhaS1oZW8tMDYzNDg3 Ny5odG1sMDc6MTYgbmdheSAxNC8wNi8yMDA5DQoNCkRhIE5hbmc6IE5vbmcgZGFuIGRpZXUgZHVu ZyB2aSB0cmFpIGhlbw0KDQpOdW9jIHRoYWkgdHUgY2h1b25nIGhlbyBjaGF5IHJhIGhhaSBobyBj aHVhIHJvaSB4YSB0aGFuZyByYSBzb25nLg0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9B bk5pbmgvc2dncC5vcmcudm4vRGEtTmFuZy1DaHV5ZW4tZ28tbGF1LWdpdWEtYmFuLW5nYXkvMzE4 MzIzNS5lcGkgVGh1IHR1LCAwOS8wOS8yMDA5LCAwMTo1OSAoR01UKzcpDQoNCkRhIE5hbmc6IENo dXllbiBnbyBsYXUgZ2l1YSBiYW4gbmdheQ0KDQpNYXkgbmdheSBxdWEsIGxhbSB0YWMgZGEgaG9h bmggaGFuaCB0cmVuIHR1eWVuIGR1b25nIG5vaSBoYWkgaHV5ZW4gbWllbiBudWkgRG9uZyBHaWFu ZyB2YSBUYXkgR2lhbmcgKHRpbmggUXVhbmcgTmFtKSB2b2kgVFAgRGEgTmFuZy4gTG9pIGR1bmcg bXVhIGx1LCBsYW0gdGFjIG5nYW5nIG5oaWVuIHZhbiBjaHV5ZW4gZ28gdHJ1b2Mgc3UgImJhdCBs dWMiIGN1YSBsdWMgbHVvbmcga2llbSBsYW0uDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDkw MjU3Mzg5My9kaW5oX2JheV9nYWlfbWFpX2RhbV9iaV9jdW9wX3NhY2hfdGFpX3Nhbi5odG1sKFRo ZW8gVm5FeHByZXNzICkgDQoNCkRhIE5hbmc6ICdEaW5oJyBiYXkgZ2FpIG1haSBkYW0gYmkgY3Vv cCBzYWNoIHRhaSBzYW4NCg0KaHR0cDovL3Z0Yy52bi8yLTI3MDMveGEtaG9pL2Noby1tYWktZGFt LWR1b25nLWRpZW4tYmllbi1waHUuaHRtMjQvMDYvMjAwNiAyMjowMQ0KDQpEYSBOYW5nOiAnQ2hv IG1haSBkYW0nIGR1b25nIERpZW4gQmllbiBQaHUgLSBEYSBOYW5nDQoNCmh0dHA6Ly93d3cudGhh bmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAwOS8yMDEwMDIyMzAwMzAxMS5hc3B4IDIzLzAy LzIwMTAgMDozMCANCg0KRGEgTmFuZzogaG9uIGNoaWVuIG8gdnVuZyBxdWU7IGxhbSBybyB0aG9u ZyB0aW4gYmkgdGh1IHhhIChIb2EgVGllbiBILkhvYSBWYW5nLCBEYSBOYW5nKSBraWNoIGRvbmcg Z2F5IHJvaSAgDQoNCmh0dHA6Ly93d3cuYmFvZGFuYW5nLnZuL3ZuL2tpbmh0ZS9kdWxpY2gvMjY0 NzgvaW5kZXguaHRtbCAwODo0NiwgNi8xMS8yMDA5IChHTVQrNykNCg0KRGEgTmFuZzogVGFpIGRp ZW4gbmFuIGNoZW8ga2VvIGR1IGtoYWNoDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDExODA2 NTA5MzQvdHJ1bmdfdGFtX2Rhb190YW9fbGFpX3hlX290b192YV9tb190b19saWVuX2NoaWV1X2Rh X25hbmdfdGh1X3BoaV9uZ29haV9xdXlfZGluaC5odG1sIFRodSBuYW0sIDQvMTIvMjAwOCwgODo0 MiBBTSAoVGhlbyBDQU5EICkNCg0KRGEgTmFuZzogVHJ1bmcgdGFtIERhbyB0YW8gbGFpIHhlIG90 byB2YSBtbyB0byBMaWVuIENoaWV1IChEYSBOYW5nKSB0aHUgcGhpIG5nb2FpIHF1eSBkaW5oDQoN Cmh0dHA6Ly90aW50dWMueGFsby52bi8wMDE5MTYxNDY3OTQvdHJhbV90aHVfcGhpX2xpZW5fY2hp ZXVfZGFfbmFuZ19sYXlfdGllbl90aHVfcGhpX2d1aV9sYWlfY29fa3lfaGFuLmh0bWwgVGh1IGhh aSwgMTUvNS8yMDA2LCAxMjo1OSBQTSANCg0KRGEgTmFuZzogVHJhbSB0aHUgcGhpIExpZW4gQ2hp ZXUgbGF5IHRpZW4gdGh1IHBoaSBndWkgbGFpIGNvIGt5IGhhbi4uLg0KDQpodHRwOi8vdGludHVj LnhhbG8udm4vMDAtMzk3MTY2MDg4L25oaWV1X3NhaV9waGFtX3RhaV9kdV9hbl83NzNfbGllbl9j aGlldV9kYV9uYW5nLmh0bWwgKFRoZW8gQ0FORCApIA0KDQpEYSBOYW5nOiBOaGlldSBzYWkgcGhh bSB0YWkgZHUgYW4gNzczIExpZW4gQ2hpZXUsIERhIE5hbmcNCg0KaHR0cDovL3RpbnR1Yy54YWxv LnZuLzAwLTEzMDIxNjA3MzQvaGllcF9kYW1fZW1fZ2FpX3ZvX2xpbmhfYW5fMTJfbmFtX3R1Lmh0 bWwNCg0KRGEgTmFuZzogSGllcCBkYW0gZW0gZ2FpIHZvIGxpbmggYW4gMTIgbmFtIHR1DQoNCmh0 dHA6Ly90aW50dWMueGFsby52bi8wMC0xNjQyNTI4MjI5L2RhX25hbmdfYm9fc29uZ19iaWVuX3Nh dF9sb19uZ2hpZW1fdHJvbmcuaHRtbCBUaHUgYmF5LCA1LzEyLzIwMDksIDA6NTMgQU0gDQoNCkRh IE5hbmc6IEJvIHNvbmcsIGJpZW4gc2F0IGxvIG5naGllbSB0cm9uZw0KDQpodHRwOi8vdGludHVj LnhhbG8udm4vMDAtMjEwNTEzNDE2L3Z1X2JhdF9naXVfMTgwX3Rhbl94dW9uZ19kb25nX3ZhdF9v X2RhX25hbmdfbGFpX2R1bl9kYXlfdHJhY2hfbmhpZW1fbmJzcC5odG1sIChUaGVvIFRoYW5oIE5p ZW4gKSANCg0KVnUgYmF0IGdpdSAxODAgdGFuIHh1b25nIGRvbmcgdmF0IG8gRGEgTmFuZzogTGFp IGR1biBkYXkgdHJhY2ggbmhpZW0gDQoNCmh0dHA6Ly90aW50dWMueGFsby52bi8wMDEzMjA4MTYy NjIvZ2lhbl9jaG9uZ19kZW1fY29uX3Z1dF9naXVhX2R1b25nX3JheS5odG1sIFRodSB0dSwgMi8x Mi8yMDA5LCA5OjQzIEFNIA0KDQpEYSBOYW5nOiBHaWFuIGNob25nLCBkZW0gY29uIHZ1dCBnaXVh IGR1b25nIHJheSB4ZSBsdWENCg0KaHR0cDovL3d3dy5ubGQuY29tLnZuLzIwMDkxMTEyMDMxNjMx Mjk1UDBDMTAxOS9iaS1kYW0tY2hldC1raGktYmF0LWRlbi10aWVtLXN1YS14ZS5odG0NCg0KRGEg TmFuZzogTW90IG5ndW9pIGJpIGRhbSBjaGV0IGtoaSAiYmF0IGRlbiIgdGllbSBzdWEgeGUgDQoN Cmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9EYS1OYW5nLUxpZW4tdGllcC14YXktcmEtbmhpZXUt dnUtVE5HVC1kdW9uZy1zYXQtbmdoaWVtLXRyb25nLzY1MDk2MDg2LzE1Ny8gVGh1IGJhLCAyNiBU aGFuZyBzYXUgMjAwNywgMDU6NDIgR01UKzcgDQoNCkRhIE5hbmc6IExpZW4gdGllcCB4YXkgcmEg bmhpZXUgdnUgVE5HVCBkdW9uZyBzYXQgbmdoaWVtIHRyb25nDQoNCmh0dHA6Ly92aWV0YmFvLnZu L1hhLWhvaS9EYS1OYW5nLUdhbi00MC1jb25nLW5oYW4tbGFpLXRpZXAtdHVjLW5nYXQteGl1LzY1 MDU3NjkxLzE1Ny8gVGh1IGJheSwgMjQgVGhhbmcgc2F1IDIwMDYsIDEwOjI3IEdNVCs3IA0KDQpE YSBOYW5nOiBHYW4gNDAgY29uZyBuaGFuIGxhaSB0aWVwIHR1YyBuZ2F0IHhpdQ0KDQpodHRwOi8v dmlldGJhby52bi9YYS1ob2kvU2FwLXNhbi1iZS10b25nLW8tRGEtTmFuZy1sYW0tMi1uZ3VvaS1j aGV0LzEwODM5MTc3LzE1Ny8gVGh1IGhhaSwgMDMgVGhhbmcgbXVvaSBtb3QgMjAwMywgMDk6MTYg R01UKzcgDQoNCkRhIE5hbmc6IFNhcCBzYW4gYmUgdG9uZyBvIERhIE5hbmcgbGFtIDIgbmd1b2kg Y2hldA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvRGEtTmFuZy0xOTUtY29uZy1uaGFuLWJp LW5nby1kb2Mtc2F1LWJ1YS1hbi10cnVhLzY1MDU3NTEzLzE1Ny8gVGh1IG5hbSwgMjIgVGhhbmcg c2F1IDIwMDYsIDE3OjIxIEdNVCs3IA0KDQpEYSBOYW5nOiAxOTUgY29uZyBuaGFuIGJpIG5nbyBk b2Mgc2F1IGJ1YSBhbiB0cnVhDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9Eby1yYS12YWkt Y2h1Yy10aS1kb25nLXJvaS1iby1kYXkvNDAxOTYyMTQvMTU3LyBUaHUgc2F1LCAxMyBUaGFuZyB0 dSAyMDA3LCAwODowMiBHTVQrNyANCg0KRGEgTmFuZzogRG8gcmEgdmFpIGNodWMgdGkgZG9uZy4u LiByb2kgYm8gZGF5DQoNCktodSBkbyB0aGkgY29uZyBuZ2hpZXAgSG9hIEtoYW5oIChEYSBOYW5n KToNCg0KTmhpZXUgdnVuZyBkYXQgbmFtIHRyZW4gZGlhIGJhbiBxdWFuIExpZW4gQ2hpZXUgZGEg ZHVvYyBVQk5EIFRQIERhIE5hbmcgcGhlIGR1eWV0IGNobyB4YXkgZHVuZyB0aGFuaCBuaHVuZyBr aHUgZG8gdGhpIChLRFQpIG5odSBLRFQgbW9pIFRheSBCYWMsIEtEVCBjb25nIG5naGllcCBIb2Eg S2hhbmguLi4gDQoNCkhhbmcgY2h1YyB0aSBkb25nIGRhIGR1b2MgY2FwIHRvYyBkbyByYSBsYW0g aGEgdGFuZywgbmh1bmcgc2F1IGhvbiBuYW0gbmFtIHRyaWVuIGtoYWksIG5oaWV1IGR1IGFuIHRy b25nIHNvIGRvIHZhbiBuZ29uIG5nYW5nLCBkYW5nIGRvLiANCg0KS2h1IGNodW5nIGN1IDUgdGFu ZyBob2FuZyBwaGUNCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL05nb2ktdHJ1b25nLWJpLWJv LXF1ZW4tby1EYS1OYW5nLzMwMTc1MjA3LzE1Ny8gVGh1IGJhLCAxNyBUaGFuZyB0dSAyMDA3LCAx MDowNCBHTVQrNyANCg0KRGEgTmFuZzogTmdvaSB0cnVvbmcgYmkgImJvIHF1ZW4iIG8gRGEgTmFu Zw0KDQpPIHF1YW4gTGllbiBDaGlldSwgVFAgRGEgTmFuZyBjbyB0aG9uIEhvYSBWYW4gdGh1b2Mg ZGllbiBxdXkgaG9hY2ggInRyZW8iIHR1IDQgbmFtIG5heS4gVGhvbiBjbyBjaHVhIGRheSAxMDAg aG8gZGFuLCBjbyBtb3QgbmdvaSB0cnVvbmcgImxpZW4gY2FwIiB2b2kgMyBsb3AgaG9jLCBraG9u ZyBjb25nLCBraG9uZyB0dW9uZyByYW8sIGtob25nIG5oYSB2ZSBzaW5oLCBraG9uZyBudW9jIHNh Y2gsIGNoaWV1IGNoaWV1IHRyYXUgYm8gdmFvIHBob25nIHVlIGRheSBzYW4uLi4NCg0KaHR0cDov L3RpbnR1Yy54YWxvLnZuLzAwLTE0ODk5NjA5MjgvZGFfbmFuZ19zYXBfbW9fZGFfM19uZ3VvaV9j aGV0Lmh0bWwNCg0KRGEgTmFuZzogU2FwIG1vIGRhLCAzIG5ndW9pIGNoZXQNCg0KaHR0cDovL2Rh bnRyaS5jb20udm4vYzIwL3MyMC00MDM2OTMvaGFpLWNoYXUtbmhvLWNoZXQtZHVvaS1kdW9pLXJh bmgtdGhvYXQtbnVvYy5odG0NCg0KRGEgTmFuZzogSGFpIGNoYXUgbmhvIGNoZXQgZHVvaSBkdW9p IHJhbmggdGhvYXQgbnVvYyAocmFuaCB0aG9hdCBudW9jIGRhbmcgZGFvIGRvLCAga2hvbmcgY28g YWkgdHJvbmcsIGhhaSBjaGF1IGJlIDEyIHR1b2kgYmkgcm9pIHh1b25nIG51b2MgY2hldCBkdW9p KSANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL1hvbS1udW9jLWRlbi1vLURhLU5hbmcvMzAx ODQ0OTkvMTU3LyBUaHUgc2F1LCAyMiBUaGFuZyBzYXUgMjAwNywgMTY6MDQgR01UKzcgDQoNCkRh IE5hbmc6ICJYb20gbnVvYyBkZW4iIG8gRGEgTmFuZw0KDQoiSG9pIHF1YSBraG9uZyBjaGl1IG5v aSIgZGFuZyBkYW4gdHJvIHRoYW5oIGNhdSBub2kgY3VhIG1pZW5nIGN1YSBuZ3VvaSBkYW4gdG8g MTYgcGh1b25nIEhvYSBIaWVwIEJhYywgcXVhbiBMaWVuIENoaWV1LCBUUCBEYSBOYW5nLiANCg0K VHUgbmFtIDIwMDAsIHRoYW5oIHBobyB0aGkgY29uZyBkdW9uZyBOZ3V5ZW4gVmFuIEN1LCAicXVl biIga2hvbmcgeGF5IGhlIHRob25nIHRob2F0IG51b2MgbmVuIGdpbyBiYW8gbmhpZXUgY2FjIGxv YWkgbnVvYyB0aGFpIGRldSBjaGF5IHRyYW4gcXVhIG5oYSBkYW4uDQoNCmh0dHA6Ly92aWV0YmFv LnZuL1N1Yy1raG9lL0RhLU5hbmctNzEtY2Etc290LXh1YXQtaHV5ZXQtcGhhaS1uaGFwLXZpZW4v MzAxOTA5NjgvMjQ4LyBUaHUgaGFpLCAwNiBUaGFuZyB0YW0gMjAwNywgMDI6MjMgR01UKzcgDQoN CkRhIE5hbmc6IDcxIGNhIHNvdCB4dWF0IGh1eWV0IHBoYWkgbmhhcCB2aWVuDQoNCmh0dHA6Ly92 aWV0YmFvLnZuL1hhLWhvaS9EZW0tMzAwMC1oby1kYW4tYm8tY2hvLzMwMjIxMzg1LzE1Ny8gVGh1 IHR1LCAwNSBUaGFuZyBiYSAyMDA4LCAxMTo0NCBHTVQrNyANCg0KRGEgTmFuZzogRGVtIDMuMDAw IGhvIGRhbi4uLiAiYm8gY2hvIg0KDQpOYW0gMjAwMSwgVUJORCB0aGFuaCBwaG8gRGEgTmFuZyBj b25nIGJvIHF1eSBob2FjaCB4YXkgZHVuZyBraHUgZG8gdGhpIG1vaSBUYXkgQmFjLiBUdSBkbywg aG9uIDMuMDAwIGhvIGRhbiBvIGtodSB2dWMgcGh1b25nIEhvYSBNaW5oLCBxdWFuIExpZW4gQ2hp ZXUsIHJvaSB2YW8gdGluaCBjYW5oICJkaSBraG9uZyBkdW9jLCBvIGtob25nIHhvbmciLg0KDQpO Z2F5IHNhdSBraGkgY29uZyBibyBxdXkgaG9hY2gsIFVCTkQgdGhhbmggcGhvIERhIE5hbmcgZGEg cmEgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCwgZ2lhaSB0b2EgZGkgZG9pIGRlIHRodWMgaGllbiBk dSBhbi4gVGhlIG5odW5nIGNobyBkZW4gbmF5LCBtb2kgdGh1IHZhbiBpbSBsaW0uIFJhdCBuaGll dSBobyBkYW4ga2hvbmcgdGh1YyBoaWVuIGR1b2MgY2FjIHRodSB0dWMgbmhhIGRhdCBkbyBkYXQg ZGEgY28gcXV5ZXQgZGluaCB0aHUgaG9pIHR1IGxhdQ0KDQpodHRwOi8vdmlldGJhby52bi9YYS1o b2kvRGFuLXNvbmctdHJvbmctYmUtY2h1YS1jaGF0LXRoYWktY29uZy1uZ2hpZXAvMzAxMzkxOTMv MTU3LyBUaHUgYmEsIDA1IFRoYW5nIGNoaW4gMjAwNiwgMDg6MjYgR01UKzcgDQoNCkRhIE5hbmc6 IERhbiBzb25nIHRyb25nICJiZSBjaHVhIiBjaGF0IHRoYWkgY29uZyBuZ2hpZXAgKEhvYSBLaGFu aCBCYWMsIHF1YW4gTGllbiBDaGlldSkgIA0KDQpIb24gMyBuYW0gbmF5LCBnYW4gODAwIGhvIGRh biBraHUgdnVjIFF1YW5nIFRoYW5oIDRBLCBIb2EgS2hhbmggQmFjLCBxdWFuIExpZW4gQ2hpZXUg cGhhaSBzb25nIGNodW5nIHZvaSBvIG5oaWVtIG51b2MgdGhhaSB2YSBraG9pIGJ1aSBjdWEga2h1 IGNvbmcgbmdoaWVwIEhvYSBLaGFuaCwgZGFjIGJpZXQgbGEgdHUgQ29uZyB0eSB4aW1hbmcgQ29z ZXZjbyB2YSBjbyBzbyBzYW4geHVhdCB2YW4gZXAgUGhvbmcgTmhhLg0KDQpodHRwOi8vdmlldGJh by52bi9Bbi1uaW5oLVBoYXAtbHVhdC9MYW0tbmh1Yy1jb24tZGF1LTctbmd1b2ktbmhhLWNob25n LWhhdS10b2EvMTA4ODgwNjQvMjE4LyBUaHUgYmEsIDIzIFRoYW5nIG11b2kgbW90IDIwMDQsIDA5 OjUwIEdNVCs3IA0KDQpEYSBOYW5nOiBMYW0gbmh1YyBjb24gZGF1LCA3IG5ndW9pIG5oYSBjaG9u ZyBoYXUgdG9hDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9MYW5nLWdoZS1sby8zMDEyNjkz NS8xNTcvIFRodSBoYWksIDAzIFRoYW5nIGJheSAyMDA2LCAwODo1OCBHTVQrNyANCg0KRGEgTmFu ZzogTGFuZy4uLiBnaGUgbG8gKERhIE5hbmcpDQoNCktodSBwaG8gWHVhbiBUaGlldSAxLCBwaHVv bmcgSG9hIEhpZXAgTmFtLCBxdWFuIExpZW4gY2hpZXUgLSBUUC4gRGEgTmFuZyA1IG5hbSBuYXkg Y28gdGhlbSAiYmlldCBkYW5oIiBuaHUgdmF5LiBEYXQgZGFpLCBuZ3VvbiBudW9jIG8gZGF5IGJp IG8gbmhpZW0gbmFuZyB2aSBudW9jIHRoYWkgY3VhIEtodSBjb25nIG5naGllcCAoS0NOKSBIb2Eg S2hhbmgga2hpZW4gbmd1b2kgZGFuIHRheSBjaGFuIGxvIGxvZXQsIG5ndWEgbmdheS4uLg0KDQpo dHRwOi8vdmlldGJhby52bi9YYS1ob2kvQ2hheS0zLWhhLXJ1bmctdmktdGhhcC1uaGFuZy8xMDkx NDg3Ni8xNTcvIFRodSBiYSwgMjEgVGhhbmcgc2F1IDIwMDUsIDA4OjA2IEdNVCs3IA0KDQpEYSBO YW5nOiBDaGF5IDMgaGEgcnVuZyB2aSB0aGFwIG5oYW5nDQoNCkNhY2ggbm9pIGNoYXkga2hvYW5n IDE1MCBtIGxhIGtodSB2dWMgY2h1YSB4YW5nIGRhdSAtIDMgYm9uLCB0b25nIGNvbmcgNzUuMDAw IGxpdC4NCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9pL0RhLU5hbmctVG9uZy14ZS1saWVuLWhv YW4tNS1vLXRvLWh1LWhhaS1uYW5nLzIwNjYxNTY3LzE1Ny8gVGh1IGhhaSwgMDUgVGhhbmcgaGFp IDIwMDcsIDE2OjMzIEdNVCs3IA0KDQpEYSBOYW5nOiBUb25nIHhlICJsaWVuIGhvYW4iLCA1IG8g dG8gaHUgaGFpIG5hbmcgDQoNCmh0dHA6Ly93d3cudHVvaXRyZS5jb20udm4vVGlhbnlvbi9JbmRl eC5hc3B4P0FydGljbGVJRD0zNTIyOTImQ2hhbm5lbElEPTEzIFRodSBUdSwgMDkvMTIvMjAwOSwg MjM6MzAgKEdNVCs3KQ0KDQpEYSBOYW5nOiBuaGlldSB0cnVvbmcgcGhhaSBob2FuIHRyYSB0aWVu IHRodSBzYWkgcXV5IGRpbmggDQoNCmh0dHA6Ly93d3cuZGFuYW5nLmdvdi52bi9UYWJJRC82OC9D SUQvNjE5L0l0ZW1JRC8yMjc0My9kZWZhdWx0LmFzcHggKDE3LzA1LzIwMTApDQoNCkRhIE5hbmc6 IEJhbyBkb25nIHRpbmggdHJhbmcgbyBuaGllbSBidWkgdGFpIEhvYSBWYW5nDQoNClRyb25nIHRo b2kgZ2lhbiBuYXksIGNhYyBtbyBraG9hbmcgc2FuIChkYXQsIGRhKSBjdWEgbmhpZXUgY29uZyB0 eSByYSBzdWMga2hhaSB0aGFjIGhldCANCmNvbmcgc3VhdCwgY2hheSB0aGVvIGtob2kgbHVvbmcs IG5oYW0gdGh1IGxvaSBtYSBibyBxdWVuIHRhYyBoYWkgdmUgbyBuaGllbSBtb2kgdHJ1b25nIA0K Z2F5IHJhIG5nYXkgY2FuZyBraHVuZyBraGllcCBkb2kgdm9pIGhhbmcgbmdhbiBuZ3VvaSBkYW4g byBjYWMgeGEgbmh1IEhvYSBOaG9uLCBIb2EgDQpTb24sIGh1eWVuIEhvYSBWYW5nLCBUUCBEYSBO YW5nLiANCg0KaHR0cDovL3d3dy5kYW5hbmcuZ292LnZuL1RhYklELzY4L0NJRC82MTkvSXRlbUlE LzIyNzQyL2RlZmF1bHQuYXNweCBOZ3V5ZW4gQ2F1ICgxNy8wNS8yMDEwKQ0KDQpEYSBOYW5nOiAi TWF1IiBydW5nIHZhbiBjaGF5DQoNCkdvIGtoYWkgdGhhYyB0cmFpIHBoZXAgdGFpIGtodSB2dWMg SG9pIFllbiwgdGhvbiBOYW0gWWVuLCB4YSBIb2EgQmFjLg0KDQpodHRwOi8vd3d3LmRhbmFuZy5n b3Yudm4vVGFiSUQvNjgvQ0lELzYxOS9JdGVtSUQvMjI3NDAvZGVmYXVsdC5hc3B4DQoNCkRhIE5h bmc6IEhhbmcgY2h1YyBkb2FuaCBuZ2hpZXAgZHVhIG5oYXUga2hhaSB0aGFjIGhldCBjb25nIHN1 YXQgY2FjIG1vIGtob2FuZyBzYW46IGRhLCBkYXQgDQp0YWkgZGlhIGJhbiBjYWMgeGEgSG9hIE5o b24sIEhvYSBTb24gdGh1b2MgaHV5ZW4gSG9hIFZhbmcsIHRoYW5oIHBobyBEYSBOYW5nLCBraGll biBoYW5nIG5naGluIA0Kbmd1b2kgZGFuIHNvbmcgdHJvbmcgbyBuaGllbS4NCg0KVHVuZyBkb2Fu IHhlIHRhaSBkdWEgbmhhdSBjaGF5IHRyZW4gZHVvbmcsIG5oaWV1IGRvYW5oIG5naGllcCB0byBj aHVjIGtoYWkgdGhhYyB2YW8gYmFuIGRlbSwgDQpsYW0gcm9pIHZhaSBkYXQsIGRhLCBzb2kuLi4s IGdheSBuYW5nIGJ1aSwgbXVhIHNpbmguDQpEb2FuaCBuZ2hpZXAgbmdhbmcgbmhpZW4ga2hhaSB0 aGFjIC0gTmd1b2kgZGFuIG5naGVvLi4uIGJvIG5oYSB2aSBzbyBiZW5oIHRhdCANCg0KaHR0cDov L3d3dy50aW5tb2kudm4vRGF0LXF1b2MtcGhvbmctdGhhbmgtbmhhLWhhbmctYmFpLWRvLXhlLTEy OTc0MzMuaHRtbCBIYWkgQ2hhdSAwNTo0MyAyMy8xMi8yMDA5IA0KDQpEYSBOYW5nOiBLeSBjdW9u ZyB0cm9uZyBnaWFpIHF1eWV0IGtoaWV1IG5haSwgdG8gY2FvIGNodWEgbmdoaWVtIA0KIA0KVGhl byBvbmcgSG9hbmcgVmFuIFRoYW5nLCBUcnVvbmcgQmFuIFBoYXAgY2hlIEhETkQgVFAgRGEgTmFu ZywgdHV5IG1vdCBzbyBnaWFpIA0KcGhhcCBtb2kgbWFuZyB0aW5oIGRvdCBwaGEgZHVvYyBhcCBk dW5nIGNvIGhpZXUgcXVhIG5odW5nIGNvbmcgdGFjIGNhaSBjYWNoIHRodSB0dWMgDQpoYW5oIGNo aW5oIHRyZW4gZGlhIGJhbiBUUCB2YW4gY29uIG5oaWV1IGhhbiBjaGUuIFRpbmggdHJhbmcgY2hh bSB0cmUgdHJvbmcgdmllYyBnaWFpIHF1eWV0IGhvIHNvIGNobyBjYSBuaGFuLCB0byBjaHVjIHZh biBjb24gcGhvIGJpZW4sIG5oYXQgbGEgaG8gc28gZGUgbmdoaSBjYXAgZ2lheSBjaHVuZyBuaGFu IHF1eWVuIHN1IGR1bmcgZGF0IGxhbiBkYXWFDQogDQpOZ3V5ZW4gbmhhbiBjdWEgdGluaCB0cmFu ZyB0cmVuLCB0aGVvIG9uZyBIb2FuZyBWYW4gVGhhbmcsIGxhIGRvICJzdSBwaG9pIGhvcCBnaXVh IGNhYyBkb24gdmksIGRpYSBwaHVvbmcgY2h1YSBjaGF0IGNoZSwgZG9uZyBibywgZ2F5IHBoaWVu IGhhIGNobyB0byBjaHVjLCBjYSBuaGFuIHBoYWkgZGkgbGFpIG5oaWV1IGxhbiwgbGFtIHRodSB0 dWMgbyBuaGlldSBub2k7IHkgdGh1YyB0cmFjaCBuaGllbSwgdGluaCB0aGFuLCB0aGFpIGRvIHBo dWMgdnUgY3VhIG1vdCBibyBwaGFuIGNhbiBibywgY29uZyBjaHVjIGNodWEgY2FvIG5odW5nIGNo dWEgY28gYmllbiBwaGFwIGNoYW4gY2hpbmgsIHh1IGx5IGtpcCB0aG9pIi4NCiANCk9uZyBUaGFu ZyBjdW5nIGNobyBiaWV0LCB0dXkgdGluaCBoaW5oIGtoaWV1IG5haSwgdG8gY2FvIGN1YSBjb25n IGRhbiB0cmVuIGRpYSBiYW4gY28gZ2lhbSBzbyB2b2kgbmFtIG5nb2FpICgxNTMgZG9uIHNvIHZv aSAxNzkgZG9uKSBuaHVuZyB2aWVjIGdpYWkgcXV5ZXQgbW90IHNvIGRvbiB0aHUga2hpZXUgbmFp LCB0byBjYW8gY2h1YSBkYW0gYmFvIHRob2kgZ2lhbiB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1 YXQuIFZpZWMgdGhpIGhhbmggY2FjIHF1eWV0IGRpbmggZ2lhaSBxdXlldCBraGlldSBuYWksIHRv IGNhbyBjbyB0cnVvbmcgaG9wIGNvbiBjaGFtLCBjYSBiaWV0IGNvIG1vdCBzbyB0cnVvbmcgaG9w IGRvIGtob25nIGR1b2MgZ2lhaSBxdXlldCBkdXQgZGllbSBuZW4gZHVvbmcgc3UgdGllcCB0dWMg a2hpZXUgbmFpLCB0byBjYW8uDQogDQoiTmhpbiBjaHVuZywga3kgbHVhdCwga3kgY3VvbmcgdHJv bmcgdmllYyBnaWFpIHF1eWV0IGtoaWV1IG5haSwgdG8gY2FvIGNodWEga2llbiBxdXlldCB2YSB0 cmlldCBkZSIgLSBvbmcgVGhhbmcgbmhhbiBtYW5oLiANCg0KaHR0cDovL3Zvdm5ld3Mudm4vSG9t ZS9EYS1OYW5nLVNvbmctUGh1LUxvYy1vLW5oaWVtLS10cmFtLXRyb25nLzIwMDk3LzExNTcwMS52 b3YgMTE6MTYgQU0sIDA2LzA3LzIwMDkNCg0KRGEgTmFuZzogU29uZyBQaHUgTG9jIG8gbmhpZW0g dHJhbSB0cm9uZyANCg0KVHUgMyAtIDQgZ2lvIGNoaWV1IGRlbiB0YW4gZGVtLCBjYWMgY3VhIGNv bmcgbG9uIG8gYXQgeGEgbnVvYyB2YW8gc29uZyBQaHUgTG9jLCBrZW8gdGhlbyBuaHVuZyANCmRh bSBib3QgdHJhbmcgZGFjIGNhIG1hdCBzb25nLCBzYXUgZG8gY2hheSB0aGFuZyByYSBiaWVuLCBr aGllbiB2dW5nIGJpZW4gZHVvaSBjaGFuIGNhdSBQaHUgTG9jIHRybyBuZW4gZGVuIG5nb20uDQoN CkNoYXkgZG9jIHZpbmggRGEgTmFuZyBsYSBkdW9uZyBOZ3V5ZW4gVGF0IFRoYW5oIGJpIG8gbmhp ZW0sIG11aSBob2kgdGhvaSBib2MgbGVuIHR1IG51b2MgbyBjdWEgc29uZyBQaHUgTG9jIGRvIHJh LiANCg0KSGFuZyBuZ2FuIG5ndW9pIGRhbiBkaWV1IGR1bmcgdmkgbnVvYyB0aGFpIHRyYW4gcmEg dHUgbWllbmcgY29uZw0KDQpodHRwOi8vY2EuY2FuZC5jb20udm4vdmktVk4vYmFuZG9jdmFDQU5E L0RUdGhlb3lldWNhdS8yMDEwLzYvMTYzMTQ2LmNhbmQgOTo1NSwgMTgvMDUvMjAxMA0KDQpEYSBO YW5nOiBDYSBjaGV0IHRyYW5nIHNvbmcgZG8gbyBuaGllbSBzb25nIENhdSBUcmFuZyAtIGJhbyBk b25nIHRpbmggdHJhbmcgbyBuaGllbSBuZ3VvbiBudW9jIHRhaSBjYWMgS0NOIGhpZW4gbmF5IA0K DQpodHRwOi8vd3d3LnRpbm1vaS52bi9EYXQtcXVvYy1waG9uZy10aGFuaC1uaGEtaGFuZy1iYWkt ZG8teGUtMTI5NzQzMy5odG1sIEhhaSBDaGF1IDA1OjQzIDIzLzEyLzIwMDkgDQoNCkRhIE5hbmc6 IENhbiBkYW5oIHRlbiAiUGh1IERvbmciIGNobyBjb24gZHVvbmcgeHVuZyBkYW5nIA0KIA0KVGFp IGt5IGhvcCB0aHUgMTUgSERORCBUUCBEYSBOYW5nIGtob2EgVklJLCBIb2kgZG9uZyBkYXQgZG9p IHRlbiBkdW9uZyBUUCBkYSB0cmluaCANCmRlIGFuIGRlIG5naGkgZGF0IHRlbiBjaG8gOTUgZHVv bmcuIA0KIA0KT25nIExlIFR1IEN1b25nLCBUcnVvbmcgQmFuIFZhbiBob2EgLSBYYSBob2kgSERO RCBUUCBjaG8gaGF5LCBCYW4ga2hvbmcgZG9uZyANCnRpbmggdm9pIHZpZWMgZGF0IHRlbiAiUGh1 IERvbmciIGNobyBtb3QgY29uIGR1b25nIHRyb25nIGtodSBkYW4gY3UgSG9hIFRobywgY2hpIGRh aSANCjg3NW0sIGxvbmcgZHVvbmcga2hvbmcgYmFuZyBuaGF1LCBtb3QgZG9hbiByb25nIDcsNW0g dmEgbW90IGRvYW4gY2hpIGNvbiA1LDVtLg0KIA0KT25nIExlIFR1IEN1b25nIGdpYWkgdGhpY2g6 ICJQaHUgRG9uZyBsYSBtb3QgdHJvbmcgYm9uIHZpIHRoYW5oICJiYXQgdHUiICh0dSBiYXQgdHUp IA0KdHJvbmcgdmFuIGhvYSBWTiAoZ29tIFRhbiBWaWVuLCBMaWV1IEhhbmgsIENodSBEb25nIFR1 IHZhIFBodSBEb25nKS4gUmllbmcgUGh1IA0KRG9uZyByYXQgcGhvIGJpZW4gdHJvbmcgbmhhbiBk YW4gdmEgY28geSBuZ2hpYSBkYWMgYmlldCB0cm9uZyBjb25nIGN1b2MgZGF1IHRyYW5oIGdpdSAN Cm51b2MsIGNob25nIGdpYWMgbmdvYWkgeGFtLiBEbyB2YXksIG5lbiBkYW5oIHRlbiBQaHUgRG9u ZyBsYWkgZGUgZGF0IGNobyBtb3QgY29uIA0KZHVvbmcgeHVuZyBkYW5nIGhvbiB0cm9uZyBreSBo b3AgdG9pIi4gDQoNCmh0dHA6Ly93d3cuZGFuYW5nLmdvdi52bi9UYWJJRC82OC9DSUQvNjE5L0l0 ZW1JRC8yMjY3NC9kZWZhdWx0LmFzcHggVGhhbmggVmFuICgxMS8wNS8yMDEwKQ0KDQpEYSBOYW5n OiBMb24geG9uIGdpYW8gdGhvbmcgdHJ1YyBkdW9uZyB2ZW4gYmllbg0KDQpodHRwOi8vd3d3LmRh bmFuZy5nb3Yudm4vVGFiSUQvNjgvQ0lELzYxOS9JdGVtSUQvMjI2ODAvZGVmYXVsdC5hc3B4IEhv YWkgVGh1ICgxMS8wNS8yMDEwKQ0KIA0KRGEgTmFuZzogVGluaCB0cmFuZyBuZ3VvaSBkYW4gYmF0 IGNoYXAgbmd1eSBoaWVtIHR1IGhvcCB0aGFuaCBjaG8gY29jIGJ1b24gYmFuIHRyZW4gZHVvbmcg dGF1IA0KdmFuIGRpZW4gcmEgbmdhbmcgbmhpZW4uIFRyZW4gY3VuZyBkdW9uZyBzYXQgbWllbiBU cnVuZyBkYSB4YXkgcmEgbmhpZXUgdnUgVE5HVCBuZ2hpZW0gdHJvbmcuDQoNCmh0dHA6Ly93d3cu YmFvZGFuYW5nLnZuL3ZuL3BoYXBsdWF0LzI3NjMzL2luZGV4Lmh0bWwgcGhvMDk6MjgsIDE3LzEy LzIwMDkgKEdNVCs3KQ0KDQpEYSBOYW5nOiBCYW8gZG9uZyB2ZSBuYW4gY3VvcCBnaWF0IHRyZW4g ZHVvbmcgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzNi8y MDEwMDgzMTAxMDgxNS5hc3B4IE5ndXllbiBUdSAgMzEvMDgvMjAxMCAxOjA4IA0KDQpEYSBOYW5n OiBNb3QgbmhvbSBjb24gZG8gZGFuaCBkYXAgZGEgbWFuIDIgY29uZyBuaGFuIA0KDQpIYWkgY29u ZyBuaGFuIHRhaSBjb25nIHRyaW5oIE5oYSBtYXkgeHUgbHkgbnVvYyB0aGFpIFRobyBRdWFuZyAo UC5OYWkgSGllbiBEb25nLCANClEuU29uIFRyYSwgVFAgRGEgTmFuZykgYmkgbW90IG5ob20gY29u IGRvIGRhbmggZGFwIGRhIG1hbiB2YW8ga2h1eWEgMjkuOC4gDQoNCkNvbmcgbmhhbiBMZSBQaGkg VGh1b25nICgzNSB0dW9pLCBxdWUgVGhhbmggSG9hKSBjdWEgY29uZyB0cmluaCBOaGEgbWF5IHh1 IGx5IG51b2MgDQp0aGFpIFRobyBRdWFuZyBrZSBsYWk6IGtob2FuZyBob24gMjIgZ2lvLCBtb3Qg bmhvbSB0cmVuIDIwIHRoYW5oIG5pZW4gY3VuZyB2b2kgZ2F5IGdvYyANCnhvbmcgdmFvIGRhcCB2 byB0aXZpLCBub2kgY29tIHZhIG5oaWV1IHZhdCBkdW5nIGtoYWMgZG9uZyB0aG9pIGR1b2kgZGFu aCBjb25nIG5oYW4uIA0KY29uZyBuaGFuIFBoYW0gRHVjIFRodWFuICgzOSB0dW9pLCBxdWUgcXVh biBIYSBUaW5oKSBjaG8gYmlldCwgdHJvbmcgbHVjIG1vaSBuZ3VvaSANCmJvIGNoYXksIG9uZyB2 YSBjb25nIG5oYW4gTmd1eWVuIFZhbiBUb2FuIGJpIHRlIHh1b25nIGhvIG51b2MgdmEgYmkgY2Eg bmhvbSBjb24gZG8gDQp4b25nIHZhbyBkYW5oIGhvaSBkb25nLiANCg0KTmh1IFRoYW5oIE5pZW4g ZGEgdGhvbmcgdGluLCBjaGlldSBuZ2F5IDE0LjcsIGJvIHR1b25nIGJlIHh1IGx5IG51b2MgdGhh aSBjdWEgTmhhIG1heSANCnh1IGx5IG51b2MgdGhhaSBUaG8gUXVhbmcgZHVuZyB0aWNoIDUwMCBt ZXQga2hvaSBkYSBkbyBzYXAgY2hpIHNhdSAyIG5nYXkgU28gVGFpIA0Kbmd1eWVuIC0gTW9pIHRy dW9uZyBUUCBEYSBOYW5nIHBob2kgaG9wIHZvaSBDb25nIHR5IFROSEgga2hvYSBob2MgY29uZyBu Z2hlIG1vaSANCnRydW9uZyBRdW9jIFZpZXQgZHVhIHZhbyB2YW4gaGFuaC4gVG9hbiBibyBudW9j IHRoYWkgdHJhbiByYSBuZ29haSBtb2kgdHJ1b25nIHR1IG5oaWVuIA0KdmEgYm9jIG11aSBob2kg dGhvaSBnYXkgYnVjIHh1YyBjaG8gbmd1b2kgZGFuIGtodSB2dWMuIE5ndXllbiBuaGFuIGRvIGJl IGNodWEgeGF5IA0KZHVuZyBiYW5nIGRhIGhvYyB2YSB4aSBtYW5nIGNodSBraG9uZyBwaGFpIGtl dCBjYXUgYmUtdG9uZyBjb3QgdGhlcCBuZW4ga2hvbmcgdGhlIA0KY2hpdSBkdW9jIGFwIGx1YyBu dW9jLg0KDQpIaWVuIG5heSwgYmUgY2h1YSBudW9jIHRoYWkgYmkgc3UgY28gZGFuZyB4YXkgZHVu ZyBsYWksIG51b2MgdGhhaSBjdWEgY2FjIG5oYSBtYXkgdHJvbmcgDQpraHUgY29uZyBuZ2hpZXAg ZGljaCB2dSB0aHV5IHNhbiBUaG8gUXVhbmcgZHVvYyB0aHUgZ29tIHZhbyBiZSBjaHVhIHJpZW5n IG5odW5nIHZhbiANCnRpZXAgdHVjIGJvYyBtdWkgaG9pIG5vbmcgbmFjLiANCg0KT25nIFZvIFF1 b2MgSHVuZyAtIEdpYW0gZG9jIENvbmcgdHkgVE5ISCBraG9hIGhvYyBjb25nIG5naGUgbW9pIHRy dW9uZyBRdW9jIA0KVmlldCBjaG8gYmlldDogIkNodW5nIHRvaSBkYW5nIGxhbSB0aHUgdHVjIGRl IG5naGkgY2FjIGJlbiBsaWVuIHF1YW4ga2llbSB0cmEgY2hhdCBsdW9uZyANCmNvbmcgdHJpbmgg dmEgY2hhdCBsdW9uZyBudW9jIHRoYWksIG5ldSBuaGEgbWF5IGdheSBvIG5oaWVtIG1vaSB0cnVv bmcgdGhpIGNodW5nIHRvaSBzZSANCmNoaXUgdHJhY2ggbmhpZW0gY2h1IGtob25nIHRoZSBjaGFw IG5oYW4gdmkgdmF5IG1hIGNvbmcgbmhhbiBiaSBoYW5oIGh1bmciLiANCg0KaHR0cDovL3d3dy50 aW5tb2kudm4vRGF0LXF1b2MtcGhvbmctdGhhbmgtbmhhLWhhbmctYmFpLWRvLXhlLTEyOTc0MzMu aHRtbCBIYWkgQ2hhdSAwNTo0MyAyMy8xMi8yMDA5IA0KDQpEYSBOYW5nOiBEYXQgZG8gZGFuIGJh biBnaWFvIGRlIHBodWMgdnUgbG9pIGljaCBjb25nIGNvbmcgbGFpIGR1b2Mgc3UgZHVuZyB2YW8g bXVjIA0KZGljaCBraW5oIGRvYW5oLCB0aHUgbG9pIGNobyBtb3Qgc28gdG8gY2h1YywgY2Egbmhh biANCg0KWGF5IGtpLW90IGNobyB0aHVlDQogDQpUYWkga3kgaG9wIHRodSAxNSBIRE5EIFRQIERh IE5hbmcga2hvYSBWSUksIENodSB0aWNoIE1UVFEgVk4gVFAgRGEgTmFuZyANCk5ndXllbiBUaGFu aCBRdWFuZyBjaG8gaGF5IG5oaWV1IGN1IHRyaSBraG9uZyBkb25nIHRpbmggdm9pIHZpZWMgZGF0 IGRvIGRhbiBiYW4gZ2lhbyANCmRlIHBodWMgdnUgbG9pIGljaCBjb25nIGNvbmcgbGFpIGR1b2Mg c3UgZHVuZyB2YW8gbXVjIGRpY2gga2luaCBkb2FuaCwgdGh1IGxvaSBjaG8gbW90IA0Kc28gdG8g Y2h1YywgY2Egbmhhbi4gIA0KDQpEaWVuIGhpbmggbGEgdmllYyBuaGFuIGRhbiBwaHVvbmcgVGhh bmggS2hlIERvbmcgKGRvYyB0dXllbiBkdW9uZyBzYXQgdHUgbmdhIGJhIEh1ZSANCnZhbyBraHUg ZGFuIGN1KSBkYSBiYW4gZ2lhbyBtYXQgYmFuZyBkZSBtbyByb25nIGR1b25nIERpZW4gQmllbiBQ aHUgbyBjdWEgbmdvIHBoaWEgDQpOYW0gVFAsIG5odW5nIEJhbiBxdWFuIGx5IGR1IGFuIGxhaSB0 YW4gZHVuZyB2aWEgaGUgY2hvIGNhYyBobyB0aHVlIGJ1b24gYmFuLiAgDQoNCmh0dHA6Ly90aW50 dWMueGFsby52bi8yMC0xMjQ4Mjk5MjMvdGhhbV9uaHVuZ190cm9uZ19saW5oX3Z1Y19kYXVfdHVf eGF5X2R1bmdfdGh1X2RvYW5fdGluaF92aV90aGF0X3Rob2F0X3RpZW5fdGkuaHRtbCBMYW8gRG9u ZyAtIDMwLzA1LzIwMDkNCg0KVGhhbSBuaHVuZyB0cm9uZyBsaW5oIHZ1YyBkYXUgdHUgeGF5IGR1 bmc6IFRodSBkb2FuIHRpbmggdmksIHRoYXQgdGhvYXQgdGllbiB0aQ0KDQpodHRwOi8vdmlldGJh by52bi9YYS1ob2kvTmhpZXUtc2FpLXBoYW0tdGFpLVRyYW0teHUtbHktbnVvYy10aGFpLUtDTi1I b2EtS2hhbmgvMjA3NDkyNTIvMTU3LyBDaHUgbmhhdCwgMTQgVGhhbmcgbXVvaSAyMDA3LCAwODoz MSBHTVQrNw0KDQpEYSBOYW5nOiBOaGlldSBzYWkgcGhhbSB0YWkgVHJhbSB4dSBseSBudW9jIHRo YWkgS0NOIEhvYSBLaGFuaA0KDQpodHRwOi8vdGludHVjLnhhbG8udm4vMjAxMDYxNDA4MjM3L2to dV92dWNfYmFpX3JhY19raGFuaF9zb25fcXVhbl9saWVuX2NoaWV1X2RhX25hbmdfdW5nX3RodV9i dW5nX3BoYXRfZGFuX2hvYW5nX21hbmcuaHRtbA0KDQpEYSBOYW5nOiBVbmcgdGh1IGJ1bmcgcGhh dCwgZGFuIGhvYW5nIG1hbmcgDQoNCmh0dHA6Ly93d3cubWFpdm9vLmNvbS8yMDEwLzA4LzA2L0Jp LXRodS1EYS1OYW5nLXRhbmcteGUtbWF5LWNoby1kb2kteGUtdGhvLW4yMTAxNjcuaHRtbCAwNi8w OC8yMDEwIDEyOjE3IEdNVC02IA0KDQpEYSBOYW5nOiBEb2kgeGUgb20ga2llbSB0aGVtICJuZ2hl IiBiYXQgY3VvcA0KDQpUcm9uZyBxdWEgdHJpbmggZG8sIHJhdCBuaGlldSBsYW4gY2FjIHRoYW5o IHZpZW4gdHJvbmcgRG9pIGJpIGJvbiB0b2kgcGhhbSBjaG9uZyB0cmEgDQpxdXlldCBsaWV0LiBN b3Qgc28gYW5oIGVtIGRhIGJpIHRodW9uZywgcGhhaSB2YW8gYmVuaCB2aWVuIGNhcCBjdXUsIGRp ZXUgdHJpIG5odW5nIHNhdSBkbyANCnZhbiB0aWVwIHR1YyB0aGFtIGdpYSAiY29uZyB0YWMiLiAN Cg0KKEN1IHRyaSBxdWFuIHRhbTogS2hvbmcgcm8gIkRvaSBiYXQgY3VvcCIgbmF5IGNvIHF1eWV0 IGRpbmggdGhhbmggbGFwIA0Ka2hvbmcgdmEgY28gZHVvYyBodWFuIGx1eWVuIGRhbmcgaG9hbmcg a2hvbmc/IE5lbiBjaGFuZyB0aGFuaCBsYXAgdG8gY2h1YyANCmNob25nIHRoYW0gbmh1bmcgZG9j IGxhcCBzZSBoaWV1IHF1YSBob24gbmhpZXUuIENob25nIGR1b2MgdGhhbSBuaHVuZyB0aGkgDQpk b2kgc29uZyB2YXQgY2hhdCwgdGluaCB0aGFuIHNlIGR1b2MgY2FpIHRoaWVuLCBuYW4gdHJvbSBj dW9wIHNlIGdpYW0uVi5WLikgIA0KDQpodHRwOi8vZm9ydW0udmlldHlvLmNvbS90b3BpYy9kYS1u YW5nLXZhbi1uYW4teGUtb20tZG9hLXRheGktZGUtY3VvcC1raGFjaC01NjE5OS5odG1sIDExLTA1 LTEwIDIzOjUzIA0KDQpEYSBOYW5nOiBWYW4gbmFuIHhlIG9tIGRvYSB0YXhpIGRlICJjdW9wIiBr aGFjaCANCg0KaHR0cDovL3d3dy52dGMudm4vMi0yNTYxNjcveGEtaG9pL3RoZW0tbW90LXhlLW9t LWd1Yy1kdW9pLWNvbi1tdWEtZGFvLmh0bSAgMzEvMDcvMjAxMCAwOTozMCANCg0KRGEgTmFuZzog VGhlbSBtb3QgeGUgb20gZ3VjIGR1b2kgY29uIG11YSBkYW8gDQoNCmh0dHA6Ly9iYW5kdW9uZy52 bi9tb2R1bGUvbmV3cy92aWV3Y29udGVudC5hc3A/bGFuZ2lkPTImSUQ9MTA4MzEgMjkvNC8yMDEw LCA5OjQzDQoNCkRhIE5hbmc6IFRyYW5nIHRyb24gdHJhbiBjdW9wIHRheGksIHhlIG9tIA0KDQpD aGkgdHJvbmcgdm9uZyBtb3QgdGhhbmcgcXVhIGRhIGNvIGRlbiA0IHZ1IHRhaSB4ZSB0YXhpLCAi eGUgb20iIGJpIHV5IGhpZXAsIHRyYW4gY3VvcC4gDQoNCmh0dHA6Ly93d3cudnRjLnZuLzMxNy0y Mjk4NTUveGEtaG9pL2RvLXRoaS9iYWktcmFjLXRyaWV1LWRvLWhpZXUtcXVhLW51YS12b2kuaHRt IFRodSBIYWksIG5nYXkgMjEgdGhhbmcgMTIgbmFtIDIwMDkgDQoNCkRhIE5hbmc6IEJhaSByYWMg InRyaWV1IGRvIiwgaGlldSBxdWEgbnVhIHZvaSAoS2hhbmggU29uIC0gRGEgTmFuZykNCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAwOTMwLzIwMDkwNzI0MTk1ODEw LmFzcHggMjQvMDcvMjAwOSAxOTo1OCANCg0KRGEgTmFuZzogUGhhbiBsb24gbmhhIHZlIHNpbmgg Y3VhIGNhYyB0cnVvbmcgaG9jIG8gRGEgTmFuZyB2YW4gdHJvbmcgdGluaCB0cmFuZyBraG9uZyBk YW0gYmFvLiANCg0KaHR0cDovL215Lm9wZXJhLmNvbS90aXZpbGNkL2Jsb2cvc2hvdy5kbWwvMTc3 MDIzMTIgVHVlc2RheSwgMjEuIFNlcHRlbWJlciAyMDEwLCAwMDoyNjowMg0KDQpEYSBOYW5nOiBI aWVwIGRhbSB0cmUgZW0gMyB0dW9pICgxNi84LCB0YWkgcGh1b25nIFRobyBRdWFuZywgU29uIFRy YSwgRGEgTmFuZykgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5MTAvVmF5 LXZvbi14YXktbmhhLXZlLXNpbmgtY29uZy1jb25nLWRlLWJvLWhvYW5nLTg3NTY5MC8gMTQ6MzYs IDI3LzEwLzIwMDkgKEdNVCs3KQ0KDQpEYSBOYW5nOiBWYXkgdm9uIHhheSBuaGEgdmUgc2luaCBj b25nIGNvbmcgZGUuLi4gYm8gaG9hbmchDQoNCkhhbmcgbG9hdCBuaGEgdmUgc2luaCBjb25nIGNv bmcgbyBEYSBOYW5nIHhheSBkdW5nIGJhbmcgdm9uIHZheSBudW9jIG5nb2FpIGRhbmcgYm8gaG9h bmcgaG9hYyBiaWVuIHR1b25nIGNvbmcgbmFuZy4NCg0KaHR0cDovL2Jsb2cueXVtZS52bi94ZW0t YmxvZy9kYS1uYW5nLXZvLXRpZXAtdGF5LWNoby1jaG9uZy1oaWVwLWRhbS1jb24tZ2FpLm5ndXll bmxlcHYuMzVBN0Y0MjguaHRtbCAyNS8wOS8yMDA4IDE2OjIyIHBtDQoNCkRhIE5hbmc6IFZvIHRp ZXAgdGF5IGNobyBjaG9uZyBoaWVwIGRhbSBjb24gZ2FpIA0KDQpodHRwOi8vd3d3LnRoYW5obmll bi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzkvMjAxMDA5MjYwMDA0NTMuYXNweCBOLlAgLSBILlQg LSBILlR1YW4gliBUVFhWTiAyNi8wOS8yMDEwIDA6MDQgDQoNCkRhIE5hbmc6IEJhbiBUbyBjaHVj IFQuVSB2dWEgY29uZyBibyBxdXlldCBkaW5oIGN1YSBCYW4gQmkgdGh1IHZlIHZpZWMgZGlldSBk b25nLCANCmJvIG5oaWVtIGRvaSB2b2kgb25nIFRydW9uZyBRdWFuZyBOZ2hpYSAtIFBobyBiaSB0 aHUgVGhhbmggdXkgRGEgTmFuZy4gVGhlbyBkbywgDQpvbmcgTmdoaWEgZHVvYyBjaGkgZGluaCB0 aGFtIGdpYSBCYW4gQ2hhcCBoYW5oLCBCYW4gVGh1b25nIHZ1LCBnaXUgY2h1YyBQaG8gYmkgDQp0 aHUgRGFuZyB1eSBLaG9pIGRvYW5oIG5naGllcCBULlUsIG5oaWVtIGt5IDIwMDctMjAxMC4gDQoN Ck9uZyBOZ2hpYSBkdW9jIGRpZXUgdmUgRGEgTmFuZyBsYW0gcGhvIEJpIHRodSBuYW0gMjAwODsg dHJ1b2MgZG8gZ2l1IGNodWMgVG9uZyBHaWFtIA0KZG9jIFRvbmcgQ29uZyB0eSBDUCBYdWF0IG5o YXAga2hhdSB2YSBYYXkgZHVuZyBWaWV0IE5hbSBWSU5BQ09ORVguICANCg0KaHR0cDovL3d3dy50 aW4yNDcuY29tL3RodV9ob2lfdHVfdmluYWNvbmV4XzkwMF90aV9kb25nX3NhaV9waGFtLTYtMjE0 NjEwMzMuaHRtbCAzMS8wNy8yMDA5IC0gMDg6MzkgLSB2bk1lZGlhLnZuDQoNClZpbmFjb25leCBz YWkgcGhhbSA5MDAgdGkgZG9uZyAodGhlbyBrZXQgbHVhbiB0aGFuaCB0cmEgY3VhIENQKSANCg0K aHR0cDovL3d3dy5iYW9tb2kuY29tL0hvbWUvVHV5ZW5EdW5nL3N0b2NrYml6LnZuL0NoaS1iYW5n LW1heS12YW4tYmFuLVZpbmFjb25leC1kYS10aHUtNTEwLXR5LWRvbmcvMzA3MjE0MC5lcGkgTm9u ZyBuZ2hpZXAgVmlldCBOYW0gLSAxNi8wNy8yMDA5IDM6MDA6MDAgQ0ggVHJhbiBEaW5oIEJhDQog DQpWSU5BQ09ORVg6IENoaSBiYW5nIG1heSB2YW4gYmFuIFZpbmFjb25leCBkYSB0aHUgNTEwIHR5 IGRvbmcgDQogICAgICANCk5nYXkgMjYvMS8yMDA1LCBQaG8gdmFuIHBob25nIEhETkQgdmEgVUJO RCBUUCBIbyBDaGkgTWluaCAtIEh1eW5oIEtpbSBQaGF0IGt5IA0KdmFuIGJhbiBzbyA2OC9UQi1W UCAiVGhvbmcgYmFvIG5vaSBkdW5nIGtldCBsdWFuIGN1YSBQaG8gY2h1IHRpY2ggVUJORCBUUCAN Ck5ndXllbiBWYW4gRHVhIHZlIGNoYXAgdGh1YW4gY2hvIFRDdHkgVmluYWNvbmV4IGxhbSBjaHUg ZGF1IHR1IGR1IGFuIG5oYSBjYW8gDQp0YW5nIGtldCBob3AgdGh1b25nIG1haSBkaWNoIHZ1IFZp bmFjb25leCAtIFRoYW8gRGllbiB0YWkga2h1IGRhbiBjdSBBbiBQaHUgMyANCnRodW9jIHBodW9u ZyBUaGFvIERpZW4sIHF1YW4gMiwgVFAgSG8gQ2hpIE1pbmguLi4iLg0KDQpEaWV1IDEgY3VhIHZh biBiYW4gbmF5IGdoaTogIlRodWFuIGNodSB0cnVvbmcgY2hvIFRDdHkgWE5LIHhheSBkdW5nIFZp ZXQgTmFtIA0KKFZpbmFjb25leCkgbGFtIGNodSBkYXUgdHUgeGF5IGR1bmcgZHUgYW4gbmhhIG8g Y2FvIHRhbmcgcXV5IG1vIGRpZW4gdGljaCANCmtob2FuZyA4IGhhIHRhaSBraHUgZGFuIGN1IEFu IFBodSAzIHRodW9jIHBodW9uZyBUaGFvIERpZW4sIHF1YW4gMiIuDQoNCkdhbiAxMCB0aGFuZyBz YXUga2hpIGNvIHRob25nIGJhbyBuYXksIG5nYXkgMTQvMTAvMjAwNSwgVGh1IHR1b25nIENoaW5o IHBodSANCmNvIHF1eWV0IGRpbmggc28gMTU4OSBUVGctQ04gdmUgdmllYzogRGF1IHR1IHhheSBk dW5nIGR1IGFuIGtodSBuaGEgbyBjYW8gdGFuZyANCmtldCBob3AgdGh1b25nIG1haSBkaWNoIHZ1 IHRhaSBwaHVvbmcgVGhhbyBEaWVuLCBxdWFuIDIsIFRQSENNLiBEaWV1IDIgcXV5ZXQgDQpkaW5o IG5heSBnaGk6IEdpYW8gQm8gWGF5IGR1bmcgY2hpIGRhbyBkYXUgdHUgKFRDdHkgWE5LIHhheSBk dW5nIFZpZXQgTmFtKSANCnRodWMgaGllbiBkdSBhbiB0aGVvIGR1bmcgY2FjIHF1eSBkaW5oIGhp ZW4gaGFuaC4NCg0KTmh1IHZheSwgYmFuZyAyIHZhbiBiYW4gbmF5IFZpbmFjb25leCBkYSBjbyB0 cm9uZyB0YXkgOCBoYSBkYXQgZGUgeGF5IGR1bmcga2h1IA0KbmhhIG8gY2FvIHRhbmcga2V0IGhv cCB2b2kgdGh1b25nIG1haSBkaWNoIHZ1LiBRdXlldCBkaW5oIGN1YSBUaHUgdHVvbmcgQ2hpbmgg DQpwaHUgY29uIHF1eSBkaW5oIHJvIGNodSBkYXUgdHUgY3VhIERBIG5heSBsYSBUQ3R5IFhOSyB4 YXkgZHVuZyBWaWV0IE5hbS4NCg0KU2F1IGtoaSBjbyBxdXlldCBkaW5oIGN1YSBUaHUgdHVvbmcg Q2hpbmggcGh1LCBjaHUgZGF1IHR1IFZpbmFjb25leCBjbyB0aHVjIGhpZW4gDQpkdSBhbiB0aGVv IGR1bmcgY2FjIHF1eSBkaW5oIGhpZW4gaGFuaCBoYXkga2hvbmc/IEhheSBobyBjaGkgY2FuIGNh YyB2YW4gYmFuIGRvIA0KZGUgaG9wIHBoYXAgaG9hIDggaGEgZGF0IGRlICJtdWEgYmFuIHRyYW8g dGF5IiBraWVtIGxvaSBwaGkgcGhhcD8gRGlldSBkYWMgYmlldCANCmRhbmcgdGllYyBsYSBjaGlu aCBtb3QgdmkgcXVhbiBjaHVjIGxvbiBjdWEgVFBDSE0gbGFpIHJhIHF1eWV0IGRpbmggZGUgVmlu YWNvbmV4IA0KdGh1YyBoaWVuIGR1b2MgaGFuaCB2aSBjdWEgaG8uIERvIGNoaW5oIGxhIHZhbiBi YW4gc28gNDQyL1RCLVZQIGN1YSBWYW4gcGhvbmcgREhORCANCnZhIFVCTkQgVFBIQ00gZG8gUGhv IHZhbiBwaG9uZyBIdXluaCBLaW0gUGhhdCBreSBuZ2F5IDI3LzYvMjAwNzogIlRob25nIGJhbyBu b2kgDQpkdW5nIGtldCBsdWFuIGN1YSBQaG8gY2h1IHRpY2ggVUJORCBUUCBOZ3V5ZW4gSHV1IFRp biB2ZSBkdSBhbiBjdWEgVEN0eSBjbyBwaGFuIA0KWE5LIHhheSBkdW5nIFZpbmFjb25leCB0YWkg cGh1b25nIFRoYW8gRGllbiwgcXVhbiAyIi4gVHJvbmcgdmFuIGJhbiBuYXkgY28gZG9hbiANCnZp ZXQ6ICJQaG8gY2h1IHRpY2ggVUJORCBUUCBOZ3V5ZW4gSHV1IFRpbiBkYSBjbyB5IGtpZW4ga2V0 IGx1YW4gbmh1IHNhdTogVmUgVEN0eSANClZpbmFjb25leCBjaHV5ZW4gZ2lhbyBkdSBhbiBjaG8g Q3R5IGNvIHBoYW4gZGF1IHR1IFRoYW8gRGllbiB0cnVjIHRpZXAgbGFtIGNodSBkYXUgDQp0dS4u LiBDdHkgQ28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuIHRodWMgaGllbiBkdSBhbiwga2hvbmcgZHVv YyBjaHV5ZW4gbmh1b25nIERBIi4NCg0KTmh1bmcgdHVvbmcgdm9pIHZhbiBiYW4gNDQyL1RCLVZQ IG5heSBEQSA4IGhhIGRhdCB0YWkgcGh1b25nIFRoYW8gRGllbiwgcXVhbiAyIHNlIA0KZHVvYyBD dHkgY28gcGhhbiBkYXUgdHUgVGhhbyBEaWVuICh0aGVvIGdpYWkgdHJpbmggbGEgbW90IEN0eSAi Y29uIiBjdWEgVmluYWNvbmV4KSANCnNlIGR1b2MgaGFpICJtZSAtIGNvbiIgbmhhIFZpbmFjb25l eCBob3Agc3VjIHRodWMgdGhpIHRyb24gdmVuLiBOaHVuZyBraG9uZywgZGF5IA0KdmFuIGNoaSBs YSBtb3QgdHJvIGFvIHRodWF0IGN1YSBWaW5hY29uZXguIFRybyBhbyB0aHVhdCBjdWEgIm1lLWNv biIgbmhhIFZpbmFjb25leCANCmR1b2MgYm9jIGxvIHJvLCBraGkga2hvbmcgZGVuIG1vdCB0aGFu ZyBzYXUgdmFuIGJhbiBzbyA0NDIgY3VhIFVCTkQgVFBIQ00gZHVvYyBQaG8gDQpjaHUgdGljaCBV Qk5EIFRQIE5ndXllbiBIdXUgVGluIGNodWFuIHkgY2h1eWVuIGNodSBkYXUgdHUgZHUgYW4gdHUg VmluYWNvbmV4IHNhbmcgDQp0YXkgQ3R5IGNvIHBoYW4gZGF1IHR1IFRoYW8gRGllbiwgeHVhdCBo aWVuIG1vdCB2YW4gYmFuIG1vaSBnb2kgbGEgInRob2EgdGh1YW4iLCB0cmFuZyBkYXUgY3VhIHZh biBiYW4gbmF5IHZpZXQ6DQoNClRob2EgdGh1YW4gdmUgdmllYzogQ2h1eWVuIGdpYW8gY2hvIEN0 eSBjbyBwaGFuIGRhdSB0dSBUaGFvIERpZW4gbGFtIGNodSBkYXUgdHUgDQp0cnVjIHRpZXAgZHUg YW4ga2h1IG5oYSBvIGNhbyB0YW5nIGtldCBob3AgdGh1b25nIG1haSBkaWNoIHZ1IFZpbmFjb25l eC1UaGFvIERpZW4gDQp0YWkgcGh1b25nIFRoYW8gRGllbiwgcXVhbiAyLCBUUEhDTS4gR2l1YSBU Q3R5IGNvIHBoYW4gWE5LIHhheSBkdW5nIFZpZXQgTmFtIHZhIA0KQ3R5IGNvIHBoYW4gZGF1IHR1 IC0gdGh1b25nIG1haSBDaGkgVGhhbmggdmEgQ3R5IGNvIHBoYW4gZGF1IHR1IFRoYW8gRGllbi4N Cg0KVGlldSBkZSBjdWEgYmFuICJ0aG9hIHRodWFuIiBsYSBuaHUgdmF5IG5odW5nIG5vaSBkdW5n ICJ0aG9hIHRodWFuIiBsYWkgaG9hbiB0b2FuIGtoYWMuIA0KTmd1eWVuIHZhbiB0cmFuZyAxIGN1 YSB2YW4gYmFuIG5heSB2aWV0IG5odSBzYXU6ICJUaG9hIHRodWFuIiBuYXkgKHNhdSBkYXkgZ29p IGxhIA0KInRob2EgdGh1YW4iKSBkdW9jIGxhcCB2YW8gbmdheSAyNS83LzIwMDcgdGFpIFRQSENN LiBHaXVhIFRDdHkgY28gcGhhbiBYTksgeGF5IGR1bmcgDQpWaWV0IE5hbSB2YSBDdHkgY28gcGhh biBkYXUgdHUgLSB0aHVvbmcgbWFpIENoaSBUaGFuaCB2YSBDdHkgY28gcGhhbiBkYXUgdHUgVGhh byBEaWVuLg0KDQooU2F1IGRheSBnb2kgcmllbmcgbGEgImJlbiIgdmEgZ29pIGNodW5nIGxhICJj YWMgYmVuIikuDQoNCk11YyBBIGN1YSB2YW4gYmFuIGdvaSBsYSAidGhvYSB0aHVhbiIgdmlldDog IlZpbmFjb25leCB2YSBDaGkgVGhhbmggdmEgbW90IGNhIG5oYW4gDQpkbyBDaGkgVGhhbmggY2hp IGRpbmggc2UgdGhhbmggbGFwIG1vdCBDdHkgY28gcGhhbiBkZSBob3AgdGFjIGRhdSB0dSB4YXkg ZHVuZyB2YSANCmtpbmggZG9hbmggZHUgYW4ga2h1IG5oYSBvIGNhbyB0YW5nIGtldCBob3AgdGh1 b25nIG1haSBkaWNoIHZ1IHRhaSBwaHVvbmcgVGhhbyBEaWVuLCANCnF1YW4gMiwgVFBDSE0gKHNh dSBkYXkgZ29pIHRhdCBsYSAiZHUgYW4iKSB0cmVuIGtodSBkYXQgY28gZGllbiB0aWNoIGtob2Fu ZyA4MC4wMDBtMiAoc2F1IGRheSBnb2kgdGF0IGxhICJraHUgZGF0IikuDQoNCk11YyBCIHZpZXQ6 ICJOZ2F5IDkvMi8yMDA3LCBUaGFvIERpZW4gZGEgZHVvYyB0aGFuaCBsYXAgdGhlbyBnaWF5IGNo dW5nIG5oYW4gZGFuZyANCmt5IGtpbmggZG9hbmggc28gNDEwMzAwNjA3NiBkbyBTbyBLZSBob2Fj aCB2YSBEYXUgdHUgVFBIQ00gY2FwIG5nYXkgOS8yLzIwMDcgdm9pIA0KdG9uZyBzbyB2b24gZGll dSBsZSA5MDAgdHkgZG9uZyAoc2F1IGRheSBnb2kgbGEgInZvbiBkaWV1IGxlIikuIFRyb25nIGRv IFZpbmFjb25leCANCmdvcCAzMCUsIENoaSBUaGFuaCBnb3AgNjklIHZhIG9uZyBUcmluaCBUaGFu aCBQaG9uZyBnb3AgMSUgdm9uIGRpZXUgbGUgY3VhIFRoYW8gRGllbiIuDQoNCk11YyBDIHZpZXQ6 ICJVQk5EIFRQSENNIGNvIHZhbiBiYW4gc28gNDQyL1RCL1ZQIG5nYXkgMjcvNi8yMDA3IHZlIHZp ZWM6IENoYXAgdGh1YW4gDQpjaHV5ZW4gZ2lhbyBkdSBhbiBjaG8gVGhhbyBEaWVuIGxhbSBjaHUg ZGF1IHR1Ii4NCg0KRG9jIGt5IE11YyBBLCBNdWMgQiwgTXVjIEMgY3VhIGNhaSBnb2kgbGEgInRo b2EgdGh1YW4iIG5heSwgY2h1bmcgdGEgZGEgdGhheSBybyBjaGFuIA0KdHVvbmcgY3VhIFZpbmFj b25leCB2YSBuaHVuZyBuZ3VvaSB0cm9uZyBjdW9jIHZlIG11dSBkbyAibXVhIGJhbiBzYW5nIHRh eSIgZHUgYW4gOCBoYSANCmRhdCB0YWkgVGhhbyBEaWVuIGRhIGR1b2MgaG8gYmF5IGRhdCB0dSB0 cnVvYy4gQ2h1bmcgdGEgY2FuZyB0aGF5IHJvIGhvbiBuaHVuZyBtdXUgbWEgDQpjaHVvYyBxdXkg ZGUgaG9wIHBoYXAgaG9hIGNhYyB0aHUgdHVjIGhhbmggY2hpbmggdHJvbmcgcGhpIHZ1IGxhbSBh biBuYXkuIERvIGxhIEN0eSANCmNvIHBoYW4gZGF1IHR1IFRoYW8gRGllbiwgZ29pIGxhIEN0eSAi Y29uIiBjdWEgVmluYWNvbmV4IC0gZG9uIHZpIGR1b2MgY2h1eWVuIGdpYW8gZHUgDQphbiB0dSBD dHkgIm1lIiBWaW5hY29uZXggY2hpIGR1b2MgdGhhbmggbGFwIHNhdSBnYW4gMiBuYW0ga2hpIEN0 eSAibWUiIFZpbmFjb25leCBkdW9jIA0KVGh1IHR1b25nIENoaW5oIHBodSB2YSBVQk5EIFRQSENN IGNvIHF1eWV0IGRpbmggZ2lhbyA4IGhhIGRhdCB0YWkgVGhhbyBEaWVuIGNobyBWaW5hY29uZXgg DQpsYW0gY2h1IGRhdSB0dS4gVGh1YyBjaGF0IHZpZWMgcmEgZG9pIGNhaSBnb2kgbGEgQ3R5IGNv IHBoYW4gZGF1IHR1IFRoYW8gRGllbiB2YSB2aWVjIA0KY2h1eWVuIGdpYW8gZHUgYW4gY2hvIEN0 eSBuYXkgY3VuZyBjaGkgbGEgbW90IHRybyBiaXAgYm9tLiANCg0KVmkgbmh1IHRyb25nIE11YyBB IGN1YSBiYW4gInRob2EgdGh1YW4iIGRhIGtoYW5nIGRpbmggcm8gdHJ1b2Mga2hpIEN0eSBDbyBw aGFuIERhdSB0dSANClRoYW8gRGllbiByYSBkb2kgZHVuZyBtb3QgdGhhbmcsIFZpbmFjb25leCB2 YSBDaGkgVGhhbmggZGEga3kgaG9wIGRvbmcgaG9wIHRhYyBkYXUgdHUgDQpkdW5nIHZhbyBraHUg ZGF0IG1hIHRydW9jIGRvIGdhbiAyIG5hbSBWaW5hY29uZXggZHVvYyBjYXAuIFRodWMgY2hhdCBD dHkgY28gcGhhbiBkYXUgdHUgDQpUaGFvIERpZW4gY2hpIGxhIGR1YSBjb24gZG8gY2hpbmggQ3R5 IGNvIHBoYW4gZGF1IHR1IC0gdGh1b25nIG1haSBDaGkgVGhhbmggY3VuZyBWaW5hY29uZXggDQpk ZSByYSwgZG8gQ3R5IGRhdSB0dSAtIHRodW9uZyBtYWkgQ2hpIFRoYW5oIG5hbSBxdXllbiBjaGkg cGhvaSB2aSBobyBuYW0gdG9pIDY5JSB2b24gDQpkaWV1IGxlLiBWYSBjaGluaCBobyBkYSBraG9u ZyBjYW4gZ2lhdSBnaWVtIGRpZXUgZG8sIGtoaSB0cm9uZyBNdWMgQSBiYW4gInRob2EgdGh1YW4i IA0KdmlldCBybzogIi4uLiBUaGVvIGRvIFZpbmFjb25leCwgQ2hpIFRoYW5oIHZhIG1vdCBjYSBu aGFuIGRvIENoaW5oIFRoYW5oIGNoaSBkaW5oIHNlIA0KdGhhbmggbGFwIG1vdCBDdHkgY28gcGhh biBkZSBob3AgdGFjIGRhdSB0dSB4YXkgZHVuZyB2YSBraW5oIGRvYW5oIGR1IGFuIi4uLg0KDQpT YXUgbmh1bmcgdHJvIGx1b24gbGVvIG1hIGdpYW8ga2UgdHJlbiwgVmluYWNvbmV4IGRhIGNvIG5o dW5nIHZhbiBiYW4gcGhhcCBseSANCmN1YSBjYWMgY28gcXVhbiBjb25nIHF1eWVuIGRlIHRodWMg aGllbiB2aWVjICJiYW4gdHJhbyB0YXkiIGR1IGFuIGtodSBuaGEgbyANCmNhbyB0YW5nIGtldCBo b3AgdGh1b25nIG1haSB2YSBkaWNoIHZ1IHZvaSBkaWVuIHRpY2ggODAuMDAwbTIgdGFpIHBodW9u ZyBUaGFvIA0KRGllbiwgcXVhbiAyLCBUUEhDTSBjaG8gQ3R5IENoaW5oIFRoYW5oIHZvaSBnaWEg NDcgdHJpZXUgVVNEIChraG9hbmcgNzUwIHR5IA0KZG9uZyBWaWV0IE5hbSkuIENhbiBsdXUgeSBs YSBkZW4gbmdheSAzMC80LzIwMDgsIHRvbmcgY2hpIHBoaSBtYSBWaW5hY29uZXggZGEgDQpjaGkg Y2hvIGR1IGFuIG5heSBsYSAyNDAgdGkgZG9uZyBjaGkgYmFuZyBtb3QgdmFuIGJhbiBjbyB0ZW4g IlRob2EgdGh1YW4iIGt5IA0KbmdheSAyNS83LzIwMDcgdm9pIGRheSBkdSBjb24gZGF1IHZhIGNo dSBreSBjdWEgY2EgYmEgYmVuOiBUQ3R5IFhOSyB4YXkgZHVuZyANClZpZXQgTmFtIGRvIFRydW9u ZyBRdWFuZyBOZ2hpYSBreSwgQ3R5IGNvIHBoYW4gZGF1IHR1IFRoYW8gRGllbiBkbyBOZ2hpZW0g QmFjaCANCkh1b25nIGt5LCBDdHkgY28gcGhhbiBkYXUgdHUgdGh1b25nIG1haSBDaGkgVGhhbmgg ZG8gVHJpbmggVGhhbmggSHV5IGt5Lg0KDQpDaHVuZyB0YSBjbyB0aGUga2hhbmcgZGluaCByYW5n IGRheSBsYSBtb3QgdnUgbHVhIGRhbyBiYW5nIGR1IGFuIGRhdSB0dSBkZSBtdWEgDQpiYW4gY29u ZyB0aG8gcXVvYyBnaWEgaGV0IHN1YyB0cmFuZyB0cm9uIHZhIG5naGllbSB0cm9uZy4gTmdoaWVt IHRyb25nIG8gY2hvIA0KaG8gZGFtIGx1YSBjYSBUaHUgdHVvbmcgQ2hpbmggcGh1LiBOZ2hpZW0g dHJvbmcgdmkgc28gdGllbiBobyB0aHUgZHVvYyB0cm9uZyANCnZ1IHZpZWMgbmF5IGxlbiB0b2kg NDcgdHJpZXUgVVNELiBUcm9uZyBsdWMgdG9hbiBEYW5nLCB0b2FuIGRhbiwgdG9hbiB4YSBob2kg DQpkYW5nIHR1bmcgZ2lvLCB0dW5nIHBodXQgdHV5ZW4gY2hpZW4gdm9pIHRlIG5hbiB0aGFtIG5o dW5nLCBjaGFuZyBsZSB2dSB2aWVjIA0KbmdoaWVtIHRyb25nIG5heSwgdm9pIGNhYyBiYW5nIGNo dW5nIHBoYXAgbHkgZGEgcm8gbXVvaSBtdW9pIGxhaSBsb3QgbHVvaSBwaGFwIGx1YXQ/DQoNCmh0 dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwNy8wNC8zQjlGNTQ4Qy8gMjEv NC8yMDA3LCAxMDoxNiBHTVQrNw0KDQpWSU5BQ09ORVg6IE5ndXllbiBnaWFtIGRvYyBWaW5hY29u ZXggMTAgY2h1eWVuICdhbiB0aWVuJyB0aGF1IHBodQ0KDQpodHRwOi8vd3d3LnRoYW5odHJhLmNv bS52bi9EZWZhdWx0LmFzcHg/dGFiaWQ9NjUmbmV3c2lkPTEzOTg2IFBWIDA2LzAxLzA5DQoNClZJ TkFDT05FWDogU2FpIHBoYW0gbmdoaWVtIHRyb25nIHRyb25nIGNvIHBoYW4gaG9hIFZpbmFjb25l eCANCg0KQ2FjIGNvbmcgdHkgdGhhbmggdmllbiAtIERldSBzYWkgcGhhbSANCg0KQ2h1IHRpY2gg SG9pIGRvbmcgcXVhbiB0cmkgKEhEUVQpIHZhIFRvbmcgR2lhbSBkb2MgVG9uZyBDdHkgKHRydW9j IHRoYW5nIDcvMjAwNSkgDQp0aGFtIGdpYSB2YSBnaXUgY2h1YyBDaHUgdGljaCBIRFFUIGN1YSBu aGlldSBDdHkgY28gcGhhbi4NCg0KT25nIFBoaSBUaGFpIEJpbmgsIENodSB0aWNoIEhEUVQgVG9u ZyBDdHkga2llbSBnaXUgY2h1YyB2dSBDaHUgdGljaCBIRFFUIDkgQ3R5IGNvIHBoYW4gdGhhbmgg dmllbiB2YSAyIEN0eSBjbyBnb3Agdm9uLg0KDQpPbmcgTmd1eWVuIFZhbiBUdWFuLCBUb25nIEdp YW0gZG9jIFRvbmcgQ3R5IGtpZW0gQ2h1IHRpY2ggSERRVCAzIEN0eSBjbyBwaGFuIHRoYW5oIHZp ZW4uDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDA4LzA1Lzc4NDQ1OC8g Q2FwIG5oYXQgbHVjIDE5OjM2LCBUaHUgTmFtLCAyMi8wNS8yMDA4IChHTVQrNykNCg0KQm8gbmhp ZW0gY2FuIGJvOiAnQ29uIHZvaSB2YW4gY2h1aSBsb3QgbG8ga2ltJw0KDQpodHRwOi8vdmlldGJh by52bi9YYS1ob2kvSGEtTm9pLURhLWJhdS0yLXBoby1jaHUtdGljaC1tb2kvNDUyMDIxNDMvMTU3 LyAyMi83LzIwMDYsIDIzOjUzIEdNVCs3IA0KDQpPbmcgUGhpIFRoYWkgQmluaCwgQ2h1IHRpY2gg SG9pIGRvbmcgUXVhbiB0cmkgVmluYWNvbmV4IGR1b2MgbGFtIFBobyBjaHUgdGljaCBVQk5EIHRo YW5oIHBobyBIYSBub2kNCg0KaHR0cDovL2Jhb2RhaWRvYW5rZXQubmV0L2Rkay9tZE5ld3MuZGRr P2lkPTE0ODMwIDIzLzAzLzIwMDkgQW5oIERhby1Ib25nIFNvbg0KDQpTYWkgcGhhbSB0YWkgVG9u ZyBjb25nIHR5IFh1YXQgbmhhcCBraGF1IFhheSBkdW5nIFZpZXQgTmFtIFZpbmFjb25leA0KDQo0 IHRoYW5nIHNhdSBrZXQgbHVhbiBjdWEgVGhhbmggdHJhIENoaW5oIHBodSB2ZSBuaHVuZyBzYWkg cGhhbSB0YWkgVG9uZyBjb25nIHR5IFh1YXQgbmhhcCBraGF1IFhheSBkdW5nIFZpZXQgTmFtIChW aW5hY29uZXgpLCB0cm9uZyBkbyBjbyBraWVuIG5naGkgdGh1IGhvaSBzbyB0aWVuIGhvbiAxLjQw MCB0eSBkb25nLCB2YW4gY2h1YSBjbyBtb3QgZG9uZyBuYW8gZHVvYyBub3AgdmFvIGtobyBiYWMg bWFjIGR1IG5odW5nIHNhaSBwaGFtIHRhaSBWaW5hY29uZXggdmEgbW90IHNvIGNvbmcgdHkgY29u IGR1b2MgZGFuaCBnaWEgbGEgcmF0IG5naGllbSB0cm9uZzogQ28geSBsYW0gdHJhaSwgbGFwIGNo dW5nIHR1IGtob25nLCBjaGllbSBkb2F0IHRpZW4sIHRhaSBzYW4gY3VhIE5oYSBudW9jIHZvaSB0 b25nIGdpYSB0cmkgZ2FuIDkgdHkgZG9uZy4NCg0KWGF5IGR1bmcgc2FpIHF1eSBob2FjaCBwaGEg dm8gY2FuaCBxdWFuLCBraG9uZyBnaWFuIGtodSBkbyB0aGkgbW9pIFRydW5nIEhvYSAtIE5oYW4g Q2hpbmggDQoNCkhvbiA1LjUwMCBtMiB2aSBwaGFtIHF1eSBob2FjaA0KDQpUaGVvIGtldCBsdWFu LCBnaWEgdHJpIHF1eWVuIHN1IGR1bmcgZGF0IGRvaSB2b2kgY2FjIGRpZW4gdGljaCBWaW5hY29u ZXggeGF5IGR1bmcgDQp2aSBwaGFtIHF1aSBob2FjaCBsYSA4NCB0eSBkb25nIG5ldSBhcCB0aGVv IGtodW5nIGdpYSBkYXQgY3VhIFRoYW5oIHBobyBIYSBOb2kuIA0KTmdvYWkgcmEsIEhEUVQgVmlu YWNvbmV4IGNvbiBkdXlldCBiYW4sIGNobyB0aHVlIHRhbmcgMSBjYWMgdG9hIG5oYSBjaHVuZyBj dSBjYW8gDQp0YW5nLCB2YW4gcGhvbmcsIGN1YSBoYW5nIG1hIGtob25nIHF1YSBiYW4gZGF1IGdp YS4gVmluYWNvbmV4IGRhIGt5IGhvcCBkb25nIGtob25nIA0KZHVuZyB0aGFtIHF1eWVuLCBjaHV5 ZW4gbmh1b25nIGNobyBjYWMgY2EgbmhhbiwgdG8gY2h1YyB0b25nIGRpZW4gdGljaCBob24gMTIu MDAwbTIsIHRodSAyMzAgdHkgZG9uZy4NCg0KVmllYyBraG9uZyB0aW5oIGdpYSB0cmkgcXV5ZW4g c3UgZHVuZyBkYXQgdmFvIGdpYSB0cmkgZG9hbmggbmdoaWVwIHRoZW8gVGhhbmggdHJhIA0KQ2hp bmggcGh1IChUVENQKSBsYSBraG9uZyBwaHUgaG9wIHZvaSBjYWMgcXVpIGRpbmggY3VhIENoaW5o IHBodSwgQm8gVGFpIGNoaW5oLg0KDQpDdW5nIHRyb25nIHRob2kgZGllbSBjbyBwaGFuIGhvYSwg VmluYWNvbmV4IGRhIGJhbiAxMSB0cmlldSBjbyBwaGFuIGNobyA3IG5oYSBkYXUgDQp0dSBjaGll biBsdW9jIHZvaSBnaWEgdXUgZGFpIGdpYW0gMjAlIHRyZW4gbW90IGNvIHBoYW4gc28gdm9pIGdp YSBkYXUgZ2lhIGJpbmggcXVhbiwgDQpnYXkgdGhhdCB0aHUgdGllbiBjaG8gTmhhIG51b2MgaG9u IDUzIHR5IGRvbmcuIFRoZW8gVFRDUCwgdHJhY2ggbmhpZW0gdGh1b2MgdmUgDQpDaHUgdGljaCBI RFFUIFBoaSBUaGFpIEJpbmggdmEgVG9uZyBnaWFtIGRvYyBOZ3V5ZW4gVmFuIFR1YW4uDQoNCkxh bSB0cmFpLCBsYXAga2hvbmcgY2h1bmcgdHUsIGNoaWVtIGRvYXQgaG9uIDkgdHkgZG9uZw0KDQpW ZSB2YW4gZGUgVmluYWNvbmV4IHRodWMgaGllbiBrZXQgbHVhbiBjdWEgVFRDUCwgVG9uZyBUaGFu aCB0cmEgQ2hpbmggcGh1IFRyYW4gVmFuIA0KVHJ1eWVuIGNobyBiaWV0IFZpbmFjb25leCBjbyBw aGFuIHVuZyB0cnVvYyBrZXQgbHVhbiBub3AgaG9uIDEuNDAwIHR5IGRvbmcgc2FpIHBoYW0gDQp0 YWkgZG9uIHZpIG5heS4gVHV5IG5oaWVuLCBvbmcgVHJ1eWVuIGtoYW5nIGRpbmg6ICJUaW5oIGdv cCB0YXQgY2EgY2FjIG1hdCBraGFjIHRoaSBjb24gc28gbmF5IGNvbiBob24gbnVhIi4gDQoNCmh0 dHA6Ly93d3cuYmFvZGFuYW5nLnZuL3ZuL2NoaW5odHJpeGFob2kvMTE2NzEvaW5kZXguaHRtbCAw ODozMywgMjEvNS8yMDA4IChHTVQrNykgVGluIHZhIGFuaDogTi5UDQoNCkRhIE5hbmc6IG9uZyBU cnVvbmcgUXVhbmcgTmdoaWEgZ2l1IGNodWMgUGhvIEJpIHRodSBUaGFuaCB1eSBEYSBOYW5nIA0K DQpPbmcgVHJ1b25nIFF1YW5nIE5naGlhIHBoYXQgYmlldSB0aGUgaGllbiBxdXlldCB0YW0sIG5v IGx1YyBjdWEgbWluaCB0cm9uZyB2aWVjIA0KcGhhbiBkYXUuLi4geHVuZyBkYW5nIHZvaSBzdSB0 aW4gdHVvbmcgY3VhIEJhbiBCaSB0aHUuDQoNCihvbmcgTmdoaWEgZHVvYyBvbmcgU2FuZyB0aHVv bmcgdHJ1YyBCYW4gYmkgdGh1IGt5IHF1eWV0IGRpbmggZGlldSBkb25nIGdpdSBjaHVjIFBobyAN CkJpIHRodSBUaGFuaCB1eSwgcGh1IHRyYWNoIGNvbmcgdGFjIHhheSBkdW5nIFRDQ1MgRGFuZykN Cg0KUGhhdCBiaWV1IHRhaSBjdW9jIGhvcCwgZG9uZyBjaGkgTmd1eWVuIEJhIFRoYW5oIGJheSB0 byBzdSB2dWkgbXVuZyB0cnVvYyB2aWVjIGRvbmcgDQpjaGkgVHJ1b25nIFF1YW5nIE5naGlhIGR1 b2MgZGlldSBkb25nIGdpdSBjaHVjIFBobyBCaSB0aHUgVGhhbmggdXkgRGEgTmFuZy4NCg0KaHR0 cDovL3d3dy5raW5odGVub25ndGhvbi5jb20udm4vU3RvcnkvVmFuZGVTdWtpZW4vMjAwOS82LzE4 OTYxLmh0bWwNCg0KU2FuIGdvbGYgdmEgbmh1bmcgdGFjIGRvbmcgbW9pIHRydW9uZw0KDQpIYW5n IGNodWMgbG9haSBob2EgY2hhdCBkdW9jIHBodSBsZW4gYmUgbWF0IHNhbiBnb2xmIHZhIHRyb2kg eHVvbmcgc29uZyBzdW9pLCBhbyBoby4uLg0KDQpodHRwOi8vd3d3LnZuY2hhbm5lbC5uZXQvbmV3 cy94YS1ob2kvMjAwODEyL2t5LWhvcC10aHUtMTItaGRuZC10cC1kYS1uYW5nLWtob2EtdmlpLWNo YXQtdmFuLXRvaS1jdW5nLXRyYS1sb2ktdm9uZy12by4xMjA3MjguaHRtbCBUaHUgTmFtLCAwNCBU aGFuZyBNdW9pIEhhaSAyMDA4IA0KDQpEYSBOYW5nOiBLeSBob3AgdGh1IDEyIEhETkQgVFAgRGEg TmFuZyBraG9hIFZJSTogQ2hhdCB2YW4gdG9pIGN1bmcsIHRyYSBsb2kgdm9uZyB2byANCg0KTmdh eSA0LTEyLCB0YWkgcGhpZW4gY2hhdCB2YW4gZG9uZyB0aG9pIGN1bmcgbGEgbmdheSBsYW0gdmll YyBjdW9pIGN1bmcgY3VhIGt5IGhvcCwgDQpuaGlldSBkYWkgYmlldSAoREIpIEhETkQgZGEgbGFt ICJub25nIiBob2kgdHJ1b25nIGJvaSBuaHVuZyBjYXUgaG9pIHRydXkgdG9pIGN1bmcuIA0KUGhp ZW4gY2hhdCB2YW4gZGEga2hpZW4gbmhpZXUgbGFuaCBkYW8gY2FjIHNvLCBiYW4gbmdhbmggVFAg cm9pIHZhbyB0aGUgbHVuZyB0dW5nIA0KYnVvYyBjaHUgdG9hIHBoaWVuIGNoYXQgdmFuIHBoYWkg ImdpYWkgY3V1Ii4uLg0KDQpOb25nIHZvaSBjaHV5ZW4gc2FuIGdvbGYsIHNpZXUgdGhpIA0KDQpM aWVuIHF1YW4gZGVuIHZpZWMgVFAgcXV5IGhvYWNoIGNobyB4YXkgZHVuZyBxdWEgbmhpZXUgc2Fu IGdvbGYsIGxhbSBhbmggaHVvbmcgZGVuIA0KbW9pIHRydW9uZywgbmd1b24gbnVvYyBjdW5nIG5o dSBkYXQgc2FuIHh1YXQgbm9uZyBuZ2hpZXAgY3VhIG5ndW9pIGRhbiwgb25nIEtodW9uZyANCmNo byBiaWV0OiBkZW4gdGhvaSBkaWVtIG5heSBUUCBEYSBOYW5nIGRhIHF1eSBob2FjaCB4YXkgZHVu ZyB0YXQgY2EgYm9uIHNhbiBnb2xmIHZvaSANCnRvbmcgZGllbiB0aWNoIGtob2FuZyA1MDBoYSBn b20gc2FuIGdvbGYgSG9hIEhhaSwgRGEgUGh1b2MgdmEgaGFpIHNhbiBnb2xmIG8gSG9hIE5pbmgs IA0KInRyb25nIDUwMGhhIGRhdCB0aHUgaG9pIGxhbSBzYW4gZ29sZiBjaGkgY28ga2hvYW5nIDIw aGEgbHVhIG51b2MgbyBIb2EgSGFpIChOZ3UgSGFuaCBTb24pIGNoaWVtIDQlIi4NCg0KVHV5IG5o aWVuIERCIE5ndXllbiBRdWFuZyBOZ2EgZGEga2ljaCBsaWV0IHBoYW4gZG9pIGtoaSBjaG8gcmFu ZyBxdXkgaG9hY2ggbmh1IHZheSANCmxhIHF1YSBuaGlldSwgc2UgbGFtIGFuaCBodW9uZyBkZW4g bmd1b24gbnVvYyBuZ2FtLiAiQ2h1YSBiaWV0IGR1b2MgaGF1IHF1YSB2YSBoaWV1IA0KcXVhIG1h IGNhYyBzYW4gZ29sZiBzZSBtYW5nIGxhaSBjaG8gZGFuIERhIE5hbmcgbmh1IHRoZSBuYW8sIHRh aSBzYW8gbGFpIGRvbmcgeSBjaG8gDQpsYW0gbmhpZXUgbmh1IHZheT8gIi4gVHJ1b2MgY2F1IGhv aSBob2MgYnVhIG5heSwgY2h1IHRvYSBreSBob3AgLSBvbmcgTmd1eWVuIEJhIFRoYW5oIA0KZGEg cGhhaSBnaWFpIHRoaWNoIGhvOiB4YXkgZHVuZyBjYWMgZHUgYW4gc2FuIGdvbGYgbGEgcmF0IGNh biB0aGlldCBuaGFtIHRodSBodXQgY2FjIG5oYSBkYXUgdHUgdmFvIERhIE5hbmcuDQoNClZlIGNo byBDb25nIHR5IEJhaSBUaG8gdGh1ZSBzaWV1IHRoaSBEYSBOYW5nIGR1b2kgaGluaCB0aHVjIHRo dWUga2hvYW4sIERCIEJ1aSBEaWV1IFRoYW5oIA0Ka2hvbmcgZG9uZyB5IGtoaSBjaG8gcmFuZyBt b2kgbmFtIHRpZW4gdGh1ZSBraG9hbiBjdWEgc2lldSB0aGkgRGEgTmFuZyBsYSA2LDUgdGkgDQpk b25nIG5odW5nIGNoaSBjaHV5ZW4gdmFvIG5nYW4gc2FjaCA1IHRpLCBzbyAxLDUgdGkgZG9uZyBj b24gbGFpIGR1b2MgY2h1eWVuIHZhbyANCnF1eSB1bmcgaG8geGF5IGR1bmcgQmVuaCB2aWVuIFVu ZyBidW91IERhIE5hbmcgbWEgZG9uIHZpIGR1bmcgdGVuIHVuZyBobyBjaGluaCBsYSBDb25nIHR5 IEJhaSBUaG8uIA0KDQoiTmh1IHZheSBsYSBraG9uZyBkdW5nIGJvaSBkbyBjaGluaCBsYSB0aWVu IG5nYW4gc2FjaCB0aHUgZHVvYyB0dSB2aWVjIGNobyB0aHVlIA0Ka2hvYW4gY2h1IGtob25nIHBo YWkgdGllbiBjdWEgZG9hbmggbmdoaWVwIGJvIHJhIGRlIHVuZyBobyB4YXkgZHVuZyBiZW5oIHZp ZW4uIA0KS2hvbmcgbmVuIGxheSBuZ2FuIHNhY2ggZGUgZGFuaCBib25nIHRlbiB0dW9pIGdpdXAg Y2hvIGRvYW5oIG5naGllcCIsIG1vdCBzbyBEQiBraGFjIGN1bmcgdGFuIGRvbmcgcXVhbiBkaWVt IG5heS4NCg0KQ3VuZyBuaHUgbGFuIHRydW9jLCBsYW4gbmF5LCBjaHUgdGljaCBIRE5EIFRQIE5n dXllbiBCYSBUaGFuaCBsYWkgbGFuIG51YSBkdW5nIA0KcmEgImdpYWkgY3V1IiBjaG8gcGhvIGNo dSB0aWNoIFZvIER1eSBLaHVvbmcsIG9uZyBub2k6ICJEbyBjaGkgbGEgbW90IGNhY2ggbm9pLCBt b3QgY2FjaCBnb2kgdGVuIG1hIHRob2kiLiANCg0KVHV5IG5oaWVuIERCIEJ1aSBEaWV1IFRoYW5o IGtob25nIGRvbmcgeTogIk5ldSBUUCBjaG8gcmFuZyAxLDUgdGkgZG9uZyBsYSB0aWVuIA0KdW5n IGhvIGN1YSBkb2FuaCBuZ2hpZXAgdGhpIHBoYWkgZGlldSBjaGluaCBsYWkgYmFuZyBnaWEgdGh1 ZSBraG9hbiIuLi4NCg0K --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; charset=windows-1252; name="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Phu Trong.txt" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Phu Trong.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vbotl1 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2gg Y2h1YyBvbmcgTmd1eWVuIFBodSBUcm9uZyB0aGFtIG5odW5nLCBjbyBob2ksIHRyaSB0cmUsIHRo b2kgbmF0ICANCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcNCg0KT25nIE5ndXllbiBQaHUgVHJv bmcgLSBuZ3V5ZW4gQmkgdGh1IHRoYW5oIHV5IEhhIE5vaSANCg0KaHR0cDovL3ZuZXhwcmVzcy5u ZXQvR0wvWGEtaG9pLzIwMDkvMTIvM0JBMTcxOTQvIA0KDQpIYSBOb2k6IFRpbmggaGluaCB0aGFt IG5odW5nIHBodWMgdGFwIHZhIG5naGllbSB0cm9uZywgbmhpbiBkYXUgY3VuZyB0aGF5IA0KDQpo dHRwOi8vdmlldGJhby52bi92aS9YYS1ob2kvQmFtLXJ1bmctU29jLVNvbi1kZS14YXktYmlldC10 aHUtbmhhLXNhbi8xMDk1NzgzMi8xNTcvIDE4LzUvMjAwNiwgMTY6NDYgR01UKzcgDQoNCkhhIE5v aTogRGF0IHJ1bmcgU29jIFNvbiBiaSAiYmFtIG5hdCIgDQoNCmh0dHA6Ly93d3cudnRjLnZuL3Ry YW5nYmFuZG9jLzQ2My0yMzI3ODAvYnVjLXh1Yy10aHVvbmctbmdheS9oYS1ub2ktcXVhLWJ1aS1i YW4tcXVhLW8tbmhpZW0uaHRtIDI5LzExLzIwMDkgMjI6MTgNCg0KSGEgTm9pOiBRdWEgYnVpIGJh biwgcXVhIG8gbmhpZW0gIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDA3LzEx Lzc1NjI2OC8gMTc6MjIgMjIvMTEvMjAwNyAoR01UKzcpIA0KDQpIYSBOb2k6IFF1eSBob2FjaCBk byB0aGkgbW9pIHF1YSBtYW5oIG11bg0KDQoiQ29uZyB0YWMgcXV5IGhvYWNoIGNhYyBraHUgZG8g dGhpLCBraHUgdGFpIGRpbmggY3UgY29uIG1hbmggbXVuLCB0aGlldSBkb25nIGJvLCBjb25nIHRh YyBxdWFuIGx5IHlldSBrZW0sIHRoaWV1IGtpZW4gcXV5ZXQiLiANCg0KaHR0cDovL3ZpZXRuYW1u ZXQudm4veGFob2kvMjAwOTEwL0hOLTEtbmFtLXNhdS1kYWktaG9uZy10aHV5OS1uZ2FuLXR5LWhl dC1uZ2FwLTg3NjM0Ni8NCg0KSGEgTm9pOiAiQ3UgbXVhIGxhIG5nYXAiISBDbyBsZSBkbyBsYSBk aWV1IGRhIHRoYW5oIHF1ZW4gdm9pIG5ndW9pIGRhbiBIYSBOb2ksIGN1bmcgeSBoZXQgbmh1IHJh IGR1b25nIGxhIGdhcC4uLiBrZXQgeGUhIA0KDQpTYXUgaGFpIHRyYW4gbXVhIGxvbiBvIEhhIE5v aSwgaGFtIGR1b25nIGJvIEtpbSBMaWVuLCBkdW9jIGNobyBsYSBoaWVuIGRhaSBuaGF0IFZOLCBk ZXUgYmllbiB0aGFuaC4uLiBobywgbnVvYyBuZ2FwIHF1YSBudWEgYmFuaCB4ZS4NCg0KaHR0cDov L2RhbnRyaS5jb20udm4vYzIwL3MyMC0zOTU5NjQvbXVhLWxvbi1uaGFuLWNoaW0taGEtbm9pLXRy b25nLW5nYXAtbHV0LXZhLXVuLXRhYy5odG0gMTUvMDUvMjAxMCAtIDEyOjA4DQoNCkhhIE5vaTog TXVhIGxvbiAibmhhbiBjaGltIiBIYSBOb2kgdHJvbmcgbmdhcCBsdXQgdmEgdW4gdGFjIA0KDQpo dHRwOi8vd3d3LnRpbjI0Ny5jb20vaGFfbm9pX2hvbl8xMDAwX3RydW9uZ19ob2NfdGhpZXVfbmhh X3ZlX3NpbmgtMTEtMjE0MTMwMjAuaHRtbA0KDQpIYSBOb2k6IEhvbiAxLjAwMCB0cnVvbmcgaG9j IHRoaWV1IG5oYSB2ZSBzaW5oIA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZw0KDQpIYSBOb2k6 IE9uZyBOZ3V5ZW4gUGh1IFRyb25nIHRvdCBuZ2hpZXAgQ3UgbmhhbiBWYW4gY2h1b25nLCB0aWVu IHN5IGtob2EgaG9jIHhhIGhvaSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3Mv UGFnZXMvMjAwOTMwLzIwMDkwNzI0MTk1ODEwLmFzcHggMjQvMDcvMjAwOSAxOTo1OCANCg0KSGEg Tm9pOiBOaGEgdmUgc2luaCB0cnVvbmcgaG9jLCBuaGluIHRoYXkgbGEgc28hDQoNCk5nYXkgdGFp IEhhIE5vaSwgY3VvYyBraGFvIHNhdCBtb2kgZGF5IHZlIG5oYSB2ZSBzaW5oIHRhaSA5NjggdHJ1 b25nIGhvYyBvIGtodSB2dWMgbm9pIHRoYW5oIGNobyB0aGF5LCBjbyB0b2kgNDA3IHRydW9uZyB0 aGlldSBuaGEgdGlldSwgMjAxIHRydW9uZyB0aGlldSBuaGEgdGlldSBjaG8gaG9jIHNpbmguIA0K DQpDb24gbyBraHUgdnVjIG1vIHJvbmcgdGhpIGNvIHRvaSBnYW4gMS4wMDAgdHJ1b25nIGhvYyB0 aGlldSBuaGEgdmUgc2luaC4gQ28gaG9uIDkwJSBjYWMgdHJ1b25nIGtob25nIGNvIG5vaSBydWEg dGF5IHNhdSBraGkgaG9jIHNpbmggcmEgY2hvaSB0cm8gbGFpIGxvcCBob2MuIA0KDQpOZ2hpIGRl biBsYSBydW5nIG1pbmghIA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZw0KDQpIYSBOb2k6IE9u ZyBOZ3V5ZW4gUGh1IFRyb25nIHF1ZSBvIERvbmcgQW5oLCBIYSBOb2ksIGRhaSBiaWV1IFF1b2Mg aG9pIGtob2EgMTEsIDEyIChIYSBOb2kpICAgIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vTmV3cy9QYWdlcy8yMDEwMjMvMjAxMDA2MDUwMDQ1MDEuYXNweCAwNS8wNi8yMDEwIDA6NDUg DQoNCkhhIE5vaTogVGlldSBjdWMgZGF0IGRhaSB0YWkgRG9uZyBBbmggLSBkZW4gYnUgdHJhaSBx dXkgZGluaCAxNCB0aSBkb25nDQoNClRyb25nIHF1YSB0cmluaCB0cmllbiBraGFpIHhheSBkdW5n IGhlIHRob25nIHRob2F0IG51b2MgbXVhLCB0aHVvYyBkdSBhbiBwaGF0IHRyaWVuIGhhIA0KdGFu ZyBkbyB0aGkgQmFjIFRoYW5nIExvbmcgLSBWYW4gVHJpLCBtb3Qgc28gbGFuaCBkYW8geGEgSGFp IEJvaSBkYSBtb2MgbmdvYWMgdm9pIGNhbiANCmJvIEJhbiBxdWFuIGx5IGNhYyBkdSBhbiB0cm9u ZyBkaWVtIHBoYXQgdHJpZW4gZG8gdGhpIEhhIE5vaSAoTVBNVSkgbGFtIHNhaSBsZWNoIGhvIHNv IA0KZGUgY2hpZW0gZG9hdCB0aWVuIGRlbiBidSwgaG8gdHJvIGdpYWkgcGhvbmcgbWF0IGJhbmcu IA0KDQpUaGVvIGRpZXUgdHJhIGJhbiBkYXUsIGRhIGNvIGtob2FuZyA1MCBobyBkYW4gdGFpIHhh IEhhaSBCb2kgZHVvYyBkZW4gYnUgdHJhaSBxdXkgZGluaCANCnZvaSBzbyB0aWVuIGxlbiB0b2kg MTQgdGkgZG9uZy4gDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52bi8yMDEwMDQwMjA4MTY0MjQ1OHAw YzEwMDUvcGh1Yy10aGFtLXZ1LWRhbS1vLXRyZS1lbS1vLWRvbmctYW5oLWhhLW5vaS10b2ktbmFu Zy1hbi1uaGUuaHRtIDAyLzA0LzIwMTAsIDA4OjIyKEdNVCs3KQ0KDQpIYSBOb2k6IERhbSBvIHRy ZSBlbSBvIERvbmcgQW5oIC0gVG9pIG5hbmcgliBhbiBuaGUgDQoNCmh0dHA6Ly92aS53aWtpcGVk aWEub3JnDQoNCkhhIE5vaTogT25nIE5ndXllbiBQaHUgVHJvbmcgbGVuIGNodWMgVVZCQ1QsIEJp IHRodSB0aGFuaCB1eSBIYSBOb2kgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL3ZpL1hhLWhvaS9CYW0t cnVuZy1Tb2MtU29uLWRlLXhheS1iaWV0LXRodS1uaGEtc2FuLzEwOTU3ODMyLzE1Ny8gMTggVGhh bmcgbmFtIDIwMDYsIDE2OjQ2IEdNVCs3IA0KDQpIYSBOb2k6IEhhbmcgbG9hdCBiaWV0IHRodSwg bmhhIHNhbiwgdHJhbmcgdHJhaSBuZ2hpIGN1b2kgdHVhbi4uLiBkYSBkdW9jIHhheSBjYXQgdHJh aSBwaGVwIA0KdGFpIGtodSB2dWMgcnVuZyBwaG9uZyBobywgZGFjIGR1bmcgbyBodXllbiBuZ29h aSB0aGFuaCBTb2MgU29uIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDA5LTEwLTA4 LXRodWEtZGF0LWxhbS1zYW4tZ29sZi10aGllLXUtZGEtdC14YXktdHJ1b25nIFRyYW4gTmFtIEhh IDA1LzExLzIwMDkgMTA6MDAgR01UKzcgDQoNCkhhIE5vaTogVGh1YSBkYXQgbGFtIHNhbiBnb2xm LCB0aGlldSBkYXQgeGF5IHRydW9uZyBob2MgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9I YS1Ob2ktdHJlbi0yLTctdHJpZXUtbTItZGF0LWJvLWhvYW5nLXZhLWJpLWNoaWVtLWR1bmcvNDAx ODU3NjMvMTU3LyAwNS8wMi8yMDA3LCAwNDoxNCBHTVQrNw0KDQpIYSBOb2k6IHRyZW4gMiw3IHRy aWV1IG0yIGRhdCBibyBob2FuZyB2YSBiaSBjaGllbSBkdW5nICANCg0KaHR0cDovL3ZpZXRiYW8u dm4vS2hvYS1ob2MvSGEtTm9pLVRQSENNLVRvcC02LXRoYW5oLXBoby1vLW5oaWVtLWJ1aS1uaGF0 LXRoZS1naW9pLzcwMTAxNjM3LzE4OC8gMjYvMTAvIDIwMDcsIDIxOjMxIEdNVCs3IA0KDQpIYSBO b2ksIFRQSENNOiBUcm9uZyB0b3AgNiB0aGFuaCBwaG8gbyBuaGllbSBidWkgbmhhdCB0aGUgZ2lv aSANCg0KTyBuaGllbSBidWkgbyBoYWkgdGhhbmggcGhvIGxvbiBjdWEgVmlldCBOYW0gbGEgSGEg Tm9pIHZhIFRQLkhDTSBoaWVuIGNoaSBrZW0gY2FjIHRoYW5oIHBobyBCYWMgS2luaCwgVGh1b25n IEhhaSAoVHJ1bmcgUXVvYyksIE5ldyBEZWhsaSAoQW4gRG8pIHZhIERoYWthIChCYW5nbGFkZXNo KS4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9IYS1Ob2ktSGFuZy10eS1kb25nLXNhaS1w aGFtLXR1LW5nYW4tc2FjaC83MDA5MDUwNi8xNTcvIE5ndXllbiBUdWFuIChUaGVvIFRpZW4gUGhv bmcpIDA0LzcvMjAwNywgMDc6MjggR01UKzcgDQoNCkhhIE5vaTogSGFuZyB0eSBkb25nIHNhaSBw aGFtIHR1IG5nYW4gc2FjaA0KDQpUaG9pIGdpYW4gcXVhLCBUUCBIYSBOb2kgZGEga2llbSB0cmEg dG9hbiBibyBjYWMgZHUgYW4gY29uZyB0cmluaCBzdSBkdW5nIHZvbiBuZ2FuIA0Kc2FjaCBuaGEg bnVvYywgcmEgc29hdCA1LjA0MiBkdSBhbiBraGFjLCB0aWVuIGhhbmggMTc3IGN1b2MgdGhhbmgg dHJhIGtpbmggdGUgdmEgcGhhdCANCmhpZW4gMTAsOTc5IHR5IGRvbmcgdmEgaG9uIDUwLjAwMG0y IGRhdCBzYWkgcGhhbS4NCg0KKEFuaDogRGF0IGdpYWkgcGhvbmcgbWF0IGJhbmcgeG9uZyBjaG8g ZHUgYW4gLWRvYW4gZHVvbmcgZGFuIGxlbiBjYXUgVmluaCBUdXkgLSB0aHVvYyBxdWFuIExvbmcg QmllbikgDQoNClRoZW8gUGhvIENodSB0aWNoIFVCTkQgVFAgTGUgUXV5IERvbiAsIHZpZWMgY2h1 IGRvbmcgcGhhdCBoaWVuIHRpZXUgY3VjIHRoYW0gbmh1bmcgbyBjbyBzbyBjb24gaXQsIGNodSB5 ZXUgZG8gYmFvIGNoaSBwaGF0IGhpZW4uDQoNCkxhbmcgcGhpLCBzYWkgcGhhbSBuaGlldSAtIHRo dSBob2kgcXVhIGl0IA0KDQo2IHRoYW5nIGRhdSBuYW0sIGtpbmggdGUgSGEgTm9pIHRhbmcgdHJ1 b25nIGNhbyAtIHRvbmcgc2FuIHBoYW0gbm9pIGRpYSAoR0RQKSB1b2MgdGFuZyANCjExLDIlLCBs YSBtdWMgdGFuZyB0cnVvbmcgY2FvIG5oYXQgdHJvbmcgbmh1bmcgbmFtIGdhbiBkYXkuVGhlIG5o dW5nLCBjb25nIHRhYyBjYWkgDQpjYWNoIGhhbmggY2hpbmggY29uIG1vdCBzbyBoYW4gY2hlOyB2 aSBwaGFtIHRyYXQgdHUgeGF5IGR1bmcsIHF1YW4gbHkgZGF0IGRhaSBkYW5nIGxhIA0KdmFuIGRl IGJ1YyB4dWMuDQoNClRob2kgZ2lhbiBxdWEsIHRoYW5oIHBobyBkYSBraWVtIHRyYSB0b2FuIGJv IGNhYyBkdSBhbiBjb25nIHRyaW5oIHN1IGR1bmcgdm9uIG5nYW4gc2FjaCANCm5oYSBudW9jLCBy YSBzb2F0IDUuMDQyIGR1IGFuIGtoYWMsIHRpZW4gaGFuaCAxNzcgY3VvYyB0aGFuaCB0cmEga2lu aCB0ZSB2ZSBkYXUgdHUgeGF5IA0KZHVuZywgdGFpIGNoaW5oIG5nYW4gc2FjaCwgcXVhbiBseSBz dSBkdW5nIGRhdCBkYWkuIEtldCBxdWEsIGRhIHBoYXQgaGllbiAxMCw5NzkgdHkgZG9uZyANCnZh IGhvbiA1MC4wMDBtMiBkYXQgc2FpIHBoYW0uDQoNClJpZW5nIDYgdGhhbmcgZGF1IG5hbSBuYXks IGNvIHF1YW4gY2h1YyBuYW5nIHRpZW4gaGFuaCA2NiBjdW9jIHRoYW5oIHRyYSwgYnVvYyBkYXUg DQpwaGF0IGhpZW4sIGtpZW4gbmdoaSB0aHUgbm9wIG5nYW4gc2FjaCA0LDQ3OSB0eSBkb25nIHNh aSBwaGFtLg0KDQpRdWEgY29uZyB0YWMgZ2lhaSBxdXlldCBraGlldSBuYWkgdG8gY2FvLCBwaGF0 IGhpZW4gc2FpIHBoYW0sIGtpZW4gbmdoaSB0aHUgaG9pIDUsNjY1IHR5IA0KZG9uZyB2YSBoYW5n IG5nYW4gbWV0IHZ1b25nIGRhdC4gQ3VuZyBkbyBzYWkgcGhhbSwgY28gODkgY2FuIGJvIGJpIGt5 IGx1YXQ7IGRvbmcgdGhvaSANClV5IGJhbiBLaWVtIHRyYSBUaGFuaCB1eSBwaGF0IGhpZW4gMjAg ZGFuZyB2aWVuIGNvIGRhdSBoaWV1IHZpIHBoYW0sIDE2MyBkYW5nIHZpZW4gYmkgDQpreSBsdWF0 Lg0KDQoiVGh1YyB0ZSBsYW5nIHBoaSBsb24gaG9uIG5oaWV1LiBCYW8gY2FvIGNvbiBxdWEgY2h1 bmcgY2h1bmcsIG1vIG5oYXQsIGNodWEgY2hpIHJvIA0KZHVvYyBjbyBiYW8gbmhpZXUgZHUgYW4g InRyZW8iLCBnYXkgbGFuZyBwaGkgcmEgc2FvIiAtIFZpZW4gdHJ1b25nIFZpZW4gS1NORCBUUCAN Ck5ndXllbiBWYW4gS2hhbmggbmhpbiBuaGFuLg0KDQpDb24gdGhlbyBiYSBOZ3V5ZW4gVGhpIE5n b2MgTWluaCAtIEJpIHRodSBRdWFuIHV5IFRoYW5oIFh1YW4sIGxhbiBjaGllbSBkYXQgY29uZyAN CmRhbmcgcmF0IGJ1YyB4dWMgdmEgZG8gY2hpbmggbGEgdGhhbSBuaHVuZy4gIk5odW5nIHRyZW4g ZGlhIGJhbiBxdWFuLCBjaHVhIGNvIHZ1IHZpZWMgDQpuYW8gYmkgdG9hIGFuIHhldCB4dSIgLSBi YSBNaW5oIHRodWEgbmhhbi4NCg0KIkhhbmcgdHkgZG9uZyBzYWkgcGhhbSB0dSBuZ2FuIHNhY2gg ZHVvYyBwaGF0IGhpZW4gbmh1bmcgdGh1IGhvaSBsYWkgcXVhIGl0LiBUaGFuaCBwaG8gDQpraWVu IG5naGkgdGh1IGhvaSA0LDQ3OSB0eSBkb25nLCBuaHVuZyBzbyB0aHUgZHVvYyBjaGkgbGEgNTc2 IHRyaWV1IGRvbmcgLSBjaGkgYmFuZyBob24gDQoxMCUgc28gdGllbiB0aGF0IHRob2F0IHR1IGRh dSBuYW0gZGVuIG5heSIgLSBPbmcgTmd1eWVuIFZhbiBUcmluaCAtIEJpIHRodSBIdXllbiB1eSAN CkdpYSBMYW0gcGhhbiB0aWNoLg0KDQpDdW5nIG5odSB2YXksIHRoZW8gb25nIFRyaW5oLCBzbyB0 aWVuIHNhaSBwaGFtIG5hbSAyMDA2IGhvbiA1IHR5IGRvbmcsIG5odW5nIHNvIHRodSANCmhvaSBk dW9jIGJhbyBuaGlldSBraG9uZyB0aGF5IGJhbyBjYW8hDQoNCkR1IGFuIHRyb25nIGRpZW0gY2hh bSAtIGtob25nIGFpIGNoaXUgdHJhY2ggbmhpZW0NCg0KVGhlbyBCYW8gY2FvIHZlIGNvbmcgdGFj IHBob25nIGNob25nIHRoYW0gbmh1bmcsIGxhbmcgcGhpIDYgdGhhbmcgZGF1IG5hbSwgdGhhbmgg cGhvIA0KdGh1IGx5IGRpZXUgdHJhIDE0IHZ1LCAzNCBkb2kgdHVvbmcgdGhhbSBuaHVuZywgZ2F5 IHRoaWV0IGhhaSAxMiw5NjUgdHkgZG9uZywgZGEgdGh1IGhvaSANCjEsMzIwIHR5IGRvbmcgKGRh dCAxMCwyICUpLg0KDQpUcm9uZyBkbzogdGhhbSBvIHRhaSBzYW4gOSB2dSwgbmhhbiBob2kgbG8g MyB2dSwgbG9pIGR1bmcgY2h1YyB2dSBxdXllbiBoYW4gMiB2dS4gTmdvYWkgDQpyYSwgdGhlbyBi YW8gY2FvIGN1YSBUQU5EIFRQIGRhIHhldCB4dSAzNSB2dSwgMjAyIGRvaSB0dW9uZyBwaGFtIHRv aSB0aGFtIG5odW5nLg0KDQpUaGVvIGJhbyBjYW8gY3VhIHRoYW5oIHBobywgdW9jIGhldCBxdXkg Mi8yMDA3LCBraG9pIGx1b25nIHRodWMgaGllbiBjYWMgZHUgYW4gdHJvbmcgDQpkaWVtIGxhIDcy NCB0eSBkb25nLCBjaGkgZGF0IDIxJSBrZSBob2FjaC4gR2lhIHRyaSBraG9pIGx1b25nIHRodWMg aGllbiB2YSBnaWFpIG5nYW4gdGhhcCANCmRvIGNvbmcgdGFjIEdQTUIsIHRhaSBkaW5oIGN1IGNv biBuaGlldSB2dW9uZyBtYWMuIA0KDQpUaGVvIGtlIGhvYWNoLCBjYXUgVmluaCBUdXkgZHVvYyBn aWFvIDEuNTYzIHR5IGRvbmcsIG5odW5nIGNoaSB0aHVjIGhpZW4gZHVvYyAxNDAgdHkgDQpkb25n LCBnaWFpIG5nYW4gZHVvYyA5NSB0eSBkb25nOyBkdW9uZyA1IGtlbyBkYWkgZ2lhaSBuZ2FuIGR1 b2MgNDUvODUwIHR5IGRvbmcgdGhlbyBrZSANCmhvYWNoLg0KDQpUcm9uZyBraGkgZG8sIGhhbmcg bG9hdCBkdSBhbiBjaGFtIHRpZW4gZG8sIGNodWEgZHVvYyBraG9pIGNvbmcgbmh1OiBEdW9uZyB2 YW5oIGRhaSAxIA0KZG9hbiBPIERvbmcgTWFjIC0gZGUgTmd1eWVuIEtob2FpLCBPIENobyBEdWEg LSBMYW5nIEhhOyBjdW0gY29uZyBuZ2hpZXAgU29jIFNvbiANCmNodWEgZHV5ZXQgeG9uZyBkdSBh biBoYSB0YW5nIGt5IHRodWF0OyBkdSBhbiBDdWEgbyBwaGlhIG5hbSBjaHVhIHBoZSBkdXlldCBw aHVvbmcgDQphbiBraWVuIHRydWMuDQoNClRoYW5oIHBobyBjdW5nIGNoaSBybywgbmhpZXUgZHUg YW4ga2hvbmcgY2hpIGNoYW0gbWEgY28gdGhlIHNlIGtob25nIHRoZSBob2FuIHRoYW5oIA0KdGll biBkbyBkYW5nIGt5IHRyb25nIG5hbSBuYXkgdHJvbmcgZG8gY28gY2F1IFZpbmggVHV5LCBjYXUg TmhhdCBUYW4sIGR1b25nIHNhdCB0aGkgDQpkaWVtIE5ob24tZ2EgSGEgTm9pLiANCg0KTmhpZXUg ZGFpIGJpZXUgY2hvIHJhbmcgY2FuIHBoYWkgeGVtIGxhaSBuYW5nIGx1YyBjdWEgY2FjIG5oYSB0 aGF1IGN1bmcgbmh1IHZpZWMgZGlldSANCmhhbmggY3VhIGNhYyBiYW4gcXVhbiBseSBkdSBhbi4g IlF1YW4gZ2lhaSBwaG9uZyBtYXQgYmFuZyBkdW9uZyBkYW4gbGVuIGNhdSBWaW5oIFR1eSANCnR1 IHJhdCBsYXUsIG5odW5nIGNoYW5nIHRoYXkgbmhhIHRoYXUgbGFtIGdpISIgLSBCaSB0aHUgUXVh biB1eSBMb25nIEJpZW4gVHJhbiBWYW4gDQpUaGFuaCBub2kuDQpDdW5nIHRoZW8gb25nIFRoYW5o LCBjb25nIHRhYyB0YWkgZGluaCBjdSB0YWkgZHUgYW4gZHVvbmcgNSBxdWEgY2hhbSwga2hpZW4g ZGFuIHJhdCBidWMgDQp4dWMuIFRoZSBuaHVuZywgbW9pIHZpZWMga2hvbmcgZHVvYyBiYW8gY2Fv IGRheSBkdSBsZW4gdGhhbmggcGhvLiAiUGhhaSBjaGkgcm8gY2hhbSANCnRpZW4gZG8gdmkgc2Fv LCBhaSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0uIEtob25nIHRoZSBjaGkgbm9pIGNodW5nIGNodW5n IiAtIE9uZyBUaGFuaCBraWVuIG5naGkuIA0KDQpodHRwOi8veWtpZW4ud29yZHByZXNzLmNvbS8y MDA3LzEwLzEwL3RoJUM2JUIwLXBoJUUxJUJBJUEzbi0lRTElQkElQTNuaC12JUUxJUJCJTgxLWNh Yy12JUUxJUJCJThCLWxhbmgtZCVFMSVCQSVBMW8tYyVFMSVCQiVBN2EtdHBoYS1uJUUxJUJCJTk5 aS1uZ3V5JUUxJUJCJTg1bi1xdSVFMSVCQiU5MWMtdHJpJUUxJUJCJTg3dS1kJUUxJUJCJTk3LWhv YW5nLWFuLWxlLXF1eS1kb24tdmEtcGglRTElQkElQTFtLXEvIChCYW8gQ0EgVFAgSENNIDgvMTEv MjAwNSkNCg0KSGEgTm9pOiBEdSBhbiB4YXkgZHVuZyBoYSB0YW5nIGt5IHRodWF0IHh1bmcgcXVh bmggSG8gVGF5IC0gVGhhdCB0aG9hdCBuaGlldSB0eSBkb25nIA0KDQpodHRwOi8veWtpZW4ud29y ZHByZXNzLmNvbS8yMDA3LzEwLzEwL3RoJUM2JUIwLXBoJUUxJUJBJUEzbi0lRTElQkElQTNuaC12 JUUxJUJCJTgxLWNhYy12JUUxJUJCJThCLWxhbmgtZCVFMSVCQSVBMW8tYyVFMSVCQiVBN2EtdHBo YS1uJUUxJUJCJTk5aS1uZ3V5JUUxJUJCJTg1bi1xdSVFMSVCQiU5MWMtdHJpJUUxJUJCJTg3dS1k JUUxJUJCJTk3LWhvYW5nLWFuLWxlLXF1eS1kb24tdmEtcGglRTElQkElQTFtLXEvMTAuMTAuMjAw NyBUcmFuIFZhbiBUcmFuDQoNClRodSBjdWEgY3UgVHJhbiBWYW4gVHJhbiBwaGFuIGFuaCB2ZSBj YWMgdmkgbGFuaCBkYW8gY3VhIFRQLkhhIE5vaTogKHRyaWNoKSANCg0KVnUgZGFuIGtoaWV1IGtp ZW4gZHUgYW4ga2UgSG8gVGF5IHRhaSBjdW0gMyBYdWFuIExhIGNvIGxpZW4gcXVhbiBkZW4gZGF0 IGRpIHRpY2ggbWEgDQpjYWMgb25nIG8gVGhhbmggcGhvIGNoaWVtIHF1YSBUNzkgdmEgdHJ1b25n IG5naGllcCB2dSBnaWFvIHRob25nIHZhbiB0YWksIGNhcCBzbyBkbyBkZSANCnhheSBraGFjaCBz YW4uLi4sIHBoYW4gbG8gbWF0IHRpZW4gZGUgY2hpYSBjaGFjIG5oYXUsIHRoZW8gbmh1IG9uZyBQ aGFtIFZhbiBUb3QsIGNhbmggDQpzYXQgZGlldSB0cmEgY29uZyBhbiBxdWFuIFRheSBIbyBkYSBu b2kgdm9pIGRhbiBuYW0gMjAwNDogImtodSBkYXQgbmF5IGNvIHN1YXQgY3VhIG9uZyANCk5ndXll biBQaHUgVHJvbmcgLSBVeSB2aWVuIEJvIGNoaW5oIHRyaSwgQmkgdGh1IHRoYW5oIHV5LCBuZW4g ZGFuIG8gZGF5IGR1bmcgY28gbWEgZG9pIi4gDQoNCmh0dHA6Ly9lLWluZm8uY29tLnZuL3ZuL2lu ZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdGFzaz0gdmlldyZpZD0yMjY0MiZJdGVtaWQ9OTkN Cg0KSGEgTm9pOiBPbmcgTmd1eWVuIFBodSBUcm9uZyAtIEJpIHRodSBUaGFuaCB1eSwgdGhpZXUg bmFuZyBsdWMgY29uZyB0YWM7IGtob25nIGhvYW4gDQp0aGFuaCBuaGllbSB2dTsgZGUgY2hvIHRo YW0gbmh1bmcgaG9hbmggaGFuaDsgdGFpIHNhbiBjb25nIGJpIHN1IGR1bmcgdHJhaSBwaGVwLCBz YWkNCm11YyBkaWNoLCBnYXkgbGFuZyBwaGkgbG9uOyB2YW4gdW5nIGR1bmcgbGVuIGNodWMgDQoN Cmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNi9UcmVvLW5nb2UtZGFpLWJpZXUt a2llbS1uaGllbS1nYXAtY3UtdHJpLWNodXllbi10cmFjaC05MTg3MTYvDQoNCk9uZyBOZ3V5ZW4g UGh1IFRyb25nIGxlbiBjaHVjIFVWQkNULCBjaHUgdGljaCBRdW9jIEhvaSANCg0KaHR0cDovL2Ut aW5mby5jb20udm4vdm4vaW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ0YXNrPXZpZXcmaWQ9 MjI2NDImSXRlbWlkPTk5DQoNCkhhIE5vaTogR2FuIG5odSBraG9uZyBjbyBraGEgbmFuZyB0dSBw aGF0IGhpZW4gdGhhbSBuaHVuZyANCg0KLSBMYW5oIGRhbyBUUCBIYSBOb2kgdGh1YSBuaGFuIG1v dCB0aHVjIHRyYW5nIGNhYyB2dSB0aGFtIG5odW5nIGJpIGxvIGRpZW4gaGF1IGhldCANCmRldSBk byBuZ3VvaSBkYW4gdmEgYmFvIGNoaSBwaGFuIGFuaCwgdG8gY2FvLiBHYW4gbmh1IGtob25nIGNv IHZpZWMgdHUgcGhhdCBoaWVuIA0KY3VhIGNhYyBjYXAgdXkgRGFuZyB2YSBjbyBxdWFuLg0KDQot IERlbiBuYXkgKDI1LzEyLzIwMDkpIHRvYW4gdGhhbmggcGhvIGNvIDIzIGRvbiB2aSBkZSB4YXkg cmEgdGhhbSBuaHVuZywgZGEgeHUgDQpseSBreSBsdWF0IDI0IGNhbiBibywgY29uZyBjaHVjIHZp IHBoYW07DQoNCi0gUXVhIGdpYWkgcXV5ZXQga2hpZXUgbmFpLCB0byBjYW8gZGEga2llbiBuZ2hp IHRodSBob2kgY2hvIE5oYSBudW9jIGhvbiAzMjIgdHkgZG9uZzsNCg0KLSBDbyBjaGUgY3VhIGNo dW5nIHRhIGxhbSBjaG8gbmhpZXUgbmd1b2kgZ2lhdSBsZW4gbW90IGNhY2ggYmF0IHRodW9uZzsN Cg0KLSBMYW5nIHBoaSB0cm9uZyB0byBjaHVjIGhvaSBob3AsIHRvIGNodWMgbmdheSBsZSwgZGkg dGhhbSBxdWFuLCBob2MgdGFwIHRyb25nIG51b2MgdmEgbnVvYyBuZ29haTsNCg0KLSBUaW5oIHRy YW5nIGRlIGRhdCBob2FuZyBob2EgdHJvbmcgY2FjIGR1IGFuIHRyZW8sIHN1IGR1bmcgZGF0IHZh IG5oYSBzYWkgbXVjIGRpY2gsIA0KY2hvIHRodWUgdHJhaSBwaGVwIGdheSBsYW5nIHBoaSBsb24g Y2h1YSBkdW9jIGtoYWMgcGh1YyB0cmlldCBkZS4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9I b21lL0xhb0Rvbmcvdm5lY29ub215LnZuL1RwSENNLXZhLUhhLU5vaS10cm9uZy1Ub3AtMjAtdGhh bmgtcGhvLWNvLW1vaS10cnVvbmctbGFtLXZpZWMta2VtLW5oYXQvMjU0ODIxOC5lcGkNCg0KSGEg Tm9pIHRyb25nIFRvcCAyMCB0aGFuaCBwaG8gY28gbW9pIHRydW9uZyBsYW0gdmllYyBrZW0gbmhh dCANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQv MzA2MzU0L2NoYXQtbHVvbmcteGF5LWR1bmcta2VtLWhlLXRob25nLXRob2F0LW51b2MtaG9uZy5o dG0gMjIvMDEvMjAxMCAwNzozMiANCg0KSGEgTm9pOiBDaGF0IGx1b25nIHhheSBkdW5nIGtlbSwg aGUgdGhvbmcgdGhvYXQgbnVvYyBob25nICANCg0KRG8gY2hhdCBsdW9uZyB4YXkgZHVuZyBrZW0s IGhlIHRob25nIHRob2F0IG51b2MgaG9uZywgY3Ugc2F1IG1vaSB0cmFuIG11YSwgDQpuaGlldSBu aGEgY2h1bmcgY3UgdGFpIEtodSB0YWkgZGluaCBjdSA1LDNoYSBEaWNoIFZvbmcgKHF1YW4gQ2F1 IEdpYXkpIGxhaSANCm5nYXAgdHJvbmcgbnVvYyBiYW4gdHUgYmUgcGhvdCBkZW5oIGxlbiwgbyBu aGllbSBuZ2hpZW0gdHJvbmcuIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIwLTQwODYz Ny9sYW0taGV0LWNhY2gtaGEtbm9pLXZhbi1iYXQtbHVjLXZvaS1tdWEtbG9uLmh0bSAxMy8wNy8y MDEwIC0gMTU6MjINCg0KSGEgTm9pOiBMYW0gaGV0IGNhY2gsIEhhIE5vaSB2YW4gImJhdCBsdWMi IHZvaSBtdWEgbG9uIA0KDQpHaWFtIGRvYyBTbyBYYXkgZHVuZyBIYSBOb2kgRG8gWHVhbiBBbmgg Y2hvIHJhbmcsIHRoYW5oIHBobyBkYSBsYW0gaGV0IG5odW5nIGJpZW4gcGhhcCBjbyB0aGUsIG5o dW5nIGtoYSBuYW5nIA0KdGhvYXQgbnVvYyBjdWEgSGEgTm9pIGNvIGJhbiBjaHVhIGRhcCB1bmcg ZHVvYyB0cmFuIG11YSBuaHUgc2FuZyBuYXkuLi4gbXVhIG5odSBzYW5nIG5heS4NCg0KaHR0cDov L3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzE0MDEyMzMyLmFz cHggQW4gTmd1eWVuIDE0LzA3LzIwMTAgMToyMyANCg0KSGEgTm9pOiBIZXQgY2FjaCwgYm8gdGF5 IHZvaSBuZ2FwDQogIA0KVHJhIGxvaSBiYW8gY2hpIHZlIHRpbmggdHJhbmcgbmdhcCBzYXUgdHJh biBtdWEgbmdhbiBzYW5nIHF1YSwgb25nIEdpYW0gZG9jIENvbmcgdHkgDQp0aG9hdCBudW9jIEhh IE5vaSByYXQgdGhhdCB0aGEgbWEgcmFuZzogIkNvIGdpYW8gY2hvIGNodW5nIHRvaSAxLjAwMC0y LjAwMCB0aSBkb25nLCBiYW8gDQpwaGFpIGxhbSB0aGUgbmFvIGRlIG5vaSBkbyBraG9pIG5nYXAg bW9pIGtoaSBtdWEgbG9uIHRoaSBjaHVuZyB0b2kgY3VuZyBjaGl1Ii4gDQpCZW4gaGFuaCBsYW5n IGt5IGhvcCBIRE5EIFRQIEhhIE5vaSBzYW5nIHF1YSwgR2lhbSBkb2MgU28gWGF5IGR1bmcsIGNv IHF1YW4gY2h1IA0KcXVhbiBjdWEgQ29uZyB0eSB0aG9hdCBudW9jIGN1bmcgdGh1YSBuaGFuLCBk YSBsYW0gaGV0IGNhYyBiaWVuIHBoYXAgY28gdGhlIG1hIEhhIE5vaSANCnZhbiBuZ2FwLiBEaWV1 IG5heSB0aGUgaGllbiBzdSBiZSB0YWMgY3VhIGNvIHF1YW4gY2h1YyBuYW5nIEhhIE5vaSB0cnVv YyB2aWVjIGdpYWkgDQpxdXlldCB0cnVjIHRpZXAgdGluaCB0cmFuZyB1bmcgbmdhcCBjdWEgVFAu DQoNCkhhIE5vaSBsYSBUUCBkYXUgdGllbiBjdWEgY2EgbnVvYyB2YXkgdm9uIG51b2MgbmdvYWkg KGhhbmcgdHJhbSB0cmlldSBVU0QpIGRlIHRodWMgDQpoaWVuIG1vdCBkdSBhbiBjaG9uZyBuZ2Fw IHJhdCBob2FuaCB0cmFuZy4gVmFvIHRob2kgZGllbSBiYXQgZGF1IHRodWMgaGllbiBkdSBhbiBu YXkgDQoobmFtIDE5OTUpLCBsYW5oIGRhbyBUUCBraGkgZG8gdHV5ZW4gYm8gcmFuZyBzZSAieG9h IG5nYXAiIHZhbyBuYW0gMjAwMC4gTmh1bmcgdHJlbiANCnRodWMgdGUsICJiYW4gZG8gZGVuIiB2 ZSBuaHVuZyBkaWVtIG5nYXAgZGEgZHVvYyB4YWMgbGFwIHR1IGxhdSB2YSBzYXUgbmhpZXUgbmFt IG5vIA0KdmFuIGNvbiBuZ3V5ZW4gbmh1IHZheSwgdGhhbSBjaGkgdGluaCB0cmFuZyBuZ2FwIGN1 YyBibyB0YWkgbW90IHNvIGtodSB2dWMgKGRhYyBiaWV0IGxhIA0Ka2h1IGRvIHRoaSBtb2kpIGNv biB0cm8gbmVuIG5hbmcgbmUgaG9uLiANCg0KRHUgYW4gdGhvYXQgbnVvYyBIYSBOb2kgdm9pIHRv bmcgbXVjIGRhdSB0dSBjYSAyIGdpYWkgZG9hbiBsYSA1NTAgdHJpZXUgVVNELCBkdSBraWVuIHNl IA0KaG9hbiB0aGFuaCB2YW8gbmFtIDIwMTMsIGNodSB5ZXUgdGFwIHRydW5nIHZhbyB2aWVjIG5h byB2ZXQgY2FjIGNvbiBzb25nLCBobyB0cm9uZyBub2kgDQp0aGFuaCwgbmFuZyBjb25nIHN1YXQg dHJhbSBib20gWWVuIFNvLi4uIE5odW5nIHZhbiBkZSBsYSBkdSBhbiBuYXkgdGh1YyBoaWVuIHRy ZW4gY28gDQpzbyBxdXkgaG9hY2ggdGhvYXQgbnVvYyBub2kgZG8gZG8gQ28gcXVhbiBob3AgdGFj IHF1b2MgdGUgTmhhdCBCYW4gKEpJQ0EpIGdpdXAgSGEgDQpOb2kgbGFwIG5hbSAxOTk1LiBUcm9u ZyBraGksIHR1IGRvIGRlbiBuYXkgcXV5IGhvYWNoIGRvIHRoaSBIYSBOb2kgZGEgbmhpZXUgbGFu IGRpZXUgDQpjaGluaCBuaHVuZyBxdXkgaG9hY2ggaGUgdGhvbmcgdGhvYXQgbnVvYyB0aGkga2hv bmcuIA0KDQpEb24gZ2lhbiBuaGF0IGxhLCB0cnVvYyBkYXksIEhhIE5vaSBkaW5oIGh1b25nIHBo YXQgdHJpZW4gdmUgcGhpYSBiYWMgbmh1bmcgaGllbiBuYXkgZGEgDQpwaGF0IHRyaWVuIHZlIHBo aWEgdGF5ICh2YSBjb24gbW8gcm9uZyByYSB0aW5oIEhhIFRheSBjdSksIHRyb25nIGtoaSBkdSBh biB0aG9hdCBudW9jIChrZXQgDQp0aHVjIGdpYWkgZG9hbiAxKSBjaGkgZ2lvaSBoYW4gYm9pIHNv bmcgVG8gTGljaCB2YSBzb25nIEhvbmcuIFNlIG5oaWV1IG5ndW9pIGdpYXQgbWluaCANCmtoaSBi aWV0IHJhbmcsIGNhYyBraHUgZG8gdGhpIG1vaSBuaHUgTXkgRGluaCwgVHJ1bmcgSG9hIC0gTmhh biBDaGluaCwgRGluaCBDb25nLCANCkxpbmggRGFtIGtob25nIGhlIG5hbSB0cm9uZyBxdXkgaG9h Y2ggdGhvYXQgbnVvYyBoaWVuIHRhaSBjdWEgSGEgTm9pLiBOZXUgdGllcCB0dWMgcXV5IGhvYWNo IA0KdmEgcGhhdCB0cmllbiBkbyB0aGkgdGhlbyBraWV1IG1hbmggYWkgbmF5IGxhbSwga2hvbmcg dGluaCB0b2FuIGRlbiBraG9wIG5vaSANCmhhIHRhbmcgY2h1bmcgdGhpIHRpbmggdHJhbmcgbmdh cCB1bmcgc2Uga2hvbmcgYmFvIGdpbyBkdW9jIGdpYWkgcXV5ZXQuDQoNClN1IHBoYXQgdHJpZW4g cXVhIG11YyBjdWEgbW90IGRvIHRoaSBuZW4gdHJvbmcga2hpIGhlIHRob25nIGhhIHRhbmcga2hv bmcgdHVvbmcgeHVuZyANCmN1bmcgZGFuZyBkYXkgSGEgTm9pIHZhbyBiZSB0YWMuIEtodSBwaG8g UGhhcCBjbyBob24gMS4wMDAgaGEgbmh1bmcgZHVvbmcgY29uZyANCmR1b2MgcXV5IGhvYWNoIHRv aSA3NCBrbSwgdHJvbmcga2hpIGRpZW4gdGljaCB0dSBuaGllbiAoY3VhIHJpZW5nIEhhIE5vaSBj dSkgbGEgOTIuMjAwIA0KaGEgKHRhbmcgOTIgbGFuKSBuaHVuZyBjaGlldSBkYWkgaGUgdGhvbmcg b25nIGNvbmcgY3VuZyBjaGkgY28gNjM0IGttICh0YW5nIDgsNSBsYW4pLiANCk5vaSBkaWV1IG5h eSBkZSB0aGF5IHJhbmcsIEhhIE5vaSBjbyBkbyB0aWVuIG5oaWV1IGhvbiBudWEgdmFvICJjYWkg dGFvIGhlIHRob25nIHRob2F0IA0KbnVvYyIgdGhpIHZhbiBraG9uZyB0aGUgaGV0IG5nYXAuIA0K DQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTMx MDAxMDIuYXNweDEzLzA3LzIwMTAgMTA6MDENCg0KSGEgTm9pOiBNdWEgbG9uLCBkdW9uZyBwaG8g SGEgTm9pIGJpZW4gdGhhbmggc29uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAxMC9MdWMtbmFvLWJ1Yy14dWMtY2FjLWJhYy1kZXUtY28tdGhlLWdvcC15LWtpZW4t OTQyMzg3LyBLaGFuaCBMaW5oIDE0OjUwLCAxNS8xMC8yMDEwIChHTVQrNykNCg0KT25nIE5ndXll biBQaHUgVHJvbmcgdGllcCB4dWMgY3UgdHJpIJYgTmUgdHJhbmggbmhpZXUgdmFuIGRlIGJ1YyB4 dWMgDQoNCiogS2llbiBuZ2hpIGN1YSBjdSB0cmkgdmUgdnUgVmluYXNoaW4gdmEgZGlldSAyIEhp ZW4gcGhhcCBiaSAibmhhbiBjaGltIg0KKiBOaGlldSB2YW4gZGUgYnVjIHh1Yywgc2FpIHBoYW0g a2VvIGRhaSwga2llbiBuZ2hpIG5oaWV1IG5hbSBjaHVhIGR1b2MgZ2lhaSBxdXlldA0KDQpTYW5n IDE1LzEwLCBvbmcgTmd1eWVuIFBodSBUcm9uZywgY2h1ICB0aWNoIFF1b2MgaG9pLCBkYSB0aWVw IHh1YyB2b2kgY3UgdHJpIGhhaSANCnF1YW4gQmEgRGluaCB2YSBDYXUgR2lheSwgNSBuZ2F5IHRy dW9jIGtoaSBreSBob3AgdGh1IDggUXVvYyBob2kga2hvYSBYSUkga2hhaSBtYWMuDQoNCkN1IHRy aSBwaGFpIGdvcCB5IG8gdGFtIHF1b2MgZ2lhDQoNCkR1IGRhaSBkaWVuIGNobyBkb2FuIERCUUgg SGEgTm9pIC0gQ2h1IHRpY2ggSGllcCBob2kgY2FjIGRvYW5oIG5naGllcCBuaG8gdmEgdnVhIA0K VFAgSGEgTm9pIE5ndXllbiBIdW5nIFNvbiBkYSB0cmluaCBiYXkgY2h1b25nIHRyaW5oIGR1IGtp ZW4gY3VhIGt5IGhvcCBjbyBkdSBjYWMgbm9pIA0KZHVuZyBsb24sIG5obyBuaHUgY2FjIHZhbiBk ZSBraW5oIHRlLCB4YSBob2kgY3VhIG5hbSAyMDEwLCBwaHVvbmcgYW4gcGhhbiBibyBuZ2FuIA0K c2FjaCBuYW0gMjAxMSwgYmFvIGNhbyB0b25nIGtldCB0aHVjIGhpZW4gdGhpIGRpZW0ga2hvbmcg dG8gY2h1YyBIRE5EIGh1eWVuLCBxdWFuLCANCnBodW9uZywgYmFvIGNhbyB2ZSB2aWVjIGNobyBj YWMgY29uZyB0eSBudW9jIG5nb2FpIHRodWUgZGF0IHRyb25nIHJ1bmcuLi4gTmh1bmcgZHVvbmcg DQpuaHUgY3UgdHJpIGxhaSBxdWFuIHRhbSBkZW4gbmh1bmcgdmFuIGRlICJzYXQgc3VvbiIgaG9u IGN1YSBraHUgcGhvIG1pbmgsIHBodW9uZyANCm1pbmgsIG5odSBjaHV5ZW4gdGhpZXUga2hvbmcg Z2lhbiBzaW5oIGhvYXQgY29uZyBjb25nLCBjaHV5ZW4gY2FwIHNvIGRvIHZhIG11YSBuaGEgDQp0 aGVvIG5naGkgZGluaCA2MSBjaHVhIGR1b2MgZ2lhaSBxdXlldC4uLg0KDQpbQW5oOiBPbmcgTmd1 eWVuIFBodSBUcm9uZyAodHJhaSkgLSBDdSB0cmkgcGhhaSBnb3AgeSBraWVuIG8gdGFtIFF1b2Mg Z2lhLi4uIEFuaDogSy5MXSANCg0KS2UgY2Ega2hpIGN1IHRyaSBuaGFjIGRlbiBxdXkgaG9hY2gg dGhhbmggcGhvLCBMdWF0IERlIGRpZXUuLi4gdGhpIGN1bmcgZGUgZ2lhaSBxdXlldCB2YW4gDQpk ZSBjdSB0aGU6ICJLaHUgbmhhIDUgdGFuZyB0cmVuIGR1b25nIEhvbmcgSGEgZGEgYm8ga2hvbmcg bWF5IG5hbSByb2ksIGNvIGR1b2MgeGF5IGR1bmcgDQp0aWVwIGtob25nLCBuZXUga2hvbmcgZHVv YyBsYW0gdGllcCB0aGkgbmVuIGdpYWkgcGhvbmcgbWF0IGJhbmcgbmdheSBkZSBsYW0gZGVwIA0K Y2FuaCBxdWFuIiBuaHUgbG9pIG9uZyBUcmluaCBYdWFuIExpZW0gKHBodW9uZyBQaHVjIFhhLCBx dWFuIEJhIERpbmgpLg0KDQpUaGVvIGNhYyBwaGF0IGJpZXUgY3VhIGN1IHRyaSwgaG8gcGhhaSBr aWVuIG5naGkgbmh1bmcgdmFuIGRlIGhldCBzdWMgY3UgdGhlIHZvaSBvbmcgY2h1ICANCnRpY2gg UUgsIGxhIGRvIGhvIGRhIGtpZW4gbmdoaSBuaGlldSBsYW4gbmh1bmcgdmFuIGNodWEgZHVvYyBn aWFpIHF1eWV0LCBuaHUgY2h1eWVuIA0KZGluaCBNYWkgRGljaCBiaSBob24gMTAgaG8gZGFuIGxh biBjaGllbSB0dSBob24gMTAgbmFtIG5heSwgZGEgZ3VpIGtpZW4gbmdoaSB0b2kgcmF0IA0Kbmhp ZXUgY2FwLCBrZSBjYSBvbmcgY2h1IHRpY2ggUXVvYyBob2kgdHJ1YyB0aWVwIGxhbSB2aWVjLCBU aGFuaCB0cmEgQ2hpbmggcGh1IGNvIHkga2llbiANCmNoaSBkYW8gdGhhbmggcGhvLCB0aGFuaCBw aG8gY2hpIGRhbyBxdWFuIENhdSBHaWF5Li4uICJOZ3VvaSBkYW4gbmh1IGNvbiBzYXUgY2FpIGtp ZW4sIA0KdGhhdCBzdSBraG9uZyBiaWV0IHRyb25nIHZhbyBhaSIsIG9uZyBOZ3V5ZW4gVmFuIFBo YXQgKHBodW9uZyBNYWkgRGljaCkgdGhhbiB0aG8uIA0KDQpOaHVuZyBraWVuIG5naGkgY3VhIGN1 IHRyaSBoZXQgc3VjIGN1IHRoZSwgbmVuIGNhIGRhaSBkaWVuIGNoaW5oIHF1eWVuIHRoYW5oIHBo byBsYW4gaGFpIA0KcXVhbiBCYSBEaW5oLCBDYXUgR2lheSBjaGkgbmhlIG5oYW5nIHRpZXAgdGh1 IHkga2llbiwgZ2lhaSB0aGljaCBsYWkgY2hvIHJvIG5odW5nIHZpZWMgZ2kgDQpkYW5nIGR1b2Mg Z2lhaSBxdXlldCwgdmllYyBnaSBwaGFpIGNobyBxdXkgaG9hY2ggY2h1bmcgY3VhIHRoYW5oIHBo by4gDQoNCk9uZyBOZ3V5ZW4gUGh1IFRyb25nIG5oYWMgY3UgdHJpIHF1YW4gdGFtIGhvbiBkZW4g Y2FjIHZhbiBkZSBjdWEga3kgaG9wLCBib2kgImt5IA0KbmF5IGNvIHJhdCBuaGlldSBwaGFuIHZp ZWMgcXVhbiB0cm9uZywgbmh1bmcga2hvbmcgdGhheSBjYWMgYmFjIGdvcCB5IGtpZW4gZ2kuIFZ1 YSByb2kgDQpUcnVuZyB1b25nIGtldCBsdWFuIHBoYWkgdGllcCB0dWMgdGhpIGRpZW0ga2hvbmcg dG8gY2h1YyBIRE5EIGh1eWVuLCBxdWFuLCBwaHVvbmcgbyANCjEwIHRpbmggY3VuZyBsYSBkb25n IHRpbmggdHJlbiBjbyBzbyB5IGtpZW4gZG9uZyBnb3AgY3VhIGNhYyBEQlFILCBuaHUgdGhlIGxh IGJ1b2MgdGllbiANCmxvbi4gQ3UgdHJpIGN1bmcgcGhhaSBnb3AgeSBraWVuIG8gdGFtIHF1b2Mg Z2lhLCBjaHUga2hvbmcgY2hpIG5odW5nIHZhbiBkZSBjdWEgZGlhICBwaHVvbmciLCBvbmcgVHJv bmcgbm9pLiANCg0KTmhhbiBjaGltDQoNClRoYXQgcmEsIGN1bmcgY28gbmh1bmcga2llbiBuZ2hp IGNodW5nIHZvaSBjYWMgdmFuIGRlIGxvbiBjdWEgcXVvYyBnaWEuIE9uZyBUcnVvbmcgDQpYdWFu IFRoYW5oIChwaHVvbmcgUGh1YyBYYSkgZGUgbmdoaSAia3kgaG9wIG5heSBRdW9jIGhvaSBwaGFp IGNoYXQgdmFuIENoaW5oIHBodSANCnZlIFZpbmFzaGluLCBib2kga2V0IGx1YW4gY3VhIEJvIENo aW5oIHRyaSBjb24gbmhlIG5oYW5nIHF1YS4gVGFwIGRvYW4ga2luaCB0ZSBuYXkgdHJ1YyANCnRo dW9jIENoaW5oIHBodSwgdmF5IHRyYWNoIG5oaWVtIGN1YSBDaGluaCBwaHUgcmEgc2FvPyBIaW5o IHRodWMgeHUgbHkgdGhlIG5hbyBkZSBnaXUgDQp2dW5nIHBoZXAgbnVvYyIsIG5odW5nIG9uZyBk YSBraG9uZyBuaGFuIGR1b2MgaG9pIGFtLiANCg0KSGF5IGN1IHRyaSBUcnVvbmcgUXVhbmcgU2lu aCAocGh1b25nIFRoYW5oIENvbmcpIHRyYW4gdHJvIHZlIGRpZXUgMiBjdWEgSGllbiBwaGFwIG8g DQpsYW4gc3VhIGRvaSBnYW4gZGF5IG5oYXQsIGJvaSBkYSBxdXkgZGluaCAiTmhhIG51b2MgQ29u ZyBob2EgWEhDTiBWaWV0IE5hbSBsYSBuaGEgDQpudW9jIHBoYXAgcXV5ZW4gWEhDTiBjdWEgZGFu LCBkbyBkYW4gdmEgdmkgZGFuLCB0YXQgY2EgcXV5ZW4gbHVjIG5oYSBudW9jIHRodW9jIHZlIA0K bmhhbiBkYW4uLi4iIG5odW5nIHNhdSBkbyBsYWkgY28gcXV5IGRpbmggIlF1eWVuIGx1YyBuaGEg bnVvYyBsYSB0aG9uZyBuaGF0LCBjbyBzdSBwaGFuIA0KY29uZyB2YSBwaG9pIGhvcCBnaXVhIGNh YyBjbyBxdWFuIG5oYSBudW9jIHRyb25nIHZpZWMgdGh1YyBoaWVuIGNhYyBxdXllbiBsYXAgcGhh cCwgDQpoYW5oIHBoYXAsIHR1IHBoYXAiLiANCg0KVGhlbyBvbmcgU2luaCwgInBob2kgaG9wLCBy b2kgcGhhbiBjb25nLCB0aGkgZHVhIHRyZW4gY28gc28gbHkgbHVhbiBuYW8sIHNlIHRodWMgaGll biB0aGVvIA0KY28gY2hlIG5hbz8gRGEgY28gcXVvYyBnaWEgbmFvIHRyZW4gdGhlIGdpb2kgdGh1 YyBoaWVuIGNodWEsIGhheSB0YSBsYW0gZGF1IHRpZW4/Ii4gDQoNCihBbmg6IE9uZyBUcnVvbmcg UXVhbmcgU2luaDogU2FvIGxhaSBjaHV5ZW4gc2FuZyBwaGFtIHRydSBwaG9pIGhvcCwgcGhhbiBj b25nPyBBbmg6IEsuTCkgDQoNClR1eSBuaGllbiwgY2hpIHZpIG9uZyBTaW5oIG5oYW0gdmllYyBI aWVuIHBoYXAgdnVhIGR1b2Mgc3VhIGRvaSB2YW8gdGhhbmcgNy8yMDEwLCBuZW4gDQpwaGFuIHRy YSBsb2kgY3VhIG9uZyBUcm9uZyBsYWkgdGFwIHRydW5nIGtoYW5nIGRpbmggbGFuIHN1YSBIaWVu IHBoYXAgZ2FuIG5oYXQgbGEgdHUgbmFtIA0KMjAwMSBjaHUgbmFtIG5heSBjaHVhIHN1YSBIaWVu IHBoYXAsIHZpIGRheSBsYSB2aWVjIHJhdCB0cm9uZyBkYWksIGRvIFF1b2MgaG9pIHRpZW4gaGFu aCANCm5odW5nIHBoYWkgY28gY2h1IHRydW9uZyB0dSBUcnVuZyB1b25nLCByb2kgcGhhaSBsYXkg eSBraWVuIGN1YSBuaGFuIGRhbi4gKE5odSB2YXkgb25nIA0KVHJvbmcgY2h1YSB0cmEgbG9pIHZh byBub2kgZHVuZyBjaGluaCBtYSBjdSB0cmkga2llbiBuZ2hpOyBkb25nIHRob2kgY3VuZyBjaHVh IHRyYSBsb2kgDQp2ZSBzdSBjaHUgZG9uZyBjYW4gY28gY3VhIFF1b2MgaG9pIHRyb25nIHZhbiBk ZSBuYXkuKSAgDQoNClR1eSBuaGllbiwgdm9pIGRlIHh1YXQgY3VhIG9uZyBWbyBHaWFuZyBEb25n IChwaHVvbmcgTmd1eWVuIFRydW5nIHRydWMsIHF1YW4gQmEgDQpEaW5oKSBraGkgY2hhdCB2YW4g cGhhaSBjbyBjYWMgeSBraWVuIHRpZXUgYmlldSBjdWEgY3UgdHJpIChjbyB0aGUgdGllcCBuaGFu IHF1YSBkaWVuIA0KdGhvYWkpLCBvbmcgVHJvbmcgbGFpIGtoYW5nIGRpbmggbHVhdCBjaHVhIHF1 eSBkaW5oIHZhbiBkZSBuYXksIG5odW5nICJEQlFIIGN1bmcgbGEgDQpkYW4sIHZhIGN1IHRyaSBk YSBiYXUgREJRSCBkYWkgZGllbiBjaG8gbWluaCByb2kuIEJhdCBjdSBsdWMgbmFvIGNvIHZhbiBk ZSBidWMgeHVjLCBjYWMgDQpiYWMgZGV1IGNvIHRoZSBkb25nIGdvcCB5IGtpZW4iLiAgQnVjIHh1 YyBjdWEgY3UgdHJpIGxhIHRodWMgdGUgY3UgdHJpIGRhIGtpZW4gbmdoaSBuaGlldSANCmxhbiwg bmhpZXUgbmFtIHJvaSBuaHVuZyBraG9uZyBkdW9jIGdpYWkgcXV5ZXQsIGhvbiBudWEgY28gbmhp ZXUga2llbiBuZ2hpIGJpIGxhbSBuZ28sIGJpIG5oYW4gY2hpbS4gDQoNCihZIGtpZW4gY3UgdHJp OiBPbmcgTmd1eWVuIFBodSBUcm9uZyBsYSBkYWkgYmlldSBRdW9jIGhvaSwgZG9hbiBIYSBOb2ks IHRoaSBjdW5nIHBoYWkgDQpjbyB0cmFjaCBuaGllbSBxdWFuIHRhbSBnaWFpIHF1eWV0IGNhIG5o dW5nIHZhbiBkZSBvIGRpYSBwaHVvbmcgSGEgTm9pIG1hIGN1IHRyaSBraWVuIA0KbmdoaTsgdmll YyBkaWEgcGh1b25nIG9uZyB0YSBraG9uZyBnaWFpIHF1eWV0IGR1b2MgY3VuZyBjbyBuZ2hpYSBs YSBvbmcgdGEga2hvbmcgaG9hbiANCnRoYW5oIG5oaWVtIHZ1OyBjb24gdmFuIGRlIGxvbiBjdWEg UXVvYyBnaWEgbWEgY3UgdHJpIGtpZW4gbmdoaSBuaHUgdnUgVmluYXNoaW4gdGhpIG9uZyBsYWkg DQpraG9uZyB0cmEgbG9pIGhvYWMgbmUgdHJhbmgsIHRyYSBsb2kgcXVhIGxvYSwga2hlbyBtb20g Y2hvIHF1YSBjaHV5ZW47IG5odW5nIGRpZXUgZG8sIG1vdCBsYW4gbnVhIGNobyB0aGF5IG9uZyBU cm9uZyBraG9uZyBkdSBuYW5nIGx1YyBsYW0gdmllYywgDQpraG9uZyBob2FuIHRoYW5oIG5oaWVt IHZ1LCBraG9uZyBjbyB0YW0gdHJvbmcgc2FuZzsgbmUgdHJhbmggdHJhY2ggbmhpZW07IHRyb25n IGtoaSANCmRhdCBudW9jIHRhIGRhbmcgY2FuIG5odW5nIG5ndW9pIGRhbSBuZ2hpLCBkYW0gbGFt IHZhIGxhbSB2aWVjIGNvIGhpZXUgcXVhIGNhbzsga2llbiBuZ2hpIFRydW5nIHVvbmcgRGFuZywg VG9uZyBiaSB0aHUsIFF1b2MgaG9pIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2ggY2h1YyBvbmcg Tmd1eWVuIFBodSBUcm9uZy4pIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzUx NzM4My9RdW9jLWhvaS1jdW5nLWNvLXRyYWNoLW5oaWVtLXZ1LVZpbmFzaGluLmh0bWwNCg0KVmlu YXNoaW4gbGEgYmFpIGhvYyBsb24sIHRyb25nIGRvIGNvIGNhIHRyYWNoIG5oaWVtIGN1YSBDaGlu aCBwaHUgdmEgUXVvYyBob2kuIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaG9pLVN1LzUx NzM4My9RdW9jLWhvaS1jdW5nLWNvLXRyYWNoLW5oaWVtLXZ1LVZpbmFzaGluLmh0bWwgSGEgTmhh biAwNzo0NyAwMi8xMS8yMDEwIA0KDQpRdW9jIGhvaSBjdW5nIGNvIGtodXlldCBkaWVtIHRyb25n IHZ1IFZpbmFzaGluIC0gYm8gcXVhIGJ1b2MgdGhlIGNoZSBob2EgaG9hdCBkb25nIGN1YSB0YXAg ZG9hbiAgIA0KDQpUUCAtIEtob25nIGtoaSBuZ2hpIHRydW9uZyB0cm9uZyBuZ2F5IGRhdSBRdW9j IGhvaSB0aGFvIGx1YW4gdmUga2luaCB0ZS0geGEgaG9pICgxLSAxMSkgDQonbm9uZycgZGFuIGto aSBuaGlldSBkYWkgYmlldSB0aGFuZyB0aGFuICdtbyB4ZScgdmEgeWV1IGNhdSBsYW0gcm8gdHJh Y2ggbmhpZW0gY3VhIGNhYyBjbyANCnF1YW4gbGllbiBxdWFuIHRyb25nIHZ1IFZpbmFzaGluLiBE YWkgYmlldSBMZSBUaGkgTmdhIChUaGFpIE5ndXllbikgY2hvIHJhbmcsIA0KVmluYXNoaW4gbGEg YmFpIGhvYyBsb24sIHRyb25nIGRvIGNvIGNhIHRyYWNoIG5oaWVtIGN1YSBDaGluaCBwaHUgdmEg UXVvYyBob2kuDQoNClF1b2MgaG9pIGN1bmcgY28gdHJhY2ggbmhpZW0gDQoNCkRhaSBiaWV1IEh1 eW5oIE5nb2MgRGFuZyAoQmluaCBEdW9uZykgY2hvIHJhbmcsIFZpbmFzaGluIG1vaSBraG9uZyB0 aGUgY2hpIGxhIA0KVmluYXNoaW4gY3UgY29uZyB2b2kgYm8gbWF5IGxhbmggZGFvIG1vaS4gVGFp IGNhdSB0cnVjIFZpbmFzaGluIGtob25nIGNoaSBsYSBiYW4gYm90IA0KdGFpIHNhbiBjdWEgVmlu YXNoaW4gZGUgdHJhIG5vLCB0aHUgaGVwIG5nYW5oIG5naGUgdmEgdGhheSBkb2kgbmhhbiBzdSBs YW5oIGRhbyB0YXAgZG9hbi4gDQpNb3QgVmluYXNoaW4gbW9pIHBoYWkgbGEgbW90IGRpZW4gaGlu aCBkb2kgbW9pIGN1YSBkb2FuaCBuZ2hpZXAgTmhhIG51b2MuIERpZXUgbmF5IA0KZG9pIGhvaSBw aGFpIGNvIG5odW5nIGNodXllbiBkb2kgcGh1IGhvcCB0cm9uZyB0dSBkdXkgdmEgbHVhdCBwaGFw IHZlIGRvYW5oIG5naGllcCANCk5oYSBudW9jLiANCg0KRG9uZyB0aW5oIHZvaSB5IGtpZW4gbmF5 LCBkYWkgYmlldSBMZSBUaGkgTmdhIChUaGFpIE5ndXllbikgY2hvIHJhbmcsIFZpbmFzaGluIGxh IGJhaSANCmhvYyBsb24sIHRyb25nIGRvIGNvIGNhIHRyYWNoIG5oaWVtIGN1YSBDaGluaCBwaHUg dmEgUXVvYyBob2kuIEJhIE5nYSBub2ksIG5nYXkgdHUgZ2lhaSANCmRvYW4gZGF1IHRpZW4gdGhp IGRpZW0gdGhhbmggbGFwIHRhcCBkb2FuLCBjaHVuZyB0YSBkYSBibyBxdWEgYnVvYyB0aGUgY2hl IGhvYSBob2F0IGRvbmcgDQpjdWEgdGFwIGRvYW4sIGNoaSBkdW5nIGNhYyBxdXlldCBkaW5oIGNh IGJpZXQgZGUgdGhhbmggbGFwIHR1bmcgdGFwIGRvYW4uIFRyb25nIGtoaSBjaHVhIA0KY28gYmFv IGNhbyB0b25nIGtldCB0aGkgZGllbSwgY2FjIHRhcCBkb2FuIG1vaSB2YW4gbGFuIGx1b3QgcmEg ZG9pLiANCg0KIlZpZWMgdGhpIGRpZW0gbGllbiBxdWFuIGRlbiBoYW5nIHRyYW0gbmdoaW4gdHkg ZG9uZyB2b24gTmhhIG51b2MgbWEgdmUgbWF0IHBoYXAgbHVhdCANCmtob25nIHJhbmcgYnVvYyB0 cmFjaCBuaGllbSBjdWEgUXVvYyBob2ksIGNoaSBkYXQgdHJhY2ggbmhpZW0gcXVhIG5hbmcgbmUg bGVuIHZhaSANCkNoaW5oIHBodSBsYSBjaHVhIHRoYXQgaG9wIGx5Ii0gQmEgTmdhIG5oYW4gZGlu aC4gDQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMDEwMTgwODQ5MTQ4NTFQMEM5OTIwL2N1LXRy aS1oYS1ub2ktbXVvbi1xdW9jLWhvaS1jaGF0LXZhbi12ZS12aW5hc2hpbi5odG0gTkdVWUVOIFZV IDA4OjMyIChHTVQrNykgLSAxOS8xMC8yMDEwIA0KDQpDdSB0cmkgSGEgTm9pIG11b24gUXVvYyBo b2kgY2hhdCB2YW4gdmUgVmluYXNoaW4gDQoNCktob25nIGNoaSBsYSBuaHVuZyB2YW4gZGUgZGFu IHNpbmggInNhdCBzdW9uIiBidWMgeHVjIG5nYXkgdGFpIGRpYSBwaHVvbmcsIHRhcCBob3AgeSAN CmtpZW4sIGtpZW4gbmdoaSBjdWEgY3UgdHJpIEhhIE5vaSB0cnVvYyBreSBob3AgUXVvYyBob2kg dGh1IHRhbSAoa2hhaSBtYWMgbmdheSAyMC8xMCkgDQpjb24gY2hvIHRoYXkgc3UgcXVhbiB0YW0g Y3VhIGNvbmcgZGFuIFRodSBkbyB2b2kgY2hpbmggaG9hdCBkb25nIGN1YSBRdW9jIGhvaS4NCg0K VGhlbyBkbywga2hvbmcgaXQgeSBraWVuIGRlIG5naGkgQ2hpbmggcGh1IGJhbyBjYW8gZGluaCBr eSB2b2kgUXVvYyBob2kgdmUgdGh1YyB0cmFuZyANCnZhIGhpZXUgcXVhIGhvYXQgZG9uZyBjdWEg Y2FjIHRhcCBkb2FuLCB0b25nIGNvbmcgdHkgbmhhIG51b2MuIERvbmcgdGhvaSBjbyBjYWMgZ2lh aSANCnBoYXAgbWFuaCBuaGFtIGhhbiBjaGUgdGhhdCB0aG9hdCwgbGFuZyBwaGkgdGFpIHNhbiBj dWEgbmhhIG51b2MgdHVvbmcgdHUgbmh1IHRhaSBUYXAgDQpkb2FuIENvbmcgbmdoaWVwIHRhdSB0 aHV5IFZpZXQgTmFtIChWaW5hc2hpbikuIA0KDQpDdSB0cmkgY3VuZyBraWVuIG5naGkgQ2hpbmgg cGh1IHhlbSB4ZXQgdHJhY2ggbmhpZW0gZG9pIHZvaSBjYWMgZG9hbiB0aGFuaCB0cmEsIGtpZW0g dHJhIA0Kbmh1bmcga2hvbmcgcGhhdCBoaWVuIGtpcCB0aG9pIG5odW5nIHNhaSBwaGFtIGN1YSBW aW5hc2hpbi4gVmEgZGUgbmdoaSBRdW9jIGhvaSBjaGF0IA0KdmFuIFRodSB0dW9uZyBjaGluaCBw aHUgdmUgdHJhY2ggbmhpZW0gY3VhIHRhcCB0aGUgdmEgY2EgbmhhbiBuZ3VvaSBkdW9jIGdpYW8g cXVhbiBseSANCmRhIGRlIHhheSByYSB0aW5oIHRyYW5nIHRoYXQgdGhvYXQgdGFpIHNhbiBjdWEg bmhhIG51b2MgdGFpIHRhcCBkb2FuIG5heS4gDQoNCkJlbiBjYW5oIGRvLCBjbyB5IGtpZW4gY3Ug dHJpIGNobyByYW5nIGhvYXQgZG9uZyBjaGF0IHZhbiBjdWEgUXVvYyBob2kgY2h1YSB0aHVjIHN1 IA0KcXV5ZXQgbGlldCB2YSBjbyBoaWV1IHF1YSBjYW8uIENhYyB0aGFuaCB2aWVuIENoaW5oIHBo dSBraGkgZHVvYyBjaGF0IHZhbiBjYWMgdmFuIGRlIGxpZW4gDQpxdWFuIGRldSBodWEgc2Ugbmdo aWVtIHR1YyB4ZW0geGV0IHRodWMgaGllbi4gVHV5IG5oaWVuLCBuaGlldSAibG9pIGh1YSIgY2h1 YSBjbyBrZXQgDQpxdWEgcm8gcmFuZy4gRGUgbmdoaSBRdW9jIGhvaSBuYW5nIGNhbyBob24gbnVh IGhpZXUgcXVhIGhvYXQgZG9uZyBjaGF0IHZhbi4gDQoNCihBbmg6IE9uZyBjaHUgIHRpY2ggUXVv YyBob2kgTmd1eWVuIFBodSBUcm9uZyB0aWVwIHh1YyBjdSB0cmkgcXVhbiBCYSBEaW5oIHZhIENh dSBHaWF5LCBIYSBOb2kgLSBBbmg6IFRUWFZOKSANCg0KRGUgbmdoaSBDaGluaCBwaHUgY28gZ2lh aSBwaGFwIHF1eWV0IGxpZXQgZGUga2hhYyBwaHVjIHRpbmggdHJhbmcgcXVhbiBseSBnaWEgY29u IHlldSANCmtlbSwgY3UgdHJpIGNobyByYW5nIGRheSBjaGluaCBsYSBuZ3V5ZW4gbmhhbiBraGll biBuaGlldSBtYXQgaGFuZyBuaGF0IGxhIGNhYyBtYXQgaGFuZyANCnRoaWV0IHlldSBuaHUgZGll biwgcGhhbiBib24sIHRodW9jIGNodWEgYmVuaC4uLiBnaWEgdGFuZyBsaWVuIHR1YyBuaHVuZyBu aHVuZyBiaWVuIHBoYXAgDQpjYW4gdGhpZXAgY3VhIE5oYSBudW9jIGtob25nIGtpcCB0aG9pIGhv YWMga2hvbmcgY28gaGlldSBxdWEsIGdheSBuaGlldSBraG8ga2hhbiBjaG8gDQpjdW9jIHNvbmcg bmd1b2kgZGFuLg0KDQpOaGlldSB5IGtpZW4gY3VuZyBjaG8gcmFuZywgQ2hpbmggcGh1IGRhIGNv IG5oaWV1IGNvIGdhbmcgdHJvbmcgdmllYyB0cmllbiBraGFpIEx1YXQgDQpQaG9uZywgY2hvbmcg dGhhbSBuaHVuZywgc29uZyBzbyB2dSB0aGFtIG5odW5nIG5nYXkgY2FuZyB0YW5nIHZlIHNvIGx1 b25nIHZhIG11YyANCmRvIHRoaWV0IGhhaS4gTmhpZXUgdnUgdGlldSBjdWMsIHRoYW0gbmh1bmcg Y2hpIGR1b2MgcGhhdCBoaWVuIHF1YSBiYW8gY2hpIGhvYWMgZG8gDQpub2kgYm8gbWF0IGRvYW4g a2V0LiBDdSB0cmkgSGEgTm9pIGtpZW4gbmdoaSBDaGluaCBwaHUgY2hpIGRhbyBraWVtIHRyYSB2 YSBjbyBnaWFpIA0KcGhhcCBraGFjIHBodWMgaGlldSBxdWEgaG9uLiANCg0KVm9pIG5odW5nIHZh biBkZSBjdWEgcmllbmcgSGEgTm9pLCBjdSB0cmkgSGEgTm9pIHRpZXAgdHVjIHBoYW4gYW5oIG5o aWV1IGNvIHF1YW4sIGJlbmggDQp2aWVuLCB0cnVvbmcgaG9jIGRhIGR1b2MgcXV5IGhvYWNoIG5o dW5nIGNodWEgdGh1YyBoaWVuIGR1bmcgdGllbiBkbyBkaSBkb2kgcmEga2hvaSANCnRydW5nIHRh bSB0aGFuaCBwaG8uIE5oaWV1IHNvbmcgbG9uIHRyZW4gZGlhIGJhbiBuaHUgc29uZyBDYXUsIHNv bmcgRGF5LCBOaHVlLi4uIG8gDQpuaGllbSBuZ2F5IGNhbmcgbmFuZywgZGUgbmdoaSBDaGluaCBw aHUgY2hpIGRhbyBjYWMgY28gcXVhbiBjbyBsaWVuIHF1YW4gZGF5IG5oYW5oIA0KdGllbiBkbyB0 cmllbiBraGFpIGNhYyBkdSBhbiBjYWkgdGFvIHZhIGtoYWMgcGh1YyB0aW5oIHRyYW5nIG8gbmhp ZW0gbyBjYWMgc29uZyBuYXkuIA0KDQpUaGVvIHBoYW4gYW5oIGN1YSBjdSB0cmkgaHV5ZW4gQmEg VmksIHRpbmggdHJhbmcgc3UgZHVuZyBkYXQga2hvbmcgZHVuZyBtdWMgZGljaCB0YWkgDQpjYWMg bm9uZywgbGFtIHRydW9uZyBkaWVuIHJhIHBobyBiaWVuLiBDaGluaCBwaHUgY2FuIGNoaSBkYW8g a2llbSB0cmEgdmllYyBxdWFuIGx5IHZhIHN1IA0KZHVuZyBkYXQgdGFpIGNhYyBub25nLCBsYW0g dHJ1b25nOyBwaGFuIGRpZW4gdGljaCBkYXQgY2FjIG5vbmcsIGxhbSB0cnVvbmcga2hvbmcgc3Ug ZHVuZyANCmhvYWMgc3UgZHVuZyBraG9uZyBkdW5nIG11YyBkaWNoIGRlIG5naGkgZ2lhbyBsYWkg Y2hvIGNhYyBkaWEgcGh1b25nIHF1YW4gbHkgZGUga2hhaSB0aGFjIHZhIHN1IGR1bmcuLi4gICAN Cg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMS0wMy1kb2ktbm8tbHVh dC1iaWVuIFRhYyBnaWE6IExhbiBBbmggMDQvMTEvMjAxMCAwNDozMCBHTVQrNw0KDQoiRG9pIG5v IiBsdWF0IGJpZW4NCg0KVFJPTkcgTVVDIE5BWSAoRG9jIHRoZW0pIA0KKiAiRG9pIG5vIiBsdWF0 IGJpZW4NCiogTWVrb25nIHZhIGN1b2MgY2hpZW4gbmd1b24gbnVvYw0KKiBOZ2hpIHRydW9uZyBr aG9uZyBjb24gZG9uZyBjdWEgYmFvIG5oYXUNCiogIkxhcCBkYW4gcXVhbiB0dSB2ZSBiaWVuIGRl IGdpdSBjaHUgcXV5ZW4gYmllbiBkYW8iDQoNCkNodSBuaGllbSBVeSBiYW4gQW4gbmluaCBRdW9j IHBob25nIGN1YSBRdW9jIGhvaSwgb25nIExlIFF1YW5nIEJpbmggY2hvIHJhbmcsIGRlIA0KYmFv IHZlIGFuIHRvYW4gY2hvIG5ndSBkYW4sIFF1b2MgaG9pIGtob25nIHRoZSB0cnUgdHJ1IG1haSB2 aWVjIHRob25nIHF1YSBsdWF0IGJpZW4sIA0Ka2hvbmcgdGhlIGN1IHZpbiBsaSBkbyB0ZSBuaGkg bWEgZ2FjIGxhaS4NCg0KREJRSCBjYW4gZHVvYyB0aG9uZyB0aW4gY2hpbmggeGFjIHZlIHRpbmgg aGluaCBCaWVuIERvbmcNCg0KVGh1YSBvbmcsIHZpIHNhbyBuaHVuZyB2YW4gZGUgbm9uZyBsaWVu IHF1YW4gdHJ1YyB0aWVwIGRlbiBkb2kgc29uZyAgbmd1b2kgZGFuLCBhbiBuaW5oIA0KcXVvYyBn aWEgbmh1IGNodSBxdXllbiBiaWVuIGRhbywgYW4gdG9hbiBjaG8gbWFuZyBzb25nIG5ndSBkYW4g ZGFuaCBiYXQgaGFpIHNhbiB4YSANCmJvLi4uIHZhbiBjaHVhIGR1b2MgZHVhIHZhbyBuZ2hpIHRy aW5oIGNoaW5oIHRodWMgdGFpIGt5IGhvcCBRSCBsYW4gbmF5Pw0KDQpWYW4gZGUgbmF5IG5oYXkg Y2FtIHZpIGxpZW4gcXVhbiBkZW4gYW4gbmluaCBxdW9jIGdpYSB2YSBkb2kgbmdvYWkuIERhbiB0 YSBjdW5nIGhpZXUgDQpiaWV0IHZhIGR1b2Mgc3UgZG9uZyB0aHVhbiBuaHVuZyB2aSB0b24gdHJv bmcgeSBraWVuIGxhbmggZGFvIHZhIHRhcCB0aGUgbmVuIHRob2kuDQoNCkNvbiB0b2kgdmFuIG5v aSBRdW9jIGhvaSBuZW4gY28gcXV5IGRpbmggaG9wIGNvbmcga2hhaSwga2hpIGNhbiB0aGlldCB0 aGkgaG9pIG5naGkga2luLiANCktpbiB0dWMgbGEgaG9wIG5vaSBibyAoUXVvYyBob2kgbnVvYyBu YW8gY3VuZyBsYW0gbmh1IHZheSBjYSkuIFZpZWMgbmF5IGNhbiB0aGlldCBkZSANCnRob25nIHRp biBjaG8gZGFpIGJpZXUgbmFtIGR1b2MgdGluaCBoaW5oIGJpZW4gRG9uZyB0aHVjIHRlIGhpZW4g bmF5IHRoZSBuYW8uDQoNClRoZW8gcXVhbiBzYXQgdGhpIG1heSBreSBob3AgZ2FuIGRheSwgbW90 IHNvIHZpIERCUUggY3VuZyBkYSBjaGF0IHZhbiBraGEgZ2F5IGdhdCANCnh1bmcgcXVhbmggY2h1 eWVuIGJhbyB2ZSBxdXllbiBsb2kgaG9wIHBoYXAgY3VhIG5ndSBkYW4gVmlldCBOYW0gIHRyZW4g Ymllbj8NCg0KTm9pIGNobyBjb25nIGJhbmcsIGNodW5nIHRhIGN1bmcgZGEgY28gbmhpZXUgbm8g bHVjIGRlIGJhbyB2ZSBuZ3UgZGFuLiBCbyBRdW9jIHBob25nIA0KdmEgQm8gQ29uZyBhbiBkYSBo b3AgbGllbiB0dWMsIGhvcCBoYW5nIG5nYXkgZGUgdGltIGNhY2ggeHUgbGkgY2FjIHN1IGNvLiBD YWMgY2FwLCANCm5nYW5oIGN1bmcgY28gbmh1bmcgY3VvYyBjb25nIGR1IGNoaW5oIHRodWMsIGxh bmggZGFvIGNhYyBiZW4gZGEgY28gcmF0IG5oaWV1IGN1b2MgdHJhbyBkb2kgdmUgdmFuIGRlIG5n dSBkYW4gdHJlbiBiaWVuLg0KDQpUaGVvIGRvaSBIb2kgbmdoaSBCbyB0cnVvbmcgcXVvYyBwaG9u ZyBBU0VBTiBtbyByb25nIHRoYXkgcm8gZGlldSBuYXkuIA0KDQpUb2kgY2hvIHJhbmcsIHZlIHZp ZWMgbmF5IHBoYWkgcmF0IGtpZW4gdHJpLiBUcnVvYyBuaGF0IGxhbSB0aGUgbmFvIGRlIHRob25n IG5oYXQgdm9pIG5oYXUNCiB0aHVjIGhpZW4gdG90IG5ndXllbiB0YWMgdW5nIHh1IGJpZW4gRG9u ZyBjdWEgY2FjIG51b2MgbGllbiBxdWFuLg0KDQpOaHVuZyBjbyB2ZSBuaHUgc3UgYW4gdG9hbiBj dWEgbmd1IGRhbiBWaWV0IGtoaSBkYW5oIGJhdCBjYSB0cmVuIHZ1bmcgYmllbiB0aHVvYyBjaHUg DQpxdXllbiBkYXQgbnVvYyB2YW4gY2h1YSBkdW9jIGNhaSB0aGllbiBuaGlldT8NCg0KSGllbiBu YXkgY2FjIG51b2MgbGllbiBxdWFuIHRyb25nIGtodSB2dWMgZGFuZyB4YXkgZHVuZyBCbyBxdXkg dGFjIHVuZyB4dSBCaWVuIERvbmcNCiBtYW5nIHRpbmggcmFuZyBidW9jIHBoYXAgbGkgY2FvIGhv biwgdGhheSB0aGUgY2hvIFR1eWVuIGJvIHZlIHVuZyB4dSB0cmVuIEJpZW4gRG9uZyANCm5hbSAy MDAyLg0KDQpWaWV0IE5hbSBsYSB0aGFuaCB2aWVuIHRpY2ggY3VjIGRlIGxhbSB2aWVjIG5heSB2 YSBkdW9jIHN1IGRvbmcgdGluaCBjYW8gY3VhIGNhYyBudW9jIA0KQVNFQU4uIEx1YyBuYXkgcmF0 IGNhbiBzdSB0aGFtIGdpYSBjdWEgVHJ1bmcgUXVvYyBudWEuIFhheSBkdW5nIGR1b2MgQm8gUXV5 IHRhYyANCnVuZyB4dSBtYW5nIHRpbmggcmFuZyBidW9jIHRoaSBjbyBjbyBzbyBwaGFwIGxpIGRl IGRhdSB0cmFuaC4NCg0KVGluaCB0aGFuIGxhIGxhbSB0aGUgbmFvIGRlIEJpZW4gRG9uZyBvbiBk aW5oLCBtb2kgdHJhbmggY2hhcCBwaGFpIGdpYWkgcXV5ZXQgYmFuZyANCnRodW9uZyBsdW9uZywg aG9hIGJpbmggdHJhbmggZHVuZyB2dSBsdWMuDQoNCkRvIGxhIHZlIGRvaSBuZ29haS4gQ29uIHZl IGRvaSBub2ksIHBoYWkgbGFtIHNhbyB0YW5nIGN1b25nIHR1eWVuIHRydXllbiBnaWFvIGR1YyB2 ZSANCmJpZW4gZGFvIGNobyBuZ3UgZGFuLiBEYWMgYmlldCBtb2kgbmd1IGRhbiwgbW9pIG5ndW9p IGRhbiBwaGFpIHRvbiB0cm9uZyBwaGFwIGx1YXQgdHJlbiANCmJpZW4sIHBoYXAgbHVhdCBWaWV0 IG5hbSB2YSBwaGFwIGx1YXQgY2FjIG51b2MuDQoNClBoYWkgc29tIHRob25nIHF1YSBsdWF0IEJp ZW4NCg0KQ28geSBraWVuIGNobyByYW5nIG5ndSBkYW4gVmlldCBOYW0gYmkgImJhdCBuYXQiIHRo dW9uZyB4dXllbiBob24gbmd1IGRhbiBjYWMgbnVvYyANCmxhbiBjYW4sIGN1bmcgZGFuZyBjbyB0 cmFuaCBjaGFwIHZlIGNodSBxdXllbiBiaWVuIGRhbyB0YWkga2h1IHZ1YyBiaWVuIERvbmcuIFRy b25nIA0Ka2hpIGRvLCBMdWF0IGJpZW4gVmlldCBOYW0gdmFuIGNvbiBsYSBkdSBhbiBsdWF0IHRy ZW8sIHZpIG5oaWV1IGxpIGRvIGRhIG1heSBsYW4gdHJpIGhvYW4sIA0Ka2hvbmcgZHVhIHZhbyBu Z2hpIHRyaW5oIFF1b2MgaG9pLi4uDQoNCk5odW5nIHZ1IGJhdCBnaXUgdGF1IGNhIGN1YSBuZ3Ug ZGFuIGxhIGRvIGJlbiBraWEgaG8gYmFvIG5ndSBkYW4gY3VhIHRhIHhhbSBwaGFtIGNodSANCnF1 eWVuIGN1YSBobywgYmVuIHRhIGN1bmcga2hhbmcgZGluaCBkbyBsYSBjaHUgcXV5ZW4gaG9wIHBo YXAgY3VhIHRhIG5lbiBjdSB4YXkgcmEgbmh1bmcgdnUgYmF0IGdpdSBuaHUgdmF5Lg0KDQpUcnVu ZyBRdW9jLCBQaGlsbGlwaW5lLCBJbmRvbmVzaWEgZGEgYmFuIGhhbmggcmF0IG5oaWV1IGRhbyBs dWF0IHZlIGJpZW4uIEhvIHR1eWVuIGJvIA0KY2h1IHF1eWVuIHF1b2MgZ2lhIHRyb25nIGNhYyBk YW8gbHVhdCBkby4NCg0KVGEgdmFuIGNodWEgY28gYm8gbHVhdCBuYW8gcXV5IGRpbmggc2F1IHNh YyB2ZSBjaHUgcXV5ZW4gYmllbiB0cm9uZyBraGkgZG8gY2FjIG51b2MgZGEgDQp0dXllbiBibywg Y29pIGRvIGxhIGxhbmggdGhvIGJpZW4gY3VhIGhvLiBUcm9uZyBjYWMgZGFvIGx1YXQgbGllbiBx dWFuIGN1YSBudW9jIHRhIG1vaSBjbyANCmx1YXQgYmllbiBnaW9pIHF1b2MgZ2lhIGxhIG5vaSB2 ZSBjaHUgcXV5ZW4gYmllbiwgbmh1bmcgbW9pIGNoaSBub2kgbyB0YW0gcmlhIG5nb2FpIGN1YSAN CmR1b25nIGxhbmggaGFpIHRob2ksIGNodSBjdW5nIGNodWEgbm9pIGdpIGRlbiBjaHUgcXV5ZW4g YmllbiwgZGFvLg0KDQpCb2kgdmF5IGxhdSBuYXkgdmFuIGN1IGFwIGR1bmcgQ29uZyB1b2MgbHVh dCBiaWVuIG5hbSAxOTgyIGN1YSBMSFEuIFR1IG1pbmggdmFjaCByYQ0KIGRvIGNoaW5oIHBodSBj b25nIGJvLiBRdW9jIGhvaSBjdW5nIGNodWEgY28gY29uZyBibyBuYW8gdHJ1IHZpZWMgY28gcmEg bmdoaSBxdXlldCBwaGUgDQpjaHVhbiBDb25nIHVvYyBsdWF0IGJpZW4gbmFtIDE5ODIuIFZpIHZh eSwgbmd1IGRhbiBjdSB0aGVvIGR1b25nIHR1eWVuIGJvIGN1YSBjaGluaCANCnBodSBkZSBkaS4N Cg0KVHJ1bmcgUXVvYyBiYXkgZ2lvIHR1eWVuIGJvIGR1b25nIGx1b2kgYm8sIGhhbmcgbmdheSBo byBjdSBjaG8gdGF1IGhhaSBnaWFtLCB0aGFtIGNoaQ0KY2EgbWF5IGJheSBkaW5oIHZpIHBoYXQg aGllbiBuZXUgbmd1IGRhbiB0YSB2dW90IGR1b25nIGRvIGxhIGhvIGJhdC4gTWEgbHVhdCBjdWEg aG8gcXV5IA0KZGluaCByb2ksIGhvIG5vaSByYW5nIGRvIGxhIGN1YSBUcnVuZyBRdW9jIG5lbiB2 aSBwaGFtIGxhIGJhdC4NCg0KQ29uIG51b2MgdGEgY3VuZyBub2kgZG8gbGEgY2h1IHF1eWVuIGN1 YSB0YSB2YSB0dXllbiB0cnV5ZW4gY2hvIG5ndSBkYW4gbmh1IHZheS4gIE5ndSANCmRhbiBjdSBk YW5oIGJhdCwgY29uIGhvIHRoaSBjaG8gbGEgdGEgdmkgcGhhbSBuZW4gYmF0IGJvLg0KDQpEbyB2 YXksIGRhIGRlbiBsdWMga2hvbmcgdGhlIHRydSB0cnUgZHVvYyBudWEgdmllYyBiYW4gaGFuaCBM dWF0IHZlIGJpZW4gdmEgeGF5IGR1bmcgDQpCbyBxdXkgdGFjIHVuZyB4dSBiaWVuIERvbmcgbWFu ZyB0aW5oIHJhbmcgYnVvYyBwaGFwIGx5IGNhby4NCg0KWGF5IGR1bmcgTHVhdCBjaHV5ZW4gc2F1 IHZlIGJpZW4gZGFvIGxhIG5oaWVtIHZ1IGN1YSBRdW9jIGhvaS4gVHJ1b2MgYW4gdG9hbiBjdWEg Y2FjIA0KdGF1IGNhIFZpZXQgTmFtIGxpZW4gdGllcCBiaSBkZSBkb2Egbmh1IHZheSwgdHJhY2gg bmhpZW0gUXVvYyBob2kgdHJvbmcgdmllYyBiYW8gdmUgbmd1IA0KZGFuIHRoZSBuYW8/DQoNClF1 b2MgaG9pIGNvIGhhaSBjaHVjIG5hbmcgbGEgbGFtIGx1YXQgdmEgZ2lhbSBzYXQgdGh1YyBoaWVu IHBoYXAgbHVhdC4gTWEgbHVhdCBiaWVuIGRhIA0KbGFtIGRlbiAzIG5oaWVtIGtpIHJvaSBtYSB2 YW4gY2h1YSB0aG9uZyBxdWEgZHVvYyB0aGkgc2FvIFF1b2MgaG9pIGdpYW0gc2F0LiBOZ2F5IGNh IA0Ka2hpIHRhIGdpYW0gc2F0IGNvIHRoZSBkdW9jIHRoaSBjdW5nIHRoaWV1IGNhbiBjdSBwaGFw IGxpIHRyb25nIG51b2MuDQoNClZpIHZheSwgdHJ1b2MgbWF0IFF1b2MgaG9pIGxhbSBzYW8gdGhv bmcgcXVhIGR1b2MgbHVhdCBiaWVuLg0KDQpVeSBiYW4gUXVvYyBwaG9uZyBBbiBuaW5oIGhpZW4g bmF5IGRhbmcga2llbiBuZ2hpIHBoYWkgc29tIHRob25nIHF1YSBsdWF0IGJpZW4gY2FuZyANCnNv bSBjYW5nIHRvdC4gQ2h1bmcgdG9pIGRlIG5naGkgdG90IG5oYXQgbmFtIDIwMTEgaG9hYyAyMDEy IGxhIGN1bmcuDQoNCkJheSBnaW8gY3UgZGVuIGhvaSBuZ2hpIG5hbyBkbyBsYWkgYmFvIHRlIG5o aSBuZW4gZ2FjIGxhaS4gVHJvbmcga2hpIGRvLCBjYWMgbnVvYyBiYW4gDQpoYW5oIHJhdCBuaGll dSByb2ksIHRoYW0gY2hpIGJhbiBoYW5oIHF1eSBkaW5oIGJhbyB2ZSAgYmllbiwgaGFpIGRhbyBy YXQgY3UgdGhlIG5ldSBhaSB4YW0NCnBoYW0gdGhpIHh1IGxpIHRoZSBuYW8uIFRyb25nIGRvLCBj byBxdXkgZGluaCB0cnVvbmcgaG9wIGNhbiB0aGlldCBzdSBkdW5nIG5odW5nIGJpZW4gDQpwaGFw IGRhYyBiaWV0IGJhbmcgdnUga2hpLCBiYW4gY2FuaCBjYW8gbmV1IGtob25nIHJhIHRoaSBiYW4g dGlldSBkaWV0Lg0KDQpUcnVvYyBuaHVuZyBnaSBkYSBkaWVuIHJhLCBybyByYW5nIHJhbmggZ2lv aSB0cmVuIGJpZW4gbGEgcmF0IG1vbmcgbWFuaCwgdmF5IG9uZyBjbyBkZSANCnh1YXQgZ2lhaSBw aGFwIGdpIGRlIGJhIGNvbiBuZ3UgZGFuIHRhIGR1b2MgYW4gdG9hbiBob24ga2hpIGxhbSBhbiB0 cmVuIGJpZW4/DQoNCkJpZW4gY3VhIHRhIG5lbiBkYW4gdGEgY28gcXV5ZW4gZGFuaCBiYXQgY2Eg dmEgY28gcXV5ZW4gaG9hdCBkb25nIHRyb25nIGxhbmggdGhvIGN1YSB0YS4NCkNhYyBudW9jIGNv IHRyYW5oIGNoYXAgZG8gcGhhaSBsYW0gdGhlIG5hbyB0b24gdHJvbmcgbmd1eWVuIHRhYyB1bmcg eHUgYmllbiBEb25nIGhpZW4gDQpuYXkgZGEga2kga2V0LiBHaXUgbmd1eWVuIHRyYW5nIHRoYWkg aGllbiBuYXksIGN1bmcgbmhhdSBraGFpIHRoYWMgdmEgbmV1IGNvIGNobyBuYW8gDQp0cmFuaCBj aGFwIHRoaSBwaGFpIGdpYWkgcXV5ZXQgdm9pIG5oYXUgYmFuZyB0aHVvbmcgbHVvbmcgaG9hIGJp bmguDQpUb3QgbmhhdCB0aG9uZyBiYW8gY2hvIG5oYXUsIGdpdSBob2Ega2hpLiBUYSBkb2kgdm9p IGNhYyBudW9jIGRhIHRoZSwgY2FjIG51b2MgY3VuZyBuZW4gdG9uIHRyb25nIG5odSB0aGUuIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA2L1NlLXN1YS1IaWVuLXBo YXAtbmdheS1jdW9pLW5hbS1uYXktOTE1MTAxLyAxNjo1MSwgMDkvMDYvMjAxMCAoR01UKzcpIA0K S3kgaG9wIHRodSA3IFF1b2MgaG9pIGtob2EgWElJDQoNClF1b2MgaG9pIGRhbmcgdmkgcGhhbSBw aGFwIGx1YXQga2hpIGtob25nIHR1YW4gdGh1IG5naGkgcXV5ZXQgZHVvYyBiYW4gaGFuaCBtb2kg bmFtDQoNCi0gTmhpZXUgZHUgYW4gbHVhdCBiaSBydXQgcmEgcmF0IG5oZSBuaGFuZywgdHV5IHRp ZW4sIHRodW9uZyBkZW4gc2F0IGt5IGhvcC4gDQotIE5hbSAyMDA4IHJ1dCA5IGR1IGFuIGx1YXQs IG5hbSAyMDA5IHJ1dCA1LCBjb24gdGFpIGt5IGhvcCB0aHUgNyBraG9hIFhJSSBuYW0gMjAxMCBu YXkgcmF0IG5oaWV1IGR1IGx1YXQgYmkgcnV0IGVtIHRoYW0uIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vY2hpbmh0cmkvMjAxMDA2L1NlLXN1YS1IaWVuLXBoYXAtbmdheS1jdW9pLW5hbS1u YXktOTE1MTAxLyAxNjo1MSwgMDkvMDYvMjAxMCAoR01UKzcpIA0KDQpRdW9jIGhvaTogIk5lIHRy YW5oIiBuaHVuZyBkdSBhbiBsdWF0IHF1YW4gdHJvbmcgDQoNCi0gQ2h1YSB0aG9uZyBxdWEgbHVh dCBiaWVuIHRyb25nIGtoaSBjYWMgbnVvYyB4dW5nIHF1YW5oIGRldSBjbyBMdWF0IEJpZW4sIGNo dWEgc3VhIEx1YXQgRGF0IGRhaS4uLg0KLSBMYW0gbHVhdCBkYXAgdW5nIHlldSBjYXUgTmhhIG51 b2MgbGEgY2hpbmgsIGRlIHRoaSBsYW0sIGtobyB0aGkgZGUgbGFpLCB0cm9uZyBraGkgDQpjYWkg a2hvIGxhaSBsaWVuIHF1YW4gZGVuIGRvaSBzb25nIGN1YSBuZ3VvaSBkYW4sIGRvYW5oIG5naGll cCwgcXVhbiBseSBuaGEgbnVvYywgZG9pIGhvaSBraGFjaCBxdWFuIGNhbiBjby4gIA0KLSBEYWkg YmlldSBRSCB5ZXUgY2F1IHZvaSBuaHVuZyBsdWF0IHRoYXQgc3UgY2FuIHRoaWV0IHRoaSBRSCBw aGFpIGN1b25nIHF1eWV0IHRpbSANCm1vaSBjYWNoIGR1YSByYSwgbmh1IEx1YXQgRGF0IGRhaSwg RGF1IHR1IGNvbmcsIFRpZXAgY2FuIHRob25nIHRpbi4uLiwgdmEgbmh1bmcgbHVhdCANCnJ1dCBy YSB0cm9uZyBuYW0gMjAxMCBuYXkgdGhpIHBoYWkgZHVhIHZhbyBuZ2F5IHRyb25nIG5hbSB0b2ku DQoNCmh0dHA6Ly9kYWliaWV1cXVvY2hvaS52aWV0bmFtbmV0LnZuL2NvbnRlbnQuYXNweD9pZD0y NzggQ2FvIE5oYXQgDQoNClF1b2MgSG9pOiBEYWkgYmlldSBraWVtIG5oaWVtIC0gQm8gdHJvIHRo aSBpdCwgdHJpZXQgdGlldSB0aGkgbmhpZXUgLSBLaG8gbGFtIHRyb24gaGFpICJ2YWkiDQoNCihE QlFILCBQaG8gQ2h1IHRpY2ggVXkgYmFuIFRVIE1UVFEgVk4gTmd1eWVuIFZhbiBQaGEgY2hvIHJh bmcgREJRSCBraWVtIG5oaWVtIHJhdCBraG8gbGFtIHRyb24gaGFpIHZhaS4gDQpUcm9uZyB0aG9p IGdpYW4gaG9wIFFILCBobyBjdW5nIGtob25nIHRoZSBibyBjb25nIHZpZWMgbyBjbyBxdWFuIHZh IG5ndW9jIGxhaS4pIA0KDQpodHRwOi8vY29uZ2Rhbi52bi92aS9idmN0L2lkODY3MS9DaHUtdGlj aC1RdW9jLWhvaS1odWEtdm9pLVR1b25nLUdpYXAtcGhhdC1odXktZGFuLWNodS8gMDYvMDEvMjAx MSANCg0KT25nIE5ndXllbiBQaHUgVHJvbmcgcmV1IHJhbzoga2hvbmcgbmd1bmcgcGhhdCBodXkg ZGFuIGNodSwgeGF5IGR1bmcgbmhhIG51b2MgY3VhIGRhbiwgZG8gZGFuLCB2aSBkYW4gLi4uICAN Cg0KaHR0cDovL2JveGl0dm4ud29yZHByZXNzLmNvbS8yMDEwLzA2LzMwL3Ryby1uZ29lLWQlRTEl QkElQTFpLWJpJUUxJUJCJTgzdS1raW0tbmhpJUUxJUJCJTg3bS1nJUUxJUJBJUI3cC1jJUUxJUJC JUFELXRyaS1jaHV5bi10cmNoLWglRTElQkIlOTlpLXRyJUM2JUIwJUUxJUJCJTlEbmctMjAwLWNo JUUxJUJCJTk3LWNoJUUxJUJCJTg5LTE1LW5nLyBidm5wb3N0IG9uIDMwLzA2LzIwMTAgTGUgTmh1 bmcgliBOZ3V5ZW4gUXVhbmcgQQ0KDQpRdW9jIEhvaTogJ1RyZW8gbmdvZScgZGFpIGJpZXUga2ll bSBuaGllbSBnYXAgY3UgdHJpIGNodXllbiB0cmFjaCAtIHF1YSBiYXQgaG9wIGx5IQ0KDQoqSG9p IHRydW9uZyAyMDAgY2hvLCBjaGkgMTUgbmd1b2kgZGVuIHRoaSBzYW8/DQoNCiJIbyBtb2kgbmh1 bmcgbmd1b2kgdGh1b2MgdGhhbmggcGhhbiBjbyBiYW4gdmEgbmh1bmcgbmd1b2kgZ2lhIG5odSBj aHVuZyB0b2kgY2hvIHllbiB0YW0iLCBvbmcgUXVhbmcgLWJvIGRvaSB4dWF0IG5ndSwgbm9pLiAN ClRodWMgdGUsIHRoYW5oIHBoYW4gdGhhbSBnaWEgY2FjIGJ1b2kgdGllcCB4dWMgY3UgdHJpIGxh dSBuYXkgaGF1IGhldCBsYSBuaHVuZyBuZ3VvaSBkYSBuZ2hpIGh1dS4NCg0KVHJ1b25nIEJhbiBE YW4gbmd1eWVuIFRyYW4gVGhlIFZ1b25nIHR1bmcgbm9pIGNvIG1vdCBkaWV1IHRyZW8gbmdvZSB0 cm9uZyBjb25nIHRhYyB0aWVwIHh1YyANCmN1IHRyaSBoaWVuIG5heSBsYSBEQlFIIHRoaSBwaGFu IG5oaWV1IGtpZW0gbmhpZW0sIGNvbiBjdSB0cmkgbGFpICJjaHV5ZW4gdHJhY2giLg0KDQpCYW8g Y2hpIG5ldSB5IGtpZW4gcmFuZyBkYSBzbyBkYWkgYmlldSBRdW9jIGhvaSBjaGkgdGh1YyBoaWVu ICJ0b2kgdGhpZXUiIG5naGlhIHZ1IGN1YSBtaW5oLCANCmRvIGxhIGRlbiBnYXAgY2FjICJkYWkg Y3UgdHJpIiBvIGhvaSBuZ2hpIHRpZXAgeHVjIGN1IHRyaSB2YSBoYXUgaGV0IGhvIGRpIHRpZXAg eHVjIGN1IHRyaSBtb3QgY2FjaCAiY2hpZXUgbGUiLg0KDQpOaHVuZyBjdW5nIGRlIGhpZXUgdmkg c2FvIGNhYyBkYWkgYmlldSBraG9uZyBjbyBkb25nIGx1YyBkZSBraG9uZyBsYW0gbW90IGNhY2gg Y2hpZXUgbGU6IG5oYW4geGV0IGN1YSANCmN1IHRyaSB2ZSBobyBraG9uZyBxdWFuIHRyb25nIGJh bmcgbmhhbiB4ZXQgY3VhICJ0byBjaHVjIiwga2hvbmcgcXVhbiB0cm9uZyBiYW5nIHZpZWMgaG8g ImR1b2MgY28gY2F1Ii4gDQpEYXkgbGEgY2FuIGJlbmggY2hpbmggbWEgbmV1IGtob25nIHN1YSB0 aGkgY2h1eWVuIGhpbmggdGh1YywgY2h1eWVuIGRhaSBiaWV1IGtpZW0gbmhpZW0gdGllcCB4dWMg Y3UgdHJpIA0KY2h1eWVuIG5naGllcCwgdmFuIHNlIGxhIGNodXllbiBkZSBoaWV1Lg0KDQpUaGFt IGNoaSwgZGUgZGFtIGJhbyBtb2kgZHVuZyAiZGFpIGN1IHRyaSIsIGtob25nIGl0IG5ndW9pIHBo YWkgcXVhIGNhYyB2b25nICJzb2F0IGdpYXkgbW9pIiBjdWMga3kgbmdoaWVtIG5nYXQuDQoNCk5v aSBuaHUgb25nIEhvYW5nIE5nb2MgS2hvaSAocXVhbiBDYXUgR2lheSkgdHJvbmcgYnVvaSB0aWVw IHh1YyB2b2kgQ2h1IHRpY2ggUUggTmd1eWVuIFBodSBUcm9uZyBtb2kgZGF5LCANCnRoaSB0dSBs dWMgZ3VpIHhlIHZhbyBkZW4gSG9pIHRydW9uZywgb25nIHBoYWkgcXVhIGJhIHZvbmcgc29hdCBn aWF5IG1vaS4NCg0KIkRhaSBiaWV1IFFIIG5lbiBuZ2hlIGR1b2MgbmhpZXUgdGllbmcgbm9pIGN1 YSBuaGlldSBnaWFpIHRhbmcgeGEgaG9pLCBuaGlldSBsdWEgdHVvaSwgbmhpZXUgZG9pIHR1b25n Li4uIA0KUGhhaSBuZ2hlIGR1b2MgbmhpZXUgaG9uIG5odW5nIHRpZW5nIG5vaSBob24gZ2lhbiBv YW4gc2F1IHRyb25nIGRhbiBnaWFuIiwgb25nIEtob2kgZ29wIHkuDQoNCkhpZW4gcGhhcCBuYW0g MTk5MiBnaGkgcm86ICJEYWkgYmlldSBRdW9jIGhvaSBsYSBuZ3VvaSBkYWkgZGllbiBjaG8geSBj aGksIG5ndXllbiB2b25nIGN1YSBuaGFuIGRhbiwgDQpraG9uZyBjaGkgZGFpIGRpZW4gY2hvIG5o YW4gZGFuIG8gZG9uIHZpIGJhdSBjdSByYSBtaW5oIG1hIGNvbiBkYWkgZGllbiBjaG8gbmhhbiBk YW4gY2EgbnVvYy4gRGFpIGJpZXUgDQpRdW9jIGhvaSBwaGFpIGxpZW4gaGUgY2hhdCBjaGUgdm9p IGN1IHRyaSwgY2hpdSBzdSBnaWFtIHNhdCBjdWEgY3UgdHJpOyB0aHUgdGhhcCB2YSBwaGFuIGFu aCB0cnVuZyB0aHVjIA0KeSBraWVuIHZhIG5ndXllbiB2b25nIGN1YSBjdSB0cmkgdm9pIFF1b2Mg aG9pIHZhIGNhYyBjbyBxdWFuIG5oYSBudW9jOyB0aHVjIGhpZW4gY2hlIGRvIHRpZXAgeHVjIHZh IGJhbyANCmNhbyB2b2kgY3UgdHJpIHZlIGhvYXQgZG9uZyBjdWEgbWluaCB2YSBRdW9jIGhvaSwg dHJhIGxvaSBuaHVuZyB5ZXUgY2F1IHZhIGtpZW4gbmdoaSBjdWEgY3UgdHJpLi4uIi4NCg0KRGUg dGh1YyBoaWVuIG5oaWVtIHZ1IGRhIGR1b2MgaGllbiBkaW5oLCBkYWkgYmlldSBwaGFpIHRodW9u ZyB4dXllbiBsaWVuIGxhYyB2b2kgY3UgdHJpIG1vaSBjbyB0aGUgdHJvIA0KdGhhbmggY2F1IG5v aSBnaXVhIGNoaW5oIHF1eWVuIHZvaSBuaGFuIGRhbi4NClRoZW8gcXV5IGRpbmgsIGRhaSBiaWV1 IGNvIHRoZSBjaG9uIGx1YSBuaGlldSBoaW5oIHRodWMgdGllcCB4dWMga2hhYyBuaGF1LiBDaGFu ZyBoYW4sIHRvIGNodWMgSG9pIG5naGkgDQp0aWVwIHh1YyBjdSB0cmkgKGRpbmgga3kgdHJ1b2Mg dmEgc2F1IGt5IGhvcDsgIHRoZW8gbm9pIGN1IHRydSwgbm9pIGxhbSB2aWVjOyB0aGVvIGNodXll biBkZSwgbGluaCB2dWMgDQptYSBkYWkgYmlldSBxdWFuIHRhbSkgaG9hYyBnYXAgZ28sIHRpZXAg eHVjIGNhIG5oYW4gaG9hYyBuaG9tIGN1IHRyaS4NCg0KTmh1IHZheSwgdG9pIHRoaWV1IG1vaSBu YW0gZGFpIGJpZXUgdGllcCB4dWMgY3UgdHJpIGJvbiBsYW4sIHRydW9jIHZhIHNhdSBtb2kga3kg aG9wLg0KDQpUaHVjIHRlLCBkYSBzbyBkYWkgYmlldSBjaGkgdGh1YyBoaWVuICJ0b2kgdGhpZXUi IG5naGlhIHZ1IGN1YSBtaW5oLCBkbyBsYSBkZW4gZ2FwIGNhYyAiZGFpIGN1IHRyaSIgbyBob2kg bmdoaS4NCg0KVGhlbyBtb3QgbnUgY2FuIGJvIG8gTWF0IHRyYW4gVG8gcXVvYyBxdWFuIEJhIERp bmgsIGdpYXkgbW9pIGR1b2MgcGhhdCBjaG8gY2EgY2FjIGJhbiB0cmUgbmh1bmcgYWkgY3VuZyBi YW4gZGkgbGFtLiANCg0KVGhhbSBjaGksIG5odSBjaGlhIHNlIGN1YSBuaGlldSBkYWkgYmlldSBz b25nIG1vdCBub2kgbmh1bmcgZHVvYyBiYXUgbyBub2kga2hhYyB0aGkgbmhpZXUga2hpLCBkbyBi YW4gYml1LCANCmhvIGtob25nIHRoZSAiYmF5IiB0dSBIYSBOb2kgdmUgY2FjIHRpbmggdGhhbmgg a2hhYyBkZSB0aWVwIHh1YyB0aGVvIGxpY2gsIGRhbmggcGhvIHRoYWMgY2hvIGRpYSBwaHVvbmcu IA0KVmF5IGxhIG5nb2FpIHRydSBzbyBpdCBvaSBjYWMgdmkgY2h1eWVuIHRyYWNoLCBoYXUgaGV0 IGRhaSBiaWV1IGRpIHRpZXAgeHVjICJjaGlldSBsZSIuDQoNClRyb25nIGN1b2MgdGllcCB4dWMg dm9pIENodSB0aWNoIFFIIE5ndXllbiBQaHUgVHJvbmcgc2F1IGt5IGhvcCB0aHUgYmF5IHZ1YSBx dWEsIGNvIHZpICJkYWkgY3UgdHJpIiBkZSB4dWF0IA0KbW9pIGRhaSBiaWV1IHBoYWkgInZpIGhh bmgiIG5oaWV1IGhvbi4gSG8gbmVuIGNodSBkb25nIHhheSBkdW5nIGtlIGhvYWNoLCBjaHVvbmcg dHJpbmgsIG5vaSBkdW5nIHRpZXAgeHVjIA0KY3UgdHJpIHZhIGNvbmcgYm8gcm9uZyByYWkgY2hv IGN1IHRyaSBraHUgdnVjIG1pbmggdW5nIGN1IGJpZXQuIEhvbiBudWEsIHR1eSB2YW4gZGUgcXVh biB0YW0sIGRhaSBiaWV1IGNvIHRoZQ0KdGllcCB4dWMgdm9pIGNhYyBjdSB0cmkgbGEgbmhhIGto b2EgaG9jLCB2b2kgdGhhbmggbmllbi4uLg0KDQoiRHVuZyBuZ29pIGRvIGNobyBjdSB0cmkgZGVu IHZvaSBtaW5oIG1hIHBoYWkgYmlldCBkZW4gdm9pIGN1IHRyaSBraGkgY2FuIHRoaWV0LiBWaSBk dSBraGkgYmFvIGNoaSBwaGFuIGFuaCANCm1vdCB2YW4gZGUgYnVjIHh1YyBjdWEgZGlhIHBodW9u ZyBob2FjIG1vdCBob2FuIGNhbmggY3UgdGhlIG5hbyBkbyB0aGkgZGFpIGJpZXUgbmVuIHRvaSBk byBnYXAgZ28gbmd1b2kgdGEgDQpjb2kgc2FvLiBOaHUgdGhlIHZ1YSBjaGlhIHNlIGR1b2MgdnVh IGNvIHRoZSB2b2kgdHUgY2FjaCBkYWkgYmlldSBsYW0gZ2kgZG8gZ2l1cCBobyIsIHRydW9uZyBk b2FuIERCUUggVFAgSENNIFRyYW4gSG9hbmcgVGhhbSBub2kuDQoNCihIYXUgaGV0IGRhbiBWaWV0 IE5hbSB0YSwgY2EgZG9pIGRpIGJhdSBjdSBRdW9jIGhvaSBtYSBjaHVhIGhlIGR1b2MgdGllcCB4 dWMgdm9pIGRhaSBiaWV1IGhheSB1bmcgY3Ugdmllbi4gDQpIb2F0IGRvbmcgY3VhIFF1b2MgaG9p IG5odSB0aGUgY29uIG5hbmcgdGluaCBjaGlldSBsZSwgZG9pIHBobywgeGEgcm9pIG5oYW4gZGFu OyBjaHVhIGRhcCB1bmcgbmd1eWVuIHZvbmcgY3VhIG5oYW4gZGFuLikgDQoNCmh0dHA6Ly92aWV0 bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwNi9MdWF0LUJpZW4tbHVpLWRlbi1iYW8tZ2lvLTkxNDIx MS8gMTY6NDcsIDA0LzA2LzIwMTAgKEdNVCs3KQ0KDQpRdW9jIEhvaTogTHVhdCBCaWVuIGx1aSBk ZW4gYmFvIGdpbz8NCg0KSG9wIHRvIHNhbmcgbmF5ICg0LzYpIGJhbiBjaHVvbmcgdHJpbmggbGFt IGx1YXQgY2hvIG5hbSAyMDExLCBQaG8gQ2h1IG5oaWVtIFV5IGJhbiBEb2kgbmdvYWkgUXVvYyBo b2kgDQpOZ28gUXVhbmcgWHVhbiB0aGEgdGhpZXQ6ICJMdWF0IEJpZW4gY29uIGx1aSBkZW4gYmFv IGdpbz8gRHVuZyB2aSBuaHVuZyB2YW4gZGUgbmhheSBjYW0gbWEgZGUgYW5oIGh1b25nIA0KdG9p IGxvaSBpY2ggZGFuIHRvYyIuDQoNClF1YW4gZGllbSBjdWEgIG9uZyBYdWFuIG5oYW4gZHVvYyBu aGlldSBkb25nIGNhbS4gQm9pIGR1IGFuIGx1YXQgbmF5IGRhICJydWMgcmljaCIgY2FjaCBkYXkg Z2FuIG11b2kgbmFtLCANCnR1IG5oaWVtIGt5IFFIIGtob2EgWC4gTmdheSB0cm9uZyBwaGllbiBo b3AgdHJ1IGJpLCBEQiBEdW9uZyBUcnVuZyBRdW9jIGRhICJwaGFuIHVuZyIgdmUgdmllYyBkb3Qg bmdvdCBydXQgDQpMdWF0IEJpZW4ga2hvaSBjaHVvbmcgdHJpbmggdmEgeWV1IGNhdSBDaGluaCBw aHUgbmhhbiB0cmFjaCBuaGllbS4NCg0KR2lhaSB0aGljaCB2b2kgY3UgdHJpIHRoZSBuYW8/DQoN Ck5vaSBuaHUgREIgRGFuZyBUaHVhbiBQaG9uZywgImRheSBsYSBkdSBhbiBsdWF0IGtoYW5nIGRp bmggdGluaCBkb2MgbGFwLCBjaHUgcXV5ZW4gbGFuaCB0aG8uIENoYW5nIGxlIGNoaSB2aSANCmx5 IGRvIG5oYXkgY2FtIG1hIGNodW5nIHRhIGtob25nIGN1b25nIHF1eWV0PyIuDQoNCktob25nIGNo aSBjYWMgREIgcXVhbiBkb2ksIERCIGNhYyB0aW5oIHZlbiBiaWVuIG1hIG5nYXkgREIgSGEgTm9p IFRyYW4gVGhpIFF1b2MgS2hhbmggY3VuZyB0aGFuOiAiQ2h1YSBjbyANCkx1YXQgQmllbiB0aGkg a2hvbmcgdGhlIHRoZSBjaGUgaG9hIG5naGkgcXV5ZXQgY3VhIERhbmcgdmUgY2hpZW4gbHVvYyBw aGF0IHRyaWVuIGJpZW4uIFNlIGdhcCBuaGlldSBraG8ga2hhbiANCnRyb25nIGhvYXQgZG9uZyB0 aHVjIGhpZW4gcXV5ZW4gY3VhIGNodW5nIHRhIHRyZW4gdnVuZyBiaWVuIi4gDQoNClBobyBDaHUg dGljaCBRSCBIdXluaCBOZ29jIFNvbiBjdW5nIHRyYW4gdHJvOiAiVGEgY2h1YW4gYmkgdHUga2hv YSBYLCBkaSB0aWVwIHh1YyBjdSB0cmkgY2FjIHRpbmggdmVuIGJpZW4gaG8gDQpkZXUgcmF0IG1v bmcsIG5odW5nIHJvaSAiZHVuZyBtb3QgY2FpIiBiaSBydXQsIGdpYWkgdGhpY2ggdm9pIGN1IHRy aSBraG8gbGFtIi4NCg0KTyBnb2MgZG8ga2hhYywgUGhvIENodSBuaGllbSBVQiBEb2kgbmdvYWkg TmdvIER1YyBNYW5oIHBoYW4gdGljaCwgZG9uZyB5IHZpZWMgZHVhIGx1YXQgcmEgdGhvaSBkaWVt IG5hbyBsYSANCmNhbiB0aGlldCwgbmh1bmcgdHUgZ29jIGRvIGRvaSBuZ29haSwgdGEgZGEgYmll dCB0cnVvYyBuYW0gMjAxMCBjbyBuaGlldSBzdSBraWVuIGRvaSBuZ29haSBxdWFuIHRyb25nLiBL aG9uZyANCnRoZSB2aSBuaHVuZyBseSBkbyAicGh1YyB0YXAiIGRlIHJ1dCBkdSBhbiBuYXkga2hv aSBjaHVvbmcgdHJpbmguDQoNCkhheSBub2kgbmh1IERCIE5ndXllbiBLaW0gSG9uZyAoRG9uZyBU aGFwKSwgdmllYyB0aG9uZyBxdWEgZHUgYW4gTHVhdCBCaWVuIHBodSB0aHVvYyB2YW8geSBjaGkg dmEgcXV5ZXQgdGFtLiANCg0KQ2F1IGNodXllbiB2ZSBkdSBhbiBMdWF0IEJpZW4gZHVvYyBkYW4g bGFpIG5odSBtb3QgZGllbiBoaW5oIGN1YSB2aWVjIGxhbSBsdWF0IHR1eSB0aWVuIG1hIGtob25n IGFpIGNoaXUgDQp0cmFjaCBuaGllbSwgY2hpIGtoaWVuIFFIIG1hdCB0aG9pIGdpYW4uIA0KDQpO aGlldSBEQlFIIGNobyByYW5nLCBuZXUgY2hpIHZpIGNvIHF1YW4gY2h1IHRyaSBjaHVhIGNodWFu IGJpIGtpcCB0aGkgZGkgbW90IG5oZSAoTHVhdCBUaHUgZG8pIG5odW5nIGhhdSBuaHUgDQpuaGll dSBkdSBhbiBsdWF0IGtoYWMgbGllbiBxdWFuIGRlbiB4YSBob2kgZGFuIHN1IChMdWF0IFRpZXAg Y2FuIHRob25nIHRpbiwgTHVhdCBCYW8gY2hpKSBjdW5nIGJpIGx1aSBsYWkuDQoNClRyb25nIGto aSBkbywgbmhpZXUgZHUgYW4gbHVhdCBjaHVhIGNhbiB0aGlldCwgaG9hYyBkdW9jIHNvYW4gc28g c2FpIHZhbiBsYW4gbHVvdCBkdW9jIHRob25nIHF1YS4NCg0KVHJhY2ggbmhpZW0gImR1YSB2YW8s IHJ1dCByYSIgdHV5IHRpZW4NCg0KTmdheSBjaHUgbmhpZW0gY2FjIHV5IGJhbiBjdW5nICJrZXUg dHJvaSIgdmkgMjAxMCBsYSBuYW0gY28gdG9pIDYgZHUgYW4gbHVhdCB2dWEgcnV0IHJhLCBob2Fj IGtlbyB2ZSBkaWV1IGNoaW5oLiANCkNvIHZpIERCIHR1bmcgdGhhbSBnaWEgbmhpZXUga2hvYSBR SCBjdW5nIHBoYW4gbmFuIGhhaSBuYW0gMjAwOSwgMjAxMCBjbyBuaGlldSBkdSBhbiBsdWF0IGRp ZXUgY2hpbmggdmEgInJ1dCByYSwgDQpydXQgdmFvIiBkb3QgbmdvdCBuaGF0LiBPbmcgTmdvIFZh biBNaW5oIGdvaSBkYXkgbGEgImdpb24gY2hvaSB2b2kgUXVvYyBob2kiLiANCg0KaHR0cDovL3d3 dy50by1xdW9jLm5ldC9tZW1vL3RvcXVvYyUyMDA2MC0xMDAvdG9xdW9jJTIwMDg3LzAsLDEwMi5o dG1sIFNvIDg3IE5nYXkgMTWWMDWWMjAxMCANCg0KMTcgdmkgTGFvIHRoYW5oLCBjYW4gYm8sIGRh bmcgdmllbiBndWkgdGh1IGtpZW4gbmdoaSBjbyBsaWVuIHF1YW4gdG9pIG9uZyBOZ3V5ZW4gUGh1 IFRyb25nIA0KDQpUaHUgZ3VpOiBCbyBDaGluaCB0cmkgLSBCYW4gQmkgdGh1IFRydW5nIFVvbmcg dmEgY2FjIFV5IHZpZW4gQkNIVFUgS2hvYSAxMA0KDQpIYSBOb2ksIG5nYXkgMjIgdGhhbmcgNCBu YW0gMjAxMA0KDQpNb3QgdHJvbmcgbmh1bmcgbmhpZW0gdnUgY28gYmFuIG5oYXQgY3VhIERhaSBo b2kgZGFpIGJpZXUgdG9hbiBxdW9jIGN1YSBEYW5nIHNhcCBkZW4gDQooRGFpIGhvaSAxMSkgbGEg YmF1IGN1IGR1b2MgQmFuIGNoYXAgaGFuaCBUVyBnb20gbmh1bmcgZGFpIGJpZXUgdXUgdHUgbmhh dCBjdWEgRGFuZywgDQpuaHVuZyBuZ3VvaSBndW9uZyBtYXUgdmUgcGhhbSBjaGF0IGRhbyBkdWMg Y2FjaCBtYW5nLCBjbyBiYW4gbGluaCBjaGluaCB0cmkgdnVuZyANCnZhbmcgbmhhdCwga2llbiBk aW5oIG11YyB0aWV1IGx5IHR1b25nIGRvYyBsYXAgZGFuIHRvYyBnYW4gbGllbiBjaHUgbmdoaWEg eGEgaG9pLCBjbyB5IGNoaSANCmRhdSB0cmFuaCBraWVuIGN1b25nIGJhbyB2ZSBkb2MgbGFwLCBj aHUgcXV5ZW4gcXVvYyBnaWEsIGNvIHRhbSBuaGluIGNoaWVuIGx1b2MgdmEgbmFuZyANCmx1YyB0 byBjaHVjIGNoaSBkYW8gdGh1YyBoaWVuIHRoYW5nIGxvaSBuZ2hpIHF1eWV0IGRhaSBob2kuIFRv bmcgYmkgdGh1IHZhIGNhYyB1eSB2aWVuIEJvIA0KY2hpbmggdHJpIHBoYWkgbGEgbmh1bmcgbmd1 b2kgdXUgdHUgbmhhdCB0cm9uZyBCQ0guVC5XLiBEdXQga2hvYXQga2hvbmcgZGUgbmh1bmcgDQpu Z3VvaSBjbyBkaW5oIGRlbiB0aGFtIG5odW5nIHZhIG5odW5nIG5ndW9pIFZpZXQgZ29jIG51b2Mg bmdvYWkgdmFvIEJDSC5ULlcuDQoNCkRlIGNvIGR1b2MgbW90IEJDSCBULlcgY28gZGF5IGR1IGNh YyB0aWV1IGNoaSBub2kgdHJlbiwgY29uZyB0YWMgbmhhbiBzdSBkYWkgaG9pIGNhbiANCmR1b2Mg dGllbiBoYW5oIGNvbmcga2hhaSwgZGFuIGNodSwga2hhY2ggcXVhbiwgdHJvbmcgc2FuZyB2YSB2 b2kgdHJhY2ggbmhpZW0gY2FvIGN1YSANCm1vaSBkYWkgYmlldS4NCg0KTmhhbiB0aHVjIHJvLCBk YXkgZHUgdHJhY2ggbmhpZW0gdmEgbmdoaWEgdnUgbmd1b2kgZGFuZyB2aWVuIGdoaSB0cm9uZyBk aWV1IGxlIERhbmcsIA0KDQpjaHVuZyB0b2kgbmh1bmcgY2FuIGJvIGNhbyBjYXAgZGEgbmdoaSBj YWMgY2h1YyBkYW5oIGNvbmcgdGFjIHRyb25nIGJpZW4gY2hlIG5oYSBudW9jLCANCmRhIDgwLCA5 MCB0dW9pIGRvaTsgNjAgliA3MCB0dW9pIERhbmcsIGRhIGRlbSBjYSB0YW0gdHJpIHZhIHN1YyBs dWMgY3VhIGRvaSBtaW5oIGNvbmcgDQpoaWVuIGNobyBzdSBuZ2hpZXAgY2FjaCBtYW5nIHZlIHZh bmcgY3VhIERhbmcsIGN1YSBkYW4gdG9jLCB4aW4gZHVvYyBkb25nIGdvcCBtb3Qgc28gDQp5IGtp ZW4gdmUgY29uZyB0YWMgbmhhbiBzdSBkYWkgaG9pOg0KDQoxLiBQaGFpIGRhbSBiYW8gY2FjIGRh aSBiaWV1IHZlIGR1IGRhaSBob2kgY28gZGF5IGR1IGNhYyB0aWV1IGNoaSBjYW4gdGhpZXQsIHBo YWkgbGEgbmh1bmcgDQpuZ3VvaSB1dSB0dSBuaGF0IHZlIHBoYW0gY2hhdCwgZGFvIGR1YywgbmFu ZyBsdWMuIEJvIGNoaW5oIHRyaSwgQmFuIEJpIHRodSBULlcuIGtob2EgMTAgDQp2YSBCYW4gdGhh bSB0cmEgdHUgY2FjaCBkYWkgYmlldSBjYW4gZGUgY2FvIHRyYWNoIG5oaWVtLCByYSBzb2F0IGt5 IGx1b25nLCBrZSBjYSB2b2kgDQpuaHVuZyBkYWkgYmlldSBsYSB1eSB2aWVuIFQuVyBraG9hIDEw IGRlIHBoYXQgaGllbiB2YSB0cmluaCBkYWkgaG9pIHhlbSB4ZXQgdHUgY2FjaCANCm5odW5nIGRh aSBiaWV1IHZ1YSBxdWEgY28gdmkgcGhhbSBreSBsdWF0IHZhIG5odW5nIHZhIGNvIGRhdSBoaWV1 IHZpIHBoYW0ga3kgbHVhdCwgDQpuaHVuZyBuZ3VvaSBjbyBkaW5oIGRlbiB0aGFtIG5odW5nLCBu aHVuZyBkYWkgYmlldSBsYSBuZ3VvaSBWaWV0IGdvYyBudW9jIG5nb2FpLg0KDQoyLiBEYW5oIHNh Y2ggZGUgYmF1IEJDSCBULlcgcGhhaSB0b25nIGhvcCB0dSAzIG5ndW9uOg0KDQotIE1vdCBwaGFu IGNobyBCQ0guVC5XIGN1IGRlIGN1IChraG9hbmcgNjAlKS4NCi0gTW90IHBoYW4ga2hvbmcgbmhv IG5lbiBkZSBjYWMgRGFuZyBibywgY2FjIGRhbmcgdmllbiwgZG9hbiBkYWkgYmlldSBkZSBjdS4N Ci0gTW90IHBoYW4gbmVuIGtodXllbiBraGljaCBkYWkgYmlldSB0dSB1bmcgY3UuDQoNCkRhbmgg c2FjaCBkZSBiYXUgKHRpbmggY2EgY2hpbmggdGh1YyB2YSBkdSBraHV5ZXQpIG5lbiBjbyBzbyBk dSBpdCBuaGF0IDI1JSBzbyB2b2kgc28gY2FuIGJhdS4NCg0KRGFuaCBzYWNoIGJhdSBCLkMuVCwg QmFuIGJpIHRodSwgVUJLVFRXIGNhbiBjbyBzbyBkdSBpdCBuaGF0IDI1JS4gDQoNCkRhbmggc2Fj aCBiYXUgY2h1YyBkYW5oIGN1IHRoZSBuZW4gY28gdHUgMiBuZ3VvaSB0cm8gbGVuLg0KDQotIE5l biBkZSBkYWkgaG9pIHRydWMgdGllcCBiYXUgVG9uZyBiaSB0aHUuIFZpIGxlIGRvIHZpZWMgdGhv bmcgcXVhIGRpZXUgbGUgc3VhIGRvaSBuZW4gbGFtIHRydW9jIGx1YyBiYXUgY3UuIA0KDQozLiBC Q0ggVC5XLiBraG9hIDExIGtob25nIG5lbiB2dW90IHNvIGx1b25nIDE1MCwga2hvbmcgbmVuIGNv IGNhdSByYWkgZGV1IEJvLCBuZ2FuaCwgDQp0aW5oLCB0aGFuaCBuYW8gY3VuZyBjbyB1eSB2aWVu IFQuVy4sIHF1YW4gdHJvbmcgbGEgY2hhdCBsdW9uZy4NCg0KVHJlIGhvYSBsYSBjYW4sIG5odW5n IGtob25nIHF1YSBjdW5nIG5oYWMgdmUgdHVvaSB0YWMsIG1hIGNhbiBtb3Qgc3Uga2UgdGh1YSwg aGFpIGhvYSANCmdpdWEgY2FjIGRvIHR1b2kuIEN1bmcgY2FuIGNvIG5nb2FpIGxlIHZlIHR1b2kg dGFjIHZvaSBjaHVjIGRhbmggVG9uZyBiaSB0aHUuIE5ldSBjbyANCmRvbmcgY2hpIHV1IHR1IG5v aSB0cm9pIGhvbiBjYSB0cm9uZyBjYWMgZGFuZyB2aWVuIHV1IHR1LCBwaGFtIGNoYXQgZGFvIGR1 YyBndW9uZyBtYXUsIA0KdHV5ZXQgZG9pIHRydW5nIHRoYW5oIHZvaSBseSB0dW9uZywgdm9pIGRh biwgdm9pIG51b2MsIGNvIG5hbmcgbHVjLCBjbyB0YW0gbmhpbiB4YSwgY28gYmFuIA0KbGluaCBj aGluaCB0cmkgdnVuZyB2YW5nLCBjbyB5IGNoaSB0dSBjdW9uZyB0dSBjaHUsIGNvIHRpbmggdGhh biBkYXUgdHJhbmggYmFvIHZlIGRvYyBsYXAgDQpjaHUgcXV5ZW4gdmEgbG9pIGljaCBxdW9jIGdp YSwgdGFjIHBob25nIGRhbiBjaHUsIGNvIHV5IHRpbiB0cm9uZyBEYW5nIHRyb25nIGRhbiwgY28g a2hhIA0KbmFuZyBkb2FuIGtldCB0b2FuIERhbmcsIHRvYW4gZGFuIHRvYyB0aGkgdmFuIGRlIHR1 b2kga2hvbmcgZGF0IHJhLCBtaWVuIGxhIGNvbiBkdSBzdWMga2hvZSBkYW0gZHVvbmcgdHJvbmcg dHJhY2guDQoNCjQuIERhaSBob2kgdG9hbiBxdW9jIGN1YSBEYW5nIGxhbiB0aHUgMTEsIHBoYWkg dGh1YyBzdSBkYW4gY2h1LCBwaGFpIHRoZSBoaWVuIHRvdCB0aW5oIA0KdGhhbiBwaGUgYmluaCwg dHUgcGhlIGJpbmgsIHBoYWkgY28gdGluaCBjaGllbiBkYXUsIHBoYWkgdHJhbmggbHVhbiBkZSB0 aW0gcmEgY2FpIGR1bmcgY2FpIA0Kc2FpLCBraG9uZyBuZW4gcGhhdCBiaWV1IHRoZW8gZG9uIGRh dCBoYW5nLiBCbyBsb2kgdGhhbSBsdWFuIHRyYW5nIGdpYW5nIGRhaSBoYWksIG5vaSB2YWkgDQpj YXUgIm5oYXQgdHJpIHZvaSBiYW8gY2FvIiByb2kga2UgbGUgdGhhbmggdGljaCBjdWEgdGluaCBt aW5oLCBuZ2FuaCBtaW5oIG1vdCBjYWNoIHZvIGJvLg0KDQpDYWMgdmFuIGRlIGNodW5nIGN1YSBk YWkgaG9pIGNhbiBkdW9jIHRpZW4gaGFuaCB0cm9uZyBjYWMgcGhpZW4gaG9wIGNvbmcga2hhaSwg aGV0IHN1YyANCmhhbiBjaGUgbmh1bmcgY3VvYyBob3AgcmllbmcgdGFpIGNhYyBkb2FuIGRhaSBi aWV1LCBraG9uZyBuZW4gcXVhIGxhbSBkdW5nIGNhYyBwaGllbiANCmhvcCB0cnUgYmkuIENhbiBk YW5oIHRvaSBkYSB0aG9pIGdpYW4gZGFpIGhvaSBjaG8gdmllYyB0aGFvIGx1YW4gdHJhbmggbHVh biB0YWkgaG9pIHRydW9uZy4NCg0KNS4gSGllbiB0YWkgc28gZGFuZyB2aWVuIHRyb25nIGRvaSBu Z3UgY2FuIGJvIGh1dSB0cmkgY2FjIGNodWMgZGFuaCB0cm9uZyBiaWVuIGNoZSBuaGEgDQpudW9j IHZhIHRoZW8gbHVhdCBsYW8gZG9uZyBjaGllbSBnaWEgbW90IG51YSB0cm9uZyB0b25nIHNvIHRy ZW4gMywxIHRyaWV1IGRhbmcgdmllbi4gDQpEYW5nIHZpZW4ga2hvbmcgaHV1IHRyaSB2ZSBEYW5n LCBobyB2YW4gY28gZGF5IGR1IHRyYWNoIG5oaWVtLCBuZ2hpYSB2dSwgcXV5ZW4gbG9pIA0KdHJv bmcgRGFuZywgaG8gcGhhaSBkdW9jIGRvaSB4dSBiaW5oIGRhbmcgbmh1IG5odW5nIGRhbmcgdmll biBkdW9uZyBjaHVjLCBkdW9uZyANCnF1eWVuLiBWaSBsZSBkbyB0cm9uZyBkYWkgaG9pIERhbmcg Y2FjIGNhcCBjaG8gZGVuIGRhaSBob2kgdG9hbiBxdW9jIGN1YSBEYW5nLCBobyBjYW4gDQpjbyBt b3QgdHkgbGUgdGhpY2ggZGFuZyB0cm9uZyB0aGFuaCBwaGFuIGRhaSBiaWV1IGRhaSBob2kgY2Fj IGNhcC4gTmV1IGR1IHRpZXUgY2h1YW4gdmEgDQpzdWMga2hvZSBobyBjbyBxdXllbiB1bmcgY3Ug dmFvIGNhYyBjYXAgdXkgRGFuZyB0dSBjbyBzbyBxdWFuLCBodXllbiwgdGluaCB0aGFuaCBkZW4g VC5XLg0KDQo2LiBEZSBnaXVwIGNhYyBkb25nIGNoaSB0cm9uZyBCbyBjaGluaCB0cmksIEJhbiBi aSB0aHUgVC5XIERhbmcga2llbSBkaWVtIHRyYWNoIG5oaWVtIA0KY3VhIG1pbmggdHJ1b2MgQkNI LlQuVyB2YSB0cnVvYyBkYWkgaG9pLCBydXQgcmEgZHVvYyBuaHVuZyBiYWkgaG9jIGNhbiB0aGll dCBraG9uZyANCm5odW5nIGNobyBiYW4gdGhhbiBtYSBjb24gY2hvIG5odW5nIGRvbmcgY2hpIGdp dSBjYWMgdHJvbmcgdHJhY2ggdHJvbmcgQm8gY2hpbmggdHJpIC0gDQpCYW4gQmkgdGh1IFQuVy4g a2hvYSAxMSwgY2h1bmcgdG9pIHNlIGxhbiBsdW90IHRoYW0gZ2lhIHkga2llbiwgdHJ1b2MgbWF0 IHRyb25nIHBoYW0gdmkgDQpidWMgdGh1IG5heSwgeGluIGR1b2MgZ29wIHkgdm9pIDQgZG9uZyBj aGk6DQoNCmwsIFZvaSBUb25nIGJpIHRodSBOb25nIER1YyBNYW5oLCBub2kgdGh1YyBsYSBjYSBi YW4gdGhhbiBjaHVuZyB0b2kgY3VuZyBuaHUgZHUgbHVhbiANCmRvbmcgZGFvIGNhbiBibywgZGFu ZyB2aWVuIHRoYXQgdm9uZyB2ZSBuaHVuZyBnaSBtaW5oIG1vbmcgIGRvaSB2YSBoeSB2b25nIG8g MiBuaGllbSANCmt5IFRvbmcgYmkgdGh1IGN1YSBkb25nIGNoaS4gRHUgbHVhbiBjaGUgbmhpZXUg aG9uIGtoZW4gYmFuIGxpbmggY2hpbmggdHJpIGN1YSBkb25nIGNoaSANCnRyb25nIHVuZyB4dSB2 b2kgbmhpZXUgc3Uga2llbiwgbmhpZXUgY29uZyB2aWVjIGNhIGRvaSBub2kgdmEgZG9pIG5nb2Fp LiBOZ3VvaSB0YSBraG9uZyANCmx5IGdpYWkgZHVvYyBkbyBsYSBkbyBuYW5nIGx1YyBoYXkgZG8g c3VjIGVwIG5hbyBkbz8gRHUgbHVhbiBuaGlldSBjYW4gYm8gZGFuZyB2aWVuIGNobyANCnJhbmcg dHJvbmcgbHVjIGRvbmcgY2hpIGNodWEgdGh1YyBoaWVuIGRheSBkdSBjaHVjIG5hbmcgVG9uZyBi aSB0aHUgKHZpZWMgY2hpbmggY3VhIA0KbWluaCkgdHJvbmcgeGF5IGR1bmcgRGFuZyBsYWkgbGFu IHNhbiBzYW5nIHZpZWMgY3VhIENodSB0aWNoIG51b2MgdmEgVGh1IHR1b25nICh0aG9hIA0KdGh1 YW4sIGt5IGtldCB2b2kgY2FjIGNoaW5oIHBodSBudW9jIG5nb2FpIG1vdCBzbyBub2kgZHVuZyB0 aHVvYyBjaHVjIG5hbmcgbmhhIG51b2MpLiANCkNvIGR1IGx1YW4gY2hvIHJhbmcgZG9uZyBjaGkg ZGEgdmkgcGhhbSBuZ3V5ZW4gdGFjIHRyb25nIHF1YW4gaGUgdm9pIG51b2MgbmdvYWkgbyANCm5o dW5nIHZhbiBkZSBtYSBCbyBjaGluaCB0cmkgY2h1YSBiYW4gYmFjLg0KDQpMYSBUb25nIGJpIHRo dSBzb25nIGl0IHRoYXkgZG9uZyBjaGkgY2h1IGRvbmcgcGhhdCBoaWVuIHZhIGRlIHh1YXQgbmh1 bmcgdmFuIGRlIGNhbiANCmJhbiwgbmh1bmcgdmFuIGRlIGJ1YyB4dWMgY3VhIERhbmcsIGN1YSBk YXQgbnVvYyBkZSBCbyBjaGluaCB0cmkgYmFuIGJhYyB0aGFvIGx1YW4uIA0KQ2hhbmcgaGFuIG5o dTogcGhhIGJvIGhvaSB0cnVvbmcgQmEgRGluaCBzYXUga2hpIGNvIHBoYW4gdW5nIHF1eWV0IGxp ZXQgY3VhIGxhbyB0aGFuaCANCmNhY2ggbWFuZywgY3VhIGNhYyBuaGEga2hvYSBob2MsIGN1YSBk YSBzbyBuaGFuIGRhbjsgY2hvIG51b2MgbmdvYWkgZGF1IHR1IGtoYWkgdGhhYyANCkJvLXhpdCBU YXkgbmd1eWVuOyB2YW4gZGUgY2h1IHF1eWVuIHRyZW4gYmllbiBkYW87IHZhbiBkZSBjb25nIG5n aGllcCBxdW9jIHBob25nLCANCmhpZW4gZGFpIGhvYSBxdWFuIGRvaTsgY2FjIHZhbiBkZSBub2kg Y29tIHZlIHNhaSBwaGFtIGN1YSBUb25nIGN1YyBJSSwgdmEgTmd1eWVuIENoaSANClZpbmguIE5n dXllbiBDaGkgVmluaCBwaGFtIGNoYXQgeGF1IHhhLCBsYW0gbmhpZXUgc2FpIHRyYWksIERhaSB0 dW9uZyBWbyBOZ3V5ZW4gR2lhcCANCmd1aSB0aHUgY2hvIFQuQi5UIGtob25nIG5lbiBkZSBiYXQg VHJ1bmcgdHVvbmcsIGQvYyBOb25nIER1YyBNYW5oIHRyYSBsb2kgRGFpIHR1b25nIA0KbGEgImto b25nIHRoYW5nIFRydW5nIHR1b25nLCBjb24gY2h1YSBiaWV0IGR1YSBkaSBkYXUgZGUgcmVuLi4u IGx1eWVuIiwgbmh1bmcgcm9pIHZhbiBkZSANCmJhdCBUcnVuZyB0dW9uZyB2YSBUaHUgdHJ1b25n IHF1b2MgcGhvbmcsIGNvbiB0YW5nIGh1YW4gY2h1b25nIGNhbyBudWEgKG1hIGQvYyBsYWkgbGEg DQpCaSB0aHUgRGFuZyB1eSBxdWFuIHN1KSwgZGUgbW90IHNvIG5vaSBjYXAgdXkgY2FuIHRoaWVw IHNhdSB2YW8gdmllYyB0cnV5IHRvIHhldCB4dTsgY2FjIA0KdnUgYW4gbWEgQkNIIFQuVy4ga2hv YSA4LCBiYW4gZ2lhbyBjaG8gVC5XIGtob2EgOS4gDQoNCkxhIG5ndW9pIGR1bmcgZGF1IEJvIGNo aW5oIHRyaSwgdm9pIHRyYWNoIG5oaWVtIGNodSB5ZXUgdHJvbmcgdmllYyB4YXkgZHVuZyBEYW5n LCBkYSANCmRlIG5odW5nIHZhbiBkZSBjb3QgbG9pIHRyb25nIERhbmcgbmh1IGRhbiBjaHUgbm9p IGJvIGtob25nIHRodWMgaGllbiwgeGF5IGR1bmcgZG9pIA0Kbmd1IGNhbiBibyBkYW5nIHZpZW4g bGFtIHF1YSBpdC4gVGUgcXVhbiBsaWV1IGNodXllbiBxdXllbiBkb2MgZG9hbiBwaGF0IHRyaWVu IG1hbmg7IA0KcGhlIGJpbmggdHUgcGhlIGJpbmggZGFuIGRhbiB2YW5nIGJvbmcgdHJvbmcgc2lu aCBob2F0IGN1YSBjYWMgdG8gY2h1YyBEYW5nLCB0dSBjbyBzbyANCmRlbiBULlcuLCBkZW4gQm8g Y2hpbmggdHJpLiBIYWkgbmhpZW0ga3kgcm9pIG1hIGNhaSBnb2kgbGEgbW90IGJvIHBoYW4ga2hv bmcgbmhvIGNhbiANCmJvIGRhbmcgdmllbiBjbyBjaHVjIGNvIHF1eWVuIHRpZXUgY3VjIGNoYW5n IG5odW5nIGtob25nIGR1b2MgdGh1IGhlcCBtYSBsYWkgbG9uIGRhbiANCmxlbi4gTWF0IGRhbiBj aHUgdmEgY2FuIGJvIGh1IGhvbmcgZGEgbGFtIGNobyBEYW5nIG1hdCB0aW4gbmhpZW0gcXVhIGxv bi4gTmhpZXUgZHUgDQpsdWFuIGNobyByYW5nIFRvbmcgYmkgdGh1IGRhIGxvaSBkdW5nIGNodWMg cXV5ZW4gZGUgZ28gZXAgbm9pIGF5IG5vaSBraWEgZHVhIGNvbiB0cmFpLCANCmNvbiBnYWksIGNv biByZSB2YW8gY2FjIGNodWMgZGFuaCBtYSBuYW5nIGx1YywgcGhhbSBjaGF0LCBkYW8gZHVjIGto b25nIHR1b25nIHh1bmcuDQoNCjIsIERvbmcgY2hpIChkL2MpIHV5IHZpZW4gQi5DLlQgTmd1eWVu IFBodSBUcm9uZzogUXVhIGhhaSBuaGllbSBreSB0aGFtIGdpYSBCbyBjaGluaCANCnRyaSwgdm9p IHZhaSB0cm8gbGEgQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSwgQ2h1IHRpY2ggSG9pIGRvbmcgbHkg bHVhbiBULlcuLCBDaHUgdGljaCANClF1b2MgaG9pLCB0dXkgY28gbGFtIGR1b2MgbW90IHNvIHZp ZWMsIG5odW5nIHNvIHZvaSB0cm9uZyB0cmFjaCB0aGkgY29uIG5oaWV1IGhhbiBjaGUuIA0KQ2Eg bW90IHRob2kgZ2lhbiBkYWkgbGEgQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSBkZSB0aGFuaCBwaG8g cXVhIHRyaSB0cmU7IGRlIG5oaWV1IGNhbiBibyANCmRpbmggZGVuIHRpZXUgY3VjIHZlIHRhaSBz YW4sIHRhaSBjaGluaCwgbmhhIGRhdCwgY28gY2EgQ2h1IHRpY2ggdmEgbW90IHNvIFBobyBjaHUg dGljaCANCnRoYW5oIHBoby4gTmdoaWVtIHRyb25nIGxhIGRlIGNobyBDaHUgdGljaCBsb2kgZHVu ZyBjaHVjIHF1eWVuIGxhbSBnaWF1LCBkdW5nIHRpZW4gDQpjb25nIHF1eSBtdWEgbyB0byBxdWEg ZGF0LCBxdWEgc2FuZyBkZSBkdW5nIChuZ3VvaSB0YSBiYW8gcmFuZyAzMDAwIGNvbiB0cmF1IGN1 YSBub25nIA0KZGFuKS4gTGVuIFQuVy4gdm9pIGN1b25nIHZpIENodSB0aWNoIEhvaSBkb25nIGx5 IGx1YW4gY2h1YSB0aGF5IHBoYXQgaGllbiBkdW9jIHZhbiBkZSANCmdpIG1vaSB2ZSBseSBsdWFu LCBuaGlldSBkdSBsdWFuIGNobyBkb25nIGNoaSBnaWFvIGRpZXUsIHNhbyBjaGVwLg0KDQpMYSBD aHUgdGljaCBRdW9jIGhvaSBjaHVhIHBoYXQgaHV5IGRhbiBjaHUsIHRyaSB0dWUgY3VhIGNhYyBk YWkgYmlldSB2YSBxdXllbiBsdWMgY2FvIA0KbmhhdCBjdWEgcXVvYyBob2kgY2hpIHhpbiBuZXUg bW90IHZhaSB2aWVjIGRpZW4gaGluaDoNCg0KLSBWaWVjIHBoYSBibyBob2kgdHJ1b25nIEJhIERp bmgsIG1vdCBkaSB0aWNoIGxpY2ggc3UgY2FjaCBtYW5nIHRpZXUgYmlldSBjdWEgdGhvaSBreSBk YXUgDQp4YXkgZHVuZyBDTlhIIG8gbWllbiBCYWMsIGdhbiB2b2kgbmhpZXUgaG9hdCBkb25nIGN1 YSBCYWMgSG87IGdhbiB2b2kgMTAgbmhpZW0ga3kgDQpRdW9jIGhvaSB2b2kgbmhpZXUgZGFpIGhv aSBEYW5nIHRvYW4gcXVvYyB2YXkgbWEgYmF0IGNoYXAgY2FjIGtpZW4gbmdoaSB0YW0gaHV5ZXQg Y3VhIA0KZG9uZyBkYW8gY2FjIG5oYSBsYW8gdGhhbmggY2FjaCBtYW5nLCBjYWMgbmhhbiBzaSB0 cmkgdGh1YywgY2FjIG5oYSBraG9hIGhvYywgbmhhIHF1YW4gDQpseSB2YSB0dXlldCBkYWkgZGEg c28gbmhhbiBkYW4sIGRvbmcgY2hpIGRhIHRodXlldCBwaHVjIGJhbmcgZHVvYyBRdW9jIGhvaSBi aWV1IHF1eWV0IA0KdGhvbmcgcXVhLg0KDQotIFZpZWMgbW8gcm9uZyB0aHUgZG8gSGEgTm9pLCB4 b2EgZGkgaGFuIG1vdCB0aW5oIGRlIG5oYXAgdmFvIG1vdCBkb24gdmkga2hhYyB2YXkgbWEgDQpD aHUgdGljaCBRdW9jIGhvaSBraG9uZyBjaHUgZG9uZyBkdWEgdmFuIGRlIHRyb25nIGRhaSBkbyBy YSBRdW9jIGhvaSBiYW4gYmFjIHRoYXUgZGFvLCANCmR1YSBRdW9jIGhvaSB2YW8gdGluaCB0aGUg InZpZWMgZGEgcm9pIiwgY2hhbmcgbGFtIHRoZSBuYW8ga2hhYyBkdW9jIQ0KDQotIFZhbiBkZSBk YXUgdHUga2hhaSB0aGFjIEJvLXhpdCBvIFRheSBOZ3V5ZW4sIG1vdCB2aWVjIGxpZW4gcXVhbiBk ZW4gYW4gbmluaCAtIHF1b2MgDQogcGhvbmcga2hvbmcgbmh1bmcgbyBUYXkgTmd1eWVuIG1hIHZv aSBjYSBudW9jOyBsaWVuIHF1YW4gZGVuIG1vaSB0cnVvbmcga2hvbmcgDQpuaHVuZyBvIFRheSBO Z3V5ZW4gbWEgdm9pIG5oaWV1IHRpbmggdGhhbmggTmFtIGJvOyBsaWVuIHF1YW4gZGVuIGxvaSBp Y2ggZG9uZyBiYW8gDQp0aGlldSBzbyBUYXkgTmd1eWVuOyBsaWVuIHF1YW4gZGVuIHZhbiBkZSBk dSB0cnUgdGFpIG5ndXllbiBsYXUgZGFpIGN1YSBkYXQgbnVvYywgdmF5IA0KbWEga2hpIGRpIHRo YW0gVGllcCBLaGFjLCBraWV1IGJhbyBob2ksIGQvYyBub2kgbGEgdmFuIGRlIG5obyBRdW9jIGhv aSBraG9uZyBjYW4gYmFuLg0KS2hpIGhvcCBRdW9jIGhvaSwgUGhvIFRodSB0dW9uZyBOZ3V5ZW4g U2luaCBIdW5nIG5vaSBkYXkgbGEgY2h1IHRydW9uZyBsb24gY3VhIA0KRGFuZyB2YSBOaGEgbnVv Yy4gS2hpIG1vdCBzbyBkYWkgYmlldSBxdW9jIGhvaSBkZSBuZ2hpIGJhbiB0aGFvLCB0aGkgQ2h1 IHRpY2ggUXVvYyBob2kgDQpjYXQga2hvbmcgY2hvIGJhbiwgbm9pIHJhbmcgdmFuIGRlIGRhIGR1 b2MgcXV5ZXQgZGluaC4NCg0KMywgRG9uZyBjaGkgTmd1eWVuIFRhbiBEdW5nDQoNClF1YSBtb3Qg bmhpZW0ga3kgbGFtIFBobyB0aHUgdHVvbmcgdGh1b25nIHRydWMgdmEgbW90IG5oaWVtIGt5IGxh bSBUaHUgdHVvbmcsIGQvYyANCmRhIGxhbSBkdW9jIG1vdCBzbyB2aWVjIG5odSB4YXkgZHVuZyBj byBzbyB2YXQgY2hhdCwgbW8gbWFuZyBkdW9uZyBzYSwgeGF5IG5oaWV1IGNhdSwgDQpjbyBuaHVu ZyBjYXUgaGllbiBkYWksIHNhbiBiYXksIGJlbiBjYW5nLCBwaGF0IHRyaWVuIGR1IGxpY2gsIHRo dSBodXQgZGF1IHR1LCBraW5oIHRlIGNvIA0KcGhhdCB0cmllbiAobmh1bmcga2hvbmcgdnVuZyBj aGFjKSBjbyBnb3AgcGhhbiBuYW5nIGNhbyB2aSB0aGUgY3VhIG51b2MgdGEgdHJlbiB0cnVvbmcg DQpxdW9jIHRlIHYudi4uLiANCk5odW5nIGNvIG5oaWV1IHZpZWMgeWV1IGtlbSwga2hvbmcgdG90 Og0KLSBLaG9uZyBsYW0gdHJvbiB0cmFjaCBuaGllbSBxdWFuIGx5IHRhaSBzYW4gTmhhIG51b2Mu DQoNCisgRGUgbGFtIHRhYyBwaGEgcnVuZyByYXQgbmhpZXUsIHJ1bmcgY2hheSBuaGlldSwgbGFp IGJhbiBydW5nIG1hdCBydW5nIG5oaWV1IHF1YSwgDQpjaHVuZyB0byBUaHUgdHVvbmcga2hvbmcg cXVhbiBseSBkdW9jIHJ1bmcuDQorIE5oaWV1IG5vaSwgdGhhbiwga2hvYW5nIHNhbiBjYWMgbG9h aSAiYmkgdGhvIHBoaSIgdmEga2hhaSB0aGFjIGJ1YSBiYWkuDQorIFRhaSBjaGluaCB0aGF0IHRo b2F0IG5oaWV1LCBkbyB0aGFtIG5odW5nLCBsYW5nIHBoaS4gQmFuIGRhdSBUaHUgdHVvbmcgbm9p IHJhdCBoYW5nLCANCm5odW5nIGtob25nIG5nYW4gY2hhbiBkdW9jLCBjdSBwaGF0IHRyaWVuLCB0 aWVuIGRhdSB0dSB2YW8gY2hpbmggcGh1IGRpZW4gdHUgY29pIG5odSANCm1hdCBraG9uZywga2hv bmcgZHVvYyB2aWVjIGdpLCBkbyBWYW4gcGhvbmcgY2hpbmggcGh1IHBoYWkgY2hpdSB0cmFjaCBu aGllbSBuaHVuZyByb2kgY3VuZyB0cm9pLg0KDQotIFRoaWVuIHZlIHRodSBodXQgZGF1IHR1IGRp YSBvYywgbnVvYyBuaG8gbWEgZGUgcGhhdCB0cmllbiBob24gdHJhbSBzYW4gZ29uLCBkZSBjaG8g DQpiYW4gZGF0IHRyYWkgcGhlcCBuaGlldSBuZW4gbWF0IHJ1b25nLCBkYXQgcmF0IG5oaWV1IG5o YXQsIG5vbmcgZGFuIHRoYXQgbmdoaWVwLg0KDQotIEhhbmcgaG9hIG51b2MgbmdvYWkgdHJhbiBu Z2FwIHRoaSB0cnVvbmcsIG5oYXAgc2lldSBsaWVuIG1pZW4sIHNvIHRpZW4gbG9uLg0KDQotIExh bSBwaGF0IGtob25nIGhhbiBjaGUgZHVvYywgdGllbiBtYXQgZ2lhLCBtb2kgdGh1IG5odSBjYXUg Y3VhIGRhbiBnaWEgY2EgdGFuZyB2b3QsIGNvIHRodSAxMDAlLg0KDQotIFZheSBubyBudW9jIG5n b2FpIG5oaWV1IG5oYXQsIGNobyBjYSBkdSBhbiBraG9uZyBjYW4gZ2FwLg0KDQotIE5nb2FpIHJh IGtoYSBuaGlldSBkdSBsdWFuIGNhYyB0aW5oIG1pZW4gTmFtLCBrZSBjYSBvIEtpZW4gR2lhbmcg Y2hvIHJhbmcgZG9uZyBjaGkgDQp2YSBnaWEgZGluaCBjbyBuaHVuZyBiaWV1IGhpZW4gdmUgdGFp IHNhbiBraG9uZyBtaW5oIGJhY2gsIHhheSBuaGEgdGhvIGhvIHF1YSBsb24sIHF1YSANCnF1aSBt byBob2FuaCB0cmFuZyB0b24gZGVuIDQwIHR5ICh0cm9uZyBraGkgZG8gdGhpIEhvaSB0cnVvbmcg QmEgRGluaCBsaWNoIHN1IHF1YW4gdHJvbmcgDQpiYWMgbmhhdCBsYWkgcGhhIGRpKS4NCg0KNCwg RG9uZyBjaGkgVG8gSHV5IFJ1YSBVViBCQ1QgVHJ1b25nIGJhbiBUdSB0dW9uZyBWYW4gaG9hIFQu Vy4sIGNvIGtoYSBuaGlldSBkdSANCmx1YW4gdHUgRG8gU29uLCB0dSBIYWkgUGhvbmcgY2hvIHJh bmcgdGhvaSBreSBvIFRoYW5oIHV5IEhhaSBQaG9uZyBkb25nIGNoaSBkYSBkZSB4YXkgDQpyYSBu aGlldSB2dSB2aWVjIHRpZXUgY3VjIHZlIG5oYSBkYXQsIGtlbyBkYWkga2hvbmcgZHVvYyB4dSBs eSBuZ2hpZW0gbWluaC4gTGVuIFQuVy4gDQp2b2kgdmFpIHRybyBDaHUgdGljaCBIb2kgZG9uZyBs eSBsdWFuLCBkb25nIGNoaSBsYW0gZHVvYyBxdWEgaXQsIG5odW9jIGRpZW0gbG9uIGxhIHRoaWV1 IA0KdGh1YyB0ZSBkbyB2YXkga2hvbmcgcGhhdCBoaWVuIGR1b2MgdmFuIGRlIG5hbyBtYW5nIHRp bmggc2FuZyB0YW8sIGRlIGdpYW8gZGlldSwgc2FvIA0KY2hlcC4gVm9pIGNodWMgZGFuaCBUcnVv bmcgYmFuIFR1IHR1b25nIFZhbiBob2EgVC5XLiwgZHUgbHVhbiBjaG8gcmFuZyBjYSB2ZSBtYXQg bHkgDQpsdWFuLCB0dSBkdXkgcXVhIG5naGVvIG5hbiwgbWEgbmFuZyBsdWMgaG9hdCBkb25nIHRo dWMgdGllbiBjdW5nIHJhdCBoYW4gY2hlLCBkZSBxdWEgDQpuaGlldSB0aWV1IGN1YyBwaGF0IHNp bmggdHJlbiBtYXQgdHJhbiB0dSB0dW9uZyCWIHZhbiBob2EgdG9pIGNhcCBkbyBiYW8gZG9uZywg ZGFuIGRlbiBiaSANCmRvbmcsIGRvaSBwaG8gbHVuZyB0dW5nLCBkaSB0b2kgc3UgZHVuZyBuaGll dSBjYWMgYmllbiBwaGFwIGhhbmggY2hpbmgsIG1lbmggbGVuaCwgY2FtIA0KZG9hbiBsYW0gY2hv IHRpbmggaGluaCBkYSByb2kgY2FuZyByb2kgcmFtIHRoZW0uIA0KUGhhdCBkb25nIGhvYyB0dSB0 dW9uZyBkYW8gZHVjIEhvIENoaSBNaW5oLCB0dW9uZyByYW5nIGRlIGNoaW5oIGRvbiB0dSB0dW9u Zywgbmh1bmcgDQpuaHVuZyBuZ3VvaSBuYW0gcXV5ZW4gbyBjYWMgY2FwIGxhIGRvaSB0dW9uZyBj YW4gaG9jIGxhIGNoaW5oIHRoaSBraG9uZyBtYXkgYWkgaG9jLCANCm5odW5nIGNhbiBibyB0aGFt IG5odW5nLCBxdWFuIGxpZXUsIGhhY2ggZGljaCB0aGkga2hvbmcgY28gYmlldSBoaWVuIGdpIGNo dXllbiBiaWVuIA0KdGhhbmggcmEgdG9uIHRpZW4gdm8gaWNoLiBUdXllbiB0cnV5ZW4gY2hpIG1v dCBjaGlldSB0byBob25nLCBhaSBub2kgbGVuIHN1IHRoYXQgdGhpIGNhbSwgDQpjb2kgbGEga2Ug eGF1Lg0KDQpDYSA0IGRvbmcgY2hpIGRldSBkYSB0aGFtIGdpYSAyIGRlbiAzIG5oaWVtIGt5IEJD SCBULlcuIHZhIG5odW5nIGJhdCBjYXAgdmEga2h1eWV0IA0Kbmh1b2MgZGllbSBjdWEgY2FjIGRv bmcgY2hpLCB0aW4gbmhpZW0gY3VhIGNhYyBkL2MgdHJvbmcgZGFuZyB2aWVuIHZhIG5oYW4gZGFu IGdpYW0gDQpzdXQsIG1vbmcgcmFuZyBuaGllbSBreSB0b2kgZGF5IChEYWkgaG9pIDExKSBjYWMg ZG9uZyBjaGkgbmVuIHRob2kgdW5nIGN1LCBuaHVvbmcgY2hvIA0KY2hvIGNhYyBkb25nIGNoaSBr aGFjIGRlIGNobyBsb25nIHRpbiBkb2kgdm9pIERhbmcgZHVvYyBuYW5nIGxlbiwgVG8gcXVvYywg ZGFuIHRvYyBwaGF0IA0KdHJpZW4gbmhhbmggdmEgY2FjIGQvYyBjdW5nIGtob25nIG1hbmcgdGll bmcgdGhhbSBxdXllbiwgY28gdmkuDQoNClhpbiBndWkgZGVuIEJvIGNoaW5oIHRyaSAtIEJhbiBC aSB0aHUgVC5XLiBsb2kgY2hhbyBraW5oIHRyb25nIHZhIGNodWMgY2FjIGRvbmcgY2hpIGN1bmcg DQp2b2kgQkNIIFQuVy4gY2h1YW4gYmkgdG90IG5oYXQgY2hvIERhaSBob2kgZGFpIGJpZXUgdG9h biBxdW9jIGN1YSBEYW5nIGNhIHZlIHZhbiBraWVuIA0KdmEgbmhhbiBzdSBkYWkgaG9pLg0KIA0K RGFuaCBzYWNoIGRvbmcga3kgdGVuDQoNCkxlIEh1dSBEdWMgliBUcnVuZyBUdW9uZyBGLjY1MCA4 NyB0dW9pIGRvaSCWIDY0IHR1b2kgRGFuZyB0aGFtIGdpYSBtYXQgdHJhbiBWaWV0IA0KTWluaCB0 dSB0aGFuZyAxMCBuYW0gMTk0MzogVG9pIG5oYXQgdHJpIGhvYW4gdG9hbiwgeGluIGNobyBibyBz dW5nIDIgZGllbToNCg0KMS4gVm9pIGRvbmcgY2hpIE5vbmcgRHVjIE1hbmggLSBLaHV5ZXQgZGll bSB0cmFtIHRyb25nIG5oYXQgbGEgbmdhIGhhbiB2YW8gYm9uIA0KVHJ1bmcgUXVvYywga2hvbmcg dGhheSBkdW9jIGFtIG11dSBtdW9uIGRvaSBjdWEgVHJ1bmcgUXVvYyBsYSBtdW9uIG51b3QgY2h1 bmcgDQpudW9jIHRhLCBraG9uZyB0aGF5IHF1YSA0MDAwIG5hbSBkdW5nIG51b2MgdmEgZ2l1IG51 b2MsIGNoaSBWdW9uZyB0cmlldSBuYW8gbmh1IA0Kbmh1b2MgY2hheSB0aGVvIGJvbiBUcnVuZyBR dW9jIGxhIG1hdCBudW9jIGhheSBzYW8/IENhbiBraWVtIGRpZW0gbmdoaWVtIGtoYWMgDQp0cnVv YyBraGkgbmdoaSB2aWVjIGRlIGxhbSBndW9uZyBjaG8gbmh1bmcgZG9uZyBjaGkga2hhYyB0cmFu aCB2ZXQgeGUgZG8gbmF0IGN1YSBkb25nIA0KY2hpIE5vbmcgRHVjIE1hbmguDQoNCjIuIFZvaSBk b25nIGNoaSBOZ3V5ZW4gVGFuIER1bmcgdG9pIGN1bmcgbmhhdCB0cmkgbmh1IGJhbiB0cmluaCBi YXkuIFRvaSB0aGF5IGdhbiBkYXkgDQpkb25nIGNoaSBEdW5nIGNvIG1vdCBjaHUgZG9uZyBkYW5n IGhvYW4gbmdoZW5oIGxhIGRhIG5oYXQgdHJpIHZvaSBCbyBRdW9jIFBob25nIHF1YSANCk5nYSBt dWEgc2FtIHRhdSBuZ2FtIHZhIG1heSBiYXkgTWljIDI5IHZlIHRyYW5nIGJpLiBWdSBraGkgdG9p IHRhbiBtb2kgZ2l1IGR1b2MgDQpUcnVvbmcgU2EgdmEgY2hvbmcgbGFpIGR1b2MgbW9pIGtlIHhh bSBsdW9jIHR1IHBoaWEgZG9uZyBUbyBRdW9jLiBEZSBuZ2hpIGRvbmcgY2hpIA0KRHVuZyB0aWVw IHR1YyB1bmcgaG8gQm8gUXVvYyBQaG9uZyBuZW4gZGUgTmdhIHZhbyBsYWkgY2FuIGN1IENhbSBS YW5oLCBjbyBuaHUgdmF5IA0KdGhpIG1vaSBkYXAgdGFuIG1vaSBhbSBtdXUgYmFuaCB0cnVvbmcg bXVvbiBjaGllbSBudW9jIHRhIHRydW9jIGhldCBsYSBib24gIkFjIGJhIJZUcnVuZyBRdW9jIg0K DQpOZ3V5ZW4gVHJvbmcgVmluaCCWIE5ndXllbiBVVlRXIERhbmcgliBMYW8gdGhhbmggY2FjaCBt YW5nLg0KDQpIdXluaCBEYWMgSHVvbmcgliBUaGlldSBUdW9uZywgQ2hpbmggdXkgUXVhbiBraHUs IFR1IGxlbmgga2llbSBDaGluaCBVeSBxdWFuIA0KdGluaCBuZ3V5ZW4gdmEgY2h1eWVuIGdpYSBx dWFuIHN1IHRhaSBMYW8sIFRodSBUcnVvbmcgQm8gTGFvIERvbmcgLSBUaHVvbmcgQmluaCBYYSBI b2kuDQpOZ3V5ZW4gSHV5IFZhbiAoS2ltIFNvbikgliBMYW8gdGhhbmggY2FjaCBtYW5nIJYgNTAg dHVvaSBEYW5nLg0KTmd1eWVuIFRoaSBDdW9uZyCWIENhbiBibyB0aWVuIGtob2kgbmdoaWEsIDY0 IHR1b2kgRGFuZywgSHVhbiBjaHVvbmcgRG9jIGxhcCBoYW5nIDMuDQpUcmFuIER1YyBRdWUgliBM YW8gdGhhbmggY2FjaCBtYW5nLCBDaHV5ZW4gVmllbiBkYSBuZ2hpIGh1dS4NCkh1dSBBbmggliBU aGlldSBUdW9uZywgTGFvIHRoYW5oIGNhY2ggbWFuZywgbmd1eWVuIGN1YyB0cnVvbmcgLi4uQm8g UXVvYyBQaG9uZy4NClRyYW4gQmEgliBDdXUgY2hpZW4gYmluaCBOYW0gdGllbiwgODUgdHVvaSBk b2ksIDQ2IHR1b2kgcXVhbiwgNjQgdHVvaSBkYW5nLg0KTGUgSHV1IEhhIJYgTGFvIHRoYW5oIGNh Y2ggbWFuZywgVHJ1b25nIGJhbiB0byBjaHVjIGxpZW4ga2h1IHV5IElWLCBjaHV5ZW4gdmllbiB0 dSANCnZhbiBjdWEgY2FjIG9uZyBIdXluaCBUYW4gUGhhdCwgRG8gTXVvaS4NCkxlIE1haSBBbmgg liBMYW8gdGhhbmggY2FjaCBtYW5nLCBjdXUgY2hpZW4gYmluaCAsIGdhbiA1MCB0dW9pIGRhbmcu DQpOZ3V5ZW4gTmFtIJYgTGFvIHRoYW5oIGNhY2ggbWFuZywgY3V1IGNhbiBibyBjYWMgQmFuIFRX IERhbmcsIGN1dSBjYW4gYm8gVFcgRG9hbiBUTkxELg0KUGhhbSBWYW4gSGllbiCWIERhaSBUYSwg TGFvIHRoYW5oIGNhY2ggbWFuZy4NClRyYW4gTmd1eWVuIJYgTGFvIHRoYW5oIGNhY2ggbWFuZywg ODYgdHVvaSBkb2ksIDYwIHR1b2kgZGFuZywgNDAgdHVvaSBxdWFuLg0KTmd1eWVuIEJhIEJhbyCW IENhbiBibyB2aWVuIG5naGllbiBjdXUgQm8gY29uZyBuZ2hpZXAsIDc1IHR1b2kgZG9pLCA0NSB0 dW9pIGRhbmcuDQpOZ3V5ZW4gVmFuIFR1eWVuIJYgRGFpIFRhIFFETkQgVmlldCBOYW0sIExhbyB0 aGFuaCBjYWNoIG1hbmcsIDg1IHR1b2kgZG9pLCA2MyB0dW9pIGRhbmcuDQpWdSBUaHVhbiCWIExh byB0aGFuaCBjYWNoIG1hbmcsIDg1IHR1b2kgZG9pLCA2MCB0dW9pIGRhbmcsIEh1YW4gY2h1b25n IGRvYyBsYXAuDQpMZSBNaW5oIENoYXUgliBMYW8gdGhhbmggY2FjaCBtYW5nLCA1MCB0dW9pIGRh bmcuDQpOZ3V5ZW4gVmFuIEJlIJYgTGFvIHRoYW5oIGNhY2ggbWFuZyB0aWVuIGtob2kgbmdoaWEs IDg2IHR1b2kgZG9pLg0KTmd1eWVuIFZhbiBNYXUgliBUcnVuZyBUdW9uZywgTGFvIHRoYW5oIGNh Y2ggbWFuZywgOTAgdHVvaSBkb2ksIGdhbiA3MCB0dW9pIGRhbmcuIA0KDQpodHRwOi8vdmkud2lr aXBlZGlhLm9yZy93aWtpL05ndXklRTElQkIlODVuX1BoJUMzJUJBX1RyJUUxJUJCJThEbmcNCg0K WSBraWVuIGN1YSBtb3Qgc28gZG9hbiBkYWkgYmlldSBxdW9jIGhvaSB2ZSBvbmcgTmd1eWVuIFBo dSBUcm9uZyBkYW5nIHRyZW4gYmFvIFRpZW4gUGhvbmcgKGh0dHA6Ly93d3cudGllbnBob25nb25s aW5lLmNvbS52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTUxNTExJkNoYW5uZWxJRD0y KSANCg0KQ28gbW90IHNvIHkga2llbiBraG9uZyBkb25nIHkgaG9hbiB0b2FuIHZvaSB2aWVjIGRl IGN1IG9uZyBOZ3V5ZW4gUGh1IFRyb25nIGdpdSANCmNodWMgdnUgY2h1IHRpY2ggUUggcXVhbiB0 cm9uZyBuYXkuIFRoZW8gY2FjIGRvYW4gZGFpIGJpZXUgcXVvYyBob2kgY2FjIHRpbmggRG9uZyAN Ck5haSB2YSBEb25nIFRoYXAsIG9uZyBUcm9uZyBsYSBuZ3VvaSB0aGlldSBiYW4gbGluaCwgY2h1 YSBwaGF0IGJpZXUgdHJ1b2MgUXVvYyBob2kgbGFuIG5hby4uLiANCkRvYW4gRG9uZyBUaGFwIGNv biBjaG8gcmFuZyBvbmcgY2h1YSBjbyBuaGlldSBraWVuIHRodWMgdmUgbHVhdCBwaGFwIHZhIHhh eSBkdW5nIHBoYXAgbHVhdC4gDQpUcm9uZyB0aG9pIGdpYW4gbGFtIEJpIHRodSBUaGFuaCB1eSBI YSBOb2kgdmEgQ2h1IHRpY2ggSG9pIGRvbmcgTHkgbHVhbiBUcnVuZyB1b25nLCANCm9uZyBUcm9u ZyBjdW5nIGtob25nIGRlIGxhaSBkYXUgYW4gZ2kgcm8gcmV0LiANCg0KaHR0cDovL3d3dy52aWV0 bmFtcGx1cy52bi9Ib21lL05vbS1ub3Atbmh1bmctYW4taG9hLWtoaS1IYS1Ob2ktYmllbi10aGFu aC1zb25nLzIwMTA3LzUyNTA2LnZucGx1cyANCg0KSGEgTm9pOiBDYWkgdm9uZyBsdWFuIHF1YW4g LSBNdWEgbG9uIJYgbmdhcCBsdXQgliB0YWMgZHVvbmcgLSB0YWkgbmFuIA0KDQpodHRwOi8vdHVv aXRyZS52bi9DaGluaC10cmktWGEtaG9pLzM4OTkwMS9NdWEtbG9uLUhhLU5vaS1uZ2FwLW5hbmcu aHRtbCAxMy8wNy8yMDEwLCAyMToxMiAoR01UKzcpIA0KDQpIYSBOb2k6IE11YSBsb24gZ2F5IG5n YXAsIGJhIG5ndW9pIGNoZXQgdmkgZGllbiBnaWF0IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQu dm4veGFob2kvZG90aGkvMjAwOS8wNy84NjAyMjYvIDA3OjI4LCAyNy8wNy8yMDA5IChHTVQrNykN Cg0KSGEgTm9pOiBYb3QgeGEgaG8gSGEgTm9pICdtYXQgdGljaCcgDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi94YWhvaS8yMDEwMDEvQ2hvbmctbWF0LXZvaS10b2MtZG8tYnVjLXR1LWhvLW8t SGEtTm9pLTg5MDMzNC8gMTE6MDMsIDE5LzAxLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IENob25n IG1hdCB2b2kgdG9jIGRvIGJ1YyB0dSBobyBvIEhhIE5vaSwgNjUlIGRpZW4gdGljaCBzb25nIGhv IG8gSGEgTm9pIGRhIGJpIGxhcC4gTW90IGNvbiBzbyBkYXUgbG9uZy4gDQoNCmh0dHA6Ly92bmV4 cHJlc3MubmV0L0dML0N1b2kvMjAxMC8wNy8zQkExRTA4MC8gVHJhbiBDaGkgSGlldSAxMy83LzIw MTAsIDE2OjU2IEdNVCs3IA0KDQpIYSBOb2k6IERpZXAga2h1YyBkYW4gZ2lhbiAiRW0gZGkgYm9p IHRodXllbiB0cmVuIHBobyBEYWkgTGEiIA0KDQoiRW0gZGkgYm9pIHRodXllbiwgdHJlbiBwaG8g RGFpIExhLiANClh1bmcgcXVhbmggbnVvYyBuZ2FwIHRhbiBkZW4gbHVuZyBuaGENClRhbmggbXVh IG1hIHZhbiBuZ2FwLCBwaG8gdHJvbmcgbmh1IHNvbmcgDQpOZ2F5IG1haSB0cm9pIG11YSBsYWks IG51b2MgbGVuIG1lbmggbW9uZyAgDQpDYWMgYmFuIGVtIHJ1IG5oYXUgcmEgZGF5IGR1YSB0aHV5 ZW4gDQpWdWkgcXVhIGJhbiBvaSwgbWFpIGVtIGxhaSByYSBkYXkgZW0gYm9pLiIgDQoNCi0NCmh0 dHA6Ly92bnRodXF1YW4ubmV0L2RpZW5kYW4vdG0uYXNweD9tPTI2ODM1MCZBc3B4QXV0b0RldGVj dENvb2tpZVN1cHBvcnQ9MSAgVFMgTkdVWUVOIFRIQU5IIEdJQU5HIDkuNS4yMDA3IDQ6MTk6MDAg ICANCiANClJhdCBkYW5nIHBoYW4gbmFuIHZlIG9uZyBOZ3V5ZW4gUGh1IFRyb25nICAgDQoNCk9u ZyBOZ3V5ZW4gUGh1IFRyb25nIHF1YSBjaHV5ZW4gdmllbmcgdGhhbSBUcnVuZyBRdW9jIHRyZW4g Y3VvbmcgdmkgY2h1IHRpY2ggcXVvYyANCmhvaSBudW9jIENIWEhDTiBWaWV0IE5hbSBkYXUgdGhh bmcgNCBuYW0gMjAwNyB2dWEgcXVhIHZ1YSBraG9uZyBiaWV1IHRoaSBkdW9jIHR1IA0KdHJvbmcg ZGFuIHRvYywgbGFpIGNvIHRoYWkgZG8gdHUgdHkgY3VhIGtlIGNodSBoYXUgbmVuIHJhdCBkYW5n IGNoZSB0cmFjaCENCg0KRHUgYW4gaG9wIHRhYyBnaXVhIFRhcCBkb2FuIERhdSBraGkgUXVvYyBn aWEgVmlldCBOYW0gdmEgQ29uZyB0eSBEYXUga2hpIEJQIGN1YSANCkFuaCBkdW9jIHRodWMgaGll biB0dSBuYW0gMjAwMCwgbGEgbW90IGR1IGFuIGhvYW4gdG9hbiBob3AgbGUgdmkgZHVvYyB0cmll biBraGFpIHRyb25nIA0KdnVuZyBkYWMgcXV5ZW4ga2luaCB0ZSB2YSB0aGVtIGx1YyBkaWEgY3Vh IFZpZXQgTmFtLCBob2FuIHRvYW4gdGh1b2MgY2h1IHF1eWVuIGN1YSANClZpZXQgTmFtLiBWaWV0 IE5hbSB2YSBoYW5nIEJQIGRhbmcgY2h1YW4gYmkgdGh1YyBoaWVuIGR1IGFuIG5obyB0cm9uZyBk dSBhbiBsb24gdHJlbiANCmRheSB0cmkgZ2lhIGhhaSB0eSBkb2xhIG5oYW0gbGFwIGRhdCBkdW9u ZyBvbmcgZGFuIGtoaSBkb3QgdGhpZW4gbmhpZW4gdHUgaGFpIG1vIGtoaSBvIA0Ka2h1IHZ1YyBu YXkgY2hpIGxhIG1vdCBjb25nIGRvYW4gdHJvbmcgZHUgYW4gZGEgZHVvYyB0aGkgY29uZyB0dSBu YW0gMjAwMCBkZW4gbmF5Lg0KRHVuZyBuaHUgVmlldCBOYW0gZGEgdGhlbSBtb3QgbGFuIGtoYW5n IGRpbmggIlZpZXQgTmFtIGNvIGRheSBkdSBiYW5nIGNodW5nIGxpY2ggDQpzdSB2YSBjbyBzbyBw aGFwIGx5IGRlIGtoYW5nIGRpbmggY2h1IHF1eWVuIGtob25nIHRoZSB0cmFuaCBjYWkgY3VhIG1p bmggZG9pIHZvaSBoYWkgDQpxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EiLCB2YSwgIk1v aSBob2F0IGRvbmcgY3VhIFZpZXQgTmFtIHRpZW4gaGFuaCB0cmVuIGNhYyANCnF1YW4gZGFvIHZh IHZ1bmcgYmllbiBjdWEgVmlldCBOYW0sIGtlIGNhIHZpZWMgcGhhbiBsbyB0aGFtIGRvIHZhIGto YWkgdGhhYyBkYXUga2hpIGxhIA0KaG9hbiB0b2FuIGJpbmggdGh1b25nLCBwaHUgaG9wIHZvaSBs dWF0IHBoYXAgVmlldCBOYW0sIGx1YXQgcGhhcCB2YSB0aHVjIHRpZW4gcXVvYyB0ZSIuDQoNClZh eSBtYSwgdGllcCBvbmcgTmd1eWVuIFBodSBUcm9uZyBob20gOSB0aGFuZyA0IG5hbSAyMDA3LCBj aHUgdGljaCBxdW9jIGhvaSBUcnVuZyANClF1b2MgTmdvIEJhbmcgUXVvYyBkYSBjYW8gZ2lvbmcg Y2FuIGRhbjogaGFpIGJlbiBjYW4gImdpYWkgcXV5ZXQgb24gdGhvYSB2YW4gZGUgYmllbiANCmdp b2ksIGxhbmggdGhvLCB0aHVjIGhpZW4gdG90IGNhYyBoaWVwIGRpbmggbGllbiBxdWFuLCBjdW5n IG5oYXUgZ2l1IGdpbiBvbiBkaW5oIGN1YSB2dW5nIA0KYmllbiBuYW0gVHJ1bmcgUXVvYyIuDQoN ClRoYXQgbGEgbmdhbyBtYW4gdmEgZG8gZGFuLiBUb2kgc2FuZyB0aGFtIGFuaCBuaHUgbW90IG5n dW9pIGJhbiBsYW5nIGdpZW5nIGRlIGdpYW8gDQpoYW8gdmEgeGVtIGNvIGdpIGN1bmcgY28gbG9p IHRoaSBiYW4gbmhhdSBob3AgdGFjIG1hIGxhbSwgc2FvIGFuaCBsYWkgZGFtIGdpYW8gbmhpZW0g dnUgDQpjaG8gdG9pIHBoYWkgImdpdSBnaW4gb24gZGluaCB2dW5nIGJpZW4gbmFtIFRydW5nIFF1 b2MiLiBDaG8gbmFvIGR1bmcgbGEgInZ1bmcgYmllbiANCm5hbSBUcnVuZyBRdW9jIiBjdWEgYW5o IHRoaSBhbmggbG8gbWEgImdpdSBnaW4gb24gZGluaCIgbGF5IGNodS4gVG9pIGNvIGxhIHRheSBz YWksIGxhIA0KY2h1IGhhdSBjdWEgYW5oIGRhdSBtYSBhbmggY28gcXV5ZW4gZ2lhbyBuaGllbSB2 dS4gVG9pIGN1bmcga2hvbmcgdGhlbSB0aGFtIGxhbSANCm5odSBhbmggZGUgcm9pIGxhbSBsYW0g bGFtIG1hdCBvbiBkaW5oIGNhaSAidnVuZyBiaWVuIG5hbSBUcnVuZyBRdW9jIiBuYW8gZG8gY3Vh IA0KYW5oLg0KDQpOZ3VvaSBwaGF0IG5nb24gYm8gbmdvYWkgZ2lhbyBUcnVuZyBRdW9jIHRlbiBs YSBUYW4gQ3VvbmcgbGFpIGNvbiB0cmFuZyB0cmFvIGdvaSBoYW5oIA0KZG9uZyBjdWEgdGEgbGEg InhhbSBwaGFtIGNodSBxdXllbiBsYW5oIHRobyBjdW5nIG5odSBjaHUgcXV5ZW4gdmEgcXV5ZW4g Y2FpIHF1YW4gY3VhIA0KVHJ1bmcgUXVvYyIuIE9uZyB0YSBsZXUgbGFvIHRyaWNoIHRodW9uZzog IlRydW5nIFF1b2MgYmF5IHRvIGhldCBzdWMgcXVhbiB0YW0gdmllYyBuYXkgDQp2YSBkYSBnaWFv IHRoaWVwIG5naGllbSBraGFjIHZvaSBWaWV0IE5hbSIuIA0KKFRvaSBkdSBsb24sIGR1IG5obyBj dW5nIGxhIGJhbiBhbmgsIGFuaCBjbyBkaW5oIG5naGllbSBraGFjIHRoaSBjdW5nIGNoaSBjbyB0 aGUgbmdoaWVtIA0Ka2hhYyB2b2kgY2FjIGNvbiBkYW4gY3VhIGNhYyBhbmggdGhvaSBjaHUhIFZp IGR1LCBoYXkgbmdoaWVtIGtoYWMgZGF5IGNvbiBkYW4gY3VhIGNhYyANCmFuaCByYW5nIGR1bmcg Y28gZGFpIGRvdCBub2kgZ3VvbmcgY2hhIG9uZyBtYSBrZW8gbmhhdSBzYW5nIHZ1aSB4YWMgbyBn byBEb25nIERhIA0KY2hhbmcgaGFuLi4uKQ0KDQpCYW4gdGluIHRyZW4gZHVhIGxlbiB0cmFuZyB3 ZWIgQkJDIFZpZXRuYW1lc2UuY29tIGRhIG5oYW4gZHVvYyBtb3QgbG9hdCB5IGtpZW4gYmFuIA0K ZG9jIHBoYW4gaG9pIHJhdCAibmdoaWVtIGtoYWMiOg0KDQotIERvYyBnaWEgVHJ1bmcsIEhhbWls dG9uLCBDYW5hZGE6ICJEdW5nIHZhbyBsdWMgb25nIENodSB0aWNoIFF1b2MgaG9pIFZpZXQgTmFt IA0KdGhhbSBodXUgbmdoaSBUcnVuZyBRdW9jICh0dSA4LzQgZGVuIDE1LzQvMjAwNykgdGhpIGJv IG5nb2FpIGdpYW8gVHJ1bmcgUXVvYyBsZW4gYW4gDQpWaWV0IE5hbSB2b2kgZ2lvbmcgZGlldSBr ZSBjYTogIkdpYW8gdGhpZXAgbmdoaWVtIGtoYWMiIHZvaSBWaWV0IE5hbS4gRGlldSBkbyBjaG8g dGhheSANCnJvIFRRIGRhICJjb2kgbmhlIiBxdWFuIGhlIHZvaSBWTiwga2hvbmcgbmh1IGhvIHZh biB0aHVvbmcgdHV5ZW4gYm8gImxhbmcgZ2llbmcgDQpodXUgbmdoaSwgaG9wIHRhYyBsYXUgZGFp Li4uIiAoMTYgY2h1IHZhbmcpLiBNYXQga2hhYyBobyBjdW5nIGNvaSB0aHVvbmcgY2hpbmggcXV5 ZW4gVk4gcXVhIGRhbmciLg0KDQotIERvYyBnaWEgSGFpIFRyYW4sIFNhbiBEaWVnbzogIlRoZSBu YW8gbGEgZ2lhbyB0aGllcCBuZ2hpZW0ga2hhYz8gTmdvbiBuZ3UgbmdvYWkgDQpnaWFvIGN1YSBu Z3VvaSBUYXUgc3UgZHVuZyByYXQgbmdhbyBtYW4uIFRhaSBzYW8ga2hpIG5ndW9pIFBoYXAgdmEg bmd1b2kgTXkgY28gbWF0IA0KdGFpIFZOIHRoaSBuZ3VvaSBUYXUgY2hldCBnaXVuIGNoZXQgZGUs IGtob25nIGRhbSBobyBoZSBnaSBkZW4gY2FjIGhvbiBkYW8gdGh1b2MgY2h1IA0KcXV5ZW4gVk4i Lg0KDQotIE1haSBOaW5oLCBWTjogIlhpbiBudW9jIGJhbiAobmh1IHJhbmcgdm9pIG1vaSkgZHVu ZyBib2kgdHJvIHRyYXQgdHJhdSBsZW4gbWF0IGRvbmcgDQpjaGkgTmd1eWVuIFBodSBUcm9uZyBj dWEgY2h1bmcgdG9pIChoaWVuIG8gdGhhbSBUYXUpLiBDaGFuZyBnaSBkYXkgY3VuZyBsYSBVeSB2 aWVuIA0KQm8gQ2hpbmggdHJpLCBjaHUgdGljaCBIb2kgZG9uZyBMeSBsdWFuIFRydW5nIHVvbmcg dmEgQ2h1IHRpY2ggUXVvYyBob2kgbnVvYyBjaHVuZyANCnRvaS4gU2FvIG11b24gY2FuaCBiYW8g Vk4gbGFpIGtob25nIGRlIGRvbmcgY2hpIE5ndXllbiBQaHUgVHJvbmcgdmUgbnVvYyBkYSIuIA0K DQotIE5ndW9pIFZpZXQgTW9pLCBIYWxpZmF4LCBDYW5hZGE6ICJLZWVwIHlvdXIgZnJpZW5kIGNs b3NlLCBidXQga2VlcCB5b3VyIGVuZW15IA0KY2xvc2VyIi4gRGF5IHBoYWkgbGEgY2FjaCBtYSBj aHVuZyB0YSBkb2kgeHUgdm9pIFRRLCBoYXkgbGEgaG8gZG9pIHh1IHZvaSBjaHVuZyB0YT8gVFEg DQpsYSBiYW4gaGF5IHRodSwgaGF5IGNhIGhhaT8gQ2FjIGJhbiBwaGFpIGhpZXUgcmFuZyBkYXkg bGEgbW90IGRvbiBnaW8gY3VhIFRRIG5oYW0gdW9uIA0KbmFuIFZOIHF1YXkgbGFpIGR1bmcgcXV5 IGRhbyB2YSB0cm9uZyB0YW0gYW5oIGh1b25nIGN1YSBoby4gQ2FjIGJhbiBjbyB0dSBob2kgbGEg dGFpIA0Kc2FvIGxhaSBiYXkgZ2lvPyBkdSBhbiBuYXkgZGEgZHVvYyBreSBrZXQgbGF1IHJvaSBr aWEgbWE/IA0KDQotIFROOiAiVm9pIG1vdCBkb2kgcXVhbiBkb25nIGRhbywgdnUga2hpIHRvaSB0 YW4gVFEgdGh1YSBzdWMgYXAgZGFvIFZOLiBOaHUgdmF5IGxhbSANCnNhbyBkZSBUUSBraWVuZyBu ZSBWTi4gVGhlbyB0aGllbiB5IHRvaSwgY28gMyB2YW4gZGUgbGFuaCBkYW8gVk4gY2FuIGx1dSB5 OiBtb3QgbGEgDQpEQ1NWTiBwaGFpIGRhYyBuaGFuIHRhbSwgdGh1IHBodWMgdmEga2V0IGhvcCBk dW9jIG1vaSB0aGFuaCBwaGFuIHRyb25nIGN1bmcgbmh1IA0KbmdvYWkgbnVvYyB0cm9uZyB0aW5o IGRvYW4ga2V0IG11b24gbmd1b2kgbmh1IG1vdCAodGluaCB0aGFuIEhvaSBuZ2hpIERpZW4gSG9u ZyBraGkgDQp4dWEpLiBIYWkgbGEgcGhhaSB0cmFuaCB0aHUgZHVvYyBzdSB1bmcgaG8gdGhlIGdp b2kgYmFuZyBjYWNoIHNvbmcgaG9hIGhvcCBnaW9uZyB2b2kgZGFpIA0KZGEgc28gY2FjIG51b2Mg a2hhYywgdmEgYmEgbGEgbW90IGRvaSBxdWFuIHZvaSBuaHVuZyB2dSBraGkgaGllbiBkYWkuIEJh IGRpZXUgZG8gZGEgbGFtIA0KZHVvYyBkaWV1IG5hbyBjaHVhPyBOZ29haSByYSwgaGF5IHRodWMg dGUgbW90IGNodXQuIEhhbmcga2hpIGtob25nIGNodWEgZHUsIGxvbmcgeWV1IA0KbnVvYyBraG9u ZyBjaHVhIGR1LCBwaGFpIGNvIHRoZW0gbmh1bmcgbGFuaCB0dSB0YWkgZHVjIGR1IGRlIG5ndW9p IGRhbiB0b24gdHJvbmcsIHNhbiANCnNhbmcgeGEgdGhhbiB2aSBobyBraG9uZyBjaHV0IGRvIGR1 ICh0aGkgZHUgTmhhdCBIb2FuZyB0cm9uZyBUaGUgY2hpZW4gSUkpIi4NCg0KLSBHTSwgTG9zIEFu Z2VsZXMsIE15OiAiUXVhbiBkYW8gSG9hbmcgU2EgbmF5IGRhIG1hdCB0cmFuZywgbGUgbmFvIGNo dW5nIHRhIGRlIG1hdCANCmx1b24gVHJ1b25nIFNhPyBEYW4gdG9jIHRhIHRoYSBoeSBzaW5oIHRh dCBjYSBjaHUga2hvbmcgY2hpdSBkYXUgaGFuZyBuaHVvbmcgYm8gYm9uIA0KVGF1ISBOZXUgY28g Y2FuIGJhdCB0YXkgdm9pIHF1YW4gZG9pIEhvYSBLeSBjaHVuZyB0YSBjdW5nIHBoYWkgbGFtIGRl IGJhbyB2ZSBUbyANCnF1b2MiLg0KDQotIExlIEh1bmcgUXVvYywgdHBIQ00sIFZOOiAiUGhhaSBu b2kgcmFuZyB0dSBuZ2FuIHh1YSBkZW4gbmF5IGRhbiB0b2MgQmFjaCBWaWV0IGNoaSANCmNoaXUg bGVwIHZlIHRydW9jIG1vdCBkYW4gdG9jIEhvYSBIYSAoSGFuKSBtYSB0aG9pLiBWaSB2YXkgYmkg Ym9uIGNodW5nIGRheSBjaHVuZyB0YSANCnR1IERvbmcgRGluaCBIbyBsYW4geHVvbmcgcGhpYSBu YW0gbmh1IGhpZW4gbmF5LiBDaHUgUXVhbmcgRG9uZyB2YSBRdWFuZyBUYXkgDQpuZ2F5IG5heSBs YSBkYXQgY3VhIHRhIG5nYXkgeHVhIGRvLi4uIEhvaSBuaHVuZyBjb24gY2hhdSBjdWEgYm8gdG9j IGx1dSB2b25nIEJhY2ggVmlldCEgDQpUYSBkYSBiaSBib24gSG9hIEhhIGRvbiB2YW8gZHVvbmcg Y3VuZyByb2khIEhheSBsb3QgYm8gbmh1bmcgbG9pIGljaCBjYSBuaGFuLCBtb2kgdGh1IA0KZGFu ZyBwaGFpIG1hIHRhcCB0cnVuZyB0cmkgdHVlLCBzdWMgbHVjIGNobyBtb3QgVk4gaHVuZyBjdW9u ZyB0cm9uZyB0dW9uZyBsYWkuIER1bmcgDQpuZ2hlIHRoZW8gZHVvbmcgbG9pIGN1YSBUYXUgQ29u ZyBtYSBsYW0gc3V5IHZvbmcgVG8gcXVvYy4gRGEgZGVuIGx1YyBjaHVuZyB0YSBkb2FuIA0Ka2V0 IGxhaSBodXkgZG9uZyBzdWMgbWFuaCB0b2FuIGRhbiB0b2MuIENodW5nIG1pbmggY2hvIGJvbiBI YW4gdG9jIHRoYXkgZHVvYyBzdWMgDQptYW5oIGN1YSBkYWkgdG9jIEJhY2ggVmlldCB0YS4uLiBD aHVuZyB0YSBoYXkgY2hvIE15IHRodWUgY2FuZyBIYWkgUGhvbmcgdmEgY2FuZyBDYW0gDQpSYW5o IGxhbSBxdWFuIGNhbmcgdHJvbmcgNTAgbmFtIHZvaSBkaWV1IGtpZW4gYmFvIGRhbSBhbiBuaW5o IGNobyB0YSBraHUgdnVjIGJpZW4gDQpEb25nIHRoaSBsYXAgdHVjIGFuaCBDaGV0IHJ1biByYXkg bGllbiwgbGFtIHNhbyBkYW0gZG9tIG5nbyBnaSBudWEuIER1b2Mgbmh1IHRoZSB0YSANCnJhbmgg cmFuZyBwaGF0IHRyaWVuIGtpbmggdGUuIFRhIG1hbmgga2luaCB0ZSByb2kgdGhpIDEwMCBuYW0g bnVhIGFuaCBUYXUgcGhhaSBuZSBjaHVuZyANCnRhIi4NCg0KLSBIb2FuZyBLaGEsIENhbiBUaG86 ICJUb2kgbmdoaSBkYSBkZW4gbHVjIGNodW5nIHRhIGNhbiBob3AgdGFjIHZvaSBIYW8gS3kgdmEg UGh1b25nIA0KVGF5IHRyb25nIHZpZWMgY3VuZyBjbyBuZW4gcXVvYyBwaG9uZy4gTW90ICJkb25n IGNoaSIgbWEgY3UgbGFtIGxlIGN1b3AgZGF0IGN1YSBtaW5oIA0Kc2FvPyBRdXkgdmkgaGF5IG5o byBsYWkgZGEgY28gYmFvIG5oaWV1IHh1b25nIG1hdSBjdWEgZG9uZyBiYW8gdGEgZG8gdHJlbiBk YXQgbnVvYyBuYXkgDQpyb2kuIEhvYW5nIFNhIGRlIG1hdCBjaHVhIGJpZXQgbmdheSBuYW8gbW9p IGRvaSBsYWkgZHVvYy4gUXV5IHZpIG9pIGRhdCBtZSBkYW5nIGR1dCANCnR1bmcgdGhvIHRoaXQu Li4iDQoNCi0gVHJhbmcgSE46IFZpZWMgbmF5IGNobyB0aGF5IGtoYSBuYW5nIGx5IGx1YW4gY3Vh IG9uZyBUcm9uZyBrZW0sIGtob25nIHVuZyBiaWVuIGR1b2MgDQp2b2kgdGluaCBoaW5oOyB0aGUg bWEgY3VuZyBkb2kgbGFtIENodSB0aWNoIEhvaSBkb25nIGx5IGx1YW4gVHJ1bmcgdW9uZy4gDQoN Ci0gVGhpIEhvYW5nOiAnTmV1IFRydW5nIFF1b2MgZHVuZyBsdWMgbHVvbmcgaGFpIHF1YW4gVHJ1 bmcgSG9hIGxhbSBkb2FuIHRhdSBobyB0b25nIA0KZGUgYmFuaCB0cnVvbmcgY2h1IG5naGlhIERh aSBIYW4geHVvbmcgcGhpYSBuYW0gdGh1b2Mga2h1IHZ1YyBCaWVuIERvbmcgY3VhIFZOIHRoaSAN ClRRIHNlIHBoYWkgY2h1b2MgbGF5IHRoZW0gc3UgdGhhdCBiYWkgbmh1YyBuaGEgY3VhIG1pbmgg ZG9pIHZvaSBtb3QgZGFuIHRvYyBWTiBraWVuIA0KY3VvbmcgdmEgY28gYmUgZGF5IGxpY2ggc3Ug bW90IG5naGluIG5hbSBjaG9uZyBkbyBobyBnaWFjIFRhdScuDQoNCi0gQW4gZGFuaCwgUXVhbmcg TmluaDogIk15IGNvbiBraG9uZyBzbyB0aGkgc28gZ2kgVHJ1bmcgUXVvYy4gQ2hhbmcgcGhhaSBj aHVuZyB0YSBkYSANCm5oaWV1IGxhbiB0aGFuZyBUUSByb2kgaGF5IHNhby4gVHV5IG5heSB0aW5o IGhpbmggZGEgdGhheSBkb2kgbmh1bmcgY2h1bmcgdGEgdmFuIGNvbiANCnN1YyBtYW5oIHRpbmgg dGhhbiwgc3VjIG1hbmggY3VhIG5odW5nIGtob2kgb2MgdGh1b25nIGhpZXUgVk4uLi4gQ2h1bmcg dGEgc2UgbGFpIHRoYW5nIA0KbmV1IFRRIGxhaSBtdW9uIGdheSBjaGllbiIuDQoNCi0gVHJ1bmcs IFRvcm9udG86ICJLaGkgVG8gcXVvYyBsYW0gbmd1eSwgdG9pIHhpbiBodWEgbmh1IGJhbiBzZSBx dWF5IHZlLiBDaHVuZyB0YSBjdW5nIA0KZGF1IGx1bmcsIHZhaSBrZSB2YWkgY2hpZW4gZGF1IGJh byB2ZSB0dW5nIHRhYyBkYXQgY3VhIHF1ZSBtZS4gTmh1IG5odW5nIGxhbiB0cnVvYyANCm5nYW5n IG5oaWVuIGJhbiBjaGV0IDkgbmd1IGRhbiB2byB0b2kgY3VhIFRoYW5oIEhvYSBtYSBraG9uZyB0 aGF5IGNoaW5oIHBodSBWTiBjbyANCm1vdCBkb25nIHRoYWkgbmdvYWkgZ2lhbyBuYW8gbmh1IGxh IGNoaW5oIHRodWMgZG9pIGhvaSBUUSBkaWV1IHRyYSB2YSBnaWFpIHRoaWNoIHN1IHZpZWMsIA0K aGF5IG1hbmggaG9uIGxhIGNoaW5oIHRodWMgcGhhbiBkb2kiLg0KDQotIEx5IEx1dSBMaW5oLCB0 cEhDTTogIlJhdCB2dWkgbXVuZyB2aSBjbyBuaGlldSBiYW4gZGEgdGhlIGhpZW4gZHVvYyB5IGNo aSBjdWEgbmd1b2kgDQpjb24gZGF0IFZpZXQuIFZvaSB0aW5oIHRoYW4gY3VhIG1vdCBuZ3VvaSBx dWFuIG5oYW4sIHZhIHZvaSBkYW5oIGR1IGN1YSBtb3QgY29uIG5ndW9pLCANCnRvaSB4aW4gdGhl LCB0b2kgc2UgbGEgbmd1b2kgY3VuZyBzYXQgY2FuaCB2b2kgY2FjIGJhbiIuDQoNCkdpYSBtYSBv bmcgTmd1eWVuIFBodSBUcm9uZyB0aW0gZG9jIGR1b2Mgbmh1bmcgZG9uZyBuYXkuDQoNCkR1IGto b25nIHRpZW4gbm9pIG5odSBkb2MgZ2lhIE1haSBOaW5oIHJhbmcgY2h1IHRpY2ggUXVvYyBob2kg bnVvYyB0YSBiaSAiYm9pIHRybyB0cmF0IA0KdHJhdSB2YW8gbWF0IiBuaHVuZyBybyByYW5nIGtp ZXUgaGFuaCB4dSBjdWEgVHJ1bmcgUXVvYyBuaHUgdmF5LCB4ZXQgY2FjaCBuYW8gY3VuZyANCmto b25nIGNoYXAgbmhhbiBkdW9jLiBUaGUgbWEgb25nIE5ndXllbiBQaHUgVHJvbmcgZGEga2hvbmcg Y28gbm9pIG1vdCBwaGFuIHVuZywgDQpkdSByYXQgbmhlIG5oYW5nLCB0aW5oIHRlLiBPbmcgdmFu IGRhbiB2byBkaSB0aGFtIHRodSBkbyBkYXkgdGhvYWkgbWFpIHZhIGN1b2kgdnVpIGhvaSANCm5o aWV1ISANCg0KRGFuaCByYW5nIGRhbmcgdHJvbmcga2hvbmcga2hpICJ0YXkgYmF0IG1hdCBtdW5n IiwgY2hhbmcgdGllbiBkb2kgZGFwIGNoYXQgY2h1YSBsYW0gDQpnaSwgbmh1bmcgaXQgcmEga2hp IE5nbyBCYW5nIFF1b2MgZ2lhbyBuaGllbSB2dSAiZ2l1IGdpbiBvbiBkaW5oIEJpZW4gTmFtIFRy dW5nIA0KUXVvYyIsIE5ndXllbiBQaHUgVHJvbmcsIGNoYW5nIGhhbiwgY3VuZyBuZW4gImJhbyBj YW8iIGxhaSByYW5nIG1vbmcgY2FjIGRvbmcgY2hpIA0KaGF5IGdpdSBnaW4gb24gZGluaCBCaWVu IERvbmcgVmlldCBOYW0gZGUgdGh1YyBoaWVuICJDaGllbiBsdW9jIEJpZW4iIHF1YW4gdHJvbmcg bWEgDQpIb2kgbmdoaSBUcnVuZyB1b25nIElWIGN1YSBEYW5nIGNodW5nIHRvaSB2dWEgbmV1IHJh LiANCg0KUGhvIHRydW9uZyB0aGFuZyBsb2kgY2h1eWVuIGRpLCBiYWkgIkFuIHR1b25nIFRydW5n IEhvYSIgZGFuZyBiYW8gTmhhbiBEYW4gc28gcmEgDQpuZ2F5IDExIHRoYW5nIDQgbmFtIDIwMDcg dHJpbmggYmF5IGN1b2MgdGhhbSB2aWVuZyBUcnVuZyBRdW9jIGN1YSBvbmcgTmd1eWVuIFBodSAN ClRyb25nIHZpZXQ6ICJEYW5nIG11bmcgbGEsIGN1bmcgdm9pIHRoYW5oIHR1dSB0byBsb24gdHJv bmcgcGhhdCB0cmllbiBraW5oIHRlLCBUcnVuZyANClF1b2MgZGFuZyB0aGUgaGllbiBzdSBxdWFu IHRhbSBuZ2F5IGNhbmcgbmhpZXUgaG9uIHRvaSBWaWV0IE5hbSwgaG8gdHJvIFZpZXQgTmFtIHhh eSANCmR1bmcgbW90IHNvIG5oYSBtYXksIGNvbmcgdHJpbmggbmh1OiBOaGEgbWF5IGdhbmcgdGhl cCBUaGFpIE5ndXllbiwgTmhhIG1heSBuaGlldCANCmRpZW4gSGFpIFBob25nLCBuaGlldCBkaWVu IFF1YW5nIE5pbmgsIG5oYSBtYXkgc2FuIHh1YXQgcGhhbiBkYW0gdHUgdGhhbiBjYW0gbyBOaW5o IA0KQmluaC4uLiIuIA0KDQpDYSBtb3QgbnVvYyBUcnVuZyBIb2EgInZpIGRhaSIsICJjdW5nIHZv aSB0aGFuaCB0dXUgdG8gbG9uIHRyb25nIHBoYXQgdHJpZW4ga2luaCB0ZSIsIGtoaSANCiJ0aGUg aGllbiBzdSBxdWFuIHRhbSBuZ2F5IGNhbmcgbmhpZXUgaG9uIHRvaSBWaWV0IE5hbSIgbWEgY2hp IGhvIHRybyB4YXkgZHVuZyBkdW9jIA0KbWF5IG5oYSBtYXkgInRodSBjb25nIiBuaHUgdGhlLiBW YXkgbWEgY3VuZyAiZGFuZyBtdW5nIGxhIiBsYW0gc2FvISBOZ2FuIGF5IGNvIGhvbiANCmR1b2Mg c3UgaG8gdHJvIG5hbyBkbyAobmV1IGNvIG1vaSBxdWFuIGhlIHRvdCBkZXAgdmEgdGluIGNheSkg Y3VhIG1vdCB0eSBwaHUgY28gbmh1IEJpbGwgDQpHYXRlIGtob25nPw0KDQpUaGUgbWEgb25nIE5n dXllbiBQaHUgVHJvbmcgY3VvaSB2dWkgaG9hbiBoeSBob2kgbmhpZXUsIGNhbSBvbiBob2kgbmhp ZXUsIGh1YSBob2MgDQp0YXAgdmEgbm9pIGd1b25nIGhvaSBuaGlldS4gKFZpIHZhbiBjb24gZGVv IGRhbmcgY2FpIHR1IHR1b25nIG5vIGxlIHkgdGh1YyBoZSBob2kgbmFuZykuIA0KTmdhYyBuaGll biBob24gbGEsIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIG9hbmcgb2FuZyBiYW8gY2FvIHZvaSBUcnVu ZyBRdW9jIHZhIHZvaSANCnRvYW4gdGhlIGdpb2kgcmFuZzogIlR1IG5nYXkgbmhhbiBsYW5oIGN1 b25nIHZpIGNodSB0aWNoIFF1b2MgaG9pLCBudW9jIGRhdSB0aWVuIHRvaSBkaSANCnRoYW0gbGEg VHJ1bmcgUXVvYyIuIA0KDQpUaGF0IGxhIGtob25nIGNvbiBnaSBkZSBub2khDQoNCihUb2kgeGlu IHRoYW5oIHRodWMga2UgbGFpIGNhdSBjaHV5ZW4gcmF0IGRhbmcgdHUgcGhlIHBoYW4gbmh1IHNh dTogS2hpIG5naGUgb25nIA0KTmd1eWVuIFBodSBUcm9uZyB2dWEgbm9pIGNhdSB0cmVuLCBtYWMg ZHUgZGFuZyBuZ29pIHRydW9jIG1vdCBzbyBuZ3VvaSwgbmh1IGxhIG1vdCANCnBoYW4geGEgdm8g ZGlldSBraWVuLCB0b2kgZG90IG5oaWVuIHZhbmcgYmF5OiAiU2FvIGNhaSB0aGFuZyBjaGEgbmd1 IHF1YSB0aGUgbmhpISIuIERhIA0KbmdvYWkgYmF5IG11b2ksIHRvaSB0aHVvbmcgdHUgcmFuIG1p bmgsIG5oZSByYSBjb24gbmd1b2kgcGhhaSBsYW8gdGh1YyBjaHUga2hvbmcgbmVuIA0KbGFvIGtp ZW4gbW9pIHBoYWkpLiANCk5oZSByYSwgZGF1IG9uZyBOZ3V5ZW4gUGh1IFRyb25nIGNvIG11b24g dHJhbmggdGh1IFRydW5nIFF1b2Mgbmh1IHRoZSBuYW8gZGF5IHRoaSANCm9uZyBjdW5nIGNoaSBj YW4gYmlldSB0aGkgYmFuZyBoYW5oIGRvbmcgbGEgZGEgZHUuIE5vaSByYSBuaHUgdmF5IGhldCBz dWMgdm8gY2hpbmggdHJpLg0KDQpDbyBjdSBjYWNoIG1hbmcgbGFvIHRoYW5oIGRhdCBjYXUgaG9p OiAiSGF5IGxhIGhvIG11b24gdm8gdmFvIG1hdCBuaGF1LCBtdW9uIGNoZW4gDQpuaGF1IGRlIGR1 b2MgdXUgdGllbiBkb24gbmhhbiBhbiBodWUgdmEgc3UgYmFvIHRybyBjdWEgVHJ1bmcgUXVvYz8i Lg0KDQpNb3QgdGhpZXUgbmhpIFRoYW5nIFRhbSBjdWEgdG9pIGtoaSB4dWEsIHNhdSBuYXkgaG9j IGRhaSBob2MgdmFuIGtob2Egdm9pIE5ndXllbiBQaHUgDQpUcm9uZyBjaG8gYmlldCByYW5nLCBv IGxvcCBhbmggdGEgaG9jIHJhdCBiaW5oIHRodW9uZywgY3VuZyBjaGFuZyBjbyBob2F0IGRvbmcg eGEgaG9pIHNvaSANCm5vaSBnaSwgdmF5IG1hIGtob25nIGJpZXQgbmhvIGRhdSBhbmggdGEgdGhh bmcgcXVhbiBuaGFuaCB0aGU/DQoNClRodWMgdmF5LCBvbmcgTmd1eWVuIFBodSBUcm9uZyB0dSBt b3QgaG9jIHNpbmggdHJvbiB2YW8gZGFpIGhvYy4gRHVvbmcgZGkgdGhlbmggDQp0aGFuZywgZGUg ZGFpIHF1YSBraGllbiBvbmcga2hvbmcgY28gZHVvYyBjYWkgdHUgY2hhdCwgY2FpIGJhbiBsaW5o LCBjYWkgbmdoaSBsdWMgY3VhIA0Kbmd1b2kgZHVvYyBnaWFuIG5hbiB0aHUgdGhhY2gsIGR1b2Mg eGEgaG9pIG5oYW8gbHV5ZW4uIE9uZyBjdW5nIGtob25nIGtpbmggcXVhIGhvYXQgDQpkb25nIGtp bmggdGUgaGF5IGtob2EgaG9jIGNvbmcgbmdoZSBtYSBjaGkgbGEgbW90ICJ0aG8gY2FvIGdpYXki LiBIb2kgbGFtIEJpIHRodSBUaGFuaCANCnV5IEhhIE5vaSBiaSBuaGFuIHhldCBsYSAibHUgbmh1 IFRyb25nIi4gUGh1IHRyYWNoIGNvbmcgdGFjIGx5IGx1YW4gdGhpIHRvYW4gbHkgbHVhbiBjdW4u IA0KU3UgZHVuZyBidWEgYmFpIGdpYXkgbXVjLCB0aWVuIGN1YSBjdWEgbmhhbiBkYW4gZGUgIm5v aSBsYXkgZHVvYyIgbmh1bmcgbHVhbiBkaWVtIGN1IA0KcmljaCwgbGFjIGhhdSBkZW4gbXVjIGRh IHRoYW5oIHBoYW4gZG9uZy4gTGFtIGNvbmcgdGFjIHR1IHR1b25nIGJhbmcgeGllbmcgZ29uZyB0 aW5oIA0KdGhhbiwgdGh1eWV0IHBodWMgcXVhbiBjaHVuZyBiYW5nIGNvbmcgYW4gdmFuIGhvYSB2 YSBiYW5nIG5odW5nIHBoaWVuIHRvYSB4dSB0aGVvIGNoaSANCnRoaSBjdWEgRGFuZy4gUGh1IHRy YWNoIHRvIGNodWMgY3VvYyBiYXUgY3UgUXVvYyBob2kga2hvYSAxMiBuYXkgdGhpIGhldCBzdWMg ZG8uIA0KVHJvbmcga2hpIGtoYXUgaGlldSAiRG9pIG1vaSIgZGEgZHVvYyBobyB2YW5nIHRoYXQg dG8sIGxhbSBjaG8gbW9pIGxpbmggdnVjLCBtb2kgY2FwIA0KZGF1IGtob25nIG11b24gZG9pIG1v aSB0aHVjIHN1IGN1bmcgcGhhaSBsYW0ga2hhYyB0cnVvYyBkb2kgY2h1dCB0aGkgdmllYyB0byBj aHVjIGJhdSANCmN1IFF1b2MgaG9pIHZhbiBpIHNpIG5odSBjdS4gVHJvbmcga2hpIG5lbiBraW5o IHRlIGRhbmcgcGhhaSByYSBzdWMgcGhhbiBkYXUgZGUgZHVvYyANCnRodWEgbmhhbiBsYSBraW5o IHRlIHRoaSB0cnVvbmcgZGF5IGR1LCB0cm9uZyBraGkgdHUgZG9hbmggZGFuZyB2dW90IHF1YSBx dW9jIGRvYW5oLCB4YSANCmhvaSBob2EgZGEgbGFuIHNhbmcgY2EgeSB0ZSwgZ2lhbyBkdWMgdGhp IHZpZWMgdHV5ZW4gbHVhIGNhYyB1bmcgY3UgdmllbiBRdW9jIGhvaSB2YW4gY2hpIA0KZ2lhbmgg Y2hvIGNhYyBxdWFuIG5nb2kgaGllcCB0aHVvbmcgdm9pIG5oYXUuIFRobyB0aGllbiB2YSBkYWkg ZG90IGRlbiBtdWMgbmdhbmcgbmhpZW4gDQp0dXllbiBibyBjb25nIGtoYWkgY2h1IHRydW9uZyBh biBkaW5oIHR5IGxlIDEwJSBuZ3VvaSBuZ29haSBEYW5nIGR1b2MgY2hvIHZhbyBRdW9jIA0KaG9p LiBEYW5nIG5oZSBwaGFpIGJpZXQgZ290IGJvIGNhaSB0aG9pIERhbmcgcXV5ZW4gbmdhbyBtYW4g ZGksIGJhbmcga2hvbmcsIG8gdGhvaSBkYWkgDQpAIG5heSBkYXUgY28gbXVvbiBraG9uZyBjaGUg dHkgbGUgZG8gdGhpICJuZ3VvaSBraG9uIG5nb2FuIiBjdW5nIGNoaSBkdW5nIG1vaSB0aHUgDQpk b2FuIHRpbmggdmkgbWEgZGF0IGR1b2MuIFZpZWMgdHV5ZW4gYm8gY29uZyBraGFpIG5odSB2YXkg bGEgbW90IGRhbmcgbmdvIG5nYW4gInRoYXQgDQp0aGEgaHUiLCBnaW9uZyBuaHUgY2h1eWVuIG5p bmggdm9pIFRydW5nIFF1b2MgcmFuZzogdHUgbmdheSBsZW4gY2h1IHRpY2ggUXVvYyBob2ksIA0K bnVvYyBkYXUgdGllbiB0b2kgZGkgdGhhbSBsYSBjYWMgb25nLCBuaHUgZGEgbm9pIG8gdHJlbi4N Cg0KKioqDQpUb2kgdmlldCBiYWkgbmF5IHBoYW4gZG8gYmFuIHRoYW4gdGhheSBjaHVvbmcgbWF0 LCBuZ3VhIHRhaSBxdWEsIHBoYW4gZG8gYmkgbW90IHNvIGxhbyANCnRoYW5oIGNhY2ggbWFuZyB0 aHVjIGdpdWMgbWFpLg0KDQpNb25nIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIGhheSB0dSBraWVtIGRp ZW0gZGUgY28gdGhlIGtoYSBsZW4gaG9uLCBkYW5nIGRhcCB1bmcgDQpkdW9jIHBoYW4gbmFvIHRy b25nIHRyYWNoIG1hIG9uZyBkYW5nIGRhbSBuaGllbS4gRGFjIGJpZXQsIG5lbiBkZSBwaG9uZyB0 dSB0dW9uZyBjbyANCmhvaS4gVHJ1b2MgZGF5LCBuZ2hlIGRhdSBuZ3VvaSB0YSB0dW5nIGNvIHkg ZGluaCB0YW5nIE5ndXllbiBDaGkgVmluaCwgTmd1eWVuIEtob2EgDQpEaWVtLi4uIGxlbiBsYW0g VG9uZyBCaSB0aHUsIGxhbSBDaHUgdGljaCBudW9jLCBuaHVuZywgaG9uIGRhbiB0b2MgdmFuIGNv biBhbmggbGluaCB2YSANCmxpY2ggc3UgY2hhYyBzZSBjb25nIG1pbmguDQoNCkhhIE5vaSA3IHRo YW5nIDUgbmFtIDIwMDcNCk5oYSBzbyA2IC0gVGFwIHRoZSBEaWEgVmF0IGx5IE1heSBiYXksIFRy dW5nIFZhbiAtIFR1IExpZW0gLSBIYSBOb2ksIERpZW4gdGhvYWk6ICgwNCkgNSA1MzQzNzAuDQpO Z3V5ZW4gVGhhbmggR2lhbmcgICAgDQoNCi0NCg0KTGUgQ2hpZXUgVGhvbmcgcnVvYyB2b2kgZ2lh eSBtYSB0byANCk5ndXllbiBwaHUgVHJvbmcgc2FvIHJvbmcgbmluaCBjYXUgdmluaCANCg0KLQ0K aHR0cDovL3d3dy5tb2YuZ292LnZuICAoIDE2LzA0LzIwMDcgMTA6MjggKQ0KDQpPbmcgTmd1eWVu IFBodSBUcm9uZzogIkJhIGtldCBxdWEgbG9uIHR1IGNodXllbiB0aGFtIFRydW5nIFF1b2MiDQoN CiJOZ2hpZW4gY3V1IGx5IGx1YW4sIHRvbmcga2V0IHRodWMgdGllbiwgY2FjIGJhbiBUcnVuZyBR dW9jIGxhbSByYXQgYmFpIGJhbi4gDQpOZ2hpZW4gY3V1IHRoaSBjbyBiYW4sIHRvbmcga2V0IHRo dWMgdGllbiB0aGkgc2F1IHNhYyB2YSB0dW5nIGJ1b2MgZGkgZGV1IGNvIA0KbHkgbHVhbiwgbG8g dHJpbmggcmF0IG1hY2ggbGFjLiBUdSBjaG8gZHVhIHJhIGRpbmggaHVvbmcgcGhhdCB0cmllbiBr aW5oIHRlIA0KdGhpIHRydW9uZyBYSENOLCBkZW4gYnVvYyB0YW5nIGN1b25nIHN1IGxhbmggZGFv IGN1YSBEYW5nLCB2YW4gZHVuZyBzYW5nIHRhbyANCkNodSBuZ2hpYSBNYWMgdmFvIGRpZXUga2ll biBjdSB0aGUgY3VhIFRydW5nIFF1b2MsIHhheSBkdW5nIHhhIGhvaSBtYW5nIHNhYyANCnRoYWkg VHJ1bmcgUXVvYyB2YSB0aWVuIGN1bmcgdGhvaSBkYWkuIFR1IGNobyB0YXAgdHJ1bmcgcGhhdCB0 cmllbiBraW5oIHRlLCANCnRhbmcgY3VvbmcgcGhhdCB0cmllbiBtaWVuIGRvbmcsIGRlbiBjaG8g a2hhaSBwaGEgbWllbiB0YXkuDQoNClRhIGNvIG5oaWV1IGRpZW0gdHVvbmcgZG9uZyBjYW4gdHJh byBkb2kga2luaCBuZ2hpZW0gdm9pIGJhbi4gU2FwIHRvaSwgdGhlbyANCnF1eWV0IGRpbmggY3Vh IERhaSBob2kgRGFuZyBsYW4gdGh1IFgsIGNodW5nIHRhIHNlIHRvbmcga2V0IDIwIG5hbSBwaGF0 IHRyaWVuIA0KdGhlbyBjdW9uZyBsaW5oIHhheSBkdW5nIGRhdCBudW9jIHRyb25nIHRob2kga3kg cXVhIGRvIHRpZW4gbGVuIENOWEggdmEgc2UgY28gDQpuaGlldSBkaWV1IGNodW5nIHRhIGNvIHRo ZSB2YW4gZHVuZywgdGhhbSBraGFvIGR1b2MuDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRu YW1lc2UvdmlldG5hbS9zdG9yeS8yMDA3LzA3LzA3MDcxOV9zdGltZXNfc3ByYXRseXMuc2h0bWwg IDE5IFRoYW5nIDcgMjAwNyAtIENhcCBuaGF0IDE5aDI1IEdNVA0KDQpEaWVuIGJpZW4gbW9pIHRh aSBUcnVvbmcgU2ENCg0KVGF1IGhhaSBxdWFuIFRydW5nIFF1b2MgaG9tIDkvNyBkYSBuYSBzdW5n IHZhbyBtb3Qgc28gdGh1eWVuIGRhbmggY2EgY3VhIG5ndSBkYW4gVmlldCBOYW0gDQp0cm9uZyB2 dW5nIGJpZW4gZ2FuIFRydW9uZyBTYSwgY2FjaCBUUCBIbyBDaGkgTWluaCAzNTBrbS4NCg0KQ2Fj IG5ndW9uIHRpbiBxdWFuIHN1IGNobyBoYXkgbW90IHRodXllbiBjdWEgVmlldCBOYW0gZGEgY2hp bSB0cm9uZyB2dSB0YW4gY29uZyBuYXkuIA0KTW90IG5ndSBkYW4gdGhpZXQgbWFuZyB2YSBtb3Qg c28gbmd1b2kga2hhYyBiaSB0aHVvbmcuDQoNCkh1bmcgQ2hlbiwgU2FpIEdvbg0KDQpMYSB0aGll dCwgMiB0dWFuIHJvaSBtYSBraG9uZyBiYW8gbmFvIG8gbnVvYyBWaWV0IE5hbSBsZW4gdGllbmcg Y2EuIFZOIG5lbiB0YW8gZHVuZyANCm1vaSBxdWFuIGhlIHRoYXQgdG90IHZvaSBBbiBkbywgTmhh dCBCYW4gdmEgTXkgZGUgZ2F5IHBoYW4gbmFvIHN1YyBlcCBsZW4gY2hpbmggc2FjaCANCmJpZW4g RG9uZyBjdWEgQ2hpbmEsIG5ldSBjaGkgYmlldCBpbSBsYW5nLCBlIHJhbmcgMSBuZ2F5IG5hbyBk byBzZSBjaGFuZyBjb24gVHJ1b25nIFNhLg0KDQpodHRwOi8vd3d3Lm1vZmFoY20uZ292LnZuL2Vu L21vZmEvbnIwNDA4MDcxMDQxNDMvbnIwNDA4MDcxMDUwMzkvbnMwNzA3MTYwOTMzMjYNCg0KSG9p IG5naGkgbGFuIHRodSBuYW0gQmFuIENoYXAgaGFuaCBUcnVuZyB1b25nIERhbmcgKGtob2EgWCkg aG9wIHRhaSBIYSBOb2kgdHUgbmdheSA1LzcgZGEga2V0IHRodWMgY2hpZXUgMTQvNy4NCg0KVGFp IGhvaSBuZ2hpIG5heSwgQmFuIENoYXAgaGFuaCBUcnVuZyB1b25nIGRhIHhlbSB4ZXQgY28gY2F1 IHRvIGNodWMgQ2hpbmggcGh1IA0KbmhpZW0ga3kgUXVvYyBob2kga2hvYSBYSUkgdmEgcXV5ZXQg ZGluaCB2aWVjIGdpb2kgdGhpZXUgbmhhbiBzdSBsYW5oIGRhbyBjYWMgY28gDQpxdWFuIG5oYSBu dW9jIGRlIFF1b2MgaG9pIGJhdSB2YSBwaGUgY2h1YW4uDQoNCmh0dHA6Ly93d3cuYmJjLmNvLi51 ay92aWV0bmFtZXNlL3ZpZXRuYW0vc3RvcnkvMjAwNy8wNy8wNzA3MTlfc3RpbWVzX3NwcmF0bHlz LnNodG1sIDE5IFRoYW5nIDcgMjAwNyAtIENhcCBuaGF0IDE5aDI1IEdNVA0KDQpDYWMgbmd1b24g dGluIHF1YW4gc3Ugbm9pIG5nYXkgOS83IGhhaSB0YXUgY2hpZW4gY28gZG9uZyBCUFMtNTAwIGN1 YSBWaWV0IE5hbSBkbyANCk5nYSB0aGlldCBrZSBkYSB2b2kgdmEgZGVuIGhpZW4gdHJ1b25nIG5o dW5nIHBoYWkgZHVuZyB0dSB4YSB2aSBob2EgbHVjIHF1YSBtYW5oIHR1IHRhdSBUcnVuZyBRdW9j Lg0KDQpodHRwOi8vd3d3LmRhbmNoaW12aWV0LmNvbS9waHAvbW9kdWxlcy5waHA/bmFtZT1OZXdz JmZpbGU9cHJpbnQmc2lkPTc1OSBOZ2F5OjAzLTExLTIwMDUgRGUgdGFpOiBRdWFuIGhlIFZpZXQg LSBUcnVuZw0KDQpEYWkgUkZBIHBob25nIHZhbiB0aWVuIHNpIE5ndXllbiBUaGFuaCBHaWFuZw0K DQpWaWV0IEh1bmc6IERhbmggZ2lhIHZhIGJpbmggbHVhbiB2ZSBjaHV5ZW4gZGkgY3VhIG9uZyBI byBDYW0gRGFvLCBuaHVuZyBuZ3VvaSB0aGVvIA0KZG9pIHRob2kgY3VvYyB0aGkgY2hvIHJhbmcg Y2h1eWVuIGRpIGN1YSBvbmcgSG8gQ2FtIERhbyBkZW4gVmlldCBOYW0gdHJvbmcgYm9pIA0KY2Fu aCBjaGluaCB0cmkgbWEgVmlldCBOYW0gZGFuZyBjYW4gcmF0IG5oaWV1IHRyb25nIHN1IGhvaSBu aGFwLiBQaGFpIGNoYW5nIHJhbmcgDQp2aWVjIG9uZyBvbmcgSG8gQ2FtIERhbyBkZW4gcGhhbiBu YW8gZGEgbm9pIGR1b2MgZGlldSBkbyBoYXkgY2h1YSBhPw0KDQpUUyBOZ3V5ZW4gVGhhbmggR2lh bmc6IENhbiBsdXUgeSB0aG9pIGRpZW0gb25nIEhvIENhbSBEYW8gc2FuZyBkYXkgbGFpIGxhIHRo b2kgDQpkaWVtIHNhcCBkaWVuIHJhIGRhaSBob2kgMTAuIE5ldSBvbmcgdGEgc2FuZyB2b2kgbXVj IGRpY2ggZGUgZGlldSBraGllbiBjaHVuZyANCnRhLCBkZSBjYW4gdGhpZXAgdmFvIHZpZWMgc2Fw IHhlcCBuaGFuIHN1IGN1YSBjaHVuZyB0YSB0aGkgZGF5IGxhIHN1IGNhbiB0aGllcCANCnRobyBi YW8gdmFvIG5vaSBibyBudW9jIHRhIGtob25nIGNoYXAgbmhhbiBkdW9jLiBLaG9uZyBkdW9jIGRl IGNobyBIbyBDYW0gRGFvLCANCmtob25nIGR1b2MgZGUgY2hvIGJhdCBjdSBtb3Qgbmd1b2kgbGFu aCBkYW8gVHJ1bmcgUXVvYyBuYW8gc2FuZyBkYXkgZGUgY2hpIGh1eSANCmNodW5nIHRhIHZpZWMg c2FwIHhlcCBuaGFuIHN1IGNobyBkYWkgaG9pIDEwIQ0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5u ZXQvR0wvWGEtaG9pLzIwMDcvMDcvM0I5Rjg1OUQvIFRodSBoYWksIDIzLzcvMjAwNywgMDg6MzIg R01UKzcNCg0KVHJvbmcgdGllbmcgdm8gdGF5IHR1IEhvaSB0cnVvbmcsIENodSB0aWNoIFF1b2Mg aG9pIE5ndXllbiBQaHUgVHJvbmcgZGEgZGF0IGJhbiANCnRheSBsZW4gbmd1YyB0cmFpLCBiYXkg dG8gc3UgdHJpIGFuLCBiaWV0IG9uIGRvaSB2b2kgc3UgdGluIG5oaWVtIGN1YSBnYW4gNTAwIGRh aSBiaWV1Lg0KDQpUaGFuZyA2LzIwMDYsIHRhaSBwaGllbiBob3AgUXVvYyBob2kgZ2l1YSBuaGll bSBreSwgZGFpIGJpZXUgTmd1eWVuIFBodSBUcm9uZyANCihraGkgZG8gbGEgQmkgdGh1IFRoYW5o IHV5IEhhIE5vaSkgZGEgZHVvYyBiYXUgbGFtIENodSB0aWNoIFF1b2MgaG9pIGtob2EgMTEuDQoN ClRyYSBsb2kgYmFvIGNoaSBzYXUga2hpIHRydW5nIGN1LCBDaHUgdGljaCBOZ3V5ZW4gUGh1IFRy b25nIGRhIGtoYW5nIGRpbmgsIG9uZyANCmx1b24geSB0aHVjIGhvYyB0YXAga2luaCBuZ2hpZW0g bmd1b2kgdGllbiBuaGllbSB2YSBraG9uZyBjb2kgdGhhbmggY29uZyBjdWEgbmd1b2kgdGllbiBu aGllbSBsYSBzdWMgZXAuIA0KDQotDQoNClF1b2MgaG9pIGtob25nIHRoaWV1IG5oYW4gdGFpDQpO Z2F0IHZpIGJpIGVwIGJhdSBOZ2FpIGxlbiBuZ29pDQpNaWVuZyBOZ2FpIGNhIHR1bmcgaGV0IGxv aQ0KRGFuIE5hbSBiaSBiYW4gYmllbiBraG9pIHRvaSB0aW5oIA0KDQotDQpodHRwOi8vd3d3Lm1v Zi5nb3Yudm4gICggMTYvMDQvMjAwNyAxMDoyOCApDQoNCk9uZyBOZ3V5ZW4gUGh1IFRyb25nOiAi QmEga2V0IHF1YSBsb24gdHUgY2h1eWVuIHRoYW0gVHJ1bmcgUXVvYyINCg0KaHR0cDovL3d3dy5i YmMuY28udWsvdmlldG5hbWVzZS92aWV0bmFtL3N0b3J5LzIwMDcvMDgvMDcwODI5X3ZpZXRjaGlu YV9zdGltZXMuc2h0bWwgIDI5IFRoYW5nIDggMjAwNyAtIENhcCBuaGF0IDA4aDI3IEdNVCBCYWkg Y3VhIGJhbyBTdHJhaXQgVGltZXMsIFNpbmdhcG9yZQ0KDQpUUSwgVk4gY2FuZyB0aGFuZyB2ZSBj aGF0IGx1b25nIGhhbmcNCg0KRGFpIHN1IFZpZXQgTmFtIHRhaSBUcnVuZyBRdW9jIHZ1YSBiaSBC byBOZ29haSBnaWFvIG51b2MgbmF5IHRyaWV1IHRhcCBob2kgZGF1IHRoYW5nIGRlIG5naGUgDQpo dWFuIHRoaSB2ZSB0aGFuIHBoaWVuIGN1YSBCYWMgS2luaCBxdWFuaCB2aWVjIGJhbyBjaGkgVmll dCBOYW0gZGEgdGFwIHRydW5nIHBoYW4gYW5oIGJlIGJvaSANCnZlIGNoYXQgbHVvbmcgaGFuZyBo b2EgVHJ1bmcgUXVvYy4NCg0KUGh1b25nLCBCZXJsaW4NCg0KQ2h1bmcgdGEgZHVuZyBsYSBxdWEg aG8gdGhlbi4gTWFuZyB0aWVuZyBsYSBtb3QgbnVvYyBkb2MgbGFwIHR1IGRvIG1hIGRvaSBraGkg aGFpIHR1IGRvIGNvbiANCnF1YSBuaGlldSB2YW4gZGUuIFRvaSBoeSB2b25nIGNoaW5oIHBodSBW aWV0IE5hbSBzZSBsYW0gaGV0IG1pbmggdHJvbmcgY29uZyBjdW9jIGR1YSBkYXQgbnVvYyANCmRp IGxlbiBkZSAic2FuaCBuZ2FuZyIgdm9pIGNhYyBudW9jIGJhbiBiZSB0cmVuIHRoZSBnaW9pLg0K DQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3dvcmxkbmV3cy9zdG9yeS8yMDA3LzEw LzA3MTAyM19wYXJhY2VsdG91cmlzbS5zaHRtbCAyMyBUaGFuZyAxMCAyMDA3IC0gQ2FwIG5oYXQg MTRoNTYgR01UDQoNClRydW5nIFF1b2MgbW8gcm9uZyBkdSBsaWNoIEhvYW5nIFNhDQoNCkN1YyBE dSBsaWNoIHRpbmggSGFpIE5hbSAoVHJ1bmcgUXVvYykgbW9pIHRob25nIHF1YSBtb3QgZHUgYW4g cGhhdCB0cmllbiBkdSBsaWNoIA0KbyBraHUgdnVjIGJpZW4gZG9uZywgdHJvbmcgZG8gY28gcXVh biBkYW8gSG9hbmcgU2EuDQoNClRyZW4gdGh1YyB0ZSwgVHJ1bmcgUXVvYyBiYXQgZGF1IHRpZW4g aGFuaCBjYWMgdG91ciB0aGFtIHF1YW4gdGFpIGRvIG1vdCB2YWkgDQpuYW0gdHJ1b2MgdmEgc3Ug ZHVuZyB0YXUgdGh1eWVuIHF1YW4gc3UgZGUgdmFuIGNodXllbiBkdSBraGFjaC4NCg0KVG8gTmhh dCBiYW8gTGFvIGRvbmcgY3VuZyB0cmljaCBsb2kgbW90IHF1YW4gY2h1YyBjaGluaCBwaHUgVHJ1 bmcgUXVvYyBub2kgDQpyYW5nIGR1IGxpY2ggc2UgbWFuZyBsYWkgbmh1bmcgbG9pIGljaCBraW5o IHRlIGxvbiBjaG8gSG9hbmcgU2EgY3VuZyBuaHUgDQpjdW5nIGNvIGNodSBxdXllbiBjdWEgVHJ1 bmcgUXVvYyBkb2kgdm9pIHF1YW4gZGFvIG5heS4uDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0 bmFtZXNlL1NwZWNpYWxUb3BpYy9TcHJhdGx5UGFyYWNlbHMNCg0KU3Uga2llbiBUcnVuZyBRdW9j IHRoaWV0IGxhcCBkb24gdmkgaGFuaCBjaGluaCBkZSBxdWFuIHRyaSBoYWkgcXVhbiBkYW8gSG9h bmcgU2EgDQp2YSBUcnVvbmcgU2EsIG1vaSBkdW9jIGNvbmcgYm8gdmFpIG5nYXkgbmF5LCBkYW5n IGdheSBjYW0gcGhhbiB0cm9uZyBjb25nIGx1YW4gbmd1b2kgVmlldCB0cm9uZyB2YSBuZ29haSBu dW9jLg0KDQpodHRwOi8vd3d3LnZvYW5ld3MuY29tL3ZpZXRuYW1lc2UvYXJjaGl2ZS8yMDA4LTAx LzIwMDgtMDEtMjEtdm9hOC5jZm0/Q0ZJRD0zMDQ5NjgwNjEmQ0ZUT0tFTj03NTIzODE1OCAyMS8w MS8yMDA4DQoNClZhbiBkZSB0cmFuaCBjaGFwIGxhbmggdGhvIGN1YSBUcnVuZyBRdW9jIHZvaSBW aWV0IE5hbSB2YSBjYWMgbGFuIGJhbmcNCg0KQmFuIFZpZXQgTmd1IFZPQSBjdW5nIGRhIHRpZXAg eHVjIHZvaSBsdWF0IHN1IE5ndXllbiBIdXUgVGhvbmcsIG1vdCBuZ3VvaSBkYSB0dW5nIA0KaGFu aCBuZ2hlIG8gU2FpIEdvbiB0cnVvYyBuYW0gMTk3NSwgcm9pIHRhaSBQaGFwIHZhIGhpZW4gZ2lv IG9uZyBkYW5nIGhhbmggbmdoZSANCnRyb25nIGJhbmcgQ2FsaWZvcm5pYSwgSG9hIEt5LiBWZSB2 YW4gZGUgVHJ1bmcgUXVvYyB0aGFuaCBsYXAgZG9uIHZpIGhhbmggY2hhbmggVGFtIFNhLCBsdWF0 IHN1IFRob25nIGR1YSB5IGtpZW46DQoNCiJTdSB0aHVjIHZhbiBkZSBsYW5oIHRobywgbGFuaCBo YWkgcGhhaSBkbyBxdW9jIGRhbiwgbWEgcXVvYyBkYW4gdGhpIGRvIHF1b2MgaG9pLCB0dWMgbGEg cXVvYyBob2kgcGhhaSBsZW4gdGllbmcuIg0KIkRhbmcgbmF5LCBxdW9jIGhvaSBUcnVuZyB1b25n IFZpZXQgTmFtIGtob25nIG5vaSBnaSBjYS4gTmh1bmcgdmFuIGRlIGNoaW5oIA0Ka2hvbmcgcGhh aSBvIGRvIChUYW0gU2EpLCB2YW4gZGUgY2hpbmggbyBkYXkgbGEgZGFjIGtodSBIYW5oIENoaW5o IEhhaSBOYW0gZGEgY2hpZW0gaGV0IDgwJSBjYWkgYmllbiBEb25nIE5hbSBBIHJvaS4iDQoNCmh0 dHA6Ly93d3cubW9mLmdvdi52biAgKCAxNi8wNC8yMDA3IDEwOjI4ICkNCg0KT25nIE5ndXllbiBQ aHUgVHJvbmc6ICJCYSBrZXQgcXVhIGxvbiB0dSBjaHV5ZW4gdGhhbSBUcnVuZyBRdW9jIg0KDQpO aGlldSBuZ3VvaSBiaWV1IHRpbmggY2hvbmcgVHJ1bmcgUXVvYyBiaSBiYXQgZ2l1LCBoYW5oIGh1 bmcNCk5ldSBiYW4gZGFuZyBvIFZpZXQgTmFtJyBoYXkgYmFtIGhheSBjb3BweSBkdW9uZyBsaW5r IHZhIHBhc3RlIHZhbyBBZGRyZXNzIGJhciBjdWEgSW50ZXJuZXQgICAoaHR0cHM6Ly93Ni5saW5k eWNpdHkuY29tL2RtaXJyb3IvaHR0cC93d3cucmZhLm9yZy92aWV0bmFtZXNlL2luX2RlcHRoLzIw MDcvMTIvMTgvQW50aS1DaGluYV9Qcm90ZXN0ZXJzX2F0dGFja2VkX2FuZF9kZXRhaW5lZF9UTWkv ICApIGRlIHZ1b3QgcXVhIGJ1YyB0dW9uZyBsdWENCk5ldSBiYW4gbyBoYWkgbmdvYWksIGhheSBi YW0gaGF5IGNvcHB5IGR1b25nIGxpbmsgdmEgcGFzdGUgdmFvIEFkZHJlc3MgYmFyIGN1YSBJbnRl cm5ldCAgKCBodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9pbl9kZXB0aC8yMDA3LzEyLzE4 L0FudGktQ2hpbmFfUHJvdGVzdGVyc19hdHRhY2tlZF9hbmRfZGV0YWluZWRfVE1pLyAgKSBkZSB4 ZW0gdGllcC4NCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS92aWV0bmFtL3N0b3J5 LzIwMDcvMTIvMDcxMjA5X2NoaW5hX3Byb3Rlc3Quc2h0bWwgMDkvMTIvMjAwNyAwOWg1MyBHTVQN Cg0KJ01hdSB0aGl0IFZpZXQgTmFtJw0KDQpOaHVuZyBuZ3VvaSBiaWV1IHRpbmggaGF0IHF1b2Mg Y2EsIGJheSB0byBzdSB1bmcgaG8gZG9pIHZvaSBxdWFuIGRpZW0gY3VhIGNoaW5oIHBodSwgDQpy YW5nIHF1YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBTYSB0aHVvYyBjaHUgcXV5ZW4gY3VhIFZp ZXQgTmFtLg0KDQpIbyBtYW5nIHRoZW8gcXVvYyBreSB2YSBiaWV1IG5ndSB2b2kgbm9pIGR1bmcg bmh1OiAiVHJ1b25nIFNhIHZhIEhvYW5nIFNhIGxhIG1hdSB0aGl0IGN1YSBWaWV0IE5hbSIuDQoN Cmh0dHA6Ly93d3cuY3l2ZWUuY29tL01vZHVsZXMvTmV3cy9WaWV3LmFzcHg/bmV3c0lkPTY1NDMg IG5nYXkgMTcvMTIvMjAwNw0KDQpUcnVvbmcgU2EgdmEgSG9hbmcgU2EgbGEgY3VhIFZpZXQgTmFt DQoNClF1eWV0IGRpbmggdGhhbmggbGFwIHRoYW5oIHBobyBUYW0gU2EgbGFuIG5heSBjdWEgVHJ1 bmcgUXVvYyBsYSBtb3QgYnVvYyB0aWVuIGRhaSB2YSBuZ3V5IGhpZW0uIA0KSG8gQ2FtIERhbyBj aG8gZGVuIHNhdSBkYWkgaG9pIDE3IGN1YSBtaW5oLCBtYSB0cnVvYyBkbyB2b24gdHV5ZW4gYm8g VFEgbXVvbiBsYSBtb3QgDQpudW9jIHRvbiB0cm9uZyBsdWF0IHBoYXAgcXVvYyB0ZSB2YSBxdXkg dGFjIGhvYSBiaW5oLCBkYSBxdXlldCBkaW5oIG1vIHJvbmcgbGFuaCB0aG8gDQp0aGVtIDIsNCB0 ciBrbTIgKFRvYW4gYm8gcGhhbiBkaWVuIHRpY2ggY2FjIHZ1bmcgYmllbiBkYW8gSG9hbmcgU2Es IFRydW9uZyBTYSB2YSANCkRvbmcgU2EgbWEgVFEgZG9uIHBodW9uZyB0dXllbiBibyBjaHUgcXV5 ZW4pLCB0dW9uZyBkdW9uZyB2b2kgMS80IGRpZW4gdGljaCBUUS4NCg0KTGFuIG5heSB0aGkgbmdh eSBjYSBuaHVuZyBrZSBuZ2F5IHRobyBuaGF0LCBuZ2F5IGNhIG5odW5nIG5ndW9pIG11b24gdGlt IGNhY2ggZHVhIA0KZGFtIHZhbyBUUSBuaGF0IGRlIGJhbyB0b2FuIHF1eWVuIGxvaSBjYSBuaGFu LCBjdW5nIHBoYWkgbmdhIG5ndWEgbmd1b2kuDQoNClR1IG5oaWV1IG5hbSBxdWEgVHJ1bmcgUXVv YyBkYSB0aWVuIGhhbmggbW90IGN1b2MgY2hpZW4geGFtIGx1b2MgdHUgdHUgdmUgbW9pIG1hdCwg DQp0dSB0dXllbiB0cnV5ZW4sIG5nb2FpIGdpYW8sIGdpYW8gZHVjIGNobyBkZW4gcXVhbiBzdSAN Cg0KaHR0cDovL25ndXllbnh1YW5kaWVuLmJsb2dzcG90LmNvbS8yMDEwLzA4L2JuLXBodW5nLXBo bmctbG5nLWhhaS1raW5oLXZ1bmcuaHRtbCBEaW5oIEtpbSBQaHVjIDI2LTA4LTIwMTANCg0KVHJv aSBvaSEgVGh1YSBDaHUgdGljaCBRdW9jIGhvaSwgdmllYyBkYSBnYXAgbGFtIHJvaSEgIA0KDQpO aHUgdGhlIG5hbyBtb2kgbGEgImNvIGNhaSBnaSBtb2kiPyBUaHVhIG9uZyBDaHUgdGljaCBRdW9j IGhvaSANCg0KVGFpIHBoaWVuIGhvcCBVeSBiYW4gVGh1b25nIHZ1IFF1b2MgaG9pIGNoaWV1IDI1 LTgtMjAxMCwgQ2h1IG5oaWVtIFV5IGJhbiBRdW9jIA0KcGhvbmcgliBhbiBuaW5oIExlIFF1YW5n IEJpbmggZGUgbmdoaSBDaGluaCBwaHUgY28gYmFvIGNhbyB2ZSB0aW5oIGhpbmggYmllbiBEb25n IHZhIA0KdGluaCBoaW5oIGFuIG5pbmggdHJ1b2MgRGFpIGhvaSBEYW5nIGRlIGNhYyBkYWkgYmll dSB0aGFvIGx1YW4sIHRhbyBzdSBkb25nIHRodWFuLiBUdXkgDQpuaGllbiwgQ2h1IHRpY2ggUXVv YyBob2kgTmd1eWVuIFBodSBUcm9uZyBrZXQgbHVhbiBjaHVhIGNhbiBiYW8gY2FvIHRpbmggaGlu aCBiaWVuIA0KRG9uZyB2aSBzbyB2b2kgYmFvIGNhbyBjdWEgQm8gTmdvYWkgZ2lhbyB0YWkga3kg aG9wIHRodSA2IChjYWNoIGRheSBtb3QgbmFtIJYgTlYpLCANCmRlbiBuYXkga2hvbmcgY28gZ2kg bW9pLi4uKDEpDQoNCihBbmg6IG9uZyBDaHUgdGljaCBRdW9jIGhvaSBOZ3V5ZW4gUGh1IFRyb25n KQ0KDQpUaGVvIHRpbiBEYWkgcGhhdCB0aGFuaCBUcnVuZyBRdW9jIG5nYXkgMTAvNi8yMDEwOiBO Z3VvaSBQaGF0IG5nb24gQm8gTmdvYWkgZ2lhbyANClRydW5nIFF1b2MgVGFuIEN1b25nIG5vaTog IlRydW5nIFF1b2Mga2hvbmcgZ2F5IGRlIGRvYSBkb2kgdm9pIG5ndW9pIGtoYWMsIGN1bmcgDQpr aG9uZyB4YW0gbHVvYyBudW9jIGtoYWMsIFRydW5nIFF1b2MgcGhhbiBkb2kgY2h1IG5naGlhIGJh IHF1eWVuLiBUcnVuZyBRdW9jIGxhIA0KbnVvYyBkYW5nIHBoYXQgdHJpZW4sIGNobyBkdSBzYXUg bmF5IFRydW5nIFF1b2MgcGhhdCB0cmllbiwgY3VuZyBzZSBraWVuIGRpbmggZGkgdGhlbyANCmNv biBkdW9uZyBwaGF0IHRyaWVuIGhvYSBiaW5oLCBtYWkgbWFpIGtob25nIHh1bmcgYmEsIGRheSBs YSBzdSB0dXllbiBibyB0cmluaCB0cm9uZyANCnRydW9jIHRoZSBnaW9pIGN1YSBDaGluaCBwaHUg VHJ1bmcgUXVvYyIuDQoNCk5odW5nLCB0cm9uZyA4IHRoYW5nIGRhdSBuYW0gMjAxMCwgVHJ1bmcg UXVvYyBkYTogDQoNCi0gTmdheSAzMC8wNCwgVHJ1bmcgUXVvYyBkb24gcGh1b25nIHR1eWVuIGJv IGxlbmggY2FtIGRhbmggYmF0IGNhIHRyZW4gdnVuZyBiaWVuIA0KRG9uZyB0dSAxMmggdHJ1YSBu Z2F5IDA2LzA1MTIwMTAgdmEgc2Uga2VvIGRhaSBkZW4gMTJoIHRydWEgbmdheSAwMS8wOC8yMDEw Lg0KDQpEdW9jIGJpZXQsIGtodSB2dWMgY2FtIGRhbmggYmF0IG1hIFRydW5nIFF1b2MgZG9uIHBo dW9uZyB0dXllbiBibyBjbyBuaGlldSBwaGFuIA0KbmFtIHRyb25nIGxhbmggaGFpIGN1YSBWaWV0 IE5hbSAoQmF0IGRhdSB0dSAxMiBkbyBWaSBCYWMgZGVuIDExMyBkbyBLaW5oIERvbmcgliBraHUg DQp2dWMgbmF5IHNlIGtlbyBkYWkgdHUgSGFpIE5hbSBkZW4gdnVuZyBiaWVuIE5oYSBUcmFuZyBj dWEgVmlldCBOYW0pLiBUcm9uZyBkbyBiYW8gDQpnb20gaGFpIHF1YW4gZGFvIEhvYW5nIFNhIHZh IFRydW9uZyBTYS4NCg0KUGhpYSBUcnVuZyBRdW9jIGNvbiBkdWEgcmEgbXVjIHh1IHBoYXQgZG9p IHZvaSBjYWMgaGFuaCB2aSB2aSBwaGFtIGx1YXQgY2FtIGRhbmggYmF0IA0KdHJlbi4gVmkgZHUg c2UgdGllbiBoYW5oIGFwIGR1bmcgbXVjIHBoYXQgbGVuIHRvaSA1MDAwMCBORFQgdHJvIHh1b25n IGRvaSB2b2kgY2FjIGhhbmggDQp2aSB2aSBwaGFtIHRob25nIHRodW9uZywgZG9pIHZvaSBjYWMg dGluaCB0aWV0IG5naGllbSB0cm9uZyBzZSB0aWNoIHRodSBnaWF5IHBoZXAgZGFuaCANCmJhdCwg bmdvYWkgcmEgc2UgdGllbiBoYW5oIHRydXkgY3V1IHRyYWNoIG5oaWVtIGhpbmggc3UgZG9pIHZv aSBoYW5oIHZpIHZpIHBoYW0gZGFjIGJpZXQgDQpuZ2hpZW0gdHJvbmcuKDQpDQoNCi0gVGhlbyB0 aW4gdHUgbWFuZyBiYW8gZGllbiB0dSBUYW4gSG9hIFhhLCB0aW5oIGRlbiB0cnVhIG5nYXkgMjUv MDUsIGNhYyBraGF1IGN1b2kgY3VuZyANCmN1YSBjb25nIHRhYyBsYXAgZGF0IHRyYW0gdGh1IHBo YXQgc29uZyBkaWVuIHRob2FpIGRhdSB0aWVuIHRyZW4gZGFvIENodSBUaGFwICh0aHVvYyANCnF1 YW4gZGFvIFRydW9uZyBTYSkgZGEgaG9hbiB0aGFuaC4NCg0KRHVvYyBiaWV0LCBuZ2F5IHR1IGRh dSB0aGFuZyA1IFRydW5nIFF1b2MgZGEgY3UgY2FuIGJvIG5oYW4gdmllbiBreSB0aHVhdCByYSBo b24gZGFvIA0KbmF5IG5oYW0gdGllbiBoYW5oIGNhYyBjb25nIHRhYyBsYXAgZGF0LiBEZW4gbmdh eSAyNS8wNSB0aGkgdHJhbSBwaHVjIHZ1IGRpZW4gdGhvYWkgZGkgDQpkb25nIG5heSBjaGluaCB0 aHVjIGJhdCB0aW4gaGlldSB2YSBkdWEgdmFvIHN1IGR1bmcuIERheSBsYSB0cmFtIHBodWMgdnUg ZGllbiB0aG9haSBkaSANCmRvbmcgZGF1IHRpZW4gZHVvYyBwaGlhIFRydW5nIFF1b2MgY2hvIGxh cCBkYXQgdGFpIHF1YW4gZGFvIG5heS4gVGhlbyBkbywgc28gYmluaCBsaW5oIA0KVHJ1bmcgUXVv YyBkb24gdHJ1IHRhaSBjYWMgZGFvIGN1YSBWaWV0IE5hbSB0cm9uZyBwaGFtIHZpIHF1YW4gZGFv IG5heSBjbyB0aGUgZ29pIGRpZW4gDQp0aG9haSB0cnVjIHRpZXAgdmFvIGRhdCBsaWVuLg0KDQpC ZW4gY2FuaCBkbywgbmdvYWkgZGFvIENodSBUaGFwIHJhIHRoaSBwaGlhIFRydW5nIFF1b2MgY3Vu ZyBkYW5nIHRpZW4gaGFuaCBsYXAgZGF0IA0KdGhlbSBtb3Qgc28gdHJhbSB0aHUgcGhhdCBzb25n IG51YSwgZG9uZyB0aG9pIGR1IGtpZW4gY2FjIHRyYW0gcGhhdCBzb25nIG5heSBzZSBkdW9jIA0K ZHVhIHZhbyBzdSBkdW5nIHRyb25nIHRob2kgZ2lhbiBuZ2FuIHRpZXAgdGhlby4oNSkNCg0KLSBO Z2F5IDA2LzA2LCBtb3QgbG9hdCBiYW8gY2hpIE1hbGFpc2lhIGR1YSB0aW4gbmdoaSBuZ28ga2hh IG5hbmcgVHJ1bmcgUXVvYyBjbyB0aGUgc2UgDQpibyB0cmkgdGVuIGx1YSBkYW4gZGFvIFRydW9u ZyBLaWVtIDEwIHRhaSBraHUgdnVjIHF1YW4gZGFvIFRydW9uZyBTYS4gTmV1IG5odSBkaWV1IA0K bmF5IHhheSByYSBzZSBnYXkgbG8gbmdhaSBjaG8gbW90IHNvIG51b2MgdmEgY2FuIHRoaWVwIGRl biB2aWVjIHRyYW5oIGNoYXAgYmllbiBEb25nIA0KaGllbiBuYXkuDQoNCkR1b2MgYmlldCwgdHJ1 b2MgZG8gVHJ1bmcgUXVvYyBkYSB0aWVuIGhhbmggYm8gdHJpIGxvYWkgdGVuIGx1YSBkYW4gZGFv IGxvYWkgbmF5IHRhaSAzIGtodSANCnZ1YyB0cm9uZyB5ZXUgcGhpYSBuYW0gZG8gbGEgUXV5IENo YXUsIFF1YW5nIFRheSB2YSBHaWFuZyBUYXkgbmhhbSBkb2kgcGhvIHZvaSBtb2kgDQpkZSBkb2Eg Y28gdGhlIHhheSByYSB0dSBjYWMgbnVvYyBuaHUgQW4gRG8sIFZpZXQgTmFtIHZhIERhaSBMb2Fu LiBDaGluaCB2aSB0aGUsIG1vdCBzbyANCm5ndW9uIHRpbiBsbyBuZ2FpIHRyb25nIHRob2kgZ2lh biB0b2kgVHJ1bmcgUXVvYyBzZSB0aWVwIHR1YyB0cmllbiBraGFpIGxvYWkgdGVuIGx1YSBkYW4g ZGFvIA0KbmF5IHh1b25nIGtodSB2dWMgc2F1IGhvbiwgdHJvbmcgZG8gY28gY2FjIGRhbyBtYSBU cnVuZyBRdW9jIGNoaWVtIGRvbmcgdGFpIHF1YW4gDQpkYW8gVHJ1b25nIFNhIGN1YSBWaWV0IE5h bS4oNikNCg0KLSBWYW8gZ2l1YSB0aGFuZyA2IGdhbiBkYXksIFRydW5nIFF1b2MgZGEgeGF5IGR1 bmcgQ3VvbmcgbGluaCBxdXkgaG9hY2ggcGhhdCB0cmllbiANCmRhbyAiVGFtIG5oaW4gMjAyMD8g liB0cm9uZyBkbyAicXV5IGhvYWNoIiBjYSBjYWMgdnVuZyBiaWVuIHZhIGhhaSBkYW8gdGh1b2Mg cXVhbiBkYW8gDQpIb2FuZyBTYSB2YSBUcnVvbmcgU2EgY3VhIFZpZXQgTmFtLiBEdSBsdWFuIGNo byByYW5nLCBiYW4gY2hhdCAiVGFtIG5oaW4gMjAyMD8gY3VhIA0KVHJ1bmcgUXVvYyBsYSwgYmF0 IGNoYXAgbHVhdCBwaGFwIHF1b2MgdGUsIHR1bmcgYnVvYyB0aG9uIHRpbmggYmllbiBEb25nLiBO aHVuZyBoYW5oIA0KZG9uZyB0cm9uZyBtb3QgdGhvaSBnaWFuIGRhaSBkbyBjb24gbmhhbSBoaWVt IG8gY2hvIG5vIGRpbmggaHVvbmcgdGFtIGx5IHJhbmcgZG8gbGEgDQoic3UgZGEgcm9pIiwgcmFu ZyBUcnVuZyBRdW9jIGNvIGRhbmggcGhhbiB2YSBkbyBkbyBjbyBxdXllbiBnaWFuaCBjaHUgcXV5 ZW4gY3VhIG1pbmggDQp0cmVuIGNhYyB2dW5nIGJpZW4gZGEgbmV1Lig3KQ0KDQotIFR1IGN1b2kg dGhhbmcgNS8yMDEwIGRlbiBuYXksIHBoaWEgVHJ1bmcgUXVvYyBkYSBzdSBkdW5nIG5oaWV1IHRh dSBiYW8gdmUgdGllbiBoYW5oIA0Ka2hhbyBzYXQgZGlhIGNoYW4gdGFpIGtodSB2dWMgZGFvIFRy aSBUb24sIHF1YW4gZGFvIEhvYW5nIFNhLCB2YSB0aWVuIGhhbmggc2FuIGxhcCwgbW8gDQpyb25n IGRhbyBUcmkgVG9uIHZvaSBtdWMgZGljaCB4YXkgZHVuZyBjb25nIHRyaW5oIHRyZW4gZGFvIG5h eS4NCg0KTmdheSA1LzgvMjAxMCwgdGFpIGN1b2MgaG9wIGJhbyB0aHVvbmcga3kgY3VhIEJvIE5n b2FpIGdpYW8sIHRyYSBsb2kgY2F1IGhvaSBjdWEgcGhvbmcgDQp2aWVuIHZlIHBoYW4gdW5nIGN1 YSBWaWV0IE5hbSB0cnVvYyB2aWVjIFRydW5nIFF1b2MgdGllbiBoYW5oIGtoYW8gc2F0IGRpYSBj aGFuIHRhaSANCmtodSB2dWMgZGFvIFRyaSBUb24sIHF1YW4gZGFvIEhvYW5nIFNhLCBzYW4gbGFw LCBtbyByb25nIGRhbyBUcmkgVG9uLCBOZ3VvaSBQaGF0IA0KbmdvbiBCbyBOZ29haSBnaWFvIFZO IGNobyBiaWV0LCB0dSBjdW9pIHRoYW5nIDUvMjAxMCBkZW4gbmF5LCBwaGlhIFRydW5nIFF1b2Mg ZGEgc3UgDQpkdW5nIHRhdSBraGFvIHNhdCBNL1YgV2VzdGVybiBTcGlyaXQgY3VuZyBuaGlldSB0 YXUgYmFvIHZlIHRpZW4gaGFuaCBraGFvIHNhdCBkaWEgY2hhbiANCnRhaSBraHUgdnVjIGRhbyBU cmkgVG9uLCBxdWFuIGRhbyBIb2FuZyBTYSB2YSB0YWkgY2FjIGxvIGRhdSBraGkgMTQxLCAxNDIg dmEgMTQzIHRyZW4gDQp0aGVtIGx1YyBkaWEgVmlldCBOYW0sIGNhY2ggZGFvIEx5IFNvbiwgdGlu aCBRdWFuZyBOZ2FpIGtob2FuZyA5MCCWIDExNiBoYWkgbHkuIFBoaWEgDQpUcnVuZyBRdW9jIGNv biB0aWVuIGhhbmggc2FuIGxhcCwgbW8gcm9uZyBkYW8gVHJpIFRvbiB2b2kgbXVjIGRpY2ggeGF5 IGR1bmcgY29uZyANCnRyaW5oIHRyZW4gZGFvIG5heS4uLiBWaWV0IE5hbSB5ZXUgY2F1IHBoaWEg VHJ1bmcgUXVvYyBjaGFtIGR1dCBuZ2F5IHZhIGtob25nIGRlIHRhaSANCmRpZW4gY2FjIGhvYXQg ZG9uZyB2aSBwaGFtIGNodSBxdXllbiwgcXV5ZW4gY2h1IHF1eWVuIGN1YSBWaWV0IE5hbSBvIEJp ZW4gRG9uZywgZ29wIA0KcGhhbiBnaXUgZ2luIGhvYSBiaW5oLCBvbiBkaW5oIG8gQmllbiBEb25n LCB0aHVjIGRheSBxdWFuIGhlIFZpZXQgliBUcnVuZyBwaGF0IHRyaWVuIG9uIA0KZGluaCwgbGFu aCBtYW5oLg0KDQpOZ2F5IDYvOCwga2hpIHRyYSBsb2kgYmFvIGdpb2kgdmUgdmllYyBuZ3VvaSBw aGF0IG5nb24gYm8gbmdvYWkgZ2lhbyBWaWV0IE5hbSwgYmEgDQpOZ3V5ZW4gUGh1b25nIE5nYSBk YSBsZW4gdGllbmcgcGhhbiBkb2kgVHJ1bmcgUXVvYyB0aWVuIGhhbmgga2hhbyBzYXQgdGFpIGRh byBUcmkgVG9uIA0KdmEgY2FjIHZ1bmcgYmllbiBsYW4gY2FuIHRodW9jIHF1YW4gZGFvIEhvYW5n IFNhIGN1YSBWaWV0IE5hbSwgbmd1b2kgcGhhdCBuZ29uIGJvIA0KbmdvYWkgZ2lhbyBUcnVuZyBR dW9jLCBiYSBKaWFuZy1ZdSBsZW4gdGllbmcgcGhhbiBkb2kgZG9uZyB0aG9pIGNobyBiaWV0LCBU cnVuZyBRdW9jIA0KImNvIGNodSBxdXllbiBraG9uZyB0aGUgdHJhbmggY2FpIiBkb2kgdm9pIHF1 YW4gZGFvIEhvYW5nIFNhLiBTdSB0aGF0IHZlIGNhaSBnb2kgbGEgY2h1IA0KcXV5ZW4gbWEgVHJ1 bmcgUXVvYyBub2kgdG9pIG5heSBsYSBrZXQgcXVhIGN1YSB2aWVjIFRydW5nIFF1b2MgZGEgYmF0 IGNoYXAgbHVhdCBwaGFwIA0KcXVvYyB0ZSwgc3UgZHVuZyB2dSBsdWMgZGFuaCBjaGllbSB2YSBo aWVuIHZhbiBkYW5nIGNoaWVtIGdpdSBiYXQgaG9wIHBoYXAgbmhpZXUgZGFvIA0KdmEgcXVhbiBk YW8gY3VhIFZpZXQgTmFtLig4KQ0KDQotIFRyb25nIG5odW5nIG5nYXkgZ2FuIGRheSwgIkJhdCBj aGFwIG5odW5nIHBoYW4gdW5nIHZhIHR1eWVuIGJvIGNodSBxdXllbiBraG9uZyANCnRoZSB0cmFu aCBjYWkgY3VhIFZpZXQgTmFtIGRvaSB2b2kgcXVhbiBkYW8gSG9hbmcgU2EsIFRydW5nIFF1b2Mg dmFuIHRpZXAgdHVjIG5nYW5nIA0KbmhpZW4gY2hvIHRvIGNodWMgaG9hdCBkb25nIGRpZW4gdGFw IHF1YW4gc3UgY3VhIGhhaSBxdWFuIHRhaSBraHUgdnVjIG5heS4NCk1vdCBzbyBiYW8gY2hpIEhv bmcgS29uZyBkdWEgdGluLCB2dWEgcXVhIFRydW5nIFF1b2MgZGEgY2hvIGhhbmcgdHJhbSB4ZSBi b2MgdGhlcCANCmx1b25nIGN1LCBwaGFvIHR1IGhhbmgsIHhlIGNobyBxdWFuIHZvaSBoYW5nIG5n YW4gYmluaCBsaW5oIHJhIHF1YW4gZGFvIEhvYW5nIFNhIHRpZW4gDQpoYW5oIGRpZW4gdGFwIHRo dWMgYmluaC4NClRoZW8gZG8sIG5vaSBkdW5nIGNodSB5ZXUgY3VhIGN1b2MgZGllbiB0YXAgbGFu IG5heSBkbyBsYSBkaWVuIHRhcCB0YW4gY29uZyB2YSBwaG9uZyANCm5ndSBkb2kgdm9pIGNhYyBj dW0gZGFvIG1hIFRydW5nIFF1b2MgZGEgY2hpZW0gZG9uZyBjdWEgVmlldCBOYW0gdGFpIHF1YW4g ZGFvIG5heS4NClRyb25nIGRvLCBiYW8gY2hpIFRydW5nIFF1b2MgbmhhbiBtYW5oLCBkaWV1IGRh YyBiaWV0IGRhbmcgY2h1IHkgdHJvbmcgbGFuIGRpZW4gdGFwIA0KbmF5IGRvIGNoaW5oIGxhIGxh biBkYXUgdGllbiBoYWkgcXVhbiBudW9jIG5heSBkdWEgdmFvIHN1IGR1bmcgdGFjIGNoaWVuIHRy ZW4gZGFvIG1vdCANCmtob2kgbHVvbmcgbG9uIGNhYyB0cmFuZyB0aGlldCBiaSB2dSBraGkgbW9p IG1hIHRydW9jIG5heSBUcnVuZyBRdW9jIGNodWEgdHVuZyBjaG8gdmFvIA0KdGhhbSBnaWEgY2Fj IGN1b2MgZGllbiB0YXAgdHJ1b2MgZG8uIEJlbiBjYW5oIGRvLCBjYWMgeGUgdGhpZXQgZ2lhcCBj aG8gcXVhbiBsdW9uZyBjdSANCnRoYW0gZ2lhIGRpZW4gdGFwIG5heSBjdW5nIGhvYW4gdG9hbiBk dW9jIHRyYW5nIGJpIG1vaS4NCg0KQ3VuZyB0aGVvIHRvIGJhbyBuYXksIG11YyBkaWNoIGN1YSBj dW9jIGRpZW4gdGFwIG5heSBjdWEgaGFpIHF1YW4gVHJ1bmcgUXVvYyBkbyBsYSANCm5oYW0gImRv aSBraGFuZyIgdm9pIGN1b2MgZGllbiB0YXAgdHJlbiBiaWVuIERvbmcgc2FwIHRvaSB2b2kgc3Ug dGhhbSBnaWEgY3VhIE15IHZhIA0KTmhhdCwgYmVuIGNhbmggZG8gZGF5IGNvbiBsYSBtb3QgImxv aSBjYW5oIGJhbyBraG9uZyBsb2kiIGN1YSBCYWMgS2luaC4NCg0KTmdvYWkgcmEsIGN1b2MgZGll biB0YXAgbGFuIG5heSBjb24gaHV5IGRvbmcgc3UgdGhhbSBnaWEgY3VhIG1vdCBzdSBkb2FuIHBo b25nIGtob25nIA0KVHJ1bmcgUXVvYyBkb25nIHRhaSBxdWFuIGtodSBRdWFuZyBDaGF1LiBUaGVv IGRvLCBub2kgZHVuZyBtYSBxdWFuIGtodSBuYXkgdGhhbSANCmdpYSBkaWVuIHRhcCBiYW8gZ29t IGtob2EgbXVjIHRpZXAgZGF1IHRyZW4ga2hvbmcsIHRhbiBjb25nIGRhbmggY2hpZW0gZGFvLCBk aWVuIHRhcCANCnBob25nIGtob25nLi4uIig5KQ0KDQpUYW0ga2V0Og0KSG9tIG5heSwgbmdheSAy Ni84LzIwMTAsIGRvYyB4b25nIGJhaSAiRGUgbmdoaSBiYW8gY2FvIFF1b2MgaG9pIHRpbmggaGlu aCBWaW5hc2hpbiIgDQpjdWEgdGFjIGdpYSBMZSBLaWVuIHRyZW4gYmFvIFR1b2kgVHJlIHRvaSBz byBtaW5oIG5oYW0gbmVuIGRhIGRvYyBsYWkgbmhpZXUgbGFuIHR1bmcgDQpjYXUsIHR1bmcgY2h1 LCBuaHVuZyB0b2kga2hvbmcgbmhhbSB2aSB0cmVuIGJhbyBMYW8gRG9uZyBPbmxpbmUgY3VuZyBk YW5nIGxhaSBuaHUgDQp0aGUuKDEwKSANCkNobyBuZW4sIHRvaSBtYW8gbXVvaSB4aW4gaG9pIG1v dCBjYXU6IE5odSB0aGUgbmFvIG1vaSBsYSAiY28gY2FpIGdpIG1vaSI/IFRodWEgb25nIA0KQ2h1 IHRpY2ggUXVvYyBob2kuIA0KVGh1YSBvbmcsIGNhaSB0aW4gbmF5IGNvIG1vaSBraG9uZzogIkhv bSB0aHUgTmFtIDI2LzgsIGNoaW5oIHF1eWVuIFRydW5nIFF1b2MgDQp0dXllbiBibyBtb3QgdGF1 IG5nYW0gbmhvLCBjbyBuZ3VvaSBkaWV1IGtoaWVuIGN1YSBobyBkYSAiY2FtIGxhIHF1b2Mga3kg ZHVvaSBkYXkgDQpiaWVuIE5hbSBIYWkiLCB0dWMgQmllbiBEb25nIHRoZW8gY2FjaCBnb2kgY3Vh IFZpZXQgTmFtLg0KSGFuZyBSZXV0ZXJzIGN1bmcgbmdheSB0cmljaCBuZ3VvbiBUcnVuZyBRdW9j IG5vaSBkYXkgbGEgdnVuZyBiaWVuICJUcnVuZyBRdW9jIHZhIA0KY2hhbSB2b2kgSG9hIEt5IHZh IGNhYyBudW9jIERvbmcgTmFtIEEgdmkgbHkgZG8gdHJhbmggY2hhcCBsYW5oIHRobyIuKDExKSAN Cg0KaHR0cDovL3d3dy5zZWFzZm91bmRhdGlvbi5vcmcvbmV3cy1hYm91dC1zb3V0aC1lYXN0LWFz aWEtc2VhL2FjdGlvbnMtZnJvbS1jaGluYS8zMTQtdHJ1bmctcXVjLWEtaG4tMTAwMC1xdWFuLXRp LXF1bi1vLWhvYW5nLXNhLXRybmctc2EtY2Etdml0LW5hbS0tZGluLXRwLXRuLWNvbmcgVGh1IGhh aSwgMTkgVGhhbmcgNCAyMDEwIDEwOjM3IA0KDQpUcnVuZyBRdW9jIGR1YSBob24gMTAwMCBxdWFu IHRvaSBxdWFuIGRhbyBIb2FuZyBTYSwgVHJ1b25nIFNhIGRlIGRpZW4gdGFwIHRhbiBjb25nIA0K DQpWSVQgLSBUcm9uZyB2b25nIDE5IG5nYXkga2UgdHUgMjMvMywgaGFtIGRvaSBCYWMgSGFpIHRo dW9jIGx1YyBsdW9uZyBoYWkgcXVhbiBUcnVuZyANClF1b2MsIHRpZW4gaGFuaCBkaWVuIHRhcCBr aWVtIHRyYSBzYXQgaGFjaCBjYWMga2hvYSBtdWMgaHVhbiBsdXllbiB0YWkgdnVuZyBiaWVuIHRo dW9jIA0KaGFpIHF1YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBTYSBjdWEgVmlldCBOYW0uIA0K DQpUaGVvIG5odSBrZSBob2FjaCBodWFuIGx1eWVuIGhhbmcgbmFtLCBjdSB2YW8gdGhhbmcgMyB2 YSB0aGFuZyA5LCBIYW0gZG9pIEJhYyBIYWkgDQp0aHVvYyBsdWMgbHVvbmcgaGFpIHF1YW4gVHJ1 bmcgUXVvYyBzZSB0aWVuIGhhbmggZGllbiB0YXAga2llbSB0cmEgc2F0IGhhY2ggY2FjIGtob2Eg DQptdWMgaHVhbiBsdXllbi4gVGhlbyBkbyB2YW8gY3VvaSB0aGFuZyAzIGRhdSB0aGFuZyA0IHZ1 YSBxdWEsIGhhbSBkb2kgbmF5IGRhIHh1b25nIA0KaGFpIHF1YW4gZGFvIEhvYW5nIFNhIHZhIFRy dW9uZyBTYSBjdWEgVmlldCBOYW0gZGllbiB0YXAuDQoNClRoZW8gbmh1IGtlIGhvYWNoLCBoYW0g ZG9pIG5heSBiYXQgZGF1IGNhYyBraG9hIG11YyBodXllbiBsdXllbiBkaWVuIHRhcCB0dSBuZ2F5 IDIzIA0KdGhhbmcgMyB2YSBrZW8gZGFpIHRyb25nIHZvbmcgMTkgbmdheSB0cmVuIGhhaSBraHUg dnVjIHF1YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBTYSANCmN1YSBWaWV0IE5hbS4gVHJvbmcg ZG8gaGFpIGtob2EgbXVjIGR1b2MgdGFwIHRydW5nIGRpZW4gdGFwIG5oYXQgZG8gbGEgaGFuaCB0 cmluaCB2aWVuIA0KZHVvbmcgdHJlbiBiaWVuIHZhIGhhbmggdHJpbmggdnVvdCBkYWkgY2hhdS4g RHVvYyBiaWV0IHRoYW0gZ2lhIGxhbiBkaWVuIHRhcCBkYWkgbmdheSANCnRyZW4gYmllbiBuYXkg Y28gaG9uIDEwMDAgYmluaCBzeSwgc3kgcXVhbiBjaGkgaHV5IGNhYyBiaWVuIGRvaSB0YXUgdGh1 b2MgSGFtIGRvaSBCYWMgDQpIYWkuDQoNCkxhbiBkaWVuIHRhcCBuYXkgZHVvYyBjaG8gbGEgbGFu IGRpZW4gdGFwIHRyZW4gYmllbiBxdXkgbW8gbG9uIGRhdSB0aWVuIGN1YSBoYW0gZG9pIG5heSAN CmtlIHR1IGtoaSBkdW9jIHRoYW5oIGxhcC4NCg0KVGhlbyBvbmcgWmhhbmdQaW5nSnVuIJYgcGhv IGNoaSBodXkgaGFtIGRvaSwgZGF5IGxhIGRvdCBkaWVuIHRhcCBxdWFuIHRyb25nIGR1b2MgDQp0 aWVuIGhhbmggdGhlbyBrZSBob2FjaCBodWFuIGx1eWVuIHRyb25nIG5hbS4gVHJvbmcgbGFuIHRo YW0gZ2lhIGRpZW4gdGFwIG5heSBjbyBjYWMgDQp0YXUgbmh1OiBobyB2ZSB0ZW4gbHVhIDUzNSwg NTM3LCAxMTUuLi5IYW0gZG9pIG5heSBkYSB2dW90IHF1YSBxdWFuZyBkdW9uZyBob24gNjAwMCAN CmhhaSBseSB0cm9uZyAxOSBuZ2F5LCBkb25nIHRob2kgY2FjIGJpZW4gZG9pIGRhIHRodWMgaGll biA0IGdpYWkgZG9hbiBodWFuIGx1eWVuIGtoYWMgDQpuaGF1LCB0byBjaHVjIDMgbGFuIGhvcCBj aGkgaHV5IHZhIDExIGxhbiB0cnVjIGJhbiB0YWMgY2hpZW4uIA0KDQpDYWMga2hvYSBtdWMgZHVv YyB0byBjaHVjIGRpZW4gdGFwIG5odTogaG9wIGRvbmcgZG90IGtpY2gsIGRvIGJvIGR1b25nIGto b25nLCBjaG9uZyANCmRvIGJvIGR1b25nIGtob25nLi4uLnF1YSBkbyBob2FuIHRoYW5oIHRvdCBj YWMgbXVjIHRpZXUsIHlldSBjYXUgY3VhIG5oaWVtIHZ1IGh1YW4gDQpsdXllbiBkZSByYS4NCg0K QmVuIGNhbmggZG8sIGhhbSBkb2kgbmF5IGNvbiB0aWVuIGhhbmggdmFvIHRoYW0gbW90IHNvIGRh byB0aHVvYyBxdWFuIGRhbyBUcnVvbmcgU2EgDQpkbyBudW9jIG5heSBjaGllbSBkb25nIG5odSBk YW8gQ2h1IFRoYXAsIEJ1YmkuLi4sIHRodW9jIGNodSBxdXllbiBjdWEgVmlldCBOYW0uIA0KDQpo dHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9UUS1raGFpLXRoYWMtc29uZy1NZS1Lb25nLXZhLW5n dXktY28tZ2lldC1jaGV0LURCU0NMLzEyMi8yODUyNTYyLmVwaQ0KDQpUUSBraGFpIHRoYWMgc29u ZyBNZSBLb25nIHZhIG5ndXkgY28gZ2lldCBjaGV0IERCU0NMDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxNTAyMTYzNi5hc3B4IFRvIFZhbiBU cnVvbmcgMTUvMDcvMjAxMCAyOjE2IA0KDQpNZSBLb25nIGRhbmcga2hhdCAgIA0KICANClh1YSBu YXksIG5ndW9pIHRhIHRodW9uZyBub2kgZGVuIHZpZWMgcGhvbmcgY2hvbmcgbHUsIG5odW5nIHRy b25nIG5odW5nIG5hbSBnYW4gZGF5IA0KZG8gdGFjIGRvbmcgY3VhIGNvbiBuZ3VvaSB2YSBhbmgg aHVvbmcgY3VhIGJpZW4gZG9pIGtoaSBoYXUsIG5ndW9uIG51b2Mgc29uZyBNZSANCktvbmcgZGFu ZyBkdW5nIHRydW9jIG5ndXkgY28gY2FuIGtpZXQgaGF5IG5vaSBjYWNoIGtoYWMgc29uZyBNZSBL b25nIGRhbmcga2hhdCBsYWkgDQp0cm8gdGhhbmggdmFuIGRlIHRyb25nIHlldSB0cm9uZyBjb25n IHRhYyBxdWFuIGx5IHRhaSBuZ3V5ZW4gbnVvYy4gDQoNCk5ndXllbiBuaGFuIGdheSBjYW4ga2ll dCBuZ3VvbiBudW9jIHNvbmcgTWUgS29uZyBuZ29haSB5ZXUgdG8gdHUgbmhpZW4gZG8gdGFjIGRv bmcgDQpjdWEgYmllbiBkb2kga2hpIGhhdSwgY29uIGRvIGNhYyBob2F0IGRvbmcgY3VhIGNvbiBu Z3VvaS4gVHJ1bmcgUXVvYyBkYSB2YSBkYW5nIHRpZW4gDQpoYW5oIHhheSBkdW5nIDggbmhhIG1h eSB0aHV5IGRpZW4gbyB0aHVvbmcgbHV1IHNvbmcgTWUgS29uZy4gVGFjIGRvbmcgeGF1IGRvIGNh YyANCm5oYSBtYXkgdGh1eSBkaWVuIG1hbmcgbGFpIGxhIGxhbSB0aGF5IGRvaSBjaGUgZG8gZG9u ZyBjaGF5LCBsdW9uZyBwaHUgc2EsIHRodXkgc2FuIHZhIA0KZ2F5IHhvaSBsbyBvIGhhIGx1dS4g DQoNCkRlIGRvbmcgYmFuZyBzb25nIEN1dSBMb25nIHZhbiBnaXUgdnVuZyB2YWkgdHJvIGFuIG5p bmggbHVvbmcgdGh1YyBxdW9jIGdpYSwgbm9pIHNhbiANCnh1YXQgdGh1eSBzYW4gdmEgY2F5IGFu IHRyYWkgbG9uIG5oYXQgY2EgbnVvYywgZG9pIGhvaSBOaGEgbnVvYyBjbyBzdSBxdWFuIHRhbSB0 aGljaCANCmRhbmcgdHJvbmcgY2hpZW4gbHVvYyBkYXUgdHUgY2hvIG5vbmcgbmdoaWVwLCBub25n IHRob24gdmEgY2hpbmggc2FjaCBkb2kgdm9pIG5ndW9pIA0Kbm9uZyBkYW4uIFBoYXQgdHJpZW4g YmVuIHZ1bmcsIHRhcCB0cnVuZyB2YSBuYW5nIGNhbyBsYXUgZGFpIHBob24gdmluaCBjdWEgeGEg aG9pIHRoZW8gDQp0aG9pIGdpYW4ga2hvbmcgdGhlIHRhY2ggcm9pIG5ndW9uIG51b2MgYmVuIHZ1 bmcuIA0KDQpDaHVuZyB0YSBkYW5nIHBoYWkgdHJhaSBxdWEgbmh1bmcgbmdheSBvaSBidWMgY2h1 YSB0dW5nIGNvLiBLaG9uZyBwaGFpIGNoaSByaWVuZyBzb25nIA0KTWUgS29uZyBtYSBjYWMgY29u IHNvbmcga2hhYyBvIFZpZXQgTmFtIHZhbyBtdWEga2hvIGRldSBraGF0LCBjbyBuZ3V5IGNvIGNh biBraWV0LiANCkhpZW4gbmF5LCB2aWVjIHF1YW4gbHkgbHV1IHZ1YyBzb25nIHZhbiBjb24gY2hv bmcgY2hlbyBnaXVhIDIgQm8gVGFpIG5ndXllbiB2YSBNb2kgDQp0cnVvbmcsIEJvIE5vbmcgbmdo aWVwIHZhIFBoYXQgdHJpZW4gbm9uZyB0aG9uLiBEYSBkZW4gbHVjIENoaW5oIHBodSBjYW4gcGhh aSBuZ2hpIGRlbiANCnZpZWMgaG9wIG5oYXQgbW90IGNvIHF1YW4sIGxheSB0aHVjIHRlIHZlIGNh aSB0aGllbiBjdW9jIHNvbmcgY3VhIG5ndW9pIGRhbiBsYW0gdGh1b2MgZG8gDQpoaWV1IHF1YSBx dWFuIGx5LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdGhlZ2lvaS9ob3NvLzIwMDkvMDgvODYy Njc2LyAxMDo0NCwgMTAvMDgvMjAwOSAoR01UKzcpDQoNCkNoaWVuIGx1b2MgYmkgbWF0IGN1YSBU cnVuZyBRdW9jIHZvaSBNZWtvbmcgDQoNClRyb25nIG5oaWV1IHRoYXAgbmllbiwgY2hpZW4gbHVv YyBjdWEgVHJ1bmcgUXVvYyBsYSB0aHVjIGhpZW4gbmh1bmcgZHUgYW4gdmUgc29uZyBNZWtvbmcg dHJvbmcgaW0gbGFuZyB2YSBiaSBtYXQuIFRydW5nIFF1b2MgeGF5IGRhcCBNYW53YW4gKDE5ODYt MTk5MykgbyBtb3Qga2h1IHZ1YyB4YSB4b2kgdmEga2hvbmcgdGhhbSB2YW4gYmF0IGtlIG51b2Mg bmFvIHZ1bmcgaGEgbmd1b24uDQoNCihDdSB0cmkgcXVhbSB0YW06IGNhY2ggZGFuaCAidGh1eSBj b25nIiBjdWEgVHJ1bmcgUXVvYyBkYSBjbyB0dSB0aG9pIHRydW5nIGNvIC0gZ2F5IGx1dCBsb2ks IGhhbiBoYW4sIG1hdCBtdWEsIGNoZXQgY2hvYywgdGFuIHBoYSwgaHV5IGRpZXQgLSAibmhhdCB0 aHV5LCBuaGkgaG9hIiwgdm8gY3VuZyB0YW4gYmFvKS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL05ld3MvUGFnZXMvMjAxMDI4LzIwMTAwNzA5MDA1MTQ1LmFzcHggQ2hpIE5oYW4gIDA5 LzA3LzIwMTAgMDo1MSANCg0KU29uZyBDdXUgTG9uZyBjaGkgY29uICJUaGF0IExvbmciDQoNCkR1 b2kgdGFjIGRvbmcgY3VhIHR1IG5oaWVuIHZhIGNvbiBuZ3VvaSwgc29uZyBDdXUgTG9uZyBoaWVu IGNoaSBjb24gNyBjdWEgZGFuZyBob2F0IGRvbmcuLi4uIA0KDQoyIGN1YSBzb25nIGNoZXQgZGFu IC0gRG8gbGEgY3VhIEJhIExhaSB2YSBjdWEgQmF0IFNhYyAoQmFzc2FjKS4gSGFpIGN1YSBzb25n IG5heSBkYSANCm5ndW5nIGNoYXkgZG8gYm9pIHR1IHZhIHhheSBkdW5nIGNvbmcgdHJpbmggZ2lh byB0aG9uZyB0aHV5IGxvaS4gRGF5IGxhIGtldCBsdWFuIGN1YSANClZpZW4gRGlhIGNoYXQgKFZp ZW4gS2hvYSBob2MgdmEgQ29uZyBuZ2hlIFZpZXQgTmFtKSBzYXUgcXVhIHRyaW5oIG5naGllbiBj dXUga2VvIGRhaSANCm8gY2FjIGN1YSBzb25nIHZhIHZ1bmcgdmVuIGJpZW4gREJTQ0wgaG9uIDUw IG5hbS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAwOS8y MDEwMDIyNzIzNTcwNy5hc3B4IDI3LTAyLTIwMTAgMjM6NTcgDQoNCk1lIEtvbmcgc3V5IGtpZXQg DQoNCkNhYyBkYXAgdGh1eSBkaWVuIHRyZW4gdGh1b25nIG5ndW9uIHNvbmcgTWUgS29uZyBkYW5n IGtoaWVuIERCU0NMIHBoaSBuaGlldSwgc29uZyByYWNoIGNoYW5nIGNoaXQgZG9pIG1hdCB2b2kg a2hvIGhhbi4gDQpOaHVuZyB0YWMgaGFpIGRlbiBzaW5oIHRoYWksIG1vaSB0cnVvbmcsIGRvaSBz b25nLi4uIGN1YSBuZ3VvaSBkYW4gREJTQ0wgZGFuZyBoaWVuIGhpZW4uIA0KDQpNdWEga2hvIGhh biB0YW4ga2hvYyANCg0KVGFpIHRoaSB4YSBWaSBUaGFuaCAoSGF1IEdpYW5nKSwgbnVvYyBtYW4g ZGEgeGFtIG5oYXAgc2F1IHZhbyBjYWMgeGEgVGFuIFRpZW4sIEhvYSBUaWVuIHZhIEhvYSBMdXUu DQoNClRhaSBUaWVuIEdpYW5nLCBudW9jIG1hbiBkYSB4YW0gbmhhcCB2YW8gZGF0IGxpZW4gdHJl biAzNSBrbSANCg0KVGFpIEJlbiBUcmUsIG51b2MgbWFuIGRhIHhhbSBuaGFwIHNhdSB2YW8gZGF0 IGxpZW4gdHJlbiAyMyBrbS4gWGFtIG1hbiBrZW8gdGhlbyB0aW5oIHRyYW5nIHRoaWV1IG51b2Mg bmdvdCBvIGNhYyB4YSANCnZlbiBiaWVuIG5odSBUaGFuaCBQaHVvYywgVGh1YSBEdWMsIFRob2kg VGh1YW4gKGh1eWVuIEJpbmggRGFpKTsgcGhhaSBkaSBkb2kgaGF5IG11YSBudW9jIG5nb3Qgdm9p IGdpYSAyLjAwMCBkb25nLzQwIGxpdCB2ZSBzdSBkdW5nLiANCg0KVGFpIENhbiBUaG8sIHhhbSBt YW4gZGEgbGFuIHNhdSB2YW8gaHV5ZW4gVmluaCBUaGFuaC4gDQoNClRhaSBBbiBHaWFuZywgbmhp ZXUga2VuaCBub2kgZG9uZyBnYW4gbmh1IHRybyBkYXk7IG5ndW9pIGRhbiB2dW5nIG51aSBUcmkg VG9uLCBUaW5oIEJpZW4gcGhhaSBkaSBtdWEgbnVvYyBzYWNoIHZvaSBnaWEgMi4wMDAgZG9uZy8z MCBsaXQuIA0KDQpNZSBLb25nIGRhbmcgYmkgInNhdCB0aHVvbmciDQoNClRoZW8gdGllbiBzaSBE dW9uZyBWYW4gTmksIEdpYW0gZG9jIFRydW5nIHRhbSBUaHVjIG5naGllbSBkYSBkYW5nIHNpbmgg aG9jIEhvYSBBbiAtIERhaSBob2MgQ2FuIFRobywgdmllYyB4YXkgY2FjIGRhcCANCnRodXkgZGll biBkYSBrZW8gdGhlbyBuaGlldSB0YWMgZG9uZyBuaHUgbHUgdmUgbXVvbiBob24gbmh1bmcga2V0 IHRodWMgc29tIGhvbi4gDQoNClRpZW4gc2kgTmkgY2hvIHJhbmcgdmllYyBjYWMgZGFwIHRodXkg ZGllbiB0aHVvbmcgbmd1b24gdHJ1IG51b2MsIGtob25nIGNobyBiaWV0IGx1YyBuYW8geGEgbnVv YyBsdWMgbmFvIGtob25nLCANCmNhbmcgZ2F5IGtobyBraGFuIHRyb25nIG11YSBraG8gaGFuLiAN Cg0KSGEgbHV1IG5ndXkga2hvbg0KDQpDYWMgbnVvYyB2dW5nIGhhIGx1dSBkYW5nIGxvIGxhbmcg dmUgbmh1bmcgdGFjIGRvbmcgdGlldSBjdWMgeGF5IHJhIGtoaSBkb25nIGNoYXkgZHVvaSBuYXkg aG9hbiB0b2FuIHBodSB0aHVvYyANCnZhbyBxdXkgdHJpbmggdmFuIGhhbmggY3VhIGNhYyBkYXAg dGh1eSBkaWVuIHRyZW4gdGh1b25nIGx1dSBzb25nIE1lIEtvbmcuIA0KDQpOZXUgZ2FwIG5hbSBs dSBsb24sIGtoaSBkaW5oIGx1IHZlIGdhcCBobyBkYSBkYXkgbnVvYywga2hvbmcgY29uIGtoYSBu YW5nIGNhdCBsdSwgY28gdGhlIGdheSBsdSBsb24gaG9uIGNobyBoYSBsdXUuIA0KQ29uIHZhbyBu aHVuZyBuYW0gbHUgdnVhIHZhIG5obywgcGhpYSBoYSBsdXUgLSBkYWMgYmlldCBsYSBEQlNDTCAt IHNlIGNvIG5odW5nIGFuaCBodW9uZyBuaGF0IGRpbmggdHJvbmcgY2EgbXVhIGx1IHZhIG11YSBr aWV0LiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkxMi9TYS1tYWMtZ2l1 YS1zb25nLUhvbmctODgzNDAzLyAwNTo1NywgMTAvMTIvMjAwOSAoR01UKzcpDQoNCidTYSBtYWMn IGdpdWEgc29uZyBIb25nDQoNClNvbmcgSG9uZyB0cm8gZGF5IG8gbXVjIGt5IGx1YyBraG9uZyBj b24gbGEgbG9pIGNhbmggYmFvIHZlIHN1IGJpZW4gZG9pIGtoaSBoYXUuDQoNClNvbmcgSG9uZyBj YW4gbmh1IHRoZSBuYXkgbGEgc3Uga2llbiBoeSBodXUgY3VhIGhvbiB0cmFtIG5hbSBxdWEuIFR1 eSBuaGllbiBsb2kgY2FuaCBiYW8gdmUgc3Uga2hhYyBuZ2hpZXQgbmF5IHRoaSANCmRhIGR1b2Mg Y2hpbmggbm8gY2FuaCBiYW8gbyBuaHVuZyBuYW0gdHJ1b2MuDQoNCmh0dHA6Ly93d3cudGhhbmhu aWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyNy8yMDEwMDYyODAwMTEzNy5hc3B4IDI4LzA2LzIw MTAgMDoxMSANCg0KVGh1eSBkaWVuIEhvYSBCaW5oICJtYXQiIDUwMCB0cmlldSBtMyBudW9jICAN CiAgDQpDbyB5IGtpZW4gZGF0IHZhbiBkZSB2aWVjIHRoaWV1IG51b2MgY3VhIGNhYyBuaGEgbWF5 IHRodXkgZGllbiBwaGlhIEJhYyBsYSBkbyBob2F0IA0KZG9uZyBjdWEgY2FjIG5oYSBtYXkgdGh1 eSBkaWVuIFRydW5nIFF1b2MuIFRyb25nIG11YSBraG8gMjAwOS0yMDEwLCBkb25nIGNoYXkgdHJl biANCmNhYyBzb25nIHR1IFRydW5nIFF1b2MgdmFvIFZOIGRhdCBtdWMgdGhhcCBuaGF0IHRyb25n IGxpY2ggc3UsIHRyb25nIGtoaSBuaGlldSB0aG9pIA0KZGllbSBUcnVuZyBRdW9jIHRpY2ggbnVv YyBwaGlhIHRodW9uZyBuZ3VvbiBuaHVuZyBsYWkga2hvbmcgeGEgbnVvYyBkdW5nIHRob2kgZGll bSANCnBoaWEgVk4gY2FuLiANCg0KVGhvaSBnaWFuIHRpY2ggbnVvYyBjaGVuaCBsZWNoIChwaGlh IFRydW5nIFF1b2MgbGEgZ2l1YSB0aGFuZyA3IHRyb25nIGtoaSANClZOIG1haSBjdW9pIHRoYW5n IDgpIGtoaWVuIHZpZWMgdGljaCBudW9jIGNobyBjYWMgaG8gdGh1eSBkaWVuIHRybyBuZW4gcGh1 IHRodW9jIHZhIGdhcCANCmtobyBraGFuIGhvbiwgZGFjIGJpZXQgdHJvbmcgdGhvaSBkaWVtIGto byBoYW4gaGllbiBuYXkuIA0KDQpodHRwOi8vYmllbmRhb3ZpZXRuYW0uY29tLzIwMTAvMDgvMjAv aGFpLXF1YW4tdHJ1bmctcXVvYy1sYWktdG8tY2h1Yy1kaWVuLXRhcC10YWktaG9hbmctc2EvIDIw IEF1ZyAyMDEwIA0KIA0KSGFpIHF1YW4gVHJ1bmcgUXVvYyBsYWkgdG8gY2h1YyBkaWVuIHRhcCB0 YWkgSG9hbmcgU2EgDQoNCkJhdCBjaGFwIG5odW5nIHBoYW4gdW5nIHZhIHR1eWVuIGJvIGNodSBx dXllbiBraG9uZyB0aGUgdHJhbmggY2FpIGN1YSBWaWV0IE5hbSBkb2kgDQp2b2kgcXVhbiBkYW8g SG9hbmcgU2EsIFRydW5nIFF1b2MgdmFuIHRpZXAgdHVjIG5nYW5nIG5oaWVuIGNobyB0byBjaHVj IGhvYXQgZG9uZyBkaWVuIA0KdGFwIHF1YW4gc3UgY3VhIGhhaSBxdWFuIHRhaSBraHUgdnVjIG5h eS4gDQoNCk1vdCBzbyBiYW8gY2hpIEhvbmcgS29uZyBkdWEgdGluLCB2dWEgcXVhIFRydW5nIFF1 b2MgZGEgY2hvIGhhbmcgdHJhbSB4ZSBib2MgdGhlcCANCmx1b25nIGN1LCBwaGFvIHR1IGhhbmgs IHhlIGNobyBxdWFuIHZvaSBoYW5nIG5nYW4gYmluaCBsaW5oIHJhIHF1YW4gZGFvIEhvYW5nIFNh IHRpZW4gDQpoYW5oIGRpZW4gdGFwIHRodWMgYmluaC4NClRoZW8gZG8sIG5vaSBkdW5nIGNodSB5 ZXUgY3VhIGN1b2MgZGllbiB0YXAgbGFuIG5heSBkbyBsYSBkaWVuIHRhcCB0YW4gY29uZyB2YSBw aG9uZyANCm5ndSBkb2kgdm9pIGNhYyBjdW0gZGFvIG1hIFRydW5nIFF1b2MgZGEgY2hpZW0gZG9u ZyBjdWEgVmlldCBOYW0gdGFpIHF1YW4gZGFvIG5heS4NClRyb25nIGRvLCBiYW8gY2hpIFRydW5n IFF1b2MgbmhhbiBtYW5oLCBkaWV1IGRhYyBiaWV0IGRhbmcgY2h1IHkgdHJvbmcgbGFuIGRpZW4g dGFwIA0KbmF5IGRvIGNoaW5oIGxhIGxhbiBkYXUgdGllbiBoYWkgcXVhbiBudW9jIG5heSBkdWEg dmFvIHN1IGR1bmcgdGFjIGNoaWVuIHRyZW4gZGFvIG1vdCANCmtob2kgbHVvbmcgbG9uIGNhYyB0 cmFuZyB0aGlldCBiaSB2dSBraGkgbW9pIG1hIHRydW9jIG5heSBUcnVuZyBRdW9jIGNodWEgdHVu ZyBjaG8gdmFvIA0KdGhhbSBnaWEgY2FjIGN1b2MgZGllbiB0YXAgdHJ1b2MgZG8uIEJlbiBjYW5o IGRvLCBjYWMgeGUgdGhpZXQgZ2lhcCBjaG8gcXVhbiBsdW9uZyBjdSANCnRoYW0gZ2lhIGRpZW4g dGFwIG5heSBjdW5nIGhvYW4gdG9hbiBkdW9jIHRyYW5nIGJpIG1vaS4NCg0KQ3VuZyB0aGVvIHRv IGJhbyBuYXksIG11YyBkaWNoIGN1YSBjdW9jIGRpZW4gdGFwIG5heSBjdWEgaGFpIHF1YW4gVHJ1 bmcgUXVvYyBkbyBsYSANCm5oYW0gImRvaSBraGFuZyIgdm9pIGN1b2MgZGllbiB0YXAgdHJlbiBi aWVuIERvbmcgc2FwIHRvaSB2b2kgc3UgdGhhbSBnaWEgY3VhIE15IHZhIA0KTmhhdCwgYmVuIGNh bmggZG8gZGF5IGNvbiBsYSBtb3QgImxvaSBjYW5oIGJhbyBraG9uZyBsb2kiIGN1YSBCYWMgS2lu aC4NCg0KTmdvYWkgcmEsIGN1b2MgZGllbiB0YXAgbGFuIG5heSBjb24gaHV5IGRvbmcgc3UgdGhh bSBnaWEgY3VhIG1vdCBzdSBkb2FuIHBob25nIGtob25nIA0KVHJ1bmcgUXVvYyBkb25nIHRhaSBx dWFuIGtodSBRdWFuZyBDaGF1LiBUaGVvIGRvLCBub2kgZHVuZyBtYSBxdWFuIGtodSBuYXkgdGhh bSANCmdpYSBkaWVuIHRhcCBiYW8gZ29tIGtob2EgbXVjIHRpZXAgZGF1IHRyZW4ga2hvbmcsIHRh biBjb25nIGRhbmggY2hpZW0gZGFvLCBkaWVuIHRhcCANCnBob25nIGtob25nLi4uDQoNClZpZWMg VHJ1bmcgUXVvYyB0byBjaHVjIGRpZW4gdGFwIHRodWMgYmluaCB0YWkgcXVhbiBkYW8gSG9hbmcg U2EgY3VhIFZpZXQgTmFtIGxhIGhhbmggDQpkb25nIHZpIHBoYW0gbmdoaWVtIHRyb25nIGNodSBx dXllbiB0cmVuIGJpZW4gY3VhIFZpZXQgTmFtLiBUcnVuZyBRdW9jIGNhbiBwaGFpIHRvbiANCnRy b25nIENvbmcgdW9jIHZlIGx1YXQgYmllbiBuYW0gMTk4MiBjdWEgTGllbiBIb3AgUXVvYyB2YSBU dXllbiBibyBjaHVuZyB1bmcgeHUgDQpnaXVhIGNhYyBiZW4gdHJvbmcgdmFuIGRlIGJpZW4gRG9u ZyBuYW0gMjAwMi4gDQoNCmh0dHA6Ly9ob21lLnZubi52bi9jYW5fdGV0X19oYV9ub2lfdW5fdGFj X3RyaWVuX21pZW4tMzM2MTk5NjgtNjI1NzA1NjU3LTAgdm5leHByZXNzLm5ldCAtIDA2LTAyLTIw MTAgMTI6MDUNCg0KSGEgTm9pIHVuIHRhYyB0cmllbiBtaWVuIA0KDQpodHRwOi8vdmlldG5hbW5l dC52bi94YWhvaS8yMDEwMDEvU29uZy1uaHVlLXRyby1kYXktY2EtbW90LXZ1bmctYm9jLW11aS04 ODk0OTAvIENhcCBuaGF0IGx1YyAxMDoyNCwgVGh1IE5hbSwgMTQvMDEvMjAxMCAoR01UKzcpDQoN CkhhIE5vaTogU29uZyBOaHVlIGJpZW4gdGhhbmggY29uZywgY2EgdnVuZyAnYm9jIG11aScgDQoN Cmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5LzA0LzgzOTgwOS8gMjI6MTAnIDAy LzA0LzIwMDkgKEdNVCs3KSANCg0KSGEgTm9pOiBYYSBob2kgZGVuIHRhYyBvYWkgdGFjIHF1YWkg Z2l1YSBiYW4gbmdheSANCg0KaHR0cDovL25oYW5zdXZpZXRuYW0udm4vdGludHVjL3BoYXBfbHVh dC9oYS1ub2ktY29uZy10cmluaC10cnVvbmctdGlldS1ob2MtY3VuZy1iaS1ydXQtcnVvdC8yOTM0 MS5odG1sIDIzLzAxLzIwMDkgLSAxMToxNyAtIE5ndW9uOiB2bk1lZGlhLnZuDQoNCkhhIE5vaTog Q29uZyB0cmluaCB0cnVvbmcgdGlldSBob2MgY3VuZyBiaSAicnV0IHJ1b3QiIA0KDQooVHJ1b25n IHRpZXUgaG9jIFRydW5nIE5oaSB0YWkgbmdvIDI4IEh1b25nIFZpZW4sIHBodW9uZyBEb25nIE5o YW4sIHF1YW4gSGFpIEJhIFRydW5nLCBIYSBOb2kuKSANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29t L0luZm8vTnUtc2luaC1IYS10aGFuaC1kZS1yb2ktbWEta2hvbmctYmlldC1jby10aGFpLzEzOS81 NjEzNjI4LmVwaSBOLkMgKDI1LzEvMjAxMSkgIA0KDQpHaWFvIGR1YyB2YSBUaHUgZG86IE51IHNp bmggSGEgdGhhbmggZGUgcm9pIG1hIGtob25nIGJpZXQgY28gdGhhaSANCg0KLSBOZ3VvaSBtZSBr aG9uZyBoZSBoYXkgYmlldCBtaW5oIG1hbmcgdGhhaSB2YSBkZSByb2kgY29uIHRyb25nIG5oYSB2 ZSBzaW5oIG5heSBsYSBudSANCnNpbmggVnUgVGhpIEhvYW5nIEwgKDE4IHR1b2ksIG5ndSB0YWkg cXVhbiBIb2FuZyBNYWksIEhhIE5vaSkuDQoNClRoYXkgY29uIGRpIHRhbSBxdWEgbGF1IHZhIGxh aSBjbyBjYSB0aWVuZyBrZXUgcmVuIG5lbiBtZSBMIGRhIGRheSBjdWEgdmFvLiBCYSBkYSB2byAN CmN1bmcgaG9hbmcgaG90IGtoaSBjaHVuZyBraWVuIGNhbmggY29uIGdhaSBtaW5oIG5hbSBkdW9p IG5lbiBuaGEgdmUgc2luaCBsYW5oIGNvbmcgdmEgDQpsZW4gY29uIGNodXllbiBkYS4gUGhpYSBk dW9pLCBkdWEgdHJlIGRhbmcgdHUgZGF5IHJhIG8gY3VhIG1pbmguIA0KDQpDaGlldSAyNS8xLCB0 cmFvIGRvaSB2b2kgVmlldE5hbU5ldCwga2hvYSBOaGkgQmVuaCB2aWVuIEJhY2ggTWFpIGRhIHhh YyBuaGFuIHRob25nIA0KdGluIHRyZW4uDQoNCk5nYXkgbGFwIHR1YywgZHVhIHRyZSBkdW9jIGR1 YSB2YW8gQmVuaCB2aWVuIEJhY2ggTWFpIGNhcCBjdXUsIHRpZW4gaGFuaCBjYXQgcm9uIHZhIA0K dGllbSB0aHVvYyBjaG9uZyBuaGllbSBraHVhbi4gQ2hhdSBiZSBuYW5nIDIsOSBrZywgZ2lvaSB0 aW5oIG51IHZhIHN1YyBraG9lIHRvdC4gDQpIaWVuIG5heSwgY2hhdSBiZSBkYSBkdW9jIG1vdCBn aWEgZGluaCBuaGFuIG51b2kgdmEgZGFuZyBzb25nIGN1bmcgYm8gbWUgbnVvaS4NCg0KRGlldSBk YW5nIG5vaSBsYSBnaWEgZGluaCBMIGN1bmcgbmh1IGVtIGRldSBraG9uZyBiaWV0IEwgbWFuZyBi YXUuIENhYyBiYWMgc2kgY3VuZyANCmtob25nIGtob2kgZ2lhdCBtaW5oIHZpIGNoYXUgYmUgbmFu ZyAyLDkga2cgbWEgbmd1b2kgbWUgbGFpIGtob25nIGhlIGJpZXQuDQoNCkR1b2MgYmlldCBtZSBM IGxhIG1vdCBnaWFvIHZpZW4gY29uIGJvIGVtIGRhbmcgY29uZyB0YWMgdGFpIG1vdCB2aWVuIG5n aGllbiBjdXUuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEw MjcvMjAxMDA3MDMwMTMzMDIuYXNweCAwMy8wNy8yMDEwIDE6MzMgDQoNCkdpYW8gZHVjIHZhIFRo dSBkbzogImJvYyB0aGFtIiBtYXkgcnVpLSB4ZXAgaGFuZyB4aW4gaG9jIA0KICANCkNhbmggdHVv bmcgcGh1IGh1eW5oIHBoYWkgeGVwIGhhbmcgdGhhdSBkZW0gaG9hYyBwaGFpICJib2MgdGhhbSIg bWF5IHJ1aSBkZSBtb25nIA0KY28gbW90IGNobyBndWkgY29uIHRyb25nIHRydW9uZyBtYW0gbm9u IGNvbmcgbGFwIGxhaSB0YWkgZGllbiB2YW8gbXVhIHR1eWVuIHNpbmggbmFtIG5heSBvIEhhIE5v aS4gDQoNCktob25nIGNvbiBxdWEgbGEgbGFtIHZhIGNhIGJpZXQgbnVhLCBjYW5oIHR1b25nIGNo ZW4gbGFuLCB4byBkYXkgdmEgY2hvIGRvaSB0cmFuZyBkZW0gDQp0cnVvYyBuZ2F5IGJhbiBkb24g eGluIGhvYyBkYSB4YXkgcmEgaXQgbmhhdCA0IC0gNSBuYW0gbmF5IHZhIG8gaGF1IGtoYXAgY2Fj IHRydW9uZy4gDQoNCkR1b25nIG5odSBjaGluaCBxdXllbiBUaHUgZG8gZGEgbWFjIG5oaWVuIGNv aSBkbyBsYSBoaWVuIHR1b25nLi4uIGJpbmggdGh1b25nLCBraGkgbWEgDQpoZXQgbmFtIG5heSBz YW5nIG5hbSBraGFjIGtob25nIHRoYXkgY28gZG9uZyB0aGFpIGdpIG5oYW0gY2FpIHRoaWVuIHRp bmggaGluaC4gDQoNCiJDYWMgZHUgYW4gY3VhIEhhIE5vaSB0aGkgbmhpZXUgdmEgZHUgYW4gbmFv IGN1bmcgdG8sIHZheSBtYSBraGFwIG5vaSwgbmd1b2kgZGFuIHBoYWkgDQpkaWV1IGR1bmcgdmkg bW90IGNobyBob2MgdHUgdGUgY2hvIGNvbiB0cmUiIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9j MjAvczIwLTQwNTEyNy9jYW4tYm8tZGlhLWNoaW5oLXBodW9uZy1sdWEtZGFvLWNoaWVtLWRvYXQt MTAtdHktZG9uZy5odG0NCg0KSGEgTm9pOiBDYW4gYm8gZGlhIGNoaW5oIHBodW9uZyBsdWEgZGFv IGNoaWVtIGRvYXQgMTAgdHkgZG9uZyANCg0KaHR0cDovL3Nvbmd0cmUudm4vaW5kZXgucGhwP29w dGlvbj1jb21fY29udGVudCZ2aWV3PWFydGljbGUmaWQ9MzQyOmJhby1uZy10aW5oLXRybmcteGFt LWhpLWNhYy1kaS10aWNoLWhhLW5pJmNhdGlkPTQ0OmJhb2luYmFvbWFuZ2RpZW50dSZJdGVtaWQ9 NzAgVGh1IHNhdSwgMjAgVGhhbmcgMyAyMDA5IDA4OjM1DQoNCkhhIE5vaTogQmFvIGRvbmcgdGlu aCB0cmFuZyB4YW0gaGFpIGNhYyBkaSB0aWNoIG8gSGEgTm9pICANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL2J2a2gvZGF5bm9uZy8yMDA5LzA4Lzg2NTM3MS8gQ2FwIG5oYXQgbHVjIDA3OjQ3 LCBUaHUgVHUsIDI2LzA4LzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IDUgdmFuIGhvIGRhbiBjaGVu IG5oYXUgdm8gZGF1Li4uIG5vcCB0aWVuIGRpZW4NCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL3Rv bmdfY3VjX2Nhbmhfc2F0X3hlbV94ZXRfa2hvaV90b192dV9hbl85X2Nhbl9ib19kYW5oX2JhYy02 LTEyNTA0NS5odG1sIE4uVi5DIDIxLzA4LzIwMDcgLSAwNzo0NiANCg0KSGEgTm9pOiA5IGNhbiBi byBUb25nIGNvbmcgdHkgZGF1IHR1IHZhIHBoYXQgdHJpZW4gbmhhIEhhIE5vaSBiaSBiYXQgdmkg ZGFuaCBiYWMgDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwvMTk4Ny8yMDEwMDcvRGktbGFj LWR1b25nLUhhLU5vaS1iZS1nYWktMTQtdHVvaS1iaS1oaWVwLWRhbS0xNzU5MjQyLyAxNi8wNy8y MDEwIDExOjQzOjUyIA0KDQpIYSBOb2k6IExhYyBkdW9uZyBIYSBOb2ksIGJlIGdhaSAxNCB0dW9p IGJpIGhpZXAgZGFtIA0KDQpodHRwOi8vdmlldGJhby52bi9Bbi1uaW5oLVBoYXAtbHVhdC9IYS1O b2ktTW90LXZ1LWdpZXQtbmd1b2ktZGEtbWFuLXRyb25nLW5oYS1uZ2hpLzEwNzQwNjMyLzMwMS8g MjcvOS8yMDAxLCAwOTozNSBHTVQrNw0KDQpIYSBOb2k6IEdpZXQgbmd1b2kgZGEgbWFuIHRyb25n IG5oYSBuZ2hpIA0KDQpodHRwOi8vd3d3LmNwdi5vcmcudm4vY3B2L01vZHVsZXMvTmV3cy9OZXdz RGV0YWlsLmFzcHg/Y29faWQ9MzA0MDEmY25faWQ9MjE3NjAjcUFDckZudE1YS0dXIDE5OjUyIDI3 LzA2LzIwMDYgDQoNCkhhIE5vaTogT25nIE5ndXllbiBQaHUgVHJvbmcgliBuZ3V5ZW4gVG9uZyBi aWVuIHRhcCBUYXAgY2hpIENvbmcgc2FuLCBuZ3V5ZW4gQmkgdGh1IHRoYW5oIFV5IEhhIE5vaSBr aWVtIGNodSB0aWNoIGhvaSBkb25nIGx5IGx1YW4gdHJ1bmcgdW9uZyANCg0KaHR0cDovL3d3dy5u Z3VvaS12aWV0LmNvbS9hYnNvbHV0ZW5tL2FubXZpZXdlci5hc3A/YT0xMTI1MjQmej03IE5ORCAw Ni81LzIwMTANCg0KIkx1IG5odSBUcm9uZyIgDQoNCkRhbiBIYSBOb2kgY28gY2F1IHR1YyBuZ3Ug bm9pIHZlIDQgbmhhbiB2YXQgdHVuZyBnaXUgY2FjIGNodWMgcXVhbiB0cm9uZyBuaGF0IHRoYW5o IA0KcGhvLCBsYSBjYWMgb25nIEhvYW5nIFZhbiBOZ2hpZW4sIGNodSB0aWNoOyBOZ3V5ZW4gUGh1 IFRyb25nLCBiaSB0aHU7IE5ndXllbiBRdW9jIFRyaWV1LCANCnBobyBjaHUgdGljaDsgUGh1bmcg SHV1IFBodSwgcGhvIGJpIHRodS4gQ2F1IHR1YyBuZ3UgbGE6ICJHaWF1IG5odSBQaHUgLSBMdSBu aHUgDQpUcm9uZyAtIExhdCBsb25nIG5odSBOZ2hpZW4gLSBUaWV1IHRpZW4gbmh1IFRyaWV1Ii4g THUsIGhheSBsdSBsYW4sIHRpZW5nIG1pZW4gQmFjLCBjbyANCm5naGlhIGxhIGtob25nIGR1b2Mg dGhvbmcgbWluaCBsYW0uDQoNCkJhIG9uZyBraWEga2hvbmcgYmlldCBkYSBsZW4gdGllbmcgeGFj IG5oYW4gaG9hYyBjYWkgY2hpbmggbG9pIGRvbiBjdWEgbmd1b2kgZGFuIGhheSANCmNodWEuIFJp ZW5nIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIG1vaSBkYXkgZGEgdGltIGNhY2ggY2h1bmcgdG8gcmFu ZyBvbmcga2hvbmcgImx1IiwgDQpxdWEgbW90IGJhaSB2aWV0IG1vaSB4dWF0IGhpZW4gdmFvIGRh dSB0aGFuZyBOYW0gMjAxMCwgbmhhbiBkZSAiU3UgcGhhdCB0cmllbiBuaGFuIA0KdGh1YyBjdWEg RGFuZyB0YSB0dSBDdW9uZyBsaW5oIG5hbSAxOTkxIGRlbiBuYXkiLiBUcm9uZyBiYWkgbmF5LCBv bmcgTmd1eWVuIFBodSANClRyb25nIG11b24gY2h1bmcgdG8gb25nIHJhdCB0aG9uZyBtaW5oLCBz YW5nIHN1b3QsIGl0IG5oYXQsIG9uZyBzYW5nIGhvbiBoYW4gIkhvIGNodSANCnRpY2giIGN1YSBk YW5nIG9uZy4NCg0KSGllbiBuYXkgb25nIE5ndXllbiBQaHUgVHJvbmcgZGFuZyBsYW0gY2h1IHRp Y2ggUXVvYyBIb2ksIG5odW5nIG5oaWV1IG5ndW9pIGRvYW4gDQpzYW5nIG5hbSBvbmcgc2UgbGVv IGxlbiBsYW0gVG9uZyBiaSB0aHUgRGFuZyBjb25nIHNhbiBWaWV0IE5hbS4gTXVvbiBjaHVuZyB0 byBtaW5oIA0KeHVuZyBkYW5nIGR1b2Mgbm9pIG5naGllcCBOb25nIER1YyBNYW5oLCBvbmcgVHJv bmcgdmlldCBiYWkgdHJlbiBkZSBjaG8gdGhpZW4gaGEgDQp0aGF5IG9uZyByYXQgInRob25nIHRo YWkiLg0KDQpCYWkgdmlldCBjdWEgb25nIFRyb25nIG5oYW0gZGUgY2FvIGJhbiBDdW9uZyBMaW5o IDE5OTEgY3VhIERhbmcsIGR1YSByYSAicXVhbiBuaWVtIA0KbW9pIHZlIGNodSBuZ2hpYSB4YSBo b2kiLiBNb2ksIHR1YyBsYSBraG9uZyBjb24gbGEgdGh1IGNodSBuZ2hpYSB4YSBob2kgY3VhIG1h eSB0aGUgaGUgDQpjb25nIHNhbiBjdSBudWEuIE5ldSBxdXkgdmkgZG9jIGdpYSBjaHVhIGJpZXQg Y2h1IG5naGlhIHhhIGhvaSBsYSBjYWkgZ2ksIHRoaSB4aW4gZ2lvaSB0aGlldSANCmRvIGxhIGtp bSBjaGkgbmFtIGN1YSBEYW5nIGNvbmcgc2FuIFZpZXQgTmFtIHR1IGdhbiBtb3QgdGhlIGt5IG5h eSwgcXVhIGJhIGJvbiB0aGUgaGUgDQpyb2kuIE5odW5nIG11b24gZGUgY2FvIGNhaSBjdW9uZyBs aW5oIG1vaSBuYW0gMTk5MSB0aGkgdHJ1b2MgaGV0IG9uZyBOZ3V5ZW4gUGh1IA0KVHJvbmcgcGhh aSB2YWNoIHJvIGxhIHRydW9jIGtoaSBjbyBjdW9uZyBsaW5oIG5heSwgRGFuZyBjb25nIHNhbiBW aWV0IE5hbSBkYSBuaGFtIGxhbiANCm5odSB0aGUgbmFvLg0KDQpPbmcgVHJvbmcgYmVuIGtlIHRv aSBjYWMgdGhlIGhlIGxhbmggZGFvIGRhbmcgb25nIHRydW9jIG5hbSAxOTkxLiBPbmcgYmFvIHRy dW9jIGRheSANCmRhbmcgY3VhIG9uZyBkYSBtYW5nICJuaHVuZyBxdWFuIG5pZW0gZG9uIGdpYW4s IGF1IHRyaSIuIEl0IG5ndW9pIGtoYW4gdmFpIHRvIHRpZW4gZG9pIA0KdHJ1b2MgY3VhIG1pbmgg YmFuZyBoYWkgY2h1ICJhdSB0cmkiLCBuZ2hpYSBsYSBjb24gbml0LCBuZ29jOyBob2FjICJkYXUg b2MgZG9uIGdpYW4iIC0geSANCm5vaSBsYSBuZ3UgbmdvYywga2hvbmcgeHVuZyBkYW5nLCBzdXkg bmdoaSBub25nIGNhbiwgaGVwIGhvaSENCg0KQmFuIGtlIHRvaSBjdWEgTmd1eWVuIFBodSBUcm9u ZyByYXQgZGFpLCBuaHVuZyBhaSBkYSB0aGVvIGRvaSBsaWNoIHN1IG51b2MgdGEgZGV1IGNvIHRo ZSANCnRoYXkgbmhpZXUgY2h1eWVuIGNodW5nIHRvIHRydW9jIGRheSBEYW5nIGNvbmcgc2FuIFZp ZXQgTmFtIGRhIHN1eSBuZ2hpLCBoYW5oIGRvbmcgDQpkb24gZ2lhbiB2YSBhdSB0cmkgdGhhdC4g VGhpIGR1LCB0aGVvIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIGtlLCB0cnVvYyBkYXkgRGFuZyBjb25n IHNhbiANCmRhICJraG9uZyBwaGFuIGJpZXQgZHVvYyBtdWMgdGlldSBzYXUgY3VuZyB2b2kgbmhp ZW0gdnUgdHJ1b2MgbWF0Ii4gT25nIGtob25nIG5vaSBnaSANCmN1IHRoZSwgbmh1bmcgbW9pIG5n dW9pIGNvIHRoZSB0aGF5IHR1IDE5NTUsIERhbmcgY29uZyBzYW4gZGEgdGltIGNhY2ggdGlldSBk aWV0ICJkaWEgDQpjaHUiLCBkYW5oIHR1IHNhbiwgdGluaCB4YXkgZHVuZyBjaHUgbmdoaWEgeGEg aG9pIG5nYXkgdGFpIG1pZW4gQmFjIFZpZXQgTmFtLCBtYSANCmtob25nIGJpZXQsIG5odSBvbmcg Tmd1eWVuIFBodSBUcm9uZyBiYXkgZ2lvIG1vaSBiaWV0LCBraGkgdHUgY2hvIHJhbmcgY2h1IG5n aGlhIHhhIGhvaSBsYSBtb3QgbXVjIHRpZXUgeGEsIHJhdCB4YS4gDQoNClRyb25nIGJhaSB2aWV0 IGtlIHRyZW4sIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIG5vaSBsYSBoaWVuIG5heSBkYW5nIG9uZyBj aGkgbW9pIHRpbmggZGkgDQpxdWEgInRob2kga3kgcXVhIGRvIiwgdHVjIGxhIGdpYWkgZG9hbiBj aHV5ZW4gdGllcCB0cnVvYyBraGkgdG9pIGNodSBuZ2hpYSB4YSBob2kgdGhvaS4gTWEgDQpvbmcg bGFpIGtoYW5nIGRpbmggcmFuZywgIlF1YSBkbyBsZW4gY2h1IG5naGlhIHhhIGhvaSBsYSBtb3Qg c3UgbmdoaWVwIGxhdSBkYWksIHZvIGN1bmcgDQpraG8ga2hhbiB2YSBwaHVjIHRhcCIhIEJvaSB2 aSwgb25nIG1vIHRhOiAiTGljaCBzdSB0aGUgZ2lvaSBkYW5nIHRyYWkgcXVhIG5odW5nIGJ1b2Mg DQpxdWFuaCBjbyIhIE8gbnVvYyB0YSwgb25nIG5vaSB0aGVtLCBjb25nIHZpZWMgdGllbiB0b2kg Y2h1IG5naGlhIGRvICJsYWkgY2FuZyBraG8ga2hhbiwgDQpwaHVjIHRhcCwgbmhhdCB0aGlldCBw aGFpIHRyYWkgcXVhIG1vdCB0aG9pIGt5IHF1YSBkbyBsYXUgZGFpIHZvaSBuaGlldSBidW9jIGRp IiwgdmFuIHZhbi4NCk9uZyBOZ3V5ZW4gUGh1IFRyb25nIGtob25nIGNoaXUgdGlldCBsbyBjYWkg InRob2kga3kgcXVhIGRvIiBuYXkgbm8gbGF1IGRhaSB0dWMgbGEgbGF1IA0KZGVuIGJhbyBuaGll dSBuYW0sIDEwIG5hbSwgMjAgbmFtIGhheSBsYSBwaGFpIDEwMCBuYW0gbmd1b2kgZGFuIG1vaSB0 aG9hdCBjYWkgbm8gInF1YSANCmRvIj8gTmh1bmcgZG9jIGJhaSBvbmcgdmlldCB0aGkgbmd1b2kg ZG9jIGN1bmcgdGhheSBvbmcgcGhlIHBoYW4gY2FjIGxhbmggdHUgY29uZyBzYW4gDQp0cnVvYyBu YW0gMTk5MSBsYSBybyByYW5nIGhvIGtob25nIGJpZXQgZ2kgaGV0LCBtYSB2YW4gY3UgZG9pICJ4 YXkgZHVuZyBjaHUgbmdoaWEgeGEgDQpob2kiIG5nYXkgdHUgbmh1bmcgbmFtIDE5NTAgY2hvIGRl biBuaHVuZyBuYW0gMTk4MCwga2hvbmcgY2hpdSBjaG8gYWkgbmdoaSBtZXQhDQoNCk5odW5nIHNh aSBsYW0gYXUgdHJpIGtoYWMgbWEgb25nIFRyb25nIHZhY2ggcmEsIHRvbSBnb24gdHJvbmcgbW90 IHkgbGEgZGFuZyBvbmcgZGEgDQpraG9uZyBiaWV0IGtpbmggdHJvbmcgY2h1IG5naGlhIHR1IGJh biEgT25nIHZpZXQsIERhbmcgZGEgImRvbmcgbmhhdCBraW5oIHRlIHRoaSB0cnVvbmcgDQp2b2kg Y2h1IG5naGlhIHR1IGJhbjsgY29pIG5oZSBuaHVuZyB0aGFuaCB0dXUsIGdpYSB0cmkgbWEgbmhh biBsb2FpIGRhIGRhdCBkdW9jIHRyb25nIHRob2kgDQpreSBwaGF0IHRyaWVuIGNodSBuZ2hpYSB0 dSBiYW4iLiBWaSBsb2kgbmhpbiBtb3QgY2hpZXUgaGVwIGhvaSAiYXUgdHJpIiBkbyBjaG8gbmVu LCB0cnVvYyANCmtoaSBjbyBDdW9uZyBMaW5oIDE5OTEsIERhbmcgY29uZyBzYW4gZGEgIm11b24g bmhhbmggY2hvbmcgeG9hIGJvIHNvIGh1dSB0dSBuaGFuIA0KdmEga2luaCB0ZSB0dSBuaGFuOyBk b25nIG5oYXQgbmhhIG51b2MgcGhhcCBxdXllbiB2b2kgbmhhIG51b2MgdHUgYmFuIjsgdmFuIHZh bi4gDQoNClRvbSBsYWkgb25nIE5ndXllbiBQaHUgVHJvbmcgdmFjaCBybywgIkRhbmcgVGEiIGRh IHNhaSBsYW0sIHRvYW4gbmh1bmcgc2FpIGxhbSBjYW4gDQpiYW4sIGxhbSBjaG8gY2EgbnVvYyBj aGFtIHRpZW4sIGxldCBiZXQgZGkgc2F1IGNhYyBudW9jIGtoYWMgaGFuZyBudWEgdGhlIGt5LiBT YWkgbGFtIA0KbG9uIG5oYXQsIG5odSBvbmcgVHJvbmcgbmhhbiBtYW5oLCBsYSBEYW5nIGNvbmcg c2FuIGRhICJjb2kgbmhlIGNhYyB0aGFuaCBxdWEgY3VhIGNodSANCm5naGlhIHR1IGJhbiIhIERh bmcga2hvbmcgY2hpdSBob2MgdHUgYmFuLCBjaGkgdmkgZGF1IG9jICJhdSB0cmkiLCBjb2kgbmh1 bmcgZGluaCBjaGUgDQp0cm9uZyB4YSBob2kgdHUgYmFuIGRldSBsYSB4YXUgeGEgY2E7IHRoaSBk dSBuaHUgInRoaSB0cnVvbmciLCBuaHUgZ3VvbmcgbWF5IG5oYSBudW9jIA0KdG9uIHRyb25nIGx1 YXQgcGhhcCB2YSAiY2FpIHRyaSBiYW5nIGx1YXQgcGhhcCIuDQoNClRhaSBzYW8gbGFpIG5oYW4g bWFuaCBzYWkgbGFtIGNvIGJhbiBjdWEgZGFuZyBsYSBraG9uZyBiaWV0IGtpbmggdHJvbmcgIm5o dW5nIHRoYW5oIHR1dSANCmN1YSBjaHUgbmdoaWEgdHUgYmFuIiBuaHUgdmF5PyBWaSBvbmcgTmd1 eWVuIFBodSBUcm9uZyBtdW9uIGJpZW4gbWluaCBjaG8gbmh1bmcgDQoiZG9pIG1vaSIgY3VhIGRh bmcgb25nOyB0aGkgZHUsIGJheSBnaW8gY2FjIGRhbmcgdmllbiBkdW9jIGRpIGtpbmggZG9hbmgg a2llbSBsb2ksIHRodWUgDQptdW9uIHZhIHN1IGR1bmcgc3VjIGxhbyBkb25nIGN1YSBjb25nIG5o YW4uIEhvIGxhbSBnaW9uZyBoZXQgY2FjIG5oYSB0dSBiYW4gbWEgdGhlIGhlIGxhbmggdHUgDQpj b25nIHNhbiB0cnVvYyBkYXksIHR1IEhvIENoaSBNaW5oLCBMZSBEdWFuIHRvaSBEbyBNdW9pIHZh biB0aW0gY2FjaCB0aWV1IGRpZXQhDQoNCkRvYyB4b25nIGJhbiBrZSB0b2kgY3VhIG9uZyBOZ3V5 ZW4gUGh1IFRyb25nIG5odSB0cmVuLCBiYXQgY3UgbW90IGRhbmcgdmllbiBjb25nIHNhbiANCm5h bywgYmF0IGN1IG5ndW9pIFZpZXQgTmFtIG5hbyAobmV1IGtob25nIGx1KSwgY3VuZyBwaGFpIGRh dCBjYXUgaG9pOiAiRGFuZyBUYSIgZGEgc2FpIA0KbGFtIG5odSB2YXkgdHJvbmcgYmFvIG5oaWV1 IGxhdT8gQWkgbGEgY2FpIGRhbSBuZ3VvaSAibHUgbGFuIiBkdWEgRGFuZyBkZW4gY2hvIHBoYW0g DQpuaHVuZyBzYWkgbGFtIG5odSB0aGU/IFZhLCBoYXUgcXVhIGN1YSBsdSBsYW4gc2FpIGxhbSBu aHUgdmF5IGR1YSBkYW4gdG9jIHRvaSBkYXUgcm9pPw0KT25nIFRyb25nIGtob25nIG5ldSByYSBu aHVuZyBjYXUgaG9pIHRyZW4uIEJvaSB2aSBraGkgc3V5IG5naGkgdmUgY2F1IHRyYSBsb2kgdGhp IGNhIGxpY2ggDQpzdSBEYW5nIHNlIGNoaSBsYSBtb3QgUXVhIEx1YSB2aSBkYWkhIA0KDQpWaSBu Z3VvaSBkYXUgdGV1IHJhIHRhdCBjYSBuaHVuZyBxdWFuIG5pZW0gc2FpIGxhbSwgYXUgdHJpIGRv OyBuZ3VvaSBoYW5nIGhhaSBjbyB4dXksIA0KYmllbiBtaW5oIGNobyBuaHVuZyBxdWFuIG5pZW0g YXUgdHJpIGRvIGNoaW5oIGxhIG9uZyBIbyBDaGkgTWluaCEgDQpDdSBkb2MgY2FjIGJhaSB0cm9u ZyAiSG8gQ2hpIE1pbmggVG9hbiBUYXAsIiBjYWMgZGFuZyB2aWVuIGNvbmcgc2FuIHNlIHRoYXkg ZHVuZyBuaHUgDQp0aGUhIEhvIENoaSBNaW5oIGRhICJjaHVpIGJvaSIgeGEgaG9pIGNhYyBudW9j IHR1IGJhbiBraG9uZyBoZXQgbG9pOyBkYSBobyBoYW8gbmd1b2kgDQpWaWV0IE5hbSB0aGVvIG9u ZyB4YXkgZHVuZyBjaHUgbmdoaWEgeGEgaG9pICJ0b3QgZGVwIGdhcCB0cmFtIG5nYW4gbGFuIHhh IGhvaSB0dSBiYW4iLCAgDQp0dSB0cnVvYyBraGkgb25nIE5ndXllbiBQaHUgVHJvbmcgcmEgZG9p IG5hbSAxOTQ0ISANCk5odW5nIG5ndW9pIGR1b2Mgb25nIEhvIGNob24sIGR1YSBsZW4ga2Ugbmdo aWVwIG5odSBMZSBEdWFuLCBUcnVvbmcgQ2hpbmgsIFBoYW0gDQpWYW4gRG9uZywgTGUgRHVjIFRo bywgdmFuIHZhbiwgY2hpIHJhbSByYXAgZGkgdGhlbyBuaHVuZyBxdWFuIG5pZW0gImF1IHRyaSwg c2FpIGxhbSIgDQpkbyBtYSB0aG9pLCBjaHUgY28gYWkgYmF5IHJhIGNhaSBnaSBtb2kgZGF1ISAN Cg0KQ2hvIG5lbiwga2hpIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIHZhY2ggcmEgbmh1bmcgcXVhbiBu aWVtIGRvbiBnaWFuLCBhdSB0cmkgY3VhIERhbmcgDQpjb25nIHNhbiB0cnVvYyBuYW0gMTk5MSwg b25nIGRhIGNodW5nIHRvIHJhbmcgSG8gQ2hpIE1pbmggdmEgY2EgRGFuZyBjb25nIHNhbiBWaWV0 IA0KTmFtIGRhIHN1eSBuZ2hpIGRvbiBnaWFuLCBhdSB0cmksIHNhaSBsYW0gbmdoaWVtIHRyb25n IHRyb25nIGhvbiBudWEgdGhlIGt5LiBBaSBiYW8gIkx1IA0Kbmh1IFRyb25nIiBsYSBub2kgb2Fu ISBOZ3V5ZW4gUGh1IFRyb25nIGNvIGx1IHRoaSBjdW5nIGtob25nIGRlbiBub2kgbHUgbmh1IG5o aWV1IGtlICANCiJhdSB0cmkiIGRvaSB0cnVvYyEgRGFuZyB2aWVuIGNvbmcgc2FuIG5hbyB2YW4g bm9pIHZvaSBuaGF1IGNhdSAiTHUgbmh1IFRyb25nIiBiYXkgZ2lvIA0KbmVuIHRpbmggbGFpLg0K DQpOaHVuZywgc2F1IGtoaSBuaGluIHRoYXkgRGFuZyBjb25nIHNhbiBkYSBwaGFtIGNhYyBzYWkg bGFtIHRlIGhhaSBzdW90IDcwIG5hbSwgdmFuIA0KIGtob25nIGNvIGdpIGJhbyBkYW0gbGEgc2F1 IG5hbSAxOTkxIHRoaSBEYW5nIGNvbmcgc2FuIGJhdCBkYXUgZHVuZyEgQ3UgZG9jIGJhaSB2YW4g DQpjdWEgb25nIE5ndXllbiBQaHUgVHJvbmcgdGhpIHJvOyBraGkgb25nIG5ldSByYSB2YSB0cmEg bG9pIGNhYyBjYXUgaG9pICJjaHUgbmdoaWEgeGEgaG9pIA0KbGEgZ2kgdmEgZGkgbGVuIGNodSBu Z2hpYSB4YSBob2kgYmFuZyBjYWNoIG5hbyI/IEJvaSB2aSBjYXUgdHJhIGxvaSBjdWEgb25nIGNo aSBnb20gdG9hbiANCm5odW5nIGtoYXUgaGlldSB5IG5odSBjdTogeGF5IGR1bmcgZGFuIGdpYXUg bnVvYyBtYW5oLCBjb25nIGJhbmcsIGRhbiBjaHUsIHZhbiBtaW5oOyANCmN1b2Mgc29uZyBubyBh bSwgdHUgZG8sIGhhbmggcGh1YywgdmFuIHZhbi4gTmh1bmcga2hhdSBoaWV1IHRyb25nIHJvbmcg bmh1IHRoZSB0aGkgZHVhIA0KYmUgY29uIGR1bmcgbmdvYWkgZHVvbmcgY3VuZyBobyB0byBsZW4g ZHVvYyEgTXVvbiBjaG8gbm8gZ2lvbmcgTXksIGN1b25nIGxpbmggbW9pIA0KY3VhIGRhbmcgY29u IGR1bmcgbmh1bmcgY2h1IGN1YSBUb25nIFRob25nIExpbmNvbG46ICJuaGEgbnVvYyBjdWEgbmhh biBkYW4sIGRvIA0KbmhhbiBkYW4sIHZpIG5oYW4gZGFuIiBuaHVuZyBvbmcgVHJvbmcga2hvbmcg cXVlbiB0aG9uZyB0aGVtIGNhaSBkdW9pICJkdW9pIHN1IGxhbmggDQpkYW8gY3VhIERhbmcgY29u ZyBzYW4hIiANClRvaSBkYXkgdGEgbGFpIG5oaW4gdGhheSBtb3Qgc2FpIGxhbSBjb3QgbG9pIGN1 YSBEYW5nIGNvbmcgc2FuLCBnYXkgbmVuIGJhbyBkYXUgdGh1b25nIA0KY2hvIGRhbiB0b2MgVmll dCBOYW0uIERvIGxhIGNoZSBkbyBkb2MgcXV5ZW4gdG9hbiB0cmkgbWEgSG8gQ2hpIE1pbmggZGEg aG9jIGN1YSANClN0YWxpbiwgTWFvIFRyYWNoIERvbmcsIGRlbSB2ZSBhcCBkYXQgdHJlbiBkYW4g dG9jIHRhLiANCg0KQ3Ugc3V5IG5naGkgdmUgNjAgbmFtIGxhbmggZGFvIGNvbmcgc2FuIHNhaSBs YW0sIG5ndW9pIGRhbmcgdmllbiBuYW8gY3VuZyBwaGFpIHR1IGhvaTogDQpUYWkgc2FvIG5odW5n IHNhaSBsYW0gY2FuIGJhbiBkbyBtYSBzdW90IGJheSBuaGlldSBuYW0ga2hvbmcgYWkgYmlldCB2 YSBraG9uZyBhaSBzdWEgDQpjYT8gTHkgZG8gY2hpbmggbGEgY2hlIGRvIGRvYyB0YWkgY2h1eWVu IGNoZSEgDQoNClRyb25nIG1vdCBjaGUgZG8gdHUgZG8gZGFuIGNodSwgbmV1IG1vdCBkYW5nIGNo aW5oIHRyaSB0aGVvIGR1b2kgbmh1bmcgdHUgdHVvbmcgY2hpIA0KZGFvIHNhaSBsYW0sIGRhbiBk YXQgbnVvYyB2YW8gY29uIGR1b25nIHRhaSBoYWksIHRoaSBobyBjdW5nIGNoaSBjbyB0aGUgcGhh bSB0b2kgdHJvbmcgDQptb3QsIGhhaSBuaGllbSBreSwgdHVjIGxhIHR1IDQgZGVuIDggbmFtLCAx MCBuYW0gbGEgY3VuZy4gTmd1b2kgZGFuIHNlIGR1bmcgbGEgcGhpZXUgDQpiYXUgY3UgbGF0IGRv IG1vdCBjYWNoIGhvYSBiaW5oLiANCg0KTmh1bmcsIGtoaSBtb3QgZGFuZyBjaGllbSBkb2MgcXV5 ZW4gY2FpIHRyaSBoZXQgbmFtIG5heSBzYW5nIG5hbSBraGFjLCBzdW90IHRoZSBoZSANCm5heSBz YW5nIHRoZSBoZSBraGFjLCB0aGkgaG8gY28gdGhlIGR1YSBjYSBkYW4gdG9jIHh1b25nIHZ1YyBz YXUgbWEgY2hpbmggaG8gY3VuZyANCmtob25nIG5nbyEgVmkgY2hlIGRvIGNodXllbiBjaGUga2hv bmcgY2hvIHBoZXAgYWkgcGhlIHBoYW4gY2EuIEFpIGRhIGRvYyBuaHVuZyBiYWkgDQpwaGUgYmlu aCBjdW9jIGNhaSBjYWNoIHJ1b25nIGRhdCBjdWEgY28gTHVhdCBTdSBOZ3V5ZW4gTWFuaCBUdW9u ZyB2YW8gdGhvaSAxOTU2IGRldSANCnRoYXkgcmFuZyBvbmcgVHVvbmcgZGEgbmV1IHJhIG5odW5n IGhlIHF1YSB0YWkgaGFpIGtoaSBuaGEgbnVvYyBjb25nIHNhbiBjb2kgdGh1b25nIA0KY2FjIG5n dXllbiB0YWMgY28gYmFuIGN1YSBwaGFwIGx1YXQsIG5odW5nIG5ndXllbiB0YWMgcGhhcCBseSB0 aGFuaCBoaW5oIHRyb25nIGxpY2ggc3UgDQpuaGFuIGxvYWkgdmEgZGEgZHVvYyBhcCBkdW5nIHRy b25nIGNhYyBudW9jIHR1IGJhbiB0dSBoYW5nIHRoZSBreSB0cnVvYy4gTmh1bmcgUGhhbiANCkto b2ksIE5ndXllbiBIdXUgRGFuZywgTmd1eWVuIE1hbmggVHVvbmcsIFRyYW4gRHVjIFRoYW8sIHZh biB2YW4sIGRhIGJpIGNoZSBkbyANCkhvIENoaSBNaW5oIHZ1aSBkYXAsIGRheSBkb2EsIGNoaSB2 aSBraG9uZyBjdWkgZGF1IHR1YW4gcGh1YyBjYWMgInF1YW4gbmllbSBkb24gZ2lhbiwgDQphdSB0 cmkiIGN1YSBuaHVuZyBrZSBjYW0gcXV5ZW4gdGhvaSBkby4gTmdheSBjYSBuaHVuZyBkYW5nIHZp ZW4gY29uZyBzYW4gYmlldCBzdXkgbmdoaSwgDQpkYW0gY28geSBtdW9uIHRoYXkgZG9pIG5odSBI b2FuZyBNaW5oIENoaW5oLCBMZSBMaWVtLCBob2FjIG5odSB1eSB2aWVuIEtpbSBOZ29jIA0KZGFt IGNvIHNhbmcga2llbiBsYW0ga2hhYyB2b2kgY2hpbmggc2FjaCBjdWEgYm9uIGdpYW8gZGlldSBu Z3UgdG9pLCBjdW5nIGRldSBiaSB0cnUgZGFwIGhldCBjYS4gDQpDYSBudW9jIFZpZXQgTmFtIGJp IERhbmcgY29uZyBzYW4gZGVtIGR1bmcgbGFtIHZhdCB0aGkgbmdoaWVtIGNobyBuaHVuZyBxdWFu IG5pZW0gc2FpIA0KbGFtIG5odSB0aGUsIHRyb25nIGhvbiBudWEgdGhlIGt5LCBtYSBjYSBkYW4g dG9jIGN1IHBoYWkgY3VpIGRhdSBjaGl1IGR1bmcuIENoaSB2aSANCmNoZSBkbyBkb2MgdGFpIGRh bmcgdHJpIQ0KDQpOZXUgY29uIGR1eSB0cmkgY2hlIGRvIGRvYyB0YWkgdG9hbiB0cmkgY3VhIERh bmcgY29uZyBzYW4sIHRoaSBraG9uZyBjbyBnaSBiYW8gZGFtIGxhIA0Kbmh1bmcgc2FpIGxhbSBj dWEgY2hpbmggcXV5ZW4gYmF5IGdpbyB2YSBtYWkgc2F1IGNvIGNvIGhvaSBzb20gZHVvYyBwaG9p IGJheSByYSB2YSANCm5ndW9pIGRhbiBkdW9jIHF1eWVuIHRoYXkgZG9pIGNoaW5oIHF1eWVuIGJh bmcgbGEgcGhpZXUgdHUgZG8hIA0KDQpUcm9uZyBraGkgdmFjaCByYSBjYWMgc2FpIGxhbSBjdWEg RGFuZyBjb25nIHNhbiB0dSBuaHVuZyBuZ2F5IGRhdSBuYW0gMTkzMCBkZW4gbmFtIA0KMTk5MSwg b25nIE5ndXllbiBQaHUgVHJvbmcgZGEgbGFtIG1vdCBiYW5nIGtldCB0b2kgRGFuZyBjb25nIHNh biByYXQgZGFuZyBzdXkgbmdoaS4gDQpOaHVuZyBvbmcgdmFuIGNvbiBsdSEgRGlldSBsdSBsYW4g cXVhbiB0cm9uZyBuaGF0IGN1YSBvbmcgbGE6IE11b24gZHV5IHRyaSBjaGUgZG8gDQpjaHV5ZW4g Y2hlIGRvYyBxdXllbiBjdWEgRGFuZyBjb25nIHNhbiEgRHVvaSBjaGUgZG8gZG9jIHRhaSBuaHUg dGhlLCBsYW0gc2FvIGJhbyBkYW0gDQpuaG9tIG5ndW9pIGNvbmcgc2FuIGNhbSBxdXllbiBiYXkg Z2lvIGtob25nIHBoYW0gbmh1bmcgc2FpIGxhbSBuZ2hpZW0gdHJvbmcga2hhYywgDQp0aWVwIHR1 YyBkdWEgZGF0IG51b2MgdmFvIGNvbiBkdW9uZyB0b2kgdGFtIGxhYyBoYXUgdGhlbSAxMCBuYW0s IDIwLCAzMCBuYW0gbnVhPyANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS92aWV0 bmFtL3N0b3J5LzIwMDgvMTEvMDgxMTAzX2hhbm9pX2Zsb29kX2xhdGVzdC5zaHRtbCAwMy8xMS8y MDA4IC0gMDZoMTYgR01UDQoNCkhhIE5vaTogS2hpIG5hbyBIYSBOb2kgbW9pIGhldCBuZ2FwIGx1 dD8NCg0KVG8gVmlldE5hbU5ldCBob20gMy8xMSBkYSBkYW4gbG9pIG1vdCBzbyBkYWkgYmlldSBx dW9jIGhvaSBjaG8gcmFuZyBjaGluaCBxdXllbiBIYSBOb2kgDQoicGhhaSB0dSBuaGluIGxhaSBt aW5oIGtoaSBkZSB4YXkgcmEgbmdhcCBsdXQsIGdheSB0aGlldCBoYWkgbmFuZyBuZSBtYXkgbmdh eSBxdWEiLg0KDQpEYWkgYmlldSBOZ3V5ZW4gTWluaCBUaHV5ZXQgZHVvYyB0cmljaCBsb2kgbm9p OiAiQ2FjaCBkYXkgNy04IG5hbSwgdGhhbmggcGhvIGNvIG1vdCANCmR1IGFuIGNhaSB0YW8gaGUg dGhvbmcgdGhvYXQgbnVvYyBkdW9jIGRhdSB0dSByYXQgbmhpZXUgdGllbi4gVmF5IGtob25nIGhp ZXUgY2FpIGR1IGFuIGhvYW5oIHRyYW5nIGtpYSB0aWV1IHRpZW4gdmFvIGRhdT8iLg0KDQpodHRw Oi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vc3RvcnkvMjAwOC8xMS8wODExMDZf aGFub2lfZHlrZV9sYXRlc3Quc2h0bWwgMDYvMTEvMjAwOCAwNmgxMCBHTVQNCg0KSGEgTm9pOiBI aWVuIHNvIG5ndW9pIHRoaWV0IG1hbmcgZG8gbHUgbHV0IG8gY2FjIHRpbmggbWllbiBiYWMgVmll dCBOYW0gaGllbiBkYSBsZW4gY29uIA0Kc28gOTIgbmd1b2ksIHRyb25nIGRvIG5ndW9pIGNoZXQg byB0aHUgZG8gbGEgMjIuDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0L3ZuL3N1a2llbm5v bmdob21uYXkvNTIxMS9pbmRleC5hc3B4IDAyLzExLzIwMDggMTI6MTMgKEdNVCArIDcpDQoNCkhh IE5vaSBsdXQgdmkgIm5oYW4gdGFpIiBjb25nIHZvaSB0aGllbiB0YWkNCg0KVGhpZXQgaGFpIGRv dCBsdXQgbmF5IHRvbiBoYWkgbG9uIG5oYXQgZGVuIHRhbSBseSBuZ3VvaSBkYW4sIGhvIGNhbSB0 aGF5IGN1b2Mgc29uZyANCmN1YSBobyBraG9uZyBkdW9jIGRhbSBiYW8sIGNodWEga2UgdG9uIGhh aSBraW5oIHRlIGxhIHBoYWkgbmdoaSB2aWVjLCBkaSBtdW9uLCB4ZSBtYXksIA0KbyB0byBob25n Li4uIE5ndW9pIGRhbiBjYW0gdGhheSBsYW5oIGRhbyBjaHVhIHF1YW4gdGFtIGRlbiBjdW9jIHNv bmcgY3VhIGhvLCBsYW0gc2FvIA0KYm8gbWF5IGxhbmggZGFvIHBoYWkgdGhheSBkbyBsYSB0cmFj aCBuaGllbSB2YSBnaWFpIHF1eWV0LiAoLSBQR1MtVFMgTmd1eWVuIFZhbiBIdW5nKSANCg0KKFkg a2llbiBjdSB0cmk6IFJvIHJhbmcgb25nIE5ndXllbiBQaHUgVHJvbmcgLSBCaSB0aHUgVGhhbmgg dXkgSGEgTm9pLCBkYWkgYmlldSBxdW9jIGhvaQ0KSGEgTm9pLCBraG9uZyBob2FuIHRoYW5oIG5o aWVtIHZ1LCBraG9uZyBkdSBuYW5nIGx1YyBjb25nIHRhYyB2YXkgbWEgdmFuIGR1b2MgbGVuIGNo dWMgQ2h1IHRpY2ggUXVvYyBIb2kpIA0KDQpodHRwOi8vd3d3LmJhb3ZpZXRuYW0udm4veGEtaG9p LzEwMjQyOS8yMC9DYS1udW9jLXZhbi1jb24tMSw3LXRyaWV1LW5ndW9pLW11LWNodSAgIDI5LTEw LTIwMDggMDA6MTU6MTMgR01UICs3DQoNCkhhIE5vaTogQ2EgbnVvYyB2YW4gY29uIDEsNyB0cmll dSBuZ3VvaSBtdSBjaHUgLSByaWVuZyBIYSBOb2kgZGEgY28gZ2FuIDIzNS4wMDAgbmd1b2kgDQoN ClRoZW8gdGhvbmcga2UgY3VhIEJvIEdELURULCBjYSBudW9jIGhpZW4gY28gZ2FuIDEsNyB0cmll dSBuZ3VvaSBtdSBjaHUsIHRhcCB0cnVuZyBuaGlldSBuaGF0IHZhbyBkbyB0dW9pIHRyZW4gMzYN Cg0KVHJvbmcgZG8sIGNoaSByaWVuZyBIYSBOb2kgZGEgY28gZ2FuIDIzNS4wMDAgbmd1b2kgKHJp ZW5nIEhhIFRheSBjdSBkYSBjaGllbSB0b2kgaG9uIA0KMjIwLjAwMCBuZ3VvaSksIFRQSENNIGhv biA5MC4wMDAsIExvbmcgQW4gaG9uIDYwLjAwMCBuZ3VvaS4gTyBkbyB0dW9pIDE1LTI1LCBzbyAN Cm5ndW9pIG11IGNodSBsYSBob24gMTQwLjAwMCBuZ3VvaSwgY29uIHNvIG5heSBvIGRvIHR1b2kg MjUtMzUgbGEgZ2FuIDI1MC4wMDAgbmd1b2ksIHRyZW4gMzYgdHVvaSBsYSBnYW4gMSwzIHRyaWV1 IG5ndW9pLg0KDQpodHRwOi8vZ2lhZGluaC5uZXQudm4vaHRtbC9zaXRlLzljMjM0MjcyYjg1MzM3 ZmZkZjcyY2I3ZTRjNWJjNGFmLmh0bWw/ZGlyZWN0PTQ1NWM2ZDMxZTdlNWU0OWY4ZGVhMjQzNjQx Y2EyOWYyJmNvbHVtbj05NSZuSUQ9NDkwOSZsYW5nPVZuDQoNCkhhIE5vaTogQWkgdHVuZyBiYW8g dmUgY2hvIE5ldyBDZW50dXJ5IHRpZXAgdHVjIGhvYXQgZG9uZz8NCg0KaHR0cDovL3d3dy5zYnRu Lm5ldC9kZWZhdWx0LmFzcHg/TGFuZ0lEPTM4JnRhYklkPTIwOSZBcnRpY2xlSUQ9MTczNzEgQ2h1 IE5oYXQsIE5nYXkgMjEgdGhhbmcgMS0yMDA3IA0KDQpIYSBOb2k6IEJvIFRheSBUcnVvYyBOYW4g TWFpIERhbSBUcmEgSGluaCANCg0KaHR0cDovL2Jhb2RhaWRvYW5rZXQubmV0L2Rkay9tZE5ld3Mu ZGRrP21hc3RlcklkPTgmY2F0ZWdvcnlJZD04OSZpZD05MDcxIDk6MTMgQU0sIDE0LzA4LzIwMDgN Cg0KSGEgTm9pOiBNdW9uIHRyYW5oIG8gbmhpZW0sIGNoaSBjb24gY2FjaC4uLiBuaW4gdGhvIQ0K DQpPIG5oaWVtIGtob25nIGtoaSBraG9uZyBjaGkgZ2F5IHJhIHRhYyBoYWkgbG9uIHZlIHN1YyBr aG9lIG1hIGNvbiBnYXkgdGhpZXQgaGFpIGtpbmggdGUgbmdoaWVtIHRyb25nLg0KDQpIYSBOb2kg dmEgVFAuIEhvIENoaSBNaW5oIGRhICdxdWEgbWF0JyByYXQgbmhpZXUgJ2RhaSBnaWEnIHZlIG8g bmhpZW0ga2hhYyB0YWkgY2hhdSBBLCANCmRlIHRybyB0aGFuaCAyIHRyb25nIHNvIDYgdGhhbmgg cGhvIG8gbmhpZW0gYnVpIGhhbmcgZGF1IGN1YSBjaGF1IGx1Yy4gZG8gbGEgdGhvbmcgdGluIA0K ZHVvYyBuaGlldSBxdWFuIHRhbSB0YWkgTGUgQ29uZyBibyBiYW8gY2FvIE1vaSB0cnVvbmcgcXVv YyBnaWEgbmFtIDIwMDcgLSBNb2kgdHJ1b25nIGtob25nIGtoaSBkbyB0aGkgY2hpZXUgbmdheSAx Mi04LiAgDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2UvdmlldG5hbS9zdG9yeS8y MDA5LzAxLzA5MDEwOF9oYW5vaV9wYXJ0eW1lbWJlcnMuc2h0bWwgMDggVGhhbmcgMSAyMDA5IC0g Q2FwIG5oYXQgMDdoMTcgR01UDQogIA0KSGEgTm9pOiBHYW4gbmdoaW4gZGFuZyB2aWVuIG1hYyBz YWkgcGhhbSAgIA0KIA0KIkNvIG5oaWV1IG5ndW9pIGR1b2MgZHVhIGxlbiBnaWFpIHF1eWV0IG5o dW5nIHZhbiBkZSBjYXAgdGhpZXQgY3VhIGRhbiBuaHVuZyBsYWkgDQpraG9uZyB0aGF1IGhpZXUg bHVhdCBwaGFwIGhvYWMgcGhvdCBsbyBkZSBsb2kgZHVuZyBjaHVjIHZ1IHF1eWVuIGhhbiIgLSAo ZGFpIGJpZXUgVnUgRHVjIFRhbiwgcXVhbiBCYSBEaW5oKQ0KT25nIFRhbiBuaGFuIGRpbmggdGhl bTogIkNvbmcgdGFjIHRvIGNodWMgY2FuIGJvIGN1YSBIYSBOb2kgY28geWV1IGtlbSB2YSBjbyBt YW0gbW9uZyB0dSBraGEgbGF1Ii4NCg0KaHR0cDovL3ZpZXRiYW8udm4vVHJhbmctYmFuLWRvYy9D YW0teGUtbmdvYWktdGluaC1sYS12aS1waGFtLUhpZW4tcGhhcC8xMDg1MTg4Ni80NzgvIFRodSBi YSwgMjQgVGhhbmcgaGFpIDIwMDQsIDA5OjI2IEdNVCs3IA0KDQpIYSBOb2k6IENhbSB4ZSBuZ29h aSB0aW5oIGxhIHZpIHBoYW0gSGllbiBwaGFwDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9U b2ktc2UtYmFvLWNhby1RdW9jLWhvaS12ZS1xdXktZGluaC12aS1oaWVuLWN1YS1IYS1Ob2kvMTA5 Mzc2NzQvMTU3LyBUaHUgYmF5LCAxMCBUaGFuZyBtdW9pIGhhaSAyMDA1LCAxMTowNyBHTVQrNyAN Cg0KSGEgTm9pOiAiVmllYyBuZ3VuZyBkYW5nIGt5IHhlIG1heSBjdWEgSGEgTm9pIGxhIHRyYWkg dm9pIEhpZW4gcGhhcCENCg0KaHR0cDovL21hZy5hc2h1aS5jb20vaW5kZXgucGhwL3R1b25ndGFj L3BoYW5iaWVuLzU1LXBoYW5iaWVuLzcwNC14YXkta2hhY2gtc2FuLXRyb25nLWNvbmctdmllbi10 aG9uZy1uaGF0LXJhby1iYW4tbGluaC1ob24tdGhhbmgtcGhvLmh0bWwgDQoNCkhhIE5vaTogWGF5 IGtoYWNoIHNhbiB0cm9uZyBjb25nIHZpZW4gVGhvbmcgTmhhdCAtIFJhbyBiYW4gbGluaCBob24g VGhhbmggcGhvIA0KDQpYZXQgdmUgZGllbiB0aWNoIHZhIHNvIGRhbiBjdWEgSGEgTm9pLCBybyBy YW5nIGxhIFRoYW5oIHBobyBoaWVuIG5heSBjaHVhIGNvIG5oaWV1IGNvbmcgdmllbi4gbmhpZXUg a2h1IGRhbiBjdSwgbmd1b2kgZGFuIGNoYW5nIGNvIGNobyBkZSB0YXAgbHV5ZW4gaGFuZyBuZ2F5 IHZhIGdpYW8gdGllcCB2b2kgbmhhdSwgbmh1bmcgZGlldSB2byBjdW5nIGNhbiB0aGlldCBkb2kg dm9pIHN1YyBraG9lIGNhIG5oYW4gdmEgc3VjIGtob2UgY29uZyBkb25nLiANClRyb25nIGtoaSBk bywgdHUgbmdheSA2LzYvMjAwOCwga2hhY2ggc2FuIG5heSBkYSBkdW9jIGtob2kgY29uZyB4YXkg ZHVuZw0KDQpodHRwOi8vd3d3LnRoZXRoYW92YW5ob2Eudm4vMTMyTjIwMDgxMjE3MDk0MzI4NjUz VDE0L1RvYS1uaGEtVHJ1bmctdGFtLVRodW9uZy1tYWktMTkxMi1SYWMta2llbi10cnVjLW8tSGEt Tm9pLmh0bSANCg0KVG9hIG5oYSBUcnVuZyB0YW0gVGh1b25nIG1haSAxOS8xMjogIlJhYyBraWVu IHRydWMiIG8gSGEgTm9pPyANCg0KVmllYyB4YXkgZHVuZyBUcnVuZyB0YW0gVGh1b25nIG1haSAt IERpY2ggdnUgMTkvMTIgdHJlbiBuZW4gY2hvIDE5LzEyIGN1IChRdWFuIEhvYW4gS2llbSwgSGEg Tm9pKSBkYW5nIGxhIGRpZW0gbm9uZyBkdSBsdWFuIHR1YW4gcXVhLCBib2kgbmVuIGNobyBuYXkg Y2hpbmggbGEgcGhvIDE5LzEyIGN1IG5vaSB0aG9uZyBwaG8gTHkgVGh1b25nIEtpZXQgdm9pIEhh aSBCYSBUcnVuZyB2b2kgbmhpZXUgZGF1IGFuIGxpY2ggc3UgdmFuIGhvYS4uLiANCg0KaHR0cDov L3d3dy5sYW9kb25nLmNvbS52bi9Ib21lL01pZW5nLXR1LXRoYW4tZ2l1YS1sb25nLWR1b25nLzIw MDk5LzE1NDMzNS5sYW9kb25nIExhbyBEb25nIHNvIDIwMCBOZ2F5IDA3LzA5LzIwMDkgQ2FwIG5o YXQ6IDc6MDAgQU0sIDA3LzA5LzIwMDkNCg0KSGEgTm9pOiBNaWVuZyB0dSB0aGFuIGdpdWEgbG9u ZyBkdW9uZyAtIEhvIGdhIG1hdCBuYXAgbmFtIG8gZ2l1YSBsb25nIGR1b25nLg0KDQpodHRwOi8v dmlldGJhby52bi92aS9YYS1ob2kvQmFtLXJ1bmctU29jLVNvbi1kZS14YXktYmlldC10aHUtbmhh LXNhbi8xMDk1NzgzMi8xNTcvIDE4IFRoYW5nIG5hbSAyMDA2LCAxNjo0NiBHTVQrNyANCg0KSGEg Tm9pOiAiQmFtIiBydW5nIFNvYyBTb24gZGUgeGF5IGJpZXQgdGh1LCBuaGEgc2FuDQoNCmh0dHA6 Ly93d3cuc29jYmF5LmNvbS9uZXdzL2RldGFpbC9uaGlldS1raHUtdGFpLWRpbmgtY3UtaGEtbm9p LW1vaS1jby1jaG8tZGllbi1udW9jLzYxMjI0NzIyMy8zODU5NDE1MDQvMS5odG1sIHRpZW5waG9u Zy52biAtIDA4OjE4IDA3LTA5LTIwMDkgDQoNCkhhIE5vaTogTmhpZXUga2h1IHRhaSBkaW5oIGN1 IEhhIE5vaTogTW9pIGNvIGNobyBkaWVuLCBudW9jDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hh aG9pLzIwMDkvMDIvODI3NTM1LyAyMTo0NCcgMDYvMDIvMjAwOSAoR01UKzcpIA0KDQpIYSBOb2k6 IEJvIGtob25nIGhhbmcgdHJhbSBoZWN0YSBkYXQgVGh1IGRvLCB2YW4geGluIHRoZW0hDQoNClNh dSBraGkgdHJvIHRoYW5oIGNodSBkYXUgdHUgZHUgYW4geGF5IGR1bmcgREggUXVvYyBnaWEgSGEg Tm9pIHRhaSBIb2EgTGFjLCBxdWEgdHJpbmggcmEgc29hdCBkYSBnaXVwIEJvIFhheSBkdW5nIHBo YXQgaGllbiBraG9hbmcgMTQwaGEgZGF0IHRhaSBkYXkgImNodWEgYmlldCBkdW5nIHZhbyB2aWVj IGdpIiwga2hvYW5nIDEzMGhhICJrZXAgZ2l1YSIgZHVvbmcgMjFBIHZhIExhbmcgLSBIb2EgTGFj IGNodWEgZHVvYyBkdWEgdmFvIHF1aSBob2FjaCBjaHVuZyB2YSAyNmhhIHRodW9jIGRpYSBwaGFu IHhhIFRpZW4gWHVhbiAoSG9hIEJpbmgpIG5hbSB0cm9uZyBxdWkgaG9hY2ggZHUgYW4gbmh1bmcg ZGVuIG5heSB2YW4gY2h1YSBiYW4gZ2lhbyBjaG8gZHUgYW4uLi4NClRoZSBuaHVuZywgInRyb25n IGtoaSBkYXQgTm9uZyB0cnVvbmcgMUEgZG8gRGFpIGhvYyBRdW9jIGdpYSBIYSBOb2kgcXVhbiBs eSB2YW4gY29uIG5odW5nIERhaSBob2MgbmF5IGxhaSB4aW4gdGhlbSBraG9hbmcgMjAwaGEgZGF0 IHRodW9jIHRpbmggSG9hIEJpbmggZGUgcXVpIGhvYWNoIGxhbSBraHUgbmhhIG8gY2hvIGNhbiBi bywgdmllbiBjaHVjIGN1YSBEYWkgaG9jIFF1b2MgZ2lhIEhhIE5vaSIgLSggQm8gWGF5IGR1bmcg YmFvIGNhbyB2b2kgVGh1IHR1b25nIENoaW5oIHBodS4gKQ0KVHJvbmcga2hpIHJhdCBuaGlldSBj byBxdWFuLCBkb24gdmkga2hhYyB0YWkgVGh1IGRvIHZhbiBuYW0gbmF5IHF1YSBuYW0ga2hhYyAi a2llbiB0cmkiIHhpbiBkdW9jIGdpYW8gZGF0IHhheSB0cnUgc28sIGNvIHNvIG5naGllbiBjdXUu Li4gbmh1bmcga2hvbmcgZGUgZHVvYyBnaWFpIHF1eWV0LCBkdSBjaGkgdmFpIHRyYW0gbWV0IHZ1 b25nIC0gdGhpIHZpZWMgY28gdHJvbmcgdGF5IGNhIGhhbmcgdHJhbSwgbmdhbiBoZWN0YSBuaHVu ZyBraG9uZyBwaGF0IGh1eSBoaWV1IHF1YSwgbGFpIGNvbiAidmF0IHZhIiB4aW4gdGhlbSAoa2Ug dHJlbikga2hpZW4gbmhpZXUgbmd1b2kgYmlldCBjaHV5ZW4gY2hpIGNvbiBudW9jLi4uIHRhYyBs dW9pISEhDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNi8wNy8zQjlF QkE2RS8gNi83LzIwMDYsIDA1OjI5IEdNVCs3DQoNCkhhIE5vaTogMjAsNSB0eSBkb25nIHNhaSBw aGFtIHRyb25nIHhheSBkdW5nIC0gUGhhbiBsb24gbmh1bmcgdGhhdCB0aG9hdCBsYSBkbyBxdXll dCB0b2FuIGtob25nLCBraG9uZyBsYW0gbmh1bmcgdmFuIHRoYW5oIHF1eWV0IHRvYW4gKC52LnYu KQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOS8wOS84NjczMzgvIENhcCBu aGF0IGx1YyAxODoxOSwgVGh1IEhhaSwgMDcvMDkvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogVGFj IGR1b25nIHZpIHhlIGJ1eXQgZGluaCBiYXkgInJhYyB0cm9pIg0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4veGFob2kvMjAwOS8wMS84MjE4MzUvIENhcCBuaGF0IGx1YyAxOTo0OSwgVGh1IFNh dSwgMDIvMDEvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogVGEgdG9pIHBobyBob2EgZ2l1YSBIYSBO b2kNCg0KaHR0cDovL3R1YW52aWV0bmFtLm5ldC92bi90aG9uZ3RpbmRhY2hpZXUvNjI2OS9pbmRl eC5hc3B4IDAzLzAzLzIwMDkgMTE6NDggKEdNVCArIDcpDQoNCkhhIE5vaTogMyAiZG9pIiBjaHUg dGljaCBUUCBjaHVhICJjdXUiIGR1b2MgMSBuaGEgbmd1eSBoaWVtIQ0KDQpUcm9uZyBraGkgY2h1 bmcgY3UgQzcgR2lhbmcgVm8gYmkgcXV5ZXQgbGlldCAiZGF5IiBkaSB0aGkgY2FjaCBkbyB2YWkg dHJhbSBtZXQsIGNodW5nIGN1IEI2IHZhbiAidW5nIGR1bmcgdHUgdGFpIiBjaG8gZHUgbXVjIGRv IGhpZW0gbmd1eSBjaGFuZyB0aHVhIGtlbSwgdGhhbSBjaGkgZGF1IGhpZXUgbmd1eSBoaWVtIG8g dG9hIG5oYSBuYXkgZHVvYyBwaGF0IGhpZW4gdHJ1b2MgZG8gcmF0IGxhdS4gDQoNCmh0dHA6Ly93 d3cua2hvYWhvYy5jb20udm4vZG9pc29uZy9tb2ktdHJ1b25nL3RoYW0taG9hLzEzNTA3X0hhLU5v aS1PLW5oaWVtLWtob25nLWtoaS1tdWEtZG9uZy1jYW8taG9uLW11YS1oZS5hc3B4IDEwaDE2JyAx Ni8wMy8yMDA3DQoNCkhhIE5vaTogTyBuaGllbSBraG9uZyBraGkgbmdoaWVtIHRyb25nIA0KDQpo dHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL1Rpbi1UdWMvSGEtTm9pLS1vLW5oaWVtLWtob25nLWto aS1vLW11Yy1iYW8tZG9uZy8xMjYyMCBUaHUgQmF5LCAxMS45LjIwMTAgfCAyMjo1NCAoR01UICsg NykgDQoNCkhhIE5vaSBvIG5oaWVtIGtob25nIGtoaSBvIG11YyBiYW8gZG9uZyANCg0KIChMRE8p ICCWIEhvaSB0aGFvIE8gbmhpZW0ga2hvbmcga2hpLCBiaWVuIGRvaSBraGkgaGF1IHZhIHRhYyBk b25nIHN1YyBraG9lIHRhaSBWaWV0IA0KTmFtIGRvIE1hbmcgbHVvaSBraG9uZyBraGkgc2FjaCBW aWV0IE5hbSBwaG9pIGhvcCB2b2kgY2FjIGRvbiB2aSB0byBjaHVjIG5nYXkgMTEvOSANCmRhIGR1 YSByYSBjYW5oIGJhbyB2ZSBvIG5oaWVtIG1vaSB0cnVvbmcgZGFjIGJpZXQgbGEgbyBuaGllbSBi dWkgdGFpIGNhYyBkbyB0aGkuDQoNClRhaSAgSGEgTm9pLCBUUCBIbyBDaGkgTWluaCBvIG5oaWVt IGtob25nIGtoaSwgY2hhdCB0aGFpIHJhbiwgbnVvYyB0aGFpIGRhIHRvaSBtdWMgZGFuZyBiYW8g ZG9uZy4NCg0KVGhlbyBTbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcgSGEgTm9pLCBraG9uZyBr aGkgbyBoYXUgaGV0IGNhYyBraHUgdnVjIGRhbiBjdSBub2kgDQpkbyBkZXUgYmkgbyBuaGllbS4g RGFjIGJpZXQsIGNhYyBraHUgdnVjIG5odSBkdW9uZyBLaHVhdCBEdXkgVGllbiwgUXVvYyBsbyAz MiwgZHVvbmcgDQpOZ3V5ZW4gVHJhaS4uLiBvIG5oaWVtIGJ1aSBkYW5nIG8gbXVjIGNhbyBuaGF0 IEhhIE5vaSB2YSB4dSBodW9uZyBuZ2F5IGNhbmcgZ2lhIHRhbmcuDQoNCkNhYyBraHUgdnVjIG5n YSB0dSBjbyBtYXQgZG8geGUgbHV1IHRob25nIGNhbywgbm9uZyBkbyBidWkgY3VuZyB2dW90IHF1 eSBjaHVhbiBjaG8gDQpwaGVwLiBLZXQgcXVhIHF1YW4gdHJhYyBidWkgZ2lhbyB0aG9uZyBjaG8g dGhheSB0YWkgMjUwIGRpZW0gZG8ga2llbSwgY28gMTgwIGRpZW0gY28gDQpoYW0gbHVvbmcgYnVp IGxvIGx1bmcgdnVvdCBxdXkgY2h1YW4uDQoNCk5vbmcgZG8gYnVpIHRhaSBUUCBIbyBDaGkgTWlu aCBjdW5nIGNvIHh1IGh1b25nIG5nYXkgY2FuZyBnaWEgdGFuZyB2YSB2dW90IHR1IDEsMDggliAN CjEsNTUgbGFuIHNvIHZvaSB0aWV1IGNodWFuIGNobyBwaGVwLiBPIG5oaWVtIGtob25nIGtoaSB0 YWkgS2h1IGNvbmcgbmdoaWVwIGNoaWVtIDQwJSANCm5ndXllbiBuaGFuIGdheSBvIG5oaWVtIG1v aSB0cnVvbmcuIEhpZW4gIDUgdGluaCBsYSBUUC4gSGEgTm9pLCBUUC4gSG8gQ2hpIE1pbmgsIA0K QmluaCBEdW9uZywgRG9uZyBOYWksIEhhaSBQaG9uZyBjaGl1IGFuaCBodW9uZyBuYW5nIG5lIG5o YXQgY3VhIG8gbmhpZW0ga2hvbmcga2hpIA0KZG8gY2FjIGhvYXQgZG9uZyBjb25nIG5naGllcC4N Cg0KaHR0cDovL3d3dy5raG9haG9jLmNvbS52bi9kb2lzb25nL21vaS10cnVvbmcvdGhhbS1ob2Ev MTMzNjBfSGEtTm9pLUJ1aS1sby1sdW5nLWNhby1nYXAtMi01LWxhbi1tdWMtY2hvLXBoZXAuYXNw eCAwOGgzOCcgMTEvMDMvMjAwNyBUaGVvIFRUWFZODQoNCkhhIE5vaTogQnVpIGxvIGx1bmcgY2Fv IGdhcCAyLDUgbGFuIG11YyBjaG8gcGhlcCANCg0KTXVjIGRvIG8gbmhpZW0gYm9pIGJ1aSBsbyBs dW5nIGNodW5nIGNobyBjYSBoYWkgbXVhIG8gSGEgTm9pIGNhbyBob24gdGlldSBjaHVhbiBjaG8g DQpwaGVwIGxhIDIsNSBsYW4uIE5vbmcgZG8gYnVpIG1pbiBjaGllbSB0aSBsZSBjYW8gbGEgNjMl LiBUaHVjIHRyYW5nIG5heSBkYSBrZW8gdGhlbyBtb3QgDQpzbyBiZW5oIGxpZW4gcXVhbiBkZW4g ZHVvbmcgaG8gaGFwIHRhbmcgY2FvLiANCg0KQ29uIHNvIHRyZW4gdnVhIGR1b2MgY29uZyBibyBz YW5nIG5heSB0YWkgbW90IGhvaSB0aGFvIG8gSGEgTm9pLiBIb2kgdGhhbyBjbyBjaHUgZGUgDQoi R29jIG5oaW4gYmFvIGNoaSB2ZSBjaGF0IGx1b25nIGtob25nIGtoaSBIYSBOb2kiIGRvIGNodW9u ZyB0cmluaCBraG9uZyBraGkgc2FjaCANCiJWaWV0IE5hbS0gVGh1eSBTaSIgKFNWQ0FUKSBwaG9p IGhvcCB2b2kgQ3VjIEJhbyB2ZSBtb2kgdHJ1b25nICggQm8gVGFpIG5ndXllbiANCk1vaSB0cnVv bmcpIHRvIGNodWMuIA0KDQpUaGVvIGtoYW8gc2F0IGN1YSBkdSBhbiwgdHJvbmcgbmhvbW5odW5n IG5ndW9pIGNvIHRob2kgZ2lhbiBzb25nIG8gSGEgTm9pIHRyZW4gMTAgbmFtIA0KY28gdGkgbGUg bWFjIGJlbmggbWFuIHRpbmggdmUgdGFpIG11aSBob25nIGxhIDI0LDUgJTsgZHVvaSAzIG5hbSBs YSAxMi41JS4NCg0KVGhlbyBjYWMgY2h1eWVuIGdpYSwgbW90IHRyb25nIG5odW5nIG5ndXllbiBu aGFuIGNvIGJhbiBkYW4gZGVuIHRpbmggdHJhbmcgbyBuaGllbSANCm1vaSB0cnVvbmcgbGEgc3Ug Ym8gdHJpIGNvbmcgbmdoaWVwIGNodWEgaG9wIGx5LiBOZ29haSByYSwgaGUgdGhvbmcgZ2lhbyB0 aG9uZyBkbyB0aGkgDQprZW0sIHN1IGdpYSB0YW5nIGNhYyBwaHVvbmcgdGllbiB2YSBjaGF0IGx1 b25nIGN1YSBjYWMgcGh1b25nIHRpZW4gdGhhbSBnaWEgZ2lhbyANCnRob25nLi4uIGN1bmcgbGEg bmh1bmcgdGFjIG5oYW4gZ2F5IHJhIG8gbmhpZW0gbW9pIHRydW9uZyBIYSBOb2kuDQoNCmh0dHA6 Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5MTAvTHVhLWNoYXktbmd1dC10cm9pLXRhaS14 dW9uZy1zb24tdmEtaG9hLWNoYXQtODcyMDU3LyAwNS8xMC8yMDA5IChHTVQrNykNCg0KSGEgTm9p OiBOaGlldSBjb25nIHR5IGhpZW4gbmF5IGNodWEgZGFtIGJhbyBkdSBkaWV1IGtpZW4gdmUgYW4g dG9hbiBwaG9uZyBjaGF5IGNodWEgY2hheSANCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8v Q2hheS14dW9uZy1naWF5LXRoaWV0LWhhaS1oYW5nLWNodWMtdGktZG9uZy8xNDEvNTU1Mjk1My5l cGkgMTQtMS0yMDExIA0KDQpIYSBOb2k6IENoYXkgeHVvbmcgZ2lheSwgdGhpZXQgaGFpIGhhbmcg Y2h1YyB0aSBkb25nICANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkxMC9M dWEtY2hheS1uZ3V0LXRyb2ktdGFpLXh1b25nLXNvbi12YS1ob2EtY2hhdC04NzIwNTcvIDA1LzEw LzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IENoYXkgbG9uIHRoaWV1IHJ1aSB4dW9uZyBob2EgY2hh dCByb25nIDNoYSAgDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9Ib21lL0tpbmhUZS93d3cua3Rk dC5jb20udm4vQmFuLWdpYW8tMi1jaG8tZGF1LW1vaS1EZW4tTHUtdmEtSGFpLUJvaS12ZS1UQ3R5 LVRodW9uZy1tYWktSGEtTm9pLzEyODE3ODkuZXBpIDAyLzAxLzIwMDgNCg0KSGEgTm9pOiBDaG8g SGFpIEJvaSAoRG9uZyBBbmggLSBIYSBOb2kpIGhvYXQgZG9uZyBoaWV1IHF1YSB0aGFwIHZhIGto b25nIGRhdCBtdWMgZGljaCwgDQpuYW0gMjAwNSwgVFAgZGEgZ2lhbyBjaG8gVEN0eSBEZXQgTWF5 IFZpZXQgTmFtIGRhdSB0dSwgeGF5IGR1bmcgY2h1eWVuIGNobyBuYXkgdGhhbmggDQpUcnVuZyB0 YW0gYmFuIGJ1b24gcGh1IGtpZW4gbWF5IG1hYywgbmh1bmcga2hvbmcgdGh1YyBoaWVuIGR1b2Mg dmkga2hvbmcgeGF5IGR1bmcgZHVvYyANCm5oYSBjYW8gdGFuZyBkbyB2dW9uZyBoYW5oIGxhbmcg YW4gdG9hbiBkdW9uZyBzYXQuIA0KDQpUdSBuZ2F5IDEvMS8yMDA4IGNobyBIYWkgQm9pIGxhaSBk dW9jIGdpYW8gY2hvIFRDdHkgVGh1b25nIG1haSBIYSBOb2kgcXVhbiBseS4NCg0KaHR0cDovL3Rp bnR1Yy50aW1uaGFuaC5jb20veGEtaG9pLzIwMDkwMzEwLzM1QTkwQ0FFL0hhLU5vaS1LaGFwLW5v aS10aGFuaC1uaGEtdmUtc2luaC1jb25nLWNvbmcuaHRtDQoNCkhhIE5vaTogcmF0IG5oaWV1IGRp YSBkaWVtIGNvbmcgY29uZyBiaSBjb2kgbmh1IG5oYSB2ZSBzaW5oLCBkbyBsYSBvIGNhYyBjaGFu IGNhdSwgDQpjYWMgZ29jIGtodWF0IHRyZW4gcGhvLiBUaGFtIGNoaSBjYSBnb2MgcGhvIFRyYW4g SHVuZyBEYW8gLSBEYSBUdW9uZyBub2kgZG9uZyBuZ3VvaSANCnF1YSBsYWkgdmFuIGJpIGJpZW4g dGhhbmggbm9pICJ0cnV0IG5vaSBidW9uIiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kv MjAxMDAyLzI4LVRldC1jb25nLW5oYW4tbmhpbi1kb2ktc29pLXN1bmctc3VjLWRpLWRvaS1uby04 OTQyNzcvIDE4OjI4LCAxMS8wMi8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiAyOCBUZXQsIGNvbmcg bmhhbiBuaGluIGRvaSwgc29pIHN1bmcgc3VjIGRpIGRvaSBubyB0aWVuIGx1b25nIC0gY29uZyB0 cmluaCB0cnUgc28gbGFtIHZpZWMgVGhhbmggdXkgliBIRE5EIJYgVUJORCBxdWFuIEhhIERvbmcs IFRQIEhhIE5vaQ0KDQpodHRwOi8vd3d3LnBoYXBsdWF0dm4udm4vcGhhcGRpbmgvMjAxMDEwL01v dC14YWMtY2hldC1uYW0tbm9pLXRyZW4taG8tSG9hbmctQ2F1LTIwMDY0NTcvIDEwOjM0IDAyLzEw LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEtpbmggaG9hbmcgbW90IHhhYyBjaGV0IG5vaSB0cmVu IG1hdCBobyBIb2FuZyBDYXUgDQoNCmh0dHA6Ly93d3cuZ2lhY25nby52bi9jaHVkZS9odW9uZ3Zl MTAwMG5hbXRoYW5nbG9uZ2hhbm9pLzIwMDkvMTEvMTQvN0Y1NjQ5LyAxNC8xMS8yMDA5IDExOjQy IChHTVQrNykNCg0KTm9pIGJ1b24gZHUgYW4gbmdoaW4gbmFtLi4uIC0gUGhpbSBUaGFpIHRvIEx5 IENvbmcgVWFuDQoNCkNvIG5ndW9pIHRvIHJhIHNhdSBzYWMgaG9uIHRoaSBwaGFuIHRpY2g6IGto b25nIG5oYXQgdGhpZXQgcGhhaSB0dW9uZyBuaG8gQ3UgTHkgYmFuZyANCm1vdCBibyBwaGltIHZl IEN1LCBuaGF0IGxhIGtoaSBibyBwaGltIGtoaWVuIEN1IGNoYW5nIHZ1aSBnaSBtYSBkYXUgbG9u ZyB2aSBiaSBkYW0gY29uIGNoYXUgZ2lhbmcgeGUuDQoNCmh0dHA6Ly93aWtpbWFwaWEub3JnLzQ0 MjYyMjcvdmkvVCVDMyVCMmEtbmglQzMlQTAtSCVDMyVBMG0tYyVDMyVBMS1tJUUxJUJBJUFEcA0K DQpIYSBOb2k6IFRvYSBuaGEgIkhhbSBjYSBtYXAiIC0gTW90IG5vaSBjbyBraWVuIHRydWMgeGF1 IG5oYXQgSGEgTm9pDQoNCkNvbmcgdHJpbmggbmF5IGxhIHN1ICJrZXQgaG9wIHNhaSBnaWF5IHBo ZXAgKE5oYSB4ZSBkaWVuIGN1KSB2YSBraG9uZyBnaWF5IHBoZXAgKEJhY2ggaG9hIEJvIEhvKSIN ClRodSB0dW9uZyBDaGluaCBwaHUgZGEgcmEgdGhvbmcgYmFvIHNvIDY0L1RCIG5nYXkgMTkvOC8x OTk2OiAiWWV1IGNhdSBVQk5EIFRQIEhhIE5vaSANCnh1IGx5IG5naGllbSBraGFjIGRvaSB2b2kg Y2h1IGRhdSB0dSBjb25nIHRyaW5oIG5heSwgdGhpZXQgbGFwIGxhaSBreSBjdW9uZyBxdWFuIGx5 ICANCnhheSBkdW5nIHRoYW5oIHBobywgYnVvYyBjaHUgZGF1IHR1IHBoYWkgc3VhIGtpZW4gdHJ1 YyBjb25nIHRyaW5oICh2ZSBoaW5oIGtob2kgdmEgDQpjaGlldSBjYW8gY2hvIHBodSBob3AgY2Fu aCBxdWFuIGNodW5nKS4gWHUgbHkgaGFuaCBjaGluaCBob2FjIHRydXkgdG8gdHJ1b2MgcGhhcCBs dWF0IA0KbmV1IHRoYXkgY2FuIHRoaWV0IGRlIGRlIGNhbyBreSBjdW9uZyB0cmF0IHR1Ii4NClRo ZSByb2kgaGFpIG5hbSAgc2F1LCBubyB2YW4gbmdhbmcgbmhpZW4gbmhlIHJhbmcgbmFtIGRvIGto b25nIGhlIGhhbiBnaSEgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5LzA5 Lzg2NzEzMS8gMTE6MDYsIDA2LzA5LzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IFNvIGRvIHZhbiB0 cm9uZyB0YXkgNDcgaG8sIGNoaW5oIHF1eWVuIGJhbyBkYSB0aHUNCg0KIlNvIGRvIHZhbiBvIHRy b25nIHRheSBjYWMgaG8gZGFuLCBuaHVuZyBjaGluaCBxdXllbiBsYWkgbm9pIGxhIGRhIGNvIHF1 eWV0IGRpbmggdGh1IGhvaSBzbyBkbyBsYXUgcm9pPyBCYSBjb24gdGUgbmd1YSwgdmkga2hvbmcg YWkgYmlldCBjaHV5ZW4gbmF5ISIuIA0KDQpodHRwOi8vd3d3LnRkbmdvbmx1YW4uY29tL2RpZW5k YW4vZGRfZ2lhdW5odXBodS5odG0gVGllbiBUaGFuaCAodHUgSGEgTm9pKQ0KDQooVGhvaSBnaWFu IHNhdCBEYWkgaG9pIFggMjAwNikgRGFuIEhhIE5vaSByYXQgc2FuaCB2YSB0aGluaC4gU2FuaCBh biwgc2FuaCBvLCBzYW5oIHRpbi4gDQpEdW9jIHRpbiBuZ2FpIHR5IHBodSBQaHVuZyBIdXUgUGh1 IGNvIHRoZSB2YW8gJyduaGEgZG8nJywgdGhlIGxhIGdvYyBjYXkgbGlldSB4ZSBuaGEgDQpUaHV5 IFRhIGJlbiBobyBIb2FuIGtpZW0gY28gbmdheSBhcCBwaGljaCBsb246ICcnR2lhdSBuaHUgUGh1 IC0gTHUgbmh1IFRyb25nIC0gTGF0IGxvbmcgDQpuaHUgTmdoaWVuIC0gVGlldSB0aWVuIG5odSBU cmlldScnIA0KDQpQaHVuZyBIdXUgUGh1LCBOZ3V5ZW4gUGh1IFRyb25nLCBIb2FuZyBWYW4gTmdo aWVuLCBOZ3V5ZW4gUXVvYyBUcmlldSBsYSBibyB0dTogDQpjaHUgdGljaCwgYmkgdGh1LCBwaG8g Y2h1IHRpY2ggdmEgcGhvIGJpIHRodSBjdWEgSGEgTm9pIHRob2kgZG9pIG1vaSwgY2FjIGN1IA0K bGFvIHRoYW5oIENhdSBsYWMgYm8gVGhhbmcgbG9uZyBnb2kgbGEgdGhvaSAnJ2RvIGRvbicnLCB0 aG9pIC4uLiAnJ0QuTS4nJyEgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0 L1RoYXQtdGhvYXQtdHJvbmcteGF5LWR1bmctY28tYmFuLUFpLWNoaXUtdHJhY2gtbmhpZW0vNzAw MzM5MzMvMjE4LyBDaHUgbmhhdCwgMTggVGhhbmcgbXVvaSBoYWkgMjAwNSwgMTQ6NTEgR01UKzcN Cg0KSGEgTm9pOiBMYW5nIHBoaSwgdGhhdCB0aG9hdCB0cm9uZyB4YXkgZHVuZyBjbyBiYW4gDQoN CkxhbmcgcGhpIHRyb25nIGtoYXUgcXV5ZXQgZGluaCBkYXUgdHUgdGh1b25nIGJhdCBuZ3VvbiB0 dSB2aWVjIHhhYyBkaW5oIG11YyB0aWV1IA0KZGF1IHR1IGR1IGFuIGRvIGtob25nIGR1b2MgY2h1 IGRhdSB0dSBjYW4gbmhhYywgdGluaCB0b2FuIHRydW9jIGtoaSB4YXkgZHVuZyBuZW4gDQpraGkg Y29uZyB0cmluaCBob2FuIHRoYW5oIGR1YSB2YW8gc3UgZHVuZyBjaHUgZGF1IHR1IG1vaSBuaGFu IHRoYXkgY29uZyB0cmluaCBraG9uZyANCnBoYXQgaHV5IGhpZXUgcXVhLiBWaSBkdTogdGFpIG1v dCBzbyBkaWEgcGh1b25nIGRhIGRhdSB0dSBoYW5nIHRyYW0gdGkgZG9uZyBkZSBjYWkgDQp0aGll biB2YSB4YXkgbW9pIG1vdCBsb2F0IGNobyBuaHUgY2hvIGRhdSBtb2kgWHVhbiBEaW5oIChIYSBO b2kpLCBjaG8geGUgbWF5IFF1YW5nIA0KQW4gKFRheSBIbyAtIEhhIE5vaSkgZGF1IHR1IGhvbiA2 IHRpIGRvbmcsIGNobyBkYXUgbW9pIEhhaSBCb2kgKERvbmcgQW5oKSBkYXUgdHUgMTMgdGkgZG9u Zy4uLiANCg0KaHR0cDovL2luZm9sYW5kLmNvbS52bi90aW4tdHVjL3Rpbi10dWMtc3Uta2llbi90 aW4tdHVjLXN1LWtpZW4tMzUvMjAxMC8wOC9oYS1ub2ktaGFuZy1sb2F0LXNhaS1waGFtLXZlLWRh dC1kYWktZHVvYy0lRTIlODAlOUNwaGFuIFRydWMgTGluaCAodG9uZyBob3ApIDE1OjA2JzE3LzA4 LzIwMTANCg0KSGEgTm9pOiBIYW5nIGxvYXQgc2FpIHBoYW0gdmUgZGF0IGRhaSBiaSAicGhhbmgg cGh1aSINCg0KU2F1IG5oaWV1IHRoYW5nIHRodWMgaGllbiB0aGFuaCBraWVtIHRyYSBjYWMga2h1 IGRvIHRoaSBtb2kgSGEgTm9pLCBtb2kgZGF5LCBUaGFuaCB0cmEgDQpjaGluaCBwaHUgZGEgZHVh IHJhIGhhbmcgbG9hdCBuaHVuZyBzYWkgcGhhbXBobyBiaWVuIGR1b2MgcGhhdCBoaWVuIG5odSB2 aSBwaGFtIHF1eSANCmhvYWNoLCBsYXAgZHUgYW4gZGUgZ2l1IGRhdCwgcGhvdCBsbyBjYWMgcXV5 IGNodWFuIHhheSBkdW5nLCB0dXkgdGllbiBjYXkgdGhlbSBiaWV0IHRodSwgDQpjYW4gaG8uLi4N CiANCihBbmg6IEhhbmcgbG9hdCBzYWkgcGhhbSBwaG8gYmllbiBkYW5nIGRpZW4gcmEgdGFpIGNh YyBraHUgZG8gdGhpIG1vaSBIYSBOb2kpIA0KIA0KRGllbiBoaW5oIGxhIHZpZWMgcGhhIHZvIHF1 eSBob2FjaCwgc3UgZHVuZyBkYXQgc2FpIG11YyBkaWNoIHRhaSBkdSBhbiBuaGEgbyBUYXkgTmFt IA0KTWUgVHJpLCBkaWVuIHRpY2ggNTcuNDA1IG0yIGRhdCBkbyBDb25nIHR5IFhheSBsYXAgVGh1 b25nIG1haSBsYW0gY2h1IGRhdSB0dTsgZHUgYW4gDQpjb25nIHRyaW5oIGRpY2ggdnUgdGh1b25n IG1haSBkbyBDb25nIHR5IENvIHBoYW4gYmF0IGRvbmcgc2FuIERpZW4gbHVjIERhdSBraGkgVmll dCANCk5hbSBsYW0gY2h1IGRhdSB0dTsgZHUgYW4gdG8gaG9wIGtoYWNoIHNhbiA1IHNhbyAtIHZh biBwaG9uZyBjaG8gdGh1ZSAyNTAuMDAwIG0yIGRhdCANCmRvIFRhcCBkb2FuIERhdSBraGkgVk4g bGFtIGNodSBkYXUgdHUuICBUaGVvIHF1eSBob2FjaCBjaGkgdGlldCB0eSBsZSAxLzIuMDAwLCBj YWMgbyBkYXQgDQpuZXUgdHJlbiBkdW9jIHF1eSBob2FjaCBsYSBobyBjaHVhIG51b2MsIGNheSB4 YW5oLCBjb25nIHZpZW4uDQogDQpEb2kgdm9pIGR1IGFuIHhheSBkdW5nIGtoYWNoIHNhbi12YW4g cGhvbmcsIDEuNDY1IG0yIGRhdCBkbyBDb25nIHR5IENvIHBoYW4gU29uZyANCkhvbmcgbGFtIGNo dSBkYXUgdHUsIHF1eSBob2FjaCB0eSBsZSAxLzUuMDAwIGN1YSBodXllbiBUdSBMaWVtIGNobyB0 aGF5IGtodSBkYXQgbmF5IA0KZHVvYyBxdXkgaG9hY2ggbGEgZGF0IG8uDQoNCk5nb2FpIHJhLCB0 aW5oIHRyYW5nIG5hbmcgdGFuZywgeGUgZGF0IGRlIGJhbiBiaWV0IHRodSBkYSBwaGEgdm8gcXV5 IGNodWFuIHhheSBkdW5nIGdheSANCmFwIGx1YyBoYSB0YW5nIGNodW5nIHRvYW4ga2h1IHZ1YyBu aHUgZHUgYW4ga2h1IGRvIHRoaSBtb2kgTXkgRGluaCAtIE1lIFRyaSwgdGhlbyBxdXkgDQpob2Fj aCBjaGkgdGlldCB0eSBsZSAxLzIuMDAwLCBkYXQgeGF5IGR1bmcgbmhhIGNhbyB0YW5nIGdvbSA3 IG8sIG5odW5nIGtoaSBxdXkgaG9hY2ggY2hpIA0KdGlldCAxLzUwMCB0aGkgZGF0IHhheSBuaGEg Y2FvIHRhbmcgZGEgdGFuZyB0aGVtIHRoYW5oIDkgbywgbGFtIGNobyBkaWVuIHRpY2ggZGF0IHhh eSBkdW5nIA0KdGFuZyB0aGVtIDUuMDcxbTIsIGRpZW4gdGljaCBzYW4gdGFuZyB0aGVtIDU2LjM5 NW0yLg0KDQpLaWVtIHRyYSBkdSBhbiBraHUgbmhhIG8gZGUgYmFuIChkaWVuIHRpY2ggOS41MDMg bTIgZGF0KSB0YWkgeGEgTXkgRGluaCBkbyBjb25nIHR5IENQIA0KS2luaCBkb2FuaCBQaGF0IHRy aWVuIE5oYSB2YSBEbyB0aGkgSGEgTm9pIGxhbSBjaHUgZGF1IHR1LCBjaG8gdGhheTogVGhlbyBx dXkgaG9hY2gsIA0KZGF5IHNlIGxhIG5odW5nIGtodSBjaHVuZyBjdSA1IHRhbmcgdmEgNiB0YW5n IG5odW5nIG5heSBkYSBiaSBiaWVuIHRoYW5oIDEyIGxvIG5oYSBsaWVuIA0Ka2UuDQoNClRhaSBk dSBhbiBraHUgbmhhIG8gZGUgYmFuIHRhaSB4YSBNZSBUcmkgKGRpZW4gdGljaCA3NS43NjEgbTIp IGRhdCBkbyBDb25nIHR5IFhheSBkdW5nIA0KTm9uZyBuZ2hpZXAgJiBQaGF0IHRyaWVuIE5vbmcg dGhvbiB0aHVjIGhpZW4sIGNodSBkYXUgdHUgZGEgYmllbiB0YW5nIGt5IHRodWF0IGFwIG1haSAN CnRoYW5oIG5oYSBvIHR1b25nIGR1b25nIHZvaSAxLjkwMCBtMiBzYW4geGF5IGR1bmcuDQoNClRy b25nIGtoaSBkbywgdGFpIGR1IGFuIHhheSBkdW5nIG5oYSBvIGRlIGJhbiB0YWkgeGEgTXkgRGlu aCBkaWVuIHRpY2ggNTAuMTEybTIgZG8gDQpDb25nIHR5IENQIGRhdSB0dSB4YXkgZHVuZyBCYSBE aW5oIGxhbSBjaHUgZGF1IHR1LCB0b2EgdGhhcCBjYW8gdGFuZyBkYSBiaSB0aGkgY29uZyBjYW8g DQpob24gc28gdm9pIGdpYXkgcGhlcCB4YXkgZHVuZyA3LDUybTsgbmhhIHZ1b24gY2FvIDMgdGFu ZyB0aGkgYmkgYmllbiB0aGFuaCA0IHRhbmcuLi4NCg0KS2hvbmcgY2hpIHZheSwgY2FjIGNodSBk YXUgdHUgY29uIGNodXllbiBuaHVvbmcgZGF0IHRyYWkgcGhlcCBuaHUgRHUgYW4ga2h1IGRvIHRo aSANCm1vaSBNeSBEaW5oIC0gTWUgVHJpIGR1b2MgZ2lhbyBjaG8gVG9uZyBDb25nIHR5IFNvbmcg RGEgdmEgZG9hbmggbmdoaWVwIG5heSBkYSANCmdpYW8gY2hvIGRvbiB2aSB0aGFuaCB2aWVuIGxh IENvbmcgdHkgRGF1IHR1IFBoYXQgdHJpZW4gRG8gdGhpIHZhIEtodSBjb25nIG5naGllcCBTb25n IA0KRGEgKFN1ZGljbykgdHJ1YyB0aWVwIHF1YW4gbHkgdGh1YyBoaWVuIHZhIGtpbmggZG9hbmgu DQoNClR1eSBuaGllbiwgcXVhIHRyaW5oIHRodWMgaGllbiBkdSBhbiwgU3VkaWNvIGRhIGt5IGhv cCBkb25nIGhvcCB0YWMgZGF1IHR1IHZvaSBDb25nIHR5IA0KQml0ZXhjbyBkZSBjdW5nIGdvcCB2 b24gZGF1IHR1IHZhIHBoYW4gY2hpYSBzYW4gcGhhbSAobGEgZGF0IGRhaSksIGtlIGNhIGRhdCB4 YXkgZHVuZyANCmNvbmcgdHJpbmggaG9uIGhvcCB2YSBkYXQgY29uZyBjb25nIG5odW5nIGNodWEg ZHVvYyBzdSBjaGFwIHRodWFuIGN1YSBVQk5EIHRoYW5oIA0KcGhvIEhhIE5vaS4gRGF5IGN1bmcg bGEgbW90IG5ndXllbiBuaGFuIGRhbiBkZW4gaGFuZyB0cmFtIGNhbiBobyBUaGUgTWFub3IgdmFu IA0KY2h1YSBiaWV0IGRlbiBiYW8gZ2lvIG1vaSBkdW9jIGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5 ZW4gc28gaHV1IG5oYSBvLiANCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vdGhvaS1zdS81MTAx NTYvc2FpLXBoYW0tZGF0LWRhaS1vLWhvYWktZHVjLS1xdWFuLXhhLWRpLXRydW9jLmh0bWwgTmd1 eWVuIFR1YW4gMDc6MjAgMTkvMDgvMjAxMCANCg0KSGEgTm9pOiBTYWkgcGhhbSBkYXQgZGFpIG5n aGllbSB0cm9uZyBvIEhvYWkgRHVjIC0gUXVhbiB4YSBkaSB0cnVvYy4uLg0KDQpUUCAtIFF1YW4g eGEgbGFtIHRyYWkgcGhhcCBsdWF0IGRhdCBkYWkga2hpZW4gbmhpZXUgaG8gZGFuIGR1YSB0aGVv IGJpZW4gaGFuZyBjaHVjIGhlYyB0YSBkYXQgbm9uZyBuZ2hpZXAsIGRhdCBjb25nIHZhIGNhIGRh dCBkZSB0aGFuaCBuaGEga2llbiBjbyB2YSBiaWV0IHRodS4NCg0KKEFuaDogTmdvaSBuaGEgbmF5 IHZ1YSBtb2MgbGVuIHRhaSBEb2MgVGh1b25nIEtodSBkYXQgbm9uZyBuZ2hpZXAgdGh1b2MgcXV5 IGRhdCBDb25nIGN1YSB4YSBTb25nIFBodW9uZyAuIEFuaDogSC5QKSANCg0KVnUgdmllYyB4YXkg cmEgbyB4YSBTb25nIFBodW9uZyAoSG9haSBEdWMsIEhhIE5vaSkuIERpZW4gaGluaCBsYSB2dSBi YW4gZGF0IG5vbmcgDQpuZ2hpZXAgdHJhaSBwaGVwIHZ1bmcgRG9jIFRodW9uZyBjaG8gMTggaG8g ZGFuIHZvaSBkaWVuIHRpY2ggZ2FuIDQuMDAwIG0yIHRodW9jIHF1eSANCmRhdCBkbyB0YXAgdGhl IHF1YW4gbHkuDQoNCk1vdCB0cm9uZyBuaHVuZyBuZ3VvaSBwaGF0IGhpZW4sIHRvIGNhbyB2dSB2 aWVjIGxhIG9uZyBWdW9uZyBUaGUgRG8gKHRob24gUGh1b25nIA0KQmFuKSwgY2hvIGJpZXQ6ICJE aWVuIHRpY2ggZGF0IG5vbmcgbmdoaWVwIGJhbiBjaG8gbmh1bmcgaG8gZGFuIG5heSBkYSBiaSB4 YXkgZHVuZyB0cmFpIA0KcGhlcCwgbmhpZXUgaG8gbGFtIG5oYSBraWVuIGNvIHRyb25nIGRvIGNv IGNhIG1vdCBuZ29pIG5oYSBkbyBzbyAzIHRhbmcga2lldSBiaWV0IHRodSANCmN1YSBtb3QgY2Fu IGJvIGh1eWVuIEhvYWkgRHVjIi4NCg0KVGhlbyBvbmcgRG8sIHRyb25nIHNvIG5odW5nIG5ndW9p IGR1b2MgbXVhIGRhdCBvIERvYyBUaHVvbmcgY28gY2EgQ2h1IG5oaWVtIHZhIA0Kbmd1eWVuIENo dSBuaGllbSBIVFggUGh1b25nIFZpZW4gdmEgQ2h1IHRpY2ggeGEgTHV1IERpbmggVGFtLiANCg0K TGFtIHZpZWMgdm9pIFRpZW4gUGhvbmcsIG9uZyBMdXUgRGluaCBUYW0gdGh1YSBuaGFuIG5ndW9u IGdvYyBkYXQgdGFpIERvYyBUaHVvbmcgDQpsYSBkYXQgbm9uZyBuZ2hpZXAgKHRodW9jIHF1eSBk YXQgY29uZykuIFRoZSBuaHVuZywgb25nIFRhbSBjaG8gcmFuZyB4YSBraG9uZyAiYmFuIiANCmRh dCBtYSBjaGkgY28gY2h1IHRydW9uZyBkYXUgdGhhdSBjaG8gdGh1ZSBkYXQgMTIwbTIvIG1vaSBo bywgdGhvaSBoYW4gMTAgbmFtLiANClZpZWMgY2hvIHRodWUgMTAgbmFtIGxhIHNhaSwgbmh1bmcg ZGF5IGxhIGNodSB0cnVvbmcgY3VhIHRhcCB0aGUgVXkgYmFuIHhhLCB2YSBjdW5nIGxhIHZpIA0K cXV5ZW4gbG9pIG5ndW9pIGRhbiBjaHUga2hvbmcgY28gYWkgdHUgbG9pIGdpLiANCg0KVHJvbmcg bHVjIG9uZyBUYW0gZGFuIGNodW5nIHRvaSBtdWMgc28gdGhpIG5nb2kgbmhhIDMgdGFuZyBkbyBz byBtb2MgZ2l1YSBraHUgcnVvbmcgDQpEb2MgVGh1b25nLCBtb3Qgbmd1b2kgZGFuIGRhIGNoaSBj aG8gY2h1bmcgdG9pIG1vdCBsbyBkYXQgY3VhIGNoaW5oIG9uZyBUYW0gbmFtIA0KbmdheSBjYW5o IG5nb2kgbmhhIGRvLiANCg0KVGhheSBxdWFuIGNodWMgbGFtIGR1b2MsIGhhbmcgY2h1YyBobyBr aGFjIGN1bmcgZHVhIG5oYXUgeGF5IGR1bmcgY29uZyB0cmluaCwgbmhhIA0KeHVvbmcgdHJlbiBk YXQgbm9uZyBuZ2hpZXAsIGdhbiBrZSB0cnUgc28geGEgbWEga2hvbmcgYmkgeHUgbHkuIFRyb25n IGRvLCBkaWVuIGhpbmggbGEgDQpobyBvbmcgVHJhbiBWYW4gVGhhbmgsIE5ndXllbiBIdXUgSGF5 IChuZ3V5ZW4gQ2h1IG5oaWVtIEhUWCBQaHVvbmcgVmllbiAtIGhpZW4gDQpsYSBjYW4gYm8gZGlh IGNoaW5oIHhhKSwgTmd1eWVuIENoaSBDaGFtIChUcnVvbmcgdGhvbiBQaHVvbmcgVmllbikgZHVv YyB4YSB1dSBhaSANCmNobyB0aHVlIHRvbmcgY29uZyBob24gMTUuMDAwIG0yIGRhdCBkYSB4YXkg ZHVuZyBuaGlldSBjb25nIHRyaW5oIHRyYWkgcGhlcCwgaG9hYyBraW5oIA0KZG9hbmggZGljaCB2 dSB0cmVuIGRvIG1hIGtob25nIGJpIHh1IGx5LiBQaGFpIGRlbiBraGkgVGhhbmggdHJhIGh1eWVu IEhvYWkgRHVjIHZhbyANCmN1b2MsIHN1IHZpZWMgbW9pIHZvIGxvLiANCg0KQ2hhbmggVGhhbmgg dHJhIGh1eWVuIEhvYWkgRHVjIE5ndXllbiBYdWFuIEx5IGNobyByYW5nLCB2aSBwaGFtIHZlIGRh dCBkYWksIHRyYXQgdHUgDQp4YXkgZHVuZyB0YWkgU29uZyBQaHVvbmcgbGEgbmdoaWVtIHRyb25n LCB4YXkgcmEgbmhpZXUgbmFtIG5heS4gVmllYyBkYW4gdG8gY2FvIG9uZyANCkx1dSBEaW5oIFRh bSBjaG8gYmFuIGRhdCB2dW5nIERvYyBUaHVvbmcgbGEgY28gY2FuIGN1IHZhIHhhIGRhIHRodSB0 aWVuIHRoYXUgZGF0IG1vdCANCmxhbiBuZ2F5IHRhaSB0aG9pIGRpZW0gZG8gbGEgdHJhaSBxdXkg ZGluaCBMdWF0IERhdCBkYWkuIA0KDQpUcmEgbG9pIFRpZW4gUGhvbmcgdmUgdHJhY2ggbmhpZW0g ZG9pIHZvaSBjYWMgc2FpIHBoYW0gdHJlbiAodHUgbmFtIDIwMDAgZGVuIG5heSksIG9uZyANClRh bSBub2k6ICJUb2kgc2FwIGNodXllbiBzYW5nIGxhbSBQaG8gQmkgdGh1IFRodW9uZyB0cnVjLCBw aHUgdHJhY2ggY29uZyB0YWMgdG8gY2h1Yy4gDQpNb2kgdmllYyBzZSBnaWFvIGxhaSBjaG8gQ2h1 IHRpY2ggbW9pIGdpYWkgcXV5ZXQiLg0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi9uZXdz ZGV0YWlsL0Jhbl9kb2NfdmlldC8zMDY5NTQvc29uZy1jYXUtYmF5LW8tbmhpZW0tbmFuZy5odG0g IDI4LzAxLzIwMTAgMDc6MTEgDQoNCkhhIE5vaTogU29uZyBDYXUgQmF5IG8gbmhpZW0gbmFuZyAN Cg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvdm4vbmhhbnZhdHRyb25nbmdheS83NTUyL2lu ZGV4LmFzcHggDQoNCkhhIE5vaTogIkNodXllbiBoYW0gZHVvbmcgYm8gYmkgbmdhcCBjaGkgY28g byB0YSIgDQoNCmh0dHA6Ly9uZ3V5ZW54dWFuZGllbi5ibG9nc3BvdC5jb20vMjAxMC8wOC90dW9u Zy1seS10aGFpLXRvLW8tdnVvbi1ob2EtY2hpLWxpbmguaHRtbCBOaGEgdmFuIEhvYW5nIFRpZW4g MTYtMDgtMjAxMCANCg0KSGEgTm9pOiBUdW9uZyBMeSBUaGFpIFRvIC0geSBwaHVjIGdpb25nIHR1 b25nIFRydW5nIFF1b2MgDQoNCk5odW5nIG5ndW9pIGhvYyB2ZSBkZXUgYmlldCBidWMgdHJhbmgg Ik5ndW9pIFZpdHJ1dml1cyIgKEwnaG9tbWUgZGUgVml0cnV2ZSkgY3VhIA0KZGFuaCBob2EgYmFj IHRoYXkgTGVvbmFyZCBkZSBWaW5jaS4gRG8gbGEgaGluaCBtb3Qgbmd1b2kgZGFuIG9uZyBraG9h IHRoYW4gZHVuZyBkYW5nIA0KY2hhbiB0YXkgbyBoYWkgdHUgdGhlIHRyb25nIG1vdCBoaW5oIHZ1 b25nIHZhIG1vdCBoaW5oIHRyb24gbG9uZyBuaGF1LCBuZW4gbW90IG1hIHRoYW5oIA0KaGFpLiBU YW0gY3VhIGhpbmggdHJvbiBsYSByb24gbmd1b2kgbWF1LiBIYWkgZHVvbmcgY2hlbyBjdWEgaGlu aCB2dW9uZyBsYSBub2kgYm8gcGhhbiANCnNpbmggZHVjLg0KDQpOZ3VvaSBtYXUgbmF5IGNobyB0 YSBjYWMgdHkgbGUgdmUgY28gdGhlIGNvbiBuZ3VvaS4gRGF1IGJhbmcgMS84IHRoYW4gbmd1b2ku IEhhaSB0YXkgZ2lvIA0KbmdhbmcgYmFuZyBjaGlldSBjYW8gdGhhbiBuZ3VvaS4gVHUgZGluaCBk YXUgZGVuIG51bSB2dSBiYW5nIDEvNCB0aGFuIG5ndW9pLiBEbyByb25nIA0KdG9pIGRhIGdpdWEg aGFpIHZhaSBjdW5nIGJhbmcgMS80IHRoYW4gbmd1b2kuIEJvbiBuZ29uIHRheSBiYW5nIG1vdCBs b25nIGJhbiB0YXkuIFNhdSANCmxvbmcgYmFuIHRheSBiYW5nIG1vdCBjYW5oIHRheSAuLi52di4u Lg0KDQpDYWMgaG9hIHNpIGhheSBjYWMgbmhhIG5hbiB0dW9uZyBjYW4gY3UgdmFvIGRheSBtYSB0 YW8gbmVuIGNhYyBoaW5oIG5ndW9pIGR1bmcgcXV5IA0KY2FjaCwgdmkgbmh1IGJlbiBhbSBuaGFj IGNvIGNhaSBjb25nIGN1IGFtIHRoYW5oIGRpYXBhc29uICh0aHVvbmcgZ29pIGFtIGN1IGhheSB0 aGFuaCANCmxhIGNodWFuKSwgY2FjIG5oYWMgY3Uga2hhYyBwaGFpIGNhbiBjdSB2YW8gdGhhbmgg bGEgY2h1YW4gY3VhIGRpYXBhc29uIG1hIGRpZXUgY2hpbmggDQphbSB0aGFuaCBjaG8gZHVuZyBj dW5nIGJhYyB0cm9uZyBtb3QgYnVvaSBob2EgdGF1Lg0KDQpOZ3VvaSBWaXRydXZpdXMgKEwnaG9t bWUgZGUgVml0cnV2ZSkgbGEgbWF1IG5ndW9pIHBodW9uZyBUYXkuIENhbyByYW8sIGNhbiBkb2ku IFRhIA0KY28gdGhlIGhpbmggZHVuZyBkZW4gbmh1bmcgdmFuIGRvbmcgdmllbiB0cm9uZyBjYWMg Y3VvYyB0aGkgT2x5bXBpYyBjdWEgSHkgTGFwIGNvIGRhaS4NCg0KQ29uIG5ndW9pIFZpZXQgY2h1 bmcgdGEsIHRoZW8gaG9jIGdpYSBOZ3V5ZW4gVmFuIEh1eWVuLCB0cm9uZyB0YXAgY2h1eWVuIGto YW8gIlZhbiANCm1pbmggVmlldCBOYW0iIChMYSBDaXZpbGlzYXRpb24gYW5uYW1pdGUpIGJhbyB2 ZSBsdWFuIGFuIHRpZW4gc2kgRGFpIGhvYyBTb3Jib25uZSBQYXJpcyANCnRydW9jIDE5NDUsIGNo dW9uZyBNb3QgdmlldCB2ZSBDaHVuZyB0b2MgVmlldCwgY28gbmh1bmcgbmhhbiB4ZXQgbmh1IHNh dToNCg0KKyBOZ3VvaSBWaWV0IHZvYyBuaG8gYmUuIFZvYyBuZ3VvaSBkYW4gb25nIHRydW5nIGJp bmggbGEgMSw1OTVtIHZhIGRhbiBiYSBsYSAxLDUzbS4gDQpCYWMgc2kgQmlnb3QsIGtoaSB4ZW0g eGV0IDMyMiBuZ3VvaSBCYWMgS3kgbGF5IHRyb25nIHNvIGxpbmgga2hvIHhhbmgsIGtldCBsdWFu IHJhbmc6IA0KMTA3LCB0dWMgbGEgMzMsMiUsIHZvYyBuZ3VvaSBuaG8gKDEsNTBtIGRlbiAxLDU5 bSk7IDIwMiwgdHVjIGxhIDYyLDclLCB0YW0gdm9jIHRydW5nIA0KYmluaCAoMSw2MG0gZGVuIDEs NjltKTsgdmEgMTMsIHR1YyBsYSBjaGkgNCUgY28gdm9jIGNhbyBsb24gKDEsNzBtIGRlbiAxLDc5 bSkuIFRoYXQgcmEsIA0KdGhlbyBvbmcsIG5ldSB0YSBjaGFwIG5oYW4gdGFtIHZvYyB0cnVuZyBi aW5oIGxhIDEsNjVtLCB0aGkgdGEgdGhheSByYW5nIDI2MSBuZ3VvaSwgdHVjIGxhIA0KODIsMSUs IGR1b2kgdHJ1bmcgYmluaC4gRGFpIGRhIHNvIHR1YyBsYSAyMDggKDY0LDQlKSBuYW0gdHJvbmcg a2hvYW5nIGdpdWEgMSw1Nm0gdmEgDQoxLDYzbS4NCg0KKyBWYWkgcm9uZywgdGhhbiBtaW5oIGdh eSBnbyB2YSBkYWkgc28gdm9pIGhhaSBjaGFuLiBOZ3VjIG5obyByYSBkYW5nIHRydW9jLCBraHVu ZyBjaGF1IA0KaXQgcGhhdCB0cmllbi4gQ2hhbiB0YXkgZGFpLCBjbyBraG9wIG1lbSBtYWksIGxh bSBjaG8gaG8gbmhhbmggbmhlbi4gTmd1b2kgVmlldCBjbyBraGEgDQpuYW5nIGR1bmcgY2hhbiBu aGF0IG5odW5nIHZhdCBuaG8sIGRpZXUga2hpZW4gdGh1eWVuIGJhbmcgY2FjIG5nb24gY2hhbi4g QmFuIHRheSB0aG9uIA0KbmhvIHZhIHRoYW5oLCBkb3QgbmdvbiB0YXkgY28gbWF1LiBYdWEga2lh LCBjYWMgbmhhIG5obyBWaWV0IE5hbSBxdWVuIGRlIG1vbmcgdGF5IA0KdGhhbmggbWFuaCBjdWEg aG8gdGhhdCBkYWkuDQoNCisgVmUgZGFpIHRoZSwgbmd1b2kgVmlldCByYXQgbWVtIG1haSwgdmEg Y28ga2hpZXUgdmUgdmFuIGRvbmcgdGhhbiB0aGUuIEhvIHRyZW8gY2F5IHJhdCANCm5oYW5oIG5o ZW4sIHRoYW4gbmd1b2kgdGFjaCBraG9pIHRoYW4gY2F5LCBiYW4gdGF5IHZhIGJhbiBjaGFuIGN1 IGRvbmcgZ2lvbmcgbmh1IG5odW5nIA0KY2hpZWMgbW9jIHNhdC4gVmUgdHJvIHBob25nIGdpYW8g dmEgZGFuaCB2YXQsIG5nYXkgbmF5IHZhbiBjb24gdGhpbmggaGFuaCB0cm9uZyBjYWMgaG9pIA0K bGFuZywgaG8gdG8gcmEgbmhhbmggdmEgZGVvIG5odSBnaW9uZyBtZW8uIFRhIG5nYWMgbmhpZW4g a2hpIHRoYXkgdGFtIHRoYW4ga2lhLCBsdWMgDQp0aHVvbmcgdGhpIGJvaSB0cm9uZyBtbyBhbyBx dWFuIHJvbmcgbHVuZyB0aHVuZywgdHJvIG5lbiBtZW0gbWFpIHZhIG5oYW5oIG5oZW4gZGUgDQp0 cmFuaCBjYWMgZG9uIGN1YSBkb2kgdGh1LCB2YSBuaGFuaCBuaHUgY2hvcCB0dW5nIHJhIG5odW5n IGN1IGRhbmggc2FtIHNldC4NCg0KKyBOZ3VvaSBWaWV0IG5vaSBjaHVuZyBraG9uZyBiZW8gcGhp LiBQaHUgbnUgcmF0IGNhbiBkb2kuIEhvIGNvIG5odW5nIG5ldCBkZXAsIGJhbiBjaGFuIA0KdmEg YmFuIHRheSByYXQgbmhvLCBjbyBjaGFuLCBjbyB0YXkgcmF0IHhpbmggeGFuLg0KDQorIFNvIG5n dW9pIFZpZXQgdHJvbi4gU28gZG8gdGh1b2MgbG9haSBkYXUgbmdhbi4gVHJvbmcga2hvYW5nIDUw MCBzbyBuZ3VvaSBvIEJhYyBLeSBtYSANCm9uZyBEbyBYdWFuIEhvcCBxdWFuIHNhdCwgdGEgY28g dGhlIGtldCBsdWFuIHJhbmcgbmd1b2kgVmlldCBOYW0gZGF1IG5nYW4gdHJvbmcgDQo1NCwzNiUg dHJ1b25nIGhvcDsgZGF1IHRydW5nIGJpbmggdHJvbmcgMzAsOCUgdHJ1b25nIGhvcC4gRGF1IGRh aSBjaGkgY2hpZW0gMywyMiUgDQp0cnVvbmcgaG9wLiBNYXQga2hhYywgbm9pIGNodW5nLCBkYXUg ZGFuIGJhIG5obyBob24gZGF1IGRhbiBvbmcuDQoNCisgUmF1IGNoaSBtb2MgdmFvIHR1b2kgdHUg MjUgZGVuIDMwLCB2YSB2YW4gdGh1YS4gUmF1IGRlbiwgY3VuZywgdGhhbmcgdmEgY2hpIG1vYyBv IGNhbSANCnZhIHBoaWEgdHJlbiBtb2kuIFR1eSB2YXksIHRhIHZhbiB0aGF5IG8gbW90IHZhaSBu Z3VvaSByYXUgbW9jIG8gZHVvaSB0YWkgdmEgaGFpIGJlbiBtYS4NCg0KKyBUb2MgdGhpIGRlbiB0 dXllbiwgcmFtLCByYXQgZGFpIHZhIGhvaSBjdW5nLiBUYSBiaWV0IHJhbmcgdG9jIGxhIHNhbiBw aGFtIGNoYXQgc3VuZyBoZSANCnRyb25nIG5oYXQgY3VhIGRhLCB2ZSBwaHVvbmcgZGllbiBwaGFu IGJpZXQgY2FjIGdpb25nIG5ndW9pLiBHaW9uZyBuaHUgbmd1b2kgVHJ1bmcgDQpIb2EsIG5ndW9p IFZpZXQgTmFtIHBoYWkgZHVvYyB4ZXAgdmFvIGNhYyBjaHVuZyB0b2MgdG9jIHRoYW5nIHZhIG11 b3QuIE5ldSBub2kgY2h1bmcgDQpobyBjbyB0b2MgdGhvIHZhIGN1bmcsIHRoaSB0YSBjdW5nIGNv IHRoZSB0aGF5IG5odW5nIG5ndW9pIHRvYyB0aGFuaCB2YSBtaW4uIE1vdCB2YWkgDQpuZ3VvaSB0 aGFtIGNoaSBjbyB0b2MgbGFuIHNvbmcgdmEgcXVhbi4gRHUgc2FvLCB0b2MgbmF5IGJhYyB0dW9u ZyBkb2kgbXVvbiwgY2hpIHZhbyBxdWFuZyANCm5hbSBtdW9pIHR1b2kgbW9pIGJhYy4gTG9uZyBt b2MgdGh1YS4NCg0KKyBEb2kgbWF0IGhvIGhvaSB4ZWNoIHZlIHBoaWEgbmdvYWksIG1vIHRvLCBk ZXAsIHJhdCBkZW4sIHJhdCBoaWVuIHZhIHJhdCBkaWVuIGNhbSBub2kgDQpjaHVuZy4NCg0KKyBN b2kgbmd1b2kgVmlldCByYXQgbW9uZywgbmh1bmcga2hvbmcgZGF5IGxhbS4NCg0KKyBIYW0gbmd1 b2kgVmlldCByYXQgcGhhdCB0cmllbi4gSGFtIHJhbmcgcmF0IGRlcCwgbmh1bmcgbmd1b2kgbm9u ZyBkYW4gbGFpIHRodW9uZyB0aHVvbmcgbmh1b20gZGVuLg0KDQorIE5ndW9pIFZpZXQgY2EgbmFt IGxhbiBudSBkZXUgcGhhdCB0cmllbiBjaGFtLiBUaHVvbmcgdGh1b25nLCBtb3QgdGhhbmggbmll biAyMCB0dW9pIA0KY2hpIGNvIHZlIDE1IHR1b2ksIGNvbiBjYWMgdGhpZXUgbnUgdGhpLCB0cm9u ZyBtb3QgdGhvaSBnaWFuIGRhaSwgdmFuIHRyb25nIG5odSBuaHVuZyBlbSANCmJlIGdhaS4gVHVv aSBkYXkgdGhpIHF1YSBtdW9uIG8gVmlldCBOYW0uIFR1b2kgdHJ1bmcgYmluaCBkZSBrZXQgaG9u IGxhIHR1IDE0IGRlbiAxNS4gDQpQaHUgbnUgcmF0IG1hbiBkZSB2YSB0YSB0aHVvbmcgdGhheSBu aHVuZyBnaWEgZGluaCB0dSBib24gZGVuIHNhdSBjb24uIE5ndW9pIHRhIHVvYyANCmx1b25nIGNv IGRlbiB0cmVuIDQlIGdpYSBkaW5oIGNvIGhvbiBtb3QgY2h1YyBjb24uIENvbiBzbyBjaHVhIGRl IHRydW5nIGJpbmggZHVvYyB1b2MgDQp0aW5oIGxhIGJvbi4NCg0KKyBOZ3VvaSBWaWV0IGdpYSBk aSBuaGFuaCBjaG9uZywgYmF0IGRhdSB0dSB0dW9pIGJvbiBtdW9pLiBNb3Qgbmd1b2kgZGFuIG9u ZyA1MCB0dW9pIGRhIA0KZ2lhIGx1IGtodS4gVHV5IG5oaWVuIHR1b2kgdGhvIGtob25nIHRodWEg a2VtIG8gY2hhdSBBdS4gTmhpZXUgbmd1b2kgc29uZyBkZW4gNzAgdHVvaS4gDQpOZ3VvaSA4MCB0 dW9pIGNoYW5nIGhpZW0uIFZhIHRoYW0gY2hpIGRvaSBraGkgdGEgY29uIGdhcCBtb3Qgc28gY3Ug dGhvIDEwMCB0dW9pLiANCk5odW5nIG5oYW4geGV0IHRyZW4gdHJpY2ggdHUgY3VvbiAiVmFuIG1p bmggVmlldCBOYW0iIChMYSBDaXZpbGlzYXRpb24gYW5uYW1pdGUpIGN1YSANCmhvYyBnaWEgTmd1 eWVuIFZhbiBIdXllbiwgdHJhbmcgNDEgZGVuIHRyYW5nIDUxLiBOaGEgeHVhdCBiYW4gSG9pIE5o YSBWYW4gMjAwNS4NCg0KRG8gZG8gdHVvbmcgTHkgVGhhaSB0byBkdW9jIGR1bmcgbyB2dW9uIGhv YSBDaGkgTGluaCBkZSBjaGFvIGRvbiBreSBuaWVtIDEwMDAgbmFtIA0KVGhhbmcgTG9uZywgY2hp IHhldCB2ZSBtYXQgY28gdGhlIGhvYywgZGEga2hvbmcgcGhhaSBjaHVuZyB0b2Mgbmd1b2kgVmll dCwgdGhlbyBuaGFuIA0KeGV0IGN1YSBob2MgZ2lhIE5ndXllbiBWYW4gSHV5ZW4uDQoNCkNvbiB0 cmFuZyBwaHVjIGN1YSBidWMgdHVvbmcgdGhpIHNhbz8NCg0KS2hvbmcgaGlldSBjYWMgdmkgbGFu aCBkYW8gdmFuIGhvYSBIYSBOb2kgdmEgdmFuIGhvYSBUcnVuZyB1b25nIG5naGkgdGhlIG5hbyBt YSBsYWkgDQpjaG8gdHVvbmcgdnVhIEx5IFRoYWkgdG8gYW4gdmFuIHRyaWV1IHBodWMgY3VhIHBo b25nIGtpZW4gVHJ1bmcgSG9hLiBDdW5nIGNoaWVjIG11IA0KYmluaCB0aGllbiBjdWEgVGFuIFRo dXkgSG9hbmcgZGUuIEN1bmcgY2hpZWMgYW8gdGh1bmcsIGhvYSB2YW4gcm9uZywgZGFpIHRvaSBj aGFuLCBjdWEgDQp0YXkgYW8gcm9uZyB0aGVuZyB0aGFuZyBjbyB0aGUgYm8gbG90IG1vdCBkdWEg dHJlLg0KDQpDYWMgdmkgY28gYmlldCByYW5nLCBidWMgdHVvbmcgZGF1IHRpZW4gZHVvYyBkdW5n IG8gdnVvbiBob2EgbmF5LCBsYSB0dW9uZyB2aWVuIHRvYW4gDQpxdXllbiBQYXVsIEJlcnQsIGJp ZXUgdHJ1bmcgY2hvIHN1IGRvIGhvIGN1YSB0aHVjIGRhbiBQaGFwIGdhbiAxMDAgbmFtIHRyZW4g eHUgc28gbmF5LiANCk5hbSAxOTQ1IGNodW5nIHRhIGRhIHBoYSBibyB0dW9uZyBQYXVsIEJlcnQs IHRob2kgY2hpbmggcGh1IFRyYW4gVHJvbmcgS2ltLCB0cnVvYyBDYWNoIG1hbmcgVGhhbmcgVGFt Lg0KDQpOZ2F5IG5heSwgZHVuZyB0dW9uZyB2dWEgTHkgVGhhaSB0byBvIG5vaSBkYXkgbmhhbiBk aXAgMTAwMCBuYW0gVGhhbmcgTG9uZywgbGEgZGFjIA0KZGlhLiBOaHVuZyBsYWkgY2hvIGFuIHZh biBhbyBxdWFuIHRyaWV1IHBodWMgVHJ1bmcgSG9hLCBsYSBhbiBjaHVhIHkgdHUgZ2k/IFRydW5n IFF1b2MgDQpsYW4gY2hpZW0gZGF0IGRhaSwgbGFuaCBoYWksIGJpZW4gZGFvIGN1YSB0YSBkYW5n IGxhIHZhbiBkZSBoZXQgc3VjIG5oYXkgY2FtIGhpZW4gbmF5LiANCk5ndW9pIFRydW5nIEhvYSBk YW5nIG11b24gYmFuaCB0cnVvbmcgdGluaCB0aGFuIERhaSBIYW4gcmEga2hhcCBuYW0gY2hhdSBi b24gYmllbi4gDQpWYXkgbWEgbHUgbHUgbyBnaXVhIHRodSBkbyBIYSBOb2kga3kgbmllbSAxMDAw IG5hbSBUaGFuZyBMb25nLCB0dW9uZyB2dWEgTHkgVGhhaSB0byANCmxhaSBhbiB2YW4gdHJpZXUg cGh1YyBUcnVuZyBIb2EuIE5vIGdheSBwaGFuIGNhbSBuZ2hlIHRodWF0IHZhIHBoYW4gY2FtIGNo aW5oIHRyaSByYXQgDQpsb24uDQoNClRyaWV1IGRhaSBuaGEgTHksIHRyaWV1IGRhaSBuaGEgVHJh biwgeSB0aHVjIGRvYyBsYXAgZGFuIHRvYyBjdWEgY2h1bmcgdGEgdm8gY3VuZyBtYW5oIA0KbWUu IFRpZXAgdGhlbyB0cmlldSBkYWkgbmhhIExlIGN1bmcgdGhlLiBDaHVuZyB0YSBkYSBkYW5oIHRo YW5nIG5oaWV1IGN1b2MgeGFtIGx1b2MgbG9uIA0KY3VhIHBodW9uZyBCYWMsIG5vaSBjYWNoIGhh byBodW5nIHRyb25nIGFuZyB2YW4gQmluaCBOZ28gZGFpIGNhbzogIk5IVSBOVU9DIA0KVklFVCBU QSBUVSBUUlVPQywgVk9OIFhVTkcgVkFOIEhJRU4gREEgTEFVLiBTT04gSEEgQ1VPTkcgVlVDIERB IA0KQ0hJQSwgUEhPTkcgVFVDIEJBQyBOQU0gQ1VORyBLSEFDLi4uIg0KDQpEdW5nIHR1b25nIHZ1 YSBMeSBUaGFpIHRvIG8gVGhhbmcgTG9uZyBwaGFpIG1hbmcgZHVvYyB0aW5oIHRoYW4gZG9jIGxh cCBraG9uZyBwaHUgDQp0aHVvYyBhaSwgeSB0aHVjIHR1IGNodSwgdHUgY3VvbmcgY3VhIGRhbiB0 b2MgVmlldC4gQ2h1bmcgdGEgY28gbW90IG5lbiB2YW4gaG9hIHkgcGh1YyB0dSANCm5nYW4gZG9p LCB5IHBodWMgY3VhIGRhbiB0aHVvbmcsIHkgcGh1YyBjdWEgdnVhIGNodWEuIFhpbiBtb2kgZG9j IGN1b24gc2FjaCBraGFvIGN1dSANCiJWYW4gaG9hIHBob25nIHR1YyIgY3VhIG5oYSB2YW4gSG9h bmcgUXVvYyBIYWksIG5oYSB4dWF0IGJhbiBQaHUgTnUgaW4gbmFtIDIwMDcuIA0KVHJvbmcgZG8g Y28gbmh1bmcgYmFpOiAxL0RvaSBkaWV1IHZlIHF1b2MgcGh1YywgbGUgcGh1Yy4gMi9RdW9jIHBo dWMsIGxlIHBodWMgdm9pIG5nYXkgDQpUZXQgY28gdHJ1eWVuLiAzL1F1b2MgcGh1YyBWaWV0IE5h bSB0b24gdGFpIGhheSBraG9uZyB0b24gdGFpLiA0L1R1IGhvaSBuZ2hpIHRvbSB0b2FuIA0KY2F1 LCBuYXkgc2luaCB2YW4gZGUgcXVvYyBwaHVjLi4uIFJhdCB0aWVjIGNhYyBuaGEgbGFtIHR1b25n IHZhIGNhYyBuaGEgZHV5ZXQgdHVvbmcgZGEgDQpraG9uZyBjaGl1IGJvIGNvbmcgc3VjIHRpbSBk b2MuDQoNClZpIHRoZSBtYSBjbyBtYXkgY2F1IHZlIGRhbiBnaWFuIGN1YSBtb3QgbmhhIHRobyBj YXAgcGh1b25nIGRhdCBIYSBUaGFuaCwgdmluaCB2ZSANCnR1b25nIHZ1YSBMeSBUaGFpIHRvIG8g dnVvbiBob2EgQ2hpIExpbmg6DQoNClZ1YSBMeSBUaGFpIHRvIG5oYSB0YSwNCkNhbiBkYWksIG11 IG1hbmcsIHkgImNoYSIgVGh1eSBIb2FuZy4NCk1hdCB0bywgbXVpIHRoYW5nLCBwaGkgcGhhbSwN ClRoYW4gaGluaCBjYW8gbG9uLCB0dWEgY2hhbmcgcGh1b25nIFRheS4gDQpUcm9pIHhhbmgsIG1h eSB0cmFuZyB0dW5nIGJheSwNClZ1YSBMeSBUaGFpIHRvIGR1bmcgbmdheSBjYW4gdGFuLg0KDQpY aW4gcGhhbiBhbmggZGUgQmFuIHRvIGNodWMgaG9pIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcgZHVv YyBiaWV0LiBDb24geHUgbHkgdGhlIG5hbywgDQp0dXkgYmFuIHRvIGNodWMgYmFuIHZvaSBjaGlu aCBxdXllbi4gQ2h1IGRlIHR1b25nIHZ1YSBMeSBUaGFpIHRvIG5odSB0aGUgZSBraG9uZyB0aWVu LiANCg0KRGF0IHRoaWVuZyBUaGFuZyBMb25nIHRoYW5nIDcgLSAyMDEwDQpOaGEgdmFuIEhvYW5n IFRpZW4uIA0KRGlhIGNoaTogTmhhIEExMSBQaG9uZyA0MjANClRoYW5oIFh1YW4gQmFjIC0gSGEg Tm9pDQpEaWVuIHRob2FpOiAwOTM2LjgwMi44MDENCk5ndW9uOiBUcmFuTmh1b25nLmNvbQ0KDQpZ IGtpZW4gYmFuIGRvYzoNCg0KQU5IIEJBIFNBTToNCg0KTW90IHBoYXQgaGllbiBraG9uZyBsYSBt YSByYXQgZGFuZyBnaWEhIFRVT05HIExZIFRIQUkgVE8gTyBWVU9OIEhPQSBDSEkgTElOSCAod2Vi IA0KVHJhbiBOaHVvbmcpLiAiTmdheSBuYXksIGR1bmcgdHVvbmcgdnVhIEx5IFRoYWkgdG8gbyBu b2kgZGF5IG5oYW4gZGlwIA0KMTAwMCBuYW0gVGhhbmcgTG9uZywgbGEgZGFjIGRpYS4gTmh1bmcg bGFpIGNobyBhbiB2YW4gYW8gcXVhbiB0cmlldSBwaHVjIFRydW5nIEhvYSwgDQpsYSBhbiBjaHVh IHkgdHUgZ2k/IFRydW5nIFF1b2MgbGFuIGNoaWVtIGRhdCBkYWksIGxhbmggaGFpLCBiaWVuIGRh byBjdWEgdGEgZGFuZyBsYSB2YW4gZGUgDQpoZXQgc3VjIG5oYXkgY2FtIGhpZW4gbmF5LiBOZ3Vv aSBUcnVuZyBIb2EgZGFuZyBtdW9uIGJhbmggdHJ1b25nIHRpbmggdGhhbiBEYWkgSGFuIHJhIA0K a2hhcCBuYW0gY2hhdSBib24gYmllbi4gVmF5IG1hIGx1IGx1IG8gZ2l1YSB0aHUgZG8gSGEgTm9p IGt5IG5pZW0gMTAwMCBuYW0gVGhhbmcgTG9uZywgDQp0dW9uZyB2dWEgTHkgVGhhaSB0byBsYWkg YW4gdmFuIHRyaWV1IHBodWMgVHJ1bmcgSG9hLiBObyBnYXkgcGhhbiBjYW0gbmdoZSB0aHVhdCB2 YSBwaGFuIGNhbSBjaGluaCB0cmkgcmF0IGxvbi4iIA0KDQpEYW4gSGEgVGhhbmg6DQoNCkdhbiBu aHUgZG9pIGRpZW4gdm9pIHR1b25nIGRhaSBMeSBUaGFpIFRvIHZhIHRydSBzbyBVQk5EIFRQIEhO LCBwaGlhIGJlbiBraWEgSG8gDQpHdW9tLCBjbyB0dW9uZyB2dWEgTGUgTG9pIHJhdCBkZXAsIGR1 bmcgbWF1IGhpbmggdHVvbmcgdnVhIFZpZXQgTmFtOyBzYW8gcXVhbiBjaHVjIA0KdGhvaSBuYXkg a2hvbmcgY2hpdSB0aGFtIGtoYW8uIE9uZyBOZ3V5ZW4gUGh1IFRyb25nIG5ndXllbiBiaSB0aHUg dGhhbmggdXkgSGEgTm9pIA0KbGUgbmFvIGxhaSBraG9uZyBiaWV0OyB2YW4gaG9hIFRydW5nIFF1 b2MgbmdhbSBzYXUgdmFvIGRhdSBvYyBtYXkgb25nIHF1YW4gbmF5IHJvaS4gDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNDE5Mjk0MC5hc3B4 IDA0LzEwLzIwMTAgMTk6MjkgDQoNClRhaSBCYW8gdGFuZyBsaWNoIHN1IHF1YW4gc3UgVk4gY28g YnVjIHR1b25nIE5nbyBRdXllbiwgY3VuZyBjaGllbiB0aGFuZyBCYWNoIERhbmcgbHVuZyBsYXkg bmFtIDkzOCwgcmF0IGRlcC4gDQooTmVuIGNoYW5nLCBraGkgbGFtIHR1b25nIGRhaSBMeSBUaGFp IHRvLCBjYW4gdGhhbSBraGFvIG5odW5nIG1hdSB0dW9uZyBuaHUgdmF5Li4uKSAgIA0KDQpodHRw Oi8vaG9tZS52bm4udm4vdGhpX25oYXVfbGFwX2FvX2hvX3JvaV9jb25nX2toYWlfcmFvX2Jhbl9k YXQtMzM2MTk5NjgtNjE2MDY5NjM0LTAgY2FuZC5jb20udm4gLSAyMS0xMS0yMDA5IDE0OjUwDQoN CkhhIE5vaTogVGhpIG5oYXUgbGFwIGFvIGhvIHJvaSBjb25nIGtoYWkgcmFvIGJhbiBkYXQgDQoN Cmh0dHA6Ly9saWNoc3V2bi5pbmZvL2ZvcnVtL3Nob3d0aHJlYWQucGhwP3Q9MTIzNDIgVGhhbmhu aWVuIDAzLzA1LzIwMTAgMjM6MTcNCg0KSGEgTm9pOiBQaGEgSG9hbmcgdGhhbmggVGhhbmcgTG9u ZyBsYW0gZHVvbmcgZ2lhbyB0aG9uZyANCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1Bo YXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFpLCAyOC8xMC8yMDAyLCAwMzowOSBHTVQr Nw0KDQpIYSBub2k6IENodWEga2hvaSB0byB2dSBhbiBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5v aSANCg0KTmhhIGhhdCBMb24gSGEgTm9pOiBDYWMgc2FpIHBoYW0gbGllbiB0aWVwIHRyb25nIHF1 YSB0cmluaCB0cmllbiBraGFpIGR1IGFuIGNhcCBxdW9jIGdpYSANCm5heSBkYSBkYW4gdG9pIHZp ZWMgY29uZyB0cmluaCBjaHVhIHRoaSBjb25nIHhvbmcgZGEgZHVvYyBuZ2hpZW0gdGh1Lg0KDQpE byBkbywga2hpIHRoYW5oIHRyYSBCbyBUYWkgY2hpbmgga2llbSB0cmEgMjIvNDMgaGFuZyBtdWMg Y29uZyB0cmluaCwgdG9uZyBnaWEgdHJpIGdhbiAyOSw3IHR5IA0KZG9uZyB0aGkgZ2FuIDEyLDEg dHkgZG9uZyBsYSBnaWEgdHJpIG5naGllbSB0aHUgdnVvdCB0aHVjIHRlLiANCg0KaHR0cDovL3d3 dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFpLCAy OC0xMC0yMDAyLCAwMzowOSBHTVQrNw0KDQpIYSBOb2k6IENhbiBraG9pIHRvIHZhIGFuIHRoYW0g bmh1bmcgbGFuZyBwaGkgdGFpIGNvbmcgdHJpbmggTmhhIGhhdCBMb24gSGEgTm9pICANCg0KVGhh bmggdHJhIE5oYSBudW9jIHZ1YSBjbyBrZXQgbHVhbiB2ZSBkdSBhbiB0b24gdGFvIE5oYSBoYXQg TG9uLCBzYXUgNSBuYW0gY29uZyB0cmluaCANCm5heSAidGFtIiBkdWEgdmFvIHN1IGR1bmcuIA0K DQpUaGVvIGRvLCBoYW5nIGxvYXQgdmkgcGhhbSB2ZSBkYXUgdHUgeGF5IGR1bmcgY28gYmFuIGRh IHhheSByYSB0dSBuYW0gMTk5NCwgdHJ1b2Mga2hpIA0KQ2hpbmggcGh1IGdpYW8gY2hvIEJvIFZh biBob2EgbGFtIGNodSBkYXUgdHUuIEhpZW4gY2h1YSBybyBiYW8gZ2lvIGNvbmcgdHJpbmggbW9p IA0KZHVvYyBxdXlldCB0b2FuLg0KDQpOZ3V5ZW4gbmhhbiBjdWEgdGF0IGNhIGNhYyBzYWkgcGhh bSB0cmVuLCBUaGFuaCB0cmEgTmhhIG51b2MgZGEga2V0IGx1YW4gbGEgZG8gY2FjIGNvIA0KcXVh biBsaWVuIHF1YW4ga2hvbmcgdG9uIHRyb25nIHZhIGNoYXAgaGFuaCBjYWMgcXV5IGRpbmggdmUg eGF5IGR1bmcgaGllbiBoYW5oIGN1YSANCk5oYSBudW9jLiBDb25nIHRyaW5oIGN1b2kgY3VuZyBk dW9jIHRyaWVuIGtoYWkgdm9pIGhpbmggdGh1YyAidnVhIHRoaWV0IGtlLCB2dWEgdGhpIA0KY29u ZyIuIA0KDQpOZ29haSByYSwgZ2FuIG1vdCBuYW0gdHJ1b2Mga2hpIENoaW5oIHBodSBnaWFvIGNv bmcgdHJpbmggY2hvIEJvIFZhbiBob2EsIEJvIG5heSBkYSANCmNodSBkb25nIGxhcCBiYW4gZG9u IGdpYS4gU29uZyBkZW4gbHVjIGR1IGFuIGR1b2MgdHJpZW4ga2hhaSwgYmFuIG5heSB2YW4gY2h1 YSBsYXAgZHVvYyANCmJvIGRvbiBnaWEgZGFjIHRodS4gVmkgdGhlIGhhdSBoZXQgY2FjIGhhbmcg bXVjIHhheSBsYXAgZGV1IGR1b2MgdGhhbmggdG9hbiBkdW9pIGRhbmcgDQp0YW0gdW5nLCB0YW0g dGluaC4uLg0KDQpUaGFuaCB0cmEgTmhhIG51b2MgZGEgcGhhdCBoaWVuIHRvYW4gYm8gaGUgdGhv bmcgdGhpZXQgYmkgYW0gdGhhbmggdmEgY2hpZXUgc2FuZyBzYW4gDQpraGF1ICh0b25nIHRyaSBn aWEgMTMsMiB0aSBkb25nKSBkYSBkdW9jIG5oYXAgdmUgbmFtIGltIHRyb25nIGtobyA1IG5hbSBu YXkuIFRpZW4gdGh1ZSANCmtobyBiYWkgY3VhIENvbmcgdHkgVGhhaSBCaW5oIER1b25nIHRvbiAx MDUgdHJpZXUgZG9uZy4gR2lhaSB0aGljaCB2ZSB2aWVjIGxhbmcgcGhpIA0KY29uZyBzYW4gbmF5 LCBCYW4gcXVhbiBseSBjaG8gcmFuZyBobyBkYSAicXVlbiIgcXV5IGRpbmggbGEgbGFwIGRhdCB0 aGlldCBiaSBkb2kgdm9pIHBoaWEgDQpudW9jIG5nb2FpIHRoaSBwaGFpIGNvIGxpZW4ga2V0IHZv aSBtb3QgZG9uIHZpIGNvIGNodWMgbmFuZyB0cm9uZyBudW9jLg0KDQpUcm9uZyBxdWEgdHJpbmgg dGhpIGNvbmcsIG5oaWV1IGhvcCBkb25nIG11YSBiYW4gbG9uZyB2b25nIGRhIGR1b2MgbGFwLiBU cm9uZyBkbywgDQpyaWVuZyB2aWVjIHRoYXUgbXVhIHRoaWV0IGJpIGRpZXUgaG9hLCBkaWVuIHR1 LCBjYXAgZGllbiwgdHUgZGllbiBhcC4uLiAoNC80OCBoYW5nIG11YyBkdW9jIA0KeGFjIG1pbmgp IGRhIGxhbSB0aGF0IHRob2F0IG5nYW4gc2FjaCA4IHR5IGRvbmcuDQoNCkNhYyBzYWkgcGhhbSBs aWVuIHRpZXAgdHJvbmcgcXVhIHRyaW5oIHRyaWVuIGtoYWkgZHUgYW4gY2FwIHF1b2MgZ2lhIG5h eSBkYSBkYW4gdG9pIHZpZWMgDQpjb25nIHRyaW5oIGNodWEgdGhpIGNvbmcgeG9uZyBkYSBkdW9j IG5naGllbSB0aHUuDQoNCkRvIGRvLCBraGkgdGhhbmggdHJhIEJvIFRhaSBjaGluaCBraWVtIHRy YSAyMi80MyBoYW5nIG11YyBjb25nIHRyaW5oLCB0b25nIGdpYSB0cmkgZ2FuIA0KMjksNyB0eSBk b25nIHRoaSBnYW4gMTIsMSB0eSBkb25nIGxhIGdpYSB0cmkgbmdoaWVtIHRodSB2dW90IHRodWMg dGUuDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1RoYXQtdGhvYXQtdHJv bmcteGF5LWR1bmctY28tYmFuLUFpLWNoaXUtdHJhY2gtbmhpZW0vNzAwMzM5MzMvMjE4LyAxOC8x Mi8yMDA1LCAxNDo1MSBHTVQrNw0KDQpDYW4ga2hvaSB0byB2dSBhbiB0aGFtIG5odW5nIHRhaSBk dSBhbiBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5vaToNCg0KVHJvbmcgdm9uZyAyIG5hbSwgVGhh bmggdHJhIGNodXllbiBuZ2FuaCB4YXkgZHVuZyB0byBjaHVjIHRoYW5oIHRyYSAzMSBkdSBhbiAN Cih0b25nIHNvIHZvbiAxNy4zMDAgdGkgZG9uZykgdGhpIGNhIDMxIGR1IGFuIGRldSBjbyBzYWkg cGhhbSB2b2kgc28gdGllbiB0aGF0IHRob2F0LCBsYW5nIA0KcGhpIGxlbiB0b2kgMi4wNzAgdGkg ZG9uZy4NCg0KVGluaCBoaW5oIHRoYW0gbmh1bmcgdHJvbmcgeGF5IGR1bmcgY28gYmFuIG5naGll bSB0cm9uZyBsYSB2YXkgbmh1bmcgdHJvbmcgcXVhIA0KdHJpbmggZGlldSB0cmEgbG9haSBhbiBu YXksIGNhYyBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQsIHRyb25nIGRvIGNvIENvIHF1YW4gRGll dSB0cmEsIGdhcCByYXQgbmhpZXUga2hvIGtoYW4uDQoNClRodW9uZyB0YSBOZ3V5ZW4gVHJvbmcg TG9uZyAtIFRydW9uZyBwaG9uZyA2IEN1YyBDU0RUIHRvaSBwaGFtIHZlIHRyYXQgdHUgcXVhbiBs eSANCmtpbmggdGUgdmEgY2h1YyB2dSAoQy0xNSkgbGFpIG5ldSByYSBtb3Qga2hvIGtoYW4gbnVh IHRyb25nIGNvbmcgdGFjIGRpZXUgdHJhIG1hIA0KdnUgYW4gdGhhbSBuaHVuZyB4YXkgcmEgdGFp IGNvbmcgdHJpbmggdHUgYm8gdmEgdG9uIHRhbyBOaGEgaGF0IExvbiBIYSBOb2kgbGEgbW90IHZp IGR1Lg0KQ29uZyB0cmluaCBuYXkgY28gdG9uZyBtdWMgZGF1IHR1IGR1b2MgZHV5ZXQgbGEgMTU2 IHRpIGRvbmcgYmFuZyBuZ3VvbiB2b24gbmdhbiBzYWNoIDEwMCUuIA0KQ29uZyB0cmluaCBnb20g MzQgaGFuZyBtdWMgeGF5IGxhcCB2YSAxNCBoYW5nIG11YyBsYXAgZGF0IHRoaWV0IGJpLiBCYW5n IGNhYyBiaWVuIHBoYXAgDQpuZ2hpZXAgdnUsIENvIHF1YW4gRGlldSB0cmEgZGEgbGFwIGNodXll biBhbiB2YSBjaG9uIHJhIDQgaGFuZyBtdWMgZGlldSB0cmEsIHhhYyBtaW5oLiANCktldCBxdWEg Y2EgNCBoYW5nIG11YyBuYXkgZGV1IGNvIGRhdSBoaWV1IHZpIHBoYW0uIE5odW5nIGNobyBkZW4g bmF5IGNvbmcgdHJpbmggZGEgZHVhIA0KdmFvIHN1IGR1bmcgbmhpZXUgbmFtIG1hIHZhbiBjaHVh IHF1eWV0IHRvYW4gY28gbmdoaWEgbGEgY2h1YSB4YWMgZGluaCBkdW9jIA0KbXVjIGRvIHRoaWV0 IGhhaSBuZW4gdmFuIGNodWEgY28gY28gc28gZGUgeGVtIHhldCBraG9pIHRvIHZ1IGFuIGhpbmgg c3UuDQoNClRodW9uZyB0YSBOZ3V5ZW4gVHJvbmcgTG9uZyBkYXQgY2F1IGhvaTogIlRhaSBzYW8g bGFpIHBoYWkgY2hvIHF1eWV0IHRvYW4gbW9pIHhhYyANCmRpbmggZHVvYyB0aGlldCBoYWk/Iiwg dmEgb25nIGNobyByYW5nOiAiQ2hpbmggY2FpIHJhbmcgYnVvYyBkbyBkYSBsYW0gbmFuIGxvbmcg bmhpZXUgDQp0cmluaCBzYXQsIGRpZXUgdHJhIHZpZW4ga2hpIHRpZXAgY2FuIHZ1IHZpZWMgdGhh bSBuaHVuZyB0cm9uZyB4YXkgZHVuZyBjbyBiYW4sIGN1bmcgDQpjbyBuZ2hpYSBsYSBzZSBibyBs b3QgbmhpZXUgdG9pIHBoYW0gdHJvbmcgbGluaCB2dWMgbmF5IiANCg0KaHR0cDovL3d3dy52bmV4 cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFpLCAyOC8xMC8y MDAyLCAwMzowOSBHTVQrNw0KQ2FuIGtob2kgdG8gdnUgYW4gdGhhbSBuaHVuZyB0YWkgZHUgYW4g Y2FpIHRhbyBOaGEgSGF0IExvbiBIYSBOb2k6KHRpZXApDQoNCkNvbmcgdHJpbmggTmhhIEhhdCBM b24gLSBIYSBOb2k6IFRvYW4gYm8gaGUgdGhvbmcgdGhpZXQgYmkgYW0gdGhhbmggdmEgY2hpZXUg c2FuZyANCnNhbiBraGF1ICh0b25nIHRyaSBnaWEgMTMsMiB0aSBkb25nKSBkYSBkdW9jIG5oYXAg dmUgbmFtIGltIHRyb25nIGtobyA1IG5hbSBuYXkuIChEZW4gbmF5IDIwMDksIGN1IHRyaSBxdWFu IHRhbSwga2hvbmcgcm8gc28gdGhpZXQgYmkgbmF5IGNvIGNvbiBkYXkgZHUsIG5ndXllbiB2ZW4g a2hvbmc/KQ0KDQpUcm9uZyBxdWEgdHJpbmggdGhpIGNvbmcsIG5oaWV1IGhvcCBkb25nIG11YSBi YW4gbG9uZyB2b25nIGRhIGR1b2MgbGFwLiBUcm9uZyBkbywgDQpyaWVuZyB2aWVjIHRoYXUgbXVh IHRoaWV0IGJpIGRpZXUgaG9hLCBkaWVuIHR1Li4uIGRhIGxhbSB0aGF0IHRob2F0IG5nYW4gc2Fj aCA4IHR5IGRvbmcuDQoNCmh0dHA6Ly9oYXlkYW5odGhvaWdpYW4ud29yZHByZXNzLmNvbS8yMDEw LzA1LzA3L3F1eSVlMSViYSViZnQtYyVlMSViYSVhZnQtcGhhLWhvYW5nLXRoYW5oLWQlZTElYmIl ODMtbSVlMSViYiU5Zi1kJWM2JWIwJWUxJWJiJTlkbmctY2glZTElYmIlOGRjLXRpJWUxJWJhJWJm dC10aW0tciVlMSViYiU5M25nLWglZTElYmIlOTMtdGF5LyA3LzUvMjAxMA0KDQpIYSBOb2k6IFF1 eWV0IHBoYSBIb2FuZyBUaGFuaCBkZSBtbyBkdW9uZyBjaG9jIHRpZXQgSG8gVGF5IC0gIHRyYWkg dGltIFJvbmcgIlRoYW5nIExvbmciIA0KDQpUYW0gSG9hbmcgVGhhbmggZGEgY28gYmFuIGRhbyBw aGEgeG9uZyANCg0KaHR0cDovL3d3dy54YWx1YW4uY29tL21vZHVsZXMucGhwP25hbWU9TmV3cyZm aWxlPWFydGljbGUmc2lkPTIxNzUwDQoNCkRpZW0gYmFvOiBUaGllbiCWIERpYSCWIE5oYW4gDQoN Cmh0dHA6Ly93d3cudmlldG5hbXBsdXMudm4vSG9tZS9EaS10aWNoLUhvYW5nLXRoYW5oLXRob2kt TGUtZGEtYmktc2FuLXBoYW5nLzIwMTA1LzQzNzA2LnZucGx1cyAwNC8wNS8yMDEwIDE2OjA2OjAw DQoNCkRpIHRpY2ggSG9hbmcgdGhhbmggdGhvaSBMZSBkYSBiaSBzYW4gcGhhbmcgLSBWdWEgeHVh dCBsbyBkYSBiaSBwaGENCg0KSG9uIDUwIGhvIGRhbiBkYSBjdW5nIGt5IGRvbiBraWVuIG5naGkg Z3VpIGRlbiBIb2kgS2hvYSBob2MgTGljaCBzdSBWaWV0IE5hbSwgVmllbiBLaGFvIGNvIGhvYyBW aWV0IE5hbSB5ZXUgY2F1IGNhYyBuaGEga2hvYSBob2MgdmFvIGN1b2MgZGUgbmdhbiBjaGFuIHZp ZWMgcGhhIGRpIHRpY2guDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2Vz LzIwMTAxOC8yMDEwMDUwMjIzMDIyNS5hc3B4IDAyLzA1LzIwMTAgMjM6MDIgDQoNCk1vdCBkb2Fu IEhvYW5nIHRoYW5oIFRoYW5nIExvbmcgYmkgeHVjIGRvICAtICAiRG9hbiB0aGFuaCBiaSBwaGEg dHJlbiBkdW9uZyBIb2FuZyBIb2EgVGhhbSBkZSBtbyBkdW9uZyBjaGluaCBsYSBIb2FuZyB0aGFu aCB0aG9pIExlIiwgDQoNCmh0dHA6Ly93d3cubWVrb25nbmV0LnJ1L2luZGV4LnBocD9tb2Q9TmV3 cyZzaWQ9Mjc3NjIgMDYuMDUuMjAxMCAxMjowMA0KDQpQaGFuIEhvYW5nIHRoYW5oIHBoaWEgZG9u ZyBkYSBob2FuIHRvYW4gYmkgc2FuIGJhbmcgDQoNCk5ndXllbiBuaGFuIGNhbiBiYW4gbGEgY2hv IGRlbiBuYXkgVGh1IGRvIEhhIE5vaSB2YW4gY2h1YSB4YXkgZHVuZyBkdW9jIG1vdCBxdWkgaG9h Y2gga2hhbyBjbyBob2MuLi4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi90aW5uaGFuaC8y MDEwMTAvQmFvLXRhbmctSGEtTm9pLW1vaS1raGFuaC10aGFuaC1kYS1iaS10cm9tLWNhcC05NDE5 MTUvICBBbmggTmdvYyAxMToyMCwgMTMvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogQmFvIHRh bmcgSGEgTm9pIHZ1YSBraGFuaCB0aGFuaCBkYSBiaSB0cm9tDQoNCk5nYXkgMTIvMTAsIFVCTkQg VFAgSGEgTm9pIGRhIGNvIGNvbmcgdmFuIGd1aSBDb25nIGFuIFRQIHlldSBjYXUgYm8gdHJpIG5n YXkgbHVjIA0KbHVvbmcgY2h1eWVuIG5naGllcCBkZSBiYW8gdmUgdG9hbiBibyBraHUgdnVjIGJl biB0cm9uZyBjb25nIHRyaW5oIGJhbyB0YW5nIDI0LzI0LiANCg0KQ29uZyB2YW4gbmhhbiBtYW5o IJNkYSBjbyBoaWVuIHR1b25nIHBoYSBob2FpLCB0aGFvIHRyb20gdGhpZXQgYmkgdHJvbmcgY29u ZyB0cmluaCIuIERvIA0KZG8sIENBIFRQIGNhbiBwaG9pIGhvcCBjaGF0IGNoZSB2b2kgU28gVmFu IGhvYSCWIFRoZSB0aGFvIHZhIER1IGxpY2ggSGEgTm9pIGRlIHRvIA0KY2h1YyB0cmllbiBraGFp IGNvbmcgdGFjIGJhbyB2ZSBhbiB0b2FuIGNobyBjYWMgY28gdmF0LCBoaWVuIHZhdCBkYW5nIGR1 b2MgdHJ1bmcgYmF5IHRhaSANCmRheSBjdW5nIG5odSBjYWMgdGhpZXQgYmkgbGFwIGRhdCB0cm9u ZyBjb25nIHRyaW5oLg0KDQpDdW5nIHZvaSB2aWVjIGxhcCBrZSBob2FjaCBiYW8gdmUsIENBVFAg SGEgTm9pIGN1bmcgY28gdHJhY2ggbmhpZW0gZHUgdHJ1IGtpbmggcGhpIGRlIA0KdG8gY2h1YyB2 aWVjIGJhbyB2ZSBuYXkgdGh1YyBzdSBoaWV1IHF1YS4NCg0KQmFvIHRhbmcgSGEgTm9pIHZ1YSBj aGluaCB0aHVjIGtoYW5oIHRoYW5oIG5nYXkgNi8xMCwgdGh1IGh1dCBsdW9uZyBraGFjaCB0aGFt IHF1YW4gDQpyYXQgZG9uZy4gQmFvIHRhbmcgSGEgTm9pIGhpZW4gZGFuZyBsdXUgZ2l1IGhvbiA1 MC4wMDAgaGllbiB2YXQgZHVvYyB0cnVuZyBiYXksIGNodSANCnlldSB0YWkgdGFuZyAxIHZhIDIu IFRyb25nIGRvLCBjbyByYXQgbmhpZXUgaGllbiB2YXQgcXV5IHRob2kgTHkgLSBUcmFuIC0gTGUs IGFuaCwgdHUgbGlldSANCmtob2EgaG9jIHZlIG5vaSBkdW5nIFRoYW5nIExvbmcgdGhvaSBEYWkg VmlldCB2YSB2aWVjIHBoYXQgaGllbiBjbyB2YXQga2h1IHZ1YyBIb2FuZyB0aGFuaCBUaGFuZyBM b25nLi4uIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEwLTA1LTA1LWtob25nLWNo aS1ob2FuZy10aGFuaC1sYS10aGFuaC1jdW5nLWJpLXBoYSBLaGFuaCBMaW5oIDA3LzA1LzIwMTAg MDY6MDAgR01UKzcNCg0KSGEgTm9pOiBUaGlldSBxdWkgaG9hY2gga2hhbyBjbyBob2MsIHRoaWV1 IGhpZXUgYmlldCB2ZSBsaWNoIHN1IHZhbiBob2EgDQpUaGFuZyBMb25nLUhhIE5vaSB2YSBjbyB0 aGUgZG8gY2EgdGhpZXUgdGluaCB0aGFuIHRyYWNoIG5oaWVtIG5lbiBuZ3VvaSANCnRhIGRhIGRv aSB4dSB2b2kgbW90IGRpIHRpY2ggbGljaCBzdSBuaHUgbW90IGNvbiBkdW9uZyBnaWFvIHRob25n IGRvbiB0aHVhbiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9C by1DaGluaC10cmktZG9uZy10aW5oLXBodW9uZy1hbi1uaGFuLXN1LWN1YS1IYS1Ob2ktOTMyMTc5 LyBUVFhWTiAyMzoyMywgMjcvMDgvMjAxMCAoR01UKzcpIA0KDQpIYSBOb2k6IFRoYWkgZG8sIHRy YWNoIG5oaWVtIGN1YSBtb3QgYm8gcGhhbiBjYW4gYm8sIGRhbmcgdmllbiBjbyBzbyB2YSBvIG1v dCBzbyBuZ2FuaCBjaHVhIGNhbywgY29uIGNvIGJpZXUgaGllbiB0cmkgdHJlLiANCg0KaHR0cDov L3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNS0wNS1raG9uZy1jaGktaG9hbmctdGhhbmgtbGEt dGhhbmgtY3VuZy1iaS1waGEgS2hhbmggTGluaCAwNy8wNS8yMDEwIDA2OjAwIEdNVCs3DQoNCkhh IE5vaTogTGFuaCBkYW8gSGEgTm9pICJ0cmVvIiBraWVuIG5naGkga2hhbyBjbyEgDQoNCmh0dHA6 Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDUtMDUta2hvbmctY2hpLWhvYW5nLXRoYW5oLWxh LXRoYW5oLWN1bmctYmktcGhhIEtoYW5oIExpbmggMDcvMDUvMjAxMCAwNjowMCBHTVQrNw0KDQpI YSBOb2k6IEtob25nIGNoaSBIb2FuZyBUaGFuaCBiaSBwaGEgbWEgTGEgVGhhbmggY3VuZyBiaSBw aGEgIA0KDQpodHRwOi8vd3d3LmRhbmxlbnRpZW5nLm5ldC9zcGlwLnBocD9hcnRpY2xlNTcyNiBO SFEgMTkvMDQvMjAxMA0KDQpNb3QgdGhhaSBkbyB2byBjYW0gDQoNCk1heSB0aGFuZyB2dWEgcXVh LCBjdSBkYW4gbWFuZyBraG9uZyBuZ290IHhvbiB4YW8gdmUgY2FjIGNhbmggbnUgc2luaCBkYW5o IG5oYXUgbW90IA0KY2FjaCB0YW4gbmhhbi4gSGF1IG5odSBhaSBjdW5nIHRoYXkgZGlldSBuYXk6 IGhvYyBzaW5oIGRhbmggbmhhdSBsYSBjaHV5ZW4ga2hhIGJpbmggDQp0aHVvbmc7IG51IHNpbmgg ZGFuaCBuaGF1IHR1eSBraG9uZyBiaW5oIHRodW9uZyBuaHVuZyBjdW5nIGtob25nIGNvIGdpIGRh bmcgbmdhYyANCm5oaWVuIGNobyBsYW0uIE5ndW9pIHRhIGNoaSBuZ2FjIG5oaWVuIHRydW9jIHRo YWkgZG8gYmluaCB0aGFuIGR1bmcgZHVuZyBjdWEgY2FjIG51IA0Kc2luaCBraGFjIGN1bmcgbmh1 IGN1YSBuaHVuZyBuZ3VvaSBxdWEgbGFpIGJlbiBkdW9uZy4gS2hvbmcgYWkgIGNhbiB0aGllcC4g RGEgZGFuaC4gDQpIbyBjdW5nIGtob25nIGNvIGNodXQgY2FtIHh1YyBuYW8gY2EuIEdpYW4gZHU/ IEtob25nLiBUaHVvbmcgY2FtPyBLaG9uZy4gUXVhbiANCnRhbT8gSGluaCBuaHUgY3VuZyBraG9u Zy4NCk5obywgdHJ1b2MgZG8gbnVhLCBjdW5nIGR1b2MgdHVuZyBsZW4gaW50ZXJuZXQsIGNhaSB2 aWRlbyBjbGlwIHF1YXkgY2FuaCBtb3Qgb25nIGJvIA0KY2hvbmcgdHJvaSBuZ3VvYyBoYWkgY2Fu aCB0YXkgZHVhIGNvbiBkYXUgcm9pIHZhdCByYSBuZ29haSBkdW9uZy4gTGFuIGxvYyBuaHUgbW90 IGNvbiANCmhlby4gQ2hpIGNvIGR1YSBjb24gbmhvIGxhIGtob2MgYmVuIG1lLiBSb2kgY2FuaCBt b3QgYmEgZ2lhIGJpIG1heSBjb24gY2hvIHRyb25nIGRvbiANCmRpZW4gY2EgcGhlIGNhbiBjaGV0 IHRydW9jIHN1IGR1bmcgZHVuZyBjdWEgbmhhbiB2aWVuIGJhbyB2ZSBkb24gZGllbi4gDQpUb2kg YWMgbyBkYXUgY3VuZyBjby4gTmh1bmcgY2FuaCB0aHVvbmcgdGFtIG8gZGF1IGN1bmcgY28uIE5o dW5nIGxhbSB0aGUgbmFvIGRlIGdpYWkgDQp0aGljaCBkdW9jIG5odW5nIHN1IHZvIGNhbSBsYSBs dW5nIGN1YSBuaHVuZyBuZ3VvaSBkYW5nIHRhbiBtYXQgY2h1bmcga2llbiB0b2kgYWMgdmEgDQpu aHVuZyBjYW5oIHRodW9uZyB0YW0gbWEgdmFuIHRobyBvIHZhIGR1bmcgZHVuZyBuaHUgdGhlPw0K TWEgaGluaCBuaHUga2hvbmcgcGhhaSBjaGkgY28gbmd1b2kgZGFuIG1vaSB0aG8gbyBoYXkgZHVu ZyBkdW5nIHZvIGNhbS4gTmdheSBnaW9pIA0KbGFuaCBkYW8gY3VuZyB0aGUuDQpDb24gbmhvLCBu YW0gMjAwOCwgbXVhIGx1IHRyYW4gbmdhcCB0aGFuaCBwaG8gSGEgTm9pLiBEdW9uZyBuZ2hlbi4g RGllbiB0YXQuIE5oaW4gDQpkYXUgY3VuZyB0aGF5ICBudW9jIG1lbmggbW9uZy4gVGhpZXQgaGFp IHZlIHRhaSBzYW4gdm8ga2UuIFRoaWV0IGhhaSB2ZSBuaGFuIG1hbmcgY3VuZyANCmNvLiBWYXkg bWEsIGRhIGtob25nIGNvIHZlIGdpIGRvbmcgY2FtIHZvaSBkYW4gY2h1bmcsIG9uZyBQaGFtIFF1 YW5nIE5naGksIGJpIHRodSANCnRoYW5oIHV5IEhhIE5vaSwgbGFpIGNoZSB0cmFjaCBsYSBkYW4g Y2h1bmcgImJheSBnaW8gc28gdm9pIG5nYXkgeHVhIHkgbGFpIE5oYSBudW9jIGxhbS4gDQpDdSBj aG8gdHJlbiB2ZSwgY2hvIGN1bmcgY2FwIGNhaSBuYXksIGhvIHRybyBjYWkga2lhIGNodSBraG9u ZyBkZW0gaGV0IHN1YyByYSB0dSBsYW0uIiANCmh0dHA6Ly93d3cua2luaHRlbm9uZ3Rob24uY29t LnZuL1N0b3J5L3hhaG9pLzIwMDgvMTEvMTU2NTYuaHRtbCBDYXUgbm9pIGF5IGtoaWVuIA0KY2hv IG1vdCBuaGEgcGhlIGJpbmggZG9uZyB0aG9pIGN1bmcgbGEgbW90IGRpY2ggZ2lhIHZvbiBiaW5o IHRodW9uZywgaGllbSBraGkgYmFuIA0KY2h1eWVuIGNoaW5oIHRyaSB4YSBob2ksIHBoYWkgcGhh IGxlIHZpZXQgaGFuIG1vdCBiYWksIG1vIGRhdSBiYW5nIGNhdTogIkNoaSByaWVuZyBjYXUgDQpu b2kgY3VhIG9uZyBiaSB0aHUgdGhhbmggdXkgSGEgTm9pIGRhIHh1bmcgZGFuZyBjaG8gb25nIG5o YW4gdHUgbW9pIG5ndW9pIGRhbiBzb25nIA0KdHJvbmcgY2FjIGtodSBiaSBuZ2FwIGx1dCBtYXkg bmdheSB2dWEgcXVhIG1vdCBjYWkgZ2kgZG8uIFR1eSB0YW0gbW9pIG5ndW9pIHRob2k6IGhvYWMg DQptb3QgY2FpIHRhdCwgaG9hYyBtb3QgY2FpIG5obyAudi52LiINCk1vdCBjYWkgdGF0IGhvYWMg bW90IGNhaSBuaG8gZGFuaCBjaG8gUGhhbSBRdWFuZyBOZ2hpIHZpIG9uZyBiYXkgdG8gc3Ugdm8g Y2FtIGJhbmcgDQptb3QgbG9pIG5vaS4gQ28gZGlldSBuZW4gbmhvIGJpZXUgaGllbiBjaGluaCBj dWEgc3Ugdm8gY2FtIGtob25nIHBoYWkgbGEgbG9pIG5vaS4gTWEgbGEgDQpzdSBpbSBsYW5nLiBJ bSBsYW5nIHRydW9jIHN1IGxhYyBoYXUuICBJbSBsYW5nIHRydW9jIHN1IG5naGVvIGRvaS4gSW0g bGFuZyB0cnVvYyBuaHVuZyANCmJhdCBjb25nIHRyb25nIHhhIGhvaS4gSW0gbGFuZyB0cnVvYyBu aHVuZyBzdSBuaHVjIG5oYSBtYSBuZ3VvaSBkYW4sIGN1IHRoZSBsYSBuaHVuZyANCm5ndSBkYW4g YmkgVHJ1bmcgUXVvYyBoYW5oIGh1bmcgaG9hYyBiYXQgYm8uIEltIGxhbmcuIE5oaW4gZGF1IGN1 bmcgdGhheSBpbSBsYW5nLiBUdSANCm5odW5nIG5ndW9pIGNvIGNodWMgdHVvYyB2YSBxdXllbiBo YW5oIGNhbyBuaGF0IG51b2MuDQpLaG9uZyB0aGUga2hvbmcgbmdhYyBuaGllbi4gVmUgcGh1b25n IGRpZW4gbHkgdGh1eWV0LCBkYW5nIGNvbmcgc2FuIGx1YyBuYW8gY3VuZyB0byANCnZlIGRlIGNh byBzdSB0aHVvbmcgY2FtIHRydW9jIG5odW5nIGJhdCBoYW5oIGN1YSBjb24gbmd1b2kgY28gbWE/ IFZlIHBodW9uZyBkaWVuIA0KdHJ1eWVuIHRob25nLCBuZ3VvaSBWaWV0IHZvbiBkdW9jIHhlbSBs YSBoYXkgcXVhbiB0YW0gdmEgZ2l1cCBkbyBuaGF1IGxhbSBtYT8gQ2EgDQpkYW8sIHR1YyBuZ3Us IGNvIHRpY2gsIHZhbiBob2MsIHZhIGNhIGtpbmggbmdoaWVtIHRyb25nIGRvaSBzb25nIGhhbmcg bmdheSBjdW5nIGNobyANCmNodW5nIHRhIHRoYXksIG5nYXkgeHVhIG5ndW9pIHRhIHNvbmcgdGh1 YyBzdSBsYSBjbyB0aW5oLg0KVmF5IG1hIHRhaSBzYW8gYmF5IGdpbyBsYWkgdGhlPw0KVG9pIG5o byBtb3Qga3kgbmllbSB0cm9uZyBjaHV5ZW4gdmUgdGhhbSBWaWV0IE5hbSBsYW4gZGF1IHNhdSAx MSBuYW0gbyBuZ29haSBxdW9jLg0KTGFuIGF5LCBuYW0gMTk5NiwgdHUgVWMsIHRvaSB2ZSB0aGFu ZyBIYSBOb2kuIFRyZW4gZHVvbmcgdHUgcGhpIHRydW9uZyBOb2kgQmFpIHZlIA0KdHJ1b25nIERh aSBob2MgTmdvYWkgTmd1IG8gUGh1IFh1YW4sIGNoaWVjIHhlIGJ1eXQgYmkgZHVuZyBsYWksIGtl dCBjdW5nLCBvIG1vdCBuZ2EgDQpiYS4gQ28gdGFpIG5hbiB4ZSBjby4gTmdvaSB0cmVuIHhlLCBu aGluIHh1b25nLCB0b2kgdGhheSBtb3QgdGhhbmggbmllbiBuYW0gc29uZyBzb2FpIA0KZ2l1YSBk dW9uZy4gQ2hpZWMgeGUgZ2FuIG1heSBuZ2EgYmVuIGNhbmguIFRyZW4gZGF1IGFuaCB0aGFuaCBu aWVuIGNvIHZldCBtYXUuIEFuaCANCm5hbSB5ZW4sIGxhdSBsYXUgY2hhbiB0YXkgbGFpIGdpYXQg Z2lhdCBtYXkgY2FpLiBDaHVuZyBxdWFuaCBhbmgsIG5oaWV1LCB0aGF0IG5oaWV1IG5ndW9pIA0K ZHVuZyB4ZW0uIER1bmcgbGEgeGVtLiBLaG9uZyBhaSBsYW0gZ2kgY2EuIEhvIGR1bmcgY2hhdCB0 cmVuIGR1b25nLCBsYW0gbmdoZW4gY2EgDQpnaWFvIHRob25nLiBOaHVuZyBraG9uZyBhaSBsYW0g Z2kgY2EuIEhvIGNoaSBuaGluLiBOaGlldSBuZ3VvaSBub2kgY2h1eWVuLCBiYW4gdGFuLCBjaGkg DQpjaG8uIENvIG5ndW9pIHZ1YSBub2kgdnVhIGN1b2kuIENvIGxlIGhvIGNobyBjb25nIGFuIHRv aS4gQ28gdGhlIGhvLi4uIFRvaSBraG9uZyBiaWV0LiANCk5nb2kgdHJlbiB4ZSwgdG9pIGRpIHR1 IG5nYWMgbmhpZW4gZGVuIGRhdSB4b3QuIFR1IG5oaWVuIGxvZSBsZW4geSBuZ2hpOiBIaW5oIG5o dSBjbyBjYWkgZ2kgDQpkbyBob2kuLi4gYWMuDQpIaW5oIGFuaCBheSBjdSBhbSBhbmggdG9pIG1h aS4gTW90IGxhbiwgdG9pIGtlIHZvaSBiYW4gYmUgbmdoZS4gRW0gY3VhIG1vdCBuZ3VvaSBiYW4g DQpjdWEgdG9pLCB0dSBWaWV0IE5hbSBzYW5nLCBnaWFpIHRoaWNoOiBNb2kgbmd1b2kgYmF0IGRv bmcgdmkgbmdhaS4gTmdhaSBnaT8gTmdhaSB2YSBsYXksIA0KbmdhaSBraGFjIG5ndW9pLCAgbmdh aSBiaSBoaWV1IGxhbSB2aSBkYSBjbyB0cnVvbmcgaG9wIG5ndW9pIGJpIG5hbiBiaSBtb2MgdHVp Li4uIEVtIA0Kbmd1b2kgYmFuIGN1YSB0b2kga2UsIGNhY2ggZGF5IG1vdCB0aG9pIGdpYW4gbmdh biwgdHJvbmcgbW90IHRhaSBuYW4geGUgY28sIG5ndW9pIGJpIG5hbiANCm5nYXQgeGl1IHRyZW4g ZHVvbmcuIERlbiBsdWMgdGluaCBkYXksIHRoYXkgbWluaCBuYW0gdHJvbmcgYmVuaCB2aWVuLCBh bmggdGEgZ2lvIHRheSANCmRpbmggeGVtIGdpbzogZG9uZyBobyBiaWVuIG1hdDsgdGhvIHRheSB2 YW8gdHVpIGRpbmggbGF5IGNhaSBkaWVuIHRob2FpIGRpIGRvbmc6IGNoaWVjIA0KZGllbiB0aG9h aSBiaWVuIG1hdC4gUm8gdGF5IHZhbyB0dWkgcXVhbjogY2FpIHZpIHRpZW4gdmEgZ2lheSB0byBj dW5nIGJpZW4gbWF0LiBUdW9uZyBiYWMgDQpzaSBoYXkgeSB0YSBjYXQgZGF1IGRvIHRyb25nIHRo b2kgZ2lhbiBhbmggYmF0IHRpbmguIE5odW5nIGhvaSwga2hvbmcgYWkgYmlldCBjYS4NCk5ldSBk byBsYSBtb3QgbG9pIGdpYWkgdGhpY2gsIGNodW5nIHRhIHRoYXkgZ2kgZGFuZyBzYXUgbG9pIGdp YWkgdGhpY2ggYXk/IFRydW9jIGhldCBsYSBjYW0gDQpnaWFjIHNvIGJpIG5naGkgbmdvLiBEaWV1 IGRvIGN1bmcgY28gbmdoaWEgbGEgbmdoaSBuZ28gbmd1b2kga2hhYy4gVmEsIHF1YW4gdHJvbmcg aG9uLCANCm5naGkgbmdvIHZhbyBjb25nIGx5LiBWaSBuZ2hpIG5nbyBuZW4gYWkgY3VuZyB0aHUu IFRodSB0aGUgdmEgdGh1IHRoYW4uIFRodSBxdWEgdGhhbmggDQptYWMga2UuIFRob2kgbWFjIGtl IGF5IGtlbyBkYWkgbGF1IGtoaWVuIG5ndW9pIHRhIHRoYW5oIG5odW5nIGtlIGJhbmcgcXVhbiB0 cnVvYyBtb2kgDQpiYXQgaGFuaCwgbW9pIHN1IHRodW9uZyB0YW0gdmEgbW9pIGRpZXUgc2FpIHRy YWkuDQoNCkN1b2kgY3VuZyB0aGFuaCBuaHVuZyBrZSB2byBjYW0uDQoNCmh0dHA6Ly93d3cuaGFu b2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFuX2RvY192aWV0LzMwMjgwNi94YS1raW0tY2h1bmct aHV5ZW4taG9haS1kdWMtZGluaC1sYWkteGEtYmkteGFtLWhhaS5odG0gMjUvMTIvMjAwOSAxNDow NyBUcmFuIEhvbmcgDQoNCkhhIE5vaTogRGluaCBMYWkgWGEgdGhvIFRpZXQgY2hlIFF1b2MgY29u ZyBUcmFuIExpZXUgLSBEaSB0aWNoIGxpY2ggc3UsIHZhbiBob2EgY2FwIHF1b2MgZ2lhIC0gYmkg eGFtIGhhaSwgeHVvbmcgY2FwIG5naGllbSB0cm9uZywgbW9jIG1lbywgYm9jIG11aSBob2kgbm9u ZyByYXQga2hvIGNoaXU7IGhhbmcgdHJhbSBobyBraW5oIGRvYW5oIHZheSBraW4gZGluaC4uLiAN Cg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9Cby1DaGluaC10cmkt ZG9uZy10aW5oLXBodW9uZy1hbi1uaGFuLXN1LWN1YS1IYS1Ob2ktOTMyMTc5LyBUVFhWTiAgMjM6 MjMsIDI3LzA4LzIwMTAgKEdNVCs3KSANCg0KSGEgTm9pOiBWYWkgdHJvIGN1YSBtb3QgdHJ1bmcg dGFtIGxvbiB2ZSB2YW4gaG9hLCBraG9hIGhvYywgZ2lhbyBkdWMsIHkgdGUgY2h1YSBkdW9jIA0K cGhhdCBodXkgZGF5IGR1OyBjaHVhIGtoYWkgdGhhYyB0cmlldCBkZSB0aWVtIG5hbmcsIGxvaSB0 aGUsIG5oYXQgbGEgZG9pIG5ndSB0cmkgdGh1YyB0cmVuIGRpYSBiYW4uIA0KDQpodHRwOi8vd3d3 LnJmYS5vcmcvdmlldG5hbWVzZS9WaWV0bmFtZXNlTmV3cy92aWV0bmFtbmV3cy9BaXItcG9sbHV0 aW9uLWluLWJpZy1WaWV0bmFtZXNlLWNpdGllcy1iZWluZy1hbGVydGVkLTEwMTEyMDEwMTAxMzA3 Lmh0bWwgUkZBLTExLTEwLTIwMTANCg0KSGEgTm9pOiBLaG9uZyBraGkgY2FjIGRvIHRoaSBsb24g KHRyb25nIGRvIEhhIE5vaSkgY28gbm9uZyBkbyBvIG5oaWVtIG5hbmcNCg0KTmFtIGRvIHRoaSBs b24gdGFpIFZpZXQgTmFtIGhpZW4gY28gbm9uZyBkbyBvIG5oaWVtIGtob25nIGtoaSBraGEgY2Fv IGxhIHRoYW5oIHBobyBIbyANCkNoaSBNaW5oLCBCaW5oIER1b25nLCBEb25nIE5haSwgSGFpIFBo b25nIHZhIEhhIE5vaS4NCg0KQmFvIFNhaWdvbiBHaWFpIFBob25nIG1vaSBkYW5nIHRhaSB0aG9u ZyB0aW4gIG5heSB2YSAgY2hvIGJpZXQgdGhlbSwgY2FjIG5ndXllbiBuaGFuIA0KY2hpbmggZGFu IHRvaSB0aW5oIHRyYW5nIG5heSBsYSBkbyBoYXUgcXVhIGN1YSBob2F0IGRvbmcgc2FuIHh1YXQg Y29uZyBuZ2hpZXAgdmEgZ2lhbyANCnRob25nLg0KDQpUaGVvIGtoYW8gc2F0IGN1YSBCbyBDb25n IHRodW9uZyB0aGkgY2FjIGhvYXQgZG9uZyBzYW4geHVhdCBjb25nIG5naGllcCBjaGllbSA0MCUg DQpuZ3V5ZW4gbmhhbiBnYXkgcmEgbyBuaGllbSwgcGhhbiBjb24gbGFpIGRvIHNpbmggaG9hdCBo YW5nIG5nYXkgY3VhIG5ndW9pIGRhbiB2YSANCm5nYW5oIGdpYW8gdGhvbmcgLCB2YW4gdGFpIGdh eSByYS4NCg0KTyBuaGllbSB0YW5nIGNhbyB0YWkgY2FjIGtodSBjb25nIG5naGllcCBsYSBkbyBu aHVuZyB4dSBseSBraGkgdGhhaSBjb24gZG9uIGdpYW4sIGhvYWMgDQpkb2FuaCBuZ2hpZXAgY28g eSB4YSBraGkgdGhhaSBraG9uZyBxdWEgeHUgbHkuDQoNCkNobyBkZW4gbmF5IGNhYyBoaW5oIHRo dWMga2llbSB0cmEsIHh1IGx5IG5odW5nIHZ1IHZpIHBoYW0gbW9pIHRydW9uZyBjaGkgY2h1IHRy b25nIA0KZGVuIHZpZWMgeHUgbHkgbnVvYyB0aGFpIHZhIGNoYXQgdGhhaSBuZ3V5IGhhaSBjdWEg ZG9hbmggbmdoaWVwIG1hIGNodWEgbWF5IHF1YW4gdGFtIA0KZGVuIGtoaSB0aGFpLCB2aSB0aGUg bmhpZXUgZG9hbmggbmdoaWVwIHZhbiB4ZW0gbmhlIHZhbiBkZSBuYXkuIA0KDQpWZSBjYWMgaG9h dCBkb25nIGdpYW8gdGhvbmcsIHZhbiB0YWksIHNvIHBodW9uZyB0aWVuIGRpIGNodXllbiBjYSBu aGFuIGRhIHZ1b3QgY29uIHNvIA0KaGFuZyB0cmlldSwgdHV5IG5oYSBudW9jIHZhbiBraHV5ZW4g a2hpY2ggdmllYyBzdSBkdW5nIHBodW9uZyB0aWVuIGNodXllbiBjaG8gY29uZyANCmNvbmcsIG5o dW5nIGN1bmcgY2h1YSB0aHUgaHV0IGR1b2Mgc3UgdGhhbSBnaWEgdGljaCBjdWMgY3VhIG5ndW9p IGRhbi4NCg0KIk8gbmhpZW0ga2hvbmcga2hpIGxhIHNhdCB0aHUgdGhhbSBsYW5nIiwgZG8gbGEg Y2FuaCBiYW8gY3VhIGNhYyBjaHV5ZW4gZ2lhLCB2aSBraG9uZyANCmdheSBoYXUgcXVhIHR1YyBr aGFjIG1hIHRpZXUgZGlldCBhbSB0aGFtIHN1YyBraG9lIGN1YSB0YXAgdGhlIHZlIGxhdSBkYWku DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Mi8yMDEwMTAx MjEyMDMwMi5hc3B4IDEyLzEwLzIwMTAgMTI6MDMgDQoNCkhhIE5vaTogVGFjIGR1b25nIG5naGll bSB0cm9uZyBjaGlldSBIYSBOb2kgLSBOb2kgQmFpICANCiAgDQpUdSA4IGdpbyAzMCBkZW4gMTEg Z2lvIHRydWEgbmF5ICgxMi4xMCkgZGEgeGF5IHJhIHVuIHRhYyBnaWFvIHRob25nIG5naGllbSB0 cm9uZyB0dSBuZ2EgDQp0dSBkdW9uZyBOYW0gSG9uZyAtIEJhYyBUaGFuZyBMb25nLCBrZW8gZGFp IGdhbiAya20sIHRoZW8gY2hpZXUgZGkgdHUgSGEgTm9pIHRvaSBzYW4gDQpiYXkgTm9pIEJhaS4g DQoNCkNhYyB4ZSBvdG8gZGkgcXVhIGtodSB2dWMgbmdhIHR1IGtob25nIGNvIHRpbiBoaWV1IGdp YW8gdGhvbmcgcGhhbiBsdW9uZywga2hvbmcgDQpuaHVvbmcsIHRyYW5oIGxhbiBuaGF1LCBkYW4g dG9pIHVuIHUsIGtldCB4ZSB0cmFtIHRyb25nLg0KDQpBbmggY2h1cDogQ2FjIG90byBub2kgZHVv aSBuaGF1IG5oaWNoIHR1bmcgY2h1dCAtIEFuaDogTmdvYyBUaGFuZw0KIA0KaHR0cDovL2dvdm4u d29yZHByZXNzLmNvbS8yMDEwLzEwLzAyL2dvYy1uaGluLWglRTElQkIlOTlpLWNoJUUxJUJCJUE5 bmctbmdhbi1uYW0tciVFMSVCQiU5M25nLWQlRTElQkElQTFpLWwlRTElQkIlODUtZyVFMSVCQSVB Rm4tZGEtcnVieS8gMi8xMC8yMDEwIA0KDQpIYSBOb2k6IEhvaSBjaHVuZyBuZ2FuIG5hbSAtIDEw MDAgY29uIHJvbmcgLSBMYW5nIHBoaSB0aWVuIHR5IA0KDQpSb25nIGRhaSBsZSBnYW4gZGEgcnVi eTogODAwIFVTRC9jb24NCg0KSGFvIHBob25nIHZhIGdpYXUgY28gcXVhIDIwMDAgdmllbiBuZ29j IHJ1YmkgdHUgbmhpZW4gZHVvYyBuaGFwIHR1IGNoYXUgUGhpIHZlIGRlIA0KZ2FuIG1hdCBjaG8g bHUgcm9uZyBkdWMsIGxhbSBxdWEgbHV1IG5pZW0gY2hvIGNhYyBkYWkgYmlldSBtdW5nIGRhaSBs ZSEgS2hvYW5nIDEuMDAwIGNvbiB2YSBjaGkgcGhpIGtob2FuZyA4MDAgVVNEL2Nvbi4gDQoNCk5o aWV1IG5ndW9pIG51b2MgbmdvYWkgbm9pIGNhYyBiYWMgVk4gbmdoZW8gZ2FuIGRvaSBzbyB0aGUg Z2lvaSBtYSB2dW5nIHRheSBxdWEgY2FwIA0KaGFvIHBob25nIHF1YSBuaGkhIE1hIHF1YSBuaHUg dGhlLCBuZ29haSB2aWVjIG1vaSBtYXQgcm9uZyBsYXkgaGFpIHZpZW4gcnVieSBkaSBkYW5oIA0K bmhhbiAoZGFpIGxvYWkgdGhlKSwgdGhpIGRhaSBiaWV1IGN1bmcga2hvbmcgY2hhYyBuaGFuIGR1 b2MgbW90IHRhYyBwaGFtIGNvIGdpYSB0cmkgdGhhbSANCm15IGNhby4NCg0KRHUgbHVhbiBkYSBk YXQgbmhpZXUgZGF1IGhvaSB2ZSBoaWV1IHF1YSB2YSBjYWNoIHRodWMgY2hpIHRpZW4gY2hvIGRh aSBsZSBuYXkuIA0KTmhhIGdpYW8gliBuaGFuIHNpIFBoYW0gVG9hbiB0aG90IGxlbjogZGF5IGxh IG1vdCB2dSB0aWV1IHRpZW4gdm8gdG9pIHZhLiBHUyBUdW9uZyBMYWkgDQpjYW5oIGJhbzogaG9p IGNvbmcgZGFuLCB2YW4gaG9hIGRhbmcgbGFtIG5ndXkhDQoNCihOaGEgdmFuIFZvIFRoaSBIYW8v QkJDKSANCg0KaHR0cDovL3RyYW5uaHVvbmcuY29tL25ld3NfZGV0YWlsLzY0OTkvTFUtTFVULXZh LURBSS1MRSBUcmFuIEh1eSBUaHVhbg0KDQpMVSBMVVQgdmEgREFJIExFDQogDQpUaW4gdHJlbiBi YW86IG5nYXkgbXVuZyBuYW0gdGhhbmcgbXVvaQ0KQmEgbXVvaSBkb25nIGJhbyB0YSBraG9uZyBj b24gbnVhWzFdDQpMdSBsdXQgbWllbiBUcnVuZyBkYSBjdW9wIGhvIGRpIHJvaQ0KQ2EgbnVvYyBx dWFuIGRhdSB0dW5nIGtodWMgcnVvdC4NCiANCkN1bmcgdGluIHRyZW4gYmFvIG5nYXkgbXVuZyBu YW0gdGhhbmcgbXVvaQ0KSGEgTm9pLCBUUkFJIFRJTSBDQSBOVU9DDQpEYW5nIHR1bmcgYnVuZyBs ZSBob2kgIm5nYW4gbmFtIg0KIkNoaW4gZ2lvIGdpb2kgdGhpZXUgY29uZyB0cmluaCBnb20gc3Uu Li4NCkhhaSBtdW9pIGdpbyBOaGEgaGF0IGxvbiBjYSBuaGFjIHZhbmcgdmFuZyIhDQooVHJ1b2Mg ZG8gYmEgZ2lvLCBudW9jIHNvbmcgS2llbiBHaWFuZw0KdmFuIGNvbiB0cmVuIG11YyBiYW8gZG9u ZyBiYSkuDQogDQpDaHVuZyB0YSBjdSB0aHVvbmcgbmdoZSBoYWkgdHUgVk8gQ0FNDQpOaHVuZyB0 dW9uZyByYW5nIG5vIGxhbiBraHVhdCBkYXUgZGF1Lg0KVGhpIGhvbSBuYXkgbm8gaGllbiByYSBy YXQgZGluaCBkYW0NClRydW9jIG1hdCBtdW9uIG5ndW9pLCB0cnVvYyB0aGF0IHN1IG5vaSBkYXUh DQogDQoNCk5naGUgbmh1bmcgdGhvbmcgdGluIHRyYWkgbmd1b2MNCnRyb25nIGxvbmcgbmdvbiBu Z2FuZyBoYWkgZGlldSAiTUFULCBEVU9DIg0KTGFpIG5obyBkZW4gY2F1IG5heToNCiJUaWVuIGJv IHR1aSB0aGF5LCANCg0KQWkgY2hldCBtYWMgdGhheSIhDQoNClRIVCANCg0KaHR0cDovL2Rvbmdh MDEuYmxvZ3Nwb3QuY29tLzIwMDkvMTIvdGFpLXNhby1sYWktbGEtY2h1Lmh0bWwgUG9zdGVkIGJ5 IERvbmcgQSAxMi8zMC8yMDA5IDAyOjE3OjAwIFBNDQoNClRoYW5nIExvbmcgLSBIYSBOb2k6IFRh aSBzYW8gbGFpIGxhIGNodSAidGhpZW4iPyANCg0KQ2h1bmcgdG9pIHhlbSBhbmggTGUgaG9pIGhv YSBIYSBOb2kgdHJlbiBiYW8gRGFuIHRyaSAoYW5oIG1pbmggaG9hIGtlbSB0aGVvKTsgDQp4ZW0g ZGVuIGJ1YyBhbmggY2h1cCBiaWV1IHR1b25nICJUaGllbiBkbyBjaGlldSIgdGhpIGtob25nIHRo ZSBuYW8gaGlldSBub2kgdGFpIHNhbyANCmxhaSBsYSBjaHUgInRoaWVuIiBjbyBuZ2hpYSBsYSAi dHJvaSIgbyBiaWV1IHR1b25nIG5heS4gTmV1IHZpZXQgY2h1ICJ0aGllbiIgdHJvbmcgDQoiVGhp ZW4gZG8gY2hpZXUiIHRoaSBwaGFpIGxhIGNodSAidGhpZW4iIGNvIG5naGlhIGxhICJkaSBkb2ki IGNodS4gVGhhbmcgTG9uZyBuZ2hpbiBuYW0gDQp2YW4gaGllbiBkZW4gbm9uZyBub2kgbmF5IHU/ IA0KDQpBbmggY2h1cDogQmlldSB0dW9uZyAnQ2hpZXUgInRyb2kiIGRvJyB0cnVuZyBiYXkgdGFp IEhhIE5vaSAoYW5oLWJhbyBkYW4gdHJpKQ0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5l dC52bi8yMDEwLTA5LTI0LWRvYy1jaGlldS1kb2ktZG8tYmFuZy1kb2ktbWF0LWhpZW4tdGFpIDEv MTAvMjAxMCANCg0KVGhhbmcgTG9uZyAtIEhhIE5vaTogTmdheSAxLzEwLzIwMTAsIGJpZXUgdHVv bmcgImNoaWV1IGRvaSBkbyIgbGFpIHZhbiBsYSBjaHUgInRyb2kiICh0aWVuZyBIYW4pIGNodSBr aG9uZyBwaGFpIGNodSAiRG9pIiAoZGkgZG9pKS4gIA0KDQooQW5oIGNodXA6IEJpZXUgdHVvbmcg J0NoaWV1ICJ0cm9pIiBkbycgdHJ1bmcgYmF5IHRhaSBIYSBOb2kpIA0KDQpodHRwOi8vbmd1eWVu eHVhbmRpZW4uYmxvZ3Nwb3QuY29tLzIwMTAvMDgvdmUtY29uLXJvbmctbWEtYmktdGh1LXRoYW5o LXV5LWhuLXRhbmcuaHRtbCAzMS0wOC0yMDEwDQoNCkhhIE5vaTogVmUgY29uIFJvbmcgbWEgQmkg dGh1IFRoYW5oIHV5IEhhIE5vaSB0YW5nIERhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lhcCANCg0KMTAw MCBDT04gUk9ORyBIQVkgMTAwMSBDT04gUk9ORz8gDQoNClRoYW8gZGFuIA0KDQpUTkM6IEtlIHRo YW8gZGFuIG5heSBob2kgYmkgbGFtIGNhbS4gQ2hhIGxhIHRoZSBuYXksIGhvbSBxdWEgSGEgTm9p IGxhbSBsZSBTYWkgdGluaCANCmtoYWkgcXVhbmcgMTAwMCBjb24gcm9uZy4gTGFpIGRvYyB0aW4g aG9tIDI0LTggb25nIFBoYW0gUXVhbmcgTmdoaSBkYSBtYW5nIDEgY29uIA0Kcm9uZyBzbyBoaWV1 IDEwMCBkZW4gbXVuZyB0aG8gRGFpIHR1b25nIFZvIE5ndXllbiBHaWFwIDEwMCB0dW9pLiBUaGFv IGRhbiBuYXkgZGFtIA0KcmEgbmdoaSBuZ29pIG5ldSBraHV5ZXQgY29uIHJvbmcgc28gMTAwIHRo aSBjaGkgY29uIDk5OSBjb24gbGFtIGxlIGhvbSBxdWEgaG9hYyBsYSBjbyAyIA0KY29uIG1hbmcg c28gMTAwIGhvYWMgbGEgbXVvbiBEYWkgdHVvbmcgY29uIDEwMCByYSBsYW0gbGUuIEtob25nIGJp ZXQgbGEgdGhlIG5hbywgcXV5IA0KdmkgYWkgYmlldCB4aW4gdHJhIGxvaSBrZSB0aGFvIGRhbiBu YXkgbW90IHRpZW5nLi4uDQoNClJvbmcgVGhhbmcgTG9uZyBjaGluaCB0aHVjIGR1b2MgbGFtIGxl ICJLaGFpIHF1YW5nIg0KDQooVlRDIE5ld3MpIJYgTmdheSAyOS84LCB0YWkgSG9hbmcgVGhhbmgg VGhhbmcgTG9uZyBIYSBOb2ksIDEuMDAwIGt5IHZhdCBSb25nIA0KVGhhbmcgTG9uZyBzYXUga2hp IGRhIGR1b2MgbGFtIGxlICJTYWkgdGluaCwga2hhaSBxdWFuZyIgZGUgdHJvIHRoYW5oIG1vbiBx dWEgbHV1IG5pZW0gDQpkYWMgYmlldCBjaGFvIG11bmcgRGFpIGxlIG5naGluIG5hbSBUaGFuZyBM b25nIEhhIE5vaS4gTmdoaSBsZSBsaW5oIHRoaWVuZyBuYXkgZGFuaCANCmRhdSBzdSBraWVuIGhv YW4gdGhpZW4gMTAwMCBSb25nIFRoYW5nIExvbmcgLSBLeSB2YXQgY3VhIERhaSBsZSBuZ2hpbiBu YW0gVGhhbmcgDQpMb25nIGRlIHRoYW0gZ2lhIHBodWMgdnUgY2hvIGNhYyBob2F0IGRvbmcgY3Vh IERhaSBsZSBkYW5nIGRlbiBnYW4uDQoNCihIaW5oIGFuaCBsZSBzYWkgdGluaCBraGFpIHF1YW5n IGRpZW0gbmhhbikNCg0KKERvYyB0aW4gdGhlbyBsaW5rIGh0dHA6Ly93d3cucm9uZ3RoYW5nbG9u Zy52bi9ub2RlLzg2KQ0KDQpIYSBOb2kgdGFuZyByb25nIFRoYW5nIExvbmcgbXVuZyB0aG8gRGFp IHR1b25nDQoNCkJpIHRodSBUaGFuaCB1eSBIYSBOb2kgUGhhbSBRdWFuZyBOZ2hpIGRhIHRhbmcg RGFpIHR1b25nIFJvbmcgVGhhbmcgTG9uZyBtYW5nIA0Kc28gaGlldSAxMDAuDQoNCkRheSBsYSBx dWEgdGFuZyBuaGFuIGRpcCBzaW5oIG5oYXQgbGFuIHRodSAxMDAgY3VhIERhaSB0dW9uZyBWbyBO Z3V5ZW4gR2lhcCwNCg0KU2FuZyAyNC84LCBCaSB0aHUgVGhhbmggdXkgUGhhbSBRdWFuZyBOZ2hp IGN1bmcgbmhpZXUgbGFuaCBkYW8gSGEgTm9pIGRhIHRvaSB0aGFtLCANCmNodWMgdGhvIERhaSB0 dW9uZy4gQmkgdGh1IGtoYW5nIGRpbmgsIHRyb25nIHRob2kgZ2lhbiBxdWEsIEhhIE5vaSBsdW9u IGx1b24gZ2hpIG5obywgDQp0aHVjIGhpZW4gbG9pIERhaSB0dW9uZyBjYW4gZGFuLCBuaGFjIG5o bywgeGF5IGR1bmcgRGFuZyBibywgY2hpbmggcXV5ZW4gdnVuZyBtYW5oLCANCnhheSBkdW5nIHRo dSBkbyB2YW4gbWluaCBoaWVuIGRhaS4NCk1hbmcgdGhlbyBtb24gcXVhIGRhYyBiaWV0IGN1YSBk aXAgZGFpIGxlIG5naGluIG5hbSBsYSByb25nIFRoYW5nIExvbmcgKGJpZXUgdHVvbmcgDQpyb25n IHRob2kgTHkpLCBkdW9jIGdhbiBzbyBoaWV1IDEwMCwgb25nIE5naGkga2luaCBjaHVjIERhaSB0 dW9uZyB0cnVvbmcgdGhvLiBWb2kgc28gDQpoaWV1IG5heSwgcm9uZyBtYW5nIHkgbmdoaWEgeSBu Z2hpYSBiYWNoIG5pZW4gZ2lhaSBsYW8sIGJhY2ggcGh1YywgYmFjaCBsb2MuLi4gRGFjIGJpZXQs IA0Kdm9pIG1vdCB2aSB0dW9uZyBsYXkgbHVuZyBuaHUgRGFpIHR1b25nIFZvIE5ndXllbiBHaWFw LCBubyBjb24gbWFuZyB5IG5naGlhIHRyYW0gDQp0cmFuIHRyYW0gdGhhbmcuDQoNCihEb2MgdGlu IHRoZW8gbGluayBodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8wOC8zQkExRkEy Qy8pDQpOZ3VvbjogVHJhbk5odW9uZy5jb20gDQoNCk5ndXllbiBYdWFuIERpZW4gYmluaCBsdWMg MDY6Mzg6DQoNClZheSBsYSBjb24gcm9uZyBtYSBCaSB0aHUgVGhhbmggdXkgSGEgTm9pIGRhbmcg dGFuZyBEYWkgdHVvbmcgY2hpIGxhIG1vdCB2YXQgcGhhbSANCm15IG5naGUgbWEgY2h1YSBoZSBk dW9jIFNhaSB0aW5oLCBraGFpIHF1YW5nLCBkaWVtIG5oYW4gbmh1IDk5OSBjb24gcm9uZyBraWEu IFNhbyBsYWkgDQp4dSBzdSBuaHUgdGhlIGRvaSB2b2kgRGFpIHR1b25nIQ0KDQpZIGtpZW4gYmFu IGRvYzogDQoNCk5ndXllbiBEdWMgSHVuZyAwOToyOSBOZ2F5IDMxIHRoYW5nIDggbmFtIDIwMTA6 IA0KIA0KQ28gbGUgbmFvIGxhaSBuaHUgdmF5LCBobyBkYW0gbGFtIG5odSB2YXkgc2FvPyBkYXkg bGEgdmllYyBoZSB0cm9uZywgb25nIE5naGkgbmVuIGNvIGxvaSANCnRodWEgbGFpIGNobyBybyBy YW5nLiANCg0KTkQgMTA6MzkgTmdheSAzMSB0aGFuZyA4IG5hbSAyMDEwOiANCg0KS2hpIG5naGUg dGluIHZlIGNodXllbiBuYXkgZW0gY28gMiB5IG5naGkgbGFuIHRoYW4gdGhlIG5heToNCg0KTW90 IGxhLCB2aWVjIHRhbmcgcm9uZyBjaG8gRGFpIHR1b25nIG5ldSBjbyB0aHVjIGhpZW4gdGhpIGN1 bmcgbmVuIGxhbSBzYXUga2hpIGNhYyBzdSANCmtpZW4gbGllbiBxdWFuIHRvaSBubyBob2FuIHRo YW5oLiBDaGFuZyBoYW4gbmh1IGtoYWkgcXVhbmcgaGF5IHRlIGNhbyBnaW9pIGRhdCBnaSBkbyBk YS4NCkhhaSBsYTogTmd1b2kgbWFuZyB0YW5nIHJvbmcgY2hvIERhaSB0dW9uZyBuZW4gbGEgMSBi byBsYW8gZGFvIGNhbyBkdWMgdHJvbmcgaG9hYyAxIEJhIA0KbWUgVk5BSC4gT25nIEJpIHRodSBI TiBsYW0gdmllYyBuYXkgZSBraG8gcGh1IGhvcC4gDQogDQpORCAxMToxNCBOZ2F5IDMxIHRoYW5n IDggbmFtIDIwMTA6DQoNCk5ldSB0b2kgbGEgcm9uZyB0aGkgbXVvbiBiYSBtZSBhbmggaHVuZyBu YW8gZG8gKHRpZWMgbGEgYmF5IGdpbyBjYWMgbWUgY3VuZyBtYXQgZ2FuIGhldCANCnJvaSkga2hh aSBxdWFuZyBjaG8gbWluaCBjYWkgZ2kgZG8sIGhvYWMgZG9uIGdpYW4gY2hpIGNoYW0gdmFvIGRl IGNhbSBuaGFuIGR1b2MgaG9pIA0KYW0gY29uIG5ndW9pIHRoZSBreSAyMCB2b2kgbWF1IHZhIG51 b2MgbWF0IGRlIGdpdSBkYXQuIA0KDQpSb25nIG5heSBuaGluIG1pbmggYmFuZyBtYXQgUGhpIGNo YXUuLi4uYnVvbiBuYXUgcnVvdC4gDQoNCk9tYW5pemVuICAxMToxOCBOZ2F5IDAyIHRoYW5nIDkg bmFtIDIwMTA6ICANCg0KRHUgc2FvIGRheSBjdW5nIGxhIG1vdCBoYW5oIHZpIGNhdSB0aGEgLGto b25nIGNvIG1vdCBjaHV0IHRoYW5oIHkgdGhhbmggdGFtIGNodWMgdGhvIA0KY3VhIE5oYSBudW9j IGRvaSB2b2kgRGFpIHR1b25nLiBYZXQgdmUgdGFtIGxpbmggdGhpIHJvbmcgY2h1YSAia2hhaSBx dWFuZyBkaWVtIG5oYW4iIA0KbGEgbW90IGNvbiByb25nIGR1aSwga2hvbmcga2hhYyBjaGkgbW90 IGN1YyBkb25nIDMuNSBrZyBtYSB0aG9pLiANCg0KVEQgMTI6MTYgTmdheSAwMiB0aGFuZyA5IG5h bSAyMDEwOiANClRyb25nIGRpcCBreSBuaWVtIDEwMDAgbmFtIFRoYW5nIExvbmcgbmF5LCBuZW4g Y2hhbmcsIGN1bmcgY2FuIGNvIHN1IHF1YW4gdGFtLCB0aGFtIGhvaSB0b2kgY2FjIG1lIFZpZXQg TmFtIGFuaCBodW5nLCBjYWMgdGh1b25nIGJpbmggdmEgZ2lhIGRpbmggbGlldCBzaS4uLiAgDQoN Cmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDgvQm8tQ2hpbmgtdHJpLWRv bmctdGluaC1waHVvbmctYW4tbmhhbi1zdS1jdWEtSGEtTm9pLTkzMjE3OS8gVFRYVk4gIDIzOjIz LCAyNy8wOC8yMDEwIChHTVQrNykgDQoNCkhhIE5vaTogVmllYyB4YXkgZHVuZyB2YW4gaG9hIE5n dW9pIEhhIE5vaSB0aGFuaCBsaWNoLCB2YW4gbWluaCBjaHVhIHR1b25nIHh1bmcgdm9pIHlldSBj YXUgY3VhIG1vdCBUaHUgZG8gbmdhbiBuYW0gdmFuIGhpZW4uIA0KDQotLS0tLQ0KUGh1IGNodW9u ZzogRGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmctIEhhIE5vaSAgDQoNCmh0dHA6Ly9uaGtpZW4u YmxvZ3Nwb3QuY29tLzIwMTAvMDYvY2h1YW4tYmktYWktbGUtMTAwMC1uYW0tdGhhbmctbG9uZy1o YS5odG1sIFZ1b25nIEhhIDA1LzYvMjAxMA0KDQpDaHVhbiBiaSBEYWkgbGUgMTAwMCBuYW0gVGhh bmcgTG9uZyCWIEhhIE5vaSAiQ28gdGhlIGJpIGxhbSBkdW5nIGRlIHR1IGxvaSIgDQoNCkxhbmcg cGhpIHRpZW4gY3VhIHRyb25nIGxlIGhvaSBsYSBkZSB0YWkgZHVvYyBEQlFIIG5oYWMgcXVhIG5o aWV1IHR1IGNhYyBwaGllbiBob3AgVUJUViANCmRlbiBwaGllbiB0aGFvIGx1YW4gY3VhIFFIIHRh aSBIb2kgdHJ1b25nLg0KDQpWYW4gZGUgbmF5IGNhbmcgbm9uZyBob24sIGtoaSBuZ2FuIHNhY2gg Y2hpIGNobyB2aWVjIGNoaW5oIHRyYW5nIGRvIHRoaSBIYSBOb2kgcXVhIGxvbiwgDQptYSBjdW9j ICJkYWkgcGhhdSB0aGFtIG15IiBIYSBOb2kgbGFpIGtoaWVuIG5ndW9pIGRhbiB2YSBkdSBsdWFu IGJ1YyB4dWMuIA0KDQpUcmFvIGRvaSB2b2kgRFMmUEwsIG9uZyBEYW8gVHJvbmcgVGhpLCBDaHUg bmhpZW0gVUIgVmFuIGhvYSwgR2lhbyBkdWMsIFRoYW5oIA0KdGhpZXUgbmllbiB2YSBOaGkgZG9u ZyBjdWEgUUggY2hvIHJhbmc6IExlIGhvaSBtbyByYSBwaGFpIG5oYW0gbmFuZyBjYW8gZG9pIHNv bmcgdGluaCANCnRoYW4gY3VhIG5ndW9pIGRhbiwgY2FuIGxhbSBuaHVuZyBuZW4gdGluaCB0b2Fu IGxhbSBzYW8gZGF0IGR1b2MgaGlldSBxdWEuDQoNClRvaSBkYXkgbWluaCBjbyAiMS4wMDAgbmFt IFRoYW5nIExvbmciLCBxdWEgdHJpbmggY2h1YW4gYmkgZGUgdGllbiB0b2kgbGEgY2EgbW90IGhl IA0KdGhvbmcga2hvbmcgY2hpIG8gSGEgTm9pIG1hIGNhYyBkaWEgcGh1b25nIGxpZW4gcXVhbiBk ZW4gSGEgTm9pIJYgVGhhbmcgTG9uZyBuaHUgDQpjYWMgY28gZG8sIGNhYyB0aW5oLCBjYWMgZGlh IHBodW9uZyBjbyBxdWFuIGhlLiBEYXkgbGEgbmFtIGRhYyBiaWV0Lg0KDQpUcm9uZyB0byBjaHVj IGN1IHRoZSwga2hvYW4gbmFvIHBodW5nIHBoaSBtYSBraG9uZyBjYW4gdGhpZXQgdGhpIGN1bmcg a2hvbmcgbmVuLiBDYW4gDQpydXQga2luaCBuZ2hpZW0gbmh1bmcgY2hvIGRvLiBDbyBuZ3VvaSBj dSBub2kgbGUgaG9pIG1hdCBiYW8gbmhpZXUgdGllbiwgdGlldCBraWVtIGRpIHRoaSANCmxhbSBk dW9jIG5oaWV1IHRodSB0aGkgY3VuZyBraG9uZyBkdW5nLg0KDQotIFRoZW8gb25nLCBjaG8gcGh1 bmcgcGhpIGtob25nIGR1bmcgYXkgY3UgdGhlIGxhIG8gZGF1Pw0KDQotIFRyb25nIHRvIGNodWMg Y2FjIGhvYXQgZG9uZyBjdSB0aGUgY28gbmh1bmcgbGFuZyBwaGkga2hvbmcgY2FuIHRoaWV0Lg0K DQpDaGFuZyBoYW4gbmh1IG8gSHVlIGNoaSB2aSBsYW0gY2FpIHNhbiBraGF1IG1hIGNodXllbiBs dW9uIGNhIGhhbmcgY2F5IGhvYSBzdSBjbyBjYSANCnRyYW0gbmFtIHR1b2kuIE5odSB2YXksIGto b25nIGNoaSBsYW5nIHBoaSBtYSBubyBjb24gZGkgbmd1b2MgbGFpIHRpbmggdGhhbiB2YW4gaG9h LiANCkhheSBjaHV5ZW4gSGEgTm9pIGJvIHJhIG5oaWV1IHR5IGRvbmcgZGUgY2hpbmggdHJhbmcg bGFpIHBobyBwaHVvbmcgbGEgdG9uIGtlbS4NCg0KQ3UgdGhlIG5odSBraGF1IGhpZXUsIHF1YW5n IGNhbyB2ZSBsZSBob2kgdGhhdCBzdSBsYSBsYW5nIHBoaSwgbm8ga2hvbmcgbWFuZyBsYWkgaGll dSBxdWEgZ2kgY2EuDQoNCkxhbmcgcGhpIHBoYWkgc28gdm9pIHZpZWMgYW5oIGxhbSBoaWV1IHF1 YSBkZW4gZGF1IGNodSBraG9uZyBwaGFpIGxhIGtob25nIGxhbS4gTGFtIA0KbWEgbWFuZyBsYWkg aGlldSBxdWEgdGhpIGtob25nIGdvaSBsYSBsYW5nIHBoaS4gDQoNCi0gVUIgVmFuIGhvYSBHaWFv IGR1YyBUaGFuaCB0aGlldSBuaWVuIHZhIG5oaSBkb25nIGRhIGJhbyBnaW8ga2hhbyBzYXQgdmFu IGRlIGxhbmcgcGhpDQpuYXkgIGNodWE/IA0KDQotIENodW5nIHRvaSBjaHVhIGdpYW0gc2F0LCBu aHVuZyBjdW9pIG5hbSB2dWEgcm9pIGNvIGdpYW0gc2F0IG5nYW4gdmUgY2FjIGNvbmcgdHJpbmgg DQp0aWVuIHRvaSBjaHVhbiBiaSAxLjAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaS4NCg0KQ2h1 bmcgdG9pIHF1YW4gdGFtIGRlbiBjYWMgaGFuZyBtdWMgZGF1IHR1IGRlIHRpZW4gdG9pIGt5IG5p ZW0uDQoNCi0gUXVhIGdpYW0gc2F0IG5odSB2YXksIG9uZyBiaW5oIGx1YW4gZ2kgdmUgImNvbmcg Y3VvYyIgY2F5IHhvaSBIYSBOb2ksIGNoaW5oIHRyYW5nIGRvIA0KdGhpIG1hIGR1IGx1YW4gZ29p IGxhICJjdW9jIGRhaSBwaGF1IHRoYW0gbXkiIGRheSB0b24ga2VtIG5heSBkZSBiaWVuIEhhIE5v aSAxMDAwIA0KdHVvaSB0aGFuaCAxLTIgbmdheSB0dW9pPw0KDQotIFRvaSBuZ2hpIGNhYyBob2F0 IGRvbmcgbmF5IGdpYSBuaHUgY28gbW90IGtlIGhvYWNoLCBjbyB0aW5oIHRvYW4sIHRoYW0gY2hp IGNvIG1vdCBxdXkgDQpob2FjaCBjdSB0aGUgdGhpIG5vIGRvIHRvbiBrZW0uDQoNClZ1YSByb2ks IGNvIG5oaWV1IGFuaCBkZSByYSBjYWMgaG9hdCBkb25nIGNodWFuIGJpIG5odW5nIGtob25nIG1h bmcgbGFpIGhpZXUgcXVhIGdpLiBDYWkgZG8gbGEgdG9uIGtlbS4gDQoNCi0gQ28geSBraWVuIGNo byByYW5nIHR1IG5odW5nIHZpZWMgbGFtIGtob25nIGhpZXUgcXVhIGF5LCB0aWVuIGN1YSB0dSB2 aWVjIGNodWFuIGJpIERhaSANCmxlIGRhIGRvIHZhbyB0dWkgY3VhIGNhYyBzbywgYmFuIG5nYW5o LCBjYWMgZG9hbmggbmdoaWVwPyANCg0KLSBLaG9uZyBsb2FpIHRydSBuaHVuZyB0cnVvbmcgaG9w IGF5Lg0KDQpCb2kgZGUgdGh1YyBoaWVuIERhaSBsZSAxMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEg Tm9pIHRoaSBtb3Qga2hvYW4ga2luaCBwaGkgYm8gcmEgbGEgDQpyYXQgbG9uLiBWYSByYXQgY28g dGhlLCBjbyBuaHVuZyBuZ3VvaSBsYW0gZHVuZyBjaHV5ZW4gZG8gZGUgdHUgbG9pLg0KDQotIFZp ZWMgImRhaSBwaGF1IEhhIE5vaSIga2hpZW4gY2hvIGtob25nIGl0IGR1IGtoYWNoICBsYW5oIGx1 bmcsIHRoYW0gY2hpIHRobyBvIHZvaSBIYSANCk5vaSwgZHUgZGF5IGxhIG5hbSBkdSBsaWNoIHF1 b2MgZ2lhLiBvbmcgc3V5IG5naGkgZ2kgdmUgZGlldSBuYXk/DQoNCi0gVG9pIG5naGksIGNodW5n IHRhIGN1IGxhbSBtb2kgdmllYyBtb3QgY2FjaCBjaGFwIHZhIHRoaSBoaWV1IHF1YSByYXQgdGhh cC4NClR1eSBuaGllbiwgY3VuZyBjbyBtb3QgdmFuIGRlLCBkaWV1IGtpZW4gY28gc28gaGEgdGFu ZyBjdWEgSGEgTm9pIHJhdCBrZW0gbWEgbGFpIGtob25nIA0KY28gY2h1IHRydW9uZywga2UgaG9h Y2ggZGF1IHR1IG1hbmcgdGluaCBjaGF0IHRoYXQgY28gYmFuLg0KQm9pIHZheSBjdSBjaGFwIHZh LCBjbyB0aSB0aWVuIHRoaSBsYWkgbGFtIGNobyBuYXksIGxhbSBjaG8ga2lhIG5odSB2YXkgc2Ug a2hvbmcgY28gaGlldSANCnF1YSBkYW4gZGVuIHJhdCBsYW5nIHBoaS4NCkNvIGl0IHRpZW4sIGFu aCBuZ2hpIHJhIHN1YSBzYW5nLCBxdWV0IHZvaSBsYW0gbWF0IGJhbmcgbmh1bmcgYW5oIGNodWEg YmFvIGdpbyBjbyBjYWkgDQpuaGluIHRvbmcgdGhlIGtpZW4gdHJ1YyBIYSBOb2ksIGRheSBwaG8g IG5heSB0aGkgbmVuIHF1ZXQgc29uIG1hdSBnaSwgZGF5IHBobyBraGFjIHRoaSANCm1hdSBnaS4g TWluaCBtdW9uIGNoaW5oIHRyYW5nIGNobyBkZXAgaG9uLCBuaHVuZyByYXQgY28gdGhlIGhpZXUg cXVhIHRoaSAgbmd1b2MgbGFpLg0KDQotIFhpbiBjYW0gb24gb25nIQ0KDQoobmd1b246IGh0dHA6 Ly93d3cuZG9pc29uZ3BoYXBsdWF0LmNvbS52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBhcmVu dD0wJnpvbmU9NiZJRD00MjcyKQ0KDQpIb20gVGh1IEJhIDI1LzA1LzIwMTAsIG9uZyBOZ3V5ZW4g TWluaCBUaHV5ZXQgKFBobyBDaHUgbmhpZW0gVXkgYmFuIG5heSBjdWEgDQogUXVvYyBob2kpIGN1 bmcgZGEgdHJhIGxvaSBwaG9uZyB2YW4gYmFvIFR1b2kgdHJlOiBDYW4gY2hhbiBjaGluaCBjaHV5 ZW4gImFuIHRoZW8iIA0KDQoqIFRodWEgb25nLCBuaGFuIHN1IGtpZW4ga3kgbmllbSAxLjAwMCBu YW0gVGhhbmcgTG9uZyCWIEhhIE5vaSBjbyBuaGlldSB2aWVjIGtob25nIA0KdGhhdCB5IG5naGlh LiBOaGlldSB2aWEgaGUgZGFuZyBkZXAgdHUgbmhpZW4gZGFvIGxlbiBsYXQgYmFuZyBkYSBtb2ks IG5oYSByZXUgcGhvbmcgY28gDQpraW5oIHRoaSBzb24gbGFpLi4uIFBoYWkgY2hhbmcgZGFuZyBj byAicGhvbmcgdHJhbyIgY2hpIHRpZW4gbmhhbiAxLjAwMCBuYW0gVGhhbmcgTG9uZz8NCg0KLSAx LjAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaSBsYSBzdSBraWVuIHJhdCBsb24sIGNvIHkgbmdo aWEuIE5oYW4gbGUgaG9pLCB0YSBjaGluaCANCnRyYW5nIGRvIHRoaSBsYSBkdW5nIHZhIG5oaWV1 IHZpZWMgY2hpbmggdHJhbmcgbGEgY2FuIHRoaWV0LiBOaHVuZyBiZW4gY2FuaCBjb25nIHRyaW5o IA0KaG9hbmggdHJhbmcsIGNhbiB0aGlldCwgdG9pIGNvIGNhbSB0dW9uZyBuaGlldSBjb25nIHRy aW5oIGxhbSBjaHVhIGRhdSB2YW8gZGF1LiBDaHVvaSANCmhhbmggZG9uZyBjaG8gbGUgaG9pIGRh eSBxdWEgY28gdGhlIGtoaWVuIGRhbiB0aGF5IHRpZWMsIHNvIGxhbmcgcGhpLiBWaWVjIGNheSB2 aWEgaGUsIGxhdCANCm1vaSwgdGhlbyB0b2kgcGhhaSB4ZW0gbGFpLg0KDQpOaHUgZG9hbiBIYW5n IEtoYXksIEhhbmcgQmFpIGJpIHRoYXkgYm8gaGUgY3UgYmFuZyBibyBoZSBtb2ksIGRhbiBraG9u ZyB0YW4gdGhhbmguIA0KTmh1bmcgdmllbiBibyB2aWEgaGUgZGFuZyByYXQgdG90LCBkdW9jIGxh bSB0dSBkYXUgdGhlIGt5IDIwLCBkdW9jIGRlbyBnb3QgcmF0IGNvbmcgcGh1LCANCm5heSB0dSBu aGllbiBsb3QgbGVuIHRoYXkgYmFuZyBsb3AgbW9pLCB0cm9uIHRydW90LiBDYW4geGVtIGxhaSBs eSBkbyB2aSBzYW8gbmhpZXUgbm9pIA0KdGhpY2ggdGhheSBtb2kgdGhlLCBjbyBwaGFpIGRvIGxh IHRoaWNoIGR1IGFuIHZpIGR1IGFuIGNvIGtpbmggcGhpIGhheSBraG9uZy4NCg0KSGllbiBuYXkg ZHVuZyBsYSBkYW5nIGNvIGhpZW4gdHVvbmcgYW4gdGhlbyAxLjAwMCBuYW0gVGhhbmcgTG9uZy4g TmhpZXUgY29uZyB0cmluaCANCmNoYW5nIGRpbmggZGFuZyBnaSBkZW4gMS4wMDAgbmFtIFRoYW5n IExvbmcsIGtob25nIGxpZW4gcXVhbiBkZW4gbmdhbiBzYWNoIDEuMDAwIA0KbmFtIFRoYW5nIExv bmcgbmh1bmcgY3VuZyBnYW4gYmllbi4gTG9uZyBkYW4gaHVvbmcgdmUgdGhpIHRvdCwgbmh1bmcg ImdhbiIgZGUgbG9pIA0KZHVuZyBzdSBraWVuIG1hIHF1YW5nIGJhLCBiYW4gaGFuZywgY2hpIHRp ZW4gbGEgdmllYyBraG9uZyBkdW5nLCBjYW4gY2hhbiBjaGluaC4NCg0KSG9tIDAzLzQgT25nIEJp IHRodSBUaGFuaCB1eSBIYSBOb2kga2hhbmcgZGluaCB2b2kgUFYgVHUgTmd1eWVuIGN1YSANCnZu ZWNvbm9teS52biByYW5nOiJIYSBOb2kga2hvbmcgbGFuZyBwaGkgdGllbiBjaG8gRGFpIGxlIDEu MDAwIG5hbSAuLi4gdmkgaGF1IGhldCBzbyANCnRpZW4gZHVvYyBjaGkgcmEgY2hvIERhaSBsZSBs YSBvIGR1b2kgZGFuZyB2YXQgdGhlLCBnYW4gdm9pIGRvaSBzb25nIGxhdSBkYWkgY3VhIG5ndW9p IGRhbiBUaHUgZG8uIg0KDQpTYXUga2hpIG9uZyBOZ2hpIGtoYW5nIGRpbmggbmh1IHZheSBraG9h bmcgMTAgbmdheSB0aGkgeGF5IHJhIHZ1IGJvYyBnYWNoLWxhdCBkYSBxdWFuaCBIbyBHdW9tLg0K ICANClhpbiBjaGkgbmhhYyBsYWkgdGhvbmcgdGluLCB2aSBraG9uZyBiaWV0IG5vaSBnaSBob24u ICANCg0KaHR0cDovL215Lm9wZXJhLmNvbS9MZSUyMFRoYW5oJTIwSG9hbmclMjBEYW4vYmxvZy9z aG93LmRtbC8xMTMxOTM3MSBLLkFuIDIwMTAtMDUtMTQNCg0KSGEgTm9pOiAxMDAwIE5hbSBUaGFu ZyBMb25nIJYgTG9pIGljaCBjaG8gbmhpZXUgYmVuPw0KDQpDaHV5ZW4gaGFuZyBuZ2hpbiB0eSBk b25nIGRvIHZhbyBjYWMgY29uZyB0cmluaCBjaHVhbiBiaSBjaG8gZGFpIGxlIA0KIjEwMDAgbmFt IFRoYW5nIExvbmcgliBIYSBOb2kiIGRhIHRhbyByYSBuaGlldSBsdW9uZyBkdSBsdWFuIGtoYWMg bmhhdSBjYSB0cm9uZyBsYW4gbmdvYWkgbnVvYy4gDQpDYWMgbmdoZSBuaGFuIGRvIGRvbmcgbnVu ZyBjaGF5IGNobyByYSBkb2kgY2hpZWMgdHJvbmcgZGF1IHRpZW4gdHJvbmcgMTAwIHRyb25nIA0K ZG9uZyBtdW5nIGRhaSBsZSAxLjAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaSANCg0KTGFuZyBw aGkgdmEgdGhpZXUgdGhpZXQgdGh1YyANCg0KVHJvbmcgZG8sIGNvIG5oaWV1IHkga2llbiBjaG8g cmFuZyBkYXkgbGEgbW90IGR1IGFuIGRhaSBsYW5nIHBoaSwga2hvbmcgbWFuZyBsYWkgDQpoaWV1 IHF1YSBraW5oIHRlLCB4YSBob2kgdHVvbmcgeHVuZyB2b2kgc28gdGllbiBibyByYS4gTW90IHNv IGtoYWMgbGFpIGNobyByYW5nLCANCiIxMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIiBsYSBt b3QgaG9wIGRvbmcgbWFuZyBsYWkgbG9pIGljaCBjaG8gbmhpZXUgYmVuLiANCg0KVHJhIGxvaSBw aG9uZyB2YW4gdHJlbiBiYW8gZGllbiB0dSBWbmVjb25vbXkgdmUgdmllYyBjbyBuaGlldSB5IGtp ZW4gY2hvIHJhbmcgY2FjIA0KY29uZyB0cmluaCBjaHVhbiBiaSBjaG8gZGFpIGxlICIxMDAwIG5h bSBUaGFuZyBMb25nIJYgSGEgTm9pIiBsYSBsYW5nIHBoaSB2YSB0aGlldSANCnRoaWV0IHRodWMs IEJpIHRodSBUaGFuaCB1eSBIYSBOb2kgUGhhbSBRdWFuZyBOZ2hpIGtoYW5nIGRpbmggIkhhIE5v aSBob2FuIHRvYW4gDQpraG9uZyBsYW5nIHBoaSB0aWVuIGN1YSB2YW8gY2FjIGhvYXQgZG9uZyBr eSBuaWVtIERhaSBsZSAxMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIi4gIA0KDQpEZSBtaW5o IHhhYyBjaG8gbG9pIG5vaSBjdWEgbWluaCwgb25nIEJpIHRodSBUaGFuaCBVeSBnaWFpIHRoaWNo IGNhbiBrZSB0dW5nIGxvYWkgDQpoaW5oIGhvYXQgZG9uZy4gQ2hhbmcgaGFuLCBuaHVuZyBob2F0 IGRvbmcgbWFuZyB0aW5oIHBoaSB2YXQgdGhlIG5odSB2YW4gZG9uZyBuaGFuIA0KZGFuIHRodSBk b24gcmFjIGR1b25nIHBobyB2YSBjYSAicmFjIiB0cmVuIHRyb2ksIHRoZW8gb25nLCAibmV1IGRp ZW4gcmEgdHUgdG9uLCBhbSANCnRoYW0gdGhpIHNlIGtob25nIGFpIHRoYXkgZHVvYyBuZW4gcGhh aSBsYW0gdGhhbmggcGhvbmcgdHJhbyBzYXUgcm9uZyBraGFwIHRoYW5oIHBobyIuIA0KDQpDb24g MzQgY29uZyB0cmluaCBtYSB0aGFuaCBwaG8gZGEgZHV5ZXQgdGhpIGRldSBsYSAidmF0IHRoZSIs IGNodSBraG9uZyBwaGFpIGxhIA0KImxlIHRhbiIsIG5vaSBub20gbmEsICJ0aWVuIGRhIHF1eSBy YSB0aGFuaCB0aG9jIiBjYSBkYXkgdGhvaS4gUmllbmcgbmh1bmcgbW9uIA0KcXVhIHRhbmcgdHJp IGdpYSBoYW5nIGNodWMgdHkgZG9uZyB0aGkgY2hpIGxhICJ0aW5oIGNhbSBjdWEgY2EgbnVvYyBk b2kgdm9pIEhhIE5vaSIsIA0Ka2hvbmcgdGhlIG5hbyB0aW5oIHZhbyBuaHVuZyBraG9hbiBjaGkg cGhpIGNobyBEYWkgbGUgZHVvYy4gDQoNCk5oaWV1IG5ndW9pIHZpLCBuaHVuZyBjaHV5ZW4geHVu ZyBxdWFuaCBEYWkgbGUgMTAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaSBjdW5nIA0KZ2lvbmcg bmh1IGNodXllbiBuZ2hpbiBsZSBtb3QgZGVtLCBub2kgbWFpIGtob25nIGhldC4gSGFuZyBsb2F0 IGNvbmcgdHJpbmggdGllbiANCnR5IGR1b2MgZHVhIHJhLCByb2kgYm8sIHJvaSBob2kgaGEgdHJp ZW4ga2hhaSwgcm9pIGdpYWkgcXV5ZXQgaGF1IHF1YS4gTm9pIHRoZW8gDQpraWV1IG5oYSBnaWFv IFBoYW0gVG9hbiwgbW90IHRyb25nIG5odW5nIHNhbmcgbGFwIHZpZW4gY3VhIHdlYnNpdGUgYmF1 eGl0ZXZpZXRuYW0sIA0KbGEgIm1vdCB2dSB0aWV1IHRpZW4gdm8gdG9pIHZhLiBDbyBuaHVuZyBk b2FuIGR1b25nIG1hIG1vaSBtb3QgbWV0IHZ1b25nIHR1IG5oaWVuIA0KYmF5IGdpbyBjYXkgZ2Fj aCBsZW4gbGF0IGxhaSwgdG9uIGtob25nIGJpZXQgYmFvIG5oaWV1IHRpIHRpIGRvbmcuIEJheSBn aW8gbGFpIA0KZHVvbmcgYmFuIG5oYXUgZHVhIHRodSBkbyBsZW4gQmEgVmkuIg0KDQpUdXkgbmhp ZW4sIGN1bmcgbmh1IG5oaWV1IGNvbmcgdHJpbmgga2hhYywgeSB0dW9uZyAiZG9pIGRvIiB0aG9p IGhpZW4gZGFpIGN1bmcgdmFwIA0KcGhhaSBraG9uZyBpdCB5IGtpZW4gcGhhbiBiYWMgdmkgbXVj IGRvIHRvbiBrZW0gbmh1bmcgdGhpZXUgdGh1YyB0ZSBjdWEgbm8uIA0KR1MuIFRTLiBQaGFtIE5n b2MgRGFuZywgQ2h1IHRpY2ggSG9pIE1vaSB0cnVvbmcgeGF5IGR1bmcgVmlldCBOYW0sIHRyYSBs b2kgdHJlbiANCmJhbyBkaWVuIHR1IFZuTWVkaWEgcmFuZywgeSB0dW9uZyBjaHV5ZW4gdHJ1bmcg dGFtIGhhbmggY2hpbmggcXVvYyBnaWEgbGVuIA0KSG9hIExhYyCWIGNoYW4gbnVpIEJhIFZpLCBu Z29haSBuaHVuZyB0b24ga2VtLCB4YW8gdHJvbiwgbGFuZyBwaGksIGNvbiBsYSBtb3QgDQpoYW5o IGRvbmcgdGhpZXUgY29pIHRyb25nIGNoaWV1IGRvaSBkbyBjdWEgSG9hbmcgZGUgTHkgQ29uZyBV YW4sIGtob25nIHBodSBob3AgDQp2b2kgbmdoaW4gbmFtIGxpY2ggc3UgY3VhIHRodSBkbyBUaGFu ZyBMb25nIJYgSGEgTm9pLiANCg0KKEFuaDogVGh1IHZpZW4gSGEgTm9pIGxhIGNvbmcgdHJpbmgg ZHV5IG5oYXQgZGEgaG9hbiB0aGFuaCBkZSBreSBuaWVtIDEwMDAgbmFtIA0KVGhhbmcgTG9uZy4g UGhvdG8gY291cnRlc3kgb2YgdGh1dmllbmhhbm9pLm9yZy52bikgDQoNCkNvIHRoZSB2aSBEYWkg bGUgMTAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaSBnaW9uZyBuaHUgbW90IHNhbiBraGF1LiBD byB0aWV0IG11YyANCmhvYW5oIHRyYW5nIG5odW5nIGtob25nIG1heSB5IG5naGlhLCBjbyB0aWV0 IG11YyBjbyBub2kgZHVuZyBuaHVuZyBsYWkgZ2FwIG5odW5nIA0KZGllbiB2aWVuIHRlLCBjbyB0 aWV0IG11YyBjaHVhIGtpcCB0cmluaCBkaWVuIGRhIHBoYWkgaHV5IGJvLCBkdSBkYSBibyBuaGll dSB0aWVuIGN1YSANCmRhdSB0dS4gDQoNCkR1IGFuIHhheSBkdW5nIGtodSBsdXUgZ2l1IDEwMDAg aGllbiB2YXQgImd1aSB0b2kgbWFpIHNhdSIgZHVvYyBub2kgbGEgZGEgcGhlIGR1eWV0IA0KdHUg bmFtIDIwMDgsIG5odW5nIGR1bmcgbW90IGNhaSwgZGVuIHBodXQgY3VvaSwgdHVjIHZhbyBjdW9p IHRoYW5nIDMgdnVhIHF1YSwgb25nIA0KQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSB0byBjaHVjIGhv cCBnaWFvIGJhbiB2YSB0dXllbiBibyAiRGF5IGxhIG1vdCB5IHR1b25nIGtob25nIA0KY28gdGlu aCBraGEgdGhpIHZhIHRvaSBjaGluaCB0aHVjIG5vaSB2b2kgYmFvIGNoaSBsYSBIYSBOb2kgc2Ug a2hvbmcgdGh1YyBoaWVuIA0KdmllYyBuYXkiLiBPbmcgdGhlbSB2YW8sIHkgdHVvbmcgdHJlbiBj aHVhIGR1b2MgY2FwIG5hbyBwaGUgZHV5ZXQgbmh1bmcgZGEgdm9pIHZhbmcgY29uZyBiby4NCg0K TmhpZXUgY2h1eWVuIGN1b2kgcmEgbnVvYyBtYXQNCg0KQ28gdGhlIHRoYXksIG5odW5nIGJhdCBi aW5oIHh1bmcgcXVhbmggdmllYyB0byBjaHVjIHZhIGNodWFuIGJpIGNobyBEYWkgbGUgMTAwMCBu YW0gDQpUaGFuZyBMb25nIHh1YXQgaGllbiBraG9uZyBuaHVuZyB0cmVuIGNhYyB0cmFuZyBiYW8s IG1hIGNhIHRyZW4gY2FjIGJsb2cgdmEgbWFuZyANCnhhIGhvaS4gRmFjZWJvb2sgeHVhdCBoaWVu IGhhbmcgbG9hdCBob2kgbmh1ICJIb2kgbmh1bmcgbmd1b2kgZ2hldCBsZSBreSBuaWVtIDEwMDAg DQpuYW0gVGhhbmcgTG9uZyB2aSBxdWEgbGFuZyBwaGkiLCAiSG9pIHBoYW4gZG9pIG5odW5nIHF1 eWV0IGRpbmggdGhpZXUgaS1vdCBuaGFuIA0KZGlwIDEwMDAgbmFtIFRoYW5nIExvbmcgliBIYSBO b2kiLCAiTmdoaW4gdHJvIGxvIG5oYW4gZGlwIDEwMDAgbmFtIFRoYW5nIExvbmciLi4uIA0KDQpD b24gdHJhbmcgYmxvZyBMZSBEaWVuIER1YyB2aSB0aWVuIHRyaW5oIHNvbiBzdWEgbmhhIGN1YSwg Y2hpbmggdHJhbmcgZG8gdGhpIGNodWFuIA0KYmkgY2hvIDEwMDAgbmFtIFRoYW5nIExvbmcgliBI YSBOb2kga2hpZW4gbmd1b2kgdGEgImNvIGNhbSB0dW9uZyBtb3QgY28gZ2FpIHF1ZSBtdWEgDQpn aGUgbG8sIGJlbmggaG9hbiB2dWEgcmEgdGhhbmggcGhvIGxvbiwgY2h1YSBraXAgZGlldSB0cmks IGhvYyBoYW5oIHZlIHZhbiBob2EgdW5nIA0KeHUsIGNhY2ggYW4sIGxvaSBub2kgdGhpIGRhIHR1 YyB0aG9pIHBoYWkgbWFjIGFvIGRhaSBjbyBkYXUgZGUgbGVuIHhlIGhvYSBraWVtIG1vdCANCmRh bmcgY2hvbmcsIG5ldSBraG9uZyBzZSBkYW5oIG1hdCBjbyBob2kiIHZhICJUaHVjIGNoYXQsIGRh eSBsYSBkaXAgcmF0IGhvcCBseSBkZSANCm5odW5nIG5ndW9pIGNvIGRhYyBxdXllbiBsYXkgdGll biBjdWEgZGFuLCB0dW5nIHJhIG1vdCBpdCwgbmh1bmcgYm8gdmFvIHR1IHR1aSBtb3QgZG9uZyIu IA0KDQpOaHVuZyBoYW8gbmhvYW5nIGJlbiBuZ29haSBjdWEgbmh1bmcgbmdheSBsZSBUZXQga2hv bmcgZHUgZGUgY2hlIGxhcCBuaHVuZyBuaGVjaCANCm5oYWMgbW9pIG5nYXkuIEhpZW4sIG1vdCBz aW5oIHZpZW4gdGFpIEhhIE5vaSBuaGFuIHhldDogIkRvdCB0cnVvYyBUZXQgdGhpIHRoYW5oIA0K cGhvIGN1bmcgdHJhbmcgaG9hbmcgZGVwIGRlLCBzYWNoIHNlLCBjb24gYmF5IGdpbyB0aGkgZGF1 IGN1bmcgdmFvIGRheSByb2kgY2hpLiANCkVtIG5naGkgbGEgZGEgbWF0IGNvbmcgZG9pIHJvaSB0 aGkgbmVuIGdpdSB0dSBnaW8gY2hvIGRlbiBtdW5nIDEwLzEwIGx1b24uIFRldCwgbyANCmJvIGhv IGxhbSBob2EgcmF0IGRlcCwgbmdheSBjYSBraGFjaCBkdSBsaWNoIGN1bmcgcmF0IHRoaWNoLCB0 aGF5IHRoYW5oIHBobyBzYWNoIHNlLCANCnRyYW5nIGhvYW5nLiBEZW4gaGV0IGRvdCBob2Egcm9p IHRob2ksIGJvIGx1b24sIHRoYXkgcmF0IGxhIHBoaSEgTWEgY2FpIGRpZXUgbmd1eSANCmhpZW0g bWEgZW0gc28gbGEgYmF5IGdpbyB0aGFuaCBwaG8gZGFuZyBzYWNoIHNlIG1hIGJvIG1vdCBkb3Qg bmhpZXUgdGhhbmcgZGFpIG5odSANCnRoZSwgZGVuIGx1YyBubyBsYWkgYmFuIHRoaXUgdGhpIGxh bSBsYWkgc2UgcmF0IG1hdCBjb25nLiINCg0KS2hvbmcgZHVvaSBtb3QgbGFuLCBjYWMgbGFuaCBk YW8gY3VhIHRoYW5oIHBobyBIYSBOb2kga2hhbmcgZGluaCAiZGlwIERhaSBsZSAxMDAwIA0KbmFt IFRoYW5nIExvbmcgliBIYSBOb2kga2hvbmcgY2hpIGxhIG1pdCB0aW5oLCBsZSBob2kgbWEgY3Vu ZyB2b2kgZG8gcGhhaSBsYSBwaGF0IA0KdHJpZW4ga2luaCB0ZSAtIHhhIGhvaSIsICJjaGFtIGxv IGRvaSBzb25nIHZhdCBjaGF0LCB0aW5oIHRoYW4gY2hvIG5ndW9pIGRhbiIuIA0KDQooQW5oOiBN b3QgY29uZyB0cmluaCB0dSBzdWEgY2h1YW4gYmkgY2hvIERhaSBsZSBUaGFuZyBMb25nLiBBRlAg cGhvdG8pICANCg0KVGhlIG5odW5nLCB0cm9uZyB0b25nIGtldCBxdXkgZGF1IG5hbSAyMDEwLCBj aGkgc28gZ2lhIHRpZXUgZHVuZyBjdWEgSGEgTm9pIGRhIHRhbmcgDQpkZW4gNCw3MiUgc28gdm9p IHRoYW5nIGN1b2kgbmFtIDIwMDkuIFNvIGx1b25nIGtoYWNoIHF1b2MgdGUgZ2lhbSA3LDIlIHNv IHZvaSBjdW5nIA0Ka3kgbmFtIG5nb2FpLCBjaG8gZHUgbmFtIDIwMTAgZHVvYyBjaG9uIGxhIE5h bSBkdSBsaWNoIHF1b2MgZ2lhIHRhaSBIYSBOb2kuIA0KTGEgbmd1b2kgZGFuIG1vaSBuZ2F5IGNo dW5nIGtpZW4gbmh1bmcgaG9hdCBkb25nIGNodWFuIGJpIGNobyBkaXAgZGFpIGxlLCBuaGEgZ2lh byANClBoYW0gVG9hbiBiYXkgdG86IHNlIHRoaWV0IHRodWMgaG9uIG5ldSBkZW0gdGllbiBkYXkg cmEgeGF5IHRydW9uZyBob2MgdmEgY2h1YSBsYWkgDQpiZW5oIHZpZW4uIEJlbmggdmllbiBiYXkg Z2lvIDEgZ2l1b25nIG5hbSAzIG5ndW9pIG1hIGxhaSBkaSB0aWV1IGhhbmcgbmdoaW4gdGkgdmFv IA0KIGNhaSBwaGltIEx5IENvbmcgVWFuIGRlIHJvaSBraG9uZyBhaSB4ZW0gY2EuIFBoaW0gY2hp ZXUgeG9uZyB0aGkgdGhheSB0b2FuIG5odSBsYSBuZ3VvaSBUcnVuZyBRdW9jLiANClRoZSB0aGkg bGFtIGdpPyBNYSB0YXQgY2EgbW9pIG5ndW9pIGRldSBiaWV0IGNhaSBkbyBsYSBraG9uZyBuZW4g bWEgbmd1b2kgdGEgY3UgbGFtLCANCmJvaSB2aSBzdSBkb2kgdHJhIGRhIHZhbyBtYXUgdGhpdCBy b2kuIE1hIHRoZSBuYXksIGNhaSBzdSBkb2kgdHJhIGF5IGxhaSBjb25nIHRoZW0gDQp2b2kgcXV5 ZW4gbG9pLiBRdXllbiBsb2kgbGEgbmd1b2kgdGhpIGR1b2MgdGllbiwgbmd1b2kgZHVvYyBkYW5o LCBuZ3VvaSBkdW9jIGNodWMsIA0Kbmd1b2kgZHVvYyB0aWVuZywgZHVvYyBubyBkdW9jIGtpYS4g VGhlIHRoaSBjYWkgZ2kgbWF0PyBEYW4gdG9jIG1hdCwgdGllbiBtYXQsIHJvaSANCnRyZSBjb24s IG5oYSB0cnVvbmcgdmFuIGNoYXQuIERhbmcgbmhlIHRpZW4gYXkgY28gdGhlIGRlbSBsYW0gdmll YyBsb24gZHVvYy4iDQoNCkdpb2kgYmxvZ2dlciB0cnV5ZW4gdGFpIG5oYXUgZGlwIDEwMDAgbmFt IFRoYW5nIExvbmcgliBIYSBOb2kgY2hpbmggbGEgY29uIGF0IGNodSBiYWkgDQpjdWEgQmkgdGh1 IHRoYW5oIHV5IEhhIE5vaSBQaGFtIFF1YW5nIE5naGkgdHJvbmcgY3VvYyBjaGF5IGR1YSB2b2kg Y2FjIGRvaSB0aHUga2hhYyANCm5oYW0gZGVuIG1vdCBjaGllYyBnaGUgY2FvIGhvbi4gDQoNCmh0 dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8yMDEwMTAwNzAwMzcx OC5hc3B4IDA3LzEwLzIwMTAgMDozNyANCg0KSGEgTm9pOiBObyBraG8gcGhhbyBob2EgdGFpIE15 IERpbmgsIDQgbmd1b2kgY2hldCAtIGNvIG5odW5nIGxvYWkgcGhhbyBob2EgY2h1YSB0dW5nIGR1 b2Mgc3UgZHVuZyB0YWkgVmlldCBOYW0gDQoNCihBbmggY2h1cDogS2hvaSBib2MgY3VvbiBjdW9u IGJlbiBob25nIHNhbiB2YW4gZG9uZyBNeSBEaW5oIHNhdSB2dSBubyAtIEFuaDpOZ29jIFRoYW5n KSANCg0KS2hvYW5nIDExIGdpbyA0MCBwaHV0IHRydWEgcXVhICg2LjEwKSwgbW90IHZ1IG5vIGxv biBkYSB4YXkgcmEgdGFpIGtodSB2dWMgcGhpYSBzYXUga2hhbiANCmRhaSBDLCBzYW4gdmFuIGRv bmcgcXVvYyBnaWEgTXkgRGluaCwgVHUgTGllbSwgSGEgTm9pLiANCg0KVHJhIGxvaSBUVFhWTiwg b25nIHRydW5nIHR1b25nIE5ndXllbiBEdWMgTmhhbmgsIFBobyB0b25nIGN1YyB0cnVvbmcgVG9u ZyBjdWMgQW4gDQpuaW5oIElJLCBraWVtIEdpYW0gZG9jIENvbmcgYW4gVFAgSGEgTm9pIGNobyBi aWV0LCAyIGNvbnRhaW5lciBjaHVhIHBoYW8gaG9hIGRhIGJhdCANCm5nbyBwaGF0IG5vIGxhbSA0 IG5ndW9pIHRoaWV0IG1hbmcgdmEgMyBuZ3VvaSBraGFjIGJpIHRodW9uZy4gVGhlbyBvbmcgTmhh bmgsIG5ndXllbiANCm5oYW4gY3VhIHZ1IGNoYXkgbm8gZHVvYyB4YWMgZGluaCBsYSBkbyBzbyBz dWF0IHRyb25nIHF1YSB0cmluaCB2YW4gY2h1eWVuLiAgDQoNClRoZW8gZ2hpIG5oYW4gY3VhIFBW IFRoYW5oIE5pZW4gY28gbWF0IG8gaGllbiB0cnVvbmcsIHRhaSBraHUgdnVjIHhheSByYSB2dSBu byB2YW8gDQp0aG9pIGRpZW0gZG8gY28gMyBjb250YWluZXIgcGhhbyBob2EgbmhhcCB0dSBZLCBN eSB2YSBUcnVuZyBRdW9jLiBTbyBwaGFvIGhvYSBuYXkgZG8gDQpDb25nIHR5IFROSEggbW90IHRo YW5oIHZpZW4gZGF1IHR1IHRodW9uZyBtYWkgdmEgZGljaCB2dSBxdW9jIHRlIC0gSU5URVJTRVJD TyANCihjbyB0cnUgc28gdGFpIEhhIE5vaSkgbmhhcCB0dSBudW9jIG5nb2FpIHZlIHBodWMgdnUg YmFuIHBoYW8gaG9hIHRhaSBzYW4gdmFuIGRvbmcgDQpNeSBEaW5oIC0gSGEgTm9pLiBUcm9uZyBz byBwaGFvIGhvYSBuaGFwIHZlIGxhbiBuYXkgY28gbmh1bmcgbG9haSBjaHVhIHR1bmcgZHVvYyBz dSBkdW5nICANCnRhaSBWaWV0IE5hbSwgbmh1IGxvYWkgcGhhbyBjbyBraWNoIHRodW9jIDEyIGlu Y2hlcy4uLiANCg0KT25nIE5ndXllbiBEdWMgTmhhbmggY3VuZyBjaG8gYmlldCwgOCB4ZSBjdXUg aG9hIGRhIGR1b2MgZGlldSBkb25nIGRlIGRhcCB0YXQgZGFtIGNoYXksIA0KZG9uZyB0aG9pIHRv IGNodWMgZHVhIHNvIG5ndW9pIGJpIHRodW9uZyBkaSBjYXAgY3V1IHZhIHRpZW4gaGFuaCBkaWV1 IHRyYSBsYW0gcm8gdnUgdmllYy4gDQpWYXkgbWEsIHRyYSBsb2kgcGhvbmcgdmFuIGN1YSBUVFhW Tiwgb25nIE5oYW5oIHZhbiBjaG8gcmFuZzogIkRheSBsYSB0YWkgbmFuIGRhbmcgdGllYyANCm5o dW5nIGtob25nIGFuaCBodW9uZyBkZW4gY29uZyB0YWMgZGFtIGJhbyBhbiBuaW5oIGN1YSBEYWkg bGUgMS4wMDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2kiICANCg0KaHR0cDovL3ZpZXRuYW1uZXQu dm4vdGlubmhhbmgvMjAxMDEwL0tob25nLWNvLWNodXllbi1oYW5nLWNodWMtbmd1b2ktY2hldC1k by1uby1waGFvLWhvYS05NDIzMTEvIFRodSBBbiAwOTo1NCwgMTUvMTAvMjAxMCAoR01UKzcpDQoN CkhhIE5vaTogVGFpIEhvaSBuZ2hpIHRvbmcga2V0IGNvbmcgdGFjIHR1eWVuIHRydXllbiB2ZSBE YWkgbGUga3kgbmllbSAxMDAwIG5hbSANClRoYW5nIExvbmcgLSBIYSBOb2ksIGhvbSAxNC8xMCwg b25nIEhvIFF1YW5nIExvaSBUcnVvbmcgQmFuIFR1eWVuIGdpYW8gVGhhbmggdXkgSGEgTm9pIGNo byBiaWV0OiANCg0KLSBEZW4gdGhvaSBkaWVtIG5heSwgY2FjIGRvbiB2aSBjaHVjIG5hbmcgdmFu IGNodWEgaG9hbiB0YXQgdGhvbmcga2UgdG9hbiBibyBjaGkgcGhpOyAgDQoNCi0gVmUgdnUgY2hh eSBubyAyIGNvbnRhaW5lciBwaGFvIGhvYSBiZW4gbmdvYWkgU1ZEIE15IERpbmggdmFvIG5nYXkg Ni8xMCwgb25nIExvaSANCmNobyBiaWV0OiBjbyA0IG5ndW9pIGNoZXQsIHRyb25nIGRvIGNvIDMg Y2h1eWVuIGdpYSBudW9jIG5nb2FpLCAzIG5ndW9pIGJpIHRodW9uZyBoaWVuIGRhDQpiaW5oIHBo dWMgdmEgcmEgdmllbi4uLiIuDQpWZSBuZ3V5ZW4gbmd1eWVuIHZ1IG5vLCBvbmcgTG9pIGNobyBi aWV0LCBkbyBsYSBkbyBzbyBzdWF0IHRyb25nIHRoYW8gdGFjIGt5IHRodWF0IA0KY2h1YW4gYmkg YmFuIHRodSB2YW8gdG9pIGN1bmcgbmdheS4gKE5odSB2YXkgbmd1eWVuIG5oYW4gdnUgbm8ga2hv bmcgcGhhaSBsYSAiZG8gc28gc3VhdCANCnRyb25nIHF1YSB0cmluaCB2YW4gY2h1eWVuIiBuaHUg b25nIE5ndXllbiBEdWMgTmhhbmggR0QgQ0EgSGEgTm9pIHR1bmcgeGFjIGRpbmguKTsgIA0KDQot IFZlIHZ1IHVuIHRhYyBnaWFvIHRob25nIGtlbyBkYWkgaGFuZyBnaW8gdGFpIGtodSB2dWMgTXkg RGluaCB0b2kgMTAvMTAsIG9uZyBMb2kgY2hvIA0KYmlldDogVW9jIHRpbmggY28gdG9pIGhhbmcg Y2h1YyB2YW4gbmd1b2ksIHRoYW0gY2hpIGxlbiB0b2kgY2EgdHJpZXUgbmd1b2kgZG8gdmUgU2Fu IHZhbiANCmRvbmcgTXkgRGluaCwga2hpZW4gY2FjIGNvbiBkdW9uZyBiaSB1biB0YWMgbmdoaWVt IHRyb25nLiBOaGlldSBkYWkgYmlldSB2YSBjYWMgdmkgDQpraGFjaCBjYXAgY2FvIGN1bmcga2hv bmcgdGhlIHZhbyBkdSBkZW0gYmUgbWFjLiBEbyBsYSBtb3Qgc3UgY28gZGFuZyB0aWVjOw0KDQot IE9uZyBMb2kgdGh1YSBuaGFuIHJhbmcgdGluaCB0cmFuZyBuYXkgeGF5IHJhIGxhIGRvIGJhbiB0 byBjaHVjIGtob25nIHRoZSBsdW9uZyB0cnVvYyANCmR1b2Mgc3UgaGFvIGh1YyBjdWEgbmd1b2kg ZGFuIHZvaSBkZW0gaG9pLCB2aSBraG9uZyBjaGkgbmd1b2kgZGFuIEhhIE5vaSBtYSBjb24gcmF0 IA0KbmhpZXUgbmd1b2kgZGVuIHR1IGNhYyBkaWEgcGh1b25nIGtoYWM7IA0KDQotIEx1YyBsdW9u ZyBjYW5oIHNhdCBnaWFvIHRob25nIGRvIGN1bmcga2hvbmcgbHVvbmcgdHJ1b2MgZHVvYyBzdSB2 aWVjIG5lbiBkYSBraG9uZyANCmNodSBkb25nIHRyb25nIHBoYW4gbHVvbmcgZGlldSB0aWV0IGdp YW8gdGhvbmcgaG9wIGx5Ow0KDQotIERhaSBkaWVuIFNvIFRob25nIHRpbiB2YSBUcnV5ZW4gdGhv bmcgY3VuZyB0aHVhIG5oYW4sIGNvbmcgdGFjIHBob2kgaG9wIGdpdWEgU28gdmEgDQpDb25nIGFu IHRoYW5oIHBobyBIYSBOb2kgdHJvbmcgdmllYyBjYXAgdGhlIHBob25nIHZpZW4gY2h1YSB0aG9u ZyBuaGF0LCBkYW4gZGVuIG1vdCANCnNvIHBob25nIHZpZW4ga2hvbmcgdmFvIGR1IGR1b2MgTGUg a2hhaSBtYWMgRGFpIGxlLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAxMDA5L1Zh LXZhdC1xdWFuaC1oby1Ib2FuLUtpZW0tZHUtTGUtZGlldS1oYW5oLWRpLWJvLTkzNzY2My8gIDEy OjIzLCAgMjYvMDkvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogTmd1b2kgZGlldSBoYW5oIGJpIGJv IHJvaSwgdmEgdmF0IHF1YW5oIGhvIEhvYW4gS2llbSANCg0KU2FuZyBuYXkgKDI2LzkpLCBoYW5n IHRyYW0gbmd1b2ksIHRyb25nIExlIGRpZXUgaGFuaCBkaSBibyBjaGFvIG11bmcgMS4wMDAgbmFt IFRoYW5nIA0KTG9uZyAtIEhhIE5vaSwgYmkgQmFuIHRvIGNodWMuLi4gYm8gcm9pOyB2YSB2YXQg cXVhbmggYm8gaG8gSG9hbiBLaWVtIA0KDQpEdSBraWVuIExlIGRpZXUgaGFuaCBkaSBibyBkdW9j IHRvIGNodWMgdm9pIHN1IHRoYW0gZ2lhIGN1YSBkYWkgZGllbiBuaGlldSBsYW5oIGRhbywgZGFp IA0KZGllbiBkb2FuaCBuZ2hpZXAsIHZhIGNhYyB0byBjaHVjIGN1bmcgdm9pIGhhbmcgdHJhbSBk YWkgYmlldSB2YSBoYW5nIG5nYW4gbmd1b2kgdGhhbSANCmR1LiANCg0KS2UgaG9hY2ggcmF0ICJo b2FuaCB0cmFuZyIgZHVvYyB0dXllbiBibyB0cm9uZyBuZ2F5IGhvcCBiYW8sIG5odW5nIHRhaSBs ZSBkaWV1IA0KaGFuaCB0aGkgbGFpIGhvYW4gdG9hbiBraGFjLg0KDQpNb3Qgbmd1b2kgdGhhbSBk dSBMZSBkaWV1IGhhbmggY2hvIGJpZXQ6ICJDaHVuZyB0b2kgYmkgImJhdCBjb2MgYm8gZGlhIiwg Y2h1b25nIHRyaW5oIA0KZHUga2llbiB0aGkgaG9hbmggdHJhbmcgdmEgeSBuZ2hpYSBsYSB2YXks IG5odW5nIHN1IHRodWMgdGhpIGNoYW5nIGNvIGFpIGR1bmcgcmEgdGhheSBtYXQgDQpCVEMgZGUg ZGlldSBoYW5oIGJ1b2kgbGUuIERhbSBuZ3VvaSBjaHVuZyB0b2kgZGVuIGRheSB0dSBkYW5nIGh1 b25nIHZhIHR1IGRpIG1vdCAxIA0Kdm9uZyBxdWFuaCBibyBobyByb2kuLi4gZ2lhaSB0YW4iLiAN Cg0KaHR0cDovL3d3dzYudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTAvSGEtTm9pLXVuLXRhYy1n aWFvLXRob25nLWRlbS10b25nLWR1eWV0LWRpZXUtYmluaC05NDAwODgvIEdpYSBWYW4gMjI6NTgs IDA3LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IFVuIHRhYyBnaWFvIHRob25nIEhOIGRlbSB0 b25nIGR1eWV0IGRpZXUgYmluaA0KDQotIE1hYyBkdSBkYSBkdW9jIHRob25nIGJhbywgSGEgTm9p IHNlIGNhbSBuaGlldSB0dXllbiBkdW9uZyB2YW8gY2hpZXUgNy8xMCANCmRlIHRvbmcgZHV5ZXQg ZGlldSBiaW5oIHRhaSBraHUgdHJ1bmcgdGFtIEJhIERpbmgsIG5odW5nIGRvIGR1b25nIGJpIGNh bSBkdW5nIA0KdmFvIGdpbyB0YW4gY29uZyBzbyBuZW4gbmhpZXUgdHV5ZW4gZHVvbmcgSGEgTm9p IGJpIHVuIHRhYyB0cmFtIHRyb25nLg0KDQooQW5oIGNodXA6IEx1YyBsdW9uZyBDU0dUIHZhIENT MTEzIGRhbmcgaHVvbmcgZGFuIHBoYW4gbHVvbmcgZHVvbmcgY2hvIG5ndW9pIA0KdGhhbSBnaWEg Z2lhbyB0aG9uZyB0YWkgbmdhIHR1IGR1b25nIFRyYW4gUGh1IC0gRGllbiBCaWVuIFBodS4pIA0K DQpUaGVvIGdoaSBuaGFuIGN1YSBQViBWaWV0TmFtTmV0ICB0dSBsdWMgMTVoIG5nYXkgNy8xMCwg bHVjIGx1b25nIGFuIG5pbmggZGEgY28gDQptYXQgbyBraGFwIGNhYyBuZ2EgZHVvbmcgdmFvIGto dSB0cnVuZyB0YW0gQmEgRGluaC4gVGFpIGNhYyBraHUgdnVjIGR1b25nIA0KSG9hbmcgRGlldSAt IFRyYW4gUGh1IC0gRGllbiBCaWVuIFBodSwgS2ltIE1hLCBUaHV5IEtodWUsIFRoYW5oIE5pZW4s IFF1YW4gVGhhbmguLi4gDQpsdWMgbHVvbmcgYW4gbmluaCBkZXUgbGFwIGJhcmllIGNoYW4ga2hv bmcgY2hvIG5ndW9pIHRoYW0gZ2lhIGdpYW8gdGhvbmcgZGkgdmFvIGtodSB2dWMgZHVvbmcgY2Ft Lg0KDQpUYWkgTmdhIHR1IEJvdCBIYW5nIERhdSwgdmFvIGtob2FuZyAxNmg0NSwgbHVvbmcgbmd1 b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyBkaSANCnZlIHBoaWEgZHVvbmcgUXVhbiBUaGFuaCBraGEg ZG9uZywgbmh1bmcgZGV1IGR1b2MgY2hhbiBsYWkgdmEgaHVvbmcgZGFuIGRpIHRoZW8gDQp0dXll biBkdW9uZyBZZW4gUGh1LCBUcmFuIEtoYXQgQ2hhbiBkZSBnaWFtIHVuIHRhYy4gDQoNCihBbmgg Y2h1cDogTmhpZXUgbmd1b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyB0YWkgYm90IEhhbmcgRGF1IG5o YW8gbmhhYyB0aW0gbG9pIA0KdmUgbmhhIHZpIGR1b25nIFF1YW4gVGhhbmggYmkgY2hhbiBsYWku KQ0KDQpUYWkgbmdhIHR1IGR1b25nIERpZW4gQmllbiBQaHUgIC0gVHJhbiBQaHUsIGx1YyBsdW9u ZyBhbiBuaW5oIGN1bmcgZGEgcGhhaSBjYW5nIA0Kc3VjIG5nYW4ga2hvbmcgY2hvIG5ndW9pIHRo YW0gZ2lhIGdpYW8gdGhvbmcgZGkgdmFvIGtodSB2dWMgZHVvbmcgY2FtLiBEbyBsdW9uZyANCm5n dW9pIHZhIHBodW9uZyB0aWVuIHRoYW0gZ2lhIGdpYW8gdGhvbmcgdHJlbiBkdW9uZyBUcmFuIFBo dSBxdWEgZG9uZyBuZW4gaGFuZyANCmNodWMgQ1MxMTMgdmEgQ1NHVCBwaGFpIGR1bmcgcmEgcGhh biBsdW9uZyBkdW9uZyBkZSBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25nIHJlIHRoZW8gaHVvbmcg ZHVvbmcgRGllbiBCaWVuIFBodS4NCg0KVHVvbmcgdHUsIHRhaSBraHUgdnVjIGR1b25nIEJ1b2kg liBIb2FuZyBIb2EgVGhhbSwgZHVvbmcgQnVvaSAtIFRodXkgS2h1ZSwgcGhvIA0KTmd1eWVuIFRy dW9uZyBUbywgWWVuIE1pbmgsIExlIER1YW4uLi4gY3VuZyBkdW9jIGx1YyBsdW9uZyBhbiBuaW5o IGxhcCBjaG90IGNoYW4gDQpraG9uZyBjaG8gbmd1b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyBkaSB2 YW8gcGhhbiBkdW9uZyBjYW0uDQoNCihBbmggY2h1cDogVHJlbiBkdW9uZyBUcmFuIFBodSwgbmd1 b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyBwaGFpIG5oaWNoIHR1bmcgdHkgbW90LikNCg0KVGhlbyBn aGkgbmhhbiBjdWEgUFYgVmlldE5hbU5ldCwgdGFpIGNhYyBkaWVtIGNhbSwgbmdvYWkgbmh1bmcg bmd1b2kgY28gcGh1IGhpZXUgDQp1dSB0aWVuLCBiYW8gdmUgZHVvYyByYSB2YW8gZHVvbmcgY2Ft IHRoaSBuaHVuZyB0cnVvbmcgaG9wIGNvIGdpYXkgdG8gdHV5IHRoYW4sIA0KaG8ga2hhdSB0aHVv bmcgdHJ1IHRyb25nIGtodSB2dWMgbmF5IG1vaSBkdW9jIHBoZXAgZGkgdmFvLg0KRG8gdmllYyBj YW0gY2FjIHR1eWVuIGR1b25nIHZhbyBraHUgdnVjIHRydW5nIHRhbSBCYSBEaW5oIGR1bmcgdmFv IG5nYXkgdGh1b25nIA0KdmEgZ2lvIHRhbiB0YW0gbmVuIHRpbmggdHJhbmcgdW4gdGFjIGRhIGRp ZW4gcmEgdGFpIG5oaWV1IHR1eWVuIHBoby4gDQpUcmVuIGNhYyB0dXllbiBkdW9uZyBUb24gRHVj IFRoYW5nLCBOZ3V5ZW4gVGhhaSBIb2MgdHUgbHVjIDE3aCBjaGlldSwgdGluaCB0cmFuZyANCnVu IHRhYyBjdWMgYm8gZGEgeGF5IHJhIG8gbmhpZXUgZGllbS4NCg0KKEFuaCBjaHVwOiBVbiB0YWMg Z2lhbyB0aG9uZyB0cmVuIHBobyBIYW5nIFRoYW4uKQ0KDQpBbmggQmluaCBvIENhdSBHaWF5LCBs YW0gdmllYyBvIG1vdCBjb25nIHR5IGRpZW4gdHUgYmVuIEdpYSBMYW0gY2hvIGJpZXQ6IEFuaCAN CmRvYyBiYW8gYmlldCBjaGlldSBuYXkgbmhpZXUgdHV5ZW4gZHVvbmcgc2UgYmkgY2FtIHZhIGR1 IGR1b2MgY29uZyB0eSBjaG8gbmdoaSANCnZlIHNvbSBob24gbW9pIG5nYXkgbmh1bmcga2hpIGRp IHF1YSBib3QgSGFuZyBEYXUgdGhpIGFuaCBiaSBjaGFuIGxhaSBvIGR1b25nIA0KUXVhbiBUaGFu aC4gS2hvbmcgY29uIGNhY2ggbmFvIGtoYWMgYW5oIEJpbmggcGhhaSAibXVhIGR1b25nIiBiYW5n IGNhY2ggZGkgbmd1b2MgDQpsYWkgcmEgZHVvbmcgSGFuZyBEYXUgcm9pIHZvbmcgcmEgZHVvbmcg VHJhbiBRdWFuZyBLaGFpIHRoZW8gZHVvbmcgZGUgWWVuIFBodSANCnJhIGR1b25nIExhYyBMb25n IFF1YW4gLSBDYXUgR2lheSBkZSB2ZSBuaGEuDQoNClRhaSBuZ2EgYmEgQ2F0IExpbmggLSBHaWFu ZyBWbyCWIEdpYW5nIFZhbiBNaW5oLCB0aW5oIHRyYW5nIGFjaCB0YWMgZ2lhbyB0aG9uZyANCmN1 bmcgZGEgeGF5IGhhbmcgZ2lvIGRvbmcgaG8gZG8gbHV1IGx1b25nIGdpYW8gdGhvbmcgdHUgY2Fj IHR1eWVuIGR1b25nIHh1bmcgcXVhbmgga2h1IHRydW5nIHRhbSBCYSBEaW5oIHVuIHZlLg0KDQpo dHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL0dpYW8tdGhvbmctaG9uLWxvYW4t cXVhbmgtSG8tR3VvbS05NDAwNjAvIER1eSBUdWFuIJYgSG9hbmcgU2FuZyAtIFZ1IERpZXAgMjI6 NTksIDA5LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEdpYW8gdGhvbmcgaG9uIGxvYW4gcXVh bmggSG8gR3VvbSANCg0KTHVjIDE5aCB0b2kgOS8xMCwgY2FjIG5nYSBkdW9uZyBkbyB2ZSBIbyBH dW9tIGNodWEgZHVvYyBsdWMgbHVvbmcgY2h1YyBuYW5nIGNoYW5nIA0KZGF5IGNhbSBkdW9uZyBr aGllbiBjYWMgdHV5ZW4gZ2lhbyB0aG9uZyBvIGRheSB0YWMgbmdoZW4uIE5oYXQgbGEgbyBjYWMg Y29uIGR1b25nIA0KcXVhbmggYm8gaG8gbmh1IERpbmggVGllbiBIb2FuZywgSGFuZyBLaGF5LCBM ZSBUaGFpIFRvLi4uDQoNCkRlbSB0aHUgOSBjdWEgRGFpIGxlLCBjYWMgdHV5ZW4gcGhvIGRvIHZl IEhvIEd1b20gdmFuIGNoYXQgbmljaCBuZ3VvaSB2YSBjYWMgcGh1b25nIA0KdGllbi4gVGFpIFBo byBIdWUgLSBIYW5nIEJhaSwgY2FjIHBodW9uZyB0aWVuIGNoYXQga2luIGtlbyBkYWkgY2EgY2F5 IHNvLiBOaGlldSB4ZSBtYXkgDQpwaGFpIHRpbSBjYWNoIGRpIHRyZW4gdmlhIGhlLCBuaHVuZyBy b2kgY3VuZyBraG9uZyB0aGUgY2hlbiBkdW9jIHZpICJkaWEgcGhhbiIgbmF5IGN1bmcgDQpkYSBk YW5oIGNobyBjYWMgYmFpIGdpdSB4ZSBtYXkuDQoNCkNhYyBuZ2EgdHUgSGFpIEJhIFRydW5nIJYg SGFuZyBCYWksIERpbmggVGllbiBIb2FuZyCWIFRyYW5nIFRpZW4sIFBodSBEb2FuIJYgVHJhbmcg DQpUaGksIEhhaSBCYSBUcnVuZyCWIEJhIFRyaWV1Li4uLiBuZ3VvaSBkaSBibyB2YSBjYWMgcGh1 b25nIHRpZW4gY3VuZyBjaGVuIGNodWMgbmhhdSANCnR1bmcgdHkgbW90LiANCg0KRGFuZyBjaHUg eSBuaGF0IGxhIGNhYyBjb24gZHVvbmcgeHVuZyBxdWFuaCBIbyBHdW9tLCB0aW5oIHRyYW5nIGFj aCB0YWMgY2FuZyBuZ2hpZW0gDQp0cm9uZyBob24uIFRyZW4gcGhvIERpbmggVGllbiBIb2FuZyBs dWMgMTloLCBjYWMgcGh1b25nIHRpZW4gdmEgbmd1b2kgZGkgYm8gdGhhbSBnaWEgDQpnaWFvIHRo b25nIHJhdCBuaG9uIG5oYW8uIA0KDQpDbyBkYXkgZHUgY2FjIHBodW9uZyB0aWVuLCB0dSBvIHRv LCB0YXhpLCB4aWNoIGxvLCB4ZSBnYW4gbWF5Li4uIGNobyBkZW4gbmh1bmcgeGUgaGFuZyANCnJv bmcgY3VuZyBoYW5nIHZhbiBuZ3VvaSBkaSBibyB0cmVuIGxvbmcgZHVvbmcuIE11b24gZGkgdGll cCBsdWMgbmF5IGNoaSBjbyBtb3QgY2FjaCBsYSANCmRpIHRoZW8ga2lldS4uLiBydWEgYm8uDQoN Cktob25nIGdpb25nIG5odSB0aG9uZyBiYW8gYmFuIGRhdSwgdHUgMjBoIG5nYXkgOS8xMCBzZSBj YW0gdGF0IGNhIDMwIHR1eWVuIHBobyBkZSANCnBodWMgdnUgZGlldSBiaW5oLCBkaWV1IGhhbmgg dmEgY2FjIGhvYXQgZG9uZyBkaWVuIHJhIGRhaSBsZSB2YW8gbmdheSAxMC8xMCwgZGVtIDkvMTAs IA0KbmhpZXUgdHV5ZW4gcGhvIHZhbyBraHUgdHJ1bmcgdGFtIEhhIE5vaSwgaG9hdCBkb25nIGdp YW8gdGhvbmcgdmFuIGRpZW4gcmEgYmluaCB0aHVvbmcuIA0KDQo4aDMwIHBodXQsIGNvIG1hdCB0 YWkgbmdhIHR1IGR1b25nIFRyYW4gUGh1IC0gRGllbiBCaWVuIFBodSwgUFYgVmlldE5hbU5ldCBk dW9jIERhaSANCnV5IFBoYW0gQW5oIFR1YW4gKERvaSBDU0dUIHNvIDIpIGNobyBiaWV0OiAiVGhl byBwaHVvbmcgYW4gMjBoIHNlIGNhbSBtb3Qgc28gdHV5ZW4gDQpkdW9uZyBuYXksIG5odW5nIGNo byBkZW4gZ2lvIGNodW5nIHRvaSB2YW4gY2h1YSBuaGFuIGR1b2MgdGhvbmcgdGluIHR1IGJvIGRh bSB0aG9uZyANCmJhbyBuZ2FuIGR1b25nIi4NCg0KRG8gbHVvbmcgbmd1b2kgdmEgcGh1b25nIHRp ZW4gZG8gdmUga2h1IHRydW5nIHRhbSBCYSBEaW5oIHZhIEhvIEd1b20gcmF0IGRvbmcgbmVuIA0K Y2FjIHR1eWVuIGR1b25nIG5heSBkYSByb2kgdmFvIHRpbmggdHJhbmcgdW4gdGFjIGtlbyBkYWku DQoNClRhaSBuZ2EgdHUgZHVvbmcgVG9uIER1YyBUaGFuZyAtIE5ndXllbiBUaGFpIEhvYywgbHVv bmcgbmd1b2kgdmEgcGh1b25nIHRpZW4gdW4gdW4gDQpkbyB2ZSBraGllbiBjaG8gdHV5ZW4gZHVv bmcgbmF5IGRhIHhheSByYSB0aW5oIHRyYW5nIHRhYyBkdW9uZyBjdWMgYm8uIFR1b25nIHR1LCB0 YWkgbmdhIA0KdHUgVHJhbmcgVGhpIJYgUXVhbiBTdSwgdGluaCB0cmFuZyBuZ3VvaSBkaSBkdW9u ZyBjaGVuIGxhbiwgdHJhbmggZ2lhbmggZHVvbmcga2hpZW4gY2hvIA0KbmdhIHR1IG5heSBiaSB1 biB1IGhhbmcgZ2lvIGRvbmcgaG8gbWEga2hvbmcgdGhheSBsdWMgbHVvbmcgQ1NHVCBjbyBtYXQg ZGUgeHUgbHkuDQoNCkRvIGx1b25nIG5ndW9pIHRoYW0gZ2lhIGdpYW8gdGhvbmcgcXVhIGRvbmcg bmVuIG5oaWV1IHhlIG8gdG8gZGkgdmFvIGtodSB2dWMgbmF5IA0Ka2hvbmcgdGhlIHRob2F0IHJh IGR1b2MuIEhhbmcgY2h1YyB4ZSB0YXhpIGJpICJjaGV0IiBnaXVhIHZvbmcgdmF5IGN1YSBuZ3Vv aSB2YSBwaHVvbmcgDQp0aWVuIHF1YSBsYWksIGtob25nIHRoZSBuaGljaCBjaHV0IG5hbywgZGFu aCBwaGFpIGRvIGtoYWNoIGdpdWEgZHVvbmcuDQoNClRydW9jIGRvLCB2YW8gc2FuZyA5LzEwLCBr aGFwIGNhYyB0dXllbiBwaG8gdmFvIGtodSB0cnVuZyB0YW0gSG8gR3VvbSwgZG9uZyBuZ3VvaSB1 biANCnVuIGRvIHZlIGtoaWVuIGNobyBuaGlldSB0dXllbiBkdW9uZyB4dW5nIHF1YW5oIGtodSB2 dWMgbmF5IGJpIHVuIHRhYy4NCg0KRG8gbGEgbmdheSBuZ2hpIGN1b2kgdHVhbiBuZW4gbHVvbmcg bmd1b2kgZG8gdmUga2h1IHRydW5nIHRhbSBobyBIb2FuIEtpZW0gc2FuZyA5LzEwIA0KbW9pIGx1 YyBtb3QgZG9uZy4gS2hvYW5nIDhoIHNhbmcgZG9uZyBuZ3VvaSB0dSBraGFwIGNhYyBuZ2EgZHVv bmcgcGhvIEh1ZSwgSGFpIEJhIA0KVHJ1bmcsIEhhbmcgQmFpLCBMeSBUaHVvbmcgS2lldCwgTGUg RHVhbi4uLiBkYSBiYXQgZGF1IHVuIHVuIGRvIHZlIEhvIEd1b20gZGUgDQp0aHVvbmcgdGh1YyBr aG9uZyBraGkgdHVuZyBidW5nIGN1bmcgdm9pIG5odW5nIGhvYXQgZG9uZyB2YW4gaG9hIGRpZW4g cmEgdGFpIGRheS4NCg0KVGhlbyBnaGkgbmhhbiBjdWEgUFYgVmlldE5hbU5ldCwgaGF1IGhldCBj YWMgbnV0IGdpYW8gdGhvbmcgZGV1IGNvIGx1YyBsdW9uZyBDU0dUIA0KdmEgVFRHVCBsYW0gbmhp ZW0gdnUuIFhvbmcgdGluaCB0cmFuZyB0YWMgbmdoZW4gdmFuIHhheSByYS4gDQoNCkFuaCBIb2Es IG5oYSBvIGtodSBkbyB0aGkgTGluaCBEYW0gY2hvIGJpZXQ6ICJIb20gbmF5IG5nYXkgbmdoaSBu ZW4gOWggc2FuZyB0b2kgbW9pIA0KZHVhIHZvIGNvbiBkaSBsZW4gSG8gSG9hbiBLaWVtIGNob2ks IG5odW5nIGtoaSBkaSBxdWEgUGhvIEh1ZSB0aGkgbGFpIGdhcCB0YWMgZHVvbmcuIA0KQmlldCBE YWkgbGUgZHVvbmcga2hvIHRyYW5oIGtob2kgY2FuaCB1biB0YWMsIG5odW5nIGN1IHBoYWkgY2hp dSBjYW5oIG5ndWkgbXVpIGtob2kgYnVpIA0KeGUgbmdoaSBuZ3V0IHRoZSBuYXkgdGhpIHJhdCBt ZXQsIG5oYXQgbGEgdm9pIHRyZSBjb24iLg0KDQpDdW5nIG5odSBhbmggSG9hLCBiYWMgTWluaCAo cXVlIG8gVGhhbmggSG9hKSBkYSByYSBIYSBOb2kgY2hvaSB2b2kgdm8gY2hvbmcgY29uIHRyYWkg DQpvIEhhIERvbmcgdHUgMyBuZ2F5IG5heSBuaHVuZyBtYWkgaG9tIG5heSBjdW9pIHR1YW4gZHVv YyBuZ2hpIGxhbSBjb24gdHJhaSBiYWMgbW9pIA0KY28gZGlwIGR1YSBibyBsZW4gdHJ1bmcgdGFt IGNob2kuIE5odW5nIGtoaSBkaSBxdWEgZHVvbmcgcGhvIEh1ZSwgdGhheSBjYW5oIHRhYyBkdW9u ZyANCmJhYyBraG9uZyBraG9pIG5nYW8gbmdhbi4NCg0KQmFjIE1pbmggYmFvOiAiU2FuZyBuYXkg bmdoZSBjb24gYmFvIGRpIGNob2kgSG8gR3VvbSB0b2kgcmF0IGhvIGhvaSwgbmh1bmcga2hpIGRp IGdhbiANCmxlbiBkZW4gbm9pIGdhcCBjYW5oIHRhYyBkdW9uZyB0b2kgdGhheSBraGllcCBxdWEu IFRpZW5nIG5vIGN1YSB4ZSBjdW5nIHZvaSBraG9pIGJ1aSANCmtoaWVuIHRvaSBraG9uZyBjaGl1 IGR1b2MuIEJpZXQgZGkgY2hvaSBEYWkgbGUga2hvIHRoZSBuYXkgdG9pIG8gbmhhIGNvbiBob24i LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdmFuaG9hLzIwMTAxMC95LWtpZW4tZG9jLWdpYS1L aG8tbWEtdGhhLXRodS1jaG8tTmdvYy1IYW4tZHVvYy05NDE3NjMvIEJhbiBWYW4gSG9hIDE2OjU4 LCAxMi8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBIb2EgSGF1IE5nb2MgSGFuIHZhbmcgbWF0 LCBraG9uZyB0aGFtIGR1IGRhaSBsZSAxMDAwIG5hbSB2aSBseSBkbyB0YWMgZHVvbmcNCg0KWSBr aWVuIGRvYyBnaWE6ICdLaG8gbWEgdGhhIHRodSBjaG8gTmdvYyBIYW4hJw0KDQpUdSBraGkgZGFu ZyBxdWFuZywgSG9hIEhhdSBOZ29jIEhhbiBkYSBnYXAgbmhpZXUgZGlldSB0aWVuZyBraG9uZyBo YXkgdmEgc2F1IHN1IGNvIA0Ka2hvbmcgdGhhbSBkdSBkZW0gRGFpIGxlICJUaGFuZyBMb25nIJYg SGEgTm9pIJYgVGhhbmggcGhvIHJvbmcgYmF5IiBjbyBuaGlldSB5IA0Ka2llbiB0cmFpIGNoaWV1 IHhvYXkgcXVhbmggc3UgdmllYyBuYXksIHBoYW4gbG9uIGRldSBjaGUgdHJhY2ggY2FjaCBoYW5o IHh1IGN1YSBIb2EgSGF1Lg0KKEhvYW5nIFRoYWksIGNob2x5dHJhZGEwODRAeWFob28uY29tLCAx Mi8xMC8yMDEwIGd1aSBsdWMgMTI6MTA6MjMpDQoNCk5odW5nIGJpZW4gbWluaCBnaW8ga2hvbmcg Y28geSBuZ2hpYSwgZGFpIGxlIGxhIG1vdCBzdSBraWVuIGN1YSBjYSBxdW9jIGdpYSwgMTAwMCBu YW0gDQptb2kgY28sIEhhbiBub2kgbGEgYmFuIGNobyBraGFpIGdpYW5nIHZhIGxhbSB0dSB0aGll bi4uLi5uaHVuZyB2aWVjIGtoYWkgZ2lhbmcgbGEgYnVvaSANCnNhbmcsIHZpZWMgbGFtIHR1IHRo aWVuIHRoaSBsYSByYXQgeSBuZ2hpYSBuaHVuZyB0aHUgaG9pIGJhbiBraG9uZyB0aGUgc2FwIHhl cCBob3AgbHkgaG9uIA0KZHVvYyBzYW8/IFRyb25nIGtoaSBkbyBiYW4gbGEgbmd1b2kgdmluaCBk dSBkdW9jIGdpYW8gdmllYyBuYXksIGJhbiBvIEhhIE5vaSBwaGFpIHRodWEgDQpiaWV0IHRoZSBu YW8gZGUgbHVvbmcgdHJ1b2MgZHVvYyB2aWVjIHRhYyBkdW9uZywgY2FjIGJhbiBraGFjIGRhIGRl biBkdW9jIHZhIGNobyBkb2kgDQpuaHUgbW90IHZpbmggZHUgbG9uIHRyb25nIGN1b2MgZG9pLCBi YW4gbm9pIGRlbiB0b2EgbmhhIEtlYW5nbmFtIGx1YyAxN2gzMCBuaHVuZyANCmtob25nIHZhbyBk dW9jIHNhbi4uLg0KDQpYaW4gdGh1YSB2b2kgYmFuIGx1YyAxN2g0NSB2YW4gZGkgY2h1eWVuIGR1 b2MgdHUgZHVvbmcgTWUgVHJpIHZhbyBtYWMgZHUgaG9pIGNoYW0gdmkgDQpsdXUgbHVvbmcgbmd1 b2kgZGEgZG9uZyBkYW4sIGJvIGJhbiB0aGkgbm9pIDE2aCBiYW4gbW9pIGRpIHRyYW5nIGRpZW0u Li4gTm9pIGNodW5nIGxhIA0KYmFuIGxhIG5ndW9pIHRoaWV1IHRyYWNoIG5oaWVtIHRyb25nIGNv bmcgdmllYywgZGFuZyByYSB0aGF5IHZpIGJhbiBuZ2hlIG5ndW9pIGtoYWMgY28gDQpuaHVuZyB5 IGtpZW4ga2hvbmcgaGF5IGhvYWMga2hvbmcgdW5nIGhvIGJhbiB0cnVvYyBkYXksIHRoaSBiYW4g Y2FuIHBoYWkgY28gZ2FuZyB0b3QgDQpob24gZGUgY2h1bmcgbWluaCBsYSBtaW5oIHh1bmcgZGFu ZywgdmEgZGF5IGN1bmcgbGEgY28gaG9pIHRvdCBjaG8gYmFuIHZheSBtYS4uLi4uIA0KU2F1IG5h eSB2aWVjIGdpIHRoYXkga2hvbmcgZHUga2hhIG5hbmcgbGFtIGJhbiBuZW4gdHUgYm8gbmdheSB0 dSBkYXUgdmkgVmlldCBOYW0ga2hvbmcgDQp0aGlldSBnaSBuZ3VvaSB4dW5nIGRhbmcgY28ga2hh IG5hbmcgbGFtIG5odW5nIHZpZWMgbmF5IQ0KDQooVGhhbyBNeSwgdGhhb215ODg4OEBnbWFpbC5j b20sIDEyLzEwLzIwMTAgZ3VpIGx1YyAxMToxMDoxMykNCg0KVG9pIHRob25nIGNhbSB2b2kgTmdv YyBIYW4uIFRvaSBjdW5nIG8gdHJvbmcgZG9uZyBuZ3VvaSB2YW8gc2FuIE15IERpbmggdG9pIGhv bSBkbywgDQp0b2kgZGVuIHR1IDNoIG1hIGNvbiBraG9uZyBsZW4gZHVvYyB2YW8gbnVhIGxhIGNv IGF5IDVoIG1vaSBkZW4uIFZpZWMgZ29pIGRpZW4gdGhvYWkgbyANCmRheSB0aG9pIGRpZW0gZG8g bGEga2hvbmcgdGhlLCBjYW0gZGllbiB0aG9haSBvIGRheSBraG9uZyBraGFjIGdpIGN1YyBnYWNo LiBNb2kgbmd1b2kgDQp0aHUgdHVvbmcgdHVvbmcgbW90IGtodSB2dWMga2hvYW5nIDFrbTIgbWEg Y28gdG9pIGhhbmcgdHJpZXUgbmd1b2ksIGFpIGN1bmcgY2FtIGRpZW4gDQp0aG9haSB0cmVuIHRh eSB0aGkgaG9pIGNvIG5oYSBtYW5nIG5hbyBkYXAgdW5nIGR1b2Mga2hvbmc/DQogKEdpYSBNaW5o LCBnaWFtaW5odnZAeWFob28uY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMTA6MTA6MTIpDQoNCk5l dSBiaWV0IHJvIHRyYWNoIG5oaWVtIGN1YSBtaW5oIHF1YW4gdHJvbmcgZGVuIGRhdSB0cm9uZyBk aXAgbmdhbiBuYW0gbmF5LCBjbyBzZSBiaWV0IA0KcGhhaSBsYW0gZ2kgZGUgZGVuIGtpcCBnaW8g dmEgdHJvbiB0cmFjaCBuaGllbS4NCg0KKE5HTyBUQU4gVEhVWSBUSUVOLCBuZ290YW50aHV5dGll bkBnbWFpbC5jb20sIDEyLzEwLzIwMTAgZ3VpIGx1YyAwOToxMDo1NikNCg0KRG8ga2hvbmcgcGhh aSBsYSBseSBkbyBjaGluaCBkYW5nIGNobyBtb3Qgbmd1b2kgbW9pIG5vaSB0aWVuZy4gTW90IGRh aSBsZSB2YSBtaW5oIGxhIA0KbmhhbiB2YXQgY2hpbmgsIHRhdCBjYSBwaGFpIGR1b2Mgc2FwIHhl cCB2YSBkdSBkb2FuIGNoaW4gY2h1LCBraG9uZyB0aGUgY2hhcCBuaGFuIGxvaSANCmJpZW4gbWlu aCAiZG9uIGdpYW4iIG5odSB2YXkuIEhvYSBoYXUgY2FuIHJ1dCBraW5oIG5naGllbSBjaG8gbW9p IHN1IGNodWFuIGJpIHRoYXQgDQpjaHUgZGFvLi4uIERheSBsYSB0aGlldSBzb3QgcmF0IGxvbiBt YSBjYW4gcnV0IGtpbmggbmdoaWVtIGNobyBiYWkgaG9jICJsb24iIGN1YSBjdW9jIA0KZG9pLi4u DQoNCihsZXRoYW5oLCBsZXRoYW5oaHRAZ21haWwuY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMDk6 MTA6MTcpDQoNClRvaSByYXQgdGhvbmcgY2FtIGNobyBlbSB2aSB2YW4gZGUgZ2lhbyB0aG9uZy4g VG9pIGJ1b24gdmEgdHVjIGdpYW4gdmkgZGFpIGxlIGxhIHZpZWMgbG9uLCANCmRhbmcgbmhlIGVt IHBoYWkgY2h1IGRvbmcgc29tIGNodS4gRW0gY3VuZyBiaWV0IHJhbmcga2V0IHhlIHNlIGxhIGto byB0cmFuaCBraG9pLiANClRydW9jIGRhaSBsZSBjdW5nIGRhIHhheSByYSBrZXQgeGUgcm9pLCBl bSBjdW5nIGN1bmcgYmlldCBjaHUuIE5odW5nIHRob2ksIGR1IHNhbyB0aGkgZGFpIA0KbGUgY3Vu ZyBkYSB4b25nIHJvaSwgbW9pIHZpZWMgZGllbiByYSBkZXUgdG90IGRlcC4gS2hvbmcgY28gZW0g dGhpIGN1bmcga2hvbmcgYW5oIA0KaHVvbmcgZ2kgbG9uIGNhLiBUb2kgbXVvbiBlbSBzYXUgY28g bGFtIGdpIHRoaSBuZW4gYmlldCBjYWkgbmFvIGxhIHF1YW4gdHJvbmcgdmEgbmVuIGxhbSANCnRy dW9jLiBOaGF0IGxhIGhpbmggYW5oIGN1YSBlbSBkdW9jIG5oaWV1IG5ndW9pIHRpbiB0dW9uZyB0 cmFvIGNobyBlbSBuaHVuZyB0cm9uZyB0cmFjaCANCmxvbiBob24gdHJvbmcgdHVvbmcgbGFpLiBE dW5nIGRlIG5ndW9pIHlldSBtZW4gdmEgdGluIHR1b25nIGxhaSB0aGF0IHZvbmcuIENodWMgZW0g DQp0aGFuaCBjb25nLCB0dW9pIHRyZSB2YSBoYW5oIHBodWMhDQoobGFuZ3R1LCB0dW5ndHl2MkBn bWFpbC5jb20gLCAxMi8xMC8yMDEwIGd1aSBsdWMgMDk6MTA6MDApDQoNClRvaSB0aGF5IGJhbiB0 aGF0IGtob25nIGNodXllbiBuZ2hpZXAgdHJvbmcgY29uZyB2aWVjLiBUb2kgcmF0IHRpZWMgY2hv IGJhbi4NCihIb2FuZyBIYWkgQW5oLCBjYW5keTE2MUBnbWFpbC5jb20sIDEyLzEwLzIwMTAgZ3Vp IGx1YyAxNToxMDo1NykNCg0KRHUgY28gbGEgZG8gdGFjIGR1b25nIHRoaSBjdW5nIHRoZSBoaWVu IHN1IGtob25nIGNodXllbiBuZ2hpZXAgY3VhIEhvYSBoYXUuIFRhYyBkdW9uZyANCmxhIGNodXll biBjaHVuZywgbmh1bmcgbmh1bmcgbmd1b2kga2hhYyB2YW4gZGVuIGR1b2MgZG8gdGhvaS4gTmdv YyBIYW4gY28gbmhhbiBsb2kgDQp0aGkgaGF5IG5lbiBuaGFuIGxvaSBjaG8gdGhhbmgga2hhbiwg ZHVuZyBjbyBub2kga2lldTogIlRvaSB4aW4gbmhhbiBoZXQgbG9pIHZlIHBoYW4gDQptaW5oIiBj dSBuaHUgbGEgb2FuIGxhbS4gQ28gdGhlIHRoYXkgTmdvYyBIYW4gYmkgbW9pIG5ndW9pIGxlbiBh biBuaGlldSBxdWEgbmVuIGRhbmggDQpuaGFuIGNodSB0aHVjIHN1IHRyb25nIGxvbmcgTmdvYyBI YW4ga2hvbmcgdHUgY2FtIHRoYXkgbWluaCBjbyBsb2kuIE5oYW4gbG9pIHRoaSBjYW4gDQp0aGFu aCBraGFuLCBuaHVuZyBkdW5nIGR1bmcgbnVvYyBtYXQgZGUgbGFtIG11aSBsb25nIG5ndW9pIGto YWMuIEtob25nIHBoYWkgcGhvbmcgDQp0aGFpIGN1YSBtb3QgaG9hIGhhdS4NCihoYW5oLCBtaWR1 ODVAZ21haWwuY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMTQ6MTA6NDYpDQoNClRvaSBkb2Mgbmh1 bmcgYmFpIHRydW9jIGN1YSBOZ29jIEhhbiB2YSB4ZW0gbmh1bmcgYmFpIGdhbiBkYXkgTmdvYyBI YW4gbm9pIHNlIA0KY2h1bmcgdG8gY2hvIG1vaSBuZ3VvaSB0aGF5IHZheSBtYSBub2kgZG9pLCBx dWFuaCBjbyB2ZSB2aWVjIGtob25nIHRoYW0gZHUgZGFpIGxlLiANCk5nb2MgSGFuIGJhbyBraG9u ZyB0aGkgTWlzcyBXb3JsZCB2aSBvIGxhaSBkdSBsZSBuZ2hpbiBuYW0gY3VvaSBjdW5nIGxhaSBj aGFuZyByYSBzYW8uIA0KQ28gY2F1IG5heSBtaW5oIG11b24gbm9pIGNobyBIYW4gIiBraG9uZyBj byBIYW4gdGhpIGNvIG5ndW9pIGtoYWMgIiB2YSB2YW4gZG9uZyB2dWkuDQooS2lldSBUcmFuZywg dHV5ZXRiYW5nYnVpQHlhb2guY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMDg6MTA6NTgpIA0KDQpH aW8gdGhpIGNodXllbiBkYSByb2ksIHRvaSByYXQgbGF5IGxhbSB0aWVjLCB0b2kgY2hvIHJhbmcg ZGF5IGxhIHZhbiBkZSBnaXVwIGNobyBtb2kgbmd1b2kgDQpjbyBjbyBzbyB2YSBraGFuZyBkaW5o IE5nb2MgSGFuIGNvIHh1bmcgZGFuZyBsYSBISCBraG9uZz8gVHJ1b2MgZG8gZGEgY28gdGluIGxh IA0Ka2hvbmcgdGhhbSBnaWEgdGhpIE1pc3MgV29ybGQgZGUgZG9uZyBnb3AgY2hvIGRhaSBsZSwg YmF5IGdpbyB0aGkuLi4uLm5ldSBsYSBuZ3VvaSBjdWEgDQpjb25nIGNodW5nLCBsYSBISCB0aGkg ZGlldSByYXQgZG9uIGdpYW4gbmVuIGJpZXQgY2h1eWVuIG5hbyBxdWFuIHRyb25nIGhvbiB2YSB1 b2MgdGluaCANCmR1b2MgdGhvaSBnaWFuLiBUb2kgcmF0IGtob25nIGRvbmcgdGluaCBtaW5oIGto b25nIHRoYW0gZ2lhIHBodWMgdnUgZGFpIGxlIGRvIGNodSBxdWFuLCANCmxhaSBjb24gY2hvIHJh bmcgbW90IHNvIHF1YW4gY2h1YyBjdW5nIGtob25nIGRlbiBkdW9jIG5odSBtaW5oLiBOZ29jIEhh biBwaGFpIGhpZXUgDQptb2kgbmd1b2kgZGV1IGNvIHZpIHRyaSB2YSB2YWkgdHJvIGtoYWMgbmhh dSwga2hvbmcgZGFuaCBkb25nIG5odSB0aGUgZHVvYy4gTmdvYyBIYW4gDQpuZW4geGVtIGRheSBs YSBtb3QgYmFpIGhvYyB2YSBjbyB0aGFpIGRvIG5naGllbSB0dWMgaG9uLg0KKFRpZW4gSHVuZywg aHVuZ2Vhcmx5QGdtYWlsLmNvbSAsIDEyLzEwLzIwMTAgMDg6MTA6MjEpDQoNClZhbiBkZSBvIGRh eSBsYSB4YSBob2kgbmhpbiBuaGFuIHZlIHkgdGh1YyBjdWEgbW90IGNhIG5oYW4gZG9pIHZvaSBk b25nIGJhbyBuZ2F5IGRhaSBsZS4gDQpLaG9uZyBiaWV0IGx5IGRvIGdpIGhldCwgY2hpIGxhIHN1 IHZhbmcgbWF0ISEgSG9hIGhhdSB0aGF0IGRhbmcgY2hlIHRyYWNoISBUaHUgaG9pLCBuZXUgDQpk YW5nIGRpIGhvYyBtYSBibyB0aGkgdmkgImR1b25nIGRvbmcgbmd1b2kiIHRoaSBHaWFvIHZpZW4g Y28gY2hvIGRhdSBraG9uZz8gQ29uIG8gDQpkYXksIFRoYXkgY3VhIE5nb2MgSGFuIGtob25nIHBo YWkgbGEgLi4uIEJhbiBnaWFtIGtoYW8gY3VvYyB0aGkgSG9hIGhhdSBudWEgbWEgQ29uZyANCmRv bmcsIGxhIERhbiB0b2MhIER1bmcgbGF5IFZ1b25nIG1pZW4gbWEgeGEgaG9pIHRyYW4gdHJvbmcg ZGUgY2hlIG5hbmcgdHJlbiBkYXUsIEhvYSANCi4uLi5oYXUgYSEgRG9uZyBiYW8gbWllbiBUcnVu ZyBzZSByYXQgdnVpIG11bmcga2hpIHhlbSB0cnV5ZW4gaGluaCB0aGF5IEhvYSBoYXUgVmlldCAN Ck5hbSBuZ2F5IERhaSBsZSB2YSBzYXUgRGFpIGxlIHNlIGdhcCBjb24gbmd1b2kgdGhhdCwgdGlu aCB0aGFuIHBoYW4ga2hvaSwgdnVvdCBxdWEga2hvIA0Ka2hhbiwgZ2lhbiBuYW4sIHRvIGNodWMg eGF5IGR1bmcgY3VvYyBzb25nIHNhdSB0aGllbiB0YWkuIERvIG1vaSBsYSB5IG5naGlhIGxvbiBj dWEgdGluaCANCnRoYW4gbmd1b2kgbGFtIHR1IHRoaWVuLg0KKEhvYW5nIE5ndXllbiwgUGhhbmdv Y2FtX2RuZzAzQHlhaG9vLmNvbSwgMTIvMTAvMjAxMCAwNzoxMDo1NykNCg0KRGFpIGxlIGxhIG1v dCBzdSBraWVuIGN1YSB0YXAgdGhlLCBzdSB0aGFuaCBjb25nIGN1YSBkYWkgbGUgY28gZHVvYyBs YSBuaG8gdGF0IGNhIG1vaSANCm5ndW9pLi4ga2hvbmcgcGhhaSBjdWEgY2EgbmhhbiBuYW8gY2Eu Lg0KKHZpZXRuYW1iYXlsZW4sIGdpb3R1b25nMzYxOTkyQGdtYWlsLmNvbSAsMTIvMTAvMjAxMCAw NzoxMDo0OSkNCg0KVG9pIHJhdCBraG9uZyBkb25nIHRpbmggdm9pIGNhY2ggZ2lhaSB0aGljaCBj dWEgTmdvYyBIYW4uIHJhdCBuaGlldSBuZ3VvaSB0cm9uZyBsZSBiZSANCm1hYywgbmhpZXUgZGll biB2aWVuLCB0aGUgbmh1bmcgaG8gZGV1IGRlbiBkYXkgZHUgdmEgaG9hbiB0aGFuaCB2b2kgdHJh Y2ggbmhpZW0gcmF0IA0KY2FvLiBDaGFuZyBsZSBjaGkgbWluaCBOZ29jIEhhbiBsYSBtdW9uIGE/ DQoNClZpZXRuYW1uZXQgc2UgdGllcCBkYW5nIHRhaSBuaHVuZyB5IGtpZW4gY3VhIGRvYyBnaWEg eHVuZyBxdWFuaCB2aWVjIEhvYSBIYXUgTmdvYyBIYW4gDQp2YW5nIG1hdCwga2hvbmcgdGhhbSBk dSBkYWkgbGUgMTAwMCBuYW0gdmkgbHkgZG8gdGFjIGR1b25nLiBEZSBjaGlhIHNlIG5odW5nIHkg a2llbiANCmN1YSBtaW5oLCBtb2kgZG9jIGdpYSB0aGFtIGdpYSwgZ3VpIHkga2llbiB2ZSBjaG8g VmlldG5hbW5ldC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDQxLzIwMTAxMDEwMTQ0ODI4LmFzcHggTWluaCBTYW5nIC0gVGhhbmggQ2h1bmcgMTAvMTAvMjAx MCAxNDo0OCANCg0KSGEgbm9pOiBNdWEgYmFuICJ2ZSIgeGVtIGNodW9uZyB0cmluaCBuZ2hpbiBu YW0gIA0KICANCihBbmggY2h1cDogQ2FjICJjbyIgZGFuZyBtb2kgY2hhbyB0cnVvYyBraHUgdnVj IHNhbiB2YW4gZG9uZyBxdW9jIGdpYSBNeSBEaW5oKQ0KDQooVE5PKSBNYWMgZHUgY2h1b25nIHRy aW5oIG5naGUgdGh1YXQgdmEgbWFuIGJhbiBwaGFvIGhvYSBkdXkgbmhhdCBjaGFvIG11bmcgMS4w MDAgDQpuYW0gVGhhbmcgTG9uZyAtIEhhIE5vaSB2YW8gdG9pIDEwLjEwIGtob25nIHRvIGNodWMg YmFuIHZlLCBuaHVuZyB0cmVuIG5oaWV1IHRyYW5nIA0KbWFuZyB2YSB0cnVvYyBraHUgdnVjIHNh biB2YW4gZG9uZyBxdW9jIGdpYSBNeSBEaW5oIChIYSBOb2kpLCByYXQgbmhpZXUgImNvIiBkYSBk dWEgbmhhdSByYW8gYmFuIGdpYXkgbW9pLiANCg0KVGhlbyBnaGkgbmhhbiBjdWEgY2h1bmcgdG9p IHZhbyBzYW5nIDEwLjEwLCB0YWkga2h1IHZ1YyB0cnVvYyBzYW4gdmFuIGRvbmcgTXkgRGluaCwg DQpjbyBraG9hbmcgZ2FuIGNodWMgImNvIiBjYSBuYW0gbGFuIG51IHRhcCB0cnVuZyByYW8gYmFu IGR1IGNhYyBsb2FpIGdpYXkgbW9pIG8gY2FjIA0Ka2hhbiBkYWkuIEdpYSB2ZSBtb2kgZHVvYyBj YWMgImNvIiByYW8gYmFuIHR1IDIgdHJpZXUgZGVuIDUgdHJpZXUgZG9uZy9jYXAsIHR1eSB2YW8g a2hhbiBkYWksIHRhbmcsIGhhbmcgZ2hlLg0KDQpUcm9uZyB2YWkgbW90IG5ndW9pIGNvIG5odSBj YXUgbXVhLCBjaHVuZyB0b2kgbmhhbmggY2hvbmcgZHVvYyBtb3QgImNvIiB0ZW4gRG8gKHNvIA0K ZGllbiB0aG9haTogMDE2ODc1MXh4eHgpIG1vaSBjaGFvIGdhbiBkb2FuIHRydSBzbyBMaWVuIGRv YW4gQm9uZyBkYSBWaWV0IE5hbS4gIkNodW9uZyANCnRyaW5oIG5heSBraG9uZyBjbyB2ZSBtYSBj aGkgY28gZ2lheSBtb2ksIGVtIGNvbiBjYXAgbyBraGFuIGRhaSBBLCBoYW5nIFYgZGF5LCBjaG8g DQpuYXkgeGVtIGxhIGRlcCBuaGF0IHRyb25nIHNhbiBkYXksIG1hIGtob25nIGNvIGhhbmcsIHNv IGdoZSBuZW4gYW5oIGN1IGRlbiBzb20gbmdvaSANCnhlbSB2b2kgdm8gaG9hYyBuZ3VvaSB5ZXUg dGhpIHR1eWV0IHZvaSIuDQoNCkdpYSBjdWEgY2FwIHZlIGtoYW4gZGFpIEEgZHVvYyAiY28iIHRl biBEbyBkdWEgcmEgbGEgNSB0cmlldSBkb25nL2NhcC4gIk5ldSBhbmggbGF5IA0KbHVvbiBlbSBi b3QgY2hvIG1vaSB2ZSAxMDAuMDAwIGRvbmcsIGNvbiBsYWkgbGEgNCw4IHRyaWV1IGhhaSB2ZS4g TWEgYW5oIGtob25nIGxheSANCm5oYW5oIGxhIGRlbiBjaGlldSBlbSBzbyBnYW4gY2FuIGdpbyBu byBjb24gbGVuIGRlbiA3IC0gOCB0cmlldS9jYXAgYXkgY2h1LiBLaGFuIGRhaSANCkEsIFYgdm9p IGdpYSB0aGUgbmF5IGxhIHF1YSBtZW0gcm9pIGFuaCBhIiwgImNvIiB0ZW4gRG8gYmFvLiANCg0K Q2FtIHRyZW4gdGF5IG1vdCB4YXAgZ2lheSBtb2kgZHVvYyBkdW5nIHRyb25nIG1vdCBwaG9uZyBi aSBtYXUgeGFuaCBjbyBpbiBsb2dvIA0KVGhhbmcgTG9uZyAtIEhhIE5vaSwgMS4wMDAgbmFtIGJl biBuZ29haSwgbW90ICJjbyIgbnUga2hvYW5nIGdhbiA0MCB0dW9pIGNoaWEgcmEgDQpjaG8gY2h1 bmcgdG9pIHhlbSBtYXkgY2FwIHZlIGN1YSBoYW5nIEMgdmEgRCBvIHRhbmcgSUksIHJvaSBuaGFu aCBuaGF1IGdpb2kgdGhpZXUgDQp2YSBiYW8gZ2lhOiAiSGFpIGhhbmcgbmF5IGxhIHhlbSBwaGFv IGhvYSBkZXAgbGFtIHJvaSBlbSBhLiBOZ2hpbiBuYW0gbW9pIGNvIG1vdCANCmxhbiBob2FuaCB0 cmFuZyB0aGUgbmF5IGNvIG1hLCBraGFuIGRhaSBDLCBjaG8gY2hpIHhpbiAyIHRyaWV1L2NhcCwg Y29uIGtoYW4gZGFpIA0KRCB0aGkgY2hpIGJvdCBjaG8gMjAwLjAwMCBkb25nL2NhcCIuIA0KDQpN b3QgImNvIiBudSBraGFjIGR1bmcgYmVuIGNhbmggY3VuZyBraG9uZyBxdWVuIGR1YSBkYXkgdGhl bSB2YW86ICJLaG9uZyBkYXQgZGF1IGVtIGEsIA0KbHVjIG5heSBjaGkgY29uIGJhbiBuaHVuZyAy LDUgdHJpZXUvY2FwIGNvLiBFbSBtYSBraG9uZyBtdWEgbmhhbmggdGhpIHR5IGN1bmcgY2hhIA0K Y28gbWEgbXVhIGRhdSwgdmUgbW9pIGNodSBjbyBwaGFpIG5odSB2ZSBraWEgZGF1Ii4NCg0KKEFu aCBjaHVwOiAiQ28iIGdpYXkgbW9pIGhvYXQgZG9uZyByYXQgeG9tIHR1IHRydW9jIGtodSB2dWMg c2FuIE15IERpbmgpDQoNCkNvbiB0cmVuIG1vdCBzbyB0cmFuZyBtYW5nIHJhbyB2YXQsIG5nYXkg dHUgbmdheSA3LjEwIGRhIGNvIGtoYSBuaGlldSB0aW4gcmFvIGJhbiANCmNhYyBnaWF5IG1vaSB4 ZW0gY2h1b25nIHRyaW5oIGJhbiBwaGFvIGhvYSBuZ2hlIHRodWF0IHRvaSAxMC4xMCB2b2kgbXVj IGdpYSB0dSANCjEsNSAtIDcgdHJpZXUgZG9uZy9jYXAsIHR1eSB2YW8ga2hhbiBkYWksIHRhbmcs IGhhbmcgZ2hlLiANCg0KVHJlbiB0cmFuZyB2Li4uLi4uLmNvbSwgbmljayBuYW1lIFRyaW5oIFRo aSBRdXluaCBBbmggcmFvOiAiSGllbiBuYXksIG1pbmggY28gbW90IA0KY2FwIHZlIHhlbSBsZSBi ZSBtYWMgRGFpIGxlIDEwLjEwIHRhaSBzYW4gTXkgRGluaCwga2hhbiBkYWkgRCBoYW5nIDI0LCBu aGluIHRoYW5nIA0KcmEgY2hvIGJhbiBwaGFvIGhvYS4gQmFuIG5hbyBtdWEgZ29pIG1pbmggdGhl byBzbyAwMTY4OTkzeHh4eCAoc21zIG9yIGNhbGwpIGhvYWMgDQp5YWhvbzogeHhrYXRyaW5heHh2 ZXJ5eHgiLiBNdWMgZ2lhIGR1b2MgUXV5bmggQW5oIGR1YSByYSBsYSAzLDUgdHJpZXUgZG9uZyIu DQoNCkNvbiBtb3Qgbmd1b2kgY28gdGVuIEh1bmcsIGNodSBuaGFuIHNvIGRpZW4gdGhvYWkgMDkw NDY2Ni4uLiByYW86ICJNaW5oIGNvIDIgY2FwIA0KdmUgeGVtIGxlIGhvaSBuZ2hpbiBuYW0gVGhh bmcgTG9uZyB0YWkgc2FuIHZhbiBkb25nIE15IERpbmggdG9pIG5heSwgdmUgVklQLCBraGFuIA0K ZGFpIEEsIDQgdHJpZXUgbW90IGNhcC4gTmhhbmggbGVuIHNvIGx1b25nIGNvIGhhbi4gTGllbiBo ZSBILiAwOTA0NjY2Li4uIiwgaG9hYyANCiJNaW5oIGNhbiBiYW4gMiB2ZSBraGFuIGRhaSBBLCB2 aSB0cmkgZGVwIGJhbyBxdWF0IHRvYW4gc2FuIHZhbiBkb25nLiBHaWEgNiB0cmlldSANCmRvbmcv Y2FwLiBCYW4gbmFvIGNvIG5odSBjYXUgdGhpIGxpZW4gaGUgdm9pIG1pbmg6IDAxNjk3NDAwLi4u ICwgZ2FwIEh1eWVuIG5oZSIuIA0KDQpLaGkgY2h1bmcgdG9pIHRydWMgdGllcCBnb2kgZGllbiB2 YW8gbmh1bmcgc28gZGllbiB0aG9haSByYW8gYmFuIGdpYXkgbW9pIGtpYSwgDQp0aGkgY28gaGFp IG5ndW9pIGNobyBiaWV0IGRhIGJhbiBkb2kgZ2lheSBtb2kgdm9pIGdpYSA0LDUgdHJpZXUgZG9u Zy4uLiANCg0KVGhlbyBnaGkgbmhhbiBjdWEgY2h1bmcgdG9pLCBtYWMgZHUgZ2lhIGNhbyBuaHVu ZyB2YW4gY28ga2hhIG5oaWV1IG5ndW9pIGRhbiANCmtob25nIG5nYW4gbmdhaSBibyB0aWVuIG11 YSBjYWMgdmUgbW9pIG5heS4gDQoNCiJOZ2hpbiBuYW0gbW9pIGNvIG1vdCBsYW4sIG1hIG5hbSBu YXkgYmFuIHBoYW8gaG9hIG1vaSBvIGRheSB0aG9pLCBuZ3VvaSB5ZXUgbWluaCANCmJhbyBtdW9u IGRpIHhlbSwgbWEgbmdvYWkgdGhpIGNoZW4gY2h1YyBuaGF1LCBsYWkgeGVtIGR1b2MgbW9pIHBo YW8gaG9hIG1hIGtob25nIA0KeGVtIGR1b2MgYmlldSBkaWVuIG5naGUgdGh1YXQgbmVuIG1pbmgg bXVhIGx1b24gY2FpIGdpYXkgbmF5LiBEYXQgbW90IHRpIG5odW5nIA0KdmFvIHhlbSB0cnVjIHRp ZXAgdHJvbmcgc2FuIHRoaWNoIGhvbiIsIGFuaCBUdWFuIEFuaCAobmhhIG8gSGFpIEJhIFRydW5n KSBjaG8gYmlldC4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMC9HaWFv LXRob25nLXRhYy1uZ2hlbi1zYXUtbGUtZGlldS1iaW5oLTk0MDE0Ny8gSG9hbmcgU2FuZyAtIFZ1 IERpZXAgLSBEdXkgVHVhbiAtIFBoYW0gSGFpIDE0OjMzLCAxMC8xMC8yMDEwIChHTVQrNykNCg0K SGEgTm9pOiBHaWFvIHRob25nIEhhIE5vaSB0YWMgbmdoZW4gY2hpZXUgMTAvMTAgDQoNClZOTi0g U2F1IGtoaSBsZSBkaWV1IGJpbmgsIGRpZXUgaGFuaCBrZXQgdGh1YywgdGluaCBoaW5oIGdpYW8g dGhvbmcga2h1IHZ1YyBIbyBHdW9tIA0KZGEgYmkgdGFjIG5naGVuIGhvYW4gdG9hbi4gQ3VuZyB0 cm9uZyBidW9pIHRydWEgMTAvMTAsIG5oaWV1IG5ndW9pIGRhbiBuZ29haSB0aW5oIA0KZGEgdHJv IHZlIHF1ZSBzYXUgbmh1bmcgbmdheSBsZW4gSGEgTm9pICJjaG9pIiBkYWkgbGUuDQoNClNhdSBr aGkgbGUgZGlldSBiaW5oIGtldCB0aHVjLCBkb25nIG5ndW9pIGRvIHhvIHZlIEhvIEd1b20gbmdh eSBjYW5nIGRvbmcga2hpZW4gdGluaCANCmhpbmggZ2lhbyB0aG9uZyBvIGtodSB2dWMgbmF5IGdh biBuaHUgYmkgdGUgY3VuZy4gTW9pIG5nYSBkdW9uZyBkbyB2ZSBIbyBHdW9tIGRlbiANCmtpdCBu Z3VvaSwgbHVjIGx1b25nIENTR1QgbWFjIGR1IGRhIGhldCBzdWMgbm8gbHVjIHNvbmcgdGluaCBo aW5oIGR1b25nIG5odSBraG9uZyBkdW9jIGNhaSB0aGllbiBsYSBtYXkuDQoNCihBbmg6IERvbmcg bmd1b2kgZG8geG8gdmUga2h1IHZ1YyBIbyBHdW9tIG5nYXkgc2F1IGtoaSBsZSBkaWV1IGhhbmgg a2V0IHRodWMga2hpZW4gDQpnaWFvIHRob25nIGtodSB2dWMgbmF5IGdhbiBuaHUgYmkgdGUgbGll dC4pDQpOZ2F5IHR1IGRvYW4gUGhvIEh1ZSwgZG9hbiBjYXQgdm9pIHBobyBMeSBUaHVvbmcgS2ll dCwgcGhhaSB2YXQgdmEgbGFtIG5ndW9pIGRhbiBtb2kgDQpuaGljaCBjaGFuIGxlbiBkdW9jLiBU aW5oIGhpbmggdHJlbiBjYW5nIHRybyBuZW4gdG9pIHRlIGhvbiB0YWkga2h1IHZ1YyBIYW5nIEJh aSANCmNhdCB2b2kgSGFpIEJhIFRydW5nLiBIYW5nIGNodWMgQ1NHVCBkdW9jIGN1IGRlbiBkYXkg ZGUgcGhhbiBsdW9uZywgdHJhbmggdGluaCB0cmFuZyANCnVuIHRhYyBuaHVuZyB0aW5oIGhpbmgg a2hvbmcgZHVvYyBjYWkgdGhpZW4gbGEgbWF5Lg0KDQooQW5oOiBNYWMgZHUgbHVjIGx1b25nIENT R1QgZGEgZHVvYyBodXkgZG9uZyB0b2kgZGEuLi4pDQoNCktodSB2dWMgSGFuZyBCYWkgLSBUcmFu ZyAtVGllbiAtIEhhbmcgS2hheSAtIERpbmggVGllbiBIb2FuZywgZG9uZyBuZ3VvaSB1biB1biB0 cmVuIA0KcGhvLiBNb2kgcGh1b25nIHRpZW4gZ2lhbyB0aG9uZyBnYW4gbmh1IGtob25nIHRoZSBs dXUgdGhvbmcgdHJlbiB0dXllbiBkdW9uZyBuYXkuIA0KDQooQW5oOiBTb25nIHRpbmggdHJhbmcg Z2lhbyB0aG9uZyB0YWkgZGF5IHZhbiBraG9uZyBkdW9jIGNhaSB0aGllbi4pDQpMeSBkbyBraGll biBnaWFvIHRob25nIGtodSB2dWMgbmF5IHVuIHRhYyB2YW8gdGhvaSBkaWVtIG5heSBjaGluaCBs YSBzYXUga2hpIHhlbSB4b25nIA0KbGUgZGlldSBiaW5oIHRhaSBuaGlldSBkaWEgZGllbSwgZGFp IGRhaSBzbyBuZ3VvaSBkYW4gZGEgcXVheSB0cm8gdmUgSG8gR3VvbSBkZSB0aWVwIHR1YyBkb24g RGFpLg0KDQpHYXAgYmFjIEJ1aSBWYW4gSG9jIHRyZW4gcGhvIFRyYW5nIFRpZW4gc2FuZyAxMC8x MCwgYmFjIGNobyBiaWV0OiAiVG9pIHF1ZSBvIE5hbSBEaW5oLCANCm5naGUgdm8gdHV5ZW4gbm9p IGhvbSBuYXkgbGEgY3VvYyBkaWV1IGhhbmgsIGRpZXUgYmluaCBsb24gbmhhdCBuZW4gZGEgdGh1 IHhlcCB2aWVjIA0KZG9uZyBhbmcgbGVuIFRodSBkbyB0dSB0b2kgcXVhLCBuZ3UgbmdvYWkgdnVv biBob2EgQ3VhIE5hbSBjaG8gZG9hbiBkaWV1IGJpbmggZGkgcXVhIi4NCkNvbiBnaWEgZGluaCBh bmggY2hpIFRvYW4gLSBUdXlldCBobyBob2kgY2hvIGJpZXQ6ICJHaWEgZGluaCB0b2kgeGVtIGRp ZXUgYmluaCBoYXkgcXVhLCANCmNhYyBjaGF1IHZ1aSBsYW0uIE5odW5nIGJheSBnaW8gYW4gdGFt IGJhbmggbXkgcm9pIHZlIFRoYWkgQmluaCB0aG9pLCBvIG5oYSBjb24gbmhpZXUgdmllYyBxdWEi Lg0KVHJvbmcga2hvbmcga2hpIGhhbiBob2FuLCBubyBudWMgbW9pIG5ndW9pIGRhIGNvIG1vdCBj aGFuZyBkdW9uZyBkaSBibyBkYW5nIG5oby4gR2lhIA0KZGluaCBhbmggVGllbiBjaG8gYmlldCBk YSBwaGFpIGRpIGJvIHR1IGJlbiB4ZSBHaWFwIEJhdCBsZW4gYm8gSG8gZGUgY2hvaSBwaG8gdHUg c2FuZyBzb20gMTAvMTAuDQpOaHVuZyAiY28gZG9uZyB2aWVuIiBkYWMgYmlldCBkYSB4ZXAgdmll YyBkb25nIGFuZyB0cmFuaCB0aHUgbGVuIFRodSBkbyB2dWkgY2hvaSB0cm9uZyANCm5nYXkgRGFp IGxlLCByb2kgaG8gbGFpIHZvaSB2YSByb2kgSGEgTm9pIGRlIHZlIHF1ZSBuZ2F5IHRyb25nIG5n YXkgMTAvMTAuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vcmFkaW92bm4vMjAxMDEwL05n dW9pLWRhbi1raG9uLWRvbi12b2ktcGhhby1ob2EtTXktZGluaC05NDAxODcvIFR1YW4gSGFpIC0g VGh1IEFuaCAoIHRodWMgaGllbiApIDIwOjQ4LCAxMC8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9p OiBOZ3VvaSBkYW4gJ2tob24gZG9uJyB2b2kgcGhhbyBob2EgTXkgRGluaA0KDQpWTk4tIFRvaSBk YW5nIGNvIG1hdCB0YWkgTXkgRGluaCwgZ2lhbyB0aG9uZyBvIGRheSByYXQgaG9uIGxvYW4sIGRp IGJvIGNvbiBraG8ga2hhbiANCmNodSBkdW5nIG5vaSBkZW4gbGEgZGkgeGUgbWF5IGhheSBvdG8u IE5oaWV1IG5ndW9pIHZvIHkgdGh1YyB0cmVuIG5oYSBjYW8gdGFuZyBjb24gDQpoYXQgbnVvYyB4 dW9uZyBkYW0gZG9uZyBnYXkgcmEgc3UgYnVjIGRvYyB0dWMgdG9pIGNobyBuZ3VvaSBkaSBkdW9u Zy4NCkNsaWNrIHZhbyBkYXkgZGUgbmdoZSB0aGluaCBnaWEgZ29pIGRpZW4gcGhhbiBhbmggdGlu aCBoaW5oIA0KU2FuZyBuYXksIG11bmcgMTAgdGhhbmcgMTAsIG5ndW9pIGRhbiB0cmVuIGNhIG51 b2MgZGEgZHVvYyB0aG9hIGxvbmcgdm9pIG1hbiBkaWV1IA0KYmluaCBsaWNoIHN1IGhvYW5oIHRy YW5nLiBWYSBjaGkgaXQgcGh1dCBudWEsIG5ndW9pIGRhbiBsYWkgY28gY28gaG9pICBjaGllbSBu Z3VvbmcgDQptYW4gYmFuIHBoYW8gaG9hIGJlIG1hYyBkYWkgbGUgMTAwMCBuYW0gVGhhbmcgTG9u ZyCWIEhhIE5vaS4gVmkgU2FuIHZhbiBkb25nIHF1b2MgDQpnaWEgTXkgRGluaCBsYSBkaWEgZGll bSBkdXkgbmhhdCB0byBjaHVjIGJhbiBwaGFvIGhvYSB0cm9uZyB0b2kgbmF5IG5lbiB0dSBraG9h bmcgDQozaCBjaGlldSAsIG5ndW9pIGRhbiB0dSBraGFwIG5vaSBkYSBkbyB4byB2ZSBNeSBEaW5o IGRlIGNvIHRoZSB0aW0gY2hvIG1pbmggbW90IGNobyBkdW5nIGx5IHR1b25nIG5oYXQuDQogDQpB aSBjdW5nIG11b24gdGFuIG1hdCBjaHVuZyBraWVuIGRlbSBob2kgcGhhbyBob2EgbmdoaW4gbmFt IGNvIG1vdC4gVGhlIG5odW5nIGtob25nIA0KaXQgbmd1b2kgZGEgZ2FwIG1vdCBwaGVuIGtob24g ZG9uIGtoaSB0aW0gZHVvbmcgdmUgTXkgRGluaC4gUmF0IG5oaWV1IHF1eSB0aGluaCANCmdpYSBk YSBnb2kgZGllbiB2ZSBWaWV0bmFtbmV0IHZhIGNoaWEgc2Ugbmh1bmcgY2FtIHh1YyB0cm9uZyBi dW9pIHRvaSBtdW5nIEhhIE5vaSBuZ2hpbiBuYW0gdHVvaS4gDQogDQpBbmggTmd1eWVuIEFuaCBE dWMgLSBTViBEYWkgaG9jIExhbyBkb25nIHZhIFhhIGhvaTogIlRvaSBkYW5nIGNvIG1hdCB0YWkg Y29uIGR1b25nIA0KUGh1IE1pIJYgTXkgRGluaCwgZ2lhbyB0aG9uZyBvIGRheSByYXQgaG9uIGxv YW4sIGRpIGJvIGNvbiBraG8ga2hhbiBjaHUgZHVuZyBub2kgDQpkZW4gbGEgZGkgeGUgbWF5IGhh eSBvdG8gVGluaCBoaW5oIHhvIGRheSwgY2hlbiBsYW4gZGllbiByYSB2YSBjb24geGF5IHJhIHhv IHhhdC4gDQpOaGlldSBuZ3VvaSB2byB5IHRodWMgdHJlbiBuaGEgY2FvIHRhbmcgY29uIGhhdCBu dW9jIHh1b25nIGRhbSBkb25nIGdheSByYSBidWMgZG9jLCB0dWMgdG9pIGNobyBuZ3VvaSBkaSBk dW9uZyIuDQogDQpMYW4gVGh1LCAxNyB0dW9pIJYgZGFuZyBsYSBob2Mgc2luaCBjdW5nIGNoaWEg c2U6IEhvbSBuYXksIGVtIGN1bmcgY2EgbmhhIGRlbiANCk15IERpbmggYmFuZyBvIHRvLCB2aSBy YXQgZG9uZyBuZW4gZ2lhIGRpbmggZW0gcGhhaSBndWkgbyB0byBjYWNoIGRheSAya20uIA0KSGll biBuYXksIHRoaSBvIGRheSBjbyByYXQgbmhpZXUgbmd1b2ksIHJhdCBraG8gY28gdGhlIHRpbSBj aG8gbWluaCBtb3QgY2hvIA0KZHVuZyBseSB0dW9uZyBkZSB4ZW0gcGhhbyBob2EuIEx1YyBvIG5o YSB0aGkgYm8sIG1lIGNvIGJhbyBsYSBvIG5oYSB4ZW0gcGhhbyANCmhvYSBuaHVuZyBkbyBjaGks IGVtIG5hbyBudWMgdm9pIGhvIGhvaSBxdWEgbmVuIGJvIG1lIGNoaWV1IGNobyBkaSB4ZW0uDQoN ClRhYyBkdW9uZyB4YXkgcmEgdHJlbiBjYWMgdHV5ZW4gZHVvbmcgZGFuIGRlbiBNeSBEaW5oDQoN Ck5ndW9pIGRlbiB4ZW0gcXVhIGRvbmcsIHRpbmggdHJhbmcgY2hlbiBsYW4sIHhvIGRheSBkaWVu IHJhIGtoaWVuIGNvbiBkdW9uZyBkZW4gc2FuIA0KdmFuIGRvbmcgTXkgRGluaCBraG9uZyBjb24g Y2hvIHRyb25nIGRlIGRpIGNodXllbi4gUFYgSGFpIEFuaCBkYW5nIGNvIG1hdCB0cmVuIGR1b25n IA0KUGhhbSBIdW5nIGNobyBiaWV0OiAiVG9pIGRhbmcgZHVuZyBvIGR1b25nIFBoYW0gSHVuZywg eHVuZyBxdWFuaCB0b2kgcmF0IGRvbmcgdmEgDQp0YWMgZHVvbmcsIG5ndW9pIGRhbiB0dSBraGFw IG5vaSBkbyB2ZSBNeSBEaW5oIHhlbSBkYWkgbGUsIG5oaWV1IGNobyBjb25nIGFuIGNhbSANCmR1 b25nIGdheSByYSB0aW5oIHRyYW5nIHRhYyBuZ2hlbiB2byBjdW5nLiBUaW5oIHRyYW5nIGx1YyBu YXkgcmF0IGRvbmcgbmVuIHRvaSBtYWMgDQpkdSB0b2kgcmF0IG11b24gZGVuIE15IERpbmggeGVt IGRhaSBsZSBuaHVuZyB0b2kga2hvbmcgYmlldCBwaGFpIGRpIG5odSB0aGUgbmFvIHZpIA0KdGll biBjdW5nIGtob25nIGR1b2MgdmkgbHVpIGN1bmcgY2hhbmcgeG9uZyIuDQoNClRpbmggdHJhbmcg dGFjIG5naGVuLCBjaGVuIGxhbiBkYW5nIGxhIGRpZXUgbWEgbmh1bmcgbmd1b2kgZGFuIHRpZW4g dmUgTXkgRGluaCBkYW5nIA0KcGhhaSBjaGl1IGR1bmcuIFRoZW0gdmFvIGRvIGxhIHRpbmggdHJh bmcgcGhlIHZlLiBEZSB2YW8geGVtIGNodW9uZyB0cmluaCBiZSBtYWMgbmd1b2kgDQpkYW4gcGhh aSBibyByYSB0dSAxLjUwMC4wMDBEIGRlbiAzLjAwMC4wMDBEIGNobyBtb3QgY2FwIHZlLiBTbyBs dW9uZyB2ZSBjbyBoYW4sIG5lbiANCnJhdCBuaGlldSBuZ3VvaSBsdWEgY2hvbiBwaHVvbmcgYW4g bGEgZHVuZyBvIG5nb2FpIHNhbiAgY2hpZW0gbmd1b25nIG1hbiBiYW4gcGhhbyBob2EuDQogDQpB bmggVHJvbmcgVmlldCCWIHNvbmcgdGFpIEhhIERvbmcgliBIYSBOb2kgY2hvIGJpZXQ6ICJIaWVu IHRhaSBtaW5oIGRhbmcgbyBraHUgY29uZyANCmNoaW5oIG8gTXkgRGluaCwgZ2lhbyB0aG9uZyBy YXQgZG9uZywgbW9pIG5ndW9pIHRhcCB0cnVuZyByYXQgc28gYm8uIE1pbmggY3VuZyBtdW9uIA0K dmFvIGtoYW4gZGFpIEIgZGUgeGVtIHBoYW8gaG9hIG5odW5nIHRpbmggdHJhbmcgcGhlIHZlIGRp ZW4gcmEsIG1vaSB2ZSB0dSAxdHI1IGRlbiANCjJ0ciBuZW4gY2hhYyBtaW5oIGR1bmcgbmdvYWku IE1vdCBsdWMgbnVhIG1hIGRlbiBNeSBEaW5oIGNoYWMgY2hhbiBzZSBraG9uZyB0aGUgY2hlbiB2 YW8gZHVvYyIuDQoNCk5odW5nIG5ndW9pIGRhbiBjbyBuaGEgaG9hYyBuZ3VvaSB0aGFuIHNvbmcg Z2FuIE15IERpbmggY28gdGhlIGNvaSBsYSBtYXkgbWFuIHRyb25nIA0KZGlwIG5heSB2aSBraG9h bmcgY2FjaCBkaSBkZW4gc2FuIHZhbiBkb25nIHNlIGR1b2MgcnV0IG5nYW4uIEFuaCBMZSBYdWFu IEJhYyCWIGRhbmcgDQpzb25nIHRhaSBraHUgZG8gdGhpIE15IERpbmggSSBjdW5nIGNvIGtlIGhv YWNoIGN1bmcgY2EgbmhhIGRpIHhlbSBwaGFvIGhvYSB0aGUgbmh1bmcgDQpkZW4gcGh1dCBjdW9p LCBhbmggZGEgdGhheSBkb2kga2UgaG9hY2ggY3VhIG1pbmg6ICJUb2kgY3VuZyBjYSBuaGEgZGUg eGUgbyBuaGEgdmEgDQpkaSBibyByYSBzYW4uIE1vaSBuZ3VvaSBoYXUgaGV0IGRpIGJvIHZpIGNh YyBwaHVvbmcgdGllbiBjYW0geGUgY2FjaCBkbyBraG9hbmcgMmttLiANCkhpZW4gdGFpIGR1b25n IExlIER1YyBUaG8gaGllbiByYXQgZG9uZy4gVG9pIHRoYXkgYmF5IGdpbywga2hvbmcga2hpIHJh dCBkb25nLCByYXQgDQpraG8gZGUgY28gdGhlIHRpbSBjaG8gbWluaCBtb3QgdmkgdHJpIGRlcCBk ZSB4ZW0gcGhhbyBob2EgbmVuIHRvaSB2YSBtb2kgbmd1b2kgcXV5ZXQgDQpkaW5oIHNlIHRybyB2 ZSBuaGEgZGUgeGVtIHR1IGtodSBjaHVuZyBjdSIuDQoNCk5ndW9pIGRhbiBoYW8gaHVjIGNobyB4 ZW0gcGhhbyBob2ENCg0KQ3VuZyBnaW9uZyBuaHUgYW5oIEJhYywgYW5oIER1b25nIE1hbmggSHVu ZyBjdW5nIGNhYyBiYW4gY3VuZyBuYW4gbG9uZyB0cnVvYyB0aW5oIA0KdHJhbmcgdGFjIG5naGVu IHZhIHF1YXkgdmUgZG9uIGRhaSBsZSB0aGVvIGNhY2ggY3VhIHJpZW5nIG1pbmg6ICJOaHUgbW9p IG5ndW9pIGtoYWMgDQp0b2kgY3VuZyBtdW9uIGRlbiBNeSBEaW5oIGRlIHRoYW0gZHUgbGUgYmUg bWFjIG5odW5nIGRpIHR1IDVoIG1hIGR1b25nIHJhdCB0YWMgbWEgDQp2YW4ga2hvbmcgbGVuIGR1 b2MgTXkgRGluaCBuZW4gdG9pIGN1bmcgYmFuIGJlIGRhIGNodXllbiBrZSBob2FjaCBsYSBkZW4g cXVhbiBiaWEsIA0KZG9uIGRhaSBsZSB0aGVvIGNhY2ggcmllbmcgY3VhIG1pbmggdmEga2hvbmcg a2hpIG8gZGF5IGN1bmcgcmF0IHNvaSBub2kiLg0KDQpUaGVvIGdoaSBuaGFuIGN1YSBQViBWaWV0 bmFtbmV0LCBuZ3VvaSBkYW4gdHUgdGFwIHJhdCBkb25nLCBjaGVuIGxhbiB4byBkYXkga2hpZW4g DQpjYWMgbHVjIGx1b25nIGFuIG5pbmggbGFtIHZpZWMgcmF0IHZhdCB2YS4gTmV1IGtob25nIHRh bmcgY3VvbmcgbHVjIGx1b25nIGtpcCB0aG9pIA0KY28gdGhlIHZvIGhhbmcgcmFvIGFuIG5pbmgg byBiZW4gbmdvYWkuIA0KIA0KTWFjIGR1IHBoYW8gaG9hIGRhIG5vIHRyZW4gYmF1IHRyb2kgTXkg RGluaCwgbmh1bmcgdGluaCB0cmFuZyB1biB1IHZhbiBraG9uZyBrZXQgdGh1Yy4gDQpWYSBjaGFj IGNoYW4ga2hpIGNodW9uZyB0cmluaCBiZSBtYWMgZGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcg a2hlcCBsYWksIHRpbmggDQp0cmFuZyB0YWMgZHVvbmcgY3VuZyBuaHUgbmhpZXUgdmFuIGRlIGto YWMgc2UgdGllcCB0dWMgeGF5IHJhLiANCg0KaHR0cDovL3d3dzU3LnZpZXRuYW1uZXQudm4vdm4v dGluLW5oYW5oLzI2NDkvY29uZy10cmluaC1ob2FuaC10cmFuZy1jdWEtZGFpLWxlLXh1b25nLWNh cC1uZ2hpZW0tdHJvbmcuaHRtbCBUaHUgSHVvbmcgKFRvbmcgaG9wKSAxMS8xMi8yMDEwIDA2OjI1 OjAwIEFNIChHTVQrNykgDQoNCkhhIE5vaTogSG9hbmggdHJhbmcgZGlwIERhaSBsZSByb2kuLi4g dnV0IGRheSCWIE5oaWV1IGNvbmcgdHJpbmggaHUgaG9uZyBuYW5nIA0KDQotIE5oaWV1IGNvbmcg dHJpbmggY2hhbyBtdW5nIERhaSBsZSBkdW9jIHRodWMgaGllbiByYXQgcXV5IG1vLCBob2FuaCB0 cmFuZy4gVHV5IG5oaWVuLCANCmNoaSBtb3QgdGhvaSBnaWFuIG5nYW4gc2F1IERhaSBsZSwgbmh1 bmcgY29uZyB0cmluaCBkbyBraG9uZyBkdW9jIGFpIHF1YW4gdGFtIGRlbiBob2FjIA0KZG8gY29u ZyB0YWMgcXVhbiBseSB5ZXUga2VtIG5lbiBkYW4gZGVuIGh1IGhvbmcgbmFuZy4NCg0KVHJvbmcg c2FtIGh1IGhvbmcgc2F1IERhaSBsZQ0KDQpUcm9uZyBzYW0sIGNoaWVjIHRyb25nIGR1b2MgZGFu aCB2YW8gbGUga2hhaSBtYWMgdmEga2V0IHRodWMgRGFpIGxlIGtpIG5pZW0gMTAwMCBuYW0gDQpU aGFuZyBMb25nIC0gSGEgTm9pICh0dSAxLTEwLzEwKSwgZGEgYmF0IGRhdSBodSBob25nLiBNYXQg dHJvbmcgYmkgbW9jLCBuaGlldSBuZXQgaG9hIHZhbiBwaGFpIG1hdS4gTmhpZXUgdmV0IG51dCBk YSB4dWF0IGhpZW4gdHJlbiBnaWEgdHJvbmcuDQoNCkRheSBsYSBjaGllYyB0cm9uZyBsb24gbmhh dCBWaWV0IE5hbSwgdmEgY28gdGhlIGxhIGNhIERvbmcgTmFtIEEsIHZvaSBkdW9uZyBraW5oIA0K MywxNW0uIFRyb25nIGR1b2MgbGFtIGJhbmcgbG9pIGdvIG1pdCwgZGEgdHJhdSBzb25nLCBjbyBo aW5oIHJvbmcgdm9uIG1heSwgdW9uIGx1b24uIA0KQ2hpZWMgdHJvbmcgbmF5IGRvIEhpZXAgaG9p ICBUaHUgY29uZyBteSBuZ2hlIGxhbmcgbmdoZSB0aGFuaCBwaG8gSGEgTm9pIGN1bmcgdGllbiBj aG8gSG9hbmcgdGhhbmggVGhhbmcgTG9uZy4gDQoNCihBbmg6IE1hdCB0cm9uZyBTYW0gZGEgYmF0 IGRhdSBib25nIHZhIG1vYyBBbmg6IFZuRXhwcmVzcykNCg0KU2F1IERhaSBsZSwgY2hpZWMgdHJv bmcgdmFuIGR1b2MgZGF0IG8gc2FuIGRpZW4gS2luaCBUaGllbiwgY2hpdSBtdWEgY2hpdSBuYW5n LiBPbmcgDQpQaGFuIER1eSBUaGFuZywgUGhvIEdpYW0gZG9jIFRydW5nIHRhbSBiYW8gdG9uIGto dSBkaSB0aWNoIENvIExvYSAtIFRoYW5oIGNvIEhhIA0KTm9pIHRodWEgbmhhbiB0cmVuIFZuRXhw cmVzcyByYW5nLCB2aWVjIGJhbyBxdWFuIHRyb25nIGNodWEgdG90LiBIaWVuIG5heSwgbW9pIGto aSB0cm9pIA0KbXVhLCBuaGFuIHZpZW4gbGFpIG1hbmcgYmF0IGNoZSBjaG8gdHJvbmcsIG5hbmcg bGFpIHRoYW8gcmEuIA0KDQpDb24gb25nIExlIEdpYW5nIFRvLCBQaG8gQ2h1IHRpY2ggSGllcCBo b2kgVGh1IGNvbmcgbXkgbmdoZSBsYW5nIG5naGUgdGhhbmggcGhvIEhhIA0KTm9pLCBuZ3V5ZW4g dHJ1b25nIGJhbiBjaGkgZGFvIGNodW9uZyB0cmluaCBkYW5nIHRpZW4gY2h1b25nLCBjaGllbmcs IHRyb25nIGxlbiBIb2FuZyANCnRoYW5oIFRoYW5nIExvbmcgcGhhdCBiaWV1IHRyZW4gVm5FeHBy ZXNzIHJhbmc6ICJOZXUgZHVvYyBiYW8gcXVhbiB0b3QsIHRyb25nIGNvIHR1b2kgdGhvIGtob2Fu ZyAzMDAgbmFtLiBOaHVuZyBoaWVuIHRyb25nIGJhdCBkYXUgaG9uZyBwaGFuIGRhIGJpdCBtYXQg ZG8geGFtIHRodWMgY3VhIA0KbnVvYyBtdWEsIG5hbmcgZ2lvIHZhIGFtIG1vYyIuDQoNCkNoaW0g Y2F1IERhaSBsZSBiaWVuIHRoYW5oLi4uIG1vbiBuaGF1DQoNClRyb25nIGRpcCBEYWkgbGUgdnVh IHF1YSwgaGluaCBhbmggMS4wMDAgY29uIGJvIGNhdSB0cmFuZyB0dW5nIGNhbmggdHJlbiBiYXUg dHJvaSB0aHUgSGEgDQpOb2kgZGEgZGUgbGFpIG5odW5nIGFuIHR1b25nIGtobyBwaGFpIHRyb25n IGxvbmcgbmd1b2kgZGFuIFZpZXQgTmFtIHZhIGR1IGtoYWNoIHF1b2MgDQp0ZS4gVGhlIG5odW5n LCBzYXUgRGFpIGxlLCBob24gMi8zIHNvIGNvbiB0cm9uZyBkYW4gY2hpbSBuYXkgZGEgYmkgaGFv IGh1dC4NCg0KKEFuaDogRGFuIGNoaW0gY2F1IG11bmcgRGFpIGxlIGRhbmcgYmllbiB0aGFuaC4u LiBtb24gYW4uIEFuaCBWaWV0bmFtbmV0KQ0KDQpMeSBnaWFpIG5ndXllbiBuaGFuIHNvIGx1b25n IGRhbiBjaGltIGdpYW0gbWFuaCwgb25nIFBoYW0gVGFpIFRodSAtIG5ndW9pIG51b2kgDQpkdW9u ZyB2YSBodWFuIGx1eWVuIGRhbiBjaGltIG11bmcgRGFpIGxlIC0ga2hhbmcgZGluaCwgZGFuIGNo aW0gYm8gY2F1IGJpIGNoZXQgbW90IA0KcGhhbiBsYSBkbyB0aG9pIHRpZXQgbWllbiBCYWMgdGhh eSBkb2kgZG90IG5nb3Qga2hpZW4gY2hpbSBiaSBzb2MsIHN1YyBkZSBraGFuZyB5ZXUgZGFuIHZh IHRhbmcga2hhIG5hbmcgbmhpZW0gYmVuaC4gVHV5IG5oaWVuLCBvbmcgVGh1IGNobyByYW5nLCBw aGFuIGxvbiBkYW4gY2hpbSB0aGF0IHRob2F0IA0KbGFpIGxhIGRvIG1vdCBzbyBuZ3VvaSBkYW4g dGhpZXUgeSB0aHVjIGRhIGJhdCB0cm9tIHZlIGxhbSB0aGl0LiANCg0KTmdheSAyOC8xMSwgNiBk b2kgdHVvbmcgYmF0IHRyb20gY2hpbSBibyBjYXUgdGh1b2MgZGFuIGNoaW0gaG9hIGJpbmggbXVu ZyBEYWkgbGUgDQpkYW5nIGR1b2MgbnVvaSBkdW9uZyB2YSBodWFuIGx1eWVuIHRhaSBjb25nIHZp ZW4gQmFjaCBUaGFvIChIYSBOb2kpIGRhIGJpIHRvbSBnb24uIA0KVHJhbyBkb2kgdm9pIFBWIFZp ZXROYW1OZXQsIENvbmcgYW4gcGh1b25nIE5nb2MgSGEgKEJhIERpbmgsIEhhIE5vaSkgY2hvIGJp ZXQgNiBkb2kgdHVvbmcgbmF5IGRhIG5oaWV1IGxhbiB0aWVuIGhhbmggYmF0IHRyb20gdm9pIHRv bmcgc28gY2hpbSBsYSA0NjAgY29uIGRlIGdpZXQgdGhpdCANCmhvYWMgdGlldSB0aHUgbyBjYWMg Y2hvLCBoYW5nIHF1YW4uDQoNCk5odW5nIGNvbmcgdHJpbmggaHUgaG9uZyB0aGFtIGhhaSBzYXUg RGFpIGxlDQoNCkRvaSByb25nIHRob2kgTHkgZ2hlcCBiYW5nIGdvbSBCYXQgVHJhbmcgbGEgY29u ZyB0cmluaCBkYWMgc2FjLCB5IG5naGlhIGNoYW8gbXVuZyBEYWkgDQpsZS4gRGF5IGxhIGRvaSBy b25nIGdvbSBsb24gbmhhdCBWaWV0IE5hbSB2b2kgbW9pIGNvbiBkYWkgMTVtLCBjYW8gOCwybSAo a2UgY2EgYmUpLCANCmR1b25nIGtpbmggOTBjbSwgZHVvYyBsYXAgZ2hlcCBib2kgNi41MDAgY2hp ZWMgZGlhLCA1IHRhbiBtYWNoIHN1IHZhIDQuNTAwIGNoaWVjIGNvYy4gDQpUaGUgbmh1bmcsIDIg dGhhbmcgc2F1IERhaSBsZSwgbmhpZXUgbWFuaCBnaGVwIG8gYmUsIHRoYW4gcm9uZyBkYSBiaSBi b25nIHRyb2MuIE5oaWV1IA0KdGFuZyByYWMgcnVvaSwgbWFuZyBuaGVuIGJhbSBjaGF0IHR1IGRh dSBkZW4gZHVvaSByb25nLiBOaGlldSBuZ3VvaSBjYW0gdGhheSB0aGF0IHRpZWMgDQpraGkgbW90 IGRvaSByb25nIHRvIGRlcCBuaHUgdGhlIG1hIGtob25nIGR1b2MgcXVhbiB0YW0gZ2luIGdpdS4N Cg0KKEFuaDogSG9hIHRpZXQgaG9hIHZhbiBkYWMgc2FjIHRyZW4gbW90IGRvYW4gY3VhIENvbiBk dW9uZyBnb20gc3UuIEFuaDogVGhhbmggbmllbikNCg0KRG9pIHJvbmcgbmF5IGhpZW4gZHVvYyBk YXQgdHJvbmcgQ29uZyB2aWVuIEJhY2ggVGhhby4gQmEgTmd1eWVuIFRoaSBUaGFjaCCWIEdpYW0g DQpkb2MgQ29uZyB2aWVuIEJhY2ggVGhhbyBjaG8gYmlldCB0cmVuIERhbiBWaWV0IHJhbmc6ICJU aGVvIHRvaSBkdW9jIGJpZXQsIGRvaSByb25nIGR1b2MgDQp0aHVjIGhpZW4gdHJvbmcgdGhvaSBn aWFuIGtoYSBnYXAgcnV0LCBjb25nIHZvaSB5ZXUgdG8gdGhvaSB0aWV0IHZhIHkgdGh1YyBjdWEg a2hhY2ggdGhhbSANCnF1YW4gbmVuIGRlbiBuYXkgbW90IHNvIG5vaSB0cmVuIHRoYW4gcm9uZyBk YSB4YXkgcmEgaGllbiB0dW9uZyBib25nIHRyb2MiLg0KDQoiQ29uIGR1b25nIGdvbSBzdSIgbGEg bW90IHRyb25nIG5odW5nIGNvbmcgdHJpbmggdHJvbmcgZGllbSBtdW5nIERhaSBsZS4gU2F1IGdh biA0IA0KbmFtIHRodWMgaGllbiwgY29uZyB0cmluaCBkYSBob2FuIHRoYW5oIHZvaSBkbyBkYWkg Myw4NWttLCB0b25nIGRpZW4gdGljaCBsYSA2Ljk1MG0yLCANCmJhbyBnb20gY2FjIGRvYW4gdHJh bmggZ2hlcCBnb20gc3UgcnVjIHJvIG1hdSBzYWMsIGRhIGRhbmcgdmUgcGhvbmcgY2FjaCB2YSBj aHUgZGUuDQoNClR1eSBuaGllbiwgaGllbiBuYXksIG5oaWV1IGRvYW4gZGEgYmkgYm9uZyBtZW4s IHJhbiBudXQuIE5nb2FpIHJhLCByYWMgdGhhaSBkbyBjYWMgZ2FuaCANCmhhbmcgcm9uZyB0YXAg dHJ1bmcgbyBraHUgY2hvIGRhdSBtb2kgTG9uZyBCaWVuIHZhIHRyZW4gY2FjIHR1eWVuIGR1b25n IFllbiBQaHUsIEFuIA0KRHVvbmcgcmF0IG5oaWV1IGdheSBtYXQgbWkgcXVhbiBjaG8gY29uZyB0 cmluaCBtYW5nIHRhbSB2b2MgdGhlIGdpb2kgbmF5Lg0KDQpDb25nIHZpZW4gSG9hIEJpbmggY3Vu ZyBsYSBtb3QgZGllbSBuaGFuIGNoYW8gbXVuZyBEYWkgbGUgdm9pIGRpZW4gdGljaCBnYW4gMjBo YSwgDQp0b25nIG11YyBkYXUgdHUgMjgyLDM4IHR5IGRvbmcuIFR1eSBuaGllbiwgbW9pIGtoYW5o IHRoYW5oIGNodWEgZHVvYyBiYW8gbGF1LCBjb25nIA0KdHJpbmggbmF5IGRhIGJpIGh1IGhvbmcg bmdoaWVtIHRyb25nLiANCg0KRHVvbmcgbmh1LCB2aSBxdWEgY29pIHRyb25nIHRpZW4gZG8sIHF1 YSB0YXAgdHJ1bmcgdmFvIHN1IGhvYW5oIHRyYW5nIGN1YSBtYXkgbmdheSBkYWkgDQpsZSBkZSBy b2kgc2F1IGRvIG5ndW9pIHRhIG5oYW5oIGNob25nIGxhbmcgcXVlbiBuaHVuZyBjb25nIHRyaW5o LCBoaWVuIHZhdCBjaGkgbW9pIG1heSBuZ2F5IHRydW9jIGR1b2MgaGV0IGxvaSBjYSB0dW5nLCBu Z29pIGtoZW4uIA0KDQpodHRwOi8vd3d3LnZpZXRpbmZvLmV1L3Rpbi12aWV0LW5hbS9uZXUtY2hh bmctbWF5LWN1LXJ1YS1jaGV0LWFpLWNoaXUtdHJhY2gtbmhpZW0uaHRtbCBMZSBOYSAtIChEYWkg RG9hbiBLZXQpIDEyLTAxLTIwMTEgMDU6NDggDQoNCkhhIE5vaTogTmV1IGNoYW5nIG1heSBDdSBS dWEgY2hldCwgYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KTmh1bmcgbmdheSB0cm9pIHJldCBkYW0g bmF5LCB0aG9uZyB0aW4gdmUgQ3UgUnVhIEhvIEd1b20gY3VuZyBjYW5nIHRybyBuZW4gbm9uZyBo b2kgDQp0cmVuIGNhYyBiYW8sIGNodW5nIHRvIG1vaSBxdWFuIHRhbSBsbyBsYW5nIHRvaSBzaW5o IG1lbmggY3VhIEN1IFJ1YSBsaW5oIHRoaWVuZyByYXQgc2F1IA0Kc2FjLiBUdWFuIFZpZXQgTmFt IGNodXllbiB0YWkgbW90IHNvIHRob25nIHRpbiB4dW5nIHF1YW5oIHZhbiBkZSBuYXkuIFZhIHJh dCBtb25nLCBjbyBxdWFuIGNodWMgbmFuZyBjbyBwaHVvbmcgYW4gdGljaCBjdWMgaG9uIG51YSBj dXUgQ3UgUnVhLCBkb25nIHRob2kgbGVuIHRpZW5nIGNobyBkdSBsdWFuIHhhIGhvaSBoaWV1IHRo ZW0gdmFuIGRlIGRhbmcgbG8gbmdhaSBuYXkNCg0KTm9pIGRhaSwgbmV1IGNoYW5nIG1heSBDdSBS dWEgSG8gR3VvbSBjaGV0LCBhaSBzZSBjaGl1IHRyYWNoIG5oaWVtIGRheT8NCg0KRGVuIG5nYXkg NS0xLTIwMTEsIEhhIE5vaSBkYSBjaGluaCB0aHVjIGNvIGdpYWkgcGhhcCBjdXUgQ3UgUnVhIEhv IEd1b20gKG1vaSBsYSANCmdpYWkgcGhhcCB0cmVuIHZhbiBiYW4pLiBQaG8gQ2h1IHRpY2ggVUJO RCBUUC4gSGEgTm9pLCBiYSBOZ28gVGhpIFRoYW5oIEhhbmcgdnVhIA0Ka3kgdmFuIGJhbiBzbyA1 Mi9VQk5ELVZIS0cgcGhlIGR1eWV0IGRlIHh1YXQgY2FjIGdpYWkgcGhhcCBraWVtIHRyYSB2YSB4 dSBseSBydWEgdGFpIA0KZG8gdGFpIEhvIEd1b20gY3VhIFNvIEtob2EgaG9jIC0gQ29uZyBuZ2hl IEhhIE5vaS4gVGhlbyBkbywgZ2lhaSBwaGFwIHRpbmggdGhlIHRydW9jIA0KbWF0IGxhIGNhbiBw aGFpIGJhdCB2YSB4dSBseSBydWEgdGFpIGRvIHRyb25nIEhvIEd1b20gZGUgZGFtIGJhbyBtb2kg dHJ1b25nIHNvbmcgY2hvIEN1IFJ1YS4NCg0KU28gS2hvYSBob2MgLSBDb25nIG5naGUgSE4gZGUg eHVhdCBwaHVvbmcgcGhhcCBiYXQgcnVhIHRhaSBkbyBiYW5nIGNhYyBiaWVuIHBoYXAgbmh1IA0K c2F1OiBCYXQgcnVhIHRhaSBkbyBiYW5nIGxvbmcgZGF0IGNoaW0gZHVvaSBudW9jIGhvYWMgZHVu ZyBiZSBub2kgY28gbW9pIGRhbiBkdSB2YW8gDQpsdW9pLiBSaWVuZyBkb2kgdm9pIG1vaSBkYW4g ZHUga2hvbmcgZ2F5IGFuaCBodW9uZyBkZW4gbW9pIHRydW9uZyBzaW5oIHRoYWkgaG8uIFRydW9j IA0KdGllbiBjYW4gdGllbiBoYW5oIGJhdCBydWEgdGFpIGRvIHRhaSBtb3QgaG8gdGh1IG5naGll bSBkZSBydXQga2luaCBuZ2hpZW0uDQoNCkRvbmcgdGhvaSwgbW90IGtpY2ggYmFuIHRydXllbiB0 cnV5ZW4gdmUgdGFjIGhhaSBjdWEgcnVhIHRhaSBkbyBkb2kgdm9pIGhlIHNpbmggdGhhaSBjdWEg DQpIbyBHdW9tIGN1bmcgc2UgZHVvYyB4YXkgZHVuZy4gVUJORCB0L3AgY3VuZyBkYSB0aGFuaCBs YXAgbW90IHRvIGNvbmcgdGFjIGxpZW4gDQpuZ2FuaCwgYmFvIGdvbSBkYWkgZGllbiBjdWEgY2Fj IHNvLCBuZ2FuaDogS2hvYSBob2MgdmEgQ29uZyBuZ2hlLCBUYWkgbmd1eWVuIHZhIE1vaSANCnRy dW9uZywgTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBOb25nIHRob24sIFVCTkQgUXVhbiBIb2Fu IEtpZW0sIEJhbiBRdWFuIGx5IA0Ka2h1IHZ1YyBIbyBHdW9tOyBjYWMgZG9uIHZpIG5nb2FpIHRo YW5oIHBobyB0aGFtIGdpYSBiYXQgdmEgeHUgbHkgcnVhIHRhaSBkbyB2b2kgc3UgDQpnaWFtIHNh dCBjdWEgY2FjIGNvIHF1YW4gcXVhbiBseSBuaGEgbnVvYyBjdWEgdC9wLg0KDQpCYSBMZSBUaGFu aCAtIFBobyBUcnVvbmcgcGhvbmcgUGhvbmcgQ29uZyBuZ2hlLCBTbyBLaG9hIGhvYyAtIENvbmcg bmdoZSBITiBjaG8gDQpyYW5nLCB2aWVjIGJhdCB2YSB4dSBseSBydWEgdGFpIGRvIHRhaSBIbyBH dW9tIGxhIHZhbiBkZSBxdWFuIHRyb25nIHZhIHJhdCBuaGF5IGNhbSwgdHV5IA0KbGEgdmllYyBj YW4gdGh1YyBoaWVuIHRyb25nIHRob2kgZ2lhbiBzb20gbmhhdCBuaHVuZyBwaGFpIGNhbiB0cm9u Zy4gVmkgdmF5LCBkdSBkZSB4dWF0IA0KY3VhIFNvIEtob2EgaG9jIC0gQ29uZyBuZ2hlIGR1b2Mg ZHV5ZXQgbmh1bmcgY28gbGUgcGhhaSBzYXUgVGV0IE5ndXllbiBkYW4gbW9pIGNvIA0KdGhlIHRo dWMgaGllbiBkdW9jLg0KDQpUcnVvYyB0aG9uZyB0aW4gVUJORCBUUC4gSGEgTm9pIGRhIHBoZSBk dXlldCBkZSB4dWF0IGN1YSBTbyBLaG9hIGhvYy0gQ29uZyBuZ2hlLCANCm9uZyBOZ3V5ZW4gRGlu aCBIb2UgLSBUcnVvbmcgQmFuIHBoYW4gYmllbiB4YSBob2ksIEhvaSBCYW8gdmUgVGhpZW4gbmhp ZW4gdmEgTW9pIA0KdHJ1b25nIFZpZXQgTmFtIGNobyBiaWV0OiAiSG9hbiBuZ2hlbmggY2FjIGdp YWkgcGhhcCBkaWV0IHJ1YSB0YWkgZG8gY3VhIFNvIEtob2EgaG9jIJYgDQpDb25nIG5naGUgSE4u IFR1eSBuaGllbiwgaGluaCBuaHUgY28gbW90IHZhbiBkZSBtYSBuaHVuZyBuZ3VvaSBjbyB0cmFj aCBuaGllbSBiYW8gDQp2ZSBDdSBSdWEgcXVlbiBtYXQgZG8gbGEgdGluaCBjYXAgYmFjaC4NCg0K Q2FpIGNhbiBsYW0gbmdheSBsdWMgbmF5IGxhIG5lbiBkdWEgQ3UgUnVhIHNhbmcgbyBtb3QgY2hv IGtoYWMsIGNhY2ggbHkgdGFtIHRob2kgdm9pIA0KbW9pIHRydW9uZyBoaWVuIGRhbmcgYmkgZGUg ZG9hIGJvaSBuYW4gcnVhIHRhaSBkbyB2YSBjaGF5IGNodWEga2lwIHRob2kgbmh1bmcgdmV0IA0K dGh1b25nIHRyZW4gbWluaCBDdS4gU2F1IGRvIG1vaSB0aWVuIGhhbmggYmF0IHJ1YSB0YWkgZG8s IHRoYW0gY2hpIGNvbiBjbyB0aGUgbmFvIHZldCwgDQpjYWkgdGFvIHRvYW4gYm8gbW9pIHRydW9u ZyBjdWEgSG8gR3VvbSBtYSBraG9uZyBsbyBhbmggaHVvbmcgZ2kgZGVuIHN1YyBraG9lIGN1YSBD dSBSdWEiLg0KDQpUcmVuIHRoZSBnaW9pIGhpZW4gbmF5IGNoaSBjb24gY28gNCBjYSB0aGUgcnVh IHRodW9jIGxvYWkgcnVhIEhvIEd1b20sIHRyb25nIGRvIGNvIDEgY2EgDQp0aGUgc29uZyBvIGhv IG5heSB2YSAxIGNhIHRoZSBydWEgc29uZyB0YWkgaG8gRG9uZyBNbyAoU29uIFRheSwgSGEgTm9p KS4gMiBjYSB0aGUgY29uIA0KbGFpIGR1b2MgbnVvaSB0YWkgVHJ1bmcgUXVvYy4gQ2h1YSB4ZXQg dmUgY2F1IGNodXllbiBnaW9uZyBub2ksIGNoaSBkdW5nIHJpZW5nIHZlIGtoaWEgDQpjYW5oIGxp Y2ggc3UgdGhpIEN1IFJ1YSBIbyBHdW9tIGRhbmcgZHVvYyBjb2kgbGEgbW90IG5oYW4gdmF0IGN1 YSBsaWNoIHN1IGdhbiB2b2kgc3UgDQp0aWNoIFZ1YSBMZSB0cmEgZ3VvbSBiYXUuDQoNClF1eSBs YSB0aGUsIGRvYyBuaGF0IHZvIG5oaSBsYSB0aGUsIG5odW5nIG5odW5nIHZldCB0aHVvbmcgbGll biB0aWVwIHhheSByYSB0cmVuIG1pbmggQ3UgDQp0cm9uZyB0aG9pIGdpYW4gZ2FuIGRheSBkYSBn aW9uZyBsZW4gaG9pIGNodW9uZyBiYW8gZG9uZyB2ZSBjb25nIHRhYyBxdWFuIGx5IG1vaSB0cnVv bmcgDQpIbyBHdW9tIGRhbmcgYmkgYm8gbmdvLiBOaHVuZyBuZ3VvaSBjbyB0cmFjaCBuaGllbSBi YW8gdmUgQ3UgUnVhIGNhbiBwaGFpIGNvIGJpZW4gDQpwaGFwIGNhcCBiYWNoIHRydW9jIHN1IHRh biBjb25nIG8gYXQgY3VhIHJ1YSB0YWkgZG8uDQoNCk5hbSAyMDA0LCBHUyBIYSBEaW5oIER1YyBk YSB0dW5nIGxlbiB0aWVuZyBjYW5oIGJhbyB2ZSBuYW4gcnVhIHRhaSBkbywgbmh1bmcgb25nIGRh IA0KdGh1YyBzdSB0aGF0IHZvbmcgdmkgbHVjIGRvICJraG9uZyBkdW9jIGFpIHF1YW4gdGFtIi4g RGUgZGVuIGx1YyBuYXkga2hpIG5odW5nIHZldCANCnRodW9uZyBjdWEgQ3Ugc28gc28gcmEgZGF5 LCBjYWMgY28gcXVhbiBjaHVjIG5hbmcgbW9pIGxvIGJhbiBrZSBob2FjaCwgbGVuIGNodW9uZyAN CnRyaW5oIGRlIHh1YXQgY2FjIGdpYWkgcGhhcCBiYW8gdmUgQ3UuIEdpYWkgcGhhcCBkYSBjbywg bmh1bmcgcm8gcmFuZyBjYXAgYmFjaCB0aGkgY2h1YS4gDQoiVGhvaSB0aWV0IG1vaSBuZ2F5IGto YWMgbmdoaWV0IGhvbiwgbmV1IGRlIHF1YSBUZXQgTmd1eWVuIGRhbiBtb2kgbGFtIHZpZWMgbmF5 LCBlIA0KcmFuZyBsdWMgZG8gbW9pIGNodXllbiBkYSB0cm8gbmVuIHF1YSBtdW9uIiAtIG9uZyBI b2UgbG8gbGFuZy4NCg0KVFAuIEhhIE5vaSB2dWEgbW9pIHRvbmcga2V0IGNhYyBob2F0IGRvbmcg a3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25nIC0gSGEgTm9pLiANCkRhaSBMZSBkdW9jIGRhbmgg Z2lhIGxhIHRvIGNodWMgdGhhbmggY29uZy4gTmh1bmcgY28gbGUgdHJvbmcgMTAwMCB2aWVjIGxh bSB0b3QgY3VhIEhhIA0KTm9pIGNobyBreSBuaWVtIERhaSBsZSB0aGkgZHVvbmcgbmh1IHZhbiBj b24gMSB2aWVjIG1hIG5ndW9pIHRhIGRhIHF1ZW4gbWF0LCBkbyBsYSBiYW8gDQp0b24gdmEgZ2lu IGdpdSBtb3QgQ3UgUnVhIEhvIEd1b20sIGR1b2MgY29pIG5odSAiYmF1IHZhdCIsICJjaHVuZyBu aGFuIGxpY2ggc3UiIGN1YSANClRoYW5nIExvbmctIEhhIE5vaS4gUGhhaSBjaGFuZywgY3VvaSBu YW0gbmd1b2kgdGEgcXVhIGJhbiEgVmEgc28gcGhhbiBDdSBSdWEgc2UgcmEgDQpzYW8ga2hpIFRl dCBOZ3V5ZW4gZGFuIHF1YSBkaT8gDQoNCihBbmg6IEN1IFJ1YSBjbyBnaXVvbmcgY2FvIG5vaSBi aSBsbyBsb2V0LCB0aG9pIHJ1YSB0cmVuIHRoYW4gbWluaCkgDQoNCmh0dHA6Ly93d3cudmlldG5h bW5ldC52bi9naWFvZHVjLzIwMTAxMC9kb2Mtc2FpLUJpbmgtTmdvLWRhaS1jYW8tdHJvbmctZGVt LWRhaS1sZS05NDE4MDkvIDA1OjU3LCAxMy8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBEb2Mg c2FpICdCaW5oIE5nbyBkYWkgY2FvJyB0cm9uZyBkZW0gRGFpIGxlIA0KDQpodHRwczovL2dvdm4u d29yZHByZXNzLmNvbS8yMDEwLzEwLzA2L2dvYy1uaGluLWglRTElQkIlOTlpLWNoJUUxJUJCJUE5 bmctbmdhbi1uYW0tZyVFMSVCQSVBN24tOTQtMDAwLXQlRTElQkIlQjctbXVhLXZ1aS1jdW5nLWNo JUUxJUJCJTg5LW0lRTElQkIlOTl0LXZhaS10ciVFMSVCQiU5MW5nLWNhbmgvIEhhIFZhbiBUaGlu aCA2LzEwLzIwMTAgDQoNCkhhIE5vaTogSG9pIGNodW5nIG5nYW4gbmFtIJYgTXVhIHZ1aSBjdW5n IGNoaSBtb3QgdmFpIHRyb25nIGNhbmgNCg0KQWkga2hvIGN1IGtobywgYWkgY2hvaSBjdSBjaG9p ICANCg0KTW90IG5ndW9pIHF1ZW4gcXVhIGRpZW4gdGhvYWkgZ29pIHRvaSBob2kgdG9pIHR1IGx1 YyB0byBtbyBzYW5nIHJhbmcgbHV0IGxvaSBtaWVuIFRydW5nIA0KdGhhbSB0aGUgbmh1IHRoZSwg Y2hldCAxMSBuZ3VvaSAoY29uIHNvIGJhbiBkYXUpIG5odSBraWEsIEhhIE5vaSBkYWkgbGUgdHVu ZyBidW5nIG5naGUgDQpkYXUgdG9uIGRlbiA5NC4wMDAgdHkgZG9uZy4uLjsgdmF5LCB0cm9uZyBD aGluaCBwaHUgZGEgY28gYWkgbGVuIHRpdmkgaGF5IHF1YSBiYW8gY2hpIGhvaSANCnRoYW0gaGF5 IGNoaWEgYnVvbiBtb3QgY2h1dCBnb2kgbGEgdm9pIG1pZW4gVHJ1bmcgY2h1YT8gVG9pIHN1bmcg bmd1b2kuIFRydW9jIHRpZW4gbGEgDQp0dSB0cmFjaCBtaW5oIHZpIGR1b25nIG5odSBtaW5oIGN1 bmcgZGFuZyB2byBjYW0gdHJ1b2Mgbmh1bmcgbm9pIGRhdS4gS2hvbmcgdGhlIG5vaSBsYSANCmRv IHNvbmcgbyBtaWVuIFRydW5nIG5lbiBkYSAicXVlbiIgcm9pISBUaHVjIHJhLCB0cmFpIHF1YSBt YXkgY2h1YyBuYW0gc29uZyB0cm9uZyBkb24gDQpkYXUsIGJ1b24gcGhpZW4gdmEgdGhhdCB2b25n LCBoYXUgbmh1IGFpIGN1bmcgdHJvIG5lbiBjaGFpIGx5IHRydW9jIG5odW5nIHRhaSB1b25nIGN1 bmcNCm5odSBtb2kgc3UgY2h1b25nIHRhaSBnYWkgbWF0IHRyb25nIGN1b2MgZG9pIG5heS4uLg0K DQpEb2MgQkJDIG5nYXkgMi4xMC4yMDEwLCBkdW9jIGJpZXQgdHJvbmcgOCBuYW0gcXVhLCB0b25n IGtpbmggcGhpIGNodWFuIGJpIHZhIHRpZW4gaGFuaCANCmRhaSBsZSB0b24gZGVuIGdhbiAxMDAg bmdhbiB0eSBkb25nIJYgdHVjIGxhIGdhbiA1IHR5IFVTRCCWIG1hIHJ1bmcgbWluaC4NCkNoaSBj YW4gbGllYyBxdWEgbmdhbiBzYWNoIHF1b2MgcGhvbmcgbmFtIDIwMDkgKGNvbmcgYm8gY2hpbmgg dGh1YyBsYW4gZGF1IHRpZW4pIGxhIDI3LDUgDQpuZ2FuIHR5IGRvbmcgdGhpIG1vaSB0aGF5IGhh aSBjaG8gY2FpIGNodXllbiBhbiBjaG9pIG1vdCB2YWkgdHJvbmcgY2FuaCB0aWV1IHRvbiBnYXAg Z2FuIA0KNCBsYW4gY2hpIHBoaSBtb3QgbmFtIGxvIGJhbyB2ZSBhbiBuaW5oIHRvIHF1b2MhIA0K DQpEYW5oIHJhbmcgbmhvIG9uIHRpZW4gdG8sIHR1IGhhbyB0YSBjbyBjYSBuZ2FuIG5hbSwgc2Fu ZyBnYW4gYmFuZyBjYWkgdGhhbmggcGhvIHZpbmggDQpjdXUgUm9tYSBjbyB0dW9pIGhhbmcgbWF5 IG5nYW4gbmFtIJYgdHJ1eWVuIHRodXlldCBub2kgUm9tYSBkbyBSb211bGl1cyBzYW5nIA0KbGFw IG5hbSA3NTMgdHIuIENOLCBvYWkgaG9uIEJhYyBLaW5oIG5odW5nIGhvbiAyMDAgbmFtIJYgdGlu aCB0dSBuYW0gMTI3MiwgDQpraGkgSG90IFRhdCBMaWV0IGNoaW5oIHRodWMgY2hvbiBCYWMgS2lu aCBsYW0ga2luaCBkbyBjdWEgZGUgcXVvYyBOZ3V5ZW4gTW9uZywgDQp2b2kgdGVuIGdvaSBsYSBE YWkgRG87IGNvbiBXYXNoaW5ndG9uICgxNzkwKSwgVG9reW8gKDE4NjgpIHRoaSBjdSBwaGFpIGdv aSBIYSBOb2kgbGEgY3UgdG8hDQoNCkhvYyBzaW5oIGRpIGhvYyBiYW5nIGJlLCBiYW5nIGRheSBj YXA7IHRydW9uZyBob2MgZG90IG5hdCBtYSBjbyBjdSBwaGFpIGRheSwgaG9jIHRybyANCmN1IHBo YWkgaG9jOyBjYSBjYWkgY29uIGR1b25nIDFBIHZvaSBkYW5oIHh1bmcgbGEgUXVvYyBsbyCWIGh1 eWV0IG1hY2ggZ2lhbyB0aG9uZyANCnF1YW4gdHJvbmcgbmhhdCBjdWEgY2EgbnVvYyBtYSBjaGkg ZHUgY2hvIGhhaSB4ZSBvIHRvIHRyYW5oIG5oYXUsIG5ndW9pIGRpIHhlIG1heSwgDQp4ZSBkYXAs IGRpIGJvIGNoaSBjbyBob24gMSBtZXQgZHVvbmcgKCEpLi4uOyBsYSBuaHVuZyBjaHV5ZW4gbW9p IG5naGUgcXVhIGtob25nIHRoZSANCm5hbyBoaWV1IG5vaSB2aSBzYW8gbW90IGRhdCBudW9jIG5n aGVvIGRlbiB0aGUgbWEgbGFpIHRoaWNoIGFuIGNob2ksIG5naGkgaG9jIG5odW5nIA0KMTAgbmdh eSBsaWVuIGJhdCBrZSBkYXQgbnVvYyBjb24gcmF0IG5oaWV1IG5odW5nIGNodXllbiBkb2kgbmdo ZW8sIGtobyBkYXUgdmUgYmVuaCANCnRhdCwgaG9jIGhhbmg/IA0KDQpUdSBjbyBjaGkga2ltIGNo dWEgdGhheSBhaSB0byBjaHVjIG11bmcgdGhvIGNobyBtb3QgZGlhIGRhbmggKGNobyBkdSBsYSB0 aHUgZG8gZGkgDQpudWEpIHRvbiBkZW4gNSUgR0RQIG1vIGhvaSwgbnVvYyBtYXQgY3VhIG5oYW4g ZGFuLiBEbyBsYSBjaHVhIG5vaSBkZW4gY2h1eWVuIA0KdHJvbmcgY2FpIHRyYW0gbmdhbiB0eSBr aWEsIGJhbyBuaGlldSBwaGFuIHRyYW0gcm9pIHZhbyB0dWkgcXVhbiB0aGFtLCBiYW8gbmhpZXUg DQpudWEgY28gaWNoIGxvaSBiZW4gdnVuZywgbGF1IGRhaTsgY29uIGxhaSBsYSBiYW8gbmhpZXUg Y2hvIGR1IG1heSB0cmFuIGN1b2k/DQoNCkNhbmcgbmdoaSBjYW5nIHRoYXkgcmFuZyBjYWkgdGhv aSBoYW0gY2hvaSBjdWEgZGF0IG51b2MgdGEgdGhvaSBuYXkgbm8gYmFvIGxpZXQgdmEgZ2hlIA0K Z29tIGhvbiBtb2kgdGhvaSB0cnVvYyBjdWEgbW9pIGRhdCBudW9jIHRyZW4gdHJhaSBkYXQgbmF5 IGNvbmcgbGFpISBDdSBiaW5oIHRhbSBuZ2hpIA0KdGhhdCB0aW5oIHRhbyBtYSB4ZW06IFZpbmFz aGluIGxhbSB0aGF0IHRob2F0IGhvbiA0JSBHRFAsIGRhaSBsZSBUaGFuZyBMb25nIJYgSGEgDQpO b2kgNSUgR0RQLCBsYW5nIHBoaSBjaGkgdGlldSBjb25nLCB0aGFtIG5odW5nIHRyYW4gbGFuIGJh byBuaGlldSBwaGFuIHRyYW0ga2hvbmcgDQp0aGUgdGluaCBub2ksIG5vIGNvbmcgZGFuZyBjbyBr aW0gZ2l1IG11YyBkdW9pIDYwJSB2YW8gbmFtIDIwMTEuLi4sIHRoaSBzZSB0aGF5IA0KbmdheSBy YW5nIGtob25nIGxhbSBwaGF0IHBoaSBtYSwgZ2lhIHZhbmcga2hvbmcgdGFuZyBzaWV1IHRvYyBt b2kgdGh1YyBsYSBjaHV5ZW4gbGEuDQoNClRyYW0gY2FpIGtobyBsYWkgdGllcCB0dWMgZG8gbGVu IGRhdSBuZ3VvaSBuZ2hlbywgdmkgdmF0IGdpYSBsZW8gdGhhbmcgdGhpIG5odW5nIGFpIHNvbmcg DQpiYW5nIGx1b25nLCBzb25nIGJhbmcgY29uZyByYXUsIGNhaSBjdSB0dSB0cm9uZyBuaGF0IGRp bmggc2UgcGhhaSBsZW4gYm8geHVvbmcgcnVvbmcgdmkgDQp0aHUga2hvbmcgdGhlIGR1IGNoaS4N Cg0KVGFpIHNhbyBraG9uZyBib3QgZGkgbW90IGNodXQgdHUgZGFpIGxlLCBjaGFuZyBoYW4gMTAl IHRob2kgY3VuZyBkYSBjbyAxMCBuZ2FuIHR5IGRvbmcgZGUgbW8gcm9uZyBkdW9uZyBzYSwgZGUg bGFtIGNhdSB0aGF5IGRheSBjYXAsIHRoYXkgYmUgbnVhLCB0aGF5IGNhYyBtYWkgbG9wIGhvYyBk b3QgbmF0Li4uPw0KDQpOaHVuZyBjYXUgaG9pIHRyZW4gc2Uga2hvbmcgdGhlIGNvIGNhdSB0cmEg bG9pLCB2aSBpbSBsYW5nIGN1bmcgZGEgYmkgInZhbmciIGhvYSB0dSANCmxhdSByb2khIENvIGRp ZXUgc3UgaW0gbGFuZyB2YW5nIG5nb2MgZG9pIGtoaSBsYSBjYW4gdGhpZXQgdHJvbmcgcXVhbiBo ZSB4YSBob2kgZ2l1YSANCmNhYyBjYSBuaGFuLCB0aGkgbmF5IGRhIGR1b2MgdmFuIGR1bmcgdmFv IGNobyBjb2kgdGh1b25nIGR1IGx1YW4sIGNvaSB0aHVvbmcgbmd1b2kgDQpkYW4gKGtoaWV1IGtp ZW4gdGFuZyAxNyUgc28gdm9pIGN1bmcga3kgbmFtIG5nb2FpKSwgc29uZyBjaGV0IG1hYyBiYXks IHRpZW4gYWkgY3UgbGF5Lg0KDQpNaWVuIFRydW5nIGN1IHZpZWMgIm9hbiBtaW5oIHRyb25nIGx1 IiwgY3UgdmllYyBpbSBsYW5nIG1hIGRvaSBraG8gc3VvdCBkb2ksIGJvaSBkYSANCm5naGVvIGxh aSBjb24gZ2FwIGVvIHRoaSBraWVtIGRhdSByYSB0aWVuIGRlIGFuIGNob2ksIG5oYXkgbXVhPyBU b2kgbmdvaSB2aWV0IHZhIA0KY28gY2hvIHhlbSBkZW4gYmFvIGdpbyB0aGkgY28gbW90IHF1YW4g Y2h1YyBuYW8gZG8gYmF5IHRvLCBjaGlhIHNlIG5vaSBraG8gY3VhIA0KbWllbiBUcnVuZy4gSHkg dm9uZyBsYSBzZSBjbyBzdSBhbiB1aSB2YSB0cm8gZ2l1cCBoaWV1IHF1YSwgdGhhdCBsb25nLi4u DQpILlYuVA0KSHVlLCA1LjEwLjIwMTANCihMaW5rIGdvYzogaHR0cDovL2JveGl0dm4uYmxvZ3Nw b3QuY29tLzIwMTAvMTAvYWkta2hvLWN1LWtoby1haS1jaG9pLWN1LWNob2kuaHRtbCkgDQoNClkg a2llbiBiYW4gZG9jOg0KDQpQaHVvbmcgUHJvOiANCkNodW5nIHRhIHR1IGhhbyBjbyB0aGFuaCBw aG8gY28ga2luaCwgMTAwMCBuYW0gdHVvaSwgbmh1bmcgZHVvbmcgbmh1IHRodWMgdGUgZGFuZyAN CmxhbSBjaG8gZGFpIGxlIGt5IG5pZW0gMTAwMCBuYW0gdHVvaSBuYXkgY28gZGF5IG5odW5nIGRp ZXUgcGhhaSBzdXkgbmdoaS4gTmd1b2kgbmd1b2kgYW4gDQp0aGVvLCBuaGEgbmhhIGFuIHRoZW8g MTAwMCBuYW0gVEwuIEhhbmcgbG9hdCBjb25nIHRyaW5oLCBoYW5nIGxvYXQgZHUgYW4gbW9pIG5v aSBsZW4sIGFuIA0KdGhlbywgY2hheSBkdWEgZGUga3kgbmllbSAxMDAwIG5hbSBUTCwgaXQgY29u ZyB0cmluaCB0aHVjIHN1IGh1dSBpY2gsIG5oaWV1IGNhaSB2byBibywgIA0KY3VjIGt5IGxhbmcg cGhpLiBUYXQgY2EgdGFwIHRydW5nIHZhbyAiY29uIHNvIDEwMDAiOiAxMDAwIGNvbiByb25nLCAx MDAwIGhpZW4gdmF0Li4uIA0KDQpUYWkgc2FvIGtob25nIGxhbSBuaHVuZyB2aWVjIGNvIGljaCBo b246IHhheSAxMDAwIG5nb2kgdHJ1b25nIG1vaSBjaG8gdHJlIGVtIG5naGVvLCANCjEwMDAgYm8g bWF5IHRpbmggY2hvIHRyZSBlbSB2dW5nIHNhdSwgMTAwMCBiZW5oIHZpZW4sIDEwMDAgeHVhdCBo b2MgYm9uZyBjaG8gdHJlIGVtIA0KbmdoZW8sIHBoYW4gZGF1IGR1YSB0aGVtIDEwMDBUVyBkaWVu IG51YSB2YW8gc3UgZHVuZy4uLiBzYW8ga2hvbmcgbGFtIG5odW5nIHZpZWMgY28gDQppY2ggaG9u IG5odSB2YXkuIEtob25nIHBoYWkgbGEgZG8gbmd1b2kgdGEga2hvbmcgYmlldDsgbmd1b2kgdGEg YmlldCB0aHVhOyBuaHVuZyBuZXUgDQpraG9uZyBsYW0gdGhlIG5heSB0aGkgbGFtIGdpIGNvIHRp ZW4sIGxhbSBnaSBjbyBjYWkgZGUgY2F0IHhlbiwgbGFtIGdpIGNvIHRpZW5nOyBWTiB0aGljaCAN CmNob2kgdHJvaSwga2hvbmcgdGhpY2ggc3UgdGhhbSBsYW5nLiANCg0KVHJvbmcga2hpIHhhIGhv aSBjb24gZGF5IGtobyBraGFuLCB0cmUgZW0gcGhhaSBkaSBob2MgdHJ1b25nIHRhbSBibywgc2Fj aCB2byB0aGlldSwgOTAlIA0KdHJlIGVtIHZ1bmcgbnVpIGNvbiBjaHVhIGJpZXQgbWF5IHZpIHRp bmgsIGRlbiBkaWVuIGNvbiBjaGEgZHUgZHVuZywgbnVvYyBjaGEgZHUgdW9uZywgDQpiZW5oIHZp ZW4gY2hlbiBjaHVjIGJlbmggbmhhbiwgbWF5IG5ndW9pIG5hbSBjaHVuZyBtb3QgZ2l1b25nLCBk dW9uZyB4YSBnaWFvIHRob25nIA0KY29uIG5oaWV1IGtobyBraGFuLCBkYXQgbnVvYyB4ZXAgZ2Fu IGN1b2kgYmFuZyB4ZXAgaGFuZyB2ZSBkbyBnaWF1IGNvLCB2YXkgbWEgY3UgbGFuZyANCnBoaSB2 YW8gbmh1bmcgdmllYyB0aGlldSB0aGlldCB0aHVjLiANCg0KVGF0IGNhIGNodW5nIHRhIGN1bmcg ZG9uIHhlbSBoYXUgMTAwMCBuYW0gVGhhbmcgTG9uZyBzZSBsYSBnaTsgbmh1bmcgY29uZyB0cmlu aCBzZSByYSANCnNhbyBzYXUgRGFpIGxlLiBUYW0gbmF5IHNhbmcgbmFtIHNlIHJvLiANCg0KaHR0 cDovL2RhbmxhbWJhby53b3JkcHJlc3MuY29tLzIwMTAvMTAvMDYvaGEtbiVFMSVCQiU5OWktdCVD NiVCMG5nLWIlRTElQkIlQUJuZy1sJUUxJUJCJTg1LWglRTElQkIlOTlpLW1pJUUxJUJCJTgxbi10 cnVuZy10YW5nLXRoJUM2JUIwJUM2JUExbmcvIGRhbmxhbWJhb2Jsb2cgUG9zdGVkIDA2LzEwLzIw MTAgDQoNCkhhIE5vaSB0dW5nIGJ1bmcgbGUgaG9pLCBtaWVuIFRydW5nIHRhbmcgdGh1b25nDQoN CkxlIGhvaSBOZ2FuIG5hbSBUaGFuZyBMb25nIHZhbiBkaWVuIHJhIHRyb25nIGtoaSBtaWVuIFRy dW5nIG11YSB0cmFuZyB0cm9pIHZhIGl0IG5oYXQgDQozMCBuZ3VvaSBkYSBjaGV0LCBoYW5nIG5n YW4gbmd1b2kga2hvbmcgbmhhIGN1YSBkYW5nIGNobyBjdXUgZ2l1cCwgbmhhIG51b2MgZGEgcGhh biB1bmcgcmEgc2FvIHRydW9jIHZhbiBkZSBuYXk/IA0KDQooQW5oOiBNdWEgbHUgbmdhcCBuaGEg byBRdWFuZyBCaW5oIGhvbSAwNCB0aGFuZyAxMCBuYW0gMjAxMCwgQUZQIHBob3RvKSANCg0KVGll dSB0aWVuIHR5IHZhbyBsZSBob2kNCg0KRGEgbWF5IG5nYXkgdHJvaSBxdWEsIHR1IGtoaSBsZSBo b2kgTmdhbiBuYW0gVGhhbmcgTG9uZyBraGFpIG1hYywgbmd1b2kgZGFuIEhhIE5vaSANCnZhbiBz b25nIHRyb25nIGtob25nIGtoaSBob2kgaGUgY3VhIG5odW5nIG5nYXkgaG9pIG5nYW4gbmFtIGNv IG1vdC4gUGhhbyBob2EsIGRpZXUgDQpoYW5oLCB2YW4gbmdoZSBob2FuaCB0cmFuZyBjdW5nIHZv IHNvIHRodSB2dWkga2hhYyBkYW5nIGtlbyBIYSBOb2kgdmFvIGtob25nIGtoaSANCmhvaSBoZSBj aHVuZyBuaHUga2hvbmcgdGhlIG5hbyBkdXQuIE5ndW9pIGRhbiBsYSB0aGUsIHBoaWEgY2hpbmgg cXV5ZW4gY3VuZyBraG9uZyANCmtoYWMsIHNhdSBuaGlldSBuZ2F5IHRoYW5nIGNodWFuIGJpIGNo byBzdSBraWVuIGxvbiBsYW8gbmF5IGhhdSBuaHUgbmhhbiB2aWVuIHRyb25nIA0KY2FjIGNvbmcg c28gdGFpIEhhIE5vaSBkYW5nIG5naGkgZHVvbmcgc3VjIGNobyB4ZW0gbmdheSBiZSBtYWMsIGR1 b2MgYmlldCBzZSBob2FuaCANCnRyYW5nIHZhIHRvbiBrZW0gbmhhdCB0dSB0cnVvYyB0b2kgbmF5 Lg0KDQpUb24ga2VtIGJhbyBuaGlldSBjdW5nIGtob25nIHRoYW5oIHZhbiBkZSB2aSBuaGlldSBk dSBhbiBuYW0gdHJvbmcga2UgaG9hY2ggeGEgaG9pIA0KaG9hLiBEb2FuaCBuZ2hpZXAgZG9uZyBn b3AgdmFvIHJhdCBuaGlldSBjb25nIHRyaW5oIGtlIGNhIGNvbmcgdHJpbmggdmFuIGhvYSBuaHUg DQpjdW9uIHBoaW0gIkx5IENvbmcgVWFuLCBkdW9uZyB0b2kgdGhhbmggVGhhbmcgTG9uZyIgbmh1 IG1vaSBuZ3VvaSBkYSBiaWV0LiBSaWVuZyANCm5oYSBudW9jLCBzbyB0aWVuIGJvIHJhIGNoaW5o IHRodWMgY2h1YSBkdW9jIGNvbmcgYm8gbmh1bmcgdGhlbyBuaGlldSBjaHV5ZW4gZ2lhIA0KZGFu aCBnaWEgdGhpIGNvbiBzbyBraG9uZyBkdW9pIDQgdHkgZG8gbGEuIEJvIHJhIDQgdHkgZG8gbGEg ZGUgbGFtIGt5IG5pZW0gbW90IGRpcCANCm5nYW4gbmFtIG1vaSBjbyBtb3QgbGFuIGtob25nIHBo YWkgbGEgY2h1eWVuIGxvbiBkb2kgdm9pIGNhYyB2aWVuIGNodWMgY2FvIGNhcCANCmNoaW5oIHBo dSwgdGhlIG5odW5nIGRhdSBkbyB2YW4gY28gdGllbmcgdGhvIGRhaSBraGkgZG9pIHNvbmcgbmd1 b2kgZGFuIG5nYXkgdGFpIA0KdGh1IGRvIHZhbiBnaWF0IGdhdSB2YSB2YWksIG1vaSBidW9pIGNo byBjaGkgZHVvYyBwaGVwIG11YSBibyByYXUsIGNvbiB0ZXAga2hvbmcgDQpxdWEgMjAgbmdhbiBk b25nIHRoaSBuaWVtIHZ1aSBOZ2FuIG5hbSBUaGFuZyBMb25nIHhlbSByYSBraG8gbG9uZyB0cm9u IHZlbi4NCg0KTWFjIGR1IGR1IGx1YW4gdHJ1b2Mga2hpIGRhaSBsZSBraGFpIG1hYyBkYSBjbyBs YW0gZGlldSBjaGUgdHJhY2gsIHR1IGNodXllbiBsYW0gDQpzYWkgbmdheSBkb2kgZG8gZGVuIGhh aSB0aGFuZywgbGFpIHRydW5nIHZvaSBsZSBRdW9jIGtoYW5oIGN1YSBUcnVuZyBRdW9jIGNobyBk ZW4gDQpuaHVuZyBjb25nIHRyaW5oIGR1b2MgeGVtIGxhIGRhdSB2b2kgZHVvaSBjaHVvdC4uLi50 b2kgY2h1eWVuIHhheSBkdW5nIGNvbmcgY2hhbyANCk5nYW4gbmFtIFRoYW5nIExvbmcsIG5odW5n IGN1b2kgY3VuZyB0aGkgdGF0IGNhIGRldSBkdW9jIHRob25nIHF1YS4gRGFpIGxlIGR1b2Mga2hh aSBtYWMgZHVuZyB0aGVvIGR1IGRpbmguIA0KDQpUdXkgbmhpZW4sIHNhaSBsYW0gbG9uIG5oYXQg Y3VhIGJhbiB0byBjaHVjIE5nYW4gbmFtIFRoYW5nIExvbmcga2hvbmcgdGhlIHN1YSANCmNodWEg ZHVvYyBsYSBuaGEgbnVvYyBkYSB0byBjaHVjIGRhaSBsZSB0cm9uZyBtdWEgYmFvIGx1IG1hIGto b25nIGNvIGJhdCBjdSBrZSANCmhvYWNoIG5hbyBjaGUgZG8ga2hpIGNodW9uZyB0cmluaCBkYWkg bGUgeGF5IHJhIHRydW5nIHZvaSBtdWEgbHUgcGhhIGhvYWkuIFRyb25nIA0Ka2hpIHZhbiBkZSBt dWEgZ2lvIHRhaSBIYSBOb2kgdHJvbmcgbmdheSBkYWkgbGUgZHVvYyBuaGEgbnVvYyBxdWFuIHRh bSBoZXQgbXVjLiANCkNvIGNvIHF1YW4gZGEgZGUgbmdoaSB0aGFuZyB0aHVuZyBuZXUgY2FuIHNl IGJvIHJhIDEgdHkgZG8gbGEgZGUgYmFuIG1heSBjaG9uZyANCm11YSB0aGkgY3VuZyBuZW4gbGFt LiBDaHVuZyBxdXkgZG8gbm9pIHNvIGhhaSB0aGF0IGJhaSB2aSBtdWEgZ2lvIGRhIGxhbSBjaG8g Y2EgDQpndW9uZyBtYXkgbmhhIG51b2MgdHJvIG5lbiBib2kgcm9pLCBraG9uZyBhaSBjbyB0aGUg ZG9hbiBjaGFjIEhhIE5vaSBjbyBtdWEgaGF5IA0Ka2hvbmcgdHUgbmdheSAxIGRlbiBuZ2F5IDEw IHRoYW5nIDEwLCB0aG9pIGdpYW4gMTAgbmdheSB0byBjaHVjIGRhaSBsZS4NCg0KQ28gbW90IGRp ZXUgVHJ1bmcgdGFtIEtoaSB0dW9uZyBUaHV5IHZhbiBuaGEgbnVvYyBiaWV0IGNoYWMsIGxhIHR1 IHRoYW5nIDUgdG9pIA0KdGhhbmcgMTIgaGFuZyBuYW0sIFZpZXQgTmFtIGNodWEgY28gbmFtIG5h byBraG9uZyBjbyBiYW8gbHUuIEJhbyBsdSB0YXAgdHJ1bmcgDQpuaGlldSB0YWkgbWllbiBUcnVu ZyBuZW4gbWllbiBCYWMgY2hpIGxvIG11YSBnaW8gYW5oIGh1b25nLiBDbyBsZSBkbyB0YW0gbHkg Y29pIA0KcXVhIHRyb25nIHRodSBkbyBkYSBkYW4gdG9pIHN1IHZpZWMgZG8ga2hvYyBkbyBjdW9p IGtoaSBtYXkgbmdheSB2dWEgcXVhIG11YSBsdSANCmRhIHRhbiBwaGEgbmhpZXUgdGluaCBtaWVu IFRydW5nIHRyb25nIGtoaSBIYSBOb2kgdmFuIHZvIHR1IHZ1aSBtdW5nIGFuIHRoZW8gZGFpIGxl Lg0KDQpNdWEgbHUgdGFuIHBoYSBtaWVuIFRydW5nICAgDQoNCihBbmg6IE1vdCBuaG9tIGN1dSBo byB0cmVuIHRhdSBkYW5nIHRpZXAgY2FuIG1vdCBjYW4gbmhhIGJpIG5nYXAgbyB0aW5oIFF1YW5n IEJpbmggDQp2YW8gbmdheSAwNSBUaGFuZyAxMCBuYW0gMjAxMC4gQUZQIHBob3RvKQ0KDQpUb25n IGhvcCBjYWMgYmFvIGR1YSB0aW4gdmUgbXVhIGx1IHRpbmggZGVuIG5nYXkgNSB0aGFuZyAxMCBj aG8gYmlldCBjbyBpdCBuaGF0IGxhIA0KMzAgbmd1b2kgY2hldCB2YSBoYW5nIHRyYW0gbmdvaSBs YW5nIGRhbmcgYmkgZGUgZG9hIG5naGllbSB0cm9uZyB2aSBtdWEgbHUgdGllcCB0dWMgdGFuIHBo YS4gDQoNClRoZW8gYmFvIFNHVFQgdGhpIG5ndW9pIGRhbiBzb25nIHRyb25nIGtodSB2dWMgdGh1 eSBkaWVuIEhvIEhvIGRhIHNvbmcgdHJvbmcgbG8gc28gDQp2aSBtdWMgbnVvYyBkYW5nIGNhbyBj byB0aGUgdm8gZGFwIGJhdCBjdSBsdWMgbmFvLiBHYW4gNDAwICBobyBkYW4gdm9pIGhvbiAyLjAw MCBuaGFuIA0Ka2hhdSB0YWkgeGEgSHVvbmcgSG9hLCB0aWVwIGdpYXAgdm9pIGh1eWVuIEh1b25n IEtoZSwgSGEgVGluaCwgZGEgcGhhaSBzbyB0YW4ga2hhbiANCmNhcC4gVGFpIFF1YW5nIEJpbmgg ZGEgY28gMTEgbmd1b2kgY2hldCB2aSBtdWEgbHUuICANCg0KVGFpIE5naGUgQW4sIG11YSBsb24g eHVhdCBoaWVuIHR1IG5nYXkgMjkgdGhhbmcgOSBkZW4gbmF5IHZhbiBjaHVhIGNoYW0gZHV0LiBU YWkgDQpodXllbiBZZW4gVGhhbmgsIGNvIDMgbmd1b2kgYmkgY2hldCBkbyBzZXQgZGFuaCB2YSBs dSBjdW9uLiBEYSBjbyBoYWkgaG9jIHNpbmggdGFpIGh1eWVuIA0KRG8gTHVvbmcgdmEgRGllbiBD aGF1IGJpIG51b2MgY3VvbiB0cm9pIHRyZW4gZHVvbmcgZGVuIHRydW9uZyBoaWVuIGNodWEgdGlt IHRoYXkgeGFjLiANCkhpZW4gbXVjIG51b2Mgc29uZyBMYW0gZGFuZyBsZW4gcmF0IG5oYW5oIGRv IG51b2MgdHUgdGh1b25nIG5ndW9uIGRvIHZlLiBNb3Qgc28geGEgDQpuYW0gbyBoYSBsdXUgc29u ZyBMYW0gY3VuZyBkYW5nIGRvaSBtYXQgdm9pIG5ndXkgY28gbnVvYyBsdSB0YW4gY29uZy4NCg0K Tmd1b2kgZGEgY2hldCwgbXVhIG1hbmcgZGEgYmkgdGFuIHBoYSwgbmhhIGN1YSBkYSBiaSBudW9j IGN1b24gdHJvaSB2YSBoYW5nIG5nYW4gbmd1b2kgDQpkYW4gZGFuZyBsYW0gdGhhbiBkdW9pIGNv biBsYW5oIGxlbyBjdWEgbXVhIGdpbyBtYSBraG9uZyBub2kgdHJ1IHRoYW4uIERvaSBraGF0IGRh bmcgDQpob2FuaCBoYW5oIGNhIG1vdCBkYXkgbWllbiB0cnVuZyB0dSBIYSBUaW5oLCBRdWFuZyBC aW5oLCBRdWFuZyBUcmksIE5naGUgQW4sIFRodWEgDQpUaGllbiBIdWUuLi4NCg0KRGFpIGxlIE5n YW4gbmFtIFRoYW5nIExvbmcgcm8gcmFuZyBsYSBraG9uZyB0aGUgZHVuZyBsYWkgdmkgbm9pIGRh dSBjdWEgbWllbiBUcnVuZywgDQpuaHVuZyBuYW4gbmhhbiBiYW8gbHV0IGNvIHF1eWVuIHlldSBj YXUgc3UgcXVhbiB0YW0gY3VhIG5oYSBudW9jIHZhIHlldSBjYXUgbmF5IGhldCANCnN1YyBjaGlu aCBkYW5nLiBUcm9uZyBraGkgVGh1IHR1b25nIGNvbmcgZHUgaG9pIG5naGkgQVNFTSwgUGhvIFRo dSB0dW9uZyB0aHVvbmcgDQp0cnVjIE5ndXllbiBTaW5oIEh1bmcgbGEgbmd1b2kgY2hpdSB0cmFj aCBuaGllbSBjaGluaCBjaHUgdHJpIGRhaSBsZSwgbHkgcmEgZGEgbGVuIHRpZW5nIHR1IA0Ka2hp IGNvbiBsdSB4dWF0IGhpZW4gdmFvIG5nYXkgZGF1IHRpZW4uIA0KDQooQW5oOiBCaWV1IGRpZW4g Y2FjIG5oYWMgY3UgdHJ1eWVuIHRob25nIHRyb25nIGJ1b2kgbGUga2hhaSBtYWMgIjEwMDAgbmFt IFRoYW5nIA0KTG9uZyIgaG9tIDAxIHRoYW5nIDEwIG5hbSAyMDEwIHRhaSBIYSBOb2kuIEFGUCBw aG90bykNCg0KVHV5IG5oaWVuLCB0cmVuIHBodW9uZyB0aWVuIHRydXllbiB0aG9uZyBjaGluaCB0 aHVjIGNodWEgdGhheSBtb3QgdmllbiBjaHVjIG5oYSBudW9jIA0KbmFvIHBoYXQgbmdvbiB2ZSBu aWVtIGRhdSBjdWEgbHV0IGxvaSwgdGhheSB2YW8gZG8gbmd1b2kgZGFuIHRyb25nIHZ1bmcgbHUg Y2hpIG5naGUgDQp0cnV5ZW4gdGhvbmcgbmhhIG51b2MgdGhheSBuaGF1IGR1YSB0aW4gdmUgbGUg aG9pIE5nYW4gbmFtIFRoYW5nIExvbmcuIENhbmcgbmdoZSANCnh1bmcgdHVuZyBuaHVuZyBoYW8g bmhvYW5nIGJlIG5nb2FpIHZldCB0aHVvbmcgY3VhIG5hbiBuaGFuIGx1IGx1dCBjaHVuZyBuaHUg cmF0IGJ1b3QgDQp0aGVtIG5oaWV1IGxhbiB2YSBtdWEgbHUga2hvbmcgbGFuaCBiYW5nIG5vaSBs YW5oIGx1bmcgdm8gY2FtIHR1IG5odW5nIGNvIHF1YW4gdHJhY2ggDQpuaGllbS4gDQoNCk5ndW9p IGRhbiBtaWVuIE5hbSBuaGluIHZlIHBodW9uZyBCYWMga2hvbmcga2hvaSBuZ2FtIG5ndWkga2hp IG5obyBsYWkgY2F1ICJNb3QgDQpjb24gbmd1YSBkYXUgY2EgdGF1IGtob25nIGFuIGNvIi4gTWll biBUcnVuZyB2b24gbmdoZW8gdHUgYmFvIGRvaSBuYXkgdmEgdmFuIGtpZW4gdHJpIA0KY2hvIGRv aSBiYW8gbHUgIGhhbmcgbmFtLiANCg0KQ28gbGUgTmdhbiBuYW0gVGhhbmcgTG9uZyBzZSB0cm9u IHZlbiBob24ga2hpIG5oYSBudW9jIHRob25nIGJhbyByb25nIHJhaSB0cmVuIGhlIA0KdGhvbmcg dHJ1eWVuIHRob25nIGRhaSBjaHVuZywgY2hpIG1vdCB2YWkgcGh1dCB0aG9pLCBjaGlhIHNlIG5v aSBkYXUgdGh1b25nIGN1YSBtaWVuIA0KVHJ1bmcgcnVvdCB0aGl0LCBjb24gaG9uIGN1IHRpZXAg dHVjIGltIGFuZyBkZSBjdW9jIHZ1aSBuZ2FuIG5hbSBraG9uZyBiaSBhbmggaHVvbmcuIA0KDQpo dHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9Cb25nRGEvc2d0dC52bi9YaW4tbW90LXBodXQtY2hv LWRvbmctYmFvLW1pZW4tVHJ1bmctcnVvdC10aGl0LzQ5OTAyODAuZXBpIDEwLjEwLjIwMTAsIDEz OjI1IChHTVQrNykgDQoNCkhhIE5vaTogWGluIG1vdCBwaHV0IGNobyBkb25nIGJhbyBtaWVuIFRy dW5nIHJ1b3QgdGhpdCENCg0KU0dUVC5WTiAtIENoYW5nIHRoZSB2aSBtaWVuIFRydW5nIHRhbmcg dGh1b25nIGRvIGx1IGx1dCBtYSBkdW5nIHRhdCBjYSBjYWMgaG9hdCBkb25nIA0KdnVpIGNob2kg Z2lhaSB0cmksIHZhbiBob2EgdGhlIHRoYW8uIE5odW5nLCBtb3QgbW90IHBodXQgbWFjIG5pZW0g ZGUgYmlldSBsbyBzdSBzZSBjaGlhLCANCmJ1IGRhcCBraGkgZG9uZyBiYW8gZ2FwIGhvYW4gbmFu IGxhIHZpZWMgbmVuIGxhbS4NCg0KKEFuaDogVG9uZyB0aHUga3kgTGllbiBoaWVwIFF1b2MgQmFu IEtpIE1vb24gdHJvbmcgbGUgdHVvbmcgbmllbSBjYWMgbmhhbiB2aWVuIHRvIGNodWMgbmF5IA0K YmkgdGhpZXQgbWFuZyB0cm9uZyB0cmFuIGRvbmcgZGF0IG8gSGFpdGkgQW5oOiBHZXR0eSBJbWFn ZXMpIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDEwL1N1LXRoYXQt aGllbi10dW9uZy1ydWEtSG8tR3VvbS1ub2ktZHVuZy1uZ2F5LWRhaS1sZS05Mzk3NTIvICBNaW5o IEhvIDEzOjMzLCAwNi8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBTdSB0aGF0IHZpZWMgcnVh IEhvIEd1b20gbm9pIC0gY2hhdCBsdW9uZyBudW9jIGhvIGRhbmcgeHVvbmcgY2FwDQoNCk1vaSBk YXksIGR1bmcgaG9tIGtoYWkgbWFjIERhaSBsZSAoMS8xMCksIG5ndW9pIGRhbiBkbyB4byBkaSB4 ZW0gY3UgUnVhIG5vaSBvIEhvIA0KR3VvbS4gVGluIGRvbiBjdSBSdWEgbGluaCB0aGllbmcgbm9p IGR1bmcgbmdheSBEYWkgbGUgZGEgbGFuIHJvbmcgbmhhbmggY2hvbmcuICANCg0KTmh1bmcgbmd1 b2kgZGFuIG5oYW4geGV0IHJhbmcgbmh1bmcgbGFuIGN1IFJ1YSBub2kgbGVuIHRodW9uZyBnYW4g dm9pIG1vdCBzdSBraWVuIA0KdmFuIGhvYSwgbGljaCBzdSBuYW8gZG8uIFR1eSBuaGllbiwgdHJh IGxvaSB0cmVuIGJhbyBkaWVuIHR1IEJlZS5uZXQudm4sIE9uZyBIb2FuZyBWYW4gDQpIYSwgY2Fu IGJvIENodW9uZyB0cmluaCBCYW8gdG9uIFJ1YSBDaGF1IEEgY2hvIHJhbmcsIGNodWEgY28gYmFu ZyBjaHVuZyBraG9hIGhvYyANCm5hbyB2ZSB2aWVjIHJ1YSBIbyBHdW9tIG5vaSBsaWVuIHF1YW4g ZGVuIHlldSB0byB0YW0gbGluaC4gVmllYyBydWEgSG8gR3VvbSBub2kgdmFvIA0Kbmh1bmcgbmdh eSBsZSBsb24gY2hpIGxhIHN1IHRpbmggY28sIG5nYXUgbmhpZW4uDQoNClJ1YSBobyBoYXAgYmFu ZyBwaG9pLCBjbyB0cmFvIGRvaSBraG9uZyBraGkgcXVhIGRhIG5odW5nIGhvIGhhcCBiYW5nIHBo b2kgbGEgY2hpbmguIA0KUnVhIEhvIEd1b20gbGEgbW90IGxvYWkgYmEgYmEgbWFpIG1lbSwgdmkg dGhlIGN1bmcga2hvbmcgdGhlIG5hbSBuZ29haSBxdXkgbHVhdCBzaW5oIA0KaG9jIG5heS4gDQoN ClRoZW8gbmdoaWVuIGN1dSBjdWEgY2FjIGNhbiBibyBDaHVvbmcgdHJpbmggYmFvIHRvbiBydWEg Q2hhdSBBLCBSdWEgSG8gR3VvbSBub2kgDQpoYW4gbGVuIG1hdCBudW9jIHZvaSB0aG9pIGdpYW4g a2VvIGRhaSAoMi0zIGdpbyBsaWVuIHR1YykgdGh1b25nIHZhbyBuaHVuZyB0aG9pIGRpZW0gbmh1 IA0KY2h1YW4gYmkgY28gYmFvIGhvYWMgbXVhIHRvLCBzYXUgbW90IGRvdCBsYW5oIGtlbyBkYWkg bWEgdHJvaSBodW5nIG5hbmcuLi4gTXVjIGRpY2ggbGEgDQpkZSBydWEgcGhvaSBuYW5nLCB0YW5n IG5oaWV0IGRvIGNobyBjbyB0aGUuDQoNClRydW9jIGRvLCBuYW0gMjAwNyBjdSBub2kgNzEgbGFu LCB0cm9uZyBkbyB0aGFuZyBkYXUgbmFtIG1vaSBjdSBub2kgZGVuIDEzIGxhbi4gVmEgDQpuaHUg dGhlLCBjdSBSdWEgbGllbiB0aWVwIG5vaSBsZW4gdHJvbmcgbmh1bmcgbmdheSBxdWEgbGEgZGll dSBoZXQgc3VjIGJpbmggdGh1b25nLiANCg0KVmEgc2F1IG5odW5nIGxhbiAiY3UiIG5vaSBnYW4g ZGF5LCBuaGlldSBuZ3VvaSBuaGFuIHRoYXkgY28gcXVhIG5oaWV1IHZhbmcgdGFvIG5vaSBkYXkg DQpkYWMgdmEgZGVuIHF1YW5oIGJhbSB4dW5nIHF1YW5oICJjdSIuIERpZXUgbmF5IGNobyB0aGF5 LCBjaGF0IGx1b25nIG1vaSB0cnVvbmcgc29uZyANCmN1YSAiY3UgUnVhIiBkYW5nIGNvIHZhbiBk ZS4gUXVhbiBzYXQgYmFuZyBtYXQgdGh1b25nIGN1bmcgZGUgZGFuZyBuaGFuIHRoYXksIGNoYXQg DQpsdW9uZyBudW9jIGhvIEd1b20gZGFuZyB4dW9uZyBjYXAuIFZhIGN1bmcgY28gdGhlLCBkbyB2 aWVjIGNodWFuIGJpIGNobyBkYWkgbGUgdm9pIA0KZGFuIGFuaCBzYW5nIGtodW5nIGtoaWVwIGNo aWV1IHRvaSBtYXQgaG8gbGFtIGFuaCBodW9uZyBkZW4gYmF1IGtob25nIGtoaSBjdWEgImN1Ii4N Cg0KVmkgcnVhIGhvIEd1b20gZHVvYyBnYW4gdm9pIHRydXllbiB0aHV5ZXQgdnVhIExlIExvaSB0 cmEgZ3VvbSBiYXUsIG5lbiBkdW9jIHRvbiBsYSANCmxpbmggdmF0LiBDdW5nIHZpIGxlIGRvLCB0 dSB0cnVvYyBkZW4gbmF5IGNodWEgY28gbW90IGxhbiBraGFtIHN1YyBraG9lIGNobyAiY3UiLCBi b2kgZGUgDQpiYXQgcnVhIGtob25nIGRlIGRhbmcgdmUgbWF0IHF1YW4gbHkgdmEgY2EgdGFtIGxp bmguIE5nYXkgY2EgdmllYyB4YWMgZGluaCBBRE4gY3VhIA0KImN1IiBjdW5nIGNodWEgdGhlIHRo dWMgaGllbiBkdW9jICh2aSBtdW9uIHhldCBuZ2hpZW0gY2FuIHBoYWkgbGF5IG1vdCBwaGFuIG5h byBkbyANCmN1YSBjbyB0aGUgImN1Ii4gQ2FjIG5oYSBraG9hIGhvYyBjaG8gcmFuZywgImN1IFJ1 YSIsIG5vaSBuaGlldSBsYW4gbmh1IHZheSBsYSBkaWV1IGhldCANCnN1YyBiaW5oIHRodW9uZywg a2hvbmcgbGllbiBxdWFuIGRlbiB2YW4gZGUgdGFtIGxpbmguIERpZXUgcXVhbiB0cm9uZyBiYXkg Z2lvIG5ldSANCm11b24gYmFvIHZlICJjdSIgbW90IGNhY2ggYW4gdG9hbiB0aGkgbmVuIGNhaSB0 YW8gbW9pIHRydW9uZyBudW9jIG5vaSBjdSBzb25nLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4u Y29tLnZuL25ld3MvUGFnZXMvMjAxMDM3LzIwMTAwOTA2MDkyNDA0LmFzcHggMDYvMDkvMjAxMCA5 OjI0IA0KICANCkhhIE5vaTogJ0N1JyBydWEgSG8gR3VvbSBkaW5oIGx1b2kgY2F1IGNodW0gLSBU aHVvbmcgdGljaCBkYXkgbWluaCEgIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5ldC52 bi8yMDExLTAxLTEwLWFpLWR1b2MtZ2lhby1iYW8tdmUtY3UtcnVhLWtob25nLWFpLWNhLSBNYWMg VmFuIFRyYW5nIDExLzAxLzIwMTEgMDY6MDAgR01UKzcgDQoNCkFpIGR1b2MgZ2lhbyBiYW8gdmUg Q3UgUnVhOiBLaG9uZyBhaSBjYSENCg0KRGF0IG51b2MgbWluaCBsYSB0aGUsIGJhbyBuaGlldSBj aHV5ZW4geGF5IHJhIHJvaSwga2hvbmcgYmlldCBhaSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0uDQoN CkNvIGtpcCBjdXUgQ3UgUnVhIEhvIEd1b20ga2hvbmc/DQoNClR1IGtoaSBkYWksIGJhbyBkdWEg dGluIHZhIG5odW5nIGhpbmggYW5oIGRhbmcgeHVhdCBoaWVuIG1vdCBkYW4gcnVhIHRhaSBkbyBo b2FuaCBoYW5oIA0KbyBIbyBHdW9tLCBiaWV0IGJhbyBuZ3VvaSBkYW4gbG8gbGFuZy4gS2hpIHhl bSBoaW5oIDIgY2h1bSBsdW9pIGNhdSBtYWMgdHJlbiB2YWkgQ3UgDQpSdWEsIHJvaSBoaW5oIGFu aCBjb24gcnVhIHRhaSBkbyBjdW9pIHRyZW4gbHVuZyBDdSBSdWEsIHRvaSBjYW5nIGhldCBzdWMg bG8uIEhvbSBxdWEgZG9jIA0KYmFpICJWYW4gaG9hIFRodSBkbyAtIHZhbiBob2EgbHVuICg/KSIg Y3VhIE5ndXllbiBIdXUgUXV5LCB4ZW0gY2FuIGNhbmggdmV0IHRodW9uZyANCnZhIGFuaCBtYXQg Y3VhIEN1IFJ1YSB0b2kgY2FuZyBraG9uZyB0aGUgbmFvIHllbi4NCg0KVGFjIGdpYSB2aWV0OiAi Li4uIE5oaW4gYW5oIEN1IFJ1YSwgeG90IHhhIGNobyBDdSwgdmkgQ3Uga2hvbmcgY28gdGF5IGRl IG5hbSBuZ2F5IG1hIA0KZGFwIGNobyBkZW4gY2hldCBuaHVuZyBrZSBuZ2F5IG5nYXkgbmdvaSB0 cmVuIGx1bmcgY3UsIGRlIHJvaSAiYW4iIEN1IGNobyBkZW4gbm8gbmUgDQooPyEpLiBIb2FjIEN1 IGtob25nIGNhdCBsZW4gdGhhbmggdGllbmcsIGRlIG5vaSByYW5nLCBsdSBDT04gTkdVT0kgdGhh bSBsYW0sIG5ndSBkb3QgDQpraWEgb2ksIGNodW5nIGJheSBkYSBoZXQgY2FjaCBkZSBnaXUgbGF5 IGNhaSBub2kgbWEgYm9uIGJheSBsdW9uIGx1b24gaG8gaGFvIGxhIGxpbmggDQp0aGllbmcgYmFj IG5oYXQgY3VhIG51b2MgTmFtIG5heSBudWEgcm9pIHNhbz8hIi4uLg0KDQpUb2kgY3VuZyBob2Fu IHRvYW4gY28gY2FtIG5oYW4gZHVuZyBuaHUgdGhlLiBNb2kgbGFuIEN1IFJ1YSBub2kgbGVuLCBj YWMgbmhhIGtob2EgaG9jIA0KZHV5IHZhdCBjbyBnaWFpIHRoaWNoIHJhbmcgZG8gbGEgZG8gdGhv aSB0aWV0IHRoYXkgZG9pLi4uIE51b2MgdGhpZXUgby14eSwgQ3Ugbm9pIGxlbiBkZSB0aG8uIA0K Tmh1bmcgcmF0IG5oaWV1IG5ndW9pIGRhbiBkZXUgdGluIHJhbmcgbW9pIGxhbiBDdSB4dWF0IGhp ZW4gZGV1IGNvIHkgYmFvIGhpZXUgbW90IGRpZXUgDQpnaSBkby4NCg0KTW90IGNodSBiYWNoIHR1 b2MgUGF1bCBub24gdHJlICJ0YW0gdGh1b25nIiBjb24gZHUgYmFvIGR1bmcga2V0IHF1YSB0YXQg Y2EgY2FjIHRyYW4gZGF1IA0KY3VhIGRvaSB0dXllbiBib25nIGRhIER1YyBvIGdpYWkgdm8gZGlj aCBDaGF1IEF1IG11YSBoZSBuYW0gMjAxMCwgbGFtIGNhIHRoZSBnaW9pIA0Ka2hhbSBwaHVjLiBD aGFuZyBsZSBDdSBSdWEgbGluaCB0aGllbmcgc29uZyBtYXkgdHJhbSBuYW0gdm9pIHRydXllbiB0 aHV5ZXQgSG8gR3VvbSANCmh1eWVuIHRob2FpIG5odSB2YXksIG5odW5nIGxhbiB4dWF0IGhpZW4g bGFpIGtob25nIGxhbSBjaHVuZyB0YSBsaW5oIGNhbSB2ZSBtb3QgZGlldSANCmxpbmggdW5nIGdp IGRvIHNhbz8NCg0KSXQgcmEgbGFuIHh1YXQgaGllbiBuYXkgY3VhIEN1IGN1bmcgdHJ1eWVuIGRp IHRob25nIGRpZXAgbmh1IGN1YSB0YWMgZ2lhIE5ndXllbiBIdXUgDQpRdXkgZGEgY2FtIG5oYW4s IGRhIHBoYWkgdGhvdCBsZW4gbG8gc28sIGRhdSBkb24sIHZhIGR1b2MgbmhpZXUgbmd1b2kgY3Vu ZyBjaGlhIHNlLiANCkhpbmggYW5oIHZldCB0aHVvbmcgbG8gbG9ldCB2YSBjb24gcnVhIHRhaSBk byBjdW9pIGxlbiBsdW5nIEN1IGN1IGFtIGFuaCB0b2kga2hvbiBuZ3VvaS4NCg0KKEFuaDogQ2hh bmcgbGUgQ3UgUnVhIGxpbmggdGhpZW5nIHNvbmcgbWF5IHRyYW0gbmFtIHZvaSB0cnV5ZW4gdGh1 eWV0IEhvIEd1b20gDQpodXllbiB0aG9haSBuaHUgdmF5LCBuaHVuZyBsYW4geHVhdCBoaWVuIGxh aSBraG9uZyBsYW0gY2h1bmcgdGEgbGluaCBjYW0gdmUgbW90IGRpZXUgDQpsaW5oIHVuZyBnaSBk byBzYW8/KSANCg0KVG9pIG5obyBkZW4gY2FuaCBuaHVuZyBjb24gdm9pIGtob25nIGxvIG8gQ2hh dSBQaGkgYmkgbW90IGJheSBzdSB0dSBiYW8gdmF5LCBxdWFuIGNobyANCm1ldCB2YSBjaHVuZyB4 dW0gbGFpLCBjb24gdGhpIG5oYXkgbGVuIGx1bmcsIGNhYyBjb24ga2hhYyB0aGkga2VvIGR1b2ks IGtlbyB2b2kuLi4gQ2h1bmcgDQpjYW8sIGNhbiB2YW8gbmh1bmcgY2hvIG1lbSB5ZXUgbmhhdCBs YSBibyBwaGFuIHNpbmggZHVjLCBoYXUgbW9uLi4uIGxhbSBjb24gdm9pIGdpYXkgDQpnaXVhIHRy b25nIGRhdSBkb24gdmEga2lldCBzdWMgZ3VjIG5nYSBkZSBib24gc3UgdHUgdGhhIGhvIGFuIHRo aXQuIFRyb2kgb2khIENhbmggdHVvbmcgDQptb3QgYmF5IGFjIHRodSBydWEgdGFpIGRvIGJhbyB2 YXksIGFuIHRoaXQgQ3UgUnVhIGN1YSBjaHVuZyB0YSBjbyB4YXkgcmEgdHVvbmcgdHUga2hvbmc/ DQoNCkxpZXUgY2FjIGJpZW4gcGhhcCBiYXQgcnVhIHRhaSBkbyBtYSBTbyBLaG9hIGhvYyBDb25n IG5naGUgSGEgTm9pIGNvbiBkYW5nIGRlbmggDQpkYW5nIG5naGllbiBjdXUsIHRodSBuZ2hpZW0u Li4gY28ga2lwIGN1dSBDdSBSdWEga2hvbmc/IE5vaSBkYWkgbmV1IGNhYyBiaWVuIHBoYXAgZ2lh aSANCmN1dSBraG9uZyBraXAsIGRlIHhheSByYSBtZW5oIGhlIG5hbyBjaG8gQ3UgdGhpIGFpIGNo aXUgdHJhY2ggbmhpZW0gZGF5PyBWYSBraGkgZGEgeGF5IA0KcmEgcm9pLCBxdXkga2V0IHRyYWNo IG5oaWVtIGNvbiBjdXUgdm90IGR1b2MgZ2khPyBUaGF0IGRhbmcgbG8gbGFuZyB2YSBzbyBoYWkg eGlldCBiYW8hDQoNCihBbmg6IFRoZW8gUEdTIEhhIERpbmggRHVjIHRoaSB0cm9uZyBIbyBHdW9t IGNoaSBjb24gbGFpIDEgQ3UgUnVhIGR1eSBuaGF0LCBkYSBzb25nIDcwMCBuYW0gcm9pLiANCkxp ZXUgdHVvaSBjYW8sIHN1YyB5ZXUgbmh1IHZheSwgdHJ1b2Mgc3UgdGFuIGNvbmcgbmdheSBkZW0g Y3VhIGx1IGFjIHRodSBydWEgdGFpIGRvIG5nb2FpIGxhaSwgDQpDdSBjbyBjYW0gY3UgZHVvYyBk ZW4gbmdheSBTbyBLaG9hIGhvYyBDb25nIG5naGUgSGEgTm9pIG5naGllbiBjdXUgeG9uZyBiaWVu IHBoYXAgZ2lhaSBjdXUuDQpUaGUgbGEgdHJvbmcgdGhvaSBkYWkgbmF5LCBpdCBuaGF0IDIgQ3Ug UnVhIEhvIEd1b20gbGluaCB0aGllbmcgZGEgYmkgY2hpbmggY2h1bmcgdGEgZ2lldCANCmNoZXQg dmEgQ3UgY29uIGxhaSBjdW5nIGJpIGJheSBhYyB0aHUgZG8gY2hpbmggY2h1bmcgdGEgcnVvYyB2 ZSwgdGhhIHh1b25nIGRlIGdpZXQgbm90IG5odW5nIGdpIGNvbiBsYWkgY3VhIEhvIEd1b20uKSAN Cg0KVG9pIGNvbiBuaG8gdHUgaG9pIHRoYW5nIDgvMjAxMCwga2hpIGdhcCBQR1MgSGEgRGluaCBE dWMsIG1vdCBjaHV5ZW4gZ2lhIG5naGllbiBjdXUgDQp2ZSBIbyBHdW9tLCBhbmggY2hvIHhlbSB0 YW0gYW5oIGNvIDIgY2h1bSBsdW9pIGNhdSBtb2MgdHJlbiBsdW5nIEN1IFJ1YSB2YSByYXQgbG8g DQpsYW5nLiBUb2kgaG9pICJBaSBkdW9jIGdpYW8gYmFvIHZlIEN1IFJ1YT8iLiBBbmggYmFvICJL aG9uZyBhaSBjYSwga2llbiBuZ2hpIG1haSByb2khIi4gDQpEYXQgbnVvYyBtaW5oIGxhIHRoZSwg YmFvIG5oaWV1IGNodXllbiB4YXkgcmEgcm9pLCBraG9uZyBiaWV0IGFpIHBoYWkgY2hpdSB0cmFj aCBuaGllbS4NCg0KVGhhbmcgNCBuYW0gMTk2OCwgbW90IEN1IFJ1YSBIbyBHdW9tIGN1bmcgbm9p IGxlbiBrZXUgY3V1LiBOZ3VvaSB0YSB0aGF5IHRyZW4gbHVuZyANCkN1IGJpIG1vdCB2ZXQgdGh1 b25nIG5hbmcsIGRhbmcgcmkgbWF1LiBUaW4gbG9hbiBiYW8gZGkuIENvIG5ndW9pIHF1eSBuZ2F5 IGNobyBtYW5oIA0KYm9tLCBkYW4gTXkgb2FuaCB0YWMgSGEgTm9pIHRydW9jIGRvIDIgbmdheSBk YSBsYW0gQ3UgYmkgdHJvbmcgdGh1b25nLg0KDQpOaHVuZyBuZ3VvbiB0aW4gdHUgZGFuIGNobyBi aWV0OiBDbyBrZSB0ZW4gbGEgVGh1IGRhbmggY2EgdGh1ZSBjaG8gQ29uZyB0eSBUaHVjIHBoYW0g DQpxdW9jIGRvYW5oIEhhIE5vaSwgdHJvbmcga2hpIGtlbyBsdW9pIGJpIEN1IFJ1YSBjYW4gdHJv IG5lbiBkYSBkdW5nIHhhIGJlbmcgZGFtIA0KbWFuaCwgeHV5ZW4gcXVhIGxvcCBtYWkgbWVtLCBj YW0gdmFvIHBob2kuLi4gQ2FjIGdpYWkgcGhhcCBjdXUgY2h1YSBkYSBraG9uZyB0aGFuaC4gDQpD dSBtYXQgdmFvIG5nYXkgMDgvNC8xOTY4LiAoTmF5IHhhYyB1b3AgZHVvYyBkZSB0YWkgZGVuIE5n b2MgU29uKS4gQ29uZyBhbiB2YW8gY3VvYy4gS2UgdGh1IGFjIGRhIHRyb24gYmlldCB2YSBkZW4g bmF5IHZhbiBtYXQgdGFtIT8gVGhlIGxhIGNoYW5nIGFpIGNoaXUgdHJhY2ggbmhpZW0uIA0KDQpU aHVjIHJhIHRoaSB0cnVvYyBkbyBtb3QgQ3UgUnVhIGtoYWMgY3VuZyBkYSBiaSBtb3QgdmV0IHRo dW9uZyBuYW5nLCBjaGV0IG5vaSBsZW4sIA0Kbmd1b2kgdGEgdm90IHhhYywgbGF5IGJvIHh1b25n IEN1IGJhbyBxdWFuIHRhaSBjaHVhIEh1bmcgS3kgKFEuIEhvYW5nIE1haS0gSGEgTm9pKSANCnZh IGN1bmcgY2hhbmcgZGlldSB0cmEga2UgdGh1IGFjLCBjaGFuZyBhaSBjaGl1IHRyYWNoIG5oaWVt LiBTYXUgbmh1bmcgc3UgdmllYyBuaHUgdmF5IA0KbmF5IGN1bmcga2hvbmcgZ2lhbyBjaG8gYWkg Y28gdHJhY2ggbmhpZW0gYmFvIHZlIEN1IFJ1YSBjb24gbGFpLCBsaWV1IGNvIHRoZSBub2kgZ2kg bnVhIGRheT8NCg0KVGhvbmcgZGllcCBjYXkgZGFuZywgdHV5ZXQgdm9uZyBjdWEgQ3UgUnVhDQoN ClRhaSBzYW8gbmh1bmcgY29uIHZhdCBvIHNvIHRodSB0aGkgY28gbmd1b2kgYmFvIHZlIG5nYXkg ZGVtLCBuZ3VvaSBjaGFtIHNvYyBudW9pIA0KZHVvbmcsIGNvIGJhYyBzaSB0aGVvIGRvaSBiZW5o IHRhdCwgbWEgQ3UgUnVhIHRoaSBraG9uZy4gSGF5IHZpIG8gc28gdGh1IG5ndW9pIHRhIGNvIGJh biANCnZlIHRodSB0aWVuLCBjb24gSG8gR3VvbSB0aGkga2hvbmc/IE1hIG5nYXkgZGFuIGNoaW0g Ym8gY2F1IHRoYSBsZW4gdHJvaSBuaGFuIERhaSBsZSANCjEwMDAgbmFtIFRoYW5nIExvbmctIEhh IE5vaSwgZHVvYyBudW9pIGhhbiBob2kgdGhpIGN1bmcgZGFuZyBjaGV0IGRhbiBjaGV0IG1vbiB2 b2kgDQpuaGlldSBseSBkby4gTWEgbHkgZG8gbmFvIGN1bmcgY28gdmUgY28gbHkgY2E/DQoNClRo ZW8gUEdTIEhhIERpbmggRHVjIHRoaSB0cm9uZyBIbyBHdW9tIGNoaSBjb24gbGFpIDEgQ3UgUnVh IGR1eSBuaGF0LCBkYSBzb25nIDcwMCANCm5hbSByb2kuIExpZXUgdHVvaSBjYW8sIHN1YyB5ZXUg bmh1IHZheSwgdHJ1b2Mgc3UgdGFuIGNvbmcgbmdheSBkZW0gY3VhIGx1IGFjIHRodSBydWEgdGFp IA0KZG8gbmdvYWkgbGFpLCBDdSBjbyBjYW0gY3UgZHVvYyBkZW4gbmdheSBTbyBLaG9hIGhvYyBD b25nIG5naGUgSGEgTm9pIG5naGllbiBjdXUgDQp4b25nIGJpZW4gcGhhcCBnaWFpIGN1dS4NCg0K VGhlIGxhIHRyb25nIHRob2kgZGFpIG5heSwgaXQgbmhhdCAyIEN1IFJ1YSBIbyBHdW9tIGxpbmgg dGhpZW5nIGRhIGJpIGNoaW5oIGNodW5nIHRhIGdpZXQgDQpjaGV0IHZhIEN1IGNvbiBsYWkgY3Vu ZyBiaSBiYXkgYWMgdGh1IGRvIGNoaW5oIGNodW5nIHRhIHJ1b2MgdmUsIHRoYSB4dW9uZyBkZSBn aWV0IG5vdCANCm5odW5nIGdpIGNvbiBsYWkgY3VhIEhvIEd1b20uDQoNCkNhbmggdHVvbmcgQ3Ug UnVhLCBiYXUgdmF0IGN1YSBIbyBHdW9tIGxpbmggdGhpZW5nLCBub2kgImxhbmcgaG9uIG51aSBz b25nIG5nYW4gDQpuYW0iLCBkYW5nIGJpIGJheSBhYyB0aHUgcnVhIHRhaSBkbyBuZ29haSBsYWkg bmdhbmcgbmhpZW4gdGFuIHBoYSwgbm9pIGxlbiBkaWV1IGdpIGN1YSANCm5oYW4gdGluaCB0aGUg dGhhaSBob20gbmF5LiBEbyBjaGFuZyBwaGFpIGxhIHRob25nIGRpZXAgY2F5IGRhbmcsIHR1eWV0 IHZvbmcgKGh5IHZvbmcgDQpjaHVhIHBoYWkgY3VvaSBjdW5nKSBtYSBDdSBSdWEgbXVvbiBub2kg dm9pIG5odW5nIENPTiBOR1VPSSB2byBjYW0gY2h1bmcgdGEgaG9tIG5heSBraG9uZz8gDQoNCi0t LS0tIA0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0xMC0xMi1ob2FuZy10 aGFuaC1naS1tYS1jaGktdGhheS1kYXQtdHJvbmctIEtoYW5oIExpbmggIDEzLzEwLzIwMTAgMDY6 MDAgR01UKzcgDQoNCkhhIE5vaTogIkhvYW5nIHRoYW5oIGdpIG1hIGNoaSB0aGF5IGRhdCB0cm9u Zz8iIJYgTG8gbW90IGRpcCBjaGFuIGh1bmcgZGFuIGtoaQ0KDQpOZXUgbGFtIGR1b2MgZGlldSBk bywgdGluaCB0aGFuIGN1YSBtb2kgbmd1b2kgVmlldCBOYW0ga2hpIGRlbiB2b2kgS2h1IHRydW5n IHRhbSBIb2FuZyANCnRoYW5oIFRoYW5nIExvbmcgY2hhYyBjaGFuIHNlIGxlbiByYXQgY2FvLCBo byBzZSBuaHUgZHVvYyB0aWVwIHRoZW0gc3VjIG1hbmggYm9pIGNhIA0KMTAwMCBuYW0gbGljaCBz dS4gTmh1bmcgdGllYyB0aGF5LCBjaHVuZyB0YSBkYSB2b2kgY2hheSB0aGVvIHNvIGx1b25nIGNh YyBjaHVvbmcgdHJpbmgsIA0Kc3Uga2llbiwgbmVuIGJvIHF1ZW4gbW90IGNvIGhvaSB0dXlldCB2 b2ksIGNvIGhvaSBuZ2FuIG5hbSBjbyBtb3QgZGUgY2hhbiBodW5nIGRhbiBraGkuDQoNCiogRGFp IGxlOiBOZ3VvaSBibyBob2kgdGFpLCBuZ3VvaSBodXQgaGFuZw0KDQpEYXUgc29uIG5nb2kgc2Fu ZyB0cm9uZyBEYWkgbGUNCg0KRHUgY2h1YSB0aGF0IHN1IGxhIGRhaSBsZSBjdWEgbGljaCBzdSwg dmFuIGhvYSwgY3VhIG5odW5nIGNvbiBkYW4gZGF0IFZpZXQgbmh1IG1vbmcgdW9jLCANCm5odW5n IGRpZXUgY29uIGxhaSBraGkgMTAgbmdheSBEYWkgbGUgMTAwMCBuYW0gVGhhbmcgTG9uZyAtIEhh IE5vaSBxdWEgZGkgY2hpbmggbGE6IA0KZ3VvbmcgbWF0IHZhbiBob2EgY3VhIHRoYW5oIHBobyBI YSBOb2kgcXVhIHRodWMgZGVwIGhvbiwgbmhvIHN1IGhpZW4gZGllbiBjdWEgS2h1IGRpIA0KdGlj aCB0cnVuZyB0YW0gSG9hbmcgdGhhbmggVGhhbmcgTG9uZy4NCg0KVm9pIHJhdCBuaGlldSBuZ3Vv aSwgZGkgc2FuIHZhbiBob2EgdGhlIGdpb2kgdnVhIGR1b2MgY29uZyBuaGFuIHZhbyBuZ2F5IDEv OC8yMDEwIG5heSANCmNoaW5oIGxhIGRpZW0gbmhhbiBxdWFuIHRyb25nIG5oYXQgY3VhIERhaSBs ZSAxMDAwIG5hbSBUaGFuZyBMb25nLiBHaW8gZGF5LCBkZSBnaW9pIHRoaWV1IA0Kdm9pIGJhbiBi ZSB0cm9uZyB2YSBuZ29haSBudW9jIHZlIGxpY2ggc3UgbGF1IGRvaSBjdWEgVGhhbmcgTG9uZyAt IEhhIE5vaSwgY2hpIGNhbiBkdWEgDQpobyBkZW4gdGhhbSBxdWFuIGtodSBkdSB0aWNoLCBkZSBo byB0YW4gbWF0IG5oaW4gbmh1bmcgZGF1IHRpY2ggY3VhIGtpbmggdGhhbmggY28geHVhIHF1YSBu aGlldSB0aG9pIGt5Lg0KDQpUYW4gaHVvbmcgbmllbSB2dWkgaG9tIG5heSwgbmhvIGxhaSBuaHVu ZyBuYW0gdGhhbmcgdGhhbmcgdHJhbSBjdWEga2h1IGRpIHRpY2ggdHUga2hpIA0KZHVvYyBwaGF0 IGhpZW4gdm9pIGRheSBhcCBuaHVuZyAibmdvIHZ1YyIgdG9pIG5nYXkga2hhbmcgZGluaCBkdW9j IGdpYSB0cmk7IG5obyBsYWkgDQpuaHVuZyB0aG9pIGRpZW0ga2hvIGtoYW4ga2hpIGNhYyBuaGEg a2hvYSBob2MgcGhhaSBubyBsdWMgaGV0IG1pbmggZGUgZ2l1IGxhaSB0dW5nIG1ldCANCnZ1b25n IGRhdCBjdWEga2h1IGRpIHRpY2g7IG5obyBsYWkgbmh1bmcgbmdheSBjaGF5IGR1YSB2b2kgdGhv aSBnaWFuIGRlIGtpcCBsYW0gaG8gc28gDQp2dWEgZHVuZyBoZW4gdGhvaSBnaWFuLCB2dWEgZGF0 IGNoYXQgbHVvbmcuIFRhdCBjYSBkZXUgY2FuZyBzdWMgImNoaWVuIGRhdSIgdm9pIG1vbmcgbW9p IA0KS2h1IGRpIHRpY2ggcGhhaSBkdW9jIGNvbmcgbmhhbiBkdW5nIGRpcCBEYWkgbGUgMTAwMCBu YW0gVGhhbmcgTG9uZyAtIEhhIE5vaSwgbGEgInRhbmcgDQpwaGFtIGNvIGdpYSB0cmkgdmEgeSBu Z2hpYSBsb24gbGFvIGtpbmggZGFuZyBEYWkgbGUiIHZhIG5odSBsb2kgR1MgUGhhbiBIdXkgTGU6 IGN1bmcgDQpsYSBjbyBob2kgZGUgaGF1IHRoZSBiYXkgdG8gbmllbSBraW5oIHRyb25nIHZvaSBj YWMgYmFjIHRpZW4gbmhhbiBkYSBkYXkgY29uZyBnYXkgZHVuZyANCnZhIGdpbiBnaXUga2luaCB0 aGFuaCBUaGFuZyBMb25nIHN1b3QgbmhpZXUgdGhlIGt5Lg0KDQoNCk5odW5nIHR1IG1vdCBnb2Mg bmhpbiBraGFjLCBjaGluaCBuaG8gRGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2kg bWEgS2h1IHRydW5nIA0KdGFtIEhUVEwgbmhhbiBkdW9jIHN1IHF1YW4gdGFtIHNhdSBzYWMgY3Vh IGNhIHRydW5nIHVvbmcgdmEgSGEgTm9pLiBCb2kgbmV1IHRoaWV1IHkgY2hpIA0KY2hpbmggdHJp IGN1YSBjYWMgbGFuaCBkYW8gdGhpIGR1IGNhYyBuaGEga2hvYSBob2MgY28gdGFtIGh1eWV0IGRl biBkYXUsIGN1bmcga2hvIG1hIA0KY28gZHVvYyBraHUgRGkgc2FuIHRoZSBnaW9pIEhvYW5nIHRo YW5oIFRoYW5nIExvbmcgbW8gY3VhIGR1bmcgZGlwIERhaSBsZSBkZSBkb25nIGJhbyANCmNhIG51 b2MgdmEgYmFuIGJlIHF1b2MgdGUgdGltIHZlIHZvaSBuaHVuZyBkYXUgdGljaCAxMDAwIG5hbS4g DQoNCkNvIGhvaSBkb2kgdGhvYWkgdm9pIGxpY2ggc3UNCg0KTW8gY3VhIHNhbmcgMi8xMCwgc3Vv dCA5IG5nYXkgZGFpIGxlLCBLaHUgZGkgdGljaCBkYSBkb24gbW90IGx1b25nIGtoYWNoIHRoYW0g cXVhbiANCmtob25nIGxvLCB2dW90IHF1YSBtb2kgZHUgdGluaC4gTW9pIG5nYXksIHZhaSB2YW4g bmd1b2kgdGllcCBub2kgbmhhdSB2YW8gdGhhbSBraHUgZGkgDQp0aWNoIHR1IHNhbmcgc29tIGRl biB0YW4gZ2lvIGRvbmcgY3VhLiBDYSBraHUgZGkgdGljaCByb25nIHRvaSBob24gY2h1YyBoZWN0 YSwgbmh1bmcgZGF1IA0KZGF1IGN1bmcgdHJhbiBuZ2FwIG5ndW9pLCB0dSBEb2FuIE1vbiwgRGll biBLaW5oIFRoaWVuIGRlbiBIYXUgTGF1LCB0dSBwaG9uZyB0cnVuZyANCmJheSBMaWNoIHN1IG5n aGluIG5hbSB0dSBsb25nIGRhdCBkZW4ga2h1IGRpIHRpY2gga2hhbyBjbyBob2MgMTggSG9hbmcg RGlldS4NCg0KUmllbmcgcGhhbiBkaSB0aWNoIGJlbiAxOCBIb2FuZyBEaWV1LCBkdSBsYSB0YW0g ZGllbSBjdWEgc3UgY2h1IHkgdmkgbGFuIGRhdSB0aWVuIGR1b2MgDQptbyBjdWEsIG5odW5nIGx1 b24gcGhhaSAia2hvbmcgY2hlIiBsdW9uZyBuZ3VvaSB2YW8gdGFpIG1vaSB0aG9pIGRpZW0sIGJv aSBkaSB0aWNoIA0Ka2hhbyBjbyBob2MgcXVhIG1vbmcgbWFuaCwgZGUgYmkgdGFjIGRvbmcsIG5l biBwaGFpIHNhcCB4ZXAgZGUgbW9pIG5ndW9pIGRhIHZhbyB0cm9uZyANCnBoYWkgY28gZHUgdGhv aSBnaWFuIGRpIG1vdCB2b25nIGRpIHRpY2ggdHJlbiBsbyB0cmluaCBuaGF0IGRpbmguIFZheSBs YSBuaGlldSBkdSBraGFjaCBzYXUgDQpraGkgdGhhbSBxdWFuIHhvbmcgY2FjIGRpIHRpY2ggdHJl biBtYXQgZGF0IHZhIHBob25nIHRydW5nIGJheSBoaWVuIHZhdCAocGhpYSBiZW4gVGhhbmggDQpj byBIYSBOb2kpLCBkYSBjaGFwIG5oYW4gZHVuZyB4ZXAgaGFuZyBuZ29haSBjb25nIDE4IEhvYW5n IERpZXUsIGRlIGNobyBkZW4gbHVvdCANCm1pbmggdmFvIHhlbSB0YW4gbWF0IGNhYyBkYXUgdGlj aCB0aGFuaCBxdWFjaC4NCg0KQ28gbWF0IHRhaSBIb2FuZyB0aGFuaCBuaHVuZyBuZ2F5IGRhaSBs ZSwgYmF0IG5nbyBiYXQgZ2FwIG5odW5nIGJvIHRyYW5nIHBodWMgZGFuIHRvYyANCmN1YSBuaHVu ZyBjdSBiYSBsdW5nIGRhIGNvbmcsIGdvaSBkYSBtb2ksIG5odW5nIHZhbiBuaGF0IHF1eWV0IG5o byBuZ3VvaSBuaGEgZGF0IHRheSANCmRlIGxlbyBiYW5nIGR1b2MgbGVuIERvYW4gTW9uLiBIb2kg cmEgbW9pIGJpZXQgY3UgdHUgU29uIExhIHh1b25nIEhhIE5vaSBjaGkgZGUgbW90IA0KbGFuIHRh biBtYXQgbmhpbiB0aGF5IGNhYyBkYXUgdGljaCBjdWEgSG9hbmcgdGhhbmgsIGNodSAia2hvbmcg bGUgY2hpIG5oaW4gdHJlbiB0aXZpIGhhIA0KY2hhdSI/DQoNCkNhbmggYmEgZGF0IGNoYXUgdmFv IHRoYW0gSG9hbmcgdGhhbmgsIGNoYXUgdGh1IHRoaSBkb2MgYmEgbmdoZSBuaHVuZyBsb2kgZ2lv aSB0aGlldSB2ZSANCnR1bmcgdGhvaSBkYWk7IGNhbmggY3Ugb25nIHZhIGN1IGJhIGN1bmcgdmFv IHRoYW0ga2h1IGRpIHRpY2gsIGN1IG9uZyAiY2FtIGN1aSIgcXVheSANCnBoaW0gImRlIHZlIG5o YSB4ZW0gbGFpIGNobyBreSwgY2h1IG8gZGF5IGRvbmcgcXVhIGNoYXUgYSIga2hpZW4gbmd1b2kg dmlldCBiYWkga2hvbmcgDQpraG9pIHh1YyBkb25nLg0KDQpNYSBuYW8gcGhhaSBjaGkgY28gY2Fj IGN1IG9uZywgY3UgYmEgbW9pIG11b24gY2FtIG5oYW4ga2hvbmcga2hpIHRoaWVuZyBsaWVuZyBu b2kgDQpraW5oIHRoYW5oIHh1YSwgdHVuZyBuaG9tIGJhbiB0cmUgdHJvbmcgZG9uZyBwaHVjICJU b2kgeWV1IEhhIE5vaSIgY3VuZyB0aXUgdGl0IHRyYW0gdHJvIA0KdHJ1b2Mgbmh1bmcgdmllbiBu Z29pIGNoYW0gdHJvIHJvbmcsIHBodW9uZyB0dXlldCBkZXAuIENhIG5odW5nIGNvLCBjYXUgYmUg eGl1IHhpdSANCmN1bmcgZHVvYyBibyBtZSwgb25nIGJhIGRhdCB2YW8gdGhhbSBLaHUgZGkgdGlj aCwgYXkgdmF5IG1hIGNhYyBiZSB2YW4gZGkgdHUgZGF1IGRlbiANCmN1b2kgY3VuZyBibyBtZSwg b25nIGJhLCB0dXlldCBuaGllbiBraG9uZyB0aGF5IGNhbmgga2hvYyBkb2kgcmEsIG5odSB0aGUg bm9pIGNob24gbmF5IA0KY3VuZyBjbyBnaSBkbyByYXQgY3VvbiBodXQgY2hpbmggY2FjIGJlLg0K DQpEb2kgbGFuIGNvIG1hdCB0cm9uZyBkb25nIG5ndW9pIGtpbiBkYWMgbm9pIENhbSB0aGFuaCBU aGFuZyBMb25nLCBidW9jIHRyZW4gbmh1bmcgDQp0YWMgZGF0IGRheSBkYWMgZGF1IGFuIGxpY2gg c3UsIHR1b25nIG5odSBkZSBkYW5nIGJhdCBnYXAgZGF1IGRheSBib25nIGN1YSBjYWMgdnVhLCBx dWFuIA0KdGhvaSBMeSwgVHJhbiwgTGUsLi4uIGxvbmcgbmd1b2kgdmlldCBiYWkga2hvbmcga2hv aSBib2kgaG9pIHh1YyBkb25nLiBEaWV1IGdpIGRhIGR1YSANCmhhbmcgdmFuIG5ndW9pIGRlbiB2 b2kga2h1IGRpIHRpY2ggbW9pIG5nYXksIG5ldSBraG9uZyBwaGFpIGxhIG5vaSBtb25nIG1vaSBk dW9jIHRhbiANCm1hdCBuaGluIHRoYXkgbmh1bmcgZGF1IHRpY2ggY3VhIGxpY2ggc3UgMTAwMCBu YW0sIGRlIHR1IG5heSBraG9uZyBjb24gbmh1bmcgbmdheSBib2kgDQpyb2kga2hvbmcgYmlldCBu Z2hlIHRodWF0IHRob2kgTHkgcmEgc2FvLCB0aG9pIFRyYW4ga2hhYyB0aG9pIExlIHRoZSBuYW8/ IE1vdCBsYW4gdmFvIA0KdGhhbSBraHUgZGkgdGljaCwgYmFuZyBkb2MgYmlldCBiYW8gY3VvbiBz YWNoIGxpY2ggc3UuDQoNCkxvIG1vdCBkaXAgY2hhbiBodW5nIGRhbiBraGkNCg0KVHUgaGFvIGto aSB0aGF5IG1pbmggbmh1IGRhbmcgImRvaSB0aG9haSIgdm9pIHRvIHRpZW4sIG5odW5nIGtob25n IGtob2kgYmFuIGtob2FuLCB0cmFuIA0KdHJvLCBraGkgY29uZyB0YWMgaHVvbmcgZGFuLCB0aHV5 ZXQgbWluaCBkYSBraG9uZyB0aGUgdG8gY2h1YyBjaHUgZGFvIGNobyB0YXQgY2EgZHUgDQpraGFj aCB2YW8gdGhhbS4gTHkgZG8gYm9pIGx1b25nIG5ndW9pIHZhbyB0aGFtIGtodSBkaSB0aWNoIHRy b25nIG1vaSB0aG9pIGRpZW0gcXVhIA0KbG9uLCB2YWkgY2h1YyBodW9uZyBkYW4gdmllbiBjdW5n IGtob25nIGxhbSB4dWUsIG5lbiBjaGkgY28gdGhlIHRvIGNodWMgaHVvbmcgZGFuIGNobyANCmto YWNoIGRvYW4uDQoNClZheSBsYSBoYW5nIHZhbiBuZ3VvaSBjaGkgYmlldCBkdWEgdmFvIHZhaSB0 YW0gYmllbiBnaW9pIHRoaWV1IGNodW5nIGNobyBtb2kgZGllbSB0aGFtIA0KcXVhbiBjdWEga2h1 IGRpIHRpY2gsIG5lbiBtb2kgY28gdGluaCB0cmFuZyAiY29uIGR1b25nIGxhdCBnYWNoIGhvYSBj aGFuaCB0aG9pIFRyYW4iIA0KbmdheSBkdW9pIGNoYW4gRG9hbiBNb24gYmkga2hhbmcgZGluaCBu aHUgZGluaCBkb25nIGNvdCBsYSAidGhhbmggY28gY2h1IGNvbiBnaSANCm51YSEiLCBkZSByb2kg YmkgInZhYyIgbGFpICJ0aGFuaCBjbyBkYXUgbWEgbmhpZXUgdGhlPyIuIA0KDQpOZ2F5IGNhIGto dSBkaSB0aWNoIGtoYW8gY28gaG9jIDE4IEhvYW5nIERpZXUsIGR1IGtoYWNoIHRoYW0gcXVhbiBk YSBkdW9jIHRvIGNodWMgDQp2YW8gdGhhbmggdHVuZyBuaG9tIGRlIGNvIGh1b25nIGRhbiB2aWVu IGdpb2kgdGhpZXUsIG5odW5nIHJhdCBuaGlldSBodW9uZyBkYW4gdmllbiANCmNoaSBsYSBjYWMg YmFuIHNpbmggdmllbiB0aW5oIG5ndXllbiBjdWEgS2hvYSBEb25nIFBodW9uZyBob2MsIERhaSBo b2MgS0hYSE5WLCANCm5lbiBjaGkgY28gdGhlIGdpb2kgdGhpZXUgdGhlbyBraWV1IHRoYXkgZ2ll bmcgbnVvYyB0aGkgZ2lvaSB0aGlldSBsYSBnaWVuZyBudW9jIHRob2kgbmFvLCANCnJvaSBkYXkg bGEgZ2lhbiBuaGEgMyBnaWFuLCBraWEgbGEgZG9uZyBzb25nLCBjaG8gbm8gbGEgY29uZyBudW9j Lg0KDQpDYWMgZGF1IHRpY2gga2hhbyBjbyBob2MgbGFpIGNoaSBsYSBwaGUgdGljaCwgcmF0ICJk b24gc28iIHRyb25nIG1hdCAibmd1b2kgcGhhbSIsIG5lbiANCm5naGUgZ2lvaSB0aGlldSBtb3Qg aG9pLCB0cm9uZyBkYW0gZG9uZyBjbyB0aWVuZyB4aSB4YW0gIktpbmggdGhhbmggZ2kgbWEgY2hh bmcgdGhheSANCnRoYW5oIHF1YWNoIGRhdSBjYSwgdG9hbiBiYWkgZGF0IHRyb25nISIuIE5oaWV1 IG5ndW9pIHZpIG1ldCBsYWkga2hvbmcgdGhheSBnaSBob2FuaCANCnRyYW5nLCBuZW4gYm8ga2hv bmcgdGhlbyBsbyB0cmluaCB0aGFtIHF1YW4gZHVvYyBzYXAgeGVwIG1hIGRpIHRhdCBjaG8gbmhh bmgsIHJhIHJvaSBsYWkgDQp0aGFjIG1hYyAiY2hpIGNvIHRoZSBuYXkgdGhvaSBzYW8/Ii4NCg0K Q2h1bmcga2llbiBuaHVuZyBwaGFuIHVuZyBob24gbmhpZW4gbmh1bmcgcmF0IHRoYXQgY3VhIG5o dW5nIGNvbiBuZ3VvaSBjaGF0IHBoYWMgYXksIA0Kbmd1b2kgdmlldCBiYWkgbmF5IGtob25nIGto b2kgbnVvaSB0aWVjLCBnaWEgbmh1IHZpZWMgZ2lvaSB0aGlldSBkdW9jIHRvIGNodWMga3kgbHVv bmcsIA0Ka2hhY2ggdGhhbSBxdWFuIGR1b2MgZGFuIGRhdCBib2kgbmh1bmcgY2h1eWVuIGdpYSBz dSBob2MsIGtoYW8gY28gaG9jIHZvaSBraWVuIHRodWMgDQpzYXUsIHJvbmcsIGRlIG1vaSBuZ3Vv aSBraGkgYnVvYyBjaGFuIHZhbyBraHUgZGkgdGljaCBzZSBjYW0gbmhhbiBkdW9jIG5nYXkgY2hv IG1pbmggDQpkdW5nIGRheSwgeHVhIGtpYSBkYSBsYSBjdW5nIGRpZW4gbmFvPyBOaGEgdnVhIGRh IHRoaWV0IHRyaWV1IG8gZGF1PyBWdWEgZGkgbGFpIGJhbmcgbG9pIA0KbmFvPyBOaHVuZyBwaGUg dGljaCAiZG9uIHNvIiBraWEgbGEgY3VhIHRvYSBuZ2FuZyBkYXkgZG9jIGtpbmggdGhhbmggcmEg c2FvPyBEZSBtb2kgDQpuZ3VvaSBraGkgZGVuIHZvaSBraHUgZGkgdGljaCBuaHUgbmd1b2MgZG9u ZyB0aG9pIGdpYW4gc29uZyBsYWkgbmh1bmcgdGhlIGt5IDExLCAxMiBjdWEgDQp0aG9pIEx5LCAx MywgMTQgY3VhIHRob2kgVHJhbi4uLiByb2kgdHV5IHZhbyB0dW9uZyB0dW9uZyBjdWEgbW9pIG5n dW9pLCBobyBzZSB0aGF5IG5odSANCm1pbmggZHVvYyBnYXAgZHVjIHZ1YSBMeSBDb25nIFVhbiBo YXkgVHJhbiBOaGFuIFRvbmcsIGNhYyBkYW5oIHR1b25nIEx5IFRodW9uZyANCktpZXQgaGF5IFRy YW4gSHVuZyBEYW8uLi4NCg0KTmV1IGxhbSBkdW9jIGRpZXUgZG8sIHRpbmggdGhhbiBjdWEgbW9p IG5ndW9pIFZpZXQgTmFtIGtoaSBkZW4gdm9pIEtodSB0cnVuZyB0YW0gDQpIb2FuZyB0aGFuaCBU aGFuZyBMb25nIGNoYWMgY2hhbiBzZSBsZW4gcmF0IGNhbywgaG8gc2Ugbmh1IGR1b2MgdGllcCB0 aGVtIHN1YyBtYW5oIA0KYm9pIGNhIDEwMDAgbmFtIGxpY2ggc3UuIE5odW5nIHRpZWMgdGhheSwg dmkgY29uZyB0YWMgY2h1YW4gYmkgZGEgZGllbiByYSBxdWEgdm9pIHZhbmcsIHZpIA0KSGEgTm9p IGNodWEgdGFwIHRydW5nIGR1IG5ndW9uIGx1YyB2YSBjb25nIHN1YyBkZSBIb2FuZyB0aGFuaCBU aGFuZyBMb25nIHRoYXQgc3UgbGEgDQp0cnVuZyB0YW0gY3VhIERhaSBsZSwgdGhheSB2aSBoYW5n IGNodWMgbmh1bmcgY2h1b25nIHRyaW5oIGNhIG5oYWMgbmEgbmEgZ2lvbmcgbmhhdSwgIA0KdGh1 YW4gdHV5IG1hbmcgdGluaCBreSBuaWVtLg0KDQpQaGFpIGNoYW5nIGNoaW5oIEhhIE5vaSBjdW5n IGtob25nIG5nbywgbG9uZyBkYW4gbGFpIGh1b25nIHZlIGtpbmggdGhhbmggeHVhIG5oaWV1IA0K ZGVuIHRoZT8gQ2h1bmcgdGEgZGEgdm9pIGNoYXkgdGhlbyBzbyBsdW9uZyBjYWMgY2h1b25nIHRy aW5oLCBzdSBraWVuLCBuZW4gYm8gcXVlbiBtb3QgDQpjbyBob2kgdHV5ZXQgdm9pLCBjbyBob2kg bmdhbiBuYW0gY28gbW90IGRlIGNoYW4gaHVuZyBkYW4ga2hpLiANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMC9QaG8tcGh1b25nLUhhLU5vaS14YWMteG8tc2F1LWRh aS1sZS05NDAxNzIvIENhbSBBbmggKHRvbmcgaG9wKSAxNjo1NywgMTAvMTAvMjAxMCAoR01UKzcp DQoNCkhhIE5vaTogUGhvIHBodW9uZyBIYSBOb2kgeG8geGFjIHNhdSBEYWkgbGUgDQoNCktldCB0 aHVjIGxlIGRpZXUgYmluaCwgZGlldSBoYW5oIHNhbmcgMTAvMTAsIGhhbmcgbmdhbiBuZ3VvaSBk aSB4ZW0gRGFpIGxlIGRvIHhvIHRpbSBkdW9uZyB2ZS4gQm9uZyBobyBraHVhdCBkaSBjdW5nIGxh IGx1YyBwaG8gcGh1b25nIEhhIE5vaSBsbyByYSB4byB4YWMuIA0KDQpNb3Qgc28gaGluaCBhbmgg Y3VhIHBobyBwaHVvbmcgSGEgTm9pIHNhdSBraGkgRGFpIGxlIGtldCB0aHVjIGRhIGR1b2MgZ2hp IGxhaSwgVmlldE5hbU5ldCB0b25nIGhvcCBsYWkgZGUgYmFuIGRvYyBjdW5nIHhlbSB2YSBzdXkg bmdhbSB2ZSB5IHRodWMgdGhhbSBnaWEgbGUgaG9pIGN1YSBtb2kgbmd1b2kgZGFuLg0KDQooQW5o OiBDYXkgSGEgTm9pICJvYW4gbWluaCIgY2hpdSB0cmFuIHRyb25nIERhaSBsZSAtQW5oOiBEYW4g dHJpKQ0KDQooQW5oOiBSYXQgbW9uZyBtYW5oIG5odW5nIGNheSBiZW4gSG8gR3VvbSBjdW5nIHBo YWkgY2hpdSB0cmFuIGtoaSBjYWMgdGhhbmggbmllbiBjaGVuIG5oYXUgbGVvIGxlbiBkZSB4ZW0u IEFuaDogYmVlLm5ldC52bikgDQoNCihBbmg6IER1b2kgc3VjIGVwIGN1YSBiaWVuIG5ndW9pIHRo aSBkYWkgcGhhbiBjYWNoIGN1bmcgbWF0IHRhYyBkdW5nLiBBbmg6IERhbiB0cmkpDQoNCihBbmg6 IE1vdCBjYXkgY28gdGh1IHRyb25nIFZhbiBNaWV1IC0gUXVvYyBUdSBHaWFtIGRhIGd1YyBuZ2Eg c2F1IGtoaSBkb2FuIGRpZXUgYmluaCBkaSBxdWEuIEFuaDogRGFuIHRyaSkNCg0KKEFuaDogVHJl byBjYSBsZW4gYmllbiBiYW8gZ2lhbyB0aG9uZyBkdSBkaWEgdGhlIGR1bmcga2hvbmcgZGUgZGFu Zy4gVGhhbSBjaGksIGNodWEgaGV0IGRpZXUgYmluaCBwaGFuIHR1ICJiYXQgaGFvIiBjaGF5IHJh IHBoYSBkYW0gZGEgYmkgY29uZyBhbiBuaGFuaCBjaG9uZyBiYXQgZ2l1LiBBbmg6IFZUQ25ld3Mp IA0KDQooQW5oOiBLZXQgdGh1YyBsZSBkaWV1IGJpbmgsIGRpZXUgaGFuaCwgcnVuZyBuZ3VvaSBk byBhbyByYSB0aW0gY2FjaCAidGhvYXQgdGhhbiIga2hpZW4gY2FjIGR1b25nIGtodSB2dWMgdHJ1 bmcgdGFtIEhhIE5vaSBrZXQga2hvbmcgbG9pIHRob2F0IChBbmg6IFZpZXROYW1OZXQpDQoNCihB bmg6IE1vdCBwaHUgbnUga2hvbmcgY2hpdSBub2kgYXAgbHVjIGNoZW4gZXAgY3VhIGRhbSBkb25n IGRhIG5nYXQgeGl1LiBBbmg6IFZUQ25ld3MpIA0KDQpodHRwOi8vc3YtbmllbS5jb20vZm9ydW0v dGEtbi1nYS11LzExMzMtdGEtaS1kaWEtbi1uYS1uLXRyYW5oLWNhZS1wLXNhdS1sYS1oYS1pLWhv YS1oYS1uYS1pLmh0bWwNCg0KSGEgTm9pOiBUYWkgZGllbiBuYW4gdHJhbmgsIGN1b3Agc2F1IExl IGhvaSBob2EgSGEgTm9pDQoNClNhbmcgNC0xLCB0cnVvYyBraHUgdHVvbmcgZGFpIEx5IFRoYWkg VG8sIHJhdCBkb25nIG5ndW9pIGRhbiB4b25nIHZhbyBjdW9wIGNhYyBybyBob2Ega2hpIEJhbiB0 byBjaHVjIExlIGhvaSBwaG8gSG9hIEhhIE5vaSBkYW5nIHRodSBkb24gc2F1IGxlIGJlIG1hYy4g DQoNCkhhbmcgdHJhbSBjaGF1IGhvYSwgY2F5IGNhbmggYmkgZ2lhbSBkYXAgZG8gbmF0IHRydW9j IHN1IGJhdCBsdWMgY3VhIGx1YyBsdW9uZyBhbiBuaW5oLiANCg0KVGhhdCBkYW5nIGJ1b24sIHRo YW0gZ2lhIGN1b3AgaG9hIGxhaSBjbyBjYSBuaHVuZyBjdSBvbmcsIGN1IGJhIHZhIG5hbSB0aGFu aCBudSB0dS4NCkNhYyB2aSBraGFjaCBudW9jIG5nb2FpIGNodW5nIGtpZW4gY2FuaCBuYXkgbGFj IGRhdSBxdWF5IGRpIHZvaSBjYXUgImNyYXp5IiAocXVhIHRlKS4gDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi94YWhvaS8yMDEwMTAvVHVvbmctSG9hbmctdGhhbmgtdGEtdG9pLWhhdS1kYWkt bGUtOTQxNjE5LyAwODozNSwgMTIvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogIlR1b25nIiBI b2FuZyB0aGFuaCB0YSB0b2kgaGF1IERhaSBsZQ0KDQoiQnVjIHR1b25nIiBiYW5nIGJhdCBiYW8g eHVuZyBxdWFuaCBraHUgdHJ1bmcgdGFtIEhvYW5nIHRoYW5oIFRoYW5nIExvbmcgZGEgYmkgeGUg cmFjaCB0YSB0b2kgY2hpIDEgbmdheSBzYXUgRGFpIGxlLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQu dm4vdGlubmhhbmgvMjAxMDEwL2R1YS1uaGF1LXRyb20tY2FwLXRyZW4tZGFpLWxvLVRoYW5nLUxv bmctOTQyMTgwLyAxNjoyMiwgMTQvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogRHVhIG5oYXUg dHJvbSBjYXAgdHJlbiBEYWkgbG8gVGhhbmcgTG9uZw0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQu dm4vdGlubmhhbmgvMjAxMDEwL1NvYy12b2ktaGluaC1hbmgtY28tZ2FpLXRhbS10cmFuLW8tY2F1 LVRoZS1IdWMtOTQxNDYyLyBOZ3V5ZW4gTGFtIDEyOjA1LCAxMS8xMC8yMDEwIChHTVQrNykNCg0K SGEgTm9pOiBTb2Mgdm9pIG1hbiB0YW0gdHJhbiBvIGNhdSBUaGUgSHVjICANCg0KTWFjIGNobyBu aHVuZyBuZ3VvaSB4dW5nIHF1YW5oIGJhbiB0YW4sIGNvIGdhaSB2YW4gdGhhbiBuaGllbiwgdHUg dHUgY29pIGFvIHJvaSB0YW0gbmdheSBiZW4gY2FuaCBjYXUgVGhlIEh1YyBzYW5nIHJ1YyBkZW4u DQoNClRyb25nIGRvYW4gY2xpcCBkYWkga2hvYW5nIDEgcGh1dCwgbGEgaGluaCBhbmggbW90IGNv IGdhaSBsYW4gbHVvdCBjb2kgYW8gdmEgdGFtIG5nYXkgY2FuaCBjYXUuDQoNCkFuaCBjaHVwOiBI aW5oIGFuaCBjbyBnYWkgdGFtIHRyYW4gYmVuIGNhdSBUaGUgSHVjIGR1b2MgY2h1cCBsYWkgdHUg Y2xpcC4NCg0KU2F1IGtoaSBkb2FuIGNsaXAgYmkgbGFuIHRydXllbiB0cmVuIG1hbmcgZGEgbmhh bmggY2hvbmcgdGh1IGh1dCBkdW9jIGhvbiA3My4wMDAgbHVvdCBuZ3VvaSB4ZW0uDQoNCkRhIHNv IGRldSB0byByYSBiaSBzb2MsIHZhIHBoYW4gbm8gdHJ1b2MgdmllYyBsYW0gdGhpZXUgc3V5IG5n aGkgY3VhIGNvIGdhaSB0YW0gdHJhbiB0cm9uZyANCmNsaXAgbmhhdCBsYSB2aWVjIGxhbSB0aGll dSB2YW4gaG9hIG5heSBsYWkgZGllbiByYSBsbyBsaWV1IG5nYXkgdGFpIG5vaSBkYW5nIGxhIHRh bSBkaWVtIA0KY2hvIGNhYyBob2F0IGRvbmcgY2hhbyBtdW5nIERhaSBsZSAxLjAwMCBuYW0uIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL1RhbS1iaWV0LWJhLXJhbmct aGFtLXZpLWRhaS1sZS05NDE2NDAvIDA5OjIxLCAxMi8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9p OiAxIG5ndW9pIGJpIGx1bmcgbGF5IGJhIHJhbmcgaGFtIHZpIGRhaSBsZQ0KDQpodHRwOi8vdmll dG5hbW5ldC52bi94YWhvaS9jaHV5ZW5kb25ndHJlLzIwMTAxMC9Db25nLWRvbmctbWFuZy1waGFu LW5vLXZvaS1tYW4tdGFtLXRpZW4tby1Iby1HdW9tLTk0MTYyMS8gS2ltIE1pbmggQ2FwIG5oYXQg bHVjIDA4OjQ3LCBUaHUgQmEsIDEyLzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IENvbmcgZG9u ZyBtYW5nIHBoYW4gbm8gdm9pIG1hbiAndGFtIHRpZW4nIG8gSG8gR3VvbQ0KDQoiVGhhdCB0aG8g YmkgdmEgdm8gdmFuIGhvYSBoZXQgbXVjLiBHaXVhIGNob24gZG9uZyBuZ3VvaSBvIG1vdCBub2kg bGluaCB0aGllbmcgbmh1IEhvIA0KR3VvbSBzYW8gbGFpIHh1YXQgaGllbiBuaHVuZyBoaW5oIGFu aCBuaG8gbmh1b2Mgbmh1IHRoZSBuYXk/IER1dCBkYXkgdGhhbiANCmtpbmguLi5uZ3VvbmchIiwg bW90IGN1IGRhbiBtYW5nIHBoYW4gbm8gc2F1IGtoaSB4ZW0geG9uZyBkb2FuIGNsaXAgdGFtIHRp ZW4gbyBIbyANCkd1b20uDQoNCiogIFNvYyB2b2kgY28gZ2FpIHRhbSB0cmFuIG8gY2F1IFRoZSBI dWMgDQoNCkRvYW4gY2xpcCBkYWkgNTkgZ2lheSBxdWF5IGNhbmggbW90IGNvIGdhaSB0YW0gdHJh biBiZW4gY2F1IFRoZSBIdWMgZHVvYyB0dW5nIGxlbiANCm1hbmcgbmdheSA4LzEwIHZ1YSBxdWEu IENoaSB0cm9uZyB2b25nIGhhaSBuZ2F5LCBjbGlwIG5heSBkYSB0aHUgaHV0IGdhbiA4MC4wMDAg bHVvdCANCm5ndW9pIHhlbS4gTmdheSBzYXUga2hpIGRvYW4gY2xpcCBsYW4gdHJ1eWVuIHRyZW4g Y2FjIGRpZW4gZGFuLCBjb25nIGRvbmcgbWFuZyBoZXQgc3VjIA0KcGhhbiBubyB0cnVvYyB2aWVj IGxhbSB0aGlldSBzdXkgbmdoaSBjdWEgY28gZ2FpLiANCiJPaSB0cm9pIG9pIHNob2NrIHF1YSIs ICJ0aGF0IGxhIHZvIHZhbiBob2EiLCAiZGF1IG9jIGNvIG5heSBjaGFjIGxhIGNvIHZhbiBkZSIu Li4gbGEgbmh1bmcgDQpwaGFuIHVuZyBkYXUgdGllbiBjdWEgY3UgZGFuIG1hbmcgdHJ1b2MgaGFu aCBkb25nIHZvIHR1IHF1YSBtdWMgbmF5Lg0KDQooQW5oOiBIYW5oIGRvbmcga2hvYSB0aGFuIHRh bSBnaXVhIGNob24gZG9uZyBuZ3VvaSBjdWEgY28gZ2FpIHRyb25nIGNsaXAga2hpZW4gY3UgZGFu IA0KbWFuZyByYXQgcGhhbiBuby4gQW5oIGNodXAgdHUgY2xpcCkNCg0KSGFuaCBkb25nIGtob2Eg dGhhbiB0YW0gZ2l1YSBjaG9uIGRvbmcgbmd1b2kgdmFvIGR1bmcgdGhvaSBkaWVtIGRpZW4gcmEg RGFpIGxlIDEwMDAgDQpuYW0gVGhhbmcgTG9uZyAtIEhhIE5vaSBjYW5nIGtoaWVuIGN1IGRhbiBt YW5nIGJ1YyB4dWMgaG9uLiAiU2FvIGNvIG5odW5nIG5ndW9pIA0KdHJvIHRyZW4gbmh1IHRoZSBu YXkgbmhpLiBLaG9uZyBiaWV0IGR1IGtoYWNoIG5oaW4gdmFvIHNlIG5naGkgZ2kgdmUgc3UgZHV5 ZW4gZGFuZyBjdWEgDQpuZ3VvaSBwaHUgbnUgVmlldCBOYW0uIFRoYXQgZGFuZyBidW9uIiwgbmlj a25hbWUgZHVjaGFpMTAwMCBiYXkgdG8uDQoNClRyZW4gZGllbiBkYW4gdHV1LnZuLCBtb3QgYmFu IHRyZSBjbyBuaWNrbmFtZSBwYW5kYV9iYW1ib28gbGVuIHRpZW5nIGdheSBnYXQgaG9uOiANCiJH aXVhIGNhaSBraG9uZyBraGkgbmFvIG5oaWV0LCB0aGllbmcgbGllbmcgdmEgY3VuZyByYXQgdmFu IGhvYSBjdWEgbmdoaW4gbmFtIFRoYW5nIA0KTG9uZyBsYWkgeHVhdCBoaWVuIG5odW5nIGhpbmgg YW5oIG5obyBuaHVvYyBuaHUgdGhlIG5heS4gVGhhdCBsYSB1YyBxdWEgZGkhIi4NCg0KTW90IHNv IGN1IGRhbiBtYW5nIGNobyByYW5nIGhhbmggZG9uZyBuYXkga2hvbmcgY2hpIGxhbSB4YXUgZGkg aGluaCBhbmggdGhpZW5nIGxpZW5nIA0KY3VhIEhhIE5vaSBtYSBjb24gdGhlIGhpZW4gc3UgeHVv bmcgY2FwIGRhbyBkdWMgY3VhIG1vdCBibyBwaGFuIGdpb2kgdHJlLiANCg0KIkhldCB0aG9hdCB5 IG11bmcgdHV5ZW4gVmlldCBOYW0gdm8gZGljaCBBRkYsIGxheSBzb25nIGdhdSBib25nLCBnaW8g bGFpIHRhbSB0cmFuIGdpdWEgDQpobywgdGhhdCBsYSBjbyBuaGlldSBjYWNoIGRlIG5vaSB0aWVu ZyBraGFjIG5oYXUgbmhpPyIsIEVsYmVyLCB0aGFuaCB2aWVuIGN1YSBkaWVuIGRhbiANCndlYnRy ZXRobyBjdW5nIGRvbmcgcXVhbiBkaWVtLg0KDQpLaG9uZyBjaGkgbGVuIGFuIGhhbmggZG9uZyB4 YXUgeGkgY3VhIGNvIGdhaSwgY3UgZGFuIG1hbmcgY29uIGJheSB0byBidWMgeHVjIHZvaSANCm5o dW5nIG5ndW9pIGR1bmcgeGVtLCBkYW5nIGxlIHBoYWkgbGVuIHRpZW5nIG5nYW4gY2FuIGhvYWMg YmFvIHZvaSBkYW4gcGhvbmcgbyBIbyBHdW9tIHRoaSBsYWkgaG8gcmVvIGxheSBtYXkgYW5oLCBk aWVuIHRob2FpIHJhIGNodXAuDQoNClZhIGNhbmcgcGhhbiB1bmcgZ2F5IGdhdCBob24gdm9pIG5n dW9pIHF1YXkgY2xpcCB2YSB0dW5nIGNsaXAgbGVuIG1hbmcuDQoNCkxlbiBhbiBuZ3VvaSB0dW5n IGNsaXAgbGVuIG1hbmcsIGNhYyBjdSBkYW4gbWFuZyBkYSBrZXUgZ29pIG5oYXUgeG9hIGNsaXAg ZGUgaGFuIGNoZSANCnN1IGxhbiB0cnV5ZW4gaGluaCBhbmggeGF1IHhpLCBjdW5nIG5oYXUgeG9h IG1vIHZldCBkZW4gbmF5LiANCg0KTmlja25hbWUgcGFuZGFfYmFtYm9vIGxlbiB0aWVuZzogIlRo b2kgdGhvaSBjYSBuaGEgb2khIER1bmcgbGFpIG5hbyEgQ2FuZyB0aGUgbmF5IA0KY2FuZyBsYW0g eGF1IG1pbmggZGkgZGF5LiBIYXkgY29pIG5vIGNoaSBsYSBtb3QgdmFuIGRlIGJhdCBjYXAgZGEg cXVhLiBDbyBhbmggbW9kIG5hbyANCnBodSB0cmFjaCBkb25nIGR1bSBjYWkgcGljIG5heSB2b2ku IFRoYW5rcyIuIA0KDQpodHRwOi8vdGludHVjLnRpbW5oYW5oLmNvbS94YS1ob2kvMjAwOTAzMTAv MzVBOTBDQUUvSGEtTm9pLUtoYXAtbm9pLXRoYW5oLW5oYS12ZS1zaW5oLWNvbmctY29uZy5odG0N Cg0KSGEgTm9pOiBLaGFwIG5vaSB0aGFuaCBuaGEgdmUgc2luaCBjb25nIGNvbmcgDQoNCmh0dHA6 Ly93d3cudnVpcXVhLmNvbS9jMzEvMjg4ODQ4L3RydW9uZy1jb25nLWFuLXBodW9uZy1reS10cmF0 LXZvaS10aWVuLXRldC1kb2FuaC1uZ2hpZXAgMTIuNDRwbSAwMi0wMy0yMDEwDQoNCkhhIE5vaTog VHJ1b25nIGNvbmcgYW4gcGh1b25nIGt5ICd0cmF0JyB2b2kgdGllbiBUZXQgZG9hbmggbmdoaWVw IChwaHVvbmcgUGh1b25nIExpZXQsIFRoYW5oIFh1YW4sIEhhIE5vaSkgDQoNCmh0dHA6Ly93d3cu ZG90aGkubmV0L05ld3MvVGluLXR1Yy9Eb2ktc29uZy1kby10aGkvMjAwOS8wOC8zQjlBRTgwNC8g MjkvOC8yMDA5LCAwNzo1OCBHTVQrNw0KDQpIYSBOb2k6IFR1IGtoaSBIYSBEb25nIGR1b2MgY29u ZyBuaGFuIGxhIHF1YW4gdHJ1YyB0aHVvYyBUUCBIYSBOb2kgdGhpIHRpbmggdHJhbmcgDQoieGUi IGRhdCBub25nIG5naGllcCBsYW0gbmhhIGxhaSBjYW5nIGxhbiByb25nLi4uIA0KDQpodHRwOi8v dmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTAvZGktZGFpLWxlLUNob2kta2hvbi1raG8tZ2lhLWNh dC1jby05Mzk2NzAvIDA4OjUwLCAwNi8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBEaSBEYWkg bGUgSGEgTm9pIC0gQ2hvaSBraG9uIGtobywgZ2lhICdjYXQgY28nIA0KDQpodHRwOi8vdmlldG5h bW5ldC52bi94YWhvaS8yMDEwMTAveWV1LXJhdS14YW5oLWdpby10cm8tdHJvbmctZGlwLWRhaS1s ZS05MzkwNjEvIDEwOjMyLCAwMy8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiAiWWV1IHJhdSB4 YW5oIiBnaW8gdHJvIHRyb25nIGRpcCBEYWkgbGUgDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5u ZWwvMTk4Ny8yMDEwMDgvSGEtTm9pLVZvLWJhbi14ZS1TSC1naWV0LW5ndW9pLXJvaS1jdW9wLXRp ZW4tMTc2NTgyMC8gMzAvMDgvMjAxMCAyMDo0Mzo1NyANCg0KSGEgTm9pOiBWbyBiYW4geGUgU0gs IGdpZXQgbmd1b2kgcm9pIGN1b3AgdGllbg0KDQpodHRwOi8vZXZhLnZuL2V2YS10YW0tY2h1eWVu L2hhLW5vaS10aHVlLW5ndW9pLWdpZXQtY29uLWNob25nLXZvaS1naWEtMTUwLXRyaWV1LWM2NmEz OTY5Ni5odG1sIDIwLzA5LzIwMTAsIDEzOjU4IA0KDQpIYSBOb2k6IFRodWUgbmd1b2kgZ2lldCBj b24gY2hvbmcgdm9pIGdpYSAxNTAgdHJpZXUgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94 YWhvaS8yMDEwMTAvSGEtTm9pLVNhcC1uaGEtNS10YW5nLWRhbi1ob2FuZy1sb2FuLTk0MzI1My8g VnUgRGllcCAxMDo1MywgMTkvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogU2FwIG5oYSA1IHRh bmcsIGRhbiBob2FuZyBsb2FuDQoNClZhbyBsdWMgM2ggc2FuZyAxOS8xMCwgbW90IHRpZW5nIG5v IHZhbmcgdHJvaSBuaHUgZG9uZyBkYXQgZG8gc2FwIG5oYSB0YWkgc28gOTEsIHBobyANCkhhbmcg TWEgKHF1YW4gSG9hbiBLaWVtLCBIYSBOb2kpIGtoaWVuIGNobyBuZ3VvaSBkYW4geHVuZyBxdWFu aCBwaGFpIGNoYXkgdGFuIGxvYW4uDQoNCmh0dHA6Ly93d3cudGhlc2FpZ29udGltZXMudm4vSG9t ZS90aG9pc3Uvc3VraWVuLzEzMDkwLyAxMS8xMi8yMDA4LCAwOTo0OSAoR01UKzcpDQoNCkhhIE5v aTogQ2hpIHNvIG5hbmcgbHVjIGNhbmggdHJhbmggY2FwIHRpbmggUENJIDIwMDggY3VhIEhhIE5v aSB0dXQgaGFuZyANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAw OTQ0LzIwMDkxMDMxMjMzNDMzLmFzcHggMzEvMTAvMjAwOSAyMzozNCANCg0KSGEgTm9pOiBIYW5o IHRyaW5oIGxhbiBkYW4gY3VhIHRoaSBoYWkgdnVhIExlIER1IFRvbmcgDQoNCk1vdCB2aSBob2Fu ZyBkZSBzYXUga2hpIG1hdCBnYW4gMzAwIG5hbSwgZGVuIG5heSB2YW4gY2h1YSBkdW9jICJtbyB5 ZW4gbWEgZGVwIi4gDQoNCkdpYW0gZG9jIFRydW5nIHRhbSBHaWFvIGR1YyB0cnV5ZW4gdGhvbmcg dmEgbGljaCBzdSB0aHVvYyBIb2kgS2hvYSBob2MgdGFtIGx5IGdpYW8gZHVjIFZpZXQgTmFtIGto YW5nIGRpbmg6IFRydW9jIG5hbSAxOTk2LCBjaHVuZyB0b2kgZGVuIEJhbyB0YW5nIExpY2ggc3Ug VmlldCBOYW0gKGRpYSBjaGk6IFNvIDEgLSBQaGFtIE5ndSBMYW8gLSBIb2FuIEtpZW0gLSBIYSBO b2kpIHZpZW5nIHZ1YSBMZSBEdSBUb25nIHRoaSB0aGF5IHRoaSB0aGUgTmd1b2kgZHVvYyBkZSBv IG1vdCBjYWkgZ2lhIGJhIHRhbmcgbmh1IG1vdCBoaWVuIHZhdCB0cnVuZyBiYXkgbyBiYW8gdGFu Zy4gDQpTYXUga2hpIGNodW5nIHRvaSBjbyB5IGtpZW4sIGJhbyB0YW5nIGRhIGR1YSB0aGkgaGFp IHZ1YSBMZSBEdSBUb25nIHZhbyBxdWFuIHRhaSBraW5oLCB2YSBuYXkgZHVvYyBiYW8gcXVhbiB0 cm9uZyBwaG9uZyBsYW5oLiBOaHVuZyBkdSBzYW8sIHRyb25nIGRpZXUga2llbiB0aG9pIHRpZXQg bm9uZyBhbSBjdWEgbnVvYyB0YSB2YSBwaGFuIHRoaSB0aGUgY3VhIE5ndW9pIGN1bmcgZGEgYmkg YmllbiBkYW5nLCBjaGFjIGNoYW4gc29tIG11b24gY3VuZyBzZSBiaSBwaGFuIGh1eSBob2FuIHRv YW4uDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL0JpLW1hdC1uZ2hpLWxlLWhvYW4tdGFu Zy12dWEtTGUtRHUtVG9uZy81NC8zNzk3NTMwLmVwaQ0KDQpOZ2hpIGxlIGhvYW4gdGFuZyB2dWEg TGUgRHUgVG9uZyAodmFvIDEwLzEwIGFtIGxpY2ggliBLeSBTdXUgMjAwOSkgDQoNClZheSBsYSBk aSBoYWkgdnVhIExlIER1IFRvbmcgY3VuZyBkdW9jIGhvYW4gdGFuZyBzYXUgY2hhbmcgZHVvbmcg ZGFpIGdpYW4gbmFuIGxhbiBkYW4gDQoNCk5oaWV1IG5ndW9pIGNvIGRpcCBjaHVuZyBraWVuIHRh biBtYXQgdGhhYyBtYWM6ICANCg0KLSBYZSBjaG8gYmFpIHZpIHhhdSB2YSBzbyBzYWkgcXVhIChj byBhbmggY2h1cCB0cmVuIGJhbyksIGtob25nIGdpb25nIGRhbmggY2hvIG1vdCB2aSBWdWE7DQot IERvYW4geGUgZGFuIGR1b25nIGNodWEgbGFtIHRvdCBuaGllbSB2dTsgDQotIEtodSBkYXQgbGFt IGxhbmcgbW8gYnVhIGJvbjsgDQotIEJhbyBjaGkga2hvbmcgY28ga2h1IHZ1YyB0YWMgbmdoaWVw OyANCi0gTmd1b2kgZGFuIG11b24geGVtIHBoYWkgIGxlbyB0cmVvIGtoYXAgbm9pLi4uIA0KLSBR dWEgdHJpbmggY2h1YW4gYmkgcXVhIHZvaSB2YW5nLCBnYXAgZ2FwICANCg0KaHR0cDovL3d3dy50 aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQyLzIwMTAxMDEyMTUzMzA5LmFzcHggQmFv IENhbSAxMi8xMC8yMDEwIDE1OjMzIA0KDQpIYSBOb2k6IDMuNDA2IGRhbmcgdmllbiB2aSBwaGFt IHBoYWkgeHUgbHkga3kgbHVhdCwgdHJvbmcgNSBuYW0gDQogIA0KVGhvbmcgdGluIHRyZW4gZHVv YyBjb25nIGJvIHRhaSBIb2kgbmdoaSB0b25nIGtldCBDaHVvbmcgdHJpbmggMDIgdmUgY29uZyB0 YWMgeGF5IGR1bmcgDQpjaGluaCBkb24gRGFuZyBnaWFpIGRvYW4gMjAwNiAtIDIwMTAgZG8gVGhh bmggdXkgSGEgTm9pIHRvIGNodWMgc2FuZyBuYXkgKDEyLjEwKS4gDQoNClRoZW8gb25nIE5ndXll biBEdWMgTWluaCwgUGhvIHRydW9uZyBiYW4gdGh1b25nIHRydWMgQmFuIFRvIGNodWMgVGhhbmgg dXkgSGEgDQpOb2ksIHR1IG5hbSAyMDA2IC0gMjAxMCwgY28gMy40MDYgZGFuZyB2aWVuIHRyb25n IHRvYW4gRGFuZyBibyB2aSBwaGFtIGJpIHh1IGx5IGt5IA0KbHVhdC4gVHJvbmcgZG8sIGNvIDEu MTA4IGNhcCB1eSB2aWVuIGNhYyBjYXAgKGNoaWVtIDMyLDUlKS4NCg0KQ2FjIGhpbmggdGh1YyBr eSBsdWF0IGdvbToga2hpZW4gdHJhY2ggMS4wODkgZGFuZyB2aWVuLCBjYW5oIGNhbyAxLjY0NCwg Y2FjaCBjaHVjIDIwMiwgDQpraGFpIHRydSA0NzEsIHh1IGx5IGhhbmggY2hpbmggMTcxLCB4dSBs eSBiYW5nIHBoYXAgbHVhdCAyNS4gQ28gNTYgY2FuIGJvIGRpZW4gQmFuIA0KdGh1b25nIHZ1IFRo YW5oIHV5IHF1YW4gbHkgdmEgbmhpZXUgY2FuIGJvIHF1YW4sIGh1eWVuLCB0aGkgdXkgdmEgdHVv bmcgZHVvbmcgcXVhbiBseS4NCg0KTGllbiBxdWFuIGRlbiBuaHVuZyB2aSBwaGFtIHRyb25nIGxp bmggdnVjIHBob25nIGNob25nIHRoYW0gbmh1bmcgdmEgY2FjIGJpZXUgaGllbiANCnRpZXUgY3Vj IGtoYWMsIG9uZyBNaW5oIGNobyBiaWV0LCBxdWEga2llbSB0cmEgMS45OTYgZGFuZyB2aWVuIHZh IDM1NyB0byBjaHVjIGRhbmcgY28gDQpkYXUgaGlldSB2aSBwaGFtLCBkYSBrZXQgbHVhbiAxLjQ3 NCBkYW5nIHZpZW4gY28gZGF1IGhpZXUgdmkgcGhhbSAoY2hpZW0gNzMsOCUpLCBwaGFpIA0KdGhp IGhhbmgga3kgbHVhdCA4NTMgdHJ1b25nIGhvcDsga2V0IGx1YW4gMTgyIHRvIGNodWMgRGFuZyBj byBzYWkgcGhhbSAoY2hpZW0gNTElKSwgdGhpIA0KaGFuaCBreSBsdWF0IDMzIHRvIGNodWMgRGFu Zy4gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9TYWktcGhhbS10cm9uZy1xdWFu LWx5LWRhdC1kYWktYmF0LWdpYW0tMy1jdXUtcXVhbi1jaHVjLzIwMDk1LzEzODEzNi5sYW9kb25n IDEzLjUuMjAwOSAxNTozOCAoR01UICsgNykgDQoNCkhhIE5vaTogU2FpIHBoYW0gbmdoaWVtIHRy b25nIHRyb25nIHF1YW4gbHkgZGF0IGRhaSAgDQoNCkNvbmcgYW4gUXVhbiBIb2FuZyBNYWkgLSBI YSBOb2kgdnVhIGJhdCBnaWFtIGJhIGN1dSBjYW4gYm8gcXVhbiB2YSBwaHVvbmcgRGluaCANCkNv bmcsIGRvIGNvIGxpZW4gcXVhbiBkZW4gbmh1bmcgc2FpIHBoYW0gdHJvbmcgcXVhbiBseSBkYXQg ZGFpIHRyZW4gZGlhIGJhbi4gDQoNCkJhIG5ndW9pIGJpIGJhdCBnaWFtIGxhIFRyaW5oIFRoYW5o IEhhIC0gbmd1eWVuIENodSB0aWNoIFVCTkQgcGh1b25nIERpbmggQ29uZywgDQpOZ3V5ZW4gVHJh biBEZSAtIG5ndXllbiBjYW4gYm8gZGlhIGNoaW5oIHBodW9uZyBEaW5oIENvbmcgdmEgRGFuZyBE dWMgQ2F1IC0gbmd1eWVuIA0KcXV5ZW4gdHJ1b25nIHBob25nIGRpYSBjaGluaCBxdWFuIEhvYW5n IE1haS4NCg0KVmFvIHRoYW5nIDYuMjAwNywgY2FuIGN1IHZhbyBobyBzbyBkaWEgY2hpbmggdmEg Y2FjIHRhaSBsaWV1ICBsaWVuIHF1YW4gZG8gcGh1b25nIERpbmggDQpDb25nIGd1aSBsZW4sIFVC TkQgcXVhbiBIb2FuZyBNYWkgZGEgY2FwIDUwIGdpYXkgY2h1bmcgbmhhbiBxdXllbiBzdSBkdW5n IGRhdCBjaG8gDQpjYWMgaG8gZ2lhIGRpbmggdmEgY2EgbmhhbiBvIHBodW9uZyBEaW5oIENvbmcu IFR1eSBuaGllbiwgdGFpIHRob2kgZGllbSBuYXksIG5odW5nIA0KbG8gZGF0IHRyZW4gZGFuZyBs YSBkYXQgbm9uZyBuZ2hpZXAgdmEgY2h1YSBkdW9jIHBoZXAgY2h1eWVuIGRvaSBtdWMgZGljaCBz dSBkdW5nLiANClRoYW5nIDkuMjAwOCwgVUJORCBxdWFuIEhvYW5nIE1haSBsYWkgcmEgcXV5ZXQg ZGluaCB0aHUgaG9pIDUwIHNvIGRvIHRyZW4uDQoNCmh0dHA6Ly93d3cuZG9pc29uZ3BoYXBsdWF0 LmNvbS52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBhcmVudD0wJnpvbmU9OSZJRD0yMTMzICAy OS8xMC8yMDA5LTEyOjQyIFBNIEhvIHNvIG1vaSBnaWFpIG1hdA0KDQpIYSBOb2k6IFNhaSBwaGFt IHRyb25nIHF1YW4gbHkgZGF0IGRhaSB0YWkgQmluaCBNaW5oLCBUaGFuaCBPYWkgKEhhIE5vaSkg LSBMYW5oIGRhbyB4YSBzYWkgLSBkYW4gcGhhaSBjaGl1PyANCg0KTmhpZXUgbmd1b2kgZGFuIGRh IGNvIG1hdCBidWMgeHVjIHZlIHRoYWkgZG8gY29pIHRodW9uZyBjYWMgY28gcXVhbiBuZ29uIGx1 YW4gY3VhIGNoaW5oIHF1eWVuIHhhIA0KDQpUcm9uZyB0aGFuZyA1LjIwMDksIFVCTkQgaHV5ZW4g VGhhbmggT2FpIGxpZW4gdHVjIGNvIDMgdGhvbmcgYmFvIGtldCBsdWFuIHZlIG5odW5nIHZpIHBo YW0gDQp0cm9uZyBxdWFuIGx5IGRhdCBkYWkgY3VhIHhhIEJpbmggTWluaC4gRGlldSBkYW5nIG5v aSwgZGUgZGFuIGRlbiBuaHVuZyB2aSBwaGFtIHRyb25nIHF1YW4gbHkgZGF0IGRhaSBuYXkgY28g c3UgInRpZXAgdGF5IiBjdWEgbmh1bmcgY2FuIGJvIGxhbmggZGFvIHRpZW4gbmhpZW0gdmEgZHVv bmcgDQpuaGllbSBjdWEgVUJORCB4YS4gTmh1bmcgYnVvbiB0aGF5LCBnYW5oIGNoaXUgaGF1IHF1 YSBjaG8gbmh1bmcgdmllYyBsYW0gdGFjIHRyYWNoIA0KY3VhIGNhcCBjaGluaCBxdXllbiBub2kg ZGF5IGtob25nIGFpIGtoYWMgbGFpIGxhIG5odW5nIG5ndW9pIGRhbiBjaGFuIGxhbSB0YXkgYnVu Li4uDQoNClNhaSBwaGFtIG5vaSBzYWkgcGhhbQ0KDQpUcm9uZyB0aG9uZyBiYW8gc28gMTY5L1RC LVVCTkQgY3VhIFVCTkQgaHV5ZW4gVGhhbmggT2FpIGRhIGtldCBsdWFuIHJvOiBUdSB0aGFuZyA3 LjIwMDMgZGVuIGRhdSB0aGFuZyA0LjIwMDQgVUJORCB4YSBCaW5oIE1pbmggZGEgY2hpIGRhbyB0 byBjaHVjIGNobyANCmNhYyB0aG9uIENoYW0sIFRodW9uZywgeGV0IGNhcCBkYXQgbyBjaG8gY2Fj IGhvIHZpIHBoYW0gY2hpZW0gZGF0IHRhaSBraHUgdnVjIGFvIHJhbmggDQpDdWEgVHJhaS0gTWll dSwgYW8gTWEgTGFuZzsgdHJvbmcga2hpIGRhIGNvIGNvbmcgdmFuIGNoaSBkYW8gY3VhIFVCTkQg aHV5ZW4geWV1IGNhdSANClVCTkQgeGEgeHUgbHkgdmkgcGhhbSB0YWkga2h1IEN1YSBUcmFpIC0g TWEgTGFuZyB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQuLi4gDQpEb25nIHRob2ksIFVCTkQg eGEgdHUgeSBxdXkgZGluaCBnaWEgZGF0IHZhIGNoaSBkYW8gY2FjIHRob24gdGh1IHRpZW4gZGF0 IHRyYWkgDQpwaGFwIGx1YXQgZGFuIGRlbiB0aG9uIENoYW0gZGEgdGh1IHRpZW4gY3VhIDcvOSBo byB2b2kgc28gdGllbiBob24gNTcgdHJpZXUgZG9uZyANCm5lbiA3IGhvIGRhIHRpZW4gaGFuaCB4 YXkgZHVuZyBjb25nIHRyaW5oIHRyZW4gZGF0IGxhbiBjaGllbTsgWG9tIFRodW9uZyBkYSB0aHUg DQpjdWEgMTIgaG8gdmEgMjAgaG8gTWEgTGFuZyBob24gNTQwIHRyaWV1IGRvbmcsIG5vcCB2ZSB4 YSAyMDUgdHJpZXUgZG9uZyBjYWMgaG8gDQpkYSBzYW4gbmVuLCBjbyBobyBkYSBrZSBkYSBwaGFu IGRhdCBsYW4gY2hpZW0uIFZpZWMgY2hpIGRhbyB4ZXQgY2FwIGRhdCB0cmVuIGN1YSANClVCTkQg eGEgQmluaCBNaW5oIHRhaSB0aG9pIGRpZW0gbGEgdHJhaSBjYWMgcXV5IGRpbmggcGhhcCBsdWF0 LiANClZpIHZheSwgdGhlbyBVQk5EIGh1eWVuIFRoYW5oIE9haSB0aGkgdHJhY2ggbmhpZW0gdGh1 b2MgdGFwIHRoZSBVQk5EIHhhIG5oaWVtIGt5IDE5OTktMjAwNCwgDQpjYSBuaGFuIHRodW9jIG9u ZyBCdWkgRGFuZyBTdSwgbmd1eWVuIENodSB0aWNoIFVCTkQgeGEgdmEgb25nIE5ndXllbiBLaWVt IERvbmcsIFBDVCANClVCTkQgeGEgdGFpIHRob2kgZGllbSB2aSBwaGFtLiBDb24gZG9pIHZvaSBv bmcgTHV1IFZhbiBEdSB2aSBDaHUgdGljaCBkdW9uZyBuaGllbSB0aGkgDQpwaGFpIGNvIHRyYWNo IG5oaWVtIHRyb25nIHZpZWMgZGUgY2FjIGhvIHhheSBkdW5nIHRyYWkgcGhlcCB0YWkga2h1IHZ1 YyBNaWV1IHZhIGN1bmcgdmkgDQpwaGFtIHF1eSBkaW5oIHZlIHRodWMgaGllbiB0cmluaCB0dSwg dGh1IHR1YyBoYW5oIGNoaW5oIHRyb25nIHF1YW4gbHkgdmEgc3UgZHVuZyBkYXQgZGFpLg0KVHJ1 b2MgZG8sIHRyb25nIHRob25nIGJhbyBzbyAxNjkvVEItVUJORCBjdWEgVUJORCBodXllbiBUaGFu aCBPYWkgY3VuZyBjbyBrZXQgbHVhbiB2ZSB2aWVjIA0KY2FuIGJvIHhhIEJpbmggTWluaCBidW9u ZyBsb25nIGNvbmcgdGFjIHF1YW4gbHkgc3UgZHVuZyBkYXQgZGFpLCB0dSB5IGNobyB0aHVlIHRo YXUgZGF0IA0KdmEgdGh1IHRpZW4gdHJhaSBwaGFwIGx1YXQgdGFpIGtodSB2dWMgQmFjaCBIb2Eg Y3UsIHRob24gQ2hvIHhhIEJpbmggTWluaC4gVGhlbyBrZXQgbHVhbiANCnRoaSBVQk5EIHhhIEJp bmggTWluaCBkYSB2aSBwaGFtIGNhYyBxdXkgZGluaCBwaGFwIGx1YXQuIFRyb25nIGtoaSBkbyBs YWkga2hvbmcgeGF5IGR1bmcgDQpkZSBhbiBraGFjIHBodWMgaGF1IHF1YSwga2hvbmcgY28gYmll biBwaGFwIG5nYW4gY2hhbiBraXAgdGhvaSBkZSBjYWMgaG8gZ2lhIGRpbmggdHUgeSANCnhheSBk dW5nIGNvbmcgdHJpbmggdHJhaSBwaGVwIHRyZW4gZGF0IEJhY2ggaG9hIChjdSkgQmluaCBEYSwg Z2F5IHRoYWMgbWFjIGtlbyBkYWkgdHJvbmcgDQpuaGFuIGRhbi4gVmF5IG5lbiwgdHJhY2ggbmhp ZW0gdGh1b2MgdGFwIHRoZSB2YSBsYW5oIGRhbyBEYW5nIHV5LCBVQk5EIHhhIEJpbmggTWluaCBn aWFpIGRvYW4gbmFtIDIwMDQgZGVuIG5heS4NClRyb25nIFRob25nIGJhbyBzbyAxNzAvVEItVUJO RCBjdWEgVUJORCBodXllbiBUaGFuaCBPYWkgY3VuZyBjaGkgdGhlbSBuaGlldSBzYWkgcGhhbSBj dWEgDQp4YSBCaW5oIE1pbmggdHJvbmcgdmllYyBxdWFuIGx5IGRhdCBkYWkgdmEgeGF5IGR1bmcg dHJhaSBwaGVwLiBUaGVtIG1vdCBsYW4gbnVhIGRhIGNoaSBybyANCm5oaWV1IHNhaSBwaGFtIGto YWMgY3VhIGNhYyBjYW4gYm8geGEgY3VhIGNhYyBvbmc6IExlIE1hbmggTGEgKG5ndXllbiBDaHUg dGljaCBVQk5EIHhhKTsgDQpOZ3V5ZW4gS2llbSBEb25nIChQQ1QgVUJORCB4YSk7IFRyYW4gRGlu aCBTaW5oIChLZSB0b2FuIG5nYW4gc2FjaCB4YSk7IEx1dSBWYW4gRHUgKENodSANCnRpY2ggVUJO RCB4YSkuIFRob25nIGJhbyBuYXkga2hhbmcgZGluaDogTmh1bmcgdmkgcGhhbSBjdWEgdGFwIHRo ZSBVQk5EIHhhIEJpbmggTWluaCANCm5oaWVtIGt5IDE5OTQtMTk5OTsgMjAwNC0yMDA5IHZhIGNh YyBjYSBuaGFuIGNhbiBibyBVQk5EIHhhIGRlIGxhaSBoYXUgcXVhIGFuaCBodW9uZyBkZW4gDQp0 cmF0IHR1IHF1YW4gbHkgbmhhIG51b2MgdmUgZGF0IGRhaSwgZ2F5IGJ1YyB4dWMgdHJvbmcgcXVh biBjaHVuZyBuaGFuIGRhbiBkYW4gZGVuIGtoaWV1IA0Ka2llbiB2YSB0aGFjIG1hYyB0cm9uZyBu aGFuIGRhbi4NCg0KQWkgcGhhaSBnYW5oIGNoaXU/DQoNCk1hYyBkdSByYXQgbmhpZXUgbmh1bmcg c2FpIHBoYW0gY3VhIHRhcCB0aGUgY2FuIGJvIHhhIEJpbmggTWluaCBkYSBkdW9jIGNoaSBybywg bmh1bmcgdmFuIA0KZGUgZGF0IHJhIGxhIGFpIHNlIGNoaXUgaGF1IHF1YSBjaG8gbmh1bmcgdGFj IHRyYWNoIG5heT8gVmkgc2FvIHN1IHZpZWMga2VvIGRhaSBkYSBnYW4gDQpjaHVjIG5hbSB0cm9p IG1vaSBkdW9jIGR1YSByYSBhbmggc2FuZz8gdmEgdmllYyB4dSBseSBjYW4gYm8gZGEgdGh1YyBz dSBuZ2hpZW0ga2hhYyB2YSANCmR1IHRpbmggZGFuIGRlIGN1YSBjYWMgY2FwIGNhbyBob24/DQoN CkRlIGxhbSBybyBuaHVuZyB2YW4gZGUgbmF5LCBEUyZQTCBkYSBjbyBjdW9jIHRyYW8gZG9pIHZv aSBiYSBUbyBOZ2EsIFBobyBDaGFuaCB2YW4gcGhvbmcgDQpVQk5EIGh1eWVuIFRoYW5oIE9haSB2 YSBkdW9jIGJpZXQ6IGhpZW4gbmF5IGh1eWVuIGRhbmcga2V0IGhvcCB2b2kgeGEgdHJpZW4ga2hh aSBjYWMgYnVvYyANCmRlIHRodWMgaGllbiBrZXQgbHVhbi4gQ29uIHZpZWMgc3UgdmllYyB2aSBz YW8gYmkga2VvIGRhaSBkYSBkdW9jIGJhIE5nYSBseSBnaWFpIGRvOiANCnZpZWMgc2FwIG5oYXAg SGEgVGF5IHZlIEhhIE5vaT8/PyBLaGFuZyBkaW5oIHZvaSBwaG9uZyB2aWVuLCBvbmcgTmd1eWVu IFZhbiBZZW4sIENodSANCnRpY2ggVUJORCBodXllbiBUaGFuaCBPYWkga2hhbmcgZGluaCwgY2h1 bmcgdG9pIGRhIGNvIGtldCBsdWFuIHZhIHNlIGNoaXUgdHJhY2ggbmhpZW0gdHJ1b2MgVFAgSGEg Tm9pLg0KDQpUaW0gZGVuIFVCTkQgeGEgQmluaCBNaW5oLCBvbmcgTmd1eWVuIERvYW4gVG9hbiwg QmkgdGh1IERhbmcgdXkgeGEgY2hvIHBob25nIHZpZW4gYmlldDogDQpIaWVuIHRhaSB4YSBkYW5n IHhheSBkdW5nIDMgcGh1b25nIGFuIGRlIGdpYWkgcXV5ZXQgbmh1bmcgdG9uIHRhaSBkb2kgdm9p IG5ndW9pIGRhbiB2ZSANCmRhdCBkYWkgZG8gdmllYyBsYW0gdGFjIHRyYWNoIGN1YSBjYWMgY2Fu IGJvIG5odTogVGhhbyBkbyB0b2FuIGJvOyBYdSBseSB0aGVvIE5naGkgZGluaCANCjg0IGhvYWMg Y2hvIHRodWUuIFZpZWMgZHVhIHJhIHBodW9uZyBhbiBsYSB2YXksIG5odW5nIGN1bmcga2hvIGxh eSBkdW9jIGhldCBzdSBkb25nIHRodWFuIA0KY3VhIG5ndW9pIGRhbi4gQ29uIHZlIHZpZWMgeHUg bHkgY2FuIGJvLCBvbmcgVG9hbiBjdW5nIGNobyBiaWV0OiBWZSBtYXQgRGFuZyB1eSwgc2F1IGto aSANCmNvIGtldCBsdWFuLCBjaHVuZyB0b2kgZGEgbmdheSB0dWMga2hhYyB4YXkgZHVuZyBrZSBo b2FjaCBraWVtIGRpZW0gRGFuZyB2aWVuLCBoaWVuIGRhIA0KZHVhIHJhIGNhYyBoaW5oIHRodWMg eHUgbHksIGN1IHRoZToga2hpZW4gdHJhY2ggbW90IGRvbmcgY2hpIGNhbiBibyBkaWEgY2hpbmgs IGNhbmggY2FvIA0KbW90IGRvbmcgY2hpIG5ndXllbiBjaHUgdGljaCBVQk5EIHhhLiBDb24gY2Fj IGNhbiBibyBkdW9uZyBuaGllbSwgZG9uZyBjaGkgQ2h1IHRpY2ggdmEgDQpQQ1QgVUJORCB4YSBk YSBiaSBraGllbiB0cmFjaC4gTmh1bmcgdGhlbyBvbmcgVG9hbiwgZGlldSBkYW5nIGxvIGxhbmcg bmhhdCBoaWVuIG5heSANCmNoaW5oIGxhIHF1eWVuIGxvaSBjdWEgbmd1b2kgZGFuIHNlIGR1b2Mg eGVtIHhldCByYSBzYW8ga2hpIG5ndXllbiBuaGFuIHhheSByYSBoYXUgcXVhIA0KbmF5IGxhaSBv IGNoaW5oIGNhcCBjaGluaCBxdXllbi4NCkRpZXUgaGV0IHN1YyBwaGkgbHkgZGEgeGF5IHJhLCBu Z2F5IHNhdSBraGkgY28gYnVvaSBsYW0gdmllYyB2b2kgb25nIEJpIHRodSBEYW5nIHV5IHhhIA0K QmluaCBNaW5oLCB0cm9uZyBraGkgZGFuZyB0YWMgbmdoaWVwIGJlbiBwaGlhIG5nb2FpIGNvbmcg VUJORCB4YSB0aGkgcGhvbmcgdmllbiBEUyZQTCANCmRhIGJpIG9uZyBMdXUgVmFuIER1LCBDaHUg dGljaCBVQk5EIHhhIEJpbmggTWluaCBkYW5oIGNobyB0aGFpIGRvLCBsb2kgbGUgdGhpZXUgdmFu IGhvYQ0KdmEgeWV1IGNhdSBsdWMgbHVvbmcgY29uZyBhbiB4YSAiYmF0IiB2ZSB0cnUgc28gdXkg YmFuIHZvaSBseSBkbyB0dSB5IGNodXAgYW5oIG1hIGtob25nIA0KeGluIHBoZXAuIFRhaSBwaG9u ZyBsYW0gdmllYyBjdWEgY29uZyBhbiB4YSwgc2F1IHN1IHRvIHRpZW5nIGN1YSByYXQgbmhpZXUg ZG9uZyBjaGkgDQpjb25nIGFuLCBjYW4gYm8geGEuIE1vdCBjYW4gYm8sIGtob25nIHh1bmcgdGVu IGdpb2kgdGhpZXUgbGEgY29uZyBhbiB2aWVuIGxpZW4gdHVjIHR1bmcgDQpyYSBuaHVuZyBjYXUg bm9pIGxhbmcgbWEgY2FjIGNvIHF1YW4gbmdvbiBsdWFuLCByb2kgdHV5ZW4gYm86ICJkZW4gbnVv YyBuYXkgc2UgcXV5ZXQgYW4gDQpkdSB2b2kgYmFvIGNoaSB2YSBwaG9uZyB2aWVuIERTJlBMIi4g S2hvbmcgZHVuZyBsYWkgbyBkbywgY29uZyBhbiB4YSBCaW5oIE1pbmggbGFwIG1vdCANCmJpZW4g YmFuIGNobyByYW5nIHBob25nIHZpZW4gRFMmUEwgZGEgdmkgcGhhbSBwaGFwIGx1YXQgdmUgdmll YyBjaHVwIGFuaCwgZGFuZyB0aW4ga2hvbmcgDQp4aW4gcGhlcCB4YSAodmllYyBuYXkgY2h1bmcg dG9pIHNlIGRlIGNhcCBjdSB0aGUgdHJvbmcgc28gYmFvIHNhdSkuDQpEZW4gbHVjIG5heSBkdSBs dWFuIGNvIHF1eWVuIGRhdCByYSBjYXUgaG9pLCBkb2kgdm9pIGNhYyBjbyBxdWFuIG5nb24gbHVh biBtYSBsYW5oIGRhbyANCnZhIGNhbiBibyBjb25nIGFuIHhhIGNvbiBjbyBuaHVuZyB0aGFpIGRv IGNvaSB0aHVvbmcgdmEgdGhpZXUgdG9uIHRyb25nIGRlbiBuaHUgdmF5LCANCnRoaSBsaWV1IG5n dW9pIGRhbiBub2kgZGF5IGNvbiBiaSBkb2kgeHUgbmh1IHRoZSBuYW8/IFhlbSByYSwgbmh1bmcg c2FpIHBoYW0gdHJvbmcgcXVhbiANCmx5IGRhdCBkYWkgY3VhIHhhIEJpbmggTWluaCBjdW5nIGxh IGNvIGNhbiBuZ3V5ZW4gY3VhIG5vLiANCg0KKERpZXUgdHJhIGN1YSBUcmFuIFF1eWV0KSANCg0K aHR0cDovL3RoZXRoYW92YW5ob2Eudm4vMzc0TjIwMDkxMTAxMTE0NTE5NzA4VDEzMi9oYS1ub2kt bmhpZXUtc2FpLXBoYW0tdHJvbmctcXVhbi1seS1kYXQtZGFpLXZhLXhheS1kdW5nLWNvLWJhbi5o dG0gSy5BIENodSBOaGF0LCAwMS8xMS8yMDA5IDExOjQ1ICANCiAgIA0KSGEgTm9pOiBOaGlldSBz YWkgcGhhbSB0cm9uZyBxdWFuIGx5IGRhdCBkYWkgdmEgeGF5IGR1bmcgY28gYmFuIA0KDQooVFQm VkgpIC0gVGluaCB0dSBkYXUgbmFtIDIwMDksIFRoYW5oIHRyYSBUUCBIYSBOb2kgdmEgY2FjIHF1 YW4sIGh1eWVuLCBzbywgbmdhbmggDQpkYSB0cmllbiBraGFpIHRodWMgaGllbiAzNyBjdW9jIHRo YW5oIHRyYSB2aWVjIGNoYXAgaGFuaCBjYWMgcXV5IGRpbmggY3VhIE5oYSBudW9jIHRyb25nIA0K bGluaCB2dWMgcXVhbiBseSBkYXQgZGFpIHZhIHRodWMgaGllbiBkdSBhbiBkYXUgdHUgeGF5IGR1 bmcgY28gYmFuLg0KDQpDYWMgc2FpIHBoYW0gdmUgcXVhbiBseSBzdSBkdW5nIGRhdCBkYWkgZHVv YyBwaGF0IGhpZW4gY2h1IHlldSB0YWkgbmh1bmcgZGlhIHBodW9uZyANCmRhbmcgdHJvbmcgcXVh IHRyaW5oIGRvIHRoaSBob2EgbWFuaC4gRGllbiBoaW5oIGxhIHRhaSBxdWFuIEhvYW5nIE1haSwg aHV5ZW4gTXkgRHVjLCANCmh1eWVuIE1lIExpbmguLi4gbW90IHNvIG5ndW9pIGRhbiB0dSB5IGNo dXllbiBkb2kgbXVjIGRpY2ggc3UgZHVuZyBkYXQsIG11YSBiYW4gDQpjaHV5ZW4gbmh1b25nIHRy YW8gdGF5LCB4YXkgZHVuZyBuaGEgdHJlbiBkYXQgbm9uZyBuZ2hpZXAsIGNoaW5oIHF1eWVuIGRp YSBwaHVvbmcgdHUgeSANCmJhbiBkYXQuIFZpZWMgeHUgbHkgY3VhIGNoaW5oIHF1eWVuIGRpYSBw aHVvbmcgbW9pIGNoaSBkdW5nIGxhaSBvIHZpZWMgbGFwIGJpZW4gYmFuIHZpIA0KcGhhbSBxdWFu IGx5IGRhdCBkYWksIHRyYXQgdHUgeGF5IGR1bmcgaG9hYyBsZW4ga2UgaG9hY2ggdG8gY3Vvbmcg Y2hlIGRvIGJvIGNvbmcgdHJpbmggDQp4YXkgZHVuZyB0cmFpIHBoZXAgY2h1IGNodWEgdGh1YyBo aWVuIGR1b2MuIFRhaSBjYWMgZHUgYW4gZGF1IHR1IHhheSBkdW5nIGNvIGJhbiwgcGhhbiANCmxv biBjYWMgZG9uIHZpIHR1IHZhbiB0aGlldCBrZSwgdGhhbSBkaW5oIGR1IGFuLCB0dSB2YW4gZGF1 IHRoYXUsIGdpYW0gc2F0IGNvbmcgdHJpbmguLi4gZGEgDQpjaGFwIGhhbmggdGhlbyBxdXkgdHJp bmggeGF5IGR1bmcgY28gYmFuIGRvIE5oYSBudW9jIGJhbiBoYW5oLCBsYXAgY2FjIGJhbyBjYW8g ZGF1IHR1LCANCmJhbyBjYW8ga2luaCB0ZSBreSB0aHVhdCwgdGhhbSBkaW5oIGR1IGFuLCB0aGll dCBrZSBjb25nIHRyaW5oLiANCg0KVHV5IG5oaWVuLCBraGkgdGllbiBoYW5oIHRoYW5oIHRyYSBj b25nIHRhYyBxdWFuIGx5IGRhdSB0dSB4YXkgZHVuZyBjbyBiYW4gdHJlbiBkaWEgYmFuIA0KdGhp IHhhIFNvbiBUYXksIGR1IGFuIGRhdSB0dSB4YXkgZHVuZyBOaGEgdmFuIGhvYSBUcnVuZyB0YW0g aHV5ZW4gVGhhbmggVHJpLi4uIGNvIA0KcXVhbiBUaGFuaCB0cmEgZGEgcGhhdCBoaWVuIG5oaWV1 IHZpIHBoYW0gdHJvbmcgcXVhIHRyaW5oIHRodWMgaGllbi4gQ3UgdGhlIGxhIGNvbiB0b24gDQp0 YWksIHRoaWV1IHNvdCB0cm9uZyB2aWVjIGxhcCwgcGhlIGR1eWV0IGR1IGFuIGRhdSB0dSwgYmFv IGNhbyBraW5oIHRlIGtoYSB0aGksIHF1YW4gbHkgdGFpIA0Kc2FuIHRhaSBjYWMgY29uZyB0cmlu aCB4YXkgZHVuZywgdHUgdmFuIHRoaWV0IGtlLCBkYXUgdGhhdSwgdGhhbSBkaW5oIGR1IHRvYW4s IHRodWMgDQpoaWVuIHRoaSBjb25nIHZhIHRoYW5oIHRvYW4gdm9uIGRhdSB0dS4gTmh1bmcgc2Fp IHBoYW0gdHJlbiBkYSBkdW9jIGNhYyBkb2FuIHRoYW5oIHRyYSBuZXUgY3UgDQp0aGUgdmEga2ll biBuZ2hpIGNvIHF1YW4gY28gdGhhbSBxdXllbiB4dSBseS4NCg0KVHJvbmcgdG9uZyBzbyA4OSBj dW9jIHRoYW5oIHRyYSBLVFhIIG1vaSBkYXkgbyBIYSBOb2kgZGEgcGhhdCBoaWVuIHNhaSBwaGFt LCBraWVuIA0KbmdoaSB0aHUgaG9pIDI3LjkyMCB0cmlldSBkb25nLCAxOC44NjhtMiBkYXQsIGtp ZW4gbmdoaSB4dSBwaGF0IHZpIHBoYW0gaGFuaCBjaGluaCANCjYuMDUxIHRyaWV1IGRvbmcgdmEg eHUgbHkga3kgbHVhdCAxOCBjYW4gYm8sIGRlIG5naGkgY2h1eWVuIGNvIHF1YW4gZGlldSB0cmEg MiB2dS4uLiBUcm9uZyANCmRvLCByaWVuZyBUaGFuaCB0cmEgVFAgSGEgTm9pIGRhIHBoYXQgaGll biB2YSBraWVuIG5naGkgdGh1IGhvaSAxOS41OTMgdHJpZXUgZG9uZywgaGllbiANCmRhIHRodSBo b2kgZHVvYyA1LjU4MCB0cmlldSBkb25nLg0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9R dWFuLWx5LWRhdC1kYWktby1odXllbi1UaGFjaC1UaGF0LUhhLU5vaS1IYW5nLWxvYXQtc2FpLXBo YW0tZG8tY28tdGluaC81OC8zMjQxMDkwLmVwaSBUaHV5IER1b25nIA0KDQpIYSBOb2k6IFF1YW4g bHkgZGF0IGRhaSBvIGh1eWVuIFRoYWNoIFRoYXQsIEhhIE5vaSAtIEhhbmcgbG9hdCBzYWkgcGhh bSBkbyBjbyB0aW5oIA0KDQpUaGFuaCB0cmEgVFAuIEhhIE5vaSB2dWEgdGllbiBoYW5oIGtpZW0g dHJhIGNvbmcgdGFjIHF1YW4gbHkgZGF0IGRhaSB0YWkgaHV5ZW4gVGhhY2ggDQpUaGF0LCBIYSBO b2koSGEgVGF5IGN1KSB0dSBuYW0gMjAwNSBjaG8gZGVuIG5heS4gUXVhIGRvLCBkYSBwaGF0IGhp ZW4gaGFuZyBsb2F0IHNhaSANCnBoYW0gbmh1OiBDaG8gdGh1ZSBkYXQgdHJhbiBsYW4gdHJhaSBx dXkgZGluaDsgYmFuIGRhdCAibnVwIGJvbmciIGhpbmggdGh1YyBjaG8gdGh1ZSBraS0NCm90OyBo b3AgdGh1YyBob2EgZ2lheSB0byBnaXVwIHR1IG5oYW4gdHJvbiB0aHVlOyB0aHUgdGllbiBuZ29h aSBzbyBzYWNoLi4uDQoNCkNobyB0aHVlIGRhdCB0cmFpIHF1eSBkaW5oDQoNClRoZW8gdGhvbmcg a2UgY3VhIGNhYyBjbyBxdWFuIGNodWMgbmFuZywgdHJvbmcgY2FjIG5hbSB0dSAyMDA1LTIwMDcs IFVCTkQgaHV5ZW4gDQpUaGFjaCBUaGF0IGNvIDggaG8gc2FuIHh1YXQgY2EgdGhlIHhpbiB0aHVl IGRhdCBkZSB4YXkgZHVuZyB4dW9uZyBzYW4geHVhdCB2YSB0aHVjIGhpZW4gDQpkdSBhbiBraW5o IGRvYW5oIGRpY2ggdnUgY2hhbiBudW9pLiBUdXkgbmhpZW4sIGxvaSBkdW5nIG5ndW9uIHRhaSBu Z3V5ZW4gdm8gZ2lhIG5heSwgDQptb3Qgc28gbGFuaCBkYW8gImNhbyBjYXAiIGN1YSBVQk5EIGh1 eWVuIFRoYWNoIFRoYXQgZGEgZ2lhbyBkYXQgY2hvIGNhYyBkb24gdmkgdHUgDQpuaGFuIHRodWUg dHJhaSBxdXkgZGluaC4gQ2hpIGRlbiBraGkgdGhhbmggdHJhIHRoYW5oIHBobyB2YW8gY3VvYyB0 aGkgbW9pIGNodXllbiBtb2kgDQpkdW9jIHZvIGxlLiANCg0KQ3UgdGhlLCBuZ2F5IDMwLzUvMjAw NywgVUJORCBodXllbiBUaGFjaCBUaGF0IGRhIGt5IFF1eWV0IGRpbmggc28gODQgY2hvIGhvIG9u ZyANCk5ndXllbiBWYW4gVGllbiB0aHVlIDM4LjU4MW0yIGRhdCB0YWkgeGEgVGFuIFhhIGRlIGxh bSBkdSBhbiB4YXkgZHVuZyB4dW9uZyBzdWEgDQpjaHVhIHZhIGRheSBsYWkgeGUgbyB0by4gVHV5 IG5oaWVuLCBVQk5EIGh1eWVuIFRoYWNoIFRoYXQga2hvbmcgY28gcXV5ZXQgZGluaCBwaGUgDQpk dXlldCBnaWEgZGVuIGJ1LiBEbyBkbywgY2h1IGR1IGFuIGRhIHR1IHRob2EgdGh1YW4gZ2lhIGRl biBidSBHUE1CIHZvaSBjYWMgaG8gZGFuIA0KdGhvbmcgcXVhIFVCTkQgeGEgZGUgdGhhbmggdG9h biBkZW4gYnUuIENoaW5oIHZpIHZheSwgY2hvIGRlbiBuYXkgY29uIDI1IGhvIGRhbiANCmtob25n IGNoaXUgbmhhbiB0aWVuIGRlbiBidSB2YSBkaSBkb2kgR1BNQiwgdHJvbmcga2hpIGRvIHNvIHRp ZW4gY2h1IGRhdSB0dSBjaHVhIGRlbiANCnRheSAyNSBobyBkYW4gdmkgeGEuLi4gZGFuZyBnaXUu IA0KDQpLaG9uZyBuaHVuZyB0aGUsIGRvaSB2b2kga2hvYW4gdGhhbmggdG9hbiBkbyBjaHUgZHUg YW4gZGVuIGJ1IEdQTUIgdm9pIFVCTkQgeGEgDQpUYW4gWGEsIHNvIGRpZW4gdGljaCBkYXQgY29u ZyBpY2ggZG8geGEgcXVhbiBseSBkYSBkdW9jIHF1eSBob2FjaCB0b2FuIGJvIHZhbyBkaWVuIHRp Y2ggDQo1NDggaGEgY3VhIGtodSBDb25nIG5naGUgY2FvIExhbmcgliBIb2EgTGFjIHZhIGRhIGR1 b2MgTmhhIG51b2MgYm9pIHRodW9uZy4gVHV5IA0KbmhpZW4sIGxhbmggZGFvIFVCTkQgeGEgVGFu IFhhIHZhbiBrZSBraGFpIHNvIGRhdCB0cmVuIGRlIG5oYW4gaG9uIDEsMSB0eSBkb25nLg0KDQpO Z29haSByYSwgdGFpIDMgZHUgYW4gY2h1eWVuIGRvaSBjbyBjYXUgY2F5IHRyb25nLCB0cmFpIGNo YW4gbnVvaSBjdWEgMyBuZ3VvaSBnb20gb25nIA0KVGh1YW4sIG9uZyBUaHV5IGNvIGhvIGtoYXUg dGFpIHhhIExhaSBUaHVvbmcsIHZhIG9uZyBLaW0gdGFpIHRoYW5oIHBobyBTb24gVGF5LiBNYWMg DQpkdSwgMyBobyBzbyB4aW4gdGh1ZSBkYXQga2hvbmcgZGFtIGJhbyBuZ3V5ZW4gdGFjIHZhIGNh biBjdSBkZSBjaG8gdGh1ZSBkYXQgdGhvaSBoYW4gMzAgDQpuYW0gbmh1IGtob25nIGNvIGdpYXkg cGhlcCBzYW4geHVhdCBraW5oIGRvYW5oIGN1YSBobyBzYW4geHVhdCBjYSB0aGUsIGNoaSBjbyAx IGJhbiANCmhvcCBkb25nIGNoYW4gbnVvaSB2b2kgdHJhaSBjaGFuIG51b2kgVmlldCBUaGFpIHZl IG5oYW4gZ2lhIGNvbmcgbnVvaSBsb24gc3VhIGNvIHRob2kgDQpoYW4gNSBuYW0gbGEga2V0IHRo dWMuIFR1eSBuaGllbiwga2hvbmcgaGlldSB2aSBseSBkbyBnaSwgbW9pIHF1eSB0cmluaCB0aHUg dHVjIHNhaSBsYSB0aGUsIA0Kbmh1bmcgbmdheSAyLzgvMjAwNywgVUJORCBodXllbiBUaGFjaCBU aGF0IHZhbiAibmhhbSBtYXQiIGt5IGxpZW4gMyBRdXlldCBkaW5oIHNvIA0KMTMxLCAxMzIsIDEz MyBwaGUgZHV5ZXQgY2hvIHRodWUgZGF0IHRodWMgaGllbiBkdSBhbiBjaGFuIG51b2kgdm9pIHRo b2kgaGFuIDMwIG5hbS4gVnUgDQp2aWVjIHRyZW4gY2hpIGJhdCBkYXUgZHVvYyAia2h1aSIgcmEg a2hpIHRoYW5nIDUvMjAwOCwgY28gcXVhbiBjaHVjIG5hbmcgcGhhdCBoaWVuIGNhYyANCmNodSBk dSBhbiBkYSB0dSB0aG9hIHRodWFuIGdpYSBjYSBkZW4gYnUgR1BNQiB2b2kgY2FjIGhvIGNvIHJ1 b25nIG1hIGtob25nIGNvIFF1eWV0IA0KZGluaCBwaGUgZHV5ZXQgZ2lhIGRlbiBidSB0aHUgaG9p IGRhdCBjdWEgVUJORCBodXllbiwgZG9uZyB0aG9pLCBjdW5nIGNoaSBybyAiVm9pIGhvIA0Kc28g ZHUgYW4gdHJlbiBsYSBraG9uZyBjbyBjYW4gY3UgZGUgaHV5ZW4ga3kgY2hvIHRodWUgZGF0IHZv aSB0aG9pIGhhbiAzMCBuYW0iLg0KDQpCYW4gZGF0ICJudXAgYm9uZyIgY2hvIHRodWUga2lvdA0K DQpEb2FuIHRoYW5oIHRyYSBkYSBwaGF0IGhpZW4sIFVCTkQgdGhpIHRyYW4gTGllbiBRdWFuIGRh IGNobyA4IGhvIGRhbiBkYXUgdGhhdSA2LDU4IGhhIA0KZGllbiB0aWNoIGRhdCBjaHVhIHN1IGR1 bmcgdmEgMjIgaG8gZGFuIGRhdSB0aGF1IDEwLDMgaGEgZGllbiB0aWNoIGRhdCBjb25nIGljaCB0 cm9uZyB0aG9pIA0KZ2lhbiB0dSAyNS0zMCBuYW0uIFR1eSBuaGllbiwgdmllYyBjaG8gdGh1ZSB0 cmVuIGRldSB0cmFpIG5ndXllbiB0YWMsIHZpIHBoYW0gdHJvbmcgcXVhbiANCmx5IGRhdCBkYWku IEJvaSBsZSwgdmllYyBreSA4IGhvcCBkb25nIGNobyB0aHVlIHRyZW4gZGllbiB0aWNoIGRhdCBj aHVhIHN1IGR1bmcgdGhlbyBxdXkgDQpkaW5oIHBoYWkgdGh1IHNvIHRpZW4gMTA5LjQwMC4wMDAg ZG9uZyBjdWEgY2FjIGNodSBkdSBhbi4gU29uZywga2hvbmcgaGlldSB2aSAiZG9uZyBjbyIgDQpn aSBtYSBVQk5EIHRoaSB0cmFuIExpZW4gUXVhbiBsYWkgY2hpIHRodSBtb3QgbnVhIHZhIGtob25n IGhhY2ggdG9hbiB2YW8gbmdhbiBzYWNoLiANCk5nb2FpIHJhLCBkb2kgdm9pIDIyIGhvcCBkb25n IHRyZW4gcXV5IGRhdCBjaHVhIHN1IGR1bmcsIHNhbiBwaGFtIGNhYyBobyBwaGFpIG5vcCB0aGVv IA0KaG9wIGRvbmcgbGEgNTYuNTQ3a2cgdGhvYywgbmh1bmcgVUJORCB0aGkgdHJhbiBjaGkgbm9w IDIzLjgxNSBrZy4gU28gY29uIGxhaSBsYSAyMC44ODYgDQprZyBib25nIGR1bmcuLi4gInRoaWV1 IGh1dCIuDQoNClhpbiBkdW9jIG5vaSB0aGVtLCBsYW5oIGRhbyBVQk5EIHRoaSB0cmFuIExpZW4g UXVhbiBjb24gbmdhbmcgbmhpZW4gYmFuIGRhdCBkdW9pIA0KaGluaCB0aHVjIGNobyB0aHVlIGtp b3QgZGFpIGhhbiB0cm9uZyA1MCBuYW0ga2hpIFVCTkQgdGhpIHRyYW4gTGllbiBRdWFuIGt5IDcg aG9wIA0KZG9uZyB2b2kgdHUgbmhhbiBjaG8gdGh1ZSBraW90LCBtb2kgZ2lhbiByb25nIDE4bTIg ZGUgdGh1IHZlIDc4MC40NjkuMDAwIGRvbmcgKGNvbiAxIA0KaG8gbm8gMTAuMDAwLjAwMCBkb25n KS4NCg0KVGhhbmggdHJhIHRoYW5oIHBobyBkYSBraGFuZyBkaW5oICJWaWVjIFVCTkQgdGhpIHRy YW4gTGllbiBRdWFuIGt5IGhvcCBkb25nIGNobyANCnRodWUga2lvdCBjaG8gU2FuIHZvaSB0aG9p IGhhbiA1MCBuYW0gbGEgdHJhaSB0aGFtIHF1eWVuLCB0aHVjIGNoYXQgbGEgYmFuIGRhdC4gQmVu IGNhbmggDQpkbywgVUJORCB0aGkgdHJhbiBMaWVuIFF1YW4gY29uIGNvIGhhbmggdmkgY28geSBs YW0gc2FpIGxlY2ggaG8gc28gcXVhbiBseSBzdSBkdW5nIGRhdCwgDQp2aSBwaGFtIGNoZSBkbyB2 ZSB0YWkgY2hpbmggdHJvbmcgdmllYyB0aHUgc2FuIHBoYW0gdGhhdSBraG9hbiwgY2FuIHBoYWkg ZHVvYyB4ZW0geGV0IA0KeHUgbHkgYmFuZyBwaGFwIGx1YXQuLi4NCg0KIlRpZXAgdGF5IiBjaG8g ZG9hbmggbmdoaWVwLi4uICJsYW0gbGlldSI/DQoNCk5nYXkgMDgvMS8yMDAyIGJhIERvIFRoaSBI dW9uZywgaG8ga2hhdSB0aHVvbmcgdHJ1IGRhbmcga3kgdGFpIHRob24gQnVuZywgeGEgUGh1bmcg DQpYYSwgaHV5ZW4gVGhhY2ggVGhhdCB4aW4gdGh1ZSA4aGEgZGF0IHZvaSB0aG9pIGhhbiA1MCBu YW0gdGFpIHhhIEJpbmggWWVuIGRlIGxhbSBkdSBhbiANCmNoYW4gbnVvaSBnYSBnaW9uZyB0cnVu ZyBibyBtZSB2YSB0cm9uZyBjYXkgYW4gcXVhLiBTYXUga2hpIG5naGUgeSBraWVuIGN1YSBIb2kg ZG9uZyANCnRoYW0gZGluaCBkdSBhbiBodXllbiAoZ29tIHBob25nIFRhaSBjaGluaC1LZSBob2Fj aCwgcGhvbmcgS2luaCB0ZSBIYSB0YW5nIE5vbmcgDQp0aG9uLCBwaG9uZyBOb25nIG5naGllcCB2 YSBQVE5ULCBwaG9uZyBEaWEgY2hpbmgpIG5nYXkgMDMvNi8yMDAyLCBVQk5EIGh1eWVuIA0KVGhh Y2ggVGhhdCBkYSBjbyBRdXlldCBkaW5oIHNvIDQ3NS9RRC1VQiB0aHUgaG9pIDU0Ljg2MG0yIGRh dCBkZSBnaWFvIGNobyBkdSBhbiBjdWEgDQpiYSBIdW9uZywgZG9uZyB0aG9pIG5nYXkgMTEvNy8y MDAyLCBVQk5EIGh1eWVuIFRoYWNoIFRoYXQga3kgUXV5ZXQgZGluaCBzbyA3ODQtIA0KUUQvVUIg cGhlIGR1eWV0IHBodW9uZyBhbiBkZW4gYnUgR1BNQiBkdSBhbiB0YWkgeGEgQmluaCBZZW4uDQoN ClR1eSBuaGllbiwgc2F1IGdhbiAzIG5hbSwgbmdheSAyMS8zLzIwMDUsIFBob25nIFRhaSBuZ3V5 ZW4gliBNb2kgdHJ1b25nIGh1eWVuIFRoYWNoIA0KVGhhdCBtb2kgdGh1YyBoaWVuIHZpZWMga3kg aG9wIGRvbmcgY2hvIHRodWUgNDkuODQ4IG0yIGRhdCB2b2kgY2h1IGR1IGFuLCB2b2kgZ2lhIDI4 MCANCmRvbmcvbTIvMSBuYW0uIFNhdSBraGkgIm5oaW4gbGFpIiB0aGF5IGtob25nIGtob3Agdm9p IHRodWMgdGUgbmVuIHF1YSA0IGxhbiAiZGlldSANCmNoaW5oIiwgbmdheSAyNi8xMi8yMDA3IGhv cCBkb25nIHRodWUgZGF0IGR1IGFuIGN1YSBiYSBIdW9uZyBtb2kgZHVvYyB0aHVjIGhpZW4oIG5o dSANCnZheSBjaGFtIHZvaSB0aHVjIHRlIGxhIDQgbmFtIDMgdGhhbmcgKSB2YSBnaWEgY2hvIHRo dWUgbGFpIGR1b2MgInJ1dCB4dW9uZyIgY29uLi4uIDE4OCANCmRvbmcvbTIvbmFtLiANCg0KS2hv bmcgbmh1bmcgdmF5LCB4YWMgbWluaCB0YWkgQ2hpIGN1YyBUaHVlIFRoYWNoIFRoYXQsIFRoYW5o IHRyYSB0aGFuaCBwaG8gSGEgTm9pIA0KZGEgcGhhdCBoaWVuLCBuZ2F5IDI1LzcvMjAwNywgVUJO RCBodXllbiBUaGFjaCBUaGF0IG1vaSBjaHV5ZW4gaG9wIGRvbmcgdGh1ZSBkYXQgDQpkdSBhbiBj dWEgYmEgSHVvbmcsIHRyb25nIGtoaSB0aHVjIHRlIGRhIGdpYW8gZGF0IGNobyBiYSBuYXkgdHUg bmFtIDIwMDIuIENoaW5oIHZpZWMgDQpsYW0gdHJlbiBkYSBraGllbiBraG9hbiB0aHVlIGRhdCAx MjMuMjUyLjY4NCBkb25nIGJpIHRoYXQgdGh1IGtoaSBiYSBIdW9uZyAiY3VvbmcgDQpxdXlldCIg a2hvbmcgbm9wIHRydW9jIHN1IGJhdCBsdWMgY3VhIENoaSBjdWMgVGh1ZSBUaGFjaCBUaGF0Lg0K DQpUaGFuaCB0cmEgdGhhbmggcGhvIGN1bmcga2llbiBuZ2hpIFVCTkQgaHV5ZW4gVGhhY2ggVGhh dCBraWVtIGRpZW0gbGFtIHJvIHRyYWNoIA0KbmhpZW0gY2FjIGNhbiBibyBjbyBsaWVuIHF1YW4g dHJvbmcgdmllYyB0aGFtIGRpbmggeGV0IGR1eWV0IGR1IGFuIGNobyBiYSBIdW9uZyBkb25nIA0K dGhvaSB0cnV5IHRodSBzbyB0aWVuIHRodWUgZGF0IGxhIDEyMy4yNTIuNjg0IGRvbmcgdmUgbmdh biBzYWNoIE5oYSBudW9jLiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJpLVhhLWhvaS8z MjYyNTAvQ3UtdHJpLUhhLU5vaS1OaGlldS1raWVuLW5naGktdmUtZGF0LWRhaS12YS1naWFvLXRo b25nLmh0bWwgWFVBTiBMT05HIDEzLzA3LzIwMDksIDA1OjA0IChHTVQrNykgDQoNCkN1IHRyaSBI YSBOb2k6IE5oaWV1IGtpZW4gbmdoaSB2ZSBkYXQgZGFpIHZhIGdpYW8gdGhvbmcNCg0KVFQgLSBO Z2F5IG1haSAxNC03LCBIRE5EIHRoYW5oIHBobyBIYSBOb2kgc2UgdGllbiBoYW5oIGt5IGhvcCB0 aHUgMTguIFRyb25nIGNhYyANCmN1b2MgdGllcCB4dWMgdHJ1b2Mga3kgaG9wLCBjdSB0cmkgdGh1 IGRvIG5ldSByYSBuaGlldSBraWVuIG5naGkgdmUgY28gY2hlLCBjaGluaCBzYWNoIHRodSANCmhv aSBkYXQsIGhlIHRob25nIGdpYW8gdGhvbmcgeHVvbmcgY2FwLg0KDQpOaGlldSB0dXllbiBkdW9u ZyBuZ29haSB0aGFuaCBIYSBOb2kgY3UgbXVhIGxhIG5nYXAgKGFuaCBjaHVwIHRhaSBxdW9jIGxv IDMyIC0gZG9hbiANCnRoaSB0cmFuIE5ob24sIGh1eWVuIFR1IExpZW0pIC0gQW5oOiBYdWFuIExv bmcNCg0KQ3UgdHJpIEhhIE5vaSBuaGFuIHhldCBvIHRodSBkbyB0dSB0cnVvYyB0b2kgbmF5IG1v aSB0YWMgZGF0IGxhIHRhYyB2YW5nLCBuaHVuZyBraG9uZyBpdCANCm1hbmggZGF0IGxvbiBuaG8g ZGUgaG9hbmcgaG9hIGNobyBjbyBtb2MgbmFtIG5heSBxdWEgbmFtIGtoYWMuIENodWEgaGV0LCB0 cmVuIGRpYSANCmJhbiB0aGFuaCBwaG8gaGllbiBjbyBuaGlldSBkdSBhbiBkYXUgdHUgeGF5IGR1 bmcgc2FuIGdvbGYgdm9pIGRpZW4gdGljaCB0aHUgaG9pIGRhdCBsb24sIA0KYW5oIGh1b25nIGRl biBkaWVuIHRpY2ggZGF0IHRyb25nIGx1YSB2YSBjdW9jIHNvbmcgY3VhIG5vbmcgZGFuLiBDdSB0 cmkgZG9pIGhvaSBjaGluaCANCnF1eWVuIHRoYW5oIHBobyB4ZW0geGV0IGt5IHRpbmggaGlldSBx dWEgY3VhIGR1IGFuLCBkYWMgYmlldCBjYW4gY2FuIG5oYWMgbG9pIC0gaGFpIHRydW9jIA0Ka2hp IGNhcCBwaGVwIGRhdSB0dSBuaHVuZyBkdSBhbiBuaHUgdmF5Lg0KDQpOb2kgbG8gY3VhIG5ndW9p IGJpIHRodSBob2kgZGF0DQoNCkN1IHRyaSBuZ29haSB0aGFuaCBsYWkgbG8gbGFuZyBuaGlldSBk ZW4gZGF0IHNhbiB4dWF0IG5vbmcgbmdoaWVwLiBUaGVvIHF1eSBkaW5oIGhpZW4gbmF5IA0KY3Vh IHRoYW5oIHBobywgImhvIGdpYSBkaW5oLCBjYSBuaGFuIHRydWMgdGllcCBzYW4geHVhdCBub25n IG5naGllcCBiaSB0aHUgaG9pIHRyZW4gMzAlIA0KZGllbiB0aWNoIGRhdCBub25nIG5naGllcC4u LiBkdW9jIGh1b25nIDEwJSBkYXQgZGljaCB2dSIuIEN1IHRyaSBjaG8gcmFuZyB2aWVjIHhhYyBk aW5oIA0KMzAlIGxhIGtob25nIGNvIGNvIHNvIHBoYXAgbHkgdmEga2hvbmcga2hvYSBob2MsIHRh byBtYXUgdGh1YW4gZ2l1YSBuZ3VvaSBiaSB0aHUgaG9pIA0KdHJlbiAzMCUgdm9pIG5ndW9pIGJp IHRodSBob2kgZHVvaSAzMCUuIE1hdCBraGFjLCBnaWEgZGVuIGJ1IHRodSBob2kgZGF0IHF1YSB0 aGFwIG5odW5nIA0KZ2lhIGRhdCBkaWNoIHZ1IGNhcCBsYWkgY2hvIG5ndW9pIGRhbiByYXQgY2Fv Lg0KDQpDdSB0cmkgaHV5ZW4gVHUgTGllbSBjaG8gcmFuZyBjaGluaCBzYWNoIGhvIHRybyBiYW4g Z2lhbyBkYXQgbywgYmFuIG5oYSBjaHVuZyBjdSBob2FjIA0KYm9pIHRodW9uZyBiYW5nIHRpZW4g a2hpIHRodSBob2kgZGF0IGNvIG5oaWV1IGJhdCBjYXAuIFZpZWMgcXV5IGRpbmggaG8gZ2lhIGRp bmggY28gMS0yIA0KbmhhbiBraGF1LCAxLTIgc3VhdCBydW9uZyBiYW5nIGhvIGdpYSBkaW5oIGNv IG5oaWV1IG5oYW4ga2hhdSwgbmhpZXUgc3VhdCBydW9uZyBsYSANCmtob25nIGhvcCBseS4gS2hp IHRodWMgaGllbiBjaGUgZG8gaG8gdHJvIGJhbmcgZ2lhbyBkYXQgbywgYmFuIG5oYSBjaHVuZyBj dSBob2FjIGJvaSANCnRodW9uZyBiYW5nIHRpZW4gc2UgY28gdGluaCB0cmFuZyBjYW8gYmFuZywg bmhhIG5oaWV1IG5ndW9pIGN1bmcgbmh1IG5oYSBpdCBuZ3VvaSBraGllbiANCmRhbiB0aGFjIG1h Yy4NCg0KQ3VuZyBsaWVuIHF1YW4gZGVuIHZhbiBkZSB0aHUgaG9pIGRhdCwgY3UgdHJpIGNhYyBo dXllbiBuZ29haSB0aGFuaCBjaG8gYmlldCBobyBiaSB0aHUgaG9pIA0KbW90IGRpZW4gdGljaCBs b24gZGF0IHRobyBjdSwgbmh1bmcgcGhhbiBkaWVuIHRpY2ggZGF0IGNvbiBsYWkgbG9uIGhvbiBo YW4gbXVjIGRpZW4gdGljaCANCmRhdCBvIHRvaSB0aGlldSBuZW4ga2hvbmcgZHVvYyB4ZXQgdGFp IGRpbmggY3UgcmF0IHRoaWV0IHRob2kuDQoNCk1hdCBraGFjLCBjaGluaCBzYWNoIGhvIHRybyBv biBkaW5oIGRvaSBzb25nLCBobyB0cm8gZ2lhaSBxdXlldCB2aWVjIGxhbSB2YW4gYXAgZHVuZyAN Cm11YyB0dSBuYW0gMjAwNywgdHJvbmcga2hpIG1vaSBuYW0gdGhlbSB0cnVvdCBnaWEgdmEgbXVj IGx1b25nIHRvaSB0aGlldSBkYSBkdW9jIGRpZXUgDQpjaGluaCBuYW5nIGxlbi4gQ3UgdHJpIHRo YW5oIHBobyBraWVuIG5naGkgbmh1bmcgYmF0IGNhcCB2ZSBjbyBjaGUsIGNoaW5oIHNhY2ggbmF5 IGNhbiANCnBoYWkgZHVvYyBxdWFuIHRhbSwgcmEgc29hdCB2YSBkaWV1IGNoaW5oIG5nYXkgZGUg dGhhbyBnbyBjaG8gbmd1b2kgZGFuLg0KDQpDaGFtIGRhdSB0dSBkdW9uZyBzYSwgZGUgZGlldQ0K DQpTYXUga2hpIG1vIHJvbmcgZGlhIGdpb2ksIHRodSBkbyBjbyB0aGVtIG5oaWV1IHZ1bmcgdmVu IGRvLiBOaHVuZyB2ZSB0b2kgY2FjIHZ1bmcgdmVuLCANCmNhYyBodXllbiB2dW5nIHNhdSBuYXkg Im1vaSB0aGF5IGR1b25nIHNhIG8gZGF5IHRhbiBuYXQgZGVuIHNvLi4uIiAtIGN1IHRyaSBuaGFu IHhldC4gDQoiVHV5ZW4gZHVvbmcgNzAgY28gbHV1IGx1b25nIHhlIGtpbmggaG9hbmcgY2hheSBx dWEgbW9pIG5nYXksIG5oaWV1IGxvYWkgeGUgdHJvbmcgdGFpIA0KMzAtNDAgdGFuIHF1YW4gZGFv IHN1b3QgbmdheSBkZW0uIER1b25nIHNhIG5hbmcgdGhpIGJ1aSwgbXVhIGdpb25nIG5odSBhbyBi dW4gbGF5IiCWIA0KY3UgdHJpIGh1eWVuIFR1IExpZW0gY2hvIGJpZXQuDQoNClRoZW8gY3UgdHJp IG5nb2FpIHRoYW5oLCBuaGlldSB0dXllbiBkdW9uZyB2ZW4gZG8gZGEgcXVhIHRhaSBuZ2hpZW0g dHJvbmcsIHRoYW0gY2hpIA0Ka2hvbmcgY28gbGF5IG1vdCBkb2FuIGxhbmggbGFuLiBOZ3VvaSBk YW4gc3VvdCBuZ2F5IGRlbSBiaSB0cmEgdGFuIGJvaSB0aWVuZyBvbiBsYSBtb3QgDQpjaHV5ZW4s IG5odW5nIHRhaSBuaHVuZyB0dXllbiBkdW9uZyBuYXkgY29uIHRpZW0gYW4gbmhpZXUgbmd1eSBj byB0YWkgbmFuIGdpYW8gdGhvbmcuIA0KQ3UgdHJpIGRvaSBob2kgdGhhbmggcGhvIGNhbiBjbyBn aWFpIHBoYXAgcXV5ZXQgbGlldCwgdGllbiBoYW5oIHJhIHNvYXQgbmdheSBkZSBjbyANCm5odW5n IGRpZXUgY2hpbmggY2hvIG5ndW9pIGRhbiBib3QgbG8uDQoNClJpZW5nIHRhaSBodXllbiBCYSBW aSwgY28gdG9pIDcwJSBraWVuIG5naGkgY3VhIGN1IHRyaSBiYXkgdG8gbm9pIGxvIHZlIHRodWMg dHJhbmcgZGUgZGlldSANCnRyb25nIG11YSBtdWEgYmFvLiBDdSB0cmkgQmEgVmkgZGFuIGNodW5n OiB0cmVuIGRpYSBiYW4geGEgVGh1YW4gTXkgKEJhIFZpKSBjbyBuaGlldSANCmtodSB2dWMgc2F0 IGxvIHRhaSBibyBzb25nIERhLCBoaWVuIG1vdCBzbyBkb2FuIGRhbmcga2UgZG8gZGFuZyBuaHVu ZyBjb24gbmhpZXUgZG9hbiANCmNodWEgZHVvYyBrZSBsYWkuIFRhaSBibyBodXUgc29uZyBEYXks IGRvYW4ga2h1IHZ1YyB0cmFtIGJvbSBkYXUgbGFuZyB0aG9uIEtpbSBCb2ksIA0KeGEgVmFuIEtp bSwgY3VuZyBjbyB0aW5oIHRyYW5nIHNhdCBsbyBuYW5nLg0KDQpDdSB0cmkgbG8ga2hpIG11YSBt dWEgbHUgZGVuLCBzYW4geHVhdCB2YSBkb2kgc29uZyBjdWEgbmd1b2kgZGFuIGNhYyB4YSB2dW5n IHZlbiBzb25nIA0KVGljaCBuaHUgVGh1YW4gTXksIFNvbiBEYSwgVG9uZyBCYXQsIFRheSBEYW5n LCBUaWVuIFBob25nLCBUaHV5IEFuLCBEb25nIFF1YW5nLCANCkNhbSBUaHVvbmcgc2UgY2hpdSBh bmggaHVvbmcgbmFuZyBuZS4gQ3UgdHJpIGRlIG5naGkgdGhhbmggcGhvIGNhbiBzb20gZGF1IHR1 IHhheSANCmR1bmcga2UgY2hvbmcgc2F0IGxvLCBraXAgdGhvaSB0dSBibyBkZSBkaWV1IGRlIGRh bSBiYW8gYW4gdG9hbiB0aW5oIG1hbmcsIHRhaSBzYW4gY3VhIA0Kbmd1b2kgZGFuLg0KDQpPIG5o aWVtIG51b2MgdGhhaQ0KDQpDdSB0cmkgcXVhbiBMb25nIEJpZW4gbGFpIHBoYW4gYW5oIG11YyBk byBvIG5oaWVtIG51b2MgdGhhaSB0YWkga2h1IHZ1YyBuYXkgZGFuZyBxdWEgDQpraW5oIGtodW5n IGRvaSB2b2kgbmd1b2kgZGFuLiBDdSB0cmkgZGFuIGNodW5nIGNhYyBkb24gdmkgbmh1IEJlbmgg dmllbiBEdWMgR2lhbmcgeGEgDQpudW9jIHRoYWkgY2h1YSBxdWEgeHUgbHksIGRvdCByYWMgdGhh aSB5IHRlIGtob25nIGR1bmcgcXV5IGRpbmg7IENvbmcgdHkgVGh1b2Mgc2F0IHRydW5nIA0KKHBo dW9uZyBUaHVvbmcgVGhhbmgpLCBDb25nIHR5IGhvYSBjaGF0IER1YyBHaWFuZywgY2FjIGNvbmcg dHkgbWF5IFgyMCwgWDI2IGx1b24gDQpnYXkgbyBuaGllbSBtb2kgdHJ1b25nLg0KDQpDdSB0cmkg a2llbiBuZ2hpIHRoYW5oIHBobyBjYW4gY28gZ2lhaSBwaGFwIG1vaSB0cm9uZyBjb25nIHRhYyBx dWFuIGx5IHZlIHNpbmggYW4gdG9hbiANCnRodWMgcGhhbS4gVGluaCB0cmFuZyBtYXQgdmUgc2lu aCB0YWkgY2FjIHF1YW4gYW4gdmlhIGhlLCBjYWMgY2hvIGJ1b24gYmFuIHRodWMgcGhhbSANCmto aWVuIG5ndW9pIGRhbiBhbiBnaSBjdW5nIGxvLiBOaGlldSBjdSB0cmkgY2hvIHJhbmcgbmFuIGtl dCB4ZSwgdGFjIGR1b25nIGRhIG5vaSBxdWEgDQpuaGlldSBuaHVuZyBreSBuYW8gY3VuZyB2YW4g Y29uLi4uIHRhYy4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1N1Yy1raG9lL051b2MtdGhhaS1iZW5o LXZpZW4tY2hheS10aGFuZy1yYS1jYW5oLWRvbmcvMzAxOTIyNTYvMjQ4LyBMYW4gSHVvbmcgVmll dCBCYW8gKFRoZW9fRGFuVHJpKSAxNC84LzIwMDcsIDEzOjIyIEdNVCs3IA0KDQpIYSBOb2k6IE51 b2MgdGhhaSBiZW5oIHZpZW4gImNoYXkiIHRoYW5nIHJhIGNhbmggZG9uZw0KDQpUaGVvIFRTLkJT IE5ndXllbiBEdXkgQmFvLCBWaWVuIFkgaG9jIGxhbyBkb25nIHZhIHZlIHNpbmggbW9pIHRydW9u ZywgbnVvYyB0aGFpIA0KYmVuaCB2aWVuIGxhIG1vdCB0cm9uZyBjYWMgbmd1b24gZ2F5IG8gbmhp ZW0gbG9uIGhpZW4gbmF5Lg0KTyBIYSBOb2ksIHRvbmcgbHVvbmcgbnVvYyB0aGFpIGNhYyBiZW5o IHZpZW4ga2hvYW5nIDYuMDAwbTMvbmdheS4gS2V0IHF1YSB4ZXQgbmdoaWVtIA0KdGhhbmggcGhh biBsaSBob2EsIHZpIHNpbmggdmF0IG8gbW90IHNvIGJlbmggdmllbiBub2kgdGhhbmggSGEgTm9p IGNobyB0aGF5IGNhYyBjaGkgDQpzbyBuYXkgZGV1IGNhbyBob24gdGlldSBjaHVhbiBjaG8gcGhl cC4NCg0KVHJlbiB0aHVjIHRlLCBoYXUgaGV0IGNhYyBiZW5oIHZpZW4gbyBIYSBOb2kgZGV1IGNv IGhlIHRob25nIGNhcCB0aG9hdCBudW9jIG5odW5nIA0KaG9hdCBkb25nIGtlbSBoaWV1IHF1YS4g SGUgdGhvbmcgdGhvYXQgbnVvYyBnb20gY2FjIG11b25nIHJhbmggYmkgc3V0IGx1biBnYXkgdW5n IA0KbmdhcCBjdWMgYm8gbGFtIG8gbmhpZW0gbW9pIHRydW9uZy4gQ2FjIG9uZyB0aG9hdCBudW9j IGJhbiBjbyBkdW9uZyBraW5oIHNpZXUgbmhvIA0KKDIwMC01MDBtbSkgaG9uIG51YSBsYWkgYmkg aHUgaG9uZyBuZW4gdGhvYXQga2VtIGdheSB1bmcgbmdhcC4NCg0KVHJvbmcgY2FjIGJlbmggdmll biBkZXUgY28gYmUgdHUgaG9haSBuaHVuZyBoaWV1IHF1YSB0aGFwLiBUYWkgY2FjIGtodSB2ZSBz aW5oLCANCmNhYyBiZSB0dSBob2FpIHZhIGJhbiB0dSBob2FpIHhhIHRoYW5nIHBoYW4gcmEgbWFu ZyBjb25nIGNodW5nIGN1YSB0aGFuaCBwaG8uDQpOZ2hpZW4gY3V1IHRhaSA1IGJlbmggdmllbiBu Z29haSB0aGFuaCBIYSBOb2kgY3VhIFZpZW4geSBob2MgbGFvIGRvbmcgdmEgVmUgc2luaCANCm1v aSB0cnVvbmcgKEJvIFkgdGUpIGNobyB0aGF5IG51b2MgdGhhaSBraG9uZyBkdW9jIHh1IGx5IG1h IHRoYWkgdGhhbmcgcmEgY2FuaCBkb25nLCANCm11b25nIG1hbmcgaG9hYyBjb25nIG5nYW0gY3Vh IHRoYW5oIHBoby4NCg0KaHR0cDovL3RpbnR1Yy5iYWNzaS5jb20vdGluLXktdGUvdGluLXktdGUt dmlldC1uYW0vMjAyMTguaHRtbCBUaHUgYmF5LCAxOCBUaGFuZyAxMCAyMDA4IDE4OjMwIEJBQ1NJ LmNvbSAoVGhlbyBEYW4gVHJpKQ0KDQpIYSBOb2k6IE1hbSBiZW5oIHR1IG51b2MgdGhhaSBiZW5o IHZpZW4gInZvIHR1IiByYSBtb2kgdHJ1b25nIA0KDQoqR2FuIDMwMCB0YW4gcmFjLzUgbmFtOw0K KkdhbiA2MDAwbTMgbnVvYyB0aGFpIG1vaSBuZ2F5LiANCg0KTnVvYyB0aGFpIHR1IGNhYyBwaG9u ZyBwaGF1IHRodWF0LCBwaG9uZyB4ZXQgbmdoaWVtLCB0aGkgbmdoaWVtLCB0dSBjYWMgbmhhIHZl IHNpbmgsIA0Ka2h1IGdpYXQgbGEgY3VhIGJlbmggdmllbi4uLiB2b2kgbmh1bmcgbWFtIGJlbmgg dHJ1eWVuIG5oaWVtLCBuZ3V5IGhpZW0gZGFuZyBuZ2F5IA0KZGVtIGNoYXkgdGhhbmcgdmFvIGhl IHRob25nIHRob2F0IG51b2MgY2h1bmcgY3VhIHRoYW5oIHBobyBtYSBraG9uZyBxdWEgeHUgbHku IA0KDQpIZXQgcmFjIHRoYWkgZGVuIG51b2MgdGhhaQ0KDQpDYWNoIGRheSBob24gMSBuYW0sIGJl bmggdmllbiBWaWV0IER1YyBkYSB0cm8gdGhhbmggdGlldSBkaWVtIHRyb25nIGR1IGx1YW4ga2hp IEN1YyANCmNhbmggc2F0IG1vaSB0cnVvbmcgQzM2IGJhdCBxdWEgdGFuZyBoYW5oIHZpIHZhbiBj aHV5ZW4gY2hhdCB0aGFpIG5ndXkgaGFpIHRyYWkgcGhlcCwgdmkgDQpwaGFtIGNhYyBxdXkgZGlu aCBjdWEgcGhhcCBsdWF0IHZlIGJhbyB2ZSBtb2kgdHJ1b25nIHR1IEJlbmggdmllbiBuYXkuDQoN ClF1YSB4YWMgbWluaCBjdWEgY28gcXVhbiBkaWV1IHRyYSwgdHJvbmcgc3VvdCA1IG5hbSwgZ2Fu IDMwMCB0YW4gcmFjIHRoYWkgeSB0ZSBkYSBkdW9jIA0KdHVvbiByYSB0dSBiZW5oIHZpZW4gbmF5 IG5odSB2byBsbyB0aHVvYyBiYW5nIG5odWEsIHRodXkgdGluaCBjYWMgbG9haSwgZGF5IHRydXll biBkaWNoIA0KYmFuZyBuaHVhLCB0dWkgbmkgbG9uZyBjaHVhIGJvbSB0aWVtLCBib20gdGllbS4u LiBUb2FuIGJvIHNvIHJhYyB0aGFpIG5heSBkdW9jIG5naGllbiANCnRoYW5oIGJvdCBkZSBzYW4g eHVhdCBkbyBnaWEgZHVuZywgdGhhbSBjaGkgY2h1bmcgY29uIGR1b2MgdGFpIGNoZSB0aGFuaCBu aHVuZyBjaGllYyANCnRoaWEgbmh1YSBjaG8gdHJlIGVtIGR1bmchIEJlbmggdmllbiBWaWV0IER1 YyBkYSBiaSBwaGF0IDIwIHRyaWV1IGRvbmcgdmUgaGFuaCB2aSBkbyANCmNoYXQgdGhhaSB0cmFp IHBoZXAgZ2F5IG8gbmhpZW0gbW9pIHRydW9uZy4NCg0KVGhpZXQgdHVvbmcgc2F1IHN1IHZpZWMg dHJlbiwgYmVuaCB2aWVuIFZpZXQgRHVjIHNlIGNvIHkgdGh1YyB0cmFjaCBuaGllbSBob24gZG9p IHZvaSANCm5ndW9pIGRhbiwgdm9pIG1vaSB0cnVvbmcuIFNvbmcgbmdheSAxLzEwLzIwMDggdnVh IHF1YSwgZG9hbiBraWVtIHRyYSBsaWVuIG5nYW5oIGRvIA0KU28gdGFpIG5ndXllbiBtb2kgdHJ1 b25nIEhhIE5vaSBjaHUgdHJpIGRhIHRpZW4gaGFuaCBraWVtIHRyYSB2YSBwaGF0IGhpZW4sIGRv biB2aSBuYXkgDQp0aWVwIHR1YyBnYXkgbyBuaGllbSBtb2kgdHJ1b25nIG5odW5nIGtob25nIHBo YWkgbGEgcmFjIHRoYWkgbWEgYmFuZyB4YSBuZ3VvbiBudW9jIHRoYWkgDQp0cnVjIHRpZXAgcXVh IG1vaSB0cnVvbmcgbWEga2hvbmcgcXVhIHh1IGx5Lg0KDQpLaG9uZyBjaGkgY28gYmVuaCB2aWVu IFZpZXQgRHVjLCBiZW5oIHZpZW4gcGh1IHNhbiBIYSBOb2kgbW9pIG5nYXkgY3VuZyB4YSB0b2kg DQozMDBtMyBudW9jIHRoYWkgYmVuaCB2aWVuIHJhIG1vaSB0cnVvbmcuDQoNCkJlbmggdmllbiBM YW8gcGhvaSBULlUgY28gcXV5IG1vIHBodWMgdnUgNDAwIGdpdW9uZyBiZW5oLiBUaGVvIGhvIHNv IGJlbmggdmllbiANCmN1bmcgY2FwLCBiZW5oIHZpZW4gZGEgY28gaGUgdGhvbmcgeHUgbHkgbnVv YyB0aGFpIHZpIHNpbmgsIHZvaSBjb25nIHN1YXQgNjAwIG0zIG5nYXkgDQpkZW0uIENvbmcgc3Vh dCB4YSB0aGFpIGN1YSBiZW5oIHZpZW4gYmluaCBxdWFuIG1vaSBjaGkgMjUwbTMvbmdheSBkZW0u IFR1eSBuaGllbiwgDQpraGkgZG9hbiBraWVtIHRyYSBsaWVuIG5nYW5oIGN1YSBTbyBUTiZNVCwg Q2FuaCBzYXQgbW9pIHRydW9uZyBraWVtIHRyYSBuZ2F5IDEwLzEwIA0KdnVhIHF1YSB0aGkgbnVv YyB0aGFpIHR1IGJlIHRodSBnb20ga2hvbmcgZHVvYyBib20gbGVuIGhlIHRob25nIHh1IGx5IG1h IGR1b2MgeGEgdHJ1YyANCnRpZXAgcmEgbW9pIHRydW9uZy4gQmVuaCB2aWVuIGN1bmcga2hvbmcg Y28gdGhpZXQgYmkgZG8gbHV1IGx1b25nIG51b2MgdGhhaS4NCg0KVGhlbyB0aW5oIHRvYW4gY3Vh IFNvIFRhaSBuZ3V5ZW4gdmEgTW9pIHRydW9uZyBIYSBOb2ksIGx1b25nIG51b2MgdGhhaSB0dSBj YWMgYmVuaCANCnZpZW4gbyBub2kgdGhhbmggSGEgTm9pIHZhbyBraG9hbmcgNi4wMDBtMy9uZ2F5 LCB0cm9uZyBkbyBwaGFuIGxvbiBudW9jIHRoYWkga2hvbmcgDQpxdWEgaGUgdGhvbmcgeHUgbHks IHhhIHRoYW5nIHZhbyBjb25nIHRob2F0IG51b2MgY2h1bmcgY3VhIHRoYW5oIHBoby4NCg0KTm9p IGJhbyB2ZSBjdW5nIGNoaW5oIGxhIG5vaSBnYXkgaGFpDQoNCk51b2MgdGhhaSBiZW5oIHZpZW4g YmFvIGdvbSBudW9jIHRoYWkgdHUgY2FjIHBob25nIHBoYXUgdGh1YXQsIHBob25nIHhldCBuZ2hp ZW0sIA0KcGhvbmcgdGhpIG5naGllbSwgdHUgY2FjIG5oYSB2ZSBzaW5oLCBraHUgZ2lhdCBsYS4u LiBjbyBraGEgbmFuZyBsYW4gdHJ1eWVuIHJhdCBtYW5oIGNhYyANCnZpIGtodWFuIGdheSBiZW5o LCBuaGF0IGxhIGRvaSB2b2kgbnVvYyB0aGFpIGR1b2MgeGEgcmEgdHUgbmh1bmcgYmVuaCB2aWVu IGhheSBuaHVuZyANCmtob2EgdHJ1eWVuIG5oaWVtLCBsYXkgbmhpZW0uDQoNCk9uZyBKb3JkYW4g UnlhbiAtIG5ndXllbiBUcnVvbmcgZGFpIGRpZW4gdGh1b25nIHRydSBVTkRQIHRhaSBWaWV0IE5h bSBkYSB0dW5nIGNobyANCmJpZXQsIDgwJSBjYWMgdHJ1b25nIGhvcCBiZW5oIHRhdCBvIFZpZXQg TmFtIGhpZW4gbmF5IGxhIGRvIG5ndW9uIG51b2MgYmkgbyBuaGllbS4gDQpDb24gc28gbmF5IGN1 bmcgZHUgZGUgdGhheSBuaHVuZyB0YWMgaGFpIGtpbmggaG9hbmcgZG8gbmd1b24gbnVvYyB0aGFp IGdheSByYSwgdHJvbmcgDQpkbyBtb3QgcGhhbiBsb24gbGEgdHUgbnVvYyB0aGFpIGJlbmggdmll bi4NCg0KTmh1bmcgdmkgc2FvIGNhYyBiZW5oIHZpZW4gdmFuIGNvIHRpbmggeGEgbnVvYyB0aGFp IHkgdGUgdGhhbmcgcmEgbW9pIHRydW9uZyBtYSBraG9uZyANCnF1YSB4dSBseSwgYmF0IGNoYXAg Y2FjIHF1eSBkaW5oIHZlIHBoYXAgbHVhdCBjdW5nIG5odSBuaHVuZyBoYXUgcXVhIG1hIGdheSBy YSB0dSB2aWVjIA0KbGFtIG5heT8NCg0KVmllYyBraG9uZyBjbyBoZSB0aG9uZyB4dSBseSBudW9j IHRoYWkgdGFpIGNhYyBiZW5oIHZpZW4gZGEgdG9uIHRhaSB0dSBuaGlldSBuYW0gbmF5LiANClRo ZW8gbHkgZ2lhaSBjdWEgY2FjIGJlbmggdmllbiBkYW5nICJ2byB0dSIgeGEgbnVvYyB0aGFpIHkg dGUgcmEgbW9pIHRydW9uZyB0aGksIGhvIGNvIHkgDQp0aHVjIHRyb25nIHZpZWMgcGhhaSB4YXkg ZHVuZyBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkgdGFwIHRydW5nLCB0cmFuaCB0aW5oIHRyYW5n IGdheSBvIA0KbmhpZW0gbW9pIHRydW9uZywgbmh1bmcgYmVuaCB2aWVuIGRhbmcgY2hvIGNhcCB0 cmVuIHBoZSBkdXlldCwgY2FwIGtpbmggcGhpLi4uIFZpIHZheSwgDQp0dSBkbyBkZW4gbmF5LCBo byB2YW4gcGhhaSB4YSBudW9jIHRoYWkga2hvbmcgcXVhIHh1IGx5IHJhIG1vaSB0cnVvbmchDQoN Cktob25nIGFpIHBodSBuaGFuIHZpZWMgdGhpZXUga2luaCBwaGkgY28gdGhlIGtoaWVuIGNhYyBi ZW5oIHZpZW4gImx1YyBiYXQgdG9uZyB0YW0iIA0KdHJvbmcgdmllYyBuZ2FuIGNoYW4gbmd1b24g bnVvYyB0aGFpIHkgdGUgZ2F5IG8gbmhpZW0gZG9pIHZvaSBjb25nIGRvbmcsIHZvaSBtb2kgDQp0 cnVvbmcuIFR1eSBuaGllbiwgZGEgY28gbmhpZXUgeSBraWVuIGNobyByYW5nLCBkYXkgY2hpIGxh IGNhaSBjbyBjdWEgbW90IHNvIG5vaSB0aHVjIHN1IA0Ka2hvbmcgbXVvbiBsYW0sIGNobyBkdSBj byBkdSBraW5oIHBoaS4gQ2hhbmcgaGFuIG5odSBvIGJlbmggdmllbiBwaHUgc2FuIEhhIE5vaSwg DQpuaHVuZyB0cm9uZyBraGkgY2hvIGR1b2MgcGhlIGR1eWV0IHhheSBoZSB0aG9uZyB4dSBseSBu dW9jIHRoYWksIEJlbmggdmllbiBuYXkgZGEgDQpkdW9jIHBoZSBkdXlldCBkdSBhbiB4YXkgZHVu ZyB0b2EgbmhhIDExIHRhbmcgcGh1YyB2dSB2aWVjIGtoYW0gY2h1YSBiZW5oIGN1YSBiZW5oIG5o YW4uDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9raW5oX2hvYW5nX251b2NfdGhhaV9iZW5oX3Zp ZW4tMS01OTg2NS5odG1sIFZ1IEhvYW5nIC0gIENhbyBNaW5oICAyMS8wOC8yMDA4IC0gMTY6NDcg LSAgVmlldE5hbU5ldC52biANCg0KSGEgTm9pOiBLaW5oIGhvYW5nIG51b2MgdGhhaSBiZW5oIHZp ZW4NCg0KIC0gTmdvYWkgY2FjIGxvYWkgdmkgdHJ1bmcgdHUgbWF1LCBkaWNoLCBkb20sIHBoYW4g Y3VhIG5ndW9pIGJlbmgsIG51b2MgdGhhaSBiZW5oIHZpZW4gDQpjb24gY28gZHVuZyBkaWNoIGNo dWEgY2FjIGNoYXQgcGhvbmcgeGEgcGhhdCBzaW5oIHRyb25nIHF1YSB0cmluaCBjaGFuIGRvYW4g dmEgZGlldSB0cmkuIA0KRGFuZyBub2kgbyBjaG8sIG51b2MgdGhhaSBiZW5oIHZpZW4gdmFuIGRh bmcgYmkgZG8gdGhhbmcgdmFvIGhlIHRob25nIHRob2F0IG51b2MgY2h1bmcgY3VhIFRQIEhhIE5v aS4gDQogDQpUaGVvIFF1eWV0IGRpbmggNjQvMjAwMy9RRC1UVEcgY3VhIFRodSB0dW9uZyBDaGlu aCBwaHUgdmUgdmllYyB0aHVjIGhpZW4geHUgbHkgDQp0cmlldCBkZSBjYWMgY28gc28gZ2F5IG8g bmhpZW0gbW9pIHRydW9uZyBuZ2hpZW0gdHJvbmcgdGhpIEhhIE5vaSBjbyBkZW4gNiBiZW5oIHZp ZW4gDQpwaGFpIHRodWMgaGllbiBuZ2F5IHF1eWV0IGRpbmggbmF5IGdvbSBjYWMgYmVuaCB2aWVu OiBLLCBWaWV0IER1YywgUGh1IHNhbiBUcnVuZyANCnVvbmcsIFBodSBzYW4gSGEgTm9pLCBEb25n IERhLCBIYWkgQmEgVHJ1bmcgLSBUaGFuaCBOaGFuLg0KDQooQW5oOiBCZW5oIHZpZW4gSyBkYSB4 YXkgeG9uZyBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkpDQogDQpDdXUgdmFuIGN1bmcgc28uLi4g bW9jIGNvbmcgYmVuaCB2aWVuDQoNCk5odW5nIG5nYXkgbmF5LCB0aG9pIHRpZXQgSGEgTm9pIHRo YXkgZG9pIGxpZW4gdHVjIGtoaWVuIGhlIHRob25nIG11b25nIG1hbmcgdmEgY29uZyANCm5nYW0g Y2hheSB0cm9uZyB0aGFuaCBwaG8gdGh1b25nIHUgZG9uZyB2YSBib2MgbXVpIGtobyBjaGl1LiBU aGVvIFNvIFRhaSBuZ3V5ZW4gDQpNb2kgdHJ1b25nIEhhIE5vaSwgbW9pIG5nYXkgY28gNDAwLjAw MG0zIG51b2MgdGhhaSBkbyB2YW8gc29uZyBOaHVlLCBzb25nIERheSBoYXUgDQpoZXQga2hvbmcg cXVhIHh1IGx5LCB0cm9uZyBkbyBjbyBnYW4gbW90IG51YSBsYSBudW9jIHRoYWkgYmVuaCB2aWVu Lg0KDQpBbmggTmd1eWVuIEx1b25nIEh1bmcgKHF1ZSBvIFRpbmggR2lhLCBUaGFuaCBIb2EpIGxl biBIYSBOb2kga2llbSBzb25nIGJhbmcgbmdoZSANCmN1dSB2YW4uIFRydW9jIGRheSBhbmggdGh1 b25nIGR1b2MgY2FjIGNvbmcgbmhhbiB0aHVlIGxhbSBjb25nIHZpZWMgbW9jIHZhIHRob25nIA0K Y2FjIGR1b25nIGNvbmcgYmkgdGFjLCBuaGF0IGxhIG5odW5nIGNvbmcgdGhvYXQgbnVvYyBjaGF5 IHJhIHR1IGNhYyBiZW5oIHZpZW4gdHJvbmcgdGhhbmggcGhvLg0KDQooQ2FuaCBjaGllYyB4ZSBu YXkga2hvYW5nIDEwbSwgdHJvbmcgY3VuZyBtb3QgbmdvaSBuaGEgbGEgbmhhIGFuIGN1YSBCZW5o IHZpZW4gUGh1IHNhbiBITi4gQW5oOiBWLkgpDQoNCiJNaW5oIGxlbiBkYXkgYmFuIHN1YyBsdWMg a2llbSBzb25nLCBhaSB0aHVlIGdpIG1pbmggY3VuZyBsYW0sIG1vYyBjb25nLCBkYW8gbXVvbmcg bGEgDQpjb25nIHZpZWMgdGh1b25nIHh1eWVuIGN1YSBtaW5oLiBUaWVwIHh1YyBtYWkgY3VuZyBx dWVuLCBuaHVuZyBzYXUgbmF5IG1pbmggZGUgeSANCnRoYXkgY2FjIGR1b25nIGNvbmcgdmEgbXVv bmcgbWFuZyBnYW4gYmVuaCB2aWVuIHRoaSBuZ2F5IGNhIGNhYyBjb25nIG5oYW4gaG8gY3VuZyAN Cmtob25nIGxhbSwgaG8gYm8gdGllbiByYSB0aHVlIGhldCIgLSBhbmggSHVuZyBjaG8gYmlldC4N Cg0KU2F1IGdhbiBtb3QgbmFtIGxhbSAibmhpZW0gdnUiIHRoYXkgdmllYyBtYXkgY29uZyBuaGFu IG1vYyBjb25nLCBhbmggSHVuZyBjdW5nIA0KYmlldCBkdW9jIHBoYW4gbmFvIHRhYyBoYWkgY3Vh IHRodSAibnVvYyIgZG8uIFR1eSBuaGllbiwgZG8gbGEgY29uZyB2aWVjIGtpZW0gZHVvYyB0aHUg DQpuaGFwIG5oaWV1IG5oYXQsIG5lbiBhbmggdmFuIGtob25nIHRoZSB0dSBjaG9pLg0KDQpOdW9j IHRoYWkgYmVuaCB2aWVuIHZvbiBkdW9jIGxpZXQgdmFvIGRhbmggbXVjIGNoYXQgdGhhaSBkYWMg YmlldCBuZ3V5IGhhaSBib2kgbmdvYWkgY2FjIA0KbG9haSB2aSB0cnVuZyB0dSBtYXUsIGRpY2gg ZG9tLCBwaGFuIGN1YSBuZ3VvaSBiZW5oLCBjb24gY28gZHVuZyBkaWNoIGNodWEgY2FjIGNoYXQg DQpwaG9uZyB4YSBwaGF0IHNpbmggdHJvbmcgcXVhIHRyaW5oIGNoYW4gZG9hbiwgZGlldSB0cmku IERhYyBiaWV0LCBjYWMgbG9haSBob2EgY2hhdCBkaWV1IHRyaSANCnVuZyB0aHUgdmEgY2FjIHNh biBwaGFtIGNodXllbiBob2EgbmV1IHhhIHRoYW5nIHJhIG1vaSB0cnVvbmcga2hvbmcgcXVhIHh1 IGx5IHNlIGNvIA0Ka2hhIG5hbmcgZ2F5IHF1YWkgdGhhaSwgdW5nIHRodSBjaG8gbmh1bmcgbmd1 b2kgdGllcCB4dWMgdm9pIGNodW5nIG5odSBjb25nIG5oYW4gbmFvIA0KdmV0IGNvbmcgdGhvYXQg bnVvYy4NCg0KVGhlbyBrZXQgcXVhIHBoYW4gdGljaCBjdWEgVHJ1bmcgdGFtIFF1YW4gdHJhYyBj dWEgU28gVGFpIG5ndXllbiBNb2kgdHJ1b25nIEhhIE5vaSwgDQpsb2FpIG51b2MgdGhhaSBuYXkg byBuaGllbSBuYW5nIHZlIG1hdCBodXUgY28gdmEgdmkgc2luaC4gSGFtIGx1b25nIHZpIHNpbmgg Y2FvIGdhcCANCjEwMCAtIDEuMDAwIGxhbiB0aWV1IGNodWFuIGNobyBwaGVwLCB2b2kgbmhpZXUg bG9haSB2aSBraHVhbiBuaHUgU2FsbW9uZWxsYSwgdHUgY2F1LCBsaWVuIA0KY2F1LCB2aXJ1cyBk dW9uZyB0aWV1IGhvYSwgYmFpIGxpZXQsIGNhYyBsb2FpIGt5IHNpbmggdHJ1bmcsIGFtaXAsIG5h bS4gSGFtIGx1b25nIGNoYXQgcmFuIA0KbG8gbHVuZyBjYW8gZ2FwIDItMyBsYW4gdGlldSBjaHVh biBiaW5oIHRodW9uZy4gDQoNCihOaGEgY2h1YSByYWMgQmVuaCB2aWVuIFBodSBzYW4gSE4sIGJl biBkdW9pIGxhIGNvbmcgbmdhbSBkYW4gbnVvYyB0aGFpIGNoYXkgY2h1bmcgDQp2b2kgdGhhbmgg cGhvLiBBbmg6IFYuSCkgDQoNCk8gSGEgTm9pLCB0b25nIGx1b25nIG51b2MgdGhhaSBjYWMgYmVu aCB2aWVuIGtob2FuZyA2LjAwMG0zL25nYXkuIA0KDQpUaGVvIENhbmggc2F0IG1vaSB0cnVvbmcg KEJvIENvbmcgYW4pLCA2IGJlbmggdmllbiBsYTogSywgVmlldCBEdWMsIFBodSBzYW4gVHJ1bmcg DQp1b25nLCBQaHUgc2FuIEhhIE5vaSwgRG9uZyBEYSwgSGFpIEJhIFRydW5nIC0gVGhhbmggTmhh biBkZXUga2hvbmcgY28gaGUgdGhvbmcgeHUgDQpseSBudW9jIHRoYWkgdGFwIHRydW5nIGRhdCB0 aWV1IGNodWFuLiBUYXQgY2EgbnVvYyB0aGFpIHRyb25nIGNhYyBiZW5oIHZpZW4gbmF5IGRldSBk dW9jIA0KZG9uIHZhbyBiZSBwaG90IHJvaS4uLiBkbyB0aGFuZyByYSBoZSB0aG9uZyB0aG9hdCBu dW9jIGNodW5nIGN1YSB0aGFuaCBwaG8uDQogDQpTYXUga2hpIGhvYSB2YW8gaGUgdGhvbmcgdGhv YXQgbnVvYyB0aGFpIHNpbmggaG9hdCwgbmh1bmcgbWFtIGJlbmggbmF5IGNodSBkdSBraGFwIA0K bm9pLCB4YW0gbmhhcCB2YW8gY2FjIGxvYWkgdGh1eSBzYW4sIHZhdCBudW9pLCBjYXkgdHJvbmcs IG5oYXQgbGEgcmF1IHRodXkgY2FuaCB2YSB0cm8gbGFpIA0Kdm9pIGNvbiBuZ3VvaS4gDQogDQpN YWkgbXVhIHNhbSBtYSBxdWVuLi4uIHh1IGx5IG1hbSBiZW5oPw0KIA0KRHVvYyBiaWV0LCBkZSB4 YXkgZHVuZyBtb3QgaGUgdGhvbmcgeHUgbHkgbnVvYyB0aGFpIGRhdCB0aWV1IGNodWFuIG1vaSB0 cnVvbmcgY2hvIG1vdCANCmJlbmggdmllbiBuaG8ga2hvYW5nIDIwMC0zMDAgZ2l1b25nIGJlbmgg dGhpIGNhbiBtdWMga2luaCBwaGkga2hvYW5nIHR1IDEtMSw1IHR5IA0KZG9uZy4gVHJvbmcgdGhp ZXQga2UgY2FuIHBoYWkgY28gbW90IGhvIGNodWEgcm9uZyBraG9hbmcgMTAwbTIgdm9pIGNvbmcg c3VhdCB4dSBseSANCjEuNTAwbTMvbmdheS4gSGUgdGhvbmcgbWF5IHh1IGx5IGdvbSBjYWMga2hv YW5nIGNodWEgbnVvYyBkZW4sIGNvIGJvIHBoYW4gbG9jIHJhYyBvIA0KcGhpYSBuZ29haS4gTnVv YyBkdW9jIGNobyB2YW8gYm9uIGtodSBtdWkgYmFuZyBkdW5nIGRpY2ggQ2xvIGxvbmcsIHNhdSBk byBsb2Mga2h1IHZpIHNpbmgsIA0KaHV1IGNvLiBUb2FuIGJvIGNhYyBraG9hbmcgY2h1YSBudW9j IGR1b2MgeGF5IGtpbiBraG9uZyBjaG8gdGhvYXQgbXVpLiBIZSANCnRob25nIGR1b2MgeGEgY2Fu IDIgbGFuL3R1YW4uDQogDQpMeSB0aHV5ZXQgbGEgbmh1IHZheSBuaHVuZyBzYXUgNCBuYW0gdGh1 YyBoaWVuIHF1eWV0IGRpbmggdHJlbiBjdWEgQ2hpbmggcGh1LCBtb2kgY28gMyANCmJlbmggdmll biB4YXkgeG9uZyBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWksIGxhOiBCZW5oIHZpZW4gSGFpIEJh IFRydW5nLVRoYW5oIE5oYW4sIA0KQmVuaCB2aWVuIEsgdmEgQmVuaCB2aWVuIFBodSBzYW4gVHJ1 bmcgdW9uZy4gUmllbmcgQmVuaCB2aWVuIFZpZXQgRHVjIHRoZW8gZHUga2llbiwgDQp0aGFuZyA4 IG5heSBtb2kgaG9hbiB0aGFuaCB2aWVjIHRoaSBjb25nIGhlIHRob25nIHh1IGx5IG51b2MgdGhh aS4NCg0KQ28gbWF0IHRhaSBCZW5oIHZpZW4gUGh1IHNhbiBIYSBOb2ksIG9uZyBOZ3V5ZW4gSHV5 IEJhbywgR2lhbSBkb2MgYmVuaCB2aWVuIGNobyANCmJpZXQ6ICJTYXUga2hpIGNvIHF1eWV0IGRp bmggY3VhIENoaW5oIHBodSBuYW0gMjAwMywgY2h1bmcgdG9pIGN1bmcgbXVvbiBkdW9jIHhheSAN CmR1bmcgdHJhbSB4dSBseSByYWMgdGhhaS4gVHV5IG5oaWVuLCBkZW4gdGhvaSBkaWVtIGhpZW4g Z2lvIGNodW5nIHRvaSBjaGkgbW9pIHh1IGx5IGR1b2MgDQpjaGF0IHRoYWkgcmFuIGJhbmcgY2Fj aCBraSBob3AgZG9uZyB2b2kgY2FjIGxvIGRvdCB2YSBoYW5nIG5nYXkgaG8gZGVuIHRhbiBiZW5o IHZpZW4gZGUgDQpsYXkgcmFjIG1hbmcgdmUgeHUgbHkuDQoNCihHaWFtIGRvYyBCZW5oIHZpZW4g UGh1IHNhbiBITiwgb25nIE5ndXllbiBIdXkgQmFvLiBBbmg6IFYuSCkNCg0KSGllbiB0YWkgY2h1 bmcgdG9pIG1vaSBuaGFuIGR1b2MgcXV5ZXQgZGluaCBtb2kgbmhhdCBjdWEgVUJORCBUaGFuaCBw aG8gSGEgTm9pIHZlIA0KdmFuIGRlIHh1IGx5IG51b2MgdGhhaS4gVGhlbyBkbywgdmllYyB4YXkg ZHVuZyBraHUgeHUgbHkgZHVvYyBnaWFvIGNobyBjYXAgdHJlbiwgY3UgdGhlIA0KbGEgU28gWSB0 ZSB2YSBVQk5EIFRoYW5oIHBobyBIYSBOb2kgcXV5ZXQgZGluaC4gTXVvbiB4YXkgZHVuZyB0cmFt IHh1IGx5IG51b2MgDQp0aGFpLCBkYW5oIHBoYWkgY2hvIGNhcCB0cmVuIHhldCBkdXlldCIuDQoN CiJDaG8iIHhldCBkdXlldCBtYSB0aGVvIG9uZyBCYW8sIGN1bmcga2hvbmcgYmlldCBybyBjdSB0 aGUgbGEgcGhhaSBjaG8gdHJvbmcgYmFvIGxhdSwgZHUgDQp4YXkgZHVuZyB0cmFtIHh1IGx5IG51 b2MgdGhhaSBjaG8gYmVuaCB2aWVuIG5heSBjaGkgaGV0IGtob2FuZyAzIHR5IGRvbmcuDQogDQpU cm9uZyBraGkgZG8sIG9uZyBCYW8gY2hvIGJpZXQgdGhlbSwgdHJvbmcgbHVjICJjaG8iIGR1b2Mg ZHV5ZXQgeGF5IGhlIHRob25nIHh1IGx5IA0KbnVvYyB0aGFpLCB0aGFuaCBwaG8gZGEgcGhlIGR1 eWV0IGR1IGFuIHhheSBkdW5nIHRoZW0gMSB0b2EgbmhhIDExIHRhbmcgKHZvbiBkYXUgdHUgbGVu IA0KZGVuIGhhbmcgdHJhbSB0eSBkb25nKSBkZSBwaHVjIHZ1IGNvbmcgdGFjIGN1YSBiZW5oIHZp ZW4uIERpZXUgbmF5IGNoYW5nIGtoYWMgZ2kgIm11YSANCmR1b2MgdHJhdSBtYSBraG9uZyBzYW0g ZHVvYyB0aHVuZyIhDQogDQpCYSBOZ3V5ZW4gVGhpIEJpY2ggRGFvLCBHaWFtIGRvYyBCZW5oIHZp ZW4gRGEga2hvYSBEb25nIERhIGN1bmcgdHJhbyBkb2k6ICJMdW9uZyANCm51b2MgdGhhaSBjdWEg YmVuaCB2aWVuIHRydW9jIGtoaSB0aGFpIHJhIG1vaSB0cnVvbmcgY28gZHVvYyBjaHVuZyB0b2kg eHUgbHkgYmFuZyBjaGF0IA0KQ2xvcmFtaW5CLCBjaGF0IG5heSBjbyB0YWMgZHVuZyBraHUga2h1 YW4gbGFtIGdpYW0gYm90IHRpbmggZG9jIGhhaS4gQ29uIHZlIHRpZW4gdHJpbmggDQp4YXkgZHVu ZyB0cmFtIHh1IGx5IG51b2MgdGhhaSBjaG8gcmllbmcgYmVuaCB2aWVuIGNhbiBwaGFpIGR1b2Mg U28gWSB0ZSB0aG9uZyBxdWEgdmEgDQpwaGUgZHV5ZXQiLg0KIA0KQ3VuZyBuaHUgQmVuaCB2aWVu IFBodSBzYW4gSGEgTm9pLCBvIEJlbmggdmllbiBEb25nIERhLCBiYSBEYW8gdmFuIGtob25nIG5h bSBybyANCmtoaSBuYW8gdGhpIGJlbmggdmllbiBtaW5oIGR1b2MgeGF5IGR1bmcgdHJhbSB4dSBs eSBudW9jIHRoYWkuDQogIA0KKEFuaDogQ29uZyBwaGlhIHNhdSBuaGEgY2h1YSByYWMgY3VhIEJl bmggdmllbiBQaHUgc2FuIEhOLiBBbmg6IFYuSCkgDQoNCkNoaW5oIHZpIGtob25nIGNvIGtodSB4 dSBseSBudW9jIHRoYWksIHRyb25nIGtoaSBxdXkgbW8gY2FjIGJlbmggdmllbiBkZXUgcmF0IGxv biwgbW9pIA0KbmFtIHRpZXAgZG9uIGhhbmcgY2h1YyBuZ2hpbiBsdW90IG5ndW9pIGJlbmggbmVu IGhhbmcgbmdheSwgbmVuIG1vdCBsdW9uZyBudW9jIHRoYWkgDQpsb24gdHUgY2FjIGJlbmggdmll biBuYXkgdmFuIGNoYXkgdGhhbmcgcmEgbXVvbmcgbWFuZywgY29uZyBuZ2FtIGN1YSB0aGFuaCBw aG8uDQoNCkNodWEga2UsIGhhdSBoZXQgY2FjIGJlbmggdmllbiBvIEhhIE5vaSBkZXUgY28gaGUg dGhvbmcgY2FwIHRob2F0IG51b2MgZ29tIGNhYyBtdW9uZyANCnJhbmgsIG5odW5nIGRvIGJpIHN1 dCBsdW4gbmVuIHRodW9uZyB4dXllbiBnYXkgdW5nIG5nYXAgY3VjIGJvLCBsYW0gbyBuaGllbSBt b2kgdHJ1b25nLiANCkNhYyBvbmcgdGhvYXQgbnVvYyBiYW4gY28gZHVvbmcga2luaCBzaWV1IG5o byAoMjAwLTUwMG1tKSwgaG9uIG51YSBsYWkgYmkgaHUgDQpob25nIG5lbiB0aG9hdCBudW9jIHJh dCBrZW0uIA0KIA0KVm9pIGx5IGRvIGtob25nIGNvIGtpbmggcGhpIGJvaSBwaHUgdGh1b2MgdmFv IG5nYW4gc2FjaCwgbmhpZXUgYmVuaCB2aWVuIHZhbiBjaGkgbG8gZGF1IA0KdHUgbXVhIHNhbSB0 cmFuZyB0aGlldCBiaSB2YSBtbyByb25nIGRpY2ggdnUga2hhbSBjaHVhIGJlbmggbWEgInF1ZW4i IGRpIHZpZWMgeGF5IA0KZHVuZyBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkuIE5oaWV1IGJlbmgg dmllbiB2YSBoYW5nIGNodWMgY28gc28geSB0ZSBraGFjIHRyb25nIHRoYW5oIA0KcGhvIGN1bmcg dHJvbmcgdGluaCB0cmFuZyBiYW8gZG9uZy4gDQogDQpNb3Qgc28gbm9pIGR1IGRhIGNvIGhlIHRo b25nIHh1IGx5IG51b2MgdGhhaSB0aGkgbGFpIGxvIGxhIHRyb25nIHZpZWMgdmFuIGhhbmggdmEg YmFvIHRyaSANCmRvaSB2b2kgaGUgdGhvbmcgbmF5LiBEZW4ga2hpIGhlIHRob25nIGJpIHF1YSB0 YWksIHh1b25nIGNhcCB0aGkgbGFpIHBoYWkgbmd1bmcgaG9hdCANCmRvbmcuIE51b2MgdGhhaSBs YWkgZG8gdGhhbmcgdmFvIG9uZyBjb25nIHRob2F0IG51b2MgY2h1bmcgY3VhIHRoYW5oIHBoby4u Lg0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vcmFjX3RoYWlfYmVuaF92aWVuX2xhb192dW90X3R1 b25nX3JhX25nb2FpLTYtMTcxNDMuaHRtbCBIb2FuZyBLaHVlICAwOC8wNS8yMDA4IC0gMTE6MzEg LSB2bkV4cHJlc3MubmV0DQoNCkhhIE5vaTogUmFjIHRoYWkgQmVuaCB2aWVuIExhbyAndnVvdCB0 dW9uZycgcmEgbmdvYWkNCg0KQmEgTmd1eWVuIFRoaSBIaWVuICg1OCB0dW9pLCB0aHUgbXVhIHBo ZSBsaWV1KSBiaSBjb25nIGFuIGJhdCBxdWEgdGFuZyBkYW5nIGdvbSA3IGJhbyANCmNodWEgYm9t IGtpbSB0aWVtLCBuaHVhIHRydXllbiBkaWNoLi4uIHZ1YSBkdW9jIHZ1dCByYSBuZ29haSBxdWEg aGFuZyByYW8gY3VhIEJlbmggDQp2aWVuIExhbyB2YSBiZW5oIHBob2kgVHJ1bmcgdW9uZy4NCg0K KiBOaHVhIGxhbSB0dSByYWMgdGhhaSB5IHRlIGN1YyBiYW4gDQoqQ2hlIG9uZyB0aWVtLCBiaW5o IHRydXllbiBkaWNoLi4uIHRoYW5oIGNvYyBuaHVhIA0KDQooTW90IHZ1IHR1b24gcmFjIHkgdGUg YmkgYmF0IHF1YSB0YW5nLiBBbmg6IFAuVi4pIA0KDQpNb3QgbmdheSBzYXUga2hpIHhheSByYSBz dSB2aWVjIHRyZW4sIG5nYXkgNy81LCBDb25nIGFuIEhhIE5vaSBkYSB0YW0gZ2l1IGJhIEhpZW4g ZGUgDQpkaWV1IHRyYSBzdSB2aWVjLiBOZ3VvaSBwaHUgbnUgbmF5IGtoYWksIGNoaWV1IDYvNSwg dGhlbyBoZW4gYmEgdGh1IGdvbSByYWMgdGhhaSB5IHRlIGRvIA0Kbmd1b2kgY3VhIGJlbmggdmll biB0dW9uIHJhLiBEYXkgbGEgbGFuIHRodSBiYXksIGJhIG11YSByYWMga2lldSBuYXksIG1vdCBr ZyBnaWEgNC4wMDAgDQpkb25nLiANCg0KTmdheSBzYXUga2hpIHN1IHZpZWMgYmkgcGhhdCBoaWVu LCBjYW5oIHNhdCBtb2kgdHJ1b25nIEhhIE5vaSBkYSBsYW0gdmllYyB2b2kgQmVuaCB2aWVuLiAN ClRoZW8gZG8sIGNoaWV1IGhhbmcgbmdheSwgcmFjIHRoYWkgcmFuIGR1IDgwIGtnIHNlIGR1b2Mg ZHVhIHZlIGxvIHJhYyBjdWEgYmVuaCB2aWVuIGRlIA0KeHUgbHkuIE5ldSBob20gbmFvIHNvIHJh YyBxdWEgaXQgdGhpIGNobyBkZW4gaG9tIHNhdSB4dSBseS4gVHUgdGhhbmcgMywgdmllYyB0aHUg Z29tIHZhIA0KeHUgbHkgcmFjIHRoYWkgZ2lhbyBjaG8gMiBuaGFuIHZpZW4gaG9wIGRvbmcgY3Vh IGJlbmggdmllbi4gR2FuIGRheSBtb3Qgbmd1b2kgbmdoaSBvbSANCm5lbiBjaGkgY28gTGUgWHVh biBIaWVuIGRhbSB0cmFjaC4NCg0KVGhhbmcgOC05LzIwMDcsIG1vdCBzbyBiZW5oIHZpZW4gbG9u IG8gSGEgTm9pIGJpIHBoYXQgaGllbiBjbyBoaWVuIHR1b25nIG5oYW4gdmllbiANCnR1b24gcmFj IHRoYWkgeSB0ZSByYSBuZ29haSBkZSBiYW4gdm9pIGx5IGRvICJjYWkgdGhpZW4gdGh1IG5oYXAi LiBTYW4gcGhhbSBuaHVhIHR1IHZvIA0KdGh1b2MsIGNoYWkgdHJ1eWVuIGRpY2gsIGtpbSB0aWVt Li4uIHNhdSBkbyBkdW9jIHR1IHRodW9uZyB0YWkgY2hlIHRoYW5oIGRvIGR1bmcgc2luaCANCmhv YXQuIENhYyBjaHV5ZW4gZ2lhIGNhbmggYmFvLCBuZ3VvaSBkdW5nIHBoYWkgdGh1IG5odWEgbmF5 IGNvIHRoZSBnYXAgbmd1eSBoaWVtLCBkbyANCm5oaWV0IGRvIG5hdSBuaHVhIGtob25nIGR1IGRp ZXQgbWFtIGJlbmguIFR1eSBuaGllbiwgbmh1bmcgbmd1b2kgbGllbiBxdWFuIGNoaSBiaSB4dSAN Cmx5IGhhbmggY2hpbmguDQoNCk1vdCBjYW4gYm8gVG9uZyBjdWMgQ2FuaCBzYXQgZGFuaCBnaWE6 ICJMdWF0IGhpbmggc3UgY28gMTAgZGlldSBxdXkgZGluaCB2ZSBjYWMgbG9haSB0b2kgDQpwaGFt IHZlIG1vaSB0cnVvbmcsIG5odW5nIGNvbiBjaHVuZyBjaHVuZy4gTHVhdCBraG9uZyBxdXkgZGlu aCBjdSB0aGUsIHJvIHJhbmcsIGhhbmggDQp2aSB0aGUgbmFvIGR1b2MgY29pIGxhIHhhbSBoYWkg bmdoaWVtIHRyb25nIG1vaSB0cnVvbmcsIGxhbSBsYXkgbGFuIG1hbSBiZW5oLi4uIG5lbiANCmto byBsdW9uZyBob2EgaGFuaCB2aSBkZSB4dSBseSBoaW5oIHN1Lg0KDQpodHRwOi8vdmlldG5hbW5l dC52bi94YWhvaS9kb2lzb25nLzIwMDQvMDYvMTU4NDM0LyBIb2FuZyBIdXkgIDA4OjM0LCAwNy8w Ni8yMDA0IChHTVQrNykNCg0KSGEgTm9pOiBPIGF0IGJhbiB0cnUgc28gY3VhIE5oYSBudW9jIGNo byB0dSBuaGFuDQoNCiJNb3QgbG9haSB2aSBwaGFtIG1vaSIgdGhlbyBjYWNoIGdvaSBjdWEgbmdh bmggY29uZyBhbi4gRG8gbGEgaGllbiB0dW9uZyBoYW5nIGxvYXQgY28gDQpxdWFuLCBob3AgdGFj IHhhLCBkb2FuaCBuZ2hpZXAgdHJlbiBkaWEgYmFuIEhhIE5vaSBhbyBhdCAiYmF5IiBkdSAidHJv IiBkZSBiYW4gZHV0IHRydSBzbywgDQpuaGEgeHVvbmcsIGRhdCBkYWkgZGFuZyB0aHVlIGN1YSBO aGEgbnVvYyBjaG8gdHUgbmhhbiwgbGF5IGhhbmcgdHJhbSB0aSBkb25nIGNoaWEgDQpuaGF1LiBW YSByb2ksIGdpYWkgdGFuISANCg0KKEFuaDogVHJ1IHNvIE5oYSBudW9jIG5heSBkYSBkdW9jIHNv IGh1dSBib2kgdHUgbmhhbi4gQW5oOiBILlQuIEdpYW5nLikNCg0KQW4gdHVvbmcga2hvIHBoYWkg bmhhdCB0cm9uZyBuaHVuZyBhaSBkYSB0dW5nIHNvbmcgcXVhIHRob2kgYmFvIGNhcCB0YWkgSGEg Tm9pLCBsYSANCm5odW5nIGN1YSBoYW5nIHRoaXQsIGN1YSBoYW5nIGdhbyBtYSBwaG8gbmFvIGN1 bmcgY28gdmFpIGNhaSwgcm9pIGNhYyBjdWEgaGFuZyBtYXUgDQpkaWNoLCBiYWNoIGhvYSB2b2kg bmh1bmcgdHUga2luaCBvIG1vLCByYW4gbnV0IGJhbiBtYXkgYmFuaCB4YSBwaG9uZyBjdW5nIGRv LCBkZW4gc2ksIA0KdmFpIHRoZXAgZ2lheSA1IGhhbyAyLi4uICJTYW5oIGRpZXUiIG5oYXQgdGhv aSBheSBwaGFpIGtlIGRlbiBtb3Qgc28gY3VhIGhhbmcgY2F0IHRvYywgDQpjaHVwIGFuaCBjdWEg aG9wIHRhYyB4YSwgcm9pIGNhYyB4dW9uZyBtYXkgbWFjLCB0aGV1IGRhbiBsdWMgbmFvIGN1bmcg bmhvbiBuaGlwLiBDaHUgDQp5ZXUgdGFwIHRydW5nIHRhaSBraHUgdnVjIG5vaSB0aGFuaCBjdSwg Y2FjIGN1YSBoYW5nLCB0cnUgc28gY28gcXVhbiwgaG9wIHRhYyB4YSBuYXkgYmFvIA0KZ2lvIGN1 bmcgZHVvYyB1dSBhaSBvIHZpIHRyaSB0cnVuZyB0YW0gbmhhdCwgbWF0IHRpZW4gdGhvYW5nIHJv bmcsIHRvbSBsYWkgbGEgImRpYSBkaWVtIA0KZGVwIiwgYmUgdGhlIHZhIGhvYW5oIHRyYW5nISBU YXQgY2EgKHRpbmggc28gc28ga2hvYW5nIDcwMCBkaWEgZGllbSkgZGV1IGR1b2MgY2FjIGhvcCAN CnRhYyB4YSwgdG8gY2h1YyBraW5oIHRlLCBjbyBxdWFuIGhhbmggY2hpbmggc3UgbmdoaWVwIHRo b2kgYXkgdGh1ZSBjdWEgTmhhIG51b2MuDQoNClRhIHZlIHRhIGJhbiBuaGEgdGEsIGR1IHRyb25n IGR1IGR1YyBiYW4gbmhhIHZhbiBob24/Pz8NCg0KVGhvaSAibW8gY3VhIiwgbmdheSBjYW5nIHRo dWEgZGFuIG5odW5nIG5ndW9pIGFuICJwaG8gbWF1IGRpY2giLiBHYWNoIHZhIHJvIHJhIHJlIA0K Y3VuZyB0cm8gdmUgZHVuZyBjaHVjIG5hbmcgY3VhIGNodW5nIGNodSBraG9uZyBjb24gZHVuZyB2 YW8gdmllYyB4ZXAgaGFuZyB0cnVvYyANCm5odW5nICJoYW5nIHRoaXQgcXVvYyBkb2FuaCIgbnVh LiBRdWFuIGJhciwgbmhhIGhhbmcsIHRpZW0gZ29pIGRhdSBjYXQgdG9jLCBzaG9wIHF1YW4gDQph bywgbWluaWxhYiByb2kgc3R1ZGlvIGFuaC4uLiBtbyByYSBuaGFuIG5oYW4ga2hpZW4gbmd1b2kg dGEgYnVvbiBjdW9pIGtoaSBuaG8gZGVuIGJvIA0KbWF0IGxhbmggbHVuZyBjdWEgbWF5ICJ4YSB2 aWVuIEhvcCB0YWMgeGEgdW9uIHRvYyIgdHJ1b2Mga2lhLCBoYXkgdGllbmcgcXVhdCBraGFjaCBo YW5nIA0KY2hhbyBjaGF0IGN1YSBtYXkgYW5oICJ4YSB2aWVuIEhvcCB0YWMgeGEgY2h1cCBhbmgi ISEhIERvIGtlbSBuYW5nIGRvbmcsIGtob25nIGtpcCANCmNodXllbiBtaW5oLCBoYXUgaGV0IGhv YXQgZG9uZyBjdWEgY2FjIHRvIGNodWMga2luaCB0ZSB0aG9pIGJhbyBjYXAsIGNhYyBtbyBoaW5o IGhvcCANCnRhYyB4YSBkZXUgZGkgdmFvIG5nbyB0b2kuIENhbiBibywgeGEgdmllbiBraG9uZyBj byBkdSBjb25nIGFuIHZpZWMgbGFtLCB0aHUgbmhhcCBraG9uZyANCmRhbSBiYW8gY3VvYyBzb25n LiBWYSB0aGUgbGEsIGJhaSB0b2FuIG1vaSBiYXQgZGF1Li4uDQoNClRoZW8gc28gbGlldSBjdWEg U28gVGFpIG5ndXllbiwgTW9pIHRydW9uZyB2YSBOaGEgZGF0IEhhIE5vaSwgdHJlbiB0b2FuIGRp YSBiYW4gdGh1IGRvIA0KY28gMTMzIGhvcCB0YWMgeGEgZGFuZyB0aHVlIDE4NyBkaWEgZGllbSBr aW5oIGRvYW5oIChjaHVhIGtlIGRhdCkgdGh1b2Mgc28gaHV1IE5oYSANCm51b2MgdmEgMzMzIHRv IGNodWMsIGRvYW5oIG5naGllcCBraGFjIGRhbmcgdGh1ZSA1NTAgZGlhIGRpZW0gY3VuZyB0aHVv YyBzbyBodXUgTmhhIA0KbnVvYyBkZSBsYW0gbmhhIHh1b25nLCBjdWEgaGFuZywgdHJ1IHNvLiBU b25nIGNvbmcgY2FjIGRpZW4gdGljaCBuaGEgTmhhIG51b2MgZGFuZyANCmNobyBjYWMgdGhhbmgg cGhhbiBkbyB0aHVlIHN1b3QgInR1IHh1YSBkZW4gbmF5IiBsYSBnYW4gNjAwLjAwMG0yIHZhIHRv bmcgZGllbiB0aWNoIA0Ka2h1b24gdmllbiBkYXQgbGEgZ2FuIDcwMC4wMDBtMi4gDQoNCkRhbmcg YmFvIGRvbmcsIG5nYW5oIGNvbmcgYW4gZ2FuIGRheSBkYSBwaGFpIGJhbyBjYW8ga2hhbiBjYXAg VGh1b25nIHRydWMgVGhhbmggdXkgDQpIYSBOb2kgdmUgbW90IHRodWMgdHJhbmcga2hvbmcgbGF5 IGdpIGxhbSB0b3QgZGVwOiAiTW90IHBoYW4gdGkgbGUgdHVvbmcgZG9pIGxvbiBjYWMgZG9pIA0K dHVvbmcgdGh1ZSBuaGEsIGRhdCB0aHVvYyBzbyBodXUgTmhhIG51b2MgY28gaGllbiB0dW9uZyBt dWEgYmFuLCBjaHV5ZW4gbmh1b25nLCB0aGF5IA0KZG9pIGNvbmcgbmFuZyBzdSBkdW5nIG5oYSwg ZGF0IHRyYWkgcGhhcCBsdWF0LiAxLzIgc28gaG9wIHRhYyB4YSBub2kgdHJlbiBkYSBjaHV5ZW4g DQpuaHVvbmcgbmhhIHh1b25nLCB0cnUgc28sIGN1YSBoYW5nIHRodW9jIHNvIGh1dSBOaGEgbnVv YyBkYW5nIHRodWUgY2hvIHR1IG5oYW4sIGxheSANCmhhbmcgdHJhbSB0aSBkb25nIGNoaWEgbmhh dSIuDQoNCkJhbmcgZHUgbW9pIGtpZXU6IHZvIHZpbmggbGllbiBkb2FuaCwgbGllbiBrZXQsIGNo dXllbiBnaWFvIHRodW9uZyBoaWV1LCBjaGlhIHRhY2ggaG9wIA0KdGFjIHhhLi4uIHR1IG5hbSAy MDAwIGRlbiBuYXksIG5oaWV1IGNvIHF1YW4sIGhvcCB0YWMgeGEgZGEgYmFuIHRoYW5oIGNvbmcg dHJ1IHNvLCBuaGEgDQp4dW9uZyBkYW5nIHRodWUgY3VhIE5oYSBudW9jIGNobyB0dSBuaGFuIHF1 YW4gbHksIHN1IGR1bmcuIERhbmcga2UgY286IENvbmcgdHkgbHVvbmcgDQp0aHVjIEhhIE5vaSBi YW4gbmhhIHNvIDIgVGhvIE5odW9tIHZhIDI4IEhhbmcgQ2FuOyBDb25nIHR5IGFuIHVvbmcgZHUg bGljaCBkaWNoIHZ1IA0KSG9hbiBLaWVtIGJhbiBuaGEgNzMgVGh1b2MgQmFjOyBDb25nIHR5IHRo dW9uZyBtYWkgZGljaCB2dSBUcmFuZyBUaGkgYmFuIG5oYSA4RCANCkRpZW4gQmllbiBQaHU7IENv bmcgdHkgcGhhdCBoYW5oIHNhY2ggSGEgTm9pIGJhbiBuaGEgNTMgRGluaCBUaWVuIEhvYW5nLi4u IHZhIHZvIHNvIA0KY3VhIGhhbmcgdGh1b2MgbWFuZyBsdW9pIHRodW9uZyBuZ2hpZXAgcXVvYyBk b2FuaCB0cnVvYyBkYXkgIm5heSBjb24gZGF1PyIuIFRoYW0gDQpjaGksIG5oaWV1IHRydSBzbyBo b3AgdGFjIHhhIGNvbiBkdW9jIG11YSBkaSBiYW4gbGFpIG5oaWV1IGxhbi4gU2F1IGtoaSBjaHV5 ZW4gYmFuIGNhYyANCmRpYSBkaWVtIG5heSBjaG8gdHUgbmhhbiwgbW90IHNvIGxvbiBob3AgdGFj IHhhIGRhIHR1IHRpZXUgZ2lhaSB0aGUuIFRvYW4gYm8gc28gdGllbiB0aHUgDQpkdW9jIG5hbSBu Z29haSBraWVtIHNvYXQgY3VhIE5oYSBudW9jLiBUaWVwIHF1YW4gY2h1bmcgbGEgbmh1bmcgdHUg bmhhbiBsYW0gY3VhIA0KbmhpZXUgdGllbiB2YSBuaGFuaCBuaGF5IQ0KDQoiVnVpIHRpbmgiIG5o YXQgY28gVUJORCBwaHVvbmcgSGFuZyBCb25nIGN1bmcgYmFuIGx1b24gY2EgdHJ1IHNvIDgzIEhh bmcgQm9uZyANCihxdWFuIEhvYW4gS2llbSkgY3VhIG1pbmghDQoNCk5oaWV1ICJkYWkgZ2lhIiBI YSBOb2kgYm9uZyB0aGFuaCBvbmcsIGJhIGNodSBuaGllbSBIVFggbW9pIQ0KDQooQW5oOiBEYXUg dGljaCBjdWEgbmh1bmcgSFRYIGN1IGRhbmcgYmllbiBtYXQuIEFuaDogSC5ULiBHaWFuZy4pDQoN Ck5naGkgZGVuICJBbmggY2h1IG5oaWVtIiB4dWEsIG5ndW9pIHRhIG11b25nIHR1b25nIG5nYXkg aGluaCBhbmggIkFuaCBnaW8gdGF5IHZlIA0KZ2l1YSBkb25nIHhhbmgvVmUgY2EgbmdheSBtYWkg dGhhbmggYnVjIHRyYW5oIi4gQ29uIG5nYXkgbmF5LCBtdW9uIG11YSBsYWkgbW90IHNvIA0KY3Vh IGhhbmcgY28gbWF0IHRpZW4gZGVwIHRhaSBjYWMgcGhvIHRydW5nIHRhbSwgZ2lhIHJlLCBraGEg bmFuZyBzaW5oIGxvaSBsYSBjaGFjIGNoYW4sIA0Kbmh1bmcgZGFpIGdpYSBsYW0gdGllbiBuaGll dSBjdWEgdGFpIEhhIE5vaSBkYSBob2FuIHRhdCB0aHUgdHVjIHZvaSBjYWMgaG9wIHRhYyB4YSBk ZSB0cm8gDQp0aGFuaCAiQW5oIGNodSBuaGllbSIuIENhYyAiYW5oIGNodSBuaGllbSB0aG9pIG5h eSIsIHZvaSBoYW5nIGNodW9pIGN1YSBoYW5nIGRlcCBuaHUgDQptb25nIHRyb25nIHRheSwga2hv bmcgY2FuIHZlIHRoaSBuZ2F5IG1haSBjdW5nICJ0aGFuaCBidWMgdHJhbmgiIQ0KDQpDdSB0aGU6 IEhvcCB0YWMgeGEgbWF5IERhbiBDaHUgZG8gb25nIExlIFF1YW5nIFZpbmggbGFtIGNodSBuaGll bSBkdW9jIENvbmcgdHkgDQpLaW5oIGRvYW5oIG5oYSBzbyAyICh0aHVvYyBTbyBEaWEgY2hpbmgg LSBOaGEgZGF0IEhhIE5vaSkgY2hvIHRodWUgNSBkaWEgZGllbSBxdWEgZG9pIA0KImxvbmcgbGFu aCIsIHRvYW4gbyBxdWFuIEhvYW4gS2llbS4gVnVhICJuaGFuaCB0cmkiLCB2dWEgImR1bmcgY2Ft Iiwgb25nIFZpbmggZGEgaHkgDQpzaW5oIGNodWMgQ2h1IG5oaWVtIGN1YSBtaW5oLCBkb2kgbGFp IDgsMSB0aSBkb25nIHR1IGNoaWEgY2hvIG1pbmggdmEga2hvYW5nIG5hbSBjaHVjIA0KeGEgdmll bi4gRGUgImN1dSIgZG9pIHNvbmcgeGEgdmllbiwgQmFuIGNodSBuaGllbSBIb3AgdGFjIHhhIG1h eSBEYW4gY2h1IGRhIHBoYWkgDQpuZ2FtIG5ndWk6DQoNCi0gQmFuIG5oYSBtYXQgcGhvIHNvIDIy IEhhbmcgQm9uZyAoZGllbiB0aWNoIDI1bTIpIGNobyBiYSBOZ3V5ZW4gVGh1IE5nYSwgdGh1IDU1 MCANCnRyaWV1IGRvbmcuIEJhIE5nYSBsYW0gdGh1IHR1YyB0YWNoIEhvcCB0YWMgeGEgbWF5IERh biBDaHUgdGhhbmggSG9wIHRhYyB4YSBLaGllbSANClRoYW5oLCBjYXQgbmhhYyBjb24gZ2FpIGJh IGxhIFRyYW4gVGh1IFRodXkgbGFtIGNodSBuaGllbS4NCg0KLSBCYW4gbmhhIG1hdCBwaG8gc28g MjIgTHVvbmcgVmFuIENhbiAoZGllbiB0aWNoIDIzLDdtMikgY2hvIG9uZyBUYSBRdWFuZyBWYW4s IHRodSANCjYwMCB0cmlldSBkb25nLiBPbmcgVmFuIHBoYW4ga2hvaSB0YWNoIHJhIHRoYW5oIEhv cCB0YWMgeGEgVmFuIE15IGRvIGNoaW5oIG9uZyBsYW0gDQpjaHUgbmhpZW0uDQoNCi0gQmFuIG5o YSBtYXQgcGhvIHNvIDk0IENhdSBHbyAoZGllbiB0aWNoIDI1bTIpIGNobyBvbmcgTGUgVmFuIEhh bywgdGh1IDU1MCB0cmlldSANCmRvbmcuIE9uZyBIYW8gdGFjaCByYSB0aGFuaCBIb3AgdGFjIHhh IE15IFNvbiBtYSBjaHUgbmhpZW0gY2hpbmggbGEgb25nLg0KDQotIEJhbiBuaGEgbWF0IHBobyBz byA3NCBIYW5nIEdhaSAoZGllbiB0aWNoIDM3bTIpIHZhIG5oYSBtYXQgcGhvIDU3QiBEaW5oIFRp ZW4gDQpIb2FuZyAoZGllbiB0aWNoIDk3LDY0bTIpIGNobyBvbmcgTmd1eWVuIER1YyBUaW4sIHRo dSA2LDQgdGkgZG9uZy4gT25nIFRpbiB2YW4gYW4gDQpjYW4gZ2l1IG5ndXllbiB0ZW46IEhvcCB0 YWMgeGEgRGFuIENodS4gU29uZywgQmFuIGNodSBuaGllbSB2YSB4YSB2aWVuIEhvcCB0YWMgeGEg DQpEYW4gQ2h1IHRydW9jIGRheSBkYSBkdW9jIHRoYXkgYmFuZyBCYW4gY2h1IG5oaWVtIHZhIGNh YyB4YSB2aWVuIGhvYW4gdG9hbiBtb2ksIGRvIA0KY2hpbmggb25nIFRpbiBsYW0gY2h1IG5oaWVt Lg0KDQpDb25nIGNhIDUgZG90IGJhbiBuaGEgbGFpLCBtb2kgeGEgdmllbiBjdSBjdWEgSG9wIHRh YyB4YSBtYXkgRGFuIENodSBkdW9jIGNoaWEgDQpraG9hbmcgaG9uIDEwMCB0cmlldSBkb25nLiBL aGkgbmhhbiB0aWVuLCBjYWMgeGEgdmllbiBwaGFpIHZpZXQgY2FtIGRvYW4gdHUgYm8gbW9pIA0K cXV5ZW4gbG9pIGNvIGxpZW4gcXVhbiBkZW4gaG9wIHRhYyB4YS4gTW90IHNvIHhhIHZpZW4gZGEg bmdoaSBodXUgY3VuZyBkdW9jIGNoaWEgdHUgMSANCmRlbiA1IHRyaWV1IGRvbmcuIFRhdCBjYSBn aW8gZGF5IGRldSBkYSAiYW5oIGRpIGR1b25nIGFuaCwgdG9pIGR1b25nIHRvaSIgbmVuIHZpZWMg dGh1IGhvaSANCmdhbiBuaHUgbGEga2hvbmcgdHVvbmchIENhYyAiYW5oIGNodSBuaGllbSIgbW9p IHRoaSB2YW4gdW5nIGR1bmcgIm5nb2kgbWF0IGFuIGJhdCANCnZhbmciLCBraG9uZyB0dSBraW5o IGRvYW5oIHRoaSBjaG8gdGh1ZSwgbmh1bmcgY3VhIGhhbmcgbyBtYXQgdGllbiBwaG8gY2hpbmgg bmh1IEhhbmcgDQpCb25nLCBIYW5nIEdhaSBuZ290IG5naGV0IGhhaSBjaHVjIHRyaWV1IGRvbmcv dGhhbmcuLi4NCg0KVHJhbyBkb2kgdm9pIFZpZXROYW1OZXQsIG1vdCBjYW4gYm8gQ3VjIFRodWUg SGEgTm9pIGNobyBiaWV0LCBraG8gY28gdGhlIHZhbiBkdW5nIA0KY2hlIHRhaSBuYW8gZGUgdGh1 IHZpIGRheSBjbyB0aGUgY29pIG5odSB0aG9hIHRodWFuIGRhbiBzdSBob2FjIHRpZW4gaG9hIGhv bmcgbmh1IGRvaSB2b2kgDQpkaWVuIG5oYSBkYW5nIHRodWUgdGhlbyBOZ2hpIGRpbmggNjEuIE1v dCBkYWkgZGllbiBQaG9uZyBLZSBob2FjaCAtIEtpbmggdGUgcXVhbiBIb2FuIA0KS2llbSB0aGkg Y2hvIGhheSwgZGEgcmEgdGhvbmcgYmFvIHRodSBob2kgc29uZyBraG9uZyBoZSBjbyBrZXQgcXVh IQ0KDQpDaGluaCB0dSBrZSBobyBkbywgaGllbiB0dW9uZyBtdWEsIGJhbiwgY2h1eWVuIG5odW9u ZyB0cmFpIHBoYXAgbHVhdCB0cnUgc28sIGRhdCBkYWksIG5oYSANCnh1b25nIHRodW9jIHNvIGh1 dSBOaGEgbnVvYyBraG9uZyBuaHVuZyBjaHVhIGR1b2MgdHJpZXQgZGUgeHUgbHkgbWEgZGFuZyBs YW4gcmEgZGllbiANCnJvbmcuIE1vdCB0aGkgdHJ1b25nIG5nYW0gdmUga2luaCBkb2FuaCBiYXQg ZG9uZyBzYW4ga2hvbmcgaG9wIHBoYXAsIGNodWEgbmhpZXUgeWV1IA0KdG8gdGhhbSBuaHVuZyB2 YSB0cnVjIGxvaSBkYW5nICJydW5nIHJ1bmcgY2h1eWVuIGRvbmciLiBEZSBuZ2FuIGNoYW4sIHRo ZW8gbmhhbiBkaW5oIA0KY3VhIG5nYW5oIGNvbmcgYW46IEhlIHRob25nIHZhbiBiYW4gcGhhcCBs eSBsYW0gY28gc28gY2hvIHZpZWMgZGFuaCBnaWEgdmkgcGhhbSB2YSB4dSANCmx5IC0gdGhpIFRo aWV1OyBTdSBwaGF0IGhpZW4gdmEgY2hpIGRhbyBraXAgdGhvaSBjdWEgY2hpbmggcXV5ZW4gY2Fj IGNhcCBjdW5nIG5odSBjYWMgY28gDQpxdWFuIGNodWMgbmFuZyAtIHRoaSBZZXU7IFZpZWMgdG8g Y2h1YyBraWVtIHRyYSB4dSBseSwga2llbiBuZ2hpIGNhYyBnaWFpIHBoYXAgcGh1IGhvcCAtIA0K dGhpIG1hbmcgdGluaCBoaW5oIHRodWMuIA0KDQpWaSB0aGUsIDEuMDAxIHRodSBkb2FuIGxhdCBs ZW8gZGUgInRoYXkgbWF1IiBuaGEsIGRhdCBjdWEgTmhhIG51b2MgdmFuIGRhbmcgdGllcCB0dWMu Li4NCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vTGFuZy1waGktZGF0LWNvbmctdHJlbi10 dXllbi1waG8tZGF0LW5oYXQtaGFuaC10aW5oLzE0NC81MzI1NTgyLmVwaSBUdWUgS2hhbmggKDF0 aGFuZyB0cnVvYykgDQoNCkhhIE5vaTogTGFuZyBwaGkgZGF0IGNvbmcgdHJlbiB0dXllbiBwaG8g ImRhdCBuaGF0IGhhbmggdGluaCIgDQoNCihWbk1lZGlhKSAtIE5nYXkgbWFpICg3LzEyKSwgdGhh bmggcGhvIEhhIE5vaSBzZSBraGFpIG1hYyBreSBob3AgdGh1IDIyIEhvaSBkb25nIA0KbmhhbiBk YW4gKEhETkQpIHRoYW5oIHBoby4gR3VpIGRlbiBreSBob3AgbGFuIG5heSwgbmhpZXUgeSBraWVu IGN1IHRyaSBidWMgeHVjIHZlIA0KdGluaCB0cmFuZyBsYW5nIHBoaSBkYXQgY29uZywgdHJvbmcg ZG8gY28gY2Egbmh1bmcga2h1ICJkYXQgdmFuZyIgdHJlbiBjb24gcGhvIHR1bmcgDQpkdW9jIGNo byBsYSAiZGF0IG5oYXQgaGFuaCB0aW5oIi4NCg0KTGFuZyBwaGksIHN1IGR1bmcgc2FpIG11YyBk aWNoIA0KDQpUcm9uZyBjYWMgeSBraWVuIG1hIGN1IHRyaSBIYSBOb2kgcXVhbiB0YW0gZ3VpIGRl biBreSBob3AgbGFuIG5heSwgdmllYyBzdSBkdW5nIGRhdCANCmNvbmcga2hvbmcgaGlldSBxdWEs IGdheSBsYW5nIHBoaSBjaG8gbmhhIG51b2MgZHVvYyBjdSB0cmkgcXVhbiB0YW0gZGFjIGJpZXQu DQoNCkRvbiBjdSBuaHUgdHJ1b25nIGhvcCBYaSBuZ2hpZXAgZ2lvbmcgY2F5IHRyb25nIFllbiBL aGUgKGRhdCB0YWkgeGEgWWVuIFRodW9uZywgDQpodXllbiBHaWEgTGFtKSwgeGF5IGR1bmcgMjkg a2kgb3QgZGUgZ2lvaSB0aGlldSBzYW4gcGhhbSwgbmh1bmcgZGEgY2hvIHRodWUgdmEgc3UgDQpk dW5nIGtob25nIGR1bmcgbXVjIGRpY2guIEhheSB0cnVvbmcgaG9wIENvbmcgdHkgQ28gcGhhbiBn b20gc3UgQmF0IFRyYW5nIHRhaSB4YSANCkJhdCBUcmFuZywgY3UgdHJpIGNobyByYW5nIHN1IGR1 bmcga2hvbmcgaGlldSBxdWEsIGdheSBsYW5nIHBoaSB2ZSBkYXQgZGFpIG5lbiBkZSBuZ2hpIA0K VUJORCBUaGFuaCBwaG8ga2llbSB0cmEsIHRodWhvaS4gDQoNCkN1bmcgdHJlbiBkaWEgYmFuIGh1 eWVuIEdpYSBMYW0sIGhpZW4gbmF5IENvbmcgdHkgdmF0IHR1IG5vbmcgbmdoaWVwIEdpYSBMYW0s IHRhaSB4YSANCkR1b25nIFhhLCBtYWMgZHUga2hvbmcgaG9hdCBkb25nIGRhIGxhdSBuaHVuZyBk YXQgdGllcCB0dWMgZGUgaG9hbmcgaG9hLCBnYXkgbGFuZyANCnBoaS4gQ3UgdHJpIGRlIG5naGkg VUJORCBUaGFuaCBwaG8geGVtIHhldCwgdGh1IGhvaSBkYXQgZ2lhbyBVQk5EIHhhIHF1YW4gbHks IHN1IA0KZHVuZyBkdW5nIG11YyBkaWNoLiANCg0KSGllbiBuYXksIHRyb25nIGtoaSBuZ3VvaSBk YW4gZGFuZyBkYWMgYmlldCB0aGlldSBkYXQgY2FuaCB0YWMsIHNhbiB4dWF0IHRoaSBkYXQgYmFp IHRodW9jIA0KeGEgVGh1b25nIENhdCBoaWVuIGRhbmcgZHVvYyB4YSBreSBob3AgZG9uZyBjaG8g Y2FjIGRvYW5oIG5naGllcCB0aHVlLiBDdSB0cmkgZGUgbmdoaSANClVCTkQgVGhhbmggcGhvIGNo aSBkYW8ga2llbSB0cmEsIGdpYWkgcXV5ZXQgZ2lhbyBsYWkgZGF0IGNobyBuaGFuIGRhbiBzYW4g eHVhdC4gDQoNCkN1IHRyaSBjdW5nIGJ1YyB4dWMgdmUgdHJ1b25nIGhvcCA4IGdpYW4gbmhhIGto byBjdWEgQ29uZyB0eSBsdW9uZyB0aHVjIERvbmcgRGEgdHJlbiANCmRpYSBiYW4gcGh1b25nIFBo dW9uZyBMaWV0IGhheSBuaGEgNTkgcGhvIEtodW9uZyBUcnVuZyBjdWEgY28gc28gc2FuIHh1YXQg dGhhbSBsZW4uIA0KQ2hvIHJhbmcsIGhpZW4gdGFpIGNhYyBjbyBzbyBuYXkgZGFuZyBzdSBkdW5n IHNhaSBtdWMgZGljaCwgY3UgdHJpIGRlIG5naGkgVGhhbmggcGhvIA0KZ2lhbyBjaG8gcXVhbiBx dWFuIGx5IGRlIHhheSBkdW5nIG5oYSB2YW4gaG9hIGNobyBjdW0gZGFuIGN1LiANCg0KRGFjIGJp ZXQsIGhpZW4gY28gdmllYyBoYW5nIG5nYW4gbTIgZGF0IFF1b2MgcGhvbmcgY3VhIFF1YW4ga2h1 IFRodSBkbyBjaG8gdHUgbmhhbiANCnRodWUgYmFuIGJpYSAocXVhbiBiaWEgSGlldSBiZW8pIHRh aSBwaG8gWGEgRGFuLiBEYXkgbGEgY29uIHBobyB0dW5nIGR1b2MgY2hvIGxhIGNvIGdpYSANCiJk YXQgbmhhdCBoYW5oIHRpbmgiIHZhIGN1IHRyaSBkYSBraWVuIG5naGkgbmhpZXUgbGFuIG5odW5n IGhpZW4gY2h1YSBkdW9jIGdpYWkgcXV5ZXQuIA0KDQooQW5oOiBDdSB0cmkgYnVjIHh1YyB2aSBk YXQgdmFuZyB0cmVuIGR1b25nIFhhIERhbiBjdWEgQm8gUXVvYyBQaG9uZyBkdW9jIGNobyB0aHVl IA0KbGFtIHF1YW4gYmlhIC0gdHJvbmcgYW5oOiBQaGlhIHRydW9jIHF1YW4gYmlhIEhpZXUgYmVv KSANCg0KVGllcCB0dWMgYnVjIHh1YyB2ZSBtb2kgdHJ1b25nIA0KDQpOZ29haSBkYXQgZGFpIHRo aSBtb2kgdHJ1b25nIHRpZXAgdHVjIGxhIHZhbiBkZSBub25nIGR1b2MgY3UgdHJpIG8gaGF1IGhl dCBjYWMgcXVhbiwgDQpodXllbiBxdWFuIHRhbSwgZGUgbmdoaSBUaGFuaCBwaG8gZ2lhaSBxdXll dC4gDQoNClRoZW8geSBraWVuIG5ndW9pIGRhbiwgdGFpIGtodSB2dWMgc29uZyBDYXUgQmF5IChU aGFjaCBCYW4gLSBRLiBMb25nIEJpZW4pIGhpZW4gYmkgbyANCm5oaWVtIHJhdCBuYW5nIG5lLCBh bmggaHVvbmcgcmF0IGxvbiBkZW4gZG9pIHNvbmcsIHNpbmggaG9hdCBjdWEgbmhhbiBkYW4uIEhp ZW4gbmF5LCANCm1hYyBkdSBraHUgdnVjIG5heSBkYW5nIGR1b2MgbmFvIHZldCAoZHUgYW4gZHVv YyB0aHVjIGhpZW4gYm9pIHNvIE5vbmcgbmdoaWVwIHZhIA0KY29uZyB0eSBLaGFpIHRoYWMgY29u ZyB0cmluaCB0aHV5IGxvaSBEb25nIEFuaCAtIEdpYSBMYW0pLCB0dXkgbmhpZW4gdGllbiBkbyBy YXQgY2hhbS4gDQpDdSB0cmkgZGUgbmdoaSBVQk5EIFRoYW5oIHBobyBjaGkgZGFvIGRheSBuaGFu aCB0aWVuIGRvLiANCg0KTmd1b2kgZGFuIGtodSB2dWMgbmF5IGN1bmcgZGUgbmdoaSBVQk5EIFRo YW5oIHBobyBnaWFpIHF1eWV0IGR1dCBkaWVtIHRpbmggdHJhbmcgDQpjYWMgZG9hbmggbmdoaWVw LCBkb24gdmkgdHJlbiBkaWEgYmFuIFRoYW5oIHBobyB4YSBudW9jIHRoYWkgcmEgc29uZyBDYXUg QmF5IGdheSBvIA0KbmhpZW0gbW9pIHRydW9uZywgYW5oIGh1b25nIHRvaSBzaW5oIGhvYXQgbmhh biBkYW4ga2h1IHZ1Yy4NCg0KRHVvbmcgWHVhbiBEaW5oIHh1b25nIGNhcCBuZ2hpZW0gdHJvbmcs IGdheSBraG8ga2hhbiBjaG8gc2luaCBob2F0IGN1YSBuZ3VvaSBkYW4uIA0KTWFjIGR1IFRQIGRh IGNvIGtlIGhvYWNoIGR1eSB0dSwgY2FpIHRhbywgbW8gcm9uZyB0dSBjdW9pIHRoYW5nIDYvMjAx MCBuaHVuZyBkZW4gbmF5IA0KY2h1YSB0cmllbiBraGFpIHRodWMgaGllbiAtIGFuaDogR0QmWEgN Cg0KTmh1IGJhbyBjaGkgZGEgZHVhIHRpbiwgaGllbiBuYXkgdGluaCBoaW5oIG8gbmhpZW0gbW9p IHRydW9uZyB0dSBudW9jIHRoYWkgY3VhIGNhYyBsYW5nIA0KbmdoZSBub25nIHNhbiBuaHUgTWlu aCBLaGFpLCBEdW9uZyBMaWV1LCBDYXQgUXVlIHJhdCBuZ2hpZW0gdHJvbmcsIGFuaCBodW9uZyBk ZW4gDQpzdWMga2hvZSBjdWEgbmhhbiBkYW4ga2h1IHZ1YyBrZW5oIFQyIGNoYXkgcXVhLiBDdSB0 cmkgZGUgbmdoaSBUaGFuaCBwaG8gY28gY2hpIGRhbyANCnZlIGhlIHRob25nIHh1IGx5IG51b2Mg dGhhaSBjdWEgY2FjIGN1bSwgZGllbSBDTiB2YSBoZSB0aG9uZyB0aWV1IHRob2F0IG51b2MgY3Vh IGNhYyANCmR1IGFuIGRvIHRoaTsgZGF5IG5oYW5oIHRpZW4gZG8geGF5IGR1bmcgbmhhIG1heSB4 dSBseSBudW9jIHRoYWkgY3VhIGNhYyBsYW5nIG5naGUgY2hlIA0KYmllbiBub25nIHNhbi4gDQoN Ck5oaWV1IHkga2llbiBjdW5nIGNobyBiaWV0LCBkdW9uZyBYdWFuIERpbmggKGh1eWVuIFR1IExp ZW0pIGhpZW4geHVvbmcgY2FwIG5naGllbSANCnRyb25nLCBnYXkgbWF0IHZlIHNpbmggbW9pIHRy dW9uZywgYWNoIHRhYyBnaWFvIHRob25nLiBUaGFuaCBwaG8gZGEgY28ga2UgaG9hY2ggZHV5IHR1 LCANCmNhaSB0YW8sIG1vIHJvbmcgdHUgY3VvaSB0aGFuZyA2LzIwMTAgbmh1bmcgZGVuIG5heSBj aHVhIHRyaWVuIGtoYWkgdGh1YyBoaWVuLCBnYXkga2hvIA0Ka2hhbiBjaG8gc2luaCBob2F0IGN1 YSBuaGFuIGRhbi4gDQoNClRhaSBjb25nIHZpZW4gaG8gQmEgTWF1LCBoaWVuIG5heSBwaGlhIGdp YXAgZHVvbmcgTGUgRHVhbiBkdW9jIHN1IGR1bmcgbGFtIG5vaSBkZSBvIA0KdG8sIHBoaWEgdGF5 IGN1YSBobyB0aGkgYmFuIHZhdCBsaWV1IHhheSBkdW5nLCBkbyBwaGUgdGhhaSBidWEgYmFpIG5l biBtb2kgdHJ1b25nIGJpIG8gDQpuaGllbS4gQ3VuZyB2b2kgZG8gbGEgaGUsIGR1b25nIHRoaSB4 dW9uZyBjYXAgbmdoaWVtIHRyb25nLiBDdSB0cmkgZGUgbmdoaSBVQk5EIA0KVGhhbmggcGhvIGNo aSBkYW8gY2FjIG5nYW5oIHNvbSBnaWFpIHF1eWV0LiANCg0KUXVhIHRyaW5oIGxheSB5IGtpZW4g Y3UgdHJpIGNobyB0aGF5LCBuZ3VvaSBkYW4gZGFuaCBnaWEgbmhpZXUgY29uZyB0cmluaCBjaGFv IG11bmcgZGFpIA0KbGUgMTAwMCBuYW0gY2hhdCBsdW9uZyBrZW0uIERpZW4gaGluaCBuaHUgdHJl biB0dXllbiBwaG8gVG9uIER1YyBUaGFuZywgZ2FjaCBsYSANCnRoZSBraG9uZyBwaHUgaG9wIHZh IHRoaSBjb25nIGF1LCBnYXkgbWF0IG15IHF1YW4gdmEga2hpZW4gY2hvIHZpZWMgZGkgbGFpIGN1 YSBuZ3VvaSANCmRhbiBnYXAga2hvIGtoYW4uIA0KDQpLeSBob3AgbmF5LCBIRE5EIFRQIGR1IGtp ZW4gc2UgdGhhbyBsdWFuLCB0aG9uZyBxdWEgMTMgbmdoaSBxdXlldCBxdWFuIHRyb25nLiBUaGVv IA0KZG8sIHRyb25nIDQgbmdheSBsYW0gdmllYywgNiBuZ2hpIHF1eWV0IHRodW9uZyBreSBkdSBr aWVuIGR1b2MgSERORCB0aGFvIGx1YW4gdmEgDQp0aG9uZyBxdWEgbGE6IE5naGkgcXV5ZXQgdmUg bmhpZW0gdnUga2luaCB0ZSAtIHhhIGhvaSwgYW4gbmluaCwgcXVvYyBwaG9uZyBuYW0gMjAxMTsg DQpOZ2hpIHF1eWV0IHZlIGR1IHRvYW4gbmdhbiBzYWNoIHZhIHBoYW4gYm8gZHUgdG9hbiBuZ2Fu IHNhY2ggbmFtIDIwMTE7IE5naGkgcXV5ZXQgdmUgDQpjaHVvbmcgdHJpbmggeGF5IGR1bmcgbmdo aSBxdXlldCBjdWEgSERORCBuYW0gMjAxMTsgTmdoaSBxdXlldCB2ZSBjaHVvbmcgdHJpbmggDQpn aWFtIHNhdCBjdWEgSERORCBuYW0gMjAxMTsgTmdoaSBxdXlldCB2ZSB0b25nIGJpZW4gY2hlIGhh bmggY2hpbmggc3UgbmdoaWVwIGN1YSANClRoYW5oIHBobyBuYW0gMjAxMTsgTmdoaSBxdXlldCB2 ZSBnaWEgY2FjIGxvYWkgZGF0IGFwIGR1bmcgdHJlbiBkaWEgYmFuIHRoYW5oIHBobyB0dSANCm5n YXkgMS8xLzIwMTEuIA0KDQpUcm9uZyBreSBob3AgbmF5LCBIRE5EIHRoYW5oIHBobyBjdW5nIHNl IHhlbSB4ZXQgZGUgdGhvbmcgcXVhIG1vdCBzbyBuZ2hpIHF1eWV0IA0KY2h1eWVuIGRlIG5odTog cGhhbiBjYXAgbmd1b24gdGh1LCBuaGllbSB2dSBjaGkgZ2l1YSBjYWMgY2FwIG5nYW4gc2FjaCB0 aGFuaCBwaG8gDQpnaWFpIGRvYW4gMjAxMSAtIDIwMTUgdmEgZGluaCBtdWMgcGhhbiBibyBjaGkg bmdhbiBzYWNoIHRoYW5oIHBobyBuYW0gMjAxMS0yMDE1OyANClhheSBkdW5nLCBzdWEgZG9pLCBi byBzdW5nIG1vdCBzbyBxdXkgZGluaCB0aHUgcGhpLCBsZSBwaGkgYXAgZHVuZyB0cmVuIGRpYSBi YW4gVGhhbmggDQpwaG87IE5naGkgcXV5ZXQgdmUgcXV5IGhvYWNoIHBoYXQgdHJpZW4gZGllbiBs dWMgdGhhbmggcGhvIEhhIE5vaS4uLiANCg0KaHR0cDovL3d3dy50aW5tb2kudm4vQWktbGF5LWNh cC1jb25nLXZpZW4tY3VhLW5ndW9pLWRhbi1UaHUtZG8tMDIxMTYyLmh0bWwgTS5UaWVuIC0gVC5M aW5oIChBTlRHIHNvIDgzMykgMDU6MDYgMjIvMDIvMjAwOQ0KDQpIYSBOb2k6IEFpICJsYXkgY2Fw IiBjb25nIHZpZW4gY3VhIG5ndW9pIGRhbiBUaHUgZG8/DQoNCiBLaGkgZGFuIHNvIHRodSBkbyBu Z2F5IGNhbmcgdGFuZyBsZW4sIHRoaSBkaWVuIHRpY2ggY2FjIGNvbmcgdmllbiBuZ2F5IGNhbmcg YmkgdGh1IGhlcCANCmxhaS4gS2hvbmcgcGhhaSBuZ2F1IG5oaWVuIG1hIG1vdCBnaWFvIHN1IHZl IG1vaSB0cnVvbmcgcGhhdCBiaWV1OiAiSGEgTm9pIGhpZW4gY2h1YSANCmNvIG1vdCBjb25nIHZp ZW4gImNhcCB0aGFuaCBwaG8iIG5hby4gQ29uIHRoZW8gUEdTLlRTIEh1eW5oIERhbmcgSHksIGNh Y2ggcXVhbiBseSANCmNvbmcgdmllbiBvIEhhIE5vaSBoaWVuIG5heSBkYW5nIHRyb25nIHRpbmgg dHJhbmcgIm5hbSBjaGEgYmEgbWUiLiBOaGEgbnVvYyBnaWFvIGNobyANCmNvbmcgdHkgcXVhbiBs eSBjb25nIHZpZW4sIHNvbmcga2hpIGNvbmcgdmllbiB4dW9uZyBjYXAsIG5heSBzaW5oIG5oaWV1 IHRlIG5hbiB4YSBob2kgdGhpIA0KY3VuZy4uLiBjaGEgdGhlIHF1eSB0cmFjaCBuaGllbSBjaG8g YWkuIA0KDQpNb3QgbmhhIGhvYXQgZG9uZyBtb2kgdHJ1b25nIGRhIHR1bmcgbm9pLCBtb3QgdGhh bmggcGhvIG1hIGtob25nIGNvIGNvbmcgdmllbiBuZ2hpYSANCmxhIHRoYW5oIHBobyAiY2hldCIu IENvIHRoZSB0aG9uZyBrZSB0aHUgZG8gSGEgTm9pIGNvIGhvbiBjaHVjIGNvbmcgdmllbiBsb24g bmhvLCB0aGUgDQpuaHVuZyBuaHVuZyBjb25nIHZpZW4gbmF5IGR1b25nIG5odSBkYW5nIGNoZXQg ZGFuIGNoZXQgbW9uLiANCg0KQ2hpIGNvbiBsYSBreSB1Yw0KDQpDaGkgTmd1eWVuIFRoaSBIb2Es IG5oYSB0cmVuIHBobyBEYWkgQ28gVmlldCwgaGllbiBsYSBnaWFvIHZpZW4gQW5oIHZhbiBjdWEg bW90IA0KdHJ1b25nIFRIUFQgY3VhIEhhIE5vaSBjbyBsZSBzZSBjaGFuZyBiYW8gZ2lvIHF1ZW4g ZHVvYyBuaHVuZyBuZ2F5IHRoYW5nIGF1IHRobyB0dW9pDQogZGVwIGN1YSBtaW5oIG8gQ29uZyB2 aWVuIFRob25nIE5oYXQuDQoNClNhdSBraGkgQ29uZyB2aWVuIFRob25nIE5oYXQgZHVvYyB4YXkg ZHVuZyB0aGkgdmllYyBkdW9jIGNodXAgYW5oIHRhaSBkYXkgbW90IHRob2kgbGEgDQpuaWVtIGFv IHVvYyBjdWEgbmhpZXUgbmd1b2kuIERvaSB2b2kgY2hpIEhvYSB2YSBiYW4gYmUgZG9uZyBsdWEs IENvbmcgdmllbiBUaG9uZyANCk5oYXQgdnVhIGxhIG5vaSB2dWkgY2hvaSBnaWFpIHRyaSwgbGFp IGNvIHRoZSBtYW5nIHNhY2ggcmEgb24gYmFpLiBSb2kgbmh1bmcga2hpIGhvYXQgZG9uZyANCkRv aSBUaGlldSBuaWVuIFRpZW4gcGhvbmcgY3VuZyBvIHRyb25nIGNvbmcgdmllbi4NCg0KQ2hpIGNv biBuaG8sIG5nYXkgYXkgY2F5IHRyb25nIGNvbmcgdmllbiByYXQgZGVwLCB0aGFtIGNvIGN1bmcg ZGF5LiBEYWMgYmlldCBobyBCYXkgDQpNYXUgbnVvYyB0cm9uZyB2YXQuIE5nYXkgZG9pIGx1YSB5 ZXUgbmhhdSwgY2hpIGN1bmcgYW5oIGN1bmcgaGVuIGhvIG8gY29uZyB2aWVuLiANCkNoaW5oIG5o dW5nIGhhbmcgeGEgY3UgZGEgY2h1bmcga2llbiBoYWkgbmd1b2kgdHJhbyBuaGF1IG5odW5nIGNh aSBuYW0gdGF5IHJ1dCByZSwgbnUgDQpob24gZGF1IHZ1bmcgZGFpLi4uDQoNClRoZSBuaHVuZywg YmFuZyBkaSBtb3QgdGhvaSBnaWFuLCBraGkgY29uIGxvbiBjaGkgSG9hIG1vaSBjbyBkaXAgZHVh IGNvbiB0cm8gbGFpIG5vaSBuYXkuIA0KTyBuaGEgY2hpIGRhIHRyb3Qga2hvZSByYW5nIGNvbmcg dmllbiBkZXAgbGFtLCBjb24gZGkgc2UgY2hhYyBjaGFuIHRoaWNoLi4uIE5odW5nIGtob25nIA0K bmdvIGNvbiBjaGkgdnVhIHZhbyBjb25nIHZpZW4gZGEgZG9pIHJhLiANCg0KVGh1YyByYSwgcXVh bmcgY2FuaCBjdW5nIGtob25nIGtoYWMgbmdheSB4dWEgbGEgYmFvLCBzb25nIGNoaSBjbyBkaWV1 IGxhIG1vaSB0aHUgZGV1IA0KY3UgdmEgeGF1IGRpLiBOaHVuZyBoYW5nIGNheSB4byB4YWMgdmkg ZHVvbmcgbmh1IGtob25nIGR1b2MgY2hhbSBzb2MgY2FuIHRoYW4sIGhvIA0KbnVvYyB0aGkgYm9j IG11aSB4dSB1ZSBub25nIG5hYy4uLiBDaGEgdGhlIG1hIGNodWEgZGkgZHVvYyAxLzQgY29uZyB2 aWVuLCBjb24gY2hpIGRhIA0KZG9pIHZlIHZpICJvIG5oYSBjaG9pIGRpZW4gdHUgdGhpY2ggaG9u Ii4NCg0KQ2h1bmcgY2FuaCBuZ28gdm9pIGNoaSBIb2EgbGEgYW5oIEtpZW4sIG5oYSB0cmVuIHBo byBWdSBUcm9uZyBQaHVuZy4gTmdheSBjb24gbmhvLCANCmFuaCBzb25nIHZvaSBibyBtZSB0YWkg dGhhbmggcGhvIEhhaSBEdW9uZy4gTW9pIGxhbiBsZW4gSGEgTm9pLCB0aGUgbmFvIGFuaCBjdW5n IHZvaSANCmR1b2MgZGkgQ29uZyB2aWVuIFRodSBMZSBjaG8gYmFuZyBkdW9jLiANCg0KTmhhbiBk aXAgbmh1bmcgbmdheSBkYXUgbmFtIHJvaSByYWksIGFuaCBkdWEgZHVhIGNvbiBkYXUgbG9uZyA1 IHR1b2kgcmEgdnVvbiB0aHUgZGUgDQpjaG8gY2hhdSBtbyBtYW5nIHRhbSBoaWV1IGJpZXQuIFRo ZSBuaHVuZyBrZXQgcXVhIG5oYW4gZHVvYyBjaGkgbGEgbmh1bmcgY2FpIHRoYWMgDQptYWMgbWEu Li4gY2hpbmggYW5oIGN1bmcga2hvbmcgdGhlIGdpYWkgdGhpY2ggbm9pIQ0KDQooQW5oOiBLaGFj aCBzYW4gNCBzYW8gZGFuZyB0aGkgY29uZyB0cm9uZyBtb3QgcGhhbiBkaWVuIHRpY2ggY3VhIGNv bmcgdmllbiBUaG9uZyBOaGF0LikNCg0KQm9pIHRodSBub2kgZGF5IG5oaWV1IGNvbiBnYXkgeGFj IHhvLCB0cm8gY2EgeHVvbmcgc3VvbiwgY28gY29uIHF1ZSBsZXQgdHJlbiBzYW4geGkgbWFuZyAN CmRlIGRlbiBjaG8gY28gdnVuZyBudW9jLiBEYWMgYmlldCwga2hpIGRhbiBjb24gZGVuIGNodW9u ZyBkZSB0ZW4gIkhhIG1hIiB0aGkgY2F1IGNvbiANCnRyYWkgYW5oIHZhbjogIkJvIGNvIGNoYWMg bm8gbGEgaGEgbWEga2hvbmc/Ii4gS2hpIG5oaW4geHVvbmcgY2h1b25nLCBuZ3VvaSB0YSB0aGF5 IA0KbmdvYWkgbW90IHZ1bmcgbnVvYyBkdWMgbmdhdSBjaGkgdGhheSBub2kgbGVuIG1vdCB0YW5n IGx1bmcgZGVuIGRlbiB2YSBtdWkgaG9pIHRob2kgDQpub25nIG5hYyBib2MgbGVuLCB0aGF0IGto byBtYSBkYW0ga2hhbmcgZGluaC4NCg0KVGhlIHJvaSBuYW8gbGEgQ29uZyB2aWVuIEJhY2ggVGhh bywgQ29uZyB2aWVuIE5naGlhIERvLCBDb25nIHZpZW4gVHVvaSBUcmUuLi4gdG9hbiANCm5odW5n IGNvbmcgdmllbiB0ZW4gb2FjaCBjYS4gU29uZyB0aGF0IGtobyBjbyB0aGUgbm9pIHJhbmcgbm8g bGEgbmh1bmcgY29uZyB2aWVuIGR1bmcgDQpuZ2hpYS4gQ2hpbmggZ2l1YSBraHVvbiB2aWVuIGN1 YSBDb25nIHZpZW4gVHVvaSBUcmUgbGEgaGFpIHZ1IHRydW9uZy4gVmUgYnVvaSB0b2kgaGF1IA0K a2hhcCBjYWMgY29uIGR1b25nIHRyb25nIGNvbmcgdmllbiBkZXUgY2h1YSBjbyBoZSB0aG9uZyBk ZW4gY2hpZXUgc2FuZy4gVGhheSB2aSBuaHVuZyANCnZ1b24gaG9hIGNheSBjYW5oIHRoaSBsYWkg Y2hpIHRvYW4gY28gZGFpLg0KDQpDaGkgTmd1eWVuIFZhbiBBbmgsIHNpbmggdmllbiBUcnVvbmcg ZGFpIGhvYyBLaG9hIGhvYyB4YSBob2kgdmEgbmhhbiB2YW4sIERhaSBob2MgDQpRdW9jIGdpYSBI YSBOb2kgY29uIGNodWEgcXVlbiBreSB1YyBoYWkgaHVuZyB0YWkgQ29uZyB2aWVuIE5naGlhIERv LiBOaGFuIG5nYXkgDQpWYWxlbnRpbmUsIFZhbiBBbmggY3VuZyBuZ3VvaSB5ZXUgdmFvIGNvbmcg dmllbiBjaHV5ZW4gdHJvLiBMdWMgYXkgbGEga2hvYW5nIDIxaCwgY2EgDQpoYWkgZGFuZyBjaHVh biBiaSByYSB2ZSB0aGkgZ2FwIDIgZG9pIHR1b25nICJkYXQgZGVvIiB0aWVuIGRlbjogIkNobyB4 aW4gZGlldSB0aHVvYyIuIA0KDQpCaWV0IGdhcCBwaGFpICJjdW9wIiwgVmFuIEFuaCBuZ29hbiBu Z29hbiBydXQgdmkgbm9wIGNobyBib24gY2h1bmcgMjAwLjAwMGQuIFRoZSByb2kgDQp2b2kgdmEg cmEgdmUgdmEgdHUgZG8ga2hvbmcgYmFvIGdpbyBkYW0gYmVuIG1hbmcgZGVuIG51YS4NCg0KQ2Fj IGNvbmcgdmllbiBkYW5nIGR1b2MgcXVhbiBseSBraWV1IGdpPw0KDQpNb3QgZGlldSBkZSBuaGFu IHRoYXkgbGEsIGtoaSBtYSBkYW4gc28gdGh1IGRvIG5nYXkgY2FuZyB0YW5nIGxlbiwgdGhpIGRp ZW4gdGljaCBjYWMgY29uZyANCnZpZW4gbmdheSBjYW5nIGJpIHRodSBoZXAgbGFpLiBLaG9uZyBw aGFpIG5nYXUgbmhpZW4gbWEgbW90IGdpYW8gc3UgdmUgbW9pIHRydW9uZyBwaGF0IA0KYmlldTog IkhhIE5vaSBoaWVuIGNodWEgY28gbW90IGNvbmcgdmllbiAiY2FwIHRoYW5oIHBobyIgbmFvLiBE YWkgZGEgc28gY2FjIGNvbmcgdmllbiANCmN1YSB0aHUgZG8gZGFuZyBkdW9jIHF1YW4gbHkgbW90 IGNhY2ggbG9uZyBsZW8uDQoNCk1vdCBkaWVuIGhpbmggY3VhIHZpZWMgcXVhbiBseSB0aGlldSBu Z2hpZW0gdHVjLCBzYXQgc2FvIGRvaSB2b2kgY2FjIGNvbmcgdmllbiBsYSBvIENvbmcgDQp2aWVu IFRodSBMZSwgY28gcXVhbiBxdWFuIGx5IGNobyB0aHVlIGxhaSBtb3QgbHVvbmcgbG9uIGRhdCBt YXQgdGllbiBkZSBraW5oIGRvYW5oLiANCkNvbmcgdHkgVE5ISCBtb3QgdGhhbmggdmllbiBWdW9u IHRodSBIYSBOb2kgY2hvIHBoZXAgMTEgZG9uIHZpIGRlbiB0aHVlIGxhaSBtYXQgDQpiYW5nIHF1 YW5oIGtodW9uIHZpZW4gQ29uZyB2aWVuIFRodSBMZSBkZSBraW5oIGRvYW5oIG5oYSBoYW5nLCBr aGFjaCBzYW4sIGN1YSBoaWV1IA0KYnVvbiBiYW4gdGFwIG5hcC4NCg0KVHJ1b2Mgbmh1bmcgcGhh biB1bmcgZ2F5IGdhdCBjdWEgZHUgbHVhbiwgVUJORCBUUCBIYSBOb2kgZGEgcGhhaSBiYW4gaGFu aCBuaGlldSANCmJpZW4gcGhhcCBnaWFpIHF1eWV0LiBUaGFuZyAxMS8yMDA3LCB0aGVvIGNodSB0 cnVvbmcgY3VhIFVCTkQgVFAgSGEgTm9pIHZlIGdpYWkgdG9hIA0KY2FjIG5oYSBoYW5nIHhheSBk dW5nIHRyYWkgcGhlcCB0cmVuIGRhdCB2dW9uIHRodSBUaHUgTGUgKEhhIE5vaSkgbGFtIGFuaCBo dW9uZyBkZW4gDQpjYW5oIHF1YW4sIG1vaSB0cnVvbmcgY3VhIGtodSB2dWkgY2hvaSBkdW9jIGNv aSBsYSBseSB0dW9uZyBjdWEgdGh1IGRvLCBVQk5EIHF1YW4gQmEgDQpEaW5oIGRhIGh1eSBkb25n IHRvYW4gYm8gbHVjIGx1b25nIHRoYW5oIHRyYSB4YXkgZHVuZywgYW4gbmluaCB0cmF0IHR1Li4u IGJhdCBkYXUgZ2lhaSB0b2EgDQo0IGNvbmcgdHJpbmggIHZpIHBoYW0gdGFpIGRheSwgZ29tOiBI ZSB0aG9uZyBuaGEgdGh1eWVuIG1vYyB0cmFpIHBoZXAgdHJlbiBtYXQgaG8sIGN1YSANCmhhbmcg ZGllbiB0aG9haSBkaSBkb25nLCBxdWFuIGJpYSB2YSBxdWFuIGNhIHBoZS4gVG9uZyBkaWVuIHRp Y2ggZ2lhaSB0b2EgdHJlbiA1MDBtMi4gDQoNCg0KKEFuaDogVmFvIGNvbmcgdmllbiwga2hvbmcg aXQgbmd1b2kgcGhhaSAibmd1b25nIiBraGkgYmF0IGdhcCBuaHVuZyBjYW5oIG5odSB0aGUgbmF5 LikNCg0KVGllcCBkbywgVUJORCBxdWFuIEJhIERpbmggdGllcCB0dWMgZ2lhaSB0b2EgdmEgY3Vv bmcgY2hlIGdpYWkgdG9hIDcgZGllbSB2aSBwaGFtIGNvbiANCmxhaSBkZXUgbGEgbmh1bmcgY29u ZyB0cmluaCB4YXkga2llbiBjbywgY2hpZW0ga2hvbmcgZ2lhbiBsb24gcXVhbmgga2hhcCB2dW9u IHRodSBUaHUgDQpMZSB2b2kgdG9uZyBkaWVuIHRpY2ggbGVuIHRvaSAxMC4wMDBtMiwgZ29tOiBO aGEgaGFuZyBMYWMgVmlldCwgTGF1IG5hbSB0aGllbiBuaGllbiwgDQpxdWFuIGthcmFva2UgVGh1 eSBMaW5oLCBuaGEgaGFuZyBQaG8gTmdvaSwgSG9hIEJpbmgsIFZpZXQgVGhhbmguLi4gVHV5IG5o aWVuIGNobyB0b2kgDQp0aG9pIGRpZW0gbmF5LCB2YW4gY29uIG1vdCBzbyBjb25nIHRyaW5oIGNo dWEgdGhlIGdpYWkgdG9hIGR1b2MuDQoNCk8gQ29uZyB2aWVuIFR1b2kgVHJlLCBzYXUga2hpIGJv IHJhIG5oaWV1IHRpIGRvbmcgZGUgZ2lhaSBwaG9uZyBtYXQgYmFuZywgZGF0IGNvbmcgdmllbiAN CmxhaSBkdW9jIGdpYW8gbGFpIGNobyBjYWMgZG9hbmggbmdoaWVwIGtoYWkgdGhhYy4gRGF1IHRp ZW4gbGEgQ29uZyB0eSBUaHVvbmcgbWFpIHZhIGRhdSANCnR1IHBoYXQgdHJpZW4gSGEgTm9pLCBz YXUgZG8gZGVuIExpZW4gZG9hbmggZ2l1YSBIYSBOb2kgVG91cmlzdCB2YSBUYXAgZG9hbiBSYWZp biwgZGUgDQp4YXkgZHVuZyBjYWMgY29uZyB0cmluaCB0aHVvbmcgbWFpIGdpYWkgdHJpIHZvaSBx dXkgbW8gbG9uLiANCg0KVGFpIENvbmcgdmllbiBZZW4gU28sIGNvbmcgdGFjIGtoYWkgdGhhYyBx dXkgZGF0IGhpZW4gZGFuZyBkdW9jIGdpYW8gdG9hbiBibyBjaG8gVGFwIA0KZG9hbiBHYW11bmRh IEJlcmhhcnJkIGRlIHhheSBkdW5nIGNhIGtoYWNoIHNhbiA1IHNhbywgY2h1bmcgY3UgY2FvIGNh cCwgYmlldCB0aHUsIA0KdHJ1bmcgdGFtIG11YSBzYW0uIA0KDQpHYW4gZGF5LCBkdSBsdWFuIG5o YW4gZGFuIFRQIEhhIE5vaSBkYWMgYmlldCBxdWFuIHRhbSBkZW4gZHUgYW4geGF5IGR1bmcga2hh Y2ggc2FuIA0KdGFpIENvbmcgdmllbiBUaG9uZyBOaGF0LiBUaGFuZyA2LzIwMDgsIGR1IGFuIHhh eSBkdW5nIGtoYWNoIHNhbiBTQVMgdHJlbiBkaWVuIHRpY2ggDQpnYW4gMWhhICh2b24gdGh1b2Mg Q29uZyB2aWVuIFRob25nIE5oYXQpIGR1b2Mga2hvaSBjb25nIHZvaSBjYWkgdGVuIE5vdm90ZWwg SGFub2kgb24gDQp0aGUgUGFyay4NCg0KTmdheSBsYXAgdHVjLCBuaGlldSBuaGEga2hvYSBob2Ms IGtpZW4gdHJ1YyBzdSwgbmhhIHF1eSBob2FjaCB2YSBkb25nIGRhbyBuaGFuIGRhbiBUUCANCkhh IE5vaSBkYSBwaGFuIHVuZyB2ZSBjaHV5ZW4gZG8uIERpZXUga2hpZW4gbmd1b2kgdGEgdGhhYyBt YWMgbGEgdGFpIHNhbyBtb3QgZHUgYW4geGF5IA0KZHVuZyBraGFjaCBzYW4gbG9uIGRlbiBuaHUg dmF5LCBvIG1vdCBkaWEgZGllbSBkYWMgZGlhIGRlbiBuaHVvbmcgYXkgc29uZyBkdW9uZyBuaHUg DQpraG9uZyBkdW9jIGNhYyBuaGEgcXVhbiBseSwgY2h1IGRhdSB0dSB0aG9uZyB0aW4gbW90IGNh Y2ggY29uZyBraGFpLCBtaW5oIGJhY2guDQoNCktob25nIGl0IG5odW5nIGNvbmcgZGFuIGN1YSBU UCBIYSBOb2kgbmdheSBuYXkgZGEgYm8gcmF0IG5oaWV1IGNvbmcgc3VjLCBjaHVuZyB0YXkgDQp4 YXkgZHVuZyBDb25nIHZpZW4gVGhvbmcgTmhhdCB0dSBuaHVuZyBuYW0gNTAgY3VhIHRoZSBreSBY WCBwaGFuIHVuZyBtb3QgY2FjaCBkdSANCmRvaSB2ZSB2YW4gZGUgbmF5LiANCg0KQmFjIEhvYW5n IFZhbiBUaGFuaCwgbmhhIHRyZW4gcGhvIFZ1IFRyb25nIFBodW5nIGJheSB0bywgbmdheSBheSBi YWMgbW9pIG5nb2FpIDIwIA0KdHVvaSwgZHVvYyBDaGluaCBwaHUga2V1IGdvaSBjaHVuZyB0YXkg Y3VuZyBoYW5nIG5nYW4gdGhhbmggbmllbiBraGFjIHRoYW0gZ2lhIGRhcCBkYXAsIA0KdmV0IGhv LCB0cm9uZyBjYXkuLi4gZGUgeGF5IGR1bmcgQ29uZyB2aWVuIFRob25nIE5oYXQuIA0KDQpUYXQg Y2EgY3VuZyBjaGkgdmkgbW90IG11YyBkaWNoIGxhIGRlIGRhaSBkYSBzbyBuaGFuIGRhbiBjbyBu b2kgbmdoaSBuZ29pLCBuZ3VvaSBnaWEgY28gDQpub2kgaG9uZyBtYXQsIHRhcCB0aGUgZHVjLCB0 cmUgY29uIGNvIGNobyBjaGF5IG5oYXkgdnVpIGNob2kuIFZheSBtYSBoaWVuIG5heSBuZ3VvaSB0 YSANCmRhbmcgeGF5IGR1bmcga2hhY2ggc2FuIGNoaSBkZSBwaHVjIHZ1IGNobyBtb3QgIm5odW0g bmd1b2kiIG5nYXkgdGFpIGRheS4gTmh1IHRoZSBsYSANCmR1bmcgaGF5IGxhIHNhaT8NCg0KTmdh eSAxMy8yLzIwMDksIG1vdCBsYW4gbnVhIGR1IGx1YW4gbmhhbiBkYW4gSGEgTm9pIGRheSBsZW4g bmh1bmcgdGhhYyBtYWMga2hpIHRyb25nIA0KbW90IGN1b2MgaG9wIGJhbywgVUJORCBIYSBOb2kg Y2hpbmggdGh1YyBraGFuZyBkaW5oIHF1eWV0IGRpbmggdGllcCB0dWMgY2hvIHRodWMgDQpoaWVu IGR1IGFuIGtoYWNoIHNhbiBOb3ZvdGVsIEhhbm9pIG9uIHRoZSBQYXJrIHRyZW4ga2h1IGRhdCB0 aWVuIHN1IHRodW9jIENvbmcgdmllbiANClRob25nIE5oYXQuIFBobyBjaGFuaCB2YW4gcGhvbmcg VUJORCBUUCBOZ3V5ZW4gVmFuIFRoaW5oIG5oaWV1IGxhbiBuaGFuIG1hbmggDQpkYXkgbGEgdmFu IGRlIHF1YSBraHUsIGRhIGR1b2MgInRob25nIHN1b3QgdHUgQ2hpbmggcGh1IGRlbiB0aGFuaCBw aG8iLCAibmVuIGtob25nIGJhbiANCnZpZWMgbmF5IG51YSIuDQoNCkNvbiB0aGVvIG9uZyBOZ3V5 ZW4gTWluaCBDaHVuZywgUGhvIHRvbmcgZ2lhbSBkb2MgVG9uZyBDb25nIHR5IER1IGxpY2ggSGEg Tm9pLCANCmRvaSB0YWMgcGhpYSBWaWV0IE5hbSBuYW0gZ2l1IDMwJSB2b24gdHJvbmcgZHUgYW4s IHRoaSBkdSBhbiBraGFjaCBzYW4gKG5heSBnb2kgbGEgDQpOb3ZvdGVsIEhhbm9pIG9uIHRoZSBQ YXJrKSB2b24gbWFuaCBuaGEgdHUgbmh1bmcgbmFtIDcwIGRlbiA5MC4gS2hpIGRvLCBudW9jIHRh IGRhbmcgDQpnYXAga2hvIGtoYW4gY2EgdmUga2luaCB0ZSBsYW4gdGh1IGh1dCBkYXUgdHUuIEhl IHRob25nIGRpY2ggdnUga2hhY2ggc2FuIG8gdGh1IGRvIGtob25nIA0Kbm9pIGRlbiB5ZXUgbWEg cmF0IHRoaWV1IG5oYXQgbGEga2hhY2ggc2FuIHBodWMgdnUgY2h1eWVuIGdpYSBudW9jIG5nb2Fp IGRlbiBnaXVwIGRvIGNodW5nIHRhLg0KDQpUaGVvIGRlIG5naGkgY3VhIGRvaSB0YWMgcGhpYSBu dW9jIG5nb2FpIHZlIHZpZWMgeGF5IGR1bmcgbW90IGtoYWNoIHNhbiBjbyBxdXkgbW8gbG9uIA0K aG9uIHF1eSBtbyBraGFjaCBzYW4gaGllbiBkYW5nIHhheSBkdW5nLCB0YWkgbWFuaCBkYXQgdGll cCBnaWFwIHZvaSBkdW9uZyBUcmFuIE5oYW4gDQpUb25nIHZhIGR1b25nIExlIER1YW4gbmdheSBu YXkuIENoaW5oIHF1eWVuIHRoYW5oIHBobyBkYSBuZ2hpZW4gY3V1LCBiYW8gY2FvIGxlbiANCnRy ZW4geGluIHkga2llbi4gDQoNClNhdSBuaGlldSBsYW4gYmFuIHRoYW8sIGxheSB5IGtpZW4sIG5h bSAxOTkxLCBVeSBiYW4gTmhhIG51b2MgdmUgaG9wIHRhYyBkYXUgdHUgZGEgY2FwIA0KZ2lheSBw aGVwIGNobyBsaWVuIGRvYW5oIGRhdSB0dSB4YXkgZHVuZyBraGFjaCBzYW4sIG1hIGRvaSB0YWMg VmlldCBOYW0gaGllbiBuYXkgbGEgDQpUb25nIENvbmcgdHkgRHUgbGljaCBIYSBOb2kuIFlldSBj YXUgY3VhIGR1IGFuLCBsYSBwaGFpIGRpIGRvaSBuaHVuZyBobyBkYW4gdmEgY2FjIA0KY29uZyB0 cmluaCBraGFjIGRlIGJhbiBnaWFvIDE1LjAwMG0yIG1hdCBiYW5nIHhheSBkdW5nIGtoYWNoIHNh bi4gDQoNCk5vaSBsb25nIHZvbmcgbmh1IHZheSwgc29uZyB0b20gbGFpIGNvIHRoZSBraGFpIHF1 YXQgdGhhbmggbW90IHkgdGhlIG5heS4gSGEgTm9pIGRhIGh1YSANCnZvaSBkb2kgdGFjIFRodXkg RGllbiwgY2h1IGRhdSB0dSBiYW4gZGF1IGN1YSBkdSBhbiB0aGVvICJjYW0ga2V0IHF1b2MgdGUg ZGEga3kiIHZhIGRheSANCmxhIGR1IGFuICJtYW5nIHRpbmggY2hhdCBhbiBuZ2hpYSwgbHVjIGto byBraGFuIGhvIGRhIHZhbyB2b2kgY2h1bmcgdGEiLiANCg0KVHV5IG5oaWVuLCBkdW9jIGJpZXQg ZG9pIHRhYyBudW9jIG5nb2FpIGhpZW4gZ29wIHZvbiB4YXkgZHVuZyBOb3ZvdGVsIEhhbm9pIG9u IHRoZSANClBhcmsga2hvbmcgY29uIGxhIFRhcCBkb2FuIFNBUyBjdWEgVGh1eSBEaWVuLCBudW9j IGJhbiBkYSBjbyBuaGlldSAiYW4gbmdoaWEiIHZvaSANClZpZXQgTmFtLiBDaHUgZGF1IHR1IGN1 YSBkdSBhbiBoaWVuIG5heSBsYSBUYXAgZG9hbiBBY2NvciAtIFRhcCBkb2FuIERhdSB0dSBTSUgg THRkLiANCih0cnUgc28gdGFpIFNpbmdhcG9yZSkgbGllbiBkb2FuaCB2b2kgVG9uZyBDb25nIHR5 IER1IGxpY2ggSGEgTm9pLg0KDQpDaHVuZyB0b2kgZGEgbGllbiBoZSB2b2kgU28gUXV5IGhvYWNo IC0gS2llbiB0cnVjIEhhIE5vaSBkZSB0aW0gY2F1IHRyYSBsb2kuIEtoaSBjaHVuZyANCnRvaSB2 dWEgbmhhYyB0b2kgY3VtIHR1OiAiQ29uZyB2aWVuIFRob25nIE5oYXQiLCBvbmcgRG8gVmlldCBD aGllbiwgUGhvIGdpYW0gZG9jIFNvIA0Kbm9pIGx1b246ICJMYXUgbmF5IHRvaSBraG9uZyBjb24g bmFtIHZhbiBkZSBkbyBudWEsIGNhYyBhbmggbmVuIGhvaSBHaWFtIGRvYyIuIA0KDQpDaHVuZyB0 b2kgbGllbiBnb2kgdG9pIHNvIGRpZW4gdGhvYWkgY3VhIG9uZyBUbyBBbmggVHVhbiAtIEdpYW0g ZG9jIFNvIHRoaSBsYW4gdGh1IG5oYXQgDQpuaGFuIGR1b2MgY2F1IHRyYSBsb2k6ICJEYW5nIGhv cCwgZGFuZyBob3AiLiBLaG9uZyBuYW4gbG9uZywgbGFuIHRodSBoYWkgY2h1bmcgdG9pIGRlIA0K bmdoaSB4aW4gZHVvYyBiaWV0IHkga2llbiBjdWEgb25nIHRydW9jIHZpZWMgVUJORCBUUCBIYSBO b2kgY2hpbmggdGh1YyBraGFuZyBkaW5oIA0KcXV5ZXQgZGluaCB0aWVwIHR1YyBjaG8gdGh1YyBo aWVuIGR1IGFuIGtoYWNoIHNhbiB0cmVuIGtodSBkYXQgdGllbiBzdSB0aHVvYyBDb25nIHZpZW4g DQpUaG9uZyBOaGF0IHNvbmcgY2hpIG5oYW4gZHVvYyBtb3Qgc3UgaW0gbGFuZyBraG8gaGlldSAo IT8pLg0KDQpQaGFpIGNvIG1vdCB0dSBkdXkgInJvbmciIGhvbiB2ZSBxdWFuIGx5IGRvIHRoaQ0K DQpQR1MsIFRTIEh1eW5oIERhbmcgSHksIFRvbmcgdGh1IGt5IEhvaSBRdXkgaG9hY2ggUGhhdCB0 cmllbiBkbyB0aGkgVmlldCBOYW0gcGhhbiANCnRpY2g6IGNvbmcgdmllbiBjbyB0aGUgaGlldSBu b20gbmEgbGEgbW90IGNhaSAidnVvbiBjb25nIGNvbmciLCB0cm9uZyBkbyBjaHUgeWV1IGxhIA0K dHJvbmcgY2F5IHhhbmggZGUgcGh1YyB2dSBraGFjaCBuZ2hpIG5nb2ksIGRhbyBjaG9pLCB0aHUg Z2lhbi4uLiBUcm9uZyB4YSBob2kgaGllbiBkYWksIA0Kc28gbHVvbmcgdmEgY2hhdCBsdW9uZyBj b25nIHZpZW4gY29uIGxhIG1vdCBjaGkgc28gZG8gdHJpbmggZG8gdmFuIG1pbmggY3VhIG1vdCB0 byBjaHVjIA0KeGEgaG9pIGRvIHRoaS4NCg0KSGEgTm9pIGNvIG1vdCBzbyBsdW9uZyBraGEga2hh IGNvbmcgdmllbiB2YSBobyBudW9jIHR1IG5oaWVuLCBkbyBsYSBkaWV1IHJhdCBkYW5nIHZ1aSAN Cm11bmcuIFNvbmcsIHRoZW8gdGhvaSBnaWFuLCBjYWMgY29uZyB2aWVuIG5nYXkgY2FuZyBiaSB0 aHUgaGVwLCBobyBudW9jIHRoaSB0cm8gdGhhbmggYW8gDQp0dSwgZG8gbGEgZGlldSByYXQgZGF1 IHhvdC4gSG9uIG51YSwgY28gc28gdmF0IGNoYXQgbmdheSBjYW5nIHh1b25nIGNhcC4uLg0KDQpO Z3V5ZW4gbmhhbiBjdWEgY2h1eWVuIGRvIHRydW9jIGhldCBsYSBkbyAidGFtIG5oaW4iIGN1YSBu Z3VvaSBxdXkgaG9hY2guIENvIHRoZSBub2kgDQpoaWVuIG5heSwgY2FjIG5oYSBxdXkgaG9hY2gg Y3VhIGNodW5nIHRhIGNvIHRhbSBuaGluIHRoZW8gIm5oaWVtIGt5Ii4gTWF5IGNoYW5nIHRyb25n IA0KMS0yIG5oaWVtIGt5IGhvIGNvIHRoZSB4YXkgZHVuZyBkdW9jIG1vdCBjb25nIHZpZW4gYmUg YmUuIFNvbmcgY3VuZyB2aSB2YXkgbWEgY2FjIA0KY29uZyB2aWVuIG8gSGEgTm9pIHRybyBuZW4g bmhvIGhlcCwgbWFuaCBtdW4uDQoNCkJlbiBjYW5oIGRvLCB0aGVvIFBHUy5UUyBIdXluaCBEYW5n IEh5IGNhY2ggcXVhbiBseSBjb25nIHZpZW4gbyBIYSBOb2kgaGllbiBuYXkgDQpkYW5nIHRyb25n IHRpbmggdHJhbmcgIm5hbSBjaGEgYmEgbWUiLiBOaGEgbnVvYyBnaWFvIGNobyBjb25nIHR5IHF1 YW4gbHkgY29uZyB2aWVuLCANCnNvbmcga2hpIG1hIGNvbmcgdmllbiB4dW9uZyBjYXAsIG5heSBz aW5oIG5oaWV1IHRlIG5hbiB4YSBob2kgdGhpIGN1bmcuLi4gY2hhIHRoZSBxdXkgDQp0cmFjaCBu aGllbSBjaG8gYWkuIEhheSBjb25nIHR5IHF1YW4gbHkgY29uZyB2aWVuIG11b24geGF5IHRoZW0g Y29uZyB0cmluaCB2dWkgY2hvaSwgDQp0YW8gdGhlbSBuZ3VvbiB0aHUgZGUgcXVheSB2b25nIHBo YXQgdHJpZW4gY29uZyB2aWVuIHRoaSBjdW5nIGtob25nIGRlIG1hIHhpbiBnaWF5IHBoZXAuIA0K DQpEYWMgYmlldCwgY2FjIG5oYSBxdXkgaG9hY2ggbXVvbiB4YXkgY2FpIGdpIGRpIGNoYW5nIG51 YSBjdW5nIGNhbiBwaGFpIGNvbmcga2hhaSwgbWluaCANCmJhY2ggY2FjIGR1IGFuIGRlIGRvbmcg ZGFvIG5ndW9pIGRhbiBnb3AgeSBraWVuLiBUcnVvYyBraGkgcmEgbW90IHF1eWV0IGRpbmggeGF5 IGhheSANCnBoYSwgY2FuIHBoYWkgY2FuIG5oYWMgbG9pIGljaCB0cnVvYyBtYXQgdm9pIGxvaSBp Y2ggbGF1IGRhaSwgbG9pIGljaCBjdWEgbW90IHRoaWV1IHNvIG5ndW9pIA0Kdm9pIGxvaSBpY2gg Y3VhIGNvbmcgZG9uZy4gTmh1IHZheSBtb2kgdGhlIGhpZW4gInRhbSBuaGluIiBjdWEgbmhhIHF1 eSBob2FjaC4NCg0KUEdTLlRTIEh1eW5oIERhbmcgSHkgY3VuZyByYXQgdGFtIGRhYyB2b2kgeSBr aWVuIGN1YSBvbmcgUGhhbSBTeSBMaWVtIC0gbmd1eWVuIA0KUGhvIENodSB0aWNoIFVCTkQgVFAg SGEgTm9pLCBuZ3V5ZW4gVGh1IHRydW9uZyBCbyBYYXkgZHVuZzogIk5odW5nIHZhbiBkZSBjdWEg DQpsaWNoIHN1IHBoYWkgZHVvYyBjYW4gbmhhYyB0aGF1IGRhbyBjaG8gcGh1IGhvcCB2b2kgdGhv aSBoaWVuIHRhaS4gWGVtIGNhaSBnaSB0aHVjIHN1IGNhbiANCmdpdSB0aGkgcGhhaSBnaXUsIGNh aSBnaSBjYW4gc3VhIHRoaSBwaGFpIHN1YSwgdGhhbSBjaGkgY28gY2FpIGNhbiB4b2Egc28iIHZh OiAiQ2FpIGdpIGxhbSANCmNodWEgZHVuZyB0aGkgY3UgaG9pIG5oYW4gZGFuLiBCYW5nIGNodW5n IGxhIG5odSBuaGlldSB2aWVjIHZ1YSBxdWEsIEhhIE5vaSBkYSBjaGl1IA0KbGFuZyBuZ2hlIHkg a2llbiBuZ3VvaSBkYW4sIGNvIHF1eWV0IGRpbmggaG9wIGxvbmcgZGFuLCB0aGkgbmd1b2kgZGFu IHBoYW4ga2hvaSBsYW0sIA0Kbmh1IHZ1IGNobyAxOS0xMiBkYXkiLg0KDQpDaHVuZyB0b2kgY3Vu ZyBuZ2hpIG5odSB2YXkhIA0KDQpodHRwOi8vdmlldGJhby52bi9LaW5oLXRlL1Z1b24tdGh1LVRo dS1MZS1WaS1zYW8tZ2l1LWxhaS0yLXNhbi10ZW5uaXMtc2FpLXBoYW0vNzAxMDIxMTEvODcvIE5n dXllbiBUdWFuIChUaGVvX1RpZW5fUGhvbmcpICBUaHUgdHUsIDMxIFRoYW5nIG11b2kgMjAwNywg MjA6MjEgR01UKzcgDQoNCkhhIE5vaTogVnVvbiB0aHUgVGh1IExlIC0gVmkgc2FvIGdpdSBsYWkg MiBzYW4gdGVubmlzIHNhaSBwaGFtPw0KDQpMaWVuIHF1YW4gZGVuIHh1IGx5IHZpIHBoYW0gdGFp IHZ1b24gdGh1IFRodSBMZSwgQ3R5IG5heSB2dWEgY28gYmFvIGNhbyBndWkgVUJORCBUUCANCkhh IE5vaSB2YSBjYWMgc28gbmdhbmguIFRoZW8gZG8sIEN0eSBWdW9uIFRodSBkYSBkZSBuZ2hpIGNo byBnaXUgbGFpIDIgc2FuIHRlbm5pcyBjbyANCm5oaWV1IHNhaSBwaGFtIHZvaSBkaWVuIHRpY2gg Y2hpZW0gZGF0IGxlbiB0b2kgaGFuZyBuZ2FuIG0yIQ0KDQooQW5oOiBDdHkgVnVvbiBUaHUgZGEg ZGUgbmdoaSBjaG8gZ2l1IGxhaSAyIHNhbiB0ZW5uaXMgY28gbmhpZXUgc2FpIHBoYW0gdm9pIGRp ZW4gdGljaCANCmNoaWVtIGRhdCBsZW4gdG9pIGhhbmcgbmdhbiBtMiEpDQoNCkJhbyBjYW8gY3Vh IEN0eSBWdW9uIHRodSBkYSBjYW4gY3UgdmFvIHN1IGNoaSBkYW8gdGFpIFRob25nIGJhbyBzbyAz MDMvVEItVUJORCANCm5nYXkgMTIvOS8yMDA3IGN1YSBVQk5EIHRoYW5oIHBobyBIYSBOb2kgdmEg ZGUgbmdoaSB0aGFuaCBwaG8gY2hvIGdpdSBsYWkgdG9pIDIgc2FuIA0KdGVubmlzIHZhIGtodSAi cGh1IHRybyIgKFRodW9jIEN0eSBIb2FuZyBWaW5oIHZhIEN0eSBWaWV0IFRoYW5oIHF1YW4gbHkp Lg0KDQpWaWVjIGRlIG5naGkgZ2l1IGxhaSAyIHNhbiB0ZW5uaXMgbmF5IGtob25nIGNvIGdpIGRh bmcgbm9pLCBuZXUgZGF5IGtob25nIHBoYWkgbGEgbmh1bmcgDQpjb25nIHRyaW5oIHNhaSBwaGFt IHZvaSB0b25nIGRpZW4gdGljaCBsZW4gdG9pIGhvbiA0LjEwMCBtMighPykuDQoNClRhaSBCYW8g Y2FvIHNvIDc2MyBjdWEgRG9hbiBUaGFuaCB0cmEgbGllbiBuZ2FuaCBUaGFuaCBwaG8ga2hhbmcg ZGluaDpUaGVvIGJpZW4gYmFuIA0KeHUgbHkgdmkgcGhhbSBjdWEgcGh1b25nIE5nb2MgS2hhbmgs IEN0eSBIb2FuZyBWaW5oIGRhIHhheSBkdW5nIGNvbmcgdHJpbmggc2FpIA0KcGhlcCwgdnVvdCBj aGkgZ2lvaSA2Nyw4bTI7IHhheSAyIHRhbmcga2llbiBjbywgdGhheSB2aSBjaGkgZHVvYyB4YXkg bmhhIHBodSB0cm8gY2FwIDQgDQpwaHVjIHZ1IGNobyBob2F0IGRvbmcgY3VhIHNhbiB0ZW5uaXMh DQoNCkNvbiBzYW4gdGFwIHRlbm5pcyBkbyBDdHkgVmlldCBUaGFuaCB2YSBjYWMgZG9pIHRhYyBs YW0gY2h1IGRhdSB0dSB4YXkgZHVuZyB0aGkgY2h1YSANCmxhbSBjYWMgdGh1IHR1YyBkYXUgdHUg bmh1bmcgZGEgY2hvIHhheSBkdW5nIGNvbmcgdHJpbmggdm9pIHRob2kgaGFuIDI1IG5hbSENCg0K RGFuZyBsdXUgeSwgcXVhIHRyaW5oIHJhIHNvYXQgY2FjIGhvcCBkb25nIGxpZW4ga2V0LCBjbyBx dWFuIGNvIHRoYW0gcXV5ZW4gZGEgcGhhdCBoaWVuOiANCm5hbSAxOTk3LCBjaGluaCBVQk5EIFRo YW5oIHBobyBIYSBOb2kgZGEga3kgcXV5ZXQgZGluaCBzbyA0MjIyL1FELVVCIGNobyBwaGVwIA0K eGF5IGR1bmcgbW90IHNhbiB0ZW5pcyBjaGllbSAyOTcwIG0yIGRhdCB0cm9uZyBraHVvbiB2aWVu IHZ1b24gdGh1Lg0KDQpEYXUgbmFtIDIwMDQsIHNhbiB0ZW5uaXMgbmF5IGR1b2MgImNodXllbiBu aHVvbmciIGNobyBtb3QgQ3R5IGtoYWMgdGh1ZSBsYWkgKHZpZWMgDQpuYXkgVnVvbiB0aHUgY28g YmFvIGNhbyBiYW5nIHZhbiBiYW4gdmEgZHVvYyBvbmcgTmd1eWVuIFZhbiBLaG9pLVBobyBHaWFt IGRvYyBTbyANCkdUQ0MgKGNodSBxdWFuIHZ1b24gdGh1IGx1YyBiYXkgZ2lvKSBkb25nIHkuDQoN Ck5obyBkbywgQ3R5IEhvYW5nIFZpbmgga3kgaG9wIGRvbmcgc3UgZHVuZyBzYW4gdGVubmlzIHRv aSAyMCBuYW0uIFRhaSBkYXksIEN0eSBIb2FuZyANClZpbmggZGEgeGF5IGR1bmcgaGUgdGhvbmcg bmhhIGhhbmcgUGhvIE5nb2kgZG8gc28uIFZlIHNhbiB0YXAgdGVubmlzIChzbyA3IERhbyBUYW4p OiANCnRoZW8gYmFvIGNhbyBjdWEgY28gY28gdGhhbSBxdXllbiwgbmFtIDIwMDIgdGhhbmggcGhv IEhhIE5vaSBkYSBjaG8gbGFwIHRoZW0gbW90IHNhbiANCnRlbm5pcyBuYXkuDQoNCkRpZXUgZGFu ZyBuZ2FjIG5oaWVuLCB2aWVjIHhheSBkdW5nIHRoZW0gc2FuIHRlbm5pcyBuYXkgY2hpIGR1YSB2 YW8gInBoaWV1IGh1b25nIGRhbiANCnh1IGx5IHZhbiBiYW4iIGN1YSBvbmcgTmd1eWVuIFF1b2Mg VHJpZXUtbHVjIGRvIGxhIFBobyBDaHUgdGljaCB0aGFuaCBwaG8ga3khDQoNCkNhbiBjdSB2YW8g ZG8sIHNvIEdUQ0Mga3kgZG9uZyBkYXUgdmFvIGNvbmcgdmFuIHhpbiBwaGVwIGN1YSBWdW9uIHRo dSBjaG8geGF5IA0KZHVuZyBzYW4gdGVubmlzIHJvbmcgdG9pIDEyMDAgbTIgKGtob25nIGxhbSBj YWMgdGh1IHR1YyBsYXAgZHUgYW4gdGhlbyBxdXkgZGluaCkuDQoNCk5nYXkgc2F1IGRvLCBjbyAz IGRvbiB2aSBsYSBDdHkgVmlldCBUaGFuaCwgSG9hIEJpbmgsIEN0eSBDbyBwaGFuIHR1IHZhbiBk YXUgdHUgeHVhdCANCm5oYXAga2hhdSB4YXkgZHVuZyBWaWV0IE5hbSAibGllbiBrZXQiIGtpbmgg ZG9hbmggeGF5IGR1bmcgc2FuIHRhcCB0ZW5uaXMsIHN1IGR1bmcgDQpkaWVuIHRpY2ggeGF5IG5o YSBwaHUgdHJvIGRlIGxhbSB0cnUgc28gdmEgY2FjIGhvYXQgZG9uZyBraGFjIHRhaSBkYXkuDQoN CkR1b2MgYmlldCwgdGFpIFZ1b24gdGh1IFRodSBsZSBjbyAxMyBkb24gdmkga3kgaG9wIGRvbmcg bGllbiBrZXQgbGllbiBkb2FuaCB2b2kgVnVvbiANCnRodSwgbmdvYWkgMSBzbyBkb24gdmkgc2Fp IHBoYW0gZGEgdHUgbmd1eWVuIHRoYW8gZG8gY29uZyB0cmluaCwgY2FjIGRvbiB2aSBjb24gbGFp IGhhdSANCmhldCBob2F0IGRvbmcga2luaCBkb2FuaCBkdW5nIGxvYWkgaGluaCwgY2h1YyBuYW5n IGR1b2MgVUJORFRQIEhhIE5vaSBjaG8gcGhlcCB0YWkgDQpRRCBzbyAyMjcvUUQtVUIgbmdheSAx Ni8xMi8yMDA1Lg0KDQpWaWVjIGNvIHF1YW4gY2h1YyBuYW5nIGJhbyBjYW8gdGhhbmggcGhvIGdp dSBsYWkgMiBzYW4gdGVuaXMgdmEgbmh1bmcgY29uZyB0cmluaCBjbyANCm5oaWV1IHNhaSBwaGFt ICJudXAgYm9uZyIgc2FuIHRlbm5pcyBsYSBkaWV1IGNhbiBwaGFpIHhlbSB4ZXQuIER1IGx1YW4g bmdoaSByYW5nLCBwaGFpIA0KY2hhbmcgMiBzYW4gdGVubmlzIG5heSBsYSAic2FuIHBoYW0iIGN1 YSB0aGFuaCBwaG8gbmVuIGR1b2MgcXV5ZW4gdG9uIHRhaSE/DQoNCkR1b2MgYmlldCwgY2FjIGRv biB2aSBjbyBob3AgZG9uZyBsaWVuIGtldCB2b2kgQ3R5IFZ1b24gdGh1IGNvIHRvIGNodWMgZGlj aCB2dSB2YW4gaG9hLQ0KdnVpIGNob2kgZ2lhaSB0cmksIGFuIHVvbmcgZGEgZG9uZyBsb2F0IGtp ZW4gbmdoaSBsYW5oIGRhbyB0aGFuaCBwaG8gY28gaHVvbmcgeHUgbHkgdGhvYSANCmRhbmcsIHRy ZW4gY28gc28gcXV5IGRpbmggY3VhIHBoYXAgbHVhdCB2YSBuaHVuZyBxdXkgZGluaCBtYSB0aGFu aCBwaG8gZGEgYmFuIGhhbmgsIA0KdHJvbmcgZG8gY28gUUQyMjcgbm9pIHRyZW4uDQoNCk5odSB2 YXksIGtoaSBnaWFpIHF1eWV0IHZhbiBkZSB0YWkgVnVvbiB0aHUgVGh1IExlLCBUaGFuaCBwaG8g cGhhaSBjYW4gY3UgdmFvIGNhIA0Kbmh1bmcgdmFuIGJhbiBkbyBtaW5oIGRhIGJhbiBoYW5oLCB0 cmFuaCB2aWVjIGRvIGxvaSBtb3QgY2hpZXUgY2hvIGNhcCBkdW9pLg0KTmFtIDIwMDUsIFVCTkQg VFAgSGEgTm9pIGNvIHF1eWV0IGRpbmggY2hvIHBoZXAgQ3R5IFZ1b24gdGh1IFRodSBsZSBkdW9j IGhvYXQgDQpkb25nIGtpbmggZG9hbmggZGljaCB2dSB2YW4gaG9hLWdpYWkgdHJpLCBhbiB1b25n ICghPykNCg0KVGhlbyBRdXlldCBkaW5oIDIyNy8yMDA1L1FELVVCIG5nYXkgMTYvMTIvMjAwNSBj dWEgVUJORCBUUCBIYSBOb2kgYmFuIGhhbmggDQpEaWV1IGxlIGhvYXQgZG9uZyBjdWEgQ3R5IFZ1 b24gdGh1IFRodSBsZSwgdGFpIGRpZXUgOCAoa2hvYW4gMikgcXV5IGRpbmg6DQoNClZ1b24gdGh1 IGR1b2MgImRheSBtYW5oIGhvYXQgZG9uZyBzYW4geHVhdCBraW5oIGRvYW5oIGRhIG5nYW5oIG5n aGUsIHRyb25nIHRhbSBsYTogDQpWdWkgY2hvaSBnaWFpIHRyaSwgZGljaCB2dSBhbiB1b25nIHZh IGNhYyBsb2FpIGRpY2ggdnUga2hhYyBuaHUgdmFuIG5naGUsIHRoZSBkdWMgdGhlIHRoYW8sIGR1 IGxpY2ggc2luaCB0aGFpLi4uIi4NCg0KVHJlbiBjbyBzbyBxdXlldCBkaW5oIG5heSwgQ3R5IFZ1 b24gdGh1IGRhIGt5IGtldCB0aWVwIGNhYyBob3AgZG9uZyBsaWVuIGRvYW5oLCBsaWVuIGtldCAN CnZvaSBjYWMgZG9uIHZpLCBjYSBuaGFuIHRvIGNodWMgZGljaCB2dSBuaHUgaGllbiBuYXkuIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOC8xMi84MTg3NzIvIFF1b2MgSHVu ZyAgMDU6MTUsIDE2LzEyLzIwMDggKEdNVCs3KQ0KDQpIYSBOb2k6IENodSB0aWNoIHBodW9uZyBk dXlldCBidWEgaGFuZyBuZ2hpbiBtMiBkYXQgY29uZw0KDQpIYW5nIG5nYW4gbWV0IHZ1b25nIGRh dCBkdW9jIGNhcCBnaWF5IGNodW5nIG5oYW4gcXV5ZW4gc3UgZHVuZyBkYXQgKEdDTlFTREQpIA0K dHJlbiBkaWVuIHRpY2ggZGEgZHVvYyB0aGFuaCBwaG8gcXV5IGhvYWNoIHRydSBzbyBVQk5EIHBo dW9uZywgdHJ1b25nIGhvYywga2h1IGRvIHRoaSANCm1vaS4uLiBUYXQgY2EgZGV1IGR1b2MgImR1 eWV0IiBib2kgb25nIExlIFZhbiBNYW8sIENodSB0aWNoIFVCTkQgcGh1b25nIFRoaW5oIA0KTGll dC4gVGhhbSBjaGksIG9uZyBNYW8gY29uIGNodSBkb25nIGNhcCBjaG8gY2hpbmggbWluaCB2YSBu Z3VvaSB0aGFuLi4uIA0KDQpEdXlldCBoZXQhCQ0KDQpUaGVvIGNhYyBiYW8gY2FvIGN1YSBCYW4g UXVhbiBseSBkdSBhbiBxdWFuIEhvYW5nIE1haSwgVUJORCBxdWFuIEhvYW5nIE1haSB2YSANCmNh YyBjbyBxdWFuIGNodWMgbmFuZyB0aGkgdGFpIGNvbmcgdHJpbmggZHUgYW4gVHJ1b25nIFRIQ1Mg VGhpbmggTGlldCwgdHUgbmFtIDIwMDQgZGEgDQpjbyBjYWMgcXV5ZXQgZGluaCB0dSBTbyBxdXkg aG9hY2gga2llbiB0cnVjIHZhIFVCTkQgcXVhbiBIb2FuZyBNYWkgdmUgZ2lvaSB0aGlldSBkaWEg DQpkaWVtLCBxdXlldCBkaW5oIGRhdSB0dS4gDQoNCihBbmg6IFRydW9uZyBUSENTIFRoaW5oIExp ZXQgZGEgZHVvYyBxdXkgaG9hY2guIEFuaDpRdW9jIEh1bmcpDQoNCk1hYyBkdSBiaWV0IGNoYWMg bmh1IHRoZSBuaHVuZyBvbmcgTGUgVmFuIE1hbywgQ2h1IHRpY2ggVUJORCBwaHVvbmcgVGhpbmgg TGlldCBkYSANCnRydWMgdGllcCBreSBjYWMgZ2lheSB4YWMgbmhhbiBnaXVwIGNobyAzMCBobyBk YW4gdGh1b2MgZGllbiBkYXQgcXV5IGhvYWNoIG5heSBkdW9jIGNhcCANCnNvIGRvLCB0YXQgY2Eg ZGllbiByYSBzYXUgcXV5IGhvYWNoLiBOaGlldSBobyBkYW4gbmdoaWVtIG5oaWVuIGNvIGdpYXkg Y2h1bmcgbmhhbiANCnF1eWVuIHN1IGR1bmcgZGF0IChHQ05RU0REKSB2b2kgZGllbiB0aWNoIGhv biAxMDBtMiB2YSBkdW9jIHJhbyBiYW4gdGllbiB0eS4gDQoNCkN1IHRoZSwgb25nIE1hbyB2YSB0 aHVvYyBjYXAgZGEgdGhhbSBtdXUgY2hvIGxhbmggZGFvIFVCTkQgcXVhbiBjYXAgR0NOUVNERCAN CmNobyAzMCBobyBnaWEgZGluaCB2b2kgZGllbiB0aWNoIDQuMDAyIG0yIGRhdCB0cmVuIGtodSB2 dWMgZGEgZHVvYyBjaGluaCB0aGFuaCBwaG8gSGEgDQpOb2kgdmEgVUJORCBxdWFuIEhvYW5nIE1h aSBxdXkgaG9hY2ggeGF5IGR1bmcgdHJ1b25nIFRIQ1MuIA0KDQpEaWVuIHRpY2ggbG9uIG5oYXQg bGVuIHRvaSAyMjVtMi4gQ2FjIGhvIGRhbiBkdW9jIGNhcCBHQ05RU0REIG5odSBobyBUcmluaCBI dXUgDQpUaHU7IERhbmcgVGhpIE5odW5nOyBMZSBWYW4gQ29pOyAgTGUgVGhpIFRodXkgSGE7IExl IEhhaSBUaG9haS4uLiBkZXUgZHVvYyBuZ2hpZW0gDQpuaGllbiBzYXUga2hpIGRpZW4gdGljaCBk YXQgZGEgZHVvYyBxdXkgaG9hY2guIE5oaWV1IGhvIGRhbiBvIGRheSBkYSBjaHV5ZW4gbmh1b25n IG5oYW5oIGNob25nIGtoaSBjbyBHQ05RU0RELiANCg0KIkJhbiIgZGF0IHRydW9uZyBob2MgY2h1 YSB0aG9hLCBvbmcgTGUgVmFuIE1hbyBjb24gdGhhbSBtdXUgY2hvIGxhbmggZGFvIFVCTkQgDQpx dWFuIEhvYW5nIE1haSBjYXAgR0NOUVNERCBjaG8gMjEgaG8gZGFuIHZhbyBkaWVuIHRpY2ggZGF0 IGRhIHF1eSBob2FjaCB4YXkgZHVuZyANCnRydSBzbyBVQk5EIHBodW9uZyBUaGluaCBMaWV0LCBj b25nIGFuIHBodW9uZyB2b2kgZGllbiB0aWNoIDEuMjUxIG0yLiANCg0KTmhpZXUgR0NOUVNERCBk dW9jIFVCTkQgcGh1b25nIGxhbSB0aHUgdHVjIGNhcCB2YW8gbmFtIDIwMDcsIHNhdSBraGkgZHUg YW4geGF5IA0KZHVuZyBkdW9jIGNhcCBjbyB0aGFtIHF1eWVuIHBoZSBkdXlldC4gQ2FjIGhvIGRh biBuYXkgY3VuZyBuaGFuaCBjaG9uZyBjaHV5ZW4gDQpuaHVvbmcsIG11YSBiYW4uIE5odW5nIG5n dW9pICJjaGFuIHVvdCBjaGFuIHJhbyIgZGVuIG11YSBkYXQgcGhhaSBjaGl1IHRoaWV0IHRob2kg a2hpIA0KZHVuZyB0cnVvYyBuZ3V5IGNvIGJpIHRodSBob2kgc28gZG8uDQoNCktob25nIGR1bmcg bGFpIG8gZG8sIGRhdCBkYWkgdHJvbmcga2h1IHF1eSBob2FjaCB4YXkgZHVuZyBraHUgZG8gdGhp IFRydW5nIEtlbmggKERhcCANCkNoaW0pIGN1bmcgY28gcXV5IGhvYWNoIG5odW5nIG5oaWV1IGhv IHZhbiBkdW9jIGNhcCBzbyBkbyBzYXUgZG8uIFJvaSBoYW5nIGxvYXQgZGllbiANCnRpY2ggdGFp IGtodSBxdXkgaG9hY2ggY2F5IHhhbmggdG8gZGFuIGN1IDMxLCB0byAyNi4uLmN1bmcgZHVvYyBj YXAgaGV0LiANCg0KVGhlbyBkaWV1IHRyYSBjdWEgcGhvbmcgdmllbiwgdGFpIGRpZW4gdGljaCBx dXkgaG9hY2gga2h1IGRvIHRoaSBtb2kgVHJ1bmcgS2VuaCwgb25nIExlIA0KVmFuIE1hbyBjdW5n IGRhIGxhbSB0aHUgdHVjIGRlIGNhcCBHQ05RU0REIGNobyBjYWMgY2h1YyBobyBkYW4gc2F1IGto aSBraHUgZG8gdGhpIA0KbmF5IGRhIGNvIHF1eSBob2FjaCAxLzUwMC4gRGF5IGxhIG5odW5nIHNh aSBwaGFtIG5naGllbSB0cm9uZyB2YSBraG9uZyB0aGUgY2hhcCBuaGFuIA0KZHVvYyBjdWEgb25n IExlIFZhbiBNYW8uIA0KDQpUaGVvIGJhbiBrZSBtYSBwaG9uZyB2aWVuIGNvIGR1b2MsIGtob2Fu ZyA2MCBobyBkYW4gZHVvYyBjYXAgR0NOUVNERCBzYXUga2hpIGRhIA0KY28gcXV5IGhvYWNoIGNo aSB0aWV0IGtodS4gSGF1IGhldCBjYWMgaG8gZGFuIGRldSBvIHRvIDEwIHZhIGR1b2MgY2FwIHNv IGRvIHZhbyBuYW0gDQoyMDA2LiBDdSB0aGUgbmh1IGNhYyBobzogQnVpIE5nb2MgVGllcCB2b2kg MTI5IG0yOyBMZSBOZ29jIEFuIHZvaSAxNTEgbTI7IE5ndXllbiANClRodSBIdW9uZyB2b2kgMTIw LDQgbTI7IE5ndXllbiBWYW4gVGhpbiB2b2kgMTIxLDQgbTI7IE5ndXllbiBOYW0gKDIxNyBtMik7 IEJ1aSBWYW4gVGhvIA0KKDE3OSBtMik7IEJ1aSBWYW4gVXllbiAoMTY1LjUgbTIpOyBWdSBIdXUg TWFvICgxODAgbTIpLi4uDQoNCkNhcCBkYXQgY2hvIGNhIGhvIGhhbmcsIGdpYSBkaW5oDQoNClRh aSBraHUgZGF0IHF1eSBob2FjaCBjYXkgeGFuaCB0byAzMSwgb25nIExlIFZhbiBNYW8gY3VuZyBj aGkgZGFvIGNobyBjYWMgdGh1b2MgY2FwIA0KY3VhIG1pbmggY2FwIEdDTlFTREQgY2hvIDY4IGhv IGRhbi4gVHJvbmcgc28gZG8gY28gbmhpZXUgbmd1b2kgbGEgbGEgYmEgY29uIHRoYW4gDQp0aHVv YyBjdWEgb25nIExlICBWYW4gTWFvLiBEYWMgYmlldCwgZ2lhIGRpbmggb25nIE1hbyBjdW5nIGR1 b2MgY2FwLiBEaWVuIHRpY2ggcXV5IA0KaG9hY2ggY2F5IHhhbmggbWEgbmhhIG9uZyBNYW8gZHVv YyBjYXAgR0NOUVNERCBvIHRvIDMxIGxhIDEyNm0yLiANCg0KKEFuaDogS2h1IGRvIHRoaSBtb2kg VHJ1bmcgS2VuaCBjdW5nIGNvIHF1eSBob2FjaC4gIEFuaDpRdW9jIEh1bmcpDQoNClRoZW8gcXV5 IHRyaW5oIGNhcCBHQ05RU0QgdGhpIGNhYyBobyBkYW4gY28gZGF0LCBjbyBuZ3V5ZW4gdm9uZyB0 aGkgcmEgVUJORCBwaHVvbmcgDQp4aW4gaG8gc28gdmUga2Uga2hhaS4gU2F1IGRvIG5vcCBsYWkg Y2hvIFVCTkQgcGh1b25nIHZhIENodSB0aWNoIFVCTkQgcGh1b25nIExlIA0KVmFuIE1hbyBsYSBu Z3VvaSBreSBjYWMgZ2lheSB4YWMgbmhhbiBkZSBobyBzbyBheSBkdW9jIGNodXllbiBsZW4gY2Fw IGhhbmggY2hpbmggcXVhbiANCnhlbSB4ZXQgY2FwLiANCg0KTmh1IHRoZSwgY2hpbmggcXV5ZW4g Y28gc28gbGEgbm9pIG5hbSBkdW9jIHRob25nIHRpbiwgY2FjIGRlIHh1YXQgbGEgY2h1YW4geGFj IG5oYXQgdmEgDQpwaGFpIGNoaXUgdHJhY2ggbmhpZW0uIFR1eSBuaGllbiB0cmFjaCBuaGllbSBr aG9uZyB0aGUgYmFjIGJvIHRyb25nIHZpZWMgbmF5IGxpZW4gcXVhbiANCnRvaSBsYW5oIGRhbyBV Qk5EIHF1YW4gSG9hbmcgTWFpIHZhIHBob25nIFRhaSBuZ3V5ZW4gbW9pIHRydW9uZy4gDQoNClZp ZWMgb25nIExlIFZhbiBNYW8gZ2l1cCBjaG8gbmhpZXUgbmd1b2kgZGFuIGR1b2MgY2FwIGRhdCB0 cm9uZyBjYWMgdmkgdHJpIHF1eSBob2FjaCANCmhpZW4gbmF5IGtob25nIGNoaSBnYXkga2hvIGto YW4gY2hvIHRpZW4gZG8gdGh1YyBoaWVuIGNhYyBkdSBhbiBtYSBjb24ga2hpZW4gY2hvIGR1IA0K bHVhbiBxdWFuIGNodW5nIG5oYW4gZGFuIHZhIGNhbiBibywgZGFuZyB2aWVuIHRyb25nIHBodW9u ZyBsYXUgbmF5IHJhdCBidWMgeHVjLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5o dHJpLzIwMTAwOC9Cby1DaGluaC10cmktZG9uZy10aW5oLXBodW9uZy1hbi1uaGFuLXN1LWN1YS1I YS1Ob2ktOTMyMTc5LyBUVFhWTiAgMjM6MjMsIDI3LzA4LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6 IA0KDQotIEtpbmggdGUgcGhhdCB0cmllbiBjaHVhIHR1b25nIHh1bmcgdm9pIHRpZW0gbmFuZywg dGhlIG1hbmggdmEgdmkgdGhlIGN1YSBUaHUgZG87IA0KDQotIENoYXQgbHVvbmcsIGhpZXUgcXVh LCBzdWMgY2FuaCB0cmFuaCBjdWEgc2FuIHBoYW0gY29uIHRoYXA7IA0KDQotIEtpbmggdGUgdHJp IHRodWMsIGhhbSBsdW9uZyBjaGF0IHhhbSBjbyBnaWEgdHJpIGdpYSB0YW5nIGNhbyBjdWEgY2Fj IG5nYW5oIGtpbmggdGUgY2h1IGx1YyBjaHVhIHJvIG5ldDsgDQoNCi0gU3VjIGxhbiB0b2EgY3Vh IG1vdCAidHJ1bmcgdGFtIGtpbmggdGUgbG9uLCIgdmFpIHRybyBjdWEgbW90ICJkb25nIGx1YyBr aW5oIHRlIiB0cm9uZyB2dW5nIGtpbmggdGUgdHJvbmcgZGllbSBCYWMgQm8gdmEgY2EgbnVvYyBj aHVhIGR1b2MgcGhhdCBodXkgZGF5IGR1LiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2No aW5odHJpLzIwMTAwOC9Cby1DaGluaC10cmktZG9uZy10aW5oLXBodW9uZy1hbi1uaGFuLXN1LWN1 YS1IYS1Ob2ktOTMyMTc5LyBUVFhWTiAgMjM6MjMsIDI3LzA4LzIwMTAgKEdNVCs3KQ0KDQpIYSBO b2k6IA0KDQotIENvbmcgdGFjIHF1eSBob2FjaCwgeGF5IGR1bmcgdmEgcXVhbiBseSBkbyB0aGkg Y29uIG5oaWV1IHlldSBrZW07IA0KLSBIZSB0aG9uZyBoYSB0YW5nIGRvIHRoaSB2YSBub25nIHRo b24gY2h1YSBkb25nIGJvLCBjaHVhIGRhcCB1bmcgZHVvYyB5ZXUgY2F1IHhheSBkdW5nIHZhIHBo YXQgdHJpZW4gVGh1IGRvOyANCi0gTmhpZXUgdmFuIGRlIHRvbiB0YWkgbGF1IG5heSAocXVhbiBs eSBxdXkgaG9hY2gsIGRhdCBkYWksIHRyYXQgdHUgeGF5IGR1bmcsIHVuZyBuZ2FwLCBvIA0Kbmhp ZW0gbW9pIHRydW9uZywgdW4gdGFjIGdpYW8gdGhvbmcuLi4pIHR1eSBkYSB0YXAgdHJ1bmcgZ2lh aSBxdXlldCwgbmh1bmcgY2h1YSBkYXQgeWV1IGNhdS4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZu L3ZhbmhvYS8yMDEwMTAvTmhhLXZhbi1kdWMtY2hvYW5nLXZhbmctdmktZ2lhby10aG9uZy1IYS1O b2ktOTQxNTA3LyBKdWxpIFplaCAxNjowOCwgMTEvMTAvMjAxMCAoR01UKzcpDQoNCkNob2FuZyB2 YW5nIHZpIGdpYW8gdGhvbmcgSGEgTm9pOiBOZ3VvaSBIYSBOb2kgZGFuZyBsYW0gJ3hpZWMgdGFw IHRoZSc/DQoNCi0gIkRheSBraG9uZyBwaGFpIGxhIGdpYW8gdGhvbmcgbnVhLCBtYSBsYSBtb3Qg bWFuIHhpZWMgdGFwIHRoZS4gVG9pIGtob25nIGhlIGJpZXQgcmFuZyANCmNvIG5oaWV1IHhlIG1h eSBkZW4gdGhlIHhlcCBsb3QgdHJlbiBkdW9uZywgbmh1IHRoZSBudW9jIGNoYXkgdHJlbiBzb25n IHZheSIuIA0KDQpDdW5nIHRoZSBoZSB2b2kgRGFuaWVsIEtlaGxtYW5uIHZhIEp1ZGl0aCBIZXJy bWFuLCBKdWxpIFplaCAoc24gMTk3NCkgZHVvYyBkYW5oIGdpYSANCmxhIG1vdCB0cm9uZyBuaHVu ZyBuaGEgdmFuIHRyZSB0YWkgbmFuZyBuaGF0IGN1YSBEdWMgaGllbiBuYXkuIExhbiBkYXUgdGll biB0b2kgVmlldCANCk5hbSwgSnVsaSBaZWggc2UgZGkgZG9jIHR1IEJhYyB0b2kgTmFtLiBDaGkg c2UgZHVuZyBjaGFuIG8gTWFpIENoYXUsIEhhIE5vaSwgSGEgDQpMb25nLCBIb2EgTHUsIEh1ZSwg SG9pIEFuLCBOaGEgVHJhbmcgdmEgVFAgSG8gQ2hpIE1pbmguIERvYyBkdW9uZyBoYW5oIHRyaW5o LCBjaGkgDQpkYSB2aWV0IHJhIG5odW5nIHRyYWkgbmdoaWVtIGN1YSBtaW5oIGR1b2kgZGFuZyBu aGF0IGtpIGR1IGxpY2ggdmEgZ3VpIGNobyBWaWV0bmFtTmV0LiANCg0KKEFuaDogSnVsaSBaZWgg dGFpIGJ1b2kgZ2lhbyBsdXUgdm9pIGRvYyBnaWEgSGEgTm9pIHRhaSBWaWVuIEdvZXRoZSB0aGFu ZyAxMC8yMDEwLikNCg0KWGluIGdpb2kgdGhpZXUgYmFpIHZpZXQgZGF1IHRpZW4gY3VhIEp1bGkg WmVoIHZvaSB0dWEgS2hvaSBoYW5oLiBBbiB0dW9uZyBkYXUgdGllbiB2ZSBIYSANCk5vaSB2b2kg YmFuIGRpY2ggY3VhIFZpZW4gR29ldGhlIEhhIE5vaS4NCg0KS2hhcCBCZXJsaW4sIG5odW5nIGNv biBuZ3VhIGNodW0gYW8gbXVhIGR1bmcgZGFtIGNoYW4gdHJlbiBuaHVuZyBjYW5oIGRvbmcsIHRh aSBydSANCnh1b25nLiBPIEhhIE5vaSBjdW5nIHRoZSwgdGhlbyB0aW4gdHUgSW50ZXJuZXQsIGN1 bmcgbXVhLCBtYSBtdWEgY29uIGR1b2MgZHUgYmFvIHNlIA0Ka2VvIGRhaSBkZW4gaGV0IHR1YW4g c2F1IG51YS4gTmh1bmcgbmhpZXQgZG8gbyBkbyBraG9uZyBwaGFpIDggZG8gQywgbWEgbGEgMzUg ZG8gQy4gS2hpIA0KY2h1YW4gYmkgZG8gZGFjLCB0b2kgbW9pIGNob3QgcGhhdCBoaWVuIHJhIHJh bmcgbWluaCBraG9uZyBjbyBjYWkgYW8gbXVhIG5hbyBjYS4gT2ksIA0Ka2hvbmcgbGUgdHJvbmcg c3VvdCAzNiBuYW0gcXVhLCB0b2kgY2h1YSB0dW5nIGNhbiBkZW4gYW8gbXVhIGhheSBzYW8gLSBt YSBsYWkgbyBEdWMgbnVhIGNvIGRheT8NCg0KTWV0IG5odSB0dTogQ2FpIG1lbyBjaG8gbW9pIGNo dXllbiByYSBkaSBsYTogbmh1bmcgdHVhbiB0cnVvYyBkbywgYmFuIGNvIGNhIG51aSB2aWVjIA0K cGhhaSBsYW0sIGRlbiBub2kgc2F1IGRvIGJhbiBtZXQgdG9pIG11YyB0aHVjIHN1IG11b24gbmdo aSBuZ29pLiBNb3QgbG9hdCBjYWMgbmhhIGN1bmcgDQpjYXAgaG9wIGRvbmcgZG90IG5oaWVuIHRo YXkgcmFuZywgaG8gY2FuIHRvaSBndWkgZ2FwIG1vdCBiYWkgdmlldCwgbW90IGNodW9uZyB0cmlu aCwgbW90IA0KY3VvYyBwaG9uZyB2YW4sIGhvYWMgaG8gbXVvbiB0b2kgcGhhaSBkdWEgcmEgbW90 IHF1eWV0IGRpbmggbmFvIGRvLiBOaHUgdGhlIGNvIG5ndXkgDQpjbyB0b2kgc2Uga2hvbmcgdHJv IHZlIG51YS4gVm9pIGNhbSBnaWFjIGtob2FpIHRyYSwgdG9pIGRhdCBtb3QgaG9wIHRodSBkaWVu IHR1IHR1IGRvbmcsIA0Kbm9pIHJhbmcsIHRyb25nIHRob2kgZ2lhbiB0b2kgZGkgdmFuZyB0YXQg Y2EgRS1tYWlsIGd1aSBkZW4gc2UsIHRodSBuaGF0LCBraG9uZyBkdW9jIGRvYywgDQp2YSB0aHUg aGFpLCBzZSB0dSBkb25nIGJpIHhvYSAobW90IHZpZWMgY2hhbmcga2hvIGtoYW4gZ2kpLiBOaHVu ZyB0aHVjIHJhIGNhIGhhaSBkZXUgDQpraG9uZyBkdW5nLCBib2kgdG9pIG5naGUgbm9pLCBvIFZp ZXQgTmFtIG5ndW9pIHRhIGNvIHRoZSB0cnV5IGNhcCBJbnRlcm5ldCBjb25nIGNvbmcgY29uIA0K ZGUgaG9uIG8gQnJhbmRlbmJ1cmcgbmhpZXUuIE5odW5nIGR1IHNhbywgbW90IGhvcCB0aHUgdHUg ZG9uZyBuaHUgdGhlIGl0IHJhIGN1bmcgY28gdGFjIGR1bmcgbmh1IG1vdCByYW8gY2hhbiB2YXku DQoNCkNhbSBuYW5nIGR1IGxpY2ggVmlldCBOYW0sIENhbSBuYW5nIGR1IGxpY2ggVGhhaSBMYW4s IENhbSBuYW5nIGR1IGxpY2ggVHJ1bmcgUXVvYywgDQpDYW0gbmFuZyBkdSBsaWNoIENhbXB1Y2hp YSBkYXQgY2FuaCBuaGF1IHRhaSBxdWF5IGNoYXUgQSB0YWkga2h1IHZ1YyBDaGVjay1pbiBjdWEg DQpTYW4gYmF5IHF1b2MgdGUgRnJhbmtmdXJ0LiBBbiB0dW9uZyBkYXUgdGllbiB2ZSBkYXQgbnVv YyB2YSBjb24gbmd1b2k6IG5odW5nIHBodSBudSANCnhpbmggeGluaCwgbmh1bmcgZHVhIHRyZSBu Z29hbiBuZ29hbiwgbmh1bmcgbmd1b2kgZGFuIG9uZyBjaGF0IHBoYWMuIFRhdCBjYSBkZXUga2hp ZW4gDQpiYW4gY28gdGhlIGJhdCBjdW9pLCBtYWMgZHUgaGFuZyBuZ3VvaSBkdW5nIHhlcCBoYW5n IHRydW9jIHF1YXkga2VvIGRhaSBuaHUgdGhlIGRlbiANCkhhIE5vaSB2YXkuDQoNCkNvIGNhbSBn aWFjIHRodSB0dWMgeHVhdCBjYW5oIGNobyBtb2kgaGFuaCBraGFjaCBrZW8gZGFpIGNhIG51YSB0 aWVuZzogUXVhbmcgY2FuaCANCnh1bmcgcXVhbmggaGFuZyBuZ3VvaSB0cm9uZyBnaW9uZyBuaHUg byBtb3QgY29uZyB0eSB2YW4gdGFpIHZheS4gTmh1bmcgaGFuaCBraGFjaCANClZpZXQgTmFtIGRp IGN1bmcgY2h1eWVuIG1hbmcgdGhlbyBkdSB0aHUgdmUgSGEgTm9pLCBuYW8gbGEgbG8gdmkgc29u ZywgbWF5IHRyb24sIG1heSANCmh1dCBidWksIG1heSBpbiBsYXNlciwgdGhhbSBjaGkgY2Egbm9p IGNvbSBkaWVuIG51YS4gTW90IHZpIGNvbiBtYW5nIHRoZW8gbmd1eWVuIGNhIGJvIA0KaG9wIHRh bSwgYmFvIGdvbSBiZSwgdGhhbmggdmEgcGh1IGtpZW4sIGR1bmcgdHJvbmcgbmFtIHRodW5nIGNh Yy10b25nIGtob25nIGxvLiANCg0KTWFkZSBpbiBWaWV0bmFtOiBDbyBsZSBtb3QgbnVhIHNvIHF1 YSB0YW5nIGNvbmcga2VuaCBuYXkgZGFuZyB0cmVuIGR1b25nIHRybyB2ZSBxdWUgDQpodW9uZyBj dWEgbm8sIGRhdCBob24gaGFpIG11b2kgbGFuLCBuaG8gZHVvYyBjYXAgbmhhbiBoaWV1IGNoYXQg bHVvbmcgaGFuZyBob2EgRHVjIA0KdGhlbyBtb3QgY2FjaCBuYW8gZGF5LCBxdWEgY3VhIGhhaSBx dWFuIEZyYW5rZnVydC4gTmh1IHRoZSB0YWkgdG9pIG5naGUgZHVvYyBuaHVuZyBsb2kgDQpuYXkg dHUgbmh1bmcgbmd1b2kgdGhhbiBvIEhhIE5vaTogIlF1YXQgbWF5IG1pZW4gY2hlLiBPbmcgYW5o IHRvIHZ1YSBtYW5nIHR1IER1YyB2ZSANCmRheSEiLiBUb2kgbmhpbiB4dW9uZyB0cmFuZyBwaHVj IGN1YSBtaW5oOiBBbyBraG9hYyBoaWV1IEphY2stV29sZnNraW4sIGRlcCBxdWFpIGhhdSANCmhp ZXUgTmlrZSCWIHRhdCBjYSBkZXUgbWFkZSBpbiBWaWV0bmFtLg0KDQpUcmVuIHRodWMgdGU6IEJh biBjbyB0aGUgbmhhbiByYSBuZ2F5IGRhbiBUYXkgQXUgZHUgbGljaCBjaGF1IEEga2hpIG5oaW4g dmFvIG5odW5nIGJhIA0KbG8gbmh1YSwgcXVhbiBuaHVhLCBhbyBuaHVhLCBnaWF5IHRoZSB0aGFv IG5odWEsIHR1aSBidW9jIGJ1bmcgbmh1YSB2YSB0dWkgeGFjaCB0YXkgDQpuaHVhLiBEYW4gb25n IGhheSBkYW4gYmEgliBtb2kgbmd1b2kgZHUgbGljaCBkZXUgbWFuZyB0cmVuIG1pbmggaXQgbmhh dCBuYW0gdGh1IGN1YSANCmNhYyBoYW5nICJKYWNrIFdvbGZza2luIiBob2FjICJUaGUgTm9ydGhl cm4gRmFjZSIuIEN1IG5odSB0aGUgdGhlIGdpb2kgYmVuIG5nb2FpIGtob2kgDQpMaWVuIGhpZXAg Q2hhdSBBdSBsYSBtb3QgY3VvYyBsZW8gbnVpIEhpbWFsYXlhIGR1eSBuaGF0IHZheS4NCg0KS2hp IGRpIHRvaSBjbyBtYW5nIHRoZW8gbW90IGNhdSwgbW90IGNhdSBjaG90IGRlbiB2b2kgdG9pIHNh bmcgbmF5IGtoaSB0aW5oIGRheSwgbmh1bmcgDQp2aSB2b2kgY2h1YW4gYmkgbmVuIHRvaSBkYSBr aG9uZyBnaGkgbGFpOiAiQ28gY2FtIHRoYXkgbmh1IHRoZSBtaW5oIHZ1YSBidW9jIHJhIGtob2kg DQptb3QgYnVhIHRpZWMgdGhhbmggY29uZywgZGUgaGl0IHRobyBraG9uZyBraGkgdHJvbmcgbGFu aCBuZ29haSBjdWEgdHJvbmcgY2hvYyBsYXQsIHZhIGtoaSANCmNvIHF1YXkgdHJvIGxhaSB0aGkg ZG90IG5oaWVuIG1vdCBuZ3VvaSBkYW4gb25nIG5nb2kgY2hhbiBjdWEgZG9pIGNvIHBoYWkgdHJp bmggZ2lheSBtb2ksIA0KbmV1IGtob25nIHNlIGtob25nIGNobyBjbyB2YW8gdHJvIGxhaSCWIHRo ZSBsYSBjdW9jIGRvaSBjbyB0cm8gdGhhbmggbW90IHhhIGhvaSBraGVwIGtpbiwgDQp2YSBjbyBs YSBrZSBkdW5nIG5nb2FpLiINCg0KQ2FtIGdpYWMgYmF5IG5odSB0aGUgbmFtIHRyb25nIG5oYSB0 aHVvbmcgdmF5OiBNYXQgbm9uZywgdGFpIG5hbmcsIG11aSBjaGF5LCBjbyByYXQuIA0KQ28gcXVh cCBjaGFuIGRlbSwgY2h1bmcgdG9pIG5nb2kgY3VuZyBkbyBraGkgYnVhIGFuIHRvaSBkYSBkdW9j IHRpZXUgaG9hIGhldCB0dSBsYXUsIGRhaSANCmNvIGRvaSBjbyB0aWVwIHZpZW4gcmF1IHJpIHRy b25nIGJvIGFvIGRvIGN1YSBIYW5nIGhhbmcga2hvbmcgVmlldCBOYW0gZGVuIGRvbiBkZSANCmNo dW5nIHRvaSBjbyB0aGUgZHVuZyBkYXkgdmFvIG5oYSB2ZSBzaW5oLiBEdW9pIHRhbSBkZW0sIGN1 IHBoYWkgZGFtIGNoYW4gY2hvIG1hdSBkbyANCmRvbiB4dW9uZy4gVGhpbmggdGhvYW5nIGxhaSB0 aGVtIHRodW9uZyBnaGVuIHRpIG5oaW4gcXVhIHRhbSBjaGFuIGxlbiBraG9hbmcgaGFuZyANCm5o YXQgZGFuaCBjaG8gY2FjICJjb24gYmVuaCIgZ2lhdSBjby4gVGl2aSBjdSBiYXQsIGNhbSBnaWFj IGRhdSBlIGFtIGtoYXAgbmd1b2ksIGtob25nIA0KdGhlIG5ndSBkdW9jLiBUaG9pIGN1IGtlIG1v aSBzdTogY28gbGUgbW9pIGNodXllbiBzZSB0b3QgdmEgYmFuIHNlIHNvbSBkdW9jIGdpYWkgdGhv YXQgDQp0aG9pLg0KVGllbmcgcXVldCBkdW9uZyBiYW5nIGNoYXQgY2h1YSBrZW8gZGFpIGtoaSBt YXkgYmF5IGhhIGNhbmgsIHZhIGNoYW0gZHV0LiBNbyBjdWE6IEhhIA0KTm9pLiBNZXQgbmh1IG5n dW9pLiBLaG9uZyBraGkgbm9uZyBoYW0gaGFwLiBOaHVuZyB2ZXQgc2FuZyB4ZXQgcXVhIHZ1biB2 dXQuIFRodWMgdGUgDQpkbyBsYSBuaHVuZyB2ZXQgc2FuZyBwaGF0IHJhIHR1IG5odW5nIGRvaSBk YXkgdGhlIHRoYW8gY3VhIG5odW5nIGNhdSBiZSwgZ2lvbmcgbmh1IA0Kbmh1bmcgdmV0IHNhbmcg byBtb3Qgc2FuIG5oYXkgZGlzY28gdmF5Lg0KDQpOaGlldSB0aGFuaCBwaG8gbG9uIHRyZW4gdGhl IGdpb2kgbm9pIHRpZW5nIHZpIGdpYW8gdGhvbmcgaG9uIGxvYW4sIG5odSB0aGUgbW90IGtoaSBs YSANCm5ndW9pIG51b2MgbmdvYWkgYmkgdGhhIHZhbyBkbyB0aGkgYmFuIHNlIGtobyBtYSBzb25n IG5vaS4gUGFyaXMsIFJvbWEsIEJhYyBLaW5oLCBOZXcgDQpZb3JrLCBNb3Njb3csIHRoYW0gY2hp IG5nYXkgY2EgQmVybGluIGN1bmcgdmF5LiBOaHUgdGhlIHRhYyBkdW9uZyBsYSBjaHV5ZW4gZHVv bmcgDQpuaGllbiBvIGNhYyBkYWkgZG8gdGhpLCBnaW9uZyBuaHUgbW90IGFuaCBnYWMgY3VhIGR1 b25nIG5oaWVuIHBoYWkgY28gZG9pIGJhcCB0YXkgbHVjIA0KbHVvbmcgdmF5LiBPIG5odW5nIG5v aSBheSwgdGF0IGNhIGRldSBjbyBwaGFuIHF1YXkgY3VvbmcuIE5odW5nIG1hIG8gZGF5LCBtb25n IENodWEgDQpsYW0gY2h1bmcgY2hvIHRvaSEgTW9pIHRodSBjb24gcXVheSBjdW9uZyBnYXAgZG9p LCBraG9uZywgZ2FwIGNhIG11b2kgbGFuIG5odSB0aGUhIA0KRGF5IGtob25nIHBoYWkgbGEgZ2lh byB0aG9uZyBudWEsIG1hIGxhIG1vdCBtYW4geGllYyB0YXAgdGhlLiBUb2kga2hvbmcgaGUgYmll dCByYW5nIGNvIA0KbmhpZXUgeGUgbWF5IGRlbiB0aGUgeGVwIGxvdCB0cmVuIGR1b25nLCBuaHUg dGhlIG51b2MgY2hheSB0cmVuIHNvbmcgdmF5LiANCg0KVG9pIGtob25nIGhlIGJpZXQgcmFuZyBt b3QgZ2lhIGRpbmggZ29tIHZvIGNob25nIHZvaSBoYWkgZHVhIGNvbiBjbyB0aGUgdGhvYWkgbWFp IG5nb2kgDQpsb3QgdHJlbiBtb3QgY2hpZWMgeGUgVmVzcGEuIFRvaSBraG9uZyBiaWV0IHJhbmcg bmd1b2kgdGEgbGFpIGNvIHRoZSBjaG8gbmd1eWVuIGNhIG1vdCANCmNhaSB0dSBkYSBiYW5nIHhl IG1heS4gVG9pIGtob25nIGhlIGJpZXQgcmFuZywgbmd1b2kgdGEgdnVhIGNvIHRoZSBodXQgdGh1 b2MsIHZ1YSBnb2kgDQpkaWVuIHRob2FpLCB2dWEgZ2l1IG1vdCBkdWEgYmUgdHJvbmcgbG9uZywg dHJvbmcga2hpIHZhbiBkYW5nIGxhaSB4ZSBtYXkuIE1vaSBjaGllYyB4ZSANCmNoYXkgdHJlbiBk dW9uZyBjaGkgY28gdnVhIGR1IGNobyBiYW5nIGNoaW5oIGRvIGxvbiBjdWEgbm8sIGJvaSB2aSBu Z2F5IHNhdCBjYW5oIGNoaWVjIA0KeGUgZG8gbGEgbmh1bmcgY2hpZWMgeGUga2hhYy4gVGhpbmgg dGhvYW5nIGN1bmcgY28gb3RvLCB2YWkgbmd1b2kgZGkgeGUgZGFwIHZhIGtoYWNoIGRpIA0KYm8g KGNodW5nIHRvaSBoYXkgdmFpIGtoYWNoIFRheSBiYWxvIGtoYWMpLiANCg0KTmh1IHRoZSBtb3Qg ZG9uZyBzb25nLCB0YWMtcGhhbS1uZ2hlLXRodWF0LXRvbmctdGhlIG5heSBraG9uZyBjaGkgY2h1 eWVuIGRvbmcgdmUgDQptb3QgaHVvbmcsIG1hIHRyYW4gcmEgZHUgbW9pIGh1b25nLiBObyBob2Eg dmFvLCBubyB0YWNoIHJhLCBubyBxdWFuIGxheSBuaGF1LCBubyBkYW4gDQpjYWkgbmhhdS4gTm8g dHUgdHJvaSBjaGF5IGtob25nIG5ndW5nIG5naGkuIE1vdCBob2F0IGNhbmggdGhpZW4gbmhpZW4g a2kgdmksIGhpbmggdGhhbmggDQp0dSBxdWEgdHJpbmggY28gZ2lvaSBob2EgbmhhbmggY2hvbmcg a2V0IGhvcCB2b2kgc3UgdmFuZyBib25nIHRyaWV0IGRlIGN1YSB0YXQgY2EgY2FjIGxvYWkgDQpo aW5oIGdpYW8gdGhvbmcgY29uZyBjb25nIGRvIHRoaS4gTyBIYSBOb2kga2hvbmcgY28gdGF1IGRp ZW4gbmdhbSwga2hvbmcgY28gdGF1IGRpZW4gDQp0cmVuIG1hdCBkYXQsIGtob25nIGNvIHRhdSBu b2kgdGluaCwga2hvbmcgY28gdGF1IHRyZW4ga2hvbmcuIENoaSBjbyBtb3QgdmFpIHR1eWVuIHhl IA0KYnV5dCBnYW4gbmh1IHZvIGhpbmggdm9pIG5odW5nIGNodXllbiB4ZSBjdSBuaHUgdGhlIG1h dCBodXQgbyBkYXUgZG8gdmkgdGFjIGR1b25nLiANCk5ldSBtb3QgbmdheSBuYW8gZG8gbW9pIG5n dW9pIGRhbiBvIGRheSBkZXUgZHUgZ2lhdSBjbyBkZSBjbyB0aGUgc2FtIG8gdG8gcmllbmcsIGhh eSANCm1vdCBuZ2F5IGtpYSBWaWV0IE5hbSBiaSBXVE8gZXAgcGhhaSBibyBtdWMgdGh1ZSAyMDAl IGNobyBvIHRvIG5oYXAga2hhdSwgY28gbGUgDQptb2kgc3Ugc2UgY2hhbSBkdXQgdm9pIGdpYW8g dGhvbmcgbyBkYXkuDQoNCkJhaSBzYXU6IERvaSBxdWFuIGN1b3AgbmhhIGJhbmcgc2FjIHNvIA0K DQpKdWxpIFplaCBzaW5oIG5hbSAxOTc0IHRhaSBCb25uIChDSExCIER1YyBjdSkuIENoaSBob2Mg bmdhbmggTHVhdCB0YWkgUGFzc2F1IHZhIA0KTGVpcHppZywgZG9uZyB0aG9pIHRvdCBuZ2hpZXAg bmdhbmggbmd1IHZhbiB0YWkgVmllbiB2YW4gaG9jIER1YyB0YWkgTGVpcHppZy4gU2F1IGRvLCAN CmNoaSBjbyBuaGlldSBjaHV5ZW4gbHV1IHRydSBkdSBob2MgaG9hYyBsYW0gdmllYyB0YWkgTXks IEJhIExhbiwgSHVuZ2FyeSB2YSBCb3NuaWEtDQpIZXJ6ZWdvd2luYS4gQ2FjIHRyYWkgbmdoaWVt IG51b2MgbmdvYWkgY3VuZyBuaHUgbmh1bmcga2luaCBuZ2hpZW0gdGllcCB4dWMgdm9pIA0Kbmhp ZXUgZGFuIHRvYyBraGFjIG5oYXUgZGEgZHVvYyB0aGUgaGllbiBybyBuZXQgdHJvbmcgbmh1bmcg dGlldSB0aHV5ZXQgY3VhIGNoaS4gQ3VvbiANCnRpZXUgdGh1eWV0IGRhdSB0YXkgQWRsZXIgdW5k IEVuZ2VsICggVGhpZW4gdGhhbiB2YSBkYWkgYmFuZykgY3VhIGNoaSBkYSBkdW9jIGRpY2ggcmEg MjkgDQp0aHUgdGllbmcuIFRpZXUgdGh1eWV0IFNwaWVsdHJpZWIgZGEgZHVvYyBjaHV5ZW4gdGhl IHZhIGR1bmcga2ljaCB0YWkgTmhhIGhhdCBIYW1idXJnZXIgDQpTY2hhdXNwaWVsaGF1cyBuYW0g MjAwNi4gDQoNClRhYyBwaGFtIEFsbGVzIGF1ZiBkZW0gUmFzZW4uIEtlaW4gUm9tYW4gYmFvIGdv bSBjYWMgdGlldSBsdWFuIHZlIHhhIGhvaSwgY2hpbmggdHJpLCANCmx1YXQgcGhhcCB2YSB2YW4g aG9jIGRhIHR1bmcgZHVvYyBkYW5nIHRyZW4gY2FjIGJhbywgdGFwIGNoaSBsb24gY3VhIER1Yy4g SnVsaSBaZWggY29uIA0KdmlldCB2byBraWNoIENvcnB1cyBEZWxpY3RpLCB2byBraWNoIGRhdSB0 YXkgY3VhIGNoaSwgY2hvIGNodW9uZyB0cmluaCBSdWhyVHJpZW5uYWxlIA0KMjAwNy4gQ3VuZyBu YW0gbmF5LCBjaGkgeHVhdCBiYW4gY3VvbiB0aWV1IHRodXlldCB0cmluaCB0aGFtIFNoaWxmIChU aGFtIHR1IFNoaWYpLiBOYW0gDQoyMDA5LCBjaGkgY2hvIHJhIG1hdCBwaGllbiBiYW4gdGlldSB0 aHV5ZXQgY3VhIENvcnB1cyBEZWxpY3RpLiBDdW5nIHZvaSBEYW5pZWhsIA0KS2VobG1hbm4gdmEg SnVkaXRoIEhlcnJtYW4sIEp1bGkgWmVoIGR1b2MgZGFuaCBnaWEgbGEgbW90IHRyb25nIG5odW5n IG5oYSB2YW4gdHJlIHRhaSBuYW5nIG8gRHVjIGhpZW4gbmF5LiANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL3ZhbmhvYS8yMDEwMTAvQmFpLTItZG9pLXF1YW4tY3VvcC1uaGEtYmFuZy1zYWMt c28tOTQxNTc5LyBKdWxpIFplaCAoQW5oIHN1IGR1bmcgdHJvbmcgYmFpIGN1YSB0YWMgZ2lhIERh dmlkIEZpbmspIDAwOjQ2LCAxMi8xMC8yMDEwIChHTVQrNykNCg0KRG9pIHF1YW4gY3VvcCBuaGEg YmFuZyBzYWMgc28gY3VhIEhhIE5vaQ0KDQotICJOaHVuZyBjbyBnYWkgZGkgeGUgbWF5IG1hYyBh byBraG9hYyBob2EsIGtlbyBtdSBjaGUga2luIG1hdCwgbGFpIGNvbiB0aGVtIGNhIGtoYXUgDQp0 cmFuZyBzYWMgc28sIGtpbmggcmFtIHZhIG11IGJhbyBoaWVtIGJvYyB2YWkgaG9hIi4gDQoNCk5o YSB2YW4gRHVjIEp1bGkgWmVoIHRpZXAgdHVjIGNhdSBjaHV5ZW4gdHJlbiBWaWV0TmFtTmV0IHZv aSBiYWkgdmlldCB0aHUgaGFpIG1hbmcgdGVuIA0KIlBodSBudSBkaSB4ZSBtYXkuIFBobyBjbyIN Cg0KRHVuZyBxdWVuIGJhbSBjb2k6DQoNCk1hYyBkdSBvIGRheSBuZ3VvaSB0YSBjbyB0aGUgbGFt IG1vaSB2aWVjIGtoaSBkaSB4ZSBtYXksIGRlIGRhbmcgeSBuaHUgbyB0cmVuIHRhdSBkaWVuIA0K bmdhbSB2YXksIG5hbyBsYSBkb2MgYmFvLCBhbiB1b25nIHZhIHRybyBjaHV5ZW4sIG5odW5nIG5n dW9pIHRhIHZhbiBsdW9uIGNvbiB0aHVhIG1vdCANCm5nb24gdGF5IG5hbyBkbyBkZSBuaGFuIGNv aTogdGllbmcgY29pIGxhIGFtIHRoYW5oIHR1IG5oaWVuIGN1YSBkYW4gZGkgeGUgbWF5IG8gZGF5 LCANCmdpb25nIG5odSB0aWVuZyBob3QgbGEgYW0gdGhhbmggdHUgbmhpZW4gY3VhIGxvYWkgY2hp bSB2YXkuIA0KDQpUaWVuZyBjb2kgeGUga2V0IGhvcCB2b2kgc3UgbWV0IG1vaSwgc2F5IG1heSBi YXkgdmEgc29jIGtoaSBoYXUgKGtob25nIHBoYWkgbGEga2hvbmcgDQpraGkgbnVhLCBtYSBsYSBt b3Qgbm9pIHN1cCBub25nISkga2hpZW4gdG9pIHJvaSB2YW8gdHJhbmcgdGhhaSBtZSBtYW4sIHRy YW5nIHRoYWkgbWEgbyBkbyANCnN1IGtoYWMgYmlldCBnaXVhIHNvbmcgY2hldCBjaGFuZyBjb24g eSBuZ2hpYSBnaSBudWEsIG5vIGdpdXAgbW90IGtoYWNoIGR1IGxpY2ggbmh1IHRvaSANCmNvIHRo ZSB0aGFtIGdpYSB2YW8gZ2lhbyB0aG9uZyBvIGRheSwgbm9pIHJvIGhvbjogYmkgdGhhbSBnaWEg dmFvLCBtYSBraG9uZyBkZW4gbm9pIHBoYXQgDQpob2FuZyBsZW4gdmkgc28uIFRvaSBnaW9uZyBu aHUga2h1YyBnbyB0cm9pIHRyZW4gc29uZywgdmEgdG9pIGN1IGRlIG1pbmggdHJvaSBkaSBuaHUg dGhlLiANCkRvbmcgbnVvYyBzZSB0dSBiaWV0IGNhY2ggY2hheSBtYSBraG9uZyBuZ2hpZW4gbmF0 IHRvaS4NCg0KTmh1bmcgY28gZ2FpIGRpIHhlIG1heSBtYWMgYW8ga2hvYWMgaG9hLCBrZW8gbXUg Y2hlIGtpbiBtYXQsIGxhaSBjb24gdGhlbSBjYSBraGF1IA0KdHJhbmcgc2FjIHNvLCBraW5oIHJh bSB2YSBtdSBiYW8gaGllbSBib2MgdmFpIGhvYS4gTmh1IG1vdCBhbmggY2hvcCwgbmdvbiBuZ3Ug Y2h1cCANCm5nYXkgbGF5IGhpZW4gdHVvbmcsIG51b3QgdHJvaSwgdGlldSBob2EgdmEgYmFuIHJh IHRoYW5oIGtoYWkgbmllbSBjaGluaCB4YWM6IERvaSBxdWFuIA0KY3VvcCBuaGEgYmFuZyBzYWMg c28uIFRvaSBob2FuIGhpIG5nYW0gbmdoaWEga2hhaSBuaWVtIG5heSB0dSBtb2kgaHVvbmc6IHR1 eWV0IGRpZXUsIA0KY2h1YW4ga2hvbmcgY2FuIGNoaW5oLiAgDQoNClZhOiBkb2kgcXVhbiBjdW9w IG5oYSBiYW5nIHNhYyBzbyBuaHUgbGEgbHVjIGx1b25nIGdpbiBnaXUgaG9hIGJpbmggdHJvbmcg Y3VvYyB4dW5nIGRvdCANCmdpdWEgY2FjIG5lbiB2YW4gaG9hOiBDaHVuZyB0b2kgc2Uga2UgY2hv IG5odW5nIG5ndW9pIFRheSBBdSBkaWV1IGRvbiBnaWFuIGxhLCBtYWMgZHUgDQpjaGllYyBraGFu IGNodW0gdHJvbmcgZGFvIEhvaSwga2hvbmcgbmdoaSBuZ28gZ2ksIGxhIG1vdCBiaWV1IHR1b25n IHRvbiBnaWFvLCBuaHVuZyANCmNoaWVjIGtoYW4gY2h1bSBheSwgY3VuZyBuaHUgaGF1IGhldCBj YWMgYmlldSB0dW9uZyB0b24gZ2lhbyBraGFjLCBjb24gY28gbW90IGdpYSB0cmkgDQpzdSBkdW5n IGtobyBkYW5oIGdpYSBoZXQgZHVvYzogTm8gZ2l1cCBjaG9uZyB0aWEgbWF0IHRyb2kgKHVuZyB0 aHUgZGEpLi4uDQoNCihBbmg6IEp1bGkgWmVoIHZvIGN1bmcgYW4gdHVvbmcgdm9pIHRyYW5nIHBo dWMgcmEgZHVvbmcgY3VhIHBodSBudSBvIGRvIHRoaS4pIA0KDQpEYW4gY2h1bmc6IEhhIE5vaSEg RG9pIHF1YW4gY3VvcCBuaGEgYmFuZyBzYWMgc28gZGFuZyBkaSB0aWVuIHBob25nICh2YSBjaGF1 IEF1IGhvaSwgDQpiYW4gZHVuZyBxdWVuIHJhbmcsIGNoYXUgQSBsdW9uIGhpZXUgYmlldCBob24g YmFuLCBkdW5nIG5odSBiYXkgbGF1IGJhbiB0dW5nIGxvIHNvISk6IA0KS2hhdSB0cmFuZyB0b2Fu IHRoYW4gbmh1IGxhIG1vdCB0aG9pIHRyYW5nIGN1YSBuaHVuZyBuaGEgdmUgc2luaCBzdWMga2hv ZSBjdW9uZyB0aW4uIA0KRG90IG5oaWVuIHRoZSBnaW9pIEhvaSBnaWFvIGRhbmggbWF0IGJpZXUg dHVvbmcgZG9jIG5oYXQgdm8gbmhpIGN1YSBtaW5oLCBjb24gdGhlIGdpb2kgDQpUaGllbiBjaHVh IGdpYW8gY3VuZyBtYXQgZGkgYmlldSB0dW9uZyB0aHUgZGljaC4gQWRpZXUsIENsYXNoIG9mIENp dmlsaXphdGlvbnMuIChLaG9uZyANCnBoYWkgdG9pIGRhbmcgbm9pIGRhdSwgbWEgbGEgaGF1IHF1 YSBjdWEgc2F5IG1heSBiYXksIEpldGxhZy4pDQoNClNhcCBkYXQgZGF1IHJhIGRheSwgbmd1b2kg VmlldCBOYW06IE1vaSBuZ29pIG5oYSBsYSBtb3QgY3VhIGhhbmcsIGNvbiBuaHVuZyBjdWEgaGFu ZyANCnRoaSBsYWkgZ2lvbmcgbmh1IHRob2kgdGlldDogVGhvbmcga2UgY2hvIHRoYXksIGR1IGJh byB0aG9pIHRpZXQgY2hhYyBjaGFuIG5oYXQgbGEgbm9pIHJhbmcgDQp0aG9pIHRpZXQgbmF5IG1h aSBzZSBnaW9uZyBuaHUgaG9tIG5heS4gRHUgYmFvIGNoYWMgY2hhbiBuaGF0IGNobyB2aWVjIGxh bSBhbiBjdWEgY2FjIA0KY3VhIGhhbmcgbmd1b2kgVmlldCBOYW0gbGEsIGhheSBiYW4gbmh1bmcg bWF0IGhhbmcgZ2lvbmcgaGV0IG5odSBhbmggaGFuZyB4b20gY3VhIA0KYmFuLiBCb2kgdGhlIG1v aSBjbyBwaG8gSGFuZyBUaHVuZywgcGhvIEhhbmcgQ2FuLCBwaG8gSGFuZyBEb25nLCBwaG8gaGFu ZyBLaGF5LCANCnBobyBoYW5nIERpZXU7IGJvaSB0aGUgbW9pIGNvIG5odW5nIGNvbiBwaG8gYmFu IHRvYW4ga2hhbiwgbXU6IHBoaWEgYmVuIG5heSBiYW4gdG9hbiANCmtodXkgYW8sIHBoaWEgYmVu IGtpYSBiYW4gdG9hbiBjYXAgdG9jLiBDbyBwaG8gYmFuIHRvYW4gZG8gY2hvaSB0cmUgZW0sIGNv IHBobyBiYW4gdG9hbiANCm5vaSBjb20gZGllbiwgY28gcGhvIGJhbiB0b2FuIHR1aSB4YWNoLiBM YWkgY28gcGhvIGJhbiB0b2FuIG1hbmgsIHZhIHRoYW0gY2hpIChkZW4gZGF5IA0KdGhpIHRvaSBo dWEgc2Uga2hvbmcga2UgdGhlbSBudWEpIGNvIHBobyBiYW4gdG9hbiBiYW5nIGRpbmguIE1vaSBi aWV0LCBuZ2F5IGNhIHN1IGhvbiANCmxvYW4ga2hvbmcgbG8gbmhhdCBjdW5nIGNoaSBsYSBzdSB0 aHUgbmhvIGN1YSBxdXkgbHVhdC4NCg0KVG9pIGRhIGx1b24gbmdoaSByYW5nLCBuaHVuZyB0aHUg a2l0c2NoIFZpZXQgTmFtIGNoaSBkdW9jIHNhbiB4dWF0IHJpZW5nIGNobyB0aGkgdHJ1b25nIA0K RHVjLiBUdXkgbmhpZW4gbmh1bmcgY3VhIGhhbmcgbyBIYSBOb2kgcm8gcmFuZyBkYSBnaXVwIHRv aSBoaWV1IHJhIHN1IHRoYXQgaG9uOiBOaHVuZyANCm5ndW9pIER1YyBjaHVuZyB0YSBtb2kgY2hp IG5lbSBtb3QgbWF1IGtpdHNjaCBuaG8gY3VhIGNhaSBiYW5oIGtpdHNjaCBraG9uZyBsbyBtYSAN CnRob2kuIENoYW5nIGhpZXUgc2FvIHR1IG5oaWVuIHRvaSB0aGF5IG5oZSBjYSBuZ3VvaS4NCg0K KEFuaDpOaGEgdmFuIGhhaSBodW9jIGdvaSBuaHVuZyBjbyBnYWkgZGkgeGUgbWF5IG1hYyBhbyBr aG9hYyBob2EsIGtlbyBtdSBjaGUga2luIA0KbWF0LCBsYWkgY29uIHRoZW0gY2Ega2hhdSB0cmFu ZyBzYWMgc28sIGtpbmggcmFtIHZhIG11IGJhbyBoaWVtIGJvYyB2YWkgaG9hIGxhICJEb2kgDQpx dWFuIGN1b3AgbmhhIGJhbmcgc2FjIHNvIi4pIA0KDQpOb2kgc28gbGFuIHNvbmcgY2hhdSBBOiBN b2kgZGF5IHRvaSBjbyBkb2MgbW90IGN1b24gc2FjaCByYXQgaGFwIGRhbiBub2kgdmUgdmllYywg dGFpIHNhbyANCm5ndW9pIFRheSBBdSBsdW9uIG5oaW4gbHVjIGRpYSBjaGF1IEEgbmh1IG1vdCBv IGRpY2ggYmVuaC4gQ3VvbiBzYWNoIHRydW9jIGhldCBwaGFuIA0KdGljaCBuaHVuZyBkaWVuIG5n b24gKGxlY2ggbGFjKSBjdWEgdHJ1eWVuIHRob25nIGR1b25nIGRhaSBwaHVvbmcgVGF5LCBkZW4g bmF5IHZhbiANCmx1b24gbWlldSB0YSBuaHVuZyB0ZW4gY29uZyBzYW4gKE5nYS1BKSwgbmh1bmcg dGVuIGtodW5nIGJvIChIb2ktQSkgdmEgbmh1bmcgdGVuIHRhaSANCnBoaWV0IG1vaSAoVHJ1bmcg UXVvYyAtIGNoYXUgQSkgbmh1IG5odW5nIGNvbiBibywgbmh1bmcgdmkgdHJ1bmcgZ2llbyBiZW5o LCB4YW0gbmhhcCwgZG8gYm8gdmFvIHhhIGhvaSBwaHVvbmcgVGF5Lg0KDQpOaHVuZyB2aSB0cnVu ZyBuYXkgbGFwIGNhbiBjdSAoQWwgUXVhaWRhKSBob2FjIG1vIHJvbmcgbGFuaCBkaWEgKEhpZW0g aG9hIGRhIHZhbmcpIG8gDQpjaGF1IEF1LiBDdW9uIHNhY2ggcGhhbiB0aWNoIHRhaSBzYW8gImNo YXUgQSB0dSBubyIgZG9pIHZvaSBuZ3VvaSBjaGF1IEF1IGx1b24gY28gZ2kgZG8gDQpnaW9uZyBu aHUgbW90IGRhbiBraWVuLCByYW5nIHRpbmggYmF5IGRhbiBkYSBsdW9uIG5hbSB0cm9uZyAiYmFu IGNoYXQgY2hhdSBBIi4gVG9pIGRvYyANCmN1b24gc2FjaCBtYSBjYW0gdGhheSBubyByb2kgc2Fu Zywgbmh1IHRoZSBtaW5oIGR1b2Mga2hhaSBtaW5oLCB2YSB0b2kgdGhheSB0dSB0aW4gaG9uIA0K dm9pIHkgdGh1YyAodHUpIHBoZSBwaGFuIGJhbiB0aGFuLi4uDQoNCi4uLmNvbiBiYXkgZ2lvIHRv aSBkYW5nIG5nb2kgZGF5IHRyb25nIG1vdCBxdWFuIGFuIG8gcGhvIGNvIEhhIE5vaS4gQ2h1bmcg dG9pIGRhIHBoYWkgDQpjYW4gZGVuIGhhaSB0aWVuZyBkb25nIGhvIHRpIG1hbiBsdWEgY2hvbiBt b2kgdGltIGR1b2MgcXVhbiBhbiBuYXksIGJvaSBjaHVuZyB0b2kgDQpraG9uZyBtdW9uIHRvaSBt b3QgcXVhbiBjaHV5ZW4gZGFuaCBjaG8gZGFuIGR1IGxpY2ggVGF5IGJhbG8sIG5odW5nIG5vIHZh biBwaGFpIGNvIA0KbW90IGJhbmcgdGh1YyBkb24gYmFuZyB0aWVuZyBBbmggKG5ldSBraG9uZywg bGFtIHNhbyB0b2kgYmlldCBtaW5oIGFuIHRodSBnaSB2YW8gDQpidW5nPykuIE5vIGN1bmcgcGhh aSBsYSBxdWFuIGFuIGRvbmcga2hhY2ggKGRvIGFuIHNlIHR1b2kgaG9uKSB2YSBjdW5nIHBoYWkg c2FjaCBzZSANCm1vdCBjaHV0IChraGkgZGkgcXVhIGN1YSBiZXAsIGJhbiBkdW5nIG5oaW4gdmFv IHZpIGRvIGFuIGR1b2Mgc3VhIHNvYW4gdHJlbiBuZW4gZGF0KSwgDQp2YSB0aHVjIHRlIGNodW5n IHRvaSBjdW5nIHRpbSBkdW9jIG1vdCBkaWEgZGllbSBwaHUgaG9wIHZhIGRhdCBkdW9jIG1vbiBh biBtaW5oIG11b24uDQoNClRvaSBjYW4gdGhhbiBudW90IG1heSB2aWVuIHRodW9jIGNob25nIHRp ZXUgY2hheSwgdmEgYmF5IGdpbyB0b2kgZGFuZyBzYW0gc29pIG1heSB2aWVuIA0KZGEgdHJvbmcg Y29jIGNvbGEgY3VhIG1pbmggKGNoaSBuaHVuZyB2aWVuIGRhIGNvIGxvIG8gZ2l1YSBsYSBkdW9j IHNhbiB4dWF0IGNvbmcgDQpuZ2hpZXApLCB0b2kgbGF0IGxhdCBtb24gcmF1IGx1b2MgdHJlbiBk aWEgKGx1b2MgY28gY2hpbiBraG9uZz8pLCBjYW5oIGdpYWMgbmhhcCBtb3Qgbmd1bSANCnRyYSAo bnVvYyBjbyBub25nIGdpYSBraG9uZz8pIHZhIG5naGkgbmdvIHNhbSBzb2kgZGlhIGFuIChjbyBk dW9jIHJ1YSBiYW5nIG51b2MgbWF5IA0Ka2hvbmc/KSB2YSB0YWNoIG1heSBtb24gcmF1IHF1YSBz b25nIChjYWkgbmF5IGNoYWMgcGhhaSBkdW9jIHJ1YSBudW9jIG1heSByb2kgKSB0aGFuaCANCnR1 bmcgbG9haSBraGFjIG5oYXUsIHZhIHR1IG5odSB2b2kgdHJvaSBkYXQgcmFuZywgbmhhdCBkaW5o IHRvaSBwaGFpIGdvdCB2byBtb24gcXVhLi4uDQoNCi0gQm9pIHZpIHRhdCBjYSBuaHVuZyBuZ3Vv aSBodW9uZyBkYW4gZHUgbGljaCwgYmFuIGJlLCB2YSB0b2FuIHRoZSBjYWMgY2h1eWVuIGdpYSB2 ZSBjaGF1IA0KQSBjdWEgcGh1b25nIFRheSBkZXUgY2FuaCBiYW8gcmFuZywgaGllbSBob2Ega2hv bmcgZGVuIHR1IGJhbyBsdXQgaGF5IGNhbiBiZW5oIHZpZW0gDQpwaG9pIGRvIG5odW5nIGNhaSBt YXkgZGlldSBob2EgbGFuaCBjb25nIGdheSByYSwgbWEgbGE6IGdpdW4sIHNhbiwga2h1YW4sIHZp IHRydW5nIHNlIA0KeGFtIG5oYXAsIHNlIGxheSBuaGllbSwgdGhhbSBjaGkgc2UgZG8gYm8gdmFv IHRoYW4gdGhlIGRhbiBUYXkgQXUuIFRydW9jIGtoaSBsdWEgZHVhIGFuIA0KdmFvIG1pZW5nLCB0 b2kgZGEgY2FtIHRoYXkgcnVvdCBnYW4gbWluaCBkYSBkYW8gbG9uIGhldCBsZW4gdmkgc28uDQoN CkhvaSBvaSwgaG9pIHRpbmggdGhhbiBraGFpIHNhbmcsIGhvaSB5IHRodWMgcGhlIHBoYW4sIHZl IGx5IHRodXlldCB0aGkgY2FjIG5ndW9pIGx1b24gaGFwIA0KZGFuIGRheSwgbmh1bmcgZGkgdmFv IHRodWMgdGUgdGhpIGNhYyBuZ3VvaSBsYWkga2hhIHZvIGR1bmcuIA0KDQpodHRwOi8vdHVvaXRy ZS52bi9DaGluaC10cmktWGEtaG9pLzE2ODgzMi9UaGlldS1zYW4tY2hvaS1jaG8tdHJlLWVtLmh0 bWwgWFVBTiBMT05HIDI1LzEwLzIwMDYsIDAzOjM0IChHTVQrNykgDQoNCkhhIE5vaTogVGhpZXUg c2FuIGNob2kgY2hvIHRyZSBlbSAtIEN1IGt5LCB4dW9uZyBjYXAgLSBCbyBxdWVuIG5oaWVtIHZ1 IA0KDQpBbmggY2h1cDogU2FuIGNob2kgY2hvIHRyZSBkZSBjbyBtb2MgeGFuaCB1bSAoYW5oIGNo dXAgdGFpIHBodW9uZyBUcnVuZyBUdSwgcXVhbiANCkRvbmcgRGEpIC0gQW5oOiBYLkxvbmcNCg0K VFQgLSBOaGlldSBub2kgbyBIYSBOb2kgbmd1b2kgdGEgY2hpZW0gc2FuIGNob2kgY3VhIHRyZSBs YW0gYmFpIGdpdSB4ZSwgdGFwIGtldCByYWMuIE8gDQpub2kgY28gc2FuIGNob2ksIHRyZSBraG9u ZyBkYW0gdHJlbyBsZW4gY2F1IHRydW90LCBkdSBxdWF5IHZpIHNvIHRyYXkgbW9uZywgc3VvdCB0 YXkuIA0KDQpDdSBreSwgeHVvbmcgY2FwIC0gQm8gcXVlbiBuaGllbSB2dSANCg0KRGllbiBoaW5o IG5odSBraHUgc2FuIGNob2kgY3VhIHBodW9uZyBUcnVuZyBUdSwgcXVhbiBEb25nIERhIHJvbmcg Y2EgbmdhbiBtZXQgDQp2dW9uZyBuaHVuZyBjaGkgY28gbW90IGNhdSB0cnVvdCBkdW9jIHhheSBk dW5nIHRydW9jIGRheSBoYW5nIGNodWMgbmFtLCB4dW5nIHF1YW5oIA0KY28gZGFpIG1vYyBraW4u IA0KDQpRdWFuIFRheSBIbyBjbyA1OSBraHUgZGFuIGN1IG5odW5nIDE2IGtodSBkYW4gY3Uga2hv bmcgY28gc2FuIGNob2kgZGFuaCBjaG8gdHJlLiANCk5nYXkgY2EgNDMgc2FuIGNob2kgZGEgZHVv YyBkYXUgdHUgbW9pIG5hbSBjdW5nIGNoaSBwaHVjIHZ1IGJhIHRoYW5nIG5naGkgaGUgY3VhIGNh YyANCmNoYXUuIENoaSBraG9hbmcgaGFpIG5hbSBzdSBkdW5nLCBjYWMgdGh1IGNob2kgYmkgcGhv aSBuYW5nIG11YSBzZSBob2VuIGdpLCB4dW9uZyBjYXAsIA0Kc2FuIGNob2kgbGFpIGJvIGhvYW5n LiANCg0KVGFpIGhhaSBwaHVvbmcgWWVuIFBodSwgVGh1eSBLaHVlIHNhbiBjaG9pIGRhbmggY2hv IHRyZSBnYW4gbmh1IGtob25nIGNvLiBOaHVuZyBub2kgDQpjbyBkaWVuIHRpY2ggZGF0IG5obyBs ZSBwaHUgaG9wIGxhbSBzYW4gY2hvaSBuaHVuZyBraG9uZyBoYW4gZGEgZHVvYyBjYXAuIA0KDQpD byBtb3QgdGh1YyB0ZSBsYSBkYXQgcXVpIGhvYWNoIGxhbSBzYW4gY2hvaSBjaG8gdHJlIGl0IGRh biB2aSBkYXUgdHUgbGFtIHNhbiBjaG9pIGl0IHRodSANCmR1b2MgbG9pLiBWaSB2YXkgbmhpZXUg cGh1b25nIHhhIHBoYWkgbXVvbiBzYW4gY2hvaSBjdWEgbmhhIHRydW9uZyBob2FjIGhlIHBobyBj aG8gDQp0cmUgdnVpIGNob2kuDQoNCk9uZyBOZ3V5ZW4gVGhlIEh1bmcsIHBobyBjaHUgbmhpZW0g VXkgYmFuIERTLUdEJlRFIEhhIE5vaSwga2hhbmcgZGluaCBxdWkgY2hlIA0KdGFtIHRob2kgdmUg c2FuIGNob2kgY2FwIGNvIHNvLCBjbyBjaGUgcXVhbiBseSBkYSBjbyB0dSBuYW0gMTk5OCB4YWMg ZGluaCBybyBsbyB0cmluaCB4YXkgDQpkdW5nIGRvaSBzb25nIHZhbiBob2EgdGhvbmcgdGluIGNo byB0cmUgZW0gZ2lhaSBkb2FuIDIwMDEtMjAxMCwgY3UgdGhlIGdpYW8gbmdhbmggdmFuIA0KaG9h IG5odW5nIHF1aSBkaW5oIG5heSBkYSBiaSBibyBxdWVuLg0KDQpUaGVvIG9uZyBIdW5nLCBxdWEg ZG90IHJhIHNvYXQgZGFuaCBnaWEgaGllbiB0cmFuZyBzYW4gY2hvaSBkYW5oIGNobyB0cmUgZW0g Y2FwIHBodW9uZyANCnhhIGRvIGRvbiB2aSBuYXkgZGFuZyB0aHVjIGhpZW4gY2hvIHRoYXkgdHJv bmcgc28gaG9uIDIuMDAwIGRpZW0gdnVpIGNob2kgYmFvIGNhbyBjbyANCm5odW5nIHF1YW4ga2hv bmcgZGFuaCBnaWEgZHVvYyBoaWVuIHRyYW5nLiBUaGVvIGtldCBxdWEgcmEgc29hdCBiYW4gZGF1 LCB0b2FuIHRoYW5oIA0KcGhvIEhhIE5vaSBjaGkgY28ga2hvYW5nIDQ1JSBzYW4gY2hvaSBjYXAg cGh1b25nIHhhIGNvIGRhdSB0dSwgdHJhbmcgYmkgY2FjIHRodSBjaG9pLiANCg0KaHR0cDovL3d3 dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMzA4MTk1L2hvcC1jaG8t dHJhbi1sYW4tZ2F5LW5naGVuLWdpYW8tdGhvbmcuaHRtIDA5LzAyLzIwMTAgMDc6MDIgDQoNCkhh IE5vaTogSG9wIGNobyB0cmFuIGxhbiwgZ2F5ICJuZ2hlbiIgZ2lhbyB0aG9uZyAgDQoNCmh0dHA6 Ly9oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9YYS1ob2kvNDM0MDk2L2N1b2ktbmFtLWhhLW5v aS1kdW9uZy1uYW8tY3VuZy10YWMuaHRtIDIwLzAxLzIwMTEgMTA6MjUgDQoNCkhhIE5vaTogSGEg Tm9pIGN1b2kgbmFtLCBkdW9uZyBuYW8gY3VuZyB0YWMgIA0KDQpodHRwOi8vd3d3LmJhb21vaS5j b20vSG9tZS9Bbk5pbmgvdmlldG5hbW5ldC52bi9YZW0tSGEtTm9pLWN1b2ktbmFtLWdpby1uYW8t Y3VuZy10YWMvNTYyNzkwOS5lcGkgMjgvMDEvMjAxMSAwNjoxNTowMCBBTSAoR01UKzcpDQoNCkhh IE5vaTogSGEgTm9pIGN1b2kgbmFtIGdpbyBuYW8gY3VuZyB0YWMgDQoNCk5odW5nIG5nYXkgY2Fu IFRldCwgZHVvbmcgcGhvIEhhIE5vaSBjbyB0aGUga2V0IGJhdCBjdSBnaW8gbmFvLCBuZ2F5IGNh IG8gbmh1bmcgY29uIHBobyBoaWVtIGtoaSB4YXkgcmEgdGluaCB0cmFuZyB0YWMgZHVvbmcuDQoN Cmh0dHA6Ly90b2FuY2FuaC50YW1uaGluLm5ldC9kb2ktc29uZy80OTMzNy9UaGlldC1kb24tdGhp ZXQta2VwLXZpLXRhYy1kdW9uZy1jdW9pLW5hbS5odG1sIE5nb2MgQW5oIDI2LzEvMjAxMSA5OjAz IEdNVCs3DQoNCkhhIE5vaTogVGhpZXQgZG9uIHRoaWV0IGtlcCB2aSB0YWMgZHVvbmcgY3VvaSBu YW0gDQoNCpYgTmV1IHRhYyBkdW9uZyBuZ2F5IHRodW9uZyBjaHUgeWV1IG1hbmcgbGFpIHN1IGto byBjaGl1IHZlIHRpbmggdGhhbiwgdGhpIHRhYyBkdW9uZyANCm5nYXkgZ2lhcCBUZXQgY29uIGto aWVuIG5oaWV1IG5ndW9pIGtob24gZG9uLCBuZ3VvaSBidW9uIGJhbiBsYW0gYW4gdGhpZXQgZG9u IHRoaWV0IGtlcCANCnZpIGdpYW8gaGFuZyBraG9uZyBkdW5nIGdpbyBob2FjIGtoYWNoIGtob25n IGNvbiBsb2kgdmFvIGN1YSBoYW5nLCB2doUNCg0KS2hvbmcgcGhhaSBkb2kgZGVuIGN1b2kgbmFt IHRoaSBkdW9uZyBIYSBOb2kgbW9pIHRhYy4gTmh1bmcgbXVjIGRvIHRhYyBuYW5nIG5lIGhvbiwg DQp0YWMgbGllbiB0dWMgdHUgc2FuZyB0b2kgdG9pIHZhbyBkaXAgVGV0IGtoaWVuIG5ndW9pIGRh biBjYW0gdGhheSB0aHVjIHN1IG1ldCBtb2kuDQoNCkNvbiBwaG8gVGhhaSBIYSCWIENodWEgQm9j IGx1b24gdGFwIG5hcCBjYWMgY3VhIGhhbmcga2luaCBkb2FuaCBkbyBkaWVuIHR1LCBxdWFuIGFv IA0Kdm9pIGx1b25nIGtoYWNoIGRvbmcgZHVjIHZhbyByYSB0YXAgbmFwLiBOaHVuZyB0dSBraG9h bmcgbW90IHR1YW4gbmF5LCBuZ3VvaSBkYW4gZG8gDQpyYSBkdW9uZyB0cmFuaCB0aHUgZGkgc2Ft IFRldCwgdGF4aSBob2F0IGRvbmcgbmhpZXUgdmkgdHJvaSByZXQsIHZ2hSBjYWMgY2h1IHNob3Ag dGhvaSANCnRyYW5nIHRyZW4gcGhvIENodWEgQm9jIGtob24gZG9uIHZpIHRhYyBkdW9uZyBjYSBi dW9pIHRydWEsIGNhYyBsb2FpIHBodW9uZyB0aWVuIGdpYW8gDQp0aG9uZyBkZXUgbmhhbSBuaGUg dHJlbyBsZW4gZG9hbiB2aWEgaGUgcXV5IGdpYSBraGllbiBraG9uZyBjb24gbW90IGxvaSBuaG8g ZGUgZGkuDQoNCihBbmg6IE5odW5nIHRodW5nIGNobyBoYW5nIGxvbiBuaHUgdGhlIG5heSBjYW5n IGtoaWVuIHRpbmggdHJhbmcgdGFjIGR1b25nIHRoZW0gDQpuZ2hpZW0gdHJvbmcpIA0KDQoiQmlu aCB0aHVvbmcgY2hpIHRhYyBuYW5nIHZhbyBzYW5nIHNvbSB2YSBjaGlldSB0b2kgKGdpbyBjYW8g ZGllbSB0cm9uZyBuZ2F5KSBuZW4gDQpraGFjaCBjbyB0aGUgdnVhIGRpIGR1b25nIHZ1YSBuZ2Ft IGRvLCBkZW4gYnVvaSB0cnVhLCBkZSB4ZSB0cmVuIHZpYSBoZSB2YSBkaSBsYWkga2hhIA0KdGhv YWkgbWFpIGRlIHZhbyBjdWEgaGFuZy4gTmh1bmcgbWF5IGhvbSBuYXkgdGhpIGNhIG5nYXkgZGV1 IGxhIGdpbyBjYW8gZGllbSBjYSwgDQpraG9uZyBhaSBjb24gaHVuZyB0aHUgZGkgeGUgZGVuIGRh eSBtYSBtdWEgYmFuIG51YSIsIGNoaSBIYSBUaGkgSG9hLCBuaGFuIHZpZW4gYmFuIA0KaGFuZyB0 YWkgbW90IHNob3AgdGhvaSB0cmFuZyB0cmVuIHBobyBDaHVhIEJvYyBub2kuIA0KDQpUaGVvIGNo aSBIb2EsIGNhYyBjdWEgaGFuZyBkZXUgdHJvbmcgY2hvIHZhbyBkb3QgY3VvaSB0dWFuIG5heSAo cm9pIHZhbyBraG9hbmcgMjYgYW0gDQpsaWNoKSBsdW9uZyB4ZSBjbyBzZSBnaWFuIGJvdCBzYXUg a2hpIG5oaWV1IG5ndW9pIG5nb2FpIHRpbmgsIHNpbmggdmllbiB2ZSBxdWUgYW4gVGV0LiBLaGkg DQpkbywgbmh1bmcgbmd1b2kgbyBsYWkgSGEgTm9pIGN1bmcgZGEgZHVvYyBuZ2hpIG5lbiBsdW9u ZyBtdWEgc2FtIHNlIHRhbmcgdm90Lg0KDQoiQ3VhIGhhbmcgZGEgY2h1YW4gYmkgdGFuZyBsdW9u ZyBuZ3VvaSBiYW4gY2Egdm9uZyB0cm9uZyBsYW4gdm9uZyBuZ29haS4gTW9pIG5hbSwgY3UgDQpk ZW4gbmh1bmcgbmdheSAyNyBUZXQgdHJvIGRpIGxhIGx1b25nIGtoYWNoIGhhbmcgdGFuZyBkb3Qg YmllbiIsIGNoaSBIb2Egbm9pLg0KDQooQW5oOiBOZ3VvaSBkaSBibywgbmd1b2kgZGkgeGUgY2hl biBjaHVjIHRyZW4gcGhvIEhhbmcgTWEuIEN1IGtob2FuZyAxMCBwaHV0IGxhaSBjbyBtb3QgZG90 IHVuIHRhYyBjdWMgYm8geGF5IHJhKQ0KDQpUYWMgZHVvbmcga2hpZW4gbmh1bmcgZGljaCB2dSAi ZGkgZG9uZyIga2hvbiBkb24gaG9uIGNhLiBOaGFuIHZpZW4gZ2lhbyBoYW5nIGN1YSANCm1vdCBz aWV1IHRoaSBkaWVuIG1heSBkYSB0aW0gZHVvbmcgZGkgbmdhbiBuaGF0IHZhIGRpIHZvaSB0b2Mg ZG8gbmhhbmggbmhhdCBjbyB0aGUsIA0Kbmh1bmcgdmFuIGtob25nIHRob2F0IGtob2kgdGhhbSBj YW5oIHRhYyBkdW9uZyB0YWkgcGhvIFRydW9uZyBDaGluaC4gDQoNCiJUb2kgZGEgZGVuIGJlbiB4 ZSBHaWFwIEJhdCBtdW9uIGdhbiAyMCBwaHV0IGR1IGRhIGNvIGdhbmcgZGkgc29tIGhvbiBkdSBk aW5oIGRlIA0KcGhvbmcgdGFjIGR1b25nLiBOaHVuZyBraG9uZyB0dW9uZyB0dW9uZyBub2kgbGEg dG9pIGJpIGtldCBjdW5nIHRyb25nIGJpZW4gbmd1b2kuIEtldCANCmN1YyBsYSB0b2kgcGhhaSBt YW5nIGNhaSBtYXkgc3VvaSB2ZSB2YSBnb2kgZGllbiB4aW4gbG9pIGtoYWNoIGhhbmcgdmkga2hv bmcgdGhlIGtpcCBnaW8gDQp4dWF0IHBoYXQgY3VhIGNoaWVjIHhlIG1hIGtoYWNoIGRhIGRhdCBk ZSBtYW5nIG1heSBzdW9pIHZlIGNobyBtaW5oIiwgbmhhbiB2aWVuIG5heSBub2kuDQoNCkRpZXUg Z2F5IHVjIGNoZSBob24gY2EgbGEgdGluaCB0cmFuZyBuYXkgbmdheSBuYW8gY3VuZyB0YWkgZGll biB2YW8gZGlwIFRldCB2YSBkYSBsYXkgDQp0aGVtIGN1YSBuaGFuIHZpZW4gbmF5IHJhdCBuaGll dSB0aG9pIGdpYW4gImNoZXQiIHRyZW4gZHVvbmcuIENhYyBkaWNoIHZ1IHRheGkgZG9uIG5oYSwg DQpjaG8gZG8gZGF0IGtoYWNoIGRpcCBUZXQgbmh1bmcgY3VuZyByb2kgdmFvIGNhbmggdHVvbmcg dHUsIG5lbiBkdSBuaHUgY2F1IGNhbyBuaHVuZyANCnRodWMgdGUgc28gY2h1eWVuIHhlIGNodXll biBjaG8gZHVvYyBraG9uZyBsb24uDQoNCkhhaSBuaGF0IGNhbmggdGFjIGR1b25nIGxhIG5odW5n IG5ndW9pIGNobyBkYW8sIHF1YXQuIFRvYW4gY2hvIGhhbmcgImFuIGNob2ksIGNheSANCmNhbmgi IG5lbiBuaHVuZyBuZ3VvaSBuaGFuIG5oaWVtIHZ1IGNodXllbiBkYW8sIHF1YXQgZGVuIGNobyBr aGFjaCByYXQgbG8gbGFuZyBtb2kgDQpraGkgYmFwIHBoYWkgbW90IGNvbiBkdW9uZyBkb25nIG5n aGl0IG5ndW9pLg0KDQpBbmggTmd1eWVuIFZhbiBUYW8sIG5ndW9pIGNodXllbiBjaG8gcXVhdCBj aG8ga2hhY2ggdHUgcGhvIExhYyBMb25nIFF1YW4gYmFuZyB4ZSANCm1heSBjaG8gYmlldDogIlNv IG5oYXQgbGEgZGkgZHVvbmcgZG8gcXVhIGRvbmcsIGJpIHZhIGNoYW0gbWEgZG8geGUgdGhpIGNv aSBuaHUgeG9uZy4gDQpOZXUga2hvbmcgZG8gbWEgdmEgY2hhbSBtYW5oIGN1bmcgY28gdGhlIGto aWVuIGNheSBiaSBob25nIGhvYy4gQ2h1YSBkZSBkZW4gY2h1eWVuIA0KY28gY2FjIHRoYW5oIG5p ZW4gdGluaCBuZ2hpY2gsIGR1bmcgY2hvIHRhYyBkdW9uZyBuZ2F5IGJlbiBjYW5oIGJ1b24gdGF5 Li4uIHZhdCBsdW9uIGxheSANCnZhaSBxdWEgbGEga2hhY2ggaGFuZyBjbyB0aGUgbGEgbG9pIGhv YWMgdHJhIGxhaSBoYW5nIG5ldSBwaGF0IGhpZW4gcmEuIE5vaSBjaHVuZyBsYSBtZXQgbW9pIGxh bSIuDQpWb2kgbmh1bmcgbmd1b2kga2hvbmcgbGFtIGNhYyBjb25nIHZpZWMgZGljaCB2dSBuaHUg dHJlbiB0aGkgdGFjIGR1b25nIHZhbiBsYSBub2kgYW0gDQphbmggYm9pIGRpcCBnaWFwIFRldCwg dmllYyBjbyBxdWFuIGxhbiB2aWVjIG5oYSBkZXUgY2hhdCBkb25nLg0KDQpodHRwOi8vaG9tZS52 bm4udm4vc2F1X2xlX29uZ19jb25nX29uZ190YW9fX2hhX25vaV9uaGVtX25odW9jX19ob24tMzM2 MTk5NjgtNjI1NzM0MTMzLTAgdmlldG5hbW5ldC52biAtIDA2LTAyLTIwMTAgMjM6MDMNCg0KSGEg Tm9pOiBTYXUgbGUgb25nIENvbmcgb25nIFRhbyAtIEhhIE5vaSAibmhlbSBuaHVvYyIgaG9uIA0K DQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0LzIwMTAtMDktMTUtdmFuLWNvLXRydWMtaG8tdGF5LWJh LXZpLW5odW5nLWxhLXRydWMtY29uZy0gS2hhbmggTGluaCAxNi8wOS8yMDEwIDA2OjAwIEdNVCs3 DQoNCkhhIE5vaTogUXVpIGhvYWNoIFRodSBEbyAtIFNhbmcgZHVuZywgY2hpZXUgc2FpLCBtYWkg bGFpLi4uZHVuZyANCg0KVmFuIGNvIHRydWMgSG8gVGF5LUJhIFZpIG5odW5nIGxhIHRydWMuLi4g Y29uZz8NCg0KSGEgTm9pIGRhIHR1bmcga2hhbmcgZGluaCBob2FuIHRvYW4ga2hvbmcgY2FuIHRy dWMgKEhvIFRheS1CYSBWaSksIG5heSBib25nIGR1bmcgbGFpIA0KdGhheSBjYW4gdHJ1Yy4gQm8g WGF5IGR1bmcgdGhpIHJvIHJhbmcga2hhbmcgZGluaCB0cnVjIHBoYWkgdGhhbmcsIG5heSBsYWkg dGhheSB0cnVjIGNvIA0KdGhlbyBkaWEgaGluaCBjdW5nLi4uIGtob25nIHNhby4NCg0KQ2F1IGNo dXllbiBnaWFuZyBjbyBxdWEgbGFpIGdpdWEgQm8gWGF5IGR1bmcgdmEgSGEgTm9pLCBoYWkgIm5o YW4gdmF0IGNoaW5oIiBjdWEgZG8gDQphbiBRdXkgaG9hY2ggY2h1bmcgeGF5IGR1bmcgdGh1IGRv IEhhIE5vaSBkZW4gbmFtIDIwMzAsIHRhbSBuaGluIDIwNTAgdnVhIGNvIHRoZW0gDQptb3QgImto dWMgcXVhbmgiIG1vaTogSGEgTm9pIGtob25nIHBoYW4gZG9pIHRydWMgQmEgVmksIG5odW5nIGRl IG5naGkga2hvbmcgcGhhaSANCnRydWMgdGhhbmcgdGFwIG1hIGNoaSB0aGFuZyB0YXAgZG9hbiB0 cnVvYyB2YW5oIGRhaSA0LCBjb24gdHUgdmFuaCBkYWkgNCB2ZSBkZW4gQmEgVmkgdGhpIA0Kc2Ug dGhlbyBkaWEgaGluaC4gDQoNClNhbmcgZHVuZywgY2hpZXUgc2FpLCBtYWkgbGFpLi4uZHVuZyAN Cg0KVFAgSGEgTm9pIGNvbiBtdW9uIGRhbmggZG8gbmh1bmcgY29uZyBkYW4gY3VhIG1pbmggZGVu IG11YyBuYW8sIDMgdHVhbiB0cnVvYyB2dWEgDQpjbyB2YW4gYmFuIHBoYW4gZG9pIHRydWMgSG8g VGF5IC0gQmEgVmksIG5heSBsYWkgcXVheSBzYW5nLi4uIGtob25nIHBoYW4gZG9pIG51YTsgdHJ1 b2MgDQpkbywgdHJvbmcga3kgaG9wIFFIIHRoYW5nIDYvMjAxMCwgSGEgTm9pIGN1bmcga2hvbmcg aGUgdG8gY2h1dCBiYW4ga2hvYW4gbmFvIHZlIHRydWMgDQpuYXkgY2EuIENoaSB0cm9uZyB2YWkg dGhhbmcgbWEgSGEgTm9pIHRoYXkgZG9pIHkga2llbiBoYWkgbGFuIHZhIHRyYWkgY2hpZXUgMTgw IGRvLiAgDQpEdSByYW5nIG5ndW9pIGRhbiB0dSBsYXUgZGEgcGhhaSBsYW0gcXVlbiB2b2kgY3Vu ZyBjYWNoICJzYW5nIGR1bmcsIGNoaWV1IHNhaSwgDQptYWkgbGFpLi4uIGR1bmciIG5odSB2YXkg Y3VhIHF1YW4gY2h1YyB0aGFuaCBwaG8sIG5odW5nIGxhbiBuYXkgdmFuIHNvYywgdmkgZGF5IGxh IA0KY29uZyB0YWMgcXV5IGhvYWNoIG1vdCB0aGFuaCBwaG8sIG1vdCB0aHUgZG8sIG1vdCB0aHUg ZG8gIm5naGluIG5hbSB2YW4gaGllbiIhICANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2JhdF9n aWFtX2RvY19sdWFfZGFvX2dhbl80MDBfdGlfZG9uZy02LTIxNDYzMjA1Lmh0bWwNCg0KSGEgTm9p OiBUb25nIGdpYW0gZG9jIENvbmcgdHkgQ1Agc2FuIGJhdCBkb25nIHNhbiBWaWV0IE5hbSBiaSB0 cnV5IHRvIGx1YSBkYW8gZ2FuIDQwMCB0aSBkb25nIA0KDQpodHRwOi8vbGFvZG9uZy5jb20udm4v VGluLVR1Yy9IYS1Ob2kteGV0LXh1LXZ1LWFuLXRoYW0tby10YWktTmdhbi1oYW5nLUJJRFYvMTQw OTkgMjMuOS4yMDEwIDIyOjM0IChHTVQgKyA3KSANCg0KSGEgTm9pOiBWdSB0aGFtIG8gdGFpIE5n YW4gaGFuZyBCSURWIHRoYXQgdGhvYXQgaG9uIDE3MCB0eSBkb25nIChCSURWIERvbmcgRG8pDQpU cmFuIExlIFRodXkgKHNpbmggbmFtIDE5NjksIG5ndXllbiBsYSBjYW4gYm8gbmdhbiBoYW5nIERh dSB0dSBwaGF0IHRyaWVuIFZpZXQgTmFtIA0KQklEViwgQ2hpIG5oYW5oIERvbmcgRG8pIGN1bmcg MTAgZG9uZyBwaGFtIGNhdSBrZXQgbGFtIGdpYSBzbyB0aWV0IGtpZW0sIGdheSB0aGF0IA0KdGhv YXQgaG9uIDE3MCB0eSBkb25nIGN1YSBCSURWIERvbmcgRG8uDQoNCkNhYyBiaSBjYW8gYmkgdHJ1 eSB0byB2ZSBjYWMgdG9pIHRoYW0gbyB0YWkgc2FuLCBsdWEgZGFvIGNoaWVtIGRvYXQgdGFpIHNh biwgdGhpZXUgdHJhY2ggDQpuaGllbSBnYXkgaGF1IHF1YSBuZ2hpZW0gdHJvbmcsIHZpIHBoYW0g cXV5IGRpbmggdmUgY2hvIHZheSB0cm9uZyBob2F0IGRvbmcgY3VhIGNhYyANCnRvIGNodWMgdGlu IGR1bmcuDQoNCjEwIGRvbmcgcGhhbSBjdWEgVGh1eSB0cm9uZyB2dSBhbiBuYXkgZ29tIFRyYW4g Q2hpIERhbiwgVHJhbiBUaGkgSHV5ZW4sIE5ndXllbiANClRoaSBUaHUsIE5nbyBUaGkgVGhhbmgg SHV5ZW4sIFRoYWkgVGhpIFllbiwgVnUgS2hhYyBUaGFuaCwgSG9hbmcgQmljaCBMaWVuLCBIb2Fu ZyANClRydW5nIFRob25nLCBQaGFtIFRoaSBIb25nIFRoYWksIE5ndXllbiBNaW5oIEhhbmcuDQoN ClRyb25nIDExIHRydW9uZyBob3AgYmkgdHJ1eSB0byBjbyA3IG5ndW9pIHR1bmcgY29uZyB0YWMg dHJvbmcgbmdhbmggbmdhbiBoYW5nLCB0cm9uZyBkbyANCmNvIDIgYmkgY2FvIG5ndXllbiBsYSBQ aG8gR2lhbSBkb2MgTmdhbiBoYW5nIEJJRFYgY2hpIG5oYW5oIERvbmcgRG8sIDEgYmkgY2FvIA0K bmd1eWVuIGxhIHBobyBQaG9uZyBkaWNoIHZ1IGtoYWNoIGhhbmcgY3VhIEJJRFYgRG9uZyBEbywg MiBjYW4gYm8gQklEViBEb25nIERvOyANCmN1bmcgMiBiaSBjYW8gbmd1eWVuIGxhIHBobyBQaG9u ZyBnaWFvIGRpY2ggMSBjdWEgTmdhbiBoYW5nIE5nb2FpIHRodW9uZyBjaGkgbmhhbmggDQpUaGFu aCBDb25nIChWQ0IgVGhhbmggQ29uZykuDQoNClRoZW8gY2FvIHRyYW5nLCB0cm9uZyBraG9hbmcg dGhvaSBnaWFuIHR1IG5hbSAyMDAzIGRlbiB0aGFuZyA0LzIwMDgsIFRyYW4gTGUgVGh1eSBsYSAN CnRodSBxdXkgY3VhIFF1eSB0aWV0IGtpZW0gc28gMSBOZ2FuIGhhbmcgQklEViBUaGFpIEJpbmgg KHR1IDIwMDMgZGVuIHRoYW5nIDcvMjAwNCkgDQp2YSBsYSBnaWFvIGRpY2ggdmllbiBwaG9uZyBk aWNoIHZ1IGtoYWNoIGhhbmcgTmdhbiBoYW5nIEJJRFYgRG9uZyBEbyAodHUgdGhhbmcgOC8yMDA0 IGRlbiB0aGFuZyA0LzIwMDgpLg0KDQpUcm9uZyB0aG9pIGdpYW4gbmF5LCBUaHV5IGRhIGxvaSBk dW5nIG5oaWVtIHZ1IGR1b2MgZ2lhbywgY2F1IGtldCB2b2kgbmd1b2kgdGhhbiB0cm9uZyANCmdp YSBkaW5oLCBiYW4gYmUgdmEgbW90IHNvIGNhbiBibyBOZ2FuIGhhbmcgVmlldGNvbWJhbmsgY2hp IG5oYW5oIFRoYW5oIENvbmcgKEhhIA0KTm9pKSBzdWEgY2h1YSwgeGFjIG5oYW4ga2hvbmcgc28g ZHUgdHJlbiBnaWF5IGNodW5nIG5oYW4gdGllbiBndWkgdGlldCBraWVtIGNvIGt5IGhhbiANCmN1 YSBWaWV0Y29tYmFuayBUaGFpIEJpbmggdmEgVmlldGNvbWJhbmsgY2hpIG5oYW5oIFRoYW5oIENv bmcsIHNhdSBkbyBkZW0gdGhlIA0KY2hhcCB0YWkgUXV5IHRpZXQga2llbSBzbyAxIE5nYW4gaGFu ZyBCSURWIFRoYWkgQmluaCB2YSBCSURWIERvbmcgRG8gZGUgY2hpZW0gDQpkb2F0IHRpZW4gY3Vh IGNhYyBOZ2FuIGhhbmcgdHJlbi4NCg0KQmFuZyBjYWMgdGh1IGRvYW4gdHVvbmcgdHUsIHR1IG5h bSAyMDAzIGRlbiB0aGFuZyA0LzIwMDgsIFRodXkgY3VuZyBkb25nIHBoYW0gZGEgDQpzdWEgY2h1 YSwgbGFtIGdpYSwgdHJhbyBkb2kgMTQgZ2lheSBjaHVuZyBuaGFuIHRpZW4gZ3VpIGNvIGt5IGhh biwgY2hpZW0gZG9hdCBjdWEgQklEViANClRoYWkgQmluaCBob24gMjkgdHkgZG9uZy4NCg0KTmdv YWkgcmEsIFRodXkgY2hpIGRhbyBuZ3VvaSB0aGFuIHF1ZW4gc3VhIGNodWEsIGxhbSBnaWEgMjMg Z2lheSBjaHVuZyBuaGFuIHRpZW4gZ3VpLCANCnhhYyBuaGFuIGtob25nIG5oaWV1IGdpYXkgdG8g Y28gZ2lhIHRyaSBkZSBsYW0gdGh1IHR1YyB2YXkgaG9uIDI2MCB0eSBkb25nIHRhaSBCSURWIA0K RG9uZyBEby4uLiBTYXUga2hpIGNoaWVtIGRvYXQgZHVvYyB0aWVuLCBjYWMgYmkgY2FvIGRhIGR1 bmcgdmFvIHZpZWMgZGF1IHR1IGtpbmggZG9hbmggDQpiYXQgZG9uZyBzYW4sIGNodW5nIGtob2Fu LCB2YW5nLCB0aWV1IHhhaSBjYSBuaGFuLg0KDQpWaWVuIEtpZW0gc2F0IG5oYW4gZGluaCwgZHUg aGFuaCB2aSBwaGFtIHRvaSBjdWEgY2FjIGJpIGNhbiBkaWVuIHJhIHRyb25nIHRob2kgZ2lhbiBk YWkgDQoodG9pIGdhbiA2IG5hbSwgdHUgbmFtIDIwMDMtMjAwOCkgdHJlbiBkaWEgYmFuIDIgdGlu aCBUaGFpIEJpbmggdmEgdGhhbmggcGhvIEhhIE5vaSwgDQpzb25nIGNhYyBuZ2FuIGhhbmcgdmFu IGtob25nIHBoYXQgaGllbiByYSBzYWkgcGhhbSBuYXkuDQoNCk5oaWV1IGRvaSB0dW9uZyB0cm9u ZyB2dSBhbiBsYSBuaHVuZyBjYW4gYm8gdHJvbmcgbmdhbmggbmdhbiBoYW5nIGRhIGR1b2MgZGFv IHRhbyBjbyANCmJhbiwgZHVvYyBwaGFuIGNvbmcgZGFtIG5oaWVtIG5odW5nIHZpIHRyaSBjb25n IHRhYyBxdWFuIHRyb25nIHRyb25nIG5nYW5oIE5nYW4gDQpoYW5nLCBkbyBzdXkgdGhvYWkgdmUg ZGFvIGR1YywgaGFtIGxvaS4uLiBkYSBjYXUga2V0IHZvaSBuaGF1IHZhIGN1bmcgY2FjIGRvaSB0 dW9uZyANCm5nb2FpIHhhIGhvaSB0aHVjIGhpZW4gaGFuaCB2aSBwaGFtIHRvaSB2b2kgbmh1bmcg dGh1IGRvYW4gaGV0IHN1YyB0aW5oIHZpLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v bmV3cy9QYWdlcy8yMDEwMzEvMjAxMDA3MjYwMTQ2NTAuYXNweCBMZSBRdWFuIDI2LzA3LzIwMTAg MTo0NiANCg0KSGEgTm9pOiBOaHVuZyBjb25nIHRyaW5oIGxhbmcgcGhpIC0gQ2hvIGhvYW5nIGdp dWEgdGh1IGRvICANCiAgDQpUcm9uZyBraGkgSGEgTm9pIGRhbmcgbG9heSBob2F5IHRpbSBkYXAg c28gY2hvIGJhaSB0b2FuIGRlcCBjaG8gY29jLCBoYW5nIHJvbmcgdGhpIGxhaSANCmNvIGtob25n IGl0IGtodSBjaG8gZGF1IHR1IGhhbmcgY2h1YyB0aSBkb25nIHJvaSBkZSBraG9uZyBob2FjIGJ1 b2MgcGhhaSBjaHV5ZW4gZG9pIG11YyBkaWNoIGhvYXQgZG9uZy4gDQoNCmh0dHA6Ly90dWFudmll dG5hbS5uZXQvMjAxMC0wOC0xNC1oYS1ub2ktdmEtbmh1bmctY29uLWR1b25nLWRvaS1uZ2F5LWhv YW4tdGhpZW4gRHVjIEFuaCAxNS8wOC8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5vaTogTmh1bmcg Y29uIGR1b25nIG1vbiBtb2kgZG9pIG5nYXkgaG9hbiB0aGllbiANCg0KQ2hpIGNvbiA1NyBuZ2F5 IG51YSBsYSBkZW4gRGFpIGxlIE5naGluIG5hbSBUaGFuZyBMb25nLiBOaHVuZyB0cmVuIG5odW5n IHR1eWVuIA0KZHVvbmcgY2hpbmggbyBIYSBOb2kgdmFuIGNvbiBuaHVuZyBjb25nIHRyaW5oIGRh bmcgZG8uLi4gKENodW0gYW5oIGRvIGtpZW4gdHJ1YyBzdSBEdWMgQW5oIGd1aSBkZW4pIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzEvMjAxMDA3MjgwMDU0 NDMuYXNweCBUcmFuIERhbiAtIFRoYWkgVXllbiAyOC8wNy8yMDEwIDA6NTQgDQoNCkhhIE5vaTog Tmh1bmcgY29uZyB0cmluaCBsYW5nIHBoaSAtIEhhbSBkdW9uZyBibyAiY3VhIGRvbmcgdGhlbiBj YWkiICANCiAgDQooQW5oIGNodXA6IEN1YSBoYW0gZGkgYm8gbmF5IGJpIGtob2EsIG5ndW9pIGRp IGJvIGtob25nIGNvbiBjYWNoIG5hbyBraGFjIGxhIGJ1b2MgDQpwaGFpIGJhbmcgcXVhIGR1b25n IC0gQW5oOiBUcmFuIERhbikNCg0KUmF0IG5oaWV1IGhhbSBkYW5oIGNobyBuZ3VvaSBkaSBibyBx dWEgZHVvbmcgZHVvYyBkYXUgdHUgeGF5IGR1bmcgZGUgZ2lhaSBxdXlldCANCnRpbmggdHJhbmcg Z2lhbyB0aG9uZyBkb25nIGR1YywgbG9uIHhvbiB0YWkgSGEgTm9pLCBuaHVuZyB4YXkgeG9uZyB0 aGkgImN1YSBkb25nIA0KdGhlbiBjYWkiLCBnYXkgbGFuZyBwaGkgbmdoaWVtIHRyb25nLi4uIA0K DQpOYW0gMjAwMSwgZHUgYW4gZHVvbmcgdmFuaCBkYWkgMyBvIEhhIE5vaSBraG9pIGRvbmcsIGNo dSBkYXUgdHUgZHUgYW4gbGEgQmFuIHF1YW4gDQpseSAoQlFMKSBkdSBhbiBUaGFuZyBMb25nLiBH aWFpIGRvYW4gMSBjdWEgZHUgYW4gZ29tIGNhYyB0cnVjIGR1b25nIHR1IG51dCBnaWFvIA0KTWFp IERpY2ggZGVuIExpbmggRGFtLCB0cm9uZyBkbyBuaHVuZyBoYW0gZGFuaCBjaG8gbmd1b2kgZGkg Ym8gbGFuIGRhdSB0aWVuIHh1YXQgaGllbiBvIEhhIE5vaS4gDQoNCk1vaSBjYW4gaGFtIG5odSB0 aGUgcGhhaSBkYXUgdHUga2hvYW5nIDIsNSAtIDMgdGkgZG9uZy4gQmFuIGRhdSBjaGkgY28gNiBo YW0gdHUgDQpkdW9uZyBQaGFtIEh1bmcgZGVuIGR1b25nIFRyYW4gRHV5IEh1bmcuIEhhbSByb25n LCBjbyBiYWMgdGhhbmcgbGVuIHh1b25nIHZhIGhlIA0KdGhvbmcgY2hpZXUgc2FuZyBkYW0gYmFv LiBMdWMgbW9pIGR1YSB2YW8gc3UgZHVuZywgY2EgY2h1IGRhdSB0dSBsYW4gbmhhIHRoYXUgDQp0 aGkgY29uZyBkZXUgdHUgdGluIHNlIGNvIHJhdCBuaGlldSBuZ3VvaSBjaG9uIGRpIGJvIHF1YSBo YW0uIFRoZSBuaHVuZywgc2F1IDMgDQpuYW0ga2UgdHUga2hpIGhvYW4gdGF0LCBuaHVuZyBoYW0g bmF5IHZhbiBiaSBibyBob2FuZy4gRGVuIGtoaSBkdWEgdmFvIHN1IGR1bmcgDQpjaGluaCB0aHVj IGN1bmcgY2hhbmcgY28gbWF5IG5ndW9pIGRhbiBzdSBkdW5nLiBUaGFtIGNoaSwgdmkgcXVhLi4u IGUsIG5oaWV1IGhhbSANCnRyZW4gdHV5ZW4gZHVvbmcgUGhhbSBIdW5nIHN1b3QgbmdheSB0aGVu IGNhaSBjdWEgZG9uZy4NCg0KVGhlbyBraGFvIHNhdCBjdWEgVGhhbmggTmllbiB0cm9uZyBidW9p IGNoaWV1IDIzLjcsIHRhaSBoYW0gdHJ1b2MgY3VhIEJlbiB4ZSBNeSBEaW5oIA0KdmEgaGFtIGRv aSBkaWVuIHNpZXUgdGhpIEJpZyBDIFRoYW5nIExvbmcgKDIyMiBUcmFuIER1eSBIdW5nKSB0aGkg bGFjIGRhYyBjbyBuZ3VvaSBkaS4gDQpDb24gbGFpLCBoZSB0aG9uZyBoYW0gZGFuIHR1IGRhdSBk dW9uZyBQaGFtIEh1bmcsIGRvYW4gZ2FuIGNhdSB2dW90IHNhbmcgbGFuIGR1b25nIA0KZG9pIGRp ZW4gcGhpYSBjaG8gRGljaCBWb25nIEhhdSBiaSBraG9hIGN1YS4gSGFtIHRydW9jIGN1YSBWaWV0 dGVsIFRlY2hub2xvZ3kgZ2FuIA0KVHJ1bmcgdGFtIEhvaSBuZ2hpIHF1b2MgZ2lhIHRyZW4gZHVv bmcgUGhhbSBIdW5nIGN1bmcgdHJvbmcgdGluaCB0cmFuZyBkb25nIGN1YS4gDQoNCk5vaSBvIGN1 YSBuZ3VvaSB2byBnaWEgY3UNCg0KQ2hpIEhhbmgsIG5oYW4gdmllbiBDb25nIHR5IENQIGNvbmcg dHJpbmggZ2lhbyB0aG9uZyAyIEhhIE5vaSwgZGFuZyB0cnVjIGhhbSBkb2kgDQpkaWVuIHNpZXUg dGhpIEJpZyBDIGNobyBiaWV0OiAiTmdvaSB0cnVjIHRhaSBkYXksIGRlbiBtYWMgYmVuaCB0dSBr eSBtYXQgdGhvaS4gDQpDbyBraGkgdG9pIG5nb2kgaG9uIDEgdGllbmcgZG9uZyBobyBtYSBjaGFu ZyB0aGF5IGFpIGRpIHF1YSBjYS4gVGhlIG5lbiwgY28gYmFvIA0KbmhpZXUgbmd1b2kgaGF5IGRp IHF1YSBoYW0sIHRvaSBkZXUgbmhhbiBtYXQsIHRoYW0gY2hpIG5hbSBkdW9jIGNoaW5oIHhhYyBj YSB0aG9pIGdpYW4iLg0KDQpRdWEgbmdhIHR1IFBoYW0gSHVuZyAtIEtodWF0IER1eSBUaWVuIC0g VHJhbiBEdXkgSHVuZyAtIGNhbyB0b2MgTGFuZyAtIEhvYSBMYWMgDQpjdW5nIGNvIDIgaGFtLiBU aGUgbmh1bmcgY2EgaGFpIGRldSBiaSBhaSBkbyBkdW5nIHJhbyB0cmUgcXVheSBraW4uIFRoZW8g bG9pIGtlIA0KY3VhIGNoaSBIYW5oLCBjYWNoIGRheSBraG9uZyBsYXUgbW90IHRyb25nIHNvIG5o dW5nIGhhbSB0cmVuIGR1b25nIFBoYW0gSHVuZyANCmNvbiB0cm8gdGhhbmggbmhhIG8gY3VhIG1v dCBjYXAgdm8gY2hvbmcuICJQaG9uZyBuZ3UgY28gZGF5IGR1IHRpZW4gbmdoaTogZ2l1b25nLCAN CnR1LCB0aXZpLCBxdWF0IGRpZW4gdmEga2h1IGJlcCByaWVuZyBiaWV0LiBOaHVuZyB2aSAibGVu IGJhbyIgbmhpZXUgcXVhLCBuZW4gaG8gDQpiaSBkdW9pIGRpLiBHaW8gdGhpIDQgY2FpIGN1YSBo YW0gKDIgY2FpIHBoaWEgZHVvbmcgUGhhbSBIdW5nLCAyIGNhaSBwaGlhIGdhbiANCmNobyBEaWNo IFZvbmcgSGF1IC0gUFYpIGRldSBiaSBraG9hLiBEdSB0aGUsIHRoaW5oIHRob2FuZyB2YW4gY28g a2UgZG90IG5oYXAgDQp2YW8gaGFtLCBkZSBwaG9uZyB1ZSB2YS4uLiB0aWVtIGNoaWNoLCBodXQg aGl0IiwgY2hpIEhhbmgga2UuDQoNCkFuaCBjaHVwOiB2YW8gdGhhbmcgMTAuMjAwOSwgY2FuIGhh bSBkdW9uZyBibyB0cmVuIGR1b25nIFBoYW0gSHVuZyBuYXkgY29uIGxhIA0Kbm9pIG8gY3VhIG1v dCBjYXAgdm8gY2hvbmcuIFRyb25nICJuaGEiIGNvIGR1IHRpZW4gbmdoaTogdHUgZ2l1b25nLCBx dWF0IGRpZW4sIA0KdGl2aSwgYmVwIGdhcywgbm9pIGNvbSBkaWVuLi4uIC0gQW5oOiBUcmFuIERh bg0KDQpUaGFtIGNoaSwgbW90IHRyb25nIG5odW5nIGhhbSBkdW9uZyBibyBoaWVuIGRhaSBuaGF0 IEhhIE5vaSBiYXkgZ2lvLCBjbyB2b24gZGF1IA0KdHUgbGVuIGRlbiBnYW4gMS41MDAgdGkgZG9u ZyBsYSBoYW0gZHVvbmcgYm8gTmdhIFR1IFNvIGxhaSB0cm8gdGhhbmggZGllbSB2dWkgDQpjaG9p LCB0YXAgeGUgZGFwLi4uIGN1YSBuZ3VvaSBkYW4gdGh1IGRvLiBIYW0gImUiIGtoYWNoLCBwaGFu IHZpIGNvIHF1YSBuaGlldSANCmN1YSBsZW4geHVvbmcgKDEyIGN1YSksIHZhIGJhbmcgY2hpIGRh biBsYWkga2hvbmcgcm8gcmFuZy4gTmd1eWVuIFRoaSBMYW4gKFNWIA0KREggVGh1eSBsb2kgdHJv IHRhaSBUcnVvbmcgQ2hpbmgpIGtlOiAiRW0gZGkgY2hvIE5nYSBUdSBTbyBjaG9pLCBsdWMgdmUg ZGkgaGFtIA0KZHVvbmcgYm8gZGUgbGVuIGR1b25nIFRydW9uZyBDaGluaC4gTmh1bmcgZW0gbmhp biB0aGF5IDIgYmllbjogMSBkZSBUcnVvbmcgQ2hpbmggDQotIFRheSBTb24sIDEgZGUgVHJ1b25n IENoaW5oIC0gTmd1eWVuIFRyYWkgLSBMYW5nLCBsb2FuZyBuZ29hbmcga2hvIGhpZXUgcXVhLCAN CmhvaSBiYWMgYmFvIHZlIHRydWMgaGFtIG1hIHZhbiBiaSBzYWkgY3VhIGxlbi4gQ3VvaSBjdW5n IGVtIGNoYW5nIGJpZXQgZGkgbmh1IA0KdGhlIG5hbywgZGFuaCBxdWF5IGxlbiwgZGkgcXVhIGR1 b25nIiwgDQoNCkRvbmcgY3VhIGRlLi4uIGNob25nIGh1IGhvbmchDQoNCkNhdSBob2kgZGF0IHJh IGxhIHRhaSBzYW8gaGFtIGR1b25nIGJvIHZhIG5odW5nIGNheSBjYXUgdnVvdCB2YW4gbWluaCwg aGllbiBkYWkgDQpuaHUgdGhlIGxhaSBiaSBibyBob2FuZywgaG9hYyBuZXUgY28gc3UgZHVuZyB0 aGkgaGlldSBxdWEga2hvbmcgY2FvLCBnYXkgbGFuZyANCnBoaSB0aWVuIGN1YSwgY29uZyBzdWMg eGF5IGR1bmc/IFRyb25nIGtoaSBtb2kgbmdheSwgbyBIYSBOb2kgY28ga2hvbmcgaXQgbmh1bmcg DQp2dSB0YWkgbmFuIGdpYW8gdGhvbmcgbWEgdGh1IHBoYW0gKHZhIGN1bmcgY28gdGhlIGxhIG5h biBuaGFuKSBjaGluaCBsYSBuZ3VvaSBkaSBibyBzYW5nIGR1b25nLiANCg0KIlZhbiBkZSBkYXQg cmEga2hvbmcgcGhhaSB4YXkgZHVuZyBuaHVuZyBnaSBtYSBsYSBzYXUga2hpIHhheSBkdW5nIHhv bmcgc2UgcXVhbiANCmx5IG5odSB0aGUgbmFvLiBUb2kgZGEgdHVuZyBzYW5nIE5hbSBOaW5oIChU cnVuZyBRdW9jKSwgdGhheSBoYW0gZGkgYm8gdmEgY2F1IA0KdnVvdCBjdWEgbmd1b2kgdGEgaG9h dCBkb25nIHJhdCBoaWV1IHF1YS4uLiIsIGFuaCBOZ3V5ZW4gVmFuIER1bmcgKG5nbyAxNjYgVHJh biANCkR1eSBIdW5nLCBRLkNhdSBHaWF5KSBkdW5nIGRvaSB4ZSB0YWkgQmVuIHhlIE15IERpbmgg YmF5IHRvLiBUaGVvIHF1YW4gZGllbSBjdWEgDQphbmggRHVuZywgY2FuIHBoYWkgZGF1IHR1IG1v dCBjYWNoIGRvbmcgYm8gY2FjIGNvbmcgdHJpbmgsIGNhaSBubyBobyB0cm8gY2FpIGtpYSANCm1v aSBtb25nIHN1IGR1bmcgaGlldSBxdWEsIHRyYW5oIGxhbmcgcGhpLg0KDQpUcmEgbG9pIFRoYW5o IE5pZW4sIG9uZyBUcmFuIFF1b2MgVmlldCwgQ3VjIHRydW9uZyBDdWMgUXVhbiBseSB4YXkgZHVu ZyB2YSBjaGF0IA0KbHVvbmcgY29uZyB0cmluaCBnaWFvIHRob25nIC0gQm8gR1RWVCwgY2hvIHJh bmcgbmhpZXUgaGFtIGR1b25nIGJvIHRhaSBraHUgdnVjIFRQIA0KSGEgTm9pIGR1b2MgZGF1IHR1 IHhheSBkdW5nIG8gbmhpZXUgdGhvaSBkaWVtIGtoYWMgbmhhdS4gRGVuIG5heSBuaGlldSBoYW0g dmFuIA0KY2h1YSBkdW9jIGJhbiBnaWFvIGRlIGtoYWkgdGhhYyBzdSBkdW5nIHZpIHRodSB0dWMg aG9hYyBjYWMgaGEgdGFuZyBrZW0gdGhlbyBjaHVhIA0KeG9uZy4gT25nIFZpZXQgY2hvIHJhbmc6 ICJDYSBoZSB0aG9uZyBkdW9uZyBob2FjIGhhbSBwaGFpIGhvYW4gdGhpZW4gZG9uZyBibyB0aGkg DQp2aWVjIGtoYWkgdGhhYyBtb2kgY28gaGlldSBxdWEiLg0KDQpNb3QgY2FuIGJvIGNvIHRyYWNo IG5oaWVtIHRodW9jIEJRTCBUaGFuZyBMb25nLCBjaHUgZGF1IHR1IGN1YSBoZSB0aG9uZyBoYW0g ZHVvbmcgDQpibyB0cmVuIGR1b25nIHZhbmggZGFpIDMgLSBIYSBOb2ksIGN1bmcgeGFjIG5oYW4g bmhpZXUgaGFtIHRyZW4gdHV5ZW4gZHUgZGEgaG9hbiANCnRoaWVuIG5odW5nIGNodWEgYmFuIGdp YW8gYm9pIG5oaWV1IGx5IGRvIGtoYWMgbmhhdS4gQ3UgdGhlLCA2IGhhbSB0cmVuIGR1b25nIFBo YW0gDQpIdW5nLCBkb2FuIHR1IFRydW5nIEhvYSBkZW4gTWFpIERpY2gsIGRhIGhvYW4gdGhhbmgg dHUgcmF0IGxhdSBuaHVuZyBjaGkgY28gNCBoYW0gDQpkdW9jIGJhbiBnaWFvLCAyIGhhbSBjb24g bGFpIGRhbmcgcGhhdCBzaW5oIG1vdCBzbyB2dW9uZyBtYWMgdmUgZ2lhaSBwaG9uZyBtYXQgYmFu Zy4gDQpUdW9uZyB0dSwgY2FjIGhhbSB0cmVuIHR1eWVuIHZhbmggZGFpIDMgdHUgVGhhbmggWHVh biAtIExpbmggRGFtIGRhbmcgdHJvbmcgZ2lhaSBkb2FuIA0KaG9hbiB0aGllbiB2ZSBobyBzbyB0 aHUgdHVjLiBEbyBjaHVhIGR1b2MgYmFuIGdpYW8gbmVuIG5oaWV1IGhhbSBkYW5nIHBoYWkgImN1 YSBkb25nIA0KdGhlbiBjYWkiIGRlIGNob25nIG1hdCBtYXQgaG9hYyBodSBob25nIHRhaSBzYW4g dHJvbmcgaGFtLCBkdSB0YWkgY2FjIGhhbSBuYXkgZGV1IA0KY28gbHVjIGx1b25nIGJhbyB2ZSB0 aHVvbmcgeHV5ZW4gdHVjIHRydWMuLi4gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vVGlu LXR1Yy9OYW5nLWNhcC1CVi1VLWJ1b3UtSGEtTm9pLTgtbmFtLXZhbi1raG9uZy14b25nLzQ2MTkg SGFpIFBob25nIDUuNy4yMDEwIDA5OjAzIChHTVQgKyA3KSANCg0KSGEgTm9pOiBOYW5nIGNhcCBC ViBVIGJ1b3UgSGEgTm9pIDggbmFtIHZhbiBraG9uZyB4b25nISANCg0KVHJhaSBxdWEgOCBuYW0s IHZvaSAyIGRvaSBjaHUgZGF1IHR1LCBjb25nIHRyaW5oIG5heSB2YW4gY2h1YSBob2FuIHRoYW5o LiBEdSBhbiBjYWkgDQp0YW8sIG5hbmcgY2FwIEJlbmggdmllbiBVIGJ1b3UgSGEgTm9pIGRhIHRy byB0aGFuaCBtb3QgdHJvbmcgbmh1bmcgZHUgYW4gY2hhbSB0cmUsIA0Kbm9pIG5odWMgbmhvaSBj dWEgeSB0ZSB0aHUgZG8uDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vVGluLVR1Yy9OYW5n LWNhcC1iZW5oLXZpZW4tVS1idW91LUhOLVRoaWV0LWhhaS1nYW4tMy10aS1kb25nLzc5NDIgNC44 LjIwMTAgMDk6NDAgKEdNVCArIDcpDQoNCkhhIE5vaTogTmFuZyBjYXAgYmVuaCB2aWVuIFUgYnVv dSBITiAtOiBUaGlldCBoYWkgZ2FuIDMgdGkgZG9uZyANCg0KTGFvIERvbmcgc28gcmEgbmdheSA1 LjcgZGEgY28gYmFpIHBoYW4gYW5oIHZlIGR1IGFuIG5hbmcgY2FwIEJlbmggdmllbiBVIGJ1b3Ug cXVhIDggDQpuYW0gdmFuIGtob25nIHhvbmcsIGxvaSBkbyBzdSBjaGFtIHRyZSB0dSBwaGlhIEJh biBxdWFuIGx5IGR1IGFuIFNvIFkgdGUuIFRoZW8gdGhvbmcgDQp0aW4gY2h1bmcgdG9pIG1vaSBj byBkdW9jLCBjaGkgcmllbmcgdmllYyBjaGFtIHRpZW4gZG8gY3VhIGR1IGFuIGN1bmcgZGEgZ2F5 IHRoaWV0IGhhaSB0b2kgZ2FuIDMgdGkgZG9uZy4NCg0KaHR0cDovL3d3dy5sYW9kb25nLmNvbS52 bi9Ib21lL0NoYW4tbnVvaS1kaWV1LWR1bmctdmktdGhpZXUtZGllbi8yMDEwNi8xODg0MjUubGFv ZG9uZyA4OjA5IEFNLCAxNi8wNi8yMDEwDQoNCkhhIE5vaTogQ2hhbiBudW9pIGRpZXUgZHVuZyB2 aSB0aGlldSBkaWVuDQogDQpUaW5oIHRyYW5nIGNhdCBkaWVuIG5oaWV1IGtodSB2dWMgbmdvYWkg dGhhbmggSGEgTm9pIGRvIHRoaWV1IGRpZW4ga2hpZW4ga2hvbmcgaXQgdHJhbmcgdHJhaSBjaGFu IG51b2kga2hvbiBkb24uDQoNCmh0dHA6Ly92bmVjb25vbXkudm4vMjAxMDA0MDIwOTIzMjI0MDJQ MEMxNy9raGFjaC1zYW4tdHJvbmctY29uZy12aWVuLXZhLWNoaS1waGktY28taG9pLmh0bSBEVUMg VFJJIDAyLzA0LzIwMTAgMDk6MzQgKEdNVCs3KSAodHJpY2gpDQogDQpIYSBOb2k6IEtoYWNoIHNh biB0cm9uZyBjb25nIHZpZW4gdmEgImNoaSBwaGkgY28gaG9pIiANCg0KVGhlbyBwaGFuIHRpY2gg Y3VhIGNodSBkYXUgdHUsICJ0aGlldCBoYWkiIHRyb25nIHZpZWMga2hvbmcgZHVvYyB4YXkga2hh Y2ggc2FuIHRyb25nIA0KQ29uZyB2aWVuIFRob25nIE5oYXQgbGVuIHRvaSBnYW4gODAgdHJpZXUg VVNEDQoNCkFuaCBjaHVwOiBLaHUgZGF0IHRhaSAyOTUgTGUgRHVhbiAtIG5vaSBDb25nIHR5IFNJ SCB0dW5nIGR1b2MgY2FwIGRhdCB4YXkga2hhY2ggc2FuLg0KDQpUcmFuaCBjYWkgcXVhbmggZHUg YW4gS2hhY2ggc2FuIE5vdm90ZWwgSGFub2kgb24gdGhlIFBhcmsgKHRydW9jIGRheSBjbyB0ZW4g U0FTIA0KUm95YWwpIHZhbiBkYW5nIHRpZXAgdHVjLCBzYXUga2hpIGNodSBkYXUgdHUgbW9pIGRh eSBkYSBjbyBjb25nIHZhbiBkZSBuZ2hpIFVCTkQgDQp0aGFuaCBwaG8gSGEgTm9pIGNhcCB0aGVt IGRhdCBkZSAiZGVuIGJ1IiBjaG8gbmh1bmcgdGhpZXQgaGFpIHR1IHZpZWMga2hvbmcgZHVvYyB4 YXkgDQpraGFjaCBzYW4gdHJvbmcgQ29uZyB2aWVuIFRob25nIE5oYXQuDQoNCkNvIHZlIG5odSBj YXUgY2h1eWVuICJjaGkgcGhpIGNvIGhvaSIgY3UgdGhlIGN1YSBtb3QgbmhhIGRhdSB0dSBkYSB2 YSBkYW5nIGxhIGdhbmggDQpuYW5nIGNobyBjaGluaCBxdXllbiB0aGFuaCBwaG8uIE5odW5nIGJl biBjYW5oIGRvLCBjbyBtb3QgdGh1ICJjaGkgcGhpIGNvIGhvaSIga2hhYyANCmNvbiBxdWFuIHRy b25nIGhvbjogbmllbSB0aW4gY3VhIGNhYyBuaGEgZGF1IHR1IGRvaSB2b2kgY2hpbmggcXV5ZW4g dmEgbW9pIHRydW9uZyBkYXUgDQp0dSwgdHJvbmcgYm9pIGNhbmggY2FwIHBoZXAgZHUgYW4gdmEg ZGF0IGRhaSB2YW4gbGEgbW90IHF1eSB0cmluaCAieGluIC0gY2hvIiB0dSBiYW8gbmhpZXUgDQpu YW0gbmF5IGNodWEgaGUgdGhheSBkb2kuDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhv aS9kb3RoaS8yMDA5LzA4Lzg2MjMxOS8gMjI6MDUsIDA3LzA4LzIwMDkgKEdNVCs3KQ0KDQpIYSBO b2k6IEJpZXQgdGh1IG1vYyBsZW4gdHUuLi4gcnVvbmcgDQoNCmh0dHA6Ly93d3cudGh1dmllbnBo YXBsdWF0LnZuLz9DVD1OVyZOSUQ9MzA2MjUgIDA3LzEwLzIwMDkNCg0KSGEgTm9pOiBEZW4gYnUu Li4gNTAuMDAwZCBtb3QgbWV0IHZ1b25nIGRhdCAtIFRodSBob2kgZGF0IGtob25nIGNvIHF1eWV0 IGRpbmgNCg0KRGF0IG8gdGh1IGRvIEhhIE5vaSB0aHVvYyBsb2FpIGRhdCwgY28gbm9pIGdpYSBk YXQgZGVuIGNhIHRyYW0gdHJpZXUgZG9uZy8xbTIuIE5odW5nIA0KbmdoaWNoIGx5IGxhaSB4YXkg cmEgbyBxdWFuIExvbmcgQmllbiwgZ2lhIGRhdCBtYSBVQk5EIHF1YW4gYXAgZ2lhICJobyB0cm8i IGNobyBuZ3VvaSBkYW4gY2hpIDUwIG5naGluIGRvbmcvMW0yLiANCg0KVGh1IGhvaSBkYXQga2hv bmcgY28gcXV5ZXQgZGluaCANCg0KVHJvbmcgZG9uIHRodSBndWkgYmFvLCBoYW5nIGNodWMgaG8g ZGFuIG8gcGh1b25nIER1YyBHaWFuZywgcXVhbiBMb25nIEJpZW4sIEhhIE5vaSANCnBoYW4gYW5o IHZpZWMgVUJORCBxdWFuIExvbmcgQmllbiB0aHUgaG9pIGRhdCBjdWEgY2FjIGhvIGRhbiBkZSBt byByb25nIHR1eWVuIA0KZHVvbmcgVHJ1b25nIExhbSBuaHVuZyBraG9uZyBjbyBxdXlldCBkaW5o IHBoZSBkdXlldCBkdSBhbiBjdW5nIG5odSBraG9uZyBjbyANCnF1eWV0IGRpbmggdGh1IGhvaSBk YXQuIA0KDQpEYWkgZGllbiBjaG8gY2FjIGhvIGRhbiwgYmEgTHVvbmcgVGhpIE1vYyAoc28gbmhh IDk5LCBkdW9uZyBUcnVvbmcgTGFtKSBjaG8gYmlldDogDQoiRGF0IG5oYSBjaHVuZyB0b2kgc2lu aCBzb25nIG9uIGRpbmgsIGtob25nIHRyYW5oIGNoYXAgdHUgdHJ1b2MgbmFtIDE5OTMsIGhhbmcg bmFtIA0KY2h1bmcgdG9pIHZhbiBkb25nIHRodWUgZGF0IHZhIGRhIGR1b2MgVUJORCBodXllbiBH aWEgTGFtIChjdSkgY29uZyBuaGFuIHJhbmggZ2lvaS4gDQpOZXUgY2hpbmggcXV5ZW4gZGlhIHBo dW9uZyBsYXkgZGF0IGxhbSBkdW9uZyB0aGkgY3VuZyBwaGFpIGJvaSB0aHVvbmcgY2hvIGNodW5n IHRvaSANCnRoZW8gZ2lhIHF1eSBkaW5oIGN1YSB0aGFuaCBwaG8gbGEgMTQgdHJpZXUgZG9uZy8x bTIsIGNodSBub2kgbGEgaG8gdHJvIGdpYWkgcGhvbmcgbWF0IA0KYmFuZyBjaGkgY28gNTAgbmdo aW4gZG9uZy8xbTIgbGEgaGV0IHN1YyB2byBseSIuIA0KDQpPbmcgTmd1eWVuIE1hbmggSGEsIG1v dCBobyBkYW4gY28gZGF0IGJpIHRodSBob2kgY3VuZyBwaGFuIHVuZzogIjEwMCUgbmd1b2kgZGFu IG8gDQpkYXkgc2FuIHNhbmcgZ2lhbyBkYXQgZGUgbGFtIGR1b25nIG5odW5nIHBoYWkgZGVuIGJ1 IHRoZW8gZHVuZyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0LiANCkRhdCBjdWEgZ2lhIGRpbmggdG9p IG8gb24gZGluaCB0dSB0cnVvYyBuYW0gMTk5MywgbWFjIGR1IGNodWEgY28gc28gZG8gbmh1bmcg a2hpIHRpZW4gDQpoYW5oIGxheSBkYXQgdGhpIFVCTkQgcXVhbiBMb25nIEJpZW4gcGhhaSBkZW4g YnUgY2h1Ii4NCg0KaHR0cDovL2Nvbmdkb2FuLm1vc3QuZ292LnZuL2luZGV4LnBocD9vcHRpb249 Y29tX2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTgyMTpzYW4tY2hpLW5oYS10ci1jaG8tdHItZW0t dGhpdS1uaG5nLXZuLWItYi1waGktJmNhdGlkPTUxOmNhYy1iYWktdml0LWxpZW4tcXVhbi1uLWhv dC1uZy1jb25nLW9hbiZJdGVtaWQ9NzMNCg0KSGEgTm9pOiBTYW4gY2hvaSwgbmhhIHRyZSBjaG8g dHJlIGVtIC0gdGhpZXUuLi4gbmh1bmcgdmFuIGJpIGJvIHBoaSANCg0KQW5oIGNodXA6IFNhbiBj aG9pIENvbiBWb2kgbyBwaHVvbmcgVHJ1bmcgVHUgZGEgYmkgeHVvbmcgY2FwIHZhIGJpIGNoaWVt IGR1bmcgbGFtIG5vaSBraW5oIGRvYW5oIA0KDQpodHRwOi8vdmlldGJhby52bi9QaG9uZy1zdS9I YS1Ob2ktdGhpZXUtc2FuLWNob2ktY2hvLXRyZS1lbS83NTE2MjE1OS81MTQvIExlIFh1YW4gMzAv Ny8yMDA3LCAxNjoxOCBHTVQrNyANCg0KSGEgTm9pOiBRdWEgdGhpZXUgc2FuIGNob2kgY2hvIHRy ZSBlbSANCg0KTmh1bmcga2h1b24gdmllbiBjYXkgeGFuaCB2YSBzYW4gY2hvaSBjaG8gdHJlIGVt IG8gSGEgTm9pIHF1YSBpdCEgVHJvbmcgY2FpIG5hbmcgDQpub25nIGN1YSBtdWEgaGUsIHRyYW5o IHRodSBtb2kgbm9pLCBtb2kgbHVjLCBiYXQgY2hhcCBjYSBuZ3V5IGhpZW0gcmluaCByYXAsIHRy ZSANCmVtIGNvIHRpbSBjaG8gbWluaCBuaHVuZyBub2kgZGUgdnVpIGNob2kuDQoNCkFuaCBjaHVw OiBOaHVuZyB0b2EgbmhhIHNhbiBzYXQgbmhhdSB0YWkgS2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9h IC0gTmhhbiBDaGluaC4NCg0KQW5oIGNodXA6IEJhaSBkYXQgaG9hbmcgYmVuIGR1b25nIE5ndXll biBQaG9uZyBTYWMga2VvIGRhaSBjdW5nIHRybyB0aGFuaCBzYW4gY2hvaS4NCg0KQW5oIGNodXA6 IE5ndXkgaGllbSBsdW9uIHJpbmggcmFwIGtoaSB0cmUgdGhhIGRpZXUgbyBuaHVuZyBub2kgdGhl IG5heS4NCg0KQW5oIGNodXA6IERpIHhlIGRhcCB0cmVuIHZpYSBoZSB0YWkgZHVvbmcgTGFuZy4N Cg0KQW5oIGNodXA6IFNhbiBjaG9pIGJlIG5obyB0YWkga2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9h IC0gTmhhbiBDaGluaCBjdW5nIGJpIGNoaWVtIGR1bmcgbGFtIG5vaSBkZSB4ZS4NCg0KQW5oIGNo dXA6IExlbiBxdWEgbmh1bmcgeGUgbWF5IGRlIGRpIGRhby4NCg0KQW5oIGNodXA6IE5nbyBuaG8s IHZvbmcgeHV5ZW4gY3VuZyB0cm8gdGhhbmggc2FuIGJvbmcuDQoNCkFuaCBjaHVwOiBLaG9uZyBj byBjaG8gY2hvaSwgdHJlIGRvIHhvIGRlbiBiZSBib2kga2llbiBiZSBib2kgbHVvbiBiaSBxdWEg dGFpLiANCg0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDMvM0JBMTk4ODkv IDEwLzMvMjAxMCwgMTk6NTMgR01UKzcNCg0KSGEgTm9pOiBDaGF5IGNodW5nIGN1IDE4IHRhbmcs IDIgbmd1b2kgY2hldCAoZHVvYyBkdWEgZGkgY2FwIGN1dSBiYW5nIHhlIG9tKSANCg0KMThoIHRv aSAxMC8zIG5odW5nIGNvdCBraG9pIGJvYyBjYW8gdGFpIHRhbmcgMTYgY2h1bmcgY3UgSlNDIDM0 IChMZSBWYW4gTHVvbmcsIEhhIA0KTm9pKS4gTmhpZXUgY3UgZGFuIGJpIG1hYyBrZXQgbGFvIHJh IGJhbiBjb25nIHZheSBraGFuIGNhdSBjdXUuIFRyb25nIHR1eWV0IHZvbmcsIGNvIA0KZ2lhIGRp bmggZGEgYmVuIHF1YW4gYW8gdGhhbmggZGF5LCBidW9jIGNvbiBtaW5oIHRoYSB4dW9uZyB0YW5n IGR1b2kuDQoNCkFuaCBIbyBTeSBCYWMsIG1vdCBuaGFuIGNodW5nIGtlIGxhaTogIlRoYXQga2lu aCBob2FuZywgbmh1bmcgY290IGtob2kgZGVuIGN1b24gY2FvLCANCnRpZW5nIGxhIGhldC4gTmhp ZXUgbmd1b2kgbGFvIHh1b25nIHRhbmcgMSwgY29uIG5odW5nIG5ndW9pIG8gdGFuZyBjYW8gdGhp IGRvIHJhIGJhbiANCmNvbmcgdmF5IGFvIGNhdSBjdXUiLg0KDQpDaGkgVnVvbmcgTGFuIFBodW9u ZywgMzQgdHVvaSB2YSBjb24gdHJhaSBMdXUgR2lhIE1pbmggMTAgdHVvaSwgc29uZyB0YWkgdGFu ZyAxOCBkYSB0dSANCnZvbmcgdGFpIGJlbmggdmllbiBkbyBiaSBuZ2F0IGtob2kuIDMgbmd1b2kg a2hhYyBiaSB0aHVvbmcgZGFuZyBkdW9jIGNhcCBjdXUuIA0KDQpZIGtpZW4gYmFuIGRvYyAoMTAp IA0KDQpIYXkgbmdoaSBkZW4gc2luaCBtYW5nIGN1YSBjb25nIGRhbg0KDQpEYXkgbGEgc3UgY2Fu aCBiYW8gY2hvIGN1IGRhbiBzb25nIG8gY2FjIHRvYSBjaHVuZyBjdSBjYW8gdGFuZyBvIFZpZXQg TmFtLg0KDQpYaW4gaG9pIGNhYyBuaGEgcXVhbiBseSwga2hpIHhheSBkdW5nIG5odW5nIHRvYSBu aGEgY2FvIHRhbmcsIGNvIG5naGkgZGVuIHBodW9uZyBhbiBjYXAgDQpjdXUga2hhbiBjYXAsIGJp ZW4gcGhhcCBwaG9uZyBjaG9uZyBjaGF5IGNobyBuZ3VvaSBkYW4gaGF5IGtob25nIHZhIGx1YyBs dW9uZyBjYW5oIHNhdCANCmN1dSBob2EgY28gZHUgcGh1b25nIHRpZW4gZGUgY3V1IGRhbiBraGkg Y2FuLg0KKE5ndXllbiBUdWFuKQ0KDQpHb3AgeSBraWVuDQoNClRoZW8gdG9pLCBjYWMgdG9hIG5o YSBjYW8gdGFuZyBuZW4gbGFtIGNhdSB0aGFuZyB0aG9hdCBoaWVtIG8gYmVuIG5nb2FpIHRoYXkg dmkgbGFtIGJlbiANCnRyb25nLiBOaG8gY28ga2hvaSB0aGkgZ2lvIHRhdCBkaS4gVG9pIHRoYXkg cmF0IG5oaWV1IHRvYSBuaGEgbGFtIGNhdSB0aGFuZyB0aG9hdCBoaWVtIHRoZW8gY2FjaCBuYXku IA0KKExlIER1YyBWaWV0KQ0KDQpRdWEgY2hhbSB0cmUNCg0KWGluIGNoaWEgYnVvbiBjdW5nIG5v aSBkYXUgY3VhIGFuaCBWaW5oIGxhIGNob25nIGN1YSBjaGkgTGFuIFBodW9uZyB2YSBjaGEgY3Vh IGNoYXUgTWluaC4gDQpCdW9pIGNoaWV1IGhvbSBxdWEgdG9pIGRhIGNodW5nIGtpZW4gdnUgdmll YyB0dSBkYXUgZGVuIGN1b2kuIA0KVGhhdCBzdSB0b2kgcmF0IGJ1YyB4dWMgdmkgdGhhaSBkbyBr aG9uZyBjaGl1IGhvcCB0YWMgY3VhIGJhbiBxdWFuIGx5IHRvYSBuaGEuIFJvaSBzYXUgZG8gZGVu IA0KbGluaCBjdXUgaG9hLCA2IGNoaWVjIHhlIGN1bmcgdmFvIHR1IGx1YyA2aDQ1IHZheSBtYSBk ZW4gN2gzMCBtb2kgYmF0IGRhdSBjaG8gdGhhbmcgbGVuIGN1dSBuZ3VvaS4NCg0KS2hpIHZ1IHZp ZWMgZGEgZ2lhaSBxdXlldCBzYXAgeG9uZyB0aGkgdG9pIHRoYXkgYW5oIHhlIG9tIGRhIGR1YSBo YWkgbWUgY29uIGNoaSBMYW4gdmEgY2hhdSANCk1pbmggcGhvbmcgeGUgbWF5IHZlIHZhIG5vaTog Iktob25nIGN1dSBkdW9jIG51YSByb2ksIGRpIFBodW5nIEh1bmcgcm9pIiAodHJpY2ggbmd1eWVu IHZhbiANCmxvaSBhbmggYXkgbm9pKSBsYW0gdGF0IGNhIGNodW5nIHRvaSBiYW5nIGhvYW5nLiAN Cg0KVGh1b25nIHRoaSBraGkgeGUgY3V1IGhvYSBuaGFuIGxlbmggZGkga2hpIGNvIGJhbyBjaGF5 IGxhIHBoYWkgY28geGUgY3V1IHRodW9uZyBkaSBjdW5nLCANCnZheSB0YWkgc2FvIGtoaSBtZSBj b24gY2hpIExhbiBkdWEgcmEgbWEgcGhhaSAzMCBwaHV0IHNhdSBtb2kgZHVhIG1lIGNvbiBjaGkg YXkgdmFvIHZpZW4gDQpkdW9jLCBtYSBkdWEgdmFvIHZpZW4gYmFuZyB4ZSBvbS4gQ2FjIGNvIHF1 YW4gY2h1YyBuYW5nIGdpYWkgdGhpY2ggbmh1IHRoZSBuYW8/IEJhbiBxdWFuIA0KbHkgdG9hIG5o YSBjaGl1IHRyYWNoIG5oaWVtIG5odSB0aGUgbmFvPyBUaGF0IGRhbmcgYnVvbiBjaG8gZ2lhIGRp bmggYW5oIFZpbmguIA0KWGluIGNoaWEgYnVvbiBub2kgZGF1IGN1YSBhbmguIA0KKE5ndXllbiBW YW4gSHVuZykNCg0KQ2hpYSBidW9uIGN1bmcgZ2lhIGRpbmggY2hpIFBodW9uZw0KDQpLaHUgbmhh IG5heSByYXQgZ2FuIHRydW9uZyBwaG9uZyBjaGF5IGNodWEgY2hheS4gTmh1bmcgcmF0IGxhdSBz YXUga2hpIGNvIGRhbSBjaGF5IHZhbiANCmtob25nIHRoYXkgY28gY3V1IGhvYSBkZW4uIFRoYXQg ZGF1IGxvbmcgY2hvIDIgbWUgY29uIGNoaSBMYW4gUGh1b25nLCB4aW4gY2hpYSBidW9uIGN1bmcg Z2lhIGRpbmguIA0KKEJhbiBkb2MgSGEgTm9pKQ0KDQpDYW4gcGhhaSB0cmFuZyBiaSB0aGlldCBi aSBjdXUgaG8NCg0KVHJhbmcgYmkgY3V1IGhvIHRyb25nIGNhYyBuaGEgY2FvIHRhbmcgbyBWTiBy YXQga2VtLiBUcm9uZyB0cnVvbmcgaG9wIDIgbWUgY29uIGNoaSBQaHVvbmcgbmF5LCANCm5ldSBj byBtYXQgbmEgcGhvbmcga2hvaSB0aGkgY2hhYyBraG9uZyBjbyBrZXQgcXVhIGJpIHRoYW0gbmF5 LiBDbyB0cmFuZyBiaSBuYXksIGNvIGtoYSBuYW5nIA0KdGhvYXQgcmEgbmdvYWkgYmFuZyBkdW9u ZyBjYXUgdGhhbmcgYm8gYmF0IGNoYXAga2hvaSBkYXkgZGFjLiBUcm9uZyBjYWMgY2h1bmcgY3Us IGtoYWNoIHNhbiANCmNhbyB0YW5nIG8gbnVvYyBuZ29haSBtYSB0b2kgZGEgZ2FwLCBjYWMgcGhv bmcgZGV1IGNvIHRoaWV0IGJpIG5heS4NCihCaWJpKQ0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQu dm4vYnZraC8yMDEwMDMvQ2hpLW51YS10eS1kYXQtY29jLTEtbWFuaC1kYXQtODk5MjgyLyAxNDoz NiAxNy8wMy8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBNdWEgZGF0IEtEVCBCYWMgQW4gS2hhbmg6 IE5oaWV1IHR5IGRvbmcgZGF0IGNvYydib2MgaG9pJyANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hh bm5lbC8xOTg3LzIwMTAwOC9IYS1Ob2ktVHJhbmgtby1nYS1iaS14ZS10YWktZGFtLTMtbmd1b2kt Y2hldC0xNzY1MDQ5LyAgMjUvMDgvMjAxMCAxMjo1NDo0NyANCg0KSGEgTm9pOiBUcmFuaCBvIGdh IGJpIHhlIHRhaSBkYW0sIDMgbmd1b2kgY2hldCANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZu L3hhaG9pLzIwMTAxMC9IYS1Ob2ktTGF0LWNhbi1jYXUtaGFuZy10cmFtLW5ndW9pLWRhbi1ob2Fu Zy1sb2FuLTk0MjIyOS8gMDA6MDQsIDE1LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEhvYW5n IGxvYW4gY2FuIGNhdSA2NSB0YW4gZG8gdmFvIG5oYQ0KDQpodHRwOi8vd3d3LmRhbnZpZXQudm4v MTU5NzFwMWMzMC9waGF0LWhpZW4tbmd1b2ktc29uZy10cmVuLW5vYy1uaGEtYnV1LWRpZW4taGEt bm9pLmh0bSAzMC8wOS8yMDEwIDA2OjM1IA0KDQpIYSBOb2k6IEFuaCBjaHVwIC0gQ28gbmd1b2kg c29uZyB0cmVuIG5vYyBuaGEgQnV1IGRpZW4gSGEgTm9pIA0KDQpodHRwOi8vd3d3Ni52bm1lZGlh LnZuL25ld3NkZXRhaWwuYXNwP05ld3NJZD0xOTUwNDMmQ2F0aWQ9NDE4IDEzaDQzJyAyNi8wNi8y MDEwIA0KDQpIYSBOb2k6IFJldSBwaG9uZyBvaSwgcGhvIGNvIGRhdSByb2k/IA0KDQpUaGVvIHF1 eWV0IGRpbmggY3VhIFVCTkQgdGhhbmggcGhvIEhhIE5vaSwgc28gdGllbiBibyByYSBkZSBzb24g c3VhIHBobyBjbywgdGFuIHRyYW5nIA0KNzUgdHV5ZW4gcGhvIGN1YSBjYWMgcXVhbiBub2ksIG5n b2FpIHRoYW5oIGxhIGtob2FuZyA1MCB0eSBkb25nLiANCg0KUGhvIGNvIEhhIE5vaSBkYSBkdW9j IGtob2FjIGxlbiBtaW5oIGNoaWVjIGFvIG1vaS4gQ2hpZWMgYW8gbGFtIGJvIG1hdCBjdWEgcGhv IGtoYW5nIA0KdHJhbmcgbGVuLiBOaHVuZyBsYWkgbGFtIG1hdCBkaSB2ZSBjbyBraW5oIHZvbiBw aGFpIHRodW9jIHZlIG5vaSBuYXkuIA0KDQpodHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFt LzIwMTAxMDAxLWRhaS1sZS1uZ2FuLW5hbS10aGFuZy1sb25nLWhhby1uaG9hbmctbmh1bmctaXQt Y2h1LXRyb25nLXZlLXZhbi1ob2EgVHUgQW5oIDAxLzEwLzIwMTAgICANCg0KRGFpIGxlIE5nYW4g TmFtIFRoYW5nIExvbmc6IGhhbyBuaG9hbmcgbmh1bmcgY29uIGNodWEgdGhpZXQgdGh1YywgaXQg Y2h1IHRyb25nIHZlIHZhbiBob2EgDQoNCmh0dHA6Ly93d3cudG9xdW9jLmdvdi52bi9UaG9uZ3Rp bi9UaG9pLVN1L0FvLU1vaS1MYW0tUGhvLUNvLUhldC1EdXllbi5odG1sIDhoOjcnIC0gMy80LzIw MTANCg0KSGEgTm9pOiAiQW8gbW9pIiBsYW0gcGhvIGNvICJoZXQgZHV5ZW4iIA0KDQpOaGlldSB0 dXllbiBwaG8gY28gSGEgTm9pIG5odSBIYW5nIERhbywgQ2F1IEdvLCBIYW5nIE5nYW5nLCBIYW5n IER1b25nIGRhbmcgDQpkdW9jIGNoaW5oIHRyYW5nLCBxdWV0IHZvaSBtb2kgdGluaC4gVFAgdGhp IGNobyByYW5nLCBkYXkgbGEgY2FjaCBkb24gZGVwIHBobyBjbyBjaGFvIA0KZG9uIERhaSBsZSAx LjAwMCBuYW0gY29uIG5ndW9pIGRhbiB2YSBraGFjaCBkdSBsaWNoIGxhaSB0aGFuIHBoaWVuLg0K DQpQaG8gY28uLi4gImhldCBkdXllbiIga2hpICJtYWMgYW8gbW9pIg0KDQpodHRwOi8vdXMuMjRo LmNvbS52bi90aW4tdHVjLXRyb25nLW5nYXkvbWVvLW1hdC1kaS12ZS1zaW5oLW8tcGhvLWNvLWM0 NmEzMTQxOTcuaHRtbCAzMC8wNy8yMDEwLCAxNjoxNQ0KDQpIYSBOb2k6IE1lbyBtYXQgZGkgdmUg c2luaCBvIHBobyBjbyANCg0KQ2FuaCB4ZXAgaGFuZywgaG9hYyB0cmFuaCBuaGF1IGRpICJnaWFp IHF1eWV0IG5vaSBidW9uIiBvIHBobyBjbyBraG9uZyBjb24gbGEgY2h1eWVuIGhpZW0gdGhheSB2 b2kgbmd1b2kgZGFuIG5vaSBkYXkuDQoNCmh0dHA6Ly9iZWUubmV0LnZuL2NoYW5uZWwvMTk4My8y MDEwMDQvTWFjLWRvbmctcGh1Yy1jaG8tbmhhLW1hdC1waG8tQ29uZy1uaGFuLWxhbS1hdS1xdWEt MTc1MTEyOS8gMjUvMDQvMjAxMCAwNjo1NTowNSANCg0KSGEgTm9pOiBNYWMgZG9uZyBwaHVjIGNo byBuaGEgbWF0IHBobzogdGhpIGNvbmcgbGFtIGF1IHF1YSEgDQoNCmh0dHA6Ly9kYW50cmkuY29t LnZuL2MyNS9zMjAtNDA2MzgzL2hhLW5vaS1zYXAtY2F1LXhheS1kdW5nLTItbmd1b2ktY2hldC10 YWktY2hvLmh0bSAwMi8wNy8yMDEwIC0gMTY6MzgNCg0KSGEgTm9pOiBTYXAgY2F1IHhheSBkdW5n LCAyIG5ndW9pIGNoZXQgdGFpIGNobyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5o YW5oLzIwMTAxMC9SdW9jLXNpZXUtYmFuLXJhLWxvLWJlbi1hby10aG9pLWRvbi12ZS1ITi05NDIy NTIvIDA3OjEwLCBUaHUgU2F1LCAxNS8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBSdW9jICdz aWV1IGJhbicgcmEgbG8gYmVuIGFvIHRob2ksIGRvbiB2ZSBITiANCg0KaHR0cDovL3d3dy5kYW52 aWV0LnZuLzE1OTcxcDFjMzAvcGhhdC1oaWVuLW5ndW9pLXNvbmctdHJlbi1ub2MtbmhhLWJ1dS1k aWVuLWhhLW5vaS5odG0gMzAvMDkvMjAxMCAwNjozNQ0KDQpIYSBOb2k6IEFuaCBjaHVwIC0gRG9u ZyBobyBCdXUgZGllbiBIYSBOb2kgY2hpIDEwaDEwJyB0cm9uZyBraGkgZG9uZyBobyBOaGEgdGhv IExvbiBIYSBOb2kgY2hpIDEwaDUnIA0KDQpodHRwOi8vZGFudmlldC52bi8xMzMxMHAxYzI0L2hh LW5vaS1zYXAtbmhhLTEtbmd1b2ktY2hldC1jaGluaC1xdXllbi10aG8tby5odG0gMDEvMDkvMjAx MCAwODowMA0KDQpIYSBOb2k6IFNhcCBuaGEsIDEgbmd1b2kgY2hldCwgNyBuZ3VvaSBiaSB0aHVv bmcsIGNoaW5oIHF1eWVuIHRobyBvIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9iYW5kb2N2aWV0 L3RpbmFuaC8yMDA4LzA1Lzc4Mjc5OS8gMTE6MDInIDEzLzA1LzIwMDggKEdNVCs3KSANCg0KSGEg Tm9pOiAxLjcwMG0yIGRhdCBiaSBibyBob2FuZyAyMCBuYW0NCg0KVGFpIEhhIE5vaSBjbyBtb3Qg a2h1IGRhdCByb25nIDEuNzAwbTIgZGEgYmkgYm8gaG9hbmcgMjAgbmFtLiBEbyBsYSBjbyBzbyAy ICh0YWkgeGEgVHJ1bmcgVmFuLCBodXllbiBUdSBMaWVtLCBIYSBOb2kpIGN1YSBUcnVvbmcgQ2Fv IGRhbmcgbmdoZSBDb25nIG5naGllcCBIYSBOb2kgY28gY28gc28gY2hpbmggdGFpIDEzMSBwaG8g VGhhaSBUaGluaCwgcXVhbiBEb25nIERhLCBIYSBOb2kuIA0KDQpodHRwOi8vd3d3Lmhhbm9pbXVh dGhpLmNvbS9pbmRleC5waHA/YWN0PU5ld3MmdXJsPS9HTC9LaW5oLWRvYW5oL0JhdC1Eb25nLXNh bi8yMDA5LzA5LzNCQTEzNkI3LyBUaHUgaGFpLCAxNC85LzIwMDksIDE1OjI5IEdNVCs3IA0KDQpI YSBOb2k6IEhhbmcgdHJhbSBiaWV0IHRodSBjbyBIYSBOb2kgYmkgJ2JhbSBuYXQnDQoNCkdhbiA4 MCUgY2FjIGJpZXQgdGh1IGNvIHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gZGFuZyBiaSB4dW9uZyBj YXAsIGJpZW4gZGFuZyBkbyBtdWMgZGljaCBzdSBkdW5nIGJpIHRoYXkgZG9pLCBjdW5nIHF1YSB0 cmluaCBkbyB0aGkgaG9hIHF1YSBuaGFuaCB2YSBzdSBidW9uZyBsb25nIHF1YW4gbHkuDQoNCmh0 dHA6Ly93d3cyLnZpZXRuYW1uZXQudm4vYnZraC9tb2lub25nLzIwMTAwMi9OZ3VvaS1sb24tdHJl LWVtLWJpLWFuLWRvLW8tSG9pLWdvLURvbmctRGEtODk1MDQ1LyAxNDo1NiwgMTgvMDIvMjAxMCAo R01UKzcpDQoNCkhhIE5vaSAtIEhvaSBnbyBEb25nIERhDQoNCkRlbiBoZW4gbGFpIGxlbiwgY3Ug TXVuZyA1IHRldCBsYSBjYW5oIGhhbmcgcm9uZywgcXVhIHZhdCwgY28gImJpcCIgbGFpIHR1IHRh cCBuaGF1IHRhaSBIb2kgZ28gRG9uZyBEYSBkZSAiYW4gZG8iIGNhIHRyZSBjb24gdmEgbmd1b2kg bG9uLi4uDQoNClRhbiBob2ksIGNoaSBjbyBjYW5oIGhhbmcgcm9uZywgY28gYmFjIGJpcCBib20g bGEgdnVpLCBjb24gbmh1bmcgbmd1b2kgZGkgY2hvaSBob2kgdGhpIHJhIHZlIHZvaSBidW5nIGRh dSwgdmkgcm9uZyB2YSBzdSBjYXkgY3UgInNhbmcgbmFtIHNlIHBodWMgaGFuIi4NCg0KaHR0cDov L3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMzA1NDA2L3BoZS10 aGFpLXhheS1kdW5nLXRyYW4tbmdhcC1xdW9jLWxvLTMyLmh0bSAxMy8wMS8yMDEwIDA2OjUzIA0K DQpIYSBOb2k6IFBoZSB0aGFpIHhheSBkdW5nIHRyYW4gbmdhcCBxdW9jIGxvIDMyICANCg0KTW9p IGtoaSBjbyBvIHRvIGRpIHF1YSwgbmd1b2kgZGkgcGhpYSBzYXUgcGhhaSBodW5nIGNoaXUgbmh1 bmcgZG90ICJiYW8gY2F0IiBtdSBtaXQsIHJhdCBuZ3V5IGhpZW0gY2hvIG5ndW9pIGRpIHhlIG1h eSwgeGUgZGFwIGtoaSBnYXAgY2h1b25nIG5nYWkgdmF0Lg0KDQpodHRwOi8vdmlldG5hbW5ldC52 bi90aW5uaGFuaC8yMDEwMTAvSGEtTm9pLVhlLWFpcmJsYWRlLWJvYy1jaGF5LWR1bmctZHVuZy1n aXVhLXBoby05NDE3NDcvIER1YyBUYW0gKFRvbmcgaG9wKSAxNTo1OCwgMTIvMTAvMjAxMCAoR01U KzcpDQoNCkhhIE5vaTogWGUgQWlyYmxhZGUgY2hheSBkdW5nIGR1bmcgZ2l1YSBwaG8NCg0KRGFu ZyBkaSBjaHV5ZW4gdHJlbiBkdW9uZyB0aGkgZG90IG5oaWVuIGNoaWVjIHhlIEFpcmJsYWRlIG1h dSB0cmFuZyBtYW5nIA0KQktTIDMwIFkyIJYgOTMyOSBib25nIG5oaWVuIHBoYXQgcmEgdGllbmcg bm8gbmhvIHJvaSBkdW5nIGR1bmcgYm9jIGNoYXkuDQpWdSB0YWkgbmFuIHRyZW4geGF5IHJhIHZh byBraG9hbmcgNmgzMCBuZ2F5IDEyLzEwIHRhaSBuZ2EgdHUgS2h1YXQgRHV5IFRpZW4gliBOZ3V5 ZW4gVHJhaSAoVGhhbmggWHVhbiwgSGEgTm9pKS4NCg0KKEFuaDogTmdvbiBsdWEgbmhhbmggY2hv bmcgYm9jIGxlbiBuZ2hpIG5ndXQuIEFuaDogVGllbnBob25nKQ0KDQpUaGVvIG5oaWV1IG5ndW9p IGRpIGR1b25nLCB0cnVvYyB0aG9pIGRpZW0geGF5IHJhIHZ1IHZpZWMgY28gMiB0aGFuaCBuaWVu IGRpZXUga2hpZW4gDQpjaGllYyB4ZSBtYXkgbmF5IGRpIHRoZW8gaHVvbmcgTmd1eWVuIFRyYWkg liBOZ2EgVHUgU28uIEtoaSBkaSBkZW4gYnVuZyBiaW5oIGdpYW8gY2F0IA0KdGhpIGNoaWVjIHhl IGRvdCBuaGllbiBwaGF0IHJhIHRpZW5nIG5vIG5oby4gQ2h1YSBraXAgZHVuZyB4ZSBsYWkgZGUg a2llbSB0cmEgeGVtIHN1IGNvIGdpIA0KeGF5IHJhIHRoaSBiYXQgbmdvIG5nb24gbHVhIGJ1bmcg bGVuIHJvaSBib2MgY2hheSBkdSBkb2ksIGJvYyBtdWkga2hldCBsZXQuIFRoYXkgdmF5IDIgDQp0 aGFuaCBuaWVuIGxpZW4gbmhheSBraG9pIHhlLCBkaW5oIHRoYW8gY29wIGRlIGxheSBnaWF5IHRv IG5odW5nIGtob25nIGtpcC4uLiBOZ29uIGx1YSANCmJvYyBjYW8gbmdoaSBuZ3V0Lg0KDQooQW5o OiBDaGllYyB4ZSBjaGkgY29uIHRybyBsYWkgbW9pIGtodW5nLiBBbmg6IFZuZXhwcmVzcykNCg0K RGVuIGtob2FuZyA3aCBraGkgQ1NHVCBjbyBtYXQgdGFpIGhpZW4gdHJ1b25nIHRoaSBjaGllYyB4 ZSBkYSBnYW4gbmh1IGJpIHRoaWV1IHJ1aSBob2FuIA0KdG9hbiwgbmFtIGJlcCBkdW0sIHRybyBt b2kga2h1bmcsIGJpZW4gc28geGUgY3VuZyBiaSBsdWEgbGllbSBjaGF5IHhlLg0KDQpWdSB2aWVj IG5nYXkgbGFwIHR1YyBkYSB0aHUgaHV0IHJhdCBkb25nIG5odW5nIG5ndW9pIGRpIGR1b25nIGhp ZXUga3kgZ2F5IHJhIHRpbmggdHJhbmcgDQp1biB0YWMgY3VjIGJvIHRyZW4gbW90IGRvYW4gZGFp IGR1b25nIE5ndXllbiBUcmFpLiBOZ2F5IHNhdSBkbyBsdWMgbHVvbmcgQ1NHVCBkYSANCnBoYWkg bmhhbmggY2hvbmcgcGhhbiBsdW9uZyBkZSBnaWFpIHRvYSBwaHVvbmcgdGllbiwNCg0KSGllbiBu Z3V5ZW4gbmhhbiB2dSB0YWkgbmFuIHZhbiBkYW5nIGR1b2MgZGlldSB0cmEgbGFtIHJvLg0KDQpo dHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMDgvMDcvM0JBMDQwMDMvIFRodSB0 dSwgMi83LzIwMDgsIDExOjE1IEdNVCs3DQoNCkhhIE5vaTogQ2hheSBoYW0geGUgY2h1bmcgY3Ug TXkgRGluaCwgbmhpZXUgb3RvIGJpIHRoaWV1IHJ1aSANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5j b20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMzA1OTUyL3Z1b24taG9hLXRoYW5oLXh1YW4t YmFjLWJpLWJvLXF1ZW4uaHRtIDE5LzAxLzIwMTAgMDY6NTQgDQoNCkhhIE5vaTogVnVvbiBob2Eg VGhhbmggWHVhbiBCYWMgYmkgImJvIHF1ZW4iICANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20u dm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMzAxMzIyL3Nhbi1jaG9pLWNoby10cmUtdGhhbmgt YmFpLWRlLXhlLmh0bSAyMi8xMi8yMDA5IDExOjM1IA0KDQooUGh1b25nIFRydW5nIExpZXQpOiBT YW4gY2hvaSBjaG8gdHJlIHRoYW5oIGJhaSBkZSB4ZSAgDQoNCmh0dHA6Ly93d3cuaGFub2ltb2ku Y29tLnZuL25ld3NkZXRhaWwvQmFuX2RvY192aWV0LzMwMTMyMi9zYW4tY2hvaS1jaG8tdHJlLXRo YW5oLWJhaS1kZS14ZS5odG0gMjIvMTIvMjAwOSAxMTozNSANCg0KTGFuZyBIb2FuZyBDYW8gS2hh aSBkYSBkdW9jIHhlcCBoYW5nIERpIHRpY2ggbGljaCBzdSBjYXAgcXVvYyBnaWEuIFRpZWMgcmFu Zywga2h1IGRpIHRpY2ggbmF5IHR1IGxhdSBkYSBraG9uZyBkdW9jIHF1YW4gdGFtLCBkYSB0cm8g dGhhbmggaG9hbmcgcGhlLg0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi9uZXdzZGV0YWls L0Jhbl9kb2NfdmlldC8zMDYyMDQvZG9jLWxhLXBoby10aGFuaC1iYWktcGhlLXRoYWkuaHRtIDIx LzAxLzIwMTAgMDc6NDUgDQoNCkRvYyBMYSBQaG8gdGhhbmggYmFpIHBoZSB0aGFpIC0gbWF0IFZT TVQgbmdoaWVtIHRyb25nLg0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9DTlRUL2dpYWRp bmgubmV0LnZuL0hhLU5vaS0zMC1jYW4tYm8ta2hvbmctYmlldC1zdS1kdW5nLXZpLXRpbmgvMzU2 OTc4NS5lcGkNCg0KSGEgTm9pOiAzMCUgY2FuIGJvIGtob25nIGJpZXQgc3UgZHVuZyB2aSB0aW5o DQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwMi9Nb2MtdHVpLXR1bmctaG9hbmgt by1QaHUtVGF5LUhvLTg5NTU2Mi8gMTA6MTQsIFRodSBCYSwgMjMvMDIvMjAxMCAoR01UKzcpDQoN CkhhIE5vaTogTW9jIHR1aSAndHVuZyBob2FuaCcgbyBQaHUgVGF5IEhvIA0KDQpodHRwOi8vd3d3 LnZuZXhwcmVzcy5uZXQvR0wvS2luaC1kb2FuaC8yMDA3LzExLzNCOUZDNDczLyAgMTQtMTEtMjAw Nw0KDQpEYXUgZ2lhIHhlIGN1YSBuZ3V5ZW4gY2h1IHRpY2ggdGhhbmggcGhvIEhhIE5vaSAoY2hp ZWMgeGUgTGV4dXMgdHJpIGdpYSB0cmVuIDQgdHkgZG9uZywgZHVvYyBub2kgdHJpIGdpYSAiMzAw MCB0cmF1IikNCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2NsaXBfdGh1XzVfbWllbmdfbmFtX21v X3RheV92b190aWVuX2NvbmdfZHVjLTEtMjE1ODcwMTAuaHRtbCA2LzUvMjAxMA0KDQpNaWVuZyBu YW0gbW8gdGF5IHZvIHRpZW4gY29uZyBkdWMNCg0KaHR0cDovL3d3dy5ubGQuY29tLnZuLzIxMjUy OFAwQzEwMDIvdGlldC1sby1tb2ktcXVhbmgtY2hpZWMteGUtbGV4dXMtdHJpLWdpYS1ob24tNC10 aS1kb25nLmh0bSAxNC8wMS8yMDA4IDAxOjE1IEdNVCs3IFRoZSBEdW5nIA0KDQpIYSBOb2k6IFRp ZXQgbG8gbW9pIHF1YW5oIGNoaWVjIHhlIExleHVzIHRyaSBnaWEgaG9uIDQgdGkgZG9uZyANCg0K VnUgbGluaCB4aW5oIHF1YW5oIGNoaWVjIHhlIGNvIGdpYSBob24gNCB0aSBkb25nIHR1b25nIGRh IGRpIHZhbyBxdWVuIGxhbmcgbmF5IHZ1YSBkdW9jIGtob2kgbGFpIHZvaSBuaGlldSB0aW5oIHRp ZXQgbW9pLiBEaWV1IGRhbmcgbm9pLCBuZ3VvaSBraG9pIGxhaSBjYXUgY2h1eWVuIG5heSBjaGlu aCBsYSBvbmcgY3V1IGNodSB0aWNoIFVCTkQgVFAgSGEgTm9pIEhvYW5nIFZhbiBOZ2hpZW4uDQoN CkNhY2ggZGF5IHZhaSBuYW0sIGR1IGx1YW4gZGFjIGJpZXQgcXVhbiB0YW0gdmllYyBvbmcgSG9h bmcgVmFuIE5naGllbiwgbHVjIGR1b25nIGNodWMgY2h1IHRpY2ggVUJORCBUUCBIYSBOb2ksIHN1 IGR1bmcgbyB0byBjb25nIG5oYW4gaGlldSBMZXh1cyBMUzQzMCBzYW5nIHRyb25nLCB2b2kgc28g dGllbiBtdWEgdGhlbyBzbyBzYWNoIDQsMDM3IHRpIGRvbmcgKGdhbiAzMDAuMDAwIFVTRCkuIA0K Q3VvYyBjaGlhIHRheSB0aGFuaCBidW9pIHRoYW5oIG1pbmggDQpOZ2F5IDI1LTEyLTIwMDcgdnVh IHF1YSwgVGhhbmggdXkgSGEgTm9pIGRhIHRvIGNodWMgYnVvaSBnYXAgbWF0IGdpdWEgVGh1b25n IHRydWMgVGhhbmggdXkgdm9pIG5ndXllbiBwaG8gYmkgdGh1IFRoYW5oIHV5IEhhIE5vaSwgbmd1 eWVuIGNodSB0aWNoIFVCTkQgVFAgSGEgTm9pIEhvYW5nIFZhbiBOZ2hpZW4sIG5oYW4gZGlwIG9u ZyBOZ2hpZW4gbmhhbiBxdXlldCBkaW5oIG5naGkgaHV1LiANCg0KWHVhdCBwaGF0IHR1IG5odW5n IGJ1YyB4dWMgdHJvbmcgbG9uZyBnaXUga2luIG5oaWV1IG5hbSB2b2kgbmd1b2kga2UgbmhpZW0g bWEgb25nIE5naGllbiBkYSBiaWVuIGJ1b2kgY2hpYSB0YXkgdm9pIGNvIHF1YW4gY3UgdGhhbmgg YnVvaSB0aGFuaCBtaW5oIHZlIG5odW5nIGRpZXUgdGllbmcga2hvbmcgdG90IG1hIGR1IGx1YW4g YmF5IGxhdSBiYXQgYmluaC4gDQoNCktob25nIGJpZXQgb25nIE5naGllbiBtYXQgYmFvIG5oaWV1 IGRlbSB0cmFuIHRybyBkZSB2aWV0IHJhIGJhaSBwaGF0IGJpZXUgZGFpIDcgdHJhbmcgZGFuaCBt YXkga2hvIGdpYXkgQTQsIHRyb25nIGRvIGdhbiA5MCUgbm9pIGR1bmcgbGEgZ2lhaSB0cmluaCBs YWkgdG9hbiBibyBzdSB2aWVjIGxpZW4gcXVhbiBkZW4gY2hpZWMgbyB0byBjb25nIExleHVzIGNv IGdpYSB0cmkgdHVvbmcgZHVvbmcgMy4wMDAgY29uIHRyYXUgY3VuZyBuZ29pIGJpZXQgdGh1IHRy aSBnaWEgaGFuZyBuZ2FuIGx1b25nIHZhbmcgdGFpIDEyIE5ndXllbiBDaGUgTmdoaWEgKEhvYW4g S2llbSwgSGEgTm9pKSBtYSBvbmcgbXVvbiBtdWEgdGhlbyBOZ2hpIGRpbmggNjFDUC4gDQoNClRo ZW8gYmFpIHBoYXQgYmlldSBjdWEgb25nIE5naGllbiB2YSBuaHVuZyBsb2kga2UgY3VhIG9uZyB2 b2kgYmFvIGdpb2kgdGFpIG5oYSByaWVuZyBzYXUgZG8sIG9uZyBkYSB0cmluaCBiYXkgY2hpIHRp ZXQgdG9hbiBibyBzdSB2aWVjIG11YSBjaGllYyB4ZSBMZXh1cyBkZXUgZG8gbmd1eWVuIHBobyBj aHUgdGljaCBVQk5EIFRQIEhhIE5vaSAoc2F1IG5heSBrZSBuaGllbSBvbmcgTmdoaWVuKSwgbmF5 IGxhIEJvIHRydW9uZyBCbyBZIHRlIE5ndXllbiBRdW9jIFRyaWV1IG1vdCBtaW5oIHF1eWV0IGRp bmggdmEgY2h1IGRvbmcgY2FjIGNvbmcgZG9hbiBtdWEgc2FtLiANCg0KU2F1IGJ1b2kgY2hpYSB0 YXkgdmEgbm9pIHRvYWMgbmh1bmcgYnVjIHh1YyB2ZSBuZ3VvaSBrZSBuaGllbSwgdGllcCB4dWMg dm9pIGJhbyBnaW9pIHRhaSBuaGEgcmllbmcsIG9uZyBOZ2hpZW4gZGEgY2hvIHBob25nIHZpZW4g ZG9jIG1vdCB0aW4gbmhhbiBtYSBvbmcga2hhbmcgZGluaCBsYSB0dSBzbyBtYXkgZGllbiB0aG9h aSBkaSBkb25nIGN1YSBvbmcgVHJpZXUgdm9pIG5vaSBkdW5nICJhbmggaGlldSBzYWkgdmUgY2hp ZWMgbyB0byByb2ksIGtob25nIHBoYWkgZW0gY28gdGluaCBwaGEgYW5oLCBhIGRpIGRhIFBoYXQi LiANCg0KQmlldCBzYWkgc2FvIHZhbiB4YWk/IA0KDQpPbmcgTmdoaWVuIG5ldSBybyB0cm9uZyBi YWkgcGhhdCBiaWV1OiAiVHJvbmcgbW90IGxhbiBkaSBjb25nIGNodXllbiB2YSBuZ29pIGN1bmcg eGUsIGFuaCBUcmlldSBjbyBub2k6IEVtIGRhIGt5IGNvbmcgdmFuIHhpbiBUaHUgdHVvbmcgbXVh IHhlIHBodWMgdnUgY29uZyB0YWMgZG9pIG5nb2FpLCB4ZSBkYW5nIHZlIGNhbmcsIGVtIGdvaSBk aWVuIHZlIGNvbmcgYW4gbGF5IHNvIHhlLiANCg0KVHJvbmcgZGlwIHRvaSBkaSBjb25nIHRhYyBu dW9jIG5nb2FpLCBhbmggVHJpZXUgZGEgbGVuaCBjaG8gYW5oIFR1YW4gbGFpIHhlIGN1YSB0b2kg YmFuIGdpYW8geGUgY2hvIGFuaCBWaW5oIGxhaSB4ZSBjdWEgYW5oIFRyaWV1IHRyb25nIHZvbmcg bW90IGJ1b2kgc2FuZyBwaGFpIHhvbmcsIGRvbmcgdGhvaSBhbmggVHJpZXUgY2hvIGxhaSB4ZSBn byBiaWVuIGxhcCBuZ2F5IHZhbyB4ZSBjdWEgdG9pLiANCg0KVmllYyB2b2kgZGVuIG11YyBjaGll YyB0aXZpIHRyZW4geGUgY3VhIHRvaSBjaHVhIGtpcCB0aGFvIHJhLCBhbmggVHJpZXUgdmFuIGNv IGdpdSBsYWkgZGFuaCBjaG8gbWluaCBzYXUgbmF5LCBzdSB2aWVjIG5heSBjbyBhbmggVnUgVmFu IE5pbmggKGtoaSBkbyBsYSBwaG8gY2h1IHRpY2ggVUJORCBUUCBIYSBOb2kgLSBuYXkgbGEgQm8g dHJ1b25nIEJvIFRhaSBjaGluaCkgYmlldCBybyIuIA0KDQpEZSB0aGFuaCBtaW5oIGNobyBtaW5o LCBvbmcgTmdoaWVuIG5vaTogIlRvaSBkYSBsYW0gdmllYyBjYSBjaHVjIG5hbSBvIHV5IGJhbiwg c2FwIHZlIG5naGkgaHV1IGNvbiBzYW0geGUgY2hvIG1pbmggbGFtIGdpOyBraGkgZGkgY29uZyB0 YWMsIGFuaCBUcmlldSBkYSB0dSB5IGxheSBtYXQgeGUsIGRheSBjaGllYyB4ZSBtb2kgY2hvIHRv aSBkaSB0YW0uIERhbmcgbGUgdmllYyB0b2kga2hvbmcgY28gY2h1IHRydW9uZyBtdWEgeGUsIHBo YWkga2llbSB0cmEsIGtoaSBiaWV0IGNvIHZpZWMgcGhhaSBjbyB5IGtpZW4geHUgbHkgY2hvIG1p bmggYmFjaCwgdG9pIGRhIGJvIHF1YSBtb3QgY2FjaCBkZSBkYWksIHRoaWV1IHNvdCIgKCE/KS4g DQoNCk9uZyBOZ2hpZW4gY2hvIHJhbmc6ICJWaWVjIG11YSB4ZSBkbyBhbmggVHJpZXUgdHUgeSBs YW0gY29uZyB2YW4gZ3VpIHhpbiBUaHUgdHVvbmcgbXVhIHhlIGtob25nIGJhbyBjYW8sIGtob25n IHRob25nIGJhbyBub2kgYm8uIExvaSBkdW5nIGx1YyBnaWFvIHRob2ksIGFuaCBUcmlldSB0dSB5 IGxheSB4ZSB0b2kgZGFuZyBkaSwgYnVvYyB0b2kgcGhhaSBkaSB0YW0geGUgbW9pLCBybyByYW5n IHZvaSBtdWMgZGljaCB0aWVwIHNhdSBhbmggVHJpZXUgbGFtIGNodSB0aWNoIHV5IGJhbiBzZSBo b2FuIHRvYW4gc3UgZHVuZywgbXVvbiBjbyB0b2kgZGEgZHVuZyBsYSB2aWVjIGxhbSBjbyB0aW5o IHRvYW4uIE5odSB2YXksIG5ndXllbiBuaGFuIGdheSByYSByYXQgZG9uIGdpYW4gdmEgaGF1IHF1 YSBib2kgbmhvIHRoYXQgZG9jIGFjIiAoPykuIA0KDQooVHV5IG5oaWVuLCB0cm9uZyB2dSBtdWEg dmEgc3UgZHVuZyBjaGllYyB4ZSB0cmkgZ2lhIG5oaWV1IHRpIGRvbmcsIGR1IGx1YW4gdmFuIGRh dCBjYXUgaG9pIGxpZXUgb25nIE5naGllbiBjbyB0aGF0ICJ2byBjYW4iLiBCb2kgdGh1IG5oYXQg bGEgY2h1IHRpY2ggVUJORCBUUCBIYSBOb2ksIG9uZyBOZ2hpZW4gdGh1YSBiaWV0IHRpZXUgY2h1 YW4gbyB0byBkb2kgdm9pIG9uZyBsYSBiYW8gbmhpZXUgdGllbi4gVmF5IHRhaSBzYW8gb25nIHZh biBjdW9pIGxlbiAzLjAwMCBjb24gdHJhdSBkZSBkaSBsYW0gaGFuZyBuZ2F5IGNobyB0b2kgdGFu IG5nYXkgY29uZyBsdWFuIGxlbiB0aWVuZyBtb2kgdGhvaT8gDQoNCk9uZyBOZ2hpZW4gbm9pIGxh IHZpZWMgbXVhIHhlIGRvIG1vdCBtaW5oIHZpIHBobyBjdWEgbWluaCBxdXlldCBkaW5oIGtoaSBv bmcgZGkgY29uZyB0YWMsIA0KdmF5IHRhaSBzYW8ga2hpIHZlIHRoYXkgc2FpIG1hIGtob25nIHN1 YSwgY3UgbGFtIHRoZW8gY2FpIHNhaSBjdWEgY2FwIGR1b2kgbmh1IG9uZyBkYSB0cmluaCBiYXk/ KSANCg0KaHR0cDovL3lraWVuLndvcmRwcmVzcy5jb20vMjAwNy8xMC8xMC90aCVDNiVCMC1waCVF MSVCQSVBM24tJUUxJUJBJUEzbmgtdiVFMSVCQiU4MS1jYWMtdiVFMSVCQiU4Qi1sYW5oLWQlRTEl QkElQTFvLWMlRTElQkIlQTdhLXRwaGEtbiVFMSVCQiU5OWktbmd1eSVFMSVCQiU4NW4tcXUlRTEl QkIlOTFjLXRyaSVFMSVCQiU4N3UtZCVFMSVCQiU5Ny1ob2FuZy1hbi1sZS1xdXktZG9uLXZhLXBo JUUxJUJBJUExbS1xLzEwLjEwLjIwMDcgVHJhbiBWYW4gVHJhbg0KDQpUaHUgUGhhbiBBbmggdmUg Y2FjIHZpIGxhbmggZGFvIGN1YSBUUC5IYSBOb2k6IE5ndXllbiBRdW9jIFRyaWV1LCBEbyBIb2Fu ZyBBbiwgTGUgUXV5IERvbiB2YSBQaGFtIFF1YW5nIE5naGkgDQoNCkhhIE5vaSwgbmdheSAxMCB0 aGFuZyAxMCBuYW0gMjAwNw0KDQpUSFUgUEhBTiBBTkggdmUgY2FjIHZpIGxhbmggZGFvIGN1YSBU UC5IYSBOb2k6IE5ndXllbiBRdW9jIFRyaWV1LCBEbyBIb2FuZyBBbiwgTGUgUXV5IERvbiB2YSBQ aGFtIFF1YW5nIE5naGkNCg0KWGluIGtpbmggZ3VpIHRvaTogRG9uZyBjaGkgTmd1eWVuIE1pbmgg VHJpZXQsIENodSB0aWNoIG51b2MsIERvbmcgY2hpIE5ndXllbiBUYW4gRHVuZywgVGh1IHR1b25n IENoaW5oIHBodSAmIERvbmcgY2hpIFRydW9uZyBUYW4gU2FuZywgVGh1b25nIHRydWMgQmFuIEJp IHRodQ0KDQpLaW5oIHRodWEgY2FjIGRvbmcgY2hpLA0KDQpUb2kgbGEgVHJhbiBWYW4gVHJhbiwg RGFuZyB2aWVuIGNvbmcgdGFjIHRhaSBtb3QgYmFuIG5nYW5oIGN1YSBEYW5nIG8gdHJ1bmcgdW9u ZywgbmF5IGRhIHZlIG5naGkgdmEgc29uZyB0YWkgWHVhbiBMYSwgVGF5IEhvIC0gSGEgTm9pLiBU b2kgY28gZHVvYyB0aGFtIGtoYW8gdGh1IHBoYW4gYW5oIGN1YSBtb3QgY2FuIGJvIGNvbmcgdGFj IHRhaSBVQk5EIHRoYW5oIHBobyBIYSBOb2kgdmUgb25nIERvIEhvYW5nIEFuLCBwaG8gY2h1IHRp Y2ggVUJORCBUUCBIYSBOb2ksIGxpZW4gcXVhbiBkZW4gZHUgYW4geGF5IGR1bmcgaGEgdGFuZyBr eSB0aHVhdCB4dW5nIHF1YW5oIEhvIFRheS4gDQoNCkRvIGRhYyB0aW5oIGNvbmcgdmllYyBsdWMg dGFpIGNodWMgdmEgbHVjIG5naGkgY28gdGhvaSBnaWFuIHRpbSBoaWV1IG5lbiB0b2kgYmlldCBk dW9jIG1vdCBzbyB2dSB2aWVjIGxpZW4gcXVhbiBjYWMgb25nIGxhbmggZGFvIEhhIE5vaSBjaGll bSBkYXQgZGkgdGljaCBjaHVhIFZhbiBOaWVuLCB0aWVuIGhhbmggeGF5IGtoYWNoIHNhbiBuaHVu ZyBraG9uZyB0aGFuaCBiaSBkYW4gbmdhbiBjYW4gdmEgdnUgbmFuIGR1b25nIHF1YSBjdWEgbmhh IHF1YW4gdGFpIGR1IGFuIGtlIEhvIFRheSBxdWEgY3VtIDMgWHVhbiBMYS4gDQpWZSBvbmcgTmd1 eWVuIFF1b2MgVHJpZXUsIG5ndXllbiBsYSBjaHUgdGljaCBVQk5EIFRQIEhhIE5vaSBuYXkgbGVu IGxhbSBCbyB0cnVvbmcgQm8gWSB0ZSBjdW5nIGNhcCBwaG8gY3VhIG9uZyB0YWkgVUJORCBUUCBI YSBOb2ksIGRhIG11YSBjaHVjIEJvIHRydW9uZyBCbyBZIFRlIHJhIHNhbywgdmllYyBWYW4gcGhv bmcgY2hpbmggcGh1IHZhIFBobyB0aHUgdHVvbmcgVHJ1b25nIFZpbmggVHJvbmcgYmkgY2FjIG9u ZyBjaG8gdmFvIHRyb25nIG5odSB0aGUgbmFvLCB2aWVjIG11YSBjaHVvYyBCbyB0cnVvbmcgQm8g VmFuIGhvYSBUaG9uZyB0aW4gbGllbiBxdWFuIGdhbiA1LjAwMG0yIGRhdCBkaSB0aWNoIGNodWEg VmFuIE5pZW4gZGUgY2hvIGNhYyBvbmcgY2hpZW0gZG9hdCBjdWEgZGFuIHJhIHNhby4gDQpRdWEg ZG8gY2FjIGQvYyB0aGF5IGR1b2MgY2FpIGNhbiBiZW5oICJ2byBwaHVvbmcgY3V1IGNodWEiIG5v IHJhbmcgYnVvYyBtb2MgeGljaCByYSBzYW8gdmEgdGFpIHNhbyBubyBsYWkgbGEgbW90ICJxdW9j IG5hbiIuDQpWdWEgcXVhLCBuZ2F5IDgvOS8yMDA3LCB0cm9uZyBjdW9jIGhvcCB0cmllbiBraGFp IGNoaSB0aGkgMjAsIGQvYyBQaGFtIFF1YW5nIE5naGksIEJpIHRodSB0aGFuaCB1eSBjbyBub2kg ZGVuIG5odW5nIGNhbiBibyBjYXAgZHVvaSwgbmh1bmcgbmd1b2kgbWEgZC9jIE5naGkgY2hvIGxh ICJtb2kga2hpZXUga2llbiBjdWEgZGFuIGtlbyBkYWkgbGEgZG8gY2FjIGNhbiBibyBjYXAgZHVv aSBiYW8gY2FvIHNhaSBzdSB0aGF0IGxhbSBjYXAgdHJlbiB4dSBseSBjdW5nIHNhaSIuIFN1IHRo YXQgY28gZHVuZyBuaHUgZC9jIE5naGkgbm9pIGtob25nPw0KTmh1IGNodW5nIHRhIGJpZXQsIG5n YXkgc2F1IG5nYXkgdHJpZW4ga2hhaSBjaGkgdGhpIDIwLCBkL2MgTmdoaSBkYSB0cnVjIHRpZXAg ZGkga2llbSB0cmEgdGFpIHZ1b24gdGh1IFRodSBsZSB2ZSA1LjAwMG0yIGRhdCBjdWEgdnVvbiB0 aHUgY2hvIHRodWUgbGFtIG5oYSBoYW5nLCBxdWFuIGthcmFva2UgbWEgZC9jIE5naGkgcGhlIHBo YW4gbGEgdmkgcGhhbSB2b2kgNCBjYWkgc2FpLiBNYWMgZHUgY28gbWF0IGQvYyB0YWkgaGllbiB0 cnVvbmcsIG5odW5nIG1vaSB2aWVjIGtpbmggZG9hbmggdmFuIGRpZW4gcmEgYmluaCB0aHVvbmcs IG5ndW9pIHRhIGN1bmcgY2hhbmcgdGhlbSBkZSB5IGRlbiB2aWVjIGNvIG9uZyBCaSB0aHUgdGhh bmggdXkgZGVuIGtpZW0gdHJhLiANCkNoaSB0aGUgdGhvaSBkYSB0aGF5IGNhaSBjaGkgdGhpIDIw IGN1YSBkL2Mga2hvbmcgY28gbW90IGNodXQgdXkgbHVjIG5hby4gRC9jIE5naGkgdGh1YSBiaWV0 IGRpZW4gdGljaCBkYXQgY2hvIHRodWUgbmF5IGxhIGRvIGNoaW5oIGJhIENoaW5oIC0gcGh1IG5o YW4gY3VhIGQvYyBQaGFtIENodXllbiwgdGhpZXUgdHVvbmcsIG5ndXllbiBnaWFtIGRvYyBjb25n IGFuIHRoYW5oIHBobyBIYSBOb2kgZHVuZyByYSB0aGF1IHZhIGR1b2MgY29uZyBhbiBxdWFuIEJh IERpbmggYmFvIGxhbmgsIHRyb25nIGRvIGNvIGNhIGNvIHBoYW4gY3VhIGQvYyBOZ3V5ZW4gUXVv YyBUcmlldSwgbmd1eWVuIGxhIGNodSB0aWNoIFVCTkQgdGhhbmggcGhvIEhhIE5vaSBoaWVuIGxh IEJvIHRydW9uZyBCbyBZIFRlIHZhIGhpZW4gbmF5IG5oaWV1IHZpIHRyaSBiYSBDaGluaCBkYSBz YW5nIHRheSAzIC00IGNodSByb2kuIFZheSBsYSwgbyBkYXksIG5ldSBkbyB0b2kgdGFpIGNhbiBi byBjYXAgZHVvaSB0aGkgY28gZHVuZyBraG9uZywgaGF5IGxhIGRvIGNhaSBzdSAibmhhIGRvdCB0 dSBub2MiPyANClRhIHRodSB0aW0gaGlldSBtb3Qgc28gdmllYyBtYSBjaGluaCBjYWMgb25nICJx dWFuIiBUaGFuaCBwaG8gZGEgdGh1YyB0aGkgeGVtIHNhby4NCg0KVmUgdmkgVG9uZyBkb2MgSGEg dGhhbmggTmd1eWVuIFF1b2MgVHJpZXUgeHVhIHZhIGxhIEJvIHRydW9uZyBCbyBZIFRlIHRob2kg bmF5Og0KDQpIb2MgdHJ1b25nIFkgSGEgTm9pLCBkaSBibyBkb2ksIHRoYW0gZ2lhIHF1YW4gdHJ1 b25nIGRlIGxhbSBxdWFuLCBsZW4gbmh1IGRpZXUgZ2FwIGdpbywgcXV5ZW4gY2FvIGNodWMgdHJv bmcsIG9uZyBjbyBiYW5nIHRpZW4gc3kgeGEgaG9pIGhvYywgdGhlIG1hIG9uZyBraG9uZyB0aGUg bGFtIHRvdCB0cm9uZyB2aSB0cmkgY2hpIGh1eSBjdWEgbWluaCwgbGFpIGJpIGJvbiBxdWFuIHRo YW4gZ2lhbiBkb2kgcGhvIHRhIG5lbiByYXQgaGF5ICJodXllbiB0aHV5ZW4iLiANCg0KTyBIYSBO b2kgdHUgdHJ1b2Mgbmd1b2kgdGEgbHV1IHRydXllbiBjYXUgdmUgdmFuIHZlbyBkYW4gZ2lhIGxh OiAiR2lhdSBuaHUgUGh1LCBsdSBuaHUgVHJvbmcsIGxhdCBsb25nIG5odSBOZ2hpZW4sIHRpZXUg dGllbiBuaHUgVHJpZXUiIGhheSBsYSAiR2lhdSBuaHUgUGh1LCBsdSBuaHUgVHJvbmcsIGRheSBi b25nIGxhIE5naGllbiwgaHV5ZW4gdGh1eWVuIGxhIE5ndXllbiBRdW9jIFRyaWV1Ii4NCg0KT25n IFRyaWV1LCBraGkgb25nIGxhIGNodSB0aWNoIGN1YSBIYSBOb2kgdGhpIG9uZyBkZSByYSBjYWMg Y3VtIHR1IHJhdCBsYSwgdGhpIGR1IG5odTogRGUgYmFuIGNobyBvbmcgSG9hbmcgVmFuIE5naGll biBuZ29pIGJpZXQgdGh1IHNvIDEyIE5ndXllbiBDaGUgTmdoaWEsIG5ndW9pIHRhIGt5IHZhbyBt b3QgbWFuaCBnaWF5IGRvbmcgZGF1IHRyZW8gZ29pIGRvIGxhICJjb25nIHRodSIgcm9pIG9uZyBn dWkgY2FpIHRodSBkYW5nIHRyZW4gYmFvIGdvaSBkbyBsYSAidGh1IGNvbmcgdGFjIiA/IQ0KDQpO Z2F5IHNhdSBraGkgc2FuZyBsYW0gYm8gdHJ1b25nIEJvIFkgdGUgb25nIGR1YSByYSBraGFpIG5p ZW0gIlZhbiBob2EgcGhvbmcgYmkiIGNobyBuZ2FuaCB5LCB2YXkgbGEgZGFuIG5naGVvIHNlIGJp IG1vdCBoZSBsdXkgbG9uIGRheS4gT25nIHRpZW4gc2kgeGEgaG9pIGhvYyBOZ3V5ZW4gUXVvYyBU cmlldSBjb25nIGtoYWkgY2FpIHRlIG5hbiBjaHV5ZW4gZGUgImNoYXkiIGF5OiBjaGF5IGNodWMs IGNoYXkgcXV5ZW4sIGNoYXkgaG9jLCBjaGF5IGJhYyBzeSwgY2hheSBhbiwgY2hheSB0b2kuLi4g bGVuIHRoYW5oIG1vdCB0aHUgdmFuIGhvYSBtYSBvbmcgZ29pIGxhICJ2YW4gaG9hIHBob25nIGJp Ii4gT25nIGxhIHZ1YSBhbiB0aWVuIGtpZXUgcGhvbmcgYmksIGRhIGFuIGdpb2kgdGhpIHRpZXUg Y3VuZyBnaW9pLCB0aGUgbmVuIG1vaSBkdW9jIGNhaSBtZW5oIGRhbmggInRpZXUgdGllbiBuaHUg VHJpZXUiLg0KDQpSb2kgZGVuIG1heSBuaGlwIGNhdSBkYW4gQ2FuIFRobyBkYW5nIGxhbSBiaSBz YXAsIGNhYyBuYW4gbmhhbiBkYW5nIGNhbiBwaGFpIGR1b2MgcXVhbiB0YW0gY3V1IGdpdXAgdHJl biBoZXQsIGNhYyBiYWMgc3ksIHkgdGEsIGNhYyBsdWMgbHVvbmcgY29uZyBhbi4uLiBkaSBuaGll biBwaGFpIHZhbyBjdW9jLiBUcm9uZyBraGkgZGFuZyByYSBzdWMga2V1IGdvaSBuaGFuIGRhbiBx dXllbiBnb3AgZGUgZ2l1cCBkbyBuaHVuZyBuZ3VvaSBiaSBuYW4gdGhpIG9uZyBCbyB0cnVvbmcg dHVuZyBuZ2F5IHJhIDI5MCB0cmlldSBkb25nIGN1YSBuaGEgbnVvYyBkZSAiYmFuIHRodW9uZyIg Y2hvIGNhYyBkb24gdmkgYW4gbHVvbmcgbmhhIG51b2MgZGkgbGFtIG5oaWVtIHZ1LiANCk5vaSBk YWksIGN1IHRoZSBuYXkgdGhpIG5ndW9pIHRhIGxhaSBtb25nIGNvIG5oaWV1IHZ1IHRhaSBuYW4g aG9uIG51YSBkZSBkdW9jIG5oYW4gbmhpZXUgImJhbiB0aHVvbmciIGN1YSBvbmcgVHJpZXUuIFRo dWMga2hvbmcgYWkgaGlldSBub2kgY2FpIGRhdSBvbmcgbmdoaSBnaT8gUGhhaSBjaGFuZyBkaWV1 IG9uZyBtdW9uIHF1YW4gdGFtIGxhIHZpZWMgbXVvbiBsYW0gbm9pIG1pbmgsIHRoZSBsYSBvbmcg YmFuIHRodW9uZy4NCk8gZGF5IHRvaSBtdW9uIG5ldSBsYSBuaGFuIGRhbiBIYSBOb2ksIG5oYXQg bGEgbmhhbiBkYW4gVGF5IEhvLCBjaGFuZyBsYSBnaSBuaHVuZyB0cm8gbmF5IGN1YSBvbmcsIHhp biBrZSBtb3QgY2F1IGNodXllbiwgdHJ1b2MgZGFpIGhvaSBEYW5nIFgsIGRlIGNhdSBjaG8gbWlu aCB0cnVuZyBkdW9jIHV5IHZpZW4gdHJ1bmcgdW9uZywgb25nIHRodW9uZyBkdW5nIHhlIGNvbmcg Y3VuZyB2byBkaSBsZSBiYWkgbyBQaHUgVGF5IEhvLCBtb2kgbGFuIGRlbiwgb25nIGRldSBtYW5n IHhlIHZhbyB0YW4gc2FuIGNodWEgbWEgZ2lhdSwgY28gY2hlIGNhaSBiaWVuIHNvIG1hIG5oaW4g dGhheSBhaSBjdW5nIGJpZXQgbGEgY3VhIG9uZyBDaHUgdGljaCBUUCwgbmh1bmcga2hvbmcgbWF5 IGNobyBvbmcgbGEgY2FpIGNoaSBiZW8gbyBuZ2F5IHRydW9jIGN1YSBQaHUgVGF5IEhvIHBoYXQg aGllbiByYSwgdHVtIGxheSBnb2kgZGFuIHJhIG1hIGtldSBtYSBraWVuIHZlIGNhaSBkdSBhbiBr ZSBIbyBUYXkgZGF5IHNhaSBwaGFtIHRhaSBRdWFuZyBBbi4gDQpDYW5oIG5oYSBiYW8gdGhpIGNv IGJhbmcgY2h1bmcgbGVuIGtodW9uIGxhIG9uZyBkdW5nIHhlIGNvbmcgZGkgbGUgdmFpLiBWYXkg bWEgb25nIHZhbiBjYWkgYmF5IGNhaSBiaWVuIHJhbmcgb25nIGRpIGtpZW0gdHJhIG5nb2FpIGdp byBkYXkgY2h1IHZhIG9uZyBodWEgb25nIHNlIGdpYWkgcXV5ZXQgdHVvdCBuaHVuZyBnaSBkYW4g eWV1IGNhdSwgbmh1IG5obyAzOCBjYWkga2ktb3QgbyBjYW5oIFBodSBUYXkgSG8gbWEga2UgSG8g VGF5IGxvaSBkdW5nIGdpYWkgcGhvbmcgZGF0IGRlIHhheSBjaG8gdGh1ZS4gDQpEZSBuYW5nIGt5 IGNobyB2aWVjIGdpdSBsYWkgY2FpIGdoZSBjaHUgdGljaCBVQk5EIFRQSE4gc2FwIGRlbiBnYW4s IG9uZyBnaWEgZG8geHVvbmcgWHVhbiBMYSwgdGhhbSB0aGFtIHRodSB0aHUsIGNvdCBjaHVwIG1v dCBwbyBhbmggZHVuZyB2b2kgb25nIGNodSB0aWNoIHBodW9uZywgcm9pIGR1YSBsZW4gYmFvIEFu IG5pbmggdGh1IGRvIChtYSB0YXkgVG9uZyBiaWVuIHRhcCB2b24gbGEgYm9pIGJ1dCBjdWEgb25n IGRhIGNvIGxhbiBiaSBvbmcgdGh1b25nIHRhIGNvbmcgYW4gTmd1eWVuIEtpZW4gUXVvYyB0byBj YW8pIGNodSB0aGljaCBiZW4gZHVvaSBiYW5nIGNhdSByYXQgbWkgZGFuIGxhICJDaHUgdGljaCBO Z3V5ZW4gUXVvYyBUcmlldSBkaSBraWVtIHRyYSBnaWFpIHF1eWV0IG5odW5nIHZ1b25nIG1hYyBv IHBodW9uZyBYdWFuIExhIi4NCg0KVGhlIG5odW5nIG9uZyBjdSA3OCB0dW9pIERhbyBWYW4gSHVl IC0gRGFuZyB2aWVuIGhvbiA1MCBuYW0gdHVvaSBEYW5nLCBsYWkgbmFtIG5nYXkgZHVvYyBjYWkg dGhvcCBjdWEgb25nIHZhIGd1aSBtb3QgYnVjIHRodSBuZ28gbmdhbSBiYW8gY2hvIGNhYyB2aSBs YW5oIGRhbyBEYW5nIHRyZW4gY2hvcCBidSBiaWV0LCB5IGN1YSBjdSBtdW9uIHRob25nIGJhbyB2 b2kgdG8gY2h1YyBEYW5nIHJhbmcgY2FpIG9uZyBjaHUgdGljaCBuYXkgZ2lhIGRvaS4gVHJvbmcg dGh1IG9uZyBjdSB2YWNoIHJhIGJhbyBuaGlldSBsYSBzdSB2aWVjIGN1IHRoZSwgY29uIG5oYWMg dG9pIGd1b25nIGhhaSBjdToNCiAiQ3UgSG9hbmcgRGlldSwgQ3UgTmd1eWVuIFRyaSBQaHVvbmcg MiB2aSBUb25nIGRvYyBIYSB0aGFuaCB2aSBraG9uZyBsYW0gdHJvbiBuaGllbSB2dSB0cm9uZyBo b2FuIGNhbmggZGF0IG51b2MgbGkgbG9hbiwgbG9uZyBkYW4gdGFuIHJhLCBkZSBxdW9jIFBoYXAg eGFtIGx1b2MuLi4sIG5ndW9pIHR1YW4gdGlldCwgbmd1b2kgbmhpbiBhbiBkZW4gY2hldCBkZSB0 byBybyBraGkgdGlldCBjdWEgbWluaCwgZGUgbGFpIHRpZW5nIHRob20gbXVvbiB0aHVhLiBPbmcg Q2h1IHRpY2ggTmd1eWVuIFF1b2MgVHJpZXUgbGEgcXVhbiBUb25nIGRvYyB0aG9pIG5heSwgdm9p IG5odW5nIHZpZWMgbGFtIG5ldSB0cmVuIGxpZXUgY2h1bmcgdG9pIGNvbiBjbyBjaG8gZ3VpIGdh bSBsb25nIHRpbiBoYXkga2hvbmcgPyIgDQoodHJpY2ggdGh1IG5nbyBjdWEgY3UgRGFvIFZhbiBI dWUgZ3VpIGNodSB0aWNoIFVCTkQgVFBITiBuZ2F5IDgvMS8yMDA3KS4NCg0KVmF5IGx1YyBvbmcg VHJpZXUgY29uIGxhIHF1YW4gVG9uZyBkb2MsIG5oYW4gZGFuIGdpYW8gb25nIHBoYWkgZ2l1IFRo YW5oIGNob25nIGxhaSBib24gZ2lhYyBub2kgeGFtIGxhIGJvbiB0aGFtIG5odW5nIGtoaSBjaHVu ZyBjb24gY2h1YSBtYW5oLCB0cm9uZyBraGkgbmhhbiBkYW4gdGhpIHJhdCBjYW0gZ2hldCBjaHVu Zywgc2FuIHNhbmcgdW5nIGhvIGNvbmcgY3VvYyBjaG9uZyB0aGFtIG5odW5nIG5heSwgYmFuZyBj aHVuZyBsYSBuaHVuZyBkb24gdGh1IHRvIGNhbyBjdWEgbmd1b2kgZGFuIGRhIGRhbSBjaGkgZGlj aCBkYW5oIG5ndW9pIHZhIHZpZWMsIHRoZSBtYSBvbmcgVHJpZXUgbGFpIGJvIGNoYXkgdGhlbyBn aWFjLCBkb2kgdHJhLCBjaGkgdGltIGNvIGhvaSBkYW5oIGJvbmcgbWluaCwgZ2lhIHZvIGRpIGtp ZW0gdHJhLCBjaGkgbGEgZGUgY2h1cCBhbmggbGVuIGJhbywgY2h1IHN1IHRodWMgdGhpIG9uZyBk ZSBjaG8gY2FwIGR1b2kgdGhhIGhvIHRoaXQgZGFuIGRlbiwgY2h1bmcgY2FuZyBuZ2F5IGNhbmcg bGFtIGNhbiwgY2FuZyBsb25nIGhhbmguIA0KQ29uIGJheSBnaW8ga2hpIG9uZyBjaGVtIGNoZSB0 cmVuIGNhaSBnaGUgQm8gdHJ1b25nIEJvIFkgVGUsIG9uZyBsYWkgY2hvIHBoZXAgbmdhbmggeSBk dW9jIHBoZXAgc3UgZHVuZyAidmFuIGhvYSBwaG9uZyBiaSIuIFZheSBkYXksIHRyb25nIG5nYW5o IHkgbmV1IG8gbnVvYyBuZ29haSBiYWMgc3kgbmhhbiBwaG9uZyBiaSBjdWEgYmVuaCBuaGFuIHRo aSBkbyBsYSBtb3QgZGlldSBxdWEgc3kgbmh1Yy4gT25nIE5ndXllbiBRdW9jIFRyaWV1IHZpIGRh IGRpIGxlbiB0dSBjaHVjIG5heSBkZW4gY2h1YyBraGFjIGJhbmcgImNoYXknLCBiYW5nICJwaG9u ZyBiaSIgbmVuIG9uZyBtb2kgY29pIGRvIGxhIG1vdCB0aHUgdmFuIGhvYS4NClhpbiBiYXQgbWkg Y2h1eWVuIG9uZyBUcmlldSAiY2hheSIgZ2hlIGJvIHRydW9uZyBCbyB5IHRlIG5odSB0aGUgbmFv OiBOaGFtIHRyYW5oIHZpZWMga2hvbmcgcGhhaSByYSB2ZSBvbmcgdGltIGNhY2ggeG9heSBzbywg eGluIGNodXllbiBnaGUgY2hvIG1pbmggaGV0IGNobyBuYXkgZGVuIGNobyBraGFjOiBHb2kgeSB2 ZSBCbyBZIFRlLCBiaSBwaGFuIGRvaSB2aSBraG9uZyB0cnVvbmcgdGhhbmggdHUgY2h1eWVuIG1v bi4gR29pIHkgdmUgQmFjIE5pbmgsIEJhYyBOaW5oIG5vaSBobyBraG9uZyB0aGlldSBuaGFuIHRh aS4gDQpWYXkgbGEgb25nIHRpbSBkdSBtb2kgY2FjaCB4aW4gbyBsYWkgSGEgTm9pLiBOaHVuZyBI YSBOb2kgb25nIGRhIGxhbSBjaG8gbm8gYmUgYmV0IHJhIHJvaSBzYW8gbyBsYWkgZHVvYyBudWEu IFRoZSBtYSBkdW5nIG1vdCBjYWkgb25nIGNoZW0gY2hlIHNhbmcgbmdvaSBnaGUgQm8gdHJ1b25n IEJvIFkgdGU/LiBPbmcgcGhhaSBkdW5nIGRlbiAxMDAxIGNoaWV1IGRvYyByb2kuIE1vdCB0cm9u ZyBjYWMgY2hpZXUgb25nIGRhIHN1IGR1bmcgZGVuIGxhIG5oYW0gY2FpIG8gbG9uIGRlIGJpZXUg bG8gZGF0IDQwMG0yIHRhaSBWb25nIFRoaSBiZW4gYm8gSG8gVGF5LCB0cnVvYyBkYXkgZ2lhbmgg Y2hvIGRhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lhcCwgVHVvbmcgR2lhcCBraG9uZyBkZSBnaSBiYXAu IFZheSBsYWkgY28gY28gaG9pIGNobyBrZSBraGFjLg0KDQpUaGUgbGEsIG9uZyBUcmlldSBuaGFu aCB0YXkgbmhhbmggY2hhbiAicGhvbmcgYmkiIG5nYXkgY2hvIG9uZyBUb25nIEJpIHRodSANCk5v bmcgRHVjIE1hbmgsIHRhbmcgYm9jIHRoZSBuYW8gbWEgb25nIFRvbmcgbmhhIG1pbmggaHVuZyBt dWkgbGVuICJEZSB0bywgDQptaW5oIG1vaSB4dW5nIGRhbmcgbmhhbiBjaG8gZG8gY2h1IjsgdHJ1 b2MgZG8gb25nIGN1bmcgZGEgdGhhbyB0YWMgY2hvIG9uZyANCmNvbiB0cmFpIE5vbmcgUXVvYyBU dWFuIGNvIGxpZW4gMiBsbyBkYXQgdHJlbiBraHUgMSwzOGhhIGR1IGFuIGtlIEhvIFRheSANCiJk YXUgdGhhdSIgZGF5IHRhaSB0aWVuZyBvIHBodW9uZyBRdWFuZyBBbiwgbWEgY2hpbmggQm8gQ29u ZyBhbiwgb25nIHRodSANCnRydW9uZyBMZSBUaGUgVGllbSBkYSBjb25nIHZhbiB5ZXUgY2F1IENv bmcgYW4gSGEgTm9pIGxhbSByby4gDQpDYW4gYm8gZGlldSB0cmEgQ0FITiBkZW4gZGlldSB0cmEg bW90IHRob2kgcm9pIGxhbiB0YW0gbW90IG1hY2gsIHNhdSBkbyBkdW9jIA0KbmhhbiBtb3Qgc3Vh dCBkYXQgcGhhbiBsbyB0YWkga2h1IENJUFVUUkEuIENvbiBvbmcgVGllbSBjdW5nIGNoYXkgbWF0 IGRlcCwgDQpraG9uZyBkYW0gbmhhYyBuaG8geWV1IGNhdSBDb25nIGFuIEhhIE5vaSBiYW8gY2Fv IGtldCBxdWEgbnVhLiBDaGkgbWF5IGRvbmcgDQp0YWMgZG8gdGhvaSwgb25nIGR1b2MgdW5nIGR1 bmcsIG5nYW5nIGNhbyBkYXUgYnVvYyBzYW5nIG5nb2kgdmFvIGNhaSBnaGUgQm8gdHJ1b25nIGN1 YSBCbyB5IHRlLiANCg0KUXVlbiB0aG9pIGN1LCB2dWEgY2hhbiB1b3QgY2hhbiByYW8gb25nIGRh IGh1b3UgdnVvbiBuZ2F5IHJhbmcgY2FjIGJlbmggdmllbiBzZSBraG9uZyBjb24gY2FuaCAyIGJl bmggbmhhbiBtb3QgZ2l1b25nIG5odSBkb2kgQm8gdHJ1b25nIGN1IG51YS4gT25nIGRhIG5vaSwg Y2h1bmcgdGEgaGF5IGdoaSBuaGFuIHZhIGNobyB4ZW0gbG9pIGh1YSBjdWEgb25nIEJvIHRydW9u ZyBkaSBkZW4gZGF1LCBoYXkgbmh1IG9uZyBodWEgZG8gYm8gMzgga2kgb3QgbyBRdWFuZyBBbiBu YXkgdmFuIHRybyBnYW4gY3VuZyB0dWUgbmd1eWV0Lg0KDQpWdSBjaGF5IFZhbiBwaG9uZyBDaGlu aCBwaHUgdmEgUGhvIHRodSB0dW9uZyBUcnVvbmcgVmluaCBUcm9uZzoNCg0KS2V0IGx1YW4gdGhh bmggdHJhIENoaW5oIHBodSB2ZSB0aGFuaCB0cmEga2UgSG8gVGF5IHRhaSBjdW0gMyAtIFh1YW4g TGEgcmEgbmdheSAxNy8wMS8yMDA3IGxhaSB0cnVuZyB2YW8gZGlwIHRydW9jIHRldCBhbSBsaWNo LCBtdWEgYmlldSB4ZW4gbGUgbGF0IG1hIG5ndW9pIHRhIGRlIG5oYW4gbmhhdCwgY28gbmd1b2kg Z29pIGRpZW4gYmFvIGNobyBkYW4gYmlldCBsYSBjaHVuZyBubyBjaG8gY2EgeGUgdGllbiBkaSBi aWV1IHRldCBtYSBkYW4gbyBkYXkga2hvbmcgY2FuaCBnaWFjIGdpIGNhLCBjaHVuZyBiaWV0IG11 YyB0aWV1IGR1eSBuaGF0IGhpZW4gbmF5IGxhIG9uZyBUcnVvbmcgVmluaCBUcm9uZywgZGFuIGR1 bmcgdHVvbmcgY28ga2V0IGx1YW4gdGhhbmggdHJhIGxhIHllbiB0cmkgZGF1LiANCkRvIGdpb2kg ImNoYXkiIGhheSBkbyBkZW8gbW9tLCBnaW9pIG5haSBuaSAiZGUgY2hvIEhhIE5vaSBvbiBkaW5o IiBtYSBkL2MgVHJvbmcgc2F1IHRldCBuZ2F5IDUvMy8yMDA3IHRvIGNodWMgY3VvYyBob3AgdmEg ZGEgInBoYW4iIG1heSBjYXUgeGFuaCByb24gdHJhaSBraG9heSwgbmd1b2MgaGFuIHZvaSBrZXQg bHVhbiB0aGFuaCB0cmEgY2hpbmggcGh1IGRvIGRvYW4gdGhhbmggdHJhIGxpZW4gbmdhbmggdGh1 YyBoaWVuLCBtYSBjaGluaCBkL2MgY2hpIGRhbyBsYXAgcmEuIEJhbiB0aGFvIGtldCBsdWFuIGQv YyBUcm9uZyBkYSBkdW9jIHhlbSB0cnVvYyB2YSBkL2MgZGEgZG9uZyB5IHJvaSB0aGFuaCB0cmEg bW9pIGt5LCB2YXkgdGFpIHNhbyBjbyBzdSB0cmFpIGtob2F5IG5heT8gDQpDbyBuZ3VvaSBiYW8g Y2hpbmggYm8gbWF5IHRoYW0gbXV1IG8gVmFuIHBob25nIENoaW5oIHBodSBkYSAiY2FpIiAgb25n IFRyb25nLCBsb2kgZHVuZyBsdWMgb25nIHNvIGhvIGRlIGx1YSBvbmcga3k/IGNvIG5ndW9pIGJh byBkbyBsYSB0YXkgTWluaCAtIFZ1IHRydW9uZyBraGlldSBuYWkgdG8gY2FvLCBuZ3VvaSBjbyBs YSBsaWV0IGRhdCBkb2MgSG8gVGF5IG1hbiBRdWFuZyBBbi4gTmhpZXUgbmd1b2kgcXVlbiB0aGFu IG9uZyBUcm9uZyBnb2kgZGllbiBjYW5oIGJhbywgZC9jIFRyb25nIGJhbyAidG9pIGNvIG5vaSB0 aGUgZGF1Ii4gDQpOaHUgdmF5IGxhIGQvYyBUcm9uZyBuaGEgbWluaCBjdW5nIGJpZXQgdG9uZyB0 b25nIHRvbmcgcm9pLiBEL2Mga2hvbmcgbm9pIHRoZSB0aGkgY2hpIGNvIGJvbiB2YW4gcGhvbmcg Q2hpbmggcGh1IHNhbmcgeGUsIHhhbyB4YW8gY2FpIHZhbiBiYW4gInRob25nIGJhbyA0MCIgY2h1 IGNvbiBhaSB2YW8gZGF5IGR1b2MgbnVhLiBPIHRyb25nIFV5IGJhbiBuaGFuIGRhbiB0aGFuaCBw aG8gSGEgTm9pLCBjbyBuZ3VvaSBjb24gbmdoZSBkdW9jIGNhIGdpb25nIG9uZyBUcmlldSBub2kg ZGllbiB0aG9haSB0dSBkYW8geGEgdmUga2hpIGJhbyB0aW4gbXVuZyBkYSBsYXQgZHVvYyB0aGUg Y286ICJUb2kgYmlldCBuZ2F5IG1hLCB0aGUgbmFvIENoYSBheSBjdW5nIGt5Ii4gDQpDYWkgdHUg ImNoYSBheSIgc2FvIG1hIGRhdCB0aGUsIHBoYWkgbm9pIGRheSBkdSBsYSAidGhhbmcgY2hhIGF5 Iiwga2lldSB0byB5IGtoaW5oIGJpLCBob2FjIGxhIGFuIG5odW5nIGdpYSB2byBsaWVtIGtoaWV0 LCBob2FjIGxhIGNvIGxpZW0ga2hpZXQgZGVuIG1heSBjdW5nIGJpIGNodW5nIG5vIGNobyBkaW5o IGRvbiAoZC9jIFRyb25nIGxhIG5ndW9pIGR1b2MgdGllbmcgbGllbSBraGlldCBraGkgY29uIG8g QmFuIE5vaSBjaGluaCBUVzogSG9pIG5naGkgeG9uZyByYSBhbiBtaSB0b20gdm9pIGxpbmgsIHBo YW4gbmhhIGNobyBraG9uZyBuaGFuIC4uLiwgdHJ1IHZ1IFF1YWNoIExlIFRoYW5oIG5obyBnaWFp IGN1dSwgcmF0IHRob2kpLiANClZpIG9uZyBkdW9jIGN1YyB0aWVuIHRvIHF1YSBuZ29haSBzdWMg dHVvbmcgdHVvbmcgY3VhIG9uZyBuZW4gbHVjIG5hbyBvbmcgY3VuZyBub20gbm9wLiBDbyB0YXQg Z2lhdCBtaW5oLCBvbmcgbmdoaSBsdWMgbmFvIGhvIGN1bmcgc2FuIHNhbmcgc29pIG9uZywgbmVu IHJhIHF1b2MgaG9pIG9uZyBjdSB0dSB0aGFuaCBtaW5oICJsYW0gZ2kgY28gY2h1eWVuIG11YSBj aHVvYyBkZW4gNzAuMDAwIGRvIGxhIg0KDQpWZSBPbmcgRG8gSG9hbmcgQW4gdmEgb25nIExlIFF1 eSBEb24sIGNhYyBwaG8gY2h1IHRpY2ggVFAgSGEgTm9pOg0KDQpMYSBjYXAgcGhvIGN1YSBvbmcg VHJpZXUgbyBIYSBOb2kuIEhhaSBvbmcgbmF5IGRhIGRhdCB0b2kgZGluaCBjYW8gdHJpIHR1ZSBj dWEgdGhhbSBuaHVuZywgb25nIEFuICIgYW4iIGtoaSB0aHVjIGhpZW4gZHUgYW4gdGhpIG9uZyBE b24gImFuIiB0dSBraGkgY2FwIGRhdCBjaG8gZHUgYW4uDQpOYXAgZHVvaSBib25nIGhhaSBvbmcg bmF5IGxhIGNhYyBxdWFuIHF1YW4sIHF1YW4gcGh1b25nLCBjYWMgb25nIGR1bmcgZGF1IGNhYyBz bywgYmFuLCBuZ2FuaCBjdWEgSGEgTm9pIG5odTogdG9hIGFuLCBjb25nIGFuLCBraWVtIHNhdCwg dGFpIG5ndXllbiBNb2kgdHJ1b25nIE5oYSBkYXQsIHRyYXQgdHUgeGF5IGR1bmcsIHRoYW5oIHRy YSBnaWFvIHRob25nIGNvbmcgY2hpbmggLnYudi4gdGhhIGhvIG1hIGtpZW0gY2hhYy4gDQpEYXQg ZGFpIGxhIG5ndW9uIGJlbyBibywgZGF0IG5vbmcgbmdoaWVwIGdpYSBiZW8gYm90IGtoaSBiaWVu IHRoYW5oIHRobyBjdSwgdGhhbmggYmlldCB0aHUgdGhpIGxhaSBzdWF0IHJhdCBjYW86IG1vdCBs YWkgbXVvaSwgdGhhbSBjaGkgbGFpIHRyYW0sIGxhaSBuZ2FuLg0KDQpWZSBvbmcgRG8gSG9hbmcg QW46DQoNClZ1IGJhIFZ1IFRoaSBLaW0gVGhhbmgga2llbiBvbmcgY2h1IHRpY2ggcXVhbiBCYSBE aW5oIHJhIGxlbmggY3VvbmcgY2hlIHRyYWkgbHVhdCBnaWEgZGluaCBiYSAodmEgY2FjIGdpYSBk aW5oIG5nbyA1OSBMYW5nIEhhKTogR2lhaSB0b2EgZGUgbW8gbmdvIDU5IExhbmcgSGEgdGhhbmgg ZHVvbmcgdGhlbmggdGhhbmcgdmFvIG5oYSBvbmcgQW4sIG1vaSB2aWVjIGxhbSBjdWEgVGhhbmgg cGhvLCBjdWEgUXVhbiBCYSBEaW5oIGRldSBwaGFpIHRoZW8geSBjdWEgb25nIEFuLCBkdSBhbiBw aGFpIGNoaW5oIHN1YS4gDQpPbmcgQW4gZGEgaGF5IGtoZW8gZGFuIG5odSB0aGUgbmFvID8gT25n IGNobyBjb24gZ2FpIGxhIERvIEhvYW5nIFZhbiBiaSBtYXQgZHVhIG5ndW9pIGRhbSBwaGFuIG11 YSBuZ2F5IGNhbiBuaGEgb25nIERvIEJpbmggbyBzbyAxNyBuZ28gNTkgTGFuZyBIYSwgZGllbiBw aGFpIGx1aSB2YW8gbW8gcm9uZyBkdW9uZyBjaG8gb25nIEFuLCBvbmcgbXVhIHZvaSBnaWEgZGF0 IGhvbiBnaWEgdGhpIHRydW9uZywgcm9pIG9uZyAidGllbiBwaG9uZyIgY2hvIGRhcCBwaGFuIHBo YWkgZ2lhaSB0b2EsIGx1aSB2YW8gZHVuZyBtb2MgZ2lvaSBvbmcgdmUgcmEsIA0Kb25nIHN1YSBz YW5nIGxhaSB0aGF0IGRlcCB2YSBzYXUgZG8gb25nIGxhaSBiaSBtYXQgYmFuIGNobyBjaGluaCBu Z3VvaSBjaHUgY3Ugdm9pIGdpYSBjdW5nIHRodXQgeHVvbmcsIHZheSBsYSBvbmcgY2hpdSBtYXQg bW90IHZhaSB0eSBkZSBiYXkgbmh1bmcgbmd1b2kgZGFuIGtoYWMgdGhheSBjbyBuZ3VvaSB0dSBu Z3V5ZW4gdGhpIG1pbmggY3VuZyB0dSBuZ3V5ZW4gdGh1dCB2YW8uIERlIGJ1IGxhaSBwaGFuIGRh IG1hdCBvbmcgbmFuIGNhaSBuZ2EgYmEgZ29jIG5oYSBvbmcsIG1vIHJvbmcgeGVvIHJhIGRlIGNo byBuaGEgbW90IG5ndW9pIGRhbiBhbiBuZ3UgdHJ1b2MgbmhhIG9uZyBiYXkgZGkgcGhhbiBsb24g Y2hpIGNvbiBsYWkgbW90IGRpZW4gdGljaCBkdW9jIGxpZXQga2UgdmFvIGxvYWkgc2lldSBtb25n LCANCnZheSBsYSBvbmcgaG90IGx1b24gZGUgY28gZHVvYyAyIG1hdCB0aWVuLiBOb2kgdmUgZGF0 IHZhIG5oYSB0aGkgb25nIGNvIG5oaWV1IGxhbSBraG9uZyBrZSBoZXQgZHVvYywgY2FpIG5oYSB0 byBkdW5nIG8gSG9hbmcgQ2F1IG9uZyBkYW5nIGNobyB0cnVvbmcgbWF1IGdpYW8gQmFjIEhhIHRo dWUgbGEgbW90IHRoaSBkdS4gVGhvaSBnaWFuIHF1YSBzYXUga2hpIHZlIGh1dSBvbmcgYmlldCB2 aWVjIG5nbyA1OSwgdmllYyBkdW9uZyB2YW5oIGRhaSAzIGhheSB2aWVjIGtlIEhvIFRheSBtYSBk YWMgYmlldCBsYSBjYWkga2h1IHZ1YyBob24gOCBuZ2hpbiBtZXQgdnVvbmcgbyBCZW4gQ2h1bSAt IFF1YW5nIEFuLCB0dXkga2hvbmcgbWF0IG5oaWV1IGNvbmcgc3VjLCBuaGlldSB0aWVuIGJhYyBk ZSBsYXkgbm8sIG5odW5nIHZpIG5vIGxhaSBjdSBuYW0gbHUgbHUgcmEgZG8sIA0KY2FjaCBtZXAg aG8gZGVuIGJhIGJvbiB0cmFtIG1ldCBkZSBjYWMgb25nIHhheSBsYW0gZGljaCB2dSwgZ29pIGxh IGNhdSBsYWMgYm8gRGFtIFNlbiwgbmh1bmcgb25nIGRhIHRoYW8gdGFjIGhvIGNobyBubyBiaWVu IGhvYSwgdGhlIGxhIG5vIHRodW9jIHZlIGR1IGFuIGtlIEhvIFRheSwgbWFjIHN1YyBtYSBkdW9p IGRhbi4gVGhhbmggdHJhIGNoaW5oIHBodSBkYW5nIGhvIGhhbyB0aGFuaCB0cmEgdG9hbiB0dXll bi4gDQpEL2MgTmd1eWVuIFRhbiBEdW5nLCBuZ3VvaSBub2kgcmF0IG1hbmggdmEgY3VvbmcgcXV5 ZXQgdHJvbmcgY2hvbmcgdGhhbSBuaHVuZywgY28gZGFtIHRoZSBoaWVuIGJhbmcgaGFuaCBkb25n IGN1IHRoZSBvIHZ1IGtlIEhvIFRheSBuYXkgaGF5IGtob25nPyBEbyBsYSBjaG8gdGhhbmggdHJh IHRvYW4gdHV5ZW4uDQoNCk9uZyBBbiBzYXUga2hpIHZlIGh1dSwgZGFuZyBsYSB0aG9pIGRpZW0g bm9uZywgZGUgdHJhbmggbGllbiBsdXksIG9uZyBUcmlldSBsZW5oIGNobyBvbmcgQW4gcGhhaSB2 YW5nIG1hdCBvIGNhaSBuZ28gNTkgTGFuZyBIYSByb2kgc2F1IGRvIGJpZW4gcmEgbnVvYyBuZ29h aSBtb3QgdGhvaSBnaWFuLCB2dWEgYW4gdG9hbiB2dWEgdGhheSBtYXQgb25nIGdpYWkgcXV5ZXQg c28gdGllbiBuZ29haSB0ZSBtYSBobyBjbyBkdW9jIGRvIGNhYyBkb2kgdGFjIG51b2MgbmdvYWkg aHVhIGNoaSAibGFpIHF1YSIgY2FjIGNvbmcgdHJpbmgsIGR1IGFuIG51b2MgbmdvYWkuLi4sIGd1 aSBvIG5nYW4gaGFuZyBudW9jIG5nb2FpIHRoaSBzbyBjYWkgbmd1eSBjbyBtb3QgbHVjIG5hbyBk byBxdW9jIHRlIG5vIHBob25nIHRvYSB0aGkgdG9pLiANClZpIHZheSBvbmcgbmdoZSBsb2kgb25n IFRyaWV1LCBsZW4gc2FuZyB0b2EgbmhhIGNodW5nIGN1IGNhbyBjYXAgMTcgdGFuZyBXaW5kb3cg Z2kgZG8gbW9pIGR1YSB2YW8gc3UgZHVuZyBtYSBjb24gZ2FpIG9uZyBkYW5oIHNhbiBtYXkgY2Fu IGRlIGRvLCB0aGUgbGEgdmllYyBvbmcgcmEgbnVvYyBuZ29haSBjbyBuaHUgY29tIGJ1YSBjdW5n IGtob25nIGFpIGJpZXQgZHVvYy4gT25nIEFuIGNoaSBheSBuYXkgdmllYyBvIG5oYSBzYXAgc3Vh IHhldCB4dSB2dSBOZ2EgdHUgVGhhbmggWHVhbiBkdW9uZyB2YW5oIGRhaSBJSUksIG9uZyBtYSBk aSB0aGkga2hvbmcgY28gYWkgImdpYXQgZ2lheSIgYm9uIHRvYSBhbiBraGkgeGV0IHh1LiBWYXkg bWEgZHVuZywga2hvbmcgY28gb25nLCBib24gbm8gY2hheSBsYW5nIGhldC4NCg0KVmUgb25nIExl IFF1eSBEb246DQoNClZ1IGRhbiBraGlldSBraWVuIGR1IGFuIGtlIEhvIFRheSB0YWkgY3VtIDMg WHVhbiBMYSBjbyBsaWVuIHF1YW4gZGVuIGRhdCBkaSB0aWNoIG1hIGNhYyBvbmcgbyBUaGFuaCBw aG8gY2hpZW0gcXVhIFQ3OSB2YSB0cnVvbmcgbmdoaWVwIHZ1IGdpYW8gdGhvbmcgdmFuIHRhaSwg Y2FwIHNvIGRvIGRlIHhheSBraGFjaCBzYW4uIE5odW5nIGRhIGNvIGN1b2MgZ2lhbiB4ZXAgZGUg Y2hpIHlldSBjYXUgZG9hbiB0aGFuaCB0cmEgbGllbiBuZ2FuaCB0aGFuaCB0cmEgcGhhbiBxdXkg aG9hY2ggZG9hbiBrZSBvIGN1bSAzIFh1YW4gTGEgdGhvaSwgcmllbmcgdmUgZGF0IGRpIHRpY2gg VDc5IGRhbmcgY2hpZW0gZ2l1IHRoaSBkb2FuIHRoYW5oIHRyYSBsaWVuIG5nYW5oIG5heSBraG9u ZyBkdW9jIGRvbmcgdmFvLCANCnZheSBsYSBubyBkdW9jIG5hbSB0cm9uZyB0YW0gdGF5IG9uZyBM ZSBRdXkgRG9uLCBvbmcgY3VuZyByYSBxdXlldCBkaW5oIHRoYW5oIGxhcCBkb2FuIHRoYW5oIHRy YSBsaWVuIG5nYW5oIGN1YSBUaGFuaCBwaG8sIHJvaSBzYWkgb25nIERhbmcgVmFuIFRyYWMsIFBo byB0aGFuaCB0cmEgSGEgTm9pIGNoYXkgdG9pIGNoYXkgbHVpLCAgdm8gdm8gdml0IHZpdCwgcm9p IHJhIG1vdCBrZXQgbHVhbiBjaG8gZGFuZyB0cnVvYyBsZW4gYmFvIEtpbmggdGUgJiBEbyB0aGkg cmFuZyAiVDc5IHN1IGR1bmcgZGF0IGRpIHRpY2ggbGEgaG9wIHBoYXAiLiANCkRlIGRhbiBoZXQg ZHVvbmcgZG9pIG51YSwgb25nIHJhIGxlbmggY2hvIGNhYyBiYW4gbmdhbmggY2h1YyBuYW5nIGN1 YSBUaGFuaCBwaG8gImxhbSB2aWVjIiB2b2kgQm8gVmFuIGhvYSB0aG9uZyB0aW4gKG5heSBsYSBW YW4gSG9hIFRoZSB0aGFvIHZhIER1IGxpY2gpIGRlIGNoaW5oIHN1YSBiYW4gZG8gZGkgdGljaD8g Tmh1bmcgYmF5IGdpbywgb25nIERvbiBjdW5nIHZlIG5vdCByb2kgZGlldSBuYXkgY28gbGFtIGR1 b2MgbnVhIGhheSBraG9uZz8gRGUgYW4gdG9hbiwgY2FjIG9uZyBuYXkgbGFpIHBoYWkgY2hpIG1h bmggdGF5LCBuaHVuZyB0aG9pIGJ1b2kgbmF5IGNoaSBkYXUgY28gcGhhaSBsYSBkZSBuaHUgbHVj IGNvbiB0YWkgY2h1Yy4NCg0KTmdvYWkgdmllYyB4YXkga2hhY2ggc2FuIHR1IG5oYW4gY29uIGNv IGNodXllbiBwaGFuIGxvIG1hdCB0aWVuIGRlIGNoaWEgY2hhYyBuaGF1LCANCmR1YSBjb25nIHR5 IHhheSBkdW5nIEhvbmcgSGEgdGh1b2MgVG9uZyBjb25nIHR5IHhheSBkdW5nIG5oYSBIYSBOb2kg dGhvYyB2YW8gZGUgDQpjaGllbSBjaG8gYmFuZyBkdW9jLiBUaGVvIG5odSBvbmcgUGhhbSBWYW4g VG90LCBjYW5oIHNhdCBkaWV1IHRyYSBjb25nIGFuIHF1YW4gDQpUYXkgSG8gZGEgbm9pIHZvaSBk YW4gbmFtIDIwMDQ6ICJraHUgZGF0IG5heSBjbyBzdWF0IGN1YSBvbmcgTmd1eWVuIFBodSBUcm9u ZyAtIA0KVXkgdmllbiBCbyBjaGluaCB0cmksIEJpIHRodSB0aGFuaCB1eSwgbmVuIGRhbiBvIGRh eSBkdW5nIGNvIG1hIGRvaSIuIA0KDQpPbmcgQ2h1IE5nb2MgVHVhdCwgbGFtIGNodSB0aWNoIGx1 YyBkYXQgZGkgdGljaCBiaSBiYW4gbm9pOiAiVGF5IER1b25nIGJhbiBkYXksIA0Ka2hvbmcgcGhh aSB0b2kgZGF1IiAoRHVvbmcgbGEgcGhvIGNodSB0aWNoIHBodSB0cmFjaCBkYXQgZGFpIHZhIHhh eSBkdW5nIGx1YyBkbykuIA0KTW90IGNhbiBibyB0dSBtaWVuIHRydW5nLCBraG9hbmcgbmFtIDIw MDMgcmEgSGEgTm9pIG5oYW4gY29uZyB0YWMgbW9pIHRhaSBibyBwaGFuIA0KdGhhbmggdHJhIG8g bW90IEJvIG5vLCBjaGFuIHVvdCBjaGFuIHJhbyB0aGUgbmFvIG1hIGJhcCB2YW8gZGluaCBtdWEg bW90IHN1YXQgZGF0IA0KbyBkYXksIG9uZyBiYW8gcm8gcmFuZyBuZ3VvaSB0cm9uZyBjb2kgbyBU NzkgZHVvYyB1eSBxdXllbiBkYSBjaGlhIHNvIGRvIHJhIGNobyB4ZW0gDQpyb2kgdGhlIG1hIHZh biBiaSBvbmcgYmFuIHRoYW4gbyBYdWFuIExhIGdhdCBkaSBraG9uZyBjaG8gbXVhLCB2aSB2YXkg b25nIGRhIG5oYW5oIGNob25nIHJ1dCB0aWVuIGRhdCBjb2MuDQoNClZlIG9uZyBCaSB0aHUgVGhh bmggdXkgUGhhbSBRdWFuZyBOZ2hpOg0KDQpWaWVjIHRoaSBjb25nIHhheSBraGFjaCBzYW46IE5h bSAyMDAzIGRpcCBTZWFnYW1lIG5ndW9pIHRhIGNobyB0aGkgY29uZyBkYW8gbW9uZywgDQpuaHVu ZyBsYWkgYmkgY2FjIGN1IHJhIG5nYW4gY2FuIG5lbiBraG9uZyBsYW0gZHVvYy4gTmdheSAxOC8x LzIwMDYgdGllcCB0dWMgbGFtIA0KZHVvaSBzdSBiYW8gdHJvIGN1YSBDb25nIGFuIHZhIHF1YW4g ZG9pIFF1YW4ga2h1IElJLiBLaGkgZGFuIHhvbmcgdmFvIGNhbiB0cm8ga2hvbmcgDQpjaG8gVDc5 IHRoaSBjb25nLCBjb25nIGJpbmggUXVhbiBraHUgSUkgZHVvYyBkaWV1IGRvbmcgdmUgZGEgZHVu ZyBkdWkgY3VpIHBoYW5nIHRoYW5nIA0KdmFvIG1hdCBkYW4sIGNodSB5ZXUgbGEgbmh1bmcgbmd1 b2kgZ2lhIGNhLiANCk5ndW9pIGRhbiBkYSBjaGF5IGxlbiBkZSBkb24gdHJ1YyB0aWVwIGNobyBk L2MgTmdoaSBsdWMgZG8gbGEgQm8gdHJ1b25nIFZhbiBob2EgVGhvbmcgdGluLiANClRoYW5oIHRy YSBCbyBWYW4gSG9hIFRob25nIHRpbiB4dW9uZyBuZ2F5LCByYXQgaGFuZyBoYWkgdmEgYmFvIHNh byBobyBsYWkgZGFtIHhhbSBwaGFtIA0KdmFvIGRpIHRpY2ggZGEgeGVwIGhhbmcgY2FwIHF1b2Mg Z2lhIHZhIGtob2FuaCB2dW5nIGJhbyB2ZSBuaHUgdGhlIG5heSwgaG9tIHNhdSBjaG8gcmEgDQpu Z2F5IGJhaSB0cmVuIGJhbyB2YW4gaG9hOiAiSGEgTm9pISBzYW8gbGFpIGNhcCBzbyBkbyBuaHUg dGhlICIuIA0KRG8gVGhhbmggdHJhIFZhbiBob2EgeHVvbmcgbGFtIHZpZWMgdm9pIGNoaW5oIHF1 eWVuLCBwaGF0IGhpZW4gcmEgaG8gY2FwIHNvIGRvIGNobyBUNzkgDQp2YSBjaG8gY2EgdHJ1b25n IGt5IHRodWF0IG5naGllcCB2dSBHVFZUIG11YyBkaWNoIGxhIGxhbSBjYWkgZ2F5IHNhbiBzYW5n IGRhbiBhcCBkYW4gbmV1IA0KY29uIGRhbSBkYXUgdHJhbmggZG9pIGRhdCBkaSB0aWNoIGtoaSBo byB4YXkga2hhY2ggc2FuLiBUdW9uZyBkZW4gZGF5IGxhIHNlIGdpYWkgcXV5ZXQgDQpkdW9jIHZp IGNodWMgbmFuZyBCbyBWYW4gaG9hIFRob25nIHRpbiBjb24gZ2kuIA0KTmh1bmcgdGhhdCBraG9u ZyBtYXkgY2hvIGRhbiB2aSBubyBsYWkgdHJ1bmcgdmFvIGRpcCB0ZXQsIG11YSBxdWEgYmlldSwg cXVhIHRoYXQsIHF1YSANCmR1dCBsb3QgbGFuIGxvbi4gVmF5IGxhIEhhIE5vaSBsYWkgImNoYXki LiBWdWEgdGV0IHhvbmcsIGRhbiBsZW4gZ2FwIG9uZyBDaGFuaCB0aGFuaCANCnRyYSB0aGkgY2Fp IG5oaWV0IHRpbmggdHJ1b2MgdGV0IGRhIGJheSBiaWVuIGRhdSBoZXQsIHRoYWkgZG8gY3Ugbmh1 IGhvIGNodWEgdHVuZyBnYXAgDQpkYW4gdmEgY2h1YSBoZSBiaWV0IHZpZWMgbmF5IGJhbyBnaW8s IG5odW5nIGhvIGN1bmcgYmFvIGRhIGNvbmcgdmFuIGNobyBIYSBOb2kgZ2lhaSBxdXlldCByb2ku IA0KTmd1b2kgZGFuIGdhbmcgaG9pIGxhbSB0aGkgZHVvYyBuaHVuZyBuZ3VvaSB0cm9uZyB0aGFu aCB0cmEgYmFvICJjaHVuZyB0b2kgY2hpIGJpZXQgbmdoZSANCnRoZW8gbGVuaCBCbyB0cnVvbmci IChQaGFtIFF1YW5nIE5naGkpLiANCkR1bmcgbW90IGNhaSwgc2F1IGRhaSBob2kgRGFuZywgZC9j IE5naGkgdmUgbGFtIEJpIHRodSBUaGFuaCB1eS4gTHVjIG5heSBkYW4gbW9pIHRlIG5ndWEgDQpu Z3VvaSByYSB2YSB0dSB0cmEgbG9pIGNhdSBob2kgdGFpIHNhbyBibyBWYW4gaG9hIFRob25nIHRp biB0cnVvYyB0ZXQgdGhpIGtoYWMsIHNhdSB0ZXQgZGFuaCBiYWkgbG8uDQpWYXkgbGEgdHJ1b2Mg ZGF5IHRyZW4gY3VvbmcgdmkgQm8gdHJ1b25nIGNodXllbiBuZ2FuaCBkL2MgZGF5IHZlIGNobyBI YSBOb2kgZ2lhaSBxdXlldCwgDQpuaHVuZyBiYXkgZ2lvIGQvYyBkdW5nIG8gdmkgdHJpIGNhbyBu aGF0IEhhIE5vaSByb2kgZC9jIHRpbmggc2FvIGRheT8NCg0KVmUgb25nIEJpIHRodSBRdWFuIHV5 IFRheSBIbyBWdSBIb25nIEtoYW5oIGxlbiBjaHVjIHBobyBjaHUgdGljaCBVQk5EIFRQSE46DQoN Ck9uZyBOZ3V5ZW4gVGhlIFRoYW8sIHZpIGNodSB0aWNoIG1vaSwgc2UgbGFtIGR1b2MgZ2kga2hp IG9uZyBWdSBIb25nIEtoYW5oIHBobyBjaHUgdGljaCBsYWkgY2hpbmggbGEgbmd1b2kgZGEgdGh1 YyB0aGkgdGljaCBjdWMgeSBkbyBjdWEgb25nIERvIEhvYW5nIEFuIHZhIG9uZyBMZSBRdXkgRG9u IHRyb25nIHZpZWMgY3VvbmcgY2hlIEdQTUIgdHJhaSBwaGFwIGx1YXQgbGFpIGNvbiBkbyBsb2kg Y2hvIGRhbiBuaHUgbGEgbyBjdW0gMyBYdWFuIExhIHZ1YSBxdWEuIA0KVnVhIHllbiB2aSBpdCwg bmdheSBvbmcgS2hhbmggZGEga3kgY29uZyB2YW4gdHJhaSBsdWF0IGRpbmggY2hpIHRoaSBoYW5o IGFuIHBodWMgdGhhbSwgYmFvIGtlIGNobyBtb3QgY29uZyB0eSBUTkhIIHh1IG5vIHZhIGNoaWVt IGRhdCBtdW9uLiBDaGkgdGhpIDIwL0NULVRVIGxhaSBnaWFvIGNobyBvbmcgVnUgSG9uZyBLaGFu aCBjaGkgZGFvIHRoYW5oIGxhcCB0byBjb25nIHRhYyBkZSBnaWFpIHF1eWV0IGR1dCBkaWVtIG5o dW5nIHZ1IGtoaWV1IGtpZW4gY29uIHRvbiBkb25nIGJheSBsYXUgbmF5IHRoaSBzdSB2aWVjIHJv aSBzZSBkaSB0b2kgZGF1PyANClZvaSBkYW5oIG5naGlhIEJpIHRodSBxdWFuIHV5IFRheSBIbywg b25nIHJhIHZhbiBiYW4gY2hpIGRhbyBiYW8ga2UgY2hvIFQ3OSBxdWFuIGtodSBJSSBjaGllbSBk YXQgZGkgdGljaCBjaHVhIFZhbiBOaWVuLSBkaW5oIFh1YW4gVGFvIFNvIGRlIHhheSBraGFjaCBz YW4gdHUgbmhhbi4gU2F1IGtoaSB0aHVjIGhpZW4geG9uZyB2aWVjIGN1b25nIGNoZSBDdW0gMyBY dWFuIExhIHZhIEJlbiBjaHVtIFF1YW5nIEFuLCB2b2kgdGhhbmggdGljaCBuYXkgb25nIGR1b2Mg ZHVhIGxlbiBsYW0gcGhvIGNodSB0aWNoIHRoYW5oIHBobywgDQp0aHVjIHJhIGxhIGRvIGJvIHNh dSBjdWEgY2FpIGtob2kgeGEgaG9pIGRlbjogQm9uZyAiRGUiLCBWaW5oICJDaGF0IiwgVGhhbmgg ImNobyIgdGhvbmcgcXVhIE5ndXllbiBQaHVjIFF1YW5nLCBUcnVvbmcgY29uZyBhbiBRdWFuICh0 cm9uZyB2dSBhbiBOYW0gQ2FtIHRydW9jIGRheSBjbyBkYW5nIGJhbyBuaGlldSB2ZSAiY2FwIGJh aSB0cnVuZyBCb25nICJEZSIgUXVhbmcgIlJhdSIsIEJvIENvbmcgYW4gdGh1YSBiaWV0KSB2YSBr aG9pIHhheSBkdW5nIGN1YSB0aGFuaCBwaG8gZGEgdHVuZyB0aWVuIGRlIG11YSBjaHVjLCBjb3Qg ImNhaSBjYW0iIEtoYW5oIHZhbyBjaHVjIHZ1IG5heSwgbmVuIGtoaSB0aGFuaCBjb25nIG1vaSBj byBjaHV5ZW4gbGFuaCBkYW8gVG9uZyBjb25nIHR5IHhheSBkdW5nIEhhIE5vaSBrZW8gbmhhdSBs ZW4gYmlldCBwaHUgQW4gUGh1IHRhbiBUYW0gRGFvIGFuIG11bmcgdmUgc3Uga2llbiBuYXkgdmEg eGF5IHJhIHZpZWMgZGFuaCBiYWMgYmkgY29uZyBhbiBiYXQuIA0KVmllYyBzYXAgeGVwIGNhbiBi byBjaG8gSGEgTm9pIHZhIFRheSBIbyB0aGF0IGxvZ2ljIHZhIGtoZXAga2luOiBRdWFuZyAiRGF1 IHRvIiBuZ2F5IHNhdSBkbyBjdW5nIG1hbiBoYW4gY2h1YyB0cnVvbmcgY29uZyBhbiBRdWFuIChk YSAyIGtob2EpIG5lbiBsYWkgZHVvYyBjYWkgc2FuZyBsYW0gcGhvIGJpIHRodSBxdWFuIHV5IFRh eSBIbyAhDQoNClN1IHhlcCBkYXQgImNhbiBibyIga2lldSBuYXkgY3VhIGNhYyBvbmcgcXVhbiBs YSBuZ3V5ZW4gbmhhbiBjdWEgbW9pIG5ndXllbiBuaGFuIGtoaSBjYWkgZ29pIGxhICJ2YW4gaG9h IHBob25nIGJpIiCWIGNhaSB2YW4gaG9hIGNoYXkgliBkbyBvbmcgTmd1eWVuIFF1b2MgVHJpZXUs IEJvIHRydW9uZyBCbyBZIHRlIGhvcCB0aHVjIGhvYSByYSwgY28gdGFjIGR1bmcgZHVuZyBuaHUg Y2FpIHRyaWV0IGx5IGN1YSBvbmcgdHJ1bSBOYW0gQ2FtIGRhIG5vaTogImNhaSBnaSBraG9uZyBt dWEgZHVvYyBiYW5nIHRpZW4gdGhpIHBoYWkgbXVhIGR1b2MgYmFuZyByYXQsIHJhdCwgcmF0IG5o aWV1IHRpZW4hIi4NCg0KTWEgdm8ga2hvYyB0aGFuIGtldSBvbmcgTmd1eWVuIE1hbmggQ3Vvbmcs IGNodSB0aWNoIFF1YW4gdGF5IEhvIHRob2kgZ2F5IHRvaSBhYzoNCg0KS2hvYW5nIHRoYW5nIDMt IDQvMjAwNywgdm8gQ3VvbmcgYmkgY2hldCB1bmcgdGh1IG8gdHVvaSA0OS4gRGVtIGRlbSwgdm8g Q3VvbmcgaGllbiB2ZSBraG9jIGxvYyBrZXUgdGhhbi4gQ3VvbmcgbmdoaSByYW5nIHZvIG1vaSBj aGV0IG1hIG1pbmggZGkgY2FwIGJvIG5lbiBjbyBheSBnaGVuLiANCg0KTmh1bmcgYmVuIHZvIGto b25nIGNobyBsYSB2YXkgYmVuIGRpIG5obyBkZW4gdGhheSBnb2kgaG9uIGdpb2kgbmhhdC4gVm8g Q3VvbmcgaGllbiBsZW4ga2hvYyBsb2MgYW0geSwgYmFvIHJhbmcgeHVvbmcgZHVvaSBiaSBsb3Qg aGV0IHF1YW4gYW8sIGJpIHRyYSB0YW4gaGFuZyBuZ2F5IGRhdSBkb24gbGFtLiANCkhvaSBuZ3V5 ZW4gbmhhbiB0aGkgYmFvIHRhaSBhbmggQ3Vvbmcga3kgYmFuIGRpIGhhaSBuZ2hpYSB0cmFuZzog RG9uZyBCYWkgdmEgWHVhbiBMYS4gTGFpIGJhbiBjYSBkYXQgZGluaCBjaHVhIG51YSB2YSBjdW9w IHJhdCBuaGlldSBkYXQgY3VhIGRhbi4gTmh1bmcgbWVuaCBkdW9uZyBjdWEgQ3VvbmcgZGFuZyBt YW5oIGxhbSBtYSBraG9uZyBsYW0gZ2kgZHVvYyBtb2kgYmF0IHZvIGRpIHRoYXkuIFJhbmc6IE5l dSBhbmggQ3VvbmcgY29uIHRodW9uZyBlbSB0aGkgY2hvIGVtIG1vdCBpdCBxdWFuIGFvIHZhIGRv IGR1bmcuIEdpYSBkaW5oIHZvIHZlIHRodWF0IGxhaSBjaG8gQ3VvbmcgdmEgZGFuIGR1bmcgZ2F5 IHRvaSBhYyBudWEuIA0KTmdheSBob20gc2F1IEN1b25nIHNhaSBuZ3VvaSBjaG8gMiB4ZSBvIHRv IHF1YW4gYW8sIGRvIGR1bmcsIHZhbmcgbWEgcmEgbmdoaWEgdHJhbmcgZG9uZyBiYWkgZGUgaG9h IGd1aSBjaG8gdm8uIE5odW5nIEN1b25nIGtob25nIHR1IGRpIG1hIHRodWUgYm9uIGN1dSB2YW4s IGNodWEgcmEgZGVuIG5vaSB0aGkgdnVvbmcgZHVvbmcga2hvbmcgdmFvIGR1b2MsIG5lbiBubyBk byB0dW5nIHRvZSByYSBuZ29haSBkb25nIG1hIHZlIGNodW5nIG5vIGN1bmcgc28gbGFtLCBob2kg cmEgbmhhbiBkYW4gbW9pIGJpZXQgY2h1eWVuLiANCkNvbiBDdW9uZyB0aGkgdHUgZG8gYmF0IGN1 IHZhbiBiYW4gZ2kgbWFuZyB0aW5oIHRvaSBhYyBuaHUgbGVuaCBjdW9uZyBjaGUuLi4gbGEgQ3Vv bmcgdGh1YSB1eSBxdXllbiBjaG8gVGhhaSBWYW4gSGEsIFBobyBjaHUgdGljaCBreSBoZXQuIERl biBuYXkgdmFuIGRhbmcgaG9uIGJheSBwaGFjaCBsYWMuIENhYyBjdSBiYW8gdG9pIGN1b3AgZGF0 IGRpbmggY2h1YSBsdSBjaHVuZyBubyB0aGUgbmFvIGN1bmcgYmkgcXVhIGJhbyB0aG9pLg0KDQpD YWMgb25nIGNodSB0aWNoIHBodW9uZyBYdWFuIExhIE5ndXllbiBYdWFuIERpbmggdmEgUXVhbiBO Z29jIEFuaDogDQoNClRhbmcgbG9wIHF1YW4gY2h1YyBjdWEgVGhhbmggcGhvLCBjdWEgcXVhbiBs YSBuaHUgdmF5IHRoaSBsb3AgcXVhbiBwaHVvbmcsIHF1YW4geGEgdHJvIHRoYW5oIG1vdCBsdSBk YXUgdHJhdSBtYXQgbmd1YSBsYSBkdW9uZyBuaGllbi4gQ2FwIGNvIHNvIHBodW9uZyB4YSBkdW9j IGNhcCB0cmVuIHRoYSBub2kgY2hlIGNoYW4gbmVuIGNodW5nIHRodWMgc3UgbGEgYm9uIHNhaSBu aGEgY2hhbmcgY29uIG5lIHNvIGdpIGFpLiANCk8gcGh1b25nIFh1YW4gTGEgYWkgY2hhIGJpZXQg Tmd1eWVuIFh1YW4gRGluaCBsYSBtb3QgdGVuIGN1b25nIGhhbyBtb2ksIHR1IGJpIHRodSBzYW5n IGxhbSBjaHUgdGljaCBhbiBkYXQgZGVuIGtodW5nIGtoaWVwLCBtb2kgbGFtIGR1b2MgbnVhIGto b2EgY2h1IHRpY2ggdGhvaSBzbyB0aWVuIGtpZW0gZHVvYyBkYSBoYW5nIHRyYW0gdHkgZG9uZywg c28gZGF0IGRhaSB0aGkgdm8gYmllbi4gDQpWbyBEaW5oIHZlbmggdmFvIHR1eWVuIGJvIHZvaSBk YW4gbGFuZyBvIGRheSByYW5nIDogImtoaSBuYW8gSG8gVGF5IGNhbiBoZXQgbnVvYyB0aGkgbmhh IERpbmggbW9pIGhldCB0aWVuIiwgbXVvbiBkYXQgbyBkYXUgbGEgZHVvYyBvIGRheSwga2hvbmcg dHUgY2EgZGF0IGNodWEsIGhvbiAyMDBtMiBkYXQgY3VhIGNodWEgS2hhaSBOZ3V5ZW4gbyBRdWFu IExhIERpbmggY3VuZyBjaGllbSwgbmF5IERpbmggbGFpIGNoaWVtIG5nb3QgbmdoaW4gbWV0IHZ1 b25nIGRhdCBydW9uZywgZGF0IGFvIHJhdSBtdW9uZyBkZSB4YXkgbmVuIG5nb2kgbmhhIDcgdGFu ZyBuZ2F5IGRhdSBsYW5nIFF1YW4gTGEgWGEsIHNhdSB0cnUgc28gcXVhbiBUYXkgSG8sIGRvbiBk YXUgbWF0IHRpZW4gZHVvbmcgdmFuaCBkYWkgSUkgcm9uZyA2Nm0gZGkgY2F1IE5oYXQgVGFuIHNh cCB4YXkuIA0KS2hvbmcgbmh1bmcgdGhlIERpbmggY29uIGxvaSBkdW5nIGNodWMgcXV5ZW4gZGUg bHVhIGRhbyB0cm9uZyB2aWVjIG11YSBiYW4gZGF0IGRhaSBjaGllbSBkb2F0IGN1YSBiYSBOZ3V5 ZW4gVGhpIEJpY2ggRHVuZywgbyA1MiBQaGFuIERpbmggUGh1bmcsIEhhIE5vaSAxNzQgY2F5IHZh bmcuIFRoYW5oIHRyYSBUaGFuaCBwaG8gSGEgTm9pIGRhIGtldCBsdWFuLCBVQk5EIFRQSE4gZGEg a3kgcXV5ZXQgZGluaCBjaHV5ZW4gaG8gc28gY29uZyBhbiBIYSBOb2kga2hvaSB0by4gDQpUaGUg bWEgaXQgbmdheSBzYXUsIHRhdCBjYSBsYWkgbmd1b2MgbGFpLCBEaW5oIGRhIGNoYXksIGNhdSBr ZXQgbmdheSB2b2kgb25nIERvIEtpbSBUdXllbiBwaG8gZ2lhbSBkb2MgY29uZyBhbiB0aGFuaCBw aG8gSGEgTm9pIGRlIG9uZyBuYXkgYmF5IG11dSBjaG8gRGluaCBsYXQgbGFpIGJhIER1bmcgdmEg ZHVhIHJhIGRlIHh1YXQgbW9pIGxhIERpbmgga2hvbmcgZGFuZyB4dSBseSBiYW5nIGJpZW4gcGhh cCBoaW5oIHN1IQ0KDQpDaHUgdGljaCBRdWFuIE5nb2MgQW5oIG5ndW9pIGtlIG5oaWVtIE5ndXll biBYdWFuIERpbmggbGFpIGNvbiBsdXUgbWFuaCBkZXUgZ2lhIGhvbiBkYSBkdW5nIHJhIGJhbyBj aGUgY2hvIE5nbyBUaGkgSG9hLCBjYW4gYm8gZGlhIGNoaW5oIHRyYW4gbG90IGN1YSBvbmcgTmd1 eWVuIEhvbmcgTGluaCAxMDAgdHJpZXUgZG9uZyB0cm9uZyB2aWVjIG1hbmcgZ29wIGRpZW4gdGlj aCBuaGEgb25nIExpbmggKGRhIG11YSB0dSBsYXUpIHZhbyBkaWVuIHRpY2ggY3VhIGNodSBjdSBk ZSBjYXAgc28gZG8gY2hvIGNodSBjdSB2YSBjaGluaCBiYSBIb2EgZGlhIGNoaW5oIGxhaSBkdW5n IHJhIGdvaSB5IHRydW5nIGdpYW4gZGUgdGFjaCBzbyBkbywgY2hpZW0gMTAwIHRyaWV1IGRvbmcs IG9uZyBMaW5oIHZpIHRoYW4gY28gdGhlIGNvIG8gY2FpIGRpYSBwaHVvbmcgbmF5IG5lbiBwaGFp IGRpIG11b24gc28gZG8gY3VhIGJhbiB2YXkgdGhlIGNoYXAgbm9wIGR1IDEwMCB0cmlldSwgcm9p IGNvbiBjYWMgdGh1IHRpZW4ga2hhYyBudWEgY3VuZyBkYSBwaGFpIG1hdCBuZ290IG5naGV0IDE1 MCB0cmlldSBkb25nIHJvaS4gDQpPbmcgUGhhbSBEaW5oIFBob25nLCBUcnVvbmcgY29uZyBhbiBw aHVvbmcgWHVhbiBMYSBjdW5nIGJhdSB2YW8gdnUgb25nIExpbmggbWEga2llbSBjaGFjLCBtb2kg Y2h1IGt5IFBob25nIG5nYW5nIG5oaWVuIGxheSA1IHRyaWV1IGRvbmcsIG1hIGt5IGRpIGt5IGxh aSB0aGkga2hvbmcgYmlldCBiYW8gbmhpZXUgbGFuLiANClJvaSBobyBzbyBraGkgbGVuIGRlbiBR dWFuIHRoaSBkaWEgY2hpbmggUXVhbiBsYWkgZG9pIDUwIHRyaWV1IG51YS4gRGVuIGRheSBvbmcg TGluaCBraG9uZyBjaGl1IG5vaSwgZGFuaCBwaGFpIGRlIGRvbiB0byBjYW8uIERhIGdhbiAzIG5h bSBuYXkgbG9hbmggcXVhbmggbHVhbiBxdWFuIHR1IGNvbmcgYW4gc2FuZyB0aGFuaCB0cmEsIHR1 IHRoYW5oIHRyYSBkZW4gdXkgYmFuIHR1IHNvIGxlbiBCbywgdHUgQm8gdmUgU28uLi4ga2hvbmcg YmlldCBkYXUgbWEgbGFuLiANCkNhaSB0aW5oIHRyYW5nIG5odSB0aGUgbmF5IGRheSByYXkgbW9p IGNoaSB0cm9uZyBjYWkgcGh1b25nIG5heSB0aG9pLiBLaWV1IGxhbSBuYXkgY3VhIGJhIEhvYSBE aWEgY2hpbmggbGEgcGhvIGJpZW4gZGVuIG1heSBjaHVjIHRydW9uZyBob3Agcm9pLCBuaHVuZyBz byBydXQgZGF5IGRvbmcgcnVuZyBuZW4gY3UgYWkgZG9uZyBkZW4gYmEgSG9hIGRpYSBjaGluaCBs YSBuZ3VvaSB0YSBkYXAgZGkgbmdheS4gQ2h1YSBrZSBsYSBkYXQgbm9uZyBuZ2hpZXAgY2FjIHF1 YW4gY2h1YyB2YSB4YSBob2kgZGVuIG5odSBCb25nICJCdW9pIiwNCiBUaGFuaCAiY2hvIiwgUXVh bmcgIkRhdSB0byIgbXVhIHJlIGN1YSB4YSB2aWVuLCBub25nIGRhbiBkZSBiaWVuIHRoYW5oIHRo byBjdSwgZGllbiBoaW5oIG5oYXQgbGEgdnUgb25nIER1b25nLCBwaG8gY2h1IHRpY2ggVUJORCBx dWFuIFRheSBIbyBnYSBtdWEgZGF0IG5vbmcgbmdoaWVwIGN1YSBiYSBUcmFuIFRoaSBUaGluaCAo dHVjIFNhY2gpIG5nYXkgc2F1IHRydSBzbyBVQk5EIHF1YW4gVGF5IEhvIGRlIG9uZyBjdW5nIHZv aSBjYWMgcXVhbiBjaHVjIGN1YSBRdWFuIGNoaWEgbmhhdSB4YXkgbmhhIGNhbyB0YW5nIHZhIGNh cCBzbyBkbyByYXQgZGUgZGFuZyAhIA0KVGF0IGNhIGRvbiB0aHUgdG8gY2FvIGhhbmggdmkgdGhh bSBuaHVuZyBzYWkgdHJhaSBjdWEgY2FjIHF1YW4gY2h1YyBvIGRheSBkZXUgYmkgZGltIGRpIGto b25nIGNvIGNvIHF1YW4gbmFvIGdpYWkgcXV5ZXQgaG9hYyBnaWFpIHF1eWV0IHRoaSBuaHUgdHJ1 b25nIGhvcCBvbmcgTmd1eWVuIEhvbmcgTGluaCEuIEhpZW4gbmF5IG5oYW4gZGFuIFh1YW4gTGEg ZGFuZyBjaHV5ZW4gdGF5IG5oYXUgZG9jIGNhaSBkb24gdG8gY2FvIGJhIE5nbyBUaGkgSG9hIC0g Y2FuIGJvIGRpYSBjaGluaCBwaHVvbmcgWHVhbiBMYSB2YSBiYSBOZ28gVGhpIEhhbmggLSBUcnVv bmcgQmFuIGtpZW0gdHJhIFF1YW4gdXkgZG9pIHZvaSBjYXAgdHJlbiB0aGkgZHVuZyB0aGFuIHhh Yywgdm9uIHR1IGNvIGRlIGRhdSB0dSBjaG8gY2FjIGFuaCBsYW5oIGRhbyBjdWEgUXVhbiwgY3Vh IFRoYW5oIHBoby4gDQpLaG9uZyBidWEgdGllYyBuYW8gY3VhIGNhYyBxdWFuIGNodWMgbGEga2hv bmcgY28gbWF0IGhhaSBiYSBuYXksIHNhdSBuaGF1IG5oZXQgY29uIGRpIG8ga2UsIG5oYSBuZ2hp IG51YSBjaHUuIENhdSBrZXQgdm9pIFF1YW4gTmdvYyBBbmgsIENodSB0aWNoIFVCTkQgcGh1b25n IFh1YW4gTGEgZGUgYW4gY2hhbiBjdW9wIGRhdCBjdWEgZGFuLCBiYXkgcmEgZHUgdHJvIG5odSBj YXAgbmhhbSBzbyBkbyBkZSBzYXUgZG8gbXVvbiB0YWNoIHRoaSBjaGkgdGllbiByYS4gQmFuIGNh IGdhbiAxLjAwMG0yIGRhdCBzYW4ga2hvIGhvcCB0YWMgeGEgdm9pIGRhbmggbmdoaWEgY2hvIHRo dWUgMzAgbmFtLg0KDQpPbmcgTmd1eWVuIFRoZSBUaGFvIG5oYW4gbmhpZW0gdnUgcmF0IG5hbmcg bmUgZGFuZyBkdW5nIHRydW9jIHRhbmcgdGFuZywgbG9wIGxvcCBjYWMgbG9haSBjYW4gYm8sIHF1 YW4gY2h1YywgbmhhIGxhaSBuaHUgYm9uIGNodW5nIG1hIHRvaSBzbyBibyBwaGFjIGhvYSB0cm9u ZyB0aHUgbmF5IHRoaSBzZSBwaGFpIGxhbSB0aGUgbmFvPyBEaWVuIGhpbmggbmhhdCBsYSB2dSA1 LjAwMG0yIGRhdCB2dW9uIHRodSBUaHUgTGUgc2FpIHBoYW0gZGVuIG5odSB2YXkgdHJ1b2MgbWF0 IG9uZyBQaGFtIFF1YW5nIE5naGksIG5ndW9pIGNvIGNodWMgdnUgY2FvIG5oYXQgdGhhbmggcGhv IG5vIHZhbiBiaW5oIHRoYW4gbmh1IGtob25nLCBtYWMgZHUgZGVuIG5heSBvbmcgQmkgdGh1IHRo YW5oIHV5IG5heSBkYSB0aGF5ICh2YSBkYSBub2kpIHRhdCBjYSBkZXUgZG8gY2FuIGJvLCB0dSB0 byBjaHVjIG1hIHJhIGNhICENCg0KVHJ1b2MgdGluaCBoaW5oIGhpZW4gbmF5IGR1IG5odSB0aGUg bmFvIG5ndW9pIGRhbiBvIGRheSB2YW4gbmluIGxvbmcgY2hvIGRvaSwgdmFuIHRpbiB0dW9uZyBv IG5odW5nIG5ndW9pIGR1b2MgZ2lhbyB0cm9uZyB0cmFjaCBsb24gdHJ1b2MgdmFuIG1hbmcgY3Vh IHF1b2MgZ2lhIGRhbiB0b2MuIFRoYW0gbmh1bmcga2hvbmcgdGhlIGxhIG5odW5nIG5ndW9pIGRh bi4gVmF5IG1hIGQvYyBUcnVvbmcgVmluaCBUcm9uZywgbmd1b2kgZHVvYyBEYW5nIGdpYW8gdHJv bmcgdHJhY2ggY2hpIGh1eSB2aWVjIGNob25nIHRoYW0gbmh1bmcgliBjaG9uZyBnaWFjIG5vaSB4 YW0gliBsYWkgdHV5ZW4gYm8gY2hvbmcgdGhhbSBuaHVuZyBwaGFpIHR1IHR1LiBUYSBoaWV1IHRo ZSBuYW8gbGEgdHUgdHUgZGF5ID8gR2lhYyBkZW4gbmhhIG1hIGN1IHR1IHR1IHU/DQoNClRyZW4g ZGF5IHRvaSBjaGkgbmV1IGR1bmcgbmh1bmcgZ2kgbGEgc3UgdGhhdCBkZSB0YXAgaG9wLCBwaGFu IGFuaCBjdW5nIGNhYyBkb25nIGNoaSBiaWV0LCB4ZW0geGV0LCB4dSBseSB2YSBjbyBiaWVuIHBo YXAgY2hhbiBjaGluaCBsYWkgVG8gY2h1YyBEYW5nIGN1bmcgbmh1IGJvIG1heSBuaGEgbnVvYyBk YW5nIHJhdCBsYSB0aGFtIG5odW5nLCBuZ2F5IHRhaSBIYSBOb2ksIHRhaSBUYXkgSG8gbmF5Lg0K DQpLaW5oIHRodQ0KVHJhbiBWYW4gVHJhbg0KWHVhbiBMYSwgVGF5IEhvLCBIYSBOb2kNCg0KKioq KioNClRhaSBsaWV1IHRoYW0ga2hhbw0KDQpDT05HIEhPQSBYQSBIT0kgQ0hVIE5HSElBIFZJRVQg TkFNDQpEb2MgbGFwIJYgVHUgZG8gliBIYW5oIHBodWMNCg0KQk8gQ09ORyBBTg0KU28gMjE5OSBD Vi9CQ0EoVjExKQ0KDQpIYSBOb2ksIG5nYXkgNyB0aGFuZyAxMiBuYW0gMjAwNQ0KDQpLaW5oIGd1 aTogRC9jIEdpYW0gZG9jIENvbmcgYW4gVFAgSGEgTm9pDQoNCkJhbyBDb25nIGFuIHRoYW5oIHBo byBIbyBDaGkgTWluaCBzbyByYSBuZ2F5IDgvMTEvMjAwNSBkYW5nIGJhaTogIkR1IGFuIHhheSBk dW5nIGhhIHRhbmcga3kgdGh1YXQgeHVuZyBxdWFuaCBIbyBUYXk6IFRoYXQgdGhvYXQgbmhpZXUg dHkgZG9uZyIgVGllcCBkbyBuZ2F5IDI5LzExIHZhIG5nYXkgMy8xMi8yMDA1IGRhbmcgYmFpOiAi SGEgTm9pOiBBaSBodW9uZyBsb2kgaGFuZyB0cmFtIHR5IGRvbmcgdHUgZHUgYW4gZGF1IGdpYSBr aHUgZGF0IDEsMzg4NSBoYSB0YWkgcGh1b25nIFF1YW5nIEFuIi4NCk5vaSBkdW5nIGJhaSBiYW8g cGhhbiBhbmggdmUgc2FpIHBoYW0sIHRpZXUgY3VjIHZhIGNvIGRhdSBoaWV1IHRoYW0gbmh1bmcg bG9uIG8gZHUgYW4geGF5IGR1bmcga2UsIGR1b25nIGJhbyBxdWFuaCBIbyBUYXksIHF1YW4gVGF5 IEhvLCBUUCBIYSBOb2kuIER1IGFuIGNvIHRvbmcga2luaCBwaGkgaGFuZyBuZ2FuIHR5IGRvbmcs IG5odW5nIHNhaSBwaGFtIHRpZXUgY3VjLCB0aGF0IHRob2F0IGhhbmcgdHJhbSB0eSBkb25nLi4u IEJhbyBraWVuIG5naGkgY2FjIGNvIHF1YW4gYmFvIHZlIHBoYXAgbHVhdCBzb20gdmFvIGN1b2Mg ZGUgZGlldSB0cmEgbGFtIHJvLg0KDQpOZ2F5IDkvMy8yMDA1LiBCbyBkYSBjbyBkaWVuIHNvIDQ0 LCBjaGkgZGFvIENvbmcgYW4gY2FjIGRpYSBwaHVvbmcgY2h1IGRvbmcgbmFtIHRpbmggaGluaCBj YWMgY29uZyB0cmluaCB4YXkgZHVuZyBjbyBiYW4gbyBkaWEgcGh1b25nIGRlIGtpcCB0aG9pIHBo YXQgaGllbiwgZGlldSB0cmEsIHh1IGx5IGNhYyBzYWkgcGhhbSwgdGlldSBjdWMuIFZ1IHZpZWMg ZG8gYmFvIENvbmcgYW4gVFAgSG8gQ2hpIE1pbmggcGhhbiBhbmggbmh1IHRyZW4gbGEgcmF0IG5n aGllbSB0cm9uZy4gDQpMYW5oIGRhbyBCbyBkZSBuZ2hpIGQvYyBHaWFtIGRvYyBDb25nIGFuIHRo YW5oIHBobyBIYSBOb2kgY2hpIGRhbyBraWVtIHRyYSwgeGFjIG1pbmggdmEgc29tIGJhbyBjYW8g TGFuaCBkYW8gQm8uDQoNCktUL0JPIFRSVU9ORyBCTyBDT05HIEFODQpUaHUgdHJ1b25nDQooZGEg a3kpDQpUaHVvbmcgdHVvbmcgTGUgVGhlIFRpZW0NCk5vaSBuaGFuDQotIE5odSB0cmVuIGRlIHRo dWMgaGllbg0KLSBEL2MgQm8gdHJ1b25nKGRlIGIvYykNCi0gQ2FjIGQvYyB0aHUgdHJ1b25nDQot IEx1dSBWMTEgKFA3KQ0KDQpodHRwOi8veWtpZW4ud29yZHByZXNzLmNvbS8yMDA3LzEwLzEwL3Ro JUM2JUIwLXBoJUUxJUJBJUEzbi0lRTElQkElQTNuaC12JUUxJUJCJTgxLWNhYy12JUUxJUJCJThC LWxhbmgtZCVFMSVCQSVBMW8tYyVFMSVCQiVBN2EtdHBoYS1uJUUxJUJCJTk5aS1uZ3V5JUUxJUJC JTg1bi1xdSVFMSVCQiU5MWMtdHJpJUUxJUJCJTg3dS1kJUUxJUJCJTk3LWhvYW5nLWFuLWxlLXF1 eS1kb24tdmEtcGglRTElQkElQTFtLXEvIChCYW8gQ29uZyBhbiB0aGFuaCBwaG8gSG8gQ2hpIE1p bmggc28gcmEgbmdheSAyOS8xMSB2YSAzLzEyLzIwMDUpDQoNCkhhIE5vaTogQWkgaHVvbmcgbG9p IGhhbmcgdHJhbSB0eSBkb25nIHR1IGR1IGFuIGRhdSBnaWEga2h1IGRhdCAxLDM4ODUgaGEgdGFp IHBodW9uZyBRdWFuZyBBbiANCg0KaHR0cDovL3lraWVuLndvcmRwcmVzcy5jb20vMjAwNy8wOS8x Ni92JWUxJWJiJTgxLW9uZy1kJWUxJWJiJTk3LWhvYW5nLWFuLW5ndXllbi1waG8tY2glZTElYmIl YTctdCVlMSViYiU4YmNoLXVibmQtdHAtaGEtbiVlMSViYiU5OWkvIDE2LjA5LjIwMDcgNjo0OA0K DQpWZSBvbmcgRG8gSG9hbmcgQW4sIG5ndXllbiBQaG8gY2h1IHRpY2ggVUJORCB0cCBIYSBOb2kN Cg0KSGEgTm9pLCBuZ2F5IDE0IHRoYW5nIDkgbmFtIDIwMDcuDQoNClRodSBwaGFuIGFuaA0KDQpL aW5oIHRodWEgQ2h1IHRpY2ggbnVvYyBOZ3V5ZW4gTWluaCBUcmlldCwgdGh1YSBCYW4gY2hvbmcg dGhhbSBuaHVuZyBUVyAoIFRULiBOZ3V5ZW4gVGFuIER1bmcsIFRydW9uZyBiYW47IFBUVC4gVHJ1 b25nIFZpbmggVHJvbmcsIFBobyBiYW47IE9uZyBDaGFuaCwgUGhvIHZhbiBwaG9uZyBjaG9uZyB0 aGFtIG5odW5nICksIHRodWEgY2FjIHZpOiBCbyB0cnVvbmcgWGF5IGR1bmcsIFRvbmcgdGhhbmgg dHJhIENoaW5oIHBodSBjdW5nIGNhYyB2aSBsYW5oIGRhbyBjYW8gY2FwIGtoYWMgY3VhIERhbmcs IG5oYSBudW9jLCBjaGluaCBwaHUgdmEgcXVvYyBob2kuIA0KDQpDaHVuZyB0b2kgbGEgbmh1bmcg Y2FuIGJvIGNvbmcgdGFjIHRhaSBVQk5EIFRQSE4uIFRydW9jIHRpZW4gY2hvIHBoZXAgY2h1bmcg dG9pIGd1aSB0b2kgb25nIGNodSB0aWNoIG51b2MsIEJhbiBjaG9uZyB0aGFtIG5odW5nIHZhIGNh YyB2aSBsYW5oIGRhbyBjYW8gY2FwIGtoYWMgbG9pIGNoYW8ga2luaCB0cm9uZyENCg0KTmhhbiB2 aWVjIHRvYSBhbiBIYSBOb2kgaHV5IGFuIHNvIHRoYW0gY3VhIHRvYSBhbiBxdWFuIEJhIERpbmgg dmUgdnUga2llbiBtbyBkdW9uZyAibmdvIDU5IExhbmcgSGEiIGNobyBuaGEgb25nIEFuIHJhIG1h dCB0aWVuLCBEZSBiaWV0IHJvIHhpbiB0aGFtIGtoYW8gdGFpIFZpZXRuYW1uZXQ6IGh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi94YWhvaS9waGFwbHVhdC8yMDA3LzA5Lzc0MDE3MS8gDQoNCk5vaSB2 ZSB2dSBraWVuIG9uZyBuZ3V5ZW4gY2h1IHRpY2ggVUJORCBxdWFuIEJhIERpbmggZGEgY3Vvbmcg Y2hlIHRyYWkgbHVhdCBkb2kgdm9pIGdpYSBkaW5oIGJhIFRoYW5oIGN1bmcgY2FjIGdpYSBkaW5o IGtoYWMgdGFpIG5nbyA1OSBsYW5nIEhhIGRlIG1vIGR1b25nIHZhbyBuaGEgIlF1YW4iIFRQIGxh IG9uZyBEbyBIb2FuZyBBbiwgbmd1eWVuIGxhIFBobyBjaHUgdGljaCBVQk5EIHRoYW5oIHBobyBI YSBOb2kuDQpDaHVuZyB0b2kgY28gYmlldCBtb3Qgc28gdGhvbmcgdGluIHZlIG9uZyBEbyBIb2Fu ZyBBbiwgbmh1bmcgdmkgc28gZHVhIHJhIGxhaSBraG9uZyBjbyBhaSBxdWFuIHRhbSBuZW4gdGhv aSwgbmh1bmcgbmF5IGtoaSBsdW90IHRyYW5nIHdlYiBWaWV0bmFtbmV0IHRhaSB0dWFudmlldG5h bW5ldCB2YSB0cm9uZyBtdWMgdGhvbmd0aW5kYWNoaWV1IHZvaSBkaWEgY2hpOiANCmh0dHA6Ly93 d3cudHVhbnZpZXRuYW0ubmV0L3ZuL3Rob25ndGluZGFjaGlldS8xMDQ0L2luZGV4LmFzcHggY28g YmFpOiBOaGFuIHBoYW4gaG9pIHR1IGNodSB0aWNoIG51b2MsIG5pZW0gdGluIGR1b2MgZGVuIGRh cC4gVHJvbmcgZG8gY28gZG9hbiB2aWV0OiAiRGF5IGxhIG1vdCBidWMgdGh1IHh1YyBkb25nIGN1 YSBtb3Qgbmd1b2kgZGFuIG8gWHVhbiBMYSwgVGF5IEhvIGd1aSB0b2kgbmdhaSBDaHUgdGljaCBu dW9jIE5ndXllbiBNaW5oIFRyaWV0LiBCdWMgdGh1IHZpZXQgdHJvbmcgdGFtIHRyYW5nIG11bmcg bXVuZyB0dWkgdHVpIHZlIG5odW5nIGRpZXUgbmdhaSBDaHUgdGljaCBkYSwgZGFuZyBsYW0gZGUg Z2lhaSBxdXlldCBuaHVuZyBvYW4gc2FpIGN1YSBkYW4uIi4NCg0KTyBIYSBOb2ksIG1vaSB2YW4g ZGUgb25nIEFuIGdheSByYSB0dSB0cnVvYyBraG9uZyBhaSBkYW0gbGVuIHRpZW5nIHZpIG9uZyB0 YSBkYSB4YXkgZHVuZyBkdW9jIG1vdCBwaGUgY2FuaCByYXQgbWFuaC4gTmh1bmcgbmF5IGR1b2Mg YmlldCB2aSBDaHUgdGljaCBudW9jIGNvIHN1IHF1YW4gdGFtIHNhdCBzYW8gZGVuIHR1bmcgbmd1 b2kgZGFuLCBxdWEgYmFpIG5heSBjaHVuZyB0b2kgbmhhbiB0aGF5IHZpIENodSB0aWNoIGRhICJu b2kgZGkgZG9pIHZvaSBsYW0iLCBkbyBsYSBuaHVuZyBkYXUgaGlldSB0aWNoIGN1YyB0cm9uZyB2 YW4gZGUgY2hvbmcgdGhhbSBuaHVuZyB2YSBnaWFpIHF1eWV0IG9hbiBzYWkgY2hvIGRhbiwgY2hv IG5lbiBjaHVuZyB0b2ksIGxhIG5odW5nIGNhbiBibyBjdWEgVUJORCB0aGFuaCBwaG8gSGEgTm9p IHhpbiBtYW5oIGRhbiBjdW5nIGNhcCB0aGVtIG1vdCBzbyB0aG9uZyB0aW4gbmh1IHNhdToNCg0K T25nIERvIEhvYW5nIEFuIGxhIG1vdCBvbmcgdHJ1bSBjdWEgbmdhbmggeGF5IGR1bmcgY28gYmFu IGN1YSBIYSBOb2ksIG5odW5nIGxhaSBsYSBjb24gbmd1b2kgaGV0IHN1YyB0aGFtIGxhbSwgZ2lh IGRvaSwgaG9pIGhvdCB2YSBkYWMgYmlldCBnaW9pIG5lIGRvbiwgY29uIGdpb2kgdHJvbmcgY2h1 eWVuIGdhcCBsdWEgYm8gdGF5IG5ndW9pLiBPbmcgdGEgY29pIHRodW9uZyBsdWF0IHBoYXAgZGVu IGRvIGxpZXUgbGluaCwgdmkgb25nIHRhIGxhIG1vdCAidGF5IHRydW0iIG5lbiB2aWVjICJkb2kg dHJhbmcgdGhheSBkZW4iIGxhIHZpZWMgbGFtIGNvbSBidWEuIENodW5nIHRhIGNvIHRoZSBkZSBk YW5nIGRhdCBjYWMgY2F1IGhvaSBtYSBvbmcgdGEga2hvbmcgdGhlIG5hbyB0cmEgbG9pIGR1b2M6 DQoNCkFpIGxhIG5ndW9pIGNoaXUgdHJhY2ggbmhpZW0gZGVuIGN1bmcgdmUgbW9pIHRoYXQgdGhv YXQsIGxhbmcgcGhpLCB0aWV1IGN1YyB0cm9uZyBuZ2FuaCB4YXkgZHVuZyBjbyBiYW4gbWEgdGhv aSBnaWFuIHF1YSBjb25nIGx1YW4gZGEgcGhhbmggcGh1aSA/IA0KDQpBaSBsYSBuZ3VvaSBjaGFw IHRodWFuIHBoZSBkdXlldCBjYWMgZHUgYW4gInRhbmcgY3VvbmcgbmFuZyBsdWMgZ2lhbyB0aG9u ZyIsIG1hIGNhbmcgdGFuZyBjdW9uZyBjYW5nIHh1b25nIGRvYz8gDQoNCkFpIGNoaXUgdHJhY2gg bmhpZW0gdHJvbmcgdmllYyBkZSBtb2kgZHUgYW4gY3VhIHRoYW5oIHBobyBkZXUgY2hhbSwga2hv bmcgY28gaGlldSBxdWEsIGRhYyBiaWV0IGR1IGFuIHRob2F0IG51b2MsIGNhcCBudW9jPyBDYWMg ZHUgYW4gY3VhIGNhYyBjYXAgcXVhbiCWIGh1eWVuPyBEdSBhbiBuYW8gY3VuZyBrZXUgb25nIEFu IHZvIGNhbSwga2hvbmcgaG8gdHJvIGdpdXAgZG8gdGhhbyBnbywgdGhhbSBjaGkgY29uIHRyb2kg Y2hvIGNoYXQgaG9uLCBuZXUga2hvbmcgY28gdGllbiwgbmhpZXUgdGllbiBkdXQgdmFvIHR1aSBv bmcuIA0KDQpEdSBhbiBIbyBCYSBNYXU6IENvbmcgYW4gSGEgTm9pIGJpZXQgcmF0IHJvLCBjbyBk dSB0YWkgbGlldSB2ZSBkdSBhbiBIbyBCYSBNYXUsIGRheSBsYSBtb3QgZGllbiBoaW5oIGN1YSB2 aWVjIG9uZyBBbiBsb25nIHF1eWVuLCBjaG9uIGdpYW0gZG9jIGR1IGFuIGxhIGNoYW4gdGF5IHRo YW4gdGluLCB0cmllbiBraGFpIGdpYWkgcGhvbmcgbWF0IGJhbmcgZGEgZ2F5IGNhbSBwaGFuIHJh dCBsb24gdHJvbmcgZGFuIGN1IHBoYW0gdmkgZHUgYW4sIHRyaWVuIGtoYWkgZHUgYW4gdGhhcCBo b24gdGhpZXQga2UgNzBjbSwgbmVuIGhvaSBtdWEgbGEgdG9hbiBsdXUgdnVjIGRvIGJpIG5nYXAg cGhhaSBkaSB0aHV5ZW4gdmFvIHRyb25nLCBvbmcgQW4gZGEgcGhhaSBibyBzdW5nIGR1IGFuIHRy YW0gYm9tLCBzYW8gbGFpIGxhbSBtb3QgZHUgYW4ga2hhYyBjdWMga3kgdG9uIGtlbSBkZSB0cnVt IGxlbiB0cmVuIGR1IGFuIGN1LiANClNvIEdpYW8gdGhvbmcgQ29uZyBjaGluaCBIYSBOb2kgaGll biBjbyBkdSB0YWkgbGlldSwgb25nIFBoYW0gUXVvYyBUcnVvbmcgZGEgdmUgaHV1IG1vaSBkYW0g bm9pIHJhLCBjb24gbGFpIHRvYW4gdGF5IGNoYW4ga2hvbmcgZGFtIG5vaSBkYXUuIENoaSByaWVu ZyBkdSBhbiBIbyBCYSBNYXUgZGEgbGFuZyBwaGkgdmEgdGhhbSBuaHVuZyBtYXQgeGFwIHhpIDEw MCB0eSBkb25nLiANClZ1IGRhbiBraWVuIG8gZHUgYW4gIlZhbmggZGFpIDMgdGFpIFRoYW5oIFh1 YW4gY3VuZyBkYW5nIGxhIG1vaSBkZSBkb2EgZG9pIHZvaSBvbmcgQW4uIE5ldSBkZSBkYW4gdGhh bmcga2llbiB0aGkgbmh1bmcgdmllYyBsYW0gY3VhIG9uZyBBbiB2ZSBjYWMgZHUgYW4gY28gZ2lh aSB0b2EgbWF0IGJhbmcgY3VhIHRoYW5oIHBobyBIYSBOb2kgdHUgdHJ1b2MgdG9pIG5heSBiaSBs byB0YXkuIFZpIHZheSBvbmcgQW4gY2hpIGRhbyBwaGFpICJjaG8gdG9hIGFuIiBkYW5oIHNhcCBi b24gbmF5IGRlIGNodW5nIG1pbmggImNvIGJhbiB0YXkgcGhhbiBkb25nIHh1aSBnaXVjLCBraWNo IGRvbmcga2llbiBjYW8gZ2F5IG1hdCBvbiBkaW5oLCBjaHUgdGh1YyBjaGF0IGtob25nIGNvIHNh aSBnaSIgdmEgcGhhaSB0aW0gY2FjaCAibG9pIGR1b2MgdmFpIGR1YSByYSBiYW8gYm9uIGNvbmcg YW4gbm8gZ2FuIGNobyBtYXkgY2h1ICJwaGFuIGRvbmciIGxhIGRpIHR1IHJ1IHh1b25nIG5nYXks IGhldCBraWVuIGNhbyIuIA0KRGFjIGJpZXQgbGEgdnUgZHUgYW4gS2UgSG8gVGF5LiBBaSBsYSBu Z3VvaSBjaGl1IHRyYWNoIG5oaWVtIHZlIGNhYyBzYWkgcGhhbSB0cm9uZyBkdSBhbiB4YXkgZHVu ZyBoYSB0YW5nIGt5IHRodWF0IHh1bmcgcXVhbmggSG8gVGF5LiBPbmcgQW4gZGEgY29pIHRodW9u ZyBwaGFwIGx1YXQsIGNvaSB0aHVvbmcgRG9hbiB0aGFuaCB0cmEgbGllbiBuZ2FuaCBkZW4gbXVj IGJhdCBjaHVuZyB0b2kgdmEgY2FjIFNvIGJhbiBuZ2FuaCBUUC4gZ2lhdSBiaWVuIGRpIGNhYyBi YW4gZG8gcXV5IGhvYWNoIGtlIEhvIFRheSByb2kgYmFvIGR1YSBsb2FpIGRvbSBjaG8gRG9hbiBU aGFuaCB0cmEgKHRoYW5oIHRyYSB2ZSBrZSBobyB0YWkgY3VtIDMgWHVhbiBMYSkgdmEgZGFuIG5l dSBob2kgY3Ugbm9pOiBiaSBtYXQsIGJpIHRoYXQgbGFjLiANCg0KQ2h1bmcgdG9pIGxhaSBsdW90 IHdlYiwgZHVuZyB0dSBraG9hICJrZSBIbyBUYXkiIHRyb25nIGNvbmcgY3UgdGltIGtpZW0gR09P R0xFIHRoaSBjbyBtdWM6DQoNCktoaWV1IGtpZW4gbmdheSB0YWkgSGEgTm9pLCB2dSBhbiBrZSBI byBUYXkgW0JhbiBnaWFuIGx1b2NdIJYgRGllbiAuLi4NCktpY2ggY2h1b3QgdmFvIG11YyBuYXkg dGhpIGhpZW4gcmEgbW90IGJhaSB2aWV0IHRhaSBkaWEgY2hpOg0KaHR0cDovL3d3dy54LWNhZmV2 bi5vcmcvZm9ydW0vYXJjaGl2ZS9pbmRleC5waHAvdC04MDczLmh0bWwgDQoNCk5vaSBkdW5nOiBD dSBEYW8gVmFuIEh1ZSBjdSBkYW4gY3VtIDMgWHVhbiBMYSBUYXkgSG8gdG8gY2FvIGd1aSB0b2kg Y2FjIGRvbmcgY2hpIFV5IHZpZW4gQm8gQ2hpbmggdHJpLCBCYW4gQmkgdGh1IHZhIHRvYW4gdGhl IGNhYyBkb25nIGNoaSB1eSB2aWVuIEJhbiBjaGFwIGhhbmggVHJ1bmcgdW9uZyBEYW5nIG5vaSB2 ZSBkdSBhbiB4YXkgZHVuZyBoYSB0YW5nIGt5IHRodWF0IHh1bmcgcXVhbmggSG8gVGF5IGRhIHZh IGRhbmcgYmkgZHVjIGtob2V0IHRoYW0gbmh1bmcuIEN1IGNvbiBob2k6ICJDdSBuaHUgdGhlIG5h eSB0aGkgRGFuZyB0YSBsYSBjdWEgYWkgPyIuIA0KT25nIGN1IGJpZXQgcm9pIGNvbiBob2kgZ2kg bnVhLCBjdSBkb2Mgbmh1bmcgY2F1IG5odSB0aGUgbmF5IHRoaSBybzogIlN1IHZpZWMgbyBkYXkg cXVhbmggSG8gVGF5IG5heSBjaGkgdGhheSBraG9uZyBjbyBkYW4gY2h1LCBnaWEgZG9pLCB0YW4g YmFvLCB2aSBwaGFtIG5oYW4gcXV5ZW4sIGtob25nIGNvIHBoYXAgbHVhdCwgaGFuZyBsb2F0IG5o dW5nIHZpIHBoYW0gdGhhbSBuaHVuZyBhbiBjYXAgZGV1IGJpIGJ1bmcgYml0LCB0cmEgdGh1IG5n dW9pIGtoaWV1IG5haSB0byBjYW8gbGEgbW90IHRodWMgdGUgZGEgdmEgZGFuZyB0b24gdGFpIG8g ZGF5LCBvIHF1YW5oIEhvIFRheSBuYXkiLg0KQ3VvaSBiYWksIHRyb25nIG11YyB0aGFvIGx1YW4g bGFpIGNvIHkga2llbiB0aGF0IGNoaSBseSBjdWEgbW90IHRoYW5oIHZpZW4gZGllbiBkYW4gbGE6 ICIuLi4gZGF5IGxhIG1vdCB2dSBkaWVuIGhpbmggY2hvIHRoYXkgc3UgYmF0IGx1YyBjdWEgY2hp bmggcXV5ZW4gY2FwIHRydW5nIHVvbmcgdHJ1b2Mgc3UgbG9uZyBoYW5oIGN1YSBjaGluaCBxdXll biBkaWEgcGh1b25nLCBjdSB0aGUgbGEgY2hpbmggcXV5ZW4gdGhhbmggcGhvIEhOIHZhIGNhYyBj YXAgcXVhbiwgcGh1b25nLiBUaGVvIHR1aSBuZ2hpIGtob25nIHBoYWkgYmF0IGx1YyBtYSBjaGlu aCBsYSBiYW8gY2hlLCBjaGlhIGNoYWMsIG1vYyBuZ29hYy4gVmkgZHUgb25nIGNodSB0aWNoIHBo dW9uZyBjaG9tIDQgbWllbmcgZGF0IGNoaWEgY2hvIG9uZyBiaSB0aHUgdGluaCAxIG1pZW5nLCBv bmcgdHJ1b25nIGNvbmcgYW4gaHV5ZW4gMSBtaWVuZywgb25nIHZpZW4ga2llbSBzYXQgdGluaCAx IG1pZW5nLi4uIA0KVGhlIGxhIGRhbiBkaSBraWVuIGN1IGtob2FpLi4uIGxhbmcgLi4uIE5oYSBu dW9jIHRoaSBiYW8sICJ0cmVuIGJhbyBkdW9pIGtob25nIG5naGUiLi4uIFZpIGRhIGFuIGNoaWEg bmVuIGxhbSBzYW8gImJhbyBuaGF1IGR1b2MiLi4uIE5ldSBraG9uZywgdG9tIGNvIGNobyB2YW8g dHUgY28ga2hvIGdpIGRhdS4gVGFpIHNhbyBiYXQgbWF5IHRlbiAicGhhbiBkb25nIiwgInBoYSBy b2kiIHRoaSBkZSBtYSBraG9uZyBiYXQgZHVvYyB0aGFtIG5odW5nLCBjdW9wIGRhdCBjdWEgZGFu ID8/PyIuIA0KTmhhbiBkYXkgY2h1bmcgdG9pIGN1bmcgeGluIG5oYW4gbWFuaCByYW5nIHZlIG1h dCB0dSBjYWNoIGRhbyBkdWM6IE9uZyBBbiBsZW4gdHUgYW5oIHBodSB0cmFjaCBjb25nIHRydW9u ZyBuZW4gcmF0IHRvYW4gYW4gZ2lhbiwgbGFtIGRvaSwgbGFwIGhvIHNvIGJhbiBkaSBiYW4gbGFp IGhhbmcgdHJhbSBsYW4sIGNvIHRpZW4gZGkgZHV0IGxvdCBkZSB0aGFuZyB0aWVuLCBjaGFuZyBj byB0YWkgY2FuIGdpIG5odW5nIGxhaSAibGVuIiB2dSB2dSwgdnVvdCBxdWEgZGF1IG5oaWV1IHNl cCBjdSBjdWEgbWluaCBjaGkgYmFuZyBzdSBraG9uIG5nb2FuIHZhIG1hbmggbG9pLiBDdW5nIGJh bmcgdGh1IGRvYW4gZG8gbWEgb25nIHRhIHR1eWVuIGNob24gZG9pIHF1YW4gY3VhIG1pbmggYWkg Y3VuZyBiaWV0IGFuIGdpYW4gbm9pIGRvaSwgdGh1IGRvYW4sIGRldSBjYW5nLCBsYXQgbWF0LiAN Ck5ndW9pIGNvIGNvbmcgbG9uIGR1YSBvbmcgdGEgbGVuIGxhIG9uZyBIb2FuZyBWYW4gTmdoaWVu LCB2YXkgbWEgdHJ1b2MgZGF5IG5oaWV1IGxhbiBvbmcgQW4gY3VuZyBkaW5oIHRyYW5oIGdoZSBj dWEgdGhheSwgImRhIiB0aGF5IHJhIGtob2kgVXkgYmFuIG5oYW4gZGFuIFRQSE4gbWEgdmFuIGNo dWEgdGhhLiBOb2kgbmh1IG5oaWV1IGFuaCBjaGkgZW0ga2hhY2ggcXVhbiB0cm9uZyBVeSBiYW4g dmEgVGhhbmggcGhvIGxhIG9uZyBBbiAiZ2llbyBxdWEgbmFvIGFuIHF1YSBuYXkiOiBUdSBvbmcg dGEgZGVuIGNvbiBvbmcgdGEgdGhpIGJpZXQuIA0KQ2F1IGFtIG5naGllbiBuYW5nIGxvaSBrZW4s IHRoaWNoIGxhbSBjYW4gYm8gbyBkYXUgdGhpIGJhbyBibyBnaGkgdGVuIHZhbyBkbyBjaG8gbWEg bmhhbiBsdW9uZyBjaG8gZHUga2hvbmcgbW90IG5nYXkgZGkgbGFtLiBHaWFuIHRpZXAgbGllbiBx dWFuIGRlbiBkdWMgbGFuZyBxdWFuIGNvbiBnYWkgb25nIEFuIHRoaSBjbyB2dSBiYXQgZGFuaCBi YWMgbG9uIHRyZW4gVGFtIERhbywga2hpIGNhYyBjYW4gYm8gY2h1IGNob3QgdHJvbmcgVG9uZyBj b25nIHR5IHhheSBkdW5nIGN1YSBIYSBOb2kgbGVuIFRhbSBEYW8gYW4gbXVuZyBjaG8gdmkgcGhv IGNodSB0aWNoIG1vaSBjdWEgVFAuIFZpIG5heSB2dWEgZHVvYyBib24geGEgaG9pIGRlbiB0cm9u ZyBkbyBjbyBCb25nICJidW9pIiB0aG9uZyBxdWEgVHJ1b25nIGNvbmcgYW4gcXVhbiBUYXkgSG8g bXVhIGNhaSBjaHVjIGhldCBraG9uZyBiaWV0IGJhbyBsYSB0aWVuLg0KIkNhaSIgZHVvYyB2YW8g dmkgdHJpIHBobyBjaHUgdGljaCBuYXkgcm9pIHRoaSBuaG9tIHhhIGhvaSBkZW4gbmF5IHRoYSBo byB0dW5nIGhvYW5oIGRlIGxhbSB0aWVuIHRyb25nIGxpbmggdnVjIGRhdCBkYWkgdHJlbiBkaWEg YmFuIEhhIE5vaSwgdG8gY2h1YyBjbyBiYWMgaGF5IGtpbmggZG9hbmggbmhhIG5naGkgbWFpIGRh bS4gVG9uZyBjb25nIHR5IG5heSBjdW5nIGhlIGhhIHZpIGR1b2MgYW4gY2FuaCBjdW5nLCBjbyB0 aGUgbGllbiBrZXQgbGFtIGFuIHRyb25nIG5oaWV1IGxpbmggdnVjLCBuaGF0IGxhIHZlIGRhdCBj YXQsIHhheSBkdW5nLg0KDQpDaGFuZyBuaHVuZyB2YXkgbWEgc2F1IGtoaSBjbyBjb25nIHZhbiBj dWEgQ2h1IHRpY2ggbnVvYyB4dW9uZyBUaGFuaCBwaG8gZG8gbW90IGNvbmcgZGFuIFh1YW4gbGEg a2V1IG9hbiB2YSBzYXUgdnUgZGFuaCBiYWMgYmkgYmF0IG5nYXkgMTgvOC8wNywgbGFwIHR1YyBo b2kgQm9uZyAiYnVvaSIgUXVhbmcgImRhdSB0byIgKHRydW9uZyBjb25nIGFuIFRheSBIbyksIEN1 b25nIGNodSB0aWNoIFRheSBIbyBjdW5nIGNhYyBkYW4gZW0gbGEgY2h1IHRpY2ggY2FjIHBodW9u ZzogWHVhbiBsYSwgQnVvaSwgUXVhbmcgQW4uLi4gdmEgbGF1IGxhIGN1YSBjaHVuZywgdGF0IGNh IGdvbSB0cmVuIDEwIHRlbiBkdW9jIGxlbmggYmF5IGdhcCB2YW8gU2FpIEdvbi4gQ2FjIGRhbiBh bmggKE5hbSBDYW0gY3UpIGNvbiBuYW0gdnVuZyB0cm9uZyBTRyBzZSBsbyBjaGF5ICJoYXUgY3Ug Y2FjIE9uZyIgdHJvbmcgZG8gZGUgbG8gY2hheSBtYXkgdnUgbmF5IGNobyB4b25nLg0KDQpEb2kg dm9pIHZ1IGtldSBvYW4gZHVvYyBvbmcgVHJpZXQgcXVhbiB0YW0sIHRoZW8gbW90IG5ndW9pIHF1 ZW4gY28gdGhlIGx1YyBsYW0gbyBxdWFuIFRheSBIbyBub2kgcmFuZzogIiBTYXUga2V0IGx1YW4g Y3VhIHRoYW5oIHRyYSBDaGluaCBwaHUgaG9pIHRydW9jIHRldCAoZGEgZHVhIHJhIG1vdCBkYW5o IHNhY2ggZGVuIGdvbSAxMSB2aSBxdWFuIGNodWMgdGhhbmggcGhvIGR1bmcgZGF1IGxhIG9uZyBE byBIb2FuZyBBbiBzYWkgcGhhbSkgSGEgTm9pIHZhIFRheSBIbyBjb2kgbmh1IGR1dCBoYW4sIGNv biBub2kgdmFvIGRhdSBkdW9jIG51YSwgdGh1YSBtb3QgY2FjaCB0aGFtIGhhaSwgdGhlIHF1YWkg bmFvIG1hIGxhaSBkdW5nIG1vdCBjYWkgZHVvYyBjdXUsIHZheSBsYSBvbmcgQW4gZGEgbGF0IGR1 b2MgdGhlIGNvLiBPbmcgZ2lvaSBkZW4gbXVjIG1vdCBvbmcgdHJlbiBWYW4gcGhvbmcgQ2hpbmgg cGh1IChuZ2hlIG1vbmcgbWFuaCBsYSBvbmcgTWluaCkgZGEga2hvbiBraGVvICJjYWkiICBjYWkg dmFuIGJhbiBkZSBvbmcgVHJvbmcgUFRULiBLeSIuDQoNCk5nYW0gY3VuZyBkdW5nIHRoZSB0aGF0 LCB2b24gZGFuIEFuaCBIYWksIGxhaSBzYW8gZHVvYyB2b2kgY2FjIG5nb24gbXV1IG1lbyBraWV1 IEJhYyBreSBjdWEgY2FuaCBIYSBOb2k6IFZ1YSAiY3VhIHNhdSIgdGhhbiB0aW5oIHRhbyBsb25n IHRpbiwgdnVhIGN1YSB0cnVvYyBuYWkgbmkgdmFuIHhpbjogDQoiRGUgY2hvIEhhIE5vaSBvbiBk aW5oIi4gVmF5IGxhIG9uZyBQaG8gdGh1IHR1b25nIGNob25nIHRoYW0gbmh1bmcgImNoYWMgbHVv aSIgbW90IGNhaSBsYSB4b25nLiBWYXkgbW9pIGNvIGNodXllbiBraGkgcGhvbiBiYW8gY2hvIG9u ZyBDaHUgdGljaCBUaGFuaCBwaG8gZGFuZyBjb25nIHRhYyB4YSB0aXQgbyBtb3QgaG9uIGRhbyAo aGluaCBuaHUgbGEgQ29uIERhbykgcGhpYSBuYW0gbmdvYWkga2hvaSwgdHJvbmcgZGllbiB0aG9h aSBkYXUgZ2lheSBiZW4gbmF5IHZhbmcgbGVuIGdpb25nIG9uZyBUcmlldSByYXQgdmVuaCB2YW8g bmh1IGtoYW5nIGRpbmggbW90IGxlIHRhdCBuaGllbjogIlRoZSBhLCB0b2kgYmlldCBuZ2F5IG1h LCB0aGUgbmFvIENoYSBheSBjdW5nIGt5Ii4NCg0KTGFwIHR1YyBtb3Qga2UgaG9hY2ggaGFuaCBk b25nIGR1b2Mgb25nIEFuIHZhY2ggcmEgY2hvIFRheSBIbyB2YSBkb25nIHRob2kgZGVvIG1vbSB2 b2kgb25nIE5naGkgQmkgdGh1IFRoYW5oIHV5IGRlIGtlbyBsdW9uIGNhIGNhaSBnb2kgbGEgaGUg dGhvbmcgY2hpbmggdHJpIFRoYW5oIHBobyB2YW8gY3VvYywgZG8gY28gdGF5IHRyb25nIHRyZW4g VmFuIHBob25nIENoaW5oIHBodSBuZW4gb25nIHRhIGN1IHZpZWMgbGEgdG9hbmcgbGVuIHRyZW4g YmFvIGRhaSBsYSAidGh1YyBoaWVuIHRoZW8gY2hpIGRhbyBjdWEgVGh1IHR1b25nIENoaW5oIHBo dSIgDQooWGluIHhlbSB0cm9uIGJhaSBjdWEgY3UgSHVlIHRyb25nIFgtY2FmZSBuZXUgdHJlbikg dmEgY3UgdGhlIG1hIGN1b25nIGNoZSBtYSBkYXAgbWEgY3VvcCBtYSBiYXQgbmd1b2kgdGFpIFh1 YW4gTGEgdmEgcm9pIGRlbiBjdW9wIGx1b24gaG9uIDguMDAwbTIgZGF0IGN1YSBkYW4gQmVuIENo dW0gUXVhbmcgQW4ga2hvbmcgbGllbiBxdWFuIGdpIGRlbiBkdSBhbiBrZSBIbyBUYXkgY2EuIFRy ZW4gY28gYmlldCBjdW5nIGNoYW5nIGFpIGRhbSByYSBtYXQgY2FuIG5nYW4uIFRoYXQgZHVuZyBu aHUgbG9pIG1heSBjYXUgdGhvOg0KDQpEYW5nIGxhIE1lLCBCYWMgbGEgQ2hhLA0KRGVuIGtoaSBC YWMgY2hldCwgRGFuZyByYSBnb2EgY2hvbmcsDQpCYWMgb2khIEJhYyBjbyBiaWV0IGtob25nPw0K Q2h1bmcgbm8gdGhhbSBuaHVuZyEgTWUga2hvbmcgbm9pIGdpDQoNCkxhaSBxdWF5IHZlIGNodXll biB4YSBob2kgZGVuIGNhaSBuZ3VvaSB2YW8gVXkgYmFuLCBjaHVuZyB0b2kgdGhpIGRhIHRpbiBt YWMgZHUga2hvbmcgY28ga2llbSBjaHVuZyBuaHVuZyBjYWMgdmkgdGhpIGNvIHRoZSBraWVtIHRy YSBkZSBkYW5nLCB0cmEgdGVuIGhvIHF1YSBjYWMgY2h1eWVuIGJheSBITi1IQ00gdHJvbmcgbWF5 IG5nYXkgMTktMjEvOCB0aGkgcm8gbmdheSBsYSB0aGF0IGhheSBjaGkgbGEgInRpbiB2aXQiLiBD b24gImhhdSBjdSBjYWMgT25nIiCWIHkgbm9pIGNhYyAiaGF1IGN1bmciIGRvbmcgbyBUUCBIQ00u DQoNCkNhaSBzdSBuZ2hpZXAgb25nIEFuIGxhIG5odSB2YXksIHZlIGN1YSBjYWkgY3VhIG9uZyBs YSBkbyB0cmFuaCB0aHUgY3VvcCBkdW9jIG1hIGNvLiBOZ2hlIG5vaSBjaGkgcmllbmcgInRoYW5o IHRpY2giIG9uZyByYSB0YXkgY3V1IGNodWEgdmllYyBiaSB0aGFuaCB0cmEgbGF0IHRheSB2dSBj aGluaCBzdWEgYmFuIGRvIHF1eSBob2FjaCBrZSBIbyBUYXkgKGR1IGFuIGxvYWkgQS1raG9uZyBk dW9jIHBoZXAgZGlldSBjaGluaCkgdmEgY29uZyBraWVuIHF1eWV0IGNoaSBkYW8gdmllYyBjdW9u ZyBjaGUgdGhhbmggY29uZyBYdWFuIExhIHZhIEJlbiBDaHVtIFF1YW5nIEFuLCBvbmcgdGEgY3Vu ZyBkdW9jIGR1dCB0dWkgY2EgY2h1YyB0eSBkb25nLiBSaWVuZyBvbmcgdGEgdGhpIHRyYSB0aHUg ZHVvYyBnaWEgZGluaCBjYWkgb25nIGNvbmcgYW4gZGEgZGFtIHRvIGNhbyBkaWNoIGRhbmggdGVu IG1pbmguDQoNCk5odW5nIG1hIG8gZG9pIGtob25nIHBoYWkgY3UgeHVvaSBjaGlldSBtYXQgbWFp IG1haSBkdW9jIGRhdSwgcm9pIGRheSBjYWkgc3UgbmdoaWVwLCBjb25nIGRhbmggY3VhIG9uZyBj dW5nIHNlIHRhbiBiaWVuIG5odSBib25nIGJvbmcgbWEgdGhvaSB2YSBkb25nIHRhaSBzYW4ga2Vj aCBzdSBtYSBvbmcgdm8gZHVvYyBjdW5nIHNlIG5oYW5oIGNob25nIHRoZW8gbmhhdSBtYSBkaSBy YSBjdWEgc2F1IHRob2kuIE9uZyBBbiBxdWEgdGh1YyBkYSBwaHUgYm9uZyB0b2kgbGVuIGJhdSB0 cm9pIEhhIE5vaSBjdWEgY2h1bmcgdGEuDQoNCkN1bmcgcXVhIGRheSBjaHVuZyB0b2kgeGluIG5o YW4gbmh1IHZvaSBvbmcgbHVhdCBzdSBWdSBIYWkgY3VhIHZ1IGtpZW4gIm5nbyA1OSBMYW5nIEhh IjogVm9pIHRhdCBjYSBjYWMgdmFuIGJhbiBtYSBVeSBiYW4gZHVhIHJhLCBzYXUgbmF5IG9uZyBk ZXUgcGhhaSBnaWFtIGRpbmggZGUgc28gdm9pIGx1dSB0cnUsIHNvIHZvaSBjYWMgdmFuIGJhbiBt YSBjYWMgY28gcXVhbiBraGFjIGRhIG5oYW4gZHVvYy4gVXkgYmFuIG5oYW4gZGFuIHRoYW5oIHBo byBwaGFpIGNhbSBkb2FuIHRydW9jIHBoYXAgbHVhdCB2ZSB0aW5oIGR1bmcgZGFuIGN1YSB2YW4g YmFuLCBuZXUgZ2lhIG1hbyBiYXQgcGhhaSBjaGl1IHRyYWNoIG5oaWVtLiANCkRhYyBiaWV0IGNo dW5nIHRvaSBiaWV0IG9uZyBBbiBjdW5nIGRhIGNobyBuZ3VvaSB4dW9uZyBWaWVuIFF1eSBob2Fj aCB2YSBTbyBRdXkgaG9hY2ggS2llbiB0cnVjIGRlIGNoaW5oIHN1YSBsYWkgaG8gc28sIG5odW5n IGNobyBnaGkgdGF5IHJvaSBkb25nIGRhdSwgdmkgdmF5IG5odW5nIHZhbiBiYW4gbmFvIG5naGkg bGFtIGNobyAidHJvbiBiYWkiIHRoaSBvbmcgZGV1IHBoYWkgY2hvIHRydW5nIGNhdSBnaWFtIGRp bmggdGhhdCBnaWEuIER1b2MgYmlldCBvbmcgdGEgY3VuZyBjaGF5IGFuLCBjaG8gbmd1b2kgdGlt IGdhcCBsdWF0IHN1IHZhIGJhbyBjaGkgZGUgIiBnaWFuIHhlcCIuDQoNClZpZWMgb25nIEFuIHZp IHBoYW0gcGhhcCBsdWF0IHZlIHF1YW4gbHkgeGF5IGR1bmcgY28gYmFuLCBsb2kgZHVuZyBjaHVj IHF1eWVuIG11dSBsb2kgcmllbmcgY2hvIG1pbmggbGEgcXVhIHJvIHBoYWkgZHVvYyBkaWV1IHRy YSB2YSB4dSB0aGVvIGx1YXQgaGluaCBzdSB2ZSB0aGFtIG5odW5nLg0KDQpYaW4gbm9pIHJvIHRo ZW0gdGhvbmcgdGluIG5ndW9uIGdvYyBkYXQgb25nIEFuIHZhIHRhaSBzYW8gbGFpIGxhIG5nbyA1 OSBMYW5nIEhhOg0KDQpUaHUgbmhhdDogSGF1IGhldCBuZ3VvaSBkYW4gYmkgZ2lhaSBwaG9uZyBt YXQgYmFuZyBtbyByb25nIG5nbyA1OSBkZXUgdGh1b2MgZHUgYW4gbGFuIDEgY3VhIGNvbmcgdHkg eGF5IGR1bmcgc28gMSBIYSBOb2kgdHJ1b2MgbmFtIDE5OTggdmEgZGEgZHVvYyBjYXAgc28gZG8u IE5oYSBvIGN1YSBvbmcgcGhvIGNodSB0aWNoIG5hbSBvIGR1IGFuIGxhbiAyIGN1YSBjb25nIHR5 IHhheSBkdW5nIHNvIDEgSGEgTm9pIHZhbyB0aG9pIGRpZW0gbmFtIDE5OTgsIGxlIHJhIHBoYWkg dHVhbiB0aHUgZHUgYW4gdHJ1b2MsIHRhaSBzYW8gbGFpIHBoYWkgY28gdGluaCBtbyByb25nIGR1 b25nIGRlbiAxMG0gbGFuIHZhbyBuaGEgY3VhIGRhbiwgdmFvIGR1IGFuIHRydW9jLiANCk5ldSBr aG9uZyBjbyBuaGEgb25nIEFuIHBobyBjaHUgdGljaCB0aGkgY28gZGFtIHBoYSB2byBxdXkgaG9h Y2ggdHJ1b2Mga2hvbmc/IFZhIGNhYyBjbyBxdWFuIGNodWMgbmFuZyBkaWEgcGh1b25nIGNvIGNh biBwaGFpIGh1eSBkb25nIHN1YyBtYW5oIGRlIHBoYSBkbyBxdXlldCBsaWV0LCBnaWFpIHBob25n IG1vdCBjb24gZHVvbmcgbmh1IG1vdCBjYWkgbmdvIG1hIGtob25nIHBoYWkgbGEgZ2lhbyB0aG9u ZyBodXlldCBtYWNoLCB0cm9uZyBraGkgZG8gdGFpIEhhIE5vaSByYXQgbmhpZXUgbm9pIGdpYWkg cGhvbmcgbWF0IGJhbmcgaSBhY2ggdGhpIGNoYW5nIHRoYXkgY2hpbmggcXV5ZW4gcmEgdGF5IQ0K DQpUaHUgaGFpOiBOZ29haSB0dSBjYWNoIHBobyBjaHUgdGljaCBVQk5EIFRQIG9uZyBBbiBkYSB0 dW5nIGxhIHBobyBnaWFtIGRvYyBjb25nIHR5IHhheSBkdW5nIHNvIDEgSGEgTm9pLiBEbyB2YXkg a2hpIG9uZyBBbiwgcGhvIGNodSB0aWNoIHhpbiAibXVhIiBkYXQgbGFtIG5oYSB0aHVvYyBkdSBh biBjdWEgY29uZyB0eSwga2hvbmcgdGhpZXUgZ2kgbmh1bmcgbmd1b2kgdHJvbmcgY29uZyB0eSBk YSBnaXVwIGRvIG9uZywga2V0IHF1YSBsYSBvbmcgcGhvIGNodSB0aWNoIFRQIGR1b2Mga2hvbmcg MiBzdWF0IGRhdCBsaWVuIGtlIG8gdmkgdHJpIGRhYyBkaWEsIGRlcCBuaGF0IGN1YSBkdSBhbiwg dmkgdHJpIDIgbWF0IHRpZW4sIG5odW5nIGNvIGRpZXUgbGEgbGEgbW9pIHN1YXQgNjAtNzBtMiB0 aGkgY3VuZyBsYW0gdG9uZyBjdW5nIGNoaSAxNDBtMiBuaHVuZyBvbmcgbGFpIGNvIDMwMG0yLiAN CkRlIGNvIG5vIG9uZyBBbiBkYSBsYW4gY2hpZW0gdG9hbiBibyBjb24gZHVvbmcgbm9pIGJvIHNh dCBuaGEgb25nIHBoaWEgc2F1IGRheSBuaGEgdmVuIGhvIGN1YSBkYW4uIFZpZWMgbGFuIGNoaWVt IG5heSBkYSBwaGEgdm8gcXV5IGhvYWNoIGN1YSBkdSBhbiwgZGEgdmkgcGhhbSBxdXkgZGluaCB2 ZSBxdWFuIGx5IHhheSBkdW5nIGNvIGJhbi4gVHJhY2ggbmhpZW0gZGUgb25nIHBobyBjaHUgdGlj aCBVQk5EIFRQIGxhbiBjaGllbSBkYXQgY29uZyB0aHVvYyB2ZSBjaGluaCBxdXllbiBzbyB0YWkg dmEgY29uZyB0eSB4YXkgZHVuZyBzbyAxIEhhIE5vaSBsYSBjaHUgZHUgYW4uIA0KVHJvbmcgdHJ1 b25nIGhvcCBuaGEgb25nIEFuIGRhIGR1b2MgY2FwIHNvIGRvIHZvaSBkaWVuIHRpY2ggMzAwbTIs IHRoaSBkZSBuZ2hpIHBoYWkgeGVtIGxhaSBjbyBxdWFuIG5hbyBkYSB0aWVwIHRheSBjaG8gb25n IEFuIGhvcCB0aHVjIGhvYSBkYXQgY29uZyBiaSBsYW4gY2hpZW0uIERlIHRpbSBoaWV1IHZlIGR1 IGFuIGxhbiAyIGN1YSBjb25nIHR5IHhheSBkdW5nIHNvIDEgSGEgTm9pLCBjaGkgY2FuIGRlbiBj b25nIHR5IGdhcCBhbmggVnUgTWluaCBIYWksIHRob2kgZGllbSBuYW0gMTk5OCBhbmggSGFpIGxh IHRydW9uZyBwaG9uZyBkdSBhbiBuZW4gYmlldCBybyB2aWVjIG5heS4NCkRlIHNhbmcgdG8sIGNo dW5nIHRvaSBkZSBuZ2hpIG9uZyBDaHUgdGljaCBudW9jIHZhIEJhbiBjaG9uZyB0aGFtIG5odW5n IHRydW5nIHVvbmcgY2hvIGx1YyBsYWkgY2FjIGR1IGFuIEhvIEJhIE1hdSwgZHUgYW4gdGFuZyBj dW9uZyBuYW5nIGx1YyBnaWFvIHRob25nLCBkdSBhbiBWYW5oIGRhaSAzLi4uLCBkYWMgYmlldCBk dSBhbiBrZSBIbyBUYXkgdGhpIHRoYXkgcmF0IHJvIHN1IHNhaSBwaGFtIGN1YSBvbmcgQW4uDQoN CkRheSBsYSBuaHVuZyBzdSB0aGF0LCByYXQgZGUgZGFuZyB4YWMgbWluaCBuZXUgQ2h1IHRpY2gg dmEgQmFuIGNob25nIHRoYW0gbmh1bmcgY28gdGFtIGh1eWV0LiANCkN1bmcgeGluIGx1dSB5IHJh bmcgdnUgbmdvIDU5IGxpZW4gcXVhbiBkZW4gY2EgbW90IG5ndW9pIG51b2MgbmdvYWkgbGEgY2hv bmcgYmEgVGhhbmggZGFuZyBsYSB0aGFtIHRhbiB0aHVvbmcgbWFpIGN1YSBBbiBEbyB0YWkgVmll dCBOYW0sIG5ldSBraG9uZyBraGFjaCBxdWFuIHRoaSBxdW9jIHRlIG5ndW9pIHRhIHNlIGNvIHkg a2llbiB2YSBjaGFjIGNoYW4gY29uZyBjYWMgdmkgbm8gbHVjIHRhbyBoaW5oIGFuaCBkZXAgZGUg Y2hvIFZpZXQgbmFtIGJheSBsYXUgbmF5IHJvaSBjdW5nIGJpIGRvIHh1b25nIHNvbmcgeHVvbmcg YmllbiBtYSB0aG9pLCBtYSByb2kgY3VuZyBraG8gbWEgdGh1eWV0IHBodWMgZ2lvaSBkYXUgdHUg bnVvYyBuZ29haSB2b2kgbG9pIGhhbmggeHUgYmF0IHR1YW4gcGhhcCBsdWF0IGN1YSBjYWMgcXVh biBjaHVjIGtpZXUgbmh1IG9uZyBBbi4NCg0KWGluIGNhbSBvbiBDaHUgdGljaCB2YSBjYWMgdmkg Ym90IGNodXQgdGhvaSBnaWFuIHRoYW0ga2hhby4gQ2h1bmcgdG9pIGtob25nIG5ldSB0ZW4gaG8g bGEgZGUgYmFvIGRhbSBhbiB0b2FuIGNobyBjaHVuZyB0b2kuLy4NCk5ndW9pIEhhIE5vaQ0KDQpo dHRwOi8vd3d3LnNnZ3Aub3JnLnZuL3BoYXBsdWF0LzIwMDcvNC85MzQ0NS8gMDQvMDQvMjAwNyAg MDE6MjAnKEdNVCs3KQ0KDQpTYXUgbmh1bmcga2hpZXUgdG8gdmEgdGhhbmggdHJhLCBraWVtIHRy YSBrZW8gZGFpLCBtb2kgZGF5LCBWYW4gcGhvbmcgQ2hpbmggcGh1IGRhIGNvIHZhbiBiYW4gdGhv bmcgYmFvIGtldCBsdWFuIHZhIGR1b25nIGh1b25nIHh1IGx5IHZ1IHZpZWMgbGFtIGR1b25nIHF1 YW5oIGhvIFRheSAoZG9hbiBvIGN1bSAzLCBwaHVvbmcgWHVhbiBMYSwgcXVhbiBUYXkgSG8sIEhh IE5vaSkuIA0KVHV5IG5oaWVuLCBkbyBrZXQgbHVhbiBjdWEgdGhhbmggdHJhIGhhaSBjYXAgY2hl bmggbmhhdSB2YSB0aG9uZyBiYW8gY3VhIFZhbiBwaG9uZyBDaGluaCBwaHUgY2h1YSBybyByYW5n IG5lbiBkYW4ga2hvbmcgYmlldCBuZ2hlIGFpISANCg0KaHR0cDovL3gtY2FmZXZuLm9yZy9mb3J1 bS9hcmNoaXZlL2luZGV4LnBocC90LTgwNzMuaHRtbCAxMy0wOC0yMDA3LCAwMToxNyBBTQ0KDQpL aGlldSBraWVuIG5nYXkgdGFpIEhhIE5vaSwgdnUgYW4ga2UgSG8gVGF5IA0KDQpEQU5HIENPTkcg U0FOIFZJRVQgTkFNDQoNCkhhIE5vaSwgbmdheSAwMyB0aGFuZyA4IG5hbSAyMDA3DQoNClRodSBn dWkgY2FjIGRvbmcgY2hpIFV5IHZpZW4gQm8gQ2hpbmggdHJpLCBCYW4gQmkgdGh1IHZhIHRvYW4g dGhlIGNhYyBkb25nIGNoaSB1eSB2aWVuIEJhbiBjaGFwIGhhbmggVHJ1bmcgdW9uZyBEYW5nLg0K DQpEdSBhbiB4YXkgZHVuZyBoYSB0YW5nIGt5IHRodWF0IHh1bmcgcXVhbmggSG8gVGF5IGRhIHZh IGRhbmcgYmkgZHVjIGtob2V0IHRoYW0gbmh1bmcsIGNhYyBjYXAgdXkgRGFuZyBkYSBsYW5oIGRh byBuaHUgdGhlIG5hbyA/DQoNCktpbmggdGh1YSBjYWMgZG9uZyBjaGksDQoNClRvaSB0ZW4gbGEg RGFvIFZhbiBIdWUsIERhbmcgdmllbiA1MCB0dW9pIERhbmcsIGdpYWkgdGh1b25nIEhvIENoaSBN aW5oIHZlIGtob2EgaG9jICYgY29uZyBuZ2hlLCBuZ3UgdGFpIHNvIG5oYSAzNzQgTGFjIExvbmcg UXVhbiwgY3VtIDMgcGh1b25nIFh1YW4gTGEsIFRheSBIbywgSGEgTm9pLiBUcm9uZyB0aG9pIGdp YW4gcXVhIHRvaSBsYSBuZ3VvaSBkYSB2aWV0IG5oaWV1IGRvbiB0aHUgdG8gY2FvIHZhY2ggdHJh biBuaHVuZyBzYWkgdHJhaSB2aSBwaGFtIGN1YSBuaHVuZyBuZ3VvaSBsYW5oIGRhbyB0cm9uZyBE YW5nIHZhIGNoaW5oIHF1eWVuIHR1IFBodW9uZyBkZW4gUXVhbiBsZW4gVGhhbmggcGhvIGxpZW4g cXVhbiBkdSBhbiBrZSBIbyBUYXkuIA0KDQpUb2kgdmlldCBuaHVuZyBkb24gdGh1IGtlIHRyZW4g dm9pIHkgdGh1YyB4YXkgZHVuZyBtb25nIHNhbyBEYW5nIHZhIE5oYSBudW9jIHRhIHRoYW5oIGxv YWkgZHVvYyBuaHVuZyBjb24gc2F1IG1vdC4gTmh1bmcgbmd1b2MgbGFpIHRvaSB2YSBuaHVuZyBu Z3VvaSB0aWNoIGN1YyB0aGFtIGdpYSBkYXUgdHJhbmggY2hvbmcgdGhhbSBuaHVuZyBsaWVuIGJp IHRyYSB0aHUgbW90IGNhY2gga2hvYyBsaWV0Lg0KDQpOaHVuZyBzYWkgcGhhbSB2ZSBkdSBhbiBr ZSBIbyBUYXkgbGEgcmF0IG5naGllbSB0cm9uZyB0cmFuZyB0cm9uIHZhIGtlbyBkYWksIG5odW5n IGtoaWV1IG5haSB0byBjYW8gY3VhIG5oYW4gZGFuIGNodW5nIHRvaSBsYSByYXQgZHVuZyB2b2kg bmh1bmcgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCBuZW4gZGEgZHVvYyBkZW4gNCBsYW4gVmFuIHBo b25nIENoaW5oIHBodSBjbyBjb25nIHZhbiB0cnV5ZW4gZGF0IHkga2llbiBjdWEgVGh1IHR1b25n IENoaW5oIHBodSwgaG9hYyBjb25nIHZhbiBjdWEgZG9uZyBjaGkgdGh1IHRydW9uZyBCbyBDb25n IGFuIExlIFRoZSBUaWVtIGNoaSBkYW8gQ29uZyBhbiBIYSBOb2kgZGlldSB0cmEgbGFtIHJvLiAN Ck5odSBjaHVuZyB0YSBkZXUgYmlldCB0aW5oIGNoYXQgbmdoaWVtIHRyb25nIGhpZW4gbmF5IGxh IG5odW5nIGNoaSB0aGksIGNoaSBkYW8gYmkgcm9pIHZhbyAiaW0gbGFuZyIgaG9hYyBzdSBkYXAg bGFpIGxhIHN1IHh1eWVuIHRhYywgYm9wIG1lbyBzdSB0aGF0IGRlIHRodWMgaGllbiBjaG8gYmFu ZyBkdW9jIHRoYW0gdm9uZyBjdWEgZGFtIHF1YW4gdGhhbSBuYXkuDQoNClN1IGtoaWV1IG5haSB0 byBjYW8gY3VhIGNodW5nIHRvaSBsYSB0cnVvbmcgaG9wIGhpZW0gY28sIHZ1IHZpZWMgYmkgZHVj IGtob2V0IHh1bmcgcXVhbmggY2FjIGR1IGFuLCBkYWMgYmlldCBsYSBkdSBhbiBrZSBIbyBUYXkg ZGEgZHVvYyBzdSBsdXUgeSBjdWEgQm8gdHJ1b25nIE5ndXllbiBIb25nIFF1YW4sIFRvbmcgVGhh bmggdHJhIENoaW5oIHBodSBUcmFuIFZhbiBUcnV5ZW4gdmEgZG9uZyBjaGkgVHJ1b25nIFZpbmgg VHJvbmcsIFBobyB0aHUgdHVvbmcgQ2hpbmggcGh1IGRhIGRvbmcgdmFpIGRhbiB0aHVvbmcgeHVv bmcgeGVtIHhldCB0YW4gbm9pLiBOaHVuZyBkZSByb2kga2V0IGN1YyBjdWEgbm8gbWEgZGFuIGNo dW5nIHRvaSBkYW5nIHBoYWkgZ2FuaCBjaGl1IG1hIHRvaSBzZSBub2kgdG9pIHNhdSBkYXk6DQoN ClRvaSBkYSBkdW9jIGxhbSB2aWVjIHZvaSBVeSBiYW4gS2llbSB0cmEgUXVhbiB1eSBUYXkgSG8s IHRoYW5oIHRyYSB0dSBRdWFuIGRlbiBUaGFuaCBwaG8sIHRydWMgdGllcCBsYW0gdmllYyB2b2kg VGhhbmggdHJhIENoaW5oIHBodSBkdW9pIHN1IGNoaSBkYW8gY3VhIFBobyB0aHUgdHVvbmcgVHJ1 b25nIFZpbmggVHJvbmcgZGUgZ2lhaSBxdXlldCB2ZSB2aWVjIGR1IGFuIGtlIEhvIFRheSBsYW0g c2FpIHF1eSBob2FjaCBuaGFtIHRydWMgbG9pIGR1YyBraG9ldCBEdSBhbiBjbyBtdWMgZGF1IHR1 IGhhbmcgbmdoaW4gdHkgZG9uZy4gDQpUdSB0aGFuZyA4LzIwMDYgZGVuIHRoYW5nIDEvMjAwNyBU aHUgdHVvbmcgQ2hpbmggcGh1IGdpYW8gY2hvIHRoYW5oIHRyYSBDaGluaCBwaHUgY2h1IHRyaSwg Y3VuZyBCbyBYYXkgZHVuZywgQm8gVGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nLCBWYW4gcGhvbmcg Q2hpbmggcGh1LCBVQk5EIHRoYW5oIHBobyBIYSBOb2ksIGRhaSBkaWVuIFV5IGJhbiBLaWVtIHRy YSBUVywgQmFuIE5vaSBjaGluaCBUVyBjdW5nIHRoYW0gZ2lhIGRlIGtpZW0gdHJhIGxhbSBybywg a2V0IGx1YW4gbm9pIGR1bmcga2hpZXUgbmFpLCB0byBjYW8gY3VhIG1vdCBzbyBjb25nIGRhbiBj dW0gMyBwaHVvbmcgWHVhbiBMYSwgcXVhbiBUYXkgSG8gbGllbiBxdWFuIGRlbiBxdXkgaG9hY2gs IHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQgeHVuZyBxdWFuaCBIbyBUYXksIGRvYW4gZGkgcXVh IGN1bSAzLCBwaHVvbmcgWHVhbiBMYS4gDQpUcm9uZyBiYW4ga2V0IGx1YW4gZGEga2hhbmcgZGlu aDogTm9pIGR1bmcgYmFvIGNhbyBjdWEgVUJORCB0aGFuaCBwaG8gSGEgTm9pIGxhIGtob25nIGR1 bmcgdm9pIHRodWMgdGUgdHJvbmcgdmllYyB0cmllbiBraGFpIGR1IGFuLiBOb2kgZHVuZyBraGll dSBuYWkgY3VhIG5oYW4gZGFuIGN1bSAzLCBwaHVvbmcgWHVhbiBMYSB2ZSB2aWVjIG5hbiBkdW9u ZyBzYWkgcXV5IGhvYWNoIGxhIGNvIGNvIHNvLCBjYWMgYmFuIHZlIHF1eSBob2FjaCBjaGkgdGll dCB0eSBsZSAxLzUwMCBkYSBkdW9jIEtpZW4gdHJ1YyBzdSBUUCBjaGFwIHRodWFuIHZhIFVCTkQg VFAgcGhlIGR1eWV0IHRoYW5nIDExLzE5OTcgbGllbiBxdWFuIGRvYW4gcXVhIGN1bSAzIFh1YW4g TGEsIGNhYyBiYW4gbmdhbmggY3VhIHRoYW5oIHBobyBkYSBjbyB0aW5oIGdpYXUgZGksIGtob25n IHRyaW5oIHJhIGNobyBkb2FuIHRoYW5oIHRyYSwgbWEgZG9uZyBsb2F0IGtldSAiYmkgdGhhdCBs YWMiIGRlIGR1YSByYSBuaHVuZyB0YW0gYmFuIGRvICJkb20iLiANCkNoaSBtb3QgdmllYyBuYXkg dGhvaSBkdSBiaWV0IFRQIEhhIE5vaSBjb2kgdGh1b25nIHBoYXAgbHVhdCBuaHUgdGhlIG5hby4g VmF5IGxhIHF1eSBob2FjaCBkdW9jIHBoZSBkdXlldCB2b2kgImR1b25nIGJhbSBrZSwgc2F0IG1l cCBudW9jIiBkYSBiaSBkaWV1IGNoaW5oIGRlIGR1b25nIHRhY2ggcmEga2hvaSBrZSB4dXllbiBz YXUgdmFvIGtodSBkYW4gY3UuIE5ndW9pIHBoYWkgY2hpdSB0cmFjaCBuaGllbSBsaWVuIHF1YW4g ZGVuIGNhYyBzYWkgcGhhbSwgZHVuZyBkYXUgbGEgb25nIERvIEhvYW5nIEFuLCBQaG8gY2h1IHRp Y2ggVUJORCBUUCBIYSBOb2kgKG1vaSBiaSBtaWVuIG5oaWVtKSwgZGFuaCBzYWNoIGtpZW4gbmdo aSB4dSBseSBnb20gY28gMTEgbmd1b2kuIA0KTmh1bmcgbmdheSBzYXUgZG8gbmh1bmcgbmd1b2kg a2hpZXUgbmFpIHRvIGNhbyBsaWVuIGJpIGR1YSB2YW8gInRhbSBuZ2FtIiBjdWEgVGhhbmggcGhv IEhhIE5vaSwgbWEgdHJ1YyB0aWVwIGxhIG9uZyBEbyBIb2FuZyBBbiBkYSB0aHVjIGhpZW4gbW90 IGxvYXQgY2FjIGN1b2MgY3VvbmcgY2hlICJ0aGFtIHNhdCIgdHJhaSBwaGFwIGx1YXQsIGh1eSBk b25nIGNhIGhlIHRob25nIGNoaW5oIHRyaSwgYm8gbWF5IGNodXllbiBjaGUgZG9jIHRhaSBraWV1 IHBoYXQgeGl0IGRlIGtlbyBkZW4gZGFwIHBoYSBuaGEgY3VhIGN1YSBjaHVuZyB0b2ksIG9uZyBB biBkYSBkdW5nIHRyZW4gcGhhcCBsdWF0IHZhIGR1bmcgbmdvYWkgcGhhcCBsdWF0LiBDYXkgY290 IG5hbiBkdW9uZyBjdWEgZHUgYW4gdmEgbW9jIGdpb2kgcXV5IGhvYWNoIHRyb25nIHZ1b24gZ2lh IGRpbmggdG9pIGR1bmcgc2FuaCB2YWkgbmhhdSBuaHUgbGEgbW90IHRoYWNoIGRvLiANClRoZSBy b2kgZ2lhIGRpbmggdG9pIGRhIHRybyB0aGFuaCBuYW4gbmhhbiBjdWEgaG8gY2h1IGtob25nIGNv biBsYSB0aGFjaCBkbyBudWEuIERvdCBjdW9uZyBjaGUgbmdheSAyNy80LzIwMDcsIGNhYyBjb25n IHRyaW5oIG5hbSBuZ29haSBtb2MgZ2lvaSBxdXkgaG9hY2ggYmkgZGFwIHBoYSB0YW4gaG9hbmcs IGNvIG5oaWV1IGNheSB0cmkgZ2lhIGhhbmcgY2h1YyB0cmlldSBkb25nIGJpIGNoYXQgZHV0IG5n b24gbmdhbmcsIHRhbiBwaGEgdGFuZyB0aHVvbmcuIFRydW9jIGtoaSBjbyBjdW9jIGN1b25nIGNo ZSB4YXkgcmEsIGNodW5nIHRvaSBkYSBjbyByYXQgbmhpZXUgZG9uIGtldSBjdXUga2hhbiBjYXAg ZGVuIFRodSB0dW9uZyBDaGluaCBwaHUsIG5odW5nIG5odSBsYSBtb3Qgc3UgYm8gdHJpIHNhbiwg VGh1IHR1b25nIGRpIGNvbmcgdGFjIGRhaSBuZ2F5IG8gbWllbiBuYW0sIFRQLkhhIE5vaSBkdW9j IGRpcCB0aGEgaG8gbGFtIG11YSBsYW0gZ2lvLiANCkRvdCB0aHUgMiBuZ2F5IDI5LzUvMjAwNyB0 aWVwIHR1YyBjdW9uZyBjaGUgdGllcCA0IGhvIGdpYSBkaW5oIHZhIG5nYXkgMzEvNS8yMDA3IGNh YyBobyBjb24gbGFpLCBtb3Qgc28gaG8gZG8gYmkgYnVjIGVwLCBkZSBkb2EgbmVuIGRhIHBoYWkg ZGF0IGJ1dCBreSAiYmFuIGdpYW8iIGRlIGhvIGRhdCBkdW9jIGhhaSBjaHUgImRvbmcgdGh1YW4i IGJhbyBjYW8gVGh1IHR1b25nIENoaW5oIHBodS4gDQpEb24ga2V1IGN1dSBraGFuIHRoaWV0IGN1 YSBuZ3VvaSBkYW4gZGVuIFRodSB0dW9uZyB2YSBjYWMgY2FwIGxhbmggZGFvLCBUaHUgdHVvbmcg ZGEgY28gc3UgY2FuIHRoaWVwIG5oYWMgbmhvIHZvaSBDaHUgdGljaCBVQk5EIFRQLCBuZ2F5IGNh IGRvbmcgY2hpIFRodW9uZyB0cnVjIEJhbiBCaSB0aHUgVHJ1bmcgdW9uZyBUcnVvbmcgVGFuIFNh bmcgY3VuZyBkYSByYXQgcXVhbiB0YW0gdmEgZGEgY28gbmhhYyBuaG8gSGEgTm9pLCBDaHUgdGlj aCBVQk5EIFRQSE4gY3VuZyBkYSBjbyBsb2kgaHVhIGhlbiB2b2kgVGh1IHR1b25nIENoaW5oIHBo dSwgdGhlIG5odW5nIGxhbiBuYXkgY3VuZyBuaHUgbGEgY28gc3UgYm8gdHJpIHNhbiwgb25nIENo dSB0aWNoICJkaSBjb25nIHRhYyBudW9jIG5nb2FpIiwgb25nIEFuIGNhcCBwaG8gbyBuaGEgbGFp IGR1b2MgZGlwIHRoYSBobyB0dW5nIGhvYW5oIG5nYW5nIGRvYywgZG9jIG5nYW5nLg0KDQpSaWVu ZyBkb2kgdm9pIGdpYSBkaW5oIGN1YSBvbmcgTmdvIEhhIHZhIGJhIFRyYW4gVGhpIERhdCBiaSBj dW9uZyBjaGUgdmFvIG5nYXkgMjkvNS8wNywgbGEgZG9pIHR1b25nIGN1YSBibyBtYXkgY2h1eWVu IGNoZSB0YW4gYmFvIG5odWMgbWEgY29uIG5ndW9pIG1hIG9uZyBEbyBIb2FuZyBBbiBkYSBjaGkg ZGFvLiANCkRheSBsYSBsYW4gdGh1IDIgaG8gY3VvbmcgY2hlIHRyYWkgcGhhcCBsdWF0IGRvaSB2 b2kgZ2lhIGRpbmggbmF5LiBCb24gc2FpIG5oYSBrZW8gZGVuIHZvaSBoYW5nIHRyYW0gbmd1b2kg Z29tIGNvIGNvbmcgYW4sIGNhbmggc2F0IGNhYyBsb2FpLCBsYW0gbGFtIGR1aSBjdWkgcm9pIGRp ZW4ga2hvYSBzbyA4IGRlICJkb2kgdGhvYWkiLiBTYW4gc2FuZyB2dSBjaG8gdG9pIGRhbSAiY2hv bmcgbmd1b2kgdGhpIGhhbmggY29uZyB2dSIuIA0KT25nIE5ndXllbiBCYSBIdW5nLCBQaG8gY29u ZyBhbiBxdWFuIFRheSBIbywgb25nIFBoYW0gRGluaCBQaG9uZywgVHJ1b25nIGNvbmcgYW4gcGh1 b25nIFh1YW4gTGEgdmEgb25nIERpbmggQ2hpZW4gVGhhbmcgY2FuaCBzYXQga2h1IHZ1YyBkdW9p IG5odW5nIG5ndW9pIGhhbmcgeG9tIGRlbiBkZSBjaHVuZyBraWVuIHJhIGtob2kgbmhhIG9uZyBI YS4gDQpIYWkgbGFuIG5odW5nIG5ndW9pIG1hYyBhbyBsaW5oIHZhbyBuaGEgbmFtIG5nb2FpIG1v YyBnaW9pIHF1eSBob2FjaCBkZSBkbyBtaW4gZGV1IGJpIGJhIERhdCB5ZXUgY2F1IHJhIHNhbiwg cGhpYSBuZ29haSBtb2MgZ2lvaSwgaG8gdGhheSBjbyBseSBkYSByYSBuZ29haSwgbmh1bmcgb25n IE5ndXllbiBCYSBIdW5nLCBQaG8gY29uZyBhbiBRdWFuIGNoaSBodXkgbW90IGRvYW4gbmd1b2kg eG9uZyB2YW8gZGluaCBiYXQgbWUgb25nIEhhIGRhbmcgbyB0cm9uZyBuaGEsIGJpIGJhIERhdCBj YW4gbGFpLCBvbmcgTmd1eWVuIEJhIEh1bmcgcmEgbGVuaCBiYW5nIGFtIGhpZXUsDQpvbmcgUGhv bmcgY3VuZyAyIGNvbmcgYW4gbHVjIGx1b25nIGtoYWMgbG9pIHZvIG9uZyBIYSByYSBraG9pIG5o YSwgZG9uZyB0aG9pIGNobyBiYXQgbWUgZGUgb25nIEhhIDkzIHR1b2ksIGN1IHR1eSBnaWEgbmh1 bmcgcmF0IHRpbmggdGFvLCBtaW5oIG1hbiwgZGkgbGFpIGJpbmggdGh1b25nIHZheSBtYSBobyBl cCBibyBjdSBsZW4gY2FuZyBraGllbmcgZGksIGN1IGtob25nIGNoaXUgY28gbmdvaSBkYXkgZGUg cmEga2hvaSBjYW5nLCANCmxpZW4gYmkgbmh1bmcgbmd1b2kga2hpZW5nIGN1IGxheSB0YXkgYW4g Y3UgeHVvbmcgY2FuZywgY29uIG5ndW9pIGtoYWMgdGhpIGR1bmcgbXUgY2FuaCBzYXQgbmhhbSBu aGFtIGNodWMgdXAgbGVuIG1hdCBjdSBuZXUgY3UgbmhvbSBkYXksIA0KaG8gcmFtIHJhcCBraGll bmcgY3UgZGlldSBxdWEgdHJ1b2MgbWF0IG9uZyBIYSBkYW5nIGR1bmcgcXVhbiBzYXQgbyBiYW4g Y29uZyBnYWMgMiBzbyBuaGEgMTIgY3VuZyBuZ28sIGNoaSBtb3QgdGljaCB0YWMgdGhpIG9uZyBI YSBkYSBzYSB2YW8gY2FpIGJheSBjdWEgYm9uIGNodW5nLCBvbmcgSGEgdGhheSBtZSBiaSBiYXQg a2hpZW5nIHF1YSBuaGEgbWluaCBkYW5nIGR1bmcsIGRpbmggY2hheSB4dW9uZyBjYW4gdGhpZXAg bmh1bmcgbW9pIG5ndW9pIGRhIG5nYW4gbGFpLCB4ZSBvIHRvIDExMyBkYSBjaHVjIHNhbiBwaGlh IERpbmggbGFuZyBkYXUgbmdvIDM1NCBob3QgY3UgZGkuDQpPbmcgTmd1eWVuIEJhIEh1bmcgZGEg Y3VuZyBvbmcgRGluaCBDaGllbiBUaGFuZyBjYW5oIHNhdCBraHUgdnVjIHRydWMgdGllcCByYSBn aWFtIHNhdCBiYSBEYXQgdGFpIHBoaWEgbmdvYWkgZGUgbmdhbiBraG9uZyBjaG8gdm8gb25nIEhh IHRpbSBjYWNoIHF1YXkgdHJvIHZhbyBuaGEuIA0KS2hpIGtob25nIGNvbiBhaSB0cm9uZyBuaGEs IHRhaSBzYW4gbmhhIG9uZyBIYSBsaWVuIGR1b2MgaG8gdHUgZG8gInh1IGx5Iiwga2hvbmcgYWkg aGF5IGJpZXQgaG8gZGEgZHV0IHR1aSBuaHVuZyB0YWkgc2FuIHF1eSBnaWEgZ2ksIHZvaSBuaHVu ZyBkbyBkYWMgY29uZyBrZW5oIHRoaSBobyBjaG8gdmF0IGxlbiB4ZSBjaG8gZGksIGtob25nIG5n dW9pIGxhbSBjaHVuZyBiaWVuIGJhbiwgZGVuIGJheSBnaW8gZ2lhIGRpbmggY3VuZyBjaHVhIGJp ZXQgdGFpIHNhbiBnaWEgZGluaCBtaW5oIGNvbiBtYXQgcmEgc2FvLiANClJpZW5nIGN1IERhaSBr aGkgY2h1bmcgdG9pIHZhbyB0aGFtLCBjdSBjaG8gYmlldCBjdSBjbyBzbyB0aWVuIGRvIGJhIGNv biB2YSBjYWMgY29uIGNoYXUgbXVuZyB0dW9pIGN1IHR1IHRldCBuZ3V5ZW4gZGFuIG5heSBsYWkg YmkgY2h1bmcgbm8gY3VvcCBtYXQgcm9pLiANClRyYW5nIHRyb24gbnVhIGxhIHZpZWMgaG8gbmdh bmcgbmhpZW4gYmFuIHRhaSBzYW4gdHJvbmcga2hpIGRhcCBwaGEgbmhhIGN1YSwgZGFwIG5oYSBk ZW4gZGF1IHRydW9uZyBEb2FuIGN1b25nIGNoZSBjaGkgZGFvIGNobyBvbmcgTmd1eWVuIERhbmcg SHVuZywgUGhvIGdpYW0gZG9jIEJRTCBEdSBhbiBrZSBIbyBUYXkgdHJ1YyB0aWVwIGNobyBnb20g aGV0IGxhaSBjaG8gdmUgbGFuIHRhbSBjb25nIG5oYW4gY3VhIEJRTERBIGxhbSBuZ2F5IGNhbmgg ZG8gcGhpYSBkYXUgRGluaCBsYW5nIHZhIGdvaSB4ZSB2YW8gYmFuLCBjaG8gdmUgZGVuIGRhdSBi YW4gaGV0IGRlbiBkbyB0cm9uZyBraGkgZGFuZyAidGhpIGhhbmggY29uZyB2dSIuIA0KRG9uZyB0 aG9pIGJpZW4gdHVvbmcgdmllYyBjdW9wIHRhaSBzYW4gZGUgYmFuIG5heSBiYW5nIHZpZWMgY2hv IG5ndW9pIHhvbmcgdmFvIGhvaSBjdWEgc2F1IGtoaSBobyBkYSAidHUgaG9pIGN1YSIgY2hhbiBj aGUuIENoaSBtb3QgbmhvYW5nIHRob2kgZGEgY28gY2EgbW90IGRhbSBuZ3VvaSBhbyBhbyB4b25n IHZhbyBrZSB0cmFuaCwgbmd1b2kgY3VvcCwgbmd1b2kgdmFjIGNhaSBuYXksIG5ndW9pIGtodWFu IGNhaSBraWEgdHJvbmcgdmFvIHRoYW0gY2FuaCBtYSBuYW8gY2EgbG9uZy4NCg0KVmF5IG1hIG5n YXkgMzAtNS0yMDA3LCBuZ2F5IHNhdSBuZ2F5IG5oYSBvbmcgSGEgYmkgc2FuIGJhbmcgVXkgYmFu IG5oYW4gZGFuIFRQSE4gbGFwIHR1YyBkYSBjbyB0aHUgYmlldSBkdW9uZyBjaGluaCBxdXllbiBx dWFuIFRheSBIbywgcGh1b25nIFh1YW4gTGEgY3VuZyBjYWMgY28gcXVhbiBkb24gdmksIGx1YyBs dW9uZyB0aGFtIGdpYSBHUE1CIGtlIEhvIFRheSB0YWkgY3VtIDMgWHVhbiBMYSByYW5nOiANCiJU aHVjIGhpZW4gY2hpIGRhbyBjdWEgVGh1IHR1b25nIENoaW5oIHBodSxUaGFuaCB1eSwgSERORCB2 YSBVQk5EIFRoYW5oIHBobywgDQp2b2kgcXV5ZXQgdGFtLCB0aG9uZyBuaGF0IHZhIG5vIGx1YyBj YW8gY3VhIGNhIGhlIHRob25nIGNoaW5oIHRyaTsgY3VuZyB2b2kgdmllYyB2YW4gZG9uZywgdGh1 eWV0IHBodWMgY29uZyBkYW4gdHUgZ2lhYyBiYW4gZ2lhbyBtYXQgYmFuZzsgc3UgY2h1YW4gYmkg a3kgbHVvbmcsIGNodSBkYW8gdmUgY28gc28gdmF0IGNoYXQsIGx1YyBsdW9uZy4uLiBxdWFuIFRh eSBIbyBkYSBjaGkgZGFvLCB0byBjaHVjIHRodWMgaGllbiBHUE1CIGtodSB2dWMgY3VtIDMsIHBo dW9uZyBYdWFuIExhIG5oYW5oLCBnb24sIGFuIHRvYW4gdHV5ZXQgZG9pLCBiYW8gZGFtIGR1bmcg cXV5IHRyaW5oLCBxdXkgZGluaCBjdWEgcGhhcCBsdWF0Ii4gDQpUaGF0IGxhIGhvIGJpZXQgY2Fj aCB0byBzb24gZGUgYmFvIGNhbyBUaHUgdHVvbmcgQ2hpbmggcGh1IGxhIGRhIHRodWMgaGllbiAi ZHVuZyIgdGhlbyBjaGkgZGFvIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1IGxhIGRhOiAidGh1eWV0 IHBodWMgY29uZyBkYW4gdHUgZ2lhYyBiYW4gZ2lhbyBtYXQgYmFuZyIgdmEiYmFvIGRhbSBkdW5n IHF1eSB0cmluaCwgcXV5IGRpbmggY3VhIHBoYXAgbHVhdCIuIA0KQ3UgdGhlbyBraWV1IGJhbyBj YW8gbmF5IHRoaSB0aHUgdHVvbmcgbmFvIG1hIGtob25nIHN1b25nLCB2aWVjICJiYXQgZ2l1IG5n dW9pIGJpZW4gdHVvbmciIGhheSBzdSAidHUgaG9pIGN1YSIgbGFtIGdpIGNvLCBzYXUgbmF5IGhv IGJhbyBjYW8gcmFuZzogIm9uZyBIYSBraG9uZyBjbyBtYXQgbyBuaGEsIGNvbiBiYSBEYXQgdGhp IHR1IGRvbmcgYm8gcmEgbmdvYWkgZGUgbGFpIGN1IGdpYSBtb3QgbWluaCwga2hvbmcgdHUgYmFv IHF1YW4gdGFpIHNhbiBkYXkgY2h1Ii4gVGhhdCBsYSBtb3Qgc3UgdnUga2hvbmcgdm8gbGllbSBz aSwgInZ1YSBhbiBjYXAgdnVhIGxhIGxhbmciLg0KDQpMYWkgbm9pIHZlIGN1IENhbyBUaGkgRGFp LCBtZSBvbmcgSGEgc2F1IGtoaSBiaSBiYXQgZ2l1IGJpZW4gdHVvbmcsIG5ldSB0aHVjIHN1IGNo aSB2aSBhbiB0b2FuIGNobyBjdSB0aGkgdHJvbmcgbmdheSBob20gZG8sIG5nYXkgc2F1IGtoaSBk YXAgcGhhIHhvbmcsIGFuIHRvYW4gcm9pIHRoaSBobyBwaGFpIGR1YSB0cmEgY3UgdmUgdmkgaG8g YmlldCBjaGFjIGNoYW4gdm8gY2hvbmcgb25nIEhhIHZhbiBkYW5nIGR1bmcgdHJlbiBnYWMgMiBi YW4gY29uZyBuaGEgc28gMTIgcXVhbiBzYXQgZGFtIG5ndW9pIGhvaSBjdWEuIA0KTmh1bmcgeSBk byBjdWEgaG8gbGEgY29uIG11b24gZ2l1IGN1IGxhaSBkZSB0aHVjIGhpZW4gY2FjIHRybyBuaHVj IG1hIGJvaSB4YXUgY29uIG5ndW9pLiBUcnVvYyB0aWVuIGhvIGJpZW4gY3UgdGhhbmggbmd1b2kg bGFuZyB0aGFuZyBjbyBuaG8sIGtob25nIG5vaSBudW9uZyB0dWEgZGUgIm5ob3QiIGN1IHZhbyBj YWkgInRyYWkgdGUgYmFuIiB2b2kgY2FpIHRlbiBUcnVuZyB0YW0gQmFvIHRybyB4YSBob2kgMywg VGF5IE1vIFR1IExpZW0gSGEgTm9pIG5odSB0b2kgZGEgY28gZGlwIG5ldSBkZW4gdHJvbmcgZG9u IHRvIGNhbyBuZ2F5IDEwLzYvMjAwNyBsYSBvIGRheSBjaG8gZHVvYyBudW9pIG5oaWV1IGhvbiBu Z3VvaS4gDQpBeSB0aGUgbWEgc2F1IGtoaSBkb24gdG8gY2FvIGN1YSB0b2kgZHVvYyBndWkgdG9p IGNhYyBkb25nIGNoaSB0aGkgbmdheSBsYXAgdHVjIGRhbiBjaG8gZHVvYyBkaSBkb2kgZGksIHRh bSBsdW9pIGJhbyBCNDAgY3VuZyBkdW9jIGRvIGJvLCB2dW9uIGNodW9pIGR1b2MgdHUgYm8gc2Fj aCBzZSBkZXAgZGUuIFZheSBsYSBkb24gY3VhIGNodW5nIHRvaSBjdW5nIGRhIGR1b2MgY2FjIHZp IGxhbmggZGFvIHF1YW4gdGFtLCBuaHVuZyBsYWkgbGEgZGFuIGNobywgY2h1IGtob25nIHBoYWkg dm9pIGN1IENhbyBUaGkgRGFpLCBjdSB0aGkgbmd1b2MgbGFpLg0KDQpUcm9uZyBraGkgZG8gY2hp bmggcXV5ZW4gcXVhbiBUYXkgSG8gY3VuZyB2YW4gZ2lvbmcgZGlldSB2dSBraG9uZywgYm9pIHhh dSBuaHVjIG1hIHZvIGNob25nIGdpYSBkaW5oIG9uZyBIYSBuaHUgdHJlbiBkZSBkdWEgbGVuIGtl bmggdHJ1eWVuIGhpbmgsIGxlbiBtYXQgYmFvIHZhIHZhbiBiYW4gdGhvbmcgYmFvIHZlIHRhbiBx dWUgaHVvbmcgb25nIEhhLCBOZ2hlIEFuLCBkZSBkb2kgY29uIGNoYXUgY3UgcGhhaSByYSBkdWEg Y3UgdmUgcXVlLCB2aSBjdSBraG9uZyBwaGFpIGhvIGtoYXUgbyBIYSBOb2k/DQoNClF1ZW4gdGhv aSBjbyB0aWVuIG11b24gbGFtIGdpIG8gY2FpIGRpYSBiYW4gSGEgTm9pIG5heSBkZXUgZHVvYywg aG8gZGVtIGFwIGR1bmcgdmFvIG5nYXkgY2hvIGNhIHRpbmggTmdoZSBhbiwgdG8gY2h1YyBtb3Qg ZG9hbiAxMSBuZ3VvaSBkbyBDaHUgdGljaCBRdWFuIE5ndXllbiBNYW5oIEN1b25nIGNhbSBkYXUg dmFvIFVCTkQgdGluaCBOZ2hlIEFuLCBsZW4gaHV5ZW4gTmdoaWEgRGFuIHJvaSBjdW5nIG5oYXUg dmUgeGEgTmdoaWEgVGh1YW4gZG9pIGNhYyBjb24gY2hhdSBjdSByYSBjYWkgVHJ1bmcgdGFtIGF5 IG1hICJ0aHUgdHVjIGRvbiBjdSIuIA0KRXAgYnVvYyBraG9uZyB4b25nIHZpIGNhYyBjb24gY2hh dSBjdSB0aGFtIGR1IGN1b2MgaG9wIGRvaSBsYXAgYmllbiBiYW4sIGRvaSBobyBwaGFpIGNoaXUg dHJhY2ggbmhpZW0gdm9pIGN1IGdpYSB2byB0b2kuIENhYyBjb24gY2hhdSBkYXQgbmh1bmcgY2F1 IGhvaSByYXQgZ2F0IGdhbzogImN1IHBoYW0gdG9pIGdpIG1hIGNhYyBvbmcgYmF0IGN1PyIsICJj byBnaSBtYSBwaGFpIGVwIGN1IHZlIHF1ZSB0cm9uZyBraGkgY3UgY2hpIG11b24gc29uZyB2b2kg Y29uIHRyYWkgbyBIYSBOb2k/IiB2YSBraGFuZyBkaW5oIGhvIGRhIGJhdCBvIGRhdSBwaGFpIHRy YSBjdSB2ZSBub2kgZG8uDQoNCktob25nIHRodWMgaGllbiBkdW9jIHRyb25nIHF1ZSBobyBrZW8g bmhhdSByYSBIYSBOb2kgdGltIGNhY2ggdnVhIGRlIGRvYSB2dWEgbHVhIG9uZyBIYSB2YW8gY2Fp IHRydW5nIHRhbSBkbyBtYSBuaGFuIGN1LCBuaHUgbmhhbiB0aGFuIG5oYW4gZG8gY2hpbmggbWlu aCBibyByb2ksIGNvbiBobyB2byBjYW4uIEN1b2kgdGhhbmcgNy8yMDA3IFVCTkQgcXVhbiBUYXkg SG8gbGFpIHZhbiBiYW4gdmUgY2hvIGNhYyBjb24gY3UgdHJvbmcgcXVlIGhhbiBjaG8gdHJvbmcg dm9uZyAxMCBuZ2F5IGtob25nIHJhIFRydW5nIHRhbSBCYW8gdHJvIHhhIGhvaSAzIGJhdCBjdSB2 ZSB0aGkgaG8gc2UgYmFvIGNhbyBjYXAgdHJlbiBjdWEgaG8gY2hvICJ4dSBseSB0aGVvIHBoYXAg bHVhdCIuDQpHaW8gZGF5LCBjdSBDYW8gVGhpIERhaSBkYW5nIGhhbmcgbmdheSBiaSBnaWFtIGdp dSBiaWVuIHR1b25nLCBjdSBjYW4gZHVvYyB0cmEgdHUgZG8sIHF1eWVuIGNvbmcgZGFuIGN1YSBj dSBwaGFpIGR1b2MgYmFvIGRhbSB2YSB0b24gdHJvbmcgZG8gbGEgcXV5ZW4gYmF0IGtoYSB4YW0g cGhhbSB2ZSB0aGFuIHRoZSwgbmhhIG8gdmEgdGFpIHNhbi4NCg0KVHJvbmcgZG9uIHRvIGNhbyBs YW4gdHJ1b2MgdG9pIGNvIG5vaSBkZW4gdmllYyBhcCBjaGUgdmEga2h1bmcgYm8gbGEgY2FjaCBs YW0gY3VhIGNoaW5oIHF1eWVuIHF1YW4gVGF5IEhvIGhpZW4gbmF5IG1hIGRpZW4gaGluaCBsYSB2 aWVjIG9uZyBQaHVvbmcgVmFuIEhvaSwgY3VtIDEgWHVhbiBMYSBiaSBjYW5oIHNhdCBraHUgdnVj ICJob2kgdGhhbSIgdmEgYmkgZGUgZG9hIGJhbmcgZGllbiB0aG9haSBraGkgb25nIGNvIG5oaWV1 IGRvbiB0aHUgdG8gY2FvIHZlIHZpZWMgY3VvcCBkYXQgZGkgdGljaC4gDQpCYXkgZ2lvIGJhdCBk YXUgZGVuIGx1b3QgdG9pLCBvbmcgTG9uZywgZG9pIHRydW9uZyBkb2kgYW4gbmluaCBDb25nIGFu IHF1YW4gVGF5IEhvIGN1bmcgZGEgZGVuICJob2kgdGhhbSIgdG9pIHZpIGNvIGFpIGRvIGRhIGR1 YSBiYWkgbGVuIGludGVybmV0IG1hIGhvIG5naGkgdmFuIGNobyBsYSB0b2kuIFRvaSBnaWEgdHVv aSByb2kgZGF1IGNvIGJpZXQgaW50ZXJuZXQgbGEgY2FpIGdpIG1hIGhvIGJhbyB0b2kgZHVhIGJh aSBsZW4gaW50ZXJuZXQsIGtob25nIG5naGkgbmdvIGR1b2MgdG9pIGhvIHF1YXkgc2FuZyB0cmEg dmFuIGRlIGNvdCBjb24gdHJhaSB0b2kgdmkgbm8gY28gbWF5IHRpbmggdmEgY28gbm9pIG1hbmcg aW50ZXJuZXQgdHJvbmcgbmhhLCBwaGFpIGNoYW5nIGRheSBsYSBjYWkgY28gZGUgZGFuIGRlbiBi YXQgYm8gbmd1b2kgdHJvbmcgZ2lhIGRpbmggdG9pLiANClRvaSBkaSBob2kgbmhpZXUgbmd1b2kg dGhpIGR1b2MgYmlldCB0cmVuIG1hbmcgaW50ZXJuZXQgY28gZGFuZyB0YWkgYmFpIGRvIG1vdCBs dWF0IHN1IG5hbyBkbyBkdWEgbGVuIHZvaSB0aWV1IGRlOiAibm9pIGxlbiBtb3Qgc3UgdGhhdCB0 aGlldSBkYW4gY2h1IG8gVmlldCBOYW0iIG1hIG5vaSBkdW5nIGJhaSBsYSBkb2kgdHJhIHR1IGRv IGNobyBjdSBDYW8gVGhpIERhaSA5MyB0dW9pIGJpIENvbmcgYW4gYmF0IGdpdSBiaWVuIHR1b25n IHR1IG5nYXkgMjkvNS8yMDA3IHRoZW8gZG9uIHRvIGNhbyBjdWEgdG9pIG5nYXkgMTAvNi8yMDA3 LiANClZheSBsYSBsYW4gbmF5IGhvIGxhaSBjbyB0aW5oIHF1eSBjaHVwIGNobyBjaHVuZyB0b2kg dmUgY2hpbmggdHJpIGRlIGRlIGRhbmcgdHJvbmcgdmllYyB0cmEgdGh1IGdpYSBkaW5oIHRvaSBj aGFuZyA/IFN1IHRyYW5nIHRyb24gbyBkYXkga2hvbmcgY29uIGdpIGRlIGNoZSBkYXkgbnVhIQ0K DQpUaHVjIGhpZW4gbW90IGN1b2MgY3VvbmcgY2hlIG1hIGtob25nIHR1YW4gdGhlbyBtb3QgcXV5 IGRpbmggbmFvIGN1YSBwaGFwIGx1YXQ6IGJhdCBuZ3VvaSwgY3VvcCBjdWEgZ2l1YSBiYW4gbmdh eSBuaHVuZyBsYWkgbm9pICJ0aHVjIGhpZW4gdGhlbyBzdSBjaGkgZGFvIGN1YSBUaHUgdHVvbmcg Q2hpbmggcGh1Ii4gDQpDaHVuZyB0b2kgZGF0IGNhdSBob2ksIGJhbiB0YXkgbmFvIGRhbmcgbmdh bSBuZ2FtIGNoaSBkYW8gbmh1bmcgdGhhbSBxdWFuIG5heSBtYSBobyBkYW0gbmdhbmcgbmhpZW4g bmh1IHZheT8gUGhhaSBjaGFuZyBjYWkgdmllYyBiYXQgZ2l1IG5ndW9pIGJpZW4gdHVvbmcsIHZp ZWMgInR1IGhvaSBjdWEiIGRlbSBiYW4gbmF5IGxhaSBjdW5nIGxhIGRvIHN1IGNoaSBkYW8gY3Vh IFRodSB0dW9uZyBDaGluaCBwaHUuIA0KQ3VuZyBjaGFuZyBraG8gZGUgcGhhaSB0aW0ga2llbSwg Ym9uZyBkYW5nIGxvIGRhbmcgY3VhIHN1IGNoaSBkYW8gbmF5IHRodWMgY2hhdCBubyBuZ2F5IHRy b25nIGNhYyB2YW4gYmFuLCBoYXkgdGhvbmcgYmFvIG1hIFRheSBIbyBsdW9uIGx1b24gYmFtIGxh eSBsYSB2aWVjIGd1aSBiYW8gY2FvIHZ1b3QgY2FwIGxlbiBWYW4gcGhvbmcgQ2hpbmggcGh1IGxp ZW4gcXVhbiB2aWVjIGdpYWkgcXV5ZXQgY3UgRGFpIG1lIG9uZyBIYSwgaG8gcGhhaSB0b24gbmhp ZXUgdGhvbmcgYmFvLCBwaGFpIHRvbiB0aWVuIGN1YSBuaGEgbnVvYyBkZSB2YW8gdGFuIHF1ZSBv bmcgSGEga2hpIGhvIG11b24gZG8gY2FpIGxvaSBsZW4gZGF1IHZvIGNob25nIG9uZyBIYS4gDQpM YW0gdGhlIGhvIG1vaSBjaG9pIGR1b2MgdG9pLiBOZ29haSByYSB2aWVjIGd1aSBiYW8gY2FvIHZ1 b3QgY2FwIG5heSBjb24gbGEgdm9pIGNodSB5IG11b24gZ3VpIGNobyBuZ3VvaSBkYW4gbW90IHRo b25nIGRpZXAgbWFuZyB0aW5oIHRoYWNoIGRvIHJhbmcgZHVuZyBsYSBobyBkYW5nIGR1b2MgVmFu IHBob25nIENoaW5oIHBodSBiYW8gY2hlLCBub2kgZ29tIG5odW5nIG5ndW9pIHRoYW4gY2FuIHZv aSBUaHUgdHVvbmcsIHRoYW0gbXV1IHRydWMgdGllcCBjaG8gVGh1IHR1b25nIHRyb25nIG1vaSB2 YW4gZGUsIHZheSB0aGkgbGFtIGdpIFRheSBIbyBjb24gcGhhaSBzbyBhaSBudWEsIGtlIGNhIGxh bSBzYWk/IFZpZWMgbmF5IGNoYWMgb25nIFZ1IHRydW9uZyBWdSBraGlldSBuYWkgdG8gY2FvIHRo dW9jIFZhbiBwaG9uZyBDaGluaCBwaHUgYmlldCBybz8NCg0KU3UgdmllYyBvIGRheSBxdWFuaCBI byBUYXkgbmF5IGNoaSB0aGF5IGtob25nIGNvIGRhbiBjaHUsIGdpYSBkb2ksIHRhbiBiYW8sIHZp IHBoYW0gbmhhbiBxdXllbiwga2hvbmcgY28gcGhhcCBsdWF0LCBoYW5nIGxvYXQgbmh1bmcgdmkg cGhhbSB0aGFtIG5odW5nIGFuIGNhcCBkZXUgYmkgYnVuZyBiaXQsIHRyYSB0aHUgbmd1b2kga2hp ZXUgbmFpIHRvIGNhbyBsYSBtb3QgdGh1YyB0ZSBkYSB2YSBkYW5nIHRvbiB0YWkgbyBkYXksIG8g cXVhbmggSG8gVGF5IG5heS4gVGEgdGh1IGRpIGRlbiBwaHVvbmcgUXVhbmcgQW4gdGhpIHRoYXkg cm86DQoNCi0gTyBraHUgdnVjIEJlbiBDaHVtOiBkaWVuIHRpY2ggOC4wODBtMiwgY2FjaCBtZXAg bnVvYyBIbyBUYXkgYmEgYm9uIHRyYW0gbWV0LCBraG9uZyBuYW0gdHJvbmcgcXV5IGhvYWNoIGR1 IGFuIGtlIEhvIFRheSwgbmh1bmcgdGhhbmggcGhvIEhhIE5vaSBtYSB0cnVjIHRpZXAgbGEgcGhv IGNodSB0aWNoIERvIEhvYW5nIEFuIGN1bmcgdm9pIFF1YW4gVGF5IEhvLCBwaHVvbmcgUXVhbmcg QW4gdmEgQmFuIFFMREEga2UgSG8gVGF5IGRhIGxvaSBkdW5nIGR1IGFuIGtlIEhvIHRheSBkZSBj dW9wIGRhdCBjdWEgZGFuIHBodWMgdnUgY2hvIG11YyBkaWNoIGtpbmggZG9hbmgsIA0KdHJvbmcg a2hpIGRvIG9uZyBBbiBsYWkga3kgcXV5ZXQgZGluaCBjaG8gQmFuIFFMREEga2UgSG8gVGF5IGR1 b2MgcGhlcCBsYW0ga2luaCBkb2FuaC4gTmhhbiBkYW4gY28gZGF0IGtodSBCZW4gQ2h1bSBkYSBn dWkgYmlldCBiYW8gZG9uIHRodSB0byBjYW8gbmh1bmcgY2hpbmggcXV5ZW4gdGhhbmggcGhvIGRv bmcgbG9hIGRlIHF1YW4gVGF5IEhvIGNvIHRpbmggY3VvcCBkYXQgY3VhIGRhbi4gTmdheSA1LzYv MjAwNyBVQk5EIHF1YW4gVGF5IEhvIHJhIHF1eWV0IGRpbmggY3VvbmcgY2hlIHZhIG5nYXkgOC83 LzIwMDcgdGh1YyBoaWVuIHZpZWMgY3VvbmcgY2hlIHNhdSBraGkgZGEgc2FuIHBoYW5nIG1heSBj aHVjIGhvIGdpYSBkaW5oIHRhaSBDdW0gMyBYdWFuIExhLiANClRydW9jIHZpZWMgQ2hpbmggcXV5 ZW4gZHVuZyBxdXllbiBsdWMgZGUgZGFuIGFwIGRhbiwgYmFuZyBtb2kgY2FjaCBhcCBjaGUgZGFu LCBuaGluIHRoYXkgYm8gbWF5IGRvYyB0YWkga2lldSBwaGF0IHhpdCBjdW9uZyBjaGUgZGFuIG8g cGh1b25nIFh1YW4gTGEsIGNhYyBobyBkYW4gbyBRdWFuZyBBbiBxdWEgc28gaGFpIHBoYWkga3kg YmFuIGdpYW8sIGRlbiBidSBuaHUgdGhpIG5odSBjaG8sIGxvbmcgZGFuIGNodWEgY2hhdCBkYXkg bm9pIGNhbSBnaWFuLiANCkNvbiBjYWMgcXVhbiBjaHVjLCBuaHVuZyBuZ3VvaSBjaHVjIGNvIHRp ZW4gZGUgZGF1IHR1IHRhaSBraHUgQmVuIENodW0gbGFtIENhdSBMYWMgYm8gRGFtIFNlbiB0aGkg aGEgaGUsIGJhbmcgY2hhbiBuaHUgdmFpLCBobyBjaG8geGF5IGR1bmcgbmdheSBjYWMgY29uZyB0 cmluaCBraWVuIGNvIGFuaCBodW9uZyBkZW4gY2FuaCBxdWFuIHRydW9jIGRpIHRpY2ggbGljaCBz dSB4ZXAgaGFuZyBjYXAgcXVvYyBnaWEgbGEgRGluaCBRdWFuZyBCYS4NCg0KLSBUYWkgR29pIHRo YXUgc28gMTI6IEJhIEhvYW4sIG1vdCBjYW4gYm8gdHJvbmcgQlFMREEga2UgSG8gVGF5IGRhIGxh cCBraG9uZyB2YW8gdHJvbmcgcGh1b25nIGFuIGRlbiBidSBnaWEgZGluaCBiYSBDaHVjIE1haSBk ZSBydXQgMTAgdHJpZXUgZG9uZy4gS2hpIGJpIHRvIGNhbyBjaGluaCBxdXllbiBxdWFuIFRheSBI bywgcGh1b25nIFF1YW5nIEFuIGN1bmcgQmFuIFFMREEga2UgSG8gVGF5IGRhIHF1YXkgc2FuZyB0 cmEgdGh1IGdpYSBkaW5oIG5heS4gDQpRdXkgaG9hY2ggY2hpIGxheSB0dSBtZXAgaG8gdmFvIDEw LDVtIGRlIGxhbSBkdW9uZyBuaHVuZyBnaWEgZGluaCBiYSBDaHVjIE1haSBiaSBsYXkgdmFvIHNh dSBob24gMjRtLiBNYW5oIGRhdCBuaGEgYmEgY2h1YyBNYWkgY28gOSBnaWEgZGluaCBjYWMgY29u IHNpbmggc29uZywgbHVjIGRhdSBEdSBhbiBsYW0gOSBwaHVvbmcgYW4gZGVuIGJ1IG5odW5nIHNh dSBraGkgYmkgdG8gY2FvIGhvIGNobyB4dW9uZyBjb24gMyBwaHVvbmcgYW4gZGUgc28gdGllbiBk ZW4gYnUgYmkgc3V0IHh1b25nLiBUYWkgZG9hbiBrZSBxdWEgbmhhIGhhbmcgUGh1b25nIE5ndXll biwgZHVvbmcgdmEga2UgbGFpIGR1b2MgbmFuIHJhIG5nb2FpIG1hdCBudW9jIGRlbiBob24gMTBt Lg0KDQotIFRhaSBHb2kgdGhhdSAyMTogTmFuIHF1eSBob2FjaCBsYW4gcmEgcGhpYSBobywgY2hv IGNhdCBsYXAgaG8gZGUgY28ga2h1IGRhdCB2YWkgY2h1YyBuZ2hpbiBtZXQgdnVvbmcgY2hpYSBj aG8gY2FjIHF1YW4gY2h1YyB2YSBjaGlhIGxvIGJhbi4gQ2hvIHhheSAzOCBraSBvdCBsYW4gdmFv IHRyb25nIG1vYyBnaW9pIHF1eSBob2FjaCBkZSBjaG8gdGh1ZSwgZG9uIHRodSBraGlldSBuYWkg dG8gY2FvLCB0cnVjIHRpZXAgQ2h1IHRpY2ggVFAgTmd1eWVuIFF1b2MgVHJpZXUgaHVhIGdpYWkg cXV5ZXQgcGhhIGJvIG5odW5nIG5heSB2YW4gbmdhbmcgbmhpZW4gdG9uIHRhaT8NCg0KLSBEaWVu IHRpY2ggMSwzOGhhIHRhaSBwaHVvbmcgUXVhbmcgQW4gbGEgZGF0IGRhdSB0aGF1IGxheSB0aWVu IHhheSBkdW5nIGtlIEhvIFRheSwgbmh1bmcgaG8gZGEgY2hvIHRob25nIHRoYXUgZ2lhIHJlIG1h dCwgZGF1IHRoYXUgMSwzOGhhIG5odW5nIGtoaSBnaWFvIGNoaSAwLDhoYS4gU28gY29uIGxhaSBj aGlhIG5oYXUgaHVvbmcsIEdpYW0gZG9jIGR1IGFuIEhvYW5nIFZhbiBMb2MgY3VuZyBjbyBzdWF0 IHRyb25nIGtoaSBvbmcgZGEgY28gYmlldCB0aHUgY3VuZyBkYXQgZGFpIHJvbmcgbG9uIHRhaSBt ZXAgYm8gSG8gVGF5IHBodW9uZyBRdWFuZyBBbiBuYXkuDQoNClN1IGFpIG9hbiBjdWEgbmd1b2kg ZGFuIFF1YW5nIEFuIGRhIGR1b2MgdGhlIGhpZW4gcXVhIGJhaSB0aG8gImhhbmggdHJpbmgga2hp ZXUga2llbiIgbWEgY2hhYyBjYWMgcXV5IFZpIGRhIGR1b2MgZG9jIGtoaSBuaGFuIGRhbiBRdWFu ZyBBbiBndWkgdG9pLg0KDQpOZ2F5IG8gWHVhbiBMYSBuYXkgdmllYyBkZW4gYnUga2hvbmcgbWF0 IG51b2MgZGUgcnV0IGxheSAxNjIgdHJpZXUgdGFpIHNvIG5oYSAzNzIgTGFjIExvbmcgUXVhbiBk YSB0aHVjIGhpZW4gc3VvbiBzZSwga2hpIGJpIHBoYW4gYW5oIGhvIG5vaSBsYSBobyBzZSB0aHUg aG9pIGxhaSwga2hvbmcgYmlldCB0aHUgaG9pIGRlbiBkYXUuIFN1IHZpZWMgZGllbiByYSBzYXQg bmFjaCBnaWEgZGluaCB0b2kuVmllYyBydXQgcnVvdCBjb25nIHRyaW5oIG1hIHRvaSBkYSBkZSBj YXAgZGVuLCBrZXQgbHVhbiB0aGFuaCB0cmEgQ2hpbmggcGh1IGNvIG5oYWMgZGVuLCB2YXkgbWEg Y3VuZyBkdW9jIGJvIHF1YT8gVmllYyBjbyB0aW5oIG1vIGNvbiBkdW9uZyBub2kgeHVvbmcgaG8g ZGUgbGF5IGhvbiAxLjAwMG0yIGRhdCBuZ29haSBxdXkgaG9hY2ggY3VhIGRhbiwgdHJvbmcga2hp IGNhY2ggZG8gMTJtIGRhIGNvIHNhbiBkdW9uZyB4dW9uZyBobyByb2kuDQoNCktob25nIHRoZSBk ZSBEYW5nIHZhIE5oYSBudW9jIG1hdCBsb25nIHRpbiBjdWEgbmhhbiBkYW4gbWFpIGR1b2MsIGNo dW5nIHRvaSBraWVuIG5naGkgY2FjIGRvbmcgY2hpIGxhbmggZGFvIERhbmcgTmhhIG51b2MgdmEg bmhhdCBsYSBUaHUgdHVvbmcgQ2hpbmggcGh1IGhheSBjaG8gbW8gY3VvYyBkaWV1IHRyYSBsYW0g cm8gdHJhY2ggbmhpZW0sIHN1IHZpIHBoYW0gcGhhcCBsdWF0IHRyYW5nIHRyb24gbmF5IHZhIHh1 IGx5IHRoaWNoIGRhbmcuIEN1IHRoZToNCg0KLSBUcmEgdHUgZG8gbmdheSBjaG8gY3UgQ2FvIFRo aSBEYWkgOTMgdHVvaSB0aGVvIGR1bmcgcXV5IGRpbmggY3VhIHBoYXAgbHVhdC4gS2hvbmcgdGhl IGR1bmcgc3VjIG1hbmggdmEgcXV5ZW4gbHVjIGN1YSBOaGEgbnVvYyBiYXQgZ2l1IHZhIGN1b25n IGJ1YyBjdSBnaWEgOTMgdHVvaSBkYW5nIHNvbmcgYmluaCB5ZW4gY3VuZyBjb24gY2hhdSB0aGFu aCBuZ3VvaSBsYW5nIHRoYW5nIGNvIG5obyBraG9uZyBub2kgbnVvbmcgdHVhLCBzdSBkdW5nIGR1 IGNhYyBwaHVvbmcgdGllbiB2dSBraG9uZywgYm9pIG5obyBjb24gY2hhdSBjdSwgZG8gbG9pIGNo byBjb24gY2hhdSBjdSwgY2hvaSB0b2kgYmFuZyBjYWNoIGJhdCBuZ3VvaSB0aGFuIHZhbyBUcnVu ZyB0YW0gQmFvIHRybyAzIFRheSBNbyBUdSBMaWVtIG1hIGRvbiBjdSwgY29uIGhvIGR1bmcgbmdv YWkgY3VvYywgdm8gY2FuLg0KDQotIFBoYWkgeHUgbHkgbmh1bmcga2UgbG9pIGR1bmcgY2h1YyBx dXllbiwgdHJhIHRodSBuZ3VvaSBraGlldSBuYWkgdG8gY2FvLiBLaG9uZyB0aGUgZGUgRGFuZywg TmhhIG51b2MgdmEgQ2hpbmggcGh1IG1hbmcgdGllbmcga2hvbmcgYmFvIHZlIGR1b2Mgbmd1b2kg a2hpZXUgbmFpIHRvIGNhbyB2YSB0aGFuIG5oYW4gY3VhIGhvOiBjdSBDYW8gVGhpIERhaSAtIDkz IHR1b2kgdmkgY29uIGNoYXUgY3UgbmdoZSB0aGVvIGxvaSBrZXUgZ29pIGN1YSBEYW5nLCBOaGEg bnVvYyB2YSBDaGluaCBwaHUgdGhhbSBnaWEgdGljaCBjdWMgY2hvbmcgdGhhbSBuaHVuZyB0YWkg Q3VtIDMsIHBodW9uZyBYdWFuIExhLCBxdWFuIFRheSBIbywgSGEgTm9pIG5heS4NCg0KLSBMYW0g cm8gdmllYyBuaHVuZyBrZSBkYSBsb2kgZHVuZyBUaHUgdHVvbmcgQ2hpbmggcGh1IGRlIHZpIHBo YW0gcGhhcCBsdWF0LiBLaG9uZyB0aGUgZGUgdGhhbmggcGhvIEhhIE5vaSBzYXUga2hpIGRhIHRo dWMgaGllbiBkdW9jIGN1b2MgdHJhIHRodSB0cmFpIHBoYXAgbHVhdCwgdGFuIGtob2Mgdm8gbmhh biB0aW5oIHZhIGhldCBzdWMgYmFuIHRoaXUgbmF5IHhvbmcgbGFpIGNob2kgdG9pIGJhbmcgdmll YyByZXUgcmFvIGxhIHRodWMgaGllbiAidGhlbyBjaGkgZGFvIGN1YSBUaHUgdHVvbmcgQ2hpbmgg cGh1Ii4NCg0KLSBQaGFpIGNobyB0aGFuaCB0cmEgdGllcCBjYWMgbm9pIGtoYWMgdHJlbiB0b2Fu IHR1eWVuIGtlIEhvIFRheSBtYSBuaHUgVGhhbmggdHJhIENoaW5oIHBodSBjbyBsYW4gZGEgZGUg bmdoaQ0KDQpUb2kgZGEgY28gdGh1IGNvIGRvbiBndWkgdG9pIGRvbmcgY2hpIFRydW9uZyBCYW4g dG8gY2h1YyBUVyB0byBjYW8gbmh1bmcgY2FuIGJvIGNvIHF1eWVuIGNhbyBjaHVjIHRyb25nIHRy ZW4gVGhhbmggcGhvIGNobyB0b2kgbmh1bmcga2UgZHVvaSBxdXllbiB2aSBwaGFtIHBoYXAgbHVh dCBuZ2F5IHRhaSBwaHVvbmcgWHVhbiBMYSBub2kgdG9pIGN1IHRydSBuaHUgbmd1eWVuIGNodSB0 aWNoIHBodW9uZyBOZ3V5ZW4gWHVhbiBEaW5oIGxhIG1vdCBrZSBsdWEgZGFvIGRhIGNvIGtldCBs dWFuIGN1YSB0aGFuaCB0cmEgdGhhbmggcGhvIHRyb25nIHZ1IGx1YSBkYW8gYmEgTmd1eWVuIFRo aSBCaWNoIER1bmcgNTIgUGhhbiBEaW5oIFBodW5nIGRlIGNoaWVtIGRvYXQgdGFpIHNhbiBjdWEg YmEgRHVuZyBsdWMgRGluaCBjb24gbGEgQ2h1IHRpY2ggVUJORCBwaHVvbmcgWHVhbiBMYSwgbmh1 bmcgRGluaCB2YW4geWVuIHZpLCANCmRlbiBRdWFuIE5nb2MgQW5oIGNodSB0aWNoIGhpZW4gdGFp IGR1IHRodSBuaHVuZyBuaGlldSBkYW4gZGVuIG5vaSBuZ3VvaSBkYW4gYWkgY3VuZyB0aHVvYyBj YXUgIlRoYW5nIGNodSB0aWNoIHRydW9jIGRhIGRldSBnaWEgbHV1IG1hbmgsIHRoYW5nIGNodSB0 aWNoIHNhdSBjb24gZGV1IGdpYSBsdXUgbWFuaCB2YSBraG9uIG5hbiBob24sIGNvIHRvaSA0IGJh bmcgZGFpIGhvYywgdHJvbmcgZG8gY28gbW90IGJhbmcgbHVhdCwgbmh1bmcgbGFpIGxhICJsdWF0 IHJ1bmciLCBjdW5nIHZvaSBjYW4gYm8gZGlhIGNoaW5oIHRoYW8gdHVuZyB2ZSBkYXQgZGFpIGJp ZW4gdHUgdGhvIGNhbmggc2FuZyB0aG8gY3UgdmEgbmd1b2MgbGFpIGdheSByYSBiYW8gYmF0IGJp bmggY2hvIGRhbiBjaHVuZy4gDQpDYWMgb25nIGNhbiBibyBVQk5EIHF1YW4gVGF5IEhvIG5odSBv bmcgQ2h1IE5nb2MgVHVhdCwgbmd1eWVuIGxhIGNodSB0aWNoIHJvaSBCaSB0aHUgYmFvIG5oaWV1 IHRvaSwgYmF1IGJpIHRodSBraG9uZyB0cnVuZyBwaGFpIHJhIGRpLCBuaHVuZyB2YW4gY29uIGx1 eWVuIHRpZWMgY28gYmFtIGxheSBtb3QgdmkgdHJpIHRhaSBkdSBhbiBUYXkgSG8gVGF5IG5oaWV1 IHRpZW4sIGxhbSBkYXQgZGUgbGFtIGFuLiANCk9uZyBOZ3V5ZW4gUGh1YyBRdWFuZywgVHJ1b25n IGNvbmcgYW4gUXVhbiBiaSB0byBnaWFjIGNvIGxpZW4gcXVhbiBkZW4gY2FjIHNvbmcgYmFjLCBs aWVuIHF1YW4gZGVuIEJvbmcgRGUsIGRlbiBOYW0gQ2FtLCBiYW8gY2hpIGR1YSB0aW4geG9uIHhh byBtb3QgdGhvaSByb2kgaW0gbGFuZywgDQpraG9uZyBtb3QgbG9pIGNhaSBjaGluaCB2YW4gbmd1 eWVuIHZpLCBuYXkgbmdoZSB0aW4gZHVvYyBzYW5nIGxhbSBjaHUgdGljaCBVQk5EIHF1YW4gVGF5 IEhvIGhheSBCaSB0aHUgUXVhbiB1eSBnaSBkbywgDQpjb24gb25nIFZ1IEhvbmcgS2hhbmgsIEJp IHRodSBRdWFuIHV5IHJhIHN1YyBiYW8ga2UgY2hvIHZpZWMgY3VvcCBkYXQgZGkgdGljaCBjaHVh IFZhbiBOaWVuIJYgZGluaCBYdWFuIFRhbyBTbyB4YXkga2hhY2ggc2FuIHR1IG5oYW4gdmEgY2hp IGRhbyBodXkgZG9uZyBjYSBoZSB0aG9uZyBjaGluaCB0cmkgcXVhbiBUYXkgSG8gdmFvIHZ1IGN1 b25nIGNoZSB0cmFpIHBoYXAgbHVhdCB0cm9uZyB0aGFuZyA0LCB0aGFuZyA1IHZ1YSBxdWEgbGFp IHRydW5nIGN1IHZlIHRoYXkgdmkgdHJpIG9uZyBMZSBRdXkgRG9uIGtoaSBvbmcgRG9uIHZ1YSBi aSBtaWVuIG5oaWVtIQ0KDQpLaW5oIHRodWEgY2FjIGRvbmcgY2hpLA0KDQpDaHVuZyB0YSBoaWVu IG5heSBjbyB0aGFuaCB0cmEsIGtpZW0gdHJhLCBkaWV1IHRyYSBjYWMgY2FwIGN1IG5odSBsYSBs dW9pIHRyb2kgZGF5IGRhYyBsYW0gc2FvIGNobyB0aG9hdCwgc3UgdGh1YyBuaHUgY2h1bmcgdGEg ZGEgdGhheS4gTGEgbW90IERhbmcgdmllbiBzb20gZ2lhYyBuZ28gY2FjaCBtYW5nIHR1IGhvaSBt aW5oIHZhIGhvaSBkZW4gY2FjIGRvbmcgY2hpLCBjdSBuaHUgdGhlIG5heSBEYW5nIHRhIG5heSBs YSBjdWEgYWksIHNlIGRpIGRlbiBkYXUgPw0KDQpLaW5oIG1vbmcgZHVvYyBzdSBxdWFuIHRhbSBj dWEgY2FjIGRvbmcgY2hpLCB4aW4gdHJhbiB0cm9uZyBjYW0gb24uLy4NCg0KS2luaCB0aHUNCkRh byBWYW4gSHVlDQpTbyAzNzQgTGFjIExvbmcgUXVhbiwgQ3VtIDMgWHVhbiBMYSwgVGF5IEhvLCBI YSBOb2kNCkRUOiA4MzYyODczDQoNCkhBTkggVFJJTkggREFOIERJIEtISUVVIEtJRU4NCg0KUGh1 b25nIFF1YW5nIEFuIGdpdWEgbG9uZyBIYSBOb2kNCkNhY2ggdG9hIG5oYSBRdW9jIGhvaSB2YWkg Y2F5DQpUaW5oIHRoZW8gZHVvbmcgY2FuaCBjaGltIGJheQ0KS2lhIERpbmggVGh1IHR1b25nLCBv IG5nYXkgdGFtIG5oaW4NCk1hIHNhbyB0aGF5IG11b24gbmdoaW4gY2FjaCB0cm8NCk5odSBzYW8g dHJlbiB2dSB0cnUgeGEgdm9pDQpDaHVuZyBzaW5oIG51b2MgbWF0IGRheSB2b2kNCkRvbiB0aHVh IGtoYXAgY2EsIGNoYW5nIG5vaSBuZ28gbmdhbmc/DQoNCkFpIGxlIHBodSwgeGluIGR1bmcgdmUg dm9pDQpIYXkgbmhpbiB4ZW0sIG5vbmcgbm9pIGRhbiBkZW4NCkN1YSBuaGEgZGFwIHBoYSB0YW4g aG9hbmcNClNvbmcgbmhvIHNhbiBQaHUsIG11YSB0cmFuIG5hbmcgdGhpZXUNCkx1YXQgZGF0IGRh aSwgdHVuZyBkaWV1IHF1eSBkaW5oDQpOYW8gdGhvbmcgdHUsIG5naGkgZGluaCBybyByYW5nDQpM dWF0IGJhbiB0aGkgY3UgdmllYyBiYW4NCkNoaW5oIHF1eWVuIGNvIHNvIGN1IGxhbSBraG8gZGFu DQoNCkRhdCBsYW4gY2hpZW0sIGNoYXkgdGllbjogU28gZG8NCkRhdCB0aG8gY3U6IERhbmcgY28g dGhhbmgga2hvbmcNClRyYW0gcGh1b25nIG5nYW4ga2UgbHVhIGRhbg0KQm90IGRhdSwgYm90IGN1 b2kgY2hpIGNhbiB0aWVuIHRob2kNCkx1YSBzYW8gbGF5IGR1b2MgZGF0IHJvaQ0KRGFuIGRlbiB0 aGkga2UgdGhheSBkb2kgZGFuIGRlbg0KVGhvaSB2byBjYW0sIGRhIHF1ZW4gdm8gY2FtDQpUZSBo YW5oIGRhbiwgdGhhbmggbmFuIGxhdSByb2kNCk1hdCBuaGEsIG1hdCBkYXQgdGEgdG9pDQpNbyBo b2kgaG9hIGxlIHRpbSBub2kgZ2lhaSBiYXkNCg0KRGF5OiBEdSBhbiBIbyBUYXksIG5vaSBtYWkN ClhvbmchIFhvbmcgcm9pISB2YW4gbGFpIGNodWEgeG9uZw0KVGhhIGhvIGxheSBkYXQgY3VhIGRh bg0KTXVhIGRpLCBiYW4gbGFpLCB2YW4gY2FuIGJhbiB0aGVtDQpTYXUgdHJhbSB0eSBkYXUgdGll biBwaGUgZHV5ZXQNClJvaSBibyBzdW5nLCB4ZW0geGV0IHRhbmcgY3VvbmcNCkRlbiBuYXkgc28g dHkgY2EgbmdoaW4NCkR1b25nIGtlIGhvIHZhbiBnaGFwIGdoZW5oIGNodWEgeG9uZw0KVGllbiBk dSBhbiBibyBzdW5nOiB0eSwgdHkNCkR1b25nIHF1YW5oIGhvIHZhbiBjaGkgbmh1IHh1YQ0KRGFu IGRlbiBkYXUga2hvIHZhdCB2bw0KUGhhIG5oYSBsYXkgZGF0IGdpYSBjdSB0YW4gdGFuaA0KVmkg aWNoIG51b2MgZGFuIGxhbmggbnVvdCBsZQ0KR2lhbyBkYXQsIG5oYSBjaGFuZyBrZSB0aGlldCBo b24NCk5hbyBuZ28gRHUgYW4gbHVhIGRhbg0KVHJ1IHRyZW4sIGJvdCBkdW9pLCB4b2F5IHZhbiAu Li4gbGFpIHF1YQ0KRGF0IGxhbiBjaGllbSB0aGk6IE8ga2UNClRobyBjdSBsYWkgaG9hIGxpZW4g a2Ugbmh1IGtob25nDQpNYXkgZG9pIGRhdCBjdWEgY2hhIG9uZw0KS2hpIGxlbiBwaHVvbmcgYW46 IGRhdCBraG9uZyBib2kgdGh1b25nDQoNCkRhbiBidWMgeHVjIGxlbiBwaHVvbmcga2hpZXUgbmFp DQpUcmEgbG9pIHJhbmc6IFNhaSB0YWkgY2FwIHRyZW4NClF1YW4gZGF5LCBkYW4gbGFpIGtlbyBs ZW4NCk5oYW4gZG9uIHF1eSBRdWFuIGxhbmcgaW0gbmh1IHRvDQpWYWkgY2h1YyBiYW4gZG9uIHR1 IGRpIGxhaQ0KTGFpIG5odW5nIG5oYW5nOiBDb24gZG9pIGNhcCB0cmVuDQpNb2kgbW9uIGRvaSBz dW90IG5hbSBsaWVuDQpEYXQgdGh1LCBuaGEgcGhhLCBtYSB0aWVuIHRoaSBjaHVhDQpNZSBnaWEs IGNvbiB0cmUgYm8gdm8NCk1vdCBkb2kgZ2lhbmggZHVtLCBwaHV0IGdpbyB0YW4gaG9hbmcNCg0K TWF5IGNvIGJhbyBDb25nIGFuIHRoYW5oIHBobyAoSENNKQ0KVGhhdSBsb25nIGRhbiwgZ2l1cCBk byBkb2kgZGlldQ0KQmFvIGRhbmcgbW90IHNvbSBtb3QgY2hpZXUNCk5oYW4gc2FpLCBRdWFuIGh1 YSBzdWEgZGlldSBsYW0gc2FpDQpOaHVuZyB0aGFuZyBsYWkgcXVhIG5nYXkgbGFuIGx1YQ0KTmhh biBzYWkgcm9pIGtob25nIHN1YSBjaG8gZGFuDQpOYXkgUGh1b25nLCBtYWkgUXVhbiBjaG9uIGNo YW4NCk1vaSBtb24gdHJ1b2MgY3VhIGNvbmcgcXV5ZW4gbGF5IHZhbg0KDQpLaGkgdGh1IGRhdCBs YW5oIGJhbmcsIGFwIGRhdA0KUGhhIG5oYSBkYW4ga2hvbmcgY2h1dCBkYW4gZG8NCkRlbiBidSBu aHUgdGhpLCBuaHUgY2hvDQpOaGFuIHF1eWVuIC0geGluIGNvIGNvIG1vIGhhbyBodXllbg0KTGFw IHBodW9uZyBhbiBkdW5nIHF1eWVuIGFwIGRhdA0KVmllYyBkdW5nIHNhaSwgZHVvYyBtYXQgZG8g dGllbg0KRGFuIGRpIGtoaWV1IGtpZW4gdHJpZW4gbWllbg0KRG9uIHR1IHhlcCBkbyBjbyB0aWVu IG1vaSB4b25nDQpEdW9uZyBraGlldSBraWVuLCB0dSB0cmVuIHh1b25nIGR1b2kNCkxvaSB0cmlu aCBiYXksIHR1IGR1b2kgbGVuIHRyZW4NClZvbmcgcXVhbmggaW0gbGFuZywgbGFuZyBpbQ0KRGUg ZGF1LCBjdW9pIGNvIGRhbiBkZW4gbWFjIGxvbmcNCkRhIHF1YSBsYWk6IGxvbmcgdm9uZyBjYWMg Y3VhDQpRdWFuIGJlbmggcXVhbiwgbXVvbiB0aHVhIHRoZSByb2kNCkRhbiBkZW4gY2hpIGJpZXQg a2V1IHRyb2kNCk5nb25nIHZlIFF1b2MgaG9pIGd1aSBsb2kgdGhpZXQgdGhhDQpOZ29uZyB2ZSBk aW5oIHF1b2MgZ2lhIG5ndXllbiB0aHUNCkd1aSBub2kgbmllbSB0aGVvIGdpbyBtb25nIG1hbmgN Ck5odW5nIG5ndW9pIGRhaSBkaWVuIGNobyBkYW4NCk5odW5nIG5ndW9pIG5heSBtdWMgY2FtIGNh biBudW9jIG5oYQ0KR2l1YSBraW5oIHRoYW5oOiBDYWMgdG9hLCBjYWMgUGh1DQpDYWMgQm8sIEJh bi4uLmRhbiBjaHUgcGhhcCBxdXllbg0KTWEgZGFuIGNoaXUgbm9pIG9hbiBraGllbg0KUGhhIG5o YSwgbGF5IGRhdCBkdW5nIHF1eWVuIGVwIGRhbg0KVHJlbiBjaGUsIGR1b2kgZGF5IHZhbiBlbQ0K TGFtIG5nbywgdm8gY2FtLCBkYW4gZGVuIHRoaWV0IHRob2kNClF1YW5nIEFuIG5hbyBjbyB4YSB4 b2kNCkdpdWEgbG9uZyBIYSBOb2ksIGdpdWEgbm9pIEtpbmggS3kNClRvYSBRdW9jIGhvaSBraWEg a2lhOiBnYW4gbGFtDQpOaHVuZyB4YSB2b2ksIGN1YSBjYW0gdHVvbmcgY2FvDQpCbywgQmFuIG8g dGl0IHRyZW4gY2FvDQpCaWV0IGRhbiBraG8gZGVuIG11YyBuYW8gY2hvIGNoYW5nDQpIb24gZGF0 IG1hIGJpZXQgbm9pIG5hbmcNClRoaSBvbmcgRHUgYW4gaGFtIHJhbmcgY2hhbmcgY29uDQpEYW4g ZGF1IHRoYXkgbWluaCBjb24gbGEgZ29jDQpEZSBjYXkgbmhvIHBoYXAgbHVhdCBjaG8gY2hlDQpM b2kgZGFuIG5hbyBjbyBhaSBuZ2hlDQpCdW5nIHRhaSwgYml0IG1hdCBtb3QgcGhlIGNhIHJvaQ0K RGFuIGNoaSBiaWV0IG5oaW4gdHJvaSB0aGFuIHRobw0KR2l1YSBjYWMgdG9hLCBjYWMgcGh1LCBj YWMgYmFuDQpEZW4gdHJvaSBzb2kgeGV0IGNobyBjaGFuZw0KVmkgZGFuIC0gZGFuIGNodSwgVmll dCBOYW0gcGhhcCBxdXllbg0KDQpEb25nIHRobyBuYXkgZ3VpIG5pZW0gbW9uZyBkb2kNClF1YW4g dGhhbmggbGllbSB0aHVvbmcgdG9pIGRhbiBsYW5oDQpMYW0gbmdvIHRoZSBtYWkgc2FvIGRhbmgN CkxvbmcgZGFuIG9hbiBoYW4sIHNlIHRoYW5oIGJhbyBnaW9uZw0KUXVhbiB0aGFtIG5odW5nIGJl IGRvbmcsIGNhbmggbWFuaA0KTmh1bmcgY29uIG5ndW9pIG1hdSBsYW5oLCB2byBsdW9uZw0KUXVh biBuYW8gY2hpbmggdHJ1YyBjYW4gdHJ1b25nDQpUaHVvbmcgZGFuIHhpbiBoYXkgdGltIGR1b25n IGdpdXAgZGFuDQpOaHVuZyBuZ3VvaSBuYXkgbXVjIGNhbSBjYW4NCkRhbiBiYXUgc2FvIG5vIGRl IGRhbiB0aGlldCB0aG9pDQoNCkNodW5nIGRhbiB4aW4gY28gZG9pIGxvaQ0KSG9hIG1heSBkZW4g ZHVvYyB0YXkgbmd1b2kgdGhhbmggbGllbQ0KRHUgY2hvIGNoaSBtb3QgcGhhbiBuZ2hpbg0KTW9p IG1vbiBuZ2F5IHRoYW5nLCBuaWVtIHRpbiBoZXQgcm9pDQpDaGkgY29uIG9hbiBoYW4gZGF5IHZv aQ0KIlF1YW4gS2UiIGJpZXQgdGh1LCBkYW4gdG9pIG1hdCBuaGENCkdpdWEgbG9uZyBIYSBOb2kg ZGF1IHhhDQpDYWMgcXVhbiBjaGllbSBkYXQsIHBoYSBuaGEgbHVvbmcgZGFuDQpUaWVuIGRlbiBi dSBkYXQgZ2FuIG1hdCB0cmFuZw0KTmhhIGNhYyBxdWFuIGhvYW5oIHRyYW5nIG1vYyBsZW4NCkRh biBrZXUsIHRyZW4gZHVvaSBsYW5nIGltDQpDaGluaCBwaHVvbmcgdGhhbSBuaHVuZywgcGhhaSB0 aW0gZGF1IHhhDQpWYWkgYmEgY2h1YyB0eSBtb3QgbmhhDQpDdWEgliB0aWVuIHRpZXUgZHUgZGVu IGJhIGJvbiBkb2kNCkFpIGNvaSB4aW4gZGVuIG1hIGNvaQ0KRGF0IGRhbiB0aGFuaCBtb3QgY28g bmdvaSBRdWFuIEtlDQpDYSBuaGEgcXVhbiBoYSBoZSBob25nIGdpbw0KS2hpIGRhbiBsYW5oIG5n b2kgZG8gdHJhbmcgdGF5DQpIb2kgYWksIGFpIHRoYXUgbm9pIG5heQ0KQ28geGEgZGF1IGNodSwg byBuZ2F5IFRheSBIbw0KRGFuIGdvYyBnYWMgdGh1IGRvIEhhIE5vaQ0KRGF0IG5naGluIGRvaSBj b24gbm9pIG5naGllcCBjaGENCkNhY2ggdG9hIFF1b2MgaG9pIGtob25nIHhhDQpDYWNoIERpbmgg VGh1IHR1b25nIGNoaSBsYSBwaHV0IGdpYXkNCk1hIGRheSwgZGFuIGNoaXUgZG9hIGRheQ0KRG9p IGRvbiBkaSBraGFwLCBjaGFuZyBhaSBuZ28gbmdhbmcNCk5vaSBsb25nIGRhbiBkYXQgUXVhbmcg QW4NCiJIYW5oIHRyaW5oIGtoaWV1IGtpZW4gY2FjIHF1YW4uLi4ga2UgSG8iLg0KDQpDYWMgaG8g ZGFuIGxpZW4gcXVhbiBkdSBhbiBrZSBIbyBUYXkgdGFpIFF1YW5nIEFuDQoNCmh0dHA6Ly9kZGRu LmNvbS52bi8yMDA4MTIxNzExNDYyMjk1MGNhdDg0L2R1LWFuLXhheS1kdW5nLWhhLXRhbmcta3kt dGh1YXQteHVuZy1xdWFuaC1oby10YXktZGVuLWJ1LWJhdC1taW5oLmh0bSAxNy8xMi8yMDA4IC0x MTo1NyBBTQ0KDQpIYSBOT2k6IER1IGFuIFhheSBkdW5nIEhhIHRhbmcga3kgdGh1YXQgeHVuZyBx dWFuaCBIbyBUYXkgLSBEZW4gYnUgYmF0IG1pbmgNCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5u ZXQvMjAxMC0wNC0xMi1xdXktaG9hY2gtaGEtbm9pLW5odS12YXktbG8tcXVhLQ0KDQpIYSBOb2k6 IFF1eSBob2FjaCBIYSBOb2kgbmh1IHZheTogTG8gcXVhIQ0KDQpEZW4gdGhvaSBkaWVtIGNodWFu IGJpIHBoYWkgdHJpbmggUXVvYyBob2ksIERvIGFuIHZhbiBjb24gbmhpZXUgdmFuIGRlIGxvbiBj aHVhIGR1b2MgDQp0aG9uZyBuaGF0IG5nYXkgdHJvbmcgbm9pIGJvIG5ob20gbmdoaWVuIGN1dQ0K DQoiLi4uVmFpIHRybyBjdWEgSE4gbGFpIGhhdSBuaHUga2hvbmcgY28sIHJhdCBtbyBuaGF0IiBL aWVuIHRydWMgc3UgUXV5IGhvYWNoIExlIE1hbmggDQpDdW9uZyB0cmFuIHRybzogIm5ldSB0aGVv IGtlIGhvYWNoIHZhIHRpZW4gZG8gZHVvYyBkYXQgcmEgdHJvbmcgTmdoaSBxdXlldCBzbyAxMi9O US0NCkNQLCB0aGkga2hvbmcgY29uIGR1IHRob2kgZ2lhbiBkZSBjaGluaCBzdWEgdmEgY2FwIG5o YXQgbnVhLiBTYXUgbmF5IGtoaSBEbyBhbiBkdW9jIA0KZHV5ZXQsIHZpZWMgdGh1b25nIHh1eWVu IHBoYWkgYmFvIGNhbyB4aW4gQ2hpbmggcGh1IGNobyBkaWV1IGNoaW5oIGN1YyBibyBzZSBsYSB0 YXQgeWV1IA0Ka2hvbmcgdGhlIHRyYW5oIGtob2kgdHJvbmcgcXVhIHRyaW5oIHRyaWVuIGtoYWkg dGh1YyBoaWVuLiBEaWV1IGRvIHNlIGFuaCBodW9uZyBraG9uZyANCm5obyBkZW4gbW9pIHRydW9u ZyBkYXUgdHUgdmEgaGlldSBxdWEgZGF1IHR1IHBoYXQgdHJpZW4gVGh1IGRvLi4uIiANCg0KaHR0 cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDIzLzIwMTAwNjAyMTYzOTU2 LmFzcHggTmd1eWV0IE1pbmggMDIvMDYvMjAxMCAxNjozOSANCg0KSGEgTm9pOiBDYW4gbGFtIHJv IGRpbmggaHVvbmcgdGhvYXQgbHUgdHJvbmcgcXV5IGhvYWNoIA0KDQooQW5oOiBEdW9uZyBwaG8g SGEgTm9pIG1lbmggbW9uZyBudW9jIGNoaSBzYXUgbW90IHRyYW4gbXVhIGxvbiAtIEFuaCBUcnVv bmcgU29uKQ0KDQooVE5PKSBEbyBsYSBraWVuIG5naGkgY3VhIFV5IGJhbiBLaW5oIHRlIGN1YSBR dW9jIGhvaSAoUUgpIGtoaSBuZ2hlIGJhbyBjYW8gdmUgZG8gYW4gDQpxdXkgaG9hY2ggY2h1bmcg eGF5IGR1bmcgdGh1IGRvIEhhIE5vaSBkZW4gbmFtIDIwMzAgdmEgdGFtIG5oaW4gZGVuIDIwNTAg dHJ1b2MgUUggDQpzYW5nIG5heSwgMi42LiANCg0KTmdvYWkgdmllYyBjaG8geSBraWVuIHZlIG5o dW5nIG5vaSBkdW5nIGR1b2MgZG9uZyBkYW8gbmd1b2kgZGFuIHF1YW4gdGFtIG5odSB2aWVjIA0K aGFuIGNoZSBuaGFwIGN1IHZhbyBsb2kgZG8gdGhpIGN1LCBkdSBraWVuIHhheSB0cnVuZyB0YW0g aGFuaCBjaGluaCBxdW9jIGdpYSB0YWkgQmEgVmkgDQpoYXkgeGF5IGR1bmcgdHJ1YyBUaGFuZyBM b25nIG1hIFRoYW5oIE5pZW4gZGEgZGUgY2FwLCBVeSBiYW4gS2luaCB0ZSBjdW5nIGJheSB0byBz dSANCmJhbiBraG9hbiB2ZSB0b25nIHZvbiBkdSBraWVuIGRhdSB0dSB4YXkgZHVuZyBoYSB0YW5n IGt5IHRodWF0IHR1IDIwMTAgZGVuIDIwNTAgDQpraG9hbmcgOTAgdGkgVVNELCB0cm9uZyBkbyBr aHVuZyBoYSB0YW5nIGNoaWVtIHR1IDQwIGRlbiA1MCUgdG9uZyB2b24gbmh1IG5vaSBkdW5nIA0K cXV5IGhvYWNoIEJvIFhheSBkdW5nIGRlIHRyaW5oLiANCg0KVGhlbyBDaHUgbmhpZW0gVXkgYmFu IEtpbmggdGUgSGEgVmFuIEhpZW4sIHZvbiBkYXUgdHUgY2hvIGhhIHRhbmcgdGhlbyBxdXkgaG9h Y2ggDQpjYW4gZHVvYyB0aW5oIHRvYW4ga3kgaG9uIGRlIGJhbyBkYW0gY2FjIHlldSBjYXU6IHBo YWkgY2FuIGN1IHZhbyBuaHVuZyBub2kgZHVuZyBjb25nIA0KdmllYyBjYW4gcGhhaSBsYW0gZGUg ZGF0IG11YyB0aWV1IGN1YSBxdXkgaG9hY2gsIGtob25nIHBoYWkgY2FuIGN1IHZhbyBuaHVuZyBu b2kgZHVuZyANCmNvIHRoZSBsYW0gZHVvYzsgY2FuIGN1IHZhbyBzdSBwaHUgaG9wIGN1YSBuaHUg Y2F1IHZvbiBkYXUgdHUgY2hvIGhhIHRhbmcgZGUgdGh1YyBoaWVuIA0KRG8gYW4gdm9pIHRvYyBk byB0YW5nIHRydW9uZyBraW5oIHRlIGN1YSBUaHUgZG8gdHJvbmcgY2FjIGdpYWkgZG9hbiBjdWEg cXV5IGhvYWNoOyB2YSANCnZvbiBkYXUgdHUgY2hvIGhhIHRhbmcgZGUgdGh1YyBoaWVuIERvIGFu IHF1eSBob2FjaCBUaHUgZG8gY2FuIGRhdCB0cm9uZyBjYW4gZG9pIHZvbiANCmRhdSB0dSB0b25n IHRoZSBjdWEgY2EgbnVvYyBjaG8gY2FjIGR1IGFuLCBjb25nIHRyaW5oIGtoYWMgKG5odSBwaGF0 IHRyaWVuIGRpZW4gaGF0IG5oYW4sIA0KZHVvbmcgc2F0IGNhbyB0b2MgSGEgTm9pIC0gVFAuSENN Li4uKS4NCg0KVGhlbyBDaHUgbmhpZW0gSGEgVmFuIEhpZW4sIG5nb2FpIHZpZWMgY2FuIGJhbyBk YW0gZHVuZyBxdXkgZGluaCBjdWEgTHVhdCBRdXkgDQpob2FjaCBkbyB0aGkgdmUgdmllYyBjb25n IGJvIGxheSB5IGtpZW4gY2FjIHRhbmcgbG9wIG5oYW4gZGFuIGRlIGhvYW4gdGhpZW4gRG8gYW4s IGNvIA0KcXVhbiBsYXAgcXV5IGhvYWNoIHZhIGNodSB0cmkgdGh1YyBoaWVuIGNhbiBuZ2hpZW4g Y3V1IGJpZW4gcGhhcCwgaGluaCB0aHVjIHR1eWVuIA0KdHJ1eWVuLCBwaG8gYmllbiwgZ2lhaSB0 aGljaCBuaHVuZyBkaW5oIGh1b25nIGN1YSBEbyBhbiBkZSBjbyBxdWFuLCB0byBjaHVjIHZhIG5o YW4gZGFuIA0KbmhhbiB0aHVjIGR1bmcsIHF1YSBkbyB0cmFuaCBzdSB4YW8gdHJvbiB2ZSB0YW0g bHkgY3VhIG5oYW4gZGFuLCB0cmFuaCBsb2kgZHVuZywgdGFvIGRvdCANCmJpZW4gdmUgZ2lhIGRh dCwgdmUgdGhpIHRydW9uZyBiYXQgZG9uZyBzYW4uIA0KDQpVeSBiYW4gS2luaCB0ZSBjdW5nIGRv bmcgdGhvaSBkZSBuZ2hpIGNhbiBjbyB2YW4gYmFuIHJpZW5nIHF1eSBkaW5oIHZlIHZpZWMgcXVh biBseSANCnRodWMgaGllbiBEbyBhbiBxdXkgaG9hY2ggbmF5IHRoZW8gcXV5IGRpbmggY3VhIEx1 YXQgUXV5IGhvYWNoIGRvIHRoaS4gIkNhbiBoZXQgc3VjIA0KY2h1IHkgdmFuIGRlIHF1YW4gbHkg dHJpZW4ga2hhaSBzYXUga2hpIHF1eSBob2FjaCBkdW9jIGR1eWV0LCBraGFjIHBodWMgdGluaCB0 cmFuZyANCmJ1b25nIGxvbmcgcXVhbiBseSwga3kgbHVhdCBraG9uZyBuZ2hpZW0sIHRpbmggbmhp ZW0ga3ksIGRlIGRhbmcgZGlldSBjaGluaCB0cm9uZyB0byANCmNodWMgdGh1YyBoaWVuIHF1eSBo b2FjaCwgZ2F5IGxhbmcgcGhpIHRpZW4gY3VhIGN1YSBOaGEgbnVvYyIsIENodSBuaGllbSBIYSBW YW4gSGllbiANCm5oYW4gbWFuaC4NCg0KTGllbiBxdWFuIGRlbiBtb2kgbG8gdmUgdGluaCB0cmFu ZyB1bmcgbmdhcCBjdWMgYm8gc2F1IG1vaSB0cmFuIG11YSB0YWkgSGEgTm9pLCBVeSBiYW4gDQpL aW5oIHRlIHlldSBjYXUgcXV5IGhvYWNoIG5ldSBybyBkaW5oIGh1b25nIHBob25nIGNob25nIHZh IHRob2F0IGx1IGN1YSBUaHUgZG8ga2hpIA0KcGhhdCB0cmllbiBoZSB0aG9uZyBkdW9uZyB2YW5o IGRhaSwgY2FjIGRvIHRoaSB0aGVvIGNhYyB0cnVjIGdpYW8gdGhvbmcgZHUga2llbiwgdHJhbmgg dGluaCANCnRyYW5nIGNhYyB0cnVjIGdpYW8gdGhvbmcgdmEgY2FjIHZhbmggZGFpIHRybyB0aGFu aCB2YXQgY2FuIHRvYyBkbyB0aG9hdCBsdS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi90 aW5uaGFuaC8yMDEwMTAvSGEtTm9pLWRhbmctbHVuLXR1bmctbmdheS05NDIwNzEvIChUaGVvIERh dCBWaWV0KSAwODo0MiwgMTQvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaSBkYW5nIGx1biB0dW5n IG5nYXkNCg0KQ2FjIGtldCBxdWEgbmdoaWVuIGN1dSBjaG8gdGhheSwga2hvbmcgY2hpIGNvIFRQ LkhDTSBkYW5nIGNvIGhpZW4gdHVvbmcgbHVuLCBtYSBIYSANCk5vaSBjdW5nIGRhbmcgbHVuIHR1 bmcgbmdheS4gTmd1eWVuIG5oYW4gZHVvYyBjaGkgcmEgZG8gbGEgdmllYyBraGFpIHRoYWMgbnVv YyBuZ2FtIA0KYnVhIGJhaSB2YSBzdSB0aGlldSBxdXkgaG9hY2ggZG9uZyBiby4NCg0KS2V0IHF1 YSBuZ2hpZW4gY3V1IHZlIGNhdSB0cnVjIG5lbiBkYXQgeWV1IG8gZGF5IGRvIExpZW4gZG9hbiBE aWEgY2hhdCBUaHV5IHZhbiAtIERpYSANCmNoYXQgY29uZyB0cmluaCB0aGkga2h1IHZ1YyBiYW4g ZGFvIExpbmggRGFtIHZhIFRoYW5oIENvbmcgY28gbmd1eSBjbyByYXQgY2FvIHZlIGJpZW4gDQpk YW5nIGx1biBraGkgeGF5IGR1bmcgY29uZyB0cmluaCBob2FjIGtoaSBjbyBraGFpIHRoYWMgbnVv YyBkdW9pIGRhdCBxdWEgbXVjLiANCg0KVGhlbyBtb3QgbmdoaWVuIGN1dSBkYSBjb25nIGJvIGN1 YSBWaWVuIEtob2EgaG9jIGNvbmcgbmdoZSB2YSBraW5oIHRlIHhheSBkdW5nIEhhIA0KTm9pIChT byBYYXkgZHVuZyBIYSBOb2kpLCBIYSBOb2kgbW9pIG5hbSBsdW4gdmFpIGNodWMgbW0gbGEgY2h1 eWVuLi4uICJiaW5oIA0KdGh1b25nIiEgTmh1bmcga2h1IHZ1YyBzdXQgbHVuIGRhbmcgY2h1IHkg bGEgVGhhbmggQ29uZyB2b2kgNDEsNDJtbS9uYW0sIE5nbyBTaSANCkxpZW46IDMxLDUybW0vbmFt LCBQaGFwIFZhbjogMjIsMTYgbW0vbmFtLi4uDQoNCihBbmg6IFN1dCBsdW4gZGUgZG9hIGRlbiBz dSBhbiB0b2EgY3VhIGNhYyB0b2EgbmhhIGNhbyB0YW5nLi4uKEFuaCBtaW5oIGhvYSkNCg0KTmd1 eSBjbyBjYW8NCg0KUEdTLlRTIERvIE1pbmggVG9hbiwgbmd1eWVuIENodSBuaGllbSBraG9hIERp YSBjaGF0LCBUcnVvbmcgRGFpIGhvYyBNbyAtIERpYSANCmNoYXQgSGEgTm9pIGNobyBiaWV0OiBL aHUgdnVjIG5vaSB0aGFuaCBIYSBOb2kgbGEgbm9pIHBoYW4gYm8gcm9uZyByYWkgbmVuIGRhdCB5 ZXUsIG5vaSANCmNvIG5ndXkgY28gYmllbiBkYW5nIGx1biB0aGFwIG5oYXQgY28gdGhlIGxhIEto dSBkbyB0aGkgbW9pIE5hbSBUaGFuZyBMb25nLiBDb24gbGFpLCANCmNhYyB2aSB0cmkgY28gbmVu IGRhdCB5ZXUgZHVvYyB4ZXAgdmFvIGRhbmcgbmd1eSBjbyBnYXkgYmllbiBkYW5nIGx1biBjYW8g bGEgTmdvYyANCktoYW5oLCBHaWFuZyBWbyAoa2h1IHZ1YyB4dW5nIHF1YW5oIGtodSBuaGEgQjYg R2lhbmcgVm8pLCBUaGFuaCBDb25nLCBUaGFuaCANCk5oYW4gKGdhbiBiZW5oIHZpZW4gVGhhbmgg Tmhhbik7IFZpZXQgSHVuZywgTWUgVHJpLCBNeSBEaW5oLCBCYW4gZGFvIExpbmggRGFtLiANCkRh bmcgbmdhaSwgbGEgbmh1bmcga2h1IHZ1YyBjbyBuZ3V5IGNvIGNhbyBuaHUgdmF5IGxhaSBkYSB2 YSBkYW5nIGR1b2MgY2hvbiBkZSB4YXkgDQpkdW5nIGNhYyBraHUgZG8gdGhpIG1vaSB0cm9uZyBk byBiYW8gZ29tIG5oaWV1IG5oYSBjYW8gdGFuZy4NCg0KVGhlbyBUUyBEbyBNaW5oIFRvYW4sIHZp ZWMgaGEgbXVjIG51b2MgbmdhbSBkYW5nIHRpZW0gYW4gbW9pIG5ndXkgY28gbG9uIHZlIHZpZWMg DQpzZSBnYXkgYmllbiBkYW5nLCBkbyB2byBjYWMgY29uZyB0cmluaCB4YXkgZHVuZy4gU3Ugc3V0 IGx1biBkYW5nIGxhbSBtYXQgZGkgc3UgY2hpbmggeGFjIA0KY3VhIHRvYW4gYm8gc28gbGlldSB2 ZSBkbyBjYW8gdHV5ZXQgZG9pIC0gc28gbGlldSBkYWMgYmlldCBxdWFuIHRyb25nIHRyb25nIHZp ZWMgdGhpZXQga2UgdGhpIA0KY29uZy4gQmVuIGNhbmggZG8sIHN1dCBsdW4gZGFuZyBsYSBuZ3V5 ZW4gbmhhbiAidGllcCB0YXkiIGNobyBoaWVuIHR1b25nIG5nYXAgbHV0LiANCg0KQ29uZyB0cmlu aCBjaHVhIHNhcCBuZ2F5DQoNClRoZW8gUEdTLlRTIERvIE1pbmggVG9hbiwgZGUgYW4gdG9hbiBr aGkgeGF5IGR1bmcgY29uZyB0cmluaCB0cmVuIG5lbiBkYXQgbHVuIGNhbiANCnBoYWkgdGltIGRl biBjbyBxdWFuIGNodXllbiBuZ2FuaCBjbyBnaWF5IHBoZXAgaGFuaCBuZ2hlLCBjYW4gYm8gdGh1 YyBoaWVuIHBoYWkgY28gDQpraW5oIG5naGllbSwgdXkgdGluLiBWaSBkdSBuaHUgVmllbiBLaG9h IGhvYyBDb25nIG5naGUgWGF5IGR1bmc7IFZpZW4gS2hvYSBob2MgDQpDb25nIG5naGUgR2lhbyB0 aG9uZyB2YW4gdGFpOyBUb25nIGNvbmcgdHkgdHUgdmFuIHhheSBkdW5nIFRodXkgTG9pOyBUb25n IGNvbmcgdHkgdHUgDQp2YW4geGF5IGR1bmcgZ2lhbyB0aG9uZyB2YW4gdGFpOyBDb25nIHR5IHR1 IHZhbiB4YXkgZHVuZyBkaWVuIDEuLi5TYXUgZG8sIHZpZWMgdGhpZXQga2UgDQp0aGkgY29uZyB0 cmluaCBjYW4gdGluaCBkZW4gY2FjIHNvIGxpZXUga2hhbyBzYXQgZGlhIGNoYXQuIEt5IHN1IHRo aWV0IGtlIG5lbiBtb25nIHBoYWkgDQp0aGF0IGFtIGhpZXUgdmEgY28ga2llbiB0aHVjIHZlIGRp YSBjaGF0IHZhIGN1b2kgY3VuZyBsYSB0dWFuIHRodSBuZ2hpZW0gdGhpZXQga2UgdGhpIGNvbmcg DQpkYSBkdW9jIGRlIHJhLg0KDQpNb3QgYmFuIGRvIGNoaSB0aWV0IHBoYW4gdnVuZyBuZW4gZGF0 IHlldSBvIEhhIE5vaSBkYSBkdW9jIHhheSBkdW5nIHZhIGNoaSByYXQgcm8ga2h1IA0KdnVjIGNv IG5ndXkgY28gY2FvIHZlIHN1dCBsdW4uIFR1eSBuaGllbiwgZGFuZyBidW9uLCBjYWMgc28gbGll dSBuYXkgZ2FuIG5odSBiaSBibyBxdWVuLiANClRyb25nIGtoaSBkbywgS1MgTGUgVHUgSGFpIGNo byBiaWV0IG1vdCBraG9hbmcgcm9uZyB0cm9uZyBsb25nIGRhdCBkYSBoaW5oIHRoYW5oIHZhIA0K a2hhIG5hbmcgY2hpdSBsdWMsIGNoaXUgdGFpIHRyb25nIGN1YSBuZW4gZGF0IHJvbmcgbmF5IGxh IHJhdCBrZW0uIFZpIHZheSwgY3VuZyB2b2kgaGllbiANCnR1b25nIGx1biwgbmhpZXUgaGF1IHF1 YSBrZW0gdGhlbyBtYSBraG9uZyBwaGFpIG1vdCBzb20gbW90IGNoaWV1IGNvIHRoZSBuaGFuIHRo dWMgDQpkdW9jIGxhIG5ndXkgY28gYmllbiBkYW5nLCBkbyB2byBjYWMgY29uZyB0cmluaCB4YXkg ZHVuZy4gSGF1IHF1YSBkZSBuaGFuIHRoYXkgaG9uIGxhIA0Kbmh1bmcgYmllbiBkYW5nLCBudXQg dGFpIGNhYyBjb25nIHRyaW5oIGNvIG1vbmcgbm9uZy4gVFMgTmd1eWVuIFZhbiBEYW4sIExpZW4g ZG9hbiANCnRydW9uZyBMaWVuIGRvYW4gRGlhIGNoYXQgVGh1eSB2YW4sIERpYSBjaGF0IGNvbmcg dHJpbmggVmlldCBOYW0gY2hvIGJpZXQgSGEgTm9pIGxhIA0KdnVuZyBjbyBuZW4gZGlhIGNoYXQg ZHVvYyB4ZXAgdmFvIG5ndXkgY28gc3V0IGx1biBjYW8gZG8gbmFtIHRyb25nIGtodSB2dWMgZG9u ZyBiYW5nLCANCm1vaSBoaW5oIHRoYW5oIHRyYW0gdGljaCBvIGt5IERlIFR1Li4uIA0KDQpLaG9u ZyBjaGkgbyBIYSBOb2ksIGNhYyBuaGEgY2FvIHRhbmcgeGF5IHRyZW4gbmVuIGRhdCB5ZXUgdmFu IGRhbmcgZHVvYyB0aGkgY29uZyBvIA0KbmhpZXUgbm9pLiBUcm9uZyBraGkgaGFuZyBsYW5nIHBo YXAgbHksIHN1IGdpYW0gc2F0IHZpZWMga2hhbyBzYXQgZGlhIGNoYXQgY29uZyB0cmluaCBjb24g DQp0aGlldSB0aGkgbmd1eSBjbyBkb2kgdm9pIGNhYyBuaGEgY2FvIHRhbmcgZGFuZyByYXQgbG9u LiANCg0KQmVuIGNhbmggZG8sIHZpZWMgeGF5IG5oaWV1IG5oYSBjYW8gdGFuZyB0cmVuIG5lbiBk YXQgbHVuIGNvIHRoZSBnYXkgaGllbiB0dW9uZyBsdW4gcm9uZyANCmhvbi4gRGFuZyBsbyBuZ2Fp LCBuaHVuZyBjb25nIHRyaW5oIG8ga2h1IHZ1YyBuYXkgc2Uga2hvbmcgc2FwIG5nYXksIG5odW5n IGxhaSBraG9uZyANCmFpIGRhbSBkYW0gYmFvLCBubyBjbyB0aGUgZHVuZyB2dW5nIGJhbyBsYXUu DQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0tob2EtaG9jLzIwMTAvMTAvM0JBMjFCRDQvIEh1 b25nIFRodSAxOS8xMC8yMDEwLCAxMDoxNSBHTVQrNw0KDQpIYSBOb2k6IDk1JSBobywgYW8gSGEg Tm9pIGJpIG8gbmhpZW0gDQoNClRydW5nIHRhbSBuZ2hpZW4gY3V1IHZhIGNvbmcgZG9uZyBtb2kg dHJ1b25nIChDRUNSKSB2dWEgY29uZyBibyBrZXQgcXVhIG5naGllbiBjdXUgDQp2ZSBtb2kgdHJ1 b25nIGN1YSAxMjAgaG8sIGFvLCBkYW0sIHRodXkgdnVjIGxvbiBuaG8gY3VhIDYgcXVhbiB0cnVu ZyB0YW0gSGEgTm9pLg0KVGhlbyBkbywgY2hpIGNvIDYgaG8gZGF0IHlldSBjYXUgY2hhdCBsdW9u ZyBvIHRhdCBjYSBjYWMgY2hpIHRpZXUgbmdoaWVuIGN1dSwgY2hpZW0gdHkgbGUgDQo1JSwgcGhh biBsb24gY2FjIGFvIGhvIGJpIG8gbmhpZW0gY2hhdCBodXUgY28sIG5vbmcgZG8gb3h5IGhvYSB0 YW4gZHVvaSBtdWMgdGlldSBjaHVhbiANCmNobyBwaGVwLg0KDQpIb24gODAlIGhhbmcgbGFuZyBi byBiaSBvIG5oaWVtLCB2YSBkYW5nIGR1bmcgdHJ1b2Mgbmd1eSBjbyBiaSBsYW4gY2hpZW0gZGUg eGF5IG5oYSwgDQpiYWkgZG8geGUsIHRybyB0aGFuaCBiYWkgdGFwIGtldCBwaGUgbGlldSxyYWMg dGhhaSBzaW5oIGhvYXQuIA0KDQpUaGVvIENFQ1IsIG5ndXllbiBuaGFuIGdheSBvIG5oaWVtIGNo aW5oIGxhIGRvIG51b2MgdGhhaSBzaW5oIGhvYXQgdmEgbW90IHBoYW4gbnVvYyANCnRoYWkgdHUg Z2lhIGRpbmggaG9hYyBjb25nIGRvbmcgdHV5IHRpZW4gdGhhaSB4dW9uZyBoby4gTmdvYWkgcmEs IGhpZW4gdHVvbmcgZG8gcGhlIHRoYWkgDQp4YXkgZHVuZywgZG8gZGF0LCBsYW4gY2hpZW0gYW8g aG8uLi4gY3VuZyBsYW0gZ2lhbSBkYW5nIGtlIGRpZW4gdGljaCBhbyBobywgbmhpZXUgaG8gDQpk YW5nIGRhbiBiaWVuIG1hdC4gDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMjAtNDM3Nzgz L2RhdC12YW5oLWRhaS1hbi1uaW5oLXF1b2MtcGhvbmctYmF5LXRoZW8ta2hvaS1sby1nYWNoLmh0 bSBUaWVuIE5ndXllbiAgMTgvMTEvMjAxMCAtIDA5OjI1IA0KDQpIYSBOb2k6IEtob24gZG9uIHZp ICJkYWkgY29uZyB0cnVvbmciIGxvIGdhY2ggDQoNCkRhdCB2YW5oIGRhaSBhbiBuaW5oLCBxdW9j IHBob25nICJiYXkiIHRoZW8ga2hvaSBsbyBnYWNoDQoNCihEYW4gdHJpKSAtIExvIGdhY2ggdGh1 IGNvbmcgbW9jIGxlbiBuaHUgbmFtLCB4YSBkZW4gbmhhYyBuaG8sIHBoYXQgdmkgY2FuaCByb2mF IG1hYyANCmtlIHZpIGRvIGxhICJwaG9uZyB0cmFvIiBjdWEgY2EgbGFuZywgY2EgeGEuIENoaW5o IHF1eWVuIHhhIGJhdCBsdWMgbmdvaSBuaGluIG5odW5nIA0KbWFuaCBydW9uZywgdHJpZW4gZGUg dmEgY2EgZGF0IHZhbmggZGFpIGFuIG5pbmggcXVvYyBwaG9uZyBkYW4gYmllbiBtYXQgdGhlbyBr aG9pIGxvLg0KDQoqIEtob24gZG9uIGdpdWEgImRhaSBjb25nIHRydW9uZyIgbG8gZ2FjaA0KDQoz IGNhaSBjaGV0IHR1YyB0dW9pIHZhIG5vaSBkYXUgbmd1b2kgY29uIHNvbmcNCg0KTmhpZXUgbmFt IG5heSwgbmh1bmcgY29uIGR1b25nIG5obyBkYW4gcXVhbmggbGFuZyBMYWkgU29uIGtob2FjIGxl biBtaW5oIHRhbSBhbyANCmRpdSBoaXUsIHZhbmcgdmUuIFRoaSB0aG9hbmcsIG5odW5nIGNoaWVj IHhlIHRhaSB1eW5oIHV5Y2ggY2hvIHRoYW4gdmEgZ2FjaCB0aGFuaCBwaGFtDQpjaGF5IHF1YSBr aHVheSBkb25nIGtob25nIGdpYW4gdmEgY2F0IGJ1aSwgbmh1b20gY28gY2F5IGhhaSBiZW4gZHVv bmcgbW90IG1hdSB2YW5nIA0KdmFuZywgZG8gZG8gZGFjIHRydW5nIGN1YSBkYXQgZ2FjaC4NCg0K KEFuaDogQmEgTXVpIGtpZXQgc3VjIHNhdSB2dSBuZ28gZG9jIGN1b3AgZGkgc2luaCBtYW5nIGN1 YSBjaG9uZyB2YSBjb24gdHJhaSBtaW5oLikNCg0KMyBuZ2F5IHNhdSB2dSB0YWkgbmFuIGxhbyBk b25nIGtoaWVuIDMgbmd1b2kgdHJvbmcgZ2lhIGRpbmggb25nIE5ndXllbiBWYW4gVHkgdHUgdm9u ZywgDQpsbyBnYWNoIGNhY2ggbmhhIG9uZyBjaGkgY2h1bmcgMTBtIHZhbiBuZ2F5IGRlbSBkbyBs dWEuIEtob2kgbmdoaSBuZ3V0IGJvYyBsZW4sIGhvYSANCmN1bmcga2hvaSBuaHVuZyBsbyBraGFj IGJhbyB0cnVtIGtob25nIGdpYW4gY3VhICJkYWkgY29uZyB0cnVvbmciIHNhbiB4dWF0IGdhY2gu DQoNCk5nb2kgbmhhIGN1YSBvbmcgVHkgcGhpYSBtYXQgZHVvbmcgY2hpbmggZGFuIHZhbyB4YSBM YWkgU29uIHZhbiBjaGltIHRyb25nIGtob25nIA0Ka2hpIHRhbmcgdG9jLiBHaWEgZGluaCwgaG8g aGFuZyBkYW5nIGxhbSBsZSBUYW0gbmhhdCAoMyBuZ2F5KSBjaG8gMiBibyBjb24gb25nLiBOZ3Vv aSANCmNhdSAoZW0gYmEgTXVpLSB2byBvbmcgVHkpIGR1b2MgZHVhIHZlIHF1ZSBvIEhhaSBEdW9u ZyBhbiB0YW5nIHRyb25nIG5vaSBkYXUgY3VhIGNhIA0KaGFpIGhvLg0KDQpCYSBNdWkgc2F1IGto aSBkdW9jIGNhcCBjdXUgZGEgdGluaCBsYWksIHZlIGNoaXUgdGFuZyBjaG9uZyB2YSBjb24uIE1h dCBtZXUgeGVjaCwgbm9pIA0Ka2hvbmcgdGhhbmggdGllbmcgdmkga2hvYyBxdWEgbmhpZXUgdmEg dmkgYW5oIGh1b25nIGN1YSB2dSBuZ28gZG9jIGtob2kgbG8gZ2FjaCBkZW0gDQpob20gdHJ1b2Mu IE5lbiBub2kgZGF1LCB2byBhbmggSG9wIGRhbmcgbWFuZyB0aGFpIHRoYW5nIHRodSA1IGN1bmcg Y28gZ2FuZyBjdW5nIGFuaCANCmVtLCBobyBoYW5nIGxvIGxhbmcgY29uZyB2aWVjIGhhdSBzdSBj aG8gYm8gdmEgY2hvbmcgbWluaC4NCg0KTGF0IGxhaSBoYW5oIHRyaW5oIGRhbiBkZW4gY2FpIGNo ZXQgY3VhIDIgYm8gY29uIG9uZyBUeSB2YSBjYXUgZW0gdm8sIG5oaWV1IG5ndW9pIHJhdCANCmJ1 YyB4dWMgdmkgMyBjYWkgY2hldCBuYXkgaG9hbiB0b2FuIGNvIHRoZSBuZ2FuIGNoYW4gZHVvYyBu ZXUgY2hpbmggcXV5ZW4geGEgQmFjIFNvbiwgDQpuaHVuZyB2aSAicXVhbiBwaHUgbWF1IiBvIGRh eSBraG9uZyBxdWEgdGhvIG8gbmh1IHZheS4NCg0KKEFuaDogIkRhaSBjb25nIHRydW9uZyIgbG8g Z2FjaCBjdWEgbGFuZyBMYWkgU29uIG5oaW4gdHUgZGluaCBkb2kgZ2l1YSB4YSBCYWMgU29uIHZh IHhhIEhvbmcgS3kuKSANCg0KVGhlbyB0aW0gaGlldSwgZ2lhIGRpbmggb25nIFR5IGJhdCBkYXUg ZGFvIGRhdCB4YXkgbG8gaG9pIGRhdSB0aGFuZyA2IG5hbSBuYXkuIFNhdSBkbywgDQpjaGluaCBx dXllbiB4YSB2YSB0aGFuaCB0cmEgeGF5IGR1bmcgY28gZGVuIGxhcCBiaWVuIGJhbiBkaW5oIGNo aSwgeWV1IGNhdSBnaWEgZGluaCBwaGEgDQpibyBwaGFuIHZvIGxvIHZ1YSB4YXkgZGkuIFR1eSBu aGllbiwgY2FjIGNhYyBibyB4YSBsYWkgImRhbmggdHJvbmcgYm8gZHVpIiwgbGFwIGJpZW4gYmFu IA0KY2hvIGNvIHRodSB0dWMgcm9pIGJvIGRvLiBHaWEgZGluaCBvbmcgVHkgdGllcCB0dWMgbGFt LCBkZW4gbG8gdGh1IDIgdGhpIGJpIGtpY2ggeGF5IHJhLg0KDQpEdSBsdWFuIGRhdCBjYXUgaG9p LCBuZXUgY2hpbmggcXV5ZW4gbWFuaCB0YXksIGxhbSBkdW5nIGNodWMgbmFuZyBuaGllbSB2dSBj dWEgbWluaCANCnRoaSBiaSBraWNoIGRhdSBkb24gdHJlbiBjbyB4YXkgcmE/LiANCiANCkNhbiBi byB4YSB0aHVhIG5oYW4gc3UgYmF0IGx1YyANCg0KVGltIGRlbiBVQk5EIHhhIEJhYyBTb24sIGNo dW5nIHRvaSBiYXQgbmdvIHZhIGJ1YyB4dWMgdHJ1b2MgdGhhaSBkbyB0aGFuIG5oaWVuLCBjb2kg DQptb2kgY2h1eWVuIGRhIHJvaSBuaHUga2hvbmcgY3VhIG9uZyBUYSBIb25nIFRoYWkgLSBCaSB0 aHUga2llbSBDaHUgdGljaCBVQk5EIHhhLiANCk5vaSB2ZSBjYWkgY2hldCBjdWEgMyBuZ3VvaSBu aGEgb25nIFR5LCBvbmcgVGhhaSBjaG8gYmlldDogIlhhIGRhIGNvIGdhbmcgbmh1bmcgbmd1b2kg DQp0YSB2YW4gbGFtIHRoaSBiaWV0IGxhbSBzYW8gZHVvYy4iDQoNClRoZW8gb25nIFRoYWksIHBo b25nIHRyYW8gbGFtIGdhY2ggdGFpIEJhYyBTb24gbm8gcm8gdHUgbmFtIDIwMDUgY2hvIGRlbiBu YXkuIExvIHR1IA0KcGhhdCBsaWVuIHR1YyBtb2MgbGVuLCB4YSBjdW5nIGRhIGRlbiBkaW5oIGNo aSwgeWV1IGNhdSBkbyBibyBuaHVuZyBraGkgeGEgZGkgdGhpIG5ndW9pIA0KZGFuIGxhaSBsYW0g dGllcCE/DQogDQooQW5oOiBDaHUgdGljaCBVQk5EIHhhIEJhYyBTb24gVGEgSG9uZyBUaGFpICJ0 aGFuIG5oaWVuIiBnaWFpIHRoaWNoIHZlIHN1IGJhdCBsdWMgDQpjdWEgY2hpbmggcXV5ZW4gZGlh IHBodW9uZy4pIA0KDQpUaG9uZyBrZSBjdWEgVUJORCB4YSBCYWMgU29uIGNobyB0aGF5LCBoaWVu IHRyZW4gZGlhIGJhbiB4YSBjbyA5OSBobyBkYW4gbGFtIGxvIGdhY2ggDQp0aHUgY29uZyB0dSBw aGF0LCBtb2kgaG8gaXQgbmhhdCBjbyAyIHZvIGxvLiBEbyBsYSBjaHVhIGtlIDE4IGNodSBsbyB0 dSBub2kga2hhYyBkZW4gY28gDQpob3AgZG9uZyB2b2kgeGEuIERvaSB2b2kgY2FjIGhvIGRhbiBs YW0gbG8gZ2FjaCB0dSBwaGF0LCBvbmcgVGhhaSBjaG8gcmFuZywgaG8gbGFtIHRyZW4gDQpkYXQg dGhvIGN1IGxpZW4ga2UgY3VhIGdpYSBkaW5oLCBtdW9uIG11YyBkYXQgbHVjIG5hbywgbXVjIGJh byBuaGlldSBsYSBxdXllbiBjdWEgaG8uIA0KS2hvbmcgcm8gb25nIFRoYWkgY28gYmlldCBkZW4g cXV5IGRpbmggY3VhIE5oYSBudW9jIHZlIHF1YW4gbHkgZGF0IGRhaSwgY2FtIG5ndW9pIGRhbiAN CnhhbSBwaGFtIGRlbiB0YWkgbmd1eWVuIGRhdCBxdWEgZG8gc2F1IDFtPw0KDQpRdXlldCBkaW5o IGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1IHlldSBjYXUgY2hhbSBkdXQgaG9hdCBkb25nIGN1YSBj YWMgbG8gZ2FjaCB0aHUgDQpjb25nIHRydW9jIG5hbSAyMDEwLCBvbmcgVGhhaSBjaG8gYmlldCB4 YSBjdW5nIGRhIG5vIGx1YyB0aWVuIGhhbmguIFRoZW8gb25nIFRoYWksIHR1IA0KZGF1IG5hbSBk ZW4gbmF5LCAibmdvYWkgdHJ1b25nIGhvcCBuaGEgb25nIFR5LCBoYXUgbmh1IGtob25nIGNvIGxv IG5hbyB0dSBwaGF0IG1vYyANCmxlbiIuDQoNCkF5IHZheSBtYSwgdGFpIFRvIHRoYW5oIHRyYSB4 YXkgZHVuZyBjdWEgeGEsIGFuaCBOZ28gVmFuIEhvYW4gKFRvIHRydW9uZykgbGFpIGR1YSByYSAN CmNobyBjaHVuZyB0b2kgYmFuIGxpZXQga2UgY2hpIHRpZXSFIDMyIGhvIGxhbSBsbyBtb2kgcGhh dCBzaW5oIHRyb25nIG5hbSBuYXkuIE5oaWV1IA0Kbmd1b2kgZGEgbGFtIGxvIHR1IHRydW9jIHZh IG5heSB4YXkgZHVuZyB0aGVtIGxvIG1vaS4NCg0KS2hpIGR1b2MgaG9pIHZlIHRyYWNoIG5oaWVt IGN1YSBjaGluaCBxdXllbiB4YSB0cnVvYyB0aW5oIHRyYW5nIG5ndW9pIGRhbiBvIGF0IGxhbSBs byANCmdhY2ggdHJhaSBxdWkgZGluaCwgZ2F5IG8gbmhpZW0gbW9pIHRydW9uZyBuZ2hpZW0gdHJv bmcsIG9uZyBUaGFpIHRoYW4gbmhpZW4gdGh1YSBuaGFuOiANCiJDaHVuZyB0b2kgdGh1YyBzdSBi YXQgbHVjLCBuZ3VvaSB0YSBsYW0gbmhpZXUgcXVhLCBraG9uZyB0aGUgbmdhbiBjaGFuIGR1b2Mi LiBPbmcgDQpUaGFpIGNvbiB2aWVuIHJhIGx5IGRvIHZpIGRvIGxhIG5ndW9pIHRyb25nIGxhbmcs IGxhaSB0b2FuIGFuaCBlbSBobyBoYW5nIG5lboUga2hvIGxhbS4gDQpOZXUgdmF5LCBjbyBsZSBj YW4gY28gbW90IHZpIHF1YW4gcGh1IG1hdSBraG9uZyBwaGFpIGxhIG5ndW9pIHRyb25nIHhhIEJh YyBTb24gZGVuIA0KZGF5IGRpZXUgaGFuaCE/DQogDQooQW5oOiBDb25nIHRydW9uZyB2YW4gbmdh eSBkZW0gaG9hdCBkb25nIHNhdSBjYWkgY2hldCBjdWEgMyBuZ3VvaS4pIA0KDQpRdWF5IHRybyBs YWkgdm9pICJkYWkgY29uZyB0cnVvbmciIHNhbiB4dWF0IGdhY2ggY3VhIHhhLCBvbmcgVGhhaSBj aG8gYmlldCwgeGEgcXVhbiBseSANCmtodSB2dWMgZGUgbmdvaSwgY2F1IENoaWVuIGNoYXkgcmEg c29uZyBDb25nLiBUaW5oIHRyYW5nIGtob2V0IGRlIGxhbSBnYWNoIGNoaW5oIA0KcXV5ZW4geGEg Y28gYmlldCwgZGEgeHUgbHkgbmh1bmcgIm1pbmggZGkgcm9pIGhvIGxhaSBsZW4gbHV0IGxhbSwg a2hvbmcgeHUgbHkgZHVvYyIhPyANCg0KVmF5IGxhLCBQaGFwIGxlbmggQmFvIHZlIGRlIGRpZXUg a2hvbmcgaGUgY28gaGlldSBsdWMgdGFpIHhhIEJhYyBTb24/DQoNClRoZW8gdGltIGhpZXUsIHhh IEJhYyBTb24gY28gdG9pIDYwMGhhIGRhdCB2YW5oIGRhaSBhbiBuaW5oIHF1b2MgcGhvbmcuIERp ZW4gdGljaCBkYXQgDQpuYXksIHRoZW8gb25nIFRoYWksIGRhbiBkYSBsYW4gY2hpZW0gbGFtIG5o YSB0dSBsYXUgdmEgZGVuIG5heSBobyBjdW5nIHR1IHkgbXVjIGRhdCBsZW4gDQpsYW0gbG8uIEhv aSB2ZSBkaWVuIHRpY2ggYmkgeGFtIHBoYW0sIG9uZyBUaGFpIHRhYyBsdW9pLCBjaGVwIG1pZW5n OiAiQ3VuZyBraGEga2hhISINCkNoaW5oIHF1eWVuIHhhIEJhYyBTb24gdGh1YSBuaGFuIHN1IGJh dCBsdWMsIGNvbiBjaGluaCBxdXllbiBodXllbiBTb2MgU29uPyBEYXQgY2F1IA0KaG9pIHhhIGRh IGNvIGRlIHh1YXQgZ2kgdm9pIFVCTkQgaHV5ZW4gU29jIFNvbiBjaHVhLCBvbmcgVGhhaSBub2kg bGEgZGEgY28gZGUgeHVhdCB0dSANCmRhdSBuYW0uIFR1eSBuaGllbiwga2hpIGNodW5nIHRvaSBk ZSBuZ2hpIG9uZyBUaGFpIGN1bmcgY2FwIHZhbiBiYW4ga2llbiBuZ2hpLCBkZSB4dWF0IA0KYXks IG9uZyBUaGFpIGxhaSBraG9uZyB0aGUgZHVhIHJhIGR1b2MhDQpEYW4gdHJpIHNlIHRpZXAgdHVj IHRpbSBoaWV1IHZhIHRob25nIHRpbiBkZW4gYmFuIGRvYyB2ZSB2dSB2aWVjIG5heS4gDQoNCmh0 dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFuLWRvYy12aWV0LzQzMDA4Mi90 YWkteGEtdmlldC1sb25nLXNvYy1zb24tY2F0LXRhYy1ob2FuaC1oYW5oLmh0bSBEYW0gVmluaCAx NS8wMS8yMDExIDA3OjE2IA0KDQpIYSBOb2k6ICJDYXQgdGFjIiBob2FuaCBoYW5oIA0KDQooSE5N KSAtIERvYW4gc29uZyBDYSBMbyBjaGF5IHF1YSBkaWEgYmFuIHRob24gVGllbiBUYW8sIHhhIFZp ZXQgTG9uZywgaHV5ZW4gU29jIA0KU29uIGRhbmcgcGhhaSBnYW5oIGNoaXUgY2FuaCBkYW8gYm9p IGN1YSBuaHVuZyBuZ3VvaSBjaHV5ZW4ga2hhaSB0aGFjIGNhdC4NCg0KTmFuICJjYXQgdGFjIiBo b2F0IGRvbmcgdHJlbiB0dXllbiBzb25nIENhIExvIHF1YSBkaWEgYmFuIHRob24gVGllbiBUYW8g ZGllbiByYSB0dSBuaGlldSANCm5hbSBuYXkgdmEgbmdheSBuYW8gY3VuZyBjbyB0YXUgaHV0IGNh dC4gTmhpZXUgdGhvaSBkaWVtLCBtb2kgbmdheSBjbyB0b2kgNi03IHRhdSB2b2kgDQpjb25nIHN1 YXQgbG9uIGhvYXQgZG9uZyBjYSBuZ2F5IGxhbiBkZW0uIFF1YSB0aW0gaGlldSBkdW9jIGJpZXQs IHRob24gVGllbiBUYW8gY28gaG9uIA0KMTAwIGhvIGRhbiBjbyBkYXQgY2FuaCB0YWMgZG9jIHZl biBzb25nIENhIExvLCB0aGkgaGF1IGhldCBjYWMgaG8gZGV1IHBoYWkgY2hpdSBoYXUgcXVhIA0K InJ1b25nIGJpZW4gdGhhbmggc29uZyIgZG8gImNhdCB0YWMiIGdheSByYS4gQ28gbmh1bmcgY2hv IHJ1b25nIGNhbmggdGFjIGJpIHN1dCBsbyB4dW9uZyANCnNvbmcgc2F1IHRvaSAxMC0xNW0uIEJh IEFuLCBiYSBCaW5oLCBiYSBIYSwgYmEgVGhhbmggbyBkb2kgc2FuIHh1YXQgc28gOSBjdWEgdGhv biBUaWVuIA0KVGFvIGJ1YyB4dWM6ICJNb2kgZ2lhIGRpbmggY2h1bmcgdG9pIGNvIGdhbiAxIHNh byBydW9uZyAyIHZ1IGx1YSwgbW90IHZ1IG1hdSwgbmh1bmcgY3UgDQpkZW4gdnUgY2F5IGxhaSBw aGFpIGJlIGJvIGdpdSBudW9jLCB2aSBibyBkYSBiaSBsbyBzdXQgeHVvbmcgc29uZyIuIEtob25n IG5odW5nIHRoZSwgDQp0b2FuIGJvIGRpZW4gdGljaCBjYW5oIHRhYyAzIHZ1IGN1YSBnaWEgZGlu aCBiYSBPYW5oLCBiYSBIYW5oLCBvbmcgTGllbiBjb24gYmkgY3VvbiB0aGVvIA0KZG9uZyBzb25n OyBuaGlldSBobyBkYW4gcGhhaSBibyBydW9uZywgdmkgbW9pIHRyYW4gbXVhIHRvIGxhaSBiaSB0 cm9pIGhldCBkYXQgbWF1IHh1b25nIHNvbmcuDQoNCk5nb2FpIG5hbiAiY2F0IHRhYyIgbGFtIHN1 dCBsbyBibyBzb25nLCBhbmggaHVvbmcgZGVuIHNhbiB4dWF0IG5vbmcgbmdoaWVwLCBuZ3VvaSBk YW4gDQp0aG9uIFRpZW4gVGFvIGNvbiBwaGFpIGdhbmggY2hpdSB0aGVtIGtob2kgY3VhIDggbG8g Z2FjaCB0aHUgY29uZyBjdWEgeGEgWHVhbiBHaWFuZyBvIA0KbGllbiBrZSB0aG9uLCB2b2kgY29u ZyBzdWF0IDE1MCB2YW4gdmllbi9sbywgbmdheSBkZW0gaG9hdCBkb25nLCBraGllbiBjaG8gaG9u IDMwaGEgZGF0IA0KY2FuaCB0YWMgbyBraHUgZG9uZyBCYSBNYXUsIE5naGUsIE1vbmcgRGEsIENh dSBEb25nIGN1YSB0aG9uIGJpIGFuaCBodW9uZyByYXQgbG9uLiANCkRhYyBiaWV0LCBtb2kga2hp IGNvIGdpbyBkb25nIG5hbSwgaG9uIDIwMCBobyBkYW4gdHJvbmcgdGhvbiB0cnVjIHRpZXAgcGhh aSBoaXQga2hvaSBjdWEgDQpjYWMgbG8gZ2FjaC4gDQoNCk9uZyBOZ3V5ZW4gRHV5IFR1LCBUcnVv bmcgdGhvbiBUaWVuIFRhbyBjaG8gYmlldDogQ2h1bmcgdG9pIGRhIG5oaWV1IGxhbiBraWVuIG5n aGkgDQp2b2kgVUJORCB4YSB2YSBsYW5oIGRhbyB4YSBjdW5nIGtoYSB0aWNoIGN1YyBjaGkgZGFv LCB4dSBseSBiYW5nIGNhYyBiaWVuIHBoYXAgcGhhdCANCmhhbmggY2hpbmggdm9pIGNhYyBjaHUg dGF1IGh1dCBjYXQgdmkgcGhhbS4gRG9uZyB0aG9pIGtpZW4gbmdoaSB0cnVjIHRpZXAgY3VuZyBu aHUgcXVhIA0KY2FjIGJ1b2kgdGllcCB4dWMgY3UgdHJpIG8gaHV5ZW4gU29jIFNvbiB2ZSB0aW5o IHRyYW5nIGtoYWkgdGhhYyBjYXQgYnVhIGJhaSB0cmVuIHR1eWVuIA0Kc29uZyBDYSBMbyBsYW0g c3V0IGxvIGRhdCBjYW5oIHRhYyB2YSBjYWMgbG8gZ2FjaCB0aHUgY29uZyBob2F0IGRvbmcgZ2F5 IG8gbmhpZW0gbW9pIA0KdHJ1b25nLCBhbmggaHVvbmcgZGVuIHNhbiB4dWF0IG5vbmcgbmdoaWVw LCBzdWMga2hvZSBuZ3VvaSBkYW4uIFR1eSBuaGllbiwgdmllYyB4dSBseSANCmNhYyB2aSBwaGFt IG8gZGF5IGNvbiBnYXAgbmhpZXUga2hvIGtoYW4sIHZ1b25nIG1hYywgYm9pIHZpZWMgdGljaCB0 aHUgY2FjIHBodW9uZyB0aWVuIA0Ka2hhaSB0aGFjIGNhdCB0cmFpIHBoZXAgY2FuIHBoYWkgY28g c3UgY2FuIHRoaWVwIGN1YSBsdWMgbHVvbmcgY2h1YyBuYW5nIGN1YSBodXllbiwgdGhhbmggDQpw aG8sIG5oYXQgbGEgY2FjIGNodSB0YXUga2hhaSB0aGFjIGNhdCBsYWkgbGEgbmd1b2kgdGh1b2Mg ZGlhIGJhbiBodXllbiBZZW4gUGhvbmcsIHRpbmggDQpCYWMgR2lhbmcuIENoaW5oIHZpIHZheSwg ZGUgZ2lhaSBxdXlldCBkdXQgZGllbSB0aW5oIHRyYW5nIG5heSwgZG9pIGhvaSBwaGFpIGNvIHN1 IHBob2kgDQpob3AgY3VhIGNhYyBjYXAsIGNhYyBuZ2FuaCB2YSB0aW5oIGJhbi4gDQoNCmh0dHA6 Ly92b3ZuZXdzLnZuL0hvbWUvSGEtTm9pLXBoYXQtaGllbi1zYWktcGhhbS10aGFuaC10b2FuLWto b25nLWhvbi04NS10eS1kb25nLzIwMTAxMS8xNTk3NDAudm92IFRoZW8gVGllbiBwaG9uZyA2OjAy IEFNLCAwNy8xMS8yMDEwDQoNCkhhIE5vaTogU2FpIHBoYW0sIHRoYW5oIHRvYW4ga2hvbmcgaG9u IDgsNSB0eSBkb25nIC0gY2hpIGJpIGRlIG5naGkga2llbSBkaWVtLCB4dSBseSBuaGUgbmhhbmcg DQoNClRoYW5oIHRyYSB5ZXUgY2F1IHRodSBob2kgaG9uIDEgdHkgZG9uZyB2YW8gdGFpIGtob2Fu IHRhbSBnaXUgDQoNClRoYW5oIHRyYSBUUCBIYSBOb2kgdnVhIGNvIGtldCBsdWFuIHRoYW5oIHRy YSAyNSBjb25nIHRyaW5oIGRhdSB0dSB4YXkgZHVuZyBjbyBiYW4gY3VhIA0KaHV5ZW4gVW5nIEhv YSwgSGEgTm9pLiBRdWEgZG8sIHBoYXQgaGllbiB0b25nIHNvIHRpZW4gc2FpIHBoYW0gbGVuIHRv aSBob24gOCw1IHR5IGRvbmcuIA0KDQpEYW5nIGNodSB5LCBxdWEgdHJpbmggbmdoaWVtIHRodSBr aG9pIGx1b25nIHRoaSBjb25nIGNhYyBjb25nIHRyaW5oLCBjYWMgZG9uIHZpIHRoaSBjb25nIA0K dmEgdHUgdmFuIGdpYW0gc2F0IGRhIG5naGllbSB0aHUgbW90IHNvIGtob2kgbHVvbmcgY29uZyB2 aWVjIGtob25nIGR1bmcgdm9pIHRodWMgdGUgdGhpIA0KY29uZyB2YSBobyBzbyB0aGlldCBrZSwg Z2lhIHRyaSBuZ2hpZW0gdGh1IHRoYW5oIHF1eWV0IHRvYW4gdmVuaCBob24gNiw2IHR5IGRvbmcs IHRyb25nIA0KZG8sIHJpZW5nIGNvbmcgdHJpbmggeGF5IGR1bmcgaGEgdGFuZyBreSB0aHVhdCBU cnVuZyB0YW0gRGljaCB2dSBUaHVvbmcgbWFpIHZhIE5oYSBvIA0KdGhpIHRyYW4gVmFuIERpbmgg bmdoaWVtIHRodSBraG9pIGx1b25nIHZ1b3Qgc28gdm9pIGR1IHRvYW4gZHVvYyBkdXlldCwgZGFw IG5lbiB0aGlldSANCmNoaWV1IGNhbyBzbyB2b2kgdGhpZXQga2UsIG5naGllbSB0aHUga2hvbmcg a2hvaSBsdW9uZyBzbyB2b2kgdGh1YyB0ZSwgdHJpIGdpYSB0cmVuIDUsNDUgdHkgDQpkb25nLg0K DQpDb25nIHRyaW5oIENobyB0cnVuZyB0YW0gZGF1IG1vaSBub25nIHNhbiB0aGkgdHJhbiBWYW4g RGluaCwgZG9uIHZpIHRoaSBjb25nIGtoaSBsYXAgaG8gDQpzbyB0aGFuaCBxdXlldCB0b2FuIGRh IHRpbmggYnUgdmF0IGxpZXUga2hvbmcgZHVuZywga2hvbmcgdGhpIGNvbmcgcGhhbyBrZXAgc2Ug bm8gbWFpLCANCm5naGllbSB0aHUga2hvbmcgZHVuZyBkaWVuIHRpY2ggbGFwIGR1bmcgaG9hIHNh dCBjdWEgc28sIHRyaSBnaWEgaG9uIDg3NyB0cmlldSBkb25nLi4uIFRhaSANCm5oaWV1IGNvbmcg dHJpbmgga2hhYywgY3VuZyB4YXkgcmEgaGllbiB0dW9uZyBuZ2hpZW0gdGh1IGtob25nIGtob2kg bHVvbmcsIHJ1dCBydW90IA0KbmdhbiBzYWNoLg0KDQpUdSBzYWkgcGhhbSB0cmVuLCB0aGFuaCB0 cmEgeWV1IGNhdSB0aHUgaG9pIGhvbiAxIHR5IGRvbmcgdmFvIHRhaSBraG9hbiB0YW0gZ2l1IGN1 YSANClRoYW5oIHRyYSwgZG9uZyB0aG9pIHlldSBjYXUgZ2lhbSB0cnUgdHJpIGdpYSBraG9pIGx1 b25nIG5naGllbSB0aHUsIHRoYW5oIHRvYW4gY2FjIGNvbmcgDQp0cmluaCBob24gNiB0eSBkb25n LiBUdXkgbmhpZW4sIGNvIHF1YW4gdGhhbmggdHJhIGNoaSBkZSBuZ2hpIGxhbmggZGFvIFVCTkQg aHV5ZW4gVW5nIA0KSG9hIGtpZW0gZGllbSwgeHUgbHkgbmhlIG5oYW5nLiANCg0KaHR0cDovL3Zp ZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvRGEtY28tNi1uZ3VvaS1jaGV0LWtoaS10aGktY29u Zy10b2EtbmhhLUtlYW5nTmFtLzY1MTg4OTgzLzIxOC8gMjUvMi8yMDEwLCAyMTowMiBHTVQrNw0K DQpIYSBOb2k6ICBEYSBjbyA2IG5ndW9pIGNoZXQga2hpIHRoaSBjb25nIHRvYSBuaGEgS2VhbmdO YW0NCg0KaHR0cDovL2RkZG4uY29tLnZuLzIwMTAwMzI1MDgwNjM1Mzg1Y2F0MTMyL2NvbmctdHJ1 b25nLWtlYW5nbmFtLWhldC1jaGV0LW5ndW9pLWxhaS1ib2MtY2hheS5odG0gMjUvMDMvMjAxMCAt IDA4OjI1DQoNCkhhIE5vaTogQ29uZyB0cnVvbmcgdG9hIG5oYSBLZWFuZ25hbSAtIEhldCBjaGV0 IG5ndW9pIGxhaSBib2MgY2hheQ0KDQpDaGlldSBxdWEgKDI0LzMpLCBjb25nIHRydW9uZyBLZWFu Z25hbSBkYSBiYXQgbmdvIGJpIGNoYXksIGtob2kgYm9jIGNhbyBraGllbiBjaG8gDQpuaGlldSBu Z3VvaSBkaSBkdW9uZyBob2FuZyBsb2FuLg0KDQpBbmggY2h1cDogS2hvaSBib2MgY2FvIG5naGkg bmd1dCB0YWkgdG9hIG5oYSBjYW8gNzAgdGFuZyBjdWEgY29uZyB0cnVvbmcgS2VhbmduYW0gDQoN CktodSB2dWMgeGF5IHJhIGhvYSBob2FuIGR1b2MgeGFjIGRpbmggdGFpIHRhbmcgMjUgY3VhIHRv YSB0aGFwIDcwIHRhbmcgZGFuZyB0aGkgY29uZy4gMTUgDQpwaHV0IHNhdSAyIHhlIGN1dSBoYW8g ZGEgZGVuIGR1b2MgaGllbiB0cnVvbmcgbmh1bmcga2hvbmcgdmFvIGR1b2MgdmkgYmFvIHZlIGto b25nIA0KbW8gY3VhIGNobyB2YW8uIEx1YyBuYXksIGRhbSBjaGF5IGN1bmcgZGEgZHVvYyBraG9u ZyBjaGUuDQogDQpOZ3V5ZW4gbmhhbiBkdW9jIHhhYyBkaW5oIGxhIGRvIGNvbmcgbmhhbiBzYXUg a2hpIGh1dCB0aHVvYyBkYSBuZW0gZGlldSB0aHVvYyB0YW4gdmFvIA0KdmF0IGxpZXUgYmFvIG9u IChsYW0gYmFuZyBjYW8gc3UgeG9wKSBkdW5nIGRlIGxhcCBkYXQgaGUgdGhvbmcgZGlldSBob2Eu IFRhbiB0aHVvYyBkYSANCmJhdCB2YW8gdmF0IGxpZXUgdGFvIHJhIGtob2ksIGNodWEgY2h1YSBj byBjaGF5Lg0KIA0KRGF5IGxhIHN1IGNvIHZlIGNoYXkgZGF1IHRpZW4gdGFpIGNvbmcgdHJ1b25n IGxvbiBuaGF0IFZpZXQgTmFtIG5heSBzYXUgbW90IGxvYXQgc3UgY28gDQp0YWkgbmFuIGxhbyBk b25nLCBsYW0gNiBuZ3VvaSBjaGV0Lg0KIA0KaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9p LzIwMDkvMTEvM0JBMTVFQzMvIDIzLzExLzIwMDksIDAwOjA0IEdNVCs3DQoNCkhhIE5vaTogVGF1 IGhvYSBodWMgb3RvIGNobyBkYW0gaG9pLCA5IG5ndW9pIGNoZXQgKG8gVGh1b25nIFRpbiAtIEhh IE5vaSkNCg0KVHJ1YSAyMi8xMSwgdGFpIFRodW9uZyBUaW4gKEhhIE5vaSksIHhlIGtoYWNoIDMw IGNobyBkYW5nIGNobyBtb3QgZGFtIGFuIGhvaSBxdWEgDQpkdW9uZyBuZ2FuZyBnaWFvIGNhdCB2 b2kgZHVvbmcgc2F0LCBkYSBiaSB0YXUgaG9hIFROMSBIYSBOb2kgLSBUUCBIQ00gaHVjIGJlcC4N Cg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3MyMC0yNDY2NDEvdGF1LWhvYS1kYW0tby10by1j YW1yeS12YW5nLXhhLTEwbS0yLW5ndW9pLWNoZXQuaHRtIFR1YW4gSG9wIDE2LzA4LzIwMDggLSAx MDoyMSANCg0KSGEgTm9pOiBUYXUgaG9hIGRhbSBvIHRvIENhbXJ5IHZhbmcgeGEgMTBtLCAyIG5n dW9pIGNoZXQsIDggbmd1b2kga2hhYyBiaSB0aHVvbmcgbmFuZyAobyBHaWEgTGFtIC0gSGEgTm9p KSANCg0KRG9hbiB4YXkgcmEgdnUgdGFpIG5hbiBnaWFvIG5oYXUgZ2l1YSBkdW9uZyBibyB2YSBk dW9uZyBzYXQga2hvbmcgY28gYmFyaWUsIGxhaSBraHVhdCB0YW0gbmhpbi4NCg0KTW90IGNhbiBi byBjb25nIGFuIHF1YW4gTG9uZyBCaWVuIGJ1YyB4dWMgbm9pOiBDaHVuZyB0b2kgZGEgY2FuaCBi YW8gcmF0IG5oaWV1IGxhbiB2b2kgDQpuZ2FuaCBkdW9uZyBzYXQsIHJhbmcsIGRheSBsYSBkb2Fu IGN1YSBraHVhdCB0YW0gbmhpbiwgcmF0IGRlIHhheSByYSB0YWkgbmFuLCBkZSBuZ2hpIGxhbSAN CmJhcmllLCBuaHVuZyBtYWkgZGVuIG5heSB2YW4gY2h1YSBjby4NCg0KaHR0cDovL3d3dy5oYW5v aW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMjI2NjAwL2hhbmctcXVhbi1iYW8t dmF5LW5oYS12MjU5bi1ob2EtbGFuZy10cnVuZy5odG0gMjYvMTEvMjAwOSAwNzoyOSANCg0KSGEg Tm9pOiBIYW5nIHF1YW4gYmFvIHZheSBOaGEgVmFuIGhvYSBMYW5nIFRydW5nIA0KDQpodHRwOi8v d3d3LnRpbjI0Ny5jb20vaGFuZ19uZ2FuX20yX2hvYW5nX2hvYV9vX2xvX2RhdF92YW5nX2RhbV90 cmF1LTEtMjE0Mjg4MTIuaHRtbCAyNC8wNS8yMDA5IC0gMTM6MjEgVmlldE5hbU5ldC52bg0KDQpI YSBOb2k6IEhhbmcgbmdhbiBtMiBob2FuZyBob2EgbyBsbyBkYXQgdmFuZyBEYW0gVHJhdQ0KDQpo dHRwOi8veGFob2l0aG9uZ3Rpbi5jb20udm4vMjAwODEwMDExMTAwNTk2MDVwMGMxMTkva2h1LW5h bS10cnVuZy15ZW4tY2hhdC1sdW9uZy1kaWNoLXZ1LXZpZW4tdGhvbmctcXVhLWtlbS5odG0gMDEv MTAvMjAwOCAxNDoxMw0KDQpIYSBOb2kgLSBraHUgTmFtIFRydW5nIFllbjogQ2hhdCBsdW9uZyBk aWNoIHZ1IHZpZW4gdGhvbmcgcXVhIGtlbQ0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaWFu eW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTk0MzQ3JkNoYW5uZWxJRD0xMiANCg0KSGEgTm9pOiBD dHkgWHVhdCBuaGFwIGtoYXUgdmEgWGF5IGR1bmcgbm9uZywgbGFtIG5naGllcCAoSGEgTm9pKTog VHUgeSBiYW4gaGFuZyBuZ2FuIG0yIGRhdCBjdWEgTmhhIG51b2MgLSBOZXUga2hvbmcgY2FpIHRv LCBtb2kgbmFtIEROIG5heSB0aHVhIGxvICB0aGVtIDEgdHkgZG9uZw0KDQpodHRwOi8vd3d3Lmhh bm9pbW9pLmNvbS52bi9uZXdzZGV0YWlsL0Jhbl9kb2NfdmlldC8yMjczNTUveGEtcGg3OTExLWw3 ODk1LWh1eTc4NzluLXNvYy1zNDE3bi1tNDMyNDE3bmctdGhvYXQtbjQzMjc4OTljLW8tbmhpNzg3 N20tdHI3ODQ3bS10cjc4ODVuZy5odG0gMDQvMTIvMjAwOSAwODoyOCANCg0KSGEgTm9pOiBYYSBQ aHUgTG8sIGh1eWVuIFNvYyBTb24gTXVvbmcgdGhvYXQgbnVvYyBvIG5oaWVtIHRyYW0gdHJvbmcg DQoNClRodWMgdHJhbmcgbmV1IHRyZW4gZGEgZ2F5IGJ1YyB4dWMgdHJvbmcgbmhhbiBkYW4sIG5o dW5nIGtob25nIGR1b2MgY2FjIGNvIHF1YW4gaHV1IHF1YW4gcXVhbiB0YW0gZ2lhaSBxdXlldC4N Cg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMjI2 MTg5L2M3ODQzbmgtcXVhbi1raHUtdjc5MjFjLWg3ODkxLTI3Mjc4NzNuLWw3OTE1LWhvYW5nLW1h aS1iNzg4My14YW0tcGg3ODQxbS1uZ2hpZW0tdHI3ODg1bmcuaHRtIDIxLzExLzIwMDkgMDg6MDEg DQoNCkhhIE5vaTogQ2FuaCBxdWFuIGtodSB2dWMgSG8gRGVuIEx1IChIb2FuZyBNYWkpIGJpIHhh bSBwaGFtIG5naGllbSB0cm9uZyAgDQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3Nk ZXRhaWwvQmFuX2RvY192aWV0LzIyNTQ2NC94YS1uYW0taDc4OTFuZy1odXk3ODc5bi0yNzJvbmct YW5oLWNhYy1jb25nLXRyaW5oLXYyNTluLWhvYS1naWFvLWQ3OTA5Yy14dTc4ODluZy1jNzg0NXAu aHRtIDEzLzExLzIwMDkgMDc6NDAgDQoNCkhhIE5vaSAtIFhhIE5hbSBIb25nLCBodXllbiBEb25n IEFuaDogQ2FjIGNvbmcgdHJpbmggdmFuIGhvYSwgZ2lhbyBkdWMgeHVvbmcgY2FwICANCg0KaHR0 cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMjI1NDYzL25o Nzg3MWNoLW5oYWMtdHJlbi0yNzM0MzI3OTAxbmctaDc4OTEtdHVuZy1tNzg1M3UuaHRtIDEzLzEx LzIwMDkgMDc6MzkgDQoNCkhhIE5vaTogTmhlY2ggbmhhYyB0cmVuIGR1b25nIEhvIFR1bmcgTWF1 ICANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQv MzA4MjAxL2R1b25nLXZlbi1oby10YXktcXVhbi10YXktaG8tbmhpZXUtY2FuaC1jaHVvbmctbWF0 Lmh0bSAwOS8wMi8yMDEwIDA3OjA3IA0KDQpIYSBOb2k6IER1b25nIHZlbiBIbyBUYXksIHF1YW4g VGF5IEhvOiBOaGlldSBjYW5oIGNodW9uZyBtYXQgIA0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNv bS52bi9uZXdzZGV0YWlsL0Jhbl9kb2NfdmlldC8zMDg0MTIvZHVvbmctbGFuZy0taG9hLWxhYy11 bi10YWMtZ2lhby10aG9uZy10cmllbi1taWVuLmh0bSAxMS8wMi8yMDEwIDA2OjU5IA0KDQpIYSBO b2k6IER1b25nIExhbmcgLSBIb2EgTGFjOiBVbiB0YWMgZ2lhbyB0aG9uZyB0cmllbiBtaWVuICAN Cg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkxMS9DYXAtZGllbi1kdXQtbmdh bmctZHVvbmctTmd1eWVuLVRyYWktZ2lhby10aG9uZy1ob24tbG9hbi04Nzg5NTIvIDAwOjU3IDE2 LzExLzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IENhcCBkaWVuIGR1dCBuZ2FuZyBkdW9uZyBOZ3V5 ZW4gVHJhaSwgZ2lhbyB0aG9uZyBob24gbG9hbiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZu L3ZhbmhvYS8yMDA5MTAvU2luaC12aWVuLWJ1Yy14dWMtdmktYmktbHVhLXRhaS1mZXN0aXZhbC1j YXUtTG9uZy1CaWVuLTg3NTA3Ni8gQ2FwIG5oYXQgbHVjIDE2OjE1LCBUaHUgU2F1LCAyMy8xMC8y MDA5IChHTVQrNykNCg0KSGEgTm9pOiBTaW5oIHZpZW4gYnVjIHh1YyB2aSBiaSAnbHVhJyB0YWkg ZmVzdGl2YWwgY2F1IExvbmcgQmllbiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9p LzIwMDkxMC9QaG8tQ2h1LXRpY2gtaHV5ZW4tRGFuLVBodW9uZy14by14YXQtdm9pLWRhbi04NzI5 MDEvIENhcCBuaGF0IGx1YyAxODozNywgVGh1IFNhdSwgMDkvMTAvMjAwOSAoR01UKzcpDQoNCkhh IE5vaTogUGhvIENodSB0aWNoIGh1eWVuIERhbiBQaHVvbmcgeG8geGF0IHZvaSBkYW4NCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDQvODQwMDk3LzEyOjU1JyAwNC8wNC8y MDA5IChHTVQrNykgDQoNCkhhIE5vaTogTmhpZXUgdnUgcGhhbSB0b2kgZHVuZyBoYW5nICJub25n IiB0dSBjaGUNCg0KQmFuIG1hIHR1eSB2b2kgbmhpZXUgY2hpZXUgInRpZXAgdGhpIiANCg0KaHR0 cDovL3d3dzYudm5tZWRpYS52bi9uZXdzZGV0YWlsLmFzcD9OZXdzSWQ9OTAwOTYmQ2F0aWQ9NzMg MTYvMDUvMjAwNyANCg0KSGEgTm9pOiBTYXUgY2FpIGNoZXQgY3VhIGJvbiB0cmUgc28gc2luaCAt IENoYSBtZSBob2FuZyBtYW5nLCBuZ2FuaCB5IHRlIGx1bmcgdHVuZyENCg0KRGEgY28gYm9uIHRy ZSBzbyBzaW5oIHR1IHZvbmcgc2F1IGtoaSB0aWVtIG5ndWEgdmFjY2luZSB2aWVtIGdhbiBCLiBT dSBjbyBuZ2hpZW0gdHJvbmcgdHJlbiBkYSBraGllbiBjYWMgYmFjIGNoYSBtZSB0cm8gbmVuIGhv YW5nIG1hbmcsIHRyb25nIGtoaSBjYWMgY28gcXVhbiB5IHRlIGxhaSB0byByYSBsdW5nIHR1bmcu Li4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAwOTE3LzIwMDkw NDIwMDk1NTA4LmFzcHggMjAvMDQvMjAwOSA5OjU1DQoNCkhhIE5vaTogTmhhbyBuaGFvICJjaGF5 IHRydW9uZyIgIA0KDQpDb24gZGVuIGhhaSB0aGFuZyBudWEgY2FjIHRydW9uZyB0aWV1IGhvYyBt b2kgY2hpbmggdGh1YyBuaGFuIGhvIHNvIHR1eWVuIHNpbmggdmFvIGxvcCAxLiBOaHVuZyB0cm9u ZyBuaHVuZyBuZ2F5IHF1YSwgY2hhIG1lIGNhYyBlbSB0YWkgVFAuSENNIHZhIEhhIE5vaSBkYSBw aGFpIG5oYW8gbmhhbyAiY2hheSB0cnVvbmciLiANCg0KT25nIFRpZW4gc2kgTmd1eWVuIFF1eWV0 IFRpZW4sIEdpYW0gZG9jIEJlbmggdmllbiBWaWV0IER1YyBjb24gZGkgeGEgaG9uIG51YSwga2hp IG5vaSByYW5nOiAiRGlldSB0cmkgeG9uZywgYmVuaCBuaGFuIHhheSBuaGEgdGFuZyBiYWMgc2kg Y3VuZyBkdW9jIi4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDAxL0hhLU5v aS1raG9pLWRvbmctYmF1LXRydWMtdGllcC1iaS10aHUtcGh1b25nLTg5MTQ2Mi8gMjA6NDIsIDI1 LzAxLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2kga2hvaSBkb25nIGJhdSB0cnVjIHRpZXAgYmkgdGh1 IHBodW9uZyAoInJ1b3UgY3UsIGJpbmggbW9pIikNCg0KTW90IGRhaSBiaWV1IHRoYW0gZHUgZGFp IGhvaSAocGh1b25nIERpY2ggVm9uZyksIG9uZyBOZ3V5ZW4gTWluaCBEdWMsIGJhbiBraG9hbiBx dXkgZGluaCBjb25nIHRhYyBiYXUgY2hvbiBkbyBiYW4gY2hhcCBoYW5nIERhbmcgYm8ga2hvYSB0 cnVvYyBjaHVhbiBiaSBkZSBnYXkgc3V5IG5naGkgcmFuZyBkYSBjbyAiZGluaCBodW9uZyIgdHJ1 b2MuIA0KDQooQ3UgdHJpIHF1YW4gdGFtOiBjaHVhIGNvIHRyYW5oIGN1IGNvbmcga2hhaSwgY2h1 YSB0dSB1bmcgY3UgY29uZyBraGFpLCBjaHVhIGNvIHZhbiBkb25nIGJhdSBjdSBjb25nIGtoYWks IHRoaSB2YW4gbGEgbmFuZyB0aW5oIGhpbmggdGh1YywgdGhpZXUgZGFuIGNodTsgInJ1b3UgY3Us IGJpbmggbW9pIikNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAw OTE3LzIwMDkwNDI0MDA1NzU4LmFzcHggDQoNCkhhIE5vaTogImNobyBzdW5nIHN1b25nIiBtdWEg Z2kgY3VuZyBjbyAgIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOS8wNy84 NTcwNDUvIENhcCBuaGF0IGx1YyAwOTozMCwgVGh1IFR1LCAwOC8wNy8yMDA5IChHTVQrNykNCg0K SGEgTm9pOiBNb3QgZHUgYW4gJ3RoYW0gc2F0JyBnYW4gODAgY2F5IHhhbmggMjAgbmFtIHR1b2kN Cg0KaHR0cDovL3d3dy5zb2NiYXkuY29tL25ld3MvZGV0YWlsL2hhLW5vaS1tb2ktY2hvLXZlLWN1 YS0tY28tdGh1LXNhcC14dW9uZy1uaGEtZGFuLzYwMDQ4NTc3OC8xMDA4NTk5MDQvMC5odG1sIDEz OjUyIDE5LTA5LTIwMDcNCg0KSGEgTm9pOiBNb2kgY2hvICJ2ZSBjdWEiLCBjbyB0aHUgc2FwIHh1 b25nIG5oYSBkYW4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDQvODQw MDk3LzEyOjU1JyAwNC8wNC8yMDA5IChHTVQrNykgDQoNCkhhIE5vaTogQ2FjIGRvbmcgc29uZyBj dWEgSE4gIm5vbmciIGxlbiB2aSBvIG5oaWVtIA0KDQpodHRwOi8vdnR2LnZuL0FydGljbGUvR2V0 Lzg0NDY4DQoNCkhhIE5vaTogQnVvbiBtYSB0dXkgdmEgbmhhbiBob2kgbG8gdGFpIHBodW9uZyBU aGFuaCBOaGFuIA0KIA0KRGUgbXVhIGJhbiBtYSB0dXkgYW4gdG9hbiwgQnVpIFRyb25nIEJheSBk YSBxdWFuIGhlIHZhIG5oaWV1IGxhbiBkdWEgDQp0aWVuIGhvaSBsbyBjaG8gY2FuIGJvIGNvbmcg YW4gcGh1IHRyYWNoIGRpYSBiYW4uIEhhbmggdmkgcGhhbSB0b2kgDQpjdWEgY2FjIGJpIGNhbyBk YSBnYXkgaGF1IHF1YSBkYWMgYmlldCBuZ2hpZW0gdHJvbmcsIGFuaCBodW9uZyBkZW4gDQp0cmF0 IHR1IHRyaSBhbiB2YSBnYXkgbmVuIHN1IGJhdCBiaW5oIHRyb25nIHF1YW4gY2h1bmcgbmhhbiBk YW4uIA0KDQpodHRwOi8vd3d3Ni52bm1lZGlhLnZuL25ld3NkZXRhaWwuYXNwP05ld3NJZD0xNzUx MDQmQ2F0SWQ9MjMgMjMvMDkvMjAwOQ0KDQpIYSBOb2k6IFNvIG5ndW9pIG5naGllbiBkdW5nIHRo dSAyIHRvYW4gcXVvYyAoc2F1IHRoYW5oIHBobyBIbyBDaGkgTWluaCkuDQoNCjIyIG5naGluIG5n dW9pIG5naGllbiBtYSB0dXkgY28gaG8gc28gcXVhbiBseSB2YSBjbyB0cmVuIDE3IG5naGluIG5n dW9pIA0KbmhpZW0gSElWL0FJRFMsIHRyb25nIGRvIGNvIDUwLTYwJSBuZ3VvaSBuaGllbSBISVYv QUlEUyBiaSBuZ2hpZW4gbWEgdHV5LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vYmFuZG9jdmll dC90aGVvZGF1dGh1LzIwMDkxMC9DYW0tZGFuLXNhbi14dWF0LWtoaS1jaHVhLWNvLXF1eWV0LWRp bmgtdGh1LWhvaS1kYXQtODc1NDAyLyAwODowMSwgVGh1IEhhaSwgMjYvMTAvMjAwOSAoR01UKzcp DQoNCkhhIE5vaTogQ2FtIGRhbiBzYW4geHVhdCBraGkgY2h1YSBjbyBxdXlldCBkaW5oIHRodSBo b2kgZGF0DQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9Ib2FuZy1UaGFu aC1UaGFuZy1Mb25nLWNoaW5oLXRodWMtbGEtRGktc2FuLXRoZS1naW9pLTkyNjAwOS8gMDEvMDgv MjAxMCAoR01UKzcpDQoNCktodSBkaSB0aWNoIEhvYW5nIHRoYW5oIFRoYW5nIExvbmcgY3VhIFZp ZXQgTmFtIG1hbmggbGEgRGkgc2FuIHZhbiBob2EgdGhlIGdpb2kgDQoNCmh0dHA6Ly93d3cudHVh bnZpZXRuYW0ubmV0LzIwMTAtMDUtMDUtcGhhLWhvYW5nLXRoYW5oLXRoYW5nLWxvbmctbGFtLWR1 b25nLWdpYW8tdGhvbmctaS0gIEtoYW5oIExpbmggMDYvMDUvMjAxMCAwNjowMCBHTVQrNw0KDQpI YSBOb2k6IFBoYSBIb2FuZyB0aGFuaCBUaGFuZyBMb25nIGxhbSBkdW9uZyBnaWFvIHRob25nIC0g Tmd1eWVuIG5oYW4gY2FuIGJhbiBsYSBjaG8gZGVuIG5heSBUaHUgZG8gDQpIYSBOb2kgdmFuIGNo dWEgeGF5IGR1bmcgZHVvYyBtb3QgcXVpIGhvYWNoIGtoYW8gY28gaG9jLi4uIA0KDQpodHRwOi8v d3d3LnR1YW52aWV0bmFtLm5ldC8yMDEwLTA1LTA2LWN1dS1ob2FuZy10aGFuaC10aGFuZy1sb25n LW11b24tbmh1bmctY29uLWtpcC0uS2hhbmggTGluaCAwOC8wNS8yMDEwIDA2OjAwIEdNVCs3DQoN CkhhIE5vaTogSG9hbmcgdGhhbmggVGhhbmcgTG9uZyBrZXUgY3V1IA0KDQpEb2FuIGRlIEhvYW5n IEhvYSBUaGFtIHZ1YSBiaSBwaGEsIGNodW5nIHRvaSB0aGF0IHN1IHJhdCB0aWVjLCB2aSBkb2Fu IG5heSB0aGUgaGllbiANCnJhdCBybyB0aW5oIGNoYXQgY3VhIEhvYW5nIHRoYW5oIFRoYW5nIExv bmcgY28sIHZ1YSBsYSBsdXkgdGhhbmgsIHZ1YSBsYSBkZSB0cmkgdGh1eSwgDQpjb24gbGFpIGR1 b2MgdGhlIG5heSB2b2kgdGhlIGdpb2kgc2UgbGEgcmF0IHF1eSBoaWVtLiBWYXkgbWEgdGEgdGhp IHRoYW4gbmhpZW4gcGhhIGJvIA0KKC0gUEdTIFRvbmcgVHJ1bmcgVGluLCBiYXkgdG8pDQoNCkdT IFBoYW4gSHV5IExlIGN1bmcga2hhbmcgZGluaCBkb2FuIGR1b25nIEhvYW5nIEhvYSBUaGFtIGNh dCBwaG8gVmFuIENhbywgbm9pIGRhbmcgDQpsYSBjb25nIHRydW9uZyB4YXkgZHVuZyBxdXkgbW8g bG9uLCBsYSBtb3QgZG9hbiBIb2FuZyB0aGFuaCBUaGFuZyBMb25nIHRob2kgTGUgIA0KDQpodHRw Oi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9kZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTMzMzU5IFRo dSBiYXksIDE5LzEyLzIwMDkNCiANCkhhIE5vaTogTmhpZXUgYmlldCB0aHUgY28gc2FwIHRoYW5o IHBoZSB0aWNoDQoNCkhhbmcgdHJhbSBuZ29pIGJpZXQgdGh1IGNvIG1vdCB0aG9pIGxhIG5pZW0g dHUgaGFvIGN1YSBuZ3VvaSBIYSBOb2kgaGllbiBkYW5nIHh1b25nIGNhcCB0cmFtIHRyb25nLiAN Ck5odW5nIGJpZXQgdGh1IGJpICJuaG9pIiBob24gY2h1YyBnaWEgZGluaCwgYm8gaG9hbmcgZGUg bWFjIG11YSBuYW5nIGRhaSBkYXUuLi4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0tpbmgtdGUvWGF5 LTctaGFtLWR1b25nLWJvLXRhaS1ITi1QaGktMjUtdGktZG9uZy1haS1jaGl1LXRyYWNoLW5oaWVt LzY1MDUwNjAwLzg3LyAwNS80LzIwMDYsIDEzOjE5IEdNVCs3IA0KDQpYYXkgNyBoYW0gZHVvbmcg Ym8gdGFpIEhOOiBQaGkgMjUgdGkgZG9uZywgYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KNyBoYW0g ZHVvbmcgYm8gdGFpIEhhIE5vaSBkdW9jIHhheSBkdW5nIHR1IG5hbSAyMDAyIHRyaSBnaWEgaG9u IDI1IHRpIGRvbmcuIFRoZSANCm5odW5nLCBkZW4gbmF5LCBkYSBob24gNCBuYW0gcXVhLCBjYSA3 IGR1b25nIGhhbSBuYXkgZGFuZyBiaSBibyBob2FuZy4gVGhhbSBjaGksIA0KZHVvbmcgaGFtIHRh aSBOZ2EgVHUgVm9uZyBjbyBuZ3V5IGNvIGtob25nIHRoZSBzdSBkdW5nIHZpIHNhdSBraGkgZHUg YW4gZHVvbmcgdmFuaCANCmRhaSAyIGR1b2MgdHJpZW4ga2hhaSwgbmd1b2kgdGEgbW9pIHRoYXkg c3UgYmF0IGNhcDogQ3VhIGhhbSBsYWkgbmFtIGdpdWEgdGltIGR1b25nLiBBaSANCnNlIHBoYWkg Y2hpdSB0cmFjaCBuaGllbSB2ZSBzdSBsYW5nIHBoaSBuYXk/DQoNCmh0dHA6Ly9kYW50cmkuY29t LnZuL2MyMC9zMjAtMzMwNjAzL25oaWV1LWdpYW8tc3UtdGllbi1zaS1iaS1iYXQtcXVhLXRhbmct ZGFuaC1iYWMuaHRtDQoNCkhhIE5vaTogTmhpZXUgR2lhbyBzdSwgVGllbiBzaSBiaSBiYXQgcXVh IHRhbmcgZGFuaCBiYWMgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDYvODUw Njk0LyAxMTowNicgMDEvMDYvMjAwOSAoR01UKzcpIA0KDQpIYSBOb2kgdmEgbmh1bmcgYnVpICJy YWMgdHJvaSIgbmhlY2ggbmhhYw0KDQpodHRwOi8vd3d3Ni52bm1lZGlhLnZuL25ld3NkZXRhaWwu YXNwP05ld3NJZD01ODE4MyZDYXRpZD0yMiAxNGgyMSAxMy8wNy8yMDA2IC0gDQoNCkhhIE5vaTog UnV0IHJ1b3QgY29uZyB0cmluaCBuaGEgQTIgS2ltIEdpYW5nIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4veGFob2kvZG9pc29uZy8yMDA5LzA3Lzg2MDAwOS8gQ2FwIG5oYXQgbHVjIDE0OjEx LCBUaHUgQmF5LCAyNS8wNy8yMDA5IChHTVQrNykNCg0KSGEgTm9pOiBDb25nIHRvIGRpZW4gZHVv aSBraG9uZyBraXAgJ2NvbmcgdG8gaG9hIGRvbicNCg0KaHR0cDovL25ld3Muc29jYmF5LmNvbS9o YV9ub2lfYmF0X3F1YV90YW5nX3RoZW1fbW90X3Z1X3J1dF9ydW90X2NvbmdfdHJpbmgtNjAwMjMx NzM1LTI2ODQzNTQ1Ni5odG1sIHZpZXRuYW1uZXQudm4gLSAyMTo0OCAxOC0xMi0yMDA2IA0KDQpI YSBOb2k6IFRoZW0gbW90IHZ1ICJydXQgcnVvdCIgY29uZyB0cmluaCAtICJydXQgcnVvdCIgdGhl cCBjYXUga2llbiBjb2MgbW9uZyANCg0KKGNvbmcgdHJpbmggeGF5IGR1bmcgVHJ1bmcgdGFtIEhv aSBuZ2hpIENvbmcgZG9hbiBvIHNvIDFBIHBobyBZZXQgS2lldSwgcXVhbiBIb2FuIEtpZW0uKQ0K DQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvSGEtVGF5LU1vdC1iYW4tYW4tcXVhLW5o aWV1LXNhaS1zb3QvMjAwNjEyLzE0OTY4Lmxhb2RvbmcgTGFvIERvbmcgc28gMzQ0IE5nYXkgMTQv MTIvMjAwNiBDYXAgbmhhdDogNTowOCBBTSwgMTQvMTIvMjAwNg0KDQpIYSBUYXk6IE1vdCBiYW4g YW4gcXVhIG5oaWV1IHNhaSBzb3QNCg0KaHR0cDovL3d3dy54YWx1YW4uY29tL21vZHVsZXMucGhw P25hbWU9TmV3cyZmaWxlPWFydGljbGUmc2lkPTEwODc4MA0KDQpDYSBjaGV0IGhhbmcgbG9hdCB0 cmVuIHNvbmcgTmh1ZSBsYSBkbyBtb2kgdHJ1b25nIG51b2MgbyBkYXkgYmkgbyBuaGllbSBuZ2hp ZW0gdHJvbmcNCg0KVGluIHR1IFRydW5nIHRhbSBRdWFuIHRyYWMgdmEgUGhhbiB0aWNoIHRhaSBu Z3V5ZW4gbW9pIHRydW9uZywgdGluaCBjaG8gZGVuIGNoaWV1IDEwLzMsIG1vdCB0YW4gY2EgY2hl dCBkYSBkdW9jIHZvdCBsZW4gdHJvbmcga2hpIGhhbmcgdGFuIGNhIGNoZXQga2hhYyB2YW4gY29u IGRlbiBraXQgdHJlbiBzb25nIE5odWUuIA0KDQo0LzcgY2hpIHRpZXUgbnVvYyB2dW90IGNodWFu DQogDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOS8wNi84NTUyNDEvIDE1OjI1 JyAyOC8wNi8yMDA5IChHTVQrNykNCg0KSGEgTm9pOiBUcm9uZyByYXUgdHJlbiBkb25nIG51b2Mg dGhhaSANCiAgDQpMYSBjb24gc29uZyBjaHVhIG51b2MgdGhhaSBjdWEgSGEgTm9pIG5lbiBzb25n IE5odWUgbyBuaGllbSB0cmFtIHRyb25nIHR1IG5oaWV1IG5hbSBuYXkuIFZheSBuaHVuZywgdHJl biBuaGlldSBkb2FuIHNvbmcgYm9jIG11aSBob2kgdGhvaSBuYXkgdmFuIGR1b2MgZHVuZyBkZSB0 cm9uZyByYXUgbXVvbmcuDQoNClRoZW8gY2h1IG5odW5nIGJlIHJhdSBtdW9uZyB0cmVuIGRvYW4g c29uZyBOaHVlIGNoYXkgcXVhIHhhIEh1dSBIb2EgKGh1eWVuIFRoYW5oIFRyaSAtIEhhIE5vaSkg dGhpIHJhdSBiZSBjaHUgeWV1IGR1b2MgbWFuZyB2YW8gYmFuIHRhaSBraHUgdnVjIG5vaSB0aGFu aC4NCg0KSGEgTm9pIG5vaSB0aWVuZyBsYSB0aGFuaCBwaG8gY28gbmhpZXUgc29uZyBobywgbmd1 b2kgSGEgTm9pIGx1b24gY2FtIHRoYXkgdHUgaGFvIHZlIGRpZXUgbmF5LiBUaGUgbmh1bmcgdGhh dCB4b3QgeGEga2hpIGNoaSB0cm9uZyB2b25nIGhvbiAyMCBuYW0sIHJhdCBuaGlldSBobyBudW9j IGRhIGJpIG1hdCB0aWNoLg0KDQpodHRwOi8vd3d3LnhhbHVhbi5jb20vbW9kdWxlcy5waHA/bmFt ZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9MTA5Mzc5DQoNCk51b2MgbWF5IEhhIE5vaSBuaGllbSBh bW9uaSBnYXkgYmVuaCB1bmcgdGh1DQoNClRpZW4gc2kgVHJhbiBWYW4gTmhpIGxheSBudW9jIHRy dWMgdGllcCB0dSB2b2kgbnVvYyBtYXkgY2hvIHZhbyBsbyB2YSBuaG8gdmFpIGdpb3QgZHVuZyBk aWNoIHRodSBwaGFuIHVuZyBob2EgaG9jLiBWYWkgZ2lheSBzYXUsIG9uZyBudW9jIGRhbmcgdHJv bmcgYmF0IGRhdSB4dWF0IGhpZW4gbmh1bmcgdmFuIG1hdSB2YW5nLCBkZSBjaHVuZyB2YWkgcGh1 dCB0aGkgbG9wIHZhbiBuYXkgbGFuZyB4dW9uZyB0aGFuaCB0YW5nIGRheSBkdW9pIGRheS4NCg0K VGllbiBzaSBUcmFuIFZhbiBOaGkgY2hvIGhheSwgbW90IGxvYXQgY2FjIG5oYSBtYXkgbnVvYyBi aSBuaGllbSBhbW9uaSBuaHUgSGEgRGluaCwgUGhhcCBWYW4sIFR1b25nIE1haS4uLiBOaGllbSBu YW5nIG5oYXQgbGEgTmhhIG1heSBudW9jIFBoYXAgVmFuIHZvaSBoYW0gbHVvbmcgYW1vbmkgY28g dHJvbmcgbnVvYyBtYXkgbGVuIHR1IDE1IGRlbiAxOG1nIG1vdCBsaXQgY2hvIGRlbiA0MCCWIDYw IG1nIG1vdCBsaXQgKGdpb2kgaGFuIGNobyBwaGVwIGxhIHBoYWkgdGhhcCBob24gMSw1IG1nIG1v dCBsaXQpLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvZG90aGkvMjAwOTEyL0J1Yy10 dS1oby1iYW4tdm9pLWdpYS0yMC10cmlldS9tMi04ODY3MzQvIDEwOjAyLCAyOS8xMi8yMDA5IChH TVQrNykNCg0KSGEgTm9pOiBCdWMgdHUgaG8gYmFuIDIwIHRyaWV1L20yIA0KDQpLaHUgYW8gS2hv YW5nIHJvbmcgZ2FuIDE0LjAwMG0yIHRodW9jIHhhIE1lIFRyaSwgaHV5ZW4gVHUgTGllbSwgSGEg Tm9pIGdpbyBkYSBraG9uZyBjb24uIA0KQ2Ega2h1IGhvIGRhIGJpIGJpZW4gdGhhbmggbmhhIGRh biBjaGkgdHJvbmcgdm9uZyB2YWkgbmFtLiBMYSBob24sIHRyZW4ga2h1IGhvIGRhIGJpIGxhcCBk aSwgDQpjbyBjYSBiYWkgZG8geGUgY3VhIGhvcCB0YWMgeGEgSG9uZyBUaWVuIGR1bmcgbGVuIGRl IGR1bmcgdm9pIHN1IGRvbmcgeSBjdWEgY2hpbmggcXV5ZW4geGEuIA0KDQpodHRwOi8vd3d3LnZp ZXRuYW1uZXQudm4vcHNrcy8yMDEwMDgvTGFwLWhvLWdpdWEtSGEtTm9pLVBoZXAtdnVhLXRodS1s ZS1waHVvbmctOTI5MjM5LyBWdSBEaWVwIC0gSG9hbmcgQW5oIDA3OjE5LCAxNi8wOC8yMDEwIChH TVQrNykNCg0KSGEgTm9pOiBMYXAgaG8gZ2l1YSBIYSBOb2k6IFBoZXAgdnVhIHRodWEgbGUuLi4g cGh1b25nPw0KDQpTYXUga2hpIGJhbyBjaGkgZGFuZyB0aW46ICJCYWkgeGUsIHF1YW4gYmlhIHRp ZXAgdHVjIG51b3QgY2h1bmcgaG8gSGFvIE5hbSIsIFVCTkQgDQpxdWFuIERvbmcgRGEgZGEgY2hp IGRhbyBwaHVvbmcgTyBDaG8gRHVhIGtpZW0gdHJhLCB4dSBseSByb2kuLi4gYm8gZG8uDQoNCkJh biBMZSBUYW0sIG5ndW9pIGRhbiBzb25nIG8gcGh1b25nIE8gQ2hvIER1YSwgZGlhIGNoaSBlbWFp bDogcmFpbmZyb21tYXJzQHlhaG9vLmNvbSwgDQpyYXQgYnVjIHh1YyB0cnVvYyB0aHVjIHRyYW5n IGFvIGhvIHRyZW4gZGlhIGJhbiBUaHUgZG8gZGFuZyBiaSBsYW4gY2hpZW0gbmdoaWVtIHRyb25n LCANCnZhIGNobyByYW5nIG5ndXllbiBuaGFuIGRhbiBkZW4gdGh1YyB0cmFuZyB0cmVuIG1vdCBw aGFuIGxhIHN1IHlldSBrZW0gdHJvbmcgcXVhbiBseSANCnZhIHRoYWkgZG8gY29pIHRodW9uZyB5 IGtpZW4gY3VhIGRhbiBjdWEgbW90IGJvIHBoYW4gY2FuIGJvIGRpYSBwaHVvbmc6ICJUb2kgZG9u ZyANCnkgdm9pIHBob25nIHN1LCB0b2kgZGEgbyBraHUgdnVjIG5heSA0IG5hbSB2YSB0aGF5IHBo dW9uZyBPIENobyBEdWEgcmF0IGNvaSB0aHVvbmcgDQp5IGtpZW4gY3VhIG5ndW9pIGRhbiwgZHUg bHVhbi4gTmdvYWkgdmFuIGRlIGR1b25nIEhhbyBOYW0gKGRhIHRybyB0aGFuaCBtb3QgdmkgZHUg DQpraW5oIGRpZW4gY3VhIHF1YW4gbHkgeWV1IGtlbSwgbGFtIGR1b25nLCBnaWFpIHBob25nIG1h dCBiYW5nIGtlbyBkYWkgbmhpZXUgbmFtLCANCnF1eSBob2FjaCB0aGlldSB0aGFtIG15LCBidW9u ZyBsb25nIGRlIGNhYyBob2F0IGRvbmcgbGFuIGNoaWVtIG5nYW5nIG5oaWVuIGRpZW4gcmEpLiAN ClBodW9uZyBjb24gYm8gcXVhIHkga2llbiBjdWEgbmhpZXUgaG8gZGFuIHZlIHZhbiBkZSBjYXAg bnVvYyBzaW5oIGhvYXQsIHZhbiBkZSB4dSBseSByYWMgdGhhaSwgdmFuIGRlIGFuIG5pbmguLi4i DQoNCk1vbmcgbXVvbiBiYW8gY2hpIHRpZXAgdHVjIHZhbyBjdW9jIGRlIHRydXkgY3V1IHRyYWNo IG5oaWVtIGN1b2kgY3VuZyB0aHVvYyB2ZSBhaSBsYSB5IA0Ka2llbiBjdWEgYW5oIFRyYW4gTWlu aCBTb24sIGVtYWlsOiBtaW5odHJhbkBnbWFpbC5jb206ICAiQmFvIGNoaSBub2kgbWFpIG5odW5n IA0Ka2hvbmcgY28gcXVhbiBjaHVjIG5hbmcgbm9pIGdpLiBDaGFuIHF1YSB2b2kgY2FjaCBsYW0g dmllYyBjdWEgY2hpbmggcXV5ZW4gcXVhbiBEb25nIA0KRGEuIENoaW5oIHF1eWVuIGtob25nIG5v aSBnaSBjdSBkZSBuaHUgdGhlIHRoaSBjaGkgbW90IHRob2kgZ2lhbiBudWEgdGhvaSBobyBzZSB0 aGFuaCBiYWkgDQpkYXQgaG9hbmcgcm9pIGxhaSBsYW4gY2hpZW0uIFZpZXROYW1OZXQgbmVuIHRp ZXAgdHVjIHRydXkgY2hvIGRlbiBjdW5nIHRyYWNoIG5oaWVtIA0KdGh1b2MgdmUgYWkiLiANCg0K aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2JhbmRvY3ZpZXQvYmFuZG9jLzIwMDkvMDgvODYzMDYz LyBDYXAgbmhhdCBsdWMgMDg6MzAsIFRodSBUdSwgMTIvMDgvMjAwOSAoR01UKzcpDQoNCkhhIE5v aTogS2hpIG5ndW9pIGRhbiBwaGFpIGNhbmggdGFjICd0cm9tJyB0cmVuIGRhdCBjdWEgbWluaCAN Cg0KNTEgaG8gZGFuIG8geGEgTGEgUGh1IChodXllbiBIb2FpIER1YywgVFAuIEhhIE5vaSkgZ3Vp IGRvbiBsZW4gYmFvIFZpZXROYW1OZXQga2Uga2hvIHZlIGNhbmggMiBuYW0gbmF5IGhvIHBoYWkg Y2FuaCB0YWMgInRyb20iIHRyZW4gZGF0IGN1YSBtaW5oLiBOaGEgYmkgZ2lhaSB0b2EgdHJvbmcg a2hpIGNodWEgY28gZGVuIGJ1IGtoaWVuIGhvIHBoYWkgbGFtIGNhbmggbWFuIHRyb2kgY2hpZXUg ZGF0LiANCg0KQ2hpbmggcXV5ZW4geGEgY3VuZyBwaGFpIHRoYW4gdHJvaSBraGkgc3VvdCBuZ2F5 IGRlbSBwaGFpIGxvICJjYW5oIiBkYW4gZ2l1IGRhdCBxdXkgaG9hY2ggZHUgYW4uLi4NCg0KIkhv IGNobyBtYXkgeHVjLCB4ZSBjYXUgbyBhdCB0aWVuIHZhbyBuaGEgY2h1bmcgdG9pLCB0aG9uZyBi YW8gY2hvIGNodW5nIHRvaSBjaHV5ZW4gZG8gZGFjIHJhIG5nb2FpLiBSb2kgbmh1bmcgY28gbWF5 IGRvIHBoYSBzYXAgdHVuZyBuaGEuIENoaSB0cm9uZyBtb3QgdGhvaSBnaWFuIG5nYW4sIDUxIG5n b2kgbmhhIGRhbiB0cm8gdGhhbmggbW90IGRvbmcgZG8gbmF0IiAtIGFuaCBOZ3V5ZW4gUXVhbmcg VmluaCwgbW90IG5ndW9pIGRhbiBMYSBQaHUgKGh1eWVuIEhvYWkgRHVjLCBIYSBOb2kpIGtlIGxh aS4NCg0KaHR0cDovL3d3dy52aWV0bmFtdG91cmlzbWluZm8uY29tL2luZGV4LnBocC9Hb2xmL1Ro dS10dW9uZy15ZXUtY2F1LUhhLU5vaS1raG9uZy14YXktc2FuLWdvbGYtdGFpLUhvYS1MYWMuaHRt bCBUaHUgaGFpLCAwNyBUaGFuZyA5IDIwMDkgMTU6MjAgDQoNClRodSB0dW9uZyB5ZXUgY2F1IEhh IE5vaSBraG9uZyB4YXkgc2FuIGdvbGYgdGFpIEhvYSBMYWMgDQoNCmh0dHA6Ly90aW50dWMueGFs by52bi8wNS05NTExMTc1OTYvc2FpX3BoYW1fZGF0X2RhaV90YWlfaGFfdGF5XzRfY2FuX2JvX2Jp X2t5X2x1YXQuaHRtbFRodSBCYSwgMTgvMDkvMjAwNywgMTY6MDUNCg0KSGEgVGF5OiBLaG9pIHRv IHZ1IHRoYW0gbmh1bmcgbyBCYW4gUUxEQSBBbiBLaGFuaA0KDQpodHRwOi8vYnV0bG9uZy5tdWx0 aXBseS5jb20vam91cm5hbC9pdGVtLzQzOC80MzggDQoNClRodSB0dW9uZyB5ZXUgY2F1IHBoYWkg dGh1IGhvaSBjYWMga2hvYW4gdGllbjogZ2lhIHRyaSBjbyBwaGFuIHV1IGRhaSBkbyA1IG5oYSBk YXUgdHUgY2hpZW4gbHVvYyBodW9uZyBraG9uZyBkdW5nICg0MSw2IHR5IGRvbmcpLCB0aWVuIGxh aSBkbyBzdSBkdW5nIGNhYyBraG9hbiB0aWVuIGNodWEgbm9wICgyNDEgdHkgZG9uZyksIGdpYSB0 cmkgcXV5ZW4gcGhhdCB0cmllbiBkdSBhbiBLaHUgZG8gdGhpIEJhYyBBbiBLaGFuaCAoMTkyIHR5 IGRvbmcpLCBnaWEgdHJpIHF1eWVuIHN1IGR1bmcgZGF0IGRpZW4gdGljaCB0aHVjIGhpZW4gZHUg YW4gS2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9hIC0gTmhhbiBDaGluaCAoaG9uIDI3MCB0eSBkb25n KS4NCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvTGllbi1xdWFuLWRlbi1z YWktcGhhbS1vLXhhLUFuLUtoYW5oLTItSGEtVGF5LTMtcXVhbi1jaHVjLWJpLWRlLW5naGkteHUt bHktaGluaC1zdS80NTEzNTg4My8yMTgvIFRodSBiYSwgMjEgVGhhbmcgY2hpbiAyMDA0DQoNCkxp ZW4gcXVhbiBkZW4gc2FpIHBoYW0gbyB4YSBBbiBLaGFuaCAyIChIYSBUYXkpLCAzIHF1YW4gY2h1 YyBiaSBkZSBuZ2hpIHh1IGx5IGhpbmggc3UNCg0KVGhlbyBWaWVuIEtTTkQgdGluaCBIYSBUYXks IHRyb25nIHZ1IGFuIG5naGllbSB0cm9uZyBBbiBLaGFuaCAyIGxpZW4gcXVhbiBkZW4gY2FjIHNh aSBwaGFtIHZlIHF1YW4gbHkgZGF0IGRhaSwgY28gcXVhbiBkaWV1IHRyYSBkYSBsYW0gcm8gdmll YyBnaWFvIHRodWEgNS4xMDltMiBkYXQgbyB4YSBBbiBLaGFuaCAoSC5Ib2FpIER1YykgY2hvIFhp IG5naGllcCBDaGFuIG51b2kgdmEgc2FuIHh1YXQgdGh1YyBhbiBnaWEgc3VjIChYTiBjaGFuIG51 b2kpIGRlIGRvbiB2aSBuYXkgYmFuIGRhdCBidWEgYmFpIGNobyBuaGlldSBkb24gdmksIGNhIG5o YW4gdGh1IGxvaSBiYXQgY2hpbmggaG9uIDQwIHRpIGRvbmcuIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4veGFob2kvcGhhcGx1YXQvMjAwNS8wNS80MzMzOTEvIDA3OjA2LCAxOS8wNS8yMDA1 IChHTVQrNykNCg0KSGEgVGF5OiBPIG1haSBkYW0gJ1RheSBUaGllbiBkYWkgcXVhbicgDQoNCkRv bmcgbWFpIGRhbSBuYXkgZHVvYyB0aGlldCBrZSBuaHUgbW90ICJ0aGllbiBjdW5nIiwgaGFuZyBu Z2F5IG51b20gbnVvcCBraGFjaCByYSB2YW8uIA0KQ28gcXVhbiBjaHVjIG5hbmcgZGlhIHBodW9u ZyBiaWV0IG5odW5nIGJheSBsYXUgdmFuIGJvIHRheS4NCg0KQ2h1IHRpY2ggVUJORCB0aGkgeGEg U29uIFRheSBQaHVuZyBWYW4gVGhpZXA6DQoNCkNodW5nIHRvaSBkYSByYXQgYnVjIHh1YyB2aSBv IG5oZW4gbmhlbiBuYXkNCg0KU3UgaG9hdCBkb25nIGNvbmcga2hhaSB2YSBydW0gYmVuZyBjdWEg VGF5IFBodW9uZyBkYWkgcXVhbiB0cm9uZyBuaGlldSBuYW0gcXVhIGRhIGdheSBidWMgeHVjIA0K Y2hpbmggcXV5ZW4gdmEgbmhhbiBkYW4gZGlhIHBodW9uZy4gTmdheSBzYXUga2hpICJkb25nIiBt YWkgZGFtIHRyZW4gYmkgdHJpZXQgcGhhLCBUaWVuIFBob25nIA0KZGEgZ2hpIG5oYW4geSBraWVu IGN1YSBvbmcgUGh1bmcgVmFuIFRoaWVwLCBDaHUgdGljaCBVQk5EIHRoaSB4YSBTb24gVGF5LiAN Cg0KT25nIFRoaWVwIGtoYW5nIGRpbmg6ICJEYXkgbGEgbW90IHR1IGRpZW0gbmh1YyBuaG9pIHR1 IGxhdSB0YWkgZGlhIGJhbiB0aGkgeGEgU29uIFRheS4gDQpOaGlldSB0byBjaHVjIGRvYW4gdGhl IG5odSBIb2kgcGh1IGxhbywgSG9pIGN1dSBjaGllbiBiaW5oLi4uIHJhdCBidWMgeHVjIHZhIGRh IGd1aSANCmRvbiBkZW4gbmhpZXUgY28gcXVhbiBjaHVjIG5hbmcgY3VhIGRpYSBwaHVvbmcgZGUg bmdoaSBnaWFpIHF1eWV0IHR1IGRpZW0gbmF5LCBzb25nIA0KZGVuIG5nYXkgMTgvNS8yMDA1IG8g bmhlbiBuaGVuIG5heSBtb2kgZHVvYyBDQSB0aW5oIEhhIFRheSB0byBjaHVjIHRyaWV0IHBoYS4g DQoNCmh0dHA6Ly9oYXRuYW5nLm5ldC9zaG93dGhyZWFkLnBocD9wPTM4MTMxMCANCg0KSHVuZyB0 aGFuIEhhbm9pIE5ndXllbiBEdWMgTmhhbmggdGhhbSBuaHVuZyANCg0KVHVvbmcgTmd1eWVuIER1 YyBOaGFuaCwgZ2lhbSBkb2MgU28gQ29uZyBBbiB0aGFuaCBwaG8gSGEgTm9pIGJpIHRodW9jIGNh cCB0byBjYW8gDQpsYSB0aGFtIG5odW5nLCBjdWEgcXV5ZW4gdmEgY28gcXVhbiBoZSB2b2kgZGFt IHhhIGhvaSBkZW4uIA0KDQpOZ3V5ZW4gVGllbiwgbW90IHZpZW4gY2h1YyBTbyBDb25nIEFuIEhh IE5vaSBndWkgZG9uIHRvIGNhbyB0b2kgTGUgSG9uZyBBbmgsIGJvIA0KdHJ1b25nIENvbmcgQW4g dmEgbmhpZXUgY2h1YyBzYWMga2hhYyBjdWEgY2hlIGRvLCBjYW8gYnVvYyBOZ3V5ZW4gRHVjIE5o YW5oIG5oaWV1IA0KZGlldSBxdWEgbGEgZG9uIG1hIGNodW5nIHRvaSBwaG8gYmllbiBkdW9pIGRh eS4NCg0KKEhpbmggdHJlbjogTmd1eWVuIER1YyBOaGFuaCwgZ2lhbSBkb2MgU28gQ29uZyBBbiB0 aGFuaCBwaG8gSGEgTm9pIChiZW4gcGhhaSkgDQpkdW5nIGNodXAgaGluaCB2b2kgY29uIHRyYWks IE5ndXllbiBEdWMgUXVhbmcgdHUgUXVhbmcgYmVvIChiZW4gdHJhaSkuIEJvIHRoYW0gbmh1bmcg DQpkZSBjb24gYW4gY2hvaSBraGV0IHRpZW5nIEhpbmg6IGJsb2cgSGFMb25nVklQLmNvbSkNCg0K Q29uZyBob2EgeGEgaG9pIGNodSBuZ2hpYSBWaWV0IE5hbQ0KRG9jIGxhcCAtIFR1IGRvIC0gSGFu aCBwaHVjDQoNCktpbmggZ3VpOg0KDQotIEQvYyBCbyB0cnVvbmcgTGUgSG9uZyBBbmgNCi0gRC9j IEJpIHRodSBUaGFuaCB1eSBQaGFtIFF1YW5nIE5naGkNCi0gRC9jIENodSBuaGllbSBVQktUIFRy dW5nIHVvbmcNCi0gQ2FjIGQvYyBUaHUgdHJ1b25nIEJvIENvbmcgYW4NCi0gRC9jIENodSB0aWNo IFVCTkQgSGEgTm9pDQoNClRodWEgY2FjIGRvbmcgY2hpIGxhbmggZGFvISBUb2kgbGEgTmd1eWVu IFRpZW4sIGhpZW4gZGFuZyBjb25nIHRhYyB0YWkgQ29uZyBBbiBIYSANCk5vaS4gVm9pIGdhbiAz MCBjaHVjIG5hbSB0aGFtIG5pZW4gY29uZyB0YWMsIHRvaSBkYSB0cmFpIHF1YSBuaGlldSBkb2kg Z2lhbSBkb2MsIGNodW5nIA0Ka2llbiBuaGlldSBjaHV5ZW4gYnVvbiB2dWkgY3VhIENvbmcgQW4g SGEgTm9pLiBOaHVuZyBjbyBtb3Qgc3UgdGhhdCB0b2kgeGluIG1hbmggZGFuIA0KdHJpbmggYmF5 IHZvaSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8gbGEgY2h1YSBiYW8gZ2lvIENvbmcgQW4gSGEgTm9p IGxhaSBuYXQgbmh1IGhpZW4gbmF5IA0KdmEgbmd1b2kgZ2F5IHJhIHRpbmggdHJhbmcgbmF5IGNo aW5oIGxhIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oLCBnaWFtIGRvYyBDb25nIEFuIEhhIE5vaS4NCg0K VHJ1b2MgZGF5LCB2aWVjIGNoYXkgY2h1YywgY2hheSBxdXllbiBjdW5nIGRhIHhheSByYSB0cm9u ZyBDb25nIEFuIEhhIE5vaSBuaHVuZyANCmNodWEgbWFuZyB0aW5oIGNoYXQgcGhvIGJpZW4uIE5o dW5nIHR1IGtoaSBvbmcgTmd1eWVuIER1YyBOaGFuaCBsZW4gbGFtIGdpYW0gZG9jIA0KdGhpIHZp ZWMgY2hheSBjaHVjLCBjaGF5IHF1eWVuIGRhIHRybyB0aGFuaCBwaG8gYmllbiwgZHVvbmcgbmhp ZW4sIHZvaSBiYXQga3kgYWkgbXVvbiANCmxlbiBnaXUgdmkgdHJpIGxhbmggZGFvLCBkdSBuaG8g bmhhdCBsYSBwaG8gY29uZyBhbiBwaHVvbmcuIFZpZWMgYm8gbmhpZW0sIGx1YW4gY2h1eWVuIA0K ZGV1IGRvIG9uZyBOaGFuaCBxdXlldCBkaW5oIGhldC4gQ2FjIGRvbmcgY2hpIHBobyBnaWFtIGRv YyBkZXUga2hvbmcgY28gdmFpIHRybyBnaS4gDQpOaGlldSB0cnVvbmcgaG9wLCBvbmcgTmhhbmgg bmhhbiB0aWVuIGNoYXkgY2h1YywgY2hheSBxdXllbiByb2ksIG5odW5nIGJpIGR1IGx1YW4gDQpD b25nIEFuIEhhIE5vaSBraG9uZyBkb25nIHRpbmgsIHZpIHNvIGNhbiBibyBkbyBkYSB0dW5nIGJp IGt5IGx1YXQsIG9uZyBOaGFuaCBsYWkgbGF5IA0KZGFuaCBjYXAgdHJlbiBkZSBsYW4gYXQsIG5o dTogInRydW9uZyBob3AgbmF5LCBhbmggVXQsIGFuaCBCYSwgYW5oIEJvbi4uLiBvIEJvIHZhIEJp IHRodSwgDQpjaHUgdGljaCBUUCBkYSBkb25nIHkgcm9pIiBob2FjICJ0cnVvbmcgaG9wIG5heSBk byBhbmggVXQsIGFuaCBCYSwgYW5oIEJvbi4uLiBvIEJvLCBkL2MgDQpCaSB0aHUsIGNodSB0aWNo IFRQIGdpb2kgdGhpZXUiLiBUaHUgZG9hbiBuYXkgY3VhIG9uZyBOaGFuaCBhbmggaHVvbmcgeGF1 IGRlbiBjYWMgZC9jIA0KbGFuaCBkYW8sIG5oYXQgbGEgbmh1bmcgYWkga2hvbmcgaGlldSB0aHUg ZG9hbiwgY29uIG5ndW9pIHRoYXQgY3VhIG9uZyBOaGFuaC4NCg0KR2FuIGRheSwgb25nIE5oYW5o IGRhbmcgZHVuZyBjaGluaCBzYWNoIGx1YW4gY2h1eWVuIGNhbiBibyBkZSBydW5nIGRvYSBidW9j IG1vaSANCm5ndW9pIHBoYWkgY2hheSBkZSBsYXkgdGllbjsgZG9uZyB0aG9pIHRhbyBjbyBkZSBk ZSB0dSBuZ3VvaSBIYSBUYXkgY3UgKG9uZyBOaGFuaCBsYSANCm5ndW9pIEhhIFRheSkgbmFtIGdp dSBuaHVuZyBjaHVjIHZ1IHF1YW4gdHJvbmcgY3VhIENvbmcgQW4gSGEgTm9pLiBDbyBkb25nIGNo aSANCmRhbmcgbGFtIHRydW9uZyBtb3QgZG9uIHZpIG9uIGRpbmgsIHBoYXQgaHV5IG5hbmcgbHVj IHRvdCwgb25nIE5oYW5oIGRpZXUgc2FuZyBkb24gdmkgDQpraGFjIGRlIHRhbyBkaWV1IGtpZW4g Y2hvIGRhbiBlbSBsZW4uIE9uZyBIYWksIHRydW9uZyBwaG9uZyBjYW5oIHNhdCBnaWFvIHRob25n IGRhbmcgDQpsYW0gdGh1IHR1YyBuZ2hpIGh1dSwgdGhheSBjbyBuaGlldSBuZ3VvaSBtdW9uIHZh byB2aSB0cmkgbGFuaCBkYW8gbmF5LCBvbmcgTmd1eWVuIER1YyANCk5oYW5oIHRob25nIHF1YSBt b3Qgc28gZGUgdHUgYmFuIHRpbiByYSBnaWEsIGFpIG11b24gbGVuIHRydW9uZyBwaG9uZyBjYW5o IHNhdCBnaWFvIA0KdGhvbmcgdGhpIHBoYWkgbm9wIDEgdHJpZXUgZG8gbGEuIERhIGNvIG5ndW9p IG5vcCAxIHRyaWV1IGRvIHZhIGRhIGR1b2Mgb25nIE5oYW5oIGNoYW0gDQpjaG9uIGxhbSB0cnVv bmcgcGhvbmcgY2FuaCBzYXQgZ2lhbyB0aG9uZyAoZHVvbmcgbmhpZW4sIHNhdSBraGkgbGVuIGNo dWMgaG8gc2UgdGltIG1vaSANCmNhY2ggdGh1IGhvaSBsYWkgc28gdGllbiBkYSBkbyByYSB2YSBk byBjaGluaCBsYSBuZ3V5ZW4gbmhhbiBnYXkgcmEgdGlldSBjdWMsIHNhY2ggbmhpZXUgDQpuaGFu IGRhbikuIE1vaSBuZ3VvbiB0aWVuIGNoYXkgY2h1YywgY2hheSBxdXllbiBkZXUgZG8gdmUgZ2lh IGRpbmggb25nIE5ndXllbiBEdWMgTmhhbmguDQoNCkRhbSBjdW9pIGNvbiB0cmFpIG9uZyBOZ3V5 ZW4gRHVjIE5oYW5oIGN1bmcgbGEgZGFtIGN1b2kga3kgY3VjLCBzYWMgbXVpIHhhIGhvaSBkZW4g DQpuaGF0IHR1IHRydW9jIGRlbiBuYXkuIE5nb2FpIHZpZWMgdG8gY2h1YyBsaW5oIGRpbmggZGll biByYSAwMyBuZ2F5IGxpZW4gdm9pIGx1b25nIGtoYWNoIA0KbGVuIGRlbiBtYXkgbmdoaW4gbmd1 b2ksIG9uZyBOaGFuaCBjb24gc2FpIG1heSBkZSB0dSBsYSBuaHVuZyB0ZW4gdHJ1bSB4YSBob2kg ZGVuIA0KKGNob2kgdm9pIG9uZyBOaGFuaCB0dSBraGkgb25nIHRhIGNvbiBsYSB0cnVvbmcgcGhv bmcgY2FuaCBzYXQgZGlldSB0cmEpIGNhbSB0aGllcCBtb2kgDQpkZW4gZ2FwIG5odW5nIHRlbiBj byBtYXUgbWF0IHRyb25nIGdpb2kgeGEgaG9pIGRlbiwgdHJ1bSBidW9uIGxhdSwgZG9pIG5vIHRo dWUsIGJhbyBrZSANCm5vaSBsYSBvbmcgTmhhbmggbW9pIG5odW5nIHlldSBjYXUga2hvbmcgZHVv YyBkZW4gZHUgZGFtIGN1b2kuIE1vaSBjdW9pIG1hIGtob25nIA0KY2hvIGRlbiBkdSBkYW0gY3Vv aSB0aGkgY2hpIGNvIGxhIHlldSBjYXUgbm9wIHRpZW4sIGdvaSBsYSAibXVuZyB2b25nIGNoYXUi LiBUcnVuZyBiaW5oIA0KbW9pIHBob25nIGJpICJtdW5nIHZvbmcgY2hhdSIgbmF5IGtob25nIGR1 b2kgMzAwMCBVU0QuIE5oaWV1IHRpZW4gbmVuIGNvbiB0cmFpIG9uZyANCk5oYW5oIChOZ3V5ZW4g RHVjIFF1YW5nKSBkYSB0cm8gdGhhbmggdGF5IGNob2kga2hldCB0aWVuZyBIYSBOb2kgKGNoaSBj YW4gbGVuIG1hbmcgDQpJbnRlcm5ldCBnbyBOZ3V5ZW4gRHVjIFF1YW5nIHRoaSBzZSBjbyBuaGll dSBiYWksIGFuaCBwaGFuIGFuaCB2aWVjIGFuIGNob2kgY3VhIE5ndXllbiBEdWMgUXVhbmcpLg0K DQpYaW4ga2hhbmcgZGluaCByYW5nLCBnaWEgdHJ1b25nLCBkb2MgZG9hbiwgb25nIE5oYW5oIGto b25nIGtlbSBkYW4gYW5oIGRpIHRydW9jLCANCm5odW5nIG5pbmggaG90LCBsdXUgbWFuaCB0aGkg ZGFuIGFuaCwgZGFuIGNoaSBkaSB0cnVvYyBnb2kgb25nIE5oYW5oIGxhIHN1IHBodS4NCg0KVGh1 YSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8hIE5odW5nIHZpZWMgb25nIE5ndXllbiBEdWMgTmhhbmgg bGFtIGRhIHZhIGRhbmcgbGFtIA0Kbmh1YyBuaG9pIENvbmcgQW4gSGEgTm9pLiBOZ3VvaSBkYW4g a2hvbmcgdGluIHZhbyBDb25nIEFuIEhhIE5vaS4gQ2FuIGJvLCBjaGllbiBzeSANCmtob25nIHRp biB2YW8gbGFuaCBkYW8gQ29uZyBBbiBUUC4gSGEgTm9pLiBWaSB2YXksIHRvaSBkZSBuZ2hpIGNh YyBkb25nIGNoaSBsYW5oIGRhbyANCmNhbiBjbyBuaHVuZyBiaWVuIHBoYXAgY2hhbiBjaGluaCwg Y3VuZyBjbyBsYWkgQ29uZyBBbiBIYSBOb2k6DQoNCi0gVXkgYmFuIGtpZW0gdHJhIFRydW5nIHVv bmcga2llbSB0cmEgdG9hbiBkaWVuIHZlIG9uZyBOaGFuaA0KDQotIENhY2ggY2h1YyBnaWFtIGRv YywgZGlldSBjaHV5ZW4gb25nIE5ndXllbiBEdWMgTmhhbmggdmUgVmFuIHBob25nIEJvIGhvYWMg VmllbiBjaGllbiBsdW9jLg0KDQotIEJvIG5oaWVtIG5ndW9pIGNvIHRhaSwgZHVjIGxhbSBnaWFt IGRvYyBDb25nIEFuIEhhIE5vaS4gVG90IG5oYXQgbGEgY2hvbiBkb25nIGNoaSBvIA0KY2FjIEN1 YywgVG9uZyBjdWMgZGUga2hvbmcgZGluaCBkYW5nIGdpIGRlbiBjYWMgdGlldSBjdWMgdHJ1b2Mg ZGF5IGN1YSBDb25nIEFuIEhhIE5vaS4NCg0KLSBDYWMgZG9uZyBjaGkgbGFuaCBkYW8gQm8gY2Fu IGxhbSB2aWVjIHZvaSBCYW4gR2lhbSBEb2MgQ29uZyBBbiBIYSBOb2kgZGUgY28gDQpuaHVuZyBi aWVuIHBoYXAgbG9haSBibyBob2FuIHRvYW4gaGllbiB0dW9uZyBjaGF5IGNodWMsIGNoYXkgcXV5 ZW4gaGllbiBuYXkuDQoNCkNhYyBkb25nIGNoaSBsYW5oIGRhbyBjdSBraGFjaCBxdWFuIGtpZW0g dHJhLCB4dSBseSwgbmh1bmcgeGluIGR1bmcgdGlldCBsbyB0ZW4gdG9pLg0KDQpYaW4gdHJhbiB0 cm9uZyBjYW0gb24gY2FjIGRvbmcgY2hpIGxhbmggZGFvIQ0KDQpIYSBOb2ksIG5nYXkgMTEgdGhh bmcgNCBuYW0gMjAwOQ0KTmd1eWVuIFRpZW4gDQoNCmh0dHA6Ly93d3cubmd1b2ktdmlldC5jb20v YWJzb2x1dGVubS9hbm12aWV3ZXIuYXNwP2E9MTEzNzg2IDAyLzYvMjAxMCBUTiANCg0KVnVhIHRo YW0gbmh1bmcgTmd1eWVuIER1YyBOaGFuaCBsZW4gY2h1YyBwaG8gdG9uZyBjdWMgdHJ1b25nIEFu IE5pbmggDQoNCk5nYXkgMzEvNS8yMDEwIHZ1YSBxdWEsIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oIGR1 b2MgdGhhbmcgY2h1YyBwaG8gdG9uZyBjdWMgdHJ1b25nIA0KVG9uZyBDdWMgQW4gTmluaCwgbmh1 bmcgdmFuIGtpZW0gbmhpZW0gY2EgY2h1YyBnaWFtIGRvYyBTbyBDb25nIEFuIEhhIE5vaS4NCg0K KEFuaDogSGFpIGJvIGNvbiBOZ3V5ZW4gRHVjIE5oYW5oIHZhIE5ndXllbiBEdWMgUXVhbmcgdHUg UXVhbmcgQmVvIGNodXAgaGluaCANCmJlbiBobyBHdW9tPyBIaW5oOiB0aG9uZ3RpbmJlcmxpbi5u ZXQpDQoNCktoaSB2dSBhbiBjbyBiYWMgbmhpZXUgdHJpZXUgZG8gbGEgY3VhIEJ1aSBUaWVuIER1 bmcsIHRvbmcgZ2lhbSBkb2MgQmFuIFF1YW4gTHkgDQpjYWMgZHUgYW4gKGNhdSBkdW9uZykgUE1V IDE4IGN1YSBCbyBHaWFvIFRob25nIFZhbiBUYWkgbm8gcmEgaG9pIG5hbSAyMDA2LCBtb3QgDQp0 cm9uZyBuaHVuZyBzYWkgcGhhbSBjdWEgQnVpIFRpZW4gRHVuZyBiaSBwaGFuaCBwaHVpIGxhIGNo byBuaGlldSBxdWFuIGNodWMgY3VhIA0KbmhpZXUgbmdhbmgsIGNvIHF1YW4ga2hhYyBuaGF1IHhh aSBjaHVhIHhlIGhvaSBjdWEgY2FjIGR1IGFuIGhvYW4gdGF0OyBkdW5nIHJhLCANCmNhYyB4ZSBu YXkgcGhhaSBiYW4gZGksIHRoYW5oIGx5IHRhaSBzYW4gY3VhIGR1IGFuOyBOZ3V5ZW4gRHVjIE5o YW5oIGN1bmcgZGEgcGhhaSANCnRyYSBsYWkgbW90IGNhaSB4ZSBob2kgZG8gQnVpIFRpZW4gRHVu ZyBjdW5nLiANCg0KaHR0cDovL3ZpZXRiZi5jb20vZm9ydW0vYXJjaGl2ZS9pbmRleC5waHAvdC02 NDIyOC5odG1sIEhOIDA5LTI2LTIwMDgsIDA4OjI1DQogDQpWZW4gYnVjIG1hbiB2ZSBnaWEgZGlu aCB2YSBzdSBuZ2hpZXAgY3VhIGdpYW0gZG9jIENBVFAgSE4hDQoNCkdpYW0gZG9jIENBIFRQLiBI YSBOb2kgTmd1eWVuIER1YyBOaGFuaCAtIERpZW4gdGhvYWk6IDA5MTMyMDg1ODksIGxhIHR1b25n IHh1YXQgDQp0aGFuIHR1IHZ1bmcgY2hpZW0gdHJ1bmcgSGEgVGF5LiBTYXUgYmFvIG5hbSBib24g YmEgbGFuIGxvbiBjdW5nIGNhcCBtYXQgaGlwIHJhdCBnaWFuIA0KeGFvIGRpZW4gaGluaCwgdHJh bSBsdWFuIGN1bmcgYmFvIG5oaWV1IGN1bmcgYmFjIGN1b2Mgc29uZywgYmFjIE5oYW5oIGN1YSBj aHVuZyB0YSBydSANCmJ1biBkYXQgSGEgVGF5IHZ1b24gdmFpIHZlIEhhIE5vaSBsYW0gZ2lhbSBk b2MgY29uZyBhbiB0aHUgZG8gY3VhIGNhIG51b2MuIFZhIGN1bmcgDQpjbyBsZSBkdW9pIHRob2kg YmFjIENodXllbiwgYmFjIE5oYW5oIGJpIGtpbSBrZXAgbmhpZXUgcXVhLCBuZW4ga2hpIGxlbiBs YW0gZ2lhbSBkb2MgDQpyb2kgaXQgbGF1IHNhdSBkbywgZGF5IGRvIG5oaWV1IG5lbiBiYWMgY29u IGR1b2MgcGhvbmcgaGFtIHR1b25nLCBiYWMgdHJvIG5lbiBuZ29uZyANCm5naGVuaCwgY2hhbmcg c28gYm8gY29uIHRoYW5nIG5hby4gQ2hhYyBoYW4gY2FjIGJhbiBjdW5nIGNvbiBuaG8gdnUgUE1V IDE4IGN1YSANCiJEdW5nIHRvbmciIG5vaSB0aWVuZyAxIHRob2ksIEJhYyBOaGFuaCBraGkgZG8g bGEgUEdEIGN1bmcgZHVuZyAxIHhlIGN1YSBQTVUuIEF5IA0KdmF5IG1hIGJhYyB2YW4gdnVvdCBx dWEgYnVhIHJpdSBkdSBsdWFuLCBuZ2FuZyBuaGllbiB0aGFuZyBjaHVjIG5odSB0aHVvbmcuIEJh eSBnaW8gDQpiYWMgbmdhbmcgbmhpZW4gdHV5ZW4gYm8gdm9pIHJhdCBuaGlldSBkZSB0dSB0cm9u ZyBsdWMgdHJhIGR1IHR1dSBoYXUgIk1vdCBtaW5oIHRhbyBiYXkgDQpnaW8gZGkgMy00IGNhaSB4 ZSwgNS02IHRhaSB4ZSwgeGUgYmV0IGNvIGh1bW1lciB4ZW0gdGhhbmcgbmFvIGxhbSBnaSBkdW9j IHRhbz8iIA0KDQpPaSEgVGhlIHRoaSBraW5oIHJvaS4gQmFjIHZhbiBsYW0gcmEgdmUgZ2lhbiBk aS4gTyBjYWkgbmhhIGJlIGJlIG8gVHJ1b25nIERpbmggbmh1bmcgYWkgDQpiaWV0IGJhYyBjbyBi YW8gbmhpZXUgYmlldCB0aHUgbyBraGFwIG51b2MgVmlldCBOYW0gbmF5LiBEb3QgdnVhIHJvaSwg YmFjIGNvbiB2dW9uIHZvaSANCnNhbmcgTGFvLCBtdWEgZGF0IGJlbiBkby4uLiBCYWMgY3VuZyBn aWEgZGluaCB0YXAgdGhlbyB0aGUgdmlwIG8gTmlra28tIGtoYWNoIHNhbiBub2kgDQp0aWVuZyBI TiB2ZSBkbyBkYXQgZG8sIHZhIGJhYyBjdW5nIHRoaWNoIGFuIG1vbiBhbiBOaGF0IC0gY2hhYyBt b25nIHNvbmcgbGF1IHZldCBsb2MgDQpuaGlldS4uLiBCYWMgY29uIHRoYWNoIHRodWMgbmhpZXUg bmd1b2kgdmEgZGllbiBoaW5oIFRvbmcgY3VjIGNhbmggc2F0IGRhIGNob2kgbGFpIGJhYyB2dSBO ZXdjZW50dXJ5LiANCg0KUGh1IG5oYW46IE5ndXllbiBUaGkgUGh1b25nLSAwOTA0Li4uLi4uRHVv bmcgZHVvbmcgbGEgcGh1IG5oYW4gbmdhaSBnaWFtIGRvYyB0aGV0IHJhIA0KbHVhLCBuZ29haSBo aW5oIGhvaSBsdW4gMSB0aSwgbmh1bmcgbWEgZGFuaCBsbyBjYW0gdHUgY3UgZ29pIGxhIHRob2kg cm9pLiBOaHUgdHJvIGhlLCB2byANCnRodSBsaW5oIGNvbmcgYW4sIGxvIGRlIGRhIG1hbiB0YW4g YmFvLCBuZ2F5IG5hbyBraG9uZyBsZW4gSGFuZyBCYWksIExvIER1YyB0aGEgdmFpIGNvbiANCmxv IG5naGluIGRpZW0gbGEgYmFjIGJ1b24gaG9uIGNhIGJpZXQgdGluIGNob25nIGRpIGdhaS4uLiAN Cg0KVHJ1b25nIG5hbTogTmd1eWVuIER1YyBRdWFuZy0gZHRob2FpOiAwOTA5NTU1NTU5DQoNClti bG9nOiBodHRwOi8vYXUuYmxvZy4gMzYwLnlhaG9vLiBjb20vYmxvZy0gdjBZTkphWXpicXMzT2Fi cCA1V0FybWRtQmZnLT9jcT0xLCB5bSBsYSBidW1idW04NTg5XQ0KDQpBbmggUXVhbmcgY3VhIGNo dW5nIHRhIHRoaSBuZ3UgZGllbiBoaW5oLiBIb2MgY2FwIDMgVHJhbiBQaHUsIHN1b3QgbmdheSBk aSB0aGF5IGNvIHZhIA0KY2hvIHRpZW4gdGhhbmcgaG9jIGdpb2kgZGUgbmhpbiBiYWksIGF5IHZh eSBtYSBnaWEgZGluaCB2YW4ga2hvbmcgYmlldCBsdW9uZyBzdWMgbWluaCwgDQpjaG8gYW5oIGRp IGR1IGhvYy4gS2V0IHF1YSBhbmggc2luaCBuYW0gODQgbmh1bmcgc2F1IDQgbmFtIGJvbiBiYSBv IG51b2MgbmdvYWkgdmUgDQpWaWV0IE5hbSwgaGV0IFVjIHJvaSBBbmgsIGFuaCBsYWkgdmUgVk4g Y2F5IGxhaSBSTUlULiBWb2kgdGllbSBsdWMgY3VhIGJvLCBjaGFjIGFuaCBzZSANCmNvIGJhbmcu IENodW5nIHRhIGN1bmcgdm8gdGF5IGNodWMgYW5oIHRoYW5oIGNvbmcgbmhlISANCg0KVGh1IG51 OiBOZ3V5ZW4gUGh1b25nIEFuaC0gMDc3Li4uLi4NCg0KW2Jsb2cgdGh1IDE6IGh0dHA6Ly8zNjAu eWFob28uIGNvbS9wcm9maWxlLSBVV2o2UnVvMGRxUlZxMXNMIGZySVQNCmJsb2cgdGh1IDI6IGh0 dHA6Ly91ay4zNjAuIHlhaG9vLmNvbS8gcHJvZmlsZS03RjNVcE9NeiBjcVU3YTk2WkNrZksxaWMt ID9jcT0xLCB5bTogYmljdWFib21lIHZhIGVtYmlkYXldDQoNCkJhbiBuYXkgdGhpIHNpbmggbmFt IDg4LCBiYW5nIHR1b2kgdG8sIG5nb2FpIGhpbmggZ2lvbmcgb25nIGFuaCwgYmVvLCBkZW4sIHhh dSBuaHVuZyBjbyANCjEgY2h1IG5odW5nLCBjaHVwIGFuaCBhbiBsYW0gbmhlLCBtb2kgbmd1b2kg dmFvIHBob3Rvc3RyZWFtIHRyb25nIGJsb2cgZW0geSBzZSBiaWV0LiANCkR1IGVtIGNvIG5odSBu YW8gbmh1bmcgZHVvYyBjYWkgYm8gZW0gbGFtIHRvIHRoZSwgbWEgdHJlbiBkYW5oIG5naGlhIGxh IGJhbiBjaHVhIGNvIA0Kbmd1b2kgeWV1IG5odW5nIHRvIHRoZSBsYSB0byBwaGFpIHRpZXAgeHVj IHZhIG5vaSBjaHV5ZW4gdm9pIDMgbXkgbmFtIG5ndSB2b2kgZW0geSANCnJvYWkuIENodW5nIG5v IGRldSBiYW8gbmhhbSBtYXQgbGFtIHRoaSBjdW9pIGN1bmcgY3VuZyB4b25nIG5odW5nIGhhaSBs YW0gbmVuIGtob25nIA0KZHV5IHRyaSBub2kuLi4gQXkgdmF5IG5odW5nIHZvaSBtb2kgbmd1b2kg eHVuZyBxdWFuaCBlbSBzb25nIHJhdCBuZW4gbmEsICJnaWF1IG5naGUiIA0KbmVuIGFpIGN1bmcg bmdoaSBlbSBvayBsYW0gKGNhaSBuYXkgbW9pIG5ndW9pIGRvYyBibG9nIGVtIHNlIGJpZXQpLi4u IE8uIE5odW5nIG1hIG5vaSANCm5odSB0aGUgZW0gbGFpIGtob25nIGR1b2MgZGllbSBnaSBhPyBU cm9pIGtob25nIGJhdCBjb25nLCBidSBsYWkgZW0gbmF5IGhvYyBoYW5oIGN1bmcgDQp2YW8gbG9h aSBkdW9jLiBDaHV5ZW4gQW5oIEFtcyB2YSBiYXkgZ2lvIGRhbmcgaG9jIG8gVUsuLi4gTGF5IGhl dCBpb3QgdGhvbmcgbWluaCBjdWEgDQp0aGFuZyBhbmgsIHRob2kgYW5oIG5odW9uZyBlbSBjdW5n IGR1b2MuLi4gDQoNCkNvbiBkYXUgdHVvbmcgbGFpOiAwOTAuLi4uLi4uDQoNCltibG9nOiBodHRw Oi8vMzYwLnlhaG9vLiBjb20vcHJvZmlsZS0gY1phVGkzZzljcWlkODNvcCBMRU1XZHpKMVh3LT9j cT0xLCANCnltIGxhIGxpbmhwdXBweTg1XSANCg0KQ2hpIG5heSB0aGkgaG9hbmggdHJhbmcgdGhv aSByb2kuIEJvIGxhIE5ndXllbiBUaGFuaCBTb24gdnUgdHJ1b25nIHZ1IG5nb2FpIGdpYW8sIHRp IG51YSANCmxlbiB0aHUgdHJ1b25nIGJvIG5nb2FpIGdpYW8ga2kgdnVhIHJvaSwgdHJ1b3QgY2h1 YyB2aSBkaW5oIGtpZW4gdHVuZy4uLiBPIE5nYSB2b2kgYm8gdHUgYmUsIA0KY3VuZyB0aSB0b2Ug TG9tb25veG92LSB0cnVvbmcgZGFpIGhvYyBzbyAxIE5nYSBuaHVuZyBtYSBob2Mga2hvbmcgdGhl byBkdW9jIHZlIG51b2MgY2h1aSB2YW8gdHJ1b25nIGNvbiANCm9uZyBjaGF1IGNoYSBOZ29haSBn aWFvIHZpIGJvIGNvIHN1YXQuIEhvYyBoYW5oIGNoYW5nIGJhbmcgYWkgbmh1bmcgY28gbmdvYWkg aGluaCANCjFtNzAgKyBibyBsYW0gdG8gbmVuIHJhIHRydW9uZyB0cm9uZyBraGkga2hvaSBkdWEg TmdvYWkgZ2lhbyBnaW9pIGhvbiBnYXAgdGkgbGFuIGJvbiANCmNoZW4gdGltIHZpZWMsIGNoaSBM aW5oIGN1YSBjaHVuZyB0YSB1bmcgZHVuZyB2YW8gQ3VjIExhbmggU3UgQm8gTmdvYWkgR2lhbyBs YW0gdmllYy4gDQpTb25nIHRyb25nIG5odW5nIGx1YSwgY2hpIGNoaSBiaWV0IGRlbiBMb3VpcyBW dWl0dG9uLCBHdWNjaSwgUHJhZGEuIENoaW5oIHZpIG5oYSBjaGkgDQpnaWF1LCBjaGkgdGlldSB0 aWVuIG5odSBwaGEuIA0KDQpodHRwOi8vd3d3Lmhhbm9pbXVhdGhpLmNvbS8/YWN0PU5ld3MmdXJs PS9HTC9QaGFwLWx1YXQvMjAwOC8xMC8zQkEwNzYzQS8gMTMvMTAvMjAwOCwgMTE6MTYgR01UKzcN Cg0KTyBtYWkgZGFtIHRyb25nIG5oYSBuZ2hpIFRheSBUaGkgbyB0aGFuaCBwaG8gSGEgRG9uZyAo SGEgVGF5IGN1LCBuYXkgdGh1b2MgSGEgTm9pKSANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmlu aC1QaGFwLWx1YXQvUGhhdC1oaWVuLW8tbWFpLWRhbS1sb24tdGFpLUhhLVRheS83MDAxOTA4NC8y MTgvIFRodSBiYXksIDMwIFRoYW5nIGJheSAyMDA1LCAxNjoxMSBHTVQrNyANCg0KTyBtYWkgZGFt IGxvbiB0YWkgSGEgVGF5IC0gbmhhIG5naGkgVGhhaSBIb2EgdGhvbiB5ZW4gUGh1YywgeGEgQmll biBHaWFuZywgaHV5ZW4gVGhhbmggT2FpIA0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi92 bi8xNC8xNjc2NDYvIDExLzA1LzIwMDggMjM6MTUNCg0KSGEgVGF5OiBCaWV0IHRodSwgbmhhIG8g bGllbiBrZS4uLmJvIGhvYW5nLCB0cm8gdGhhbmggImJhaSBkYXAiIHRlIG5hbiB4YSBob2kNCiAN CktodSBkbyB0aGkgVmFuIFF1YW4tWWVuIFBodWMgbyB0aGFuaCBwaG8gSGEgRG9uZyAoSGEgVGF5 KSBjb24gcmF0IG5oaWV1IG5oYSBvIGxpZW4ga2UsIA0KYmlldCB0aHUgeGF5IHhvbmcgcGhhbiB0 aG8gKG1vYykgcm9pIGJvIGhvYW5nIGhhbmcgbmFtIG5heS4gDQoNCktob25nIGl0IGNhbiBiaWV0 IHRodSwgbmhhIG8gbGllbiBrZSAzLTQgdGFuZyB0cm9uZyBraHUgZG8gdGhpIG5heSByZXUgbW9j IGRhIHBodSB4YW5oIA0KZ2FjaCB4YXkgdHVvbmcsIHh1bmcgcXVhbmggY28gbW9jIHVtIHR1bS4N Cg0KRG8gbGEgY2h1YSBub2kgdHJvbmcga2h1IGRvIHRoaSBuYXkgY28gbmhpZXUgY2FuIGhvIGNv IGNodSBuaHVuZyBraG9uZyBjbyBuZ3VvaSBvLCB0aGluaCANCnRob2FuZyBkdW9jIGNhYyAiY28g Y2hpZXUsIGNhdSBhbSIgY2h1IG5oYSBzdSBkdW5nIGxhbSBub2kgdGhldCBkYWkgYmFuIGJlLCBn YXkgb24gaSwga2hvIGNoaXUgY2hvIGNhYyBobyBoYW5nIHhvbS4gDQoNCiJLZSBhbiBraG9uZyBo ZXQsIG5ndW9pIGxhbiBraG9uZyByYSIsIG5odW5nIGJpZXQgdGh1LCBuaGEgbyBsaWVuIGtlIGhp ZW4gZGFuZyBibyBob2FuZyANCnRyb25nIGtodSBkbyB0aGkgbm9pIHRyZW4gdHJvIHRoYW5oICJi YWkgZGFwIiBseSB0dW9uZyBjdWEgY2FjIGRvaSB0dW9uZyB0ZSBuYW4geGEgaG9pIA0Kbmh1IGNv IGJhYywgbWFpIGRhbSwgbmdoaWVuIGh1dC4uLiB2dWEgZ2F5IHBoYW4gY2FtIHZ1YSBnYXkgYnVj IHh1YyB0cm9uZyB0YW0gbHkgbmd1b2kgZGFuLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmlu aC1QaGFwLWx1YXQvUGhhLWRvbmctbWFpLWRhbS1sb24tby1IYS1UYXkvMzAxNDg2ODIvMjE4LyBU aHUgYmEsIDI0IFRoYW5nIG11b2kgMjAwNiwgMjA6MTAgR01UKzcgDQoNCkRvbmcgbWFpIGRhbSBs b24gbyBIYSBUYXkgdGFpIG5oYSBuZ2hpIFBodW9uZyBOYW0gbyB0aG9uIFBodWMgVGllbiwgeGEg QmllbiBHaWFuZywgdGhpIHhhIEhhIERvbmcNCg0KaHR0cDovL3d3dy5jaG9iaW5odGF5Lmdvdi52 bi9OZXdzRGV0YWlsLmFzcHg/aWQ9MTc5Mg0KDQpIYSBOb2k6IEhvbiA2MCBvIG1haSBkYW0gbyBI YSBOb2kgDQoNCktlIHR1IGtoaSB0aWVwIHF1YW4gZGlhIGJhbiB0aW5oIEhhIFRheSBjdSwgaGFu ZyBsb2F0IHR1IGRpZW0gbWFpIGRhbSB0cmEgaGluaCB0cm9uZyANCmNhYyBxdWFuIGNhIHBoZSwg a2FyYW9rZSB0YWkgZGF5IGRhIGxpZW4gdGllcCBiaSBsbyByYSANCg0KVHJ1b2MgZG8sIG1vdCBk dW9uZyBkYXkgZ2FpIGdvaSBraGFjLCB2b2kgc3UgdGhhbSBnaWEgY3VhIHNpbmggdmllbiBkYWkg aG9jLCBjYW8gZGFuZyANCmNvIGNoaWV1IGNhbyBseSB0dW9uZyBjdW5nIGJpIGxvIHRheS4gR2lh IG1vdCBsYW4gYmFuIGRhbSBjdWEgY2FjIGNvIGdhaSAiY2hhbiBkYWkiIG5heSBsYSAyMDAgVVNE LiAgDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS90cmFuZ190cm9uX3hhdV94ZSUyQ19sYW5fY2hp ZW1fZGFtX2hvbmctMS0yMTUxMjUzMy5odG1sDQoNCkhhIE5vaTogVHJhbmcgdHJvbiB4YXUgeGUs IGxhbiBjaGllbSBEYW0gSG9uZw0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vZGFpX2NvbmdfdHJ1 b25nX2J1Y190dV9sYV9waG9pX2dpdWFfdGh1X2RvLTEyLTIxNTEzMjI4Lmh0bWwNCg0KJ0RhaSBj b25nIHRydW9uZycgYnVjIHR1IGxhIHBob2kgZ2l1YSBUaHUgZG8NCg0KaHR0cDovL3d3dy5sYW9k b25nLmNvbS52bi9Ib21lL1NvLVktdGUtSGEtTm9pLWtob25nLXR1YW4tbGVuaC1jYXAtdHJlbi8y MDA5MTIvMTY2NDM5Lmxhb2RvbmcgIENhcCBuaGF0OiA4OjQyIEFNLCAwOS8xMi8yMDA5DQoNClNv IFkgdGUgSGEgTm9pIGtob25nIHR1YW4gbGVuaCBjYXAgdHJlbiANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL3hhaG9pLzIwMTAwNi9UaGFpLW5oaS1jaGV0LWtob25nLXJvLW5ndXllbi1uaGFu LXRhaS1CVi1QaHUtc2FuLUhOLTkxNjkxNy8gMTc6MTgsIDE4LzA2LzIwMTAgKEdNVCs3KQ0KDQpI YSBOb2k6IFRoYWkgbmhpIGNoZXQga2hvbmcgcm8gbmd1eWVuIG5oYW4gdGFpIEJWIFBodSBzYW4g SE4NCg0KTmhhcCBCZW5oIHZpZW4gUGh1IHNhbiBIYSBOb2kgZGUgY2hvIHNpbmgsIG5odW5nIGRv IGtob25nIGR1b2MgdGhlbyBkb2kgY2h1IGRhbywgDQp0aGFpIG5oaSBkYSBjaGV0IGx1dSBuZ2F5 IHRyb25nIGJ1bmcgbWUuIFN1IHZpZWMgdnVhIHhheSByYSB0YWkgQmVuaCB2aWVuIFBodSBzYW4g SGEgTm9pIA0KDQpodHRwOi8vd3d3LmRvaXNvbmdwaGFwbHVhdC5jb20udm4vcHJpbnRDb250ZW50 LmFzcHg/SUQ9MzY5OCAgMTMvMDQvMjAxMCAtIDExOjQzIEFNDQogDQpIYSBOb2k6IHh1YXQgaGll biBtYXQgaGFuZyBjYSBtdWMgY2FvIHN1IC0gbmdoaSB2YW4gdmUgY2hhdCBsYW0gIm11YyBjYW8g c3UiIA0KDQpodHRwOi8vYmVlLm5ldC52bi9jaGFubmVsLzE5ODcvMjAxMDAyL0NvbmctYW4tZ3Vp LWNvbmctdmFuLXZvaS10aWVuLVRldC1kb2FuaC1uZ2hpZXAtMTc0MjA4MS8gMjQvMDIvMjAxMCAx MTozMToxMCAgVHJ1YyBMYW0NCg0KSGEgTm9pOiBDb25nIGFuIGd1aSBjb25nIHZhbiAidm9pIiB0 aWVuIFRldCBkb2FuaCBuZ2hpZXAgDQoNCkNoaSBzYXQgVGV0IENhbmggRGFuIHZhaSBuZ2F5LCBt b3QgZG9hbmggbmdoaWVwIHRyZW4gZGlhIGJhbiBwaHVvbmcgUGh1b25nIExpZXQsIEhhIE5vaSBu aGFuIGR1b2MgY29uZyB2YW4gY3VhIGNvbmcgYW4gcGh1b25nICJob2kiIHRpZW4gVGV0LiANCg0K Q3VvaSB0byBjb25nIHZhbiBkYWMgYmlldCBuYXkgY28gZG9uZyBnaGkgY2h1OiBLaW5oIHBoaSBj YWMgZG9uZyBjaGkgaG8gdHJvIGNodXllbiBjaG8gZG9uZyBjaGkgVHJhbiBIb2EgTi4gLSBDU0tW IG5oYW4gZGUgbm9wIHZlIGNvbmcgYW4gcGh1b25nLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0 LnZuL2NoaW5odHJpLzIwMTAwOC9Cby1DaGluaC10cmktZG9uZy10aW5oLXBodW9uZy1hbi1uaGFu LXN1LWN1YS1IYS1Ob2ktOTMyMTc5LyBUVFhWTiAgMjM6MjMsIDI3LzA4LzIwMTAgKEdNVCs3KSAN Cg0KSGEgTm9pOg0KDQotIEtob2FuZyBjYWNoIGdpYXUgbmdoZW8gZ2l1YSB0aGFuaCB0aGkgdmEg bm9uZyB0aG9uIGNvbiBsb24uIA0KDQotIFZhaSB0cm8gaGF0IG5oYW4gbGFuaCBkYW8gY2hpbmgg dHJpIG8gbW90IHNvIHRvIGNodWMgY28gc28gRGFuZywgbmhhdCBsYSBjYXAgeGEsIHBodW9uZyBj b24gdGhhcDsNCg0KaHR0cDovL3d3dy5nYW54YS5jb20vTmV3cy9EZXRhaWxOZXdzLnBocD9JRE5l d3M9MjEzNA0KDQpIYSBub2k6ICdRdWFuJyB4YSBoYXUgdG9hIHZpIHNhaSBwaGFtIHZhbiB1bmcg ZHVuZyB0YWkgdmkNCg0KUmF0IG5oaWV1IGNhaSB0ZW4gY290IGNhbiB0cm9uZyBibyBtYXkgY2hp bmggcXV5ZW4geGEgSGF0IE1vbiBkYSBkdW9jIG5ldSB0ZW4gdHJvbmcgY2FjIHZhbiBiYW4gdm9p IG5odW5nIHNhaSBwaGFtIGN1IHRoZS4gVHV5IHZheSwgZGlldSB0cmVvIG5nb2Uga2hpZW4gbmd1 b2kgZGFuICJkbyBraG9jIGRvIGN1b2kiIGxhIGhpZW4gdGFpIG8gSGF0IE1vbiwgbmh1bmcgdmkg ZG8gbmV1IGRhIGhldCBuaGllbSBreSB0aGkgZHVvYyAiaGEgY2FuaCIgdmUgaHV1IGFuIHRvYW4s IG5odW5nIHZpIGNvbiB0YWkgdmkgdGhpIGJpIGt5IGx1YXQuLi4gYmFuZyBjYWNoIGxlbiBjaHVj IGNhbyBob24uDQoNCmh0dHA6Ly9jYS5jYW5kLmNvbS52bi92aS1WTi9iYW5kb2N2YUNBTkQvRFR0 aGVveWV1Y2F1LzIwMDgvNC8xNTg3MjAuY2FuZCAxMDowMSwgMjcvMDEvMjAxMA0KDQpIdXllbiBU aGFjaCBUaGF0LCBIYSBOb2k6IE5oaWV1IHNhaSBwaGFtIHRyb25nIHZpZWMgY2FwIGRhdCBnaWFu IGRhbg0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9iYW5kb2N2aWV0L3RoZW9kYXV0aHUvMjAwOTEx L0RvbmctcnVvbmcta2hhdC1jaGF5LWRhbi12YW4tcGhhaS1kb25nLXRodXktbG9pLXBoaS04ODA0 OTAvIDA5OjA3LCBUaHUgQmEsIDI0LzExLzIwMDkgKEdNVCs3KQ0KDQpIYSBub2k6IERvbmcgcnVv bmcga2hhdCBjaGF5LCBkYW4gdmFuIHBoYWkgZG9uZyB0aHV5IGxvaSBwaGkNCg0KTmdvYWkgdmll YyAicnV0IHJ1b3QiIGNvbmcgdHJpbmggeGF5IGR1bmcga2VuaCBtdW9uZywgbmd1b2kgZGFuIG8g eGEgSGF0IE1vbiAoaHV5ZW4gUGh1YyBUaG8sIEhhIE5vaSkgY29uIHRvIGxhbmggZGFvIHhhIGRh IHRodSB0cmFpIHBoZXAgaGFuZyB0cmFtIHRyaWV1IGRvbmcgdGllbiB0aHV5IGxvaSBwaGkuIA0K DQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDYvRGktdGltLXRodS1waGFtLWh1bi1u b2ktdGhhbmgtSGEtTm9pLXZhby1iYW4tZGVtLTkxNjU2My8gMDc6MjksIFRodSBOYW0sIDE3LzA2 LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IGtodSB2dWMgbm9pIHRoYW5oIGJpIGJhbyBwaHUgYm9p IG1vdCBtYW4ga2hvaSBuZ290IG5nYXQNCg0KTmh1bmcgbmdheSBuYXksIGJhbiBuZ2F5IG5ndW9p IEhhIE5vaSBkYSBob2MgaGFjIHZpIGRvdCBuYW5nIG5vbmcgY2FvIGRpZW0sIGRlbiBidW9pIHRv aSBsYWkgdGllcCB0dWMgcGhhaSBjaGl1IGR1bmcgbWFuIGtob2kgZG90IGRvbmcgbmdvdCBuZ2F0 IGJhbyBwaHUNCiANCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDYtMDktcXV5LWhv YWNoLWhhLW5vaS1kZS1oaWVuLXRhaS1sYS1sYW0ta2hvLXR1b25nLWxhaSBUYWMgZ2lhOiBIYSBU aHV5IDExLzA2LzIwMTAgMDY6MDAgR01UKzcNCg0KSGEgTm9pOiBRdXkgaG9hY2ggSGEgTm9pIC0g RGUgaGllbiB0YWkgbGEgbGFtIGtobyB0dW9uZyBsYWkNCg0KaHR0cDovL3d3dy50aW5tb2kudm4v REJRSC1waGFuLWRvaS10cnVjLVRoYW5nLUxvbmctdHJ1bmctdGFtLWhhbmgtY2hpbmgtQmEtVmkt MDYxNjYyODUuaHRtbDogMDk6NDMgbmdheSAwMy8wNi8yMDEwDQoNCkhhIE5vaTogREJRSCBwaGFu IGRvaSB0cnVjIFRoYW5nIExvbmcsIHRydW5nIHRhbSBoYW5oIGNoaW5oIEJhIFZpDQoNCmh0dHA6 Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDUtMjEtdGhheS1uaHVuZy10b24tdGFpIDMxLzA1 LzIwMTAgMDY6MDAgR01UKzcNCg0KSGEgTm9pOiBUYWMgZ2lhIEhhIFRodXkgbmV1IHJvIDkgcGhp IGx5IHRyb25nIHF1eSBob2FjaCBIYSBOb2kgDQoNCmh0dHA6Ly93d3cudGlubW9pLnZuL0RCUUgt cGhhbi1kb2ktdHJ1Yy1UaGFuZy1Mb25nLXRydW5nLXRhbS1oYW5oLWNoaW5oLUJhLVZpLTA2MTY2 Mjg1Lmh0bWwNCg0KUXVpIGhvYWNoIEhhIE5vaTogVmllYyBjaGlhIHRhY2ggdHJ1bmcgdGFtIGhh bmggY2hpbmggdm9pIHRydW5nIHRhbSBjaGluaCB0cmkgbGEga2hvbmcgdGh1YyB0ZS4NCg0KRG8g Y3VuZyBsYSBjYWNoIHRhbyBjbyBjaG8ga2UgZGF1IGNvIHRhbmcgZ2lhIGRhdCBkYWkuIE5oaWV1 IHF1YW4gY2h1YyBjbyB0cmFuZyB0cmFpIA0KbG9uIG8gQmEgVmksIG11b24gY28gZGUgYW4gbmF5 IGRlIGRheSBnaWEgbGVuLCBiYW4gZGkgb20gdGllbiB2YW8gdHVpIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzUvMjAxMDA4MjMwMTIzMjYuYXNweCBWaWV0 IENoaWVuIDIzLzA4LzIwMTAgMToyMyANCg0KSGEgTm9pOiAiUm9pIiB2b2kgcXV5IGhvYWNoIEhh IE5vaSAgDQoNCi0gMiB0aGFuZywgMiBxdWFuIGRpZW0gbmd1b2MgbmhhdTogY2hpIHRyb25nIHZv bmcgMiB0aGFuZywgbGFuaCBkYW8gVFAgSGEgTm9pIGR1YSByYSAyIA0KcXVhbiBkaWVtIGhvYW4g dG9hbiB0cmFpIG5ndW9jIG5oYXUgZGV1IHZlIG1vdCBub2kgZHVuZyBsYSBxdXkgaG9hY2gga2h1 IGhhbmggY2hpbmgsIA0KdHJ1IHNvIGhhbmggY2hpbmggdmEgdmllYyB4YXkgZHVuZyB0cnVjIFRo YW5nIExvbmcgbGllbiBxdWFuIHRvaSBkbyBhbiBxdXkgaG9hY2ggdnVuZyANCnRodSBkbyBIYSBO b2kuDQoNCi0gVHkgbGUgZGF0IGRhbmggY2hvIGdpYW8gdGhvbmcgY3VhIEhhIE5vaSBjb24gcmF0 IHRoYXAgDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9oYV9ub2lfZ2lldF9uZ3VvaV9naXVhX3Bo b192aV92YV9jaGFtX2dpYW9fdGhvbmctMS0yMTYyMTY0MC5odG1sICAyMC8wNy8yMDEwIC0gMjE6 MjANCg0KSGEgTm9pOiBHaWV0IG5ndW9pIGdpdWEgcGhvIHZpIHZhIGNoYW0gZ2lhbyB0aG9uZyCW IG5hbiBuaGFuIGJpIGh1bmcgdGh1IGR1bmcgZGFvIG5ob24gZGFtIDIgcGhhdCB2YW8gbmd1YyBy b2kgYm8gY2hheSANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2hhX25vaV9iYXRfbW90X2Nhbl9i b190aHVlX25oYW5faG9pX2xvXzYwX3RyaWV1X2RvbmctNi0yMTM2NzgzNC5odG1sIFBMIHZuTWVk aWEudm4gMTAvMDEvMjAwOSAtIDA5OjA0IA0KDQpIYSBOb2k6IENhbiBibyB0aHVlIG5oYW4gaG9p IGxvIDYwIHRyaWV1IGRvbmcgDQoNCmh0dHA6Ly9uZXdzLnNvY2JheS5jb20vdGFuZ19jdW9uZ190 cmFvX2RvaV9raW5oX25naGllbV9xdWFuX2x5X2Jhb19jaGlfdmlldF9uYW1fdHJ1bmdfcXVvYy02 MDE1NTg3ODMtMTY3NzcyMTYuaHRtbCBsYW9kb25nLmNvbS52biAtIDE2OjA2IDE2LTAzLTIwMDcg DQoNCkhhIE5vaTogT25nIFBodW5nIEh1dSBQaHUgLSBuZ3V5ZW4gcGhvIGJpIHRodSB0aGFuaCB1 eSBIYSBOb2k6IFRhbmcgY3VvbmcgdHJhbyBkb2kga2luaCBuZ2hpZW0gcXVhbiBseSBiYW8gY2hp IFZpZXQgTmFtIC0gVHJ1bmcgUXVvYyANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2hhX25vaV9i YXRfcXVhX3RhbmdfY2FuX2JvX2RpYV9jaGluaF9uaGFuX2xvdF90YXlfMjBfdHJpZXVfZG9uZy02 LTIxMzM4NDUyLmh0bWwgdm5NZWRpYS52biAwOS8xMi8yMDA2IC0gMTY6NDUgIA0KDQpIYSBOb2k6 IENhbiBibyBkaWEgY2hpbmggbmhhbiBsb3QgdGF5IDIwIHRyaWV1IGRvbmcgDQoNCmh0dHA6Ly93 d3cudGluMjQ3LmNvbS9oYV9ub2lfYmF0X3F1YV90YW5nX21vdF90aGFtX3BoYW5fcXVhbl9uaGFu X2hvaV9sby02LTMyODIyLmh0bWwgQ0FORC5jb20udm4gMTgvMDYvMjAwOCAtIDAwOjI0DQoNCkhh IE5vaTogVGhhbSBwaGFuIHRvYSBhbiBxdWFuIG5oYW4gaG9pIGxvIDcwIHRyaWV1IGRvbmcgDQoN Cmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwOC9OZ3VvaS1jaGEtbWF0LW5oYW4tdGlu aC1oYWktZG9pLWNvbi1nYWktMTQtdHVvaS05Mjc4NjMvIE4uVCAxODowNiwgMDkvMDgvMjAxMCAo R01UKzcpDQoNCkhhIE5vaTogQ2hhIGRlIGhhaSBkb2kgY29uIGdhaSAxNCB0dW9pIA0KDQpodHRw Oi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9EZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTQ1NDcgMjUv MTAvMjAwNw0KDQpIYSBOb2k6IDQgZ2lhbSBkb2MgY2hpIG5oYW5oIENvbmcgdHkgbGFtIHNhbiBI YSBOb2kgInRoYW0gbyB0YWkgc2FuIiwgDQoiY28geSBsYW0gdHJhaSIsICJ0aGlldSB0aW5oIHRo YW4gdHJhY2ggbmhpZW0gZ2F5IGhhdSBxdWEgbmdoaWVtIHRyb25nIiANCmdheSB0aGF0IHRob2F0 IGhvbiA4IHR5IGRvbmcgdmEgY2hpZW0gZG9hdCBjaGllbSBkb2F0IDMsNiB0eSBkb25nIA0KDQpo dHRwOi8vcXV5bW9pdHJ1b25naGFub2kudm4vY29udGVudDM4My52bmRjIDAzLjEyLjIwMDkgMDk6 NDANCg0KSGEgTm9pOiBWdW5nIG8gbmhpZW0gInRvYW4gdGFwIiBvIEhhIE5vaSANCg0KTnVvYyB4 YSBwaG9uZyBjdWEgQ3R5IGJvdCBnaWF0IE5ldCB0cmFuIHZhbyBuaGEgZGFuLg0KDQpIYW5nIG5n aGluIGhvIGRhbiBoYW5nIG5nYXkgZHVuZyBudW9jIGdpZW5nIGtob2FuIGNhbmggY2EgdmFuIG5n b2kgbW8gY3VhIG5naGlhIHRyYW5nIFZhbiBEaWVuLCBoaXQgdGhvIGtob2kgYnVpIHR1IGhhbmcg Y2h1YyBjbyBzbyBzYW4geHVhdCBjb25nIG5naGllcCBsb24gdmEgbG8gaG9hIHRoaWV1IGN1YSBu Z2hpYSB0cmFuZyBuYXkuIA0KDQpOdW9jIGdpZW5nIGtob2FuOiBWdWEgZHVuZyB2dWEuLi4gcnVu ISANCg0KVGhvIGN1bmcgcGhhaS4uLiBlIGRlIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1wbHVzLnZu L0hvbWUvWWV1LWNhdS1IYS1Ob2ktY2hpLWRhby1kdW5nLXBoYS1uaGEtYmlldC10aHUtY3UvMjAw OTEyLzI3NzUyLnZucGx1cyAxNi8xMi8yMDA5IHwgMTY6Mzg6MDAgDQoNCllldSBjYXUgSGEgTm9p IGNoaSBkYW8gZHVuZyBwaGEgbmhhIGJpZXQgdGh1IGN1IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4vYmFuZG9jdmlldC90aGVvZGF1dGh1LzIwMTAwMS9OdW9jLW1hdC1uZ3VvaS1naWEtY29u Zy1sdW5nLXRyZW4tbmh1bmctcnVvbmctcmF1LTg5MjA3OC8gMDc6MTEsIFRodSBTYXUsIDI5LzAx LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IE51b2MgbWF0IG5ndW9pIGdpYSBjb25nIGx1bmcgdHJl biBuaHVuZyBydW9uZyByYXUNCg0KTmd1b2kgZGFuIEJhbmcgQiAoSG9hbmcgTGlldCwgSG9hbmcg TWFpLCBIYSBOb2kpIG11b24gZHVvYyBjYXAgY28gdGhhbSBxdXllbiBnaWFpIHRoaWNoLCB2aSBz YW8gdHJvbmcgUUQgMzc4OSBjdWEgdGhhbmggcGhvIGtob25nIGNvIGRpYSBkYW5oIGxhbmcgY3Vh IGhvIG5odW5nIGNoaW5oIHF1eWVuIGNhYyBjYXAgdmFuIHRodSBob2k/DQoNCmh0dHA6Ly93d3cu cGhhcGx1YXR0cC52bi8yMDA5MTIyMDEyMDM1ODE0cDEwMTVjMTA3My9oYS1ub2ktY2hheS1sb24t dGFpLWtoby1oYW5nLXRldC5odG0NCg0KSGEgTm9pOiBDaGF5IGxvbiB0YWkga2hvIGhhbmcgdGV0 ICgxOS0xMikNCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3MyMC0zNzUwMjMvY2F5LWRvLWRl LW5hdC0yLXhlLW1heS10cmVuLXBoby1oYW5nLWJhaS5odG0gVGh1IEJheSwgMjMvMDEvMjAxMCAt IDE4OjQ5DQoNCkhhIE5vaTogQ2F5IGRvIGRlIG5hdCAyIHhlIG1heSB0cmVuIHBobyBIYW5nIEJh aSAoa2hvYW5nIDE1aDQwIG5nYXkgMjMvMSkNCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kv MjAwOTEyL0xhaS10aGVtLW1vdC1oby1udW9jLXRhaS1IYS1Ob2ktYmktYnVjLXR1LTg4NjYxMC8g MTU6MzAsIFRodSBIYWksIDI4LzEyLzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IExhaSB0aGVtIG1v dCBobyBudW9jIHRhaSBIYSBOb2kgYmkgYnVjIHR1IC0gQ2h1b2kgaG8gUGh1bmcgS2hvYW5nDQoN CkNodW9pIGhvIFBodW5nIEtob2FuZyB2b24gZHVvYyBjb2kgbGEgbGEgcGhvaSB4YW5oLCBkaWV1 IGhvYSBraG9uZyBraGkgY2hvIGNhIGtodSB2dWMgeGEgVHJ1bmcgVmFuLCBodXllbiBUdSBMaWVt LCBIYSBOb2kuIFRoZSBuaHVuZywgZGF1IG5hbSAyMDA3LCBzbyBwaGFuIGtodSBobyBuYXkgZGEg ZHVvYyBkaW5oIGRvYXQgYm9pIHF1eWV0IGRpbmggc28gMTgvMjAwNy9RRCAtIFVCTkQgY3VhIFVC TkQgVGhhbmggcGhvIEhhIE5vaSB2ZSB2aWVjIHBoZSBkdXlldCBjaGkgdGlldCBraHUgZG8gdGhp IG1vaSBQaHVuZyBLaG9hbmcuIFRoZW8gZG8sIGRpZW4gdGljaCBobyBzZSBiaSB0aHUgaGVwIGxh aSBjaGkgY29uIDEvMyBzbyB2b2kgZGllbiB0aWNoIGhvIGN1LiBEaWV1IGRhbmcgbm9pIGxhLCB0 dSBsYW5oIGRhbyBkZW4gbmh1bmcgbmd1b2kgZGFuIHhhIFRydW5nIFZhbiBkZXUga2hvbmcgZG9u ZyB0aW5oIHZvaSBwaHVvbmcgYW4geGUgdGhpdCBraHUgaG8gcXV5IGdpYSBuYXkuDQoNCmh0dHA6 Ly92aWV0bmFtbmV0LnZuL3hhaG9pL2RvdGhpLzIwMDUvMTIvNTIyMDc2LyAxNToyMCwgMTMvMTIv MjAwNSAoR01UKzcpDQoNCkhhIE5vaTogS2luaCBob2FuZyBudW9jIHNvbmcsIGhvIEhhIE5vaQ0K DQpIb24gOTAlIGx1b25nIG51b2MgdGhhaSBjaHVhIHF1YSB4dSBseSBkYW5nIGNoYXkgdGhhbmcg eHVvbmcgY2FjIHNvbmcsIGhvIGN1YSBIYSBOb2kuIA0KDQpTb25nIFRvIExpY2gsIHNvbmcgU2V0 LCBzb25nIEx1IHZhIHNvbmcgS2ltIE5ndXUgZGFjIG1vdCBtYXUgZGVuIHZhIG5nYXkgY2FuZyBi b2MgbXVpLg0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS9kb3RoaS8yMDA1LzEyLzUyMjA3 Ni8gMTU6MjAsIDEzLzEyLzIwMDUgKEdNVCs3KQ0KDQpIYSBOb2k6IE51b2MgdGhhaSB0aG8geGEg dGhhbmcgdmFvIGhlIHRob25nIHRob2F0IG51b2MNCg0KRG9uZyBudW9jIGN1YSBjYWMgY29uIHNv bmcgSGEgTm9pIGRldSBjaHVuZyAxIG1hdSBkZW4uIA0KDQpEdSBhbiBrZSBoYWkgYmVuIGJvIHNv bmcgVG8gTGljaCBkdW9jIGRhdSB0dSB0aWVuIHR5IHZhIHRyaWVuIGtoYWkgeG9uZyBjYWNoIGRh eSBraG9uZyBsYXUgbmh1bmcgbmd1b2kgZGFuIHZhbiBwaGFpIGNoaXUgZHVuZyBtdWkgbyBuaGll bS4NCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDA4LzEyLzNCQTA5 QTdGLyBDaHUgbmhhdCwgMjEvMTIvMjAwOCwgMDk6NTggR01UKzcNCg0KSGEgTm9pOiBUcm9tIGNh cCBoYW5oIGhvYW5oIG8gY2hvIERvbmcgWHVhbiANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEtaG9p L05oYW4tdmllbi10aHUtdGllbi1kaWVuLWRvYS1kYW5oLWtoYWNoLWhhbmcvMjA2ODU0NTkvMTU3 LyBUaHUgaGFpLCAxNiBUaGFuZyB0dSAyMDA3LCAxNzoxMCBHTVQrNyANCg0KSGEgTm9pOiBOaGFu IHZpZW4gdGh1IHRpZW4gZGllbiBkb2EgZGFuaCBraGFjaCBoYW5nIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzEvMjAxMDA4MDEwMTMzMDEuYXNweCAwMS8w OC8yMDEwIDE6MzMNCg0KSGEgTm9pOiBDYXkgeGFuZyBsYXAgZGF0IGNoaXAgZGllbiB0dSBsdWEg ZGFvIGtoYWNoIGhhbmcgLSBNb2kgbGl0IHhhbmcsIG5ndW9pIHRpZXUgZHVuZyBiaSAibW9jIHR1 aSIgMTE5OSBkb25nIA0KDQpodHRwOi8vd3d3LnRvcXVvYy5nb3Yudm4vVGhvbmd0aW4vR2lvLVRo dS0yNS82Mi03NS1RdWFuLU8tQ2h1YS1IdW9uZ21hdC1WZS1TaW5oLmh0bWwgN2g6MzgnIC0gNy8y LzIwMDkNCg0KSGEgTm9pOiA2Mi83NSBxdWFuIG8gY2h1YSBIdW9uZy4uLm1hdCB2ZSBzaW5oISAN Cg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vUGhhLW8taW4tbGF1LXNhY2gtbG9uLW8tSGEt Tm9pLzU4LzMyMjc2MjYuZXBpIEJhbyBEYXQgVmlldA0KDQpIYSBOb2k6ICdPJyBpbiBsYXUgc2Fj aCBsb24gbyBIYSBOb2kgDQoNCkx1YyBsdW9uZyBjaHVjIG5hbmcgcGhhdCBoaWVuIHZhIHRodSBn aXUgc28gc2FjaCBsYXUgZ29tIGdhbiA5LjAwMCBjdW9uIHRoYW5oIHBoYW0sIGhvbiAyLjAwMCBr ZyBiYW4gdGhhbmggcGhhbSAoZGEgaW4gbmh1bmcgY2h1YSBkb25nIHF1eWVuKS4gDQoNCmh0dHA6 Ly93d3cudGh1dmllbnBoYXBsdWF0LnZuL0RlZmF1bHQuYXNweD9DVD1OVyZOSUQ9NjUzOSAwOC8w MS8yMDA4DQoNClR1IGR1b25nIGRheSBjYSBkbyBib25nIGRhIHBoYXQgaGllbjogQ2FuIGJvIG5n YW4gaGFuZyB0aGFtIG8gaGFuZyBjaHVjIHR5IGRvbmcgLSBiYXQga2hhbiBjYXAgdG8gdHJ1b25n IHRvIGtlIHRvYW4gdGh1b2MgQ2hpIG5oYW5oIE5nYW4gaGFuZyBOTiZQVE5UIC0gU2FpIERvbmcs IEdpYSBMYW0sIEhhIE5vaQ0KDQpodHRwOi8vcGhhcGx1YXR0cC52bi8yMTc2OTFwMTAxNWMxMDc0 L2hhLW5vaS1jaGF5LW5oYS1zYXQtY2hvLWRvbmcteHVhbi1uZ3VvaS1kYW4taG9hbmctbG9hbi5o dG0gMDQvMDYvMjAwOCAtIDEyOjMxIEFNDQoNCkhhIE5vaTogQ2hheSBuaGEgc2F0IGNobyBEb25n IFh1YW4sIG5ndW9pIGRhbiBob2FuZyBsb2FuDQoNCmh0dHA6Ly9naWFkaW5oLm5ldC52bi8yMDA5 MTExODAyMDAxNjY2MHAwYzEwMDUvdm8tbXVhLXhlLWRpLXRodS1waG9uZy1tYXQuaHRtIDE4LzEx LzIwMDksIDE0OjI5KEdNVCs3KQ0KDQpIQSBOb2k6IFZvIG11YSB4ZSwgZGkgdGh1LCBwaG9uZyBt YXQgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDgvVnUtbm8tbHV1LWRh bi1vLUNBLXBodW9uZy1UaGVtLW1vdC1uZ3VvaS10dS12b25nLTkzMjM3Ny8gMjM6MzMsIDI4LzA4 LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IE5vIGx1dSBkYW4gbyBDQSBwaHVvbmc6IDEgY2FuaCBz YXQsIDEgUGhvIGJhbiBiYW8gdmUgZGFuIHBobyB0dSB2b25nDQoNCmh0dHA6Ly93d3cudm5leHBy ZXNzLm5ldC9HTC9CYW4tZG9jLXZpZXQvWGEtaG9pLzIwMTAvMDcvM0JBMUUzRjMvIDIwLzcvMjAx MCwgMDc6MDcgR01UKzcNCg0KSGEgTm9pOiBDdW9wIG5nYXkgaG9hbmggaGFuaCBvIGJlbiB4ZSBi dXl0IGdpdWEgdGh1IGRvIA0KDQpodHRwOi8vd3d3LnFkbmQudm4vUURORFNpdGUvdmktVk4vNjEv NDMvNC80Mi80Mi8xMjIyMzIvRGVmYXVsdC5hc3B4IE5ndXllbiBBbmggMjgvMDgvMjAxMCwgMjE6 MzggKEdNVCs3KSANCg0KSGEgTm9pOiBUaGVtIDEgdnUgZ2lldCBuZ3VvaSBiaSBoaWVtIJYgTmhh biB2aWVuIGtoYWNoIHNhbiBTaGVyYXRvbiBiaSBzYXQgaGFpIA0KDQpOYW4gbmhhbiBsYSBhbmgg Tmd1eWVuIFF1b2MgRGF0LCBzaW5oIG5hbSAxOTg0LCB0YW0gdHJ1IHRhaSB4b20gMTYsIHhhIENv IE5odWUsIA0KaHV5ZW4gVHUgTGllbSwgbGEgbmhhbiB2aWVuIGtoYWNoIHNhbiBTaGVyYXRvbiBI YSBOb2kuIA0KDQpLaG9hbmcgMTggZ2lvIG5nYXkgMjctOCwgYW5oIERhdCBkaSB0dSBub2kgbGFt IHZpZWMgdmUgbmhhIHRybywgZGVuIHhvbSAxMiANCkNvIE5odWUsIGFuaCBEYXQgdmFvIGN1YSBo YW5nIGNobyB0aHVlIHRydXllbiB2YSBiYW5nIGRpYS4gTHVjIGRvLCBtb3QgbmFtIA0KdGhhbmgg bmllbiB0dSBuZ29haSBkaSB2YW8sIHNhdSBraGkgdHJhbyBkb2kgdmFpIGNhdSB2b2kgYW5oIERh dCwgbmd1b2kgdGhhbmggDQpuaWVuIG5heSBiYXQgbmdvIHJ1dCBkYW8gZGFtIDIgbmhhdCB2YW8g Y28gdmEgc3VvbiBhbmggRGF0IHJvaSBibyBjaGF5LiBBbmggDQpEYXQgZHVvYyBkdWEgdmFvIGJl bmggdmllbiBFIGNhcCBjdXUsIG5odW5nIGRvIHZldCB0aHVvbmcgcXVhIG5hbmcgbmVuIGRhIHR1 IHZvbmcgbHVjIDIwIGdpbyBjdW5nIG5nYXkuICANCg0KaHR0cDovL3d3dy55b3V0dWJlLmNvbS93 YXRjaD92PUlfR1JIVDg2MHBRIDEvMi8yMDA3IA0KDQpIYSBOb2k6IFRoYW0gbmh1bmcsIHRpZXUg Y3VjIHRyb25nIEdQTUIgZHVvbmcgVmFuaCBkYWkgMyAobGFwIGhvIHNvIGFvIGRlIHJ1dCB0aWVu IGRlbiBidSkuDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyNS9zMjAtNDA2MzgzL2hhLW5vaS1z YXAtY2F1LXhheS1kdW5nLTItbmd1b2ktY2hldC10YWktY2hvLmh0bSAwMi8wNy8yMDEwIC0gMTY6 MzggDQoNCkhhIE5vaTogU2FwIGNhdSB4YXkgZHVuZywgMiBuZ3VvaSBjaGV0IHRhaSBjaG8gDQoN Cmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi90aW5uaGFuaC8yMDEwMTAvZGF1LWxvbmctMS1waHUt bnUtY2hldC1jaGF5LXRyb25nLXRodW5nLXRvbi05Mzg2ODQvIChUaGVvIFZUQykgMDg6NDQsIDAx LzEwLzIwMTAgKEdNVCs3KSANCg0KSGEgTm9pOjEgcGh1IG51IGNoZXQgY2hheSB0cm9uZyB0aHVu ZyB0b24gKDI5LzkpICANCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2hhX25vaV9waGF0X2hpZW5f Ml9uZ3VvaV9jaGV0X3Ryb25nX29fdG9fbmdhcF9udW9jLTEtMjEzMjc4MDIuaHRtbCBWaWV0TmFt TmV0LnZuIDAxLzExLzIwMDggLSAxNDo0OSANCg0KSGEgTm9pOiAyIG5ndW9pIGNoZXQgdHJvbmcg byB0byBuZ2FwIG51b2MgDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2UvdmlldG5h bS8yMDEwLzAzLzEwMDMzMF9wb2xpY2VfZGVhdGhzLnNodG1sIDA0OjI1IEdNVCAzMC8zLzIwMTAg DQoNCkhhIE5vaTogSGFpIG5ndW9pIGNoZXQgdGFpIGRvbiBjb25nIGFuIEhOIA0KDQpIYWkgdnUg eGF5IHJhIGNhY2ggbmhhdSBoYWkgdGhhbmcsIGNhIGhhaSBuYW4gbmhhbiBkZXUgYmkgdGh1b25n IHRpY2ggdHJ1b2Mga2hpIGNoZXQuDQoNClZ1IGdhbiBkYXkgbmhhdCB4YXkgcmEgaG9pIHRoYW5n IDAxLzIwMTAgZGEga2hpZW4gYmF5IGNvbmcgYW4gdmllbiBiaSB0YW0gZGluaCBjaGkgDQpjb25n IHRhYyBkZSBkaWV1IHRyYS4gDQpUcm9uZyB2dSBuYXksIGNvbmcgZGFuIChuYW4gbmhhbikgTmd1 eWVuIFF1b2MgQmFvICh0cnUgdGFpIHBodW9uZyBNYWkgRG9uZywgcXVhbg0KSG9hbmcgTWFpKSBi aSBjb25nIGFuIHRhbSBnaXUgaGFuaCBjaGluaCBuZ2F5IDIxLzAxLzIwMTA7IHJhbmcgc2FuZyAy Mi8wMSBkdW9jIGR1YSANCmRpIGNhcCBjdXUgbmh1bmcgZGEgdHUgdm9uZyB2aSBjaGFuIHRodW9u ZyBzbyBuYW8gdHJvbmcga2hpIHRhbSBnaXUgbyBjbyBxdWFuIGNvbmcgYW4uIA0KR2lhbSBkaW5o IHBoYXAgeSBjaG8gdGhheSBuYW4gbmhhbiBiaSB2byBuZW4gc28gdmEgY2hhbiBkb25nIG5hbywg Y3VuZyBuaHUgYmkgdGh1b25nIA0KbyBjbyB0YXkgdmEgY28gY2hhbiBjYSBoYWkgYmVuLiANCg0K VnUgdHJ1b2MgZG8geGF5IHJhIGhvaSB0aGFuZyAxMSBuYW0gbmdvYWksIG5hbiBuaGFuIGxhIGNv bmcgZGFuIE5ndXllbiBNYW5oIEh1bmcsICANCmJpIHRhbSBnaWFtIHRhaSBjb25nIGFuIEhhIERv bmcuIFNhdSBtb3QgaG9tIGJpIHRhbSBnaXUsIGFuaCBIdW5nIGN1bmcgZHVvYyBtYW5nIGRpIA0K Y2FwIGN1dSBuaHVuZyBkYSBuZ3VuZyB0aG8uIFRyZW4gY2hhbiBjdWEgYW5oIE5ndXllbiBNYW5o IEh1bmcga2hpIGtoYW0gbmdoaWVtIHR1IA0KdGhpIG5ndW9pIHRhIHRoYXkgbmhpZXUgdmV0IGJh bSB0aW0sIHBodSBuZS4gDQoNCkRhIGNvIG1vdCBzbyB2dSBjb25nIGFuIGRhbmggbmd1b2ksIGhh eSBsYW0gZHVuZyBxdXllbiBoYW5oIG5vaSBjb25nIGNvbmcuDQoNCmh0dHA6Ly92dHYudm4vQXJ0 aWNsZS9HZXQvODQ0NjggDQoNCkJ1b24gbWEgdHV5IHZhIG5oYW4gaG9pIGxvIHRhaSBwaHVvbmcg VGhhbmggTmhhbiANCiANCkRlIG11YSBiYW4gbWEgdHV5IGFuIHRvYW4sIEJ1aSBUcm9uZyBCYXkg ZGEgcXVhbiBoZSB2YSBuaGlldSBsYW4gZHVhIHRpZW4gDQpob2kgbG8gY2hvIGNhbiBibyBjb25n IGFuIHBodSB0cmFjaCBkaWEgYmFuLiANCg0KSGFuaCB2aSBwaGFtIHRvaSBjdWEgY2FjIGJpIGNh byBkYSBnYXkgaGF1IHF1YSBkYWMgYmlldCBuZ2hpZW0gdHJvbmcsIA0KYW5oIGh1b25nIGRlbiB0 cmF0IHR1IHRyaSBhbiB2YSBnYXkgbmVuIHN1IGJhdCBiaW5oIHRyb25nIHF1YW4gY2h1bmcgbmhh biBkYW4uIA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIwLTQxMDI3NC9oYS1ub2ktY3Nn dC1iaS14ZS10YWkta2VvLWxlLXRyZW4tZHVvbmcuaHRtIDIyLzA3LzIwMTAgLSAwMToyNg0KDQpI YSBOb2k6IENTR1QgYmkgeGUgdGFpIGtlbyBsZSB0cmVuIGR1b25nIA0KDQpodHRwOi8vd3d3Ni52 bm1lZGlhLnZuL25ld3NkZXRhaWwuYXNwP05ld3NJZD0xNzUxMDQmQ2F0SWQ9MjMgMjMvMDkvMjAw OQ0KDQpIYSBOb2k6IFNvIG5ndW9pIG5naGllbiBkdW5nIHRodSAyIHRvYW4gcXVvYyAoc2F1IHRo YW5oIHBobyBIbyBDaGkgTWluaCkuDQoNCjIyIG5naGluIG5ndW9pIG5naGllbiBtYSB0dXkgY28g aG8gc28gcXVhbiBseSB2YSBjbyB0cmVuIDE3IG5naGluIG5ndW9pIA0KbmhpZW0gSElWL0FJRFMs IHRyb25nIGRvIGNvIDUwLTYwJSBuZ3VvaSBuaGllbSBISVYvQUlEUyBiaSBuZ2hpZW4gbWEgdHV5 Lg0KDQpodHRwOi8vZ2lhZGluaC5uZXQudm4vMjAwOTExMTgwMTIxMjY5NjJwMGMxMDA1L3RydW90 LWRlLWNvbi1kb2EtZG90LW5oYS1kb2ktdGllbi5odG0gMTgvMTEvMjAwOSwgMTM6MjMoR01UKzcp DQoNCkhhIE5vaTogVHJ1b3Qgc28gZGUsIGRvYSBkb3QgbmhhIGRvaSB0aWVuIA0KDQpodHRwOi8v Z2lhZGluaC5uZXQudm4vMjAwOTA1MTIwOTU3MTAyNDZwMGMxMDA1L3RodWEtYmFjLWRvaS1sYWkt dGllbi1iaS1kYW0tY2hldC5odG0gMTIvMDUvMjAwOSwgMTM6MDcoR01UKzcpDQoNCkhhIE5vaTog VGh1YSBiYWMsIGRvaSBsYWkgdGllbiwgYmkgZGFtIGNoZXQgDQoNCmh0dHA6Ly90aW50dWNvbmxp bmUudmlldG5hbW5ldC52bi92bi94YWhvaS80MjMxNTkvaW5kZXguaHRtbCAxOC8xMi8yMDA5IDE1 OjI2IChHTVQgKzcpDQoNCk5vaSBhbSBhbmggbWFuZyB0ZW4gS2hhbmggInRyYW5nIg0KDQpodHRw Oi8vd3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTE2OTAzNyZD aGFubmVsSUQ9MiAxNS8wOC8yMDA5LCAwODozOA0KDQpIYSBOb2k6IFZ1b24gZGFvIGx1dSBuaWVu IGxvbiBuaGF0IEhhIE5vaSBiaSBidWMgdHUNCg0KaHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dM L1BoYXAtbHVhdC8yMDA5LzEyLzNCQTE2RERGLyBUaHUgYmF5LCAxOS8xMi8yMDA5LCAxMDo1NiBH TVQrNw0KDQpIYSBOb2k6IERhbiB0cmFuIGJhbiBuaGF1IHRydW9jIGtodSBkbyB0aGkgQ2lwdXRy YSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwNy9IYS1Ob2ktTW90LWNo dS1xdWFuLXBoby1iaS1jdWEtY28tZGVuLWNoZXQtOTI1OTMzLyAxMjo1NywgMzEvMDcvMjAxMCAo R01UKzcpDQoNCkhhIE5vaTogTW90IGNodSBxdWFuIHBobyBiaSBjdWEgY28gZGVuIGNoZXQNCg0K aHR0cDovL3BoYXBsdWF0dmlldG5hbS52bi9jaGFubmVsLzQ3NTcvMjAxMDA2L1RvJUMzJUEwbi1j YW5oLXZ1LU5ndXllbi1EdWMtTmdoaWEtY2hhdC1kYXUtbmd1b2kteWV1LWN1LTE5NTIwNTkvIDA4 OjQyIDA5LzA2LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEdpZXQgbmd1b2kgeWV1IGN1IC0gY2hh dCBkYXUgcGhpIHRhbmcNCg0KKEh1bmcgdGh1IE5ndXllbiBEdWMgTmdoaWEsIDI2IHR1b2ksIHRo dW9uZyB0cnUgdGFpIFRQLiBIYWkgUGhvbmcsIHNpbmggcmEgdHJvbmcgZ2lhIGRpbmggY28gYm8g bWUgZGV1IGxhIGNvbmcgbmhhbikNCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIw MTAwNi9UcmFtLWNodXllbi1nYWktZ29pLWxvbi1uaGF0LUhhLU5vaS1ub25nLXRyby1sYWktOTE0 NDYyLyAxNDoyOCwgMDYvMDYvMjAxMCAoR01UKzcpDQoNCidUcmFtIGNodXllbiBnYWkgZ29pIiBs b24gbmhhdCBIYSBOb2kgbm9uZyB0cm8gbGFpIC0ga2h1IHZ1YyBwaG8gTmd1eWVuIENoaSBUaGFu aCBnaWFvIHZvaSBkdW9uZyBMYW5nDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVh dC8yMDEwLzA2LzNCQTFDRDY1LyAxMS82LzIwMTAsIDA5OjI3IEdNVCs3DQoNCkhhIE5vaTogSGFp IGNhbmggc2F0IGNhbSBkYXUgbmhvbSAneGluIGRldScgLSBjaGFuIHhlIG5ndW9pIGRpIGR1b25n IGRvaSBraWVtIHRyYSBnaWF5IHRvIHZhIGNvIGhhbmggdmkgInZvaSB2aW5oIiB0aWVuLiANCk5l dSBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25nIGtob25nIGNvIHRpZW4sIG5ob20gbmF5IGJhdCBt YW5nIHhlIGRpIGNhbSBkbyBvIGdhbiBkbyBsYXkgdGllbiBkZSBub3AuDQoNCmh0dHA6Ly82MHMu Y29tLnZuL2luZGV4LzI0ODU2NjYvMTkxMjIwMDkuYXNweCBUaHUgYmF5ICwgMTkgLyAxMiAvIDIw MDksIDE0OiAzMiAoR01UKzcpDQoNCkhhIE5vaTogTWFuZyBjYSBiYW8gdGFpICdoYW5nIG5vbmcn IGRpIGRhbiBtYXQgbmhhdSBnaXVhIHBobyANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkx MTE4MDkwMTQwMTc3cDBjMTAwNS9tb3QtbmdheS1oYWktdnUtYW4tbWFuZy5odG0gMTgvMTEvMjAw OSwgMTM6NDUoR01UKzcpDQoNCkhhIE5vaTogTW90IG5nYXkgaGFpIHZ1IGFuIG1hbmcgDQoNCmh0 dHA6Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC9IaW5oLXN1LzIwMDQvMDMvM0I5RDA0QjUv IDQvMy8yMDA0LCAwNDozOSBHTVQrNyANCg0KSGEgTm9pOiAxMSB0aGFuaCBuaWVuIGhpZXAgZGFt IDIgYmUgZ2FpDQoNClNhdSBraGkgbGFuZyB0aGFuZyBzdW90IGJ1b2kgdG9pIHRyZW4gZHVvbmcs IDExIHRoYW5oIG5pZW4gbyBodXllbiBTb2MgU29uLCBIYSBOb2ksIHR1b2kgDQp0dSAxNSBkZW4g MTcsIGJhdCBnYXAgNSBiZSBnYWkgZGkgaG9jIHZlLiBDaHVuZyBkdW9pIHRoZW8gYmF0IGdpdSBk dW9jIDIgYmUsIHJvaSB0aGF5IG5oYXUgDQp0aHVjIGhpZW4gaGFuaCB2aSBkb2kgYmFpIG5nYXkg YmVuIHZlIGR1b25nLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1YXQvSGEt Tm9pLXhheS1yYS0yLXZ1LWhpZXAtZGFtLXRhcC10aGUtdHJvbmctdm9uZy01LXRpZW5nLzEwOTc2 MzEwLzIxOC8gMTgvOS8yMDA2LCAwODo1NSBHTVQrNw0KDQpIYSBOb2k6IDIgdnUgaGllcCBkYW0g dGFwIHRoZSB0cm9uZyB2b25nIDUgdGllbmcgDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4v SG9tZS9IYS1Ob2ktTGFpLXRoZW0tbW90LXZ1LWhpZXAtZGFtLWJhbi1jaGF0LzIwMDc0LzMyMzE5 Lmxhb2RvbmcgMTYuNC4yMDA3ICAwOToxOCAoR01UICsgNykgDQoNCkhhIE5vaTogTGFpIHRoZW0g bW90IHZ1IGhpZXAgZGFtIGJhbiBjaGF0IA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSW5mby9I YS1Ob2ktSGFpLXRoaWV1LW51LWJpLW5ob20teWV1LXJhdS14YW5oLWhpZXAtZGFtLzEwNC8zODY3 MTkwLmVwaQ0KDQpIYSBOb2k6IEhhaSB0aGlldSBudSBiaSBuaG9tICJ5ZXUgcmF1IHhhbmgiIGhp ZXAgZGFtIA0KDQpodHRwOi8vY29uZ3R5bHVhdDEtNS52bi90aW4tdHVjLXBoYXAtbHVhdC8xODkt cnVvdS1zYXktcnUtbmhhdS1oaWVwLWRhbS10YXAtdGhlLW51LXNpbmgtbG9wLTktLmh0bWwNCg0K SGEgTm9pOiBSdW91IHNheSBydSBuaGF1IGhpZXAgZGFtIHRhcCB0aGUgbnUgc2luaCBsb3AgOSAN Cg0KaHR0cDovL3d3dy5naWFvZHVjLmVkdS52bi9uZXdzL2dpYW8tZHVjLWdpYS1kaW5oLTY3OS9o YS1ub2ktdG9tLWtlLWhpZXAtZGFtLW5ndW9pLXlldS1jdS0xNDYyMzcuYXNweCAxNC83LzIwMTAs IDA4OjA3IEdNVCs3IA0KDQpIYSBOb2k6IEhpZXAgZGFtIG5ndW9pIHlldSBjdSANCg0KaHR0cDov L2RhaWx5aW5mby52bi80LTMyLTg4MjQxLWhhLW5vaS10aGVtLW1vdC12dS1oaWVwLWRhbS10YXAt dGhlLmh0bWwgMDcvMDEvMjAxMCAwNzo0OCBBTSANCg0KSGEgTm9pOiBUaGVtIG1vdCB2dSBoaWVw IGRhbSB0YXAgdGhlIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDA5LzA3Lzg1Nzgy Ni8gVHJhbmcgQW4gTmd1eWVuIDA2OjM2LCAxMy8wNy8yMDA5IChHTVQrNykgDQoNCkhhIE5vaTog SG9uIDUwMCBkdSBhbiBuaGFuIGRhdCBkZSAnbmdhbScNCg0KVHJvbmcgMy40MDEgZHUgYW4gdG9u ZyBkaWVuIHRpY2ggMzMuMTQzaGEgZGF0IGRhIGR1b2MgZ2lhbywgY2hvIHRodWUgdHJlbiBkaWEg YmFuIEhhIE5vaSANCnRyb25nIHZvbmcgNiBuYW0gKHR1IDIwMDMgZGVuIGtoaSBUaHUgZG8gZGEg ZHVvYyBtbyByb25nKSwgaG9uIDUwMCBkdSBhbiBiaSBjb2kgbGEgDQoidHJlbyIsIGNoYW0gdHJp ZW4ga2hhaSBkdW9pIG5oaWV1IGRhbmcuLi4NCg0KSGFuZyBsb2F0IGR1IGFuIG5oYW4gZGF0IGRl Li4uICJuZ2FtIg0KDQpUaGVvIFBobyBDaHUgdGljaCBVQk5EIFRQIEhhIE5vaSBWdSBIb25nIEto YW5oLCBjYWMgZHUgYW4gY2hhbSB0cmllbiBraGFpIA0KKHRodW9uZyBnb2kgbGEgZHUgYW4gInRy ZW8iKSB0YWkgVGh1IGRvIGhpZW4gbmF5IGNvIHRoZSBwaGFuIHRoYW5oIG5oaWV1IGRhbmc6IGNo YW0gdHJpZW4gDQpraGFpIHRyb25nIGdpYWkgcGhvbmcgbWF0IGJhbmc7IGtob25nIHN1IGR1bmcg ZGF0IHRyb25nIDEyIHRoYW5nIGxpZW4ga2UgdHUga2hpIG5oYW4gYmFuIA0KZ2lhbyBkYXQgdHJl biB0aHVjIGRpYTsgY2hhbSAyNCB0aGFuZyBzbyB2b2kgdGllbiBkbyBkdW9jIGR1eWV0OyBkYXQg YmkgY2h1eWVuIG5odW9uZyANCnRyYWkgcGhhcCBsdWF0LCBiaSBsYW4gY2hpZW0sIHRyYW5oIGNo YXAsIHN1IGR1bmcgc2FpIG11YyBkaWNoIGhvYWMgZG9uIGdpYW4gY2hhbSB2aSBjaHUgDQpkYXUg dHUgY2h1YSB0aHVjIGhpZW4gbmdoaWEgdnUgdGFpIGNoaW5oIHZvaSBOaGEgbnVvYy4uLg0KDQoz LjQwMSBkdSBhbiBkYSBkdW9jIGNvIHF1YW4gTmhhIG51b2MgY28gdGhhbSBxdXllbiBnaWFvIGRh dCwgY2hvIHRodWUgZGF0IGtlIHR1IA0KMS8xLzIwMDMgZGVuIDMxLzEyLzIwMDggdGFpIEhhIE5v aSAoa2UgdHJlbiksIDEuODA5IGR1IGFuIGRhIGNvIFF1eWV0IGRpbmggdGh1IGhvaSB2YSANCmR1 b2MgZ2lhbyBkYXQgZGUgdGh1YyBoaWVuIHRoZW8gcXVpIGhvYWNoLCAxLjU5MiBkdSBhbiBkYSBj byBRdXlldCBkaW5oIHRodSBob2kgdmEgY2hvIHRodWUgZGF0Lg0KDQpOZ3V5ZW4gbmhhbiBjaGFt IHRyaWVuIGtoYWkgImFwIGRhbyIgbmhhdCB2YW4gbGEgdnVvbmcgZ2lhaSBwaG9uZyBtYXQgYmFu ZyAoOCw2NCUgc28gDQpkdSBhbiBraWVtIHRyYSkuIENhIFRodSBkbyBjbyAyOTQgZHUgYW4gInRy ZW8iIHZpIG1hdCBiYW5nLCB2b2kgdG9uZyBkaWVuIHRpY2ggMy40OTgsMmhhLiANClRyb25nIGRv LCAxODcgZHUgYW4gc3UgZHVuZyB2b24gbmdhbiBzYWNoIHZhIDEwNyBkdSBhbiB2b24gbmdvYWkg bmdhbiBzYWNoLg0KDQoiVmllYyBOaGEgbnVvYyB0aGF5IGRvaSwgYm8gc3VuZyBjaGluaCBzYWNo IGxhbSBwaGF0IHNpbmgga2hvIGtoYW4sIHZ1b25nIG1hYyBraGkgeHUgDQpseSBnaWFpIGRvYW4g Y2h1eWVuIHRpZXAgZ2l1YSBjYWMgdGhvaSBreSBkYSBhbmggaHVvbmcga2hvbmcgbmhvIHRvaSB0 aWVuIGRvIGdpYWkgcGhvbmcgDQptYXQgYmFuZywgbmhhdCBsYSBjYWMgZHUgYW4gcXVpIG1vIGxv biwgdGhvaSBnaWFuIHRodWMgaGllbiBkYWkuLi4gZGFuIHRvaSB0aGFjIG1hYywga2hpZXUgDQpr aWVuIHR1IHBoaWEgbmh1bmcgbmd1b2kgZGFuIGJpIHRodSBob2kgZGF0IiAtIG5oYW4gZGluaCBj dWEgbGFuaCBkYW8gVGhhbmggcGhvIEhhIE5vaS4NCg0KKEFuaDogSGFuZyBuZ2hpbiBoZWN0YSBk YXQgVGh1IGRvIHZhbiBob2FuZyBuZ2F5IG5heSBzYW5nIHRoYW5nIGtoYWMuLi4gQW5oOiBILkgp DQoNClR1eSBuaGllbiwgY3VuZyB0aGVvIFVCTkQgVFAgLSBtb3Qgc28gY2h1IGRhdSB0dSBybyBy YW5nIGNodWEgbm8gbHVjLCBjb24gY2hvIGRvaSB0aGkgDQp0cnVvbmcgYmF0IGRvbmcgc2FuICJz b2kgZG9uZyIgdHJvIGxhaSBtb2kgdHJpZW4ga2hhaS4gTmhpZXUgdHJ1b25nIGhvcCBjaHUgZGF1 IHR1IHRoaWV1IA0Kdm9uIHRyYSB0aWVuIGJvaSB0aHVvbmcsIGhvIHRybywgdGFpIGRpbmggY3Uu Li4gaG9hYyBkb2FuaCBuZ2hpZXAgbmhvIG5odW5nIGxhaSBkdW9jIGdpYW8gDQpkdSBhbiBsb24s IGhheSBjaHUgZGF1IHR1IGtob25nIGNodSBkb25nIGxvIHF1eSBuaGEgdGFpIGRpbmggY3UgY2hv IGRhbiBtYSBjb24gdGFtIGx5IA0KInRyb25nIGNobyIgcXV5IG5oYSBUaGFuaCBwaG8uDQoNClRo YW5oIHBobyBIYSBOb2kgY3VuZyB2dWEgdG9uZyBrZXQgZHVvYyA0OCBkdSBhbiB0b25nIGRpZW4g dGljaCAxMzEsNWhhIGtlIHR1IGtoaSANCm5oYW4gZGF0IG5nb2FpIHRodWMgZGlhIGtob25nIHN1 IGR1bmcgZGF0IDEyIHRoYW5nIGxpZW4uIFRyb25nIHNvIG5heSwgMTEgZHUgYW4gc3UgZHVuZyAN CnZvbiBuZ2FuIHNhY2ggdmEgMzcgZHUgYW4gdm9uIG5nb2FpIG5nYW4gc2FjaC4NCg0KTmd1eWVu IG5oYW4gY2h1IGRhdSB0dSBjaHVhIGNodWFuIGJpIGR1IHRodSB0dWMgdmEgZGlldSBraWVuIGto b2kgY29uZyBjaHUgeWV1IGRvIA0KdGhpZXUgdm9uLiBNb3Qgc28ga2hhYyBkdSBkaWV1IGtpZW4g a2hvaSBjb25nIG5odW5nIGxhaSB4aW4gZGlldSBjaGluaCBjdWMgYm8gZGUgbmFuZyANCmNhbyBo aWV1IHF1YSBkYXUgdHUuLi4gZGFuIGRlbiAidHJlbyIgZHUgYW4uDQoNCjM5IGR1IGFuIGtoYWMg dm9pIHRvbmcgZGllbiB0aWNoIDQyNSwyaGEgZGF0IGR1b2MgcGhhdCBoaWVuIGNoYW0gMjQgdGhh bmcgc28gdm9pIHRpZW4gZG8gDQpkYSBkdXlldCwgdHJvbmcgZG8gNyBkdSBhbiB2b24gbmdhbiBz YWNoIHZhIDMyIGR1IGFuIHZvbiBuZ29haSBuZ2FuIHNhY2guIE5ndXllbiBuaGFuIA0KbGFpICJx dWFuaCBxdWFuIjogdGhpZXUgdm9uLCBkdW5nIGRlIHhpbiBkaWV1IGNoaW5oIHF1aSBob2FjaCwg Y2h1eWVuIG11YyBkaWNoIHN1IGR1bmcgDQpkYXQgaG9hYyAibmFtIHllbiIgY2hvIHRoaSB0cnVv bmcgYmF0IGRvbmcgc2FuIHRob2F0ICJ0cmFtIi4uLg0KDQpEYWMgYmlldCwgSGEgTm9pIHBoYXQg aGllbiAyNiBkdSBhbiB0b25nIGRpZW4gdGljaCA3LDMyaGEgYmkgY2h1eWVuIG5odW9uZyB0cmFp IHBoYXAgDQpsdWF0LCBiaSBsYW4gY2hpZW0sIHRyYW5oIGNoYXAgaG9hYyBzdSBkdW5nIHNhaSBt dWMgZGljaC4uLiBnb20gMTEgZHUgYW4gdm9uIG5nYW4gc2FjaCANCnZhIDE1IGR1IGFuIG5nb2Fp IG5nYW4gc2FjaC4NCg0KTmhhbiAiYnVhIiBkdSBjaHVhLi4uIGNvIHRpZW4hDQoNClJhIHNvYXQg Y2FjIGR1IGFuIGtodSBuaGEgbywga2h1IGRvIHRoaSB0cmVuIGRpYSBiYW4gSGEgTm9pIGhvcCBu aGF0LCBjbyBxdWFuIGNodWMgbmFuZyANCiJsYW4gcmEiIDk4IGR1IGFuIHZvaSB0b25nIGRpZW4g dGljaCBkYXQgZHVvYyBnaWFvIGxhIDMuMTg2aGEsIGRhbmcgbGUgcGhhaSBub3AgbmdhbiBzYWNo IA0KTmhhIG51b2MgdG9uZyBzbyB0aWVuIGhvbiAxNSBuZ2hpbiB0aSBkb25nIG5odW5nIHRhdCBj YSBtb2kgbm9wIGhvbiA1IG5naGluIHRpLiBOaGEgDQpudW9jIGNvbiBwaGFpICJkb2kiIGNhYyBj aHUgZGF1IHR1IG5heSB0aHVjIGhpZW4gbmdoaWEgdnUgdGFpIGNoaW5oIGdhbiAxMCBuZ2hpbiB0 aSBkb25nIA0KbnVhLg0KDQpMeSBkbyBuaGlldSBjaHUgZGF1IHR1ICJ2aWVuIiByYTogdGhpIHRy dW9uZyBiYXQgZG9uZyBzYW4gdHJhbSBsYW5nLCBjaHVhIHRodSBob2kgZHVvYyANCmNoaSBwaGkg eGF5IGR1bmcgZGEgYm8gcmEgbmVuIGNodWEgY28ga2hhIG5hbmcgbm9wIHRpZW4gc3UgZHVuZyBk YXQ7IHZpZWMgYm9pIHRodW9uZywgaG8gDQp0cm8gdmEgdGFpIGRpbmggY3UgY2hhbSAtIGNodSBk YXUgdHUgcGhhaSB1bmcgdHJ1b2Mgc28gdGllbiBsb24sIG5ldSBjaHVhIGR1b2MgYmFuIGdpYW8g DQpkYXQgdHJlbiB0aHVjIGRpYSBkZSB4YXkgaGEgdGFuZyByb2kgaHV5IGRvbmcgdm9uIG1hIGRh IHBoYWkgbm9wIHRpZW4gc3UgZHVuZyBkYXQgdGhpIHJhdCANCmtoby4uLiANCg0KVElOIExJRU4g UVVBTg0KKiBEYXQga2ltIGN1b25nLCBkYXQgdmFuZyAidnVuZyB2aXQiIGtoYXAgSGEgTm9pIA0K KiBCbyBraG9uZyBoYW5nIHRyYW0gaGVjdGEgZGF0IFRodWRvLCB2YW4geGluIHRoZW0hPyANCiog SGEgTm9pIHF1eWV0IHNvIHBoYW4gaGFuZyBsb2F0IG5oYSwgZGF0ICJraW0gY3VvbmciIA0KKiBP IGF0IGJhbiB0cnUgc28gY3VhIE5oYSBudW9jIGNobyB0dSBuaGFuDQoNClRydW9jIGhhbmcgbG9h dCBkdSBhbiAidHJlbyIgbmF5LCBVQk5EIFRQIEhhIE5vaSBjaG8gaGF5IGtlIHR1IG5hbSAyMDAx IGRlbiAyMDA1IA0KZGEgcXV5ZXQgZGluaCB0aHUgaG9pIGRhdCBjdWEgNjcgdG8gY2h1YyBkZSBo b2FuZywgc2FpIG11YyBkaWNoIHZvaSB0b25nIGRpZW4gdGljaCANCjU5LDczaGEuIFVCTkQgY2Fj IHF1YW4sIGh1eWVuIGN1bmcgeHUgbHkgMzk3IHRydW9uZyBob3AgdmEgdGh1IGhvaSAyMyw2aGEg ZGF0LiANCg0KVGllcCBkbywgMjkgZHUgYW4gdG9uZyBkaWVuIHRpY2ggMjUwaGEgZGF0IHRodW9j IEhhIE5vaSBjdSBjaGFtIHRyaWVuIGtoYWkgc2F1IDEyIGhvYWMgDQoyNCB0aGFuZyBkYSBiaSB4 dSBseSB0cm9uZyBuYW0gMjAwNiwgaG9uIDYwIGR1IGFuIGJpIHh1IGx5IHRyb25nIG5hbSAyMDA3 IHZhIHJpZW5nIG5hbSANCjIwMDgsIFRoYW5oIHBobyBIYSBOb2kgcXV5ZXQgZGluaCB0aHUgaG9p IDQxLjE0OG0yIGRhdCBjdWEgNCBkb24gdmkuDQoNCk51YSBkYXUgMjAwOSwgVUJORCBUUCBIYSBO b2kgZGEgcXV5ZXQgZGluaCB0aHUgaG9pIDQwMm0yIGRhdCBibyBob2FuZyBjdWEgQ29uZyB0eSAN CkR1IGxpY2ggSGEgTm9pIHRhaSAxNSAtIDE3IFllbiBQaHUgKHF1YW4gVGF5IEhvKS4gNSBkb24g dmkgdmkgcGhhbSBkYXQgZGFpIGtoYWMgY3VuZyANCmRhbmcgYmkgbGFwIGhvIHNvIHRodSBob2kg ZGF0OiBDb25nIHR5IEtoYWkgdGhhYyBjb25nIHRyaW5oIHRodXkgbG9pIEdpYSBMYW0gdm9pIA0K Ni45MDBtMiBkYXQgdGFpIFNhaSBEb25nIChxdWFuIExvbmcgQmllbik7IENvbmcgdHkgVmluaCBI YSB2b2kgNC4zMDJtMiBkYXQgdGFpIFllbiANClZpZW4gKGh1eWVuIEdpYSBMYW0pOyBIVFggTm9u ZyBuZ2hpZXAgTW8gTGFvIHZvaSAyLjM0MW0yIHRhaSBNbyBMYW8gKHF1YW4gSGEgDQpEb25nKTsg Q29uZyB0eSBDUCBEb25nIFRoYXAgdm9pIDM2N20yIHRhaSAxMyBIYW5nIFRyZSB2YSBIVFggQ29u ZyBuZ2hpZXAgQ1AgSG9hIA0KU2VuIHZvaSAyNjdtMiB0YWkgc28gMyBuZ28gMTI0IFRodXkgS2h1 ZS4uLg0KDQpWb2kgdGh1YyB0ZSBuYXksIFRoYW5oIHBobyBIYSBOb2kgdGh1YSBuaGFuIHRhaSBu aGlldSBkdSBhbiAidmllYyB4dSBseSBjYWMgdmkgcGhhbSBjdWEgDQpjaGluaCBxdXllbiBkaWEg cGh1b25nIGNodWEgbmdoaWVtLCB0aGlldSBraWVuIHF1eWV0LCBraG9uZyBkdXQgZGllbS4uLiBn YXkgYW5oIGh1b25nIA0KeGF1IHRyb25nIGR1IGx1YW4geGEgaG9pIi4gDQoNCmh0dHA6Ly9jaGlu aHNhY2hxdWFubHkuYmF0ZG9uZ3Nhbi5jb20udm4vc2FpLXBoYW0tdHJvbmctZGF0LWRhaS1kYXQt bm9uZy1uZ2hpZXAtYmktYmllbi10dW9uZy12aTQtSFBjM1prWTEuaHRtbCAoVGhlbyBITk0pIDI3 LzA5LzIwMTAsIDA4OjM1IEdNVCs3IA0KDQpIYSBOb2k6IFNhaSBwaGFtIHRyb25nIHF1YW4gbHkg ZGF0IGRhaSAtIERhdCBub25nIG5naGllcCBiaSBiaWVuIHR1b25nIA0KDQpUcm9uZyBtb3QgdGhv aSBnaWFuIGRhaSwgeGEgU29uZyBQaHVvbmcgKGh1eWVuIEhvYWkgRHVjLCBIYSBOb2kpIGRhIHhh eSByYSB0aW5oIHRyYW5nIA0KcXV5IGRhdCBjb25nIGRvIEhUWCBob2FjIHhhIHF1YW4gbHkgZHVv YyBjaG8gdGh1ZSwgZGF1IHRoYXUgdHJhaSBwaGVwIGRhbiBkZW4gdGluaCANCnRyYW5nIHhheSBu aGEgdHJlbiBkYXQgbm9uZyBuZ2hpZXAgZ2F5IGJ1YyB4dWMgdHJvbmcgbmhhbiBkYW4uDQoNCkN1 bmcgdm9pIGRvIGhhbmcgY2h1YyBoZWN0YSBkYXQgbm9uZyBuZ2hpZXAgdnVuZyBiYWkgbWF1IG1v IGJpIGNhYyBobyBkYW4gdHUgeSANCmNodXllbiBuaHVvbmcgZGFuIGRlbiBuZ3V5IGNvIG1hdCBk YW4gZGF0IG5vbmcgbmdoaWVwIHZhIHh1YXQgaGllbiB0aW5oIHRyYW5nIGRhdCBibyANCmhvYW5n LCBnYXkgbGFuZyBwaGkuDQoNClhheSBuaGEgdHJhbiBsYW4gdHJlbiBkYXQgbm9uZyBuZ2hpZXAN Cg0KVGhlbyBwaGFuIGFuaCBjdWEgbW90IHNvIG5ndW9pIGRhbiBvIFNvbmcgUGh1b25nLCB4YSBk YSBjaG8gZGF1IHRoYXUgZGF0IG5vbmcgbmdoaWVwIA0KdHJhaSBwaGVwIHZ1bmcgRG9jIFRodW9u ZyAodGh1b2MgcXV5IGRhdCBkbyB0YXAgdGhlIHF1YW4gbHkpIGNobyAxOCBobyBkYW4gdm9pIGRp ZW4gDQp0aWNoIGdhbiA0LjAwMG0yLiBPbmcgTHV1IERpbmggVGFtLCBQaG8gQmkgdGh1IHRodW9u ZyB0cnVjIHhhIFNvbmcgUGh1b25nIGNobyBiaWV0LCANCnRydW9jIGRheSBjaHUgdGljaCB4YSBk YSB0aHVhIG5oYW4gbmd1b24gZ29jIGRhdCBraHUgRG9jIFRodW9uZyBsYSBkYXQgbm9uZyBuZ2hp ZXAgDQoodGh1b2MgcXV5IGRhdCBjb25nKSwgeGEga2hvbmcgYmFuIGRhdCBtYSBjaGkgY28gY2h1 IHRydW9uZyBkYXUgdGhhdSBjaG8gdGh1ZSAxMjAgDQptMi9obywgdGhvaSBoYW4gMTAgbmFtLiBP bmcgVGFtIGNobyByYW5nIHZpZWMgY2hvIHRodWUgZGF0IHRyb25nIHRob2kgaGFuIGRhaSBuaHUg dmF5IA0KbGEgY2h1IHRydW9uZyBjdWEgdGFwIHRoZSBVQk5EIHhhIFNvbmcgUGh1b25nLCBraW5o IHBoaSB0aHUgZHVvYyB4YSBkYSBkYXUgdHUgbmFuZyANCmNhcCBkdW9uZyB0aG9uLCB4b20sIHhh eSB0cmFtIGJpZW4gYXAgcGh1YyB2dSBuaGFuIGRhbi4gVGhvaSBkaWVtIFVCTkQgeGEgY2hvIGRh dSANCnRoYXUgZGEgdGhvbmcgYmFvIGNvbmcga2hhaSwgYWkgY28gbmh1IGNhdSBkZXUgZHVvYyBk YW5nIGt5IG5lbiB0cm9uZyBzbyB0aGFtIGdpYSBkYXUgDQp0aGF1IHRhaSBraHUgZGF0IERvYyBU aHVvbmcgY28gY2EgY2FuIGJvIHhhLCB0aG9uIHZhIEhUWC4NCg0KVHJ1b2MgdGluaCB0cmFuZyBz YWkgcGhhbSB0cm9uZyBxdWFuIGx5IGRhdCBkYWkgbyBTb25nIFBodW9uZywgaHV5ZW4gSG9haSBE dWMgZGEgDQp0aGFuaCBsYXAgZG9hbiB0aGFuaCB0cmEgdmEgZ2lhbyBVeSBiYW4gS2llbSB0cmEg SHV5ZW4gdXkgSG9haSBEdWMgdGllbiBoYW5oIGtpZW0gdHJhLCANCmtpZW0gZGllbSwgeHUgbHkg dnUgdmllYyB2aSBwaGFtLiBUaGVvIEtldCBsdWFuIDAyL0tMLVRUIG5nYXkgMTQtMi0yMDA4IGN1 YSBUaGFuaCB0cmEgDQpodXllbiBIb2FpIER1YzogVG9hbiB4YSBTb25nIFBodW9uZyBjbyAxNzIg dHJ1b25nIGhvcCB2aSBwaGFtLCB4YXkgZHVuZyB0cmVuIA0KZGF0IG5vbmcgbmdoaWVwLCBkaWVu IHRpY2ggeGF5IGR1bmcgbGEgMTEuNzgybTIgKGNvIDcgY29uZyB0cmluaCBraWVuIGNvIHhheSB0 cmVuIA0KMS41NTBtMiwgODIuMTMybTIgZGF0IHhheSBjb25nIHRyaW5oIHR1b25nIGJhbykuIE5o aWV1IGNvbmcgdHJpbmggcXV5IG1vIGxvbiBuaHVuZyANClVCTkQgeGEga2hvbmcgZHVhIHZhbyBo byBzbyB2aSBwaGFtLCB0aGUgaGllbiBzdSBidW9uZyBsb25nIHF1YW4gbHksIHRoaWV1IHRyYWNo IA0KbmhpZW0uIERvIGxhIGtodSBCYWkgQ2F0IC0ga2h1IHZ1YyBzYW4geHVhdCBiZSB0b25nIGR1 YyBzYW4gY3VhIENvbmcgdHkgVE5ISCBMaW5oIA0KRGFuLCBraHUgQmFpIE5vaSBnb20ga2h1IHZ1 YyBzYW4geHVhdCBiZSB0b25nIGR1YyBzYW4gY3VhIENvbmcgdHkgU29uZyBEYSwga2h1IGdhcmEg DQpvIHRvIGN1YSBobyBvbmcgQmEgUXV5LCB0cmFpIG5ndWEgYmFjaCBjdWEgb25nIE5ndXllbiBR dW9jIFRyaWV1IChuaGEga2llbiBjbywgY2h1b25nIA0KdHJhaSBjaGFuIG51b2kgY2Egc2F1LCBu Z3VhLCBnYXUpIHhheSBkdW5nIHR1IG5hbSAyMDA2LiBDaGluaCBxdXllbiBkaWEgcGh1b25nIGRh IHRodSANCmhhbmcgdHkgZG9uZyB0dSB2aWVjIGNobyB0aHVlLCB0aGF1IGRhdCB0cmFpIHBoYXAg bHVhdCBuYXkuIERpZXUgZGFuZyB0aWVjIGxhIG1hYyBkdSBkYSANCmR1b2MgVGhhbmggdHJhIGh1 eWVuIGtldCBsdWFuLCB4YWMgZGluaCBybyBzYWkgcGhhbSBuaHVuZyBjaGluaCBxdXllbiB4YSBT b25nIFBodW9uZyANCmtob25nIHRhcCB0cnVuZyB4dSBseSwgYm8gbWFjIHRvbiB0YWkgZ2F5IGJ1 YyB4dWMgdHJvbmcgZHUgbHVhbi4NCg0KQm8geG9pIHJ1b25nIG1hdCBiaSBibyBob2FuZw0KDQpE byBidW9uZyBsb25nIHF1YW4gbHkgZGF0IGRhaSwgcXV5IGRhdCBjb25nIGJpIGNoaW5oIHF1eWVu IGRpYSBwaHVvbmcgY2hvIGRhdSB0aGF1IHRyYWkgDQpwaGFwIGx1YXQsIGRhbiB0b2kgdmllYyB4 YXkgZHVuZyBuaGEgdHJhbiBsYW4gdHJlbiBkYXQgbm9uZyBuZ2hpZXAuIE8gU29uZyBQaHVvbmcg aGllbiANCnR1b25nIGNodXllbiBuaHVvbmcgZGF0IG5vbmcgbmdoaWVwIHZvaSBtdWMgZGljaCBk YXUgY28gZGFuZyBkaWVuIHJhIHBobyBiaWVuLiBHaWFpIA0KZG9hbiAyMDAwLTIwMDQsIHRpbmgg dHJhbmcgY2h1eWVuIG5odW9uZyBkYXQgbm9uZyBuZ2hpZXAgY29uIGRpZW4gcmEgbmdhbSBuZ2Ft LCByb2kgDQpzYXUgZG8gdHJvIG5lbiBjb25nIGtoYWkuIERvaSB0dW9uZyBtdWEgY2h1IHlldSBs YSBuaHVuZyBuZ3VvaSBjbyB0aWVuLCB0cnUgZGF0IGRlIGNobyANCmdpYSBjYW8gYmFuIHRodSBs b2kgY2h1IGtob25nIHBoYWkgbXVhIGRlIGRhdSB0dSBzYW4geHVhdC4gTW9pIGRheSwgcGhvbmcg dmllbiANCkhhbm9pbW9pIGRhIGRlbiBxdWFuIHNhdCB0aHVjIGRpYSB2dW5nIGRhdCBiYWkgUGh1 b25nIEJhbmcsIGRpIGRvYyBjYWMgdHJ1YyBkdW9uZyBiZSANCnRvbmcgdHUgdnVuZyBiYWkgY3Vh IENhdSwga2h1IERvYyBUaHVvbmcsIGR1b25nIGJlIHRvbmcgbm9pIHhvbSBUcmFpIHZvaSBkdW9u ZyBjYW8gDQp0b2MgTGFuZyAtIEhvYSBMYWMsICJtdWMgc28gdGhpICIgdGhheSB0cmVuIDMwIGto b2FuaCBydW9uZyBkdW9jIHhheSB0dW9uZyBiYW8ga2llbiANCmNvLCB0cm9uZyBkbyBjbyBuaGll dSB0aHVhIGRlIGhvYW5nLCBjbyBtb2MgZGF5LCBtb3Qgc28ga2hhYyBkYSBsYW0gbmhhIHRyZW4g ZGF0IG5vbmcgDQpuZ2hpZXAuIE5odW5nIHRodWEgcnVvbmcga2lldSBuYXkgZGEgbGFtIGFuaCBo dW9uZyB0b2kgc2FuIHh1YXQgY3VhIG5odW5nIGhvIHh1bmcgDQpxdWFuaCBjaGlhIGNhdCBoZSB0 aG9uZyBrZW5oIG11b25nLCBnYXkgYWNoIHRhYyBkb25nIGNoYXksIHF1eSBob2FjaCBnaWFvIHRo b25nLCB0aHV5IA0KbG9pIGJpIHBoYSB2by4NCg0KT25nIFZ1IFZhbiBIZSwgVHJ1b25nIHRob24g UGh1b25nIEJhbmcgY2hvIGJpZXQ6IFZ1bmcgZGF0IGJhaSBTb25nIFBodW9uZyBraGEgDQptYXUg bW8sIG5ldSB0aGFtIGNhbmggdG90LCBub25nIGRhbiBjbyB0aGUgc2FuIHh1YXQgUkFUIHZvaSBn aWEgdHJpIGtob2FuZyAyNzAgdHJpZXUgDQpkb25nL2hhLiBUdXkgbmhpZW4sIHNvIGhvIHN1IGR1 bmcgZGF0IG5vbmcgbmdoaWVwIGhpZXUgcXVhIGNhbyBvIGRheSBjaGkgY2hpZW0ga2hvYW5nIA0K MjAlLCBuaGlldSBobyBkYSBjaHV5ZW4gbmh1b25nIGRhdCBjaG8gbmd1b2kga2hhYy4gTHkgZ2lh aSB2aWVjIGRhdCBub25nIG5naGllcCB2dW5nIA0KYmFpIFBodW9uZyBCYW5nIGRhbmcgYmkgYmll biB0dW9uZywgb25nIEx1dSBEaW5oIFRhbSwgUGhvIEJpIHRodSBEYW5nIHV5IHhhIGNobyANCnJh bmcgY2hpbmggcXV5ZW4gcmF0IGtobyBxdWFuIGx5IHZpZWMgbmdhbSBuZ2FtIHRyYW8gZG9pIGNo dXllbiBuaHVvbmcgY2FjIGhvIHZvaSANCm5oYXUgbmVuIGtob25nIHh1IGx5IGR1b2MuDQoNCkR1 IGx1YW4gZGF0IGNhdSBob2ksIHZpIHNhbyBoYW5nIHRyYW0gdHJ1b25nIGhvcCB2aSBwaGFtIGRh dCBkYWksIHRyYXQgdHUgeGF5IGR1bmcgeGF5IHJhIA0KdGFpIFNvbmcgUGh1b25nIGdheSBidWMg eHVjIGR1IGx1YW4gZGEgZHVvYyB0aGFuaCBraWVtIHRyYSB2YSBjbyBrZXQgbHVhbiBjdWEgVGhh bmggDQp0cmEgaHV5ZW4gSG9haSBEdWMgbWEgdmFuIG5nYW5nIG5oaWVuIHRvbiB0YWkgbmhpZXUg bmFtIHF1YT8gTWF0IGtoYWMsIGhhbmcgY2h1YyANCmhlY3RhIGRhdCBub25nIG5naGllcCBkdW9j IGNhYyB0byBjaHVjLCBjYSBuaGFuIGRhdSBjbyB4YXkgdHVvbmcgYmFvIGJvIGhvYW5nIGdheSBs YW5nIA0KcGhpLCBraG9uZyBkdW9jIGNoaW5oIHF1eWVuIGRpYSBwaHVvbmcgY28gYmllbiBwaGFw IHh1IGx5IGtpcCB0aG9pLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdl cy8yMDEwMzEvMjAxMDA3MjgwMDU0NDMuYXNweCBUcmFuIERhbiAtIFRoYWkgVXllbiAyOC8wNy8y MDEwIDA6NTQgDQoNCkhhIE5vaTogTmh1bmcgY29uZyB0cmluaCBsYW5nIHBoaSAtIEhhbSBkdW9u ZyBibyAiY3VhIGRvbmcgdGhlbiBjYWkiICANCiAgDQooQW5oIGNodXA6IEN1YSBoYW0gZGkgYm8g bmF5IGJpIGtob2EsIG5ndW9pIGRpIGJvIGtob25nIGNvbiBjYWNoIG5hbyBraGFjIGxhIGJ1b2Mg DQpwaGFpIGJhbmcgcXVhIGR1b25nIC0gQW5oOiBUcmFuIERhbikNCg0KUmF0IG5oaWV1IGhhbSBk YW5oIGNobyBuZ3VvaSBkaSBibyBxdWEgZHVvbmcgZHVvYyBkYXUgdHUgeGF5IGR1bmcgZGUgZ2lh aSBxdXlldCANCnRpbmggdHJhbmcgZ2lhbyB0aG9uZyBkb25nIGR1YywgbG9uIHhvbiB0YWkgSGEg Tm9pLCBuaHVuZyB4YXkgeG9uZyB0aGkgImN1YSBkb25nIA0KdGhlbiBjYWkiLCBnYXkgbGFuZyBw aGkgbmdoaWVtIHRyb25nLi4uIA0KDQpOYW0gMjAwMSwgZHUgYW4gZHVvbmcgdmFuaCBkYWkgMyBv IEhhIE5vaSBraG9pIGRvbmcsIGNodSBkYXUgdHUgZHUgYW4gbGEgQmFuIHF1YW4gDQpseSAoQlFM KSBkdSBhbiBUaGFuZyBMb25nLiBHaWFpIGRvYW4gMSBjdWEgZHUgYW4gZ29tIGNhYyB0cnVjIGR1 b25nIHR1IG51dCBnaWFvIA0KTWFpIERpY2ggZGVuIExpbmggRGFtLCB0cm9uZyBkbyBuaHVuZyBo YW0gZGFuaCBjaG8gbmd1b2kgZGkgYm8gbGFuIGRhdSB0aWVuIHh1YXQgaGllbiBvIEhhIE5vaS4g DQoNCk1vaSBjYW4gaGFtIG5odSB0aGUgcGhhaSBkYXUgdHUga2hvYW5nIDIsNSAtIDMgdGkgZG9u Zy4gQmFuIGRhdSBjaGkgY28gNiBoYW0gdHUgDQpkdW9uZyBQaGFtIEh1bmcgZGVuIGR1b25nIFRy YW4gRHV5IEh1bmcuIEhhbSByb25nLCBjbyBiYWMgdGhhbmcgbGVuIHh1b25nIHZhIGhlIA0KdGhv bmcgY2hpZXUgc2FuZyBkYW0gYmFvLiBMdWMgbW9pIGR1YSB2YW8gc3UgZHVuZywgY2EgY2h1IGRh dSB0dSBsYW4gbmhhIHRoYXUgDQp0aGkgY29uZyBkZXUgdHUgdGluIHNlIGNvIHJhdCBuaGlldSBu Z3VvaSBjaG9uIGRpIGJvIHF1YSBoYW0uIFRoZSBuaHVuZywgc2F1IDMgDQpuYW0ga2UgdHUga2hp IGhvYW4gdGF0LCBuaHVuZyBoYW0gbmF5IHZhbiBiaSBibyBob2FuZy4gRGVuIGtoaSBkdWEgdmFv IHN1IGR1bmcgDQpjaGluaCB0aHVjIGN1bmcgY2hhbmcgY28gbWF5IG5ndW9pIGRhbiBzdSBkdW5n LiBUaGFtIGNoaSwgdmkgcXVhLi4uIGUsIG5oaWV1IGhhbSANCnRyZW4gdHV5ZW4gZHVvbmcgUGhh bSBIdW5nIHN1b3QgbmdheSB0aGVuIGNhaSBjdWEgZG9uZy4NCg0KVGhlbyBraGFvIHNhdCBjdWEg VGhhbmggTmllbiB0cm9uZyBidW9pIGNoaWV1IDIzLjcsIHRhaSBoYW0gdHJ1b2MgY3VhIEJlbiB4 ZSBNeSBEaW5oIA0KdmEgaGFtIGRvaSBkaWVuIHNpZXUgdGhpIEJpZyBDIFRoYW5nIExvbmcgKDIy MiBUcmFuIER1eSBIdW5nKSB0aGkgbGFjIGRhYyBjbyBuZ3VvaSBkaS4gDQpDb24gbGFpLCBoZSB0 aG9uZyBoYW0gZGFuIHR1IGRhdSBkdW9uZyBQaGFtIEh1bmcsIGRvYW4gZ2FuIGNhdSB2dW90IHNh bmcgbGFuIGR1b25nIA0KZG9pIGRpZW4gcGhpYSBjaG8gRGljaCBWb25nIEhhdSBiaSBraG9hIGN1 YS4gSGFtIHRydW9jIGN1YSBWaWV0dGVsIFRlY2hub2xvZ3kgZ2FuIA0KVHJ1bmcgdGFtIEhvaSBu Z2hpIHF1b2MgZ2lhIHRyZW4gZHVvbmcgUGhhbSBIdW5nIGN1bmcgdHJvbmcgdGluaCB0cmFuZyBk b25nIGN1YS4gDQoNCk5vaSBvIGN1YSBuZ3VvaSB2byBnaWEgY3UNCg0KQ2hpIEhhbmgsIG5oYW4g dmllbiBDb25nIHR5IENQIGNvbmcgdHJpbmggZ2lhbyB0aG9uZyAyIEhhIE5vaSwgZGFuZyB0cnVj IGhhbSBkb2kgDQpkaWVuIHNpZXUgdGhpIEJpZyBDIGNobyBiaWV0OiAiTmdvaSB0cnVjIHRhaSBk YXksIGRlbiBtYWMgYmVuaCB0dSBreSBtYXQgdGhvaS4gDQpDbyBraGkgdG9pIG5nb2kgaG9uIDEg dGllbmcgZG9uZyBobyBtYSBjaGFuZyB0aGF5IGFpIGRpIHF1YSBjYS4gVGhlIG5lbiwgY28gYmFv IA0KbmhpZXUgbmd1b2kgaGF5IGRpIHF1YSBoYW0sIHRvaSBkZXUgbmhhbiBtYXQsIHRoYW0gY2hp IG5hbSBkdW9jIGNoaW5oIHhhYyBjYSB0aG9pIGdpYW4iLg0KDQpRdWEgbmdhIHR1IFBoYW0gSHVu ZyAtIEtodWF0IER1eSBUaWVuIC0gVHJhbiBEdXkgSHVuZyAtIGNhbyB0b2MgTGFuZyAtIEhvYSBM YWMgDQpjdW5nIGNvIDIgaGFtLiBUaGUgbmh1bmcgY2EgaGFpIGRldSBiaSBhaSBkbyBkdW5nIHJh byB0cmUgcXVheSBraW4uIFRoZW8gbG9pIGtlIA0KY3VhIGNoaSBIYW5oLCBjYWNoIGRheSBraG9u ZyBsYXUgbW90IHRyb25nIHNvIG5odW5nIGhhbSB0cmVuIGR1b25nIFBoYW0gSHVuZyANCmNvbiB0 cm8gdGhhbmggbmhhIG8gY3VhIG1vdCBjYXAgdm8gY2hvbmcuICJQaG9uZyBuZ3UgY28gZGF5IGR1 IHRpZW4gbmdoaTogZ2l1b25nLCANCnR1LCB0aXZpLCBxdWF0IGRpZW4gdmEga2h1IGJlcCByaWVu ZyBiaWV0LiBOaHVuZyB2aSAibGVuIGJhbyIgbmhpZXUgcXVhLCBuZW4gaG8gDQpiaSBkdW9pIGRp LiBHaW8gdGhpIDQgY2FpIGN1YSBoYW0gKDIgY2FpIHBoaWEgZHVvbmcgUGhhbSBIdW5nLCAyIGNh aSBwaGlhIGdhbiANCmNobyBEaWNoIFZvbmcgSGF1IC0gUFYpIGRldSBiaSBraG9hLiBEdSB0aGUs IHRoaW5oIHRob2FuZyB2YW4gY28ga2UgZG90IG5oYXAgDQp2YW8gaGFtLCBkZSBwaG9uZyB1ZSB2 YS4uLiB0aWVtIGNoaWNoLCBodXQgaGl0IiwgY2hpIEhhbmgga2UuDQoNCkFuaCBjaHVwOiB2YW8g dGhhbmcgMTAuMjAwOSwgY2FuIGhhbSBkdW9uZyBibyB0cmVuIGR1b25nIFBoYW0gSHVuZyBuYXkg Y29uIGxhIA0Kbm9pIG8gY3VhIG1vdCBjYXAgdm8gY2hvbmcuIFRyb25nICJuaGEiIGNvIGR1IHRp ZW4gbmdoaTogdHUgZ2l1b25nLCBxdWF0IGRpZW4sIA0KdGl2aSwgYmVwIGdhcywgbm9pIGNvbSBk aWVuLi4uIC0gQW5oOiBUcmFuIERhbg0KDQpUaGFtIGNoaSwgbW90IHRyb25nIG5odW5nIGhhbSBk dW9uZyBibyBoaWVuIGRhaSBuaGF0IEhhIE5vaSBiYXkgZ2lvLCBjbyB2b24gZGF1IA0KdHUgbGVu IGRlbiBnYW4gMS41MDAgdGkgZG9uZyBsYSBoYW0gZHVvbmcgYm8gTmdhIFR1IFNvIGxhaSB0cm8g dGhhbmggZGllbSB2dWkgDQpjaG9pLCB0YXAgeGUgZGFwLi4uIGN1YSBuZ3VvaSBkYW4gdGh1IGRv LiBIYW0gImUiIGtoYWNoLCBwaGFuIHZpIGNvIHF1YSBuaGlldSANCmN1YSBsZW4geHVvbmcgKDEy IGN1YSksIHZhIGJhbmcgY2hpIGRhbiBsYWkga2hvbmcgcm8gcmFuZy4gTmd1eWVuIFRoaSBMYW4g KFNWIA0KREggVGh1eSBsb2kgdHJvIHRhaSBUcnVvbmcgQ2hpbmgpIGtlOiAiRW0gZGkgY2hvIE5n YSBUdSBTbyBjaG9pLCBsdWMgdmUgZGkgaGFtIA0KZHVvbmcgYm8gZGUgbGVuIGR1b25nIFRydW9u ZyBDaGluaC4gTmh1bmcgZW0gbmhpbiB0aGF5IDIgYmllbjogMSBkZSBUcnVvbmcgQ2hpbmggDQot IFRheSBTb24sIDEgZGUgVHJ1b25nIENoaW5oIC0gTmd1eWVuIFRyYWkgLSBMYW5nLCBsb2FuZyBu Z29hbmcga2hvIGhpZXUgcXVhLCANCmhvaSBiYWMgYmFvIHZlIHRydWMgaGFtIG1hIHZhbiBiaSBz YWkgY3VhIGxlbi4gQ3VvaSBjdW5nIGVtIGNoYW5nIGJpZXQgZGkgbmh1IA0KdGhlIG5hbywgZGFu aCBxdWF5IGxlbiwgZGkgcXVhIGR1b25nIiwgDQoNCkRvbmcgY3VhIGRlLi4uIGNob25nIGh1IGhv bmchDQoNCkNhdSBob2kgZGF0IHJhIGxhIHRhaSBzYW8gaGFtIGR1b25nIGJvIHZhIG5odW5nIGNh eSBjYXUgdnVvdCB2YW4gbWluaCwgaGllbiBkYWkgDQpuaHUgdGhlIGxhaSBiaSBibyBob2FuZywg aG9hYyBuZXUgY28gc3UgZHVuZyB0aGkgaGlldSBxdWEga2hvbmcgY2FvLCBnYXkgbGFuZyANCnBo aSB0aWVuIGN1YSwgY29uZyBzdWMgeGF5IGR1bmc/IFRyb25nIGtoaSBtb2kgbmdheSwgbyBIYSBO b2kgY28ga2hvbmcgaXQgbmh1bmcgDQp2dSB0YWkgbmFuIGdpYW8gdGhvbmcgbWEgdGh1IHBoYW0g KHZhIGN1bmcgY28gdGhlIGxhIG5hbiBuaGFuKSBjaGluaCBsYSBuZ3VvaSBkaSBibyBzYW5nIGR1 b25nLiANCg0KIlZhbiBkZSBkYXQgcmEga2hvbmcgcGhhaSB4YXkgZHVuZyBuaHVuZyBnaSBtYSBs YSBzYXUga2hpIHhheSBkdW5nIHhvbmcgc2UgcXVhbiANCmx5IG5odSB0aGUgbmFvLiBUb2kgZGEg dHVuZyBzYW5nIE5hbSBOaW5oIChUcnVuZyBRdW9jKSwgdGhheSBoYW0gZGkgYm8gdmEgY2F1IA0K dnVvdCBjdWEgbmd1b2kgdGEgaG9hdCBkb25nIHJhdCBoaWV1IHF1YS4uLiIsIGFuaCBOZ3V5ZW4g VmFuIER1bmcgKG5nbyAxNjYgVHJhbiANCkR1eSBIdW5nLCBRLkNhdSBHaWF5KSBkdW5nIGRvaSB4 ZSB0YWkgQmVuIHhlIE15IERpbmggYmF5IHRvLiBUaGVvIHF1YW4gZGllbSBjdWEgDQphbmggRHVu ZywgY2FuIHBoYWkgZGF1IHR1IG1vdCBjYWNoIGRvbmcgYm8gY2FjIGNvbmcgdHJpbmgsIGNhaSBu byBobyB0cm8gY2FpIGtpYSANCm1vaSBtb25nIHN1IGR1bmcgaGlldSBxdWEsIHRyYW5oIGxhbmcg cGhpLg0KDQpUcmEgbG9pIFRoYW5oIE5pZW4sIG9uZyBUcmFuIFF1b2MgVmlldCwgQ3VjIHRydW9u ZyBDdWMgUXVhbiBseSB4YXkgZHVuZyB2YSBjaGF0IA0KbHVvbmcgY29uZyB0cmluaCBnaWFvIHRo b25nIC0gQm8gR1RWVCwgY2hvIHJhbmcgbmhpZXUgaGFtIGR1b25nIGJvIHRhaSBraHUgdnVjIFRQ IA0KSGEgTm9pIGR1b2MgZGF1IHR1IHhheSBkdW5nIG8gbmhpZXUgdGhvaSBkaWVtIGtoYWMgbmhh dS4gRGVuIG5heSBuaGlldSBoYW0gdmFuIA0KY2h1YSBkdW9jIGJhbiBnaWFvIGRlIGtoYWkgdGhh YyBzdSBkdW5nIHZpIHRodSB0dWMgaG9hYyBjYWMgaGEgdGFuZyBrZW0gdGhlbyBjaHVhIA0KeG9u Zy4gT25nIFZpZXQgY2hvIHJhbmc6ICJDYSBoZSB0aG9uZyBkdW9uZyBob2FjIGhhbSBwaGFpIGhv YW4gdGhpZW4gZG9uZyBibyB0aGkgDQp2aWVjIGtoYWkgdGhhYyBtb2kgY28gaGlldSBxdWEiLg0K DQpNb3QgY2FuIGJvIGNvIHRyYWNoIG5oaWVtIHRodW9jIEJRTCBUaGFuZyBMb25nLCBjaHUgZGF1 IHR1IGN1YSBoZSB0aG9uZyBoYW0gZHVvbmcgDQpibyB0cmVuIGR1b25nIHZhbmggZGFpIDMgLSBI YSBOb2ksIGN1bmcgeGFjIG5oYW4gbmhpZXUgaGFtIHRyZW4gdHV5ZW4gZHUgZGEgaG9hbiANCnRo aWVuIG5odW5nIGNodWEgYmFuIGdpYW8gYm9pIG5oaWV1IGx5IGRvIGtoYWMgbmhhdS4gQ3UgdGhl LCA2IGhhbSB0cmVuIGR1b25nIFBoYW0gDQpIdW5nLCBkb2FuIHR1IFRydW5nIEhvYSBkZW4gTWFp IERpY2gsIGRhIGhvYW4gdGhhbmggdHUgcmF0IGxhdSBuaHVuZyBjaGkgY28gNCBoYW0gDQpkdW9j IGJhbiBnaWFvLCAyIGhhbSBjb24gbGFpIGRhbmcgcGhhdCBzaW5oIG1vdCBzbyB2dW9uZyBtYWMg dmUgZ2lhaSBwaG9uZyBtYXQgYmFuZy4gDQpUdW9uZyB0dSwgY2FjIGhhbSB0cmVuIHR1eWVuIHZh bmggZGFpIDMgdHUgVGhhbmggWHVhbiAtIExpbmggRGFtIGRhbmcgdHJvbmcgZ2lhaSBkb2FuIA0K aG9hbiB0aGllbiB2ZSBobyBzbyB0aHUgdHVjLiBEbyBjaHVhIGR1b2MgYmFuIGdpYW8gbmVuIG5o aWV1IGhhbSBkYW5nIHBoYWkgImN1YSBkb25nIA0KdGhlbiBjYWkiIGRlIGNob25nIG1hdCBtYXQg aG9hYyBodSBob25nIHRhaSBzYW4gdHJvbmcgaGFtLCBkdSB0YWkgY2FjIGhhbSBuYXkgZGV1IA0K Y28gbHVjIGx1b25nIGJhbyB2ZSB0aHVvbmcgeHV5ZW4gdHVjIHRydWMuLi4gDQoNCmh0dHA6Ly93 d3cubGFvZG9uZy5jb20udm4vVGluLXR1Yy9PLVF1YW4tQ2h1b25nLWJpLW1hdC1ob24tY290LzE4 Njc2IER1b25nIEhhaSAzMC4xMC4yMDEwIDIyOjAzIChHTVQgKyA3KSANCg0KSGEgTm9pOiBUdSBi byBkaSB0aWNoIC0gTyBRdWFuIENodW9uZyBiaSBtYXQgImhvbiBjb3QiIA0KDQooTERPKSCWIE8g UXVhbiBDaHVvbmcgbGEgY3VhIG8gY28gZHV5IG5oYXQgY29uIHNvdCBsYWkgY3VhIHRodSBkbyBI YSBOb2kgbmdoaW4gbmFtIA0KdmFuIGhpZW4uIFRoZSBuaHVuZyB2aWVjIHR1IGJvLCBwaHVjIGhv aSBkaSB0aWNoIG5heSBraGllbiBuaGlldSBuZ3VvaSBraG9uZyBraG9pIGJhbiANCmtob2FuOiBE aSB0aWNoIGRhbmcgYmkgInRyZSBob2EiLg0KDQpPIFF1YW4gQ2h1b25nIGhheSBjb24gZ29pIGxh IG8gRG9uZyBIYSwgbGEgY3VhIG8gY3VhIEhhIE5vaSB4dWEgbmFtIG8gcGhpYSBEb25nIA0KdG9h IHRoYW5oIGRhdCBiYW8gcXVhbmgga2luaCB0aGFuaCBUaGFuZyBMb25nLiBDb25nIG8gY29uIG5n dXllbiB0YW0gcXVhbiB2b2kgY3VhIA0KY2hpbmgsIGhhaSBjdWEgcGh1IGhhaSBiZW4uIERheSBs YSBtb3QgdHJvbmcgMjEgY3VhIG8gY29uIHNvdCBsYWkgY3VhIHRoYW5oIFRoYW5nIExvbmcgDQpj dS4gRGFuIGdpYW4gY28gY2F1OiAiTG9uZyBUaGFuaCBiYW8gcXVhbiBuYW5nIG11YS8gQ3VhIE8g UXVhbiBDaHVvbmcgYmF5IGdpbyBjb24gDQpkYXkiIGNobyB0aGF5IHN1IHRydW9uZyB0b24gY3Vh IG1vdCBjb25nIHRyaW5oIGtpZW4gdHJ1YyBjby4NCg0KKEFuaDogVmUgZGVwIGNvIGtpbmgsIHJl dSBwaG9uZyBjdWEgTyBRdWFuIENodW9uZyB0cnVvYyBraGkgdHUgYm8uIEFuaCBJbnRlcm5ldC4p IA0KDQpOZ2F5IG5heSwgTyBRdWFuIENodW9uZyB0b2EgbGFjIGRhdSBwaG8gSGFuZyBDaGlldSwg Z2FuIGR1b2kgY2hhbiBjYXUgQ2h1b25nIA0KRHVvbmcgdmEgZGEgZHVvYyBOaGEgbnVvYyB4ZXAg aGFuZyBkaSB0aWNoIGxpY2ggc3UuDQoNCihBbmg6ICJDaGllYyBhbyB2YW5nIiBtb2kgdG9hbmgg ZGFuZyBsYW0gInRyZSBob2EiIGRpIHRpY2guKSANCg0KRHUgYW4gdHUgYm8sIGtoYWMgcGh1YyBz dSB4dW9uZyBjYXAgY3VhIGN1YSBvIGRvIEJhbiBxdWFuIGx5IERpIHRpY2ggZGFuaCB0aGFuZyBI YSANCk5vaSBwaG9pIGhvcCB2b2kgVmllbiBCYW8gdG9uIGRpIHRpY2ggdGh1YyBoaWVuIHZvaSB0 b25nIGtpbmggcGhpIGxlbiB0b2kgaG9uIDcwLjAwMCANClVTRC4gRGF5IGxhIG1vbiBxdWEgbWEg UXV5IEJhbyB0b24gVmFuIGhvYSBjdWEgRGFpIHN1IHF1YW4gSG9hIEt5IHRhaSBWaWV0IE5hbSAN CmRhbmggdGFuZyB0aHUgZG8gSGEgTm9pIHRyb24gMS4wMDAgbmFtIHR1b2kuDQoNCkhpZW4sIHZp ZWMgcGh1YyBob2ksIHR1IGJvIGN1YSBvIG5heSBkYSBob2FuIHRoYW5oLiBTb25nLCBuaGlldSBu Z3VvaSBjaG8gcmFuZywgZGkgdGljaCANCmN1YSBvLi4uIG1vaSBxdWEhICJOZXQgY28ga2luaCwg cmV1IHBob25nIHRyZW4gYmUgbWF0IGtob25nIGNvbiBuaHUgdmUgZGVwIHZvbiBjbyBjdWEgDQpu by4gTmd1b2kgdGEgYm9pIHRyYXQgbGFtIGN1YSBvICJub24iIGRpIHRyb25nIHRoYXkiIC0gbW90 IG5ndW9pIGRhbiBiYW4gaGFuZyB0cmVuIHBobyANCkhhbmcgQ2hpZXUgY2hvIGhheS4NCg0KKEFu aDogS2hpZW4gbmd1b2kgZGFuIHF1YSBsYWkgY3VuZyBwaGFpIG5nbyBuZ2FuZyEpIA0KDQpUdSBi bywgcGh1YyBob2kgZGkgdGljaCBsYSB2aWVjIGxhbSBjYW4gdGhpZXQgZGUga2hhYyBwaHVjIG5o dW5nIGh1IGhhaSBkbyB0aG9pIGdpYW4gZ2F5IA0KcmEuIFR1eSBuaGllbiwgZ2FuIGRheSB0b24g dGFpIG1vdCB0aHVjIHRyYW5nIGRhbmcgYmFvIGRvbmcsIG5oaWV1IGNvbmcgdHJpbmggc2F1IGto aSANCnBodWMgaG9pIGRhIGtob25nIGNvbiBnaXUgbmd1eWVuIGdvYywgdGhhbSBjaGkgInRoYXkg ZGEgZG9pIHRoaXQiIGNoaSB0cm9uZyB0aG9pIGdpYW4gbmdhbi4NCg0KTmh1bmcgaGluaCBhbmgg UFYgTGFvZG9uZy5jb20udm4gZ2hpIGxhaSBkdW9jIHZlIGN1YSBvIGR1eSBuaGF0IGNvbiBzb3Qg bGFpIGN1YSBkYXQgVGhhbmcgTG9uZy4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhv aS8yMDEwMTAvSGEtTm9pLUhvLXR1LXRoYW4taGEtbW9tLWNoby14ZS1idXl0LTk0NDEyMC8gUGh1 IFRoYWkgMDk6MzMsIDI0LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEhvICJ0dSB0aGFuIiBo YSBtb20gY2hvIHhlIGJ1eXQNCg0KWHVhdCBoaWVuIHZvaSBtYXQgZG8uLi5kYXkgZGFjLCBoYW5n IGxvYXQgaG8gInR1IHRoYW4iIGRhbmcgaGEgbW9tIGRvbiBsb25nIG5odW5nIA0KY2h1eWVuIHhl IGJ1eXQgdHJlbiBkdW9uZyBOZ3V5ZW4gVHJhaSAocXVhbiBUaGFuaCBYdWFuLCBIYSBOb2kpLg0K DQpOZ2F5IGtoaSBxdWEga2hvaSBjYXUgdnVvdCBuZ2EgdHUgU28sIG5odW5nIGhvICJ0dSB0aGFu IiBkYSBiYXQgZGF1IHh1YXQgaGllbiwgdHJlbiBsYW4gDQpkdW9uZyBkYW5oIGNobyB4ZSBidXl0 LCBjaGF5IGtlbyBkYWkgbWFpIHZlIHBoaWEgdHJ1b25nIERhaSBob2MgS0hYSCZOViBIYSBOb2ku DQoNClRodWMgY2hhdCwgZGF5IGxhIG5odW5nIG1pZW5nIGhvIGdhIGxvbiwgZGEgYmkgYm9uZywg dm8sIHN1cC4uLmhldCBwaGFuIGJlIHRvbmcuIE1pZW5nIA0KaG8gZHUgbG9uIGRlIG51b3QgY2h1 bmcgYmFuaCB4ZSBidXl0IG5ldSBjaGFuZyBtYXkgc2EgdmFvLiBOZ3VvaSBkYW4gZGEgc3UgZHVu ZyANCm5oaWV1IHZhdCBjYW5oIGJhbyBuaHUgY2FuaCBjYXksIGtob2kgYmUgdG9uZy4uLiBjaGFu IHRydW9jIG1pZW5nIGhvIGJhbyBoaWV1IGNobyBjYWMgDQp0YWkgeGUgeGUgYnV5dCB2YSBuZ3Vv aSB0aGFtIGdpYSBnaWFvIHRob25nIGJpZXQgZGUgdHJhbmguDQoNCkRhbmcgbm9pLCBraG9uZyBw aGFpIGxhIDEgaGF5IDIgbWllbmcgaG8gZ2EgYmkgdm8gbWEgY28gZGVuIGhhbmcgY2h1YyBjaGll YyBsaWVuIHRpZXAsIA0KeGF5IHJhIHRpbmggdHJhbmcgZ2lvbmcgbmhhdTogY2FpIHRodXQgc2F1 IHh1b25nIHNvIHZvaSBtYXQgZHVvbmcsIGNhaSB2byBuYXQgYmUgYmV0Li4uDQoNCkFuaCBIdW5n LSBtb3QgdGFpIHhlIHhlIGJ1eXQgY3VhIEhhbm9pYnVzIG5vaTogQmFuIG5nYXkgY2h1bmcgdG9p IGNvbiBjbyB0aGUgcXVhbiBzYXQgDQpybyBuaHVuZyBjYWkgaG8gbmF5IG1hIHRyYW5oLCBuaHVu ZyBidW9pIHRvaSwgdmllYyBsdW9uIGxhY2ggY2EgY2FpIHhlIHRvIHRoZSBuYXkgcXVhIGFuIA0K dG9hbiBkdW9jIGNodW5nIGxhIGNhIG1vdCB2YW4gZGUuDQoNCkhvICJ0dSB0aGFuIiBjaGkgeHVh dCBoaWVuIHRyZW4gZHVvbmcgTmd1eWVuIFRyYWkgdGhlbyBjaGlldSB0dSBuZ2EgdHUgU28tIEhh IERvbmc7IA0KbGFuIGR1b25nIGRhbmggY2hvIHhlIGJ1eXQgdGhlbyBjaGlldSBuZ3VvYyBsYWkg dGhpIGxhaSBob2FuIHRvYW4gYmluaCB0aHVvbmcuDQoNCihBbmg6IE1vdCBobyAidHUgdGhhbiIg ZGFuZyBoYSAibW9tIiBkb2kgeGUgYnV5dCBjaGF5IHF1YS4pIA0KKEFuaDogUGhhbiBuYXAgZGF5 IGJhbmcgYmUtdG9uZyBkYSB2byBuYXQsIHBobyBoZXQgImdhbiBydW90IiBiZW4gdHJvbmcuIFhl IGJ1eXQgY2hheSBxdWEsIGtob25nIHN1dCBobyB0aGkgY3VuZyB0aHVuZyBiYW5oIHZvaSBuaHVu ZyBsb2kgdGhlcCBiZS10b25nIHRoZSBuYXkuKSANCihBbmg6IENhaSB2byBpdCwgY2FpIHZvIG5o aWV1LCB2YW4gZGUgY2hpIGxhIHRob2kgZ2lhbiB0cnUgZHVvYyB0aGVtIGJhbyBsYXUgdHJ1b2Mg a2hpIGJpIHNhcCBob2FuIHRvYW4/KSANCihBbmg6IEJhbmggdHJ1b2MgY3VhIHhlIGJ1eXQgbmF5 IGRhIGRlIGR1bmcgdmFvIG5hcCAxIGhvIGdhLikgDQooQW5oOiBEbyBjaGF0IGx1b25nIGtlbSwg bGFpIG5hbSBkdW5nIHZldCB4ZSBidXl0IGNoYXkgcXVhIG5lbiBtYXQgYmUtdG9uZyBjdWEgY2Fj IGhvIGdhIG5oYW5oIGNob25nIHZvLCBudXQsIHN1dCkgDQooQW5oOiBDaG8gbmF5IHRoYW0gY2hp IGNvbiBraG9uZyBjbyBobyBnYSBjdW5nIGJpIHN1dCBsdW4pDQooQW5oOiBOaGlldSBuZ3VvaSBk aSB4ZSBtYXksIHhlIGRhcCBsYW4gY2EgdmFvIGR1b25nIHhlIGJ1eXQsIHZvIGhpbmggY2h1bmcg bmh1bmcgY2hpZWMgaG8gInR1IHRoYW4iIG5heSBjYW5nIHRoZW0gcGhhbiBuZ3V5IGhpZW0uKSAN CihBbmg6IEhvIG5heSB2byBxdWEgdG8sIG5ndW9pIGRhbiBwaGFpIGNoYW4gY2EgMiBkYXUgaG8g YmFuZyBuaGlldSB0aHUga2hhYyBuaGF1LiApDQooQW5oOiBOaGluIHR1IHBoaWEgbmFvIGN1bmcg ZGV1IG5ndXkgaGllbS4gKQ0KKEFuaDogSG8gInR1IHRoYW4iIG5heSBuYW0gY2FjaCBiZW4geGUg YnV5dCBraG9uZyB4YSwgY2hpZWMgeGUgZGF1IHRpZW4gY2hheSBxdWEga2hvbmcgdmFuIGRlIGdp Li4uDQouLi4uLm5odW5nIGNoaWVjIHRodSAyIHRoaSBzdXl0IGNoZXQgYmFuaCBzYXUgdHJ1bmcg aG8uICkNCihBbmg6IE5odW5nIGNoaWVjIGhvIG5heSBzZSBjYW5nIG5ndXkgaGllbSBob24ga2hp IG1hbiBkZW0gYnVvbmcgeHVvbmcuICkNCihBbmg6IENhbiBjYW5oIGJlIG1hdCBtb3QgaG8gInR1 IHRoYW4iIGRhIHZvIG5hdC4gKQ0KKEFuaDogVGFpIG5hbiBjbyB0aGUgeGF5IHJhIGJhdCBjdSBr aGkgbmFvIHRyZW4gcXVhbmcgZHVvbmcgbmF5LikgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNv bS52bi9OZXdzL1BhZ2VzLzIwMTA0Ny8yMDEwMTEyMDAwNDQyMC5hc3B4IFRoYWkgU29uIDIwLzEx LzIwMTAgMDo0NCANCg0KSGEgbm9pOiBQaG8gYmkgdGh1IEh1eWVuIHV5IFNvYyBTb24gYmkgaGFu ZyBuZ2FuIG5ndW9pIGRhbiBiYW8gdmF5ICANCiAgDQpDaG8gZGVuIGhvbiAyMiBnaW8gZGVtIHF1 YSwgb25nIFZ1b25nIFZhbiBCdXQgLSBQaG8gYmkgdGh1IEh1eWVuIHV5IFNvYyBTb24gKEhhIA0K Tm9pKSB2YW4gYmkgaGFuZyBuZ2hpbiBuZ3VvaSBkYW4gYmFvIHZheSB2YSBnaXUgbGFpIHRhaSB0 cnUgc28gVUJORCB4YSBNaW5oIFBodS4gDQoNClRydW9jIGRvLCB2YW8ga2hvYW5nIDggZ2lvIGN1 bmcgbmdheSwgb25nIEJ1dCBjdW5nIG1vdCBzbyBjYW4gYm8gSC5Tb2MgU29uIGRlbiANClVCTkQg eGEgTWluaCBQaHUgaG9wIHZlIHZpZWMgeGF5IGR1bmcgbmdoaWEgdHJhbmcgY29uZyB2aWVuIFZp bmggSGFuZyB0cmVuIGRpYSBiYW4gDQp4YSB0aGkgZGFuIGtlbyBkZW4gcGhhbiBkb2kuIFNhdSBk byBuaGlldSBuZ3VvaSBkYW4gZGEgbG9pIG1vdCBzbyBjYW4gYm8gdmEgb25nIEJ1dCB2YW8gDQpo YWkgY2FuIHBob25nIHRyb25nIHRydSBzbyBVQk5EIHhhLiANCg0KRGVuIGRhdSBnaW8gY2hpZXUs IG1vdCBzbyBjYW4gYm8gaHV5ZW4gY28gZGF1IGhpZXUga2lldCBzdWMgbmVuIGR1b2MgdGhhIHJh LiBSaWVuZyBvbmcgDQpCdXQgdmFuIHRpZXAgdHVjIGJpIGdpdSBsYWkgdmEgYmkgZ2F5IGFwIGx1 YyB5ZXUgY2F1IHBoYWkga3kgdmFvIGJpZW4gYmFuIGNodW5nIG5oYW4gY28gDQpzdSB2YSBjaGFt IGdpdWEgY2FuIGJvIHZvaSBuZ3VvaSBkYW4gdmEga2llbiBuZ2hpIGtob25nIGR1b2MgeGF5IGR1 bmcgbmdoaWEgdHJhbmcgDQpjb25nIHZpZW4gVmluaCBIYW5nIHRyZW4gZGlhIHBoYW4geGEgdmkg c2UgYW5oIGh1b25nIG5naGllbSB0cm9uZyBkZW4gbmd1b24gbnVvYyANCnNpbmggaG9hdC4gDQoN ClRoZW8gZ2hpIG5oYW4gY3VhIFRoYW5oIE5pZW4sIGRlbiAyMCBnaW8gc28gbmd1b2kgYmFvIHZh eSB0cnUgc28geGEgZGEgbGVuIGRlbiBoYW5nIA0Kbmdhbi4gTHVjIGx1b25nIGNvbmcgYW4gY3Vu ZyBkdW9jIGh1eSBkb25nIGRlbiBkZSBkZSBwaG9uZyB4YXkgcmEgc3UgdmllYyBkYW5nIHRpZWMu IA0KVHJhbyBkb2kgdm9pIFRoYW5oIE5pZW4sIG1vdCBjYW4gYm8gQ29uZyBhbiBILlNvYyBTb24g dGhhbSBnaWEgZ2l1IGdpbiB0cmF0IHR1IGNobyANCmJpZXQsIGdpdWEgaGFpIGJlbiBjaGkgZG9p IHRob2FpIG9uIGhvYS4gRHUgcmF0IG1ldCBtb2kgbmh1bmcgb25nIEJ1dCB2YW4gdGllcCB0dWMg dGllcCANCnRodSB5IGtpZW4gbmd1b2kgZGFuIHZhIHRob25nIHF1YSBoZSB0aG9uZyBwaGF0IHRo YW5oIHhhLCBvbmcgY2FtIGtldCBzZSBwaGFuIGFuaCANCm5odW5nIHkga2llbiBjdWEgaG8gbGVu IGNoaW5oIHF1eWVuIHRoYW5oIHBoby4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhv aS8yMDEwMTEvSGEtTm9pLWR1bmctdm9uZy1ob2EtdGFuZy1raHVuZy1iby1uaGEtZ2lhbS1kb2Mt OTQ3NzIyLyBWLlQgKHRvbmcgaG9wKSAgMDU6MTEsIDE3LzExLzIwMTAgKEdNVCs3KQ0KDQpIYSBO b2k6IER1bmcgdm9uZyBob2EgImtodW5nIGJvIiBnaWFtIGRvYw0KDQpEZSB0aHVjIGhpZW4gaGFu aCB2aSBkZSBkb2EsIDIgZG9pIHR1b25nIGxhIG1hdCBkYSBtYW5nIHZvbmcgaG9hIGRlbiBkYXQg dGFpIG5oYSBtb3QgDQpnaWFtIGRvYyBvIHBobyBOZ3V5ZW4gUXVhbmcgQmljaCwgcXVhbiBIb2Fu IEtpZW0sIEhhIE5vaS4NCg0KVGhvbmcgdGluIHRyZW4gZHVvYyBtb3Qgc28gYmFvIGR1YSB2YW8g bmdheSAxNi8xMS4gVGhlbyBiYW8gTGFvIGRvbmcgdmEgSE5NLCBDQSANCnF1YW4gSG9hbiBLaWVt IGNobyBiaWV0IGRhIGJhdCBnaXUgMiBkb2kgdHVvbmcgdmUgaGFuaCB2aSBkZSBkb2EgZ2lhIGRp bmggbmd1b2kga2hhYywgDQpkb25nIHRob2kgdGFtIGdpdSBoYW5oIGNoaW5oIDMgZG9pIHR1b25n IGNvIGxpZW4gcXVhbi4NCg0KU3UgdmllYyBkaWVuIHJhIHZhbyBkZW0gMTQvMTEsIGtoaSBjbyBo YWkgdGhhbmggbmllbiBkaSB0cmVuIG1vdCB4ZSBtYXkgdmEgbWFuZyBtb3QgDQp2b25nIGhvYSB0 YW5nIGxlIGNvIGluIGRvbmcgY2h1ICJWbyBjdW5nIHRodW9uZyB0aWVjIGFuaCBIaWVwIFNvbiIg ZGF0IHRydW9jIGN1YSBuaGEgDQphbmggQ2FvIFF1YW5nIEhpZXAsIGhpZW4gbGEgZ2lhbSBkb2Mg Q29uZyB0eSBDbyBwaGFuIGtoYWNoIHNhbiBkdSBsaWNoIFBodW5nIEh1bmcuDQoNClRoZW8gYmFv IG5heSwgc2F1IGtoaSB2YW8gY3VvYywgY28gcXVhbiBkaWV1IHRyYSBkYSBiYXQgZHVvYyBoYWkg ZG9pIHR1b25nIG1hbmcgdm9uZyANCmhvYSBkZW4gbmhhIGFuaCBIaWVwIGxhOiBOZ3V5ZW4gRGlu aCBIYW8gKFNOIDE5ODgsIG8gdGhpIHRyYW4gSHVuZyBIYSwgVGhhaSBCaW5oKSB2YSANCkRhbmcg VmFuIEhhbyAoU04gMTk4OCwgTmdvYyBMYW0sIE15IEhhbywgSHVuZyBZZW4pLiANCg0KIkhhaSBk b2kgdHVvbmcgbmF5IGtoYWkgbmhhbiBsYSBuaGFuIHZpZW4gcXVhbiBLYXJhb2tlIFF1ZWVuLTEy MSBQaHVuZyBIdW5nLiBUaWVwIA0KdHVjIGRpZXUgdHJhLCBidW9jIGRhdSBjbyBxdWFuIGNvbmcg YW4gZGEgbGFtIHJvLCAgcXVhbiBLYXJhb2tlIFF1ZWVuLTEyMSBQaHVuZyBIdW5nIA0KbGEgZG8g YW5oIFRoYW5nIHZhIGFuaCBWaW5oIChjaHVhIHhhYyBkaW5oIGR1b2MgZGlhIGNoaSkgdGh1ZSBj dWEgQ29uZyB0eSBDbyBwaGFuIA0Ka2hhY2ggc2FuIGR1IGxpY2ggUGh1bmcgSHVuZyBjbyB0aG9p IGhhbiAyIG5hbS4gRGVuIG5heSBkYSBoZXQgaG9wIGRvbmcsIEN0eSBraG9uZyANCmNobyB0aHVl IG51YSwgZG9pIGxhaSBuaHVuZyBhbmggVGhhbmcgdmEgYW5oIFZpbmggbGFpIGNodWEgbXVvbiB0 cmEuIEN0eSB0cmVuIGRhIHRpZW4gDQpoYW5oIGNhdCBkaWVuLCBuZW4gYW5oIFRoYW5nIGRhIGNo aSBkYW8gaGFpIGRvaSB0dW9uZyB0cmVuIGRlbSB2b25nIGhvYSB0YW5nIGxlIGRlbiBkYXQgDQp2 b2kgbXVjIGRpY2ggZGUgZG9hIGFuaCBIaWVwLCB2aSBhbmggbmF5IGxhIEdpYW0gZG9jIENvbmcg dHkgY28gcGhhbiBraGFjaCBzYW4gZHUgbGljaCANClBodW5nIEh1bmciIC0gYmFuIHRpbiBjdWEg TGFvIGRvbmcgdmlldC4NCg0KQ3VuZyBkdWEgdGluIHZlIHZ1IG5heSwgVlRDIGRhbiBsYWkgdGhv bmcgdGluIHZlIGNhYyB2dSB2aWVjIHR1b25nIHR1IHR1bmcgeGF5IHJhIHRyZW4gDQpkaWEgYmFu IEhhIE5vaS4gTmFtIDIwMDUsIGNvIGRvaSB0dW9uZyBjdW5nIG1hbmcgdm9uZyBob2EgdGFuZyBk ZW4gRGFpIHBoYXQgdGhhbmggdmEgDQp0cnV5ZW4gaGluaCBIYSBOb2kgbmhhbSB0cmEgdGh1IG9u ZyBnaWFtIGRvYyBtb2kgbGVuIGNodWMuIFZhIG5hbSAyMDAyLCB0YWkgdHJ1b25nIA0KRGFpIGhv YyBLaW5oIHRlIFF1b2MgZGFuLCBvbmcgSGlldSB0cnVvbmcgY3VuZyBiaSBndWkgbW90IHZvbmcg aG9hIGRlbiB0cm9uZyBkaXAgVGV0IA0KTmd1eWVuIERhbi4gDQoNCk5hbSAxOTk5LCB0YWkgbW90 IGN1YSBoYW5nIG8gcGhvIEdpYW5nIFZvLCBjbyBkb2kgdHVvbmcgY29uIGd1aSBtb3QgcXVhbiB0 YWkgZGVuIGN1YSANCmhhbmcgdmkgc3UgY2FuaCB0cmFuaCBiYW4gaGFuZy4gQ2FjIHZ1IHZpZWMg bmF5IGNvIHF1YW4gY29uZyBhbiBkYSBsYW0gcm8gdm9pIG11YyBkaWNoIA0KdHJhIHRodSwgZGUg ZG9hLiBEYWMgYmlldCwgbW90IHZpIGxhbmggZGFvIFV5IGJhbiBWaWV0IGtpZXUgZGEgdHVuZyBi YXQgbmdvICJkdW9jIiBkYW5nIA0KYmFvIHRpbSBuZ3VvaSBsYWMgdGhhbiBraW5oIGJvIG5oYSBk aSBtYXQgdGljaC4NCg0KTW90IGN1IHZhIHRydSB0YWkgcGh1b25nIExhbmcgVGh1b25nLCBEb25n IERhLCBIYSBOb2kgY3VuZyB0dW5nIG5oaWV1IGxhbiBiaSBjYWMgZG9pIA0KdHVvbmcgbGEgbWF0 IGNodWkgYm9pLCBkZSBkb2Ega2hpIHRpY2ggY3VjIHRoYW0gZ2lhIGRhdSB0cmFuaCBjaG9uZyB0 aWV1IGN1Yy4gIk5nb2FpIA0Kbmh1bmcgbGFuIGJpIGdvaSBkaWVuIHRob2FpIGRlIGRvYSwgYmEg Y3UgY3VuZyBkYSBuaGFuIGR1b2Mgdm9uZyBob2EgdGFuZyBnaGkgZG9uZyBjaHU6IA0KIkNhYyBj b24gY2hhdSBraW5oIHZpZW5nIiAtIFZUQyBjaG8gaGF5Lg0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4veGFob2kvMjAxMDExL0hhLU5vaS1DYXktdHJhbS10dW9pLW1hdC10aWNoLWxhaS12ZS1j aG8tY3UtOTQ1OTcwLyBUaHUgTHkgMjI6MDcsIDA0LzExLzIwMTAgKEdNVCs3KSANCg0KSGEgTm9p OiBOZ2FuZyBuaGllbiBidW5nIGNheSBCbyBEZSB0cmFtIHR1b2kgZGFuZyBiYW8gdG9uIJYgYWkg Y2hpdSB0cmFjaCBuaGllbT8gDQoNCi0gMTdoIG5nYXkgNC8xMSwgY2F5IGJvIGRlIHRyYW0gdHVv aSBkdW9jIHRpbSB0aGF5IHRhaSBuZ28gMzEwIER1b25nIE5naGkgVGFtIChRLiBUYXkgDQpIbywg SGEgTm9pKSBkYSBkdW9jIENvbmcgdHkgVE5ISCBtb3QgdGhhbmggdmllbiBDb25nIHZpZW4gQ2F5 IHhhbmggSGEgTm9pIGNodXllbiANCnZlIHRyb25nIGxhaSBkdW5nIG5vaSBjYXkgZGEgYmkgZGFv IGRpLiANCg0KSGFuZyBjaHVjIG5ndW9pIGRhbiB4dW5nIHF1YW5oIGtodSB2dWMgeGF5IGR1bmcg VHJ1bmcgdGFtIFRodW9uZyBtYWkgZGljaCB2dSB2YSANCmNobyAxOS0xMiBkYSBobyBob2kgcmEg eGVtIGNhbmggZ29jIGNheSBjbyB0aHUgdHJvIHZlIG5ndXllbiB2ZW4gY2hvIGN1Lg0KDQooQW5o OiBOZ3VvaSBkYW4gbmFvIG51YyBkZW4geGVtIGNhbmggY2F5IGJvIGRlIGR1b2MgdHJvbmcgbGFp KSANCg0KVHV5IG5oaWVuLCBuaHVuZyBuZ3VvaSBjaHVuZyBraWVuIGNhbmggbmF5IGN1bmcga2hv bmcga2hvaSB4b3QgeGEga2hpIGNheSBjbyB0aHUgZ2FuIA0KYm8gdm9pIGhvIGJhbyBuaGlldSBu YW0gZ2lvIHhvIHhhYywgYmkgY3VhIG5oYW0gbmhvLCByZSBjaGluaCB2YSByZSBsYW4ga2hvbmcg Y29uLiANCk5oaWV1IG5ndW9pIGJheSB0byBzdSBsbyBsYW5nIGtob25nIGJpZXQgY2F5IGNvIHNv bmcgZHVvYyBraG9uZyBraGkgeHVuZyBxdWFuaCBsYSBtb3QgDQpjb25nIHRydW9uZyBkYW5nIHhh eSBkdW5nIHZvaSB4aSBtYW5nLCBjYXQgc29pLg0KDQpTYW5nIGN1bmcgbmdheSwga2hpIHRpbSB0 aGF5IGNheSBibyBkZSB0cmFtIHR1b2ksIHRyYW8gZG9pIHZvaSBjYWMgUFYsIG9uZyBOZ3V5ZW4g WHVhbiANCkh1bmcsIFBobyBUb25nIEdpYW0gZG9jIENvbmcgdHkgVE5ISCBtb3QgdGhhbmggdmll biBDb25nIHZpZW4gQ2F5IHhhbmggSGEgTm9pIA0KY2hvIGJpZXQsIGNheSBibyBkZSBzZSBkdW9j IGNodXllbiB2ZSB2dW9uIHVvbSBkZSBjaGFtIHNvYyBjaG8gaG9pIHBodWMuIA0KDQpUdXkgbmhp ZW4sIGRlbiBjaGlldSwga2hvbmcgcm8gbmd1eWVuIG5oYW4gdmkgc2FvLCBjYXkgYm8gZGUgbmF5 IGxhaSBkdW9jIGNodXllbiB0aGFuZyANCnZlIHZpIHRyaSBiYW4gZGF1IHRydW9jIGtoaSBiaSAi bWF0IHRpY2giIQ0KDQooQW5oOiBSYXQga2hvIGtoYW4gZGUgdHJvbmcgbGFpIGR1b2MgY2F5IGJv IGRlIG5odW5nIGxhbSBzYW8gZGUgY2F5IHNvbmcgZHVvYyBjb24ga2hvIGhvbiEpIA0KTW90IGNh dSBob2kgbnVhIG1hIGR1IGx1YW4gYmFuIGtob2FuIGxhIHRhaSBzYW8gZGVuIHRob2kgZGllbSBu YXkga2hvbmcgY28gbW90IHRob25nIA0KYmFvIHR1IHBoaWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5n IHZlIHZpZWMgY29uZyB0eSBuYW8gZHVhIGNheSBibyBkZSBkZW4gbmdvIDMxMCBkdW9uZyANCk5n aGkgVGFtIHNhbmcgNC8xMT8gDQpEYXkga2hvbmcgcGhhaSBsYW4gZGF1IHRpZW4sIGNheSBjbyB0 aHUgbyBIYSBOb2kgYmkgImJpZW4gbWF0IiBiaSBhbiB2aSBuYW0gdHJvbmcga2h1IHZ1YyBjYWMg Y29uZyB0cmluaCB4YXkgZHVuZywgaG9hYyAiY2hhbiIgdHJ1b2MgbmhhIGRhbi4gDQoNCg== --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; charset=windows-1257; name="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Sinh Hung.txt" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Sinh Hung.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vbtuy2 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2gg Y2h1YyBvbmcgTmd1eWVuIFNpbmggSHVuZyB0aGFtIG5odW5nLCB0aG9pIG5hdCAgIA0KDQpodHRw Oi8vbmd1eWVudmFudHVhbi5uZXQvbmV3cy82LW5ld3MvOTEyLXBoby10aHUtdHVvbmctcXVhLWxh Yy1xdWFuIE5WVCAxMy82LzIwMTAgMTY6MzINCg0KRHUgYW4gZHVvbmcgc2F0IGNhbyB0b2MgLSBQ aG8gVGh1IHR1b25nIE5ndXllbiBTaW5oIEh1bmcgcXVhICJsYWMgcXVhbiIhIFRpbmggdG9hbiBz YWkgbGFtIA0KDQpEaW5oIGtob25nIG5oaW4sIGtob25nIGRvYywga2hvbmcgbmdoZSBjYWMgdGlu IHR1YyB2ZSBkdW9uZyBzYXQgY2FvIHRvYyBudWEsIG5odW5nIHZhbiANCmtob25nIGdpdSBkdW9j IGxvbmcsIGtob25nIHRob2F0IGtob2kgY2FpIGNhdSBwaGF0IGJpZXUgY3VhIG9uZyBQaG8gdGh1 IHR1b25nIE5ndXllbiANClNpbmggSHVuZyByYW5nICJUaHUgbmhhcCBiaW5oIHF1YW4gZGF1IG5n dW9pIGhpZW4gbmF5IDEuMjAwIFVTRCwgbmh1bmcgdm9pIHRvYyBkbyANCnRhbmcgdHJ1b25nIGtp bmggdGUgdHVvbmcgbGFpIHRoaSBkZW4gMjAyMCBzZSBsYSAzLjAwMCBVU0QsIHZhIGxhbiBsdW90 IHRhbmcgNi4wMDAsIGxlbiANCjEyLjAwMCB2YSBzZSBkYXQgMjAuMDAwIG5hbSAyMDUwIi4gDQoN Cktob25nIGhpZXUgb25nIFBobyB0aHUgdHVvbmcgZHVhIHZhbyBkYXUgbWEgcGhhdCBiaWV1IG5o dSB0aGUsIHZpIHRoZW8gTmdhbiBoYW5nICBUaGUgDQpnaW9pIHRoaSBoaWVuIG5heSAoMjAxMCkg dGh1IG5oYXAgYmluaCBxdWFuIG8gbnVvYyB0YSBjaGkgZHVvaSAxMDAwIFVTRCAoY2h1IGtob25n IA0KcGhhaSAxMjAwIFVTRCkuIE5nb2FpIHJhLCAiYnVjIHRyYW5oIiBkbyBvbmcgdHVvbmcgdHVv bmcgeGVtIHJhICJyYXQgZGVwIiwgdHVvbmcgbGFpIA0KInhhbiBsYW4iLiBDaHVuZyB0YSB0aHUg bGFtICJleGVyY2lzZSIgdHJpIHR1ZSBjdW9pIHR1YW4geGVtIGJ1YyB0cmFuaCB0dW9uZyBsYWkg b25nIHZlIA0KY28gcGh1IGhvcCB2b2kgdGh1YyB0ZSBraG9uZy4NCg0KRGUgdGhheSBidWMgdHJh bmggY3VhIG9uZyBQaG8gdGh1IHR1b25nIHZlLCBjaHVuZyB0YSBkdWEgbmh1bmcgY29uIHNvIG5h eSB2YW8gbW90IGJhbmcgc28gbGlldSBkZSBuZ2hpZW4gY3V1Og0KDQpOYW0gMjAxMCBHRFAgKHRp IFVTRCkgIDEwNiBUaHUgbmhhcCBiaW5oIHF1YW4gKFVTRCkgIDEyMDANCk5hbSAyMDIwIEdEUCAo dGkgVVNEKSAgMzAwIFRodSBuaGFwIGJpbmggcXVhbiAoVVNEKSAgMzAwMA0KTmFtIDIwMzAgR0RQ ICh0aSBVU0QpICA3MDAgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpICA2MDAwDQpOYW0gMjA0MCBH RFAgKHRpIFVTRCkgMTMwMCBUaHUgbmhhcCBiaW5oIHF1YW4gKFVTRCkgMTIwMDANCk5hbSAyMDUw IEdEUCAodGkgVVNEKSA/Pz8/IFRodSBuaGFwIGJpbmggcXVhbiAoVVNEKSAyMDAwMA0KDQpUaGF5 IGdpIHF1YSBuaHVuZyBjb24gc28gZG8/IFRoZW8gdG9pIHRoaSBkbyBsYSBuaHVuZyBwaGFjIGhv YSBxdWEgbGFjIHF1YW4uIENodW5nIHRhIA0KY2FuIHBoYWkgdGltIGhpZXUgeGVtIGNhY2ggb25n IFBobyB0aHUgdHVvbmcgdGluaCB0b2FuIHJhIHNhbywgcm9pIG1vaSBjaGkgcmEgY2FpIHNhaSBj dWEgDQpvbmcgdGEgZHVvYy4gT25nIG5heSBjbyBiYW5nIHRpZW4gc2kga2luaCB0ZSwgbmVuIGNo YWMgY2hhbiBvbmcgY28gYmFuZyBjaHVuZyB2YSB0aW5oIA0KdG9hbiwgdmkgdmF5IHBoYWkgY2Fu IHRoYW4ga2hpIHBoYW4gYmllbiBvbmcgUGhvIHRodSB0dW9uZy4NCg0KTmh1bmcgZ2lhIGRpbmgg ZGFuZyBzYXUgY2FjaCB0aW5oIGN1YSBvbmcgUGhvIHRodSB0dW9uZw0KDQpEYW4gc28gbnVvYyB0 YSBoaWVuIG5heSBsYSBraG9hbmcgODUgdHJpZXUgNzg5IG5nYW4uIFRoZW8gdGhvbmcga2UgdGhp IHRpIGxlIHRhbmcgdHJ1b25nIA0KZGFuIHNvIHRydW5nIGJpbmggbW9pIG5hbSBsYSAxLDIlLiAg RG8gZG8sIGRhbiBzbyBudW9jIHRhIG5hbSAyMDIwIGxhIGtob2FuZyA5Niw2IA0KdHJpZXUsIHZh IHRhbmcgbGVuIDEzOCwyIHRyaWV1IHZhbyBuYW0gMjA1MC4NCg0KTmFtIDIwMTAgRGFuIHNvIChu Z2FuIG5ndW9pKSAgODUuNzg5DQpOYW0gMjAyMCBEYW4gc28gKG5nYW4gbmd1b2kpICA5Ni42NTgN Ck5hbSAyMDMwIERhbiBzbyAobmdhbiBuZ3VvaSkgMTA4Ljk0MA0KTmFtIDIwNDAgRGFuIHNvIChu Z2FuIG5ndW9pKSAxMjIuNzAxDQpOYW0gMjA1MCAgRGFuIHNvIChuZ2FuIG5ndW9pKSAxMzguMjQ2 DQoNClRoZW8gY29uIHNvIG9uZyB0cmluaCBiYXkgdGhpIEdEUCBuYW0gMjAxMCBsYSAxMDYgdGkg VVNEIHZhIHZvaSBkYW4gc28gODUsNzg5IHRyaWV1LCANCnRoaSB0aHUgbmhhcCBiaW5oIHF1YW4g a2hvYW5nIDEyMzYgVVNELiAgTmh1IHZheSwgZGF5IGNoaW5oIGxhIGNhY2ggdGluaCBjdWEgb25n IFBobyANCnRodSB0dW9uZyAobGF5IEdEUCBjaGlhIGNobyBkYW4gc28gdHJvbmcgbmFtLCByYSBz byB0aHUgbmhhcCBiaW5oIHF1YW4pLiBWYXkgdGhpIGNodW5nIA0KdGEgdGh1IHRoZW8gY2FjaCB0 aW5oIG5heSBjdWEgb25nIGRlIGtpZW0gdHJhIGNvbiBzbyBvbmcgbm9pIGNobyBuYW0gMjAyMCBj byBob3AgbGkgDQpraG9uZy4NCg0KVGhlbyBvbmcgUGhvIHRodSB0dW9uZywgZGVuIG5hbSAyMDIw LCB0aHUgbmhhcCBiaW5oIHF1YW4gc2UgdGFuZyBsZW4gMzAwMCBVU0QsIHZpIA0KR0RQIG51b2Mg dGEgbHVjIGRvIGxhIDMwMCB0aSBVU0QuIEdvaSBuYW0gR0RQIG5hbSAyMDEwLCAyMDExLC4uLiwg MjAyMCBsYSB5KHQpLCB2b2kgIA0KdCA9IDEsIDIsIDMsIC4uLjEwLiAgVGhlbyBvbmcgSHVuZyB0 aGkgeTEgPSAxMDYgdmEgeTEwID0gMzAwLiAgVmkgdG9jIGRvIHBoYXQgdHJpZW4ga2luaCB0ZSAN CnRhbmcgZGFuIHNvIHZvaSBuYW0gdHJ1b2MsIHR1YyBsYSB5KHQpID0gayp5KHQtMSksIHRyb25n IGRvIGsgbGEgdGkgbGUgcGhhdCB0cmllbiBzbyB2b2kgbmFtIA0KdHJ1b2MuICBWYW4gZGUsIGRv IGRvIGxhIGdpYWkgcGh1b25nIHRyaW5oIGRvIGRlIHRpbSBrLiAgQ2hpIGNhbiB2YWkgdGh1IHRo dWF0IGRhaSBzbywgdG9pIGNvIA0KZHVvYyBrID0gMSwxMC4gIE5vaSBjYWNoIGtoYWMsIHRpIGxl IHRhbmcgR0RQIHBoYWkgbGEgMTAlIG1vaSBuYW0gdmEgbGllbiB0dWMgdHJvbmcgDQp2b25nIDEw IG5hbSwgdGhpIGNodW5nIHRhIG1vaSBjbyBHRFAgYmFuZyAzMDAgdGkgbmFtIDIwMjAuDQoNCk5o dW5nIHRyb25nIGdpYWkgZG9hbiAyMDMwIGRlbiAyMDUwIHRoaSBvbmcgUGhvIHRodSB0dW9uZyBj aHV5ZW4gImdhIiB2ZSBjYWNoIHRpbmguICANClZhbiBzdSBkdW5nIG1vIGhpbmggdHJlbiwgZGUg ZGFuZyB0aGF5IG9uZyBnaWEgZGluaCByYW5nIHRpIGxlIHBoYXQgdHJpZW4gR0RQIGx1YyBkbyBs YSANCjclLCBkZSBuYW0gMjA0MCB0b25nIEdEUCBsYSAxNDAwIHRpIFVTRCwgdmEgbmFtIDIwNTAg bGEgMTU3OCB0aSBVU0QuICBWb2kgbmh1bmcgDQpHRFAgbmF5IHRoaSB0aHUgbmhhcCBiaW5oIHF1 YW4gbnVvYyB0YSBtb2kgfjExMDAwIFVTRCBuYW0gMjA0MCwgdmEgMjAwMDAgVVNEIA0KbmFtIDIw NTAuDQoNCk5vaSB0b20gbGFpLCBvbmcgUGhvIHRodSB0dW9uZyBkYSBkdWEgdmFvIDMgZ2lhIGRp bmg6DQoNCihhKSBEYW4gc28gdGFuZyBraG9hbmcgMS4yJSBtb2kgbmFtOw0KKGIpIEdEUCB0cm9u ZyBnaWFpIGRvYW4gdHUgMjAxMCBkZW4gMjAzMCB0YW5nIDEwJSBtb2kgbmFtLCBsaWVuIHR1YyB0 cm9uZyB2b25nIDIwIG5hbTsNCihjKSBHRFAgdHJvbmcgZ2lhaSBkb2FuIHR1IDIwMzAgZGVuIDIw NTAgdGFuZyB+NyUgbW9pIG5hbSwgbGllbiB0dWMgdHJvbmcgdm9uZyAyMCBuYW0uDQoNClZhbiBk ZSBnaWEgZGluaA0KDQpDbyB0aGUgbm9pIHJhbmcgZ2lhIGRpbmggY3VhIG9uZyBQaG8gdGh1IHR1 b25nIGxhIHF1YSBsYWMgcXVhbi4gIFRyb25nIHF1YSBraHUgY2h1YSB0aGF5IA0KbmFtIG5hbyBu dW9jIHRhIGNvIHRvYyBkbyBwaGF0IHRyaWVuIDEwJSBtb2kgbmFtLiAgSGluaCBuaHUgKD8pIGN1 bmcgY2h1YSBjbyBxdW9jIGdpYSANCm5hbyB0cmVuIHRoZSBnaW9pIGNvIHRvYyBkbyBwaGF0IHRy aWVuIHRoYW4ga2kgbmh1IHRoZSAoMTAlIG1vaSBuYW0pIHRyb25nIHN1b3QgMjAgbmFtIA0KbGll bi4gIFZheSB0aGksIGNodW5nIHRhIGNvIHRoZSBub2kgcmFuZyBnaWEgZGluaCAoaGF5IGNhY2gg dGluaCkgY3VhIG5nYWkgUGhvIHRodSB0dW9uZyBjbyANCnZhbiBkZS4NCg0KTmV1IG5odSB0b2Mg ZG8gcGhhdCB0cmllbiBraW5oIHRlIGhpZW4gbmF5ICg2JS9uYW0pLCB0aGkgZGVuIG5hbSAyMDIw LCBHRFAgY3VhIFZOIGxhIA0KMTkwIHRpIFVTRCwgdmEgdGh1IG5oYXAgYmluaCBxdWFuIGx1YyBk byBsYSAxOTYzIFVTRC4gIENvIGxlIGNvbiBzbyBuYXkgdGh1YyB0ZSBob24uICANClZheSwgY2h1 bmcgdGEgdGh1IGdpYSBkaW5oIHRodWMgdGUgaG9uIHhlbSBzYW86IHRyb25nIGdpYWkgZG9hbiAy MDEwIJYgMjAzMCwgdGkgbGUgdGFuZyANCnRydW9uZyBHRFAgbGEgNiUgbW9pIG5hbSAodHJvbmcg c3VvdCAyMCBuYW0gbGllbik7IHRyb25nIHRob2kgZ2lhbiAyMDMwIJYgMjA1MCwgdGkgbGUgDQp0 YW5nIHRydW9uZyBjaGFtIGxhaSBraG9hbmcgNCUvbmFtICh0cm9uZyBzdW90IDIwIG5hbSBsaWVu KS4gIFZvaSBuaHVuZyBnaWEgZGluaCBuYXksIA0KY2h1bmcgdGEgY28gbW90IGJ1YyB0cmFuaCBr aGFjIHZvaSBidWMgdHJhbmggY3VhIG5nYWkgUGhvIHRodSB0dW9uZzogDQoNCk5hbSAyMDEwIEdE UCAodGkgVVNEKSAxMDYgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpIDEyMzUNCk5hbSAyMDIwIEdE UCAodGkgVVNEKSAxOTAgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpIDE5NjMNCk5hbSAyMDMwIEdE UCAodGkgVVNEKSAzNDAgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpIDMxMjENCk5hbSAyMDQwIEdE UCAodGkgVVNEKSA1MDMgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpIDQxMDENCk5hbSAyMDUwIEdE UCAodGkgVVNEKSA3NDUgVGh1IG5oYXAgYmluaCBxdWFuIChVU0QpIDUzODggDQoNCk5odSB2YXks IHZvaSBnaWEgZGluaCB0aHVjIHRlIGhvbiwgY2h1bmcgdGEgZGUgZGFuZyB0aGF5IG5odW5nIGdp IG9uZyBQaG8gdGh1IHR1b25nIA0KY3VuZyBjYXAgbGEgcXVhIGxhYyBxdWFuLiBUaGVvIGNhY2gg dGluaCB2b2kgZ2lhIGRpbmggdGh1YyB0ZSBob24gbmh1IHRyZW4sIGRlbiBuYW0gDQoyMDIwLCB0 aHUgbmhhcCBiaW5oIHF1YW4gY2hpIH4gMTk2MyBVU0QsIGNodSBraG9uZyBwaGFpIDMwMDAgVVNE OyBkZW4gbmFtIDIwNTAsIA0KdGh1IG5oYXAgYmluaCBxdWFuIGNoaSB+NTQwMCBVU0QsIGNodSBr aG9uZyBwaGFpIDIwMDAwIFVTRCBuaHUgb25nIFBobyB0aHUgdHVvbmcgDQp1b2MgdGluaC4gIChO aHVuZyBzbyBsaWV1IG5heSBsYSB0aW5oIHRoZW8gdGhvaSBnaWEgaGllbiBuYXkpLg0KDQpDYWNo IG5vaSBjdWEgb25nIFBobyB0aHUgdHVvbmcgbGEgbmhhbSBkYW4gZHUgbW9pIG5ndW9pIHJhbmcg ZGVuIG5odW5nIG5hbSAyMDUwIHRoaSANCm51b2MgdGEgc2UgY28gdGh1IG5oYXAgYmluaCBxdWFu IGNhbywgdmEgZG8gZG8gVk4gInBoYWkiIGNvIGR1b25nIHNhdCBjYW8gdG9jOyAia2hvbmcgDQp0 aGUga2hvbmcgbGFtIGR1b25nIHNhdCBjYW8gdG9jIi4gVmFuIGRlIGxhIHRhaSBzYW8gbGFpICBi YXQgYnVvYyBwaGFpIHhheSBkdW9uZyBzYXQgDQpjYW8gdG9jPyBOaGlldSBudW9jIGhpZW4gbmF5 IGNvIHRodSBuaGFwIGNhIG5oYW4gY2FvIGhvbiBuZ3VvbmcgZG8gaG8gY3VuZyBraG9uZyBsYW0g DQpkdW9uZyBzYXQgY2FvIHRvYy4gU3UgZGFuIGR1IGN1YSBvbmcgUGhvIHRodSB0dW9uZyBkdWEg dmFvIHRodSBuaGFwIGJpbmggcXVhbiBuaHUgdmF5IA0KbGEgdGhpZXUgdGluaCB0aHV5ZXQgcGh1 YywgdmEgcXVhbiB0cm9uZyBob24gbGEgc2FpIG5nYXkgdHUgZ2lhIGRpbmggKG5odSBkYSBkdW9j IA0KY2hpIHJhIG8gcGhhbiB0cmVuKS4NCkRvYyBiYWkgcGhvbmcgdmFuIFBobyB0aHUgdHVvbmcs IGNvIHRoZSBub2kgcmFuZyBtb2kgY2F1IG9uZyB0cmEgbG9pIGRldSBjYW4gcGhhaSANCmJhbiBs YWkuIENoYW5nIGhhbiBuaHUga2hpIGR1b2MgaG9pIGxpIGRvICJwaGFpIGxhbSIgRFNDVCB0aGkg b25nIGNobyByYW5nICJ2aSBraG9uZyANCm51b2MgbmFvIGNvIGRpZW4gdGljaCBkYWkgbmh1IFZO Ii4gIFZheSBudW9jIFVjIHRoaSBzYW8sIG5vaSBtYSBiYXkgdHUgdGlldSBiYW5nIHBoaWEgDQpO YW0gc2FuZyB0aWV1IGJhbmcgcGhpYSBUYXkgdG9uIGNhIDQgZ2lvIGJheSwgdHVjIGxhIGNvbiBk YWkgZ2FwIG1heSBsYW4gVk4gdGE7IGhvIGNvIA0KYmF0IGJ1b2MgcGhhaSBsYW0gZHVvbmcgc2F0 IGNhbyB0b2MgZGF1LiBEbyBkbywgbGkgbGUgY3VhIG9uZyBQaG8gdGh1IHR1b25nIHhlbSByYSAu Li4gdGhpZXUgbGkgbGUhDQoNCkNoaSBsYSBtb3QgZXhlcmNpc2UgY2hvIHZ1aSB0cm9uZyBuZ2F5 IGN1b2kgdHVhbiB0aG9pLg0KDQpOVlQNCg0KaHR0cDovL3ZuLjM2MHBsdXMueWFob28uY29tL3Bo YW1uZ29jLTc2L2FydGljbGU/bWlkPTg3IENMIDE0OjUzIDI0LTAxLTIwMTAgDQoNCkRvYyBiYWkg bmF5IG5obyBsYWkgaG9pIG5hbSAyMDA4IG9uZyBOZ3V5ZW4gU2luaCBIdW5nIGtoYW5nIGRpbmgg a2hpIGNodW5nIGtob2FuIA0KZGFuZyB0dXQgeHVvbmcgbXVjIDYwMC4gT25nIG5vaTogIlZvaSBu aHVuZyBjaGluaCBzYWNoIGRpZXUgY2hpbmggdGhpIHRydW9uZyBoaWVuIA0KbmF5LCB0b2kgZGFt IGJhbyBUVENLIHNlIGxlbiBnaWEgdmEgY28gY2hhdCBsdW9uZyBob24uIE5ldSBsYSBuaGEgZGF1 IHR1IGNodW5nIGtob2FuIA0KdGhpIGx1YyBuYXkgdG9pIHNlIG11YSBjbyBwaGlldSIuIExhcCB0 dWMgdGhpIHRydW9uZyBwaGkgbWEgeHVvbmcgbXVjIGR1b2kgMzAwLiBCb2kgdmF5IA0KbmVuIGNh aSBjb25nIHR5IFZvbiBuaGEgbnVvYyBtb2kgbG8gbmFuZyBuaHUgdmF5LiANCg0KW3hlbSB0aGVt OiBodHRwOi8vdHVvaXRyZS52bi9LaW5oLXRlLzI0NjE0NC9UaGF0LWx1bmctYnVvYy1idW5nLmh0 bWwgaG9hYyBodHRwOi8vZjMxOS5jb20vaG9tZS8xMDI2NTAwXQ0KDQpodHRwOi8vdmlldGJhby52 bi9YYS1ob2kvUGhvLVRodS10dW9uZy1OZ3V5ZW4tU2luaC1IdW5nLUJpLXF1YW4tbGEtaG9uZy8x MDk2NTYwMy8xNTcvDQoNCktoaSBRdW9jIGhvaSBwaGUgY2h1YW4gY2h1YyB2dSBQaG8gVGh1IHR1 b25nIGNoaW5oIHBodSwgb25nIE5ndXllbiBTaW5oIEh1bmcgY2hpIG5oYW4gZHVvYyA1OCUgc28g cGhpZXUgYmF1IA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9WaWV0bmFtZXNlTmV3 cy92aWV0bmFtbmV3cy9CdXQtZG9pbmctdGhlLXByb2plY3Qtbm93LXdpbGwtZm9sbG93LUdyZWVj ZS10by1iYW5rcnVwdGN5LTA2MDkyMDEwMTc1MjIwLmh0bWwgUkZBIDA5LjA2LjIwMTANCg0KVk4g c2UgdmFvIHZldCB4ZSBIeSBMYXAgbmV1IGxhbSBkdW9uZyBzYXQgY2FvIHRvYw0KDQpEYWkgYmll dSBUcmFuIFRoaSBRdW9jIEtoYW5oIGN1YSBIYSBOb2kgY2hvIHJhbmcgY2hpbmggcGh1IHZheSBu byBjaG8gbXVjIHRpZXUgcXVhIA0KdGhhbSB2b25nLCBuZ29haSB0aHVjIHRlLCBsYSBkaSB2YW8g dmV0IHhlIGRvIGN1YSBIeSBMYXAsIGtoaSBkbyB0aGkga2hvbmcgYWkgY3V1OyBOaGF0IA0KbGEg bnVvYyBtYSBWaWV0IE5hbSBreSB2b25nIHZheSB2b24gY3VuZyBkYW5nIG5nYXAgbm8gbnVvYyBu Z29haSB0b2kgaG9uIDIwMCUuIA0KDQpOaGlldSBkYWkgYmlldSBjYW5oIGdpYWMgcmFuZyBubyBP REEga2hvbmcgcGhhaSBsYSB0b3QsIGRhIHJhbmcgYnVvYywga2hvbmcgZHVvYyBkYXUgDQp0aGF1 LCBtYSBwaGFuIGxvaSBjb24gY2FvIGhvbiAgbm8gdGh1b25nIG1haSByYXQgbmhpZXUuICANCg0K RG9pIHZvaSBreSB2b25nIGN1YSBjYWMgZGFpIGJpZXUgbm9pIGxhIGR1IGFuIHNlIGtpY2ggY2F1 IHZhdCBsaWV1IHhheSBkdW5nIHRyb25nIG51b2MsIA0KZGFpIGJpZXUgTmd1eWVuIERpbmggWHVh biBjdWEgVGF5IE5pbmggY2hpIHJhIHJhbmcgbmdheSBuaHUgY2F1IENhbiBUaG8gY3VuZyBkdW5n IA0KeGkgbWFuZyBUaGFpIExhbiwgc2F0IHRoZXAgY3VhIG51b2Mga2hhYy4gICANCg0KUGhhbiBi YWMgeSBraWVuIHZlIGxvaSBpY2gga2luaCB0ZSBjdWEgZHVvbmcgdGF1IGNhbyB0b2MgdmEgbmhh IGdhLCBkYWkgYmlldSBEdW9uZyBUcnVuZyANClF1b2Mgbm9pIG5ndW9pIGRhbiBuZ2hlbyBzYW4g c2FuZyBjaG9uIHBodW9uZyB0aWVuIHJlIHRpZW4gaG9uLiBPbmcgcGhhbiB0aWNoOiAyMCBuYW0g DQpudWEgZHUgY28gdGluaCBHRFAgYmluaCBxdWFuIGxhIDMgbmdhbiBkbyBsYSBtb3Qgbmd1b2kg dGhpIHBoYW4gYm8gR0RQIGRvIG8gZGF1LCANCm5ndW9pIG5naGVvIGNvIGNvbiBuaGlldSBraG9u ZywgYm8gdGllbiBiYW5nIDMgcGhhbiB0dSBnaWEgdmUgbWF5IGJheSBsaWV1IGhvIGNvIGNoaXUg DQpraG9uZz8gT25nIER1b25nIFRydW5nIFF1b2MgZ29pIHRpbmggdG9hbiBuaHUgZHUgYW4gZGEg dGluaCBsYSB0aW5oIHRvYW4gY3VhIG5odW5nIA0Kbmd1b2kgZGkgbGFpIGJhbmcgdGllbiBOaGEg bnVvYy4gDQoNCkRhbiBiaWV1IER1b25nIFRydW5nIFF1b2MgY29uIGRvaSBob2kgdmllYyBiYW0g bnV0IGJpZXUgcXV5ZXQgY3VhIGNhYyBkYWkgYmlldSBwaGFpIA0KZHVvYyBtaW5oIGJhY2ggZGUg Y2FjIHRoZSBoZSB2ZSBzYXUgYmlldCBhaSB1bmcgaG8gYWkgcGhhbiBkb2ksIGtoaSBoYXUgcXVh IGN1YSBkdSBhbiANCnhheSBkZW4gY2hvIGRvaSBzYXUuDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5j b20udm4vSG9tZS9Dby1oYXkta2hvbmctY3VvYy1jaGF5LWR1YS12dS10cmFuZy0tbW9pLzIwMDk0 LzEzNDgxOC5sYW9kb25nIExvbmcgR2lhbmcgMTI6MjUgQU0sMTkvMDQvMjAwOQ0KDQpDbyBUb25n IHRob25nIE15IFJlYWdhbiBkYSB0dW5nIGxvaSBrZW8gTGllbiBYbyB2YW8gY3VvYyBjaGF5IGR1 YSB2dSB0cmFuZyBraGkgZHVhIHJhIGtlIGhvYWNoIA0KIkN1b2MgY2hpZW4gdHJhbmggZ2l1YSBj YWMgdmkgc2FvIiwga2hpZW4gY2hvIERlIGNoZSBMaWVuIFhvIGJpIHN1eSB5ZXUgdHJvbmcgdGhh cCBuaWVuIDE5ODAuIA0KDQpodHRwOi8vd3d3LmRjdm9ubGluZS5uZXQvcGhwL21vZHVsZXMucGhw P25hbWU9TmV3cyZmaWxlPXByaW50JnNpZD0yNTA5IEx1dSBWdSAyMy0xMC0yMDA2DQoNClZvaSBj aGluaCBzYWNoIG1vIGN1b2MgY2hpZW4gdHJhbmggdnUgdHJ1LCB0aHVvbmcgZHVvYyBnb2kgbGEg IkNoaWVuIHRyYW5oIGdpdWEgY2FjIHZpIA0Kc2FvIiwgdG9uZyB0aG9uZyBIb2EgS3kgUm9uYWxk IFJlYWdhbiBkYSBrZW8gTGllbiBYbyAoY3UpIHZhbyBtb3QgY3VvYyBjaGF5IGR1YSB2dSANCnRy YW5nIHRvbiBrZW0ga2h1bmcga2hpZXAsIGdvcCBwaGFuIHF1YW4gdHJvbmcgbGFtIExpZW4gWG8g a2lldCBxdWUsIGRhbiBkZW4gc3VwIGRvLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMjQvMjAxMDA2MDkwMTAxNDAuYXNweCAwOS8wNi8yMDEwIDE6MDEgDQoN ClRyYW5oIGx1YW4gcXV5ZXQgbGlldCB0YWkgUXVvYyBob2kgdmUgZHUgYW4gZHVvbmcgc2F0IGNh byB0b2MgLSAzNyB5IGtpZW4gcGhhdCBiaWV1IA0Ka2hvbmcgZG9uZyBxdWFuIGRpZW0gdmUgY2h1 IHRydW9uZyBkYXUgdHUgZ2FuIDU2IHRpIFVTRCBjaG8gZHUgYW4gbmF5DQoNCkRCIFZ1IFF1YW5n IEhhaSAoSHVuZyBZZW4pIHBoYXQgYmlldTogIkhpZW4gdGhlbyB0aW5oIHRvYW4gc28gYm8gZHUg YW4gY2FuIDU2IHRpIFVTRCANCm5odW5nIHRodW9uZyB4YXkgbmhhIGRhIGdhcCAxLDUgaG9hYyAy IGxhbiB2b24gdW9jIHRpbmgsIHRoZSB0aGkgY29uIHNvIHRodWMgdGUgZGF1IHR1IGR1IA0KYW4g bmF5IGNvIHRoZSBsYSA5MCB0aSBVU0QgaG9hYyBjYW8gaG9uLCBiYWkgdG9hbiB0cmEgbm8gcXVv YyBnaWEgc2UgdGhlIG5hbz8iLCANCg0KREIgSGEgVHVhbiBIYWkgKFBodSBUaG8pIGRlIG5naGk6 IENodWEgbmVuIGRhdSB0dSB4YXkgZHVuZyBkdW9uZyBzYXQgY2FvIHRvYyBoaWVuIA0KbmF5LCBs dWkgbGFpIHNhdSAyMDIwLiBEYXUgdHUgdm9uIGNobyBnaWFvIHRob25nIG5vbmcgdGhvbiwgdnVu ZyBzYXUgdnVuZyB4YSBkZSBydXQgbmdhbiANCmtob2FuZyBjYWNoIGdpYXUgbmdoZW8gZ2l1YSBu b25nIHRob24gLSBkbyB0aGkuICAgDQoNClBobyBjaHUgbmhpZW0gVXkgYmFuIENhYyB2YW4gZGUg eGEgaG9pLCBvbmcgRGFuZyBOaHUgTG9pIGN1bmcgbm9pIHRoYW5nIFFIIGNoaSBuZW4gDQp0aG9u ZyBxdWEgbW90IGNoaSB0aWV0IGR1eSBuaGF0IHRyb25nIHRvYW4gYm8gYmFvIGNhbyBjdWEgQ2hp bmggcGh1LCBkbyBsYSB0YW4gdGhhbmggY2h1IA0KZGF1IHR1IGR1IGFuIGxhIFRvbmcgY29uZyB0 eSBkdW9uZyBzYXQgVk4sIGNvbiB0YXQgY2EgY2FjIG5vaSBkdW5nIGtoYWMgcGhhaSAiZ2FjIGxh aSIgDQp2YSBkZSBuZ2hpIGNhbiBjbyBob2kgZG9uZyB0aGFtIGRpbmggdGhhdCBreSBkdSBhbiB0 cnVvYyBraGkgcXV5ZXQgZGluaCBjaHUgdHJ1b25nIGRhdSANCnR1LiANCg0KQ2h1IG5oaWVtIFV5 IGJhbiBQaGFwIGx1YXQgY3VhIFFIIE5ndXllbiBWYW4gVGh1YW4gY3VuZyBub2k6ICJIYXkgZGUg ZGVuIG5hbSAyMDIwIA0Ka2hpIGRhdCBudW9jIGNodW5nIHRhIGNvIGJhbiB0cm8gdGhhbmggbnVv YyBjb25nIG5naGllcCwgY29uIGNoYXUgY2h1bmcgdGEgbHVjIGRvIA0KdGhvbmcgbWluaCBob24g Y2h1bmcgdGEsIGdpb2kgaG9uIGNodW5nIHRhIHNlIHRpbmggZHUgYW4gbmF5Ii4gDQpPbmcgVGh1 YW4gZGF0IHJhIGhhbmcgbG9hdCBtb2kgbG86IGtoaSB0aW5oIHRvYW4gdHJvbmcgY2FjIGR1IGFu IHRoaSBjaHVuZyB0YSBub2kgcmF0IGhheSANCm5odW5nIHRodWMgdGUga2hvbmcgcGhhaSBuaHUg dmF5LiBPbmcgZGFuIGNodW5nIGxhIGR1b25nIEhvIENoaSBNaW5oIGtob25nIHRhcCBuYXAgeGUg Y28gZGkgbGFpIA0Kbmh1IHRodXlldCBtaW5oIGJhbiBkYXU7IGNodW9uZyB0cmluaCBtaWEgZHVv bmcgaGFuZyBuZ2hpbiB0aSBkb25nIHBoYSBzYW47IG5hbmcgbHVjIGtoYWkgDQp0aGFjIGN1YSBj YW5nIENhaSBMYW4ga2VtIGhpZXUgcXVhLCAudi52Lg0KDQoiSGF5IGR1bmcgbGFpIGR1IGFuIG5h eSBkZSBjb24gY2hhdSBjaHVuZyB0YSB0aGF5IG1hdCBjaHVuZyB0YSBsYW0gdGllcCwgZG9pIGNo dW5nIHRhIA0Kc3V5IG5naGkgY2hvIGNvbiBjaGF1IHRoZSBuYXkgbGEgZHUuIFRoYXkgdmFvIGRv LCB0YXAgdHJ1bmcgbW9pIG5ndW9uIGx1YyBkZSBnaWFpIHF1eWV0IA0KdHJpZXQgZGUgdmFuIG5h biBnaWFvIHRob25nIG8gSGEgTm9pLCBUUC5IQ00gdHJvbmcgbXVvaSBuYW0gdG9pOyBnaWFpIHF1 eWV0IGJhbmcgZHVvYyANCmNvbiBkdW9uZyBjYW8gdG9jIEJhYyAtIE5hbSwgdGhhbSBjaGkgeGF5 IGR1bmcgZHVvbmcgdHJlbiBjYW8gZGUgdHJhbmggbXVhIG11YSBsdSBvIA0KbWllbiBUcnVuZywg Y2FpIHRhbyBkdW9uZyBzYXQga2hvIGRvaSAxbTQ1IHZvaSB0b2MgZG8gMjAwIGNheSBzby9naW8u IFRvaSBuZ2hpIGRvIGxhIA0KbW9uIHF1YSByYXQgcXV5IGRhbmggY2hvIHRoZSBoZSBzYXUiIC0g Q2h1IG5oaWVtIFV5IGJhbiBQaGFwIGx1YXQgY3VhIFFIIE5ndXllbiBWYW4gVGh1YW4NCg0KIkRv YyBUbyB0cmluaCBjdWEgQm8gS0gtRFQgdGhpIHRvaSBtb2kgdm8gbGUgcmEgbGEgdG9hbiBibyBj YWMgdGhhbmggdmllbiBjdWEgSG9pIGRvbmcgDQp0aGFtIGRpbmggbmhhIG51b2MgbWEgY2h1bmcg dG9pIHJhdCB0aW4gdHVvbmcsIGhvYSByYSBraG9uZyBjbyBiYXQga3kgbW90IGNodXllbiBnaWEg DQpuYW8gdmUgZHVvbmcgc2F0LCBkYXkgdG9hbiBsYSBxdWFuIGNodWMgdGhvaSwgMSBkb25nIGNo aSBibyB0cnVvbmcgdmEgOCBkb25nIGNoaSB0aHUgDQp0cnVvbmcuIE5ldSBuaHUgdGhlIHRoaSBj byBraGFjIGdpIENoaW5oIHBodSB0aHUgbmhvLCBxdXlldCBkaW5oIGN1YSBIb2kgZG9uZyB0aGFt IA0KZGluaCBuaGEgbnVvYyBheSB2b2kgQ2hpbmggcGh1IGtoYWMgZ2kgbmhhdT8iIC0gREIgTmd1 eWVuIE1pbmggVGh1eWV0LCBMYW5nIFNvbiAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9OZXdzL1BhZ2VzLzIwMTAyNS8yMDEwMDYxNjEzNTEyMy5hc3B4IDE2LzA2LzIwMTAgMTM6MjAg DQoNClF1b2MgaG9pIGJvIHBoaWV1IGtpbiB0aGFtIGRvIHkga2llbiBkb2kgdm9pIER1IGFuIERT Q1QgY3VhIGNoaW5oIHBodToNCg0KQ2hpIGNvIDE0OC80NzQgREJRSCBibyBwaGlldSBkb25nIHRp bmggdm9pIHBodW9uZyBhbiBjdWEgQ2hpbmggcGh1IHZlIGR1b25nIHNhdCBjYW8gdG9jOyANCjMy NiBkYWkgYmlldSBRSCBraG9uZyBkb25nIHRpbmggdm9pIHBodW9uZyBhbiBjdWEgQ2hpbmggcGh1 Lg0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8wNi8zQkExRDI3Qi8gMTkv Ni8yMDEwLCAxNTo0MSBHTVQrNyANCg0KQ2hpZXUgMTkvNi8yMDEwLCBRdW9jIGhvaSBraG9hIFhJ SSBkYSAnYmFjIGJvJyBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyAtIE1vdCBxdXlldCBkaW5oIGxp Y2ggc3UhICANCg0KQ2hpIGNvIDM3JSBzbyBkYWkgYmlldSB0YW4gdGhhbmggKGtob25nIHF1YSBi YW4pLCA0MSUga2hvbmcgdGFuIHRoYW5oLCBjaHUgdHJ1b25nIHhheSBkdW5nIGR1IGFuIA0KZHVv bmcgc2F0IGNhbyB0b2MgdHJpIGdpYSA1NiB0eSBVU0QgZG8gQ2hpbmggcGh1IHRyaW5oIGRhIGto b25nIGR1b2MgUXVvYyBob2kgdGhvbmcgcXVhLg0KDQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0LzIw MTAtMDYtMTgtZHUtYW4tZHVvbmctc2F0LWNhby10b2MtcXVvYy1ob2ktdnVvdC1sZW4tY2hpbmgt bWluaCBHcy5Uc2toLiBOZ3V5ZW4gTmdvYyBUcmFuIDE4LzA2LzIwMTAgMDY6MzAgR01UKzcNCg0K RHUgYW4gZHVvbmcgc2F0IGNhbyB0b2MgQmFjIC0gTmFtIGRhIGR1b2MgbGFtIHZvaSB2YSwgbmhp ZXUgbG8gaG9uZyB2YSBseSBsZSBraG9uZyBkdSBzdWMgdGh1eWV0IHBodWM7DQoNCkRvIGxhIHN1 IHRoYXQgYmFpIGN1YSBsZSB0aG9pIHF1YW4gbGlldSwgY3VhIHZpZWMgdHJpbmggdm9pIHZhIG1v dCBzYW4gcGhhbSBjaHVhIGR1IGRvIGNoaW4gbWEgbGFpIG11b24gUXVvYyBob2kgdGhvbmcgcXVh IGRlIGNobyBraXAgdm9pIG1vdCAia2UgaG9hY2giIGR1b2MgdGluaCBsdWkgdHJvIGxhaSB0dSB0 aG9pIGRpZW0gZHUga2llbiBzZSB0cmllbiBraGFpOw0KDQpEbyBsYSB2YXAgbmdhIGN1YSBtb3Qg Y2FjaCBuZ2hpLCBjdWEgbW90IHF1YW4gbmllbSBraG9uZyBkdW5nIHZlIGNodWMgbmFuZyBuaGll bSB2dSBjdWEgUXVvYyBob2kgZGEgZHVvYyBIaWVuIHBoYXAgcXV5IGRpbmguIA0KDQpodHRwOi8v d3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vMjAxMC8wNi8xMDA2MjBfbmFfc2hpbmth bnNlbi5zaHRtbCAwMjo0OCBHTVQgMjAvNi8yMDEwIA0KDQpRdW9jIGhvaSBraG9uZyB0aG9uZyBx dWEgc2lldSBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBIYSBOb2mWVFBIQ00NCg0KRGFpIGJpZXUg Tmd1eWVuIE1pbmggVGh1eWV0LCB0aW5oIExhbmcgU29uLCBkdW9jIGJhbyBUaGFuaCBOaWVuIGRh biBsb2kgbm9pIA0Kb25nICJiYXQgbmdvIHRydW9jIGtldCBxdWEgY3VvaSBjdW5nIi4NCg0KIk1v dCBkdSBhbiB0aWV1IHJhdCBuaGlldSB0aWVuICg1MCUgR0RQIGN1YSBjYSBudW9jKSBtYSBraG9u ZyBjbyBoaWV1IHF1YSANCmtpbmggdGUgdGhpIGNoYWMgY2hhbiBsYSBraG9uZyB0aGUgdGhvbmcg cXVhIGR1b2MsIHRob25nIHF1YSBuaHUgdGhlIHRoaSANCmNvIHRoZSBub2kgbGEga2hvbmcgdGhl IGhpZW4gZHVuZyBkdW9jIHkgbmd1eWVuIGN1YSBkYW4uIiANCg0KaHR0cDovL3d3dy5yZmEub3Jn L3ZpZXRuYW1lc2UvVmlldG5hbWVzZU5ld3MvdmlldG5hbW5ld3MvamFwYW5lc2UtZXZhbHVhdGlv bi1vZi12bi1oaWdoLXNwZWVkLXJhaWx3YXktZnJvbS1IYW5vaS10by1TYWlnb24tbGFjay1mZWFz aWJpbGl0eS0wOTE1MjAwOTE3NDkyMi5odG1sIFJGQS0wOS0xNS0yMDA5DQoNCk5oYXQgZGFuaCBn aWEgZHUgYW4gZHVvbmcgc2F0IGNhbyB0b2MgSGEgTm9pLVNhaWdvbiB0aGlldSBraGEgdGhpDQoN ClRoZW8gb25nIEl3YXRhIFNoaXp1bywgdHJ1b25nIGRvYW4gbmdoaWVuIGN1dSBKSUNBLCB0aGkg dm9pIHNvIHZvbiBkYXUgdHUgbG9uIG5odSB0aGUgDQp0aGkgbmV1IGdpYSB2ZSBiYW5nIHBoYW4g bnVhIHZlIG1heSBiYXkgdHV5ZW4gSGEgTm9pLSBUaGFuaCBwaG8gSG8gQ2hpIE1pbmgsIHRoYW0g DQpjaGkgdGFuZyBzbyBnaGUgaGFuZyB0aHVvbmcgZ2lhIHRyZW4gdGF1LCB0aGkgcGh1b25nIGFu IHZhbiBraG8gdGh1IGhvaSBjaGkgcGhpIHhheSBkdW5nIA0KcXVhIG5ndW9uIGJhbiB2ZS4NCg0K aHR0cDovL3d3dy52bmV4cHJlc3MubmV0L0dML0tpbmgtZG9hbmgvMjAxMC8wNi8zQkExQ0M1Ni8g OS82LzIwMTAsIDE2OjAxIEdNVCs3DQoNCkNhYyBuaGEgdGFpIHRybyBrZXUgZ29pIFZpZXQgTmFt IGdpYW0gc2F0IGNoaSB0aWV1IGNvbmcNCg0KQ2hvIHJhbmcgbXVjIHRoYW0gaHV0IG5nYW4gc2Fj aCBsZW4gdG9pIDklIEdEUCBjdWEgVmlldCBOYW0gaGllbiBuYXkgbGEgbG9uLCBRdXkgDQpUaWVu IHRlIFF1b2MgdGUgKElNRikga2h1eWVuIG5naGkgQ2hpbmggcGh1IGJhbSBzYXQga2UgaG9hY2gg Y2hpIHRpZXUgbmFtIDIwMTAgZGUgDQpkYW0gYmFvIGNoaW5oIHNhY2ggdGFpIGtob2EgYmVuIHZ1 bmcuDQoNClRob25nIGRpZXAgbmF5IGR1b2MgZGFpIGRpZW4gY2FwIGNhbyBJTUYgZHVhIHJhIHRh aSBIb2kgbmdoaSBnaXVhIGt5IG5ob20gdHUgdmFuIGNhYyANCm5oYSB0YWkgdHJvIChDRykga2hh aSBtYWMgbyBLaWVuIEdpYW5nIHNhbmcgbmF5LiBUaGVvIGNhY2ggdGluaCBjdWEgSU1GLCB0aGFt IGh1dCBuZ2FuIA0Kc2FjaCBjdWEgVmlldCBOYW0gbmFtIDIwMDkgY2hpZW0gdG9pIDklIEdEUCAo bXVjIFZpZXQgTmFtIGNvbmcgYm8gbGEgNiw5JSBHRFApLiANClRyb25nIGJvaSBjYW5oIGRpZW4g YmllbiBuZ2FuIHNhY2ggY2h1YSBybyByYW5nLCBtdWMgdGhhbSBodXQgbmh1IHZheSBkdW9jIGNv IHF1YW4gDQpuYXkgZGFuaCBnaWEgbGEgbG9uIHZhIGtob25nIGJlbiB2dW5nLg0KDQpEYWkgc3Ug TmhhdCBCYW4gTWl0c3VvIFNha2FiYSBjaG8gcmFuZyB2b2kgbXVjIGR1IHRydSBuZ29haSBob2kg aGFuIGhlcCwgY29uZyB2b2kgbmhhcCANCnNpZXUsIGxhbSBwaGF0IGNvIHRoZSBjYW8gdHJvIGxh aSwgVmlldCBOYW0gY2FuIGNvIGNoaW5oIHNhY2ggb24gZGluaCBraW5oIHRlIHZpIG1vLCANCmh1 b25nIGRlbiBwaGF0IHRyaWVuIGJlbiB2dW5nLg0KDQpEYWkgZGllbiBBdXN0cmFsaWEga2h1eWVu IGNhbyB0aW5oIGhpbmgga2luaCB0ZSBjb24gbmhpZXUga2hvIGtoYW4sIGNodWEgcGhhdCB0cmll biB2dW5nIA0KY2hhYyBuZW4gQ2hpbmggcGh1IGNhbiBjbyBuaHVuZyBjaGluaCBzYWNoIHJvIHJh bmcsIG5oYXQgcXVhbiB0cm9uZyB2aWVjIGR1YSByYSB0aG9uZyBkaWVwIA0KY2hvIHRoaSB0cnVv bmcuIA0KDQpEYWkgZGllbiBOZ2FuIGhhbmcgVGhlIGdpb2ksIG9uZyBNYXJ0aW4gUmFtYSwgY2hv IHJhbmcgVmlldCBOYW0gY29uIGtob2FuZyBjYWNoIGdpdWEgdmllYyANCmxlbiBrZSBob2FjaCBz dSBkdW5nIG5nYW4gc2FjaCB2YSBnaWFpIG5nYW4gdHJvbmcgdGh1YyB0ZS4gT25nIG5ldSB2aSBk dSB0cm9uZyBraGkgbmh1bmcgDQpxdW9jIGdpYSBraGFjIHRyb25nIGtodSB2dWMgZGEgdGh1IGh1 dCBzdSBxdWFuIHRhbSBjdWEgbmhpZXUgbmhhIGRhdSB0dSBtb2kgYm9pIHN1IG1pbmggYmFjaCAN CnRob25nIHRpbiB0cm9uZyB0aGkgdHJ1b25nIHRhaSBjaGluaCB0aWVuIHRlIHRoaSBWaWV0IE5h bSBjb24geWV1IGtoYXUgbmF5Lg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkv MjAxMDA2L05ldS12by1uby1OaGF0LUJhbi1jby1jdXUtY2h1bmctdGEtOTE0OTczLyAgMDkvMDYv MjAxMCAoR01UKzcpDQoNClFIIHRoYW8gbHVhbiBkdSBhbiBEU0NUOiAnTmV1IHZvIG5vLCBOaGF0 IEJhbiBjbyBjdXUgY2h1bmcgdGEga2hvbmc/Jw0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0 bmFtZXNlL3dvcmxkLzIwMTAvMDYvMTAwNjExX2phcGFucG1fd2FybmluZy5zaHRtbCAxMS82LzIw MTAgDQoNClRhbiBUaHUgdHVvbmcgTmhhdCBCYW4gbm9pIG51b2MgbmF5IGNvICJydWkgcm8gYmkg c3V5IHN1cCIgdmkgZ2FuaCBuYW5nIG5vIG5hbiBraG9uZyBsby4NCg0KT25nIE5hb3RvIEthbiwg dHJvbmcgYmFpIGRpZW4gdmFuIGxvbiBkYXUgdGllbiBrZSB0dSBraGkgbmhhbSBjaHVjLCBub2kg TmhhdCBCYW4gY2FuIA0KdGFpIGNvIGNhdSB0YWkgY2hpbmggZGUgdHJhbmggZGkgbW90IGN1b2Mg a2h1bmcgaG9hbmcgdHVvbmcgdHUgbmh1IHRhaSBIeSBMYXAuDQoNCk5oYXQgQmFuIGNvIG5ndXkg Y28gc3V5IHN1cCB2aSBubyENCg0KaHR0cDovL3d3dy5tZWtvbmduZXQucnUvaW5kZXgucGhwP21v ZD1OZXdzJnNpZD0yOTU1NSZzdHByaW50PTEgMTAuMDYuMjAxMCAxNDozNQ0KDQpUaW0gaGlldSB2 ZSBkdW9uZyBzYXQgY2FvIHRvYw0KDQpCYWkgY3VhIHRhYyBnaWEgTmd1eWVuIEhhaSBIb2FuaCAo VGllbiBzaSBuZ2FuaCBkaWV1IGtoaWVuIHR1IGRvbmctdHUgeGEgdHJvbmcgdmFuIHRhaSANCmR1 b25nIHNhdCkNCg0KQ28gbmd1b2kgbm9pIGR1b25nIHNhdCBjYW8gdG9jIChEU0NUKSBkdSBoaWVu IGRhaSBkZW4gbWF5IHRoaSBjdW5nIG5odSBjaGllYyBvIHRvIA0KTGV4dXMgaG9hYyBjaGllYyBt YXkgYmF5IEFpcmJ1cyAzODAgbGEgY3VuZywgdGEgY3UgbXVhIHZlIGxhIGR1bmcgZHVvYyB0aG9p LCBjbyBnaSBwaGFpIA0KbG8gbmhpLiBOZ3VvaSB2aWV0IGJhaSBuYXkga2hpIGRhcCB0YXUgY2Fv IHRvYyBJQ0UgbyBjaGF1IEF1IGN1bmcgdGhheSBubyBjaGkgbmhhbmgsIGVtLCANCmxpY2ggc3Ug aG9uIHRhdSB0YSBtYSB0aG9pLCBjaGFuZyBjbyBnaSBnaGUgZ29tIGxhbS4NCg0KTmh1bmcgcXVh IHRpbSBoaWV1IGNhYyB0YWkgbGlldSBEU0NUIG51b2MgbmdvYWkgbW9pIHRoYXkgdmFuIGRlIGto b25nIGRvbiBnaWFuIG5odSB2YXkuDQoNCkRTQ1QgbGEgY2EgbW90IGhlIHRob25nIGNvbmcgdHJp bmggdHJhbmcgdGhpZXQgYmkga2hvYSBob2Mga3kgdGh1YXQgKEtIS1QpIGN1YyBreSANCnBodWMg dGFwIHN1IGR1bmcgY2FjIHRoYW5oIHR1dSBjYW8gbmhhdCBjdWEgY29uZyBuZ2hlIG1heSB0aW5o LCB0aW4gaG9jLCBkaWV1IGtoaWVuIHR1IA0KZG9uZyB2YSB0dSB4YSwgZGllbiBsdWMgdmEgZGll biB0dSwgdmkgZGllbiB0dSwgdGhvbmcgdGluIGxpZW4gbGFjLCBjbyBraGksIGtoaSBkb25nIGhv YywgeGF5IA0KZHVuZywgdmF0IGxpZXUuIERhYyBiaWV0IG5vIGxhaSB0cmFpIGRhaSB0cmVuIG5o aWV1IHRyYW0ga20sIHRoYW0gY2hpIGNhIG5naGluIGttLCBxdWEgYmFvIA0KbmhpZXUgZG8gdGhp IGRvbmcgZGFuLCBxdWEgaGFuZyB0cmFtIGNhdSwgaGFtIC4uLiBuZW4gdmllYyBxdWFuIGx5LCB0 cm9uZyBub20gYmFvIGR1b25nIA0Kbm8gdm8gY3VuZyBwaHVjIHRhcCwgdG9uIGtlbSwgZG9pIGhv aSBtb3QgZG9pIG5ndSBraGFpIHRoYWMsIHF1YW4gbHksIGJhbyBkdW9uZyBjbyB0cmluaCANCmRv IGNhbyB2YSBsYW0gdmllYyBjdWMga3kgbmdoaWVtIGNoaW5oLiBUYXQgY2EgY2hpIHZpIGRlIGJh byBkYW0gYW4gdG9hbiBjaGF5IHRhdSwgeWV1IA0KY2F1IGNhbyBuaGF0IHRyb25nIGtoYWkgdGhh YyBEU0NULiANCg0KWWV1IGNhdSB2ZSBhbiB0b2FuIGNoYXkgdGF1DQoNCkNhYyBjaHV5ZW4gZ2lh IGR1b25nIHNhdCBnb2kgYW4gdG9hbiBjaGF5IHRhdSBsYSBjYWkgdGh1bmcga2hvbmcgZGF5IG5n b24gY29uZyBzdWMgdGllbiANCmN1YSBjdWEgRFNDVC4gDQoNCkRvIGxhIHZpIGRvYW4gdGF1IG5h bmcgY2EgbmdoaW4gdGFuIGNoYXkgdm9pIHRvYyBkbyBtYXkgYmF5ICgzMDAtMzUwIGttL2gpIGto aSB4YXkgdGFpIA0KbmFuIHRoaSBoYXUgcXVhIHZvIGN1bmcga2h1bmcga2hpZXAgY2hvIG5ndW9p IHRyZW4gdGF1IGN1bmcgbmh1IG5ndW9pIG8gZ2FuIGR1b25nIHNhdC4gDQpNYXkgYmF5IGJheSB0 cmVuIGJhdSB0cm9pIGJhbyBsYSBjaGFuZyBjbyB0cm8gbmdhaSBnaSwgY29uIHRhdSBjYW8gdG9j ICJiYXkiIHRyZW4gbWF0IGRhdCANCmNvIGJhbyBuaGlldSB0YWkgaG9hIHJpbmggcmFwIHh1bmcg cXVhbmguDQoNCk1vaSBuZ3VvaSBkZXUgYmlldCwgZG9hbiB0YXUgY2hheSB0cmVuIGhhaSB0aGFu aCByYXksIGtoaSBkbyBsdWMgaHVvbmcgdGFtIChodW9uZyB2YW8gDQp0YW0gdHJhaSBkYXQpIGdo aSBkb2FuIHRhdSB4dW9uZyBkdW9uZyByYXkgbGEgeWV1IHRvIHF1YW4gdHJvbmcgbmhhdCBkZSBi YW8gZGFtIHRhdSBjaGF5IA0KZHVvYyBuaGFuaCB2YSBhbiB0b2FuLiBUaGkgbmdoaWVtIGtob2Eg aG9jIGNobyB0aGF5IGtoaSB0b2MgZG8gdGF1IGRhdCAxMjcga20vaCwgYmF0IGN1IA0KbW90IG5n b2FpIGx1YyBuYW8gY3VuZyBzZSBsYW0gdGhheSBkb2kgdGhvbmcgc28gY3VhIGx1YyBodW9uZyB0 YW0uIER1b2kgdGFjIGR1bmcgY3VhIA0KbmdvYWkgbHVjIG5odSBuaGF1LCBuZXUgdGF1IGNoYXkg Y2FuZyBuaGFuaCB0aGkgc3UgdGhheSBkb2kgZG8gY2FuZyBtYW5oLCB0YXUgY2hheSBjYW5nIA0K a2VtIGFuIHRvYW4uIENoYW5nIG5odW5nIGN1IGx5IGdpdWEgaGFpIHRoYW5oIHJheSBwaGFpIGto b25nIGR1b2MgYmllbiBkb2kgbWEgY2hvIGR1IA0KY2hpIGNhbiB0cmVuIG1hdCByYXkgY28gbW90 IGNhaSBkaW5oLCBtb3QgY3VjIGdvLCBtb3QgdmllbiBkYSBob2FjIGNvIHZldCBudXQgbmhvIHhp dSBsYSANCmR1IGxhbSB0YXUgdHJhdCBiYW5oLiBLaGkgZGUgbGVuIG1vdCBjaHUgbWVvIGhvYWMg Y2hvIGxhIGRvYW4gdGF1IGNvIHRoZSBiaSB2YW5nIHJhIGtob2kgDQpkdW9uZyByYXkgaG9hYyBs YXQgbmhhby4gVGh1IHR1b25nIHR1b25nIHRoYW0gaG9hIGtoaSBkbyBzZSByYSBzYW8/IA0KDQpD YWMgdGhhbmggcmF5IGR1b2MgYmF0IHh1b25nIHRhIHZldCBiYW5nIG1vdCBsb2FpIGJ1IGxvbmcg dGhlcDsgaGFuZyB0cmlldSBidSBsb25nIGF5IA0KdHJhaSBkYWkgdHJlbiBkdW9uZyBzYXQgZGkg cXVhIG5oaWV1IHZ1bmcgaGVvIGxhbmgsIG5ldSBrZSBnaWFuIGRhbmggY2FwIGhvYWMgbm9pIGxv bmcgZHUgDQpjaGkgbW90IGNoaWVjIGJ1IGxvbmcgY3VuZyBjbyB0aGUgZ2F5IHRhaSBuYW4gY2hh eSB0YXUuDQoNCktoaSB0YXUgY2FvIHRvYyBjaGF5IHF1YSwga2hvbmcga2hpIGhhaSBiZW4gZHVv bmcgYXAgdmFvIGdheSByYSBtb3QgbHVvbmcgZ2lvIGNhcCANCjh+MTAsIG1vaSB2YXQgdmEgbmd1 b2kgZHVuZyBjYWNoIGR1b25nIHNhdCAyfjMgbWV0IGNvIHRoZSBiaSBjdW9uIHZhbyBkdW9uZyB0 YXUuIA0KDQpLaGkgdGF1IGNoYXkgdmFvIGR1b25nIGhhbSB2b2kgdG9jIGRvIHZpZW4gZGFuIHRo aSBjaGFuZyBraGFjIGdpIGRhbSBkYXUgdmFvIGJ1YyANCnR1b25nIGtob25nIGtoaSwgbmhhdCBs YSBraGkgaGFtIGRhaSB2YWkgY2h1YyBrbS4gVmkga2hvbmcga2hpIHRyb25nIGhhbSAiZGFjIiBo b24gDQpuZ29haSB0cm9pIHJhdCBuaGlldSBuZW4gYXAgbHVjIGtob25nIGtoaSBkZSBsZW4gZGF1 IHRhdSB0YW5nIGRvdCBuZ290IHZhIHJhdCBtYW5oLCBsdWMgDQpjYW4gbmF5IGNvIHRoZSBsYW0g dm8gY3VhIGtpbmgsIGxhbSBoYW5oIGtoYWNoIHUgdGFpLiBEZSBnaWFpIHF1eWV0IHZhbiBkZSBu YXkgbmd1b2kgdGEgDQpwaGFpIGxhbSBkdW9uZyBoYW0gcmF0IHJvbmcsIGhvYWMgZGF0IHF1YXQg dGhvbmcgZ2lvIG1hbmggY2hvIGtob25nIGtoaSB0cm9uZyBoYW0gDQpkdW9jIHRob25nIHRob2Fu Zy4gVG9hbiBibyBkb2FuIHRhdSBwaGFpIGR1b2MgYm9jIGtpbiBraG9uZyBjaGl1IHRhYyBkb25n IGN1YSBraG9uZyANCmtoaSBiZW4gbmdvYWkuIENhYyBkdW9uZyBoYW0gdHJlbiBEU0NUIG8gVHJ1 bmcgUXVvYyBkZXUgZHVvYyBsYW0gdm9pIG1hdCBjYXQgcm9uZyANCnRvaSAxNjAgbTIsIGJhbmcg ZGllbiB0aWNoIHNhbiBib25nIHJvLCBkbyBkbyBnaWEgdGhhbmggY29uZyB0cmluaCBoYW0gYmkg ZG9pIGxlbiBuaGlldSANCmxhbiBzbyB2b2kgaGFtIERTIHRodW9uZy4NCg0KVmkgdGF1IGNoYXkg bW9pIHRpY2ggdGFjIGtob2FuZyAxMDAgbWV0LCBuaGFuaCBob24gdGVuIGJhbiwgbmVuIG5ndW9p IGR1bmcgdHJlbiBkdW9uZyANCnRhdSBraGkgbmhpbiB0aGF5IHRhdSB0dSBraG9hbmcgY2FjaCAy MDAgbSBjdW5nIGtob25nIGtpcCBuaGF5IHJhLiBUaG9uZyBrZSBjdWEgVHJ1bmcgDQpRdW9jIGNo byB0aGF5IDkyLDMlIHRydW9uZyBob3AgbmF5IGRldSB0dSB0aHVvbmcuIA0KDQpEbyB0YXUgY2hh eSBuaGFuaCwgcXVhbiB0aW5oIGxvbiBuZW4gY3UgbHkgaGFtIHRhdSByYXQgZGFpLCB0dSA0MDAw IHRvaSA4MDAwIG0sIHRoaSBkdSBjdSANCmx5IGhhbSBhbiB0b2FuIGtoaSB0YXUgY2hheSAzNTAg a20vaCB0cmVuIHR1eWVuIFZ1IEhhbi1RdWFuZyBDaGF1IGxhIDExIGttLCBiYW5nIA0KcXVhbmcg ZHVvbmcgdHUgZ2EgSGEgTm9pIHRvaSBnYSBZZW4gVmllbiAoa2hpIGNoYXkgMTAwIGttL2gsIGN1 IGx5IGhhbSBiYW5nIDgwMCBtKS4gDQpIYW0ga2hhbiBjYXAsIHRhIGdvaSBsYSAiaGFtIGRvYyIs IHR1eSBjdSBseSBoYW0gbmdhbiBob24gbmh1bmcga2hvbmcgYW4gdG9hbiwgbmd1eSANCmhpZW0g Y2hvIGhhbmgga2hhY2ggdHJlbiB0YXUuIFZvaSBjdSBseSBoYW0gbmh1IHZheSwga2hpIGRhIGJp ZXQgcGhpYSB0cnVvYyBjbyB0cm8gbmdhaSANCm5odSBjYXUgaGFtIHNhcCwgZGF0IGxvIC4uLiBj dW5nIHJhdCBraG8gZHVuZyB0YXUgdHJ1b2MgZGlhIGRpZW0gbmd1eSBoaWVtLiBWaSB0aGUgcGhh aSANCnRpbSBjYWNoIGdpdXAgdGFpIHhlIGxhaSB0YXUgIm5oaW4iIHRoYXkgdHJ1b2MgdGluaCBo aW5oIGR1b25nIHhhIHRyb25nIHZvbmcgMzAga20uDQoNCkRlIGJhbyBkYW0gInRhbSBuaGluIiBh eSwgZG9jIERTIGN1IGNhY2ggbW90IGNoYW5nIGxhaSBwaGFpIGRhdCBtb3QgdGhhcCB0aHUgdGhh cCBzbyANCmxpZXUgKHR1b25nIHR1IHRoYXAgdHJvbmcgaGUgdGhvbmcgZGllbiB0aG9haSBkaSBk b25nKSBkdW5nIHNvbmcgdm8gdHV5ZW4gZ2lhbSBzYXQgeGVtIA0KdHJlbiBEUyBjbyBuZ3VvaSBo b2FjIHN1YyB2YXQsIHZhdCBsYSBoYXkga2hvbmcuIEtoaSBwaGF0IGhpZW4gdGhheSBjbywgdGhv bmcgdGluIG5heSBsYXAgDQp0dWMgdHUgZG9uZyB0cnV5ZW4gbGVuIGNhIGJpbiBsYWkgdGF1IHJh IGxlbmggdGF1IGR1bmcgbGFpLiBOZ29haSBoZSB0aG9uZyB2byB0dXllbiBjb24gY28gDQpoZSB0 aG9uZyBnaWFtIHNhdCBodXUgdHV5ZW4sIGNvIHRoZSBxdWFuIHNhdCB0aGF5IHN1IGJpZW4gZGFu ZyBjdWEgZHVvbmcgc2F0IHRvaSB2YWkgbW0uIA0KDQpEb2MgRFNDVCBwaGFpIGRhdCBoYW5nIG5n aGluIHRoaWV0IGJpIGRpZW4gdHUgdm8gY3VuZyB0aW5oIHZpIHRyZW4gdGF1LCBkdW9pIGdhLCBj aGkgY2FuIA0KbW90IGNoaSB0aWV0IHRoaWV0IGJpIGRvIGJpIHBoYSBob2FpLCBsYXkgY2FwIGhv YWMgYmkgZGkgY2h1eWVuIHRoaSBoYXUgcXVhIHZvIGN1bmcgbmd1eSANCmhpZW0sIG5oZSBuaGF0 IGxhIHRhdSBraG9uZyBjaGF5IGR1b2MsIG5hbmcgaG9uIHRoaSB4YXkgdGFpIG5hbi4gDQoNClRy b25nIGRpZXUga2llbiBraGkgaGF1IG5oaWV0IGRvaSwgY2FjIHRoaWV0IGJpIGRpZW4gdHUgcmF0 IGhheSB0cnVjIHRyYWMsIHZpIHRoZSBkb2kgaG9pIHBoYWkgDQp0aHVvbmcgeHV5ZW4ga2llbSB0 cmEgYmFvIGR1b25nLCB0aGF5IHRoZS4gVHJlbiBtb2kgY2h1eWVuIHRhdSBiYW8gZ2lvIGN1bmcg cGhhaSBjbyANCm1vdCBreSBzdSBjbyBkaWVuIHNhbiBzYW5nIGdpYWkgcXV5ZXQgY2FjIHRydWMg dHJhYyB0aGlldCBiaSBjbyBkaWVuIHRyZW4gdGF1Lg0KDQpEb2MgZHVvbmcgc2F0IHBoYWkgZGF0 IGhhbmcgbmdoaW4gYm8gY2FtIGJpZW4gZG8gbmhpZXQgZG8sIGRvIGFtIGtoaSB0cm9pLCBkbyB0 b2MgZG8gDQpjaGF5IHRhdSwgZG8gZGllbiBhcCAuLi4gY3VuZyBoYW5nIG5naGluIGJvIGtpZW0g dHJhIHBoYXQgaGllbiBkaSB2YXQgdHJlbiBkdW9uZyByYXkuIA0KDQpDYWMgZG9hbiB0YXUgY2hh eSBub2kgZHVvaSBuaGF1IHZhaSBwaHV0IG1vdCBjaHV5ZW4sIGN1IGx5IGNhY2ggbmhhdSBraG9h bmcgMzAga20uIA0KS2hpIHRhdSB0cnVvYyB2aSBseSBkbyBuYW8gZGF5IGJvbmcgbmhpZW4gZ2lh bSB0b2MgZG8gdGhpIHRhdSBzYXUgY3VuZyBwaGFpIGR1b2MgbGFwIHR1YyANCnR1IGRvbmcgZ2lh bSB0b2MgZG8gY2hvIGJhbmcgdm9pIHRvYyBkbyB0YXUgdHJ1b2MsIG5ldSBraG9uZyBzZSBkYW0g ZHVvaSB0YXUgdHJ1b2MuIA0KDQpIYXUgcXVhIGRhbSBkdW9pIHJhIHNhbz8gWGluIG5oYWMgbGFp IHZ1IHRhaSBuYW4gbnVhIGRlbSBuZ2F5IDI2LzMvMTk3OCB0YWkgZ2FjIGNoYW4gDQpkdW9uZyBU cmFuIFBodSBIYSBOb2k6IHRhdSBraGFjaCBjaGF5IHNhdSBkYW0gZHVvaSB0YXUgaGFuZyBjaGF5 IHRydW9jIGRhbmcgZG8gbmdvYWkgDQpjb3QgdGluIGhpZXUgdmFvIGdhIEhhIE5vaSAobHVjIGF5 IGdhIGNodWEgbW8gdGluIGhpZXUgY2hvIHRhdSB2YW8pLiBDYXUgTG9uZyBCaWVuIHlldSANCm5l biBoYW4gY2hlIHRvYyBkbyB0YXUgY2hpIGNvIDEyIGttL2gsIHRoZSBtYSBraGkgZGFtLCBkYXUg bWF5IHRhdSBzYXUgbG9uZyB2YW8gdG9hIA0KaGFuaCBseSwgdG9hIG5heSBiaSBkb2kgbGVuIHRy b2kgZGUgdmFvIHRvYSBraGFjaCBsaWVuIHNhdS4gTmd1eWVuIG5oYW4gZG8gdGFpIHhlIHRhdSBz YXUgDQpidW9uIG5ndSBxdWVuIGtob25nIG5oaW4gdGluIGhpZXUgdHUgZG9uZyBiZW4gZHVvbmcg bHVjIGF5IGRhIGJhdCBkZW4gZG8uIEtoaSBjYWNoIA0KZHVvaSB0YXUgdHJ1b2MgY2h1bmcgNTBt LCB0YWkgeGUgdGF1IHNhdSBtb2kgbmhpbiB0aGF5IGRlbiBkbyAoZGVuIGRhdSBob2EpIHRyZW8g byBkdW9pIA0KdGF1IHRydW9jLCBiaWV0IGxhIHNhcCBkYW0gbmhhdSwgdGFpIHhlIG5oYXkgcmEg bmdvYWkgZHVvYyAoc2F1IGJpIHR1IGNodW5nIHRoYW4pIG5odW5nIA0KaG9uIDMwIGhhbmgga2hh Y2ggY2hldCB0aGFtIGtob2MsIG5oaWV1IG5ndW9pIGJpIHRodW9uZy4gVGh1IHR1b25nIHR1b25n IGtoaSB0b2MgZG8gDQozNTAga20vaCB0aGkgdGFpIGhvYSBraHVuZyBraGllcCB0b2kgZGF1Lg0K DQpWaSB0aGUgRFNDVCBwaGFpIGhvYW4gdG9hbiBkaWV1IGtoaWVuIHR1IGRvbmcsIHN1IGR1bmcg bWF5IHRpbmggY2hpIGh1eSBjaGF5IHRhdS4gTW9pIA0Kc28gbGlldSB2ZSBjaGF5IHRhdSB0aHVv bmcgeHV5ZW4gaGllbiB0cmVuIGJhbmcgaGllbiBzbyBvIFRydW5nIHRhbSBDaGkgaHV5IHZhIHRy dW9jIA0KbWF0IHRhaSB4ZSBsYWkgdGF1LiBUaGlldCBiaSBuYXkgYmFvIGRhbSB0YWkgeGUgY28g dGhlICJuaGluIiB0aGF5IDMyIGttIHBoaWEgdHJ1b2MgKERTIA0KdG9jIGRvIDEwMCBrbS9oOiA4 IGttKS4gDQoNClR1eSBjbyBoZSB0aG9uZyB0dSBkb25nIGxhaSB0YXUgbmh1bmcgdmFpIHRybyBu Z3VvaSB0YWkgeGUgdmFuIHJhdCBxdWFuIHRyb25nLiANClRhaSB4ZSBsYWkgdGF1IChtb3QgY2hp bmgsIG1vdCBwaHUpIHN1b3QgaGFuaCB0cmluaCBraG9uZyBkdW9jIHJvaSBjYSBiaW4gbGFpLiBU YWkgeGUgDQpjaGluaCBraG9uZyBkdW9jIHJvaSBiYW4gbGFpIGR1IGNoaSBtb3QgZ2lheSwgdmEg Y2hpIGR1b2MgcXVheSBtYXQgdmUgcGhpYSB0cnVvYywgY2FtIA0KcXVheSBkYXUsIG5naGllbmcg ZGF1OyBzdW90IGhhbmggdHJpbmgga2hvbmcgZHVvYyBkaSB2ZSBzaW5oISAodmkgdGhlIG5ldSBo YW5oIHRyaW5oIHRyZW4gDQo1IGdpbyBsYSByYXQgZ2F5ISkgDQoNCkxhaSB0YXUgZHVvYyB0dXll biBuZ2hpZW0gbmdhdCBuaHUgdHV5ZW4gcGhpIGNvbmcuIFRhaSB4ZSBkYSBjbyBpdCBuaGF0IDE1 IG5hbSBsYWkgdGF1IA0KRFMgY2hheSBkaWVuIG1vaSBkdW9jIGR1IGhvYyBsb3AgZGFvIHRhbyBs YWkgdGF1IGNhbyB0b2MuIEhvYyBsYWkgMyB0aGFuZyBjbyB0aGUgZHVvYyANCmNhcCBjaHVuZyBj aGkgbmh1bmcgZGUgdHJvIHRoYW5oIHRoYW5oIGxhaSBjaGluaCBwaGFpIG1hdCBpdCBuaGF0IDcg bmFtLiBIYW5nIG5nYXkgDQp0cnVvYyBraGkgbGVuIHRhdSwgdGFpIHhlIHBoYWkgZHVvYyBraWVt IHRyYSBkbyBjb24gdHJvbmcgbmd1b2ksIGJhbmcgdGhpZXQgYmkga2llbSB0cmEgDQpjaGluaCB4 YWMgaG9uIG5oaWV1IHNvIHZvaSB0aGlldCBiaSBjYW5oIHNhdCBkdW5nLiBUYWkgQ3VjIERTIFRh eSBBbiAoVHJ1bmcgUXVvYykgMTMwMCANCnRhaSB4ZSBkdSB0aGkgY2hpIGNvIDEwNiBuZ3VvaSBk dW9jIGNhcCBiYW5nIGxhaSB0YXUgY2FvIHRvYy4NCg0KVGF1IGNhbyB0b2Mga2hpIGNoYXkgcGhh aSBib2Mga2luIGhvYW4gdG9hbiBuaHUgbWF5IGJheSBkYW5nIGJheS4gVHJlbiBtb2kgdG9hIGRl dSBkYXQgDQp0aGlldCBiaSB0dSBkb25nIGJhbyBjaGF5IGN1YyBuaGF5LCBraG9pIGN1YSBtb3Qg ZGlldSB0aHVvYyBsYSBkdSBkZSB0aGlldCBiaSBuYXkgaG9hdCANCmRvbmcgdmEgdHUgYmF0IHRh dSBkdW5nIGxhaSBuZ2F5LiBWaSB0aGUgdHJlbiB0YXUgdHV5ZXQgZG9pIGNhbSBodXQgdGh1b2Mg bGEuDQoNCkJhbyBjaGkgdHVuZyBkdWEgdGluIGRhIGNvIHRydW9uZyBob3AgbWF5IGJheSByb2kg Y2hpIHZpIGJpIGNoaW0gZGFtIHZhby4gVGF1IGhvYSBjYW8gDQp0b2MgY28ga2hhYyBnaSBtYXkg YmF5IGRhdS4gS2hpIHRhdSBkYW5nIGNoYXksIGJhdCBjdSB2YXQgZ2kgZHUgbmhvIG5ldSB2YSB2 YW8gdGF1IHNlIA0KZGV1IHNlIGxhbSBob25nIHZvIHRhdSwgdm8gY3VhIGtpbmgsIGhvbmcgY2Fj IHRoaWV0IGJpIGRpZW4gdHUgdGluaCB2aSB0cmVuIHRhdSAuLi4ga2V0IGN1YyANCmN1YyBreSB0 YWkgaGFpLiBOZW0gZGEsIG5lbSByYWMgbGVuIHRhdSBkYW5nIGNoYXkgbGEgZGlldSB0dXlldCBk b2kgY2FtIChvIHRhIGxhIGNodXllbiANCnRodW9uZyBuZ2F5KS4gQ3VhIGtpbmggdHJlbiB0YXUg a2hvbmcgZHVvYyBsYW0gYmFuZyBsb2FpIGtpbmggcXVhIGJlbiwgdmkgY28gbGFuIHRhdSANCnhh eSB0YWkgbmFuIG5ndW9pIGJlbiBuZ29haSBraG9uZyB0YWkgbmFvIHBoYSBkdW9jIGN1YSBraW5o IHZhbyBjdXUgbmd1b2kNCg0KTmd1b2kgRHVjIG5vaSB0aWVuZyBsYW0gdmllYyBreSBsdWF0LCB0 aGFuIHRyb25nIHRoZSBtYSBjdW5nIHhheSByYSB2dSB0YWkgbmFuIG5nYXkgDQozLzYvMTk5OCB0 cmVuIHR1eWVuIERTQ1QgSGFub3Zlci1IYW1idXJnIChFc2NoZWRlIElDRSB0cmFpbiBkaXNhc3Rl ciksIGNoaSB2aSBtb3QgbG9pIA0KbmhvIG8gYmFuaCB4ZSBraGkgdGF1IGRhbmcgY2hheSB2b2kg dG9jIGRvIDIwMCBrbS9oLiBIYXUgcXVhIHRyb25nIHNvIDI4NyBraGFjaCB0cmVuIA0KdGF1IGNv IDEwMSBuZ3VvaSBjaGV0LCA4OCBuZ3VvaSBiaSB0aHVvbmcsIHRoaWV0IGhhaSB2YXQgY2hhdCBs b24gdm8ga2UuIE1vdCBrZXQgY3VjIHRhaSANCmhhaSBudWE6IERhaSBMb2FuIHRoYXkgdGhlIGhl dCB2aWEgdm9pIGh1eSB0aG9hIHRodWFuIGNhIHR5IFVTRCBtdWEgY29uZyBuZ2hlIERTQ1QgDQpE dWMsIGNodXllbiBzYW5nIG11YSBjb25nIG5naGUgTmhhdC4NCg0KRHVvbmcgZGF5IGNhbyB0aGUg MjUtMjcga1YgY2hheSBkYWkgc3VvdCBEU0NUIGxhaSBraG9uZyB0cmVvIGNhbyBuaHUgZHVvbmcg ZGF5IGN1YSANCm5nYW5oIGRpZW47IHZpIHRoZSBhaSBxdWEgbGFpIGhvYWMgZHVuZyBkdW9pIGNv dCBkaWVuIHNlIHJhdCBuZ3V5IGhpZW0sIG5ndW9pIG1hbmcgdmF0IGdpIA0KY2FvLCBvIHRvIGNo byBoYW5nIGNhbyBkaSBkdW9pIGR1b25nIGRheSBuYXkgc2UgY28gdGhlIGNoYW0gZGllbiBob2Fj IGJpIGRvbmcgZGllbiBjYW8gDQp0aGUgcGhvbmcgeHVvbmcuDQoNCkRlIGJhbyBkYW0gY2hheSB0 YXUgYW4gdG9hbiwgbW9pIG5nYXkgRFNDVCBwaGFpIGRhbmggcmEgNCB0aWVuZyBkb25nIGhvIG5n dW5nIGNoYXkgDQp0YXUgZGUgbGFtIGNhYyBjb25nIHZpZWMga2llbSB0cmEgYW4gdG9hbiB2YSBk dXkgdHUgYmFvIGR1b25nLiBIYW5nIG5nYXkgdHJ1b2Mga2hpIGNoYXkgDQpjaHV5ZW4gdGF1IGNo byBraGFjaCBkYXUgdGllbiwgbmdhbmggRFMgcGhhaSBjaG8gY2hheSBtb3QgZG9hbiB0YXUga2ll bSB0cmEsIGtob2FuZyANCjQwfjUwIGt5IHN1IG1hbmcgdGhlbyBjYWMgdGhpZXQgYmkgZG8gZGFj IHRpbmggdmkgdGhlbyB0YXUga2llbSB0cmEgdG9hbiB0dXllbi4gVGhpIGR1IA0KdGhpZXQgYmkg aG9uZyBuZ29haSBraWVtIHRyYSB0b2FuIGJvIGR1b25nIHJheSBjbyBjaG8gbmFvIHJhbiBudXQg aGF5IGtob25nOyB0aGlldCBiaSANCmRpbmggdmkgM0QgbGFzZXIgZG8gZGFjIHhlbSB0dXllbiBk dW9uZyBjbyB0aGF5IGRvaSBnaSBraG9uZyB2ZSAzIGNoaWV1IG5nYW5nLCBkb2MsIA0KZHVuZywg dm9pIGRvIGNoaW5oIHhhYyB0b2kgbWkgbGkgbWV0Li4gDQoNClR1eWVuIERTQ1QgVnUgSGFuLVF1 YW5nIENoYXUgKDEwNjkga20pIHRydW9jIG5nYXkgZHVhIHZhbyBzdSBkdW5nIGRhIHBoYWkgY2hh eSANCnRodSB0YXUga2hvbmcgdGFpIDUwIG5naGluIGttIHZhIHRpZW4gaGFuaCAxODg2IGxhbiBr aWVtIHRyYSBkb25nIGJvLg0KDQpUYXUgY2FvIHRvYyBraGkgY2hheSBwaGF0IHJhIHRpZW5nIG9u IHJhdCBraG8gY2hpdSwgZ29tIHRpZW5nIGJhbmggeGUgZGUgdHJlbiBkdW9uZyByYXksIA0KdGll bmcgcml0IGN1YSBraHVuZyBsYXkgZGllbiBhcCB2YW8gZHVvbmcgZGF5IGNhbyB0aGUsIHZhIHRp ZW5nIG9uIGdheSByYSBib2kga2hpIGRvbmcgDQpob2MuIFZpIHRoZSBoYWkgYmVuIERTIHZ1bmcg Y2hheSBxdWEgbm9pIGRhbiBvIHBoYWkgeGF5IGhhbmcgcmFvIGNhbyAzIG0gbmdhbiB0aWVuZyAN CmRvbmcgdGhvYXQgcmEgbmdvYWkuDQoNCkRlIGJhbyBkYW0gYW4gdG9hbiBjaG8gZGFuIGhhaSBi ZW4gZHVvbmcsIGtob2FuZyBjYWNoIHF1eSBkaW5oIHRvaSB0aGlldSBnaXVhIG5oYSB2b2kgDQpE U0NUIGxhIDUwIG0gbmV1IGhhaSBiZW4gRFMgZGV1IGNvIG5oYSwgaG9hYyAyMCBtIG5ldSBjaGkg bW90IGJlbiBEUyBjbyBuaGEuDQoNClRhdSBjYW8gdG9jIGRvaSBob2kgeWV1IGNhdSBhbiB0b2Fu IGNhbyB2aSB0aGUga2hvbmcgY2hvIHBoZXAgeGF5IHJhIGJhdCBreSBzbyB4dWF0IG5hbyANCnRy b25nIHhheSBkdW5nLCBraGFpIHRoYWMsIHF1YW4gbHkuIERhaSBMb2FuIGNvIG5lbiB0YW5nIEtI S1Qga2hhIGNhbyB0aGUgbWEga2hpIGxhbSANCnhvbmcgRFNDVCBCYWMgTmFtIGRhaSAzNDUga20g dmFuIHBoYWkgbW9pIDM1IHRhaSB4ZSBuZ3VvaSBEdWMgdmEgUGhhcCBzYW5nIGxhaSB0YXUgDQpk b25nIHRob2kga2VtIGNhcCBuZ3VvaSBiYW4geHUgKGRhIGR1b2MgaG9jIGxhaSB0YXUgbyBudW9j IG5nb2FpKS4gS2hpIHhheSBkdW5nIHR1eWVuIA0KRFNDVCBuYXkgaG8gY3VuZyBwaGFpIHRodWUg MjAwMCBreSBzdSBjdW5nIG5oaWV1IGNvbmcgbmhhbiBsYW5oIG5naGUgbmd1b2kgbnVvYyANCm5n b2FpLiANCg0KQ28gdGhlIG5vaSBraGFpIHRoYWMgdmEgcXVhbiBseSBEU0NUIGtobyBob24sIHRv biBrZW0gaG9uIGNhYyB0dXllbiBoYW5nIGtob25nLg0KDQooQmFpIHNhdTogQ2FjIHRyYW5nIGJp IGt5IHRodWF0IHRyZW4gRFNDVCkNCg0KaHR0cDovL3d3dy5uZ3VvaS12aWV0LmNvbS9hYnNvbHV0 ZW5tL2FubXZpZXdlci5hc3A/YT0xMTM2Njcmej0xNTcgTW9uZGF5LCBNYXkgMzEsIDIwMTANCg0K VmF5IG5vIHU/IExvIGdpLCBjb24gY2hhdSB0YWkgZ2lvaSBob24gc2UgdHJhIQ0KIA0KSG9pIHRo dWMgdGhvbmcgcXVhIGR1IGFuIHhlIGx1YSBjYW8gdG9jIGRlIHZvIHZldCB0cm9uZyAiY2h1eWVu IHRhdSBjaG90Ij8NCg0KTmdheSAyOCB0aGFuZyA1IG5hbSAyMDEwLCB0byB0dWFuIGJhbyAiVHVh biBWaWV0IE5hbSIgbW90IGJvIHBoYW4gY3VhIGJhbyBkaWVuIHR1IA0KVmlldE5hbU5ldCBjbyBi YWkgdmlldCAiUGhhdCBuZ29uIGFuIHR1b25nOiBWYXkgbm8gdT8gTG8gZ2ksIGNvbiBjaGF1IHRh aSBnaW9pIGhvbiBzZSANCnRyYSEiDQoNCkJhaSB2aWV0IG5heSBkYSBiaSBnbyB4dW9uZyBuaHVu ZyBuaGlldSBkaWVuIGRhbiwgYmFvIGRpZW4gdHUga2hhYyBkYSBsdXUgZHVvYyB2YSBwaG8gDQpi aWVuIGRpIGtoYXAgbm9pLiBNb2kgZG9jIGdpYSB0aGVvIGRvaSBkdW9pIGRheS4NCg0KS2hhbmgg TGluaA0KDQpUdWFuIFZpZXQgTmFtIC0gMjggdGhhbmcgNSBuYW0gMjAxMA0KDQpTdW90IHR1YW4g cXVhLCBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBCYWMtTmFtICJnYXkgc290IiB0cm9uZyBuZ2hp IHRydW9uZyB2YSBuZ29haSANCnZpYSBoZSB4YSBob2kuIEhhbmcgbG9hdCBjYWMgcGhhdCBuZ29u IGFuIHR1b25nIHR1YW4gcXVhIGRldSBsaWVuIHF1YW4gZGVuIGRhaSBkdSBhbiANCm5heS4gSGF5 IGN1bmcgVHVhbiBWaWV0IE5hbSBkaWVtIGxhaS4NCg0KIlRpbmggdGhlIG5hbyBjdW5nIHJlIGhv biB2ZSBtYXkgYmF5Ig0KDQpNb2kgZGF1IGhlIHRyb2kgZGEgbm9uZyBudWMsIGRhbiBIYSBOb2ks IGRhbiBUUC4gSENNIGRvIG1vIGhvaSBob3QgY2hlbiBjaHVjIGRpIGxhaSANCnRyZW4gZHVvbmcg bWEgdmFuIGxvIG5nYXkgbmdheTogc28gY3VwIGRpZW4gbmdhbmcgeHVvbmcsIHNvIGR1b25nIHRh Yywgc28gdGhpdCBsb24gdGFpIA0KeGFuaCwgc28gYnVpIGJhbSBvIG5oaWVtIHZhIHNvIG5nYXAg bHV0IGR1IHRyb2kgbmFuZyB0by4uLiBUaGkgZGF5LCBUUC4gSENNIG5vbmcgNDAgZG8gDQptYSBk YW4gdmFuIG5ndXAgbGFuIGRvIHRob2ksIG5ndXllbiBuaGFuIHRoaSBiaWV0IHJvaSwga2hvIGxh bSwgbm9pIG1haSwgbGEgZG8gdHJpZXUgDQpjdW9uZy4NCg0KTmh1bmcgZHUgc2FvIGN1bmcgY28g Y2FpIGRlIG1hIHF1ZW4gZGkgZHUgdGh1IGxvIGF1IHRydW9jIG1hdDogQ2hpbmggcGh1IGRhIGNv IG1vdCANCiJtb24gcXVhIiBiYXQgbmdvIGRhbmggdGFuZyBjaG8gUXVvYyBIb2ksIGN1bmcgY28g bmdoaWEgbGEgc2UgdGFuZyBjaG8gdG9hbiBkYW46IEdpYWMgDQptbyBkdW9uZyBzYXQgY2FvIHRv Yy4NCg0KRHVvbmcgbmhpZW4sIG5ldSB0YSBjbyBkdW9uZyBzYXQgY2FvIHRvYyBoaWVuIGRhaSBu aGF0IHRoZSBnaW9pIHRoaSBraGkgbXVvbiByYSBiaWVuIGhvbmcgDQpnaW8gZGUgdHJvbiBub25n IG8gY2FjIHRoYW5oIHBobyBsb24gdGllbiBsb2kgYmlldCBiYW8sIG5oYXQgbGEgY2hhbmcgYW5o IGh1b25nIGdpIG1heSB0b2kgDQpjb25nIHZpZWMgY3VuZyBuaHUgdG9pIGhvYSBiaW5oIHRoZSBn aW9pLiBOYXkgbmhlLCB0aGF5IHZpIHBoYWkgY2hlbiBjaHVjIHRyb25nIG5vaSBkbywgdGEgDQpj byB0aGUgY2hvaSBzYW5nIGdhcCBuZ2hpbiBsYW4sIGhldCBnaW8gbGFtIHRoaSBkaSBkdW9uZyBz YXQgY2FvIHRvYyB2YW8uLi4gVGhhbmggSG9hIGFuIA0KZ2hlLCBhbiB0b20uLi4gcm9pIGxhaSB2 ZSBIYSBOb2kgZGkgbGFtICJtb3QgbmdheSBuaHUgbW9pIG5nYXkiLiBEaXAgY3VvaSB0dWFuIHRo aSBjbyB0aGUgDQp2aSB2dSBzYW5nIEhhIE5vaSAtIHRydWEgRGEgTmFuZyAtIHRvaSBUUC4gSENN LCBraG9pIGxvIHRhYyBkdW9uZywga2hvaSBsbyBvbmcgZGllbiBsdWMgDQpjdXAgZGllbiBuZ2Fu ZyB4dW9uZywga2hvaSBsbyBidWkgYmFtIQ0KDQpOb2kgdGhpIG5vaSB0aGUgdGhvaSwgYmluaCB0 YW0gbWEgbmdoaSBsYWkgdGhpIHBoYW4gdmFuIGtob25nIGJpZXQgZG9uZyBsdW9uZyBjdWEgbWlu aCANCmNvIGR1IG11YSB2ZSB0YXUgY2FvIHRvYyBoaWVuIGRhaSBuaGF0IHRoZSBnaW9pIGRlIGNo b2kgbmdvbmcgbmh1IHRoZSBraG9uZy4gQ28gbGUsIA0KY2h1bmcgdGEgc2UgY2hhdSByaWEgcXVh bmggdmFpIGJpYSBjbyBkZSBuZ2hlIGtlIHZlIGNhaSB0aHUgZGkgdGF1IGNhbyB0b2Mgbmh1IG5n aGUga2UgDQpjaHV5ZW4gY28gdGljaCBBbmRlY3hlbi4gTWEgbmh1IHRoZSBjdW5nIGRhIGxhbmcg bWFuIGxhbSByb2kgdmkgbWFpIDIwIG5hbSBudWEgbW9pIA0KY28gdGF1IGNhbyB0b2MgaGllbiBk YWkgbmhhdCB0aGUgZ2lvaSBjbyBtYS4NCg0KR2lhYyBtbyBuYW8gcm9pIGN1bmcgcGhhaSB0aW5o IGdpYWMgdmEga2hpIGRhIHRpbmggdGFvIGhvbiBtb3QgY2h1dCB0aGkgY2F1IGhvaSBraG8gY2hp dSANCmNob3QgbmF5IHNpbmg6IFZpIHNhbyAiaG8iIGxhaSBuaGlldCB0aW5oIHZvaSBkdW9uZyBz YXQgY2FvIHRvYyBoaWVuIGRhaSBuaGF0IHRoZSBnaW9pIGRlbiANCnRoZSBuaGk/IENodSBuaGll bSBVeSBiYW4gVGFpIGNoaW5oIC0gTmdhbiBzYWNoIFBodW5nIFF1b2MgSGllbiBjbyBuZ2F5IGRh cCBhbjogDQoiRGF5IGxhIGR1IGFuIGRvbiBkYXUsIGNvIHRhbSBuaGluIHhhLiBOYW0gMjAzMCwg a2hpIGR1IGFuIGRpIHZhbyBob2F0IGRvbmcsIHRodSBuaGFwIA0Kbmd1b2kgZGFuIHNlIGtoYWMs IGNvIHRoZSBsYSAzLDAwMCBVU0Qvbmd1b2kgY2h1IGtob25nIHBoYWkgMSwwMDAgVVNEIG5odSBi YXkgZ2lvLiANClZpIHRoZSwgbmV1IHRpbmggZ2lhIHZlIGR1b25nIHNhdCBjYW8gdG9jLCBwaGFp IHRpbmggYmFuZyB0aHUgbmhhcCBsdWMgZG8uIFRpbmggdGhlIG5hbyANCmN1bmcgdmFuIHJlIGhv biB2ZSBtYXkgYmF5ISINCg0KRHVuZyBsYSB0YW0gaHV5ZXQgY3VhIGJvIG1lIGNobyB0dW9uZyBs YWkgY3VhIGNvbiBjYWkgZ2lvbmcgbmh1IGR1IHRpbmggdmF5IGJhIGNvbiBsb2kgDQp4b20gZGUg eGF5IG1vdCBuZ29pIG5oYSBkZXAgdmEgbW90IG5oYXQgY2hvIGR1YSBjb24gaG9tIG5heSBjb24g ZGFuZyBiYXAgYmUgaSB0by4gDQpMaWV1IGR1YSBjb24gbmF5IDIwIG5hbSBudWEgY28gdGhpY2gg byBuZ29pIG5oYSBtYSBibyBtZSBubyBob20gbmF5IGNobyBsYSBkZXAsIGxhIHZvIA0KY3VuZyBj YW4gdGhpZXQga2hvbmcsIG5oYXQgbGEga2hpIGNoaW5oIG5vIHBoYWkgdHJhIG5vIGNobyBuZ29p IG5oYSBkbz8NCg0KQ2h1YSBiaWV0IGtldCBjdWMgcmEgc2FvLCBjaGkgdGhheSBRdW9jIEhvaSBj aGlhIGxhbSBoYWkgcGhlIHJvIHJldCwgdm9pIG5odW5nIHBoYXQgbmdvbiANCnh1bmcgZGFuZyB4 ZXAgaGFuZyBhbiB0dW9uZyB0dWFuIG5heS4NCg0KQ3UgZG9uZyB5IGNodSB0cnVvbmcgZGksIGxv aSBoYWkgdGluaCBzYXUhDQoNClRydW9jIHRpZW4gaGF5IHRodSBkaWVtIGRhbmggbmh1bmcgbmhh biB2YXQgZGluaCBkYW0gY3VhIHBoZSB1bmcgaG8uIEJvIFRydW9uZyBHaWFvIA0KVGhvbmctVmFu IFRhaSBIbyBOZ2hpYSBEdW5nIGJhbyBjaG9uIHBodW9uZyBhbiBob2FuaCB0cmFuZyBuaGF0LCBs YW0gZHVvbmcgc2F0IA0KY2hvIHRvYyBkbyAzMDAga20vaCBkdSBjaGkgY2hvIGR1b2MgaGFuaCBr aGFjaCB2aSAibXVvbiBkaSBuZ2F5IHZhbyBoaWVuIGRhaSIuIEN1IA0KdGhlbyBjYWNoIHN1eSBs dWFuIG5heSB0aGkgcGhhaSBydXQgcmEga2V0IGx1YW4gbmh1IHNhdTogTmh1bmcgbnVvYyBjbyBk dW9uZyBzYXQgdG9jIGRvIA0KMjAwIGttL2ggKGhpbmggbmh1IGNoaWVtIGRhIHNvISksIGRlIG5n dW9pIHZhIGhhbmcgaG9hIGNvIHRoZSBjdW5nIGR1IGhhbmgsIGR1dCBraG9hdCANCmxhIGtob25n IGhpZW4gZGFpISBTdSBsdWEgY2hvbiBjdWEgaG8gZHV0IGtob2F0IGxhIGtob25nIGtob24gbmdv YW4gbmh1IGNodW5nIHRhIHJvaS4NCg0KSG9hbiB0b2FuIGRvbmcgY2FtIHZhIGNoaWEgc2UgcXVh biBkaWVtIG5heSB2b2kgQm8gVHJ1b25nIEhvIE5naGlhIER1bmcsIFRodSANClRydW9uZyBOZ28g VGhpbmggRHVjICJ4dWkiIGNhYyBEQlFIIGhheSBjdSB0aG9uZyBxdWEgY2h1IHRydW9uZyByb2kg Y2hpbmggcGh1IHNlIA0KY2h1YW4gYmkgYmFvIGNhbyBraGEgdGhpIHBoYW4gdGljaCBoaWV1IHF1 YSBraW5oIHRlLCBwaHVvbmcgYW4gaHV5IGRvbmcgdm9uLCBjaGkgcGhpLCBnaWEgDQpjYS4uLiBU aGVvIGxvaSBvbmcgRHVjIHRoaSAiQm8gbWUgY2h1YSBkb25nIHkgY2hvIGNvbiBjYWkgY3VvaSB2 byB0aGkgY2h1YSB0aGUgYmFuIA0Kbmh1bmcgdmllYyBjdSB0aGUiLiBDaGEsIGNodXllbiBjdW9p IGhvaSBjaGkgYW5oIGh1b25nIGRlbiBxdWFuIHZpZW4gMiBobyB2YSBuZXUgMiBobyANCmNvIGNo dSB0cnVvbmcgY3VvaSB2byBjaG8gY29uIHRoaSBjdW5nIGNhbiBjdSB0cmVuIHR1b2kgaG9uIG5o YW4gaG9wIHBoYXAgbWEgdGhvaSwgcGhhbiANCmNvIGJhbiBjb24gbGFpIHRoaSBjdW5nIHBoYWkg aG9pIGNvbjogTWF5IHRoaWNoIGxheSBhaT8gQ28gdGhpY2ggbGF5IGR1YSBBIGNvbiBvbmcgQiBo YXkgDQpkdWEgQyBjb24gYmEgRCBraG9uZz8NCg0KTmh1bmcgeGF5IGR1b25nIHNhdCBjYW8gdG9j IGxhaSBsYSBjaHV5ZW4gcXVvYyBnaWEgZGFpIHN1LCBzbyBzYW5oIHZvaSBuaGF1IGRhIGtoYXAg DQpraGllbmcgcm9pLiBDdSBnaWEgc3Ugc28gc2FuaCBjdWEgb25nIFRodSBUcnVvbmcgRHVjIGxh IGR1bmcsIHRoaSB0aHUgaG9pIGNvIGdpYSBkaW5oIA0KbmFvIGN1b2kgaG9pIG1hIGxhaSB2YXkg dHUgQSBkZW4gWiwgbmhhIG5naGVvIG5odW5nIGxhaSBtdW9uIGxhbSBkYW0gY3VvaSBjbyBkYXQg DQpuZ2FuZyBreSBsdWMgdGhlIGdpb2kga2hvbmc/IEhhbiBuaGllbiBjYXUgdHJhIGxvaSBzZSBs YSBraG9uZy4NCg0KVGFuIFRodXkgSG9hbmcga2hvbmcgcXV5ZXQgbGlldCB0aGkga2hvbmcgY28g VmFuIEx5IFRydW9uZyBUaGFuaCENCg0KQm8gVHJ1b25nIFRhaSBDaGluaCBWdSBWYW4gTmluaCB0 aGkgdmkgdmllYyB4YXkgZHVvbmcgc2F0IGNhbyB0b2Mgbmh1IG1vdCBnaWEgZGluaCANCnhheSBu aGEsIG5ldSBraG9uZyBkdSB0aGkgcGhhaSBkaSB2YXkuIE9uZyB0cmEgbG9pIGNoYWMgbmljaCBy YW5nICJ0aG9pIGdpYW4gdmF5IG5vIG5oaWV1IA0KY3VhIGR1b25nIHNhdCBsYSBzYXUgbmFtIDIw MjAsIG5odW5nIGx1YyBkbyBuZ3VvbiBsdWMga2luaCB0ZSBjdWEgdGEgc2Uga2hhYy4gQmluaCBx dWFuIA0KZGF1IG5ndW9pIGN1YSBjaHVuZyB0YSBiYXkgZ2lvIG1vaSBsYSAxLDIwMCBVU0QsIG5o dW5nIGR1IHRpbmggdHJvbmcgY2hpZW4gbHVvYyBwaGF0IA0KdHJpZW4ga2luaCB0ZS14YSBob2ks IGJpbmggcXVhbiB0aHUgbmhhcCBkYXUgbmd1b2kgY3VhIGNodW5nIHRhIG5hbSAyMDIwIGxhIHRy ZW4gMywwMDAgDQpVU0QiLiANClNhbyB0aGUgbmhpPyBDdSB0aGVvIGh1YSBoZW4gY3VhIEJvIFRy dW9uZyBOaW5oIHRoaSBraW5oIHRlIFZpZXQgTmFtIDEwIG5hbSB0b2kgcGhhaSANCnRhbmcgdHJ1 b25nIHZvaSB0b2MgZG8gaGV0IHN1YyBwaGkgbWEgbGEgMTAlL25hbSwgY29uIGN1IG1hIGNodWEg ZGVuIDYlIG5odSBuYW0gdnVhIA0Kcm9pLCBoYXkgNyUsIDglIG5odSBuaHVuZyBuYW0gc2FuZyBz dWEgdGhpIGN1bmcgY2hpdSB0aG9pLg0KDQpDb24gcmF0IG5oaWV1IGxhcCBsdWFuIHVuZyBobyBk dSBhbiwgbmdoZSBkYXUgbGEgdHUgbmh1bmcgZGFpIGJpZXUgY3VhIGNhYyB0aW5oIGNvIGR1b25n IA0Kc2F0IGRpIHF1YSwgaGF5IG5odW5nIGRhaSBiaWV1IGRhIGR1b2MgbW9pIGRpIHRoYW0gcXVh biBoZSB0aG9uZyBkdW9uZyBzYXQgaGllbiBkYWkgY3VhIA0Kbmh1bmcgY3VvbmcgcXVvYy4gTmh1 bmcgZG9jIGRhbyBuaGF0IHNlIGxhIHBoYXQgYmlldSBjdWEgZ2lhbSBkb2MgY29uZyBhbiBUUC4g SGFpIA0KUGhvbmcgVHJhbiBCYSBUaGlldTogIk5ndW9pIHRhIGNobyB2YXkgdGhpIG1pbmggY3Ug dmF5LCBjbyBub2kgY2hvIHZheSBsYSB0b3QgcXVhLiBDdSB5IA0Ka2llbiByYSwgeSBraWVuIHZh by4gTmV1IGNoaW5oIHBodSBkYSBxdXlldCBsaWV0IG5odSB2YXkgdGhpIHRhaSBzYW8gUXVvYyBI b2kga2hvbmcgdW5nIA0KaG8gY2hpbmggcGh1PyBUYW4gVGh1eSBIb2FuZyB4dWEgbmV1IGtob25n IHF1eWV0IGxpZXQgdGhpIGxhbSBzYW8gZGUgbGFpIFZhbiBMeSANClRydW9uZyBUaGFuaD8iDQoN ClRhbiBUaHV5IEhvYW5nIG1hIG5naGUgdGhheSBzbyBzYW5oIG5heSwga2hvbmcgYmlldCBvbmcg dGEgc2Ugbm9pIGdpYW4gZGVuIG11YyBuYW8/IA0KTmdheSB4dWEgb25nIGxhbSBWYW4gTHkgVHJ1 b25nIFRoYW5oLCBuYW8gY28gcGhhaSBkZSBwaHVjIHZ1IG5odW5nIHRodW9uZyBraGFjaCANClZJ UC4gQ2FpIHRob2kgY2hpZW4gdHJhbmggbGllbiBtaWVuIGF5LCBWYW4gTHkgVHJ1b25nIFRoYW5o IGxhIHR1b25nIHRoYW5oIHZ1bmcgY2hhYyANCmRlIG51b2MgVGFuIGtob2kgcGhhaSBjaGl1IGhv YSB0dSBwaHVvbmcgQmFjIHRob2kuIEFpIG1hIGJpZXQgc2F1IG5heSBsYWkgY28gbmd1b2kgdmFj IA0KdHVvbmcgdGhhbmggY3VhIG9uZyByYSBkZSBsYXAgbHVhbiBuaHUgdGhlIGJhbyBnaW8/DQoN CkNvbiBjaGF1IHRhaSBnaW9pIGhvbiBjaHVuZyB0YSBzZSB0cmEgbm8/DQoNCkJhbiBjaHV5ZW4g eGF5IGR1b25nIHNhdCBjYW8gdG9jIGxhIGJhbiBjaHV5ZW4gZGkgdmF5LCBkYSB2YXkgdGhpIHBo YWkgdHJhIG5vLiBMYWkgbGEgbG9pIA0KY3VhIEJvIFRydW9uZyBUYWkgQ2hpbmggVnUgVmFuIE5p bmg6ICJLaGkgbmFvIGNoYW0gbXVjIGFuIHRvYW4gbGEgZG8gbWluaCBsdWEgY2hvbiANCnRob2ku IENoaW5oIHBodSBkYSBsdWEgY2hvbiBnaW9pIGhhbiBsYSA1MCUgR0RQLCBjdW5nIHR1eSB0aWVt IG5hbmcga2luaCB0ZSBtYSBjbyANCm51b2MgY2hvbiBtdWMgY2FvIGhvbi4gVmFuIGRlIGxhIHBo YWkgdHJhIGR1b2Mgbm8uIFZheSBpdCBtYSBraG9uZyB0cmEgZHVvYyB0aGkgdmFuIHZvIA0Kbm8g bmh1IHRodW9uZyIuDQoNClBoYWkgY29uZyBuaGFuIGJvIHRydW9uZyBub2kgZHVuZyBxdWEsIHRy YSBkdW9jIHRoaSB2YXkgYmFvIG5oaWV1IG1hIGtob25nIGR1b2M/IFZhbiANCmRlIGxhIGFpIGRh bSBjaGFjIHNlIHRyYSBkdW9jPyBDaHVhIGNvIGR1b25nIHNhdCBjYW8gdG9jIG1hIGR1IG5vIGN1 YSBjaGluaCBwaHUgZGVuIA0KY3VvaSBuYW0gMjAwOSBkYSBsYSA0MS45JSBHRFAsIHRydW9jIG1h dCB0aGF5IGhhbmcgbG9hdCBkdSBhbiAieGEgeGkiOiBuYW8gcXV5IGhvYWNoIA0KSGEgTm9pIDkw IHR5IFVTRCwgZGllbiBoYXQgbmhhbiAxMiB0eSBVU0QsIGdpbyBsYWkgZHVvbmcgc2F0IGNhbyB0 b2MgNTYgdHkgVVNELCBraG9uZyANCmhpZXUgcGhhaSBsZW4gZGVuIGJhbyBuaGlldSAlPw0KDQpM YWkgcGhhaSB0cmljaCBwaGF0IGJpZXUgY3VhIHBobyBjaHUgbmhpZW0gVXkgYmFuIFBoYXAgbHVh dCBjdWEgUXVvYyBvaSBUcmFuIERpbmggDQpMb25nOiAiTWFpIHNhdSB0aGUgaGUgY29uIGNoYXUg dGFpIGdpb2kgaG9uIGNodW5nIHRhIHNlIGxhbSB0aGF5Ii4gTm9pIGRhaSwgbG8gdGhlIGhlIGNv biANCmNoYXUga2hvbmcgdGFpIGdpb2kgaG9uIHRoaSBwaGFpIGxhbSBzYW8gbmhpPyBTYW8gY2Fj IGJhYywgY2FjIGNodSBjdSBiYXQgY29uIGNoYXUgcGhhaSANCmxhIHRoaWVuIHRhaSBuaHUgdGhl PyBLaG9uZyBjaGkgcGhhaSB0YWkgY28gZG9hdCBnaWFpIE5vYmVsIG1hIHBoYWkgY28gdGFpIHRy YSBubyB0aGF5IGNobyANCmNhYyBiYWMgY2FjIGNvIGNhYyBjaHUgbWEgY2FjIGJhYyBjYWMgY28g Y2FjIGNodSBsYWkgY2hhbmcgY2FuIGJpZXQgY29uIGNoYXUgY28gbXVvbiANCmh1b25nIHRodSBu aHVuZyBnaSBjYWMgYmFjLCBjYWMgY2h1IGRlIGxhaSBraG9uZz8NCg0KSGluaCBuaHUsIGRhIG11 b24gdW5nIGhvIHRoaSBraG9uZyBraG8ga2hhbiBnaSBkZSBkdWEgcmEgcmF0IG5oaWV1IGxhcCBs dWFuICJ0byBob25nIiwgDQp0b2FuIG5odW5nIG5oYW4gZGluaCB2ZSB0dW9uZyBsYWkgeGEgdGhh dCBsYSB4YSwgZGVuIGx1YyBkbyBjaGFuZyBtYXkgY28gc2FpIHRoaSBjdSANCnh1b25nIHN1b2kg dmFuZyBtYSB0aW0gY2FjIGJhYyBjYWMgY2h1IGRlIHRyYWNoIGN1IHRob2FpIG1haS4NCg0KQ3Vu ZyBob2kgYmFuIGtob2FuIGNodXQsIGNoYW5nIHRoYXkgdHJ1eWVuIHRob25nIG5oYWMgZGVuIGJv IHRydW9uZyBuYW8gcGhhbiBkb2kgZHUgDQphbiBkdW9uZyBzYXQgY2FvIHRvYyBjYT8gVGllYyBx dWEsIGtob25nIGhpZXUgYm8gdHJ1b25nIEJvIE5vbmcgTmdoaWVwIHZhIFBoYXQgVHJpZW4gDQpO b25nIFRob24gaGF5IGJvIHRydW9uZyBCbyBMYW8gRG9uZyBUaHVvbmcgQmluaCBYYSBIb2kgc2Ug bmdoaSBnaSwgY28gbGFjIHF1YW4gDQpkdW9jIG5odSBoYWkgdmkgYm8gdHJ1b25nIGtpYSBraG9u Zz8NCg0KUXVvYyBIb2kgc2FwIGhldCBuaGllbSBreSBiYW4gZGUgeHVhdCBjdWEgY2hpbmggcGh1 IHNhcCBoZXQgbmhpZW0ga3khDQoNCkNoaSBiaWV0LCB2YW4gY29uIHJhdCBuaGlldSB5IGtpZW4g cGhhbiBiaWVuIG1hbmggbWUga2hvbmcgY2hpIHR1IGNhYyBkYWkgYmlldSBRdW9jIEhvaSANCm1h IHR1IHJhdCBuaGlldSBjYWMgY2h1eWVuIGdpYSBkb2MgbGFwIHBoYW4gdGljaCB2ZSBoaWV1IHF1 YSBraW5oIHRlLCB0YWMgZG9uZyBtb2kgDQp0cnVvbmcsIHRhYyBkb25nIHhhIGhvaSwgdGhhbSBj aGkgdHUgY2Egbmd1eWVuIEJvIFRydW9uZyBHaWFvIFRob25nIFZhbiBUYWkgRGFvIA0KRGluaCBC aW5oLg0KDQpOaHUgY2h1IG5oaWVtIFV5IGJhbiBQaGFwIGx1YXQgTmd1eWVuIFZhbiBUaHVhbiB0 aGFuZyB0aGFuIGdvaSBkdSBhbiBkdW9uZyBzYXQgY2FvIA0KdG9jIGxhICJ4YSB4aSwgYW4gY2hv aSIsIHJhbmcgIkRvaSBjaGEgYW4gbWFuIGRvaSBjb24ga2hhdCBudW9jLiBLaG9uZyBjaGEgbWUg bmFvIGxhaSANCmFuIHZhbyBwaGFuIGNvbiBjaGF1LiBLaG9uZyB0aGUgcXV5ZXQgbW90IGR1IGFu IGxvbiBtYSBraG9uZyBiaWV0IGJhbyBnaW8gbW9pIHRyYSBubyANCmR1b2MiLCByb2kgIlRyYWNo IG5oaWVtIGN1YSBRdW9jIEhvaSB0aGUgbmFvPyBDaHVuZyB0YSBkYSBhaSB0aW5oIGRlbiBiYWkg aG9jIG5vIGN1YSANCkh5IExhcCBjaHVhPyBDYSBFVSBiYXkgZ2lvIHBoYWkgY3V1IG1hIGtob25n IGJpZXQgY28gY3V1IGR1b2Mga2hvbmcuIENodW5nIHRhIGNoYXAgDQpoYW5oIHkga2llbiBjYXAg dHJlbiBuaHVuZyBwaGFpIGNhbiBjdSB2YW8gdGh1YyBsdWMuIEtob25nIHRoZSBxdXlldCBtb3Qg ZHUgYW4gbG9uIHRoZSANCm5heSBtYSBraG9uZyBiaWV0IGJhbyBnaW8gbW9pIHRyYSBubyBkdW9j Ii4NCkF5IGF5LCBkYWkgYmlldSBUaHVhbiBub2kgdGhlIGNvICJ4dWkiIGNobyBkdSBhbiBjdWEg cXVvYyBnaWEgcXVhIGtob25nIG5oaT8gQ2h1YSBnaSANCmRhIGRvYSBWaWV0IE5hbSBwaGFpIGhv YyBiYWkgaG9jIHR1IEh5IExhcC4gS2hvbmcgbGUgb25nIFRodWFuIGtob25nIHRpbiB0dW9uZyB2 YW8gDQp0aGUgaGUgY29uIGNoYXUgY3VhIG9uZyBzYW8/IE5odW5nIG5naGkgbGFpIHRoaSAidGh1 b2MgZGFuZyBnaWEgdGF0LCBzdSB0aGF0IG1hdCBsb25nIiwgDQpIeSBMYXAgbGFvIGRhbyBjb24g ZHVvYyBFVSBjdXUsIGtob25nIGJpZXQgbmV1IFZpZXQgTmFtIGxhbyBkYW8gdGhpIGFpIHNlIGN1 dSBWaWV0IA0KTmFtPw0KDQpYdWF0IHNhYyBuaGF0LCB0aW5oIHRhbyBuaGF0IHZhIHRydW5nIHZh biBkZSBuaGF0IHBoYWkgbGEgcGhhdCBuZ29uIHJhdCB0aGFuZyB0aGFuIGN1YSBkYWkgDQpiaWV1 IFF1b2MgSG9pIER1b25nIFRydW5nIFF1b2M6ICJTYW8gY2h1bmcgdGEgbGFpIHBoYWkgdm9pIHZh IGtoaSBkYXkgbGEgbmh1bmcga3kgDQpob3AgY3VvaSBjdW5nIGN1YSBRdW9jIEhvaSBzYXAgaGV0 IG5oaWVtIGt5LCBiYW4gdmUgZGUgeHVhdCBjdWEgY2hpbmggcGh1IGN1bmcgc2FwIGhldCANCm5o aWVtIGt5PyIgRG9uIGdpYW4gdGhlIHNhbyBraG9uZyBhaSBkZSB5IG5oaT8gSGF5IHZpIGRvbiBn aWFuIG5lbiBjaGFuZyBhaSBjYW4gZGUgeT8gDQpIYXkgdmkgY2hpbmggcGh1IHNhcCBoZXQgbmhp ZW0ga3kgbmVuIG1vaSBwaGFpIGVwIFF1b2MgSG9pLCB2b2kgaHkgdm9uZyBRdW9jIEhvaSBzYXAg DQpoZXQgbmhpZW0ga3kgc2UgImNoYWMgbHVvaSIgdGhvbmcgcXVhLiBDaGl1LCBjaGFuZyBkYW0g a2V0IGx1YW4gZ2ksIGRhbmggY2hvIHhlbSBRdW9jIA0KSG9pIHNhcCBoZXQgbmhpZW0ga3kgc2Ug cXV5ZXQgdGhlIG5hbyB2YXkuDQoNCmh0dHA6Ly90dW9pdHJlLnZuL0dpYW8tZHVjLzM4MDE2My9E dS1taW5oLXRyZW4tZGF5LXRoZXAtZGUtcXVhLXNvbmctZGVuLXRydW9uZy5odG1sIDIzLzA1LzIw MTAsIDE5OjUyIChHTVQrNykgDQoNClRodW9uZyB0cnVjIGNoaW5oIHBodTogTmhpZXUgdHJlIGVt IGRhbmcgcGhhaSBkdSBtaW5oIHRyZW4gZGF5IHRoZXAgZGUgcXVhIHNvbmcgZGVuIHRydW9uZyEg IA0KDQpEYSBuaGlldSB0aGFuZyBuYXksIGhhbmcgY2h1YyBobyBkYW4gdHJ1IGJlbiBraWEgc29u ZyB0aHVvYyBsYW5nIE5vbmcgTm9pLCB4YSANCkRhayBOb25nIHZhIG5oYW4gZGFuIHRodW9jIHRp ZXUga2h1IDE1NCB4YSBEYWsgQW5nIGtoaSBxdWEgc29uZyBQb0tvIHBoYWkgZHUgbWluaCB0cmVu IGRheSB0aGVwLiANCg0KTmd1b2kgZGFuIHN1IGR1bmcgZGF5IHRoZXAgYnVvYyB2YW8gaGFpIGJl biBibyBzb25nLCByb2kgc3UgZHVuZyByb25nIHJvYyB0cnVvdCB0cmVuIA0KZGF5IHRoZXAgcm9p IHRyZW8gbmd1b2kgcGhpYSBkdW9pIGRlIHF1YSBzb25nLiANCg0KaHR0cDovL25ndXllbnZhbnR1 YW4ubmV0L25ld3MvNi1uZXdzLzkwMi15LWtpZW4tZGFuLXZlLWR1b25nLXNhdC1jYW8tdG9jLWto b25nLW5lbi1sYW0gMTEgVGhhbmcgNiAyMDEwIDA5OjUwDQoNClkga2llbiBuaGFuIGRhbiB2ZSBk dW9uZyBzYXQgY2FvIHRvYzogS2hvbmcgbmVuIGxhbSEgDQoNCkJhIGN1b2MgdGhhbSBkbyB5IGtp ZW4gY3VhIG5ndW9pIGRhbiB2ZSBzaWV1IGR1IGFuIGR1b25nIHNhdCBjYW8gdG9jIChEU0NUKSBk ZXUgY2hvIA0KcmEga2V0IHF1YSBuaGF0IHF1YW46IG5ndW9pIGRhbiBraG9uZyBtdW9uIHRpZW4g aGFuaCBkdSBhbiBEU0NULCBpdCByYSBsYSB0cm9uZyBnaWFpIA0KZG9hbiBoaWVuIG5heS4gTmV1 IGNhYyBkYWkgYmlldSBRdW9jIGhvaSB0aGF0IHN1IGxhIGRhaSBkaWVuIG5ndW9pIGRhbiB2YSBu b2kgbGVuIG5ndXllbiANCnZvbmcgY3VhIG5ndW9pIGRhbiwgY28gbGUgdmllYyBsYW0gdGh1YyB0 ZSBuaGF0IGxhIGJvIHBoaWV1ICJraG9uZyIgY2hvIHNpZXUgZHUgYW4gbmF5LiANCg0KVHJvbmcg a2hpIGNhYyBkYWkgYmlldSBRdW9jIGhvaSBjb24gZGFuZyB0cmFuaCBjYWkgY28gbmVuIGhheSBr aG9uZyBuZW4gbGFtIHNpZXUgZHUgYW4gDQpkdW9uZyBzYXQgY2FvIHRvYywgY2FjIGJhbyBkYSBj byBzYW5nIGtpZW4gaG9pIG5ndW9pIGRhbi4gIFRyb25nIHhhIGhvaSBkYW4gY2h1LCBjbyBsZSAN CmRheSBsYSBnaWFpIHBoYXAgaGF5IG5oYXQsIGJvaSB2aSBkdSBjaG8gZGFpIGJpZXUgUXVvYyBo b2kgbWFuZyBkYW5oIG5naGlhIGxhIGRhaSBkaWVuIA0KZGFuLCBuaHVuZyBobyBjb24gY2hpdSBz dSBjaGkgcGhvaSBjdWEgZGFuZyB2YSBxdXllbiBsb2kgY3VhIGRhbmcsIG5lbiBraGkgYm8gcGhp ZXUgaGF5IA0KYmFtIG51dCwgaG8gY28gdGhlIGtob25nIGRhaSBkaWVuIGNobyB0aWVuZyBub2kg dmEgbmd1eWVuIHZvbmcgY3VhIG5ndW9pIGRhbi4gIERvIGRvLCANCmNhY2ggaGF5IG5oYXQgbGEg aG9pIG5ndW9pIGRhbiAodmkgZHUgc2FvIGhvIGN1bmcgbGEgbmd1b2kgY2hpIHRpZW4gY2hvIG1h eSBkdSBhbiBuYXkpIA0KeGVtIHkga2llbiBjdWEgaG8gcmEgc2FvLg0KRGEgY28gMyBiYW8gdGhh bSBkbyB5IGtpZW4gbGllbiBxdWFuIGRlbiBzaWV1IGR1IGFuIERTQ1QuICBUYXQgY2EgY2FjIGJh byBkZXUgc3UgZHVuZyANCmludGVybmV0IGRlIGxhbSBwaHVvbmcgdGllbiB0aGFtIGRvIHkga2ll bi4gIE5odW5nIG1vaSBiYW8gZGF0IGNhdSBob2kgdmEgZGUgbmdoaSBjYXUgDQp0cmEgbG9pIGto YWMgbmhhdS4gIEJhbyBEYW4gdHJpIGhvaSBjaG8gMyB0cmEgbG9pIGtoYSBkaSBsYSAoYSkgbmVu IGxhbSwgKGIpIGtob25nIG5lbiBsYW0sIA0KdmEgKGMpIHkga2llbiBraGFjOyBiYW8gVk5leHBy ZXNzIHRoaSBkZSBuZ2hpIDQgbHVhIGNob24gdHJvbmcgdHJhIGxvaTogKGEpIGRvbmcgeSwgKGIp IA0Ka2hvbmcgZG9uZyB5LCAoYykgbmVuIGRlIHRob2kgZGllbSBraGFjLCB2YSAoZCkgeSBraWVu IGtoYWM7IGNvbiBiYW8gUGhhcCBMdWF0IFRQIHRoaSANCihhKSBuZW4gbGFtLCAoYikga2hvbmcg bmVuIGxhbSwgKGMpIGxhbSBraW5oIHRlIGRhLiAgTm9pIHRvbSBsYWksIHR1dSB0cnVuZyBsYWkg bGE6IGRvbmcgeSwgDQpraG9uZyBkb25nIHksIHZhIHkga2llbiBraGFjLg0KS2V0IHF1YSB0aGFt IGRvIHkga2llbiB0aGF0IHRodSB2aS4gIFRhdCBjYSBiYSBjdW9jIHRoYW0gZG8geSBraWVuIGRl dSBjaG8gdGhheSBzbyBuZ3VvaSANCmtob25nIGRvbmcgeSB2b2kgZHUgYW4gRFNDVCBjaGllbSBk YSBzby4gIFRpIGxlIGtob25nIGRvbmcgeSBjYW8gaG9uIDIgbGFuIHNvIHZvaSB0aSBsZSANCmRv bmcgeS4gIFRpbmggY2h1bmcga2V0IHF1YSAzIGN1b2MgdGhhbSBkbyBjaG8gdGhheSBzbyBuZ3Vv aSBraG9uZyBkb25nIHkgdm9pIGR1IGFuIA0KRFRDVCBsYSA2NSUsIHNvIG5ndW9pIGRvbmcgeSBj aGkgMzIlLCB2YSAzJSBjb24gbGFpIGNvIHkga2llbiBraGFjLiAgIlkga2llbiBraGFjIiANCmNo dSB5ZXUgbGEgdXUgdGllbiBsYW0ga2luaCB0ZSBkYSAoeGVtIGJhbmcgc28gbGlldSBkdW9pIGRh eSkuDQoNCkJhbyBEYW4gdHJpDQpTbyBuZ3VvaSB0aGFtIGdpYTogMjAwLDk0NQ0KRG9uZyB5OiAg ICAgICAzMiUNCktob25nIGRvbmcgeTogNjUlDQpZIGtoaWVuIGtoYWM6ICAzJQ0KDQoqKioNCkJh byBWTmV4cHJlc3MNClNvIG5ndW9pIHRoYW0gZ2lhOiA0OCwxODYNCkRvbmcgeTogICAgICAgMzAl DQpLaG9uZyBkb25nIHk6IDY5JQ0KWSBraGllbiBraGFjOiAgMSUNCg0KKioqDQpCYW8gUGhhcCBM dWF0IFRQDQpTbyBuZ3VvaSB0aGFtIGdpYTogOTc2DQpEb25nIHk6ICAgICAgIDE3JQ0KS2hvbmcg ZG9uZyB5OiA0MSUNClkga2hpZW4ga2hhYzogNDIlICgqKQ0KDQoqKioqDQpUb25nIHNvOiAyNTAs MTA3DQpEb25nIHk6ICAgICAgIDMyJQ0KS2hvbmcgZG9uZyB5OiA2NSUNClkga2hpZW4ga2hhYzog IDMlDQoNCigqKSB5IGtpZW4ga2hhYyBvIGRheSBsYSAibGFtIGtpbmggdGUgZGEiLg0KDQooTmd1 b246IHhlbSBiYWkgIkxheSB5IGtpZW4gbmd1b2kgZGFuIHZlIGR1b25nIHNhdCBjYW8gdG9jIiBj dWEgTmd1eWVuIFF1YW5nIEE7IGxpbmsgDQpodHRwOi8vd3d3LnZpZHMub3JnLnZuL3ZuL2FzcC9O ZXdzX0RldGFpbC5hc3A/dGFiaWQ9MSZtaWQ9ODAyJklEPTExNDUpDQoNCkNvIG5oaWVuLCBrZXQg cXVhIHRoYW0geSBraWVuIG5odSB0aGUgbmF5IGxhIGNvIHNhaSBzby4gIERheSBsYSBuaHVuZyBj dW9jIHRoYW0gZG8geSANCmtpZW4gcXVhIGludGVybmV0LCB2YSBuZ3VvaSB0cmEgbG9pIGxhICJj dSBkYW4gbWFuZyIsIGNobyBuZW4ga2hhIG5hbmcgcmF0IGNhbyBsYSBuaHVuZyANCmN1IGRhbiBu YXkgbGEgbmh1bmcgbmd1b2kgdGh1b2MgdGhhbmggcGhhbiBjbyBob2MgdmFuLCBjbyB0aHUgbmhh cCBraGEsIHZhIGNvIHF1YW4gdGFtIA0KZGVuIHZhbiBkZSB0aG9pIHN1LCB0dWMgbGEgbmh1bmcg bmd1b2kgdGh1b2MgZ2lhaSBjYXAgdHJ1bmcgbHV1LiAgRG8gZG8sIG5odW5nIGtldCBxdWEgDQp0 cmVuIGRheSBjbyB0aGUgY2hpIHBoYW4gYW5oIHkga2llbiBjdWEgbmh1bmcgbmd1b2kgdGh1b2Mg Z2lhaSBjYXAgeGEgaG9pIHRyZW4gdHJ1bmcgDQpiaW5oLiAgVHV5IG5oaWVuLCB5IGtpZW4gY3Vh IGhvIGN1bmcgY28gdGhlIGxhIHkga2llbiBjdWEgbmh1bmcgbmd1b2kga2hvbmcgdGhhbSBnaWEs IA0Ka2hvbmcgcGhhaSBsYSBjdSBkYW4gbWFuZywgdGhhbSBjaGkgY3VuZyBsYSB5IGtpZW4gY3Vh IGdpb2kgbGFvIGRvbmcuIENvIHRoZSBkYSBzbyANCm5odW5nIG5ndW9pIHRoYW0gZ2lhIHRyYSBs b2kgY3VuZyBraG9uZyBwaGFpIGxhIGRhbmcgdmllbiwgdmEgbmV1IGdpYSB0aHV5ZXQgbmF5IGR1 bmcgDQp0aGkgbmh1bmcgeSBraWVuIG5heSB0aGF0IHN1IHBoYW4gYW5oIHkga2llbiBjdWEgbmd1 b2kgZGFuLg0KDQpDYXUgaG9pIGRhdCByYSBsYSBtb2kgY28gMyBjdW9jIHRoYW0gZG8gZG9jIGxh cCB2b2kga2V0IHF1YSAiYXAgZGFvIiBuaHUgdHJlbiwgbmV1IGxhbSANCnRoZW0gdGhhbSBkbyAx MDAsIHRoYW0gY2hpIDEwMDAgbm9pIGtoYWMgdm9pIG5oaWV1IHRoYW5oIHBoYW4gZGFuIHNvIHRo aSBrZXQgcXVhIHNlIHJhIA0Kc2FvLiAgDQoNCk5odW5nIGtldCBxdWEgbmF5LCB5IGtpZW4gbmF5 IGN1YSBuZ3VvaSBkYW4gY28geSBuZ2hpYSBnaSB2b2kgY2FjIGRhaSBiaWV1IFF1b2MgaG9pPyAg DQpEb2kgdm9pIG5ndW9pIGR1eSB5IGNoaSBtdW9uIGxhbSBoYXkgbmh1bmcgbmd1b2kgW25vaSB0 aGVvIHRpZW5nIEFuaF0gbGEgdnVpIGRhdSB2YW8gDQpjYXQgdGhpIGtldCBxdWEgdHJlbiBzZSBj aGFuZyBsYW0gdGhheSBkb2kgeSBraWVuIGN1YSBoby4gIA0KDQpEb2kgdm9pIG5odW5nIG5ndW9p IGNhbiBuaGFjIGxvaSBoYWksIGJpZXUgcXV5ZXQgdGhlbyB5IGtpZW4gY3VhIGNvbmcgY2h1bmcs IHRoaSBuaHVuZyANCmtldCBxdWEgdHJlbiBkYXkgbW90IGxhbiBudWEgY2hvIHRoYXkgZHUgYW4g RFNDVCBraG9uZyBkdW9jIHN1IGRvbmcgdGluaCBjdWEgZGEgc28gDQpuZ3VvaSBkYW4sIHZhIGhv IGNvIHRoZSBzZSBuaGFuIG51dCAia2hvbmciLg0KDQpOb2kgdG9tIGxhaSwgY2FjIGtldCBxdWEg dHJlbiBkYXkgY2hvIHRoYXkgcm8gcmFuZyByYW5nIGtoaSBuZ3VvaSBkYW4gZHVvYyBjdW5nIGNh cCANCnRob25nIHRpbiB0aGkgZGEgc28ga2hvbmcgZG9uZyB5IHZvaSBzaWV1IGR1IGFuIGR1b25n IHNhdCBjYW8gdG9jLiAgTmV1IERhaSBiaWV1IFF1b2MgDQpob2kgdGhhdCBzdSBkYWkgZGllbiBu Z3VvaSBkYW4gdmEgcXV5ZW4gbG9pIG5ndW9pIGRhbiwgdGhpIHF1eWV0IGRpbmggYmFtIG51dCAi a2hvbmciIGxhIA0KbW90IGNhY2ggbGFuZyBuZ2hlIHZhIHRvbiB0cm9uZyBuZ3V5ZW4gdm9uZywg eSBraWVuIG5ndW9pIGRhbi4NCg0KTlZUDQoNCmh0dHA6Ly9ib3hpdHZuLndvcmRwcmVzcy5jb20v MjAxMC8wNy8yMi9kJUM2JUIwJUUxJUJCJTlEbmctcyVFMSVCQSVBRnQtY2FvLXQlRTElQkIlOTFj LWNobmgtcGglRTElQkIlQTctcXUlRTElQkIlOTFjLWglRTElQkIlOTlpLWtobmctbCVFMSVCQiU4 N2NoLXBoYS8gQmF1eGl0ZSBWaWV0IE5hbSAyMi8wNy8yMDEwDQoNClRydW5nIHVvbmcgRGFuZzog Q3UgdHJpIHRoYXQgdm9uZyB2ZSB0aGFpIGRvIGN1YSBvbmcgTmd1eWVuIFNpbmggSHVuZyB0YWkg cGhpZW4gdHJhIGxvaSBjaGF0IHZhbiB0cnVvYyBRdW9jIEhvaSANCg0KIlRoZW8gQ2h1IG5oaWVt IFV5IGJhbiBRdW9jIHBob25nIJYgQW4gbmluaCBMZSBRdWFuZyBCaW5oLCBjdSB0cmkga2hvbmcg aGlldSBzYW8gDQpjbyBtYXQgVGh1IHR1b25nIHNvbmcgUGhvIFRodSB0dW9uZyB0aHVvbmcgdHJ1 YyBsYWkgZHVvYyBjdSB0aGF5IG1hdCBDaGluaCBwaHUgdHJhIA0KbG9pIGNoYXQgdmFuIHRydW9j IFF1b2MgaG9pLiANCg0KRGFpIGJpZXUgTGUgUXVhbmcgQmluaCBnb3AgeTogImN1IHRyaSBjaG8g cmFuZyBQaG8gVGh1IHR1b25nIE5ndXllbiBTaW5oIEh1bmcgdHJhIGxvaSANCmNoYXQgdmFuIHRy dW9jIFF1b2MgaG9pIG1hIG5odSBkYW5nIHRyaWVuIGtoYWkgTmdoaSBxdXlldCBDaGluaCBwaHUi Lg0KDQpQaGFuIHRyYSAgbG9pIGN1YSBQaG8gVGh1IHR1b25nIHZlIGR1b25nIHNhdCBjYW8gdG9j IChraGFuZyBkaW5oIFZpZXQgTmFtIGNoYWMgY2hhbiANCnBoYWkgbGFtIGR1b25nIHNhdCBjYW8g dG9jIJYgUFYpIGN1bmcgbmh1IHZlIGNvbmcgdGFjIGNhbiBibyAoYm8gcGhpZXUgdGluIG5oaWVt IHRoaSANCm1hdCBoZXQgY2FuIGJvLCBiYXUga2hvbmcga2lwIJYgUFYpIGN1bmcga2hpZW4gZHUg bHVhbiBjaHVhIGhhaSBsb25nLiAiUGhvIFRodSB0dW9uZyANCnRyYSBsb2kgbmh1IHZheSBjdW5n IGxhIGNhY2ggbGFtIG1hdCBkaSBtb3Qgc28gcGhpZXUgdGFuIHRoYW5oIHhheSBkdW9uZyBzYXQg Y2FvIHRvYyIsIG9uZyBCaW5oIG5vaS4NCg0KT25nIExlIFF1YW5nIEJpbmggY3VuZyBwaGFuIG5h biB2aWVjIFBobyBUaHUgdHVvbmcgZG9pIHRob2FpIHRyZW4gbmdoaSB0cnVvbmcgYmFuZyBnaW9u ZyBjYXAgdHJlbiB2b2kgY2FwIGR1b2kuDQoNCiJUdW5nIGNhIG5oYW4sIGR1bmcgdmUgY2FwICBo YW5oIGNoaW5oIHRoaSBjbyB0aGUgbGEgY2FwIGR1b2kgY3VhIFBobyBUaHUgdHVvbmcgY2h1IA0K dGFwIHRoZSBnYW4gNTAwIGRhaSBiaWV1IGtob25nIHBoYWkgbGEgY2FwIGR1b2kiLCBvbmcgQmlu aCBnb3AgeS4gDQoNCkNodSBuaGllbSBVQiBRdW9jIHBob25nIHZhIEFuIG5pbmggY3VhIFF1b2Mg aG9pIGRhIGNvIG5odW5nIHkga2llbiBoZXQgc3VjIHRoYW5nIA0KdGhhbiwgdHV5IG5oaWVuLCBj aHVuZyB0b2kgbmdoaSwga2hvbmcgcGhhaSB0aGFpIGRvIGN1YSBvbmcgTmd1eWVuIFNpbmggSHVu ZyBjaGkgbGFtIA0KbWF0IGRpIG1vdCBzbyBwaGlldSBjdWEgY2FjIGRhaSBiaWV1IHRyb25nIHBo YW4gYm8gcGhpZXUsIG1hIGRvaSB2b2kgbmd1b2kgZGFuIGNhIG51b2MsIA0Kb25nIGF5IGNvbiBs YXkgZGkgY2h1dCBraWVuIG5oYW4gY3VvaSBjdW5nIHRyb25nIHRhbSB0cmFuZyBjaG8gZG9pIG1v dCBjaGluaCBwaHUgYmlldCANCmxhbmcgbmdoZSBuaHVuZyBsb2kgbm9pIHBoYWksIGJpZXQgZHVu ZyBsYWkgbmh1bmcgcXV5ZXQgZGluaCB2b2kgdmEsIGJpZXQgY2FuIG5oYWMgbmh1bmcgDQp2aWVj IGxhbSBraG9uZyBob3AgbG9uZyBkYW4gY3VhIG1pbmg7IGNobyBkb2kgZGEgdHUgbmhpZXUgbmFt IG5heSByb2kuIA0KDQpodHRwOi8vdmFuaG9jLnhpdHJ1bS5uZXQvdGhvY2EvdGsxOC0xOS8xMDA3 OS5odG1sIA0KDQpWaW5oIHRpZW4gc2kgZ2lheSAodHJpY2ggLSB0aG8gY3VhIE5ndXllbiBLaHV5 ZW4pDQoNCkN1bmcgY28sIGN1bmcgYmllbiwgY3VuZyBjYW4gZGFpLg0KQ3VuZyBnb2kgb25nIG5n aGUgY28ga2VtIGFpLg0KTWFuaCBnaWF5IGxhbSBuZW4gdGhhbiBnaWFwIGJhbmcsIA0KTmV0IHNv biBkaWVtIHJvIG1hdCB2YW4ga2hvaS4gDQpUYW0gdGhhbiB4aWVtIGFvIHNhbyBtYSBuaGU/DQpD YWkgZ2lhIGtob2EgZGFuaCB0aGUgbW9pIGhvaSEgDQpHaGUgdHJlbywgbG9uZyB4YW5oIG5nb2kg YmFuaCBjaG9lLA0KTmdoaSByYW5nIGRvIHRoYXQgaG9hIGRvIGNob2khIA0KDQpodHRwOi8vd2lr aXBlZGlhLm9yZyANCg0KT25nIE5ndXllbiBTaW5oIEh1bmcgbGFtIFRydW9uZyBiYW4ga3kgbmll bSAxMDAwIG5hbSBUaGFuZyBMb25nIA0KDQpodHRwOi8vaG9pbGF0cmFsb2kubXVsdGlwbHkuY29t L2pvdXJuYWwvaXRlbS8zMjkyIA0KDQpEYWkgbGUga3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25n IHRpZXUgdG9uIDQsNSB0eSBVU0QsIGxhIG1vdCBob2FuZyBwaGkgdm8gY3VuZyBsb24ga2hpIGRh dCBudW9jIGNvbiBuaGlldSBuZ2hlbyBuYW4gdmEgdGhpZXUgdGhvbiANCg0KaHR0cDovL3Rob25n dGluYmVybGluLmRlL2FsbGcvaGF5cXV5ZXR0YXljaGF5bmdheTAxMTAyMDEwLmh0bQ0KDQpLeSBu aWVtIDEwMDAgbmFtIFRoYW5nIExvbmcgaGF5IGt5IG5pZW0gcXVvYyBraGFuaCBUcnVuZyBxdW9j Pw0KDQpEYWkgbGUga3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25nIGR1b2MgYW4gZGluaCBraGFp IG1hYyB2YW8gbmdheSAxLzEwLCB0cnVuZyBuZ2F5IHF1b2MgS2hhbmggVHJ1bmcgUXVvYyEgDQoN ClRoZW8gY2hpbmggc3UsIG11YSB0aHUsIHRoYW5nIDcsIG5hbSBDYW5oIFR1YXQgMTAxMCwgVnVh IChMeSBUaGFpIFRvKSB0dSB0aGFuaCBIb2EgTHUsIA0KZG9pIGRvIHJhIGtpbmggcGh1IG8gdGhh bmggRGFpIExhLCB0YW0gZG8gdGh1eWVuIGR1b2kgdGhhbmgsIGNvIHJvbmcgdmFuZyBoaWVuIGxl biANCm8gdGh1eWVuIG5ndSwgbmhhbiBkbyBkb2kgdGVuIHRoYW5oLCBnb2kgbGEgdGhhbmggVGhh bmcgTG9uZy4gDQpEb2kgY2hpZXUgY2hvIHRoYXksIGR1IGR1b25nIGxpY2ggaGF5IGFtIGxpY2gs IG5nYXkgMSB0aGFuZyAxMCBraG9uZyBwaGFpIGxhIG5nYXkgDQpkb2kgZG8gY3VhIFZpZXQgTmFt IG1hIGxhIG5nYXkgUXVvYyBLaGFuaCBjdWEgVHJ1bmcgUXVvYyAxLzEwLzE5NDkhIA0KDQpodHRw Oi8vZG9uZ2EwMS5ibG9nc3BvdC5jb20vMjAwOS8xMi90YWktc2FvLWxhaS1sYS1jaHUuaHRtbCBQ b3N0ZWQgYnkgRG9uZyBBIDEyLzMwLzIwMDkgMDI6MTc6MDAgUE0NCg0KVGhhbmcgTG9uZyAtIEhh IE5vaTogVGFpIHNhbyBsYWkgbGEgY2h1ICJ0aGllbiI/IA0KDQpDaHVuZyB0b2kgeGVtIGFuaCBM ZSBob2kgaG9hIEhhIE5vaSB0cmVuIGJhbyBEYW4gdHJpIChhbmggbWluaCBob2Ega2VtIHRoZW8p OyANCnhlbSBkZW4gYnVjIGFuaCBjaHVwIGJpZXUgdHVvbmcgIlRoaWVuIGRvIGNoaWV1IiB0aGkg a2hvbmcgdGhlIG5hbyBoaWV1IG5vaSB0YWkgc2FvIA0KbGFpIGxhIGNodSAidGhpZW4iIGNvIG5n aGlhIGxhICJ0cm9pIiBvIGJpZXUgdHVvbmcgbmF5LiBOZXUgdmlldCBjaHUgInRoaWVuIiB0cm9u ZyANCiJUaGllbiBkbyBjaGlldSIgdGhpIHBoYWkgbGEgY2h1ICJ0aGllbiIgY28gbmdoaWEgbGEg ImRpIGRvaSIgY2h1LiBUaGFuZyBMb25nIG5naGluIG5hbSANCnZhbiBoaWVuIGRlbiBub25nIG5v aSBuYXkgdT8gDQoNCkFuaCBjaHVwOiBCaWV1IHR1b25nICdDaGlldSAidHJvaSIgZG8nIHRydW5n IGJheSB0YWkgSGEgTm9pIChhbmgtYmFvIGRhbiB0cmkpDQoNCmh0dHA6Ly90dWFudmlldG5hbS52 aWV0bmFtbmV0LnZuLzIwMTAtMDktMjQtZG9jLWNoaWV1LWRvaS1kby1iYW5nLWRvaS1tYXQtaGll bi10YWkgMS8xMC8yMDEwIA0KDQpUaGFuZyBMb25nIC0gSGEgTm9pOiBOZ2F5IDEvMTAvMjAxMCwg YmlldSB0dW9uZyAiY2hpZXUgZG9pIGRvIiBsYWkgdmFuIGxhIGNodSAidHJvaSIgKHRpZW5nIEhh bikgY2h1IGtob25nIHBoYWkgY2h1ICJEb2kiIChkaSBkb2kpLiAgDQoNCihBbmggY2h1cDogQmll dSB0dW9uZyAnQ2hpZXUgInRyb2kiIGRvJyB0cnVuZyBiYXkgdGFpIEhhIE5vaSkgDQoNCmh0dHA6 Ly93d3cudmlkcy5vcmcudm4vdm4vYXNwL05ld3NfRGV0YWlsLmFzcD90YWJpZD0xJm1pZD04MzAm SUQ9MTE1NSBUbyBWYW4gVHJ1b25nICh0cmljaCkNCg0KVHJ1bmcgdW9uZyBEYW5nOiBUdSBjYXUg Y2h1eWVuIER1IGFuIER1b25nIHNhdCBjYW8gdG9jIEJhYyBOYW0gLSBQaGF0IHRyaWVuIGJlbiB2 dW5nIHBoYWkgY28gbGFuaCBkYW8gZHVuZyB0YW0gIA0KDQpTYXUga2hpIG5naGUgZ2lhaSB0cmlu aCBjdWEgUGhvIHRodSB0dW9uZyB0aHVvbmcgdHJ1YyBOZ3V5ZW4gU2luaCBIdW5nIHRydW9jIFF1 b2MgaG9pIA0KbmhpZXUgbmd1b2kgZGFuIGJheSB0byBzdSB0aGF0IHZvbmcgdmkga2hvbmcgY28g bGFwIGx1YW4sIGNhbiBjdSBraG9hIGhvYywgdGh1YyB0aWVuLCANCmtob25nIGRpIHZhbyBjYWMg dmFuIGRlIGRhIGR1b2MgZGUgY2FwLCB0aGlldSB0aW5oIG5naGllbSB0dWMgY2FuIHRoaWV0IHRy b25nIGtoaSB0cmEgbG9pIA0KbGFpIGNhYyBjaGF0IHZhbiBjdWEgZGFpIGJpZXUgUXVvYyBob2ku IFRyYSBsb2kga2hvbmcgY2hpIGxvYW5oIHF1YW5oLCBraG9uZyBkdW5nIHRhbSANCm5odSB2YW4g ZGUgdGhpZXUgZGllbiwgbmh1bmcgZGFuZyB0cmFjaCBob24gY2EgbGEgZGF0IFF1b2MgaG9pIHRy dW9jIHN1IHZpZWMgZGEgcm9pOiANCiJraG9uZyB0aGUga2hvbmcgbGFtIGR1b25nIHNhdCBjYW8g dG9jIiEgDQoNClF1b2MgaG9pIGtob25nIGR1b2MgdGhvbmcgYmFvIGRheSBkdSBjYWMgdGhvbmcg dGluLCBjYWMgeSBraWVuIHBoYW4gdGljaCBkYW5oIGdpYSBjdWEgDQpjYWMgbmhhIGtob2EgaG9j LCB2YSBrZXQgcXVhIHRoYW0gZG8geSBraWVuIGN1YSBuZ3VvaSBkYW4gdHJlbiAzIHRvIGJhbyBj aGluaCB0aG9uZyBjdWEgDQpuaGEgbnVvYyBsYSBkYWkgZGEgc28gY3UgdHJpIGtob25nIHRhbiB0 aGFuaCB4YXkgZHVuZyBkdSBhbiBkdW9uZyBzYXQgY2FvIHRvYyBtYSBjdSBkYXkgDQpkbyBRdW9j IGhvaSBjdSB5ZW4gdHJpIHRpbiB0dW9uZyBkaSE/IA0KDQpDYWNoIHRyYSBsb2kgbmdhbyBtYW4s IHR1IGNvaSBtaW5oIGxhIGNhcCB0cmVuIGN1YSBRdW9jIGhvaSwgY29pIHRodW9uZyBRdW9jIGhv aSwgY29pIA0KdGh1b25nIGR1IGx1YW4geGEgaG9pLCB0aGlldSBzdSBjYXUgdGhpLCBraGllbSB0 b24gY2FuIHRoaWV0IGxhbSBjaG8gY3UgdHJpIHJhdCBsbyBuZ2FpIHZhIA0KYmF0IGJpbmggdmUg bm9pIGR1bmcsIHRhYyBwaG9uZyB2YSBjYWNoIHVuZyB4dS4gDQoNCktob25nIHBoYWkgZGVuIGJh eSBnaW8gbWEgbGF1IG5heSwgcXVhIGNhY2ggcGhhdCBiaWV1IGN1YSBtb3Qgc28gbmd1b2kgY28g dHJhY2ggbmhpZW0gDQpiZW4gY28gcXVhbiBoYW5oIHBoYXAgY29pIHRodW9uZyB2YWkgdHJvIGNv IHF1YW4gbGFwIHBoYXAgIG5odSB0aGUgbGEgdmkgcGhhbSBIaWVuIA0KcGhhcC4gRGF5IGxhIHRo b2kgcXVlbiBhcCBkYXQgY2h1YSBub2kgZGVuIHRoaWV1IGNodWFuIG11YyB0cm9uZyBoYW5oIHZp IHVuZyB4dS4gUXVvYyANCmhvaSBraG9uZyBwaGFpIGxhIG5vaSBnaWFuZyB2ZSBreSBsdWF0IHRh cCB0cnVuZyBkYW4gY2h1IHRyb25nIERhbmcuIEhhaSBodW9jIG5oYXQgbGEgY28gDQpvbmcgQm8g dHJ1b25nIGtpZW0gZGFpIGRhaSBiaWV1IFF1b2MgaG9pIGNvIGx1YyBjYW8gaHVuZywgdHUgZGFj IHR1eWVuIGJvIHZvaSBiYW8gY2hpIA0KY2F1IGJhdCBodToiIFF1eSBob2FjaCBsYSB5IGNoaSBj dWEgcXV5ZW4gbHVjIiE/IFF1eWVuIGx1YyBjdWEgb25nIEJvIHRydW9uZyB2YSBlIGtpcCANCnVu ZyBobyBvbmcgZHVuZyBsYSB0byB0aGF0IG5odW5nIHR1IGR1eSBwaHVvbmcgcGhhcCBsdWFuIHF1 eSBob2FjaCBwaGFuIGtob2EgaG9jIGRvIA0KY2hhbmcgc29tIHRoaSBtdW9uIGN1bmcgc2UgYmkg ZGFvIHRoYWkgYm9pIHRodWMgdGUsIGR1IGx1YW4geGEgaG9pIHZhIHkgY2hpLCBxdXllbiBsdWMg DQpjdWEgbmhhbiBkYW4uIA0KDQpEdW5nIGxheSBjb24gc28gcGhhbiB0cmFtIGRhaSBkYSBzbyBk YWkgYmlldSBRdW9jIGhvaSBsdW9uIGJhbSBudXQgIHVuZyBobyBjYWMgY2h1IA0KdHJ1b25nIGN1 YSBEYW5nIHZhIENoaW5oIHBodSBuaHUgYmF1eGl0ZSBUYXkgTmd1eWVuLCBtbyByb25nIHRodSBk byBkZSAgYmllbiBtaW5oIA0KY2hvIHN1IGRvbmcgdGh1YW4gY3VhIG5oYW4gZGFuLiBDaGF0IGx1 b25nLCBiYW4gbGFuaCBjdWEgcGhhbiBsb24gY2FjIHZpIGRhbiBiaWV1IHBodSANCnRodW9jIHZh byBxdXkgY2hlLCBjYWNoIHR1eWVuIGNob24gZGF1IHZhbyBuaHUgdGhlIG5hbyB0aGkgZGF1IHJh IGF0IHBoYWkgdGhlLCBraG9uZyBjbyANCmdpIGxhLiAgVHJvbmcgY3VvYyBzb25nIHRodWMgdGUg a2hvbmcgcGhhaSBiYW8gZ2lvIHRoaWV1IHNvIGN1bmcgdGh1YSBkYSBzbyB2ZSBjaGkgc28gDQp0 aG9uZyBtaW5oIElRIHRodSB0aGlldCwga2hvbmcgZ2lvbmcgbmh1IGJpZW4gbHVhbiBzbyBzYW5o IHF1YW4gaGUgZ2l1YSBJUSAiYW8iIHZhIA0KZHVvbmcgc2F0IGNhbyB0b2MgQmFjIE5hbSBuaHUg dmkgZGFuIGJpZXUgdGluaCBIYSBOYW0gdmkgcXV5ZXQgdGFtIGNoaW5oIHRyaSBkYSBwaGF0IA0K YmlldSEgTWluaCBjaHVuZyBsYSB0cnVvYyBkYXkgY2FjIHRoYW5oIHZpZW4gdHJvbmcgSG9pIGRv bmcgQ2hpbmggcGh1IGRvIE9uZyBQaGFuIA0KVmFuIEtoYWkgbGEgVGh1IHR1b25nIGx1YyBkYXUg Y2hpIGNvIDEgcGhpZXUgY3VhIEdTIERhbmcgVnUgTWluaCB1bmcgaG8gcGh1b25nIGFuIA0Kbmhh IG1heSB0aHV5IGRpZW4gU29uIExhIHF1eSBtbyB0aGFwLCBHUyBOZ3V5ZW4gTWluaCBIaWVuIGJv IHBoaWV1IHRyYW5nIGNvbiBsYWkgdGF0IA0KY2EgYm8gcGhpZXUgdW5nIGhvIHBodW9uZyBhbiBT b24gTGEgcXV5IG1vIGNhby4gTmhvIGJpZXQgbGFuZyBuZ2hlIHBoYW4gYmllbiBjdWEgY2FjIA0K bmhhIGtob2EgaG9jLCBkdSBsdWFuIHhhIGhvaSBkZW4gZ2lvIGNob3QgQ2hpbmggcGh1IGRhIGhv cCBsYWkgdmEgdGhheSBkb2kgcXV5ZXQgZGluaCBsYSANCmJvIHBoaWV1IHVuZyBobyBjaG8gcGh1 b25nIGFuIFNvbiBMYSBxdXkgbW8gdGhhcC4gQ2F1IGtoYXUgaGlldSAiV2UgY2FuIGNoYW5nZSIg ZGEgDQpnaXVwIFRvbmcgdGhvbmcgQmFyYXMgT2JhbWEgdGhhbmcgY3UsIHN1eSBjaG8gY3VuZyBP bmcgdGEgZGEga2hvbiBuZ29hbiwgaG9jIHRhcCBiYWkgDQpob2Mga2luaCBuZ2hpZW0gY3VhIGNh YyBjaGluaCBraGFjaCBWaWV0IE5hbS4gTmhpbiB4YSBob24sIGN1b2kgdGhhcCBuaWVuIDYwLCBr aGkgbGFtIA0KUXV5IGhvYWNoIFRodSBkbyBtb2ksIEJvIHRydW9uZyBCdWkgUXVhbmcgVGFvIHRy dWMgdGllcCBjaGkgZGFvLCBkZSB4dWF0IGR1YSBIYSBOb2kgDQptb2kgbGVuIFZpbmggWWVuIGRh IGR1b2MgQm8gQ2hpbmggdHJpIHRob25nIHF1YSwgdGF0IGNhIGNoYXAgaGFuaCBjaGkgY28gMyBu Z3VvaSBiYW8gDQpsdXUgeSBraWVuIGxhIEtUUyBOZ28gSHV5IFF1eW5oLCBLVFMgRGFtIFRydW5n IFBodW9uZyB2YSBLeSBzdSBUcmFuIERhaSBOZ2hpYS4gDQpIb2kgYXksIG5ndW9pIHRhIGN1bmcg Z290IHRyb2MgZHVvYyBtYXkgcXVhIGRvaSBkZSBsYW0geG9uZyB2YWkgY29uIGR1b25nIHZhIGNh YyB0b2EgDQpuaGEgdGFvIHJhIGJvIG1hdCBuaGFtIG5obyBjdWEgdGhpIHRyYW4gWHVhbiBIb2Eu IEN1b2kgY3VuZywgQm8gQ2hpbmggdHJpIGN1bmcgZGEgcGhhaSANCmh1eSBxdXlldCBkaW5oIGR1 YSBUaHUgZG8gbGVuIFZpbmggWWVuISANCiAgDQpEYXQgbnVvYyB0YSBzZSBkaSB2ZSBkYXUgbmV1 IGRhaSBob2kgRGFuZyBYSSBzYXAgZGVuIGxhaSB0aWVwIHR1YyBjbyBjYWMgdmkgcXVhbiAicGh1 IA0KbWF1IiBjb2kgcXV5IGhvYWNoIGxhIHkgY2hpIGN1YSBxdXllbiBsdWMga2hvbmcgZHVhIHRy ZW4gY2FjIGxhcCBsdWFuIHZhIHBoYW4gdGljaCBraG9hIA0KaG9jPy4gU3VjIG1hbmggY3VhIGNh YyB2aSBkYW4gYmlldSBsYSBkYWkgZGllbiBjaG8gdGllbmcgbm9pIGN1YSBjdSB0cmksIGNoYXQg bHVvbmcgY3VhIA0KY2FjIHBodW9uZyB0aWVuIHRob25nIHRpbiBkYWkgY2h1bmcgbGEgdHJpIHRo dWMgeGEgaG9pIG1hIGtob25nIGJpZXQga2hhbmcgZGluaCB2YWkgdHJvLCANCnZpIHRoZSBjdWEg bWluaCwga2hvbmcgdnVvdCBsZW4gY2hpbmggbWluaCB0aGkgbmd1b2kgZGFuIGN1bmcga2hvbmcg Y28gZ2kgbmdhYyANCm5oaWVuIG5odW5nIGdpIGRhIHZhIGRhbmcgZGllbiByYSB0cmVuIGRhdCBu dW9jIHRoYW4geWV1IGN1YSBjaHVuZyB0YS4gIA0KDQpOZ2F5IGNhcCBuaGF0OiAxNC82LzIwMTAg DQoNCi0NCmh0dHA6Ly9iYW9kaWVudHUuY2hpbmhwaHUudm4vSG9tZS9QaG8tVGh1LXR1b25nLU5n dXllbi1TaW5oLUh1bmctdGllcC14dWMtY3UtdHJpLUhhLVRpbmgvMjAxMDUvMzA1NDkudmdwIDQ6 NTcgUE0sIDA0LzA1LzIwMTANCg0KT25nIE5ndXllbiBTaW5oIEh1bmcgliBkYWkgYmlldSBxdW9j IGhvaSwgZG9hbiBIYSBUaW5oIA0KDQpodHRwOi8vd3d3LnBodW51b25saW5lLmNvbS52bi8yMDEw L1BhZ2VzL3Z1LXRoaWV1LWRvdC1jaGF1LWJlLTEyLXR1b2ktbW9pLWJpLWNhby1sYW5oLXRoZW0t Ni10aGFuZy10dS5hc3B4IDIyLzAxLzIwMTAgMTA6MjkgIA0KDQpIYSBUaW5oOiB0aGlldSBkb3Qg Y2hhdSBiZSAxMiB0dW9pLCBkYW4gZGVuIHRodW9uZyB0YXQgNDglIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwNDEvMjAxMDEwMDUxNDE2NTkuYXNweCAwNS8x MC8yMDEwIDE0OjE3IA0KDQpIYSBUaW5oOiA5IG5ndW9pIGNoZXQgZG8gbXVhIGx1ICh0aW5oIGRl biA1LzEwKSANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL1BoYW4tdWF0LXZ1 LW1lLWRhdC1jb24tdGhvLWRpLXRpbS1jb25nLWx5LTkzODg3My8gMDc6MDcsIDAyLzEwLzIwMTAg KEdNVCs3KQ0KDQpIYSBUaW5oOiBOZ3VvaSBkYW4gcGhhbiB1YXQgdnUgYW4gJ2NvbiBiaSBoaWVw LCBtZSBiaSBkYW5oJyAtIENhbSBwaGFuIHZvaSBoYW5oIHZpIA0KY3VhIGtlIGFjIGdheSByYSB0 YWkgaG9hOyB4b3QgeGEgY2hvIGhvYW4gY2FuaCBoYWkgbWUgY29uIGJpIGhhaSwgcGhhaSBkYXQg ZGl1IG5oYXUgDQpkaSB0aW0gY29uZyBseTsga2hvIGhpZXUgc3UgY2hhbSB0cmUgdHJvbmcgY2Fj aCBnaWFpIHF1eWV0IGN1YSBjbyBxdWFuIGNodWMgbmFuZyBvIEhhIFRpbmguIA0KDQpodHRwOi8v eHVuZ2hlLnZuL3BvcnRhbC9uZXdzLzIwMDkvMDMvNDcyNi8gMjE6MzE6NDEgLSAyOC8zLzIwMDkN Cg0KSGEgVGluaDogU2FtIHNvIHRoaW0sIGN1b25nIGhpZXAgZW0gaG8NCg0KaHR0cDovL3RpbnR1 Yy54YWxvLnZuLzAwLTE4ODYzMDcyNjMvaGFfdGluaF90aGF5X2dpYW9faGllcF9kYW1faG9jX3Np bmhfbG9wXzRfbGFuaF8xNV9uYW1fdHVfZ2lhbS5odG1sIFRoZW8gU0dHUCAtIDE4LzAzLzIwMTAN Cg0KSGEgVGluaDogVGhheSBnaWFvIGhpZXAgZGFtIGhvYyBzaW5oIGxvcCA0IA0KDQpodHRwOi8v dmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDcvQmUtc28tc2luaC1iaS1tZS1uaGFuLXRhbS1iby1y b2ktby1kb25nLXJhYy05MjM5MTgvIDA5OjQyLCAyMi8wNy8yMDEwIChHTVQrNykNCg0KSGEgVGlu aDogbmhhbiB0YW0gYm8gcm9pIGJlIHNvIHNpbmggbyBkb25nIHJhYyANCg0KaHR0cDovL3d3dy52 bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA2LzA3LzNCOUVCRDdGLyAxMi83LzIwMDYsIDA5OjAy IEdNVCs3IChUaGVvIFRUWFZOKQ0KDQpIYSBUaW5oOiBCYSBnaWFtIGRvYyBzbyBiaSBreSBsdWF0 IC0gZG8gY28gbmh1bmcgc2FpIHBoYW0gbmdoaWVtIHRyb25nIHZlIGtpbmggdGUgdmEgZGFvIGR1 Yy4NCg0KVHJvbmcgY29uZyB0YWMgcXVhbiBseSB0YWkgY2hpbmgsIG9uZyBIb2FuZyBBbmggKEdp YW0gZG9jIFNvIFhheSBkdW5nKSBkYSBjaGkgdGlldSBzYWkgbmd1eWVuIHRhYyBob24gMjAwIHRy aWV1IGRvbmcuIE9uZyB0aHVvbmcgZ2F5IG1hdCBkb2FuIGtldCBub2kgYm8sIGJlIHBoYWkgY3Vj IGJvLCB0aGlldSB0aW5oIHRoYW4gZGF1IHRyYW5oIHBoZSBiaW5oIHZhIHR1IHBoZSBiaW5oLiBO aGlldSBuYW0gY2hpIGJvIG5vaSBvbmcgSG9hbmcgQW5oIHNpbmggaG9hdCB0aHVvYyBsb2FpIHll dSBrZW0sIGtob25nIHBoYW4gbG9haSBkdW9jIGRhbmcgdmllbi4gDQoNCk9uZyBMZSBOaHVuZyAo R2lhbSBkb2MgU28gTGFvIGRvbmcgLSB0aHVvbmcgYmluaCAmIHhhIGhvaSkgZGEgdHUgc3VhIGNo dWEgaG8gc28gbHkgbGljaCBkZSBnaWFtIGJhIHR1b2kgc28gdm9pIGhvIHNvIGdvYy4gRG8gYnVv bmcgbG9uZyBjb25nIHRhYyBxdWFuIGx5LCBvbmcgTGUgTmh1bmcgY29uIHBoYWkgY2hpdSB0cmFj aCBuaGllbSB0cm9uZyB2aWVjIGxhbSBobyBzbyB0aHVvbmcgYmluaCBnaWEgdm9pIHNvIGx1b25n IDguNTAwIG5ndW9pLiANCg0KTG9pIGR1bmcgY2h1YyB2dSBxdXllbiBoYW4sIG9uZyBOZ3V5ZW4g QmEgVGhpbmggKFBobyBnaWFtIGRvYyBTbyBOb25nIG5naGllcCBwaGF0IHRyaWVuIG5vbmcgdGhv bikgZGEgY2hpIGRhbyBjaHV5ZW4gMy42MDAgaGEgcnVuZyBwaG9uZyBobyBOZ2FuIFNhdSBzYW5n IHJ1bmcgc2FuIHh1YXQsIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZyBkZW4gdmllYyBiYW8gdmUg cnVuZyBwaG9uZyBobyBkYXUgbmd1b24gdmEgbmhpZW0gdnUgdHJvbmcgcnVuZy4gIA0KDQpodHRw Oi8vdGludHVjLnhhbG8udm4vMDA1MDU4NTUyMTcvdnVfNF9waG9uZ192aWVuX2JpX2RlX2RvYV9o YW5oX2h1bmdfb19oYV90aW5oX3lldV9jYXVfZ2lhbV9kb2Nfa2hhY2hfc2FuX25nYW5faGFfY29u Z19raGFpX3hpbl9sb2kuaHRtbCAgOC80LzIwMDksIDM6MTIgUE0gDQoNCkhhIFRpbmg6IDQgcGhv bmcgdmllbiBiaSBkZSBkb2EgaGFuaCBodW5nIG8gSGEgVGluaCANCg0KaHR0cDovL3d3dzYudm5t ZWRpYS52bi9uZXdzZGV0YWlsLmFzcD9OZXdzSWQ9MTE3ODQ2JkNhdGlkPTIzIDA3aDU5IiAyNS8w MS8yMDA4DQoNCkhhIFRpbmg6IENodSB0aWNoIFRQIEhhIFRpbmggYmkgY2FjaCBjaHVjIHZpIHNp bmggY29uIHRodSBiYSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwNi9Q aGF0LWhpZW4tZG9pLW5hbS1udS1sb2EtdGhlLWNoZXQtdGFpLXBob25nLXRyby05MTQ0MjEvIDA4 OjAxLCAwNi8wNi8yMDEwIChHTVQrNykNCg0KSGEgVGluaDogTmdheSAyMy80IE1hdCBkaWVuLCB0 cm9pIG5vbmcgbnVjLCAyIG5ndW9pIGNoZXQgdmkgbmdhdCBraG9pIG1heSBwaGF0IGRpZW4gZ2lh IGR1bmcgKGhhaSBjb24gY3VhIGFuaCBUcmFuIER1YyBRdXkgLSB4b20gQW4gVGllbiwgeGEgWHVh biBHaWFuZywgTmdoaSBYdWFuLCBIYSBUaW5oKQ0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vTmV3cy9QYWdlcy8yMDEwMzYvMjAxMDA5MDUwMDM0MjMuYXNweCBUaGFuaCBUdW5nIFRydW9u ZyBIb2EgMDUvMDkvMjAxMCAwOjM0IA0KDQpIYSBUaW5oOiBjaHV5ZW4gdGhhdCBuaHUgZHVhIC0g YmFjIHNpIGx1YSBiZW5oIG5oYW4gLSBCaWVuIGJlbmggbmhhbiB0aGFuaCB2YXQgdGhpIG5naGll bSAobW8gbm9pIHNvaSB0cmFpIHBoZXAga2hvbmcgdGhhbmgsIGRhbmggbW8gYmFuaCkgDQoNCmh0 dHA6Ly90aWVucGhvbmcudm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0xNTE3MTUmQ2hh bm5lbElEPTIgMDgvMDIvMjAwOSwgMTY6NTkNCg0KSGEgVGluaDogR2lhbSBkb2MgU28gWSB0ZSB0 aW5oIC0gY28gbmhpZXUgc2FpIHBoYW0gdHJvbmcgdmllYyBjaGkgZGFvIHRvIGNodWMgdGhpIHR1 eWVuIHZpZW4gY2h1YyBuZ2FuaCB5IHRlIEhhIFRpbmggbmFtIDIwMDg7DQoNCkh1eSBibyBjdW9j IHRoaSB0dXllbiwgYmFpIGJvIGtldCBxdWEgY3VhIDI1MCB2aWVuIGNodWMgZGEgZGF1IHZhIHR1 eWVuIGR1bmcgdmFvIG5nYW5oIHkgdGUgZGUgdG8gdGh1YyB0aGkgdHV5ZW4gbGFpLg0KDQpodHRw Oi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDkvQ29uLWJpLWhpZXAtbWUtYmktZGFuaC1Ob2kt ZGF1LXRvdC1jdW5nLTkzNjExMS8gMTE6MTMsIDE3LzA5LzIwMTAgKEdNVCs3KQ0KDQpIYSBUaW5o OiBDb24gYmkgaGllcCwgbWUgYmkgZGFuaCAtIE5vaSBkYXUgdG90IGN1bmcNCg0KQmUgZ2FpIDYg dHVvaSBkYW5nIGhhbyBodWMgdmFvIGxvcCAxIHRoaSBiaSBjdW9uZyBidWMuIFhvdCBjb24sIG1l IGJlIGRlbiBub2kgY2h1eWVuIGN1bmcgYmkgaGFuaCBodW5nLg0KDQpEaWV1IGRhbmcgbm9pIGxh IGRhIG5oaWV1IHR1YW4gdHJvaSBxdWEsIGtlIHR1IG5nYXkgeGF5IHJhIHZ1IGFuLCBuaHVuZyBu Z2hpIGNhbiB2YW4gbmdvYWkgdm9uZyBwaGFwIGx1YXQuLi4gDQoNCmh0dHA6Ly92bmV4cHJlc3Mu bmV0L0dML1hhLWhvaS8yMDEwLzA2LzNCQTFDREMyLyAxMS82LzIwMTAsIDE1OjU4IEdNVCs3DQoN CkhhIFRpbmg6IE5vIG1heSBwaGF0IGRpZW4sIHF1YW4gcGhvIGJpIHRoaWV1IHJ1aQ0KDQpodHRw Oi8vd3d3LnZ0Yy52bi8yLTI1MTA3Mi94YS1ob2kvaGEtdGluaC1tb3QtdHVhbi1saWVuLXRpZXAt eGF5LXJhLTEwLXZ1LWNoYXktcnVuZy5odG0gMTgvMDYvMjAxMCAwNjo0OCANCg0KSGEgVGluaDog TW90IHR1YW4gbGllbiB0aWVwIHhheSByYSAxMCB2dSBjaGF5IHJ1bmcNCg0KSG9uIG1vdCB0dWFu IHF1YSB0YWkgSGEgVGluaCBkYSB4YXkgcmEgdHJlbiAxMCB2dSBjaGF5IHJ1bmcgZ2F5IHRoaWV0 IGhhaSBuZ2hpZW0gdHJvbmcuIA0KVHJvbmcga2hpIGRvLCB0aG9pIHRpZXQgbmFuZyBub25nIGdh eSBnYXQgdmFuIGNodWEgY28gZGF1IGhpZXUgY2hhbSBkdXQgaGFuZyB0cmFtIGhhIA0KcnVuZyBj byBuZ3V5IGNvIGNoYXkgYmF0IGN1IGx1YyBuYW8uICAgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVu LmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzNS8yMDEwMDgyNjAxMTA1My5hc3B4IFRydW9uZyBIb2Eg MjYvMDgvMjAxMCAxOjEwIA0KDQpIYSBUaW5oOiAgMyBuZ3VvaSBjaGV0IGRvIGJhbywgdGhpZXQg aGFpIGhvbiAxNzQgdGkgZG9uZyAoYmFvIHNvIDMpIA0KDQpUaGVvIHRob25nIGtlIGRlbiBjaGll dSBuZ2F5IDI1LjgsIHRvYW4gdGluaCBIYSBUaW5oIGNvIHRvbmcgdGhpZXQgaGFpIGhvbiAxNzQg dGkgZG9uZywgMyANCm5ndW9pIGJpIHRoaWV0IG1hbmcuIEh1eWVuIE5naGkgWHVhbiBjaGl1IHRo aWV0IGhhaSBuYW5nIG5oYXQsIHRyZW4gNTQgdGkgZG9uZy4gDQpUb2FuIHRpbmggY28gMTA2IG5n b2kgbmhhIGJpIHNhcCwgc28gbmhhIGJpIHRvYyBtYWkgaHUgaG9uZyBnYW4gOC4wMDAgbmdvaSBu aGEsIDY1MCBuZ29pIA0KbmhhIGJpIG5nYXAuIA0KDQpodHRwOi8vd3d3LnRpbm1vaS52bi9UaGFu aC1waG8tYmllbi10aGFuaC1zb25nLWdpdWEtZGVtLWhlLTA2MTY2MDczLmh0bWwgMDk6NTQgMDMv MDYvMjAxMCANCg0KSGEgVGluaDogTXVhIHRvIHRoYW5oIHBobyBiaWVuIHRoYW5oIHNvbmcgZ2l1 YSBkZW0gaGUNCg0KU2F1IG1vdCBkb3QgbmFuZyBub25nIGtlbyBkYWksIG5nYXkgMi82LCB0YWkg SGEgVGluaCBjbyBtdWEgdG8gaGFuZyBnaW8gbGllbiwgbmhpZXUgZHVvbmcgcGhvIGRhIGJpZW4g dGhhbmggc29uZy4gTnVvYyBkYW5nIGxlbiBuaGFuaCB2YW8gYmFuIGRlbSBraGllbiBnaWFvIHRo b25nIGRpIGxhaSB0cm9uZyB0aGFuaCBwaG8gZ2FwIGtobyBraGFuLg0KDQpodHRwOi8vd3d3Lmxh b2RvbmcuY29tLnZuL0hvbWUvWHUtbHktbmdoaWVtLWhhbmgtdmktaGFuaC1odW5nLW5oYS1iYW8v MjAxMDEvMTcwMDcwLmxhb2RvbmcgODoyOSBBTSwgMTEvMDEvMjAxMA0KDQpIYSBUaW5oOiBIYWkg cGhvbmcgdmllbiBCYW8gVGllbiBQaG9uZyBiaSBoYW5oIGh1bmcgbyBIYSBUaW5oIGhvbSA2LjEN Cg0KVnUgaGFpIHBob25nIHZpZW4gQmFvIFRpZW4gUGhvbmcgYmkgaGFuaCBodW5nIG8gSGEgVGlu aCBob20gNi4xIGRhIGxhbSBjaG8gZHUgbHVhbiBoZXQgc3VjIGJ1YyB4dWMsIGRhYyBiaWV0IGxh IGJhbyBnaW9pLiBDaGkgdmkgZGVuIGRlIG5hbSB0aG9uZyB0aW4gdnUgY3VvbmcgY2hlIG8geGEg S3kgVGhvIG1hIGhhaSBwaG9uZyB2aWVuIFZvIE1pbmggQ2hhdSB2YSBNaW5oIFRodXkgZGEgYmkg aGFpIGRvaSB0dW9uZyBjb24gZG8gaGFuaCBodW5nIGRhIG1hbi4NCg0KSG9pIE5oYSBiYW8gVk4g cGhhbiBubyBsZW4gYW4gdmEgeWV1IGNhdSB4dSBseSB0aGljaCBkYW5nIG5odW5nIGtlIGNvbiBk bw0KDQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0LzIwMDktMTItMDUtbmh1Yy1uaG9pLWRhby12YW4t eHUtbHktdGhlLW5hby0gMDUvMTIvMjAwOSAwNzozMCBHTVQrNyBQaHVvbmcgS2hhbmgNCg0KSGEg VGluaDogIFBobyBHaWFtIGRvYyBTbyBWSC1UVCAmIER1IGxpY2ggZGFvIHZhbiBjdWEgVFMgTmd1 eWVuIFh1YW4gRGllbiAtIDIwIHRyYW5nIGtoYW8gY3V1IHF1YW4gdHJvbmcuDQooYmEgUGhhbiBU aHUgSGllbiAtIFBobyBHaWFtIGRvYyBTbyBWSC1UVCAmIER1IGxpY2ggSGEgVGluaCAtIGRhbyAy MCB0cmFuZyBraGFvIGN1dSBxdWFuIHRyb25nIGN1YSBUUy4gTmd1eWVuIFh1YW4gRGllbiwgY28g a2hvbiBuZ29hbiBsYSBzdWEgdmFuIHBob25nIG8gZG9pIGNoby4gTmh1bmcgdmkgbGEgbmh1bmcg bmd1b2kgY2hhIGNvIG5naGllbiBjdXUgZ2kgY2hvIHR1IHRlIG5lbiBkYSBib2MgbG8gcmEgbmh1 bmcgY2FpIHNhaSByYXQgbmdheSBuZ28ga2lldSAidGhvIGR1b2kgY2FvIi4pDQoNCi0NCmh0dHA6 Ly93d3cudmlldG5hbWNvbnN1bGF0ZS1uYW5uaW5nLm9yZy9ucjA3MDUyMTE2NTk1Ni9uZXdzX29i amVjdF92aWV3P25ld3NQYXRoPS92bmVtYi52bi90aW5faGRkbi9uczA5MTAyMDE3MDExMCANCg0K UGhvIFRodSB0dW9uZyBUaHVvbmcgdHJ1YyBOZ3V5ZW4gU2luaCBIdW5nIGR1IEhvaSBjaG8gQVNF QU4gLSBUcnVuZyBRdW9jIGxhbiB0aHUgVkkgDQp2YSB0aGFtIEtodSB0dSB0cmkgZGFuIHRvYyBD aG9hbmcgUXVhbmcgVGF5LCBUcnVuZyBRdW9jIA0KDQpOZ2F5IDE5LzEwIHRhaSBOYW0gTmluaCwg b25nIFBobyBUaHUgdHVvbmcgVGh1b25nIHRydWMgTmd1eWVuIFNpbmggSHVuZyBkYSBjbyBjdW9j IA0KZ2FwIHZvaSBvbmcgTHkgS2hhYyBDdW9uZywgVXkgdmllbiBUaHVvbmcgdnUgQm8gQ2hpbmgg dHJpLCBQaG8gVGh1IHR1b25nIFF1b2MgdnUgVmllbiBUcnVuZyBRdW9jLiANCg0KT25nIE5ndXll biBTaW5oIEh1bmcgY2hhbiB0aGFuaCBjYW0gb24gc3UgZG9uIHRpZXAgbmhpZXQgdGluaCBjaHUg ZGFvIG1hIENoaW5oIHBodSBUcnVuZyBRdW9jIA0KdmEgQ2hpbmggcXV5ZW4gUXVhbmcgVGF5IGRh bmggY2hvIERvYW4gZGFpIGJpZXUgQ2hpbmggcGh1IFZpZXQgTmFtOyBuaGlldCBsaWV0IGNodWMg bXVuZyBuaHVuZyANCnRoYW5oIHR1dSB2aSBkYWkgbWEgbmhhbiBkYW4gVHJ1bmcgUXVvYyBkYSBk YXQgZHVvYyB0cm9uZyA2MCBuYW0gcXVhLCBuaGF0IGxhIHRyb25nIGhvbiAzMCBuYW0gY2FpIGNh Y2ggbW8gY3VhIGdhbiBkYXkuIA0KDQpOaGFuIGRpcCBuYXksIG9uZyBOZ3V5ZW4gU2luaCBIdW5n IGN1bmcga2hhbmcgZGluaCBDaGluaCBwaHUgdmEgbmhhbiBkYW4gVmlldCBOYW0gbHVvbiB0cmFu IHRyb25nIA0KdGluaCBjYW0gaHV1IG5naGkgdmEgc3UgdW5nIGhvLCBnaXVwIGRvIHRvIGxvbiBt YSBuaGFuIGRhbiBUcnVuZyBRdW9jIHRyb25nIGRvIGNvIG5oYW4gZGFuIFF1YW5nIFRheSBkYSB2 YSBkYW5nIGRhbmggY2hvIG5oYW4gZGFuIFZpZXQgTmFtLiANCg0KaHR0cDovL3d3dy52aWV0bmFt bmV0LnZuL3hhaG9pLzIwMTAwNS9UYXUtY2EtVmlldC1OYW0tbGFpLWJpLXRhdS1UcnVuZy1RdW9j LWJhdC1naXUtOTA4MjYwLzE0OjUzLCAwNi8wNS8yMDEwIChHTVQrNykNCg0KVGF1IGNhIFZpZXQg TmFtIGxhaSBiaSB0YXUgVHJ1bmcgUXVvYyBiYXQgZ2l1ICANCg0KaHR0cDovL3ZuZXhwcmVzcy5u ZXQvR0wvWGEtaG9pLzIwMTAvMDYvM0JBMUNFMTQvIDEyLzYvMjAxMCwgMDk6MzUgR01UKzcNCg0K IlRhdSBsYSIgbGFpIGRhbSBjaGltIHRhdSBkYW5oIGNhIFZpZXQgTmFtIA0KIA0KUmFuZyBzYW5n IDEyLzYvMjAxMCB0YXUgZGFuaCBjYSBjdWEgdGh1eWVuIHRydW9uZyBWbyBYdWFuIFRpZW4gY3Vu ZyAxNyBuZ3UgZGFuIGRhbyANCkx5IFNvbiAoUXVhbmcgTmdhaSkgdHJlbiBkdW9uZyBoYW5oIG5n aGUgdHUgVHJ1b25nIFNhIHZlIHZ1bmcgYmllbiBCaW5oIERpbmggZGEgYmkgDQp0YXUgbGEgZGFt IGNoaW0gcm9pIGJvIGNoYXkuDQoNClRoZW8gY2FjIG5ndSBkYW4gZ2FwIG5hbiwgc2F1IHBoaWVu IGJpZW4gbyBUcnVvbmcgU2EgdHJvIHZlLCBobyBkYW5oIGJhdCBkdW9jIGtob2FuZyANCjIwIHRh biB0aHV5IHNhbiwgZHUga2llbiB2ZSBkZW4gZGFvIEx5IFNvbiB2YW8gY2hpZXUgMTIvNiBkZSBi YW4gY2EgdmEgbmdoaSBuZ29pIGNodWFuIA0KYmkgYW4gVGV0IERvYW4gbmdvIChtdW5nIDUvNSku IFR1eSBuaGllbiwga2hvYW5nIDJoIHNhbmcgbmF5LCB0YXUgdmUgZGVuIGNhY2ggZGFvIA0KTmhv biBDaGF1IChDdSBMYW8gWGFuaCkgMTIgaGFpIGx5IHRoaSBiaSB0YXUgbGEgZGFtIGNoaW0uIHJv aSBibyBjaGF5Lg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEw MjkvMjAxMDA3MTIwNDIzMDguYXNweCAxMi8wNy8yMDEwIDQ6MjMgDQoNClRydW5nIFF1b2MgdGhv bmcgcXVhICJDdW9uZyB5ZXUgcXV5IGhvYWNoIHhheSBkdW5nIHZhIHBoYXQgdHJpZW4gZGFvIGR1 IGxpY2ggcXVvYyB0ZSANCkhhaSBOYW0gMjAxMC0yMDIwIiAtIGR1YSBIb2FuZyBTYSB2YSBUcnVv bmcgU2EgdmFvIHF1eSBob2FjaCB4YXkgZHVuZyB2YSBwaGF0IHRyaWVuIA0KZGFvIGR1IGxpY2gg cXVvYyB0ZSBIYWkgTmFtOyB2aSBwaGFtIG5naGllbSB0cm9uZyBjaHUgcXV5ZW4gY3VhIFZOIA0K DQotDQpodHRwOi8vd3d3LnZpZXQtc3R1ZGllcy5pbmZvL2tpbmh0ZS9OTlRyYW5fSG9pX05TSHVu Zy5wZGYNCg0KQ2hpbmggcGh1IHRyYSBsb2kgY2hhdCB2YW4gY3VhIHF1b2MgaG9pICh2ZSBkdSBh biBCby14aXQgbyBUYXkgTmd1eWVuKTogIA0KDQpYaW4gZHVvYyBob2kgbGFpIG9uZyBOZ3V5ZW4g U2luaCBIdW5nICh2ZSBraGFpIHRoYWMgYm8teGl0IG8gVGF5IE5ndXllbikNCg0KR3MuIE5ndXll biBOZ29jIFRyYW4NCg0KVGFpIGRpZW4gZGFuIFF1b2MgaG9pLCBuZ2F5IDEzLjYuMjAwOSwgdHJh IGxvaSBjaGF0IHZhbiBjdWEgZGFpIGJpZXUgUXVvYyBob2ksIG9uZyBOZ3V5ZW4gU2luaCBIdW5n IG5oYW4gbWFuaDoNCiJEYXkgbGEgdmFuIGJhbiAoUXV5IGhvYWNoIHBoYW4gdnVuZyB0aGFtIGRv LCBraGFpIHRoYWMsIGNoZSBiaWVuLCBzdSBkdW5nIGJvLXhpdCBnaWFpIA0KZG9hbiAyMDA3IC0g MjAxNSwgY28geGV0IGRlbiBuYW0gMjAyNSkgeGFjIGRpbmggcXVhbg0KIGRpZW0sIG11YyB0aWV1 LCBwaHVvbmcgaHVvbmcsIG5oaWVtIHZ1IHZhIG5odW5nIGdpYWkgcGhhcCBjaGluaCBsYW0gY28g c28gY2hvIGtlIA0KaG9hY2ggZGFpIGhhbiB0cmllbiBraGFpIHRyb25nIGdhbiAyMCBuYW0uIFRy b25nIFF1eSBob2FjaCwgQ2hpbmggcGh1IGRhIHF1YW4gdGFtIGRlIGNhcCB0YXQgY2EgY2FjIHll dSBjYXUgdmUgaGlldSBxdWEga2luaCB0ZSAtIHhhIGhvaSwgYmFvIHZlIG1vaSB0cnVvbmcgc2lu aCB0aGFpIGN1bmcgbmh1IA0KbW9pIHRydW9uZyB2YW4gaG9hLCB4YSBob2kgdmEgaG9wIHRhYyBk YXUgdHUgdm9pIG51b2MgbmdvYWkgY3VhIGNhYyBkdSBhbiwgZGFjIGJpZXQgcXVhbiB0YW0gYmFv IGRhbSBxdW9jIHBob25nLCBhbiBuaW5oIHRyZW4gZGlhIGJhbiBUYXkgTmd1eWVuIi4NCg0KWGlu IGR1b2MgaG9pIG9uZzogTmh1IHZheSwgdGhlbyBvbmcsIFF1eSBob2FjaCBwaGFuIHZ1bmcgdGhh bSBkbywga2hhaSB0aGFjLCBjaGUgYmllbiwgc3UgZHVuZyBiby14aXQgZ2lhaSBkb2FuIDIwMDcg LSAyMDE1LCBjbyB4ZXQgZGVuIG5hbSAyMDI1IGRhIGxhIG1vdCB2YW4gYmFuIGhvYW4gY2hpbmgs IA0KY3UgdGhlIG1hIHRyaWVuIGtoYWksIGtob25nIGNvIGdpIHBoYWkgcmEgc29hdCBsYWk/DQpO ZXUgZHVuZyBuaHUgdmF5LCBkbyBsYSBjYWNoIG9uZyBoaWV1IEtldCBsdWFuIGN1YSBCbyBDaGlu aCB0cmkgdmUgdmllYyBraGFpIHRoYWMgYm8teGl0IG8gVGF5IE5ndXllbj8gDQpOZXUga2hvbmcg KG5naGlhIGxhIGNvbiBwaGFpIHJhIHNvYXQgbGFpKSwgdGhpIGtoaSBvbmcgbm9pOiAiVG9pIGto b25nIG5naGkgbGEgZGEgdGFjaCByYSBtYSBsYSBwaGFpIGxhbSB0dW5nIGR1IGFuIHRoaSBtb2kg dG90IGR1b2MuIENodW5nIHRhIGNoaSBjbyB0aGUgbGFwIHF1eSBob2FjaCBjaHVuZywgdHJlbiAN CmNvIHNvIGRvLCBsYW0gdHVuZyBkdSBhbiB0aGkgbW9pIGR1bmcgcXV5IHRyaW5oIHZhIGJhbyBk YW0gZHVvYyBjaGF0IGx1b25nLCBiYW8gZGFtIHRhdCBjYSB2YW4gZGUgbGllbiBxdWFuIGRlbiBt b2kgdHJ1b25nLCBxdW9jIHBob25nIGFuIG5pbmgiIGNvIHBoYWkgdHJvbmcgZGlldSBoYW5oLCBv bmcgDQpjaGkgY2FuIHRoYXkgY2F5IG1hIGtob25nIGNhbiBiaWV0IGRlbiBydW5nPw0KDQpDdW9p IGN1bmcsIG5naGUgb25nIHBoYXQgYmlldSB0aGkgdmllYyB0cmllbiBraGFpIGR1IGFuIE5oYW4g Q28gbGEgZHVvbmcgbmhpZW4uIFRyb25nIGtoaSBkbyB5IGtpZW4gY2hpIGRhbyBjdWEgQm8gQ2hp bmggdHJpIHRhaSBUaG9uZyBiYW8gMjQ1IGxhOiAiUmllbmcgRHUgYW4gTmhhbiBDbywgY2FuIA0K cmEgc29hdCBsYWkgdG9hbiBibyBjYWMgdmFuIGRlIGNvIGxpZW4gcXVhbiwgbmhhdCBsYSB2aWVj IGRhbmggZ2lhIGhpZXUgcXVhIGtpbmggdGUgdmEgdGFjIGRvbmcgbW9pIHRydW9uZywgbmV1IHRo dWMgc3UgY28gaGlldSBxdWEgdmEgYmFvIGRhbSB5ZXUgY2F1IHZlIGJhbyB2ZSBtb2kgdHJ1b25n IHRoaSANCm1vaSB0aWVwIHR1YyB0cmllbiBraGFpIHRodWMgaGllbiIuIFZhIHRyb25nIGR1IGFu IG5heSBuaGEgdGhhdSBUcnVuZyBRdW9jIENoYWxpZWNvIGR1b2MgY2hpIGRpbmggY2h1IGtob25n IHBoYWkgImR1b2MgdGh1YyBoaWVuIHRob25nIHF1YSBkYXUgdGhhdSBxdW9jIHRlIGNvbmcga2hh aSIgbmh1IG9uZyBub2kuIA0KDQpYaW4gZHVvYyBuZXUgbWF5IGNhdSBob2kgdHJlbiB2aSBxdWEg dGhhdCBiYW4ga2hvYW4gY3VhIGN1IHRyaSBjYW5nIHRhbmcgdGhlbSBnYXAgYm9pIA0Ka2hpIG5n aGUgb25nIEh1bmcsIHV5IHZpZW4gQm8gQ2hpbmggdHJpLCB2b2kgdHUgY2FjaCBQaG8gVGh1IHR1 b25nIENoaW5oIHBodSB0aHVvbmcgDQp0cnVjLCB0cmEgbG9pIGRhaSBiaWV1IFF1b2MgaG9pIHZl IHZpZWMga2hhaSB0aGFjIGJvLXhpdCBvIFRheSBOZ3V5ZW4hIA0KDQotDQpodHRwOi8vdmkud2lr aXBlZGlhLm9yZw0KDQpPbmcgTmd1eWVuIFNpbmggSHVuZyBuZ3V5ZW4gbGEgQm8gdHJ1b25nIEJv IFRhaSBjaGluaA0KDQpodHRwOi8vd3d3LmdhbnhhLmNvbS9OZXdzL0RldGFpbE5ld3MucGhwP0lE TmV3cz0zMDM2IDE0LzEvMjAxMCANCg0KQ2hpbmggcGh1OiBUaHUgdGh1ZSBiYXkgZ2lvICJjdWEg ZG9pIiBuaGlldSBsYW0uIERhbmcgbGUgcGhhaSBkb25nIDEwIGRvbmcgdGhpIHRob25nIA0KZG9u ZyB2b2kgY2FuIGJvIHRodWUgY2hpIG5vcCBtb3QgbnVhLCBwaGFuIGNvbiBsYWkgbGEgY2hpYSBj aGFjOyBvbmcgTmd1eWVuIFNpbmggSHVuZyANCmxhbSBibyB0cnVvbmcgQm8gdGFpIGNoaW5oIHR1 IHRoYW5nIDExLzE5OTYgZGVuIHRoYW5nIDYvMjAwNiBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gY2hp bmggDQp2ZSBuaHVuZyB5ZXUga2VtIG5naGllbSB0cm9uZyBjdWEgbmdoYW5oIHRhaSBjaGluaDsg dmFuIGR1b2MgbGVuIGNodWMgVXkgdmllbiBCbyBjaGluaCB0cmksIFBobyB0aHUgdHJ1b25nIENQ KS4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhvaS9Cby10cnVvbmctTmd1eWVuLVNpbmgtSHVu Zy1jYW4tZ2lhaS10cmluaC1yby10cnVvYy1raGktcm9pLUJvLVRhaS1jaGluaC80MDEzODU0MC8x NTcvICAxOC81LzIwMDYsIDA1OjQ5IEdNVCs3IA0KDQpRdW9jIGhvaSB0aGFvIGx1YW4gdmUgdGlu aCBoaW5oIGtpbmggdGUgLSB4YSBob2k6IERhdSB4b3Qgdm9pIG5ndW9uIHZvbiBiaS4uLiBidW9u ZyB0aGEgIA0KDQpCbyB0cnVvbmcgTmd1eWVuIFNpbmggSHVuZyBjYW4gZ2lhaSB0cmluaCBybyB0 cnVvYyBraGkgcm9pIEJvIFRhaSBjaGluaCENCg0KLSAiUXVhIHZ1IHRpZXUgY3VjIGRvbmcgdHJv aSBvIFBNVTE4LCBjaHVuZyB0YSBtb2kgZ2lhdCBtaW5oIHZlIGN1bmcgY2FjaCBxdWFuIGx5IHZv biANCk9EQSIgLSBEQiBMZSBWYW4gQ3VvbmcgKFRoYW5oIEhvYSkgbm9pIC0gIk5ndXllbiBuaGFu IGxhIGRvIGNvIGNoZSBxdWFuIGx5IHRoaWV1IG1pbmggYmFjaCIgDQoNCi0gUGhvIGNodSBuaGll bSBVeSBiYW4gRG9pIG5nb2FpIE5ndXllbiBOZ29jIFRyYW46DQoNCk5naGkgZGluaCAxNyBuZXUg cmF0IHJvOiBCbyBLZSBob2FjaCAtIGRhdSB0dSAoS0gtRFQpIGxhIGNvIHF1YW4gZGF1IG1vaSB0 cm9uZyB2aWVjIHF1YW4gbHkgdmEgc3UgZHVuZyBuZ3VvbiB2b24gT0RBLCBCbyBUYWkgY2hpbmgg bGEgY28gcXVhbiBxdWFuIGx5IHRhaSBjaGluaCBPREEuIA0KVHJhY2ggbmhpZW0gY3VhIEJvIFRh aSBjaGluaCByYXQgcm8sIHRhaSBjaGluaCBtYSBraG9uZyBvbiB0aGkgQm8gVGFpIGNoaW5oIHBo YWkgY2hpdSB0cmFjaCBuaGllbSBjaHUga2hvbmcgdGhlIG5vaSBsYSB0YXAgdGhlIENoaW5oIHBo dS4gDQoNCi0gREIgTmd1eWVuIE1pbmggVGh1eWV0OiAiVGh1IHR1b25nIHZhIENoaW5oIHBodSBu ZW4geGluIGxvaSB0b2FuIGRhbiINCg0KLSBDYWMgeSBraWVuICJkYXUgeG90IiB2b2kgbmd1b24g dm9uIE9EQSBkdW9jIHF1YW4gbHkgdmEgc3UgZHVuZyBtb3QgY2FjaCBidW9uZyB0aGEsIA0KbXVv biBsYW0gcm8gdHJhY2ggbmhpZW0gY3VhIGNhIG5oYW4gdmEgZG9uIHZpIHF1YW4gbHkuIE5vaSBu aHUgREIgRG8gVHJvbmcgTmdvYW4gDQooQmFjIEdpYW5nKSwgaGllbiBuYXkgbW9pIG5ndW9pIGRh biBkYW5nIGdhbmggbW90IGtob2FuIG5vIDQ0IFVTRCwgdHJvbmcga2hpIGRvIA0KbmhpZXUgbm9p IHRyZW4gY2EgbnVvYywgbmhhdCBsYSBjYWMgdGluaCBtaWVuIG51aSBUcnVuZyBibyB2YSBCYWMg Ym8sIGNvIG5vaSBjb24gdG9pIDUwLTgwJSBobyBuZ2hlby4gDQoNCi0NCmh0dHA6Ly93d3cubGFv ZG9uZy5jb20udm4vSG9tZS9Ub25nLUdELWxheS0xNzctdGktY2hvaS1jaHVuZy1raG9hbi1sYW0t Z2lhbS1kb2MtQ3R5LW1vaS8yMDEwNi8xODczNTcubGFvZG9uZyA4OjIwIEFNLCAwOC8wNi8yMDEw DQoNClRodW9uZyB0cnVjIGNoaW5oIHBodTogVG9uZyBHRCAibGF5IDE3LDcgdGkgY2hvaSBjaHVu ZyBraG9hbiIgdmFuIGR1b2MgYm8gbmhpZW0gbGFtIGdpYW0gZG9jIEN0eSBtb2kgKDEwMCUgdm9u IG5oYSBudW9jKSANCg0KT25nIFBoYW0gTmh1IEhvYSB0aG9pIGNvbiBsYSBUb25nIEdEIGtpZW0g Q2h1IHRpY2ggSERRVCBDdHkgQ1AgbWlhIGR1b25nIExhIE5nYSAoTURMTiwgNTElIHZvbiBuaGEg bnVvYywgdHJ1IHNvIERpbmggUXVhbi0gRG9uZyBOYWkpIGRhIGRhdSB0dSBob24gMTcsNyB0aSBk b25nIHZhbyBjaHVuZyBraG9hbiBraGkgY2h1YSBjbyBuZ2hpIHF1eWV0IGN1YSBIRFFUIEN0eSwg a2hpZW4gTURMTiBoaWVuIGRhbmcgZSBjbyB2b2kga2hvYW4gbG8gY2h1bmcga2hvYW4gaG9uIDEw IHRpIGRvbmcuIA0KDQpWdSB2aWVjIG9uZyBQaGFtIE5odSBIb2EgdHVuZyBnYXkgYnVjIHh1YyBj aG8gY28gZG9uZy4NCg0KTW9pIGRheSwgb25nIEhvYSBsYWkgZHVvYyBibyBuaGllbSBsYW0gR0Qg Q3R5IFROSEggbW90IHRoYW5oIHZpZW4gbWlhIGR1b25nIFRyYSBWaW5oICgxMDAlIHZvbiBuaGEg bnVvYykuIA0KDQpWaWVjIG9uZyBQaGFtIE5odSBIb2EgIGR1b2MgYm8gbmhpZW0gbGFtIEdEIEN0 eSBNRFRWIChEQlNDTCkgZ2F5IHhvbiB4YW8gY28gZG9uZyBDdHkgTURMTiAoaHV5ZW4gRGluaCBR dWFuIC0gRG9uZyBOYWkpLg0KDQpDYW4gbm9pIHRoZW0sIHF1YSB0aGFuaCB0cmEgdGFpIEN0eSBN RExOIHRyb25nIHRob2kgZ2lhbiB0dSBuYW0gMjAwNSAtIDIwMDcgKHRob2kgZHVvbmcgbmhpZW0g Y3VhIG9uZyBIb2EpLCBDdWMgVGh1ZSBEb25nIE5haSBwaGF0IGhpZW4gZG9uIHZpIG5heSBkYSBr aGFpIHNhaSBsYW0gZ2lhbSBzbyB0aHVlIHBoYWkgbm9wIGhvbiA1LDQgdGkgZG9uZyB2YSB0YW5n IHNvIHRodWUgZHVvYyBnaWFtIGxlbiBkZW4gaG9uIDksMiB0aSBkb25nLiBUaGFuaCB0cmEgQ3Vj IFRodWUgRG9uZyBOYWkgY29uIHBoYXQgaGllbiBDdHkgZGFuZyBnaXUgdHJhaSBwaGVwIDEwLDQg dGkgZG9uZyB0aWVuIGx1b25nIHZhIGNhYyBraG9hbiBwaHUgY2FwIGN1YSBDQkNOViB0cm9uZyB2 b25nIDMgbmFtICgyMDA1IC0gMjAwNykgbWEga2hvbmcgY2hpIHRyYSBjaG8gbmd1b2kgbGFvIGRv bmcgdGhlbyBUaG9uZyB0dSAxMzQvMjAwNy9UVC1CVEMgbmdheSAyMy4xMS4yMDA3IGN1YSBCbyBU YWkgY2hpbmguDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0 MC8yMDEwMDkzMDIzMzgyNS5hc3B4IFF1YW5nIER1YW4gVC5IYW5nIFBoYW0gSGFpIFNhbSAzMC8w OS8yMDEwIDIzOjM4IA0KDQpUaHVvbmcgdHJ1YyBjaGluaCBwaHU6IE5ndXkgY28gVmlldCBOYW0g dGhhbmggYmFpIHJhYyBjb25nIG5naGllcCAgDQoNCkFuaCBjaHVwOiBSYWMgdGhhaSBuaGFwIHZh byBWTiBiaSBwaGF0IGhpZW4gdGFpIGNhYyBjYW5nIG8gSGFpIFBob25nIC0gQW5oOiBQaGFtIEhh aSBTYW0NCg0KKiBOdW9jIG5nb2FpIGNobyB0aWVuIGRlIEROVk4gbmhhcCByYWMgDQoNClZpIG1v biBsb2kgdHJ1b2MgbWF0LCByYXQgbmhpZXUgY2EgbmhhbiwgZG9hbmggbmdoaWVwIChETikgZGEg YmF0IGNoYXAgdGF0IGNhIGRlIG5oYXAgDQpyYWMgdGhhaSBjb25nIG5naGllcCAoUlRDTikgdmFv IFZOLiBUaW5oIHRyYW5nIG5heSBuZ2F5IGNhbmcgdHJvIG5lbiBuZ2hpZW0gdHJvbmcgdmEgDQpW TiBkYW5nIGNvIG5ndXkgY28gdHJvIHRoYW5oIGJhaSBjaHVhIGNoYXQgdGhhaSBjdWEgdGhlIGdp b2kuIA0KDQpSYWMgdGhhaSBuaGFwIHRyYW4gbmdhcCBjYWMgY2FuZyANCg0KVGhvaSBnaWFuIGdh biBkYXksIGNhYyBjbyBxdWFuIGNodWMgbmFuZyBsaWVuIHRpZXAgcGhhdCBoaWVuIGNhYyB2dSBu aGFwIGNoYXQgdGhhaSBudXAgDQpib25nIHZpZWMgbmhhcCBwaGUgbGlldSBuaHU6IG5oYXAgc2F0 IHRoZXAgbGFuIHNhbSBsb3AgdmEgdGh1bmcgZHVuZyBob2EgY2hhdCwgbmhhcCBsaW5oIA0Ka2ll biBkaWVuIHR1IGN1LCBiaW5oIGFjLXF1eSBkYSBxdWEgc3UgZHVuZy4uLiB0YWkgSGFpIFBob25n LCBRdWFuZyBOaW5oLCBUUC5IQ00gdmEgDQptb3Qgc28gZGlhIHBodW9uZyBraGFjLiBDaGFuZyBo YW4sIENoaSBjdWMgSGFpIHF1YW4gY3VhIGtoYXUgY2FuZyBEYSBOYW5nIGtodSB2dWMgMiANCnBo YXQgaGllbiAxMCBjb250YWluZXIgeGkgc2F0IGRvbmcgY3VjIGNvIGtob2kgbHVvbmcgMjE2LDc2 NSB0YW4sIGJhbiB2YSBjbyBnaWEgdHJpIHRoYXAgDQpkYW5nIHRyb25nIHRpbmggdHJhbmcgdm8g Y2h1IHNhdSBraGkgbmhhcCB2YW8gY2FuZyBUaWVuIFNhLiBDb25nIHR5IENQIHhheSBkdW5nIHZh IG5vaSANCnRoYXQgVGhhaSBTb24gZGEga3kgaG9wIGRvbmcgdGFtIG5oYXAsIHRhaSB4dWF0IHZv aSBtb3QgY29uZyB0eSBjdWEgSG9uZyBLb25nIHZvaSBoYW5nIA0KaG9hIHRyZW4gdmFuIGRvbiBs YSA4MDAgdGFuIHNpbGljb24gdHUgSG9uZyBLb25nIHF1YSBUcnVuZyBRdW9jLiBLaGkgbGFtIHRo dSB0dWMgDQpoYWkgcXVhbiB0YWkgTW9uZyBDYWkgdGhpIHBoYXQgaGllbiAxNCBjb250YWluZXIg a2hvbmcgZHVuZyBjaHVuZyBsb2FpICh2dWEgY2h1YSANCnNpbGljb24gbGFuIGFjLXF1eSBraG8g dmEgdmkgbWFjaCBkaWVuIHR1IGRhIHF1YSBzdSBkdW5nKS4gTmdheSBzYXUga2hpIHh1YXQgZHVv YyBsbyANCmhhbmcgbmF5LCBjb25nIHR5IGN1YSBIb25nIEtvbmcgZGEgdHV5ZW4gYm8gcGhhIHNh bi4gTW9pIGRheSwgbHVjIGx1b25nIGh1dSB0cmFjaCANCnBoYXQgaGllbiA1OTIgY29udGFpbmVy IGhhbmcgaG9hIGRhbmcgdG9uIGx1dSB0YWkgY2FjIGNhbmcgRGluaCBWdSwgRG9hbiBYYSwgDQpH cmVlbnBvcnQsIFRyYW5zdmluYSBkZXUgY3VhIEhhaSBQaG9uZy4gUXVhIHBoYW4gbG9haSBiYW4g ZGF1IGNobyB0aGF5IGNvIHRvaSAxMjAgDQpjb250YWluZXIgY2h1YSBzYXQgdGhlcCBwaGUgbGll dSwgbmh1YSBwaGUgbGlldSwgZ2lheSBwaGUgbGlldSwgbGluaCBraWVuIGRpZW4gdHUgY3UsIGFj LXF1eSANCmNoaSBwaGUgbGlldS4uLiBNbyAzOSBjb250YWluZXIgdHJvbmcgc28gbmF5IHRoaSB0 YXQgY2EgZGV1IHZpIHBoYW0gcGhhcCBsdWF0IHZlIGJhbyB2ZSANCm1vaSB0cnVvbmcuDQoNClRo b25nIGtlIGN1YSBQQzQ5IENvbmcgYW4gSGFpIFBob25nIGNobyB0aGF5IHRyb25nIDMgbmFtICgy MDAzLTIwMDYpIGRhIGNvIGdhbiANCjIuMzAwIGNvbnRhaW5lciBjaHVhIGdhbiAzNy4wMDAgdGFu IGFjLXF1eSBjaGkgcGhlIHRoYWkgZGEgZHVvYyBuaGFwIHZhbyBjYW5nIEhhaSANClBob25nLiBU cm9uZyBoYWkgbmFtIDIwMDggLSAyMDA5LCB0aWVwIHR1YyBwaGF0IGhpZW4gMzQwIGNvbnRhaW5l ciByYWMgcGhlIGxpZXUgdmEgaGFuZyANCmNodWMgY29udGFpbmVyIGFjLXF1eSBjaGkgcGhlIHRo YWksIHZpIG1hY2ggZGllbiB0dSBkdW9jIG5oYXAgY2FuZy4gVGluaCB0dSBkYXUgbmFtIA0KKDIw MTApIHRvaSBuYXksIGNhbmcgSGFpIFBob25nIGNvIGhvbiAzMDAgY29udGFpbmVyIGNoYXQgdGhh aSB2aSBwaGFtIHBoYXAgbHVhdCBiYW8gdmUgDQptb2kgdHJ1b25nIGx1dSBiYWkuIChQLkguUykN Cg0KTnVvYyBuZ29haSBjaG8gdGllbiBkZSBETlZOIG5oYXAgcmFjDQoNCk9uZyBIb2FuZyBNaW5o IERhbywgQ3VjIHRydW9uZyBDdWMgS2llbSBzb2F0IG8gbmhpZW0gKHRodW9jIFRvbmcgY3VjIE1v aSB0cnVvbmcsIA0KQm8gVE4tTVQpIGNobyBiaWV0LCBwaGFwIGx1YXQgZGEgcXV5IGRpbmgsIGNo aSBkdW9jIG5oYXAga2hhdSBwaGUgbGlldSBuYW0gdHJvbmcgZGFuaCANCm11YyBkdW9jIHBoZXAg bmhhcCBraGF1IGN1YSBCbyBUTi1NVCwgY2hpIG5oYXAgZGUgcGh1YyB2dSB0cnVjIHRpZXAgc2Fu IHh1YXQgdmEgcGhhaSANCmRhcCB1bmcgZGF5IGR1IGNhYyBkaWV1IGtpZW4gdmUgYmFvIHZlIG1v aSB0cnVvbmcuIFR1eSBuaGllbiwgcmF0IG5oaWV1IHRvIGNodWMsIGNhIG5oYW4gDQpkYSBsb2kg ZHVuZyBjaHUgdHJ1b25nIG5heSBkZSBuaGFwIGNoYXQgdGhhaSwgdHJvbmcgZG8gY28gY2hhdCB0 aGFpIG5ndXkgaGFpIGJhdCBjaGFwIA0KTHVhdCBCYW8gdmUgbW9pIHRydW9uZyBuYW0gMjAwNSBk YSBxdXkgZGluaDogY2FtIG5oYXAga2hhdSwgcXVhIGNhbmggY2hhdCB0aGFpIGR1b2kgDQptb2kg aGluaCB0aHVjLg0KDQoqRHUgbHVhbiBsbyBuZ2FpIFZOIHNlIHRybyB0aGFuaCBiYWkgY2hhdCB0 aGFpIGN1YSB0aGUgZ2lvaS4gWGluIG9uZyBjaG8gYmlldCB5IGtpZW4gY3VhIG1pbmggdmUgbmd1 eSBjbyBuYXk/DQoNCi0gTmh1bmcgbmFtIGdhbiBkYXksIGNodW5nIHRvaSBuaGFuIHRoYXksIGRh bmcgY28gbW90IHh1IGh1b25nIGNodXllbiBjaGF0IHRoYWkgZHVvaSANCmhpbmggdGh1YyBwaGUg dGhhaSB0dSBjYWMgbnVvYyBwaGF0IHRyaWVuIHZhbyBjYWMgbnVvYyBkYW5nIHBoYXQgdHJpZW4s IHRyb25nIGRvIGNvIFZOLiANClR1IHh1IHRoZSBuYXksIGNvbmcgdm9pIHRodWMgdGUgdmllYyBu aGFwIHBoZSBsaWV1IGNvIGxhbiBjaGF0IHRoYWkgdmFvIG51b2MgdGEgdHJvbmcgDQpuaHVuZyBu YW0gdnVhIHF1YSwgY2h1bmcgdG9pIGNobyByYW5nLCB0cm8gdGhhbmggYmFpIGNoYXQgdGhhaSBj dWEgdGhlIGdpb2kgbGEgbmd1eSBjbyANCmhpZW4gaHV1IGRvaSB2b2kgbnVvYyB0YSBuZXUga2hh dSBxdWFuIGx5LCBuZ2FuIGNoYW4ga2hvbmcgZGVtIGxhaSBoaWV1IHF1YSBuaHUgbW9uZyANCm11 b24uIA0KIA0KKlRodWEgb25nLCB0YWkgc2FvIGR1IGx1YW4gZGEgY2FuaCBiYW8gbWFuaCBtZSB2 ZSBuZ3V5IGNvIG5heSBuaHVuZyB0aW5oIGhpbmggbmhhcCBjaGF0IA0KdGhhaSB2YW8gbnVvYyB0 YSB2YW4ga2hvbmcgZHVvYyBjYWkgdGhpZW4/DQoNCi0gVGh1YyB0cmFuZyBuYXksIHRoZW8gdG9p IGJhdCBuZ3VvbiB0dSBuaGlldSBuZ3V5ZW4gbmhhbi4gVHJ1b2MgaGV0LCB0byBjaHVjIHZhIGNh IG5oYW4gDQpraG9uZyBwaGFpIHRyYSB0aWVuIG11YSBjaGF0IHRoYWksIHRoYW0gY2hpIGNvbiBk dW9jIGRvaSB0YWMgbnVvYyBuZ29haSBjaG8gdGhlbSB0aWVuIGRlIA0KbmhhcCB2ZSB2YSBobyBj b24ga2llbSBkdW9jIG1vaSBsb2kgdHUgdmllYyBib2MgdGFjaCBsaW5oIGtpZW4gZGllbiB0dSBj dSwgYmluaCBhYy1xdXkgDQpjdS4uLiBkZSBsYXkgdmFuZywgYmFjLCBjaGksIHRodXkgbmdhbi4u LiBEYXkgbGEgbW9uIGxvaSByYXQgbG9uLCBjbyBzdWMgY2FtIGRvIGxvbiBkb2kgdm9pIA0KbW90 IHNvIGNhIG5oYW4sIHRvIGNodWMgbmVuIGhvIHRpbSBtb2kgdGh1IGRvYW4gdGluaCB2aSBkZSBs YWNoIGx1YXQsIG5oYXAgY2hhdCB0aGFpIHZlLiANCkNoYW5nIGhhbiwgdG8gY2h1YywgY2Egbmhh biB0cm9uZyBudW9jIG5oYXAga2hhdSBjaGF0IHRoYWkgbnVwIGJvbmcgZHVvaSBoaW5oIHRodWMg DQpuaGFwIHBoZSBsaWV1IHRob25nIHF1YSBtb3QgY29uZyB0eSAibWEiIGJlbiBudW9jIG5nb2Fp LiBLaGkgaGFuZyB2dWEgZHVvYyBkb2kgZGkgDQpraG9pIGNhbmcgbnVvYyBkbywgY29uZyB0eSBu YXkgbGFwIHR1YyB0dXllbiBibyBwaGEgc2FuIGRlIHBodWkgdHJhY2ggbmhpZW0uIEhheSBuaHUg DQp0cm9uZyB2dSBjYWMgY29udGFpbmVyIHRvbiBsdXUgdGFpIGNhYyBjYW5nIGN1YSBIYWkgUGhv bmcgbmh1IG5ldSB0cmVuLCBjbyB0cnVvbmcgaG9wIA0Kbmd1b2kgZ3VpIGhhbmcga2hvbmcgZ2hp IHJvIGRpYSBjaGkgbmd1b2kgbmhhbiB2YSBraG9uZyB0aGFuaCB0b2FuIHRpZW4gdmFuIGNodXll biBjaG8gDQpoYW5nIHRhdSwgY28gZGlhIGNoaSBuZ3VvaSBuaGFuIG5odW5nIGxhIGRpYSBjaGkg a2hvbmcgY28gdHJlbiB0aHVjIHRlLi4uDQoNCkJlbiBjYW5oIGRvLCB2YW4gY29uIG1vdCBzbyBi YXQgY2FwLCB0YW8gcmEgY2FjIGxvIGhvbmcgZGUgY2FjIGRvaSB0dW9uZyB2aSBwaGFtIGxvaSAN CmR1bmcuIEx1YyBsdW9uZyBoYWkgcXVhbiB0aGlldSB0cmFuZyB0aGlldCBiaSBoaWVuIGRhaSBk ZSBzb2kgdmEgcGhhdCBoaWVuIGhhbmcgdmkgcGhhbSANCm5nYXkgdHJlbiB0YXUgdmFuIGNodXll biBuZW4ga2hpIGRhIGR1YSBjb250YWluZXIgdmFvIGtobyB0aGkga2hvIG1hIHRhaSB4dWF0IGR1 b2MgbnVhLiANClZpZWMgbmdhbiBjaGFuIHR1IHhhIGNhYyBjb250YWluZXIgcGhlIGxpZXUgY2h1 YSBjaGF0IHRoYWkga2hvbmcgZGVtIGxhaSBoaWV1IHF1YSBjYW8gdmEgDQp0cm9uZyBuaGlldSB0 cnVvbmcgaG9wIGxhIGtob25nIHRoZSB0aHVjIGhpZW4gZHVvYyB2aSBxdXkgZGluaCBwaGFwIGx1 YXQgY3VhIG1vaSBudW9jIA0KbW9pIGtoYWMuDQoNCktpbmggZG9hbmggc2Uga2hvbmcgZHVvYyBu aGFwIHJhYyB0aGFpIA0KDQpEbyBsYSBtb3QgdHJvbmcgbmh1bmcgZGllbSBxdWFuIHRyb25nIGN1 YSBkdSB0aGFvIHN1YSBkb2kgVGhvbmcgdHUgbGllbiB0aWNoIHNvIDAyIGN1YSANCkJvIENvbmcg dGh1b25nIHZhIEJvIFROLU1UIGRlIGhhbiBjaGUgdmllYyBuaGFwIHJhYyB0aGFpIHZhbyBWTi4g T25nIEhvYW5nIE1pbmggDQpEYW8gY2hvIGJpZXQsIGR1IHRoYW8gbGFuIDMgY3VhIHRob25nIHR1 IG5heSBkYSBraG9uZyBjb24gY2hvIHBoZXAgZG9pIHR1b25nIG5oYXAgcGhlIA0KdGhhaSB2b2kg bXVjIGRpY2gga2luaCBkb2FuaCBkdW9jIHRoYW0gZ2lhIG5oYXAga2hhdSBudWEuIFF1eSBkaW5o IHRyb25nIFRob25nIHR1IHNvIA0KMDIgY2hvIHBoZXAgMyBkb2kgdHVvbmcgZHVvYyBuaGFwIHBo ZSBsaWV1LCBnb206IHRodW9uZyBuaGFuIHRydWMgdGllcCBzdSBkdW5nIHBoZSBsaWV1IA0Kbmhh cCBraGF1IGRlIHNhbiB4dWF0LCB0aHVvbmcgbmhhbiBuaGFwIGtoYXUgdXkgdGhhYyBjaG8gdGh1 b25nIG5oYW4gdHJ1YyB0aWVwIHN1IGR1bmcgDQpwaGUgbGlldSB2YSB0aHVvbmcgbmhhbiBuaGFw IGtoYXUgZGUgcGhhbiBwaG9pLiBUaHVjIHRlLCBkb2kgdHVvbmcgbmhhcCBraGF1IGRlIHBoYW4g DQpwaG9pIGxhICJuaGlldSBjaHV5ZW4gbmhhdCIsIGNhYyB2aSBwaGFtIGNodSB5ZXUgeGF5IHJh IGRvaSB2b2kgZG9pIHR1b25nIG5heS4gRHUgdGhhbyANClRob25nIHR1IHN1YSBkb2kgdGhvbmcg dHUgc28gMDIgY3VuZyBwaGFuIHJvIHRyYWNoIG5oaWVtIGN1YSBjYWMgYmVuIGxpZW4gcXVhbiwg Y28gY28gDQpjaGUgdGFuZyBjdW9uZyBzdSBwaG9pIGhvcCBoaWV1IHF1YS4gQmVuIGNhbmggZG8s IE5naGkgZGluaCAxMTcgdmUgeHUgbHkgdmkgcGhhbSBoYW5oIA0KY2hpbmggdHJvbmcgbGluaCB2 dWMgYmFvIHZlIG1vaSB0cnVvbmcgcXV5IGRpbmggbXVjIHBoYXQgY2FvIG5oYXQgdG9pIDUwMCB0 cmlldSBkb25nLCANCmJ1b2MgdGFpIHh1YXQsIHZhIHRyb25nIHRydW9uZyBob3Aga2hvbmcgdGFp IHh1YXQgZHVvYyB0aGkgY2EgbmhhbiB2YSB0byBjaHVjIG5oYXAga2hhdSANCnBoYWkgY2hpdSB0 b2FuIGJvIGNoaSBwaGkgeHUgbHkgdGlldSBodXkuDQoNCiogIkhpZW4gdGluaCB0cmFuZyBSVENO IG5oYXAgdmUgSGFpIFBob25nIGRhbmcgZGllbiBiaWVuIHJhdCBwaHVjIHRhcC4gQ2FjIHRvIGNo dWMgDQpraW5oIHRlLCBjYSBuaGFuIHRyb25nIG51b2MgdmEgbnVvYyBuZ29haSBjYXUga2V0IG1v YyBub2kgdm9pIG5oYXUgZGUgdmFuIGNodXllbiBoYW5nIA0KaG9hIHZpIHBoYW0gdmFvIFZOIGR1 b2kgaGluaCB0aHVjIGt5IGhvcCBkb25nIHh1YXQgbmhhcCBraGF1IGhvYWMgdGFtIG5oYXAgdGFp IHh1YXQgDQpzYW5nIG51b2MgdGh1IGJhLiBOb2kgZHVuZyBob3AgZG9uZywgdGh1IHR1YyBraGFp IGJhbyBoYWkgcXVhbiBkZXUgdGhlIGhpZW4gbGEgbmh1bmcgDQptYXQgaGFuZyBob3AgcGhhcCBu aHVuZyB0aHVjIGNoYXQgYmVuIHRyb25nIGNvbnRhaW5lciBsYSBwaGUgdGhhaS4gS2hpIGJpIHBo YXQgaGllbiwgY2FjIA0KRE4gdHJvbmcgbnVvYyBkdW5nIHRlbiB0cm9uZyBjYWMgYm8gY2h1bmcg dHUgdGhhbmggdG9hbiAocGFja2luZyBsaXN0KSBsYWkgdHUgY2hvaSBuaGFuIA0KaGFuZyB2b2kg bHkgZG86IGhhbmcga2hvbmcgZHVuZyBob3AgZG9uZywgY2h1IGhhbmcgbnVvYyBuZ29haSBndWkg bmhhbSBkaWEgY2hpLi4uIENhYyANCkROIG51b2MgbmdvYWkgdGhlIGhpZW4gdHJlbiBwYWNraW5n IGxpc3QgZGV1IGxhIG5odW5nIEROICJtYSIgbyBjYWMgbnVvYyB4dWF0IHh1IHZhIA0KbnVvYyBu aGFwIGtoYXUuIFZpIHZheSwga2hpIHRob25nIHF1YSBrZW5oIEludGVycG9sIGRldSBraG9uZyB4 YWMgZGluaCBkdW9jIGNodSB0aGUgdmkgDQpwaGFtLiBNYXQga2hhYywgY2FjIEROIHZpIHBoYW0g dGh1b25nIGR1bmcgdGh1IGRvYW4geGVwIGhhbmcgY28gdmkgcGhhbSBvIHRyb25nIHZhIA0KaGFu ZyBob2EgZHVuZyBxdXkgZGluaCBiZW4gbmdvYWkuIiAtIFRodW9uZyB0YSBOZ3V5ZW4gRHVjIERh bmcsIFRydW9uZyBwaG9uZyANCkNTRFQgdG9pIHBoYW0gdmUgbW9pIHRydW9uZyAoUEM0OSAtIENv bmcgYW4gSGFpIFBob25nKQ0KDQoqICJOZ3V5IGhpZW0gbmhhdCBsYSB2aWVjIHJhYyB0aGFpIHBo YXQgdGFuIHJhIG1vaSB0cnVvbmcuIFZlIGxhdSB2ZSBkYWksIG5odW5nIGNoYXQgZG9jIA0KaGFp IGN1YSBSVENOIHNlIHBoYXQgdGFuIHJhIG1vaSB0cnVvbmcgZ2F5IHJhIGNhYyBiZW5oIG5nb2Fp IGRhLCBobyBoYXAsIG1hdCwgdW5nIHRodS4uLiANClRyb25nIGtoaSBWTiBsYWkgY2h1YSBjbyB0 byBjaHVjIG5hbyBkdW5nIHJhIHRodSBnb20gUlRDTiwgY2h1IHlldSB2YW4gbGEgdHUgbmhhbiAN CiJraGFpIHRoYWMiIGJhaSByYWMuIFZpZWMgZGUgbmdoaSBjYW0gbmhhcCByYWMgdGhhaSBkaWVu IHR1IGRhIGR1b2MgaGllcCBob2kga2llbiBuZ2hpIGxlbiANCmNhYyBjbyBxdWFuIHF1YW4gbHkg dHUgcmF0IGxhdSwgc29uZyBjaG8gZGVuIG5heSBjaHVuZyB2YW4gbyBhdCBkbyB2YW8gVk4uIiAt IE9uZyBUcmFuIA0KUXVhbmcgSHVuZywgVG9uZyB0aHUga3kgSGllcCBob2kgRE4gZGllbiB0dSBW Tg0KDQoqICJOaHVuZyB0dSBkaWVuLCBtYWNoIGRpZW4gaG9hYyBhYy1xdXkgY2hpIGRldSBsYSBj aGF0IHRoYWkgZG9jIGhhaSwgY28gdGhlIGdheSBvIG5oaWVtIA0KbW9pIHRydW9uZy4gVGhlbyB0 b2kgZHVvYyBiaWV0LCBjYWMgY2hhbiBkaWVuIGN1YyB0cm9uZyB2aSBtYWNoIGNvIHZhbmcsIGto b25nIG5nb2FpIA0KdHJ1IGtoYSBuYW5nIGhvIG5oYXAgcmFjIHRoYWkgdmUgZGUgdGh1IGhvaSB2 YW5nLiBOb2kgY2h1bmcsIGR1IG5oYXAgdmUgbW9pIG11YyBkaWNoIGdpIA0KZGkgY2hhbmcgbnVh IG5odW5nIHRoZW8gcXVhbiBkaWVtIGN1YSB0b2kgbGEga2hvbmcgbmVuIG5oYXAgUlRDTi4gVmUg bGF1IHZlIGRhaSwgVk4gDQpzZSBiaWVuIHRoYW5oIGtobyBjaHVhIHJhYyBjaG8gbmh1bmcgbnVv YyBwaGF0IHRyaWVuLiIgLSBQR1MgVnUgTmdvYyBIdW5nLCBWaWVuIA0KdHJ1b25nIFZpZW4gRGFv IHRhbyBxdW9jIHRlIHZlIGtob2EgaG9jIHZhdCBsaWV1IChESCBCYWNoIGtob2EgSGEgTm9pKQ0K DQpodHRwOi8vdm5lY29ub215LnZuLzIwMTAxMDE5MDM1NzA4NzRQMEM5OTIwL3diLWRheS1sdWkt ZHUtYmFvLXRhbmctdHJ1b25nLWdkcC1jdWEtdmlldC1uYW0uaHRtIERJRVUgSFVPTkcgMTc6NTMg KEdNVCs3KSAtIDE5LzEwLzIwMTAgDQoNClRodW9uZyB0cnVjIGNoaW5oIHBodTogV0IgZGF5IGx1 aSBkdSBiYW8gdGFuZyB0cnVvbmcgR0RQIGN1YSBWaWV0IE5hbSANCiANCkJhbyBjYW8gY2FwIG5o YXQga2luaCB0ZSBraHUgdnVjIERvbmcgQSB2YSBUaGFpIEJpbmggRHVvbmcgY3VhIFdCIGRhIGdp YW0gZHUgYmFvIA0KdGFuZyB0cnVvbmcgR0RQIFZpZXQgTmFtIG5hbSAyMDEwIHZlIG11YyA2LDUl IA0KDQpCYW8gY2FvIGNhcCBuaGF0IGtpbmggdGUga2h1IHZ1YyBEb25nIEEgdmEgVGhhaSBCaW5o IER1b25nIGR1b2MgTmdhbiBoYW5nIFRoZSBnaW9pIA0KKFdCKSBjb25nIGJvIHNhbmcgbmF5LCAx OS8xMCwgZGEgYm90IGxhYyBxdWFuIGhvbiBkb2kgdm9pIG1vdCBzbyBjaGkgc28ga2luaCB0ZSB2 aSBtbyANCnF1YW4gdHJvbmcsIHNvIHZvaSBuaGFuIGRpbmggY3VuZyBkdW9jIHRvIGNodWMgbmF5 IGR1YSByYSBob2kgZGF1IHRoYW5nIDYgbmFtIG5heS4gDQoNCihBbmg6IEJhIFZpY3RvcmlhIEt3 YWt3YSwgR2lhbSBkb2MgV0IgdGFpIFZpZXQgTmFtLCB0YWkgY3VvYyBob3AgYmFvIGNvbmcgYm8g DQpiYW8gY2FvIGNhcCBuaGF0IGtpbmggdGUga2h1IHZ1YyBEb25nIEEgdmEgVGhhaSBCaW5oIER1 b25nLiBXQiBkdSBiYW8gDQpDUEkgY3VhIFZpZXQgTmFtIG5hbSBuYXkgc2UgY2hpIHRhbmcga2hv YW5nIDglLCBnaWFtIG5oZSBzbyB2b2kgY29uIHNvIGR1b2MgDQp0aW5oIHRvYW4gdHJ1b2MgZG8g bGEgOSUgZHVvYyBuZXUgcmEgdmFvIHRoYW5nIDYgbmFtIG5heS4pIA0KDQpEaWV1IGNoaW5oIGR1 IGJhbw0KDQpWZSBjaGkgdGlldSB0YW5nIHRydW9uZyBHRFAsIHZhbyB0aGFuZyA2LzIwMTAsIFdC IGNvbiBjaG8gcmFuZyBWaWV0IE5hbSBzZSBjbyBtb3QgDQpuYW0gdHVvbmcgZG9pIHRoYW5oIGNv bmcgdm9pIHRhbmcgdHJ1b25nIGRhdCBtdWMgNyUuIFR1eSBuaGllbiwgdm9pIGxhbiBjYXAgbmhh dCBuYXksIA0KYmFvIGNhbyBjdWEgV0IgY2hvIHJhbmcsIEdEUCBjaGkgImRhbmcgdHJlbiBkYSBk YXQgZHVvYyBtdWMgdGlldSA2LDUlIGN1YSBuYW0gDQoyMDEwIi4gDQoNClZlIGxhbSBwaGF0LCBX QiBkdSBiYW8gY2hpIHNvIGdpYSB0aWV1IGR1bmcgKENQSSkgY3VhIFZpZXQgTmFtIG5hbSBuYXkg c2UgY2hpIHRhbmcgDQpraG9hbmcgOCUsIGdpYW0gbmhlIHNvIHZvaSBjb24gc28gdGluaCB0b2Fu IHRydW9jIGRvIGxhIDklLCBkdW9jIG5ldSByYSB2YW8gdGhhbmcgNiBuYW0gbmF5Lg0KDQpPIGNh YyBjYW4gZG9pIHZpIG1vIGtoYWMsIGR1IGJhbyBjYW4gY2FuIHRodW9uZyBtYWkgbmFtIG5heSBj dWEgVmlldCBOYW0gZGEgZHVvYyANCldCIGRpZXUgY2hpbmggdHUgbXVjIHRoYW0gaHV0IDksNSB0 eSBVU0QgKHRyb25nIGJhbyBjYW8gdGhhbmcgNikgbGVuIG11YyAxMCw4IHR5IFVTRCANCnRyb25n IGJhbiBjYXAgbmhhdC4gQ2hpIHRpZXUgbmF5IGR1IGtpZW4gY29uIGNhbyBob24gdHJvbmcgbmFt IDIwMTEsIG8gbXVjIDExLDQgdHkgVVNELg0KDQpLZXQgcXVhIGxhLCBjYW4gY2FuIHZhbmcgbGFp IGN1bmcgdGFuZyB0aGVtIG11YyB0aGFtIGh1dCwgdHVvbmcgdW5nIHR1IDksMSB0eSBVU0QgbGVu IA0KbXVjIDksMyB0eSBVU0QgdmEgZHUga2llbiBzZSBnaXUgbmd1eWVuIHRyb25nIG5hbSB0b2ku DQoNCk5ndW9jIGxhaSwgdGhlbyBXQiwgdGluaCBoaW5oIHRodSBodXQgZGF1IHR1IHRydWMgdGll cCBudW9jIG5nb2FpIGN1YSBWaWV0IE5hbSBuYW0gbmF5IA0KY28gdGhlIHNlIGNhaSB0aGllbiBo b24sIGtoaSBkdW9jIGR1IGJhbyB0YW5nIHR1IG11YyA3LDMgdHkgVVNEIGxlbiA3LDYgdHkgVVNE IHRyb25nIGJhbyBjYW8gY2FwIG5oYXQuDQoNCk5odW5nIHVvYyB0aW5oIGN1YSBXQiBjdW5nIGNo byB0aGF5LCBjbyBraGEgbmFuZyBjYW4gY2FuIHRoYW5oIHRvYW4gbmFtIG5heSBzZSB0aGFuZyAN CmR1LCBraGllbiBkdSB0cnUgbmdvYWkgaG9pIGNvIHRoZSB0YW5nIHRoZW0gMiwzIHR5IFVTRCwg dHUgbXVjIDE1LDIgdHkgVVNEIHZhbyBjdW9pIA0KbmFtIDIwMDkgbGVuIDE3LDUgdHkgVVNEIHRy b25nIG5hbSBuYXksIHR1b25nIGR1b25nIDExLDQgdHVhbiBuaGFwIGtoYXUuDQoNCk5oYW5oLCBu aHVuZyBraG9uZyBkZXUNCg0KTmhhbiBkaW5oIGtoYWkgcXVhdCB2ZSB0aW5oIGhpbmgga2luaCB0 ZSwgYmFvIGNhbyBjdWEgV0IgY2hvIHJhbmcsIHN1IHBodWMgaG9pIGtpbmggdGUgDQpjdWEgVmll dCBOYW0gbGEgbmhhbmggY2hvbmcgbmh1bmcga2hvbmcgZG9uZyBkZXUuIA0KDQpUb2MgZG8gdGFu ZyB0cnVvbmcgY3VhIG5odW5nIGNoaSBzbyBraW5oIHRlIGNodSBjaG90IG5odSBHRFAsIHNhbiB4 dWF0IGNvbmcgbmdoaWVwLCANCmRhdSB0dSB2YSB4dWF0IGtoYXUgZGFuZyBkdW9jIHRyb25nIGRv aSBzZSBwaHVjIGhvaSBnYW4gdG9jIGRvIHRhbmcgdHJ1b25nIHRob2kga3kgdHJ1b2MgDQpraHVu ZyBob2FuZy4gVHV5IG5oaWVuLCBXQiBjaG8gcmFuZyB0aGFtIGh1dCB0YWkga2hvYW4gdmFuZyBs YWkgdmFuIG8gbXVjIGNhbywgdmEgY2FjIA0KaG8gZ2lhIGRpbmggY3VuZyBuaHUgY2FjIGNvbmcg dHkgZHVvbmcgbmh1IHZhbiB0aWVwIHR1YyB0cnUgdmFuZyB2YSBuZ29haSB0ZSwgZ2F5IGFwIGx1 YyBsaWVuIHR1YyBjaG8gZG9uZyBub2kgdGUuIA0KDQoiQ2FjIGdpYSBkaW5oIHZhIGNvbmcgdHkg dGllcCB0dWMgZHV5IHRyaSBsdW9uZyBsb24gbmdvYWkgdGUsIGNodSBraG9uZyBwaGFpIHRpZW4g ZG9uZ4UgDQpBcCBsdWMgbGVuIG5vaSB0ZSBsYSBsb24iLCBvbmcgRGVlcGFrIE1pc2hyYSwgS2lu aCB0ZSB0cnVvbmcgV0IgdGFpIFZpZXQgTmFtIGx1dSB5Lg0KDQpUaGVvIHZpIGNodXllbiBnaWEg bmF5LCBiYW4gdGhhbiB0eSBnaWEgaGllbiBuYXkga2hvbmcgcGhhaSBjaGl1IGFwIGx1YyBxdWEg bG9uLiBOaHVuZyANCmNodW5nIGN1IHJpZW5nIGxlIGNobyB0aGF5LCBjYWMgY29uZyB0eSBjaGUg dGFvIGRhbmcgdHVuZyBidW9jIHBoYW4gYm8gbGFpIHZpIHRyaSBuaGEgbWF5IA0KdHUgbmh1bmcg bnVvYyBkb2kgaG9pIG11YyBsdW9uZyBjYW8gbyBraHUgdnVjIERvbmcgQSB2YSBkaWV1IG5heSBk YSBiYXQgZGF1IG1hbmcgbGFpIA0KbG9pIGljaCBjaG8gVmlldCBOYW0sIG5vaSBkb2kgaG9pIG11 YyBsdW9uZyB0aGFwIHZhIGdpYXAgYmllbiwgZHVvYyBkYXQgdmkgdHJpIHRodWFuIGxvaSBkZSAN CnRodSBodXQgY2FjIG5ndW9uIGRhdSB0dSBuYXkuDQoNClR1eSBuaGllbiwgcmF0IGtobyBkdSBk b2FuIGR1b2MgaGFuaCB2aSBjdWEgY2FjIGhvIGdpYSBkaW5oIHZhIGRvYW5oIG5naGllcCBkb2kg dm9pIGRhdSANCnR1IG5nb2FpIHRlLiAiRGlldSBuYXkgcGh1IHRodW9jIHZhbyBuaWVtIHRpbiBj dWEgaG8gdmEgY2hpbmggc2FjaCBjdWEgQ2hpbmggcGh1IHRyb25nIA0KdGhvaSBnaWFuIHRvaSIs IG9uZyBEZWVwYWsgTWlzaHJhIG5vaSB2b2kgYmFvIGdpb2kuDQoNCkRvaSB2b2kgaGUgdGhvbmcg dGluIGR1bmcsIGJhbyBjYW8gY3VhIFdCIGx1dSB5OiAiQ28gbmhpZXUgbW9pIHF1YW4gbmdhaSBy YW5nIHN1IG1vIA0Kcm9uZyBxdWEgbmhhbmggY3VhIHRpbiBkdW5nIHRyb25nIG51b2MgbmhhbSBr aWNoIHRoaWNoIG5lbiBraW5oIHRlIGRhIGRhbiBkZW4gc3UgeWV1IA0Ka2VtIHRyb25nIGNhbiBk b2kgdGFpIHNhbiBjdWEgbW90IHNvIG5nYW4gaGFuZyIuIA0KDQpNb3Qgc3UgaGlldSBjaGluaCBn aWFtIGRhbiBnb2kga2ljaCBjYXUgZGFuZyBkdW9jIHRpZW4gaGFuaCwgdGhvbmcgcXVhIHZpZWMg cnV0IG1vdCBzbyANCmdvaSB0YWkgdHJvIHRydWMgdGllcCB0dSBuZ2FuIHNhY2ggY3VuZyBuaHUg bW90IHNvIGdvaSBraWNoIHRoaWNoIHRpZW4gdGUuIENodSB0cnVvbmcgdGFuZyANCnZvbiB0b2kg dGhpZXUgY2hvIG5nYW4gaGFuZyBjdW5nIGR1b2MgYmFuIGhhbmgsIGR1IGNvbiB2YXAgcGhhaSBu aHVuZyBwaGFuIGRvaSB0dSBwaGlhIA0KY2FjIHRvIGNodWMgY2hpdSB0YWMgZG9uZyB0dSBjaGlu aCBzYWNoIG5heS4gDQoNClRoZW8gZHUgYmFvIGN1YSBXQiwgdGFuZyB0cnVvbmcgdGluIGR1bmcg Y2EgbmFtIDIwMTAgY28gdGhlIG8gbXVjIGR1b2kgMjUlLCB0aGFwIGhvbiANCnNvIHZvaSBjaGkg dGlldSBkYXQgcmEgdHJ1b2MgZG8uIERheSBjdW5nIGxhIG11YyB0YW5nIHRydW9uZyBraGEgdGhh cCBzbyB2b2kgMy00IG5hbSB0cm8gbGFpIGRheS4NCg0KVHJvbmcga2hpIGRvLCB0aGkgdHJ1b25n IGNodW5nIGtob2FuLCBzYXUgc3UgcGh1YyBob2kgZGFuZyBrZSB0cm9uZyBuYW0gMjAwOSwgZGEg c3V0IA0KZ2lhbSB0cm8gbGFpIHZhIHRpZXAgdHVjIGdheSBhbmggaHVvbmcgeGF1IGNobyBuZW4g a2luaCB0ZYUgDQoNClZlIGdvYyBuaGluIGN1YSBjb25nIGRvbmcgZGF1IHR1IHF1b2MgdGUsIGJh byBjYW8gZGFuIGNodW5nLCBsYWkgc3VhdCB0cmFpIHBoaWV1IGNoaW5oIA0KcGh1IGJhbmcgbmdv YWkgdGUgY3VhIFZpZXQgTmFtIHZhbiBkYW8gZG9uZyBvIG11YyBjYW8sIHh1bmcgcXVhbmggNDAw IGRpZW0gY28gYmFuIA0KKG11YyB0YW5nIHRoZW0gc28gdm9pIExJQk9SIHRoZW8gZ2lhaSB0aGlj aCBjdWEgZGFpIGRpZW4gV0IpIHZhIGNhbyBob24gaGF1IGhldCBjYWMgDQpudW9jIHRyb25nIGto dSB2dWMuIFdCIGNobyByYW5nLCBuZ3V5ZW4gbmhhbiBsYSBkbyBjYWMgbmhhIGRhdSB0dSBjb24g cXVhbiBuZ2FpIHZlIA0Ka2hhIG5hbmcgImhhIGNhbmggYW4gdG9hbiIgY3VhIFZpZXQgTmFtIGhh dSBraHVuZyBob2FuZywgZHUgbmVuIGtpbmggdGUgZGEgbGF5IGxhaSANCmR1b2MgZG9uZyBsdWMg dGFuZyB0cnVvbmcgY3VhIGdpYWkgZG9hbiB0cnVvYyBkby4NCg0KQ2FuIGNhaSBjYWNoIGRvYW5o IG5naGllcCBuaGEgbnVvYw0KDQpUaGVvIFdCLCB2aWVjIHRoYW5oIGxhcCB0aGkgZGllbSBjYWMg dGFwIGRvYW4ga2luaCB0ZSBuaGEgbnVvYyBuaGFtIHRhbyBsb2kgdGhlIHZlIHF1eSANCm1vIHNh biB4dWF0IHZhIGNvbmcgbmdoZSwgY3VuZyBkYW4gZGVuIHZpZWMgbW90IHNvIGRvYW5oIG5naGll cCBsYW0gY2hvIHN1IG1hdCBvbiANCmRpbmgga2luaCB0ZSBuZ2F5IGNhbmcgcm9uZyB0aGVtLCBu aHUgdnUgdmllYyBjdWEgdGFwIGRvYW4gVmluYXNoaW4uDQoNClRoZW8gYmEgVmljdG9yaWEgS3dh a3dhLCBHaWFtIGRvYyBXQiB0YWkgVmlldCBOYW0sIHZpZWMgc3UgZHVuZyBuZ3VvbiBsdWMgcXVh IHRob2FpIA0KbWFpIGRhbiB0b2kgc3UgZHVuZyBraG9uZyBoaWV1IHF1YSBjdWEgY2FjIHRhcCBk b2FuIGtpbmggdGUgbmhhIG51b2MuIEJhIGNobyByYW5nIGNhbiANCmNvIGNvIGNoZSBraWVtIHNv YXQgdmllYyBzdSBkdW5nIHZvbiB2YSB0aW5oIGhpZXUgcXVhIGN1YSBjYWMgbmd1b24gbHVjIGRh dCBudW9jIGR1b2MgDQp0cmFvIHZhbyB0YXkgY2FjIHRhcCBkb2FuIGtpbmggdGUuIENhbyBob24g bnVhIGxhIHZhbiBkZSBxdWFuIHRyaSBkb2FuaCBuZ2hpZXAgdmEgZ2lhbSB0aGlldSBydWkgcm8u DQoNCiJWYW4gZGUgbG9uIGxhIGxhbSB0aGUgbmFvIGRlIGNhYyB0YXAgZG9hbiBjbyBoaWV1IHF1 YSB2YSBkdW5nIGRlIHhheSByYSBuaHVuZyB2dSBuaHUgDQpWaW5hc2hpbiBudWEiLCBiYSBWaWN0 b3JpYSBLd2Frd2Egbm9pLg0KDQpMaWVuIHF1YW4gZGVuIGxvIG5nYWkgdmUgcGhhbiBiaWV0IHRo YW5oIHBoYW4ga2luaCB0ZSBxdW9jIGRvYW5oIHZhIHR1IG5oYW4sIGJhIG5vaTogDQoiVG9pIHRo YXkgc2FuIGNob2kgdmFuIGRhbmcgY2hvIGRvaSBkZSB0YW8gcmEga2hvYW5nIGNhY2ggYmluaCBk YW5nIGhvbi4gVHJvbmcga2hpIGtob2kgDQpxdW9jIGRvYW5oIGRhbmcgZHVvYyBodW9uZyBuaGll dSBuZ3VvbiBsdWMgdm9uLCBkYXQgZGFpLi4uLCB0aGkgdmllYyBkaWV1IHRpZXQgbmFtIHRyb25n IHRheSBjYWMgY28gcXVhbiBjaHVjIG5hbmciLiANCg0KaHR0cDovL3ZuZWNvbm9teS52bi8yMDEw MTAxOTA0MjA1Mzg3OVAwQzk5MjAvY3UtdHJpLW11b24tcXVvYy1ob2ktZGktZGVuLWN1bmctdHJv bmctY2hhdC12YW4uaHRtIE5HVVlFTiBMRSAxODoyNSAoR01UKzcpIC0gVGh1IEJhLCAxOS8xMC8y MDEwDQoNCkRhaSBiaWV1IFFIOiBDdSB0cmkgbW9uZyBtb2kgUXVvYyBob2kgZGkgZGVuIGN1bmcg dHJvbmcgY2hhdCB2YW4sIGRhYyBiaWV0IGxhIHRyYWNoIG5oaWVtIGN1YSBUaHUgdHVvbmcgdmEg UGhvIFRodSB0dW9uZyB0aHVvbmcgdHJ1YyBjaGluaCBwaHUgDQogDQoxLjI3NSB5IGtpZW4sIGtp ZW4gbmdoaSBjdWEgY3UgdHJpIHZhIG5oYW4gZGFuIGNhIG51b2MgZ3VpIHRvaSBRdW9jIGhvaSB0 YWkga3kgaG9wIFF1b2MgDQpob2kgdGh1IHRhbSwga2hhaSBtYWMgc2FuZyBtYWkgKDIwLzEwKVRo dWMgaGllbiBjaGF0IHZhbiBkZW4gY3VuZyBkZSBsYW0gcm8gdHJhY2ggDQpuaGllbSBjdWEgY28g cXVhbiBjaHVjIG5hbmcgY3VuZyBuaHUgdmFpIHRybyBjdWEgbmd1b2kgZHVuZyBkYXUsIGxhIG1v dCB0cm9uZyBuaGlldSANCm1vbmcgbXVvbiBkdW9jIHRoZSBoaWVuIHF1YSAxLjI3NSB5IGtpZW4s IGtpZW4gbmdoaSBjdWEgY3UgdHJpIHZhIG5oYW4gZGFuIGNhIG51b2MgZ3VpIA0KdG9pIFF1b2Mg aG9pIHRhaSBreSBob3AgUXVvYyBob2kgdGh1IHRhbSwga2hhaSBtYWMgc2FuZyBtYWkgKDIwLzEw KS4NCg0KRGFuaCBzdSBxdWFuIHRhbSBkYWMgYmlldCBjaG8gbm9pIGR1bmcgeGF5IGR1bmcgTmhh IG51b2MsIHhheSBkdW5nIHBoYXAgbHVhdCwgY3UgdHJpIA0KdmEgbmhhbiBkYW4ga2llbiBuZ2hp IFF1b2MgaG9pIHhheSBkdW5nIGR1IGFuIEx1YXQgU3VhIGRvaSwgYm8gc3VuZyBtb3Qgc28gZGll dSBjdWEgDQpMdWF0IEJhdSBjdSBkYWkgYmlldSBRdW9jIGhvaSB2YSBMdWF0IEJhdSBjdSBkYWkg YmlldSBob2kgZG9uZyBuaGFuIGRhbiwgdGhlbyBodW9uZyANCm1vIHJvbmcgdmEgcGhhdCBodXkg aG9uIG51YSBxdXllbiBsYW0gY2h1IGN1YSBuaGFuIGRhbiwgdHJvbmcgdmllYyBiYXUgbmh1bmcg bmd1b2kgDQpjbyBkdSBwaGFtIGNoYXQsIG5hbmcgbHVjIHZhbyBjYWMgY28gcXVhbiBxdXllbiBs dWMgTmhhIG51b2MuDQoNClZvaSB2aWVjIHRoaSBkaWVtIGtob25nIHRvIGNodWMgaG9pIGRvbmcg bmhhbiBkYW4gaHV5ZW4sIHF1YW4sIHBodW9uZyBob24gbW90IG5hbSANCnF1YSB0YWkgMTAgdGlu aCwgdGhhbmggcGhvLCBuaGlldSBjdSB0cmkgdmEgbmhhbiBkYW4gYmFuIGtob2FuOiB0aG9pIGdp YW4gdGhpIGRpZW0gY2h1YSANCmxhdSwgY2h1YSBkdSBjbyBzbyBseSBsdWFuIHZhIHRodWMgdGll biBkZSBkYW5oIGdpYSB2YSBrZXQgbHVhbiB2ZSB2aWVjIG5heSwgdmkgdGhlIGNodWEgDQpuZW4g YXAgZHVuZyByb25nIHJhaSBvIGNhYyBkaWEgcGh1b25nIGtoYWMuIA0KDQpIb2FuIG5naGVuaCBo b2F0IGRvbmcgY2hhdCB2YW4gdmEgdHJhIGxvaSBjaGF0IHZhbiBjdWEgUXVvYyBob2kgY28gbmhp ZXUgZG9pIG1vaSwgdHV5IA0KbmhpZW4gbmhpZXUgY3UgdHJpIHZhIG5oYW4gZGFuIGNobyByYW5n IGhpZXUgcXVhIGhvYXQgZG9uZyBnaWFtIHNhdCB2YW4gY2h1YSBjYW8uIERvbmcgDQp0aG9pIGtp ZW4gbmdoaSBRdW9jIGhvaSBjYW4gdGFuZyBjdW9uZyBoaWV1IHF1YSBob2F0IGRvbmcgZ2lhbSBz YXQsIGx1YSBjaG9uIG5odW5nIHZhbiANCmRlIGN1IHRyaSBjYSBudW9jIHF1YW4gdGFtIGRlIHRp ZW4gaGFuaCBjaGF0IHZhbiwgZGFuaCB0aG9pIGdpYW4gdGhvYSBkYW5nIGNobyB2aWVjIGNoYXQg DQp2YW4gdmEgdGh1YyBoaWVuIGNoYXQgdmFuIGRlbiBjdW5nLCBkZSBsYW0gcm8gdHJhY2ggbmhp ZW0gY3VhIGNvIHF1YW4gY2h1YyBuYW5nLCBjdW5nIA0Kbmh1IHZhaSB0cm8gY3VhIG5ndW9pIGR1 bmcgZGF1Lg0KDQpMaWVuIHF1YW4gZGVuIHNhbiB4dWF0IHZhIGRvaSBzb25nIGN1YSBuaGFuIGRh biwgZG9uZyBkYW8gY3UgdHJpIHZhIG5oYW4gZGFuIGJhbiBraG9hbiwgDQpsbyBsYW5nIHZlIHRp bmggaGluaCBnaWEgY2EgbGVvIHRoYW5nIGtob25nIGtpZW0gc29hdCBkdW9jIGN1YSBuaGlldSBt YXQgaGFuZyB0aGlldCB5ZXUuIA0KR2lhIGx1b25nIHRodWMsIHRodWMgcGhhbSwgdmF0IHR1IG5v bmcgbmdoaWVwLCB2YXQgbGlldSB4YXkgZHVuZyBkZXUgdGFuZzsgZ2lhIHN1YSwgDQp0aHVvYyB0 YW4gZHVvYyB0YW5nIGNhbzsgZ2lhIHZhbmcgdGFuZyB2b3QgZ2F5IG5ndXkgY28gbGFtIHBoYXQs IGFuaCBodW9uZyB0cnVjIHRpZXAgZGVuIA0Kc2FuIHh1YXQgdmEgZG9pIHNvbmcgY3VhIG5oYW4g ZGFuLCBuaGF0IGxhIHRhbmcgbG9wIG5oYW4gZGFuIGxhbyBkb25nLCBuaHVuZyBuZ3VvaSBjbyAN CnRodSBuaGFwIHRoYXAuIA0KDQpDdSB0cmkga2llbiBuZ2hpIENoaW5oIHBodSB0YW5nIGN1b25n IGNhYyBob2F0IGRvbmcga2llbSB0cmEsIGtpZW0gc29hdCB0aGkgdHJ1b25nIG5vaSANCmRpYSwg dGhlbyBkb2kgZGllbiBiaWVuIHRoaSB0cnVvbmcgdGhlIGdpb2kgY28gYW5oIGh1b25nIGRlbiB0 aGkgdHJ1b25nLCBnaWEgY2EgaGFuZyBob2EgDQp0cm9uZyBudW9jLCBraXAgdGhvaSBjbyBiaWVu IHBoYXAgY3UgdGhlLCBodXUgaGlldSBkZSBiaW5oIG9uIGdpYSBjYSB0cm9uZyBuaHVuZyB0aGFu ZyANCmN1b2kgbmFtIHZhIGNvIGdpYWkgcGhhcCBuZ2FuIG5ndWEgbGFtIHBoYXQgY2FvIHRybyBs YWksIG5oYW0gZGFtIGJhbyB2YSBuYW5nIGNhbyBkb2kgDQpzb25nIGN1YSBuZ3VvaSBkYW4uIA0K DQooQW5oOiBvbmcgVGh1IHR1b25nIE5ndXllbiBUYW4gRHVuZyBwaGF0IGJpZXUgdGFpIGJ1b2kg dGllcCB4dWMgY3UgdHJpIEhhaSBQaG9uZyCWIA0KQW5oOiBDaGluaHBodS52bikgDQoNCkJhbyBj YW8gY3VuZyBjaG8gYmlldCwgdGhvaSBnaWFuIHF1YSwgY3UgdHJpIHZhIG5oYW4gZGFuIG5oaWV1 IG5vaSByYXQgYnVjIHh1YyB2ZSB0aW5oIA0KdHJhbmcgdGhpZXUgZGllbiwgY2F0IGRpZW4gbHVh biBwaGllbiwgbmhhdCBsYSB2YW8gbXVhIG5hbmcgbm9uZywgYW5oIGh1b25nIGxvbiBkZW4gc2lu aCANCmhvYXQsIGhvYyB0YXAgY3VhIG5oYW4gZGFuIHZhIHNhbiB4dWF0LCBraW5oIGRvYW5oIGN1 YSBjYWMgZG9hbmggbmdoaWVwLiBDdSB0cmkgdmEgbmhhbiANCmRhbiBraWVuIG5naGkgQ2hpbmgg cGh1IGNhbiBjaGkgZGFvIG5nYW5oIGNodWMgbmFuZyBwaGFpIGNvIGdpYWkgcGhhcCBxdXlldCBs aWV0IGNhIHZlIA0KcXV5IGhvYWNoLCBzYW4geHVhdCBkaWVuLCBjYSB2ZSBwaG9pIGhvcCBjYWMg bmd1b24gY3VuZyB1bmcgZGllbiBuaGFtIG9uIGRpbmggbmd1b24gDQpjdW5nIGRpZW4gY2hvIHNh biB4dWF0IHZhIGRvaSBzb25nLCBraGFjIHBodWMgdGluaCB0cmFuZyBjYXQgZGllbiBsdWFuIHBo aWVuIHRyZW4gZGllbiANCnJvbmcgbmh1IHRob2kgZ2lhbiB2dWEgcXVhOyBkb25nIHRob2ksIHNv bSBjYWkgdG8gbmdhbmggZGllbiwgY29uZyBraGFpLCBtaW5oIGJhY2ggZ2lhIA0KdGhhbmggc2Fu IHh1YXQgZGllbi4uLg0KDQpEYWMgYmlldCwgY3UgdHJpIHZhIG5oYW4gZGFuIHJhdCBiYW4ga2hh biwgbG8gbGFuZyB2ZSB0aW5oIHRyYW5nIHRoaWVuIHRhaSwgYmFvIGx1IGRpZW4gYmllbiANCnBo dWMgdGFwLCB4YXkgcmEgbGllbiB0aWVwIG8gbnVvYyB0YSwgZ2F5IGhhdSBxdWEgbmFuZyBuZSB2 ZSBuZ3VvaSB2YSBjdWEuDQoNCkN1bmcgdGhlbyBwaGFuIGFuaCBjdWEgbmhhbiBkYW4sIHRpbmgg dHJhbmcgbmUgdHJhbmgsIGR1biBkYXkgbGFuIG5oYXUgZ2l1YSBjYWMgY28gcXVhbiANCmNodWMg bmFuZyB0cm9uZyBnaWFpIHF1eWV0IGRvbiB0aHUga2hpZXUgbmFpLCB0byBjYW8gY3VhIGNvbmcg ZGFuIHZhbiBjb24gZGllbiByYSBwaG8gDQpiaWVuOyBjb24gdGluaCB0cmFuZyBtb3Qgc28gY2Fu IGJvIHRodWMgaGllbiBraG9uZyBkdW5nIGNhYyBxdXkgZGluaCBwaGFwIGx1YXQgdHJvbmcgYm9p IA0KdGh1b25nLCBnaWFpIHBob25nIG1hdCBiYW5nLCBnaWEgYm9pIHRodW9uZyBraG9uZyB0aG9h IGRhbmcsIHRodSBob2kgZGF0IG5odW5nIGNoYW0gc3UgDQpkdW5nLi4uOyB0aGFtIGNoaSBjbyBi aWV1IGhpZW4gbW90IHNvIGNhbiBibyBjYXUga2V0IHZvaSBuaGEgZGF1IHR1IGxhbSB0aGlldCBo YWkgZGVuIGxvaSANCmljaCBjdWEgbmd1b2kgYmkgdGh1IGhvaSBkYXQsIGdheSByYSBuaGlldSBi dWMgeHVjIHRyb25nIG5oYW4gZGFuLiANCg0KVmUgY2FpIGNhY2ggaGFuaCBjaGluaCB2YSBjb25n IHRhYyBwaG9uZywgY2hvbmcgdGhhbSBuaHVuZywgbGFuZyBwaGksIGN1IHRyaSBjYSBudW9jIA0K Y2hvIHJhbmcgdmFuIGNvbiB0b24gdGFpIHh1IGh1b25nIGNvIHF1YW4gaGFuaCBjaGluaCBkYW5o IHRodWFuIGxvaSB2ZSBjaG8gbWluaCwgZGF5IA0Ka2hvIGtoYW4gdmUgY2hvIG5ndW9pIGRhbi4g TW90IGJvIHBoYW4gY29uZyBjaHVjIGNvbiB0aGlldSB0cmFjaCBuaGllbSwgaGFuIGNoZSBuYW5n IA0KbHVjLCB0aGFtIGNoaSB0aW0gY2FjaCB2b2kgdmluaCB0aWVuIGN1YSBuaGFuIGRhbi4gQ3Ug dHJpIHZhIG5oYW4gZGFuIGtpZW4gbmdoaSBDaGluaCANCnBodSB0aWVwIHR1YyBjaGkgZGFvIHRy aWVuIGtoYWkgdmFuIGRlIG5heSBxdXlldCBsaWV0IGhvbiBudWE7IGRvbmcgdGhvaSBjbyBiaWVu IHBoYXAgZ2lhbyANCmR1YyBjYW4gYm8sIGNvbmcgY2h1YyB0aHVjIGhpZW4gZHVuZyB2YWkgdHJv ICJjb25nIGJvYyBjdWEgbmhhbiBkYW4iIG5odSBDaHUgdGljaCBIbyANCkNoaSBNaW5oIGRhIGRh eS4gDQoNCkN1IHRyaSB2YSBuaGFuIGRhbiBjaG8gcmFuZywgdGhhbSBuaHVuZywgbGFuZyBwaGkg Y2h1YSBkdW9jIGRheSBsdWksIHZhbiBsYSB2YW4gZGUgYnVjIA0KeHVjLiBUcm9uZyBraGkgZG8g Y29uZyB0YWMgcGhvbmcsIGNob25nIHRoYW0gbmh1bmcsIGxhbmcgcGhpIHZhbiBjb24gaGFuIGNo ZSwgeWV1IA0Ka2VtOyBraG9uZyBpdCB0cnVvbmcgaG9wIGNodWEgcGhhdCBoaWVuIGtpcCB0aG9p LCB4dSBseSBjaHVhIG5naGllbSwgbmhhdCBsYSB4dSBseSB0cmFjaCANCm5oaWVtIG5ndW9pIGR1 bmcgZGF1OyBjb25nIHRhYyB0dSBwaGF0IGhpZW4gdGhhbSBuaHVuZywgbGFuZyBwaGkgY3VhIGNh YyBjbyBxdWFuLCB0byANCmNodWMsIGRvbiB2aSB2YW4gbGEga2hhdSB5ZXUuIA0KDQpCZW4gY2Fu aCBuaGlldSB2YW4gZGUgY2h1bmcsIFRhcCBkb2FuIENvbmcgbmdoaWVwIHRhdSB0aHV5IFZpZXQg TmFtIChWaW5hc2hpbikgbGEgDQp0ZW4gcmllbmcgZHV5IG5oYXQgZHVvYyBuaGFuIG1hbmggdGFp IGJhbyBjYW8gbmF5Lg0KDQpDdSB0aGUsIGN1IHRyaSB2YSBuaGFuIGRhbiBjaG8gcmFuZyB0cm9u ZyB0aG9pIGdpYW4gcXVhLCBjb25nIHRhYyBxdWFuIGx5IG5oYSBudW9jIGRvaSANCnZvaSB0YXAg ZG9hbiBuYXkgY28gbmhpZXUgYmF0IGNhcCwgeWV1IGtlbTsgdmllYyBraWVtIHRyYSwga2llbSBz b2F0IGN1YSBuaGEgbnVvYyBjb24gDQprZW0gaGlldSBxdWEgbmVuIGNodWEgcGhhdCBoaWVuIGR1 b2MgZGF5IGR1IHZhIG5nYW4gY2hhbiBraXAgdGhvaSBuaHVuZyBxdXlldCBkaW5oIHNhaSANCnRy YWkgdmUgZGF1IHR1LCBzdSBkdW5nIHZvbiBraG9uZyBkdW5nIG11YyBkaWNoLi4uIGRhbiBkZW4g aGlldSBxdWEgdm9uIGRhdSB0dSBjdWEgbmhhIA0KbnVvYyBkYXQgaGlldSBxdWEgdGhhcCwgdGhh bSBjaGkgYmkgdGhhdCB0aG9hdCByYXQgbmdoaWVtIHRyb25nLiANCg0KQ3UgdHJpIHZhIG5oYW4g ZGFuIGtpZW4gbmdoaSBDaGluaCBwaHUgbGFtIHJvIG5odW5nIHNhaSBwaGFtIGN1YSBsYW5oIGRh byBWaW5hc2hpbiB2YSANCnRyYWNoIG5oaWVtIHF1YW4gbHkgbmhhIG51b2MgY3VhIFRodSB0dW9u ZyBjaGluaCBwaHUsIGNhYyBibyBjbyBsaWVuIHF1YW4gdmEgeHUgbHkgDQpuZ2hpZW0gZG9pIHZv aSB0YXAgdGhlLCBjYSBuaGFuIHZpIHBoYW07IGRvbmcgdGhvaSBraWVuIG5naGkgQ2hpbmggcGh1 IGNoaSBkYW8gdGllbiANCmhhbmggY2FjIGhvYXQgZG9uZyBraWVtIHRyYSwgZGFuaCBnaWEgZHVu ZyB0aHVjIHRyYW5nIHZlIHRpbmggaGluaCB0YWkgY2hpbmggY3VuZyBuaHUgDQpob2F0IGRvbmcg c2FuIHh1YXQsIGtpbmggZG9hbmggY3VhIGNhYyB0YXAgZG9hbiBraW5oIHRlLCB0b25nIGNvbmcg dHkgbmhhIG51b2Mga2hhYy4gDQoNCkJlbiBjYW5oIG5odW5nIGtpZW4gbmdoaSBuZXUgdHJlbiwg Y3UgdHJpIHZhIG5oYW4gZGFuIGN1bmcgInBoYW4gbmFuIiB2ZSBtb3Qgc28gdmFuIGRlIA0KbmF5 IHNpbmggdHJvbmcgZG9pIHNvbmcgeGEgaG9pLCBuaHVuZyBiYXQgY2FwIHRyb25nIHZpZWMgdGh1 YyBoaWVuIGNoaW5oIHNhY2gsIHBoYXAgDQpsdWF0IG1hIGN1IHRyaSBkYSBuZXUgdGFpIGNhYyBr eSBob3AgdHJ1b2MsIG1hYyBkdSBkYSBkdW9jIENoaW5oIHBodSwgY2FjIGJvLCBuZ2FuaCBnaWFp IA0KcXV5ZXQgdHVuZyBidW9jIG5odW5nIHZhbiBjaHVhIGRhcCB1bmcgZHVvYyB5ZXUgY2F1IHRo dWMgdGllbiBjdWEgZG9pIHNvbmcgeGEgaG9pIHZhIA0KdmFuIGRhbmcgbGEgbmh1bmcgdmFuIGRl IG1hIGN1IHRyaSBjbyBuaGlldSBraWVuIG5naGkuDQoNCkRvIGxhIHRyYWNoIG5oaWVtIGN1YSBj YWMgY28gcXVhbiBOaGEgbnVvYyB2YSBjaGluaCBxdXllbiBjYWMgY2FwIHRyb25nIHF1YW4gbHkg a2hhaSANCnRoYWMgdGFpIG5ndXllbiwga2hvYW5nIHNhbiB2dWEgZGUgdGhhdCB0aG9hdCB0YWkg bmd1eWVuLCBraG9hbmcgc2FuLCB2dWEgZ2F5IG8gbmhpZW0gDQptb2kgdHJ1b25nLCB0cm9uZyB4 dSBseSB0cmFjaCBuaGllbSBjdWEgY2FjIHRhcCB0aGUgdmEgY2EgbmhhbiBjaG8gZG9hbmggbmdo aWVwIG51b2MgDQpuZ29haSB0aHVlIGRhdCBydW5nIGRhaSBoYW4sIHRyb25nIGRvIGNvIGNhIHJ1 bmcgcGhvbmcgaG8sIHJ1bmcgZGF1IG5ndW9uLCBydW5nIHRhaSBjYWMgDQp2aSB0cmkgeHVuZyB5 ZXUgdmUgYW4gbmluaCBxdW9jIHBob25nLi4uDQoNClRhaSBwaGllbiBraGFpIG1hYyBreSBob3Ag UXVvYyBob2kgdGh1IHRhbSwgbmdheSBzYXUga2hpIFRodSB0dW9uZyB0cmluaCBiYXkgYmFvIGNh byANCmN1YSBDaGluaCBwaHUgdmUgdGluaCBoaW5oIGtpbmggdGUsIHhhIGhvaSwgYmFvIGNhbyB0 YXAgaG9wIHkga2llbiwga2llbiBuZ2hpIGN1YSBjdSB0cmkgdmEgDQpuaGFuIGRhbiBzZSBkdW9j IENodSB0aWNoIFV5IGJhbiBUcnVuZyB1b25nIG1hdCB0cmFuIFRvIHF1b2MgVmlldCBOYW0gSHV5 bmggRGFtIA0KdHJpbmggYmF5IHRydW9jIFF1b2MgaG9pLiBQaGllbiBob3AgbmF5IHNlIGR1b2Mg dHJ1eWVuIGhpbmggdHJ1YyB0aWVwIGRlIGN1IHRyaSB2YSBuaGFuIGRhbiBjYSBudW9jIHRoZW8g ZG9pLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQzLzIw MTAxMDIxMTgwNDI4LmFzcHggVGhhbmggTHVvbmcgKGdoaSkgMjEvMTAvMjAxMCAxODowNCANCg0K VGh1b25nIHRydWMgY2hpbmggcGh1OiBWaW5hc2hpbiB0aHVjIGNoYXQgZGEgcGhhIHNhbiAgDQog IA0KKEFuaDpNb3QgZHUgYW4gZG9uZyB0YXUgY3VhIFZpbmFzaGluIC0gQW5oOiBDaGluaHBodS52 bikgDQoNCihUTk8pICJWaW5hc2hpbiB0aHVjIGNoYXQgbGEgcGhhIHNhbiByb2ksIG5odW5nIENo aW5oIHBodSBraG9uZyB0aG9uZyBiYW8gY2hpbmggdGh1YywgDQp2aSBjb24gbGllbiBxdWFuIGRl biA3IHZhbiBuZ3VvaSBsYW8gZG9uZyBjdWEgdGFwIGRvYW4gbmF5LiBUaHVjIHJhLCBWaW5hc2hp biBwaGEgc2FuIA0KdGhlbyBraWV1IFZOIiwgVXkgdmllbiBVeSBiYW4gS2luaCB0ZSBRdW9jIGhv aSBOZ3V5ZW4gRHVjIEtpZW4ga2hhbmcgZGluaCB2b2kgYmFvIA0KY2hpIGJlbiBsZSBreSBob3Ag dGh1IDgsIFF1b2MgaG9pIGtob2EgWElJLiANCg0KKiBWaWVjIFZpbmFzaGluIG5vIGhvbiA4NSBu Z2FuIHRpIGRvbmcgdmEga2hvbmcgY28ga2hhIG5hbmcgY2hpIHRyYSwgdGhlbyBvbmcsIHRhaSBz YW8gDQpraG9uZyBkZSBWaW5hc2hpbiB0dXllbiBibyBwaGEgc2FuPyANCg0KLSBVeSB2aWVuIFV5 IGJhbiBLaW5oIHRlIFF1b2MgaG9pIE5ndXllbiBEdWMgS2llbjogRHVuZyB2ZSBtYXQga2hvYSBo b2Mga2luaCB0ZSANCg0KdGhpIE5oYSBudW9jIGRhIGNobyBWaW5hc2hpbiBwaGEgc2FuIHJvaSwg Y28gZGlldSB0YSBraG9uZyB0dXllbiBiby4gVmllYyBjaHV5ZW4gZG9pIA0KbW90IHNvIG5nYW5o IG5naGUga2luaCBkb2FuaCBzYW5nIGRvYW5oIG5naGllcCBraGFjLCBjbyBjYXUgbGFpLCBjaHV5 ZW4gZG9pIG1vIGhpbmggDQpxdWFuIGx5LCB0aW5oIHRvYW4gbGFpIG5vLi4uIGxhIG5odW5nIGJp ZXUgaGllbiBybyByYW5nIG5oYXQuIA0KDQpUdXkgbmhpZW4sIFZpbmFzaGluIGxhIG1vdCBkb2Fu aCBuZ2hpZXAgbmhhIG51b2MgbWEgQ2hpbmggcGh1IGxhIGNodSBzbyBodXUuIE5lbiANCmNhY2gg dW5nIHh1IHBoYWkga2hhYyB2aSBjbyBsaWVuIHF1YW4gZGVuIDcgdmFuIGxhbyBkb25nIGRhbmcg bGFtIHZpZWMgdGFpIGRheS4NCkNodW5nIHRhIHBoYWkgZGF0IHZpZWMgcGhhIHNhbiB0cm9uZyBi b2kgY2FuaCBjdWEgbmFtIDIwMTAsIG1hIHF1eSBiYW8gaGllbSB0aGF0IA0KbmdoaWVwIG1vaSBo aW5oIHRoYW5oIG5hbSAyMDA5LiBUdWMgbGEgdHUgbmdheSAxLjEuMjAxMCwgbmd1b2kgbGFvIGRv bmcgbW9pIG5vcCANCnRpZW4gdmFvIHF1eSBuYXksIHRoaSBwaGFpIHNhdSAxMiB0aGFuZyBtb2kg ZHVvYyBodW9uZyBsb2kgaWNoLCB0aGkgZGVuIGJheSBnaW8gbGFtIA0Kc2FvIGRhIGNvIG5ndW9u IGNoaSB0cmEuDQoNCktoaSB0dXllbiBibyBwaGEgc2FuIHRoaSBkb2FuaCBuZ2hpZXAga2hvbmcg Y2hpdSB0cmFjaCBuaGllbSB2ZSBuaHVuZyBraG9hbiBsbywgDQpjdW5nIG5odSBiYXQgY3UgdmFu IGRlIGdpIG5heSBzaW5oIG51YS4gTmh1bmcgY2h1bmcgdGEga2hvbmcgdGhlIGxhbSB2YXkgdmkg Y2h1IA0KZG9hbmggbmdoaWVwIGxhIE5oYSBudW9jLiBDbyBkaWV1IGNodW5nIHRhIHRpZW4gaGFu aCB0YWkgY28gY2F1IFZpbmFzaGluLCB0dWMgbGEgDQpjaGFwIG5oYW4gY2hvIG5vIHBoYSBzYW4u IENvIGRpZXUgY2h1bmcgdGEgY28gZGFjIHRodSB2dWEgbGEgbmd1b2kgcXVhbiBseSBuaGEgbnVv YywgDQp2dWEgbGEgY2h1IGRvYW5oIG5naGllcCBuZW4gY2hvIG5vIHRpZW4gaGFuaCBwaGEgc2Fu IHRoZW8gbW90IGhpbmggdGh1YyBtYW5nIGRhYyANCnRodSBWTi4gTmd1b2kgbGFvIGRvbmcga2hv bmcgYmkgZGF5IHJhIGR1b25nLCBubyBjdWEgVmluYXNoaW4gZG9pIHZvaSBjYWMgbmdhbiANCmhh bmcgdGh1b25nIG1haSBjbyBwaGFuIHZhbiBkdW9jIE5oYSBudW9jIGJhbyBkYW0gdmEgY2hpdSB0 cmFjaCBuaGllbSBkZSBkYW0gYmFvIHF1YW4gbHkgdmkgbW8uIA0KDQoqIFZlIHZ1IFZpbmFzaGlu LCBRdW9jIGhvaSBkYSBjbyBjYW5oIGJhbyBuaHVuZyByb2kgbmh1bmcgc3UgdmllYyBzYWkgcGhh bSB2YW4gdGllcCBkaWVuLiANClZheSB0aGkgUXVvYyBob2kgY28gbG9pIHRydW9jIGN1IHRyaSB0 cm9uZyB2YW4gZGUgbmF5IGtob25nPw0KDQotIFV5IHZpZW4gVXkgYmFuIEtpbmggdGUgUXVvYyBo b2kgTmd1eWVuIER1YyBLaWVuOiBUdW5nIGRhaSBiaWV1IFF1b2MgaG9pIHBoYWkgdGhheSANCnRy YWNoIG5oaWVtIGN1YSBtaW5oIHRyb25nIHZhbiBkZSBWaW5hc2hpbi4gVHJvbmcgYmFvIGNhbyBn aWFtIHNhdCB2ZSBxdWFuIGx5IHZvbiBjdWEgDQpOaGEgbnVvYywgbmd1b2kgdGEgZGEgbm9pIHJv IHBoYWkgdGllbiBoYW5oIGNvIGNhdSBsYWkgdmEgeGF5IGR1bmcsIGJhbiBoYW5oIGx1YXQgcXVh biBseSANCnZvbiB2YSB0YWkgc2FuIG5oYSBudW9jLiBUdXkgbmhpZW4sIGtoaSBiaWV1IHF1eWV0 IHRoaSBRdW9jIGhvaSBraG9uZyB0aG9uZyBxdWEsIGtob25nIA0KeGF5IGR1bmcsIGtob25nIGJh biBoYW5oLiBSbyByYW5nIGxhIFF1b2MgaG9pIGN1bmcgY28gbG9pLiANCg0KKiBUcm9uZyBxdWEg dHJpbmggdGFpIGNvIGNhdSwgVmluYXNoaW4gY2h1eWVuIG1vdCBzbyBraG9hbiBubyBzYW5nIFBl dHJvdmlldG5hbSB2YSANClZpbmFsaW5lcyBraGllbiBuaGlldSBuZ3VvaSBsbyBuZ2FpIGRheSBs YSBoaW5oIHRodWMgY2h1eWVuIG5vIGNobyBkb2FuaCBuZ2hpZXAgDQpuaGEgbnVvYyBraGFjIHRy YSB0aGF5IENoaW5oIHBodS4gT25nIG5naGkgc2FvPw0KDQotIFV5IHZpZW4gVXkgYmFuIEtpbmgg dGUgUXVvYyBob2kgTmd1eWVuIER1YyBLaWVuOiBDdW5nIGNodWEgaGFuIHRoZS4gRG8gbGEgbW90 IA0KaGluaCB0aHVjIHRodWMgaGllbiB2aWVjIGNodXllbiBtb24gaG9hLiBWYW4gZGUgYWkgY28g bG9pIHRoZT8gVmkgY2h1bmcgdGEgZGFuZyBwaGUgDQpwaGFuIGhvIGtpbmggZG9hbmggb20gZG9t LCBkYSBjaHVjIG5hbmcsIGRhIG5nYW5oIHJvaSBraG9pIG5nYW5oIGNoaW5oIHRoaSBiYXkgZ2lv IA0KdGFjaCByYSBjaGkgdGFwIHRydW5nIHZhbyBjaHV5ZW4gbW9uIHRob2kuIEhvIGNvIDMgbmdh bmggY2hpbmggdGhpIHF1YXkgdHJvIGxhaSBsYW0gMyANCm5nYW5oIGRvIHRob2ksIGNvbiBjYWMg bmdhbmgga2hhYyB0aGkgY2h1eWVuIHNhbmcgZG9hbmggbmdoaWVwIGNvIGxvaSB0aGUgaG9uIHRy b25nIGtpbmggZG9hbmguIA0KDQoqIE5odW5nIGtoaSBjaHV5ZW4gbmh1IHZheSB0aGkgYmFuIHRo YW4gY2FjIGtob2FuIG5vIGN1bmcgY2h1YSBybyByYW5nLCB0YWkgc2FvIGtob25nIGtpZW0gdG9h biB0cnVvYyByb2kgbW9pIGNodXllbj8NCg0KLSBVeSB2aWVuIFV5IGJhbiBLaW5oIHRlIFF1b2Mg aG9pIE5ndXllbiBEdWMgS2llbjogR2lvbmcgbmh1IG5oYSBjbyAzIG5ndW9pIGNvbiwgDQptb3Qg bmd1b2kgYmkgYmVuaCB0aGFuLCBvbmcgYm8gYmFvIDIgbmd1b2kgY29uIGxhaSBnb3AgdGllbiBk ZSBkaSBiZW5oIHZpZW4gdGhheSB0aGFuLiANCkx1YyBkbyBjaGFuZyBsZSBvbmcgYW5oIGxhaSBo b2k6ICJOZXUgY29uIGJvIHJhIDEwIHRyaWV1IGRvbmcgbmhvIGVtIGtob25nIHRyYSBkdW9jIA0K dGhpIGxhbSB0aGUgbmFvPyIuIFBldHJvdmlldG5hbSwgVmluYWxpbmVzIGN1bmcgbGEgdm9uIGRv IENoaW5oIHBodSBsYW0gY2h1IHNvIGh1dS4gDQoNCiogWGluIGNhbSBvbiBvbmchIA0KDQpodHRw Oi8vdm5lY29ub215LnZuLzIwMTAxMDIxMDIyOTU3NjBQMEM1L3RoYW5oLXRyYS10b2FuLWRpZW4t dmluYXNoaW4tZGEtcGhhdC1oaWVuLW5oaWV1LXZhbi1kZS1jdS10aGUuaHRtIE5HVVlFTiBWVSAx NjowNCAoR01UKzcpIC0gMjEvMTAvMjAxMA0KDQpUaGFuaCB0cmEgdG9hbiBkaWVuIFZpbmFzaGlu OiAiRGEgcGhhdCBoaWVuIG5oaWV1IHZhbiBkZSBjdSB0aGUiIA0KDQpUb25nIHRoYW5oIHRyYSBD aGluaCBwaHUgbm9pIGRvbiB2aSBuYXkga2hvbmcgY2hpdSBiYXQga3kgInN1YyBlcCIgbmFvIHRy b25nIHZpZWMgdGhhbmggdHJhIHRvYW4gZGllbiBWaW5hc2hpbg0KDQpDaHVhIHRoZSAidGlldCBs byIga2V0IHF1YSB0aGFuaCB0cmEgdG9hbiBkaWVuIFZpbmFzaGluLCBkbyBjb25nIHZpZWMgY2h1 YSBob2FuIHRhdCwgDQpzb25nIFRvbmcgdGhhbmggdHJhIENoaW5oIHBodSBUcmFuIFZhbiBUcnV5 ZW4gY3VuZyBjaG8gYmlldCBkYSBwaGF0IGhpZW4gbmhpZXUgDQp2YW4gZGUgY3UgdGhlIGhvbiBz byB2b2kga2V0IGx1YW4gY3VhIFV5IGJhbiBLaWVtIHRyYSBUcnVuZyB1b25nLg0KDQpPbmcgVHJ1 eWVuIGN1bmcgbmhhbiBtYW5oLCBtb3QgdHJvbmcgbmh1bmcgbHkgZG8ga2hpZW4gY2hvIHZpZWMg dGhhbmggdHJhIHRvYW4gDQpkaWVuIFZpbmFzaGluIGNoYW0gZHVvYyB0aWVuIGhhbmggbGEgZG8g cGhhaSAidHJhbmggbmhhdSIgdm9pIGtpZW0gdG9hbi4NCg0KQ2h1bmcgcXV5IGxhIGRvLi4uIGNv IGNoZQ0KDQpUaHVhIG9uZywgb25nIGNvIGNobyByYW5nIG5ldSB2aWVjIHRoYW5oIHRyYSBWaW5h c2luIGR1b2MgdGllbiBoYW5oIHNvbSBob24gdGhpIGhhdSANCnF1YSBzZSBib3QgbmdoaWVtIHRy b25nPw0KDQpWb2kgVmluYXNoaW4sIG5ldSBub2kgdnVhIHF1YSBtYSBraG9uZyBjbyB0aGFuaCB0 cmEgdGhpIGtob25nIHBoYWkuIFZpIHR1IDIwMDUgZGVuIG5heSANCmNvIHRvaSAxMyBoYXkgMTQg Y3VvYyB0aGFuaCB0cmEga2llbSB0cmEsIGdpYW0gc2F0LCBraWVtIHRvYW4uIFF1YSBkbyBjdW5n IGN1bmcgcGhhdCANCmhpZW4gcmF0IG5oaWV1IG5vaSBkdW5nIHNhaSBwaGFtLg0KDQpWaSBkdSB0 aGFuaCB0cmEgY3VhIEJvIEtlIGhvYWNoIHZhIERhdSB0dSB0aGkgcGhhdCBoaWVuIGRhdSB0dSBu Z29haSBuZ2FuaCB0cmFuIGxhbiwgZGFuIA0KdHJhaSB2YSBraWVuIG5naGkgcmF0IG5oaWV1IG5v aSBkdW5nLiBIYXkgbmh1IHRoYW5oIHRyYSB0YWkgY2hpbmggdGhpIHBoYXQgaGllbiBzdSBkdW5n IA0Kdm9uIGtob25nIGR1bmcgbXVjIGRpY2gsIGtob25nIGhpZXUgcXVhLiBNb3Qgc28gaG9hdCBk b25nIGN1YSBUaGFuaCB0cmEgQ2hpbmggcGh1LCANCmR1IGNodWEgdGhhbmggdHJhIHRvYW4gZGll biwgY3VuZyBwaGF0IGhpZW4gbW90IHNvIHNhaSBwaGFtLCB0aGF0IHRob2F0LiBSb2kgZ2lhbSBz YXQgDQpjdWEgUXVvYyBob2kgaGF5IGtpZW0gdHJhIGN1YSBUcnVuZyB1b25nIHZlIGRvaSBtb2kg ZG9hbmggbmdoaWVwIGN1bmcgZGEgcGhhdCBoaWVuIA0KcmF0ICBuaGlldSBzYWkgcGhhbSBjdWEg dGFwIGRvYW4gbmF5Lg0KDQpEYW5nIHRpZWMgbGEgVmluYXNoaW4gZGEga2hvbmcgbmdoaWVtIHR1 YyBraGFjIHBodWMsIG1hIGNvbiB0aW0gY2FjaCBiYW8gY2FvIGtob25nIA0KZHVuZyBzdSB0aGF0 IGRlIGxhcCBsaWVtIHZpZWMgbGFtIGN1YSBtaW5oLiBWaSBkdSBkYSBjYW5oIGJhbyBsbyBuaHVu ZyB2YW4gYmFvIGNhbyBsYWkuIA0KTmh1bmcgZGFuZyB0aWVjIGxhIHF1YSB0cmluaCBraWVtIHRv YW4gY2h1YSBjaGkgcmEga2lwIHRob2kgY2FpIG5heSBkdW9jLCBtYSBkbyBsYSBraWVtIA0KdG9h biBxdW9jIHRlIGNodSBraG9uZyBwaGFpIGN1YSBjaHVuZyB0YS4NCg0KTmh1IHZheSBsYSBjbyB2 YW4gZGUgdmUgY28gY2hlIGdpYW0gc2F0LCB0aHVhIG9uZz8NCg0KRGF5IGxhIHZhbiBkZSBjYW4g bHV1IHksIHZpIHRoZW8gY28gY2hlIHRoYW5oIHRyYSBoaWVuIG5heSB0aGkgY28gbmhpZXUgYW5o IHZhbywgbmh1bmcgDQpjaHVhIHF1eSBkaW5oIGFpIGxhbSB0b2FuIGRpZW4sIGFpIGxhbSBjaHV5 ZW4gbmdhbmguIEJvaSB0aGUga2hpIHRhaSBjaGluaCB2YW8gdGhpIG5vaSB2ZSANCnRhaSBjaGlu aCwgZGF1IHR1IHZhbyB0aGkgbm9pIHZlIGRhdSB0dS4gVmkgY2h1YSBxdXkgZGluaCBybyB0cmFj aCBuaGllbSwgYWkga2llbSBzb2F0IGNhaSANCmdpIHZhIHRyYWNoIG5oaWVtIGNoaW5oIGxhIGFp LCBjaGluaCB2aSB0aGUgY28gbm9pIGR1bmcgYmkgY2hhbS4gDQoNClJpZW5nIFRoYW5oIHRyYSBD aGluaCBwaHUgY3VuZyBkYSBkZSB4dWF0IHRvaSBoYWksIGJhIGxhbiBkdWEgdmFvIGtlIGhvYWNo IGRlIHRoYW5oIHRyYSANCnRvYW4gZGllbiB2aSB0aGF5IGNvIG5oaWV1IGRpZW0ga2hvbmcgb24u IE5odW5nIGRhbmcgdGllYyBsYSBkZSB0cmFuaCBjaG9uZyBjaGVvIHRoaSBjdSANCmNvIGtpZW0g dG9hbiB0aGkgdGhvaSB0aGFuaCB0cmEsIGN1ICJ0cmFuaCBuaGF1IiBuaHUgdGhlLCBuZW4gY28g bmhpZXUgdmllYyBkYSBjaGFtLiBWb2kgDQpWaW5hc2hpbiB2aWVjIHRoYW5oIHRyYSB0b2FuIGRp ZW4gY28gY2hhbSBjaHUga2hvbmcgcGhhaSBidW9uZyBsb25nIHZhIGN1bmcga2hvbmcgDQpwaGFp IHRoYW5oIHRyYSBraG9uZyBwaGF0IGhpZW4gcmEgdmFuIGRlLiBDaHVuZyBxdXkgbGFpIGxhIGRv IGNvIGNoZSBjbyB2YW4gZGUsIG5lbiB0b2kgZGF5IHBoYWkgY2hhbiBjaGluaC4NCg0KSGllbiBu YXksIGNvIGNoZSBkZSBiYW8gZGFtIGNobyBjYWMgZG9pIHR1b25nIHRoYW5oIHRyYSBwaGFpIGNo YXAgaGFuaCBuZ2hpZW0ga2V0IA0KbHVhbiBjdW5nIGNodWEgY28uIE5lbiBjbyB2dSB2aWVjIGRh IGNvIGtldCBsdWFuIGN1YSBjYSBUaHUgdHVvbmcgbWEgaG8ga2hvbmcgY2hhcCANCmhhbmggIHRo aSBjdW5nIGtob25nIGJpZXQgZ2lhbyBjaG8gYWkgcGh1YyB0cmEsIFRoYW5oIHRyYSBDaGluaCBw aHUgY3VuZyBraG9uZyBwaHVjIHRyYS4gDQpNYSBkYSBraG9uZyBwaHVjIHRyYSB0aGkgaG8gY2hh cCBoYW5oIGtob25nIG5naGllbSBjdW5nIGtob25nIGJpZXQsIGhvYWMgYmlldCBsYSBobyANCmNo YXAgaGFuaCBraG9uZyBuZ2hpZW0gdGhpIGN1bmcgY2h1YSBjbyBjaGUgdGFpIGRlIHh1IGx5Lg0K DQpWaSB0aGUgbmVuIG5oaWV1IGtoaSBzYWkgcGhhbSAgYnVvYyBkYXUgaXQgaG9uIHRoYXAgaG9u IG5odW5nIGtob25nIG5nYW4gY2hhbiBkYW4gZGVuIA0Kc2FpIHBoYW0gY3Uga2VvIGRhaSwgY3Ug bGFwIGRpIGxhcCBsYWkuDQoNCktob25nIGNvIHN1YyBlcCBuYW8NCg0KVGh1YSBvbmcsIGNvIG5o aWV1IHkga2llbiBjaG8gcmFuZyBjb24gbmhpZXUgY2F1IGhvaSBkYW5nICJibyBuZ28iIHZlIHRy YWNoIG5oaWVtIGxpZW4gDQpxdWFuIGRlbiBWaW5hc2hpbi4gVmF5IGN1b2MgdGhhbmggdHJhIHRv YW4gZGllbiBsYW4gbmF5IGNvIHhlbSB4ZXQgdHJhY2ggbmhpZW0gY3VhIGNhYyANCmNvIHF1YW4g cXVhbiBseSBOaGEgbnVvYyB0cm9uZyB2aWVjIHRodWMgaGllbiBjYWMga2V0IGx1YW4gdGhhbmgg dHJhIHRydW9jIGRvIHZvaSBWaW5hc2hpbiBoYXkga2hvbmc/IA0KDQpEdW9uZyBuaGllbiwga2hp IHRoYW5oIHRyYSB0b2FuIGRpZW4gdGhpIGNodW5nIHRvaSBraG9uZyBjaGkgeGVtIHhldCB0cmFj aCBuaGllbSBjdWEgDQpjaGluaCBkb24gdmkgZG8sIG1hIHBoYWkgeGVtIHhldCBjYSB0cmFjaCBu aGllbSBjdWEgY28gcXVhbiBjYXAgdHJlbiBxdWFuIGx5IGhvLCBuaGFtIA0KbmFuZyBjYW8gdHJh Y2ggbmhpZW0gdmEgdGltIHJhIGNvIGNoZSBkZSB4aWV0IGNoYXQgdHJhY2ggbmhpZW0sIGNodSBr aG9uZyBwaGFpIGxhIGRlIGJhdCANCmxvaS4NCg0KQ29uIG5ldSBhbmggY3UgY28gdGluaCBsYW0g dHJhaSB0aGkgY3VuZyBwaGFpIGtpZW4gbmdoaSB4dSBseS4NCg0KRGF5IGxhIHZvaSBuaHVuZyBj byBxdWFuIHRyb25nIHBoYW0gdmkgcXVhbiBseSBjdWEgQ2hpbmggcGh1LCBjb24gdGh1b2MgdGhh bSBxdXllbiANCmJlbiB0cmVuIHRoaSBUaGFuaCB0cmEgQ2hpbmggcGh1IHBoYWkgYmFvIGNhbyBs ZW4sIHRoZW8gcXV5IGRpbmggY3VhIERhbmcgdmEgTmhhIG51b2MuIA0KVGh1YyB0ZSBjaHVuZyB0 b2kgY3VuZyBkYSBiYW8gY2FvIG5oaWV1IHZpZWMgdnVvdCBxdWEgdGhhbSBxdXllbiB4dSBseSBj dWEgQ2hpbmggcGh1Lg0KDQpWaW5hc2hpbiBkYW5nIGxhICJ0YW0gZGllbSIgcXVhbiB0YW0gY3Vh IGN1IHRyaSBjYSBudW9jLCBxdWEgdHJpbmggdGhhbmggdHJhIHRhcCBkb2FuIA0KbmF5IGNvIGJp ICJ0YWMgZG9uZyIgaGF5IHZhcCBwaGFpICJzdWMgZXAiIGdpIGtob25nLCB0aHVhIG9uZz8gDQoN Cktob25nIGNvIGJhdCBjdSBzdWMgZXAgbmFvLCB2aWVjIGRpZXUgY2hpbmgga2UgaG9hY2ggdGhh bmggdHJhIGxhIHRoZW8geWV1IGNhdSBjdWEgQ2hpbmggDQpwaHUsIGNvbiB0aHVjIGhpZW4gY3Ug dGhlIHRoaSBsYW0gZ2kgY28gc3VjIGVwIGdpIGRhdS4NCg0KSGllbiBnaW8gbW9pIHZpZWMgdmFu IGRhbmcgc3VvbiBzZSwgdGljaCBjdWMuIENhYyBub2kgZHVuZyBjdWEga2UgaG9hY2ggdGhhbmgg dHJhIGRhbmcgDQpkdW9jIHRyaWVuIGtoYWkgZGF5IGR1LCB2YSBkYSBwaGF0IGhpZW4gbmhpZXUg dmFuIGRlIGN1IHRoZSBob24ga2V0IGx1YW4gY3VhIFV5IGJhbiANCktpZW0gdHJhIFRydW5nIHVv bmcuIFF1YSBkbywga2hvbmcgY2hpIGRlIGRhbmggZ2lhIHRpbmggaGluaCB0aHVjIHRlIGN1YSBk b24gdmkgbmF5LCANCm1hIGNvbiBkZSB0aGF5IGNhY2ggcXVhbiBseSBjdWEgY2FjIHRhcCBkb2Fu IG5vaSBjaHVuZy4gIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA3 L0xlLXJhLVZpbmFzaGluLXBoYWktYmkteHUtbHktdHUtbGF1LXJvaS05MjAzNDIvIDA2OjEwIDA2 LTA3LTIwMTAgKEdNVCs3KQ0KDQpUcnVuZyB1b25nIERhbmc6ICdMZSByYSwgVmluYXNoaW4gcGhh aSBiaSB4dSBseSB0dSBsYXUgcm9pJw0KDQpUcnVvbmcgZG9hbiBEQlFIIHRpbmggSHVuZyBZZW4g VnUgUXVhbmcgSGFpIGNobyBiaWV0OiBLaG9uZyBwaGFpIGNhYyBzYWkgcGhhbSBkZW4gZ2lvIA0K bW9pIHBoYXQgaGllbiByYS4gRGFuZyBsZSByYSwgc2FpIHBoYW0gY3VhIFZpbmFzaGluIHBoYWkg YmkgeHUgbHkgdHUgbGF1IHJvaSwgY2h1IGtob25nIA0KcGhhaSBrZW8gZGFpLCBkYXkgZHVhIGRl biB0YW4gYmF5IGdpby4gDQoNClRoYXQgdGhvYXQgdm9uIGxvbiBkYW4sIGxhbyBkb25nIHRoaWV1 IGNvbmcgYW4gdmllYyBsYW0sIGNvbmcgdHJpbmggZHUgYW4gZGFuZyBkbywgZ2F5IGJ1YyB4dWMg dHJvbmcgeGEgaG9pLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMv MjAxMDQzLzIwMTAxMDIyMDAyOTMyLmFzcHggVGhhbmggTHVvbmcgQmFvIENhbSAyMi8xMC8yMDEw IDA6MjkgDQoNClRoYW5oIHRyYSBzZSBjbyBraWVuIG5naGkgYnVvYyB0cmFjaCBuaGllbSB0cm9u ZyB2dSBWaW5hc2hpbiAgDQogIA0KKEFuaDogVG9uZyB0aGFuaCB0cmEgQ2hpbmggcGh1IFRyYW4g VmFuIFRydXllbiAtIEFuaDogTmd1eWV0IE1pbmgpDQoNClRvbmcgdGhhbmggdHJhIENoaW5oIHBo dSBUcmFuIFZhbiBUcnV5ZW4ga2hhbmcgZGluaCBuaHUgdmF5IGtoaSB0cmEgbG9pIHBob25nIHZh biANCmJhbyBnaW9pIGJlbiBoYW5oIGxhbmcga3kgaG9wIFF1b2MgaG9pIChRSCkgc2FuZyAyMS4x MCwgeG9heSBxdWFuaCBjYWMgc2FpIHBoYW0gY3VhIA0KVmluYXNoaW4gdmEgdHJhY2ggbmhpZW0g Y3VhIGNhYyBjbyBxdWFuIHRoYW5oIHRyYSwga2llbSB0b2FuLiANCg0KKiBOaGlldSB5IGtpZW4g Y2hvIHJhbmcgbmV1IHZpZWMgdGhhbmggdHJhIFZpbmFzaGluIGR1b2MgdGllbiBoYW5oIHNvbSBo b24sIGhhdSBxdWEgc2UgDQpib3QgbmdoaWVtIHRyb25nIGhvbi4gT25nIG5naGkgc2FvPyANCg0K LSBUdSAyMDA1IGRlbiBuYXkgY28gMTMsIDE0IGN1b2MgdGhhbmggdHJhIGtpZW0gdHJhLCBnaWFt IHNhdCwga2llbSB0b2FuIHZlIFZpbmFzaGluLCANCnF1YSBkbyBjdW5nIGRhIHBoYXQgaGllbiBy YXQgbmhpZXUgbm9pIGR1bmcgc2FpIHBoYW0uIA0KRGFuZyB0aWVjIGxhIFZpbmFzaGluIGtob25n IG5naGllbSB0dWMga2hhYyBwaHVjLCBjb24gdGltIGNhY2ggYmFvIGNhbyBraG9uZyBkdW5nIHN1 IA0KdGhhdC4gVmkgZHUgZGEgY2FuaCBiYW8gbG8gbmh1bmcgdmFuIGJhbyBjYW8gbGFpLCBkYW5n IHRpZWMgbGEgcXVhIHRyaW5oIGtpZW0gdG9hbiBxdW9jIHRlIA0KY3VuZyBjaHVhIGNoaSByYSBr aXAgdGhvaSBjYWkgbmF5IGR1b2MuIEhvbiBudWEgbmV1IGNvIHRoYW5oIHRyYSB0b2FuIGRpZW4g dHUgYmFuIGRhdSwgDQpjaGkgcmEgaGV0IG1vaSBzYWkgcGhhbSBuaHVuZyBobyBraG9uZyB0dSBn aWFjIGtoYWMgcGh1YyBtYSBjdSBjbyB0aW5oIHRoaSB0aW5oIHRyYW5nIA0Kbmh1IGhpZW4gbmF5 IGN1bmcga2hvIHRyYW5oIGtob2kuIA0KDQpEYW5nIGx1dSB5IGxhIGNvIGNoZSB0aGFuaCB0cmEg Z2lhbSBzYXQgY28gdmFuIGRlLiBOaGlldSBhbmggdmFvIHRoYW5oIGtpZW0gdHJhIGdpYW0gc2F0 IA0Kbmh1bmcgY2h1YSBxdXkgZGluaCBhaSBsYW0gdG9hbiBkaWVuLCBhaSBsYW0gY2h1eWVuIG5n YW5oLiBUaGFuaCB0cmEgQ2hpbmggcGh1IGNvIHRoZSANCmxhbSB0b2FuIGRpZW4gbmh1bmcgY3Vu ZyBjaGkgbGFtIG1vdCBtYXQsIGNodWEgcXV5IGRpbmggcm8gdHJhY2ggbmhpZW0gYWkga2llbSBz b2F0IGNhaSANCmdpIHZhIHRyYWNoIG5oaWVtIGNoaW5oIGxhIGFpLCB2aSB0aGUgY28gbm9pIGR1 bmcgYmkgY2hhbS4gUmllbmcgVGhhbmggdHJhIENoaW5oIHBodSANCmN1bmcgZGEgZGUgeHVhdCB0 b2kgaGFpIGJhIGxhbiB0aGFuaCB0cmEgdG9hbiBkaWVuIGRlIGR1YSB2YW8ga2UgaG9hY2gsIG5o dW5nIGRhbmcgdGllYyBsYSANCmRlIHRyYW5oIGNob25nIGNoZW8gbmVuIGtoaSBjbyBraWVtIHRv YW4gcm9pIHRoaSB0aG9pIHRoYW5oIHRyYS4gQ2h1bmcgcXV5IGxhaSBsYSBkbyBjbyANCmNoZSBj byB2YW4gZGUgbmVuIHRvaSBkYXkgcGhhaSBjaGFuIGNoaW5oLg0KDQoqIFRoYW5oIHRyYSB0b2Fu IGRpZW4gZGFuZyB0aWVuIGhhbmggY28geGVtIHhldCB0cmFjaCBuaGllbSBjdWEgY2FjIGNvIHF1 YW4gcXVhbiBseSBuaGEgbnVvYz8NCg0KLSBEdW9uZyBuaGllbi4gS2hpIHRoYW5oIHRyYSB0b2Fu IGRpZW4gdGhpIGNodW5nIHRvaSBwaGFpIHhlbSB4ZXQgY2EgY28gcXVhbiBjYXAgdHJlbiANCnF1 YW4gbHkgaG8sIGRlIG5hbmcgdHJhY2ggbmhpZW0gdmEgdGltIHJhIGNvIGNoZSBkZSBzaWV0IGNo YXQgdHJhY2ggbmhpZW0gY3VhIGhvLiANCg0KKiBLaGkgdGhhbmggdHJhIFZpbmFzaGluLCBUaGFu aCB0cmEgQ2hpbmggcGh1IGNvIGNoaXUgc3UgdGFjIGRvbmcgbmFvIGtob25nLCB0aHVhIG9uZz8N Cg0KLSBDaGEgY28gc3VjIGVwIG5hby4gVmllYyBkaWV1IGNoaW5oIGtlIGhvYWNoIHRoYW5oIHRy YSBsYSB0aGVvIHlldSBjYXUgY3VhIENoaW5oIHBodSwgDQpkYSB0aHVjIGhpZW4gZGF1IG1hIG5v aSBzdWMgZXAgZ2kuIENvbiB2aWVjIHRoYW5oIHRyYSB0b2FuIGRpZW4gaGllbiBnaW8gZGFuZyBz dW9uIHNlLCANCnRpY2ggY3VjLCBkdSBjaGFtIG5odW5nIGNhYyBub2kgZHVuZyBkYW5nIGR1b2Mg dHJpZW4ga2hhaSBkYXkgZHUsIHBoYXQgaGllbiBuaGlldSB2YW4gDQpkZSBjdSB0aGUgaG9uIGtl dCBsdWFuIGN1YSBVeSBiYW4gS2llbSB0cmEgVC5VLCBkZSBkYW5oIGdpYSB0aHVjIHRlIGN1YSB0 YXAgZG9hbiBuYXkgdmEgDQpxdWEgZG8gdGhheSBjYWNoIHF1YW4gbHkgY3VhIHRhcCBkb2FuIG5v aSBjaHVuZy4gS2hpIG5hbyBjbyBrZXQgbHVhbiBjdW9pIGN1bmcgc2UgdGhvbmcgDQp0aW4gY2hv IGJhbyBjaGkuDQoNClF1b2MgaG9pIGN1bmcgY28gbG9pIHRyb25nIHZ1IFZpbmFzaGluDQoNCiJW aW5hc2hpbiB0aHVjIGNoYXQgbGEgcGhhIHNhbiByb2ksIG5odW5nIENoaW5oIHBodSBraG9uZyB0 aG9uZyBiYW8gY2hpbmggdGh1YywgdmkgY29uIA0KbGllbiBxdWFuIGRlbiA3IHZhbiBuZ3VvaSBs YW8gZG9uZyBjdWEgdGFwIGRvYW4gbmF5LiBUdW5nIGRhaSBiaWV1IFFIIGN1bmcgcGhhaSBjYW0g DQp0aGF5IGNvIGxvaSB0cm9uZyB2dSB2aWVjIG5heSIsIFV5IHZpZW4gVXkgYmFuIEtpbmggdGUg UUggTmd1eWVuIER1YyBLaWVuIGtoYW5nIGRpbmggDQp2b2kgYmFvIGNoaSBiZW4gbGUga3kgaG9w IFFILiBUaGVvIG9uZyBLaWVuLCBraGkgdGllbiBoYW5oIHRhaSBjbyBjYXUgVmluYXNoaW4sIHR1 YyBsYSANCmNoYXAgbmhhbiBjaG8gbm8gcGhhIHNhbi4gIkNvIGRpZXUgY2h1bmcgdGEgY28gZGFj IHRodSB2dWEgbGEgbmd1b2kgcXVhbiBseSBuaGEgbnVvYywgDQp2dWEgbGEgY2h1IGRvYW5oIG5n aGllcCBuZW4gY2hvIG5vIHRpZW4gaGFuaCBwaGEgc2FuIHRoZW8gbW90IGhpbmggdGh1YyBtYW5n IGRhYyB0aHUgDQpWTiIsIG9uZyBLaWVuIG5oaW4gbmhhbiB2YSBjaG8gYmlldDogIlRyb25nIGJh byBjYW8gZ2lhbSBzYXQgdmUgcXVhbiBseSB2b24gY3VhIG5oYSANCm51b2MsIGRhIG5vaSBybyBw aGFpIHRpZW4gaGFuaCBjbyBjYXUgbGFpIHZhIHhheSBkdW5nLCBiYW4gaGFuaCBsdWF0IHF1YW4g bHkgdm9uIHZhIHRhaSANCnNhbiBuaGEgbnVvYy4gVHV5IG5oaWVuLCBraGkgYmlldSBxdXlldCB0 aGkgUUgga2hvbmcgdGhvbmcgcXVhLCBraG9uZyB4YXkgZHVuZywgDQpraG9uZyBiYW4gaGFuaC4g Um8gcmFuZyBsYSBRSCBjdW5nIGNvIGxvaSIuIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20u dm4vTmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDUyMjM4NDIuYXNweCBUcmFuIExlIDA1LzA4LzIw MTAgMjI6MzggDQoNClRodW9uZyB0cnVjIGNoaW5oIHBodTogVmluYXNoaW4gbmh1bmcgc2FpIHBo YW0gZGEgZHVvYyBiYW8gdHJ1b2MgOSBuYW0gDQogIA0KU3Uga2llbiBuZ3V5ZW4gQ2h1IHRpY2gg SERRVCBUYXAgZG9hbiBWaW5hc2hpbiBQaGFtIFRoYW5oIEJpbmggYmkgYmF0IHRhbSBnaWFtIGxh IA0Ka2V0IHF1YSBjdW9pIGN1bmcgY3VhIG1vdCBoYW5oIHRyaW5oIHNhaSBsYW0gbWEgQmFvIFRo YW5oIE5pZW4gdHVuZyBjYW5oIGJhbyA5IG5hbSANCnRydW9jLiANClRyb25nIHNvIGJhbyAyMDEs IHJhIG5nYXkgMjIuOC4yMDAxLCBUaGFuaCBOaWVuIGRhIGRhbmcgYmFpIENvbiB0YXUgaGFuZyB2 YW4gdGFuIGNodWEgDQpkb25nIGRhIHNhcCAiY2hpbSIhLCBub2kgdmUgbW90IHN1IGtpZW4gaHkg aHV1IHRyb25nIGxhbmcgZG9uZyB0YXUgVk4gdmEgY28gdGhlIGxhIGNhIA0KdGhlIGdpb2k6IG9u ZyBQaGFtIFRoYW5oIEJpbmggeWV1IGNhdSBjYXAgZHVvaSBkb25nIHRhdSBraGkgY2h1YSBjby4u LiB0aGlldCBrZSENCg0KQmVuIEEuLi4gY2FjaCBjaHVjIGJlbiBCIA0KDQpEbyBsYSBjb24gdGF1 IDExLjUwMCB0YW4gZGF1IHRpZW4gZG9uZyB0YWkgVk4sIGRvIGJlbiBBIGxhIFRvbmcgY29uZyB0 eSBjb25nIG5naGllcCB0YXUgDQp0aHV5ICh0ZW4gY3UgY3VhIFZpbmFzaGluKSBreSBob3AgZG9u ZyBkb25nIG1vaSB2b2kgYmVuIEIgbGEgTmhhIG1heSBkb25nIHRhdSBCYWNoIA0KRGFuZywgbW90 IGRvbiB2aSBjdW5nIHRodW9jIFRvbmcgY29uZyB0eSBjb25nIG5naGllcCB0YXUgdGh1eSB0YWkg SGFpIFBob25nLiBEaWV1IHRybyANCnRyZXUgbGEga2hpIHRyaWVuIGtoYWkgaG9wIGRvbmcsIGJl biBCIGtob25nIGR1b2MgYmVuIEEgY3VuZyBjYXAgYmFuLi4uIHRoaWV0IGtlIG5odW5nIA0KdmFu IGJpIGVwIGRvbmcgY2FjIHRvbmcgZG9hbiwgdHVjIGNhYyBwaGFuIGRheSB0YXUgdGhlbyBtb3Qg YmFuIHRoaWV0IGtlIG5oYXAgZGUgbGUga2hvaSANCmNvbmcgZG9uZyBtb2kgZHVvYyB0byBjaHVj IGR1bmcgdmFvIG5nYXkgImNhIHRoYW5nIHR1IiAxLjQuMjAwMS4gDQoNClZpIGNodSB0cnVvbmcg bmF5IHRyYWkgbmd1eWVuIHRhYyBreSB0aHVhdCwgR2lhbSBkb2MgTmhhIG1heSBkb25nIHRhdSBC YWNoIERhbmcsIG9uZyANClBoYW0gRGluaCBEYSBkYSBraG9uZyBjaGFwIG5oYW4geWV1IGNhdSBu b2kgdHJlbi4gVmF5IGxhIG5nYXkgNC43LjIwMDEsIG9uZyBQaGFtIA0KVGhhbmggQmluaCwga2hp IGRvIGxhIENodSB0aWNoIEhEUVQga2llbSBUb25nIGdpYW0gZG9jIFRvbmcgY29uZyB0eSBjb25n IG5naGllcCANCnRhdSB0aHV5IFZOLCBkb25nIHRob2kgZGFpIGRpZW4uLi4gYmVuIEEga3kgbW90 IHF1eWV0IGRpbmggY28gaGlldSBsdWMgbmdheSB0cm9uZyANCm5nYXkgZGUgY2FjaCBjaHVjIGRh aSBkaWVuIGJlbiBCIGxhIG9uZyBQaGFtIERpbmggRGEhIA0KDQpEaWV1IGJhdCBuZ28gbGEga2hp IG5oYW4gcXV5ZXQgZGluaCBuYXksIDE1LzE1IGRhbmcgdXkgdmllbiBuaGEgbWF5IGtob25nIG5o YXQgdHJpLCANCm5ndW9pIGR1b2Mgb25nIFBoYW0gVGhhbmggQmluaCBnaWFvIGdpdSBjaHVjIGdp YW0gZG9jIHRoYXkgb25nIFBoYW0gRGluaCBEYSBjdW5nIA0KdHUgY2hvaSBraG9uZyBuaGFuIG5o aWVtIHZ1LiBEYWMgYmlldCwgVGhhbmggdXkgSGFpIFBob25nLCBkb24gdmkgcXVhbiBseSBvbmcg UGhhbSANCkRpbmggRGEgdHJvbmcgc2luaCBob2F0IERhbmcsIGN1bmcgbmdvIG5nYW5nIHZpIGto b25nIGR1b2MgYmlldCBnaSENCg0KTGEgbyBjaG8sIGNvbiB0YXUgMTEuNTAwIHRhbiBub2kgdHJl biBkdW9jIFRvbmcgY29uZyB0eSBjb25nIG5naGllcCB0YXUgdGh1eSBWTiB0aHVlIA0KZG9uZyBr aG9uZyBwaGFpIGRlIGJhbiBjaG8gbW90IGNvbmcgdHkgdmFuIHRhaSBiaWVuLCBtYSBjaG8gbW90 IGNvbmcgdHkgdGhhbmggdmllbiBtb2kgDQp0aGFuaCBsYXAgdmEgY2h1YSB0dW5nIGtpbmggZG9h bmggdmFuIHRhaSBiaWVuLiBWaWVjIGRvbmcgdGF1IDExLjUwMCB0YW4ga2hpIGRvIGR1b2MgDQp4 ZW0gbmh1IGNodXllbiB0aWVuIHR1IHR1aSBubyBzYW5nIHR1aSBraWEgbWEga2hvbmcgdGluaCBk ZW4gaGlldSBxdWEga2luaCB0ZS4gNiBuYW0gc2F1IA0KZG8sIGtoaSBjbyB0aWVuIHR1IHRyYWkg cGhpZXUgQ2hpbmggcGh1LCBWaW5hc2hpbiBtdWEgdGF1IEhvYSBTZW4gdmEgZ2lhbyBjaG8gY2hp bmggDQpjb25nIHR5IHRoYW5oIHZpZW4gbm8sIG5heSBkYSBkb2kgdGVuIGxhIENvbmcgdHkgdmFu IHRhaSB2aWVuIGR1b25nIFZpbmFzaGluLCBkZSByb2kgdGhhdCANCmJhaSBlIGNoZSBuaHUgbW9p IG5ndW9pIGRhIGJpZXQuDQoNClBobyB0cnVvbmcgdGhhbmggdGhlIA0KDQpUYWkgc2FvIHBoYWkg a2hvaSBjb25nIGR1bmcgbmdheSAxLjQuMjAwMSB0cm9uZyBraGkgY2h1YSBjbyB0aGlldCBrZSBj aGluaCB0aHVjPyBEb24gDQpnaWFuLCBvbmcgUGhhbSBUaGFuaCBCaW5oIGtoaSBkbyBtdW9uIHBo byB0cnVvbmcgdGhhbmggdGhlIHRydW9jIGNhYyBxdWFuIGNodWMgQm8gDQpHVFZUIHZhIENoaW5o IHBodS4gU3UgdGhpZXUgdHJ1bmcgdGh1YyBraGkgY2h1YSBjbyBiYW4gdmUgbWEgdmFuIGRvbmcg dGF1IDExLjUwMCB0YW4gDQpjaGFuZyBraGFjIG5hbyB2aWVjIFZpbmFzaGluIG11YSB0YXUgSG9h IFNlbiBoYW5nIG5naGluIHRpIGRvbmcgbWEgQm8gR1RWVCBraG9uZyANCmR1b2MgYmlldC4gDQoN ClZpZWMgb25nIFBoYW0gVGhhbmggQmluaCB0dXkgaHVuZyBjYWNoIGNodWMgdmEgcGhvbmcgY2h1 YyBjaG8gY2FwIGR1b2kgdHJvbmcgdnUgDQpkb25nIHRhdSAxMS41MDAgdGFuIGNhY2ggZGF5IDkg bmFtIGN1bmcga2hpZW4gbmd1b2kgdGEgbGllbiB0dW9uZyBkZW4gdmllYyBvbmcgbmF5IHR1IA0K dHVuZywgdHUgdGFjIHRyb25nIHZpZWMgY2F0IG5oYWMgbmd1b2kgdGhhbiB2YW8gY2FjIHZpIHRy aSBxdWFuIHRyb25nIG1hIFV5IGJhbiBLaWVtIA0KdHJhIFRydW5nIHVvbmcgRGFuZyBkYSBrZXQg bHVhbjogIkRvbmcgY2hpIFBoYW0gVGhhbmggQmluaCBjb24gYm8gbmhpZW0gY29uIHRyYWkgdmEg ZW0gDQpydW90IGxhbSBkYWkgZGllbiBwaGFuIHZvbiBjdWEgTmhhIG51b2MsIGRhbSBuaGllbSBu aGlldSBjaHVjIHZ1IHF1YW4gdHJvbmcgdHJhaSBxdXkgDQpkaW5oIGN1YSBEYW5nIHZhIE5oYSBu dW9jIi4gDQoNClRyYSBsb2kgY2F1IGhvaSBjdWEgYmFvIGNoaSB0YWkgY3VvYyBob3AgYmFvIG5n YXkgNC44IHZlIHZpZWMgY28gaGF5IGtob25nIHN1IGJ1b25nIGxvbmcgDQp0aGFuaCBraWVtIHRy YSBWaW5hc2hpbiBkYW4gdG9pIHNhaSBwaGFtLCBvbmcgVHJhbiBWYW4gVHJ1eWVuLCBUb25nIHRo YW5oIHRyYSBDaGluaCANCnBodSwgY2hvIGJpZXQgZGEgY28gdGF0IGNhIDExIGN1b2MgdGhhbmgg dHJhLCBraWVtIHRyYSwga2llbSB0b2FuIFZpbmFzaGluIHR1IG5nYXkgdGhhbmggDQpsYXAgdmEg InBoYXQgaGllbiByYXQgbmhpZXUgdmFuIGRlIGNhbiBjaGFuIGNoaW5oLCB1b24gbmFuLCB2YW4g ZGUgbGEgY2h1YSBjbyBiaWVuIHBoYXAgDQp4dSBseSBuZ2hpZW0gY3VuZyBuaHUgY2h1YSBraWVu IHF1eWV0IHlldSBjYXUgZG9uIHZpIG5heSBjaGFuIGNoaW5oIG1vdCBjYWNoIHRyaWV0IA0KZGUi Lg0KDQpLaG8gY28gdGhlIG5vaSByYW5nIG5ldSBuaHVuZyBzYWkgcGhhbSBjdWEgb25nIFBoYW0g VGhhbmggQmluaCB0cm9uZyB2dSBkb25nIA0KY29uIHRhdSAxMS41MDAgdGFuIGtlIHRyZW4gZHVv YyB4dSBseSB0cmlldCBkZSB0aGkgVmluYXNoaW4ga2hvbmcgbGFtIHZhbyANCmtobyBraGFuIG5o dSBoaWVuIG5heS4gTmh1bmcgcm8gcmFuZyBsYSBkYXUgaGlldSBzYWkgcGhhbSBjdWEgbW90IGNh biBibyANCmhhbmggeHUgYmF0IGNoYXAgcXV5IGRpbmgga3kgdGh1YXQsIG5ndXllbiB0YWMgcXVh biBseSBraW5oIHRlLCBxdWFuIGx5IGNhbiBibyANCnZhIGtob25nIGNoYXAgaGFuaCBkaWV1IGxl IERhbmcgbWEgVGhhbmggTmllbiBjYW5oIGJhbyBuaHVuZyBraG9uZyBkdW9jIHh1IGx5IA0KZGEg ZGFuIGxvbiB2YSBnYXkgdG9uIHRoYXQgbmFuZyBuZS4gRG8gbGEgbW90IGJhaSBob2MgZGFuZyBz dXkgbmdhbSB0cm9uZyANCnF1YW4gbHkga2luaCB0ZSB2YSBjb25nIHRhYyBjYW4gYm8uIA0KDQpo dHRwOi8vd3d3LnZpZXQucmZpLmZyL3ZpZXQtbmFtLzIwMTAwNzE0LWNhYy1jYXAtY2FvLWhvbi1j dW5nLXBoYWktY2hpdS10cmFjaC1uaGllbS10cm9uZy12dS12aW5hc2hpbiBUaGFuaCBQaHVvbmcg MTQvNy8yMDEwIA0KDQpUcnVuZyB1b25nIERhbmc6IENhYyBjYXAgY2FvIGhvbiBjdW5nIHBoYWkg Y2hpdSB0cmFjaCBuaGllbSB0cm9uZyB2dSBWaW5hc2hpbiANCg0KQ2h1IHRpY2ggVmluYXNoaW4s IG9uZyBQaGFtIFRoYW5oIEJpbmggZGEgYmkgZGluaCBjaGkgY2h1YyB2dSBkZSBkaWV1IHRyYSwg bmh1bmcgY2FjIA0KY2FwIGNhbyBob24gY3VuZyBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gdmUgbmh1 bmcgc2FpIHBoYW0gdGFpIHRhcCBkb2FuIG5heS4gVnUgDQpWaW5hc2hpbiBtb3QgbGFuIG51YSBj aG8gdGhheSB2aWVjIHRoYW5oIGxhcCB0YXAgZG9hbiBtb3QgY2FjaCBndW9uZyBlcCBkYSBkYW4g ZGVuIGhhdSBxdWEgbmh1IHRoZSBuYW8uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v bmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDUwMjMxMzYuYXNweCBOZ3V5ZXQgTWluaCAwNS8wOC8y MDEwIDI6MzEgDQoNClRydW5nIHVvbmcgRGFuZzogU2FpIHBoYW0gbyBWaW5hc2hpbiBkbyBjaHUg cXVhbiBsYSBjaGluaCAgIA0KDQpOYW5nIGx1YyBxdWFuIHRyaSBkb2FuaCBuZ2hpZXAgdmEgZHUg YmFvIHlldSBrZW0sIHRyaW5oIGRvIGNhbiBibyBsYW5oIGRhbyBxdWFuIGx5IA0KY2h1YSBkYXAg dW5nIHlldSBjYXU7IHF1YW4gbHkgZGF1IHR1LCBxdWFuIGx5IHRhaSBjaGluaCBsb25nIGxlbywg a2VtIGhpZXUgcXVhLCANCm5oaWV1IHF1eWV0IGRpbmggdHJhaSBxdXkgZGluaCBjdWEgcGhhcCBs dWF0Li4uDQoNCihPbmcgTmd1eWVuIFNpbmggSHVuZyAtIFBobyB0aHUgdHVvbmcgdGh1b25nIHRy dWMgY2hpbmggcGh1LCBuZ3V5ZW4gYm8gdHJ1b25nIGJvIHRhaSBjaGluaCwgDQpraG9uZyBob2Fu IHRoYW5oIG5oaWVtIHZ1OyBraG9uZyBkdSBuYW5nIGx1YyBjb25nIHRhYzsgcXVhbiBseSBuaGEg bnVvYyB2YSB0aHVjIGhpZW4gDQpxdXllbiBjaHUgc28gaHV1IGN1YSBjaGluaCBwaHUgZG9pIHZv aSBETk5OLCB0YXAgZG9hbiBraW5oIHRlIG5vaSBjaHVuZyB2YSBWaW5hc2hpbiANCm5vaSByaWVu ZyAibmhpZXUgYmF0IGNhcCwga2VtIGhpZXUgcXVhIjsgYmFuIGhhbmggcXVpIGRpbmggdmEgdGh1 YyBoaWVuIHF1eWVuIHZhIA0KdHJhY2ggbmhpZW0gY2h1IHNvIGh1dSBjaHVhIHJvLCBsb25nIGxl bywgc28gaG87IGJhbiBoYW5oIGNvIGNoZSB0aGFtIGRpbmgsIGtpZW0gdHJhLCANCmdpYW0gc2F0 LCB0aGFuaCB0cmEsIGtpZW0gdG9hbiwgcXVhbiBseSB0YWkgY2hpbmgga2VtIGhpZXUgcXVhOyBs YW0gbmdvLCBiYW8gdGh1LCANCmNoYW0gdGllcCB0aHUgeSBraWVuIGdvcCB5IGR1bmcgZGFuOyB5 ZXUga2VtIHRyb25nIHRvIGNodWMgdGh1YyBoaWVuIG5oaWVtIHZ1LCANCnlldSBrZW0gdmUgYm8g bmhpZW0gdmEgcXVhbiBseSBjYW4gYm8sIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZy4uLiBDdSB0 cmkga2llbiBuZ2hpIA0KQ2hpbmggUGh1LCBRdW9jIGhvaSwgVHJ1bmcgdW9uZyBraWVtIHRyYSwg a2llbSBkaWVtLCBreSBsdWF0IG9uZyBOZ3V5ZW4gU2luaCBIdW5nIFBobyB0aHUgdHVvbmcgdGh1 b25nIHRydWMgY2hpbmggcGh1LCBuZ3V5ZW4gYm8gdHJ1b25nIGJvIHRhaSBjaGluaC4pICANCg0K aHR0cDovL2Rhbmx1YW4ub3JnL25vZGUvNjMwOSBIbyBHdW9tIGd1aSAwNC8wOS8yMDEwIAkNCg0K VHJ1bmcgdW9uZyBEYW5nOiAzMSB0dW9uZyBsaW5oLCBzaSBxdWFuIGNhbyBjYXAgZ3VpIGtpZW4g bmdoaSBjaG8gQm8gQ2hpbmggdHJpIHZhIGNhYyB1eSB2aWVuIHRydW5nIHVvbmcgRGFuZyANCg0K KioqKg0KQ29uZyBob2EgeGEgaG9pIGNodSBuZ2hpYSBWaWV0IE5hbSANCkRvYyBsYXAgLSBUdSBk byAtIEhhbmggcGh1YyANCg0KSGEgTm9pIG5nYXkgMjkgLSA4IC0gMjAxMA0KDQpLaW5oIGd1aTog Qm8gY2hpbmggdHJpIHZhIGNhYyB1eSB2aWVuIHRydW5nIHVvbmcgRGFuZyAgDQoNClRyb25nIGtp ZW4gbmdoaSB0cnVvYywgY2h1bmcgdG9pIGRhIG5ldSBuaHVuZyBraHV5ZXQgZGllbSBjdWEgNCBk b25nIGNoaSBOb25nIGR1YyANCk1hbmgsIE5ndXllbiB0YW4gRHVuZywgTmd1eWVuIHBodSBUcm9u ZywgVG8gaHV5IFJ1YSBkZSBjYWMgZG9uZyBjaGkgdHUga2llbSBkaWVtIA0KdHJ1b2MgYmFuIGNo YXAgaGFuaCBUcnVuZyBVb25nIHhlbSB4ZXQuDQoNCjEtIFZlIGRvbmcgY2hpIE5ndXllbiB0YW4g RHVuZzogTmdvYWkgbmh1bmcgc2FpIGxhbSB2YSBiYXQgY2FwIG1hIGxhbiB0cnVvYyBjaHVuZyB0 b2kgDQpkYSBuZXUsIG5heSBjaHVuZyB0b2kgbmV1IHRoZW0gbW90IHZhbiBkZSBtb2k6IERvIGxh IGxpZW4gcXVhbiBkZW4gdnUgVmluYXNoaW4uIE5odSANCmJhbyBjYW8gY3VhIEJhbiBraWVtIHRy YSBkYSBuZXUgUGhhbSBUaGFuaCBCaW5oIGxvbmcgcXV5ZW4sIGRvaSB0cmEsIGxhbSBuaGlldSB2 aWVjIA0Kc2FpIHRyYWksIGxhbSB0aGF0IHRob2F0IGRlbiA4Ni4wMDAgbmdoaW4gdHkgZG9uZyBj dWEgbmhhIG51b2MgdGhpIGRhIHJvLiBUaGVvIGNodW5nIHRvaSANCkJpbmggcGhhaSBiaSB0cnV5 IHRvIHZhIHh1IGx5IHRoZW8gcGhhcCBsdWF0LiBOaHVuZyBQaGFtIFRoYW5oIEJpbmggbW9pIGNo aSBsYSB0b2kgcGhhbSANCnRydWMgdGllcCwgY2hpbmggVGh1IHR1b25nIE5ndXllbiBUYW4gRHVu ZyBtb2kgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbSBsb246IFRodSANCnR1b25nIE5ndXllbiB0 YW4gRHVuZyBsYXAgcmEgdGFwIGRvYW4gVmluYXNoaW4sIFRodSB0dW9uZyBnaWFvIGNobyBQaGFt IFRoYW5oIEJpbmggDQpuYW0sIFRodSB0dW9uZyByb3QgdGllbiBuaGEgbnVvYyBjaG8gVmluYXNo aW4sIFZpbmFzaGluIGxhIHRhcCBkb2FuIHRydWMgdGllcCBkbyBDaGluaCANCnBodSBxdWFuIGx5 LCBQaGFtIFRoYW5oIEJpbmggYm8gbmhpZW0gY29uLCBlbSwgdm8gdmFvIG5odW5nIGNodWMgdnUg cXVhbiB0cm9uZywgDQpUaHUgdHVvbmcgY3VuZyBraG9uZyBiaWV0IGhvYWMgcGhvIG1hYywgUGhh bSBUaGFuaCBCaW5oIGxhbSBhbiB0aHVhIGxvLCBiYW8gY2FvIGRvaSANClRodSB0dW9uZyBjbyBi aWV0IGtob25nPyBEZW4gbmF5LCBWaW5hc2hpbiBubyA4MC4wMDAgdHksIHNvIHRpZW4ga2hvbmcg bG8gZGkgZGF1PyANClh1b25nIHNvbmcsIHh1b25nIGJpZW4gaGF5IHZhbyB0dWkgbmh1bmcgYWk/ IFRyb25nIGtoaSBraG9uZyBjbyB0aWVuIGRlIHhheSBtb3QgY2FpIA0KY2F1IG5obyBjaG8gY29u IGVtIGRvbmcgYmFvIGRhbiB0b2MgZGkgaG9jLCBwaGFpIGxlbyBkYXkgcXVhIHNvbmcsIG5oaWV1 IGx1YyByb3QgeHVvbmcgDQpzb25nLiBLaG9uZyB4YXkgdGhlbSBkdW9jIG1vdCBzbyB0cnVvbmcg bWFtIG5vbiBjb25nIGRlIGRvbmcgYmFvIHBoYWkgeGVwIGhhbmcgDQpkYWksIGNoZW4gY2h1YyBj aGF5IHRoaSBuaGF1IGRlIHhpbiBtb3QgY2hvIGNobyBjb24uLi52YSBjb24gYmFvIG5oaWV1IGNv bmcgdmllYyBidWMgDQp0aGlldCBraGFjLiBUaHUgdHVvbmcgY28gY2F1IGxhaSBWaW5hc2hpbiBk ZSB0cm9uIHRyYW5oIHRyYWNoIG5oaWVtLiANCg0KMi0gVmUgcGhvIFRodSB0dW9uZyBOZ3V5ZW4g c2luaCBIdW5nOiBWb2kgY3VvbmcgdmkgUGhvIFRodSB0dW9uZyB0aHVvbmcgdHJ1YywgZG9uZyAN CmNoaSBjdW5nIHBoYWkgbGllbiBkb2kgY2hpdSB0cmFjaCBuaGllbSB2ZSB2dSBWaW5hc2hpbi4N CkRvbmcgY2hpIGxhIG5ndW9pIGhhbmcgaGFpIG5oYXQgcXV5ZXQgcGhhIGNobyBkdW9jIGhvaSB0 cnVvbmcgQmEgRGluaCBsaWNoIHN1LCBiYXQgY2hhcCANCnN1IHBoYW4gZG9pIGN1YSBuaGFuIGRh biwgY3VhIGxhbyB0aGFuaCBjYWNoIG1hbmcsIGN1dSBjaGllbiBiaW5oLCB0cmkgdGh1YywgbGFp IGNvbiBnaWFpIA0KdGhpY2ggdHV5IHRpZW4gc2UgY2h1cCBhbmggdHJpbmggYmF5IHRyb25nIGhv aSB0cnVvbmcgbW9pIHZhbiBjb24gZGkgdGljaC4gVmF5IG11b24gcGhhIA0KS2h1ZSBWYW4gQ2Fj IHJvaSBjaHVwIGFuaCBkZSBsYWkgY3VuZyBkdW9jIGE/IA0KDQpUb24gYmFvIG5oaWV1IHRpZW4g Y3VhIE5oYSBudW9jIHRodWUgcGhhIHZvaSBob2kgdHJ1b25nIEJhIERpbmggcm9pIGRlIGRhdCBr aG9uZyBnYW4gDQpiYSBuYW0gbGFpIGRpIHRodWUgaG9pIHRydW9uZyBkZSBob3AgUXVvYyBIb2ku IERvIGxhIGxhbmcgcGhpIGxvbiBjb25nIHF1eSBtb3QgY2FjaCB2byANCmx5LiBEaWV1IG1hdSB0 aHVhbiBsYSBkZW4gQmFjaCBNYSBsYSBkaSB0aWNoIGxpY2ggc3UgdGhpIGR1b2MgdG9uIHRhbywg bmhhIHRobyBobyBjdWEgbW90IA0KZG9uZyBobyBjbyBuaGlldSBkYW5oIG5oYW4ga2hvYSBiYW5n IHRoaSBkdW9jIGhvIHRybyB0b24gdGFvIGxhbSBkaSB0aWNoIGxpY2ggc3UsIHRoZSBtYSANCmhv aSB0cnVvbmcgQmEgRGluaCBkYSBtYXkgbGFuIGhvcCBEYWkgSG9pIERhbmcsIG5oaWV1IGxhbiBo b3AgUXVvYyBIb2ksIG1vdCBsYW4gaG9wIA0KSG9pIG5naGkgRGllbiBIb25nIHRob2kgY2hvbmcg TXksIG5vaSBxdWFuIHRoaSBoYWkgSG8gY2h1IFRpY2ggZGUgY2EgbnVvYyB2YSBRdW9jIHRlIA0K ZGVuIHZpZW5nIC4uLiBsYSBtb3QgZGkgdGljaCBsaWNoIHN1IHF1YW4gdHJvbmcgYmFjIG5oYXQg Y28gbW90IGtob25nIGhhaSB0aGkgbGFpIHBoYSBkaSEgDQpOZ3VvaSBjbyBsdW9uZyB0cmkga2hv bmcgc2FvIGhpZXUgbm9pLg0KVGFpIFF1b2MgSG9pLCBraGkgY28gZGFpIGJpZXUgaG9pOiBPbmcg Y2FuIGJvIG5vIGNvIHNhaSBwaGFtIHNhbyBraG9uZyB0aGkgaGFuaCBreSANCmx1YXQ/IFBobyBU aHUgVHVvbmcgdHJhIGxvaTogS3kgbHVhdCB0aGkga2hvbmcgY28gbmd1b2kgbGFtIHZpZWMhIFRo YXQgbGEgdHV5IHRpZW4sIGNvaSANCnRodW9uZyBkb2kgdGhvYWkgdmEgdG8gcmEgdHJpbmggZG8g dmUgY29uZyB0YWMgY2FuIGJvIHRoYXAuIENhYyBkb25nIGNoaSBUcnVvbmcgQ2hpbmgsIA0KUGhh bSBWYW4gRG9uZywgTGUgRHVhbiBtYXQgY29uIGNvIG5ndW9pIGxhbSB0aGF5IHZpZWMga2lhIG1h ISBHaW9pIGNodXllbiBtb24gbmh1IA0KR2lhbyBTdSBUb24gVGhhdCBUdW5nIG1hdCBjbyBuZ3Vv aSB0aGF5IGR1b2MsIGh1b25nIGNoaS4uLg0KRG9uZyBjaGkgTmd1eWVuIFNpbmggSHVuZyBjbyB4 dSBodW9uZyBhcCBkYXQgdmEgaGFuIGNoZSBkYW4gY2h1OiANClZlIGR1IGFuIGR1b25nIHNhdCBj YW8gdG9jIHRyb25nIGtoaSB0aGFvIGx1YW4gZGFpIGJpZXUgY29uIGNvIHkga2llbiBraGFjIHRo aSBQaG8gdGh1IA0KdHVvbmcgZ2lvIHRheSBjaGVtIHh1b25nLCB0dXllbiBibyBraG9uZyB0aGUg a2hvbmcgbGFtIGR1b25nIHNhdCBjYW8gdG9jLiBEbyBsYSB0aGlldSANCmxlIGRvIHRydW9jIFF1 b2MgSG9pIHZhIGxhIGFwIGRhdC4NClRyb25nIGtoaSBuZ2hpIHF1eWV0IHZhIGxhbmggZGFvIG5v aSBtbyByb25nIGRhbiBjaHUgbyBjbyBzbyB0aGkgUGhvIFRodSBUdW9uZyANCk5ndXllbiBTaW5o IEh1bmcgbmdoaSByYSBzYW5nIGtpZW4gY2hvIGxhbSB0aGkgZGllbSBibyBIb2kgZG9uZyBuaGFu IGRhbiBRdWFuLCANCkh1eWVuLCBQaHVvbmcgKFZpIHBoYW0gaGllbiBwaGFwKS4gTWEgZGEgbGFt IHRoaSBkaWVtIGR1IHRoZSBuYW8gY3VuZyB0b25nIGtldCBsYSB0b3QgDQpob24sIGhheSBob24u IFRoZSBsYSBuZ3VvaSBkYW4gbWF0IHF1eWVuIGJhdSByYSBjbyBxdWFuIHRoYXkgbWF0IG1pbmgg ZGUgZ2lhbSBzYXQgY28gDQpxdWFuIGhhbmggY2hpbmggdHJ1YyB0aWVwIGtpZW4gbmdoaSwgcGhl IGJpbmggY2h1IHRpY2gsIHBobyBjaHUgdGljaCBRdWFuLCBIdXllbiwgDQpQaHVvbmcgdHJvbmcg Y2FjIGt5IGhvcCwgaG9hYyBiYWkgbWllbiBobyBraGkgY28gc2FpIHBoYW0gbmdoaWVtIHRyb25n LiBCYW8gcmFuZyB0b2FuIA0KZGFuIHRyb25nIFF1YW4sIEh1eWVuLCBQaHVvbmcgZHVvYyBiYXUg dHJ1YyB0aWVwIGNodSB0aWNoIHRoZSBsYSBkYW4gY2h1IGNodSBnaT8gTW9pIA0Kbmd1b2kgZGFu IGRldSBjbyBxdXllbiBnaWFtIHNhdCwga2llbiBuZ2hpIHBoZSBiaW5oIGNoaW5oIHF1eWVuLiBE byBsYSBub2kgY2hvIHJhIHZlIA0Kbmd1eWVuIHRhYyB0aGUgdGhvaSwgdGh1YyB0ZSB0cmVuIGdp b2kgdGhpZXUgb25nLCBiYSBuYW8gdW5nIGN1IG5ndW9pIGRhbiBuYW8gY28gYmlldCBhaSBsYSAN CmFpLCBjdW5nIGJvIHBoaWV1IGNobyB4b25nIHRob2kuIA0KQ2h1IHRpY2ggY28gc2FpIHBoYW0g ZGVuIG1heSBjdW5nIGtob25nIHRoZSBob3AgY3UgdHJpIHRvYW4gUXVhbiwgSHV5ZW4sIFBodW9u ZyBkZSANCmJhaSBtaWVuIGR1b2MuIENvbiBub2kgcmFuZyB0cnVvbmcgaG9wIGRvIGRhIGNvIGNh cCB0cmVuIGNhY2ggY2h1Yy4gTmh1bmcgY2FwIHRyZW4gYmFuIA0KbmhpZXUgdmllYyB0aHVvbmcg aXQgc2F0IHRodWMgdGUgYmVuIGR1b2ksIHRodW9uZyBkdW9jIG5naGUgY2h1IHRpY2ggY2FwIGR1 b2kgYmFvIGNhbywgDQpwaGFuIG5oaWV1IGxhIHRoYW5oIHRpY2gsIGhvbiBudWEgY2FwIHRyZW4g Y3VuZyBjbyBpdCBuZ3VvaSB0aGlldCBkaWVuIHZvIHR1LiANCkFpIGN1bmcgYmlldCBkZW4gbmh1 IHZpIGtoYWkgcXVvYyBjb25nIHRoYW4gRGFpIFR1b25nIFZvIE5ndXllbiBHaWFwIGd1aSBiYW8g bmhpZXUgDQp0aHUgY2hvIGxhbmggZGFvIERhbmcgdmEgUXVvYyBIb2kgY29uIGtob25nIGR1b2Mg Y2h1IHksIHRoaSBuZ3VvaSBkYW4gZ3VpIHRodSBraWVuIA0KbmdoaSwgcGhlIGJpbmgsIHRvIGNh byBjaHUgdGljaCB0aGkgZGkgZGVuIGRhdSwga2hvbmcga2hlbyBjb24gYmkgdHJ1IGRhcCBkaSBu dWEga2lhLiBDdSANCnRoZW8gdHUgdHVvbmcgdmEgeHUgaHVvbmcgY3VhIFBobyB0aHUgdHVvbmcg Tmd1eWVuIFNpbmggSHVuZyB0aGkgZG9jIGRvYW4sIGNodXllbiANCnF1eWVuIGNhbmcgZGUgYmUg cGhhdCB0cmllbi4NCg0KVHJvbmcgbmhpZW0ga3kgY3VhIGRvbmcgY2hpIE5ndXllbiBUYW4gRHVu ZyB2YSBkb25nIGNoaSBOZ3V5ZW4gU2luaCBIdW5nLCBkYXQgDQpydW9uZyBtYXQgcmF0IG5oaWV1 IGRvIGRhdSB0dSBkaWEgb2MgcXVhIG5oaWV1LCBkbyBkaWEgcGh1b25nIGNobyB0aHVlIGRhdCBk YWkgaGFuIGN1bmcgDQpuaGlldSB2YSAxNDAgc2FuIGdvbGQ7IHJ1bmcgbWF0IGN1bmcgbmhpZXUg ZG8gbGFtIHRhYyB0YW4gcGhhIGtob25nIHRydW5nIHRyaSwgZG8gY2hheSANCnJ1bmcsIHZhIGNo byB0aHVlIHJ1bmcgZGFpIGhhbjsga2hvYW5nIHNhbiBiaSBraGFpIHRoYWMgdHJvbSBidWEgYmFp OyBsYW0gcGhhdCBkb25nIHRpZW4gDQptYXQgZ2lhLCBuZW4gZ2lhIGNhIHRhbmcgdm90LCBob2Mg cGhpIHRhbmcsIHZpZW4gcGhpIHRhbmcsIG5ndW9pIG5naGVvIGtob24ga2hvOyBuaGFwIA0Kc2ll dSBoYW5nIG5hbSBuaGlldSwgZHUgdHJ1IG5nb2FpIHRlIG1vbmcsIGhhbmcgc2FuIHh1YXQgdHJv bmcgbnVvYyBraG8gY2FuaCB0cmFuaCwgIA0KdGhhbSBuaHVuZyBraG9uZyBjaG9uZyBkdW9jIG5o dSBsb2kgaHVhIGJhbiBkYXUgbmVuIGhhaSBkb25nIGNoaSBtYXQgdGluIG5oaWVtIHZvaSANCmRh bi4gTmdoaSByYW5nIGNhYyBkb25nIGNoaSBuZW4gdHUga2llbSBkaWVtIHRydW9jIEJhbiBjaGFw IGhhbmggVHJ1bmcgdW9uZyB2YSB4aW4gdHUgDQpuaGllbS4NCktpbmggY2hhbyENCk5odW5nIGNh biBibyBjYWNoIG1hbmcgbGFvIHRoYW5oIHZhIG5odW5nIGRhbmcgdmllbiB0YW0gaHV5ZXQgdm9p IERhbmcgdm9pIERhbg0KDQpEQU5IIFNBQ0ggVFVPTkcgTElOSCwgU0kgUVVBTiBDQU8gQ0FQIFRI QU0gR0lBIEtJRU4gTkdISSANCjEtIFRodW9uZyB0dW9uZyBOZ3V5ZW4gTmFtIEtoYW5oIC0gbmd1 eWVuIFVWVFVELCBuZ3V5ZW4gUGhvIENodSBuaGllbSBUQ0NULg0KMi0gVHJ1bmcgdHVvbmcgTmd1 eWVuIFF1b2MgVGh1b2MgLSBuZ3V5ZW4gVVZUVUQsIG5ndXllbiBUdSBsZW5oIFFLNCwgbmd1eWVu IA0KUGhvIENodSB0aWNoIEhvaSBDQ0JUVy4NCjMtIFRoaWV1IHR1b25nIE5ndXllbiBUcm9uZyBW aW5oLCBsYW8gdGhhbmggY2FjaCBtYW5nLCBuZ3V5ZW4gVVZUV0QsIG5ndXllbiANCmNoaW5oIHV5 IFFLNCwgbmd1eWVuIERhaSBzdSBWaWV0IE5hbSB0YWkgVHJ1bmcgUXVvYy4NCjQtIFRydW5nIHR1 b25nIExlIEh1dSBEdWMsIG5ndXllbiBwaG8gVHUgbGVuaCBRSzsgbmd1eWVuIEN1YyB0cnVvbmcg Q3VjIHRhYyBjaGllbiANCi0gQm8gVFRNLg0KNS0gVHJ1bmcgdHVvbmcgTmd1eWVuIFh1YW4gTWF1 LCBsYW8gdGhhbmggY2FjaCBtYW5nLCBuZ3V5ZW4gQ2hpbmggdXkgUEstIEtRLCANCm5ndXllbiBw aG8gY2h1IG5oaWVtIFVCS1QgRGFuZyB1eSBRdWFuIHN1IFRXLg0KNi0gVGhpZXUgdHVvbmcgSHV5 bmggRGFjIEh1b25nLCBsYW8gdGhhbmggY2FjaCBtYW5nLCBuZ3V5ZW4gVGh1IHRydW9uZyBMRCAt IFRCIC0gDQpYSDsgbmd1eWVuIENoaW5oIHV5IGtpZW0gVHUgbGVuaCBxdWFuIHRpbmggbmd1eWVu IFZpZXQgTmFtIHRhaSBMYW8uDQo3LSBUaGlldSB0dW9uZyBOZ3V5ZW4gSHV1IEFuaCwgbGFvIHRo YW5oIGNhY2ggbWFuZywgbmd1eWVuIEN1YyB0cnVvbmcgQ3VjIGRvaSANCm5nb2FpIEJvIFF1b2Mg cGhvbmcuDQo4LSBUaGlldSB0dW9uZyBUcmFuIE1pbmggRHVjLCBjYW4gYm8gdGllbiBraG9pIG5n aGlhLCBuZ3V5ZW4gcGhvIFR1IGxlbmggcXVhbiBraHUgVHJpIA0KVGhpZW4sIFBobyBWaWVuIHRy dW9uZyBIb2MgdmllbiBIYXUgY2FuLg0KOS0gVGhpZXUgdHVvbmcgVG8gVGh1YW4sIGNhbiBibyB0 aWVuIGtob2kgbmdoaWEsIG5ndXllbiBQaG8gVHUgbGVuaCAtIFRoYW0gbXV1IA0KdHJ1b25nIHBo YW8gYmluaC4NCjEwLSBUaGlldSB0dW9uZyBOZ3V5ZW4gSHV1IFllbiwgY2FuIGJvIHRpZW4ga2hv aSBuZ2hpYSwgbmd1eWVuIFR1IGxlbmggYmluaCBjaHVuZyANCmNvbmcgYmluaC4NCjExLSBUaGll dSB0dW9uZyBCdWkgUXV5LCBuZ3V5ZW4gUGhvIFR1IGxlbmggVGFuZyB0aGlldCBnaWFwLg0KMTIt IE1haSBWeTogbGFvIHRoYW5oIGNhY2ggbWFuZywgbmd1eWVuIFRodSB0cnVvbmcgQm8gVmFuIEhv YSAtIFRob25nIHRpbiwgNzQgbmFtIA0KaG9hdCBkb25nIGNhY2ggbWFuZywgSHVhbiBjaHVvbmcg RG9jIGxhcCBIYW5nIDMuDQoxMy0gVnUgVGh1YW4sIENhbiBibyBsYW8gdGhhbmggY2FjaCBtYW5n LCBIdWFuIGNodW9uZyBEb2MgbGFwIEhhbmcgMy4NCjE0LSBEYWkgdGEgVHJhbiBCYSwgQ0NCLCA4 NSB0dW9pIGRvaSwgNjQgdHVvaSBkYW5nLCA0NiB0dW9pIHF1YW4uDQoxNS0gRGFpIHRhIFBoYW0g SGllbiwgbGFvIHRoYW5oIGNhY2ggbWFuZy4NCjE2LSBEYWkgdGEgTmd1eWVuIFZhbiBUdXllbiwg Y2FuIGJvIHRpZW4ga2hvaSBuZ2hpYS4NCjE3LSBEYWkgdGEgVHJhbiBOZ3V5ZW4sIGNhbiBibyB0 aWVuIGtob2kgbmdoaWEuDQoxOC0gRGFpIHRhIE5ndXllbiBIdXkgVmFuIChLaW0gU29uKSwgY2hp ZW4gc2kgVmlldCBOYW0gZ2lhaSBwaG9uZyBxdWFuLg0KMTktIERhaSB0YSBOZ29jIFRhdCwgODUg dHVvaSBkb2ksIDYwIG5hbSB0dW9pIGRhbmcuDQoyMC0gRGFpIHRhIExlIFZhbiBUcm9uZywgY2hp ZW4gc2kgYmkgdHUgZGF5Lg0KMjEtIERhaSB0YSBMZSBNYWkgQW5oLCBDQ0IsIGx1YXQgZ2lhLCBj YW4gYm8gVFcgRG9hbiwgY2FuIGJvIENQIDI1IFRXLCBDQiBWaWVuIEtpZW0gc2F0IFRvaSBjYW8u DQoyMi0gRGFpIHRhIFRhIENhbyBTb24sIE5ndXllbiBwaG8gdGhhbSBtdXUgdHJ1b25nIFFLMi4N CjIzLSBEYWkgdGEgVHJhbiBUaGUgRHVvbmcsIENodSBuaGllbSBwaGFvIGJpbmggUXVhbiBraHUg VGh1IERvLg0KMjQtIEhvIFNpIEJhbmcsIGh1eSBoaWV1IDYwIG5hbSB0dW9pIGRhbmcsIGNhbiBi byB0aWVuIGtob2kgbmdoaWEsIDg1IG5hbSB0dW9pIGRvaSwgNjMgbmFtIHR1b2kgZGFuZy4NCjI1 LSBOZ3V5ZW4gVmFuIEJlLCA4NiB0dW9pIGRvaSwgbGFvIHRoYW5oIGNhY2ggbWFuZyB0aWVuIGto b2kgbmdoaWEsIHRpZW4gYm9pIENvbmcgQW4gS2hhbmggSG9hLCBjaGllbiBzaSAyMy0xMCBtYXQg dHJhbiBOaGEgVHJhbmcuDQoyNi0gTGUgSHV1IEhhLCA2NCBuYW0gdHVvaSBkYW5nLCBUdSBsZW5o IGNoaWVuIGRpY2ggVGF5IEJhYyAuDQoyNy0gTmd1eWVuIFRoaSBDdW9uZywgQ2FuIGJvIHRpZW4g a2hvaSBuZ2hpYSwgSHVhbiBjaHVvbmcgRG9jIExhcCBIYW5nIEJhLCA2NCBuYW0gdHVvaSBkYW5n Lg0KMjgtIFRyYW4gRHVjIFF1ZSwgQ2h1eWVuIHZpZW4gdmFuIHRhaSwgZGEgbmdoaSBodXUsIHRo YW0gZ2lhIGdpYW8gbGllbiB0aG9pIGNob25nIFBoYXAgdGFpIHZ1bmcgdGFtIGNoaWVtIEhhIE5v aSwgSHVhbiBjaHVvbmcga2hhbmcgY2hpZW4gSGFuZyBOaGF0LiANCjI5LSBEYWkgdGEgVHJhbiBE aW5oLCBuZ3V5ZW4gcGhvIGNodSBuaGllbSBjaGluaCB0cmkuDQozMC0gTmd1eWVuIFZhbiBDaHVv bmcsIENhbiBibyBDUCAzOCBCS1RUTiBodXUgdHJpLg0KMzEtIE5ndXllbiBUaGkgRGllbSwgQ2h1 IHRpY2ggVGhhbmggbmllbiB4dW5nIHBob25nIHhhIFRydW5nIFZhbiwgZGFuZyB2aWVuLCA3OSB0 dW9pIGRvaS4g --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; name="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Thien Nhan.txt" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Nguyen Thien Nhan.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vbyyu3 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2gg Y2h1YyBvbmcgTmd1eWVuIFRoaWVuIE5oYW4gdGhhbSBuaHVuZywgdGhvaSBuYXQgIA0KDQotDQpQ aHUgbHVjOiBIZSB0aG9uZyBnaWFvIGR1YyBkdW5nIGxhbSB1b25nIGNvbmcgaG9jIHRhcCBjdWEg Y2h1bmcgY2hhdQ0KLQ0KaHR0cDovL2RpZW5kYW4uc29uZ2h1b25nLmNvbS52bi9zaG93dGhyZWFk LnBocD90PTY1ODggDQoNCkRheSB0aG9uIFZpIERhIA0KDQpTYW8gYW5oIGtob25nIHZlIGNob2kg dGhvbiBWaT8NCk5oaW4gbmFuZyBoYW5nIGNhdSBuYW5nIG1vaSBsZW4sDQpWdW9uIGFpIG11b3Qg cXVhIHhhbmggbmh1IG5nb2MNCkxhIHRydWMgY2hlIG5nYW5nIG1hdCBjaHUgZGllbiAgICAgICAg DQoNCiJEYXkgdGhvbiBWaSBEYSIgbGEgYmFpIHRobyBkbyBIYW4gTWFjIFR1ICgxOTEyLTE5NDAp IHNhbmcgdGFjIHZhbyBraG9hbmcgbmFtIDE5MzguDQoNCkdpbyB0aGVvIGxvaSBnaW8sIG1heSBk dW9uZyBtYXkNCkRvbmcgbnVvYyBidW9uIHRoaXUsIGhvYSBiYXAgbGF5Li4uDQpUaHV5ZW4gYWkg ZGF1IGJlbiBzb25nIHRyYW5nIGRvLA0KQ28gY2hvIHRyYW5nIHZlIGtpcCB0b2kgbmF5PyAgDQoN ClRoZW8gbW90IHNvIHRhaSBsaWV1LCBiYWkgdGhvIGR1b2MgZ29pIGNhbSBodW5nIHR1IG1vaSB0 aW5oIGN1YSBIYW4gTWFjIFR1IHZvaSBtb3QgY28gZ2FpIHZvbiBxdWUgbyB0aG9uIFZpIERhLg0K DQpNbyBraGFjaCBkdW9uZyB4YSwga2hhY2ggZHVvbmcgeGEsDQpBbyBlbSB0cmFuZyBxdWEgbmhp biBraG9uZyByYS4uLg0KTyBkYXkgc3Vvbmcga2hvaSBtbyBuaGFuIGFuaA0KQWkgYmlldCB0aW5o IGFpIGNvIGRhbSBkYT8NCg0KSGllbiBuYXksIGJhaSB0aG8gbmF5IGR1b2MgbmhpZXUgbmd1b2kg Y2hvIGxhIG1vdCBraWV0IHRhYyBjdWEgSGFuIE1hYyBUdSB2YSBjdW5nIGxhIG1vdCB0cm9uZyBu aHVuZyB0aGkgcGhhbSB4dWF0IHNhYyBjdWEgdGhvIFZpZXQgTmFtIGhpZW4gZGFpLg0KDQpodHRw Oi8vdmFudHV5ZW4ubmV0L2luZGV4LnBocD92aWV3PXN0b3J5JnN1YmplY3RpZD0yNTQxOCAyMDA4 LTA4LTE1IDA3OjQ5OjU0DQoNClRodSBuZ28ga2luaCBndWkgb25nIEJvIHRydW9uZyBibyBnaWFv IGR1YyB2YSBkYW8gdGFvIE5ndXllbiBUaGllbiBOaGFuIA0KDQpEYXkgdmFuIG5odSAiYmFpIHZh biBkaWVtIDEwIiBsYSBnaWV0IHZhbiAtIGhheSBsYSBzdSB4dW9uZyBjYXAgdG9pIHRhbiBjdW5n IGN1YSBuZW4gZ2lhbyBkdWMgVmlldCBOYW0/DQoNCktpbmggdGh1YSBvbmcgUGhvIFRodSB0dW9u ZyBraWVtIEJvIHRydW9uZyBCbyBHRCZEVCBOZ3V5ZW4gVGhpZW4gTmhhbg0KDQpYaW4gb25nIEJv IHRydW9uZyB2YW8gd2Vic2l0ZSBodHRwOi8vbGV0aGlldW5ob24uY29tIHRpbSBkb2MgYmFpICJC YWkgdmFuIGRpZW0gMTAiIGxhIGJhaSB0aGkgZGFpIGhvYyBraG9pIEQgdnVhIHF1YSBjdWEgZW0g aG9jIHNpbmggTmd1eWVuIFRydW5nIE5nYW4sIHF1ZSBDYW4gVGhvLiBCYWkgdmFuIGRpZW0gMTAg bmF5IGRhIGR1b2MgaW4gcmEgdHJlbiBuaGlldSB0byBiYW8gbWFuZzsgY28gbmh1bmcgYmFpIHBo b25nIHZhbiBlbSBOZ2FuIHZhIGJhIG1hIGVtIHZpIHRhaSBob2MgZ2lvaSB2YW4gY3VhIGVtLCBu ZW4gbmd1b2kgZG9jIG1vaSBiaWV0IGxhIGJhaSB2YW4gZGEgZHVvYyBjYSB0cmFtIHRoYXkgZ2lh byBjaGFtLCB0aGF5IG5hbyBjdW5nIGxhYyBkYXUga2hlbiB0dXlldCwgaG9hbiB0b2FuIGR1bmcg ZGFwIGFuIEJvIGNoby4gDQoNClRyb25nIGNhdSAzLCB0aG9uZyBxdWEgYmFpIGx1YW4gY3VhIGVt IE5nYW4sIGNodW5nIHRvaSB4aW4ga2V0IGx1YW4gcmFuZyBCbyBkYXkgY29uIGVtIGNodW5nIHRv aSBuaHUgdGhlIG5heSwgQm8gcmEgZGFwIGFuIG5odSB0aGUgbmF5LCBkdW5nIGxhIEJvIGRhbmcg Z2lldCBjaGV0IG5oYSB0aG8gSGFuIE1hYyBUdSwgaG9uIG51YSBCbyBkYW5nIGdpZXQgY2hldCBt b24gdmFuIHRyb25nIG5oYSB0cnVvbmcuIEF5IGxhIHZpZWMgc2FjaCBnaWFvIGtob2EgdmEgZGFw IGFuIGN1YSBCbyBjaG8gYmFpIHRobyAiRGF5IHRob24gVmkgRGEiIGN1YSBIYW4gTWFjIFR1IGxh IGJhaSB0aG8gZGllbiBjdW9uZywgdWF0IGhhbi4gDQoNClRodWEgb25nIFBobyB0aHUgdHVvbmcg a2llbSBCbyB0cnVvbmcgQm8gR0QmRFQsIGNodWEgYmFvIGdpbyBuaHUgbHVjIG5heSwgZHVuZyB0 cnVvYyBuZ3V5IGNvIGJpIHhhbSBsdW9jIHR1IGJpZW4gRG9uZywgZGFuIHRvYyBkYXQgbnVvYyBk YW5nIGNhbiBuaHVuZyB0aGUgaGUgdHJlIFZpZXQgTmFtIGtob2UgbWFuaCB2ZSBjYSB0YW0gaG9u IGxhbiB0aGFuIHhhYyBkZSBiYW8gdmUgdmEgeGF5IGR1bmcgVG8gUXVvYyBWaWV0IE5hbSB0aGFu IHlldSBjdWEgY2h1bmcgdGEuIFZpZWMgQm8gR0QmRFQgZGF5IHZhbiBuaHUgdHJlbiBjbyBwaGFp IGxhIG1vdCBjYWNoIGdpZXQgY2hldCB0YW0gaG9uIGNvbiBlbSBjaHVuZyB0YSBoYXkga2hvbmcs IHRodWEgb25nIT8NCg0KKFRyYW4gTWFuaCBIYW8gLSBTYWkgR29uIG5nYXkgMTQtOC0yMDA4KQ0K DQpodHRwOi8vdmlldGJhby52bi9HaWFvLWR1Yy9IZS10aG9uZy1naWFvLWR1Yy1kdW5nLWxhbS11 b25nLWNvbmctaG9jLXRhcC1jdWEtY2h1bmctY2hhdS80NTE1NTg3NC8yMDIvIFRodSAgdHUsIDE4 IFRoYW5nIE5hbSAyMDA1LCAxNToxMiBHTVQrNyAoVHJpY2gpDQoNClRodSB0dW9uZzogSGUgdGhv bmcgZ2lhbyBkdWMgZHVuZyBsYW0gdW9uZyBjb25nIGhvYyB0YXAgY3VhIGNodW5nIGNoYXUgDQoN ClRhaSBzYW8gdGhheSBjbyBsYWkgY28gdGhlIGNhbSBjaGl1IGNhY2ggZGF5IG5odSB0aGUgYmF5 IGxhdT8gSG9jIDIgdGlldCAzIGJhaSB0aG8gRHVvbmcsIDIgdGlldCBsYSB4b25nIHRydXllbiBD aGkgUGhlbywgMSB0aWV0IGxhIHhvbmcgMyB0cmljaCBkb2FuIFRydXllbiBLaWV1ISBUcm9pIGRh dCENCg0KSG9jIG1hIGtob25nIGNhbSBkdW9jIHZhbiwgaG9jIG1hIGtob25nIGhpZXUgdmUgdmFu LCBob2MgbWEga2hvbmcgY28gdGhvaSBnaWFuIHNvbmcgdm9pIHRhYyBwaGFtIHRoaSBsYW0gc2Fv IGNvIGhpZXUgcXVhIGRheT8gSG9jIHNpbmggY28gdGhlIHRodW9jIGxhdSBiYWkgdGhvLCBkb2Fu IHZhbiwgdGhhbSBjaGkgY2EuLi4gZGFuIGJhaSBwaGFuIHRpY2gsIG5odW5nIGRvIGxhIHRyb25n IHRob2kgZ2lhbiBob2MuIEtoaSB0aGkgeG9uZywgbmh1bmcgdGh1IGF5IGtob25nIGhlIGNvbiwg Y2hpIGRlIGxhaSBjaG8gaG9jIHNpbmggbW90IGtob2FuZyB0cmFuZyBraWVuIHRodWMuDQoNClRy b25nIG1vdCBsYW4gdHJvIGNodXllbiB2b2kgaG9jIHNpbmgsIGNvIG1vdCBxdWFuIGNodWMgZ2lh byBkdWMgY3VhIFNvIEdELURUIFRQSENNIGRhIHBoYXQgYmlldSByYW5nOiAiSG9jIHZhbiBjb3Qg bGEgZGUgYmlldCB0aWVuZyBtZSBkZSBtYSB0aG9pISIuIFRhaSBzYW8gdGhheSBsYWkgY28gdGhl IG5vaSBtb3QgZGlldSBkb24gZ2lhbiBkZW4gbmh1IHZheT8gRW0gbmdoaSBob2MgdmFuIGNvbiBs YSBob2MgbGFtIG5ndW9pLCBsYSBob2MgY2FjaCBzb25nLCBjYWNoIGRvaSBuaGFuIHh1IHRoZS4g SG9jIHZhbiBkZSB0cmF1IGRvaSBuaGFuIGNhY2gsIGRlIG5hbmcgY2FvIG5oYW4gdGh1YyB2YSB0 aW5oIHRoYW0gbXkgY2Egbmhhbi4gSG9jIHZhbiBkZSBoaWV1IHZlIGRvaSwgdmUgbmd1b2ksIHR1 IGRvIG1hIGtpZW4gdGFvIG5lbiBtb3QgeGEgaG9pIHR1b2kgZGVwLiBUaGF0IGRhbmcgYnVvbi4u Lg0KDQouLi4gSG9jIG1vdCB0YWMgcGhhbSBwaGFpIGRhdCBtaW5oIHZhbyB0YWMgcGhhbSwgZGll dSBuYXkgY3VjIGt5IGtobywgbmh1bmcga2hvbmcgcGhhaSBraG9uZyB0aGUgbGFtOyBxdWFuIHRy b25nIHRhIGNvIGNodSB0YW0sIHZhIHRhIGNvIGRvbiBoZXQgdGFtIGhvbiBjaG8gdGFjIHBoYW0g aGF5IGNodWEuIE8gZGF5IGxhaSBuYXkgc2luaCBtb3QgdmFuIGRlLCBkbyBsYSBjYWNoIGRheS4g TmV1IGNodW5nIGVtIGR1b2MgaG9jIG1vbiB2YW4gbW90IGNhY2gga2hvYSBob2MsIGhvcCBseTsg Y28gc3Uga2V0IGhvcCBnaXVhIGx5IHRodXlldCB2YSB0aHVjIGhhbmggdGhpIGtoaSBkdW5nIHRy dW9jIG1vdCB0YWMgcGhhbSB2YW4gY2h1b25nIG5hbyBkbywgYm9uIGVtIGN1bmcgc2UgY28gZHUg dGluaCBjYW0gdmEgY2h1IGRvbmcgZGUgY2FtIG5oYW4gbm8sIGR1IG5vIGNvIGtoYWMgbGEgdm9p IGN1b2Mgc29uZyB0aHVjIGN1YSBjaHVuZyBlbS4NCg0KLi4uIFZvaSB0YXQgY2EgbG9uZyBjaGFu IHRoYW5oLCBlbSBtb25nIHJhbmcgY2FjIHRoYXkgY28sIGNhYyBjbyBxdWFuLCBjYWMgY2FwIHRo YW0gcXV5ZW4sIGNhYyBuZ2FuaCBjaHVjIG5hbmcsIG1hIHRydWMgdGllcCBvIGRheSBsYSBCbyBH RC1EVCwgaGF5IGRlIHJhIG5odW5nIGR1b25nIGxvaSBkdW5nIGRhbiwgaG9wIGx5OyBjbyBuaHVu ZyBjaGluaCBzYWNoIGtpcCB0aG9pLCBoaWV1IHF1YSBuaGFtIHRhbyBjaHV5ZW4gYmllbiB0cm9u ZyB2aWVjIGRheSB2YSBob2MgbW9uIHZhbiB0aGVvIGR1bmcgY29uIGR1b25nIG1hIGxlIHJhIG5v IHBoYWkgZGkgYmF5IGxhdSBuYXkuDQoNCktpbmggdGh1LA0KQnVpIE5naGllbSBEYWMgVmluaCAo TG9wIDExQTEgVHJ1b25nIFRIUFQgQ3UgQ2hpLCBUUEhDTSkgDQoNCmh0dHA6Ly9kYW50cmkuY29t LnZuL2MyNS9zMjUtMzM0OTM4L2N1b2ktcmEtbnVvYy1tYXQtdm9pLW5odW5nLWJhaS10aGktY3Vh LXNpbmgtdmllbi5odG0gIFRodSBTYXUsIDAzLzA3LzIwMDkgLSAxMTozMiBBTQ0KDQoiQ3VvaSBy YSBudW9jIG1hdCIgdm9pIG5odW5nIGJhaSB0aGkgY3VhIHNpbmggdmllbg0KDQooRGFuIHRyaSkg LSBLaGkgY2hhbSBiYWkgdGhpIG1vbiAiRGF0IG51b2MgaG9jIiBjdWEgc2luaCB2aWVuIGtob2Eg Tmd1IHZhbiAtIG1vdCBuZ2FuaCB0aHVvYyBsaW5oIHZ1YyBraG9hIGhvYyB4YSBob2kgbmhhbiB2 YW4gaGFuIGhvaSwgbmh1bmcgdG9pIGN1bmcga2hvbmcga2hvaSBnaWF0IG1pbmggdHJ1b2MgY2Fj IGNhdSB0cmEgbG9pICJjaGV0IG5ndW9pIiBjdWEgc2luaCB2aWVuLg0KDQpDbyB0aGUgbm9pIHJh bmcsIHRyb25nIHh1IGh1b25nIG5nYXkgbmF5LCBkYSBwaGFuIGhvYyBzaW5oLCBzaW5oIHZpZW4g dGh1b25nIGNodSB0cm9uZyB0b2kgY2FjIG5nYW5oIGtob2EgaG9jIHR1IG5oaWVuLCBraW5oIHRl IG1hIGl0IHF1YW4gdGFtIHRvaSBsaW5oIHZ1YyB4YSBob2kgbmhhbiB2YW4uIFZpIHRoZSwga2ll biB0aHVjIGN1YSBjYWMgZW0gdmUgY2FjIGxpbmggdnVjOiB2YW4gaG9hLCBkaWEgbGksIGxpY2gg c3UsLi4uIGN1YSBkYW4gdG9jIGNhbmcgbmdheSBjYW5nIG5naGVvIG5hbiwgdGhhbSBjaGkgbGVj aCBsYWMgbW90IGNhY2ggbmdoaWVtIHRyb25nLCBkZW4gbXVjIGRhbmcgYmFvIGRvbmcgZG8uDQoN CkNhYyBjYXUgaG9pIHRyb25nIGJhaSBraWVtIHRyYSB0YXAgdHJ1bmcgY2h1IHlldSB2YW8gY2Fj IGxpbmggdnVjOiBsaWNoIHN1LCBkaWEgbGksIHZhbiBob2EsLi4uIG5oYW0ga2llbSB0cmEga2ll biB0aHVjIHhhIGhvaSBjdWEgY2FjIGVtLiBOaHVuZyBrZXQgcXVhIHRodSBkdW9jIGtoaWVuIHRv aSBjdW5nIG5odSBuaGlldSBkb25nIG5naGllcCBraGFjIHBoYWkgZGF1IGxvbmcuIA0KDQpOaHVu ZyBraWVuIHRodWMgY28gYmFuLCBwaG8gdGhvbmcgbmhhdCBtYSBiYXQga2kgbW90IG5ndW9pIFZp ZXQgTmFtIG5hbyBjdW5nIGNvIHRoZSBkZSBkYW5nIHRyYSBsb2kgbmh1OiBUZW4gYmFpIGhhdCBj aGluaCB0aHVjIGR1b2MgY2hvbiBsYW0gUXVvYyBjYSBjdWEgbnVvYyBDb25nIGhvYSB4YSBob2kg Y2h1IG5naGlhIFZpZXQgTmFtIGxhIGdpPyBEbyBhaSBzYW5nIHRhYz8gVGhpIGNvIG5oaWV1IHNp bmggdmllbiBsYWkga2hvbmcgYmlldCAoYm8gdHJvbmcgY2F1IHRyYSBsb2kpLCBjbyBzaW5oIHZp ZW4gbGFpIG5ndWVjaCBuZ29hYyB2aWV0IGxhIGJhaSAiVGllbmcgcXVhbiBjYSIsIHRhaSBoYWkg aG9uLCBjbyBuZ3VvaSBsYWkgdHJhIGxvaSByYW5nIGRvIGxhIGJhaSAiVGllbmcgcXVhbiBjYSIg Y3VhIG5oYWMgc2kgTmFtIENhbywgdmEgdGhhdCBraHVuZyBraGllcCBjbyBlbSBsYWkgdHJhIGxv aSByYW5nIGRvIGxhaSBiYWkgIkNvbmcgaG9hIHhhIGhvaSBjaHUgbmdoaWEgVmlldCBOYW0iIQ0K DQpWZSBraWVuIHRodWMgdmFuIGhvYywgY2FuZyB0ZSBoYWkgaG9uIGtoaSBjbyBlbSB2aWV0OiAi QmluaCBOZ28gZGFpIGNhbyIgY3VhIExpIFRodW9uZyBLaWV0LCBjb24gY28gZW0ga2hhYyBsYWkg dmlldCBiYWkgIlRobyB0aGFuIiBjdWEgTmd1eWVuIFRyYWkuDQoNClRyb25nIG5nb24gbmd1LCBt YWMgZHUgZGEgZHVvYyBob2MgbmhpZXUgdmUgZGFjIGRpZW0gdmEgbG9haSBoaW5oIG5nb24gbmd1 IHRpZW5nIFZpZXQgdHUgdGhvaSBQaG8gdGhvbmcsIG5odW5nIGtob25nIGl0IGVtIHZhbiB2aWV0 IGNodSBRdW9jIG5ndSBiYXQgbmd1b24gdHUgY2h1IE5vbSEgVmEsIG5oaWV1LCBuaGlldSBuaHVu ZyBjYXUgdHJhIGxvaSAiY3VvaSByYSBudW9jIG1hdCIga2hhYy4gQ2hhbmcgaGFuIG5odSwga2hv bmcgaXQgZW0gdmlldCBxdWUgaHVvbmcgY3VhIFF1YW4gSG8gbGEgdnVuZyB2YW4gaG9hIFRydW5n IEJvLCB0aGFtIGNoaSBjbyBlbSBkdWEgbm8gdmFvIHRvaSBOYW0gQm8hDQoNClF1YSB0aG9uZyBr ZSwgaGF1IGhldCBjYWMgc2luaCB2aWVuIGtob25nIG5oaWV1IHRoaSBpdCBkZXUgbWFjIGNhYyBs b2kgbmh1IHRyZW4uIERhIHNvIHNpbmggdmllbiBkZXUgY28gbmh1bmcgc2FpIGxhbSBuZ2hpZW0g dHJvbmcgdmUga2llbiB0aHVjLiBRdWEgZG8sIGNvIHRoZSB0aGF5IHJhbmc6IGtpZW4gdGh1YyB2 ZSBsaW5oIHZ1YyBkaWEgbGksIGxpY2ggc3UsIHZhbiBob2EgZGFuIHRvYyBjdWEgc2luaCB2aWVu IG5nYXkgbmF5IGRhbmcgbyBtdWMgYmFvIGRvbmcgZG8uIE1vdCBibyBwaGFuIHNpbmggdmllbiBk YW5nIGRhbiBsYW5nIHF1ZW4gY2FjIGdpYSB0cmkgdHJ1eWVuIHRob25nIHRvdCBkZXAgY3VhIGRh biB0b2MuIA0KDQpUaGlldCBuZ2hpLCBraGkgbmh1bmcgc2luaCB2aWVuIGNvIGtpZW4gdGh1YyBu b24geWV1LCB0aGFtIGNoaSBsZWNoIGxhYyBuaHUgdmF5IGR1b2MgZHVhIHJhIHhhIGhvaSwgZHVv YyB0aGEgdmFvIGRvaSB0aGkgaGF1IHF1YSBzZSBuaHUgdGhlIG5hbz8gQ28gYWkgZGEgdHVuZyBu Z2hpIHRvaSBjaHVhLCBoYXkga2hvbmcgbXVvbiBuZ2hpPyBIYW5nIGhvYSBjbyB0aGUgY28gdGh1 IHBoYW0sIG5odW5nIGNvbiBuZ3VvaSB0aGkga2hvbmcgZHVvYyBwaGVwIHRhbyByYSBuaHVuZyB0 aHUgcGhhbSBuaHUgdmF5IQ0KDQpUaGFuaCBTb24NClNvIDg3QSwgZHVvbmcgS2hvIERhdSwga2hv bSA0LCBwaHVvbmcgNSwgdGhpIHhhIFRyYSBWaW5oLCBUcmEgVmluaA0KDQpMVFMgRGFuIHRyaSAt IERhIHR1IGxhdSwgY2FjIHBodW9uZyB0aWVuIHRob25nIHRpbiBkYWkgY2h1bmcgZHVhIHJhIG5o dW5nIGxvaSBjYW5oIGJhbyBuZ2hpZW0gdHVjIHZlIHN1IHNhIHN1dCByYXQgZGFuZyBxdWFuIHRh bSB0cm9uZyB2aWVjIGRheSB2YSBob2MgY2FjIG5nYW5oIGtob2EgaG9jIHhhIGhvaSB2YSBuaGFu IHZhbi4gTmh1bmcgdGluaCB0cmFuZyBkbyBoYXUgbmh1IGNodWEgZHVvYyBraGFjIHBodWMgbWEg bmdheSBjYW5nIHRyYW0gdHJvbmcgaG9uLiBWaSB2YXkgZGEgeGF5IHJhIHRpbmggdHJhbmcgImN1 b2kgcmEgbnVvYyBtYXQiIHRydW9jIG5odW5nIGNhdSB0cmEgbG9pIGhldCBzdWMgbmdvIG5nYW4g Y3VhIHNpbmggdmllbiBuaHUgYmFpIHZpZXQgdHJlbiBkYXkgZGEgcGhhbiBhbmguDQoNCmh0dHA6 Ly93d3cudm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAwNy8wNi8zQjlGNzJDNi8gIFRodSBiYXks IDE2LzYvMjAwNywgMTA6MDggR01UKzcgDQoNCk5odW5nIGJhaSB0aGkgbGljaCBzdSBjdW9pIHJh IG51b2MgbWF0DQoNCkNvIHRoaSBzaW5oIHRyYSBsb2k6ICJSYW5nIHNhbmcgMS8xLzE5NzUsIG5o YW4gbHVjIHF1YW4gbGluaCBNeSBkYW5nIHNheSBzdWEsIHF1YW4gdGEgdGFuIGNvbmcsIGdpYWMg Ym8gY2EgZG9uIGJvdCBjaGF5IHNhbmcgVHJ1bmcgUXVvYyIuIFRoYW0gY2hpLCAgY3VuZyB0cm8g dGhhbmggYW5oIGh1bmcgdHJvbmcgY3VvYyBraGFuZyBjaGllbiBjaG9uZyBQaGFwLg0KDQpodHRw Oi8vdHVhbnZpZXRuYW0ubmV0L25odW5nLWxvLWhvbmctZ2lhby1kdWMtdmEtcGhhbS1jYWNoLW5n dW9pLXRoYXktIDEzLzA4LzIwMDYgMDU6MTUgR01UKzcgIE5odW5nIGxvIGhvbmcgZ2lhbyBkdWMg dmEgcGhhbSBjYWNoIG5ndW9pIHRoYXkgICBDaHV5ZW4gZHVjIGhhbmggbmd1b2kgdGhheSBsYSBj aHV5ZW4ga2hvbmcgbmhvLiBDaHV5ZW4gbG9uIGxhIGNodXllbiBkYXkgY2h1IC0gZGF5IG5ndW9p LiBDaHV5ZW4gbG9uIG5oYXQgbGEgY2h1eWVuIGNoYW4gaHVuZyBraW5oIHRlLSB4YSBob2kgLi4u ICAgaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2dpYW9kdWMvMjAwOS8wMy84MzU5NzAvICAwNjo1 OScgMTQvMDMvMjAwOSAoR01UKzcpIA0KDQpOaGEgZ2lhbyBOaGFuIGRhbiAtIEdTIHN1IGhvYyBE aW5oIFh1YW4gTGFtOiAnS2hvbmcgY28gaG9pIHkga2hpIHZpZXQgU0dLIHN1Jw0KDQpodHRwOi8v ZGFudHJpLmNvbS52bi9jMjUvczIwMS0xMzA4ODIva2llbi10aHVjLWxpY2gtc3UtbmdvLW5naGUt dHJhbS10cm9uZy5odG0gVGh1IFNhdSwgMjEvMDcvMjAwNiAtIDEwOjAwDQoNClRoaSBESC1DRDog S2llbiB0aHVjIGxpY2ggc3UgbmdvIG5naGUgdHJhbSB0cm9uZw0KDQpDbyB0aGkgc2luaCBuZ28g bmdoZSB2aWV0OiBkZSBjdW5nIGNvIGNoaW5oIHF1eWVuIGNhY2ggbWFuZyBwaGFpIHRodWMgaGll biA0IGNodW9uZyB0cmluaDogZGlldCBydW9pLCBkaWV0IG11b2ksIGRpZXQgbmhhbmcgdmEgZGll dCBiby4uLjsgSGF5IHBoYWkgdGh1YyBoaWVuIDMgc2FjaDogYW4gc2FjaCwgbyBzYWNoLCB1b25n IHNhY2ggZGUgY3VuZyBjbyBjaGluaCBxdXllbi4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL05ld3MvUGFnZXMvMjAwOTMxLzIwMDkwNzI3MDAwNTMwLmFzcHggMjcvMDcvMjAwOSAwOjA1 IA0KDQpUaGkgREggbW9uIFZhbjogUXVhIG5oaWV1IGJhaSB2aWV0ICJ2ZXQiLCBsYW0gbmhhbSB2 byBob24gIA0KDQpodHRwOi8vdm92bmV3cy52bi9Ib21lL0todW5nLWhvYW5nLWdpYW8tZHVjLVRp ZW4tdHJhY2gta3ktaGF1LXRyYWNoLW5oYW4vMjAwODkvMTI2NzEudm92DQoNCktodW5nIGhvYW5n IGdpYW8gZHVjOiBUaWVuIHRyYWNoIGt5IGhhdSB0cmFjaCBuaGFuIA0KDQpodHRwOi8vZGFudHJp LmNvbS52bi9jMTM1L3MwLTU1ODUxL2NvLXBoYWktY2FjaC1kYXktdmFuLWRhLWdpZXQtY2hldC10 aGFtLW15LWN1YS1ob2Mtc2luaC5odG0gDQoNCkNvIHBoYWkgY2FjaCBkYXkgdmFuIGRhIGdpZXQg Y2hldCB0aGFtIG15IGN1YSBob2Mgc2luaD8gKFRyaWNoKQ0KDQpCYWkgdGhpICJnYXkgY2hhbiBk b25nIiBkdSBsdWFuIGN1YSBlbSBOZ3V5ZW4gUGhpIFRoYW5oIHRydW9uZyBUSFBUIFZpZXQgRHVj LCBIYSBOb2kgdHJvbmcgY3VvYyB0aGkgaG9jIHNpbmggZ2lvaSB2YW4ga2hvbmcgY2h1eWVuIGN1 YSBUUC4gSGEgTm9pIGRhIHRybyB0aGFuaCBtb3QgaGllbiB0dW9uZyBraG9uZyBjaGkgdHJvbmcg bmdhbmggZ2lhbyBkdWMgbWEgY29uIGxhIG1vdCBoaWVuIHR1b25nIHhhIGhvaS4gQ2h1bmcgdG9p IHRyaWNoIGRhbmcgbGFpIGJhaSB2aWV0IGN1YSBuaGEgdGhvLCBuaGEgcGhlIGJpbmggVHJhbiBN YW5oIEhhbyB0cmVuIGJhbyBDb25nIGFuIFRQSENNIHZlIGJhaSB0aGkgbmF5IHZhIHZlIGNhY2gg Z2lhbmcgZGF5IG1vbiB2YW4sIGNhY2ggZ2lhbmcgZGF5IHRhYyBwaGFtICJWYW4gdGUgbmdoaWEg c2kgQ2FuIEdpdW9jIiBjdWEgTmd1eWVuIERpbmggQ2hpZXUgdHJvbmcgU0dLIGhpZW4gbmF5DQoN ClRydW9jIGhldCBjYW4gY2FtIG9uIGVtIE5ndXllbiBQaGkgVGhhbmggZGEgZGFtIGR1bmcgY2Ft IHZpZXQgYmFpIHRhcCBsYW0gdmFuIHRyb25nIGt5IHRoaSBob2Mgc2luaCBnaW9pIHZhbiBwaGFu IHVuZyBsYWkgZGUgdGhpIHZhIGJhaSBWYW4gdGUgbmdoaWEgc2kgQ2FuIEdpdW9jLCBwaGUgcGhh biBjYWNoIGdpYW5nIGRheSBtb24gdmFuIGtobyBjdW5nLCBtb3QgY2hpZXUsIGRvbiBkaWV1IHRy b25nIHRydW9uZyBob2MgaG9tIG5heS4NCg0KVGhheSBnaWFvIHJhIGRlIHRoaSBjaG8gY3VvYyB0 aGkgaG9jIHNpbmggZ2lvaSB2YW4gY3VhIFRQLiBIYSBOb2kgbmFtIG5heSBsYSBuZ3VvaSBjaHVh IG5hbSBkdW9jIGJhbiBjaGF0IGNhaSBoYXkgbm9pIHRhYyBwaGFtIFZhbiB0ZSBuZ2hpYSBzaSBD YW4gR2l1b2MgY3VhIE5ndXllbiBEaW5oIENoaWV1LiBEZSB0aGkgcmEgbmh1IHNhdTogIkVtIGhh eSBnaW9pIHRoaWV1IHZlIGRlcCBjdWEgdGFjIHBoYW0gVmFuIHRlIG5naGlhIHNpIENhbiBHaXVv YyIuIFhpbiBsb2ksIHZvaSBkZSB0aGkgbmF5LCB0aHUgaG9pIGNoaW5oIHRoYXkgcmEgZGUgdGhp IGxpZXUgY28gbGFtIGJhaSBkdW9jIGhheSBraG9uZz8gTmdheSBjYSB2b2kgbW90IG5naGllbiBj dXUgc2luaCB0cmluaCBkbyB0aWVuIHNpIHZhbiBkYW5nIGR1b2MgInhvYSBtdSB0aWVuIHNpIHRv aSBodXllbiIgbmh1IGJheSBnaW8gY2hhYyBjdW5nIGRhbmggY2FuIGJ1dCBuZ29pIGNob2kgbWEg dGhvaS4gRGUgdGhpIHZhbiB0cmVuIGNvIHRoZSBsYSBtb3QgZGUgdGhpIGNobyBsdWFuIHZhbiB0 aWVuIHNpIG15IGhvYyBjaHUgc2FvIGxhaSBiaWVuIHRoYW5oIGRlIHRoaSBob2Mgc2luaCBnaW9p IHZhbiBsb3AgMTE/IA0KDQpIb2Mgc2luaCB0cnVuZyBob2MgY2h1YSBoZSBkdW9jIGhvYyBtb24g bXkgaG9jLCBjYWMgZW0gbGFtIHNhbyBtYSBiaWV0IGR1b2MgQ0FJIEJJIGxhIG1vdCBwaGFtIHRy dSBjdWEgQ0FJIERFUCB0cm9uZyBteSBob2MuIE5vaSBkZW4gdGhlIGxvYWkgdmFuIHRlIG5vaSBj aHVuZyB2YSBub2kgZGVuIGJhaSB2YW4gdGUgbmF5IGN1YSBOZ3V5ZW4gRGluaCBDaGlldSBsYSBw aGFpIG5vaSBkZW4gQ0FJIEJJLCBDQUkgSFVORywgdHVjIGNoYXQgQkkgVFJBTkcgY3VhIHRhYyBw aGFtLiBDaGF0IGJpIHRyYW5nIHRyb25nIHRhYyBwaGFtIG5heSBsYSBzdSB0aGFuIGtob2MsIHRp ZWMgdGh1b25nIG5odW5nIG5ndW9pIGNoYW4gZGF0IGNob25nIFBoYXAgaGkgc2luaCBkb25nIHRo b2kgcXVhIG5vaSB0aHVvbmcga2hvYyBtYSBraG9pIGxlbiB0aW5oIGNoYXQgYW5oIGh1bmcgY3Vh IGNhYyBuZ2hpYSBzaS4gDQoNClRhIGNhbiBwaGFpIGhvYW4gaG8gaG9jIHNpbmggTmd1eWVuIFBo aSBUaGFuaCB2ZSBiYWkgbGFtIHZhbjogY2hlIGJhaSB2YW4gdGUgY2h1YSBoYXkgdmEgY2hlIGRl IGJhaSB2YW4gdHJlbiBsYSBrZW0sIHZpIGVtIGRhIG5vaSB0aGF0ISBWaSBzYW8gdmF5PyBWaSBk YXkgbmh1IHRoZSwgcmEgZGUgbmh1IHRoZSB0aGkgaG9jIHNpbmggbGFtIHNhbyBtYSB0aGF5IHZl IGRlcCBjdWEgVmFuIHRlIG5naGlhIHNpIENhbiBHaXVvYyBjaG8gZHVvYyEgS2hvbmcgdGhheSBo YXksIGtob25nIGhpZXUgZHVvYyBjYWkgaGF5IG1hIHZhbiBiYXQgaG9jIHRybyBsYW0gYmFpIHRh cCBsYW0gdmFuIHJhIHJhIGtoZW4gaGF5IGxhIGhvaSBjaHVuZyBkYXkgdmEgaG9jIHZhbiBHSUEg RE9JLiBNYSBjYWkgZ2lhIGRvaSBsYSBjYWkgcGhhbiB2YW4gaG9jIG5oYXQuIA0KDQpNb3QgaG9j IHNpbmggbG9wIDExIHRodW9jIGhhbmcgZ2lvaSB2YW4sIGR1b2MgZGkgdGhpIGhvYyBzaW5oIGdp b2kgdmFuIHRvYW4gSGEgTm9pIG5odSBlbSBOZ3V5ZW4gUGhpIFRoYW5oIGxhaSBub2kgdGhhbmcg cmEgdHJvbmcgYmFpIHRoaSByYW5nIGVtIGNoYW5nIHRoYXkgVmFuIHRlIG5naGlhIHNpIENhbiBH aXVvYyBoYXkgaG8gcmEgc2FvICB0aGkgY28gcGhhaSBsYSBkYXUgaGlldSBjdWEgdGluaCB0aGFu IGRhbiB0b2MgZGFuZyBzdXkgdm9uZyB0cm9uZyBsb3AgdHJlLCBoYXkgbGEgZG8gbW9uIHZhbiBk dW9jIGRheSB0cm9uZyBuaGEgdHJ1b25nIGRhIGdpZXQgY2hldCBjaGluaCB0aGFtIG15IHRpZXAg bmhhbiB2YW4gaG9jIG5vaSBob2Mgc2luaD8gDQoNCkNhaSBsb2kgbmF5IGNvbiBkbyBjaG8gYWkg ZHVvYyBudWEsIGNoaW5oIGxhIGNhaSBsb2kgY3VhIE5FTiBHSUFPIERVQyA9IEJvIEdpYW8gZHVj LCBsb2kgY3VhIHNhY2ggZ2lhbyBraG9hIGRheSB2YW4gdmEgY2FjIHRoZSBoZSB0aGF5IGdpYW8g ZGF5IHZhbiBkYW5nIGR1bmcgbG9wLiBUaGF5IHZpIGh1b25nIGRhbiBob2Mgc2luaCB0aWVwIGNh biB2b2kgY2FpIGhheSwgY2FpIGRlcCBjdWEgdGFjIHBoYW0sIGxhaSBkYXkgY2FjIGVtIG5nYXkg Y2FuZyB4YSB2b2kgdGFtIGhvbiBjaGEgb25nIGdpYXUgdHJvbmcgdHJhbmcgc2FjaDsgdmkgZHUg bmh1IGJhaSBWYW4gdGUgbmdoaWEgc2kgQ2FuIEdpdW9jIHRodW9jIGhhbmcga2lldCB0YWMgdmFu IGNodW9uZyBkYW4gdG9jIG1hIGVtIFRoYW5oIC0gbW90IGhvYyBzaW5oIGdpb2kgdmFuIGN1YSBI YSBOb2kga2hvbmcgYmlldCBubyBoYXkgbyBjaG8gbmFvIHRoaSB0aGEgRFVORyBEQVkgTU9OIFZB TiBUUk9ORyBOSEEgVFJVT05HIGNvbiBob24gbGEgZGF5IGtpZXUgZ2lldCBjaGV0IHNhbmcgdGFv IG5odSBob2kgY2h1bmcgZGF5IHRoZW8gdmFuIG1hdSBoaWVuIG5heS4NCg0KTmdheSB0cm9uZyBT R0sgY2hpbmggZGFuaCBjaG8gaG9jIHNpbmggbG9wIDExIGRhIG5oYW0gY2F1IHRobyBoYXkgbmhh dCBjdWEgTmd1eWVuIERpbmggQ2hpZXU6ICJCb2kgY2h1bmcgaGF5IGdoZXQgY3VuZyBsYSBoYXkg dGh1b25nIiB0aGFuaCByYSB0aG8uLi4gWHVhbiBEaWV1IHRoaSB0aHUgaG9pIHZpZWMgZGF5IHZl IE5ndXllbiBEaW5oIENoaWV1IGN1YSBCbyBHaWFvIGR1YyAtIERhbyB0YW8gdHJvbmcgbmhhIHRy dW9uZyBjb24gaG9uIGNhIHN1IGR1YSBjb3QsIHF1YSBzdWMgdm8gdHJhY2ggbmhpZW0uIA0KDQpU aG9uZyBxdWEgYmFpIHZpZXQgY3VhIGVtIE5ndXllbiBQaGkgVGhhbmgsIGhvYyBzaW5oIGxvcCAx MSwgY2h1bmcgdG9pIHhpbiBtYW5oIGRhbiBjbyBtb3Qgc28geSBraWVuIG5ldSB0cmVuLiBEYSBk ZW4gbHVjIEJvIEdpYW8gZHVjIC0gRGFvIHRhbyBjYW4gY2h1IGRvbmcgdGhheSBkb2kgY28gY2hl LCB0YW5nIGN1b25nIHRyYWNoIG5oaWVtIHRyb25nIGdpYW5nIGRheSB2YSBkYWMgYmlldCB0cm9u ZyBraGF1IGJpZW4gc29hbiBzYWNoIGdpYW8ga2hvYSBkZSBsYXkgbGFpIHRoYW0gbXkgdmFuIGNo dW9uZyBjaG8gaG9jIHNpbmguIE5ldSBraG9uZywgdHUgY2FjaCBkYXkgVkFOIFBIQSBWQU4gbmF5 IHNlIGxhIG1vdCB0cm9uZyBuaHVuZyBuZ3V5IGNvIGNobyBjYSBkYW4gdG9jIHRyb25nIHRoZSBo ZSB0dW9uZyBsYWkuDQoNClRyYW4gTWFuaCBIYW8NCg0KaHR0cDovL2Jsb2cuMzYwLnlhaG9vLmNv bS9ibG9nLW5JSjZ3VE0tZkxQLnBQMnhmcGNOejJjNzM5Sjd1TXctP2NxPTEmcD0xNDAgIA0KDQpP bmcgTmd1eWVuIFRoaWVuIE5oYW4sIHhpbiBoYXkgdHUgY2h1YyENCg0KT25nIE5ndXllbiBUaGll biBOaGFuLCBkdW9uZyBuaGllbSBCbyB0cnVvbmcgQm8gZ2lhbyBkdWMgVmlldCBOYW0sIHhpbiBo YXkgdGhhdCBsb25nIG5oaW4gbmhhbiBzdSB5ZXUgZHVvaSBjdWEgbWluaCB2ZSB2aWVjIGxhbmgg ZGFvIG5nYW5oIGdpYW8gZHVjLCBjdW5nIG5odSBjaHVuZyB0YSBwaGFpIG5oaW4gcmEgcmFuZyBu ZXUga2hvbmcgY28gbW90IGJhbiB0YXkgbWFuaCBtZSB2YSBzYW5nIHN1b3QgbWFuZyB0aW5oIGhh bmggZG9uZywgdG9hbiBibyBuZW4gZ2lhbyBkdWMgVmlldCBOYW0gc2UgYmFuZyBob2FpIHZvaSB0 b2MgZG8gcGhpIG1hLg0KDQpDYXUgY2h1eWVuIGNvIGJlIDEwIHR1b2kgYmkgbmhhIHRydW9uZyBk dWEgZGVuIGRvbiBjb25nIGFuIHRyYSBraGFvIGRlbiBtdWMgcGhhdCB0YW0gdGhhbiwgZGEgbGFt IGhhbyB0b24ga2hvbmcgYmlldCBiYW8gZ2lheSBtdWMgY3VhIGJhbyBjaGkgVmlldCBOYW0sIGN1 bmcgbmh1IGxhbSBsdW9uZyB0YW0gY3VhIGdpb2kgdHJpIHRodWMgVmlldCBOYW0gYmkgZGFuIHhl OiB4YSBob2kgbWEgY2h1bmcgdGEgbW8gdW9jIHhheSBkdW5nIG5vLCBkYW5nIGNvIG5odW5nIGJp ZW4gdGhlIHBoaSBuaGFuIG5odSB2YXkgc2FvPw0KDQpDdW5nIGNhbiBuaGFjIGxhaSB2b2kgbmh1 bmcgbmd1b2kgY29uIGNodWEgdHVvbmcgdGFuOiBDbyBiZSBIdXluaCBUaGkgTmdvYyBUcmFtLCBo b2MgbG9wIDUsIHRydW9uZyB0aWV1IGhvYyBBbiBIaWVwIDIsIHRpbmggRG9uZyBUaGFwLCB2aSBs YW0gbWF0IHRpZW4gcXV5IGN1YSBsb3AgbGEgNDcuODAwIGRvbmcgZGEgYmkgY2hpbmggY2FjIHRo YXkgZ2lhbyBjdWEgbWluaCBkdWEgZGVuIGNvbmcgYW4geGEgZGVuIGtoYW8gY3VuZy4gTmh1bmcg bmh1YyBoaW5oIHZhIHN1IHh1YyBwaGFtIG5oYW4gcGhhbSBkYSBraGllbiBlbSBwaGF0IGRpZW4s IGtob25nIG5oYW4gcmEgZHVvYyBjaGluaCBtZSBydW90IGN1YSBtaW5oLiBDaHV5ZW4geGF5IHJh IGNoaSB0cm9uZyB0aGFuZyA0IG5hbSAyMDA3IG5heSwgY3VhIHRoZSBreSAyMSBkYXkgbG9pIGNh IHR1bmcgY2hvIG5lbiB2YW4gbWluaCBuZ3VvaS4NCg0KQWkgY3VuZyB0aGF5IG5nYW5oIGdpYW8g ZHVjIFZpZXQgTmFtIGRhbmcgeHVvbmcgY2FwIHZhIGJlIHRoYSB0cmFtIHRyb25nLiBWYSBhaSBj dW5nIGRhbmggc3Uga2llbiBuaGFuIGN1bmcgaHkgdm9uZyBjdWEgbWluaCBkZSBjaG8gZG9pIG5o dW5nIGRvaSB0aGF5IHR1IG5ndW9pIGRhbSBuaGllbSBtb2kgbGEgb25nIE5ndXllbiBUaGllbiBO aGFuLCBCbyB0cnVvbmcgQm8gZ2lhbyBkdWMgVmlldCBOYW0uIE5odW5nIGh5IHZvbmcgbW9uZyBt YW5oIHZhIGtpZW4gbmhhbiBkYXkgY2hpdSBkdW5nLg0KDQpUdXkgdmF5LCBuZ29haSBuaHVuZyBo YW5oIGRvbmcsIG1hIGJhbiB0aGFuIHRvaSAtIG5oYWMgc2kgVHVhbiBLaGFuaCBjaGl1IHRyYWNo IG5oaWVtIHZlIHF1eWVuIHBoYXQgbmdvbiBjdWEgbWluaCAtIHRoYXkgcmFuZyBuYW5nIHRpbmgg dHJpbmggZGllbiBob24gbGEgaGFuaCBkb25nIHRodWMgdGUsIG9uZyBOZ3V5ZW4gVGhpZW4gTmhh biBkYSBraG9uZyBkYXAgdW5nIGR1b2MgeWV1IGNhdSBsYW5oIGRhbyB2YSBkb2kgcGhvIHRpbmgg aGluaCBwaGF0IHRyaWVuIGN1YSBkYXQgbnVvYy4NCg0KTmh1bmcgbm9pIGNvIHRoaSBjdSBiYXQg aG9wIHBoYXAsIG5odW5nIGNhdSBjaHV5ZW4gZGF1IHRyYW5oIG5vaSBibyBjdWEgdGhheSBnaWFv IERvYW4gVmlldCBLaG9hLi4uIG9uZyBsdW9uIGNvIG1hdCBraXAgdGhvaSB2YSBjaHVwIGFuaCBy YXQgZGVwIHZvaSBtb2kgbmd1b2kgbmh1IG1vdCBiaWV1IHR1b25nIGRhbmcgeWV1IG5odW5nIGto aSBkb2kgZGllbiB2b2kgbmh1bmcgZGllbiBiaWVuIG5odSB3ZWJzaXRlIGhhY2tlciBob2FjIHZ1 IGhvYyBzaW5oIDEwdCBiaSBraGFvIGN1bmcsIG9uZyBkZXUgaW0gbGFuZyB2YSBkYW4gcmEgY2Fj IG51b2MgY28gdGhpLCBjdSB0aGUgbmh1IHZ1IERvbmcgVGhhcCBsYSBuaHUgY2FjaCBjaHVjIGhp ZXUgdHJ1b25nLg0KDQpNb3QgdGllbmcgeGluIGxvaSBuaGFuIGRhbiwgZGFpIGRpZW4gY2hvIG5n YW5oIGdpYW8gZHVjIC0gY3VuZyBraG9uZyENCg0KVmllYyBjYWNoIGNodWMgZG8gY2hpIGxhIGFw IGR1bmcgaGFuaCBsYW5nIHBoYXAgbHkgbmhhIG51b2MsIGNvbiB0aHVjIHRoaSBjb25nIGx5IHhh IGhvaSB0aGVvIHVvYyBtdW9uIGN1YSBxdWFuIGNodW5nLCB0aGkga2hvbmcuIEFpIHNlIHRyYSBs b2kgY2hvIHRhdCBjYSBuaHVuZyBwaHUgaHV5bmggdmUgdmllYyBraHVuZyBob2FuZyBuaWVtIHRp biBjdWEgbmdhbmggZ2lhbyBkdWMga2hhbyB0cmE/IEFpIHNlIHRyYSBsb2kgY2hvIHR1b25nIGxh aSBob3QgaG9hbmcgY3VhIHRhdCBjYSBuaHVuZyBkdWEgdHJlIGtoaSBidW9jIGRlbiB0cnVvbmcg bWEgZ2lvIGRheSBjbyBuaHVuZyBjaHVuZyBjdSBybyByYW5nIGNobyB0aGF5IGNhbmggY3VhIHNh dSBkYSBkYW4gZGVuIGRvbiBjb25nIGFuPw0KDQpIYXkgdHUgY2h1YyBkaSwgb25nIE5ndXllbiBU aGllbiBOaGFuLCBkZSBkaWV1IHRodWMgdGUgZHVvYyBnaWFpIHF1eWV0IGJhbmcgbmh1bmcgbmd1 b2kgY28ga2hhIG5hbmcsIGtoYWMgaG9uLiBWYSBoYXkgdHUgY2h1YyBkZSB4YSBob2kgY29uIG5o aW4gdmFvIHZhIGhpZXUgcmFuZyBsdW9uZyB0YW0gdmEgdHJhY2ggbmhpZW0ga2hvbmcgY2hpIGJp IGRvaSBob2kgbyBjb25nIGRhbiBtYSBjb24gcGhhaSB0aGUgaGllbiBub2kgcXVhbiBjaHVjLg0K Vm9pIHR1IGNhY2ggbGEgbW90IGNvbmcgZGFuLCBsbyBtYW5nIHN1eSBuZ2hpIHZlIGRhdCBudW9j IG1pbmgsIHRvaSB4aW4gb25nIGhheSB0dSBjaHVjIGRpLiBUcnVvYyBraGkgbW9pIGNodXllbiBj byB0aGUgZHVvYyBkYXAgdmEgdm9pIHZhbmcgdGhlbyB0aG9pIGdpYW4uDQoNCkNodXllbiBrZSBy YW5nIGdpYW0gZG9jIG5oYSBtYXkgZGllbiBvIFBoYXAgZGEgeGluIHR1IGNodWMgdmkgbW90IGNv biBraGkgbG90IHZhbyBuaGEgbWF5IGRpZW4gdmEgY2hvYyBwaGEgbGFtIG1hdCBkaWVuIG1vdCB2 dW5nIHRyb25nIHZhaSB0aWVuZyBkb25nIGhvLiBHaWFtIGRvYyBoYW5nIGtob25nIEhhbiBRdW9j IHhpbiB0dSBjaHVjIHZpIG1vdCBjaGllYyBtYXkgYmF5IGN1YSBoYW5nIG9uZyBiaSByb2kgZG8g c3UgY28ga3kgdGh1YXQsIGx1YyBkbyBvbmcgZGFuZyBkaSBuZ2hpIG1hdCB2YSBjaG9pIGdvbGYu DQoNClJvaSBjdW5nIHNlIGNvIG5ndW9pIG5vaSByYW5nIHZpZWMgZ2F5IHJhIGNobyBiZSBUcmFt LCAxMCB0dW9pLCBiaSBwaGF0IHRhbSB0aGFuIGRvIGRvIGhpZXUgdHJ1b25nIHRydW9uZyBBbiBI aWVwIDIgdmEgY29uZyBhbiB4YSBjaHUga2hvbmcgcGhhaSBkbyBvbmcgTmd1eWVuIFRoaWVuIE5o YW4gZ2F5IHJhLiBIYXkgbmhpbiBsYWkgbmh1bmcgY2F1IGNodXllbiBrZSwgdmEgbmhpbiByYSBy YW5nOiBPIFBoYXAsIG5ndW9pIHRhIGtob25nIHRoZSBkb2kgdGhvYWkgdmEgZG8gbG9pIGNobyBt b3QgY29uIGtoaSwgY3VuZyBuaHUgb25nIGdpYW0gZG9jIGhhbmcgbWF5IGJheSBkbyBsb2kgY2hv IG5oYSBzYW4geHVhdCBkb25nIGNvIG1heSBiYXkgY3VuZyBuZ3VvaSBiYW8gdHJpIG5vLiBWYW4g ZGUgbyBkYXkgbGEgbHVvbmcgdGFtIHZhIHRyYWNoIG5oaWVtLiBDb24ga2hpIHRoaSBraG9uZyB0 aGUgY28gbHVvbmcgdGFtIHZhIG5ndW9pIHNhbiB4dWF0IG1heSBiYXkgY28gcXV5ZW4ga2h1b2Mg dHUgdHJhY2ggbmhpZW0gcXV5ZXQgZGluaCBjaHV5ZW4gYmF5IGRvLg0KDQpPbmcgTmd1eWVuIFRo aWVuIE5oYW4sIHhpbiBoYXkgdHUgY2h1YyBkaS4NCg0KVG9pIGtob25nIHRoZSBsYSBtb3Qgbmd1 b2kgZ2lvaSB2ZSBkb24gdHUgZGUgZ3VpIGNobyBvbmcsIHRvaSBjaGkgY28gdGhlIG5vaSBkYWkg dGllbmcga2hvYyBjdWEgY28gYmUgMTAgdHVvaSBkbyBiYW5nIGxvaSBoYXQgY3VhIG1pbmgsIHRy dW9jIGtoaSBubyBiaSB2dWkgbGFwIHRyb25nIGFuaCBzYW5nIGRvIHRoaSB2YSBkZW4gZmxhc2gg dHJvbmcgbmh1bmcgbGUgaG9pIGJpZXUgZGllbiB0aGFuaCBkYXQgZ2lhbyBkdWMgbmdheSBtYWks IG5nYXkgc2F1LiANCg0KU28gcGhhbiBjdWEgbW90IGNvbiBuZ3VvaSBkdSBjaGkgbW9pIGNvIDEw IG5hbSBzb25nLCBjdW5nIHBoYWkgZHVvYyB0aW5oIGJhbmcgaGFuaCB0cmluaCB0aHVjIHRoaSB0 aW5oIGtoaWV0IG5oYXQgY3VhIGRhbyBkdWMgZ2lhbyBkdWMsIGx1b25nIHRhbSB2YSB0cmFjaCBu aGllbS4NCg0KVG9pIGtob25nIHRpbiByYW5nIHhhIGhvaSBWaWV0IE5hbSBjaGkgY29uIGxhaSBz dSBidW9uIGJhIG5odSBuaHVvYyBjdWEgZGFtIGRvbmcgaGF5IHZvIHRpbmggdG9pIG11YyBjaGkg dGhhbmcgdGhvdCBrZXUgbGVuIG1vdCB0aWVuZyBvYW4gdGhhbiByb2kgdGhvaS4gWGEgaG9pIG5h eSBkYSBkdW9jIGhhbmggZG9uZywgZGUgeGF5IGR1bmcsIGRlIHRvdCBkZXAgaG9uIHZhIHRvaSBu Z2hpIG1pbmggcGhhaSBsZW4gdGllbmcgY2hvIHRydXllbiB0aG9uZyBkZXAgZGUgZG8gdm9pIHRh dCBjYSBuZ2hpIHN1eSBjdWEgbW90IGNvbmcgZGFuIGNvIHRyYWNoIG5oaWVtIHZvaSB4YSBob2kg bWluaCBkYW5nIHNvbmcuDQoNClR1YW4gS2hhbmgNCg0KKERlIHRoYW0ga2hhbyB0aG9uZyB0aW4g dGhlbSB2ZSBzdSBraWVuLCB4aW4gdmFvIGNhYyBkaWEgY2hpIHNhdToNCkJhbyBUdW9pIFRyZTog aHR0cDovL3d3dy50dW9pdHJlLmNvbS52bi90aWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTE5 NTg2NiZDaGFubmVsSUQ9Mw0KVGhhbmggRG9hbiBUcC5IQ006IGh0dHA6Ly93d3cudGhhbmhkb2Fu LmhvY2hpbWluaGNpdHkuZ292LnZuL3dlYi90aW50dWMvZGVmYXVsdC5hc3B4P2NhdC1pZD02ODUm Li4uDQpCYW8gZGllbiB0dSBWaWV0bmFtbmV0OiBodHRwOi8vdmlldG5hbW5ldC52bi9naWFvZHVj LzIwMDcvMDQvNjgzNzM1Lw0KaHR0cDovL3ZpZXRiYW8udm4vR2lhby1kdWMvTmdheS0yMC0xMS1o YXktMjctMTEvNDAxODAyMTUvMjAyLykgDQoNCmh0dHA6Ly93d3cueC1jYWZldm4ub3JnL25vZGUv NjQ3IFZ1IFF1YW5nIFZpZXQsICBOZ3VvbjogRGllbiBEYW4gDQoNClhpbiBkdW9jIGRvaSB0aG9h aSB2b2kgUGhvIFRodSB0dW9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiB2ZSB2YW4gZGUgZ2lhbyBkdWMN Cg0KVG9hbiB2YW4gYmFpIHZpZXQgdmUgdmFuIGRlIGdpYW8gZHVjIHRyb25nIHRpbmggdGhhbiBk b2kgdGhvYWkgdm9pIHBobyB0aHUgdHVvbmcgTmd1eWVuIFRoaWVuIE5oYW4sIGJvIHRydW9uZyBi byBnaWFvIGR1YyB2YSBkYW8gdGFvLiANCg0KTG9pIFRvYSBTb2FuIERpZW4gRGFuOiBEdW9pIHR1 YSBkZSAiVGFuZyBob2MgcGhpIDogVHJhY2ggbmhpZW0geGEgaG9pIHRyb25nIGdpYW8gZHVjIGNv IHNvIGRlbiBkYXUiLCBiYW8gTGFvIERvbmcgbmdheSAxNy4wOS4yMDA3IGRhIGRhbmcgcGhhbiBJ ICh0cm9uZyA0IHBoYW4pIGJhaSB2aWV0IGN1YSBuaGEga2luaCB0ZSBob2MgVnUgUXVhbmcgVmll dCAoQ3VjIHRob25nIGtlIExpZW4gSGllcCBRdW9jLCBOZXcgWW9yaykuIENodW5nIHRvaSB4aW4g ZGFuZyBkdW9pIGRheSB0b2FuIHZhbiBiYWkgdmlldCAoa2UgY2EgZGF1IGRlKSBjdWEgdGFjIGdp YS4NCiANCkkuIFRyYW8gZG9pIHZlIHZhbiBkZSB0cmFjaCBuaGllbSB4YSBob2kgdHJvbmcgZ2lh byBkdWMgY28gc28NCg0KVG9pIGtob25nIHBoYWkgbGEgbmhhIGdpYW8sIG1hIGxhIG5ndW9pIG5n aGllbiBjdXUga2luaCB0ZSwgY2h1IHlldSBsYSB0aG9uZyBrZSBraW5oIHRlLCBuaHVuZyBjbyBx dWFuIHRhbSBkZW4gZ2lhbyBkdWMgVmlldCBOYW0sIGNoaSB2aSBtb3QgbHkgZG8gZHV5IG5oYXQg bGEgdHJvbmcgbmhpZXUgbmFtIHRoZW8gZG9pIGNhYyBjdW9jIHRyYW5oIGx1YW4gdmUgZ2lhbyBk dWMsIGNhYyBwaGFuIGFuaCB0cmVuIGJhbyBjaGkgdmUgY2hhdCBsdW9uZyB0aGFwIHZhIHN1IGdp YW4gZG9pIHRyb25nIGdpYW8gZHVjIHF1YSB1IGxhIGtob25nIGNoYXAgbmhhbiBkdW9jLCBkbyBk byB0b2kgZGEgY28gZ2FuZyB0aW0gaGlldSB2YW4gZGUgcXVhIHRob25nIGtlLCBuaGF0IGxhIHRo b25nIGtlIHNvIHNhbmguIA0KDQpDaG8gZGVuIG5heSwgbmhpZXUgc28gbGlldSBvIFZpZXQgTmFt IGRhIGR1b2MgY29uZyBibywgbmh1bmcgc28gbGlldSB2ZSB0aHUgY2hpIGNobyBnaWFvIGR1YyB0 aGkgdmFuIGNodWEgZHVvYyBtaW5oIGJhY2ggaG9hIHZhIGNvIGxlIGNodWEgZHVvYyBraWVtIHRv YW4gZG9jIGxhcC4gTmdhbiBzYWNoIGNobyBnaWFvIGR1YyBkYSBkdW9jIEJvIGNvbmcgYm8gdHJl biBtYW5nLCBuaHVuZyBsYWkgcXVhIHUgdGhpZXUgY2hpIHRpZXQuIER1IHRoZSBuYW8gdGhpIG5o dW5nIHNvIGxpZXUgbmF5IGN1bmcgZ2l1cCB0b2kgY28gbW90IGNhaSBuaGluIGtoYWNoIHF1YW4g aG9uLiBDaG8gZGVuIG5heSwgcmF0IHRpZWMgbGEgY2h1YSBjbyBtb3QgY29uZyB0cmluaCBkYW5o IGdpYSBkb2MgbGFwIHZhIGRhbmcgdGluIGNheSBjdWEgZ2lvaSBjaHV5ZW4gZ2lhIHZlIGNoaSB0 aHUgY3VhIHR1bmcgdHJ1b25nLCB0dW5nIHRpbmgsIHZhIGNhIG51b2MgdmEgbG9haSBob2Mgc2lu aCBkdW9jIG5oYW4gdmFvIHRydW9uZyAocXVhIHRoaSBob2FjIHF1YSBjYWMgY3VhIGtoYWMgbmh1 IHRhaSBjaHVjLCBjaHV5ZW4gdHUpIGRlIGNvIHRoZSBwaGFuIHRpY2ggY2hvIHJvIHZhbiBkZSwg bmhhbSBsYW0gY28gc28gY2hvIHZpZWMgY2FpIGNhY2gsIG5hbmcgY2FvIGNoYXQgbHVvbmcgc3Ug ZHVuZyBkb25nIHRpZW4gY3VhIGRhbiwgcXVhIGRvbmcgdGh1ZSB2YSBkb25nIGhvYyBwaGkuIEto b25nIHRoZSBkYXQgdmFuIGRlIHRhbmcgaG9jIHBoaSBraGkgY2hpIHRpZXUgY2h1YSBkdW9jIG1p bmggYmFjaCBob2EsIGNodWEgZHVvYyBraWVtIHRvYW4gZG9jIGxhcCwgY2h1YSBkdW9jIHBoYW4g dGljaCBkYXkgZHUuIA0KVnUgS2llbSB0b2FuIG1vaSBkYXkgY3VhIEtpZW0gdG9hbiBOaGEgbnVv YyBjdW5nIGNobyB0aGF5IGxhIGRhIGNvIGhpZW4gdHVvbmcga2hvbmcgdG90IG5odSB2aWVjIHN1 IGR1bmcgNTMsNiB0eSBkb25nIGN1YSBraW5oIHBoaSBLSCZDTiBkZSBsYW0gY2h1eWVuIGtoYWMs IDE0LzMyIHRpbmggcGhhbiBibyB2YSBnaWFvIGR1IHRvYW4gbW90IHNvIGtob2FuIGNoaSBjaG8g c3UgbmdoaWVwIGdpYW8gZHVjIHZhIEtIJkNOIHRoYXAgaG9uIFRVIGR1IHRvYW4gbGEgNzgyIHR5 LCBjdW5nIG5odSBsYXkgdGllbiB0dSBjaHVvbmcgdHJpbmgga2llbiBjbyBob2EgdHJ1b25nIGhv YyBjaG8gdmF5IGxhaSBob2FjIGR1bmcgbGFtIGNodXllbiBraGFjLiANCg0KQ2hpbmggdmkgbHkg ZG8gbmF5IG1hIHRvaSB4aW4gcGhlcCBkdW9jIGRvaSB0aG9haSB2b2kgUGhvIFRodSB0dW9uZyB2 ZSBuaHVuZyBkaWV1IG9uZyBwaGF0IGJpZXUgdHJlbiBiYW8gU2FpIEdvbiBHaWFpIFBob25nICgx MC85LzIwMDcpIHZlIHZhbiBkZSB0YW5nIGhvYyBwaGkuIE5odW5nIHNvIGxpZXUgdG9pIGR1bmcg bGEgc28gbGlldSBjaGluaCB0aHVjIGN1YSBuaGEgbnVvYyBob2FjIFZpZXQgTmFtLCBNeSBoYXkg VHJ1bmcgUXVvYy4gTmh1bmcgZ2kgZG8gdG9pIHVvYyBsdW9uZyB0b2kgZGV1IG5vaSBybyB2YSBu ZXUgeWV1IGNhdSB0b2kgc2UgY3VuZyBjYXAuIA0KDQpUcmFvIGRvaSB2ZSBnaWFpIHBoYXAgY2hv IGdpYW8gZHVjIHBoYWkgYmF0IGRhdSB0dSB2aWVjIHhhYyBkaW5oIHF1YW4gbmllbSB2ZSBnaWFv IGR1Yy4gTmV1IGtob25nIHRoZSB0aGkgdmllYyBiYW4gdmUgZ2lhaSBwaGFwIHNlIGtob25nIHBo dSBob3AgdmkgcXVhbiBuaWVtIGRhIGtoYWMgdGhpIGdpYWkgcGhhcCB0YXQga2hhYy4gVHJ1b2Mg dGllbiB0b2kgeGluIGJheSB0byB2ZSBjYWNoIG5oaW4gY3VhIGhhdSBoZXQgY2FjIG5oYSBraW5o IHRlIHRoaSB0cnVvbmcgdmUgZ2lhbyBkdWMuIEdpYW8gZHVjIGhheSBiYXQgY3UgZGljaCB2dSBu YW8gY3VuZyBsYSBoYW5nIGhvYSB0aGVvIGNhY2ggbmhpbiBjdWEgY2h1bmcgdG9pLiBIYXUgaGV0 IGNhYyBoYW5nIGhvYSBkdW9jIHRyYW8gZG9pIHRoZW8gZGFuZyAidGllbiB0cmFvIGNoYW8gbXVj Ii4gQ28gdGllbiB0aGkgbXVhLCBraG9uZyB0aGkgdGhvaSwgdmEgYWkgbXVhIHRoaSBuZ3VvaSBk byBodW9uZy4gTmh1bmcgZGljaCB2dSBiYW8gdmUgYW4gbmluaCBxdW9jIGdpYSB0aGkgdm8gaGlu aCwga2hvbmcgdGhlIG11YSBiYW4gZHVvYywgdmEgbmV1IG1vdCBuZ3VvaSB0cmEgdGhpIG5odW5n IG5ndW9pIGtob25nIHRyYSBjdW5nIGR1b2MgaHVvbmcgYW4gbmluaC4gRG8gZG8gZ2lhaSBwaGFw IGxhIGRhbiBiaSBkb25nIHRodWUsIGJpIGJhdCBkaSBsaW5oIG5ldSBjYW4gZGUgYmFvIHZlIGFu IG5pbmguIENoaW5oIHF1eWVuIHRodWMgaGllbiB0cmFjaCBuaGllbSB4YSBob2kgbmF5LiANCg0K R2lhbyBkdWMgY2hvIHRyZSBlbSBjb24gdHVvaSB2aSB0aGFuaCBuaWVuIGN1bmcgZ2FuIG5odSB0 aGUsIGNodW5nIGxhbSBnaSBjbyB0aWVuIGRlICJ0aWVuIHRyYW8gY2hhbyBtdWMiLCBjaHVuZyBk dW9jIGdpYW8gZHVjIHRoaSBjYSB4YSBob2kgZHVvYyBuaG8uIE5ldSBjbyBtdWEsIHRoaSBjaGEg bWUgY2h1bmcgcGhhaSBtdWEsIGNodSBraG9uZyBwaGFpIGNoaW5oIGR1YSB0cmUuIENvIHRoZSB0 YSBjaG8gcmFuZyBkdWEgdHJlIGtob25nIG11YSBkdW9jIHRoaSBibyBtZSBjaHVuZyBwaGFpIGxh bSB2YSBkbyBkbyBnaWFvIGR1YyBsYSB0cmFjaCBuaGllbSBnaWEgZGluaC4gTmV1IGNoYXAgbmhh cCBsYXAgbHVhbiBuYXkgdGhpIHhhIGhvaSBkYSB0dSBuaGllbSB2b2kgY29uIG5ndW9pIHZpIHhh IGhvaSBuYW8gY3VuZyBjbyByYXQgbmhpZXUgY2hhIG1lIG5naGVvIGR1IGhvIGNvIG11b24gbXVh IGN1bmcga2hvbmcgY28ga2hhIG5hbmcuIERpY2ggdnUgZ2lhbyBkdWMgbGFpIGN1bmcgdm8gaGlu aCwga2hvbmcgdGhlIGJpZXQgbmdheSBjaGF0IGx1b25nIG5lbiBraG9uZyB0aGUgZGUgZGFuZyB4 ZW0geGV0IGNoaSBwaGkgY28geHVuZyBkYW5nIHZvaSBrZXQgcXVhIG5oYW4gZHVvYyBraG9uZywg dmEgYW5oIGh1b25nIGN1YSBnaWFvIGR1YyB0aGkgZGFpIGxhdSBjaG8gdG9hbiB4YSBob2ksIGRv IGRvIGNhbiBjbyB2YWkgdHJvIGN1YSB4YSBob2kgdHJvbmcgdmllYyBkYXQgcmEgdGlldSBjaHVh biBkZSBraWVtIHRyYS4gDQoNClhhIGhvaSBwaGFpIG5oYW4gdHJhY2ggbmhpZW0gY2hpIHRyYSBj aG8gZ2lhbyBkdWMgdHJlIGVtIHZpIHRoYW5oIG5pZW4gZGUgdGFvIHJhIHN1IGJpbmggZGFuZyB2 ZSBkaWV1IGtpZW4gYmFuIGRhdSBjaG8gbW9pIG5ndW9pIHRyb25nIHhhIGhvaSBiYW5nIGNhY2gg dGh1IHRodWUuIFZhIGN1bmcgdmkgbG9pIGljaCB4YSBob2ksIGtob25nIHRoZSBkZSB0cmUgZW0g dGhhdCBob2MuIERheSBsYSBkaWV1IGNvIGJhbiBtYSB0YSBjYW4gbmhpbiBuaGFuLiBPIG51b2Mg bmFvIGN1bmcgdGhlLCBkdSBsYSB0dSBiYW4gaGF5IGtob25nLCBnaWFvIGR1YyBjaG8gdGhhbmgg dGhpZXUgbmllbiBjb24gdHVvaSB2aSB0aGFuaCBuaWVuLCBjaHVhIHRoZSB0dSBxdXlldCBkaW5o IGNobyBtaW5oLCB0aGkgbmhhIG51b2MgdG8gY2h1YyB0cnVvbmcgY29uZyBtaWVuIHBoaSwgaG9h YyBtb2kgZGF5IGNvIGhpZW4gdHVvbmcgbGEgbmhhIG51b2MgdHJhIHBoaSB0dW9uZyBkdW9uZyB2 YSBkZSBjaGEgbWUgaG9jIHNpbmggdHUgY2hvbiB0cnVvbmcuIERheSBsYSBkdW9uZyBodW9uZyBj byBzbywgY28gdGhlIGdvaSBsYSBsYSAiZGluaCBodW9uZyB4YSBob2kgY2h1IG5naGlhIiBoYXkg dHJhY2ggbmhpZW0geGEgaG9pIG1hIG5oYSBudW9jIHBoYWkgdGh1YyBoaWVuLg0KTmV1IG5odSBu aGEgbnVvYyBWaWV0IE5hbSBjaGkgY28ga2hhIG5hbmcgY2hpIHRyYSBjaG8gZ2lhbyBkdWMgdGll dSBob2MsIGhheSBuaGEgbnVvYyBUcnVuZyBRdW9jIGNoaSBjbyB0aGUgY2hpIHRyYSBjaG8gZ2lh byBkdWMgdGlldSBob2MgdmEgdHJ1bmcgaG9jIGNvIHNvLCB2YSBkbyBkbyBjbyB0aHUgaG9jIHBo aSBvIGNhcCBraGFjLCB0aGkgbG8gdHJpbmggdmFuIGRvaSBob2kgaG9jIHBoaSBjaG8gZ2lhbyBk dWMgY28gc28gY2hvIGRlbiBoZXQgY2FwIHRydW5nIGhvYyBwaG8gdGhvbmcgcGhhaSB0dSB0dSBn aWFtIGNobyBkZW4ga2hpIGNvIHRoZSBtaWVuIHBoaSB0b2FuIGJvLiBDaGluaCBUcnVuZyBRdW9j IGRhIHR1eWVuIGJvIHhvYSB0aHUgaG9jIHBoaSBjaG8gZ2lhbyBkdWMgY28gc28gdmFvIG5hbSAy MDA3IG5heSwgZHUgaG9jIHBoaSBjdWEgaG8gY2hpIGJhbmcgMjAlIGNoaSBwaGkuIA0KDQpEYWkg dHVvbmcgVm8gTmd1eWVuIEdpYXAgZGEgbm9pIHJvIHZlIHRyYWNoIG5oaWVtIHhhIGhvaSBuYXkg KFNhaSBHb24gR2lhaSBQaG9uZywgMTAvOS8yMDA3KSA6ICIuLi5uZW4gZ2lhbyBkdWMgY3VhIHRh IGxhIG5lbiBnaWFvIGR1YyBjdWEgZGFuLCB2aSBkYW4sIGRvIGRhbi4gRGFuIGNodSB2YSBjb25n IGJhbmcgbGEgdGluaCB1dSB2aWV0IGN1YSBjaGUgZG8geGEgaG9pIGNodSBuZ2hpYSwgdHJ1b2Mg aGV0IHBoYWkgZHVvYyB0aGUgaGllbiB0cm9uZyBnaWFvIGR1YyB2YSB5IHRlLCBoYWkgbGluaCB2 dWMgdHJ1YyB0aWVwIGJvaSBkdW9uZyBjb24gbmd1b2kuIEJhYyBIbyBtb25nIG11b24gImFpIGN1 bmcgZHVvYyBob2MgaGFuaCIuIFZpIHZheSwgeHUgaHVvbmcgZHVuZyBkYW4gbGEgcGhhaSB0aWVu IHRvaSBibyBob2MgcGhpLiBOaGlldSBudW9jIHR1IGJhbiBjdW5nIGRhIGJvIGhvYyBwaGkgbyBj YXAgcGhvIHRob25nLCBjbyBudW9jIGJvIGhvYyBwaGkgbyBjYXAgZGFpIGhvYy4gRGF0IG51b2Mg Q3ViYSBjb24gbmhpZXUga2hvIGtoYW4gdmFuIGtpZW4gdHJpIHRodWMgaGllbiBob2MgdGFwIHZh IGNodWEgYmVuaCBtaWVuIHBoaS4iIA0KDQpJSS4gVHJhbyBkb2kgdmUgdGluaCBob3AgbHkga2hp IHNvIHNhbmggY2hpIHBoaSBnaWFvIGR1Yw0KDQpWZSBjaGkgcGhpIGNobyBnaWFvIGR1YywgUGhv IFRodSB0dW9uZyBwaGF0IGJpZXU6ICJWaSBkdSBjaGkgcGhpIGN1YSBxdW9jIGdpYSwgdHUgbmdh biBzYWNoIG5oYSBudW9jIHZhIGRvbmcgZ29wIHRydWMgdGllcCBjdWEgbmd1b2kgZGFuIChxdWEg aG9jIHBoaSB2YSBjaGkga2hhYykgY2hvIGdpYW8gZHVjIG8gTXkgbGEgMi44ODAgVVNEL25ndW9p L25hbSAobmFtIDIwMDQpLCBjb24gbyBWaWV0IE5hbSBsYSA1MCBVU0Qvbmd1b2kvbmFtICgyMDA2 KS4gVHVjIGxhIGhvIGNoaSBjaG8gbW90IG5ndW9pIG1vdCBuYW0gYmFuZyBjaHVuZyB0YSBjaGkg Y2hvIG1vdCBuZ3VvaSA1NyBuYW0hICIgDQoNCkRvaSB0aG9haSBsYWkgOiBEYXkgbGEgc28gc2Fu aCBraG9uZyBob3AgbHkuIENoaSBjbyB0aGUgc28gc2FuaCBtb3QgY2FjaCBob3AgbHkgYmFuZyBj YWNoIHNvIHNhbmggZHVhIHRyZW4gdHkgbGUgR0RQIGNoaSBjaG8gZ2lhbyBkdWMuIE15IGNoaSBj aG8gZ2lhbyBkdWMgNywyICUgY29uIHRhIGNoaSBoaWVuIG5heSBpdCBuaGF0IGxhIDgsMyAlIEdE UCwgY2FvIGhvbiBjYSBNeS4gDQoNCkNvbiBzbyA4LDMgJSBuYXkgdHUgZGF1IG1hIHJhPyBUdSBo YWkgbmd1b24sIG5ndW9uIG5nYW4gc2FjaCB2YSBuZ3VvbiB1b2MgbHVvbmcgZGFuIGRvbmcgY29u ZyBsYWkuIFRvbmcgY2hpIGNobyBnaWFvIGR1YyBnYW4gNCw4IHRpICRVUyB2YW8gbmFtIDIwMDYs IHRyb25nIGRvIDMsNDUgdGkgJFVTIGxhIHR1IG5nYW4gc2FjaCBuaGEgbnVvYyAoY29uIHNvIGNo aW5oIHRodWMpIHZhIDEsMyB0eSBkbyBuaGFuIGRhbiBkb25nIGdvcCB0aGVtLCBkdWEgdGhlbyB1 b2MgZG9hbiBsYSAyMSB0cmlldSBob2Mgc2luaCBiaW5oIHF1YW4gZG9uZyA2MyAkVVMgaGF5IDEg dHJpZXUgZG9uZyBtb3QgbmFtIChzaW5oIHZpZW4gZGFpIGhvYyAxNTAgJFVTL25hbSwgbWF1IGdp YW8gMTAwICRVUyAvbmFtLCBwaG8gdGhvbmcgNTAgJFVTL25hbSkuIA0KDQpTbyBzYW5oIHZvaSBN eSBjbyB0aGUgdmFuIGtobyBjaGFwIG5oYW4gZHUgbGEgc28gcXVhIHRpIGxlIG5odSB0aG9uZyBs ZSBxdW9jIHRlLCB2YXkgdGEgaGF5IHRodSBzbyBzYW5oIHZvaSBUcnVuZyBRdW9jLiBIbyBjaGkg dHJ1bmcgYmluaCBjaG8gbW90IGhvYyBzaW5oIGxhIDMzMiAkVVMgbW90IG5hbSwgc28gdm9pIFZp ZXQgTmFtIGxhIDIyNyAkVVMuIFRhdCBuaGllbiBzbyBzYW5oIG5heSBjdW5nIGNvbiBraGFwIGto aWVuZyB2aSB0aHUgbmhhcCB0cmVuIGRhdSBuZ3VvaSBUcnVuZyBRdW9jIGdhcCAzIFZpZXQgTmFt ICgyIDA1NSAkVVMgc28gdm9pIDY0MyAkVVMpLCB2YSBnaWEgY2EgbWFjIGhvbiBWaWV0IE5hbSBr aG9hbmcgMjAgJS4gTmh1bmcgbmh1IHZheSBjdW5nIGNobyB0aGF5IGxhIHZlIGNvbiBzbyB0dXll dCBkb2ksIHNhdSBraGkgZGlldSBjaGluaCBnaWEsIFZpZXQgTmFtIGtob25nIHRoYXAgaG9uIG5o aWV1IHNvIHZvaSBUUS4gSG9uIHRoZSwgZGFuIGRvbmcgZ29wIHF1YSBob2MgcGhpIHZhIHBodSBw aGkgbyBUcnVuZyBRdW9jIGNoaSBraG9hbmcgMjAgJSBjaGkgcGhpLCBzbyB2b2kgNDAgJSBvIFZp ZXQgTmFtLiBUcnVuZyBRdW9jIGxhaSBtb2kgdHV5ZW4gYm8gbGEgc2UgeG9hIGJvIGhvYW4gdG9h biBob2MgcGhpIHZhIHBodSBwaGkgbyBjYXAgcGhvIHRob25nIGN1b25nIGJhY2guIA0KDQpUaSBs ZSBuZ2FuIHNhY2ggbmhhIG51b2MgVmlldCBOYW0gY2hpIGNobyBnaWFvIGR1YyBkYSBsZW4gdG9p IDYgJSBHRFAgbmFtIDIwMDYuIEtob25nIGtlIGRhbiBkb25nIHRoZW0sIG5oYSBudW9jIHRhIGRh IGNoaSBjaG8gZ2lhbyBkdWMgdm9pIG1vdCB0eSBsZSBjbyB0aGUgc28gc2FuaCB2b2kgdHkgbGUg dHJ1bmcgYmluaCBjdWEgY2FjIG51b2MgcGhhdCB0cmllbiBjYW8gdHJlbiB0aGUgZ2lvaS4gQ2hp IHBoaSBuZ2FuIHNhY2ggY2hvIGdpYW8gZHVjIGN1YSB0YSBsYWkgdGFuZyByYXQgbmhhbmgsIG5h bSAyMDA3IGJhbmcgaG9uIGJvbiBsYW4gbmFtIDIwMDEsIHZpIG1vaSBuYW0gYmluaCBxdWFuIHRh bmcgMjcgJS4gTmV1IHNvIHZvaSBUcnVuZyBRdW9jLCBuZ2FuIHNhY2ggY2hpIGtob2FuZyAyLDgg JSBHRFAgdmEgdHkgbGUgbmF5IHZhbiBjaHVhIHRoYXkgZG9pLCB0aGkgbmhhIG51b2MgVmlldCBO YW0gZHVuZyBsYSBkYSBkYXQgZ2lhbyBkdWMgbGVuIGhhbmcgZGF1LCB0YXQgbmhpZW4gbGEgY2hp IHRyb25nIHZhbiBkZSBjaGkgY2hvIG5vLCBjaHUgY2h1YSBwaGFpIHRyb25nIHZhbiBkZSBkaWV1 IGhhbmggdmEgcXVhbiBseSBubyBkZSBkYXQgaGlldSBxdWEuIFRydW5nIFF1b2MgY2hpIGl0IGhv biwgbmh1bmcga2hvbmcgYWkgY28gdGhlIG5vaSBsYSBnaWFvIGR1YyBUcnVuZyBRdW9jIHRodWEg a2VtIGdpYW8gZHVjIFZpZXQgTmFtLiBWYXkgdGhpIGRlIGNhaSBjYWNoIGdpYW8gZHVjIHZhIHRh bmcgY2hhdCBsdW9uZyBnaWFvIGR1YywgaGF5IGxhbSBtb3QgY3VvYyBkYW5oIGdpYSB0b2FuIGRp ZW4gdmUgcXVhbiBseSB2YSBjaGkgdGlldSB0cnVvYyBkYSwgdmEgZGlldSBuYXkgQm8gZ2lhbyBk dWMgY2FuIG1pbmggYmFjaCBob2EgdG9hbiBibyBjaGkgcGhpIHZlIGdpYW8gZHVjLg0KVmllYyBk YW5oIGdpYSBjYW4gcGhhaSB0aG9uZyBxdWEgbW90IHV5IGJhbiBnb20gY2FjIGNodXllbiBnaWEg dmUgZ2lhbyBkdWMsIGtpbmggdGUgdmEgdGFpIGNoaW5oIGRvYyBsYXAuIEtob25nIGNvIGRhbmgg Z2lhIHRoaSBraG9uZyB0aGUgY2FpIGNhY2ggZHVvYy4gQ2hpIG5oYW0gdGFuZyBjaGkgdGhpIGNo aSBsYW0gcGhpIHRpZW4gY3VhIGRhbi4gDQoNCklJSS4gVHJhbyBkb2kgdmUgdHJhY2ggbmhpZW0g eGEgaG9pIGRvaSB2b2kgZ2lhbyBkdWMgY28gc28NCg0KVmUgaG9jIHBoaSBjaG8gZ2lhbyBkdWMs IFBobyBUaHUgdHVvbmcgcGhhdCBiaWV1OiBUaWV1IGhvYyB2YW4gZHVvYyBtaWVuIHBoaSBuaHVu ZyBjaHVuZyB0YSBjdW5nIGRlIG1vdCAia2VuaCIgZGUgZ2lhIGRpbmggbmFvIG11b24gdHJhIHRp ZW4gZGUgZHVvYyBob2MgdG90IGhvbiBzbyB2b2kgdGlldSBob2MgbWllbiBwaGkuIFRIQ1MsIFRI UFQgZGFuZyBkb25nIGhvYyBwaGkgbmh1bmcgZGlldSBraWVuIGhvYyBoYW5oIHZhbiByYXQga2Vt LCB0aGlldSBtYXkgdGluaCwgY28gc28gdmF0IGNoYXQuLi4gVmkgdmF5LCBuZXUga2hvbmcgZGF1 IHR1IHRoZW0gY2hvIG5oYSB0cnVvbmcgdHUgbmhpZXUgbmd1b24gdGhpIGtob25nIHRoZSB0YW5n IGNoYXQgbHVvbmcgZ2lhbyBkdWMgY3VuZyBuaHUgZ29wIHBoYW4gZGFtIGJhbyBkb2kgc29uZyBj dWEgdGhheSBjbyBnaWFvLiBUdXkgbmhpZW4sIGNhbiBuaGFuIG1hbmggcmFuZywgYmFpIHRvYW4g dGFuZyBkYXUgdHUgY2hvIGdpYW8gZHVjLCB0cm9uZyBkbyBjbyBwaHVvbmcgYW4gdGFuZyBob2Mg cGhpIHZhbiBwaGFpIGRhdCBtdWMgdGlldSBzbyBuZ3VvaSBkaSBob2MgdGFuZyB0aGVtLiBWaSB2 YXksIHNlIGh1eSBkb25nIHRoZW0gbmd1b24gbHVjIGN1YSB4YSBob2kgYmFuZyBuaGlldSBjYWNo IG5odSBkb25nIGhvYyBwaGksIGRvbmcgZ29wIHR1IG5ndXllbiwgbW8gdHJ1b25nIHR1IHRodWMs IGRhbiBsYXAuLi4gDQoNCkRvaSB0aG9haSBsYWkgOiBEaWV1IDU5IGN1YSBIaWVuIHBoYXAgZ2hp OiAiQmFjIHRpZXUgaG9jIGxhIGJhdCBidW9jLCBraG9uZyBwaGFpIHRyYSBob2MgcGhpLiAiLiBD aG8gbmVuIGRpZXUgUGhvIFRUIHBoYXQgYmlldSBsYSBob2FuIHRvYW4gZHVuZyBkYW4uIFRhdCBu aGllbiB0b2kgY29uIGJhbiBraG9hbiBtb3QgZGlldSwgdGFpIHNhbyBIaWVuIFBoYXAgbGFpIGto b25nIGdoaSBsYSBtYXUgZ2lhbyBsYSBiYXQgYnVvYy4gVG9pIGNoaSBjbyB0aGUgaGlldSBkdW9j IG5ldSBtYXUgZ2lhbyBsYSBuaGEgdHJlLCB2YSBsb3AgMSBtb2kgbGEgbG9wIGRhdSB0aWVuIGhv YyBjaHUuIE5ldSBuZ2F5IGxvcCBtYXUgZ2lhbyBkYSBob2MgY2h1IHRoaSBjb24gbmhhIG5naGVv IGRhIHRodWEgbmdheSB0dSBsb3AgMS4gTmdvYWkgcmEsIGNvbiBjbyB2YW4gZGUgY2FuIHRodWMg aGllbiBsYSB4b2EgYm8gdGF0IGNhIG5odW5nIGJpZW4gY2h1bmcgY3VhIGhvYyBwaGkgbmh1IGNh YyBraG9hbiBkb25nIGdvcCwgdHUgbG8geGF5IGR1bmcgdHJ1b25nIGNobyBkZW4gdmUgc2luaCwg di52LiBDb24gdG9pIGhvYyBvIHRydW9uZyBjb25nIE15LCBvIGNhcCBjdW9uZyBiYWNoLCBjdW5n IGtob25nIHBoYWkgZG9uZyBtb3QgZG9uZy4gSG9jIHNpbmggZ2lhIGRpbmggbmdoZW8gbGFpIGR1 b2MgY2FwIHBoaWV1IGFuIHRydWEuIEhvYXQgZG9uZyBjdWEgSG9pIHBodSBodXluaCBob2FuIHRv YW4gY28gdGluaCBjYWNoIGRvbmcgZ29wIHR1IG5ndXllbiwgYmFuZyB0aGkgZ2lvIGNodSBraG9u ZyBiYW5nIHRpZW4sIGNvbiBiYW5nIHRpZW4gdGhpIGFpIGRvbmcgYmFvIG5oaWV1IHZhbyBtb3Qg aG9hdCBkb25nIG5hbyBkbyB0aGkgdHV5LCB2YSBoYXUgaGV0IGxhIGtob25nIGRvbmcuIFZheSB0 aGkgbmVuIHhvYSBibyB0cm8gZXAgZG9uZyBiYW5nIGNhY2ggbmhhbiBkYW5oIGRhIHNvLiBEYXkg bGEgY2h1eWVuIG5obyBuaHVuZyBraG9uZyBoYW4gbmhvLiANCg0KQ2h1eWVuIGxvbiBsYSBkZSBu Z2hpIGN1YSBQaG8gVGh1IHR1b25nIGxhcCByYSBjYWMgdHJ1b25nIGNvbmcgY2hvIGdpYSBkaW5o IG5hbyBtdW9uIHRyYSB0aWVuIGRlIGR1b2MgaG9jIHRvdCBob24gc28gdm9pIG1pZW4gcGhpLiBZ IGtpZW4gbmF5IHJvIHJhbmcgbGEgcGhhbiBiaWV0IGRvaSB4dSBuZ3VvaSBuZ2hlbyB2YSBuZ3Vv aSBnaWF1LiBDdW5nIGxhIHRydW9uZyBjb25nIGNhLCBuaHVuZyBjbyB0aWVuIHRoaSB2YW8gY2hv IHRvdCBraG9uZyBjbyB0aWVuIHRoaSB2YW8gY2hvIHRlLiBDb25nIGx5IG8gY2hvIG5hbz8gTmhp ZW0gdnUgY3VhIG5oYSBudW9jIGNvIHRpbmggeGEgaG9pIGxhIGNvIGdhbmcgdGFvIHJhIGNvIGNo ZSBiaW5oIGRhbmcgY2hvIG1vaSBjb25nIGRhbi4gVG9pIGNodWEgdGhheSBtb3QgbnVvYyB0dSBi YW4gbmFvIGxhbSBjaHV5ZW4gbmF5LiBEYSBsYSB0cnVvbmcgY29uZyBjdWEgbmhhIG51b2MgdGhp IG1vaSBjb25nIGRhbiBwaGFpIGR1b2MgZG9pIHh1IG5nYW5nIG5oYXUsIHZhIGNvIGN1bmcgY28g aG9pIGdpb25nIG5oYXUuIE8gY2FjIG5vaSwgY3VuZyBjbyB0cnVvbmcgY29uZyB2b2kgY2hhdCBs dW9uZyBkYWMgYmlldCB0b3QsIGNvIHRoZSBnb2kgbGEgdHJ1b25nIGNob24sIG5odW5nIG1vaSBo b2Mgc2luaCBkZXUgY28gcXV5ZW4gdGhpIHZhbywgdmEga2hpIHZhbyB0aGkgdmFuIGtob25nIGJp IGRvbmcgaG9jIHBoaS4gTyB0aGFuaCBwaG8gTmV3IFlvcmsgbm9pIHRvaSBkYW5nIG8gY3VuZyBj byBtb3Qgc28gdHJ1b25nIG5odSB0aGUuIE5ndXllbiB0YWMgYmluaCBkYW5nIHRyb25nIEhpZW4g cGhhcCBjdWEgdGEga2hvbmcgY2hvIHBoZXAgbW90IG5oYSBudW9jIHRodWMgaGllbiBkaWV1IG9u ZyBjaHUgdHJ1b25nLiBEYXkgbGEgZGlldSB2aSBoaWVuLiANCk9uZyBjbyBwaGF0IGJpZXU6ICJL aG8ga2hhbiB0aHUgaGFpIGxhIG5odW5nIG5ndW9pIGNvIHRodSBuaGFwIGNhbyBob24sIG11b24g ZG9uZyB0aWVuIG5oaWV1IGhvbiBkZSBjb24gaG8gZGkgaG9jIHRyb25nIGRpZXUga2llbiB0b3Qg aG9uIHRoaSBubyBsYWkgdnVvdCBraHVuZywgdHJ1b25nIGtob25nIHRodSBkdW9jLiIgRGF5IGRh dSBjbyBwaGFpIGxhIGRpZXUga2hvIGtoYW4uIERpZXUgMzYgSGllbiBwaGFwIGNobyBwaGVwIGxh cCB0cnVvbmcgdHUuIE5odW5nIG5ndW9pIGNvIHRpZW4gY28gdGhlIGx1YSBjaG9uIGhvYyB0cnVv bmcgdHUgY2hhdCBsdW9uZyBjYW8uIA0KDQpWZSB0eSBsZSBob2MgcGhpLCBQaG8gVGh1IHR1b25n IHBoYXQgYmlldTogVmkgdmF5LCBraGkgZGF0IHZhbiBkZSBkaWV1IGNoaW5oIGRlIGFuIGhvYyBw aGksIG5ndXllbiB0YWMgY2FuIGJhbiBsYSBob2MgcGhpIHBoYWkgcGh1IGhvcCB2b2kga2hhIG5h bmcgY2hpIHRyYSBjdWEgbmd1b2kgZGFuLiBUdWMgbGEsIG5ndW9pIGNvIHRodSBuaGFwIHRoYXAg ZG9uZyBpdCwgdGh1IG5oYXAgY2FvIGhvbiBjdW5nIGRvbmcgY3VuZyAxIHRpIGxlIG5odW5nIGdp YSB0cmkgdHV5ZXQgZG9pIGxvbiBob24gc28gdm9pIG5ndW9pIG5naGVvLiBLaGkgbm9pIGRlbiBk b25nIGhvYyBwaGkgdGhlbyBraGEgbmFuZyBjaGkgdHJhIHRoaSBuZ2F5IHRyb25nIGRvIGN1bmcg ZGFtIGJhbyB0aW5oIGNvbmcgYmFuZy4gDQoNCkRvaSB0aG9haSBsYWk6IERheSBsYSBtb3QgeSBr aWVuIG1hIGNhYyBuaGEga2luaCB0ZSBraG9uZyB0aGUgZG9uZyB5IHZvaSBvbmcuIExhbSBzYW8g Y28gc3UgY29uZyBiYW5nIHZhIHF1eWVuIHR1IGRvIGx1YSBjaG9uIHZlIGdpYWkgcGhhcCB0cmEg Z2lhIGtoYWMgbmhhdSBjaG8gY3VuZyBtb3Qgc2FuIHBoYW0uIE5ldSB0aGUgc2FvIGtob25nIHRy aWVuIGtoYWkgeSBraWVuIG5heSBkZW4gbW9pIGxvYWkgaGFuZyBob2Ega2hhYz8gQ2FpIGNoaW5o IHNhY2ggaGFpIGdpYSwgaGF5IHJhdCBuaGlldSBnaWEsIGNobyBtb3Qgc2FuIHBoYW0gbmh1IG5o YXUgbmh1IG9uZyBkZSBuZ2hpIHRoaSBjYWMgbmhhIGtpbmggdGUgbyBkYXQgbnVvYyB0YSwga2Ug Y2EgdG9pLCBkYSBtYXQgZ2FuIDMwIG5hbSBrZSB0dSAxOTgwIGtodXllbiBuZ2hpIGxhbmggZGFv IHhvYSBiby4gQm9pIHZpIG5vIGRhIHRhbyByYSBiaWVuIGNodW5nIGxvaSBkdW5nIGFuIGNoZW5o IGxlY2guIFZhIHhpbiBub2ksIGNhaSBnaWEgZGUgYmFvIGRhbSByYW5nIGtob25nIGNvICJiaXAg Ym9tIiByYXQgY2FvLiBMYW0gc2FvIG1vaSB0cnVvbmcgaG9jIGNvIHRoZSB0aGVvIGRvaSB0aHUg bmhhcCBjdWEgdHVuZyBnaWEgZGluaCBkZSB0aHVjIGhpZW4geSBkbyBjdWEgb25nLiBPbmcgY28g bmdoaSByYW5nIG1vaSBnaWEgZGluaCBvIFZpZXQgTmFtIGRldSBraGFpIHRodSBuaGFwPyBPbmcg Z2lhaSBxdXlldCBzYW8gbmV1IGdpYSBkaW5oIGNvIDEgY29uIHZhIGdpYSBkaW5oIGNvIDIgaG9h YyBob24gdGhlIGRpIGhvYz8gVmEgYWkgc2UgdGh1YyBoaWVuIHZpZWMgdHJ1bmcgcGhhdC4gU2Ug Y28gbmh1bmcgbmd1b2kgYmluaCB0aHVvbmcgbmV1IGdpYW4gZG9pIGR1b2MgdGhpIGhvIHNlIGxh bSwgbmh1IHZheSBuZ2F5IHR1IG5obyBkdWEgYmUgZGEgaG9jIGR1b2MgdGhvaSBodSB0YXQgeGF1 IHZpIGNoaW5oIGNvIGNoZSBtYSBvbmcgZGluaCBjaG8gcmEgZG9pLiANClRodWEgb25nLCBjYWMg bnVvYyB0aGkgdHJ1b25nIHNlIGRhbmggdGh1ZSB0aHUgbmhhcCwgbmd1b2kgZ2lhdSB0cmEgdHkg bGUgY2FvIGhvbiBuZ3VvaSBuZ2hlbywgdm9pIG1vdCBtdWMgZGljaCBybyByYW5nIGxhIHBoYW4g Ym8gbGFpIHRodSBuaGFwIHRyb25nIHhhIGhvaS4gRGlldSBiYXQgY29uZyBuYXkgbGEgbmhhbSB0 YW8gcmEgYW4gc2luaCBrZSBjYSBoYWkgaG9hIHhhIGhvaSB2YSB0YW8gcmEgY28gaG9pIGJpbmgg ZGFuZyBjaG8gY29uZyBkYW4uIA0KDQpWZSBkdSBraWVuIGFwIGR1bmcgaG9jIHBoaSBraGFjIG5o YXUsIFBobyBUaHUgdHVvbmcgVHV5ZW4gYm86IER1IGtpZW4gc2UgY28ga2hvYW5nIDIwJSBuZ3Vv aSBkYW4gdHJvbmcgMSBkaWEgcGh1b25nIGNvIG5odSBjYXUgZHVvYyBtaWVuLCBnaWFtIGhvYyBw aGkuIFZvaSBuaG9tIGdpYSBkaW5oIGNvIHRodSBuaGFwIGNhbyBob24gbXVjIGJpbmggcXVhbiBj dWEgZGlhIHBodW9uZywgbW9uZyBtdW9uIGRvbmcgZ29wIG11YyBob2MgcGhpIGNhbyBob24gZGUg Y29uIGVtIGhvIGhvYyBvIG5odW5nIHRydW9uZyBjbyBjaGF0IGx1b25nIHRvdCBob24gY2h1YW4g dG9pIHRoaWV1IHRoaSBuaGEgbnVvYyBjaG8gcGhlcCBjbyB0cnVvbmcgY2hhdCBsdW9uZyBjYW8g dGh1IHBoaSBjYW8gaG9uLiBUdXkgbmhpZW4sIHRpIGxlIGNhYyB0cnVvbmcgdGh1IHBoaSBjYW8g cGhhaSBuaG8gdmEgc2UgZGlldSBjaGluaCB0dXkgdmFvIHRpbiBoaWV1IGN1YSBjdW9jIHNvbmcs IG5ldSBjbyBuaHUgY2F1IGxvbiBob24gdGhpIG1vIHJvbmcuIA0KDQpEb2kgdGhvYWkgbGFpOiBO aHUgdmF5IGxhIGhpbmggbmh1IG9uZyBraG9uZyBhcCBkdW5nIGJpZW4gcGhhcCBkb25nIGhvYyBw aGkgdGhlbyB0eSBsZSB0aHUgbmhhcCBuaHUgb25nIGdpYWkgdGhpY2ggbyB0cmVuIG1hIGxhIGNo byBwaGVwIGNvIHRydW9uZyBjb25nIGhvYyBwaGkgY2FvIGNobyBjb24gbmhhIGdpYXUsIGNvIHRy dW9uZyBjb25nIGNobyBjb24gbmhhIG5naGVvLCB2YW4gcGhhaSBkb25nIGhvYyBwaGksIG5odW5n IG5ldSBuZ2hlbyBxdWEgdGhpIGR1b2MgbWllbiBnaWFtLiBIZSB0aG9uZyB0byBjaHVjIGRlIG5n aGkgbmF5IHRvaSBjaHVhIHR1bmcgdGhheSBvIG51b2MgbmFvIHRyZW4gdGhlIGdpb2kuIE5vIGJh dCBjb25nIG5odSB0b2kgbm9pLCBsYWkgcGh1YyB0YXAgdmUga2llbSB0cmEgdGhpIHRvaSBuZ2hp IGNvIGxlIG5oaWV1IGdpYW8gdmllbiB0cm9uZyB0cnVvbmcsIGNvbmcgY2h1YyBjdWEgQm8gdmEg c28gcGhhaSBob2MgImxhbSBjb25nIGFuIiBkZSB0aGVvIGRvaSBhcCBkdW5nIGNobyBkdW5nLiAN Cg0KSVYuIFRyYW8gZG9pIHZlIHN1IGNhbiB0aGlldCBjdWEgaG9jIHBoaSBkYWkgaG9jDQoNClZl IGNoaSBwaGkgY2hvIGRhaSBob2MsIFBobyBUaHUgdHVvbmcgcGhhdCBiaWV1OiBEb2kgdm9pIGdp YW8gZHVjIGRhaSBob2MsIGhpZW4gbmdhbiBzYWNoIGN1YSBiYWMgaG9jIG5heSBjaGllbSAxNiwy ICUgbmdhbiBzYWNoIGRhbmggY2hvIGdpYW8gZHVjLC4uLiBDaHVuZyB0YSBkYW5nIHBoYXQgdHJp ZW4gbW90IG5lbiBraW5oIHRlIGNhbiBjbyBuaGFuIGx1YyB0cmluaCBkbyBjYW8gbmh1bmcgY2hp IGNobyB0b2FuIGJvIGJhYyBkYWkgaG9jIGdvbSAxLDQgdHJpZXUgc2luaCB2aWVuIGNoaSBiYW5n IGhvbiBwaGFuIG51YSBzbyB2b2kgY2hpIGNobyBnaWFvIGR1YyB0aWV1IGhvYyAoMjcsNCAlKS4g SGllbiBuYXksIGhvYyBwaGkgZGFpIGhvYyBjdWEgY2h1bmcgdGEga2hvYW5nIDIwMCAwMDAgZG9u Zy90aGFuZywgdHVjIGtob2FuZyAxNTAgVVNEL25hbSwgdHJvbmcga2hpIG8gTXksIG8gQW5oLCBk YSBzbyB0dSAxMCAwMDAgVVNEIC0gMTUgMDAwIFVTRC9uYW0uIA0KDQpEb2kgdGhvYWkgbGFpOiBU b2kgZG9uZyB5IHZvaSBjaHUgdHJ1b25nIHRodSBob2MgcGhpIGNobyBnaWFvIGR1YyBkYWkgaG9j LCB0dXkgbmhpZW4gZGUgY28gbW90IG5lbiBnaWFvIGR1YyBjbyBjaGF0IGx1b25nIHRoaSB2YW4g a2hvbmcgdGhlIGtob25nIGNvIGJhbiB0YXkgbmhhIG51b2MgdmEgc3UgZG9uZyBnb3AgdHUgbmd1 eWVuIGN1YSB4YSBob2kgZGFuIHN1LiBWYSBvIGRhdSBjdW5nIHZheSwgaG9jIHBoaSBraG9uZyBw aGFpIGxhIGNoaW5oLiBIb2MgcGhpIGtob25nIHRob2kgY3VuZyBraG9uZyB0YW8gcmEgY2hhdCBs dW9uZywgbWEgcGhhaSBuaGluIHhhIGhvbi4gVGF0IG5oaWVuLCBjaHVuZyB0YSBraG9uZyB0aGUg c28gdm9pIE15IHZhIG5oaWV1IG51b2MgdHJlbiB0aGUgZ2lvaS4gTmdheSBjYSBnaWFvIGR1YyBk YWkgaG9jIG8gVGhhaSBMYW4gY3VuZyBob24gaGFuIHRhLCBkdSB0YSBob24gaGFuIGhvIHZlIHNv IG5ndW9pIGNvIGJhbmcgdGllbiBzaS4gVGhlIG5odW5nIHRhIG5lbiB0dSBob2ksIHRhaSBzYW8g YmF5IGdpbywgbmdheSBNeSBjdW5nIGxhaSBsbyBuZ2FpIHZlIHN1IHRoYW5oIGNvbmcgY3VhIGhl IHRob25nIGdpYW8gZHVjIFRydW5nIFF1b2MgdHJvbmcgdmllYyBjaG8gcmEgZG9pIHJhdCBuaGll dSBreSBzdSB2YSBjYWMgbmhhIGtob2EgaG9jPyANCg0KUXVhIHNvIGxpZXUgVHJ1bmcgUXVvYyBj b25nIGJvIChjb24gVmlldCBOYW0gdGhpIGtob25nKSwgdG9pIHRpbmggZHVvYyBsYSBjaGkgcGhp IGdpYW8gZHVjIG1vdCBzaW5oIHZpZW4gZGFpIGhvYyBtb3QgbmFtIGxhIDEuMjc3ICRVUywgdHJv bmcgZG8gbmdhbiBzYWNoIGJvIHJhIGxhICQ2MTIsIGhvYyBwaGkgbGEgJDM2OCwgcGhhbiBjb24g bGFpIGxhIHR1IHF1eSBkb2FuIHRoZSB4YSBob2kuIFZpZXQgTmFtIGNoYWMgbGEgdGhhcCBob24g bmhpZXUgbmh1bmcgQm8gZ2lhbyBkdWMga2hvbmcgY29uZyBibyBzbyBsaWV1IGRlIHRpbmgsIGNv biBvbmcgUGhvIFRodSB0dW9uZyB0aGkgY2hpIGR1YSByYSBob2MgcGhpIGxhICQxNTAvbmFtLCBj aHUga2hvbmcgZHVhIHJhIGNoaSBwaGkgbmhhIG51b2MuIA0KDQpYZW0geGV0IGt5LCB0YSB0aGF5 IHJvIGxhIFRydW5nIFF1b2MgZGEgcGhhdCB0cmllbiBnaWFvIGR1YyBjbyBjaG9uIGxvYyB2YSBo byBkYSBkYXQga2UgaG9hY2ggeG9hIGJvIHRydXllbiB0aG9uZyBnaWFvIGR1YyBiYXQgY2h1b2Mg TGllbiBYbywgdGFwIHRydW5nIGNhYyB0cnVvbmcgbmhvIG1vdCBuZ2FuaCB2YW8gdHJ1b25nIGRh aSBob2MgZGEgbmdhbmgsIGtldCBob3AgbmdoaWVuIGN1dSB2YSBnaWFuZyBkYXkgdGFpIHRydW9u ZywgdmEgdGFwIHRydW5nIHhheSBkdW5nIG1vdCBzbyB0cnVvbmcgY28gbmdoaWVuIGN1dSBjbyB0 YW0gcXVvYyB0ZS4gVG9pIHNlIGtob25nIHRoZSBkaSB2YW8gY2hpIHRpZXQuIA0KDQpUb2kgdGhh eSBobyBkYXQgdmFuIGRlIHF1eSBobyB0aW5oLCBtYWMgZHUga2hvbmcgcXVlbiBtbyByb25nLiBE byBkbyBtYSBoaWVuIG5heSBobyB0aHVhIHRhIHZlIGx1b25nLiBIbyBjaGkgY28gMSwxICUgZGFu IHNvIGxhIHNpbmggdmllbiBkYWkgaG9jIGNvbiB0YSBkYSBsZW4gZGVuIDEsNiAlLCB0dWMgbGEg Z2FuIGdhcCBydW9pIGhvLiBUdWMgbGEgdGEgcGhhdCB0cmllbiBxdWEgbmhhbmgsIG1vIGRhaSB0 cmEsIGNobyBiYW5nIHRob2EgdGh1ZSBtb2kgbmd1b2ksIGJhdCBrZSBjaGF0IGx1b25nLiBOZXUg dGhlbyBrZSBob2FjaCBvbmcgZGF0IHJhIHRydW9jIGRheSBsYSB0YW5nIHRpIGxlIHNpbmggdmll biB0cmVuIGRhbiBzbyBsZW4gMiUgdmFvIG5hbSAyMDEwIHRoaSB0b2kgbmdoaSByYW5nIG1pbmgg ZGFuZyBkaSB0aGVvIGNvbiBkdW9uZyBwaGEgc2FuIGdpYW8gZHVjLiBIYXkga2llbSBjYWNoIHRh bmcgY2hhdCBsdW9uZyBsZW4sIHRydW9jIGtoaSBkYXQgdmFuIGRlIHNvIGx1b25nLiBUb2kgaGV0 IHN1YyBraW5oIG5nYWMga2hpIG5oaW4gdGhheSBzbyBzaW5oIHZpZW4gdHJvbmcgY2FjIGRhaSBo b2MgVmlldCBOYW0gOiBEYWkgaG9jIFF1b2MgZ2lhIFRQSENNIDgxIG5nYW4sIERhaSBob2Mga2lu aCB0ZSBUUEhDTSAzNCBuZ2FuLCBEYWkgaG9jIEh1ZSA4MSBuZ2FuLCBEYWkgaG9jIERhIE5hbmcg NTIgbmdhbiwgRGFpIGhvYyBtbyBIYSBOb2kgNDYgbmdhbiwgRGFpIGhvYyBUaGFpIE5ndXllbiAz NCBuZ2FuLCB2LnYuLi4gRGF5IGxhIG5odW5nIGRhaSBob2MgdmFvIGhhbmcga2hvbmcgbG8gbmhh dCB0aGUgZ2lvaS4gTyBNeSwgZGFpIGhvYyBsb24gbmhhdCBsYSBBcml6b25hIFN0YXRlIGN1bmcg Y2hpIGNvIGtob2FuZyA1MiBuZ2FuIHNpbmggdmllbi4gQ2FjIGRhaSBob2MgaGFuZyBkYXUgY3Vh IE15IGNoaSBraG9hbmcgMTUgbmdhbi4gDQpUb2kga2hvbmcgaGlldSB0cm9uZyBtb2kgZGFpIGhv YyBWaWV0IE5hbSBjbyBiYW8gbmhpZXUgc2luaCB2aWVuIGxhIGNoaW5oIGtob2EsIGNvbiBiYW8g bmhpZXUgbGEgdGFpIGNodWMsIGNodXllbiB0dSwgdi52Li4uIFNvIGx1b25nIGRhaSBob2MgdmEg Y2FvIGRhbmcgY3VuZyBtb2MgcmEgbmh1IG5hbSwgaGllbiBuYXkgY29uIHNvIGNoaW5oIHRodWMg bGEgMzIyLiBTbyB2b2kgVHJ1bmcgUXVvYyB0aGkgc28gbHVvbmcgY3VhIHRhIG5heSBiYW5nIDE3 ICUgY3VhIGhvIG5odW5nIGRhbiBzbyB0aGkgY2hpIGJhbmcgNiw3ICUuIE5odSB2YXksIHJvIHJh bmcgbGEgdGEgY2hheSB0aGVvIHNvIGx1b25nLCB2YSBkbyBkbyB0aGlldSB0aWVuLCBtYSBsYWkg Y29uIHRoaWV1IGtpZW0gc29hdCwgdGhpZXUgbGFuaCBkYW8sIHRoaWV1IGh1b25nIHBoYXQgdHJp ZW4gZG8gZG8gdGhpZXUgY2hhdCBsdW9uZy4gVG9pIG5naGkgbmhhIG51b2MgdGEgbmVuIGRhbmgg Z2lhIGxhaSBwaHVvbmcgaHVvbmcgcGhhdCB0cmllbiBnaWFvIGR1YyBkYWkgaG9jLCB0aGF5IHZp IGNoaSBuaGFtIHRhbmcgdHJ1b25nLCB0YW5nIHNpbmggdmllbiB2b2kgbXVjIGRpbmggY2hpbmgg bGEgdGFuZyB0aHUgbmhhcCBjaG8gbmd1b2kgbGFtIGNvbmcgdGFjIGdpYW8gZHVjLiBOaHVuZyBu Z3VvaSBob2MgY2h1eWVuIHR1LCB0YWkgY2h1YyBuZW4gY2FwIGNodW5nIGNoaSBjaHVuZyBtaW5o IGxvbmcgaGlldSBob2MsIG11b24gaGlldSBiaWV0IHRoZW0gY3VhIGhvLCB0aGF5IHZpIGNobyBi YW5nLiANCg0KVmUgdHJhIGhvYyBwaGkgZGFpIGhvYywgUGhvIFRodSB0dW9uZyBUdXllbiBibzog Li4uVmkgdmF5LCBwaGFpIHRhbyBtb3QgZG90IHBoYSB0cm9uZyB0YWkgY2hpbmggY2hvIGdpYW8g ZHVjIGRhaSBob2MsIHRoYXkgdmkgdHJhIGhvYyBwaGkgdGhhcCB0aGVvIG11YyB0aHUgbmhhcCBo aWVuIHRhaSBjdWEgcXVvYyBnaWEgdmEgbmd1b2kgZGFuIHRoaSBjaHVuZyB0YSBwaGFpIHRyYSBo b2MgcGhpIG8gbXVjIGRhbSBiYW8gY2hhdCBsdW9uZyBkYW8gdGFvLCBkYXAgdW5nIG5odSBjYXUg Y3VhIGRvYW5oIG5naGllcCB2YSB4YSBob2ksIGRhIHNvIG5ndW9pIHJhIHRydW9uZyBwaGFpIGNv IHZpZWMgbGFtIHZhIHRodSBuaGFwIGtoYS4gTXVjIHRodSBuaGFwIG5heSBjaG8gcGhlcCB0cmEg bGFpIHNvIHRpZW4gZGEgdmF5IGRlIHRyYSBob2MgcGhpIHRydW9jIGRvLiBUdWMgbGEgbGF5IHRo dSBuaGFwIGN1YSB0dW9uZyBsYWkgY2FvIGhvbiByYXQgbmhpZXUgc28gdm9pIGhvYyBwaGkgaGll biB0YWkgZGUgdHJhIGhvYyBwaGkgbyBtdWMgY28gY2hhdCBsdW9uZyBkYW8gdGFvIGNhby4gRG9p IHZvaSBiYWMgZGFpIGhvYywgbmV1IGtob25nIHRhbmcgaG9jIHBoaSB0aGkga2hvbmcgdGhlIGdp YWkgcXV5ZXQgZHVvYyB2YW4gZGUgY2hhdCBsdW9uZy4uLiBEZSBkb3QgcGhhIHZlIGNvIGNoZSB0 YWkgY2hpbmggY2hvIGdpYW8gZHVjIGRhaSBob2MsIG5nYXkgNC05LTIwMDcsIFRodSB0dW9uZyBD aGluaCBwaHUgZGEgY28gY2hpIHRoaSBjaG8gdmF5IGRlIHRyYSBob2MgcGhpLiBTYXUgNSBuYW0s IHRvaSB0aW4gbGEgaGUgdGhvbmcgZ2lhbyBkdWMgZGFpIGhvYywgY2FvIGRhbmcgdmEgZGF5IG5n aGUgc2UgY28gYnVvYyBwaGF0IHRyaWVuIG1hbmggbWUuIEhvYyBwaGkgcGhvIHRob25nIHZhIGRh aSBob2MsIGNhbyBkYW5nLCBkYXkgbmdoZSBraGFjIG5oYXUgdmEgcGhhaSBkdW9jIHF1eWV0IGRp bmggdm9pIHF1YW4gZGllbSBraGFjIG5oYXUuIA0KDQpEb2kgdGhvYWkgbGFpOiBUYW5nIGhvYyBw aGkgZGFpIGhvYyBjb25nIHZvaSBjaGluaCBzYWNoIGNobyB2YXkgbGEgZGlldSB0b2kgY28gdGhl IGRlIGRhbmcgZG9uZyB5IHZvaSBvbmcgUGhvIFRULCBuaHVuZyB0YW5nIGhvYyBwaGkga2hvbmcg bmhhdCB0aGlldCBkdWEgdG9pIGNoYXQgbHVvbmcgY2FvLiBQaGFuIHRpY2ggc28gc2FuaCBvIHRy ZW4gY3VhIHRvaSBkYSBjaG8gdGhheSBuaGlldSBiYXQgY2FwIHF1YSBsb24gY3VhIGRhaSBob2Mg Vk4sIGNhbiBjaGFuIGNoaW5oIHZhIHBoYWkgY28gbG8gdHJpbmggY2hhbiBjaGluaC4gUXVhbiB0 cm9uZyBuaGF0IGxhIGRhaSBob2MgcGhhaSBjbyB0dSBjaHUgdmUgdGFpIGNoaW5oLCBwaGFpIGNv IHR1IGNodSB2ZSB0dSBkdXksIHZlIHF1eWV0IGRpbmggY2h1b25nIHRyaW5oIHZhIG5vaSBkdW5n IGdpYW5nIGRheSB2YSB2ZSBibyBuaGllbSBnaWFvIHN1IHRoZW8gcXV5IGRpbmggdmUgeWV1IGNh dSB0b2kgdGhpZXUgY3VhIG5oYSBudW9jLiBWYSBkYWkgaG9jIHBoYWkgZHVvYyBkYW5oIGdpYSwg eGVtIHhldCBkb2kgdm9pIHR1bmcga2hvYSB2ZSB2aWVjIGR1IHR1IGNhY2ggY2FwIGJhbmcgZHVh IHRyZW4gdGlldSBjaHVhbiBxdW9jIHRlIG5oYXQgZGluaC4gT25nIGNhbiBkdWEgcmEgbW90IGxv IHRyaW5oIGNhaSBjYWNoIGdpYW8gZHVjIGRhaSBob2MuIFZpZWMgY2hvIHZheSBjdW5nIGtob25n IGRvbiBnaWFuIG1hIHBoYWkgY28gbmhvbSBjaHV5ZW4gZ2lhIHRhaSBjaGluaCB2YSBnaWFvIGR1 YyBuZ29pIGxhaSBsYXAgZHUgYW4gdmEgdGhlbyBkb2kgdGh1YyBoaWVuLiANCg0KRGUgdG9tIHRh dCBuaHVuZyB0cmFvIGRvaSBjdWEgdG9pLCB0b2kgZGUgbmdoaSBsYSBuaGEgbnVvYyB0YSBuZW4g dGhhbmggbGFwIG1vdCB1eSBiYW4gZ29tIGNhIGNhYyBuaGEgZ2lhbyBkdWMsIGtpbmggdGUgdGFp IGNoaW5oLCB4YSBob2kgaG9jIGNvIGtoYSBuYW5nIGNodXllbiBtb24sIGNvIGtpbmggbmdoaWVt IHZhIHV5IHRpbiwgdHJvbmcgdmEgbmdvYWkgbnVvYywga2UgY2Egbmd1b2kgbnVvYyBuZ29haSwg ZGFuaCBnaWEgaGUgdGhvbmcgZ2lhbyBkdWMgaGllbiBuYXkgdmEgZGUgcmEgbW90IHNvIGdpYWkg cGhhcCBkZSBuaGEgbnVvYyBjaG9uIGx1YS4gQ2h1bmcgdGEga2hvbmcgbmVuIHRpZXAgdHVjIGR1 YSByYSBtb3QgZ2lhaSBwaGFwIGRlIGRhbiBnb3AgeSB0cm9uZyBraGkgY2hhbmcgY28gbW90IG5n aGllbiBjdXUgY28gYmFuIHZhIGRhbmcgdGluIGNheSBuYW8uIA0KDQpodHRwOi8vd3d3LnZpZXRu YW1uZXQudm4vZ2lhb2R1Yy8yMDEwMDEvUXV5ZXQtZHVhLWdpYW8tZHVjLWxlbi1kaW5oLWNhby10 aGUtZ2lvaS04ODk3NzgvDQoNClRyb25nIDIgbmFtICgyMDA4IHZhIDIwMDkpLCB0b25nIG5ndW9u IGx1YyBkbyBjYWMgZG9hbmggbmdoaWVwIHZhIGNhYyBuaGEgaGFvIHRhbSB0cm9uZyB2YSANCm5n b2FpIG51b2MgZG9uZyBnb3AgY2hvIHN1IG5naGllcCBHRC1EVCBjaGllbSBnYW4gMS4zMDAgdHkg ZG9uZzsgMTcuODU2IHRyaWV1IFVTRDsgMjc2LjgyOCBFVVIgdmEgMTY3LjEyN20yIGRhdC4NCg0K VGhlbyB0aG9uZyBrZSBjdWEgQm8gR0QtRFQsIGNvbiByYXQgbmhpZXUgY2FjIHRvIGNodWMgY2Eg bmhhbiwgZG9hbmggbmdoaWVwIGJvIHJhIGhhbmcgdHkgZG9uZyANCmRlIHhheSBkdW5nIHRoZW0g Y2FjIHBob25nIGhvYywgaGllbiBkYWkgaG9hIHRyYW5nIHRoaWV0IGJpIGRheSBob2MgaG9hYyB0 byBjaHVjIA0Kbmh1bmcgaG9hdCBkb25nIGhvIHRybyBjdSB0aGUgbmhhbSBjYWkgdGhpZW4gZGll dSBraWVuIGhvYyB0YXAgY2hvIEhTU1YuIFRvIGNodWMgDQpOZXphaWQgY3VhIENoaW5oIHBodSBO ZXcgWmVhbGFuZCB1bmcgaG8gdGluaCBCaW5oIERpbmggMzIgdHkgZG9uZyBjdW5nIGNhcCB0aGll dCBiaSANCmNobyBjYWMgcGhvbmcgaG9jOyBDb25nIHR5IEJvb3VuZyAoSGFuIFF1b2MpIHRhbmcg MTAgdHJpZXUgVVNEIGRlIHRyYW5nIGJpIGJhbmcgdmlldCANCmNob25nIGxvYSwgdGFuZyAxMC4w MDAgZGFuIHBpYW5vIGt5IHRodWF0IHNvIGNobyBjYWMgdHJ1b25nIHRpZXUgaG9jIFZpZXQgTmFt LC4uLg0KDQpOZ2FuIHNhY2ggY2hpIGNobyBHRC1EVCB0YW5nIGhhbmcgbmFtOiBuYW0gMjAwNiBk YXQgNTQuNzk4IHR5IGRvbmcgKGNoaWVtIDE5JSB0b25nIGNoaSBuZ2FuIHNhY2gpOyANCm5hbSAy MDA3IGRhdCA2Ni43NzAgdHkgZG9uZyAoY2hpZW0gMjAlKTsgbmFtIDIwMDggbGEgNzQuMDE3IHR5 IGRvbmcgdmEgbmFtIDIwMDkgbGEgOTEuOTg2IHR5IGRvbmcuIA0KDQpodHRwOi8vYmxvZy4zNjAu eWFob28uY29tL2Jsb2ctbWxrcGhxVWlmcmItSUhUNVp3eDI5QkdKbmtBdjVuSi0ybGFrM0EtP2Nx PTEmcD03MDEgVkQgMzEvMTIvMDgNCg0KKFRyaWNoKSBOR1VZRU4gVEhJRU4gTkhBTiAtIENPTiBE VU9ORyBHSUFPIERVQyANCg0KVHJ1b2Mga2hpIHRvaSBub2kgdmUgZHVvbmcgbG9pIHNhaSBsYW0g dHJvbmcgY2FpIGNhY2ggZ2lhbyBkdWMsIHRoaSB4aW4gZHVvYyBub2kgZG9pIGNodXQgdmUgb25n IE5oYW4uDQoNCk9uZyBheSBsYSBjb24gdHJhaSBjdWEgZ2lhIGRpbmggdHJpIHRodWMgZ2lhbyBz dSBiYWMgc3kgTmd1eWVuIFRoaWVuIFRoYW5oLCBzaW5oIG5hbSAxOTUzLCBkZW4gbmFtIDE5NzAg dGhpIG9uZyB0aGFuaCBibyBkb2kgKHR1YyBuYW0gMTcgdHVvaSksIHNhdSBkbyBkZW4gbmFtIDE5 NzYgdGhpIG9uZyBsYSB0aGlldSB1eSAodHVjIDIzdCksIHRoYW5oIHRydW5nIHV5IG5hbSAxOTgw ICh0dWMgMjd0KSwgMTk4MiBvbmcgdGhhbmggdGh1b25nIHV5ICgyOXQpLiBUaGUgbmh1bmcgdHJv bmcgbHkgbGljaCBjdWEgb25nIGF5IGxhaSBnaGkgb25nIHRvdCBuZ2hpZXAgdGllbiBzaSBkaWV1 IGtoaWVuIGhvYyAxOTc5IHRhaSBEdWMuIFRvaSBraG9uZyBiaWV0IGNvIG5lbiBkYXQgdmFuIGRl IG9uZyBheSBob2MgdGllbiBzaSBiYW8gbmhpZXUgbmFtIHRhaSBEdWMsIGtoaSBtYSBjYXAgYmFj IHF1YW4gZG9pIGN1YSBvbmcgYXkgbmdheSBjYW5nIGxlbyB0aGFuZyB0dSBuYW0gMTk3NiwgdmEg Y3VuZyBraG9uZyB0aGF5IGx5IGxpY2ggY2hvIGJpZXQgY2FwIDIsMywgREggb25nIGhvYyB0YWkg ZGF1LCBvIGRhdSwgbWEgZHVuZyBtb3QgY2FpIDE5Nzkgb25nIHRoYW5oIHRpZW4gc2kuDQoNCk9u ZyBsYW0gZ2lhbmcgdmllbiBESCBCYWNoIGtob2EgdHJvbmcgMiBuYW0gMTk4My0xOTg1LCBzYXUg ZG8gMyBuYW0gb25nIGhvYXQgZG9uZyBEb2FuIDE5ODUtMTk4OCwgMiBuYW0gc2F1IGRvIG9uZyBs YW0gdHJvbmcgc3UgcXVhbiBWaWV0IE5hbSB0YWkgRHVjIDE5ODgtMTk5MSwgdGhlbyB0YWkgbGll dSBnaGkgdGhpICJUcm9uZyB0aG9pIGdpYW4gbmF5IE9uZyBob2MgdGhlbSB2ZSBLaW5oIHRlIHRo aSB0cnVvbmcgdGFpIFRydW9uZyBEYWkgaG9jIFRvbmcgaG9wIEt5IHRodWF0IE1hZ2RlYnVyZyBD b25nIGhvYSBMaWVuIGJhbmcgRHVjLiIsIHZheSB0aGkgb25nIGNoaSBob2MgY2h1bmcgY2hpIHRh aSBESCBuYXkgbWEgdGhvaSwgY2h1IG9uZyBjaHVhIGhlIGNoaW5oIHRodWMgbGEgc2luaCB2aWVu IGRhbyB0YW8gdHUgdHJ1b25nIERIIG5heS4yIG5hbSB0aWVwIHRoZW8gb25nIGF5IGxhIGdpYW5n IHZpZW4gbW9uIHF1YW4gbHkgY29uZyBuZ2hpZXAgY3VhIERIIEJhY2ggS2hvYSBUUC5IQ00uDQpU dSB0aGFuZyA2IG5hbSAxOTkzIGRlbiB0aGFuZyA4IG5hbSAxOTk1OiBPbmcgZHVvYyBjdSBkaSBo b2MgQ2FvIGhvYyBxdWFuIGx5IGNvbmcgZG9uZyAocXVhbiBseSBOaGEgbnVvYykgY2h1eWVuIG5n YW5oIFRhaSBjaGluaCBjb25nIHRhaSBUcnVvbmcgRGFpIGhvYyBPcmVnb24gKE15KSB2YSBob2Mg a2hvYSBkYW8gdGFvIHZlIHRoYW0gZGluaCBkdSBhbiBkYXUgdHUgdGFpIFRydW9uZyBEYWkgaG9j IEhhcnZhcmQgKE15KS4uIFR1IHRoYW5nIDkgbmFtIDE5OTUgZGVuIHRoYW5nIDUgbmFtIDE5OTc6 IE9uZyBsYSBnaWFuZyB2aWVuLCBDaHUgbmhpZW0gS2hvYSBRdWFuIGx5IENvbmcgbmdoaWVwLCBQ aG8gSGlldSB0cnVvbmcgdHJ1b25nIERhaSBob2MgQmFjaCBraG9hIFRoYW5oIHBobyBIbyBDaGkg TWluaC4gT25nIGR1b2MgcGhvbmcgaG9jIGhhbSBQaG8gR2lhbyBzdSBLaW5oIHRlIChuYW0gMTk5 NikuIFR1IHRoYW5nIDUgbmFtIDE5OTcgZGVuIHRoYW5nIDEyIG5hbSAxOTk5OiBPbmcgbGEgR2lh bSBkb2MgU28gS2hvYSBob2MsIENvbmcgbmdoZSB2YSBNb2kgdHJ1b25nIFRoYW5oIHBobywgRGFp IGJpZXUgUXVvYyBIb2kgS2hvYSBYLi4udmEgc2F1IGN1bmcgb25nIGF5IHRoYW5oIGJvIHRydW9u ZyBnaWFvIGR1YyBuYW0gMjAwNi4NCg0KVG9pIG5vaSB2ZSB0aWV1IHN1IG9uZyBheSwgZGUgdGEg bmhhbiB0aGF5IG1vdCBkaWV1LCBvbmcgYXkgbGFtIHZpZWMga2hhIG5oaWV1IGxpbmggdnVjLCB0 dSBxdWFuIGRvaSwgZGVuIGRheSBob2MsIGRlbiBreSB0aHVhdCwgZGVuIGtpbmggdGUsIHNhdSBj dW5nIGxhIHF1YW4gbHkgZ2lhbyBkdWMsIG5odW5nIHRoYW0gbmllbiBtYSBvbmcgYXkgY2hpbmgg dGh1YyBkaSBkYXkgY2hpIHZvbiB2ZW4gaG9uIDQgbmFtLi4uLlRoZSB0aGkgdG9pIHRodWMgc3Ug bmdoaSBuZ28gdGluaCBjaHV5ZW4gbW9uIHZlIGdpYW8gZHVjIGN1YSBvbmcgdGllbiBzaSBraW5o IHRlIG5heS4gDQoNCihEaWV1IGN1IHRyaSBxdWFuIHRhbTogT25nIE5oYW4gY28gdGhlIHRvdCBu Z2hpZXAgaG9jIHZpZW4gcXVhbiBzdSBoYXkgZGFpIGhvYyBraGFjIHNhbyBraG9uZyBuZXUgcm8g cmEsIGNoaSB0aGF5IG5ldSB0dSB0aGFuZyA2IG5hbSAxOTcwIGRlbiB0aGFuZyAzIG5hbSAxOTgz IG9uZyBwaHVjIHZ1IHRyb25nIHF1YW4gZG9pIG5oYW4gZGFuIFZpZXQgTmFtOyBkZW4gMTk3OSBv bmcgdGhhbmggdGllbiBzaT8pDQoNCmh0dHA6Ly93d3cuc29ub2l2dS5ob2NoaW1pbmhjaXR5Lmdv di52bi90aW50dWMvbmV3cy1kZXRhaWwuYXNwP3BlcmlvZC1pZD0xJmNhdC1pZD00MTImbmV3cy1p ZD0xNDg5IA0KDQpUT00gVEFUIFRJRVUgU1UgT05HIE5HVVlFTiBUSElFTiBOSEFOIA0KDQpPbmcg TkdVWUVOIFRISUVOIE5IQU4sIHNpbmggbmdheSAxMiB0aGFuZyA2IG5hbSAxOTUzIHRhaSBUaW5o IENhIE1hdSwgcXVlIHF1YW4gWGEgUGh1b25nIFRyYSwgSHV5ZW4gQ2hhdSBUaGFuaCwgVGluaCBU cmEgVmluaC4NCiAgICAgIA0KSGllbiBjdSBuZ3UgdGFpIHNvIDcyLzEgZHVvbmcgVHJhbiBRdW9j IFRvYW4sIFBodW9uZyA4LCBRdWFuIDMsIFRoYW5oIHBobyBIbyBDaGkgTWluaC4gDQogICAgICAN ClR1IHRoYW5nIDYgbmFtIDE5NzAgZGVuIHRoYW5nIDMgbmFtIDE5ODM6IE9uZyBwaHVjIHZ1IHRy b25nIHF1YW4gZG9pIG5oYW4gZGFuIFZpZXQgTmFtLCBsYSBUaGlldSB1eSBuYW0gMTk3NiwgVHJ1 bmcgdXkgbmFtIDE5ODAsIFRodW9uZyB1eSBuYW0gMTk4MiwgdG90IG5naGllcCBUaWVuIHNpIERp ZXUga2hpZW4gaG9jIG5hbSAxOTc5IHRhaSBudW9jIENvbmcgaG9hIERhbiBjaHUgRHVjLg0KDQpo dHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC92bi90aG9uZ3RpbmRhY2hpZXUvNzkyMS9pbmRleC5h c3B4IDA1OjQ5IChHTVQgKyA3KSAwNi8wOS8yMDA5IA0KDQpUaHUgZ3VpIEJvIHRydW9uZyBHaWFv IGR1YyBuaGFuIG5hbSBob2MgbW9pIA0KDQpMb2kgZ2lvaSB0aGlldSBjdWEgVHVhblZpZXROYW06 ICJIYXkgZGUgY2hvIGNhYyB0cnVvbmcgZG9jIGxhcCwgdHUgY2h1OyBraG9uZyBhaSANCmtoYWMg bmdvYWkgY2FjIHRydW9uZyBzZSB0dSBxdXlldCBkaW5oIHN1IHNvbmcgY29uIGN1YSBtaW5oIGR1 YSB0cmVuIGRhbmggdGllbmcgdmEgY2hhdCBsdW9uZyBkYW8gdGFvIi4gDQoNCkdpYW8gZHVjIGx1 b24gbGEgbW9pIHF1YW4gdGFtLCB0cmFuIHRybyBjdWEgY2EgeGEgaG9pLCBjdWEgbW9pIG5ndW9p IGRhbiB0cm9uZyANCm51b2MgaGF5IG51b2MgbmdvYWkuIE5oYW4gbmFtIGhvYyBtb2ksIG1vdCBu Z2hpZW4gY3V1IHNpbmggdGFpIEhhIExhbiBkYSBxdWEgDQpUdWFuIFZpZXQgTmFtIGd1aSB0aHUg dG9pIEJvIHRydW9uZyBHaWFvIGR1YyB2YSBEYW8gdGFvIE5ndXllbiBUaGllbiBOaGFuLCANCmtp ZW4gbmdoaSBjYWMgZ2lhaSBwaGFwIGRhbyB0YW8gdGhlbyBuaHUgY2F1IHhhIGhvaS4gDQoNCktp bmggZ3VpIEJvIHRydW9uZyBOZ3V5ZW4gVGhpZW4gTmhhbiwNCg0KQ3VuZyB2b2kgY2hpbmggc2Fj aCBkb2kgbW9pIGN1YSBEYW5nLCBDaGluaCBwaHUgdmEgeHUgdGhlIGhvaSBuaGFwIHF1b2MgdGUs IA0KbmdhbmggZ2lhbyBkdWMgKEdEKSBkYW5nIGR1bmcgdHJ1b2Mgbmh1bmcgdGhhY2ggdGh1YyB0 byBsb24sIGRvbmcgdGhvaSANCmN1bmcgbGEgY28gaG9pIGRlIHR1IGRvaSBtb2kgbWluaCwgZ29w IHBoYW4gdmFvIHN1IG5naGllcCBwaGF0IHRyaWVuIGRhdCANCm51b2MuIE1vdCB0cm9uZyBuaHVu ZyBraG8ga2hhbiBsb24gbWEgQm8gdHJ1b25nIHZhIHRvYW4gbmdhbmggR0QgZGFuZyB0cmFuIA0K dHJvLCBkbyBsYSBsYW0gdGhlIG5hbyBkZSAiZGFvIHRhbyB0aGVvIGR1bmcgbmh1IGNhdSB4YSBo b2kiLCBkYWMgYmlldCBsYSBvIGJhYyBESCB2YSBzYXUgREguDQpCYW5nIHRodWMgdGllbiB0cmFp IG5naGllbSB2YSB0YW0gaHV5ZXQgY3VhIG1pbmgsIHRvaSB4aW4gZHVvYyBkb25nIGdvcCBtb3Qg dmFpIHkga2llbiBuaG8gZHVvaSBkYXkuDQoNCkRhbyB0YW8gbWVtIGRlbywgdGhhbSBkaW5oIGNo YXQgbHVvbmcga2hhY2ggcXVhbg0KDQpMYXUgbmF5LCBkYW8gdGFvIG8gYmFjIERILCBjdW5nIG5o dSB2YW4gYmFuZyBoYWksIHRhaSBjaHVjLi4uY28gY2hhdCBsdW9uZyANCnRoYXAsIGdheSBuaGll dSBidWMgeHVjIHRyb25nIHhhIGhvaS4gVGhlbyB5IGtpZW4gY3VhIHJpZW5nIHRvaSwgQm8gR0Qg Y28gDQp0aGUgbmdoaWVuIGN1dSB0aHVjIGhpZW4gZG9pIG1vaSB0cm9uZyBjb25nIHRhYyB0byBj aHVjIHRoaSwgZGFuaCBnaWEgc2luaCANCnZpZW4gY3VuZyBuaHUgZG9pIG1vaSBjYWNoIHF1YW4g bGkgY2FjIHRydW9uZyBESCwgQ0QsIGNhY2ggdG8gY2h1YyBkYXkgdmEgaG9jIG8gY2FjIHRydW9u ZyBESCBuaHUgc2F1Og0KDQphLiBIaWVuIG5heSBjYWMgdHJ1b25nIGRhbmcgdHJpZW4ga2hhaSBk YW8gdGFvIHRoZW8gaGluaCB0aHVjIHRpbiBjaGkuIA0KVHV5IG5oaWVuIGNhY2ggbGFtIG1vaSBj byB0aW5oIGNoYXQgbm9pIGJvLCBjaHVhIGJhbyBkYW0gdGluaCBsaW5oIGhvYXQsIA0KdGh1YW4g dGllbiBjaG8gbmd1b2kgaG9jLCBuZW4gY2FuIGNhaSB0aWVuLiBTaW5oIHZpZW4gY2FuIGR1b2Mg dHUgZG8gY2hvbiANCmx1YSBraG9uZyBjaGkgbW9uIGhvYyBtYSBjb24gZHVvYyB0dSBkbyBjaG9u IHRydW9uZyBtYSBobyBjaG8gbGEgdG90IHZhIHBodSANCmhvcCB2b2kgZGlldSBraWVuIHJpZW5n IGN1YSBobyBvIHR1bmcgdGhvaSBkaWVtLiBWaSBkdTogQ28gdGhlIGhvYyBtb24gVG9hbiANCm8g REhTUCwgbW9uIEx5IG8gREhYRCAudi52LiBjbyB0aGUgdnVhIGhvYyB2dWEgbGFtLiBIb2MgbW9u IG5hbyBkb25nIHRpZW4gbW9uIGRvIHZhIGhvYyBsYW4gbmFvIGRvbmcgdGllbiBsYW4gZG8uDQpD YWMgdHJ1b25nIGtob25nIHBoYW4gYmlldCBzaW5oIHZpZW4gY2hpbmggcXV5IGhheSB0YWkgY2h1 Yy4gTXVjIGRpY2ggY3VvaSANCmN1bmcgbGEgZ2l1cCB0cmFuZyBiaSBjaG8gc2luaCB2aWVuIGRh eSBkdSBraWVuIHRodWMgdmUgbW90IGxpbmggdnVjIG5oYXQgDQpkaW5oIGRlIGhvIGNvIHRoZSBs YW0gdmllYyB0cm9uZyB0aHVjIHRpZW4sIHRhbyByYSBjdWEgY2FpIGNobyB4YSBob2ksIGNodSBr aG9uZyBwaGFpIGNoaSBjYW4gY28gY2FpIGJhbmcgbmh1IGhpZW4gbmF5Lg0KDQpiLiBCbyBuZW4g dGhhbmggbGFwIGNhYyB0cnVuZyB0YW0gdG8gY2h1YyB0aGksIGRhbmggZ2lhIGtldCBxdWEgaG9j IHRhcC4gDQpDYWMgdHJ1b25nIGNoaSBkb25nIHZhaSB0cm8gbGEgbm9pIGNodXllbiB2ZSBkYW8g dGFvLCBjaHUga2hvbmcgY28gcXV5ZW4gDQpkYW5oIGdpYSBjaGF0IGx1b25nIGRhbyB0YW8gY3Vh IG1pbmgsIHZpIGxhbSBuaHUgdmF5IGxhICJ2dWEgZGEgYm9uZyB2dWEgDQp0aG9pIGNvaSIsIHJh dCBraG8gZGUgZGFtIGJhbyBjaGF0IGx1b25nLiBWaWVjIGNhYyB0cnVvbmcgdG8gY2h1YyB0aGks IGtpZW0gDQp0cmEgdGFpIHRydW9uZyBtdWMgZGljaCBjaGkgZGUga2llbSB0cmEgbmFuZyBsdWMs IGtpZW4gdGh1YyBjdWEgc2luaCB2aWVuLCBuYW5nIGNhbyBjaGF0IGx1b25nIGRheSB2YSBob2Mu IA0KRGllbSB0aGkga2llbSB0cmEgZG8gdHJ1bmcgdGFtIHRvIGNodWMgdGhpIGN1YSBCbyBHRCBt b2kgbGEgZGllbSBjaGluaCB0aHVjIHZhIGNvIGdpYSB0cmkgcGhhcCBseS4NClRoaSBsYW4gbmFv IGRvbmcgdGllbiBsYW4gZGF5LCB2YSBsZSBwaGkgdGhpIGtob25nIG5lbiB0aGFwIHF1YSBkZSBk YW0gYmFvIA0KY2hpIG5odW5nIG5ndW9pIGRhIHRodWMgc3UgdGljaCBsdXkgdHVvbmcgZG9pIGRh eSBkdSBraWVuIHRodWMsIHRodWMgc3UgDQpjbyBuaHUgY2F1IG1vaSBkYW5nIGtpIHRoaTsgdHJh bmggaGllbiB0dW9uZyAidGhpIHRodSIsICJ0aGkgY2hvIHZ1aSIgdmkgDQpsZSBwaGkgcXVhIHJl IG5lbiAiY2hhbmcgdG9pIGdpIiBraG9uZyB0aGkgbmh1IGRhIHhheSByYSBkb2kgdm9pIGNhYyBr aSB0aGkgREggdHUgdHJ1b2MgZGVuIG5heS4NCg0KTmdhbiBoYW5nIGRlIHRoaSBjYW4gZHVvYyBu Z2hpZW4gY3V1IGtpIHZhIGR1b2MgYm8gc3VuZyBsaWVuIHR1YyBkZSBkaWVtIA0KdGhpIHBoYW4g YW5oIGR1bmcgbmFuZyBsdWMgdmEga2llbiB0aHVjIGN1YSBzaW5oIHZpZW4uIFRpZXUgY2hpIGNo byBkaWVtIA0Kc2UgbGEgY2h1YW4gcXVvYyBnaWEgdmEgZHVvYyB0b2FuIHhhIGhvaSBjb25nIG5o YW47IGRvbmcgdGhvaSBjYWMgZG9hbmggDQpuZ2hpZXAgc2UgbGF5IGRvIGxhbSB0aWV1IGNodWFu IGRlIHR1eWVuIGR1bmcuIFRvIGNodWMgZHVvYyBuaHUgdmF5LCB0YSANCmRhIHhvYSBibyBkdW9j IG1vaSBsbyB2ZSBjaGF0IGx1b25nIGRhdSByYSBvIGJhYyBESCwgZG9uZyB0aG9pIHRob25nIG5o YXQgDQptb3QgdGlldSBjaHVhbiBjaHVuZyB0b2FuIHF1b2MgdmUgY2hhdCBsdW9uZyBHRC4NCg0K Q2hhdCBsdW9uZyBkYW8gdGFvIGN1YSBjYWMgdHJ1b25nIHNlIGFuaCBodW9uZyBkZW4ga2hvYW4g dGllbiB0YWkgdHJvIHZhIA0KY2FjIHV1IGRhaSBraGFjIGN1YSBCbyBob2FjIGNhYyBxdXkgdGFp IHRybyBraGFjLiBLZXQgcXVhIGRhbmggZ2lhIGNoYXQgDQpsdW9uZyBoYW5nIG5hbSBjdWEgY2Fj IHRydW9uZyBwaGFpIGR1b2MgY29uZyBibyBjb25nIGtoYWkgdHJlbiB0cmFuZyB3ZWIgY3VhIEJv IEdELg0KDQpjLiBLaHV5ZW4ga2hpY2ggY2FjIHRydW9uZyB0byBjaHVjIGRheSB2YSBob2MgcXVh IG1hbmcsIHNpbmggdmllbiBjbyB0aGUgDQpob2MgYmF0IGtpIGx1YyBuYW8gaG8gdGh1IHhlcCBk dW9jIHRob2kgZ2lhbiwgY2hpIGxlbiBsb3AgZGUgdGhhbyBsdWFuIG1vdCANCnNvIGJ1b2kgaG9h YyB0aGFtIHF1YW4gY28gc28gc2FuIHh1YXQsIGtob25nIG5oYXQgdGhpZXQgcGhhaSBkZW4gbG9w IDEwMCUgdGhvaSBnaWFuIG5odSBoaWVuIG5heS4NClRhIHNlIHhvYSBibyBkdW9jIHZpZWMgY2Eg dGhheSBsYW4gdHJvIGRldSBtZXQgbW9pIGRpZW0gZGFuaCBuaGF1IG8gdHJlbiANCmxvcCwga2Ug Y2EgY2FjIGxvcCBob2MgdGhhYyBzaSBjdW5nIHZheS4gVHUgYmFjIERIIHRybyBsZW4gcGhhaSBr aHV5ZW4gDQpraGljaCBob2MgdmllbiB0dSBob2MsIHR1IG5naGllbiBjdXUuIEtob25nIG5lbiBh cCBkdW5nIGNvIGNoZSBjb25nIGRpZW0gImNoYW0gY2hpIiBuaHUgaGllbiBuYXkgZG9pIHZvaSBi YWMgREguDQoNCmQuIEtodXllbiBraGljaCBjYWMgdHJ1b25nIERIIGxpZW4ga2V0IGNoYXQgY2hl IHZvaSBjYWMgY28gc28gc2FuIHh1YXQgZGUgDQpjdW5nIHBob2kgaG9wIGRhbyB0YW8sIHRodWMg aGFuaCB0cm9uZyBzdW90IHF1YSB0cmluaCBkYW8gdGFvLiBDaGluaCBwaHUgDQpjdW5nIG5lbiBu Z2hpZW4gY3V1IGNoaW5oIHNhY2ggdXUgZGFpIHZlIHRodWUgZG9pIHZvaSBjYWMgY28gc28gc2Fu IHh1YXQgDQpuYXkgdHV5IHRoZW8gbXVjIGRvIGhvcCB0YWMgdm9pIGNhYyB0cnVvbmcgREguIEto aSBob3AgdGFjIHZvaSBjYWMgdHJ1b25nIA0KREgsIGNhYyBkb2FuaCBuZ2hpZXAgc2UgY28gYmEg Y2FpIGxvaTogRHVvYyBnaWFtIHRodWUgdmEgbW90IHNvIHV1IGRhaSBraGFjIA0KY3VhIG5oYSBu dW9jOyBkdW9jIHN1IGR1bmcgY2FjIHNpbmggdmllbiBjbyBuYW5nIGx1YyB0cm9uZyBjYWMgY29u ZyBkb2FuIHNhbiANCnh1YXQgY3VhIG1pbmggdm9pIGdpYSByZSBob24gdGh1ZSBuaHVuZyBuZ3Vv aSBkYSB0b3QgbmdoaWVwLCBkb25nIHRob2kgdHVuZyANCmJ1b2MgZGFvIHRhbyBobyB2dW5nIHZh bmcgdHJvbmcgY2h1eWVuIG1vbjsgZHVvYyBnaGkgZGFuaCB2YW8gY2FjIGR1IGFuIG5naGllbiBj dXUgbG9uLCBuZXUgdGhhbmggY29uZy4NCkNoaW5oIHNhY2ggdXUgZGFpIGN1YSBuaGEgbnVvYyBk b2kgdm9pIGNhYyBkb2FuaCBuZ2hpZXAgbGEgbW90IHRyb25nIG5odW5nIA0KeWV1IHRvIHF1YW4g dHJvbmcgdGh1YyBkYXkgbW9pIHF1YW4gaGUgaG9wIHRhYyBuYXkuDQoNCmguIEtpZW4gdGh1YyB0 cmFuZyBiaSBjaG8gc2luaCB2aWVuIHBoYWkgZ29uIG5oZSwgaGlldSBxdWEsIHRodWMgdGUgdmEg bGFtIA0Kc2FvIGRlIGhvIGNvIHRoZSB0dSBjYXAgbmhhdC4gVHJvbmcga2hpIGRvLCBxdXkgY2hl IGRhbyB0YW8gY3VhIHRhIGhpZW4gbmF5IA0KbGFpIHJhbmcgYnVvYyBobyB2YW8gY2FpIGJhbmcs IHZhbyBjYWMga2hvYSBob2MgY3VuZyBuaGFjIHZhIGRheSBuaGlldSBraWVuIA0KdGh1YyBjYW8g c2lldSAodGhlbyBsb2kgaGFuIGxhbSB4dWEpIG1hIGhvIGtob25nIGNhbiBob2FjIGNodWEgY2Fu LCBkYW4gZGVuIA0KdmllYyBob2MgY2hpIG1hbmcgdGluaCBoaW5oIHRodWMuIERhIHNvIHNpbmgg dmllbiBtb2kgcmEgdHJ1b25nIGR1bmcgcmF0IGl0IA0KY2FjIGtpZW4gdGh1YyBjYW8gc2lldSBt YSBjYWMgdHJ1b25nIERIIHZhIGNhIHNpbmggdmllbiBkYSBtYXQgcmF0IG5oaWV1IHRob2kgDQpn aWFuIGRlIGRheSB2YSBob2MgZGkgaG9jIGxhaS4gQ2hpbmggY2FjaCBkYW8gdGFvIGhpZW4gbmF5 IGN1YSB0YSBkYSBnYXkgbGFuZyANCnBoaSByYXQgbG9uIGNobyB0b2FuIHhhIGhvaSB2aSBraG9u ZyBoaWV1IHF1YSwga2hvbmcgZGkgZHVuZyB2YW8gbmh1IGNhdSBjdWEgdGh1YyB0aWVuLiAgDQoN ClRvaSB4aW4gbG9pIHZpIGRhIG5vaSB0aGFuZyB0aHVjIHRlIGRhdSB4b3QgbmF5LCBuaHVuZyBk byBsYSBzdSB0aGF0IGNhbiBwaGFpIGR1b2MgdGhheSBkb2kuDQoNClZpZWMgdG8gY2h1YyBuaHUg dHJlbiBzZSB0YW8gcmEgc3UgY2FuaCB0cmFuaCBtb3QgY2FjaCB0aHVjIHN1LCBjYWMgdHJ1b25n IHNlIA0KdHUgYmlldCBsYW0gdGhlIG5hbyBkZSBoYXAgZGFuIGR1b2Mgc2luaCB2aWVuIHZhbyBo b2MgZGUgdG9uIHRhaS4gTmh1bmcgZ2lhbyANCnZpZW4ga2hvbmcgZHUgbmFuZyBsdWMsIG5odW5n IG5oYW4gdmllbiBraG9uZyBjbyBoaWV1IHF1YSwga2hvbmcgdGh1YyBzdSB5ZXUgDQpuZ2hlIHRh dCBzZSBwaGFpIGNodXllbiBzYW5nIGNvbmcgdmllYyBraGFjIHBodSBob3AgaG9uIHZvaSBuYW5n IGx1YyB2YSBkaWV1IA0Ka2llbiBjdWEgaG8uIE5odSB2YXkgbmdhbmggR0Qgc2UgY2hvbiBkdW9j IG5odW5nIG5ndW9pIHRodWMgc3UgZ2lvaSwgY28gbmFuZyBsdWMsIA0KY28gbmhpZXQgaHV5ZXQg dmEgdGFtIGh1eWV0IHZvaSBuZ2hlIGRlIHBodWMgdnUgc3UgbmdoaWVwIHRyb25nIG5ndW9pLiBO aHUgdmF5LCANCm1vaSBkdW5nIGxhIGRhbyB0YW8gdGhlbyBuaHUgY2F1IHhhIGhvaS4gIA0KDQpD byBjaGUgdHUgY2h1IHZhIGRhdSB0dSBHRCAgDQoNCk5ldSB0aHVjIGhpZW4gZHVvYyB2aWVjIHRy ZW4gdGhpIEJvIGNoaSBjYW4gZGF0IHJhIGtodW5nIG11YyBsdW9uZyB0aGVvIG11YyBkbyANCmtp bmggbmdoaWVtLCBuYW5nIGx1YywgdHJpbmggZG8gY3VhIGdpYW8gdmllbiB2YSB0aGVvIHNvIGx1 b25nIHZhIGNoYXQgbHVvbmcgDQpzYW4gcGhhbSBtYSBobyB0YW8gcmEgY2hvIHhhIGhvaS4gVmkg ZHUgbmh1OiBDdSBuaGFuLCBsdW9uZyB0dSAyLTR0ci8gdGhhbmc7IA0KVGhzIGx1b25nIHR1IDQt N3RyLyB0aGFuZzsgVFMgdHJvIGxlbiB0dSA3LTI1dHIvIHRoYW5nIGNoYW5nIGhhbi4gRG9uZyB0 aG9pIA0KdGFuZyBtdWMgaG9jIHBoaSBsZW4sIGNvIHRoZSA0MDAtNTAwIG5nYW4vIHRoYW5nOyBk b25nIHRob2kgdGFvIG5oaWV1IHF1eSB0YWkgDQp0cm8sIHF1eSBYSCBjaG8gaG9jIHNpbmgsIFNW IHZheSBkZSBob2MuDQoNCkRpZXUgZG8gc2UgaGFuIGNoZSBkdW9jIGhpZW4gdHVvbmcga2hhIHBo byBiaWVuIG8gY2FjIHRydW9uZyBESCBoaWVuIG5heSBjbyANCnJhdCBuaGlldSBlbSB0cmluaCBk byB5ZXUgdmEgbHVvaSBob2MsIGNoaWVtIGtob2FuZyAyMC0zMCUsIG5odW5nIHZhbiBuZ29pIGhv YyANCm8gdHJ1b25nIERILiBUdXkgdGhlbyBjaGF0IGx1b25nIGRhbyB0YW8sIENoaW5oIHBodSBz ZSByb3QgZGF1IHR1IGNobyBjYWMgdHJ1b25nIA0KdHVvbmcgZHVvbmcgdm9pIHF1eSBsdW9uZyB2 YSBjYWMga2hvYW4gdGFpIHRybyBraGFjIHR1b25nIGR1b25nIHZvaSBtdWMgQ1AgdmFuIGNoaSBo aWVuIG5heSBjaG8gY2FjIHRydW9uZy4gDQpTb25nIHNvbmcgdm9pIG5vLCBCbyBoYXkgZGUgY2hv IGNhYyB0cnVvbmcgdHUgY2FtIGtldCB2ZSBjaGF0IGx1b25nIGRhbyB0YW8gY3VhIA0KbWluaCwg ZGF0IHJhIGtodW5nIHRpZXUgY2h1YW4gZGFuaCBnaWEsIHRodW9uZyB4dXllbiBkYW5oIGdpYSB2 YSBjb25nIGJvIGNoYXQgDQpsdW9uZyB0cmVuIGNhYyBwaHVvbmcgdGllbiB0aG9uZyB0aW4gZGFp IGNodW5nLiANCg0KTmh1bmcgdHJ1b25nIGNvIGNoYXQgbHVvbmcga2hvbmcgZGF0IHlldSBjYXUs IG5hbSBzYXUgc2UgY2F0IGdpYW0gY2FjIGtob2FuIA0KdGFpIHRyby4gQ2FjaCBsYW0gaGllbiBu YXkgY3VhIEJvIEdEIGNvIHRoZSB2aSB2b2kgaGluaCBhbmggbmd1b2kgbWUgdmkgdGh1b25nIA0K Y29uIG5lbiBzdW90IG5nYXkgYmUgYW0sIGxhbSBjaG8gZHVhIGNvbiBtYWkgY2hhbmcgbG9uIGxl biBkdW9jLiBCbyBjYW4gcGhhaSANCnRoYXkgZG9pIGNhY2ggcXVhbiBsaS4gSGF5IGRlIGNobyBj YWMgdHJ1b25nIGRvYyBsYXAsIHR1IGNodTsga2hvbmcgYWkga2hhYyANCm5nb2FpIGNhYyB0cnVv bmcgc2UgdHUgcXV5ZXQgZGluaCBzdSBzb25nIGNvbiBjdWEgbWluaCBkdWEgdHJlbiBkYW5oIHRp ZW5nIHZhIGNoYXQgbHVvbmcgZGFvIHRhby4NCg0KVHJvbmcgY2hpZW4gbHVvYyBHRCBoaWVuIG5h eSBuZ2FuaCBjdW5nIGRhIHhhYyBkaW5oIHJvICJIaWVuIHRhaSBsYSBuZ3V5ZW4gDQpraGkgY3Vh IHF1b2MgZ2lhLi4uIi4gVHV5IG5oaWVuLCBuZXUgbmhpbiB2YW8gcXV5IGRhbyB0YW8gIm5oYW4g dGFpIiBjdWEgdGEsIA0KY2h1IHlldSBjaGkgbGEgcXV5IGhvYyBib25nIDMyMiBkbyBuaGEgbnVv YyBkYWkgdGhvLCBtYSBjdW5nIGNoaSBkYW5oIGNobyBjYWMgDQpiYW4gZGkgaG9jIG8gbnVvYyBu Z29haSBsYSBjaHUgeWV1LiBCZW4gY2FuaCBkbyBsYSBjYWMgaG9jIGJvbmcgY3VhIENQIGNhYyBu dW9jIA0KIHZhIG1vdCBzbyBxdXkga2hhYyBuaHUgV0IsIEFEQi4gQm8gR0QgdmEgQ2hpbmggcGh1 IGNodWEgY2h1IHRyb25nIGRlbiB2aWVjIGtldSANCmdvaSB0dSBuaGFuIHZhIGNhYyBkb2FuaCBu Z2hpZXAgdGFpIHRybyBjaG8gR0Qgbm9pIGNodW5nIHZhIGRhbyB0YW8gc2F1IERIIG5vaSByaWVu Zy4gDQpUb2kgeGluIG1hbiBwaGVwIGRlIG5naGkgQm8gdHJ1b25nLCBCbyBHRCwgdmEgQ2hpbmgg cGh1IG5naGllbiBjdXUgY2FjIGNoaW5oIHNhY2gsIA0KY28gY2hlIGRlIGtldSBnb2kga2hvaSB0 dSBuaGFuIHZhIGRvYW5oIG5naGllcCB0aWNoIGN1YyBkYXUgdHUgbGF1IGRhaSB2YSBtYW5oIG1l IA0KaG9uIG51YSBjaG8gR0QsIGNvIHRoZSB0aG9uZyBxdWEgY2FjIGNoaW5oIHNhY2ggdXUgZGFp IHZlIHRodWUgaG9hYyBjaGluaCBzYWNoIA0KdmluaCBkYW5oIGNhYyBkb2FuaCBuaGFuIGRhdSB0 dSBjaG8gR0QsIGRhdCB0ZW4gZHVvbmcgcGhvLCB0ZW4gdHJ1b25nIERILCBjdW5nIG5naGkgYmFu IGNoaW5oIHNhY2ggdmUgR0QgLnYudi4NCg0KRG8gR0QgbyBiYWMgc2F1IERIIGN1YSB0YSBoaWVu IG5heSB2YW4gY2h1YSB0aGUgZGFwIHVuZyBjYSB2ZSBtYXQgY2hhdCBsdW9uZyANCnZhIHNvIGx1 b25nLCBuZW4gY28gdGhlIG5vaSBkYW8gdGFvIGRvaSBuZ3UgY2FuIGJvIG8gdHJpbmggZG8gY2Fv IChUUykgaGllbiANCm5heSB0b3QgbmhhdCB2YW4gbGEgZGFvIHRhbyBvIG51b2MgbmdvYWkuIFZh aSBuYW0gZ2FuIGRheSwgQm8gZGEgY28gbmhpZXUgDQpjYWkgdGllbiB2ZSBtYXQgdGh1IHR1YyBu ZW4gc28gbHVvbmcgbmd1b2kgZGkgaG9jIG8gYmFjIFRTIGRhIHRhbmcgbGVuIGtoYSANCm5oaWV1 LCBtb2kgbmFtIGNvIGtob2FuZyAxMDAwIE5DUyBkaSBob2MgbyBudW9jIG5nb2FpLiBOZXUgdGlu aCB0cnVuZyBiaW5oLCANCm5oYSBudW9jIGRhdSB0dSBjaG8gMSBUUyBraG9hbmcgdHUgMC44IHR5 IGRlbiAyLjMgdHkgY2hvIGNhIDMtNCBuYW0gaG9jIChiYW8gDQpnb20gdG9hbiBibyB0aWVuIGhv YyBwaGksIHNpbmggaG9hdCBwaGkgdmEgY2FjIGNoaSBwaGkga2hhYykuDQpWb2kgMTAwMCBUUywg dG9uZyBjb25nIG5oYSBudW9jIGNoaSBraG9hbmcgMS41MDAgdHkgY2hvIGNhIDMtNCBuYW0uIENv biBzbyANCmRvIG5naGUgY28gdmUgdG8sIG5odW5nIG1vaSBjaGkgdHVvbmcgZHVvbmcgMTBrbSBk dW9uZyBjYW8gdG9jIEhOLUhQIA0KKDE2LjgwMCB0eSBjaG8gMTA1IGttKSB2YSA0a20gZHVvbmcg Y2FvIHRvYyBIQ00tTFQtR0QgKDE4Ljg4MCB0eSBjaG8gNTVrbSkgDQptYSB0aG9pLiBDaGkgeGV0 IG8gbW90IGdvYyBuaG8gKGNvIHRoZSBob2kga2hhcCBraGllbmcpIG5odSB2YXkgY28gdGhlIHRo YXkgDQp0eSBsZSBkYXUgdHUgY2hvIHZpZWMgZGFvIHRhbyBuaGFuIHRhaS0gbHVjIGx1b25nIG5v bmcgY290IGNobyBzdSBwaGF0IHRyaWVuIGRhdCBudW9jLSBsYSBjaHVhIHRob2EgZGFuZy4gDQpW YXkgQm8gR0QgdmEgQ2hpbmggcGh1IGNvIHRoZSB0YW5nIG11YyBkYXUgdHUgY2hvIEdEIGhvbiBu dWEgZHVvYyBraG9uZz8gDQpUb2kgeGluIG1hbmggZGFuIGRlIG5naGkgdm9pIEJvIHRydW9uZyBu Z2hpZW4gY3V1IHRoZW0gdmEgY28gZGUgeHVhdCBsZW4gQ2hpbmggcGh1IHZhIFF1b2MgaG9pIHZl IHZhbiBkZSBuYXkuDQoNCkxhIG1vdCBuZ3VvaSBjb24gY3VhIGRhdCBudW9jLCBoaWVuIGRhbmcg bmdoaWVuIGN1dSB2YSBob2MgdGFwIG8gbnVvYyBuZ29haSwgDQp0b2kgcmF0IGh5IHZvbmcgdmFv IHF1eWV0IHRhbSBjaGFuIGh1bmcgR0QgY3VhIEJvIHRydW9uZyBjdW5nIG5odSB0YW0gaHV5ZXQg DQpjdWEgZG9pIG5ndSBob24gbW90IHRyaWV1IGNhYyB0aGF5LCBjbyBnaWFvIHRyb25nIGNhIG51 b2MuIFhpbiB0cmFuIHRyb25nIA0KY2FtIG9uIEJvIHRydW9uZyBkYSBib3QgY2h1dCB0aG9pIGdp YW4gbGFuZyBuZ2hlIGNhYyB5IGtpZW4gZGUgeHVhdCBjdWEgdG9pLiANCihOZ3V5ZW4gTmdvYyBR dWFuZyAtIE5naGllbiBjdXUgc2luaCB0YWkgSGEgTGFuKQ0KDQpZIEtJRU4gQkFOIERPQzoNCg0K SG8gdmEgdGVuOiBOZ3V5ZW4gdmFuIEJhbiANCkRpYSBjaGk6IHNvIDEyNSBOZ3V5ZW4gQmluaCBL aGllbSBIYWkgUGhvbmcNCkVtYWlsOg0KDQpUb2kgaG9hbiBuZ2hlbmggbmh1bmcgZHVjIHJ1dCB0 cmFpIG5naGllbSBjdWEgYmFuIHR1IHZpZWMgaG9jIERIIHZhIHNhdSBESC4gDQpWaWVjIGhvYyB2 YSBkYW5oIGdpYSBrZXQgcXVhIHBoYWkgZHVvYyB0YWNoIGJpZXQuIFRvIGNodWMgaG9pIGRvbmcg ZGFuaCANCmdpYSBrZXQgcXVhIHJpZW5nIGJpZXQga2hvbmcgcGh1IHRodW9jIHZhbyBub2kgZGFv IHRhbyBsYSBtb3QgY2FjaCBsYW0gZHVuZyBjYW4gZHVvYyBhcCBkdW5nIG5nYXkuICAgDQoNCkhv IHZhIHRlbjogUGhhbSB0aGFuaCBUcnVuZyANCkRpYSBjaGk6IFRhbiBtYWksIEhvYW5nIG1haSBI TiANCkVtYWlsOiB0aGFuaHRydW5na3NkY0B5YWhvby5jb20gDQoNClRvaSB0aGF5IHkga2llbiBj dWEgYmFuIE5ndXllbiBOZ29jIFF1YW5nIGxhIHJhdCBoYXksIGNvIHRpbmgga2hhIHRoaSBjYW8u IA0KTGFtIG5odSB2YXkgdGh1YyB0ZSBnYW4gbmh1IGhpbmggdGh1YyBraG9hbiAxMCB0cm9uZyBn aWFvIGR1Yy4gWSBraWVuIG5heSANCnJhdCBtb25nIGR1b2Mgbmh1bmcgbmd1b2kgcXVhbiBseSBH RCBzdXkgbmdhbSAgDQoNCkhvIHZhIHRlbjogQlMgVHJpbmggUXVhbmcgRHVjIA0KRGlhIGNoaTog QmVuaCB2aWVuIFlIQ1QgUXVhbmcgTmFtIA0KRW1haWw6IHRyaW5oZHVjdGt5QGdtYWlsLmNvbSAN Cg0KVG9pIHJhdCBkb25nIHRpbmggdm9pIHkga2llbiBkYXkgbmhpZXQgaHV5ZXQgY3VhIGFuaCBO Z3V5ZW4gTmdvYyBRdWFuZy4gDQpLaW5oIGRlIG5naGkgQm8gdHJ1b25nIEdEIHF1YW4gdGFtLCBu Z2hpZW4gY3V1IHZpIGRheSBsYSBnaWFpIHBoYXAgcmF0IGhvcCBseSB2b2kgdGh1YyB0aWVuIEdE LiAgDQoNCkhvIHZhIHRlbjogTmd1eWVuIFRydW5nIFZpZXQgDQpEaWEgY2hpOiBUcnVvbmcgQ0RT UCBCaW5oIER1b25nIA0KRW1haWw6IHRydW5ndmlldF9raW10aG9hQHlhaG9vLmNvbQ0KDQpUb2kg bGEgR1YgVG9hbiwgdG90IG5naGllcCBESFNQIEhhIE5vaSB0dSBuYW0gMTk3MywgaGllbiBsYSBH ViBjdWEgVHJ1b25nIENEU1AgQmluaCBEdW9uZy4gDQpUb2kgcmF0IHVuZyBobyB5IGtpZW4gY3Vh IGFuaCBOZ3V5ZW4gTmdvYyBRdWFuZzsgbmhhdCBsYSBkZSB4dWF0IHRoYW5oIA0KbGFwIGNhYyAi VHJ1bmcgdGFtIGtoYW8gdGhpIiB0YWkgY2FjIHZ1bmcgbWllbi4gTmd1b2kgaG9jIGNvIHRoZSBo b2MgYmF0IA0Ka2kgbyBkYXUsIGhpbmggdGh1YyBnaSwgbmV1IGNvIG5odSBjYXUgY2FwIGJhbmcg Y2hpbmggcXVpIGN1YSBCbyBHRC1EVCB0aGkgZGFuZyBraSB0aGkgdGFpIGNhYyB0cnVuZyB0YW0g dHJlbi4gDQpCbyBHRC1EVCBjaGkgY2FuIHRhcCB0cnVuZyB4YXkgZHVuZyB2YSBjaGkgZGFvIGNh YyAiVHJ1bmcgdGFtIGtoYW8gdGhpIiANCmNvIGNoYXQgbHVvbmcgY2FvIHZhIHRoYXQgZGFuZyB0 aW4gY2F5LiAzNiBuYW0gZGF5IGhvYyB2YSBsdW9uIHRyYW4gdHJvIA0KdmUgR0QgbnVvYyBuaGEs IHRvaSB0aGF5IGNoaSBjb24gY2FjaCBuYXkgbW9pIHRoYXQgc3UgZG9pIG1vaSBHRCB2YSBjaGkg Y28gbGFtIG5odSB2YXkgIEdEIG1vaSBjbyBjaGF0IGx1b25nIHRodWMgY2hhdC4gIA0KDQpIbyB2 YSB0ZW46IA0KRGlhIGNoaTogDQpFbWFpbDogbGViYW90cnVuZzEyQGdtYWlsLmNvbSANCg0KUm8g cmFuZyBjYWNoIHBoYW4gY2hpIHRpZXUgbmh1IGhpZW4gbmF5IGN1YSBCbyBsYSByYXQgcGhhbiBr aG9hIGhvYywgDQptb2kgY2hpIHRpbmggdG9hbiBkdWEgdHJlbiAic3VjIiBjdWEgY2FjIHRydW9u ZyB2ZSBjbyBzbyB2YXQgY2hhdCwgdGhheSwgDQpjby4uLm5odW5nIGNodWEgaGUgZHVhIHZhbyBu aHUgY2F1IHhhIGhvaSBuaHUgbW90IGNhbiBkb2kgbG9uIHZlIG5ndW9uIA0KbmhhbiBsdWMgdHJl biBjbyBzbyBjdW5nIC0gY2F1ICh0cmljaCBkYW4pIA0KDQpIbyB2YSB0ZW46IA0KRGlhIGNoaTog DQpFbWFpbDogc29uZHYucmRAdmlldHNvdi5jb20udm4gDQoNClRvaSByYXQgdnVpIHZpIGNvIG5o dW5nIHkga2llbiB0YW0gaHV5ZXQgZG9uZyBnb3AgY2hvIG5nYW5oIGdpYW8gZHVjIG51b2MgDQp0 YSBuZ2F5IG1vdCB0b3QgZGVwIGhvbi4NClRoZW8gdG9pIGJpZXQgcXVhIGNhYyBwaHVvbmcgdGll biB0aG9uZyB0aW4gZGFpIGNodW5nLCBkYSBjbyByYXQgbmhpZXUgDQpuaHVuZyB5IGtpZW4gbmh1 IHRoZSBjaG8gbmdhbmggZ2lhbyBkdWMsIGR1b2MgZHUgbHVhbiB4YSBob2kgaG9hbiBuZ2hlbmgs IA0Kbmh1bmcga2hvbmcgaGlldSB0YWkgc2FvIG5odW5nIHkga2llbiBkbyBraG9uZyBkdW9jIGFw IGR1bmc/IFRhaSBzYW8/IFRoYXQga2hvIGhpZXUuIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0 LzIwMTAtMDgtMjAtbnVjLWxvbmctc3Uta2llbi1ncy1jaGF1LXRpbmgtdGFtLW5nYW0tdmUtdmFu LW51b2MgTmd1eWVuIFRydW5nIDIxLzA4LzIwMTAgMDY6MDAgR01UKzcNCg0KTnVjIGxvbmcgc3Ug a2llbiBHUyBDaGF1LCB0aW5oIHRhbSBuZ2FtIHZlIHZhbiBudW9jDQoNClRpbiBnaWFvIHN1IE5n byBCYW8gQ2hhdSBkdW9jIHRhbmcgSHV5IGNodW9uZyBGaWVsZHMgY2hvIHRoYW5oIHF1YSBraG9h IGhvYyBjdWEgDQptaW5oIGxhIHRpbiB2dWkgbG9uIGN1YSAibGFuZyB0b2FuIGhvYyB0aGUgZ2lv aSIgbm9pIGNodW5nIHZhIGxhIHZpbmggZHUgbG9uIGN1YSBnaWFvIHN1IA0KTmdvIEJhbyBDaGF1 IG5vaSByaWVuZy4gVGluIHZ1aSBsb24gbmF5IG1hbmcgbGFpIGNobyB0cmkgdHVlIFZpZXQgTmFt IG5pZW0gdHUgaGFvIHh1bmcgDQpkYW5nLiANCg0KTm9pIHRodWMgbG9uZywgY2FuZyB0dSBoYW8g YmFvIG5oaWV1IHRvaSBjYW5nIGNhbSB0aGF5IGRhdSBsb25nIGJheSBuaGlldSB2ZSB0aHVjIHRy YW5nIA0KaGllbiBuYXkgY3VhIG5lbiBnaWFvIGR1YyBudW9jIG5oYSwgbmhhdCBsYSB0cm9uZyBk b2kgdGh1b25nIGhhbmcgbmdheSB0b2kgZHVvYyB0aWVwIHh1YyANCnZvaSBiaWV0IGJhbyBuaGll dSBob2Mgc2luaCB2YSBjYWMgbmFtIG51IHRoYW5oIG5pZW4gZ2lhdSBuZ2hpIGx1YyBkYW5nIG5n YXkgZGVtIGtoYXQgDQpraGFvIG5odW5nIGRpZXUga2llbiBob2MgdGFwIGtob25nIHRoZSB0aGll dSBkdW9jIGNobyB0dW9uZyBsYWkgY3VhIGNoaW5oIGhvLCBjaG8gdGllbiANCmRvIGN1YSBkYXQg bnVvYy4NCg0KVGhpZXQgbmdoaSwgbmhhbiBkaXAgbmF5IG1vaSBuZ3VvaSB0cm9uZyBjYSBudW9j IG5oYWMgbmhvIG5oYXUgZGVtIHRhdCBjYSB5IGNoaSB2YSBuZ2hpIA0KbHVjIGN1YSBtaW5oIGxh bSBsYW5oIG1hbmggbmVuIGdpYW8gZHVjIG51b2MgbmhhLCBsYW0gY2hvIG5lbiBnaWFvIGR1YyBu dW9jIG5oYSBkYW0gDQpkdW9uZyBkdW9jIG5oaWVtIHZ1IHRyb25nIG5ndW9pLCBtYSBuaHUgY2F1 IHhheSBkdW5nIHZhIGJhbyB2ZSBkYXQgbnVvYyBuZ2F5IG5heSANCmRhbmcgdGhvaSB0aHVjIHJh dCBnYXkgZ2F0ISAgIA0KDQpodHRwOi8vdmlldGluZm8uZXUvMzAwLzg4NjU1L3RodS1uZ28tZ3Vp LXB0dC1uZ3V5ZW4tdGhpZW4tbmhhbi0lRTIlODAlOTMtdmUtcXVhbi1kaWVtLXRyaS10aHVjLXRy b25nLXNhY2gtZ2lhby1raG9hLWxpY2gtc3UuaHRtIFRoZW8gQm94aXQudm4gMDktMDQtMjAxMCAx NDo1NSANCg0KVGh1IG5nbyBndWkgUFRUIE5ndXllbiBUaGllbiBOaGFuIJYgVmUgcXVhbiBkaWVt IHRyaSB0aHVjIHRyb25nIHNhY2ggZ2lhbyBraG9hIGxpY2ggc3UNCg0KR2lhbyBzdSBWdSBDYW8g RGFtDQoNCk5hbSAyMDA3LCBuaGFuIGRvYyBiYWkgYmFvIGN1YSB0YWMgZ2lhIEx1dSBUcmFuZyB0 cmVuIGJhbyBUdW9pIHRyZSwgdG9pIGRhIGRhbmggDQp0aG9pIGdpYW4gbmdoaWVuIGN1dSBzYWNo IGdpYW8ga2hvYSBsaWNoIHN1LCBuaGFuIHRoYXkgY2FjIHRhYyBnaWEgc2FjaCBnaWFvIGtob2Eg DQpkZXUgeGVwIHRyaSB0aHVjIHZhbyBnaWFpIGNhcCB0aWV1IHR1IHNhbi4gRGlldSBuYXkgY28g bGUga2hvbmcgcGh1IGhvcCBxdWFuIGRpZW0gDQpjdWEgTWFjIHZlIHRhbmcgbG9wIHRyaSB0aHVj Lg0KDQpLaGkgZ2lhbmcgdmUgZHV5IHZhdCBsaWNoIHN1IGNhYyB0aGF5IHRyaWV0IGhvYyBWaWV0 IE5hbSBkZXUgdHJpbmggYmF5IHJhdCBybywgDQp0cmkgdGh1YyBsYSBtb3QgZ2lhaSB0YW5nIHhh IGhvaSwga2hvbmcgcGhhaSBsYSBtb3QgZ2lhaSBjYXAuIE5odW5nIGNhYyBzYWNoIA0KdmUgbGlj aCBzdSBvIFZpZXQgTmFtIGxhaSB4ZW0gdHJpIHRodWMgbGEgbW90IGJvIHBoYW4gY3VhIGdpYWkg Y2FwIHRpZXUgdHUgc2FuLg0KDQpDaGluaCB2aSBxdWFuIG5pZW0gdHJpIHRodWMgbmh1IHZheSwg Y2hvIG5lbiB0cm9uZyB0dSB0dW9uZyBjYWMgbmhhIGxhbmggZGFvIA0KKGtlIGNhIG5odW5nIG5o YSBsYW5oIGRhbyBjbyBnb2MgbGEgdHJpIHRodWMpIGx1b24gdGh1b25nIHRydWMgdHJvbmcgZGF1 IG1vdCANCnRoYWkgZG8ga3kgdGhpIGRvaSB2b2kgdHJpIHRodWMuLi4gcmF0IG5nYWkgdGllbmcg bm9pIGN1YSB0cmkgdGh1YywgeGVtIGRvIGxhIA0KdGllbmcgbm9pIGN1YSBib24gdGlldSB0dSBz YW4sIG1vdCB0YW5nIGxvcCB0cnVuZyBnaWFuICJiYXAgYmVuaCIsICJkYW8gZG9uZyIuIA0KDQpC YWkgbmdoaWVuIGN1dSBzYXUgZGF5IGN1YSB0YWMgZ2lhIFZ1IENhbyBEYW0gdmlldCBsdWMgIm5n YWkiIE5ndXllbiBUaGllbiBOaGFuIA0KY2h1YSB0aG9pIGNodWMgQm8gdHJ1b25nIEJvIEdEJkRU LCB4dWF0IHBoYXQgdHUgcXVhbiBkaWVtIHRyaWV0IGhvYyBNYWMgdmUgdGFuZyANCmxvcCB0cmkg dGh1YywgZ29wIG1vdCB0aWVuZyBub2kgdm9pIGh5IHZvbmcgY2FjIG5oYSB2aWV0IHNhY2ggZ2lh byBraG9hIHhlbSB4ZXQgDQpsYWkgcXVhbiBkaWVtIHRyb25nIGNhYyBzYWNoIGdpYW8ga2hvYSBs aWNoIHN1IFZpZXQgTmFtLg0KDQpUYWMgZ2lhIGNobyBiaWV0LCBiYWkgbmF5IGRhIGR1b2MgZ3Vp IGNobyBtb3QgdHJhbmcgbWFuZyAibGUgcGhhaSIgbGEgdHJhbmcgRGFuIHRyaSANCmN1YSBIb2kg S2h1eWVuIGhvYyBWaWV0IE5hbSwgbmh1bmcgRGFuIHRyaSBraG9uZyBkYW5nLCB2YSBjdW5nIGto b25nIGNvIHRob25nIHRpbiANCnBoYW4gaG9pIHZvaSB0YWMgZ2lhLCBuZW4gdGFjIGdpYSBndWkg ZGVuIEJhdXhpdGUgVmlldCBOYW0uDQoNClRyYW4gdHJvbmcgZ2lvaSB0aGlldSBjdW5nIGJhbiBk b2MuDQpCYXV4aXRlIFZpZXQgTmFtDQoNCktpbmggZ3VpOiBHaWFvIHN1IE5ndXllbiBUaGllbiBO aGFuLCBQaG8gVGh1IHR1b25nIHBodSB0cmFjaCBjb25nIHRhYyBraG9hIGhvYyB2YSBnaWFvIGR1 Yy4NCg0KTmFtIDIwMDcsIG5oYW4gZG9jIGJhaSBiYW8gY3VhIHRhYyBnaWEgTHV1IFRyYW5nIHRy ZW4gYmFvIFR1b2kgdHJlLCB0b2kgZGEgZGFuaCB0aG9pIA0KZ2lhbiBuZ2hpZW4gY3V1IHNhY2gg Z2lhbyBraG9hIGxpY2ggc3UsIG5oYW4gdGhheSBjYWMgdGFjIGdpYSBzYWNoIGdpYW8ga2hvYSBk ZXUgeGVwIHRyaSANCnRodWMgdmFvIGdpYWkgY2FwIHRpZXUgdHUgc2FuLiBEaWV1IG5heSBjbyBs ZSBraG9uZyBwaHUgaG9wIHF1YW4gZGllbSBjdWEgTWFjIHZlIHRhbmcgbG9wIHRyaSB0aHVjLg0K DQpWaSB2YXksIHRvaSB2aWV0IHRodSBuYXksIGtlbSB0aGVvIGJhaSBwaGFuIHRpY2gsIHZvaSBo eSB2b25nIFBobyB0aHUgdHVvbmcsIA0Kdm9pIGN1b25nIHZpIGxhIG5ndW9pIGhpZW4gY28gdHJv bmcgdHJhY2ggbGFuaCBkYW8gY29uZyB0YWMga2hvYSBob2MgdmEgZ2lhbyBkdWMgDQp4ZW0geGV0 IGRlIGR1YSBuaHVuZyBxdWFuIGRpZW0gZHVuZyBkYW4gdmUgdHJpIHRodWMgdHJvbmcgc2FjaCBn aWFvIGtob2EuDQoNClRyYW4gdHJvbmcNCg0KVnUgQ2FvIERhbQ0KDQoqICAqICAgKg0KVHJvbmcg YmFpICJEaWVtIHRoaSBsaWNoIHN1IGtlbSwgdmkgc2FvPyIsIGRhbmcgdHJlbiBUdW9pIHRyZSBu Z2F5IDI2LzcvMjAwNywgDQp0YWMgZ2lhIEx1dSBUcmFuZyBjaG8gYmlldCwga2V0IHF1YSB0aGkg bW9uIGxpY2ggc3UgY2EgbnVvYyBjbyB0b2kgNDAtNjAlIGRpZW0ga2VtLCANCnJpZW5nIHRhaSBE YWkgaG9jIERhIE5hbmcgY28gdG9pIDk4LDclIGJhaSB0aGkgZHVvaSB0cnVuZyBiaW5oLiBCYW4g THV1IFRyYW5nIA0KbmhhbiB4ZXQgIlJhdCBuaGlldSB0aGkgc2luaCBraG9uZyBiaWV0IHRhbmcg bG9wIHRpZXUgdHUgc2FuIHRyaSB0aHVjIGxhIGFpIi4NCg0KS2hpIGRvYyB4b25nIGJhaSBuYXks IHRvaSBjaG90IG5obyBsYWkgbW90IG5nYXkgZGF1IHRoYXAgbmllbiAxOTcwLCBraGkgdG9pIGRl biBMaWVuIFhvIA0KbGFtIG5naGllbiBjdXUgc2luaCwgY29uZyB2aWVjIGRhdSB0aWVuIHRyb25n IG5nYXkgbmhhcCB0cnVvbmcgbGEgdG9pIHRyaW5oIGRpZW4gDQp0YWkgS2hvYSBRdWFuIGx5IHNp bmggdmllbiBuZ29haSBxdW9jIChzYXUgZGF5IGdvaSB0YXQgbGEgS2hvYSBOZ29haSBxdW9jKS4g DQpUb2kgZHVvYyBiYSBUaHUga3kgS2hvYSBOZ29haSBxdW9jIGh1b25nIGRhbiBsYW0gY2FjIGhv IHNvIG5oYXAgdHJ1b25nLCB0cm9uZyBkbyANCmNhbiBkaWVuIHZhbyBtb3QgdG8ga2hhaSBseSBs aWNoLiBUb2kgZGEga2hhaSB2YW8gbXVjICJUaGFuaCBwaGFuIHhhIGhvaSIgbGEgDQoiVGlldSB0 dSBzYW4gdHJpIHRodWMiLCBkdW5nIG5odSBjYWNoIGhpZXUgY3VhIHRvaSB2YSBjYWMgYmFuIHNp bmggdmllbiB2YW4gDQpraGFpIGx5IGxpY2ggdGhvaSBkby4gS2hpIGRvYyBiYW4gbHkgbGljaCBj dWEgdG9pLCBPbmcgR2lhbyBzdSBDaHUgbmhpZW0gDQpLaG9hIE5nb2FpIHF1b2MgdHJvbiB4b2Ug bWF0OiAiQ2F1IGxhIGNodSBuaGEgbWF5IGdpIHZheT8iLiBUb2kgdHJhIGxvaSAiS2hvbmcsIFRo dWEgR2lhbyBzdSIuIA0KT25nIGxhaSBob2kgdGllcDogIlZheSBuaGEgY2F1IGNvIGN1YSBoYW5n IGJhbiBjYWkgZ2kgZG8gYT8iLiANClRvaSBsYWkgdHJhIGxvaSAiQ3VuZyBraG9uZywgdGh1YSBH aWFvIHN1Ii4gT25nIGxhaSBob2k6ICJWYXkgdmkgc2FvIGNhdSBraGFpIGxhIA0KZ2lhaSBjYXAg dGlldSB0dSBzYW4/Ii4uLiAiTWEgbGFpIGdpYWkgY2FwIHRpZXUgdHUgc2FuLi4uIHRyaSB0aHVj IC4uLiIsIA0KZ2lvbmcgb25nIHhlbiBjaHV0IGhhaSBodW9jICJkYSB0aWV1IHR1IHNhbiBsYWkg Y29uIHRyaSB0aHVjLi4uIG5odSB0aGUgbmdoaWEgbGEuLi4gbGEgY2FpIHF1YWkgZ2k/Ii4gDQpS b2kgb25nIGN1b2kgY2hhbSBiaWVtOiAiVHJpIHRodWMgbmh1IGNhdSB0aGkgY28gdHUgc2FuIGdp IGRhdSBtYSB0aWV1PyIuIA0KVG9pIG5naGV0IG1hdCwgY2hhbmcgYmlldCB0cmEgbG9pIHJhIHNh by4gDQpSb2kga2hvbmcgZG9pIHRvaSB0cmEgbG9pLCBvbmcgdGllcCBsdW9uIG1vdCB0cmFuZyBk dXQgZG9uZyAuLi4gIkNhdSBkYSBsYW0gZ2lhbmcgdmllbiANCnRyb25nIG1vdCB0cnVvbmcgZGFp IGhvYyBjdWEgTmhhIG51b2MuLi4gVmF5IGNhdSBsYSBuaGFuIHZpZW4gbmhhIG51b2MuLi4gQmF5 IGdpbyANCmNhdSBsYW0gdmllYyBvIExpZW4gWG8gdGhpIGtoYWkgbmh1IGNodW5nIHRvaSwgLi4u IGxhIC4uLiBzbHVkemFzaHlpLCBuZ2hpYSBsYSB2aWVuIGNodWMgDQpsYW0gY29uZyBhbiBsdW9u ZywgY2h1IHNhbyBsYWkgdGlldSB0dSBzYW4/IiANClRvaSB2YW4gY29uIG5nYXkgcmEga2hvbmcg Y2hpdSBoaWV1LiBPbmcgY3VvaSBob20gaGluaCBuaGluIHhvYXkgdmFvIG1hdCB0b2k6IA0KIk5h eSwgY2F1IGR1bmcgbmdheSBuZ3VvaSByYS4uLiBuZ2hpIG5nbyB0b2kgbmh1IHRoZSwgeGluIGNh dSBkdW5nIHF1ZW4sIHRvaSBsYSANCkdpYW8gc3UgdHJpZXQgaG9jLCBtYSBsYWkgY2h1eWVuIGdp YW5nIHZlIER1eSB2YXQgbGljaCBzdSBkYXkgbmhhISINCg0KUXVhIGNhdSBjaHV5ZW4gdm9pIG9u ZywgdG9pIGhpZXUgcmEsIG8gTGllbiBYbyBuZ3VvaSB0YSBraG9uZyB4ZXAgdHJpIHRodWMgdmFv IA0KZ2lhaSBjYXAgdGlldSB0dSBzYW4uIFZheSB0dSBkYXUgbWEgVmlldCBOYW0geGVwIHRyaSB0 aHVjIHZhbyBnaWFpIGNhcCB0aWV1IHR1IHNhbj8gDQpWb2kgY2FjaCB4ZXAgdHJpIHRodWMgdmFv IGdpYWkgY2FwIHRpZXUgdHUgc2FuLCB0aGkgbmd1b2kgdGEgbHVhbiBjaG8gdHJpIHRodWMgZHUg DQp0aHUgdG9pIGN1YSB0aWV1IHR1IHNhbiwgbmFvIGxhICJiYXAgYmVuaCBkYW8gZG9uZyIsIG5h byBsYSBjbyB4dSBodW9uZyAibmdvaSIgbGVuIA0KZGUgdGhhbmggZ2lhaSBjYXAgdHUgc2FuIGJv YyBsb3QsIHZhIGN1bmcgZGUgYmkgInR1dCIgeHVvbmcgdGhhbmggZ2lhaSBjYXAgdm8gc2FuIGJp IGJvYyBsb3QuLi4NCg0KRG9jIE5oYXQga3kgRGFuZyBUaHV5IFRyYW0gY2h1bmcgdGEgdGhheSwg VGh1eSBUcmFtIGRheSBkdXQgdHJpZW4gbWllbiB2b2kgY2FpIA0KdGhhbmggcGhhbiBnaWFpIGNh cCB0aWV1IHR1IHNhbiBjdWEgbWluaC4gVGh1eSBUcmFtIGNvbiB0aHVvYyB0aGUgaGUgc2F1IGNo dW5nIHRvaS4gDQpDaHVuZyB0b2kgY29uIGJpIGRheSBkdXQgaG9uIG5oaWV1LiBMb3AgZGFuIGFu aCB2YSBjaGEgY2h1IGN1YSBjaHVuZyB0b2kgY29uIG1hbmcgDQpuaHVuZyBub2kgZGF1IGhvbiB0 aGUgbnVhIHZvaSBjYWkgdGhhbiBwaGFuIHRhY2ggdGFjaCBzZSwgbmdoaWEgbGEgdGlldSB0dSBz YW4sIHRoZW8gY2FjaCANCm5vaSB0dSB0aG9pIGtoYW5nIGNoaWVuIGNob25nIFBoYXAuIENhdSBo b2kgYXkgY3UgYW0gYW5oIHRyb25nIGRhdSB0b2kgbWFpLi4uIFZhIHRvaSANCnF1eWV0IGRpbmgg dGh1IHRpbSBoaWV1IHhlbSBzdSB0aGF0IGxhIGRvIGRhdT8NCg0KVHJ1b2MgaGV0LCB0cm9uZyBj YWMgc2FjaCBseSBsdWFuIGtpbmggZGllbiBjdWEgTWFyeCwgdHJpIHRodWMgZHVvYyB4ZW0gbGEg bW90IA0KZ2lhaSB0YW5nIHhhIGhvaS4gVHJpIHRodWMgcGh1YyB2dSBnaWFpIGNhcCBuYW8gdGhp IGxhIG5ndW9pIGN1YSBnaWFpIGNhcCBkby4gDQpOaHVuZyBuaGEgeGEgaG9pIGhvYyBtYXJ4aXN0 IHRyZW4gdGhlIGdpb2kgcGhhbiBjaGlhIHRyaSB0aHVjIHRoYW5oIHRyaSB0aHVjIHZvIHNhbiwg DQp0cmkgdGh1YyBwaG9uZyBraWVuLCB0cmkgdGh1YyB0dSBzYW4sIHRyaSB0aHVjIHRpZXUgdHUg c2FuLCB2LnYuICh0aWV1IHR1IHNhbiBsYSBhZGplY3RpdmUpLCANCmNodSBraG9uZyBjbyBjYWkg a2hhaSBuaWVtIG5ndW9jLi4uIGxhIHRpZXUgdHUgc2FuIHRyaSB0aHVjICh0cmkgdGh1YyBsYSBh ZGplY3RpdmUpLiANClRvaSBkYSB0cmEgY3V1IGt5IHRyb25nIGN1b24gVHUgZGllbiB0cmlldCBo b2MgTGllbiBYbyBkbyBNLiBNLiBSb3plbnRhbCBjaHUgYmllbiwgDQprZSBjYSBiYW4gdGllbmcg VmlldCAoTnhiLiBUaWVuIGJvLCBNb3NrdmEsIDE5ODYpIHZhIGJhbiB0aWVuZyBOZ2EgKE54Yi4g Q2hpbmggdHJpIA0KTW9za3ZhLCAxOTQ5KSwga2hvbmcgdGhheSBvIGRhdSB4ZXAgdHJpIHRodWMg dmFvIGdpYWkgY2FwIHRpZXUgdHUgc2FuLiBOZXUgdG9pIGNvIHNvIHNvdCANCnRoaSB4aW4gY2Fj IHZpIHRodWMgZ2lhIGNoaSBnaWFvIGNoby4NCg0KUmllbmcgb25nIE1hbyBUcmFjaCBEb25nIHRo aSBraG9uZyBxdWFuIG5pZW0gbmh1IHZheS4gUXVhbiBuaWVtIGN1YSBvbmcgdGEgdmUgdHJpIHRo dWMgDQpob2FuIHRvYW4ga2hhYyB2b2kgTWFyeC4gVHJvbmcgYmFpICJQaGFuIHRpY2ggY2FjIGdp YWkgY2FwIHRyb25nIHhhIGhvaSBUcnVuZyBRdW9jIiANCnZpZXQgdmFvIHRoYW5nIDMgbmFtIDE5 MjYgKFRydW5nIFF1b2MgeGEgaG9pIGdpYWkgY2FwIGRpY2ggcGhhbiB0aWNoLCBNYW8gVHJhY2gg RG9uZyANCnR1eWVuIHRhcCwgTmhhbiBkYW4geHVhdCBiYW4geGEsIG5ndXllbiBiYW4gdGllbmcg SG9hLCAxOTY2LCB0cmFuZyAzKSwgb25nIHRhIGRhIHBoYW4gZGluaCANCnRyaSB0aHVjIHRodW9j IGdpYWkgY2FwIHRpZXUgdHUgc2FuLiBPbmcgY2hpIHJhIHJhdCBybzoNCg0KIkdpYWkgY2FwIHRp ZXUgdHUgc2FuIGdvbSBub25nIGRhbiB0dSBjYW5oIHRhYyAodHVjIHRydW5nIG5vbmcpLCB0aWV1 IHRodW9uZywgdGlldSBjaHUsIA0KdGlldSBsdWF0IHN1LCB0aWV1IHZpZW4gY2h1YywgdGlldSB0 cmkgdGh1YywgZ2lhbyB2aWVuIHZhIGhvYyBzaW5oIHRydW5nIHRpZXUgaG9jLi4uIi4gDQpDaGlu aCB0dSBkYXkgeHVhdCBoaWVuIG1vdCBoZSBraGFpIG5pZW0geGEgaG9pIGhvYyBtYW9pc3QgaG9h biB0b2FuIGtoYWMgbGEgdm9pIA0KaGUga2hhaSBuaWVtIHhhIGhvaSBob2MgbWFyeGlzdDogdGll dSB0dSBzYW4gdHJpIHRodWMsIHRpZXUgdHUgc2FuIGhvYyBzaW5oLCANCnRpZXUgdHUgc2FuIHZp ZW4gY2h1YywgdGlldSB0dSBzYW4gdGlldSBjaHUsIHYudi4gVHJvbmcgYmFuIGtoYW8gY3V1IG5h eSwgb25nIE1hbyBub2kgcm8sIA0KdGlldSBjaGkgZGUgcGhhbiBkaW5oIGNhYyBnaWFpIGNhcCBs YSBtdWMgc29uZyB2YSBsb2kgc29uZy4gRGlldSBuYXkgY3VuZyBob2FuIHRvYW4gDQpraGFjIGxh IHZvaSBNYXJ4OiBNYXJ4IHBoYW4gZGluaCBnaWFpIGNhcCBraG9uZyB0aGVvIG11YyBzb25nIHZh IGxvaSBzb25nLCBtYSB0aGVvIHF1YW4gaGUgc28gaHV1IHZvaSB0dSB0aWV1IHNhbiB4dWF0Lg0K DQpDb24gbyBWaWV0IE5hbT8gQ2h1bmcgdGEgY28gdGhlIHRpbSBkdW9jIGRlIGRhbmcgdHJvbmcg Y2FjIGtobyB0dSBsaWV1IGN1YSBEYW5nIA0KQ1NWTiBtb3QgdmFuIGtpZW4gbm9pIHRpZW5nOiB2 YW8gdGhhbmcgMTAgbmFtIDE5MzAsIFRvbmcgQmkgdGh1IFRyYW4gUGh1IGRhIGNvbmcgYm8gDQpM dWFuIGN1b25nIGNoaW5oIHRyaSBjdWEgRGFuZyBDb25nIHNhbiBEb25nIER1b25nLiBUcm9uZyBw aGFuIHBoYW4gdGljaCBnaWFpIGNhcCANCnRpZXUgdHUgc2FuLCBvbmcgdmlldDoNCg0KIi4uLi4g YikgVGlldSB0dSBzYW4gY28gbmhpZXUgaGFuZywgZGlhIHZpIG1vaSBoYW5nIGxhaSBtb2kga2hh YyB2YSB0cm9uZyBtb2kgdGhvaSBreSANCmNhY2ggbWFuZyB0aGkgZGlhIHZpIGF5IGxhaSBkb2kg a2hhYyBudWEiLg0KDQpTYXUgZG8sIFRvbmcgYmkgdGh1IFRyYW4gUGh1IHBoYW4gdGljaCBkYWMg ZGllbSB0dW5nICJoYW5nIiB0cm9uZyBnaWFpIGNhcCB0aWV1IHR1IHNhbjoNCg0KIi0gQm9uIHRo dSBjb25nIG5naGllcCwgdmkgYmkgaGFuZyBob2EgY3VhIGRlIHF1b2MgY2hvIHRvaSByYXQgbmhp ZXUsIGNhbmggdHJhbmgga2hvbmcgDQpub2ksIGNobyBuZW4gY28gYWMgY2FtIHZvaSBkZSBxdW9j LiBEb2kgdm9pIHBob25nIHRyYW8gY2FjaCBtYW5nIHZvIHNhbiwgYm9uIG5heSBjdW5nIA0KY28g YWMgY2FtLCB2aSBjaHVuZyBubyBtdW9uIGdpdSBsYXkgY2FjaCBib2MgbG90IG5odW5nIHRobyBo b2MgbmdoZSB2b2kgY2h1bmcgbm8uIFZpIA0Kc3UgbWF1IHRodWFuIGF5IG1hIHRoYWkgZG8gY2h1 bmcgbm8gZG9pIHZvaSBjYWNoIG1hbmcgcmF0IGRvIGR1Ii4NCg0KIi0gQm9uIHRpZXUgdGh1b25n IGdpYSBjbyBxdWFuIGhlIHZvaSBjYWNoIGJvYyBsb3Qgbmh1IGxhIGJ1b24gYmFuIHZhIGNobyB2 YXkgbmFuZyBsb2ksIA0KYm9pIHZheSBjaHVuZyBubyBtdW9uIGdpdSBsYXkgY2hlIGRvIGF5LCB2 aSB0aGUgbWEgY2h1bmcgbm8ga2hvbmcgdGFuIHRoYW5oIGNhY2ggbWFuZyIuDQoNCiItIEJvbiB0 cmkgdGh1YywgaG9jIHNhbmgsIHYudi4gbGEgYm9uIGNvIHh1IGh1b25nIHF1b2MgZ2lhIGNodSBu Z2hpYSwgY2h1bmcgbm8gZGFpIGJpZXUgDQpxdXllbiBsb2kgY2hvIHRhdCBjYSBnaWFpIGNhcCB0 dSBib24gYm9uIHh1LCBjaG8ga2hvbmcgcGhhaSBjaGkgYmVuaCB2dWMgcXV5ZW4gbG9pIHJpZW5n IA0KY2hvIGJvbiB0aWV1IHR1IHNhbiBtYSB0aG9pLiBUcm9uZyB0aG9pIGt5IGNob25nIGRlIHF1 b2MgY2h1IG5naGlhIHRoaSBib24gYXkgY3VuZyBoYW5nIA0KaGFpIHRoYW0gZ2lhLCBuaHVuZyBj aGkgbHVjIGRhdSBtYSB0aG9pOyBjaHVuZyBubyBraG9uZyB0aGUgYmluaCB2dWMgcXV5ZW4gbG9p IGNobyBkYW4gDQpjYXkgZHVvYywgdmkgY2h1bmcgbm8gcGhhbiBuaGlldSBjbyBkYXkgZHVvbmcg dm9pIGJvbiBkaWEgY2h1Ii4gDQoNCiItIENhYyBwaGFuIHR1IGxhbyBraG8gbyB0aGFuaCBwaG8g bmh1IGxhIGJvbiBiYW4gcmFvIG5nb2FpIGR1b25nLCBib24gdGh1IGNvbmcgbmdoaWVwIA0Kbmhv IGtob25nIG11b24gdGhvLCBib24gdHJpIHRodWMgdGhhdCBuZ2hpZXAsIHYudi4gdmkgc2FuaCBo b2F0IGN1YyBraG8gY2hvIG5lbiBkZXUgdGhlbyANCmNhY2ggbWFuZyBjYSIuDQoNClRyaSB0aHVj IGxhICJoYW5nIiBuaHUgdGhlLiBUcmkgdGh1YywgY3VuZyB2b2kgImJvbiIgdGlldSB0aHVvbmcg dGlldSBjaHUgdmEgImJvbiIgYmFuIA0KcmFvIG5nb2FpIGR1b25nIGR1b2MgeGVwIGN1bmcgbW90 IG5ob20geGEgaG9pLCB2b2kgZGFjIGRpZW0gY2h1bmcgZHVvYyBtbyB0YSB0cm9uZyANCmJhbiBM dWFuIGN1b25nIGxhLCBraG9uZyBjbyBsYXAgdHJ1b25nIGtpZW4gZGluaCwgbGEgaGFuZyBiYXAg YmVuaCwgZGFvIGRvbmcsIHRoYXkgDQpwaG9uZyB0cmFvIGxlbiB0aGkgdGhlbywgdGhheSB0aG9h aSB0cmFvIGtobyBraGFuIHRoaSBuYW4uLi4gSG9uIG51YSwgImJvbiBjaHVuZyIgY2hpIGRpIA0K InRoZW8gY2FjaCBtYW5nIiBraGkgYmkgInRoYXQgbmdoaWVwIiB2YSAic2FuaCBob2F0IGN1YyBr aG8iLi4uIFZheSB0aGkgbGFtIHNhbyBnaWFpIA0KdGhpY2ggZHVvYyBjbyBuaHVuZyBiYWMgdHJp IHRodWMgZGEgdHUgYm8gY3VvYyBzb25nIG8gZGluaCBjYW8gY3VhIHhhIGhvaSBkZSBsZW4gY2hp ZW4gDQpraHUsIG5odSBEYW8gRHV5IEFuaCwgVGEgUXVhbmcgQnV1LCBCdWkgQmFuZyBEb2FuLCBW byBOZ3V5ZW4gR2lhcCwgSHV5bmggVGh1YyANCktoYW5nLCBUcmFuIERhaSBOZ2hpYSwgVHJhbiBE dWMgVGhhbywgVG9uIFRoYXQgVHVuZywgTmd1eWVuIE1hbmggVHVvbmcsLi4uIHZhIHZvIA0KdmFu IHRyaSB0aHVjIGRhIHhhIHRoYW4gdmkgZGFpIG5naGlhIHRyb25nIHN1b3QgY2hpZXUgZGFpIGxp Y2ggc3UgY3VhIGRhbiB0b2M/DQoNCkNhYyBhbmggY2hpIHRodW9jIGxvcCBkYW4gYW5oIGN1YSB0 b2kga2UgbGFpIG1vdCBjYXUgY2h1eWVuIHZ1aSwgbmh1IGR1YSBtYSB0aGF0LiBUb2kga2UgDQps YWkgZGUgbmhhYyBsYWkgbW90IHRob2kgYXUgdHJpIHRyb25nIHF1YW4gbmllbSBjdWEgY2h1bmcg dGEgdmUgbW90IGxvcCBuZ3VvaSBnb2kgbGEgInRpZXUgDQp0dSBzYW4iLiBEbyBsYSB2YW8gbmFt IDE5NTAsIHNhdSBDaGllbiB0aGFuZyBCaWVuIGdpb2kgKHR1YyBiaWVuIGdpb2kgZ2l1YSBWaWV0 IE5hbSB2YSANClRydW5nIFF1b2MpLCBOaGEgbnVvYyBkYW4gY2h1IGNvbmcgaG9hIGJhdCBkYXUg Z3VpIGhvYyBzaW5oIGR1IGhvYyBvIGNhYyBudW9jIHhhIGhvaSANCmNodSBuZ2hpYS4gRG9hbiBo b2Mgc2luaCBraGFuZyBjaGllbiBkYXUgdGllbiBsYW4gbG9pIGR1b25nIGJvLCBiYW5nIG51aSBy dW5nIFZpZXQgQmFjLCANCnF1YSBiaWVuIGdpb2ksIGR1bmcgY2hhbiBvIEJhbmcgVHVvbmcgZGUg Y2hvIHhlIGx1YSBkZW4gUXVlIExhbSwgbm9pIGR1b2MgQ2hpbmggcGh1IA0KVHJ1bmcgUXVvYyBn aXVwIHhheSBkdW5nIEtodSBob2MgeGEgY3VhIFZpZXQgTmFtLCBtb3QgY28gc28gZGFvIHRhbyBj dWEgTmhhIG51b2MgDQpraGFuZyBjaGllbi4gQ2FjIGNvIGNhdSBob2Mgc2luaCB0dSBudWkgcnVu ZyBiaSBjaG9hbmcgbmdvcCBib2kgaGFuZyBob2EgbyB0cmFtIGR1bmcgDQpjaGFuIHNhdSBraGkg dnVhIHF1YSBiaWVuIGdpb2ksIHRyb25nIHRoYXkgdmF0IGR1bmcgbmFvIGN1bmcgdGhpY2gsIGtl IHR1IGNhaSBidXQgbWF5IGRlbiANCmNhaSBiYW0gbW9uZyB0YXk7IHRyb25nIHRoYXkgbGUsIHRh byB0aGkgaGFvIGh1YyBtdW9uIGFuLiBUaGUgcm9pLCBjYWkgZ2kgcGhhaSBkZW4gdGF0IHNlIA0K ZGVuOiBDYWMgY28gY2F1IGR1b2MgcGhhdCB0aWVuIHRpZXUgdmF0LiBWYXkgbGEgcGhhaSBsYW0g ImJ1bmcgbm8iIHJhIGNhaSB1b2MgbXVvbiBiaSANCmtpZW0gY2hlIG5lbiBtYWkgdHUgdHJvbmcg dGFtIGNhbiwgYmF0IGtlIGxhIGNhYyBjbyBjYXUgZGEgZHVvYyBob2MgdGFwICJjaGluaCBodWFu IiANCnRydW9jIGtoaSBsZW4gZHVvbmcsIG5hbyBsYSBzYW5nIG51b2MgYmFuIHN1bmcgc3Vvbmcg cGhhaSBuaG8gZGVuIGdpYW4ga2hvIG51b2MgbmhhLCANCm5hbyBsYSBraG9uZyBkdW9jIGJ1b25n IHRoYSBjYXUgYW4gaHVvbmcgbGFjLCB2LnYuIENhYyBjYXUgY29uIHRyYWkgdGhpIG11YSBsZSwg bXVhIHRhbywgDQphbiBkYSBkb2kgdGhpIHRob2k7IGNvbiBoYWkgY28gY29uIGdhaSB0cm9uZyBk b2FuLCB0aGkgY2hhdCBjaGl1IG11YSBzYW0sIG1hIG11YSBkdW9jIA0KbmhpZXUgbmhhbiBnaSBj aG8gY2FtLCBtb2kgY28gbXVhIGR1b2MgbW90IGNhaSBjYXQgbW9uZyB0YXksIG1vdCBjYWkgZ3Vv bmcgdmEuLi4gY2FpIA0KbWEgY2FjIGNvIGRhYyBiaWV0IHRoaWNoIHRodSBsYSwgbm9pIGNhYyBi YW4gdGh1IGxvaSwgdmFpIGNhaSB4dS1jaGllbmcgKG5heSBnb2kgbGEgbm9pIHkpIGRlIA0KdGhh eSB0aGUgbWF5IGNhaSBtYXkgY2hhcCB2YSB0cm9uZyBydW5nIGtoYW5nIGNoaWVuLg0KDQpDYXUg Y2h1eWVuIHR1b25nIG5odSB0aGUgbGEgeG9uZy4gTmh1bmcgbGFpIGtob25nIHhvbmcuIERlbiB0 b2ksIGtoaSBob3AgZG9hbiBraWVtIA0KZGllbSwgY2FjIHN1IHZpZWMgdHJlbiBkdW9jIG1hbmcg cmEgbW8geGUsIHBoYW4gdGljaCwgcmEgZGkgeGV0IGxhaSB0cmVuIHF1YW4gZGllbSBsYXAgDQp0 cnVvbmcgZ2lhaSBjYXAuIEN1b2kgY3VuZyBjYWMga2h1eWV0IGRpZW0gdHJlbiBjdW5nIHBoYWkg ZHVvYyBuaGFuIG5odW5nIGxvaSBrZXQgdG9pLCANCmN1bmcgdGltIGR1b2MgdG9pIGRhbmguIFRv aSBkYW5oIGRvIGxhOiAiVHUgdHVvbmcgY2F1IGFuIGh1b25nIGxhYyB0aWV1IHR1IHNhbiIuIERv IGxhIA0KY2FpIHRvaSBkYW5oIHJhdCBwaG8gYmllbiBkdW9jIHN1IGR1bmcgZGUgcXV5IGNodXAg Y2hvIGxvcCBuZ3VvaSBnb2kgbGEgInRyaSB0aHVjIiwgbmh1IA0KY2h1bmcgdG9pIG1vdCB0aG9p LiBIYWkgY28gY29uIGdhaSB0YWNoIHRhY2ggc2UgYmkga2llbSBkaWVtIHZlIGxhcCB0cnVvbmcg Z2lhaSBjYXAgbmdheSANCmRvLCBzYXUgbmF5IGRldSBsYSBuaHVuZyBuaHVuZyBiYWMga2hhIGtp bmg6IG1vdCBjaGkgdHJvIHRoYW5oIEdpYW8gc3UgVmllbiB0cnVvbmcgbW90IA0KVmllbiBsb24g dmUgbmhpIGtob2EsIGNvbiBtb3QgY2hpIHRybyB0aGFuaCBtb3QgVGllbiBzeSByYXQgbm9pIHRp ZW5nIHZlIHNhbiBraG9hLg0KDQpWYSBjYWkgYmVuaCB0YWNoIHRhY2ggc2UgZG8gY3VuZyBsYSBj YWkgbWEgRGFuZyBUaHV5IFRyYW0gdmF0IHZhIHRyb25nIHN1b3Qgbmh1bmcgDQp0cmFuZyBuaGF0 IGt5IGN1YSBtaW5oLi4uIFF1YSBkbyBjaHVuZyB0YSBuaGluIHRoYXkgbW90IGRpZXUgcmFuZywg bmdheSBjYSBuaHVuZyB0cmkgDQp0aHVjIGRhIG5ndXAgbGFuIHRyb25nIGN1b2MgY2hpZW4gZGF1 IHZvIGN1bmcgbmdoaWV0IG5nYSwgY3VuZyB2YW4gYmkga3kgdGhpIHRyb25nIGRvaSANCnh1LCBj aGkgdmkgaG8gbGEgY2FpICJoYW5nIiB0aWV1IHR1IHNhbi4NCg0KVG9pIG5odW5nIHR1b25nIHZp ZWMgZG8gZGEgcXVhIGxhdSByb2ksIG5odW5nIHN1IHRodWMgbGFpIGtob25nIHBoYWkgdmF5LiBO Z2F5IHRyb25nIA0Kbmh1bmcgbmdheSBuYXksIGtoaSB0b2kgZ2lhbmcgcGhhbiBjb25nIGRvbmcg dHJpIHRodWMga2hvYSBob2MgdHJvbmcgbW9uIGhvYyBYYSBob2kgDQpob2Mga2hvYSBob2MgKFNv Y2lvbG9neSBvZiBTY2llbmNlKSwgdGF0IGNhIGNhYyBzaW5oIHZpZW4ga2hpIGR1b2MgaG9pICJD b25nIGRvbmcgdHJpIA0KdGh1YyBraG9hIGhvYyB0aHVvYyBuaG9tIG5hbyB0cm9uZyB4YSBob2k/ IiwgdGhpLCBjYXUgdHJhIGxvaSBkdXkgbmhhdCBtYSB0b2kgbmhhbiBkdW9jIA0KbHVvbiBsYSAi VHJpIHRodWMgdGh1b2MgZ2lhaSBjYXAgdGlldSB0dSBzYW4iLiBUb2kgaG9pIHNpbmggdmllbiAi Q2FjIGJhbiBkYW5nIG5vaSB0aGVvIA0Kc2FjaCBuYW8gdmF5PyIsIHRoaSBjYXUgdHJhIGxvaSBy YXQga2hhbmcgZGluaCBsdW9uIGxhICJUaGVvIHNhY2ggTGljaCBzdSBsb3AgMTEiLiANCg0KS2hp IGNvbiBob2MgdHJ1bmcgaG9jLCBjaHVuZyB0b2kga2hvbmcgZHVvYyBob2Mgbmh1bmcgZGlldSBu YXkuIFRob2kgY2h1bmcgdG9pIGhvYyBkYWkgDQpob2MgY3VuZyBjaHVhIGhvYyBtb24gTGljaCBz dSBEYW5nLCBuZW4gY3VuZyBraG9uZyBiaWV0IGRpZXUgbmF5LiBLaGkgaG9jIHRyaWV0IGhvYyAN Ck1hcnggbyBiYWMgZGFpIGhvYyB0aGkgY2h1bmcgdG9pIGhpZXUgTWFyeCBkYSB4ZXAgdHJpIHRo dWMgdmFvIG1vdCBnaWFpIHRhbmcgeGEgaG9pIG5odSANCmRhIG5ldSBvIHRyZW4uIFNhdSBuYXkg ZGkgbGFtIHZpZWMsIHRvaSByYXQgaXQgY28gdGhvaSBnaWFuIGRvYyBzYWNoIGdpYW8ga2hvYSBi YWMgdHJ1bmcgDQpob2MsIG5lbiB0b2kgY2h1YSBiYW8gZ2lvIGJpZXQgZGVuIHN1IGtpZW4gbmF5 LiBOaHVuZyBkZW4ga2hpIG5naGUgc2luaCB2aWVuIG5vaSBsYWksIHZhIA0KbmhhdCBsYSBraGkg ZG9jIGJhaSBiYW8gY3VhIEx1dSBUcmFuZyB2dWEgbmV1IHRyZW4gZGF5LCB0b2kgbW9pIGRpIHRp bSBtdWEgY2FjIHNhY2ggZ2lhbyANCmtob2EgbGljaCBzdSwgdGhpIG1vaSBnaWF0IG1pbmgsIHRo YXkgZHVuZyBuaHUgdGhlIHRoYXQuIFRvaSB4aW4gdHJpY2ggZGFuIG1vdCBzbyBkb2FuOg0KDQpU cm9uZyBzYWNoIGdpYW8ga2hvYSBMaWNoIHN1IGxvcCAxMSBkbyBHUyBQaGFuIE5nb2MgTGllbiBj aHUgYmllbiAoTnhiLiBHaWFvIGR1YywgDQoyMDA3LCB0cmFuZyAxMzkpIGNvIGRvYW4gdmlldDog IkN1bmcgdHJvbmcgdGhvaSBreSBuYXkgZGEgeHVhdCBoaWVuIHRhbmcgbG9wIHRpZXUgdHUgc2Fu IA0KdGhhbmggdGhpLiBUaGFuaCBwaGFuIGN1YSBobyBraGEgcGh1YyB0YXAsIGdvbSBuaHVuZyB0 aWV1IHRodW9uZywgdGlldSBjaHUgc2FuIHh1YXQgdmEgDQpidW9uIGJhbiBoYW5nIHRodSBjb25n LiBTbyB2aWVuIGNodWMgbGFtIHZpZWMgdHJvbmcgY2FjIGNvbmcgc28gaG9hYyBjbyBzbyB0dSBu aGFuIG5odSANCm5oYSBiYW8sIG5oYSBnaWFvLCBob2Mgc2luaCwgc2luaCB2aWVuLi4uIGN1bmcg bGEgbW90IGx1YyBsdW9uZyBxdWFuIHRyb25nIGN1YSB0YW5nIGxvcCANCm5heSIuDQoNClRyb25n IHNhY2ggZ2lhbyBraG9hIExpY2ggc3UgbG9wIDExIG5hbmcgY2FvIGN1bmcgZG8gR1MgUGhhbiBO Z29jIExpZW4gdG9uZyBjaHUgYmllbiANCihOeGIuIEdpYW8gZHVjLCAyMDA3LCB0cmFuZyAyNjQp IGNvIGRvYW4gdmlldDogIlRhbmcgbG9wIHRpZXUgdHUgc2FuIG5odTogbmh1bmcgbmd1b2kgDQpi dW9uIGJhbiBuaG8sIHZpZW4gY2h1YyB0cm9uZyBjYWMgY29uZyBzbywgdHJpIHRodWMsIGhvYyBz aW5oLCBzaW5oIHZpZW4uLi4gY3VuZyBuZ2F5IG1vdCANCmRvbmcgY3VuZyB2b2kgc3UgbW8gcm9u ZyBraGFpIHRoYWMgY3VhIHRodWMgZGFuIFBoYXAiLg0KDQpUcm9uZyBzYWNoIFRpZW4gdHJpbmgg bGljaCBzdSBWaWV0IE5hbSBkbyBHUyBOZ3V5ZW4gUXVhbmcgTmdvYyBjaHUgYmllbiAoTnhiLiBH aWFvIA0KZHVjLCAyMDA5LCB0cmFuZyAyNTEpIGN1bmcgbm9pIHZlIGdpYWkgY2FwIHRpZXUgdHUg c2FuIG5odSBzYXU6ICIuLi4gZ2lhaSBjYXAgdGlldSB0dSBzYW4gDQpuZ2F5IGNhbmcgdHJvIG5l biBkb25nIGRhby4gTm8gZHVvYyBrZXQgaG9wIG1vdCBjYWNoIGxvbmcgbGVvIGJvaSBiYSBibyBw aGFuOiB0cmkgdGh1YywgDQp0aWV1IHRodW9uZywgdGhvIHRodSBjb25nLiBEaWVtIGNodW5nIGN1 YSBobyBsYSB0aGkgZGFuLCBzbyBodXUgbW90IGNodXQgdHUgbGlldSBzYW4geHVhdCANCih2b24s IGNoYXQgeGFtKSIuDQoNClRyb25nIGJhIGN1b24gc2FjaCBnaWFvIGtob2EgZHVvYyB0cmljaCBk YW4gdHJlbiBkYXkgY28gaGFpIGRpZW0gY2FuIHhlbSB4ZXQgbGFpOiBNb3QgDQpsYSwgIlRpZXUg dHUgc2FuIiBsYSBtb3QgZ2lhaSBjYXAgY2h1ISBEYXUgcGhhaSBsYSBtb3QgdGFuZyBsb3Agbmh1 IHZpZXQgdHJvbmcgaGFpIGN1b24gDQpzYWNoIGRvIEdTIFBoYW4gTmdvYyBMaWVuIGNodSBiaWVu PyBIYWkgbGEsIFRyaSB0aHVjLCBjdW5nIHZvaSB2aWVuIGNodWMsIGhvYyBzaW5oLCBzaW5oIA0K dmllbiB2YSBuaHVuZyBuZ3VvaSBidW9uIGJhbiBuaG8gZHVvYyB4ZXAgdHJvbmcgY3VuZyBtb3Qg bmhvbSB2b2kgY2FpIHRlbiBsYSBnaWFpIGNhcCANCnRpZXUgdHUgc2FuLiBEaWV1IG5heSB0aGUg aGllbiB0cm9uZyBjYSBiYSBjdW9uIHNhY2guDQoNClRvaSB2YW8gdGh1IHZpZW4gbHVvdCBuaGFu aCBoYW5nIGxvYXQgc2FjaCB2ZSBzdSBob2MsIGRldSB0aGF5IG1vIHRhIGdpYWkgY2FwIHRpZXUg dHUgc2FuIA0KZ29tIG1vdCBtbyBib25nIGJvbmcsIHR1IG5odW5nIG5ndW9pIGJ1b24gYmFuIG5o byBkZW4gY2FjICJoYW5nIiB0cmkgdGh1YywgaG9jIHNpbmgsIA0Kc2luaCB2aWVuLCBob2FuIHRv YW4gbGEgbW90IGJhbiBzYW8gdHJ1bmcgdGh1YyBjdWEgY2FjaCBtbyB0YSB0aGVvIHF1YW4gZGll bSBjdWEgTWFvIA0KVHJhY2ggRG9uZyB2ZSBnaWFpIGNhcCB0aWV1IHR1IHNhbiBkYSBjb25nIGJv IHRyb25nIGJhaSB2aWV0ICJQaGFuIHRpY2ggY2FjIGdpYWkgY2FwIA0KdHJvbmcgeGEgaG9pIFRy dW5nIFF1b2MiLiBPbmcgTWFvIGRhIGRvbmcgbmhhdCB2ZSBiYW4gY2hhdCB4YSBob2kgZ2l1YSBj YWMgImhhbmciIA0KYnVvbiBiYW4gbmdvYWkgY2hvIHZvaSBjYWMgImhhbmciIGJhbiBjaHUgdHJl biBnaWFuZyBkdW9uZywgaG9uIG51YSB4ZXAgY2h1bmcgdmFvIA0KY3VuZyBtb3QgbmhvbSwgdmEg Z29pIGxhIGdpYWkgY2FwIHRpZXUgdHUgc2FuLiBEb2MgeG9uZyBiYWkgdmlldCBjdWEgTWFvIFRy YWNoIERvbmcsIA0KdG9pIHRoYXQgc3UgcGhhbiB2YW46IEtob25nIGJpZXQgZ2l1YSBhbmggdHJ1 bmcgbm9uZyBobyBNYW8gbyBIbyBOYW0sIG9uZyB0aHUgdGh1IE1hbyANCnRyb25nIHRodSB2aWVu IGN1YSBUcnVvbmcgQmFjIERhaSwgbmhhIGNoaW5oIGtoYWNoIE1hbyB0cmVuIGNoaW5oIHRydW9u ZyBUcnVuZyBIb2EgDQp2YSBvbmcgY2h1IGN1YSBoYW5nIHRoaXQgY2hvIG8gY2hvIFNvbiBEb25n IGNvIGRhYyBkaWVtIGNodW5nIG5hbyB2ZSBtdWMgc29uZyB2YSANCmxvaSBzb25nIGRlIGR1b2Mg eGVwIGNodW5nIHZhbyBtb3Qgcm8gY3VhIGdpYWkgY2FwIHRpZXUgdHUgc2FuPw0KDQpMaWNoIHN1 IGRhIHNhbmcgdHJhbmcuIFRvaSB0aGlldCB0aGEgZGUgbmdoaSBjYWMgY28gcXVhbiBjaHUgdHJp IHZpZWMgYmllbiBzb2FuIA0Kc2FjaCBnaWFvIGtob2EgbmVuIHJhIHNvYXQgdmEgZGlldSBjaGlu aCBsYWkuIE5ldSBkaW5oIHZpZXQgc2FjaCB0aGVvIHF1YW4gZGllbSANCmN1YSBNYXJ4LCB0aGkg cGhhaSBkdW5nIHF1YW4gZGllbSBjdWEgTWFyeCwga2hhYyBwaHVjIHF1YW4gZGllbSBjdWEgTWFv IHZlIHRyaSB0aHVjIA0KdHJvbmcgc2FjaCBnaWFvIGtob2EgbGljaCBzdSBoaWVuIGRhbmcgdGll cCB0dWMgdGllbSBuaGllbSB2YW8gdHJpIG9jIG5vbiB0cmUgY3VhIGhvYyBzaW5oLCBzaW5oIHZp ZW4gVmlldCBOYW0uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vZ2lhb2R1Yy8yMDEwMDEv UXV5ZXQtZHVhLWdpYW8tZHVjLWxlbi1kaW5oLWNhby10aGUtZ2lvaS04ODk3NzgvDQoNCiJOZ2Fu aCBnaWFvIGR1YyBwaGFpIG5naGllbSBraGFjIG5oaW4gbmhhbiBuaHVuZyB5ZXUga2VtIGN1YSBt aW5oLCBjaHUgeSBsYW5nIG5naGUgeGEgaG9pLCANCm5vIGx1YyBwaGFuIGRhdSBraGFjIHBodWMg bmh1bmcgaGFuIGNoZSBkZSBwaGF0IHRyaWVuIHh1bmcgdGFtIGRhdCBudW9jLCBkYXAgdW5nIGxv bmcgbW9uZyBtb2kgY3VhIG5oYW4gZGFuIiAtIENodSB0aWNoIG51b2MgTmd1eWVuIE1pbmggVHJp ZXQuIA0KDQpodHRwOi8vYmFvdmVxdXllbnRyZWVtLnZuL2luZGV4LnBocC8yMDA5LzA4LzIxL25n dXllbi1waG8tY2glRTElQkIlQTctdCVFMSVCQiU4QmNoLW4lQzYlQjAlRTElQkIlOUJjLWdpYW8t ZCVFMSVCQiVBNWMtdiVFMSVCQSVBQm4tbGEtbiVFMSVCQiU5N2ktbG8tbCVFMSVCQiU5Qm4vIEF1 Z3VzdCAyMSwgMjAwOSANCg0KR2lhbyBkdWMgdmFuIGxhIG5vaSBsbyBsb24uLi4gDQoNCmh0dHA6 Ly90dWFudmlldG5hbS5uZXQvbmh1bmctbG8taG9uZy1naWFvLWR1Yy12YS1waGFtLWNhY2gtbmd1 b2ktdGhheS0gMTMvMDgvMjAwNiAwNToxNSBHTVQrNw0KDQpDaHV5ZW4gZHVjIGhhbmggbmd1b2kg dGhheSBsYSBjaHV5ZW4ga2hvbmcgbmhvLg0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtp L05ndXklRTElQkIlODVuLVRoaSVFMSVCQiU4N24tTmglQzMlQTJuDQoNCk5ndXllbiBUaGllbiBO aGFuIC0gTmh1bmcgdGFpIHRpZW5nDQoNCk5hbSAyMDA2LCBuaGFuIHZ1IHRhbiBjb25nIHRyYW5n IGNodSBjdWEgQm8gR2lhbyBkdWMgZG8gaG9jIHNpbmggQnVpIE1pbmggVHJpIHRodWMgaGllbiwg b25nIE5oYW4gY28gdmlldCBtb3QgbGEgdGh1IGNvIG5oYW4gZGUgIk5vaSBkYXUgY3VhIHRvaSB0 cm9uZyBuZ2F5IDIwLTExLTIwMDYiIHRyb25nIGRvIGtob25nIGhpZXUgdmkgbHkgZG8gZ2kgb25n IGR1b2MgYmlldCB2dSB0YW4gY29uZyBjdWEgVHJpIHZhbyB0cnVhIG5nYXkgMjAgdGhhbmcgMTEg dHJvbmcga2hpIHRodWMgdGUgdnUgdGFuIGNvbmcgY3VhIFRyaSBkaWVuIHJhIDEgdHVhbiBzYXUg ZG8sIHZhbyBuZ2F5IDI3IHRoYW5nIDExLg0KDQpOYW0gMjAwNywgb25nIGxhaSB2dW9uZyB2YW8g bW90IHZ1IHRhaSB0aWVuZyBuaG8ga2hhYyBjdW5nIHZpIHBoYXQgYmlldSBsbyBsb2ksIHRyb25n IG1vdCBidW9pIHBob25nIHZhbiB2b2kgcGhvbmcgdmllbiBiYW8gU2FpIEdvbiBHaWFpIFBob25n LCBvbmcgcGhhdCBiaWV1OiAiSG9jIHBoaSBjaGFjIGNoYW4gc2UgcGhhaSB0YW5nLCBjbyB0aGUg cGhhaSBjaGFwIG5oYW4gY2EgdmllYyBzbyBuZ3VvaSBkaSBob2Mgc2UgZ2lhbSB2aSB0YW5nIGhv YyBwaGkhIiBkdSBCbyBkYSB0dXllbiBibyBuaGlldSBsYW46ICIuLnNlIGtob25nIGRlIGFpIHBo YWkgbmdoaSBob2MgdmkgaG9jIHBoaS4uIi4gVnUgdmllYyBkYSBnYXkgbmVuIGR1IGx1YW4ga2hp ZW4gb25nIHBoYWkgdmlldCBtb3QgYnVjIHRodSBub2kgcmFuZyBTR0dQIGRhIGhpZXUgc2FpIHkg b25nLCBuaHVuZyB0b2kgbmF5ICgyMDA5KSB2YW4ga2hvbmcgdGhheSBTYWkgR29uIEdpYWkgUGhv bmcgZ28gYmFpIGJhbyBuYXkgZGkgaGF5IGRpbmggY2hpbmggZ2kuDQoNCmh0dHA6Ly93d3cudHVv aXRyZS5jb20udm4vVGlhbnlvbi9JbmRleC5hc3B4P0FydGljbGVJRD0xODE0NjkmQ2hhbm5lbElE PTMzMCBDaHUgTmhhdCwgMDcvMDEvMjAwNywgMDk6MTEgKEdNVCs3KQ0KDQpOZ2hpIHR1IHZ1IEJ1 aSBNaW5oIFRyaSB0YW4gY29uZyB3ZWJzaXRlIGN1YSBCbyBHRC1EVDoNCg0KaHR0cDovL2RhbnRy aS5jb20udm4vYzI1L3MyNS0xNTk5ODAvbm9pLWRhdS1jdWEtYm8tdHJ1b25nLW5ndXllbi10aGll bi1uaGFuLXRyb25nLW5nYXktMjAxMTIwMDYuaHRtIA0KDQpOb2kgZGF1IGN1YSBCbyB0cnVvbmcg Tmd1eWVuIFRoaWVuIE5oYW4gdHJvbmcgbmdheSAyMC8xMS8yMDA2IA0KDQoiS2hvYW5nIDEyIGdp byB0cnVhIG5nYXkgMjAvMTEsIHRvaSBkdW9jIHRpbiB3ZWJzaXRlIGN1YSBCbyBkYSBiaSB0YW4g Y29uZywgDQphbmggY3VhIEJvIHRydW9uZyBCbyBHRC1EVCBkYW5nIGtlbSB0aGVvIGJ1YyB0aHUg ZGEgZHVvYyB0aGF5IGJhbmcgYW5oIG1vdCANCm5ndW9pIGNvaSB0cmFuISBUb2kgdGhheSBkYXUg bmhvaSB0cm9uZyB0aW0uIFRvaSBraG9uZyBjaG8gZG9pIG1vdCBzdSBwaGEgaG9haSANCnRyYW5n IHdlYiBjdWEgQm8gR0dELURUIHZhbyBuZ2F5IE5oYSBnaWFvIFZpZXQgTmFtIiAtIE5ndXllbiBU aGllbiBOaGFuDQoNCmh0dHA6Ly93d3cudHVvaXRyZS5jb20udm4vVGlhbnlvbi9JbmRleC5hc3B4 P0FydGljbGVJRD0xODE0NjkmQ2hhbm5lbElEPTMzMCAwNy8wMS8yMDA3LCAwOToxMSAoR01UKzcp DQoNCk5ndW9pIGxvbiBkYSBkYXkgdnUgdmllYyBkZW4gbXVjIGdheSByYSBtb3QgY3Ugc29jIHRp bmggdGhhbiBraG9uZyBuaG8gY2hvIGVtIFRyaSB2YSBuaGlldSBlbSBob2Mgc2luaCBraGFjLiAN Cg0KQ2h1bmcgbmFvIHRvYSBhbiBjaHVhIGtldCB0b2kgdGhpIGVtIFRyaSB2YW4gY2h1YSBiaSB4 ZW0gbGEgcGhhbSB0b2kuIA0KDQpEYW5nIHRpZWMsIG1vdCBzbyBuZ3VvaSBsb24gZGEgbm9uZyB2 b2kgYnVvYyB0b2ksIGtldCBhbiBlbSBob2Mgc2luaCAxNyB0dW9pIG5odSBtb3QgaGFja2VyIHhh dSB4YSB2b2kgbmh1bmcgdG9pIHRyYW5nIGRhIHJvIHJhbmcuIA0KDQoiTmdvaSBubyIgY3VhIHZ1 IHZpZWMgbmF5IGJhdCBuZ3VvbiB0dSBub2kgZHVuZyB0cmEgbG9pIHBob25nIHZhbiBjdWEgdGll biBzaSBRdWFjaCBUdWFuIE5nb2MsIEdpYW0gZG9jIFRydW5nIHRhbSBUaW4gaG9jIChUVFRIKSBC byBHRC1EVC4gVmkgdGllbiBzaSBuYXkgZGEgdGhhbiBuaGllbiBkdW5nIG5nb24gbmd1IHNhYyBt dWkgY2hvIGJ1YSBuaHUgIm5vLCBibyBjb24gbm8gdmFuIHhpbiwgdm8gbm8sIHRoYW5nIHRyb20u Li4iIGRlIHRyYSBsb2kgbmhhIGJhby4gDQoNCkNhaSBzYWkgY3VhIFRUVEggQm8gR0QtRFQgY29u IG5hbSBvIGNobyBsYW0gbWF0IG1hdCBCbyB0cnVvbmcgZGVuIGhhaSBsYW46IERvIGxhIHF1YW4g bHkgc2VydmVyIGxvbmcgbGVvIG5lbiBoYWNrZXIgdGhvYWkgbWFpIHJhIHZhbyB0cm9uZyBuaGll dSB0aGFuZyBsaWVuIGRlbiBtdWMgdGhheSBjYSBhbmggQm8gdHJ1b25nIChsYW0gbWF0IG1hdCBC byB0cnVvbmcgbGFuIDEpLiBWYSBzYXUga2hpIHZ1IHZpZWMgeGF5IHJhLCBraG9uZyBybyBUVFRI IGJhbyBjYW8gdGhlIG5hbyBtYSBkZSBCbyB0cnVvbmcga2hpIHZpZXQgdGh1IGNobyBiYW8gY2hp IGxhaSBuaGFtIGxhbiB0cmFtIHRyb25nIHZlIHRob2kgZGllbSB4YXkgcmEgdnUgdGFuIGNvbmcs IHR1IG5nYXkgMjctMTEtMjAwNiB0aGFuaCBuZ2F5IDIwLTExLTIwMDYgKGxhbSBtYXQgbWF0IEJv IHRydW9uZyBsYW4gMikuIA0KDQpodHRwOi8vd3d3LnR1b2l0cmUuY29tLnZuL1RpYW55b24vSW5k ZXguYXNweD9BcnRpY2xlSUQ9MTgwMjE1JkNoYW5uZWxJRD0xMyAzMC8xMi8yMDA2LCAwMDo0NSAo R01UKzcpIA0KDQpWdSBCdWkgTWluaCBUcmkgInRhbiBjb25nIiB3ZWJzaXRlIGN1YSBCbyBHRC1E VA0KDQpOZ2F5IDIwLTExIGhheSAyNy0xMT8NCg0KVHJvbmcgdHVvbmcgdHJpbmggZ3VpIHRoYXkg Qm8gdHJ1b25nIE5ndXllbiBUaGllbiBOaGFuIHRyb25nIG5nYXkgMjktMTIsIA0KQnVpIE1pbmgg VHJpIGRhIGtoYW5nIGRpbmggbmdheSBUcmkgdGhheSBoaW5oIEJvIHRydW9uZyBOZ3V5ZW4gVGhp ZW4gTmhhbiANCnRyZW4gd2Vic2l0ZSBCbyBHRC1EVCBsYSBuZ2F5IDI3LTExLiBWYSBxdWFuIHRy b25nIGhvbiwgVHJpIGRhIHRyaW5oIGJheSANCmNoaSB0aWV0IG5odW5nIHN1IGtpZW4gbGFuIGNv biBuZ3VvaSBraGEgY3UgdGhlIGRlIGNodW5nIG1pbmggZGlldSBuYXkuIA0KDQpMYSB0aHUgdGFt IHN1IGN1YSBUcmkgbm9pIG1pbmggZGEgcGhhdCBoaWVuIGxvaSB2YSB4YW0gbmhhcCB0aGFuaCBj b25nIG1heSANCmNodSBjdWEgQm8gR0QtRFQgdHJvbmcga2hvYW5nIG51YSBjdW9pIHRoYW5nIDct MjAwNi4uLiBWYSBuZ3VvaSBob2MgdHJvIG5heSBsZSBwaGVwIGtoYW5nIGRpbmg6IA0KDQoiVGh1 YSB0aGF5LCBjb24gY28gdGhlIGNodW5nIG1pbmggdmllYyB0aGF5IGFuaCB0aGF5IEJvIHRydW9u ZyB2YW8gbmdheSANCjI3LTExLTIwMDYgbGEgZHVuZyBzdSB0aGF0LiBDb24ga2hvbmcgaGUgY28g eSB4dWMgcGhhbSB0aGF5IEJvIHRydW9uZyB2YW8gDQpuZ2F5IG1hIGhhbmcgbmFtIGNodW5nIGNv biB2YW4gbW9uZyBkZW4gbmhhbmggaG9uIGRlIGR1b2MgY2h1YyBtdW5nIHRoYXkgY28gbmhhbiBO Z2F5IG5oYSBnaWFvIFZpZXQgTmFtLi4uIg0KDQpUcnVvYyBsYSB0aHUgVHJpIGd1aSBkaSBoYWkg bmdheSwgbmdheSAyNy0xMiwgb25nIENodSBUcmFuIEtpZW4sIHF1YW4gdHJpIA0KbWFuZyB3ZWJz aXRlIHd3dy5tb2V0Lmdvdi52biwgZGEgYmFvIGNhbyAodHJpY2ggZGFuZyk6ICJWYW8gY3VvaSB0 aGFuZyAxMS0yMDA2LCANClRyaSB0aWVwIHR1YyBjbyBoYW5oIHZpIHhhbSBuaGFwIHdlYnNpdGUs IGJvIHN1bmcgYWNjb3VudCBoZSB0aG9uZyB2YSANCm5nYXkgMjctMTEtMjAwNiBkYSB0aGF5IGhp bmggYW5oIGJvIHRydW9uZyBCbyBHRC1EVCAuLi4iLiANCg0KaHR0cDovL3d3dy50dW9pdHJlLmNv bS52bi9UaWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTE4MTQ2OSZDaGFubmVsSUQ9MzMwICBD aHUgTmhhdCwgMDcvMDEvMjAwNywgMDk6MTEgKEdNVCs3KQ0KDQpEdW5nIHF1ZW4gY2h1bmcgdGEg bGEgbmd1b2kgbG9uIQ0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjUvczI1LTE1OTk4MC9ub2kt ZGF1LWN1YS1iby10cnVvbmctbmd1eWVuLXRoaWVuLW5oYW4tdHJvbmctbmdheS0yMDExMjAwNi5o dG0gIFRodSBTYXUsIDI5LzEyLzIwMDYgLSAzOjAwIFBNDQoNCiJUb2kgdGhheSBkYXUgbmhvaSB0 cm9uZyB0aW0uIFRvaSBraG9uZyBjaG8gZG9pIG1vdCBzdSBwaGEgaG9haSB0cmFuZyB3ZWIgY3Vh IEJvIEdELURUIA0KdmFvIG5nYXkgTmhhIGdpYW8gVmlldCBOYW0iIC0gIm5ndXkgcXVhbiB0dSIg Tmd1eWVuIFRoaWVuIE5oYW4sIEJvIHRydW9uZyBHRERUICANCg0KaHR0cDovL3d3dy54LWNhZmV2 bi5vcmcvbm9kZS8xODg0DQoNCkdpYW8gc3UgSG9hbmcgVHV5OiAiQmVuaCBnaWEgZG9pIGRhbmcg dHJvIHRoYW5oIHF1b2Mgbmh1YyIuICANCg0KLQ0KaHR0cDovL3d3dy5raW5odGVub25ndGhvbi5j b20udm4vU3RvcnkvdGhvaXN1Y2hpbmh0cmkvMjAwOS81LzE4MTY4Lmh0bWwgDQoNClBobyBUaHUg dHVvbmcgTmd1eWVuIFRoaWVuIE5oYW4gbGFtIHZpZWMgdGFpIEJhYyBLaW5oIC0gVHJ1bmcgUXVv YyAgVGh1IFNhdSwgMDEvMDUvMjAwOQ0KDQpPbmcgR2lhIEtoYW5oIExhbSAoVXkgdmllbiBUaHVv bmcgdnUgQm8gQ2hpbmggdHJpKSB2YSBiYSBMdXUgRGllbiBEb25nIChVeSB2aWVuIEJvIENoaW5o IHRyaSApIG5oaWV0IGxpZXQgY2hhbyBkb24gdmEgaG9hbiBuZ2hlbmggRG9hbiBkYWkgYmlldSBj YXAgY2FvIFZpZXQgTmFtIGRvIFBobyBUaHUgdHVvbmcgTmd1eWVuIFRoaWVuIE5oYW4gZGFuIGRh dSBkYSBkZW4gdGhhbSB2YSBsYW0gdmllYyB0YWkgVHJ1bmcgUXVvYy4gSGFpIG5oYSBsYW5oIGRh byBUcnVuZyBRdW9jIGJheSB0byB2dWkgbXVuZyB0cnVvYyBzdSBob3AgdGFjIG5nYXkgY2FuZyBz YXUgc2FjIHZhIHRoaWV0IHRodWMgZ2l1YSBoYWkgRGFuZywgaGFpIE5oYSBudW9jLiBUcnVuZyBR dW9jIGRhbmcgZHVuZyB0cmVuIHF1YW4gZGllbSBjaGllbiBsdW9jICJuaGluIHhhIHRyb25nIHJv bmciIHRyb25nIHZpZWMgeGF5IGR1bmcgdmEgcGhhdCB0cmllbiBxdWFuIGhlIHZvaSBWaWV0IE5h bS4gDQoNClBobyBUaHUgdHVvbmcgYmF5IHRvIHZ1aSBtdW5nIHZpIGNodXllbiB0aGFtIHZhIGxh bSB2aWVjIHRhaSA0IHRoYW5oIHBobyBsb24gY3VhIFRydW5nIFF1b2MgZGEgdGhhbmggY29uZyB0 b3QgZGVwLCBjYW0gb24gc3UgZG9uIHRpZXAgdHJvbmcgdGhpIHZhIGxhbSB2aWVjIGhpZXUgcXVh IG8gbmh1bmcgbm9pIERvYW4gdG9pIHRoYW0uDQoNCk5oYW4gZGlwIG5heSwgUGhvIFRodSB0dW9u ZyBOZ3V5ZW4gVGhpZW4gTmhhbiBkYSBraGFuZyBkaW5oIGxhaSBwaHVvbmcgY2hhbSAxNiBjaHUg dmEgdGluaCB0aGFuIDQgdG90IG1hIGxhbmggZGFvIGNhcCBjYW8gMiBudW9jIGRhIHhhYyBkaW5o IGxhOiAibGFuZyBnaWVuZyBodXUgbmdoaSwgaG9wIHRhYyB0b2FuIGRpZW4sIG9uIGRpbmggbGF1 IGRhaSwgaHVvbmcgdG9pIHR1b25nIGxhaSIgdmEgImxhbmcgZ2llbmcgdG90LCBiYW4gYmUgdG90 LCBkb25nIGNoaSB0b3QsIGRvaSB0YWMgdG90Ii4gVm9pIHBodW9uZyBjaGFtIGRvLCB0cm9uZyB0 aG9pIGdpYW4gdG9pLCBuaHVuZyBiaWVuIHBoYXAgY3UgdGhlIHNlIGR1b2MgaGFpIGJlbiBwaGF0 IHRyaWVuIHRyZW4gdGF0IGNhIGNhYyBsaW5oIHZ1YywgZGFjIGJpZXQgbGEgZ2lhbyBkdWMsIGRh byB0YW8sIGtob2EgaG9jLCBjb25nIG5naGUgdmEgdmFuIGhvYSwgdGhlIHRoYW8uDQoNCmh0dHA6 Ly9iYW9jb25ndGh1b25nLmNvbS52bi9EZXRhaWxzL3Rpbi10dWMtc3Uta2llbi9waG8tdGh1LXR1 b25nLW5ndXllbi10aGllbi1uaGFuLXRoYW0tdGluaC1oby1uYW0tdHJ1bmctcXVvYy8zMi8wLzEz OTUzLnN0YXIgOTowMzowMCAyOC80LzIwMDkNCg0KKFRydW9jIGRvKSBvbmcgTmd1eWVuIFRoaWVu IE5oYW4gdGhhbSB0aW5oIEhvIE5hbSwgVHJ1bmcgUXVvYyAocXVlIGN1YSBvbmcgTWFvIFRyYWNo IERvbmcpIA0KDQpodHRwOi8vYmFvdG9xdW9jLmNvbS8yMDA5LzA2LzEwL2QlRTElQkIlOTNuZy1j aGktdCVFMSVCQiU5MXQtbGFuZy1naSVFMSVCQiU4MW5nLXQlRTElQkIlOTF0LWxhLXRoJUUxJUJB JUJGLW5heS0lQzYlQjAvIA0KDQpEb25nIGNoaSB0b3QsIGxhbmcgZ2llbmcgdG90IGxhIHRoZSBu YXkgdT8NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDI2LzIw MTAwNjI1MDA0NjIwLmFzcHggMjUvMDYvMjAxMCAwOjQ2IA0KDQpUcnVuZyBRdW9jICJxdXkgaG9h Y2ggcGhhdCB0cmllbiIgdGFpIGhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2ENCg0K aHR0cDovL3d3dy5lY29sYXcudm4vdmkvbm9kZS84MQ0KDQpUcnVuZyBRdW9jIGNhbSBkYW5oIGJh dCBjYSB0cmVuIHZ1bmcgYmllbiBWaWV0IE5hbSENCg0KVHJ1bmcgUXVvYyB2dWEgY28gdGhvbmcg YmFvIHR1IDEyZyBuZ2F5IDE2LTUgZGVuIDEyZyBuZ2F5IDEtOC0yMDA5IHRhdCBjYSBjYWMgdGF1 IGNhIFZOIGRldSBraG9uZyBkdW9jIHZhbyB2dW5nIGJpZW4gdHUgMTIgZG8gdmkgQmFjIHRybyBs ZW4gZGUgZGFuaCBiYXQgY2EuIERpZXUgZGFuZyBub2kgbGEgcGhhbiBsb24ga2h1IHZ1YyAiY2Ft IiB0aHVvYyBsYW5oIGhhaSBjdWEgVmlldCBOYW0uDQoNCmh0dHA6Ly9ob2FuZ3NhLm9yZy9mb3J1 bS9zaG93dGhyZWFkLnBocD9wPTYyMjM3I3Bvc3Q2MjIzNw0KDQpDYW0gZGFuaCBjYSBvIGJpZW4g RG9uZzogVmlldCBOYW0gZGUgbmdoaSBuZ3VuZyAtIFRydW5nIFF1b2Mgbm9pIGtob25nIHRoZSBi YW4gY2FpLg0KDQpodHRwOi8vdmFuaG9heGFuaC52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBh cmVudD0yMDEmem9uZT0yNzgmSUQ9MTY1NDUgMDk6NTInIDA1LzAxLzIwMTAgKCs3R01UKQ0KDQpO aGlldSB0YXUgY2EgVHJ1bmcgUXVvYyB4YW0gcGhhbSB2dW5nIGJpZW4gbWllbiBUcnVuZyAtIEhh dSBuaHUgbmdheSBuYW8gY3VuZyBjbw0KDQpOaGlldSBraGkgY2FjIHRhdSB0aHV5ZW4gbmF5IGNv biBsYW4gc2F1IHZhbyB2dW5nIGJpZW4gRGEgTmFuZywgY2hpIGNvbiBjYWNoIGJvIDM1IGhhaSBs eSB2ZSBodW9uZyBEb25nIEJhYy4NCg0KaHR0cDovL3d3dy5kY3ZvbmxpbmUubmV0L3BocC9tb2R1 bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNpZD03MDQ2IDA1LTAxLTIwMTANCg0KVHJ1 bmcgUXVvYyBwaGF0IHRyaWVuIGR1IGxpY2ggbyBIb2FuZyBTYSAtIHZpIHBoYW0gbmdoaWVtIHRy b25nIGNodSBxdXllbiBjdWEgVmlldCBOYW0NCg0KaHR0cDovL3d3dy5yZmkuZnIvYWN0dXZpL2Fy dGljbGVzLzExNC9hcnRpY2xlXzM5NDAuYXNwIEJhaSBkYW5nIG5nYXkgMjIvMDYvMjAwOSBDYXAg bmhhdCBsYW4gY3VvaSBuZ2F5ICAyMi8wNi8yMDA5IDE2OjU3IFRVIFRyb25nIE5naGlhDQoNCkJh YyBLaW5oIG11b24gY28gYmFvIHZlIG5ndW9uIGNhIGRlIGtoYW5nIGRpbmggY2h1IHF1eWVuIHRy ZW4gQmllbiBEb25nIA0KICANClRob2kgaGFuIGNhbSBiYXQgZGF1IHR1IG5nYXkgMTYvMDUgdmEg a2VvIGRhaSBjaG8gZGVuIG5nYXkgMDEvMDgvMjAwOS4gQmFjIEtpbmggZG9uZyB0aG9pIHBoYWkg OCBjaGllYyB0YXUgdHVhbiB0cmEgZGVuIGtodSB2dWMgZGUgYmFvIGRhbSB2aWVjIHRodWMgdGhp IGxlbmggY2FtIG5heS4NCg0KaHR0cDovL3d3dy5yZmkuZnIvYWN0dXZpL2FydGljbGVzLzExNC9h cnRpY2xlXzM5ODguYXNwIEJhaSBkYW5nIG5nYXkgMjYvMDYvMjAwOSBDYXAgbmhhdCBsYW4gY3Vv aSBuZ2F5ICAyNi8wNi8yMDA5IDE2OjA5IFRVDQoNClRydW5nIFF1b2MgY2FtIGRhbmggY2EgdHJl biBCaWVuIERvbmcsIG5ndSBkYW4gVmlldCBOYW0ga2hvbiBkb24gDQoNCktoaSByYSBraG9pLCBu Z3UgZGFuIFZpZXQgTmFtIGNvIGhhaSBub2kgc286IGJhbyB0byB2YSB0YXUgdHVhbiB0cmEgVHJ1 bmcgUXVvYyBjbyB2byB0cmFuZy4NCg0KUGhvbmcgdmllbiBBRlAgdmUgbWllbiBUcnVuZyB0aW0g aGlldSBob2FuIGNhbmgga2hvIGtoYW4gY3VhIG5ndSBkYW4gZGlhIHBodW9uZzogdGh1IG5oYXAg Y3VhIGhvIGJpIGdpYW0gdHUgbW90IG51YSB0b2kgaGFpIHBoYW4gYmEgc28gdm9pIG11YyBiaW5o IHRodW9uZywga2hpIGtob25nIGJpIGxlbmggY2FtLiANCkJhbyBjaGkgVmlldCBOYW0gaG9tIHF1 YSAoMjUvNikgY2hvIGJpZXQgVHJ1bmcgUXVvYyB2dWEgdGhhIDI1IG5ndSBkYW4gVmlldCBOYW0g YmkgaG8gZ2lhbSBnaXUgdHJlbiBkYW8gSG9hbmcgU2EgdHJvbmcgMTAgbmdheSBxdWEuIE5nb2Fp IHJhIGNvbiBjbyAxMiBuZ3VvaSBraGFjIGN1bmcgdm9pIGhhaSBjb24gdGF1IGRhbmggY2EgdmFu IGNvbiBiaSBoYWkgcXVhbiBUcnVuZyBRdW9jIGNhbSBnaXUgdmkga2hvbmcgZHUgdGllbiAibm9w IHBoYXQiLiANClZ1IGJhdCBnaXUgdHJlbiBkYXkgbGllbiBxdWFuIGRlbiBsZW5oIGNhbSBkYW5o IGNhIHRhaSB2dW5nIEJpZW4gRG9uZywgYmFvIGhhbSBjYSB2dW5nIEhvYW5nIHNhIHZhIFRydW9u ZyBTYSBtYSBUcnVuZyBRdW9jIGJhbiBoYW5oIGNobyBkZW4gbmdheSAwMS8wOC8yMDA5LiANCg0K aHR0cDovL2JhdXhpdGV2aWV0bmFtLmluZm8vMjgwMC9uZ3UtZGFuLXZhbi1raWVuLWRpbmgta2hv bmctbm9wLXRpZW4tY2h1b2MvIFRodSBCYSwgMDcvMDcvMjAwOSwgMDg6NTENCg0KTmd1IGRhbiBr aWVuIGRpbmgga2hvbmcgbm9wIHRpZW4gY2h1b2MNCg0KaHR0cDovL2hvYW5nc2Eub3JnL2ZvcnVt L3Nob3d0aHJlYWQucGhwP3Q9ODk0OQ0KDQpOZXUgbm9wIHRpZW4gY2h1b2MgY2hvIFRydW5nIFF1 b2Mgc2UgZ2F5IGhhaSBjaG8gY2h1IHF1eWVuDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52 bi9OZXdzL1BhZ2VzLzIwMDkzMC8yMDA5MDcyNDAxMDQ1OS5hc3B4IDI0LzA3LzIwMDkgMTowNSAN Cg0KWWV1IGNhdSBUUSB0cmFvIHRyYSB2byBkaWV1IGtpZW4gbmd1IGRhbiBWTiBkYW5nIGJpIHRh bSBnaXUgDQoNCmh0dHA6Ly93d3cuY2FsaXRvZGF5LmNvbS9uZXdzL3ZpZXdfYXJ0aWNsZS5odG1s P2FydGljbGVfaWQ9YTg1ZTFlODJiZDhiNDhmY2YwZTU5ZDFhYzFiZGYyYTIgIEp1bCAyNCwgMjAw OQ0KDQpWTiBrZXUgZ29pIGdpdXAgZG8gc2F1IHN1IGNvIHRhdSBsYSBkYW0gdGF1IGRhbmggY2EN Cg0KVmlldCBOYW0gZGFuZyBkZSBuZ2hpIGNhYyBudW9jIGxhbmcgZ2llbmcgZ2l1cCBkbyBzYXUg a2hpIG1vdCB0YXUgbGEgZGFtIHZhbyBtb3QgdGF1IGRhbmggY2EgVmlldCBOYW0sIGxhbSA5IHRo dXkgdGh1IGJpIHRodW9uZy4gDQoNCmh0dHA6Ly93d3cucmZpLmZyL2FjdHV2aS9hcnRpY2xlcy8x MTUvYXJ0aWNsZV80MjYzLmFzcCAgQmFpIGRhbmcgbmdheSAyMC8wNy8yMDA5IENhcCBuaGF0IGxh biBjdW9pIG5nYXkgIDIwLzA3LzIwMDkgMTY6NDggVFUgICBEdWMgVGFtDQoNCiJUYXUgbGEiIHRh biBjb25nIG5ndSBkYW4gVmlldCBOYW0gbGEgdGF1IFRydW5nIFF1b2MgKG9uZyBEdW9uZyBEYW5o IER5LCBjaHV5ZW4gZ2lhIHZlIFRydW5nIFF1b2MsIG5vaSB0aGFuZykNCg0KaHR0cDovL3d3dy5y ZmEub3JnL3ZpZXRuYW1lc2UvaW5fZGVwdGgvQ2hpbmEtcmVsZWFzZWQtdmlldG5hbWVzZS1maXNo ZXJtZW4tYnV0LXRoZWlyLWJvYXRzLWludGVydmlldy1tci1uZ3V5ZW4tY2hpLXRoYW5oLWNhcHRh aW4tb2YtY2hpLXRoYW5oLWZpc2hpbmctYm9hdC1tbGFtLTA4MTUyMDA5MTY0MTA4Lmh0bWwgTWFj IExhbSwgcGhvbmcgdmllbiBkYWkgUkZBIDIwMDktMDgtMTUNCg0KVHJ1bmcgUXVvYyB0aGEgbmd1 b2ksIGtob25nIHRoYSB0YXUNCg0KTmdheSAxMSB0aGFuZyA4IHZ1YSBxdWEgc2F1IG5oaWV1IGFw IGx1YyBjdWEgZHUgbHVhbiwgVHJ1bmcgUXVvYyBkYSB0aGEgY2FjIG5ndSBkYW4gDQpWaWV0IE5h bSBiaSBiYXQgdmEgcXV5IHRvaSB4YW0gcGhhbSB2dW5nIGJpZW4gY3VhIFRydW5nIFF1b2MuIE5n dSBkYW4gdGhpIGR1b2MgdGhhIA0Kbmh1bmcgaGFpIGNoaWVjIHRodXllbiBjdWEgaG8gdmFuIGJp IHRpY2ggdGh1LCBjaGllYyB0YXUgY3VhIEJpbmggQ2hhdSBjaG8gbmd1IGRhbiANCnRybyB2ZSBW aWV0IE5hbSBjdW5nIHRoaSBiaSBsYXkgbW90IHNvIHRodSBkYW5nIGdpYSB0cmVuIHRhdS4gDQot --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; charset=windows-1252; name="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Pham Quang Nghi.txt" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat ong Pham Quang Nghi.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vc3u34 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2gg Y2h1YyBvbmcgUGhhbSBRdWFuZyBOZ2hpIHRoYW0gbmh1bmcsIGtoaW5oIGRhbiANCg0KaHR0cDov L3d3dy52bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFp LCAyOC8xMC8yMDAyLCAwMzowOSBHTVQrNw0KDQpWdSBhbiB0aGFtIG5odW5nLCBsYW5nIHBoaSB0 YWkgY29uZyB0cmluaCBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5vaSBjaHVhIGR1b2Mga2hvaSB0 byAtIGNvIGxpZW4gcXVhbiB0b2kgb25nIFBoYW0gUXVhbmcgTmdoaSANCg0KTmhhIGhhdCBMb24g SGEgTm9pOiBDYWMgc2FpIHBoYW0gbGllbiB0aWVwIHRyb25nIHF1YSB0cmluaCB0cmllbiBraGFp IGR1IGFuIGNhcCBxdW9jIGdpYSANCm5heSBkYSBkYW4gdG9pIHZpZWMgY29uZyB0cmluaCBjaHVh IHRoaSBjb25nIHhvbmcgZGEgZHVvYyBuZ2hpZW0gdGh1Lg0KDQpEbyBkbywga2hpIHRoYW5oIHRy YSBCbyBUYWkgY2hpbmgga2llbSB0cmEgMjIvNDMgaGFuZyBtdWMgY29uZyB0cmluaCwgdG9uZyBn aWEgdHJpIGdhbiAyOSw3IHR5IA0KZG9uZyB0aGkgZ2FuIDEyLDEgdHkgZG9uZyBsYSBnaWEgdHJp IG5naGllbSB0aHUgdnVvdCB0aHVjIHRlLiANCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcgDQoN Ck9uZyBQaGFtIFF1YW5nIE5naGkgbGFtIEJpIHRodSBUaGFuaCB1eSBIYSBOb2kgDQoNCmh0dHA6 Ly9saWNoc3V2bi5pbmZvL2ZvcnVtL3Nob3d0aHJlYWQucGhwP3Q9MTIzNDIgVGhhbmhuaWVuIDAz LzA1LzIwMTAgMjM6MTcNCg0KSGEgTm9pOiBQaGEgSG9hbmcgdGhhbmggVGhhbmcgTG9uZyBsYW0g ZHVvbmcgZ2lhbyB0aG9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkv MDQvODM5ODA5LyAyMjoxMCcgMDIvMDQvMjAwOSAoR01UKzcpIA0KDQpIYSBOb2k6IFhhIGhvaSBk ZW4gdGFjIG9haSB0YWMgcXVhaSBnaXVhIGJhbiBuZ2F5IA0KDQpodHRwOi8vaG9tZS52bm4udm4v Y2FuX3RldF9faGFfbm9pX3VuX3RhY190cmllbl9taWVuLTMzNjE5OTY4LTYyNTcwNTY1Ny0wIHZu ZXhwcmVzcy5uZXQgLSAwNi0wMi0yMDEwIDEyOjA1DQoNCkhhIE5vaTogdW4gdGFjIHRyaWVuIG1p ZW4gDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwMS9Tb25nLW5odWUtdHJvLWRh eS1jYS1tb3QtdnVuZy1ib2MtbXVpLTg4OTQ5MC8gMTA6MjQsIDE0LzAxLzIwMTAgKEdNVCs3KQ0K DQpIYSBOb2k6IFNvbmcgTmh1ZSBiaWVuIHRoYW5oIGNvbmcsIGNhIHZ1bmcgJ2JvYyBtdWknDQoN Cmh0dHA6Ly9uaGFuc3V2aWV0bmFtLnZuL3RpbnR1Yy9waGFwX2x1YXQvaGEtbm9pLWNvbmctdHJp bmgtdHJ1b25nLXRpZXUtaG9jLWN1bmctYmktcnV0LXJ1b3QvMjkzNDEuaHRtbCAyMy8wMS8yMDA5 IC0gMTE6MTcgLSBOZ3Vvbjogdm5NZWRpYS52bg0KDQpIYSBOb2k6IENvbmcgdHJpbmggdHJ1b25n IHRpZXUgaG9jIGN1bmcgYmkgInJ1dCBydW90IiANCg0KKFRydW9uZyB0aWV1IGhvYyBUcnVuZyBO aGkgdGFpIG5nbyAyOCBIdW9uZyBWaWVuLCBwaHVvbmcgRG9uZyBOaGFuLCBxdWFuIEhhaSBCYSBU cnVuZywgSGEgTm9pLikgDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL051LXNpbmgtSGEt dGhhbmgtZGUtcm9pLW1hLWtob25nLWJpZXQtY28tdGhhaS8xMzkvNTYxMzYyOC5lcGkgTi5DICgy NS8xLzIwMTEpICANCg0KR2lhbyBkdWMgdmEgVGh1IGRvOiBOdSBzaW5oIEhhIHRoYW5oIGRlIHJv aSBtYSBraG9uZyBiaWV0IGNvIHRoYWkNCg0KLSBOZ3VvaSBtZSBraG9uZyBoZSBoYXkgYmlldCBt aW5oIG1hbmcgdGhhaSB2YSBkZSByb2kgY29uIHRyb25nIG5oYSB2ZSBzaW5oIG5heSBsYSBudSAN CnNpbmggVnUgVGhpIEhvYW5nIEwgKDE4IHR1b2ksIG5ndSB0YWkgcXVhbiBIb2FuZyBNYWksIEhh IE5vaSkuDQoNClRoYXkgY29uIGRpIHRhbSBxdWEgbGF1IHZhIGxhaSBjbyBjYSB0aWVuZyBrZXUg cmVuIG5lbiBtZSBMIGRhIGRheSBjdWEgdmFvLiBCYSBkYSB2byANCmN1bmcgaG9hbmcgaG90IGto aSBjaHVuZyBraWVuIGNhbmggY29uIGdhaSBtaW5oIG5hbSBkdW9pIG5lbiBuaGEgdmUgc2luaCBs YW5oIGNvbmcgdmEgDQpsZW4gY29uIGNodXllbiBkYS4gUGhpYSBkdW9pLCBkdWEgdHJlIGRhbmcg dHUgZGF5IHJhIG8gY3VhIG1pbmguIA0KDQpDaGlldSAyNS8xLCB0cmFvIGRvaSB2b2kgVmlldE5h bU5ldCwga2hvYSBOaGkgQmVuaCB2aWVuIEJhY2ggTWFpIGRhIHhhYyBuaGFuIHRob25nIHRpbiB0 cmVuLg0KDQpOZ2F5IGxhcCB0dWMsIGR1YSB0cmUgZHVvYyBkdWEgdmFvIEJlbmggdmllbiBCYWNo IE1haSBjYXAgY3V1LCB0aWVuIGhhbmggY2F0IHJvbiB2YSANCnRpZW0gdGh1b2MgY2hvbmcgbmhp ZW0ga2h1YW4uIENoYXUgYmUgbmFuZyAyLDkga2csIGdpb2kgdGluaCBudSB2YSBzdWMga2hvZSB0 b3QuIA0KSGllbiBuYXksIGNoYXUgYmUgZGEgZHVvYyBtb3QgZ2lhIGRpbmggbmhhbiBudW9pIHZh IGRhbmcgc29uZyBjdW5nIGJvIG1lIG51b2kuDQoNCkRpZXUgZGFuZyBub2kgbGEgZ2lhIGRpbmgg TCBjdW5nIG5odSBlbSBkZXUga2hvbmcgYmlldCBMIG1hbmcgYmF1LiBDYWMgYmFjIHNpIGN1bmcg DQpraG9uZyBraG9pIGdpYXQgbWluaCB2aSBjaGF1IGJlIG5hbmcgMiw5IGtnIG1hIG5ndW9pIG1l IGxhaSBraG9uZyBoZSBiaWV0Lg0KDQpEdW9jIGJpZXQgbWUgTCBsYSBtb3QgZ2lhbyB2aWVuIGNv biBibyBlbSBkYW5nIGNvbmcgdGFjIHRhaSBtb3QgdmllbiBuZ2hpZW4gY3V1LiANCg0KaHR0cDov L3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI3LzIwMTAwNzAzMDEzMzAyLmFz cHggMDMvMDcvMjAxMCAxOjMzIA0KDQpHaWFvIGR1YyB2YSBUaHUgZG86ICJib2MgdGhhbSIgbWF5 IHJ1aS0geGVwIGhhbmcgeGluIGhvYyANCiAgDQpDYW5oIHR1b25nIHBodSBodXluaCBwaGFpIHhl cCBoYW5nIHRoYXUgZGVtIGhvYWMgcGhhaSAiYm9jIHRoYW0iIG1heSBydWkgZGUgbW9uZyANCmNv IG1vdCBjaG8gZ3VpIGNvbiB0cm9uZyB0cnVvbmcgbWFtIG5vbiBjb25nIGxhcCBsYWkgdGFpIGRp ZW4gdmFvIG11YSB0dXllbiBzaW5oIG5hbSBuYXkgbyBIYSBOb2kuIA0KDQpLaG9uZyBjb24gcXVh IGxhIGxhbSB2YSBjYSBiaWV0IG51YSwgY2FuaCB0dW9uZyBjaGVuIGxhbiwgeG8gZGF5IHZhIGNo byBkb2kgdHJhbmcgZGVtIA0KdHJ1b2MgbmdheSBiYW4gZG9uIHhpbiBob2MgZGEgeGF5IHJhIGl0 IG5oYXQgNCAtIDUgbmFtIG5heSB2YSBvIGhhdSBraGFwIGNhYyB0cnVvbmcuIA0KDQpEdW9uZyBu aHUgY2hpbmggcXV5ZW4gVGh1IGRvIGRhIG1hYyBuaGllbiBjb2kgZG8gbGEgaGllbiB0dW9uZy4u LiBiaW5oIHRodW9uZywga2hpIG1hIA0KaGV0IG5hbSBuYXkgc2FuZyBuYW0ga2hhYyBraG9uZyB0 aGF5IGNvIGRvbmcgdGhhaSBnaSBuaGFtIGNhaSB0aGllbiB0aW5oIGhpbmguIA0KDQoiQ2FjIGR1 IGFuIGN1YSBIYSBOb2kgdGhpIG5oaWV1IHZhIGR1IGFuIG5hbyBjdW5nIHRvLCB2YXkgbWEga2hh cCBub2ksIG5ndW9pIGRhbiBwaGFpIA0KZGlldSBkdW5nIHZpIG1vdCBjaG8gaG9jIHR1IHRlIGNo byBjb24gdHJlIiANCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3MyMC00MDUxMjcvY2FuLWJv LWRpYS1jaGluaC1waHVvbmctbHVhLWRhby1jaGllbS1kb2F0LTEwLXR5LWRvbmcuaHRtDQoNCkhh IE5vaTogQ2FuIGJvIGRpYSBjaGluaCBwaHVvbmcgbHVhIGRhbyBjaGllbSBkb2F0IDEwIHR5IGRv bmcgDQoNCmh0dHA6Ly9zb25ndHJlLnZuL2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdmll dz1hcnRpY2xlJmlkPTM0MjpiYW8tbmctdGluaC10cm5nLXhhbS1oaS1jYWMtZGktdGljaC1oYS1u aSZjYXRpZD00NDpiYW9pbmJhb21hbmdkaWVudHUmSXRlbWlkPTcwIFRodSBzYXUsIDIwIFRoYW5n IDMgMjAwOSAwODozNQ0KDQpIYSBOb2k6IEJhbyBkb25nIHRpbmggdHJhbmcgeGFtIGhhaSBjYWMg ZGkgdGljaCBvIEhhIE5vaSAgDQoNCmh0dHA6Ly92aS53aWtpcGVkaWEub3JnDQoNCk9uZyBQaGFt IFF1YW5nIE5naGkgbGFtIEJvIHRydW9uZyBCbyBWYW4gaG9hIC0gVGhvbmcgdGluIHR1IHRoYW5n IDA3LzIwMDEgZGVuIHRoYW5nIDA3LzIwMDYuDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9H TC9QaGFwLWx1YXQvMjAwMi8xMC8zQjlDMUM5Ny8gMjgtMTAtMjAwMiwgMDM6MDkgR01UKzcNCg0K SGEgTm9pOiBDYW4ga2hvaSB0byB2dSBhbiB0aGFtIG5odW5nIGxhbmcgcGhpIHRhaSBjb25nIHRy aW5oIE5oYSBoYXQgTG9uIEhhIE5vaSAtIExpZW4gcXVhbiB0b2kgb25nIFBoYW0gUXVhbmcgTmdo aSANCg0KVGhhbmggdHJhIE5oYSBudW9jIHZ1YSBjbyBrZXQgbHVhbiB2ZSBkdSBhbiB0b24gdGFv IE5oYSBoYXQgTG9uLCBzYXUgNSBuYW0gY29uZyB0cmluaCBuYXkgInRhbSIgZHVhIHZhbyBzdSBk dW5nLiANCg0KVGhlbyBkbywgaGFuZyBsb2F0IHZpIHBoYW0gdmUgZGF1IHR1IHhheSBkdW5nIGNv IGJhbiBkYSB4YXkgcmEgdHUgbmFtIDE5OTQsIHRydW9jIGtoaSANCkNoaW5oIHBodSBnaWFvIGNo byBCbyBWYW4gaG9hIGxhbSBjaHUgZGF1IHR1LiBIaWVuIGNodWEgcm8gYmFvIGdpbyBjb25nIHRy aW5oIG1vaSBkdW9jIHF1eWV0IHRvYW4uDQoNCk5ndXllbiBuaGFuIGN1YSB0YXQgY2EgY2FjIHNh aSBwaGFtIHRyZW4sIFRoYW5oIHRyYSBOaGEgbnVvYyBkYSBrZXQgbHVhbiBsYSBkbyBjYWMgY28g DQpxdWFuIGxpZW4gcXVhbiBraG9uZyB0b24gdHJvbmcgdmEgY2hhcCBoYW5oIGNhYyBxdXkgZGlu aCB2ZSB4YXkgZHVuZyBoaWVuIGhhbmggY3VhIA0KTmhhIG51b2MuIENvbmcgdHJpbmggY3VvaSBj dW5nIGR1b2MgdHJpZW4ga2hhaSB2b2kgaGluaCB0aHVjICJ2dWEgdGhpZXQga2UsIHZ1YSB0aGkg Y29uZyIuIA0KDQpOZ29haSByYSwgZ2FuIG1vdCBuYW0gdHJ1b2Mga2hpIENoaW5oIHBodSBnaWFv IGNvbmcgdHJpbmggY2hvIEJvIFZhbiBob2EsIEJvIG5heSBkYSANCmNodSBkb25nIGxhcCBiYW4g ZG9uIGdpYS4gU29uZyBkZW4gbHVjIGR1IGFuIGR1b2MgdHJpZW4ga2hhaSwgYmFuIG5heSB2YW4g Y2h1YSBsYXAgZHVvYyANCmJvIGRvbiBnaWEgZGFjIHRodS4gVmkgdGhlIGhhdSBoZXQgY2FjIGhh bmcgbXVjIHhheSBsYXAgZGV1IGR1b2MgdGhhbmggdG9hbiBkdW9pIGRhbmcgDQp0YW0gdW5nLCB0 YW0gdGluaC4uLg0KDQpUaGFuaCB0cmEgTmhhIG51b2MgZGEgcGhhdCBoaWVuIHRvYW4gYm8gaGUg dGhvbmcgdGhpZXQgYmkgYW0gdGhhbmggdmEgY2hpZXUgc2FuZyBzYW4gDQpraGF1ICh0b25nIHRy aSBnaWEgMTMsMiB0aSBkb25nKSBkYSBkdW9jIG5oYXAgdmUgbmFtIGltIHRyb25nIGtobyA1IG5h bSBuYXkuIFRpZW4gdGh1ZSANCmtobyBiYWkgY3VhIENvbmcgdHkgVGhhaSBCaW5oIER1b25nIHRv biAxMDUgdHJpZXUgZG9uZy4gR2lhaSB0aGljaCB2ZSB2aWVjIGxhbmcgcGhpIA0KY29uZyBzYW4g bmF5LCBCYW4gcXVhbiBseSBjaG8gcmFuZyBobyBkYSAicXVlbiIgcXV5IGRpbmggbGEgbGFwIGRh dCB0aGlldCBiaSBkb2kgdm9pIHBoaWEgDQpudW9jIG5nb2FpIHRoaSBwaGFpIGNvIGxpZW4ga2V0 IHZvaSBtb3QgZG9uIHZpIGNvIGNodWMgbmFuZyB0cm9uZyBudW9jLg0KDQpUcm9uZyBxdWEgdHJp bmggdGhpIGNvbmcsIG5oaWV1IGhvcCBkb25nIG11YSBiYW4gbG9uZyB2b25nIGRhIGR1b2MgbGFw LiBUcm9uZyBkbywgDQpyaWVuZyB2aWVjIHRoYXUgbXVhIHRoaWV0IGJpIGRpZXUgaG9hLCBkaWVu IHR1LCBjYXAgZGllbiwgdHUgZGllbiBhcC4uLiAoNC80OCBoYW5nIG11YyBkdW9jIA0KeGFjIG1p bmgpIGRhIGxhbSB0aGF0IHRob2F0IG5nYW4gc2FjaCA4IHR5IGRvbmcuDQoNCkNhYyBzYWkgcGhh bSBsaWVuIHRpZXAgdHJvbmcgcXVhIHRyaW5oIHRyaWVuIGtoYWkgZHUgYW4gY2FwIHF1b2MgZ2lh IG5heSBkYSBkYW4gdG9pIHZpZWMgDQpjb25nIHRyaW5oIGNodWEgdGhpIGNvbmcgeG9uZyBkYSBk dW9jIG5naGllbSB0aHUuDQoNCkRvIGRvLCBraGkgdGhhbmggdHJhIEJvIFRhaSBjaGluaCBraWVt IHRyYSAyMi80MyBoYW5nIG11YyBjb25nIHRyaW5oLCB0b25nIGdpYSB0cmkgZ2FuIA0KMjksNyB0 eSBkb25nIHRoaSBnYW4gMTIsMSB0eSBkb25nIGxhIGdpYSB0cmkgbmdoaWVtIHRodSB2dW90IHRo dWMgdGUuDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1RoYXQtdGhvYXQt dHJvbmcteGF5LWR1bmctY28tYmFuLUFpLWNoaXUtdHJhY2gtbmhpZW0vNzAwMzM5MzMvMjE4LyAx OC8xMi8yMDA1LCAxNDo1MSBHTVQrNw0KDQpDYW4ga2hvaSB0byB2dSBhbiB0aGFtIG5odW5nIHRh aSBkdSBhbiBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5vaToNCg0KVHJvbmcgdm9uZyAyIG5hbSwg VGhhbmggdHJhIGNodXllbiBuZ2FuaCB4YXkgZHVuZyB0byBjaHVjIHRoYW5oIHRyYSAzMSBkdSBh biANCih0b25nIHNvIHZvbiAxNy4zMDAgdGkgZG9uZykgdGhpIGNhIDMxIGR1IGFuIGRldSBjbyBz YWkgcGhhbSB2b2kgc28gdGllbiB0aGF0IHRob2F0LCBsYW5nIA0KcGhpIGxlbiB0b2kgMi4wNzAg dGkgZG9uZy4NCg0KVGluaCBoaW5oIHRoYW0gbmh1bmcgdHJvbmcgeGF5IGR1bmcgY28gYmFuIG5n aGllbSB0cm9uZyBsYSB2YXkgbmh1bmcgdHJvbmcgcXVhIA0KdHJpbmggZGlldSB0cmEgbG9haSBh biBuYXksIGNhYyBjbyBxdWFuIGJhbyB2ZSBwaGFwIGx1YXQsIHRyb25nIGRvIGNvIENvIHF1YW4g RGlldSB0cmEsIGdhcCByYXQgbmhpZXUga2hvIGtoYW4uDQoNClRodW9uZyB0YSBOZ3V5ZW4gVHJv bmcgTG9uZyAtIFRydW9uZyBwaG9uZyA2IEN1YyBDU0RUIHRvaSBwaGFtIHZlIHRyYXQgdHUgcXVh biBseSANCmtpbmggdGUgdmEgY2h1YyB2dSAoQy0xNSkgbGFpIG5ldSByYSBtb3Qga2hvIGtoYW4g bnVhIHRyb25nIGNvbmcgdGFjIGRpZXUgdHJhIG1hIA0KdnUgYW4gdGhhbSBuaHVuZyB4YXkgcmEg dGFpIGNvbmcgdHJpbmggdHUgYm8gdmEgdG9uIHRhbyBOaGEgaGF0IExvbiBIYSBOb2kgbGEgbW90 IHZpIGR1Lg0KQ29uZyB0cmluaCBuYXkgY28gdG9uZyBtdWMgZGF1IHR1IGR1b2MgZHV5ZXQgbGEg MTU2IHRpIGRvbmcgYmFuZyBuZ3VvbiB2b24gbmdhbiBzYWNoIDEwMCUuIA0KQ29uZyB0cmluaCBn b20gMzQgaGFuZyBtdWMgeGF5IGxhcCB2YSAxNCBoYW5nIG11YyBsYXAgZGF0IHRoaWV0IGJpLiBC YW5nIGNhYyBiaWVuIHBoYXAgDQpuZ2hpZXAgdnUsIENvIHF1YW4gRGlldSB0cmEgZGEgbGFwIGNo dXllbiBhbiB2YSBjaG9uIHJhIDQgaGFuZyBtdWMgZGlldSB0cmEsIHhhYyBtaW5oLiANCktldCBx dWEgY2EgNCBoYW5nIG11YyBuYXkgZGV1IGNvIGRhdSBoaWV1IHZpIHBoYW0uIE5odW5nIGNobyBk ZW4gbmF5IGNvbmcgdHJpbmggZGEgZHVhIA0KdmFvIHN1IGR1bmcgbmhpZXUgbmFtIG1hIHZhbiBj aHVhIHF1eWV0IHRvYW4gY28gbmdoaWEgbGEgY2h1YSB4YWMgZGluaCBkdW9jIA0KbXVjIGRvIHRo aWV0IGhhaSBuZW4gdmFuIGNodWEgY28gY28gc28gZGUgeGVtIHhldCBraG9pIHRvIHZ1IGFuIGhp bmggc3UuDQoNClRodW9uZyB0YSBOZ3V5ZW4gVHJvbmcgTG9uZyBkYXQgY2F1IGhvaTogIlRhaSBz YW8gbGFpIHBoYWkgY2hvIHF1eWV0IHRvYW4gbW9pIHhhYyANCmRpbmggZHVvYyB0aGlldCBoYWk/ IiwgdmEgb25nIGNobyByYW5nOiAiQ2hpbmggY2FpIHJhbmcgYnVvYyBkbyBkYSBsYW0gbmFuIGxv bmcgbmhpZXUgDQp0cmluaCBzYXQsIGRpZXUgdHJhIHZpZW4ga2hpIHRpZXAgY2FuIHZ1IHZpZWMg dGhhbSBuaHVuZyB0cm9uZyB4YXkgZHVuZyBjbyBiYW4sIGN1bmcgDQpjbyBuZ2hpYSBsYSBzZSBi byBsb3QgbmhpZXUgdG9pIHBoYW0gdHJvbmcgbGluaCB2dWMgbmF5IiANCg0KaHR0cDovL3d3dy52 bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDAyLzEwLzNCOUMxQzk3LyBUaHUgaGFpLCAyOC8x MC8yMDAyLCAwMzowOSBHTVQrNw0KDQpDYW4ga2hvaSB0byB2dSBhbiB0aGFtIG5odW5nIHRhaSBk dSBhbiBjYWkgdGFvIE5oYSBIYXQgTG9uIEhhIE5vaToodGllcCkNCg0KQ29uZyB0cmluaCBOaGEg SGF0IExvbiAtIEhhIE5vaTogVG9hbiBibyBoZSB0aG9uZyB0aGlldCBiaSBhbSB0aGFuaCB2YSBj aGlldSBzYW5nIA0Kc2FuIGtoYXUgKHRvbmcgdHJpIGdpYSAxMywyIHRpIGRvbmcpIGRhIGR1b2Mg bmhhcCB2ZSBuYW0gaW0gdHJvbmcga2hvIDUgbmFtIG5heS4gKERlbiBuYXkgMjAwOSwgY3UgdHJp IHF1YW4gdGFtLCBraG9uZyBybyBzbyB0aGlldCBiaSBuYXkgY28gY29uIGRheSBkdSwgbmd1eWVu IHZlbiBraG9uZz8pDQoNClRyb25nIHF1YSB0cmluaCB0aGkgY29uZywgbmhpZXUgaG9wIGRvbmcg bXVhIGJhbiBsb25nIHZvbmcgZGEgZHVvYyBsYXAuIFRyb25nIGRvLCANCnJpZW5nIHZpZWMgdGhh dSBtdWEgdGhpZXQgYmkgZGlldSBob2EsIGRpZW4gdHUuLi4gZGEgbGFtIHRoYXQgdGhvYXQgbmdh biBzYWNoIDggdHkgZG9uZy4NCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNS0w NS1raG9uZy1jaGktaG9hbmctdGhhbmgtbGEtdGhhbmgtY3VuZy1iaS1waGEgS2hhbmggTGluaCAw Ny8wNS8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5vaTogVGhpZXUgcXVpIGhvYWNoIGtoYW8gY28g aG9jLCB0aGlldSBoaWV1IGJpZXQgdmUgbGljaCBzdSB2YW4gaG9hIA0KVGhhbmcgTG9uZy1IYSBO b2kgdmEgY28gdGhlIGRvIGNhIHRoaWV1IHRpbmggdGhhbiB0cmFjaCBuaGllbSBuZW4gbmd1b2kg DQp0YSBkYSBkb2kgeHUgdm9pIG1vdCBkaSB0aWNoIGxpY2ggc3Ugbmh1IG1vdCBjb24gZHVvbmcg Z2lhbyB0aG9uZyBkb24gdGh1YW4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRy aS8yMDEwMDgvQm8tQ2hpbmgtdHJpLWRvbmctdGluaC1waHVvbmctYW4tbmhhbi1zdS1jdWEtSGEt Tm9pLTkzMjE3OS8gVFRYVk4gMjM6MjMsIDI3LzA4LzIwMTAgKEdNVCs3KSANCg0KSGEgTm9pOiBU aGFpIGRvLCB0cmFjaCBuaGllbSBjdWEgbW90IGJvIHBoYW4gY2FuIGJvLCBkYW5nIHZpZW4gY28g c28gdmEgbyBtb3Qgc28gbmdhbmggY2h1YSBjYW8sIGNvbiBjbyBiaWV1IGhpZW4gdHJpIHRyZS4g DQoNCmh0dHA6Ly93d3cuZGFubGVudGllbmcubmV0L3NwaXAucGhwP2FydGljbGU1NzI2IE5IUSAx OS8wNC8yMDEwDQoNCkhhIE5vaTogb25nIEJpIHRodSB0aGFuaCB1eSBQaGFtIFF1YW5nIE5naGkg Y2hlIHRyYWNoIGxhIGRhbiBjaHVuZyAiYmF5IGdpbyBzbyB2b2kgbmdheSB4dWEgeSBsYWkgTmhh IG51b2MgbGFtLiANCkN1IGNobyB0cmVuIHZlLCBjaG8gY3VuZyBjYXAgY2FpIG5heSwgaG8gdHJv IGNhaSBraWEgY2h1IGtob25nIGRlbSBoZXQgc3VjIHJhIHR1IGxhbS4iIA0KDQpodHRwOi8vd3d3 LnR1YW52aWV0bmFtLm5ldC8yMDEwLTA1LTA1LWtob25nLWNoaS1ob2FuZy10aGFuaC1sYS10aGFu aC1jdW5nLWJpLXBoYSBLaGFuaCBMaW5oIDA3LzA1LzIwMTAgMDY6MDAgR01UKzcNCg0KSGEgTm9p OiBMYW5oIGRhbyBIYSBOb2kgInRyZW8iIGtpZW4gbmdoaSBraGFvIGNvISANCg0KaHR0cDovL3d3 dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNS0wNS1raG9uZy1jaGktaG9hbmctdGhhbmgtbGEtdGhh bmgtY3VuZy1iaS1waGEgS2hhbmggTGluaCAwNy8wNS8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5v aTogS2hvbmcgY2hpIEhvYW5nIFRoYW5oIGJpIHBoYSBtYSBMYSBUaGFuaCBjdW5nIGJpIHBoYSAg DQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA5LzEyLzNCQTE3MTk0LyANCg0K SGEgTm9pOiBUaW5oIGhpbmggdGhhbSBuaHVuZyBwaHVjIHRhcCB2YSBuZ2hpZW0gdHJvbmcsIG5o aW4gZGF1IGN1bmcgdGhheSANCg0KaHR0cDovL3d3dy50aG9uZ2x1YW4ub3JnL3ZuL21vZHVsZXMu cGhwP25hbWU9TmV3cyZmaWxlPWFydGljbGUmc2lkPTMxNDQgKEJ1aSBUaW4pIDAxLzEwLzIwMDgg MTc6Mzk6MzAgRURUICANCg0KSGEgTm9pOiBDaHVhIGtob2kgdG8gdnUgYW4gb25nIFBoYW0gUXVh bmcgTmdoaSwgbmd1eWVuIEJvIHRydW9uZyBWYW4gaG9hLCBiaSBjaGluaCANCmNhbiBibyB0cm9u ZyBCbyBWYW4gaG9hLCB0byBjYW8gb25nIE5naGkgYW4gYmFuIHRyb25nIHZ1IGNoaW5oIHBodSBQ aGFwIHZpZW4gdHJvIHRhbiANCnRyYW5nIE5oYSBoYXQgbG9uIFRoYW5oIHBobyBIYSBOb2k7IG9u ZyBOZ2hpIGxhcCA1IGNvbmcgdHkgY3VhIGJvICh2ZSBvcCB0dW9uZywgDQpsb3AgbWFpLCB0aGll dCBiaSBzYW4ga2hhdSwgZ2hlIG5nb2ksIHRyYW5nIHRyaSwgdGhhbSwgYW4gbmluaC4uLikgZGUg bmhhbiB0aGF1IA0KY29uZyB0cmluaCBuYXksIHJpZW5nIEJvIHRydW9uZyBudW90IDE1JSBnaWEg dGhhdS4gDQoNCkJvIENvbmcgYW4gZGEgdHVuZyBjdSBkb2FuIGRpZXUgdHJhIG5odW5nIHNhdSBk byBsYWkgZW0gbmhlbS4gQmFvIGNoaSBjdWEgUGhhcCB0dW5nIG5vaSB2ZSB2dSBiZSBib2kgbmF5 Lg0KDQpodHRwOi8vd3d3LmdpYWNuZ28udm4vY2h1ZGUvaHVvbmd2ZTEwMDBuYW10aGFuZ2xvbmdo YW5vaS8yMDA5LzExLzE0LzdGNTY0OS8gMTQvMTEvMjAwOSAxMTo0MiAoR01UKzcpDQoNCk5vaSBi dW9uIGR1IGFuIG5naGluIG5hbS4uLiAtIFBoaW0gVGhhaSB0byBMeSBDb25nIFVhbg0KDQpDbyBu Z3VvaSB0byByYSBzYXUgc2FjIGhvbiB0aGkgcGhhbiB0aWNoOiBraG9uZyBuaGF0IHRoaWV0IHBo YWkgdHVvbmcgbmhvIEN1IEx5IGJhbmcgDQptb3QgYm8gcGhpbSB2ZSBDdSwgbmhhdCBsYSBraGkg Ym8gcGhpbSBraGllbiBDdSBjaGFuZyB2dWkgZ2kgbWEgZGF1IGxvbmcgdmkgYmkgZGFtIGNvbiBj aGF1IGdpYW5nIHhlLg0KDQpodHRwOi8vaGF5ZGFuaHRob2lnaWFuLndvcmRwcmVzcy5jb20vMjAx MC8wNS8wNy9xdXklZTElYmElYmZ0LWMlZTElYmElYWZ0LXBoYS1ob2FuZy10aGFuaC1kJWUxJWJi JTgzLW0lZTElYmIlOWYtZCVjNiViMCVlMSViYiU5ZG5nLWNoJWUxJWJiJThkYy10aSVlMSViYSVi ZnQtdGltLXIlZTElYmIlOTNuZy1oJWUxJWJiJTkzLXRheS8gNy81LzIwMTANCg0KSGEgTm9pOiBR dXlldCBwaGEgSG9hbmcgVGhhbmggZGUgbW8gZHVvbmcgY2hvYyB0aWV0IEhvIFRheSAtICB0cmFp IHRpbSBSb25nICJUaGFuZyBMb25nIiANCg0KVGFtIEhvYW5nIFRoYW5oIGRhIGNvIGJhbiBkYW8g cGhhIHhvbmcgDQoNCmh0dHA6Ly93d3cudmlldG5hbXBsdXMudm4vSG9tZS9EaS10aWNoLUhvYW5n LXRoYW5oLXRob2ktTGUtZGEtYmktc2FuLXBoYW5nLzIwMTA1LzQzNzA2LnZucGx1cyAwNC8wNS8y MDEwIDE2OjA2OjAwDQoNCkhhIE5vaTogRGkgdGljaCBIb2FuZyB0aGFuaCB0aG9pIExlIGRhIGJp IHNhbiBwaGFuZyAtIFZ1YSB4dWF0IGxvIGRhIGJpIHBoYQ0KDQpIb24gNTAgaG8gZGFuIGRhIGN1 bmcga3kgZG9uIGtpZW4gbmdoaSBndWkgZGVuIEhvaSBLaG9hIGhvYyBMaWNoIHN1IFZpZXQgTmFt LCBWaWVuIEtoYW8gY28gaG9jIFZpZXQgTmFtIHlldSBjYXUgY2FjIG5oYSBraG9hIGhvYyB2YW8g Y3VvYyBkZSBuZ2FuIGNoYW4gdmllYyBwaGEgZGkgdGljaC4NCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDE4LzIwMTAwNTAyMjMwMjI1LmFzcHggMDIvMDUvMjAx MCAyMzowMiANCg0KSGEgTm9pOiBNb3QgZG9hbiBIb2FuZyB0aGFuaCBUaGFuZyBMb25nIGJpIHh1 YyBkbyAgLSAgIkRvYW4gdGhhbmggYmkgcGhhIHRyZW4gZHVvbmcgSG9hbmcgSG9hIFRoYW0gZGUg bW8gZHVvbmcgY2hpbmggbGEgSG9hbmcgdGhhbmggdGhvaSBMZSIsIA0KDQpodHRwOi8vd3d3Lm1l a29uZ25ldC5ydS9pbmRleC5waHA/bW9kPU5ld3Mmc2lkPTI3NzYyIDA2LjA1LjIwMTAgMTI6MDAN Cg0KSGEgTm9pOiBQaGFuIEhvYW5nIHRoYW5oIHBoaWEgZG9uZyBkYSBob2FuIHRvYW4gYmkgc2Fu IGJhbmcgDQoNCk5ndXllbiBuaGFuIGNhbiBiYW4gbGEgY2hvIGRlbiBuYXkgVGh1IGRvIEhhIE5v aSB2YW4gY2h1YSB4YXkgZHVuZyBkdW9jIG1vdCBxdWkgaG9hY2gga2hhbyBjbyBob2MuLi4gDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Ni8yMDEwMTExMzAw MzE1NC5hc3B4IFRoYW5oIFRoYW8gMTMvMTEvMjAxMCAwOjMxIA0KDQpIYSBOb2k6IFN1bmcgc290 IGNodXllbiB0cnVuZyB0dSBkaSB0aWNoIJYgICJkZW0gZGVuIGJhIGtpYSBsYXAgdmFvIGNodWEg b25nIG5vIg0KDQpNdWMgZGljaCBjdWEgYmF0IGN1IGN1b2MgdHJ1bmcgdHUgbmFvIGN1bmcgbmhh bSBkZSBraG9pIHBodWMgbmd1eWVuIHRyYW5nIGRpIHRpY2ggc2F1IA0Ka2hpIGJpIHRob2kgZ2lh biB0YW4gcGhhIGhheSBjb24gbmd1b2kgeGFtIGhhaS4gTmdheSB0cm9uZyB2aWVjIGtob2kgcGh1 YyBuZ3V5ZW4gdHJhbmcgDQpuYXkga2hvbmcgcGhhaSBraG9uZyBjbyBuaHVuZyBxdWFuIGRpZW0g a2hhYyBuaGF1IGN1YSBjYWMgbmhhIHRydW5nIHR1IGhheSBraGFvIGNvLiANCg0KTmh1bmcga2hp IGRhIGNoYXAgbmhhbiBxdWFuIGRpZW0ga2hvaSBwaHVjIG5ndXllbiB0cmFuZywgdGhpIGtob25n IHRoZSBjbyBjaHV5ZW4gDQoiZGVtIGRlbiBiYSBraWEgbGFwIHZhbyBjaHVhIG9uZyBubyIga2ll dSBkdWEgbWF1IGNvbmcgY2h1YSBMYW5nIGxhcCB2YW8gY29uZyBkZW4gDQpWb2kgUGh1YyBuaHUg cXVhbiBCYSBEaW5oIGRhIGxhbS4NCg0KVm9pIGtpbmggcGhpIDE4IHRpIGRvbmcgY2hvIHZpZWMg dHJ1bmcgdHUgbmF5LCBtYSBrZXQgcXVhIHRydW5nIHR1IGxhaSBuaHUgdmF5IHRoaSBkdW5nIA0K bGGFIHBoaSBraW5oISBTdSBsYW5nIHBoaSBraG9uZyBjaGkgbyB0aWVuIGJhYywgY29uZyBzdWMs IG1hIHZvaSBsb2kgbGFtIHZpZWMgY2F1IHRoYSwgdGFjIA0KdHJhY2ggbmh1IHZheSBkYSB2YSBz ZSBkYW4gdG9pIHN1IGxhbmcgcGhpIGNoaW5oIGNhYyBkaSB0aWNoLCBuaGF0IGxhIGNhYyBkaSB0 aWNoIGRhIGR1b2MgDQp4ZXAgaGFuZy4gWGVtIGxvYXQgYmFpIGRpZXUgdHJhIHRyZW4gQmFvIFRo YW5oIE5pZW4gdmUgbmh1bmcgImNodXllbiBsYSIgdHJvbmcgdHJ1bmcgdHUgDQpkaSB0aWNoIG8g SGEgTm9pLCB0aGF0IGtoaWVuIGNobyBuaHVuZyBuZ3VvaSB5ZXUgbWVuLCBraW5oIHRyb25nIGxp Y2ggc3UgY2hhIG9uZyBraG9uZyANCmtob2kgZ2lhdCBtaW5oLiBWb2kgY2FpIGRhICJ0cnVuZyB0 dSIgdGhlbyBraWV1ICJyYXUgb25nIG5vIGNhbSBjYW0gYmEga2lhIiBvIGRlbiBWb2kgDQpQaHVj IHZhICJ0aG9uZyBxdWFuIiB2byB0cmFjaCBuaGllbSBnaXVhIGRpIHRpY2ggZGluaCBOYW0gSHVv bmcgdmEgZGkgdGljaCBraHUgdHVvbmcgDQp0aG8gVnVhIExlIFRoYWkgVG8sIHRoaSBiaWV0IGRh dSB0b2kgbW90IGx1YyBuYW8gZG8sIG5ndW9pIHRhIHNlIGdpYXQgbWluaCBraGkga2hvbmcgY29u IA0KYmlldCBkYXUgbGEgZGVuIGRhdSBsYSBjaHVhIGRhdSBsYSBkaW5oIG51YS4NCg0KVm9pIG5o dW5nIHRoZSBoZSB0cmUgaXQgY28gZGlldSBraWVuIHZhIHRob2kgZ2lhbiB0aWVwIGNhbiBjYWMg ZGkgdGljaCBuaHUgaGllbiBuYXksIGNodXllbiANCmhvIHNlIG5oYW0gbGFuIGx1bmcgdHVuZyBr aGkgdG9pIHRoYW0gY2FjIGRpIHRpY2ggbGEgaG9hbiB0b2FuIGNvIHRoZSB4YXkgcmEuIFZhIHRy b25nIA0KY2h1eWVuIGRvLCBjaHVhIGNoYWMgdGhlIGhlIHRyZSBkYSBjbyBsb2ksIHZpIG5odW5n ICJuaGEgdHJ1bmcgdHUiIGRhICJjYW8gYmFuZyIgdmEgImxhbSANCm1vaSIgdGhlbyBraWV1IHJh cCBraHVvbiB0YXQgY2EgY2FjIGRpIHRpY2gsIGRlIHN1IGtoYWMgYmlldCBuZ2F5IGNhbmcga2hv IHRoYXksIGNvbiBzdSANCiJuaGFuZyBuaGFjIiBnaW9uZyBuaGF1IG5nYXkgY2FuZyBoaWVuIHJv Lg0KDQpBaSBjdW5nIGJpZXQsIG1vaSBtb3QgbmdvaSBkZW4gY28gbyBWaWV0IE5hbSBkZXUgYW4g Y2h1YSB0cm9uZyBubyBraG9uZyBjaGkgbGljaCBzdSwgDQp0b24gZ2lhbywgbmdoZSB0aHVhdCBt YSBjb24gbGEgZGF1IGFuIGN1YSBuaHVuZyB0aG9pIGRhaSBraGFjIG5oYXUsIGN1YSBuaHVuZyB0 cmlldSBkYWkgDQpraGFjIG5oYXUgdHJvbmcgbGljaCBzdS4gRG8gbGEgY2EgbW90IHBobyBzYWNo IG1vIGxvbiBjaG8gY2FjIHRoZSBoZSBzYXUgY28gdGhlIHRpbSBkZW4gDQpjaGllbSBuZ2hpZW0s IHRpbSBoaWV1LCBob2MgaG9pIHZhIHR1IHJhbiBtaW5oLiBOaHVuZyBjb24gY2hvIGRhLCBuZ3Vh IGRhIGhheSByb25nIGRhIA0KdHJvbmcgY2FjIG5nb2kgZGVuIG5nb2kgY2h1YSBWaWV0IHZhbiBj byBuaHVuZyBraGFjIGJpZXQgdm9pIG5odW5nIHBobyB0dW9uZyBjdW5nIGxvYWkgDQpvIGNhYyBu Z29pIGNodWEga2hhYyB0cmVuIHRoZSBnaW9pLg0KDQpUcnVuZyB0dSBraG9uZyBjaGkgbGEgImxh bSBtb2kgbGFpIiBtb3QgY2FjaCB2byBjYW0sIG1hIHBoYWkgbGEgc3UgY2hpdSBjaGF0LCBuZ2Ft IA0KbmdvaSwgaG9jIGhvaSB0cmVuIHR1bmcgY2hpIHRpZXQgY28gdGhlIGRhIGJpIHRhbiBwaGFp IGhheSBiaSB0aHVvbmcgdGljaCBjdWEgbGljaCBzdS4NCg0KRHVuZyAiYmFuIiB2YW8gcXVhIGto dSBiYW5nIHN1IHZ1IGxvaSB2byBjYW0gdmEgdGhpZXUgaGlldSBiaWV0LCB2aSBzZSBkZW4gbHVj LCBub2kgbmh1IA0KbW90IG5oYSB0aG8sIHR1b25nIGxhaSBzZSAiYmFuIiB2YW8gYmFuIGJhbmcg c3Uga2hhYyBuZ2hpZXQgZ2FwIG5oaWV1IGxhbiENCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZu L3Rpbm5oYW5oLzIwMTAxMC9CYW8tdGFuZy1IYS1Ob2ktbW9pLWtoYW5oLXRoYW5oLWRhLWJpLXRy b20tY2FwLTk0MTkxNS8gIEFuaCBOZ29jIDExOjIwLCAxMy8xMC8yMDEwIChHTVQrNykNCg0KSGEg Tm9pOiBCYW8gdGFuZyBIYSBOb2kgdnVhIGtoYW5oIHRoYW5oIGRhIGJpIHRyb20NCg0KTmdheSAx Mi8xMCwgVUJORCBUUCBIYSBOb2kgZGEgY28gY29uZyB2YW4gZ3VpIENvbmcgYW4gVFAgeWV1IGNh dSBibyB0cmkgbmdheSBsdWMgDQpsdW9uZyBjaHV5ZW4gbmdoaWVwIGRlIGJhbyB2ZSB0b2FuIGJv IGtodSB2dWMgYmVuIHRyb25nIGNvbmcgdHJpbmggYmFvIHRhbmcgMjQvMjQuIA0KDQpDb25nIHZh biBuaGFuIG1hbmggImRhIGNvIGhpZW4gdHVvbmcgcGhhIGhvYWksIHRoYW8gdHJvbSB0aGlldCBi aSB0cm9uZyBjb25nIHRyaW5oIi4gRG8gDQpkbywgQ0EgVFAgY2FuIHBob2kgaG9wIGNoYXQgY2hl IHZvaSBTbyBWYW4gaG9hIJYgVGhlIHRoYW8gdmEgRHUgbGljaCBIYSBOb2kgZGUgdG8gDQpjaHVj IHRyaWVuIGtoYWkgY29uZyB0YWMgYmFvIHZlIGFuIHRvYW4gY2hvIGNhYyBjbyB2YXQsIGhpZW4g dmF0IGRhbmcgZHVvYyB0cnVuZyBiYXkgdGFpIA0KZGF5IGN1bmcgbmh1IGNhYyB0aGlldCBiaSBs YXAgZGF0IHRyb25nIGNvbmcgdHJpbmguDQoNCkN1bmcgdm9pIHZpZWMgbGFwIGtlIGhvYWNoIGJh byB2ZSwgQ0FUUCBIYSBOb2kgY3VuZyBjbyB0cmFjaCBuaGllbSBkdSB0cnUga2luaCBwaGkgZGUg DQp0byBjaHVjIHZpZWMgYmFvIHZlIG5heSB0aHVjIHN1IGhpZXUgcXVhLg0KDQpCYW8gdGFuZyBI YSBOb2kgdnVhIGNoaW5oIHRodWMga2hhbmggdGhhbmggbmdheSA2LzEwLCB0aHUgaHV0IGx1b25n IGtoYWNoIHRoYW0gcXVhbiANCnJhdCBkb25nLiBCYW8gdGFuZyBIYSBOb2kgaGllbiBkYW5nIGx1 dSBnaXUgaG9uIDUwLjAwMCBoaWVuIHZhdCBkdW9jIHRydW5nIGJheSwgY2h1IA0KeWV1IHRhaSB0 YW5nIDEgdmEgMi4gVHJvbmcgZG8sIGNvIHJhdCBuaGlldSBoaWVuIHZhdCBxdXkgdGhvaSBMeSAt IFRyYW4gLSBMZSwgYW5oLCB0dSBsaWV1IA0Ka2hvYSBob2MgdmUgbm9pIGR1bmcgVGhhbmcgTG9u ZyB0aG9pIERhaSBWaWV0IHZhIHZpZWMgcGhhdCBoaWVuIGNvIHZhdCBraHUgdnVjIEhvYW5nIHRo YW5oIFRoYW5nIExvbmcuLi4gDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9oYV9ub2lfaG9uXzEw MDBfdHJ1b25nX2hvY190aGlldV9uaGFfdmVfc2luaC0xMS0yMTQxMzAyMC5odG1sDQoNCkhhIE5v aTogSG9uIDEuMDAwIHRydW9uZyBob2MgdGhpZXUgbmhhIHZlIHNpbmggDQoNCmh0dHA6Ly93d3cu dGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMDkzMC8yMDA5MDcyNDE5NTgxMC5hc3B4IDI0 LzA3LzIwMDkgMTk6NTggDQoNCkhhIE5vaTogTmhhIHZlIHNpbmggdHJ1b25nIGhvYywgbmhpbiB0 aGF5IGxhIHNvIQ0KDQpOZ2F5IHRhaSBIYSBOb2ksIGN1b2Mga2hhbyBzYXQgbW9pIGRheSB2ZSBu aGEgdmUgc2luaCB0YWkgOTY4IHRydW9uZyBob2MgbyBraHUgdnVjIG5vaSB0aGFuaCBjaG8gdGhh eSwgY28gdG9pIDQwNyB0cnVvbmcgdGhpZXUgbmhhIHRpZXUsIDIwMSB0cnVvbmcgdGhpZXUgbmhh IHRpZXUgY2hvIGhvYyBzaW5oLiANCg0KQ29uIG8ga2h1IHZ1YyBtbyByb25nIHRoaSBjbyB0b2kg Z2FuIDEuMDAwIHRydW9uZyBob2MgdGhpZXUgbmhhIHZlIHNpbmguIENvIGhvbiA5MCUgY2FjIHRy dW9uZyBraG9uZyBjbyBub2kgcnVhIHRheSBzYXUga2hpIGhvYyBzaW5oIHJhIGNob2kgdHJvIGxh aSBsb3AgaG9jLiANCg0KTmdoaSBkZW4gbGEgcnVuZyBtaW5oISANCg0KaHR0cDovL2RhbnRyaS5j b20udm4vYzIwL3MyMC0zOTU5NjQvbXVhLWxvbi1uaGFuLWNoaW0taGEtbm9pLXRyb25nLW5nYXAt bHV0LXZhLXVuLXRhYy5odG0gMTUvMDUvMjAxMCAtIDEyOjA4DQoNCkhhIE5vaTogTXVhIGxvbiAi bmhhbiBjaGltIiBIYSBOb2kgdHJvbmcgbmdhcCBsdXQgdmEgdW4gdGFjIA0KDQpodHRwOi8vd3d3 LnZpZXRuYW1uZXQudm4vYnZraC9kYXlub25nLzIwMDkvMDgvODY1MzcxLyBDYXAgbmhhdCBsdWMg MDc6NDcsIFRodSBUdSwgMjYvMDgvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogNSB2YW4gaG8gZGFu IGNoZW4gbmhhdSB2byBkYXUuLi4gbm9wIHRpZW4gZGllbg0KDQpodHRwOi8vdmlldG5hbW5ldC52 bi94YWhvaS8yMDA5MTAvSE4tMS1uYW0tc2F1LWRhaS1ob25nLXRodXk5LW5nYW4tdHktaGV0LW5n YXAtODc2MzQ2Lw0KDQpIYSBOb2k6ICJDdSBtdWEgbGEgbmdhcCIhIENvIGxlIGRvIGxhIGRpZXUg ZGEgdGhhbmggcXVlbiB2b2kgbmd1b2kgZGFuIEhhIE5vaSwgY3VuZyB5IGhldCBuaHUgcmEgZHVv bmcgbGEgZ2FwLi4uIGtldCB4ZSEgDQoNClNhdSBoYWkgdHJhbiBtdWEgbG9uIG8gSGEgTm9pLCBo YW0gZHVvbmcgYm8gS2ltIExpZW4sIGR1b2MgY2hvIGxhIGhpZW4gZGFpIG5oYXQgVk4sIGRldSBi aWVuIHRoYW5oLi4uIGhvLCBudW9jIG5nYXAgcXVhIG51YSBiYW5oIHhlLg0KDQpodHRwOi8vdGhp dHJ1b25ndmlldG5hbS5jb20udm4vZ3BtYXN0ZXIuZ3AtbWVkaWEudGhpLXRydW9uZy12aWV0LW5h bS5ncGxpc3QuMjIuZ3BvcGVuLjE4NjA1Lmdwc2lkZS4xLmRoLXF1b2MtZ2lhLWhhLW5vaS0lRTIl ODAlOUNtYXQlRTIlODAlOUQtaGFuZy10cmFtLWhhLWRhdC0uYXNteCBOZ2F5IGNhcCBuaGF0OiAg MTAvMi8yMDEwIA0KDQpIYSBOb2k6IERIIFF1b2MgZ2lhIEhhIE5vaSAnbWF0JyBoYW5nIHRyYW0g aGEgZGF0IA0KDQpWaWVjIGNhIHRoZSBob2EgZGF0IGNvbmcgbyBEYWkgaG9jIFF1b2MgZ2lhIEhh IE5vaSBkYSB0YW8gcmEgdmllYyBtdWEgYmFuLCBjaHV5ZW4gbmh1b25nIA0KYmF0IGhvcCBwaGFw IGRhdCwgdGhhbSBjaGkgbXVhIGJhbiBnaWF5IHRvIGdpYW8gZGF0LCBsYXAgaG8gc28gZ2lhIGRl IGNoaWVtIGRvYXQgdGllbiBjdWEgTmhhIG51b2MuDQoNCmh0dHA6Ly92b3ZuZXdzLnZuL0hvbWUv RHUtYW4teGF5LWR1bmctREgtcXVvYy1naWEtSGEtTm9pLVNhaS1waGFtLTE4Ni10eS1kb25nLzIw MTAyLzEzNTAwMy52b3YgMTA6MzIgQU0sIDEwLzAyLzIwMTAgVGhlbyBUdW9pIHRyZQ0KDQpIYSBO b2k6IER1IGFuIHhheSBkdW5nIERIIHF1b2MgZ2lhIEhhIE5vaSBzYWkgcGhhbSAxOCw2IHR5IGRv bmcgDQoNClRoZW8gVGhhbmggdHJhIENoaW5oIHBodSwgdHJhY2ggbmhpZW0gdGh1b2MgdmUgdGFw IHRoZSB2YSBtb3Qgc28gY2EgbmhhbiB0aHVvYyBVQk5EIA0KaHV5ZW4gVGhhY2ggVGhhdCB2YSBi YW4gZ2lhbSBkb2MgRGFpIGhvYyBRdW9jIGdpYSBIYSBOb2kuLy4NCg0KaHR0cDovL3d3dy52dGMu dm4vdHJhbmdiYW5kb2MvNDYzLTIzMjc4MC9idWMteHVjLXRodW9uZy1uZ2F5L2hhLW5vaS1xdWEt YnVpLWJhbi1xdWEtby1uaGllbS5odG0gMjkvMTEvMjAwOSAyMjoxOA0KDQpIYSBOb2k6IFF1YSBi dWkgYmFuLCBxdWEgbyBuaGllbSAgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIw MDcvMTEvNzU2MjY4LyAxNzoyMiwgVGh1IE5hbSwgMjIvMTEvMjAwNyAoR01UKzcpDQoNCkhhIE5v aTogUXV5IGhvYWNoIGRvIHRoaSBtb2kgcXVhIG1hbmggbXVuDQoNCiJDb25nIHRhYyBxdXkgaG9h Y2ggY2FjIGtodSBkbyB0aGksIGtodSB0YWkgZGluaCBjdSBjb24gbWFuaCBtdW4sIHRoaWV1IGRv bmcgYm8sIGNvbmcgdGFjIHF1YW4gbHkgeWV1IGtlbSwgdGhpZXUga2llbiBxdXlldCIuIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMjMvMjAxMDA2MDUwMDQ1 MDEuYXNweCAwNS8wNi8yMDEwIDA6NDUgDQoNCkhhIE5vaTogVGlldSBjdWMgZGF0IGRhaSB0YWkg RG9uZyBBbmggLSBkZW4gYnUgdHJhaSBxdXkgZGluaCAxNCB0aSBkb25nDQoNClRyb25nIHF1YSB0 cmluaCB0cmllbiBraGFpIHhheSBkdW5nIGhlIHRob25nIHRob2F0IG51b2MgbXVhLCB0aHVvYyBk dSBhbiBwaGF0IHRyaWVuIGhhIA0KdGFuZyBkbyB0aGkgQmFjIFRoYW5nIExvbmcgLSBWYW4gVHJp LCBtb3Qgc28gbGFuaCBkYW8geGEgSGFpIEJvaSBkYSBtb2MgbmdvYWMgdm9pIGNhbiANCmJvIEJh biBxdWFuIGx5IGNhYyBkdSBhbiB0cm9uZyBkaWVtIHBoYXQgdHJpZW4gZG8gdGhpIEhhIE5vaSAo TVBNVSkgbGFtIHNhaSBsZWNoIGhvIHNvIA0KZGUgY2hpZW0gZG9hdCB0aWVuIGRlbiBidSwgaG8g dHJvIGdpYWkgcGhvbmcgbWF0IGJhbmcuIA0KDQpUaGVvIGRpZXUgdHJhIGJhbiBkYXUsIGRhIGNv IGtob2FuZyA1MCBobyBkYW4gdGFpIHhhIEhhaSBCb2kgZHVvYyBkZW4gYnUgdHJhaSBxdXkgZGlu aCANCnZvaSBzbyB0aWVuIGxlbiB0b2kgMTQgdGkgZG9uZy4gDQoNCmh0dHA6Ly9naWFkaW5oLm5l dC52bi8yMDEwMDQwMjA4MTY0MjQ1OHAwYzEwMDUvcGh1Yy10aGFtLXZ1LWRhbS1vLXRyZS1lbS1v LWRvbmctYW5oLWhhLW5vaS10b2ktbmFuZy1hbi1uaGUuaHRtIDAyLzA0LzIwMTAsIDA4OjIyKEdN VCs3KQ0KDQpIYSBOb2k6IERhbSBvIHRyZSBlbSBvIERvbmcgQW5oIC0gVG9pIG5hbmcgliBhbiBu aGUgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL3ZpL1hhLWhvaS9CYW0tcnVuZy1Tb2MtU29uLWRlLXhh eS1iaWV0LXRodS1uaGEtc2FuLzEwOTU3ODMyLzE1Ny8gMTggVGhhbmcgbmFtIDIwMDYsIDE2OjQ2 IEdNVCs3IA0KDQpIYSBOb2k6IERhdCBydW5nIFNvYyBTb24gYmkgImJhbSBuYXQiIA0KDQpodHRw Oi8vdmlldGJhby52bi92aS9YYS1ob2kvQmFtLXJ1bmctU29jLVNvbi1kZS14YXktYmlldC10aHUt bmhhLXNhbi8xMDk1NzgzMi8xNTcvIDE4IFRoYW5nIG5hbSAyMDA2LCAxNjo0NiBHTVQrNyANCg0K SGEgTm9pOiBIYW5nIGxvYXQgYmlldCB0aHUsIG5oYSBzYW4sIHRyYW5nIHRyYWkgbmdoaSBjdW9p IHR1YW4uLi4gZGEgZHVvYyB4YXkgY2F0IHRyYWkgcGhlcCANCnRhaSBraHUgdnVjIHJ1bmcgcGhv bmcgaG8sIGRhYyBkdW5nIG8gaHV5ZW4gbmdvYWkgdGhhbmggU29jIFNvbiANCg0KaHR0cDovL3d3 dy50YmljLnZuL3ZpL21vZHVsZXMucGhwP25hbWU9TmV3cyZmaWxlPXNhdmUmc2lkPTcxNSAyNC4w OC4yMDA5DQoNClRhaSBzYW8gSGEgTm9pIHBoYWkgY28gOSBzYW4gZ29sZj8NCg0KVHJ1b2Mga2hp IGR1bmcgMTAgZHUgYW4sIEhhIE5vaSBjbyB0b25nIGNvbmcgMTkgZHUgYW4gc2FuIGdvbGYsIHRy b25nIGRvIGRpYSBiYW4gSGEgbm9pIChjdSkgY28gOCBkdSBhbiwgSGEgVGF5IChjdSkgMTAgZHUg YW4gdmEgTWUgTGluaCAoVmluaCBQaHVjKSBjbyAxIGR1IGFuLiBUb25nIGRpZW4gdGljaCBjaGll bSBkYXQgY3VhIGNhYyBkdSBhbiBuYXkgbGEgNi42OTAgaGEsIHRyb25nIGRvIGNvIDQ4MiBoYSBk YXQgdHJvbmcgbHVhLiANCg0KTmhpZXUgY2h1eWVuIGdpYSB2YW4gbG8gbmdhaSB2ZSBuaHVuZyBo ZSBsdXkgdmEgbGFuZyBwaGkga2hvbmcgZGFuZyBjbywga2hpIFRodSBkbyBjdW5nIGx1YyBjbyB0 b2kgOSBkdSBhbiBzYW4gZ29sZi4gDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMDkt MTAtMDgtdGh1YS1kYXQtbGFtLXNhbi1nb2xmLXRoaWUtdS1kYS10LXhheS10cnVvbmcgVHJhbiBO YW0gSGEgMDUvMTEvMjAwOSAxMDowMCBHTVQrNyANCg0KSGEgTm9pOiBUaHVhIGRhdCBsYW0gc2Fu IGdvbGYsIHRoaWV1IGRhdCB4YXkgdHJ1b25nIGhvYyANCg0KaHR0cDovL3ZpZXRiYW8udm4vWGEt aG9pL0hhLU5vaS10cmVuLTItNy10cmlldS1tMi1kYXQtYm8taG9hbmctdmEtYmktY2hpZW0tZHVu Zy80MDE4NTc2My8xNTcvIDA1LzAyLzIwMDcsIDA0OjE0IEdNVCs3DQoNCkhhIE5vaTogdHJlbiAy LDcgdHJpZXUgbTIgZGF0IGJvIGhvYW5nIHZhIGJpIGNoaWVtIGR1bmcgDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL0tob2EtaG9jL0hhLU5vaS1UUEhDTS1Ub3AtNi10aGFuaC1waG8tby1uaGllbS1idWkt bmhhdC10aGUtZ2lvaS83MDEwMTYzNy8xODgvIDI2LzEwLyAyMDA3LCAyMTozMSBHTVQrNyANCg0K SGEgTm9pLCBUUEhDTTogVHJvbmcgdG9wIDYgdGhhbmggcGhvIG8gbmhpZW0gYnVpIG5oYXQgdGhl IGdpb2kgDQoNCk8gbmhpZW0gYnVpIG8gaGFpIHRoYW5oIHBobyBsb24gY3VhIFZpZXQgTmFtIGxh IEhhIE5vaSB2YSBUUC5IQ00gaGllbiBjaGkga2VtIGNhYyB0aGFuaCBwaG8gQmFjIEtpbmgsIFRo dW9uZyBIYWkgKFRydW5nIFF1b2MpLCBOZXcgRGVobGkgKEFuIERvKSB2YSBEaGFrYSAoQmFuZ2xh ZGVzaCkuIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvSGEtTm9pLUhhbmctdHktZG9uZy1z YWktcGhhbS10dS1uZ2FuLXNhY2gvNzAwOTA1MDYvMTU3LyBOZ3V5ZW4gVHVhbiAoVGhlbyBUaWVu IFBob25nKSAwNC83LzIwMDcsIDA3OjI4IEdNVCs3IA0KDQpIYSBOb2k6IEhhbmcgdHkgZG9uZyBz YWkgcGhhbSB0dSBuZ2FuIHNhY2ggDQoNClRob2kgZ2lhbiBxdWEsIFRQIEhhIE5vaSBkYSBraWVt IHRyYSB0b2FuIGJvIGNhYyBkdSBhbiBjb25nIHRyaW5oIHN1IGR1bmcgdm9uIG5nYW4gDQpzYWNo IG5oYSBudW9jLCByYSBzb2F0IDUuMDQyIGR1IGFuIGtoYWMsIHRpZW4gaGFuaCAxNzcgY3VvYyB0 aGFuaCB0cmEga2luaCB0ZSB2YSBwaGF0IA0KaGllbiAxMCw5NzkgdHkgZG9uZyB2YSBob24gNTAu MDAwbTIgZGF0IHNhaSBwaGFtLg0KDQooQW5oOiBEYXQgZ2lhaSBwaG9uZyBtYXQgYmFuZyB4b25n IGNobyBkdSBhbiAtZG9hbiBkdW9uZyBkYW4gbGVuIGNhdSBWaW5oIFR1eSAtIHRodW9jIHF1YW4g TG9uZyBCaWVuKSANCg0KVGhlbyBQaG8gQ2h1IHRpY2ggVUJORCBUUCBMZSBRdXkgRG9uICwgdmll YyBjaHUgZG9uZyBwaGF0IGhpZW4gdGlldSBjdWMgdGhhbSBuaHVuZyBvIGNvIHNvIGNvbiBpdCwg Y2h1IHlldSBkbyBiYW8gY2hpIHBoYXQgaGllbi4NCg0KTGFuZyBwaGksIHNhaSBwaGFtIG5oaWV1 IC0gdGh1IGhvaSBxdWEgaXQgDQoNCjYgdGhhbmcgZGF1IG5hbSwga2luaCB0ZSBIYSBOb2kgdGFu ZyB0cnVvbmcgY2FvIC0gdG9uZyBzYW4gcGhhbSBub2kgZGlhIChHRFApIHVvYyB0YW5nIA0KMTEs MiUsIGxhIG11YyB0YW5nIHRydW9uZyBjYW8gbmhhdCB0cm9uZyBuaHVuZyBuYW0gZ2FuIGRheS5U aGUgbmh1bmcsIGNvbmcgdGFjIGNhaSANCmNhY2ggaGFuaCBjaGluaCBjb24gbW90IHNvIGhhbiBj aGU7IHZpIHBoYW0gdHJhdCB0dSB4YXkgZHVuZywgcXVhbiBseSBkYXQgZGFpIGRhbmcgbGEgDQp2 YW4gZGUgYnVjIHh1Yy4NCg0KVGhvaSBnaWFuIHF1YSwgdGhhbmggcGhvIGRhIGtpZW0gdHJhIHRv YW4gYm8gY2FjIGR1IGFuIGNvbmcgdHJpbmggc3UgZHVuZyB2b24gbmdhbiBzYWNoIA0KbmhhIG51 b2MsIHJhIHNvYXQgNS4wNDIgZHUgYW4ga2hhYywgdGllbiBoYW5oIDE3NyBjdW9jIHRoYW5oIHRy YSBraW5oIHRlIHZlIGRhdSB0dSB4YXkgDQpkdW5nLCB0YWkgY2hpbmggbmdhbiBzYWNoLCBxdWFu IGx5IHN1IGR1bmcgZGF0IGRhaS4gS2V0IHF1YSwgZGEgcGhhdCBoaWVuIDEwLDk3OSB0eSBkb25n IA0KdmEgaG9uIDUwLjAwMG0yIGRhdCBzYWkgcGhhbS4NCg0KUmllbmcgNiB0aGFuZyBkYXUgbmFt IG5heSwgY28gcXVhbiBjaHVjIG5hbmcgdGllbiBoYW5oIDY2IGN1b2MgdGhhbmggdHJhLCBidW9j IGRhdSANCnBoYXQgaGllbiwga2llbiBuZ2hpIHRodSBub3AgbmdhbiBzYWNoIDQsNDc5IHR5IGRv bmcgc2FpIHBoYW0uDQoNClF1YSBjb25nIHRhYyBnaWFpIHF1eWV0IGtoaWV1IG5haSB0byBjYW8s IHBoYXQgaGllbiBzYWkgcGhhbSwga2llbiBuZ2hpIHRodSBob2kgNSw2NjUgdHkgDQpkb25nIHZh IGhhbmcgbmdhbiBtZXQgdnVvbmcgZGF0LiBDdW5nIGRvIHNhaSBwaGFtLCBjbyA4OSBjYW4gYm8g Ymkga3kgbHVhdDsgZG9uZyB0aG9pIA0KVXkgYmFuIEtpZW0gdHJhIFRoYW5oIHV5IHBoYXQgaGll biAyMCBkYW5nIHZpZW4gY28gZGF1IGhpZXUgdmkgcGhhbSwgMTYzIGRhbmcgdmllbiBiaSANCmt5 IGx1YXQuDQoNCiJUaHVjIHRlIGxhbmcgcGhpIGxvbiBob24gbmhpZXUuIEJhbyBjYW8gY29uIHF1 YSBjaHVuZyBjaHVuZywgbW8gbmhhdCwgY2h1YSBjaGkgcm8gDQpkdW9jIGNvIGJhbyBuaGlldSBk dSBhbiAidHJlbyIsIGdheSBsYW5nIHBoaSByYSBzYW8iIC0gVmllbiB0cnVvbmcgVmllbiBLU05E IFRQIA0KTmd1eWVuIFZhbiBLaGFuaCBuaGluIG5oYW4uDQoNCkNvbiB0aGVvIGJhIE5ndXllbiBU aGkgTmdvYyBNaW5oIC0gQmkgdGh1IFF1YW4gdXkgVGhhbmggWHVhbiwgbGFuIGNoaWVtIGRhdCBj b25nIA0KZGFuZyByYXQgYnVjIHh1YyB2YSBkbyBjaGluaCBsYSB0aGFtIG5odW5nLiAiTmh1bmcg dHJlbiBkaWEgYmFuIHF1YW4sIGNodWEgY28gdnUgdmllYyANCm5hbyBiaSB0b2EgYW4geGV0IHh1 IiAtIGJhIE1pbmggdGh1YSBuaGFuLg0KDQoiSGFuZyB0eSBkb25nIHNhaSBwaGFtIHR1IG5nYW4g c2FjaCBkdW9jIHBoYXQgaGllbiBuaHVuZyB0aHUgaG9pIGxhaSBxdWEgaXQuIFRoYW5oIHBobyAN CmtpZW4gbmdoaSB0aHUgaG9pIDQsNDc5IHR5IGRvbmcsIG5odW5nIHNvIHRodSBkdW9jIGNoaSBs YSA1NzYgdHJpZXUgZG9uZyAtIGNoaSBiYW5nIGhvbiANCjEwJSBzbyB0aWVuIHRoYXQgdGhvYXQg dHUgZGF1IG5hbSBkZW4gbmF5IiAtIE9uZyBOZ3V5ZW4gVmFuIFRyaW5oIC0gQmkgdGh1IEh1eWVu IHV5IA0KR2lhIExhbSBwaGFuIHRpY2guDQoNCkN1bmcgbmh1IHZheSwgdGhlbyBvbmcgVHJpbmgs IHNvIHRpZW4gc2FpIHBoYW0gbmFtIDIwMDYgaG9uIDUgdHkgZG9uZywgbmh1bmcgc28gdGh1IA0K aG9pIGR1b2MgYmFvIG5oaWV1IGtob25nIHRoYXkgYmFvIGNhbyENCg0KRHUgYW4gdHJvbmcgZGll bSBjaGFtIC0ga2hvbmcgYWkgY2hpdSB0cmFjaCBuaGllbQ0KDQpUaGVvIEJhbyBjYW8gdmUgY29u ZyB0YWMgcGhvbmcgY2hvbmcgdGhhbSBuaHVuZywgbGFuZyBwaGkgNiB0aGFuZyBkYXUgbmFtLCB0 aGFuaCBwaG8gDQp0aHUgbHkgZGlldSB0cmEgMTQgdnUsIDM0IGRvaSB0dW9uZyB0aGFtIG5odW5n LCBnYXkgdGhpZXQgaGFpIDEyLDk2NSB0eSBkb25nLCBkYSB0aHUgaG9pIA0KMSwzMjAgdHkgZG9u ZyAoZGF0IDEwLDIgJSkuDQoNClRyb25nIGRvOiB0aGFtIG8gdGFpIHNhbiA5IHZ1LCBuaGFuIGhv aSBsbyAzIHZ1LCBsb2kgZHVuZyBjaHVjIHZ1IHF1eWVuIGhhbiAyIHZ1LiBOZ29haSANCnJhLCB0 aGVvIGJhbyBjYW8gY3VhIFRBTkQgVFAgZGEgeGV0IHh1IDM1IHZ1LCAyMDIgZG9pIHR1b25nIHBo YW0gdG9pIHRoYW0gbmh1bmcuDQoNClRoZW8gYmFvIGNhbyBjdWEgdGhhbmggcGhvLCB1b2MgaGV0 IHF1eSAyLzIwMDcsIGtob2kgbHVvbmcgdGh1YyBoaWVuIGNhYyBkdSBhbiB0cm9uZyANCmRpZW0g bGEgNzI0IHR5IGRvbmcsIGNoaSBkYXQgMjElIGtlIGhvYWNoLiBHaWEgdHJpIGtob2kgbHVvbmcg dGh1YyBoaWVuIHZhIGdpYWkgbmdhbiB0aGFwIA0KZG8gY29uZyB0YWMgR1BNQiwgdGFpIGRpbmgg Y3UgY29uIG5oaWV1IHZ1b25nIG1hYy4gDQoNClRoZW8ga2UgaG9hY2gsIGNhdSBWaW5oIFR1eSBk dW9jIGdpYW8gMS41NjMgdHkgZG9uZywgbmh1bmcgY2hpIHRodWMgaGllbiBkdW9jIDE0MCB0eSAN CmRvbmcsIGdpYWkgbmdhbiBkdW9jIDk1IHR5IGRvbmc7IGR1b25nIDUga2VvIGRhaSBnaWFpIG5n YW4gZHVvYyA0NS84NTAgdHkgZG9uZyB0aGVvIGtlIA0KaG9hY2guDQoNClRyb25nIGtoaSBkbywg aGFuZyBsb2F0IGR1IGFuIGNoYW0gdGllbiBkbywgY2h1YSBkdW9jIGtob2kgY29uZyBuaHU6IER1 b25nIHZhbmggZGFpIDEgDQpkb2FuIE8gRG9uZyBNYWMgLSBkZSBOZ3V5ZW4gS2hvYWksIE8gQ2hv IER1YSAtIExhbmcgSGE7IGN1bSBjb25nIG5naGllcCBTb2MgU29uIA0KY2h1YSBkdXlldCB4b25n IGR1IGFuIGhhIHRhbmcga3kgdGh1YXQ7IGR1IGFuIEN1YSBvIHBoaWEgbmFtIGNodWEgcGhlIGR1 eWV0IHBodW9uZyANCmFuIGtpZW4gdHJ1Yy4NCg0KVGhhbmggcGhvIGN1bmcgY2hpIHJvLCBuaGll dSBkdSBhbiBraG9uZyBjaGkgY2hhbSBtYSBjbyB0aGUgc2Uga2hvbmcgdGhlIGhvYW4gdGhhbmgg DQp0aWVuIGRvIGRhbmcga3kgdHJvbmcgbmFtIG5heSB0cm9uZyBkbyBjbyBjYXUgVmluaCBUdXks IGNhdSBOaGF0IFRhbiwgZHVvbmcgc2F0IHRoaSANCmRpZW0gTmhvbi1nYSBIYSBOb2kuIA0KDQpO aGlldSBkYWkgYmlldSBjaG8gcmFuZyBjYW4gcGhhaSB4ZW0gbGFpIG5hbmcgbHVjIGN1YSBjYWMg bmhhIHRoYXUgY3VuZyBuaHUgdmllYyBkaWV1IA0KaGFuaCBjdWEgY2FjIGJhbiBxdWFuIGx5IGR1 IGFuLiAiUXVhbiBnaWFpIHBob25nIG1hdCBiYW5nIGR1b25nIGRhbiBsZW4gY2F1IFZpbmggVHV5 IA0KdHUgcmF0IGxhdSwgbmh1bmcgY2hhbmcgdGhheSBuaGEgdGhhdSBsYW0gZ2khIiAtIEJpIHRo dSBRdWFuIHV5IExvbmcgQmllbiBUcmFuIFZhbiANClRoYW5oIG5vaS4NCkN1bmcgdGhlbyBvbmcg VGhhbmgsIGNvbmcgdGFjIHRhaSBkaW5oIGN1IHRhaSBkdSBhbiBkdW9uZyA1IHF1YSBjaGFtLCBr aGllbiBkYW4gcmF0IGJ1YyANCnh1Yy4gVGhlIG5odW5nLCBtb2kgdmllYyBraG9uZyBkdW9jIGJh byBjYW8gZGF5IGR1IGxlbiB0aGFuaCBwaG8uICJQaGFpIGNoaSBybyBjaGFtIA0KdGllbiBkbyB2 aSBzYW8sIGFpIHBoYWkgY2hpdSB0cmFjaCBuaGllbS4gS2hvbmcgdGhlIGNoaSBub2kgY2h1bmcg Y2h1bmciIC0gT25nIFRoYW5oIGtpZW4gbmdoaS4gDQoNCmh0dHA6Ly95a2llbi53b3JkcHJlc3Mu Y29tLzIwMDcvMTAvMTAvdGglQzYlQjAtcGglRTElQkElQTNuLSVFMSVCQSVBM25oLXYlRTElQkIl ODEtY2FjLXYlRTElQkIlOEItbGFuaC1kJUUxJUJBJUExby1jJUUxJUJCJUE3YS10cGhhLW4lRTEl QkIlOTlpLW5ndXklRTElQkIlODVuLXF1JUUxJUJCJTkxYy10cmklRTElQkIlODd1LWQlRTElQkIl OTctaG9hbmctYW4tbGUtcXV5LWRvbi12YS1waCVFMSVCQSVBMW0tcS8gKEJhbyBDQSBUUCBIQ00g OC8xMS8yMDA1KQ0KDQpIYSBOb2k6IER1IGFuIHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQgeHVu ZyBxdWFuaCBIbyBUYXkgLSBUaGF0IHRob2F0IG5oaWV1IHR5IGRvbmcgDQoNCmh0dHA6Ly9lLWlu Zm8uY29tLnZuL3ZuL2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdGFzaz12aWV3JmlkPTIy NjQyJkl0ZW1pZD05OQ0KDQpIYSBOb2k6IEdhbiBuaHUga2hvbmcgY28ga2hhIG5hbmcgdHUgcGhh dCBoaWVuIHRoYW0gbmh1bmcgDQoNCi0gTGFuaCBkYW8gVFAgSGEgTm9pIHRodWEgbmhhbiBtb3Qg dGh1YyB0cmFuZyBjYWMgdnUgdGhhbSBuaHVuZyBiaSBsbyBkaWVuIGhhdSBoZXQgDQpkZXUgZG8g bmd1b2kgZGFuIHZhIGJhbyBjaGkgcGhhbiBhbmgsIHRvIGNhby4gR2FuIG5odSBraG9uZyBjbyB2 aWVjIHR1IHBoYXQgaGllbiANCmN1YSBjYWMgY2FwIHV5IERhbmcgdmEgY28gcXVhbi4NCg0KLSBE ZW4gbmF5ICgyNS8xMi8yMDA5KSB0b2FuIHRoYW5oIHBobyBjbyAyMyBkb24gdmkgZGUgeGF5IHJh IHRoYW0gbmh1bmcsIGRhIHh1IA0KbHkga3kgbHVhdCAyNCBjYW4gYm8sIGNvbmcgY2h1YyB2aSBw aGFtOw0KDQotIFF1YSBnaWFpIHF1eWV0IGtoaWV1IG5haSwgdG8gY2FvIGRhIGtpZW4gbmdoaSB0 aHUgaG9pIGNobyBOaGEgbnVvYyBob24gMzIyIHR5IGRvbmc7DQoNCi0gQ28gY2hlIGN1YSBjaHVu ZyB0YSBsYW0gY2hvIG5oaWV1IG5ndW9pIGdpYXUgbGVuIG1vdCBjYWNoIGJhdCB0aHVvbmc7DQoN Ci0gTGFuZyBwaGkgdHJvbmcgdG8gY2h1YyBob2kgaG9wLCB0byBjaHVjIG5nYXkgbGUsIGRpIHRo YW0gcXVhbiwgaG9jIHRhcCB0cm9uZyBudW9jIHZhIG51b2MgbmdvYWk7DQoNCi0gVGluaCB0cmFu ZyBkZSBkYXQgaG9hbmcgaG9hIHRyb25nIGNhYyBkdSBhbiB0cmVvLCBzdSBkdW5nIGRhdCB2YSBu aGEgc2FpIG11YyBkaWNoLCANCmNobyB0aHVlIHRyYWkgcGhlcCBnYXkgbGFuZyBwaGkgbG9uIGNo dWEgZHVvYyBraGFjIHBodWMgdHJpZXQgZGUuIA0KDQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9t ZS9MYW9Eb25nL3ZuZWNvbm9teS52bi9UcEhDTS12YS1IYS1Ob2ktdHJvbmctVG9wLTIwLXRoYW5o LXBoby1jby1tb2ktdHJ1b25nLWxhbS12aWVjLWtlbS1uaGF0LzI1NDgyMTguZXBpDQoNCkhhIE5v aSB0cm9uZyBUb3AgMjAgdGhhbmggcGhvIGNvIG1vaSB0cnVvbmcgbGFtIHZpZWMga2VtIG5oYXQg DQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFuX2RvY192aWV0LzMw NjM1NC9jaGF0LWx1b25nLXhheS1kdW5nLWtlbS1oZS10aG9uZy10aG9hdC1udW9jLWhvbmcuaHRt IDIyLzAxLzIwMTAgMDc6MzIgDQoNCkhhIE5vaTogQ2hhdCBsdW9uZyB4YXkgZHVuZyBrZW0sIGhl IHRob25nIHRob2F0IG51b2MgaG9uZyAgDQoNCkRvIGNoYXQgbHVvbmcgeGF5IGR1bmcga2VtLCBo ZSB0aG9uZyB0aG9hdCBudW9jIGhvbmcsIGN1IHNhdSBtb2kgdHJhbiBtdWEsIA0KbmhpZXUgbmhh IGNodW5nIGN1IHRhaSBLaHUgdGFpIGRpbmggY3UgNSwzaGEgRGljaCBWb25nIChxdWFuIENhdSBH aWF5KSBsYWkgDQpuZ2FwIHRyb25nIG51b2MgYmFuIHR1IGJlIHBob3QgZGVuaCBsZW4sIG8gbmhp ZW0gbmdoaWVtIHRyb25nLiANCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3MyMC00MDg2Mzcv bGFtLWhldC1jYWNoLWhhLW5vaS12YW4tYmF0LWx1Yy12b2ktbXVhLWxvbi5odG0gMTMvMDcvMjAx MCAtIDE1OjIyDQoNCkhhIE5vaTogTGFtIGhldCBjYWNoLCBIYSBOb2kgdmFuICJiYXQgbHVjIiB2 b2kgbXVhIGxvbiANCg0KR2lhbSBkb2MgU28gWGF5IGR1bmcgSGEgTm9pIERvIFh1YW4gQW5oIGNo byByYW5nLCB0aGFuaCBwaG8gZGEgbGFtIGhldCBuaHVuZyBiaWVuIHBoYXAgY28gdGhlLCBuaHVu ZyBraGEgbmFuZyANCnRob2F0IG51b2MgY3VhIEhhIE5vaSBjbyBiYW4gY2h1YSBkYXAgdW5nIGR1 b2MgdHJhbiBtdWEgbmh1IHNhbmcgbmF5Li4uIG11YSBuaHUgc2FuZyBuYXkuDQoNCmh0dHA6Ly93 d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTAyOS8yMDEwMDcxNDAxMjMzMi5hc3B4 IEFuIE5ndXllbiAxNC8wNy8yMDEwIDE6MjMgDQoNCkhhIE5vaTogSGV0IGNhY2gsIGJvIHRheSB2 b2kgbmdhcA0KICANClRyYSBsb2kgYmFvIGNoaSB2ZSB0aW5oIHRyYW5nIG5nYXAgc2F1IHRyYW4g bXVhIG5nYW4gc2FuZyBxdWEsIG9uZyBHaWFtIGRvYyBDb25nIHR5IA0KdGhvYXQgbnVvYyBIYSBO b2kgcmF0IHRoYXQgdGhhIG1hIHJhbmc6ICJDbyBnaWFvIGNobyBjaHVuZyB0b2kgMS4wMDAtMi4w MDAgdGkgZG9uZywgYmFvIA0KcGhhaSBsYW0gdGhlIG5hbyBkZSBub2kgZG8ga2hvaSBuZ2FwIG1v aSBraGkgbXVhIGxvbiB0aGkgY2h1bmcgdG9pIGN1bmcgY2hpdSIuIA0KQmVuIGhhbmggbGFuZyBr eSBob3AgSERORCBUUCBIYSBOb2kgc2FuZyBxdWEsIEdpYW0gZG9jIFNvIFhheSBkdW5nLCBjbyBx dWFuIGNodSANCnF1YW4gY3VhIENvbmcgdHkgdGhvYXQgbnVvYyBjdW5nIHRodWEgbmhhbiwgZGEg bGFtIGhldCBjYWMgYmllbiBwaGFwIGNvIHRoZSBtYSBIYSBOb2kgDQp2YW4gbmdhcC4gRGlldSBu YXkgdGhlIGhpZW4gc3UgYmUgdGFjIGN1YSBjbyBxdWFuIGNodWMgbmFuZyBIYSBOb2kgdHJ1b2Mg dmllYyBnaWFpIA0KcXV5ZXQgdHJ1YyB0aWVwIHRpbmggdHJhbmcgdW5nIG5nYXAgY3VhIFRQLg0K DQpIYSBOb2kgbGEgVFAgZGF1IHRpZW4gY3VhIGNhIG51b2MgdmF5IHZvbiBudW9jIG5nb2FpICho YW5nIHRyYW0gdHJpZXUgVVNEKSBkZSB0aHVjIA0KaGllbiBtb3QgZHUgYW4gY2hvbmcgbmdhcCBy YXQgaG9hbmggdHJhbmcuIFZhbyB0aG9pIGRpZW0gYmF0IGRhdSB0aHVjIGhpZW4gZHUgYW4gbmF5 IA0KKG5hbSAxOTk1KSwgbGFuaCBkYW8gVFAga2hpIGRvIHR1eWVuIGJvIHJhbmcgc2UgInhvYSBu Z2FwIiB2YW8gbmFtIDIwMDAuIE5odW5nIHRyZW4gDQp0aHVjIHRlLCAiYmFuIGRvIGRlbiIgdmUg bmh1bmcgZGllbSBuZ2FwIGRhIGR1b2MgeGFjIGxhcCB0dSBsYXUgdmEgc2F1IG5oaWV1IG5hbSBu byANCnZhbiBjb24gbmd1eWVuIG5odSB2YXksIHRoYW0gY2hpIHRpbmggdHJhbmcgbmdhcCBjdWMg Ym8gdGFpIG1vdCBzbyBraHUgdnVjIChkYWMgYmlldCBsYSANCmtodSBkbyB0aGkgbW9pKSBjb24g dHJvIG5lbiBuYW5nIG5lIGhvbi4gDQoNCkR1IGFuIHRob2F0IG51b2MgSGEgTm9pIHZvaSB0b25n IG11YyBkYXUgdHUgY2EgMiBnaWFpIGRvYW4gbGEgNTUwIHRyaWV1IFVTRCwgZHUga2llbiBzZSAN CmhvYW4gdGhhbmggdmFvIG5hbSAyMDEzLCBjaHUgeWV1IHRhcCB0cnVuZyB2YW8gdmllYyBuYW8g dmV0IGNhYyBjb24gc29uZywgaG8gdHJvbmcgbm9pIA0KdGhhbmgsIG5hbmcgY29uZyBzdWF0IHRy YW0gYm9tIFllbiBTby4uLiBOaHVuZyB2YW4gZGUgbGEgZHUgYW4gbmF5IHRodWMgaGllbiB0cmVu IGNvIA0Kc28gcXV5IGhvYWNoIHRob2F0IG51b2Mgbm9pIGRvIGRvIENvIHF1YW4gaG9wIHRhYyBx dW9jIHRlIE5oYXQgQmFuIChKSUNBKSBnaXVwIEhhIA0KTm9pIGxhcCBuYW0gMTk5NS4gVHJvbmcg a2hpLCB0dSBkbyBkZW4gbmF5IHF1eSBob2FjaCBkbyB0aGkgSGEgTm9pIGRhIG5oaWV1IGxhbiBk aWV1IA0KY2hpbmggbmh1bmcgcXV5IGhvYWNoIGhlIHRob25nIHRob2F0IG51b2MgdGhpIGtob25n LiANCg0KRG9uIGdpYW4gbmhhdCBsYSwgdHJ1b2MgZGF5LCBIYSBOb2kgZGluaCBodW9uZyBwaGF0 IHRyaWVuIHZlIHBoaWEgYmFjIG5odW5nIGhpZW4gbmF5IGRhIA0KcGhhdCB0cmllbiB2ZSBwaGlh IHRheSAodmEgY29uIG1vIHJvbmcgcmEgdGluaCBIYSBUYXkgY3UpLCB0cm9uZyBraGkgZHUgYW4g dGhvYXQgbnVvYyAoa2V0IA0KdGh1YyBnaWFpIGRvYW4gMSkgY2hpIGdpb2kgaGFuIGJvaSBzb25n IFRvIExpY2ggdmEgc29uZyBIb25nLiBTZSBuaGlldSBuZ3VvaSBnaWF0IG1pbmggDQpraGkgYmll dCByYW5nLCBjYWMga2h1IGRvIHRoaSBtb2kgbmh1IE15IERpbmgsIFRydW5nIEhvYSAtIE5oYW4g Q2hpbmgsIERpbmggQ29uZywgDQpMaW5oIERhbSBraG9uZyBoZSBuYW0gdHJvbmcgcXV5IGhvYWNo IHRob2F0IG51b2MgaGllbiB0YWkgY3VhIEhhIE5vaS4gTmV1IHRpZXAgdHVjIHF1eSBob2FjaCAN CnZhIHBoYXQgdHJpZW4gZG8gdGhpIHRoZW8ga2lldSBtYW5oIGFpIG5heSBsYW0sIGtob25nIHRp bmggdG9hbiBkZW4ga2hvcCBub2kgDQpoYSB0YW5nIGNodW5nIHRoaSB0aW5oIHRyYW5nIG5nYXAg dW5nIHNlIGtob25nIGJhbyBnaW8gZHVvYyBnaWFpIHF1eWV0Lg0KDQpTdSBwaGF0IHRyaWVuIHF1 YSBtdWMgY3VhIG1vdCBkbyB0aGkgbmVuIHRyb25nIGtoaSBoZSB0aG9uZyBoYSB0YW5nIGtob25n IHR1b25nIHh1bmcgDQpjdW5nIGRhbmcgZGF5IEhhIE5vaSB2YW8gYmUgdGFjLiBLaHUgcGhvIFBo YXAgY28gaG9uIDEuMDAwIGhhIG5odW5nIGR1b25nIGNvbmcgDQpkdW9jIHF1eSBob2FjaCB0b2kg NzQga20sIHRyb25nIGtoaSBkaWVuIHRpY2ggdHUgbmhpZW4gKGN1YSByaWVuZyBIYSBOb2kgY3Up IGxhIDkyLjIwMCANCmhhICh0YW5nIDkyIGxhbikgbmh1bmcgY2hpZXUgZGFpIGhlIHRob25nIG9u ZyBjb25nIGN1bmcgY2hpIGNvIDYzNCBrbSAodGFuZyA4LDUgbGFuKS4gDQpOb2kgZGlldSBuYXkg ZGUgdGhheSByYW5nLCBIYSBOb2kgY28gZG8gdGllbiBuaGlldSBob24gbnVhIHZhbyAiY2FpIHRh byBoZSB0aG9uZyB0aG9hdCANCm51b2MiIHRoaSB2YW4ga2hvbmcgdGhlIGhldCBuZ2FwLiANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzEzMTAw MTAyLmFzcHgxMy8wNy8yMDEwIDEwOjAxDQoNCkhhIE5vaTogTXVhIGxvbiwgZHVvbmcgcGhvIEhh IE5vaSBiaWVuIHRoYW5oIHNvbmcgDQoNCmh0dHA6Ly93d3cudmlldG5hbXBsdXMudm4vSG9tZS9O b20tbm9wLW5odW5nLWFuLWhvYS1raGktSGEtTm9pLWJpZW4tdGhhbmgtc29uZy8yMDEwNy81MjUw Ni52bnBsdXMgDQoNCkhhIE5vaTogQ2FpIHZvbmcgbHVhbiBxdWFuIC0gTXVhIGxvbiCWIG5nYXAg bHV0IJYgdGFjIGR1b25nIC0gdGFpIG5hbiANCg0KaHR0cDovL3R1b2l0cmUudm4vQ2hpbmgtdHJp LVhhLWhvaS8zODk5MDEvTXVhLWxvbi1IYS1Ob2ktbmdhcC1uYW5nLmh0bWwgMTMvMDcvMjAxMCwg MjE6MTIgKEdNVCs3KSANCg0KSGEgTm9pOiBNdWEgbG9uIGdheSBuZ2FwLCBiYSBuZ3VvaSBjaGV0 IHZpIGRpZW4gZ2lhdCANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pL2RvdGhpLzIw MDkvMDcvODYwMjI2LyAwNzoyOCwgMjcvMDcvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogWG90IHhh IGhvIEhhIE5vaSAnbWF0IHRpY2gnIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kv MjAxMDAxL0Nob25nLW1hdC12b2ktdG9jLWRvLWJ1Yy10dS1oby1vLUhhLU5vaS04OTAzMzQvIDEx OjAzLCAxOS8wMS8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBDaG9uZyBtYXQgdm9pIHRvYyBkbyBi dWMgdHUgaG8gbyBIYSBOb2ksIDY1JSBkaWVuIHRpY2ggc29uZyBobyBvIEhhIE5vaSBkYSBiaSBs YXAuIE1vdCBjb24gc28gZGF1IGxvbmcuIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9DdW9p LzIwMTAvMDcvM0JBMUUwODAvIFRyYW4gQ2hpIEhpZXUgMTMvNy8yMDEwLCAxNjo1NiBHTVQrNyAN Cg0KSGEgTm9pOiBEaWVwIGtodWMgZGFuIGdpYW4gIkVtIGRpIGJvaSB0aHV5ZW4gdHJlbiBwaG8g RGFpIExhIiANCg0KIkVtIGRpIGJvaSB0aHV5ZW4sIHRyZW4gcGhvIERhaSBMYS4gDQpYdW5nIHF1 YW5oIG51b2MgbmdhcCB0YW4gZGVuIGx1bmcgbmhhDQpUYW5oIG11YSBtYSB2YW4gbmdhcCwgcGhv IHRyb25nIG5odSBzb25nIA0KTmdheSBtYWkgdHJvaSBtdWEgbGFpLCBudW9jIGxlbiBtZW5oIG1v bmcgIA0KQ2FjIGJhbiBlbSBydSBuaGF1IHJhIGRheSBkdWEgdGh1eWVuIA0KVnVpIHF1YSBiYW4g b2ksIG1haSBlbSBsYWkgcmEgZGF5IGVtIGJvaS4iIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20v dG9uZ19jdWNfY2FuaF9zYXRfeGVtX3hldF9raG9pX3RvX3Z1X2FuXzlfY2FuX2JvX2RhbmhfYmFj LTYtMTI1MDQ1Lmh0bWwgTi5WLkMgMjEvMDgvMjAwNyAtIDA3OjQ2IA0KDQpIYSBOb2k6IDkgY2Fu IGJvIFRvbmcgY29uZyB0eSBkYXUgdHUgdmEgcGhhdCB0cmllbiBuaGEgSGEgTm9pIGJpIGJhdCB2 aSBkYW5oIGJhYyANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5lbC8xOTg3LzIwMTAwNy9EaS1s YWMtZHVvbmctSGEtTm9pLWJlLWdhaS0xNC10dW9pLWJpLWhpZXAtZGFtLTE3NTkyNDIvIDE2LzA3 LzIwMTAgMTE6NDM6NTIgDQoNCkhhIE5vaTogTGFjIGR1b25nIEhhIE5vaSwgYmUgZ2FpIDE0IHR1 b2kgYmkgaGllcCBkYW0gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC9IaW5o LXN1LzIwMDQvMDMvM0I5RDA0QjUvIDQvMy8yMDA0LCAwNDozOSBHTVQrNyANCg0KSGEgTm9pOiAx MSB0aGFuaCBuaWVuIGhpZXAgZGFtIDIgYmUgZ2FpDQoNClNhdSBraGkgbGFuZyB0aGFuZyBzdW90 IGJ1b2kgdG9pIHRyZW4gZHVvbmcsIDExIHRoYW5oIG5pZW4gbyBodXllbiBTb2MgU29uLCBIYSBO b2ksIHR1b2kgDQp0dSAxNSBkZW4gMTcsIGJhdCBnYXAgNSBiZSBnYWkgZGkgaG9jIHZlLiBDaHVu ZyBkdW9pIHRoZW8gYmF0IGdpdSBkdW9jIDIgYmUsIHJvaSB0aGF5IG5oYXUgDQp0aHVjIGhpZW4g aGFuaCB2aSBkb2kgYmFpIG5nYXkgYmVuIHZlIGR1b25nLiANCg0KaHR0cDovL3ZpZXRiYW8udm4v QW4tbmluaC1QaGFwLWx1YXQvSGEtTm9pLU1vdC12dS1naWV0LW5ndW9pLWRhLW1hbi10cm9uZy1u aGEtbmdoaS8xMDc0MDYzMi8zMDEvIDI3LzkvMjAwMSwgMDk6MzUgR01UKzcNCg0KSGEgTm9pOiBH aWV0IG5ndW9pIGRhIG1hbiB0cm9uZyBuaGEgbmdoaSANCg0KaHR0cDovL3d3dy5raG9haG9jLmNv bS52bi9kb2lzb25nL21vaS10cnVvbmcvdGhhbS1ob2EvMTM1MDdfSGEtTm9pLU8tbmhpZW0ta2hv bmcta2hpLW11YS1kb25nLWNhby1ob24tbXVhLWhlLmFzcHggMTBoMTYnIDE2LzAzLzIwMDcNCg0K SGEgTm9pOiBPIG5oaWVtIGtob25nIGtoaSBuZ2hpZW0gdHJvbmcgDQoNCmh0dHA6Ly93d3cubGFv ZG9uZy5jb20udm4vVGluLVR1Yy9IYS1Ob2ktLW8tbmhpZW0ta2hvbmcta2hpLW8tbXVjLWJhby1k b25nLzEyNjIwIFRodSBCYXksIDExLjkuMjAxMCB8IDIyOjU0IChHTVQgKyA3KSANCg0KSGEgTm9p IG8gbmhpZW0ga2hvbmcga2hpIG8gbXVjIGJhbyBkb25nIA0KDQogKExETykgIJYgSG9pIHRoYW8g TyBuaGllbSBraG9uZyBraGksIGJpZW4gZG9pIGtoaSBoYXUgdmEgdGFjIGRvbmcgc3VjIGtob2Ug dGFpIFZpZXQgDQpOYW0gZG8gTWFuZyBsdW9pIGtob25nIGtoaSBzYWNoIFZpZXQgTmFtIHBob2kg aG9wIHZvaSBjYWMgZG9uIHZpIHRvIGNodWMgbmdheSAxMS85IA0KZGEgZHVhIHJhIGNhbmggYmFv IHZlIG8gbmhpZW0gbW9pIHRydW9uZyBkYWMgYmlldCBsYSBvIG5oaWVtIGJ1aSB0YWkgY2FjIGRv IHRoaS4NCg0KVGFpICBIYSBOb2ksIFRQIEhvIENoaSBNaW5oIG8gbmhpZW0ga2hvbmcga2hpLCBj aGF0IHRoYWkgcmFuLCBudW9jIHRoYWkgZGEgdG9pIG11YyBkYW5nIGJhbyBkb25nLg0KDQpUaGVv IFNvIFRhaSBuZ3V5ZW4gdmEgTW9pIHRydW9uZyBIYSBOb2ksIGtob25nIGtoaSBvIGhhdSBoZXQg Y2FjIGtodSB2dWMgZGFuIGN1IG5vaSANCmRvIGRldSBiaSBvIG5oaWVtLiBEYWMgYmlldCwgY2Fj IGtodSB2dWMgbmh1IGR1b25nIEtodWF0IER1eSBUaWVuLCBRdW9jIGxvIDMyLCBkdW9uZyANCk5n dXllbiBUcmFpLi4uIG8gbmhpZW0gYnVpIGRhbmcgbyBtdWMgY2FvIG5oYXQgSGEgTm9pIHZhIHh1 IGh1b25nIG5nYXkgY2FuZyBnaWEgdGFuZy4NCg0KQ2FjIGtodSB2dWMgbmdhIHR1IGNvIG1hdCBk byB4ZSBsdXUgdGhvbmcgY2FvLCBub25nIGRvIGJ1aSBjdW5nIHZ1b3QgcXV5IGNodWFuIGNobyAN CnBoZXAuIEtldCBxdWEgcXVhbiB0cmFjIGJ1aSBnaWFvIHRob25nIGNobyB0aGF5IHRhaSAyNTAg ZGllbSBkbyBraWVtLCBjbyAxODAgZGllbSBjbyANCmhhbSBsdW9uZyBidWkgbG8gbHVuZyB2dW90 IHF1eSBjaHVhbi4NCg0KTm9uZyBkbyBidWkgdGFpIFRQIEhvIENoaSBNaW5oIGN1bmcgY28geHUg aHVvbmcgbmdheSBjYW5nIGdpYSB0YW5nIHZhIHZ1b3QgdHUgMSwwOCCWIA0KMSw1NSBsYW4gc28g dm9pIHRpZXUgY2h1YW4gY2hvIHBoZXAuIE8gbmhpZW0ga2hvbmcga2hpIHRhaSBLaHUgY29uZyBu Z2hpZXAgY2hpZW0gNDAlIA0Kbmd1eWVuIG5oYW4gZ2F5IG8gbmhpZW0gbW9pIHRydW9uZy4gSGll biAgNSB0aW5oIGxhIFRQLiBIYSBOb2ksIFRQLiBIbyBDaGkgTWluaCwgDQpCaW5oIER1b25nLCBE b25nIE5haSwgSGFpIFBob25nIGNoaXUgYW5oIGh1b25nIG5hbmcgbmUgbmhhdCBjdWEgbyBuaGll bSBraG9uZyBraGkgDQpkbyBjYWMgaG9hdCBkb25nIGNvbmcgbmdoaWVwLg0KDQpodHRwOi8vd3d3 Lmtob2Fob2MuY29tLnZuL2RvaXNvbmcvbW9pLXRydW9uZy90aGFtLWhvYS8xMzM2MF9IYS1Ob2kt QnVpLWxvLWx1bmctY2FvLWdhcC0yLTUtbGFuLW11Yy1jaG8tcGhlcC5hc3B4IDA4aDM4JyAxMS8w My8yMDA3IFRoZW8gVFRYVk4NCg0KSGEgTm9pOiBCdWkgbG8gbHVuZyBjYW8gZ2FwIDIsNSBsYW4g bXVjIGNobyBwaGVwDQoNCk11YyBkbyBvIG5oaWVtIGJvaSBidWkgbG8gbHVuZyBjaHVuZyBjaG8g Y2EgaGFpIG11YSBvIEhhIE5vaSBjYW8gaG9uIHRpZXUgY2h1YW4gY2hvIA0KcGhlcCBsYSAyLDUg bGFuLiBOb25nIGRvIGJ1aSBtaW4gY2hpZW0gdGkgbGUgY2FvIGxhIDYzJS4gVGh1YyB0cmFuZyBu YXkgZGEga2VvIHRoZW8gbW90IA0Kc28gYmVuaCBsaWVuIHF1YW4gZGVuIGR1b25nIGhvIGhhcCB0 YW5nIGNhby4gDQoNCkNvbiBzbyB0cmVuIHZ1YSBkdW9jIGNvbmcgYm8gc2FuZyBuYXkgdGFpIG1v dCBob2kgdGhhbyBvIEhhIE5vaS4gSG9pIHRoYW8gY28gY2h1IGRlIA0KIkdvYyBuaGluIGJhbyBj aGkgdmUgY2hhdCBsdW9uZyBraG9uZyBraGkgSGEgTm9pIiBkbyBjaHVvbmcgdHJpbmgga2hvbmcg a2hpIHNhY2ggDQoiVmlldCBOYW0tIFRodXkgU2kiIChTVkNBVCkgcGhvaSBob3Agdm9pIEN1YyBC YW8gdmUgbW9pIHRydW9uZyAoIEJvIFRhaSBuZ3V5ZW4gDQpNb2kgdHJ1b25nKSB0byBjaHVjLiAN Cg0KVGhlbyBraGFvIHNhdCBjdWEgZHUgYW4sIHRyb25nIG5ob21uaHVuZyBuZ3VvaSBjbyB0aG9p IGdpYW4gc29uZyBvIEhhIE5vaSB0cmVuIDEwIG5hbSANCmNvIHRpIGxlIG1hYyBiZW5oIG1hbiB0 aW5oIHZlIHRhaSBtdWkgaG9uZyBsYSAyNCw1ICU7IGR1b2kgMyBuYW0gbGEgMTIuNSUuDQoNClRo ZW8gY2FjIGNodXllbiBnaWEsIG1vdCB0cm9uZyBuaHVuZyBuZ3V5ZW4gbmhhbiBjbyBiYW4gZGFu IGRlbiB0aW5oIHRyYW5nIG8gbmhpZW0gDQptb2kgdHJ1b25nIGxhIHN1IGJvIHRyaSBjb25nIG5n aGllcCBjaHVhIGhvcCBseS4gTmdvYWkgcmEsIGhlIHRob25nIGdpYW8gdGhvbmcgZG8gdGhpIA0K a2VtLCBzdSBnaWEgdGFuZyBjYWMgcGh1b25nIHRpZW4gdmEgY2hhdCBsdW9uZyBjdWEgY2FjIHBo dW9uZyB0aWVuIHRoYW0gZ2lhIGdpYW8gDQp0aG9uZy4uLiBjdW5nIGxhIG5odW5nIHRhYyBuaGFu IGdheSByYSBvIG5oaWVtIG1vaSB0cnVvbmcgSGEgTm9pLg0KDQpodHRwOi8vd3d3LnZpZXRuYW1u ZXQudm4veGFob2kvMjAwOTEwL0x1YS1jaGF5LW5ndXQtdHJvaS10YWkteHVvbmctc29uLXZhLWhv YS1jaGF0LTg3MjA1Ny8gMDUvMTAvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogTmhpZXUgY29uZyB0 eSBoaWVuIG5heSBjaHVhIGRhbSBiYW8gZHUgZGlldSBraWVuIHZlIGFuIHRvYW4gcGhvbmcgY2hh eSBjaHVhIGNoYXkgDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL0NoYXkteHVvbmctZ2lh eS10aGlldC1oYWktaGFuZy1jaHVjLXRpLWRvbmcvMTQxLzU1NTI5NTMuZXBpIDE0LTEtMjAxMSAN Cg0KSGEgTm9pOiBDaGF5IHh1b25nIGdpYXksIHRoaWV0IGhhaSBoYW5nIGNodWMgdGkgZG9uZyAg DQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA5MTAvTHVhLWNoYXktbmd1dC10 cm9pLXRhaS14dW9uZy1zb24tdmEtaG9hLWNoYXQtODcyMDU3LyAwNS8xMC8yMDA5IChHTVQrNykN Cg0KSGEgTm9pOiBDaGF5IGxvbiB0aGlldSBydWkgeHVvbmcgaG9hIGNoYXQgcm9uZyAzaGEgIA0K DQpodHRwOi8vd3d3LmJhb21vaS5jb20vSG9tZS9LaW5oVGUvd3d3Lmt0ZHQuY29tLnZuL0Jhbi1n aWFvLTItY2hvLWRhdS1tb2ktRGVuLUx1LXZhLUhhaS1Cb2ktdmUtVEN0eS1UaHVvbmctbWFpLUhh LU5vaS8xMjgxNzg5LmVwaSAwMi8wMS8yMDA4DQoNCkhhIE5vaTogQ2hvIEhhaSBCb2kgKERvbmcg QW5oIC0gSGEgTm9pKSBob2F0IGRvbmcgaGlldSBxdWEgdGhhcCB2YSBraG9uZyBkYXQgbXVjIGRp Y2gsIA0KbmFtIDIwMDUsIFRQIGRhIGdpYW8gY2hvIFRDdHkgRGV0IE1heSBWaWV0IE5hbSBkYXUg dHUsIHhheSBkdW5nIGNodXllbiBjaG8gbmF5IHRoYW5oIA0KVHJ1bmcgdGFtIGJhbiBidW9uIHBo dSBraWVuIG1heSBtYWMsIG5odW5nIGtob25nIHRodWMgaGllbiBkdW9jIHZpIGtob25nIHhheSBk dW5nIGR1b2MgDQpuaGEgY2FvIHRhbmcgZG8gdnVvbmcgaGFuaCBsYW5nIGFuIHRvYW4gZHVvbmcg c2F0LiANCg0KVHUgbmdheSAxLzEvMjAwOCBjaG8gSGFpIEJvaSBsYWkgZHVvYyBnaWFvIGNobyBU Q3R5IFRodW9uZyBtYWkgSGEgTm9pIHF1YW4gbHkuDQoNCmh0dHA6Ly90aW50dWMudGltbmhhbmgu Y29tL3hhLWhvaS8yMDA5MDMxMC8zNUE5MENBRS9IYS1Ob2ktS2hhcC1ub2ktdGhhbmgtbmhhLXZl LXNpbmgtY29uZy1jb25nLmh0bQ0KDQpIYSBOb2k6IHJhdCBuaGlldSBkaWEgZGllbSBjb25nIGNv bmcgYmkgY29pIG5odSBuaGEgdmUgc2luaCwgZG8gbGEgbyBjYWMgY2hhbiBjYXUsIA0KY2FjIGdv YyBraHVhdCB0cmVuIHBoby4gVGhhbSBjaGkgY2EgZ29jIHBobyBUcmFuIEh1bmcgRGFvIC0gRGEg VHVvbmcgbm9pIGRvbmcgbmd1b2kgDQpxdWEgbGFpIHZhbiBiaSBiaWVuIHRoYW5oIG5vaSAidHJ1 dCBub2kgYnVvbiIgDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAwMi8yOC1UZXQt Y29uZy1uaGFuLW5oaW4tZG9pLXNvaS1zdW5nLXN1Yy1kaS1kb2ktbm8tODk0Mjc3LyAxODoyOCwg MTEvMDIvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogMjggVGV0LCBjb25nIG5oYW4gbmhpbiBkb2ks IHNvaSBzdW5nIHN1YyBkaSBkb2kgbm8gdGllbiBsdW9uZyAtIGNvbmcgdHJpbmggdHJ1IHNvIGxh bSB2aWVjIFRoYW5oIHV5IJYgSERORCCWIFVCTkQgcXVhbiBIYSBEb25nLCBUUCBIYSBOb2kNCg0K aHR0cDovL3d3dy5waGFwbHVhdHZuLnZuL3BoYXBkaW5oLzIwMTAxMC9Nb3QteGFjLWNoZXQtbmFt LW5vaS10cmVuLWhvLUhvYW5nLUNhdS0yMDA2NDU3LyAxMDozNCAwMi8xMC8yMDEwIChHTVQrNykN Cg0KSGEgTm9pOiBLaW5oIGhvYW5nIG1vdCB4YWMgY2hldCBub2kgdHJlbiBtYXQgaG8gSG9hbmcg Q2F1IA0KDQpodHRwOi8vd2lraW1hcGlhLm9yZy80NDI2MjI3L3ZpL1QlQzMlQjJhLW5oJUMzJUEw LUglQzMlQTBtLWMlQzMlQTEtbSVFMSVCQSVBRHANCg0KSGEgTm9pOiBUb2EgbmhhICJIYW0gY2Eg bWFwIiAtIE1vdCBub2kgY28ga2llbiB0cnVjIHhhdSBuaGF0IEhhIE5vaQ0KDQpDb25nIHRyaW5o IG5heSBsYSBzdSAia2V0IGhvcCBzYWkgZ2lheSBwaGVwIChOaGEgeGUgZGllbiBjdSkgdmEga2hv bmcgZ2lheSBwaGVwIChCYWNoIGhvYSBCbyBIbykiDQpUaHUgdHVvbmcgQ2hpbmggcGh1IGRhIHJh IHRob25nIGJhbyBzbyA2NC9UQiBuZ2F5IDE5LzgvMTk5NjogIllldSBjYXUgVUJORCBUUCBIYSBO b2kgDQp4dSBseSBuZ2hpZW0ga2hhYyBkb2kgdm9pIGNodSBkYXUgdHUgY29uZyB0cmluaCBuYXks IHRoaWV0IGxhcCBsYWkga3kgY3VvbmcgcXVhbiBseSAgDQp4YXkgZHVuZyB0aGFuaCBwaG8sIGJ1 b2MgY2h1IGRhdSB0dSBwaGFpIHN1YSBraWVuIHRydWMgY29uZyB0cmluaCAodmUgaGluaCBraG9p IHZhIA0KY2hpZXUgY2FvIGNobyBwaHUgaG9wIGNhbmggcXVhbiBjaHVuZykuIFh1IGx5IGhhbmgg Y2hpbmggaG9hYyB0cnV5IHRvIHRydW9jIHBoYXAgbHVhdCANCm5ldSB0aGF5IGNhbiB0aGlldCBk ZSBkZSBjYW8ga3kgY3VvbmcgdHJhdCB0dSIuDQpUaGUgcm9pIGhhaSBuYW0gIHNhdSwgbm8gdmFu IG5nYW5nIG5oaWVuIG5oZSByYW5nIG5hbSBkbyBraG9uZyBoZSBoYW4gZ2khIA0KDQpodHRwOi8v d3d3Lmxhb2RvbmcuY29tLnZuL1Rpbi1UdWMvRGEtTmFuZy1sYW0tZHVvYy10YWktc2FvLUhhLU5v aS1sYWktYm8tdGF5LzI0NTMwIDEwLjEyLjIwMTAgMDg6MTIgKEdNVCArIDcpIA0KDQpIYSBOb2k6 IEJvIHRheSB2b2kgbmhhIHNpZXUgbW9uZywgc2lldSBtZW8sIHh1YXQgaGllbiBraGFwIGNhYyB0 dXllbiBkdW9uZyB0aHUgZG8gDQoNCk5nYXkgOS4xMiwgcGhpZW4gY2hhdCB2YW4ga3kgaG9wIEhE TkQgVFAuSGEgTm9pIHRpZXAgdHVjICJub25nIiB2b2kgdmFuIGRlIGR1b2MgDQpkZSBjYXAga2hh IGN1LCBkbyBsYSB2aWVjIHhheSBkdW5nIGNhYyB0dXllbiBwaG8gbW9pIGhhaSBiZW4gZHVvbmcs IGtoaSBxdXkgaG9hY2ggeGF5IA0KZHVuZyBjYWMgdHV5ZW4gZHVvbmcgbW9pLiBTYXUgMTAgbmFt IHRodWMgaGllbiBuZ2hpIHF1eWV0LCB2b2kgZGF5IGR1IHZhbiBiYW4gcGhhcCANCmx5LCBzb25n IG5oYSBzaWV1IG1vbmcsIHNpZXUgbWVvIHh1YXQgaGllbiBraGFwIGNhYyB0dXllbiBkdW9uZyB0 aHUgZG8uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOS8wOS84NjcxMzEv IDExOjA2LCAwNi8wOS8yMDA5IChHTVQrNykNCg0KSGEgTm9pOiBTbyBkbyB2YW4gdHJvbmcgdGF5 IDQ3IGhvLCBjaGluaCBxdXllbiBiYW8gZGEgdGh1DQoNCiJTbyBkbyB2YW4gbyB0cm9uZyB0YXkg Y2FjIGhvIGRhbiwgbmh1bmcgY2hpbmggcXV5ZW4gbGFpIG5vaSBsYSBkYSBjbyBxdXlldCBkaW5o IHRodSBob2kgc28gZG8gbGF1IHJvaT8gQmEgY29uIHRlIG5ndWEsIHZpIGtob25nIGFpIGJpZXQg Y2h1eWVuIG5heSEiLiANCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vdGhvaS1zdS81MTAxNTYv c2FpLXBoYW0tZGF0LWRhaS1vLWhvYWktZHVjLS1xdWFuLXhhLWRpLXRydW9jLmh0bWwgTmd1eWVu IFR1YW4gMDc6MjAgMTkvMDgvMjAxMCANCg0KSGEgTm9pOiBTYWkgcGhhbSBkYXQgZGFpIG5naGll bSB0cm9uZyBvIEhvYWkgRHVjIC0gUXVhbiB4YSBkaSB0cnVvYy4uLg0KDQpUUCAtIFF1YW4geGEg bGFtIHRyYWkgcGhhcCBsdWF0IGRhdCBkYWkga2hpZW4gbmhpZXUgaG8gZGFuIGR1YSB0aGVvIGJp ZW4gaGFuZyBjaHVjIGhlYyB0YSBkYXQgbm9uZyBuZ2hpZXAsIGRhdCBjb25nIHZhIGNhIGRhdCBk ZSB0aGFuaCBuaGEga2llbiBjbyB2YSBiaWV0IHRodS4NCg0KKEFuaDogTmdvaSBuaGEgbmF5IHZ1 YSBtb2MgbGVuIHRhaSBEb2MgVGh1b25nIEtodSBkYXQgbm9uZyBuZ2hpZXAgdGh1b2MgcXV5IGRh dCBDb25nIGN1YSB4YSBTb25nIFBodW9uZyAuIEFuaDogSC5QKSANCg0KVnUgdmllYyB4YXkgcmEg byB4YSBTb25nIFBodW9uZyAoSG9haSBEdWMsIEhhIE5vaSkuIERpZW4gaGluaCBsYSB2dSBiYW4g ZGF0IG5vbmcgDQpuZ2hpZXAgdHJhaSBwaGVwIHZ1bmcgRG9jIFRodW9uZyBjaG8gMTggaG8gZGFu IHZvaSBkaWVuIHRpY2ggZ2FuIDQuMDAwIG0yIHRodW9jIHF1eSANCmRhdCBkbyB0YXAgdGhlIHF1 YW4gbHkuDQoNCk1vdCB0cm9uZyBuaHVuZyBuZ3VvaSBwaGF0IGhpZW4sIHRvIGNhbyB2dSB2aWVj IGxhIG9uZyBWdW9uZyBUaGUgRG8gKHRob24gUGh1b25nIA0KQmFuKSwgY2hvIGJpZXQ6ICJEaWVu IHRpY2ggZGF0IG5vbmcgbmdoaWVwIGJhbiBjaG8gbmh1bmcgaG8gZGFuIG5heSBkYSBiaSB4YXkg ZHVuZyB0cmFpIA0KcGhlcCwgbmhpZXUgaG8gbGFtIG5oYSBraWVuIGNvIHRyb25nIGRvIGNvIGNh IG1vdCBuZ29pIG5oYSBkbyBzbyAzIHRhbmcga2lldSBiaWV0IHRodSANCmN1YSBtb3QgY2FuIGJv IGh1eWVuIEhvYWkgRHVjIi4NCg0KVGhlbyBvbmcgRG8sIHRyb25nIHNvIG5odW5nIG5ndW9pIGR1 b2MgbXVhIGRhdCBvIERvYyBUaHVvbmcgY28gY2EgQ2h1IG5oaWVtIHZhIA0Kbmd1eWVuIENodSBu aGllbSBIVFggUGh1b25nIFZpZW4gdmEgQ2h1IHRpY2ggeGEgTHV1IERpbmggVGFtLiANCg0KTGFt IHZpZWMgdm9pIFRpZW4gUGhvbmcsIG9uZyBMdXUgRGluaCBUYW0gdGh1YSBuaGFuIG5ndW9uIGdv YyBkYXQgdGFpIERvYyBUaHVvbmcgDQpsYSBkYXQgbm9uZyBuZ2hpZXAgKHRodW9jIHF1eSBkYXQg Y29uZykuIFRoZSBuaHVuZywgb25nIFRhbSBjaG8gcmFuZyB4YSBraG9uZyAiYmFuIiANCmRhdCBt YSBjaGkgY28gY2h1IHRydW9uZyBkYXUgdGhhdSBjaG8gdGh1ZSBkYXQgMTIwbTIvIG1vaSBobywg dGhvaSBoYW4gMTAgbmFtLiANClZpZWMgY2hvIHRodWUgMTAgbmFtIGxhIHNhaSwgbmh1bmcgZGF5 IGxhIGNodSB0cnVvbmcgY3VhIHRhcCB0aGUgVXkgYmFuIHhhLCB2YSBjdW5nIGxhIHZpIA0KcXV5 ZW4gbG9pIG5ndW9pIGRhbiBjaHUga2hvbmcgY28gYWkgdHUgbG9pIGdpLiANCg0KVHJvbmcgbHVj IG9uZyBUYW0gZGFuIGNodW5nIHRvaSBtdWMgc28gdGhpIG5nb2kgbmhhIDMgdGFuZyBkbyBzbyBt b2MgZ2l1YSBraHUgcnVvbmcgDQpEb2MgVGh1b25nLCBtb3Qgbmd1b2kgZGFuIGRhIGNoaSBjaG8g Y2h1bmcgdG9pIG1vdCBsbyBkYXQgY3VhIGNoaW5oIG9uZyBUYW0gbmFtIA0KbmdheSBjYW5oIG5n b2kgbmhhIGRvLiANCg0KVGhheSBxdWFuIGNodWMgbGFtIGR1b2MsIGhhbmcgY2h1YyBobyBraGFj IGN1bmcgZHVhIG5oYXUgeGF5IGR1bmcgY29uZyB0cmluaCwgbmhhIA0KeHVvbmcgdHJlbiBkYXQg bm9uZyBuZ2hpZXAsIGdhbiBrZSB0cnUgc28geGEgbWEga2hvbmcgYmkgeHUgbHkuIFRyb25nIGRv LCBkaWVuIGhpbmggbGEgDQpobyBvbmcgVHJhbiBWYW4gVGhhbmgsIE5ndXllbiBIdXUgSGF5IChu Z3V5ZW4gQ2h1IG5oaWVtIEhUWCBQaHVvbmcgVmllbiAtIGhpZW4gDQpsYSBjYW4gYm8gZGlhIGNo aW5oIHhhKSwgTmd1eWVuIENoaSBDaGFtIChUcnVvbmcgdGhvbiBQaHVvbmcgVmllbikgZHVvYyB4 YSB1dSBhaSANCmNobyB0aHVlIHRvbmcgY29uZyBob24gMTUuMDAwIG0yIGRhdCBkYSB4YXkgZHVu ZyBuaGlldSBjb25nIHRyaW5oIHRyYWkgcGhlcCwgaG9hYyBraW5oIA0KZG9hbmggZGljaCB2dSB0 cmVuIGRvIG1hIGtob25nIGJpIHh1IGx5LiBQaGFpIGRlbiBraGkgVGhhbmggdHJhIGh1eWVuIEhv YWkgRHVjIHZhbyANCmN1b2MsIHN1IHZpZWMgbW9pIHZvIGxvLiANCg0KQ2hhbmggVGhhbmggdHJh IGh1eWVuIEhvYWkgRHVjIE5ndXllbiBYdWFuIEx5IGNobyByYW5nLCB2aSBwaGFtIHZlIGRhdCBk YWksIHRyYXQgdHUgDQp4YXkgZHVuZyB0YWkgU29uZyBQaHVvbmcgbGEgbmdoaWVtIHRyb25nLCB4 YXkgcmEgbmhpZXUgbmFtIG5heS4gVmllYyBkYW4gdG8gY2FvIG9uZyANCkx1dSBEaW5oIFRhbSBj aG8gYmFuIGRhdCB2dW5nIERvYyBUaHVvbmcgbGEgY28gY2FuIGN1IHZhIHhhIGRhIHRodSB0aWVu IHRoYXUgZGF0IG1vdCANCmxhbiBuZ2F5IHRhaSB0aG9pIGRpZW0gZG8gbGEgdHJhaSBxdXkgZGlu aCBMdWF0IERhdCBkYWkuIA0KDQpUcmEgbG9pIFRpZW4gUGhvbmcgdmUgdHJhY2ggbmhpZW0gZG9p IHZvaSBjYWMgc2FpIHBoYW0gdHJlbiAodHUgbmFtIDIwMDAgZGVuIG5heSksIG9uZyANClRhbSBu b2k6ICJUb2kgc2FwIGNodXllbiBzYW5nIGxhbSBQaG8gQmkgdGh1IFRodW9uZyB0cnVjLCBwaHUg dHJhY2ggY29uZyB0YWMgdG8gY2h1Yy4gDQpNb2kgdmllYyBzZSBnaWFvIGxhaSBjaG8gQ2h1IHRp Y2ggbW9pIGdpYWkgcXV5ZXQiLiANCg0KaHR0cDovL3ZpZXRiYW8udm4vQW4tbmluaC1QaGFwLWx1 YXQvVGhhdC10aG9hdC10cm9uZy14YXktZHVuZy1jby1iYW4tQWktY2hpdS10cmFjaC1uaGllbS83 MDAzMzkzMy8yMTgvIENodSBuaGF0LCAxOCBUaGFuZyBtdW9pIGhhaSAyMDA1LCAxNDo1MSBHTVQr Nw0KDQpIYSBOb2k6IExhbmcgcGhpLCB0aGF0IHRob2F0IHRyb25nIHhheSBkdW5nIGNvIGJhbiAN Cg0KTGFuZyBwaGkgdHJvbmcga2hhdSBxdXlldCBkaW5oIGRhdSB0dSB0aHVvbmcgYmF0IG5ndW9u IHR1IHZpZWMgeGFjIGRpbmggbXVjIHRpZXUgDQpkYXUgdHUgZHUgYW4gZG8ga2hvbmcgZHVvYyBj aHUgZGF1IHR1IGNhbiBuaGFjLCB0aW5oIHRvYW4gdHJ1b2Mga2hpIHhheSBkdW5nIG5lbiANCmto aSBjb25nIHRyaW5oIGhvYW4gdGhhbmggZHVhIHZhbyBzdSBkdW5nIGNodSBkYXUgdHUgbW9pIG5o YW4gdGhheSBjb25nIHRyaW5oIGtob25nIA0KcGhhdCBodXkgaGlldSBxdWEuIFZpIGR1OiB0YWkg bW90IHNvIGRpYSBwaHVvbmcgZGEgZGF1IHR1IGhhbmcgdHJhbSB0aSBkb25nIGRlIGNhaSANCnRo aWVuIHZhIHhheSBtb2kgbW90IGxvYXQgY2hvIG5odSBjaG8gZGF1IG1vaSBYdWFuIERpbmggKEhh IE5vaSksIGNobyB4ZSBtYXkgUXVhbmcgDQpBbiAoVGF5IEhvIC0gSGEgTm9pKSBkYXUgdHUgaG9u IDYgdGkgZG9uZywgY2hvIGRhdSBtb2kgSGFpIEJvaSAoRG9uZyBBbmgpIGRhdSB0dSAxMyB0aSBk b25nLi4uDQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFuX2RvY192 aWV0LzMwNjk1NC9zb25nLWNhdS1iYXktby1uaGllbS1uYW5nLmh0bSAgMjgvMDEvMjAxMCAwNzox MSANCg0KSGEgTm9pOiBTb25nIENhdSBCYXkgbyBuaGllbSBuYW5nIA0KDQpodHRwOi8vd3d3LnR1 YW52aWV0bmFtLm5ldC92bi9uaGFudmF0dHJvbmduZ2F5Lzc1NTIvaW5kZXguYXNweCANCg0KSGEg Tm9pOiAiQ2h1eWVuIGhhbSBkdW9uZyBibyBiaSBuZ2FwIGNoaSBjbyBvIHRhIiANCg0KaHR0cDov L25ndXllbnh1YW5kaWVuLmJsb2dzcG90LmNvbS8yMDEwLzA4L3R1b25nLWx5LXRoYWktdG8tby12 dW9uLWhvYS1jaGktbGluaC5odG1sIE5oYSB2YW4gSG9hbmcgVGllbiAxNi0wOC0yMDEwIA0KDQpI YSBOb2k6IFR1b25nIEx5IFRoYWkgVG8gLSB5IHBodWMgZ2lvbmcgdHVvbmcgVHJ1bmcgUXVvYyAN Cg0KTmh1bmcgbmd1b2kgaG9jIHZlIGRldSBiaWV0IGJ1YyB0cmFuaCAiTmd1b2kgVml0cnV2aXVz IiAoTCdob21tZSBkZSBWaXRydXZlKSBjdWEgDQpkYW5oIGhvYSBiYWMgdGhheSBMZW9uYXJkIGRl IFZpbmNpLiBEbyBsYSBoaW5oIG1vdCBuZ3VvaSBkYW4gb25nIGtob2EgdGhhbiBkdW5nIGRhbmcg DQpjaGFuIHRheSBvIGhhaSB0dSB0aGUgdHJvbmcgbW90IGhpbmggdnVvbmcgdmEgbW90IGhpbmgg dHJvbiBsb25nIG5oYXUsIG5lbiBtb3QgbWEgdGhhbmggDQpoYWkuIFRhbSBjdWEgaGluaCB0cm9u IGxhIHJvbiBuZ3VvaSBtYXUuIEhhaSBkdW9uZyBjaGVvIGN1YSBoaW5oIHZ1b25nIGxhIG5vaSBi byBwaGFuIA0Kc2luaCBkdWMuDQoNCk5ndW9pIG1hdSBuYXkgY2hvIHRhIGNhYyB0eSBsZSB2ZSBj byB0aGUgY29uIG5ndW9pLiBEYXUgYmFuZyAxLzggdGhhbiBuZ3VvaS4gSGFpIHRheSBnaW8gDQpu Z2FuZyBiYW5nIGNoaWV1IGNhbyB0aGFuIG5ndW9pLiBUdSBkaW5oIGRhdSBkZW4gbnVtIHZ1IGJh bmcgMS80IHRoYW4gbmd1b2kuIERvIHJvbmcgDQp0b2kgZGEgZ2l1YSBoYWkgdmFpIGN1bmcgYmFu ZyAxLzQgdGhhbiBuZ3VvaS4gQm9uIG5nb24gdGF5IGJhbmcgbW90IGxvbmcgYmFuIHRheS4gU2F1 IA0KbG9uZyBiYW4gdGF5IGJhbmcgbW90IGNhbmggdGF5IC4uLnZ2Li4uDQoNCkNhYyBob2Egc2kg aGF5IGNhYyBuaGEgbmFuIHR1b25nIGNhbiBjdSB2YW8gZGF5IG1hIHRhbyBuZW4gY2FjIGhpbmgg bmd1b2kgZHVuZyBxdXkgDQpjYWNoLCB2aSBuaHUgYmVuIGFtIG5oYWMgY28gY2FpIGNvbmcgY3Ug YW0gdGhhbmggZGlhcGFzb24gKHRodW9uZyBnb2kgYW0gY3UgaGF5IHRoYW5oIA0KbGEgY2h1YW4p LCBjYWMgbmhhYyBjdSBraGFjIHBoYWkgY2FuIGN1IHZhbyB0aGFuaCBsYSBjaHVhbiBjdWEgZGlh cGFzb24gbWEgZGlldSBjaGluaCANCmFtIHRoYW5oIGNobyBkdW5nIGN1bmcgYmFjIHRyb25nIG1v dCBidW9pIGhvYSB0YXUuDQoNCk5ndW9pIFZpdHJ1dml1cyAoTCdob21tZSBkZSBWaXRydXZlKSBs YSBtYXUgbmd1b2kgcGh1b25nIFRheS4gQ2FvIHJhbywgY2FuIGRvaS4gVGEgDQpjbyB0aGUgaGlu aCBkdW5nIGRlbiBuaHVuZyB2YW4gZG9uZyB2aWVuIHRyb25nIGNhYyBjdW9jIHRoaSBPbHltcGlj IGN1YSBIeSBMYXAgY28gZGFpLg0KDQpDb24gbmd1b2kgVmlldCBjaHVuZyB0YSwgdGhlbyBob2Mg Z2lhIE5ndXllbiBWYW4gSHV5ZW4sIHRyb25nIHRhcCBjaHV5ZW4ga2hhbyAiVmFuIA0KbWluaCBW aWV0IE5hbSIgKExhIENpdmlsaXNhdGlvbiBhbm5hbWl0ZSkgYmFvIHZlIGx1YW4gYW4gdGllbiBz aSBEYWkgaG9jIFNvcmJvbm5lIFBhcmlzIA0KdHJ1b2MgMTk0NSwgY2h1b25nIE1vdCB2aWV0IHZl IENodW5nIHRvYyBWaWV0LCBjbyBuaHVuZyBuaGFuIHhldCBuaHUgc2F1Og0KDQorIE5ndW9pIFZp ZXQgdm9jIG5obyBiZS4gVm9jIG5ndW9pIGRhbiBvbmcgdHJ1bmcgYmluaCBsYSAxLDU5NW0gdmEg ZGFuIGJhIGxhIDEsNTNtLiANCkJhYyBzaSBCaWdvdCwga2hpIHhlbSB4ZXQgMzIyIG5ndW9pIEJh YyBLeSBsYXkgdHJvbmcgc28gbGluaCBraG8geGFuaCwga2V0IGx1YW4gcmFuZzogDQoxMDcsIHR1 YyBsYSAzMywyJSwgdm9jIG5ndW9pIG5obyAoMSw1MG0gZGVuIDEsNTltKTsgMjAyLCB0dWMgbGEg NjIsNyUsIHRhbSB2b2MgdHJ1bmcgDQpiaW5oICgxLDYwbSBkZW4gMSw2OW0pOyB2YSAxMywgdHVj IGxhIGNoaSA0JSBjbyB2b2MgY2FvIGxvbiAoMSw3MG0gZGVuIDEsNzltKS4gVGhhdCByYSwgDQp0 aGVvIG9uZywgbmV1IHRhIGNoYXAgbmhhbiB0YW0gdm9jIHRydW5nIGJpbmggbGEgMSw2NW0sIHRo aSB0YSB0aGF5IHJhbmcgMjYxIG5ndW9pLCB0dWMgbGEgDQo4MiwxJSwgZHVvaSB0cnVuZyBiaW5o LiBEYWkgZGEgc28gdHVjIGxhIDIwOCAoNjQsNCUpIG5hbSB0cm9uZyBraG9hbmcgZ2l1YSAxLDU2 bSB2YSANCjEsNjNtLg0KDQorIFZhaSByb25nLCB0aGFuIG1pbmggZ2F5IGdvIHZhIGRhaSBzbyB2 b2kgaGFpIGNoYW4uIE5ndWMgbmhvIHJhIGRhbmcgdHJ1b2MsIGtodW5nIGNoYXUgDQppdCBwaGF0 IHRyaWVuLiBDaGFuIHRheSBkYWksIGNvIGtob3AgbWVtIG1haSwgbGFtIGNobyBobyBuaGFuaCBu aGVuLiBOZ3VvaSBWaWV0IGNvIGtoYSANCm5hbmcgZHVuZyBjaGFuIG5oYXQgbmh1bmcgdmF0IG5o bywgZGlldSBraGllbiB0aHV5ZW4gYmFuZyBjYWMgbmdvbiBjaGFuLiBCYW4gdGF5IHRob24gDQpu aG8gdmEgdGhhbmgsIGRvdCBuZ29uIHRheSBjbyBtYXUuIFh1YSBraWEsIGNhYyBuaGEgbmhvIFZp ZXQgTmFtIHF1ZW4gZGUgbW9uZyB0YXkgDQp0aGFuaCBtYW5oIGN1YSBobyB0aGF0IGRhaS4NCg0K KyBWZSBkYWkgdGhlLCBuZ3VvaSBWaWV0IHJhdCBtZW0gbWFpLCB2YSBjbyBraGlldSB2ZSB2YW4g ZG9uZyB0aGFuIHRoZS4gSG8gdHJlbyBjYXkgcmF0IA0KbmhhbmggbmhlbiwgdGhhbiBuZ3VvaSB0 YWNoIGtob2kgdGhhbiBjYXksIGJhbiB0YXkgdmEgYmFuIGNoYW4gY3UgZG9uZyBnaW9uZyBuaHUg bmh1bmcgDQpjaGllYyBtb2Mgc2F0LiBWZSB0cm8gcGhvbmcgZ2lhbyB2YSBkYW5oIHZhdCwgbmdh eSBuYXkgdmFuIGNvbiB0aGluaCBoYW5oIHRyb25nIGNhYyBob2kgDQpsYW5nLCBobyB0byByYSBu aGFuaCB2YSBkZW8gbmh1IGdpb25nIG1lby4gVGEgbmdhYyBuaGllbiBraGkgdGhheSB0YW0gdGhh biBraWEsIGx1YyANCnRodW9uZyB0aGkgYm9pIHRyb25nIG1vIGFvIHF1YW4gcm9uZyBsdW5nIHRo dW5nLCB0cm8gbmVuIG1lbSBtYWkgdmEgbmhhbmggbmhlbiBkZSANCnRyYW5oIGNhYyBkb24gY3Vh IGRvaSB0aHUsIHZhIG5oYW5oIG5odSBjaG9wIHR1bmcgcmEgbmh1bmcgY3UgZGFuaCBzYW0gc2V0 Lg0KDQorIE5ndW9pIFZpZXQgbm9pIGNodW5nIGtob25nIGJlbyBwaGkuIFBodSBudSByYXQgY2Fu IGRvaS4gSG8gY28gbmh1bmcgbmV0IGRlcCwgYmFuIGNoYW4gDQp2YSBiYW4gdGF5IHJhdCBuaG8s IGNvIGNoYW4sIGNvIHRheSByYXQgeGluaCB4YW4uDQoNCisgU28gbmd1b2kgVmlldCB0cm9uLiBT byBkbyB0aHVvYyBsb2FpIGRhdSBuZ2FuLiBUcm9uZyBraG9hbmcgNTAwIHNvIG5ndW9pIG8gQmFj IEt5IG1hIA0Kb25nIERvIFh1YW4gSG9wIHF1YW4gc2F0LCB0YSBjbyB0aGUga2V0IGx1YW4gcmFu ZyBuZ3VvaSBWaWV0IE5hbSBkYXUgbmdhbiB0cm9uZyANCjU0LDM2JSB0cnVvbmcgaG9wOyBkYXUg dHJ1bmcgYmluaCB0cm9uZyAzMCw4JSB0cnVvbmcgaG9wLiBEYXUgZGFpIGNoaSBjaGllbSAzLDIy JSANCnRydW9uZyBob3AuIE1hdCBraGFjLCBub2kgY2h1bmcsIGRhdSBkYW4gYmEgbmhvIGhvbiBk YXUgZGFuIG9uZy4NCg0KKyBSYXUgY2hpIG1vYyB2YW8gdHVvaSB0dSAyNSBkZW4gMzAsIHZhIHZh biB0aHVhLiBSYXUgZGVuLCBjdW5nLCB0aGFuZyB2YSBjaGkgbW9jIG8gY2FtIA0KdmEgcGhpYSB0 cmVuIG1vaS4gVHV5IHZheSwgdGEgdmFuIHRoYXkgbyBtb3QgdmFpIG5ndW9pIHJhdSBtb2MgbyBk dW9pIHRhaSB2YSBoYWkgYmVuIG1hLg0KDQorIFRvYyB0aGkgZGVuIHR1eWVuLCByYW0sIHJhdCBk YWkgdmEgaG9pIGN1bmcuIFRhIGJpZXQgcmFuZyB0b2MgbGEgc2FuIHBoYW0gY2hhdCBzdW5nIGhl IA0KdHJvbmcgbmhhdCBjdWEgZGEsIHZlIHBodW9uZyBkaWVuIHBoYW4gYmlldCBjYWMgZ2lvbmcg bmd1b2kuIEdpb25nIG5odSBuZ3VvaSBUcnVuZyANCkhvYSwgbmd1b2kgVmlldCBOYW0gcGhhaSBk dW9jIHhlcCB2YW8gY2FjIGNodW5nIHRvYyB0b2MgdGhhbmcgdmEgbXVvdC4gTmV1IG5vaSBjaHVu ZyANCmhvIGNvIHRvYyB0aG8gdmEgY3VuZywgdGhpIHRhIGN1bmcgY28gdGhlIHRoYXkgbmh1bmcg bmd1b2kgdG9jIHRoYW5oIHZhIG1pbi4gTW90IHZhaSANCm5ndW9pIHRoYW0gY2hpIGNvIHRvYyBs YW4gc29uZyB2YSBxdWFuLiBEdSBzYW8sIHRvYyBuYXkgYmFjIHR1b25nIGRvaSBtdW9uLCBjaGkg dmFvIHF1YW5nIA0KbmFtIG11b2kgdHVvaSBtb2kgYmFjLiBMb25nIG1vYyB0aHVhLg0KDQorIERv aSBtYXQgaG8gaG9pIHhlY2ggdmUgcGhpYSBuZ29haSwgbW8gdG8sIGRlcCwgcmF0IGRlbiwgcmF0 IGhpZW4gdmEgcmF0IGRpZW4gY2FtIG5vaSANCmNodW5nLg0KDQorIE1vaSBuZ3VvaSBWaWV0IHJh dCBtb25nLCBuaHVuZyBraG9uZyBkYXkgbGFtLg0KDQorIEhhbSBuZ3VvaSBWaWV0IHJhdCBwaGF0 IHRyaWVuLiBIYW0gcmFuZyByYXQgZGVwLCBuaHVuZyBuZ3VvaSBub25nIGRhbiBsYWkgdGh1b25n IHRodW9uZyBuaHVvbSBkZW4uDQoNCisgTmd1b2kgVmlldCBjYSBuYW0gbGFuIG51IGRldSBwaGF0 IHRyaWVuIGNoYW0uIFRodW9uZyB0aHVvbmcsIG1vdCB0aGFuaCBuaWVuIDIwIHR1b2kgDQpjaGkg Y28gdmUgMTUgdHVvaSwgY29uIGNhYyB0aGlldSBudSB0aGksIHRyb25nIG1vdCB0aG9pIGdpYW4g ZGFpLCB2YW4gdHJvbmcgbmh1IG5odW5nIGVtIA0KYmUgZ2FpLiBUdW9pIGRheSB0aGkgcXVhIG11 b24gbyBWaWV0IE5hbS4gVHVvaSB0cnVuZyBiaW5oIGRlIGtldCBob24gbGEgdHUgMTQgZGVuIDE1 LiANClBodSBudSByYXQgbWFuIGRlIHZhIHRhIHRodW9uZyB0aGF5IG5odW5nIGdpYSBkaW5oIHR1 IGJvbiBkZW4gc2F1IGNvbi4gTmd1b2kgdGEgdW9jIA0KbHVvbmcgY28gZGVuIHRyZW4gNCUgZ2lh IGRpbmggY28gaG9uIG1vdCBjaHVjIGNvbi4gQ29uIHNvIGNodWEgZGUgdHJ1bmcgYmluaCBkdW9j IHVvYyANCnRpbmggbGEgYm9uLg0KDQorIE5ndW9pIFZpZXQgZ2lhIGRpIG5oYW5oIGNob25nLCBi YXQgZGF1IHR1IHR1b2kgYm9uIG11b2kuIE1vdCBuZ3VvaSBkYW4gb25nIDUwIHR1b2kgZGEgDQpn aWEgbHUga2h1LiBUdXkgbmhpZW4gdHVvaSB0aG8ga2hvbmcgdGh1YSBrZW0gbyBjaGF1IEF1LiBO aGlldSBuZ3VvaSBzb25nIGRlbiA3MCB0dW9pLiANCk5ndW9pIDgwIHR1b2kgY2hhbmcgaGllbS4g VmEgdGhhbSBjaGkgZG9pIGtoaSB0YSBjb24gZ2FwIG1vdCBzbyBjdSB0aG8gMTAwIHR1b2kuIA0K Tmh1bmcgbmhhbiB4ZXQgdHJlbiB0cmljaCB0dSBjdW9uICJWYW4gbWluaCBWaWV0IE5hbSIgKExh IENpdmlsaXNhdGlvbiBhbm5hbWl0ZSkgY3VhIA0KaG9jIGdpYSBOZ3V5ZW4gVmFuIEh1eWVuLCB0 cmFuZyA0MSBkZW4gdHJhbmcgNTEuIE5oYSB4dWF0IGJhbiBIb2kgTmhhIFZhbiAyMDA1Lg0KDQpE byBkbyB0dW9uZyBMeSBUaGFpIHRvIGR1b2MgZHVuZyBvIHZ1b24gaG9hIENoaSBMaW5oIGRlIGNo YW8gZG9uIGt5IG5pZW0gMTAwMCBuYW0gDQpUaGFuZyBMb25nLCBjaGkgeGV0IHZlIG1hdCBjbyB0 aGUgaG9jLCBkYSBraG9uZyBwaGFpIGNodW5nIHRvYyBuZ3VvaSBWaWV0LCB0aGVvIG5oYW4gDQp4 ZXQgY3VhIGhvYyBnaWEgTmd1eWVuIFZhbiBIdXllbi4NCg0KQ29uIHRyYW5nIHBodWMgY3VhIGJ1 YyB0dW9uZyB0aGkgc2FvPw0KDQpLaG9uZyBoaWV1IGNhYyB2aSBsYW5oIGRhbyB2YW4gaG9hIEhh IE5vaSB2YSB2YW4gaG9hIFRydW5nIHVvbmcgbmdoaSB0aGUgbmFvIG1hIGxhaSANCmNobyB0dW9u ZyB2dWEgTHkgVGhhaSB0byBhbiB2YW4gdHJpZXUgcGh1YyBjdWEgcGhvbmcga2llbiBUcnVuZyBI b2EuIEN1bmcgY2hpZWMgbXUgDQpiaW5oIHRoaWVuIGN1YSBUYW4gVGh1eSBIb2FuZyBkZS4gQ3Vu ZyBjaGllYyBhbyB0aHVuZywgaG9hIHZhbiByb25nLCBkYWkgdG9pIGNoYW4sIGN1YSANCnRheSBh byByb25nIHRoZW5nIHRoYW5nIGNvIHRoZSBibyBsb3QgbW90IGR1YSB0cmUuDQoNCkNhYyB2aSBj byBiaWV0IHJhbmcsIGJ1YyB0dW9uZyBkYXUgdGllbiBkdW9jIGR1bmcgbyB2dW9uIGhvYSBuYXks IGxhIHR1b25nIHZpZW4gdG9hbiANCnF1eWVuIFBhdWwgQmVydCwgYmlldSB0cnVuZyBjaG8gc3Ug ZG8gaG8gY3VhIHRodWMgZGFuIFBoYXAgZ2FuIDEwMCBuYW0gdHJlbiB4dSBzbyBuYXkuIA0KTmFt IDE5NDUgY2h1bmcgdGEgZGEgcGhhIGJvIHR1b25nIFBhdWwgQmVydCwgdGhvaSBjaGluaCBwaHUg VHJhbiBUcm9uZyBLaW0sIHRydW9jIENhY2ggbWFuZyBUaGFuZyBUYW0uDQoNCk5nYXkgbmF5LCBk dW5nIHR1b25nIHZ1YSBMeSBUaGFpIHRvIG8gbm9pIGRheSBuaGFuIGRpcCAxMDAwIG5hbSBUaGFu ZyBMb25nLCBsYSBkYWMgDQpkaWEuIE5odW5nIGxhaSBjaG8gYW4gdmFuIGFvIHF1YW4gdHJpZXUg cGh1YyBUcnVuZyBIb2EsIGxhIGFuIGNodWEgeSB0dSBnaT8gVHJ1bmcgUXVvYyANCmxhbiBjaGll bSBkYXQgZGFpLCBsYW5oIGhhaSwgYmllbiBkYW8gY3VhIHRhIGRhbmcgbGEgdmFuIGRlIGhldCBz dWMgbmhheSBjYW0gaGllbiBuYXkuIA0KTmd1b2kgVHJ1bmcgSG9hIGRhbmcgbXVvbiBiYW5oIHRy dW9uZyB0aW5oIHRoYW4gRGFpIEhhbiByYSBraGFwIG5hbSBjaGF1IGJvbiBiaWVuLiANClZheSBt YSBsdSBsdSBvIGdpdWEgdGh1IGRvIEhhIE5vaSBreSBuaWVtIDEwMDAgbmFtIFRoYW5nIExvbmcs IHR1b25nIHZ1YSBMeSBUaGFpIHRvIA0KbGFpIGFuIHZhbiB0cmlldSBwaHVjIFRydW5nIEhvYS4g Tm8gZ2F5IHBoYW4gY2FtIG5naGUgdGh1YXQgdmEgcGhhbiBjYW0gY2hpbmggdHJpIHJhdCANCmxv bi4NCg0KVHJpZXUgZGFpIG5oYSBMeSwgdHJpZXUgZGFpIG5oYSBUcmFuLCB5IHRodWMgZG9jIGxh cCBkYW4gdG9jIGN1YSBjaHVuZyB0YSB2byBjdW5nIG1hbmggDQptZS4gVGllcCB0aGVvIHRyaWV1 IGRhaSBuaGEgTGUgY3VuZyB0aGUuIENodW5nIHRhIGRhIGRhbmggdGhhbmcgbmhpZXUgY3VvYyB4 YW0gbHVvYyBsb24gDQpjdWEgcGh1b25nIEJhYywgbm9pIGNhY2ggaGFvIGh1bmcgdHJvbmcgYW5n IHZhbiBCaW5oIE5nbyBkYWkgY2FvOiAiTkhVIE5VT0MgDQpWSUVUIFRBIFRVIFRSVU9DLCBWT04g WFVORyBWQU4gSElFTiBEQSBMQVUuIFNPTiBIQSBDVU9ORyBWVUMgREEgDQpDSElBLCBQSE9ORyBU VUMgQkFDIE5BTSBDVU5HIEtIQUMuLi4iDQoNCkR1bmcgdHVvbmcgdnVhIEx5IFRoYWkgdG8gbyBU aGFuZyBMb25nIHBoYWkgbWFuZyBkdW9jIHRpbmggdGhhbiBkb2MgbGFwIGtob25nIHBodSANCnRo dW9jIGFpLCB5IHRodWMgdHUgY2h1LCB0dSBjdW9uZyBjdWEgZGFuIHRvYyBWaWV0LiBDaHVuZyB0 YSBjbyBtb3QgbmVuIHZhbiBob2EgeSBwaHVjIHR1IA0KbmdhbiBkb2ksIHkgcGh1YyBjdWEgZGFu IHRodW9uZywgeSBwaHVjIGN1YSB2dWEgY2h1YS4gWGluIG1vaSBkb2MgY3VvbiBzYWNoIGtoYW8g Y3V1IA0KIlZhbiBob2EgcGhvbmcgdHVjIiBjdWEgbmhhIHZhbiBIb2FuZyBRdW9jIEhhaSwgbmhh IHh1YXQgYmFuIFBodSBOdSBpbiBuYW0gMjAwNy4gDQpUcm9uZyBkbyBjbyBuaHVuZyBiYWk6IDEv RG9pIGRpZXUgdmUgcXVvYyBwaHVjLCBsZSBwaHVjLiAyL1F1b2MgcGh1YywgbGUgcGh1YyB2b2kg bmdheSANClRldCBjbyB0cnV5ZW4uIDMvUXVvYyBwaHVjIFZpZXQgTmFtIHRvbiB0YWkgaGF5IGto b25nIHRvbiB0YWkuIDQvVHUgaG9pIG5naGkgdG9tIHRvYW4gDQpjYXUsIG5heSBzaW5oIHZhbiBk ZSBxdW9jIHBodWMuLi4gUmF0IHRpZWMgY2FjIG5oYSBsYW0gdHVvbmcgdmEgY2FjIG5oYSBkdXll dCB0dW9uZyBkYSANCmtob25nIGNoaXUgYm8gY29uZyBzdWMgdGltIGRvYy4NCg0KVmkgdGhlIG1h IGNvIG1heSBjYXUgdmUgZGFuIGdpYW4gY3VhIG1vdCBuaGEgdGhvIGNhcCBwaHVvbmcgZGF0IEhh IFRoYW5oLCB2aW5oIHZlIA0KdHVvbmcgdnVhIEx5IFRoYWkgdG8gbyB2dW9uIGhvYSBDaGkgTGlu aDoNCg0KVnVhIEx5IFRoYWkgdG8gbmhhIHRhLA0KQ2FuIGRhaSwgbXUgbWFuZywgeSAiY2hhIiBU aHV5IEhvYW5nLg0KTWF0IHRvLCBtdWkgdGhhbmcsIHBoaSBwaGFtLA0KVGhhbiBoaW5oIGNhbyBs b24sIHR1YSBjaGFuZyBwaHVvbmcgVGF5LiANClRyb2kgeGFuaCwgbWF5IHRyYW5nIHR1bmcgYmF5 LA0KVnVhIEx5IFRoYWkgdG8gZHVuZyBuZ2F5IGNhbiB0YW4uDQoNClhpbiBwaGFuIGFuaCBkZSBC YW4gdG8gY2h1YyBob2kgbGUgMTAwMCBuYW0gVGhhbmcgTG9uZyBkdW9jIGJpZXQuIENvbiB4dSBs eSB0aGUgbmFvLCANCnR1eSBiYW4gdG8gY2h1YyBiYW4gdm9pIGNoaW5oIHF1eWVuLiBDaHUgZGUg dHVvbmcgdnVhIEx5IFRoYWkgdG8gbmh1IHRoZSBlIGtob25nIHRpZW4uIA0KDQpEYXQgdGhpZW5n IFRoYW5nIExvbmcgdGhhbmcgNyAtIDIwMTANCk5oYSB2YW4gSG9hbmcgVGllbi4gDQpEaWEgY2hp OiBOaGEgQTExIFBob25nIDQyMA0KVGhhbmggWHVhbiBCYWMgLSBIYSBOb2kNCkRpZW4gdGhvYWk6 IDA5MzYuODAyLjgwMQ0KTmd1b246IFRyYW5OaHVvbmcuY29tDQoNClkga2llbiBiYW4gZG9jOg0K DQpBTkggQkEgU0FNOg0KDQpNb3QgcGhhdCBoaWVuIGtob25nIGxhIG1hIHJhdCBkYW5nIGdpYSEg VFVPTkcgTFkgVEhBSSBUTyBPIFZVT04gSE9BIENISSBMSU5IICh3ZWIgDQpUcmFuIE5odW9uZyku ICJOZ2F5IG5heSwgZHVuZyB0dW9uZyB2dWEgTHkgVGhhaSB0byBvIG5vaSBkYXkgbmhhbiBkaXAg DQoxMDAwIG5hbSBUaGFuZyBMb25nLCBsYSBkYWMgZGlhLiBOaHVuZyBsYWkgY2hvIGFuIHZhbiBh byBxdWFuIHRyaWV1IHBodWMgVHJ1bmcgSG9hLCANCmxhIGFuIGNodWEgeSB0dSBnaT8gVHJ1bmcg UXVvYyBsYW4gY2hpZW0gZGF0IGRhaSwgbGFuaCBoYWksIGJpZW4gZGFvIGN1YSB0YSBkYW5nIGxh IHZhbiBkZSANCmhldCBzdWMgbmhheSBjYW0gaGllbiBuYXkuIE5ndW9pIFRydW5nIEhvYSBkYW5n IG11b24gYmFuaCB0cnVvbmcgdGluaCB0aGFuIERhaSBIYW4gcmEgDQpraGFwIG5hbSBjaGF1IGJv biBiaWVuLiBWYXkgbWEgbHUgbHUgbyBnaXVhIHRodSBkbyBIYSBOb2kga3kgbmllbSAxMDAwIG5h bSBUaGFuZyBMb25nLCANCnR1b25nIHZ1YSBMeSBUaGFpIHRvIGxhaSBhbiB2YW4gdHJpZXUgcGh1 YyBUcnVuZyBIb2EuIE5vIGdheSBwaGFuIGNhbSBuZ2hlIHRodWF0IHZhIHBoYW4gY2FtIGNoaW5o IHRyaSByYXQgbG9uLiIgDQoNCkRhbiBIYSBUaGFuaDoNCg0KR2FuIG5odSBkb2kgZGllbiB2b2kg dHVvbmcgZGFpIEx5IFRoYWkgVG8gdmEgdHJ1IHNvIFVCTkQgVFAgSE4sIHBoaWEgYmVuIGtpYSBI byANCkd1b20sIGNvIHR1b25nIHZ1YSBMZSBMb2kgcmF0IGRlcCwgZHVuZyBtYXUgaGluaCB0dW9u ZyB2dWEgVmlldCBOYW07IHNhbyBxdWFuIGNodWMgDQp0aG9pIG5heSBraG9uZyBjaGl1IHRoYW0g a2hhby4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0MS8y MDEwMTAwNDE5Mjk0MC5hc3B4IDA0LzEwLzIwMTAgMTk6MjkgDQoNCkhhIE5vaTogVGFpIEJhbyB0 YW5nIGxpY2ggc3UgcXVhbiBzdSBWTiBjbyBidWMgdHVvbmcgTmdvIFF1eWVuLCBjdW5nIGNoaWVu IHRoYW5nIEJhY2ggRGFuZyBsdW5nIGxheSBuYW0gOTM4LCByYXQgZGVwLiANCihOZW4gY2hhbmcs IGtoaSBsYW0gdHVvbmcgZGFpIEx5IFRoYWkgdG8sIGNhbiB0aGFtIGtoYW8gbmh1bmcgbWF1IHR1 b25nIG5odSB2YXkuLi4pICAgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML0tob2EtaG9jLzIw MTAvMTAvM0JBMjFCRDQvIEh1b25nIFRodSAxOS8xMC8yMDEwLCAxMDoxNSBHTVQrNw0KDQpIYSBO b2k6IDk1JSBobywgYW8gSGEgTm9pIGJpIG8gbmhpZW0gDQoNClRydW5nIHRhbSBuZ2hpZW4gY3V1 IHZhIGNvbmcgZG9uZyBtb2kgdHJ1b25nIChDRUNSKSB2dWEgY29uZyBibyBrZXQgcXVhIG5naGll biBjdXUgDQp2ZSBtb2kgdHJ1b25nIGN1YSAxMjAgaG8sIGFvLCBkYW0sIHRodXkgdnVjIGxvbiBu aG8gY3VhIDYgcXVhbiB0cnVuZyB0YW0gSGEgTm9pLg0KVGhlbyBkbywgY2hpIGNvIDYgaG8gZGF0 IHlldSBjYXUgY2hhdCBsdW9uZyBvIHRhdCBjYSBjYWMgY2hpIHRpZXUgbmdoaWVuIGN1dSwgY2hp ZW0gdHkgbGUgDQo1JSwgcGhhbiBsb24gY2FjIGFvIGhvIGJpIG8gbmhpZW0gY2hhdCBodXUgY28s IG5vbmcgZG8gb3h5IGhvYSB0YW4gZHVvaSBtdWMgdGlldSBjaHVhbiANCmNobyBwaGVwLg0KDQpI b24gODAlIGhhbmcgbGFuZyBibyBiaSBvIG5oaWVtLCB2YSBkYW5nIGR1bmcgdHJ1b2Mgbmd1eSBj byBiaSBsYW4gY2hpZW0gZGUgeGF5IG5oYSwgDQpiYWkgZG8geGUsIHRybyB0aGFuaCBiYWkgdGFw IGtldCBwaGUgbGlldSxyYWMgdGhhaSBzaW5oIGhvYXQuIA0KDQpUaGVvIENFQ1IsIG5ndXllbiBu aGFuIGdheSBvIG5oaWVtIGNoaW5oIGxhIGRvIG51b2MgdGhhaSBzaW5oIGhvYXQgdmEgbW90IHBo YW4gbnVvYyANCnRoYWkgdHUgZ2lhIGRpbmggaG9hYyBjb25nIGRvbmcgdHV5IHRpZW4gdGhhaSB4 dW9uZyBoby4gTmdvYWkgcmEsIGhpZW4gdHVvbmcgZG8gcGhlIHRoYWkgDQp4YXkgZHVuZywgZG8g ZGF0LCBsYW4gY2hpZW0gYW8gaG8uLi4gY3VuZyBsYW0gZ2lhbSBkYW5nIGtlIGRpZW4gdGljaCBh byBobywgbmhpZXUgaG8gDQpkYW5nIGRhbiBiaWVuIG1hdC4gDQoNCmh0dHA6Ly9kYW50cmkuY29t LnZuL2MyMC9zMjAtNDM3NzgzL2RhdC12YW5oLWRhaS1hbi1uaW5oLXF1b2MtcGhvbmctYmF5LXRo ZW8ta2hvaS1sby1nYWNoLmh0bSBUaWVuIE5ndXllbiAgMTgvMTEvMjAxMCAtIDA5OjI1IA0KDQpI YSBOb2k6IEtob24gZG9uIHZpICJkYWkgY29uZyB0cnVvbmciIGxvIGdhY2ggDQoNCkRhdCB2YW5o IGRhaSBhbiBuaW5oLCBxdW9jIHBob25nICJiYXkiIHRoZW8ga2hvaSBsbyBnYWNoDQoNCihEYW4g dHJpKSAtIExvIGdhY2ggdGh1IGNvbmcgbW9jIGxlbiBuaHUgbmFtLCB4YSBkZW4gbmhhYyBuaG8s IHBoYXQgdmkgY2FuaCByb2mFIG1hYyANCmtlIHZpIGRvIGxhICJwaG9uZyB0cmFvIiBjdWEgY2Eg bGFuZywgY2EgeGEuIENoaW5oIHF1eWVuIHhhIGJhdCBsdWMgbmdvaSBuaGluIG5odW5nIA0KbWFu aCBydW9uZywgdHJpZW4gZGUgdmEgY2EgZGF0IHZhbmggZGFpIGFuIG5pbmggcXVvYyBwaG9uZyBk YW4gYmllbiBtYXQgdGhlbyBraG9pIGxvLg0KDQoqIEtob24gZG9uIGdpdWEgImRhaSBjb25nIHRy dW9uZyIgbG8gZ2FjaA0KDQozIGNhaSBjaGV0IHR1YyB0dW9pIHZhIG5vaSBkYXUgbmd1b2kgY29u IHNvbmcNCg0KTmhpZXUgbmFtIG5heSwgbmh1bmcgY29uIGR1b25nIG5obyBkYW4gcXVhbmggbGFu ZyBMYWkgU29uIGtob2FjIGxlbiBtaW5oIHRhbSBhbyANCmRpdSBoaXUsIHZhbmcgdmUuIFRoaSB0 aG9hbmcsIG5odW5nIGNoaWVjIHhlIHRhaSB1eW5oIHV5Y2ggY2hvIHRoYW4gdmEgZ2FjaCB0aGFu aCBwaGFtDQpjaGF5IHF1YSBraHVheSBkb25nIGtob25nIGdpYW4gdmEgY2F0IGJ1aSwgbmh1b20g Y28gY2F5IGhhaSBiZW4gZHVvbmcgbW90IG1hdSB2YW5nIA0KdmFuZywgZG8gZG8gZGFjIHRydW5n IGN1YSBkYXQgZ2FjaC4NCg0KKEFuaDogQmEgTXVpIGtpZXQgc3VjIHNhdSB2dSBuZ28gZG9jIGN1 b3AgZGkgc2luaCBtYW5nIGN1YSBjaG9uZyB2YSBjb24gdHJhaSBtaW5oLikNCg0KMyBuZ2F5IHNh dSB2dSB0YWkgbmFuIGxhbyBkb25nIGtoaWVuIDMgbmd1b2kgdHJvbmcgZ2lhIGRpbmggb25nIE5n dXllbiBWYW4gVHkgdHUgdm9uZywgDQpsbyBnYWNoIGNhY2ggbmhhIG9uZyBjaGkgY2h1bmcgMTBt IHZhbiBuZ2F5IGRlbSBkbyBsdWEuIEtob2kgbmdoaSBuZ3V0IGJvYyBsZW4sIGhvYSANCmN1bmcg a2hvaSBuaHVuZyBsbyBraGFjIGJhbyB0cnVtIGtob25nIGdpYW4gY3VhICJkYWkgY29uZyB0cnVv bmciIHNhbiB4dWF0IGdhY2guDQoNCk5nb2kgbmhhIGN1YSBvbmcgVHkgcGhpYSBtYXQgZHVvbmcg Y2hpbmggZGFuIHZhbyB4YSBMYWkgU29uIHZhbiBjaGltIHRyb25nIGtob25nIA0Ka2hpIHRhbmcg dG9jLiBHaWEgZGluaCwgaG8gaGFuZyBkYW5nIGxhbSBsZSBUYW0gbmhhdCAoMyBuZ2F5KSBjaG8g MiBibyBjb24gb25nLiBOZ3VvaSANCmNhdSAoZW0gYmEgTXVpLSB2byBvbmcgVHkpIGR1b2MgZHVh IHZlIHF1ZSBvIEhhaSBEdW9uZyBhbiB0YW5nIHRyb25nIG5vaSBkYXUgY3VhIGNhIA0KaGFpIGhv Lg0KDQpCYSBNdWkgc2F1IGtoaSBkdW9jIGNhcCBjdXUgZGEgdGluaCBsYWksIHZlIGNoaXUgdGFu ZyBjaG9uZyB2YSBjb24uIE1hdCBtZXUgeGVjaCwgbm9pIA0Ka2hvbmcgdGhhbmggdGllbmcgdmkg a2hvYyBxdWEgbmhpZXUgdmEgdmkgYW5oIGh1b25nIGN1YSB2dSBuZ28gZG9jIGtob2kgbG8gZ2Fj aCBkZW0gDQpob20gdHJ1b2MuIE5lbiBub2kgZGF1LCB2byBhbmggSG9wIGRhbmcgbWFuZyB0aGFp IHRoYW5nIHRodSA1IGN1bmcgY28gZ2FuZyBjdW5nIGFuaCANCmVtLCBobyBoYW5nIGxvIGxhbmcg Y29uZyB2aWVjIGhhdSBzdSBjaG8gYm8gdmEgY2hvbmcgbWluaC4NCg0KTGF0IGxhaSBoYW5oIHRy aW5oIGRhbiBkZW4gY2FpIGNoZXQgY3VhIDIgYm8gY29uIG9uZyBUeSB2YSBjYXUgZW0gdm8sIG5o aWV1IG5ndW9pIHJhdCANCmJ1YyB4dWMgdmkgMyBjYWkgY2hldCBuYXkgaG9hbiB0b2FuIGNvIHRo ZSBuZ2FuIGNoYW4gZHVvYyBuZXUgY2hpbmggcXV5ZW4geGEgQmFjIFNvbiwgDQpuaHVuZyB2aSAi cXVhbiBwaHUgbWF1IiBvIGRheSBraG9uZyBxdWEgdGhvIG8gbmh1IHZheS4NCg0KKEFuaDogIkRh aSBjb25nIHRydW9uZyIgbG8gZ2FjaCBjdWEgbGFuZyBMYWkgU29uIG5oaW4gdHUgZGluaCBkb2kg Z2l1YSB4YSBCYWMgU29uIHZhIHhhIEhvbmcgS3kuKSANCg0KVGhlbyB0aW0gaGlldSwgZ2lhIGRp bmggb25nIFR5IGJhdCBkYXUgZGFvIGRhdCB4YXkgbG8gaG9pIGRhdSB0aGFuZyA2IG5hbSBuYXku IFNhdSBkbywgDQpjaGluaCBxdXllbiB4YSB2YSB0aGFuaCB0cmEgeGF5IGR1bmcgY28gZGVuIGxh cCBiaWVuIGJhbiBkaW5oIGNoaSwgeWV1IGNhdSBnaWEgZGluaCBwaGEgDQpibyBwaGFuIHZvIGxv IHZ1YSB4YXkgZGkuIFR1eSBuaGllbiwgY2FjIGNhYyBibyB4YSBsYWkgImRhbmggdHJvbmcgYm8g ZHVpIiwgbGFwIGJpZW4gYmFuIA0KY2hvIGNvIHRodSB0dWMgcm9pIGJvIGRvLiBHaWEgZGluaCBv bmcgVHkgdGllcCB0dWMgbGFtLCBkZW4gbG8gdGh1IDIgdGhpIGJpIGtpY2ggeGF5IHJhLg0KDQpE dSBsdWFuIGRhdCBjYXUgaG9pLCBuZXUgY2hpbmggcXV5ZW4gbWFuaCB0YXksIGxhbSBkdW5nIGNo dWMgbmFuZyBuaGllbSB2dSBjdWEgbWluaCANCnRoaSBiaSBraWNoIGRhdSBkb24gdHJlbiBjbyB4 YXkgcmE/LiANCiANCkNhbiBibyB4YSB0aHVhIG5oYW4gc3UgYmF0IGx1YyANCg0KVGltIGRlbiBV Qk5EIHhhIEJhYyBTb24sIGNodW5nIHRvaSBiYXQgbmdvIHZhIGJ1YyB4dWMgdHJ1b2MgdGhhaSBk byB0aGFuIG5oaWVuLCBjb2kgDQptb2kgY2h1eWVuIGRhIHJvaSBuaHUga2hvbmcgY3VhIG9uZyBU YSBIb25nIFRoYWkgLSBCaSB0aHUga2llbSBDaHUgdGljaCBVQk5EIHhhLiANCk5vaSB2ZSBjYWkg Y2hldCBjdWEgMyBuZ3VvaSBuaGEgb25nIFR5LCBvbmcgVGhhaSBjaG8gYmlldDogIlhhIGRhIGNv IGdhbmcgbmh1bmcgbmd1b2kgDQp0YSB2YW4gbGFtIHRoaSBiaWV0IGxhbSBzYW8gZHVvYy4iDQoN ClRoZW8gb25nIFRoYWksIHBob25nIHRyYW8gbGFtIGdhY2ggdGFpIEJhYyBTb24gbm8gcm8gdHUg bmFtIDIwMDUgY2hvIGRlbiBuYXkuIExvIHR1IA0KcGhhdCBsaWVuIHR1YyBtb2MgbGVuLCB4YSBj dW5nIGRhIGRlbiBkaW5oIGNoaSwgeWV1IGNhdSBkbyBibyBuaHVuZyBraGkgeGEgZGkgdGhpIG5n dW9pIA0KZGFuIGxhaSBsYW0gdGllcCE/DQogDQooQW5oOiBDaHUgdGljaCBVQk5EIHhhIEJhYyBT b24gVGEgSG9uZyBUaGFpICJ0aGFuIG5oaWVuIiBnaWFpIHRoaWNoIHZlIHN1IGJhdCBsdWMgDQpj dWEgY2hpbmggcXV5ZW4gZGlhIHBodW9uZy4pIA0KDQpUaG9uZyBrZSBjdWEgVUJORCB4YSBCYWMg U29uIGNobyB0aGF5LCBoaWVuIHRyZW4gZGlhIGJhbiB4YSBjbyA5OSBobyBkYW4gbGFtIGxvIGdh Y2ggDQp0aHUgY29uZyB0dSBwaGF0LCBtb2kgaG8gaXQgbmhhdCBjbyAyIHZvIGxvLiBEbyBsYSBj aHVhIGtlIDE4IGNodSBsbyB0dSBub2kga2hhYyBkZW4gY28gDQpob3AgZG9uZyB2b2kgeGEuIERv aSB2b2kgY2FjIGhvIGRhbiBsYW0gbG8gZ2FjaCB0dSBwaGF0LCBvbmcgVGhhaSBjaG8gcmFuZywg aG8gbGFtIHRyZW4gDQpkYXQgdGhvIGN1IGxpZW4ga2UgY3VhIGdpYSBkaW5oLCBtdW9uIG11YyBk YXQgbHVjIG5hbywgbXVjIGJhbyBuaGlldSBsYSBxdXllbiBjdWEgaG8uIA0KS2hvbmcgcm8gb25n IFRoYWkgY28gYmlldCBkZW4gcXV5IGRpbmggY3VhIE5oYSBudW9jIHZlIHF1YW4gbHkgZGF0IGRh aSwgY2FtIG5ndW9pIGRhbiANCnhhbSBwaGFtIGRlbiB0YWkgbmd1eWVuIGRhdCBxdWEgZG8gc2F1 IDFtPw0KDQpRdXlldCBkaW5oIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1IHlldSBjYXUgY2hhbSBk dXQgaG9hdCBkb25nIGN1YSBjYWMgbG8gZ2FjaCB0aHUgDQpjb25nIHRydW9jIG5hbSAyMDEwLCBv bmcgVGhhaSBjaG8gYmlldCB4YSBjdW5nIGRhIG5vIGx1YyB0aWVuIGhhbmguIFRoZW8gb25nIFRo YWksIHR1IA0KZGF1IG5hbSBkZW4gbmF5LCAibmdvYWkgdHJ1b25nIGhvcCBuaGEgb25nIFR5LCBo YXUgbmh1IGtob25nIGNvIGxvIG5hbyB0dSBwaGF0IG1vYyANCmxlbiIuDQoNCkF5IHZheSBtYSwg dGFpIFRvIHRoYW5oIHRyYSB4YXkgZHVuZyBjdWEgeGEsIGFuaCBOZ28gVmFuIEhvYW4gKFRvIHRy dW9uZykgbGFpIGR1YSByYSANCmNobyBjaHVuZyB0b2kgYmFuIGxpZXQga2UgY2hpIHRpZXSFIDMy IGhvIGxhbSBsbyBtb2kgcGhhdCBzaW5oIHRyb25nIG5hbSBuYXkuIE5oaWV1IA0Kbmd1b2kgZGEg bGFtIGxvIHR1IHRydW9jIHZhIG5heSB4YXkgZHVuZyB0aGVtIGxvIG1vaS4NCg0KS2hpIGR1b2Mg aG9pIHZlIHRyYWNoIG5oaWVtIGN1YSBjaGluaCBxdXllbiB4YSB0cnVvYyB0aW5oIHRyYW5nIG5n dW9pIGRhbiBvIGF0IGxhbSBsbyANCmdhY2ggdHJhaSBxdWkgZGluaCwgZ2F5IG8gbmhpZW0gbW9p IHRydW9uZyBuZ2hpZW0gdHJvbmcsIG9uZyBUaGFpIHRoYW4gbmhpZW4gdGh1YSBuaGFuOiANCiJD aHVuZyB0b2kgdGh1YyBzdSBiYXQgbHVjLCBuZ3VvaSB0YSBsYW0gbmhpZXUgcXVhLCBraG9uZyB0 aGUgbmdhbiBjaGFuIGR1b2MiLiBPbmcgDQpUaGFpIGNvbiB2aWVuIHJhIGx5IGRvIHZpIGRvIGxh IG5ndW9pIHRyb25nIGxhbmcsIGxhaSB0b2FuIGFuaCBlbSBobyBoYW5nIG5lboUga2hvIGxhbS4g DQpOZXUgdmF5LCBjbyBsZSBjYW4gY28gbW90IHZpIHF1YW4gcGh1IG1hdSBraG9uZyBwaGFpIGxh IG5ndW9pIHRyb25nIHhhIEJhYyBTb24gZGVuIA0KZGF5IGRpZXUgaGFuaCE/DQogDQooQW5oOiBD b25nIHRydW9uZyB2YW4gbmdheSBkZW0gaG9hdCBkb25nIHNhdSBjYWkgY2hldCBjdWEgMyBuZ3Vv aS4pIA0KDQpRdWF5IHRybyBsYWkgdm9pICJkYWkgY29uZyB0cnVvbmciIHNhbiB4dWF0IGdhY2gg Y3VhIHhhLCBvbmcgVGhhaSBjaG8gYmlldCwgeGEgcXVhbiBseSANCmtodSB2dWMgZGUgbmdvaSwg Y2F1IENoaWVuIGNoYXkgcmEgc29uZyBDb25nLiBUaW5oIHRyYW5nIGtob2V0IGRlIGxhbSBnYWNo IGNoaW5oIA0KcXV5ZW4geGEgY28gYmlldCwgZGEgeHUgbHkgbmh1bmcgIm1pbmggZGkgcm9pIGhv IGxhaSBsZW4gbHV0IGxhbSwga2hvbmcgeHUgbHkgZHVvYyIhPyANCg0KVmF5IGxhLCBQaGFwIGxl bmggQmFvIHZlIGRlIGRpZXUga2hvbmcgaGUgY28gaGlldSBsdWMgdGFpIHhhIEJhYyBTb24/DQoN ClRoZW8gdGltIGhpZXUsIHhhIEJhYyBTb24gY28gdG9pIDYwMGhhIGRhdCB2YW5oIGRhaSBhbiBu aW5oIHF1b2MgcGhvbmcuIERpZW4gdGljaCBkYXQgDQpuYXksIHRoZW8gb25nIFRoYWksIGRhbiBk YSBsYW4gY2hpZW0gbGFtIG5oYSB0dSBsYXUgdmEgZGVuIG5heSBobyBjdW5nIHR1IHkgbXVjIGRh dCBsZW4gDQpsYW0gbG8uIEhvaSB2ZSBkaWVuIHRpY2ggYmkgeGFtIHBoYW0sIG9uZyBUaGFpIHRh YyBsdW9pLCBjaGVwIG1pZW5nOiAiQ3VuZyBraGEga2hhISINCkNoaW5oIHF1eWVuIHhhIEJhYyBT b24gdGh1YSBuaGFuIHN1IGJhdCBsdWMsIGNvbiBjaGluaCBxdXllbiBodXllbiBTb2MgU29uPyBE YXQgY2F1IA0KaG9pIHhhIGRhIGNvIGRlIHh1YXQgZ2kgdm9pIFVCTkQgaHV5ZW4gU29jIFNvbiBj aHVhLCBvbmcgVGhhaSBub2kgbGEgZGEgY28gZGUgeHVhdCB0dSANCmRhdSBuYW0uIFR1eSBuaGll biwga2hpIGNodW5nIHRvaSBkZSBuZ2hpIG9uZyBUaGFpIGN1bmcgY2FwIHZhbiBiYW4ga2llbiBu Z2hpLCBkZSB4dWF0IA0KYXksIG9uZyBUaGFpIGxhaSBraG9uZyB0aGUgZHVhIHJhIGR1b2MhDQpE YW4gdHJpIHNlIHRpZXAgdHVjIHRpbSBoaWV1IHZhIHRob25nIHRpbiBkZW4gYmFuIGRvYyB2ZSB2 dSB2aWVjIG5heS4gDQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFu LWRvYy12aWV0LzQzMDA4Mi90YWkteGEtdmlldC1sb25nLXNvYy1zb24tY2F0LXRhYy1ob2FuaC1o YW5oLmh0bSBEYW0gVmluaCAxNS8wMS8yMDExIDA3OjE2IA0KDQpIYSBOb2k6ICJDYXQgdGFjIiBo b2FuaCBoYW5oIA0KDQooSE5NKSAtIERvYW4gc29uZyBDYSBMbyBjaGF5IHF1YSBkaWEgYmFuIHRo b24gVGllbiBUYW8sIHhhIFZpZXQgTG9uZywgaHV5ZW4gU29jIA0KU29uIGRhbmcgcGhhaSBnYW5o IGNoaXUgY2FuaCBkYW8gYm9pIGN1YSBuaHVuZyBuZ3VvaSBjaHV5ZW4ga2hhaSB0aGFjIGNhdC4N Cg0KTmFuICJjYXQgdGFjIiBob2F0IGRvbmcgdHJlbiB0dXllbiBzb25nIENhIExvIHF1YSBkaWEg YmFuIHRob24gVGllbiBUYW8gZGllbiByYSB0dSBuaGlldSANCm5hbSBuYXkgdmEgbmdheSBuYW8g Y3VuZyBjbyB0YXUgaHV0IGNhdC4gTmhpZXUgdGhvaSBkaWVtLCBtb2kgbmdheSBjbyB0b2kgNi03 IHRhdSB2b2kgDQpjb25nIHN1YXQgbG9uIGhvYXQgZG9uZyBjYSBuZ2F5IGxhbiBkZW0uIFF1YSB0 aW0gaGlldSBkdW9jIGJpZXQsIHRob24gVGllbiBUYW8gY28gaG9uIA0KMTAwIGhvIGRhbiBjbyBk YXQgY2FuaCB0YWMgZG9jIHZlbiBzb25nIENhIExvLCB0aGkgaGF1IGhldCBjYWMgaG8gZGV1IHBo YWkgY2hpdSBoYXUgcXVhIA0KInJ1b25nIGJpZW4gdGhhbmggc29uZyIgZG8gImNhdCB0YWMiIGdh eSByYS4gQ28gbmh1bmcgY2hvIHJ1b25nIGNhbmggdGFjIGJpIHN1dCBsbyB4dW9uZyANCnNvbmcg c2F1IHRvaSAxMC0xNW0uIEJhIEFuLCBiYSBCaW5oLCBiYSBIYSwgYmEgVGhhbmggbyBkb2kgc2Fu IHh1YXQgc28gOSBjdWEgdGhvbiBUaWVuIA0KVGFvIGJ1YyB4dWM6ICJNb2kgZ2lhIGRpbmggY2h1 bmcgdG9pIGNvIGdhbiAxIHNhbyBydW9uZyAyIHZ1IGx1YSwgbW90IHZ1IG1hdSwgbmh1bmcgY3Ug DQpkZW4gdnUgY2F5IGxhaSBwaGFpIGJlIGJvIGdpdSBudW9jLCB2aSBibyBkYSBiaSBsbyBzdXQg eHVvbmcgc29uZyIuIEtob25nIG5odW5nIHRoZSwgDQp0b2FuIGJvIGRpZW4gdGljaCBjYW5oIHRh YyAzIHZ1IGN1YSBnaWEgZGluaCBiYSBPYW5oLCBiYSBIYW5oLCBvbmcgTGllbiBjb24gYmkgY3Vv biB0aGVvIA0KZG9uZyBzb25nOyBuaGlldSBobyBkYW4gcGhhaSBibyBydW9uZywgdmkgbW9pIHRy YW4gbXVhIHRvIGxhaSBiaSB0cm9pIGhldCBkYXQgbWF1IHh1b25nIHNvbmcuDQoNCk5nb2FpIG5h biAiY2F0IHRhYyIgbGFtIHN1dCBsbyBibyBzb25nLCBhbmggaHVvbmcgZGVuIHNhbiB4dWF0IG5v bmcgbmdoaWVwLCBuZ3VvaSBkYW4gDQp0aG9uIFRpZW4gVGFvIGNvbiBwaGFpIGdhbmggY2hpdSB0 aGVtIGtob2kgY3VhIDggbG8gZ2FjaCB0aHUgY29uZyBjdWEgeGEgWHVhbiBHaWFuZyBvIA0KbGll biBrZSB0aG9uLCB2b2kgY29uZyBzdWF0IDE1MCB2YW4gdmllbi9sbywgbmdheSBkZW0gaG9hdCBk b25nLCBraGllbiBjaG8gaG9uIDMwaGEgZGF0IA0KY2FuaCB0YWMgbyBraHUgZG9uZyBCYSBNYXUs IE5naGUsIE1vbmcgRGEsIENhdSBEb25nIGN1YSB0aG9uIGJpIGFuaCBodW9uZyByYXQgbG9uLiAN CkRhYyBiaWV0LCBtb2kga2hpIGNvIGdpbyBkb25nIG5hbSwgaG9uIDIwMCBobyBkYW4gdHJvbmcg dGhvbiB0cnVjIHRpZXAgcGhhaSBoaXQga2hvaSBjdWEgDQpjYWMgbG8gZ2FjaC4gDQoNCk9uZyBO Z3V5ZW4gRHV5IFR1LCBUcnVvbmcgdGhvbiBUaWVuIFRhbyBjaG8gYmlldDogQ2h1bmcgdG9pIGRh IG5oaWV1IGxhbiBraWVuIG5naGkgDQp2b2kgVUJORCB4YSB2YSBsYW5oIGRhbyB4YSBjdW5nIGto YSB0aWNoIGN1YyBjaGkgZGFvLCB4dSBseSBiYW5nIGNhYyBiaWVuIHBoYXAgcGhhdCANCmhhbmgg Y2hpbmggdm9pIGNhYyBjaHUgdGF1IGh1dCBjYXQgdmkgcGhhbS4gRG9uZyB0aG9pIGtpZW4gbmdo aSB0cnVjIHRpZXAgY3VuZyBuaHUgcXVhIA0KY2FjIGJ1b2kgdGllcCB4dWMgY3UgdHJpIG8gaHV5 ZW4gU29jIFNvbiB2ZSB0aW5oIHRyYW5nIGtoYWkgdGhhYyBjYXQgYnVhIGJhaSB0cmVuIHR1eWVu IA0Kc29uZyBDYSBMbyBsYW0gc3V0IGxvIGRhdCBjYW5oIHRhYyB2YSBjYWMgbG8gZ2FjaCB0aHUg Y29uZyBob2F0IGRvbmcgZ2F5IG8gbmhpZW0gbW9pIA0KdHJ1b25nLCBhbmggaHVvbmcgZGVuIHNh biB4dWF0IG5vbmcgbmdoaWVwLCBzdWMga2hvZSBuZ3VvaSBkYW4uIFR1eSBuaGllbiwgdmllYyB4 dSBseSANCmNhYyB2aSBwaGFtIG8gZGF5IGNvbiBnYXAgbmhpZXUga2hvIGtoYW4sIHZ1b25nIG1h YywgYm9pIHZpZWMgdGljaCB0aHUgY2FjIHBodW9uZyB0aWVuIA0Ka2hhaSB0aGFjIGNhdCB0cmFp IHBoZXAgY2FuIHBoYWkgY28gc3UgY2FuIHRoaWVwIGN1YSBsdWMgbHVvbmcgY2h1YyBuYW5nIGN1 YSBodXllbiwgdGhhbmggDQpwaG8sIG5oYXQgbGEgY2FjIGNodSB0YXUga2hhaSB0aGFjIGNhdCBs YWkgbGEgbmd1b2kgdGh1b2MgZGlhIGJhbiBodXllbiBZZW4gUGhvbmcsIHRpbmggDQpCYWMgR2lh bmcuIENoaW5oIHZpIHZheSwgZGUgZ2lhaSBxdXlldCBkdXQgZGllbSB0aW5oIHRyYW5nIG5heSwg ZG9pIGhvaSBwaGFpIGNvIHN1IHBob2kgDQpob3AgY3VhIGNhYyBjYXAsIGNhYyBuZ2FuaCB2YSB0 aW5oIGJhbi4gDQoNCmh0dHA6Ly92b3ZuZXdzLnZuL0hvbWUvSGEtTm9pLXBoYXQtaGllbi1zYWkt cGhhbS10aGFuaC10b2FuLWtob25nLWhvbi04NS10eS1kb25nLzIwMTAxMS8xNTk3NDAudm92IFRo ZW8gVGllbiBwaG9uZyA2OjAyIEFNLCAwNy8xMS8yMDEwDQoNCkhhIE5vaTogU2FpIHBoYW0sIHRo YW5oIHRvYW4ga2hvbmcgaG9uIDgsNSB0eSBkb25nIC0gY2hpIGJpIGRlIG5naGkga2llbSBkaWVt LCB4dSBseSBuaGUgbmhhbmcgDQoNClRoYW5oIHRyYSB5ZXUgY2F1IHRodSBob2kgaG9uIDEgdHkg ZG9uZyB2YW8gdGFpIGtob2FuIHRhbSBnaXUgDQoNClRoYW5oIHRyYSBUUCBIYSBOb2kgdnVhIGNv IGtldCBsdWFuIHRoYW5oIHRyYSAyNSBjb25nIHRyaW5oIGRhdSB0dSB4YXkgZHVuZyBjbyBiYW4g Y3VhIA0KaHV5ZW4gVW5nIEhvYSwgSGEgTm9pLiBRdWEgZG8sIHBoYXQgaGllbiB0b25nIHNvIHRp ZW4gc2FpIHBoYW0gbGVuIHRvaSBob24gOCw1IHR5IGRvbmcuIA0KDQpEYW5nIGNodSB5LCBxdWEg dHJpbmggbmdoaWVtIHRodSBraG9pIGx1b25nIHRoaSBjb25nIGNhYyBjb25nIHRyaW5oLCBjYWMg ZG9uIHZpIHRoaSBjb25nIA0KdmEgdHUgdmFuIGdpYW0gc2F0IGRhIG5naGllbSB0aHUgbW90IHNv IGtob2kgbHVvbmcgY29uZyB2aWVjIGtob25nIGR1bmcgdm9pIHRodWMgdGUgdGhpIA0KY29uZyB2 YSBobyBzbyB0aGlldCBrZSwgZ2lhIHRyaSBuZ2hpZW0gdGh1IHRoYW5oIHF1eWV0IHRvYW4gdmVu aCBob24gNiw2IHR5IGRvbmcsIHRyb25nIA0KZG8sIHJpZW5nIGNvbmcgdHJpbmggeGF5IGR1bmcg aGEgdGFuZyBreSB0aHVhdCBUcnVuZyB0YW0gRGljaCB2dSBUaHVvbmcgbWFpIHZhIE5oYSBvIA0K dGhpIHRyYW4gVmFuIERpbmggbmdoaWVtIHRodSBraG9pIGx1b25nIHZ1b3Qgc28gdm9pIGR1IHRv YW4gZHVvYyBkdXlldCwgZGFwIG5lbiB0aGlldSANCmNoaWV1IGNhbyBzbyB2b2kgdGhpZXQga2Us IG5naGllbSB0aHUga2hvbmcga2hvaSBsdW9uZyBzbyB2b2kgdGh1YyB0ZSwgdHJpIGdpYSB0cmVu IDUsNDUgdHkgDQpkb25nLg0KDQpDb25nIHRyaW5oIENobyB0cnVuZyB0YW0gZGF1IG1vaSBub25n IHNhbiB0aGkgdHJhbiBWYW4gRGluaCwgZG9uIHZpIHRoaSBjb25nIGtoaSBsYXAgaG8gDQpzbyB0 aGFuaCBxdXlldCB0b2FuIGRhIHRpbmggYnUgdmF0IGxpZXUga2hvbmcgZHVuZywga2hvbmcgdGhp IGNvbmcgcGhhbyBrZXAgc2Ugbm8gbWFpLCANCm5naGllbSB0aHUga2hvbmcgZHVuZyBkaWVuIHRp Y2ggbGFwIGR1bmcgaG9hIHNhdCBjdWEgc28sIHRyaSBnaWEgaG9uIDg3NyB0cmlldSBkb25nLi4u IFRhaSANCm5oaWV1IGNvbmcgdHJpbmgga2hhYywgY3VuZyB4YXkgcmEgaGllbiB0dW9uZyBuZ2hp ZW0gdGh1IGtob25nIGtob2kgbHVvbmcsIHJ1dCBydW90IA0KbmdhbiBzYWNoLg0KDQpUdSBzYWkg cGhhbSB0cmVuLCB0aGFuaCB0cmEgeWV1IGNhdSB0aHUgaG9pIGhvbiAxIHR5IGRvbmcgdmFvIHRh aSBraG9hbiB0YW0gZ2l1IGN1YSANClRoYW5oIHRyYSwgZG9uZyB0aG9pIHlldSBjYXUgZ2lhbSB0 cnUgdHJpIGdpYSBraG9pIGx1b25nIG5naGllbSB0aHUsIHRoYW5oIHRvYW4gY2FjIGNvbmcgDQp0 cmluaCBob24gNiB0eSBkb25nLiBUdXkgbmhpZW4sIGNvIHF1YW4gdGhhbmggdHJhIGNoaSBkZSBu Z2hpIGxhbmggZGFvIFVCTkQgaHV5ZW4gVW5nIA0KSG9hIGtpZW0gZGllbSwgeHUgbHkgbmhlIG5o YW5nLiANCg0KaHR0cDovL2hvbWUudm5uLnZuL3RoaV9uaGF1X2xhcF9hb19ob19yb2lfY29uZ19r aGFpX3Jhb19iYW5fZGF0LTMzNjE5OTY4LTYxNjA2OTYzNC0wIGNhbmQuY29tLnZuIC0gMjEtMTEt MjAwOSAxNDo1MA0KDQpIYSBOb2k6IFRoaSBuaGF1IGxhcCBhbyBobyByb2kgY29uZyBraGFpIHJh byBiYW4gZGF0IA0KDQotDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZw0KDQpPbmcgUGhhbSBRdWFu ZyBOZ2hpIHF1ZSBvIFRoYW5oIEhvYSANCg0KaHR0cDovL3d3dy5naWFsYWlleHByZXNzLmNvbS9w aGFwLWx1YXQvdGhhbmgtaG9hLW11YS1rZW8tZHUtZG8taGllcC1kYW0tYmUtZ2FpLTEwLXR1b2kt MzEwNzEzMzEuaHRtbA0KDQpUaGFuaCBIb2E6IER1IGRvLCBoaWVwIGRhbSBiZSBnYWkgMTAgdHVv aSANCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIwL3MyMC0zODA2MzcvZGFuLXRoaWV1LWRvaS1n YW8tdmFuLW5hbS10cm9uZy1raG8uaHRtIDI0LzAyLzIwMTAgLSAxNDo1OA0KDQpUaGFuaCBIb2E6 IERhbiB0aGlldSBkb2ksIGdhbyB2YW4gbmFtIHRyb25nIGtobyANCg0KaHR0cDovL2dpYWRpbmgu bmV0LnZuLzIwMTAxMjEwMDkyMzExMTcwcDBjMTAwNS9kYW0tY2hldC1iYW4tdmktMzUwMDAtZG9u Zy5odG0gMTAvMTIvMjAxMCwgMDk6MjMoR01UKzcpIA0KDQpUaGFuaCBIb2E6IERhbSBjaGV0IGJh biB2aS4uLiAzNS4wMDAgZG9uZyAoaHV5ZW4gWWVuIERpbmgpIA0KDQpodHRwOi8vd3d3LnBodW51 bmV0LmNvbS90aW4tdHVjL3RoYW5oLWhvYS1zYW5nLW11b24teGUtaGllcC1kYW0tY29uLWdhaS1o YW5nLXhvbS81Yy0zNDA0c2MtMTA3OTc0bi5odG1sDQoNClRoYW5oIEhvYTogU2FuZyBtdW9uIHhl LCBoaWVwIGRhbSBjb24gZ2FpIGhhbmcgeG9tIA0KDQpodHRwOi8vZG9pc29uZ3BoYXBsdWF0LmNv bS52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBhcmVudD0wJnpvbmU9MjImSUQ9MTA3DQoNClRo YW5oIEhvYTogTmhpZXUgY2FuIGJvIHhhLCB0aG9uIHRodWMgaGllbiBzYWkgcXV5IGRpbmggY3Vh IE5oYSBudW9jIA0KDQpDbyAxMSBodXllbiAvMjcgaHV5ZW4gdHJvbmcgdGluaCBkZSB4YXkgcmEg c2FpIHBoYW0ga2hpIGNhcCB0aWVuIFRldCBjaG8gbmd1b2kgbmdoZW8NCg0KaHR0cDovL3ZpZXRi YW8udm4vWGEtaG9pL1hhYy1jaGV0LW5vaS10cmVuLW1hdC1oby1sYS1waG8tdHJ1b25nLUNBLXhh LzIwOTM1MTU3LzE1Ny8gUXVhbmcgTG9jIDEzLzkvMjAxMCwgMDg6NDUgR01UKzcgDQoNClRoYW5o IEhvYTogWGFjIG1vdCBuYW0gdGhhbmggbmllbiBub2kgYmVuaCB0cmVuIGhvIHRyb25nIHR1IHRo ZSBuYW0gdXAgDQoNCmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1Kel8xUFhMaDh2USZm ZWF0dXJlPXJlbGF0ZWQNCg0KVGhhbmggSG9hOiBDb25nIGFuIGJhbiBjaGV0IHRyZSBlbSwgZGFu IG9hbiAoMjUtNS0yMDEwKQ0KDQooQmEgbmd1b2kgYmkgYmFuIG8ga2h1IGtpbmggdGUgTmdoaSBT b24pDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDYvODU0MjAyLyAyMi8wNi8y MDA5IDA4OjI4IChHTVQrNykNCg0KVGhhbmggSG9hOiBMYW8gZG9uZyBUcnVuZyBRdW9jICdxdWF5 JyBvIGNvbmcgdHJ1b25nIE5naGkgU29uDQoNCk1vdCBkaWV1IGRlIG5oYW4gdGhheSBvIGRheSBs YSBraHUgbGFtIHZpZWMgdmEgbm9pIG8gY3VhIGNvbmcgbmhhbiBUcnVuZyBRdW9jIGR1b2MgdGFj aCBiaWV0IHZvaSBraHUgZGFuIGN1IGRpYSBwaHVvbmcsIA0Kbmd1b2kgcmEgdmFvIGR1b2MgYmFv IHZlIGtpZW0gdHJhIGtoYSBuZ2hpZW0gbmdhdCwgZG8gZ2l1YSBuZ3VvaSBkYW4gZGlhIHBodW9u ZyB2YSBsYW8gZG9uZyBUcnVuZyBRdW9jIGRhIHhheSByYSBuaGlldSB2dSB4byB4YXQuIA0KKFhl bSB2aWRlbzogaGluaCBhbmggMjAwIGxhbyBkb25nIFRydW5nIFF1b2MgZ2F5IG5hbyBsb2FuIG5o YSBkYW4gbyBOZ2hpIFNvbiwgVGhhbmggSG9hKSANCg0KaHR0cDovL25ndW9peHV0aGFuaC5jb20v MjAxMC8wNy8xMTAtY2FuLWJvLWRpZXUtZHVuZy12aS1jaHUtdGljaC1odXllbi1sYW0tc2FpLm54 dCBUaGUgTHVvbmcgKEJhbyBEYW4gVmlldCkgMjgvMDcvMjAxMCA6IDEwOjIyIGFtIA0KDQpUaGFu aCBIb2E6IDExMCBjYW4gYm8gZGlldSBkdW5nIHZpIGNodSB0aWNoIGh1eWVuIGxhbSBzYWksIHRy b25nIGRvIGh1eWVuIFllbiBEaW5oIHNhaSBuaGlldSBuaGF0ICANCg0KMTEwIGNhbiBibyB0cmFt IHkgdGUgeGEsIHBodW9uZyBjdWEgY2FjIGh1eWVuIHRyb25nIHRpbmggVGhhbmggSG9hIGxhbSB2 aWVjIGRhIGhvbiAxIA0KbmFtIG5heSBuaHVuZyBjaHVhIGR1b2MgdHJhIGx1b25nLiBIaWVuIHRh aSwgaG8gZGFuZyBkdW5nIHRydW9jIG5ndXkgY28gdGhhdCBuZ2hpZXAgdmEgdHJhbmcgdGF5Lg0K DQooQW5oOiBDaGkgUGhhbSBUaGkgSG9hbiAtIGNhbiBibyB5IHRlIHhhIERpbmggQmluaCwgWWVu IERpbmggKG5nb2kgZ2l1YSkgdHJpbmggYmF5IHN1IA0KdmllYyB2b2kgcGhvbmcgdmllbi4pICAN Cg0KVHV5ZW4gbGFvIGRvbmcgc2FpIHF1eSBkaW5oDQoNCkNoaSBQaGFtIFRoaSBIb2FuIChsYSB5 IHNpIHkgaG9jIGNvIHRydXllbikgbyB4YSBEaW5oIEJpbmgsIGh1eWVuIFllbiBEaW5oIGR1b2Mg b25nIA0KTmd1eWVuIERhbmcgTGFuaCCWIENodSB0aWNoIFVCTkQgaHV5ZW4ga3kgaG9wIGRvbmcg dHV5ZW4gZHVuZyBsYW8gZG9uZyB2YW8gbGFtIA0KdmllYyB0YWkgVHJhbSBZIHRlIHhhIERpbmgg QmluaCB0dSB0aGFuZyA1LTIwMDgsIGR1b2MgaHVvbmcgbXVjIGx1b25nIDU0MC4wMDAgZG9uZy90 aGFuZy4NCg0KRGVuIG5nYXkgMjgtMTEtMjAwOCwgb25nIExhbmggbGFpIHRpZXAgdHVjIGt5IHF1 eWV0IGRpbmggeGVwIGx1b25nIGNobyBjaGkgSG9hbiBodW9uZyANCnRoZW8gbXVjIGx1b25nIGJh YyBJLCBoZSBzbyAxLDg2LCBtYSBuZ2FjaCAxNjExOTsgZHVvYyB0aGFtIGdpYSBkb25nIGJhbyBo aWVtIHhhIGhvaSwgDQpiYW8gaGllbSB5IHRlLi4uIFRob2kgZ2lhbiBodW9uZyBsdW9uZyBtb2kg dHUgbmdheSAxLTEyLTIwMDguDQoNClNhdSBkbywgY2hpIEhvYW4gZGEgbmhhbiBkdW9jIGx1b25n IHRoYW5nIDEyLTIwMDguIFR1eSBuaGllbiwgc3VvdCB0dSB0aGFuZyAxIGRlbiANCnRoYW5nIDct MjAwOSwgY2hpIEhvYW4ga2hvbmcgZHVvYyBuaGFuIGx1b25nLiBEZW4gdGhhbmcgOC0yMDA5LCBj aGkgSG9hbiBuaGFuIGR1b2MgDQpob24gNyw1IHRyaWV1IGRvbmcgKDYgdGhhbmcgbHVvbmcsIGRh IHRydSBjYWMga2hvYW4gZG9uZyBiYW8gaGllbS4uLikuIFZhIHJvaSwga2UgdHUgDQp0aGFuZyA3 LTIwMDkgZGVuIG5heSwgY2hpIEhvYW4ga2hvbmcgZHVvYyBuaGFuIGJhdCBrZSBtb3QgZG9uZyBs dW9uZyBoYXkgcGh1IGNhcCBuYW8uDQoNCkN1bmcgbmh1IGNoaSBIb2FuLCB0YWkgaHV5ZW4gWWVu IERpbmggaGllbiBuYXkgY28gdG9pIDQ3IG5ndW9pIGRhbmcgcm9pIHZhbyB0aW5oIGNhbmggDQpr aG9uZyBjbyBsdW9uZy4gTmdvYWkgcmEsIHRhaSBjYWMgaHV5ZW4gVGhpZXUgSG9hIGNvIDQgbmd1 b2ksIFRoYWNoIFRoYW5oICg4IG5ndW9pKSwgDQpUaW5oIEdpYSAoMTcgbmd1b2kpLCBIb2FuZyBI b2EgKDYgbmd1b2kpLCB0aGkgeGEgQmltIFNvbiAoMTEgbmd1b2kpIHZhIE5nYSBTb24gKDQgDQpu Z3VvaSkgZGFuZyBjbyBuZ3V5IGNvIHRoYXQgbmdoaWVwIHZhIHRyYW5nIHRheS4gVGF0IGNhIGxh IGRvIENodSB0aWNoIFVCTkQgaHV5ZW4ga3kgDQpob3AgZG9uZyB0dXllbiBkdW5nIGhvIHZhbyBs YW0gdmllYyB0YWkgY2FjIFRyYW0gWSB0ZSB4YSwgcGh1b25nIHNhaSBxdXkgZGluaCBjdWEgbmhh IA0KbnVvYy4NCg0KT25nIEhvYW5nIEhhaSBCYW5nIJYgVHJ1b25nIHBob25nIFRvIGNodWMgU28g WSB0ZSBUaGFuaCBIb2EgY2hvIGJpZXQ6ICJUb25nIHNvIA0KMTEwIGNhbiBibyB5IHRlIHhhIHRh bmcgc28gdm9pIGJpZW4gY2hlIFVCTkQgdGluaCBnaWFvIG5hbSAyMDA2IGRldSBkbyBVQk5EIGh1 eWVuLCANCnRoaSB4YSwgdGhhbmggcGhvIHR1eWVuIGR1bmcgc2F1IGtoaSB0aWVwIG5oYW4gY2Fj IFRyYW0gWSB0ZSB4YSB0dSBuZ2FuaCB5IHRlIG5hbSAyMDA2Ii4NCg0KT25nIEJhbmcga2V0IGx1 YW46ICJOaHUgdmF5LCBVQk5EIGNhYyBodXllbiwgdGhpIHhhIHR1IGJvIHRyaSB0YW5nIGNhbiBi byB5IHRlIHhhIGtoaSANCmNodWEgY28gcXV5ZXQgZGluaCBibyBzdW5nIGNoaSB0aWV1IGN1YSBD aHUgdGljaCBVQk5EIHRpbmggbGEgc2FpIHF1eSBkaW5oLCBxdXkgdHJpbmggDQp0dXllbiBkdW5n IGNodWEgZHVuZyBxdXkgZGluaCBoaWVuIGhhbmgiLg0KDQoxMTAgY2FuIGJvIHkgdGUgZGkgdmUg ZGF1Pw0KDQpOZ2F5IDIxLTUtMjAxMCwgQ2h1IHRpY2ggVUJORCB0aW5oIFRoYW5oIEhvYSBjbyBj b25nIHZhbiBjaGkgZGFvIGxpZW4gU28gdmEgVUJORCANCmNhYyBodXllbiBuaHUgc2F1OiBDaHUg dGljaCBVQk5EIHRpbmggY2hpIGRvbmcgeSBjaG8gdHV5ZW4gZHVuZyBkb2kgdm9pIDE2IHRydW9u ZyANCmhvcCBjYW4gYm8geSB0ZSB4YSwgdHJvbmcgZG8gY28gMTMgdHJ1b25nIGhvcCBjbyB0cmlu aCBkbyBjaHV5ZW4gbW9uIHBodSBob3Agdm9pIGNhYyANCnF1eSBkaW5oIGhpZW4gaGFuaCBkZSB0 aGF5IHRoZSBzbyBjYW4gYm8gZGEgbmdoaSBjaGUgZG8gYmFvIGhpZW0geGEgaG9pLg0KDQpDYWMg dHJ1b25nIGhvcCBjb24gbGFpICg5NyBuZ3VvaSksIENodSB0aWNoIFVCTkQgY2FjIGh1eWVuLCB0 aGkgeGEgY28gbGllbiBxdWFuIHBoYWkgDQpjaGl1IHRyYWNoIG5oaWVtIGdpYWkgcXV5ZXQgdGhl byBkdW5nIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQuIE5odSB2YXksIHRpbmggZGEgZGEgdHJhIA0K InF1YSBib25nIiB2ZSBzYW4gY2FjIGh1eWVuLiBDb24gVUJORCBjYWMgaHV5ZW4gdGhpIGx1bmcg dHVuZzogR2l1IG5ndW9pIGxhbyBkb25nIA0KdGhpIGtob25nIGNvIHRpZW4gdHJhIGx1b25nOyBk YXkgaG8gcmEgZHVvbmcgdGhpLi4uIHRyYWkgcGhhcCBsdWF0IHZhIGRhbyBseS4NCg0KVHJhIGxv aSBwaG9uZyB2aWVuIE5UTk4sIG9uZyBOZ3V5ZW4gRGFuZyBMYW5oIJYgQ2h1IHRpY2ggVUJORCBo dXllbiBZZW4gRGluaCANCnRoYW5nIHRoYW46ICJUb2kgc2FwIG5naGkgdmllYyByb2ksIHZhbiBk ZSBjaGUgZG8gbHVvbmcgY2hvIDQ3IGNhbiBibyB5IHRlIHhhIGN1YSBkaWEgcGh1b25nIHRoaSBo aWVuIG5heSB0aW5oIGRhbmcgY2hpIGRhbyBodXllbiBnaWFpIHF1eWV0LiBDYWMgYW5oIGdhcCBj aHV5ZW4gdmllbiBwaG9uZyANCk5vaSB2dSwgaG8gc2UgY3VuZyBjYXAgZGF5IGR1IHZhbiBiYW4g dHJhIGxvaSIuDQoNCkJhIExlIFRoaSBIb2FuIJYgUGhvIEdpYW0gZG9jIFRydW5nIHRhbSBZIHRl IGh1eWVuIFllbiBEaW5oIHRvIHJvIHF1YW4gZGllbTogDQoiQ2h1bmcgdG9pIGtob25nIHRoZSBj byBraW5oIHBoaSBkZSBjaGkgdHJhIGx1b25nIGNobyBzbyBjYW4gYm8geSB0ZSB4YSB0aHVhIHJh IHRyb25nIA0KaHV5ZW4uIE5odW5nLCBjaHVuZyB0b2kgdmFuIGx1b24gZG9uZyB2aWVuIG1vaSBu Z3VvaSBoYXkgY28gZ2FuZyBjaG8gZG9pIGh1eWVuIHZhIA0KdGluaCBnaWFpIHF1eWV0LiBDb24g bmV1IGFpIGtob25nIGNobyBkdW9jIG1hIGJvIHZpZWMgdGhpIHRob2kiLg0KDQpWZSBwaGlhIFVC TkQgaHV5ZW4gWWVuIERpbmgsIG9uZyBIb2FuZyBUcnVuZyBUaGluaCCWIGNodXllbiB2aWVuIFBo b25nIE5vaSB2dSANCmNobyBiaWV0OiAiSHVvbmcgZ2lhaSBxdXlldCBjdWEgVUJORCBodXllbiBs YSwgaGllbiBuYXkgZGFuZyB4YXkgZHVuZyBrZSBob2FjaCBibyB0cmkgbmh1bmcgdHJ1b25nIGhv cCAodHJvbmcgc28gNDcgY2FuIGJvIHkgdGUgeGEgdHJlbi1QVikgY28gYmFuZyBjYXAgY2h1eWVu IG1vbiwgcGh1IGhvcCB0aGkgY2h1eWVuIHZlIGRhbSBuaGllbSBjb25nIHZpZWMgeSB0ZSBob2Mg ZHVvbmcgdGFpIGNhYyB0cnVvbmcgaG9jIGRhIGRhdCBjaHVhbiBxdW9jIA0KZ2lhIGN1YSBodXll bi4NCg0KQmVuIGNhbmggZG8sIGh1eWVuIHNlIHJhIHNvYXQgbGFpIHNvIGNhbiBibyBkYW4gc28g Z2lhIGRpbmggdmEgdHJlIGVtIGtob25nIGRhdCBjaHVhbiByb2kgDQpnaWFpIHF1eWV0IG5naGkg Y2hlIGRvIGNobyBobyB0aGVvIENvbmcgdmFuIDQ3NjggY3VhIEJvIFkgdGUuIFNhdSBkbywgc2Ug dGhheSB0aGUgc28gY2FuIA0KYm8geSB0ZSB4YSBuZXUgdHJlbiB2ZSBwaHUgdHJhY2ggZGFuIHNv IGdpYSBkaW5oIHZhIHRyZSBlbSB0YWkgdHJhbSB5IHRlIHhhLiBOZ3VvbiBraW5oIHBoaSANCnNl IGRvIFVCTkQgaHV5ZW4gdHJpY2ggbmdhbiBzYWNoIHN1IG5naGllcCB5IHRlIGhhbmcgbmFtIHJh IHRyYSBsdW9uZyBjaG8gc28gY2FuIGJvIHRyZW4uDQoNCkRvIG1vaSBsYSAidHVvbmcgbGFpIiBj dWEgbW90IHNvIGNhbiBibyB5IHRlIG1vaSB0dXllbiBvIFllbiBEaW5oLCBjb24gaGFuZyBjaHVj IA0Kbmd1b2kgbyBjYWMgaHV5ZW4ga2hhYyB0aGkgc2FvPw0KDQpEdSBsdWFuIGNobyByYW5nLCBk dSBnaWFpIHF1eWV0IGtpZXUgZ2kgZGkgY2hhbmcgbnVhLCB0aGkgbmd1b2kgZ2FuaCBoYXUgcXVh IHZhbiBsYSANCm5odW5nIGNhbiBibyB5IHRhIHhhIGRhIGR1b2MgY2FjIENodSB0aWNoIGh1eWVu IGt5IGhvcCBkb25nIHR1eWVuIGR1bmcuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFo b2kvMjAxMDA4L1RoYW5oLUhvYS1UaW0tdGhheS1uaGlldS14YWMtY2hldC1iYXQtdGh1b25nLTky OTgxNC8gKFRoZW8gTk5WTikgMTA6MDIsIDE4LzA4LzIwMTAgKEdNVCs3KQ0KDQpUaGFuaCBIb2E6 IFh1YXQgaGllbiBuaGlldSB4YWMgY2hldCBiYXQgdGh1b25nDQoNClZhbyBsdWMgMTdoMzAgbmdh eSAxNi84LCB0cmVuIGRvbmcgc29uZyBOb25nIEdpYW5nLCB0aHVvYyBkaWEgcGhhbiB4YSBUaGll dSBUcnVuZyANCihUaGlldSBIb2EpIHBoYXQgaGllbiB4YWMgbW90IG5ndW9pIHRyb2kgZGF0LiBO Z3VvaSBkYSBjYXAgYmFvIGNoaW5oIHF1eWVuLCBDQSANCmh1eWVuIFRoaWV1IEhvYSBkYSBjbyBt YXQga2lwIHRob2kgdm90IHRoaSB0aGUgbmd1b2kgYmkgbmFuLiANCg0KTmFuIG5oYW4gbGEgbmFt LCBjbyBkbyB0dW9pIHRhbSAzMC0zNS4gQW8gdHJlbiBuZ3VvaSBuYW4gbmhhbiBkYSBiaSBjb2kg Ym8sIHF1YW4gDQp0cmVuIG5ndW9pIHZhbiBjb24gbWFjLiBOaGFuIGRpbmggYmFuIGRhdSB0dSBj byBxdWFuIENBIGNobyB0aGF5LCBuYW4gbmhhbiBraG9uZyANCnBoYWkgY2hldCBkdW9pLCBraGEg bmdoaSB2ZSB2ZSB2aWVjIG5hbiBuaGFuIGJpIGdpZXQgY2FjaCBkYXkgY2h1bmcgaXQgbmdheS4g DQoNClRydW9jIGRvLCBjaGlldSA5LzgsIG1vdCBzbyBuZ3VvaSBkYW4gZGkgbGFtIGRvbmcgYmF0 IG5nbyBwaGF0IGhpZW4gbW90IHhhYyBjaGV0IA0KdHJvbmcgdHUgdGhlIHRyZW8gY28sIGRhbmcg dHJvbmcgcXVhIHRyaW5oIHBoYW4gaHV5IHRhaSBraHUgdnVjIG5naGlhIGRpYSB4YSBIb2FuZyAN ClF1eSAoSG9hbmcgSG9hLSBUaGFuaCBIb2EpLiANCg0KTmFuIG5oYW4gZHVvYyB4YWMgZGluaCBs YSBhbmggTGUgRGluaCBYdXllbiAoU04gMTk2NSwgdHJ1IHRhaSB0aG9uIDEwLCB4YSBIb2FuZyBR dXkpLiANCkdpYSBkaW5oIG5hbiBuaGFuIGNobyBiaWV0LCBhbmggWHV5ZW4gZGkgeGUgbWF5IHJv aSBraG9pIG5oYSB0dSBuZ2F5IDUvOCwgbmd1b2kgdGhhbiANCmtob25nIGJpZXQgYW5oIGRpIGRh dS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTAzNy8yMDEw MDkwNjA4NTYzNS5hc3B4IE5nb2MgTWluaCAwNi8wOS8yMDEwIDg6NTYgDQogIA0KVGhhbmggSG9h OiBIYWkgY2hpIGVtIGhvYyBzaW5oIHRpZXUgaG9jIGNoZXQgZHVvaSB0cm9uZyBobyBudW9jIA0K IA0KT25nIExlIER1eSBWYW4sIFRydW9uZyBDb25nIGFuIHhhIFF1YW5nIExvaSBjaG8gYmlldCwg aG8gbnVvYyB0cmVuIGRhIGNvIHR1IA0KcmF0IGxhdSwgY28gY2hpZXUgc2F1IGtob2FuZyAybSwg cm9uZyBob24gMTAwbTIsIG11YSBtdWEgbnVvYyBkb25nIGxhaSBuZW4gdHJlIGVtIHRyb25nIGto dSB2dWMgdGh1b25nIGhheSByYSB0YW0uIA0KDQpodHRwOi8vdmlldGJhby52bi9YYS1ob2kvVGhh bmgtSG9hLURhdS1nYXUtdGhhby10dW5nLWNoby1LaWV1LzY1MDY2NTA0LzE1Ny8gMTQvOS8yMDA2 LCAxMDo0NyBHTVQrNyANCg0KVGhhbmggSG9hOiAiRGF1IGdhdSIgdGhhbyB0dW5nIGNobyBLaWV1 IChodXllbiBZZW4gRGluaCkgDQoNCmh0dHA6Ly93d3cudGllbnBob25nLnZuL0tob2EtR2lhby81 MDkzOTUvVGhhbmgtSG9hLU1vdC1kaWVtLWN1bmctdHJ1bmctdHV5ZW4tdmFvLWxvcC0xMC5odG1s IEhvYW5nIExhbSAwNjoyOCAxMS8wOC8yMDEwIA0KDQpUaGFuaCBIb2E6IE1vdCBkaWVtIGN1bmcg dHJ1bmcgdHV5ZW4gdmFvIGxvcCAxMA0KDQpDaGkgY2FuIHRyYW5oIGRpZW0gMCAoZGllbSBsaWV0 KSBvIGNhIDMgbW9uIHRoaSB0aGkgaG9jIHNpbmggZGEgY28gdGhlIHRydW5nIHR1eWVuIA0KdmFv IGxvcCAxMC4gRGF5IGxhIGtldCBxdWEgdGhpIHZhbyBsb3AgMTAgVEhQVCBuYW0gMjAxMCBjdWEg bmhpZXUgaHV5ZW4gbWllbiBudWkgVGhhbmggSG9hLg0KDQotDQpodHRwOi8vaGF1Zm8ub3JnLnZu L2luZGV4LnBocD9vcHRpb249Y29tX2NvbnRlbnQmdGFzaz12aWV3JmlkPTgxNCAoOS0yMDA4KSAN Cg0KSG9pIGRhbSBWaWV0IJYgVHJ1bmcgKFBoYW0gUXVhbmcgTmdoaSCWIFVvbmcgRHVvbmcpIHRh aSBIYSBOb2kgDQoNCk5nYXkgOC05LCBvbmcgUGhhbSBRdWFuZyBOZ2hpLCBVVkJDVCwgQmkgdGh1 IFRoYW5oIHV5IGRhIHRoYW4gbWF0IHRpZXAgZG9hbiBkYWkgYmlldSBUcnVuZyBRdW9jIGRvIG9u ZyBVb25nIER1b25nLCBVVkJDVCwgQmkgdGh1IFRpbmggdXkgUXVhbmcgRG9uZyBkYW4gZGF1LiAN Cg0KVGFpIGJ1b2kgdGllcCwgb25nICBOZ2hpIGNoYW8gbXVuZyB2YSBkYW5oIGdpYSBjYW8gY2h1 eWVuIHRoYW0gVmlldCBOYW0gY3VhIGRvYW47IA0Ka2hhbmcgZGluaCBrZXQgcXVhIGNodXllbiB0 aGFtIHNlIGdvcCBwaGFuIHRodWMgZGF5IG1vaSBxdWFuIGhlIGxhbmcgZ2llbmcgaHV1IG5naGks IA0KaG9wIHRhYyB0b2FuIGRpZW4gZ2l1YSBoYWkgbnVvYyBWaWV0IE5hbSAtIFRydW5nIFF1b2Mu IA0KDQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3JlZ2lvbmFsbmV3cy9zdG9yeS8y MDA4LzA4LzA4MDgwNV9jaGluYV9vaWwuc2h0bWwgMDUvOC8yMDA4IA0KDQpUUSBkYXkgbWFuaCBr aGFpIHRoYWMgbyBiaWVuIERvbmcgDQoNClRyb25nIGtoaSBwaGFuIGRvaSBkdSBhbiBob3AgdGFj IHRyb25nIGxpbmggdnVjIGRhdSBraGkgZ2l1YSBWTiB2YSBjb25nIHR5IG51b2MgbmdvYWksIA0K VHJ1bmcgUXVvYyBsYWkgZGFuZyBkYXkgbWFuaCBob2F0IGRvbmcgdGhhbSBkbyB2YSBraGFpIHRo YWMgdGFpIGJpZW4gRG9uZy4gDQoNCmh0dHAvd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9pbl9kZXB0 aC9DaGluYS1jb25maXJtcy10ZWxsaW5nLUV4eG9uLXRvLWVuZC1WaWV0bmFtLW9pbC1kZWFsLTA3 MjIyMDA4MTU0NTU0Lmh0bWwNCg0KVHJ1bmcgUXVvYyB4YWMgbmhhbiBkYSB0YW8gYXAgbHVjIGRl IEV4eG9uTW9iaWwgcnV0IGtob2kgZHUgYW4gdm9pIFZpZXQgTmFtIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzIvMjAxMDA4MDgwMDQ2NDMuYXNweCBWYW4g S2hvYSAwOC8wOC8yMDEwIDA6NDYgDQoNClRydW5nIFF1b2MgZGF0IGNhbiBjdSB0ZW4gbHVhIHRh aSBRdWFuZyBEb25nICANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvaW5fZGVwdGgv Q2hpbmVzZS1maXNoaW5nLWJvYXRzLXdpdGgtbWlzc2lsZXMtaGFuZy1vdXQtb2ZmLVZpZXRuYW0t c2Vhc2lkZS1ESGlldS0wODI2MjAwODExMDY1NC5odG1sIA0KDQpUYXUgVHJ1bmcgUXVvYyBjbyB0 cmFuZyBiaSBob2EgdGllbiBsdWkgdG9pIGtodSB2dWMgdHJhbmggY2hhcCB2b2kgVmlldCBOYW0g DQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAtMTEtMDMtbmFuZy1iaWVu LWRvbmctdGhhbmgtbG9pLWljaC1jb3QtbG9pLXRydW5nLXF1b2MtZGFpLWRvdC0gVGFjIGdpYTog TGllbiBob3AgVGFvIGJhbw0KDQoiRG9uZyBjaGkgdG90IiBsYSB0aGUgbmF5IHU/IA0KDQpUcnVu ZyBRdW9jIG5hbmcgQmllbiBEb25nIHRoYW5oIGxvaSBpY2ggY290IGxvaSAoZ2lvbmcgbmh1IHZv aSBUYXkgVGFuZyB2YSBEYWkgTG9hbikgDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9O ZXdzL1BhZ2VzLzIwMTA0NS8yMDEwMTEwNDAwMTQzMC5hc3B4IFRyb25nIEtoYSAwNC8xMS8yMDEw IDY6MjAgDQoNClRydW5nIFF1b2MgdGFwIHRyYW4gdHJlbiBiaWVuIERvbmcgIA0KICANClNhdSBj dW9jIHRhcCB0cmFuIGR1b2MgZHVhIHRpbiBnYW4gZGF5IG5oYXQgaG9pIHRoYW5nIDcsIFRydW5n IFF1b2MgbGFpIHZ1YSB0aHVjIGhpZW4gDQpkaWVuIHRhcCBsb24gdHJlbiBiaWVuIERvbmcgKGto b25nIHBoYWkgYmllbiBIb2EgRG9uZyAtIE5WKS4gDQoNClF1YW4gZG9pIGdpYWkgcGhvbmcgbmhh biBkYW4gVHJ1bmcgUXVvYyAoUExBKSBkYSB0aHVjIGhpZW4gbW90IGN1b2MgdGFwIHRyYW4gYmFu IGRhbiANCnRoYXQgcXV5IG1vIGxvbiBtYW5nIHRlbiBHaWFvIExvbmcgMjAxMCBvIGJpZW4gRG9u ZyBob20gMi4xMSwgbmh1bmcgZGVuIGhvbSBxdWEgDQp0cnV5ZW4gdGhvbmcgbnVvYyBuYXkgbW9p IGR1YSB0aW4uIFRoZW8gdG8gR2xvYmFsIFRpbWVzLCBjdW9jIHRhcCB0cmFuIGRpZW4gcmEgdHJl biBiaWVuIA0KbGFuIHRyZW4gYm8gdm9pIHN1IHRoYW0gZ2lhIGN1YSBraG9hbmcgMS44MDAgYmlu aCBzaSBjdW5nIGl0IG5oYXQgMTAwIHRhdSBjaGllbiwgdGF1IGRvIA0KYm8sIHRhdSBuZ2FtIHZh IG1heSBiYXkuIFRydXllbiB0aG9uZyBUcnVuZyBRdW9jIGtob25nIGR1YSBybyB2aSB0cmkgY2hp bmggeGFjIGN1YSANCmN1b2MgdGFwIHRyYW4gbmh1bmcgdGhlbyBBUCwgbHVjIGx1b25nIGxpbmgg dGh1eSBkYW5oIGJvIGN1YSBQTEEgZGEgZGllbiB0YXAgZG9jIGJvIA0KYmllbiBjdWEgZGFvIEhh aSBOYW0uIFRoZW8gR2xvYmFsIFRpbWVzLCBxdWFuIHNhdCBkb3QgZGllbiB0YXAgbmdvYWkgY2Fj IHF1YW4gY2h1YyANCmN1YSBCbyBRdW9jIHBob25nIFRydW5nIFF1b2MsIGNvbiBjbyAyMDAgZHUg aG9jIHNpbmggdHUgNDAgbnVvYyBraGFjIG5oYXUgZGFuZyBob2MgDQp0YWkgY2FjIHRydW9uZyBx dWFuIHN1IG8gbnVvYyBuYXkuDQoNCihUYXUgY2hpZW4gVHJ1bmcgUXVvYyB0YXAgdHJhbiB0cmVu IGJpZW4gRG9uZyAtIEFuaDogY2hpbmFuZXdzLmNvbSkNCg0KR2xvYmFsIFRpbWVzIGRhbiBsb2kg bW90IHNpIHF1YW4gZ2lhdSB0ZW4gY2hvIGJpZXQgY3VvYyB0YXAgdHJhbiBuaGFtIHBobyB0cnVv bmcga2hhIA0KbmFuZyBjdWEgbHVjIGx1b25nIGxpbmggdGh1eSBkYW5oIGJvIGN1YSBQTEEsIGRv bmcgdGhvaSBob2MgdGFwIGtpbmggbmdoaWVtIHR1IGNhYyANCm51b2Mga2hhYy4gVHV5IG5oaWVu LCBnaW9pIHF1YW4gc2F0IGNvIG5odW5nIHBoYW4gdGljaCB0cmFpIG5ndW9jIHZlIG11YyBkaWNo IHRoYXQgc3UgDQpjdWEgc3Uga2llbiBuYXkuIFRoZW8gbW90IHNvIG5oYSBwaGFuIHRpY2gsIGN1 bmcgbmh1IGN1b2MgdGFwIHRyYW4gaG9pIHRoYW5nIDcsIGRvdCANCmRpZW4gdGFwIGxhbiBuYXkg bmhhbSBwaGFuIHVuZyBzdSBoaWVuIGRpZW4gY3VhIE15IHRyb25nIGtodSB2dWMuIEJhYyBLaW5o IHZhbiBsdW9uIA0KcGhhbiBkb2kga2ljaCBsaWV0IG5odW5nIHR1eWVuIGJvIGN1YSBOZ29haSB0 cnVvbmcgTXkgSGlsbGFyeSBDbGludG9uIHZlIHZhbiBkZSANCnRyYW5oIGNoYXAgdGFpIGJpZW4g RG9uZyBjdW5nIG5odSBjYW5nIHRoYW5nIGdhbiBkYXkgZ2l1YSBUcnVuZyBRdW9jIHZhIE5oYXQg QmFuLiANCg0KIkRheSBsYSBtb3QgY3VvYyB0YXAgdHJhbiBiaW5oIHRodW9uZyBuaHVuZyBubyBj dW5nIGR1YSB0cmVuIHRpbmggaGluaCBnYW4gZGF5IHRyb25nIA0Ka2h1IHZ1YyIsIEdsb2JhbCBU aW1lcyBkYW4gbG9pIGNodXllbiBnaWEgdmUgaGFpIHF1YW4gTHkgVGlldCB0YWkgQmFjIEtpbmgg bm9pLCAiVHJ1bmcgDQpRdW9jIG11b24gY2hvIHRoYXkgc3VjIG1hbmggY3VhIGhhaSBxdWFuIi4g VHJvbmcga2hpIGRvLCBvbmcgVG9uZyBUaWV1IFF1YW4sIG1vdCANCm5oYSBiaW5oIGx1YW4gImNo aW5oIHRob25nIiB0aHVvbmcgeHVhdCBoaWVuIHRyZW4gdHJ1eWVuIGhpbmggcXVvYyBnaWEgVHJ1 bmcgUXVvYywgYmFjIA0KYm8gbmh1bmcgbmhhbiBkaW5oIHRyZW4uICJEYXkgY2hpIGxhIGRvbmcg dGhhaSBiaW5oIHRodW9uZyBuaGFtIGtpZW0gdHJhIGtoaSB0YWkgcXVhbiANCnN1IHZhIG5hbmcg bHVjIGNoaWVuIGRhdSIsIG9uZyBUb24gbm9pIHZvaSB0byBUaGUgTmV3IFlvcmsgVGltZXMuDQoN ClRyb25nIGtoaSBkbywgdGFpIEhvaSBuZ2hpIENhcCBjYW8gQVNFQU4gMTcgdmEgSG9pIG5naGkg Q2FwIGNhbyBEb25nIEEgdnVhIGRpZW4gcmEgDQp0YWkgSGEgTm9pLCBjYWMgYmVuIGxpZW4gcXVh biBkZXUgY2FtIGtldCBnaWFpIHF1eWV0IHRyYW5oIGNoYXAgbyBiaWVuIERvbmcgYmFuZyANCmJp ZW4gcGhhcCBob2EgYmluaCBkdWEgdHJlbiBsdWF0IHBoYXAgcXVvYyB0ZSwgZGFjIGJpZXQgbGEg Q29uZyB1b2MgTEhRIHZlIEx1YXQgQmllbiANCm5hbSAxOTgyLiBDYWMgbnVvYyBraGFuZyBkaW5o IHRvbiB0cm9uZyBUdXllbiBibyB2ZSBjYWNoIHVuZyB4dSBjdWEgY2FjIGJlbiBvIGJpZW4gRG9u ZyANCnZhIHh1YyB0aWVuIGhpbmggdGhhbmggQm8gcXV5IHRhYyB1bmcgeHUgbyBiaWVuIERvbmcu IA0KDQpodHRwOi8vd3d3LnJmYS5vcmcvdmlldG5hbWVzZS9TcGVjaWFsVG9waWMvU3ByYXRseVBh cmFjZWxzDQoNClRydW5nIFF1b2MgdGhpZXQgbGFwIGRvbiB2aSBoYW5oIGNoaW5oIGRlIHF1YW4g dHJpIGhhaSBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgDQoNCmh0dHA6Ly92aWV0aW5m by5ldS8xMjcvODU3NjAvdGF1LWNhLWxhaS1iaS1iYXQtZ2l1LXRhdS1kb2ktdGllbi1jaHVvYy5o dG0gMjYtMDMtMjAxMCAxMjowNA0KDQpUYXUgY2EgVk4gYmkgVHJ1bmcgUXVvYyBiYXQgZ2l1LCBk b2kgdGllbiBjaHVvYyANCg0KTW90IHRhdSBkYW5oIGJhdCBjdWEgbmd1IGRhbiB4YSBCaW5oIENo YXUsIGh1eWVuIEJpbmggU29uLCBRdWFuZyBOZ2FpIHRhaSB2dW5nIGJpZW4gDQpIb2FuZyBTYSB0 aHVvYyBjaHUgcXV5ZW4gY3VhIFZpZXQgTmFtIGxhaSBiaSBUcnVuZyBRdW9jIGJhdCBnaXUgZG9p IHRpZW4gY2h1b2MgMTUwIHRyaWV1IGRvbmcuLi4NCg0KVG9hbiBibyAxMiB0aHV5ZW4gdmllbiwg dGh1eWVuIHRydW9uZyB2YSB0YXUgYmkgYmF0IGdpdSBkdWEgdmUgZGFvIFBodSBMYW0uIA0KDQpo dHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vc3RvcnkvMjAwNy8wNy8wNzA3 MTlfc3RpbWVzX3NwcmF0bHlzLnNodG1sIDE5LzcvMjAwNyAxOWgyNSBHTVQgQmFpIGN1YSBSb2dl ciBNaXR0b24gZGFuZyB0cmVuIGJhbyBUaGUgU3RyYWl0cyBUaW1lcywgU2luZ2Fwb3JlIA0KDQpE aWVuIGJpZW4gbW9pIHRhaSBUcnVvbmcgU2EgDQoNCkNhbmcgdGhhbmcgZGFuZyBkYW5nIGxlbiBn aXVhIFRydW5nIFF1b2MgdmEgVmlldCBOYW0geHVuZyBxdWFuaCBxdXllbiBraWVtIA0Kc29hdCBx dWFuIGRhbyBUcnVvbmcgU2EgKFNwcmF0bHlzKSBzYXUga2hpIGxhaSB4YXkgcmEgbW90IHZ1IGR1 bmcgZG8gYmFvIGx1YyBudWEgDQp0cm9uZyBraHUgdnVjIG5nb2FpIGtob2kgZ2lhdSBkYXUgbHVh IG5heS4NCg0KVGF1IGhhaSBxdWFuIFRydW5nIFF1b2MgaG9tIDkvNyBkYSBuYSBzdW5nIHZhbyBt b3Qgc28gdGh1eWVuIGRhbmggY2EgY3VhIG5ndSANCmRhbiBWaWV0IE5hbSB0cm9uZyB2dW5nIGJp ZW4gZ2FuIFRydW9uZyBTYSwgY2FjaCBUUCBIbyBDaGkgTWluaCAzNTBrbS4NCkNhYyBuZ3VvbiB0 aW4gcXVhbiBzdSBub2kgbmdheSA5LzcgaGFpIHRhdSBjaGllbiBjbyBkb25nIEJQUy01MDAgY3Vh IFZpZXQgTmFtIA0KZG8gTmdhIHRoaWV0IGtlIGRhIHZvaSB2YSBkZW4gaGllbiB0cnVvbmcgbmh1 bmcgcGhhaSBkdW5nIHR1IHhhIHZpIGhvYSBsdWMgcXVhIG1hbmggdHUgdGF1IFRydW5nIFF1b2Mu DQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRuYW1lc2Uvd29ybGRuZXdzL3N0b3J5LzIwMDcv MTAvMDcxMDIzX3BhcmFjZWx0b3VyaXNtLnNodG1sIDIzLzEwLzIwMDcgLSAxNGg1NiBHTVQNCg0K VHJ1bmcgUXVvYyBtbyByb25nIGR1IGxpY2ggSG9hbmcgU2EgDQoNCkN1YyBEdSBsaWNoIHRpbmgg SGFpIE5hbSAoVHJ1bmcgUXVvYykgbW9pIHRob25nIHF1YSBtb3QgZHUgYW4gcGhhdCB0cmllbiBk dSBsaWNoIA0KbyBraHUgdnVjIGJpZW4gZG9uZywgdHJvbmcgZG8gY28gcXVhbiBkYW8gSG9hbmcg U2EuDQoNClRyZW4gdGh1YyB0ZSwgVHJ1bmcgUXVvYyBiYXQgZGF1IHRpZW4gaGFuaCBjYWMgdG91 ciB0aGFtIHF1YW4gdGFpIGRvIG1vdCB2YWkgDQpuYW0gdHJ1b2MgdmEgc3UgZHVuZyB0YXUgdGh1 eWVuIHF1YW4gc3UgZGUgdmFuIGNodXllbiBkdSBraGFjaC4NCg0KVG8gTmhhdCBiYW8gTGFvIGRv bmcgY3VuZyB0cmljaCBsb2kgbW90IHF1YW4gY2h1YyBjaGluaCBwaHUgVHJ1bmcgUXVvYyBub2kg DQpyYW5nIGR1IGxpY2ggc2UgbWFuZyBsYWkgbmh1bmcgbG9pIGljaCBraW5oIHRlIGxvbiBjaG8g SG9hbmcgU2EgY3VuZyBuaHUgDQpjdW5nIGNvIGNodSBxdXllbiBjdWEgVHJ1bmcgUXVvYyBkb2kg dm9pIHF1YW4gZGFvIG5heS4uIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9UaGUtZ2lvaS8y MDEwLzA0LzNCQTFCMzM0LyAyNi80LzIwMTAsIDA5OjIwIEdNVCs3DQoNClRydW5nIFF1b2MgdHVh biB0cmEgdGh1b25nIHh1eWVuIG8gVHJ1b25nIFNhDQoNCkNvIHF1YW4gcXVhbiBseSBuZ3Ugbmdo aWVwIFRydW5nIFF1b2MgaG9tIHF1YSBjaG8gYmlldCBkYSBiYXQgZGF1IHZpZWMgdHVhbiB0cmEg DQp0aHVvbmcgeHV5ZW4gbyBraHUgdnVjIHF1YW4gZGFvIFRydW9uZyBTYSBjdWEgVmlldCBOYW0u DQoNCld1IFpodWFuZywgZ2lhbSBkb2MgY3VjIHF1YW4gbHkgbmdoZSBjYSBvIEJpZW4gRG9uZywg dGh1b2MgQm8gTm9uZyBuZ2hpZXAgVHJ1bmcgDQpRdW9jLCBjaG8gYmlldCBobyB2dWEgZHVhIGhh aSB0YXUgTmd1IGNoaW5oIDMwMSB2YSAzMDIgZGVuIHRoYXkgdGhlIGNobyBoYWkgdGF1IHNvIGhp ZXUgDQozMTEgdmEgMjAyLiBDYWMgY3VvYyB0dWFuIHRyYSB0aHVvbmcgeHV5ZW4gZGEgYmF0IGRh dSB0dSBkYXUgdGhhbmcgNCwgdGFpIGtodSB2dWMgcXVhbiANCmRhbyBUcnVvbmcgU2EsIFd1IG5v aS4gDQoNCld1IG5vaSBjYWMgdGF1IG5heSBkdW9jIGRpZXUgZGkgZGUgaG8gdG9uZyB0YXUgdGh1 eWVuIGRhbmggY2EgY3VhIG5ndSBkYW4gVHJ1bmcgUXVvYyANCnRyZW4gQmllbiBEb25nLCB2YSAi a2hhbmcgZGluaCBxdXllbiBkYW5oIGJhdCB0cmVuIHZ1bmcgYmllbiIgcXVhbmggVHJ1b25nIFNh LiANCg0KKEFuaDogVGF1IG5ndSBjaGluaCAzMTEgY3VhIFRydW5nIFF1b2MgY28gdGFpIHRyb25n IDQuNTAwIHRhbiwgdHVuZyBsYSBtb3QgdGF1IGNoaWVuISkgICANCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL3hhaG9pLzIwMTAwNS9UYXUtY2EtVmlldC1OYW0tbGFpLWJpLXRhdS1UcnVuZy1R dW9jLWJhdC1naXUtOTA4MjYwLzE0OjUzLCAwNi8wNS8yMDEwIChHTVQrNykNCg0KVGF1IGNhIFZp ZXQgTmFtIGxhaSBiaSB0YXUgVHJ1bmcgUXVvYyBiYXQgZ2l1IA0KDQpUcmVuIHRhdSwgbmdvYWkg dGh1eWVuIHRydW9uZyBEYW5nIFRhbSBjb24gY28gMTEgdGh1eWVuIHZpZW4gZGV1IHRydSB0YWkg Y2FjIHhhIGN1YSANCmh1eWVuIEJpbmggU29uLCBRdWFuZyBOZ2FpLiBLaGkgdGF1IG9uZyBUYW0g YmkgYmF0IGdpdSwgdG9hbiBibyBzbyBoYWkgc2FuIGRhbmggZHVvYyANCmN1bmcgcGh1b25nIHRp ZW4gbWF5IG1vYyBiaSBjdW9wIHNhY2guIA0KDQpodHRwOi8vdml0aW5mby5jb20udm4vTU11Y3Rp bi9RdWFuc3UvVEhTSy9MQTc3MTIxL2RlZmF1bHQuaHRtbCAyNy8wNS8yMDEwLCAyMjo0NyhHTVQr NykgQ2FvIFBob25nICh0aGVvIFRIWCkNCg0KVHJ1bmcgUXVvYyB0dSB5IGxhcCBkYXQgdHJhbSBk aWVuIHRob2FpIGRpIGRvbmcgdHJlbiBkYW8gQ2h1IFRoYXAgY3VhIFZpZXQgTmFtIA0KDQpWaWVj IFRydW5nIFF1b2MgdHUgeSBsYXAgZGF0IHRoaWV0IGJpIHZpZW4gdGhvbmcgdHJlbiBkYW8gQ2h1 IFRoYXAgDQp0aHVvYyBjaHUgcXV5ZW4gbGFuaCBoYWkgVmlldCBOYW0gbGEgbW90IGhhbmggZG9u ZyBzYWkgdHJhaSwgdmkgcGhhbSANCm5naGllbSB0cm9uZyBjaHUgcXV5ZW4gdHJlbiBiaWVuIGN1 YSBWaWV0IE5hbS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAx MDMyLzIwMTAwODA2MDAxODEyLmFzcHggMDYvMDgvMjAxMCAwOjE4IA0KDQpUcnVuZyBRdW9jIHRp ZW4gaGFuaCBraGFvIHNhdCBkaWEgY2hhbiB0YWkga2h1IHZ1YyBkYW8gVHJpIFRvbiAodGh1b2Mg cXVhbiBkYW8gSG9hbmcgDQpTYSksIHNhbiBsYXAsIG1vIHJvbmcgZGFvIFRyaSBUb24gDQoNClR1 IGN1b2kgdGhhbmcgNS4yMDEwIGRlbiBuYXksIHBoaWEgVFEgZGEgc3UgZHVuZyB0YXUga2hhbyBz YXQgTS9WIFdlc3Rlcm4gU3Bpcml0IGN1bmcgDQpuaGlldSB0YXUgYmFvIHZlIHRpZW4gaGFuaCBr aGFvIHNhdCBkaWEgY2hhbiB0YWkga2h1IHZ1YyBkYW8gVHJpIFRvbiwgcXVhbiBkYW8gSG9hbmcg U2EgDQp2YSB0YWkgY2FjIGxvIGRhdSBraGkgMTQxLCAxNDIgdmEgMTQzIHRyZW4gdGhlbSBsdWMg ZGlhIFZOLCBjYWNoIGRhbyBMeSBTb24sIHRpbmggUXVhbmcgDQpOZ2FpIGtob2FuZyA5MC0xMTYg aGFpIGx5Lg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDExL1RRLXZ1 YS1ub2ktdmFpLXRyby10aWNoLWN1Yy12dWEtdGFwLXRyYW4tQmllbi1kb25nLTk0NjA2Mi8gVGhh aSBBbiAoVGhlbyBUSFgsIEFQKSAgMTA6NTIsIDA1LzExLzIwMTAgKEdNVCs3KQ0KDQpUUSB2dWEg bm9pICJ2YWkgdHJvIHRpY2ggY3VjIiB2dWEgdGFwIHRyYW4gQmllbiBEb25nDQoNCkJhbyBjaGkg VHJ1bmcgUXVvYyBkdWEgdGluLCBudW9jIG5heSB2YW4gZHV5IHRyaSBjYW0ga2V0IHRodWMgaGll biAibW90IHZhaSB0cm8gdGljaCANCmN1YyIgdHJvbmcgdmllYyBnaWFpIHF1eWV0IGNhYyB2YW4g ZGUgcXVhbiB0cm9uZyBjdWEga2h1IHZ1YyB2YSBxdW9jIHRlLiBWYSB2YW8gbmdheSANCjIvMTEs IG51b2MgbmF5IGRhIHRpZW4gaGFuaCBtb3QgY3VvYyB0YXAgdHJhbiBiYW4gZGFuIHRoYXQgdGFp IEJpZW4gRG9uZy4NCg0KKEFuaDogVGF1IGNoaWVuIFRydW5nIFF1b2MgdGFwIHRyYW4gbyBCaWVu IERvbmcgQW5oIENoaW5hbmV3cykNCg0KRGFuIGxvaSBxdWFuIGNodWMgbmdvYWkgZ2lhbyBUcnVu ZyBRdW9jLCBiYW8gY2hpIG51b2MgbmF5IG5oYW4gbWFuaCwgQmFjIEtpbmggdGltIA0Ka2llbSB2 aWVjIGdpYWkgcXV5ZXQgY2FjIHRyYW5oIGNoYXAgbGFuaCB0aG8gdmEgcXV5ZW4gaGFuZyBoYWkg dGhvbmcgcXVhIGRhbSBwaGFuIHRoYW4gDQp0aGllbiB2b2kgY2FjIGJlbiBsaWVuIHF1YW4uIA0K DQpUcm8gbHkgbmdvYWkgdHJ1b25nIEhvIENoaW5oIE5ndXlldCBraGFuZyBkaW5oLCBUcnVuZyBR dW9jIGRhbmcgbm8gbHVjIGRlIHRoaWV0IGxhcCANCmNhaSBnb2kgbGEga2hhaSBuaWVtIGFuIG5p bmggbW9pIHRhcCB0cnVuZyB2YW8gaG9wIHRhYywgY29uZyBiYW5nLCBjdW5nIHRpbiB0dW9uZyB2 YSANCmN1bmcgY28gbG9pLiANCg0KT25nIEhvIENoaW5oIE5ndXlldCBrZXUgZ29pIGNhYyBiZW4g bGllbiBxdWFuIHRyYW5oIGxhbSB4YXUgZGkgdGluaCBoaW5oIG8gQmllbiBEb25nLCANCnRyYW5o IHRhbyByYSBjYW5nIHRoYW5nIHZhIHBoYXQgc2luaCBjaG8gZ2lhaSBwaGFwIGN1b2kgY3VuZyBj dWEgdmFuIGRlLCB2YSByYW5nIHZpZWMgbmF5IA0KY28gbG9pIGljaCBjaG8gbW9pIG51b2MgbGll biBxdWFuIHRyb25nIGRvIGNvIFRydW5nIFF1b2MuDQoNClRoZW8gdHJvIGx5IG5nb2FpIHRydW9u ZyBUcnVuZyBRdW9jLCB2aWVjIHR1IGRvIHF1YSBsYWkgdHJlbiBCaWVuIERvbmcgliBtb3QgdHJv bmcgDQpuaHVuZyB0dXllbiBoYW5nIGhhaSBuaG9uIG5oaXAgbmhhdCB0aGUgZ2lvaSCWIGNodWEg YmFvIGdpbyBsYSB2YW4gZGUgdmkgcmFuZyBUcnVuZyANClF1b2MgbHVvbiB5IHRodWMgdGFtIHF1 YW4gdHJvbmcgY3VhIHZpZWMgZHV5IHRyaSB0dSBkbyBxdWEgbGFpIHRyZW4gdnVuZyBiaWVuIG5h eSwgdmEgc2UgDQpob3AgdGFjIHRpY2ggY3VjIHRyb25nIHF1YW4gaGUgaG9wIHRhYyBkYW0gYmFv IGFuIG5pbmggaGFuZyBoYWkga2h1IHZ1Yy4NCg0KVmUgdGluaCBoaW5oIGJhbiBkYW8gVHJpZXUg VGllbiwgb25nIEhvIENoaW5oIE5ndXlldCBub2kgcmFuZywgQmFjIEtpbmggdmFuIHRoZW8gZG9p IA0Kc2F0IHNhbyB0aWVuIHRyaWVuIGN1YSB0aW5oIGhpbmgsIHZhIHNlIGxhbSB2aWVjIG5vIGx1 YyBkZSBjYWkgdGhpZW4gcXVhbiBoZSB2YSBob3AgdGFjIGdpdWEgDQpjYWMgYmVuIGxpZW4gcXVh biBkZSBkdXkgdHJpIGhvYSBiaW5oIHZhIG9uIGRpbmggdGFpIGtodSB2dWMgRG9uZyBCYWMgQS4N Cg0KVHJvbmcga2hpIGRvLCB2YW8gbmdheSAyLzExLCBxdWFuIGRvaSBUcnVuZyBRdW9jIGRhIHRp ZW4gaGFuaCBjdW9jIHRhcCB0cmFuIGJhbiBkYW4gDQp0aGF0IHRhaSBCaWVuIERvbmcgZ2l1YSBs dWMgY2FuZyB0aGFuZyB0cm9uZyBraHUgdnVjIGdpYSB0YW5nIHh1bmcgcXVhbmggdmllYyBUcnVu ZyANClF1b2MgdHV5ZW4gYm8gY2h1IHF1eWVuIHZvaSBraHUgdnVjIG5heS4NCg0KQ3VvYyB0YXAg dHJhbiB0YXAgdHJ1bmcgdmFvIG1vdCBjdW9jIHRhbiBjb25nIGJvIGJpZW4gZ2lhIGRpbmgsIGNv IHN1IHRoYW0gZ2lhIGN1YSB0YXUgZG8gDQpibywgeGUgdGFuZyBsb2kgbnVvYywgdGF1IHRhbiBj b25nIG5oYW5oLiBEaWVuIHRhcCBiYXQgZGF1IHR1IHRodSBCYSB2b2kgY2FjIGhvYXQgZG9uZyAN CmN1YSB0YXUgc2FuIG5nYW0gdmEgZG8gbWluIG8gYm8gYmllbiwgdHJvbmcga2hpIHRydWMgdGhh bmcgdGFuIGNvbmcgdGhhbSBnaWEgaG8gdHJvIGRvIGJvLiANCg0KVG9uZyBjb25nIDEuODAwIGxp bmggdGhhbSBnaWEgZGllbiB0YXAgY3VuZyB2b2kgaXQgbmhhdCAxMDAgdGF1IGNoaWVuLiBDdW9j IHRhcCB0cmFuIGRpZW4NCnJhIGRvYyBibyBiaWVuIEhhaSBOYW0sIGhvbiBkYW8gbmFtIG8gZ29j IHRheSBiYWMgY3VhIEJpZW4gRG9uZy4NCg0KQmFvIGNoaSBUcnVuZyBRdW9jIGR1YSB0aW4sIGN1 b2MgZGllbiB0YXAgbWFuZyB0ZW4gIkdpYW8gTG9uZyIgZHVvYyB0aWVuIGhhbmggdmFvIGRpcCAN CmN1b2kgbmFtIGhhbmcgbmFtLiBUdXkgbmhpZW4sIGNhYyBuaGEgdG8gY2h1YyB0YXAgdHJhbiBs YW4gbmF5IGRhIHF1eWV0IGRpbmggbW9pIDIwMCANCmhvYyB2aWVuIHF1YW4gc2F0IGRpZW4gdGFw LiBDYWMgaG9jIHZpZW4gZGVuIHR1IGhvbiA0MCBxdW9jIGdpYSBraGFjIG5oYXUgZGFuZyB0aGVv IGhvYyANCnRhaSBEYWkgaG9jIFF1b2MgcGhvbmcsIGN1bmcgbmh1IGNhYyB0cnVvbmcgaGFpIHF1 YW4sIGtob25nIHF1YW4gY3VhIFRydW5nIFF1b2MuDQoNClRyb25nIGtoaSBkbywgdGFpIEhvaSBu Z2hpIENhcCBjYW8gQVNFQU4gMTcgdmEgSG9pIG5naGkgQ2FwIGNhbyBEb25nIEEgdnVhIGRpZW4g cmEgDQp0YWkgSGEgTm9pLCBjYWMgYmVuIGxpZW4gcXVhbiBkZXUgY2FtIGtldCBnaWFpIHF1eWV0 IHRyYW5oIGNoYXAgbyBiaWVuIERvbmcgYmFuZyBiaWVuIA0KcGhhcCBob2EgYmluaCBkdWEgdHJl biBsdWF0IHBoYXAgcXVvYyB0ZSwgZGFjIGJpZXQgbGEgQ29uZyB1b2MgTEhRIHZlIEx1YXQgQmll biBuYW0gDQoxOTgyLiBDYWMgbnVvYyBraGFuZyBkaW5oIHRvbiB0cm9uZyBUdXllbiBibyB2ZSBj YWNoIHVuZyB4dSBjdWEgY2FjIGJlbiBvIGJpZW4gRG9uZyANCnZhIHh1YyB0aWVuIGhpbmggdGhh bmggQm8gcXV5IHRhYyB1bmcgeHUgbyBiaWVuIERvbmcuIA0KDQpodHRwOi8vdmlldG5hbW5ldC52 bi9jaGluaHRyaS8yMDEwMDgvVHJ1bmctUXVvYy1nYXktaG9haS1uZ2hpLXZlLXR1eWVuLWJvLXBo YXQtdHJpZW4taG9hLWJpbmgtOTI3NDA4LyAxMTozNSwgMDcvMDgvMjAxMCAoR01UKzcpDQoNClRy dW5nIFF1b2MgZ2F5IGhvYWkgbmdoaSB2ZSB0dXllbiBibyBwaGF0IHRyaWVuIGhvYSBiaW5oDQoN CkNoaW5oIHNhY2ggImJlbiBtaWVuZyBobyBjaGllbiB0cmFuaCIgZGEgdGFvIHJhIG1vdCBtdWEg aGUgbm9uZyBib25nIHRhaSBEb25nIEEuIA0KVHJvbmcgdmFpIG5hbSBnYW4gZGF5LCBUcnVuZyBR dW9jIGRhIHhheSBkdW5nIHZhIHRhbmcgY3VvbmcgdHJhbmcgYmkgY2hvIGNhYyBoYW0gZG9pIA0K aGFpIHF1YW4sIGNobyBwaGVwIGx1YyBsdW9uZyBuYXkgZHV5IHRyaSBzdSBraWVtIHNvYXQgdm9p IGNhYyBsbyB0cmluaCB0aHVvbmcgbWFpLiANCg0KR2lvIGRheSwgY2FjIGhvYXQgZG9uZyBjdWEg aGFpIHF1YW4gVHJ1bmcgUXVvYyBkYW5nIGtoaWVuIG5oaWV1IHF1b2MgZ2lhIGxhbmcgZ2llbmcg DQpxdWFuIG5nYWkuIEtob25nIGl0IG51b2MgZGEgbm8gbHVjIGtpZW0gY2hlIHN1IGxvbiBtYW5o IHRydW9jIGtoaSBUcnVuZyBRdW9jIGNvIHRoZSANCmJ1b2MgdmFvIG1vdCBnaWFpIGRvYW4gbW9p Lg0KDQoiRGllbSBob2EiIGNodSBjaG90IGNoaW5oIGxhIEJpZW4gRG9uZy4gRGF5IGxhIHZ1bmcg YmllbiBjbyBuaHVuZyBob24gZGFvIGdpYXUgdGFpIA0Kbmd1eWVuIHZhIHhheSByYSB0aW5oIHRy YW5nIGNhbmggdHJhbmggbG9uIHRyb25nIHR1eWVuIGJvIGNodSBxdXllbiB0dSByYXQgbmhpZXUg bnVvYyANCm5odSBUcnVuZyBRdW9jLCBCcnVuZWksIE1hbGF5c2lhLCBQaGlsaXBwaW5lcy4uLi4g VHV5IG5oaWVuLCBjYWMgbmhhIHBoYW4gdGljaCBjaG8gcmFuZywgDQpUcnVuZyBRdW9jIGRhbmcg aGFuaCBkb25nIGl0IGhvcCB0YWMgbmhhdC4gDQoNCmh0dHA6Ly93d3cucmZhLm9yZy92aWV0bmFt ZXNlL2luX2RlcHRoL0FybWVkLWZvcmNlcy1vZi1DaGluYS1tYXNzYWNyZWQtOS1WaWV0bmFtLWZp c2hlcm1lbnMtaW4tSmFuLTIwMDUtVHJWYW4tMDExODIwMTAxNTQ3NDIuaHRtbCBUcmFuIFZhbiwg cGhvbmcgdmllbiBSRkEgMjAxMC0wMS0xOCANCg0KUXVhbiBoZSBWaWV0IFRydW5nIHRoZSBreSAy MSBkYXkgYmF0IHRyYWMgICAgDQoNClRyb25nIHRoYXAgbmllbiBkYXUgY3VhIHRoZSBreSAyMSwg c3Uga2llbiBkYW5nIGNodSB5IG5oYXQgdHJvbmcgcXVhbiBoZSBWaWV0IJYgVHJ1bmcgbGEgDQpz dSBraWVuIDkgbmd1IGRhbiBUaGFuaCBIb2EgYmkgbHVjIGx1b25nIHZ1IHRyYW5nIFRydW5nIFF1 b2MgdGhhbSBzYXQgdGFpIGtodSB2dWMgdmluaCBCYWMgYm8uIA0KDQpUaGFuZyA0IG5hbSBuZ29h aSwgVGh1IHR1b25nIFZpZXQgTmFtIHZhIFRodSB0dW9uZyBUcnVuZyBRdW9jIGRhIHF1eWV0IGRp bmggY2hvbiBuYW0gbmF5IGxhbSAiTmFtIGh1dSBuZ2hpIFZpZXQgliBUcnVuZyIuDQoNClF1YW4g aGUgVmlldCCWIFRydW5nIGR1b2MgeGFjIGxhcCBuYW0gMTk1MCB2YSB0cm9uZyBzYXUgdGhhcCBu aWVuIHZ1YSBxdWEgbGllbiB0dWMgdGhhbmcgLSB0cmFtLiANCg0KTmV1IHhldCByaWVuZyB0aGFw IG5pZW4gZGF1IHRpZW4gY3VhIHRoZSBreSAyMSB0aGkgc3Uga2llbiBuYW8gZGFuZyBjaHUgeSB2 YSB0aWV1IGJpZXUgDQpuaGF0IHRyb25nIHF1YW4gaGUgVmlldCCWIFRydW5nPyBDaHVuZyB0b2kg Y2hvbiBzdSBraWVuIDkgbmd1IGRhbiBUaGFuaCBIb2EgYmkgbHVjIA0KbHVvbmcgdnUgdHJhbmcg VHJ1bmcgUXVvYyB0aGFtIHNhdCB0YWkga2h1IHZ1YyB2aW5oIEJhYyBiby4gDQoNCk5odW5nIG15 IHR1IA0KDQpRdWFuIGhlIG5nb2FpIGdpYW8gZ2l1YSBWaWV0IE5hbSB2YSBUcnVuZyBRdW9jIGR1 b2MgdGhpZXQgbGFwIHZhbyBuYW0gMTk1MC4gVHUgZG8sIA0KVHJ1bmcgUXVvYyBobyB0cm8gVmll dCBOYW0gdmUgbmhpZXUgbWF0IHZhIGNhIGhhaSBnb2kgbmhhdSBsYSAiYW5oIGVtIi4gVGhlbyBn aW9pIA0KbmdoaWVuIGN1dSBsaWNoIHN1IHZhIG5naGllbiBjdXUgYmFuZyBnaWFvIHF1b2MgdGUs IGtlIHR1IG5hbSAxOTY4LCBxdWFuIGhlIFZpZXQgliANClRydW5nIGJhdCBkYXUgcmFuIG51dCB2 aSBWaWV0IE5hbSB0dSBjaG9pIGR1bmcgdmUgcGhpYSBUcnVuZyBRdW9jLCBjaG9uZyBMaWVuIFhv LCANCnZvbiBjdW5nIGR1b2MgVmlldCBOYW0geGVtIGxhICJhbmggZW0iIGJvaSBjdW5nIGRlbyBk dW9pIHZpZWMgeGF5IGR1bmcgY2h1IG5naGlhIHhhIGhvaS4gDQpOYW0gMTk3OCwgc2F1IGtoaSBW aWV0IE5hbSBreSBIaWVwIHVvYyBodXUgbmdoaSB2YSBob3AgdGFjIHZvaSBMaWVuIFhvLCBxdWFu IGhlICANClZpZXQgliBUcnVuZyBjaHV5ZW4gdHUgcmFuIG51dCBzYW5nIGRvIHZvLiBUcnVuZyBR dW9jIHRhbmcgY3VvbmcgaG8gdHJvIGNobyBLaCdtZXIgDQpkbyBxdWF5IHJvaSBWaWV0IE5hbS4g VGhhbmcgMTIgbmFtIDE5NzgsIFZpZXQgTmFtIHRhbiBjb25nIEtoJ21lciBkbyBnaWFpIHBob25n IA0KQ2FtcHVjaGlhLiBUaGFuZyAyIG5hbSAxOTc5LCAxMjAuMDAwIHF1YW4gVHJ1bmcgUXVvYyB0 cmFuIHNhbmcgVmlldCBOYW0sICJkYXkgY2hvIA0KVmlldCBOYW0gbW90IGJhaSBob2MiLg0KDQpH aWFvIHRyYW5oIHRyb25nIGtodSB2dWMgYmllbiBnaW9pIFZpZXQgliBUcnVuZyBrZW8gZGFpIHR1 IDE5NzkgZGVuIDE5ODguIEN1b2kgdGhhcCANCm5pZW4gMTk4MCwgZGF1IHRoYXAgbmllbiAxOTkw LCBoYWkgYmVuIG1vaSBiYXQgZGF1IGJhbiBiYWMgdmllYyAiYmluaCB0aHVvbmcgaG9hIHF1YW4g DQpoZSIuIFF1YW4gaGUgVmlldCCWIFRydW5nIGNoaW5oIHRodWMgImJpbmggdGh1b25nIGhvYSIg dmFvIG5hbSAxOTkyLiAgIA0KDQpEYXUgbmFtIDE5OTksIG9uZyBHaWFuZyBUcmFjaCBEYW4sIFRv bmcgQmkgdGh1IERhbmcgQ29uZyBzYW4gVHJ1bmcgUXVvYyBkZSByYSANCiJwaHVvbmcgY2hhbSAx NiBjaHUiLCBvbmcgTGUgS2hhIFBoaWV1LCBsdWMgZG8gbGEgVG9uZyBCaSB0aHUgRGFuZyBDb25n IHNhbiBWaWV0IA0KTmFtIHRhbiB0aGFuaCAicGh1b25nIGNoYW0gMTYgY2h1IiBuYXkgdmEgImxh bmcgZ2llbmcgaHV1IG5naGksIGhvcCB0YWMgdG9hbiBkaWVuLCBvbiANCmRpbmggbGF1IGRhaSwg aHVvbmcgdG9pIHR1b25nIGxhaSIgZHVvYyBjYSBoYWkgYmVuIHhhYyBkaW5oIGxhICJ0dSB0dW9u ZyBjaGkgZGFvLCBraHVuZyANCnRvbmcgdGhlIHBoYXQgdHJpZW4gcXVhbiBoZSBWaWV0IFRydW5n IHRyb25nIHRoZSBreSBtb2ksIGRhbmggZGF1IHF1YW4gaGUgVmlldCAtIFRydW5nIA0KYnVvYyB2 YW8gZ2lhaSBkb2FuIHBoYXQgdHJpZW4gbW9pIi4NCg0KKEFuaCBjaHVwOiBPbmcgTmd1eWVuIE1p bmggVHJpZXQgKHRyYWkpIHZhIG9uZyBIbyBDYW0gRGFvIHRhaSBCYWMgS2luaCBob20gMTgtNS0y MDA3LiBBRlAgUEhPVE8pIA0KDQpEZW4gbmFtIDIwMDAsIHF1YSAiVHV5ZW4gYm8gY2h1bmcgdmUg aG9wIHRhYyB0b2FuIGRpZW4gdHJvbmcgdGhlIGt5IG1vaSBnaXVhIFZpZXQgDQpOYW0gdmEgVHJ1 bmcgUXVvYyIsIFZpZXQgTmFtIHZhIFRydW5nIFF1b2MgY2hvIGJpZXQsIGN1bmcgdm9pICJwaHVv bmcgY2hhbSAxNiANCmNodSIsIGhhaSBiZW4gc2UgcGhhbiBkYXUgdGh1YyBkYXkgcXVhbiBoZSBz b25nIHBodW9uZyB0cmVuICJ0aW5oIHRoYW4gNCB0b3QiIGxhOiAibGFuZyANCmdpZW5nIHRvdCwg YmFuIGJlIHRvdCwgZG9uZyBjaGkgdG90LCBkb2kgdGFjIHRvdCIuIEhhaSBiZW4ga2hhbmcgZGlu aCwgY3VuZyB2b2kgDQoicGh1b25nIGNoYW0gMTYgY2h1IiwgInRpbmggdGhhbiA0IHRvdCIgbGEg ZGluaCBodW9uZyBjaGkgZGFvIGNobyBjYSBoYWkgdHJvbmcgdmllYyB0aHVjIGRheSBxdWFuIA0K aGUgc29uZyBwaHVvbmcgbyB0aGUga3kgMjEgdmk6IA0KDQoiVmlldCBOYW0sIFRydW5nIFF1b2Mg dnVhIGxhIGxhbmcgZ2llbmcgY2h1bmcgYmllbiBnaW9pLCB2dWEgbGEgYmFuIGJlIHRydXllbiB0 aG9uZyANCnR1bmcgaG8gdHJvLCBnaXVwIGRvIGxhbiBuaGF1IHRyb25nIHF1YSBraHUsIGxhaSBs YSBkb25nIGNoaSBjaGlhIHNlIGRpbmggaHVvbmcgcGhhdCB0cmllbiANCnhhIGhvaSBjaHUgbmdo aWEsIGR1b2kgc3UgbGFuaCBkYW8gY3VhIERhbmcgQ29uZyBzYW4gdmEgbGEgZG9pIHRhYyB0cm9u ZyB2aWVjIHhheSBkdW5nIA0KdmEgcGhhdCB0cmllbiBjdWEgbW9pIG51b2MiLg0KDQpUdXkgcXVh biBoZSBWaWV0IC0gVHJ1bmcgZGEgY28gInBodW9uZyBjaGFtIDE2IGNodSIgdmEgInRpbmggdGhh biA0IHRvdCIgbGFtIGtpbSBjaGkgDQpuYW0gY2hvIHZpZWMgaG9wIHRhYyBzb25nIHBodW9uZywg dGhlIG5odW5nIHN1b3QgdGhhcCBuaWVuIHZ1YSBxdWEsICBxdWFuIGhlIFZpZXQgliANClRydW5n IHZhbiBjbyByYXQgbmhpZXUgZGF1IGhpZXUgYmF0IG9uLCBkYWMgYmlldCBsYSB0YWkgYmllbiBE b25nLiANCg0KQmllbiBEb25nIC0gZGFtIG1hdSB2YSBudW9jIG1hdCANCg0KU3VvdCB0aGFwIG5p ZW4gdnVhIHF1YSwgVHJ1bmcgUXVvYyBkb24gcGh1b25nIHRodWMgaGllbiBuaGlldSBkb25nIHRh YyBuaGFtIHhhYyBkaW5oIA0KY2h1IHF1eWVuIGN1YSBobyBnYW4gbmh1IHRyZW4gdG9hbiBibyBs YW5oIGhhaSBWaWV0IE5hbS4gDQoNCkNoYW5nIGhhbiBuaHUgdHV5ZW4gYm8gdGhhbmggbGFwIGNh YyBkb24gdmkgaGFuaCBjaGluaCBiYW8gZ29tIGNhIGhhaSBxdWFuIGRhbyBIb2FuZyANClNhIHZh IFRydW9uZyBTYSBjdWEgVmlldCBOYW0uIEdheSBzdWMgZXAgZGUgY2FjIHRhcCBkb2FuIGRhdSBr aGkgbnVvYyBuZ29haSBwaGFpIGRvbiANCnBodW9uZyBjaGFtIGR1dCBjYWMgaG9wIGRvbmcgY3Vu ZyBWaWV0IE5hbSB0aGFtIGRvIGRhdSBraGksIHRyb25nIHZ1bmcgYmllbiB0aHVvYyANCmNodSBx dXllbiBjdWEgVmlldCBOYW0sIGNhbSBuZ3UgZGFuIFZpZXQgTmFtIGRhbmggY2EgdHJvbmcgdnVu ZyBiaWVuIHRodW9jIGNodSANCnF1eWVuIGN1YSBWaWV0IE5hbS4gDQoNCkRhYyBiaWV0IGxhIGNh YyBsdWMgbHVvbmcgdnUgdHJhbmcgY3VhIFRydW5nIFF1b2MgbGllbiB0dWMgYmFuLCBkYW0gY2hp bSwgcnVvdCBkdW9pIGNhYyANCnRhdSBkYW5oIGNhIGN1YSBWaWV0IE5hbSwgYmF0IGdpYW0sIGN1 b25nIGRvYXQgdGFpIHNhbiwgYnVvYyBuZ3UgZGFuIFZpZXQgTmFtIG5vcCB0aWVuIA0KY2h1b2Ms Li4uDQoNClN1IGtpZW4gY28gdGhlIGR1b2MgeGVtIGxhIHRpZXUgYmlldSBuaGF0IGNobyBxdWFu IGhlIFZpZXQgliBUcnVuZyB0cm9uZyB0aGFwIG5pZW4gdnVhIA0KcXVhLCBzYXUga2hpIGhhaSBi ZW4geGFjIGxhcCAicGh1b25nIGNoYW0gMTYgY2h1IiB2YSBjYW0ga2V0IHRodWMgdGhpICJ0aW5o IHRoYW4gNCB0b3QiIA0KbGEgdnUgdGhhbSBzYXQgbmd1IGRhbiBWaWV0IE5hbSBob2kgZGF1IHRo YW5nIDEgbmFtIDIwMDUuDQoNCkhvbSA4IHRoYW5nIDEgbmFtIDIwMDUsIHRyb25nIGtoaSBkYW5n IGRhbmggY2EgdGFpIGtodSB2dWMgVmluaCBCYWMgYm8sIG1vdCB0YXUgZGFuaCANCmNhIGN1YSBu Z3UgZGFuIHhhIEhvYSBMb2MsIGh1eWVuIEhhdSBMb2MsIHRpbmggVGhhbmggSG9hLCBWaWV0IE5h bSwgdGh1b2MgSG9wIHRhYyANCnhhIEh1bmcgQ3VvbmcsIGRvIG9uZyBMZSBWYW4gWHV5ZW4gbGFt IHRodXllbiB0cnVvbmcsIGRhIGJpIGNhbmggc2F0IGJpZW4gY3VhIFRydW5nIA0KUXVvYyBiYW4u IENvIDggdHJvbmcgMTYgbmd1IGRhbiB0cmVuIGNvbiB0YXUgbmF5IGNoZXQgdGFpIGNobywgOCBu Z3VvaSBjb24gbGFpIGJpIGJhdCwgdHJvbmcgZG8gY28gMiBiaSB0cm9uZyB0aHVvbmcuDQoNClRy dW9jIGRvLCBraGkgYmkgY2FuaCBzYXQgYmllbiBjdWEgVHJ1bmcgUXVvYyBydW90IGR1b2ksIHRo dXllbiB0cnVvbmcgTGUgVmFuIFh1eWVuIA0KZGEgcGhhdCB0aW4gaGlldSBjYXAgY3V1LiBOaGFu IGR1b2MgdGluIGhpZXUgbmF5LCBtb3QgdGF1IGRhbmggY2EgY3VuZyBjdWEgSG9wIHRhYyB4YSAN Ckh1bmcgQ3VvbmcsIGRvIG9uZyBOZ3V5ZW4gVmFuIEhvYW4gbGFtIHRodXllbiB0cnVvbmcgZGEg dGltIGRlbiBjdXUuIA0KDQpUYXUgY3VhIG9uZyBOZ3V5ZW4gVmFuIEhvYW4gY3VuZyBiaSBjYW5o IHNhdCBiaWVuIFRydW5nIFF1b2MgYmFuLiBWdSB0YW4gY29uZyB0aHUgDQpoYWkgbGFtIHRoaWV0 IG1hbmcgdGhlbSAxIG5ndSBkYW4gdmEgdGhlbSA1IG5ndW9pIGtoYWMgYmkgdGh1b25nIG5odW5n IG9uZyBOZ3V5ZW4gDQpWYW4gSG9hbiBraXAgcXVheSB0YXUgdGF1IHRob2F0LiBLaGkgdmFvIGR1 b2MgZGVuIGJvLCBuZ3VvaSB0YSBkZW0gZHVvYyB0cmVuIHRoYW4gY29uIA0KdGF1IGRhbmggY2Eg Y3VhIG9uZyBOZ3V5ZW4gVmFuIEhvYW4gY28ga2hvYW5nIDQwMCB2ZXQgZGFuLiANCg0KTmFtIG5n YXkgc2F1IHZ1IHRoYW0gc2F0IG5ndSBkYW4gVmlldCBOYW0gdHJlbiBiaWVuIERvbmcsIEJvIE5n b2FpIGdpYW8gVmlldCBOYW0gDQptb2kgbGVuIHRpZW5nLCB5ZXUgY2F1IFRydW5nIFF1b2MgZGll dSB0cmEgdmEgeHUgbHkgbmdoaWVtIG5odW5nIGtlIGdpZXQgbmd1b2kuDQpDb24gQm8gTmdvYWkg Z2lhbyBUcnVuZyBRdW9jIHRoaSB0dXllbiBibywgbHVjIGx1b25nIHR1YW4gZHV5ZW4gVHJ1bmcg UXVvYyBjaGkgYmFuIA0KaGEgdmEgYmF0IG5odW5nICJoYWkgdGFjIiB4YW0gcGhhbSB2dW5nIGJp ZW4gdGh1b2MgY2h1IHF1eWVuIGN1YSBUcnVuZyBRdW9jLCBkaW5oIGN1b3AgdGF1IGRhbmggY2Eg Y3VhIG5ndSBkYW4gVHJ1bmcgUXVvYy4NCg0KKEFuaCBjaHVwOiBUYXUgY29uZyBhbiBiaWVuIFRy dW5nIFF1b2MuIEFGUCBQaG90by4pIA0KDQpCbyBjaGkgaHV5IEJvIGRvaSBCaWVuIHBob25nIHRp bmggVGhhbmggSG9hIGNvbmcgYm8gbG9pIGtoYWkgdmEgY2FjIGNodW5nIGN1IGNobyB0aGF5IA0K Y2FjIHRhdSBkYW5oIGNhIFZpZXQgTmFtIGJpIHRhbiBjb25nIGtoaSBkYW5nIGRhbmggY2EgdHJv bmcgbGFuaCBoYWkgVmlldCBOYW0gdmEgY29uIGNhY2ggZHVvbmcgcGhhbiBkaW5oIHRvaSAxMCBo YWkgbHkuIA0KDQpOaHVuZyBzdSBraWVuIG5odSBzdSBraWVuIDggdGhhbmcgMSBuYW0gMjAwNSBj aGkgb24gYW8gdHJvbmcgbW90IHRob2kgZ2lhbiBuZ2FuIHJvaSBsYW5nIHh1b25nLiANCg0KQmF0 IGtlIG5odW5nIHN1IGtpZW4gZG8sIGdpb2kgbGFuaCBkYW8gVmlldCBOYW0gdmFuIHRpZXAgdHVj IGR1YSByYSBuaHVuZyB0dXllbiBibyBraWV1IA0Kbmh1IHR1eWVuIGJvIGN1YSBvbmcgTmd1eWVu IE1pbmggVHJpZXQsIENodSB0aWNoIE5oYSBudW9jIFZpZXQgTmFtLCBraGkgb25nIGRlbiANCnRo YW0gSGEgR2lhbmcgliBtb3QgdHJvbmcgbmh1bmcgdGluaCB0dW5nIGJpIHF1YW4gZG9pIFRydW5n IFF1b2Mgc2FuIGJhbmcgdHJvbmcgY3VvYyANCmNoaWVuIFZpZXQgliBUcnVuZyBjYWNoIG5heSBi YSB0aGFwIG5pZW46ICJUaW5oIGh1dSBuZ2hpIFZpZXQgTmFtIJYgVHJ1bmcgSG9hIGxhIHNvIG1v dCEgUGhhaSBsYW0gc2FvIGdpdSBtYWksIHRyYW4gdHJvbmcuIiANCg0KQmF0IGtlIGNhIG5odW5n IGRlIG5naGkgbmh1IGRlIG5naGkgY3VhIG9uZyBEdW9uZyBEYW5oIER5LCBjdXUgQmkgdGh1IHRo dSBuaGF0IERhaSANCnN1IHF1YW4gVmlldCBOYW0gdGFpIFRydW5nIFF1b2MsIGN1dSBUb25nIGxh bmggc3UgVmlldCBOYW0gdGFpIFF1YW5nIENoYXUsIFRydW5nIA0KUXVvYzogDQpUb2kgbGFtIHZp ZWMgdm9pIFRydW5nIFF1b2Mgc3VvdCB0dSBuYW0gMTk2MiwgZGVuIG5hbSBuYXkgdmUgaHV1IHJv aSBuaHVuZyBtYSB2YW4gDQpjdSB0aWVwIHh1YywgdmFuIHBoYWkgbGFtIHZvaSBUcnVuZyBRdW9j IC0gYW5oIGxhbmcgZ2llbmcgdG8sIGtob2UsIGxhaSB0aGFtLCB4YXUgdGluaC4gDQpNZXQgbGFt ISBMdWMgaHV1IG5naGkgbWluaCB0dW9uZyBubyBnaXVwIG1pbmggaGV0IHN1YyBuaHVuZyBtYSBu byBsdW9uIGx1b24gdGltIA0KY2FjaCB0aG9jIGdheS4gDQpOZ2F5IHRyb25nIG5odW5nIGx1YyBo byBnaXVwIGRvIG1pbmggdG8gbG9uIG5oYXQsIGhvIHZhbiBjbyB5IGRvLiBMdWMgZGF1IG1pbmgg a2hvbmcgDQpkZSB5LiBDaG8gbmVuIHRyb25nIG1vdCBidW9pIHBoYXQgYmlldSBnYW4gZGF5IHRv aSBjbyBub2kgdGhlIG5heTogIk1hdCB0b2kgZGEgdHVuZyB0aGF5IA0KdGhlIGhlIGNoYSBhbmgg YmkgVHJ1bmcgUXVvYyBtYW5nIGxvbmcgdGluIHJhIGRlIGRhbmggbHVhLCB0aGUgaGUgdG9pIGN1 bmcgY28gbHVjIGJpIA0KVHJ1bmcgUXVvYyBtYW5nIGxvbmcgdGluIHJhIGRlIGRhbmggbHVhLiBU b2kgaHkgdm9uZyB2YSBtb25nIHJhbmcgdGhlIGhlIHNhdSB0b2kga2hvbmcgbWFjIG5odW5nIGNh aSBuaHVvYyBkaWVtIGRvIi4gDQoNCmh0dHA6Ly93d3cudmlldC5yZmkuZnIvdmlldC1uYW0vMjAx MDExMDMtdHJ1bmctcXVvYy10YXAtdHJhbi1iYW4tZGFuLXRoYXQtdGFpLWJpZW4tZG9uZy1kZS10 aGktdXktdm9pLWxhbmctZ2llbmcgVHJvbmcgTmdoaWEgMDMvMTEvMjAxMCANCg0KVHJ1bmcgUXVv YyB0YXAgdHJhbiBiYW4gZGFuIHRoYXQgdGFpIEJpZW4gRG9uZyBkZSB0aGkgdXkgdm9pIGxhbmcg Z2llbmcgDQoNClF1YW4gZG9pIFRydW5nIFF1b2MgdnVhIHRvIGNodWMgbW90IGN1b2MgdGhhbyBk aWVuIHF1YW4gc3UgZG9jIGJvIGJpZW4gZGFvIEhhaSBOYW0sIA0KaHV5IGRvbmcgZ2FuIDIwMDAg bGluaCB0aHV5IHF1YW4gbHVjIGNoaWVuLiBDdW9jIHRhcCB0cmFuIGR1b2MgdHJpbmggYmF5IG5o dSBtb3QgaG9hdCANCmRvbmcgYmluaCB0aHVvbmcgY3VhIHF1YW4gZG9pIFRydW5nIFF1b2MsIG5o dW5nIEJhYyBLaW5oIGtob25nIGNoZSBnaWF1IG11YyB0aWV1IA0KdGhpIHV5IHZvaSBjYWMgbnVv YyBEb25nIE5hbSBBIGRhbmcgdHJhbmggY2hhcCBjaHUgcXV5ZW4gdm9pIGhvIHRhaSB2dW5nIFRy dW9uZyBTYSB2YSBIb2FuZyBTYS4NCg0KKEFuaDogSGFpIHF1YW4gVHJ1bmcgUXVvYyB0YXAgdHJh biB0cmVuIEJpZW4gRG9uZyBjdW9pIHRoYW5nIDYvMjAxMC4gQW5oOiBBRlAgLyBQLlllb25nLURh ZSkNCg0KVGhlbyB0byBHbG9iYWwgVGltZXMgKEhvYW4gY2F1IFRob2kgYmFvKSBzbyByYSBob20g bmF5ICgwMy8xMS8yMDEwKSBkdW9jIEFGUCB0cmljaCANCmRhbiwgY3VvYyB0YXAgdHJhbiBtYW5n IHRlbiBHaWFvIExvbmcgMjAxMCBraG9pIHN1IHR1IGhvbSBxdWEsIGRvIGJpbmggY2h1bmcgVGh1 eSANCnF1YW4gbHVjIGNoaWVuIFRydW5nIFF1b2MgdGh1YyBoaWVuLiBIdXkgZG9uZyBtb3QgbHVj IGx1b25nIGJhbyBnb20gaXQgbmhhdCAxMDAgY2hpZW4gDQpoYW0sIHRhdSBuZ2FtLCBwaGkgY28g Y2FjIGxvYWkgdmEga2hvYW5nIDE4MDAgcXVhbiBuaGFuLiANCg0KTm9pIGR1bmcgY2FjIGJhaSB0 YXAgYmFvIGdvbSBjaGllbiBkaWNoIHRhbiBjb25nIGxlbiBiYWkgYmllbiwga2V0IGhvcCBtYXkg YmF5IGNodXllbiANCnF1YW4sIHRhdSBkbyBibywgeGUgdGFuZyBsb2kgbnVvYywgdmEgdGF1IHRh biBjb25nIG5oYW5oLiBMdWMgbHVvbmcgZG8gYm8gZHVvYyB0cnVjIA0KdGhhbmcgY2hpZW4gZGF1 IGhvIHRybywgdHJvbmcga2hpIG8gbmdvYWkga2hvaSwgdGF1IHJhIG1pbiB2YSB0YXUgc2FuIHRh dSBuZ2FtIGN1bmcgdGhhbSANCmdpYSBkaWVuIHRhcC4gDQoNCk5vaSBjaG9uIGRlIHRvIGNodWMg dGFwIHRyYW4ga2hvbmcgcGhhaSBsYSBraG9uZyBjbyBjaHUgZGljaC4gQ3VvYyBkaWVuIHRhcCBk byBibyBkdW9jIA0KdG8gY2h1YyBkb2MgdGhlbyBibyBiaWVuIGN1YSBkYW8gSGFpIE5hbSwgc2F0 IFZpbmggQmFjIEJvIGN1YSBWaWV0IE5hbSB2YSBuYW0gbyBnb2MgDQpUYXkgQmFjIEJpZW4gRG9u ZyBtYSBUcnVuZyBRdW9jIGRvaSBjaHUgcXV5ZW4gdHJlbiA4MCUgZGllbiB0aWNoLCBiYXQgY2hh cCB2aWVjIFZpZXQgDQpOYW0gdmEgbmhpZXUgcXVvYyBnaWEga2hhYyBjdW5nIGtpZW0gc29hdCBj YWMgZGFvIHZhIHR1eWVuIGJvIGNodSBxdXllbiBjdWEgbWluaC4gDQoNCk11YyB0aWV1IHBobyB0 cnVvbmcgdXkgbHVjIHF1YSBjdW9jIHRhcCB0cmFuIG5heSBkYSBkdW9jIGdpb2kgY2h1YyBxdWFu IHN1IFRydW5nIFF1b2MgDQp4YWMgbmhhbi4gTW90IHNpIHF1YW4gY2hpIGh1eSBjdW9jIHRoYW8g ZGllbiB4aW4gZ2lhdSB0ZW4gZGEgY2hvIHJhbmcgY3VvYyB0aGFvIGRpZW4gDQpxdWFuIHN1IG5h eSBuaGFtIG5ldSBiYXQgdHJ1b2MgdGhlIGdpb2kgbW90IGJpbmggY2h1bmcgVGh1eSBxdWFuIGx1 YyBjaGllbiBUcnVuZyANClF1b2MgaGllbiBkYWkuIA0KDQpMeSBLaWV0IChMaSBKaWUpLCBtb3Qg Y2h1eWVuIGdpYSBUcnVuZyBRdW9jIHZlIGhhaSBxdWFuIGR1b2MgdG8gR2xvYmFsIFRpbWVzIHRy aWNoIGRhbiANCm5oYW4gZGluaCA6ICJWZSBjYW4gYmFuLCBkYXkgbGEgbW90IGN1b2MgdGFwIHRy YW4gdGhvbmcgdGh1b25nLCBuaHVuZyBubyBjdW5nIGR1YSB0cmVuIA0KdGh1YyB0ZSBjaGllbiB0 cnVvbmcgdHJvbmcgdnVuZyBCaWVuIERvbmcuIEN1b2MgdGFwIHRyYW4ga2hvbmcgcGhhaSBsYSBt b3QgdGluIGhpZXUgZGFjIA0KYmlldCwgbmh1bmcgY2h1bmcgdG9pIGNob24gZGlhIGRpZW0gZG8g ZGUgbmV1IGJhdCBuYW5nIGx1YyBjdW5nIG5odSBzdWMgbWFuaCBjdWEgaGFpIA0KcXVhbiBUcnVu ZyBRdW9jIi4gVGhlbyBjaHV5ZW4gZ2lhIG5heSA6ICIgVHJvbmcgbmh1bmcgbmFtIGdhbiBkYXks IGRhIGNvIG1vdCBzbyANCm51b2MgY2FuIHRoaWVwIHZhbyBiaWVuIERvbmcsIGN1bmcgdGFwIHRy YW4gdm9pIGNhYyBudW9jIGxhbmcgZ2llbmcgY3VhIGNodW5nIHRvaSwgZG8gZG8gDQpiYXkgZ2lv IGRlbiBsdWMgY2h1bmcgdG9pIHBoYWkgZG9pIHBobyB2b2kgbmh1bmcgaGFuaCBkb25nIGNhbiB0 aGllcCBkbyBiYW5nIHF1eWVuIGx1YyANCmNoaW5oIHRyaS4iIA0KDQpYaW4gbmhhYyBsYWkgbGEg eHVuZyBkb3QgdnUgdHJhbmcgZGEgdHVuZyB4YXkgcmEgZ2l1YSBoYWkgcXVhbiBUcnVuZyBRdW9j IHZvaSBoYWkgcXVhbiANClZpZXQgTmFtIHZhbyBuYW0gMTk4OCwga2hpIEJhYyBLaW5oIHR1bmcg bHVjIGx1b25nIGRhbmggY2hpZW0gbW90IHNvIGRhbyBkbyBWaWV0IA0KTmFtIGtpZW0gc29hdCB0 YWkgdnVuZyBxdWFuIGRhbyBUcnVvbmcgU2EsIGJhbiBjaGltIG1vdCBzbyB0YXUgVmlldCBOYW0g bGFtIGNobyBob24gDQo3MCB0aHV5IHRodSB0aGlldCBtYW5nLiBUcm9uZyBuaHVuZyBuYW0gZ2Fu IGRheSwgVHJ1bmcgUXVvYyBsYWkgY28gdGhhaSBkbyBsYW4gbHVvdCB0cm8gDQpsYWksIGtoYW5n IGRpbmggbWFuaCBtZSBob24gZG9pIGhvaSBjaHUgcXV5ZW4sIHZhIHRodW9uZyB4dXllbiBiYXQg Z2l1IHRhdSBkYW5oIGNhIGN1YSANClZpZXQgTmFtIGJpIGhvIGNobyBsYSBkYSB4YW0gbmhhcCB2 dW5nIGJpZW4gY3VhIFRydW5nIFF1b2MuDQoNClR1IG5oaWV1IHRoYW5nIG5heSwgQmFjIEtpbmgg bmdheSBjYW5nIGxvIG5nYWkgdmUgZG9uZyB0aGFpIGN1YSBWaWV0IE5hbSB2YSBjYWMgbnVvYyAN CkRvbmcgTmFtIEEgZGFuZyB0YW5nIGN1b25nIHF1YW4gaGUgdm9pIEhvYSBLeSwgZGFjIGJpZXQg bGEgdmUgcGh1b25nIGRpZW4gcXVvYyANCnBob25nLiBUaGVvIGhhbmcgdGluIEFQLCBUcnVuZyBR dW9jIHJhdCBwaGFuIG5vIHRydW9jIHN1IGtpZW4gSG9hIEt5IGdhbiBkYXkgZGEgY29uZyANCmto YWkgY2FuIHRoaWVwIHZhbyBobyBzbyBCaWVuIERvbmcuIA0KDQpZIGtpZW4gYmFuIGRvYzoNCk5W IDQvMTEvMjAxMDogDQpUcnVuZyBRdW9jIHRhcCB0cmFuIHNhdCBWaW5oIEJhYyBCbyBjdWEgVmll dCBOYW0sIG8gZ29jIFRheSBCYWMgQmllbiBEb25nIHR1YyBsYSBvIA0KbmdvYWkga2hvaSBjYWMg dGluaCBRdWFuZyBCaW5oIHZhIFF1YW5nIFRyaSBjdWEgVmlldCBOYW0uICAgDQoNCmh0dHA6Ly93 d3cuYmFvZGF0dmlldC52bi9Ib21lL3RoZWdpb2lzbzEvVHJ1bmctUXVvYy1kaWV1LWRvbmctdGF1 LW5nYW0teHVvbmctY2FuLWN1LUhhaS1OYW0vMjAxMDEwLzExNjI0OC5kYXR2aWV0IFF1b2MgVmll dCAodGhlbyBLeW9kbykgNToxMCBQTSwgMjUvMTAvMjAxMA0KDQpUcnVuZyBRdW9jIGRpZXUgZG9u ZyB0YXUgbmdhbSB4dW9uZyBjYW4gY3UgSGFpIE5hbSANCg0KSXQgbmhhdCBtb3QgdGF1IG5nYW0g aGF0IG5oYW4gVHlwZS0wOTMgZGEgZHVvYyBkaWV1IGRvbmcgeHVvbmcgbGFtIG5oaWVtIHZ1IHRh aSBjYW4gDQpjdSB0YXUgbmdhbSBvIGRhbyBIYWkgTmFtIFRydW5nIFF1b2MuDQoNClRydW9jIGRv IHZhbyBuYW0gMjAwNiwgaGFpIHF1YW4gVHJ1bmcgUXVvYyBjdW5nIGRhIHhhYyBuaGFuIHZpZWMg ZGlldSBkb25nIHRhdSBuZ2FtIA0KaGF0IG5oYW4gbG9wIFNoYW5nIChUaHVvbmcpIHh1b25nIGNh biBjdSBIYWkgTmFtLiANCg0KTmdvYWkgcmEgbmhpZXUgdGhvbmcgdGluIGNobyBoYXkgaXQgbmhh dCBtb3QgdGF1IG5nYW0gbW9pIG5oYXQgY3VhIFRydW5nIFF1b2MgVHlwZS0NCjA5NCBjdW5nIGRh IGR1b2MgZGlldSBkb25nIHh1b25nIGRheSB2YW8gbmFtIDIwMDguIFR1eSBuaGllbiBQTEFOICBr aG9uZyBjb25nIGJvIA0KY2hpIHRpZXQgdmUgdmllYyBkaWV1IGRvbmcgbmF5Lg0KDQooQW5oIGNo dXAgdGF1IG5nYW0gbG9wIFNoYW5nIGNvIG1hdCB0YWkgZGFvIEhhaSBOYW0uKSANCg0KTmh1IHZh eSwgSGFpIHF1YW4gVHJ1bmcgUXVvYyBQTEFOIGRhIHNhbiBzYW5nIGNobyB2aWVjIHRyaWVuIGto YWkgaG9hdCBkb25nIHRhaSBBbiANCkRvIER1b25nIHZhIGJpZW4gRG9uZy4gUGhvaSBob3Agdm9p IHRhdSBzYW4gYmF5IGRhbmcgZHVvYyBkb25nIHRhbyB0aGFuaCBtb3QgaGFtIA0KZG9pIG1hbmgg bWUsIG1vIHJvbmcgcGhhbSB2aSBhbmggaHVvbmcgdGFpIGJpZW4gSG9hIERvbmcgYmFvIGdvbSB2 dW5nIGJpZW4geHVuZyANCnF1YW5oIHF1YW4gZGFvIG1hIFRydW5nIFF1b2MgZGFuZyB0cmFuaCBj aGFwIHZvaSBuaGlldSBudW9jIGtoYWMuLg0KDQpUYXUgbmdhbSBoYXQgbmhhbiBUeXBlLTA5MyBj byBjaGlldSBkYWkga2hvYW5nIDExMCBtZXQsIGR1b2MgZGFuaCBnaWEgbmdhbmcgaGFuZyANCnZv aSB0YXUgbmdhbSBsb3AgVmljdG9yLUlJSSBjdWEgSGFpIHF1YW4gTmdhIHZlIGtoYSBuYW5nIGhv YXQgZG9uZyB2YSB0aWVuZyBvbi4NCg0KSGFpIE5hbSBsYSBjYW4gY3UgY2hvIHRhdSBuZ2FtIGxv biBuaGF0IGtodSB2dWMgdm9pIGRheSBkdSBoYSB0YW5nIGNobyB2aWVjIG5lbyBkYXUgdmEgDQp0 aWVuIGhhbmggY2FjIGhvYXQgZG9uZyBiYW8gZHVvbmcuIE1vdCBidWMgYW5oIGNodXAgdHUgdmUg dGluaCBnYW4gZGF5IGRhIHhhYyBkaW5oOiBoZSANCnRob25nIGtodSB0dSBjaG8gdGF1IG5nYW0g dmEgdGF1IG5vaSBkYSBkdW9jIHhheSBkdW5nLiANCg0KTmdvYWkgcmEsIG1vdCBjYW4gY3UgdGF1 IG5nYW0gdHJvbmcgbG9uZyBkYXQgY3VuZyBkYSBkdW9jIHhheSBkdW5nIG8gZGF5LiBOaGlldSAN CmNodXllbiBnaWEgcXVhbiBzdSBjaG8gcmFuZzogQ2FjIGNvIHNvIHRyb25nIGxvbmcgZGF0IG5h eSBsYSBkaWVtIG5oYW4gY2hpZW4gbHVvYyBjaG8gDQpoYW0gZG9pIHRhdSBzYW4gYmF5IGN1YSBo byB0cm9uZyB0dW9uZyBsYWkuIA0KDQpodHRwOi8vd3d3LnNlYXNmb3VuZGF0aW9uLm9yZy9uZXdz LWFib3V0LXNvdXRoLWVhc3QtYXNpYS1zZWEvYWN0aW9ucy1mcm9tLWNoaW5hLzMxNC10cnVuZy1x dWMtYS1obi0xMDAwLXF1YW4tdGktcXVuLW8taG9hbmctc2EtdHJuZy1zYS1jYS12aXQtbmFtLS1k aW4tdHAtdG4tY29uZyBUaHUgaGFpLCAxOSBUaGFuZyA0IDIwMTAgMTA6MzcgDQoNClRydW5nIFF1 b2MgZHVhIGhvbiAxMDAwIHF1YW4gdG9pIHF1YW4gZGFvIEhvYW5nIFNhLCBUcnVvbmcgU2EgZGUg ZGllbiB0YXAgdGFuIGNvbmcgDQoNClZJVCAtIFRyb25nIHZvbmcgMTkgbmdheSBrZSB0dSAyMy8z LCBoYW0gZG9pIEJhYyBIYWkgdGh1b2MgbHVjIGx1b25nIGhhaSBxdWFuIFRydW5nIA0KUXVvYywg dGllbiBoYW5oIGRpZW4gdGFwIGtpZW0gdHJhIHNhdCBoYWNoIGNhYyBraG9hIG11YyBodWFuIGx1 eWVuIHRhaSB2dW5nIGJpZW4gdGh1b2MgDQpoYWkgcXVhbiBkYW8gSG9hbmcgU2EgdmEgVHJ1b25n IFNhIGN1YSBWaWV0IE5hbS4gDQoNClRoZW8gbmh1IGtlIGhvYWNoIGh1YW4gbHV5ZW4gaGFuZyBu YW0sIGN1IHZhbyB0aGFuZyAzIHZhIHRoYW5nIDksIEhhbSBkb2kgQmFjIEhhaSANCnRodW9jIGx1 YyBsdW9uZyBoYWkgcXVhbiBUcnVuZyBRdW9jIHNlIHRpZW4gaGFuaCBkaWVuIHRhcCBraWVtIHRy YSBzYXQgaGFjaCBjYWMga2hvYSANCm11YyBodWFuIGx1eWVuLiBUaGVvIGRvIHZhbyBjdW9pIHRo YW5nIDMgZGF1IHRoYW5nIDQgdnVhIHF1YSwgaGFtIGRvaSBuYXkgZGEgeHVvbmcgDQpoYWkgcXVh biBkYW8gSG9hbmcgU2EgdmEgVHJ1b25nIFNhIGN1YSBWaWV0IE5hbSBkaWVuIHRhcC4NCg0KVGhl byBuaHUga2UgaG9hY2gsIGhhbSBkb2kgbmF5IGJhdCBkYXUgY2FjIGtob2EgbXVjIGh1eWVuIGx1 eWVuIGRpZW4gdGFwIHR1IG5nYXkgMjMgDQp0aGFuZyAzIHZhIGtlbyBkYWkgdHJvbmcgdm9uZyAx OSBuZ2F5IHRyZW4gaGFpIGtodSB2dWMgcXVhbiBkYW8gSG9hbmcgU2EgdmEgVHJ1b25nIFNhIA0K Y3VhIFZpZXQgTmFtLiBUcm9uZyBkbyBoYWkga2hvYSBtdWMgZHVvYyB0YXAgdHJ1bmcgZGllbiB0 YXAgbmhhdCBkbyBsYSBoYW5oIHRyaW5oIHZpZW4gDQpkdW9uZyB0cmVuIGJpZW4gdmEgaGFuaCB0 cmluaCB2dW90IGRhaSBjaGF1LiBEdW9jIGJpZXQgdGhhbSBnaWEgbGFuIGRpZW4gdGFwIGRhaSBu Z2F5IA0KdHJlbiBiaWVuIG5heSBjbyBob24gMTAwMCBiaW5oIHN5LCBzeSBxdWFuIGNoaSBodXkg Y2FjIGJpZW4gZG9pIHRhdSB0aHVvYyBIYW0gZG9pIEJhYyANCkhhaS4NCg0KTGFuIGRpZW4gdGFw IG5heSBkdW9jIGNobyBsYSBsYW4gZGllbiB0YXAgdHJlbiBiaWVuIHF1eSBtbyBsb24gZGF1IHRp ZW4gY3VhIGhhbSBkb2kgbmF5IA0Ka2UgdHUga2hpIGR1b2MgdGhhbmggbGFwLg0KDQpUaGVvIG9u ZyBaaGFuZ1BpbmdKdW4gliBwaG8gY2hpIGh1eSBoYW0gZG9pLCBkYXkgbGEgZG90IGRpZW4gdGFw IHF1YW4gdHJvbmcgZHVvYyANCnRpZW4gaGFuaCB0aGVvIGtlIGhvYWNoIGh1YW4gbHV5ZW4gdHJv bmcgbmFtLiBUcm9uZyBsYW4gdGhhbSBnaWEgZGllbiB0YXAgbmF5IGNvIGNhYyANCnRhdSBuaHU6 IGhvIHZlIHRlbiBsdWEgNTM1LCA1MzcsIDExNS4uLkhhbSBkb2kgbmF5IGRhIHZ1b3QgcXVhIHF1 YW5nIGR1b25nIGhvbiA2MDAwIA0KaGFpIGx5IHRyb25nIDE5IG5nYXksIGRvbmcgdGhvaSBjYWMg YmllbiBkb2kgZGEgdGh1YyBoaWVuIDQgZ2lhaSBkb2FuIGh1YW4gbHV5ZW4ga2hhYyANCm5oYXUs IHRvIGNodWMgMyBsYW4gaG9wIGNoaSBodXkgdmEgMTEgbGFuIHRydWMgYmFuIHRhYyBjaGllbi4g DQoNCkNhYyBraG9hIG11YyBkdW9jIHRvIGNodWMgZGllbiB0YXAgbmh1OiBob3AgZG9uZyBkb3Qg a2ljaCwgZG8gYm8gZHVvbmcga2hvbmcsIGNob25nIA0KZG8gYm8gZHVvbmcga2hvbmcuLi4ucXVh IGRvIGhvYW4gdGhhbmggdG90IGNhYyBtdWMgdGlldSwgeWV1IGNhdSBjdWEgbmhpZW0gdnUgaHVh biANCmx1eWVuIGRlIHJhLg0KDQpCZW4gY2FuaCBkbywgaGFtIGRvaSBuYXkgY29uIHRpZW4gaGFu aCB2YW8gdGhhbSBtb3Qgc28gZGFvIHRodW9jIHF1YW4gZGFvIFRydW9uZyBTYSANCmRvIG51b2Mg bmF5IGNoaWVtIGRvbmcgbmh1IGRhbyBDaHUgVGhhcCwgQnViaS4uLiwgdGh1b2MgY2h1IHF1eWVu IGN1YSBWaWV0IE5hbS4gDQoNCmh0dHA6Ly9iaWVuZGFvdmlldG5hbS5jb20vMjAxMC8wOC8yMC9o YWktcXVhbi10cnVuZy1xdW9jLWxhaS10by1jaHVjLWRpZW4tdGFwLXRhaS1ob2FuZy1zYS8gMjAg QXVnIDIwMTAgDQogDQpIYWkgcXVhbiBUcnVuZyBRdW9jIGxhaSB0byBjaHVjIGRpZW4gdGFwIHRh aSBIb2FuZyBTYSANCg0KQmF0IGNoYXAgbmh1bmcgcGhhbiB1bmcgdmEgdHV5ZW4gYm8gY2h1IHF1 eWVuIGtob25nIHRoZSB0cmFuaCBjYWkgY3VhIFZpZXQgTmFtIGRvaSANCnZvaSBxdWFuIGRhbyBI b2FuZyBTYSwgVHJ1bmcgUXVvYyB2YW4gdGllcCB0dWMgbmdhbmcgbmhpZW4gY2hvIHRvIGNodWMg aG9hdCBkb25nIGRpZW4gDQp0YXAgcXVhbiBzdSBjdWEgaGFpIHF1YW4gdGFpIGtodSB2dWMgbmF5 LiANCg0KTW90IHNvIGJhbyBjaGkgSG9uZyBLb25nIGR1YSB0aW4sIHZ1YSBxdWEgVHJ1bmcgUXVv YyBkYSBjaG8gaGFuZyB0cmFtIHhlIGJvYyB0aGVwIA0KbHVvbmcgY3UsIHBoYW8gdHUgaGFuaCwg eGUgY2hvIHF1YW4gdm9pIGhhbmcgbmdhbiBiaW5oIGxpbmggcmEgcXVhbiBkYW8gSG9hbmcgU2Eg dGllbiANCmhhbmggZGllbiB0YXAgdGh1YyBiaW5oLg0KVGhlbyBkbywgbm9pIGR1bmcgY2h1IHll dSBjdWEgY3VvYyBkaWVuIHRhcCBsYW4gbmF5IGRvIGxhIGRpZW4gdGFwIHRhbiBjb25nIHZhIHBo b25nIA0Kbmd1IGRvaSB2b2kgY2FjIGN1bSBkYW8gbWEgVHJ1bmcgUXVvYyBkYSBjaGllbSBkb25n IGN1YSBWaWV0IE5hbSB0YWkgcXVhbiBkYW8gbmF5Lg0KVHJvbmcgZG8sIGJhbyBjaGkgVHJ1bmcg UXVvYyBuaGFuIG1hbmgsIGRpZXUgZGFjIGJpZXQgZGFuZyBjaHUgeSB0cm9uZyBsYW4gZGllbiB0 YXAgDQpuYXkgZG8gY2hpbmggbGEgbGFuIGRhdSB0aWVuIGhhaSBxdWFuIG51b2MgbmF5IGR1YSB2 YW8gc3UgZHVuZyB0YWMgY2hpZW4gdHJlbiBkYW8gbW90IA0Ka2hvaSBsdW9uZyBsb24gY2FjIHRy YW5nIHRoaWV0IGJpIHZ1IGtoaSBtb2kgbWEgdHJ1b2MgbmF5IFRydW5nIFF1b2MgY2h1YSB0dW5n IGNobyB2YW8gDQp0aGFtIGdpYSBjYWMgY3VvYyBkaWVuIHRhcCB0cnVvYyBkby4gQmVuIGNhbmgg ZG8sIGNhYyB4ZSB0aGlldCBnaWFwIGNobyBxdWFuIGx1b25nIGN1IA0KdGhhbSBnaWEgZGllbiB0 YXAgbmF5IGN1bmcgaG9hbiB0b2FuIGR1b2MgdHJhbmcgYmkgbW9pLg0KDQpDdW5nIHRoZW8gdG8g YmFvIG5heSwgbXVjIGRpY2ggY3VhIGN1b2MgZGllbiB0YXAgbmF5IGN1YSBoYWkgcXVhbiBUcnVu ZyBRdW9jIGRvIGxhIA0KbmhhbSAiZG9pIGtoYW5nIiB2b2kgY3VvYyBkaWVuIHRhcCB0cmVuIGJp ZW4gRG9uZyBzYXAgdG9pIHZvaSBzdSB0aGFtIGdpYSBjdWEgTXkgdmEgDQpOaGF0LCBiZW4gY2Fu aCBkbyBkYXkgY29uIGxhIG1vdCAibG9pIGNhbmggYmFvIGtob25nIGxvaSIgY3VhIEJhYyBLaW5o Lg0KDQpOZ29haSByYSwgY3VvYyBkaWVuIHRhcCBsYW4gbmF5IGNvbiBodXkgZG9uZyBzdSB0aGFt IGdpYSBjdWEgbW90IHN1IGRvYW4gcGhvbmcga2hvbmcgDQpUcnVuZyBRdW9jIGRvbmcgdGFpIHF1 YW4ga2h1IFF1YW5nIENoYXUuIFRoZW8gZG8sIG5vaSBkdW5nIG1hIHF1YW4ga2h1IG5heSB0aGFt IA0KZ2lhIGRpZW4gdGFwIGJhbyBnb20ga2hvYSBtdWMgdGllcCBkYXUgdHJlbiBraG9uZywgdGFu IGNvbmcgZGFuaCBjaGllbSBkYW8sIGRpZW4gdGFwIA0KcGhvbmcga2hvbmcuLi4NCg0KVmllYyBU cnVuZyBRdW9jIHRvIGNodWMgZGllbiB0YXAgdGh1YyBiaW5oIHRhaSBxdWFuIGRhbyBIb2FuZyBT YSBjdWEgVmlldCBOYW0gbGEgaGFuaCANCmRvbmcgdmkgcGhhbSBuZ2hpZW0gdHJvbmcgY2h1IHF1 eWVuIHRyZW4gYmllbiBjdWEgVmlldCBOYW0uIFRydW5nIFF1b2MgY2FuIHBoYWkgdG9uIA0KdHJv bmcgQ29uZyB1b2MgdmUgbHVhdCBiaWVuIG5hbSAxOTgyIGN1YSBMaWVuIEhvcCBRdW9jIHZhIFR1 eWVuIGJvIGNodW5nIHVuZyB4dSANCmdpdWEgY2FjIGJlbiB0cm9uZyB2YW4gZGUgYmllbiBEb25n IG5hbSAyMDAyLiANCg0KLQ0KaHR0cDovL3d3dy5kYW5sZW50aWVuZy5uZXQvc3BpcC5waHA/YXJ0 aWNsZTU3MjYgTkhRIDE5LzA0LzIwMTANCg0KTW90IHRoYWkgZG8gdm8gY2FtIA0KDQpNYXkgdGhh bmcgdnVhIHF1YSwgY3UgZGFuIG1hbmcga2hvbmcgbmdvdCB4b24geGFvIHZlIGNhYyBjYW5oIG51 IHNpbmggZGFuaCBuaGF1IG1vdCANCmNhY2ggdGFuIG5oYW4uIEhhdSBuaHUgYWkgY3VuZyB0aGF5 IGRpZXUgbmF5OiBob2Mgc2luaCBkYW5oIG5oYXUgbGEgY2h1eWVuIGtoYSBiaW5oIA0KdGh1b25n OyBudSBzaW5oIGRhbmggbmhhdSB0dXkga2hvbmcgYmluaCB0aHVvbmcgbmh1bmcgY3VuZyBraG9u ZyBjbyBnaSBkYW5nIG5nYWMgDQpuaGllbiBjaG8gbGFtLiBOZ3VvaSB0YSBjaGkgbmdhYyBuaGll biB0cnVvYyB0aGFpIGRvIGJpbmggdGhhbiBkdW5nIGR1bmcgY3VhIGNhYyBudSANCnNpbmgga2hh YyBjdW5nIG5odSBjdWEgbmh1bmcgbmd1b2kgcXVhIGxhaSBiZW4gZHVvbmcuIEtob25nIGFpICBj YW4gdGhpZXAuIERhIGRhbmguIA0KSG8gY3VuZyBraG9uZyBjbyBjaHV0IGNhbSB4dWMgbmFvIGNh LiBHaWFuIGR1PyBLaG9uZy4gVGh1b25nIGNhbT8gS2hvbmcuIFF1YW4gDQp0YW0/IEhpbmggbmh1 IGN1bmcga2hvbmcuDQpOaG8sIHRydW9jIGRvIG51YSwgY3VuZyBkdW9jIHR1bmcgbGVuIGludGVy bmV0LCBjYWkgdmlkZW8gY2xpcCBxdWF5IGNhbmggbW90IG9uZyBibyANCmNob25nIHRyb2kgbmd1 b2MgaGFpIGNhbmggdGF5IGR1YSBjb24gZGF1IHJvaSB2YXQgcmEgbmdvYWkgZHVvbmcuIExhbiBs b2Mgbmh1IG1vdCBjb24gDQpoZW8uIENoaSBjbyBkdWEgY29uIG5obyBsYSBraG9jIGJlbiBtZS4g Um9pIGNhbmggbW90IGJhIGdpYSBiaSBtYXkgY29uIGNobyB0cm9uZyBkb24gDQpkaWVuIGNhIHBo ZSBjYW4gY2hldCB0cnVvYyBzdSBkdW5nIGR1bmcgY3VhIG5oYW4gdmllbiBiYW8gdmUgZG9uIGRp ZW4uIA0KVG9pIGFjIG8gZGF1IGN1bmcgY28uIE5odW5nIGNhbmggdGh1b25nIHRhbSBvIGRhdSBj dW5nIGNvLiBOaHVuZyBsYW0gdGhlIG5hbyBkZSBnaWFpIA0KdGhpY2ggZHVvYyBuaHVuZyBzdSB2 byBjYW0gbGEgbHVuZyBjdWEgbmh1bmcgbmd1b2kgZGFuZyB0YW4gbWF0IGNodW5nIGtpZW4gdG9p IGFjIHZhIA0Kbmh1bmcgY2FuaCB0aHVvbmcgdGFtIG1hIHZhbiB0aG8gbyB2YSBkdW5nIGR1bmcg bmh1IHRoZT8NCk1hIGhpbmggbmh1IGtob25nIHBoYWkgY2hpIGNvIG5ndW9pIGRhbiBtb2kgdGhv IG8gaGF5IGR1bmcgZHVuZyB2byBjYW0uIE5nYXkgZ2lvaSANCmxhbmggZGFvIGN1bmcgdGhlLg0K Q29uIG5obywgbmFtIDIwMDgsIG11YSBsdSB0cmFuIG5nYXAgdGhhbmggcGhvIEhhIE5vaS4gRHVv bmcgbmdoZW4uIERpZW4gdGF0LiBOaGluIA0KZGF1IGN1bmcgdGhheSAgbnVvYyBtZW5oIG1vbmcu IFRoaWV0IGhhaSB2ZSB0YWkgc2FuIHZvIGtlLiBUaGlldCBoYWkgdmUgbmhhbiBtYW5nIGN1bmcg DQpjby4gVmF5IG1hLCBkYSBraG9uZyBjbyB2ZSBnaSBkb25nIGNhbSB2b2kgZGFuIGNodW5nLCBv bmcgUGhhbSBRdWFuZyBOZ2hpLCBiaSB0aHUgDQp0aGFuaCB1eSBIYSBOb2ksIGxhaSBjaGUgdHJh Y2ggbGEgZGFuIGNodW5nICJiYXkgZ2lvIHNvIHZvaSBuZ2F5IHh1YSB5IGxhaSBOaGEgbnVvYyBs YW0uIA0KQ3UgY2hvIHRyZW4gdmUsIGNobyBjdW5nIGNhcCBjYWkgbmF5LCBobyB0cm8gY2FpIGtp YSBjaHUga2hvbmcgZGVtIGhldCBzdWMgcmEgdHUgbGFtLiIgDQooaHR0cDovL3d3dy5raW5odGVu b25ndGhvbi5jb20udm4vU3RvcnkveGFob2kvMjAwOC8xMS8xNTY1Ni5odG1sKS4gQ2F1IG5vaSBh eSBraGllbiANCmNobyBtb3QgbmhhIHBoZSBiaW5oIGRvbmcgdGhvaSBjdW5nIGxhIG1vdCBkaWNo IGdpYSB2b24gYmluaCB0aHVvbmcsIGhpZW0ga2hpIGJhbiANCmNodXllbiBjaGluaCB0cmkgeGEg aG9pLCBwaGFpIHBoYSBsZSB2aWV0IGhhbiBtb3QgYmFpLCBtbyBkYXUgYmFuZyBjYXU6ICJDaGkg cmllbmcgY2F1IA0Kbm9pIGN1YSBvbmcgYmkgdGh1IHRoYW5oIHV5IEhhIE5vaSBkYSB4dW5nIGRh bmcgY2hvIG9uZyBuaGFuIHR1IG1vaSBuZ3VvaSBkYW4gc29uZyANCnRyb25nIGNhYyBraHUgYmkg bmdhcCBsdXQgbWF5IG5nYXkgdnVhIHF1YSBtb3QgY2FpIGdpIGRvLiBUdXkgdGFtIG1vaSBuZ3Vv aSB0aG9pOiBob2FjIA0KbW90IGNhaSB0YXQsIGhvYWMgbW90IGNhaSBuaG8gLnYudi4iDQpNb3Qg Y2FpIHRhdCBob2FjIG1vdCBjYWkgbmhvIGRhbmggY2hvIFBoYW0gUXVhbmcgTmdoaSB2aSBvbmcg YmF5IHRvIHN1IHZvIGNhbSBiYW5nIA0KbW90IGxvaSBub2kuIENvIGRpZXUgbmVuIG5obyBiaWV1 IGhpZW4gY2hpbmggY3VhIHN1IHZvIGNhbSBraG9uZyBwaGFpIGxhIGxvaSBub2kuIE1hIGxhIA0K c3UgaW0gbGFuZy4gSW0gbGFuZyB0cnVvYyBzdSBsYWMgaGF1LiAgSW0gbGFuZyB0cnVvYyBzdSBu Z2hlbyBkb2kuIEltIGxhbmcgdHJ1b2Mgbmh1bmcgDQpiYXQgY29uZyB0cm9uZyB4YSBob2kuIElt IGxhbmcgdHJ1b2Mgbmh1bmcgc3Ugbmh1YyBuaGEgbWEgbmd1b2kgZGFuLCBjdSB0aGUgbGEgbmh1 bmcgDQpuZ3UgZGFuIGJpIFRydW5nIFF1b2MgaGFuaCBodW5nIGhvYWMgYmF0IGJvLiBJbSBsYW5n LiBOaGluIGRhdSBjdW5nIHRoYXkgaW0gbGFuZy4gVHUgDQpuaHVuZyBuZ3VvaSBjbyBjaHVjIHR1 b2MgdmEgcXV5ZW4gaGFuaCBjYW8gbmhhdCBudW9jLg0KS2hvbmcgdGhlIGtob25nIG5nYWMgbmhp ZW4uIFZlIHBodW9uZyBkaWVuIGx5IHRodXlldCwgZGFuZyBjb25nIHNhbiBsdWMgbmFvIGN1bmcg dG8gDQp2ZSBkZSBjYW8gc3UgdGh1b25nIGNhbSB0cnVvYyBuaHVuZyBiYXQgaGFuaCBjdWEgY29u IG5ndW9pIGNvIG1hPyBWZSBwaHVvbmcgZGllbiANCnRydXllbiB0aG9uZywgbmd1b2kgVmlldCB2 b24gZHVvYyB4ZW0gbGEgaGF5IHF1YW4gdGFtIHZhIGdpdXAgZG8gbmhhdSBsYW0gbWE/IENhIA0K ZGFvLCB0dWMgbmd1LCBjbyB0aWNoLCB2YW4gaG9jLCB2YSBjYSBraW5oIG5naGllbSB0cm9uZyBk b2kgc29uZyBoYW5nIG5nYXkgY3VuZyBjaG8gDQpjaHVuZyB0YSB0aGF5LCBuZ2F5IHh1YSBuZ3Vv aSB0YSBzb25nIHRodWMgc3UgbGEgY28gdGluaC4NClZheSBtYSB0YWkgc2FvIGJheSBnaW8gbGFp IHRoZT8NClRvaSBuaG8gbW90IGt5IG5pZW0gdHJvbmcgY2h1eWVuIHZlIHRoYW0gVmlldCBOYW0g bGFuIGRhdSBzYXUgMTEgbmFtIG8gbmdvYWkgcXVvYy4NCkxhbiBheSwgbmFtIDE5OTYsIHR1IFVj LCB0b2kgdmUgdGhhbmcgSGEgTm9pLiBUcmVuIGR1b25nIHR1IHBoaSB0cnVvbmcgTm9pIEJhaSB2 ZSANCnRydW9uZyBEYWkgaG9jIE5nb2FpIE5ndSBvIFBodSBYdWFuLCBjaGllYyB4ZSBidXl0IGJp IGR1bmcgbGFpLCBrZXQgY3VuZywgbyBtb3QgbmdhIA0KYmEuIENvIHRhaSBuYW4geGUgY28uIE5n b2kgdHJlbiB4ZSwgbmhpbiB4dW9uZywgdG9pIHRoYXkgbW90IHRoYW5oIG5pZW4gbmFtIHNvbmcg c29haSANCmdpdWEgZHVvbmcuIENoaWVjIHhlIGdhbiBtYXkgbmdhIGJlbiBjYW5oLiBUcmVuIGRh dSBhbmggdGhhbmggbmllbiBjbyB2ZXQgbWF1LiBBbmggDQpuYW0geWVuLCBsYXUgbGF1IGNoYW4g dGF5IGxhaSBnaWF0IGdpYXQgbWF5IGNhaS4gQ2h1bmcgcXVhbmggYW5oLCBuaGlldSwgdGhhdCBu aGlldSBuZ3VvaSANCmR1bmcgeGVtLiBEdW5nIGxhIHhlbS4gS2hvbmcgYWkgbGFtIGdpIGNhLiBI byBkdW5nIGNoYXQgdHJlbiBkdW9uZywgbGFtIG5naGVuIGNhIA0KZ2lhbyB0aG9uZy4gTmh1bmcg a2hvbmcgYWkgbGFtIGdpIGNhLiBIbyBjaGkgbmhpbi4gTmhpZXUgbmd1b2kgbm9pIGNodXllbiwg YmFuIHRhbiwgY2hpIA0KY2hvLiBDbyBuZ3VvaSB2dWEgbm9pIHZ1YSBjdW9pLiBDbyBsZSBobyBj aG8gY29uZyBhbiB0b2kuIENvIHRoZSBoby4uLiBUb2kga2hvbmcgYmlldC4gDQpOZ29pIHRyZW4g eGUsIHRvaSBkaSB0dSBuZ2FjIG5oaWVuIGRlbiBkYXUgeG90LiBUdSBuaGllbiBsb2UgbGVuIHkg bmdoaTogSGluaCBuaHUgY28gY2FpIGdpIA0KZG8gaG9pLi4uIGFjLg0KSGluaCBhbmggYXkgY3Ug YW0gYW5oIHRvaSBtYWkuIE1vdCBsYW4sIHRvaSBrZSB2b2kgYmFuIGJlIG5naGUuIEVtIGN1YSBt b3Qgbmd1b2kgYmFuIA0KY3VhIHRvaSwgdHUgVmlldCBOYW0gc2FuZywgZ2lhaSB0aGljaDogTW9p IG5ndW9pIGJhdCBkb25nIHZpIG5nYWkuIE5nYWkgZ2k/IE5nYWkgdmEgbGF5LCANCm5nYWkga2hh YyBuZ3VvaSwgIG5nYWkgYmkgaGlldSBsYW0gdmkgZGEgY28gdHJ1b25nIGhvcCBuZ3VvaSBiaSBu YW4gYmkgbW9jIHR1aS4uLiBFbSANCm5ndW9pIGJhbiBjdWEgdG9pIGtlLCBjYWNoIGRheSBtb3Qg dGhvaSBnaWFuIG5nYW4sIHRyb25nIG1vdCB0YWkgbmFuIHhlIGNvLCBuZ3VvaSBiaSBuYW4gDQpu Z2F0IHhpdSB0cmVuIGR1b25nLiBEZW4gbHVjIHRpbmggZGF5LCB0aGF5IG1pbmggbmFtIHRyb25n IGJlbmggdmllbiwgYW5oIHRhIGdpbyB0YXkgDQpkaW5oIHhlbSBnaW86IGRvbmcgaG8gYmllbiBt YXQ7IHRobyB0YXkgdmFvIHR1aSBkaW5oIGxheSBjYWkgZGllbiB0aG9haSBkaSBkb25nOiBjaGll YyANCmRpZW4gdGhvYWkgYmllbiBtYXQuIFJvIHRheSB2YW8gdHVpIHF1YW46IGNhaSB2aSB0aWVu IHZhIGdpYXkgdG8gY3VuZyBiaWVuIG1hdC4gVHVvbmcgYmFjIA0Kc2kgaGF5IHkgdGEgY2F0IGRh dSBkbyB0cm9uZyB0aG9pIGdpYW4gYW5oIGJhdCB0aW5oLiBOaHVuZyBob2ksIGtob25nIGFpIGJp ZXQgY2EuDQpOZXUgZG8gbGEgbW90IGxvaSBnaWFpIHRoaWNoLCBjaHVuZyB0YSB0aGF5IGdpIGRh bmcgc2F1IGxvaSBnaWFpIHRoaWNoIGF5PyBUcnVvYyBoZXQgbGEgY2FtIA0KZ2lhYyBzbyBiaSBu Z2hpIG5nby4gRGlldSBkbyBjdW5nIGNvIG5naGlhIGxhIG5naGkgbmdvIG5ndW9pIGtoYWMuIFZh LCBxdWFuIHRyb25nIGhvbiwgDQpuZ2hpIG5nbyB2YW8gY29uZyBseS4gVmkgbmdoaSBuZ28gbmVu IGFpIGN1bmcgdGh1LiBUaHUgdGhlIHZhIHRodSB0aGFuLiBUaHUgcXVhIHRoYW5oIA0KbWFjIGtl LiBUaG9pIG1hYyBrZSBheSBrZW8gZGFpIGxhdSBraGllbiBuZ3VvaSB0YSB0aGFuaCBuaHVuZyBr ZSBiYW5nIHF1YW4gdHJ1b2MgbW9pIA0KYmF0IGhhbmgsIG1vaSBzdSB0aHVvbmcgdGFtIHZhIG1v aSBkaWV1IHNhaSB0cmFpLg0KDQpDdW9pIGN1bmcgdGhhbmggbmh1bmcga2Ugdm8gY2FtLg0KDQpo dHRwOi8vd3d3LmRkdGguY29tL3Nob3d0aHJlYWQucGhwP3Q9MjI4NTY0DQoNCkJpbmggbHVhbiB2 ZSBjYXUgbm9pIGN1YSBPbmcgUGhhbSBRdWFuZyBOZ2hpDQoNCk9uZyBQaGFtIFF1YW5nIE5naGkg ZHVuZyBsYSBtb3QgdHJ1b25nIGhvcCBraG8gY2h1YSwgbW90IG5oYSBjaGluaCB0cmkgY28gbmh1 bmcgDQpwaGF0IG5nb24gdm8gY2hpbmggdHJpIHRvaSBtdWMga2hvbmcgbmdvLiBIb20gdHJ1b2Mg dHJhIGxvaSBwaG9uZyB2YW4gVk5OLCBvbmcgZG8gbG9pIA0KY2hvIG5oYW4gZGFuIHkgbGFpIE5o YSBudW9jIHZhIGtlIGNodXllbiBtaW5oIChjdW5nIHZvaSBjYWMgbGFuaCBkYW8gSGEgTm9pIGto YWMpIGRpIA0KaG9wIGJhbiB2ZSB0b24gZ2lhbyB2YW8gc2FuZyBuZ2F5IDEvMTEuDQoNCkhvbSBu YXkgb25nIHRvbmcga2V0IG11YSBsdXQgYmFuZyBjYWNoIGtoYW5nIGRpbmggdHJhbiBsdXQgbmF5 IGxhICJjdW9jIHRvbmcgZGllbiB0YXAgDQpsb24gY2hvIHR1b25nIGxhaSIuIE9uZyBwaGF0IG5n b24gY3Ugbmh1IGxhIGR1YSEgVGhpZXQgaGFpIHRvaSB0aGlldSAyMDAgdHJpZXUgZG8tbGEsIDE4 IA0Kbmd1b2kgY2hldCBjdW5nIGNoaSBsYSAiZGllbiB0YXAiLiBUaGUgbmh1IHRoZSBuYW8gbW9p IGtob25nIHBoYWkgbGEgZGllbiB0YXA/LiBPbmcgTmdoaSANCmR1bmcgbGEgY28gYmlldCB0YWkg dm9pIG5odW5nIHBoYXQgYmlldSBnYXkgc2hvY2sgY2hvIG5ndW9pIG5naGUuIFRoYXQgbGEgbHVu ZyBib2kgdmkgb25nIA0KbGEgbW90IG5oYSBjaGluaCB0cmkga3kgY3V1LCB0dW5nIGxhbSBwaG9u ZyB2aWVuLCBsYW0gY2FuIGJvIEJhbiBUdXllbiBodWFuLCBCYW4gVHUgDQp0dW9uZy1WYW4gaG9h LCBsYW0gdGh1IGt5IHJpZW5nIGNobyBEYW8gRHV5IFR1bmctbmd1b2kgbGFuaCBkYW8gY29uZyB0 YWMgdHV5ZW4gaHVhbiANCnZhIGJhbyBjaGkgdHJvbmcgbW90IHRob2kgZ2lhbiBkYWkuIE9uZyBj b24gY28gYmFuZyB0aWVuIHNpIHRyaWV0IGhvYyBvIExpZW4gWG8uIFZheSBtYSANCm1vdCBuZ3Vv aSBjbyBiZSBkYXkga2luaCBuZ2hpZW0gdHV5ZW4gaHVhbi1iYW8gY2hpIG5odSB0aGUgbGFpIGNv IG5odW5nIHBoYXQgYmlldSBtYXQgbG9uZyBkYW4gbmh1IHRoZS4NCg0KVmEgZGF5IGxhIGxvaSBo dWFuIHRoaSB0b25nIGtldCB0aW5oIGhpbmggY3VhIG9uZyBCaSB0aHUgTmdoaSB2ZSBuaHVuZyB0 aGlldCBoYWkgeGF5IHJhOiANCiJ0aGlldCBoYWkgY28gY2FpIHRpbmggZHVvYywgc29uZyBjbyBj YWkgY2h1YSB0aGUgdGluaCBoZXQgZHVvYzsgY28gY2FpIHRydWMgdGllcCwgY2FpIGdpYW4gDQp0 aWVwOyBjYWkgeGF5IHJhIG5nYXkgdHJ1b2MgbWF0LCBjYWkgZGUgbGFpIGhhdSBxdWEgbGF1IGRh aS4uLiB2YSBub2kgY2h1bmcgdm8gY3VuZyBuZ2hpZW0gDQp0cm9uZyIuDQoNCkNhYyBwaGF0IGJp ZXUgY3VhIG9uZyBOZ2hpLCBnb2kgbGEgdm8gY2FtIGN1bmcgZHVuZy4NCg0KVGhlIG5odW5nIGNh aSBnaWEgY3VhIG5odW5nIGN1b2MgInRvbmcgZGllbiB0YXAiIGF5IHRoYXQgbGEga2hvbmcgY28g dGluaCBkaWVuIHRhcCBjaHV0IA0KbmFvLiBUb2kgbmdoaSBjaHUgInRvbmcgZGllbiB0YXAiIG5h eSBkdW5nIHRyb25nIG5nb24gdHUgY3VhIERhbmcgZGEgeGEgcm9pIHkgbmdoaWEgY2h1IA0KInRv bmcgZGllbiB0YXAiIHRyb25nIHRpZW5nIFZpZXQsIHZhIGxhIG1vdCBzdSB0aGEgaG9hIGN1YSBu Z29uIG5ndSwga2hpIHRhbyByYSBtb3QgdHUgbmd1IA0KY28gdGluaCBudWEgdm9pLiBHb2kgbGEg bnVhIHZvaSBib2kgdm9pIGNodSAidG9uZyBkaWVuIHRhcCIgbmF5IGNvIHRoZSBoaWV1IG5vIHRo YW5oICJsYW0gDQp0aHVjIiBjdW5nIGR1b2MgbWEgaGlldSBsYSAiZGllbiB0YXAiIGRlIGNodWFu IGJpIGNobyAibGFtIHRodWMiIGN1bmcgeG9uZy4gVHJvbmcgdGllbmcgDQpWaWV0IHRob25nIHRo dW9uZywgbmd1b2kgdGEga2hvbmcgZ29pICJkaWVuIHRhcCIgdm9pIG5odW5nIHN1IGtpZW4gbmh1 IHZheS4NCg0KQmFuIHRoYW4gY2h1ICJkaWVuIHRhcCIgZ29tIGhhaSBjaHUgY2F1IHRoYW5oOiAi ZGllbiIgdmEgInRhcCItIGNhIGhhaSBjaHUgZGEgY28geSBuZ2hpYSANCmxhIGtob25nIHBoYWkg dGh1YyBtYSBjaGkgbGEgbGFtIGdpYSAoZGllbikgZGUgY2h1YW4gYmkgY2hvIHRodWMuIFZpIGR1 IHRhcCB0cmFuIHF1YW4gc3UgDQpsYSBkaWVuIHRhcCB2YSBtbyBwaG9uZyB0aW5oIGh1b25nIGNo aWVuIHRyYW5oOyBoYXkgZGllbiB0YXAgY29uZyB0YWMgY3V1IGhvIHRoaWVuIHRhaSwgDQpjb25n IHRhYyBjdXUgaG9hLi4uS2hvbmcgYWkgZ29pIHZpZWMgZG9pIHBobyB0aHVjIHN1IHRoaWVuIHRh aSBsYSAiZGllbiB0YXAiIGNhLCBnb2kgbmh1IHRoZSANCmxhIG1vdCBzdSB4dWMgcGhhbSB2b2kg dGluaCBtYW5nIG5odW5nIG5ndW9pIGRhIG1hdCBraGkgbmd1b2kgdGEgImRpZW4gdGFwIg0KDQpE byBsYSBjaHVhIGtlIHN1IGxlY2ggbGFjIHRyb25nIHN1eSBuZ2hpLCB0b2kgbmdoaSBraG9uZyBt b3QgY2hpbmggdHJpIGdpYSBuYW8gbyB0aGUga3kgMjEgDQpjbyB0aGUgbm9pIHJhbmcgZGFuIGJh eSBnaW8geSBsYWkgdmFvIE5oYSBudW9jIGhvbiBkYW4gbmdheSB4dWEgbW90IGNhY2ggdGhhbiBu aGllbiANCm5odSBvbmcuDQoNCk5odW5nIHR1b25nIGNoaSBsYSBjYXUgY2h1eWVuIHRhbSBwaGFv IHRyZW4gZGllbiBkYW4sIGFpIGRlIHhlbSB0aXZpIGNodW9uZyB0cmluaCBWVFYsIA0Kbmd1b2kg ZGFuIGNodW9uZyB0cmluaCBob24gbmhpZW4gY2hvIG5ndW9pIHhlbSB0aGF5IGNhbmggbHV0IGxv aSB0YWkgSGEgTm9pIHZhIG5vaSByYW5nIA0KImNvIHRoZSBuYXkgbW9pIHRob25nIGNhbSB2b2kg bmd1b2kgZGFuIHZ1bmcgbHUgKGNoYWMgbGEgbWllbiBUcnVuZywgdGhlbyBjYWNoIGhpZXUgDQpj dWEgbmd1b2kgeGVtKS4uLiIuDQoNCkhvYSByYSBraG9uZyBjaGkgbW90IG9uZyBCaSB0aHUgSGEg Tm9pIHZvIGNhbSBtYSBjb24gY28gbmh1bmcgbmhhIGJhbyBjbyB0aGUgcGhhdCANCmJpZXUgdHJl biBjaHVvbmcgdHJpbmggdHJ1eWVuIGhpbmggY3VhIGRhaSB0cnV5ZW4gaGluaCBxdW9jIGdpYSBy YW5nIEhhIE5vaSBjbyBsdSBsdXQgbmh1IA0KdGhlICJtb2kgdGhvbmcgY2FtIHZvaSBuZ3VvaSBk YW4gdnVuZyBsdSIuIFdURi4gQmFvIG5oaWV1IGN1YSBjYWkgbWF0IGRpLCBiYW8gbmhpZXUgDQpu Z3VvaSBjaGV0IG1hIGNvIG5odW5nIG5oYSBiYW8sIG5odW5nIGJpZW4gdGFwIHZpZW4gdmFuIGNv IHRoZSBub2kgbmh1bmcgY2F1IG5oYW4gdGFtIA0Kbmh1IHRoZSwgbW90IGNhY2ggdGhhbiBuaGll biB0cnVvYyBoYW5nIGNodWMgdHJpZXUgZG9uZyBiYW8gY2EgbnVvYz8gQm9uIGhvIGxhIGFpIGRl IGNvIA0KcXV5ZW4gcGhhbiB4ZXQgbmh1IHRoZSBjYW5oIGx1IGx1dCBuaHUgbGEgY2FpIGdpIGRv IGNvIGljaCB2b2kgbmd1b2kgZGFuIEhhIE5vaSwga2hhYyBuYW8gDQpyYW4gZGF5IGRhbyBkdWMg ZG9pIHZvaSBoYW5nIHRyaWV1IG5ndW9pIEhhIE5vaSBjdSB2YSBtb2kgZGFuZyBjaGl1IGtobyB2 aSBtdWEgbHU/IA0KTmh1bmcgY2F1IG5vaSBuaGFuIHRhbSBuaHUgaGEgaGUsIG5odSB2byBjYW0g bmh1IHRoZSB0aGF0IGtobyB0aW4gbGFpIGNvIHRoZSBkdW9jIHBoYXQgDQpyYSB0dSBkYWkgdHJ1 eWVuIGhpbmggVHJ1bmcgVW9uZy4NCkNMQk5CVEQNCg0KQklOSCBMVUFOIC0gQmFpIHZpZXQ6IDMz OCBUaGFtIGdpYTogMTYtMDctMjAwNg0KDQpjYXUgbm9pIG5ndSBuaGF0IHRyb25nIG5hbSAoZGEg dnVvdCBxdWEgY2F1ICJnaWFtIGdpYSBuaGFuaCBzbyBkYW4gc2hvY2siIGN1YSBtYXkgYW5oIA0K eGFuZyBkYXUpIGR1b2MgdGhvdCBsZW4gdHUgbW9tIChtbykgY3VhIDEgInRpZW4gc2kgdHJpZXQg aG9jIi5EZSBuZ2hpIG1vaSBuZ3VvaSBkYW5oIDEgDQp0cmFuZyBwaGFvIHRheSAodmFvIG1vbSkg Y3VhIHZpICJUaWVuIHNpIGRhbmcga2luaCIgbmF5DQoNCkJJTkggTFVBTiAtIEJhaSB2aWV0OiA1 NiBUaGFtIGdpYTogMTYtMDctMjAwOA0KDQpTdSBraWVuIHNhdSBtb3QgY29uIG11YSBIYSBOb2kg YmllbiB0aGFuaCBjYWkgaG8gdG8gbmhhdCBudW9jLCBuZ3VvaSBkYW4gVGh1IGRvIHRybyANCnRo YW5oICJuZ3UgZGFuIGJhdCBkYWMgZGkiLCBsYW0gY2hvIDE3IG5ndW9pIGNoZXQgdmkgbHV0IGxv aSB2YSBzbyBuZ3VvaSBtYXQgdGljaCBjb24gdGFuZyANCmxlbiBudWEsIHRoaWV0IGhhaSBoYW5n IG5nYW4gdHkgZG9uZywgdi52Li4uIE5nYWkgImRheSB0byIgUGhhbSBRdWFuZyBOZ2hpIC1CaSB0 aHUgDQpUaGFuaCB1eSBIYSBOb2kgZGEgbGEgbWFuZyAiY2h1IG5oYW4iIGNodW5nIGNvbiByYW5n OiAiVG9pIHRoYXkgbmhhbiBkYW4gdGEgYmF5IGdpbyANCnNvIHZvaSBuZ2F5IHh1YSB5IGxhaSBO aGEgbnVvYyBsYW0iLCAiVGhpZW4gdGFpIHRoaSBraG9uZyB0aW5oIHRydW9jIGR1b2MiLi4uLCBu b2kgY2h1bmcgDQpsYSBuZ3V5ZW4gbmhhbiBraG9uZyB0cmFuaCBkdW9jIGhhdSBxdWEgY3VhIG51 b2MgbmdhcCBkZSB4YXkgcmEgdGhpZXQgaGFpIHZlIG5ndW9pIHZhIA0KdGFpIHNhbiBsYSBsb2kg Y3VhICJsb2FuaCBxdWFuaCBkYXUgZG8iLg0KDQpWYXkgbWEga2hvbmcgdGhheSBWVFYsIGNhYyBi YW8gY2hpIGNobyBsYSB2byB0cmFjaCBuaGllbSwga2hvbmcgeHVuZyBkYW5nIGxhbSBsYW5oIGRh by4uLg0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZyANCg0KSGEgTm9pOiBPbmcgUGhhbSBRdWFu ZyBOZ2hpIGxhbSBVVkJDVCwgQmkgdGh1IHRoYW5oIHV5IEhhIE5vaSANCg0KaHR0cDovL3d3dy5k b3RoaS5uZXQvTmV3cy9UaW4tdHVjL0RvaS1zb25nLWRvLXRoaS8yMDA5LzA4LzNCOUFFODA0LyAy OS84LzIwMDksIDA3OjU4IEdNVCs3DQoNCkhhIE5vaTogVHUga2hpIEhhIERvbmcgZHVvYyBjb25n IG5oYW4gbGEgcXVhbiB0cnVjIHRodW9jIFRQIEhhIE5vaSB0aGkgdGluaCB0cmFuZyAieGUiIGRh dCBub25nIG5naGllcCBsYW0gbmhhIGxhaSBjYW5nIGxhbiByb25nLi4uIA0KDQpodHRwOi8vd3d3 Lmhhbm9pbW9pLmNvbS52bi9uZXdzZGV0YWlsL0Jhbl9kb2NfdmlldC8zMDI4MDYveGEta2ltLWNo dW5nLWh1eWVuLWhvYWktZHVjLWRpbmgtbGFpLXhhLWJpLXhhbS1oYWkuaHRtIDI1LzEyLzIwMDkg MTQ6MDcgVHJhbiBIb25nIA0KDQpIYSBOb2k6IERpbmggTGFpIFhhIHRobyBUaWV0IGNoZSBRdW9j IGNvbmcgVHJhbiBMaWV1IC0gRGkgdGljaCBsaWNoIHN1LCB2YW4gaG9hIGNhcCBxdW9jIGdpYSAt IGJpIHhhbSBoYWksIHh1b25nIGNhcCBuZ2hpZW0gdHJvbmcsIG1vYyBtZW8sIGJvYyBtdWkgaG9p IG5vbmcgcmF0IGtobyBjaGl1OyBoYW5nIHRyYW0gaG8ga2luaCBkb2FuaCB2YXkga2luIGRpbmgu Li4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDgvQm8tQ2hpbmgt dHJpLWRvbmctdGluaC1waHVvbmctYW4tbmhhbi1zdS1jdWEtSGEtTm9pLTkzMjE3OS8gVFRYVk4g IDIzOjIzLCAyNy8wOC8yMDEwIChHTVQrNykgDQoNCkhhIE5vaTogVmFpIHRybyBjdWEgbW90IHRy dW5nIHRhbSBsb24gdmUgdmFuIGhvYSwga2hvYSBob2MsIGdpYW8gZHVjLCB5IHRlIGNodWEgZHVv YyANCnBoYXQgaHV5IGRheSBkdTsgY2h1YSBraGFpIHRoYWMgdHJpZXQgZGUgdGllbSBuYW5nLCBs b2kgdGhlLCBuaGF0IGxhIGRvaSBuZ3UgdHJpIHRodWMgdHJlbiBkaWEgYmFuLiANCg0KaHR0cDov L3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvVmlldG5hbWVzZU5ld3MvdmlldG5hbW5ld3MvQWlyLXBv bGx1dGlvbi1pbi1iaWctVmlldG5hbWVzZS1jaXRpZXMtYmVpbmctYWxlcnRlZC0xMDExMjAxMDEw MTMwNy5odG1sIFJGQS0xMS0xMC0yMDEwDQoNCkhhIE5vaTogS2hvbmcga2hpIGNhYyBkbyB0aGkg bG9uICh0cm9uZyBkbyBIYSBOb2kpIGNvIG5vbmcgZG8gbyBuaGllbSBuYW5nDQoNCk5hbSBkbyB0 aGkgbG9uIHRhaSBWaWV0IE5hbSBoaWVuIGNvIG5vbmcgZG8gbyBuaGllbSBraG9uZyBraGkga2hh IGNhbyBsYSB0aGFuaCBwaG8gSG8gDQpDaGkgTWluaCwgQmluaCBEdW9uZywgRG9uZyBOYWksIEhh aSBQaG9uZyB2YSBIYSBOb2kuDQoNCkJhbyBTYWlnb24gR2lhaSBQaG9uZyBtb2kgZGFuZyB0YWkg dGhvbmcgdGluICBuYXkgdmEgIGNobyBiaWV0IHRoZW0sIGNhYyBuZ3V5ZW4gbmhhbiANCmNoaW5o IGRhbiB0b2kgdGluaCB0cmFuZyBuYXkgbGEgZG8gaGF1IHF1YSBjdWEgaG9hdCBkb25nIHNhbiB4 dWF0IGNvbmcgbmdoaWVwIHZhIGdpYW8gdGhvbmcuDQoNClRoZW8ga2hhbyBzYXQgY3VhIEJvIENv bmcgdGh1b25nIHRoaSBjYWMgaG9hdCBkb25nIHNhbiB4dWF0IGNvbmcgbmdoaWVwIGNoaWVtIDQw JSANCm5ndXllbiBuaGFuIGdheSByYSBvIG5oaWVtLCBwaGFuIGNvbiBsYWkgZG8gc2luaCBob2F0 IGhhbmcgbmdheSBjdWEgbmd1b2kgZGFuIHZhIG5nYW5oIGdpYW8gdGhvbmcgLCB2YW4gdGFpIGdh eSByYS4NCg0KTyBuaGllbSB0YW5nIGNhbyB0YWkgY2FjIGtodSBjb25nIG5naGllcCBsYSBkbyBu aHVuZyB4dSBseSBraGkgdGhhaSBjb24gZG9uIGdpYW4sIGhvYWMgDQpkb2FuaCBuZ2hpZXAgY28g eSB4YSBraGkgdGhhaSBraG9uZyBxdWEgeHUgbHkuDQoNCkNobyBkZW4gbmF5IGNhYyBoaW5oIHRo dWMga2llbSB0cmEsIHh1IGx5IG5odW5nIHZ1IHZpIHBoYW0gbW9pIHRydW9uZyBjaGkgY2h1IHRy b25nIA0KZGVuIHZpZWMgeHUgbHkgbnVvYyB0aGFpIHZhIGNoYXQgdGhhaSBuZ3V5IGhhaSBjdWEg ZG9hbmggbmdoaWVwIG1hIGNodWEgbWF5IHF1YW4gdGFtIA0KZGVuIGtoaSB0aGFpLCB2aSB0aGUg bmhpZXUgZG9hbmggbmdoaWVwIHZhbiB4ZW0gbmhlIHZhbiBkZSBuYXkuIA0KDQpWZSBjYWMgaG9h dCBkb25nIGdpYW8gdGhvbmcsIHZhbiB0YWksIHNvIHBodW9uZyB0aWVuIGRpIGNodXllbiBjYSBu aGFuIGRhIHZ1b3QgY29uIHNvIA0KaGFuZyB0cmlldSwgdHV5IG5oYSBudW9jIHZhbiBraHV5ZW4g a2hpY2ggdmllYyBzdSBkdW5nIHBodW9uZyB0aWVuIGNodXllbiBjaG8gY29uZyANCmNvbmcsIG5o dW5nIGN1bmcgY2h1YSB0aHUgaHV0IGR1b2Mgc3UgdGhhbSBnaWEgdGljaCBjdWMgY3VhIG5ndW9p IGRhbi4NCg0KIk8gbmhpZW0ga2hvbmcga2hpIGxhIHNhdCB0aHUgdGhhbSBsYW5nIiwgZG8gbGEg Y2FuaCBiYW8gY3VhIGNhYyBjaHV5ZW4gZ2lhLCB2aSBraG9uZyANCmdheSBoYXUgcXVhIHR1YyBr aGFjIG1hIHRpZXUgZGlldCBhbSB0aGFtIHN1YyBraG9lIGN1YSB0YXAgdGhlIHZlIGxhdSBkYWku DQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0Mi8yMDEwMTAx MjEyMDMwMi5hc3B4IDEyLzEwLzIwMTAgMTI6MDMgDQoNCkhhIE5vaTogVGFjIGR1b25nIG5naGll bSB0cm9uZyBjaGlldSBIYSBOb2kgLSBOb2kgQmFpICANCiAgDQpUdSA4IGdpbyAzMCBkZW4gMTEg Z2lvIHRydWEgbmF5ICgxMi4xMCkgZGEgeGF5IHJhIHVuIHRhYyBnaWFvIHRob25nIG5naGllbSB0 cm9uZyB0dSBuZ2EgDQp0dSBkdW9uZyBOYW0gSG9uZyAtIEJhYyBUaGFuZyBMb25nLCBrZW8gZGFp IGdhbiAya20sIHRoZW8gY2hpZXUgZGkgdHUgSGEgTm9pIHRvaSBzYW4gYmF5IE5vaSBCYWkuIA0K DQpDYWMgeGUgb3RvIGRpIHF1YSBraHUgdnVjIG5nYSB0dSBraG9uZyBjbyB0aW4gaGlldSBnaWFv IHRob25nIHBoYW4gbHVvbmcsIGtob25nIA0Kbmh1b25nLCB0cmFuaCBsYW4gbmhhdSwgZGFuIHRv aSB1biB1LCBrZXQgeGUgdHJhbSB0cm9uZy4NCg0KQW5oIGNodXA6IENhYyBvdG8gbm9pIGR1b2kg bmhhdSBuaGljaCB0dW5nIGNodXQgLSBBbmg6IE5nb2MgVGhhbmcNCiANCmh0dHA6Ly9nb3ZuLndv cmRwcmVzcy5jb20vMjAxMC8xMC8wMi9nb2Mtbmhpbi1oJUUxJUJCJTk5aS1jaCVFMSVCQiVBOW5n LW5nYW4tbmFtLXIlRTElQkIlOTNuZy1kJUUxJUJBJUExaS1sJUUxJUJCJTg1LWclRTElQkElQUZu LWRhLXJ1YnkvIChOaGEgdmFuIFZvIFRoaSBIYW8vQkJDKSAyLzEwLzIwMTAgDQoNCkhhIE5vaTog SG9pIGNodW5nIG5nYW4gbmFtIC0gMTAwMCBjb24gcm9uZyAtIExhbmcgcGhpIHRpZW4gdHkgDQoN ClJvbmcgZGFpIGxlIGdhbiBkYSBydWJ5OiA4MDAgVVNEL2Nvbg0KDQpIYW8gcGhvbmcgdmEgZ2lh dSBjbyBxdWEgMjAwMCB2aWVuIG5nb2MgcnViaSB0dSBuaGllbiBkdW9jIG5oYXAgdHUgY2hhdSBQ aGkgdmUgZGUgDQpnYW4gbWF0IGNobyBsdSByb25nIGR1YywgbGFtIHF1YSBsdXUgbmllbSBjaG8g Y2FjIGRhaSBiaWV1IG11bmcgZGFpIGxlISBLaG9hbmcgMS4wMDAgY29uIHZhIGNoaSBwaGkga2hv YW5nIDgwMCBVU0QvY29uLiANCg0KTmhpZXUgbmd1b2kgbnVvYyBuZ29haSBub2kgY2FjIGJhYyBW TiBuZ2hlbyBnYW4gZG9pIHNvIHRoZSBnaW9pIG1hIHZ1bmcgdGF5IHF1YSBjYXAgDQpoYW8gcGhv bmcgcXVhIG5oaSEgTWEgcXVhIG5odSB0aGUsIG5nb2FpIHZpZWMgbW9pIG1hdCByb25nIGxheSBo YWkgdmllbiBydWJ5IGRpIGRhbmggDQpuaGFuIChkYWkgbG9haSB0aGUpLCB0aGkgZGFpIGJpZXUg Y3VuZyBraG9uZyBjaGFjIG5oYW4gZHVvYyBtb3QgdGFjIHBoYW0gY28gZ2lhIHRyaSB0aGFtIA0K bXkgY2FvLg0KDQpEdSBsdWFuIGRhIGRhdCBuaGlldSBkYXUgaG9pIHZlIGhpZXUgcXVhIHZhIGNh Y2ggdGh1YyBjaGkgdGllbiBjaG8gZGFpIGxlIG5heS4gDQpOaGEgZ2lhbyCWIG5oYW4gc2kgUGhh bSBUb2FuIHRob3QgbGVuOiBkYXkgbGEgbW90IHZ1IHRpZXUgdGllbiB2byB0b2kgdmEuIEdTIFR1 b25nIExhaSANCmNhbmggYmFvOiBob2kgY29uZyBkYW4sIHZhbiBob2EgZGFuZyBsYW0gbmd1eSEN Cg0KLQ0KaHR0cDovL2RhbmxhbWJhby53b3JkcHJlc3MuY29tLzIwMTAvMDkvMjkvY2FpLWIlRTEl QkElQUZ0LXRheS1jJUUxJUJCJUE3YS1waG8tdGglRTElQkIlQTctdCVDNiVCMCVFMSVCQiU5Qm5n LWhvYW5nLXRydW5nLWglRTElQkElQTNpLyBOZ3V5ZW4gVHJvbmcgVGFvLCBIb2FuZyBOZ29jIDI5 LzA5LzIwMTAgDQoNCkhhIE5vaTogVmFuIGhvYSBOZ2FuIG5hbSB2YSBjYWkgYmF0IHRheSBjdWEg b25nIFBobyB0aHUgdHVvbmcgSG9hbmcgVHJ1bmcgSGFpDQoNCkNoaSB2YWkgbmdheSBudWEgdGhv aSBEYWkgTGUgMTAwMCBuYW0gVGhhbmcgTG9uZyBIYSBOb2kgZGllbiByYSBjaHVuZyB0YSBzZSBw aGFpIA0KZG9uIHRpZXAgaGFuZyB0cmFtIENoaW5oIGtoYWNoIG51b2MgbmdvYWkgdmEgZHUga2hh Y2ggaHkgdm9uZyByYW5nIFZhbiBob2EgYmF0IHRheSANCnNlIGR1b2MgcGhhdCBodXkgZHVuZyB2 b2kgdmFuIGhvYSB2YSB5IG5naGlhIGN1YSBuby4uLg0KDQpOZ3V5ZW4gVHJvbmcgVGFvIC0gVGhv aSBuZ3V5ZW4gdGh1eSwgY2FjIGJvIHRvYyBzYW4gYmFuIGdhcCBuaGF1IHZhIGRlIHRvIHJhIGhv YSBiaW5oIA0KdGhhbiB0aGllbiwgaG8gZGEgYmF0IHRheSBuaGF1IGRlIG5vaSByYW5nOiB0YXkg dGFvIGtob25nIGNhbSB2dSBraGkuIENoaW5oIHZpIHRoZSBtYSBzYXUgDQpjaGllbiB0cmFuaCBi aWVuIGdpb2kgcGhpYSBCYWMgKHJhbmcgY2FuIG1vaSkgdG9pIGRhIHZpZXQgY2F1IHRobzoNCg0K U2F1IGNhaSBiYXQgdGF5IHhvZSBtb3QgbHVvaSBkYW8gZ2FtIA0KS2UgdGluaCBuZ3V5ZW4gZ2l1 IG5oYSBtdW9uIGNoaWVtIG5oYSB0YSBvDQpUYW0gYW5oIE1hbyB0cmVvIGxhbiBtYXUgY28gZG8N ClRheSB0YSB0cmVvLiBEYXUgbmdoaSBjbyBtb3QgbGFuLi4uDQoNCkJhdCB0YXkgY3VuZyBwaGFu IGJpZXQgZGFuZyBjYXA6IG5ndW9pIGR1b2kgZHVhIDIgdGF5IGJhdCB0YXkgbmd1b2kgdHJlbiBz YXUga2hpIG5ndW9pIA0KdHJlbiBjaGlhIHRheSByYSBjaG8gbWluaCBiYXQuDQpCYXQgdGF5IGN1 bmcgcGhhbiBiaWV0IG5hbSBudTogZGFuIG9uZyBwaHVvbmcgVGF5IHRodW9uZyBiYXQgdGF5IHZh IGhvbiBsdW5nIGJhbiB0YXkgDQpwaHUgbnUgdG8gbG9uZyB0cmFuIHRyb25nLiANCkNvbiBiYXQg dGF5IG5nb2FpIGdpYW86IGNhYyBuZ3V5ZW4gdGh1IHF1b2MgZ2lhIGRldSBiaW5oIGRhbmcsIGNo aSBkdWEgbW90IHRheSwgdmEgDQpuZXUgdG8gbG9uZyB0aGFuIHRoaWV0IGhvbiB0aGkgdGF5IGtp YSBvbSBuaGF1Lg0KDQpWYXkgbWEgdG9pIHZ1YSB0aGF5IHRyZW4gd2Vic2l0ZSBDaGluaCBQaHUg VmlldCBOYW0sIFBobyBUaHUgdHVvbmcgVk4gdGEgZHVhIGNhIDIgDQp0YXkgcmEgYmF0IDEgYmFu IHRheSBjdWEgVGh1IHR1b25nIFRydW5nIFF1b2MgT24gR2lhIEJhby4gQ3Ugbmh1IGNvbiBiYXQg dGF5IGNoYSwgZW0gDQpiYXQgdGF5IGFuaCwgZGF5IHRvIGJhdCB0YXkgb25nIGNodS4NCg0KKEFu aDogUGhvIFRodSB0dW9uZyBIb2FuZyBUcnVuZyBIYWkgdmEgVGh1IHR1b25nIFRydW5nIFF1b2Mg T24gR2lhIEJhbyAtIEFuaDogDQpDaGluaHBodS52bikgDQoNCk5ndW9pIFZpZXQgbmFtIGx1b24g dHUgaGFvIGxhIG5ndW9pIFZpZXQgbmFtLCBkdSBuaGlldSB0aHUgY2FuIGhvYyB0YXAgdGhlIGdp b2ksIG5odW5nIA0Ka2hvbmcgZHVvYyB0dSB0aS4gQ2FpIGJhdCB0YXkgY3VuZyB0aGUgaGllbiB0 aW5oIHRoYW4gZGFuIHRvYy4gTmV1IHF1YW4gdHJpIHRoYW0gdGhpYSBub2kgDQpuaHVjIG1hdCBu dW9jLCBjaGFjIGtob25nIGJhbyBnaW8gcXVpIGdvaSB0cnVvYyBuZ29haSBiYW5nLg0KDQpDaGkg dmFpIG5nYXkgbnVhIHRob2kgRGFpIExlIDEwMDAgbmFtIFRoYW5nIExvbmcgLSBEb25nIERvIGRp ZW4gcmEgY2h1bmcgdGEgc2UgcGhhaSBkb24gDQp0aWVwIGhhbmcgdHJhbSBDaGluaCBraGFjaCBu dW9jIG5nb2FpIHZhIGR1IGtoYWNoIGh5IHZvbmcgcmFuZyBWYW4gaG9hIGJhdCB0YXkgc2UgDQpk dW9jIHBoYXQgaHV5IGR1bmcgdm9pIHZhbiBob2EgdmEgeSBuZ2hpYSBjdWEgbm8uIA0KDQpodHRw Oi8vbHVhdC54YWxvLnZuL3BoYXAtbHVhdC9RdXlldC1kaW5oLzE4NTM1Mjk2OS9WZS12aWVjLXRo YW5oLWxhcC1CYW4tQ2hpLWRhby1OaGEtbnVvYy12ZS1RdXktaG9hY2gtZGllbi1WSS5odG1sDQoN Ck9uZyBIb2FuZyBUcnVuZyBIYWkgLSBwaG8gdGh1IHR1b25nIC0gbGFtIFRydW9uZyBCYW4gQ2hp IGRhbyBOaGEgbnVvYyB2ZSBUb25nIHF1eSBob2FjaCBkaWVuIA0KDQpodHRwOi8vdm5leHByZXNz Lm5ldC9nbC9raW5oLWRvYW5oLzIwMTAvMDYvM2JhMWM3OWQvIDIvNi8yMDEwLCAwMDowMSBHTVQr Nw0KDQpIYSBOb2k6ICdEaWNoJyBtYXQgZGllbiBsYW4gZGVuIEhhIE5vaQ0KDQoxOWggdG9pIDEv NiwgaGFuZyBsb2F0IHR1eWVuIGR1b25nIHRodW9jIHF1YW4gSG9hbmcgTWFpLCBEb25nIERhIHZh IG1vdCBzbyBraHUgdnVjIA0KdGh1b2MgVGF5IEhvLCBCYSBEaW5oIHRvaSBvbSwgZ2lhbyB0aG9u ZyB0ZSBsaWV0LiBUYWkgbmhpZXUgbmdhIHR1IGR1b25nIHBobywgZG9uZyANCm5ndW9pIGNoZW4g bGFuIGNvIHRob2F0IGNhaSBvaSBidWMgbmdvdCBuZ2F0IGRhdSBoZS4NCg0KU2F1IGtoaSBUUCBI Q00gY2hpdSBjYW5oIGNhdCBkaWVuIGxpZW4gdHVjLCBkYWkgbmdheSBraG9uZyBiYW8gdHJ1b2Ms IG5ndW9pIEhhIE5vaSANCmN1bmcgcGhhaSBjaGl1IGNhbmggdHVvbmcgdHUsIGNobyBkdSBvbmcg Im5oYSBkZW4iIHR1eWVuIGJvIG5vaSBkYXkgZHVvYyB1dSB0aWVuIGNhcCANCmRpZW4gdmkgZGFu ZyBkaWVuIHJhIGt5IGhvcCBRdW9jIGhvaSB2YSBjaHVhbiBiaSBkYWkgbGUgMS4wMDAgbmFtIFRo YW5nIExvbmcuIA0KDQpodHRwOi8vbmd1aGFuaC52bi9mb3J1bS9zaG93dGhyZWFkLnBocD90PTQw ICAxOS0wNi0yMDEwIDEyOjAwIEFNIA0KDQpIYSBOb2k6IERhbiBraG9uIGtobyBraG9uIG5hbiB2 aSBjYXQgZGllbiBsdWFuIHBoaWVuIA0KDQpTYW5nIG5heSwgZ2lvaSBjb25nIHNvIG8gSGEgTm9p IHBoYWkgY2hpdSBjYW5oIGRpZW4gbHVvaSBwaGFwIHBodSBsdWMgY28gbHVjIGtob25nLiANCk5o aWV1IGRvYW5oIG5naGllcCBjaHVuZyBraWVuIGNhbmggbmhhbiB2aWVuIHRhbiB0YWMsIGRpIHRh biBraGFwIG5vaSBkZSBjaG9uZyBub25nLg0KDQpOaGlldSBjb25nIHR5LCBkb24gdmkgY28gdHJ1 IHNvIHRhaSBkb2MgY2FjIHR1eWVuIHBobyBuaHUgTGFuZyBIYSwgTmd1eWVuIENoaSBUaGFuaCwg DQpDaHVhIExhbmcuLi4gc2FuZyBuYXkgcGhhaSBjaGl1IGNhbmggZGllbiBsdW9pIHBoYXAgcGh1 LCBsdWMgZHVvYyBsdWMgbWF0LiBDaGkgSHVvbmcgLSANCkdpYW0gZG9jIG1vdCBjb25nIHR5IHRy dXllbiB0aG9uZyBvIEhhIE5vaSBrZSwgc2FuZyBuYXksIGNvIHF1YW4gY2hpIG1hdCBkaWVuIDYg bGFuLCANCmNvbmcgdGhlbSA2IGxhbiBjaHV5ZW4gZG9pIGNhdSBnaWFvIHR1IGRpZW4gc2FuZyBt YXkgbm8sIGhhdSBuaHUgZHUgbGlldSBtYSBjYWMgbmhhbiANCnZpZW4gZGFuZyBsYW0gYmkgbWF0 IGhldC4gVG8gdGhpZXQga2UgY3VhIGNvbmcgdHkgZGFuZyBob2FuIHRhdCBwaGFuIGNvbiBsYWkg ZGUgZHVhIA0KY3VvbiBzYWNoIHRoZW8gZG9uIGRhdCBoYW5nIGN1YSBraGFjaCBkaSBpbi4gU28g a2hhYyB0aGkgcGhvdG9jb3B5IHRhaSBsaWV1LCB0aGUgbmh1bmcgDQpjdSBjaHVhbiBiaSBsdXUg bGFpIHRoaSBkaWVuIGxhaSBjYXQgY2FpIHJ1cCBraGllbiBjaG8gYmFuIGJvbmcgY2hpbmggc3Vh IG1haSB2YW4ga2hvbmcgeG9uZy4NCg0KTmFtIG5heSBkdW9jIGR1IGJhbyB0aW5oIHRyYW5nIGNh dCBkaWVuIHNlIGRpZW4gcmEga2hhIGNhbmcgdGhhbmcuDQoNCkRlIGtoYWMgcGh1YyB0aW5oIHRy YW5nIG5heSwgY2hpIEh1b25nIGRhbmggcGhhaSBjaG8gbmhhbiB2aWVuICJ0dXkgbmdoaSBkaSB0 YW4iIC0gc28gDQptYW5nIGxhdG9wIHJhIHF1YW4gY2FmZSBsYW0gdmllYy4gU28ga2hhYyBjb3B5 IHRhaSBsaWV1IHJhIGhhbmcgcGhvdG8gZGUgdGllcCB0dWMgY29uZyANCnZpZWMuICJLaG8gbmhh dCBsYSBuaGlldSB0dXllbiBwaG8gYmkgbWF0IGRpZW4gbmVuIHRpbSBkdW9jIGN1YSBoYW5nIHBo b3RvY29weSB0aGF0IA0Ka2hvLiBTb25nIHRyb25nIHRob2kgYnVvaSBkaWVuIGRvbSBwaGFwIHBo dSBraG8gcXVhIiwgY2hpIEh1b25nIG5vaS4NCg0KU2FuZyB0aHUgaGFpLCBuaGlldSBjb25nIHNv IHRodWMgaGllbiBob3AgZ2lhbyBiYW4gZGF1IHR1YW4uIEtob25nIGl0IGRvbiB2aSBkYW5nIGhv cCANCmdpYW8gYmFuIHRydWMgdHV5ZW4gdGhpIGRpZW4gY3VwIGtoaWVuIGNvbmcgdmllYyBjdSB0 YW0gdGl0LCBnaWFuIGRvYW4uIEJhbyBjYW8gdG9uZyBrZXQgDQp0dWFuIGJpIGdpYW4gZG9hbiBu aGlldSBsYW4ga2hpZW4gYWkgY3VuZyBuZ2FuIG5nYW0uDQoNCkNoaSBRdXluaCAtIG5oYW4gdmll biBtb3QgY29uZyB0eSB0cnV5ZW4gdGhvbmcgYnVvYyByYSBraG9pIHBob25nIGhvcCBtbyBob2kg dmEgcmEgDQpuaHUgdGFtLiBDYSBzZXAgdG9uZywgc2VwIHBobyBtb2kgbmd1b2kgY2FtIG1vdCB0 byBiYW8gcGhlIHBoYXkgcXVhdC4gQ2EgdG9hIG5oYSBub2kgDQp0cnUgc28gY2hpIGxhbSB2aWVj IGRldSBjaGl1IGNodW5nIGNhbmggZGllbiBjdXAgLSBtYXkgbm8gYmkgcXVhIHRhaSBwaGFwIHBo dSBjdSAxMCBwaHV0IA0KY2F0IG1vdCBsYW4uDQoNCkdhbiBudWEgZ2lvIGNobyBkb2ksIGRpZW4g dmFuICJ0YXQgYmF0LCB0YXQgYmF0IiwgY2hpIFF1eW5oIHF1eWV0IGRpbmggYmUgZG9uZyB0YWkg bGlldSByYSANCnF1YW4gY2FmZSBnYW4gY28gcXVhbiBkZSBsYW0gdmllYy4gVGhlIG5odW5nLCBs YW0gdmllYyBuZ29haSBjbyBxdWFuIGxhaSBraG9uZyBoaWV1IA0KcXVhIHZpIHRoaWV1IGNhYyBw aHVvbmcgdGllbiBjYW4gdGhpZXQgbmVuIGNoaSBjdSB0aGFwIHRob20gZGllbiB0aG9haSB2ZSBj byBxdWFuIGhvaSB0aW5oIA0KaGluaC4gVGhhbmggdGh1LCBzdW90IGNhIGJ1b2kgc2FuZyBuYXks IGNoaSBraG9uZyBsYW0gZHVvYyB2aWVjIGdpIGNhLiAiQ2h1bmcgdG9pIGtob25nIA0KZHVvYyBi YW4gcXVhbiBseSB0b2EgbmhhIHRob25nIGJhbyB2ZSB0aW5oIGhpbmggY2F0IGRpZW4uIENoaSBi aWV0IGxhIG1vaSBzYW5nIHNvbSwgZGlldSANCmhvYSBkYSBraG9uZyBjaGF5LCBxdWF0IGtob25n IHF1YXksIGNhIHRyYW0gY2hpZWMgbWF5IHRpbmggbmFtIGltIGltIHZpIGtob25nIGNvIA0Kbmd1 b24iLCBjaGkgUXV5bmggbm9pLiA5aDMwIHNhbmcsIGNhIGNvIHF1YW4gY2hpIHZhbiBuaG9uIG5o YW8sIG5ndW9pIG5hbSwgbmd1b2kgbmdvaSANCnRyb25nIGFuaCBzYW5nIG1vIG1vLiBTbyBraGFj IHRoYW4gdmFuLCBibyBkaWVuIHRob2FpIHJhIHRhbiBnYXUgdm9pIGJhbiBiZS4gQ29uIGxhaSB0 aGkgDQp0YW4gbWF0IGRpIGFuIHNhbmcsIGNobyBjbyBkaWVuIHJvaSB2ZSBjbyBxdWFuIGxhbSB2 aWVjLg0KDQpEaWVuIGNhdCB0dSA4aDMwIHNhbmcga2hpZW4gY2hvIGdpb2kgY29uZyBzbyBsYW0g dmllYyB0YWkgbW90IHNvIGRvbiB2aSBuaHUgVmluYVBob25lLCANClZOUFQsIG5nYW4gaGFuZy4u LiBiaSBnaWFuIGRvYW4gaG9hdCBkb25nLiBOaGlldSBuaGFuIHZpZW4ga2hvbmcgY2hpdSBkdW9j IGNhaSBub25nIA0KbnVjIGtoaSBwaG9uZyBraW4gYnVuZyBiaSBtYXQgZGllbiwga2hvbmcgY28g Y2h1dCBnaW8gZGEga2VvIHZlIG1vdCBzbyBxdWFuIGNhZmUgbmh1IA0KTmFuZyBTYWkgR29uLCBO ZXcgV2luZG93LCBjYWZlIERhbmcuLi4NCg0KS2hvbmcga2hpIHRhaSBxdWFuIGN1bmcgZGFjIHF1 YW5oIG11aSBraG9pIHRodW9jLCBtdWkgY2FmZSwga2VtIGJvLCBob2EgcXVhIG5lbiByYXQgaXQg DQpraGFjaCBkZW4gZGF5IGNvIHRoZSB5ZW4gdGFtIG5nb2kgbGFtIHZpZWMuIFRoYW5oIHJhLCBo byBub2kgY2h1eWVuLCB0aGFuIHBoaWVuIHJvaSBpIG9pIA0KZ29pIGRpZW4gdmUgY28gcXVhbiBk ZSBob2kgeGVtIHRpbmggaGluaCBkaWVuIGRvbS4gQW5oIFh1YW4gLSBuaGFuIHZpZW4gaGFuZyB2 aWVuIA0KdGhvbmcgbmhhbiBkdW9jIHRpbiBraG9hbmcgMTIgZ2lvIG1vaSBjbyBkaWVuIG5lbiBh bmggdHJhbmggdGh1IGFuIHRydWEgbHVvbiB0YWkgcXVhbiANCmNhZmUgRGFuZyB0cnVvYyBraGkg dmUgY28gcXVhbiBsYW0gdmllYy4gQ2hpIFZhbiAtIG5oYW4gdmllbiBuZ2FuIGhhbmcgY28gdHJ1 IHNvIGRvbmcgDQp0YWkgZHVvbmcgTmd1eWVuIENoaSBUaGFuaCB0aGkgdHJhbmcgdGh1IGxhaSB4 ZSBsZW4gcGhvIGRlIGdvaSBkYXUsIGNhdCB0b2MgdmEgc3BhIG5oYW4gDQpsdWMgY28gcXVhbiBt YXQgZGllbi4gQ2hpIGNobyByYW5nIG5ldSBraG9uZyBkaSB0YW4ga2hvaSB0b2EgbmhhLCBjYWkg bm9uZyBudWMgcmF0IGNvIHRoZSANCmtoaWVuIGNoaSBiaSBzdHJlc3MuDQoNClRvYSBuaGEgMTAy IFRoYWkgVGhpbmggLSBIYSBOb2kgc2FuZyBuYXkgY3VuZyBuYW0gdHJvbmcgZGllbiBiaSBjYXQg ZGllbi4gTmhpZXUgY29uZyANCnR5IHRodW9jIGNhYyBsaW5oIHZ1YyBiYW8gaGllbSwgbmdhbiBo YW5nLCBjaHVuZyBraG9hbiBjdW5nIG5hbSB0cm9uZyB0aW5oIHRyYW5nIGdpYW8gDQpkaWNoIGJp IGdpYW4gZG9hbiB0cm9uZyBsdWMgY2hvIG1heSBubyBraG9pIGRvbmcuDQoNCk5oaWV1IHF1YW4g Y2FmZSBuYW0gdHJvbmcga2h1IHZ1YyBkdW9uZyBUaGFpIFRoaW5oLCBWaW5oIEhvLCBIYSBOb2kg bmhvbiBuaGlwIHRpZW5nIA0KY3VvaSBjdWEgZ2lvaSBjb25nIHNvLiBIbyB2dWEgbmhhbSBuaGkg bHkgY2FmZSB2dWEgcGhlIHBoYXkgY2hpZWMgcXVhdCBsYS4gQWkgY3VuZyB0aGFwIA0KdGhvbSBs byBkaWVuIGtlbyBkYWksIGNvbmcgdmllYyBiaSBnaWFuIGRvYW4gbWEgY2FpIG5hbmcgbm9uZyBv IG5nb2FpIHRyb2kgY3UgaGFtIGhhcCANCnRhcCB2YW8gbWF0IG5ndW9pIHF1YSBkdW9uZy4uLg0K DQotDQpodHRwOi8vdHJhbm5odW9uZy5jb20vbmV3c19kZXRhaWwvNjQ5OS9MVS1MVVQtdmEtREFJ LUxFIFRyYW4gSHV5IFRodWFuDQoNCkxVIExVVCB2YSBEQUkgTEUNCiANClRpbiB0cmVuIGJhbzog bmdheSBtdW5nIG5hbSB0aGFuZyBtdW9pDQpCYSBtdW9pIGRvbmcgYmFvIHRhIGtob25nIGNvbiBu dWFbMV0NCkx1IGx1dCBtaWVuIFRydW5nIGRhIGN1b3AgaG8gZGkgcm9pDQpDYSBudW9jIHF1YW4g ZGF1IHR1bmcga2h1YyBydW90Lg0KIA0KQ3VuZyB0aW4gdHJlbiBiYW8gbmdheSBtdW5nIG5hbSB0 aGFuZyBtdW9pDQpIYSBOb2ksIFRSQUkgVElNIENBIE5VT0MNCkRhbmcgdHVuZyBidW5nIGxlIGhv aSAibmdhbiBuYW0iDQoiQ2hpbiBnaW8gZ2lvaSB0aGlldSBjb25nIHRyaW5oIGdvbSBzdS4uLg0K SGFpIG11b2kgZ2lvIE5oYSBoYXQgbG9uIGNhIG5oYWMgdmFuZyB2YW5nIiENCihUcnVvYyBkbyBi YSBnaW8sIG51b2Mgc29uZyBLaWVuIEdpYW5nDQp2YW4gY29uIHRyZW4gbXVjIGJhbyBkb25nIGJh KS4NCiANCkNodW5nIHRhIGN1IHRodW9uZyBuZ2hlIGhhaSB0dSBWTyBDQU0NCk5odW5nIHR1b25n IHJhbmcgbm8gbGFuIGtodWF0IGRhdSBkYXUuDQpUaGkgaG9tIG5heSBubyBoaWVuIHJhIHJhdCBk aW5oIGRhbQ0KVHJ1b2MgbWF0IG11b24gbmd1b2ksIHRydW9jIHRoYXQgc3Ugbm9pIGRhdSENCiAN Cg0KTmdoZSBuaHVuZyB0aG9uZyB0aW4gdHJhaSBuZ3VvYw0KdHJvbmcgbG9uZyBuZ29uIG5nYW5n IGhhaSBkaWV1ICJNQVQsIERVT0MiDQpMYWkgbmhvIGRlbiBjYXUgbmF5Og0KIlRpZW4gYm8gdHVp IHRoYXksIA0KDQpBaSBjaGV0IG1hYyB0aGF5IiENCg0KVEhUIA0KDQpodHRwOi8vZG9uZ2EwMS5i bG9nc3BvdC5jb20vMjAwOS8xMi90YWktc2FvLWxhaS1sYS1jaHUuaHRtbCBQb3N0ZWQgYnkgRG9u ZyBBIDEyLzMwLzIwMDkgMDI6MTc6MDAgUE0NCg0KVGhhbmcgTG9uZyAtIEhhIE5vaTogVGFpIHNh byBsYWkgbGEgY2h1ICJ0aGllbiI/IA0KDQpDaHVuZyB0b2kgeGVtIGFuaCBMZSBob2kgaG9hIEhh IE5vaSB0cmVuIGJhbyBEYW4gdHJpIChhbmggbWluaCBob2Ega2VtIHRoZW8pOyANCnhlbSBkZW4g YnVjIGFuaCBjaHVwIGJpZXUgdHVvbmcgIlRoaWVuIGRvIGNoaWV1IiB0aGkga2hvbmcgdGhlIG5h byBoaWV1IG5vaSB0YWkgc2FvIA0KbGFpIGxhIGNodSAidGhpZW4iIGNvIG5naGlhIGxhICJ0cm9p IiBvIGJpZXUgdHVvbmcgbmF5LiBOZXUgdmlldCBjaHUgInRoaWVuIiB0cm9uZyANCiJUaGllbiBk byBjaGlldSIgdGhpIHBoYWkgbGEgY2h1ICJ0aGllbiIgY28gbmdoaWEgbGEgImRpIGRvaSIgY2h1 LiBUaGFuZyBMb25nIG5naGluIG5hbSANCnZhbiBoaWVuIGRlbiBub25nIG5vaSBuYXkgdT8gDQoN CkFuaCBjaHVwOiBCaWV1IHR1b25nICdDaGlldSAidHJvaSIgZG8nIHRydW5nIGJheSB0YWkgSGEg Tm9pIChhbmgtYmFvIGRhbiB0cmkpDQoNCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZu LzIwMTAtMDktMjQtZG9jLWNoaWV1LWRvaS1kby1iYW5nLWRvaS1tYXQtaGllbi10YWkgMS8xMC8y MDEwIA0KDQpUaGFuZyBMb25nIC0gSGEgTm9pOiBOZ2F5IDEvMTAvMjAxMCwgYmlldSB0dW9uZyAi Y2hpZXUgZG9pIGRvIiBsYWkgdmFuIGxhIGNodSAidHJvaSIgKHRpZW5nIEhhbikgY2h1IGtob25n IHBoYWkgY2h1ICJEb2kiIChkaSBkb2kpLiAgDQoNCihBbmggY2h1cDogQmlldSB0dW9uZyAnQ2hp ZXUgInRyb2kiIGRvJyB0cnVuZyBiYXkgdGFpIEhhIE5vaSkgDQoNCmh0dHA6Ly9uZ3V5ZW54dWFu ZGllbi5ibG9nc3BvdC5jb20vMjAxMC8wOC92ZS1jb24tcm9uZy1tYS1iaS10aHUtdGhhbmgtdXkt aG4tdGFuZy5odG1sIFRoYW8gZGFuIDMxLTA4LTIwMTANCg0KSGEgTm9pOiBWZSBjb24gUm9uZyBt YSBCaSB0aHUgVGhhbmggdXkgSGEgTm9pIHRhbmcgRGFpIHR1b25nIFZvIE5ndXllbiBHaWFwIA0K DQoxMDAwIENPTiBST05HIEhBWSAxMDAxIENPTiBST05HPyANCg0KVE5DOiBLZSB0aGFvIGRhbiBu YXkgaG9pIGJpIGxhbSBjYW0uIENoYSBsYSB0aGUgbmF5LCBob20gcXVhIEhhIE5vaSBsYW0gbGUg U2FpIHRpbmggDQpraGFpIHF1YW5nIDEwMDAgY29uIHJvbmcuIExhaSBkb2MgdGluIGhvbSAyNC04 IG9uZyBQaGFtIFF1YW5nIE5naGkgZGEgbWFuZyAxIGNvbiANCnJvbmcgc28gaGlldSAxMDAgZGVu IG11bmcgdGhvIERhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lhcCAxMDAgdHVvaS4gVGhhbyBkYW4gbmF5 IGRhbSANCnJhIG5naGkgbmdvaSBuZXUga2h1eWV0IGNvbiByb25nIHNvIDEwMCB0aGkgY2hpIGNv biA5OTkgY29uIGxhbSBsZSBob20gcXVhIGhvYWMgbGEgY28gMiANCmNvbiBtYW5nIHNvIDEwMCBo b2FjIGxhIG11b24gRGFpIHR1b25nIGNvbiAxMDAgcmEgbGFtIGxlLiBLaG9uZyBiaWV0IGxhIHRo ZSBuYW8sIHF1eSANCnZpIGFpIGJpZXQgeGluIHRyYSBsb2kga2UgdGhhbyBkYW4gbmF5IG1vdCB0 aWVuZy4uLg0KDQpSb25nIFRoYW5nIExvbmcgY2hpbmggdGh1YyBkdW9jIGxhbSBsZSAiS2hhaSBx dWFuZyINCg0KKFZUQyBOZXdzKSCWIE5nYXkgMjkvOCwgdGFpIEhvYW5nIFRoYW5oIFRoYW5nIExv bmcgSGEgTm9pLCAxLjAwMCBreSB2YXQgUm9uZyANClRoYW5nIExvbmcgc2F1IGtoaSBkYSBkdW9j IGxhbSBsZSAiU2FpIHRpbmgsIGtoYWkgcXVhbmciIGRlIHRybyB0aGFuaCBtb24gcXVhIGx1dSBu aWVtIA0KZGFjIGJpZXQgY2hhbyBtdW5nIERhaSBsZSBuZ2hpbiBuYW0gVGhhbmcgTG9uZyBIYSBO b2kuIE5naGkgbGUgbGluaCB0aGllbmcgbmF5IGRhbmggDQpkYXUgc3Uga2llbiBob2FuIHRoaWVu IDEwMDAgUm9uZyBUaGFuZyBMb25nIC0gS3kgdmF0IGN1YSBEYWkgbGUgbmdoaW4gbmFtIFRoYW5n IA0KTG9uZyBkZSB0aGFtIGdpYSBwaHVjIHZ1IGNobyBjYWMgaG9hdCBkb25nIGN1YSBEYWkgbGUg ZGFuZyBkZW4gZ2FuLg0KDQooSGluaCBhbmggbGUgc2FpIHRpbmgga2hhaSBxdWFuZyBkaWVtIG5o YW4pDQoNCihEb2MgdGluIHRoZW8gbGluayBodHRwOi8vd3d3LnJvbmd0aGFuZ2xvbmcudm4vbm9k ZS84NikNCg0KSGEgTm9pIHRhbmcgcm9uZyBUaGFuZyBMb25nIG11bmcgdGhvIERhaSB0dW9uZw0K DQpCaSB0aHUgVGhhbmggdXkgSGEgTm9pIFBoYW0gUXVhbmcgTmdoaSBkYSB0YW5nIERhaSB0dW9u ZyBSb25nIFRoYW5nIExvbmcgbWFuZyANCnNvIGhpZXUgMTAwLg0KDQpEYXkgbGEgcXVhIHRhbmcg bmhhbiBkaXAgc2luaCBuaGF0IGxhbiB0aHUgMTAwIGN1YSBEYWkgdHVvbmcgVm8gTmd1eWVuIEdp YXAsDQoNClNhbmcgMjQvOCwgQmkgdGh1IFRoYW5oIHV5IFBoYW0gUXVhbmcgTmdoaSBjdW5nIG5o aWV1IGxhbmggZGFvIEhhIE5vaSBkYSB0b2kgdGhhbSwgDQpjaHVjIHRobyBEYWkgdHVvbmcuIEJp IHRodSBraGFuZyBkaW5oLCB0cm9uZyB0aG9pIGdpYW4gcXVhLCBIYSBOb2kgbHVvbiBsdW9uIGdo aSBuaG8sIA0KdGh1YyBoaWVuIGxvaSBEYWkgdHVvbmcgY2FuIGRhbiwgbmhhYyBuaG8sIHhheSBk dW5nIERhbmcgYm8sIGNoaW5oIHF1eWVuIHZ1bmcgbWFuaCwgDQp4YXkgZHVuZyB0aHUgZG8gdmFu IG1pbmggaGllbiBkYWkuDQpNYW5nIHRoZW8gbW9uIHF1YSBkYWMgYmlldCBjdWEgZGlwIGRhaSBs ZSBuZ2hpbiBuYW0gbGEgcm9uZyBUaGFuZyBMb25nIChiaWV1IHR1b25nIA0Kcm9uZyB0aG9pIEx5 KSwgZHVvYyBnYW4gc28gaGlldSAxMDAsIG9uZyBOZ2hpIGtpbmggY2h1YyBEYWkgdHVvbmcgdHJ1 b25nIHRoby4gVm9pIHNvIA0KaGlldSBuYXksIHJvbmcgbWFuZyB5IG5naGlhIHkgbmdoaWEgYmFj aCBuaWVuIGdpYWkgbGFvLCBiYWNoIHBodWMsIGJhY2ggbG9jLi4uIERhYyBiaWV0LCANCnZvaSBt b3QgdmkgdHVvbmcgbGF5IGx1bmcgbmh1IERhaSB0dW9uZyBWbyBOZ3V5ZW4gR2lhcCwgbm8gY29u IG1hbmcgeSBuZ2hpYSB0cmFtIA0KdHJhbiB0cmFtIHRoYW5nLg0KDQooRG9jIHRpbiB0aGVvIGxp bmsgaHR0cDovL3ZuZXhwcmVzcy5uZXQvR0wvWGEtaG9pLzIwMTAvMDgvM0JBMUZBMkMvKQ0KTmd1 b246IFRyYW5OaHVvbmcuY29tIA0KDQpOZ3V5ZW4gWHVhbiBEaWVuIGJpbmggbHVjIDA2OjM4Og0K DQpWYXkgbGEgY29uIHJvbmcgbWEgQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSBkYW5nIHRhbmcgRGFp IHR1b25nIGNoaSBsYSBtb3QgdmF0IHBoYW0gDQpteSBuZ2hlIG1hIGNodWEgaGUgZHVvYyBTYWkg dGluaCwga2hhaSBxdWFuZywgZGllbSBuaGFuIG5odSA5OTkgY29uIHJvbmcga2lhLiBTYW8gbGFp IA0KeHUgc3Ugbmh1IHRoZSBkb2kgdm9pIERhaSB0dW9uZyENCg0KWSBraWVuIGJhbiBkb2M6IA0K DQpOZ3V5ZW4gRHVjIEh1bmcgMDk6MjkgTmdheSAzMSB0aGFuZyA4IG5hbSAyMDEwOiANCiANCkNv IGxlIG5hbyBsYWkgbmh1IHZheSwgaG8gZGFtIGxhbSBuaHUgdmF5IHNhbz8gZGF5IGxhIHZpZWMg aGUgdHJvbmcsIG9uZyBOZ2hpIG5lbiBjbyBsb2kgDQp0aHVhIGxhaSBjaG8gcm8gcmFuZy4gDQoN Ck5EIDEwOjM5IE5nYXkgMzEgdGhhbmcgOCBuYW0gMjAxMDogDQoNCktoaSBuZ2hlIHRpbiB2ZSBj aHV5ZW4gbmF5IGVtIGNvIDIgeSBuZ2hpIGxhbiB0aGFuIHRoZSBuYXk6DQoNCk1vdCBsYSwgdmll YyB0YW5nIHJvbmcgY2hvIERhaSB0dW9uZyBuZXUgY28gdGh1YyBoaWVuIHRoaSBjdW5nIG5lbiBs YW0gc2F1IGtoaSBjYWMgc3UgDQpraWVuIGxpZW4gcXVhbiB0b2kgbm8gaG9hbiB0aGFuaC4gQ2hh bmcgaGFuIG5odSBraGFpIHF1YW5nIGhheSB0ZSBjYW8gZ2lvaSBkYXQgZ2kgZG8gZGEuDQpIYWkg bGE6IE5ndW9pIG1hbmcgdGFuZyByb25nIGNobyBEYWkgdHVvbmcgbmVuIGxhIDEgYm8gbGFvIGRh byBjYW8gZHVjIHRyb25nIGhvYWMgMSBCYSANCm1lIFZOQUguIE9uZyBCaSB0aHUgSE4gbGFtIHZp ZWMgbmF5IGUga2hvIHBodSBob3AuIA0KIA0KTkQgMTE6MTQgTmdheSAzMSB0aGFuZyA4IG5hbSAy MDEwOg0KDQpOZXUgdG9pIGxhIHJvbmcgdGhpIG11b24gYmEgbWUgYW5oIGh1bmcgbmFvIGRvICh0 aWVjIGxhIGJheSBnaW8gY2FjIG1lIGN1bmcgbWF0IGdhbiBoZXQgDQpyb2kpIGtoYWkgcXVhbmcg Y2hvIG1pbmggY2FpIGdpIGRvLCBob2FjIGRvbiBnaWFuIGNoaSBjaGFtIHZhbyBkZSBjYW0gbmhh biBkdW9jIGhvaSANCmFtIGNvbiBuZ3VvaSB0aGUga3kgMjAgdm9pIG1hdSB2YSBudW9jIG1hdCBk ZSBnaXUgZGF0LiANCg0KUm9uZyBuYXkgbmhpbiBtaW5oIGJhbmcgbWF0IFBoaSBjaGF1Li4uLmJ1 b24gbmF1IHJ1b3QuIA0KDQpPbWFuaXplbiAgMTE6MTggTmdheSAwMiB0aGFuZyA5IG5hbSAyMDEw OiAgDQoNCkR1IHNhbyBkYXkgY3VuZyBsYSBtb3QgaGFuaCB2aSBjYXUgdGhhICxraG9uZyBjbyBt b3QgY2h1dCB0aGFuaCB5IHRoYW5oIHRhbSBjaHVjIHRobyANCmN1YSBOaGEgbnVvYyBkb2kgdm9p IERhaSB0dW9uZy4gWGV0IHZlIHRhbSBsaW5oIHRoaSByb25nIGNodWEgImtoYWkgcXVhbmcgZGll bSBuaGFuIiANCmxhIG1vdCBjb24gcm9uZyBkdWksIGtob25nIGtoYWMgY2hpIG1vdCBjdWMgZG9u ZyAzLjUga2cgbWEgdGhvaS4gDQoNClREIDEyOjE2IE5nYXkgMDIgdGhhbmcgOSBuYW0gMjAxMDog DQpUcm9uZyBkaXAga3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25nIG5heSwgbmVuIGNoYW5nLCBj dW5nIGNhbiBjbyBzdSBxdWFuIHRhbSwgdGhhbSBob2kgdG9pIGNhYyBtZSBWaWV0IE5hbSBhbmgg aHVuZywgY2FjIHRodW9uZyBiaW5oIHZhIGdpYSBkaW5oIGxpZXQgc2kuLi4gIA0KDQpodHRwOi8v d3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA4L0JvLUNoaW5oLXRyaS1kb25nLXRpbmgt cGh1b25nLWFuLW5oYW4tc3UtY3VhLUhhLU5vaS05MzIxNzkvIFRUWFZOICAyMzoyMywgMjcvMDgv MjAxMCAoR01UKzcpIA0KDQpIYSBOb2k6IFZpZWMgeGF5IGR1bmcgdmFuIGhvYSBOZ3VvaSBIYSBO b2kgdGhhbmggbGljaCwgdmFuIG1pbmggY2h1YSB0dW9uZyB4dW5nIHZvaSB5ZXUgY2F1IGN1YSBt b3QgVGh1IGRvIG5nYW4gbmFtIHZhbiBoaWVuLiANCg0KLS0tLS0NClBodSBjaHVvbmc6IERhaSBs ZSAxMDAwIG5hbSBUaGFuZyBMb25nLSBIYSBOb2kgIA0KDQotLS0tLQ0KaHR0cDovL25oa2llbi5i bG9nc3BvdC5jb20vMjAxMC8wNi9jaHVhbi1iaS1haS1sZS0xMDAwLW5hbS10aGFuZy1sb25nLWhh Lmh0bWwgVnVvbmcgSGEgMDUvNi8yMDEwDQoNCkNodWFuIGJpIERhaSBsZSAxMDAwIG5hbSBUaGFu ZyBMb25nIJYgSGEgTm9pICJDbyB0aGUgYmkgbGFtIGR1bmcgZGUgdHUgbG9pIiANCg0KTGFuZyBw aGkgdGllbiBjdWEgdHJvbmcgbGUgaG9pIGxhIGRlIHRhaSBkdW9jIERCUUggbmhhYyBxdWEgbmhp ZXUgdHUgY2FjIHBoaWVuIGhvcCBVQlRWIA0KZGVuIHBoaWVuIHRoYW8gbHVhbiBjdWEgUUggdGFp IEhvaSB0cnVvbmcuDQoNClZhbiBkZSBuYXkgY2FuZyBub25nIGhvbiwga2hpIG5nYW4gc2FjaCBj aGkgY2hvIHZpZWMgY2hpbmggdHJhbmcgZG8gdGhpIEhhIE5vaSBxdWEgbG9uLCANCm1hIGN1b2Mg ImRhaSBwaGF1IHRoYW0gbXkiIEhhIE5vaSBsYWkga2hpZW4gbmd1b2kgZGFuIHZhIGR1IGx1YW4g YnVjIHh1Yy4gDQoNClRyYW8gZG9pIHZvaSBEUyZQTCwgb25nIERhbyBUcm9uZyBUaGksIENodSBu aGllbSBVQiBWYW4gaG9hLCBHaWFvIGR1YywgVGhhbmggDQp0aGlldSBuaWVuIHZhIE5oaSBkb25n IGN1YSBRSCBjaG8gcmFuZzogTGUgaG9pIG1vIHJhIHBoYWkgbmhhbSBuYW5nIGNhbyBkb2kgc29u ZyB0aW5oIA0KdGhhbiBjdWEgbmd1b2kgZGFuLCBjYW4gbGFtIG5odW5nIG5lbiB0aW5oIHRvYW4g bGFtIHNhbyBkYXQgZHVvYyBoaWV1IHF1YS4NCg0KVG9pIGRheSBtaW5oIGNvICIxLjAwMCBuYW0g VGhhbmcgTG9uZyIsIHF1YSB0cmluaCBjaHVhbiBiaSBkZSB0aWVuIHRvaSBsYSBjYSBtb3QgaGUg DQp0aG9uZyBraG9uZyBjaGkgbyBIYSBOb2kgbWEgY2FjIGRpYSBwaHVvbmcgbGllbiBxdWFuIGRl biBIYSBOb2kgliBUaGFuZyBMb25nIG5odSANCmNhYyBjbyBkbywgY2FjIHRpbmgsIGNhYyBkaWEg cGh1b25nIGNvIHF1YW4gaGUuIERheSBsYSBuYW0gZGFjIGJpZXQuDQoNClRyb25nIHRvIGNodWMg Y3UgdGhlLCBraG9hbiBuYW8gcGh1bmcgcGhpIG1hIGtob25nIGNhbiB0aGlldCB0aGkgY3VuZyBr aG9uZyBuZW4uIENhbiANCnJ1dCBraW5oIG5naGllbSBuaHVuZyBjaG8gZG8uIENvIG5ndW9pIGN1 IG5vaSBsZSBob2kgbWF0IGJhbyBuaGlldSB0aWVuLCB0aWV0IGtpZW0gZGkgdGhpIA0KbGFtIGR1 b2MgbmhpZXUgdGh1IHRoaSBjdW5nIGtob25nIGR1bmcuDQoNCi0gVGhlbyBvbmcsIGNobyBwaHVu ZyBwaGkga2hvbmcgZHVuZyBheSBjdSB0aGUgbGEgbyBkYXU/DQoNCi0gVHJvbmcgdG8gY2h1YyBj YWMgaG9hdCBkb25nIGN1IHRoZSBjbyBuaHVuZyBsYW5nIHBoaSBraG9uZyBjYW4gdGhpZXQuDQoN CkNoYW5nIGhhbiBuaHUgbyBIdWUgY2hpIHZpIGxhbSBjYWkgc2FuIGtoYXUgbWEgY2h1eWVuIGx1 b24gY2EgaGFuZyBjYXkgaG9hIHN1IGNvIGNhIA0KdHJhbSBuYW0gdHVvaS4gTmh1IHZheSwga2hv bmcgY2hpIGxhbmcgcGhpIG1hIG5vIGNvbiBkaSBuZ3VvYyBsYWkgdGluaCB0aGFuIHZhbiBob2Eu IA0KSGF5IGNodXllbiBIYSBOb2kgYm8gcmEgbmhpZXUgdHkgZG9uZyBkZSBjaGluaCB0cmFuZyBs YWkgcGhvIHBodW9uZyBsYSB0b24ga2VtLg0KDQpDdSB0aGUgbmh1IGtoYXUgaGlldSwgcXVhbmcg Y2FvIHZlIGxlIGhvaSB0aGF0IHN1IGxhIGxhbmcgcGhpLCBubyBraG9uZyBtYW5nIGxhaSBoaWV1 IHF1YSBnaSBjYS4NCg0KTGFuZyBwaGkgcGhhaSBzbyB2b2kgdmllYyBhbmggbGFtIGhpZXUgcXVh IGRlbiBkYXUgY2h1IGtob25nIHBoYWkgbGEga2hvbmcgbGFtLiBMYW0gDQptYSBtYW5nIGxhaSBo aWV1IHF1YSB0aGkga2hvbmcgZ29pIGxhIGxhbmcgcGhpLiANCg0KLSBVQiBWYW4gaG9hIEdpYW8g ZHVjIFRoYW5oIHRoaWV1IG5pZW4gdmEgbmhpIGRvbmcgZGEgYmFvIGdpbyBraGFvIHNhdCB2YW4g ZGUgbGFuZyBwaGkNCm5heSAgY2h1YT8gDQoNCi0gQ2h1bmcgdG9pIGNodWEgZ2lhbSBzYXQsIG5o dW5nIGN1b2kgbmFtIHZ1YSByb2kgY28gZ2lhbSBzYXQgbmdhbiB2ZSBjYWMgY29uZyB0cmluaCAN CnRpZW4gdG9pIGNodWFuIGJpIDEuMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pLg0KDQpDaHVu ZyB0b2kgcXVhbiB0YW0gZGVuIGNhYyBoYW5nIG11YyBkYXUgdHUgZGUgdGllbiB0b2kga3kgbmll bS4NCg0KLSBRdWEgZ2lhbSBzYXQgbmh1IHZheSwgb25nIGJpbmggbHVhbiBnaSB2ZSAiY29uZyBj dW9jIiBjYXkgeG9pIEhhIE5vaSwgY2hpbmggdHJhbmcgZG8gDQp0aGkgbWEgZHUgbHVhbiBnb2kg bGEgImN1b2MgZGFpIHBoYXUgdGhhbSBteSIgZGF5IHRvbiBrZW0gbmF5IGRlIGJpZW4gSGEgTm9p IDEwMDAgDQp0dW9pIHRoYW5oIDEtMiBuZ2F5IHR1b2k/DQoNCi0gVG9pIG5naGkgY2FjIGhvYXQg ZG9uZyBuYXkgZ2lhIG5odSBjbyBtb3Qga2UgaG9hY2gsIGNvIHRpbmggdG9hbiwgdGhhbSBjaGkg Y28gbW90IHF1eSANCmhvYWNoIGN1IHRoZSB0aGkgbm8gZG8gdG9uIGtlbS4NCg0KVnVhIHJvaSwg Y28gbmhpZXUgYW5oIGRlIHJhIGNhYyBob2F0IGRvbmcgY2h1YW4gYmkgbmh1bmcga2hvbmcgbWFu ZyBsYWkgaGlldSBxdWEgZ2kuIENhaSBkbyBsYSB0b24ga2VtLiANCg0KLSBDbyB5IGtpZW4gY2hv IHJhbmcgdHUgbmh1bmcgdmllYyBsYW0ga2hvbmcgaGlldSBxdWEgYXksIHRpZW4gY3VhIHR1IHZp ZWMgY2h1YW4gYmkgRGFpIA0KbGUgZGEgZG8gdmFvIHR1aSBjdWEgY2FjIHNvLCBiYW4gbmdhbmgs IGNhYyBkb2FuaCBuZ2hpZXA/IA0KDQotIEtob25nIGxvYWkgdHJ1IG5odW5nIHRydW9uZyBob3Ag YXkuDQoNCkJvaSBkZSB0aHVjIGhpZW4gRGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcgliBIYSBO b2kgdGhpIG1vdCBraG9hbiBraW5oIHBoaSBibyByYSBsYSANCnJhdCBsb24uIFZhIHJhdCBjbyB0 aGUsIGNvIG5odW5nIG5ndW9pIGxhbSBkdW5nIGNodXllbiBkbyBkZSB0dSBsb2kuDQoNCi0gVmll YyAiZGFpIHBoYXUgSGEgTm9pIiBraGllbiBjaG8ga2hvbmcgaXQgZHUga2hhY2ggIGxhbmggbHVu ZywgdGhhbSBjaGkgdGhvIG8gdm9pIEhhIA0KTm9pLCBkdSBkYXkgbGEgbmFtIGR1IGxpY2ggcXVv YyBnaWEuIG9uZyBzdXkgbmdoaSBnaSB2ZSBkaWV1IG5heT8NCg0KLSBUb2kgbmdoaSwgY2h1bmcg dGEgY3UgbGFtIG1vaSB2aWVjIG1vdCBjYWNoIGNoYXAgdmEgdGhpIGhpZXUgcXVhIHJhdCB0aGFw Lg0KVHV5IG5oaWVuLCBjdW5nIGNvIG1vdCB2YW4gZGUsIGRpZXUga2llbiBjbyBzbyBoYSB0YW5n IGN1YSBIYSBOb2kgcmF0IGtlbSBtYSBsYWkga2hvbmcgDQpjbyBjaHUgdHJ1b25nLCBrZSBob2Fj aCBkYXUgdHUgbWFuZyB0aW5oIGNoYXQgdGhhdCBjbyBiYW4uDQpCb2kgdmF5IGN1IGNoYXAgdmEs IGNvIHRpIHRpZW4gdGhpIGxhaSBsYW0gY2hvIG5heSwgbGFtIGNobyBraWEgbmh1IHZheSBzZSBr aG9uZyBjbyBoaWV1IA0KcXVhIGRhbiBkZW4gcmF0IGxhbmcgcGhpLg0KQ28gaXQgdGllbiwgYW5o IG5naGkgcmEgc3VhIHNhbmcsIHF1ZXQgdm9pIGxhbSBtYXQgYmFuZyBuaHVuZyBhbmggY2h1YSBi YW8gZ2lvIGNvIGNhaSANCm5oaW4gdG9uZyB0aGUga2llbiB0cnVjIEhhIE5vaSwgZGF5IHBobyAg bmF5IHRoaSBuZW4gcXVldCBzb24gbWF1IGdpLCBkYXkgcGhvIGtoYWMgdGhpIA0KbWF1IGdpLiBN aW5oIG11b24gY2hpbmggdHJhbmcgY2hvIGRlcCBob24sIG5odW5nIHJhdCBjbyB0aGUgaGlldSBx dWEgdGhpICBuZ3VvYyBsYWkuDQoNCi0gWGluIGNhbSBvbiBvbmchDQoNCihuZ3VvbjogaHR0cDov L3d3dy5kb2lzb25ncGhhcGx1YXQuY29tLnZuL1N0b3J5LmFzcHg/bGFuZz12biZ6b25lcGFyZW50 PTAmem9uZT02JklEPTQyNzIpDQoNCkhvbSBUaHUgQmEgMjUvMDUvMjAxMCwgb25nIE5ndXllbiBN aW5oIFRodXlldCAoUGhvIENodSBuaGllbSBVeSBiYW4gbmF5IGN1YSANCiBRdW9jIGhvaSkgY3Vu ZyBkYSB0cmEgbG9pIHBob25nIHZhbiBiYW8gVHVvaSB0cmU6IENhbiBjaGFuIGNoaW5oIGNodXll biAiYW4gdGhlbyIgDQoNCiogVGh1YSBvbmcsIG5oYW4gc3Uga2llbiBreSBuaWVtIDEuMDAwIG5h bSBUaGFuZyBMb25nIJYgSGEgTm9pIGNvIG5oaWV1IHZpZWMga2hvbmcgDQp0aGF0IHkgbmdoaWEu IE5oaWV1IHZpYSBoZSBkYW5nIGRlcCB0dSBuaGllbiBkYW8gbGVuIGxhdCBiYW5nIGRhIG1vaSwg bmhhIHJldSBwaG9uZyBjbyANCmtpbmggdGhpIHNvbiBsYWkuLi4gUGhhaSBjaGFuZyBkYW5nIGNv ICJwaG9uZyB0cmFvIiBjaGkgdGllbiBuaGFuIDEuMDAwIG5hbSBUaGFuZyBMb25nPw0KDQotIDEu MDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIGxhIHN1IGtpZW4gcmF0IGxvbiwgY28geSBuZ2hp YS4gTmhhbiBsZSBob2ksIHRhIGNoaW5oIA0KdHJhbmcgZG8gdGhpIGxhIGR1bmcgdmEgbmhpZXUg dmllYyBjaGluaCB0cmFuZyBsYSBjYW4gdGhpZXQuIE5odW5nIGJlbiBjYW5oIGNvbmcgdHJpbmgg DQpob2FuaCB0cmFuZywgY2FuIHRoaWV0LCB0b2kgY28gY2FtIHR1b25nIG5oaWV1IGNvbmcgdHJp bmggbGFtIGNodWEgZGF1IHZhbyBkYXUuIENodW9pIA0KaGFuaCBkb25nIGNobyBsZSBob2kgZGF5 IHF1YSBjbyB0aGUga2hpZW4gZGFuIHRoYXkgdGllYywgc28gbGFuZyBwaGkuIFZpZWMgY2F5IHZp YSBoZSwgbGF0IA0KbW9pLCB0aGVvIHRvaSBwaGFpIHhlbSBsYWkuDQoNCk5odSBkb2FuIEhhbmcg S2hheSwgSGFuZyBCYWkgYmkgdGhheSBibyBoZSBjdSBiYW5nIGJvIGhlIG1vaSwgZGFuIGtob25n IHRhbiB0aGFuaC4gDQpOaHVuZyB2aWVuIGJvIHZpYSBoZSBkYW5nIHJhdCB0b3QsIGR1b2MgbGFt IHR1IGRhdSB0aGUga3kgMjAsIGR1b2MgZGVvIGdvdCByYXQgY29uZyBwaHUsIA0KbmF5IHR1IG5o aWVuIGxvdCBsZW4gdGhheSBiYW5nIGxvcCBtb2ksIHRyb24gdHJ1b3QuIENhbiB4ZW0gbGFpIGx5 IGRvIHZpIHNhbyBuaGlldSBub2kgDQp0aGljaCB0aGF5IG1vaSB0aGUsIGNvIHBoYWkgZG8gbGEg dGhpY2ggZHUgYW4gdmkgZHUgYW4gY28ga2luaCBwaGkgaGF5IGtob25nLg0KDQpIaWVuIG5heSBk dW5nIGxhIGRhbmcgY28gaGllbiB0dW9uZyBhbiB0aGVvIDEuMDAwIG5hbSBUaGFuZyBMb25nLiBO aGlldSBjb25nIHRyaW5oIA0KY2hhbmcgZGluaCBkYW5nIGdpIGRlbiAxLjAwMCBuYW0gVGhhbmcg TG9uZywga2hvbmcgbGllbiBxdWFuIGRlbiBuZ2FuIHNhY2ggMS4wMDAgDQpuYW0gVGhhbmcgTG9u ZyBuaHVuZyBjdW5nIGdhbiBiaWVuLiBMb25nIGRhbiBodW9uZyB2ZSB0aGkgdG90LCBuaHVuZyAi Z2FuIiBkZSBsb2kgDQpkdW5nIHN1IGtpZW4gbWEgcXVhbmcgYmEsIGJhbiBoYW5nLCBjaGkgdGll biBsYSB2aWVjIGtob25nIGR1bmcsIGNhbiBjaGFuIGNoaW5oLg0KDQpIb20gMDMvNCBPbmcgQmkg dGh1IFRoYW5oIHV5IEhhIE5vaSBraGFuZyBkaW5oIHZvaSBQViBUdSBOZ3V5ZW4gY3VhIA0Kdm5l Y29ub215LnZuIHJhbmc6IkhhIE5vaSBraG9uZyBsYW5nIHBoaSB0aWVuIGNobyBEYWkgbGUgMS4w MDAgbmFtIC4uLiB2aSBoYXUgaGV0IHNvIA0KdGllbiBkdW9jIGNoaSByYSBjaG8gRGFpIGxlIGxh IG8gZHVvaSBkYW5nIHZhdCB0aGUsIGdhbiB2b2kgZG9pIHNvbmcgbGF1IGRhaSBjdWEgbmd1b2kg ZGFuIFRodSBkby4iDQoNClNhdSBraGkgb25nIE5naGkga2hhbmcgZGluaCBuaHUgdmF5IGtob2Fu ZyAxMCBuZ2F5IHRoaSB4YXkgcmEgdnUgYm9jIGdhY2gtbGF0IGRhIHF1YW5oIEhvIEd1b20uDQog IA0KWGluIGNoaSBuaGFjIGxhaSB0aG9uZyB0aW4sIHZpIGtob25nIGJpZXQgbm9pIGdpIGhvbi4g IA0KDQpodHRwOi8vbXkub3BlcmEuY29tL0xlJTIwVGhhbmglMjBIb2FuZyUyMERhbi9ibG9nL3No b3cuZG1sLzExMzE5MzcxIEsuQW4gMjAxMC0wNS0xNA0KDQpIYSBOb2k6IDEwMDAgTmFtIFRoYW5n IExvbmcgliBMb2kgaWNoIGNobyBuaGlldSBiZW4/DQoNCkNodXllbiBoYW5nIG5naGluIHR5IGRv bmcgZG8gdmFvIGNhYyBjb25nIHRyaW5oIGNodWFuIGJpIGNobyBkYWkgbGUgDQoiMTAwMCBuYW0g VGhhbmcgTG9uZyCWIEhhIE5vaSIgZGEgdGFvIHJhIG5oaWV1IGx1b25nIGR1IGx1YW4ga2hhYyBu aGF1IGNhIHRyb25nIGxhbiBuZ29haSBudW9jLiANCkNhYyBuZ2hlIG5oYW4gZG8gZG9uZyBudW5n IGNoYXkgY2hvIHJhIGRvaSBjaGllYyB0cm9uZyBkYXUgdGllbiB0cm9uZyAxMDAgdHJvbmcgDQpk b25nIG11bmcgZGFpIGxlIDEuMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIA0KDQpMYW5nIHBo aSB2YSB0aGlldSB0aGlldCB0aHVjIA0KDQpUcm9uZyBkbywgY28gbmhpZXUgeSBraWVuIGNobyBy YW5nIGRheSBsYSBtb3QgZHUgYW4gZGFpIGxhbmcgcGhpLCBraG9uZyBtYW5nIGxhaSANCmhpZXUg cXVhIGtpbmggdGUsIHhhIGhvaSB0dW9uZyB4dW5nIHZvaSBzbyB0aWVuIGJvIHJhLiBNb3Qgc28g a2hhYyBsYWkgY2hvIHJhbmcsIA0KIjEwMDAgbmFtIFRoYW5nIExvbmcgliBIYSBOb2kiIGxhIG1v dCBob3AgZG9uZyBtYW5nIGxhaSBsb2kgaWNoIGNobyBuaGlldSBiZW4uIA0KDQpUcmEgbG9pIHBo b25nIHZhbiB0cmVuIGJhbyBkaWVuIHR1IFZuZWNvbm9teSB2ZSB2aWVjIGNvIG5oaWV1IHkga2ll biBjaG8gcmFuZyBjYWMgDQpjb25nIHRyaW5oIGNodWFuIGJpIGNobyBkYWkgbGUgIjEwMDAgbmFt IFRoYW5nIExvbmcgliBIYSBOb2kiIGxhIGxhbmcgcGhpIHZhIHRoaWV1IA0KdGhpZXQgdGh1Yywg QmkgdGh1IFRoYW5oIHV5IEhhIE5vaSBQaGFtIFF1YW5nIE5naGkga2hhbmcgZGluaCAiSGEgTm9p IGhvYW4gdG9hbiANCmtob25nIGxhbmcgcGhpIHRpZW4gY3VhIHZhbyBjYWMgaG9hdCBkb25nIGt5 IG5pZW0gRGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcgliBIYSBOb2kiLiAgDQoNCkRlIG1pbmgg eGFjIGNobyBsb2kgbm9pIGN1YSBtaW5oLCBvbmcgQmkgdGh1IFRoYW5oIFV5IGdpYWkgdGhpY2gg Y2FuIGtlIHR1bmcgbG9haSANCmhpbmggaG9hdCBkb25nLiBDaGFuZyBoYW4sIG5odW5nIGhvYXQg ZG9uZyBtYW5nIHRpbmggcGhpIHZhdCB0aGUgbmh1IHZhbiBkb25nIG5oYW4gDQpkYW4gdGh1IGRv biByYWMgZHVvbmcgcGhvIHZhIGNhICJyYWMiIHRyZW4gdHJvaSwgdGhlbyBvbmcsICJuZXUgZGll biByYSB0dSB0b24sIGFtIA0KdGhhbSB0aGkgc2Uga2hvbmcgYWkgdGhheSBkdW9jIG5lbiBwaGFp IGxhbSB0aGFuaCBwaG9uZyB0cmFvIHNhdSByb25nIGtoYXAgdGhhbmggcGhvIi4gDQoNCkNvbiAz NCBjb25nIHRyaW5oIG1hIHRoYW5oIHBobyBkYSBkdXlldCB0aGkgZGV1IGxhICJ2YXQgdGhlIiwg Y2h1IGtob25nIHBoYWkgbGEgDQoibGUgdGFuIiwgbm9pIG5vbSBuYSwgInRpZW4gZGEgcXV5IHJh IHRoYW5oIHRob2MiIGNhIGRheSB0aG9pLiBSaWVuZyBuaHVuZyBtb24gDQpxdWEgdGFuZyB0cmkg Z2lhIGhhbmcgY2h1YyB0eSBkb25nIHRoaSBjaGkgbGEgInRpbmggY2FtIGN1YSBjYSBudW9jIGRv aSB2b2kgSGEgTm9pIiwgDQpraG9uZyB0aGUgbmFvIHRpbmggdmFvIG5odW5nIGtob2FuIGNoaSBw aGkgY2hvIERhaSBsZSBkdW9jLiANCg0KTmhpZXUgbmd1b2kgdmksIG5odW5nIGNodXllbiB4dW5n IHF1YW5oIERhaSBsZSAxMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIGN1bmcgDQpnaW9uZyBu aHUgY2h1eWVuIG5naGluIGxlIG1vdCBkZW0sIG5vaSBtYWkga2hvbmcgaGV0LiBIYW5nIGxvYXQg Y29uZyB0cmluaCB0aWVuIA0KdHkgZHVvYyBkdWEgcmEsIHJvaSBibywgcm9pIGhvaSBoYSB0cmll biBraGFpLCByb2kgZ2lhaSBxdXlldCBoYXUgcXVhLiBOb2kgdGhlbyANCmtpZXUgbmhhIGdpYW8g UGhhbSBUb2FuLCBtb3QgdHJvbmcgbmh1bmcgc2FuZyBsYXAgdmllbiBjdWEgd2Vic2l0ZSBiYXV4 aXRldmlldG5hbSwgDQpsYSAibW90IHZ1IHRpZXUgdGllbiB2byB0b2kgdmEuIENvIG5odW5nIGRv YW4gZHVvbmcgbWEgbW9pIG1vdCBtZXQgdnVvbmcgdHUgbmhpZW4gDQpiYXkgZ2lvIGNheSBnYWNo IGxlbiBsYXQgbGFpLCB0b24ga2hvbmcgYmlldCBiYW8gbmhpZXUgdGkgdGkgZG9uZy4gQmF5IGdp byBsYWkgDQpkdW9uZyBiYW4gbmhhdSBkdWEgdGh1IGRvIGxlbiBCYSBWaS4iDQoNClR1eSBuaGll biwgY3VuZyBuaHUgbmhpZXUgY29uZyB0cmluaCBraGFjLCB5IHR1b25nICJkb2kgZG8iIHRob2kg aGllbiBkYWkgY3VuZyB2YXAgDQpwaGFpIGtob25nIGl0IHkga2llbiBwaGFuIGJhYyB2aSBtdWMg ZG8gdG9uIGtlbSBuaHVuZyB0aGlldSB0aHVjIHRlIGN1YSBuby4gDQpHUy4gVFMuIFBoYW0gTmdv YyBEYW5nLCBDaHUgdGljaCBIb2kgTW9pIHRydW9uZyB4YXkgZHVuZyBWaWV0IE5hbSwgdHJhIGxv aSB0cmVuIA0KYmFvIGRpZW4gdHUgVm5NZWRpYSByYW5nLCB5IHR1b25nIGNodXllbiB0cnVuZyB0 YW0gaGFuaCBjaGluaCBxdW9jIGdpYSBsZW4gDQpIb2EgTGFjIJYgY2hhbiBudWkgQmEgVmksIG5n b2FpIG5odW5nIHRvbiBrZW0sIHhhbyB0cm9uLCBsYW5nIHBoaSwgY29uIGxhIG1vdCANCmhhbmgg ZG9uZyB0aGlldSBjb2kgdHJvbmcgY2hpZXUgZG9pIGRvIGN1YSBIb2FuZyBkZSBMeSBDb25nIFVh biwga2hvbmcgcGh1IGhvcCANCnZvaSBuZ2hpbiBuYW0gbGljaCBzdSBjdWEgdGh1IGRvIFRoYW5n IExvbmcgliBIYSBOb2kuIA0KDQooQW5oOiBUaHUgdmllbiBIYSBOb2kgbGEgY29uZyB0cmluaCBk dXkgbmhhdCBkYSBob2FuIHRoYW5oIGRlIGt5IG5pZW0gMTAwMCBuYW0gDQpUaGFuZyBMb25nLiBQ aG90byBjb3VydGVzeSBvZiB0aHV2aWVuaGFub2kub3JnLnZuKSANCg0KQ28gdGhlIHZpIERhaSBs ZSAxMDAwIG5hbSBUaGFuZyBMb25nIJYgSGEgTm9pIGdpb25nIG5odSBtb3Qgc2FuIGtoYXUuIENv IHRpZXQgbXVjIA0KaG9hbmggdHJhbmcgbmh1bmcga2hvbmcgbWF5IHkgbmdoaWEsIGNvIHRpZXQg bXVjIGNvIG5vaSBkdW5nIG5odW5nIGxhaSBnYXAgbmh1bmcgDQpkaWVuIHZpZW4gdGUsIGNvIHRp ZXQgbXVjIGNodWEga2lwIHRyaW5oIGRpZW4gZGEgcGhhaSBodXkgYm8sIGR1IGRhIGJvIG5oaWV1 IHRpZW4gY3VhIA0KZGF1IHR1LiANCg0KRHUgYW4geGF5IGR1bmcga2h1IGx1dSBnaXUgMTAwMCBo aWVuIHZhdCAiZ3VpIHRvaSBtYWkgc2F1IiBkdW9jIG5vaSBsYSBkYSBwaGUgZHV5ZXQgDQp0dSBu YW0gMjAwOCwgbmh1bmcgZHVuZyBtb3QgY2FpLCBkZW4gcGh1dCBjdW9pLCB0dWMgdmFvIGN1b2kg dGhhbmcgMyB2dWEgcXVhLCBvbmcgDQpCaSB0aHUgVGhhbmggdXkgSGEgTm9pIHRvIGNodWMgaG9w IGdpYW8gYmFuIHZhIHR1eWVuIGJvICJEYXkgbGEgbW90IHkgdHVvbmcga2hvbmcgDQpjbyB0aW5o IGtoYSB0aGkgdmEgdG9pIGNoaW5oIHRodWMgbm9pIHZvaSBiYW8gY2hpIGxhIEhhIE5vaSBzZSBr aG9uZyB0aHVjIGhpZW4gDQp2aWVjIG5heSIuIE9uZyB0aGVtIHZhbywgeSB0dW9uZyB0cmVuIGNo dWEgZHVvYyBjYXAgbmFvIHBoZSBkdXlldCBuaHVuZyBkYSB2b2kgdmFuZyBjb25nIGJvLg0KDQpO aGlldSBjaHV5ZW4gY3VvaSByYSBudW9jIG1hdA0KDQpDbyB0aGUgdGhheSwgbmh1bmcgYmF0IGJp bmggeHVuZyBxdWFuaCB2aWVjIHRvIGNodWMgdmEgY2h1YW4gYmkgY2hvIERhaSBsZSAxMDAwIG5h bSANClRoYW5nIExvbmcgeHVhdCBoaWVuIGtob25nIG5odW5nIHRyZW4gY2FjIHRyYW5nIGJhbywg bWEgY2EgdHJlbiBjYWMgYmxvZyB2YSBtYW5nIA0KeGEgaG9pLiBGYWNlYm9vayB4dWF0IGhpZW4g aGFuZyBsb2F0IGhvaSBuaHUgIkhvaSBuaHVuZyBuZ3VvaSBnaGV0IGxlIGt5IG5pZW0gMTAwMCAN Cm5hbSBUaGFuZyBMb25nIHZpIHF1YSBsYW5nIHBoaSIsICJIb2kgcGhhbiBkb2kgbmh1bmcgcXV5 ZXQgZGluaCB0aGlldSBpLW90IG5oYW4gDQpkaXAgMTAwMCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5v aSIsICJOZ2hpbiB0cm8gbG8gbmhhbiBkaXAgMTAwMCBuYW0gVGhhbmcgTG9uZyIuLi4gDQoNCkNv biB0cmFuZyBibG9nIExlIERpZW4gRHVjIHZpIHRpZW4gdHJpbmggc29uIHN1YSBuaGEgY3VhLCBj aGluaCB0cmFuZyBkbyB0aGkgY2h1YW4gDQpiaSBjaG8gMTAwMCBuYW0gVGhhbmcgTG9uZyCWIEhh IE5vaSBraGllbiBuZ3VvaSB0YSAiY28gY2FtIHR1b25nIG1vdCBjbyBnYWkgcXVlIG11YSANCmdo ZSBsbywgYmVuaCBob2FuIHZ1YSByYSB0aGFuaCBwaG8gbG9uLCBjaHVhIGtpcCBkaWV1IHRyaSwg aG9jIGhhbmggdmUgdmFuIGhvYSB1bmcgDQp4dSwgY2FjaCBhbiwgbG9pIG5vaSB0aGkgZGEgdHVj IHRob2kgcGhhaSBtYWMgYW8gZGFpIGNvIGRhdSBkZSBsZW4geGUgaG9hIGtpZW0gbW90IA0KZGFu ZyBjaG9uZywgbmV1IGtob25nIHNlIGRhbmggbWF0IGNvIGhvaSIgdmEgIlRodWMgY2hhdCwgZGF5 IGxhIGRpcCByYXQgaG9wIGx5IGRlIA0Kbmh1bmcgbmd1b2kgY28gZGFjIHF1eWVuIGxheSB0aWVu IGN1YSBkYW4sIHR1bmcgcmEgbW90IGl0LCBuaHVuZyBibyB2YW8gdHUgdHVpIG1vdCBkb25nIi4g DQoNCk5odW5nIGhhbyBuaG9hbmcgYmVuIG5nb2FpIGN1YSBuaHVuZyBuZ2F5IGxlIFRldCBraG9u ZyBkdSBkZSBjaGUgbGFwIG5odW5nIG5oZWNoIA0KbmhhYyBtb2kgbmdheS4gSGllbiwgbW90IHNp bmggdmllbiB0YWkgSGEgTm9pIG5oYW4geGV0OiAiRG90IHRydW9jIFRldCB0aGkgdGhhbmggDQpw aG8gY3VuZyB0cmFuZyBob2FuZyBkZXAgZGUsIHNhY2ggc2UsIGNvbiBiYXkgZ2lvIHRoaSBkYXUg Y3VuZyB2YW8gZGF5IHJvaSBjaGkuIA0KRW0gbmdoaSBsYSBkYSBtYXQgY29uZyBkb2kgcm9pIHRo aSBuZW4gZ2l1IHR1IGdpbyBjaG8gZGVuIG11bmcgMTAvMTAgbHVvbi4gVGV0LCBvIA0KYm8gaG8g bGFtIGhvYSByYXQgZGVwLCBuZ2F5IGNhIGtoYWNoIGR1IGxpY2ggY3VuZyByYXQgdGhpY2gsIHRo YXkgdGhhbmggcGhvIHNhY2ggc2UsIA0KdHJhbmcgaG9hbmcuIERlbiBoZXQgZG90IGhvYSByb2kg dGhvaSwgYm8gbHVvbiwgdGhheSByYXQgbGEgcGhpISBNYSBjYWkgZGlldSBuZ3V5IA0KaGllbSBt YSBlbSBzbyBsYSBiYXkgZ2lvIHRoYW5oIHBobyBkYW5nIHNhY2ggc2UgbWEgYm8gbW90IGRvdCBu aGlldSB0aGFuZyBkYWkgbmh1IA0KdGhlLCBkZW4gbHVjIG5vIGxhaSBiYW4gdGhpdSB0aGkgbGFt IGxhaSBzZSByYXQgbWF0IGNvbmcuIg0KDQpLaG9uZyBkdW9pIG1vdCBsYW4sIGNhYyBsYW5oIGRh byBjdWEgdGhhbmggcGhvIEhhIE5vaSBraGFuZyBkaW5oICJkaXAgRGFpIGxlIDEwMDAgDQpuYW0g VGhhbmcgTG9uZyCWIEhhIE5vaSBraG9uZyBjaGkgbGEgbWl0IHRpbmgsIGxlIGhvaSBtYSBjdW5n IHZvaSBkbyBwaGFpIGxhIHBoYXQgDQp0cmllbiBraW5oIHRlIC0geGEgaG9pIiwgImNoYW0gbG8g ZG9pIHNvbmcgdmF0IGNoYXQsIHRpbmggdGhhbiBjaG8gbmd1b2kgZGFuIi4gDQoNCihBbmg6IE1v dCBjb25nIHRyaW5oIHR1IHN1YSBjaHVhbiBiaSBjaG8gRGFpIGxlIFRoYW5nIExvbmcuIEFGUCBw aG90bykgIA0KDQpUaGUgbmh1bmcsIHRyb25nIHRvbmcga2V0IHF1eSBkYXUgbmFtIDIwMTAsIGNo aSBzbyBnaWEgdGlldSBkdW5nIGN1YSBIYSBOb2kgZGEgdGFuZyANCmRlbiA0LDcyJSBzbyB2b2kg dGhhbmcgY3VvaSBuYW0gMjAwOS4gU28gbHVvbmcga2hhY2ggcXVvYyB0ZSBnaWFtIDcsMiUgc28g dm9pIGN1bmcgDQpreSBuYW0gbmdvYWksIGNobyBkdSBuYW0gMjAxMCBkdW9jIGNob24gbGEgTmFt IGR1IGxpY2ggcXVvYyBnaWEgdGFpIEhhIE5vaS4gDQpMYSBuZ3VvaSBkYW4gbW9pIG5nYXkgY2h1 bmcga2llbiBuaHVuZyBob2F0IGRvbmcgY2h1YW4gYmkgY2hvIGRpcCBkYWkgbGUsIG5oYSBnaWFv IA0KUGhhbSBUb2FuIGJheSB0bzogc2UgdGhpZXQgdGh1YyBob24gbmV1IGRlbSB0aWVuIGRheSBy YSB4YXkgdHJ1b25nIGhvYyB2YSBjaHVhIGxhaSANCmJlbmggdmllbi4gQmVuaCB2aWVuIGJheSBn aW8gMSBnaXVvbmcgbmFtIDMgbmd1b2kgbWEgbGFpIGRpIHRpZXUgaGFuZyBuZ2hpbiB0aSB2YW8g DQogY2FpIHBoaW0gTHkgQ29uZyBVYW4gZGUgcm9pIGtob25nIGFpIHhlbSBjYS4gUGhpbSBjaGll dSB4b25nIHRoaSB0aGF5IHRvYW4gbmh1IGxhIG5ndW9pIFRydW5nIFF1b2MuIA0KVGhlIHRoaSBs YW0gZ2k/IE1hIHRhdCBjYSBtb2kgbmd1b2kgZGV1IGJpZXQgY2FpIGRvIGxhIGtob25nIG5lbiBt YSBuZ3VvaSB0YSBjdSBsYW0sIA0KYm9pIHZpIHN1IGRvaSB0cmEgZGEgdmFvIG1hdSB0aGl0IHJv aS4gTWEgdGhlIG5heSwgY2FpIHN1IGRvaSB0cmEgYXkgbGFpIGNvbmcgdGhlbSANCnZvaSBxdXll biBsb2kuIFF1eWVuIGxvaSBsYSBuZ3VvaSB0aGkgZHVvYyB0aWVuLCBuZ3VvaSBkdW9jIGRhbmgs IG5ndW9pIGR1b2MgY2h1YywgDQpuZ3VvaSBkdW9jIHRpZW5nLCBkdW9jIG5vIGR1b2Mga2lhLiBU aGUgdGhpIGNhaSBnaSBtYXQ/IERhbiB0b2MgbWF0LCB0aWVuIG1hdCwgcm9pIA0KdHJlIGNvbiwg bmhhIHRydW9uZyB2YW4gY2hhdC4gRGFuZyBuaGUgdGllbiBheSBjbyB0aGUgZGVtIGxhbSB2aWVj IGxvbiBkdW9jLiINCg0KR2lvaSBibG9nZ2VyIHRydXllbiB0YWkgbmhhdSBkaXAgMTAwMCBuYW0g VGhhbmcgTG9uZyCWIEhhIE5vaSBjaGluaCBsYSBjb24gYXQgY2h1IGJhaSANCmN1YSBCaSB0aHUg dGhhbmggdXkgSGEgTm9pIFBoYW0gUXVhbmcgTmdoaSB0cm9uZyBjdW9jIGNoYXkgZHVhIHZvaSBj YWMgZG9pIHRodSBraGFjIG5oYW0gZGVuIG1vdCBjaGllYyBnaGUgY2FvIGhvbi4gDQoNCmh0dHA6 Ly9ob2lsYXRyYWxvaS5tdWx0aXBseS5jb20vam91cm5hbC9pdGVtLzMyOTIgDQoNCkhhIE5vaTog RGFpIGxlIGt5IG5pZW0gMTAwMCBuYW0gVGhhbmcgTG9uZyB0aWV1IHRvbiA0LDUgdHkgVVNELCBs YSBtb3QgaG9hbmcgcGhpIHZvIGN1bmcgbG9uIGtoaSBkYXQgbnVvYyBjb24gbmhpZXUgbmdoZW8g bmFuIHZhIHRoaWV1IHRob24gDQoNCmh0dHA6Ly9uZ29jbGluaHZ1Z2lhLndvcmRwcmVzcy5jb20v MjAxMC8xMi8wMy92aW5hc2hpbi1jaCVFMSVCQiU4OS1sYS1jaHV5JUUxJUJCJTg3bi1xdWEtJUM2 JUIwLW5oJUUxJUJCJThGLW5ob2ktdnUtY2FtLWRhbS8gVnUgQ2FvIERhbSAwMy8xMi8yMDEwIChU cmljaCkgDQoNCkNodW5nIHRvaSB4aW4gbGF5IG1vdCBjaHV5ZW4gdnVpIHZ1aSBkZSBseSBnaWFp IGRpZXUgbmF5OiBLaGkgYWkgZG8gdGlldCBsbyBraG9hbiBjaGkgZGUga3kgbmllbSANCjEwMDAg bmFtIFRoYW5nIExvbmcgbGEgNCw3IHR5IGRvLWxhIE15LCB0aGkgbW90IHF1YW4gY2h1YyBkYSBu b2kgdHJ1b2MgY29uZyBjaHVuZyANCnJhbmcsIGtob2FuIHRpZW4gY2hpIGNobyBIb2kgbGUgbmdh biBuYW0gVGhhbmcgTG9uZyBjaGkgY28gNTAwMCB0eSB0aG9pLiBDYWMgY3UgaHV1IHRhcCANCnRo ZSBkdWMgbmdvYWkgY29uZyB2aWVuIGN1b2kgbmdhdCwgcGhhbiByYW5nLCBjaGkgY2FuIDEwMDAg bHVvdCBjaGF1IGdhaSBtYWMgMTAwMCBibyBhbyANCmRhaSBkaWV1IGx1b24gdHJlbiBjYXUgVGhl IEh1YyBkYSB0b24gZ2FuIGNodWMgdHkgZG9uZyByb2kuIENhYyBjdSBiYW8sIHRpbmggZ2kgY2hh bmcgDQpyYS4uLiB0aW5oIGtob2FuIG5heSBkZSBvdC4gQ2FjIGN1IHJhIHRpZW0gbWF5IGFvIGRh aSBwaHUgbnUgaG9pIGdpYSwgdGhpIGR1b2MgYmlldCBtb2kgYm8gDQpsb2FpIGRvIHBoYWkgdGlu aCBraG9hbmcgNSB0cmlldS4gTWF5IDEwMDAgYm8gY2hvIGNhYyBjaGF1LCB2aSBjaGkgbGEgNSB0 eS4gS2hvYW4gYm9pIA0KZHVvbmcgY2hvIGNhYyBjaGF1IGNvIHN1YyB0YXAgbHV5ZW4gY29uZyB2 b2kga2hvYW4gdGllbiB0aHVlIGNhYyBjaGF1IHR1IGNhYyBjb25nIHR5IA0Kbmd1b2kgbWF1IGN1 bmcgcGhhaSA1IHRyaWV1IG51YSBtb3QgbHVvdC9jaGF1LiBWaSBjaGkgbGEgY2hpIGNhaSBjaHV5 ZW4gMTAwMCBibyBhbyBkYWkgDQpkaWV1IGx1b24gY3VuZyBkYSBwaGFpIDEwIHR5IHJvaS4uLiBW YSBjYWMgY3UgZGFuIG1hbmcgdGh1YSBoaWV1LCBtb2kgaG9wIGRvbmcgcGhhaSB0aW5oIA0KdGhl bSBraG9hbiAibGFpIHF1YSIgbnVhIGNodS4gVmF5IHRoaSBsYW0gc2FvIG1hIHRpbmggY2hpIGNv IDUwMDAgdHk/IA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEw NDQvMjAxMDEwMjkwMzA2NDUuYXNweCBUdWUgTmd1eWVuIFZpZXQgQ2hpZW4gMjkvMTAvMjAxMCAz OjA2ICANCg0KSGEgTm9pOiBDaGkgcGhpIGNobyAiRGFpIGxlIDEwMDAgbmFtIiAtIGNhbiBjb25n IGtoYWkga2UgaG9hY2ggY2hpIHBoaSB2YSBkYW5oIGdpYSB0aW5oIGhpbmggdGh1YyBoaWVuICAN Cg0KU28gdGllbiBjaGkgY2hvIERhaSBsZSBreSBuaWVtIDEuMDAwIG5hbSBUaGFuZyBMb25nIC0g SGEgTm9pIGN1IHRoZSBsYSBiYW8gbmhpZXU/IERvIA0KbGEgY2F1IGhvaSBuaGlldSBuZ3VvaSBk YXQgcmEuIFBWIFRoYW5oIE5pZW4gZGEgY28gY3VvYyBwaG9uZyB2YW4gb25nIEhvIFF1YW5nIExv aSwgDQpUcnVvbmcgYmFuIFR1eWVuIGdpYW8gVGhhbmggdXkgSGEgTm9pLCBUaGFuaCB2aWVuIEJh biBjaGkgZGFvIFF1b2MgZ2lhIHZlIGRhaSBsZSwgDQp4dW5nIHF1YW5oIHZhbiBkZSBuYXkuIA0K DQoqIENvIHRoZSB1b2MgbHVvbmcgdG9uZyBzbyB0aWVuIGNoaSBjaG8gZGFpIGxlIGxhIGJhbyBu aGlldSB2YSBjaHVuZyB0YSBkYSB0aHVjIHN1IHRpZXQgDQpraWVtIGNodWEsIHRodWEgb25nPw0K DQpEZW4gdGhvaSBkaWVtIG5heSwgdG9pIGN1bmcga2hvbmcgZHUga2hhIG5hbmcgZGUgdW9jIGx1 b25nIGR1b2MgdG9uZyBzbyB0aWVuIGF5LiBCb2kgDQpkZW4gYmF5IGdpbyBjdW5nIGNodWEgY28g bW90IGJhbyBjYW8gZGF5IGR1IHZhIGNoaSB0aWV0IGN1YSBjYWMgbmdhbmgsIGNhYyBjYXAsIGNh YyBkaWEgDQpwaHVvbmcsIGNhYyBkb24gdmksIGNhIG5oYW4sIHRhcCB0aGUuLi4gdmUgY2FjIHZp ZWMgZGEgbGFtIGNobyBkYWkgbGUuIA0KDQpDYW4gY29uZyBibyB2YSBnaWFpIHRoaWNoIHJvIHR1 bmcga2hvYW4gY2hpDQoNCkdTIERhbyBUcm9uZyBUaGksIENodSBuaGllbSBVeSBiYW4gVmFuIGhv YSAtIEdpYW8gZHVjIC0gVGhhbmggbmllbiAtIFRoaWV1IG5pZW4gdmEgTmhpIGRvbmcgY3VhIFFI OiANCg0KIlZpZWMgY2hpIHRpZXUgY2hvIGNhYyBob2F0IGRvbmcgRGFpIGxlIGt5IG5pZW0gMS4w MDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2ksIHRvaSBjaG8gDQpyYW5nIGNhbmcgbWluaCBiYWNo IGNhbmcgdG90LiBEYXkgY2hhbmcgcGhhaSBsYSBiaSBtYXQgcXVvYyBnaWEsIG5oYXQgbGEgZHUg bHVhbiBsYWkgcXVhbiANCnRhbSB0aGkgY2FuZyBuZW4gY29uZyBibyB2YSBnaWFpIHRoaWNoIHJv IHR1bmcga2hvYW4gY2hpIHRpZXUuIA0KDQpOaHVuZyB0aGVvIHRvaSwgY2FuIHBoYW4gYmlldCBy byBnaXVhIGhhaSBsb2FpIGRhdSB0dSBjaHUga2hvbmcgbmVuIGRhbmggZG9uZyBsYW0gbW90LiAN Ck1vdCBsYSBraW5oIHBoaSBjaG8gY2FjIGhvYXQgZG9uZyBsZSBob2ksIHRvIGNodWMgeG9uZyBs YS4uLiBtYXQuIEhhaSBsYSBraW5oIHBoaSBkYXUgdHUgDQp4YXkgZHVuZyBjYWMgY29uZyB0cmlu aCBjaGFvIG11bmcgZGFpIGxlLCBzYXUgZG8gbGEgdGFpIHNhbiBzdSBkdW5nIGxhdSBkYWkuIEN1 bmcgcGhhaSANCnRpbmggdG9hbiwgZGF1IHR1IGRlbiBkYXUgbGEgdnVhLCBrZXQgdGh1YyBsZSBo b2kgdGhpIHBoYWkgdGluaCB0b2FuIHhlbSBtdWMgZGF1IHR1IG5odSANCnZheSBkYXQgaGlldSBx dWEgZGVuIGRhdSBjYSB2ZSBtYXQgdGluaCB0aGFuIGxhbiBtYXQgdmF0IGNoYXQuIE5odW5nIGNv bmcgdHJpbmggeGF5IA0KZHVuZyBkZSBsYWkgbGF1IGRhaSBjdW5nIGNhbiBwaGFuIHRpY2ggbWlu aCBiYWNoIHZlIGNoYXQgbHVvbmcgY29uZyB0cmluaCwgdmUgaGlldSBxdWEgc3UgDQpkdW5nIG5o dSB0aGUgbmFvLiBUb2kgY3VuZyBuZ2hlIGNvIHkga2llbiBjaG8gcmFuZyBuaHVuZyBjb25nIHRy aW5oIGRhdSB0dSBjaG8gZ2lhbyANCmR1YywgeSB0ZSBuaGFuIGRpcCAxLjAwMCBuYW0gVGhhbmcg TG9uZyBoYXUgbmh1IGtob25nIGNvLCB0cm9uZyBraGkgZG8gZGF5IGxhaSBsYSB2YW4gDQpkZSBk YW5nIHJhdCB0aGlldSIuIA0KDQpHUyBOZ3V5ZW4gTGFuIER1bmcgKERCIFFIIHRpbmggRGFrIExh ayk6IFRvaSBkYSBjaGF0IHZhbiB2YSBjaG8gQm8gVGFpIGNoaW5oIHRyYSBsb2kgDQoNCiAiVG9p IGRhIGNvIHZhbiBiYW4gY2hhdCB2YW4gQm8gdHJ1b25nIEJvIFRhaSBjaGluaCByYW5nOiBjbyB0 aG9uZyB0aW4gY2hvIHJhbmcsIGRpcCBkYWkgDQpsZSB2dWEgcXVhIHRvbiBrZW0gdG9pIDk0LjAw MCB0aSBkb25nLCBkZSBuZ2hpIEJvIHRydW9uZyBCbyBUYWkgY2hpbmggdHJhIGxvaSBjaGluaCB0 aHVjIA0KcmFuZyB0aG9uZyB0aW4gZG8gZHVuZyBoYXkgc2FpLiBOZXUgc2FpIHRoaSBwaGFpIGNh aSBjaGluaC4gQ29uIG5ldSBkdW5nIHRoaSBwaGFpIHhlbSB4ZXQgDQpsYWkgY2FjaCBjaGkgdGll dSwgdmkgbmh1IHRoZSBsYSBsYW5nIHBoaSBxdWEgbG9uLiBEaWV1IHRodSBoYWkgdG9pIGNoYXQg dmFuIEJvIFRhaSBjaGluaCBsYSANCmNvIHRob25nIHRpbiBuaGFuIGt5IG5pZW0gZGFpIGxlLCBi YW4gY2hpIGRhbyBkYSBtdWEgMi4wMDAgdmllbiBydS1iaSBjdWEgY2hhdSBQaGkgZGUgbGFwIA0K dmFvIG1hdCAxLjAwMCBjb24gcm9uZyBsYW0gcXVhIHRhbmcgY2hvIGNhYyBxdWFuIGtoYWNoIGR1 IGRhaSBsZS4gVmF5IHRob25nIHRpbiBkbyANCmR1bmcgaGF5IHNhaSwgdmEgbmV1IGRvIGxhIGRv YW5oIG5naGllcCBsYW0gZGUgYmFuIHRoaSBraG9uZyBub2kgbGFtIGdpIG5odW5nIG5ldSBsYXkg DQpraW5oIHBoaSBjdWEgTmhhIG51b2MgbGFtIHZpZWMgZG8gdGhpIGtob25nIHRoZSBjaGFwIG5o YW4gZHVvYy4gTmh1bmcgYWkgbmhhbiBkdW9jIA0KbW9uIHF1YSBkbz8NCg0KVG9pIGN1bmcgZGEg Y2hhdCB2YW4gdHJ1YyB0aWVwIGxhbmggZGFvIFRQIEhhIE5vaSByYW5nIERhaSBsZSAxLjAwMCBu YW0gVGhhbmcgTG9uZyBkYSANCnRodWMgc3UgZGUgbGFpIGRhdSBhbiBnaSBib2kgdmkgc2F1IGRv IHRvbiBrZW0gbWEga2hvbmcgdGhheSBkZSBsYWkgZHVvYyBkaWV1IGdpIHRodWMgc3UgDQptYW5n IHRpbmggZGF1IGFuLiBMYW5oIGRhbyBUUCBIYSBOb2kgZGEgdHJhIGxvaSB0b2kgcmFuZzogdGF0 IGNhIG5odW5nIGNvbmcgdHJpbmggeGF5IA0KZHVuZyB0cm9uZyB2b25nIDEwIG5hbSBuYXkgZGV1 IGxhIGRlIGt5IG5pZW0gZGlwIDEuMDAwIG5hbSBUaGFuZyBMb25nLiBUdXkgbmhpZW4sIA0KdG9p IGxvIG5nYWkgdmkgbmhpZXUgY29uZyB0cmluaCBsYW0gdm9pLCBjaGF0IGx1b25nIHJhIHNhbz8g VG9pIGxheSB2aSBkdSwgaGEgbmdhbSBjYXAgDQpxdWFuZyBsYW0gcmF0IGdhcCBnYXAsIGR1IGR1 b25nIHBobyBwaG9uZyBxdWFuZywgZGVwIGhvbiBoYW4gZGF5IG5odW5nIHRvaSBob2kgbGlldSAN Cm5ldSBjbyB0cnVjIHRyYWMgZ2kgZG8gdmUgZGF5IGNhcCB0aGkgY2h1bmcgdGEgY28gdGltIGR1 b2MgZGUgeHUgbHkgaGF5IGtob25nLiBOaHVuZyANCmNvbmcgdHJpbmgga2hhYyBjdW5nIHZheSwg bGFtIG5oYW5oIG5odSB2YXkgY28gYmVuIHZ1bmcgaGF5IGtob25nLi4uLj8iLiANCg0KQmEgUGhh bSBUaGkgTG9hbiAoREJRSCBUUCBIYSBOb2kpOiBUb2kgdGhheSBuaGlldSB2aWVjIGNoaSB0aWV1 IGxhbmcgcGhpDQoNCiJUYXQgY2EgbW9pIGRvbmcgbmdhbiBzYWNoIGN1YSBOaGEgbnVvYyBkZXUg cGhhaSBjb25nIGtoYWksIHZpZWMgY2hpIHBoaSBjaG8gbW90IGRpcCANCmxlIGhvaSBsb24gbmh1 IHZheSBjYW5nIGNhbiBwaGFpIGNvbmcga2hhaSBoZXQgc3VjIGN1IHRoZSwgdHVuZyB2aWVjIG1v dCBkZSBjaG8gZGFuIGJpZXQsIA0KZGFuIGJhbiwgZGFuIGtpZW0gdHJhLiBUaWVuIG5hbyBjdW5n IGxhIHRpZW4gY3VhIGRhbiwga2UgY2EgZG9hbmggbmdoaWVwIGdvcCB2YW8gdGhpIA0KY3VuZyBw aGFpIGNvbmcga2hhaSB0YWkgY2hpbmguIFRvaSBjdW5nIGNodWEgYmlldCBjb24gc28gOTQuMDAw IHRpIG1hIGR1IGx1YW4gcGhhbiBhbmggDQpjbyBjaGluaCB4YWMgaGF5IGtob25nIG5odW5nIHRv aSBjbyB0aGUgdGhheSBuaGlldSB2aWVjIGNoaSB0aWV1IHJhdCBsYW5nIHBoaS4NCg0KVG9pIGNo byByYW5nIHBoYWkga2llbSB0cmEgY3UgdGhlIGNoYXQgbHVvbmcgY3VhIHR1bmcgY29uZyB0cmlu aCBtb3QgY2h1IGtob25nICJ2byBkdWEgDQpjYSBuYW0iIHJhbmcgdGF0IGNhIGNhYyBjb25nIHRy aW5oIGRldSBsYW0gbmhhbmgsIGxhbSBhdS4gVHV5IG5oaWVuLCBzdXkgbHVhbiBtb3QgY2FjaCAN Cmtob2EgaG9jIHRoaSBuaHVuZyBjb25nIHRyaW5oIHhheSBkdW5nIG5ldSB0aHVjIGVwIHZlIHRp ZW4gZG8gdGhpIHJhdCBkZSBkYW4gZGVuIGFuaCANCmh1b25nIGRlbiBjaGF0IGx1b25nIGNvbmcg dHJpbmgga2hvbmcgZGFtIGJhby4gDQoNClZlIHBoYW4gbGUgaG9pLCBuaHVuZyBob2F0IGRvbmcg ZGUga3kgbmllbSByYXQgY2FuIHRoaWV0IG5odW5nIG5lbiBsYW0gbyBtdWMgdnVhIHBoYWksIA0K dmFuIHRoZSBoaWVuIGR1b2Mgc3UgdHJhbmcgdHJvbmcsIGtob25nIG5lbiBxdWEgb24gYW8sIGxh bmcgcGhpIi4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdzL1BhZ2VzLzIwMTA0 MS8yMDEwMTAwNzAwMzcxOC5hc3B4IDA3LzEwLzIwMTAgMDozNyANCg0KSGEgTm9pOiBObyBraG8g cGhhbyBob2EgdGFpIE15IERpbmgsIDQgbmd1b2kgY2hldCAtIGNvIG5odW5nIGxvYWkgcGhhbyBo b2EgY2h1YSB0dW5nIGR1b2Mgc3UgZHVuZyB0YWkgVmlldCBOYW0gDQoNCihBbmggY2h1cDogS2hv aSBib2MgY3VvbiBjdW9uIGJlbiBob25nIHNhbiB2YW4gZG9uZyBNeSBEaW5oIHNhdSB2dSBubyAt IEFuaDpOZ29jIFRoYW5nKSANCg0KS2hvYW5nIDExIGdpbyA0MCBwaHV0IHRydWEgcXVhICg2LjEw KSwgbW90IHZ1IG5vIGxvbiBkYSB4YXkgcmEgdGFpIGtodSB2dWMgcGhpYSBzYXUga2hhbiANCmRh aSBDLCBzYW4gdmFuIGRvbmcgcXVvYyBnaWEgTXkgRGluaCwgVHUgTGllbSwgSGEgTm9pLiANCg0K VHJhIGxvaSBUVFhWTiwgb25nIHRydW5nIHR1b25nIE5ndXllbiBEdWMgTmhhbmgsIFBobyB0b25n IGN1YyB0cnVvbmcgVG9uZyBjdWMgQW4gDQpuaW5oIElJLCBraWVtIEdpYW0gZG9jIENvbmcgYW4g VFAgSGEgTm9pIGNobyBiaWV0LCAyIGNvbnRhaW5lciBjaHVhIHBoYW8gaG9hIGRhIGJhdCANCm5n byBwaGF0IG5vIGxhbSA0IG5ndW9pIHRoaWV0IG1hbmcgdmEgMyBuZ3VvaSBraGFjIGJpIHRodW9u Zy4gVGhlbyBvbmcgTmhhbmgsIG5ndXllbiANCm5oYW4gY3VhIHZ1IGNoYXkgbm8gZHVvYyB4YWMg ZGluaCBsYSBkbyBzbyBzdWF0IHRyb25nIHF1YSB0cmluaCB2YW4gY2h1eWVuLiAgDQoNClRoZW8g Z2hpIG5oYW4gY3VhIFBWIFRoYW5oIE5pZW4gY28gbWF0IG8gaGllbiB0cnVvbmcsIHRhaSBraHUg dnVjIHhheSByYSB2dSBubyB2YW8gDQp0aG9pIGRpZW0gZG8gY28gMyBjb250YWluZXIgcGhhbyBo b2EgbmhhcCB0dSBZLCBNeSB2YSBUcnVuZyBRdW9jLiBTbyBwaGFvIGhvYSBuYXkgZG8gDQpDb25n IHR5IFROSEggbW90IHRoYW5oIHZpZW4gZGF1IHR1IHRodW9uZyBtYWkgdmEgZGljaCB2dSBxdW9j IHRlIC0gSU5URVJTRVJDTyANCihjbyB0cnUgc28gdGFpIEhhIE5vaSkgbmhhcCB0dSBudW9jIG5n b2FpIHZlIHBodWMgdnUgYmFuIHBoYW8gaG9hIHRhaSBzYW4gdmFuIGRvbmcgDQpNeSBEaW5oIC0g SGEgTm9pLiBUcm9uZyBzbyBwaGFvIGhvYSBuaGFwIHZlIGxhbiBuYXkgY28gbmh1bmcgbG9haSBj aHVhIHR1bmcgZHVvYyBzdSBkdW5nICANCnRhaSBWaWV0IE5hbSwgbmh1IGxvYWkgcGhhbyBjbyBr aWNoIHRodW9jIDEyIGluY2hlcy4uLiANCg0KT25nIE5ndXllbiBEdWMgTmhhbmggY3VuZyBjaG8g YmlldCwgOCB4ZSBjdXUgaG9hIGRhIGR1b2MgZGlldSBkb25nIGRlIGRhcCB0YXQgZGFtIGNoYXks IA0KZG9uZyB0aG9pIHRvIGNodWMgZHVhIHNvIG5ndW9pIGJpIHRodW9uZyBkaSBjYXAgY3V1IHZh IHRpZW4gaGFuaCBkaWV1IHRyYSBsYW0gcm8gdnUgdmllYy4gDQpWYXkgbWEsIHRyYSBsb2kgcGhv bmcgdmFuIGN1YSBUVFhWTiwgb25nIE5oYW5oIHZhbiBjaG8gcmFuZzogIkRheSBsYSB0YWkgbmFu IGRhbmcgdGllYyANCm5odW5nIGtob25nIGFuaCBodW9uZyBkZW4gY29uZyB0YWMgZGFtIGJhbyBh biBuaW5oIGN1YSBEYWkgbGUgMS4wMDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2kiICANCg0KaHR0 cDovL3ZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDEwL0tob25nLWNvLWNodXllbi1oYW5nLWNo dWMtbmd1b2ktY2hldC1kby1uby1waGFvLWhvYS05NDIzMTEvIFRodSBBbiAwOTo1NCwgMTUvMTAv MjAxMCAoR01UKzcpDQoNCkhhIE5vaTogVGFpIEhvaSBuZ2hpIHRvbmcga2V0IGNvbmcgdGFjIHR1 eWVuIHRydXllbiB2ZSBEYWkgbGUga3kgbmllbSAxMDAwIG5hbSANClRoYW5nIExvbmcgLSBIYSBO b2ksIGhvbSAxNC8xMCwgb25nIEhvIFF1YW5nIExvaSBUcnVvbmcgQmFuIFR1eWVuIGdpYW8gVGhh bmggdXkgSGEgTm9pIGNobyBiaWV0OiANCg0KLSBEZW4gdGhvaSBkaWVtIG5heSwgY2FjIGRvbiB2 aSBjaHVjIG5hbmcgdmFuIGNodWEgaG9hbiB0YXQgdGhvbmcga2UgdG9hbiBibyBjaGkgcGhpOyAg DQoNCi0gVmUgdnUgY2hheSBubyAyIGNvbnRhaW5lciBwaGFvIGhvYSBiZW4gbmdvYWkgU1ZEIE15 IERpbmggdmFvIG5nYXkgNi8xMCwgb25nIExvaSANCmNobyBiaWV0OiBjbyA0IG5ndW9pIGNoZXQs IHRyb25nIGRvIGNvIDMgY2h1eWVuIGdpYSBudW9jIG5nb2FpLCAzIG5ndW9pIGJpIHRodW9uZyBo aWVuIGRhDQpiaW5oIHBodWMgdmEgcmEgdmllbi4uLiIuDQpWZSBuZ3V5ZW4gbmd1eWVuIHZ1IG5v LCBvbmcgTG9pIGNobyBiaWV0LCBkbyBsYSBkbyBzbyBzdWF0IHRyb25nIHRoYW8gdGFjIGt5IHRo dWF0IA0KY2h1YW4gYmkgYmFuIHRodSB2YW8gdG9pIGN1bmcgbmdheS4gKE5odSB2YXkgbmd1eWVu IG5oYW4gdnUgbm8ga2hvbmcgcGhhaSBsYSAiZG8gc28gc3VhdCANCnRyb25nIHF1YSB0cmluaCB2 YW4gY2h1eWVuIiBuaHUgb25nIE5ndXllbiBEdWMgTmhhbmggR0QgQ0EgSGEgTm9pIHR1bmcgeGFj IGRpbmguKTsgIA0KDQotIFZlIHZ1IHVuIHRhYyBnaWFvIHRob25nIGtlbyBkYWkgaGFuZyBnaW8g dGFpIGtodSB2dWMgTXkgRGluaCB0b2kgMTAvMTAsIG9uZyBMb2kgY2hvIA0KYmlldDogVW9jIHRp bmggY28gdG9pIGhhbmcgY2h1YyB2YW4gbmd1b2ksIHRoYW0gY2hpIGxlbiB0b2kgY2EgdHJpZXUg bmd1b2kgZG8gdmUgU2FuIHZhbiANCmRvbmcgTXkgRGluaCwga2hpZW4gY2FjIGNvbiBkdW9uZyBi aSB1biB0YWMgbmdoaWVtIHRyb25nLiBOaGlldSBkYWkgYmlldSB2YSBjYWMgdmkgDQpraGFjaCBj YXAgY2FvIGN1bmcga2hvbmcgdGhlIHZhbyBkdSBkZW0gYmUgbWFjLiBEbyBsYSBtb3Qgc3UgY28g ZGFuZyB0aWVjOw0KDQotIE9uZyBMb2kgdGh1YSBuaGFuIHJhbmcgdGluaCB0cmFuZyBuYXkgeGF5 IHJhIGxhIGRvIGJhbiB0byBjaHVjIGtob25nIHRoZSBsdW9uZyB0cnVvYyANCmR1b2Mgc3UgaGFv IGh1YyBjdWEgbmd1b2kgZGFuIHZvaSBkZW0gaG9pLCB2aSBraG9uZyBjaGkgbmd1b2kgZGFuIEhh IE5vaSBtYSBjb24gcmF0IA0KbmhpZXUgbmd1b2kgZGVuIHR1IGNhYyBkaWEgcGh1b25nIGtoYWM7 IA0KDQotIEx1YyBsdW9uZyBjYW5oIHNhdCBnaWFvIHRob25nIGRvIGN1bmcga2hvbmcgbHVvbmcg dHJ1b2MgZHVvYyBzdSB2aWVjIG5lbiBkYSBraG9uZyANCmNodSBkb25nIHRyb25nIHBoYW4gbHVv bmcgZGlldSB0aWV0IGdpYW8gdGhvbmcgaG9wIGx5Ow0KDQotIERhaSBkaWVuIFNvIFRob25nIHRp biB2YSBUcnV5ZW4gdGhvbmcgY3VuZyB0aHVhIG5oYW4sIGNvbmcgdGFjIHBob2kgaG9wIGdpdWEg U28gdmEgDQpDb25nIGFuIHRoYW5oIHBobyBIYSBOb2kgdHJvbmcgdmllYyBjYXAgdGhlIHBob25n IHZpZW4gY2h1YSB0aG9uZyBuaGF0LCBkYW4gZGVuIG1vdCANCnNvIHBob25nIHZpZW4ga2hvbmcg dmFvIGR1IGR1b2MgTGUga2hhaSBtYWMgRGFpIGxlLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4v eGFob2kvMjAxMDA5L1ZhLXZhdC1xdWFuaC1oby1Ib2FuLUtpZW0tZHUtTGUtZGlldS1oYW5oLWRp LWJvLTkzNzY2My8gIDEyOjIzLCAgMjYvMDkvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogTmd1b2kg ZGlldSBoYW5oIGJpIGJvIHJvaSwgdmEgdmF0IHF1YW5oIGhvIEhvYW4gS2llbSANCg0KU2FuZyBu YXkgKDI2LzkpLCBoYW5nIHRyYW0gbmd1b2ksIHRyb25nIExlIGRpZXUgaGFuaCBkaSBibyBjaGFv IG11bmcgMS4wMDAgbmFtIFRoYW5nIA0KTG9uZyAtIEhhIE5vaSwgYmkgQmFuIHRvIGNodWMuLi4g Ym8gcm9pOyB2YSB2YXQgcXVhbmggYm8gaG8gSG9hbiBLaWVtIA0KDQpEdSBraWVuIExlIGRpZXUg aGFuaCBkaSBibyBkdW9jIHRvIGNodWMgdm9pIHN1IHRoYW0gZ2lhIGN1YSBkYWkgZGllbiBuaGll dSBsYW5oIGRhbywgZGFpIA0KZGllbiBkb2FuaCBuZ2hpZXAsIHZhIGNhYyB0byBjaHVjIGN1bmcg dm9pIGhhbmcgdHJhbSBkYWkgYmlldSB2YSBoYW5nIG5nYW4gbmd1b2kgdGhhbSANCmR1LiANCg0K S2UgaG9hY2ggcmF0ICJob2FuaCB0cmFuZyIgZHVvYyB0dXllbiBibyB0cm9uZyBuZ2F5IGhvcCBi YW8sIG5odW5nIHRhaSBsZSBkaWV1IA0KaGFuaCB0aGkgbGFpIGhvYW4gdG9hbiBraGFjLg0KDQpN b3Qgbmd1b2kgdGhhbSBkdSBMZSBkaWV1IGhhbmggY2hvIGJpZXQ6ICJDaHVuZyB0b2kgYmkgImJh dCBjb2MgYm8gZGlhIiwgY2h1b25nIHRyaW5oIA0KZHUga2llbiB0aGkgaG9hbmggdHJhbmcgdmEg eSBuZ2hpYSBsYSB2YXksIG5odW5nIHN1IHRodWMgdGhpIGNoYW5nIGNvIGFpIGR1bmcgcmEgdGhh eSBtYXQgDQpCVEMgZGUgZGlldSBoYW5oIGJ1b2kgbGUuIERhbSBuZ3VvaSBjaHVuZyB0b2kgZGVu IGRheSB0dSBkYW5nIGh1b25nIHZhIHR1IGRpIG1vdCAxIA0Kdm9uZyBxdWFuaCBibyBobyByb2ku Li4gZ2lhaSB0YW4iLiANCg0KaHR0cDovL3d3dzYudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTAv SGEtTm9pLXVuLXRhYy1naWFvLXRob25nLWRlbS10b25nLWR1eWV0LWRpZXUtYmluaC05NDAwODgv IEdpYSBWYW4gMjI6NTgsIDA3LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IFVuIHRhYyBnaWFv IHRob25nIEhOIGRlbSB0b25nIGR1eWV0IGRpZXUgYmluaA0KDQotIE1hYyBkdSBkYSBkdW9jIHRo b25nIGJhbywgSGEgTm9pIHNlIGNhbSBuaGlldSB0dXllbiBkdW9uZyB2YW8gY2hpZXUgNy8xMCAN CmRlIHRvbmcgZHV5ZXQgZGlldSBiaW5oIHRhaSBraHUgdHJ1bmcgdGFtIEJhIERpbmgsIG5odW5n IGRvIGR1b25nIGJpIGNhbSBkdW5nIA0KdmFvIGdpbyB0YW4gY29uZyBzbyBuZW4gbmhpZXUgdHV5 ZW4gZHVvbmcgSGEgTm9pIGJpIHVuIHRhYyB0cmFtIHRyb25nLg0KDQooQW5oIGNodXA6IEx1YyBs dW9uZyBDU0dUIHZhIENTMTEzIGRhbmcgaHVvbmcgZGFuIHBoYW4gbHVvbmcgZHVvbmcgY2hvIG5n dW9pIA0KdGhhbSBnaWEgZ2lhbyB0aG9uZyB0YWkgbmdhIHR1IGR1b25nIFRyYW4gUGh1IC0gRGll biBCaWVuIFBodS4pIA0KDQpUaGVvIGdoaSBuaGFuIGN1YSBQViBWaWV0TmFtTmV0ICB0dSBsdWMg MTVoIG5nYXkgNy8xMCwgbHVjIGx1b25nIGFuIG5pbmggZGEgY28gDQptYXQgbyBraGFwIGNhYyBu Z2EgZHVvbmcgdmFvIGtodSB0cnVuZyB0YW0gQmEgRGluaC4gVGFpIGNhYyBraHUgdnVjIGR1b25n IA0KSG9hbmcgRGlldSAtIFRyYW4gUGh1IC0gRGllbiBCaWVuIFBodSwgS2ltIE1hLCBUaHV5IEto dWUsIFRoYW5oIE5pZW4sIFF1YW4gVGhhbmguLi4gDQpsdWMgbHVvbmcgYW4gbmluaCBkZXUgbGFw IGJhcmllIGNoYW4ga2hvbmcgY2hvIG5ndW9pIHRoYW0gZ2lhIGdpYW8gdGhvbmcgZGkgdmFvIGto dSB2dWMgZHVvbmcgY2FtLg0KDQpUYWkgTmdhIHR1IEJvdCBIYW5nIERhdSwgdmFvIGtob2FuZyAx Nmg0NSwgbHVvbmcgbmd1b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyBkaSANCnZlIHBoaWEgZHVvbmcg UXVhbiBUaGFuaCBraGEgZG9uZywgbmh1bmcgZGV1IGR1b2MgY2hhbiBsYWkgdmEgaHVvbmcgZGFu IGRpIHRoZW8gDQp0dXllbiBkdW9uZyBZZW4gUGh1LCBUcmFuIEtoYXQgQ2hhbiBkZSBnaWFtIHVu IHRhYy4gDQoNCihBbmggY2h1cDogTmhpZXUgbmd1b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyB0YWkg Ym90IEhhbmcgRGF1IG5oYW8gbmhhYyB0aW0gbG9pIA0KdmUgbmhhIHZpIGR1b25nIFF1YW4gVGhh bmggYmkgY2hhbiBsYWkuKQ0KDQpUYWkgbmdhIHR1IGR1b25nIERpZW4gQmllbiBQaHUgIC0gVHJh biBQaHUsIGx1YyBsdW9uZyBhbiBuaW5oIGN1bmcgZGEgcGhhaSBjYW5nIA0Kc3VjIG5nYW4ga2hv bmcgY2hvIG5ndW9pIHRoYW0gZ2lhIGdpYW8gdGhvbmcgZGkgdmFvIGtodSB2dWMgZHVvbmcgY2Ft LiBEbyBsdW9uZyANCm5ndW9pIHZhIHBodW9uZyB0aWVuIHRoYW0gZ2lhIGdpYW8gdGhvbmcgdHJl biBkdW9uZyBUcmFuIFBodSBxdWEgZG9uZyBuZW4gaGFuZyANCmNodWMgQ1MxMTMgdmEgQ1NHVCBw aGFpIGR1bmcgcmEgcGhhbiBsdW9uZyBkdW9uZyBkZSBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25n IHJlIHRoZW8gaHVvbmcgZHVvbmcgRGllbiBCaWVuIFBodS4NCg0KVHVvbmcgdHUsIHRhaSBraHUg dnVjIGR1b25nIEJ1b2kgliBIb2FuZyBIb2EgVGhhbSwgZHVvbmcgQnVvaSAtIFRodXkgS2h1ZSwg cGhvIA0KTmd1eWVuIFRydW9uZyBUbywgWWVuIE1pbmgsIExlIER1YW4uLi4gY3VuZyBkdW9jIGx1 YyBsdW9uZyBhbiBuaW5oIGxhcCBjaG90IGNoYW4gDQpraG9uZyBjaG8gbmd1b2kgdGhhbSBnaWEg Z2lhbyB0aG9uZyBkaSB2YW8gcGhhbiBkdW9uZyBjYW0uDQoNCihBbmggY2h1cDogVHJlbiBkdW9u ZyBUcmFuIFBodSwgbmd1b2kgdGhhbSBnaWEgZ2lhbyB0aG9uZyBwaGFpIG5oaWNoIHR1bmcgdHkg bW90LikNCg0KVGhlbyBnaGkgbmhhbiBjdWEgUFYgVmlldE5hbU5ldCwgdGFpIGNhYyBkaWVtIGNh bSwgbmdvYWkgbmh1bmcgbmd1b2kgY28gcGh1IGhpZXUgDQp1dSB0aWVuLCBiYW8gdmUgZHVvYyBy YSB2YW8gZHVvbmcgY2FtIHRoaSBuaHVuZyB0cnVvbmcgaG9wIGNvIGdpYXkgdG8gdHV5IHRoYW4s IA0KaG8ga2hhdSB0aHVvbmcgdHJ1IHRyb25nIGtodSB2dWMgbmF5IG1vaSBkdW9jIHBoZXAgZGkg dmFvLg0KRG8gdmllYyBjYW0gY2FjIHR1eWVuIGR1b25nIHZhbyBraHUgdnVjIHRydW5nIHRhbSBC YSBEaW5oIGR1bmcgdmFvIG5nYXkgdGh1b25nIA0KdmEgZ2lvIHRhbiB0YW0gbmVuIHRpbmggdHJh bmcgdW4gdGFjIGRhIGRpZW4gcmEgdGFpIG5oaWV1IHR1eWVuIHBoby4gDQpUcmVuIGNhYyB0dXll biBkdW9uZyBUb24gRHVjIFRoYW5nLCBOZ3V5ZW4gVGhhaSBIb2MgdHUgbHVjIDE3aCBjaGlldSwg dGluaCB0cmFuZyANCnVuIHRhYyBjdWMgYm8gZGEgeGF5IHJhIG8gbmhpZXUgZGllbS4NCg0KKEFu aCBjaHVwOiBVbiB0YWMgZ2lhbyB0aG9uZyB0cmVuIHBobyBIYW5nIFRoYW4uKQ0KDQpBbmggQmlu aCBvIENhdSBHaWF5LCBsYW0gdmllYyBvIG1vdCBjb25nIHR5IGRpZW4gdHUgYmVuIEdpYSBMYW0g Y2hvIGJpZXQ6IEFuaCANCmRvYyBiYW8gYmlldCBjaGlldSBuYXkgbmhpZXUgdHV5ZW4gZHVvbmcg c2UgYmkgY2FtIHZhIGR1IGR1b2MgY29uZyB0eSBjaG8gbmdoaSANCnZlIHNvbSBob24gbW9pIG5n YXkgbmh1bmcga2hpIGRpIHF1YSBib3QgSGFuZyBEYXUgdGhpIGFuaCBiaSBjaGFuIGxhaSBvIGR1 b25nIA0KUXVhbiBUaGFuaC4gS2hvbmcgY29uIGNhY2ggbmFvIGtoYWMgYW5oIEJpbmggcGhhaSAi bXVhIGR1b25nIiBiYW5nIGNhY2ggZGkgbmd1b2MgDQpsYWkgcmEgZHVvbmcgSGFuZyBEYXUgcm9p IHZvbmcgcmEgZHVvbmcgVHJhbiBRdWFuZyBLaGFpIHRoZW8gZHVvbmcgZGUgWWVuIFBodSANCnJh IGR1b25nIExhYyBMb25nIFF1YW4gLSBDYXUgR2lheSBkZSB2ZSBuaGEuDQoNClRhaSBuZ2EgYmEg Q2F0IExpbmggLSBHaWFuZyBWbyCWIEdpYW5nIFZhbiBNaW5oLCB0aW5oIHRyYW5nIGFjaCB0YWMg Z2lhbyB0aG9uZyANCmN1bmcgZGEgeGF5IGhhbmcgZ2lvIGRvbmcgaG8gZG8gbHV1IGx1b25nIGdp YW8gdGhvbmcgdHUgY2FjIHR1eWVuIGR1b25nIHh1bmcgcXVhbmgga2h1IHRydW5nIHRhbSBCYSBE aW5oIHVuIHZlLg0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL0dpYW8t dGhvbmctaG9uLWxvYW4tcXVhbmgtSG8tR3VvbS05NDAwNjAvIER1eSBUdWFuIJYgSG9hbmcgU2Fu ZyAtIFZ1IERpZXAgMjI6NTksIDA5LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IEdpYW8gdGhv bmcgaG9uIGxvYW4gcXVhbmggSG8gR3VvbSANCg0KTHVjIDE5aCB0b2kgOS8xMCwgY2FjIG5nYSBk dW9uZyBkbyB2ZSBIbyBHdW9tIGNodWEgZHVvYyBsdWMgbHVvbmcgY2h1YyBuYW5nIGNoYW5nIA0K ZGF5IGNhbSBkdW9uZyBraGllbiBjYWMgdHV5ZW4gZ2lhbyB0aG9uZyBvIGRheSB0YWMgbmdoZW4u IE5oYXQgbGEgbyBjYWMgY29uIGR1b25nIA0KcXVhbmggYm8gaG8gbmh1IERpbmggVGllbiBIb2Fu ZywgSGFuZyBLaGF5LCBMZSBUaGFpIFRvLi4uDQoNCkRlbSB0aHUgOSBjdWEgRGFpIGxlLCBjYWMg dHV5ZW4gcGhvIGRvIHZlIEhvIEd1b20gdmFuIGNoYXQgbmljaCBuZ3VvaSB2YSBjYWMgcGh1b25n IA0KdGllbi4gVGFpIFBobyBIdWUgLSBIYW5nIEJhaSwgY2FjIHBodW9uZyB0aWVuIGNoYXQga2lu IGtlbyBkYWkgY2EgY2F5IHNvLiBOaGlldSB4ZSBtYXkgDQpwaGFpIHRpbSBjYWNoIGRpIHRyZW4g dmlhIGhlLCBuaHVuZyByb2kgY3VuZyBraG9uZyB0aGUgY2hlbiBkdW9jIHZpICJkaWEgcGhhbiIg bmF5IGN1bmcgDQpkYSBkYW5oIGNobyBjYWMgYmFpIGdpdSB4ZSBtYXkuDQoNCkNhYyBuZ2EgdHUg SGFpIEJhIFRydW5nIJYgSGFuZyBCYWksIERpbmggVGllbiBIb2FuZyCWIFRyYW5nIFRpZW4sIFBo dSBEb2FuIJYgVHJhbmcgDQpUaGksIEhhaSBCYSBUcnVuZyCWIEJhIFRyaWV1Li4uLiBuZ3VvaSBk aSBibyB2YSBjYWMgcGh1b25nIHRpZW4gY3VuZyBjaGVuIGNodWMgbmhhdSANCnR1bmcgdHkgbW90 LiANCg0KRGFuZyBjaHUgeSBuaGF0IGxhIGNhYyBjb24gZHVvbmcgeHVuZyBxdWFuaCBIbyBHdW9t LCB0aW5oIHRyYW5nIGFjaCB0YWMgY2FuZyBuZ2hpZW0gDQp0cm9uZyBob24uIFRyZW4gcGhvIERp bmggVGllbiBIb2FuZyBsdWMgMTloLCBjYWMgcGh1b25nIHRpZW4gdmEgbmd1b2kgZGkgYm8gdGhh bSBnaWEgDQpnaWFvIHRob25nIHJhdCBuaG9uIG5oYW8uIA0KDQpDbyBkYXkgZHUgY2FjIHBodW9u ZyB0aWVuLCB0dSBvIHRvLCB0YXhpLCB4aWNoIGxvLCB4ZSBnYW4gbWF5Li4uIGNobyBkZW4gbmh1 bmcgeGUgaGFuZyANCnJvbmcgY3VuZyBoYW5nIHZhbiBuZ3VvaSBkaSBibyB0cmVuIGxvbmcgZHVv bmcuIE11b24gZGkgdGllcCBsdWMgbmF5IGNoaSBjbyBtb3QgY2FjaCBsYSANCmRpIHRoZW8ga2ll dS4uLiBydWEgYm8uDQoNCktob25nIGdpb25nIG5odSB0aG9uZyBiYW8gYmFuIGRhdSwgdHUgMjBo IG5nYXkgOS8xMCBzZSBjYW0gdGF0IGNhIDMwIHR1eWVuIHBobyBkZSANCnBodWMgdnUgZGlldSBi aW5oLCBkaWV1IGhhbmggdmEgY2FjIGhvYXQgZG9uZyBkaWVuIHJhIGRhaSBsZSB2YW8gbmdheSAx MC8xMCwgZGVtIDkvMTAsIA0KbmhpZXUgdHV5ZW4gcGhvIHZhbyBraHUgdHJ1bmcgdGFtIEhhIE5v aSwgaG9hdCBkb25nIGdpYW8gdGhvbmcgdmFuIGRpZW4gcmEgYmluaCB0aHVvbmcuIA0KDQo4aDMw IHBodXQsIGNvIG1hdCB0YWkgbmdhIHR1IGR1b25nIFRyYW4gUGh1IC0gRGllbiBCaWVuIFBodSwg UFYgVmlldE5hbU5ldCBkdW9jIERhaSANCnV5IFBoYW0gQW5oIFR1YW4gKERvaSBDU0dUIHNvIDIp IGNobyBiaWV0OiAiVGhlbyBwaHVvbmcgYW4gMjBoIHNlIGNhbSBtb3Qgc28gdHV5ZW4gDQpkdW9u ZyBuYXksIG5odW5nIGNobyBkZW4gZ2lvIGNodW5nIHRvaSB2YW4gY2h1YSBuaGFuIGR1b2MgdGhv bmcgdGluIHR1IGJvIGRhbSB0aG9uZyANCmJhbyBuZ2FuIGR1b25nIi4NCg0KRG8gbHVvbmcgbmd1 b2kgdmEgcGh1b25nIHRpZW4gZG8gdmUga2h1IHRydW5nIHRhbSBCYSBEaW5oIHZhIEhvIEd1b20g cmF0IGRvbmcgbmVuIA0KY2FjIHR1eWVuIGR1b25nIG5heSBkYSByb2kgdmFvIHRpbmggdHJhbmcg dW4gdGFjIGtlbyBkYWkuDQoNClRhaSBuZ2EgdHUgZHVvbmcgVG9uIER1YyBUaGFuZyAtIE5ndXll biBUaGFpIEhvYywgbHVvbmcgbmd1b2kgdmEgcGh1b25nIHRpZW4gdW4gdW4gDQpkbyB2ZSBraGll biBjaG8gdHV5ZW4gZHVvbmcgbmF5IGRhIHhheSByYSB0aW5oIHRyYW5nIHRhYyBkdW9uZyBjdWMg Ym8uIFR1b25nIHR1LCB0YWkgbmdhIA0KdHUgVHJhbmcgVGhpIJYgUXVhbiBTdSwgdGluaCB0cmFu ZyBuZ3VvaSBkaSBkdW9uZyBjaGVuIGxhbiwgdHJhbmggZ2lhbmggZHVvbmcga2hpZW4gY2hvIA0K bmdhIHR1IG5heSBiaSB1biB1IGhhbmcgZ2lvIGRvbmcgaG8gbWEga2hvbmcgdGhheSBsdWMgbHVv bmcgQ1NHVCBjbyBtYXQgZGUgeHUgbHkuDQoNCkRvIGx1b25nIG5ndW9pIHRoYW0gZ2lhIGdpYW8g dGhvbmcgcXVhIGRvbmcgbmVuIG5oaWV1IHhlIG8gdG8gZGkgdmFvIGtodSB2dWMgbmF5IA0Ka2hv bmcgdGhlIHRob2F0IHJhIGR1b2MuIEhhbmcgY2h1YyB4ZSB0YXhpIGJpICJjaGV0IiBnaXVhIHZv bmcgdmF5IGN1YSBuZ3VvaSB2YSBwaHVvbmcgDQp0aWVuIHF1YSBsYWksIGtob25nIHRoZSBuaGlj aCBjaHV0IG5hbywgZGFuaCBwaGFpIGRvIGtoYWNoIGdpdWEgZHVvbmcuDQoNClRydW9jIGRvLCB2 YW8gc2FuZyA5LzEwLCBraGFwIGNhYyB0dXllbiBwaG8gdmFvIGtodSB0cnVuZyB0YW0gSG8gR3Vv bSwgZG9uZyBuZ3VvaSB1biANCnVuIGRvIHZlIGtoaWVuIGNobyBuaGlldSB0dXllbiBkdW9uZyB4 dW5nIHF1YW5oIGtodSB2dWMgbmF5IGJpIHVuIHRhYy4NCg0KRG8gbGEgbmdheSBuZ2hpIGN1b2kg dHVhbiBuZW4gbHVvbmcgbmd1b2kgZG8gdmUga2h1IHRydW5nIHRhbSBobyBIb2FuIEtpZW0gc2Fu ZyA5LzEwIA0KbW9pIGx1YyBtb3QgZG9uZy4gS2hvYW5nIDhoIHNhbmcgZG9uZyBuZ3VvaSB0dSBr aGFwIGNhYyBuZ2EgZHVvbmcgcGhvIEh1ZSwgSGFpIEJhIA0KVHJ1bmcsIEhhbmcgQmFpLCBMeSBU aHVvbmcgS2lldCwgTGUgRHVhbi4uLiBkYSBiYXQgZGF1IHVuIHVuIGRvIHZlIEhvIEd1b20gZGUg DQp0aHVvbmcgdGh1YyBraG9uZyBraGkgdHVuZyBidW5nIGN1bmcgdm9pIG5odW5nIGhvYXQgZG9u ZyB2YW4gaG9hIGRpZW4gcmEgdGFpIGRheS4NCg0KVGhlbyBnaGkgbmhhbiBjdWEgUFYgVmlldE5h bU5ldCwgaGF1IGhldCBjYWMgbnV0IGdpYW8gdGhvbmcgZGV1IGNvIGx1YyBsdW9uZyBDU0dUIA0K dmEgVFRHVCBsYW0gbmhpZW0gdnUuIFhvbmcgdGluaCB0cmFuZyB0YWMgbmdoZW4gdmFuIHhheSBy YS4gDQoNCkFuaCBIb2EsIG5oYSBvIGtodSBkbyB0aGkgTGluaCBEYW0gY2hvIGJpZXQ6ICJIb20g bmF5IG5nYXkgbmdoaSBuZW4gOWggc2FuZyB0b2kgbW9pIA0KZHVhIHZvIGNvbiBkaSBsZW4gSG8g SG9hbiBLaWVtIGNob2ksIG5odW5nIGtoaSBkaSBxdWEgUGhvIEh1ZSB0aGkgbGFpIGdhcCB0YWMg ZHVvbmcuIA0KQmlldCBEYWkgbGUgZHVvbmcga2hvIHRyYW5oIGtob2kgY2FuaCB1biB0YWMsIG5o dW5nIGN1IHBoYWkgY2hpdSBjYW5oIG5ndWkgbXVpIGtob2kgYnVpIA0KeGUgbmdoaSBuZ3V0IHRo ZSBuYXkgdGhpIHJhdCBtZXQsIG5oYXQgbGEgdm9pIHRyZSBjb24iLg0KDQpDdW5nIG5odSBhbmgg SG9hLCBiYWMgTWluaCAocXVlIG8gVGhhbmggSG9hKSBkYSByYSBIYSBOb2kgY2hvaSB2b2kgdm8g Y2hvbmcgY29uIHRyYWkgDQpvIEhhIERvbmcgdHUgMyBuZ2F5IG5heSBuaHVuZyBtYWkgaG9tIG5h eSBjdW9pIHR1YW4gZHVvYyBuZ2hpIGxhbSBjb24gdHJhaSBiYWMgbW9pIA0KY28gZGlwIGR1YSBi byBsZW4gdHJ1bmcgdGFtIGNob2kuIE5odW5nIGtoaSBkaSBxdWEgZHVvbmcgcGhvIEh1ZSwgdGhh eSBjYW5oIHRhYyBkdW9uZyANCmJhYyBraG9uZyBraG9pIG5nYW8gbmdhbi4NCg0KQmFjIE1pbmgg YmFvOiAiU2FuZyBuYXkgbmdoZSBjb24gYmFvIGRpIGNob2kgSG8gR3VvbSB0b2kgcmF0IGhvIGhv aSwgbmh1bmcga2hpIGRpIGdhbiANCmxlbiBkZW4gbm9pIGdhcCBjYW5oIHRhYyBkdW9uZyB0b2kg dGhheSBraGllcCBxdWEuIFRpZW5nIG5vIGN1YSB4ZSBjdW5nIHZvaSBraG9pIGJ1aSANCmtoaWVu IHRvaSBraG9uZyBjaGl1IGR1b2MuIEJpZXQgZGkgY2hvaSBEYWkgbGUga2hvIHRoZSBuYXkgdG9p IG8gbmhhIGNvbiBob24iLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdmFuaG9hLzIwMTAxMC95 LWtpZW4tZG9jLWdpYS1LaG8tbWEtdGhhLXRodS1jaG8tTmdvYy1IYW4tZHVvYy05NDE3NjMvIEJh biBWYW4gSG9hIDE2OjU4LCAxMi8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBIb2EgSGF1IE5n b2MgSGFuIHZhbmcgbWF0LCBraG9uZyB0aGFtIGR1IGRhaSBsZSAxMDAwIG5hbSB2aSBseSBkbyB0 YWMgZHVvbmcNCg0KWSBraWVuIGRvYyBnaWE6ICdLaG8gbWEgdGhhIHRodSBjaG8gTmdvYyBIYW4h Jw0KDQpUdSBraGkgZGFuZyBxdWFuZywgSG9hIEhhdSBOZ29jIEhhbiBkYSBnYXAgbmhpZXUgZGll dSB0aWVuZyBraG9uZyBoYXkgdmEgc2F1IHN1IGNvIA0Ka2hvbmcgdGhhbSBkdSBkZW0gRGFpIGxl ICJUaGFuZyBMb25nIJYgSGEgTm9pIJYgVGhhbmggcGhvIHJvbmcgYmF5IiBjbyBuaGlldSB5IA0K a2llbiB0cmFpIGNoaWV1IHhvYXkgcXVhbmggc3UgdmllYyBuYXksIHBoYW4gbG9uIGRldSBjaGUg dHJhY2ggY2FjaCBoYW5oIHh1IGN1YSBIb2EgSGF1Lg0KKEhvYW5nIFRoYWksIGNob2x5dHJhZGEw ODRAeWFob28uY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMTI6MTA6MjMpDQoNCk5odW5nIGJpZW4g bWluaCBnaW8ga2hvbmcgY28geSBuZ2hpYSwgZGFpIGxlIGxhIG1vdCBzdSBraWVuIGN1YSBjYSBx dW9jIGdpYSwgMTAwMCBuYW0gDQptb2kgY28sIEhhbiBub2kgbGEgYmFuIGNobyBraGFpIGdpYW5n IHZhIGxhbSB0dSB0aGllbi4uLi5uaHVuZyB2aWVjIGtoYWkgZ2lhbmcgbGEgYnVvaSANCnNhbmcs IHZpZWMgbGFtIHR1IHRoaWVuIHRoaSBsYSByYXQgeSBuZ2hpYSBuaHVuZyB0aHUgaG9pIGJhbiBr aG9uZyB0aGUgc2FwIHhlcCBob3AgbHkgaG9uIA0KZHVvYyBzYW8/IFRyb25nIGtoaSBkbyBiYW4g bGEgbmd1b2kgdmluaCBkdSBkdW9jIGdpYW8gdmllYyBuYXksIGJhbiBvIEhhIE5vaSBwaGFpIHRo dWEgDQpiaWV0IHRoZSBuYW8gZGUgbHVvbmcgdHJ1b2MgZHVvYyB2aWVjIHRhYyBkdW9uZywgY2Fj IGJhbiBraGFjIGRhIGRlbiBkdW9jIHZhIGNobyBkb2kgDQpuaHUgbW90IHZpbmggZHUgbG9uIHRy b25nIGN1b2MgZG9pLCBiYW4gbm9pIGRlbiB0b2EgbmhhIEtlYW5nbmFtIGx1YyAxN2gzMCBuaHVu ZyANCmtob25nIHZhbyBkdW9jIHNhbi4uLg0KDQpYaW4gdGh1YSB2b2kgYmFuIGx1YyAxN2g0NSB2 YW4gZGkgY2h1eWVuIGR1b2MgdHUgZHVvbmcgTWUgVHJpIHZhbyBtYWMgZHUgaG9pIGNoYW0gdmkg DQpsdXUgbHVvbmcgbmd1b2kgZGEgZG9uZyBkYW4sIGJvIGJhbiB0aGkgbm9pIDE2aCBiYW4gbW9p IGRpIHRyYW5nIGRpZW0uLi4gTm9pIGNodW5nIGxhIA0KYmFuIGxhIG5ndW9pIHRoaWV1IHRyYWNo IG5oaWVtIHRyb25nIGNvbmcgdmllYywgZGFuZyByYSB0aGF5IHZpIGJhbiBuZ2hlIG5ndW9pIGto YWMgY28gDQpuaHVuZyB5IGtpZW4ga2hvbmcgaGF5IGhvYWMga2hvbmcgdW5nIGhvIGJhbiB0cnVv YyBkYXksIHRoaSBiYW4gY2FuIHBoYWkgY28gZ2FuZyB0b3QgDQpob24gZGUgY2h1bmcgbWluaCBs YSBtaW5oIHh1bmcgZGFuZywgdmEgZGF5IGN1bmcgbGEgY28gaG9pIHRvdCBjaG8gYmFuIHZheSBt YS4uLi4uIA0KU2F1IG5heSB2aWVjIGdpIHRoYXkga2hvbmcgZHUga2hhIG5hbmcgbGFtIGJhbiBu ZW4gdHUgYm8gbmdheSB0dSBkYXUgdmkgVmlldCBOYW0ga2hvbmcgDQp0aGlldSBnaSBuZ3VvaSB4 dW5nIGRhbmcgY28ga2hhIG5hbmcgbGFtIG5odW5nIHZpZWMgbmF5IQ0KDQooVGhhbyBNeSwgdGhh b215ODg4OEBnbWFpbC5jb20sIDEyLzEwLzIwMTAgZ3VpIGx1YyAxMToxMDoxMykNCg0KVG9pIHRo b25nIGNhbSB2b2kgTmdvYyBIYW4uIFRvaSBjdW5nIG8gdHJvbmcgZG9uZyBuZ3VvaSB2YW8gc2Fu IE15IERpbmggdG9pIGhvbSBkbywgDQp0b2kgZGVuIHR1IDNoIG1hIGNvbiBraG9uZyBsZW4gZHVv YyB2YW8gbnVhIGxhIGNvIGF5IDVoIG1vaSBkZW4uIFZpZWMgZ29pIGRpZW4gdGhvYWkgbyANCmRh eSB0aG9pIGRpZW0gZG8gbGEga2hvbmcgdGhlLCBjYW0gZGllbiB0aG9haSBvIGRheSBraG9uZyBr aGFjIGdpIGN1YyBnYWNoLiBNb2kgbmd1b2kgDQp0aHUgdHVvbmcgdHVvbmcgbW90IGtodSB2dWMg a2hvYW5nIDFrbTIgbWEgY28gdG9pIGhhbmcgdHJpZXUgbmd1b2ksIGFpIGN1bmcgY2FtIGRpZW4g DQp0aG9haSB0cmVuIHRheSB0aGkgaG9pIGNvIG5oYSBtYW5nIG5hbyBkYXAgdW5nIGR1b2Mga2hv bmc/DQogKEdpYSBNaW5oLCBnaWFtaW5odnZAeWFob28uY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMg MTA6MTA6MTIpDQoNCk5ldSBiaWV0IHJvIHRyYWNoIG5oaWVtIGN1YSBtaW5oIHF1YW4gdHJvbmcg ZGVuIGRhdSB0cm9uZyBkaXAgbmdhbiBuYW0gbmF5LCBjbyBzZSBiaWV0IA0KcGhhaSBsYW0gZ2kg ZGUgZGVuIGtpcCBnaW8gdmEgdHJvbiB0cmFjaCBuaGllbS4NCg0KKE5HTyBUQU4gVEhVWSBUSUVO LCBuZ290YW50aHV5dGllbkBnbWFpbC5jb20sIDEyLzEwLzIwMTAgZ3VpIGx1YyAwOToxMDo1NikN Cg0KRG8ga2hvbmcgcGhhaSBsYSBseSBkbyBjaGluaCBkYW5nIGNobyBtb3Qgbmd1b2kgbW9pIG5v aSB0aWVuZy4gTW90IGRhaSBsZSB2YSBtaW5oIGxhIA0KbmhhbiB2YXQgY2hpbmgsIHRhdCBjYSBw aGFpIGR1b2Mgc2FwIHhlcCB2YSBkdSBkb2FuIGNoaW4gY2h1LCBraG9uZyB0aGUgY2hhcCBuaGFu IGxvaSANCmJpZW4gbWluaCAiZG9uIGdpYW4iIG5odSB2YXkuIEhvYSBoYXUgY2FuIHJ1dCBraW5o IG5naGllbSBjaG8gbW9pIHN1IGNodWFuIGJpIHRoYXQgDQpjaHUgZGFvLi4uIERheSBsYSB0aGll dSBzb3QgcmF0IGxvbiBtYSBjYW4gcnV0IGtpbmggbmdoaWVtIGNobyBiYWkgaG9jICJsb24iIGN1 YSBjdW9jIA0KZG9pLi4uDQoNCihsZXRoYW5oLCBsZXRoYW5oaHRAZ21haWwuY29tLCAxMi8xMC8y MDEwIGd1aSBsdWMgMDk6MTA6MTcpDQoNClRvaSByYXQgdGhvbmcgY2FtIGNobyBlbSB2aSB2YW4g ZGUgZ2lhbyB0aG9uZy4gVG9pIGJ1b24gdmEgdHVjIGdpYW4gdmkgZGFpIGxlIGxhIHZpZWMgbG9u LCANCmRhbmcgbmhlIGVtIHBoYWkgY2h1IGRvbmcgc29tIGNodS4gRW0gY3VuZyBiaWV0IHJhbmcg a2V0IHhlIHNlIGxhIGtobyB0cmFuaCBraG9pLiANClRydW9jIGRhaSBsZSBjdW5nIGRhIHhheSBy YSBrZXQgeGUgcm9pLCBlbSBjdW5nIGN1bmcgYmlldCBjaHUuIE5odW5nIHRob2ksIGR1IHNhbyB0 aGkgZGFpIA0KbGUgY3VuZyBkYSB4b25nIHJvaSwgbW9pIHZpZWMgZGllbiByYSBkZXUgdG90IGRl cC4gS2hvbmcgY28gZW0gdGhpIGN1bmcga2hvbmcgYW5oIA0KaHVvbmcgZ2kgbG9uIGNhLiBUb2kg bXVvbiBlbSBzYXUgY28gbGFtIGdpIHRoaSBuZW4gYmlldCBjYWkgbmFvIGxhIHF1YW4gdHJvbmcg dmEgbmVuIGxhbSANCnRydW9jLiBOaGF0IGxhIGhpbmggYW5oIGN1YSBlbSBkdW9jIG5oaWV1IG5n dW9pIHRpbiB0dW9uZyB0cmFvIGNobyBlbSBuaHVuZyB0cm9uZyB0cmFjaCANCmxvbiBob24gdHJv bmcgdHVvbmcgbGFpLiBEdW5nIGRlIG5ndW9pIHlldSBtZW4gdmEgdGluIHR1b25nIGxhaSB0aGF0 IHZvbmcuIENodWMgZW0gDQp0aGFuaCBjb25nLCB0dW9pIHRyZSB2YSBoYW5oIHBodWMhDQoobGFu Z3R1LCB0dW5ndHl2MkBnbWFpbC5jb20gLCAxMi8xMC8yMDEwIGd1aSBsdWMgMDk6MTA6MDApDQoN ClRvaSB0aGF5IGJhbiB0aGF0IGtob25nIGNodXllbiBuZ2hpZXAgdHJvbmcgY29uZyB2aWVjLiBU b2kgcmF0IHRpZWMgY2hvIGJhbi4NCihIb2FuZyBIYWkgQW5oLCBjYW5keTE2MUBnbWFpbC5jb20s IDEyLzEwLzIwMTAgZ3VpIGx1YyAxNToxMDo1NykNCg0KRHUgY28gbGEgZG8gdGFjIGR1b25nIHRo aSBjdW5nIHRoZSBoaWVuIHN1IGtob25nIGNodXllbiBuZ2hpZXAgY3VhIEhvYSBoYXUuIFRhYyBk dW9uZyANCmxhIGNodXllbiBjaHVuZywgbmh1bmcgbmh1bmcgbmd1b2kga2hhYyB2YW4gZGVuIGR1 b2MgZG8gdGhvaS4gTmdvYyBIYW4gY28gbmhhbiBsb2kgDQp0aGkgaGF5IG5lbiBuaGFuIGxvaSBj aG8gdGhhbmgga2hhbiwgZHVuZyBjbyBub2kga2lldTogIlRvaSB4aW4gbmhhbiBoZXQgbG9pIHZl IHBoYW4gDQptaW5oIiBjdSBuaHUgbGEgb2FuIGxhbS4gQ28gdGhlIHRoYXkgTmdvYyBIYW4gYmkg bW9pIG5ndW9pIGxlbiBhbiBuaGlldSBxdWEgbmVuIGRhbmggDQpuaGFuIGNodSB0aHVjIHN1IHRy b25nIGxvbmcgTmdvYyBIYW4ga2hvbmcgdHUgY2FtIHRoYXkgbWluaCBjbyBsb2kuIE5oYW4gbG9p IHRoaSBjYW4gDQp0aGFuaCBraGFuLCBuaHVuZyBkdW5nIGR1bmcgbnVvYyBtYXQgZGUgbGFtIG11 aSBsb25nIG5ndW9pIGtoYWMuIEtob25nIHBoYWkgcGhvbmcgDQp0aGFpIGN1YSBtb3QgaG9hIGhh dS4NCihoYW5oLCBtaWR1ODVAZ21haWwuY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMgMTQ6MTA6NDYp DQoNClRvaSBkb2Mgbmh1bmcgYmFpIHRydW9jIGN1YSBOZ29jIEhhbiB2YSB4ZW0gbmh1bmcgYmFp IGdhbiBkYXkgTmdvYyBIYW4gbm9pIHNlIA0KY2h1bmcgdG8gY2hvIG1vaSBuZ3VvaSB0aGF5IHZh eSBtYSBub2kgZG9pLCBxdWFuaCBjbyB2ZSB2aWVjIGtob25nIHRoYW0gZHUgZGFpIGxlLiANCk5n b2MgSGFuIGJhbyBraG9uZyB0aGkgTWlzcyBXb3JsZCB2aSBvIGxhaSBkdSBsZSBuZ2hpbiBuYW0g Y3VvaSBjdW5nIGxhaSBjaGFuZyByYSBzYW8uIA0KQ28gY2F1IG5heSBtaW5oIG11b24gbm9pIGNo byBIYW4gIiBraG9uZyBjbyBIYW4gdGhpIGNvIG5ndW9pIGtoYWMgIiB2YSB2YW4gZG9uZyB2dWku DQooS2lldSBUcmFuZywgdHV5ZXRiYW5nYnVpQHlhb2guY29tLCAxMi8xMC8yMDEwIGd1aSBsdWMg MDg6MTA6NTgpIA0KDQpHaW8gdGhpIGNodXllbiBkYSByb2ksIHRvaSByYXQgbGF5IGxhbSB0aWVj LCB0b2kgY2hvIHJhbmcgZGF5IGxhIHZhbiBkZSBnaXVwIGNobyBtb2kgbmd1b2kgDQpjbyBjbyBz byB2YSBraGFuZyBkaW5oIE5nb2MgSGFuIGNvIHh1bmcgZGFuZyBsYSBISCBraG9uZz8gVHJ1b2Mg ZG8gZGEgY28gdGluIGxhIA0Ka2hvbmcgdGhhbSBnaWEgdGhpIE1pc3MgV29ybGQgZGUgZG9uZyBn b3AgY2hvIGRhaSBsZSwgYmF5IGdpbyB0aGkuLi4uLm5ldSBsYSBuZ3VvaSBjdWEgDQpjb25nIGNo dW5nLCBsYSBISCB0aGkgZGlldSByYXQgZG9uIGdpYW4gbmVuIGJpZXQgY2h1eWVuIG5hbyBxdWFu IHRyb25nIGhvbiB2YSB1b2MgdGluaCANCmR1b2MgdGhvaSBnaWFuLiBUb2kgcmF0IGtob25nIGRv bmcgdGluaCBtaW5oIGtob25nIHRoYW0gZ2lhIHBodWMgdnUgZGFpIGxlIGRvIGNodSBxdWFuLCAN CmxhaSBjb24gY2hvIHJhbmcgbW90IHNvIHF1YW4gY2h1YyBjdW5nIGtob25nIGRlbiBkdW9jIG5o dSBtaW5oLiBOZ29jIEhhbiBwaGFpIGhpZXUgDQptb2kgbmd1b2kgZGV1IGNvIHZpIHRyaSB2YSB2 YWkgdHJvIGtoYWMgbmhhdSwga2hvbmcgZGFuaCBkb25nIG5odSB0aGUgZHVvYy4gTmdvYyBIYW4g DQpuZW4geGVtIGRheSBsYSBtb3QgYmFpIGhvYyB2YSBjbyB0aGFpIGRvIG5naGllbSB0dWMgaG9u Lg0KKFRpZW4gSHVuZywgaHVuZ2Vhcmx5QGdtYWlsLmNvbSAsIDEyLzEwLzIwMTAgMDg6MTA6MjEp DQoNClZhbiBkZSBvIGRheSBsYSB4YSBob2kgbmhpbiBuaGFuIHZlIHkgdGh1YyBjdWEgbW90IGNh IG5oYW4gZG9pIHZvaSBkb25nIGJhbyBuZ2F5IGRhaSBsZS4gDQpLaG9uZyBiaWV0IGx5IGRvIGdp IGhldCwgY2hpIGxhIHN1IHZhbmcgbWF0ISEgSG9hIGhhdSB0aGF0IGRhbmcgY2hlIHRyYWNoISBU aHUgaG9pLCBuZXUgDQpkYW5nIGRpIGhvYyBtYSBibyB0aGkgdmkgImR1b25nIGRvbmcgbmd1b2ki IHRoaSBHaWFvIHZpZW4gY28gY2hvIGRhdSBraG9uZz8gQ29uIG8gDQpkYXksIFRoYXkgY3VhIE5n b2MgSGFuIGtob25nIHBoYWkgbGEgLi4uIEJhbiBnaWFtIGtoYW8gY3VvYyB0aGkgSG9hIGhhdSBu dWEgbWEgQ29uZyANCmRvbmcsIGxhIERhbiB0b2MhIER1bmcgbGF5IFZ1b25nIG1pZW4gbWEgeGEg aG9pIHRyYW4gdHJvbmcgZGUgY2hlIG5hbmcgdHJlbiBkYXUsIEhvYSANCi4uLi5oYXUgYSEgRG9u ZyBiYW8gbWllbiBUcnVuZyBzZSByYXQgdnVpIG11bmcga2hpIHhlbSB0cnV5ZW4gaGluaCB0aGF5 IEhvYSBoYXUgVmlldCANCk5hbSBuZ2F5IERhaSBsZSB2YSBzYXUgRGFpIGxlIHNlIGdhcCBjb24g bmd1b2kgdGhhdCwgdGluaCB0aGFuIHBoYW4ga2hvaSwgdnVvdCBxdWEga2hvIA0Ka2hhbiwgZ2lh biBuYW4sIHRvIGNodWMgeGF5IGR1bmcgY3VvYyBzb25nIHNhdSB0aGllbiB0YWkuIERvIG1vaSBs YSB5IG5naGlhIGxvbiBjdWEgdGluaCANCnRoYW4gbmd1b2kgbGFtIHR1IHRoaWVuLg0KKEhvYW5n IE5ndXllbiwgUGhhbmdvY2FtX2RuZzAzQHlhaG9vLmNvbSwgMTIvMTAvMjAxMCAwNzoxMDo1NykN Cg0KRGFpIGxlIGxhIG1vdCBzdSBraWVuIGN1YSB0YXAgdGhlLCBzdSB0aGFuaCBjb25nIGN1YSBk YWkgbGUgY28gZHVvYyBsYSBuaG8gdGF0IGNhIG1vaSANCm5ndW9pLi4ga2hvbmcgcGhhaSBjdWEg Y2EgbmhhbiBuYW8gY2EuLg0KKHZpZXRuYW1iYXlsZW4sIGdpb3R1b25nMzYxOTkyQGdtYWlsLmNv bSAsMTIvMTAvMjAxMCAwNzoxMDo0OSkNCg0KVG9pIHJhdCBraG9uZyBkb25nIHRpbmggdm9pIGNh Y2ggZ2lhaSB0aGljaCBjdWEgTmdvYyBIYW4uIHJhdCBuaGlldSBuZ3VvaSB0cm9uZyBsZSBiZSAN Cm1hYywgbmhpZXUgZGllbiB2aWVuLCB0aGUgbmh1bmcgaG8gZGV1IGRlbiBkYXkgZHUgdmEgaG9h biB0aGFuaCB2b2kgdHJhY2ggbmhpZW0gcmF0IA0KY2FvLiBDaGFuZyBsZSBjaGkgbWluaCBOZ29j IEhhbiBsYSBtdW9uIGE/DQoNClZpZXRuYW1uZXQgc2UgdGllcCBkYW5nIHRhaSBuaHVuZyB5IGtp ZW4gY3VhIGRvYyBnaWEgeHVuZyBxdWFuaCB2aWVjIEhvYSBIYXUgTmdvYyBIYW4gDQp2YW5nIG1h dCwga2hvbmcgdGhhbSBkdSBkYWkgbGUgMTAwMCBuYW0gdmkgbHkgZG8gdGFjIGR1b25nLiBEZSBj aGlhIHNlIG5odW5nIHkga2llbiANCmN1YSBtaW5oLCBtb2kgZG9jIGdpYSB0aGFtIGdpYSwgZ3Vp IHkga2llbiB2ZSBjaG8gVmlldG5hbW5ldC4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZu L05ld3MvUGFnZXMvMjAxMDQxLzIwMTAxMDEwMTQ0ODI4LmFzcHggTWluaCBTYW5nIC0gVGhhbmgg Q2h1bmcgMTAvMTAvMjAxMCAxNDo0OCANCg0KSGEgbm9pOiBNdWEgYmFuICJ2ZSIgeGVtIGNodW9u ZyB0cmluaCBuZ2hpbiBuYW0gIA0KICANCihBbmggY2h1cDogQ2FjICJjbyIgZGFuZyBtb2kgY2hh byB0cnVvYyBraHUgdnVjIHNhbiB2YW4gZG9uZyBxdW9jIGdpYSBNeSBEaW5oKQ0KDQooVE5PKSBN YWMgZHUgY2h1b25nIHRyaW5oIG5naGUgdGh1YXQgdmEgbWFuIGJhbiBwaGFvIGhvYSBkdXkgbmhh dCBjaGFvIG11bmcgMS4wMDAgDQpuYW0gVGhhbmcgTG9uZyAtIEhhIE5vaSB2YW8gdG9pIDEwLjEw IGtob25nIHRvIGNodWMgYmFuIHZlLCBuaHVuZyB0cmVuIG5oaWV1IHRyYW5nIA0KbWFuZyB2YSB0 cnVvYyBraHUgdnVjIHNhbiB2YW4gZG9uZyBxdW9jIGdpYSBNeSBEaW5oIChIYSBOb2kpLCByYXQg bmhpZXUgImNvIiBkYSBkdWEgbmhhdSByYW8gYmFuIGdpYXkgbW9pLiANCg0KVGhlbyBnaGkgbmhh biBjdWEgY2h1bmcgdG9pIHZhbyBzYW5nIDEwLjEwLCB0YWkga2h1IHZ1YyB0cnVvYyBzYW4gdmFu IGRvbmcgTXkgRGluaCwgDQpjbyBraG9hbmcgZ2FuIGNodWMgImNvIiBjYSBuYW0gbGFuIG51IHRh cCB0cnVuZyByYW8gYmFuIGR1IGNhYyBsb2FpIGdpYXkgbW9pIG8gY2FjIA0Ka2hhbiBkYWkuIEdp YSB2ZSBtb2kgZHVvYyBjYWMgImNvIiByYW8gYmFuIHR1IDIgdHJpZXUgZGVuIDUgdHJpZXUgZG9u Zy9jYXAsIHR1eSB2YW8ga2hhbiBkYWksIHRhbmcsIGhhbmcgZ2hlLg0KDQpUcm9uZyB2YWkgbW90 IG5ndW9pIGNvIG5odSBjYXUgbXVhLCBjaHVuZyB0b2kgbmhhbmggY2hvbmcgZHVvYyBtb3QgImNv IiB0ZW4gRG8gKHNvIA0KZGllbiB0aG9haTogMDE2ODc1MXh4eHgpIG1vaSBjaGFvIGdhbiBkb2Fu IHRydSBzbyBMaWVuIGRvYW4gQm9uZyBkYSBWaWV0IE5hbS4gIkNodW9uZyANCnRyaW5oIG5heSBr aG9uZyBjbyB2ZSBtYSBjaGkgY28gZ2lheSBtb2ksIGVtIGNvbiBjYXAgbyBraGFuIGRhaSBBLCBo YW5nIFYgZGF5LCBjaG8gDQpuYXkgeGVtIGxhIGRlcCBuaGF0IHRyb25nIHNhbiBkYXksIG1hIGto b25nIGNvIGhhbmcsIHNvIGdoZSBuZW4gYW5oIGN1IGRlbiBzb20gbmdvaSANCnhlbSB2b2kgdm8g aG9hYyBuZ3VvaSB5ZXUgdGhpIHR1eWV0IHZvaSIuDQoNCkdpYSBjdWEgY2FwIHZlIGtoYW4gZGFp IEEgZHVvYyAiY28iIHRlbiBEbyBkdWEgcmEgbGEgNSB0cmlldSBkb25nL2NhcC4gIk5ldSBhbmgg bGF5IA0KbHVvbiBlbSBib3QgY2hvIG1vaSB2ZSAxMDAuMDAwIGRvbmcsIGNvbiBsYWkgbGEgNCw4 IHRyaWV1IGhhaSB2ZS4gTWEgYW5oIGtob25nIGxheSANCm5oYW5oIGxhIGRlbiBjaGlldSBlbSBz byBnYW4gY2FuIGdpbyBubyBjb24gbGVuIGRlbiA3IC0gOCB0cmlldS9jYXAgYXkgY2h1LiBLaGFu IGRhaSANCkEsIFYgdm9pIGdpYSB0aGUgbmF5IGxhIHF1YSBtZW0gcm9pIGFuaCBhIiwgImNvIiB0 ZW4gRG8gYmFvLiANCg0KQ2FtIHRyZW4gdGF5IG1vdCB4YXAgZ2lheSBtb2kgZHVvYyBkdW5nIHRy b25nIG1vdCBwaG9uZyBiaSBtYXUgeGFuaCBjbyBpbiBsb2dvIA0KVGhhbmcgTG9uZyAtIEhhIE5v aSwgMS4wMDAgbmFtIGJlbiBuZ29haSwgbW90ICJjbyIgbnUga2hvYW5nIGdhbiA0MCB0dW9pIGNo aWEgcmEgDQpjaG8gY2h1bmcgdG9pIHhlbSBtYXkgY2FwIHZlIGN1YSBoYW5nIEMgdmEgRCBvIHRh bmcgSUksIHJvaSBuaGFuaCBuaGF1IGdpb2kgdGhpZXUgDQp2YSBiYW8gZ2lhOiAiSGFpIGhhbmcg bmF5IGxhIHhlbSBwaGFvIGhvYSBkZXAgbGFtIHJvaSBlbSBhLiBOZ2hpbiBuYW0gbW9pIGNvIG1v dCANCmxhbiBob2FuaCB0cmFuZyB0aGUgbmF5IGNvIG1hLCBraGFuIGRhaSBDLCBjaG8gY2hpIHhp biAyIHRyaWV1L2NhcCwgY29uIGtoYW4gZGFpIA0KRCB0aGkgY2hpIGJvdCBjaG8gMjAwLjAwMCBk b25nL2NhcCIuIA0KDQpNb3QgImNvIiBudSBraGFjIGR1bmcgYmVuIGNhbmggY3VuZyBraG9uZyBx dWVuIGR1YSBkYXkgdGhlbSB2YW86ICJLaG9uZyBkYXQgZGF1IGVtIGEsIA0KbHVjIG5heSBjaGkg Y29uIGJhbiBuaHVuZyAyLDUgdHJpZXUvY2FwIGNvLiBFbSBtYSBraG9uZyBtdWEgbmhhbmggdGhp IHR5IGN1bmcgY2hhIA0KY28gbWEgbXVhIGRhdSwgdmUgbW9pIGNodSBjbyBwaGFpIG5odSB2ZSBr aWEgZGF1Ii4NCg0KKEFuaCBjaHVwOiAiQ28iIGdpYXkgbW9pIGhvYXQgZG9uZyByYXQgeG9tIHR1 IHRydW9jIGtodSB2dWMgc2FuIE15IERpbmgpDQoNCkNvbiB0cmVuIG1vdCBzbyB0cmFuZyBtYW5n IHJhbyB2YXQsIG5nYXkgdHUgbmdheSA3LjEwIGRhIGNvIGtoYSBuaGlldSB0aW4gcmFvIGJhbiAN CmNhYyBnaWF5IG1vaSB4ZW0gY2h1b25nIHRyaW5oIGJhbiBwaGFvIGhvYSBuZ2hlIHRodWF0IHRv aSAxMC4xMCB2b2kgbXVjIGdpYSB0dSANCjEsNSAtIDcgdHJpZXUgZG9uZy9jYXAsIHR1eSB2YW8g a2hhbiBkYWksIHRhbmcsIGhhbmcgZ2hlLiANCg0KVHJlbiB0cmFuZyB2Li4uLi4uLmNvbSwgbmlj ayBuYW1lIFRyaW5oIFRoaSBRdXluaCBBbmggcmFvOiAiSGllbiBuYXksIG1pbmggY28gbW90IA0K Y2FwIHZlIHhlbSBsZSBiZSBtYWMgRGFpIGxlIDEwLjEwIHRhaSBzYW4gTXkgRGluaCwga2hhbiBk YWkgRCBoYW5nIDI0LCBuaGluIHRoYW5nIA0KcmEgY2hvIGJhbiBwaGFvIGhvYS4gQmFuIG5hbyBt dWEgZ29pIG1pbmggdGhlbyBzbyAwMTY4OTkzeHh4eCAoc21zIG9yIGNhbGwpIGhvYWMgDQp5YWhv bzogeHhrYXRyaW5heHh2ZXJ5eHgiLiBNdWMgZ2lhIGR1b2MgUXV5bmggQW5oIGR1YSByYSBsYSAz LDUgdHJpZXUgZG9uZyIuDQoNCkNvbiBtb3Qgbmd1b2kgY28gdGVuIEh1bmcsIGNodSBuaGFuIHNv IGRpZW4gdGhvYWkgMDkwNDY2Ni4uLiByYW86ICJNaW5oIGNvIDIgY2FwIA0KdmUgeGVtIGxlIGhv aSBuZ2hpbiBuYW0gVGhhbmcgTG9uZyB0YWkgc2FuIHZhbiBkb25nIE15IERpbmggdG9pIG5heSwg dmUgVklQLCBraGFuIA0KZGFpIEEsIDQgdHJpZXUgbW90IGNhcC4gTmhhbmggbGVuIHNvIGx1b25n IGNvIGhhbi4gTGllbiBoZSBILiAwOTA0NjY2Li4uIiwgaG9hYyANCiJNaW5oIGNhbiBiYW4gMiB2 ZSBraGFuIGRhaSBBLCB2aSB0cmkgZGVwIGJhbyBxdWF0IHRvYW4gc2FuIHZhbiBkb25nLiBHaWEg NiB0cmlldSANCmRvbmcvY2FwLiBCYW4gbmFvIGNvIG5odSBjYXUgdGhpIGxpZW4gaGUgdm9pIG1p bmg6IDAxNjk3NDAwLi4uICwgZ2FwIEh1eWVuIG5oZSIuIA0KDQpLaGkgY2h1bmcgdG9pIHRydWMg dGllcCBnb2kgZGllbiB2YW8gbmh1bmcgc28gZGllbiB0aG9haSByYW8gYmFuIGdpYXkgbW9pIGtp YSwgDQp0aGkgY28gaGFpIG5ndW9pIGNobyBiaWV0IGRhIGJhbiBkb2kgZ2lheSBtb2kgdm9pIGdp YSA0LDUgdHJpZXUgZG9uZy4uLiANCg0KVGhlbyBnaGkgbmhhbiBjdWEgY2h1bmcgdG9pLCBtYWMg ZHUgZ2lhIGNhbyBuaHVuZyB2YW4gY28ga2hhIG5oaWV1IG5ndW9pIGRhbiANCmtob25nIG5nYW4g bmdhaSBibyB0aWVuIG11YSBjYWMgdmUgbW9pIG5heS4gDQoNCiJOZ2hpbiBuYW0gbW9pIGNvIG1v dCBsYW4sIG1hIG5hbSBuYXkgYmFuIHBoYW8gaG9hIG1vaSBvIGRheSB0aG9pLCBuZ3VvaSB5ZXUg bWluaCANCmJhbyBtdW9uIGRpIHhlbSwgbWEgbmdvYWkgdGhpIGNoZW4gY2h1YyBuaGF1LCBsYWkg eGVtIGR1b2MgbW9pIHBoYW8gaG9hIG1hIGtob25nIA0KeGVtIGR1b2MgYmlldSBkaWVuIG5naGUg dGh1YXQgbmVuIG1pbmggbXVhIGx1b24gY2FpIGdpYXkgbmF5LiBEYXQgbW90IHRpIG5odW5nIA0K dmFvIHhlbSB0cnVjIHRpZXAgdHJvbmcgc2FuIHRoaWNoIGhvbiIsIGFuaCBUdWFuIEFuaCAobmhh IG8gSGFpIEJhIFRydW5nKSBjaG8gYmlldC4NCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hh aG9pLzIwMTAxMC9HaWFvLXRob25nLXRhYy1uZ2hlbi1zYXUtbGUtZGlldS1iaW5oLTk0MDE0Ny8g SG9hbmcgU2FuZyAtIFZ1IERpZXAgLSBEdXkgVHVhbiAtIFBoYW0gSGFpIDE0OjMzLCAxMC8xMC8y MDEwIChHTVQrNykNCg0KSGEgTm9pOiBHaWFvIHRob25nIEhhIE5vaSB0YWMgbmdoZW4gY2hpZXUg MTAvMTAgDQoNClZOTi0gU2F1IGtoaSBsZSBkaWV1IGJpbmgsIGRpZXUgaGFuaCBrZXQgdGh1Yywg dGluaCBoaW5oIGdpYW8gdGhvbmcga2h1IHZ1YyBIbyBHdW9tIA0KZGEgYmkgdGFjIG5naGVuIGhv YW4gdG9hbi4gQ3VuZyB0cm9uZyBidW9pIHRydWEgMTAvMTAsIG5oaWV1IG5ndW9pIGRhbiBuZ29h aSB0aW5oIA0KZGEgdHJvIHZlIHF1ZSBzYXUgbmh1bmcgbmdheSBsZW4gSGEgTm9pICJjaG9pIiBk YWkgbGUuDQoNClNhdSBraGkgbGUgZGlldSBiaW5oIGtldCB0aHVjLCBkb25nIG5ndW9pIGRvIHhv IHZlIEhvIEd1b20gbmdheSBjYW5nIGRvbmcga2hpZW4gdGluaCANCmhpbmggZ2lhbyB0aG9uZyBv IGtodSB2dWMgbmF5IGdhbiBuaHUgYmkgdGUgY3VuZy4gTW9pIG5nYSBkdW9uZyBkbyB2ZSBIbyBH dW9tIGRlbiANCmtpdCBuZ3VvaSwgbHVjIGx1b25nIENTR1QgbWFjIGR1IGRhIGhldCBzdWMgbm8g bHVjIHNvbmcgdGluaCBoaW5oIGR1b25nIG5odSBraG9uZyBkdW9jIGNhaSB0aGllbiBsYSBtYXku DQoNCihBbmg6IERvbmcgbmd1b2kgZG8geG8gdmUga2h1IHZ1YyBIbyBHdW9tIG5nYXkgc2F1IGto aSBsZSBkaWV1IGhhbmgga2V0IHRodWMga2hpZW4gDQpnaWFvIHRob25nIGtodSB2dWMgbmF5IGdh biBuaHUgYmkgdGUgbGlldC4pDQpOZ2F5IHR1IGRvYW4gUGhvIEh1ZSwgZG9hbiBjYXQgdm9pIHBo byBMeSBUaHVvbmcgS2lldCwgcGhhaSB2YXQgdmEgbGFtIG5ndW9pIGRhbiBtb2kgDQpuaGljaCBj aGFuIGxlbiBkdW9jLiBUaW5oIGhpbmggdHJlbiBjYW5nIHRybyBuZW4gdG9pIHRlIGhvbiB0YWkg a2h1IHZ1YyBIYW5nIEJhaSANCmNhdCB2b2kgSGFpIEJhIFRydW5nLiBIYW5nIGNodWMgQ1NHVCBk dW9jIGN1IGRlbiBkYXkgZGUgcGhhbiBsdW9uZywgdHJhbmggdGluaCB0cmFuZyANCnVuIHRhYyBu aHVuZyB0aW5oIGhpbmgga2hvbmcgZHVvYyBjYWkgdGhpZW4gbGEgbWF5Lg0KDQooQW5oOiBNYWMg ZHUgbHVjIGx1b25nIENTR1QgZGEgZHVvYyBodXkgZG9uZyB0b2kgZGEuLi4pDQoNCktodSB2dWMg SGFuZyBCYWkgLSBUcmFuZyAtVGllbiAtIEhhbmcgS2hheSAtIERpbmggVGllbiBIb2FuZywgZG9u ZyBuZ3VvaSB1biB1biB0cmVuIA0KcGhvLiBNb2kgcGh1b25nIHRpZW4gZ2lhbyB0aG9uZyBnYW4g bmh1IGtob25nIHRoZSBsdXUgdGhvbmcgdHJlbiB0dXllbiBkdW9uZyBuYXkuIA0KDQooQW5oOiBT b25nIHRpbmggdHJhbmcgZ2lhbyB0aG9uZyB0YWkgZGF5IHZhbiBraG9uZyBkdW9jIGNhaSB0aGll bi4pDQpMeSBkbyBraGllbiBnaWFvIHRob25nIGtodSB2dWMgbmF5IHVuIHRhYyB2YW8gdGhvaSBk aWVtIG5heSBjaGluaCBsYSBzYXUga2hpIHhlbSB4b25nIA0KbGUgZGlldSBiaW5oIHRhaSBuaGll dSBkaWEgZGllbSwgZGFpIGRhaSBzbyBuZ3VvaSBkYW4gZGEgcXVheSB0cm8gdmUgSG8gR3VvbSBk ZSB0aWVwIHR1YyBkb24gRGFpLg0KDQpHYXAgYmFjIEJ1aSBWYW4gSG9jIHRyZW4gcGhvIFRyYW5n IFRpZW4gc2FuZyAxMC8xMCwgYmFjIGNobyBiaWV0OiAiVG9pIHF1ZSBvIE5hbSBEaW5oLCANCm5n aGUgdm8gdHV5ZW4gbm9pIGhvbSBuYXkgbGEgY3VvYyBkaWV1IGhhbmgsIGRpZXUgYmluaCBsb24g bmhhdCBuZW4gZGEgdGh1IHhlcCB2aWVjIA0KZG9uZyBhbmcgbGVuIFRodSBkbyB0dSB0b2kgcXVh LCBuZ3UgbmdvYWkgdnVvbiBob2EgQ3VhIE5hbSBjaG8gZG9hbiBkaWV1IGJpbmggZGkgcXVhIi4N CkNvbiBnaWEgZGluaCBhbmggY2hpIFRvYW4gLSBUdXlldCBobyBob2kgY2hvIGJpZXQ6ICJHaWEg ZGluaCB0b2kgeGVtIGRpZXUgYmluaCBoYXkgcXVhLCANCmNhYyBjaGF1IHZ1aSBsYW0uIE5odW5n IGJheSBnaW8gYW4gdGFtIGJhbmggbXkgcm9pIHZlIFRoYWkgQmluaCB0aG9pLCBvIG5oYSBjb24g bmhpZXUgdmllYyBxdWEiLg0KVHJvbmcga2hvbmcga2hpIGhhbiBob2FuLCBubyBudWMgbW9pIG5n dW9pIGRhIGNvIG1vdCBjaGFuZyBkdW9uZyBkaSBibyBkYW5nIG5oby4gR2lhIA0KZGluaCBhbmgg VGllbiBjaG8gYmlldCBkYSBwaGFpIGRpIGJvIHR1IGJlbiB4ZSBHaWFwIEJhdCBsZW4gYm8gSG8g ZGUgY2hvaSBwaG8gdHUgc2FuZyBzb20gMTAvMTAuDQpOaHVuZyAiY28gZG9uZyB2aWVuIiBkYWMg YmlldCBkYSB4ZXAgdmllYyBkb25nIGFuZyB0cmFuaCB0aHUgbGVuIFRodSBkbyB2dWkgY2hvaSB0 cm9uZyANCm5nYXkgRGFpIGxlLCByb2kgaG8gbGFpIHZvaSB2YSByb2kgSGEgTm9pIGRlIHZlIHF1 ZSBuZ2F5IHRyb25nIG5nYXkgMTAvMTAuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vcmFk aW92bm4vMjAxMDEwL05ndW9pLWRhbi1raG9uLWRvbi12b2ktcGhhby1ob2EtTXktZGluaC05NDAx ODcvIFR1YW4gSGFpIC0gVGh1IEFuaCAoIHRodWMgaGllbiApIDIwOjQ4LCAxMC8xMC8yMDEwIChH TVQrNykNCg0KSGEgTm9pOiBOZ3VvaSBkYW4gJ2tob24gZG9uJyB2b2kgcGhhbyBob2EgTXkgRGlu aA0KDQpWTk4tIFRvaSBkYW5nIGNvIG1hdCB0YWkgTXkgRGluaCwgZ2lhbyB0aG9uZyBvIGRheSBy YXQgaG9uIGxvYW4sIGRpIGJvIGNvbiBraG8ga2hhbiANCmNodSBkdW5nIG5vaSBkZW4gbGEgZGkg eGUgbWF5IGhheSBvdG8uIE5oaWV1IG5ndW9pIHZvIHkgdGh1YyB0cmVuIG5oYSBjYW8gdGFuZyBj b24gDQpoYXQgbnVvYyB4dW9uZyBkYW0gZG9uZyBnYXkgcmEgc3UgYnVjIGRvYyB0dWMgdG9pIGNo byBuZ3VvaSBkaSBkdW9uZy4NCkNsaWNrIHZhbyBkYXkgZGUgbmdoZSB0aGluaCBnaWEgZ29pIGRp ZW4gcGhhbiBhbmggdGluaCBoaW5oIA0KU2FuZyBuYXksIG11bmcgMTAgdGhhbmcgMTAsIG5ndW9p IGRhbiB0cmVuIGNhIG51b2MgZGEgZHVvYyB0aG9hIGxvbmcgdm9pIG1hbiBkaWV1IA0KYmluaCBs aWNoIHN1IGhvYW5oIHRyYW5nLiBWYSBjaGkgaXQgcGh1dCBudWEsIG5ndW9pIGRhbiBsYWkgY28g Y28gaG9pICBjaGllbSBuZ3VvbmcgDQptYW4gYmFuIHBoYW8gaG9hIGJlIG1hYyBkYWkgbGUgMTAw MCBuYW0gVGhhbmcgTG9uZyCWIEhhIE5vaS4gVmkgU2FuIHZhbiBkb25nIHF1b2MgDQpnaWEgTXkg RGluaCBsYSBkaWEgZGllbSBkdXkgbmhhdCB0byBjaHVjIGJhbiBwaGFvIGhvYSB0cm9uZyB0b2kg bmF5IG5lbiB0dSBraG9hbmcgDQozaCBjaGlldSAsIG5ndW9pIGRhbiB0dSBraGFwIG5vaSBkYSBk byB4byB2ZSBNeSBEaW5oIGRlIGNvIHRoZSB0aW0gY2hvIG1pbmggbW90IGNobyBkdW5nIGx5IHR1 b25nIG5oYXQuDQogDQpBaSBjdW5nIG11b24gdGFuIG1hdCBjaHVuZyBraWVuIGRlbSBob2kgcGhh byBob2EgbmdoaW4gbmFtIGNvIG1vdC4gVGhlIG5odW5nIGtob25nIA0KaXQgbmd1b2kgZGEgZ2Fw IG1vdCBwaGVuIGtob24gZG9uIGtoaSB0aW0gZHVvbmcgdmUgTXkgRGluaC4gUmF0IG5oaWV1IHF1 eSB0aGluaCANCmdpYSBkYSBnb2kgZGllbiB2ZSBWaWV0bmFtbmV0IHZhIGNoaWEgc2Ugbmh1bmcg Y2FtIHh1YyB0cm9uZyBidW9pIHRvaSBtdW5nIEhhIE5vaSBuZ2hpbiBuYW0gdHVvaS4gDQogDQpB bmggTmd1eWVuIEFuaCBEdWMgLSBTViBEYWkgaG9jIExhbyBkb25nIHZhIFhhIGhvaTogIlRvaSBk YW5nIGNvIG1hdCB0YWkgY29uIGR1b25nIA0KUGh1IE1pIJYgTXkgRGluaCwgZ2lhbyB0aG9uZyBv IGRheSByYXQgaG9uIGxvYW4sIGRpIGJvIGNvbiBraG8ga2hhbiBjaHUgZHVuZyBub2kgDQpkZW4g bGEgZGkgeGUgbWF5IGhheSBvdG8gVGluaCBoaW5oIHhvIGRheSwgY2hlbiBsYW4gZGllbiByYSB2 YSBjb24geGF5IHJhIHhvIHhhdC4gDQpOaGlldSBuZ3VvaSB2byB5IHRodWMgdHJlbiBuaGEgY2Fv IHRhbmcgY29uIGhhdCBudW9jIHh1b25nIGRhbSBkb25nIGdheSByYSBidWMgZG9jLCB0dWMgdG9p IGNobyBuZ3VvaSBkaSBkdW9uZyIuDQogDQpMYW4gVGh1LCAxNyB0dW9pIJYgZGFuZyBsYSBob2Mg c2luaCBjdW5nIGNoaWEgc2U6IEhvbSBuYXksIGVtIGN1bmcgY2EgbmhhIGRlbiANCk15IERpbmgg YmFuZyBvIHRvLCB2aSByYXQgZG9uZyBuZW4gZ2lhIGRpbmggZW0gcGhhaSBndWkgbyB0byBjYWNo IGRheSAya20uIA0KSGllbiBuYXksIHRoaSBvIGRheSBjbyByYXQgbmhpZXUgbmd1b2ksIHJhdCBr aG8gY28gdGhlIHRpbSBjaG8gbWluaCBtb3QgY2hvIA0KZHVuZyBseSB0dW9uZyBkZSB4ZW0gcGhh byBob2EuIEx1YyBvIG5oYSB0aGkgYm8sIG1lIGNvIGJhbyBsYSBvIG5oYSB4ZW0gcGhhbyANCmhv YSBuaHVuZyBkbyBjaGksIGVtIG5hbyBudWMgdm9pIGhvIGhvaSBxdWEgbmVuIGJvIG1lIGNoaWV1 IGNobyBkaSB4ZW0uDQoNClRhYyBkdW9uZyB4YXkgcmEgdHJlbiBjYWMgdHV5ZW4gZHVvbmcgZGFu IGRlbiBNeSBEaW5oDQoNCk5ndW9pIGRlbiB4ZW0gcXVhIGRvbmcsIHRpbmggdHJhbmcgY2hlbiBs YW4sIHhvIGRheSBkaWVuIHJhIGtoaWVuIGNvbiBkdW9uZyBkZW4gc2FuIA0KdmFuIGRvbmcgTXkg RGluaCBraG9uZyBjb24gY2hvIHRyb25nIGRlIGRpIGNodXllbi4gUFYgSGFpIEFuaCBkYW5nIGNv IG1hdCB0cmVuIGR1b25nIA0KUGhhbSBIdW5nIGNobyBiaWV0OiAiVG9pIGRhbmcgZHVuZyBvIGR1 b25nIFBoYW0gSHVuZywgeHVuZyBxdWFuaCB0b2kgcmF0IGRvbmcgdmEgDQp0YWMgZHVvbmcsIG5n dW9pIGRhbiB0dSBraGFwIG5vaSBkbyB2ZSBNeSBEaW5oIHhlbSBkYWkgbGUsIG5oaWV1IGNobyBj b25nIGFuIGNhbSANCmR1b25nIGdheSByYSB0aW5oIHRyYW5nIHRhYyBuZ2hlbiB2byBjdW5nLiBU aW5oIHRyYW5nIGx1YyBuYXkgcmF0IGRvbmcgbmVuIHRvaSBtYWMgDQpkdSB0b2kgcmF0IG11b24g ZGVuIE15IERpbmggeGVtIGRhaSBsZSBuaHVuZyB0b2kga2hvbmcgYmlldCBwaGFpIGRpIG5odSB0 aGUgbmFvIHZpIA0KdGllbiBjdW5nIGtob25nIGR1b2MgdmkgbHVpIGN1bmcgY2hhbmcgeG9uZyIu DQoNClRpbmggdHJhbmcgdGFjIG5naGVuLCBjaGVuIGxhbiBkYW5nIGxhIGRpZXUgbWEgbmh1bmcg bmd1b2kgZGFuIHRpZW4gdmUgTXkgRGluaCBkYW5nIA0KcGhhaSBjaGl1IGR1bmcuIFRoZW0gdmFv IGRvIGxhIHRpbmggdHJhbmcgcGhlIHZlLiBEZSB2YW8geGVtIGNodW9uZyB0cmluaCBiZSBtYWMg bmd1b2kgDQpkYW4gcGhhaSBibyByYSB0dSAxLjUwMC4wMDBEIGRlbiAzLjAwMC4wMDBEIGNobyBt b3QgY2FwIHZlLiBTbyBsdW9uZyB2ZSBjbyBoYW4sIG5lbiANCnJhdCBuaGlldSBuZ3VvaSBsdWEg Y2hvbiBwaHVvbmcgYW4gbGEgZHVuZyBvIG5nb2FpIHNhbiAgY2hpZW0gbmd1b25nIG1hbiBiYW4g cGhhbyBob2EuDQogDQpBbmggVHJvbmcgVmlldCCWIHNvbmcgdGFpIEhhIERvbmcgliBIYSBOb2kg Y2hvIGJpZXQ6ICJIaWVuIHRhaSBtaW5oIGRhbmcgbyBraHUgY29uZyANCmNoaW5oIG8gTXkgRGlu aCwgZ2lhbyB0aG9uZyByYXQgZG9uZywgbW9pIG5ndW9pIHRhcCB0cnVuZyByYXQgc28gYm8uIE1p bmggY3VuZyBtdW9uIA0KdmFvIGtoYW4gZGFpIEIgZGUgeGVtIHBoYW8gaG9hIG5odW5nIHRpbmgg dHJhbmcgcGhlIHZlIGRpZW4gcmEsIG1vaSB2ZSB0dSAxdHI1IGRlbiANCjJ0ciBuZW4gY2hhYyBt aW5oIGR1bmcgbmdvYWkuIE1vdCBsdWMgbnVhIG1hIGRlbiBNeSBEaW5oIGNoYWMgY2hhbiBzZSBr aG9uZyB0aGUgY2hlbiB2YW8gZHVvYyIuDQoNCk5odW5nIG5ndW9pIGRhbiBjbyBuaGEgaG9hYyBu Z3VvaSB0aGFuIHNvbmcgZ2FuIE15IERpbmggY28gdGhlIGNvaSBsYSBtYXkgbWFuIHRyb25nIA0K ZGlwIG5heSB2aSBraG9hbmcgY2FjaCBkaSBkZW4gc2FuIHZhbiBkb25nIHNlIGR1b2MgcnV0IG5n YW4uIEFuaCBMZSBYdWFuIEJhYyCWIGRhbmcgDQpzb25nIHRhaSBraHUgZG8gdGhpIE15IERpbmgg SSBjdW5nIGNvIGtlIGhvYWNoIGN1bmcgY2EgbmhhIGRpIHhlbSBwaGFvIGhvYSB0aGUgbmh1bmcg DQpkZW4gcGh1dCBjdW9pLCBhbmggZGEgdGhheSBkb2kga2UgaG9hY2ggY3VhIG1pbmg6ICJUb2kg Y3VuZyBjYSBuaGEgZGUgeGUgbyBuaGEgdmEgDQpkaSBibyByYSBzYW4uIE1vaSBuZ3VvaSBoYXUg aGV0IGRpIGJvIHZpIGNhYyBwaHVvbmcgdGllbiBjYW0geGUgY2FjaCBkbyBraG9hbmcgMmttLiAN CkhpZW4gdGFpIGR1b25nIExlIER1YyBUaG8gaGllbiByYXQgZG9uZy4gVG9pIHRoYXkgYmF5IGdp bywga2hvbmcga2hpIHJhdCBkb25nLCByYXQgDQpraG8gZGUgY28gdGhlIHRpbSBjaG8gbWluaCBt b3QgdmkgdHJpIGRlcCBkZSB4ZW0gcGhhbyBob2EgbmVuIHRvaSB2YSBtb2kgbmd1b2kgcXV5ZXQg DQpkaW5oIHNlIHRybyB2ZSBuaGEgZGUgeGVtIHR1IGtodSBjaHVuZyBjdSIuDQoNCk5ndW9pIGRh biBoYW8gaHVjIGNobyB4ZW0gcGhhbyBob2ENCg0KQ3VuZyBnaW9uZyBuaHUgYW5oIEJhYywgYW5o IER1b25nIE1hbmggSHVuZyBjdW5nIGNhYyBiYW4gY3VuZyBuYW4gbG9uZyB0cnVvYyB0aW5oIA0K dHJhbmcgdGFjIG5naGVuIHZhIHF1YXkgdmUgZG9uIGRhaSBsZSB0aGVvIGNhY2ggY3VhIHJpZW5n IG1pbmg6ICJOaHUgbW9pIG5ndW9pIGtoYWMgDQp0b2kgY3VuZyBtdW9uIGRlbiBNeSBEaW5oIGRl IHRoYW0gZHUgbGUgYmUgbWFjIG5odW5nIGRpIHR1IDVoIG1hIGR1b25nIHJhdCB0YWMgbWEgDQp2 YW4ga2hvbmcgbGVuIGR1b2MgTXkgRGluaCBuZW4gdG9pIGN1bmcgYmFuIGJlIGRhIGNodXllbiBr ZSBob2FjaCBsYSBkZW4gcXVhbiBiaWEsIA0KZG9uIGRhaSBsZSB0aGVvIGNhY2ggcmllbmcgY3Vh IG1pbmggdmEga2hvbmcga2hpIG8gZGF5IGN1bmcgcmF0IHNvaSBub2kiLg0KDQpUaGVvIGdoaSBu aGFuIGN1YSBQViBWaWV0bmFtbmV0LCBuZ3VvaSBkYW4gdHUgdGFwIHJhdCBkb25nLCBjaGVuIGxh biB4byBkYXkga2hpZW4gDQpjYWMgbHVjIGx1b25nIGFuIG5pbmggbGFtIHZpZWMgcmF0IHZhdCB2 YS4gTmV1IGtob25nIHRhbmcgY3VvbmcgbHVjIGx1b25nIGtpcCB0aG9pIA0KY28gdGhlIHZvIGhh bmcgcmFvIGFuIG5pbmggbyBiZW4gbmdvYWkuIA0KIA0KTWFjIGR1IHBoYW8gaG9hIGRhIG5vIHRy ZW4gYmF1IHRyb2kgTXkgRGluaCwgbmh1bmcgdGluaCB0cmFuZyB1biB1IHZhbiBraG9uZyBrZXQg dGh1Yy4gDQpWYSBjaGFjIGNoYW4ga2hpIGNodW9uZyB0cmluaCBiZSBtYWMgZGFpIGxlIDEwMDAg bmFtIFRoYW5nIExvbmcga2hlcCBsYWksIHRpbmggDQp0cmFuZyB0YWMgZHVvbmcgY3VuZyBuaHUg bmhpZXUgdmFuIGRlIGtoYWMgc2UgdGllcCB0dWMgeGF5IHJhLiANCg0KaHR0cDovL3d3dzU3LnZp ZXRuYW1uZXQudm4vdm4vdGluLW5oYW5oLzI2NDkvY29uZy10cmluaC1ob2FuaC10cmFuZy1jdWEt ZGFpLWxlLXh1b25nLWNhcC1uZ2hpZW0tdHJvbmcuaHRtbCBUaHUgSHVvbmcgKFRvbmcgaG9wKSAx MS8xMi8yMDEwIDA2OjI1OjAwIEFNIChHTVQrNykgDQoNCkhhIE5vaTogSG9hbmggdHJhbmcgZGlw IERhaSBsZSByb2kuLi4gdnV0IGRheSCWIE5oaWV1IGNvbmcgdHJpbmggaHUgaG9uZyBuYW5nIA0K DQotIE5oaWV1IGNvbmcgdHJpbmggY2hhbyBtdW5nIERhaSBsZSBkdW9jIHRodWMgaGllbiByYXQg cXV5IG1vLCBob2FuaCB0cmFuZy4gVHV5IG5oaWVuLCANCmNoaSBtb3QgdGhvaSBnaWFuIG5nYW4g c2F1IERhaSBsZSwgbmh1bmcgY29uZyB0cmluaCBkbyBraG9uZyBkdW9jIGFpIHF1YW4gdGFtIGRl biBob2FjIA0KZG8gY29uZyB0YWMgcXVhbiBseSB5ZXUga2VtIG5lbiBkYW4gZGVuIGh1IGhvbmcg bmFuZy4NCg0KVHJvbmcgc2FtIGh1IGhvbmcgc2F1IERhaSBsZQ0KDQpUcm9uZyBzYW0sIGNoaWVj IHRyb25nIGR1b2MgZGFuaCB2YW8gbGUga2hhaSBtYWMgdmEga2V0IHRodWMgRGFpIGxlIGtpIG5p ZW0gMTAwMCBuYW0gDQpUaGFuZyBMb25nIC0gSGEgTm9pICh0dSAxLTEwLzEwKSwgZGEgYmF0IGRh dSBodSBob25nLiBNYXQgdHJvbmcgYmkgbW9jLCBuaGlldSBuZXQgaG9hIHZhbiBwaGFpIG1hdS4g TmhpZXUgdmV0IG51dCBkYSB4dWF0IGhpZW4gdHJlbiBnaWEgdHJvbmcuDQoNCkRheSBsYSBjaGll YyB0cm9uZyBsb24gbmhhdCBWaWV0IE5hbSwgdmEgY28gdGhlIGxhIGNhIERvbmcgTmFtIEEsIHZv aSBkdW9uZyBraW5oIA0KMywxNW0uIFRyb25nIGR1b2MgbGFtIGJhbmcgbG9pIGdvIG1pdCwgZGEg dHJhdSBzb25nLCBjbyBoaW5oIHJvbmcgdm9uIG1heSwgdW9uIGx1b24uIA0KQ2hpZWMgdHJvbmcg bmF5IGRvIEhpZXAgaG9pICBUaHUgY29uZyBteSBuZ2hlIGxhbmcgbmdoZSB0aGFuaCBwaG8gSGEg Tm9pIGN1bmcgdGllbiBjaG8gSG9hbmcgdGhhbmggVGhhbmcgTG9uZy4gDQoNCihBbmg6IE1hdCB0 cm9uZyBTYW0gZGEgYmF0IGRhdSBib25nIHZhIG1vYyBBbmg6IFZuRXhwcmVzcykNCg0KU2F1IERh aSBsZSwgY2hpZWMgdHJvbmcgdmFuIGR1b2MgZGF0IG8gc2FuIGRpZW4gS2luaCBUaGllbiwgY2hp dSBtdWEgY2hpdSBuYW5nLiBPbmcgDQpQaGFuIER1eSBUaGFuZywgUGhvIEdpYW0gZG9jIFRydW5n IHRhbSBiYW8gdG9uIGtodSBkaSB0aWNoIENvIExvYSAtIFRoYW5oIGNvIEhhIA0KTm9pIHRodWEg bmhhbiB0cmVuIFZuRXhwcmVzcyByYW5nLCB2aWVjIGJhbyBxdWFuIHRyb25nIGNodWEgdG90LiBI aWVuIG5heSwgbW9pIGtoaSB0cm9pIA0KbXVhLCBuaGFuIHZpZW4gbGFpIG1hbmcgYmF0IGNoZSBj aG8gdHJvbmcsIG5hbmcgbGFpIHRoYW8gcmEuIA0KDQpDb24gb25nIExlIEdpYW5nIFRvLCBQaG8g Q2h1IHRpY2ggSGllcCBob2kgVGh1IGNvbmcgbXkgbmdoZSBsYW5nIG5naGUgdGhhbmggcGhvIEhh IA0KTm9pLCBuZ3V5ZW4gdHJ1b25nIGJhbiBjaGkgZGFvIGNodW9uZyB0cmluaCBkYW5nIHRpZW4g Y2h1b25nLCBjaGllbmcsIHRyb25nIGxlbiBIb2FuZyANCnRoYW5oIFRoYW5nIExvbmcgcGhhdCBi aWV1IHRyZW4gVm5FeHByZXNzIHJhbmc6ICJOZXUgZHVvYyBiYW8gcXVhbiB0b3QsIHRyb25nIGNv IHR1b2kgdGhvIGtob2FuZyAzMDAgbmFtLiBOaHVuZyBoaWVuIHRyb25nIGJhdCBkYXUgaG9uZyBw aGFuIGRhIGJpdCBtYXQgZG8geGFtIHRodWMgY3VhIA0KbnVvYyBtdWEsIG5hbmcgZ2lvIHZhIGFt IG1vYyIuDQoNCkNoaW0gY2F1IERhaSBsZSBiaWVuIHRoYW5oLi4uIG1vbiBuaGF1DQoNClRyb25n IGRpcCBEYWkgbGUgdnVhIHF1YSwgaGluaCBhbmggMS4wMDAgY29uIGJvIGNhdSB0cmFuZyB0dW5n IGNhbmggdHJlbiBiYXUgdHJvaSB0aHUgSGEgDQpOb2kgZGEgZGUgbGFpIG5odW5nIGFuIHR1b25n IGtobyBwaGFpIHRyb25nIGxvbmcgbmd1b2kgZGFuIFZpZXQgTmFtIHZhIGR1IGtoYWNoIHF1b2Mg DQp0ZS4gVGhlIG5odW5nLCBzYXUgRGFpIGxlLCBob24gMi8zIHNvIGNvbiB0cm9uZyBkYW4gY2hp bSBuYXkgZGEgYmkgaGFvIGh1dC4NCg0KKEFuaDogRGFuIGNoaW0gY2F1IG11bmcgRGFpIGxlIGRh bmcgYmllbiB0aGFuaC4uLiBtb24gYW4uIEFuaCBWaWV0bmFtbmV0KQ0KDQpMeSBnaWFpIG5ndXll biBuaGFuIHNvIGx1b25nIGRhbiBjaGltIGdpYW0gbWFuaCwgb25nIFBoYW0gVGFpIFRodSAtIG5n dW9pIG51b2kgDQpkdW9uZyB2YSBodWFuIGx1eWVuIGRhbiBjaGltIG11bmcgRGFpIGxlIC0ga2hh bmcgZGluaCwgZGFuIGNoaW0gYm8gY2F1IGJpIGNoZXQgbW90IA0KcGhhbiBsYSBkbyB0aG9pIHRp ZXQgbWllbiBCYWMgdGhheSBkb2kgZG90IG5nb3Qga2hpZW4gY2hpbSBiaSBzb2MsIHN1YyBkZSBr aGFuZyB5ZXUgZGFuIHZhIHRhbmcga2hhIG5hbmcgbmhpZW0gYmVuaC4gVHV5IG5oaWVuLCBvbmcg VGh1IGNobyByYW5nLCBwaGFuIGxvbiBkYW4gY2hpbSB0aGF0IHRob2F0IA0KbGFpIGxhIGRvIG1v dCBzbyBuZ3VvaSBkYW4gdGhpZXUgeSB0aHVjIGRhIGJhdCB0cm9tIHZlIGxhbSB0aGl0LiANCg0K TmdheSAyOC8xMSwgNiBkb2kgdHVvbmcgYmF0IHRyb20gY2hpbSBibyBjYXUgdGh1b2MgZGFuIGNo aW0gaG9hIGJpbmggbXVuZyBEYWkgbGUgDQpkYW5nIGR1b2MgbnVvaSBkdW9uZyB2YSBodWFuIGx1 eWVuIHRhaSBjb25nIHZpZW4gQmFjaCBUaGFvIChIYSBOb2kpIGRhIGJpIHRvbSBnb24uIA0KVHJh byBkb2kgdm9pIFBWIFZpZXROYW1OZXQsIENvbmcgYW4gcGh1b25nIE5nb2MgSGEgKEJhIERpbmgs IEhhIE5vaSkgY2hvIGJpZXQgNiBkb2kgdHVvbmcgbmF5IGRhIG5oaWV1IGxhbiB0aWVuIGhhbmgg YmF0IHRyb20gdm9pIHRvbmcgc28gY2hpbSBsYSA0NjAgY29uIGRlIGdpZXQgdGhpdCANCmhvYWMg dGlldSB0aHUgbyBjYWMgY2hvLCBoYW5nIHF1YW4uDQoNCk5odW5nIGNvbmcgdHJpbmggaHUgaG9u ZyB0aGFtIGhhaSBzYXUgRGFpIGxlDQoNCkRvaSByb25nIHRob2kgTHkgZ2hlcCBiYW5nIGdvbSBC YXQgVHJhbmcgbGEgY29uZyB0cmluaCBkYWMgc2FjLCB5IG5naGlhIGNoYW8gbXVuZyBEYWkgDQps ZS4gRGF5IGxhIGRvaSByb25nIGdvbSBsb24gbmhhdCBWaWV0IE5hbSB2b2kgbW9pIGNvbiBkYWkg MTVtLCBjYW8gOCwybSAoa2UgY2EgYmUpLCANCmR1b25nIGtpbmggOTBjbSwgZHVvYyBsYXAgZ2hl cCBib2kgNi41MDAgY2hpZWMgZGlhLCA1IHRhbiBtYWNoIHN1IHZhIDQuNTAwIGNoaWVjIGNvYy4g DQpUaGUgbmh1bmcsIDIgdGhhbmcgc2F1IERhaSBsZSwgbmhpZXUgbWFuaCBnaGVwIG8gYmUsIHRo YW4gcm9uZyBkYSBiaSBib25nIHRyb2MuIE5oaWV1IA0KdGFuZyByYWMgcnVvaSwgbWFuZyBuaGVu IGJhbSBjaGF0IHR1IGRhdSBkZW4gZHVvaSByb25nLiBOaGlldSBuZ3VvaSBjYW0gdGhheSB0aGF0 IHRpZWMgDQpraGkgbW90IGRvaSByb25nIHRvIGRlcCBuaHUgdGhlIG1hIGtob25nIGR1b2MgcXVh biB0YW0gZ2luIGdpdS4NCg0KKEFuaDogSG9hIHRpZXQgaG9hIHZhbiBkYWMgc2FjIHRyZW4gbW90 IGRvYW4gY3VhIENvbiBkdW9uZyBnb20gc3UuIEFuaDogVGhhbmggbmllbikNCg0KRG9pIHJvbmcg bmF5IGhpZW4gZHVvYyBkYXQgdHJvbmcgQ29uZyB2aWVuIEJhY2ggVGhhby4gQmEgTmd1eWVuIFRo aSBUaGFjaCCWIEdpYW0gDQpkb2MgQ29uZyB2aWVuIEJhY2ggVGhhbyBjaG8gYmlldCB0cmVuIERh biBWaWV0IHJhbmc6ICJUaGVvIHRvaSBkdW9jIGJpZXQsIGRvaSByb25nIGR1b2MgDQp0aHVjIGhp ZW4gdHJvbmcgdGhvaSBnaWFuIGtoYSBnYXAgcnV0LCBjb25nIHZvaSB5ZXUgdG8gdGhvaSB0aWV0 IHZhIHkgdGh1YyBjdWEga2hhY2ggdGhhbSANCnF1YW4gbmVuIGRlbiBuYXkgbW90IHNvIG5vaSB0 cmVuIHRoYW4gcm9uZyBkYSB4YXkgcmEgaGllbiB0dW9uZyBib25nIHRyb2MiLg0KDQoiQ29uIGR1 b25nIGdvbSBzdSIgbGEgbW90IHRyb25nIG5odW5nIGNvbmcgdHJpbmggdHJvbmcgZGllbSBtdW5n IERhaSBsZS4gU2F1IGdhbiA0IA0KbmFtIHRodWMgaGllbiwgY29uZyB0cmluaCBkYSBob2FuIHRo YW5oIHZvaSBkbyBkYWkgMyw4NWttLCB0b25nIGRpZW4gdGljaCBsYSA2Ljk1MG0yLCANCmJhbyBn b20gY2FjIGRvYW4gdHJhbmggZ2hlcCBnb20gc3UgcnVjIHJvIG1hdSBzYWMsIGRhIGRhbmcgdmUg cGhvbmcgY2FjaCB2YSBjaHUgZGUuDQoNClR1eSBuaGllbiwgaGllbiBuYXksIG5oaWV1IGRvYW4g ZGEgYmkgYm9uZyBtZW4sIHJhbiBudXQuIE5nb2FpIHJhLCByYWMgdGhhaSBkbyBjYWMgZ2FuaCAN Cmhhbmcgcm9uZyB0YXAgdHJ1bmcgbyBraHUgY2hvIGRhdSBtb2kgTG9uZyBCaWVuIHZhIHRyZW4g Y2FjIHR1eWVuIGR1b25nIFllbiBQaHUsIEFuIA0KRHVvbmcgcmF0IG5oaWV1IGdheSBtYXQgbWkg cXVhbiBjaG8gY29uZyB0cmluaCBtYW5nIHRhbSB2b2MgdGhlIGdpb2kgbmF5Lg0KDQpDb25nIHZp ZW4gSG9hIEJpbmggY3VuZyBsYSBtb3QgZGllbSBuaGFuIGNoYW8gbXVuZyBEYWkgbGUgdm9pIGRp ZW4gdGljaCBnYW4gMjBoYSwgDQp0b25nIG11YyBkYXUgdHUgMjgyLDM4IHR5IGRvbmcuIFR1eSBu aGllbiwgbW9pIGtoYW5oIHRoYW5oIGNodWEgZHVvYyBiYW8gbGF1LCBjb25nIA0KdHJpbmggbmF5 IGRhIGJpIGh1IGhvbmcgbmdoaWVtIHRyb25nLiANCg0KRHVvbmcgbmh1LCB2aSBxdWEgY29pIHRy b25nIHRpZW4gZG8sIHF1YSB0YXAgdHJ1bmcgdmFvIHN1IGhvYW5oIHRyYW5nIGN1YSBtYXkgbmdh eSBkYWkgDQpsZSBkZSByb2kgc2F1IGRvIG5ndW9pIHRhIG5oYW5oIGNob25nIGxhbmcgcXVlbiBu aHVuZyBjb25nIHRyaW5oLCBoaWVuIHZhdCBjaGkgbW9pIG1heSBuZ2F5IHRydW9jIGR1b2MgaGV0 IGxvaSBjYSB0dW5nLCBuZ29pIGtoZW4uIA0KDQpodHRwOi8vd3d3LnZpZXRpbmZvLmV1L3Rpbi12 aWV0LW5hbS9uZXUtY2hhbmctbWF5LWN1LXJ1YS1jaGV0LWFpLWNoaXUtdHJhY2gtbmhpZW0uaHRt bCBMZSBOYSAtIChEYWkgRG9hbiBLZXQpIDEyLTAxLTIwMTEgMDU6NDggDQoNCkhhIE5vaTogTmV1 IGNoYW5nIG1heSBDdSBSdWEgY2hldCwgYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KTmh1bmcgbmdh eSB0cm9pIHJldCBkYW0gbmF5LCB0aG9uZyB0aW4gdmUgQ3UgUnVhIEhvIEd1b20gY3VuZyBjYW5n IHRybyBuZW4gbm9uZyBob2kgDQp0cmVuIGNhYyBiYW8sIGNodW5nIHRvIG1vaSBxdWFuIHRhbSBs byBsYW5nIHRvaSBzaW5oIG1lbmggY3VhIEN1IFJ1YSBsaW5oIHRoaWVuZyByYXQgc2F1IA0Kc2Fj LiBUdWFuIFZpZXQgTmFtIGNodXllbiB0YWkgbW90IHNvIHRob25nIHRpbiB4dW5nIHF1YW5oIHZh biBkZSBuYXkuIFZhIHJhdCBtb25nLCBjbyBxdWFuIGNodWMgbmFuZyBjbyBwaHVvbmcgYW4gdGlj aCBjdWMgaG9uIG51YSBjdXUgQ3UgUnVhLCBkb25nIHRob2kgbGVuIHRpZW5nIGNobyBkdSBsdWFu IHhhIGhvaSBoaWV1IHRoZW0gdmFuIGRlIGRhbmcgbG8gbmdhaSBuYXkNCg0KTm9pIGRhaSwgbmV1 IGNoYW5nIG1heSBDdSBSdWEgSG8gR3VvbSBjaGV0LCBhaSBzZSBjaGl1IHRyYWNoIG5oaWVtIGRh eT8NCg0KRGVuIG5nYXkgNS0xLTIwMTEsIEhhIE5vaSBkYSBjaGluaCB0aHVjIGNvIGdpYWkgcGhh cCBjdXUgQ3UgUnVhIEhvIEd1b20gKG1vaSBsYSANCmdpYWkgcGhhcCB0cmVuIHZhbiBiYW4pLiBQ aG8gQ2h1IHRpY2ggVUJORCBUUC4gSGEgTm9pLCBiYSBOZ28gVGhpIFRoYW5oIEhhbmcgdnVhIA0K a3kgdmFuIGJhbiBzbyA1Mi9VQk5ELVZIS0cgcGhlIGR1eWV0IGRlIHh1YXQgY2FjIGdpYWkgcGhh cCBraWVtIHRyYSB2YSB4dSBseSBydWEgdGFpIA0KZG8gdGFpIEhvIEd1b20gY3VhIFNvIEtob2Eg aG9jIC0gQ29uZyBuZ2hlIEhhIE5vaS4gVGhlbyBkbywgZ2lhaSBwaGFwIHRpbmggdGhlIHRydW9j IA0KbWF0IGxhIGNhbiBwaGFpIGJhdCB2YSB4dSBseSBydWEgdGFpIGRvIHRyb25nIEhvIEd1b20g ZGUgZGFtIGJhbyBtb2kgdHJ1b25nIHNvbmcgY2hvIEN1IFJ1YS4NCg0KU28gS2hvYSBob2MgLSBD b25nIG5naGUgSE4gZGUgeHVhdCBwaHVvbmcgcGhhcCBiYXQgcnVhIHRhaSBkbyBiYW5nIGNhYyBi aWVuIHBoYXAgbmh1IA0Kc2F1OiBCYXQgcnVhIHRhaSBkbyBiYW5nIGxvbmcgZGF0IGNoaW0gZHVv aSBudW9jIGhvYWMgZHVuZyBiZSBub2kgY28gbW9pIGRhbiBkdSB2YW8gDQpsdW9pLiBSaWVuZyBk b2kgdm9pIG1vaSBkYW4gZHUga2hvbmcgZ2F5IGFuaCBodW9uZyBkZW4gbW9pIHRydW9uZyBzaW5o IHRoYWkgaG8uIFRydW9jIA0KdGllbiBjYW4gdGllbiBoYW5oIGJhdCBydWEgdGFpIGRvIHRhaSBt b3QgaG8gdGh1IG5naGllbSBkZSBydXQga2luaCBuZ2hpZW0uDQoNCkRvbmcgdGhvaSwgbW90IGtp Y2ggYmFuIHRydXllbiB0cnV5ZW4gdmUgdGFjIGhhaSBjdWEgcnVhIHRhaSBkbyBkb2kgdm9pIGhl IHNpbmggdGhhaSBjdWEgDQpIbyBHdW9tIGN1bmcgc2UgZHVvYyB4YXkgZHVuZy4gVUJORCB0L3Ag Y3VuZyBkYSB0aGFuaCBsYXAgbW90IHRvIGNvbmcgdGFjIGxpZW4gDQpuZ2FuaCwgYmFvIGdvbSBk YWkgZGllbiBjdWEgY2FjIHNvLCBuZ2FuaDogS2hvYSBob2MgdmEgQ29uZyBuZ2hlLCBUYWkgbmd1 eWVuIHZhIE1vaSANCnRydW9uZywgTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBOb25nIHRob24s IFVCTkQgUXVhbiBIb2FuIEtpZW0sIEJhbiBRdWFuIGx5IA0Ka2h1IHZ1YyBIbyBHdW9tOyBjYWMg ZG9uIHZpIG5nb2FpIHRoYW5oIHBobyB0aGFtIGdpYSBiYXQgdmEgeHUgbHkgcnVhIHRhaSBkbyB2 b2kgc3UgDQpnaWFtIHNhdCBjdWEgY2FjIGNvIHF1YW4gcXVhbiBseSBuaGEgbnVvYyBjdWEgdC9w Lg0KDQpCYSBMZSBUaGFuaCAtIFBobyBUcnVvbmcgcGhvbmcgUGhvbmcgQ29uZyBuZ2hlLCBTbyBL aG9hIGhvYyAtIENvbmcgbmdoZSBITiBjaG8gDQpyYW5nLCB2aWVjIGJhdCB2YSB4dSBseSBydWEg dGFpIGRvIHRhaSBIbyBHdW9tIGxhIHZhbiBkZSBxdWFuIHRyb25nIHZhIHJhdCBuaGF5IGNhbSwg dHV5IA0KbGEgdmllYyBjYW4gdGh1YyBoaWVuIHRyb25nIHRob2kgZ2lhbiBzb20gbmhhdCBuaHVu ZyBwaGFpIGNhbiB0cm9uZy4gVmkgdmF5LCBkdSBkZSB4dWF0IA0KY3VhIFNvIEtob2EgaG9jIC0g Q29uZyBuZ2hlIGR1b2MgZHV5ZXQgbmh1bmcgY28gbGUgcGhhaSBzYXUgVGV0IE5ndXllbiBkYW4g bW9pIGNvIA0KdGhlIHRodWMgaGllbiBkdW9jLg0KDQpUcnVvYyB0aG9uZyB0aW4gVUJORCBUUC4g SGEgTm9pIGRhIHBoZSBkdXlldCBkZSB4dWF0IGN1YSBTbyBLaG9hIGhvYy0gQ29uZyBuZ2hlLCAN Cm9uZyBOZ3V5ZW4gRGluaCBIb2UgLSBUcnVvbmcgQmFuIHBoYW4gYmllbiB4YSBob2ksIEhvaSBC YW8gdmUgVGhpZW4gbmhpZW4gdmEgTW9pIA0KdHJ1b25nIFZpZXQgTmFtIGNobyBiaWV0OiAiSG9h biBuZ2hlbmggY2FjIGdpYWkgcGhhcCBkaWV0IHJ1YSB0YWkgZG8gY3VhIFNvIEtob2EgaG9jIJYg DQpDb25nIG5naGUgSE4uIFR1eSBuaGllbiwgaGluaCBuaHUgY28gbW90IHZhbiBkZSBtYSBuaHVu ZyBuZ3VvaSBjbyB0cmFjaCBuaGllbSBiYW8gDQp2ZSBDdSBSdWEgcXVlbiBtYXQgZG8gbGEgdGlu aCBjYXAgYmFjaC4NCg0KQ2FpIGNhbiBsYW0gbmdheSBsdWMgbmF5IGxhIG5lbiBkdWEgQ3UgUnVh IHNhbmcgbyBtb3QgY2hvIGtoYWMsIGNhY2ggbHkgdGFtIHRob2kgdm9pIA0KbW9pIHRydW9uZyBo aWVuIGRhbmcgYmkgZGUgZG9hIGJvaSBuYW4gcnVhIHRhaSBkbyB2YSBjaGF5IGNodWEga2lwIHRo b2kgbmh1bmcgdmV0IA0KdGh1b25nIHRyZW4gbWluaCBDdS4gU2F1IGRvIG1vaSB0aWVuIGhhbmgg YmF0IHJ1YSB0YWkgZG8sIHRoYW0gY2hpIGNvbiBjbyB0aGUgbmFvIHZldCwgDQpjYWkgdGFvIHRv YW4gYm8gbW9pIHRydW9uZyBjdWEgSG8gR3VvbSBtYSBraG9uZyBsbyBhbmggaHVvbmcgZ2kgZGVu IHN1YyBraG9lIGN1YSBDdSBSdWEiLg0KDQpUcmVuIHRoZSBnaW9pIGhpZW4gbmF5IGNoaSBjb24g Y28gNCBjYSB0aGUgcnVhIHRodW9jIGxvYWkgcnVhIEhvIEd1b20sIHRyb25nIGRvIGNvIDEgY2Eg DQp0aGUgc29uZyBvIGhvIG5heSB2YSAxIGNhIHRoZSBydWEgc29uZyB0YWkgaG8gRG9uZyBNbyAo U29uIFRheSwgSGEgTm9pKS4gMiBjYSB0aGUgY29uIA0KbGFpIGR1b2MgbnVvaSB0YWkgVHJ1bmcg UXVvYy4gQ2h1YSB4ZXQgdmUgY2F1IGNodXllbiBnaW9uZyBub2ksIGNoaSBkdW5nIHJpZW5nIHZl IGtoaWEgDQpjYW5oIGxpY2ggc3UgdGhpIEN1IFJ1YSBIbyBHdW9tIGRhbmcgZHVvYyBjb2kgbGEg bW90IG5oYW4gdmF0IGN1YSBsaWNoIHN1IGdhbiB2b2kgc3UgDQp0aWNoIFZ1YSBMZSB0cmEgZ3Vv bSBiYXUuDQoNClF1eSBsYSB0aGUsIGRvYyBuaGF0IHZvIG5oaSBsYSB0aGUsIG5odW5nIG5odW5n IHZldCB0aHVvbmcgbGllbiB0aWVwIHhheSByYSB0cmVuIG1pbmggQ3UgDQp0cm9uZyB0aG9pIGdp YW4gZ2FuIGRheSBkYSBnaW9uZyBsZW4gaG9pIGNodW9uZyBiYW8gZG9uZyB2ZSBjb25nIHRhYyBx dWFuIGx5IG1vaSB0cnVvbmcgDQpIbyBHdW9tIGRhbmcgYmkgYm8gbmdvLiBOaHVuZyBuZ3VvaSBj byB0cmFjaCBuaGllbSBiYW8gdmUgQ3UgUnVhIGNhbiBwaGFpIGNvIGJpZW4gDQpwaGFwIGNhcCBi YWNoIHRydW9jIHN1IHRhbiBjb25nIG8gYXQgY3VhIHJ1YSB0YWkgZG8uDQoNCk5hbSAyMDA0LCBH UyBIYSBEaW5oIER1YyBkYSB0dW5nIGxlbiB0aWVuZyBjYW5oIGJhbyB2ZSBuYW4gcnVhIHRhaSBk bywgbmh1bmcgb25nIGRhIA0KdGh1YyBzdSB0aGF0IHZvbmcgdmkgbHVjIGRvICJraG9uZyBkdW9j IGFpIHF1YW4gdGFtIi4gRGUgZGVuIGx1YyBuYXkga2hpIG5odW5nIHZldCANCnRodW9uZyBjdWEg Q3Ugc28gc28gcmEgZGF5LCBjYWMgY28gcXVhbiBjaHVjIG5hbmcgbW9pIGxvIGJhbiBrZSBob2Fj aCwgbGVuIGNodW9uZyANCnRyaW5oIGRlIHh1YXQgY2FjIGdpYWkgcGhhcCBiYW8gdmUgQ3UuIEdp YWkgcGhhcCBkYSBjbywgbmh1bmcgcm8gcmFuZyBjYXAgYmFjaCB0aGkgY2h1YS4gDQoiVGhvaSB0 aWV0IG1vaSBuZ2F5IGtoYWMgbmdoaWV0IGhvbiwgbmV1IGRlIHF1YSBUZXQgTmd1eWVuIGRhbiBt b2kgbGFtIHZpZWMgbmF5LCBlIA0KcmFuZyBsdWMgZG8gbW9pIGNodXllbiBkYSB0cm8gbmVuIHF1 YSBtdW9uIiAtIG9uZyBIb2UgbG8gbGFuZy4NCg0KVFAuIEhhIE5vaSB2dWEgbW9pIHRvbmcga2V0 IGNhYyBob2F0IGRvbmcga3kgbmllbSAxMDAwIG5hbSBUaGFuZyBMb25nIC0gSGEgTm9pLiANCkRh aSBMZSBkdW9jIGRhbmggZ2lhIGxhIHRvIGNodWMgdGhhbmggY29uZy4gTmh1bmcgY28gbGUgdHJv bmcgMTAwMCB2aWVjIGxhbSB0b3QgY3VhIEhhIA0KTm9pIGNobyBreSBuaWVtIERhaSBsZSB0aGkg ZHVvbmcgbmh1IHZhbiBjb24gMSB2aWVjIG1hIG5ndW9pIHRhIGRhIHF1ZW4gbWF0LCBkbyBsYSBi YW8gDQp0b24gdmEgZ2luIGdpdSBtb3QgQ3UgUnVhIEhvIEd1b20sIGR1b2MgY29pIG5odSAiYmF1 IHZhdCIsICJjaHVuZyBuaGFuIGxpY2ggc3UiIGN1YSANClRoYW5nIExvbmctIEhhIE5vaS4gUGhh aSBjaGFuZywgY3VvaSBuYW0gbmd1b2kgdGEgcXVhIGJhbiEgVmEgc28gcGhhbiBDdSBSdWEgc2Ug cmEgDQpzYW8ga2hpIFRldCBOZ3V5ZW4gZGFuIHF1YSBkaT8gDQoNCihBbmg6IEN1IFJ1YSBjbyBn aXVvbmcgY2FvIG5vaSBiaSBsbyBsb2V0LCB0aG9pIHJ1YSB0cmVuIHRoYW4gbWluaCkgDQoNCmh0 dHA6Ly93d3cudmlldG5hbW5ldC52bi9naWFvZHVjLzIwMTAxMC9kb2Mtc2FpLUJpbmgtTmdvLWRh aS1jYW8tdHJvbmctZGVtLWRhaS1sZS05NDE4MDkvIDA1OjU3LCAxMy8xMC8yMDEwIChHTVQrNykN Cg0KSGEgTm9pOiBEb2Mgc2FpICdCaW5oIE5nbyBkYWkgY2FvJyB0cm9uZyBkZW0gRGFpIGxlDQoN Cmh0dHBzOi8vZ292bi53b3JkcHJlc3MuY29tLzIwMTAvMTAvMDYvZ29jLW5oaW4taCVFMSVCQiU5 OWktY2glRTElQkIlQTluZy1uZ2FuLW5hbS1nJUUxJUJBJUE3bi05NC0wMDAtdCVFMSVCQiVCNy1t dWEtdnVpLWN1bmctY2glRTElQkIlODktbSVFMSVCQiU5OXQtdmFpLXRyJUUxJUJCJTkxbmctY2Fu aC8gSGEgVmFuIFRoaW5oIDYvMTAvMjAxMCANCg0KSGEgTm9pOiBIb2kgY2h1bmcgbmdhbiBuYW0g liBNdWEgdnVpIGN1bmcgY2hpIG1vdCB2YWkgdHJvbmcgY2FuaA0KDQpBaSBraG8gY3Uga2hvLCBh aSBjaG9pIGN1IGNob2kgIA0KDQpNb3Qgbmd1b2kgcXVlbiBxdWEgZGllbiB0aG9haSBnb2kgdG9p IGhvaSB0b2kgdHUgbHVjIHRvIG1vIHNhbmcgcmFuZyBsdXQgbG9pIG1pZW4gVHJ1bmcgDQp0aGFt IHRoZSBuaHUgdGhlLCBjaGV0IDExIG5ndW9pIChjb24gc28gYmFuIGRhdSkgbmh1IGtpYSwgSGEg Tm9pIGRhaSBsZSB0dW5nIGJ1bmcgbmdoZSANCmRhdSB0b24gZGVuIDk0LjAwMCB0eSBkb25nLi4u OyB2YXksIHRyb25nIENoaW5oIHBodSBkYSBjbyBhaSBsZW4gdGl2aSBoYXkgcXVhIGJhbyBjaGkg aG9pIA0KdGhhbSBoYXkgY2hpYSBidW9uIG1vdCBjaHV0IGdvaSBsYSB2b2kgbWllbiBUcnVuZyBj aHVhPyBUb2kgc3VuZyBuZ3VvaS4gVHJ1b2MgdGllbiBsYSANCnR1IHRyYWNoIG1pbmggdmkgZHVv bmcgbmh1IG1pbmggY3VuZyBkYW5nIHZvIGNhbSB0cnVvYyBuaHVuZyBub2kgZGF1LiBLaG9uZyB0 aGUgbm9pIGxhIA0KZG8gc29uZyBvIG1pZW4gVHJ1bmcgbmVuIGRhICJxdWVuIiByb2khIFRodWMg cmEsIHRyYWkgcXVhIG1heSBjaHVjIG5hbSBzb25nIHRyb25nIGRvbiANCmRhdSwgYnVvbiBwaGll biB2YSB0aGF0IHZvbmcsIGhhdSBuaHUgYWkgY3VuZyB0cm8gbmVuIGNoYWkgbHkgdHJ1b2Mgbmh1 bmcgdGFpIHVvbmcgY3VuZw0Kbmh1IG1vaSBzdSBjaHVvbmcgdGFpIGdhaSBtYXQgdHJvbmcgY3Vv YyBkb2kgbmF5Li4uDQoNCkRvYyBCQkMgbmdheSAyLjEwLjIwMTAsIGR1b2MgYmlldCB0cm9uZyA4 IG5hbSBxdWEsIHRvbmcga2luaCBwaGkgY2h1YW4gYmkgdmEgdGllbiBoYW5oIA0KZGFpIGxlIHRv biBkZW4gZ2FuIDEwMCBuZ2FuIHR5IGRvbmcgliB0dWMgbGEgZ2FuIDUgdHkgVVNEIJYgbWEgcnVu ZyBtaW5oLg0KQ2hpIGNhbiBsaWVjIHF1YSBuZ2FuIHNhY2ggcXVvYyBwaG9uZyBuYW0gMjAwOSAo Y29uZyBibyBjaGluaCB0aHVjIGxhbiBkYXUgdGllbikgbGEgMjcsNSANCm5nYW4gdHkgZG9uZyB0 aGkgbW9pIHRoYXkgaGFpIGNobyBjYWkgY2h1eWVuIGFuIGNob2kgbW90IHZhaSB0cm9uZyBjYW5o IHRpZXUgdG9uIGdhcCBnYW4gDQo0IGxhbiBjaGkgcGhpIG1vdCBuYW0gbG8gYmFvIHZlIGFuIG5p bmggdG8gcXVvYyEgDQoNCkRhbmggcmFuZyBuaG8gb24gdGllbiB0bywgdHUgaGFvIHRhIGNvIGNh IG5nYW4gbmFtLCBzYW5nIGdhbiBiYW5nIGNhaSB0aGFuaCBwaG8gdmluaCANCmN1dSBSb21hIGNv IHR1b2kgaGFuZyBtYXkgbmdhbiBuYW0gliB0cnV5ZW4gdGh1eWV0IG5vaSBSb21hIGRvIFJvbXVs aXVzIHNhbmcgDQpsYXAgbmFtIDc1MyB0ci4gQ04sIG9haSBob24gQmFjIEtpbmggbmh1bmcgaG9u IDIwMCBuYW0gliB0aW5oIHR1IG5hbSAxMjcyLCANCmtoaSBIb3QgVGF0IExpZXQgY2hpbmggdGh1 YyBjaG9uIEJhYyBLaW5oIGxhbSBraW5oIGRvIGN1YSBkZSBxdW9jIE5ndXllbiBNb25nLCANCnZv aSB0ZW4gZ29pIGxhIERhaSBEbzsgY29uIFdhc2hpbmd0b24gKDE3OTApLCBUb2t5byAoMTg2OCkg dGhpIGN1IHBoYWkgZ29pIEhhIE5vaSBsYSBjdSB0byENCg0KSG9jIHNpbmggZGkgaG9jIGJhbmcg YmUsIGJhbmcgZGF5IGNhcDsgdHJ1b25nIGhvYyBkb3QgbmF0IG1hIGNvIGN1IHBoYWkgZGF5LCBo b2MgdHJvIA0KY3UgcGhhaSBob2M7IGNhIGNhaSBjb24gZHVvbmcgMUEgdm9pIGRhbmggeHVuZyBs YSBRdW9jIGxvIJYgaHV5ZXQgbWFjaCBnaWFvIHRob25nIA0KcXVhbiB0cm9uZyBuaGF0IGN1YSBj YSBudW9jIG1hIGNoaSBkdSBjaG8gaGFpIHhlIG8gdG8gdHJhbmggbmhhdSwgbmd1b2kgZGkgeGUg bWF5LCANCnhlIGRhcCwgZGkgYm8gY2hpIGNvIGhvbiAxIG1ldCBkdW9uZyAoISkuLi47IGxhIG5o dW5nIGNodXllbiBtb2kgbmdoZSBxdWEga2hvbmcgdGhlIA0KbmFvIGhpZXUgbm9pIHZpIHNhbyBt b3QgZGF0IG51b2MgbmdoZW8gZGVuIHRoZSBtYSBsYWkgdGhpY2ggYW4gY2hvaSwgbmdoaSBob2Mg bmh1bmcgDQoxMCBuZ2F5IGxpZW4gYmF0IGtlIGRhdCBudW9jIGNvbiByYXQgbmhpZXUgbmh1bmcg Y2h1eWVuIGRvaSBuZ2hlbywga2hvIGRhdSB2ZSBiZW5oIA0KdGF0LCBob2MgaGFuaD8gDQoNClR1 IGNvIGNoaSBraW0gY2h1YSB0aGF5IGFpIHRvIGNodWMgbXVuZyB0aG8gY2hvIG1vdCBkaWEgZGFu aCAoY2hvIGR1IGxhIHRodSBkbyBkaSANCm51YSkgdG9uIGRlbiA1JSBHRFAgbW8gaG9pLCBudW9j IG1hdCBjdWEgbmhhbiBkYW4uIERvIGxhIGNodWEgbm9pIGRlbiBjaHV5ZW4gDQp0cm9uZyBjYWkg dHJhbSBuZ2FuIHR5IGtpYSwgYmFvIG5oaWV1IHBoYW4gdHJhbSByb2kgdmFvIHR1aSBxdWFuIHRo YW0sIGJhbyBuaGlldSANCm51YSBjbyBpY2ggbG9pIGJlbiB2dW5nLCBsYXUgZGFpOyBjb24gbGFp IGxhIGJhbyBuaGlldSBjaG8gZHUgbWF5IHRyYW4gY3VvaT8NCg0KQ2FuZyBuZ2hpIGNhbmcgdGhh eSByYW5nIGNhaSB0aG9pIGhhbSBjaG9pIGN1YSBkYXQgbnVvYyB0YSB0aG9pIG5heSBubyBiYW8g bGlldCB2YSBnaGUgDQpnb20gaG9uIG1vaSB0aG9pIHRydW9jIGN1YSBtb2kgZGF0IG51b2MgdHJl biB0cmFpIGRhdCBuYXkgY29uZyBsYWkhIEN1IGJpbmggdGFtIG5naGkgDQp0aGF0IHRpbmggdGFv IG1hIHhlbTogVmluYXNoaW4gbGFtIHRoYXQgdGhvYXQgaG9uIDQlIEdEUCwgZGFpIGxlIFRoYW5n IExvbmcgliBIYSANCk5vaSA1JSBHRFAsIGxhbmcgcGhpIGNoaSB0aWV1IGNvbmcsIHRoYW0gbmh1 bmcgdHJhbiBsYW4gYmFvIG5oaWV1IHBoYW4gdHJhbSBraG9uZyANCnRoZSB0aW5oIG5vaSwgbm8g Y29uZyBkYW5nIGNvIGtpbSBnaXUgbXVjIGR1b2kgNjAlIHZhbyBuYW0gMjAxMS4uLiwgdGhpIHNl IHRoYXkgDQpuZ2F5IHJhbmcga2hvbmcgbGFtIHBoYXQgcGhpIG1hLCBnaWEgdmFuZyBraG9uZyB0 YW5nIHNpZXUgdG9jIG1vaSB0aHVjIGxhIGNodXllbiBsYS4NCg0KVHJhbSBjYWkga2hvIGxhaSB0 aWVwIHR1YyBkbyBsZW4gZGF1IG5ndW9pIG5naGVvLCB2aSB2YXQgZ2lhIGxlbyB0aGFuZyB0aGkg bmh1bmcgYWkgc29uZyANCmJhbmcgbHVvbmcsIHNvbmcgYmFuZyBjb25nIHJhdSwgY2FpIGN1IHR1 IHRyb25nIG5oYXQgZGluaCBzZSBwaGFpIGxlbiBibyB4dW9uZyBydW9uZyB2aSANCnRodSBraG9u ZyB0aGUgZHUgY2hpLg0KDQpUYWkgc2FvIGtob25nIGJvdCBkaSBtb3QgY2h1dCB0dSBkYWkgbGUs IGNoYW5nIGhhbiAxMCUgdGhvaSBjdW5nIGRhIGNvIDEwIG5nYW4gdHkgZG9uZyBkZSBtbyByb25n IGR1b25nIHNhLCBkZSBsYW0gY2F1IHRoYXkgZGF5IGNhcCwgdGhheSBiZSBudWEsIHRoYXkgY2Fj IG1haSBsb3AgaG9jIGRvdCBuYXQuLi4/DQoNCk5odW5nIGNhdSBob2kgdHJlbiBzZSBraG9uZyB0 aGUgY28gY2F1IHRyYSBsb2ksIHZpIGltIGxhbmcgY3VuZyBkYSBiaSAidmFuZyIgaG9hIHR1IA0K bGF1IHJvaSEgQ28gZGlldSBzdSBpbSBsYW5nIHZhbmcgbmdvYyBkb2kga2hpIGxhIGNhbiB0aGll dCB0cm9uZyBxdWFuIGhlIHhhIGhvaSBnaXVhIA0KY2FjIGNhIG5oYW4sIHRoaSBuYXkgZGEgZHVv YyB2YW4gZHVuZyB2YW8gY2hvIGNvaSB0aHVvbmcgZHUgbHVhbiwgY29pIHRodW9uZyBuZ3VvaSAN CmRhbiAoa2hpZXUga2llbiB0YW5nIDE3JSBzbyB2b2kgY3VuZyBreSBuYW0gbmdvYWkpLCBzb25n IGNoZXQgbWFjIGJheSwgdGllbiBhaSBjdSBsYXkuDQoNCk1pZW4gVHJ1bmcgY3UgdmllYyAib2Fu IG1pbmggdHJvbmcgbHUiLCBjdSB2aWVjIGltIGxhbmcgbWEgZG9pIGtobyBzdW90IGRvaSwgYm9p IGRhIA0KbmdoZW8gbGFpIGNvbiBnYXAgZW8gdGhpIGtpZW0gZGF1IHJhIHRpZW4gZGUgYW4gY2hv aSwgbmhheSBtdWE/IFRvaSBuZ29pIHZpZXQgdmEgDQpjbyBjaG8geGVtIGRlbiBiYW8gZ2lvIHRo aSBjbyBtb3QgcXVhbiBjaHVjIG5hbyBkbyBiYXkgdG8sIGNoaWEgc2Ugbm9pIGtobyBjdWEgDQpt aWVuIFRydW5nLiBIeSB2b25nIGxhIHNlIGNvIHN1IGFuIHVpIHZhIHRybyBnaXVwIGhpZXUgcXVh LCB0aGF0IGxvbmcuLi4NCkguVi5UDQpIdWUsIDUuMTAuMjAxMA0KKExpbmsgZ29jOiBodHRwOi8v Ym94aXR2bi5ibG9nc3BvdC5jb20vMjAxMC8xMC9haS1raG8tY3Uta2hvLWFpLWNob2ktY3UtY2hv aS5odG1sKSANCg0KWSBraWVuIGJhbiBkb2M6DQoNClBodW9uZyBQcm86IA0KQ2h1bmcgdGEgdHUg aGFvIGNvIHRoYW5oIHBobyBjbyBraW5oLCAxMDAwIG5hbSB0dW9pLCBuaHVuZyBkdW9uZyBuaHUg dGh1YyB0ZSBkYW5nIA0KbGFtIGNobyBkYWkgbGUga3kgbmllbSAxMDAwIG5hbSB0dW9pIG5heSBj byBkYXkgbmh1bmcgZGlldSBwaGFpIHN1eSBuZ2hpLiBOZ3VvaSBuZ3VvaSBhbiANCnRoZW8sIG5o YSBuaGEgYW4gdGhlbyAxMDAwIG5hbSBUTC4gSGFuZyBsb2F0IGNvbmcgdHJpbmgsIGhhbmcgbG9h dCBkdSBhbiBtb2kgbm9pIGxlbiwgYW4gDQp0aGVvLCBjaGF5IGR1YSBkZSBreSBuaWVtIDEwMDAg bmFtIFRMLCBpdCBjb25nIHRyaW5oIHRodWMgc3UgaHV1IGljaCwgbmhpZXUgY2FpIHZvIGJvLCAg DQpjdWMga3kgbGFuZyBwaGkuIFRhdCBjYSB0YXAgdHJ1bmcgdmFvICJjb24gc28gMTAwMCI6IDEw MDAgY29uIHJvbmcsIDEwMDAgaGllbiB2YXQuLi4gDQoNClRhaSBzYW8ga2hvbmcgbGFtIG5odW5n IHZpZWMgY28gaWNoIGhvbjogeGF5IDEwMDAgbmdvaSB0cnVvbmcgbW9pIGNobyB0cmUgZW0gbmdo ZW8sIA0KMTAwMCBibyBtYXkgdGluaCBjaG8gdHJlIGVtIHZ1bmcgc2F1LCAxMDAwIGJlbmggdmll biwgMTAwMCB4dWF0IGhvYyBib25nIGNobyB0cmUgZW0gDQpuZ2hlbywgcGhhbiBkYXUgZHVhIHRo ZW0gMTAwMFRXIGRpZW4gbnVhIHZhbyBzdSBkdW5nLi4uIHNhbyBraG9uZyBsYW0gbmh1bmcgdmll YyBjbyANCmljaCBob24gbmh1IHZheS4gS2hvbmcgcGhhaSBsYSBkbyBuZ3VvaSB0YSBraG9uZyBi aWV0OyBuZ3VvaSB0YSBiaWV0IHRodWE7IG5odW5nIG5ldSANCmtob25nIGxhbSB0aGUgbmF5IHRo aSBsYW0gZ2kgY28gdGllbiwgbGFtIGdpIGNvIGNhaSBkZSBjYXQgeGVuLCBsYW0gZ2kgY28gdGll bmc7IFZOIHRoaWNoIA0KY2hvaSB0cm9pLCBraG9uZyB0aGljaCBzdSB0aGFtIGxhbmcuIA0KDQpU cm9uZyBraGkgeGEgaG9pIGNvbiBkYXkga2hvIGtoYW4sIHRyZSBlbSBwaGFpIGRpIGhvYyB0cnVv bmcgdGFtIGJvLCBzYWNoIHZvIHRoaWV1LCA5MCUgDQp0cmUgZW0gdnVuZyBudWkgY29uIGNodWEg YmlldCBtYXkgdmkgdGluaCwgZGVuIGRpZW4gY29uIGNoYSBkdSBkdW5nLCBudW9jIGNoYSBkdSB1 b25nLCANCmJlbmggdmllbiBjaGVuIGNodWMgYmVuaCBuaGFuLCBtYXkgbmd1b2kgbmFtIGNodW5n IG1vdCBnaXVvbmcsIGR1b25nIHhhIGdpYW8gdGhvbmcgDQpjb24gbmhpZXUga2hvIGtoYW4sIGRh dCBudW9jIHhlcCBnYW4gY3VvaSBiYW5nIHhlcCBoYW5nIHZlIGRvIGdpYXUgY28sIHZheSBtYSBj dSBsYW5nIA0KcGhpIHZhbyBuaHVuZyB2aWVjIHRoaWV1IHRoaWV0IHRodWMuIA0KDQpUYXQgY2Eg Y2h1bmcgdGEgY3VuZyBkb24geGVtIGhhdSAxMDAwIG5hbSBUaGFuZyBMb25nIHNlIGxhIGdpOyBu aHVuZyBjb25nIHRyaW5oIHNlIHJhIA0Kc2FvIHNhdSBEYWkgbGUuIFRhbSBuYXkgc2FuZyBuYW0g c2Ugcm8uIA0KDQpodHRwOi8vZGFubGFtYmFvLndvcmRwcmVzcy5jb20vMjAxMC8xMC8wNi9oYS1u JUUxJUJCJTk5aS10JUM2JUIwbmctYiVFMSVCQiVBQm5nLWwlRTElQkIlODUtaCVFMSVCQiU5OWkt bWklRTElQkIlODFuLXRydW5nLXRhbmctdGglQzYlQjAlQzYlQTFuZy8gZGFubGFtYmFvYmxvZyBQ b3N0ZWQgMDYvMTAvMjAxMCANCg0KSGEgTm9pIHR1bmcgYnVuZyBsZSBob2ksIG1pZW4gVHJ1bmcg dGFuZyB0aHVvbmcNCg0KTGUgaG9pIE5nYW4gbmFtIFRoYW5nIExvbmcgdmFuIGRpZW4gcmEgdHJv bmcga2hpIG1pZW4gVHJ1bmcgbXVhIHRyYW5nIHRyb2kgdmEgaXQgbmhhdCANCjMwIG5ndW9pIGRh IGNoZXQsIGhhbmcgbmdhbiBuZ3VvaSBraG9uZyBuaGEgY3VhIGRhbmcgY2hvIGN1dSBnaXVwLCBu aGEgbnVvYyBkYSBwaGFuIHVuZyByYSBzYW8gdHJ1b2MgdmFuIGRlIG5heT8gDQoNCihBbmg6IE11 YSBsdSBuZ2FwIG5oYSBvIFF1YW5nIEJpbmggaG9tIDA0IHRoYW5nIDEwIG5hbSAyMDEwLCBBRlAg cGhvdG8pIA0KDQpUaWV1IHRpZW4gdHkgdmFvIGxlIGhvaQ0KDQpEYSBtYXkgbmdheSB0cm9pIHF1 YSwgdHUga2hpIGxlIGhvaSBOZ2FuIG5hbSBUaGFuZyBMb25nIGtoYWkgbWFjLCBuZ3VvaSBkYW4g SGEgTm9pIA0KdmFuIHNvbmcgdHJvbmcga2hvbmcga2hpIGhvaSBoZSBjdWEgbmh1bmcgbmdheSBo b2kgbmdhbiBuYW0gY28gbW90LiBQaGFvIGhvYSwgZGlldSANCmhhbmgsIHZhbiBuZ2hlIGhvYW5o IHRyYW5nIGN1bmcgdm8gc28gdGh1IHZ1aSBraGFjIGRhbmcga2VvIEhhIE5vaSB2YW8ga2hvbmcg a2hpIA0KaG9pIGhlIGNodW5nIG5odSBraG9uZyB0aGUgbmFvIGR1dC4gTmd1b2kgZGFuIGxhIHRo ZSwgcGhpYSBjaGluaCBxdXllbiBjdW5nIGtob25nIA0Ka2hhYywgc2F1IG5oaWV1IG5nYXkgdGhh bmcgY2h1YW4gYmkgY2hvIHN1IGtpZW4gbG9uIGxhbyBuYXkgaGF1IG5odSBuaGFuIHZpZW4gdHJv bmcgDQpjYWMgY29uZyBzbyB0YWkgSGEgTm9pIGRhbmcgbmdoaSBkdW9uZyBzdWMgY2hvIHhlbSBu Z2F5IGJlIG1hYywgZHVvYyBiaWV0IHNlIGhvYW5oIA0KdHJhbmcgdmEgdG9uIGtlbSBuaGF0IHR1 IHRydW9jIHRvaSBuYXkuDQoNClRvbiBrZW0gYmFvIG5oaWV1IGN1bmcga2hvbmcgdGhhbmggdmFu IGRlIHZpIG5oaWV1IGR1IGFuIG5hbSB0cm9uZyBrZSBob2FjaCB4YSBob2kgDQpob2EuIERvYW5o IG5naGllcCBkb25nIGdvcCB2YW8gcmF0IG5oaWV1IGNvbmcgdHJpbmgga2UgY2EgY29uZyB0cmlu aCB2YW4gaG9hIG5odSANCmN1b24gcGhpbSAiTHkgQ29uZyBVYW4sIGR1b25nIHRvaSB0aGFuaCBU aGFuZyBMb25nIiBuaHUgbW9pIG5ndW9pIGRhIGJpZXQuIFJpZW5nIA0KbmhhIG51b2MsIHNvIHRp ZW4gYm8gcmEgY2hpbmggdGh1YyBjaHVhIGR1b2MgY29uZyBibyBuaHVuZyB0aGVvIG5oaWV1IGNo dXllbiBnaWEgDQpkYW5oIGdpYSB0aGkgY29uIHNvIGtob25nIGR1b2kgNCB0eSBkbyBsYS4gQm8g cmEgNCB0eSBkbyBsYSBkZSBsYW0ga3kgbmllbSBtb3QgZGlwIA0KbmdhbiBuYW0gbW9pIGNvIG1v dCBsYW4ga2hvbmcgcGhhaSBsYSBjaHV5ZW4gbG9uIGRvaSB2b2kgY2FjIHZpZW4gY2h1YyBjYW8g Y2FwIA0KY2hpbmggcGh1LCB0aGUgbmh1bmcgZGF1IGRvIHZhbiBjbyB0aWVuZyB0aG8gZGFpIGto aSBkb2kgc29uZyBuZ3VvaSBkYW4gbmdheSB0YWkgDQp0aHUgZG8gdmFuIGdpYXQgZ2F1IHZhIHZh aSwgbW9pIGJ1b2kgY2hvIGNoaSBkdW9jIHBoZXAgbXVhIGJvIHJhdSwgY29uIHRlcCBraG9uZyAN CnF1YSAyMCBuZ2FuIGRvbmcgdGhpIG5pZW0gdnVpIE5nYW4gbmFtIFRoYW5nIExvbmcgeGVtIHJh IGtobyBsb25nIHRyb24gdmVuLg0KDQpNYWMgZHUgZHUgbHVhbiB0cnVvYyBraGkgZGFpIGxlIGto YWkgbWFjIGRhIGNvIGxhbSBkaWV1IGNoZSB0cmFjaCwgdHUgY2h1eWVuIGxhbSANCnNhaSBuZ2F5 IGRvaSBkbyBkZW4gaGFpIHRoYW5nLCBsYWkgdHJ1bmcgdm9pIGxlIFF1b2Mga2hhbmggY3VhIFRy dW5nIFF1b2MgY2hvIGRlbiANCm5odW5nIGNvbmcgdHJpbmggZHVvYyB4ZW0gbGEgZGF1IHZvaSBk dW9pIGNodW90Li4uLnRvaSBjaHV5ZW4geGF5IGR1bmcgY29uZyBjaGFvIA0KTmdhbiBuYW0gVGhh bmcgTG9uZywgbmh1bmcgY3VvaSBjdW5nIHRoaSB0YXQgY2EgZGV1IGR1b2MgdGhvbmcgcXVhLiBE YWkgbGUgZHVvYyBraGFpIG1hYyBkdW5nIHRoZW8gZHUgZGluaC4gDQoNClR1eSBuaGllbiwgc2Fp IGxhbSBsb24gbmhhdCBjdWEgYmFuIHRvIGNodWMgTmdhbiBuYW0gVGhhbmcgTG9uZyBraG9uZyB0 aGUgc3VhIA0KY2h1YSBkdW9jIGxhIG5oYSBudW9jIGRhIHRvIGNodWMgZGFpIGxlIHRyb25nIG11 YSBiYW8gbHUgbWEga2hvbmcgY28gYmF0IGN1IGtlIA0KaG9hY2ggbmFvIGNoZSBkbyBraGkgY2h1 b25nIHRyaW5oIGRhaSBsZSB4YXkgcmEgdHJ1bmcgdm9pIG11YSBsdSBwaGEgaG9haS4gVHJvbmcg DQpraGkgdmFuIGRlIG11YSBnaW8gdGFpIEhhIE5vaSB0cm9uZyBuZ2F5IGRhaSBsZSBkdW9jIG5o YSBudW9jIHF1YW4gdGFtIGhldCBtdWMuIA0KQ28gY28gcXVhbiBkYSBkZSBuZ2hpIHRoYW5nIHRo dW5nIG5ldSBjYW4gc2UgYm8gcmEgMSB0eSBkbyBsYSBkZSBiYW4gbWF5IGNob25nIA0KbXVhIHRo aSBjdW5nIG5lbiBsYW0uIENodW5nIHF1eSBkbyBub2kgc28gaGFpIHRoYXQgYmFpIHZpIG11YSBn aW8gZGEgbGFtIGNobyBjYSANCmd1b25nIG1heSBuaGEgbnVvYyB0cm8gbmVuIGJvaSByb2ksIGto b25nIGFpIGNvIHRoZSBkb2FuIGNoYWMgSGEgTm9pIGNvIG11YSBoYXkgDQpraG9uZyB0dSBuZ2F5 IDEgZGVuIG5nYXkgMTAgdGhhbmcgMTAsIHRob2kgZ2lhbiAxMCBuZ2F5IHRvIGNodWMgZGFpIGxl Lg0KDQpDbyBtb3QgZGlldSBUcnVuZyB0YW0gS2hpIHR1b25nIFRodXkgdmFuIG5oYSBudW9jIGJp ZXQgY2hhYywgbGEgdHUgdGhhbmcgNSB0b2kgDQp0aGFuZyAxMiBoYW5nIG5hbSwgVmlldCBOYW0g Y2h1YSBjbyBuYW0gbmFvIGtob25nIGNvIGJhbyBsdS4gQmFvIGx1IHRhcCB0cnVuZyANCm5oaWV1 IHRhaSBtaWVuIFRydW5nIG5lbiBtaWVuIEJhYyBjaGkgbG8gbXVhIGdpbyBhbmggaHVvbmcuIENv IGxlIGRvIHRhbSBseSBjb2kgDQpxdWEgdHJvbmcgdGh1IGRvIGRhIGRhbiB0b2kgc3UgdmllYyBk byBraG9jIGRvIGN1b2kga2hpIG1heSBuZ2F5IHZ1YSBxdWEgbXVhIGx1IA0KZGEgdGFuIHBoYSBu aGlldSB0aW5oIG1pZW4gVHJ1bmcgdHJvbmcga2hpIEhhIE5vaSB2YW4gdm8gdHUgdnVpIG11bmcg YW4gdGhlbyBkYWkgbGUuDQoNCk11YSBsdSB0YW4gcGhhIG1pZW4gVHJ1bmcgICANCg0KKEFuaDog TW90IG5ob20gY3V1IGhvIHRyZW4gdGF1IGRhbmcgdGllcCBjYW4gbW90IGNhbiBuaGEgYmkgbmdh cCBvIHRpbmggUXVhbmcgQmluaCANCnZhbyBuZ2F5IDA1IFRoYW5nIDEwIG5hbSAyMDEwLiBBRlAg cGhvdG8pDQoNClRvbmcgaG9wIGNhYyBiYW8gZHVhIHRpbiB2ZSBtdWEgbHUgdGluaCBkZW4gbmdh eSA1IHRoYW5nIDEwIGNobyBiaWV0IGNvIGl0IG5oYXQgbGEgDQozMCBuZ3VvaSBjaGV0IHZhIGhh bmcgdHJhbSBuZ29pIGxhbmcgZGFuZyBiaSBkZSBkb2EgbmdoaWVtIHRyb25nIHZpIG11YSBsdSB0 aWVwIHR1YyB0YW4gcGhhLiANCg0KVGhlbyBiYW8gU0dUVCB0aGkgbmd1b2kgZGFuIHNvbmcgdHJv bmcga2h1IHZ1YyB0aHV5IGRpZW4gSG8gSG8gZGEgc29uZyB0cm9uZyBsbyBzbyANCnZpIG11YyBu dW9jIGRhbmcgY2FvIGNvIHRoZSB2byBkYXAgYmF0IGN1IGx1YyBuYW8uIEdhbiA0MDAgIGhvIGRh biB2b2kgaG9uIDIuMDAwIG5oYW4gDQpraGF1IHRhaSB4YSBIdW9uZyBIb2EsIHRpZXAgZ2lhcCB2 b2kgaHV5ZW4gSHVvbmcgS2hlLCBIYSBUaW5oLCBkYSBwaGFpIHNvIHRhbiBraGFuIA0KY2FwLiBU YWkgUXVhbmcgQmluaCBkYSBjbyAxMSBuZ3VvaSBjaGV0IHZpIG11YSBsdS4gIA0KDQpUYWkgTmdo ZSBBbiwgbXVhIGxvbiB4dWF0IGhpZW4gdHUgbmdheSAyOSB0aGFuZyA5IGRlbiBuYXkgdmFuIGNo dWEgY2hhbSBkdXQuIFRhaSANCmh1eWVuIFllbiBUaGFuaCwgY28gMyBuZ3VvaSBiaSBjaGV0IGRv IHNldCBkYW5oIHZhIGx1IGN1b24uIERhIGNvIGhhaSBob2Mgc2luaCB0YWkgaHV5ZW4gDQpEbyBM dW9uZyB2YSBEaWVuIENoYXUgYmkgbnVvYyBjdW9uIHRyb2kgdHJlbiBkdW9uZyBkZW4gdHJ1b25n IGhpZW4gY2h1YSB0aW0gdGhheSB4YWMuIA0KSGllbiBtdWMgbnVvYyBzb25nIExhbSBkYW5nIGxl biByYXQgbmhhbmggZG8gbnVvYyB0dSB0aHVvbmcgbmd1b24gZG8gdmUuIE1vdCBzbyB4YSANCm5h bSBvIGhhIGx1dSBzb25nIExhbSBjdW5nIGRhbmcgZG9pIG1hdCB2b2kgbmd1eSBjbyBudW9jIGx1 IHRhbiBjb25nLg0KDQpOZ3VvaSBkYSBjaGV0LCBtdWEgbWFuZyBkYSBiaSB0YW4gcGhhLCBuaGEg Y3VhIGRhIGJpIG51b2MgY3VvbiB0cm9pIHZhIGhhbmcgbmdhbiBuZ3VvaSANCmRhbiBkYW5nIGxh bSB0aGFuIGR1b2kgY29uIGxhbmggbGVvIGN1YSBtdWEgZ2lvIG1hIGtob25nIG5vaSB0cnUgdGhh bi4gRG9pIGtoYXQgZGFuZyANCmhvYW5oIGhhbmggY2EgbW90IGRheSBtaWVuIHRydW5nIHR1IEhh IFRpbmgsIFF1YW5nIEJpbmgsIFF1YW5nIFRyaSwgTmdoZSBBbiwgVGh1YSANClRoaWVuIEh1ZS4u Lg0KDQpEYWkgbGUgTmdhbiBuYW0gVGhhbmcgTG9uZyBybyByYW5nIGxhIGtob25nIHRoZSBkdW5n IGxhaSB2aSBub2kgZGF1IGN1YSBtaWVuIFRydW5nLCANCm5odW5nIG5hbiBuaGFuIGJhbyBsdXQg Y28gcXV5ZW4geWV1IGNhdSBzdSBxdWFuIHRhbSBjdWEgbmhhIG51b2MgdmEgeWV1IGNhdSBuYXkg aGV0IA0Kc3VjIGNoaW5oIGRhbmcuIFRyb25nIGtoaSBUaHUgdHVvbmcgY29uZyBkdSBob2kgbmdo aSBBU0VNLCBQaG8gVGh1IHR1b25nIHRodW9uZyANCnRydWMgTmd1eWVuIFNpbmggSHVuZyBsYSBu Z3VvaSBjaGl1IHRyYWNoIG5oaWVtIGNoaW5oIGNodSB0cmkgZGFpIGxlLCBseSByYSBkYSBsZW4g dGllbmcgdHUgDQpraGkgY29uIGx1IHh1YXQgaGllbiB2YW8gbmdheSBkYXUgdGllbi4gDQoNCihB bmg6IEJpZXUgZGllbiBjYWMgbmhhYyBjdSB0cnV5ZW4gdGhvbmcgdHJvbmcgYnVvaSBsZSBraGFp IG1hYyAiMTAwMCBuYW0gVGhhbmcgDQpMb25nIiBob20gMDEgdGhhbmcgMTAgbmFtIDIwMTAgdGFp IEhhIE5vaS4gQUZQIHBob3RvKQ0KDQpUdXkgbmhpZW4sIHRyZW4gcGh1b25nIHRpZW4gdHJ1eWVu IHRob25nIGNoaW5oIHRodWMgY2h1YSB0aGF5IG1vdCB2aWVuIGNodWMgbmhhIG51b2MgDQpuYW8g cGhhdCBuZ29uIHZlIG5pZW0gZGF1IGN1YSBsdXQgbG9pLCB0aGF5IHZhbyBkbyBuZ3VvaSBkYW4g dHJvbmcgdnVuZyBsdSBjaGkgbmdoZSANCnRydXllbiB0aG9uZyBuaGEgbnVvYyB0aGF5IG5oYXUg ZHVhIHRpbiB2ZSBsZSBob2kgTmdhbiBuYW0gVGhhbmcgTG9uZy4gQ2FuZyBuZ2hlIA0KeHVuZyB0 dW5nIG5odW5nIGhhbyBuaG9hbmcgYmUgbmdvYWkgdmV0IHRodW9uZyBjdWEgbmFuIG5oYW4gbHUg bHV0IGNodW5nIG5odSByYXQgYnVvdCANCnRoZW0gbmhpZXUgbGFuIHZhIG11YSBsdSBraG9uZyBs YW5oIGJhbmcgbm9pIGxhbmggbHVuZyB2byBjYW0gdHUgbmh1bmcgY28gcXVhbiB0cmFjaCANCm5o aWVtLiANCg0KTmd1b2kgZGFuIG1pZW4gTmFtIG5oaW4gdmUgcGh1b25nIEJhYyBraG9uZyBraG9p IG5nYW0gbmd1aSBraGkgbmhvIGxhaSBjYXUgIk1vdCANCmNvbiBuZ3VhIGRhdSBjYSB0YXUga2hv bmcgYW4gY28iLiBNaWVuIFRydW5nIHZvbiBuZ2hlbyB0dSBiYW8gZG9pIG5heSB2YSB2YW4ga2ll biB0cmkgDQpjaG8gZG9pIGJhbyBsdSAgaGFuZyBuYW0uIA0KDQpDbyBsZSBOZ2FuIG5hbSBUaGFu ZyBMb25nIHNlIHRyb24gdmVuIGhvbiBraGkgbmhhIG51b2MgdGhvbmcgYmFvIHJvbmcgcmFpIHRy ZW4gaGUgDQp0aG9uZyB0cnV5ZW4gdGhvbmcgZGFpIGNodW5nLCBjaGkgbW90IHZhaSBwaHV0IHRo b2ksIGNoaWEgc2Ugbm9pIGRhdSB0aHVvbmcgY3VhIG1pZW4gDQpUcnVuZyBydW90IHRoaXQsIGNv biBob24gY3UgdGllcCB0dWMgaW0gYW5nIGRlIGN1b2MgdnVpIG5nYW4gbmFtIGtob25nIGJpIGFu aCBodW9uZy4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9Ib21lL0JvbmdEYS9zZ3R0LnZuL1hp bi1tb3QtcGh1dC1jaG8tZG9uZy1iYW8tbWllbi1UcnVuZy1ydW90LXRoaXQvNDk5MDI4MC5lcGkg MTAuMTAuMjAxMCwgMTM6MjUgKEdNVCs3KSANCg0KSGEgTm9pOiBYaW4gbW90IHBodXQgY2hvIGRv bmcgYmFvIG1pZW4gVHJ1bmcgcnVvdCB0aGl0IQ0KDQpTR1RULlZOIC0gQ2hhbmcgdGhlIHZpIG1p ZW4gVHJ1bmcgdGFuZyB0aHVvbmcgZG8gbHUgbHV0IG1hIGR1bmcgdGF0IGNhIGNhYyBob2F0IGRv bmcgDQp2dWkgY2hvaSBnaWFpIHRyaSwgdmFuIGhvYSB0aGUgdGhhby4gTmh1bmcsIG1vdCBtb3Qg cGh1dCBtYWMgbmllbSBkZSBiaWV1IGxvIHN1IHNlIGNoaWEsIA0KYnUgZGFwIGtoaSBkb25nIGJh byBnYXAgaG9hbiBuYW4gbGEgdmllYyBuZW4gbGFtLg0KDQooQW5oOiBUb25nIHRodSBreSBMaWVu IGhpZXAgUXVvYyBCYW4gS2kgTW9vbiB0cm9uZyBsZSB0dW9uZyBuaWVtIGNhYyBuaGFuIHZpZW4g dG8gY2h1YyBuYXkgDQpiaSB0aGlldCBtYW5nIHRyb25nIHRyYW4gZG9uZyBkYXQgbyBIYWl0aSBB bmg6IEdldHR5IEltYWdlcykgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi90aW5uaGFuaC8y MDEwMTAvU3UtdGhhdC1oaWVuLXR1b25nLXJ1YS1Iby1HdW9tLW5vaS1kdW5nLW5nYXktZGFpLWxl LTkzOTc1Mi8gIE1pbmggSG8gMTM6MzMsIDA2LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IFN1 IHRoYXQgdmllYyBydWEgSG8gR3VvbSBub2kgLSBjaGF0IGx1b25nIG51b2MgaG8gZGFuZyB4dW9u ZyBjYXANCg0KTW9pIGRheSwgZHVuZyBob20ga2hhaSBtYWMgRGFpIGxlICgxLzEwKSwgbmd1b2kg ZGFuIGRvIHhvIGRpIHhlbSBjdSBSdWEgbm9pIG8gSG8gDQpHdW9tLiBUaW4gZG9uIGN1IFJ1YSBs aW5oIHRoaWVuZyBub2kgZHVuZyBuZ2F5IERhaSBsZSBkYSBsYW4gcm9uZyBuaGFuaCBjaG9uZy4g IA0KDQpOaHVuZyBuZ3VvaSBkYW4gbmhhbiB4ZXQgcmFuZyBuaHVuZyBsYW4gY3UgUnVhIG5vaSBs ZW4gdGh1b25nIGdhbiB2b2kgbW90IHN1IGtpZW4gDQp2YW4gaG9hLCBsaWNoIHN1IG5hbyBkby4g VHV5IG5oaWVuLCB0cmEgbG9pIHRyZW4gYmFvIGRpZW4gdHUgQmVlLm5ldC52biwgT25nIEhvYW5n IFZhbiANCkhhLCBjYW4gYm8gQ2h1b25nIHRyaW5oIEJhbyB0b24gUnVhIENoYXUgQSBjaG8gcmFu ZywgY2h1YSBjbyBiYW5nIGNodW5nIGtob2EgaG9jIA0KbmFvIHZlIHZpZWMgcnVhIEhvIEd1b20g bm9pIGxpZW4gcXVhbiBkZW4geWV1IHRvIHRhbSBsaW5oLiBWaWVjIHJ1YSBIbyBHdW9tIG5vaSB2 YW8gDQpuaHVuZyBuZ2F5IGxlIGxvbiBjaGkgbGEgc3UgdGluaCBjbywgbmdhdSBuaGllbi4NCg0K UnVhIGhvIGhhcCBiYW5nIHBob2ksIGNvIHRyYW8gZG9pIGtob25nIGtoaSBxdWEgZGEgbmh1bmcg aG8gaGFwIGJhbmcgcGhvaSBsYSBjaGluaC4gDQpSdWEgSG8gR3VvbSBsYSBtb3QgbG9haSBiYSBi YSBtYWkgbWVtLCB2aSB0aGUgY3VuZyBraG9uZyB0aGUgbmFtIG5nb2FpIHF1eSBsdWF0IHNpbmgg DQpob2MgbmF5LiANCg0KVGhlbyBuZ2hpZW4gY3V1IGN1YSBjYWMgY2FuIGJvIENodW9uZyB0cmlu aCBiYW8gdG9uIHJ1YSBDaGF1IEEsIFJ1YSBIbyBHdW9tIG5vaSANCmhhbiBsZW4gbWF0IG51b2Mg dm9pIHRob2kgZ2lhbiBrZW8gZGFpICgyLTMgZ2lvIGxpZW4gdHVjKSB0aHVvbmcgdmFvIG5odW5n IHRob2kgZGllbSBuaHUgDQpjaHVhbiBiaSBjbyBiYW8gaG9hYyBtdWEgdG8sIHNhdSBtb3QgZG90 IGxhbmgga2VvIGRhaSBtYSB0cm9pIGh1bmcgbmFuZy4uLiBNdWMgZGljaCBsYSANCmRlIHJ1YSBw aG9pIG5hbmcsIHRhbmcgbmhpZXQgZG8gY2hvIGNvIHRoZS4NCg0KVHJ1b2MgZG8sIG5hbSAyMDA3 IGN1IG5vaSA3MSBsYW4sIHRyb25nIGRvIHRoYW5nIGRhdSBuYW0gbW9pIGN1IG5vaSBkZW4gMTMg bGFuLiBWYSANCm5odSB0aGUsIGN1IFJ1YSBsaWVuIHRpZXAgbm9pIGxlbiB0cm9uZyBuaHVuZyBu Z2F5IHF1YSBsYSBkaWV1IGhldCBzdWMgYmluaCB0aHVvbmcuIA0KDQpWYSBzYXUgbmh1bmcgbGFu ICJjdSIgbm9pIGdhbiBkYXksIG5oaWV1IG5ndW9pIG5oYW4gdGhheSBjbyBxdWEgbmhpZXUgdmFu ZyB0YW8gbm9pIGRheSANCmRhYyB2YSBkZW4gcXVhbmggYmFtIHh1bmcgcXVhbmggImN1Ii4gRGll dSBuYXkgY2hvIHRoYXksIGNoYXQgbHVvbmcgbW9pIHRydW9uZyBzb25nIA0KY3VhICJjdSBSdWEi IGRhbmcgY28gdmFuIGRlLiBRdWFuIHNhdCBiYW5nIG1hdCB0aHVvbmcgY3VuZyBkZSBkYW5nIG5o YW4gdGhheSwgY2hhdCANCmx1b25nIG51b2MgaG8gR3VvbSBkYW5nIHh1b25nIGNhcC4gVmEgY3Vu ZyBjbyB0aGUsIGRvIHZpZWMgY2h1YW4gYmkgY2hvIGRhaSBsZSB2b2kgDQpkYW4gYW5oIHNhbmcg a2h1bmcga2hpZXAgY2hpZXUgdG9pIG1hdCBobyBsYW0gYW5oIGh1b25nIGRlbiBiYXUga2hvbmcg a2hpIGN1YSAiY3UiLg0KDQpWaSBydWEgaG8gR3VvbSBkdW9jIGdhbiB2b2kgdHJ1eWVuIHRodXll dCB2dWEgTGUgTG9pIHRyYSBndW9tIGJhdSwgbmVuIGR1b2MgdG9uIGxhIA0KbGluaCB2YXQuIEN1 bmcgdmkgbGUgZG8sIHR1IHRydW9jIGRlbiBuYXkgY2h1YSBjbyBtb3QgbGFuIGtoYW0gc3VjIGto b2UgY2hvICJjdSIsIGJvaSBkZSANCmJhdCBydWEga2hvbmcgZGUgZGFuZyB2ZSBtYXQgcXVhbiBs eSB2YSBjYSB0YW0gbGluaC4gTmdheSBjYSB2aWVjIHhhYyBkaW5oIEFETiBjdWEgDQoiY3UiIGN1 bmcgY2h1YSB0aGUgdGh1YyBoaWVuIGR1b2MgKHZpIG11b24geGV0IG5naGllbSBjYW4gcGhhaSBs YXkgbW90IHBoYW4gbmFvIGRvIA0KY3VhIGNvIHRoZSAiY3UiLiBDYWMgbmhhIGtob2EgaG9jIGNo byByYW5nLCAiY3UgUnVhIiwgbm9pIG5oaWV1IGxhbiBuaHUgdmF5IGxhIGRpZXUgaGV0IA0Kc3Vj IGJpbmggdGh1b25nLCBraG9uZyBsaWVuIHF1YW4gZGVuIHZhbiBkZSB0YW0gbGluaC4gRGlldSBx dWFuIHRyb25nIGJheSBnaW8gbmV1IA0KbXVvbiBiYW8gdmUgImN1IiBtb3QgY2FjaCBhbiB0b2Fu IHRoaSBuZW4gY2FpIHRhbyBtb2kgdHJ1b25nIG51b2Mgbm9pIGN1IHNvbmcuIA0KDQpodHRwOi8v d3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzcvMjAxMDA5MDYwOTI0MDQuYXNw eCAwNi8wOS8yMDEwIDk6MjQgDQogIA0KSGEgTm9pOiAnQ3UnIHJ1YSBIbyBHdW9tIGRpbmggbHVv aSBjYXUgY2h1bSAtIFRodW9uZyB0aWNoIGRheSBtaW5oISAgDQoNCmh0dHA6Ly90dWFudmlldG5h bS52aWV0bmFtbmV0LnZuLzIwMTEtMDEtMTAtYWktZHVvYy1naWFvLWJhby12ZS1jdS1ydWEta2hv bmctYWktY2EtIE1hYyBWYW4gVHJhbmcgMTEvMDEvMjAxMSAwNjowMCBHTVQrNyANCg0KQWkgZHVv YyBnaWFvIGJhbyB2ZSBDdSBSdWE6IEtob25nIGFpIGNhIQ0KDQpEYXQgbnVvYyBtaW5oIGxhIHRo ZSwgYmFvIG5oaWV1IGNodXllbiB4YXkgcmEgcm9pLCBraG9uZyBiaWV0IGFpIHBoYWkgY2hpdSB0 cmFjaCBuaGllbS4NCg0KQ28ga2lwIGN1dSBDdSBSdWEgSG8gR3VvbSBraG9uZz8NCg0KVHUga2hp IGRhaSwgYmFvIGR1YSB0aW4gdmEgbmh1bmcgaGluaCBhbmggZGFuZyB4dWF0IGhpZW4gbW90IGRh biBydWEgdGFpIGRvIGhvYW5oIGhhbmggDQpvIEhvIEd1b20sIGJpZXQgYmFvIG5ndW9pIGRhbiBs byBsYW5nLiBLaGkgeGVtIGhpbmggMiBjaHVtIGx1b2kgY2F1IG1hYyB0cmVuIHZhaSBDdSANClJ1 YSwgcm9pIGhpbmggYW5oIGNvbiBydWEgdGFpIGRvIGN1b2kgdHJlbiBsdW5nIEN1IFJ1YSwgdG9p IGNhbmcgaGV0IHN1YyBsby4gSG9tIHF1YSBkb2MgDQpiYWkgIlZhbiBob2EgVGh1IGRvIC0gdmFu IGhvYSBsdW4gKD8pIiBjdWEgTmd1eWVuIEh1dSBRdXksIHhlbSBjYW4gY2FuaCB2ZXQgdGh1b25n IA0KdmEgYW5oIG1hdCBjdWEgQ3UgUnVhIHRvaSBjYW5nIGtob25nIHRoZSBuYW8geWVuLg0KDQpU YWMgZ2lhIHZpZXQ6ICIuLi4gTmhpbiBhbmggQ3UgUnVhLCB4b3QgeGEgY2hvIEN1LCB2aSBDdSBr aG9uZyBjbyB0YXkgZGUgbmFtIG5nYXkgbWEgDQpkYXAgY2hvIGRlbiBjaGV0IG5odW5nIGtlIG5n YXkgbmdheSBuZ29pIHRyZW4gbHVuZyBjdSwgZGUgcm9pICJhbiIgQ3UgY2hvIGRlbiBubyBuZSAN Cig/ISkuIEhvYWMgQ3Uga2hvbmcgY2F0IGxlbiB0aGFuaCB0aWVuZywgZGUgbm9pIHJhbmcsIGx1 IENPTiBOR1VPSSB0aGFtIGxhbSwgbmd1IGRvdCANCmtpYSBvaSwgY2h1bmcgYmF5IGRhIGhldCBj YWNoIGRlIGdpdSBsYXkgY2FpIG5vaSBtYSBib24gYmF5IGx1b24gbHVvbiBobyBoYW8gbGEgbGlu aCANCnRoaWVuZyBiYWMgbmhhdCBjdWEgbnVvYyBOYW0gbmF5IG51YSByb2kgc2FvPyEiLi4uDQoN ClRvaSBjdW5nIGhvYW4gdG9hbiBjbyBjYW0gbmhhbiBkdW5nIG5odSB0aGUuIE1vaSBsYW4gQ3Ug UnVhIG5vaSBsZW4sIGNhYyBuaGEga2hvYSBob2MgDQpkdXkgdmF0IGNvIGdpYWkgdGhpY2ggcmFu ZyBkbyBsYSBkbyB0aG9pIHRpZXQgdGhheSBkb2kuLi4gTnVvYyB0aGlldSBvLXh5LCBDdSBub2kg bGVuIGRlIHRoby4gDQpOaHVuZyByYXQgbmhpZXUgbmd1b2kgZGFuIGRldSB0aW4gcmFuZyBtb2kg bGFuIEN1IHh1YXQgaGllbiBkZXUgY28geSBiYW8gaGlldSBtb3QgZGlldSANCmdpIGRvLg0KDQpN b3QgY2h1IGJhY2ggdHVvYyBQYXVsIG5vbiB0cmUgInRhbSB0aHVvbmciIGNvbiBkdSBiYW8gZHVu ZyBrZXQgcXVhIHRhdCBjYSBjYWMgdHJhbiBkYXUgDQpjdWEgZG9pIHR1eWVuIGJvbmcgZGEgRHVj IG8gZ2lhaSB2byBkaWNoIENoYXUgQXUgbXVhIGhlIG5hbSAyMDEwLCBsYW0gY2EgdGhlIGdpb2kg DQpraGFtIHBodWMuIENoYW5nIGxlIEN1IFJ1YSBsaW5oIHRoaWVuZyBzb25nIG1heSB0cmFtIG5h bSB2b2kgdHJ1eWVuIHRodXlldCBIbyBHdW9tIA0KaHV5ZW4gdGhvYWkgbmh1IHZheSwgbmh1bmcg bGFuIHh1YXQgaGllbiBsYWkga2hvbmcgbGFtIGNodW5nIHRhIGxpbmggY2FtIHZlIG1vdCBkaWV1 IA0KbGluaCB1bmcgZ2kgZG8gc2FvPw0KDQpJdCByYSBsYW4geHVhdCBoaWVuIG5heSBjdWEgQ3Ug Y3VuZyB0cnV5ZW4gZGkgdGhvbmcgZGllcCBuaHUgY3VhIHRhYyBnaWEgTmd1eWVuIEh1dSANClF1 eSBkYSBjYW0gbmhhbiwgZGEgcGhhaSB0aG90IGxlbiBsbyBzbywgZGF1IGRvbiwgdmEgZHVvYyBu aGlldSBuZ3VvaSBjdW5nIGNoaWEgc2UuIA0KSGluaCBhbmggdmV0IHRodW9uZyBsbyBsb2V0IHZh IGNvbiBydWEgdGFpIGRvIGN1b2kgbGVuIGx1bmcgQ3UgY3UgYW0gYW5oIHRvaSBraG9uIG5ndW9p Lg0KDQooQW5oOiBDaGFuZyBsZSBDdSBSdWEgbGluaCB0aGllbmcgc29uZyBtYXkgdHJhbSBuYW0g dm9pIHRydXllbiB0aHV5ZXQgSG8gR3VvbSANCmh1eWVuIHRob2FpIG5odSB2YXksIG5odW5nIGxh biB4dWF0IGhpZW4gbGFpIGtob25nIGxhbSBjaHVuZyB0YSBsaW5oIGNhbSB2ZSBtb3QgZGlldSAN CmxpbmggdW5nIGdpIGRvIHNhbz8pIA0KDQpUb2kgbmhvIGRlbiBjYW5oIG5odW5nIGNvbiB2b2kg a2hvbmcgbG8gbyBDaGF1IFBoaSBiaSBtb3QgYmF5IHN1IHR1IGJhbyB2YXksIHF1YW4gY2hvIA0K bWV0IHZhIGNodW5nIHh1bSBsYWksIGNvbiB0aGkgbmhheSBsZW4gbHVuZywgY2FjIGNvbiBraGFj IHRoaSBrZW8gZHVvaSwga2VvIHZvaS4uLiBDaHVuZyANCmNhbywgY2FuIHZhbyBuaHVuZyBjaG8g bWVtIHlldSBuaGF0IGxhIGJvIHBoYW4gc2luaCBkdWMsIGhhdSBtb24uLi4gbGFtIGNvbiB2b2kg Z2lheSANCmdpdWEgdHJvbmcgZGF1IGRvbiB2YSBraWV0IHN1YyBndWMgbmdhIGRlIGJvbiBzdSB0 dSB0aGEgaG8gYW4gdGhpdC4gVHJvaSBvaSEgQ2FuaCB0dW9uZyANCm1vdCBiYXkgYWMgdGh1IHJ1 YSB0YWkgZG8gYmFvIHZheSwgYW4gdGhpdCBDdSBSdWEgY3VhIGNodW5nIHRhIGNvIHhheSByYSB0 dW9uZyB0dSBraG9uZz8NCg0KTGlldSBjYWMgYmllbiBwaGFwIGJhdCBydWEgdGFpIGRvIG1hIFNv IEtob2EgaG9jIENvbmcgbmdoZSBIYSBOb2kgY29uIGRhbmcgZGVuaCANCmRhbmcgbmdoaWVuIGN1 dSwgdGh1IG5naGllbS4uLiBjbyBraXAgY3V1IEN1IFJ1YSBraG9uZz8gTm9pIGRhaSBuZXUgY2Fj IGJpZW4gcGhhcCBnaWFpIA0KY3V1IGtob25nIGtpcCwgZGUgeGF5IHJhIG1lbmggaGUgbmFvIGNo byBDdSB0aGkgYWkgY2hpdSB0cmFjaCBuaGllbSBkYXk/IFZhIGtoaSBkYSB4YXkgDQpyYSByb2ks IHF1eSBrZXQgdHJhY2ggbmhpZW0gY29uIGN1dSB2b3QgZHVvYyBnaSE/IFRoYXQgZGFuZyBsbyBs YW5nIHZhIHNvIGhhaSB4aWV0IGJhbyENCg0KKEFuaDogVGhlbyBQR1MgSGEgRGluaCBEdWMgdGhp IHRyb25nIEhvIEd1b20gY2hpIGNvbiBsYWkgMSBDdSBSdWEgZHV5IG5oYXQsIGRhIHNvbmcgNzAw IG5hbSByb2kuIA0KTGlldSB0dW9pIGNhbywgc3VjIHlldSBuaHUgdmF5LCB0cnVvYyBzdSB0YW4g Y29uZyBuZ2F5IGRlbSBjdWEgbHUgYWMgdGh1IHJ1YSB0YWkgZG8gbmdvYWkgbGFpLCANCkN1IGNv IGNhbSBjdSBkdW9jIGRlbiBuZ2F5IFNvIEtob2EgaG9jIENvbmcgbmdoZSBIYSBOb2kgbmdoaWVu IGN1dSB4b25nIGJpZW4gcGhhcCBnaWFpIGN1dS4NClRoZSBsYSB0cm9uZyB0aG9pIGRhaSBuYXks IGl0IG5oYXQgMiBDdSBSdWEgSG8gR3VvbSBsaW5oIHRoaWVuZyBkYSBiaSBjaGluaCBjaHVuZyB0 YSBnaWV0IA0KY2hldCB2YSBDdSBjb24gbGFpIGN1bmcgYmkgYmF5IGFjIHRodSBkbyBjaGluaCBj aHVuZyB0YSBydW9jIHZlLCB0aGEgeHVvbmcgZGUgZ2lldCBub3Qgbmh1bmcgZ2kgY29uIGxhaSBj dWEgSG8gR3VvbS4pIA0KDQpUb2kgY29uIG5obyB0dSBob2kgdGhhbmcgOC8yMDEwLCBraGkgZ2Fw IFBHUyBIYSBEaW5oIER1YywgbW90IGNodXllbiBnaWEgbmdoaWVuIGN1dSANCnZlIEhvIEd1b20s IGFuaCBjaG8geGVtIHRhbSBhbmggY28gMiBjaHVtIGx1b2kgY2F1IG1vYyB0cmVuIGx1bmcgQ3Ug UnVhIHZhIHJhdCBsbyANCmxhbmcuIFRvaSBob2kgIkFpIGR1b2MgZ2lhbyBiYW8gdmUgQ3UgUnVh PyIuIEFuaCBiYW8gIktob25nIGFpIGNhLCBraWVuIG5naGkgbWFpIHJvaSEiLiANCkRhdCBudW9j IG1pbmggbGEgdGhlLCBiYW8gbmhpZXUgY2h1eWVuIHhheSByYSByb2ksIGtob25nIGJpZXQgYWkg cGhhaSBjaGl1IHRyYWNoIG5oaWVtLg0KDQpUaGFuZyA0IG5hbSAxOTY4LCBtb3QgQ3UgUnVhIEhv IEd1b20gY3VuZyBub2kgbGVuIGtldSBjdXUuIE5ndW9pIHRhIHRoYXkgdHJlbiBsdW5nIA0KQ3Ug YmkgbW90IHZldCB0aHVvbmcgbmFuZywgZGFuZyByaSBtYXUuIFRpbiBsb2FuIGJhbyBkaS4gQ28g bmd1b2kgcXV5IG5nYXkgY2hvIG1hbmggDQpib20sIGRhbiBNeSBvYW5oIHRhYyBIYSBOb2kgdHJ1 b2MgZG8gMiBuZ2F5IGRhIGxhbSBDdSBiaSB0cm9uZyB0aHVvbmcuDQoNCk5odW5nIG5ndW9uIHRp biB0dSBkYW4gY2hvIGJpZXQ6IENvIGtlIHRlbiBsYSBUaHUgZGFuaCBjYSB0aHVlIGNobyBDb25n IHR5IFRodWMgcGhhbSANCnF1b2MgZG9hbmggSGEgTm9pLCB0cm9uZyBraGkga2VvIGx1b2kgYmkg Q3UgUnVhIGNhbiB0cm8gbmVuIGRhIGR1bmcgeGEgYmVuZyBkYW0gDQptYW5oLCB4dXllbiBxdWEg bG9wIG1haSBtZW0sIGNhbSB2YW8gcGhvaS4uLiBDYWMgZ2lhaSBwaGFwIGN1dSBjaHVhIGRhIGto b25nIHRoYW5oLiANCkN1IG1hdCB2YW8gbmdheSAwOC80LzE5NjguIChOYXkgeGFjIHVvcCBkdW9j IGRlIHRhaSBkZW4gTmdvYyBTb24pLiBDb25nIGFuIHZhbyBjdW9jLiBLZSB0aHUgYWMgZGEgdHJv biBiaWV0IHZhIGRlbiBuYXkgdmFuIG1hdCB0YW0hPyBUaGUgbGEgY2hhbmcgYWkgY2hpdSB0cmFj aCBuaGllbS4gDQoNClRodWMgcmEgdGhpIHRydW9jIGRvIG1vdCBDdSBSdWEga2hhYyBjdW5nIGRh IGJpIG1vdCB2ZXQgdGh1b25nIG5hbmcsIGNoZXQgbm9pIGxlbiwgDQpuZ3VvaSB0YSB2b3QgeGFj LCBsYXkgYm8geHVvbmcgQ3UgYmFvIHF1YW4gdGFpIGNodWEgSHVuZyBLeSAoUS4gSG9hbmcgTWFp LSBIYSBOb2kpIA0KdmEgY3VuZyBjaGFuZyBkaWV1IHRyYSBrZSB0aHUgYWMsIGNoYW5nIGFpIGNo aXUgdHJhY2ggbmhpZW0uIFNhdSBuaHVuZyBzdSB2aWVjIG5odSB2YXkgDQpuYXkgY3VuZyBraG9u ZyBnaWFvIGNobyBhaSBjbyB0cmFjaCBuaGllbSBiYW8gdmUgQ3UgUnVhIGNvbiBsYWksIGxpZXUg Y28gdGhlIG5vaSBnaSBudWEgZGF5Pw0KDQpUaG9uZyBkaWVwIGNheSBkYW5nLCB0dXlldCB2b25n IGN1YSBDdSBSdWENCg0KVGFpIHNhbyBuaHVuZyBjb24gdmF0IG8gc28gdGh1IHRoaSBjbyBuZ3Vv aSBiYW8gdmUgbmdheSBkZW0sIG5ndW9pIGNoYW0gc29jIG51b2kgDQpkdW9uZywgY28gYmFjIHNp IHRoZW8gZG9pIGJlbmggdGF0LCBtYSBDdSBSdWEgdGhpIGtob25nLiBIYXkgdmkgbyBzbyB0aHUg bmd1b2kgdGEgY28gYmFuIA0KdmUgdGh1IHRpZW4sIGNvbiBIbyBHdW9tIHRoaSBraG9uZz8gTWEg bmdheSBkYW4gY2hpbSBibyBjYXUgdGhhIGxlbiB0cm9pIG5oYW4gRGFpIGxlIA0KMTAwMCBuYW0g VGhhbmcgTG9uZy0gSGEgTm9pLCBkdW9jIG51b2kgaGFuIGhvaSB0aGkgY3VuZyBkYW5nIGNoZXQg ZGFuIGNoZXQgbW9uIHZvaSANCm5oaWV1IGx5IGRvLiBNYSBseSBkbyBuYW8gY3VuZyBjbyB2ZSBj byBseSBjYT8NCg0KVGhlbyBQR1MgSGEgRGluaCBEdWMgdGhpIHRyb25nIEhvIEd1b20gY2hpIGNv biBsYWkgMSBDdSBSdWEgZHV5IG5oYXQsIGRhIHNvbmcgNzAwIA0KbmFtIHJvaS4gTGlldSB0dW9p IGNhbywgc3VjIHlldSBuaHUgdmF5LCB0cnVvYyBzdSB0YW4gY29uZyBuZ2F5IGRlbSBjdWEgbHUg YWMgdGh1IHJ1YSB0YWkgDQpkbyBuZ29haSBsYWksIEN1IGNvIGNhbSBjdSBkdW9jIGRlbiBuZ2F5 IFNvIEtob2EgaG9jIENvbmcgbmdoZSBIYSBOb2kgbmdoaWVuIGN1dSANCnhvbmcgYmllbiBwaGFw IGdpYWkgY3V1Lg0KDQpUaGUgbGEgdHJvbmcgdGhvaSBkYWkgbmF5LCBpdCBuaGF0IDIgQ3UgUnVh IEhvIEd1b20gbGluaCB0aGllbmcgZGEgYmkgY2hpbmggY2h1bmcgdGEgZ2lldCANCmNoZXQgdmEg Q3UgY29uIGxhaSBjdW5nIGJpIGJheSBhYyB0aHUgZG8gY2hpbmggY2h1bmcgdGEgcnVvYyB2ZSwg dGhhIHh1b25nIGRlIGdpZXQgbm90IA0Kbmh1bmcgZ2kgY29uIGxhaSBjdWEgSG8gR3VvbS4NCg0K Q2FuaCB0dW9uZyBDdSBSdWEsIGJhdSB2YXQgY3VhIEhvIEd1b20gbGluaCB0aGllbmcsIG5vaSAi bGFuZyBob24gbnVpIHNvbmcgbmdhbiANCm5hbSIsIGRhbmcgYmkgYmF5IGFjIHRodSBydWEgdGFp IGRvIG5nb2FpIGxhaSBuZ2FuZyBuaGllbiB0YW4gcGhhLCBub2kgbGVuIGRpZXUgZ2kgY3VhIA0K bmhhbiB0aW5oIHRoZSB0aGFpIGhvbSBuYXkuIERvIGNoYW5nIHBoYWkgbGEgdGhvbmcgZGllcCBj YXkgZGFuZywgdHV5ZXQgdm9uZyAoaHkgdm9uZyANCmNodWEgcGhhaSBjdW9pIGN1bmcpIG1hIEN1 IFJ1YSBtdW9uIG5vaSB2b2kgbmh1bmcgQ09OIE5HVU9JIHZvIGNhbSBjaHVuZyB0YSBob20gbmF5 IGtob25nPw0KDQotLS0tLSANCmh0dHA6Ly90dWFudmlldG5hbS52aWV0bmFtbmV0LnZuLzIwMTAt MTAtMTItaG9hbmctdGhhbmgtZ2ktbWEtY2hpLXRoYXktZGF0LXRyb25nLSBLaGFuaCBMaW5oICAx My8xMC8yMDEwIDA2OjAwIEdNVCs3IA0KDQpIYSBOb2k6ICJIb2FuZyB0aGFuaCBnaSBtYSBjaGkg dGhheSBkYXQgdHJvbmc/IiCWIExvIG1vdCBkaXAgY2hhbiBodW5nIGRhbiBraGkNCg0KTmV1IGxh bSBkdW9jIGRpZXUgZG8sIHRpbmggdGhhbiBjdWEgbW9pIG5ndW9pIFZpZXQgTmFtIGtoaSBkZW4g dm9pIEtodSB0cnVuZyB0YW0gSG9hbmcgDQp0aGFuaCBUaGFuZyBMb25nIGNoYWMgY2hhbiBzZSBs ZW4gcmF0IGNhbywgaG8gc2Ugbmh1IGR1b2MgdGllcCB0aGVtIHN1YyBtYW5oIGJvaSBjYSANCjEw MDAgbmFtIGxpY2ggc3UuIE5odW5nIHRpZWMgdGhheSwgY2h1bmcgdGEgZGEgdm9pIGNoYXkgdGhl byBzbyBsdW9uZyBjYWMgY2h1b25nIHRyaW5oLCANCnN1IGtpZW4sIG5lbiBibyBxdWVuIG1vdCBj byBob2kgdHV5ZXQgdm9pLCBjbyBob2kgbmdhbiBuYW0gY28gbW90IGRlIGNoYW4gaHVuZyBkYW4g a2hpLg0KDQoqIERhaSBsZTogTmd1b2kgYm8gaG9pIHRhaSwgbmd1b2kgaHV0IGhhbmcNCg0KRGF1 IHNvbiBuZ29pIHNhbmcgdHJvbmcgRGFpIGxlDQoNCkR1IGNodWEgdGhhdCBzdSBsYSBkYWkgbGUg Y3VhIGxpY2ggc3UsIHZhbiBob2EsIGN1YSBuaHVuZyBjb24gZGFuIGRhdCBWaWV0IG5odSBtb25n IHVvYywgDQpuaHVuZyBkaWV1IGNvbiBsYWkga2hpIDEwIG5nYXkgRGFpIGxlIDEwMDAgbmFtIFRo YW5nIExvbmcgLSBIYSBOb2kgcXVhIGRpIGNoaW5oIGxhOiANCmd1b25nIG1hdCB2YW4gaG9hIGN1 YSB0aGFuaCBwaG8gSGEgTm9pIHF1YSB0aHVjIGRlcCBob24sIG5obyBzdSBoaWVuIGRpZW4gY3Vh IEtodSBkaSANCnRpY2ggdHJ1bmcgdGFtIEhvYW5nIHRoYW5oIFRoYW5nIExvbmcuDQoNClZvaSBy YXQgbmhpZXUgbmd1b2ksIGRpIHNhbiB2YW4gaG9hIHRoZSBnaW9pIHZ1YSBkdW9jIGNvbmcgbmhh biB2YW8gbmdheSAxLzgvMjAxMCBuYXkgDQpjaGluaCBsYSBkaWVtIG5oYW4gcXVhbiB0cm9uZyBu aGF0IGN1YSBEYWkgbGUgMTAwMCBuYW0gVGhhbmcgTG9uZy4gR2lvIGRheSwgZGUgZ2lvaSB0aGll dSANCnZvaSBiYW4gYmUgdHJvbmcgdmEgbmdvYWkgbnVvYyB2ZSBsaWNoIHN1IGxhdSBkb2kgY3Vh IFRoYW5nIExvbmcgLSBIYSBOb2ksIGNoaSBjYW4gZHVhIA0KaG8gZGVuIHRoYW0gcXVhbiBraHUg ZHUgdGljaCwgZGUgaG8gdGFuIG1hdCBuaGluIG5odW5nIGRhdSB0aWNoIGN1YSBraW5oIHRoYW5o IGNvIHh1YSBxdWEgbmhpZXUgdGhvaSBreS4NCg0KVGFuIGh1b25nIG5pZW0gdnVpIGhvbSBuYXks IG5obyBsYWkgbmh1bmcgbmFtIHRoYW5nIHRoYW5nIHRyYW0gY3VhIGtodSBkaSB0aWNoIHR1IGto aSANCmR1b2MgcGhhdCBoaWVuIHZvaSBkYXkgYXAgbmh1bmcgIm5nbyB2dWMiIHRvaSBuZ2F5IGto YW5nIGRpbmggZHVvYyBnaWEgdHJpOyBuaG8gbGFpIA0Kbmh1bmcgdGhvaSBkaWVtIGtobyBraGFu IGtoaSBjYWMgbmhhIGtob2EgaG9jIHBoYWkgbm8gbHVjIGhldCBtaW5oIGRlIGdpdSBsYWkgdHVu ZyBtZXQgDQp2dW9uZyBkYXQgY3VhIGtodSBkaSB0aWNoOyBuaG8gbGFpIG5odW5nIG5nYXkgY2hh eSBkdWEgdm9pIHRob2kgZ2lhbiBkZSBraXAgbGFtIGhvIHNvIA0KdnVhIGR1bmcgaGVuIHRob2kg Z2lhbiwgdnVhIGRhdCBjaGF0IGx1b25nLiBUYXQgY2EgZGV1IGNhbmcgc3VjICJjaGllbiBkYXUi IHZvaSBtb25nIG1vaSANCktodSBkaSB0aWNoIHBoYWkgZHVvYyBjb25nIG5oYW4gZHVuZyBkaXAg RGFpIGxlIDEwMDAgbmFtIFRoYW5nIExvbmcgLSBIYSBOb2ksIGxhICJ0YW5nIA0KcGhhbSBjbyBn aWEgdHJpIHZhIHkgbmdoaWEgbG9uIGxhbyBraW5oIGRhbmcgRGFpIGxlIiB2YSBuaHUgbG9pIEdT IFBoYW4gSHV5IExlOiBjdW5nIA0KbGEgY28gaG9pIGRlIGhhdSB0aGUgYmF5IHRvIG5pZW0ga2lu aCB0cm9uZyB2b2kgY2FjIGJhYyB0aWVuIG5oYW4gZGEgZGF5IGNvbmcgZ2F5IGR1bmcgDQp2YSBn aW4gZ2l1IGtpbmggdGhhbmggVGhhbmcgTG9uZyBzdW90IG5oaWV1IHRoZSBreS4NCg0KDQpOaHVu ZyB0dSBtb3QgZ29jIG5oaW4ga2hhYywgY2hpbmggbmhvIERhaSBsZSAxMDAwIG5hbSBUaGFuZyBM b25nIC0gSGEgTm9pIG1hIEtodSB0cnVuZyANCnRhbSBIVFRMIG5oYW4gZHVvYyBzdSBxdWFuIHRh bSBzYXUgc2FjIGN1YSBjYSB0cnVuZyB1b25nIHZhIEhhIE5vaS4gQm9pIG5ldSB0aGlldSB5IGNo aSANCmNoaW5oIHRyaSBjdWEgY2FjIGxhbmggZGFvIHRoaSBkdSBjYWMgbmhhIGtob2EgaG9jIGNv IHRhbSBodXlldCBkZW4gZGF1LCBjdW5nIGtobyBtYSANCmNvIGR1b2Mga2h1IERpIHNhbiB0aGUg Z2lvaSBIb2FuZyB0aGFuaCBUaGFuZyBMb25nIG1vIGN1YSBkdW5nIGRpcCBEYWkgbGUgZGUgZG9u ZyBiYW8gDQpjYSBudW9jIHZhIGJhbiBiZSBxdW9jIHRlIHRpbSB2ZSB2b2kgbmh1bmcgZGF1IHRp Y2ggMTAwMCBuYW0uIA0KDQpDbyBob2kgZG9pIHRob2FpIHZvaSBsaWNoIHN1DQoNCk1vIGN1YSBz YW5nIDIvMTAsIHN1b3QgOSBuZ2F5IGRhaSBsZSwgS2h1IGRpIHRpY2ggZGEgZG9uIG1vdCBsdW9u ZyBraGFjaCB0aGFtIHF1YW4gDQpraG9uZyBsbywgdnVvdCBxdWEgbW9pIGR1IHRpbmguIE1vaSBu Z2F5LCB2YWkgdmFuIG5ndW9pIHRpZXAgbm9pIG5oYXUgdmFvIHRoYW0ga2h1IGRpIA0KdGljaCB0 dSBzYW5nIHNvbSBkZW4gdGFuIGdpbyBkb25nIGN1YS4gQ2Ega2h1IGRpIHRpY2ggcm9uZyB0b2kg aG9uIGNodWMgaGVjdGEsIG5odW5nIGRhdSANCmRhdSBjdW5nIHRyYW4gbmdhcCBuZ3VvaSwgdHUg RG9hbiBNb24sIERpZW4gS2luaCBUaGllbiBkZW4gSGF1IExhdSwgdHUgcGhvbmcgdHJ1bmcgDQpi YXkgTGljaCBzdSBuZ2hpbiBuYW0gdHUgbG9uZyBkYXQgZGVuIGtodSBkaSB0aWNoIGtoYW8gY28g aG9jIDE4IEhvYW5nIERpZXUuDQoNClJpZW5nIHBoYW4gZGkgdGljaCBiZW4gMTggSG9hbmcgRGll dSwgZHUgbGEgdGFtIGRpZW0gY3VhIHN1IGNodSB5IHZpIGxhbiBkYXUgdGllbiBkdW9jIA0KbW8g Y3VhLCBuaHVuZyBsdW9uIHBoYWkgImtob25nIGNoZSIgbHVvbmcgbmd1b2kgdmFvIHRhaSBtb2kg dGhvaSBkaWVtLCBib2kgZGkgdGljaCANCmtoYW8gY28gaG9jIHF1YSBtb25nIG1hbmgsIGRlIGJp IHRhYyBkb25nLCBuZW4gcGhhaSBzYXAgeGVwIGRlIG1vaSBuZ3VvaSBkYSB2YW8gdHJvbmcgDQpw aGFpIGNvIGR1IHRob2kgZ2lhbiBkaSBtb3Qgdm9uZyBkaSB0aWNoIHRyZW4gbG8gdHJpbmggbmhh dCBkaW5oLiBWYXkgbGEgbmhpZXUgZHUga2hhY2ggc2F1IA0Ka2hpIHRoYW0gcXVhbiB4b25nIGNh YyBkaSB0aWNoIHRyZW4gbWF0IGRhdCB2YSBwaG9uZyB0cnVuZyBiYXkgaGllbiB2YXQgKHBoaWEg YmVuIFRoYW5oIA0KY28gSGEgTm9pKSwgZGEgY2hhcCBuaGFuIGR1bmcgeGVwIGhhbmcgbmdvYWkg Y29uZyAxOCBIb2FuZyBEaWV1LCBkZSBjaG8gZGVuIGx1b3QgDQptaW5oIHZhbyB4ZW0gdGFuIG1h dCBjYWMgZGF1IHRpY2ggdGhhbmggcXVhY2guDQoNCkNvIG1hdCB0YWkgSG9hbmcgdGhhbmggbmh1 bmcgbmdheSBkYWkgbGUsIGJhdCBuZ28gYmF0IGdhcCBuaHVuZyBibyB0cmFuZyBwaHVjIGRhbiB0 b2MgDQpjdWEgbmh1bmcgY3UgYmEgbHVuZyBkYSBjb25nLCBnb2kgZGEgbW9pLCBuaHVuZyB2YW4g bmhhdCBxdXlldCBuaG8gbmd1b2kgbmhhIGRhdCB0YXkgDQpkZSBsZW8gYmFuZyBkdW9jIGxlbiBE b2FuIE1vbi4gSG9pIHJhIG1vaSBiaWV0IGN1IHR1IFNvbiBMYSB4dW9uZyBIYSBOb2kgY2hpIGRl IG1vdCANCmxhbiB0YW4gbWF0IG5oaW4gdGhheSBjYWMgZGF1IHRpY2ggY3VhIEhvYW5nIHRoYW5o LCBjaHUgImtob25nIGxlIGNoaSBuaGluIHRyZW4gdGl2aSBoYSANCmNoYXUiPw0KDQpDYW5oIGJh IGRhdCBjaGF1IHZhbyB0aGFtIEhvYW5nIHRoYW5oLCBjaGF1IHRodSB0aGkgZG9jIGJhIG5naGUg bmh1bmcgbG9pIGdpb2kgdGhpZXUgdmUgDQp0dW5nIHRob2kgZGFpOyBjYW5oIGN1IG9uZyB2YSBj dSBiYSBjdW5nIHZhbyB0aGFtIGtodSBkaSB0aWNoLCBjdSBvbmcgImNhbSBjdWkiIHF1YXkgDQpw aGltICJkZSB2ZSBuaGEgeGVtIGxhaSBjaG8ga3ksIGNodSBvIGRheSBkb25nIHF1YSBjaGF1IGEi IGtoaWVuIG5ndW9pIHZpZXQgYmFpIGtob25nIA0Ka2hvaSB4dWMgZG9uZy4NCg0KTWEgbmFvIHBo YWkgY2hpIGNvIGNhYyBjdSBvbmcsIGN1IGJhIG1vaSBtdW9uIGNhbSBuaGFuIGtob25nIGtoaSB0 aGllbmcgbGllbmcgbm9pIA0Ka2luaCB0aGFuaCB4dWEsIHR1bmcgbmhvbSBiYW4gdHJlIHRyb25n IGRvbmcgcGh1YyAiVG9pIHlldSBIYSBOb2kiIGN1bmcgdGl1IHRpdCB0cmFtIHRybyANCnRydW9j IG5odW5nIHZpZW4gbmdvaSBjaGFtIHRybyByb25nLCBwaHVvbmcgdHV5ZXQgZGVwLiBDYSBuaHVu ZyBjbywgY2F1IGJlIHhpdSB4aXUgDQpjdW5nIGR1b2MgYm8gbWUsIG9uZyBiYSBkYXQgdmFvIHRo YW0gS2h1IGRpIHRpY2gsIGF5IHZheSBtYSBjYWMgYmUgdmFuIGRpIHR1IGRhdSBkZW4gDQpjdW9p IGN1bmcgYm8gbWUsIG9uZyBiYSwgdHV5ZXQgbmhpZW4ga2hvbmcgdGhheSBjYW5oIGtob2MgZG9p IHJhLCBuaHUgdGhlIG5vaSBjaG9uIG5heSANCmN1bmcgY28gZ2kgZG8gcmF0IGN1b24gaHV0IGNo aW5oIGNhYyBiZS4NCg0KRG9pIGxhbiBjbyBtYXQgdHJvbmcgZG9uZyBuZ3VvaSBraW4gZGFjIG5v aSBDYW0gdGhhbmggVGhhbmcgTG9uZywgYnVvYyB0cmVuIG5odW5nIA0KdGFjIGRhdCBkYXkgZGFj IGRhdSBhbiBsaWNoIHN1LCB0dW9uZyBuaHUgZGUgZGFuZyBiYXQgZ2FwIGRhdSBkYXkgYm9uZyBj dWEgY2FjIHZ1YSwgcXVhbiANCnRob2kgTHksIFRyYW4sIExlLC4uLiBsb25nIG5ndW9pIHZpZXQg YmFpIGtob25nIGtob2kgYm9pIGhvaSB4dWMgZG9uZy4gRGlldSBnaSBkYSBkdWEgDQpoYW5nIHZh biBuZ3VvaSBkZW4gdm9pIGtodSBkaSB0aWNoIG1vaSBuZ2F5LCBuZXUga2hvbmcgcGhhaSBsYSBu b2kgbW9uZyBtb2kgZHVvYyB0YW4gDQptYXQgbmhpbiB0aGF5IG5odW5nIGRhdSB0aWNoIGN1YSBs aWNoIHN1IDEwMDAgbmFtLCBkZSB0dSBuYXkga2hvbmcgY29uIG5odW5nIG5nYXkgYm9pIA0Kcm9p IGtob25nIGJpZXQgbmdoZSB0aHVhdCB0aG9pIEx5IHJhIHNhbywgdGhvaSBUcmFuIGtoYWMgdGhv aSBMZSB0aGUgbmFvPyBNb3QgbGFuIHZhbyANCnRoYW0ga2h1IGRpIHRpY2gsIGJhbmcgZG9jIGJp ZXQgYmFvIGN1b24gc2FjaCBsaWNoIHN1Lg0KDQpMbyBtb3QgZGlwIGNoYW4gaHVuZyBkYW4ga2hp DQoNClR1IGhhbyBraGkgdGhheSBtaW5oIG5odSBkYW5nICJkb2kgdGhvYWkiIHZvaSB0byB0aWVu LCBuaHVuZyBraG9uZyBraG9pIGJhbiBraG9hbiwgdHJhbiANCnRybywga2hpIGNvbmcgdGFjIGh1 b25nIGRhbiwgdGh1eWV0IG1pbmggZGEga2hvbmcgdGhlIHRvIGNodWMgY2h1IGRhbyBjaG8gdGF0 IGNhIGR1IA0Ka2hhY2ggdmFvIHRoYW0uIEx5IGRvIGJvaSBsdW9uZyBuZ3VvaSB2YW8gdGhhbSBr aHUgZGkgdGljaCB0cm9uZyBtb2kgdGhvaSBkaWVtIHF1YSANCmxvbiwgdmFpIGNodWMgaHVvbmcg ZGFuIHZpZW4gY3VuZyBraG9uZyBsYW0geHVlLCBuZW4gY2hpIGNvIHRoZSB0byBjaHVjIGh1b25n IGRhbiBjaG8gDQpraGFjaCBkb2FuLg0KDQpWYXkgbGEgaGFuZyB2YW4gbmd1b2kgY2hpIGJpZXQg ZHVhIHZhbyB2YWkgdGFtIGJpZW4gZ2lvaSB0aGlldSBjaHVuZyBjaG8gbW9pIGRpZW0gdGhhbSAN CnF1YW4gY3VhIGtodSBkaSB0aWNoLCBuZW4gbW9pIGNvIHRpbmggdHJhbmcgImNvbiBkdW9uZyBs YXQgZ2FjaCBob2EgY2hhbmggdGhvaSBUcmFuIiANCm5nYXkgZHVvaSBjaGFuIERvYW4gTW9uIGJp IGtoYW5nIGRpbmggbmh1IGRpbmggZG9uZyBjb3QgbGEgInRoYW5oIGNvIGNodSBjb24gZ2kgDQpu dWEhIiwgZGUgcm9pIGJpICJ2YWMiIGxhaSAidGhhbmggY28gZGF1IG1hIG5oaWV1IHRoZT8iLiAN Cg0KTmdheSBjYSBraHUgZGkgdGljaCBraGFvIGNvIGhvYyAxOCBIb2FuZyBEaWV1LCBkdSBraGFj aCB0aGFtIHF1YW4gZGEgZHVvYyB0byBjaHVjIA0KdmFvIHRoYW5oIHR1bmcgbmhvbSBkZSBjbyBo dW9uZyBkYW4gdmllbiBnaW9pIHRoaWV1LCBuaHVuZyByYXQgbmhpZXUgaHVvbmcgZGFuIHZpZW4g DQpjaGkgbGEgY2FjIGJhbiBzaW5oIHZpZW4gdGluaCBuZ3V5ZW4gY3VhIEtob2EgRG9uZyBQaHVv bmcgaG9jLCBEYWkgaG9jIEtIWEhOViwgDQpuZW4gY2hpIGNvIHRoZSBnaW9pIHRoaWV1IHRoZW8g a2lldSB0aGF5IGdpZW5nIG51b2MgdGhpIGdpb2kgdGhpZXUgbGEgZ2llbmcgbnVvYyB0aG9pIG5h bywgDQpyb2kgZGF5IGxhIGdpYW4gbmhhIDMgZ2lhbiwga2lhIGxhIGRvbmcgc29uZywgY2hvIG5v IGxhIGNvbmcgbnVvYy4NCg0KQ2FjIGRhdSB0aWNoIGtoYW8gY28gaG9jIGxhaSBjaGkgbGEgcGhl IHRpY2gsIHJhdCAiZG9uIHNvIiB0cm9uZyBtYXQgIm5ndW9pIHBoYW0iLCBuZW4gDQpuZ2hlIGdp b2kgdGhpZXUgbW90IGhvaSwgdHJvbmcgZGFtIGRvbmcgY28gdGllbmcgeGkgeGFtICJLaW5oIHRo YW5oIGdpIG1hIGNoYW5nIHRoYXkgDQp0aGFuaCBxdWFjaCBkYXUgY2EsIHRvYW4gYmFpIGRhdCB0 cm9uZyEiLiBOaGlldSBuZ3VvaSB2aSBtZXQgbGFpIGtob25nIHRoYXkgZ2kgaG9hbmggDQp0cmFu ZywgbmVuIGJvIGtob25nIHRoZW8gbG8gdHJpbmggdGhhbSBxdWFuIGR1b2Mgc2FwIHhlcCBtYSBk aSB0YXQgY2hvIG5oYW5oLCByYSByb2kgbGFpIA0KdGhhYyBtYWMgImNoaSBjbyB0aGUgbmF5IHRo b2kgc2FvPyIuDQoNCkNodW5nIGtpZW4gbmh1bmcgcGhhbiB1bmcgaG9uIG5oaWVuIG5odW5nIHJh dCB0aGF0IGN1YSBuaHVuZyBjb24gbmd1b2kgY2hhdCBwaGFjIGF5LCANCm5ndW9pIHZpZXQgYmFp IG5heSBraG9uZyBraG9pIG51b2kgdGllYywgZ2lhIG5odSB2aWVjIGdpb2kgdGhpZXUgZHVvYyB0 byBjaHVjIGt5IGx1b25nLCANCmtoYWNoIHRoYW0gcXVhbiBkdW9jIGRhbiBkYXQgYm9pIG5odW5n IGNodXllbiBnaWEgc3UgaG9jLCBraGFvIGNvIGhvYyB2b2kga2llbiB0aHVjIA0Kc2F1LCByb25n LCBkZSBtb2kgbmd1b2kga2hpIGJ1b2MgY2hhbiB2YW8ga2h1IGRpIHRpY2ggc2UgY2FtIG5oYW4g ZHVvYyBuZ2F5IGNobyBtaW5oIA0KZHVuZyBkYXksIHh1YSBraWEgZGEgbGEgY3VuZyBkaWVuIG5h bz8gTmhhIHZ1YSBkYSB0aGlldCB0cmlldSBvIGRhdT8gVnVhIGRpIGxhaSBiYW5nIGxvaSANCm5h bz8gTmh1bmcgcGhlIHRpY2ggImRvbiBzbyIga2lhIGxhIGN1YSB0b2EgbmdhbmcgZGF5IGRvYyBr aW5oIHRoYW5oIHJhIHNhbz8gRGUgbW9pIA0Kbmd1b2kga2hpIGRlbiB2b2kga2h1IGRpIHRpY2gg bmh1IG5ndW9jIGRvbmcgdGhvaSBnaWFuIHNvbmcgbGFpIG5odW5nIHRoZSBreSAxMSwgMTIgY3Vh IA0KdGhvaSBMeSwgMTMsIDE0IGN1YSB0aG9pIFRyYW4uLi4gcm9pIHR1eSB2YW8gdHVvbmcgdHVv bmcgY3VhIG1vaSBuZ3VvaSwgaG8gc2UgdGhheSBuaHUgDQptaW5oIGR1b2MgZ2FwIGR1YyB2dWEg THkgQ29uZyBVYW4gaGF5IFRyYW4gTmhhbiBUb25nLCBjYWMgZGFuaCB0dW9uZyBMeSBUaHVvbmcg DQpLaWV0IGhheSBUcmFuIEh1bmcgRGFvLi4uDQoNCk5ldSBsYW0gZHVvYyBkaWV1IGRvLCB0aW5o IHRoYW4gY3VhIG1vaSBuZ3VvaSBWaWV0IE5hbSBraGkgZGVuIHZvaSBLaHUgdHJ1bmcgdGFtIA0K SG9hbmcgdGhhbmggVGhhbmcgTG9uZyBjaGFjIGNoYW4gc2UgbGVuIHJhdCBjYW8sIGhvIHNlIG5o dSBkdW9jIHRpZXAgdGhlbSBzdWMgbWFuaCANCmJvaSBjYSAxMDAwIG5hbSBsaWNoIHN1LiBOaHVu ZyB0aWVjIHRoYXksIHZpIGNvbmcgdGFjIGNodWFuIGJpIGRhIGRpZW4gcmEgcXVhIHZvaSB2YW5n LCB2aSANCkhhIE5vaSBjaHVhIHRhcCB0cnVuZyBkdSBuZ3VvbiBsdWMgdmEgY29uZyBzdWMgZGUg SG9hbmcgdGhhbmggVGhhbmcgTG9uZyB0aGF0IHN1IGxhIA0KdHJ1bmcgdGFtIGN1YSBEYWkgbGUs IHRoYXkgdmkgaGFuZyBjaHVjIG5odW5nIGNodW9uZyB0cmluaCBjYSBuaGFjIG5hIG5hIGdpb25n IG5oYXUsICANCnRodWFuIHR1eSBtYW5nIHRpbmgga3kgbmllbS4NCg0KUGhhaSBjaGFuZyBjaGlu aCBIYSBOb2kgY3VuZyBraG9uZyBuZ28sIGxvbmcgZGFuIGxhaSBodW9uZyB2ZSBraW5oIHRoYW5o IHh1YSBuaGlldSANCmRlbiB0aGU/IENodW5nIHRhIGRhIHZvaSBjaGF5IHRoZW8gc28gbHVvbmcg Y2FjIGNodW9uZyB0cmluaCwgc3Uga2llbiwgbmVuIGJvIHF1ZW4gbW90IA0KY28gaG9pIHR1eWV0 IHZvaSwgY28gaG9pIG5nYW4gbmFtIGNvIG1vdCBkZSBjaGFuIGh1bmcgZGFuIGtoaS4gDQoNCmh0 dHA6Ly93d3cudmlldG5hbW5ldC52bi90aW5uaGFuaC8yMDEwMTAvUGhvLXBodW9uZy1IYS1Ob2kt eGFjLXhvLXNhdS1kYWktbGUtOTQwMTcyLyBDYW0gQW5oICh0b25nIGhvcCkgMTY6NTcsIDEwLzEw LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IFBobyBwaHVvbmcgSGEgTm9pIHhvIHhhYyBzYXUgRGFp IGxlIA0KDQpLZXQgdGh1YyBsZSBkaWV1IGJpbmgsIGRpZXUgaGFuaCBzYW5nIDEwLzEwLCBoYW5n IG5nYW4gbmd1b2kgZGkgeGVtIERhaSBsZSBkbyB4byB0aW0gZHVvbmcgdmUuIEJvbmcgaG8ga2h1 YXQgZGkgY3VuZyBsYSBsdWMgcGhvIHBodW9uZyBIYSBOb2kgbG8gcmEgeG8geGFjLiANCg0KTW90 IHNvIGhpbmggYW5oIGN1YSBwaG8gcGh1b25nIEhhIE5vaSBzYXUga2hpIERhaSBsZSBrZXQgdGh1 YyBkYSBkdW9jIGdoaSBsYWksIFZpZXROYW1OZXQgdG9uZyBob3AgbGFpIGRlIGJhbiBkb2MgY3Vu ZyB4ZW0gdmEgc3V5IG5nYW0gdmUgeSB0aHVjIHRoYW0gZ2lhIGxlIGhvaSBjdWEgbW9pIG5ndW9p IGRhbi4NCg0KKEFuaDogQ2F5IEhhIE5vaSAib2FuIG1pbmgiIGNoaXUgdHJhbiB0cm9uZyBEYWkg bGUgLUFuaDogRGFuIHRyaSkNCg0KKEFuaDogUmF0IG1vbmcgbWFuaCBuaHVuZyBjYXkgYmVuIEhv IEd1b20gY3VuZyBwaGFpIGNoaXUgdHJhbiBraGkgY2FjIHRoYW5oIG5pZW4gY2hlbiBuaGF1IGxl byBsZW4gZGUgeGVtLiBBbmg6IGJlZS5uZXQudm4pIA0KDQooQW5oOiBEdW9pIHN1YyBlcCBjdWEg YmllbiBuZ3VvaSB0aGkgZGFpIHBoYW4gY2FjaCBjdW5nIG1hdCB0YWMgZHVuZy4gQW5oOiBEYW4g dHJpKQ0KDQooQW5oOiBNb3QgY2F5IGNvIHRodSB0cm9uZyBWYW4gTWlldSAtIFF1b2MgVHUgR2lh bSBkYSBndWMgbmdhIHNhdSBraGkgZG9hbiBkaWV1IGJpbmggZGkgcXVhLiBBbmg6IERhbiB0cmkp DQoNCihBbmg6IFRyZW8gY2EgbGVuIGJpZW4gYmFvIGdpYW8gdGhvbmcgZHUgZGlhIHRoZSBkdW5n IGtob25nIGRlIGRhbmcuIFRoYW0gY2hpLCBjaHVhIGhldCBkaWV1IGJpbmggcGhhbiB0dSAiYmF0 IGhhbyIgY2hheSByYSBwaGEgZGFtIGRhIGJpIGNvbmcgYW4gbmhhbmggY2hvbmcgYmF0IGdpdS4g QW5oOiBWVENuZXdzKSANCg0KKEFuaDogS2V0IHRodWMgbGUgZGlldSBiaW5oLCBkaWV1IGhhbmgs IHJ1bmcgbmd1b2kgZG8gYW8gcmEgdGltIGNhY2ggInRob2F0IHRoYW4iIGtoaWVuIGNhYyBkdW9u ZyBraHUgdnVjIHRydW5nIHRhbSBIYSBOb2kga2V0IGtob25nIGxvaSB0aG9hdCAoQW5oOiBWaWV0 TmFtTmV0KQ0KDQooQW5oOiBNb3QgcGh1IG51IGtob25nIGNoaXUgbm9pIGFwIGx1YyBjaGVuIGVw IGN1YSBkYW0gZG9uZyBkYSBuZ2F0IHhpdS4gQW5oOiBWVENuZXdzKSANCg0KaHR0cDovL3N2LW5p ZW0uY29tL2ZvcnVtL3RhLW4tZ2EtdS8xMTMzLXRhLWktZGlhLW4tbmEtbi10cmFuaC1jYWUtcC1z YXUtbGEtaGEtaS1ob2EtaGEtbmEtaS5odG1sDQoNCkhhIE5vaTogVGFpIGRpZW4gbmFuIHRyYW5o LCBjdW9wIHNhdSBMZSBob2kgaG9hIEhhIE5vaQ0KDQpTYW5nIDQtMSwgdHJ1b2Mga2h1IHR1b25n IGRhaSBMeSBUaGFpIFRvLCByYXQgZG9uZyBuZ3VvaSBkYW4geG9uZyB2YW8gY3VvcCBjYWMgcm8g aG9hIGtoaSBCYW4gdG8gY2h1YyBMZSBob2kgcGhvIEhvYSBIYSBOb2kgZGFuZyB0aHUgZG9uIHNh dSBsZSBiZSBtYWMuIA0KDQpIYW5nIHRyYW0gY2hhdSBob2EsIGNheSBjYW5oIGJpIGdpYW0gZGFw IGRvIG5hdCB0cnVvYyBzdSBiYXQgbHVjIGN1YSBsdWMgbHVvbmcgYW4gbmluaC4gDQoNClRoYXQg ZGFuZyBidW9uLCB0aGFtIGdpYSBjdW9wIGhvYSBsYWkgY28gY2Egbmh1bmcgY3Ugb25nLCBjdSBi YSB2YSBuYW0gdGhhbmggbnUgdHUuDQpDYWMgdmkga2hhY2ggbnVvYyBuZ29haSBjaHVuZyBraWVu IGNhbmggbmF5IGxhYyBkYXUgcXVheSBkaSB2b2kgY2F1ICJjcmF6eSIgKHF1YSB0ZSkuIA0KDQpo dHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDEwL1R1b25nLUhvYW5nLXRoYW5oLXRh LXRvaS1oYXUtZGFpLWxlLTk0MTYxOS8gMDg6MzUsIDEyLzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBO b2k6ICJUdW9uZyIgSG9hbmcgdGhhbmggdGEgdG9pIGhhdSBEYWkgbGUNCg0KIkJ1YyB0dW9uZyIg YmFuZyBiYXQgYmFvIHh1bmcgcXVhbmgga2h1IHRydW5nIHRhbSBIb2FuZyB0aGFuaCBUaGFuZyBM b25nIGRhIGJpIHhlIHJhY2ggdGEgdG9pIGNoaSAxIG5nYXkgc2F1IERhaSBsZS4gDQoNCmh0dHA6 Ly92aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMC9kdWEtbmhhdS10cm9tLWNhcC10cmVuLWRh aS1sby1UaGFuZy1Mb25nLTk0MjE4MC8gMTY6MjIsIDE0LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBO b2k6IER1YSBuaGF1IHRyb20gY2FwIHRyZW4gRGFpIGxvIFRoYW5nIExvbmcNCg0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMC9Tb2Mtdm9pLWhpbmgtYW5oLWNvLWdhaS10 YW0tdHJhbi1vLWNhdS1UaGUtSHVjLTk0MTQ2Mi8gTmd1eWVuIExhbSAxMjowNSwgMTEvMTAvMjAx MCAoR01UKzcpDQoNCkhhIE5vaTogU29jIHZvaSBtYW4gdGFtIHRyYW4gbyBjYXUgVGhlIEh1YyAg DQoNCk1hYyBjaG8gbmh1bmcgbmd1b2kgeHVuZyBxdWFuaCBiYW4gdGFuLCBjbyBnYWkgdmFuIHRo YW4gbmhpZW4sIHR1IHR1IGNvaSBhbyByb2kgdGFtIG5nYXkgYmVuIGNhbmggY2F1IFRoZSBIdWMg c2FuZyBydWMgZGVuLg0KDQpUcm9uZyBkb2FuIGNsaXAgZGFpIGtob2FuZyAxIHBodXQsIGxhIGhp bmggYW5oIG1vdCBjbyBnYWkgbGFuIGx1b3QgY29pIGFvIHZhIHRhbSBuZ2F5IGNhbmggY2F1Lg0K DQpBbmggY2h1cDogSGluaCBhbmggY28gZ2FpIHRhbSB0cmFuIGJlbiBjYXUgVGhlIEh1YyBkdW9j IGNodXAgbGFpIHR1IGNsaXAuDQoNClNhdSBraGkgZG9hbiBjbGlwIGJpIGxhbiB0cnV5ZW4gdHJl biBtYW5nIGRhIG5oYW5oIGNob25nIHRodSBodXQgZHVvYyBob24gNzMuMDAwIGx1b3Qgbmd1b2kg eGVtLg0KDQpEYSBzbyBkZXUgdG8gcmEgYmkgc29jLCB2YSBwaGFuIG5vIHRydW9jIHZpZWMgbGFt IHRoaWV1IHN1eSBuZ2hpIGN1YSBjbyBnYWkgdGFtIHRyYW4gdHJvbmcgDQpjbGlwIG5oYXQgbGEg dmllYyBsYW0gdGhpZXUgdmFuIGhvYSBuYXkgbGFpIGRpZW4gcmEgbG8gbGlldSBuZ2F5IHRhaSBu b2kgZGFuZyBsYSB0YW0gZGllbSANCmNobyBjYWMgaG9hdCBkb25nIGNoYW8gbXVuZyBEYWkgbGUg MS4wMDAgbmFtLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMC9UYW0t YmlldC1iYS1yYW5nLWhhbS12aS1kYWktbGUtOTQxNjQwLyAwOToyMSwgMTIvMTAvMjAxMCAoR01U KzcpDQoNCkhhIE5vaTogMSBuZ3VvaSBiaSBsdW5nIGxheSBiYSByYW5nIGhhbSB2aSBkYWkgbGUN Cg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvY2h1eWVuZG9uZ3RyZS8yMDEwMTAvQ29uZy1k b25nLW1hbmctcGhhbi1uby12b2ktbWFuLXRhbS10aWVuLW8tSG8tR3VvbS05NDE2MjEvIEtpbSBN aW5oIENhcCBuaGF0IGx1YyAwODo0NywgVGh1IEJhLCAxMi8xMC8yMDEwIChHTVQrNykNCg0KSGEg Tm9pOiBDb25nIGRvbmcgbWFuZyBwaGFuIG5vIHZvaSBtYW4gJ3RhbSB0aWVuJyBvIEhvIEd1b20N Cg0KIlRoYXQgdGhvIGJpIHZhIHZvIHZhbiBob2EgaGV0IG11Yy4gR2l1YSBjaG9uIGRvbmcgbmd1 b2kgbyBtb3Qgbm9pIGxpbmggdGhpZW5nIG5odSBIbyANCkd1b20gc2FvIGxhaSB4dWF0IGhpZW4g bmh1bmcgaGluaCBhbmggbmhvIG5odW9jIG5odSB0aGUgbmF5PyBEdXQgZGF5IHRoYW4gDQpraW5o Li4ubmd1b25nISIsIG1vdCBjdSBkYW4gbWFuZyBwaGFuIG5vIHNhdSBraGkgeGVtIHhvbmcgZG9h biBjbGlwIHRhbSB0aWVuIG8gSG8gDQpHdW9tLg0KDQoqICBTb2Mgdm9pIGNvIGdhaSB0YW0gdHJh biBvIGNhdSBUaGUgSHVjIA0KDQpEb2FuIGNsaXAgZGFpIDU5IGdpYXkgcXVheSBjYW5oIG1vdCBj byBnYWkgdGFtIHRyYW4gYmVuIGNhdSBUaGUgSHVjIGR1b2MgdHVuZyBsZW4gDQptYW5nIG5nYXkg OC8xMCB2dWEgcXVhLiBDaGkgdHJvbmcgdm9uZyBoYWkgbmdheSwgY2xpcCBuYXkgZGEgdGh1IGh1 dCBnYW4gODAuMDAwIGx1b3QgDQpuZ3VvaSB4ZW0uIE5nYXkgc2F1IGtoaSBkb2FuIGNsaXAgbGFu IHRydXllbiB0cmVuIGNhYyBkaWVuIGRhbiwgY29uZyBkb25nIG1hbmcgaGV0IHN1YyANCnBoYW4g bm8gdHJ1b2MgdmllYyBsYW0gdGhpZXUgc3V5IG5naGkgY3VhIGNvIGdhaS4gDQoiT2kgdHJvaSBv aSBzaG9jayBxdWEiLCAidGhhdCBsYSB2byB2YW4gaG9hIiwgImRhdSBvYyBjbyBuYXkgY2hhYyBs YSBjbyB2YW4gZGUiLi4uIGxhIG5odW5nIA0KcGhhbiB1bmcgZGF1IHRpZW4gY3VhIGN1IGRhbiBt YW5nIHRydW9jIGhhbmggZG9uZyB2byB0dSBxdWEgbXVjIG5heS4NCg0KKEFuaDogSGFuaCBkb25n IGtob2EgdGhhbiB0YW0gZ2l1YSBjaG9uIGRvbmcgbmd1b2kgY3VhIGNvIGdhaSB0cm9uZyBjbGlw IGtoaWVuIGN1IGRhbiANCm1hbmcgcmF0IHBoYW4gbm8uIEFuaCBjaHVwIHR1IGNsaXApDQoNCkhh bmggZG9uZyBraG9hIHRoYW4gdGFtIGdpdWEgY2hvbiBkb25nIG5ndW9pIHZhbyBkdW5nIHRob2kg ZGllbSBkaWVuIHJhIERhaSBsZSAxMDAwIA0KbmFtIFRoYW5nIExvbmcgLSBIYSBOb2kgY2FuZyBr aGllbiBjdSBkYW4gbWFuZyBidWMgeHVjIGhvbi4gIlNhbyBjbyBuaHVuZyBuZ3VvaSANCnRybyB0 cmVuIG5odSB0aGUgbmF5IG5oaS4gS2hvbmcgYmlldCBkdSBraGFjaCBuaGluIHZhbyBzZSBuZ2hp IGdpIHZlIHN1IGR1eWVuIGRhbmcgY3VhIA0Kbmd1b2kgcGh1IG51IFZpZXQgTmFtLiBUaGF0IGRh bmcgYnVvbiIsIG5pY2tuYW1lIGR1Y2hhaTEwMDAgYmF5IHRvLg0KDQpUcmVuIGRpZW4gZGFuIHR1 dS52biwgbW90IGJhbiB0cmUgY28gbmlja25hbWUgcGFuZGFfYmFtYm9vIGxlbiB0aWVuZyBnYXkg Z2F0IGhvbjogDQoiR2l1YSBjYWkga2hvbmcga2hpIG5hbyBuaGlldCwgdGhpZW5nIGxpZW5nIHZh IGN1bmcgcmF0IHZhbiBob2EgY3VhIG5naGluIG5hbSBUaGFuZyANCkxvbmcgbGFpIHh1YXQgaGll biBuaHVuZyBoaW5oIGFuaCBuaG8gbmh1b2Mgbmh1IHRoZSBuYXkuIFRoYXQgbGEgdWMgcXVhIGRp ISIuDQoNCk1vdCBzbyBjdSBkYW4gbWFuZyBjaG8gcmFuZyBoYW5oIGRvbmcgbmF5IGtob25nIGNo aSBsYW0geGF1IGRpIGhpbmggYW5oIHRoaWVuZyBsaWVuZyANCmN1YSBIYSBOb2kgbWEgY29uIHRo ZSBoaWVuIHN1IHh1b25nIGNhcCBkYW8gZHVjIGN1YSBtb3QgYm8gcGhhbiBnaW9pIHRyZS4gDQoN CiJIZXQgdGhvYXQgeSBtdW5nIHR1eWVuIFZpZXQgTmFtIHZvIGRpY2ggQUZGLCBsYXkgc29uZyBn YXUgYm9uZywgZ2lvIGxhaSB0YW0gdHJhbiBnaXVhIA0KaG8sIHRoYXQgbGEgY28gbmhpZXUgY2Fj aCBkZSBub2kgdGllbmcga2hhYyBuaGF1IG5oaT8iLCBFbGJlciwgdGhhbmggdmllbiBjdWEgZGll biBkYW4gDQp3ZWJ0cmV0aG8gY3VuZyBkb25nIHF1YW4gZGllbS4NCg0KS2hvbmcgY2hpIGxlbiBh biBoYW5oIGRvbmcgeGF1IHhpIGN1YSBjbyBnYWksIGN1IGRhbiBtYW5nIGNvbiBiYXkgdG8gYnVj IHh1YyB2b2kgDQpuaHVuZyBuZ3VvaSBkdW5nIHhlbSwgZGFuZyBsZSBwaGFpIGxlbiB0aWVuZyBu Z2FuIGNhbiBob2FjIGJhbyB2b2kgZGFuIHBob25nIG8gSG8gR3VvbSB0aGkgbGFpIGhvIHJlbyBs YXkgbWF5IGFuaCwgZGllbiB0aG9haSByYSBjaHVwLg0KDQpWYSBjYW5nIHBoYW4gdW5nIGdheSBn YXQgaG9uIHZvaSBuZ3VvaSBxdWF5IGNsaXAgdmEgdHVuZyBjbGlwIGxlbiBtYW5nLg0KDQpMZW4g YW4gbmd1b2kgdHVuZyBjbGlwIGxlbiBtYW5nLCBjYWMgY3UgZGFuIG1hbmcgZGEga2V1IGdvaSBu aGF1IHhvYSBjbGlwIGRlIGhhbiBjaGUgDQpzdSBsYW4gdHJ1eWVuIGhpbmggYW5oIHhhdSB4aSwg Y3VuZyBuaGF1IHhvYSBtbyB2ZXQgZGVuIG5heS4gDQoNCk5pY2tuYW1lIHBhbmRhX2JhbWJvbyBs ZW4gdGllbmc6ICJUaG9pIHRob2kgY2EgbmhhIG9pISBEdW5nIGxhaSBuYW8hIENhbmcgdGhlIG5h eSANCmNhbmcgbGFtIHhhdSBtaW5oIGRpIGRheS4gSGF5IGNvaSBubyBjaGkgbGEgbW90IHZhbiBk ZSBiYXQgY2FwIGRhIHF1YS4gQ28gYW5oIG1vZCBuYW8gDQpwaHUgdHJhY2ggZG9uZyBkdW0gY2Fp IHBpYyBuYXkgdm9pLiBUaGFua3MiLiANCg0KaHR0cDovL3d3dy52aWV0LnJmaS5mci92aWV0LW5h bS8yMDEwMTAwMS1kYWktbGUtbmdhbi1uYW0tdGhhbmctbG9uZy1oYW8tbmhvYW5nLW5odW5nLWl0 LWNodS10cm9uZy12ZS12YW4taG9hIFR1IEFuaCAwMS8xMC8yMDEwICAgDQoNCkhhIE5vaTogRGFp IGxlIE5nYW4gTmFtIFRoYW5nIExvbmcgaGFvIG5ob2FuZyBuaHVuZyBjb24gY2h1YSB0aGlldCB0 aHVjLCBpdCBjaHUgdHJvbmcgdmUgdmFuIGhvYSANCg0KaHR0cDovL3RpbnR1Yy50aW1uaGFuaC5j b20veGEtaG9pLzIwMDkwMzEwLzM1QTkwQ0FFL0hhLU5vaS1LaGFwLW5vaS10aGFuaC1uaGEtdmUt c2luaC1jb25nLWNvbmcuaHRtDQoNCkhhIE5vaTogS2hhcCBub2kgdGhhbmggbmhhIHZlIHNpbmgg Y29uZyBjb25nIA0KDQpodHRwOi8vd3d3LnZ1aXF1YS5jb20vYzMxLzI4ODg0OC90cnVvbmctY29u Zy1hbi1waHVvbmcta3ktdHJhdC12b2ktdGllbi10ZXQtZG9hbmgtbmdoaWVwIDEyLjQ0cG0gMDIt MDMtMjAxMA0KDQpIYSBOb2k6IFRydW9uZyBjb25nIGFuIHBodW9uZyBreSAndHJhdCcgdm9pIHRp ZW4gVGV0IGRvYW5oIG5naGllcCAocGh1b25nIFBodW9uZyBMaWV0LCBUaGFuaCBYdWFuLCBIYSBO b2kpDQoNCmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMC9kaS1kYWktbGUtQ2hvaS1r aG9uLWtoby1naWEtY2F0LWNvLTkzOTY3MC8gMDg6NTAsIDA2LzEwLzIwMTAgKEdNVCs3KQ0KDQpI YSBOb2k6IERpIERhaSBsZSBIYSBOb2kgLSBDaG9pIGtob24ga2hvLCBnaWEgJ2NhdCBjbycgDQoN Cmh0dHA6Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMC95ZXUtcmF1LXhhbmgtZ2lvLXRyby10 cm9uZy1kaXAtZGFpLWxlLTkzOTA2MS8gMTA6MzIsIDAzLzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBO b2k6ICJZZXUgcmF1IHhhbmgiIGdpbyB0cm8gdHJvbmcgZGlwIERhaSBsZSANCg0KaHR0cDovL2Jl ZS5uZXQudm4vY2hhbm5lbC8xOTg3LzIwMTAwOC9IYS1Ob2ktVm8tYmFuLXhlLVNILWdpZXQtbmd1 b2ktcm9pLWN1b3AtdGllbi0xNzY1ODIwLyAzMC8wOC8yMDEwIDIwOjQzOjU3IA0KDQpIYSBOb2k6 IFZvIGJhbiB4ZSBTSCwgZ2lldCBuZ3VvaSByb2kgY3VvcCB0aWVuDQoNCmh0dHA6Ly9ldmEudm4v ZXZhLXRhbS1jaHV5ZW4vaGEtbm9pLXRodWUtbmd1b2ktZ2lldC1jb24tY2hvbmctdm9pLWdpYS0x NTAtdHJpZXUtYzY2YTM5Njk2Lmh0bWwgMjAvMDkvMjAxMCwgMTM6NTggDQoNCkhhIE5vaTogVGh1 ZSBuZ3VvaSBnaWV0IGNvbiBjaG9uZyB2b2kgZ2lhIDE1MCB0cmlldSANCg0KaHR0cDovL3d3dy52 aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAxMC9IYS1Ob2ktU2FwLW5oYS01LXRhbmctZGFuLWhvYW5n LWxvYW4tOTQzMjUzLyBWdSBEaWVwIDEwOjUzLCAxOS8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9p OiBTYXAgbmhhIDUgdGFuZywgZGFuIGhvYW5nIGxvYW4NCg0KVmFvIGx1YyAzaCBzYW5nIDE5LzEw LCBtb3QgdGllbmcgbm8gdmFuZyB0cm9pIG5odSBkb25nIGRhdCBkbyBzYXAgbmhhIHRhaSBzbyA5 MSwgcGhvIA0KSGFuZyBNYSAocXVhbiBIb2FuIEtpZW0sIEhhIE5vaSkga2hpZW4gY2hvIG5ndW9p IGRhbiB4dW5nIHF1YW5oIHBoYWkgY2hheSB0YW4gbG9hbi4NCg0KaHR0cDovL3d3dy50aGVzYWln b250aW1lcy52bi9Ib21lL3Rob2lzdS9zdWtpZW4vMTMwOTAvIDExLzEyLzIwMDgsIDA5OjQ5IChH TVQrNykNCg0KSGEgTm9pOiBDaGkgc28gbmFuZyBsdWMgY2FuaCB0cmFuaCBjYXAgdGluaCBQQ0kg MjAwOCBjdWEgSGEgTm9pIHR1dCBoYW5nIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDA5NDQvMjAwOTEwMzEyMzM0MzMuYXNweCAzMS8xMC8yMDA5IDIzOjM0IA0K DQpIYSBOb2k6IEhhbmggdHJpbmggbGFuIGRhbiBjdWEgdGhpIGhhaSB2dWEgTGUgRHUgVG9uZyAN Cg0KTW90IHZpIGhvYW5nIGRlIHNhdSBraGkgbWF0IGdhbiAzMDAgbmFtLCBkZW4gbmF5IHZhbiBj aHVhIGR1b2MgIm1vIHllbiBtYSBkZXAiLiANCg0KR2lhbSBkb2MgVHJ1bmcgdGFtIEdpYW8gZHVj IHRydXllbiB0aG9uZyB2YSBsaWNoIHN1IHRodW9jIEhvaSBLaG9hIGhvYyB0YW0gbHkgZ2lhbyBk dWMgVmlldCBOYW0ga2hhbmcgZGluaDogVHJ1b2MgbmFtIDE5OTYsIGNodW5nIHRvaSBkZW4gQmFv IHRhbmcgTGljaCBzdSBWaWV0IE5hbSAoZGlhIGNoaTogU28gMSAtIFBoYW0gTmd1IExhbyAtIEhv YW4gS2llbSAtIEhhIE5vaSkgdmllbmcgdnVhIExlIER1IFRvbmcgdGhpIHRoYXkgdGhpIHRoZSBO Z3VvaSBkdW9jIGRlIG8gbW90IGNhaSBnaWEgYmEgdGFuZyBuaHUgbW90IGhpZW4gdmF0IHRydW5n IGJheSBvIGJhbyB0YW5nLiANClNhdSBraGkgY2h1bmcgdG9pIGNvIHkga2llbiwgYmFvIHRhbmcg ZGEgZHVhIHRoaSBoYWkgdnVhIExlIER1IFRvbmcgdmFvIHF1YW4gdGFpIGtpbmgsIHZhIG5heSBk dW9jIGJhbyBxdWFuIHRyb25nIHBob25nIGxhbmguIE5odW5nIGR1IHNhbywgdHJvbmcgZGlldSBr aWVuIHRob2kgdGlldCBub25nIGFtIGN1YSBudW9jIHRhIHZhIHBoYW4gdGhpIHRoZSBjdWEgTmd1 b2kgY3VuZyBkYSBiaSBiaWVuIGRhbmcsIGNoYWMgY2hhbiBzb20gbXVvbiBjdW5nIHNlIGJpIHBo YW4gaHV5IGhvYW4gdG9hbi4NCg0KaHR0cDovL3d3dy5iYW9tb2kuY29tL0luZm8vQmktbWF0LW5n aGktbGUtaG9hbi10YW5nLXZ1YS1MZS1EdS1Ub25nLzU0LzM3OTc1MzAuZXBpDQoNCkhhIE5vaTog TmdoaSBsZSBob2FuIHRhbmcgdnVhIExlIER1IFRvbmcgKHZhbyAxMC8xMCBhbSBsaWNoIJYgS3kg U3V1IDIwMDkpIA0KDQpWYXkgbGEgZGkgaGFpIHZ1YSBMZSBEdSBUb25nIGN1bmcgZHVvYyBob2Fu IHRhbmcgc2F1IGNoYW5nIGR1b25nIGRhaSBnaWFuIG5hbiBsYW4gZGFuIA0KDQpOaGlldSBuZ3Vv aSBjbyBkaXAgY2h1bmcga2llbiB0YW4gbWF0IHRoYWMgbWFjOiAgDQoNCi0gWGUgY2hvIGJhaSB2 aSB4YXUgdmEgc28gc2FpIHF1YSAoY28gYW5oIGNodXAgdHJlbiBiYW8pLCBraG9uZyBnaW9uZyBk YW5oIGNobyBtb3QgdmkgVnVhOw0KLSBEb2FuIHhlIGRhbiBkdW9uZyBjaHVhIGxhbSB0b3Qgbmhp ZW0gdnU7IA0KLSBLaHUgZGF0IGxhbSBsYW5nIG1vIGJ1YSBib247IA0KLSBCYW8gY2hpIGtob25n IGNvIGtodSB2dWMgdGFjIG5naGllcDsgDQotIE5ndW9pIGRhbiBtdW9uIHhlbSBwaGFpICBsZW8g dHJlbyBraGFwIG5vaS4uLiANCi0gUXVhIHRyaW5oIGNodWFuIGJpIHF1YSB2b2kgdmFuZywgZ2Fw IGdhcCAgDQoNCmh0dHA6Ly93d3c2LnZubWVkaWEudm4vbmV3c2RldGFpbC5hc3A/TmV3c0lkPTE5 NTA0MyZDYXRpZD00MTggMTNoNDMnIDI2LzA2LzIwMTAgDQoNCkhhIE5vaTogUmV1IHBob25nIG9p LCBwaG8gY28gZGF1IHJvaT8gDQoNClRoZW8gcXV5ZXQgZGluaCBjdWEgVUJORCB0aGFuaCBwaG8g SGEgTm9pLCBzbyB0aWVuIGJvIHJhIGRlIHNvbiBzdWEgcGhvIGNvLCB0YW4gdHJhbmcgDQo3NSB0 dXllbiBwaG8gY3VhIGNhYyBxdWFuIG5vaSwgbmdvYWkgdGhhbmggbGEga2hvYW5nIDUwIHR5IGRv bmcuIA0KDQpQaG8gY28gSGEgTm9pIGRhIGR1b2Mga2hvYWMgbGVuIG1pbmggY2hpZWMgYW8gbW9p LiBDaGllYyBhbyBsYW0gYm8gbWF0IGN1YSBwaG8ga2hhbmcgDQp0cmFuZyBsZW4uIE5odW5nIGxh aSBsYW0gbWF0IGRpIHZlIGNvIGtpbmggdm9uIHBoYWkgdGh1b2MgdmUgbm9pIG5heS4gDQoNCmh0 dHA6Ly93d3cudG9xdW9jLmdvdi52bi9UaG9uZ3Rpbi9UaG9pLVN1L0FvLU1vaS1MYW0tUGhvLUNv LUhldC1EdXllbi5odG1sIDhoOjcnIC0gMy80LzIwMTANCg0KSGEgTm9pOiAiQW8gbW9pIiBsYW0g cGhvIGNvICJoZXQgZHV5ZW4iIA0KDQpOaGlldSB0dXllbiBwaG8gY28gSGEgTm9pIG5odSBIYW5n IERhbywgQ2F1IEdvLCBIYW5nIE5nYW5nLCBIYW5nIER1b25nIGRhbmcgDQpkdW9jIGNoaW5oIHRy YW5nLCBxdWV0IHZvaSBtb2kgdGluaC4gVFAgdGhpIGNobyByYW5nLCBkYXkgbGEgY2FjaCBkb24g ZGVwIHBobyBjbyBjaGFvIA0KZG9uIERhaSBsZSAxLjAwMCBuYW0gY29uIG5ndW9pIGRhbiB2YSBr aGFjaCBkdSBsaWNoIGxhaSB0aGFuIHBoaWVuLg0KDQpQaG8gY28uLi4gImhldCBkdXllbiIga2hp ICJtYWMgYW8gbW9pIiANCg0KaHR0cDovL3R1YW52aWV0bmFtLnZpZXRuYW1uZXQudm4vMjAxMC0x Mi0xNy1naWEtdHJpLWhhLW5vaS1iaS1waGEtaG9haS1ib2ktbmd1b2ktbGFtLXZhbi1ob2EgVGFj IGdpYTogTmd1eWVuIFZhbiBIdXksIEhvYW5nIEh1b25nIChnaGkpDQoNCkhhIE5vaTogR2lhIHRy aSBIYSBOb2kgYmkgcGhhIGhvYWkgYm9pLi4uIG5ndW9pIGxhbSB2YW4gaG9hDQoNCiJEdWEgbW90 IGN1b2MgdHJ1bmcgYmF5IHJhdCBuZ2hpZXAgZHUgdmFvIG1vdCB0b2EgbmhhIGJhbyB0YW5nIG1h bmcgdGluaCBoaWVuIGRhaSBuaGF0LCANCnRoaSBkbyBsYSBtb3Qgc3UgY29pIHRodW9uZyBjaGF0 IGx1b25nIGN1YSBiYW8gdGFuZyBvIHRoZSBreSAyMSIgLSBQR1MuVFMgTmd1eWVuIFZhbiANCkh1 eSwgbmd1eWVuIEdEIEJhbyB0YW5nIGRhbiB0b2MgaG9jIFZOIHBoYXQgYmlldS4NCg0KTWFuZyBk YW5oIHZhbiBob2Egbmh1bmcgbGFpICJwaGFuIiB2YW4gaG9hDQoNCkJlbmggaGluaCB0aHVjIGNv IHJhdCBuaGlldSBiaWV1IGhpZW4sIG5odW5nIHRvaSBjaGkgbm9pIGNhdSBjaHV5ZW4gdmUgZGkg c2FuIG8gSGEgTm9pIA0KdGhvaSwgbmh1bmcgY2h1eWVuIG5oYW4gdGllbi4gDQoNCkRpcCBEYWkg bGUsIEhhIE5vaSBjbyBnYW5nIGtoYW5oIHRoYW5oIEJhbyB0YW5nIEhhIE5vaSAtIGRpZXUgbW9u ZyBkb2kgaGFuZyBtYXkgDQpjaHVjIG5hbSBuYXkgY3VhIG5ndW9pIGRhbiBUaHUgZG8uIEJ1b24g dGhheSwgZG8gY2hpIGxhIHN1IGtoYW5oIHRoYW5oICJnaWEgdGFvIiwgDQpraG9uZyB0aHVjIGNo YXQuIE5vIGRvbiBnaWFuIGNoaSBsYSB4YXkgeG9uZywgbGUga2hhbmggdGhhbmggY2FpIHRvYSBu aGEgZGUgbGFtIGJhbyB0YW5nIA0KSGEgTm9pIGNodSBjaHVhIHBoYWkgbGEga2hhbmggdGhhbmgg QmFvIHRhbmcgSGEgTm9pLg0KDQpOZ3VvaSBkYW4gZGEgZG8gZGVuIHhlbSBkb25nIG5odSB0cmF5 IGhvaS4gQ2h1YSBiYW8gZ2lvIGNvIGJhbyB0YW5nIG5hbyB0cm9uZyBkaXAgbW90IA0KbGUga2hh bmggdGhhbmggbWEgbmd1b2kgZGFuIGxhaSBubyBudWMgZGVuIHZheS4gTmh1bmcgZGlldSBkb25n IGxhaSB0cm9uZyBsb25nIGhvIGtoaSANCmRpIHJhIGtob2kgbGUga2hhbmggdGhhbmggbGFpIGxh IG5odW5nIGFuIHR1b25nIGtlbSwgeGF1IHZlIG1vdCBjb25nIHRyaW5oIHZ1YSB4YXkgZHVuZy4N Cg0KTnVvYyB2YW4gZGFuZyBjaGF5IHR1IHRyZW4gbWFpIHh1b25nIHRvbmcgdG9uZywgY2hhYyBr aG9uZyBwaGFpIGxhIG1haSBkb3Qgbmh1bmcgY3VuZyANCmtob25nIGJpZXQgdHUgZGF1Lg0KDQpW ZSBub2kgZHVuZywgbmh1bmcgZG8gdmF0IHRydW5nIGJheSBvIGJhbyB0YW5nIGN1bmcgY2hvIHRo YXkgbm8gbHVjIGtob2EgbGFwIG1vdCANCmtob25nIGdpYW4gbWEgZGEga2hvbmcgZHVvYyBjaHVh biBiaSBraXAuDQoNCkNhaSBnaSBkYXQgbyBkYXUgY2FuIHBoYWkgY28gc28gZG8sIHRoaWV0IGtl IG1vdCBjYWNoIGhvcCBseS4gQ2hhYyBuZ3VvaSB0YSBjdW5nIGNvIHRoaWV0IA0Ka2Ugbmh1bmcg bGFpIGtob25nIHRpbmggZGVuIGhpZXUgcXVhIGN1YSBubyBtYSBjaGkgZGUgdGFtIGRlbiBjbyBk ZW4ga2VuIHRyb25nLg0KDQpMZSByYSwgdHJ1b2MgdGluaCBoaW5oIGRvIEJhbiB0byBjaHVjIHBo YWkgbm9pIGNobyBuZ3VvaSBkYW4gaGlldSByYW5nOiBWaSBraG9uZyBraXAgDQpjaHVhbiBiaSBu b2kgZHVuZyBjdWEgYmFvIHRhbmcgbmVuIHRhbSBsYXAgdmFvIGRvIG5odW5nIGNvIHZhdCBUaGFu ZyBMb25nIGN1YSBuaHVuZyANCm5oYSBzdXUgdGFtIHR1IG5oYW4uDQoNClJvIHJhbmcgZG8ga2hv bmcgcGhhaSBsYSBtb3QgY3VvYyB0cnVuZyBiYXkgYmFvIHRhbmcgbWFuZyB0aW5oIGNodXllbiBu Z2hpZXAsIGR1IGxhIA0KdHJpZW4gbGFtIG5oYXQgdGhvaS4gRHVhIG1vdCBjdW9jIHRydW5nIGJh eSBxdWEgbmdoaWVwIGR1IHZhbyBtb3QgdG9hIG5oYSBiYW8gdGFuZyANCm1hbmcgdGluaCBoaWVu IGRhaSBuaGF0LCB0aGkgZG8gbGEgbW90IHN1IHF1YSBjb2kgdGh1b25nIGNoYXQgbHVvbmcgY3Vh IG1vdCBiYW8gdGFuZyBvIA0KdGhlIGt5IDIxLg0KDQpOaGlldSBwYS1ubywgY2F1IGNodSBraG9u ZyBkYXQgeWV1IGNhdSwgdGhhbSBjaGkgY29uIGRhIG5oYXUuIE5odW5nIGNhaSBkbyBtYW5nIGRh bmggDQp2YW4gaG9hIG5odW5nIGxhaSBsYSBwaGFuIHZhbiBob2EsIHZpIG5vIGtob25nIG5odW5n IGxvbiB4b24gbWEgY29uIHRhbyByYSBuaHVuZyBuaGFuIA0KdGh1YyBzYWkgbGFtIHZlIHN1IHRv biB0cm9uZyB2YW4gaG9hLiBEbyBsYSBkaWV1IHRvaSBreSBkb2kgdm9pIG5odW5nIG5ndW9pIGxh bSBjb25nIHRhYyANCmdpbiBnaXUgdmEgcGhhdCBodXkgY2FjIGRpIHNhbi4NCg0KRG8ga2hvbmcg Y2hpIGxhIGJhaSBob2MgbG9uIGNobyBIYSBOb2ksIGN1bmcgbGEgYmFpIGhvYyBsb24gY2hvIGNh IG51b2MgdmUgY2F1IGNodXllbiANCmNoYXkgdGhlbyB0aGFuaCB0aWNoLCBraGFuaCB0aGFuaCB2 byBjb25nIHRyaW5oIGNobyBraXAgbmdheSBreSBuaWVtIGxvbi4NCg0KTmV1IGNodW5nIHRhIG5v aSBybyByYW5nIHZvaSBuZ3VvaSBkYW4gcmFuZzogRGF5IGxhIGxlIGtoYW5oIHRoYW5oIG1vdCB0 b2EgbmhhIHNlIHRybyANCnRoYW5oIG1vdCBiYW8gdGFuZyB0cm9uZyB0dW9uZyBsYWksIHRoaSBu Z3VvaSBkYW4gc2UgcmF0IHRodSB2aS4gTmh1bmcgbm9pIGxhIGtoYW5oIHRoYW5oIA0KQmFvIHRh bmcgSGEgTm9pIHZvaSBuaHVuZyBoaWVuIHZhdCB0cnVuZyBiYXkgdmUgSGEgTm9pIG5odSB2YXks IHNlIG1hbmcgbW90IHRpZW5nIA0KeGF1IGNobyBCYW8gdGFuZyByYW5nOiBIYSBOb2kgY2hpIGRh dCBkZW4gbW90IHRyaW5oIGRvIHRoZSB0aG9pLCBjb25nIHRhYyBiYW8gdGFuZyBjdW5nIA0KY2hp IGNvIHZheSBtYSB0aG9pLg0KDQooQW5oOiBCYW8gdGFuZyBIYSBOb2kgliB2b2kga2llbiB0cnVj IGxhIGxhKSANCg0KTmV1IGN1IHRoZW8gZGEgbmF5LCB2YW4gZ2l1IGtpZXUgbGFtIGN1LCBjaGFj IGNoYW4gY2FjIHRydW5nIGJheSB0aWVwIHRoZW8gY3VhIGJhbyB0YW5nIA0Kc2Ugdm8gY3VuZyBu Z3V5IGhpZW0sIHZpIHRhbyBjaG8gbmd1b2kgdGEgdGhvYWkgcXVlbiBjdSBsYW0gdHV5IHRpZW4g bmh1IHZheSB2YW4gZHVvYyANCmNoYXAgbmhhbi4gTWllbiBzYW8gY28gdGhlIGR1YSByYSBjb25n IGNodW5nIHRyb25nIG5odW5nIGRpcCBkYWMgYmlldCBtYSBraG9uZyBxdWFuIA0KdGFtIGRlbiBj aGF0IGx1b25nLCBraG9uZyBjYW4gYmlldCBzYW4gcGhhbSBjdWEgYW5oIGxhIGdpLCBkdWEgdmFv IGRvIG5odW5nIGhpZW4gdmF0IA0KbmFvLCBnaWEgdHJpIHZhIHRob25nIGRpZXAgY3VhIG5vIGxh IGdpLg0KDQpCYW8gdGFuZyBIYSBOb2kga2hvIHhheSBkdW5nIG1vdCB0aHVvbmcgaGlldSBjbyB1 eSB0aW4gbmdheSB0dSBkYXUsIHZpIHRoZS4NCg0KSG9hbmcgdGhhbmggVGhhbmcgTG9uZyBjdW5n IGR1b2MgY28gZ2FuZyBkdWEgdmFvIHRydW5nIGJheSwgY2EgbyBraHUga2hhaSBxdWF0IGtoYW8g DQpjbyBsYW4gSG9hbmcgdGhhbmgsIG1hIGtob25nIHRpbmggdG9hbiBkYXkgZHUgZGVuIGNoYXQg bHVvbmcuIENobyBuZW4gYmVuIGNhbmggbmh1bmcgDQpjbyB2YXQgbW9pIGR1b2Mga2hhaSBxdWF0 IGxlbiB0cm9uZyBtYXkgbmFtIHZ1YSByb2kgLSBtb3Qgc28gdHJvbmcgZG8gZHVvYyBjYWMgbmhh IGJhbyANCnRhbmcgaG9jIHZhIGtpZW4gdHJ1YyBzdSBub2kgdGhhdCBuZ3VvaSBQaGFwIHRoaWV0 IGtlIHRydW5nIGJheSByYXQgZGVwIHZvaSB0dSBraW5oLCBnaWEgZG8gDQpoaWVuIHZhdCBkdW9j IHRoaWV0IGtlIGNodXllbiBkdW5nLCBhbmggc2FuZywgZG8gaG9hIGRhdCBjaHVhbiBxdW9jIHRl LCB0aGkgbGFpIGxhbiBsb24gdm9pIA0Kbmh1bmcgdHJ1bmcgYmF5IGRvIGNvIGtoYWMgbW90IGNh Y2ggdHV5IHRpZW4uDQoNCk5ndW9pIHhlbSB2YSBuZ3VvaSBsYW0gY29uZyB0YWMgZGkgc2FuIGN1 bmcgaGlldSByYW5nIEJhbiBRdWFuIGx5IGRpIHRpY2ggbmF5IGNoaXUgc3VjIA0KZXAgcmF0IGxv biB0cm9uZyBkaXAgRGFpIGxlLiBQaGFpIHRodWEgbmhhbiByYW5nIGhvIGN1bmcgZGEgY28gZ2Fu Zywgbmh1bmcgbyBkYXkgY2FuIGNvIA0Kc3UgbHVhIGNob24ga2hvbiBuZ29hbiBob246IEl0IG1h IHRvdCBoYXkgbmhpZXUgbWEgY2hhdCBsdW9uZyBrZW0gZGUgcm9pIGR1YSB0b2kgbmh1bmcgDQp0 aGF0IHZvbmcuDQoNCiJDYWkgdGhhbmggbGljaCBjdWEgSGEgTm9pIG8gZGF1Ig0KDQpEaXAgRGFp IGxlIGt5IG5pZW0gMTAwMCBuYW0gVGhhbmcgTG9uZywgZ2lvaSBkaSBzYW4gdmEgZ2lvaSB2YW4g aG9hIEhhIE5vaSBkYSBraG9uZyANCmJpZXQgdHJhbmggdGh1IG1vdCBjbyBob2kgbmdhbiB2YW5n IG5odSB0aGUgZGUgbGFtIG5odW5nIGNhaSBuaG8gbWEgcmF0IGNvIGljaCBjaG8geGEgDQpob2ks IGNvIGljaCBjaG8gSGEgTm9pLiBUYXQgY2Egbmh1bmcgY2FpIGRvIG5ob24gdGllbiwgdmEgbmFt IHRyb25nIGxvbmcgYmFuIHRheSBjaHVuZyANCnRhLCB2dWEga2hvbmcgdG9uIGtlbSBtYSBsYWkg ZGUgbGFpIG5odW5nIGFuIHR1b25nIGxhdSBkYWkgdHJvbmcgbG9uZyBuZ3VvaS4NCg0KTmdvaSBu aGEgbyBIYW5nIE5nYW5nIG5vaSBCYWMgSG8gdmlldCBUdXllbiBuZ29uIERvYyBsYXAsIHRydW9j IERhaSBsZSBraG9hbmcgdmFpIA0KdGhhbmcgdG9pIGRhIGxlbiBkbyB4ZW0sIG5naGkgcmFuZyBu Z3VvaSB0YSBwaGFpIHN1YSBzYW5nIHZhIHRydW5nIGJheSBjaG8gdG90LiBUaGUgDQpuaHVuZyB0 cm9uZyBzdW90IDEwIG5nYXkgRGFpIGxlLCBkaWEgY2hpIGRvIHZhbmcgbmh1IGNodWEgQmEgRGFu aCENCg0KRGFpIGxlIGxhIGt5IG5pZW0gY3VhIFRodSBkbywgY3VhIGRhdCBudW9jLCBjaHUgZGF1 IHBoYWkgY2hpIGNvIG5odW5nIGRpIHNhbiB2ZSB2dWEgTHkgDQpDb25nIFVhbiEgQ2hpIGJpZXQg Y28gTHkgQ29uZyBVYW4gbGEgbW90IGNhaSByYXQgbGEgc2FpLiBDaHVuZyB0YSBuaGFuIGNhdSBj aHV5ZW4gY3VhIA0KTHkgQ29uZyBVYW4gZGUgbm9pIGNodXllbiBuZ2F5IG5heSBtb2kgbGEgZGll dSBxdWFuIHRyb25nLg0KDQpWaSBjaHVuZyB0YSBxdWEgdGFwIHRydW5nIHZhbyB2dWEgTHkgQ29u ZyBVYW4gdmEgbmh1bmcgZ2kgdGh1b2MgdmUgdGhvaSBuaGEgTHkuIENvbiANCm5odW5nIGRpIHRp Y2ggY3VhIEhhIE5vaSA2NSBuYW0gcXVhLCAxMDAgbmFtIHF1YSBjdW5nIHJhdCB0dXlldCB2b2kg dGhpIGxhaSBraG9uZyBkdW9jIA0KZGUgeSBkdW5nIG11YyBkZSBtYSBub2kgdGllcCBuaHVuZyBj YXUgY2h1eWVuIGRvLiBOZ29pIG5oYSBub2kgQmFjIEhvIHZpZXQgVHV5ZW4gDQpuZ29uIERvYyBs YXAgdGhpIGdhbiBuaHUgYmkgYm8gaG9hbmcuDQoNCkNvbmcgYmFuZyBtYSBub2kgY2FjaCBkYXkg dmFpIHRoYW5nIG5ndW9pIHRhIGN1bmcgY28gbGFtIGxhaSBtb3QgY3VvYyB0cnVuZyBiYXksIA0K bmh1bmcgcGhhaSBub2kgZG8gbGEgY3VvYyB0cnVuZyBiYXkgdGh1b2MgbG9haSBkdW9pIG11YyBi aW5oIHRodW9uZzogTW90IGNhaSB2YS1saSBtYSANCkJhYyBIbyBkaSB0dSBQYWMgQm8gdmUsIGNo YSBiaWV0IHZhLWxpIHRoYXQgaGF5IGdpYSwgbWEgbGFpIHRyZW8gbyB0cmVuIHR1b25nIGNodSBr aG9uZyBkZSANCnZhbyB0dSBraW5oLiBDaHUgZGUgdHJ1bmcgYmF5IHRoaSBkYW4gdHJhaSBxdWEg a2hvbmcgZ2lhbiBjdWEgbmdvaSBuaGEgbmF5Lg0KRGF1IHR1IGNobyB0cnVuZyBiYXkgbGFpIGl0 IG9pLiBUYW5nIDIgdmEgdGFuZyAzIGN1YSB0b2EgbmhhIHBob25nIHBodSBuaHUgdmF5IG1hIGdh biANCm5odSBiaSBibyB0cm9uZy4gVGh1IHBoYXAgdHJ1bmcgYmF5IGhhbiBjaGUsIG5odSBjYWNo IGRheSBudWEgdGhlIGtpLiBOZ3VvaSB4ZW0ga2hvIA0KdGltIGNodXQgaGFwIGRhbiB2YSB4dWMg ZG9uZy4NCg0KVmEgY3VuZyBsYWkga2hvbmcgY28gbW90IHR1eWVuIHRydXllbiBuYW8gdmUgc3Ug dHJ1bmcgYmF5IG8gZGlhIGNoaSBuYXksIHZheSB0aGkgYWkgZGkgDQp4ZW0/DQoNCk5nb2kgbmhh IG8gOTAgcGhvIFRobyBOaHVvbSBub2kgZG9uZyBjaGkgVHJhbiBQaHUgdmlldCBDdW9uZyBsaW5o IGN1bmcgbmh1IHZheS4gVmEgDQpjYSBuZ29pIG5oYSBvIHNvIDVEIEhhbSBMb25nIG5vaSBjaGkg Ym8gRGFuZyBDb25nIHNhbiBkYXUgdGllbiBkdW9jIHRoYW5oIGxhcCBjdW5nIA0KZG9uZyBpbSBp bS4gSG9uIG51YSAyIGRpIHRpY2ggbm9pIHRpZW5nIG5heSBkZXUgYmkgY2hpZW0gZHVuZywgKGJv aSBjaGluaCBjYWMgY28gcXVhbiANCnZhbiBob2EpLg0KDQpOaGEgNUQgSGFtIExvbmcgdGhpIEJh byB0YW5nIEhhIE5vaSBsYXkgbGFtIG1vdCB0cnUgc28gY3VhIG1pbmggc3VvdCBiYW8gbmhpZXUg bmFtIA0KbmF5LiBOaGEgbnVvYyBsYXkgdG9hIG5oYSBkbyBsYW0gZGkgdGljaCBjaHUgY28gcGhh aSBkZSBsYW0gY28gcXVhbiBkYXUuIE5nb2kgbmhhIDkwIA0KVGhvIE5odW9tIHRoaSB0b2FuIGJv IHRhbmcgMiB2YSB0YW5nIDMgZG8gQmFuIFF1YW4gbHkgZGkgdGljaCBvIEhhIE5vaSBjaGllbSBk dW5nLg0KDQpMZSByYSBjYSAzIGRpYSBjaGkgbmF5IGRldSB0cm8gdGhhbmggbmh1bmcgYmFvIHRh bmcgdHV5ZXQgdm9pIGN1YSBIYSBOb2kgbmV1IGNodW5nIHRhIGJpZXQgbGFtLg0KDQpOZ29pIG5o YSBub2kgQmFjIEhvIHZpZXQgVHV5ZW4gbmdvbiBsYSBtb3QgbmdvaSBuaGEgY3VhIGdpYSBkaW5o IG9uZyBUcmluaCBWYW4gQm8tICANCmRhaSB0dSBzYW4gVmlldCBOYW0uIENodW5nIHRhIGNvIHRo ZSBwaHVjIGR1bmcgdG9hbiBibyBjdW9jIHNvbmcgdmEgc3UgYnVvbiBiYW4gY3VhIA0KbmhhIGRh aSB0dSBzYW4gZG8gdmFvIHRob2kgZGllbSBuYW0gMTk0NSBuaHUgdGhlIG5hby4gTmd1b2kgdGEg Y28gdGhlIGRlbiB4ZW0gZGUgaGlldSANCkJhYyB2aWV0IFR1eWVuIG5nb24gRG9jIGxhcCBuaHUg dGhlIG5hbyB0cm9uZyBtb3Qga2h1bmcgY2FuaCwga2hvbmcgZ2lhbiBjdWEgbW90IGdpYSANCmRp bmggdHUgc2FuLiBIaWV1IGR1b2MgbmVwIHNvbmcgY3VhIG5ndW9pIFZpZXQgTmFtLCBuZ3VvaSBI YSBOb2kgZ2l1YSB0aGUga3kgMjAgbyBwaG8gDQpjbyBIYSBOb2kgcmEgc2FvLg0KDQpDaG8gbmVu IHRydW5nIGJheSBvIGRheSBraG9uZyBwaGFpIGNoaSBjbyBCYWMgbWEgY29uIHBoYWkgY28gY2Eg bmh1bmcgY29uIG5ndW9pIHZhIA0KY3VvYyBzb25nIGN1YSBnaWEgY2h1IHRyb25nIGNhbiBuaGEg ZG8gbnVhLiBMYW0gZHVvYyBkaWV1IG5heSB0aGkgdG9hIG5oYSBkbyBjbyBraGFjIGdpIA0Kbmhh IGN1YSBWaWN0b3IgSHVnbyBoYXkgVm9udGUgLi4uIG1hIGJhbyBuaGlldSBkdSBraGFjaCBkZW4g eGVtLg0KDQooQW5oOiBOZ29pIG5oYSBzbyA1RCBIYW0gTG9uZykgDQoNClRoZSBuaHVuZywgbyBu Z29pIG5oYSBkbyBuZ3VvaSB0YSBsYWkga2UgdG9hbiBibyBzdSBuZ2hpZXAgY3VhIEJhYywgZGkg UGFjIEJvIG5odSB0aGUgDQpuYW8gcm9pIENhY2ggbWFuZyByYSBzYW8sIHJvaSBraGFuZyBjaGll biBjaG9uZyBNeSBjaG9uZyBQaGFwLi4uIEFpIGNhbiB4ZW0gbmh1bmcgDQpjYXUgY2h1eWVuIGRv IG8gZGF5Pw0KDQpOZ3VvaSB0YSBjYW4gY2F1IGNodXllbiB2ZSBjdW9jIHNvbmcgdmUgbW90IGdp YSBkaW5oIHR1IHNhbiBvIFZpZXQgTmFtIHRydW9jIHZhIHRyb25nIA0KbmFtIDE5NDUsIHZhIGNh dSBjaHV5ZW4gdmUgQmFjIEhvIHRyb25nIG5odW5nIG5nYXkgQ2FjaCBtYW5nIFRoYW5nIFRhbS4g Tmd1b2kgDQp4ZW0gY2FuIGJpZXQgdGFpIHNhbyBuaGEgdHUgc2FuIGF5IGxhaSBkdW0gYm9jIHZh IGN1dSBtYW5nIGNhY2ggbWFuZy4gVGhlIGxhIGR1LiBIbyBzZSANCnh1YyBkb25nLg0KDQpEYXUg cGhhaSBuZ3VvaSB0YSBkZW4gZGF5IGRlICJkb2Mgc2FjaCIgdmUgdG9hbiBibyBsaWNoIHN1IENh Y2ggbWFuZyBWaWV0IE5hbSB0dSANCm5odW5nIG5hbSAxOTMwIGRlbiBuYXkuIENodW5nIHRhIGRh dSBjaGkgdHUgaGFvIHZlIEhvIENodSB0aWNoIG5nb2kgdmlldCBUdXllbiBuZ29uIA0KRG9jIGxh cCBtYSBjb24gdHUgaGFvIHZlIHZhbiBob2EgY3VhIG5ndW9pIEhhIE5vaS4gQ3VuZyBuaHUgbmh1 bmcgbmdvaSBuaGEgbGljaCBzdSBvIA0KY2hhdSBBdSwgbmd1b2kgdGEgY3VuZyBwaHVjIGR1bmcg dmEgdHUgaGFvIHZlIG5odW5nIGNhdSBjaHV5ZW4gbyBkby4NCg0KQ29uIG5nb2kgbmhhIG5vaSBU cmFuIFBodSB2aWV0IEN1b25nIGxpbmggbyBkdW9pIGhhbSwgdHJvbmcgY2FuIGJ1b25nIGN1YSBt b3Qgb25nIA0KbGFtIGJlcCwgbmd1b2kgdGEgY2hpIGNodSB5IHRydW5nIGJheSByaWVuZyBvIGNh biBoYW0gZG8gdGhvaS4gTWEgdGh1YyB0ZSwgYmF5IGdpbywgbmdheSANCmNhIGNhaSBoYW0gZG8g Y3VuZyB0cm8gdGhhbmggbm9pIGRlIHhlIG1heSBoYW5nIG5nYXkgY3VhIGNhbiBibyBCYW4gUXVh biBseSBkaSB0aWNoLiANCkRvIGxhIG1vdCBzdSB4dWMgcGhhbSBsaWNoIHN1Lg0KDQpbVG9pIGN1 bmcgY28gZ2FuZyByYSBCbyBIbyBkZSB0aHVvbmcgdGh1YywgeGVtIGtob25nIGtoaSBuZ3VvaSBk YW4gSGEgTm9pIGxhIG5odSB0aGUgDQpuYW8gdHJvbmcgbmh1bmcgbmdheSBEYWkgbGUsIG5odW5n IGtob25nIHRoZSBjaGl1IG5vaSBwaGFpIGRpIHZlIG5nYXkuIEJvaSB2aSBkaW5oIHRhaSANCm5o dWMgb2MuIERhIGxhIGFtIG5oYWMsIHRpZW5nIHRyb25nIHRpZW5nIGRhbiB0aGkgcGhhaSB0aGUg aGllbiBjYWkgaGF5IGNhaSBkZXAgY3VhIG5vLCANCmNodSBraG9uZyBwaGFpIGN1IGdvIGNhbmcg dG8gY2FuZyB0b3QuIA0KQ2FjIGdvYyBjdWEgQm8gSG8gY3UgZGEgbmhhdSB0YXQgY2EgbW9pIHRo dSwgY29uIGRhdSBtYSB0aHVvbmcgdGh1YyBkdW9jIG51YS4gRGF1IA0KcGhhaSBjdSBjYW5nIG5o aWV1IGFtIHRoYW5oIHRyb25nIG5odW5nIGNobyBkbyBsYSB2dWksIGxhIHRhbmcgY3VvbmcgY2Fp IGdvaSBsYSBIb2kgZGF1Lg0KVHJvbmcgSG9pIHZhbiBjYW4gY2FpIHN1IHRpbmguIENvIHRoZSBv IG1vdCBraG9uZyBnaWFuIG5hbyBkbyB2dWkgbmhvbiwgbmh1bmcgbyBraG9uZyANCmdpYW4ga2hh YyBwaGFpIFRpbmggZGUgY2hvIG5ndW9pIHRhIGNhbSBuaGFuIHNhdSBzYWMsIHZpIGR1IG5odSBv IHRydW9jIHR1b25nIHZ1YSBMeSANClRoYWkgVG8sIHRydW9jIGNvbmcgZGVuIE5nb2MgU29uLg0K Tmd1b2kgdGEgY2FuIGR1b2MgZGkgYm8gcXVhbmggSG8gR3VvbSwgdGh1b25nIHRodWMgdmUgZGVw IGx1bmcgbGluaCBjdWEgVGhhcCBSdWEsIA0KY2FtIG5oYW4gdmUgZGVwIGN1YSBkZW4gY2hpZXUg eHVvbmcgbWF0IGhvLCBuZ3VvaSB0YSBjYW4gZGVuIHRydW9jIHR1b25nIGRhaSBMeSBUaGFpIA0K VG8gZGUgY2FtIG5oYW4gdmEgc3V5IG5naGkgdmUgTHkgVGhhaSBUbyByYSBzYW8uXQ0KDQpIbyBj aGkga2hhaSB0aGFjIFRyYW4gUGh1IHZpZXQgbHVhbiBjdW9uZyBvIGR1b2kgaGFtIHZhIHR1b25n IHJhbmcgZGEgbGEgc3UgdG9uIHZpbmguIA0KRG8gbGEgbW90IHNhaSBsYW0gbmdoaWVtIHRyb25n LiBEZW4gZG8gY2h1bmcgdGEgY2FuIGhpZXUgYm9pIGNhbmg6IENhbiBuaGEgZG8gbGEgbmhhIA0K Y3VhIGFpLCBnaWEgY2h1IHZhIG5odW5nIG5ndW9pIG8gZG8gc29uZyBuaHUgdGhlIG5hby4gRG8g bGEgbmhhIGN1YSBtb3Qgb25nIHR1IHNhbiANCm5ndW9pIFBoYXAuIE8gZG8gY2h1bmcgdGEgY28g dGhlIHZhIHRydW9jIGhldCBuZW4gZ2lvaSB0aGlldSB2ZSBjdW9jIHNvbmcgY3VhIG5odW5nIA0K bmd1b2kgUGhhcCBvIFZpZXQgTmFtIGRhdSB0aGUga3kgMjAgcmEgc2FvLg0KDQpDaGFjIGhvIHNv IGtpZW4gdHJ1YyB2YSBobyBzbyBjdWEgZ2lhIGNodSBuZ29pIG5oYSBjb24gZHVvYyBsdXUgdHJ1 IGhvYWMgbyBWaWV0IE5hbSANCmhvYWMgbyBQaGFwLiBDaHVuZyB0YSBwaGFpIGJvIGNvbmcgdGlt IGtpZW0uIENodW5nIHRhIGdpb2kgdGhpZXUgZHVvYyBjdW9jIHNvbmcgY3VhIA0KVHJhbiBQaHUg bmh1bmcgbmdheSB2aWV0IEN1b25nIGxpbmggbmh1IHRoZSBuYW8sIHBodWMgZHVuZyB0b2FuIGJv IGtodSBuaGEgZG8sIGtlIGNhIA0Ka2h1IG5oYSBuZ2FuZywgbmh1bmcga2h1IG5oYSBuZ2FuZyB0 aGkgbmF5IGRhIGJpIHBoYSBkaSByb2kuIFRodWMgdGUgbWEgbm9pIGRvIGxhIHN1IA0KeGFtIHBo YW0gZGkgdGljaC4gVHVjIGxhIG5odW5nIG5ndW9pIGxhbSBxdWFuIGx5IGRpIHRpY2ggbWEgbGFp IHhhbSBwaGFtLCBwaGEgaG9haSBkaSANCnRpY2ggbmhpZXUgbmhhdA0KDQpIYWkgbmdvaSBuaGEs IDEgbmdvaSBuaGEgY28gdGhlIHRhaSBoaWVuIGN1b2Mgc29uZyBjdWEgZ2lhIGRpbmggdHUgc2Fu IFZpZXQgTmFtLCAxIG5nb2kgDQpuaGEgY3VhIHR1IHNhbiBQaGFwLiBEbyBraG9uZyBwaGFpIGNo dW5nIHRhIHRvbiB2aW5oIG5oYSB0dSBzYW4gUGhhcCwgbWEgbGEgY2h1bmcgdGEgDQpkYXQgb25n IFRyYW4gUGh1IHRyb25nIGJvaSBjYW5oIGN1YSBnaWEgZGluaCB0dSBzYW4gUGhhcCBkbywgdmEg ZGF0IHZhbiBob2EgY3VhIFBoYXAgDQp0cm9uZyB2YW4gaG9hIFZpZXQgTmFtIHZhbyBkYXUgdGhl IGt5IDIwLg0KDQpOZ29pIG5oYSBvIDVEIEhhbSBMb25nIGxhIG5oYSBjdWEgbmd1b2kgZGFuIGJp bmggdGh1b25nLCBjdW9jIHNvbmcgY3VhIG5ndW9pIGRhbiANCmJpbmggdGh1b25nIG5odW5nIG5h bSAzMC4gVmF5IGNoaSBxdWEgMyBuZ29pIG5oYSBkbyB0aG9pIGNodW5nIHRhIGNvIGNhIG1vdCBi b2kgY2FuaCANCmN1YSBIYSBOb2kgdmFvIHRoZSBreSAyMC4gRG8gY2hpbmggbGEgbGljaCBzdSB0 aHVjIHN1IHZhIHNvbmcgZG9uZyBjdWEgVmlldCBOYW0uDQoNCkNhY2ggbmhpbiBkbyBzZSBtbyBy YSBjaG8gY2h1bmcgdGEgcmF0IG5oaWV1LiBEbyBzZSBsYSBtb3QgdG91ciBkdSBsaWNoIGhhcCBk YW4uIFZhIGNoYWMgDQpyYW5nLCBiYW8gbmhpZXUgbmd1b2kgUGhhcCBkZW4gSGEgTm9pIGR1IGxp Y2gsIHR1bmcgYXkgY29uIG5ndW9pIHNlIGRlbiB0aGFtIGNhYyBuZ29pIA0KbmhhIGRvLiBOaHUg dmF5IHNlIG1hbmcgbG9pIGNobyBkdSBsaWNoIGN1YSBIYSBOb2kgZGVuIG11YyBkbyBuYW8uDQoN Ck5heSBuaHVuZyBuZ3VvaSBxdWFuIGx5IGR1IGxpY2ggdGh1b25nIHBoYW4gbmFuIG8gSGEgTm9p IGNoaSB0aGFtIHRodSAxIG5nYXkgbGEgDQpraG9uZyBiaWV0IGNvbiBub2kgbmFvIGRlIHRoYW0g bnVhLiBUcm9uZyBraGkgbmh1bmcgZGlhIGNoaSBuaHUgdGhlIGxhIG5odW5nIG5nb2kgbmhhIA0K aG90IHJhIHRpZW4uIERvIGxhIG5odW5nIHRvYSBuaGEgdmFuIGhvYSBjdWEgSGEgTm9pLg0KDQpU cm9uZyBkaXAgMTAwMCBuYW0sIHRhcCB0cnVuZyBjYSBtYXkgbmdhbiB0aSBkb25nIHhheSBCYW8g dGFuZyBIYSBOb2kgbWEgYm8gcXVhIA0Kbmh1bmcgbmdvaSBuaGEgbmF5LCBuZ2FuaCB2YW4gaG9h IGRhIGJvIGxvIG1vdCBjbyBob2kuIERvIGxhIGRpZXUgcmF0IGRhbmcgdGllYy4NCg0KQ2FpIHRo YW5oIGxpY2ggY3VhIG5ndW9pIEhhIE5vaSBuYW0gbyBkYXksIGNvIGNoaWV1IHNhdSB2YSBuZ3Vv biBnb2MgY3VhIG5vLiBDaHUgZGF1IA0KcGhhaSBjdSBzdW90IG5nYXkgY3UgcmEgcmljaCAiY2Fp IHRoYW5oIGxpY2ggY3VhIEhhIE5vaSBvIGRhdSIgcm9pIGRpIHRpbSBjYWkgdGhhbmggbGljaCBv IA0Kbmh1bmcgZGlldSBjaGF5IHRoZW8gdGhhbmggdGljaCwga2hhdSBoaWV1LiANCg0KaHR0cDov L3VzLjI0aC5jb20udm4vdGluLXR1Yy10cm9uZy1uZ2F5L21lby1tYXQtZGktdmUtc2luaC1vLXBo by1jby1jNDZhMzE0MTk3Lmh0bWwgMzAvMDcvMjAxMCwgMTY6MTUNCg0KSGEgTm9pOiBNZW8gbWF0 IGRpIHZlIHNpbmggbyBwaG8gY28gDQoNCkNhbmggeGVwIGhhbmcsIGhvYWMgdHJhbmggbmhhdSBk aSAiZ2lhaSBxdXlldCBub2kgYnVvbiIgbyBwaG8gY28ga2hvbmcgY29uIGxhIGNodXllbiBoaWVt IHRoYXkgdm9pIG5ndW9pIGRhbiBub2kgZGF5Lg0KDQpodHRwOi8vYmVlLm5ldC52bi9jaGFubmVs LzE5ODMvMjAxMDA0L01hYy1kb25nLXBodWMtY2hvLW5oYS1tYXQtcGhvLUNvbmctbmhhbi1sYW0t YXUtcXVhLTE3NTExMjkvIDI1LzA0LzIwMTAgMDY6NTU6MDUgDQoNCkhhIE5vaTogTWFjIGRvbmcg cGh1YyBjaG8gbmhhIG1hdCBwaG86IHRoaSBjb25nIGxhbSBhdSBxdWEhIA0KDQpodHRwOi8vdmll dG5hbW5ldC52bi94YWhvaS8yMDA5LzA3Lzg1NzgyNi8gVHJhbmcgQW4gTmd1eWVuIDA2OjM2LCAx My8wNy8yMDA5IChHTVQrNykgDQoNCkhhIE5vaTogSG9uIDUwMCBkdSBhbiBuaGFuIGRhdCBkZSAn bmdhbScNCg0KVHJvbmcgMy40MDEgZHUgYW4gdG9uZyBkaWVuIHRpY2ggMzMuMTQzaGEgZGF0IGRh IGR1b2MgZ2lhbywgY2hvIHRodWUgdHJlbiBkaWEgYmFuIEhhIE5vaSANCnRyb25nIHZvbmcgNiBu YW0gKHR1IDIwMDMgZGVuIGtoaSBUaHUgZG8gZGEgZHVvYyBtbyByb25nKSwgaG9uIDUwMCBkdSBh biBiaSBjb2kgbGEgDQoidHJlbyIsIGNoYW0gdHJpZW4ga2hhaSBkdW9pIG5oaWV1IGRhbmcuLi4N Cg0KSGFuZyBsb2F0IGR1IGFuIG5oYW4gZGF0IGRlLi4uICJuZ2FtIg0KDQpUaGVvIFBobyBDaHUg dGljaCBVQk5EIFRQIEhhIE5vaSBWdSBIb25nIEtoYW5oLCBjYWMgZHUgYW4gY2hhbSB0cmllbiBr aGFpIA0KKHRodW9uZyBnb2kgbGEgZHUgYW4gInRyZW8iKSB0YWkgVGh1IGRvIGhpZW4gbmF5IGNv IHRoZSBwaGFuIHRoYW5oIG5oaWV1IGRhbmc6IGNoYW0gdHJpZW4gDQpraGFpIHRyb25nIGdpYWkg cGhvbmcgbWF0IGJhbmc7IGtob25nIHN1IGR1bmcgZGF0IHRyb25nIDEyIHRoYW5nIGxpZW4ga2Ug dHUga2hpIG5oYW4gYmFuIA0KZ2lhbyBkYXQgdHJlbiB0aHVjIGRpYTsgY2hhbSAyNCB0aGFuZyBz byB2b2kgdGllbiBkbyBkdW9jIGR1eWV0OyBkYXQgYmkgY2h1eWVuIG5odW9uZyANCnRyYWkgcGhh cCBsdWF0LCBiaSBsYW4gY2hpZW0sIHRyYW5oIGNoYXAsIHN1IGR1bmcgc2FpIG11YyBkaWNoIGhv YWMgZG9uIGdpYW4gY2hhbSB2aSBjaHUgDQpkYXUgdHUgY2h1YSB0aHVjIGhpZW4gbmdoaWEgdnUg dGFpIGNoaW5oIHZvaSBOaGEgbnVvYy4uLg0KDQozLjQwMSBkdSBhbiBkYSBkdW9jIGNvIHF1YW4g TmhhIG51b2MgY28gdGhhbSBxdXllbiBnaWFvIGRhdCwgY2hvIHRodWUgZGF0IGtlIHR1IA0KMS8x LzIwMDMgZGVuIDMxLzEyLzIwMDggdGFpIEhhIE5vaSAoa2UgdHJlbiksIDEuODA5IGR1IGFuIGRh IGNvIFF1eWV0IGRpbmggdGh1IGhvaSB2YSANCmR1b2MgZ2lhbyBkYXQgZGUgdGh1YyBoaWVuIHRo ZW8gcXVpIGhvYWNoLCAxLjU5MiBkdSBhbiBkYSBjbyBRdXlldCBkaW5oIHRodSBob2kgdmEgY2hv IHRodWUgZGF0Lg0KDQpOZ3V5ZW4gbmhhbiBjaGFtIHRyaWVuIGtoYWkgImFwIGRhbyIgbmhhdCB2 YW4gbGEgdnVvbmcgZ2lhaSBwaG9uZyBtYXQgYmFuZyAoOCw2NCUgc28gDQpkdSBhbiBraWVtIHRy YSkuIENhIFRodSBkbyBjbyAyOTQgZHUgYW4gInRyZW8iIHZpIG1hdCBiYW5nLCB2b2kgdG9uZyBk aWVuIHRpY2ggMy40OTgsMmhhLiANClRyb25nIGRvLCAxODcgZHUgYW4gc3UgZHVuZyB2b24gbmdh biBzYWNoIHZhIDEwNyBkdSBhbiB2b24gbmdvYWkgbmdhbiBzYWNoLg0KDQoiVmllYyBOaGEgbnVv YyB0aGF5IGRvaSwgYm8gc3VuZyBjaGluaCBzYWNoIGxhbSBwaGF0IHNpbmgga2hvIGtoYW4sIHZ1 b25nIG1hYyBraGkgeHUgDQpseSBnaWFpIGRvYW4gY2h1eWVuIHRpZXAgZ2l1YSBjYWMgdGhvaSBr eSBkYSBhbmggaHVvbmcga2hvbmcgbmhvIHRvaSB0aWVuIGRvIGdpYWkgcGhvbmcgDQptYXQgYmFu ZywgbmhhdCBsYSBjYWMgZHUgYW4gcXVpIG1vIGxvbiwgdGhvaSBnaWFuIHRodWMgaGllbiBkYWku Li4gZGFuIHRvaSB0aGFjIG1hYywga2hpZXUgDQpraWVuIHR1IHBoaWEgbmh1bmcgbmd1b2kgZGFu IGJpIHRodSBob2kgZGF0IiAtIG5oYW4gZGluaCBjdWEgbGFuaCBkYW8gVGhhbmggcGhvIEhhIE5v aS4NCg0KKEFuaDogSGFuZyBuZ2hpbiBoZWN0YSBkYXQgVGh1IGRvIHZhbiBob2FuZyBuZ2F5IG5h eSBzYW5nIHRoYW5nIGtoYWMuLi4gQW5oOiBILkgpDQoNClR1eSBuaGllbiwgY3VuZyB0aGVvIFVC TkQgVFAgLSBtb3Qgc28gY2h1IGRhdSB0dSBybyByYW5nIGNodWEgbm8gbHVjLCBjb24gY2hvIGRv aSB0aGkgDQp0cnVvbmcgYmF0IGRvbmcgc2FuICJzb2kgZG9uZyIgdHJvIGxhaSBtb2kgdHJpZW4g a2hhaS4gTmhpZXUgdHJ1b25nIGhvcCBjaHUgZGF1IHR1IHRoaWV1IA0Kdm9uIHRyYSB0aWVuIGJv aSB0aHVvbmcsIGhvIHRybywgdGFpIGRpbmggY3UuLi4gaG9hYyBkb2FuaCBuZ2hpZXAgbmhvIG5o dW5nIGxhaSBkdW9jIGdpYW8gDQpkdSBhbiBsb24sIGhheSBjaHUgZGF1IHR1IGtob25nIGNodSBk b25nIGxvIHF1eSBuaGEgdGFpIGRpbmggY3UgY2hvIGRhbiBtYSBjb24gdGFtIGx5IA0KInRyb25n IGNobyIgcXV5IG5oYSBUaGFuaCBwaG8uDQoNClRoYW5oIHBobyBIYSBOb2kgY3VuZyB2dWEgdG9u ZyBrZXQgZHVvYyA0OCBkdSBhbiB0b25nIGRpZW4gdGljaCAxMzEsNWhhIGtlIHR1IGtoaSANCm5o YW4gZGF0IG5nb2FpIHRodWMgZGlhIGtob25nIHN1IGR1bmcgZGF0IDEyIHRoYW5nIGxpZW4uIFRy b25nIHNvIG5heSwgMTEgZHUgYW4gc3UgZHVuZyANCnZvbiBuZ2FuIHNhY2ggdmEgMzcgZHUgYW4g dm9uIG5nb2FpIG5nYW4gc2FjaC4NCg0KTmd1eWVuIG5oYW4gY2h1IGRhdSB0dSBjaHVhIGNodWFu IGJpIGR1IHRodSB0dWMgdmEgZGlldSBraWVuIGtob2kgY29uZyBjaHUgeWV1IGRvIA0KdGhpZXUg dm9uLiBNb3Qgc28ga2hhYyBkdSBkaWV1IGtpZW4ga2hvaSBjb25nIG5odW5nIGxhaSB4aW4gZGll dSBjaGluaCBjdWMgYm8gZGUgbmFuZyANCmNhbyBoaWV1IHF1YSBkYXUgdHUuLi4gZGFuIGRlbiAi dHJlbyIgZHUgYW4uDQoNCjM5IGR1IGFuIGtoYWMgdm9pIHRvbmcgZGllbiB0aWNoIDQyNSwyaGEg ZGF0IGR1b2MgcGhhdCBoaWVuIGNoYW0gMjQgdGhhbmcgc28gdm9pIHRpZW4gZG8gDQpkYSBkdXll dCwgdHJvbmcgZG8gNyBkdSBhbiB2b24gbmdhbiBzYWNoIHZhIDMyIGR1IGFuIHZvbiBuZ29haSBu Z2FuIHNhY2guIE5ndXllbiBuaGFuIA0KbGFpICJxdWFuaCBxdWFuIjogdGhpZXUgdm9uLCBkdW5n IGRlIHhpbiBkaWV1IGNoaW5oIHF1aSBob2FjaCwgY2h1eWVuIG11YyBkaWNoIHN1IGR1bmcgDQpk YXQgaG9hYyAibmFtIHllbiIgY2hvIHRoaSB0cnVvbmcgYmF0IGRvbmcgc2FuIHRob2F0ICJ0cmFt Ii4uLg0KDQpEYWMgYmlldCwgSGEgTm9pIHBoYXQgaGllbiAyNiBkdSBhbiB0b25nIGRpZW4gdGlj aCA3LDMyaGEgYmkgY2h1eWVuIG5odW9uZyB0cmFpIHBoYXAgDQpsdWF0LCBiaSBsYW4gY2hpZW0s IHRyYW5oIGNoYXAgaG9hYyBzdSBkdW5nIHNhaSBtdWMgZGljaC4uLiBnb20gMTEgZHUgYW4gdm9u IG5nYW4gc2FjaCANCnZhIDE1IGR1IGFuIG5nb2FpIG5nYW4gc2FjaC4NCg0KTmhhbiAiYnVhIiBk dSBjaHVhLi4uIGNvIHRpZW4hDQoNClJhIHNvYXQgY2FjIGR1IGFuIGtodSBuaGEgbywga2h1IGRv IHRoaSB0cmVuIGRpYSBiYW4gSGEgTm9pIGhvcCBuaGF0LCBjbyBxdWFuIGNodWMgbmFuZyANCiJs YW4gcmEiIDk4IGR1IGFuIHZvaSB0b25nIGRpZW4gdGljaCBkYXQgZHVvYyBnaWFvIGxhIDMuMTg2 aGEsIGRhbmcgbGUgcGhhaSBub3AgbmdhbiBzYWNoIA0KTmhhIG51b2MgdG9uZyBzbyB0aWVuIGhv biAxNSBuZ2hpbiB0aSBkb25nIG5odW5nIHRhdCBjYSBtb2kgbm9wIGhvbiA1IG5naGluIHRpLiBO aGEgDQpudW9jIGNvbiBwaGFpICJkb2kiIGNhYyBjaHUgZGF1IHR1IG5heSB0aHVjIGhpZW4gbmdo aWEgdnUgdGFpIGNoaW5oIGdhbiAxMCBuZ2hpbiB0aSBkb25nIA0KbnVhLg0KDQpMeSBkbyBuaGll dSBjaHUgZGF1IHR1ICJ2aWVuIiByYTogdGhpIHRydW9uZyBiYXQgZG9uZyBzYW4gdHJhbSBsYW5n LCBjaHVhIHRodSBob2kgZHVvYyANCmNoaSBwaGkgeGF5IGR1bmcgZGEgYm8gcmEgbmVuIGNodWEg Y28ga2hhIG5hbmcgbm9wIHRpZW4gc3UgZHVuZyBkYXQ7IHZpZWMgYm9pIHRodW9uZywgaG8gDQp0 cm8gdmEgdGFpIGRpbmggY3UgY2hhbSAtIGNodSBkYXUgdHUgcGhhaSB1bmcgdHJ1b2Mgc28gdGll biBsb24sIG5ldSBjaHVhIGR1b2MgYmFuIGdpYW8gDQpkYXQgdHJlbiB0aHVjIGRpYSBkZSB4YXkg aGEgdGFuZyByb2kgaHV5IGRvbmcgdm9uIG1hIGRhIHBoYWkgbm9wIHRpZW4gc3UgZHVuZyBkYXQg dGhpIHJhdCANCmtoby4uLiANCg0KVElOIExJRU4gUVVBTg0KKiBEYXQga2ltIGN1b25nLCBkYXQg dmFuZyAidnVuZyB2aXQiIGtoYXAgSGEgTm9pIA0KKiBCbyBraG9uZyBoYW5nIHRyYW0gaGVjdGEg ZGF0IFRodWRvLCB2YW4geGluIHRoZW0hPyANCiogSGEgTm9pIHF1eWV0IHNvIHBoYW4gaGFuZyBs b2F0IG5oYSwgZGF0ICJraW0gY3VvbmciIA0KKiBPIGF0IGJhbiB0cnUgc28gY3VhIE5oYSBudW9j IGNobyB0dSBuaGFuDQoNClRydW9jIGhhbmcgbG9hdCBkdSBhbiAidHJlbyIgbmF5LCBVQk5EIFRQ IEhhIE5vaSBjaG8gaGF5IGtlIHR1IG5hbSAyMDAxIGRlbiAyMDA1IA0KZGEgcXV5ZXQgZGluaCB0 aHUgaG9pIGRhdCBjdWEgNjcgdG8gY2h1YyBkZSBob2FuZywgc2FpIG11YyBkaWNoIHZvaSB0b25n IGRpZW4gdGljaCANCjU5LDczaGEuIFVCTkQgY2FjIHF1YW4sIGh1eWVuIGN1bmcgeHUgbHkgMzk3 IHRydW9uZyBob3AgdmEgdGh1IGhvaSAyMyw2aGEgZGF0LiANCg0KVGllcCBkbywgMjkgZHUgYW4g dG9uZyBkaWVuIHRpY2ggMjUwaGEgZGF0IHRodW9jIEhhIE5vaSBjdSBjaGFtIHRyaWVuIGtoYWkg c2F1IDEyIGhvYWMgDQoyNCB0aGFuZyBkYSBiaSB4dSBseSB0cm9uZyBuYW0gMjAwNiwgaG9uIDYw IGR1IGFuIGJpIHh1IGx5IHRyb25nIG5hbSAyMDA3IHZhIHJpZW5nIG5hbSANCjIwMDgsIFRoYW5o IHBobyBIYSBOb2kgcXV5ZXQgZGluaCB0aHUgaG9pIDQxLjE0OG0yIGRhdCBjdWEgNCBkb24gdmku DQoNCk51YSBkYXUgMjAwOSwgVUJORCBUUCBIYSBOb2kgZGEgcXV5ZXQgZGluaCB0aHUgaG9pIDQw Mm0yIGRhdCBibyBob2FuZyBjdWEgQ29uZyB0eSANCkR1IGxpY2ggSGEgTm9pIHRhaSAxNSAtIDE3 IFllbiBQaHUgKHF1YW4gVGF5IEhvKS4gNSBkb24gdmkgdmkgcGhhbSBkYXQgZGFpIGtoYWMgY3Vu ZyANCmRhbmcgYmkgbGFwIGhvIHNvIHRodSBob2kgZGF0OiBDb25nIHR5IEtoYWkgdGhhYyBjb25n IHRyaW5oIHRodXkgbG9pIEdpYSBMYW0gdm9pIA0KNi45MDBtMiBkYXQgdGFpIFNhaSBEb25nIChx dWFuIExvbmcgQmllbik7IENvbmcgdHkgVmluaCBIYSB2b2kgNC4zMDJtMiBkYXQgdGFpIFllbiAN ClZpZW4gKGh1eWVuIEdpYSBMYW0pOyBIVFggTm9uZyBuZ2hpZXAgTW8gTGFvIHZvaSAyLjM0MW0y IHRhaSBNbyBMYW8gKHF1YW4gSGEgDQpEb25nKTsgQ29uZyB0eSBDUCBEb25nIFRoYXAgdm9pIDM2 N20yIHRhaSAxMyBIYW5nIFRyZSB2YSBIVFggQ29uZyBuZ2hpZXAgQ1AgSG9hIA0KU2VuIHZvaSAy NjdtMiB0YWkgc28gMyBuZ28gMTI0IFRodXkgS2h1ZS4uLg0KDQpWb2kgdGh1YyB0ZSBuYXksIFRo YW5oIHBobyBIYSBOb2kgdGh1YSBuaGFuIHRhaSBuaGlldSBkdSBhbiAidmllYyB4dSBseSBjYWMg dmkgcGhhbSBjdWEgDQpjaGluaCBxdXllbiBkaWEgcGh1b25nIGNodWEgbmdoaWVtLCB0aGlldSBr aWVuIHF1eWV0LCBraG9uZyBkdXQgZGllbS4uLiBnYXkgYW5oIGh1b25nIA0KeGF1IHRyb25nIGR1 IGx1YW4geGEgaG9pIi4gDQoNCmh0dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9TYWktcGhh bS10cm9uZy1xdWFuLWx5LWRhdC1kYWktYmF0LWdpYW0tMy1jdXUtcXVhbi1jaHVjLzIwMDk1LzEz ODEzNi5sYW9kb25nIDEzLjUuMjAwOSAxNTozOCAoR01UICsgNykgDQoNCkhhIE5vaTogU2FpIHBo YW0gbmdoaWVtIHRyb25nIHRyb25nIHF1YW4gbHkgZGF0IGRhaSAgDQoNCkNvbmcgYW4gUXVhbiBI b2FuZyBNYWkgLSBIYSBOb2kgdnVhIGJhdCBnaWFtIGJhIGN1dSBjYW4gYm8gcXVhbiB2YSBwaHVv bmcgRGluaCANCkNvbmcsIGRvIGNvIGxpZW4gcXVhbiBkZW4gbmh1bmcgc2FpIHBoYW0gdHJvbmcg cXVhbiBseSBkYXQgZGFpIHRyZW4gZGlhIGJhbi4gDQoNCkJhIG5ndW9pIGJpIGJhdCBnaWFtIGxh IFRyaW5oIFRoYW5oIEhhIC0gbmd1eWVuIENodSB0aWNoIFVCTkQgcGh1b25nIERpbmggQ29uZywg DQpOZ3V5ZW4gVHJhbiBEZSAtIG5ndXllbiBjYW4gYm8gZGlhIGNoaW5oIHBodW9uZyBEaW5oIENv bmcgdmEgRGFuZyBEdWMgQ2F1IC0gbmd1eWVuIA0KcXV5ZW4gdHJ1b25nIHBob25nIGRpYSBjaGlu aCBxdWFuIEhvYW5nIE1haS4NCg0KVmFvIHRoYW5nIDYuMjAwNywgY2FuIGN1IHZhbyBobyBzbyBk aWEgY2hpbmggdmEgY2FjIHRhaSBsaWV1ICBsaWVuIHF1YW4gZG8gcGh1b25nIERpbmggDQpDb25n IGd1aSBsZW4sIFVCTkQgcXVhbiBIb2FuZyBNYWkgZGEgY2FwIDUwIGdpYXkgY2h1bmcgbmhhbiBx dXllbiBzdSBkdW5nIGRhdCBjaG8gDQpjYWMgaG8gZ2lhIGRpbmggdmEgY2EgbmhhbiBvIHBodW9u ZyBEaW5oIENvbmcuIFR1eSBuaGllbiwgdGFpIHRob2kgZGllbSBuYXksIG5odW5nIA0KbG8gZGF0 IHRyZW4gZGFuZyBsYSBkYXQgbm9uZyBuZ2hpZXAgdmEgY2h1YSBkdW9jIHBoZXAgY2h1eWVuIGRv aSBtdWMgZGljaCBzdSBkdW5nLiANClRoYW5nIDkuMjAwOCwgVUJORCBxdWFuIEhvYW5nIE1haSBs YWkgcmEgcXV5ZXQgZGluaCB0aHUgaG9pIDUwIHNvIGRvIHRyZW4uDQoNCmh0dHA6Ly93d3cuZG9p c29uZ3BoYXBsdWF0LmNvbS52bi9TdG9yeS5hc3B4P2xhbmc9dm4mem9uZXBhcmVudD0wJnpvbmU9 OSZJRD0yMTMzICAyOS8xMC8yMDA5LTEyOjQyIFBNIEhvIHNvIG1vaSBnaWFpIG1hdA0KDQpIYSBO b2k6IFNhaSBwaGFtIHRyb25nIHF1YW4gbHkgZGF0IGRhaSB0YWkgQmluaCBNaW5oLCBUaGFuaCBP YWkgKEhhIE5vaSkgLSBMYW5oIGRhbyB4YSBzYWkgLSBkYW4gcGhhaSBjaGl1PyANCg0KTmhpZXUg bmd1b2kgZGFuIGRhIGNvIG1hdCBidWMgeHVjIHZlIHRoYWkgZG8gY29pIHRodW9uZyBjYWMgY28g cXVhbiBuZ29uIGx1YW4gY3VhIGNoaW5oIHF1eWVuIHhhIA0KDQpUcm9uZyB0aGFuZyA1LjIwMDks IFVCTkQgaHV5ZW4gVGhhbmggT2FpIGxpZW4gdHVjIGNvIDMgdGhvbmcgYmFvIGtldCBsdWFuIHZl IG5odW5nIHZpIHBoYW0gDQp0cm9uZyBxdWFuIGx5IGRhdCBkYWkgY3VhIHhhIEJpbmggTWluaC4g RGlldSBkYW5nIG5vaSwgZGUgZGFuIGRlbiBuaHVuZyB2aSBwaGFtIHRyb25nIHF1YW4gbHkgZGF0 IGRhaSBuYXkgY28gc3UgInRpZXAgdGF5IiBjdWEgbmh1bmcgY2FuIGJvIGxhbmggZGFvIHRpZW4g bmhpZW0gdmEgZHVvbmcgDQpuaGllbSBjdWEgVUJORCB4YS4gTmh1bmcgYnVvbiB0aGF5LCBnYW5o IGNoaXUgaGF1IHF1YSBjaG8gbmh1bmcgdmllYyBsYW0gdGFjIHRyYWNoIA0KY3VhIGNhcCBjaGlu aCBxdXllbiBub2kgZGF5IGtob25nIGFpIGtoYWMgbGFpIGxhIG5odW5nIG5ndW9pIGRhbiBjaGFu IGxhbSB0YXkgYnVuLi4uDQoNClNhaSBwaGFtIG5vaSBzYWkgcGhhbQ0KDQpUcm9uZyB0aG9uZyBi YW8gc28gMTY5L1RCLVVCTkQgY3VhIFVCTkQgaHV5ZW4gVGhhbmggT2FpIGRhIGtldCBsdWFuIHJv OiBUdSB0aGFuZyA3LjIwMDMgZGVuIGRhdSB0aGFuZyA0LjIwMDQgVUJORCB4YSBCaW5oIE1pbmgg ZGEgY2hpIGRhbyB0byBjaHVjIGNobyANCmNhYyB0aG9uIENoYW0sIFRodW9uZywgeGV0IGNhcCBk YXQgbyBjaG8gY2FjIGhvIHZpIHBoYW0gY2hpZW0gZGF0IHRhaSBraHUgdnVjIGFvIHJhbmggDQpD dWEgVHJhaS0gTWlldSwgYW8gTWEgTGFuZzsgdHJvbmcga2hpIGRhIGNvIGNvbmcgdmFuIGNoaSBk YW8gY3VhIFVCTkQgaHV5ZW4geWV1IGNhdSANClVCTkQgeGEgeHUgbHkgdmkgcGhhbSB0YWkga2h1 IEN1YSBUcmFpIC0gTWEgTGFuZyB0aGVvIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQuLi4gDQpEb25n IHRob2ksIFVCTkQgeGEgdHUgeSBxdXkgZGluaCBnaWEgZGF0IHZhIGNoaSBkYW8gY2FjIHRob24g dGh1IHRpZW4gZGF0IHRyYWkgDQpwaGFwIGx1YXQgZGFuIGRlbiB0aG9uIENoYW0gZGEgdGh1IHRp ZW4gY3VhIDcvOSBobyB2b2kgc28gdGllbiBob24gNTcgdHJpZXUgZG9uZyANCm5lbiA3IGhvIGRh IHRpZW4gaGFuaCB4YXkgZHVuZyBjb25nIHRyaW5oIHRyZW4gZGF0IGxhbiBjaGllbTsgWG9tIFRo dW9uZyBkYSB0aHUgDQpjdWEgMTIgaG8gdmEgMjAgaG8gTWEgTGFuZyBob24gNTQwIHRyaWV1IGRv bmcsIG5vcCB2ZSB4YSAyMDUgdHJpZXUgZG9uZyBjYWMgaG8gDQpkYSBzYW4gbmVuLCBjbyBobyBk YSBrZSBkYSBwaGFuIGRhdCBsYW4gY2hpZW0uIFZpZWMgY2hpIGRhbyB4ZXQgY2FwIGRhdCB0cmVu IGN1YSANClVCTkQgeGEgQmluaCBNaW5oIHRhaSB0aG9pIGRpZW0gbGEgdHJhaSBjYWMgcXV5IGRp bmggcGhhcCBsdWF0LiANClZpIHZheSwgdGhlbyBVQk5EIGh1eWVuIFRoYW5oIE9haSB0aGkgdHJh Y2ggbmhpZW0gdGh1b2MgdGFwIHRoZSBVQk5EIHhhIG5oaWVtIGt5IDE5OTktMjAwNCwgDQpjYSBu aGFuIHRodW9jIG9uZyBCdWkgRGFuZyBTdSwgbmd1eWVuIENodSB0aWNoIFVCTkQgeGEgdmEgb25n IE5ndXllbiBLaWVtIERvbmcsIFBDVCANClVCTkQgeGEgdGFpIHRob2kgZGllbSB2aSBwaGFtLiBD b24gZG9pIHZvaSBvbmcgTHV1IFZhbiBEdSB2aSBDaHUgdGljaCBkdW9uZyBuaGllbSB0aGkgDQpw aGFpIGNvIHRyYWNoIG5oaWVtIHRyb25nIHZpZWMgZGUgY2FjIGhvIHhheSBkdW5nIHRyYWkgcGhl cCB0YWkga2h1IHZ1YyBNaWV1IHZhIGN1bmcgdmkgDQpwaGFtIHF1eSBkaW5oIHZlIHRodWMgaGll biB0cmluaCB0dSwgdGh1IHR1YyBoYW5oIGNoaW5oIHRyb25nIHF1YW4gbHkgdmEgc3UgZHVuZyBk YXQgZGFpLg0KVHJ1b2MgZG8sIHRyb25nIHRob25nIGJhbyBzbyAxNjkvVEItVUJORCBjdWEgVUJO RCBodXllbiBUaGFuaCBPYWkgY3VuZyBjbyBrZXQgbHVhbiB2ZSB2aWVjIA0KY2FuIGJvIHhhIEJp bmggTWluaCBidW9uZyBsb25nIGNvbmcgdGFjIHF1YW4gbHkgc3UgZHVuZyBkYXQgZGFpLCB0dSB5 IGNobyB0aHVlIHRoYXUgZGF0IA0KdmEgdGh1IHRpZW4gdHJhaSBwaGFwIGx1YXQgdGFpIGtodSB2 dWMgQmFjaCBIb2EgY3UsIHRob24gQ2hvIHhhIEJpbmggTWluaC4gVGhlbyBrZXQgbHVhbiANCnRo aSBVQk5EIHhhIEJpbmggTWluaCBkYSB2aSBwaGFtIGNhYyBxdXkgZGluaCBwaGFwIGx1YXQuIFRy b25nIGtoaSBkbyBsYWkga2hvbmcgeGF5IGR1bmcgDQpkZSBhbiBraGFjIHBodWMgaGF1IHF1YSwg a2hvbmcgY28gYmllbiBwaGFwIG5nYW4gY2hhbiBraXAgdGhvaSBkZSBjYWMgaG8gZ2lhIGRpbmgg dHUgeSANCnhheSBkdW5nIGNvbmcgdHJpbmggdHJhaSBwaGVwIHRyZW4gZGF0IEJhY2ggaG9hIChj dSkgQmluaCBEYSwgZ2F5IHRoYWMgbWFjIGtlbyBkYWkgdHJvbmcgDQpuaGFuIGRhbi4gVmF5IG5l biwgdHJhY2ggbmhpZW0gdGh1b2MgdGFwIHRoZSB2YSBsYW5oIGRhbyBEYW5nIHV5LCBVQk5EIHhh IEJpbmggTWluaCBnaWFpIGRvYW4gbmFtIDIwMDQgZGVuIG5heS4NClRyb25nIFRob25nIGJhbyBz byAxNzAvVEItVUJORCBjdWEgVUJORCBodXllbiBUaGFuaCBPYWkgY3VuZyBjaGkgdGhlbSBuaGll dSBzYWkgcGhhbSBjdWEgDQp4YSBCaW5oIE1pbmggdHJvbmcgdmllYyBxdWFuIGx5IGRhdCBkYWkg dmEgeGF5IGR1bmcgdHJhaSBwaGVwLiBUaGVtIG1vdCBsYW4gbnVhIGRhIGNoaSBybyANCm5oaWV1 IHNhaSBwaGFtIGtoYWMgY3VhIGNhYyBjYW4gYm8geGEgY3VhIGNhYyBvbmc6IExlIE1hbmggTGEg KG5ndXllbiBDaHUgdGljaCBVQk5EIHhhKTsgDQpOZ3V5ZW4gS2llbSBEb25nIChQQ1QgVUJORCB4 YSk7IFRyYW4gRGluaCBTaW5oIChLZSB0b2FuIG5nYW4gc2FjaCB4YSk7IEx1dSBWYW4gRHUgKENo dSANCnRpY2ggVUJORCB4YSkuIFRob25nIGJhbyBuYXkga2hhbmcgZGluaDogTmh1bmcgdmkgcGhh bSBjdWEgdGFwIHRoZSBVQk5EIHhhIEJpbmggTWluaCANCm5oaWVtIGt5IDE5OTQtMTk5OTsgMjAw NC0yMDA5IHZhIGNhYyBjYSBuaGFuIGNhbiBibyBVQk5EIHhhIGRlIGxhaSBoYXUgcXVhIGFuaCBo dW9uZyBkZW4gDQp0cmF0IHR1IHF1YW4gbHkgbmhhIG51b2MgdmUgZGF0IGRhaSwgZ2F5IGJ1YyB4 dWMgdHJvbmcgcXVhbiBjaHVuZyBuaGFuIGRhbiBkYW4gZGVuIGtoaWV1IA0Ka2llbiB2YSB0aGFj IG1hYyB0cm9uZyBuaGFuIGRhbi4NCg0KQWkgcGhhaSBnYW5oIGNoaXU/DQoNCk1hYyBkdSByYXQg bmhpZXUgbmh1bmcgc2FpIHBoYW0gY3VhIHRhcCB0aGUgY2FuIGJvIHhhIEJpbmggTWluaCBkYSBk dW9jIGNoaSBybywgbmh1bmcgdmFuIA0KZGUgZGF0IHJhIGxhIGFpIHNlIGNoaXUgaGF1IHF1YSBj aG8gbmh1bmcgdGFjIHRyYWNoIG5heT8gVmkgc2FvIHN1IHZpZWMga2VvIGRhaSBkYSBnYW4gDQpj aHVjIG5hbSB0cm9pIG1vaSBkdW9jIGR1YSByYSBhbmggc2FuZz8gdmEgdmllYyB4dSBseSBjYW4g Ym8gZGEgdGh1YyBzdSBuZ2hpZW0ga2hhYyB2YSANCmR1IHRpbmggZGFuIGRlIGN1YSBjYWMgY2Fw IGNhbyBob24/DQoNCkRlIGxhbSBybyBuaHVuZyB2YW4gZGUgbmF5LCBEUyZQTCBkYSBjbyBjdW9j IHRyYW8gZG9pIHZvaSBiYSBUbyBOZ2EsIFBobyBDaGFuaCB2YW4gcGhvbmcgDQpVQk5EIGh1eWVu IFRoYW5oIE9haSB2YSBkdW9jIGJpZXQ6IGhpZW4gbmF5IGh1eWVuIGRhbmcga2V0IGhvcCB2b2kg eGEgdHJpZW4ga2hhaSBjYWMgYnVvYyANCmRlIHRodWMgaGllbiBrZXQgbHVhbi4gQ29uIHZpZWMg c3UgdmllYyB2aSBzYW8gYmkga2VvIGRhaSBkYSBkdW9jIGJhIE5nYSBseSBnaWFpIGRvOiANCnZp ZWMgc2FwIG5oYXAgSGEgVGF5IHZlIEhhIE5vaT8/PyBLaGFuZyBkaW5oIHZvaSBwaG9uZyB2aWVu LCBvbmcgTmd1eWVuIFZhbiBZZW4sIENodSANCnRpY2ggVUJORCBodXllbiBUaGFuaCBPYWkga2hh bmcgZGluaCwgY2h1bmcgdG9pIGRhIGNvIGtldCBsdWFuIHZhIHNlIGNoaXUgdHJhY2ggbmhpZW0g dHJ1b2MgVFAgSGEgTm9pLg0KDQpUaW0gZGVuIFVCTkQgeGEgQmluaCBNaW5oLCBvbmcgTmd1eWVu IERvYW4gVG9hbiwgQmkgdGh1IERhbmcgdXkgeGEgY2hvIHBob25nIHZpZW4gYmlldDogDQpIaWVu IHRhaSB4YSBkYW5nIHhheSBkdW5nIDMgcGh1b25nIGFuIGRlIGdpYWkgcXV5ZXQgbmh1bmcgdG9u IHRhaSBkb2kgdm9pIG5ndW9pIGRhbiB2ZSANCmRhdCBkYWkgZG8gdmllYyBsYW0gdGFjIHRyYWNo IGN1YSBjYWMgY2FuIGJvIG5odTogVGhhbyBkbyB0b2FuIGJvOyBYdSBseSB0aGVvIE5naGkgZGlu aCANCjg0IGhvYWMgY2hvIHRodWUuIFZpZWMgZHVhIHJhIHBodW9uZyBhbiBsYSB2YXksIG5odW5n IGN1bmcga2hvIGxheSBkdW9jIGhldCBzdSBkb25nIHRodWFuIA0KY3VhIG5ndW9pIGRhbi4gQ29u IHZlIHZpZWMgeHUgbHkgY2FuIGJvLCBvbmcgVG9hbiBjdW5nIGNobyBiaWV0OiBWZSBtYXQgRGFu ZyB1eSwgc2F1IGtoaSANCmNvIGtldCBsdWFuLCBjaHVuZyB0b2kgZGEgbmdheSB0dWMga2hhYyB4 YXkgZHVuZyBrZSBob2FjaCBraWVtIGRpZW0gRGFuZyB2aWVuLCBoaWVuIGRhIA0KZHVhIHJhIGNh YyBoaW5oIHRodWMgeHUgbHksIGN1IHRoZToga2hpZW4gdHJhY2ggbW90IGRvbmcgY2hpIGNhbiBi byBkaWEgY2hpbmgsIGNhbmggY2FvIA0KbW90IGRvbmcgY2hpIG5ndXllbiBjaHUgdGljaCBVQk5E IHhhLiBDb24gY2FjIGNhbiBibyBkdW9uZyBuaGllbSwgZG9uZyBjaGkgQ2h1IHRpY2ggdmEgDQpQ Q1QgVUJORCB4YSBkYSBiaSBraGllbiB0cmFjaC4gTmh1bmcgdGhlbyBvbmcgVG9hbiwgZGlldSBk YW5nIGxvIGxhbmcgbmhhdCBoaWVuIG5heSANCmNoaW5oIGxhIHF1eWVuIGxvaSBjdWEgbmd1b2kg ZGFuIHNlIGR1b2MgeGVtIHhldCByYSBzYW8ga2hpIG5ndXllbiBuaGFuIHhheSByYSBoYXUgcXVh IA0KbmF5IGxhaSBvIGNoaW5oIGNhcCBjaGluaCBxdXllbi4NCkRpZXUgaGV0IHN1YyBwaGkgbHkg ZGEgeGF5IHJhLCBuZ2F5IHNhdSBraGkgY28gYnVvaSBsYW0gdmllYyB2b2kgb25nIEJpIHRodSBE YW5nIHV5IHhhIA0KQmluaCBNaW5oLCB0cm9uZyBraGkgZGFuZyB0YWMgbmdoaWVwIGJlbiBwaGlh IG5nb2FpIGNvbmcgVUJORCB4YSB0aGkgcGhvbmcgdmllbiBEUyZQTCANCmRhIGJpIG9uZyBMdXUg VmFuIER1LCBDaHUgdGljaCBVQk5EIHhhIEJpbmggTWluaCBkYW5oIGNobyB0aGFpIGRvLCBsb2kg bGUgdGhpZXUgdmFuIGhvYQ0KdmEgeWV1IGNhdSBsdWMgbHVvbmcgY29uZyBhbiB4YSAiYmF0IiB2 ZSB0cnUgc28gdXkgYmFuIHZvaSBseSBkbyB0dSB5IGNodXAgYW5oIG1hIGtob25nIA0KeGluIHBo ZXAuIFRhaSBwaG9uZyBsYW0gdmllYyBjdWEgY29uZyBhbiB4YSwgc2F1IHN1IHRvIHRpZW5nIGN1 YSByYXQgbmhpZXUgZG9uZyBjaGkgDQpjb25nIGFuLCBjYW4gYm8geGEuIE1vdCBjYW4gYm8sIGto b25nIHh1bmcgdGVuIGdpb2kgdGhpZXUgbGEgY29uZyBhbiB2aWVuIGxpZW4gdHVjIHR1bmcgDQpy YSBuaHVuZyBjYXUgbm9pIGxhbmcgbWEgY2FjIGNvIHF1YW4gbmdvbiBsdWFuLCByb2kgdHV5ZW4g Ym86ICJkZW4gbnVvYyBuYXkgc2UgcXV5ZXQgYW4gDQpkdSB2b2kgYmFvIGNoaSB2YSBwaG9uZyB2 aWVuIERTJlBMIi4gS2hvbmcgZHVuZyBsYWkgbyBkbywgY29uZyBhbiB4YSBCaW5oIE1pbmggbGFw IG1vdCANCmJpZW4gYmFuIGNobyByYW5nIHBob25nIHZpZW4gRFMmUEwgZGEgdmkgcGhhbSBwaGFw IGx1YXQgdmUgdmllYyBjaHVwIGFuaCwgZGFuZyB0aW4ga2hvbmcgDQp4aW4gcGhlcCB4YSAodmll YyBuYXkgY2h1bmcgdG9pIHNlIGRlIGNhcCBjdSB0aGUgdHJvbmcgc28gYmFvIHNhdSkuDQpEZW4g bHVjIG5heSBkdSBsdWFuIGNvIHF1eWVuIGRhdCByYSBjYXUgaG9pLCBkb2kgdm9pIGNhYyBjbyBx dWFuIG5nb24gbHVhbiBtYSBsYW5oIGRhbyANCnZhIGNhbiBibyBjb25nIGFuIHhhIGNvbiBjbyBu aHVuZyB0aGFpIGRvIGNvaSB0aHVvbmcgdmEgdGhpZXUgdG9uIHRyb25nIGRlbiBuaHUgdmF5LCAN CnRoaSBsaWV1IG5ndW9pIGRhbiBub2kgZGF5IGNvbiBiaSBkb2kgeHUgbmh1IHRoZSBuYW8/IFhl bSByYSwgbmh1bmcgc2FpIHBoYW0gdHJvbmcgcXVhbiANCmx5IGRhdCBkYWkgY3VhIHhhIEJpbmgg TWluaCBjdW5nIGxhIGNvIGNhbiBuZ3V5ZW4gY3VhIG5vLiANCg0KKERpZXUgdHJhIGN1YSBUcmFu IFF1eWV0KSANCg0KaHR0cDovL3d3dy5tb25yZS5nb3Yudm4vdjM1L2RlZmF1bHQuYXNweD90YWJp ZD00MjgmQ2F0ZUlEPTQmSUQ9OTI2OTImQ29kZT1JWlY1SDkyNjkyIFBWIDAxLzEyLzIwMTAgMTQ6 MzANCg0KSGEgTm9pOiBOaGlldSBzYWkgcGhhbSB0cm9uZyBxdWFuIGx5LCBkYXUgdHUgeGF5IGR1 bmcgdGFpIFVuZyBIb2EgDQoNClRoYW5oIHRyYSBIYSBOb2kgdnVhIGNvIGN1b2MgdGhhbmggdHJh IGNvbmcgdGFjIHF1YW4gbHksIGRhdSB0dSB4YXkgZHVuZyB0YWkgaHV5ZW4gVW5nIA0KSG9hIGdp YWkgZG9hbiAyMDA3IC0gMjAwOS4gS2V0IHF1YSBjaG8gdGhheSwgdHJvbmcgOSBjb25nIHRyaW5o IGRvIFVCTkQgaHV5ZW4gbmF5IA0KbGFtIGNodSBkYXUgdHUsIGRhIGNvIGhvbiA3LDUgdHkgZG9u ZyBiaSBuZ2hpZW0gdGh1LCB0aGFuaCB0b2FuIHNhaSBob2FjIGtob25nLg0KDQpHaXUga3kgbHVj IHZlIHNvIHZvbiBkYXUgdHUgdmEgbmdoaWVtIHRodSBzYWkgbGEgY29uZyB0cmluaCBoYSB0YW5n IGt5IHRodWF0IFRydW5nIHRhbSANCkRpY2ggdnUgVGh1b25nIG1haSB2YSBOaGEgbyB0aGkgdHJh biBWYW4gRGluaC4gQ29uZyB0cmluaCBuYXkgY28gc28gdm9uIGxhIGhvbiA4NCB0eSANCmRvbmcg bmh1bmcgZGEgY28gZ2FuIDUsNSB0eSBkb25nIGdpYSB0cmkga2hvaSBsdW9uZyBiaSBuZ2hpZW0g dGh1IHZ1b3Qgc28gdm9pIGR1IHRvYW4sIA0KbmdoaWVtIHRodSBraG9uZyBkdW5nIHRodWMgdGUs IGRhcCBuZW4ga2hvbmcgZHUgY2hpZXUgZGF5LiBDb25nIHRyaW5oIGR1bmcgdGh1IDIgdmUgDQpn aWEgdHJpIGJpIG5naGllbSB0aHUga2hvbmcgbGEgQ2hvIFRydW5nIHRhbSBkYXUgbW9pIG5vbmcg c2FuIHRoaSB0cmFuIFZhbiBEaW5oLCBwaGFpIA0KZ2lhbSB0cnUgaG9uIDg3NyB0cmlldSBkb25n IGRvIHRpbmggZ2lhIGJ1IHZhdCBsaWV1IGtob25nIGR1bmcsIGtob25nIHRoaSBjb25nIHBoYW8g a2VwIA0Kc2Ugbm8gbWFpIHZhIG5naGllbSB0aHUga2hvbmcgZHVuZyBkaWVuIHRpY2ggaG9hIHNh dCBjdWEgc28uLi4NCg0KVmllYyAicnV0IHJ1b3QiIGNvbmcgdHJpbmggeHVhdCBoaWVuIGRhIGRh bmcsIG8gbmhpZXUgY2FjIGhhbmcgbXVjIGtoYWMgbmhhdSBuaHVuZyBkZXUgDQpjbyBkaWVtIGNo dW5nIGxhLCBkYSBkdW9jIG5naGllbSB0aHUgdmEgY2hpIGNoby4uLiBxdXlldCB0b2FuLiBEdW9u ZyBkaSB0aGkgYmkgInJ1dCIgDQpiYW5nIGNhY2ggbmdoaWVtIHRodSB0YW5nIGNoaWV1IGRhaSBz byB2b2kgdGh1YyB0ZTsgTmdoaWVtIHRodSB0YW5nIGtob2kgbHVvbmcsIHRhbmcgDQpjaGlldSBk YXkgZGF0IGRhbyBkYXAsIHRhbmcgc28gbHVvbmcgY29jIHRyZTsgdGluaCBzYWkgZG9uIGdpYSB2 YXQgbGlldS4uLiBOZ29haSBuZ3V5IGNvIGJpIA0KdGhhdCB0aG9hdCBkbyBuZ2hpZW0gdGh1IGto b25nIHRoaSB0cm9uZyBuaHVuZyBkdSBhbiB0cmVuLCBuZ2FuIHNhY2ggTmhhIG51b2MgZGEgInN1 eXQgDQptYXQiIGdhbiAxIHR5IGRvbmcgdmkuLi4gdGluaCB0b2FuIHNhaSB2ZSBzbyBob2MuIENv IGNvbmcgdHJpbmggYmkgdGluaCB0b2FuIHNhaSBoYW5nIHRyYW0gDQp0cmlldSBuaHU6IENvbmcg dHJpbmggaGEgdGFuZyBreSB0aHVhdCBUVERWVE0gdmEgTmhhIG8gVFQgVmFuIERpbmggKDU4OCB0 cmlldSk7IA0KQ29uZyB0cmluaCB4dSBseSBraGFuIGNhcCBrZSBjaG9uZyBzYXQgbG8gYm8gc29u ZyBEYXkgKDE0NiB0cmlldSkuLi4gRGlldSBraG8gaGlldSBvIA0KY2hvLCB0cm9uZyBuaHVuZyB0 aW5oIHRvYW4gc2FpIG5heSB2ZSBzbyBob2MgbmF5IHRoaSBkb24gdmkgdGhpIGNvbmcgZGV1IGxh IG5ndW9pIGR1b2MgDQpsb2ksIHBoYW4gdGhpZXQgdGh1b2MgdmUuLi4gTmhhIG51b2MuIA0KDQpo dHRwOi8vdGhldGhhb3ZhbmhvYS52bi8zNzROMjAwOTExMDExMTQ1MTk3MDhUMTMyL2hhLW5vaS1u aGlldS1zYWktcGhhbS10cm9uZy1xdWFuLWx5LWRhdC1kYWktdmEteGF5LWR1bmctY28tYmFuLmh0 bSBLLkEgQ2h1IE5oYXQsIDAxLzExLzIwMDkgMTE6NDUgIA0KICAgDQpIYSBOb2k6IE5oaWV1IHNh aSBwaGFtIHRyb25nIHF1YW4gbHkgZGF0IGRhaSB2YSB4YXkgZHVuZyBjbyBiYW4gDQoNCihUVCZW SCkgLSBUaW5oIHR1IGRhdSBuYW0gMjAwOSwgVGhhbmggdHJhIFRQIEhhIE5vaSB2YSBjYWMgcXVh biwgaHV5ZW4sIHNvLCBuZ2FuaCANCmRhIHRyaWVuIGtoYWkgdGh1YyBoaWVuIDM3IGN1b2MgdGhh bmggdHJhIHZpZWMgY2hhcCBoYW5oIGNhYyBxdXkgZGluaCBjdWEgTmhhIG51b2MgdHJvbmcgDQps aW5oIHZ1YyBxdWFuIGx5IGRhdCBkYWkgdmEgdGh1YyBoaWVuIGR1IGFuIGRhdSB0dSB4YXkgZHVu ZyBjbyBiYW4uDQoNCkNhYyBzYWkgcGhhbSB2ZSBxdWFuIGx5IHN1IGR1bmcgZGF0IGRhaSBkdW9j IHBoYXQgaGllbiBjaHUgeWV1IHRhaSBuaHVuZyBkaWEgcGh1b25nIA0KZGFuZyB0cm9uZyBxdWEg dHJpbmggZG8gdGhpIGhvYSBtYW5oLiBEaWVuIGhpbmggbGEgdGFpIHF1YW4gSG9hbmcgTWFpLCBo dXllbiBNeSBEdWMsIA0KaHV5ZW4gTWUgTGluaC4uLiBtb3Qgc28gbmd1b2kgZGFuIHR1IHkgY2h1 eWVuIGRvaSBtdWMgZGljaCBzdSBkdW5nIGRhdCwgbXVhIGJhbiANCmNodXllbiBuaHVvbmcgdHJh byB0YXksIHhheSBkdW5nIG5oYSB0cmVuIGRhdCBub25nIG5naGllcCwgY2hpbmggcXV5ZW4gZGlh IHBodW9uZyB0dSB5IA0KYmFuIGRhdC4gVmllYyB4dSBseSBjdWEgY2hpbmggcXV5ZW4gZGlhIHBo dW9uZyBtb2kgY2hpIGR1bmcgbGFpIG8gdmllYyBsYXAgYmllbiBiYW4gdmkgDQpwaGFtIHF1YW4g bHkgZGF0IGRhaSwgdHJhdCB0dSB4YXkgZHVuZyBob2FjIGxlbiBrZSBob2FjaCB0byBjdW9uZyBj aGUgZG8gYm8gY29uZyB0cmluaCANCnhheSBkdW5nIHRyYWkgcGhlcCBjaHUgY2h1YSB0aHVjIGhp ZW4gZHVvYy4gVGFpIGNhYyBkdSBhbiBkYXUgdHUgeGF5IGR1bmcgY28gYmFuLCBwaGFuIA0KbG9u IGNhYyBkb24gdmkgdHUgdmFuIHRoaWV0IGtlLCB0aGFtIGRpbmggZHUgYW4sIHR1IHZhbiBkYXUg dGhhdSwgZ2lhbSBzYXQgY29uZyB0cmluaC4uLiBkYSANCmNoYXAgaGFuaCB0aGVvIHF1eSB0cmlu aCB4YXkgZHVuZyBjbyBiYW4gZG8gTmhhIG51b2MgYmFuIGhhbmgsIGxhcCBjYWMgYmFvIGNhbyBk YXUgdHUsIA0KYmFvIGNhbyBraW5oIHRlIGt5IHRodWF0LCB0aGFtIGRpbmggZHUgYW4sIHRoaWV0 IGtlIGNvbmcgdHJpbmguIA0KDQpUdXkgbmhpZW4sIGtoaSB0aWVuIGhhbmggdGhhbmggdHJhIGNv bmcgdGFjIHF1YW4gbHkgZGF1IHR1IHhheSBkdW5nIGNvIGJhbiB0cmVuIGRpYSBiYW4gDQp0aGkg eGEgU29uIFRheSwgZHUgYW4gZGF1IHR1IHhheSBkdW5nIE5oYSB2YW4gaG9hIFRydW5nIHRhbSBo dXllbiBUaGFuaCBUcmkuLi4gY28gDQpxdWFuIFRoYW5oIHRyYSBkYSBwaGF0IGhpZW4gbmhpZXUg dmkgcGhhbSB0cm9uZyBxdWEgdHJpbmggdGh1YyBoaWVuLiBDdSB0aGUgbGEgY29uIHRvbiANCnRh aSwgdGhpZXUgc290IHRyb25nIHZpZWMgbGFwLCBwaGUgZHV5ZXQgZHUgYW4gZGF1IHR1LCBiYW8g Y2FvIGtpbmggdGUga2hhIHRoaSwgcXVhbiBseSB0YWkgDQpzYW4gdGFpIGNhYyBjb25nIHRyaW5o IHhheSBkdW5nLCB0dSB2YW4gdGhpZXQga2UsIGRhdSB0aGF1LCB0aGFtIGRpbmggZHUgdG9hbiwg dGh1YyANCmhpZW4gdGhpIGNvbmcgdmEgdGhhbmggdG9hbiB2b24gZGF1IHR1LiBOaHVuZyBzYWkg cGhhbSB0cmVuIGRhIGR1b2MgY2FjIGRvYW4gdGhhbmggdHJhIG5ldSBjdSANCnRoZSB2YSBraWVu IG5naGkgY28gcXVhbiBjbyB0aGFtIHF1eWVuIHh1IGx5Lg0KDQpUcm9uZyB0b25nIHNvIDg5IGN1 b2MgdGhhbmggdHJhIEtUWEggbW9pIGRheSBvIEhhIE5vaSBkYSBwaGF0IGhpZW4gc2FpIHBoYW0s IGtpZW4gDQpuZ2hpIHRodSBob2kgMjcuOTIwIHRyaWV1IGRvbmcsIDE4Ljg2OG0yIGRhdCwga2ll biBuZ2hpIHh1IHBoYXQgdmkgcGhhbSBoYW5oIGNoaW5oIA0KNi4wNTEgdHJpZXUgZG9uZyB2YSB4 dSBseSBreSBsdWF0IDE4IGNhbiBibywgZGUgbmdoaSBjaHV5ZW4gY28gcXVhbiBkaWV1IHRyYSAy IHZ1Li4uIFRyb25nIA0KZG8sIHJpZW5nIFRoYW5oIHRyYSBUUCBIYSBOb2kgZGEgcGhhdCBoaWVu IHZhIGtpZW4gbmdoaSB0aHUgaG9pIDE5LjU5MyB0cmlldSBkb25nLCBoaWVuIA0KZGEgdGh1IGhv aSBkdW9jIDUuNTgwIHRyaWV1IGRvbmcuDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL1F1 YW4tbHktZGF0LWRhaS1vLWh1eWVuLVRoYWNoLVRoYXQtSGEtTm9pLUhhbmctbG9hdC1zYWktcGhh bS1kby1jby10aW5oLzU4LzMyNDEwOTAuZXBpIFRodXkgRHVvbmcgDQoNCkhhIE5vaTogUXVhbiBs eSBkYXQgZGFpIG8gaHV5ZW4gVGhhY2ggVGhhdCwgSGEgTm9pIC0gSGFuZyBsb2F0IHNhaSBwaGFt IGRvIGNvIHRpbmggDQoNClRoYW5oIHRyYSBUUC4gSGEgTm9pIHZ1YSB0aWVuIGhhbmgga2llbSB0 cmEgY29uZyB0YWMgcXVhbiBseSBkYXQgZGFpIHRhaSBodXllbiBUaGFjaCANClRoYXQsIEhhIE5v aShIYSBUYXkgY3UpIHR1IG5hbSAyMDA1IGNobyBkZW4gbmF5LiBRdWEgZG8sIGRhIHBoYXQgaGll biBoYW5nIGxvYXQgc2FpIA0KcGhhbSBuaHU6IENobyB0aHVlIGRhdCB0cmFuIGxhbiB0cmFpIHF1 eSBkaW5oOyBiYW4gZGF0ICJudXAgYm9uZyIgaGluaCB0aHVjIGNobyB0aHVlIGtpLQ0Kb3Q7IGhv cCB0aHVjIGhvYSBnaWF5IHRvIGdpdXAgdHUgbmhhbiB0cm9uIHRodWU7IHRodSB0aWVuIG5nb2Fp IHNvIHNhY2guLi4NCg0KQ2hvIHRodWUgZGF0IHRyYWkgcXV5IGRpbmgNCg0KVGhlbyB0aG9uZyBr ZSBjdWEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nLCB0cm9uZyBjYWMgbmFtIHR1IDIwMDUtMjAwNywg VUJORCBodXllbiANClRoYWNoIFRoYXQgY28gOCBobyBzYW4geHVhdCBjYSB0aGUgeGluIHRodWUg ZGF0IGRlIHhheSBkdW5nIHh1b25nIHNhbiB4dWF0IHZhIHRodWMgaGllbiANCmR1IGFuIGtpbmgg ZG9hbmggZGljaCB2dSBjaGFuIG51b2kuIFR1eSBuaGllbiwgbG9pIGR1bmcgbmd1b24gdGFpIG5n dXllbiB2byBnaWEgbmF5LCANCm1vdCBzbyBsYW5oIGRhbyAiY2FvIGNhcCIgY3VhIFVCTkQgaHV5 ZW4gVGhhY2ggVGhhdCBkYSBnaWFvIGRhdCBjaG8gY2FjIGRvbiB2aSB0dSANCm5oYW4gdGh1ZSB0 cmFpIHF1eSBkaW5oLiBDaGkgZGVuIGtoaSB0aGFuaCB0cmEgdGhhbmggcGhvIHZhbyBjdW9jIHRo aSBtb2kgY2h1eWVuIG1vaSANCmR1b2Mgdm8gbGUuIA0KDQpDdSB0aGUsIG5nYXkgMzAvNS8yMDA3 LCBVQk5EIGh1eWVuIFRoYWNoIFRoYXQgZGEga3kgUXV5ZXQgZGluaCBzbyA4NCBjaG8gaG8gb25n IA0KTmd1eWVuIFZhbiBUaWVuIHRodWUgMzguNTgxbTIgZGF0IHRhaSB4YSBUYW4gWGEgZGUgbGFt IGR1IGFuIHhheSBkdW5nIHh1b25nIHN1YSANCmNodWEgdmEgZGF5IGxhaSB4ZSBvIHRvLiBUdXkg bmhpZW4sIFVCTkQgaHV5ZW4gVGhhY2ggVGhhdCBraG9uZyBjbyBxdXlldCBkaW5oIHBoZSANCmR1 eWV0IGdpYSBkZW4gYnUuIERvIGRvLCBjaHUgZHUgYW4gZGEgdHUgdGhvYSB0aHVhbiBnaWEgZGVu IGJ1IEdQTUIgdm9pIGNhYyBobyBkYW4gDQp0aG9uZyBxdWEgVUJORCB4YSBkZSB0aGFuaCB0b2Fu IGRlbiBidS4gQ2hpbmggdmkgdmF5LCBjaG8gZGVuIG5heSBjb24gMjUgaG8gZGFuIA0Ka2hvbmcg Y2hpdSBuaGFuIHRpZW4gZGVuIGJ1IHZhIGRpIGRvaSBHUE1CLCB0cm9uZyBraGkgZG8gc28gdGll biBjaHUgZGF1IHR1IGNodWEgZGVuIA0KdGF5IDI1IGhvIGRhbiB2aSB4YS4uLiBkYW5nIGdpdS4g DQoNCktob25nIG5odW5nIHRoZSwgZG9pIHZvaSBraG9hbiB0aGFuaCB0b2FuIGRvIGNodSBkdSBh biBkZW4gYnUgR1BNQiB2b2kgVUJORCB4YSANClRhbiBYYSwgc28gZGllbiB0aWNoIGRhdCBjb25n IGljaCBkbyB4YSBxdWFuIGx5IGRhIGR1b2MgcXV5IGhvYWNoIHRvYW4gYm8gdmFvIGRpZW4gdGlj aCANCjU0OCBoYSBjdWEga2h1IENvbmcgbmdoZSBjYW8gTGFuZyCWIEhvYSBMYWMgdmEgZGEgZHVv YyBOaGEgbnVvYyBib2kgdGh1b25nLiBUdXkgDQpuaGllbiwgbGFuaCBkYW8gVUJORCB4YSBUYW4g WGEgdmFuIGtlIGtoYWkgc28gZGF0IHRyZW4gZGUgbmhhbiBob24gMSwxIHR5IGRvbmcuDQoNCk5n b2FpIHJhLCB0YWkgMyBkdSBhbiBjaHV5ZW4gZG9pIGNvIGNhdSBjYXkgdHJvbmcsIHRyYWkgY2hh biBudW9pIGN1YSAzIG5ndW9pIGdvbSBvbmcgDQpUaHVhbiwgb25nIFRodXkgY28gaG8ga2hhdSB0 YWkgeGEgTGFpIFRodW9uZywgdmEgb25nIEtpbSB0YWkgdGhhbmggcGhvIFNvbiBUYXkuIE1hYyAN CmR1LCAzIGhvIHNvIHhpbiB0aHVlIGRhdCBraG9uZyBkYW0gYmFvIG5ndXllbiB0YWMgdmEgY2Fu IGN1IGRlIGNobyB0aHVlIGRhdCB0aG9pIGhhbiAzMCANCm5hbSBuaHUga2hvbmcgY28gZ2lheSBw aGVwIHNhbiB4dWF0IGtpbmggZG9hbmggY3VhIGhvIHNhbiB4dWF0IGNhIHRoZSwgY2hpIGNvIDEg YmFuIA0KaG9wIGRvbmcgY2hhbiBudW9pIHZvaSB0cmFpIGNoYW4gbnVvaSBWaWV0IFRoYWkgdmUg bmhhbiBnaWEgY29uZyBudW9pIGxvbiBzdWEgY28gdGhvaSANCmhhbiA1IG5hbSBsYSBrZXQgdGh1 Yy4gVHV5IG5oaWVuLCBraG9uZyBoaWV1IHZpIGx5IGRvIGdpLCBtb2kgcXV5IHRyaW5oIHRodSB0 dWMgc2FpIGxhIHRoZSwgDQpuaHVuZyBuZ2F5IDIvOC8yMDA3LCBVQk5EIGh1eWVuIFRoYWNoIFRo YXQgdmFuICJuaGFtIG1hdCIga3kgbGllbiAzIFF1eWV0IGRpbmggc28gDQoxMzEsIDEzMiwgMTMz IHBoZSBkdXlldCBjaG8gdGh1ZSBkYXQgdGh1YyBoaWVuIGR1IGFuIGNoYW4gbnVvaSB2b2kgdGhv aSBoYW4gMzAgbmFtLiBWdSANCnZpZWMgdHJlbiBjaGkgYmF0IGRhdSBkdW9jICJraHVpIiByYSBr aGkgdGhhbmcgNS8yMDA4LCBjbyBxdWFuIGNodWMgbmFuZyBwaGF0IGhpZW4gY2FjIA0KY2h1IGR1 IGFuIGRhIHR1IHRob2EgdGh1YW4gZ2lhIGNhIGRlbiBidSBHUE1CIHZvaSBjYWMgaG8gY28gcnVv bmcgbWEga2hvbmcgY28gUXV5ZXQgDQpkaW5oIHBoZSBkdXlldCBnaWEgZGVuIGJ1IHRodSBob2kg ZGF0IGN1YSBVQk5EIGh1eWVuLCBkb25nIHRob2ksIGN1bmcgY2hpIHJvICJWb2kgaG8gDQpzbyBk dSBhbiB0cmVuIGxhIGtob25nIGNvIGNhbiBjdSBkZSBodXllbiBreSBjaG8gdGh1ZSBkYXQgdm9p IHRob2kgaGFuIDMwIG5hbSIuDQoNCkJhbiBkYXQgIm51cCBib25nIiBjaG8gdGh1ZSBraW90DQoN CkRvYW4gdGhhbmggdHJhIGRhIHBoYXQgaGllbiwgVUJORCB0aGkgdHJhbiBMaWVuIFF1YW4gZGEg Y2hvIDggaG8gZGFuIGRhdSB0aGF1IDYsNTggaGEgDQpkaWVuIHRpY2ggZGF0IGNodWEgc3UgZHVu ZyB2YSAyMiBobyBkYW4gZGF1IHRoYXUgMTAsMyBoYSBkaWVuIHRpY2ggZGF0IGNvbmcgaWNoIHRy b25nIHRob2kgDQpnaWFuIHR1IDI1LTMwIG5hbS4gVHV5IG5oaWVuLCB2aWVjIGNobyB0aHVlIHRy ZW4gZGV1IHRyYWkgbmd1eWVuIHRhYywgdmkgcGhhbSB0cm9uZyBxdWFuIA0KbHkgZGF0IGRhaS4g Qm9pIGxlLCB2aWVjIGt5IDggaG9wIGRvbmcgY2hvIHRodWUgdHJlbiBkaWVuIHRpY2ggZGF0IGNo dWEgc3UgZHVuZyB0aGVvIHF1eSANCmRpbmggcGhhaSB0aHUgc28gdGllbiAxMDkuNDAwLjAwMCBk b25nIGN1YSBjYWMgY2h1IGR1IGFuLiBTb25nLCBraG9uZyBoaWV1IHZpICJkb25nIGNvIiANCmdp IG1hIFVCTkQgdGhpIHRyYW4gTGllbiBRdWFuIGxhaSBjaGkgdGh1IG1vdCBudWEgdmEga2hvbmcg aGFjaCB0b2FuIHZhbyBuZ2FuIHNhY2guIA0KTmdvYWkgcmEsIGRvaSB2b2kgMjIgaG9wIGRvbmcg dHJlbiBxdXkgZGF0IGNodWEgc3UgZHVuZywgc2FuIHBoYW0gY2FjIGhvIHBoYWkgbm9wIHRoZW8g DQpob3AgZG9uZyBsYSA1Ni41NDdrZyB0aG9jLCBuaHVuZyBVQk5EIHRoaSB0cmFuIGNoaSBub3Ag MjMuODE1IGtnLiBTbyBjb24gbGFpIGxhIDIwLjg4NiANCmtnIGJvbmcgZHVuZy4uLiAidGhpZXUg aHV0Ii4NCg0KWGluIGR1b2Mgbm9pIHRoZW0sIGxhbmggZGFvIFVCTkQgdGhpIHRyYW4gTGllbiBR dWFuIGNvbiBuZ2FuZyBuaGllbiBiYW4gZGF0IGR1b2kgDQpoaW5oIHRodWMgY2hvIHRodWUga2lv dCBkYWkgaGFuIHRyb25nIDUwIG5hbSBraGkgVUJORCB0aGkgdHJhbiBMaWVuIFF1YW4ga3kgNyBo b3AgDQpkb25nIHZvaSB0dSBuaGFuIGNobyB0aHVlIGtpb3QsIG1vaSBnaWFuIHJvbmcgMThtMiBk ZSB0aHUgdmUgNzgwLjQ2OS4wMDAgZG9uZyAoY29uIDEgDQpobyBubyAxMC4wMDAuMDAwIGRvbmcp Lg0KDQpUaGFuaCB0cmEgdGhhbmggcGhvIGRhIGtoYW5nIGRpbmggIlZpZWMgVUJORCB0aGkgdHJh biBMaWVuIFF1YW4ga3kgaG9wIGRvbmcgY2hvIA0KdGh1ZSBraW90IGNobyBTYW4gdm9pIHRob2kg aGFuIDUwIG5hbSBsYSB0cmFpIHRoYW0gcXV5ZW4sIHRodWMgY2hhdCBsYSBiYW4gZGF0LiBCZW4g Y2FuaCANCmRvLCBVQk5EIHRoaSB0cmFuIExpZW4gUXVhbiBjb24gY28gaGFuaCB2aSBjbyB5IGxh bSBzYWkgbGVjaCBobyBzbyBxdWFuIGx5IHN1IGR1bmcgZGF0LCANCnZpIHBoYW0gY2hlIGRvIHZl IHRhaSBjaGluaCB0cm9uZyB2aWVjIHRodSBzYW4gcGhhbSB0aGF1IGtob2FuLCBjYW4gcGhhaSBk dW9jIHhlbSB4ZXQgDQp4dSBseSBiYW5nIHBoYXAgbHVhdC4uLg0KDQoiVGllcCB0YXkiIGNobyBk b2FuaCBuZ2hpZXAuLi4gImxhbSBsaWV1Ij8NCg0KTmdheSAwOC8xLzIwMDIgYmEgRG8gVGhpIEh1 b25nLCBobyBraGF1IHRodW9uZyB0cnUgZGFuZyBreSB0YWkgdGhvbiBCdW5nLCB4YSBQaHVuZyAN ClhhLCBodXllbiBUaGFjaCBUaGF0IHhpbiB0aHVlIDhoYSBkYXQgdm9pIHRob2kgaGFuIDUwIG5h bSB0YWkgeGEgQmluaCBZZW4gZGUgbGFtIGR1IGFuIA0KY2hhbiBudW9pIGdhIGdpb25nIHRydW5n IGJvIG1lIHZhIHRyb25nIGNheSBhbiBxdWEuIFNhdSBraGkgbmdoZSB5IGtpZW4gY3VhIEhvaSBk b25nIA0KdGhhbSBkaW5oIGR1IGFuIGh1eWVuIChnb20gcGhvbmcgVGFpIGNoaW5oLUtlIGhvYWNo LCBwaG9uZyBLaW5oIHRlIEhhIHRhbmcgTm9uZyANCnRob24sIHBob25nIE5vbmcgbmdoaWVwIHZh IFBUTlQsIHBob25nIERpYSBjaGluaCkgbmdheSAwMy82LzIwMDIsIFVCTkQgaHV5ZW4gDQpUaGFj aCBUaGF0IGRhIGNvIFF1eWV0IGRpbmggc28gNDc1L1FELVVCIHRodSBob2kgNTQuODYwbTIgZGF0 IGRlIGdpYW8gY2hvIGR1IGFuIGN1YSANCmJhIEh1b25nLCBkb25nIHRob2kgbmdheSAxMS83LzIw MDIsIFVCTkQgaHV5ZW4gVGhhY2ggVGhhdCBreSBRdXlldCBkaW5oIHNvIDc4NC0gDQpRRC9VQiBw aGUgZHV5ZXQgcGh1b25nIGFuIGRlbiBidSBHUE1CIGR1IGFuIHRhaSB4YSBCaW5oIFllbi4NCg0K VHV5IG5oaWVuLCBzYXUgZ2FuIDMgbmFtLCBuZ2F5IDIxLzMvMjAwNSwgUGhvbmcgVGFpIG5ndXll biCWIE1vaSB0cnVvbmcgaHV5ZW4gVGhhY2ggDQpUaGF0IG1vaSB0aHVjIGhpZW4gdmllYyBreSBo b3AgZG9uZyBjaG8gdGh1ZSA0OS44NDggbTIgZGF0IHZvaSBjaHUgZHUgYW4sIHZvaSBnaWEgMjgw IA0KZG9uZy9tMi8xIG5hbS4gU2F1IGtoaSAibmhpbiBsYWkiIHRoYXkga2hvbmcga2hvcCB2b2kg dGh1YyB0ZSBuZW4gcXVhIDQgbGFuICJkaWV1IA0KY2hpbmgiLCBuZ2F5IDI2LzEyLzIwMDcgaG9w IGRvbmcgdGh1ZSBkYXQgZHUgYW4gY3VhIGJhIEh1b25nIG1vaSBkdW9jIHRodWMgaGllbiggbmh1 IA0KdmF5IGNoYW0gdm9pIHRodWMgdGUgbGEgNCBuYW0gMyB0aGFuZyApIHZhIGdpYSBjaG8gdGh1 ZSBsYWkgZHVvYyAicnV0IHh1b25nIiBjb24uLi4gMTg4IA0KZG9uZy9tMi9uYW0uIA0KDQpLaG9u ZyBuaHVuZyB2YXksIHhhYyBtaW5oIHRhaSBDaGkgY3VjIFRodWUgVGhhY2ggVGhhdCwgVGhhbmgg dHJhIHRoYW5oIHBobyBIYSBOb2kgDQpkYSBwaGF0IGhpZW4sIG5nYXkgMjUvNy8yMDA3LCBVQk5E IGh1eWVuIFRoYWNoIFRoYXQgbW9pIGNodXllbiBob3AgZG9uZyB0aHVlIGRhdCANCmR1IGFuIGN1 YSBiYSBIdW9uZywgdHJvbmcga2hpIHRodWMgdGUgZGEgZ2lhbyBkYXQgY2hvIGJhIG5heSB0dSBu YW0gMjAwMi4gQ2hpbmggdmllYyANCmxhbSB0cmVuIGRhIGtoaWVuIGtob2FuIHRodWUgZGF0IDEy My4yNTIuNjg0IGRvbmcgYmkgdGhhdCB0aHUga2hpIGJhIEh1b25nICJjdW9uZyANCnF1eWV0IiBr aG9uZyBub3AgdHJ1b2Mgc3UgYmF0IGx1YyBjdWEgQ2hpIGN1YyBUaHVlIFRoYWNoIFRoYXQuDQoN ClRoYW5oIHRyYSB0aGFuaCBwaG8gY3VuZyBraWVuIG5naGkgVUJORCBodXllbiBUaGFjaCBUaGF0 IGtpZW0gZGllbSBsYW0gcm8gdHJhY2ggDQpuaGllbSBjYWMgY2FuIGJvIGNvIGxpZW4gcXVhbiB0 cm9uZyB2aWVjIHRoYW0gZGluaCB4ZXQgZHV5ZXQgZHUgYW4gY2hvIGJhIEh1b25nIGRvbmcgDQp0 aG9pIHRydXkgdGh1IHNvIHRpZW4gdGh1ZSBkYXQgbGEgMTIzLjI1Mi42ODQgZG9uZyB2ZSBuZ2Fu IHNhY2ggTmhhIG51b2MuIA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzMy NjI1MC9DdS10cmktSGEtTm9pLU5oaWV1LWtpZW4tbmdoaS12ZS1kYXQtZGFpLXZhLWdpYW8tdGhv bmcuaHRtbCBYVUFOIExPTkcgMTMvMDcvMjAwOSwgMDU6MDQgKEdNVCs3KSANCg0KQ3UgdHJpIEhh IE5vaTogTmhpZXUga2llbiBuZ2hpIHZlIGRhdCBkYWkgdmEgZ2lhbyB0aG9uZw0KDQpUVCAtIE5n YXkgbWFpIDE0LTcsIEhETkQgdGhhbmggcGhvIEhhIE5vaSBzZSB0aWVuIGhhbmgga3kgaG9wIHRo dSAxOC4gVHJvbmcgY2FjIA0KY3VvYyB0aWVwIHh1YyB0cnVvYyBreSBob3AsIGN1IHRyaSB0aHUg ZG8gbmV1IHJhIG5oaWV1IGtpZW4gbmdoaSB2ZSBjbyBjaGUsIGNoaW5oIHNhY2ggdGh1IA0KaG9p IGRhdCwgaGUgdGhvbmcgZ2lhbyB0aG9uZyB4dW9uZyBjYXAuDQoNCk5oaWV1IHR1eWVuIGR1b25n IG5nb2FpIHRoYW5oIEhhIE5vaSBjdSBtdWEgbGEgbmdhcCAoYW5oIGNodXAgdGFpIHF1b2MgbG8g MzIgLSBkb2FuIA0KdGhpIHRyYW4gTmhvbiwgaHV5ZW4gVHUgTGllbSkgLSBBbmg6IFh1YW4gTG9u Zw0KDQpDdSB0cmkgSGEgTm9pIG5oYW4geGV0IG8gdGh1IGRvIHR1IHRydW9jIHRvaSBuYXkgbW9p IHRhYyBkYXQgbGEgdGFjIHZhbmcsIG5odW5nIGtob25nIGl0IA0KbWFuaCBkYXQgbG9uIG5obyBk ZSBob2FuZyBob2EgY2hvIGNvIG1vYyBuYW0gbmF5IHF1YSBuYW0ga2hhYy4gQ2h1YSBoZXQsIHRy ZW4gZGlhIA0KYmFuIHRoYW5oIHBobyBoaWVuIGNvIG5oaWV1IGR1IGFuIGRhdSB0dSB4YXkgZHVu ZyBzYW4gZ29sZiB2b2kgZGllbiB0aWNoIHRodSBob2kgZGF0IGxvbiwgDQphbmggaHVvbmcgZGVu IGRpZW4gdGljaCBkYXQgdHJvbmcgbHVhIHZhIGN1b2Mgc29uZyBjdWEgbm9uZyBkYW4uIEN1IHRy aSBkb2kgaG9pIGNoaW5oIA0KcXV5ZW4gdGhhbmggcGhvIHhlbSB4ZXQga3kgdGluaCBoaWV1IHF1 YSBjdWEgZHUgYW4sIGRhYyBiaWV0IGNhbiBjYW4gbmhhYyBsb2kgLSBoYWkgdHJ1b2MgDQpraGkg Y2FwIHBoZXAgZGF1IHR1IG5odW5nIGR1IGFuIG5odSB2YXkuDQoNCk5vaSBsbyBjdWEgbmd1b2kg YmkgdGh1IGhvaSBkYXQNCg0KQ3UgdHJpIG5nb2FpIHRoYW5oIGxhaSBsbyBsYW5nIG5oaWV1IGRl biBkYXQgc2FuIHh1YXQgbm9uZyBuZ2hpZXAuIFRoZW8gcXV5IGRpbmggaGllbiBuYXkgDQpjdWEg dGhhbmggcGhvLCAiaG8gZ2lhIGRpbmgsIGNhIG5oYW4gdHJ1YyB0aWVwIHNhbiB4dWF0IG5vbmcg bmdoaWVwIGJpIHRodSBob2kgdHJlbiAzMCUgDQpkaWVuIHRpY2ggZGF0IG5vbmcgbmdoaWVwLi4u IGR1b2MgaHVvbmcgMTAlIGRhdCBkaWNoIHZ1Ii4gQ3UgdHJpIGNobyByYW5nIHZpZWMgeGFjIGRp bmggDQozMCUgbGEga2hvbmcgY28gY28gc28gcGhhcCBseSB2YSBraG9uZyBraG9hIGhvYywgdGFv IG1hdSB0aHVhbiBnaXVhIG5ndW9pIGJpIHRodSBob2kgDQp0cmVuIDMwJSB2b2kgbmd1b2kgYmkg dGh1IGhvaSBkdW9pIDMwJS4gTWF0IGtoYWMsIGdpYSBkZW4gYnUgdGh1IGhvaSBkYXQgcXVhIHRo YXAgbmh1bmcgDQpnaWEgZGF0IGRpY2ggdnUgY2FwIGxhaSBjaG8gbmd1b2kgZGFuIHJhdCBjYW8u DQoNCkN1IHRyaSBodXllbiBUdSBMaWVtIGNobyByYW5nIGNoaW5oIHNhY2ggaG8gdHJvIGJhbiBn aWFvIGRhdCBvLCBiYW4gbmhhIGNodW5nIGN1IGhvYWMgDQpib2kgdGh1b25nIGJhbmcgdGllbiBr aGkgdGh1IGhvaSBkYXQgY28gbmhpZXUgYmF0IGNhcC4gVmllYyBxdXkgZGluaCBobyBnaWEgZGlu aCBjbyAxLTIgDQpuaGFuIGtoYXUsIDEtMiBzdWF0IHJ1b25nIGJhbmcgaG8gZ2lhIGRpbmggY28g bmhpZXUgbmhhbiBraGF1LCBuaGlldSBzdWF0IHJ1b25nIGxhIA0Ka2hvbmcgaG9wIGx5LiBLaGkg dGh1YyBoaWVuIGNoZSBkbyBobyB0cm8gYmFuZyBnaWFvIGRhdCBvLCBiYW4gbmhhIGNodW5nIGN1 IGhvYWMgYm9pIA0KdGh1b25nIGJhbmcgdGllbiBzZSBjbyB0aW5oIHRyYW5nIGNhbyBiYW5nLCBu aGEgbmhpZXUgbmd1b2kgY3VuZyBuaHUgbmhhIGl0IG5ndW9pIGtoaWVuIA0KZGFuIHRoYWMgbWFj Lg0KDQpDdW5nIGxpZW4gcXVhbiBkZW4gdmFuIGRlIHRodSBob2kgZGF0LCBjdSB0cmkgY2FjIGh1 eWVuIG5nb2FpIHRoYW5oIGNobyBiaWV0IGhvIGJpIHRodSBob2kgDQptb3QgZGllbiB0aWNoIGxv biBkYXQgdGhvIGN1LCBuaHVuZyBwaGFuIGRpZW4gdGljaCBkYXQgY29uIGxhaSBsb24gaG9uIGhh biBtdWMgZGllbiB0aWNoIA0KZGF0IG8gdG9pIHRoaWV1IG5lbiBraG9uZyBkdW9jIHhldCB0YWkg ZGluaCBjdSByYXQgdGhpZXQgdGhvaS4NCg0KTWF0IGtoYWMsIGNoaW5oIHNhY2ggaG8gdHJvIG9u IGRpbmggZG9pIHNvbmcsIGhvIHRybyBnaWFpIHF1eWV0IHZpZWMgbGFtIHZhbiBhcCBkdW5nIA0K bXVjIHR1IG5hbSAyMDA3LCB0cm9uZyBraGkgbW9pIG5hbSB0aGVtIHRydW90IGdpYSB2YSBtdWMg bHVvbmcgdG9pIHRoaWV1IGRhIGR1b2MgZGlldSANCmNoaW5oIG5hbmcgbGVuLiBDdSB0cmkgdGhh bmggcGhvIGtpZW4gbmdoaSBuaHVuZyBiYXQgY2FwIHZlIGNvIGNoZSwgY2hpbmggc2FjaCBuYXkg Y2FuIA0KcGhhaSBkdW9jIHF1YW4gdGFtLCByYSBzb2F0IHZhIGRpZXUgY2hpbmggbmdheSBkZSB0 aGFvIGdvIGNobyBuZ3VvaSBkYW4uDQoNCkNoYW0gZGF1IHR1IGR1b25nIHNhLCBkZSBkaWV1DQoN ClNhdSBraGkgbW8gcm9uZyBkaWEgZ2lvaSwgdGh1IGRvIGNvIHRoZW0gbmhpZXUgdnVuZyB2ZW4g ZG8uIE5odW5nIHZlIHRvaSBjYWMgdnVuZyB2ZW4sIA0KY2FjIGh1eWVuIHZ1bmcgc2F1IG5heSAi bW9pIHRoYXkgZHVvbmcgc2EgbyBkYXkgdGFuIG5hdCBkZW4gc28uLi4iIC0gY3UgdHJpIG5oYW4g eGV0LiANCiJUdXllbiBkdW9uZyA3MCBjbyBsdXUgbHVvbmcgeGUga2luaCBob2FuZyBjaGF5IHF1 YSBtb2kgbmdheSwgbmhpZXUgbG9haSB4ZSB0cm9uZyB0YWkgDQozMC00MCB0YW4gcXVhbiBkYW8g c3VvdCBuZ2F5IGRlbS4gRHVvbmcgc2EgbmFuZyB0aGkgYnVpLCBtdWEgZ2lvbmcgbmh1IGFvIGJ1 biBsYXkiIJYgDQpjdSB0cmkgaHV5ZW4gVHUgTGllbSBjaG8gYmlldC4NCg0KVGhlbyBjdSB0cmkg bmdvYWkgdGhhbmgsIG5oaWV1IHR1eWVuIGR1b25nIHZlbiBkbyBkYSBxdWEgdGFpIG5naGllbSB0 cm9uZywgdGhhbSBjaGkgDQpraG9uZyBjbyBsYXkgbW90IGRvYW4gbGFuaCBsYW4uIE5ndW9pIGRh biBzdW90IG5nYXkgZGVtIGJpIHRyYSB0YW4gYm9pIHRpZW5nIG9uIGxhIG1vdCANCmNodXllbiwg bmh1bmcgdGFpIG5odW5nIHR1eWVuIGR1b25nIG5heSBjb24gdGllbSBhbiBuaGlldSBuZ3V5IGNv IHRhaSBuYW4gZ2lhbyB0aG9uZy4gDQpDdSB0cmkgZG9pIGhvaSB0aGFuaCBwaG8gY2FuIGNvIGdp YWkgcGhhcCBxdXlldCBsaWV0LCB0aWVuIGhhbmggcmEgc29hdCBuZ2F5IGRlIGNvIA0Kbmh1bmcg ZGlldSBjaGluaCBjaG8gbmd1b2kgZGFuIGJvdCBsby4NCg0KUmllbmcgdGFpIGh1eWVuIEJhIFZp LCBjbyB0b2kgNzAlIGtpZW4gbmdoaSBjdWEgY3UgdHJpIGJheSB0byBub2kgbG8gdmUgdGh1YyB0 cmFuZyBkZSBkaWV1IA0KdHJvbmcgbXVhIG11YSBiYW8uIEN1IHRyaSBCYSBWaSBkYW4gY2h1bmc6 IHRyZW4gZGlhIGJhbiB4YSBUaHVhbiBNeSAoQmEgVmkpIGNvIG5oaWV1IA0Ka2h1IHZ1YyBzYXQg bG8gdGFpIGJvIHNvbmcgRGEsIGhpZW4gbW90IHNvIGRvYW4gZGFuZyBrZSBkbyBkYW5nIG5odW5n IGNvbiBuaGlldSBkb2FuIA0KY2h1YSBkdW9jIGtlIGxhaS4gVGFpIGJvIGh1dSBzb25nIERheSwg ZG9hbiBraHUgdnVjIHRyYW0gYm9tIGRhdSBsYW5nIHRob24gS2ltIEJvaSwgDQp4YSBWYW4gS2lt LCBjdW5nIGNvIHRpbmggdHJhbmcgc2F0IGxvIG5hbmcuDQoNCkN1IHRyaSBsbyBraGkgbXVhIG11 YSBsdSBkZW4sIHNhbiB4dWF0IHZhIGRvaSBzb25nIGN1YSBuZ3VvaSBkYW4gY2FjIHhhIHZ1bmcg dmVuIHNvbmcgDQpUaWNoIG5odSBUaHVhbiBNeSwgU29uIERhLCBUb25nIEJhdCwgVGF5IERhbmcs IFRpZW4gUGhvbmcsIFRodXkgQW4sIERvbmcgUXVhbmcsIA0KQ2FtIFRodW9uZyBzZSBjaGl1IGFu aCBodW9uZyBuYW5nIG5lLiBDdSB0cmkgZGUgbmdoaSB0aGFuaCBwaG8gY2FuIHNvbSBkYXUgdHUg eGF5IA0KZHVuZyBrZSBjaG9uZyBzYXQgbG8sIGtpcCB0aG9pIHR1IGJvIGRlIGRpZXUgZGUgZGFt IGJhbyBhbiB0b2FuIHRpbmggbWFuZywgdGFpIHNhbiBjdWEgDQpuZ3VvaSBkYW4uDQoNCk8gbmhp ZW0gbnVvYyB0aGFpDQoNCkN1IHRyaSBxdWFuIExvbmcgQmllbiBsYWkgcGhhbiBhbmggbXVjIGRv IG8gbmhpZW0gbnVvYyB0aGFpIHRhaSBraHUgdnVjIG5heSBkYW5nIHF1YSANCmtpbmgga2h1bmcg ZG9pIHZvaSBuZ3VvaSBkYW4uIEN1IHRyaSBkYW4gY2h1bmcgY2FjIGRvbiB2aSBuaHUgQmVuaCB2 aWVuIER1YyBHaWFuZyB4YSANCm51b2MgdGhhaSBjaHVhIHF1YSB4dSBseSwgZG90IHJhYyB0aGFp IHkgdGUga2hvbmcgZHVuZyBxdXkgZGluaDsgQ29uZyB0eSBUaHVvYyBzYXQgdHJ1bmcgDQoocGh1 b25nIFRodW9uZyBUaGFuaCksIENvbmcgdHkgaG9hIGNoYXQgRHVjIEdpYW5nLCBjYWMgY29uZyB0 eSBtYXkgWDIwLCBYMjYgbHVvbiANCmdheSBvIG5oaWVtIG1vaSB0cnVvbmcuDQoNCkN1IHRyaSBr aWVuIG5naGkgdGhhbmggcGhvIGNhbiBjbyBnaWFpIHBoYXAgbW9pIHRyb25nIGNvbmcgdGFjIHF1 YW4gbHkgdmUgc2luaCBhbiB0b2FuIA0KdGh1YyBwaGFtLiBUaW5oIHRyYW5nIG1hdCB2ZSBzaW5o IHRhaSBjYWMgcXVhbiBhbiB2aWEgaGUsIGNhYyBjaG8gYnVvbiBiYW4gdGh1YyBwaGFtIA0Ka2hp ZW4gbmd1b2kgZGFuIGFuIGdpIGN1bmcgbG8uIE5oaWV1IGN1IHRyaSBjaG8gcmFuZyBuYW4ga2V0 IHhlLCB0YWMgZHVvbmcgZGEgbm9pIHF1YSANCm5oaWV1IG5odW5nIGt5IG5hbyBjdW5nIHZhbiBj b24uLi4gdGFjLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9C by1DaGluaC10cmktZG9uZy10aW5oLXBodW9uZy1hbi1uaGFuLXN1LWN1YS1IYS1Ob2ktOTMyMTc5 LyBUVFhWTiAgMjM6MjMsIDI3LzA4LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IA0KDQotIEtpbmgg dGUgcGhhdCB0cmllbiBjaHVhIHR1b25nIHh1bmcgdm9pIHRpZW0gbmFuZywgdGhlIG1hbmggdmEg dmkgdGhlIGN1YSBUaHUgZG87IA0KDQotIENoYXQgbHVvbmcsIGhpZXUgcXVhLCBzdWMgY2FuaCB0 cmFuaCBjdWEgc2FuIHBoYW0gY29uIHRoYXA7IA0KDQotIEtpbmggdGUgdHJpIHRodWMsIGhhbSBs dW9uZyBjaGF0IHhhbSBjbyBnaWEgdHJpIGdpYSB0YW5nIGNhbyBjdWEgY2FjIG5nYW5oIGtpbmgg dGUgY2h1IGx1YyBjaHVhIHJvIG5ldDsgDQoNCi0gU3VjIGxhbiB0b2EgY3VhIG1vdCAidHJ1bmcg dGFtIGtpbmggdGUgbG9uLCIgdmFpIHRybyBjdWEgbW90ICJkb25nIGx1YyBraW5oIHRlIiB0cm9u ZyB2dW5nIGtpbmggdGUgdHJvbmcgZGllbSBCYWMgQm8gdmEgY2EgbnVvYyBjaHVhIGR1b2MgcGhh dCBodXkgZGF5IGR1LiANCg0KaHR0cDovL3ZpZXRiYW8udm4vU3VjLWtob2UvTnVvYy10aGFpLWJl bmgtdmllbi1jaGF5LXRoYW5nLXJhLWNhbmgtZG9uZy8zMDE5MjI1Ni8yNDgvIExhbiBIdW9uZyBW aWV0IEJhbyAoVGhlb19EYW5UcmkpIDE0LzgvMjAwNywgMTM6MjIgR01UKzcgDQoNCkhhIE5vaTog TnVvYyB0aGFpIGJlbmggdmllbiAiY2hheSIgdGhhbmcgcmEgY2FuaCBkb25nDQoNClRoZW8gVFMu QlMgTmd1eWVuIER1eSBCYW8sIFZpZW4gWSBob2MgbGFvIGRvbmcgdmEgdmUgc2luaCBtb2kgdHJ1 b25nLCBudW9jIHRoYWkgDQpiZW5oIHZpZW4gbGEgbW90IHRyb25nIGNhYyBuZ3VvbiBnYXkgbyBu aGllbSBsb24gaGllbiBuYXkuDQpPIEhhIE5vaSwgdG9uZyBsdW9uZyBudW9jIHRoYWkgY2FjIGJl bmggdmllbiBraG9hbmcgNi4wMDBtMy9uZ2F5LiBLZXQgcXVhIHhldCBuZ2hpZW0gDQp0aGFuaCBw aGFuIGxpIGhvYSwgdmkgc2luaCB2YXQgbyBtb3Qgc28gYmVuaCB2aWVuIG5vaSB0aGFuaCBIYSBO b2kgY2hvIHRoYXkgY2FjIGNoaSANCnNvIG5heSBkZXUgY2FvIGhvbiB0aWV1IGNodWFuIGNobyBw aGVwLg0KDQpUcmVuIHRodWMgdGUsIGhhdSBoZXQgY2FjIGJlbmggdmllbiBvIEhhIE5vaSBkZXUg Y28gaGUgdGhvbmcgY2FwIHRob2F0IG51b2Mgbmh1bmcgDQpob2F0IGRvbmcga2VtIGhpZXUgcXVh LiBIZSB0aG9uZyB0aG9hdCBudW9jIGdvbSBjYWMgbXVvbmcgcmFuaCBiaSBzdXQgbHVuIGdheSB1 bmcgDQpuZ2FwIGN1YyBibyBsYW0gbyBuaGllbSBtb2kgdHJ1b25nLiBDYWMgb25nIHRob2F0IG51 b2MgYmFuIGNvIGR1b25nIGtpbmggc2lldSBuaG8gDQooMjAwLTUwMG1tKSBob24gbnVhIGxhaSBi aSBodSBob25nIG5lbiB0aG9hdCBrZW0gZ2F5IHVuZyBuZ2FwLg0KDQpUcm9uZyBjYWMgYmVuaCB2 aWVuIGRldSBjbyBiZSB0dSBob2FpIG5odW5nIGhpZXUgcXVhIHRoYXAuIFRhaSBjYWMga2h1IHZl IHNpbmgsIA0KY2FjIGJlIHR1IGhvYWkgdmEgYmFuIHR1IGhvYWkgeGEgdGhhbmcgcGhhbiByYSBt YW5nIGNvbmcgY2h1bmcgY3VhIHRoYW5oIHBoby4NCk5naGllbiBjdXUgdGFpIDUgYmVuaCB2aWVu IG5nb2FpIHRoYW5oIEhhIE5vaSBjdWEgVmllbiB5IGhvYyBsYW8gZG9uZyB2YSBWZSBzaW5oIA0K bW9pIHRydW9uZyAoQm8gWSB0ZSkgY2hvIHRoYXkgbnVvYyB0aGFpIGtob25nIGR1b2MgeHUgbHkg bWEgdGhhaSB0aGFuZyByYSBjYW5oIGRvbmcsIA0KbXVvbmcgbWFuZyBob2FjIGNvbmcgbmdhbSBj dWEgdGhhbmggcGhvLg0KDQpodHRwOi8vdGludHVjLmJhY3NpLmNvbS90aW4teS10ZS90aW4teS10 ZS12aWV0LW5hbS8yMDIxOC5odG1sIFRodSBiYXksIDE4IFRoYW5nIDEwIDIwMDggMTg6MzAgQkFD U0kuY29tIChUaGVvIERhbiBUcmkpDQoNCkhhIE5vaTogTWFtIGJlbmggdHUgbnVvYyB0aGFpIGJl bmggdmllbiAidm8gdHUiIHJhIG1vaSB0cnVvbmcgDQoNCipHYW4gMzAwIHRhbiByYWMvNSBuYW07 DQoqR2FuIDYwMDBtMyBudW9jIHRoYWkgbW9pIG5nYXkuIA0KDQpOdW9jIHRoYWkgdHUgY2FjIHBo b25nIHBoYXUgdGh1YXQsIHBob25nIHhldCBuZ2hpZW0sIHRoaSBuZ2hpZW0sIHR1IGNhYyBuaGEg dmUgc2luaCwgDQpraHUgZ2lhdCBsYSBjdWEgYmVuaCB2aWVuLi4uIHZvaSBuaHVuZyBtYW0gYmVu aCB0cnV5ZW4gbmhpZW0sIG5ndXkgaGllbSBkYW5nIG5nYXkgDQpkZW0gY2hheSB0aGFuZyB2YW8g aGUgdGhvbmcgdGhvYXQgbnVvYyBjaHVuZyBjdWEgdGhhbmggcGhvIG1hIGtob25nIHF1YSB4dSBs eS4gDQoNCkhldCByYWMgdGhhaSBkZW4gbnVvYyB0aGFpDQoNCkNhY2ggZGF5IGhvbiAxIG5hbSwg YmVuaCB2aWVuIFZpZXQgRHVjIGRhIHRybyB0aGFuaCB0aWV1IGRpZW0gdHJvbmcgZHUgbHVhbiBr aGkgQ3VjIA0KY2FuaCBzYXQgbW9pIHRydW9uZyBDMzYgYmF0IHF1YSB0YW5nIGhhbmggdmkgdmFu IGNodXllbiBjaGF0IHRoYWkgbmd1eSBoYWkgdHJhaSBwaGVwLCB2aSANCnBoYW0gY2FjIHF1eSBk aW5oIGN1YSBwaGFwIGx1YXQgdmUgYmFvIHZlIG1vaSB0cnVvbmcgdHUgQmVuaCB2aWVuIG5heS4N Cg0KUXVhIHhhYyBtaW5oIGN1YSBjbyBxdWFuIGRpZXUgdHJhLCB0cm9uZyBzdW90IDUgbmFtLCBn YW4gMzAwIHRhbiByYWMgdGhhaSB5IHRlIGRhIGR1b2MgDQp0dW9uIHJhIHR1IGJlbmggdmllbiBu YXkgbmh1IHZvIGxvIHRodW9jIGJhbmcgbmh1YSwgdGh1eSB0aW5oIGNhYyBsb2FpLCBkYXkgdHJ1 eWVuIGRpY2ggDQpiYW5nIG5odWEsIHR1aSBuaSBsb25nIGNodWEgYm9tIHRpZW0sIGJvbSB0aWVt Li4uIFRvYW4gYm8gc28gcmFjIHRoYWkgbmF5IGR1b2MgbmdoaWVuIA0KdGhhbmggYm90IGRlIHNh biB4dWF0IGRvIGdpYSBkdW5nLCB0aGFtIGNoaSBjaHVuZyBjb24gZHVvYyB0YWkgY2hlIHRoYW5o IG5odW5nIGNoaWVjIA0KdGhpYSBuaHVhIGNobyB0cmUgZW0gZHVuZyEgQmVuaCB2aWVuIFZpZXQg RHVjIGRhIGJpIHBoYXQgMjAgdHJpZXUgZG9uZyB2ZSBoYW5oIHZpIGRvIA0KY2hhdCB0aGFpIHRy YWkgcGhlcCBnYXkgbyBuaGllbSBtb2kgdHJ1b25nLg0KDQpUaGlldCB0dW9uZyBzYXUgc3Ugdmll YyB0cmVuLCBiZW5oIHZpZW4gVmlldCBEdWMgc2UgY28geSB0aHVjIHRyYWNoIG5oaWVtIGhvbiBk b2kgdm9pIA0Kbmd1b2kgZGFuLCB2b2kgbW9pIHRydW9uZy4gU29uZyBuZ2F5IDEvMTAvMjAwOCB2 dWEgcXVhLCBkb2FuIGtpZW0gdHJhIGxpZW4gbmdhbmggZG8gDQpTbyB0YWkgbmd1eWVuIG1vaSB0 cnVvbmcgSGEgTm9pIGNodSB0cmkgZGEgdGllbiBoYW5oIGtpZW0gdHJhIHZhIHBoYXQgaGllbiwg ZG9uIHZpIG5heSANCnRpZXAgdHVjIGdheSBvIG5oaWVtIG1vaSB0cnVvbmcgbmh1bmcga2hvbmcg cGhhaSBsYSByYWMgdGhhaSBtYSBiYW5nIHhhIG5ndW9uIG51b2MgdGhhaSANCnRydWMgdGllcCBx dWEgbW9pIHRydW9uZyBtYSBraG9uZyBxdWEgeHUgbHkuDQoNCktob25nIGNoaSBjbyBiZW5oIHZp ZW4gVmlldCBEdWMsIGJlbmggdmllbiBwaHUgc2FuIEhhIE5vaSBtb2kgbmdheSBjdW5nIHhhIHRv aSANCjMwMG0zIG51b2MgdGhhaSBiZW5oIHZpZW4gcmEgbW9pIHRydW9uZy4NCg0KQmVuaCB2aWVu IExhbyBwaG9pIFQuVSBjbyBxdXkgbW8gcGh1YyB2dSA0MDAgZ2l1b25nIGJlbmguIFRoZW8gaG8g c28gYmVuaCB2aWVuIA0KY3VuZyBjYXAsIGJlbmggdmllbiBkYSBjbyBoZSB0aG9uZyB4dSBseSBu dW9jIHRoYWkgdmkgc2luaCwgdm9pIGNvbmcgc3VhdCA2MDAgbTMgbmdheSANCmRlbS4gQ29uZyBz dWF0IHhhIHRoYWkgY3VhIGJlbmggdmllbiBiaW5oIHF1YW4gbW9pIGNoaSAyNTBtMy9uZ2F5IGRl bS4gVHV5IG5oaWVuLCANCmtoaSBkb2FuIGtpZW0gdHJhIGxpZW4gbmdhbmggY3VhIFNvIFROJk1U LCBDYW5oIHNhdCBtb2kgdHJ1b25nIGtpZW0gdHJhIG5nYXkgMTAvMTAgDQp2dWEgcXVhIHRoaSBu dW9jIHRoYWkgdHUgYmUgdGh1IGdvbSBraG9uZyBkdW9jIGJvbSBsZW4gaGUgdGhvbmcgeHUgbHkg bWEgZHVvYyB4YSB0cnVjIA0KdGllcCByYSBtb2kgdHJ1b25nLiBCZW5oIHZpZW4gY3VuZyBraG9u ZyBjbyB0aGlldCBiaSBkbyBsdXUgbHVvbmcgbnVvYyB0aGFpLg0KDQpUaGVvIHRpbmggdG9hbiBj dWEgU28gVGFpIG5ndXllbiB2YSBNb2kgdHJ1b25nIEhhIE5vaSwgbHVvbmcgbnVvYyB0aGFpIHR1 IGNhYyBiZW5oIA0KdmllbiBvIG5vaSB0aGFuaCBIYSBOb2kgdmFvIGtob2FuZyA2LjAwMG0zL25n YXksIHRyb25nIGRvIHBoYW4gbG9uIG51b2MgdGhhaSBraG9uZyANCnF1YSBoZSB0aG9uZyB4dSBs eSwgeGEgdGhhbmcgdmFvIGNvbmcgdGhvYXQgbnVvYyBjaHVuZyBjdWEgdGhhbmggcGhvLg0KDQpO b2kgYmFvIHZlIGN1bmcgY2hpbmggbGEgbm9pIGdheSBoYWkNCg0KTnVvYyB0aGFpIGJlbmggdmll biBiYW8gZ29tIG51b2MgdGhhaSB0dSBjYWMgcGhvbmcgcGhhdSB0aHVhdCwgcGhvbmcgeGV0IG5n aGllbSwgDQpwaG9uZyB0aGkgbmdoaWVtLCB0dSBjYWMgbmhhIHZlIHNpbmgsIGtodSBnaWF0IGxh Li4uIGNvIGtoYSBuYW5nIGxhbiB0cnV5ZW4gcmF0IG1hbmggY2FjIA0Kdmkga2h1YW4gZ2F5IGJl bmgsIG5oYXQgbGEgZG9pIHZvaSBudW9jIHRoYWkgZHVvYyB4YSByYSB0dSBuaHVuZyBiZW5oIHZp ZW4gaGF5IG5odW5nIA0Ka2hvYSB0cnV5ZW4gbmhpZW0sIGxheSBuaGllbS4NCg0KT25nIEpvcmRh biBSeWFuIC0gbmd1eWVuIFRydW9uZyBkYWkgZGllbiB0aHVvbmcgdHJ1IFVORFAgdGFpIFZpZXQg TmFtIGRhIHR1bmcgY2hvIA0KYmlldCwgODAlIGNhYyB0cnVvbmcgaG9wIGJlbmggdGF0IG8gVmll dCBOYW0gaGllbiBuYXkgbGEgZG8gbmd1b24gbnVvYyBiaSBvIG5oaWVtLiANCkNvbiBzbyBuYXkg Y3VuZyBkdSBkZSB0aGF5IG5odW5nIHRhYyBoYWkga2luaCBob2FuZyBkbyBuZ3VvbiBudW9jIHRo YWkgZ2F5IHJhLCB0cm9uZyANCmRvIG1vdCBwaGFuIGxvbiBsYSB0dSBudW9jIHRoYWkgYmVuaCB2 aWVuLg0KDQpOaHVuZyB2aSBzYW8gY2FjIGJlbmggdmllbiB2YW4gY28gdGluaCB4YSBudW9jIHRo YWkgeSB0ZSB0aGFuZyByYSBtb2kgdHJ1b25nIG1hIGtob25nIA0KcXVhIHh1IGx5LCBiYXQgY2hh cCBjYWMgcXV5IGRpbmggdmUgcGhhcCBsdWF0IGN1bmcgbmh1IG5odW5nIGhhdSBxdWEgbWEgZ2F5 IHJhIHR1IHZpZWMgDQpsYW0gbmF5Pw0KDQpWaWVjIGtob25nIGNvIGhlIHRob25nIHh1IGx5IG51 b2MgdGhhaSB0YWkgY2FjIGJlbmggdmllbiBkYSB0b24gdGFpIHR1IG5oaWV1IG5hbSBuYXkuIA0K VGhlbyBseSBnaWFpIGN1YSBjYWMgYmVuaCB2aWVuIGRhbmcgInZvIHR1IiB4YSBudW9jIHRoYWkg eSB0ZSByYSBtb2kgdHJ1b25nIHRoaSwgaG8gY28geSANCnRodWMgdHJvbmcgdmllYyBwaGFpIHhh eSBkdW5nIGhlIHRob25nIHh1IGx5IG51b2MgdGhhaSB0YXAgdHJ1bmcsIHRyYW5oIHRpbmggdHJh bmcgZ2F5IG8gDQpuaGllbSBtb2kgdHJ1b25nLCBuaHVuZyBiZW5oIHZpZW4gZGFuZyBjaG8gY2Fw IHRyZW4gcGhlIGR1eWV0LCBjYXAga2luaCBwaGkuLi4gVmkgdmF5LCANCnR1IGRvIGRlbiBuYXks IGhvIHZhbiBwaGFpIHhhIG51b2MgdGhhaSBraG9uZyBxdWEgeHUgbHkgcmEgbW9pIHRydW9uZyEN Cg0KS2hvbmcgYWkgcGh1IG5oYW4gdmllYyB0aGlldSBraW5oIHBoaSBjbyB0aGUga2hpZW4gY2Fj IGJlbmggdmllbiAibHVjIGJhdCB0b25nIHRhbSIgDQp0cm9uZyB2aWVjIG5nYW4gY2hhbiBuZ3Vv biBudW9jIHRoYWkgeSB0ZSBnYXkgbyBuaGllbSBkb2kgdm9pIGNvbmcgZG9uZywgdm9pIG1vaSAN CnRydW9uZy4gVHV5IG5oaWVuLCBkYSBjbyBuaGlldSB5IGtpZW4gY2hvIHJhbmcsIGRheSBjaGkg bGEgY2FpIGNvIGN1YSBtb3Qgc28gbm9pIHRodWMgc3UgDQpraG9uZyBtdW9uIGxhbSwgY2hvIGR1 IGNvIGR1IGtpbmggcGhpLiBDaGFuZyBoYW4gbmh1IG8gYmVuaCB2aWVuIHBodSBzYW4gSGEgTm9p LCANCm5odW5nIHRyb25nIGtoaSBjaG8gZHVvYyBwaGUgZHV5ZXQgeGF5IGhlIHRob25nIHh1IGx5 IG51b2MgdGhhaSwgQmVuaCB2aWVuIG5heSBkYSANCmR1b2MgcGhlIGR1eWV0IGR1IGFuIHhheSBk dW5nIHRvYSBuaGEgMTEgdGFuZyBwaHVjIHZ1IHZpZWMga2hhbSBjaHVhIGJlbmggY3VhIGJlbmgg bmhhbi4NCg0KaHR0cDovL3d3dy50aW4yNDcuY29tL2tpbmhfaG9hbmdfbnVvY190aGFpX2Jlbmhf dmllbi0xLTU5ODY1Lmh0bWwgVnUgSG9hbmcgLSAgQ2FvIE1pbmggIDIxLzA4LzIwMDggLSAxNjo0 NyAtICBWaWV0TmFtTmV0LnZuIA0KDQpIYSBOb2k6IEtpbmggaG9hbmcgbnVvYyB0aGFpIGJlbmgg dmllbg0KDQogLSBOZ29haSBjYWMgbG9haSB2aSB0cnVuZyB0dSBtYXUsIGRpY2gsIGRvbSwgcGhh biBjdWEgbmd1b2kgYmVuaCwgbnVvYyB0aGFpIGJlbmggdmllbiANCmNvbiBjbyBkdW5nIGRpY2gg Y2h1YSBjYWMgY2hhdCBwaG9uZyB4YSBwaGF0IHNpbmggdHJvbmcgcXVhIHRyaW5oIGNoYW4gZG9h biB2YSBkaWV1IHRyaS4gDQpEYW5nIG5vaSBvIGNobywgbnVvYyB0aGFpIGJlbmggdmllbiB2YW4g ZGFuZyBiaSBkbyB0aGFuZyB2YW8gaGUgdGhvbmcgdGhvYXQgbnVvYyBjaHVuZyBjdWEgVFAgSGEg Tm9pLiANCiANClRoZW8gUXV5ZXQgZGluaCA2NC8yMDAzL1FELVRURyBjdWEgVGh1IHR1b25nIENo aW5oIHBodSB2ZSB2aWVjIHRodWMgaGllbiB4dSBseSANCnRyaWV0IGRlIGNhYyBjbyBzbyBnYXkg byBuaGllbSBtb2kgdHJ1b25nIG5naGllbSB0cm9uZyB0aGkgSGEgTm9pIGNvIGRlbiA2IGJlbmgg dmllbiANCnBoYWkgdGh1YyBoaWVuIG5nYXkgcXV5ZXQgZGluaCBuYXkgZ29tIGNhYyBiZW5oIHZp ZW46IEssIFZpZXQgRHVjLCBQaHUgc2FuIFRydW5nIA0KdW9uZywgUGh1IHNhbiBIYSBOb2ksIERv bmcgRGEsIEhhaSBCYSBUcnVuZyAtIFRoYW5oIE5oYW4uDQoNCihBbmg6IEJlbmggdmllbiBLIGRh IHhheSB4b25nIGhlIHRob25nIHh1IGx5IG51b2MgdGhhaSkNCiANCkN1dSB2YW4gY3VuZyBzby4u LiBtb2MgY29uZyBiZW5oIHZpZW4NCg0KTmh1bmcgbmdheSBuYXksIHRob2kgdGlldCBIYSBOb2kg dGhheSBkb2kgbGllbiB0dWMga2hpZW4gaGUgdGhvbmcgbXVvbmcgbWFuZyB2YSBjb25nIA0Kbmdh bSBjaGF5IHRyb25nIHRoYW5oIHBobyB0aHVvbmcgdSBkb25nIHZhIGJvYyBtdWkga2hvIGNoaXUu IFRoZW8gU28gVGFpIG5ndXllbiANCk1vaSB0cnVvbmcgSGEgTm9pLCBtb2kgbmdheSBjbyA0MDAu MDAwbTMgbnVvYyB0aGFpIGRvIHZhbyBzb25nIE5odWUsIHNvbmcgRGF5IGhhdSANCmhldCBraG9u ZyBxdWEgeHUgbHksIHRyb25nIGRvIGNvIGdhbiBtb3QgbnVhIGxhIG51b2MgdGhhaSBiZW5oIHZp ZW4uDQoNCkFuaCBOZ3V5ZW4gTHVvbmcgSHVuZyAocXVlIG8gVGluaCBHaWEsIFRoYW5oIEhvYSkg bGVuIEhhIE5vaSBraWVtIHNvbmcgYmFuZyBuZ2hlIA0KY3V1IHZhbi4gVHJ1b2MgZGF5IGFuaCB0 aHVvbmcgZHVvYyBjYWMgY29uZyBuaGFuIHRodWUgbGFtIGNvbmcgdmllYyBtb2MgdmEgdGhvbmcg DQpjYWMgZHVvbmcgY29uZyBiaSB0YWMsIG5oYXQgbGEgbmh1bmcgY29uZyB0aG9hdCBudW9jIGNo YXkgcmEgdHUgY2FjIGJlbmggdmllbiB0cm9uZyB0aGFuaCBwaG8uDQoNCihDYW5oIGNoaWVjIHhl IG5heSBraG9hbmcgMTBtLCB0cm9uZyBjdW5nIG1vdCBuZ29pIG5oYSBsYSBuaGEgYW4gY3VhIEJl bmggdmllbiBQaHUgc2FuIEhOLiBBbmg6IFYuSCkNCg0KIk1pbmggbGVuIGRheSBiYW4gc3VjIGx1 YyBraWVtIHNvbmcsIGFpIHRodWUgZ2kgbWluaCBjdW5nIGxhbSwgbW9jIGNvbmcsIGRhbyBtdW9u ZyBsYSANCmNvbmcgdmllYyB0aHVvbmcgeHV5ZW4gY3VhIG1pbmguIFRpZXAgeHVjIG1haSBjdW5n IHF1ZW4sIG5odW5nIHNhdSBuYXkgbWluaCBkZSB5IA0KdGhheSBjYWMgZHVvbmcgY29uZyB2YSBt dW9uZyBtYW5nIGdhbiBiZW5oIHZpZW4gdGhpIG5nYXkgY2EgY2FjIGNvbmcgbmhhbiBobyBjdW5n IA0Ka2hvbmcgbGFtLCBobyBibyB0aWVuIHJhIHRodWUgaGV0IiAtIGFuaCBIdW5nIGNobyBiaWV0 Lg0KDQpTYXUgZ2FuIG1vdCBuYW0gbGFtICJuaGllbSB2dSIgdGhheSB2aWVjIG1heSBjb25nIG5o YW4gbW9jIGNvbmcsIGFuaCBIdW5nIGN1bmcgDQpiaWV0IGR1b2MgcGhhbiBuYW8gdGFjIGhhaSBj dWEgdGh1ICJudW9jIiBkby4gVHV5IG5oaWVuLCBkbyBsYSBjb25nIHZpZWMga2llbSBkdW9jIHRo dSANCm5oYXAgbmhpZXUgbmhhdCwgbmVuIGFuaCB2YW4ga2hvbmcgdGhlIHR1IGNob2kuDQoNCk51 b2MgdGhhaSBiZW5oIHZpZW4gdm9uIGR1b2MgbGlldCB2YW8gZGFuaCBtdWMgY2hhdCB0aGFpIGRh YyBiaWV0IG5ndXkgaGFpIGJvaSBuZ29haSBjYWMgDQpsb2FpIHZpIHRydW5nIHR1IG1hdSwgZGlj aCBkb20sIHBoYW4gY3VhIG5ndW9pIGJlbmgsIGNvbiBjbyBkdW5nIGRpY2ggY2h1YSBjYWMgY2hh dCANCnBob25nIHhhIHBoYXQgc2luaCB0cm9uZyBxdWEgdHJpbmggY2hhbiBkb2FuLCBkaWV1IHRy aS4gRGFjIGJpZXQsIGNhYyBsb2FpIGhvYSBjaGF0IGRpZXUgdHJpIA0KdW5nIHRodSB2YSBjYWMg c2FuIHBoYW0gY2h1eWVuIGhvYSBuZXUgeGEgdGhhbmcgcmEgbW9pIHRydW9uZyBraG9uZyBxdWEg eHUgbHkgc2UgY28gDQpraGEgbmFuZyBnYXkgcXVhaSB0aGFpLCB1bmcgdGh1IGNobyBuaHVuZyBu Z3VvaSB0aWVwIHh1YyB2b2kgY2h1bmcgbmh1IGNvbmcgbmhhbiBuYW8gDQp2ZXQgY29uZyB0aG9h dCBudW9jLg0KDQpUaGVvIGtldCBxdWEgcGhhbiB0aWNoIGN1YSBUcnVuZyB0YW0gUXVhbiB0cmFj IGN1YSBTbyBUYWkgbmd1eWVuIE1vaSB0cnVvbmcgSGEgTm9pLCANCmxvYWkgbnVvYyB0aGFpIG5h eSBvIG5oaWVtIG5hbmcgdmUgbWF0IGh1dSBjbyB2YSB2aSBzaW5oLiBIYW0gbHVvbmcgdmkgc2lu aCBjYW8gZ2FwIA0KMTAwIC0gMS4wMDAgbGFuIHRpZXUgY2h1YW4gY2hvIHBoZXAsIHZvaSBuaGll dSBsb2FpIHZpIGtodWFuIG5odSBTYWxtb25lbGxhLCB0dSBjYXUsIGxpZW4gDQpjYXUsIHZpcnVz IGR1b25nIHRpZXUgaG9hLCBiYWkgbGlldCwgY2FjIGxvYWkga3kgc2luaCB0cnVuZywgYW1pcCwg bmFtLiBIYW0gbHVvbmcgY2hhdCByYW4gDQpsbyBsdW5nIGNhbyBnYXAgMi0zIGxhbiB0aWV1IGNo dWFuIGJpbmggdGh1b25nLiANCg0KKE5oYSBjaHVhIHJhYyBCZW5oIHZpZW4gUGh1IHNhbiBITiwg YmVuIGR1b2kgbGEgY29uZyBuZ2FtIGRhbiBudW9jIHRoYWkgY2hheSBjaHVuZyANCnZvaSB0aGFu aCBwaG8uIEFuaDogVi5IKSANCg0KTyBIYSBOb2ksIHRvbmcgbHVvbmcgbnVvYyB0aGFpIGNhYyBi ZW5oIHZpZW4ga2hvYW5nIDYuMDAwbTMvbmdheS4gDQoNClRoZW8gQ2FuaCBzYXQgbW9pIHRydW9u ZyAoQm8gQ29uZyBhbiksIDYgYmVuaCB2aWVuIGxhOiBLLCBWaWV0IER1YywgUGh1IHNhbiBUcnVu ZyANCnVvbmcsIFBodSBzYW4gSGEgTm9pLCBEb25nIERhLCBIYWkgQmEgVHJ1bmcgLSBUaGFuaCBO aGFuIGRldSBraG9uZyBjbyBoZSB0aG9uZyB4dSANCmx5IG51b2MgdGhhaSB0YXAgdHJ1bmcgZGF0 IHRpZXUgY2h1YW4uIFRhdCBjYSBudW9jIHRoYWkgdHJvbmcgY2FjIGJlbmggdmllbiBuYXkgZGV1 IGR1b2MgDQpkb24gdmFvIGJlIHBob3Qgcm9pLi4uIGRvIHRoYW5nIHJhIGhlIHRob25nIHRob2F0 IG51b2MgY2h1bmcgY3VhIHRoYW5oIHBoby4NCiANClNhdSBraGkgaG9hIHZhbyBoZSB0aG9uZyB0 aG9hdCBudW9jIHRoYWkgc2luaCBob2F0LCBuaHVuZyBtYW0gYmVuaCBuYXkgY2h1IGR1IGtoYXAg DQpub2ksIHhhbSBuaGFwIHZhbyBjYWMgbG9haSB0aHV5IHNhbiwgdmF0IG51b2ksIGNheSB0cm9u ZywgbmhhdCBsYSByYXUgdGh1eSBjYW5oIHZhIHRybyBsYWkgDQp2b2kgY29uIG5ndW9pLiANCiAN Ck1haSBtdWEgc2FtIG1hIHF1ZW4uLi4geHUgbHkgbWFtIGJlbmg/DQogDQpEdW9jIGJpZXQsIGRl IHhheSBkdW5nIG1vdCBoZSB0aG9uZyB4dSBseSBudW9jIHRoYWkgZGF0IHRpZXUgY2h1YW4gbW9p IHRydW9uZyBjaG8gbW90IA0KYmVuaCB2aWVuIG5obyBraG9hbmcgMjAwLTMwMCBnaXVvbmcgYmVu aCB0aGkgY2FuIG11YyBraW5oIHBoaSBraG9hbmcgdHUgMS0xLDUgdHkgDQpkb25nLiBUcm9uZyB0 aGlldCBrZSBjYW4gcGhhaSBjbyBtb3QgaG8gY2h1YSByb25nIGtob2FuZyAxMDBtMiB2b2kgY29u ZyBzdWF0IHh1IGx5IA0KMS41MDBtMy9uZ2F5LiBIZSB0aG9uZyBtYXkgeHUgbHkgZ29tIGNhYyBr aG9hbmcgY2h1YSBudW9jIGRlbiwgY28gYm8gcGhhbiBsb2MgcmFjIG8gDQpwaGlhIG5nb2FpLiBO dW9jIGR1b2MgY2hvIHZhbyBib24ga2h1IG11aSBiYW5nIGR1bmcgZGljaCBDbG8gbG9uZywgc2F1 IGRvIGxvYyBraHUgdmkgc2luaCwgDQpodXUgY28uIFRvYW4gYm8gY2FjIGtob2FuZyBjaHVhIG51 b2MgZHVvYyB4YXkga2luIGtob25nIGNobyB0aG9hdCBtdWkuIEhlIA0KdGhvbmcgZHVvYyB4YSBj YW4gMiBsYW4vdHVhbi4NCiANCkx5IHRodXlldCBsYSBuaHUgdmF5IG5odW5nIHNhdSA0IG5hbSB0 aHVjIGhpZW4gcXV5ZXQgZGluaCB0cmVuIGN1YSBDaGluaCBwaHUsIG1vaSBjbyAzIA0KYmVuaCB2 aWVuIHhheSB4b25nIGhlIHRob25nIHh1IGx5IG51b2MgdGhhaSwgbGE6IEJlbmggdmllbiBIYWkg QmEgVHJ1bmctVGhhbmggTmhhbiwgDQpCZW5oIHZpZW4gSyB2YSBCZW5oIHZpZW4gUGh1IHNhbiBU cnVuZyB1b25nLiBSaWVuZyBCZW5oIHZpZW4gVmlldCBEdWMgdGhlbyBkdSBraWVuLCANCnRoYW5n IDggbmF5IG1vaSBob2FuIHRoYW5oIHZpZWMgdGhpIGNvbmcgaGUgdGhvbmcgeHUgbHkgbnVvYyB0 aGFpLg0KDQpDbyBtYXQgdGFpIEJlbmggdmllbiBQaHUgc2FuIEhhIE5vaSwgb25nIE5ndXllbiBI dXkgQmFvLCBHaWFtIGRvYyBiZW5oIHZpZW4gY2hvIA0KYmlldDogIlNhdSBraGkgY28gcXV5ZXQg ZGluaCBjdWEgQ2hpbmggcGh1IG5hbSAyMDAzLCBjaHVuZyB0b2kgY3VuZyBtdW9uIGR1b2MgeGF5 IA0KZHVuZyB0cmFtIHh1IGx5IHJhYyB0aGFpLiBUdXkgbmhpZW4sIGRlbiB0aG9pIGRpZW0gaGll biBnaW8gY2h1bmcgdG9pIGNoaSBtb2kgeHUgbHkgZHVvYyANCmNoYXQgdGhhaSByYW4gYmFuZyBj YWNoIGtpIGhvcCBkb25nIHZvaSBjYWMgbG8gZG90IHZhIGhhbmcgbmdheSBobyBkZW4gdGFuIGJl bmggdmllbiBkZSANCmxheSByYWMgbWFuZyB2ZSB4dSBseS4NCg0KKEdpYW0gZG9jIEJlbmggdmll biBQaHUgc2FuIEhOLCBvbmcgTmd1eWVuIEh1eSBCYW8uIEFuaDogVi5IKQ0KDQpIaWVuIHRhaSBj aHVuZyB0b2kgbW9pIG5oYW4gZHVvYyBxdXlldCBkaW5oIG1vaSBuaGF0IGN1YSBVQk5EIFRoYW5o IHBobyBIYSBOb2kgdmUgDQp2YW4gZGUgeHUgbHkgbnVvYyB0aGFpLiBUaGVvIGRvLCB2aWVjIHhh eSBkdW5nIGtodSB4dSBseSBkdW9jIGdpYW8gY2hvIGNhcCB0cmVuLCBjdSB0aGUgDQpsYSBTbyBZ IHRlIHZhIFVCTkQgVGhhbmggcGhvIEhhIE5vaSBxdXlldCBkaW5oLiBNdW9uIHhheSBkdW5nIHRy YW0geHUgbHkgbnVvYyANCnRoYWksIGRhbmggcGhhaSBjaG8gY2FwIHRyZW4geGV0IGR1eWV0Ii4N Cg0KIkNobyIgeGV0IGR1eWV0IG1hIHRoZW8gb25nIEJhbywgY3VuZyBraG9uZyBiaWV0IHJvIGN1 IHRoZSBsYSBwaGFpIGNobyB0cm9uZyBiYW8gbGF1LCBkdSANCnhheSBkdW5nIHRyYW0geHUgbHkg bnVvYyB0aGFpIGNobyBiZW5oIHZpZW4gbmF5IGNoaSBoZXQga2hvYW5nIDMgdHkgZG9uZy4NCiAN ClRyb25nIGtoaSBkbywgb25nIEJhbyBjaG8gYmlldCB0aGVtLCB0cm9uZyBsdWMgImNobyIgZHVv YyBkdXlldCB4YXkgaGUgdGhvbmcgeHUgbHkgDQpudW9jIHRoYWksIHRoYW5oIHBobyBkYSBwaGUg ZHV5ZXQgZHUgYW4geGF5IGR1bmcgdGhlbSAxIHRvYSBuaGEgMTEgdGFuZyAodm9uIGRhdSB0dSBs ZW4gDQpkZW4gaGFuZyB0cmFtIHR5IGRvbmcpIGRlIHBodWMgdnUgY29uZyB0YWMgY3VhIGJlbmgg dmllbi4gRGlldSBuYXkgY2hhbmcga2hhYyBnaSAibXVhIA0KZHVvYyB0cmF1IG1hIGtob25nIHNh bSBkdW9jIHRodW5nIiENCiANCkJhIE5ndXllbiBUaGkgQmljaCBEYW8sIEdpYW0gZG9jIEJlbmgg dmllbiBEYSBraG9hIERvbmcgRGEgY3VuZyB0cmFvIGRvaTogIkx1b25nIA0KbnVvYyB0aGFpIGN1 YSBiZW5oIHZpZW4gdHJ1b2Mga2hpIHRoYWkgcmEgbW9pIHRydW9uZyBjbyBkdW9jIGNodW5nIHRv aSB4dSBseSBiYW5nIGNoYXQgDQpDbG9yYW1pbkIsIGNoYXQgbmF5IGNvIHRhYyBkdW5nIGtodSBr aHVhbiBsYW0gZ2lhbSBib3QgdGluaCBkb2MgaGFpLiBDb24gdmUgdGllbiB0cmluaCANCnhheSBk dW5nIHRyYW0geHUgbHkgbnVvYyB0aGFpIGNobyByaWVuZyBiZW5oIHZpZW4gY2FuIHBoYWkgZHVv YyBTbyBZIHRlIHRob25nIHF1YSB2YSANCnBoZSBkdXlldCIuDQogDQpDdW5nIG5odSBCZW5oIHZp ZW4gUGh1IHNhbiBIYSBOb2ksIG8gQmVuaCB2aWVuIERvbmcgRGEsIGJhIERhbyB2YW4ga2hvbmcg bmFtIHJvIA0Ka2hpIG5hbyB0aGkgYmVuaCB2aWVuIG1pbmggZHVvYyB4YXkgZHVuZyB0cmFtIHh1 IGx5IG51b2MgdGhhaS4NCiAgDQooQW5oOiBDb25nIHBoaWEgc2F1IG5oYSBjaHVhIHJhYyBjdWEg QmVuaCB2aWVuIFBodSBzYW4gSE4uIEFuaDogVi5IKSANCg0KQ2hpbmggdmkga2hvbmcgY28ga2h1 IHh1IGx5IG51b2MgdGhhaSwgdHJvbmcga2hpIHF1eSBtbyBjYWMgYmVuaCB2aWVuIGRldSByYXQg bG9uLCBtb2kgDQpuYW0gdGllcCBkb24gaGFuZyBjaHVjIG5naGluIGx1b3Qgbmd1b2kgYmVuaCBu ZW4gaGFuZyBuZ2F5LCBuZW4gbW90IGx1b25nIG51b2MgdGhhaSANCmxvbiB0dSBjYWMgYmVuaCB2 aWVuIG5heSB2YW4gY2hheSB0aGFuZyByYSBtdW9uZyBtYW5nLCBjb25nIG5nYW0gY3VhIHRoYW5o IHBoby4NCg0KQ2h1YSBrZSwgaGF1IGhldCBjYWMgYmVuaCB2aWVuIG8gSGEgTm9pIGRldSBjbyBo ZSB0aG9uZyBjYXAgdGhvYXQgbnVvYyBnb20gY2FjIG11b25nIA0KcmFuaCwgbmh1bmcgZG8gYmkg c3V0IGx1biBuZW4gdGh1b25nIHh1eWVuIGdheSB1bmcgbmdhcCBjdWMgYm8sIGxhbSBvIG5oaWVt IG1vaSB0cnVvbmcuIA0KQ2FjIG9uZyB0aG9hdCBudW9jIGJhbiBjbyBkdW9uZyBraW5oIHNpZXUg bmhvICgyMDAtNTAwbW0pLCBob24gbnVhIGxhaSBiaSBodSANCmhvbmcgbmVuIHRob2F0IG51b2Mg cmF0IGtlbS4gDQogDQpWb2kgbHkgZG8ga2hvbmcgY28ga2luaCBwaGkgYm9pIHBodSB0aHVvYyB2 YW8gbmdhbiBzYWNoLCBuaGlldSBiZW5oIHZpZW4gdmFuIGNoaSBsbyBkYXUgDQp0dSBtdWEgc2Ft IHRyYW5nIHRoaWV0IGJpIHZhIG1vIHJvbmcgZGljaCB2dSBraGFtIGNodWEgYmVuaCBtYSAicXVl biIgZGkgdmllYyB4YXkgDQpkdW5nIGhlIHRob25nIHh1IGx5IG51b2MgdGhhaS4gTmhpZXUgYmVu aCB2aWVuIHZhIGhhbmcgY2h1YyBjbyBzbyB5IHRlIGtoYWMgdHJvbmcgdGhhbmggDQpwaG8gY3Vu ZyB0cm9uZyB0aW5oIHRyYW5nIGJhbyBkb25nLiANCiANCk1vdCBzbyBub2kgZHUgZGEgY28gaGUg dGhvbmcgeHUgbHkgbnVvYyB0aGFpIHRoaSBsYWkgbG8gbGEgdHJvbmcgdmllYyB2YW4gaGFuaCB2 YSBiYW8gdHJpIA0KZG9pIHZvaSBoZSB0aG9uZyBuYXkuIERlbiBraGkgaGUgdGhvbmcgYmkgcXVh IHRhaSwgeHVvbmcgY2FwIHRoaSBsYWkgcGhhaSBuZ3VuZyBob2F0IA0KZG9uZy4gTnVvYyB0aGFp IGxhaSBkbyB0aGFuZyB2YW8gb25nIGNvbmcgdGhvYXQgbnVvYyBjaHVuZyBjdWEgdGhhbmggcGhv Li4uDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9yYWNfdGhhaV9iZW5oX3ZpZW5fbGFvX3Z1b3Rf dHVvbmdfcmFfbmdvYWktNi0xNzE0My5odG1sIEhvYW5nIEtodWUgIDA4LzA1LzIwMDggLSAxMToz MSAtIHZuRXhwcmVzcy5uZXQNCg0KSGEgTm9pOiBSYWMgdGhhaSBCZW5oIHZpZW4gTGFvICd2dW90 IHR1b25nJyByYSBuZ29haQ0KDQpCYSBOZ3V5ZW4gVGhpIEhpZW4gKDU4IHR1b2ksIHRodSBtdWEg cGhlIGxpZXUpIGJpIGNvbmcgYW4gYmF0IHF1YSB0YW5nIGRhbmcgZ29tIDcgYmFvIA0KY2h1YSBi b20ga2ltIHRpZW0sIG5odWEgdHJ1eWVuIGRpY2guLi4gdnVhIGR1b2MgdnV0IHJhIG5nb2FpIHF1 YSBoYW5nIHJhbyBjdWEgQmVuaCANCnZpZW4gTGFvIHZhIGJlbmggcGhvaSBUcnVuZyB1b25nLg0K DQoqIE5odWEgbGFtIHR1IHJhYyB0aGFpIHkgdGUgY3VjIGJhbiANCipDaGUgb25nIHRpZW0sIGJp bmggdHJ1eWVuIGRpY2guLi4gdGhhbmggY29jIG5odWEgDQoNCihNb3QgdnUgdHVvbiByYWMgeSB0 ZSBiaSBiYXQgcXVhIHRhbmcuIEFuaDogUC5WLikgDQoNCk1vdCBuZ2F5IHNhdSBraGkgeGF5IHJh IHN1IHZpZWMgdHJlbiwgbmdheSA3LzUsIENvbmcgYW4gSGEgTm9pIGRhIHRhbSBnaXUgYmEgSGll biBkZSANCmRpZXUgdHJhIHN1IHZpZWMuIE5ndW9pIHBodSBudSBuYXkga2hhaSwgY2hpZXUgNi81 LCB0aGVvIGhlbiBiYSB0aHUgZ29tIHJhYyB0aGFpIHkgdGUgZG8gDQpuZ3VvaSBjdWEgYmVuaCB2 aWVuIHR1b24gcmEuIERheSBsYSBsYW4gdGh1IGJheSwgYmEgbXVhIHJhYyBraWV1IG5heSwgbW90 IGtnIGdpYSA0LjAwMCANCmRvbmcuIA0KDQpOZ2F5IHNhdSBraGkgc3UgdmllYyBiaSBwaGF0IGhp ZW4sIGNhbmggc2F0IG1vaSB0cnVvbmcgSGEgTm9pIGRhIGxhbSB2aWVjIHZvaSBCZW5oIHZpZW4u IA0KVGhlbyBkbywgY2hpZXUgaGFuZyBuZ2F5LCByYWMgdGhhaSByYW4gZHUgODAga2cgc2UgZHVv YyBkdWEgdmUgbG8gcmFjIGN1YSBiZW5oIHZpZW4gZGUgDQp4dSBseS4gTmV1IGhvbSBuYW8gc28g cmFjIHF1YSBpdCB0aGkgY2hvIGRlbiBob20gc2F1IHh1IGx5LiBUdSB0aGFuZyAzLCB2aWVjIHRo dSBnb20gdmEgDQp4dSBseSByYWMgdGhhaSBnaWFvIGNobyAyIG5oYW4gdmllbiBob3AgZG9uZyBj dWEgYmVuaCB2aWVuLiBHYW4gZGF5IG1vdCBuZ3VvaSBuZ2hpIG9tIA0KbmVuIGNoaSBjbyBMZSBY dWFuIEhpZW4gZGFtIHRyYWNoLg0KDQpUaGFuZyA4LTkvMjAwNywgbW90IHNvIGJlbmggdmllbiBs b24gbyBIYSBOb2kgYmkgcGhhdCBoaWVuIGNvIGhpZW4gdHVvbmcgbmhhbiB2aWVuIA0KdHVvbiBy YWMgdGhhaSB5IHRlIHJhIG5nb2FpIGRlIGJhbiB2b2kgbHkgZG8gImNhaSB0aGllbiB0aHUgbmhh cCIuIFNhbiBwaGFtIG5odWEgdHUgdm8gDQp0aHVvYywgY2hhaSB0cnV5ZW4gZGljaCwga2ltIHRp ZW0uLi4gc2F1IGRvIGR1b2MgdHUgdGh1b25nIHRhaSBjaGUgdGhhbmggZG8gZHVuZyBzaW5oIA0K aG9hdC4gQ2FjIGNodXllbiBnaWEgY2FuaCBiYW8sIG5ndW9pIGR1bmcgcGhhaSB0aHUgbmh1YSBu YXkgY28gdGhlIGdhcCBuZ3V5IGhpZW0sIGRvIA0KbmhpZXQgZG8gbmF1IG5odWEga2hvbmcgZHUg ZGlldCBtYW0gYmVuaC4gVHV5IG5oaWVuLCBuaHVuZyBuZ3VvaSBsaWVuIHF1YW4gY2hpIGJpIHh1 IA0KbHkgaGFuaCBjaGluaC4NCg0KTW90IGNhbiBibyBUb25nIGN1YyBDYW5oIHNhdCBkYW5oIGdp YTogIkx1YXQgaGluaCBzdSBjbyAxMCBkaWV1IHF1eSBkaW5oIHZlIGNhYyBsb2FpIHRvaSANCnBo YW0gdmUgbW9pIHRydW9uZywgbmh1bmcgY29uIGNodW5nIGNodW5nLiBMdWF0IGtob25nIHF1eSBk aW5oIGN1IHRoZSwgcm8gcmFuZywgaGFuaCANCnZpIHRoZSBuYW8gZHVvYyBjb2kgbGEgeGFtIGhh aSBuZ2hpZW0gdHJvbmcgbW9pIHRydW9uZywgbGFtIGxheSBsYW4gbWFtIGJlbmguLi4gbmVuIA0K a2hvIGx1b25nIGhvYSBoYW5oIHZpIGRlIHh1IGx5IGhpbmggc3UuIA0KDQpodHRwOi8vdmlldG5h bW5ldC52bi94YWhvaS9kb2lzb25nLzIwMDQvMDYvMTU4NDM0LyBIb2FuZyBIdXkgIDA4OjM0LCAw Ny8wNi8yMDA0IChHTVQrNykNCg0KSGEgTm9pOiBPIGF0IGJhbiB0cnUgc28gY3VhIE5oYSBudW9j IGNobyB0dSBuaGFuDQoNCiJNb3QgbG9haSB2aSBwaGFtIG1vaSIgdGhlbyBjYWNoIGdvaSBjdWEg bmdhbmggY29uZyBhbi4gRG8gbGEgaGllbiB0dW9uZyBoYW5nIGxvYXQgY28gDQpxdWFuLCBob3Ag dGFjIHhhLCBkb2FuaCBuZ2hpZXAgdHJlbiBkaWEgYmFuIEhhIE5vaSBhbyBhdCAiYmF5IiBkdSAi dHJvIiBkZSBiYW4gZHV0IHRydSBzbywgDQpuaGEgeHVvbmcsIGRhdCBkYWkgZGFuZyB0aHVlIGN1 YSBOaGEgbnVvYyBjaG8gdHUgbmhhbiwgbGF5IGhhbmcgdHJhbSB0aSBkb25nIGNoaWEgDQpuaGF1 LiBWYSByb2ksIGdpYWkgdGFuISANCg0KKEFuaDogVHJ1IHNvIE5oYSBudW9jIG5heSBkYSBkdW9j IHNvIGh1dSBib2kgdHUgbmhhbi4gQW5oOiBILlQuIEdpYW5nLikNCg0KQW4gdHVvbmcga2hvIHBo YWkgbmhhdCB0cm9uZyBuaHVuZyBhaSBkYSB0dW5nIHNvbmcgcXVhIHRob2kgYmFvIGNhcCB0YWkg SGEgTm9pLCBsYSANCm5odW5nIGN1YSBoYW5nIHRoaXQsIGN1YSBoYW5nIGdhbyBtYSBwaG8gbmFv IGN1bmcgY28gdmFpIGNhaSwgcm9pIGNhYyBjdWEgaGFuZyBtYXUgDQpkaWNoLCBiYWNoIGhvYSB2 b2kgbmh1bmcgdHUga2luaCBvIG1vLCByYW4gbnV0IGJhbiBtYXkgYmFuaCB4YSBwaG9uZyBjdW5n IGRvLCBkZW4gc2ksIA0KdmFpIHRoZXAgZ2lheSA1IGhhbyAyLi4uICJTYW5oIGRpZXUiIG5oYXQg dGhvaSBheSBwaGFpIGtlIGRlbiBtb3Qgc28gY3VhIGhhbmcgY2F0IHRvYywgDQpjaHVwIGFuaCBj dWEgaG9wIHRhYyB4YSwgcm9pIGNhYyB4dW9uZyBtYXkgbWFjLCB0aGV1IGRhbiBsdWMgbmFvIGN1 bmcgbmhvbiBuaGlwLiBDaHUgDQp5ZXUgdGFwIHRydW5nIHRhaSBraHUgdnVjIG5vaSB0aGFuaCBj dSwgY2FjIGN1YSBoYW5nLCB0cnUgc28gY28gcXVhbiwgaG9wIHRhYyB4YSBuYXkgYmFvIA0KZ2lv IGN1bmcgZHVvYyB1dSBhaSBvIHZpIHRyaSB0cnVuZyB0YW0gbmhhdCwgbWF0IHRpZW4gdGhvYW5n IHJvbmcsIHRvbSBsYWkgbGEgImRpYSBkaWVtIA0KZGVwIiwgYmUgdGhlIHZhIGhvYW5oIHRyYW5n ISBUYXQgY2EgKHRpbmggc28gc28ga2hvYW5nIDcwMCBkaWEgZGllbSkgZGV1IGR1b2MgY2FjIGhv cCANCnRhYyB4YSwgdG8gY2h1YyBraW5oIHRlLCBjbyBxdWFuIGhhbmggY2hpbmggc3UgbmdoaWVw IHRob2kgYXkgdGh1ZSBjdWEgTmhhIG51b2MuDQoNClRhIHZlIHRhIGJhbiBuaGEgdGEsIGR1IHRy b25nIGR1IGR1YyBiYW4gbmhhIHZhbiBob24/Pz8NCg0KVGhvaSAibW8gY3VhIiwgbmdheSBjYW5n IHRodWEgZGFuIG5odW5nIG5ndW9pIGFuICJwaG8gbWF1IGRpY2giLiBHYWNoIHZhIHJvIHJhIHJl IA0KY3VuZyB0cm8gdmUgZHVuZyBjaHVjIG5hbmcgY3VhIGNodW5nIGNodSBraG9uZyBjb24gZHVu ZyB2YW8gdmllYyB4ZXAgaGFuZyB0cnVvYyANCm5odW5nICJoYW5nIHRoaXQgcXVvYyBkb2FuaCIg bnVhLiBRdWFuIGJhciwgbmhhIGhhbmcsIHRpZW0gZ29pIGRhdSBjYXQgdG9jLCBzaG9wIHF1YW4g DQphbywgbWluaWxhYiByb2kgc3R1ZGlvIGFuaC4uLiBtbyByYSBuaGFuIG5oYW4ga2hpZW4gbmd1 b2kgdGEgYnVvbiBjdW9pIGtoaSBuaG8gZGVuIGJvIA0KbWF0IGxhbmggbHVuZyBjdWEgbWF5ICJ4 YSB2aWVuIEhvcCB0YWMgeGEgdW9uIHRvYyIgdHJ1b2Mga2lhLCBoYXkgdGllbmcgcXVhdCBraGFj aCBoYW5nIA0KY2hhbyBjaGF0IGN1YSBtYXkgYW5oICJ4YSB2aWVuIEhvcCB0YWMgeGEgY2h1cCBh bmgiISEhIERvIGtlbSBuYW5nIGRvbmcsIGtob25nIGtpcCANCmNodXllbiBtaW5oLCBoYXUgaGV0 IGhvYXQgZG9uZyBjdWEgY2FjIHRvIGNodWMga2luaCB0ZSB0aG9pIGJhbyBjYXAsIGNhYyBtbyBo aW5oIGhvcCANCnRhYyB4YSBkZXUgZGkgdmFvIG5nbyB0b2kuIENhbiBibywgeGEgdmllbiBraG9u ZyBjbyBkdSBjb25nIGFuIHZpZWMgbGFtLCB0aHUgbmhhcCBraG9uZyANCmRhbSBiYW8gY3VvYyBz b25nLiBWYSB0aGUgbGEsIGJhaSB0b2FuIG1vaSBiYXQgZGF1Li4uDQoNClRoZW8gc28gbGlldSBj dWEgU28gVGFpIG5ndXllbiwgTW9pIHRydW9uZyB2YSBOaGEgZGF0IEhhIE5vaSwgdHJlbiB0b2Fu IGRpYSBiYW4gdGh1IGRvIA0KY28gMTMzIGhvcCB0YWMgeGEgZGFuZyB0aHVlIDE4NyBkaWEgZGll bSBraW5oIGRvYW5oIChjaHVhIGtlIGRhdCkgdGh1b2Mgc28gaHV1IE5oYSANCm51b2MgdmEgMzMz IHRvIGNodWMsIGRvYW5oIG5naGllcCBraGFjIGRhbmcgdGh1ZSA1NTAgZGlhIGRpZW0gY3VuZyB0 aHVvYyBzbyBodXUgTmhhIA0KbnVvYyBkZSBsYW0gbmhhIHh1b25nLCBjdWEgaGFuZywgdHJ1IHNv LiBUb25nIGNvbmcgY2FjIGRpZW4gdGljaCBuaGEgTmhhIG51b2MgZGFuZyANCmNobyBjYWMgdGhh bmggcGhhbiBkbyB0aHVlIHN1b3QgInR1IHh1YSBkZW4gbmF5IiBsYSBnYW4gNjAwLjAwMG0yIHZh IHRvbmcgZGllbiB0aWNoIA0Ka2h1b24gdmllbiBkYXQgbGEgZ2FuIDcwMC4wMDBtMi4gDQoNCkRh bmcgYmFvIGRvbmcsIG5nYW5oIGNvbmcgYW4gZ2FuIGRheSBkYSBwaGFpIGJhbyBjYW8ga2hhbiBj YXAgVGh1b25nIHRydWMgVGhhbmggdXkgDQpIYSBOb2kgdmUgbW90IHRodWMgdHJhbmcga2hvbmcg bGF5IGdpIGxhbSB0b3QgZGVwOiAiTW90IHBoYW4gdGkgbGUgdHVvbmcgZG9pIGxvbiBjYWMgZG9p IA0KdHVvbmcgdGh1ZSBuaGEsIGRhdCB0aHVvYyBzbyBodXUgTmhhIG51b2MgY28gaGllbiB0dW9u ZyBtdWEgYmFuLCBjaHV5ZW4gbmh1b25nLCB0aGF5IA0KZG9pIGNvbmcgbmFuZyBzdSBkdW5nIG5o YSwgZGF0IHRyYWkgcGhhcCBsdWF0LiAxLzIgc28gaG9wIHRhYyB4YSBub2kgdHJlbiBkYSBjaHV5 ZW4gDQpuaHVvbmcgbmhhIHh1b25nLCB0cnUgc28sIGN1YSBoYW5nIHRodW9jIHNvIGh1dSBOaGEg bnVvYyBkYW5nIHRodWUgY2hvIHR1IG5oYW4sIGxheSANCmhhbmcgdHJhbSB0aSBkb25nIGNoaWEg bmhhdSIuDQoNCkJhbmcgZHUgbW9pIGtpZXU6IHZvIHZpbmggbGllbiBkb2FuaCwgbGllbiBrZXQs IGNodXllbiBnaWFvIHRodW9uZyBoaWV1LCBjaGlhIHRhY2ggaG9wIA0KdGFjIHhhLi4uIHR1IG5h bSAyMDAwIGRlbiBuYXksIG5oaWV1IGNvIHF1YW4sIGhvcCB0YWMgeGEgZGEgYmFuIHRoYW5oIGNv bmcgdHJ1IHNvLCBuaGEgDQp4dW9uZyBkYW5nIHRodWUgY3VhIE5oYSBudW9jIGNobyB0dSBuaGFu IHF1YW4gbHksIHN1IGR1bmcuIERhbmcga2UgY286IENvbmcgdHkgbHVvbmcgDQp0aHVjIEhhIE5v aSBiYW4gbmhhIHNvIDIgVGhvIE5odW9tIHZhIDI4IEhhbmcgQ2FuOyBDb25nIHR5IGFuIHVvbmcg ZHUgbGljaCBkaWNoIHZ1IA0KSG9hbiBLaWVtIGJhbiBuaGEgNzMgVGh1b2MgQmFjOyBDb25nIHR5 IHRodW9uZyBtYWkgZGljaCB2dSBUcmFuZyBUaGkgYmFuIG5oYSA4RCANCkRpZW4gQmllbiBQaHU7 IENvbmcgdHkgcGhhdCBoYW5oIHNhY2ggSGEgTm9pIGJhbiBuaGEgNTMgRGluaCBUaWVuIEhvYW5n Li4uIHZhIHZvIHNvIA0KY3VhIGhhbmcgdGh1b2MgbWFuZyBsdW9pIHRodW9uZyBuZ2hpZXAgcXVv YyBkb2FuaCB0cnVvYyBkYXkgIm5heSBjb24gZGF1PyIuIFRoYW0gDQpjaGksIG5oaWV1IHRydSBz byBob3AgdGFjIHhhIGNvbiBkdW9jIG11YSBkaSBiYW4gbGFpIG5oaWV1IGxhbi4gU2F1IGtoaSBj aHV5ZW4gYmFuIGNhYyANCmRpYSBkaWVtIG5heSBjaG8gdHUgbmhhbiwgbW90IHNvIGxvbiBob3Ag dGFjIHhhIGRhIHR1IHRpZXUgZ2lhaSB0aGUuIFRvYW4gYm8gc28gdGllbiB0aHUgDQpkdW9jIG5h bSBuZ29haSBraWVtIHNvYXQgY3VhIE5oYSBudW9jLiBUaWVwIHF1YW4gY2h1bmcgbGEgbmh1bmcg dHUgbmhhbiBsYW0gY3VhIA0KbmhpZXUgdGllbiB2YSBuaGFuaCBuaGF5IQ0KDQoiVnVpIHRpbmgi IG5oYXQgY28gVUJORCBwaHVvbmcgSGFuZyBCb25nIGN1bmcgYmFuIGx1b24gY2EgdHJ1IHNvIDgz IEhhbmcgQm9uZyANCihxdWFuIEhvYW4gS2llbSkgY3VhIG1pbmghDQoNCk5oaWV1ICJkYWkgZ2lh IiBIYSBOb2kgYm9uZyB0aGFuaCBvbmcsIGJhIGNodSBuaGllbSBIVFggbW9pIQ0KDQooQW5oOiBE YXUgdGljaCBjdWEgbmh1bmcgSFRYIGN1IGRhbmcgYmllbiBtYXQuIEFuaDogSC5ULiBHaWFuZy4p DQoNCk5naGkgZGVuICJBbmggY2h1IG5oaWVtIiB4dWEsIG5ndW9pIHRhIG11b25nIHR1b25nIG5n YXkgaGluaCBhbmggIkFuaCBnaW8gdGF5IHZlIA0KZ2l1YSBkb25nIHhhbmgvVmUgY2EgbmdheSBt YWkgdGhhbmggYnVjIHRyYW5oIi4gQ29uIG5nYXkgbmF5LCBtdW9uIG11YSBsYWkgbW90IHNvIA0K Y3VhIGhhbmcgY28gbWF0IHRpZW4gZGVwIHRhaSBjYWMgcGhvIHRydW5nIHRhbSwgZ2lhIHJlLCBr aGEgbmFuZyBzaW5oIGxvaSBsYSBjaGFjIGNoYW4sIA0Kbmh1bmcgZGFpIGdpYSBsYW0gdGllbiBu aGlldSBjdWEgdGFpIEhhIE5vaSBkYSBob2FuIHRhdCB0aHUgdHVjIHZvaSBjYWMgaG9wIHRhYyB4 YSBkZSB0cm8gDQp0aGFuaCAiQW5oIGNodSBuaGllbSIuIENhYyAiYW5oIGNodSBuaGllbSB0aG9p IG5heSIsIHZvaSBoYW5nIGNodW9pIGN1YSBoYW5nIGRlcCBuaHUgDQptb25nIHRyb25nIHRheSwg a2hvbmcgY2FuIHZlIHRoaSBuZ2F5IG1haSBjdW5nICJ0aGFuaCBidWMgdHJhbmgiIQ0KDQpDdSB0 aGU6IEhvcCB0YWMgeGEgbWF5IERhbiBDaHUgZG8gb25nIExlIFF1YW5nIFZpbmggbGFtIGNodSBu aGllbSBkdW9jIENvbmcgdHkgDQpLaW5oIGRvYW5oIG5oYSBzbyAyICh0aHVvYyBTbyBEaWEgY2hp bmggLSBOaGEgZGF0IEhhIE5vaSkgY2hvIHRodWUgNSBkaWEgZGllbSBxdWEgZG9pIA0KImxvbmcg bGFuaCIsIHRvYW4gbyBxdWFuIEhvYW4gS2llbS4gVnVhICJuaGFuaCB0cmkiLCB2dWEgImR1bmcg Y2FtIiwgb25nIFZpbmggZGEgaHkgDQpzaW5oIGNodWMgQ2h1IG5oaWVtIGN1YSBtaW5oLCBkb2kg bGFpIDgsMSB0aSBkb25nIHR1IGNoaWEgY2hvIG1pbmggdmEga2hvYW5nIG5hbSBjaHVjIA0KeGEg dmllbi4gRGUgImN1dSIgZG9pIHNvbmcgeGEgdmllbiwgQmFuIGNodSBuaGllbSBIb3AgdGFjIHhh IG1heSBEYW4gY2h1IGRhIHBoYWkgDQpuZ2FtIG5ndWk6DQoNCi0gQmFuIG5oYSBtYXQgcGhvIHNv IDIyIEhhbmcgQm9uZyAoZGllbiB0aWNoIDI1bTIpIGNobyBiYSBOZ3V5ZW4gVGh1IE5nYSwgdGh1 IDU1MCANCnRyaWV1IGRvbmcuIEJhIE5nYSBsYW0gdGh1IHR1YyB0YWNoIEhvcCB0YWMgeGEgbWF5 IERhbiBDaHUgdGhhbmggSG9wIHRhYyB4YSBLaGllbSANClRoYW5oLCBjYXQgbmhhYyBjb24gZ2Fp IGJhIGxhIFRyYW4gVGh1IFRodXkgbGFtIGNodSBuaGllbS4NCg0KLSBCYW4gbmhhIG1hdCBwaG8g c28gMjIgTHVvbmcgVmFuIENhbiAoZGllbiB0aWNoIDIzLDdtMikgY2hvIG9uZyBUYSBRdWFuZyBW YW4sIHRodSANCjYwMCB0cmlldSBkb25nLiBPbmcgVmFuIHBoYW4ga2hvaSB0YWNoIHJhIHRoYW5o IEhvcCB0YWMgeGEgVmFuIE15IGRvIGNoaW5oIG9uZyBsYW0gDQpjaHUgbmhpZW0uDQoNCi0gQmFu IG5oYSBtYXQgcGhvIHNvIDk0IENhdSBHbyAoZGllbiB0aWNoIDI1bTIpIGNobyBvbmcgTGUgVmFu IEhhbywgdGh1IDU1MCB0cmlldSANCmRvbmcuIE9uZyBIYW8gdGFjaCByYSB0aGFuaCBIb3AgdGFj IHhhIE15IFNvbiBtYSBjaHUgbmhpZW0gY2hpbmggbGEgb25nLg0KDQotIEJhbiBuaGEgbWF0IHBo byBzbyA3NCBIYW5nIEdhaSAoZGllbiB0aWNoIDM3bTIpIHZhIG5oYSBtYXQgcGhvIDU3QiBEaW5o IFRpZW4gDQpIb2FuZyAoZGllbiB0aWNoIDk3LDY0bTIpIGNobyBvbmcgTmd1eWVuIER1YyBUaW4s IHRodSA2LDQgdGkgZG9uZy4gT25nIFRpbiB2YW4gYW4gDQpjYW4gZ2l1IG5ndXllbiB0ZW46IEhv cCB0YWMgeGEgRGFuIENodS4gU29uZywgQmFuIGNodSBuaGllbSB2YSB4YSB2aWVuIEhvcCB0YWMg eGEgDQpEYW4gQ2h1IHRydW9jIGRheSBkYSBkdW9jIHRoYXkgYmFuZyBCYW4gY2h1IG5oaWVtIHZh IGNhYyB4YSB2aWVuIGhvYW4gdG9hbiBtb2ksIGRvIA0KY2hpbmggb25nIFRpbiBsYW0gY2h1IG5o aWVtLg0KDQpDb25nIGNhIDUgZG90IGJhbiBuaGEgbGFpLCBtb2kgeGEgdmllbiBjdSBjdWEgSG9w IHRhYyB4YSBtYXkgRGFuIENodSBkdW9jIGNoaWEgDQpraG9hbmcgaG9uIDEwMCB0cmlldSBkb25n LiBLaGkgbmhhbiB0aWVuLCBjYWMgeGEgdmllbiBwaGFpIHZpZXQgY2FtIGRvYW4gdHUgYm8gbW9p IA0KcXV5ZW4gbG9pIGNvIGxpZW4gcXVhbiBkZW4gaG9wIHRhYyB4YS4gTW90IHNvIHhhIHZpZW4g ZGEgbmdoaSBodXUgY3VuZyBkdW9jIGNoaWEgdHUgMSANCmRlbiA1IHRyaWV1IGRvbmcuIFRhdCBj YSBnaW8gZGF5IGRldSBkYSAiYW5oIGRpIGR1b25nIGFuaCwgdG9pIGR1b25nIHRvaSIgbmVuIHZp ZWMgdGh1IGhvaSANCmdhbiBuaHUgbGEga2hvbmcgdHVvbmchIENhYyAiYW5oIGNodSBuaGllbSIg bW9pIHRoaSB2YW4gdW5nIGR1bmcgIm5nb2kgbWF0IGFuIGJhdCANCnZhbmciLCBraG9uZyB0dSBr aW5oIGRvYW5oIHRoaSBjaG8gdGh1ZSwgbmh1bmcgY3VhIGhhbmcgbyBtYXQgdGllbiBwaG8gY2hp bmggbmh1IEhhbmcgDQpCb25nLCBIYW5nIEdhaSBuZ290IG5naGV0IGhhaSBjaHVjIHRyaWV1IGRv bmcvdGhhbmcuLi4NCg0KVHJhbyBkb2kgdm9pIFZpZXROYW1OZXQsIG1vdCBjYW4gYm8gQ3VjIFRo dWUgSGEgTm9pIGNobyBiaWV0LCBraG8gY28gdGhlIHZhbiBkdW5nIA0KY2hlIHRhaSBuYW8gZGUg dGh1IHZpIGRheSBjbyB0aGUgY29pIG5odSB0aG9hIHRodWFuIGRhbiBzdSBob2FjIHRpZW4gaG9h IGhvbmcgbmh1IGRvaSB2b2kgDQpkaWVuIG5oYSBkYW5nIHRodWUgdGhlbyBOZ2hpIGRpbmggNjEu IE1vdCBkYWkgZGllbiBQaG9uZyBLZSBob2FjaCAtIEtpbmggdGUgcXVhbiBIb2FuIA0KS2llbSB0 aGkgY2hvIGhheSwgZGEgcmEgdGhvbmcgYmFvIHRodSBob2kgc29uZyBraG9uZyBoZSBjbyBrZXQg cXVhIQ0KDQpDaGluaCB0dSBrZSBobyBkbywgaGllbiB0dW9uZyBtdWEsIGJhbiwgY2h1eWVuIG5o dW9uZyB0cmFpIHBoYXAgbHVhdCB0cnUgc28sIGRhdCBkYWksIG5oYSANCnh1b25nIHRodW9jIHNv IGh1dSBOaGEgbnVvYyBraG9uZyBuaHVuZyBjaHVhIGR1b2MgdHJpZXQgZGUgeHUgbHkgbWEgZGFu ZyBsYW4gcmEgZGllbiANCnJvbmcuIE1vdCB0aGkgdHJ1b25nIG5nYW0gdmUga2luaCBkb2FuaCBi YXQgZG9uZyBzYW4ga2hvbmcgaG9wIHBoYXAsIGNodWEgbmhpZXUgeWV1IA0KdG8gdGhhbSBuaHVu ZyB2YSB0cnVjIGxvaSBkYW5nICJydW5nIHJ1bmcgY2h1eWVuIGRvbmciLiBEZSBuZ2FuIGNoYW4s IHRoZW8gbmhhbiBkaW5oIA0KY3VhIG5nYW5oIGNvbmcgYW46IEhlIHRob25nIHZhbiBiYW4gcGhh cCBseSBsYW0gY28gc28gY2hvIHZpZWMgZGFuaCBnaWEgdmkgcGhhbSB2YSB4dSANCmx5IC0gdGhp IFRoaWV1OyBTdSBwaGF0IGhpZW4gdmEgY2hpIGRhbyBraXAgdGhvaSBjdWEgY2hpbmggcXV5ZW4g Y2FjIGNhcCBjdW5nIG5odSBjYWMgY28gDQpxdWFuIGNodWMgbmFuZyAtIHRoaSBZZXU7IFZpZWMg dG8gY2h1YyBraWVtIHRyYSB4dSBseSwga2llbiBuZ2hpIGNhYyBnaWFpIHBoYXAgcGh1IGhvcCAt IA0KdGhpIG1hbmcgdGluaCBoaW5oIHRodWMuIA0KDQpWaSB0aGUsIDEuMDAxIHRodSBkb2FuIGxh dCBsZW8gZGUgInRoYXkgbWF1IiBuaGEsIGRhdCBjdWEgTmhhIG51b2MgdmFuIGRhbmcgdGllcCB0 dWMuLi4gDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL0xhbmctcGhpLWRhdC1jb25nLXRy ZW4tdHV5ZW4tcGhvLWRhdC1uaGF0LWhhbmgtdGluaC8xNDQvNTMyNTU4Mi5lcGkgVHVlIEtoYW5o ICgxdGhhbmcgdHJ1b2MpIA0KDQpIYSBOb2k6IExhbmcgcGhpIGRhdCBjb25nIHRyZW4gdHV5ZW4g cGhvICJkYXQgbmhhdCBoYW5oIHRpbmgiIA0KDQooVm5NZWRpYSkgLSBOZ2F5IG1haSAoNy8xMiks IHRoYW5oIHBobyBIYSBOb2kgc2Uga2hhaSBtYWMga3kgaG9wIHRodSAyMiBIb2kgZG9uZyANCm5o YW4gZGFuIChIRE5EKSB0aGFuaCBwaG8uIEd1aSBkZW4ga3kgaG9wIGxhbiBuYXksIG5oaWV1IHkg a2llbiBjdSB0cmkgYnVjIHh1YyB2ZSANCnRpbmggdHJhbmcgbGFuZyBwaGkgZGF0IGNvbmcsIHRy b25nIGRvIGNvIGNhIG5odW5nIGtodSAiZGF0IHZhbmciIHRyZW4gY29uIHBobyB0dW5nIA0KZHVv YyBjaG8gbGEgImRhdCBuaGF0IGhhbmggdGluaCIuDQoNCkxhbmcgcGhpLCBzdSBkdW5nIHNhaSBt dWMgZGljaCANCg0KVHJvbmcgY2FjIHkga2llbiBtYSBjdSB0cmkgSGEgTm9pIHF1YW4gdGFtIGd1 aSBkZW4ga3kgaG9wIGxhbiBuYXksIHZpZWMgc3UgZHVuZyBkYXQgDQpjb25nIGtob25nIGhpZXUg cXVhLCBnYXkgbGFuZyBwaGkgY2hvIG5oYSBudW9jIGR1b2MgY3UgdHJpIHF1YW4gdGFtIGRhYyBi aWV0Lg0KDQpEb24gY3Ugbmh1IHRydW9uZyBob3AgWGkgbmdoaWVwIGdpb25nIGNheSB0cm9uZyBZ ZW4gS2hlIChkYXQgdGFpIHhhIFllbiBUaHVvbmcsIA0KaHV5ZW4gR2lhIExhbSksIHhheSBkdW5n IDI5IGtpIG90IGRlIGdpb2kgdGhpZXUgc2FuIHBoYW0sIG5odW5nIGRhIGNobyB0aHVlIHZhIHN1 IA0KZHVuZyBraG9uZyBkdW5nIG11YyBkaWNoLiBIYXkgdHJ1b25nIGhvcCBDb25nIHR5IENvIHBo YW4gZ29tIHN1IEJhdCBUcmFuZyB0YWkgeGEgDQpCYXQgVHJhbmcsIGN1IHRyaSBjaG8gcmFuZyBz dSBkdW5nIGtob25nIGhpZXUgcXVhLCBnYXkgbGFuZyBwaGkgdmUgZGF0IGRhaSBuZW4gZGUgbmdo aSANClVCTkQgVGhhbmggcGhvIGtpZW0gdHJhLCB0aHVob2kuIA0KDQpDdW5nIHRyZW4gZGlhIGJh biBodXllbiBHaWEgTGFtLCBoaWVuIG5heSBDb25nIHR5IHZhdCB0dSBub25nIG5naGllcCBHaWEg TGFtLCB0YWkgeGEgDQpEdW9uZyBYYSwgbWFjIGR1IGtob25nIGhvYXQgZG9uZyBkYSBsYXUgbmh1 bmcgZGF0IHRpZXAgdHVjIGRlIGhvYW5nIGhvYSwgZ2F5IGxhbmcgDQpwaGkuIEN1IHRyaSBkZSBu Z2hpIFVCTkQgVGhhbmggcGhvIHhlbSB4ZXQsIHRodSBob2kgZGF0IGdpYW8gVUJORCB4YSBxdWFu IGx5LCBzdSANCmR1bmcgZHVuZyBtdWMgZGljaC4gDQoNCkhpZW4gbmF5LCB0cm9uZyBraGkgbmd1 b2kgZGFuIGRhbmcgZGFjIGJpZXQgdGhpZXUgZGF0IGNhbmggdGFjLCBzYW4geHVhdCB0aGkgZGF0 IGJhaSB0aHVvYyANCnhhIFRodW9uZyBDYXQgaGllbiBkYW5nIGR1b2MgeGEga3kgaG9wIGRvbmcg Y2hvIGNhYyBkb2FuaCBuZ2hpZXAgdGh1ZS4gQ3UgdHJpIGRlIG5naGkgDQpVQk5EIFRoYW5oIHBo byBjaGkgZGFvIGtpZW0gdHJhLCBnaWFpIHF1eWV0IGdpYW8gbGFpIGRhdCBjaG8gbmhhbiBkYW4g c2FuIHh1YXQuIA0KDQpDdSB0cmkgY3VuZyBidWMgeHVjIHZlIHRydW9uZyBob3AgOCBnaWFuIG5o YSBraG8gY3VhIENvbmcgdHkgbHVvbmcgdGh1YyBEb25nIERhIHRyZW4gDQpkaWEgYmFuIHBodW9u ZyBQaHVvbmcgTGlldCBoYXkgbmhhIDU5IHBobyBLaHVvbmcgVHJ1bmcgY3VhIGNvIHNvIHNhbiB4 dWF0IHRoYW0gbGVuLiANCkNobyByYW5nLCBoaWVuIHRhaSBjYWMgY28gc28gbmF5IGRhbmcgc3Ug ZHVuZyBzYWkgbXVjIGRpY2gsIGN1IHRyaSBkZSBuZ2hpIFRoYW5oIHBobyANCmdpYW8gY2hvIHF1 YW4gcXVhbiBseSBkZSB4YXkgZHVuZyBuaGEgdmFuIGhvYSBjaG8gY3VtIGRhbiBjdS4gDQoNCkRh YyBiaWV0LCBoaWVuIGNvIHZpZWMgaGFuZyBuZ2FuIG0yIGRhdCBRdW9jIHBob25nIGN1YSBRdWFu IGtodSBUaHUgZG8gY2hvIHR1IG5oYW4gDQp0aHVlIGJhbiBiaWEgKHF1YW4gYmlhIEhpZXUgYmVv KSB0YWkgcGhvIFhhIERhbi4gRGF5IGxhIGNvbiBwaG8gdHVuZyBkdW9jIGNobyBsYSBjbyBnaWEg DQoiZGF0IG5oYXQgaGFuaCB0aW5oIiB2YSBjdSB0cmkgZGEga2llbiBuZ2hpIG5oaWV1IGxhbiBu aHVuZyBoaWVuIGNodWEgZHVvYyBnaWFpIHF1eWV0LiANCg0KKEFuaDogQ3UgdHJpIGJ1YyB4dWMg dmkgZGF0IHZhbmcgdHJlbiBkdW9uZyBYYSBEYW4gY3VhIEJvIFF1b2MgUGhvbmcgZHVvYyBjaG8g dGh1ZSANCmxhbSBxdWFuIGJpYSAtIHRyb25nIGFuaDogUGhpYSB0cnVvYyBxdWFuIGJpYSBIaWV1 IGJlbykgDQoNClRpZXAgdHVjIGJ1YyB4dWMgdmUgbW9pIHRydW9uZyANCg0KTmdvYWkgZGF0IGRh aSB0aGkgbW9pIHRydW9uZyB0aWVwIHR1YyBsYSB2YW4gZGUgbm9uZyBkdW9jIGN1IHRyaSBvIGhh dSBoZXQgY2FjIHF1YW4sIA0KaHV5ZW4gcXVhbiB0YW0sIGRlIG5naGkgVGhhbmggcGhvIGdpYWkg cXV5ZXQuIA0KDQpUaGVvIHkga2llbiBuZ3VvaSBkYW4sIHRhaSBraHUgdnVjIHNvbmcgQ2F1IEJh eSAoVGhhY2ggQmFuIC0gUS4gTG9uZyBCaWVuKSBoaWVuIGJpIG8gDQpuaGllbSByYXQgbmFuZyBu ZSwgYW5oIGh1b25nIHJhdCBsb24gZGVuIGRvaSBzb25nLCBzaW5oIGhvYXQgY3VhIG5oYW4gZGFu LiBIaWVuIG5heSwgDQptYWMgZHUga2h1IHZ1YyBuYXkgZGFuZyBkdW9jIG5hbyB2ZXQgKGR1IGFu IGR1b2MgdGh1YyBoaWVuIGJvaSBzbyBOb25nIG5naGllcCB2YSANCmNvbmcgdHkgS2hhaSB0aGFj IGNvbmcgdHJpbmggdGh1eSBsb2kgRG9uZyBBbmggLSBHaWEgTGFtKSwgdHV5IG5oaWVuIHRpZW4g ZG8gcmF0IGNoYW0uIA0KQ3UgdHJpIGRlIG5naGkgVUJORCBUaGFuaCBwaG8gY2hpIGRhbyBkYXkg bmhhbmggdGllbiBkby4gDQoNCk5ndW9pIGRhbiBraHUgdnVjIG5heSBjdW5nIGRlIG5naGkgVUJO RCBUaGFuaCBwaG8gZ2lhaSBxdXlldCBkdXQgZGllbSB0aW5oIHRyYW5nIA0KY2FjIGRvYW5oIG5n aGllcCwgZG9uIHZpIHRyZW4gZGlhIGJhbiBUaGFuaCBwaG8geGEgbnVvYyB0aGFpIHJhIHNvbmcg Q2F1IEJheSBnYXkgbyANCm5oaWVtIG1vaSB0cnVvbmcsIGFuaCBodW9uZyB0b2kgc2luaCBob2F0 IG5oYW4gZGFuIGtodSB2dWMuDQoNCkR1b25nIFh1YW4gRGluaCB4dW9uZyBjYXAgbmdoaWVtIHRy b25nLCBnYXkga2hvIGtoYW4gY2hvIHNpbmggaG9hdCBjdWEgbmd1b2kgZGFuLiANCk1hYyBkdSBU UCBkYSBjbyBrZSBob2FjaCBkdXkgdHUsIGNhaSB0YW8sIG1vIHJvbmcgdHUgY3VvaSB0aGFuZyA2 LzIwMTAgbmh1bmcgZGVuIG5heSANCmNodWEgdHJpZW4ga2hhaSB0aHVjIGhpZW4gLSBhbmg6IEdE JlhIDQoNCk5odSBiYW8gY2hpIGRhIGR1YSB0aW4sIGhpZW4gbmF5IHRpbmggaGluaCBvIG5oaWVt IG1vaSB0cnVvbmcgdHUgbnVvYyB0aGFpIGN1YSBjYWMgbGFuZyANCm5naGUgbm9uZyBzYW4gbmh1 IE1pbmggS2hhaSwgRHVvbmcgTGlldSwgQ2F0IFF1ZSByYXQgbmdoaWVtIHRyb25nLCBhbmggaHVv bmcgZGVuIA0Kc3VjIGtob2UgY3VhIG5oYW4gZGFuIGtodSB2dWMga2VuaCBUMiBjaGF5IHF1YS4g Q3UgdHJpIGRlIG5naGkgVGhhbmggcGhvIGNvIGNoaSBkYW8gDQp2ZSBoZSB0aG9uZyB4dSBseSBu dW9jIHRoYWkgY3VhIGNhYyBjdW0sIGRpZW0gQ04gdmEgaGUgdGhvbmcgdGlldSB0aG9hdCBudW9j IGN1YSBjYWMgDQpkdSBhbiBkbyB0aGk7IGRheSBuaGFuaCB0aWVuIGRvIHhheSBkdW5nIG5oYSBt YXkgeHUgbHkgbnVvYyB0aGFpIGN1YSBjYWMgbGFuZyBuZ2hlIGNoZSANCmJpZW4gbm9uZyBzYW4u IA0KDQpOaGlldSB5IGtpZW4gY3VuZyBjaG8gYmlldCwgZHVvbmcgWHVhbiBEaW5oIChodXllbiBU dSBMaWVtKSBoaWVuIHh1b25nIGNhcCBuZ2hpZW0gDQp0cm9uZywgZ2F5IG1hdCB2ZSBzaW5oIG1v aSB0cnVvbmcsIGFjaCB0YWMgZ2lhbyB0aG9uZy4gVGhhbmggcGhvIGRhIGNvIGtlIGhvYWNoIGR1 eSB0dSwgDQpjYWkgdGFvLCBtbyByb25nIHR1IGN1b2kgdGhhbmcgNi8yMDEwIG5odW5nIGRlbiBu YXkgY2h1YSB0cmllbiBraGFpIHRodWMgaGllbiwgZ2F5IGtobyANCmtoYW4gY2hvIHNpbmggaG9h dCBjdWEgbmhhbiBkYW4uIA0KDQpUYWkgY29uZyB2aWVuIGhvIEJhIE1hdSwgaGllbiBuYXkgcGhp YSBnaWFwIGR1b25nIExlIER1YW4gZHVvYyBzdSBkdW5nIGxhbSBub2kgZGUgbyANCnRvLCBwaGlh IHRheSBjdWEgaG8gdGhpIGJhbiB2YXQgbGlldSB4YXkgZHVuZywgZG8gcGhlIHRoYWkgYnVhIGJh aSBuZW4gbW9pIHRydW9uZyBiaSBvIA0KbmhpZW0uIEN1bmcgdm9pIGRvIGxhIGhlLCBkdW9uZyB0 aGkgeHVvbmcgY2FwIG5naGllbSB0cm9uZy4gQ3UgdHJpIGRlIG5naGkgVUJORCANClRoYW5oIHBo byBjaGkgZGFvIGNhYyBuZ2FuaCBzb20gZ2lhaSBxdXlldC4gDQoNClF1YSB0cmluaCBsYXkgeSBr aWVuIGN1IHRyaSBjaG8gdGhheSwgbmd1b2kgZGFuIGRhbmggZ2lhIG5oaWV1IGNvbmcgdHJpbmgg Y2hhbyBtdW5nIGRhaSANCmxlIDEwMDAgbmFtIGNoYXQgbHVvbmcga2VtLiBEaWVuIGhpbmggbmh1 IHRyZW4gdHV5ZW4gcGhvIFRvbiBEdWMgVGhhbmcsIGdhY2ggbGEgDQp0aGUga2hvbmcgcGh1IGhv cCB2YSB0aGkgY29uZyBhdSwgZ2F5IG1hdCBteSBxdWFuIHZhIGtoaWVuIGNobyB2aWVjIGRpIGxh aSBjdWEgbmd1b2kgDQpkYW4gZ2FwIGtobyBraGFuLiANCg0KS3kgaG9wIG5heSwgSERORCBUUCBk dSBraWVuIHNlIHRoYW8gbHVhbiwgdGhvbmcgcXVhIDEzIG5naGkgcXV5ZXQgcXVhbiB0cm9uZy4g VGhlbyANCmRvLCB0cm9uZyA0IG5nYXkgbGFtIHZpZWMsIDYgbmdoaSBxdXlldCB0aHVvbmcga3kg ZHUga2llbiBkdW9jIEhETkQgdGhhbyBsdWFuIHZhIA0KdGhvbmcgcXVhIGxhOiBOZ2hpIHF1eWV0 IHZlIG5oaWVtIHZ1IGtpbmggdGUgLSB4YSBob2ksIGFuIG5pbmgsIHF1b2MgcGhvbmcgbmFtIDIw MTE7IA0KTmdoaSBxdXlldCB2ZSBkdSB0b2FuIG5nYW4gc2FjaCB2YSBwaGFuIGJvIGR1IHRvYW4g bmdhbiBzYWNoIG5hbSAyMDExOyBOZ2hpIHF1eWV0IHZlIA0KY2h1b25nIHRyaW5oIHhheSBkdW5n IG5naGkgcXV5ZXQgY3VhIEhETkQgbmFtIDIwMTE7IE5naGkgcXV5ZXQgdmUgY2h1b25nIHRyaW5o IA0KZ2lhbSBzYXQgY3VhIEhETkQgbmFtIDIwMTE7IE5naGkgcXV5ZXQgdmUgdG9uZyBiaWVuIGNo ZSBoYW5oIGNoaW5oIHN1IG5naGllcCBjdWEgDQpUaGFuaCBwaG8gbmFtIDIwMTE7IE5naGkgcXV5 ZXQgdmUgZ2lhIGNhYyBsb2FpIGRhdCBhcCBkdW5nIHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gdHUg DQpuZ2F5IDEvMS8yMDExLiANCg0KVHJvbmcga3kgaG9wIG5heSwgSERORCB0aGFuaCBwaG8gY3Vu ZyBzZSB4ZW0geGV0IGRlIHRob25nIHF1YSBtb3Qgc28gbmdoaSBxdXlldCANCmNodXllbiBkZSBu aHU6IHBoYW4gY2FwIG5ndW9uIHRodSwgbmhpZW0gdnUgY2hpIGdpdWEgY2FjIGNhcCBuZ2FuIHNh Y2ggdGhhbmggcGhvIA0KZ2lhaSBkb2FuIDIwMTEgLSAyMDE1IHZhIGRpbmggbXVjIHBoYW4gYm8g Y2hpIG5nYW4gc2FjaCB0aGFuaCBwaG8gbmFtIDIwMTEtMjAxNTsgWGF5IGR1bmcsIHN1YSBkb2ks IGJvIHN1bmcgbW90IHNvIHF1eSBkaW5oIHRodSBwaGksIGxlIHBoaSBhcCBkdW5nIHRyZW4gZGlh IGJhbiBUaGFuaCANCnBobzsgTmdoaSBxdXlldCB2ZSBxdXkgaG9hY2ggcGhhdCB0cmllbiBkaWVu IGx1YyB0aGFuaCBwaG8gSGEgTm9pLi4uIA0KDQpodHRwOi8vd3d3LnRpbm1vaS52bi9BaS1sYXkt Y2FwLWNvbmctdmllbi1jdWEtbmd1b2ktZGFuLVRodS1kby0wMjExNjIuaHRtbCBNLlRpZW4gLSBU LkxpbmggKEFOVEcgc28gODMzKSAwNTowNiAyMi8wMi8yMDA5DQoNCkhhIE5vaTogQWkgImxheSBj YXAiIGNvbmcgdmllbiBjdWEgbmd1b2kgZGFuIFRodSBkbz8NCg0KS2hpIGRhbiBzbyB0aHUgZG8g bmdheSBjYW5nIHRhbmcgbGVuLCB0aGkgZGllbiB0aWNoIGNhYyBjb25nIHZpZW4gbmdheSBjYW5n IGJpIHRodSBoZXAgDQpsYWkuIEtob25nIHBoYWkgbmdhdSBuaGllbiBtYSBtb3QgZ2lhbyBzdSB2 ZSBtb2kgdHJ1b25nIHBoYXQgYmlldTogIkhhIE5vaSBoaWVuIGNodWEgDQpjbyBtb3QgY29uZyB2 aWVuICJjYXAgdGhhbmggcGhvIiBuYW8uIENvbiB0aGVvIFBHUy5UUyBIdXluaCBEYW5nIEh5LCBj YWNoIHF1YW4gbHkgDQpjb25nIHZpZW4gbyBIYSBOb2kgaGllbiBuYXkgZGFuZyB0cm9uZyB0aW5o IHRyYW5nICJuYW0gY2hhIGJhIG1lIi4gTmhhIG51b2MgZ2lhbyBjaG8gDQpjb25nIHR5IHF1YW4g bHkgY29uZyB2aWVuLCBzb25nIGtoaSBjb25nIHZpZW4geHVvbmcgY2FwLCBuYXkgc2luaCBuaGll dSB0ZSBuYW4geGEgaG9pIHRoaSANCmN1bmcuLi4gY2hhIHRoZSBxdXkgdHJhY2ggbmhpZW0gY2hv IGFpLiANCg0KTW90IG5oYSBob2F0IGRvbmcgbW9pIHRydW9uZyBkYSB0dW5nIG5vaSwgbW90IHRo YW5oIHBobyBtYSBraG9uZyBjbyBjb25nIHZpZW4gbmdoaWEgDQpsYSB0aGFuaCBwaG8gImNoZXQi LiBDbyB0aGUgdGhvbmcga2UgdGh1IGRvIEhhIE5vaSBjbyBob24gY2h1YyBjb25nIHZpZW4gbG9u IG5obywgdGhlIA0Kbmh1bmcgbmh1bmcgY29uZyB2aWVuIG5heSBkdW9uZyBuaHUgZGFuZyBjaGV0 IGRhbiBjaGV0IG1vbi4gDQoNCkNoaSBjb24gbGEga3kgdWMNCg0KQ2hpIE5ndXllbiBUaGkgSG9h LCBuaGEgdHJlbiBwaG8gRGFpIENvIFZpZXQsIGhpZW4gbGEgZ2lhbyB2aWVuIEFuaCB2YW4gY3Vh IG1vdCANCnRydW9uZyBUSFBUIGN1YSBIYSBOb2kgY28gbGUgc2UgY2hhbmcgYmFvIGdpbyBxdWVu IGR1b2Mgbmh1bmcgbmdheSB0aGFuZyBhdSB0aG8gdHVvaQ0KIGRlcCBjdWEgbWluaCBvIENvbmcg dmllbiBUaG9uZyBOaGF0Lg0KDQpTYXUga2hpIENvbmcgdmllbiBUaG9uZyBOaGF0IGR1b2MgeGF5 IGR1bmcgdGhpIHZpZWMgZHVvYyBjaHVwIGFuaCB0YWkgZGF5IG1vdCB0aG9pIGxhIA0KbmllbSBh byB1b2MgY3VhIG5oaWV1IG5ndW9pLiBEb2kgdm9pIGNoaSBIb2EgdmEgYmFuIGJlIGRvbmcgbHVh LCBDb25nIHZpZW4gVGhvbmcgDQpOaGF0IHZ1YSBsYSBub2kgdnVpIGNob2kgZ2lhaSB0cmksIGxh aSBjbyB0aGUgbWFuZyBzYWNoIHJhIG9uIGJhaS4gUm9pIG5odW5nIGtoaSBob2F0IGRvbmcgDQpE b2kgVGhpZXUgbmllbiBUaWVuIHBob25nIGN1bmcgbyB0cm9uZyBjb25nIHZpZW4uDQoNCkNoaSBj b24gbmhvLCBuZ2F5IGF5IGNheSB0cm9uZyBjb25nIHZpZW4gcmF0IGRlcCwgdGhhbSBjbyBjdW5n IGRheS4gRGFjIGJpZXQgaG8gQmF5IA0KTWF1IG51b2MgdHJvbmcgdmF0LiBOZ2F5IGRvaSBsdWEg eWV1IG5oYXUsIGNoaSBjdW5nIGFuaCBjdW5nIGhlbiBobyBvIGNvbmcgdmllbi4gDQpDaGluaCBu aHVuZyBoYW5nIHhhIGN1IGRhIGNodW5nIGtpZW4gaGFpIG5ndW9pIHRyYW8gbmhhdSBuaHVuZyBj YWkgbmFtIHRheSBydXQgcmUsIG51IA0KaG9uIGRhdSB2dW5nIGRhaS4uLg0KDQpUaGUgbmh1bmcs IGJhbmcgZGkgbW90IHRob2kgZ2lhbiwga2hpIGNvbiBsb24gY2hpIEhvYSBtb2kgY28gZGlwIGR1 YSBjb24gdHJvIGxhaSBub2kgbmF5LiANCk8gbmhhIGNoaSBkYSB0cm90IGtob2UgcmFuZyBjb25n IHZpZW4gZGVwIGxhbSwgY29uIGRpIHNlIGNoYWMgY2hhbiB0aGljaC4uLiBOaHVuZyBraG9uZyAN Cm5nbyBjb24gY2hpIHZ1YSB2YW8gY29uZyB2aWVuIGRhIGRvaSByYS4gDQoNClRodWMgcmEsIHF1 YW5nIGNhbmggY3VuZyBraG9uZyBraGFjIG5nYXkgeHVhIGxhIGJhbywgc29uZyBjaGkgY28gZGll dSBsYSBtb2kgdGh1IGRldSANCmN1IHZhIHhhdSBkaS4gTmh1bmcgaGFuZyBjYXkgeG8geGFjIHZp IGR1b25nIG5odSBraG9uZyBkdW9jIGNoYW0gc29jIGNhbiB0aGFuLCBobyANCm51b2MgdGhpIGJv YyBtdWkgeHUgdWUgbm9uZyBuYWMuLi4gQ2hhIHRoZSBtYSBjaHVhIGRpIGR1b2MgMS80IGNvbmcg dmllbiwgY29uIGNoaSBkYSANCmRvaSB2ZSB2aSAibyBuaGEgY2hvaSBkaWVuIHR1IHRoaWNoIGhv biIuDQoNCkNodW5nIGNhbmggbmdvIHZvaSBjaGkgSG9hIGxhIGFuaCBLaWVuLCBuaGEgdHJlbiBw aG8gVnUgVHJvbmcgUGh1bmcuIE5nYXkgY29uIG5obywgDQphbmggc29uZyB2b2kgYm8gbWUgdGFp IHRoYW5oIHBobyBIYWkgRHVvbmcuIE1vaSBsYW4gbGVuIEhhIE5vaSwgdGhlIG5hbyBhbmggY3Vu ZyB2b2kgDQpkdW9jIGRpIENvbmcgdmllbiBUaHUgTGUgY2hvIGJhbmcgZHVvYy4gDQoNCk5oYW4g ZGlwIG5odW5nIG5nYXkgZGF1IG5hbSByb2kgcmFpLCBhbmggZHVhIGR1YSBjb24gZGF1IGxvbmcg NSB0dW9pIHJhIHZ1b24gdGh1IGRlIA0KY2hvIGNoYXUgbW8gbWFuZyB0YW0gaGlldSBiaWV0LiBU aGUgbmh1bmcga2V0IHF1YSBuaGFuIGR1b2MgY2hpIGxhIG5odW5nIGNhaSB0aGFjIA0KbWFjIG1h Li4uIGNoaW5oIGFuaCBjdW5nIGtob25nIHRoZSBnaWFpIHRoaWNoIG5vaSENCg0KKEFuaDogS2hh Y2ggc2FuIDQgc2FvIGRhbmcgdGhpIGNvbmcgdHJvbmcgbW90IHBoYW4gZGllbiB0aWNoIGN1YSBj b25nIHZpZW4gVGhvbmcgTmhhdC4pDQoNCkJvaSB0aHUgbm9pIGRheSBuaGlldSBjb24gZ2F5IHhh YyB4bywgdHJvIGNhIHh1b25nIHN1b24sIGNvIGNvbiBxdWUgbGV0IHRyZW4gc2FuIHhpIG1hbmcg DQpkZSBkZW4gY2hvIGNvIHZ1bmcgbnVvYy4gRGFjIGJpZXQsIGtoaSBkYW4gY29uIGRlbiBjaHVv bmcgZGUgdGVuICJIYSBtYSIgdGhpIGNhdSBjb24gDQp0cmFpIGFuaCB2YW46ICJCbyBjbyBjaGFj IG5vIGxhIGhhIG1hIGtob25nPyIuIEtoaSBuaGluIHh1b25nIGNodW9uZywgbmd1b2kgdGEgdGhh eSANCm5nb2FpIG1vdCB2dW5nIG51b2MgZHVjIG5nYXUgY2hpIHRoYXkgbm9pIGxlbiBtb3QgdGFu ZyBsdW5nIGRlbiBkZW4gdmEgbXVpIGhvaSB0aG9pIA0Kbm9uZyBuYWMgYm9jIGxlbiwgdGhhdCBr aG8gbWEgZGFtIGtoYW5nIGRpbmguDQoNClRoZSByb2kgbmFvIGxhIENvbmcgdmllbiBCYWNoIFRo YW8sIENvbmcgdmllbiBOZ2hpYSBEbywgQ29uZyB2aWVuIFR1b2kgVHJlLi4uIHRvYW4gDQpuaHVu ZyBjb25nIHZpZW4gdGVuIG9hY2ggY2EuIFNvbmcgdGhhdCBraG8gY28gdGhlIG5vaSByYW5nIG5v IGxhIG5odW5nIGNvbmcgdmllbiBkdW5nIA0KbmdoaWEuIENoaW5oIGdpdWEga2h1b24gdmllbiBj dWEgQ29uZyB2aWVuIFR1b2kgVHJlIGxhIGhhaSB2dSB0cnVvbmcuIFZlIGJ1b2kgdG9pIGhhdSAN CmtoYXAgY2FjIGNvbiBkdW9uZyB0cm9uZyBjb25nIHZpZW4gZGV1IGNodWEgY28gaGUgdGhvbmcg ZGVuIGNoaWV1IHNhbmcuIFRoYXkgdmkgbmh1bmcgDQp2dW9uIGhvYSBjYXkgY2FuaCB0aGkgbGFp IGNoaSB0b2FuIGNvIGRhaS4NCg0KQ2hpIE5ndXllbiBWYW4gQW5oLCBzaW5oIHZpZW4gVHJ1b25n IGRhaSBob2MgS2hvYSBob2MgeGEgaG9pIHZhIG5oYW4gdmFuLCBEYWkgaG9jIA0KUXVvYyBnaWEg SGEgTm9pIGNvbiBjaHVhIHF1ZW4ga3kgdWMgaGFpIGh1bmcgdGFpIENvbmcgdmllbiBOZ2hpYSBE by4gTmhhbiBuZ2F5IA0KVmFsZW50aW5lLCBWYW4gQW5oIGN1bmcgbmd1b2kgeWV1IHZhbyBjb25n IHZpZW4gY2h1eWVuIHRyby4gTHVjIGF5IGxhIGtob2FuZyAyMWgsIGNhIA0KaGFpIGRhbmcgY2h1 YW4gYmkgcmEgdmUgdGhpIGdhcCAyIGRvaSB0dW9uZyAiZGF0IGRlbyIgdGllbiBkZW46ICJDaG8g eGluIGRpZXUgdGh1b2MiLiANCg0KQmlldCBnYXAgcGhhaSAiY3VvcCIsIFZhbiBBbmggbmdvYW4g bmdvYW4gcnV0IHZpIG5vcCBjaG8gYm9uIGNodW5nIDIwMC4wMDBkLiBUaGUgcm9pIA0Kdm9pIHZh IHJhIHZlIHZhIHR1IGRvIGtob25nIGJhbyBnaW8gZGFtIGJlbiBtYW5nIGRlbiBudWEuDQoNCkNh YyBjb25nIHZpZW4gZGFuZyBkdW9jIHF1YW4gbHkga2lldSBnaT8NCg0KTW90IGRpZXUgZGUgbmhh biB0aGF5IGxhLCBraGkgbWEgZGFuIHNvIHRodSBkbyBuZ2F5IGNhbmcgdGFuZyBsZW4sIHRoaSBk aWVuIHRpY2ggY2FjIGNvbmcgDQp2aWVuIG5nYXkgY2FuZyBiaSB0aHUgaGVwIGxhaS4gS2hvbmcg cGhhaSBuZ2F1IG5oaWVuIG1hIG1vdCBnaWFvIHN1IHZlIG1vaSB0cnVvbmcgcGhhdCANCmJpZXU6 ICJIYSBOb2kgaGllbiBjaHVhIGNvIG1vdCBjb25nIHZpZW4gImNhcCB0aGFuaCBwaG8iIG5hby4g RGFpIGRhIHNvIGNhYyBjb25nIHZpZW4gDQpjdWEgdGh1IGRvIGRhbmcgZHVvYyBxdWFuIGx5IG1v dCBjYWNoIGxvbmcgbGVvLg0KDQpNb3QgZGllbiBoaW5oIGN1YSB2aWVjIHF1YW4gbHkgdGhpZXUg bmdoaWVtIHR1Yywgc2F0IHNhbyBkb2kgdm9pIGNhYyBjb25nIHZpZW4gbGEgbyBDb25nIA0Kdmll biBUaHUgTGUsIGNvIHF1YW4gcXVhbiBseSBjaG8gdGh1ZSBsYWkgbW90IGx1b25nIGxvbiBkYXQg bWF0IHRpZW4gZGUga2luaCBkb2FuaC4gDQpDb25nIHR5IFROSEggbW90IHRoYW5oIHZpZW4gVnVv biB0aHUgSGEgTm9pIGNobyBwaGVwIDExIGRvbiB2aSBkZW4gdGh1ZSBsYWkgbWF0IA0KYmFuZyBx dWFuaCBraHVvbiB2aWVuIENvbmcgdmllbiBUaHUgTGUgZGUga2luaCBkb2FuaCBuaGEgaGFuZywg a2hhY2ggc2FuLCBjdWEgaGlldSANCmJ1b24gYmFuIHRhcCBuYXAuDQoNClRydW9jIG5odW5nIHBo YW4gdW5nIGdheSBnYXQgY3VhIGR1IGx1YW4sIFVCTkQgVFAgSGEgTm9pIGRhIHBoYWkgYmFuIGhh bmggbmhpZXUgDQpiaWVuIHBoYXAgZ2lhaSBxdXlldC4gVGhhbmcgMTEvMjAwNywgdGhlbyBjaHUg dHJ1b25nIGN1YSBVQk5EIFRQIEhhIE5vaSB2ZSBnaWFpIHRvYSANCmNhYyBuaGEgaGFuZyB4YXkg ZHVuZyB0cmFpIHBoZXAgdHJlbiBkYXQgdnVvbiB0aHUgVGh1IExlIChIYSBOb2kpIGxhbSBhbmgg aHVvbmcgZGVuIA0KY2FuaCBxdWFuLCBtb2kgdHJ1b25nIGN1YSBraHUgdnVpIGNob2kgZHVvYyBj b2kgbGEgbHkgdHVvbmcgY3VhIHRodSBkbywgVUJORCBxdWFuIEJhIA0KRGluaCBkYSBodXkgZG9u ZyB0b2FuIGJvIGx1YyBsdW9uZyB0aGFuaCB0cmEgeGF5IGR1bmcsIGFuIG5pbmggdHJhdCB0dS4u LiBiYXQgZGF1IGdpYWkgdG9hIA0KNCBjb25nIHRyaW5oICB2aSBwaGFtIHRhaSBkYXksIGdvbTog SGUgdGhvbmcgbmhhIHRodXllbiBtb2MgdHJhaSBwaGVwIHRyZW4gbWF0IGhvLCBjdWEgDQpoYW5n IGRpZW4gdGhvYWkgZGkgZG9uZywgcXVhbiBiaWEgdmEgcXVhbiBjYSBwaGUuIFRvbmcgZGllbiB0 aWNoIGdpYWkgdG9hIHRyZW4gNTAwbTIuIA0KDQooQW5oOiBWYW8gY29uZyB2aWVuLCBraG9uZyBp dCBuZ3VvaSBwaGFpICJuZ3VvbmciIGtoaSBiYXQgZ2FwIG5odW5nIGNhbmggbmh1IHRoZSBuYXku KQ0KDQpUaWVwIGRvLCBVQk5EIHF1YW4gQmEgRGluaCB0aWVwIHR1YyBnaWFpIHRvYSB2YSBjdW9u ZyBjaGUgZ2lhaSB0b2EgNyBkaWVtIHZpIHBoYW0gY29uIA0KbGFpIGRldSBsYSBuaHVuZyBjb25n IHRyaW5oIHhheSBraWVuIGNvLCBjaGllbSBraG9uZyBnaWFuIGxvbiBxdWFuaCBraGFwIHZ1b24g dGh1IFRodSANCkxlIHZvaSB0b25nIGRpZW4gdGljaCBsZW4gdG9pIDEwLjAwMG0yLCBnb206IE5o YSBoYW5nIExhYyBWaWV0LCBMYXUgbmFtIHRoaWVuIG5oaWVuLCANCnF1YW4ga2FyYW9rZSBUaHV5 IExpbmgsIG5oYSBoYW5nIFBobyBOZ29pLCBIb2EgQmluaCwgVmlldCBUaGFuaC4uLiBUdXkgbmhp ZW4gY2hvIHRvaSANCnRob2kgZGllbSBuYXksIHZhbiBjb24gbW90IHNvIGNvbmcgdHJpbmggY2h1 YSB0aGUgZ2lhaSB0b2EgZHVvYy4NCg0KTyBDb25nIHZpZW4gVHVvaSBUcmUsIHNhdSBraGkgYm8g cmEgbmhpZXUgdGkgZG9uZyBkZSBnaWFpIHBob25nIG1hdCBiYW5nLCBkYXQgY29uZyB2aWVuIA0K bGFpIGR1b2MgZ2lhbyBsYWkgY2hvIGNhYyBkb2FuaCBuZ2hpZXAga2hhaSB0aGFjLiBEYXUgdGll biBsYSBDb25nIHR5IFRodW9uZyBtYWkgdmEgZGF1IA0KdHUgcGhhdCB0cmllbiBIYSBOb2ksIHNh dSBkbyBkZW4gTGllbiBkb2FuaCBnaXVhIEhhIE5vaSBUb3VyaXN0IHZhIFRhcCBkb2FuIFJhZmlu LCBkZSANCnhheSBkdW5nIGNhYyBjb25nIHRyaW5oIHRodW9uZyBtYWkgZ2lhaSB0cmkgdm9pIHF1 eSBtbyBsb24uIA0KDQpUYWkgQ29uZyB2aWVuIFllbiBTbywgY29uZyB0YWMga2hhaSB0aGFjIHF1 eSBkYXQgaGllbiBkYW5nIGR1b2MgZ2lhbyB0b2FuIGJvIGNobyBUYXAgDQpkb2FuIEdhbXVuZGEg QmVyaGFycmQgZGUgeGF5IGR1bmcgY2Ega2hhY2ggc2FuIDUgc2FvLCBjaHVuZyBjdSBjYW8gY2Fw LCBiaWV0IHRodSwgDQp0cnVuZyB0YW0gbXVhIHNhbS4gDQoNCkdhbiBkYXksIGR1IGx1YW4gbmhh biBkYW4gVFAgSGEgTm9pIGRhYyBiaWV0IHF1YW4gdGFtIGRlbiBkdSBhbiB4YXkgZHVuZyBraGFj aCBzYW4gDQp0YWkgQ29uZyB2aWVuIFRob25nIE5oYXQuIFRoYW5nIDYvMjAwOCwgZHUgYW4geGF5 IGR1bmcga2hhY2ggc2FuIFNBUyB0cmVuIGRpZW4gdGljaCANCmdhbiAxaGEgKHZvbiB0aHVvYyBD b25nIHZpZW4gVGhvbmcgTmhhdCkgZHVvYyBraG9pIGNvbmcgdm9pIGNhaSB0ZW4gTm92b3RlbCBI YW5vaSBvbiANCnRoZSBQYXJrLg0KDQpOZ2F5IGxhcCB0dWMsIG5oaWV1IG5oYSBraG9hIGhvYywg a2llbiB0cnVjIHN1LCBuaGEgcXV5IGhvYWNoIHZhIGRvbmcgZGFvIG5oYW4gZGFuIFRQIA0KSGEg Tm9pIGRhIHBoYW4gdW5nIHZlIGNodXllbiBkby4gRGlldSBraGllbiBuZ3VvaSB0YSB0aGFjIG1h YyBsYSB0YWkgc2FvIG1vdCBkdSBhbiB4YXkgDQpkdW5nIGtoYWNoIHNhbiBsb24gZGVuIG5odSB2 YXksIG8gbW90IGRpYSBkaWVtIGRhYyBkaWEgZGVuIG5odW9uZyBheSBzb25nIGR1b25nIG5odSAN Cmtob25nIGR1b2MgY2FjIG5oYSBxdWFuIGx5LCBjaHUgZGF1IHR1IHRob25nIHRpbiBtb3QgY2Fj aCBjb25nIGtoYWksIG1pbmggYmFjaC4NCg0KS2hvbmcgaXQgbmh1bmcgY29uZyBkYW4gY3VhIFRQ IEhhIE5vaSBuZ2F5IG5heSBkYSBibyByYXQgbmhpZXUgY29uZyBzdWMsIGNodW5nIHRheSANCnhh eSBkdW5nIENvbmcgdmllbiBUaG9uZyBOaGF0IHR1IG5odW5nIG5hbSA1MCBjdWEgdGhlIGt5IFhY IHBoYW4gdW5nIG1vdCBjYWNoIGR1IA0KZG9pIHZlIHZhbiBkZSBuYXkuIA0KDQpCYWMgSG9hbmcg VmFuIFRoYW5oLCBuaGEgdHJlbiBwaG8gVnUgVHJvbmcgUGh1bmcgYmF5IHRvLCBuZ2F5IGF5IGJh YyBtb2kgbmdvYWkgMjAgDQp0dW9pLCBkdW9jIENoaW5oIHBodSBrZXUgZ29pIGNodW5nIHRheSBj dW5nIGhhbmcgbmdhbiB0aGFuaCBuaWVuIGtoYWMgdGhhbSBnaWEgZGFwIGRhcCwgDQp2ZXQgaG8s IHRyb25nIGNheS4uLiBkZSB4YXkgZHVuZyBDb25nIHZpZW4gVGhvbmcgTmhhdC4gDQoNClRhdCBj YSBjdW5nIGNoaSB2aSBtb3QgbXVjIGRpY2ggbGEgZGUgZGFpIGRhIHNvIG5oYW4gZGFuIGNvIG5v aSBuZ2hpIG5nb2ksIG5ndW9pIGdpYSBjbyANCm5vaSBob25nIG1hdCwgdGFwIHRoZSBkdWMsIHRy ZSBjb24gY28gY2hvIGNoYXkgbmhheSB2dWkgY2hvaS4gVmF5IG1hIGhpZW4gbmF5IG5ndW9pIHRh IA0KZGFuZyB4YXkgZHVuZyBraGFjaCBzYW4gY2hpIGRlIHBodWMgdnUgY2hvIG1vdCAibmh1bSBu Z3VvaSIgbmdheSB0YWkgZGF5LiBOaHUgdGhlIGxhIA0KZHVuZyBoYXkgbGEgc2FpPw0KDQpOZ2F5 IDEzLzIvMjAwOSwgbW90IGxhbiBudWEgZHUgbHVhbiBuaGFuIGRhbiBIYSBOb2kgZGF5IGxlbiBu aHVuZyB0aGFjIG1hYyBraGkgdHJvbmcgDQptb3QgY3VvYyBob3AgYmFvLCBVQk5EIEhhIE5vaSBj aGluaCB0aHVjIGtoYW5nIGRpbmggcXV5ZXQgZGluaCB0aWVwIHR1YyBjaG8gdGh1YyANCmhpZW4g ZHUgYW4ga2hhY2ggc2FuIE5vdm90ZWwgSGFub2kgb24gdGhlIFBhcmsgdHJlbiBraHUgZGF0IHRp ZW4gc3UgdGh1b2MgQ29uZyB2aWVuIA0KVGhvbmcgTmhhdC4gUGhvIGNoYW5oIHZhbiBwaG9uZyBV Qk5EIFRQIE5ndXllbiBWYW4gVGhpbmggbmhpZXUgbGFuIG5oYW4gbWFuaCANCmRheSBsYSB2YW4g ZGUgcXVhIGtodSwgZGEgZHVvYyAidGhvbmcgc3VvdCB0dSBDaGluaCBwaHUgZGVuIHRoYW5oIHBo byIsICJuZW4ga2hvbmcgYmFuIA0KdmllYyBuYXkgbnVhIi4NCg0KQ29uIHRoZW8gb25nIE5ndXll biBNaW5oIENodW5nLCBQaG8gdG9uZyBnaWFtIGRvYyBUb25nIENvbmcgdHkgRHUgbGljaCBIYSBO b2ksIA0KZG9pIHRhYyBwaGlhIFZpZXQgTmFtIG5hbSBnaXUgMzAlIHZvbiB0cm9uZyBkdSBhbiwg dGhpIGR1IGFuIGtoYWNoIHNhbiAobmF5IGdvaSBsYSANCk5vdm90ZWwgSGFub2kgb24gdGhlIFBh cmspIHZvbiBtYW5oIG5oYSB0dSBuaHVuZyBuYW0gNzAgZGVuIDkwLiBLaGkgZG8sIG51b2MgdGEg ZGFuZyANCmdhcCBraG8ga2hhbiBjYSB2ZSBraW5oIHRlIGxhbiB0aHUgaHV0IGRhdSB0dS4gSGUg dGhvbmcgZGljaCB2dSBraGFjaCBzYW4gbyB0aHUgZG8ga2hvbmcgDQpub2kgZGVuIHlldSBtYSBy YXQgdGhpZXUgbmhhdCBsYSBraGFjaCBzYW4gcGh1YyB2dSBjaHV5ZW4gZ2lhIG51b2MgbmdvYWkg ZGVuIGdpdXAgZG8gY2h1bmcgdGEuDQoNClRoZW8gZGUgbmdoaSBjdWEgZG9pIHRhYyBwaGlhIG51 b2MgbmdvYWkgdmUgdmllYyB4YXkgZHVuZyBtb3Qga2hhY2ggc2FuIGNvIHF1eSBtbyBsb24gDQpo b24gcXV5IG1vIGtoYWNoIHNhbiBoaWVuIGRhbmcgeGF5IGR1bmcsIHRhaSBtYW5oIGRhdCB0aWVw IGdpYXAgdm9pIGR1b25nIFRyYW4gTmhhbiANClRvbmcgdmEgZHVvbmcgTGUgRHVhbiBuZ2F5IG5h eS4gQ2hpbmggcXV5ZW4gdGhhbmggcGhvIGRhIG5naGllbiBjdXUsIGJhbyBjYW8gbGVuIA0KdHJl biB4aW4geSBraWVuLiANCg0KU2F1IG5oaWV1IGxhbiBiYW4gdGhhbywgbGF5IHkga2llbiwgbmFt IDE5OTEsIFV5IGJhbiBOaGEgbnVvYyB2ZSBob3AgdGFjIGRhdSB0dSBkYSBjYXAgDQpnaWF5IHBo ZXAgY2hvIGxpZW4gZG9hbmggZGF1IHR1IHhheSBkdW5nIGtoYWNoIHNhbiwgbWEgZG9pIHRhYyBW aWV0IE5hbSBoaWVuIG5heSBsYSANClRvbmcgQ29uZyB0eSBEdSBsaWNoIEhhIE5vaS4gWWV1IGNh dSBjdWEgZHUgYW4sIGxhIHBoYWkgZGkgZG9pIG5odW5nIGhvIGRhbiB2YSBjYWMgDQpjb25nIHRy aW5oIGtoYWMgZGUgYmFuIGdpYW8gMTUuMDAwbTIgbWF0IGJhbmcgeGF5IGR1bmcga2hhY2ggc2Fu LiANCg0KTm9pIGxvbmcgdm9uZyBuaHUgdmF5LCBzb25nIHRvbSBsYWkgY28gdGhlIGtoYWkgcXVh dCB0aGFuaCBtb3QgeSB0aGUgbmF5LiBIYSBOb2kgZGEgaHVhIA0Kdm9pIGRvaSB0YWMgVGh1eSBE aWVuLCBjaHUgZGF1IHR1IGJhbiBkYXUgY3VhIGR1IGFuIHRoZW8gImNhbSBrZXQgcXVvYyB0ZSBk YSBreSIgdmEgZGF5IA0KbGEgZHUgYW4gIm1hbmcgdGluaCBjaGF0IGFuIG5naGlhLCBsdWMga2hv IGtoYW4gaG8gZGEgdmFvIHZvaSBjaHVuZyB0YSIuIA0KDQpUdXkgbmhpZW4sIGR1b2MgYmlldCBk b2kgdGFjIG51b2MgbmdvYWkgaGllbiBnb3Agdm9uIHhheSBkdW5nIE5vdm90ZWwgSGFub2kgb24g dGhlIA0KUGFyayBraG9uZyBjb24gbGEgVGFwIGRvYW4gU0FTIGN1YSBUaHV5IERpZW4sIG51b2Mg YmFuIGRhIGNvIG5oaWV1ICJhbiBuZ2hpYSIgdm9pIA0KVmlldCBOYW0uIENodSBkYXUgdHUgY3Vh IGR1IGFuIGhpZW4gbmF5IGxhIFRhcCBkb2FuIEFjY29yIC0gVGFwIGRvYW4gRGF1IHR1IFNJSCBM dGQuIA0KKHRydSBzbyB0YWkgU2luZ2Fwb3JlKSBsaWVuIGRvYW5oIHZvaSBUb25nIENvbmcgdHkg RHUgbGljaCBIYSBOb2kuDQoNCkNodW5nIHRvaSBkYSBsaWVuIGhlIHZvaSBTbyBRdXkgaG9hY2gg LSBLaWVuIHRydWMgSGEgTm9pIGRlIHRpbSBjYXUgdHJhIGxvaS4gS2hpIGNodW5nIA0KdG9pIHZ1 YSBuaGFjIHRvaSBjdW0gdHU6ICJDb25nIHZpZW4gVGhvbmcgTmhhdCIsIG9uZyBEbyBWaWV0IENo aWVuLCBQaG8gZ2lhbSBkb2MgU28gDQpub2kgbHVvbjogIkxhdSBuYXkgdG9pIGtob25nIGNvbiBu YW0gdmFuIGRlIGRvIG51YSwgY2FjIGFuaCBuZW4gaG9pIEdpYW0gZG9jIi4gDQoNCkNodW5nIHRv aSBsaWVuIGdvaSB0b2kgc28gZGllbiB0aG9haSBjdWEgb25nIFRvIEFuaCBUdWFuIC0gR2lhbSBk b2MgU28gdGhpIGxhbiB0aHUgbmhhdCANCm5oYW4gZHVvYyBjYXUgdHJhIGxvaTogIkRhbmcgaG9w LCBkYW5nIGhvcCIuIEtob25nIG5hbiBsb25nLCBsYW4gdGh1IGhhaSBjaHVuZyB0b2kgZGUgDQpu Z2hpIHhpbiBkdW9jIGJpZXQgeSBraWVuIGN1YSBvbmcgdHJ1b2MgdmllYyBVQk5EIFRQIEhhIE5v aSBjaGluaCB0aHVjIGtoYW5nIGRpbmggDQpxdXlldCBkaW5oIHRpZXAgdHVjIGNobyB0aHVjIGhp ZW4gZHUgYW4ga2hhY2ggc2FuIHRyZW4ga2h1IGRhdCB0aWVuIHN1IHRodW9jIENvbmcgdmllbiAN ClRob25nIE5oYXQgc29uZyBjaGkgbmhhbiBkdW9jIG1vdCBzdSBpbSBsYW5nIGtobyBoaWV1ICgh PykuDQoNClBoYWkgY28gbW90IHR1IGR1eSAicm9uZyIgaG9uIHZlIHF1YW4gbHkgZG8gdGhpDQoN ClBHUywgVFMgSHV5bmggRGFuZyBIeSwgVG9uZyB0aHUga3kgSG9pIFF1eSBob2FjaCBQaGF0IHRy aWVuIGRvIHRoaSBWaWV0IE5hbSBwaGFuIA0KdGljaDogY29uZyB2aWVuIGNvIHRoZSBoaWV1IG5v bSBuYSBsYSBtb3QgY2FpICJ2dW9uIGNvbmcgY29uZyIsIHRyb25nIGRvIGNodSB5ZXUgbGEgDQp0 cm9uZyBjYXkgeGFuaCBkZSBwaHVjIHZ1IGtoYWNoIG5naGkgbmdvaSwgZGFvIGNob2ksIHRodSBn aWFuLi4uIFRyb25nIHhhIGhvaSBoaWVuIGRhaSwgDQpzbyBsdW9uZyB2YSBjaGF0IGx1b25nIGNv bmcgdmllbiBjb24gbGEgbW90IGNoaSBzbyBkbyB0cmluaCBkbyB2YW4gbWluaCBjdWEgbW90IHRv IGNodWMgDQp4YSBob2kgZG8gdGhpLg0KDQpIYSBOb2kgY28gbW90IHNvIGx1b25nIGtoYSBraGEg Y29uZyB2aWVuIHZhIGhvIG51b2MgdHUgbmhpZW4sIGRvIGxhIGRpZXUgcmF0IGRhbmcgdnVpIA0K bXVuZy4gU29uZywgdGhlbyB0aG9pIGdpYW4sIGNhYyBjb25nIHZpZW4gbmdheSBjYW5nIGJpIHRo dSBoZXAsIGhvIG51b2MgdGhpIHRybyB0aGFuaCBhbyANCnR1LCBkbyBsYSBkaWV1IHJhdCBkYXUg eG90LiBIb24gbnVhLCBjbyBzbyB2YXQgY2hhdCBuZ2F5IGNhbmcgeHVvbmcgY2FwLi4uDQoNCk5n dXllbiBuaGFuIGN1YSBjaHV5ZW4gZG8gdHJ1b2MgaGV0IGxhIGRvICJ0YW0gbmhpbiIgY3VhIG5n dW9pIHF1eSBob2FjaC4gQ28gdGhlIG5vaSANCmhpZW4gbmF5LCBjYWMgbmhhIHF1eSBob2FjaCBj dWEgY2h1bmcgdGEgY28gdGFtIG5oaW4gdGhlbyAibmhpZW0ga3kiLiBNYXkgY2hhbmcgdHJvbmcg DQoxLTIgbmhpZW0ga3kgaG8gY28gdGhlIHhheSBkdW5nIGR1b2MgbW90IGNvbmcgdmllbiBiZSBi ZS4gU29uZyBjdW5nIHZpIHZheSBtYSBjYWMgDQpjb25nIHZpZW4gbyBIYSBOb2kgdHJvIG5lbiBu aG8gaGVwLCBtYW5oIG11bi4NCg0KQmVuIGNhbmggZG8sIHRoZW8gUEdTLlRTIEh1eW5oIERhbmcg SHkgY2FjaCBxdWFuIGx5IGNvbmcgdmllbiBvIEhhIE5vaSBoaWVuIG5heSANCmRhbmcgdHJvbmcg dGluaCB0cmFuZyAibmFtIGNoYSBiYSBtZSIuIE5oYSBudW9jIGdpYW8gY2hvIGNvbmcgdHkgcXVh biBseSBjb25nIHZpZW4sIA0Kc29uZyBraGkgbWEgY29uZyB2aWVuIHh1b25nIGNhcCwgbmF5IHNp bmggbmhpZXUgdGUgbmFuIHhhIGhvaSB0aGkgY3VuZy4uLiBjaGEgdGhlIHF1eSANCnRyYWNoIG5o aWVtIGNobyBhaS4gSGF5IGNvbmcgdHkgcXVhbiBseSBjb25nIHZpZW4gbXVvbiB4YXkgdGhlbSBj b25nIHRyaW5oIHZ1aSBjaG9pLCANCnRhbyB0aGVtIG5ndW9uIHRodSBkZSBxdWF5IHZvbmcgcGhh dCB0cmllbiBjb25nIHZpZW4gdGhpIGN1bmcga2hvbmcgZGUgbWEgeGluIGdpYXkgcGhlcC4gDQoN CkRhYyBiaWV0LCBjYWMgbmhhIHF1eSBob2FjaCBtdW9uIHhheSBjYWkgZ2kgZGkgY2hhbmcgbnVh IGN1bmcgY2FuIHBoYWkgY29uZyBraGFpLCBtaW5oIA0KYmFjaCBjYWMgZHUgYW4gZGUgZG9uZyBk YW8gbmd1b2kgZGFuIGdvcCB5IGtpZW4uIFRydW9jIGtoaSByYSBtb3QgcXV5ZXQgZGluaCB4YXkg aGF5IA0KcGhhLCBjYW4gcGhhaSBjYW4gbmhhYyBsb2kgaWNoIHRydW9jIG1hdCB2b2kgbG9pIGlj aCBsYXUgZGFpLCBsb2kgaWNoIGN1YSBtb3QgdGhpZXUgc28gbmd1b2kgDQp2b2kgbG9pIGljaCBj dWEgY29uZyBkb25nLiBOaHUgdmF5IG1vaSB0aGUgaGllbiAidGFtIG5oaW4iIGN1YSBuaGEgcXV5 IGhvYWNoLg0KDQpQR1MuVFMgSHV5bmggRGFuZyBIeSBjdW5nIHJhdCB0YW0gZGFjIHZvaSB5IGtp ZW4gY3VhIG9uZyBQaGFtIFN5IExpZW0gLSBuZ3V5ZW4gDQpQaG8gQ2h1IHRpY2ggVUJORCBUUCBI YSBOb2ksIG5ndXllbiBUaHUgdHJ1b25nIEJvIFhheSBkdW5nOiAiTmh1bmcgdmFuIGRlIGN1YSAN CmxpY2ggc3UgcGhhaSBkdW9jIGNhbiBuaGFjIHRoYXUgZGFvIGNobyBwaHUgaG9wIHZvaSB0aG9p IGhpZW4gdGFpLiBYZW0gY2FpIGdpIHRodWMgc3UgY2FuIA0KZ2l1IHRoaSBwaGFpIGdpdSwgY2Fp IGdpIGNhbiBzdWEgdGhpIHBoYWkgc3VhLCB0aGFtIGNoaSBjbyBjYWkgY2FuIHhvYSBzbyIgdmE6 ICJDYWkgZ2kgbGFtIA0KY2h1YSBkdW5nIHRoaSBjdSBob2kgbmhhbiBkYW4uIEJhbmcgY2h1bmcg bGEgbmh1IG5oaWV1IHZpZWMgdnVhIHF1YSwgSGEgTm9pIGRhIGNoaXUgDQpsYW5nIG5naGUgeSBr aWVuIG5ndW9pIGRhbiwgY28gcXV5ZXQgZGluaCBob3AgbG9uZyBkYW4sIHRoaSBuZ3VvaSBkYW4g cGhhbiBraG9pIGxhbSwgDQpuaHUgdnUgY2hvIDE5LTEyIGRheSIuDQoNCkNodW5nIHRvaSBjdW5n IG5naGkgbmh1IHZheSEgDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0tpbmgtdGUvVnVvbi10aHUtVGh1 LUxlLVZpLXNhby1naXUtbGFpLTItc2FuLXRlbm5pcy1zYWktcGhhbS83MDEwMjExMS84Ny8gTmd1 eWVuIFR1YW4gKFRoZW9fVGllbl9QaG9uZykgIFRodSB0dSwgMzEgVGhhbmcgbXVvaSAyMDA3LCAy MDoyMSBHTVQrNyANCg0KSGEgTm9pOiBWdW9uIHRodSBUaHUgTGUgLSBWaSBzYW8gZ2l1IGxhaSAy IHNhbiB0ZW5uaXMgc2FpIHBoYW0/DQoNCkxpZW4gcXVhbiBkZW4geHUgbHkgdmkgcGhhbSB0YWkg dnVvbiB0aHUgVGh1IExlLCBDdHkgbmF5IHZ1YSBjbyBiYW8gY2FvIGd1aSBVQk5EIFRQIA0KSGEg Tm9pIHZhIGNhYyBzbyBuZ2FuaC4gVGhlbyBkbywgQ3R5IFZ1b24gVGh1IGRhIGRlIG5naGkgY2hv IGdpdSBsYWkgMiBzYW4gdGVubmlzIGNvIA0KbmhpZXUgc2FpIHBoYW0gdm9pIGRpZW4gdGljaCBj aGllbSBkYXQgbGVuIHRvaSBoYW5nIG5nYW4gbTIhDQoNCihBbmg6IEN0eSBWdW9uIFRodSBkYSBk ZSBuZ2hpIGNobyBnaXUgbGFpIDIgc2FuIHRlbm5pcyBjbyBuaGlldSBzYWkgcGhhbSB2b2kgZGll biB0aWNoIA0KY2hpZW0gZGF0IGxlbiB0b2kgaGFuZyBuZ2FuIG0yISkNCg0KQmFvIGNhbyBjdWEg Q3R5IFZ1b24gdGh1IGRhIGNhbiBjdSB2YW8gc3UgY2hpIGRhbyB0YWkgVGhvbmcgYmFvIHNvIDMw My9UQi1VQk5EIA0KbmdheSAxMi85LzIwMDcgY3VhIFVCTkQgdGhhbmggcGhvIEhhIE5vaSB2YSBk ZSBuZ2hpIHRoYW5oIHBobyBjaG8gZ2l1IGxhaSB0b2kgMiBzYW4gDQp0ZW5uaXMgdmEga2h1ICJw aHUgdHJvIiAoVGh1b2MgQ3R5IEhvYW5nIFZpbmggdmEgQ3R5IFZpZXQgVGhhbmggcXVhbiBseSku DQoNClZpZWMgZGUgbmdoaSBnaXUgbGFpIDIgc2FuIHRlbm5pcyBuYXkga2hvbmcgY28gZ2kgZGFu ZyBub2ksIG5ldSBkYXkga2hvbmcgcGhhaSBsYSBuaHVuZyANCmNvbmcgdHJpbmggc2FpIHBoYW0g dm9pIHRvbmcgZGllbiB0aWNoIGxlbiB0b2kgaG9uIDQuMTAwIG0yKCE/KS4NCg0KVGFpIEJhbyBj YW8gc28gNzYzIGN1YSBEb2FuIFRoYW5oIHRyYSBsaWVuIG5nYW5oIFRoYW5oIHBobyBraGFuZyBk aW5oOlRoZW8gYmllbiBiYW4gDQp4dSBseSB2aSBwaGFtIGN1YSBwaHVvbmcgTmdvYyBLaGFuaCwg Q3R5IEhvYW5nIFZpbmggZGEgeGF5IGR1bmcgY29uZyB0cmluaCBzYWkgDQpwaGVwLCB2dW90IGNo aSBnaW9pIDY3LDhtMjsgeGF5IDIgdGFuZyBraWVuIGNvLCB0aGF5IHZpIGNoaSBkdW9jIHhheSBu aGEgcGh1IHRybyBjYXAgNCANCnBodWMgdnUgY2hvIGhvYXQgZG9uZyBjdWEgc2FuIHRlbm5pcyEN Cg0KQ29uIHNhbiB0YXAgdGVubmlzIGRvIEN0eSBWaWV0IFRoYW5oIHZhIGNhYyBkb2kgdGFjIGxh bSBjaHUgZGF1IHR1IHhheSBkdW5nIHRoaSBjaHVhIA0KbGFtIGNhYyB0aHUgdHVjIGRhdSB0dSBu aHVuZyBkYSBjaG8geGF5IGR1bmcgY29uZyB0cmluaCB2b2kgdGhvaSBoYW4gMjUgbmFtIQ0KDQpE YW5nIGx1dSB5LCBxdWEgdHJpbmggcmEgc29hdCBjYWMgaG9wIGRvbmcgbGllbiBrZXQsIGNvIHF1 YW4gY28gdGhhbSBxdXllbiBkYSBwaGF0IGhpZW46IA0KbmFtIDE5OTcsIGNoaW5oIFVCTkQgVGhh bmggcGhvIEhhIE5vaSBkYSBreSBxdXlldCBkaW5oIHNvIDQyMjIvUUQtVUIgY2hvIHBoZXAgDQp4 YXkgZHVuZyBtb3Qgc2FuIHRlbmlzIGNoaWVtIDI5NzAgbTIgZGF0IHRyb25nIGtodW9uIHZpZW4g dnVvbiB0aHUuDQoNCkRhdSBuYW0gMjAwNCwgc2FuIHRlbm5pcyBuYXkgZHVvYyAiY2h1eWVuIG5o dW9uZyIgY2hvIG1vdCBDdHkga2hhYyB0aHVlIGxhaSAodmllYyANCm5heSBWdW9uIHRodSBjbyBi YW8gY2FvIGJhbmcgdmFuIGJhbiB2YSBkdW9jIG9uZyBOZ3V5ZW4gVmFuIEtob2ktUGhvIEdpYW0g ZG9jIFNvIA0KR1RDQyAoY2h1IHF1YW4gdnVvbiB0aHUgbHVjIGJheSBnaW8pIGRvbmcgeS4NCg0K TmhvIGRvLCBDdHkgSG9hbmcgVmluaCBreSBob3AgZG9uZyBzdSBkdW5nIHNhbiB0ZW5uaXMgdG9p IDIwIG5hbS4gVGFpIGRheSwgQ3R5IEhvYW5nIA0KVmluaCBkYSB4YXkgZHVuZyBoZSB0aG9uZyBu aGEgaGFuZyBQaG8gTmdvaSBkbyBzby4gVmUgc2FuIHRhcCB0ZW5uaXMgKHNvIDcgRGFvIFRhbik6 IA0KdGhlbyBiYW8gY2FvIGN1YSBjbyBjbyB0aGFtIHF1eWVuLCBuYW0gMjAwMiB0aGFuaCBwaG8g SGEgTm9pIGRhIGNobyBsYXAgdGhlbSBtb3Qgc2FuIA0KdGVubmlzIG5heS4NCg0KRGlldSBkYW5n IG5nYWMgbmhpZW4sIHZpZWMgeGF5IGR1bmcgdGhlbSBzYW4gdGVubmlzIG5heSBjaGkgZHVhIHZh byAicGhpZXUgaHVvbmcgZGFuIA0KeHUgbHkgdmFuIGJhbiIgY3VhIG9uZyBOZ3V5ZW4gUXVvYyBU cmlldS1sdWMgZG8gbGEgUGhvIENodSB0aWNoIHRoYW5oIHBobyBreSENCg0KQ2FuIGN1IHZhbyBk bywgc28gR1RDQyBreSBkb25nIGRhdSB2YW8gY29uZyB2YW4geGluIHBoZXAgY3VhIFZ1b24gdGh1 IGNobyB4YXkgDQpkdW5nIHNhbiB0ZW5uaXMgcm9uZyB0b2kgMTIwMCBtMiAoa2hvbmcgbGFtIGNh YyB0aHUgdHVjIGxhcCBkdSBhbiB0aGVvIHF1eSBkaW5oKS4NCg0KTmdheSBzYXUgZG8sIGNvIDMg ZG9uIHZpIGxhIEN0eSBWaWV0IFRoYW5oLCBIb2EgQmluaCwgQ3R5IENvIHBoYW4gdHUgdmFuIGRh dSB0dSB4dWF0IA0KbmhhcCBraGF1IHhheSBkdW5nIFZpZXQgTmFtICJsaWVuIGtldCIga2luaCBk b2FuaCB4YXkgZHVuZyBzYW4gdGFwIHRlbm5pcywgc3UgZHVuZyANCmRpZW4gdGljaCB4YXkgbmhh IHBodSB0cm8gZGUgbGFtIHRydSBzbyB2YSBjYWMgaG9hdCBkb25nIGtoYWMgdGFpIGRheS4NCg0K RHVvYyBiaWV0LCB0YWkgVnVvbiB0aHUgVGh1IGxlIGNvIDEzIGRvbiB2aSBreSBob3AgZG9uZyBs aWVuIGtldCBsaWVuIGRvYW5oIHZvaSBWdW9uIA0KdGh1LCBuZ29haSAxIHNvIGRvbiB2aSBzYWkg cGhhbSBkYSB0dSBuZ3V5ZW4gdGhhbyBkbyBjb25nIHRyaW5oLCBjYWMgZG9uIHZpIGNvbiBsYWkg aGF1IA0KaGV0IGhvYXQgZG9uZyBraW5oIGRvYW5oIGR1bmcgbG9haSBoaW5oLCBjaHVjIG5hbmcg ZHVvYyBVQk5EVFAgSGEgTm9pIGNobyBwaGVwIHRhaSANClFEIHNvIDIyNy9RRC1VQiBuZ2F5IDE2 LzEyLzIwMDUuDQoNClZpZWMgY28gcXVhbiBjaHVjIG5hbmcgYmFvIGNhbyB0aGFuaCBwaG8gZ2l1 IGxhaSAyIHNhbiB0ZW5pcyB2YSBuaHVuZyBjb25nIHRyaW5oIGNvIA0KbmhpZXUgc2FpIHBoYW0g Im51cCBib25nIiBzYW4gdGVubmlzIGxhIGRpZXUgY2FuIHBoYWkgeGVtIHhldC4gRHUgbHVhbiBu Z2hpIHJhbmcsIHBoYWkgDQpjaGFuZyAyIHNhbiB0ZW5uaXMgbmF5IGxhICJzYW4gcGhhbSIgY3Vh IHRoYW5oIHBobyBuZW4gZHVvYyBxdXllbiB0b24gdGFpIT8NCg0KRHVvYyBiaWV0LCBjYWMgZG9u IHZpIGNvIGhvcCBkb25nIGxpZW4ga2V0IHZvaSBDdHkgVnVvbiB0aHUgY28gdG8gY2h1YyBkaWNo IHZ1IHZhbiBob2EtDQp2dWkgY2hvaSBnaWFpIHRyaSwgYW4gdW9uZyBkYSBkb25nIGxvYXQga2ll biBuZ2hpIGxhbmggZGFvIHRoYW5oIHBobyBjbyBodW9uZyB4dSBseSB0aG9hIA0KZGFuZywgdHJl biBjbyBzbyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0IHZhIG5odW5nIHF1eSBkaW5oIG1hIHRoYW5o IHBobyBkYSBiYW4gaGFuaCwgDQp0cm9uZyBkbyBjbyBRRDIyNyBub2kgdHJlbi4NCg0KTmh1IHZh eSwga2hpIGdpYWkgcXV5ZXQgdmFuIGRlIHRhaSBWdW9uIHRodSBUaHUgTGUsIFRoYW5oIHBobyBw aGFpIGNhbiBjdSB2YW8gY2EgDQpuaHVuZyB2YW4gYmFuIGRvIG1pbmggZGEgYmFuIGhhbmgsIHRy YW5oIHZpZWMgZG8gbG9pIG1vdCBjaGlldSBjaG8gY2FwIGR1b2kuDQpOYW0gMjAwNSwgVUJORCBU UCBIYSBOb2kgY28gcXV5ZXQgZGluaCBjaG8gcGhlcCBDdHkgVnVvbiB0aHUgVGh1IGxlIGR1b2Mg aG9hdCANCmRvbmcga2luaCBkb2FuaCBkaWNoIHZ1IHZhbiBob2EtZ2lhaSB0cmksIGFuIHVvbmcg KCE/KQ0KDQpUaGVvIFF1eWV0IGRpbmggMjI3LzIwMDUvUUQtVUIgbmdheSAxNi8xMi8yMDA1IGN1 YSBVQk5EIFRQIEhhIE5vaSBiYW4gaGFuaCANCkRpZXUgbGUgaG9hdCBkb25nIGN1YSBDdHkgVnVv biB0aHUgVGh1IGxlLCB0YWkgZGlldSA4IChraG9hbiAyKSBxdXkgZGluaDoNCg0KVnVvbiB0aHUg ZHVvYyAiZGF5IG1hbmggaG9hdCBkb25nIHNhbiB4dWF0IGtpbmggZG9hbmggZGEgbmdhbmggbmdo ZSwgdHJvbmcgdGFtIGxhOiANClZ1aSBjaG9pIGdpYWkgdHJpLCBkaWNoIHZ1IGFuIHVvbmcgdmEg Y2FjIGxvYWkgZGljaCB2dSBraGFjIG5odSB2YW4gbmdoZSwgdGhlIGR1YyB0aGUgdGhhbywgZHUg bGljaCBzaW5oIHRoYWkuLi4iLg0KDQpUcmVuIGNvIHNvIHF1eWV0IGRpbmggbmF5LCBDdHkgVnVv biB0aHUgZGEga3kga2V0IHRpZXAgY2FjIGhvcCBkb25nIGxpZW4gZG9hbmgsIGxpZW4ga2V0IA0K dm9pIGNhYyBkb24gdmksIGNhIG5oYW4gdG8gY2h1YyBkaWNoIHZ1IG5odSBoaWVuIG5heS4gDQoN Cmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDA4LzEyLzgxODc3Mi8gUXVvYyBIdW5n ICAwNToxNSwgMTYvMTIvMjAwOCAoR01UKzcpDQoNCkhhIE5vaTogQ2h1IHRpY2ggcGh1b25nIGR1 eWV0IGJ1YSBoYW5nIG5naGluIG0yIGRhdCBjb25nDQoNCkhhbmcgbmdhbiBtZXQgdnVvbmcgZGF0 IGR1b2MgY2FwIGdpYXkgY2h1bmcgbmhhbiBxdXllbiBzdSBkdW5nIGRhdCAoR0NOUVNERCkgDQp0 cmVuIGRpZW4gdGljaCBkYSBkdW9jIHRoYW5oIHBobyBxdXkgaG9hY2ggdHJ1IHNvIFVCTkQgcGh1 b25nLCB0cnVvbmcgaG9jLCBraHUgZG8gdGhpIA0KbW9pLi4uIFRhdCBjYSBkZXUgZHVvYyAiZHV5 ZXQiIGJvaSBvbmcgTGUgVmFuIE1hbywgQ2h1IHRpY2ggVUJORCBwaHVvbmcgVGhpbmggDQpMaWV0 LiBUaGFtIGNoaSwgb25nIE1hbyBjb24gY2h1IGRvbmcgY2FwIGNobyBjaGluaCBtaW5oIHZhIG5n dW9pIHRoYW4uLi4gDQoNCkR1eWV0IGhldCEJDQoNClRoZW8gY2FjIGJhbyBjYW8gY3VhIEJhbiBR dWFuIGx5IGR1IGFuIHF1YW4gSG9hbmcgTWFpLCBVQk5EIHF1YW4gSG9hbmcgTWFpIHZhIA0KY2Fj IGNvIHF1YW4gY2h1YyBuYW5nIHRoaSB0YWkgY29uZyB0cmluaCBkdSBhbiBUcnVvbmcgVEhDUyBU aGluaCBMaWV0LCB0dSBuYW0gMjAwNCBkYSANCmNvIGNhYyBxdXlldCBkaW5oIHR1IFNvIHF1eSBo b2FjaCBraWVuIHRydWMgdmEgVUJORCBxdWFuIEhvYW5nIE1haSB2ZSBnaW9pIHRoaWV1IGRpYSAN CmRpZW0sIHF1eWV0IGRpbmggZGF1IHR1LiANCg0KKEFuaDogVHJ1b25nIFRIQ1MgVGhpbmggTGll dCBkYSBkdW9jIHF1eSBob2FjaC4gQW5oOlF1b2MgSHVuZykNCg0KTWFjIGR1IGJpZXQgY2hhYyBu aHUgdGhlIG5odW5nIG9uZyBMZSBWYW4gTWFvLCBDaHUgdGljaCBVQk5EIHBodW9uZyBUaGluaCBM aWV0IGRhIA0KdHJ1YyB0aWVwIGt5IGNhYyBnaWF5IHhhYyBuaGFuIGdpdXAgY2hvIDMwIGhvIGRh biB0aHVvYyBkaWVuIGRhdCBxdXkgaG9hY2ggbmF5IGR1b2MgY2FwIA0Kc28gZG8sIHRhdCBjYSBk aWVuIHJhIHNhdSBxdXkgaG9hY2guIE5oaWV1IGhvIGRhbiBuZ2hpZW0gbmhpZW4gY28gZ2lheSBj aHVuZyBuaGFuIA0KcXV5ZW4gc3UgZHVuZyBkYXQgKEdDTlFTREQpIHZvaSBkaWVuIHRpY2ggaG9u IDEwMG0yIHZhIGR1b2MgcmFvIGJhbiB0aWVuIHR5LiANCg0KQ3UgdGhlLCBvbmcgTWFvIHZhIHRo dW9jIGNhcCBkYSB0aGFtIG11dSBjaG8gbGFuaCBkYW8gVUJORCBxdWFuIGNhcCBHQ05RU0REIA0K Y2hvIDMwIGhvIGdpYSBkaW5oIHZvaSBkaWVuIHRpY2ggNC4wMDIgbTIgZGF0IHRyZW4ga2h1IHZ1 YyBkYSBkdW9jIGNoaW5oIHRoYW5oIHBobyBIYSANCk5vaSB2YSBVQk5EIHF1YW4gSG9hbmcgTWFp IHF1eSBob2FjaCB4YXkgZHVuZyB0cnVvbmcgVEhDUy4gDQoNCkRpZW4gdGljaCBsb24gbmhhdCBs ZW4gdG9pIDIyNW0yLiBDYWMgaG8gZGFuIGR1b2MgY2FwIEdDTlFTREQgbmh1IGhvIFRyaW5oIEh1 dSANClRodTsgRGFuZyBUaGkgTmh1bmc7IExlIFZhbiBDb2k7ICBMZSBUaGkgVGh1eSBIYTsgTGUg SGFpIFRob2FpLi4uIGRldSBkdW9jIG5naGllbSANCm5oaWVuIHNhdSBraGkgZGllbiB0aWNoIGRh dCBkYSBkdW9jIHF1eSBob2FjaC4gTmhpZXUgaG8gZGFuIG8gZGF5IGRhIGNodXllbiBuaHVvbmcg bmhhbmggY2hvbmcga2hpIGNvIEdDTlFTREQuIA0KDQoiQmFuIiBkYXQgdHJ1b25nIGhvYyBjaHVh IHRob2EsIG9uZyBMZSBWYW4gTWFvIGNvbiB0aGFtIG11dSBjaG8gbGFuaCBkYW8gVUJORCANCnF1 YW4gSG9hbmcgTWFpIGNhcCBHQ05RU0REIGNobyAyMSBobyBkYW4gdmFvIGRpZW4gdGljaCBkYXQg ZGEgcXV5IGhvYWNoIHhheSBkdW5nIA0KdHJ1IHNvIFVCTkQgcGh1b25nIFRoaW5oIExpZXQsIGNv bmcgYW4gcGh1b25nIHZvaSBkaWVuIHRpY2ggMS4yNTEgbTIuIA0KDQpOaGlldSBHQ05RU0REIGR1 b2MgVUJORCBwaHVvbmcgbGFtIHRodSB0dWMgY2FwIHZhbyBuYW0gMjAwNywgc2F1IGtoaSBkdSBh biB4YXkgDQpkdW5nIGR1b2MgY2FwIGNvIHRoYW0gcXV5ZW4gcGhlIGR1eWV0LiBDYWMgaG8gZGFu IG5heSBjdW5nIG5oYW5oIGNob25nIGNodXllbiANCm5odW9uZywgbXVhIGJhbi4gTmh1bmcgbmd1 b2kgImNoYW4gdW90IGNoYW4gcmFvIiBkZW4gbXVhIGRhdCBwaGFpIGNoaXUgdGhpZXQgdGhvaSBr aGkgDQpkdW5nIHRydW9jIG5ndXkgY28gYmkgdGh1IGhvaSBzbyBkby4NCg0KS2hvbmcgZHVuZyBs YWkgbyBkbywgZGF0IGRhaSB0cm9uZyBraHUgcXV5IGhvYWNoIHhheSBkdW5nIGtodSBkbyB0aGkg VHJ1bmcgS2VuaCAoRGFwIA0KQ2hpbSkgY3VuZyBjbyBxdXkgaG9hY2ggbmh1bmcgbmhpZXUgaG8g dmFuIGR1b2MgY2FwIHNvIGRvIHNhdSBkby4gUm9pIGhhbmcgbG9hdCBkaWVuIA0KdGljaCB0YWkg a2h1IHF1eSBob2FjaCBjYXkgeGFuaCB0byBkYW4gY3UgMzEsIHRvIDI2Li4uY3VuZyBkdW9jIGNh cCBoZXQuIA0KDQpUaGVvIGRpZXUgdHJhIGN1YSBwaG9uZyB2aWVuLCB0YWkgZGllbiB0aWNoIHF1 eSBob2FjaCBraHUgZG8gdGhpIG1vaSBUcnVuZyBLZW5oLCBvbmcgTGUgDQpWYW4gTWFvIGN1bmcg ZGEgbGFtIHRodSB0dWMgZGUgY2FwIEdDTlFTREQgY2hvIGNhYyBjaHVjIGhvIGRhbiBzYXUga2hp IGtodSBkbyB0aGkgDQpuYXkgZGEgY28gcXV5IGhvYWNoIDEvNTAwLiBEYXkgbGEgbmh1bmcgc2Fp IHBoYW0gbmdoaWVtIHRyb25nIHZhIGtob25nIHRoZSBjaGFwIG5oYW4gDQpkdW9jIGN1YSBvbmcg TGUgVmFuIE1hby4gDQoNClRoZW8gYmFuIGtlIG1hIHBob25nIHZpZW4gY28gZHVvYywga2hvYW5n IDYwIGhvIGRhbiBkdW9jIGNhcCBHQ05RU0REIHNhdSBraGkgZGEgDQpjbyBxdXkgaG9hY2ggY2hp IHRpZXQga2h1LiBIYXUgaGV0IGNhYyBobyBkYW4gZGV1IG8gdG8gMTAgdmEgZHVvYyBjYXAgc28g ZG8gdmFvIG5hbSANCjIwMDYuIEN1IHRoZSBuaHUgY2FjIGhvOiBCdWkgTmdvYyBUaWVwIHZvaSAx MjkgbTI7IExlIE5nb2MgQW4gdm9pIDE1MSBtMjsgTmd1eWVuIA0KVGh1IEh1b25nIHZvaSAxMjAs NCBtMjsgTmd1eWVuIFZhbiBUaGluIHZvaSAxMjEsNCBtMjsgTmd1eWVuIE5hbSAoMjE3IG0yKTsg QnVpIFZhbiBUaG8gDQooMTc5IG0yKTsgQnVpIFZhbiBVeWVuICgxNjUuNSBtMik7IFZ1IEh1dSBN YW8gKDE4MCBtMikuLi4NCg0KQ2FwIGRhdCBjaG8gY2EgaG8gaGFuZywgZ2lhIGRpbmgNCg0KVGFp IGtodSBkYXQgcXV5IGhvYWNoIGNheSB4YW5oIHRvIDMxLCBvbmcgTGUgVmFuIE1hbyBjdW5nIGNo aSBkYW8gY2hvIGNhYyB0aHVvYyBjYXAgDQpjdWEgbWluaCBjYXAgR0NOUVNERCBjaG8gNjggaG8g ZGFuLiBUcm9uZyBzbyBkbyBjbyBuaGlldSBuZ3VvaSBsYSBsYSBiYSBjb24gdGhhbiANCnRodW9j IGN1YSBvbmcgTGUgIFZhbiBNYW8uIERhYyBiaWV0LCBnaWEgZGluaCBvbmcgTWFvIGN1bmcgZHVv YyBjYXAuIERpZW4gdGljaCBxdXkgDQpob2FjaCBjYXkgeGFuaCBtYSBuaGEgb25nIE1hbyBkdW9j IGNhcCBHQ05RU0REIG8gdG8gMzEgbGEgMTI2bTIuIA0KDQooQW5oOiBLaHUgZG8gdGhpIG1vaSBU cnVuZyBLZW5oIGN1bmcgY28gcXV5IGhvYWNoLiAgQW5oOlF1b2MgSHVuZykNCg0KVGhlbyBxdXkg dHJpbmggY2FwIEdDTlFTRCB0aGkgY2FjIGhvIGRhbiBjbyBkYXQsIGNvIG5ndXllbiB2b25nIHRo aSByYSBVQk5EIHBodW9uZyANCnhpbiBobyBzbyB2ZSBrZSBraGFpLiBTYXUgZG8gbm9wIGxhaSBj aG8gVUJORCBwaHVvbmcgdmEgQ2h1IHRpY2ggVUJORCBwaHVvbmcgTGUgDQpWYW4gTWFvIGxhIG5n dW9pIGt5IGNhYyBnaWF5IHhhYyBuaGFuIGRlIGhvIHNvIGF5IGR1b2MgY2h1eWVuIGxlbiBjYXAg aGFuaCBjaGluaCBxdWFuIA0KeGVtIHhldCBjYXAuIA0KDQpOaHUgdGhlLCBjaGluaCBxdXllbiBj byBzbyBsYSBub2kgbmFtIGR1b2MgdGhvbmcgdGluLCBjYWMgZGUgeHVhdCBsYSBjaHVhbiB4YWMg bmhhdCB2YSANCnBoYWkgY2hpdSB0cmFjaCBuaGllbS4gVHV5IG5oaWVuIHRyYWNoIG5oaWVtIGto b25nIHRoZSBiYWMgYm8gdHJvbmcgdmllYyBuYXkgbGllbiBxdWFuIA0KdG9pIGxhbmggZGFvIFVC TkQgcXVhbiBIb2FuZyBNYWkgdmEgcGhvbmcgVGFpIG5ndXllbiBtb2kgdHJ1b25nLiANCg0KVmll YyBvbmcgTGUgVmFuIE1hbyBnaXVwIGNobyBuaGlldSBuZ3VvaSBkYW4gZHVvYyBjYXAgZGF0IHRy b25nIGNhYyB2aSB0cmkgcXV5IGhvYWNoIA0KaGllbiBuYXkga2hvbmcgY2hpIGdheSBraG8ga2hh biBjaG8gdGllbiBkbyB0aHVjIGhpZW4gY2FjIGR1IGFuIG1hIGNvbiBraGllbiBjaG8gZHUgDQps dWFuIHF1YW4gY2h1bmcgbmhhbiBkYW4gdmEgY2FuIGJvLCBkYW5nIHZpZW4gdHJvbmcgcGh1b25n IGxhdSBuYXkgcmF0IGJ1YyB4dWMuIA0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi9uZXdz ZGV0YWlsL1hhLWhvaS8zNTIyNTEvaGEtbm9pLWxpZW4tdHVjLXhheS1yYS10YWktbmFuLWdpYW8t dGhvbmctbmdoaWVtLXRyb25nLmh0bSAxMS8wNy8yMDEwIDA3OjQwIA0KDQpIYSBOb2k6IExpZW4g dHVjIHhheSByYSB0YWkgbmFuIGdpYW8gdGhvbmcgbmdoaWVtIHRyb25nICAgDQoNCmh0dHA6Ly93 d3cuYmFvbW9pLmNvbS9JbmZvL0hhLU5vaS0tVGF1LWhvYS1kYW0tby10by01LW5ndW9pLWNoZXQt dmEtYmktdGh1b25nLzE0MS80NjE3ODc4LmVwaSBUaWVuIFBob25nICA3LzIwMTAgDQoNCkhhIE5v aTogVGF1IGhvYSBkYW0gbyB0bywgNSBuZ3VvaSBjaGV0IHZhIGJpIHRodW9uZyAoa2h1IHZ1YyBU aGFuaCBUcmkgliBIYSBOb2kpIA0KDQpodHRwOi8vbXkub3BlcmEuY29tL3RpbmhoaW5oZ2lhb3Ro b25nL2Jsb2cvMjAwNy8wNC8wMy9oYS1ub2ktdGFpLW5hbi1naWFvLXRob25nLW5naGllbS10cm9u Zy1sYW0tNy1uZ3VvaS1jaGV0IDMvNC8yMDA3LCAxMzo0OSANCg0KSGEgTm9pOiBUYWkgbmFuIGdp YW8gdGhvbmcgbmdoaWVtIHRyb25nIGxhbSA3IG5ndW9pIGNoZXQgKGtodSB2dWMgR2lhIExhbSAt IEhhIE5vaSkgDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDA5LzExLzNCQTE1 RUMzLyAyMy8xMS8yMDA5LCAwMDowNCBHTVQrNw0KDQpIYSBOb2k6IFRhdSBob2EgaHVjIG90byBj aG8gZGFtIGhvaSwgOSBuZ3VvaSBjaGV0IChvIFRodW9uZyBUaW4gLSBIYSBOb2kpDQoNCmh0dHA6 Ly93d3cudGFpbmd1eWVubW9pdHJ1b25nLmNvbS52bi90aG9pLXN1LXhhLWhvaS9oYS1ub2ktdGFp LW5hbi1naWFvLXRob25nLW5naGllbS10cm9uZy1sYW0tMy1uZ3VvaS1jaGV0IDI2LzA4LzIwMTAg DQoNCkhhIE5vaTogVGFpIG5hbiBnaWFvIHRob25nIG5naGllbSB0cm9uZyBsYW0gMyBuZ3VvaSBj aGV0IChraHUgdnVjIFBoYXAgVmFuIJYgSGEgTm9pKSAgDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZu L2MyMC9zMjAtMjQ2NjQxL3RhdS1ob2EtZGFtLW8tdG8tY2FtcnktdmFuZy14YS0xMG0tMi1uZ3Vv aS1jaGV0Lmh0bSBUdWFuIEhvcCAxNi8wOC8yMDA4IC0gMTA6MjEgDQoNCkhhIE5vaTogVGF1IGhv YSBkYW0gbyB0byAyIG5ndW9pIGNoZXQsIDggbmd1b2kga2hhYyBiaSB0aHVvbmcgbmFuZyAobyBr aHUgdnVjIEdpYSBMYW0gLSBIYSBOb2kpIA0KDQpEb2FuIHhheSByYSB2dSB0YWkgbmFuIGdpYW8g bmhhdSBnaXVhIGR1b25nIGJvIHZhIGR1b25nIHNhdCBraG9uZyBjbyBiYXJpZSwgbGFpIGtodWF0 IHRhbSBuaGluLg0KDQpNb3QgY2FuIGJvIGNvbmcgYW4gcXVhbiBMb25nIEJpZW4gYnVjIHh1YyBu b2k6IENodW5nIHRvaSBkYSBjYW5oIGJhbyByYXQgbmhpZXUgbGFuIHZvaSANCm5nYW5oIGR1b25n IHNhdCwgcmFuZywgZGF5IGxhIGRvYW4gY3VhIGtodWF0IHRhbSBuaGluLCByYXQgZGUgeGF5IHJh IHRhaSBuYW4sIGRlIG5naGkgbGFtIGJhcmllLCBuaHVuZyBtYWkgZGVuIG5heSB2YW4gY2h1YSBj by4gDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9oYV9ub2lfNDlfbmd1b2lfY2hldF92aV90YWlf bmFuX2dpYW9fdGhvbmdfdHJvbmdfdGhhbmdfNi02LTIxNDQ5ODIzLmh0bWwgMDcvMDcvMjAwOSAt IDE2OjQzIC0gTmd1b246IHZuTWVkaWEudm4gDQoNCkhhIE5vaTogNDkgbmd1b2kgY2hldCB2aSB0 YWkgbmFuIGdpYW8gdGhvbmcgdHJvbmcgdGhhbmcgNiANCg0KaHR0cDovL3RpbnR1Yy50aW1uaGFu aC5jb20veGEtaG9pL2FuLXRvYW4tZ2lhby10aG9uZy8yMDA4MTIwNi8zNUE4QjQ4MC9IYS1Ob2kt VGFpLW5hbi1naWFvLXRob25nLXRhbmctZG90LWJpZW4uaHRtIDA2LzEyLzIwMDggMTQ6NTU6MDIg DQoNCkhhIE5vaTogVGFpIG5hbiBnaWFvIHRob25nIHRhbmcgZG90IGJpZW4gDQoNClRyb25nIHRo YW5nIDExLCB0YWkgbmFuIGdpYW8gdGhvbmcgdGFpIEhhIE5vaSB0YW5nIGNhIDMgdGlldSBjaGk6 IHNvIHZ1LCBzbyBuZ3VvaSBjaGV0IHZhIA0Kc28gbmd1b2kgYmkgdGh1b25nLiBUcnVuZyBiaW5o IG1vaSBuZ2F5IHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gY28gaG9uIDIgbmd1b2kgY2hldCB2aSAN CnRhaSBuYW4gZ2lhbyB0aG9uZy4gDQoNCkN1IHRoZSwgdGFpIEhhIE5vaSB0cm9uZyB0aGFuZyAx MSBkYSB4YXkgcmEgOTkgdnUgdGFpIG5hbiBnaWFvIHRob25nICh0YW5nIDIwIHZ1IHNvIHZvaSAN CnRoYW5nIHRydW9jKSwgbGFtIDcyIG5ndW9pIGNoZXQgKHRhbmcgMjAgbmd1b2kpLCA0NCBuZ3Vv aSBiaSB0aHVvbmcgKHRhbmcgNCBuZ3VvaSkuIA0KDQpUYWkgbmFuIGdpYW8gdGhvbmcgdGFuZyBv IGNhYyBkaWEgYmFuIEhvYW4gS2llbSwgSG9hbmcgTWFpLCBMb25nIEJpZW4sIEdpYSBMYW0sIA0K RG9uZyBBbmgsIFNvYyBTb24sIFNvbiBUYXksIENodW9uZyBNeSwgVGh1b25nIFRpbiwgUGh1IFh1 eWVuLCBRdW9jIE9haSwgVGhhY2ggDQpUaGF0LCBIb2FpIER1YywgRGFuIFBodW9uZywgUGh1YyBU aG8sIEJhIFZpLCBNZSBMaW5oLiANCkR1bmcgdmkgdHJpICJ0b3AiIHZlIHNvIHZ1IFROR1Qgbmdo aWVtIHRyb25nIG5oaWV1IG5oYXQgbGEgTG9uZyBCaWVuLCBHaWEgTGFtLCBDaHVvbmcgTXksIFRo dW9uZyBUaW4uIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA4L0Jv LUNoaW5oLXRyaS1kb25nLXRpbmgtcGh1b25nLWFuLW5oYW4tc3UtY3VhLUhhLU5vaS05MzIxNzkv IFRUWFZOICAyMzoyMywgMjcvMDgvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogDQoNCi0gQ29uZyB0 YWMgcXV5IGhvYWNoLCB4YXkgZHVuZyB2YSBxdWFuIGx5IGRvIHRoaSBjb24gbmhpZXUgeWV1IGtl bTsgDQotIEhlIHRob25nIGhhIHRhbmcgZG8gdGhpIHZhIG5vbmcgdGhvbiBjaHVhIGRvbmcgYm8s IGNodWEgZGFwIHVuZyBkdW9jIHlldSBjYXUgeGF5IGR1bmcgdmEgcGhhdCB0cmllbiBUaHUgZG87 IA0KLSBOaGlldSB2YW4gZGUgdG9uIHRhaSBsYXUgbmF5IChxdWFuIGx5IHF1eSBob2FjaCwgZGF0 IGRhaSwgdHJhdCB0dSB4YXkgZHVuZywgdW5nIG5nYXAsIG8gDQpuaGllbSBtb2kgdHJ1b25nLCB1 biB0YWMgZ2lhbyB0aG9uZy4uLikgdHV5IGRhIHRhcCB0cnVuZyBnaWFpIHF1eWV0LCBuaHVuZyBj aHVhIGRhdCB5ZXUgY2F1LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdmFuaG9hLzIwMTAxMC9O aGEtdmFuLWR1Yy1jaG9hbmctdmFuZy12aS1naWFvLXRob25nLUhhLU5vaS05NDE1MDcvIEp1bGkg WmVoIDE2OjA4LCAxMS8xMC8yMDEwIChHTVQrNykNCg0KQ2hvYW5nIHZhbmcgdmkgZ2lhbyB0aG9u ZyBIYSBOb2k6IE5ndW9pIEhhIE5vaSBkYW5nIGxhbSAneGllYyB0YXAgdGhlJz8NCg0KLSAiRGF5 IGtob25nIHBoYWkgbGEgZ2lhbyB0aG9uZyBudWEsIG1hIGxhIG1vdCBtYW4geGllYyB0YXAgdGhl LiBUb2kga2hvbmcgaGUgYmlldCByYW5nIA0KY28gbmhpZXUgeGUgbWF5IGRlbiB0aGUgeGVwIGxv dCB0cmVuIGR1b25nLCBuaHUgdGhlIG51b2MgY2hheSB0cmVuIHNvbmcgdmF5Ii4gDQoNCkN1bmcg dGhlIGhlIHZvaSBEYW5pZWwgS2VobG1hbm4gdmEgSnVkaXRoIEhlcnJtYW4sIEp1bGkgWmVoIChz biAxOTc0KSBkdW9jIGRhbmggZ2lhIA0KbGEgbW90IHRyb25nIG5odW5nIG5oYSB2YW4gdHJlIHRh aSBuYW5nIG5oYXQgY3VhIER1YyBoaWVuIG5heS4gTGFuIGRhdSB0aWVuIHRvaSBWaWV0IA0KTmFt LCBKdWxpIFplaCBzZSBkaSBkb2MgdHUgQmFjIHRvaSBOYW0uIENoaSBzZSBkdW5nIGNoYW4gbyBN YWkgQ2hhdSwgSGEgTm9pLCBIYSANCkxvbmcsIEhvYSBMdSwgSHVlLCBIb2kgQW4sIE5oYSBUcmFu ZyB2YSBUUCBIbyBDaGkgTWluaC4gRG9jIGR1b25nIGhhbmggdHJpbmgsIGNoaSANCmRhIHZpZXQg cmEgbmh1bmcgdHJhaSBuZ2hpZW0gY3VhIG1pbmggZHVvaSBkYW5nIG5oYXQga2kgZHUgbGljaCB2 YSBndWkgY2hvIFZpZXRuYW1OZXQuIA0KDQooQW5oOiBKdWxpIFplaCB0YWkgYnVvaSBnaWFvIGx1 dSB2b2kgZG9jIGdpYSBIYSBOb2kgdGFpIFZpZW4gR29ldGhlIHRoYW5nIDEwLzIwMTAuKQ0KDQpY aW4gZ2lvaSB0aGlldSBiYWkgdmlldCBkYXUgdGllbiBjdWEgSnVsaSBaZWggdm9pIHR1YSBLaG9p IGhhbmguIEFuIHR1b25nIGRhdSB0aWVuIHZlIEhhIA0KTm9pIHZvaSBiYW4gZGljaCBjdWEgVmll biBHb2V0aGUgSGEgTm9pLg0KDQpLaGFwIEJlcmxpbiwgbmh1bmcgY29uIG5ndWEgY2h1bSBhbyBt dWEgZHVuZyBkYW0gY2hhbiB0cmVuIG5odW5nIGNhbmggZG9uZywgdGFpIHJ1IA0KeHVvbmcuIE8g SGEgTm9pIGN1bmcgdGhlLCB0aGVvIHRpbiB0dSBJbnRlcm5ldCwgY3VuZyBtdWEsIG1hIG11YSBj b24gZHVvYyBkdSBiYW8gc2UgDQprZW8gZGFpIGRlbiBoZXQgdHVhbiBzYXUgbnVhLiBOaHVuZyBu aGlldCBkbyBvIGRvIGtob25nIHBoYWkgOCBkbyBDLCBtYSBsYSAzNSBkbyBDLiBLaGkgDQpjaHVh biBiaSBkbyBkYWMsIHRvaSBtb2kgY2hvdCBwaGF0IGhpZW4gcmEgcmFuZyBtaW5oIGtob25nIGNv IGNhaSBhbyBtdWEgbmFvIGNhLiBPaSwgDQpraG9uZyBsZSB0cm9uZyBzdW90IDM2IG5hbSBxdWEs IHRvaSBjaHVhIHR1bmcgY2FuIGRlbiBhbyBtdWEgaGF5IHNhbyAtIG1hIGxhaSBvIER1YyBudWEg Y28gZGF5Pw0KDQpNZXQgbmh1IHR1OiBDYWkgbWVvIGNobyBtb2kgY2h1eWVuIHJhIGRpIGxhOiBu aHVuZyB0dWFuIHRydW9jIGRvLCBiYW4gY28gY2EgbnVpIHZpZWMgDQpwaGFpIGxhbSwgZGVuIG5v aSBzYXUgZG8gYmFuIG1ldCB0b2kgbXVjIHRodWMgc3UgbXVvbiBuZ2hpIG5nb2kuIE1vdCBsb2F0 IGNhYyBuaGEgY3VuZyANCmNhcCBob3AgZG9uZyBkb3QgbmhpZW4gdGhheSByYW5nLCBobyBjYW4g dG9pIGd1aSBnYXAgbW90IGJhaSB2aWV0LCBtb3QgY2h1b25nIHRyaW5oLCBtb3QgDQpjdW9jIHBo b25nIHZhbiwgaG9hYyBobyBtdW9uIHRvaSBwaGFpIGR1YSByYSBtb3QgcXV5ZXQgZGluaCBuYW8g ZG8uIE5odSB0aGUgY28gbmd1eSANCmNvIHRvaSBzZSBraG9uZyB0cm8gdmUgbnVhLiBWb2kgY2Ft IGdpYWMga2hvYWkgdHJhLCB0b2kgZGF0IG1vdCBob3AgdGh1IGRpZW4gdHUgdHUgZG9uZywgDQpu b2kgcmFuZywgdHJvbmcgdGhvaSBnaWFuIHRvaSBkaSB2YW5nIHRhdCBjYSBFLW1haWwgZ3VpIGRl biBzZSwgdGh1IG5oYXQsIGtob25nIGR1b2MgZG9jLCANCnZhIHRodSBoYWksIHNlIHR1IGRvbmcg YmkgeG9hIChtb3QgdmllYyBjaGFuZyBraG8ga2hhbiBnaSkuIE5odW5nIHRodWMgcmEgY2EgaGFp IGRldSANCmtob25nIGR1bmcsIGJvaSB0b2kgbmdoZSBub2ksIG8gVmlldCBOYW0gbmd1b2kgdGEg Y28gdGhlIHRydXkgY2FwIEludGVybmV0IGNvbmcgY29uZyBjb24gDQpkZSBob24gbyBCcmFuZGVu YnVyZyBuaGlldS4gTmh1bmcgZHUgc2FvLCBtb3QgaG9wIHRodSB0dSBkb25nIG5odSB0aGUgaXQg cmEgY3VuZyBjbyB0YWMgZHVuZyBuaHUgbW90IHJhbyBjaGFuIHZheS4NCg0KQ2FtIG5hbmcgZHUg bGljaCBWaWV0IE5hbSwgQ2FtIG5hbmcgZHUgbGljaCBUaGFpIExhbiwgQ2FtIG5hbmcgZHUgbGlj aCBUcnVuZyBRdW9jLCANCkNhbSBuYW5nIGR1IGxpY2ggQ2FtcHVjaGlhIGRhdCBjYW5oIG5oYXUg dGFpIHF1YXkgY2hhdSBBIHRhaSBraHUgdnVjIENoZWNrLWluIGN1YSANClNhbiBiYXkgcXVvYyB0 ZSBGcmFua2Z1cnQuIEFuIHR1b25nIGRhdSB0aWVuIHZlIGRhdCBudW9jIHZhIGNvbiBuZ3VvaTog bmh1bmcgcGh1IG51IA0KeGluaCB4aW5oLCBuaHVuZyBkdWEgdHJlIG5nb2FuIG5nb2FuLCBuaHVu ZyBuZ3VvaSBkYW4gb25nIGNoYXQgcGhhYy4gVGF0IGNhIGRldSBraGllbiANCmJhbiBjbyB0aGUg YmF0IGN1b2ksIG1hYyBkdSBoYW5nIG5ndW9pIGR1bmcgeGVwIGhhbmcgdHJ1b2MgcXVheSBrZW8g ZGFpIG5odSB0aGUgZGVuIA0KSGEgTm9pIHZheS4NCg0KQ28gY2FtIGdpYWMgdGh1IHR1YyB4dWF0 IGNhbmggY2hvIG1vaSBoYW5oIGtoYWNoIGtlbyBkYWkgY2EgbnVhIHRpZW5nOiBRdWFuZyBjYW5o IA0KeHVuZyBxdWFuaCBoYW5nIG5ndW9pIHRyb25nIGdpb25nIG5odSBvIG1vdCBjb25nIHR5IHZh biB0YWkgdmF5LiBOaHVuZyBoYW5oIGtoYWNoIA0KVmlldCBOYW0gZGkgY3VuZyBjaHV5ZW4gbWFu ZyB0aGVvIGR1IHRodSB2ZSBIYSBOb2ksIG5hbyBsYSBsbyB2aSBzb25nLCBtYXkgdHJvbiwgbWF5 IA0KaHV0IGJ1aSwgbWF5IGluIGxhc2VyLCB0aGFtIGNoaSBjYSBub2kgY29tIGRpZW4gbnVhLiBN b3QgdmkgY29uIG1hbmcgdGhlbyBuZ3V5ZW4gY2EgYm8gDQpob3AgdGFtLCBiYW8gZ29tIGJlLCB0 aGFuaCB2YSBwaHUga2llbiwgZHVuZyB0cm9uZyBuYW0gdGh1bmcgY2FjLXRvbmcga2hvbmcgbG8u IA0KDQpNYWRlIGluIFZpZXRuYW06IENvIGxlIG1vdCBudWEgc28gcXVhIHRhbmcgY29uZyBrZW5o IG5heSBkYW5nIHRyZW4gZHVvbmcgdHJvIHZlIHF1ZSANCmh1b25nIGN1YSBubywgZGF0IGhvbiBo YWkgbXVvaSBsYW4sIG5obyBkdW9jIGNhcCBuaGFuIGhpZXUgY2hhdCBsdW9uZyBoYW5nIGhvYSBE dWMgDQp0aGVvIG1vdCBjYWNoIG5hbyBkYXksIHF1YSBjdWEgaGFpIHF1YW4gRnJhbmtmdXJ0LiBO aHUgdGhlIHRhaSB0b2kgbmdoZSBkdW9jIG5odW5nIGxvaSANCm5heSB0dSBuaHVuZyBuZ3VvaSB0 aGFuIG8gSGEgTm9pOiAiUXVhdCBtYXkgbWllbiBjaGUuIE9uZyBhbmggdG8gdnVhIG1hbmcgdHUg RHVjIHZlIA0KZGF5ISIuIFRvaSBuaGluIHh1b25nIHRyYW5nIHBodWMgY3VhIG1pbmg6IEFvIGto b2FjIGhpZXUgSmFjay1Xb2xmc2tpbiwgZGVwIHF1YWkgaGF1IA0KaGlldSBOaWtlIJYgdGF0IGNh IGRldSBtYWRlIGluIFZpZXRuYW0uDQoNClRyZW4gdGh1YyB0ZTogQmFuIGNvIHRoZSBuaGFuIHJh IG5nYXkgZGFuIFRheSBBdSBkdSBsaWNoIGNoYXUgQSBraGkgbmhpbiB2YW8gbmh1bmcgYmEgDQps byBuaHVhLCBxdWFuIG5odWEsIGFvIG5odWEsIGdpYXkgdGhlIHRoYW8gbmh1YSwgdHVpIGJ1b2Mg YnVuZyBuaHVhIHZhIHR1aSB4YWNoIHRheSANCm5odWEuIERhbiBvbmcgaGF5IGRhbiBiYSCWIG1v aSBuZ3VvaSBkdSBsaWNoIGRldSBtYW5nIHRyZW4gbWluaCBpdCBuaGF0IG5hbSB0aHUgY3VhIA0K Y2FjIGhhbmcgIkphY2sgV29sZnNraW4iIGhvYWMgIlRoZSBOb3J0aGVybiBGYWNlIi4gQ3Ugbmh1 IHRoZSB0aGUgZ2lvaSBiZW4gbmdvYWkga2hvaSANCkxpZW4gaGllcCBDaGF1IEF1IGxhIG1vdCBj dW9jIGxlbyBudWkgSGltYWxheWEgZHV5IG5oYXQgdmF5Lg0KDQpLaGkgZGkgdG9pIGNvIG1hbmcg dGhlbyBtb3QgY2F1LCBtb3QgY2F1IGNob3QgZGVuIHZvaSB0b2kgc2FuZyBuYXkga2hpIHRpbmgg ZGF5LCBuaHVuZyANCnZpIHZvaSBjaHVhbiBiaSBuZW4gdG9pIGRhIGtob25nIGdoaSBsYWk6ICJD byBjYW0gdGhheSBuaHUgdGhlIG1pbmggdnVhIGJ1b2MgcmEga2hvaSANCm1vdCBidWEgdGllYyB0 aGFuaCBjb25nLCBkZSBoaXQgdGhvIGtob25nIGtoaSB0cm9uZyBsYW5oIG5nb2FpIGN1YSB0cm9u ZyBjaG9jIGxhdCwgdmEga2hpIA0KY28gcXVheSB0cm8gbGFpIHRoaSBkb3QgbmhpZW4gbW90IG5n dW9pIGRhbiBvbmcgbmdvaSBjaGFuIGN1YSBkb2kgY28gcGhhaSB0cmluaCBnaWF5IG1vaSwgDQpu ZXUga2hvbmcgc2Uga2hvbmcgY2hvIGNvIHZhbyB0cm8gbGFpIJYgdGhlIGxhIGN1b2MgZG9pIGNv IHRybyB0aGFuaCBtb3QgeGEgaG9pIGtoZXAga2luLCANCnZhIGNvIGxhIGtlIGR1bmcgbmdvYWku Ig0KDQpDYW0gZ2lhYyBiYXkgbmh1IHRoZSBuYW0gdHJvbmcgbmhhIHRodW9uZyB2YXk6IE1hdCBu b25nLCB0YWkgbmFuZywgbXVpIGNoYXksIGNvIHJhdC4gDQpDbyBxdWFwIGNoYW4gZGVtLCBjaHVu ZyB0b2kgbmdvaSBjdW5nIGRvIGtoaSBidWEgYW4gdG9pIGRhIGR1b2MgdGlldSBob2EgaGV0IHR1 IGxhdSwgZGFpIA0KY28gZG9pIGNvIHRpZXAgdmllbiByYXUgcmkgdHJvbmcgYm8gYW8gZG8gY3Vh IEhhbmcgaGFuZyBraG9uZyBWaWV0IE5hbSBkZW4gZG9uIGRlIA0KY2h1bmcgdG9pIGNvIHRoZSBk dW5nIGRheSB2YW8gbmhhIHZlIHNpbmguIER1b2kgdGFtIGRlbSwgY3UgcGhhaSBkYW0gY2hhbiBj aG8gbWF1IGRvIA0KZG9uIHh1b25nLiBUaGluaCB0aG9hbmcgbGFpIHRoZW0gdGh1b25nIGdoZW4g dGkgbmhpbiBxdWEgdGFtIGNoYW4gbGVuIGtob2FuZyBoYW5nIA0KbmhhdCBkYW5oIGNobyBjYWMg ImNvbiBiZW5oIiBnaWF1IGNvLiBUaXZpIGN1IGJhdCwgY2FtIGdpYWMgZGF1IGUgYW0ga2hhcCBu Z3VvaSwga2hvbmcgDQp0aGUgbmd1IGR1b2MuIFRob2kgY3Uga2UgbW9pIHN1OiBjbyBsZSBtb2kg Y2h1eWVuIHNlIHRvdCB2YSBiYW4gc2Ugc29tIGR1b2MgZ2lhaSB0aG9hdCANCnRob2kuDQpUaWVu ZyBxdWV0IGR1b25nIGJhbmcgY2hhdCBjaHVhIGtlbyBkYWkga2hpIG1heSBiYXkgaGEgY2FuaCwg dmEgY2hhbSBkdXQuIE1vIGN1YTogSGEgDQpOb2kuIE1ldCBuaHUgbmd1b2kuIEtob25nIGtoaSBu b25nIGhhbSBoYXAuIE5odW5nIHZldCBzYW5nIHhldCBxdWEgdnVuIHZ1dC4gVGh1YyB0ZSANCmRv IGxhIG5odW5nIHZldCBzYW5nIHBoYXQgcmEgdHUgbmh1bmcgZG9pIGRheSB0aGUgdGhhbyBjdWEg bmh1bmcgY2F1IGJlLCBnaW9uZyBuaHUgDQpuaHVuZyB2ZXQgc2FuZyBvIG1vdCBzYW4gbmhheSBk aXNjbyB2YXkuDQoNCk5oaWV1IHRoYW5oIHBobyBsb24gdHJlbiB0aGUgZ2lvaSBub2kgdGllbmcg dmkgZ2lhbyB0aG9uZyBob24gbG9hbiwgbmh1IHRoZSBtb3Qga2hpIGxhIA0Kbmd1b2kgbnVvYyBu Z29haSBiaSB0aGEgdmFvIGRvIHRoaSBiYW4gc2Uga2hvIG1hIHNvbmcgbm9pLiBQYXJpcywgUm9t YSwgQmFjIEtpbmgsIE5ldyANCllvcmssIE1vc2NvdywgdGhhbSBjaGkgbmdheSBjYSBCZXJsaW4g Y3VuZyB2YXkuIE5odSB0aGUgdGFjIGR1b25nIGxhIGNodXllbiBkdW9uZyANCm5oaWVuIG8gY2Fj IGRhaSBkbyB0aGksIGdpb25nIG5odSBtb3QgYW5oIGdhYyBjdWEgZHVvbmcgbmhpZW4gcGhhaSBj byBkb2kgYmFwIHRheSBsdWMgDQpsdW9uZyB2YXkuIE8gbmh1bmcgbm9pIGF5LCB0YXQgY2EgZGV1 IGNvIHBoYW4gcXVheSBjdW9uZy4gTmh1bmcgbWEgbyBkYXksIG1vbmcgQ2h1YSANCmxhbSBjaHVu ZyBjaG8gdG9pISBNb2kgdGh1IGNvbiBxdWF5IGN1b25nIGdhcCBkb2ksIGtob25nLCBnYXAgY2Eg bXVvaSBsYW4gbmh1IHRoZSEgDQpEYXkga2hvbmcgcGhhaSBsYSBnaWFvIHRob25nIG51YSwgbWEg bGEgbW90IG1hbiB4aWVjIHRhcCB0aGUuIFRvaSBraG9uZyBoZSBiaWV0IHJhbmcgY28gDQpuaGll dSB4ZSBtYXkgZGVuIHRoZSB4ZXAgbG90IHRyZW4gZHVvbmcsIG5odSB0aGUgbnVvYyBjaGF5IHRy ZW4gc29uZyB2YXkuIA0KDQpUb2kga2hvbmcgaGUgYmlldCByYW5nIG1vdCBnaWEgZGluaCBnb20g dm8gY2hvbmcgdm9pIGhhaSBkdWEgY29uIGNvIHRoZSB0aG9haSBtYWkgbmdvaSANCmxvdCB0cmVu IG1vdCBjaGllYyB4ZSBWZXNwYS4gVG9pIGtob25nIGJpZXQgcmFuZyBuZ3VvaSB0YSBsYWkgY28g dGhlIGNobyBuZ3V5ZW4gY2EgbW90IA0KY2FpIHR1IGRhIGJhbmcgeGUgbWF5LiBUb2kga2hvbmcg aGUgYmlldCByYW5nLCBuZ3VvaSB0YSB2dWEgY28gdGhlIGh1dCB0aHVvYywgdnVhIGdvaSANCmRp ZW4gdGhvYWksIHZ1YSBnaXUgbW90IGR1YSBiZSB0cm9uZyBsb25nLCB0cm9uZyBraGkgdmFuIGRh bmcgbGFpIHhlIG1heS4gTW9pIGNoaWVjIHhlIA0KY2hheSB0cmVuIGR1b25nIGNoaSBjbyB2dWEg ZHUgY2hvIGJhbmcgY2hpbmggZG8gbG9uIGN1YSBubywgYm9pIHZpIG5nYXkgc2F0IGNhbmggY2hp ZWMgDQp4ZSBkbyBsYSBuaHVuZyBjaGllYyB4ZSBraGFjLiBUaGluaCB0aG9hbmcgY3VuZyBjbyBv dG8sIHZhaSBuZ3VvaSBkaSB4ZSBkYXAgdmEga2hhY2ggZGkgDQpibyAoY2h1bmcgdG9pIGhheSB2 YWkga2hhY2ggVGF5IGJhbG8ga2hhYykuIA0KDQpOaHUgdGhlIG1vdCBkb25nIHNvbmcsIHRhYy1w aGFtLW5naGUtdGh1YXQtdG9uZy10aGUgbmF5IGtob25nIGNoaSBjaHV5ZW4gZG9uZyB2ZSANCm1v dCBodW9uZywgbWEgdHJhbiByYSBkdSBtb2kgaHVvbmcuIE5vIGhvYSB2YW8sIG5vIHRhY2ggcmEs IG5vIHF1YW4gbGF5IG5oYXUsIG5vIGRhbiANCmNhaSBuaGF1LiBObyB0dSB0cm9pIGNoYXkga2hv bmcgbmd1bmcgbmdoaS4gTW90IGhvYXQgY2FuaCB0aGllbiBuaGllbiBraSB2aSwgaGluaCB0aGFu aCANCnR1IHF1YSB0cmluaCBjbyBnaW9pIGhvYSBuaGFuaCBjaG9uZyBrZXQgaG9wIHZvaSBzdSB2 YW5nIGJvbmcgdHJpZXQgZGUgY3VhIHRhdCBjYSBjYWMgbG9haSANCmhpbmggZ2lhbyB0aG9uZyBj b25nIGNvbmcgZG8gdGhpLiBPIEhhIE5vaSBraG9uZyBjbyB0YXUgZGllbiBuZ2FtLCBraG9uZyBj byB0YXUgZGllbiANCnRyZW4gbWF0IGRhdCwga2hvbmcgY28gdGF1IG5vaSB0aW5oLCBraG9uZyBj byB0YXUgdHJlbiBraG9uZy4gQ2hpIGNvIG1vdCB2YWkgdHV5ZW4geGUgDQpidXl0IGdhbiBuaHUg dm8gaGluaCB2b2kgbmh1bmcgY2h1eWVuIHhlIGN1IG5odSB0aGUgbWF0IGh1dCBvIGRhdSBkbyB2 aSB0YWMgZHVvbmcuIA0KTmV1IG1vdCBuZ2F5IG5hbyBkbyBtb2kgbmd1b2kgZGFuIG8gZGF5IGRl dSBkdSBnaWF1IGNvIGRlIGNvIHRoZSBzYW0gbyB0byByaWVuZywgaGF5IA0KbW90IG5nYXkga2lh IFZpZXQgTmFtIGJpIFdUTyBlcCBwaGFpIGJvIG11YyB0aHVlIDIwMCUgY2hvIG8gdG8gbmhhcCBr aGF1LCBjbyBsZSANCm1vaSBzdSBzZSBjaGFtIGR1dCB2b2kgZ2lhbyB0aG9uZyBvIGRheS4NCg0K QmFpIHNhdTogRG9pIHF1YW4gY3VvcCBuaGEgYmFuZyBzYWMgc28gDQoNCkp1bGkgWmVoIHNpbmgg bmFtIDE5NzQgdGFpIEJvbm4gKENITEIgRHVjIGN1KS4gQ2hpIGhvYyBuZ2FuaCBMdWF0IHRhaSBQ YXNzYXUgdmEgDQpMZWlwemlnLCBkb25nIHRob2kgdG90IG5naGllcCBuZ2FuaCBuZ3UgdmFuIHRh aSBWaWVuIHZhbiBob2MgRHVjIHRhaSBMZWlwemlnLiBTYXUgZG8sIA0KY2hpIGNvIG5oaWV1IGNo dXllbiBsdXUgdHJ1IGR1IGhvYyBob2FjIGxhbSB2aWVjIHRhaSBNeSwgQmEgTGFuLCBIdW5nYXJ5 IHZhIEJvc25pYS0NCkhlcnplZ293aW5hLiBDYWMgdHJhaSBuZ2hpZW0gbnVvYyBuZ29haSBjdW5n IG5odSBuaHVuZyBraW5oIG5naGllbSB0aWVwIHh1YyB2b2kgDQpuaGlldSBkYW4gdG9jIGtoYWMg bmhhdSBkYSBkdW9jIHRoZSBoaWVuIHJvIG5ldCB0cm9uZyBuaHVuZyB0aWV1IHRodXlldCBjdWEg Y2hpLiBDdW9uIA0KdGlldSB0aHV5ZXQgZGF1IHRheSBBZGxlciB1bmQgRW5nZWwgKCBUaGllbiB0 aGFuIHZhIGRhaSBiYW5nKSBjdWEgY2hpIGRhIGR1b2MgZGljaCByYSAyOSANCnRodSB0aWVuZy4g VGlldSB0aHV5ZXQgU3BpZWx0cmllYiBkYSBkdW9jIGNodXllbiB0aGUgdmEgZHVuZyBraWNoIHRh aSBOaGEgaGF0IEhhbWJ1cmdlciANClNjaGF1c3BpZWxoYXVzIG5hbSAyMDA2LiANCg0KVGFjIHBo YW0gQWxsZXMgYXVmIGRlbSBSYXNlbi4gS2VpbiBSb21hbiBiYW8gZ29tIGNhYyB0aWV1IGx1YW4g dmUgeGEgaG9pLCBjaGluaCB0cmksIA0KbHVhdCBwaGFwIHZhIHZhbiBob2MgZGEgdHVuZyBkdW9j IGRhbmcgdHJlbiBjYWMgYmFvLCB0YXAgY2hpIGxvbiBjdWEgRHVjLiBKdWxpIFplaCBjb24gDQp2 aWV0IHZvIGtpY2ggQ29ycHVzIERlbGljdGksIHZvIGtpY2ggZGF1IHRheSBjdWEgY2hpLCBjaG8g Y2h1b25nIHRyaW5oIFJ1aHJUcmllbm5hbGUgDQoyMDA3LiBDdW5nIG5hbSBuYXksIGNoaSB4dWF0 IGJhbiBjdW9uIHRpZXUgdGh1eWV0IHRyaW5oIHRoYW0gU2hpbGYgKFRoYW0gdHUgU2hpZikuIE5h bSANCjIwMDksIGNoaSBjaG8gcmEgbWF0IHBoaWVuIGJhbiB0aWV1IHRodXlldCBjdWEgQ29ycHVz IERlbGljdGkuIEN1bmcgdm9pIERhbmllaGwgDQpLZWhsbWFubiB2YSBKdWRpdGggSGVycm1hbiwg SnVsaSBaZWggZHVvYyBkYW5oIGdpYSBsYSBtb3QgdHJvbmcgbmh1bmcgbmhhIHZhbiB0cmUgdGFp IG5hbmcgbyBEdWMgaGllbiBuYXkuIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdmFuaG9h LzIwMTAxMC9CYWktMi1kb2ktcXVhbi1jdW9wLW5oYS1iYW5nLXNhYy1zby05NDE1NzkvIEp1bGkg WmVoIChBbmggc3UgZHVuZyB0cm9uZyBiYWkgY3VhIHRhYyBnaWEgRGF2aWQgRmluaykgMDA6NDYs IDEyLzEwLzIwMTAgKEdNVCs3KQ0KDQpEb2kgcXVhbiBjdW9wIG5oYSBiYW5nIHNhYyBzbyBjdWEg SGEgTm9pDQoNCi0gIk5odW5nIGNvIGdhaSBkaSB4ZSBtYXkgbWFjIGFvIGtob2FjIGhvYSwga2Vv IG11IGNoZSBraW4gbWF0LCBsYWkgY29uIHRoZW0gY2Ega2hhdSANCnRyYW5nIHNhYyBzbywga2lu aCByYW0gdmEgbXUgYmFvIGhpZW0gYm9jIHZhaSBob2EiLiANCg0KTmhhIHZhbiBEdWMgSnVsaSBa ZWggdGllcCB0dWMgY2F1IGNodXllbiB0cmVuIFZpZXROYW1OZXQgdm9pIGJhaSB2aWV0IHRodSBo YWkgbWFuZyB0ZW4gDQoiUGh1IG51IGRpIHhlIG1heS4gUGhvIGNvIg0KDQpEdW5nIHF1ZW4gYmFt IGNvaToNCg0KTWFjIGR1IG8gZGF5IG5ndW9pIHRhIGNvIHRoZSBsYW0gbW9pIHZpZWMga2hpIGRp IHhlIG1heSwgZGUgZGFuZyB5IG5odSBvIHRyZW4gdGF1IGRpZW4gDQpuZ2FtIHZheSwgbmFvIGxh IGRvYyBiYW8sIGFuIHVvbmcgdmEgdHJvIGNodXllbiwgbmh1bmcgbmd1b2kgdGEgdmFuIGx1b24g Y29uIHRodWEgbW90IA0KbmdvbiB0YXkgbmFvIGRvIGRlIG5oYW4gY29pOiB0aWVuZyBjb2kgbGEg YW0gdGhhbmggdHUgbmhpZW4gY3VhIGRhbiBkaSB4ZSBtYXkgbyBkYXksIA0KZ2lvbmcgbmh1IHRp ZW5nIGhvdCBsYSBhbSB0aGFuaCB0dSBuaGllbiBjdWEgbG9haSBjaGltIHZheS4gDQoNClRpZW5n IGNvaSB4ZSBrZXQgaG9wIHZvaSBzdSBtZXQgbW9pLCBzYXkgbWF5IGJheSB2YSBzb2Mga2hpIGhh dSAoa2hvbmcgcGhhaSBsYSBraG9uZyANCmtoaSBudWEsIG1hIGxhIG1vdCBub2kgc3VwIG5vbmch KSBraGllbiB0b2kgcm9pIHZhbyB0cmFuZyB0aGFpIG1lIG1hbiwgdHJhbmcgdGhhaSBtYSBvIGRv IA0Kc3Uga2hhYyBiaWV0IGdpdWEgc29uZyBjaGV0IGNoYW5nIGNvbiB5IG5naGlhIGdpIG51YSwg bm8gZ2l1cCBtb3Qga2hhY2ggZHUgbGljaCBuaHUgdG9pIA0KY28gdGhlIHRoYW0gZ2lhIHZhbyBn aWFvIHRob25nIG8gZGF5LCBub2kgcm8gaG9uOiBiaSB0aGFtIGdpYSB2YW8sIG1hIGtob25nIGRl biBub2kgcGhhdCANCmhvYW5nIGxlbiB2aSBzby4gVG9pIGdpb25nIG5odSBraHVjIGdvIHRyb2kg dHJlbiBzb25nLCB2YSB0b2kgY3UgZGUgbWluaCB0cm9pIGRpIG5odSB0aGUuIA0KRG9uZyBudW9j IHNlIHR1IGJpZXQgY2FjaCBjaGF5IG1hIGtob25nIG5naGllbiBuYXQgdG9pLg0KDQpOaHVuZyBj byBnYWkgZGkgeGUgbWF5IG1hYyBhbyBraG9hYyBob2EsIGtlbyBtdSBjaGUga2luIG1hdCwgbGFp IGNvbiB0aGVtIGNhIGtoYXUgDQp0cmFuZyBzYWMgc28sIGtpbmggcmFtIHZhIG11IGJhbyBoaWVt IGJvYyB2YWkgaG9hLiBOaHUgbW90IGFuaCBjaG9wLCBuZ29uIG5ndSBjaHVwIA0KbmdheSBsYXkg aGllbiB0dW9uZywgbnVvdCB0cm9pLCB0aWV1IGhvYSB2YSBiYW4gcmEgdGhhbmgga2hhaSBuaWVt IGNoaW5oIHhhYzogRG9pIHF1YW4gDQpjdW9wIG5oYSBiYW5nIHNhYyBzby4gVG9pIGhvYW4gaGkg bmdhbSBuZ2hpYSBraGFpIG5pZW0gbmF5IHR1IG1vaSBodW9uZzogdHV5ZXQgZGlldSwgDQpjaHVh biBraG9uZyBjYW4gY2hpbmguICANCg0KVmE6IGRvaSBxdWFuIGN1b3AgbmhhIGJhbmcgc2FjIHNv IG5odSBsYSBsdWMgbHVvbmcgZ2luIGdpdSBob2EgYmluaCB0cm9uZyBjdW9jIHh1bmcgZG90IA0K Z2l1YSBjYWMgbmVuIHZhbiBob2E6IENodW5nIHRvaSBzZSBrZSBjaG8gbmh1bmcgbmd1b2kgVGF5 IEF1IGRpZXUgZG9uIGdpYW4gbGEsIG1hYyBkdSANCmNoaWVjIGtoYW4gY2h1bSB0cm9uZyBkYW8g SG9pLCBraG9uZyBuZ2hpIG5nbyBnaSwgbGEgbW90IGJpZXUgdHVvbmcgdG9uIGdpYW8sIG5odW5n IA0KY2hpZWMga2hhbiBjaHVtIGF5LCBjdW5nIG5odSBoYXUgaGV0IGNhYyBiaWV1IHR1b25nIHRv biBnaWFvIGtoYWMsIGNvbiBjbyBtb3QgZ2lhIHRyaSANCnN1IGR1bmcga2hvIGRhbmggZ2lhIGhl dCBkdW9jOiBObyBnaXVwIGNob25nIHRpYSBtYXQgdHJvaSAodW5nIHRodSBkYSkuLi4NCg0KKEFu aDogSnVsaSBaZWggdm8gY3VuZyBhbiB0dW9uZyB2b2kgdHJhbmcgcGh1YyByYSBkdW9uZyBjdWEg cGh1IG51IG8gZG8gdGhpLikgDQoNCkRhbiBjaHVuZzogSGEgTm9pISBEb2kgcXVhbiBjdW9wIG5o YSBiYW5nIHNhYyBzbyBkYW5nIGRpIHRpZW4gcGhvbmcgKHZhIGNoYXUgQXUgaG9pLCANCmJhbiBk dW5nIHF1ZW4gcmFuZywgY2hhdSBBIGx1b24gaGlldSBiaWV0IGhvbiBiYW4sIGR1bmcgbmh1IGJh eSBsYXUgYmFuIHR1bmcgbG8gc28hKTogDQpLaGF1IHRyYW5nIHRvYW4gdGhhbiBuaHUgbGEgbW90 IHRob2kgdHJhbmcgY3VhIG5odW5nIG5oYSB2ZSBzaW5oIHN1YyBraG9lIGN1b25nIHRpbi4gDQpE b3QgbmhpZW4gdGhlIGdpb2kgSG9pIGdpYW8gZGFuaCBtYXQgYmlldSB0dW9uZyBkb2MgbmhhdCB2 byBuaGkgY3VhIG1pbmgsIGNvbiB0aGUgZ2lvaSANClRoaWVuIGNodWEgZ2lhbyBjdW5nIG1hdCBk aSBiaWV1IHR1b25nIHRodSBkaWNoLiBBZGlldSwgQ2xhc2ggb2YgQ2l2aWxpemF0aW9ucy4gKEto b25nIA0KcGhhaSB0b2kgZGFuZyBub2kgZGF1LCBtYSBsYSBoYXUgcXVhIGN1YSBzYXkgbWF5IGJh eSwgSmV0bGFnLikNCg0KU2FwIGRhdCBkYXUgcmEgZGF5LCBuZ3VvaSBWaWV0IE5hbTogTW9pIG5n b2kgbmhhIGxhIG1vdCBjdWEgaGFuZywgY29uIG5odW5nIGN1YSBoYW5nIA0KdGhpIGxhaSBnaW9u ZyBuaHUgdGhvaSB0aWV0OiBUaG9uZyBrZSBjaG8gdGhheSwgZHUgYmFvIHRob2kgdGlldCBjaGFj IGNoYW4gbmhhdCBsYSBub2kgcmFuZyANCnRob2kgdGlldCBuYXkgbWFpIHNlIGdpb25nIG5odSBo b20gbmF5LiBEdSBiYW8gY2hhYyBjaGFuIG5oYXQgY2hvIHZpZWMgbGFtIGFuIGN1YSBjYWMgDQpj dWEgaGFuZyBuZ3VvaSBWaWV0IE5hbSBsYSwgaGF5IGJhbiBuaHVuZyBtYXQgaGFuZyBnaW9uZyBo ZXQgbmh1IGFuaCBoYW5nIHhvbSBjdWEgDQpiYW4uIEJvaSB0aGUgbW9pIGNvIHBobyBIYW5nIFRo dW5nLCBwaG8gSGFuZyBDYW4sIHBobyBIYW5nIERvbmcsIHBobyBoYW5nIEtoYXksIA0KcGhvIGhh bmcgRGlldTsgYm9pIHRoZSBtb2kgY28gbmh1bmcgY29uIHBobyBiYW4gdG9hbiBraGFuLCBtdTog cGhpYSBiZW4gbmF5IGJhbiB0b2FuIA0Ka2h1eSBhbywgcGhpYSBiZW4ga2lhIGJhbiB0b2FuIGNh cCB0b2MuIENvIHBobyBiYW4gdG9hbiBkbyBjaG9pIHRyZSBlbSwgY28gcGhvIGJhbiB0b2FuIA0K bm9pIGNvbSBkaWVuLCBjbyBwaG8gYmFuIHRvYW4gdHVpIHhhY2guIExhaSBjbyBwaG8gYmFuIHRv YW4gbWFuaCwgdmEgdGhhbSBjaGkgKGRlbiBkYXkgDQp0aGkgdG9pIGh1YSBzZSBraG9uZyBrZSB0 aGVtIG51YSkgY28gcGhvIGJhbiB0b2FuIGJhbmcgZGluaC4gTW9pIGJpZXQsIG5nYXkgY2Egc3Ug aG9uIA0KbG9hbiBraG9uZyBsbyBuaGF0IGN1bmcgY2hpIGxhIHN1IHRodSBuaG8gY3VhIHF1eSBs dWF0Lg0KDQpUb2kgZGEgbHVvbiBuZ2hpIHJhbmcsIG5odW5nIHRodSBraXRzY2ggVmlldCBOYW0g Y2hpIGR1b2Mgc2FuIHh1YXQgcmllbmcgY2hvIHRoaSB0cnVvbmcgDQpEdWMuIFR1eSBuaGllbiBu aHVuZyBjdWEgaGFuZyBvIEhhIE5vaSBybyByYW5nIGRhIGdpdXAgdG9pIGhpZXUgcmEgc3UgdGhh dCBob246IE5odW5nIA0Kbmd1b2kgRHVjIGNodW5nIHRhIG1vaSBjaGkgbmVtIG1vdCBtYXUga2l0 c2NoIG5obyBjdWEgY2FpIGJhbmgga2l0c2NoIGtob25nIGxvIG1hIA0KdGhvaS4gQ2hhbmcgaGll dSBzYW8gdHUgbmhpZW4gdG9pIHRoYXkgbmhlIGNhIG5ndW9pLg0KDQooQW5oOk5oYSB2YW4gaGFp IGh1b2MgZ29pIG5odW5nIGNvIGdhaSBkaSB4ZSBtYXkgbWFjIGFvIGtob2FjIGhvYSwga2VvIG11 IGNoZSBraW4gDQptYXQsIGxhaSBjb24gdGhlbSBjYSBraGF1IHRyYW5nIHNhYyBzbywga2luaCBy YW0gdmEgbXUgYmFvIGhpZW0gYm9jIHZhaSBob2EgbGEgIkRvaSANCnF1YW4gY3VvcCBuaGEgYmFu ZyBzYWMgc28iLikgDQoNCk5vaSBzbyBsYW4gc29uZyBjaGF1IEE6IE1vaSBkYXkgdG9pIGNvIGRv YyBtb3QgY3VvbiBzYWNoIHJhdCBoYXAgZGFuIG5vaSB2ZSB2aWVjLCB0YWkgc2FvIA0Kbmd1b2kg VGF5IEF1IGx1b24gbmhpbiBsdWMgZGlhIGNoYXUgQSBuaHUgbW90IG8gZGljaCBiZW5oLiBDdW9u IHNhY2ggdHJ1b2MgaGV0IHBoYW4gDQp0aWNoIG5odW5nIGRpZW4gbmdvbiAobGVjaCBsYWMpIGN1 YSB0cnV5ZW4gdGhvbmcgZHVvbmcgZGFpIHBodW9uZyBUYXksIGRlbiBuYXkgdmFuIA0KbHVvbiBt aWV1IHRhIG5odW5nIHRlbiBjb25nIHNhbiAoTmdhLUEpLCBuaHVuZyB0ZW4ga2h1bmcgYm8gKEhv aS1BKSB2YSBuaHVuZyB0ZW4gdGFpIA0KcGhpZXQgbW9pIChUcnVuZyBRdW9jIC0gY2hhdSBBKSBu aHUgbmh1bmcgY29uIGJvLCBuaHVuZyB2aSB0cnVuZyBnaWVvIGJlbmgsIHhhbSBuaGFwLCBkbyBi byB2YW8geGEgaG9pIHBodW9uZyBUYXkuDQoNCk5odW5nIHZpIHRydW5nIG5heSBsYXAgY2FuIGN1 IChBbCBRdWFpZGEpIGhvYWMgbW8gcm9uZyBsYW5oIGRpYSAoSGllbSBob2EgZGEgdmFuZykgbyAN CmNoYXUgQXUuIEN1b24gc2FjaCBwaGFuIHRpY2ggdGFpIHNhbyAiY2hhdSBBIHR1IG5vIiBkb2kg dm9pIG5ndW9pIGNoYXUgQXUgbHVvbiBjbyBnaSBkbyANCmdpb25nIG5odSBtb3QgZGFuIGtpZW4s IHJhbmcgdGluaCBiYXkgZGFuIGRhIGx1b24gbmFtIHRyb25nICJiYW4gY2hhdCBjaGF1IEEiLiBU b2kgZG9jIA0KY3VvbiBzYWNoIG1hIGNhbSB0aGF5IG5vIHJvaSBzYW5nLCBuaHUgdGhlIG1pbmgg ZHVvYyBraGFpIG1pbmgsIHZhIHRvaSB0aGF5IHR1IHRpbiBob24gDQp2b2kgeSB0aHVjICh0dSkg cGhlIHBoYW4gYmFuIHRoYW4uLi4NCg0KLi4uY29uIGJheSBnaW8gdG9pIGRhbmcgbmdvaSBkYXkg dHJvbmcgbW90IHF1YW4gYW4gbyBwaG8gY28gSGEgTm9pLiBDaHVuZyB0b2kgZGEgcGhhaSANCmNh biBkZW4gaGFpIHRpZW5nIGRvbmcgaG8gdGkgbWFuIGx1YSBjaG9uIG1vaSB0aW0gZHVvYyBxdWFu IGFuIG5heSwgYm9pIGNodW5nIHRvaSANCmtob25nIG11b24gdG9pIG1vdCBxdWFuIGNodXllbiBk YW5oIGNobyBkYW4gZHUgbGljaCBUYXkgYmFsbywgbmh1bmcgbm8gdmFuIHBoYWkgY28gDQptb3Qg YmFuZyB0aHVjIGRvbiBiYW5nIHRpZW5nIEFuaCAobmV1IGtob25nLCBsYW0gc2FvIHRvaSBiaWV0 IG1pbmggYW4gdGh1IGdpIHZhbyANCmJ1bmc/KS4gTm8gY3VuZyBwaGFpIGxhIHF1YW4gYW4gZG9u ZyBraGFjaCAoZG8gYW4gc2UgdHVvaSBob24pIHZhIGN1bmcgcGhhaSBzYWNoIHNlIA0KbW90IGNo dXQgKGtoaSBkaSBxdWEgY3VhIGJlcCwgYmFuIGR1bmcgbmhpbiB2YW8gdmkgZG8gYW4gZHVvYyBz dWEgc29hbiB0cmVuIG5lbiBkYXQpLCANCnZhIHRodWMgdGUgY2h1bmcgdG9pIGN1bmcgdGltIGR1 b2MgbW90IGRpYSBkaWVtIHBodSBob3AgdmEgZGF0IGR1b2MgbW9uIGFuIG1pbmggbXVvbi4NCg0K VG9pIGNhbiB0aGFuIG51b3QgbWF5IHZpZW4gdGh1b2MgY2hvbmcgdGlldSBjaGF5LCB2YSBiYXkg Z2lvIHRvaSBkYW5nIHNhbSBzb2kgbWF5IHZpZW4gDQpkYSB0cm9uZyBjb2MgY29sYSBjdWEgbWlu aCAoY2hpIG5odW5nIHZpZW4gZGEgY28gbG8gbyBnaXVhIGxhIGR1b2Mgc2FuIHh1YXQgY29uZyAN Cm5naGllcCksIHRvaSBsYXQgbGF0IG1vbiByYXUgbHVvYyB0cmVuIGRpYSAobHVvYyBjbyBjaGlu IGtob25nPyksIGNhbmggZ2lhYyBuaGFwIG1vdCBuZ3VtIA0KdHJhIChudW9jIGNvIG5vbmcgZ2lh IGtob25nPykgdmEgbmdoaSBuZ28gc2FtIHNvaSBkaWEgYW4gKGNvIGR1b2MgcnVhIGJhbmcgbnVv YyBtYXkgDQpraG9uZz8pIHZhIHRhY2ggbWF5IG1vbiByYXUgcXVhIHNvbmcgKGNhaSBuYXkgY2hh YyBwaGFpIGR1b2MgcnVhIG51b2MgbWF5IHJvaSApIHRoYW5oIA0KdHVuZyBsb2FpIGtoYWMgbmhh dSwgdmEgdHUgbmh1IHZvaSB0cm9pIGRhdCByYW5nLCBuaGF0IGRpbmggdG9pIHBoYWkgZ290IHZv IG1vbiBxdWEuLi4NCg0KLSBCb2kgdmkgdGF0IGNhIG5odW5nIG5ndW9pIGh1b25nIGRhbiBkdSBs aWNoLCBiYW4gYmUsIHZhIHRvYW4gdGhlIGNhYyBjaHV5ZW4gZ2lhIHZlIGNoYXUgDQpBIGN1YSBw aHVvbmcgVGF5IGRldSBjYW5oIGJhbyByYW5nLCBoaWVtIGhvYSBraG9uZyBkZW4gdHUgYmFvIGx1 dCBoYXkgY2FuIGJlbmggdmllbSANCnBob2kgZG8gbmh1bmcgY2FpIG1heSBkaWV1IGhvYSBsYW5o IGNvbmcgZ2F5IHJhLCBtYSBsYTogZ2l1biwgc2FuLCBraHVhbiwgdmkgdHJ1bmcgc2UgDQp4YW0g bmhhcCwgc2UgbGF5IG5oaWVtLCB0aGFtIGNoaSBzZSBkbyBibyB2YW8gdGhhbiB0aGUgZGFuIFRh eSBBdS4gVHJ1b2Mga2hpIGx1YSBkdWEgYW4gDQp2YW8gbWllbmcsIHRvaSBkYSBjYW0gdGhheSBy dW90IGdhbiBtaW5oIGRhIGRhbyBsb24gaGV0IGxlbiB2aSBzby4NCg0KSG9pIG9pLCBob2kgdGlu aCB0aGFuIGtoYWkgc2FuZywgaG9pIHkgdGh1YyBwaGUgcGhhbiwgdmUgbHkgdGh1eWV0IHRoaSBj YWMgbmd1b2kgbHVvbiBoYXAgDQpkYW4gZGF5LCBuaHVuZyBkaSB2YW8gdGh1YyB0ZSB0aGkgY2Fj IG5ndW9pIGxhaSBraGEgdm8gZHVuZy4gDQoNCmh0dHA6Ly9waGFwbHVhdHhhaG9pLnZuLzIwMTAx MDIyMDg0NTEzNTA0cDEwMDFjMTA1My91bi10YWMtY28tY2hpZXUtaHVvbmctdGFuZy1tYW5oLmh0 bSAyMi8xMC8yMDEwIDA5OjEwIA0KDQpIYSBOb2k6IFVuIHRhYyBnaWFvIHRob25nIGNvIGNoaWV1 IGh1b25nIHRhbmcgbWFuaCAtIFF1eSBkYXQgZGFuaCBjaG8gZ2lhbyB0aG9uZyBxdWEgaXQgDQoN CkR1b25nIG1vaSwgY3UgZGV1Li4uIHRhYw0KDQoxOGcgbmdheSAyMC0xMCwgdHJlbiBkdW9uZyBU YXkgU29uLCBoYW5nIGRhaSBjYWMgcGh1b25nIHRpZW4gbm9pIGR1b2kgbmhhdS4uLiBuaGljaCAN CnR1bmcgbWV0LiBMb25nIGR1b25nIGtob25nIGR1LCBjYWMgcGh1b25nIHRpZW4gdGhpIG5oYXUg bGVvIGxlbiB2aWEgaGUsIGtoaWVuIG5ndW9pIGRpIA0KYm8gY3VuZyByb2kgdmFvIGNhbmguLi4g dGFjIGR1b25nLiBDb24gdHJlbiBwaG8gQ2h1YSBCb2MgLSBUaGFpIEhhLCBjYW5oIHVuIHUgYmF0 IGRhdSANCmRpZW4gcmEgdHUgMTdnMzAgZGVuIDE5ZzMwLiBDaGkgZGVuIGtoaSBjYWMgbHVjIGx1 b25nIGxhbSBuaGllbSB2dSBwaGFuIGx1b25nLCBkaWV1IA0KdGlldCBnaWFvIHRob25nIHh1YXQg aGllbiwgY2FjIHBodW9uZyB0aWVuIG1vaSBkdW9jICJnaWFpIGN1dSIuIA0KDQpQaG8gVG9uIER1 YyBUaGFuZyAtIE5ndXllbiBMdW9uZyBCYW5nLCBuaGlldSBwaHVvbmcgdGllbiB0aGFtIGdpYSBn aWFvIHRob25nIHJvaSANCnZhbyBjYW5oIHRpZW4gdGhvYWkgbHVvbmcgbmFuLiBUaW0gZHVvYyBi YXQgY3Uga2hlIGhvIG5hbywgY2FjIHBodW9uZyB0aWVuIGxhcCB0dWMgcXVheSANCmRhdSAidGhv YXQgdGhhbiIsIG5odW5nIHZhcCBwaGFpIHN1ICJjYW4gZHVvbmcgcXV5ZXQgbGlldCIgY3VhIGNh YyBwaHVvbmcgdGllbiBraGFjLCANCm5lbiBnaWFvIHRob25nIHRyZW4gY29uIHBobyBuYXkgY2Fu ZyB0aGVtIGhvbiBsb2FuLiBDYWMgY2h1IHBodW9uZyB0aWVuIG5oaW4gbmhhdSwgbGFjIGRhdSBu Z2FuIG5nYW0uDQoNCkFuaCBOZ3V5ZW4gVmFuIFR1bmcsIG5oYSBvIHBobyBUaGFpIFRoaW5oIG5n YW8gbmdhbjogIkNhY2ggbmhhIHZhaSBjaHVjIG1ldCBtYSB0b2kgDQpraG9uZyB0aGUgdmUgbmhh LiBDaGFuZyBsZSBsYWkgZ29pIG5ndW9pIG5oYSByYSBraGVuaCB4ZSB2ZSIuIA0KDQpUYWkgbmdh IHR1IFZvbmcgLSBUcnVvbmcgQ2hpbmggLSBHaWFpIFBob25nLCBuaHVuZyBjaGllYyB4ZSBjdXUg dGh1b25nIHR1IEJlbmggdmllbiANCkJhY2ggTWFpIGRpIHJhIHZhIHhlIGNobyBuZ3VvaSBjYXAg Y3V1IHZhbyBiZW5oIHZpZW4sIHJ1IGNvaSBpbmggb2ksIG1vbmcgY2FjIHBodW9uZyANCnRpZW4g bmh1b25nIGR1b25nIGRlIGRpIGxhbSBuaGllbSB2dSwgbmh1bmcgYmF0IGx1YywgdmkgY2FjIHBo dW9uZyB0aWVuIGtoYWMgY3VuZyANCmtob25nIGJpZXQuLi4gdHJhbmggdmFvIGRhdSBkZSBuaHVv bmcuDQoNCkNobyBnYW4gbW90IGdpbyBkb25nIGhvIGtob25nIG5oaWNoIG5vaSBtZXQgZHVvbmcg bmFvLCBhbmggVnUgRHVjIE5hbSwgbGFpIHhlIGN1YSANClZpZW4gVHJ1eWVuIG5oaWVtIG5oaWV0 IGRvaSAoQmVuaCB2aWVuIEJhY2ggTWFpKSB0YXQgbWF5LCBuZ29pIG5nYSB0cmVuIGdoZSBsYWMg ZGF1OiANCiJUb2kgY2FuIGdpbywgY28gdHJhbmggbmh1bmcgZ2lvIGNhbyBkaWVtLCBuaHVuZyBk dW9uZyBIYSBOb2kgZHVuZyBsYSAidHJhbSBkdW9uZyANCnRyYW5oIGtob25nIGtob2kgdGFjIiAt IGFuaCBOYW0gdmkgdm9uLg0KDQpEdW9uZyBMYW5nIChkb2FuIGdpYW8gTGFuZyBIYSAtIExlIFZh biBMdW9uZyBrZW8gZGFpKSwgbHVvbiBjbyBoYW5nIGNodWMgY2hpZW4gc3kgDQpDU0dUIHZhIGx1 YyBsdW9uZyB0YW5nIGN1b25nIGxhbSBuaGllbSB2dSwgdHVjIHRydWMgdHUgNmcgZGVuIDIwZyBo YW5nIG5nYXksIG5odW5nIA0KZG8gbWF0IGRvIHBodW9uZyB0aWVuIHRoYW0gZ2lhIGdpYW8gdGhv bmcgdGFuZyBjYW8gbmVuIHRpbmggdHJhbmcgdW4gdSBjdW5nIGtoYSBuaHVjIA0KbmhvaS4gRG9h biwgZHVvbmcgbmF5IHRodW9uZyB1biB0YWMgdmFvIHRob2kgZGllbSB0dSA3ZzMwIGRlbiA4ZyB2 YSB0dSAxN2cgZGVuIDE5ZyANCmhhbmcgbmdheS4NCg0KQ2FjIHR1eWVuIGR1b25nIG1vaSBuYW0g dHJlbiBkdW9uZyB2YW5oIGRhaSAzLCBsYSBjYWMgZGllbSBnaWFvIHRob25nIG1vaSwgY28gdGhp ZXQga2UgDQpyb25nLCB0aG9hbmcsIHZvaSBib24gbGFuIGR1b25nIGx1dSB0aG9uZyBtb2kgYmVu LCBuaHVuZyBkbyBsdXUgbHVvbmcgcGh1b25nIHRpZW4gDQp0aGFtIGdpYSBkb25nLCBjb25nIHZv aSBzdSBob2F0IGRvbmcgY3VhIG5oaWV1IGxvYWkgeGUgdGFpIGhhbmcgbmFuZywgbmVuIGR1IGto b25nIHVuIA0KdGFjIGN1YyBibywgc29uZyBjdW5nIGRhIHh1YXQgaGllbiBuaHVuZyBkaWVtIHVu IHUgbmh1IGR1b25nIFBoYW0gSHVuZywgS2h1YXQgRHV5IA0KVGllbiwgZG9hbiBnaWFvIGdpdWEg ZHVvbmcgTmd1eWVuIFRyYWksIGh1b25nIFRoYW5oIFh1YW4gLSBIYSBEb25nLg0KDQpNb3QgY2hp ZW4gc3kgZG9pIENTR1Qgc28gNyBjaG8gYmlldCwgZHUgbGEgdHV5ZW4gbW9pLCB2b2kgbGFuIGR1 b25nIHJvbmcgbmh1bmcgdmFvIA0Kbmh1bmcgZ2lvIGNhbyBkaWVtLCBsdW9uZyBuZ3VvaSBsYW0g dmllYyB0YWkgdHJ1bmcgdGFtIEhhIE5vaSBkbyB2ZSBIYSBEb25nIGxvbiwgY29uZyANCnZvaSBs dXUgbHVvbmcgbG9uIGNhYyBsb2FpIHhlIHNpZXUgdHJ1b25nLCBzaWV1IHRyb25nIHRhaSwgYmFu IHRhaS4uLiBob2F0IGRvbmcgdGh1b25nIA0KeHV5ZW4sIG5lbiBjYW5oIHVuIHUgZ2FuIG5odSBu Z2F5IG5hbyBjdW5nIGNvLiANCg0KVHJhbyBkb2kgdm9pIFBWIGJhbyBQTCZYSCwgVGh1b25nIHRh IFRyYW4gU29uLCBDdWMgQ1NHVCBkdW9uZyBibywgZHVvbmcgc2F0IA0KKEMyNikgQm8gQ29uZyBh biBjaG8gYmlldDogSGEgTm9pIGx1b24gY28ga2hvYW5nIGdhbiAxMDAgZGllbSB1biB0YWMgZ2lh byB0aG9uZyB0cm9uZyANCmtoaSBsdW9uZyBwaHVvbmcgdGllbiBnaWFvIHRob25nIHRhbmcgZ2Fw IGRvaSAodHUgMzAyLjAwMCBsZW4gODQ2LjAwMCBvIHRvIGNhYyBsb2FpLCB0cmVuIA0KMyw2IHRy aWV1IHhlIG1heSwgMSB0cmlldSB4ZSBkYXAuLi4pOyB0cm9uZyBraGkgZG8sIGNvIHNvIGhhIHRh bmcgZGFuaCBjaG8gZ2lhbyB0aG9uZyBjb24gDQp5ZXUuIFF1eSBkYXQgZGFuaCBjaG8gZ2lhbyB0 aG9uZyBjaGllbSB0dSA0IGRlbiA1JTsgdHJvbmcga2hpLCB0b2kgdGhpZXUgcXV5IGRhdCBkYW5o IA0KY2hvIGdpYW8gdGhvbmcgcGhhaSBjaGllbSB0b2kgMTYtMjYlLi4uIGNobyBuZW4gY2h1eWVu IHVuIHRhYyBnaWFvIHRob25nIGxhIGtobyB0cmFuaCANCmtob2kuIA0KDQpDdW5nIHRoZW8gVGh1 b25nIHRhIFNvbiwgbW90IHBoYW4gbmd1eWVuIG5oYW4gY2hpbmggdmFuIGxhIGRvIHkgdGh1YyBj dWEgbmd1b2kgdGhhbSANCmdpYSBnaWFvIHRob25nLiAiRHVvbmcgaG9pIHVuIHRhYyBtb3QgY2h1 dCBsYSBuaHVuZyBuZ3VvaSBkaSBzYXUgY28gbmhvaSBsZW4sIGxhbiBkdW9uZywgDQpkaSBjYSB4 ZSBsZW4gdmlhIGhlIGhvYWMgcXVheSBkYXUuLi4gU3Ugbm9uZyB2b2ksIHRoaWV1IHkgdGh1YyBk byB0cm9uZyBjaG9jIGxhdCBnYXkgdW4gDQp0YWMsIHJvaSBsb2FuIGdpYW8gdGhvbmcuIE5ndW9p IGRhbiBraG9uZyB5IHRodWMsIG5oYW4gdGh1YyBoZXQgaGFuaCB2aSB0aGFtIGdpYSBnaWFvIA0K dGhvbmcgY3VhIG1pbmgsIGN1bmcgbGEgbmd1eWVuIG5oYW4iLCBUaHVvbmcgdGEgZGFuaCBnaWEu IA0KDQpodHRwOi8vdHVvaXRyZS52bi9DaGluaC10cmktWGEtaG9pLzE2ODgzMi9UaGlldS1zYW4t Y2hvaS1jaG8tdHJlLWVtLmh0bWwgWFVBTiBMT05HIDI1LzEwLzIwMDYsIDAzOjM0IChHTVQrNykg DQoNCkhhIE5vaTogVGhpZXUgc2FuIGNob2kgY2hvIHRyZSBlbSAtIEN1IGt5LCB4dW9uZyBjYXAg LSBCbyBxdWVuIG5oaWVtIHZ1IA0KDQpBbmggY2h1cDogU2FuIGNob2kgY2hvIHRyZSBkZSBjbyBt b2MgeGFuaCB1bSAoYW5oIGNodXAgdGFpIHBodW9uZyBUcnVuZyBUdSwgcXVhbiANCkRvbmcgRGEp IC0gQW5oOiBYLkxvbmcNCg0KVFQgLSBOaGlldSBub2kgbyBIYSBOb2kgbmd1b2kgdGEgY2hpZW0g c2FuIGNob2kgY3VhIHRyZSBsYW0gYmFpIGdpdSB4ZSwgdGFwIGtldCByYWMuIE8gDQpub2kgY28g c2FuIGNob2ksIHRyZSBraG9uZyBkYW0gdHJlbyBsZW4gY2F1IHRydW90LCBkdSBxdWF5IHZpIHNv IHRyYXkgbW9uZywgc3VvdCB0YXkuIA0KDQpDdSBreSwgeHVvbmcgY2FwIC0gQm8gcXVlbiBuaGll bSB2dSANCg0KRGllbiBoaW5oIG5odSBraHUgc2FuIGNob2kgY3VhIHBodW9uZyBUcnVuZyBUdSwg cXVhbiBEb25nIERhIHJvbmcgY2EgbmdhbiBtZXQgDQp2dW9uZyBuaHVuZyBjaGkgY28gbW90IGNh dSB0cnVvdCBkdW9jIHhheSBkdW5nIHRydW9jIGRheSBoYW5nIGNodWMgbmFtLCB4dW5nIHF1YW5o IA0KY28gZGFpIG1vYyBraW4uIA0KDQpRdWFuIFRheSBIbyBjbyA1OSBraHUgZGFuIGN1IG5odW5n IDE2IGtodSBkYW4gY3Uga2hvbmcgY28gc2FuIGNob2kgZGFuaCBjaG8gdHJlLiANCk5nYXkgY2Eg NDMgc2FuIGNob2kgZGEgZHVvYyBkYXUgdHUgbW9pIG5hbSBjdW5nIGNoaSBwaHVjIHZ1IGJhIHRo YW5nIG5naGkgaGUgY3VhIGNhYyANCmNoYXUuIENoaSBraG9hbmcgaGFpIG5hbSBzdSBkdW5nLCBj YWMgdGh1IGNob2kgYmkgcGhvaSBuYW5nIG11YSBzZSBob2VuIGdpLCB4dW9uZyBjYXAsIA0Kc2Fu IGNob2kgbGFpIGJvIGhvYW5nLiANCg0KVGFpIGhhaSBwaHVvbmcgWWVuIFBodSwgVGh1eSBLaHVl IHNhbiBjaG9pIGRhbmggY2hvIHRyZSBnYW4gbmh1IGtob25nIGNvLiBOaHVuZyBub2kgDQpjbyBk aWVuIHRpY2ggZGF0IG5obyBsZSBwaHUgaG9wIGxhbSBzYW4gY2hvaSBuaHVuZyBraG9uZyBoYW4g ZGEgZHVvYyBjYXAuIA0KDQpDbyBtb3QgdGh1YyB0ZSBsYSBkYXQgcXVpIGhvYWNoIGxhbSBzYW4g Y2hvaSBjaG8gdHJlIGl0IGRhbiB2aSBkYXUgdHUgbGFtIHNhbiBjaG9pIGl0IHRodSANCmR1b2Mg bG9pLiBWaSB2YXkgbmhpZXUgcGh1b25nIHhhIHBoYWkgbXVvbiBzYW4gY2hvaSBjdWEgbmhhIHRy dW9uZyBob2FjIGhlIHBobyBjaG8gDQp0cmUgdnVpIGNob2kuDQoNCk9uZyBOZ3V5ZW4gVGhlIEh1 bmcsIHBobyBjaHUgbmhpZW0gVXkgYmFuIERTLUdEJlRFIEhhIE5vaSwga2hhbmcgZGluaCBxdWkg Y2hlIA0KdGFtIHRob2kgdmUgc2FuIGNob2kgY2FwIGNvIHNvLCBjbyBjaGUgcXVhbiBseSBkYSBj byB0dSBuYW0gMTk5OCB4YWMgZGluaCBybyBsbyB0cmluaCB4YXkgDQpkdW5nIGRvaSBzb25nIHZh biBob2EgdGhvbmcgdGluIGNobyB0cmUgZW0gZ2lhaSBkb2FuIDIwMDEtMjAxMCwgY3UgdGhlIGdp YW8gbmdhbmggdmFuIA0KaG9hIG5odW5nIHF1aSBkaW5oIG5heSBkYSBiaSBibyBxdWVuLg0KDQpU aGVvIG9uZyBIdW5nLCBxdWEgZG90IHJhIHNvYXQgZGFuaCBnaWEgaGllbiB0cmFuZyBzYW4gY2hv aSBkYW5oIGNobyB0cmUgZW0gY2FwIHBodW9uZyANCnhhIGRvIGRvbiB2aSBuYXkgZGFuZyB0aHVj IGhpZW4gY2hvIHRoYXkgdHJvbmcgc28gaG9uIDIuMDAwIGRpZW0gdnVpIGNob2kgYmFvIGNhbyBj byANCm5odW5nIHF1YW4ga2hvbmcgZGFuaCBnaWEgZHVvYyBoaWVuIHRyYW5nLiBUaGVvIGtldCBx dWEgcmEgc29hdCBiYW4gZGF1LCB0b2FuIHRoYW5oIA0KcGhvIEhhIE5vaSBjaGkgY28ga2hvYW5n IDQ1JSBzYW4gY2hvaSBjYXAgcGh1b25nIHhhIGNvIGRhdSB0dSwgdHJhbmcgYmkgY2FjIHRodSBj aG9pLiANCg0KaHR0cDovL2Nvbmdkb2FuLm1vc3QuZ292LnZuL2luZGV4LnBocD9vcHRpb249Y29t X2NvbnRlbnQmdmlldz1hcnRpY2xlJmlkPTgyMTpzYW4tY2hpLW5oYS10ci1jaG8tdHItZW0tdGhp dS1uaG5nLXZuLWItYi1waGktJmNhdGlkPTUxOmNhYy1iYWktdml0LWxpZW4tcXVhbi1uLWhvdC1u Zy1jb25nLW9hbiZJdGVtaWQ9NzMNCg0KSGEgTm9pOiBTYW4gY2hvaSwgbmhhIHRyZSBjaG8gdHJl IGVtIC0gdGhpZXUuLi4gbmh1bmcgdmFuIGJpIGJvIHBoaSANCg0KQW5oIGNodXA6IFNhbiBjaG9p IENvbiBWb2kgbyBwaHVvbmcgVHJ1bmcgVHUgZGEgYmkgeHVvbmcgY2FwIHZhIGJpIGNoaWVtIGR1 bmcgbGFtIG5vaSBraW5oIGRvYW5oIA0KDQpodHRwOi8vdmlldGJhby52bi9QaG9uZy1zdS9IYS1O b2ktdGhpZXUtc2FuLWNob2ktY2hvLXRyZS1lbS83NTE2MjE1OS81MTQvIExlIFh1YW4gMzAvNy8y MDA3LCAxNjoxOCBHTVQrNyANCg0KSGEgTm9pOiBRdWEgdGhpZXUgc2FuIGNob2kgY2hvIHRyZSBl bSANCg0KTmh1bmcga2h1b24gdmllbiBjYXkgeGFuaCB2YSBzYW4gY2hvaSBjaG8gdHJlIGVtIG8g SGEgTm9pIHF1YSBpdCEgVHJvbmcgY2FpIG5hbmcgDQpub25nIGN1YSBtdWEgaGUsIHRyYW5oIHRo dSBtb2kgbm9pLCBtb2kgbHVjLCBiYXQgY2hhcCBjYSBuZ3V5IGhpZW0gcmluaCByYXAsIHRyZSAN CmVtIGNvIHRpbSBjaG8gbWluaCBuaHVuZyBub2kgZGUgdnVpIGNob2kuDQoNCkFuaCBjaHVwOiBO aHVuZyB0b2EgbmhhIHNhbiBzYXQgbmhhdSB0YWkgS2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9hIC0g TmhhbiBDaGluaC4NCg0KQW5oIGNodXA6IEJhaSBkYXQgaG9hbmcgYmVuIGR1b25nIE5ndXllbiBQ aG9uZyBTYWMga2VvIGRhaSBjdW5nIHRybyB0aGFuaCBzYW4gY2hvaS4NCg0KQW5oIGNodXA6IE5n dXkgaGllbSBsdW9uIHJpbmggcmFwIGtoaSB0cmUgdGhhIGRpZXUgbyBuaHVuZyBub2kgdGhlIG5h eS4NCg0KQW5oIGNodXA6IERpIHhlIGRhcCB0cmVuIHZpYSBoZSB0YWkgZHVvbmcgTGFuZy4NCg0K QW5oIGNodXA6IFNhbiBjaG9pIGJlIG5obyB0YWkga2h1IGRvIHRoaSBtb2kgVHJ1bmcgSG9hIC0g TmhhbiBDaGluaCBjdW5nIGJpIGNoaWVtIGR1bmcgbGFtIG5vaSBkZSB4ZS4NCg0KQW5oIGNodXA6 IExlbiBxdWEgbmh1bmcgeGUgbWF5IGRlIGRpIGRhby4NCg0KQW5oIGNodXA6IE5nbyBuaG8sIHZv bmcgeHV5ZW4gY3VuZyB0cm8gdGhhbmggc2FuIGJvbmcuDQoNCkFuaCBjaHVwOiBLaG9uZyBjbyBj aG8gY2hvaSwgdHJlIGRvIHhvIGRlbiBiZSBib2kga2llbiBiZSBib2kgbHVvbiBiaSBxdWEgdGFp LiANCg0KaHR0cDovL3R1YW52aWV0bmFtLm5ldC8yMDEwLTA5LTE1LXZhbi1jby10cnVjLWhvLXRh eS1iYS12aS1uaHVuZy1sYS10cnVjLWNvbmctIEtoYW5oIExpbmggMTYvMDkvMjAxMCAwNjowMCBH TVQrNw0KDQpIYSBOb2k6IFF1aSBob2FjaCBUaHUgRG8gLSBTYW5nIGR1bmcsIGNoaWV1IHNhaSwg bWFpIGxhaS4uLmR1bmcgDQoNClZhbiBjbyB0cnVjIEhvIFRheS1CYSBWaSBuaHVuZyBsYSB0cnVj Li4uIGNvbmc/DQoNCkhhIE5vaSBkYSB0dW5nIGtoYW5nIGRpbmggaG9hbiB0b2FuIGtob25nIGNh biB0cnVjIChIbyBUYXktQmEgVmkpLCBuYXkgYm9uZyBkdW5nIGxhaSANCnRoYXkgY2FuIHRydWMu IEJvIFhheSBkdW5nIHRoaSBybyByYW5nIGtoYW5nIGRpbmggdHJ1YyBwaGFpIHRoYW5nLCBuYXkg bGFpIHRoYXkgdHJ1YyBjbyANCnRoZW8gZGlhIGhpbmggY3VuZy4uLiBraG9uZyBzYW8uDQoNCkNh dSBjaHV5ZW4gZ2lhbmcgY28gcXVhIGxhaSBnaXVhIEJvIFhheSBkdW5nIHZhIEhhIE5vaSwgaGFp ICJuaGFuIHZhdCBjaGluaCIgY3VhIGRvIA0KYW4gUXV5IGhvYWNoIGNodW5nIHhheSBkdW5nIHRo dSBkbyBIYSBOb2kgZGVuIG5hbSAyMDMwLCB0YW0gbmhpbiAyMDUwIHZ1YSBjbyB0aGVtIA0KbW90 ICJraHVjIHF1YW5oIiBtb2k6IEhhIE5vaSBraG9uZyBwaGFuIGRvaSB0cnVjIEJhIFZpLCBuaHVu ZyBkZSBuZ2hpIGtob25nIHBoYWkgDQp0cnVjIHRoYW5nIHRhcCBtYSBjaGkgdGhhbmcgdGFwIGRv YW4gdHJ1b2MgdmFuaCBkYWkgNCwgY29uIHR1IHZhbmggZGFpIDQgdmUgZGVuIEJhIFZpIHRoaSAN CnNlIHRoZW8gZGlhIGhpbmguIA0KDQpTYW5nIGR1bmcsIGNoaWV1IHNhaSwgbWFpIGxhaS4uLmR1 bmcgDQoNClRQIEhhIE5vaSBjb24gbXVvbiBkYW5oIGRvIG5odW5nIGNvbmcgZGFuIGN1YSBtaW5o IGRlbiBtdWMgbmFvLCAzIHR1YW4gdHJ1b2MgdnVhIA0KY28gdmFuIGJhbiBwaGFuIGRvaSB0cnVj IEhvIFRheSAtIEJhIFZpLCBuYXkgbGFpIHF1YXkgc2FuZy4uLiBraG9uZyBwaGFuIGRvaSBudWE7 IHRydW9jIA0KZG8sIHRyb25nIGt5IGhvcCBRSCB0aGFuZyA2LzIwMTAsIEhhIE5vaSBjdW5nIGto b25nIGhlIHRvIGNodXQgYmFuIGtob2FuIG5hbyB2ZSB0cnVjIA0KbmF5IGNhLiBDaGkgdHJvbmcg dmFpIHRoYW5nIG1hIEhhIE5vaSB0aGF5IGRvaSB5IGtpZW4gaGFpIGxhbiB2YSB0cmFpIGNoaWV1 IDE4MCBkby4gIA0KRHUgcmFuZyBuZ3VvaSBkYW4gdHUgbGF1IGRhIHBoYWkgbGFtIHF1ZW4gdm9p IGN1bmcgY2FjaCAic2FuZyBkdW5nLCBjaGlldSBzYWksIA0KbWFpIGxhaS4uLiBkdW5nIiBuaHUg dmF5IGN1YSBxdWFuIGNodWMgdGhhbmggcGhvLCBuaHVuZyBsYW4gbmF5IHZhbiBzb2MsIHZpIGRh eSBsYSANCmNvbmcgdGFjIHF1eSBob2FjaCBtb3QgdGhhbmggcGhvLCBtb3QgdGh1IGRvLCBtb3Qg dGh1IGRvICJuZ2hpbiBuYW0gdmFuIGhpZW4iISAgDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9i YXRfZ2lhbV9kb2NfbHVhX2Rhb19nYW5fNDAwX3RpX2RvbmctNi0yMTQ2MzIwNS5odG1sDQoNCkhh IE5vaTogVG9uZyBnaWFtIGRvYyBDb25nIHR5IENQIHNhbiBiYXQgZG9uZyBzYW4gVmlldCBOYW0g YmkgdHJ1eSB0byBsdWEgZGFvIGdhbiA0MDAgdGkgZG9uZyANCg0KaHR0cDovL2xhb2RvbmcuY29t LnZuL1Rpbi1UdWMvSGEtTm9pLXhldC14dS12dS1hbi10aGFtLW8tdGFpLU5nYW4taGFuZy1CSURW LzE0MDk5IDIzLjkuMjAxMCAyMjozNCAoR01UICsgNykgDQoNCkhhIE5vaTogVnUgdGhhbSBvIHRh aSBOZ2FuIGhhbmcgQklEViB0aGF0IHRob2F0IGhvbiAxNzAgdHkgZG9uZyAoQklEViBEb25nIERv KQ0KVHJhbiBMZSBUaHV5IChzaW5oIG5hbSAxOTY5LCBuZ3V5ZW4gbGEgY2FuIGJvIG5nYW4gaGFu ZyBEYXUgdHUgcGhhdCB0cmllbiBWaWV0IE5hbSANCkJJRFYsIENoaSBuaGFuaCBEb25nIERvKSBj dW5nIDEwIGRvbmcgcGhhbSBjYXUga2V0IGxhbSBnaWEgc28gdGlldCBraWVtLCBnYXkgdGhhdCAN CnRob2F0IGhvbiAxNzAgdHkgZG9uZyBjdWEgQklEViBEb25nIERvLg0KDQpDYWMgYmkgY2FvIGJp IHRydXkgdG8gdmUgY2FjIHRvaSB0aGFtIG8gdGFpIHNhbiwgbHVhIGRhbyBjaGllbSBkb2F0IHRh aSBzYW4sIHRoaWV1IHRyYWNoIA0KbmhpZW0gZ2F5IGhhdSBxdWEgbmdoaWVtIHRyb25nLCB2aSBw aGFtIHF1eSBkaW5oIHZlIGNobyB2YXkgdHJvbmcgaG9hdCBkb25nIGN1YSBjYWMgDQp0byBjaHVj IHRpbiBkdW5nLg0KDQoxMCBkb25nIHBoYW0gY3VhIFRodXkgdHJvbmcgdnUgYW4gbmF5IGdvbSBU cmFuIENoaSBEYW4sIFRyYW4gVGhpIEh1eWVuLCBOZ3V5ZW4gDQpUaGkgVGh1LCBOZ28gVGhpIFRo YW5oIEh1eWVuLCBUaGFpIFRoaSBZZW4sIFZ1IEtoYWMgVGhhbmgsIEhvYW5nIEJpY2ggTGllbiwg SG9hbmcgDQpUcnVuZyBUaG9uZywgUGhhbSBUaGkgSG9uZyBUaGFpLCBOZ3V5ZW4gTWluaCBIYW5n Lg0KDQpUcm9uZyAxMSB0cnVvbmcgaG9wIGJpIHRydXkgdG8gY28gNyBuZ3VvaSB0dW5nIGNvbmcg dGFjIHRyb25nIG5nYW5oIG5nYW4gaGFuZywgdHJvbmcgZG8gDQpjbyAyIGJpIGNhbyBuZ3V5ZW4g bGEgUGhvIEdpYW0gZG9jIE5nYW4gaGFuZyBCSURWIGNoaSBuaGFuaCBEb25nIERvLCAxIGJpIGNh byANCm5ndXllbiBsYSBwaG8gUGhvbmcgZGljaCB2dSBraGFjaCBoYW5nIGN1YSBCSURWIERvbmcg RG8sIDIgY2FuIGJvIEJJRFYgRG9uZyBEbzsgDQpjdW5nIDIgYmkgY2FvIG5ndXllbiBsYSBwaG8g UGhvbmcgZ2lhbyBkaWNoIDEgY3VhIE5nYW4gaGFuZyBOZ29haSB0aHVvbmcgY2hpIG5oYW5oIA0K VGhhbmggQ29uZyAoVkNCIFRoYW5oIENvbmcpLg0KDQpUaGVvIGNhbyB0cmFuZywgdHJvbmcga2hv YW5nIHRob2kgZ2lhbiB0dSBuYW0gMjAwMyBkZW4gdGhhbmcgNC8yMDA4LCBUcmFuIExlIFRodXkg bGEgDQp0aHUgcXV5IGN1YSBRdXkgdGlldCBraWVtIHNvIDEgTmdhbiBoYW5nIEJJRFYgVGhhaSBC aW5oICh0dSAyMDAzIGRlbiB0aGFuZyA3LzIwMDQpIA0KdmEgbGEgZ2lhbyBkaWNoIHZpZW4gcGhv bmcgZGljaCB2dSBraGFjaCBoYW5nIE5nYW4gaGFuZyBCSURWIERvbmcgRG8gKHR1IHRoYW5nIDgv MjAwNCBkZW4gdGhhbmcgNC8yMDA4KS4NCg0KVHJvbmcgdGhvaSBnaWFuIG5heSwgVGh1eSBkYSBs b2kgZHVuZyBuaGllbSB2dSBkdW9jIGdpYW8sIGNhdSBrZXQgdm9pIG5ndW9pIHRoYW4gdHJvbmcg DQpnaWEgZGluaCwgYmFuIGJlIHZhIG1vdCBzbyBjYW4gYm8gTmdhbiBoYW5nIFZpZXRjb21iYW5r IGNoaSBuaGFuaCBUaGFuaCBDb25nIChIYSANCk5vaSkgc3VhIGNodWEsIHhhYyBuaGFuIGtob25n IHNvIGR1IHRyZW4gZ2lheSBjaHVuZyBuaGFuIHRpZW4gZ3VpIHRpZXQga2llbSBjbyBreSBoYW4g DQpjdWEgVmlldGNvbWJhbmsgVGhhaSBCaW5oIHZhIFZpZXRjb21iYW5rIGNoaSBuaGFuaCBUaGFu aCBDb25nLCBzYXUgZG8gZGVtIHRoZSANCmNoYXAgdGFpIFF1eSB0aWV0IGtpZW0gc28gMSBOZ2Fu IGhhbmcgQklEViBUaGFpIEJpbmggdmEgQklEViBEb25nIERvIGRlIGNoaWVtIA0KZG9hdCB0aWVu IGN1YSBjYWMgTmdhbiBoYW5nIHRyZW4uDQoNCkJhbmcgY2FjIHRodSBkb2FuIHR1b25nIHR1LCB0 dSBuYW0gMjAwMyBkZW4gdGhhbmcgNC8yMDA4LCBUaHV5IGN1bmcgZG9uZyBwaGFtIGRhIA0Kc3Vh IGNodWEsIGxhbSBnaWEsIHRyYW8gZG9pIDE0IGdpYXkgY2h1bmcgbmhhbiB0aWVuIGd1aSBjbyBr eSBoYW4sIGNoaWVtIGRvYXQgY3VhIEJJRFYgDQpUaGFpIEJpbmggaG9uIDI5IHR5IGRvbmcuDQoN Ck5nb2FpIHJhLCBUaHV5IGNoaSBkYW8gbmd1b2kgdGhhbiBxdWVuIHN1YSBjaHVhLCBsYW0gZ2lh IDIzIGdpYXkgY2h1bmcgbmhhbiB0aWVuIGd1aSwgDQp4YWMgbmhhbiBraG9uZyBuaGlldSBnaWF5 IHRvIGNvIGdpYSB0cmkgZGUgbGFtIHRodSB0dWMgdmF5IGhvbiAyNjAgdHkgZG9uZyB0YWkgQklE ViANCkRvbmcgRG8uLi4gU2F1IGtoaSBjaGllbSBkb2F0IGR1b2MgdGllbiwgY2FjIGJpIGNhbyBk YSBkdW5nIHZhbyB2aWVjIGRhdSB0dSBraW5oIGRvYW5oIA0KYmF0IGRvbmcgc2FuLCBjaHVuZyBr aG9hbiwgdmFuZywgdGlldSB4YWkgY2Egbmhhbi4NCg0KVmllbiBLaWVtIHNhdCBuaGFuIGRpbmgs IGR1IGhhbmggdmkgcGhhbSB0b2kgY3VhIGNhYyBiaSBjYW4gZGllbiByYSB0cm9uZyB0aG9pIGdp YW4gZGFpIA0KKHRvaSBnYW4gNiBuYW0sIHR1IG5hbSAyMDAzLTIwMDgpIHRyZW4gZGlhIGJhbiAy IHRpbmggVGhhaSBCaW5oIHZhIHRoYW5oIHBobyBIYSBOb2ksIA0Kc29uZyBjYWMgbmdhbiBoYW5n IHZhbiBraG9uZyBwaGF0IGhpZW4gcmEgc2FpIHBoYW0gbmF5Lg0KDQpOaGlldSBkb2kgdHVvbmcg dHJvbmcgdnUgYW4gbGEgbmh1bmcgY2FuIGJvIHRyb25nIG5nYW5oIG5nYW4gaGFuZyBkYSBkdW9j IGRhbyB0YW8gY28gDQpiYW4sIGR1b2MgcGhhbiBjb25nIGRhbSBuaGllbSBuaHVuZyB2aSB0cmkg Y29uZyB0YWMgcXVhbiB0cm9uZyB0cm9uZyBuZ2FuaCBOZ2FuIA0KaGFuZywgZG8gc3V5IHRob2Fp IHZlIGRhbyBkdWMsIGhhbSBsb2kuLi4gZGEgY2F1IGtldCB2b2kgbmhhdSB2YSBjdW5nIGNhYyBk b2kgdHVvbmcgDQpuZ29haSB4YSBob2kgdGh1YyBoaWVuIGhhbmggdmkgcGhhbSB0b2kgdm9pIG5o dW5nIHRodSBkb2FuIGhldCBzdWMgdGluaCB2aS4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL25ld3MvUGFnZXMvMjAxMDMxLzIwMTAwNzI2MDE0NjUwLmFzcHggTGUgUXVhbiAyNi8wNy8y MDEwIDE6NDYgDQoNCkhhIE5vaTogTmh1bmcgY29uZyB0cmluaCBsYW5nIHBoaSAtIENobyBob2Fu ZyBnaXVhIHRodSBkbyAgDQogIA0KVHJvbmcga2hpIEhhIE5vaSBkYW5nIGxvYXkgaG9heSB0aW0g ZGFwIHNvIGNobyBiYWkgdG9hbiBkZXAgY2hvIGNvYywgaGFuZyByb25nIHRoaSBsYWkgDQpjbyBr aG9uZyBpdCBraHUgY2hvIGRhdSB0dSBoYW5nIGNodWMgdGkgZG9uZyByb2kgZGUga2hvbmcgaG9h YyBidW9jIHBoYWkgY2h1eWVuIGRvaSBtdWMgZGljaCBob2F0IGRvbmcuIA0KDQpodHRwOi8vdHVh bnZpZXRuYW0ubmV0LzIwMTAtMDgtMTQtaGEtbm9pLXZhLW5odW5nLWNvbi1kdW9uZy1kb2ktbmdh eS1ob2FuLXRoaWVuIER1YyBBbmggMTUvMDgvMjAxMCAwNjowMCBHTVQrNw0KDQpIYSBOb2k6IE5o dW5nIGNvbiBkdW9uZyBtb24gbW9pIGRvaSBuZ2F5IGhvYW4gdGhpZW4gDQoNCkNoaSBjb24gNTcg bmdheSBudWEgbGEgZGVuIERhaSBsZSBOZ2hpbiBuYW0gVGhhbmcgTG9uZy4gTmh1bmcgdHJlbiBu aHVuZyB0dXllbiANCmR1b25nIGNoaW5oIG8gSGEgTm9pIHZhbiBjb24gbmh1bmcgY29uZyB0cmlu aCBkYW5nIGRvLi4uIChDaHVtIGFuaCBkbyBraWVuIHRydWMgc3UgRHVjIEFuaCBndWkgZGVuKSAN Cg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vdm4vY2hpbmgtdHJpLzI1NDMvaGEtbm9pLS1jaGFtLXhh LWhvaS1ob2EtZG8tbW8tcm9uZy1kaWEtZ2lvaS0uaHRtbCBDYXAgbmhhdCBsdWMgMDkvMTIvMjAx MCAwMjowODoyNiBQTSAoR01UKzcpIA0KDQpIYSBOb2k6IE5oaWV1IGR1IGFuIHhhIGhvaSBob2Eg YmVuaCB2aWVuLCB0cnVvbmcgaG9jIHRyZW4gZGlhIGJhbiB0aGFuaCBwaG8gYmkgY2hhbSANCg0K aHR0cDovL3d3dy5sYW9kb25nLmNvbS52bi9UaW4tdHVjL05hbmctY2FwLUJWLVUtYnVvdS1IYS1O b2ktOC1uYW0tdmFuLWtob25nLXhvbmcvNDYxOSBIYWkgUGhvbmcgNS43LjIwMTAgMDk6MDMgKEdN VCArIDcpIA0KDQpIYSBOb2k6IE5hbmcgY2FwIEJWIFUgYnVvdSBIYSBOb2kgOCBuYW0gdmFuIGto b25nIHhvbmchIA0KDQpUcmFpIHF1YSA4IG5hbSwgdm9pIDIgZG9pIGNodSBkYXUgdHUsIGNvbmcg dHJpbmggbmF5IHZhbiBjaHVhIGhvYW4gdGhhbmguIER1IGFuIGNhaSANCnRhbywgbmFuZyBjYXAg QmVuaCB2aWVuIFUgYnVvdSBIYSBOb2kgZGEgdHJvIHRoYW5oIG1vdCB0cm9uZyBuaHVuZyBkdSBh biBjaGFtIHRyZSwgDQpub2kgbmh1YyBuaG9pIGN1YSB5IHRlIHRodSBkby4NCg0KaHR0cDovL3d3 dy5sYW9kb25nLmNvbS52bi9UaW4tVHVjL05hbmctY2FwLWJlbmgtdmllbi1VLWJ1b3UtSE4tVGhp ZXQtaGFpLWdhbi0zLXRpLWRvbmcvNzk0MiA0LjguMjAxMCAwOTo0MCAoR01UICsgNykNCg0KSGEg Tm9pOiBOYW5nIGNhcCBiZW5oIHZpZW4gVSBidW91IEhOIC06IFRoaWV0IGhhaSBnYW4gMyB0aSBk b25nIA0KDQpMYW8gRG9uZyBzbyByYSBuZ2F5IDUuNyBkYSBjbyBiYWkgcGhhbiBhbmggdmUgZHUg YW4gbmFuZyBjYXAgQmVuaCB2aWVuIFUgYnVvdSBxdWEgOCANCm5hbSB2YW4ga2hvbmcgeG9uZywg bG9pIGRvIHN1IGNoYW0gdHJlIHR1IHBoaWEgQmFuIHF1YW4gbHkgZHUgYW4gU28gWSB0ZS4gVGhl byB0aG9uZyANCnRpbiBjaHVuZyB0b2kgbW9pIGNvIGR1b2MsIGNoaSByaWVuZyB2aWVjIGNoYW0g dGllbiBkbyBjdWEgZHUgYW4gY3VuZyBkYSBnYXkgdGhpZXQgaGFpIHRvaSBnYW4gMyB0aSBkb25n Lg0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29tLnZuL0hvbWUvQ2hhbi1udW9pLWRpZXUtZHVuZy12 aS10aGlldS1kaWVuLzIwMTA2LzE4ODQyNS5sYW9kb25nIDg6MDkgQU0sIDE2LzA2LzIwMTANCg0K SGEgTm9pOiBDaGFuIG51b2kgZGlldSBkdW5nIHZpIHRoaWV1IGRpZW4NCiANClRpbmggdHJhbmcg Y2F0IGRpZW4gbmhpZXUga2h1IHZ1YyBuZ29haSB0aGFuaCBIYSBOb2kgZG8gdGhpZXUgZGllbiBr aGllbiBraG9uZyBpdCB0cmFuZyB0cmFpIGNoYW4gbnVvaSBraG9uIGRvbi4NCg0KaHR0cDovL3Zu ZWNvbm9teS52bi8yMDEwMDQwMjA5MjMyMjQwMlAwQzE3L2toYWNoLXNhbi10cm9uZy1jb25nLXZp ZW4tdmEtY2hpLXBoaS1jby1ob2kuaHRtIERVQyBUUkkgMDIvMDQvMjAxMCAwOTozNCAoR01UKzcp ICh0cmljaCkNCiANCkhhIE5vaTogS2hhY2ggc2FuIHRyb25nIGNvbmcgdmllbiB2YSAiY2hpIHBo aSBjbyBob2kiIA0KDQpUaGVvIHBoYW4gdGljaCBjdWEgY2h1IGRhdSB0dSwgInRoaWV0IGhhaSIg dHJvbmcgdmllYyBraG9uZyBkdW9jIHhheSBraGFjaCBzYW4gdHJvbmcgDQpDb25nIHZpZW4gVGhv bmcgTmhhdCBsZW4gdG9pIGdhbiA4MCB0cmlldSBVU0QNCg0KQW5oIGNodXA6IEtodSBkYXQgdGFp IDI5NSBMZSBEdWFuIC0gbm9pIENvbmcgdHkgU0lIIHR1bmcgZHVvYyBjYXAgZGF0IHhheSBraGFj aCBzYW4uDQoNClRyYW5oIGNhaSBxdWFuaCBkdSBhbiBLaGFjaCBzYW4gTm92b3RlbCBIYW5vaSBv biB0aGUgUGFyayAodHJ1b2MgZGF5IGNvIHRlbiBTQVMgDQpSb3lhbCkgdmFuIGRhbmcgdGllcCB0 dWMsIHNhdSBraGkgY2h1IGRhdSB0dSBtb2kgZGF5IGRhIGNvIGNvbmcgdmFuIGRlIG5naGkgVUJO RCANCnRoYW5oIHBobyBIYSBOb2kgY2FwIHRoZW0gZGF0IGRlICJkZW4gYnUiIGNobyBuaHVuZyB0 aGlldCBoYWkgdHUgdmllYyBraG9uZyBkdW9jIHhheSANCmtoYWNoIHNhbiB0cm9uZyBDb25nIHZp ZW4gVGhvbmcgTmhhdC4NCg0KQ28gdmUgbmh1IGNhdSBjaHV5ZW4gImNoaSBwaGkgY28gaG9pIiBj dSB0aGUgY3VhIG1vdCBuaGEgZGF1IHR1IGRhIHZhIGRhbmcgbGEgZ2FuaCANCm5hbmcgY2hvIGNo aW5oIHF1eWVuIHRoYW5oIHBoby4gTmh1bmcgYmVuIGNhbmggZG8sIGNvIG1vdCB0aHUgImNoaSBw aGkgY28gaG9pIiBraGFjIA0KY29uIHF1YW4gdHJvbmcgaG9uOiBuaWVtIHRpbiBjdWEgY2FjIG5o YSBkYXUgdHUgZG9pIHZvaSBjaGluaCBxdXllbiB2YSBtb2kgdHJ1b25nIGRhdSANCnR1LCB0cm9u ZyBib2kgY2FuaCBjYXAgcGhlcCBkdSBhbiB2YSBkYXQgZGFpIHZhbiBsYSBtb3QgcXV5IHRyaW5o ICJ4aW4gLSBjaG8iIHR1IGJhbyBuaGlldSANCm5hbSBuYXkgY2h1YSBoZSB0aGF5IGRvaS4NCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQyLzIwMTAxMDEyMTUz MzA5LmFzcHggQmFvIENhbSAxMi8xMC8yMDEwIDE1OjMzIA0KDQpIYSBOb2k6IDMuNDA2IGRhbmcg dmllbiB2aSBwaGFtIHBoYWkgeHUgbHkga3kgbHVhdCwgdHJvbmcgNSBuYW0gDQogIA0KVGhvbmcg dGluIHRyZW4gZHVvYyBjb25nIGJvIHRhaSBIb2kgbmdoaSB0b25nIGtldCBDaHVvbmcgdHJpbmgg MDIgdmUgY29uZyB0YWMgeGF5IGR1bmcgDQpjaGluaCBkb24gRGFuZyBnaWFpIGRvYW4gMjAwNiAt IDIwMTAgZG8gVGhhbmggdXkgSGEgTm9pIHRvIGNodWMgc2FuZyBuYXkgKDEyLjEwKS4gDQoNClRo ZW8gb25nIE5ndXllbiBEdWMgTWluaCwgUGhvIHRydW9uZyBiYW4gdGh1b25nIHRydWMgQmFuIFRv IGNodWMgVGhhbmggdXkgSGEgDQpOb2ksIHR1IG5hbSAyMDA2IC0gMjAxMCwgY28gMy40MDYgZGFu ZyB2aWVuIHRyb25nIHRvYW4gRGFuZyBibyB2aSBwaGFtIGJpIHh1IGx5IGt5IA0KbHVhdC4gVHJv bmcgZG8sIGNvIDEuMTA4IGNhcCB1eSB2aWVuIGNhYyBjYXAgKGNoaWVtIDMyLDUlKS4NCg0KQ2Fj IGhpbmggdGh1YyBreSBsdWF0IGdvbToga2hpZW4gdHJhY2ggMS4wODkgZGFuZyB2aWVuLCBjYW5o IGNhbyAxLjY0NCwgY2FjaCBjaHVjIDIwMiwgDQpraGFpIHRydSA0NzEsIHh1IGx5IGhhbmggY2hp bmggMTcxLCB4dSBseSBiYW5nIHBoYXAgbHVhdCAyNS4gQ28gNTYgY2FuIGJvIGRpZW4gQmFuIA0K dGh1b25nIHZ1IFRoYW5oIHV5IHF1YW4gbHkgdmEgbmhpZXUgY2FuIGJvIHF1YW4sIGh1eWVuLCB0 aGkgdXkgdmEgdHVvbmcgZHVvbmcgcXVhbiBseS4NCg0KTGllbiBxdWFuIGRlbiBuaHVuZyB2aSBw aGFtIHRyb25nIGxpbmggdnVjIHBob25nIGNob25nIHRoYW0gbmh1bmcgdmEgY2FjIGJpZXUgaGll biANCnRpZXUgY3VjIGtoYWMsIG9uZyBNaW5oIGNobyBiaWV0LCBxdWEga2llbSB0cmEgMS45OTYg ZGFuZyB2aWVuIHZhIDM1NyB0byBjaHVjIGRhbmcgY28gDQpkYXUgaGlldSB2aSBwaGFtLCBkYSBr ZXQgbHVhbiAxLjQ3NCBkYW5nIHZpZW4gY28gZGF1IGhpZXUgdmkgcGhhbSAoY2hpZW0gNzMsOCUp LCBwaGFpIA0KdGhpIGhhbmgga3kgbHVhdCA4NTMgdHJ1b25nIGhvcDsga2V0IGx1YW4gMTgyIHRv IGNodWMgRGFuZyBjbyBzYWkgcGhhbSAoY2hpZW0gNTElKSwgdGhpIA0KaGFuaCBreSBsdWF0IDMz IHRvIGNodWMgRGFuZy4gDQoNCmh0dHA6Ly93d3cudGh1dmllbnBoYXBsdWF0LnZuLz9DVD1OVyZO SUQ9MzA2MjUgIDA3LzEwLzIwMDkNCg0KSGEgTm9pOiBEZW4gYnUuLi4gNTAuMDAwZCBtb3QgbWV0 IHZ1b25nIGRhdCAtIFRodSBob2kgZGF0IGtob25nIGNvIHF1eWV0IGRpbmgNCg0KRGF0IG8gdGh1 IGRvIEhhIE5vaSB0aHVvYyBsb2FpIGRhdCwgY28gbm9pIGdpYSBkYXQgZGVuIGNhIHRyYW0gdHJp ZXUgZG9uZy8xbTIuIE5odW5nIA0KbmdoaWNoIGx5IGxhaSB4YXkgcmEgbyBxdWFuIExvbmcgQmll biwgZ2lhIGRhdCBtYSBVQk5EIHF1YW4gYXAgZ2lhICJobyB0cm8iIGNobyBuZ3VvaSBkYW4gY2hp IDUwIG5naGluIGRvbmcvMW0yLiANCg0KVGh1IGhvaSBkYXQga2hvbmcgY28gcXV5ZXQgZGluaCAN Cg0KVHJvbmcgZG9uIHRodSBndWkgYmFvLCBoYW5nIGNodWMgaG8gZGFuIG8gcGh1b25nIER1YyBH aWFuZywgcXVhbiBMb25nIEJpZW4sIEhhIE5vaSANCnBoYW4gYW5oIHZpZWMgVUJORCBxdWFuIExv bmcgQmllbiB0aHUgaG9pIGRhdCBjdWEgY2FjIGhvIGRhbiBkZSBtbyByb25nIHR1eWVuIA0KZHVv bmcgVHJ1b25nIExhbSBuaHVuZyBraG9uZyBjbyBxdXlldCBkaW5oIHBoZSBkdXlldCBkdSBhbiBj dW5nIG5odSBraG9uZyBjbyANCnF1eWV0IGRpbmggdGh1IGhvaSBkYXQuIA0KDQpEYWkgZGllbiBj aG8gY2FjIGhvIGRhbiwgYmEgTHVvbmcgVGhpIE1vYyAoc28gbmhhIDk5LCBkdW9uZyBUcnVvbmcg TGFtKSBjaG8gYmlldDogDQoiRGF0IG5oYSBjaHVuZyB0b2kgc2luaCBzb25nIG9uIGRpbmgsIGto b25nIHRyYW5oIGNoYXAgdHUgdHJ1b2MgbmFtIDE5OTMsIGhhbmcgbmFtIA0KY2h1bmcgdG9pIHZh biBkb25nIHRodWUgZGF0IHZhIGRhIGR1b2MgVUJORCBodXllbiBHaWEgTGFtIChjdSkgY29uZyBu aGFuIHJhbmggZ2lvaS4gDQpOZXUgY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBsYXkgZGF0IGxhbSBk dW9uZyB0aGkgY3VuZyBwaGFpIGJvaSB0aHVvbmcgY2hvIGNodW5nIHRvaSANCnRoZW8gZ2lhIHF1 eSBkaW5oIGN1YSB0aGFuaCBwaG8gbGEgMTQgdHJpZXUgZG9uZy8xbTIsIGNodSBub2kgbGEgaG8g dHJvIGdpYWkgcGhvbmcgbWF0IA0KYmFuZyBjaGkgY28gNTAgbmdoaW4gZG9uZy8xbTIgbGEgaGV0 IHN1YyB2byBseSIuIA0KDQpPbmcgTmd1eWVuIE1hbmggSGEsIG1vdCBobyBkYW4gY28gZGF0IGJp IHRodSBob2kgY3VuZyBwaGFuIHVuZzogIjEwMCUgbmd1b2kgZGFuIG8gDQpkYXkgc2FuIHNhbmcg Z2lhbyBkYXQgZGUgbGFtIGR1b25nIG5odW5nIHBoYWkgZGVuIGJ1IHRoZW8gZHVuZyBxdXkgZGlu aCBjdWEgcGhhcCBsdWF0LiANCkRhdCBjdWEgZ2lhIGRpbmggdG9pIG8gb24gZGluaCB0dSB0cnVv YyBuYW0gMTk5MywgbWFjIGR1IGNodWEgY28gc28gZG8gbmh1bmcga2hpIHRpZW4gDQpoYW5oIGxh eSBkYXQgdGhpIFVCTkQgcXVhbiBMb25nIEJpZW4gcGhhaSBkZW4gYnUgY2h1Ii4gDQoNCmh0dHA6 Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS9kb3RoaS8yMDA5LzA4Lzg2MjMxOS8gMjI6MDUsIDA3 LzA4LzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IEJpZXQgdGh1IG1vYyBsZW4gdHUuLi4gcnVvbmcg DQoNCmh0dHA6Ly93d3cuaGFub2ltdWF0aGkuY29tL2luZGV4LnBocD9hY3Q9TmV3cyZ1cmw9L0dM L0tpbmgtZG9hbmgvQmF0LURvbmctc2FuLzIwMDkvMDkvM0JBMTM2QjcvIFRodSBoYWksIDE0Lzkv MjAwOSwgMTU6MjkgR01UKzcgDQoNCkhhIE5vaTogSGFuZyB0cmFtIGJpZXQgdGh1IGNvIEhhIE5v aSBiaSAnYmFtIG5hdCcNCg0KR2FuIDgwJSBjYWMgYmlldCB0aHUgY28gdHJlbiBkaWEgYmFuIHRo YW5oIHBobyBkYW5nIGJpIHh1b25nIGNhcCwgYmllbiBkYW5nIGRvIG11YyBkaWNoIHN1IGR1bmcg YmkgdGhheSBkb2ksIGN1bmcgcXVhIHRyaW5oIGRvIHRoaSBob2EgcXVhIG5oYW5oIHZhIHN1IGJ1 b25nIGxvbmcgcXVhbiBseS4NCg0KaHR0cDovL3BoYXBsdWF0dHAudm4vMjAxMDExMTcxMjM1MzIy ODdwMGMxMDE1L2hhLW5vaS1uaGlldS1zYWktcGhhbS10cm9uZy1ob2F0LWRvbmctY29uZy1jaHVu Zy5odG0gMTcvMTEvMjAxMCAtIDAxOjA1IEFNIA0KDQpIYSBOb2k6IE5oaWV1IHNhaSBwaGFtIHRy b25nIGhvYXQgZG9uZyBjb25nIGNodW5nDQoNCihQTCktIFRoYW5oIHRyYSBCbyBUdSBwaGFwIHZ1 YSBjb25nIGJvIGtldCBxdWEgdGhhbmggdHJhIDE5IHRvIGNodWMgaGFuaCBuZ2hlIGNvbmcgDQpj aHVuZyB0YWkgVFAgSGEgTm9pLg0KDQpUYXQgY2EgZG9uIHZpIG5heSBkZXUgY28gbmh1bmcgc2Fp IHBoYW0gbmhhdCBkaW5oIG5odSBraG9uZyBtdWEgYmFvIGhpZW0gdHJhY2ggbmhpZW0gDQpuZ2hl IG5naGllcCwga2hvbmcgbmllbSB5ZXQgdGh1IGxhbyBjb25nIGNodW5nLi4uIE1vdCBzbyBobyBz byBjb25nIGNodW5nIGNvIG5vaSBkdW5nIA0KZ2lhbyBkaWNoIHZpIHBoYW0gcGhhcCBsdWF0IG5n aGllbSB0cm9uZy4gDQoNCmh0dHA6Ly92bmV4cHJlc3MubmV0L0dML1hhLWhvaS8yMDEwLzAzLzNC QTE5ODg5LyAxMC8zLzIwMTAsIDE5OjUzIEdNVCs3DQoNCkhhIE5vaTogQ2hheSBjaHVuZyBjdSAx OCB0YW5nLCAyIG5ndW9pIGNoZXQgKGR1b2MgZHVhIGRpIGNhcCBjdXUgYmFuZyB4ZSBvbSkgDQoN CjE4aCB0b2kgMTAvMyBuaHVuZyBjb3Qga2hvaSBib2MgY2FvIHRhaSB0YW5nIDE2IGNodW5nIGN1 IEpTQyAzNCAoTGUgVmFuIEx1b25nLCBIYSANCk5vaSkuIE5oaWV1IGN1IGRhbiBiaSBtYWMga2V0 IGxhbyByYSBiYW4gY29uZyB2YXkga2hhbiBjYXUgY3V1LiBUcm9uZyB0dXlldCB2b25nLCBjbyAN CmdpYSBkaW5oIGRhIGJlbiBxdWFuIGFvIHRoYW5oIGRheSwgYnVvYyBjb24gbWluaCB0aGEgeHVv bmcgdGFuZyBkdW9pLg0KDQpBbmggSG8gU3kgQmFjLCBtb3QgbmhhbiBjaHVuZyBrZSBsYWk6ICJU aGF0IGtpbmggaG9hbmcsIG5odW5nIGNvdCBraG9pIGRlbiBjdW9uIGNhbywgDQp0aWVuZyBsYSBo ZXQuIE5oaWV1IG5ndW9pIGxhbyB4dW9uZyB0YW5nIDEsIGNvbiBuaHVuZyBuZ3VvaSBvIHRhbmcg Y2FvIHRoaSBkbyByYSBiYW4gDQpjb25nIHZheSBhbyBjYXUgY3V1Ii4NCg0KQ2hpIFZ1b25nIExh biBQaHVvbmcsIDM0IHR1b2kgdmEgY29uIHRyYWkgTHV1IEdpYSBNaW5oIDEwIHR1b2ksIHNvbmcg dGFpIHRhbmcgMTggZGEgdHUgDQp2b25nIHRhaSBiZW5oIHZpZW4gZG8gYmkgbmdhdCBraG9pLiAz IG5ndW9pIGtoYWMgYmkgdGh1b25nIGRhbmcgZHVvYyBjYXAgY3V1LiANCg0KWSBraWVuIGJhbiBk b2MgKDEwKSANCg0KSGF5IG5naGkgZGVuIHNpbmggbWFuZyBjdWEgY29uZyBkYW4NCg0KRGF5IGxh IHN1IGNhbmggYmFvIGNobyBjdSBkYW4gc29uZyBvIGNhYyB0b2EgY2h1bmcgY3UgY2FvIHRhbmcg byBWaWV0IE5hbS4NCg0KWGluIGhvaSBjYWMgbmhhIHF1YW4gbHksIGtoaSB4YXkgZHVuZyBuaHVu ZyB0b2EgbmhhIGNhbyB0YW5nLCBjbyBuZ2hpIGRlbiBwaHVvbmcgYW4gY2FwIA0KY3V1IGtoYW4g Y2FwLCBiaWVuIHBoYXAgcGhvbmcgY2hvbmcgY2hheSBjaG8gbmd1b2kgZGFuIGhheSBraG9uZyB2 YSBsdWMgbHVvbmcgY2FuaCBzYXQgDQpjdXUgaG9hIGNvIGR1IHBodW9uZyB0aWVuIGRlIGN1dSBk YW4ga2hpIGNhbi4NCihOZ3V5ZW4gVHVhbikNCg0KR29wIHkga2llbg0KDQpUaGVvIHRvaSwgY2Fj IHRvYSBuaGEgY2FvIHRhbmcgbmVuIGxhbSBjYXUgdGhhbmcgdGhvYXQgaGllbSBvIGJlbiBuZ29h aSB0aGF5IHZpIGxhbSBiZW4gDQp0cm9uZy4gTmhvIGNvIGtob2kgdGhpIGdpbyB0YXQgZGkuIFRv aSB0aGF5IHJhdCBuaGlldSB0b2EgbmhhIGxhbSBjYXUgdGhhbmcgdGhvYXQgaGllbSB0aGVvIGNh Y2ggbmF5LiANCihMZSBEdWMgVmlldCkNCg0KUXVhIGNoYW0gdHJlDQoNClhpbiBjaGlhIGJ1b24g Y3VuZyBub2kgZGF1IGN1YSBhbmggVmluaCBsYSBjaG9uZyBjdWEgY2hpIExhbiBQaHVvbmcgdmEg Y2hhIGN1YSBjaGF1IE1pbmguIA0KQnVvaSBjaGlldSBob20gcXVhIHRvaSBkYSBjaHVuZyBraWVu IHZ1IHZpZWMgdHUgZGF1IGRlbiBjdW9pLiANClRoYXQgc3UgdG9pIHJhdCBidWMgeHVjIHZpIHRo YWkgZG8ga2hvbmcgY2hpdSBob3AgdGFjIGN1YSBiYW4gcXVhbiBseSB0b2EgbmhhLiBSb2kgc2F1 IGRvIGRlbiANCmxpbmggY3V1IGhvYSwgNiBjaGllYyB4ZSBjdW5nIHZhbyB0dSBsdWMgNmg0NSB2 YXkgbWEgZGVuIDdoMzAgbW9pIGJhdCBkYXUgY2hvIHRoYW5nIGxlbiBjdXUgbmd1b2kuDQoNCkto aSB2dSB2aWVjIGRhIGdpYWkgcXV5ZXQgc2FwIHhvbmcgdGhpIHRvaSB0aGF5IGFuaCB4ZSBvbSBk YSBkdWEgaGFpIG1lIGNvbiBjaGkgTGFuIHZhIGNoYXUgDQpNaW5oIHBob25nIHhlIG1heSB2ZSB2 YSBub2k6ICJLaG9uZyBjdXUgZHVvYyBudWEgcm9pLCBkaSBQaHVuZyBIdW5nIHJvaSIgKHRyaWNo IG5ndXllbiB2YW4gDQpsb2kgYW5oIGF5IG5vaSkgbGFtIHRhdCBjYSBjaHVuZyB0b2kgYmFuZyBo b2FuZy4gDQoNClRodW9uZyB0aGkga2hpIHhlIGN1dSBob2EgbmhhbiBsZW5oIGRpIGtoaSBjbyBi YW8gY2hheSBsYSBwaGFpIGNvIHhlIGN1dSB0aHVvbmcgZGkgY3VuZywgDQp2YXkgdGFpIHNhbyBr aGkgbWUgY29uIGNoaSBMYW4gZHVhIHJhIG1hIHBoYWkgMzAgcGh1dCBzYXUgbW9pIGR1YSBtZSBj b24gY2hpIGF5IHZhbyB2aWVuIA0KZHVvYywgbWEgZHVhIHZhbyB2aWVuIGJhbmcgeGUgb20uIENh YyBjbyBxdWFuIGNodWMgbmFuZyBnaWFpIHRoaWNoIG5odSB0aGUgbmFvPyBCYW4gcXVhbiANCmx5 IHRvYSBuaGEgY2hpdSB0cmFjaCBuaGllbSBuaHUgdGhlIG5hbz8gVGhhdCBkYW5nIGJ1b24gY2hv IGdpYSBkaW5oIGFuaCBWaW5oLiANClhpbiBjaGlhIGJ1b24gbm9pIGRhdSBjdWEgYW5oLiANCihO Z3V5ZW4gVmFuIEh1bmcpDQoNCkNoaWEgYnVvbiBjdW5nIGdpYSBkaW5oIGNoaSBQaHVvbmcNCg0K S2h1IG5oYSBuYXkgcmF0IGdhbiB0cnVvbmcgcGhvbmcgY2hheSBjaHVhIGNoYXkuIE5odW5nIHJh dCBsYXUgc2F1IGtoaSBjbyBkYW0gY2hheSB2YW4gDQpraG9uZyB0aGF5IGNvIGN1dSBob2EgZGVu LiBUaGF0IGRhdSBsb25nIGNobyAyIG1lIGNvbiBjaGkgTGFuIFBodW9uZywgeGluIGNoaWEgYnVv biBjdW5nIGdpYSBkaW5oLiANCihCYW4gZG9jIEhhIE5vaSkNCg0KQ2FuIHBoYWkgdHJhbmcgYmkg dGhpZXQgYmkgY3V1IGhvDQoNClRyYW5nIGJpIGN1dSBobyB0cm9uZyBjYWMgbmhhIGNhbyB0YW5n IG8gVk4gcmF0IGtlbS4gVHJvbmcgdHJ1b25nIGhvcCAyIG1lIGNvbiBjaGkgUGh1b25nIG5heSwg DQpuZXUgY28gbWF0IG5hIHBob25nIGtob2kgdGhpIGNoYWMga2hvbmcgY28ga2V0IHF1YSBiaSB0 aGFtIG5heS4gQ28gdHJhbmcgYmkgbmF5LCBjbyBraGEgbmFuZyANCnRob2F0IHJhIG5nb2FpIGJh bmcgZHVvbmcgY2F1IHRoYW5nIGJvIGJhdCBjaGFwIGtob2kgZGF5IGRhYy4gVHJvbmcgY2FjIGNo dW5nIGN1LCBraGFjaCBzYW4gDQpjYW8gdGFuZyBvIG51b2MgbmdvYWkgbWEgdG9pIGRhIGdhcCwg Y2FjIHBob25nIGRldSBjbyB0aGlldCBiaSBuYXkuDQooQmliaSkNCg0KaHR0cDovL3d3dy52aWV0 bmFtbmV0LnZuL2J2a2gvMjAxMDAzL0NoaS1udWEtdHktZGF0LWNvYy0xLW1hbmgtZGF0LTg5OTI4 Mi8gMTQ6MzYgMTcvMDMvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogTXVhIGRhdCBLRFQgQmFjIEFu IEtoYW5oOiBOaGlldSB0eSBkb25nIGRhdCBjb2MnYm9jIGhvaScgDQoNCmh0dHA6Ly9iZWUubmV0 LnZuL2NoYW5uZWwvMTk4Ny8yMDEwMDgvSGEtTm9pLVRyYW5oLW8tZ2EtYmkteGUtdGFpLWRhbS0z LW5ndW9pLWNoZXQtMTc2NTA0OS8gIDI1LzA4LzIwMTAgMTI6NTQ6NDcgDQoNCkhhIE5vaTogVHJh bmggbyBnYSBiaSB4ZSB0YWkgZGFtLCAzIG5ndW9pIGNoZXQgDQoNCmh0dHA6Ly9kYW52aWV0LnZu LzEzMzEwcDFjMjQvaGEtbm9pLXNhcC1uaGEtMS1uZ3VvaS1jaGV0LWNoaW5oLXF1eWVuLXRoby1v Lmh0bSAwMS8wOS8yMDEwIDA4OjAwDQoNCkhhIE5vaTogU2FwIG5oYSwgMSBuZ3VvaSBjaGV0LCA3 IG5ndW9pIGJpIHRodW9uZywgY2hpbmggcXV5ZW4gdGhvIG8gDQoNCmh0dHA6Ly93d3cudmlldG5h bW5ldC52bi94YWhvaS8yMDEwMTAvSGEtTm9pLUxhdC1jYW4tY2F1LWhhbmctdHJhbS1uZ3VvaS1k YW4taG9hbmctbG9hbi05NDIyMjkvIDAwOjA0LCAxNS8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9p OiBIb2FuZyBsb2FuIGNhbiBjYXUgNjUgdGFuIGRvIHZhbyBuaGENCg0KaHR0cDovL2RhbnRyaS5j b20udm4vYzI1L3MyMC00MDYzODMvaGEtbm9pLXNhcC1jYXUteGF5LWR1bmctMi1uZ3VvaS1jaGV0 LXRhaS1jaG8uaHRtIDAyLzA3LzIwMTAgLSAxNjozOA0KDQpIYSBOb2k6IFNhcCBjYXUgeGF5IGR1 bmcsIDIgbmd1b2kgY2hldCB0YWkgY2hvIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlu bmhhbmgvMjAxMDEwL1J1b2Mtc2lldS1iYW4tcmEtbG8tYmVuLWFvLXRob2ktZG9uLXZlLUhOLTk0 MjI1Mi8gMDc6MTAsIFRodSBTYXUsIDE1LzEwLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IFJ1b2Mg J3NpZXUgYmFuJyByYSBsbyBiZW4gYW8gdGhvaSwgZG9uIHZlIEhOIA0KDQpodHRwOi8vd3d3LmRh bnZpZXQudm4vMTU5NzFwMWMzMC9waGF0LWhpZW4tbmd1b2ktc29uZy10cmVuLW5vYy1uaGEtYnV1 LWRpZW4taGEtbm9pLmh0bSAzMC8wOS8yMDEwIDA2OjM1DQoNCkhhIE5vaTogQW5oIGNodXAgLSBE b25nIGhvIEJ1dSBkaWVuIEhhIE5vaSBjaGkgMTBoMTAnIHRyb25nIGtoaSBkb25nIGhvIE5oYSB0 aG8gTG9uIEhhIE5vaSBjaGkgMTBoNScgDQoNCmh0dHA6Ly93d3cyLnZpZXRuYW1uZXQudm4vYnZr aC9tb2lub25nLzIwMTAwMi9OZ3VvaS1sb24tdHJlLWVtLWJpLWFuLWRvLW8tSG9pLWdvLURvbmct RGEtODk1MDQ1LyAxNDo1NiwgMTgvMDIvMjAxMCAoR01UKzcpDQoNCkhhIE5vaSAtIEhvaSBnbyBE b25nIERhDQoNCkRlbiBoZW4gbGFpIGxlbiwgY3UgTXVuZyA1IHRldCBsYSBjYW5oIGhhbmcgcm9u ZywgcXVhIHZhdCwgY28gImJpcCIgbGFpIHR1IHRhcCBuaGF1IHRhaSBIb2kgZ28gRG9uZyBEYSBk ZSAiYW4gZG8iIGNhIHRyZSBjb24gdmEgbmd1b2kgbG9uLi4uDQoNClRhbiBob2ksIGNoaSBjbyBj YW5oIGhhbmcgcm9uZywgY28gYmFjIGJpcCBib20gbGEgdnVpLCBjb24gbmh1bmcgbmd1b2kgZGkg Y2hvaSBob2kgdGhpIHJhIHZlIHZvaSBidW5nIGRhdSwgdmkgcm9uZyB2YSBzdSBjYXkgY3UgInNh bmcgbmFtIHNlIHBodWMgaGFuIi4NCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2Rl dGFpbC9CYW5fZG9jX3ZpZXQvMzA1NDA2L3BoZS10aGFpLXhheS1kdW5nLXRyYW4tbmdhcC1xdW9j LWxvLTMyLmh0bSAxMy8wMS8yMDEwIDA2OjUzIA0KDQpIYSBOb2k6IFBoZSB0aGFpIHhheSBkdW5n IHRyYW4gbmdhcCBxdW9jIGxvIDMyICANCg0KTW9pIGtoaSBjbyBvIHRvIGRpIHF1YSwgbmd1b2kg ZGkgcGhpYSBzYXUgcGhhaSBodW5nIGNoaXUgbmh1bmcgZG90ICJiYW8gY2F0IiBtdSBtaXQsIHJh dCBuZ3V5IGhpZW0gY2hvIG5ndW9pIGRpIHhlIG1heSwgeGUgZGFwIGtoaSBnYXAgY2h1b25nIG5n YWkgdmF0Lg0KDQpodHRwOi8vdmlldG5hbW5ldC52bi90aW5uaGFuaC8yMDEwMTAvSGEtTm9pLVhl LWFpcmJsYWRlLWJvYy1jaGF5LWR1bmctZHVuZy1naXVhLXBoby05NDE3NDcvIER1YyBUYW0gKFRv bmcgaG9wKSAxNTo1OCwgMTIvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogWGUgQWlyYmxhZGUg Y2hheSBkdW5nIGR1bmcgZ2l1YSBwaG8NCg0KRGFuZyBkaSBjaHV5ZW4gdHJlbiBkdW9uZyB0aGkg ZG90IG5oaWVuIGNoaWVjIHhlIEFpcmJsYWRlIG1hdSB0cmFuZyBtYW5nIA0KQktTIDMwIFkyIJYg OTMyOSBib25nIG5oaWVuIHBoYXQgcmEgdGllbmcgbm8gbmhvIHJvaSBkdW5nIGR1bmcgYm9jIGNo YXkuDQpWdSB0YWkgbmFuIHRyZW4geGF5IHJhIHZhbyBraG9hbmcgNmgzMCBuZ2F5IDEyLzEwIHRh aSBuZ2EgdHUgS2h1YXQgRHV5IFRpZW4gliBOZ3V5ZW4gVHJhaSAoVGhhbmggWHVhbiwgSGEgTm9p KS4NCg0KKEFuaDogTmdvbiBsdWEgbmhhbmggY2hvbmcgYm9jIGxlbiBuZ2hpIG5ndXQuIEFuaDog VGllbnBob25nKQ0KDQpUaGVvIG5oaWV1IG5ndW9pIGRpIGR1b25nLCB0cnVvYyB0aG9pIGRpZW0g eGF5IHJhIHZ1IHZpZWMgY28gMiB0aGFuaCBuaWVuIGRpZXUga2hpZW4gDQpjaGllYyB4ZSBtYXkg bmF5IGRpIHRoZW8gaHVvbmcgTmd1eWVuIFRyYWkgliBOZ2EgVHUgU28uIEtoaSBkaSBkZW4gYnVu ZyBiaW5oIGdpYW8gY2F0IA0KdGhpIGNoaWVjIHhlIGRvdCBuaGllbiBwaGF0IHJhIHRpZW5nIG5v IG5oby4gQ2h1YSBraXAgZHVuZyB4ZSBsYWkgZGUga2llbSB0cmEgeGVtIHN1IGNvIGdpIA0KeGF5 IHJhIHRoaSBiYXQgbmdvIG5nb24gbHVhIGJ1bmcgbGVuIHJvaSBib2MgY2hheSBkdSBkb2ksIGJv YyBtdWkga2hldCBsZXQuIFRoYXkgdmF5IDIgDQp0aGFuaCBuaWVuIGxpZW4gbmhheSBraG9pIHhl LCBkaW5oIHRoYW8gY29wIGRlIGxheSBnaWF5IHRvIG5odW5nIGtob25nIGtpcC4uLiBOZ29uIGx1 YSANCmJvYyBjYW8gbmdoaSBuZ3V0Lg0KDQooQW5oOiBDaGllYyB4ZSBjaGkgY29uIHRybyBsYWkg bW9pIGtodW5nLiBBbmg6IFZuZXhwcmVzcykNCg0KRGVuIGtob2FuZyA3aCBraGkgQ1NHVCBjbyBt YXQgdGFpIGhpZW4gdHJ1b25nIHRoaSBjaGllYyB4ZSBkYSBnYW4gbmh1IGJpIHRoaWV1IHJ1aSBo b2FuIA0KdG9hbiwgbmFtIGJlcCBkdW0sIHRybyBtb2kga2h1bmcsIGJpZW4gc28geGUgY3VuZyBi aSBsdWEgbGllbSBjaGF5IHhlLg0KDQpWdSB2aWVjIG5nYXkgbGFwIHR1YyBkYSB0aHUgaHV0IHJh dCBkb25nIG5odW5nIG5ndW9pIGRpIGR1b25nIGhpZXUga3kgZ2F5IHJhIHRpbmggdHJhbmcgDQp1 biB0YWMgY3VjIGJvIHRyZW4gbW90IGRvYW4gZGFpIGR1b25nIE5ndXllbiBUcmFpLiBOZ2F5IHNh dSBkbyBsdWMgbHVvbmcgQ1NHVCBkYSANCnBoYWkgbmhhbmggY2hvbmcgcGhhbiBsdW9uZyBkZSBn aWFpIHRvYSBwaHVvbmcgdGllbiwNCg0KSGllbiBuZ3V5ZW4gbmhhbiB2dSB0YWkgbmFuIHZhbiBk YW5nIGR1b2MgZGlldSB0cmEgbGFtIHJvLg0KDQpodHRwOi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wv WGEtaG9pLzIwMDgvMDcvM0JBMDQwMDMvIFRodSB0dSwgMi83LzIwMDgsIDExOjE1IEdNVCs3DQoN CkhhIE5vaTogQ2hheSBoYW0geGUgY2h1bmcgY3UgTXkgRGluaCwgbmhpZXUgb3RvIGJpIHRoaWV1 IHJ1aSANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3Zp ZXQvMzA1OTUyL3Z1b24taG9hLXRoYW5oLXh1YW4tYmFjLWJpLWJvLXF1ZW4uaHRtIDE5LzAxLzIw MTAgMDY6NTQgDQoNCkhhIE5vaTogVnVvbiBob2EgVGhhbmggWHVhbiBCYWMgYmkgImJvIHF1ZW4i ICANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQv MzAxMzIyL3Nhbi1jaG9pLWNoby10cmUtdGhhbmgtYmFpLWRlLXhlLmh0bSAyMi8xMi8yMDA5IDEx OjM1IA0KDQpIYSBOb2k6IFNhbiBjaG9pIGNobyB0cmUgdGhhbmggYmFpIGRlIHhlIChvIHBodW9u ZyBUcnVuZyBMaWV0KSANCg0KaHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9C YW5fZG9jX3ZpZXQvMzAxMzIyL3Nhbi1jaG9pLWNoby10cmUtdGhhbmgtYmFpLWRlLXhlLmh0bSAy Mi8xMi8yMDA5IDExOjM1IA0KDQpMYW5nIEhvYW5nIENhbyBLaGFpIGRhIGR1b2MgeGVwIGhhbmcg RGkgdGljaCBsaWNoIHN1IGNhcCBxdW9jIGdpYS4gVGllYyByYW5nLCBraHUgZGkgdGljaCBuYXkg dHUgbGF1IGRhIGtob25nIGR1b2MgcXVhbiB0YW0sIGRhIHRybyB0aGFuaCBob2FuZyBwaGUuDQoN Cmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwvQmFuX2RvY192aWV0LzMwNjIw NC9kb2MtbGEtcGhvLXRoYW5oLWJhaS1waGUtdGhhaS5odG0gMjEvMDEvMjAxMCAwNzo0NSANCg0K RG9jIExhIFBobyB0aGFuaCBiYWkgcGhlIHRoYWkgLSBtYXQgVlNNVCBuZ2hpZW0gdHJvbmcuDQoN Cmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9Ib21lL0NOVFQvZ2lhZGluaC5uZXQudm4vSGEtTm9pLTMw LWNhbi1iby1raG9uZy1iaWV0LXN1LWR1bmctdmktdGluaC8zNTY5Nzg1LmVwaQ0KDQpIYSBOb2k6 IDMwJSBjYW4gYm8ga2hvbmcgYmlldCBzdSBkdW5nIHZpIHRpbmgNCg0KaHR0cDovL3ZpZXRuYW1u ZXQudm4veGFob2kvMjAxMDAyL01vYy10dWktdHVuZy1ob2FuaC1vLVBodS1UYXktSG8tODk1NTYy LyAxMDoxNCwgVGh1IEJhLCAyMy8wMi8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBNb2MgdHVpICd0 dW5nIGhvYW5oJyBvIFBodSBUYXkgSG8gDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9L aW5oLWRvYW5oLzIwMDcvMTEvM0I5RkM0NzMvICAxNC0xMS0yMDA3DQoNCkRhdSBnaWEgeGUgY3Vh IG5ndXllbiBjaHUgdGljaCB0aGFuaCBwaG8gSGEgTm9pIChjaGllYyB4ZSBMZXh1cyB0cmkgZ2lh IHRyZW4gNCB0eSBkb25nLCBkdW9jIG5vaSB0cmkgZ2lhICIzMDAwIHRyYXUiKQ0KDQpodHRwOi8v d3d3LnRpbjI0Ny5jb20vY2xpcF90aHVfNV9taWVuZ19uYW1fbW9fdGF5X3ZvX3RpZW5fY29uZ19k dWMtMS0yMTU4NzAxMC5odG1sIDYvNS8yMDEwDQoNCk1pZW5nIG5hbSBtbyB0YXkgdm8gdGllbiBj b25nIGR1Yw0KDQpodHRwOi8vd3d3Lm5sZC5jb20udm4vMjEyNTI4UDBDMTAwMi90aWV0LWxvLW1v aS1xdWFuaC1jaGllYy14ZS1sZXh1cy10cmktZ2lhLWhvbi00LXRpLWRvbmcuaHRtIDE0LzAxLzIw MDggMDE6MTUgR01UKzcgVGhlIER1bmcgDQoNCkhhIE5vaTogVGlldCBsbyBtb2kgcXVhbmggY2hp ZWMgeGUgTGV4dXMgdHJpIGdpYSBob24gNCB0aSBkb25nIA0KDQpWdSBsaW5oIHhpbmggcXVhbmgg Y2hpZWMgeGUgY28gZ2lhIGhvbiA0IHRpIGRvbmcgdHVvbmcgZGEgZGkgdmFvIHF1ZW4gbGFuZyBu YXkgdnVhIGR1b2Mga2hvaSBsYWkgdm9pIG5oaWV1IHRpbmggdGlldCBtb2kuIERpZXUgZGFuZyBu b2ksIG5ndW9pIGtob2kgbGFpIGNhdSBjaHV5ZW4gbmF5IGNoaW5oIGxhIG9uZyBjdXUgY2h1IHRp Y2ggVUJORCBUUCBIYSBOb2kgSG9hbmcgVmFuIE5naGllbi4NCg0KQ2FjaCBkYXkgdmFpIG5hbSwg ZHUgbHVhbiBkYWMgYmlldCBxdWFuIHRhbSB2aWVjIG9uZyBIb2FuZyBWYW4gTmdoaWVuLCBsdWMg ZHVvbmcgY2h1YyBjaHUgdGljaCBVQk5EIFRQIEhhIE5vaSwgc3UgZHVuZyBvIHRvIGNvbmcgbmhh biBoaWV1IExleHVzIExTNDMwIHNhbmcgdHJvbmcsIHZvaSBzbyB0aWVuIG11YSB0aGVvIHNvIHNh Y2ggNCwwMzcgdGkgZG9uZyAoZ2FuIDMwMC4wMDAgVVNEKS4gDQpDdW9jIGNoaWEgdGF5IHRoYW5o IGJ1b2kgdGhhbmggbWluaCANCk5nYXkgMjUtMTItMjAwNyB2dWEgcXVhLCBUaGFuaCB1eSBIYSBO b2kgZGEgdG8gY2h1YyBidW9pIGdhcCBtYXQgZ2l1YSBUaHVvbmcgdHJ1YyBUaGFuaCB1eSB2b2kg bmd1eWVuIHBobyBiaSB0aHUgVGhhbmggdXkgSGEgTm9pLCBuZ3V5ZW4gY2h1IHRpY2ggVUJORCBU UCBIYSBOb2kgSG9hbmcgVmFuIE5naGllbiwgbmhhbiBkaXAgb25nIE5naGllbiBuaGFuIHF1eWV0 IGRpbmggbmdoaSBodXUuIA0KDQpYdWF0IHBoYXQgdHUgbmh1bmcgYnVjIHh1YyB0cm9uZyBsb25n IGdpdSBraW4gbmhpZXUgbmFtIHZvaSBuZ3VvaSBrZSBuaGllbSBtYSBvbmcgTmdoaWVuIGRhIGJp ZW4gYnVvaSBjaGlhIHRheSB2b2kgY28gcXVhbiBjdSB0aGFuaCBidW9pIHRoYW5oIG1pbmggdmUg bmh1bmcgZGlldSB0aWVuZyBraG9uZyB0b3QgbWEgZHUgbHVhbiBiYXkgbGF1IGJhdCBiaW5oLiAN Cg0KS2hvbmcgYmlldCBvbmcgTmdoaWVuIG1hdCBiYW8gbmhpZXUgZGVtIHRyYW4gdHJvIGRlIHZp ZXQgcmEgYmFpIHBoYXQgYmlldSBkYWkgNyB0cmFuZyBkYW5oIG1heSBraG8gZ2lheSBBNCwgdHJv bmcgZG8gZ2FuIDkwJSBub2kgZHVuZyBsYSBnaWFpIHRyaW5oIGxhaSB0b2FuIGJvIHN1IHZpZWMg bGllbiBxdWFuIGRlbiBjaGllYyBvIHRvIGNvbmcgTGV4dXMgY28gZ2lhIHRyaSB0dW9uZyBkdW9u ZyAzLjAwMCBjb24gdHJhdSBjdW5nIG5nb2kgYmlldCB0aHUgdHJpIGdpYSBoYW5nIG5nYW4gbHVv bmcgdmFuZyB0YWkgMTIgTmd1eWVuIENoZSBOZ2hpYSAoSG9hbiBLaWVtLCBIYSBOb2kpIG1hIG9u ZyBtdW9uIG11YSB0aGVvIE5naGkgZGluaCA2MUNQLiANCg0KVGhlbyBiYWkgcGhhdCBiaWV1IGN1 YSBvbmcgTmdoaWVuIHZhIG5odW5nIGxvaSBrZSBjdWEgb25nIHZvaSBiYW8gZ2lvaSB0YWkgbmhh IHJpZW5nIHNhdSBkbywgb25nIGRhIHRyaW5oIGJheSBjaGkgdGlldCB0b2FuIGJvIHN1IHZpZWMg bXVhIGNoaWVjIHhlIExleHVzIGRldSBkbyBuZ3V5ZW4gcGhvIGNodSB0aWNoIFVCTkQgVFAgSGEg Tm9pIChzYXUgbmF5IGtlIG5oaWVtIG9uZyBOZ2hpZW4pLCBuYXkgbGEgQm8gdHJ1b25nIEJvIFkg dGUgTmd1eWVuIFF1b2MgVHJpZXUgbW90IG1pbmggcXV5ZXQgZGluaCB2YSBjaHUgZG9uZyBjYWMg Y29uZyBkb2FuIG11YSBzYW0uIA0KDQpTYXUgYnVvaSBjaGlhIHRheSB2YSBub2kgdG9hYyBuaHVu ZyBidWMgeHVjIHZlIG5ndW9pIGtlIG5oaWVtLCB0aWVwIHh1YyB2b2kgYmFvIGdpb2kgdGFpIG5o YSByaWVuZywgb25nIE5naGllbiBkYSBjaG8gcGhvbmcgdmllbiBkb2MgbW90IHRpbiBuaGFuIG1h IG9uZyBraGFuZyBkaW5oIGxhIHR1IHNvIG1heSBkaWVuIHRob2FpIGRpIGRvbmcgY3VhIG9uZyBU cmlldSB2b2kgbm9pIGR1bmcgImFuaCBoaWV1IHNhaSB2ZSBjaGllYyBvIHRvIHJvaSwga2hvbmcg cGhhaSBlbSBjbyB0aW5oIHBoYSBhbmgsIGEgZGkgZGEgUGhhdCIuIA0KDQpCaWV0IHNhaSBzYW8g dmFuIHhhaT8gDQoNCk9uZyBOZ2hpZW4gbmV1IHJvIHRyb25nIGJhaSBwaGF0IGJpZXU6ICJUcm9u ZyBtb3QgbGFuIGRpIGNvbmcgY2h1eWVuIHZhIG5nb2kgY3VuZyB4ZSwgYW5oIFRyaWV1IGNvIG5v aTogRW0gZGEga3kgY29uZyB2YW4geGluIFRodSB0dW9uZyBtdWEgeGUgcGh1YyB2dSBjb25nIHRh YyBkb2kgbmdvYWksIHhlIGRhbmcgdmUgY2FuZywgZW0gZ29pIGRpZW4gdmUgY29uZyBhbiBsYXkg c28geGUuIA0KDQpUcm9uZyBkaXAgdG9pIGRpIGNvbmcgdGFjIG51b2MgbmdvYWksIGFuaCBUcmll dSBkYSBsZW5oIGNobyBhbmggVHVhbiBsYWkgeGUgY3VhIHRvaSBiYW4gZ2lhbyB4ZSBjaG8gYW5o IFZpbmggbGFpIHhlIGN1YSBhbmggVHJpZXUgdHJvbmcgdm9uZyBtb3QgYnVvaSBzYW5nIHBoYWkg eG9uZywgZG9uZyB0aG9pIGFuaCBUcmlldSBjaG8gbGFpIHhlIGdvIGJpZW4gbGFwIG5nYXkgdmFv IHhlIGN1YSB0b2kuIA0KDQpWaWVjIHZvaSBkZW4gbXVjIGNoaWVjIHRpdmkgdHJlbiB4ZSBjdWEg dG9pIGNodWEga2lwIHRoYW8gcmEsIGFuaCBUcmlldSB2YW4gY28gZ2l1IGxhaSBkYW5oIGNobyBt aW5oIHNhdSBuYXksIHN1IHZpZWMgbmF5IGNvIGFuaCBWdSBWYW4gTmluaCAoa2hpIGRvIGxhIHBo byBjaHUgdGljaCBVQk5EIFRQIEhhIE5vaSAtIG5heSBsYSBCbyB0cnVvbmcgQm8gVGFpIGNoaW5o KSBiaWV0IHJvIi4gDQoNCkRlIHRoYW5oIG1pbmggY2hvIG1pbmgsIG9uZyBOZ2hpZW4gbm9pOiAi VG9pIGRhIGxhbSB2aWVjIGNhIGNodWMgbmFtIG8gdXkgYmFuLCBzYXAgdmUgbmdoaSBodXUgY29u IHNhbSB4ZSBjaG8gbWluaCBsYW0gZ2k7IGtoaSBkaSBjb25nIHRhYywgYW5oIFRyaWV1IGRhIHR1 IHkgbGF5IG1hdCB4ZSwgZGF5IGNoaWVjIHhlIG1vaSBjaG8gdG9pIGRpIHRhbS4gRGFuZyBsZSB2 aWVjIHRvaSBraG9uZyBjbyBjaHUgdHJ1b25nIG11YSB4ZSwgcGhhaSBraWVtIHRyYSwga2hpIGJp ZXQgY28gdmllYyBwaGFpIGNvIHkga2llbiB4dSBseSBjaG8gbWluaCBiYWNoLCB0b2kgZGEgYm8g cXVhIG1vdCBjYWNoIGRlIGRhaSwgdGhpZXUgc290IiAoIT8pLiANCg0KT25nIE5naGllbiBjaG8g cmFuZzogIlZpZWMgbXVhIHhlIGRvIGFuaCBUcmlldSB0dSB5IGxhbSBjb25nIHZhbiBndWkgeGlu IFRodSB0dW9uZyBtdWEgeGUga2hvbmcgYmFvIGNhbywga2hvbmcgdGhvbmcgYmFvIG5vaSBiby4g TG9pIGR1bmcgbHVjIGdpYW8gdGhvaSwgYW5oIFRyaWV1IHR1IHkgbGF5IHhlIHRvaSBkYW5nIGRp LCBidW9jIHRvaSBwaGFpIGRpIHRhbSB4ZSBtb2ksIHJvIHJhbmcgdm9pIG11YyBkaWNoIHRpZXAg c2F1IGFuaCBUcmlldSBsYW0gY2h1IHRpY2ggdXkgYmFuIHNlIGhvYW4gdG9hbiBzdSBkdW5nLCBt dW9uIGNvIHRvaSBkYSBkdW5nIGxhIHZpZWMgbGFtIGNvIHRpbmggdG9hbi4gTmh1IHZheSwgbmd1 eWVuIG5oYW4gZ2F5IHJhIHJhdCBkb24gZ2lhbiB2YSBoYXUgcXVhIGJvaSBuaG8gdGhhdCBkb2Mg YWMiICg/KS4gDQoNCihUdXkgbmhpZW4sIHRyb25nIHZ1IG11YSB2YSBzdSBkdW5nIGNoaWVjIHhl IHRyaSBnaWEgbmhpZXUgdGkgZG9uZywgZHUgbHVhbiB2YW4gZGF0IGNhdSBob2kgbGlldSBvbmcg TmdoaWVuIGNvIHRoYXQgInZvIGNhbiIuIEJvaSB0aHUgbmhhdCBsYSBjaHUgdGljaCBVQk5EIFRQ IEhhIE5vaSwgb25nIE5naGllbiB0aHVhIGJpZXQgdGlldSBjaHVhbiBvIHRvIGRvaSB2b2kgb25n IGxhIGJhbyBuaGlldSB0aWVuLiBWYXkgdGFpIHNhbyBvbmcgdmFuIGN1b2kgbGVuIDMuMDAwIGNv biB0cmF1IGRlIGRpIGxhbSBoYW5nIG5nYXkgY2hvIHRvaSB0YW4gbmdheSBjb25nIGx1YW4gbGVu IHRpZW5nIG1vaSB0aG9pPyANCg0KT25nIE5naGllbiBub2kgbGEgdmllYyBtdWEgeGUgZG8gbW90 IG1pbmggdmkgcGhvIGN1YSBtaW5oIHF1eWV0IGRpbmgga2hpIG9uZyBkaSBjb25nIHRhYywgDQp2 YXkgdGFpIHNhbyBraGkgdmUgdGhheSBzYWkgbWEga2hvbmcgc3VhLCBjdSBsYW0gdGhlbyBjYWkg c2FpIGN1YSBjYXAgZHVvaSBuaHUgb25nIGRhIHRyaW5oIGJheT8pIA0KDQpodHRwOi8veWtpZW4u d29yZHByZXNzLmNvbS8yMDA3LzEwLzEwL3RoJUM2JUIwLXBoJUUxJUJBJUEzbi0lRTElQkElQTNu aC12JUUxJUJCJTgxLWNhYy12JUUxJUJCJThCLWxhbmgtZCVFMSVCQSVBMW8tYyVFMSVCQiVBN2Et dHBoYS1uJUUxJUJCJTk5aS1uZ3V5JUUxJUJCJTg1bi1xdSVFMSVCQiU5MWMtdHJpJUUxJUJCJTg3 dS1kJUUxJUJCJTk3LWhvYW5nLWFuLWxlLXF1eS1kb24tdmEtcGglRTElQkElQTFtLXEvMTAuMTAu MjAwNyBUcmFuIFZhbiBUcmFuDQoNClRodSBQaGFuIEFuaCB2ZSBjYWMgdmkgbGFuaCBkYW8gY3Vh IFRQLkhhIE5vaTogTmd1eWVuIFF1b2MgVHJpZXUsIERvIEhvYW5nIEFuLCBMZSBRdXkgRG9uIHZh IFBoYW0gUXVhbmcgTmdoaSANCg0KSGEgTm9pLCBuZ2F5IDEwIHRoYW5nIDEwIG5hbSAyMDA3DQoN ClRIVSBQSEFOIEFOSCB2ZSBjYWMgdmkgbGFuaCBkYW8gY3VhIFRQLkhhIE5vaTogTmd1eWVuIFF1 b2MgVHJpZXUsIERvIEhvYW5nIEFuLCBMZSBRdXkgRG9uIHZhIFBoYW0gUXVhbmcgTmdoaQ0KDQpY aW4ga2luaCBndWkgdG9pOiBEb25nIGNoaSBOZ3V5ZW4gTWluaCBUcmlldCwgQ2h1IHRpY2ggbnVv YywgRG9uZyBjaGkgTmd1eWVuIFRhbiBEdW5nLCBUaHUgdHVvbmcgQ2hpbmggcGh1ICYgRG9uZyBj aGkgVHJ1b25nIFRhbiBTYW5nLCBUaHVvbmcgdHJ1YyBCYW4gQmkgdGh1DQoNCktpbmggdGh1YSBj YWMgZG9uZyBjaGksDQoNClRvaSBsYSBUcmFuIFZhbiBUcmFuLCBEYW5nIHZpZW4gY29uZyB0YWMg dGFpIG1vdCBiYW4gbmdhbmggY3VhIERhbmcgbyB0cnVuZyB1b25nLCBuYXkgZGEgdmUgbmdoaSB2 YSBzb25nIHRhaSBYdWFuIExhLCBUYXkgSG8gLSBIYSBOb2kuIFRvaSBjbyBkdW9jIHRoYW0ga2hh byB0aHUgcGhhbiBhbmggY3VhIG1vdCBjYW4gYm8gY29uZyB0YWMgdGFpIFVCTkQgdGhhbmggcGhv IEhhIE5vaSB2ZSBvbmcgRG8gSG9hbmcgQW4sIHBobyBjaHUgdGljaCBVQk5EIFRQIEhhIE5vaSwg bGllbiBxdWFuIGRlbiBkdSBhbiB4YXkgZHVuZyBoYSB0YW5nIGt5IHRodWF0IHh1bmcgcXVhbmgg SG8gVGF5LiANCg0KRG8gZGFjIHRpbmggY29uZyB2aWVjIGx1YyB0YWkgY2h1YyB2YSBsdWMgbmdo aSBjbyB0aG9pIGdpYW4gdGltIGhpZXUgbmVuIHRvaSBiaWV0IGR1b2MgbW90IHNvIHZ1IHZpZWMg bGllbiBxdWFuIGNhYyBvbmcgbGFuaCBkYW8gSGEgTm9pIGNoaWVtIGRhdCBkaSB0aWNoIGNodWEg VmFuIE5pZW4sIHRpZW4gaGFuaCB4YXkga2hhY2ggc2FuIG5odW5nIGtob25nIHRoYW5oIGJpIGRh biBuZ2FuIGNhbiB2YSB2dSBuYW4gZHVvbmcgcXVhIGN1YSBuaGEgcXVhbiB0YWkgZHUgYW4ga2Ug SG8gVGF5IHF1YSBjdW0gMyBYdWFuIExhLiANClZlIG9uZyBOZ3V5ZW4gUXVvYyBUcmlldSwgbmd1 eWVuIGxhIGNodSB0aWNoIFVCTkQgVFAgSGEgTm9pIG5heSBsZW4gbGFtIEJvIHRydW9uZyBCbyBZ IHRlIGN1bmcgY2FwIHBobyBjdWEgb25nIHRhaSBVQk5EIFRQIEhhIE5vaSwgZGEgbXVhIGNodWMg Qm8gdHJ1b25nIEJvIFkgVGUgcmEgc2FvLCB2aWVjIFZhbiBwaG9uZyBjaGluaCBwaHUgdmEgUGhv IHRodSB0dW9uZyBUcnVvbmcgVmluaCBUcm9uZyBiaSBjYWMgb25nIGNobyB2YW8gdHJvbmcgbmh1 IHRoZSBuYW8sIHZpZWMgbXVhIGNodW9jIEJvIHRydW9uZyBCbyBWYW4gaG9hIFRob25nIHRpbiBs aWVuIHF1YW4gZ2FuIDUuMDAwbTIgZGF0IGRpIHRpY2ggY2h1YSBWYW4gTmllbiBkZSBjaG8gY2Fj IG9uZyBjaGllbSBkb2F0IGN1YSBkYW4gcmEgc2FvLiANClF1YSBkbyBjYWMgZC9jIHRoYXkgZHVv YyBjYWkgY2FuIGJlbmggInZvIHBodW9uZyBjdXUgY2h1YSIgbm8gcmFuZyBidW9jIG1vYyB4aWNo IHJhIHNhbyB2YSB0YWkgc2FvIG5vIGxhaSBsYSBtb3QgInF1b2MgbmFuIi4NClZ1YSBxdWEsIG5n YXkgOC85LzIwMDcsIHRyb25nIGN1b2MgaG9wIHRyaWVuIGtoYWkgY2hpIHRoaSAyMCwgZC9jIFBo YW0gUXVhbmcgTmdoaSwgQmkgdGh1IHRoYW5oIHV5IGNvIG5vaSBkZW4gbmh1bmcgY2FuIGJvIGNh cCBkdW9pLCBuaHVuZyBuZ3VvaSBtYSBkL2MgTmdoaSBjaG8gbGEgIm1vaSBraGlldSBraWVuIGN1 YSBkYW4ga2VvIGRhaSBsYSBkbyBjYWMgY2FuIGJvIGNhcCBkdW9pIGJhbyBjYW8gc2FpIHN1IHRo YXQgbGFtIGNhcCB0cmVuIHh1IGx5IGN1bmcgc2FpIi4gU3UgdGhhdCBjbyBkdW5nIG5odSBkL2Mg TmdoaSBub2kga2hvbmc/DQpOaHUgY2h1bmcgdGEgYmlldCwgbmdheSBzYXUgbmdheSB0cmllbiBr aGFpIGNoaSB0aGkgMjAsIGQvYyBOZ2hpIGRhIHRydWMgdGllcCBkaSBraWVtIHRyYSB0YWkgdnVv biB0aHUgVGh1IGxlIHZlIDUuMDAwbTIgZGF0IGN1YSB2dW9uIHRodSBjaG8gdGh1ZSBsYW0gbmhh IGhhbmcsIHF1YW4ga2FyYW9rZSBtYSBkL2MgTmdoaSBwaGUgcGhhbiBsYSB2aSBwaGFtIHZvaSA0 IGNhaSBzYWkuIE1hYyBkdSBjbyBtYXQgZC9jIHRhaSBoaWVuIHRydW9uZywgbmh1bmcgbW9pIHZp ZWMga2luaCBkb2FuaCB2YW4gZGllbiByYSBiaW5oIHRodW9uZywgbmd1b2kgdGEgY3VuZyBjaGFu ZyB0aGVtIGRlIHkgZGVuIHZpZWMgY28gb25nIEJpIHRodSB0aGFuaCB1eSBkZW4ga2llbSB0cmEu IA0KQ2hpIHRoZSB0aG9pIGRhIHRoYXkgY2FpIGNoaSB0aGkgMjAgY3VhIGQvYyBraG9uZyBjbyBt b3QgY2h1dCB1eSBsdWMgbmFvLiBEL2MgTmdoaSB0aHVhIGJpZXQgZGllbiB0aWNoIGRhdCBjaG8g dGh1ZSBuYXkgbGEgZG8gY2hpbmggYmEgQ2hpbmggLSBwaHUgbmhhbiBjdWEgZC9jIFBoYW0gQ2h1 eWVuLCB0aGlldSB0dW9uZywgbmd1eWVuIGdpYW0gZG9jIGNvbmcgYW4gdGhhbmggcGhvIEhhIE5v aSBkdW5nIHJhIHRoYXUgdmEgZHVvYyBjb25nIGFuIHF1YW4gQmEgRGluaCBiYW8gbGFuaCwgdHJv bmcgZG8gY28gY2EgY28gcGhhbiBjdWEgZC9jIE5ndXllbiBRdW9jIFRyaWV1LCBuZ3V5ZW4gbGEg Y2h1IHRpY2ggVUJORCB0aGFuaCBwaG8gSGEgTm9pIGhpZW4gbGEgQm8gdHJ1b25nIEJvIFkgVGUg dmEgaGllbiBuYXkgbmhpZXUgdmkgdHJpIGJhIENoaW5oIGRhIHNhbmcgdGF5IDMgLTQgY2h1IHJv aS4gVmF5IGxhLCBvIGRheSwgbmV1IGRvIHRvaSB0YWkgY2FuIGJvIGNhcCBkdW9pIHRoaSBjbyBk dW5nIGtob25nLCBoYXkgbGEgZG8gY2FpIHN1ICJuaGEgZG90IHR1IG5vYyI/IA0KVGEgdGh1IHRp bSBoaWV1IG1vdCBzbyB2aWVjIG1hIGNoaW5oIGNhYyBvbmcgInF1YW4iIFRoYW5oIHBobyBkYSB0 aHVjIHRoaSB4ZW0gc2FvLg0KDQpWZSB2aSBUb25nIGRvYyBIYSB0aGFuaCBOZ3V5ZW4gUXVvYyBU cmlldSB4dWEgdmEgbGEgQm8gdHJ1b25nIEJvIFkgVGUgdGhvaSBuYXk6DQoNCkhvYyB0cnVvbmcg WSBIYSBOb2ksIGRpIGJvIGRvaSwgdGhhbSBnaWEgcXVhbiB0cnVvbmcgZGUgbGFtIHF1YW4sIGxl biBuaHUgZGlldSBnYXAgZ2lvLCBxdXllbiBjYW8gY2h1YyB0cm9uZywgb25nIGNvIGJhbmcgdGll biBzeSB4YSBob2kgaG9jLCB0aGUgbWEgb25nIGtob25nIHRoZSBsYW0gdG90IHRyb25nIHZpIHRy aSBjaGkgaHV5IGN1YSBtaW5oLCBsYWkgYmkgYm9uIHF1YW4gdGhhbiBnaWFuIGRvaSBwaG8gdGEg bmVuIHJhdCBoYXkgImh1eWVuIHRodXllbiIuIA0KDQpPIEhhIE5vaSB0dSB0cnVvYyBuZ3VvaSB0 YSBsdXUgdHJ1eWVuIGNhdSB2ZSB2YW4gdmVvIGRhbiBnaWEgbGE6ICJHaWF1IG5odSBQaHUsIGx1 IG5odSBUcm9uZywgbGF0IGxvbmcgbmh1IE5naGllbiwgdGlldSB0aWVuIG5odSBUcmlldSIgaGF5 IGxhICJHaWF1IG5odSBQaHUsIGx1IG5odSBUcm9uZywgZGF5IGJvbmcgbGEgTmdoaWVuLCBodXll biB0aHV5ZW4gbGEgTmd1eWVuIFF1b2MgVHJpZXUiLg0KDQpPbmcgVHJpZXUsIGtoaSBvbmcgbGEg Y2h1IHRpY2ggY3VhIEhhIE5vaSB0aGkgb25nIGRlIHJhIGNhYyBjdW0gdHUgcmF0IGxhLCB0aGkg ZHUgbmh1OiBEZSBiYW4gY2hvIG9uZyBIb2FuZyBWYW4gTmdoaWVuIG5nb2kgYmlldCB0aHUgc28g MTIgTmd1eWVuIENoZSBOZ2hpYSwgbmd1b2kgdGEga3kgdmFvIG1vdCBtYW5oIGdpYXkgZG9uZyBk YXUgdHJlbyBnb2kgZG8gbGEgImNvbmcgdGh1IiByb2kgb25nIGd1aSBjYWkgdGh1IGRhbmcgdHJl biBiYW8gZ29pIGRvIGxhICJ0aHUgY29uZyB0YWMiID8hDQoNCk5nYXkgc2F1IGtoaSBzYW5nIGxh bSBibyB0cnVvbmcgQm8gWSB0ZSBvbmcgZHVhIHJhIGtoYWkgbmllbSAiVmFuIGhvYSBwaG9uZyBi aSIgY2hvIG5nYW5oIHksIHZheSBsYSBkYW4gbmdoZW8gc2UgYmkgbW90IGhlIGx1eSBsb24gZGF5 LiBPbmcgdGllbiBzaSB4YSBob2kgaG9jIE5ndXllbiBRdW9jIFRyaWV1IGNvbmcga2hhaSBjYWkg dGUgbmFuIGNodXllbiBkZSAiY2hheSIgYXk6IGNoYXkgY2h1YywgY2hheSBxdXllbiwgY2hheSBo b2MsIGNoYXkgYmFjIHN5LCBjaGF5IGFuLCBjaGF5IHRvaS4uLiBsZW4gdGhhbmggbW90IHRodSB2 YW4gaG9hIG1hIG9uZyBnb2kgbGEgInZhbiBob2EgcGhvbmcgYmkiLiBPbmcgbGEgdnVhIGFuIHRp ZW4ga2lldSBwaG9uZyBiaSwgZGEgYW4gZ2lvaSB0aGkgdGlldSBjdW5nIGdpb2ksIHRoZSBuZW4g bW9pIGR1b2MgY2FpIG1lbmggZGFuaCAidGlldSB0aWVuIG5odSBUcmlldSIuDQoNClJvaSBkZW4g bWF5IG5oaXAgY2F1IGRhbiBDYW4gVGhvIGRhbmcgbGFtIGJpIHNhcCwgY2FjIG5hbiBuaGFuIGRh bmcgY2FuIHBoYWkgZHVvYyBxdWFuIHRhbSBjdXUgZ2l1cCB0cmVuIGhldCwgY2FjIGJhYyBzeSwg eSB0YSwgY2FjIGx1YyBsdW9uZyBjb25nIGFuLi4uIGRpIG5oaWVuIHBoYWkgdmFvIGN1b2MuIFRy b25nIGtoaSBkYW5nIHJhIHN1YyBrZXUgZ29pIG5oYW4gZGFuIHF1eWVuIGdvcCBkZSBnaXVwIGRv IG5odW5nIG5ndW9pIGJpIG5hbiB0aGkgb25nIEJvIHRydW9uZyB0dW5nIG5nYXkgcmEgMjkwIHRy aWV1IGRvbmcgY3VhIG5oYSBudW9jIGRlICJiYW4gdGh1b25nIiBjaG8gY2FjIGRvbiB2aSBhbiBs dW9uZyBuaGEgbnVvYyBkaSBsYW0gbmhpZW0gdnUuIA0KTm9pIGRhaSwgY3UgdGhlIG5heSB0aGkg bmd1b2kgdGEgbGFpIG1vbmcgY28gbmhpZXUgdnUgdGFpIG5hbiBob24gbnVhIGRlIGR1b2Mgbmhh biBuaGlldSAiYmFuIHRodW9uZyIgY3VhIG9uZyBUcmlldS4gVGh1YyBraG9uZyBhaSBoaWV1IG5v aSBjYWkgZGF1IG9uZyBuZ2hpIGdpPyBQaGFpIGNoYW5nIGRpZXUgb25nIG11b24gcXVhbiB0YW0g bGEgdmllYyBtdW9uIGxhbSBub2kgbWluaCwgdGhlIGxhIG9uZyBiYW4gdGh1b25nLg0KTyBkYXkg dG9pIG11b24gbmV1IGxhIG5oYW4gZGFuIEhhIE5vaSwgbmhhdCBsYSBuaGFuIGRhbiBUYXkgSG8s IGNoYW5nIGxhIGdpIG5odW5nIHRybyBuYXkgY3VhIG9uZywgeGluIGtlIG1vdCBjYXUgY2h1eWVu LCB0cnVvYyBkYWkgaG9pIERhbmcgWCwgZGUgY2F1IGNobyBtaW5oIHRydW5nIGR1b2MgdXkgdmll biB0cnVuZyB1b25nLCBvbmcgdGh1b25nIGR1bmcgeGUgY29uZyBjdW5nIHZvIGRpIGxlIGJhaSBv IFBodSBUYXkgSG8sIG1vaSBsYW4gZGVuLCBvbmcgZGV1IG1hbmcgeGUgdmFvIHRhbiBzYW4gY2h1 YSBtYSBnaWF1LCBjbyBjaGUgY2FpIGJpZW4gc28gbWEgbmhpbiB0aGF5IGFpIGN1bmcgYmlldCBs YSBjdWEgb25nIENodSB0aWNoIFRQLCBuaHVuZyBraG9uZyBtYXkgY2hvIG9uZyBsYSBjYWkgY2hp IGJlbyBvIG5nYXkgdHJ1b2MgY3VhIFBodSBUYXkgSG8gcGhhdCBoaWVuIHJhLCB0dW0gbGF5IGdv aSBkYW4gcmEgbWEga2V1IG1hIGtpZW4gdmUgY2FpIGR1IGFuIGtlIEhvIFRheSBkYXkgc2FpIHBo YW0gdGFpIFF1YW5nIEFuLiANCkNhbmggbmhhIGJhbyB0aGkgY28gYmFuZyBjaHVuZyBsZW4ga2h1 b24gbGEgb25nIGR1bmcgeGUgY29uZyBkaSBsZSB2YWkuIFZheSBtYSBvbmcgdmFuIGNhaSBiYXkg Y2FpIGJpZW4gcmFuZyBvbmcgZGkga2llbSB0cmEgbmdvYWkgZ2lvIGRheSBjaHUgdmEgb25nIGh1 YSBvbmcgc2UgZ2lhaSBxdXlldCB0dW90IG5odW5nIGdpIGRhbiB5ZXUgY2F1LCBuaHUgbmhvIDM4 IGNhaSBraS1vdCBvIGNhbmggUGh1IFRheSBIbyBtYSBrZSBIbyBUYXkgbG9pIGR1bmcgZ2lhaSBw aG9uZyBkYXQgZGUgeGF5IGNobyB0aHVlLiANCkRlIG5hbmcga3kgY2hvIHZpZWMgZ2l1IGxhaSBj YWkgZ2hlIGNodSB0aWNoIFVCTkQgVFBITiBzYXAgZGVuIGdhbiwgb25nIGdpYSBkbyB4dW9uZyBY dWFuIExhLCB0aGFtIHRoYW0gdGh1IHRodSwgY290IGNodXAgbW90IHBvIGFuaCBkdW5nIHZvaSBv bmcgY2h1IHRpY2ggcGh1b25nLCByb2kgZHVhIGxlbiBiYW8gQW4gbmluaCB0aHUgZG8gKG1hIHRh eSBUb25nIGJpZW4gdGFwIHZvbiBsYSBib2kgYnV0IGN1YSBvbmcgZGEgY28gbGFuIGJpIG9uZyB0 aHVvbmcgdGEgY29uZyBhbiBOZ3V5ZW4gS2llbiBRdW9jIHRvIGNhbykgY2h1IHRoaWNoIGJlbiBk dW9pIGJhbmcgY2F1IHJhdCBtaSBkYW4gbGEgIkNodSB0aWNoIE5ndXllbiBRdW9jIFRyaWV1IGRp IGtpZW0gdHJhIGdpYWkgcXV5ZXQgbmh1bmcgdnVvbmcgbWFjIG8gcGh1b25nIFh1YW4gTGEiLg0K DQpUaGUgbmh1bmcgb25nIGN1IDc4IHR1b2kgRGFvIFZhbiBIdWUgLSBEYW5nIHZpZW4gaG9uIDUw IG5hbSB0dW9pIERhbmcsIGxhaSBuYW0gbmdheSBkdW9jIGNhaSB0aG9wIGN1YSBvbmcgdmEgZ3Vp IG1vdCBidWMgdGh1IG5nbyBuZ2FtIGJhbyBjaG8gY2FjIHZpIGxhbmggZGFvIERhbmcgdHJlbiBj aG9wIGJ1IGJpZXQsIHkgY3VhIGN1IG11b24gdGhvbmcgYmFvIHZvaSB0byBjaHVjIERhbmcgcmFu ZyBjYWkgb25nIGNodSB0aWNoIG5heSBnaWEgZG9pLiBUcm9uZyB0aHUgb25nIGN1IHZhY2ggcmEg YmFvIG5oaWV1IGxhIHN1IHZpZWMgY3UgdGhlLCBjb24gbmhhYyB0b2kgZ3VvbmcgaGFpIGN1Og0K ICJDdSBIb2FuZyBEaWV1LCBDdSBOZ3V5ZW4gVHJpIFBodW9uZyAyIHZpIFRvbmcgZG9jIEhhIHRo YW5oIHZpIGtob25nIGxhbSB0cm9uIG5oaWVtIHZ1IHRyb25nIGhvYW4gY2FuaCBkYXQgbnVvYyBs aSBsb2FuLCBsb25nIGRhbiB0YW4gcmEsIGRlIHF1b2MgUGhhcCB4YW0gbHVvYy4uLiwgbmd1b2kg dHVhbiB0aWV0LCBuZ3VvaSBuaGluIGFuIGRlbiBjaGV0IGRlIHRvIHJvIGtoaSB0aWV0IGN1YSBt aW5oLCBkZSBsYWkgdGllbmcgdGhvbSBtdW9uIHRodWEuIE9uZyBDaHUgdGljaCBOZ3V5ZW4gUXVv YyBUcmlldSBsYSBxdWFuIFRvbmcgZG9jIHRob2kgbmF5LCB2b2kgbmh1bmcgdmllYyBsYW0gbmV1 IHRyZW4gbGlldSBjaHVuZyB0b2kgY29uIGNvIGNobyBndWkgZ2FtIGxvbmcgdGluIGhheSBraG9u ZyA/IiANCih0cmljaCB0aHUgbmdvIGN1YSBjdSBEYW8gVmFuIEh1ZSBndWkgY2h1IHRpY2ggVUJO RCBUUEhOIG5nYXkgOC8xLzIwMDcpLg0KDQpWYXkgbHVjIG9uZyBUcmlldSBjb24gbGEgcXVhbiBU b25nIGRvYywgbmhhbiBkYW4gZ2lhbyBvbmcgcGhhaSBnaXUgVGhhbmggY2hvbmcgbGFpIGJvbiBn aWFjIG5vaSB4YW0gbGEgYm9uIHRoYW0gbmh1bmcga2hpIGNodW5nIGNvbiBjaHVhIG1hbmgsIHRy b25nIGtoaSBuaGFuIGRhbiB0aGkgcmF0IGNhbSBnaGV0IGNodW5nLCBzYW4gc2FuZyB1bmcgaG8g Y29uZyBjdW9jIGNob25nIHRoYW0gbmh1bmcgbmF5LCBiYW5nIGNodW5nIGxhIG5odW5nIGRvbiB0 aHUgdG8gY2FvIGN1YSBuZ3VvaSBkYW4gZGEgZGFtIGNoaSBkaWNoIGRhbmggbmd1b2kgdmEgdmll YywgdGhlIG1hIG9uZyBUcmlldSBsYWkgYm8gY2hheSB0aGVvIGdpYWMsIGRvaSB0cmEsIGNoaSB0 aW0gY28gaG9pIGRhbmggYm9uZyBtaW5oLCBnaWEgdm8gZGkga2llbSB0cmEsIGNoaSBsYSBkZSBj aHVwIGFuaCBsZW4gYmFvLCBjaHUgc3UgdGh1YyB0aGkgb25nIGRlIGNobyBjYXAgZHVvaSB0aGEg aG8gdGhpdCBkYW4gZGVuLCBjaHVuZyBjYW5nIG5nYXkgY2FuZyBsYW0gY2FuLCBjYW5nIGxvbmcg aGFuaC4gDQpDb24gYmF5IGdpbyBraGkgb25nIGNoZW0gY2hlIHRyZW4gY2FpIGdoZSBCbyB0cnVv bmcgQm8gWSBUZSwgb25nIGxhaSBjaG8gcGhlcCBuZ2FuaCB5IGR1b2MgcGhlcCBzdSBkdW5nICJ2 YW4gaG9hIHBob25nIGJpIi4gVmF5IGRheSwgdHJvbmcgbmdhbmggeSBuZXUgbyBudW9jIG5nb2Fp IGJhYyBzeSBuaGFuIHBob25nIGJpIGN1YSBiZW5oIG5oYW4gdGhpIGRvIGxhIG1vdCBkaWV1IHF1 YSBzeSBuaHVjLiBPbmcgTmd1eWVuIFF1b2MgVHJpZXUgdmkgZGEgZGkgbGVuIHR1IGNodWMgbmF5 IGRlbiBjaHVjIGtoYWMgYmFuZyAiY2hheScsIGJhbmcgInBob25nIGJpIiBuZW4gb25nIG1vaSBj b2kgZG8gbGEgbW90IHRodSB2YW4gaG9hLg0KWGluIGJhdCBtaSBjaHV5ZW4gb25nIFRyaWV1ICJj aGF5IiBnaGUgYm8gdHJ1b25nIEJvIHkgdGUgbmh1IHRoZSBuYW86IE5oYW0gdHJhbmggdmllYyBr aG9uZyBwaGFpIHJhIHZlIG9uZyB0aW0gY2FjaCB4b2F5IHNvLCB4aW4gY2h1eWVuIGdoZSBjaG8g bWluaCBoZXQgY2hvIG5heSBkZW4gY2hvIGtoYWM6IEdvaSB5IHZlIEJvIFkgVGUsIGJpIHBoYW4g ZG9pIHZpIGtob25nIHRydW9uZyB0aGFuaCB0dSBjaHV5ZW4gbW9uLiBHb2kgeSB2ZSBCYWMgTmlu aCwgQmFjIE5pbmggbm9pIGhvIGtob25nIHRoaWV1IG5oYW4gdGFpLiANClZheSBsYSBvbmcgdGlt IGR1IG1vaSBjYWNoIHhpbiBvIGxhaSBIYSBOb2kuIE5odW5nIEhhIE5vaSBvbmcgZGEgbGFtIGNo byBubyBiZSBiZXQgcmEgcm9pIHNhbyBvIGxhaSBkdW9jIG51YS4gVGhlIG1hIGR1bmcgbW90IGNh aSBvbmcgY2hlbSBjaGUgc2FuZyBuZ29pIGdoZSBCbyB0cnVvbmcgQm8gWSB0ZT8uIE9uZyBwaGFp IGR1bmcgZGVuIDEwMDEgY2hpZXUgZG9jIHJvaS4gTW90IHRyb25nIGNhYyBjaGlldSBvbmcgZGEg c3UgZHVuZyBkZW4gbGEgbmhhbSBjYWkgbyBsb24gZGUgYmlldSBsbyBkYXQgNDAwbTIgdGFpIFZv bmcgVGhpIGJlbiBibyBIbyBUYXksIHRydW9jIGRheSBnaWFuaCBjaG8gZGFpIHR1b25nIFZvIE5n dXllbiBHaWFwLCBUdW9uZyBHaWFwIGtob25nIGRlIGdpIGJhcC4gVmF5IGxhaSBjbyBjbyBob2kg Y2hvIGtlIGtoYWMuDQoNClRoZSBsYSwgb25nIFRyaWV1IG5oYW5oIHRheSBuaGFuaCBjaGFuICJw aG9uZyBiaSIgbmdheSBjaG8gb25nIFRvbmcgQmkgdGh1IA0KTm9uZyBEdWMgTWFuaCwgdGFuZyBi b2MgdGhlIG5hbyBtYSBvbmcgVG9uZyBuaGEgbWluaCBodW5nIG11aSBsZW4gIkRlIHRvLCANCm1p bmggbW9pIHh1bmcgZGFuZyBuaGFuIGNobyBkbyBjaHUiOyB0cnVvYyBkbyBvbmcgY3VuZyBkYSB0 aGFvIHRhYyBjaG8gb25nIA0KY29uIHRyYWkgTm9uZyBRdW9jIFR1YW4gY28gbGllbiAyIGxvIGRh dCB0cmVuIGtodSAxLDM4aGEgZHUgYW4ga2UgSG8gVGF5IA0KImRhdSB0aGF1IiBkYXkgdGFpIHRp ZW5nIG8gcGh1b25nIFF1YW5nIEFuLCBtYSBjaGluaCBCbyBDb25nIGFuLCBvbmcgdGh1IA0KdHJ1 b25nIExlIFRoZSBUaWVtIGRhIGNvbmcgdmFuIHlldSBjYXUgQ29uZyBhbiBIYSBOb2kgbGFtIHJv LiANCkNhbiBibyBkaWV1IHRyYSBDQUhOIGRlbiBkaWV1IHRyYSBtb3QgdGhvaSByb2kgbGFuIHRh bSBtb3QgbWFjaCwgc2F1IGRvIGR1b2MgDQpuaGFuIG1vdCBzdWF0IGRhdCBwaGFuIGxvIHRhaSBr aHUgQ0lQVVRSQS4gQ29uIG9uZyBUaWVtIGN1bmcgY2hheSBtYXQgZGVwLCANCmtob25nIGRhbSBu aGFjIG5obyB5ZXUgY2F1IENvbmcgYW4gSGEgTm9pIGJhbyBjYW8ga2V0IHF1YSBudWEuIENoaSBt YXkgZG9uZyANCnRhYyBkbyB0aG9pLCBvbmcgZHVvYyB1bmcgZHVuZywgbmdhbmcgY2FvIGRhdSBi dW9jIHNhbmcgbmdvaSB2YW8gY2FpIGdoZSBCbyB0cnVvbmcgY3VhIEJvIHkgdGUuIA0KDQpRdWVu IHRob2kgY3UsIHZ1YSBjaGFuIHVvdCBjaGFuIHJhbyBvbmcgZGEgaHVvdSB2dW9uIG5nYXkgcmFu ZyBjYWMgYmVuaCB2aWVuIHNlIGtob25nIGNvbiBjYW5oIDIgYmVuaCBuaGFuIG1vdCBnaXVvbmcg bmh1IGRvaSBCbyB0cnVvbmcgY3UgbnVhLiBPbmcgZGEgbm9pLCBjaHVuZyB0YSBoYXkgZ2hpIG5o YW4gdmEgY2hvIHhlbSBsb2kgaHVhIGN1YSBvbmcgQm8gdHJ1b25nIGRpIGRlbiBkYXUsIGhheSBu aHUgb25nIGh1YSBkbyBibyAzOCBraSBvdCBvIFF1YW5nIEFuIG5heSB2YW4gdHJvIGdhbiBjdW5n IHR1ZSBuZ3V5ZXQuDQoNClZ1IGNoYXkgVmFuIHBob25nIENoaW5oIHBodSB2YSBQaG8gdGh1IHR1 b25nIFRydW9uZyBWaW5oIFRyb25nOg0KDQpLZXQgbHVhbiB0aGFuaCB0cmEgQ2hpbmggcGh1IHZl IHRoYW5oIHRyYSBrZSBIbyBUYXkgdGFpIGN1bSAzIC0gWHVhbiBMYSByYSBuZ2F5IDE3LzAxLzIw MDcgbGFpIHRydW5nIHZhbyBkaXAgdHJ1b2MgdGV0IGFtIGxpY2gsIG11YSBiaWV1IHhlbiBsZSBs YXQgbWEgbmd1b2kgdGEgZGUgbmhhbiBuaGF0LCBjbyBuZ3VvaSBnb2kgZGllbiBiYW8gY2hvIGRh biBiaWV0IGxhIGNodW5nIG5vIGNobyBjYSB4ZSB0aWVuIGRpIGJpZXUgdGV0IG1hIGRhbiBvIGRh eSBraG9uZyBjYW5oIGdpYWMgZ2kgY2EsIGNodW5nIGJpZXQgbXVjIHRpZXUgZHV5IG5oYXQgaGll biBuYXkgbGEgb25nIFRydW9uZyBWaW5oIFRyb25nLCBkYW4gZHVuZyB0dW9uZyBjbyBrZXQgbHVh biB0aGFuaCB0cmEgbGEgeWVuIHRyaSBkYXUuIA0KRG8gZ2lvaSAiY2hheSIgaGF5IGRvIGRlbyBt b20sIGdpb2kgbmFpIG5pICJkZSBjaG8gSGEgTm9pIG9uIGRpbmgiIG1hIGQvYyBUcm9uZyBzYXUg dGV0IG5nYXkgNS8zLzIwMDcgdG8gY2h1YyBjdW9jIGhvcCB2YSBkYSAicGhhbiIgbWF5IGNhdSB4 YW5oIHJvbiB0cmFpIGtob2F5LCBuZ3VvYyBoYW4gdm9pIGtldCBsdWFuIHRoYW5oIHRyYSBjaGlu aCBwaHUgZG8gZG9hbiB0aGFuaCB0cmEgbGllbiBuZ2FuaCB0aHVjIGhpZW4sIG1hIGNoaW5oIGQv YyBjaGkgZGFvIGxhcCByYS4gQmFuIHRoYW8ga2V0IGx1YW4gZC9jIFRyb25nIGRhIGR1b2MgeGVt IHRydW9jIHZhIGQvYyBkYSBkb25nIHkgcm9pIHRoYW5oIHRyYSBtb2kga3ksIHZheSB0YWkgc2Fv IGNvIHN1IHRyYWkga2hvYXkgbmF5PyANCkNvIG5ndW9pIGJhbyBjaGluaCBibyBtYXkgdGhhbSBt dXUgbyBWYW4gcGhvbmcgQ2hpbmggcGh1IGRhICJjYWkiICBvbmcgVHJvbmcsIGxvaSBkdW5nIGx1 YyBvbmcgc28gaG8gZGUgbHVhIG9uZyBreT8gY28gbmd1b2kgYmFvIGRvIGxhIHRheSBNaW5oIC0g VnUgdHJ1b25nIGtoaWV1IG5haSB0byBjYW8sIG5ndW9pIGNvIGxhIGxpZXQgZGF0IGRvYyBIbyBU YXkgbWFuIFF1YW5nIEFuLiBOaGlldSBuZ3VvaSBxdWVuIHRoYW4gb25nIFRyb25nIGdvaSBkaWVu IGNhbmggYmFvLCBkL2MgVHJvbmcgYmFvICJ0b2kgY28gbm9pIHRoZSBkYXUiLiANCk5odSB2YXkg bGEgZC9jIFRyb25nIG5oYSBtaW5oIGN1bmcgYmlldCB0b25nIHRvbmcgdG9uZyByb2kuIEQvYyBr aG9uZyBub2kgdGhlIHRoaSBjaGkgY28gYm9uIHZhbiBwaG9uZyBDaGluaCBwaHUgc2FuZyB4ZSwg eGFvIHhhbyBjYWkgdmFuIGJhbiAidGhvbmcgYmFvIDQwIiBjaHUgY29uIGFpIHZhbyBkYXkgZHVv YyBudWEuIE8gdHJvbmcgVXkgYmFuIG5oYW4gZGFuIHRoYW5oIHBobyBIYSBOb2ksIGNvIG5ndW9p IGNvbiBuZ2hlIGR1b2MgY2EgZ2lvbmcgb25nIFRyaWV1IG5vaSBkaWVuIHRob2FpIHR1IGRhbyB4 YSB2ZSBraGkgYmFvIHRpbiBtdW5nIGRhIGxhdCBkdW9jIHRoZSBjbzogIlRvaSBiaWV0IG5nYXkg bWEsIHRoZSBuYW8gQ2hhIGF5IGN1bmcga3kiLiANCkNhaSB0dSAiY2hhIGF5IiBzYW8gbWEgZGF0 IHRoZSwgcGhhaSBub2kgZGF5IGR1IGxhICJ0aGFuZyBjaGEgYXkiLCBraWV1IHRvIHkga2hpbmgg YmksIGhvYWMgbGEgYW4gbmh1bmcgZ2lhIHZvIGxpZW0ga2hpZXQsIGhvYWMgbGEgY28gbGllbSBr aGlldCBkZW4gbWF5IGN1bmcgYmkgY2h1bmcgbm8gY2hvIGRpbmggZG9uIChkL2MgVHJvbmcgbGEg bmd1b2kgZHVvYyB0aWVuZyBsaWVtIGtoaWV0IGtoaSBjb24gbyBCYW4gTm9pIGNoaW5oIFRXOiBI b2kgbmdoaSB4b25nIHJhIGFuIG1pIHRvbSB2b2kgbGluaCwgcGhhbiBuaGEgY2hvIGtob25nIG5o YW4gLi4uLCB0cnUgdnUgUXVhY2ggTGUgVGhhbmggbmhvIGdpYWkgY3V1LCByYXQgdGhvaSkuIA0K Vmkgb25nIGR1b2MgY3VjIHRpZW4gdG8gcXVhIG5nb2FpIHN1YyB0dW9uZyB0dW9uZyBjdWEgb25n IG5lbiBsdWMgbmFvIG9uZyBjdW5nIG5vbSBub3AuIENvIHRhdCBnaWF0IG1pbmgsIG9uZyBuZ2hp IGx1YyBuYW8gaG8gY3VuZyBzYW4gc2FuZyBzb2kgb25nLCBuZW4gcmEgcXVvYyBob2kgb25nIGN1 IHR1IHRoYW5oIG1pbmggImxhbSBnaSBjbyBjaHV5ZW4gbXVhIGNodW9jIGRlbiA3MC4wMDAgZG8g bGEiDQoNClZlIE9uZyBEbyBIb2FuZyBBbiB2YSBvbmcgTGUgUXV5IERvbiwgY2FjIHBobyBjaHUg dGljaCBUUCBIYSBOb2k6DQoNCkxhIGNhcCBwaG8gY3VhIG9uZyBUcmlldSBvIEhhIE5vaS4gSGFp IG9uZyBuYXkgZGEgZGF0IHRvaSBkaW5oIGNhbyB0cmkgdHVlIGN1YSB0aGFtIG5odW5nLCBvbmcg QW4gIiBhbiIga2hpIHRodWMgaGllbiBkdSBhbiB0aGkgb25nIERvbiAiYW4iIHR1IGtoaSBjYXAg ZGF0IGNobyBkdSBhbi4NCk5hcCBkdW9pIGJvbmcgaGFpIG9uZyBuYXkgbGEgY2FjIHF1YW4gcXVh biwgcXVhbiBwaHVvbmcsIGNhYyBvbmcgZHVuZyBkYXUgY2FjIHNvLCBiYW4sIG5nYW5oIGN1YSBI YSBOb2kgbmh1OiB0b2EgYW4sIGNvbmcgYW4sIGtpZW0gc2F0LCB0YWkgbmd1eWVuIE1vaSB0cnVv bmcgTmhhIGRhdCwgdHJhdCB0dSB4YXkgZHVuZywgdGhhbmggdHJhIGdpYW8gdGhvbmcgY29uZyBj aGluaCAudi52LiB0aGEgaG8gbWEga2llbSBjaGFjLiANCkRhdCBkYWkgbGEgbmd1b24gYmVvIGJv LCBkYXQgbm9uZyBuZ2hpZXAgZ2lhIGJlbyBib3Qga2hpIGJpZW4gdGhhbmggdGhvIGN1LCB0aGFu aCBiaWV0IHRodSB0aGkgbGFpIHN1YXQgcmF0IGNhbzogbW90IGxhaSBtdW9pLCB0aGFtIGNoaSBs YWkgdHJhbSwgbGFpIG5nYW4uDQoNClZlIG9uZyBEbyBIb2FuZyBBbjoNCg0KVnUgYmEgVnUgVGhp IEtpbSBUaGFuaCBraWVuIG9uZyBjaHUgdGljaCBxdWFuIEJhIERpbmggcmEgbGVuaCBjdW9uZyBj aGUgdHJhaSBsdWF0IGdpYSBkaW5oIGJhICh2YSBjYWMgZ2lhIGRpbmggbmdvIDU5IExhbmcgSGEp OiBHaWFpIHRvYSBkZSBtbyBuZ28gNTkgTGFuZyBIYSB0aGFuaCBkdW9uZyB0aGVuaCB0aGFuZyB2 YW8gbmhhIG9uZyBBbiwgbW9pIHZpZWMgbGFtIGN1YSBUaGFuaCBwaG8sIGN1YSBRdWFuIEJhIERp bmggZGV1IHBoYWkgdGhlbyB5IGN1YSBvbmcgQW4sIGR1IGFuIHBoYWkgY2hpbmggc3VhLiANCk9u ZyBBbiBkYSBoYXkga2hlbyBkYW4gbmh1IHRoZSBuYW8gPyBPbmcgY2hvIGNvbiBnYWkgbGEgRG8g SG9hbmcgVmFuIGJpIG1hdCBkdWEgbmd1b2kgZGFtIHBoYW4gbXVhIG5nYXkgY2FuIG5oYSBvbmcg RG8gQmluaCBvIHNvIDE3IG5nbyA1OSBMYW5nIEhhLCBkaWVuIHBoYWkgbHVpIHZhbyBtbyByb25n IGR1b25nIGNobyBvbmcgQW4sIG9uZyBtdWEgdm9pIGdpYSBkYXQgaG9uIGdpYSB0aGkgdHJ1b25n LCByb2kgb25nICJ0aWVuIHBob25nIiBjaG8gZGFwIHBoYW4gcGhhaSBnaWFpIHRvYSwgbHVpIHZh byBkdW5nIG1vYyBnaW9pIG9uZyB2ZSByYSwgDQpvbmcgc3VhIHNhbmcgbGFpIHRoYXQgZGVwIHZh IHNhdSBkbyBvbmcgbGFpIGJpIG1hdCBiYW4gY2hvIGNoaW5oIG5ndW9pIGNodSBjdSB2b2kgZ2lh IGN1bmcgdGh1dCB4dW9uZywgdmF5IGxhIG9uZyBjaGl1IG1hdCBtb3QgdmFpIHR5IGRlIGJheSBu aHVuZyBuZ3VvaSBkYW4ga2hhYyB0aGF5IGNvIG5ndW9pIHR1IG5ndXllbiB0aGkgbWluaCBjdW5n IHR1IG5ndXllbiB0aHV0IHZhby4gRGUgYnUgbGFpIHBoYW4gZGEgbWF0IG9uZyBuYW4gY2FpIG5n YSBiYSBnb2MgbmhhIG9uZywgbW8gcm9uZyB4ZW8gcmEgZGUgY2hvIG5oYSBtb3Qgbmd1b2kgZGFu IGFuIG5ndSB0cnVvYyBuaGEgb25nIGJheSBkaSBwaGFuIGxvbiBjaGkgY29uIGxhaSBtb3QgZGll biB0aWNoIGR1b2MgbGlldCBrZSB2YW8gbG9haSBzaWV1IG1vbmcsIA0KdmF5IGxhIG9uZyBob3Qg bHVvbiBkZSBjbyBkdW9jIDIgbWF0IHRpZW4uIE5vaSB2ZSBkYXQgdmEgbmhhIHRoaSBvbmcgY28g bmhpZXUgbGFtIGtob25nIGtlIGhldCBkdW9jLCBjYWkgbmhhIHRvIGR1bmcgbyBIb2FuZyBDYXUg b25nIGRhbmcgY2hvIHRydW9uZyBtYXUgZ2lhbyBCYWMgSGEgdGh1ZSBsYSBtb3QgdGhpIGR1LiBU aG9pIGdpYW4gcXVhIHNhdSBraGkgdmUgaHV1IG9uZyBiaWV0IHZpZWMgbmdvIDU5LCB2aWVjIGR1 b25nIHZhbmggZGFpIDMgaGF5IHZpZWMga2UgSG8gVGF5IG1hIGRhYyBiaWV0IGxhIGNhaSBraHUg dnVjIGhvbiA4IG5naGluIG1ldCB2dW9uZyBvIEJlbiBDaHVtIC0gUXVhbmcgQW4sIHR1eSBraG9u ZyBtYXQgbmhpZXUgY29uZyBzdWMsIG5oaWV1IHRpZW4gYmFjIGRlIGxheSBubywgbmh1bmcgdmkg bm8gbGFpIGN1IG5hbSBsdSBsdSByYSBkbywgDQpjYWNoIG1lcCBobyBkZW4gYmEgYm9uIHRyYW0g bWV0IGRlIGNhYyBvbmcgeGF5IGxhbSBkaWNoIHZ1LCBnb2kgbGEgY2F1IGxhYyBibyBEYW0gU2Vu LCBuaHVuZyBvbmcgZGEgdGhhbyB0YWMgaG8gY2hvIG5vIGJpZW4gaG9hLCB0aGUgbGEgbm8gdGh1 b2MgdmUgZHUgYW4ga2UgSG8gVGF5LCBtYWMgc3VjIG1hIGR1b2kgZGFuLiBUaGFuaCB0cmEgY2hp bmggcGh1IGRhbmcgaG8gaGFvIHRoYW5oIHRyYSB0b2FuIHR1eWVuLiANCkQvYyBOZ3V5ZW4gVGFu IER1bmcsIG5ndW9pIG5vaSByYXQgbWFuaCB2YSBjdW9uZyBxdXlldCB0cm9uZyBjaG9uZyB0aGFt IG5odW5nLCBjbyBkYW0gdGhlIGhpZW4gYmFuZyBoYW5oIGRvbmcgY3UgdGhlIG8gdnUga2UgSG8g VGF5IG5heSBoYXkga2hvbmc/IERvIGxhIGNobyB0aGFuaCB0cmEgdG9hbiB0dXllbi4NCg0KT25n IEFuIHNhdSBraGkgdmUgaHV1LCBkYW5nIGxhIHRob2kgZGllbSBub25nLCBkZSB0cmFuaCBsaWVu IGx1eSwgb25nIFRyaWV1IGxlbmggY2hvIG9uZyBBbiBwaGFpIHZhbmcgbWF0IG8gY2FpIG5nbyA1 OSBMYW5nIEhhIHJvaSBzYXUgZG8gYmllbiByYSBudW9jIG5nb2FpIG1vdCB0aG9pIGdpYW4sIHZ1 YSBhbiB0b2FuIHZ1YSB0aGF5IG1hdCBvbmcgZ2lhaSBxdXlldCBzbyB0aWVuIG5nb2FpIHRlIG1h IGhvIGNvIGR1b2MgZG8gY2FjIGRvaSB0YWMgbnVvYyBuZ29haSBodWEgY2hpICJsYWkgcXVhIiBj YWMgY29uZyB0cmluaCwgZHUgYW4gbnVvYyBuZ29haS4uLiwgZ3VpIG8gbmdhbiBoYW5nIG51b2Mg bmdvYWkgdGhpIHNvIGNhaSBuZ3V5IGNvIG1vdCBsdWMgbmFvIGRvIHF1b2MgdGUgbm8gcGhvbmcg dG9hIHRoaSB0b2kuIA0KVmkgdmF5IG9uZyBuZ2hlIGxvaSBvbmcgVHJpZXUsIGxlbiBzYW5nIHRv YSBuaGEgY2h1bmcgY3UgY2FvIGNhcCAxNyB0YW5nIFdpbmRvdyBnaSBkbyBtb2kgZHVhIHZhbyBz dSBkdW5nIG1hIGNvbiBnYWkgb25nIGRhbmggc2FuIG1heSBjYW4gZGUgZG8sIHRoZSBsYSB2aWVj IG9uZyByYSBudW9jIG5nb2FpIGNvIG5odSBjb20gYnVhIGN1bmcga2hvbmcgYWkgYmlldCBkdW9j LiBPbmcgQW4gY2hpIGF5IG5heSB2aWVjIG8gbmhhIHNhcCBzdWEgeGV0IHh1IHZ1IE5nYSB0dSBU aGFuaCBYdWFuIGR1b25nIHZhbmggZGFpIElJSSwgb25nIG1hIGRpIHRoaSBraG9uZyBjbyBhaSAi Z2lhdCBnaWF5IiBib24gdG9hIGFuIGtoaSB4ZXQgeHUuIFZheSBtYSBkdW5nLCBraG9uZyBjbyBv bmcsIGJvbiBubyBjaGF5IGxhbmcgaGV0Lg0KDQpWZSBvbmcgTGUgUXV5IERvbjoNCg0KVnUgZGFu IGtoaWV1IGtpZW4gZHUgYW4ga2UgSG8gVGF5IHRhaSBjdW0gMyBYdWFuIExhIGNvIGxpZW4gcXVh biBkZW4gZGF0IGRpIHRpY2ggbWEgY2FjIG9uZyBvIFRoYW5oIHBobyBjaGllbSBxdWEgVDc5IHZh IHRydW9uZyBuZ2hpZXAgdnUgZ2lhbyB0aG9uZyB2YW4gdGFpLCBjYXAgc28gZG8gZGUgeGF5IGto YWNoIHNhbi4gTmh1bmcgZGEgY28gY3VvYyBnaWFuIHhlcCBkZSBjaGkgeWV1IGNhdSBkb2FuIHRo YW5oIHRyYSBsaWVuIG5nYW5oIHRoYW5oIHRyYSBwaGFuIHF1eSBob2FjaCBkb2FuIGtlIG8gY3Vt IDMgWHVhbiBMYSB0aG9pLCByaWVuZyB2ZSBkYXQgZGkgdGljaCBUNzkgZGFuZyBjaGllbSBnaXUg dGhpIGRvYW4gdGhhbmggdHJhIGxpZW4gbmdhbmggbmF5IGtob25nIGR1b2MgZG9uZyB2YW8sIA0K dmF5IGxhIG5vIGR1b2MgbmFtIHRyb25nIHRhbSB0YXkgb25nIExlIFF1eSBEb24sIG9uZyBjdW5n IHJhIHF1eWV0IGRpbmggdGhhbmggbGFwIGRvYW4gdGhhbmggdHJhIGxpZW4gbmdhbmggY3VhIFRo YW5oIHBobywgcm9pIHNhaSBvbmcgRGFuZyBWYW4gVHJhYywgUGhvIHRoYW5oIHRyYSBIYSBOb2kg Y2hheSB0b2kgY2hheSBsdWksICB2byB2byB2aXQgdml0LCByb2kgcmEgbW90IGtldCBsdWFuIGNo byBkYW5nIHRydW9jIGxlbiBiYW8gS2luaCB0ZSAmIERvIHRoaSByYW5nICJUNzkgc3UgZHVuZyBk YXQgZGkgdGljaCBsYSBob3AgcGhhcCIuIA0KRGUgZGFuIGhldCBkdW9uZyBkb2kgbnVhLCBvbmcg cmEgbGVuaCBjaG8gY2FjIGJhbiBuZ2FuaCBjaHVjIG5hbmcgY3VhIFRoYW5oIHBobyAibGFtIHZp ZWMiIHZvaSBCbyBWYW4gaG9hIHRob25nIHRpbiAobmF5IGxhIFZhbiBIb2EgVGhlIHRoYW8gdmEg RHUgbGljaCkgZGUgY2hpbmggc3VhIGJhbiBkbyBkaSB0aWNoPyBOaHVuZyBiYXkgZ2lvLCBvbmcg RG9uIGN1bmcgdmUgbm90IHJvaSBkaWV1IG5heSBjbyBsYW0gZHVvYyBudWEgaGF5IGtob25nPyBE ZSBhbiB0b2FuLCBjYWMgb25nIG5heSBsYWkgcGhhaSBjaGkgbWFuaCB0YXksIG5odW5nIHRob2kg YnVvaSBuYXkgY2hpIGRhdSBjbyBwaGFpIGxhIGRlIG5odSBsdWMgY29uIHRhaSBjaHVjLg0KDQpO Z29haSB2aWVjIHhheSBraGFjaCBzYW4gdHUgbmhhbiBjb24gY28gY2h1eWVuIHBoYW4gbG8gbWF0 IHRpZW4gZGUgY2hpYSBjaGFjIG5oYXUsIA0KZHVhIGNvbmcgdHkgeGF5IGR1bmcgSG9uZyBIYSB0 aHVvYyBUb25nIGNvbmcgdHkgeGF5IGR1bmcgbmhhIEhhIE5vaSB0aG9jIHZhbyBkZSANCmNoaWVt IGNobyBiYW5nIGR1b2MuIFRoZW8gbmh1IG9uZyBQaGFtIFZhbiBUb3QsIGNhbmggc2F0IGRpZXUg dHJhIGNvbmcgYW4gcXVhbiANClRheSBIbyBkYSBub2kgdm9pIGRhbiBuYW0gMjAwNDogImtodSBk YXQgbmF5IGNvIHN1YXQgY3VhIG9uZyBOZ3V5ZW4gUGh1IFRyb25nIC0gDQpVeSB2aWVuIEJvIGNo aW5oIHRyaSwgQmkgdGh1IHRoYW5oIHV5LCBuZW4gZGFuIG8gZGF5IGR1bmcgY28gbWEgZG9pIi4g DQoNCk9uZyBDaHUgTmdvYyBUdWF0LCBsYW0gY2h1IHRpY2ggbHVjIGRhdCBkaSB0aWNoIGJpIGJh biBub2k6ICJUYXkgRHVvbmcgYmFuIGRheSwgDQpraG9uZyBwaGFpIHRvaSBkYXUiIChEdW9uZyBs YSBwaG8gY2h1IHRpY2ggcGh1IHRyYWNoIGRhdCBkYWkgdmEgeGF5IGR1bmcgbHVjIGRvKS4gDQpN b3QgY2FuIGJvIHR1IG1pZW4gdHJ1bmcsIGtob2FuZyBuYW0gMjAwMyByYSBIYSBOb2kgbmhhbiBj b25nIHRhYyBtb2kgdGFpIGJvIHBoYW4gDQp0aGFuaCB0cmEgbyBtb3QgQm8gbm8sIGNoYW4gdW90 IGNoYW4gcmFvIHRoZSBuYW8gbWEgYmFwIHZhbyBkaW5oIG11YSBtb3Qgc3VhdCBkYXQgDQpvIGRh eSwgb25nIGJhbyBybyByYW5nIG5ndW9pIHRyb25nIGNvaSBvIFQ3OSBkdW9jIHV5IHF1eWVuIGRh IGNoaWEgc28gZG8gcmEgY2hvIHhlbSANCnJvaSB0aGUgbWEgdmFuIGJpIG9uZyBiYW4gdGhhbiBv IFh1YW4gTGEgZ2F0IGRpIGtob25nIGNobyBtdWEsIHZpIHZheSBvbmcgZGEgbmhhbmggY2hvbmcg cnV0IHRpZW4gZGF0IGNvYy4NCg0KVmUgb25nIEJpIHRodSBUaGFuaCB1eSBQaGFtIFF1YW5nIE5n aGk6DQoNClZpZWMgdGhpIGNvbmcgeGF5IGtoYWNoIHNhbjogTmFtIDIwMDMgZGlwIFNlYWdhbWUg bmd1b2kgdGEgY2hvIHRoaSBjb25nIGRhbyBtb25nLCBuaHVuZyBsYWkgYmkgY2FjIGN1IHJhIG5n YW4gY2FuIG5lbiBraG9uZyBsYW0gZHVvYy4gTmdheSAxOC8xLzIwMDYgdGllcCB0dWMgbGFtIA0K ZHVvaSBzdSBiYW8gdHJvIGN1YSBDb25nIGFuIHZhIHF1YW4gZG9pIFF1YW4ga2h1IElJLiBLaGkg ZGFuIHhvbmcgdmFvIGNhbiB0cm8ga2hvbmcgY2hvIFQ3OSB0aGkgY29uZywgY29uZyBiaW5oIFF1 YW4ga2h1IElJIGR1b2MgZGlldSBkb25nIHZlIGRhIGR1bmcgZHVpIGN1aSBwaGFuZyB0aGFuZyB2 YW8gbWF0IGRhbiwgY2h1IHlldSBsYSBuaHVuZyBuZ3VvaSBnaWEgY2EuIA0KTmd1b2kgZGFuIGRh IGNoYXkgbGVuIGRlIGRvbiB0cnVjIHRpZXAgY2hvIGQvYyBOZ2hpIGx1YyBkbyBsYSBCbyB0cnVv bmcgVmFuIGhvYSBUaG9uZyB0aW4uIFRoYW5oIHRyYSBCbyBWYW4gSG9hIFRob25nIHRpbiB4dW9u ZyBuZ2F5LCByYXQgaGFuZyBoYWkgdmEgYmFvIHNhbyBobyBsYWkgZGFtIHhhbSBwaGFtIHZhbyBk aSB0aWNoIGRhIHhlcCBoYW5nIGNhcCBxdW9jIGdpYSB2YSBraG9hbmggdnVuZyBiYW8gdmUgbmh1 IHRoZSBuYXksIGhvbSBzYXUgY2hvIHJhIG5nYXkgYmFpIHRyZW4gYmFvIHZhbiBob2E6ICJIYSBO b2khIHNhbyBsYWkgY2FwIHNvIGRvIG5odSB0aGUgIi4gDQpEbyBUaGFuaCB0cmEgVmFuIGhvYSB4 dW9uZyBsYW0gdmllYyB2b2kgY2hpbmggcXV5ZW4sIHBoYXQgaGllbiByYSBobyBjYXAgc28gZG8g Y2hvIFQ3OSB2YSBjaG8gY2EgdHJ1b25nIGt5IHRodWF0IG5naGllcCB2dSBHVFZUIG11YyBkaWNo IGxhIGxhbSBjYWkgZ2F5IHNhbiBzYW5nIGRhbiBhcCBkYW4gbmV1IGNvbiBkYW0gZGF1IHRyYW5o IGRvaSBkYXQgZGkgdGljaCBraGkgaG8geGF5IGtoYWNoIHNhbi4gVHVvbmcgZGVuIGRheSBsYSBz ZSBnaWFpIHF1eWV0IGR1b2MgdmkgY2h1YyBuYW5nIEJvIFZhbiBob2EgVGhvbmcgdGluIGNvbiBn aS4gDQpOaHVuZyB0aGF0IGtob25nIG1heSBjaG8gZGFuIHZpIG5vIGxhaSB0cnVuZyB2YW8gZGlw IHRldCwgbXVhIHF1YSBiaWV1LCBxdWEgdGhhdCwgcXVhIGR1dCBsb3QgbGFuIGxvbi4gVmF5IGxh IEhhIE5vaSBsYWkgImNoYXkiLiBWdWEgdGV0IHhvbmcsIGRhbiBsZW4gZ2FwIG9uZyBDaGFuaCB0 aGFuaCB0cmEgdGhpIGNhaSBuaGlldCB0aW5oIHRydW9jIHRldCBkYSBiYXkgYmllbiBkYXUgaGV0 LCB0aGFpIGRvIGN1IG5odSBobyBjaHVhIHR1bmcgZ2FwIGRhbiB2YSBjaHVhIGhlIGJpZXQgdmll YyBuYXkgYmFvIGdpbywgbmh1bmcgaG8gY3VuZyBiYW8gZGEgY29uZyB2YW4gY2hvIEhhIE5vaSBn aWFpIHF1eWV0IHJvaS4gDQpOZ3VvaSBkYW4gZ2FuZyBob2kgbGFtIHRoaSBkdW9jIG5odW5nIG5n dW9pIHRyb25nIHRoYW5oIHRyYSBiYW8gImNodW5nIHRvaSBjaGkgYmlldCBuZ2hlIHRoZW8gbGVu aCBCbyB0cnVvbmciIChQaGFtIFF1YW5nIE5naGkpLiANCkR1bmcgbW90IGNhaSwgc2F1IGRhaSBo b2kgRGFuZywgZC9jIE5naGkgdmUgbGFtIEJpIHRodSBUaGFuaCB1eS4gTHVjIG5heSBkYW4gbW9p IHRlIG5ndWEgbmd1b2kgcmEgdmEgdHUgdHJhIGxvaSBjYXUgaG9pIHRhaSBzYW8gYm8gVmFuIGhv YSBUaG9uZyB0aW4gdHJ1b2MgdGV0IHRoaSBraGFjLCBzYXUgdGV0IGRhbmggYmFpIGxvLg0KVmF5 IGxhIHRydW9jIGRheSB0cmVuIGN1b25nIHZpIEJvIHRydW9uZyBjaHV5ZW4gbmdhbmggZC9jIGRh eSB2ZSBjaG8gSGEgTm9pIGdpYWkgcXV5ZXQsIG5odW5nIGJheSBnaW8gZC9jIGR1bmcgbyB2aSB0 cmkgY2FvIG5oYXQgSGEgTm9pIHJvaSBkL2MgdGluaCBzYW8gZGF5Pw0KDQpWZSBvbmcgQmkgdGh1 IFF1YW4gdXkgVGF5IEhvIFZ1IEhvbmcgS2hhbmggbGVuIGNodWMgcGhvIGNodSB0aWNoIFVCTkQg VFBITjoNCg0KT25nIE5ndXllbiBUaGUgVGhhbywgdmkgY2h1IHRpY2ggbW9pLCBzZSBsYW0gZHVv YyBnaSBraGkgb25nIFZ1IEhvbmcgS2hhbmggcGhvIGNodSB0aWNoIGxhaSBjaGluaCBsYSBuZ3Vv aSBkYSB0aHVjIHRoaSB0aWNoIGN1YyB5IGRvIGN1YSBvbmcgRG8gSG9hbmcgQW4gdmEgb25nIExl IFF1eSBEb24gdHJvbmcgdmllYyBjdW9uZyBjaGUgR1BNQiB0cmFpIHBoYXAgbHVhdCBsYWkgY29u IGRvIGxvaSBjaG8gZGFuIG5odSBsYSBvIGN1bSAzIFh1YW4gTGEgdnVhIHF1YS4gDQpWdWEgeWVu IHZpIGl0LCBuZ2F5IG9uZyBLaGFuaCBkYSBreSBjb25nIHZhbiB0cmFpIGx1YXQgZGluaCBjaGkg dGhpIGhhbmggYW4gcGh1YyB0aGFtLCBiYW8ga2UgY2hvIG1vdCBjb25nIHR5IFROSEggeHUgbm8g dmEgY2hpZW0gZGF0IG11b24uIENoaSB0aGkgMjAvQ1QtVFUgbGFpIGdpYW8gY2hvIG9uZyBWdSBI b25nIEtoYW5oIGNoaSBkYW8gdGhhbmggbGFwIHRvIGNvbmcgdGFjIGRlIGdpYWkgcXV5ZXQgZHV0 IGRpZW0gbmh1bmcgdnUga2hpZXUga2llbiBjb24gdG9uIGRvbmcgYmF5IGxhdSBuYXkgdGhpIHN1 IHZpZWMgcm9pIHNlIGRpIHRvaSBkYXU/IA0KVm9pIGRhbmggbmdoaWEgQmkgdGh1IHF1YW4gdXkg VGF5IEhvLCBvbmcgcmEgdmFuIGJhbiBjaGkgZGFvIGJhbyBrZSBjaG8gVDc5IHF1YW4ga2h1IElJ IGNoaWVtIGRhdCBkaSB0aWNoIGNodWEgVmFuIE5pZW4tIGRpbmggWHVhbiBUYW8gU28gZGUgeGF5 IGtoYWNoIHNhbiB0dSBuaGFuLiBTYXUga2hpIHRodWMgaGllbiB4b25nIHZpZWMgY3VvbmcgY2hl IEN1bSAzIFh1YW4gTGEgdmEgQmVuIGNodW0gUXVhbmcgQW4sIHZvaSB0aGFuaCB0aWNoIG5heSBv bmcgZHVvYyBkdWEgbGVuIGxhbSBwaG8gY2h1IHRpY2ggdGhhbmggcGhvLCANCnRodWMgcmEgbGEg ZG8gYm8gc2F1IGN1YSBjYWkga2hvaSB4YSBob2kgZGVuOiBCb25nICJEZSIsIFZpbmggIkNoYXQi LCBUaGFuaCAiY2hvIiB0aG9uZyBxdWEgTmd1eWVuIFBodWMgUXVhbmcsIFRydW9uZyBjb25nIGFu IFF1YW4gKHRyb25nIHZ1IGFuIE5hbSBDYW0gdHJ1b2MgZGF5IGNvIGRhbmcgYmFvIG5oaWV1IHZl ICJjYXAgYmFpIHRydW5nIEJvbmcgIkRlIiBRdWFuZyAiUmF1IiwgQm8gQ29uZyBhbiB0aHVhIGJp ZXQpIHZhIGtob2kgeGF5IGR1bmcgY3VhIHRoYW5oIHBobyBkYSB0dW5nIHRpZW4gZGUgbXVhIGNo dWMsIGNvdCAiY2FpIGNhbSIgS2hhbmggdmFvIGNodWMgdnUgbmF5LCBuZW4ga2hpIHRoYW5oIGNv bmcgbW9pIGNvIGNodXllbiBsYW5oIGRhbyBUb25nIGNvbmcgdHkgeGF5IGR1bmcgSGEgTm9pIGtl byBuaGF1IGxlbiBiaWV0IHBodSBBbiBQaHUgdGFuIFRhbSBEYW8gYW4gbXVuZyB2ZSBzdSBraWVu IG5heSB2YSB4YXkgcmEgdmllYyBkYW5oIGJhYyBiaSBjb25nIGFuIGJhdC4gDQpWaWVjIHNhcCB4 ZXAgY2FuIGJvIGNobyBIYSBOb2kgdmEgVGF5IEhvIHRoYXQgbG9naWMgdmEga2hlcCBraW46IFF1 YW5nICJEYXUgdG8iIG5nYXkgc2F1IGRvIGN1bmcgbWFuIGhhbiBjaHVjIHRydW9uZyBjb25nIGFu IFF1YW4gKGRhIDIga2hvYSkgbmVuIGxhaSBkdW9jIGNhaSBzYW5nIGxhbSBwaG8gYmkgdGh1IHF1 YW4gdXkgVGF5IEhvICENCg0KU3UgeGVwIGRhdCAiY2FuIGJvIiBraWV1IG5heSBjdWEgY2FjIG9u ZyBxdWFuIGxhIG5ndXllbiBuaGFuIGN1YSBtb2kgbmd1eWVuIG5oYW4ga2hpIGNhaSBnb2kgbGEg InZhbiBob2EgcGhvbmcgYmkiIJYgY2FpIHZhbiBob2EgY2hheSCWIGRvIG9uZyBOZ3V5ZW4gUXVv YyBUcmlldSwgQm8gdHJ1b25nIEJvIFkgdGUgaG9wIHRodWMgaG9hIHJhLCBjbyB0YWMgZHVuZyBk dW5nIG5odSBjYWkgdHJpZXQgbHkgY3VhIG9uZyB0cnVtIE5hbSBDYW0gZGEgbm9pOiAiY2FpIGdp IGtob25nIG11YSBkdW9jIGJhbmcgdGllbiB0aGkgcGhhaSBtdWEgZHVvYyBiYW5nIHJhdCwgcmF0 LCByYXQgbmhpZXUgdGllbiEiLg0KDQpNYSB2byBraG9jIHRoYW4ga2V1IG9uZyBOZ3V5ZW4gTWFu aCBDdW9uZywgY2h1IHRpY2ggUXVhbiB0YXkgSG8gdGhvaSBnYXkgdG9pIGFjOg0KDQpLaG9hbmcg dGhhbmcgMy0gNC8yMDA3LCB2byBDdW9uZyBiaSBjaGV0IHVuZyB0aHUgbyB0dW9pIDQ5LiBEZW0g ZGVtLCB2byBDdW9uZyBoaWVuIHZlIGtob2MgbG9jIGtldSB0aGFuLiBDdW9uZyBuZ2hpIHJhbmcg dm8gbW9pIGNoZXQgbWEgbWluaCBkaSBjYXAgYm8gbmVuIGNvIGF5IGdoZW4uIA0KDQpOaHVuZyBi ZW4gdm8ga2hvbmcgY2hvIGxhIHZheSBiZW4gZGkgbmhvIGRlbiB0aGF5IGdvaSBob24gZ2lvaSBu aGF0LiBWbyBDdW9uZyBoaWVuIGxlbiBraG9jIGxvYyBhbSB5LCBiYW8gcmFuZyB4dW9uZyBkdW9p IGJpIGxvdCBoZXQgcXVhbiBhbywgYmkgdHJhIHRhbiBoYW5nIG5nYXkgZGF1IGRvbiBsYW0uIA0K SG9pIG5ndXllbiBuaGFuIHRoaSBiYW8gdGFpIGFuaCBDdW9uZyBreSBiYW4gZGkgaGFpIG5naGlh IHRyYW5nOiBEb25nIEJhaSB2YSBYdWFuIExhLiBMYWkgYmFuIGNhIGRhdCBkaW5oIGNodWEgbnVh IHZhIGN1b3AgcmF0IG5oaWV1IGRhdCBjdWEgZGFuLiBOaHVuZyBtZW5oIGR1b25nIGN1YSBDdW9u ZyBkYW5nIG1hbmggbGFtIG1hIGtob25nIGxhbSBnaSBkdW9jIG1vaSBiYXQgdm8gZGkgdGhheS4g UmFuZzogTmV1IGFuaCBDdW9uZyBjb24gdGh1b25nIGVtIHRoaSBjaG8gZW0gbW90IGl0IHF1YW4g YW8gdmEgZG8gZHVuZy4gR2lhIGRpbmggdm8gdmUgdGh1YXQgbGFpIGNobyBDdW9uZyB2YSBkYW4g ZHVuZyBnYXkgdG9pIGFjIG51YS4gDQpOZ2F5IGhvbSBzYXUgQ3Vvbmcgc2FpIG5ndW9pIGNobyAy IHhlIG8gdG8gcXVhbiBhbywgZG8gZHVuZywgdmFuZyBtYSByYSBuZ2hpYSB0cmFuZyBkb25nIGJh aSBkZSBob2EgZ3VpIGNobyB2by4gTmh1bmcgQ3Vvbmcga2hvbmcgdHUgZGkgbWEgdGh1ZSBib24g Y3V1IHZhbiwgY2h1YSByYSBkZW4gbm9pIHRoaSB2dW9uZyBkdW9uZyBraG9uZyB2YW8gZHVvYywg bmVuIG5vIGRvIHR1bmcgdG9lIHJhIG5nb2FpIGRvbmcgbWEgdmUgY2h1bmcgbm8gY3VuZyBzbyBs YW0sIGhvaSByYSBuaGFuIGRhbiBtb2kgYmlldCBjaHV5ZW4uIA0KQ29uIEN1b25nIHRoaSB0dSBk byBiYXQgY3UgdmFuIGJhbiBnaSBtYW5nIHRpbmggdG9pIGFjIG5odSBsZW5oIGN1b25nIGNoZS4u LiBsYSBDdW9uZyB0aHVhIHV5IHF1eWVuIGNobyBUaGFpIFZhbiBIYSwgUGhvIGNodSB0aWNoIGt5 IGhldC4gRGVuIG5heSB2YW4gZGFuZyBob24gYmF5IHBoYWNoIGxhYy4gQ2FjIGN1IGJhbyB0b2kg Y3VvcCBkYXQgZGluaCBjaHVhIGx1IGNodW5nIG5vIHRoZSBuYW8gY3VuZyBiaSBxdWEgYmFvIHRo b2kuDQoNCkNhYyBvbmcgY2h1IHRpY2ggcGh1b25nIFh1YW4gTGEgTmd1eWVuIFh1YW4gRGluaCB2 YSBRdWFuIE5nb2MgQW5oOiANCg0KVGFuZyBsb3AgcXVhbiBjaHVjIGN1YSBUaGFuaCBwaG8sIGN1 YSBxdWFuIGxhIG5odSB2YXkgdGhpIGxvcCBxdWFuIHBodW9uZywgcXVhbiB4YSB0cm8gdGhhbmgg bW90IGx1IGRhdSB0cmF1IG1hdCBuZ3VhIGxhIGR1b25nIG5oaWVuLiBDYXAgY28gc28gcGh1b25n IHhhIGR1b2MgY2FwIHRyZW4gdGhhIG5vaSBjaGUgY2hhbiBuZW4gY2h1bmcgdGh1YyBzdSBsYSBi b24gc2FpIG5oYSBjaGFuZyBjb24gbmUgc28gZ2kgYWkuIA0KTyBwaHVvbmcgWHVhbiBMYSBhaSBj aGEgYmlldCBOZ3V5ZW4gWHVhbiBEaW5oIGxhIG1vdCB0ZW4gY3VvbmcgaGFvIG1vaSwgdHUgYmkg dGh1IHNhbmcgbGFtIGNodSB0aWNoIGFuIGRhdCBkZW4ga2h1bmcga2hpZXAsIG1vaSBsYW0gZHVv YyBudWEga2hvYSBjaHUgdGljaCB0aG9pIHNvIHRpZW4ga2llbSBkdW9jIGRhIGhhbmcgdHJhbSB0 eSBkb25nLCBzbyBkYXQgZGFpIHRoaSB2byBiaWVuLiANClZvIERpbmggdmVuaCB2YW8gdHV5ZW4g Ym8gdm9pIGRhbiBsYW5nIG8gZGF5IHJhbmcgOiAia2hpIG5hbyBIbyBUYXkgY2FuIGhldCBudW9j IHRoaSBuaGEgRGluaCBtb2kgaGV0IHRpZW4iLCBtdW9uIGRhdCBvIGRhdSBsYSBkdW9jIG8gZGF5 LCBraG9uZyB0dSBjYSBkYXQgY2h1YSwgaG9uIDIwMG0yIGRhdCBjdWEgY2h1YSBLaGFpIE5ndXll biBvIFF1YW4gTGEgRGluaCBjdW5nIGNoaWVtLCBuYXkgRGluaCBsYWkgY2hpZW0gbmdvdCBuZ2hp biBtZXQgdnVvbmcgZGF0IHJ1b25nLCBkYXQgYW8gcmF1IG11b25nIGRlIHhheSBuZW4gbmdvaSBu aGEgNyB0YW5nIG5nYXkgZGF1IGxhbmcgUXVhbiBMYSBYYSwgc2F1IHRydSBzbyBxdWFuIFRheSBI bywgZG9uIGRhdSBtYXQgdGllbiBkdW9uZyB2YW5oIGRhaSBJSSByb25nIDY2bSBkaSBjYXUgTmhh dCBUYW4gc2FwIHhheS4gDQpLaG9uZyBuaHVuZyB0aGUgRGluaCBjb24gbG9pIGR1bmcgY2h1YyBx dXllbiBkZSBsdWEgZGFvIHRyb25nIHZpZWMgbXVhIGJhbiBkYXQgZGFpIGNoaWVtIGRvYXQgY3Vh IGJhIE5ndXllbiBUaGkgQmljaCBEdW5nLCBvIDUyIFBoYW4gRGluaCBQaHVuZywgSGEgTm9pIDE3 NCBjYXkgdmFuZy4gVGhhbmggdHJhIFRoYW5oIHBobyBIYSBOb2kgZGEga2V0IGx1YW4sIFVCTkQg VFBITiBkYSBreSBxdXlldCBkaW5oIGNodXllbiBobyBzbyBjb25nIGFuIEhhIE5vaSBraG9pIHRv LiANClRoZSBtYSBpdCBuZ2F5IHNhdSwgdGF0IGNhIGxhaSBuZ3VvYyBsYWksIERpbmggZGEgY2hh eSwgY2F1IGtldCBuZ2F5IHZvaSBvbmcgRG8gS2ltIFR1eWVuIHBobyBnaWFtIGRvYyBjb25nIGFu IHRoYW5oIHBobyBIYSBOb2kgZGUgb25nIG5heSBiYXkgbXV1IGNobyBEaW5oIGxhdCBsYWkgYmEg RHVuZyB2YSBkdWEgcmEgZGUgeHVhdCBtb2kgbGEgRGluaCBraG9uZyBkYW5nIHh1IGx5IGJhbmcg YmllbiBwaGFwIGhpbmggc3UhDQoNCkNodSB0aWNoIFF1YW4gTmdvYyBBbmggbmd1b2kga2Ugbmhp ZW0gTmd1eWVuIFh1YW4gRGluaCBsYWkgY29uIGx1dSBtYW5oIGRldSBnaWEgaG9uIGRhIGR1bmcg cmEgYmFvIGNoZSBjaG8gTmdvIFRoaSBIb2EsIGNhbiBibyBkaWEgY2hpbmggdHJhbiBsb3QgY3Vh IG9uZyBOZ3V5ZW4gSG9uZyBMaW5oIDEwMCB0cmlldSBkb25nIHRyb25nIHZpZWMgbWFuZyBnb3Ag ZGllbiB0aWNoIG5oYSBvbmcgTGluaCAoZGEgbXVhIHR1IGxhdSkgdmFvIGRpZW4gdGljaCBjdWEg Y2h1IGN1IGRlIGNhcCBzbyBkbyBjaG8gY2h1IGN1IHZhIGNoaW5oIGJhIEhvYSBkaWEgY2hpbmgg bGFpIGR1bmcgcmEgZ29pIHkgdHJ1bmcgZ2lhbiBkZSB0YWNoIHNvIGRvLCBjaGllbSAxMDAgdHJp ZXUgZG9uZywgb25nIExpbmggdmkgdGhhbiBjbyB0aGUgY28gbyBjYWkgZGlhIHBodW9uZyBuYXkg bmVuIHBoYWkgZGkgbXVvbiBzbyBkbyBjdWEgYmFuIHZheSB0aGUgY2hhcCBub3AgZHUgMTAwIHRy aWV1LCByb2kgY29uIGNhYyB0aHUgdGllbiBraGFjIG51YSBjdW5nIGRhIHBoYWkgbWF0IG5nb3Qg bmdoZXQgMTUwIHRyaWV1IGRvbmcgcm9pLiANCk9uZyBQaGFtIERpbmggUGhvbmcsIFRydW9uZyBj b25nIGFuIHBodW9uZyBYdWFuIExhIGN1bmcgYmF1IHZhbyB2dSBvbmcgTGluaCBtYSBraWVtIGNo YWMsIG1vaSBjaHUga3kgUGhvbmcgbmdhbmcgbmhpZW4gbGF5IDUgdHJpZXUgZG9uZywgbWEga3kg ZGkga3kgbGFpIHRoaSBraG9uZyBiaWV0IGJhbyBuaGlldSBsYW4uIA0KUm9pIGhvIHNvIGtoaSBs ZW4gZGVuIFF1YW4gdGhpIGRpYSBjaGluaCBRdWFuIGxhaSBkb2kgNTAgdHJpZXUgbnVhLiBEZW4g ZGF5IG9uZyBMaW5oIGtob25nIGNoaXUgbm9pLCBkYW5oIHBoYWkgZGUgZG9uIHRvIGNhby4gRGEg Z2FuIDMgbmFtIG5heSBsb2FuaCBxdWFuaCBsdWFuIHF1YW4gdHUgY29uZyBhbiBzYW5nIHRoYW5o IHRyYSwgdHUgdGhhbmggdHJhIGRlbiB1eSBiYW4gdHUgc28gbGVuIEJvLCB0dSBCbyB2ZSBTby4u LiBraG9uZyBiaWV0IGRhdSBtYSBsYW4uIA0KQ2FpIHRpbmggdHJhbmcgbmh1IHRoZSBuYXkgZGF5 IHJheSBtb2kgY2hpIHRyb25nIGNhaSBwaHVvbmcgbmF5IHRob2kuIEtpZXUgbGFtIG5heSBjdWEg YmEgSG9hIERpYSBjaGluaCBsYSBwaG8gYmllbiBkZW4gbWF5IGNodWMgdHJ1b25nIGhvcCByb2ks IG5odW5nIHNvIHJ1dCBkYXkgZG9uZyBydW5nIG5lbiBjdSBhaSBkb25nIGRlbiBiYSBIb2EgZGlh IGNoaW5oIGxhIG5ndW9pIHRhIGRhcCBkaSBuZ2F5LiBDaHVhIGtlIGxhIGRhdCBub25nIG5naGll cCBjYWMgcXVhbiBjaHVjIHZhIHhhIGhvaSBkZW4gbmh1IEJvbmcgIkJ1b2kiLA0KIFRoYW5oICJj aG8iLCBRdWFuZyAiRGF1IHRvIiBtdWEgcmUgY3VhIHhhIHZpZW4sIG5vbmcgZGFuIGRlIGJpZW4g dGhhbmggdGhvIGN1LCBkaWVuIGhpbmggbmhhdCBsYSB2dSBvbmcgRHVvbmcsIHBobyBjaHUgdGlj aCBVQk5EIHF1YW4gVGF5IEhvIGdhIG11YSBkYXQgbm9uZyBuZ2hpZXAgY3VhIGJhIFRyYW4gVGhp IFRoaW5oICh0dWMgU2FjaCkgbmdheSBzYXUgdHJ1IHNvIFVCTkQgcXVhbiBUYXkgSG8gZGUgb25n IGN1bmcgdm9pIGNhYyBxdWFuIGNodWMgY3VhIFF1YW4gY2hpYSBuaGF1IHhheSBuaGEgY2FvIHRh bmcgdmEgY2FwIHNvIGRvIHJhdCBkZSBkYW5nICEgDQpUYXQgY2EgZG9uIHRodSB0byBjYW8gaGFu aCB2aSB0aGFtIG5odW5nIHNhaSB0cmFpIGN1YSBjYWMgcXVhbiBjaHVjIG8gZGF5IGRldSBiaSBk aW0gZGkga2hvbmcgY28gY28gcXVhbiBuYW8gZ2lhaSBxdXlldCBob2FjIGdpYWkgcXV5ZXQgdGhp IG5odSB0cnVvbmcgaG9wIG9uZyBOZ3V5ZW4gSG9uZyBMaW5oIS4gSGllbiBuYXkgbmhhbiBkYW4g WHVhbiBMYSBkYW5nIGNodXllbiB0YXkgbmhhdSBkb2MgY2FpIGRvbiB0byBjYW8gYmEgTmdvIFRo aSBIb2EgLSBjYW4gYm8gZGlhIGNoaW5oIHBodW9uZyBYdWFuIExhIHZhIGJhIE5nbyBUaGkgSGFu aCAtIFRydW9uZyBCYW4ga2llbSB0cmEgUXVhbiB1eSBkb2kgdm9pIGNhcCB0cmVuIHRoaSBkdW5n IHRoYW4geGFjLCB2b24gdHUgY28gZGUgZGF1IHR1IGNobyBjYWMgYW5oIGxhbmggZGFvIGN1YSBR dWFuLCBjdWEgVGhhbmggcGhvLiANCktob25nIGJ1YSB0aWVjIG5hbyBjdWEgY2FjIHF1YW4gY2h1 YyBsYSBraG9uZyBjbyBtYXQgaGFpIGJhIG5heSwgc2F1IG5oYXUgbmhldCBjb24gZGkgbyBrZSwg bmhhIG5naGkgbnVhIGNodS4gQ2F1IGtldCB2b2kgUXVhbiBOZ29jIEFuaCwgQ2h1IHRpY2ggVUJO RCBwaHVvbmcgWHVhbiBMYSBkZSBhbiBjaGFuIGN1b3AgZGF0IGN1YSBkYW4sIGJheSByYSBkdSB0 cm8gbmh1IGNhcCBuaGFtIHNvIGRvIGRlIHNhdSBkbyBtdW9uIHRhY2ggdGhpIGNoaSB0aWVuIHJh LiBCYW4gY2EgZ2FuIDEuMDAwbTIgZGF0IHNhbiBraG8gaG9wIHRhYyB4YSB2b2kgZGFuaCBuZ2hp YSBjaG8gdGh1ZSAzMCBuYW0uDQoNCk9uZyBOZ3V5ZW4gVGhlIFRoYW8gbmhhbiBuaGllbSB2dSBy YXQgbmFuZyBuZSBkYW5nIGR1bmcgdHJ1b2MgdGFuZyB0YW5nLCBsb3AgbG9wIGNhYyBsb2FpIGNh biBibywgcXVhbiBjaHVjLCBuaGEgbGFpIG5odSBib24gY2h1bmcgbWEgdG9pIHNvIGJvIHBoYWMg aG9hIHRyb25nIHRodSBuYXkgdGhpIHNlIHBoYWkgbGFtIHRoZSBuYW8/IERpZW4gaGluaCBuaGF0 IGxhIHZ1IDUuMDAwbTIgZGF0IHZ1b24gdGh1IFRodSBMZSBzYWkgcGhhbSBkZW4gbmh1IHZheSB0 cnVvYyBtYXQgb25nIFBoYW0gUXVhbmcgTmdoaSwgbmd1b2kgY28gY2h1YyB2dSBjYW8gbmhhdCB0 aGFuaCBwaG8gbm8gdmFuIGJpbmggdGhhbiBuaHUga2hvbmcsIG1hYyBkdSBkZW4gbmF5IG9uZyBC aSB0aHUgdGhhbmggdXkgbmF5IGRhIHRoYXkgKHZhIGRhIG5vaSkgdGF0IGNhIGRldSBkbyBjYW4g Ym8sIHR1IHRvIGNodWMgbWEgcmEgY2EgIQ0KDQpUcnVvYyB0aW5oIGhpbmggaGllbiBuYXkgZHUg bmh1IHRoZSBuYW8gbmd1b2kgZGFuIG8gZGF5IHZhbiBuaW4gbG9uZyBjaG8gZG9pLCB2YW4gdGlu IHR1b25nIG8gbmh1bmcgbmd1b2kgZHVvYyBnaWFvIHRyb25nIHRyYWNoIGxvbiB0cnVvYyB2YW4g bWFuZyBjdWEgcXVvYyBnaWEgZGFuIHRvYy4gVGhhbSBuaHVuZyBraG9uZyB0aGUgbGEgbmh1bmcg bmd1b2kgZGFuLiBWYXkgbWEgZC9jIFRydW9uZyBWaW5oIFRyb25nLCBuZ3VvaSBkdW9jIERhbmcg Z2lhbyB0cm9uZyB0cmFjaCBjaGkgaHV5IHZpZWMgY2hvbmcgdGhhbSBuaHVuZyCWIGNob25nIGdp YWMgbm9pIHhhbSCWIGxhaSB0dXllbiBibyBjaG9uZyB0aGFtIG5odW5nIHBoYWkgdHUgdHUuIFRh IGhpZXUgdGhlIG5hbyBsYSB0dSB0dSBkYXkgPyBHaWFjIGRlbiBuaGEgbWEgY3UgdHUgdHUgdT8N Cg0KVHJlbiBkYXkgdG9pIGNoaSBuZXUgZHVuZyBuaHVuZyBnaSBsYSBzdSB0aGF0IGRlIHRhcCBo b3AsIHBoYW4gYW5oIGN1bmcgY2FjIGRvbmcgY2hpIGJpZXQsIHhlbSB4ZXQsIHh1IGx5IHZhIGNv IGJpZW4gcGhhcCBjaGFuIGNoaW5oIGxhaSBUbyBjaHVjIERhbmcgY3VuZyBuaHUgYm8gbWF5IG5o YSBudW9jIGRhbmcgcmF0IGxhIHRoYW0gbmh1bmcsIG5nYXkgdGFpIEhhIE5vaSwgdGFpIFRheSBI byBuYXkuDQoNCktpbmggdGh1DQpUcmFuIFZhbiBUcmFuDQpYdWFuIExhLCBUYXkgSG8sIEhhIE5v aQ0KDQoqKioqKg0KVGFpIGxpZXUgdGhhbSBraGFvDQoNCkNPTkcgSE9BIFhBIEhPSSBDSFUgTkdI SUEgVklFVCBOQU0NCkRvYyBsYXAgliBUdSBkbyCWIEhhbmggcGh1Yw0KDQpCTyBDT05HIEFODQpT byAyMTk5IENWL0JDQShWMTEpDQoNCkhhIE5vaSwgbmdheSA3IHRoYW5nIDEyIG5hbSAyMDA1DQoN CktpbmggZ3VpOiBEL2MgR2lhbSBkb2MgQ29uZyBhbiBUUCBIYSBOb2kNCg0KQmFvIENvbmcgYW4g dGhhbmggcGhvIEhvIENoaSBNaW5oIHNvIHJhIG5nYXkgOC8xMS8yMDA1IGRhbmcgYmFpOiAiRHUg YW4geGF5IGR1bmcgaGEgdGFuZyBreSB0aHVhdCB4dW5nIHF1YW5oIEhvIFRheTogVGhhdCB0aG9h dCBuaGlldSB0eSBkb25nIiBUaWVwIGRvIG5nYXkgMjkvMTEgdmEgbmdheSAzLzEyLzIwMDUgZGFu ZyBiYWk6ICJIYSBOb2k6IEFpIGh1b25nIGxvaSBoYW5nIHRyYW0gdHkgZG9uZyB0dSBkdSBhbiBk YXUgZ2lhIGtodSBkYXQgMSwzODg1IGhhIHRhaSBwaHVvbmcgUXVhbmcgQW4iLg0KTm9pIGR1bmcg YmFpIGJhbyBwaGFuIGFuaCB2ZSBzYWkgcGhhbSwgdGlldSBjdWMgdmEgY28gZGF1IGhpZXUgdGhh bSBuaHVuZyBsb24gbyBkdSBhbiB4YXkgZHVuZyBrZSwgZHVvbmcgYmFvIHF1YW5oIEhvIFRheSwg cXVhbiBUYXkgSG8sIFRQIEhhIE5vaS4gRHUgYW4gY28gdG9uZyBraW5oIHBoaSBoYW5nIG5nYW4g dHkgZG9uZywgbmh1bmcgc2FpIHBoYW0gdGlldSBjdWMsIHRoYXQgdGhvYXQgaGFuZyB0cmFtIHR5 IGRvbmcuLi4gQmFvIGtpZW4gbmdoaSBjYWMgY28gcXVhbiBiYW8gdmUgcGhhcCBsdWF0IHNvbSB2 YW8gY3VvYyBkZSBkaWV1IHRyYSBsYW0gcm8uDQoNCk5nYXkgOS8zLzIwMDUuIEJvIGRhIGNvIGRp ZW4gc28gNDQsIGNoaSBkYW8gQ29uZyBhbiBjYWMgZGlhIHBodW9uZyBjaHUgZG9uZyBuYW0gdGlu aCBoaW5oIGNhYyBjb25nIHRyaW5oIHhheSBkdW5nIGNvIGJhbiBvIGRpYSBwaHVvbmcgZGUga2lw IHRob2kgcGhhdCBoaWVuLCBkaWV1IHRyYSwgeHUgbHkgY2FjIHNhaSBwaGFtLCB0aWV1IGN1Yy4g VnUgdmllYyBkbyBiYW8gQ29uZyBhbiBUUCBIbyBDaGkgTWluaCBwaGFuIGFuaCBuaHUgdHJlbiBs YSByYXQgbmdoaWVtIHRyb25nLiANCkxhbmggZGFvIEJvIGRlIG5naGkgZC9jIEdpYW0gZG9jIENv bmcgYW4gdGhhbmggcGhvIEhhIE5vaSBjaGkgZGFvIGtpZW0gdHJhLCB4YWMgbWluaCB2YSBzb20g YmFvIGNhbyBMYW5oIGRhbyBCby4NCg0KS1QvQk8gVFJVT05HIEJPIENPTkcgQU4NClRodSB0cnVv bmcNCihkYSBreSkNClRodW9uZyB0dW9uZyBMZSBUaGUgVGllbQ0KTm9pIG5oYW4NCi0gTmh1IHRy ZW4gZGUgdGh1YyBoaWVuDQotIEQvYyBCbyB0cnVvbmcoZGUgYi9jKQ0KLSBDYWMgZC9jIHRodSB0 cnVvbmcNCi0gTHV1IFYxMSAoUDcpDQoNCmh0dHA6Ly95a2llbi53b3JkcHJlc3MuY29tLzIwMDcv MTAvMTAvdGglQzYlQjAtcGglRTElQkElQTNuLSVFMSVCQSVBM25oLXYlRTElQkIlODEtY2FjLXYl RTElQkIlOEItbGFuaC1kJUUxJUJBJUExby1jJUUxJUJCJUE3YS10cGhhLW4lRTElQkIlOTlpLW5n dXklRTElQkIlODVuLXF1JUUxJUJCJTkxYy10cmklRTElQkIlODd1LWQlRTElQkIlOTctaG9hbmct YW4tbGUtcXV5LWRvbi12YS1waCVFMSVCQSVBMW0tcS8gKEJhbyBDb25nIGFuIHRoYW5oIHBobyBI byBDaGkgTWluaCBzbyByYSBuZ2F5IDI5LzExIHZhIDMvMTIvMjAwNSkNCg0KSGEgTm9pOiBBaSBo dW9uZyBsb2kgaGFuZyB0cmFtIHR5IGRvbmcgdHUgZHUgYW4gZGF1IGdpYSBraHUgZGF0IDEsMzg4 NSBoYSB0YWkgcGh1b25nIFF1YW5nIEFuIA0KDQpodHRwOi8veWtpZW4ud29yZHByZXNzLmNvbS8y MDA3LzA5LzE2L3YlZTElYmIlODEtb25nLWQlZTElYmIlOTctaG9hbmctYW4tbmd1eWVuLXBoby1j aCVlMSViYiVhNy10JWUxJWJiJThiY2gtdWJuZC10cC1oYS1uJWUxJWJiJTk5aS8gMTYuMDkuMjAw NyA2OjQ4DQoNClZlIG9uZyBEbyBIb2FuZyBBbiwgbmd1eWVuIFBobyBjaHUgdGljaCBVQk5EIHRw IEhhIE5vaQ0KDQpIYSBOb2ksIG5nYXkgMTQgdGhhbmcgOSBuYW0gMjAwNy4NCg0KVGh1IHBoYW4g YW5oDQoNCktpbmggdGh1YSBDaHUgdGljaCBudW9jIE5ndXllbiBNaW5oIFRyaWV0LCB0aHVhIEJh biBjaG9uZyB0aGFtIG5odW5nIFRXICggVFQuIE5ndXllbiBUYW4gRHVuZywgVHJ1b25nIGJhbjsg UFRULiBUcnVvbmcgVmluaCBUcm9uZywgUGhvIGJhbjsgT25nIENoYW5oLCBQaG8gdmFuIHBob25n IGNob25nIHRoYW0gbmh1bmcgKSwgdGh1YSBjYWMgdmk6IEJvIHRydW9uZyBYYXkgZHVuZywgVG9u ZyB0aGFuaCB0cmEgQ2hpbmggcGh1IGN1bmcgY2FjIHZpIGxhbmggZGFvIGNhbyBjYXAga2hhYyBj dWEgRGFuZywgbmhhIG51b2MsIGNoaW5oIHBodSB2YSBxdW9jIGhvaS4gDQoNCkNodW5nIHRvaSBs YSBuaHVuZyBjYW4gYm8gY29uZyB0YWMgdGFpIFVCTkQgVFBITi4gVHJ1b2MgdGllbiBjaG8gcGhl cCBjaHVuZyB0b2kgZ3VpIHRvaSBvbmcgY2h1IHRpY2ggbnVvYywgQmFuIGNob25nIHRoYW0gbmh1 bmcgdmEgY2FjIHZpIGxhbmggZGFvIGNhbyBjYXAga2hhYyBsb2kgY2hhbyBraW5oIHRyb25nIQ0K DQpOaGFuIHZpZWMgdG9hIGFuIEhhIE5vaSBodXkgYW4gc28gdGhhbSBjdWEgdG9hIGFuIHF1YW4g QmEgRGluaCB2ZSB2dSBraWVuIG1vIGR1b25nICJuZ28gNTkgTGFuZyBIYSIgY2hvIG5oYSBvbmcg QW4gcmEgbWF0IHRpZW4sIERlIGJpZXQgcm8geGluIHRoYW0ga2hhbyB0YWkgVmlldG5hbW5ldDog aHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pL3BoYXBsdWF0LzIwMDcvMDkvNzQwMTcxLyAN Cg0KTm9pIHZlIHZ1IGtpZW4gb25nIG5ndXllbiBjaHUgdGljaCBVQk5EIHF1YW4gQmEgRGluaCBk YSBjdW9uZyBjaGUgdHJhaSBsdWF0IGRvaSB2b2kgZ2lhIGRpbmggYmEgVGhhbmggY3VuZyBjYWMg Z2lhIGRpbmgga2hhYyB0YWkgbmdvIDU5IGxhbmcgSGEgZGUgbW8gZHVvbmcgdmFvIG5oYSAiUXVh biIgVFAgbGEgb25nIERvIEhvYW5nIEFuLCBuZ3V5ZW4gbGEgUGhvIGNodSB0aWNoIFVCTkQgdGhh bmggcGhvIEhhIE5vaS4NCkNodW5nIHRvaSBjbyBiaWV0IG1vdCBzbyB0aG9uZyB0aW4gdmUgb25n IERvIEhvYW5nIEFuLCBuaHVuZyB2aSBzbyBkdWEgcmEgbGFpIGtob25nIGNvIGFpIHF1YW4gdGFt IG5lbiB0aG9pLCBuaHVuZyBuYXkga2hpIGx1b3QgdHJhbmcgd2ViIFZpZXRuYW1uZXQgdGFpIHR1 YW52aWV0bmFtbmV0IHZhIHRyb25nIG11YyB0aG9uZ3RpbmRhY2hpZXUgdm9pIGRpYSBjaGk6IA0K aHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvdm4vdGhvbmd0aW5kYWNoaWV1LzEwNDQvaW5kZXgu YXNweCBjbyBiYWk6IE5oYW4gcGhhbiBob2kgdHUgY2h1IHRpY2ggbnVvYywgbmllbSB0aW4gZHVv YyBkZW4gZGFwLiBUcm9uZyBkbyBjbyBkb2FuIHZpZXQ6ICJEYXkgbGEgbW90IGJ1YyB0aHUgeHVj IGRvbmcgY3VhIG1vdCBuZ3VvaSBkYW4gbyBYdWFuIExhLCBUYXkgSG8gZ3VpIHRvaSBuZ2FpIENo dSB0aWNoIG51b2MgTmd1eWVuIE1pbmggVHJpZXQuIEJ1YyB0aHUgdmlldCB0cm9uZyB0YW0gdHJh bmcgbXVuZyBtdW5nIHR1aSB0dWkgdmUgbmh1bmcgZGlldSBuZ2FpIENodSB0aWNoIGRhLCBkYW5n IGxhbSBkZSBnaWFpIHF1eWV0IG5odW5nIG9hbiBzYWkgY3VhIGRhbi4iLg0KDQpPIEhhIE5vaSwg bW9pIHZhbiBkZSBvbmcgQW4gZ2F5IHJhIHR1IHRydW9jIGtob25nIGFpIGRhbSBsZW4gdGllbmcg dmkgb25nIHRhIGRhIHhheSBkdW5nIGR1b2MgbW90IHBoZSBjYW5oIHJhdCBtYW5oLiBOaHVuZyBu YXkgZHVvYyBiaWV0IHZpIENodSB0aWNoIG51b2MgY28gc3UgcXVhbiB0YW0gc2F0IHNhbyBkZW4g dHVuZyBuZ3VvaSBkYW4sIHF1YSBiYWkgbmF5IGNodW5nIHRvaSBuaGFuIHRoYXkgdmkgQ2h1IHRp Y2ggZGEgIm5vaSBkaSBkb2kgdm9pIGxhbSIsIGRvIGxhIG5odW5nIGRhdSBoaWV1IHRpY2ggY3Vj IHRyb25nIHZhbiBkZSBjaG9uZyB0aGFtIG5odW5nIHZhIGdpYWkgcXV5ZXQgb2FuIHNhaSBjaG8g ZGFuLCBjaG8gbmVuIGNodW5nIHRvaSwgbGEgbmh1bmcgY2FuIGJvIGN1YSBVQk5EIHRoYW5oIHBo byBIYSBOb2kgeGluIG1hbmggZGFuIGN1bmcgY2FwIHRoZW0gbW90IHNvIHRob25nIHRpbiBuaHUg c2F1Og0KDQpPbmcgRG8gSG9hbmcgQW4gbGEgbW90IG9uZyB0cnVtIGN1YSBuZ2FuaCB4YXkgZHVu ZyBjbyBiYW4gY3VhIEhhIE5vaSwgbmh1bmcgbGFpIGxhIGNvbiBuZ3VvaSBoZXQgc3VjIHRoYW0g bGFtLCBnaWEgZG9pLCBob2kgaG90IHZhIGRhYyBiaWV0IGdpb2kgbmUgZG9uLCBjb24gZ2lvaSB0 cm9uZyBjaHV5ZW4gZ2FwIGx1YSBibyB0YXkgbmd1b2kuIE9uZyB0YSBjb2kgdGh1b25nIGx1YXQg cGhhcCBkZW4gZG8gbGlldSBsaW5oLCB2aSBvbmcgdGEgbGEgbW90ICJ0YXkgdHJ1bSIgbmVuIHZp ZWMgImRvaSB0cmFuZyB0aGF5IGRlbiIgbGEgdmllYyBsYW0gY29tIGJ1YS4gQ2h1bmcgdGEgY28g dGhlIGRlIGRhbmcgZGF0IGNhYyBjYXUgaG9pIG1hIG9uZyB0YSBraG9uZyB0aGUgbmFvIHRyYSBs b2kgZHVvYzoNCg0KQWkgbGEgbmd1b2kgY2hpdSB0cmFjaCBuaGllbSBkZW4gY3VuZyB2ZSBtb2kg dGhhdCB0aG9hdCwgbGFuZyBwaGksIHRpZXUgY3VjIHRyb25nIG5nYW5oIHhheSBkdW5nIGNvIGJh biBtYSB0aG9pIGdpYW4gcXVhIGNvbmcgbHVhbiBkYSBwaGFuaCBwaHVpID8gDQoNCkFpIGxhIG5n dW9pIGNoYXAgdGh1YW4gcGhlIGR1eWV0IGNhYyBkdSBhbiAidGFuZyBjdW9uZyBuYW5nIGx1YyBn aWFvIHRob25nIiwgbWEgY2FuZyB0YW5nIGN1b25nIGNhbmcgeHVvbmcgZG9jPyANCg0KQWkgY2hp dSB0cmFjaCBuaGllbSB0cm9uZyB2aWVjIGRlIG1vaSBkdSBhbiBjdWEgdGhhbmggcGhvIGRldSBj aGFtLCBraG9uZyBjbyBoaWV1IHF1YSwgZGFjIGJpZXQgZHUgYW4gdGhvYXQgbnVvYywgY2FwIG51 b2M/IENhYyBkdSBhbiBjdWEgY2FjIGNhcCBxdWFuIJYgaHV5ZW4/IER1IGFuIG5hbyBjdW5nIGtl dSBvbmcgQW4gdm8gY2FtLCBraG9uZyBobyB0cm8gZ2l1cCBkbyB0aGFvIGdvLCB0aGFtIGNoaSBj b24gdHJvaSBjaG8gY2hhdCBob24sIG5ldSBraG9uZyBjbyB0aWVuLCBuaGlldSB0aWVuIGR1dCB2 YW8gdHVpIG9uZy4gDQoNCkR1IGFuIEhvIEJhIE1hdTogQ29uZyBhbiBIYSBOb2kgYmlldCByYXQg cm8sIGNvIGR1IHRhaSBsaWV1IHZlIGR1IGFuIEhvIEJhIE1hdSwgZGF5IGxhIG1vdCBkaWVuIGhp bmggY3VhIHZpZWMgb25nIEFuIGxvbmcgcXV5ZW4sIGNob24gZ2lhbSBkb2MgZHUgYW4gbGEgY2hh biB0YXkgdGhhbiB0aW4sIHRyaWVuIGtoYWkgZ2lhaSBwaG9uZyBtYXQgYmFuZyBkYSBnYXkgY2Ft IHBoYW4gcmF0IGxvbiB0cm9uZyBkYW4gY3UgcGhhbSB2aSBkdSBhbiwgdHJpZW4ga2hhaSBkdSBh biB0aGFwIGhvbiB0aGlldCBrZSA3MGNtLCBuZW4gaG9pIG11YSBsYSB0b2FuIGx1dSB2dWMgZG8g YmkgbmdhcCBwaGFpIGRpIHRodXllbiB2YW8gdHJvbmcsIG9uZyBBbiBkYSBwaGFpIGJvIHN1bmcg ZHUgYW4gdHJhbSBib20sIHNhbyBsYWkgbGFtIG1vdCBkdSBhbiBraGFjIGN1YyBreSB0b24ga2Vt IGRlIHRydW0gbGVuIHRyZW4gZHUgYW4gY3UuIA0KU28gR2lhbyB0aG9uZyBDb25nIGNoaW5oIEhh IE5vaSBoaWVuIGNvIGR1IHRhaSBsaWV1LCBvbmcgUGhhbSBRdW9jIFRydW9uZyBkYSB2ZSBodXUg bW9pIGRhbSBub2kgcmEsIGNvbiBsYWkgdG9hbiB0YXkgY2hhbiBraG9uZyBkYW0gbm9pIGRhdS4g Q2hpIHJpZW5nIGR1IGFuIEhvIEJhIE1hdSBkYSBsYW5nIHBoaSB2YSB0aGFtIG5odW5nIG1hdCB4 YXAgeGkgMTAwIHR5IGRvbmcuIA0KVnUgZGFuIGtpZW4gbyBkdSBhbiAiVmFuaCBkYWkgMyB0YWkg VGhhbmggWHVhbiBjdW5nIGRhbmcgbGEgbW9pIGRlIGRvYSBkb2kgdm9pIG9uZyBBbi4gTmV1IGRl IGRhbiB0aGFuZyBraWVuIHRoaSBuaHVuZyB2aWVjIGxhbSBjdWEgb25nIEFuIHZlIGNhYyBkdSBh biBjbyBnaWFpIHRvYSBtYXQgYmFuZyBjdWEgdGhhbmggcGhvIEhhIE5vaSB0dSB0cnVvYyB0b2kg bmF5IGJpIGxvIHRheS4gVmkgdmF5IG9uZyBBbiBjaGkgZGFvIHBoYWkgImNobyB0b2EgYW4iIGRh bmggc2FwIGJvbiBuYXkgZGUgY2h1bmcgbWluaCAiY28gYmFuIHRheSBwaGFuIGRvbmcgeHVpIGdp dWMsIGtpY2ggZG9uZyBraWVuIGNhbyBnYXkgbWF0IG9uIGRpbmgsIGNodSB0aHVjIGNoYXQga2hv bmcgY28gc2FpIGdpIiB2YSBwaGFpIHRpbSBjYWNoICJsb2kgZHVvYyB2YWkgZHVhIHJhIGJhbyBi b24gY29uZyBhbiBubyBnYW4gY2hvIG1heSBjaHUgInBoYW4gZG9uZyIgbGEgZGkgdHUgcnUgeHVv bmcgbmdheSwgaGV0IGtpZW4gY2FvIi4gDQpEYWMgYmlldCBsYSB2dSBkdSBhbiBLZSBIbyBUYXku IEFpIGxhIG5ndW9pIGNoaXUgdHJhY2ggbmhpZW0gdmUgY2FjIHNhaSBwaGFtIHRyb25nIGR1IGFu IHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQgeHVuZyBxdWFuaCBIbyBUYXkuIE9uZyBBbiBkYSBj b2kgdGh1b25nIHBoYXAgbHVhdCwgY29pIHRodW9uZyBEb2FuIHRoYW5oIHRyYSBsaWVuIG5nYW5o IGRlbiBtdWMgYmF0IGNodW5nIHRvaSB2YSBjYWMgU28gYmFuIG5nYW5oIFRQLiBnaWF1IGJpZW4g ZGkgY2FjIGJhbiBkbyBxdXkgaG9hY2gga2UgSG8gVGF5IHJvaSBiYW8gZHVhIGxvYWkgZG9tIGNo byBEb2FuIFRoYW5oIHRyYSAodGhhbmggdHJhIHZlIGtlIGhvIHRhaSBjdW0gMyBYdWFuIExhKSB2 YSBkYW4gbmV1IGhvaSBjdSBub2k6IGJpIG1hdCwgYmkgdGhhdCBsYWMuIA0KDQpDaHVuZyB0b2kg bGFpIGx1b3Qgd2ViLCBkdW5nIHR1IGtob2EgImtlIEhvIFRheSIgdHJvbmcgY29uZyBjdSB0aW0g a2llbSBHT09HTEUgdGhpIGNvIG11YzoNCg0KS2hpZXUga2llbiBuZ2F5IHRhaSBIYSBOb2ksIHZ1 IGFuIGtlIEhvIFRheSBbQmFuIGdpYW4gbHVvY10gliBEaWVuIC4uLg0KS2ljaCBjaHVvdCB2YW8g bXVjIG5heSB0aGkgaGllbiByYSBtb3QgYmFpIHZpZXQgdGFpIGRpYSBjaGk6DQpodHRwOi8vd3d3 LngtY2FmZXZuLm9yZy9mb3J1bS9hcmNoaXZlL2luZGV4LnBocC90LTgwNzMuaHRtbCANCg0KTm9p IGR1bmc6IEN1IERhbyBWYW4gSHVlIGN1IGRhbiBjdW0gMyBYdWFuIExhIFRheSBIbyB0byBjYW8g Z3VpIHRvaSBjYWMgZG9uZyBjaGkgVXkgdmllbiBCbyBDaGluaCB0cmksIEJhbiBCaSB0aHUgdmEg dG9hbiB0aGUgY2FjIGRvbmcgY2hpIHV5IHZpZW4gQmFuIGNoYXAgaGFuaCBUcnVuZyB1b25nIERh bmcgbm9pIHZlIGR1IGFuIHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQgeHVuZyBxdWFuaCBIbyBU YXkgZGEgdmEgZGFuZyBiaSBkdWMga2hvZXQgdGhhbSBuaHVuZy4gQ3UgY29uIGhvaTogIkN1IG5o dSB0aGUgbmF5IHRoaSBEYW5nIHRhIGxhIGN1YSBhaSA/Ii4gDQpPbmcgY3UgYmlldCByb2kgY29u IGhvaSBnaSBudWEsIGN1IGRvYyBuaHVuZyBjYXUgbmh1IHRoZSBuYXkgdGhpIHJvOiAiU3Ugdmll YyBvIGRheSBxdWFuaCBIbyBUYXkgbmF5IGNoaSB0aGF5IGtob25nIGNvIGRhbiBjaHUsIGdpYSBk b2ksIHRhbiBiYW8sIHZpIHBoYW0gbmhhbiBxdXllbiwga2hvbmcgY28gcGhhcCBsdWF0LCBoYW5n IGxvYXQgbmh1bmcgdmkgcGhhbSB0aGFtIG5odW5nIGFuIGNhcCBkZXUgYmkgYnVuZyBiaXQsIHRy YSB0aHUgbmd1b2kga2hpZXUgbmFpIHRvIGNhbyBsYSBtb3QgdGh1YyB0ZSBkYSB2YSBkYW5nIHRv biB0YWkgbyBkYXksIG8gcXVhbmggSG8gVGF5IG5heSIuDQpDdW9pIGJhaSwgdHJvbmcgbXVjIHRo YW8gbHVhbiBsYWkgY28geSBraWVuIHRoYXQgY2hpIGx5IGN1YSBtb3QgdGhhbmggdmllbiBkaWVu IGRhbiBsYTogIi4uLiBkYXkgbGEgbW90IHZ1IGRpZW4gaGluaCBjaG8gdGhheSBzdSBiYXQgbHVj IGN1YSBjaGluaCBxdXllbiBjYXAgdHJ1bmcgdW9uZyB0cnVvYyBzdSBsb25nIGhhbmggY3VhIGNo aW5oIHF1eWVuIGRpYSBwaHVvbmcsIGN1IHRoZSBsYSBjaGluaCBxdXllbiB0aGFuaCBwaG8gSE4g dmEgY2FjIGNhcCBxdWFuLCBwaHVvbmcuIFRoZW8gdHVpIG5naGkga2hvbmcgcGhhaSBiYXQgbHVj IG1hIGNoaW5oIGxhIGJhbyBjaGUsIGNoaWEgY2hhYywgbW9jIG5nb2FjLiBWaSBkdSBvbmcgY2h1 IHRpY2ggcGh1b25nIGNob20gNCBtaWVuZyBkYXQgY2hpYSBjaG8gb25nIGJpIHRodSB0aW5oIDEg bWllbmcsIG9uZyB0cnVvbmcgY29uZyBhbiBodXllbiAxIG1pZW5nLCBvbmcgdmllbiBraWVtIHNh dCB0aW5oIDEgbWllbmcuLi4gDQpUaGUgbGEgZGFuIGRpIGtpZW4gY3Uga2hvYWkuLi4gbGFuZyAu Li4gTmhhIG51b2MgdGhpIGJhbywgInRyZW4gYmFvIGR1b2kga2hvbmcgbmdoZSIuLi4gVmkgZGEg YW4gY2hpYSBuZW4gbGFtIHNhbyAiYmFvIG5oYXUgZHVvYyIuLi4gTmV1IGtob25nLCB0b20gY28g Y2hvIHZhbyB0dSBjbyBraG8gZ2kgZGF1LiBUYWkgc2FvIGJhdCBtYXkgdGVuICJwaGFuIGRvbmci LCAicGhhIHJvaSIgdGhpIGRlIG1hIGtob25nIGJhdCBkdW9jIHRoYW0gbmh1bmcsIGN1b3AgZGF0 IGN1YSBkYW4gPz8/Ii4gDQpOaGFuIGRheSBjaHVuZyB0b2kgY3VuZyB4aW4gbmhhbiBtYW5oIHJh bmcgdmUgbWF0IHR1IGNhY2ggZGFvIGR1YzogT25nIEFuIGxlbiB0dSBhbmggcGh1IHRyYWNoIGNv bmcgdHJ1b25nIG5lbiByYXQgdG9hbiBhbiBnaWFuLCBsYW0gZG9pLCBsYXAgaG8gc28gYmFuIGRp IGJhbiBsYWkgaGFuZyB0cmFtIGxhbiwgY28gdGllbiBkaSBkdXQgbG90IGRlIHRoYW5nIHRpZW4s IGNoYW5nIGNvIHRhaSBjYW4gZ2kgbmh1bmcgbGFpICJsZW4iIHZ1IHZ1LCB2dW90IHF1YSBkYXUg bmhpZXUgc2VwIGN1IGN1YSBtaW5oIGNoaSBiYW5nIHN1IGtob24gbmdvYW4gdmEgbWFuaCBsb2ku IEN1bmcgYmFuZyB0aHUgZG9hbiBkbyBtYSBvbmcgdGEgdHV5ZW4gY2hvbiBkb2kgcXVhbiBjdWEg bWluaCBhaSBjdW5nIGJpZXQgYW4gZ2lhbiBub2kgZG9pLCB0aHUgZG9hbiwgZGV1IGNhbmcsIGxh dCBtYXQuIA0KTmd1b2kgY28gY29uZyBsb24gZHVhIG9uZyB0YSBsZW4gbGEgb25nIEhvYW5nIFZh biBOZ2hpZW4sIHZheSBtYSB0cnVvYyBkYXkgbmhpZXUgbGFuIG9uZyBBbiBjdW5nIGRpbmggdHJh bmggZ2hlIGN1YSB0aGF5LCAiZGEiIHRoYXkgcmEga2hvaSBVeSBiYW4gbmhhbiBkYW4gVFBITiBt YSB2YW4gY2h1YSB0aGEuIE5vaSBuaHUgbmhpZXUgYW5oIGNoaSBlbSBraGFjaCBxdWFuIHRyb25n IFV5IGJhbiB2YSBUaGFuaCBwaG8gbGEgb25nIEFuICJnaWVvIHF1YSBuYW8gYW4gcXVhIG5heSI6 IFR1IG9uZyB0YSBkZW4gY29uIG9uZyB0YSB0aGkgYmlldC4gDQpDYXUgYW0gbmdoaWVuIG5hbmcg bG9pIGtlbiwgdGhpY2ggbGFtIGNhbiBibyBvIGRhdSB0aGkgYmFvIGJvIGdoaSB0ZW4gdmFvIGRv IGNobyBtYSBuaGFuIGx1b25nIGNobyBkdSBraG9uZyBtb3QgbmdheSBkaSBsYW0uIEdpYW4gdGll cCBsaWVuIHF1YW4gZGVuIGR1YyBsYW5nIHF1YW4gY29uIGdhaSBvbmcgQW4gdGhpIGNvIHZ1IGJh dCBkYW5oIGJhYyBsb24gdHJlbiBUYW0gRGFvLCBraGkgY2FjIGNhbiBibyBjaHUgY2hvdCB0cm9u ZyBUb25nIGNvbmcgdHkgeGF5IGR1bmcgY3VhIEhhIE5vaSBsZW4gVGFtIERhbyBhbiBtdW5nIGNo byB2aSBwaG8gY2h1IHRpY2ggbW9pIGN1YSBUUC4gVmkgbmF5IHZ1YSBkdW9jIGJvbiB4YSBob2kg ZGVuIHRyb25nIGRvIGNvIEJvbmcgImJ1b2kiIHRob25nIHF1YSBUcnVvbmcgY29uZyBhbiBxdWFu IFRheSBIbyBtdWEgY2FpIGNodWMgaGV0IGtob25nIGJpZXQgYmFvIGxhIHRpZW4uDQoiQ2FpIiBk dW9jIHZhbyB2aSB0cmkgcGhvIGNodSB0aWNoIG5heSByb2kgdGhpIG5ob20geGEgaG9pIGRlbiBu YXkgdGhhIGhvIHR1bmcgaG9hbmggZGUgbGFtIHRpZW4gdHJvbmcgbGluaCB2dWMgZGF0IGRhaSB0 cmVuIGRpYSBiYW4gSGEgTm9pLCB0byBjaHVjIGNvIGJhYyBoYXkga2luaCBkb2FuaCBuaGEgbmdo aSBtYWkgZGFtLiBUb25nIGNvbmcgdHkgbmF5IGN1bmcgaGUgaGEgdmkgZHVvYyBhbiBjYW5oIGN1 bmcsIGNvIHRoZSBsaWVuIGtldCBsYW0gYW4gdHJvbmcgbmhpZXUgbGluaCB2dWMsIG5oYXQgbGEg dmUgZGF0IGNhdCwgeGF5IGR1bmcuDQoNCkNoYW5nIG5odW5nIHZheSBtYSBzYXUga2hpIGNvIGNv bmcgdmFuIGN1YSBDaHUgdGljaCBudW9jIHh1b25nIFRoYW5oIHBobyBkbyBtb3QgY29uZyBkYW4g WHVhbiBsYSBrZXUgb2FuIHZhIHNhdSB2dSBkYW5oIGJhYyBiaSBiYXQgbmdheSAxOC84LzA3LCBs YXAgdHVjIGhvaSBCb25nICJidW9pIiBRdWFuZyAiZGF1IHRvIiAodHJ1b25nIGNvbmcgYW4gVGF5 IEhvKSwgQ3VvbmcgY2h1IHRpY2ggVGF5IEhvIGN1bmcgY2FjIGRhbiBlbSBsYSBjaHUgdGljaCBj YWMgcGh1b25nOiBYdWFuIGxhLCBCdW9pLCBRdWFuZyBBbi4uLiB2YSBsYXUgbGEgY3VhIGNodW5n LCB0YXQgY2EgZ29tIHRyZW4gMTAgdGVuIGR1b2MgbGVuaCBiYXkgZ2FwIHZhbyBTYWkgR29uLiBD YWMgZGFuIGFuaCAoTmFtIENhbSBjdSkgY29uIG5hbSB2dW5nIHRyb25nIFNHIHNlIGxvIGNoYXkg ImhhdSBjdSBjYWMgT25nIiB0cm9uZyBkbyBkZSBsbyBjaGF5IG1heSB2dSBuYXkgY2hvIHhvbmcu DQoNCkRvaSB2b2kgdnUga2V1IG9hbiBkdW9jIG9uZyBUcmlldCBxdWFuIHRhbSwgdGhlbyBtb3Qg bmd1b2kgcXVlbiBjbyB0aGUgbHVjIGxhbSBvIHF1YW4gVGF5IEhvIG5vaSByYW5nOiAiIFNhdSBr ZXQgbHVhbiBjdWEgdGhhbmggdHJhIENoaW5oIHBodSBob2kgdHJ1b2MgdGV0IChkYSBkdWEgcmEg bW90IGRhbmggc2FjaCBkZW4gZ29tIDExIHZpIHF1YW4gY2h1YyB0aGFuaCBwaG8gZHVuZyBkYXUg bGEgb25nIERvIEhvYW5nIEFuIHNhaSBwaGFtKSBIYSBOb2kgdmEgVGF5IEhvIGNvaSBuaHUgZHV0 IGhhbiwgY29uIG5vaSB2YW8gZGF1IGR1b2MgbnVhLCB0aHVhIG1vdCBjYWNoIHRoYW0gaGFpLCB0 aGUgcXVhaSBuYW8gbWEgbGFpIGR1bmcgbW90IGNhaSBkdW9jIGN1dSwgdmF5IGxhIG9uZyBBbiBk YSBsYXQgZHVvYyB0aGUgY28uIE9uZyBnaW9pIGRlbiBtdWMgbW90IG9uZyB0cmVuIFZhbiBwaG9u ZyBDaGluaCBwaHUgKG5naGUgbW9uZyBtYW5oIGxhIG9uZyBNaW5oKSBkYSBraG9uIGtoZW8gImNh aSIgIGNhaSB2YW4gYmFuIGRlIG9uZyBUcm9uZyBQVFQuIEt5Ii4NCg0KTmdhbSBjdW5nIGR1bmcg dGhlIHRoYXQsIHZvbiBkYW4gQW5oIEhhaSwgbGFpIHNhbyBkdW9jIHZvaSBjYWMgbmdvbiBtdXUg bWVvIGtpZXUgQmFjIGt5IGN1YSBjYW5oIEhhIE5vaTogVnVhICJjdWEgc2F1IiB0aGFuIHRpbmgg dGFvIGxvbmcgdGluLCB2dWEgY3VhIHRydW9jIG5haSBuaSB2YW4geGluOiANCiJEZSBjaG8gSGEg Tm9pIG9uIGRpbmgiLiBWYXkgbGEgb25nIFBobyB0aHUgdHVvbmcgY2hvbmcgdGhhbSBuaHVuZyAi Y2hhYyBsdW9pIiBtb3QgY2FpIGxhIHhvbmcuIFZheSBtb2kgY28gY2h1eWVuIGtoaSBwaG9uIGJh byBjaG8gb25nIENodSB0aWNoIFRoYW5oIHBobyBkYW5nIGNvbmcgdGFjIHhhIHRpdCBvIG1vdCBo b24gZGFvIChoaW5oIG5odSBsYSBDb24gRGFvKSBwaGlhIG5hbSBuZ29haSBraG9pLCB0cm9uZyBk aWVuIHRob2FpIGRhdSBnaWF5IGJlbiBuYXkgdmFuZyBsZW4gZ2lvbmcgb25nIFRyaWV1IHJhdCB2 ZW5oIHZhbyBuaHUga2hhbmcgZGluaCBtb3QgbGUgdGF0IG5oaWVuOiAiVGhlIGEsIHRvaSBiaWV0 IG5nYXkgbWEsIHRoZSBuYW8gQ2hhIGF5IGN1bmcga3kiLg0KDQpMYXAgdHVjIG1vdCBrZSBob2Fj aCBoYW5oIGRvbmcgZHVvYyBvbmcgQW4gdmFjaCByYSBjaG8gVGF5IEhvIHZhIGRvbmcgdGhvaSBk ZW8gbW9tIHZvaSBvbmcgTmdoaSBCaSB0aHUgVGhhbmggdXkgZGUga2VvIGx1b24gY2EgY2FpIGdv aSBsYSBoZSB0aG9uZyBjaGluaCB0cmkgVGhhbmggcGhvIHZhbyBjdW9jLCBkbyBjbyB0YXkgdHJv bmcgdHJlbiBWYW4gcGhvbmcgQ2hpbmggcGh1IG5lbiBvbmcgdGEgY3UgdmllYyBsYSB0b2FuZyBs ZW4gdHJlbiBiYW8gZGFpIGxhICJ0aHVjIGhpZW4gdGhlbyBjaGkgZGFvIGN1YSBUaHUgdHVvbmcg Q2hpbmggcGh1IiANCihYaW4geGVtIHRyb24gYmFpIGN1YSBjdSBIdWUgdHJvbmcgWC1jYWZlIG5l dSB0cmVuKSB2YSBjdSB0aGUgbWEgY3VvbmcgY2hlIG1hIGRhcCBtYSBjdW9wIG1hIGJhdCBuZ3Vv aSB0YWkgWHVhbiBMYSB2YSByb2kgZGVuIGN1b3AgbHVvbiBob24gOC4wMDBtMiBkYXQgY3VhIGRh biBCZW4gQ2h1bSBRdWFuZyBBbiBraG9uZyBsaWVuIHF1YW4gZ2kgZGVuIGR1IGFuIGtlIEhvIFRh eSBjYS4gVHJlbiBjbyBiaWV0IGN1bmcgY2hhbmcgYWkgZGFtIHJhIG1hdCBjYW4gbmdhbi4gVGhh dCBkdW5nIG5odSBsb2kgbWF5IGNhdSB0aG86DQoNCkRhbmcgbGEgTWUsIEJhYyBsYSBDaGEsDQpE ZW4ga2hpIEJhYyBjaGV0LCBEYW5nIHJhIGdvYSBjaG9uZywNCkJhYyBvaSEgQmFjIGNvIGJpZXQg a2hvbmc/DQpDaHVuZyBubyB0aGFtIG5odW5nISBNZSBraG9uZyBub2kgZ2kNCg0KTGFpIHF1YXkg dmUgY2h1eWVuIHhhIGhvaSBkZW4gY2FpIG5ndW9pIHZhbyBVeSBiYW4sIGNodW5nIHRvaSB0aGkg ZGEgdGluIG1hYyBkdSBraG9uZyBjbyBraWVtIGNodW5nIG5odW5nIGNhYyB2aSB0aGkgY28gdGhl IGtpZW0gdHJhIGRlIGRhbmcsIHRyYSB0ZW4gaG8gcXVhIGNhYyBjaHV5ZW4gYmF5IEhOLUhDTSB0 cm9uZyBtYXkgbmdheSAxOS0yMS84IHRoaSBybyBuZ2F5IGxhIHRoYXQgaGF5IGNoaSBsYSAidGlu IHZpdCIuIENvbiAiaGF1IGN1IGNhYyBPbmciIJYgeSBub2kgY2FjICJoYXUgY3VuZyIgZG9uZyBv IFRQIEhDTS4NCg0KQ2FpIHN1IG5naGllcCBvbmcgQW4gbGEgbmh1IHZheSwgdmUgY3VhIGNhaSBj dWEgb25nIGxhIGRvIHRyYW5oIHRodSBjdW9wIGR1b2MgbWEgY28uIE5naGUgbm9pIGNoaSByaWVu ZyAidGhhbmggdGljaCIgb25nIHJhIHRheSBjdXUgY2h1YSB2aWVjIGJpIHRoYW5oIHRyYSBsYXQg dGF5IHZ1IGNoaW5oIHN1YSBiYW4gZG8gcXV5IGhvYWNoIGtlIEhvIFRheSAoZHUgYW4gbG9haSBB LWtob25nIGR1b2MgcGhlcCBkaWV1IGNoaW5oKSB2YSBjb25nIGtpZW4gcXV5ZXQgY2hpIGRhbyB2 aWVjIGN1b25nIGNoZSB0aGFuaCBjb25nIFh1YW4gTGEgdmEgQmVuIENodW0gUXVhbmcgQW4sIG9u ZyB0YSBjdW5nIGR1b2MgZHV0IHR1aSBjYSBjaHVjIHR5IGRvbmcuIFJpZW5nIG9uZyB0YSB0aGkg dHJhIHRodSBkdW9jIGdpYSBkaW5oIGNhaSBvbmcgY29uZyBhbiBkYSBkYW0gdG8gY2FvIGRpY2gg ZGFuaCB0ZW4gbWluaC4NCg0KTmh1bmcgbWEgbyBkb2kga2hvbmcgcGhhaSBjdSB4dW9pIGNoaWV1 IG1hdCBtYWkgbWFpIGR1b2MgZGF1LCByb2kgZGF5IGNhaSBzdSBuZ2hpZXAsIGNvbmcgZGFuaCBj dWEgb25nIGN1bmcgc2UgdGFuIGJpZW4gbmh1IGJvbmcgYm9uZyBtYSB0aG9pIHZhIGRvbmcgdGFp IHNhbiBrZWNoIHN1IG1hIG9uZyB2byBkdW9jIGN1bmcgc2UgbmhhbmggY2hvbmcgdGhlbyBuaGF1 IG1hIGRpIHJhIGN1YSBzYXUgdGhvaS4gT25nIEFuIHF1YSB0aHVjIGRhIHBodSBib25nIHRvaSBs ZW4gYmF1IHRyb2kgSGEgTm9pIGN1YSBjaHVuZyB0YS4NCg0KQ3VuZyBxdWEgZGF5IGNodW5nIHRv aSB4aW4gbmhhbiBuaHUgdm9pIG9uZyBsdWF0IHN1IFZ1IEhhaSBjdWEgdnUga2llbiAibmdvIDU5 IExhbmcgSGEiOiBWb2kgdGF0IGNhIGNhYyB2YW4gYmFuIG1hIFV5IGJhbiBkdWEgcmEsIHNhdSBu YXkgb25nIGRldSBwaGFpIGdpYW0gZGluaCBkZSBzbyB2b2kgbHV1IHRydSwgc28gdm9pIGNhYyB2 YW4gYmFuIG1hIGNhYyBjbyBxdWFuIGtoYWMgZGEgbmhhbiBkdW9jLiBVeSBiYW4gbmhhbiBkYW4g dGhhbmggcGhvIHBoYWkgY2FtIGRvYW4gdHJ1b2MgcGhhcCBsdWF0IHZlIHRpbmggZHVuZyBkYW4g Y3VhIHZhbiBiYW4sIG5ldSBnaWEgbWFvIGJhdCBwaGFpIGNoaXUgdHJhY2ggbmhpZW0uIA0KRGFj IGJpZXQgY2h1bmcgdG9pIGJpZXQgb25nIEFuIGN1bmcgZGEgY2hvIG5ndW9pIHh1b25nIFZpZW4g UXV5IGhvYWNoIHZhIFNvIFF1eSBob2FjaCBLaWVuIHRydWMgZGUgY2hpbmggc3VhIGxhaSBobyBz bywgbmh1bmcgY2hvIGdoaSB0YXkgcm9pIGRvbmcgZGF1LCB2aSB2YXkgbmh1bmcgdmFuIGJhbiBu YW8gbmdoaSBsYW0gY2hvICJ0cm9uIGJhaSIgdGhpIG9uZyBkZXUgcGhhaSBjaG8gdHJ1bmcgY2F1 IGdpYW0gZGluaCB0aGF0IGdpYS4gRHVvYyBiaWV0IG9uZyB0YSBjdW5nIGNoYXkgYW4sIGNobyBu Z3VvaSB0aW0gZ2FwIGx1YXQgc3UgdmEgYmFvIGNoaSBkZSAiIGdpYW4geGVwIi4NCg0KVmllYyBv bmcgQW4gdmkgcGhhbSBwaGFwIGx1YXQgdmUgcXVhbiBseSB4YXkgZHVuZyBjbyBiYW4sIGxvaSBk dW5nIGNodWMgcXV5ZW4gbXV1IGxvaSByaWVuZyBjaG8gbWluaCBsYSBxdWEgcm8gcGhhaSBkdW9j IGRpZXUgdHJhIHZhIHh1IHRoZW8gbHVhdCBoaW5oIHN1IHZlIHRoYW0gbmh1bmcuDQoNClhpbiBu b2kgcm8gdGhlbSB0aG9uZyB0aW4gbmd1b24gZ29jIGRhdCBvbmcgQW4gdmEgdGFpIHNhbyBsYWkg bGEgbmdvIDU5IExhbmcgSGE6DQoNClRodSBuaGF0OiBIYXUgaGV0IG5ndW9pIGRhbiBiaSBnaWFp IHBob25nIG1hdCBiYW5nIG1vIHJvbmcgbmdvIDU5IGRldSB0aHVvYyBkdSBhbiBsYW4gMSBjdWEg Y29uZyB0eSB4YXkgZHVuZyBzbyAxIEhhIE5vaSB0cnVvYyBuYW0gMTk5OCB2YSBkYSBkdW9jIGNh cCBzbyBkby4gTmhhIG8gY3VhIG9uZyBwaG8gY2h1IHRpY2ggbmFtIG8gZHUgYW4gbGFuIDIgY3Vh IGNvbmcgdHkgeGF5IGR1bmcgc28gMSBIYSBOb2kgdmFvIHRob2kgZGllbSBuYW0gMTk5OCwgbGUg cmEgcGhhaSB0dWFuIHRodSBkdSBhbiB0cnVvYywgdGFpIHNhbyBsYWkgcGhhaSBjbyB0aW5oIG1v IHJvbmcgZHVvbmcgZGVuIDEwbSBsYW4gdmFvIG5oYSBjdWEgZGFuLCB2YW8gZHUgYW4gdHJ1b2Mu IA0KTmV1IGtob25nIGNvIG5oYSBvbmcgQW4gcGhvIGNodSB0aWNoIHRoaSBjbyBkYW0gcGhhIHZv IHF1eSBob2FjaCB0cnVvYyBraG9uZz8gVmEgY2FjIGNvIHF1YW4gY2h1YyBuYW5nIGRpYSBwaHVv bmcgY28gY2FuIHBoYWkgaHV5IGRvbmcgc3VjIG1hbmggZGUgcGhhIGRvIHF1eWV0IGxpZXQsIGdp YWkgcGhvbmcgbW90IGNvbiBkdW9uZyBuaHUgbW90IGNhaSBuZ28gbWEga2hvbmcgcGhhaSBsYSBn aWFvIHRob25nIGh1eWV0IG1hY2gsIHRyb25nIGtoaSBkbyB0YWkgSGEgTm9pIHJhdCBuaGlldSBu b2kgZ2lhaSBwaG9uZyBtYXQgYmFuZyBpIGFjaCB0aGkgY2hhbmcgdGhheSBjaGluaCBxdXllbiBy YSB0YXkhDQoNClRodSBoYWk6IE5nb2FpIHR1IGNhY2ggcGhvIGNodSB0aWNoIFVCTkQgVFAgb25n IEFuIGRhIHR1bmcgbGEgcGhvIGdpYW0gZG9jIGNvbmcgdHkgeGF5IGR1bmcgc28gMSBIYSBOb2ku IERvIHZheSBraGkgb25nIEFuLCBwaG8gY2h1IHRpY2ggeGluICJtdWEiIGRhdCBsYW0gbmhhIHRo dW9jIGR1IGFuIGN1YSBjb25nIHR5LCBraG9uZyB0aGlldSBnaSBuaHVuZyBuZ3VvaSB0cm9uZyBj b25nIHR5IGRhIGdpdXAgZG8gb25nLCBrZXQgcXVhIGxhIG9uZyBwaG8gY2h1IHRpY2ggVFAgZHVv YyBraG9uZyAyIHN1YXQgZGF0IGxpZW4ga2UgbyB2aSB0cmkgZGFjIGRpYSwgZGVwIG5oYXQgY3Vh IGR1IGFuLCB2aSB0cmkgMiBtYXQgdGllbiwgbmh1bmcgY28gZGlldSBsYSBsYSBtb2kgc3VhdCA2 MC03MG0yIHRoaSBjdW5nIGxhbSB0b25nIGN1bmcgY2hpIDE0MG0yIG5odW5nIG9uZyBsYWkgY28g MzAwbTIuIA0KRGUgY28gbm8gb25nIEFuIGRhIGxhbiBjaGllbSB0b2FuIGJvIGNvbiBkdW9uZyBu b2kgYm8gc2F0IG5oYSBvbmcgcGhpYSBzYXUgZGF5IG5oYSB2ZW4gaG8gY3VhIGRhbi4gVmllYyBs YW4gY2hpZW0gbmF5IGRhIHBoYSB2byBxdXkgaG9hY2ggY3VhIGR1IGFuLCBkYSB2aSBwaGFtIHF1 eSBkaW5oIHZlIHF1YW4gbHkgeGF5IGR1bmcgY28gYmFuLiBUcmFjaCBuaGllbSBkZSBvbmcgcGhv IGNodSB0aWNoIFVCTkQgVFAgbGFuIGNoaWVtIGRhdCBjb25nIHRodW9jIHZlIGNoaW5oIHF1eWVu IHNvIHRhaSB2YSBjb25nIHR5IHhheSBkdW5nIHNvIDEgSGEgTm9pIGxhIGNodSBkdSBhbi4gDQpU cm9uZyB0cnVvbmcgaG9wIG5oYSBvbmcgQW4gZGEgZHVvYyBjYXAgc28gZG8gdm9pIGRpZW4gdGlj aCAzMDBtMiwgdGhpIGRlIG5naGkgcGhhaSB4ZW0gbGFpIGNvIHF1YW4gbmFvIGRhIHRpZXAgdGF5 IGNobyBvbmcgQW4gaG9wIHRodWMgaG9hIGRhdCBjb25nIGJpIGxhbiBjaGllbS4gRGUgdGltIGhp ZXUgdmUgZHUgYW4gbGFuIDIgY3VhIGNvbmcgdHkgeGF5IGR1bmcgc28gMSBIYSBOb2ksIGNoaSBj YW4gZGVuIGNvbmcgdHkgZ2FwIGFuaCBWdSBNaW5oIEhhaSwgdGhvaSBkaWVtIG5hbSAxOTk4IGFu aCBIYWkgbGEgdHJ1b25nIHBob25nIGR1IGFuIG5lbiBiaWV0IHJvIHZpZWMgbmF5Lg0KRGUgc2Fu ZyB0bywgY2h1bmcgdG9pIGRlIG5naGkgb25nIENodSB0aWNoIG51b2MgdmEgQmFuIGNob25nIHRo YW0gbmh1bmcgdHJ1bmcgdW9uZyBjaG8gbHVjIGxhaSBjYWMgZHUgYW4gSG8gQmEgTWF1LCBkdSBh biB0YW5nIGN1b25nIG5hbmcgbHVjIGdpYW8gdGhvbmcsIGR1IGFuIFZhbmggZGFpIDMuLi4sIGRh YyBiaWV0IGR1IGFuIGtlIEhvIFRheSB0aGkgdGhheSByYXQgcm8gc3Ugc2FpIHBoYW0gY3VhIG9u ZyBBbi4NCg0KRGF5IGxhIG5odW5nIHN1IHRoYXQsIHJhdCBkZSBkYW5nIHhhYyBtaW5oIG5ldSBD aHUgdGljaCB2YSBCYW4gY2hvbmcgdGhhbSBuaHVuZyBjbyB0YW0gaHV5ZXQuIA0KQ3VuZyB4aW4g bHV1IHkgcmFuZyB2dSBuZ28gNTkgbGllbiBxdWFuIGRlbiBjYSBtb3Qgbmd1b2kgbnVvYyBuZ29h aSBsYSBjaG9uZyBiYSBUaGFuaCBkYW5nIGxhIHRoYW0gdGFuIHRodW9uZyBtYWkgY3VhIEFuIERv IHRhaSBWaWV0IE5hbSwgbmV1IGtob25nIGtoYWNoIHF1YW4gdGhpIHF1b2MgdGUgbmd1b2kgdGEg c2UgY28geSBraWVuIHZhIGNoYWMgY2hhbiBjb25nIGNhYyB2aSBubyBsdWMgdGFvIGhpbmggYW5o IGRlcCBkZSBjaG8gVmlldCBuYW0gYmF5IGxhdSBuYXkgcm9pIGN1bmcgYmkgZG8geHVvbmcgc29u ZyB4dW9uZyBiaWVuIG1hIHRob2ksIG1hIHJvaSBjdW5nIGtobyBtYSB0aHV5ZXQgcGh1YyBnaW9p IGRhdSB0dSBudW9jIG5nb2FpIHZvaSBsb2kgaGFuaCB4dSBiYXQgdHVhbiBwaGFwIGx1YXQgY3Vh IGNhYyBxdWFuIGNodWMga2lldSBuaHUgb25nIEFuLg0KDQpYaW4gY2FtIG9uIENodSB0aWNoIHZh IGNhYyB2aSBib3QgY2h1dCB0aG9pIGdpYW4gdGhhbSBraGFvLiBDaHVuZyB0b2kga2hvbmcgbmV1 IHRlbiBobyBsYSBkZSBiYW8gZGFtIGFuIHRvYW4gY2hvIGNodW5nIHRvaS4vLg0KTmd1b2kgSGEg Tm9pDQoNCmh0dHA6Ly93d3cuc2dncC5vcmcudm4vcGhhcGx1YXQvMjAwNy80LzkzNDQ1LyAwNC8w NC8yMDA3ICAwMToyMCcoR01UKzcpDQoNClNhdSBuaHVuZyBraGlldSB0byB2YSB0aGFuaCB0cmEs IGtpZW0gdHJhIGtlbyBkYWksIG1vaSBkYXksIFZhbiBwaG9uZyBDaGluaCBwaHUgZGEgY28gdmFu IGJhbiB0aG9uZyBiYW8ga2V0IGx1YW4gdmEgZHVvbmcgaHVvbmcgeHUgbHkgdnUgdmllYyBsYW0g ZHVvbmcgcXVhbmggaG8gVGF5IChkb2FuIG8gY3VtIDMsIHBodW9uZyBYdWFuIExhLCBxdWFuIFRh eSBIbywgSGEgTm9pKS4gDQpUdXkgbmhpZW4sIGRvIGtldCBsdWFuIGN1YSB0aGFuaCB0cmEgaGFp IGNhcCBjaGVuaCBuaGF1IHZhIHRob25nIGJhbyBjdWEgVmFuIHBob25nIENoaW5oIHBodSBjaHVh IHJvIHJhbmcgbmVuIGRhbiBraG9uZyBiaWV0IG5naGUgYWkhIA0KDQpodHRwOi8veC1jYWZldm4u b3JnL2ZvcnVtL2FyY2hpdmUvaW5kZXgucGhwL3QtODA3My5odG1sIDEzLTA4LTIwMDcsIDAxOjE3 IEFNDQoNCktoaWV1IGtpZW4gbmdheSB0YWkgSGEgTm9pLCB2dSBhbiBrZSBIbyBUYXkgDQoNCkRB TkcgQ09ORyBTQU4gVklFVCBOQU0NCg0KSGEgTm9pLCBuZ2F5IDAzIHRoYW5nIDggbmFtIDIwMDcN Cg0KVGh1IGd1aSBjYWMgZG9uZyBjaGkgVXkgdmllbiBCbyBDaGluaCB0cmksIEJhbiBCaSB0aHUg dmEgdG9hbiB0aGUgY2FjIGRvbmcgY2hpIHV5IHZpZW4gQmFuIGNoYXAgaGFuaCBUcnVuZyB1b25n IERhbmcuDQoNCkR1IGFuIHhheSBkdW5nIGhhIHRhbmcga3kgdGh1YXQgeHVuZyBxdWFuaCBIbyBU YXkgZGEgdmEgZGFuZyBiaSBkdWMga2hvZXQgdGhhbSBuaHVuZywgY2FjIGNhcCB1eSBEYW5nIGRh IGxhbmggZGFvIG5odSB0aGUgbmFvID8NCg0KS2luaCB0aHVhIGNhYyBkb25nIGNoaSwNCg0KVG9p IHRlbiBsYSBEYW8gVmFuIEh1ZSwgRGFuZyB2aWVuIDUwIHR1b2kgRGFuZywgZ2lhaSB0aHVvbmcg SG8gQ2hpIE1pbmggdmUga2hvYSBob2MgJiBjb25nIG5naGUsIG5ndSB0YWkgc28gbmhhIDM3NCBM YWMgTG9uZyBRdWFuLCBjdW0gMyBwaHVvbmcgWHVhbiBMYSwgVGF5IEhvLCBIYSBOb2kuIFRyb25n IHRob2kgZ2lhbiBxdWEgdG9pIGxhIG5ndW9pIGRhIHZpZXQgbmhpZXUgZG9uIHRodSB0byBjYW8g dmFjaCB0cmFuIG5odW5nIHNhaSB0cmFpIHZpIHBoYW0gY3VhIG5odW5nIG5ndW9pIGxhbmggZGFv IHRyb25nIERhbmcgdmEgY2hpbmggcXV5ZW4gdHUgUGh1b25nIGRlbiBRdWFuIGxlbiBUaGFuaCBw aG8gbGllbiBxdWFuIGR1IGFuIGtlIEhvIFRheS4gDQoNClRvaSB2aWV0IG5odW5nIGRvbiB0aHUg a2UgdHJlbiB2b2kgeSB0aHVjIHhheSBkdW5nIG1vbmcgc2FvIERhbmcgdmEgTmhhIG51b2MgdGEg dGhhbmggbG9haSBkdW9jIG5odW5nIGNvbiBzYXUgbW90LiBOaHVuZyBuZ3VvYyBsYWkgdG9pIHZh IG5odW5nIG5ndW9pIHRpY2ggY3VjIHRoYW0gZ2lhIGRhdSB0cmFuaCBjaG9uZyB0aGFtIG5odW5n IGxpZW4gYmkgdHJhIHRodSBtb3QgY2FjaCBraG9jIGxpZXQuDQoNCk5odW5nIHNhaSBwaGFtIHZl IGR1IGFuIGtlIEhvIFRheSBsYSByYXQgbmdoaWVtIHRyb25nIHRyYW5nIHRyb24gdmEga2VvIGRh aSwgbmh1bmcga2hpZXUgbmFpIHRvIGNhbyBjdWEgbmhhbiBkYW4gY2h1bmcgdG9pIGxhIHJhdCBk dW5nIHZvaSBuaHVuZyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0IG5lbiBkYSBkdW9jIGRlbiA0IGxh biBWYW4gcGhvbmcgQ2hpbmggcGh1IGNvIGNvbmcgdmFuIHRydXllbiBkYXQgeSBraWVuIGN1YSBU aHUgdHVvbmcgQ2hpbmggcGh1LCBob2FjIGNvbmcgdmFuIGN1YSBkb25nIGNoaSB0aHUgdHJ1b25n IEJvIENvbmcgYW4gTGUgVGhlIFRpZW0gY2hpIGRhbyBDb25nIGFuIEhhIE5vaSBkaWV1IHRyYSBs YW0gcm8uIA0KTmh1IGNodW5nIHRhIGRldSBiaWV0IHRpbmggY2hhdCBuZ2hpZW0gdHJvbmcgaGll biBuYXkgbGEgbmh1bmcgY2hpIHRoaSwgY2hpIGRhbyBiaSByb2kgdmFvICJpbSBsYW5nIiBob2Fj IHN1IGRhcCBsYWkgbGEgc3UgeHV5ZW4gdGFjLCBib3AgbWVvIHN1IHRoYXQgZGUgdGh1YyBoaWVu IGNobyBiYW5nIGR1b2MgdGhhbSB2b25nIGN1YSBkYW0gcXVhbiB0aGFtIG5heS4NCg0KU3Uga2hp ZXUgbmFpIHRvIGNhbyBjdWEgY2h1bmcgdG9pIGxhIHRydW9uZyBob3AgaGllbSBjbywgdnUgdmll YyBiaSBkdWMga2hvZXQgeHVuZyBxdWFuaCBjYWMgZHUgYW4sIGRhYyBiaWV0IGxhIGR1IGFuIGtl IEhvIFRheSBkYSBkdW9jIHN1IGx1dSB5IGN1YSBCbyB0cnVvbmcgTmd1eWVuIEhvbmcgUXVhbiwg VG9uZyBUaGFuaCB0cmEgQ2hpbmggcGh1IFRyYW4gVmFuIFRydXllbiB2YSBkb25nIGNoaSBUcnVv bmcgVmluaCBUcm9uZywgUGhvIHRodSB0dW9uZyBDaGluaCBwaHUgZGEgZG9uZyB2YWkgZGFuIHRo dW9uZyB4dW9uZyB4ZW0geGV0IHRhbiBub2kuIE5odW5nIGRlIHJvaSBrZXQgY3VjIGN1YSBubyBt YSBkYW4gY2h1bmcgdG9pIGRhbmcgcGhhaSBnYW5oIGNoaXUgbWEgdG9pIHNlIG5vaSB0b2kgc2F1 IGRheToNCg0KVG9pIGRhIGR1b2MgbGFtIHZpZWMgdm9pIFV5IGJhbiBLaWVtIHRyYSBRdWFuIHV5 IFRheSBIbywgdGhhbmggdHJhIHR1IFF1YW4gZGVuIFRoYW5oIHBobywgdHJ1YyB0aWVwIGxhbSB2 aWVjIHZvaSBUaGFuaCB0cmEgQ2hpbmggcGh1IGR1b2kgc3UgY2hpIGRhbyBjdWEgUGhvIHRodSB0 dW9uZyBUcnVvbmcgVmluaCBUcm9uZyBkZSBnaWFpIHF1eWV0IHZlIHZpZWMgZHUgYW4ga2UgSG8g VGF5IGxhbSBzYWkgcXV5IGhvYWNoIG5oYW0gdHJ1YyBsb2kgZHVjIGtob2V0IER1IGFuIGNvIG11 YyBkYXUgdHUgaGFuZyBuZ2hpbiB0eSBkb25nLiANClR1IHRoYW5nIDgvMjAwNiBkZW4gdGhhbmcg MS8yMDA3IFRodSB0dW9uZyBDaGluaCBwaHUgZ2lhbyBjaG8gdGhhbmggdHJhIENoaW5oIHBodSBj aHUgdHJpLCBjdW5nIEJvIFhheSBkdW5nLCBCbyBUYWkgbmd1eWVuIHZhIE1vaSB0cnVvbmcsIFZh biBwaG9uZyBDaGluaCBwaHUsIFVCTkQgdGhhbmggcGhvIEhhIE5vaSwgZGFpIGRpZW4gVXkgYmFu IEtpZW0gdHJhIFRXLCBCYW4gTm9pIGNoaW5oIFRXIGN1bmcgdGhhbSBnaWEgZGUga2llbSB0cmEg bGFtIHJvLCBrZXQgbHVhbiBub2kgZHVuZyBraGlldSBuYWksIHRvIGNhbyBjdWEgbW90IHNvIGNv bmcgZGFuIGN1bSAzIHBodW9uZyBYdWFuIExhLCBxdWFuIFRheSBIbyBsaWVuIHF1YW4gZGVuIHF1 eSBob2FjaCwgeGF5IGR1bmcgaGEgdGFuZyBreSB0aHVhdCB4dW5nIHF1YW5oIEhvIFRheSwgZG9h biBkaSBxdWEgY3VtIDMsIHBodW9uZyBYdWFuIExhLiANClRyb25nIGJhbiBrZXQgbHVhbiBkYSBr aGFuZyBkaW5oOiBOb2kgZHVuZyBiYW8gY2FvIGN1YSBVQk5EIHRoYW5oIHBobyBIYSBOb2kgbGEg a2hvbmcgZHVuZyB2b2kgdGh1YyB0ZSB0cm9uZyB2aWVjIHRyaWVuIGtoYWkgZHUgYW4uIE5vaSBk dW5nIGtoaWV1IG5haSBjdWEgbmhhbiBkYW4gY3VtIDMsIHBodW9uZyBYdWFuIExhIHZlIHZpZWMg bmFuIGR1b25nIHNhaSBxdXkgaG9hY2ggbGEgY28gY28gc28sIGNhYyBiYW4gdmUgcXV5IGhvYWNo IGNoaSB0aWV0IHR5IGxlIDEvNTAwIGRhIGR1b2MgS2llbiB0cnVjIHN1IFRQIGNoYXAgdGh1YW4g dmEgVUJORCBUUCBwaGUgZHV5ZXQgdGhhbmcgMTEvMTk5NyBsaWVuIHF1YW4gZG9hbiBxdWEgY3Vt IDMgWHVhbiBMYSwgY2FjIGJhbiBuZ2FuaCBjdWEgdGhhbmggcGhvIGRhIGNvIHRpbmggZ2lhdSBk aSwga2hvbmcgdHJpbmggcmEgY2hvIGRvYW4gdGhhbmggdHJhLCBtYSBkb25nIGxvYXQga2V1ICJi aSB0aGF0IGxhYyIgZGUgZHVhIHJhIG5odW5nIHRhbSBiYW4gZG8gImRvbSIuIA0KQ2hpIG1vdCB2 aWVjIG5heSB0aG9pIGR1IGJpZXQgVFAgSGEgTm9pIGNvaSB0aHVvbmcgcGhhcCBsdWF0IG5odSB0 aGUgbmFvLiBWYXkgbGEgcXV5IGhvYWNoIGR1b2MgcGhlIGR1eWV0IHZvaSAiZHVvbmcgYmFtIGtl LCBzYXQgbWVwIG51b2MiIGRhIGJpIGRpZXUgY2hpbmggZGUgZHVvbmcgdGFjaCByYSBraG9pIGtl IHh1eWVuIHNhdSB2YW8ga2h1IGRhbiBjdS4gTmd1b2kgcGhhaSBjaGl1IHRyYWNoIG5oaWVtIGxp ZW4gcXVhbiBkZW4gY2FjIHNhaSBwaGFtLCBkdW5nIGRhdSBsYSBvbmcgRG8gSG9hbmcgQW4sIFBo byBjaHUgdGljaCBVQk5EIFRQIEhhIE5vaSAobW9pIGJpIG1pZW4gbmhpZW0pLCBkYW5oIHNhY2gg a2llbiBuZ2hpIHh1IGx5IGdvbSBjbyAxMSBuZ3VvaS4gDQpOaHVuZyBuZ2F5IHNhdSBkbyBuaHVu ZyBuZ3VvaSBraGlldSBuYWkgdG8gY2FvIGxpZW4gYmkgZHVhIHZhbyAidGFtIG5nYW0iIGN1YSBU aGFuaCBwaG8gSGEgTm9pLCBtYSB0cnVjIHRpZXAgbGEgb25nIERvIEhvYW5nIEFuIGRhIHRodWMg aGllbiBtb3QgbG9hdCBjYWMgY3VvYyBjdW9uZyBjaGUgInRoYW0gc2F0IiB0cmFpIHBoYXAgbHVh dCwgaHV5IGRvbmcgY2EgaGUgdGhvbmcgY2hpbmggdHJpLCBibyBtYXkgY2h1eWVuIGNoZSBkb2Mg dGFpIGtpZXUgcGhhdCB4aXQgZGUga2VvIGRlbiBkYXAgcGhhIG5oYSBjdWEgY3VhIGNodW5nIHRv aSwgb25nIEFuIGRhIGR1bmcgdHJlbiBwaGFwIGx1YXQgdmEgZHVuZyBuZ29haSBwaGFwIGx1YXQu IENheSBjb3QgbmFuIGR1b25nIGN1YSBkdSBhbiB2YSBtb2MgZ2lvaSBxdXkgaG9hY2ggdHJvbmcg dnVvbiBnaWEgZGluaCB0b2kgZHVuZyBzYW5oIHZhaSBuaGF1IG5odSBsYSBtb3QgdGhhY2ggZG8u IA0KVGhlIHJvaSBnaWEgZGluaCB0b2kgZGEgdHJvIHRoYW5oIG5hbiBuaGFuIGN1YSBobyBjaHUg a2hvbmcgY29uIGxhIHRoYWNoIGRvIG51YS4gRG90IGN1b25nIGNoZSBuZ2F5IDI3LzQvMjAwNywg Y2FjIGNvbmcgdHJpbmggbmFtIG5nb2FpIG1vYyBnaW9pIHF1eSBob2FjaCBiaSBkYXAgcGhhIHRh biBob2FuZywgY28gbmhpZXUgY2F5IHRyaSBnaWEgaGFuZyBjaHVjIHRyaWV1IGRvbmcgYmkgY2hh dCBkdXQgbmdvbiBuZ2FuZywgdGFuIHBoYSB0YW5nIHRodW9uZy4gVHJ1b2Mga2hpIGNvIGN1b2Mg Y3VvbmcgY2hlIHhheSByYSwgY2h1bmcgdG9pIGRhIGNvIHJhdCBuaGlldSBkb24ga2V1IGN1dSBr aGFuIGNhcCBkZW4gVGh1IHR1b25nIENoaW5oIHBodSwgbmh1bmcgbmh1IGxhIG1vdCBzdSBibyB0 cmkgc2FuLCBUaHUgdHVvbmcgZGkgY29uZyB0YWMgZGFpIG5nYXkgbyBtaWVuIG5hbSwgVFAuSGEg Tm9pIGR1b2MgZGlwIHRoYSBobyBsYW0gbXVhIGxhbSBnaW8uIA0KRG90IHRodSAyIG5nYXkgMjkv NS8yMDA3IHRpZXAgdHVjIGN1b25nIGNoZSB0aWVwIDQgaG8gZ2lhIGRpbmggdmEgbmdheSAzMS81 LzIwMDcgY2FjIGhvIGNvbiBsYWksIG1vdCBzbyBobyBkbyBiaSBidWMgZXAsIGRlIGRvYSBuZW4g ZGEgcGhhaSBkYXQgYnV0IGt5ICJiYW4gZ2lhbyIgZGUgaG8gZGF0IGR1b2MgaGFpIGNodSAiZG9u ZyB0aHVhbiIgYmFvIGNhbyBUaHUgdHVvbmcgQ2hpbmggcGh1LiANCkRvbiBrZXUgY3V1IGtoYW4g dGhpZXQgY3VhIG5ndW9pIGRhbiBkZW4gVGh1IHR1b25nIHZhIGNhYyBjYXAgbGFuaCBkYW8sIFRo dSB0dW9uZyBkYSBjbyBzdSBjYW4gdGhpZXAgbmhhYyBuaG8gdm9pIENodSB0aWNoIFVCTkQgVFAs IG5nYXkgY2EgZG9uZyBjaGkgVGh1b25nIHRydWMgQmFuIEJpIHRodSBUcnVuZyB1b25nIFRydW9u ZyBUYW4gU2FuZyBjdW5nIGRhIHJhdCBxdWFuIHRhbSB2YSBkYSBjbyBuaGFjIG5obyBIYSBOb2ks IENodSB0aWNoIFVCTkQgVFBITiBjdW5nIGRhIGNvIGxvaSBodWEgaGVuIHZvaSBUaHUgdHVvbmcg Q2hpbmggcGh1LCB0aGUgbmh1bmcgbGFuIG5heSBjdW5nIG5odSBsYSBjbyBzdSBibyB0cmkgc2Fu LCBvbmcgQ2h1IHRpY2ggImRpIGNvbmcgdGFjIG51b2MgbmdvYWkiLCBvbmcgQW4gY2FwIHBobyBv IG5oYSBsYWkgZHVvYyBkaXAgdGhhIGhvIHR1bmcgaG9hbmggbmdhbmcgZG9jLCBkb2Mgbmdhbmcu DQoNClJpZW5nIGRvaSB2b2kgZ2lhIGRpbmggY3VhIG9uZyBOZ28gSGEgdmEgYmEgVHJhbiBUaGkg RGF0IGJpIGN1b25nIGNoZSB2YW8gbmdheSAyOS81LzA3LCBsYSBkb2kgdHVvbmcgY3VhIGJvIG1h eSBjaHV5ZW4gY2hlIHRhbiBiYW8gbmh1YyBtYSBjb24gbmd1b2kgbWEgb25nIERvIEhvYW5nIEFu IGRhIGNoaSBkYW8uIA0KRGF5IGxhIGxhbiB0aHUgMiBobyBjdW9uZyBjaGUgdHJhaSBwaGFwIGx1 YXQgZG9pIHZvaSBnaWEgZGluaCBuYXkuIEJvbiBzYWkgbmhhIGtlbyBkZW4gdm9pIGhhbmcgdHJh bSBuZ3VvaSBnb20gY28gY29uZyBhbiwgY2FuaCBzYXQgY2FjIGxvYWksIGxhbSBsYW0gZHVpIGN1 aSByb2kgZGllbiBraG9hIHNvIDggZGUgImRvaSB0aG9haSIuIFNhbiBzYW5nIHZ1IGNobyB0b2kg ZGFtICJjaG9uZyBuZ3VvaSB0aGkgaGFuaCBjb25nIHZ1Ii4gDQpPbmcgTmd1eWVuIEJhIEh1bmcs IFBobyBjb25nIGFuIHF1YW4gVGF5IEhvLCBvbmcgUGhhbSBEaW5oIFBob25nLCBUcnVvbmcgY29u ZyBhbiBwaHVvbmcgWHVhbiBMYSB2YSBvbmcgRGluaCBDaGllbiBUaGFuZyBjYW5oIHNhdCBraHUg dnVjIGR1b2kgbmh1bmcgbmd1b2kgaGFuZyB4b20gZGVuIGRlIGNodW5nIGtpZW4gcmEga2hvaSBu aGEgb25nIEhhLiANCkhhaSBsYW4gbmh1bmcgbmd1b2kgbWFjIGFvIGxpbmggdmFvIG5oYSBuYW0g bmdvYWkgbW9jIGdpb2kgcXV5IGhvYWNoIGRlIGRvIG1pbiBkZXUgYmkgYmEgRGF0IHlldSBjYXUg cmEgc2FuLCBwaGlhIG5nb2FpIG1vYyBnaW9pLCBobyB0aGF5IGNvIGx5IGRhIHJhIG5nb2FpLCBu aHVuZyBvbmcgTmd1eWVuIEJhIEh1bmcsIFBobyBjb25nIGFuIFF1YW4gY2hpIGh1eSBtb3QgZG9h biBuZ3VvaSB4b25nIHZhbyBkaW5oIGJhdCBtZSBvbmcgSGEgZGFuZyBvIHRyb25nIG5oYSwgYmkg YmEgRGF0IGNhbiBsYWksIG9uZyBOZ3V5ZW4gQmEgSHVuZyByYSBsZW5oIGJhbmcgYW0gaGlldSwN Cm9uZyBQaG9uZyBjdW5nIDIgY29uZyBhbiBsdWMgbHVvbmcga2hhYyBsb2kgdm8gb25nIEhhIHJh IGtob2kgbmhhLCBkb25nIHRob2kgY2hvIGJhdCBtZSBkZSBvbmcgSGEgOTMgdHVvaSwgY3UgdHV5 IGdpYSBuaHVuZyByYXQgdGluaCB0YW8sIG1pbmggbWFuLCBkaSBsYWkgYmluaCB0aHVvbmcgdmF5 IG1hIGhvIGVwIGJvIGN1IGxlbiBjYW5nIGtoaWVuZyBkaSwgY3Uga2hvbmcgY2hpdSBjbyBuZ29p IGRheSBkZSByYSBraG9pIGNhbmcsIA0KbGllbiBiaSBuaHVuZyBuZ3VvaSBraGllbmcgY3UgbGF5 IHRheSBhbiBjdSB4dW9uZyBjYW5nLCBjb24gbmd1b2kga2hhYyB0aGkgZHVuZyBtdSBjYW5oIHNh dCBuaGFtIG5oYW0gY2h1YyB1cCBsZW4gbWF0IGN1IG5ldSBjdSBuaG9tIGRheSwgDQpobyByYW0g cmFwIGtoaWVuZyBjdSBkaWV1IHF1YSB0cnVvYyBtYXQgb25nIEhhIGRhbmcgZHVuZyBxdWFuIHNh dCBvIGJhbiBjb25nIGdhYyAyIHNvIG5oYSAxMiBjdW5nIG5nbywgY2hpIG1vdCB0aWNoIHRhYyB0 aGkgb25nIEhhIGRhIHNhIHZhbyBjYWkgYmF5IGN1YSBib24gY2h1bmcsIG9uZyBIYSB0aGF5IG1l IGJpIGJhdCBraGllbmcgcXVhIG5oYSBtaW5oIGRhbmcgZHVuZywgZGluaCBjaGF5IHh1b25nIGNh biB0aGllcCBuaHVuZyBtb2kgbmd1b2kgZGEgbmdhbiBsYWksIHhlIG8gdG8gMTEzIGRhIGNodWMg c2FuIHBoaWEgRGluaCBsYW5nIGRhdSBuZ28gMzU0IGhvdCBjdSBkaS4NCk9uZyBOZ3V5ZW4gQmEg SHVuZyBkYSBjdW5nIG9uZyBEaW5oIENoaWVuIFRoYW5nIGNhbmggc2F0IGtodSB2dWMgdHJ1YyB0 aWVwIHJhIGdpYW0gc2F0IGJhIERhdCB0YWkgcGhpYSBuZ29haSBkZSBuZ2FuIGtob25nIGNobyB2 byBvbmcgSGEgdGltIGNhY2ggcXVheSB0cm8gdmFvIG5oYS4gDQpLaGkga2hvbmcgY29uIGFpIHRy b25nIG5oYSwgdGFpIHNhbiBuaGEgb25nIEhhIGxpZW4gZHVvYyBobyB0dSBkbyAieHUgbHkiLCBr aG9uZyBhaSBoYXkgYmlldCBobyBkYSBkdXQgdHVpIG5odW5nIHRhaSBzYW4gcXV5IGdpYSBnaSwg dm9pIG5odW5nIGRvIGRhYyBjb25nIGtlbmggdGhpIGhvIGNobyB2YXQgbGVuIHhlIGNobyBkaSwg a2hvbmcgbmd1b2kgbGFtIGNodW5nIGJpZW4gYmFuLCBkZW4gYmF5IGdpbyBnaWEgZGluaCBjdW5n IGNodWEgYmlldCB0YWkgc2FuIGdpYSBkaW5oIG1pbmggY29uIG1hdCByYSBzYW8uIA0KUmllbmcg Y3UgRGFpIGtoaSBjaHVuZyB0b2kgdmFvIHRoYW0sIGN1IGNobyBiaWV0IGN1IGNvIHNvIHRpZW4g ZG8gYmEgY29uIHZhIGNhYyBjb24gY2hhdSBtdW5nIHR1b2kgY3UgdHUgdGV0IG5ndXllbiBkYW4g bmF5IGxhaSBiaSBjaHVuZyBubyBjdW9wIG1hdCByb2kuIA0KVHJhbmcgdHJvbiBudWEgbGEgdmll YyBobyBuZ2FuZyBuaGllbiBiYW4gdGFpIHNhbiB0cm9uZyBraGkgZGFwIHBoYSBuaGEgY3VhLCBk YXAgbmhhIGRlbiBkYXUgdHJ1b25nIERvYW4gY3VvbmcgY2hlIGNoaSBkYW8gY2hvIG9uZyBOZ3V5 ZW4gRGFuZyBIdW5nLCBQaG8gZ2lhbSBkb2MgQlFMIER1IGFuIGtlIEhvIFRheSB0cnVjIHRpZXAg Y2hvIGdvbSBoZXQgbGFpIGNobyB2ZSBsYW4gdGFtIGNvbmcgbmhhbiBjdWEgQlFMREEgbGFtIG5n YXkgY2FuaCBkbyBwaGlhIGRhdSBEaW5oIGxhbmcgdmEgZ29pIHhlIHZhbyBiYW4sIGNobyB2ZSBk ZW4gZGF1IGJhbiBoZXQgZGVuIGRvIHRyb25nIGtoaSBkYW5nICJ0aGkgaGFuaCBjb25nIHZ1Ii4g DQpEb25nIHRob2kgYmllbiB0dW9uZyB2aWVjIGN1b3AgdGFpIHNhbiBkZSBiYW4gbmF5IGJhbmcg dmllYyBjaG8gbmd1b2kgeG9uZyB2YW8gaG9pIGN1YSBzYXUga2hpIGhvIGRhICJ0dSBob2kgY3Vh IiBjaGFuIGNoZS4gQ2hpIG1vdCBuaG9hbmcgdGhvaSBkYSBjbyBjYSBtb3QgZGFtIG5ndW9pIGFv IGFvIHhvbmcgdmFvIGtlIHRyYW5oLCBuZ3VvaSBjdW9wLCBuZ3VvaSB2YWMgY2FpIG5heSwgbmd1 b2kga2h1YW4gY2FpIGtpYSB0cm9uZyB2YW8gdGhhbSBjYW5oIG1hIG5hbyBjYSBsb25nLg0KDQpW YXkgbWEgbmdheSAzMC01LTIwMDcsIG5nYXkgc2F1IG5nYXkgbmhhIG9uZyBIYSBiaSBzYW4gYmFu ZyBVeSBiYW4gbmhhbiBkYW4gVFBITiBsYXAgdHVjIGRhIGNvIHRodSBiaWV1IGR1b25nIGNoaW5o IHF1eWVuIHF1YW4gVGF5IEhvLCBwaHVvbmcgWHVhbiBMYSBjdW5nIGNhYyBjbyBxdWFuIGRvbiB2 aSwgbHVjIGx1b25nIHRoYW0gZ2lhIEdQTUIga2UgSG8gVGF5IHRhaSBjdW0gMyBYdWFuIExhIHJh bmc6IA0KIlRodWMgaGllbiBjaGkgZGFvIGN1YSBUaHUgdHVvbmcgQ2hpbmggcGh1LFRoYW5oIHV5 LCBIRE5EIHZhIFVCTkQgVGhhbmggcGhvLCANCnZvaSBxdXlldCB0YW0sIHRob25nIG5oYXQgdmEg bm8gbHVjIGNhbyBjdWEgY2EgaGUgdGhvbmcgY2hpbmggdHJpOyBjdW5nIHZvaSB2aWVjIHZhbiBk b25nLCB0aHV5ZXQgcGh1YyBjb25nIGRhbiB0dSBnaWFjIGJhbiBnaWFvIG1hdCBiYW5nOyBzdSBj aHVhbiBiaSBreSBsdW9uZywgY2h1IGRhbyB2ZSBjbyBzbyB2YXQgY2hhdCwgbHVjIGx1b25nLi4u IHF1YW4gVGF5IEhvIGRhIGNoaSBkYW8sIHRvIGNodWMgdGh1YyBoaWVuIEdQTUIga2h1IHZ1YyBj dW0gMywgcGh1b25nIFh1YW4gTGEgbmhhbmgsIGdvbiwgYW4gdG9hbiB0dXlldCBkb2ksIGJhbyBk YW0gZHVuZyBxdXkgdHJpbmgsIHF1eSBkaW5oIGN1YSBwaGFwIGx1YXQiLiANClRoYXQgbGEgaG8g YmlldCBjYWNoIHRvIHNvbiBkZSBiYW8gY2FvIFRodSB0dW9uZyBDaGluaCBwaHUgbGEgZGEgdGh1 YyBoaWVuICJkdW5nIiB0aGVvIGNoaSBkYW8gY3VhIFRodSB0dW9uZyBDaGluaCBwaHUgbGEgZGE6 ICJ0aHV5ZXQgcGh1YyBjb25nIGRhbiB0dSBnaWFjIGJhbiBnaWFvIG1hdCBiYW5nIiB2YSJiYW8g ZGFtIGR1bmcgcXV5IHRyaW5oLCBxdXkgZGluaCBjdWEgcGhhcCBsdWF0Ii4gDQpDdSB0aGVvIGtp ZXUgYmFvIGNhbyBuYXkgdGhpIHRodSB0dW9uZyBuYW8gbWEga2hvbmcgc3VvbmcsIHZpZWMgImJh dCBnaXUgbmd1b2kgYmllbiB0dW9uZyIgaGF5IHN1ICJ0dSBob2kgY3VhIiBsYW0gZ2kgY28sIHNh dSBuYXkgaG8gYmFvIGNhbyByYW5nOiAib25nIEhhIGtob25nIGNvIG1hdCBvIG5oYSwgY29uIGJh IERhdCB0aGkgdHUgZG9uZyBibyByYSBuZ29haSBkZSBsYWkgY3UgZ2lhIG1vdCBtaW5oLCBraG9u ZyB0dSBiYW8gcXVhbiB0YWkgc2FuIGRheSBjaHUiLiBUaGF0IGxhIG1vdCBzdSB2dSBraG9uZyB2 byBsaWVtIHNpLCAidnVhIGFuIGNhcCB2dWEgbGEgbGFuZyIuDQoNCkxhaSBub2kgdmUgY3UgQ2Fv IFRoaSBEYWksIG1lIG9uZyBIYSBzYXUga2hpIGJpIGJhdCBnaXUgYmllbiB0dW9uZywgbmV1IHRo dWMgc3UgY2hpIHZpIGFuIHRvYW4gY2hvIGN1IHRoaSB0cm9uZyBuZ2F5IGhvbSBkbywgbmdheSBz YXUga2hpIGRhcCBwaGEgeG9uZywgYW4gdG9hbiByb2kgdGhpIGhvIHBoYWkgZHVhIHRyYSBjdSB2 ZSB2aSBobyBiaWV0IGNoYWMgY2hhbiB2byBjaG9uZyBvbmcgSGEgdmFuIGRhbmcgZHVuZyB0cmVu IGdhYyAyIGJhbiBjb25nIG5oYSBzbyAxMiBxdWFuIHNhdCBkYW0gbmd1b2kgaG9pIGN1YS4gDQpO aHVuZyB5IGRvIGN1YSBobyBsYSBjb24gbXVvbiBnaXUgY3UgbGFpIGRlIHRodWMgaGllbiBjYWMg dHJvIG5odWMgbWEgYm9pIHhhdSBjb24gbmd1b2kuIFRydW9jIHRpZW4gaG8gYmllbiBjdSB0aGFu aCBuZ3VvaSBsYW5nIHRoYW5nIGNvIG5obywga2hvbmcgbm9pIG51b25nIHR1YSBkZSAibmhvdCIg Y3UgdmFvIGNhaSAidHJhaSB0ZSBiYW4iIHZvaSBjYWkgdGVuIFRydW5nIHRhbSBCYW8gdHJvIHhh IGhvaSAzLCBUYXkgTW8gVHUgTGllbSBIYSBOb2kgbmh1IHRvaSBkYSBjbyBkaXAgbmV1IGRlbiB0 cm9uZyBkb24gdG8gY2FvIG5nYXkgMTAvNi8yMDA3IGxhIG8gZGF5IGNobyBkdW9jIG51b2kgbmhp ZXUgaG9uIG5ndW9pLiANCkF5IHRoZSBtYSBzYXUga2hpIGRvbiB0byBjYW8gY3VhIHRvaSBkdW9j IGd1aSB0b2kgY2FjIGRvbmcgY2hpIHRoaSBuZ2F5IGxhcCB0dWMgZGFuIGNobyBkdW9jIGRpIGRv aSBkaSwgdGFtIGx1b2kgYmFvIEI0MCBjdW5nIGR1b2MgZG8gYm8sIHZ1b24gY2h1b2kgZHVvYyB0 dSBibyBzYWNoIHNlIGRlcCBkZS4gVmF5IGxhIGRvbiBjdWEgY2h1bmcgdG9pIGN1bmcgZGEgZHVv YyBjYWMgdmkgbGFuaCBkYW8gcXVhbiB0YW0sIG5odW5nIGxhaSBsYSBkYW4gY2hvLCBjaHUga2hv bmcgcGhhaSB2b2kgY3UgQ2FvIFRoaSBEYWksIGN1IHRoaSBuZ3VvYyBsYWkuDQoNClRyb25nIGto aSBkbyBjaGluaCBxdXllbiBxdWFuIFRheSBIbyBjdW5nIHZhbiBnaW9uZyBkaWV1IHZ1IGtob25n LCBib2kgeGF1IG5odWMgbWEgdm8gY2hvbmcgZ2lhIGRpbmggb25nIEhhIG5odSB0cmVuIGRlIGR1 YSBsZW4ga2VuaCB0cnV5ZW4gaGluaCwgbGVuIG1hdCBiYW8gdmEgdmFuIGJhbiB0aG9uZyBiYW8g dmUgdGFuIHF1ZSBodW9uZyBvbmcgSGEsIE5naGUgQW4sIGRlIGRvaSBjb24gY2hhdSBjdSBwaGFp IHJhIGR1YSBjdSB2ZSBxdWUsIHZpIGN1IGtob25nIHBoYWkgaG8ga2hhdSBvIEhhIE5vaT8NCg0K UXVlbiB0aG9pIGNvIHRpZW4gbXVvbiBsYW0gZ2kgbyBjYWkgZGlhIGJhbiBIYSBOb2kgbmF5IGRl dSBkdW9jLCBobyBkZW0gYXAgZHVuZyB2YW8gbmdheSBjaG8gY2EgdGluaCBOZ2hlIGFuLCB0byBj aHVjIG1vdCBkb2FuIDExIG5ndW9pIGRvIENodSB0aWNoIFF1YW4gTmd1eWVuIE1hbmggQ3Vvbmcg Y2FtIGRhdSB2YW8gVUJORCB0aW5oIE5naGUgQW4sIGxlbiBodXllbiBOZ2hpYSBEYW4gcm9pIGN1 bmcgbmhhdSB2ZSB4YSBOZ2hpYSBUaHVhbiBkb2kgY2FjIGNvbiBjaGF1IGN1IHJhIGNhaSBUcnVu ZyB0YW0gYXkgbWEgInRodSB0dWMgZG9uIGN1Ii4gDQpFcCBidW9jIGtob25nIHhvbmcgdmkgY2Fj IGNvbiBjaGF1IGN1IHRoYW0gZHUgY3VvYyBob3AgZG9pIGxhcCBiaWVuIGJhbiwgZG9pIGhvIHBo YWkgY2hpdSB0cmFjaCBuaGllbSB2b2kgY3UgZ2lhIHZvIHRvaS4gQ2FjIGNvbiBjaGF1IGRhdCBu aHVuZyBjYXUgaG9pIHJhdCBnYXQgZ2FvOiAiY3UgcGhhbSB0b2kgZ2kgbWEgY2FjIG9uZyBiYXQg Y3U/IiwgImNvIGdpIG1hIHBoYWkgZXAgY3UgdmUgcXVlIHRyb25nIGtoaSBjdSBjaGkgbXVvbiBz b25nIHZvaSBjb24gdHJhaSBvIEhhIE5vaT8iIHZhIGtoYW5nIGRpbmggaG8gZGEgYmF0IG8gZGF1 IHBoYWkgdHJhIGN1IHZlIG5vaSBkby4NCg0KS2hvbmcgdGh1YyBoaWVuIGR1b2MgdHJvbmcgcXVl IGhvIGtlbyBuaGF1IHJhIEhhIE5vaSB0aW0gY2FjaCB2dWEgZGUgZG9hIHZ1YSBsdWEgb25nIEhh IHZhbyBjYWkgdHJ1bmcgdGFtIGRvIG1hIG5oYW4gY3UsIG5odSBuaGFuIHRoYW4gbmhhbiBkbyBj aGluaCBtaW5oIGJvIHJvaSwgY29uIGhvIHZvIGNhbi4gQ3VvaSB0aGFuZyA3LzIwMDcgVUJORCBx dWFuIFRheSBIbyBsYWkgdmFuIGJhbiB2ZSBjaG8gY2FjIGNvbiBjdSB0cm9uZyBxdWUgaGFuIGNo byB0cm9uZyB2b25nIDEwIG5nYXkga2hvbmcgcmEgVHJ1bmcgdGFtIEJhbyB0cm8geGEgaG9pIDMg YmF0IGN1IHZlIHRoaSBobyBzZSBiYW8gY2FvIGNhcCB0cmVuIGN1YSBobyBjaG8gInh1IGx5IHRo ZW8gcGhhcCBsdWF0Ii4NCkdpbyBkYXksIGN1IENhbyBUaGkgRGFpIGRhbmcgaGFuZyBuZ2F5IGJp IGdpYW0gZ2l1IGJpZW4gdHVvbmcsIGN1IGNhbiBkdW9jIHRyYSB0dSBkbywgcXV5ZW4gY29uZyBk YW4gY3VhIGN1IHBoYWkgZHVvYyBiYW8gZGFtIHZhIHRvbiB0cm9uZyBkbyBsYSBxdXllbiBiYXQg a2hhIHhhbSBwaGFtIHZlIHRoYW4gdGhlLCBuaGEgbyB2YSB0YWkgc2FuLg0KDQpUcm9uZyBkb24g dG8gY2FvIGxhbiB0cnVvYyB0b2kgY28gbm9pIGRlbiB2aWVjIGFwIGNoZSB2YSBraHVuZyBibyBs YSBjYWNoIGxhbSBjdWEgY2hpbmggcXV5ZW4gcXVhbiBUYXkgSG8gaGllbiBuYXkgbWEgZGllbiBo aW5oIGxhIHZpZWMgb25nIFBodW9uZyBWYW4gSG9pLCBjdW0gMSBYdWFuIExhIGJpIGNhbmggc2F0 IGtodSB2dWMgImhvaSB0aGFtIiB2YSBiaSBkZSBkb2EgYmFuZyBkaWVuIHRob2FpIGtoaSBvbmcg Y28gbmhpZXUgZG9uIHRodSB0byBjYW8gdmUgdmllYyBjdW9wIGRhdCBkaSB0aWNoLiANCkJheSBn aW8gYmF0IGRhdSBkZW4gbHVvdCB0b2ksIG9uZyBMb25nLCBkb2kgdHJ1b25nIGRvaSBhbiBuaW5o IENvbmcgYW4gcXVhbiBUYXkgSG8gY3VuZyBkYSBkZW4gImhvaSB0aGFtIiB0b2kgdmkgY28gYWkg ZG8gZGEgZHVhIGJhaSBsZW4gaW50ZXJuZXQgbWEgaG8gbmdoaSB2YW4gY2hvIGxhIHRvaS4gVG9p IGdpYSB0dW9pIHJvaSBkYXUgY28gYmlldCBpbnRlcm5ldCBsYSBjYWkgZ2kgbWEgaG8gYmFvIHRv aSBkdWEgYmFpIGxlbiBpbnRlcm5ldCwga2hvbmcgbmdoaSBuZ28gZHVvYyB0b2kgaG8gcXVheSBz YW5nIHRyYSB2YW4gZGUgY290IGNvbiB0cmFpIHRvaSB2aSBubyBjbyBtYXkgdGluaCB2YSBjbyBu b2kgbWFuZyBpbnRlcm5ldCB0cm9uZyBuaGEsIHBoYWkgY2hhbmcgZGF5IGxhIGNhaSBjbyBkZSBk YW4gZGVuIGJhdCBibyBuZ3VvaSB0cm9uZyBnaWEgZGluaCB0b2kuIA0KVG9pIGRpIGhvaSBuaGll dSBuZ3VvaSB0aGkgZHVvYyBiaWV0IHRyZW4gbWFuZyBpbnRlcm5ldCBjbyBkYW5nIHRhaSBiYWkg ZG8gbW90IGx1YXQgc3UgbmFvIGRvIGR1YSBsZW4gdm9pIHRpZXUgZGU6ICJub2kgbGVuIG1vdCBz dSB0aGF0IHRoaWV1IGRhbiBjaHUgbyBWaWV0IE5hbSIgbWEgbm9pIGR1bmcgYmFpIGxhIGRvaSB0 cmEgdHUgZG8gY2hvIGN1IENhbyBUaGkgRGFpIDkzIHR1b2kgYmkgQ29uZyBhbiBiYXQgZ2l1IGJp ZW4gdHVvbmcgdHUgbmdheSAyOS81LzIwMDcgdGhlbyBkb24gdG8gY2FvIGN1YSB0b2kgbmdheSAx MC82LzIwMDcuIA0KVmF5IGxhIGxhbiBuYXkgaG8gbGFpIGNvIHRpbmggcXV5IGNodXAgY2hvIGNo dW5nIHRvaSB2ZSBjaGluaCB0cmkgZGUgZGUgZGFuZyB0cm9uZyB2aWVjIHRyYSB0aHUgZ2lhIGRp bmggdG9pIGNoYW5nID8gU3UgdHJhbmcgdHJvbiBvIGRheSBraG9uZyBjb24gZ2kgZGUgY2hlIGRh eSBudWEhDQoNClRodWMgaGllbiBtb3QgY3VvYyBjdW9uZyBjaGUgbWEga2hvbmcgdHVhbiB0aGVv IG1vdCBxdXkgZGluaCBuYW8gY3VhIHBoYXAgbHVhdDogYmF0IG5ndW9pLCBjdW9wIGN1YSBnaXVh IGJhbiBuZ2F5IG5odW5nIGxhaSBub2kgInRodWMgaGllbiB0aGVvIHN1IGNoaSBkYW8gY3VhIFRo dSB0dW9uZyBDaGluaCBwaHUiLiANCkNodW5nIHRvaSBkYXQgY2F1IGhvaSwgYmFuIHRheSBuYW8g ZGFuZyBuZ2FtIG5nYW0gY2hpIGRhbyBuaHVuZyB0aGFtIHF1YW4gbmF5IG1hIGhvIGRhbSBuZ2Fu ZyBuaGllbiBuaHUgdmF5PyBQaGFpIGNoYW5nIGNhaSB2aWVjIGJhdCBnaXUgbmd1b2kgYmllbiB0 dW9uZywgdmllYyAidHUgaG9pIGN1YSIgZGVtIGJhbiBuYXkgbGFpIGN1bmcgbGEgZG8gc3UgY2hp IGRhbyBjdWEgVGh1IHR1b25nIENoaW5oIHBodS4gDQpDdW5nIGNoYW5nIGtobyBkZSBwaGFpIHRp bSBraWVtLCBib25nIGRhbmcgbG8gZGFuZyBjdWEgc3UgY2hpIGRhbyBuYXkgdGh1YyBjaGF0IG5v IG5nYXkgdHJvbmcgY2FjIHZhbiBiYW4sIGhheSB0aG9uZyBiYW8gbWEgVGF5IEhvIGx1b24gbHVv biBiYW0gbGF5IGxhIHZpZWMgZ3VpIGJhbyBjYW8gdnVvdCBjYXAgbGVuIFZhbiBwaG9uZyBDaGlu aCBwaHUgbGllbiBxdWFuIHZpZWMgZ2lhaSBxdXlldCBjdSBEYWkgbWUgb25nIEhhLCBobyBwaGFp IHRvbiBuaGlldSB0aG9uZyBiYW8sIHBoYWkgdG9uIHRpZW4gY3VhIG5oYSBudW9jIGRlIHZhbyB0 YW4gcXVlIG9uZyBIYSBraGkgaG8gbXVvbiBkbyBjYWkgbG9pIGxlbiBkYXUgdm8gY2hvbmcgb25n IEhhLiANCkxhbSB0aGUgaG8gbW9pIGNob2kgZHVvYyB0b2kuIE5nb2FpIHJhIHZpZWMgZ3VpIGJh byBjYW8gdnVvdCBjYXAgbmF5IGNvbiBsYSB2b2kgY2h1IHkgbXVvbiBndWkgY2hvIG5ndW9pIGRh biBtb3QgdGhvbmcgZGllcCBtYW5nIHRpbmggdGhhY2ggZG8gcmFuZyBkdW5nIGxhIGhvIGRhbmcg ZHVvYyBWYW4gcGhvbmcgQ2hpbmggcGh1IGJhbyBjaGUsIG5vaSBnb20gbmh1bmcgbmd1b2kgdGhh biBjYW4gdm9pIFRodSB0dW9uZywgdGhhbSBtdXUgdHJ1YyB0aWVwIGNobyBUaHUgdHVvbmcgdHJv bmcgbW9pIHZhbiBkZSwgdmF5IHRoaSBsYW0gZ2kgVGF5IEhvIGNvbiBwaGFpIHNvIGFpIG51YSwg a2UgY2EgbGFtIHNhaT8gVmllYyBuYXkgY2hhYyBvbmcgVnUgdHJ1b25nIFZ1IGtoaWV1IG5haSB0 byBjYW8gdGh1b2MgVmFuIHBob25nIENoaW5oIHBodSBiaWV0IHJvPw0KDQpTdSB2aWVjIG8gZGF5 IHF1YW5oIEhvIFRheSBuYXkgY2hpIHRoYXkga2hvbmcgY28gZGFuIGNodSwgZ2lhIGRvaSwgdGFu IGJhbywgdmkgcGhhbSBuaGFuIHF1eWVuLCBraG9uZyBjbyBwaGFwIGx1YXQsIGhhbmcgbG9hdCBu aHVuZyB2aSBwaGFtIHRoYW0gbmh1bmcgYW4gY2FwIGRldSBiaSBidW5nIGJpdCwgdHJhIHRodSBu Z3VvaSBraGlldSBuYWkgdG8gY2FvIGxhIG1vdCB0aHVjIHRlIGRhIHZhIGRhbmcgdG9uIHRhaSBv IGRheSwgbyBxdWFuaCBIbyBUYXkgbmF5LiBUYSB0aHUgZGkgZGVuIHBodW9uZyBRdWFuZyBBbiB0 aGkgdGhheSBybzoNCg0KLSBPIGtodSB2dWMgQmVuIENodW06IGRpZW4gdGljaCA4LjA4MG0yLCBj YWNoIG1lcCBudW9jIEhvIFRheSBiYSBib24gdHJhbSBtZXQsIGtob25nIG5hbSB0cm9uZyBxdXkg aG9hY2ggZHUgYW4ga2UgSG8gVGF5LCBuaHVuZyB0aGFuaCBwaG8gSGEgTm9pIG1hIHRydWMgdGll cCBsYSBwaG8gY2h1IHRpY2ggRG8gSG9hbmcgQW4gY3VuZyB2b2kgUXVhbiBUYXkgSG8sIHBodW9u ZyBRdWFuZyBBbiB2YSBCYW4gUUxEQSBrZSBIbyBUYXkgZGEgbG9pIGR1bmcgZHUgYW4ga2UgSG8g dGF5IGRlIGN1b3AgZGF0IGN1YSBkYW4gcGh1YyB2dSBjaG8gbXVjIGRpY2gga2luaCBkb2FuaCwg DQp0cm9uZyBraGkgZG8gb25nIEFuIGxhaSBreSBxdXlldCBkaW5oIGNobyBCYW4gUUxEQSBrZSBI byBUYXkgZHVvYyBwaGVwIGxhbSBraW5oIGRvYW5oLiBOaGFuIGRhbiBjbyBkYXQga2h1IEJlbiBD aHVtIGRhIGd1aSBiaWV0IGJhbyBkb24gdGh1IHRvIGNhbyBuaHVuZyBjaGluaCBxdXllbiB0aGFu aCBwaG8gZG9uZyBsb2EgZGUgcXVhbiBUYXkgSG8gY28gdGluaCBjdW9wIGRhdCBjdWEgZGFuLiBO Z2F5IDUvNi8yMDA3IFVCTkQgcXVhbiBUYXkgSG8gcmEgcXV5ZXQgZGluaCBjdW9uZyBjaGUgdmEg bmdheSA4LzcvMjAwNyB0aHVjIGhpZW4gdmllYyBjdW9uZyBjaGUgc2F1IGtoaSBkYSBzYW4gcGhh bmcgbWF5IGNodWMgaG8gZ2lhIGRpbmggdGFpIEN1bSAzIFh1YW4gTGEuIA0KVHJ1b2MgdmllYyBD aGluaCBxdXllbiBkdW5nIHF1eWVuIGx1YyBkZSBkYW4gYXAgZGFuLCBiYW5nIG1vaSBjYWNoIGFw IGNoZSBkYW4sIG5oaW4gdGhheSBibyBtYXkgZG9jIHRhaSBraWV1IHBoYXQgeGl0IGN1b25nIGNo ZSBkYW4gbyBwaHVvbmcgWHVhbiBMYSwgY2FjIGhvIGRhbiBvIFF1YW5nIEFuIHF1YSBzbyBoYWkg cGhhaSBreSBiYW4gZ2lhbywgZGVuIGJ1IG5odSB0aGkgbmh1IGNobywgbG9uZyBkYW4gY2h1YSBj aGF0IGRheSBub2kgY2FtIGdpYW4uIA0KQ29uIGNhYyBxdWFuIGNodWMsIG5odW5nIG5ndW9pIGNo dWMgY28gdGllbiBkZSBkYXUgdHUgdGFpIGtodSBCZW4gQ2h1bSBsYW0gQ2F1IExhYyBibyBEYW0g U2VuIHRoaSBoYSBoZSwgYmFuZyBjaGFuIG5odSB2YWksIGhvIGNobyB4YXkgZHVuZyBuZ2F5IGNh YyBjb25nIHRyaW5oIGtpZW4gY28gYW5oIGh1b25nIGRlbiBjYW5oIHF1YW4gdHJ1b2MgZGkgdGlj aCBsaWNoIHN1IHhlcCBoYW5nIGNhcCBxdW9jIGdpYSBsYSBEaW5oIFF1YW5nIEJhLg0KDQotIFRh aSBHb2kgdGhhdSBzbyAxMjogQmEgSG9hbiwgbW90IGNhbiBibyB0cm9uZyBCUUxEQSBrZSBIbyBU YXkgZGEgbGFwIGtob25nIHZhbyB0cm9uZyBwaHVvbmcgYW4gZGVuIGJ1IGdpYSBkaW5oIGJhIENo dWMgTWFpIGRlIHJ1dCAxMCB0cmlldSBkb25nLiBLaGkgYmkgdG8gY2FvIGNoaW5oIHF1eWVuIHF1 YW4gVGF5IEhvLCBwaHVvbmcgUXVhbmcgQW4gY3VuZyBCYW4gUUxEQSBrZSBIbyBUYXkgZGEgcXVh eSBzYW5nIHRyYSB0aHUgZ2lhIGRpbmggbmF5LiANClF1eSBob2FjaCBjaGkgbGF5IHR1IG1lcCBo byB2YW8gMTAsNW0gZGUgbGFtIGR1b25nIG5odW5nIGdpYSBkaW5oIGJhIENodWMgTWFpIGJpIGxh eSB2YW8gc2F1IGhvbiAyNG0uIE1hbmggZGF0IG5oYSBiYSBjaHVjIE1haSBjbyA5IGdpYSBkaW5o IGNhYyBjb24gc2luaCBzb25nLCBsdWMgZGF1IER1IGFuIGxhbSA5IHBodW9uZyBhbiBkZW4gYnUg bmh1bmcgc2F1IGtoaSBiaSB0byBjYW8gaG8gY2hvIHh1b25nIGNvbiAzIHBodW9uZyBhbiBkZSBz byB0aWVuIGRlbiBidSBiaSBzdXQgeHVvbmcuIFRhaSBkb2FuIGtlIHF1YSBuaGEgaGFuZyBQaHVv bmcgTmd1eWVuLCBkdW9uZyB2YSBrZSBsYWkgZHVvYyBuYW4gcmEgbmdvYWkgbWF0IG51b2MgZGVu IGhvbiAxMG0uDQoNCi0gVGFpIEdvaSB0aGF1IDIxOiBOYW4gcXV5IGhvYWNoIGxhbiByYSBwaGlh IGhvLCBjaG8gY2F0IGxhcCBobyBkZSBjbyBraHUgZGF0IHZhaSBjaHVjIG5naGluIG1ldCB2dW9u ZyBjaGlhIGNobyBjYWMgcXVhbiBjaHVjIHZhIGNoaWEgbG8gYmFuLiBDaG8geGF5IDM4IGtpIG90 IGxhbiB2YW8gdHJvbmcgbW9jIGdpb2kgcXV5IGhvYWNoIGRlIGNobyB0aHVlLCBkb24gdGh1IGto aWV1IG5haSB0byBjYW8sIHRydWMgdGllcCBDaHUgdGljaCBUUCBOZ3V5ZW4gUXVvYyBUcmlldSBo dWEgZ2lhaSBxdXlldCBwaGEgYm8gbmh1bmcgbmF5IHZhbiBuZ2FuZyBuaGllbiB0b24gdGFpPw0K DQotIERpZW4gdGljaCAxLDM4aGEgdGFpIHBodW9uZyBRdWFuZyBBbiBsYSBkYXQgZGF1IHRoYXUg bGF5IHRpZW4geGF5IGR1bmcga2UgSG8gVGF5LCBuaHVuZyBobyBkYSBjaG8gdGhvbmcgdGhhdSBn aWEgcmUgbWF0LCBkYXUgdGhhdSAxLDM4aGEgbmh1bmcga2hpIGdpYW8gY2hpIDAsOGhhLiBTbyBj b24gbGFpIGNoaWEgbmhhdSBodW9uZywgR2lhbSBkb2MgZHUgYW4gSG9hbmcgVmFuIExvYyBjdW5n IGNvIHN1YXQgdHJvbmcga2hpIG9uZyBkYSBjbyBiaWV0IHRodSBjdW5nIGRhdCBkYWkgcm9uZyBs b24gdGFpIG1lcCBibyBIbyBUYXkgcGh1b25nIFF1YW5nIEFuIG5heS4NCg0KU3UgYWkgb2FuIGN1 YSBuZ3VvaSBkYW4gUXVhbmcgQW4gZGEgZHVvYyB0aGUgaGllbiBxdWEgYmFpIHRobyAiaGFuaCB0 cmluaCBraGlldSBraWVuIiBtYSBjaGFjIGNhYyBxdXkgVmkgZGEgZHVvYyBkb2Mga2hpIG5oYW4g ZGFuIFF1YW5nIEFuIGd1aSB0b2kuDQoNCk5nYXkgbyBYdWFuIExhIG5heSB2aWVjIGRlbiBidSBr aG9uZyBtYXQgbnVvYyBkZSBydXQgbGF5IDE2MiB0cmlldSB0YWkgc28gbmhhIDM3MiBMYWMgTG9u ZyBRdWFuIGRhIHRodWMgaGllbiBzdW9uIHNlLCBraGkgYmkgcGhhbiBhbmggaG8gbm9pIGxhIGhv IHNlIHRodSBob2kgbGFpLCBraG9uZyBiaWV0IHRodSBob2kgZGVuIGRhdS4gU3UgdmllYyBkaWVu IHJhIHNhdCBuYWNoIGdpYSBkaW5oIHRvaS5WaWVjIHJ1dCBydW90IGNvbmcgdHJpbmggbWEgdG9p IGRhIGRlIGNhcCBkZW4sIGtldCBsdWFuIHRoYW5oIHRyYSBDaGluaCBwaHUgY28gbmhhYyBkZW4s IHZheSBtYSBjdW5nIGR1b2MgYm8gcXVhPyBWaWVjIGNvIHRpbmggbW8gY29uIGR1b25nIG5vaSB4 dW9uZyBobyBkZSBsYXkgaG9uIDEuMDAwbTIgZGF0IG5nb2FpIHF1eSBob2FjaCBjdWEgZGFuLCB0 cm9uZyBraGkgY2FjaCBkbyAxMm0gZGEgY28gc2FuIGR1b25nIHh1b25nIGhvIHJvaS4NCg0KS2hv bmcgdGhlIGRlIERhbmcgdmEgTmhhIG51b2MgbWF0IGxvbmcgdGluIGN1YSBuaGFuIGRhbiBtYWkg ZHVvYywgY2h1bmcgdG9pIGtpZW4gbmdoaSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8gRGFuZyBOaGEg bnVvYyB2YSBuaGF0IGxhIFRodSB0dW9uZyBDaGluaCBwaHUgaGF5IGNobyBtbyBjdW9jIGRpZXUg dHJhIGxhbSBybyB0cmFjaCBuaGllbSwgc3UgdmkgcGhhbSBwaGFwIGx1YXQgdHJhbmcgdHJvbiBu YXkgdmEgeHUgbHkgdGhpY2ggZGFuZy4gQ3UgdGhlOg0KDQotIFRyYSB0dSBkbyBuZ2F5IGNobyBj dSBDYW8gVGhpIERhaSA5MyB0dW9pIHRoZW8gZHVuZyBxdXkgZGluaCBjdWEgcGhhcCBsdWF0LiBL aG9uZyB0aGUgZHVuZyBzdWMgbWFuaCB2YSBxdXllbiBsdWMgY3VhIE5oYSBudW9jIGJhdCBnaXUg dmEgY3VvbmcgYnVjIGN1IGdpYSA5MyB0dW9pIGRhbmcgc29uZyBiaW5oIHllbiBjdW5nIGNvbiBj aGF1IHRoYW5oIG5ndW9pIGxhbmcgdGhhbmcgY28gbmhvIGtob25nIG5vaSBudW9uZyB0dWEsIHN1 IGR1bmcgZHUgY2FjIHBodW9uZyB0aWVuIHZ1IGtob25nLCBib2kgbmhvIGNvbiBjaGF1IGN1LCBk byBsb2kgY2hvIGNvbiBjaGF1IGN1LCBjaG9pIHRvaSBiYW5nIGNhY2ggYmF0IG5ndW9pIHRoYW4g dmFvIFRydW5nIHRhbSBCYW8gdHJvIDMgVGF5IE1vIFR1IExpZW0gbWEgZG9uIGN1LCBjb24gaG8g ZHVuZyBuZ29haSBjdW9jLCB2byBjYW4uDQoNCi0gUGhhaSB4dSBseSBuaHVuZyBrZSBsb2kgZHVu ZyBjaHVjIHF1eWVuLCB0cmEgdGh1IG5ndW9pIGtoaWV1IG5haSB0byBjYW8uIEtob25nIHRoZSBk ZSBEYW5nLCBOaGEgbnVvYyB2YSBDaGluaCBwaHUgbWFuZyB0aWVuZyBraG9uZyBiYW8gdmUgZHVv YyBuZ3VvaSBraGlldSBuYWkgdG8gY2FvIHZhIHRoYW4gbmhhbiBjdWEgaG86IGN1IENhbyBUaGkg RGFpIC0gOTMgdHVvaSB2aSBjb24gY2hhdSBjdSBuZ2hlIHRoZW8gbG9pIGtldSBnb2kgY3VhIERh bmcsIE5oYSBudW9jIHZhIENoaW5oIHBodSB0aGFtIGdpYSB0aWNoIGN1YyBjaG9uZyB0aGFtIG5o dW5nIHRhaSBDdW0gMywgcGh1b25nIFh1YW4gTGEsIHF1YW4gVGF5IEhvLCBIYSBOb2kgbmF5Lg0K DQotIExhbSBybyB2aWVjIG5odW5nIGtlIGRhIGxvaSBkdW5nIFRodSB0dW9uZyBDaGluaCBwaHUg ZGUgdmkgcGhhbSBwaGFwIGx1YXQuIEtob25nIHRoZSBkZSB0aGFuaCBwaG8gSGEgTm9pIHNhdSBr aGkgZGEgdGh1YyBoaWVuIGR1b2MgY3VvYyB0cmEgdGh1IHRyYWkgcGhhcCBsdWF0LCB0YW4ga2hv YyB2byBuaGFuIHRpbmggdmEgaGV0IHN1YyBiYW4gdGhpdSBuYXkgeG9uZyBsYWkgY2hvaSB0b2kg YmFuZyB2aWVjIHJldSByYW8gbGEgdGh1YyBoaWVuICJ0aGVvIGNoaSBkYW8gY3VhIFRodSB0dW9u ZyBDaGluaCBwaHUiLg0KDQotIFBoYWkgY2hvIHRoYW5oIHRyYSB0aWVwIGNhYyBub2kga2hhYyB0 cmVuIHRvYW4gdHV5ZW4ga2UgSG8gVGF5IG1hIG5odSBUaGFuaCB0cmEgQ2hpbmggcGh1IGNvIGxh biBkYSBkZSBuZ2hpDQoNClRvaSBkYSBjbyB0aHUgY28gZG9uIGd1aSB0b2kgZG9uZyBjaGkgVHJ1 b25nIEJhbiB0byBjaHVjIFRXIHRvIGNhbyBuaHVuZyBjYW4gYm8gY28gcXV5ZW4gY2FvIGNodWMg dHJvbmcgdHJlbiBUaGFuaCBwaG8gY2hvIHRvaSBuaHVuZyBrZSBkdW9pIHF1eWVuIHZpIHBoYW0g cGhhcCBsdWF0IG5nYXkgdGFpIHBodW9uZyBYdWFuIExhIG5vaSB0b2kgY3UgdHJ1IG5odSBuZ3V5 ZW4gY2h1IHRpY2ggcGh1b25nIE5ndXllbiBYdWFuIERpbmggbGEgbW90IGtlIGx1YSBkYW8gZGEg Y28ga2V0IGx1YW4gY3VhIHRoYW5oIHRyYSB0aGFuaCBwaG8gdHJvbmcgdnUgbHVhIGRhbyBiYSBO Z3V5ZW4gVGhpIEJpY2ggRHVuZyA1MiBQaGFuIERpbmggUGh1bmcgZGUgY2hpZW0gZG9hdCB0YWkg c2FuIGN1YSBiYSBEdW5nIGx1YyBEaW5oIGNvbiBsYSBDaHUgdGljaCBVQk5EIHBodW9uZyBYdWFu IExhLCBuaHVuZyBEaW5oIHZhbiB5ZW4gdmksIA0KZGVuIFF1YW4gTmdvYyBBbmggY2h1IHRpY2gg aGllbiB0YWkgZHUgdGh1IG5odW5nIG5oaWV1IGRhbiBkZW4gbm9pIG5ndW9pIGRhbiBhaSBjdW5n IHRodW9jIGNhdSAiVGhhbmcgY2h1IHRpY2ggdHJ1b2MgZGEgZGV1IGdpYSBsdXUgbWFuaCwgdGhh bmcgY2h1IHRpY2ggc2F1IGNvbiBkZXUgZ2lhIGx1dSBtYW5oIHZhIGtob24gbmFuIGhvbiwgY28g dG9pIDQgYmFuZyBkYWkgaG9jLCB0cm9uZyBkbyBjbyBtb3QgYmFuZyBsdWF0LCBuaHVuZyBsYWkg bGEgImx1YXQgcnVuZyIsIGN1bmcgdm9pIGNhbiBibyBkaWEgY2hpbmggdGhhbyB0dW5nIHZlIGRh dCBkYWkgYmllbiB0dSB0aG8gY2FuaCBzYW5nIHRobyBjdSB2YSBuZ3VvYyBsYWkgZ2F5IHJhIGJh byBiYXQgYmluaCBjaG8gZGFuIGNodW5nLiANCkNhYyBvbmcgY2FuIGJvIFVCTkQgcXVhbiBUYXkg SG8gbmh1IG9uZyBDaHUgTmdvYyBUdWF0LCBuZ3V5ZW4gbGEgY2h1IHRpY2ggcm9pIEJpIHRodSBi YW8gbmhpZXUgdG9pLCBiYXUgYmkgdGh1IGtob25nIHRydW5nIHBoYWkgcmEgZGksIG5odW5nIHZh biBjb24gbHV5ZW4gdGllYyBjbyBiYW0gbGF5IG1vdCB2aSB0cmkgdGFpIGR1IGFuIFRheSBIbyBU YXkgbmhpZXUgdGllbiwgbGFtIGRhdCBkZSBsYW0gYW4uIA0KT25nIE5ndXllbiBQaHVjIFF1YW5n LCBUcnVvbmcgY29uZyBhbiBRdWFuIGJpIHRvIGdpYWMgY28gbGllbiBxdWFuIGRlbiBjYWMgc29u ZyBiYWMsIGxpZW4gcXVhbiBkZW4gQm9uZyBEZSwgZGVuIE5hbSBDYW0sIGJhbyBjaGkgZHVhIHRp biB4b24geGFvIG1vdCB0aG9pIHJvaSBpbSBsYW5nLCANCmtob25nIG1vdCBsb2kgY2FpIGNoaW5o IHZhbiBuZ3V5ZW4gdmksIG5heSBuZ2hlIHRpbiBkdW9jIHNhbmcgbGFtIGNodSB0aWNoIFVCTkQg cXVhbiBUYXkgSG8gaGF5IEJpIHRodSBRdWFuIHV5IGdpIGRvLCANCmNvbiBvbmcgVnUgSG9uZyBL aGFuaCwgQmkgdGh1IFF1YW4gdXkgcmEgc3VjIGJhbyBrZSBjaG8gdmllYyBjdW9wIGRhdCBkaSB0 aWNoIGNodWEgVmFuIE5pZW4gliBkaW5oIFh1YW4gVGFvIFNvIHhheSBraGFjaCBzYW4gdHUgbmhh biB2YSBjaGkgZGFvIGh1eSBkb25nIGNhIGhlIHRob25nIGNoaW5oIHRyaSBxdWFuIFRheSBIbyB2 YW8gdnUgY3VvbmcgY2hlIHRyYWkgcGhhcCBsdWF0IHRyb25nIHRoYW5nIDQsIHRoYW5nIDUgdnVh IHF1YSBsYWkgdHJ1bmcgY3UgdmUgdGhheSB2aSB0cmkgb25nIExlIFF1eSBEb24ga2hpIG9uZyBE b24gdnVhIGJpIG1pZW4gbmhpZW0hDQoNCktpbmggdGh1YSBjYWMgZG9uZyBjaGksDQoNCkNodW5n IHRhIGhpZW4gbmF5IGNvIHRoYW5oIHRyYSwga2llbSB0cmEsIGRpZXUgdHJhIGNhYyBjYXAgY3Ug bmh1IGxhIGx1b2kgdHJvaSBkYXkgZGFjIGxhbSBzYW8gY2hvIHRob2F0LCBzdSB0aHVjIG5odSBj aHVuZyB0YSBkYSB0aGF5LiBMYSBtb3QgRGFuZyB2aWVuIHNvbSBnaWFjIG5nbyBjYWNoIG1hbmcg dHUgaG9pIG1pbmggdmEgaG9pIGRlbiBjYWMgZG9uZyBjaGksIGN1IG5odSB0aGUgbmF5IERhbmcg dGEgbmF5IGxhIGN1YSBhaSwgc2UgZGkgZGVuIGRhdSA/DQoNCktpbmggbW9uZyBkdW9jIHN1IHF1 YW4gdGFtIGN1YSBjYWMgZG9uZyBjaGksIHhpbiB0cmFuIHRyb25nIGNhbSBvbi4vLg0KDQpLaW5o IHRodQ0KRGFvIFZhbiBIdWUNClNvIDM3NCBMYWMgTG9uZyBRdWFuLCBDdW0gMyBYdWFuIExhLCBU YXkgSG8sIEhhIE5vaQ0KRFQ6IDgzNjI4NzMNCg0KSEFOSCBUUklOSCBEQU4gREkgS0hJRVUgS0lF Tg0KDQpQaHVvbmcgUXVhbmcgQW4gZ2l1YSBsb25nIEhhIE5vaQ0KQ2FjaCB0b2EgbmhhIFF1b2Mg aG9pIHZhaSBjYXkNClRpbmggdGhlbyBkdW9uZyBjYW5oIGNoaW0gYmF5DQpLaWEgRGluaCBUaHUg dHVvbmcsIG8gbmdheSB0YW0gbmhpbg0KTWEgc2FvIHRoYXkgbXVvbiBuZ2hpbiBjYWNoIHRybw0K Tmh1IHNhbyB0cmVuIHZ1IHRydSB4YSB2b2kNCkNodW5nIHNpbmggbnVvYyBtYXQgZGF5IHZvaQ0K RG9uIHRodWEga2hhcCBjYSwgY2hhbmcgbm9pIG5nbyBuZ2FuZz8NCg0KQWkgbGUgcGh1LCB4aW4g ZHVuZyB2ZSB2b2kNCkhheSBuaGluIHhlbSwgbm9uZyBub2kgZGFuIGRlbg0KQ3VhIG5oYSBkYXAg cGhhIHRhbiBob2FuZw0KU29uZyBuaG8gc2FuIFBodSwgbXVhIHRyYW4gbmFuZyB0aGlldQ0KTHVh dCBkYXQgZGFpLCB0dW5nIGRpZXUgcXV5IGRpbmgNCk5hbyB0aG9uZyB0dSwgbmdoaSBkaW5oIHJv IHJhbmcNCkx1YXQgYmFuIHRoaSBjdSB2aWVjIGJhbg0KQ2hpbmggcXV5ZW4gY28gc28gY3UgbGFt IGtobyBkYW4NCg0KRGF0IGxhbiBjaGllbSwgY2hheSB0aWVuOiBTbyBkbw0KRGF0IHRobyBjdTog RGFuZyBjbyB0aGFuaCBraG9uZw0KVHJhbSBwaHVvbmcgbmdhbiBrZSBsdWEgZGFuDQpCb3QgZGF1 LCBib3QgY3VvaSBjaGkgY2FuIHRpZW4gdGhvaQ0KTHVhIHNhbyBsYXkgZHVvYyBkYXQgcm9pDQpE YW4gZGVuIHRoaSBrZSB0aGF5IGRvaSBkYW4gZGVuDQpUaG9pIHZvIGNhbSwgZGEgcXVlbiB2byBj YW0NClRlIGhhbmggZGFuLCB0aGFuaCBuYW4gbGF1IHJvaQ0KTWF0IG5oYSwgbWF0IGRhdCB0YSB0 b2kNCk1vIGhvaSBob2EgbGUgdGltIG5vaSBnaWFpIGJheQ0KDQpEYXk6IER1IGFuIEhvIFRheSwg bm9pIG1haQ0KWG9uZyEgWG9uZyByb2khIHZhbiBsYWkgY2h1YSB4b25nDQpUaGEgaG8gbGF5IGRh dCBjdWEgZGFuDQpNdWEgZGksIGJhbiBsYWksIHZhbiBjYW4gYmFuIHRoZW0NClNhdSB0cmFtIHR5 IGRhdSB0aWVuIHBoZSBkdXlldA0KUm9pIGJvIHN1bmcsIHhlbSB4ZXQgdGFuZyBjdW9uZw0KRGVu IG5heSBzbyB0eSBjYSBuZ2hpbg0KRHVvbmcga2UgaG8gdmFuIGdoYXAgZ2hlbmggY2h1YSB4b25n DQpUaWVuIGR1IGFuIGJvIHN1bmc6IHR5LCB0eQ0KRHVvbmcgcXVhbmggaG8gdmFuIGNoaSBuaHUg eHVhDQpEYW4gZGVuIGRhdSBraG8gdmF0IHZvDQpQaGEgbmhhIGxheSBkYXQgZ2lhIGN1IHRhbiB0 YW5oDQpWaSBpY2ggbnVvYyBkYW4gbGFuaCBudW90IGxlDQpHaWFvIGRhdCwgbmhhIGNoYW5nIGtl IHRoaWV0IGhvbg0KTmFvIG5nbyBEdSBhbiBsdWEgZGFuDQpUcnUgdHJlbiwgYm90IGR1b2ksIHhv YXkgdmFuIC4uLiBsYWkgcXVhDQpEYXQgbGFuIGNoaWVtIHRoaTogTyBrZQ0KVGhvIGN1IGxhaSBo b2EgbGllbiBrZSBuaHUga2hvbmcNCk1heSBkb2kgZGF0IGN1YSBjaGEgb25nDQpLaGkgbGVuIHBo dW9uZyBhbjogZGF0IGtob25nIGJvaSB0aHVvbmcNCg0KRGFuIGJ1YyB4dWMgbGVuIHBodW9uZyBr aGlldSBuYWkNClRyYSBsb2kgcmFuZzogU2FpIHRhaSBjYXAgdHJlbg0KUXVhbiBkYXksIGRhbiBs YWkga2VvIGxlbg0KTmhhbiBkb24gcXV5IFF1YW4gbGFuZyBpbSBuaHUgdG8NClZhaSBjaHVjIGJh biBkb24gdHUgZGkgbGFpDQpMYWkgbmh1bmcgbmhhbmc6IENvbiBkb2kgY2FwIHRyZW4NCk1vaSBt b24gZG9pIHN1b3QgbmFtIGxpZW4NCkRhdCB0aHUsIG5oYSBwaGEsIG1hIHRpZW4gdGhpIGNodWEN Ck1lIGdpYSwgY29uIHRyZSBibyB2bw0KTW90IGRvaSBnaWFuaCBkdW0sIHBodXQgZ2lvIHRhbiBo b2FuZw0KDQpNYXkgY28gYmFvIENvbmcgYW4gdGhhbmggcGhvIChIQ00pDQpUaGF1IGxvbmcgZGFu LCBnaXVwIGRvIGRvaSBkaWV1DQpCYW8gZGFuZyBtb3Qgc29tIG1vdCBjaGlldQ0KTmhhbiBzYWks IFF1YW4gaHVhIHN1YSBkaWV1IGxhbSBzYWkNCk5odW5nIHRoYW5nIGxhaSBxdWEgbmdheSBsYW4g bHVhDQpOaGFuIHNhaSByb2kga2hvbmcgc3VhIGNobyBkYW4NCk5heSBQaHVvbmcsIG1haSBRdWFu IGNob24gY2hhbg0KTW9pIG1vbiB0cnVvYyBjdWEgY29uZyBxdXllbiBsYXkgdmFuDQoNCktoaSB0 aHUgZGF0IGxhbmggYmFuZywgYXAgZGF0DQpQaGEgbmhhIGRhbiBraG9uZyBjaHV0IGRhbiBkbw0K RGVuIGJ1IG5odSB0aGksIG5odSBjaG8NCk5oYW4gcXV5ZW4gLSB4aW4gY28gY28gbW8gaGFvIGh1 eWVuDQpMYXAgcGh1b25nIGFuIGR1bmcgcXV5ZW4gYXAgZGF0DQpWaWVjIGR1bmcgc2FpLCBkdW9j IG1hdCBkbyB0aWVuDQpEYW4gZGkga2hpZXUga2llbiB0cmllbiBtaWVuDQpEb24gdHUgeGVwIGRv IGNvIHRpZW4gbW9pIHhvbmcNCkR1b25nIGtoaWV1IGtpZW4sIHR1IHRyZW4geHVvbmcgZHVvaQ0K TG9pIHRyaW5oIGJheSwgdHUgZHVvaSBsZW4gdHJlbg0KVm9uZyBxdWFuaCBpbSBsYW5nLCBsYW5n IGltDQpEZSBkYXUsIGN1b2kgY28gZGFuIGRlbiBtYWMgbG9uZw0KRGEgcXVhIGxhaTogbG9uZyB2 b25nIGNhYyBjdWENClF1YW4gYmVuaCBxdWFuLCBtdW9uIHRodWEgdGhlIHJvaQ0KRGFuIGRlbiBj aGkgYmlldCBrZXUgdHJvaQ0KTmdvbmcgdmUgUXVvYyBob2kgZ3VpIGxvaSB0aGlldCB0aGENCk5n b25nIHZlIGRpbmggcXVvYyBnaWEgbmd1eWVuIHRodQ0KR3VpIG5vaSBuaWVtIHRoZW8gZ2lvIG1v bmcgbWFuaA0KTmh1bmcgbmd1b2kgZGFpIGRpZW4gY2hvIGRhbg0KTmh1bmcgbmd1b2kgbmF5IG11 YyBjYW0gY2FuIG51b2MgbmhhDQpHaXVhIGtpbmggdGhhbmg6IENhYyB0b2EsIGNhYyBQaHUNCkNh YyBCbywgQmFuLi4uZGFuIGNodSBwaGFwIHF1eWVuDQpNYSBkYW4gY2hpdSBub2kgb2FuIGtoaWVu DQpQaGEgbmhhLCBsYXkgZGF0IGR1bmcgcXV5ZW4gZXAgZGFuDQpUcmVuIGNoZSwgZHVvaSBkYXkg dmFuIGVtDQpMYW0gbmdvLCB2byBjYW0sIGRhbiBkZW4gdGhpZXQgdGhvaQ0KUXVhbmcgQW4gbmFv IGNvIHhhIHhvaQ0KR2l1YSBsb25nIEhhIE5vaSwgZ2l1YSBub2kgS2luaCBLeQ0KVG9hIFF1b2Mg aG9pIGtpYSBraWE6IGdhbiBsYW0NCk5odW5nIHhhIHZvaSwgY3VhIGNhbSB0dW9uZyBjYW8NCkJv LCBCYW4gbyB0aXQgdHJlbiBjYW8NCkJpZXQgZGFuIGtobyBkZW4gbXVjIG5hbyBjaG8gY2hhbmcN CkhvbiBkYXQgbWEgYmlldCBub2kgbmFuZw0KVGhpIG9uZyBEdSBhbiBoYW0gcmFuZyBjaGFuZyBj b24NCkRhbiBkYXUgdGhheSBtaW5oIGNvbiBsYSBnb2MNCkRlIGNheSBuaG8gcGhhcCBsdWF0IGNo byBjaGUNCkxvaSBkYW4gbmFvIGNvIGFpIG5naGUNCkJ1bmcgdGFpLCBiaXQgbWF0IG1vdCBwaGUg Y2Egcm9pDQpEYW4gY2hpIGJpZXQgbmhpbiB0cm9pIHRoYW4gdGhvDQpHaXVhIGNhYyB0b2EsIGNh YyBwaHUsIGNhYyBiYW4NCkRlbiB0cm9pIHNvaSB4ZXQgY2hvIGNoYW5nDQpWaSBkYW4gLSBkYW4g Y2h1LCBWaWV0IE5hbSBwaGFwIHF1eWVuDQoNCkRvbmcgdGhvIG5heSBndWkgbmllbSBtb25nIGRv aQ0KUXVhbiB0aGFuaCBsaWVtIHRodW9uZyB0b2kgZGFuIGxhbmgNCkxhbSBuZ28gdGhlIG1haSBz YW8gZGFuaA0KTG9uZyBkYW4gb2FuIGhhbiwgc2UgdGhhbmggYmFvIGdpb25nDQpRdWFuIHRoYW0g bmh1bmcgYmUgZG9uZywgY2FuaCBtYW5oDQpOaHVuZyBjb24gbmd1b2kgbWF1IGxhbmgsIHZvIGx1 b25nDQpRdWFuIG5hbyBjaGluaCB0cnVjIGNhbiB0cnVvbmcNClRodW9uZyBkYW4geGluIGhheSB0 aW0gZHVvbmcgZ2l1cCBkYW4NCk5odW5nIG5ndW9pIG5heSBtdWMgY2FtIGNhbg0KRGFuIGJhdSBz YW8gbm8gZGUgZGFuIHRoaWV0IHRob2kNCg0KQ2h1bmcgZGFuIHhpbiBjbyBkb2kgbG9pDQpIb2Eg bWF5IGRlbiBkdW9jIHRheSBuZ3VvaSB0aGFuaCBsaWVtDQpEdSBjaG8gY2hpIG1vdCBwaGFuIG5n aGluDQpNb2kgbW9uIG5nYXkgdGhhbmcsIG5pZW0gdGluIGhldCByb2kNCkNoaSBjb24gb2FuIGhh biBkYXkgdm9pDQoiUXVhbiBLZSIgYmlldCB0aHUsIGRhbiB0b2kgbWF0IG5oYQ0KR2l1YSBsb25n IEhhIE5vaSBkYXUgeGENCkNhYyBxdWFuIGNoaWVtIGRhdCwgcGhhIG5oYSBsdW9uZyBkYW4NClRp ZW4gZGVuIGJ1IGRhdCBnYW4gbWF0IHRyYW5nDQpOaGEgY2FjIHF1YW4gaG9hbmggdHJhbmcgbW9j IGxlbg0KRGFuIGtldSwgdHJlbiBkdW9pIGxhbmcgaW0NCkNoaW5oIHBodW9uZyB0aGFtIG5odW5n LCBwaGFpIHRpbSBkYXUgeGENClZhaSBiYSBjaHVjIHR5IG1vdCBuaGENCkN1YSCWIHRpZW4gdGll dSBkdSBkZW4gYmEgYm9uIGRvaQ0KQWkgY29pIHhpbiBkZW4gbWEgY29pDQpEYXQgZGFuIHRoYW5o IG1vdCBjbyBuZ29pIFF1YW4gS2UNCkNhIG5oYSBxdWFuIGhhIGhlIGhvbmcgZ2lvDQpLaGkgZGFu IGxhbmggbmdvaSBkbyB0cmFuZyB0YXkNCkhvaSBhaSwgYWkgdGhhdSBub2kgbmF5DQpDbyB4YSBk YXUgY2h1LCBvIG5nYXkgVGF5IEhvDQpEYW4gZ29jIGdhYyB0aHUgZG8gSGEgTm9pDQpEYXQgbmdo aW4gZG9pIGNvbiBub2kgbmdoaWVwIGNoYQ0KQ2FjaCB0b2EgUXVvYyBob2kga2hvbmcgeGENCkNh Y2ggRGluaCBUaHUgdHVvbmcgY2hpIGxhIHBodXQgZ2lheQ0KTWEgZGF5LCBkYW4gY2hpdSBkb2Eg ZGF5DQpEb2kgZG9uIGRpIGtoYXAsIGNoYW5nIGFpIG5nbyBuZ2FuZw0KTm9pIGxvbmcgZGFuIGRh dCBRdWFuZyBBbg0KIkhhbmggdHJpbmgga2hpZXUga2llbiBjYWMgcXVhbi4uLiBrZSBIbyIuDQoN CkNhYyBobyBkYW4gbGllbiBxdWFuIGR1IGFuIGtlIEhvIFRheSB0YWkgUXVhbmcgQW4NCg0KaHR0 cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAwOS0xMC0xNi10dWFuLWN1YS1tYXQtbWF0LWxvLWxh bmctdmEtaHktdm9uZw0KDQpIYSBOb2kgbmVuIGJhdSB0cnVjIHRpZXAgQmkgdGh1IA0KDQpodHRw Oi8vd3d3LnZpZXRuYW1uZXQudm4vY2hpbmh0cmkvMjAxMDA4L0JvLUNoaW5oLXRyaS1kb25nLXRp bmgtcGh1b25nLWFuLW5oYW4tc3UtY3VhLUhhLU5vaS05MzIxNzkvIFRUWFZOICAyMzoyMywgMjcv MDgvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogQ2FuIHRyZSBob2EgY2FwIHV5IGtob2EgdG9pLg0K IA0KaHR0cDovL2RkZG4uY29tLnZuLzIwMDgxMjE3MTE0NjIyOTUwY2F0ODQvZHUtYW4teGF5LWR1 bmctaGEtdGFuZy1reS10aHVhdC14dW5nLXF1YW5oLWhvLXRheS1kZW4tYnUtYmF0LW1pbmguaHRt IDE3LzEyLzIwMDggLTExOjU3IEFNDQoNCkhhIE5vaTogRHUgYW4gWGF5IGR1bmcgSGEgdGFuZyBr eSB0aHVhdCB4dW5nIHF1YW5oIEhvIFRheSAtIERlbiBidSBiYXQgbWluaCANCg0KLQ0KaHR0cDov L3ZpLndpa2lwZWRpYS5vcmcvd2lraS9QaCVFMSVCQSVBMW1fUXVhbmdfTmdoJUUxJUJCJThCDQoN CkhhIE5vaTogT25nIFBoYW0gUXVhbmcgTmdoaSAtIG5ndXllbiBQaG8gVHJ1b25nIGJhbiB0aHVv bmcgdHJ1YyBCYW4gVHUgdHVvbmcgVmFuIGhvYSBUcnVuZyB1b25nIA0KDQpodHRwOi8vdGllbmdu b2l0dWRvZGFuY2h1Lm9yZy9tb2R1bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNpZD04 MDcxDQoNClR1eWVuIGdpYW8gdHJ1bmcgdW9uZzogQmFuIHRpbiAibGEiICJIYWkgcXVhbiBUcnVu ZyBRdW9jIGRpZW4gdGFwIHRhaSBiaWVuIERvbmciIGR1b2MgZGFuZyB0cmVuIHRyYW5nIHdlYiBj dWEgRENTVk4gIA0KDQoobmF5IGRhIGJpIGdvIHh1b25nOyBodHRwOi8vd3d3LmNwdi5vcmcudm4v Y3B2L01vZHVsZXMvTmV3cy9OZXdzRGV0YWlsLmFzcHg/Y29faWQ9MzAxMjcmY25faWQ9MzU4NDYw I29zVFJQRzY4SlJpdl0NCg0KSGFpIHF1YW4gVHJ1bmcgUXVvYyBkaWVuIHRhcCB0YWkgYmllbiBE b25nDQoNCihEQ1NWTikgLSBOZ2F5IDE2LjguMjAwOSwgZG9pIHRhdSBobyB0b25nIGN1YSBUcnVu ZyBRdW9jIHNhdSBraGkgdGh1YyBoaWVuIG5oaWVtIHZ1IGhvIHRvbmcgDQpoYW5nIGhhaSBkYSBk aSB2YW8ga2h1IHZ1YyBiaWVuIERvbmcgdmEgdGllbiBoYW5oIGRpZW4gdGFwIHZvaSBraG9hIG11 YyB0aWVwIHRlIHRoZW8gZG9pIGhpbmggDQpoYW5nIG5nYW5nLiBUaGVvIHRpbmggdGhhbiBob2F0 IGRvbmcgImRpIG1vdCBidW9jLCBsdXllbiB0YXAgbW90IGJ1b2MsIG5naGllbiBjdXUgbW90IGJ1 b2MiLiANCkRvaSB0YXUgaG8gdG9uZyB0cmVuIGR1b25nIHF1YXkgdHJvIHZlIGNhbiBjdSBkYSB0 aWVuIGhhbmggY2FjIGN1b2MgZGllbiB0YXAgdmEgbmdoaWVuIGN1dSANCmRhdSBwaGFwIHF1YW4g c3UsIHRhcCB0cnVuZyB0aHUgbmdoaWVtIHZhIG5hbmcgY2FvIGtoYSBuYW5nIGNoaSBodXkgdGFj IGNoaWVuLCBraG9hbmcgY2FjaCANCmJhbyBkYW0sIHBob25nIHZlIGNvIGRvbmcuDQoNCk5nYXkg MTguOC4yMDA5LCBkb2kgdGF1IGhvIHRvbmcgZ29tIGhvbiAxMDAgc2kgcXVhbiB2YSBiaW5oIGxp bmggZGEgY2FwIGJlbiBiYWkgZGEgVmluaCBUaHUgDQooZGFvIENodSBUaGFwKSB0aHVvYyBxdWFu IGRhbyBUcnVvbmcgU2EgZGUgdGllbiBoYW5oIHRpZXAgdGUsIGhhdSBjYW4sIHRoYW0gcXVhbiBj byBzbyBjb25nIA0KdGFjIHZhIHNpbmggaG9hdCBjdWEgYmluaCBsaW5oIHRyZW4gZGFvLCBkb25n IHRob2kgZHVhIDIgdGF1IGNobyB0cnVjIHRoYW5nIGxhICJUaGFtIFF1eWVuIiANCnZhICJIb2Fu ZyBTb24iIGNhcCBkYW8sIHRpZW4gaGFuaCBkaWVuIHRhcCBjaG8gdHJ1YyB0aGFuZyBsZW4geHVv bmcgdmEgbHVjIGx1b25nIGRhYyBuaGllbSANCmRvIGJvIGR1b25nIGtob25nLg0KDQpQaGF0IGJp ZXUgdm9pIGJpbmggbGluaCB0cmVuIGRhbywgY2hpIGh1eSBkb2kgdGF1IGhvIHRvbmcgUGhvIFR1 IGxlbmggSGFtIGRvaSBOYW0gSGFpIG5oYW4gbWFuaDogDQoiQmF0IGtlIGxhIGJpbmggc2kgaG8g dG9uZyBoYW5nIGhheSBiaW5oIHNpIGJhbyB2ZSBkYW8sIGRldSBjbyBjaHVuZyBtb3Qgc3UgbWVu aCBkbyBsYSBiYW8gdmUgDQpsb2kgaWNoIHF1b2MgZ2lhLCBoeSB2b25nIGNhYyBiaW5oIHNpIHRh cCBsdXllbiBkZSBiYW8gdmUgdG90IGJpZW4gY3VvbmcgdHJlbiBiaWVuIHBoaWEgbmFtIFRvIHF1 b2MiLiANCg0KRGVuIDkgZ2lvIDMwJyBuZ2F5IDE4LjguMjAwOSwgZG9pIHRhdSBkYSByb2kgZGFv LCB0aWVwIHR1YyBoYW5oIHRyaW5oIHF1YXkgdHJvIHZlIGNhbiBjdS4NCg0KTmdheSAyNC44LjIw MDksIGx1YyBsdW9uZyBIYWkgcXVhbiBUcnVuZyBRdW9jIGJhdCBkYXUgZ2lhaSBkb2FuIGh1YW4g bHV5ZW4gbmhheSBkdSBrZW8gZGFpIDIgdGhhbmcsIA0KY2FjIGhvYXQgZG9uZyBodWFuIGx1eWVu IG5heSBkdW9jIGJhdCBkYXUgdHUgbW90IHNhbiBiYXkgbyBxdWFuIGRhbyBIb2FuZyBTYS4gRGF5 IGR1b2MgY29pIGxhIG1vdCBob2F0IGRvbmcgDQp0YXAgZHVvdCBraWNoIGJhbiBkbyBibyBiYW5n IGR1b25nIGtob25nIGN1YSBIYWkgcXVhbiBUcnVuZyBRdW9jLiBNb3QgdHJvbmcgbmh1bmcgbm9p IGR1bmcgbW9pIGRhbmcgbHV1IHkgDQp0cm9uZyBjYWMgaG9hdCBkb25nIGh1YW4gbHV5ZW4gcXVh biBzdSBuYW0gMjAwOSBsYSBob2F0IGRvbmcgaHVhbiBsdXllbiBuaGF5IGR1IHR1IG1heSBiYXkg dHJ1YyB0aGFuZyB2YSANCnR1IG1vdCBzYW4gYmF5IG8gcXVhbiBkYW8gSG9hbmcgU2EuDQoNClRo ZW8gYmFvIEhvYW4gQ2F1LCBQaHVvbmcgSG9hbmcgKFRydW5nIFF1b2MpIA0KDQpodHRwOi8vdGll bmdub2l0dWRvZGFuY2h1Lm9yZy9tb2R1bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNp ZD04MDcxDQoNClRpbiB0aGkgbGEsIHN1IGhlbiBoYSB0aGkgcXVlbiANCg0KQmFvIGRpZW4gdHUg RGFuZyBDb25nIHNhbiBWaWV0IE5hbSBkdWEgdGluIFRydW5nIFF1b2MgdGFwIHRyYW4gdGFpIGJp ZW4gRG9uZyBsYSAiYmFvIHZlIGxvaSBpY2ggcXVvYyBnaWEiIGN1YSBUcnVuZyBRdW9jIQ0KDQpU cnVvYyBwaGFuIHVuZyBtYW5oIG1lIGN1YSBjb25nIGRhbiBtYW5nLCBiYWkgbmF5IGRhIGR1b2Mg bGFuZyBsZSBydXQgeHVvbmcuIE5odSB0aGUgbGEgeG9uZyB1PyANCg0KRGFuaCByYW5nIGRheSBj aGkgbGEgbW90IHRpbiBkaWNoIHRoZW8gYmFvIGNoaSBUcnVuZyBRdW9jLCBuaHVuZyBuZ3VvaSB4 dSBseSBiYWkgdm8gY28gDQpjb24gZHVuZyB0cmVuIGxhcCB0cnVvbmcgY3VhIFZpZXQgTmFtIGhh eSBraG9uZywga2hpIGRhbmcgbmd1eWVuIG1vdCB0aW4gbmh1IHRoZSBtYSBraG9uZyBjbyBtb3Qg ZG9uZyBwaGFuIHVuZz8gDQoNClNhaSBzb3Qga2hvbmcgY28gbmdoaWEgbGEga2hvbmcgY28gbG9p LCB0aGFtIGNoaSB0cm9uZyBuaHVuZyB0cnVvbmcgaG9wIHRheSB0cm9pIG5odSANCnRoZSBuYXks IHBoYWkgeGVtIGxhIGNvIHRvaS4gVHJvbmcga2hpIGRvIG5oYW4gZGFuIGtob25nIGxhIGdpIGhh bmcgbG9hdCB2dSBiYXQgYm8gZ2FuIA0KZGF5IGRvaSB2b2kgbmh1bmcgdGhhbmggbmllbiB5ZXUg bnVvYyBjYW4gInRvaSIgeHVvbmcgZHVvbmcgYmlldSB0aW5oIHBoYW4gZG9pIFRydW5nIFF1b2Mg DQpjdW9uZyBjaGllbSBIb2FuZyBTYSBoYXkgbWFjIGFvIHRodW4gY28gaW4gaGFuZyBjaHUgIkhv YW5nIFNhIC0gVHJ1b25nIFNhIGxhIGN1YSBWaWV0IE5hbSIuIA0KDQpOaHVuZyB2dSBkdWEgdGlu IG5odSB0aGUgY28gbG9pIGNobyBhaT8gTmh1bmcgdnUgYmF0IGJvIG5odSB2YXkgY28gbG9pIGNo byBhaT8gVmEgbW90IGNoaW5oIHF1eWVuIGN1IGdpdSBtb3QgY2FjaCANCnVuZyB4dSBuaHUgdmF5 LCBsYSBjaGluaCBxdXllbiBjdWEgYWk/IEhheSBzb20gdGluaCB0YW8gbmhpbiBsYWkgbWluaCB0 cnVvYyBraGkgcXVhIG11b24uIA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93aWtpL1BoJUUx JUJBJUExbV9RdWFuZ19OZ2glRTElQkIlOEINCg0KUGhhbSBRdWFuZyBOZ2hpIJYgbmd1eWVuIHRo dSBreSBjdWEgRGFvIER1eSBUdW5nIChibyBjdWEgRGFvIER1eSBRdWF0KSANCg0KaHR0cDovL3Rp ZW5nbm9pdHVkb2RhbmNodS5vcmcvbW9kdWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9cHJpbnQmc2lk PTgxODcgSGEgUGhhbiAwMS8xMC8yMDA5DQoNCkJpZW4gaG8ga2lldSBEYW8gRHV5IFF1YXQgDQog DQpTYXUgbmhpZXUgbmdheSBpbSBob2kgbGFuZyB0aWVuZyB0aGkgc2FuZyBuYXkgMzAvOSwgbmhp ZXUgdG8gYmFvIHRyb25nIG51b2MgY3VuZyBkYSANCmRhbmcgdGluIEJhbiBUdXllbiBnaWFvIFRy dW5nIHVvbmcga3kgbHVhdCBraGllbiB0cmFjaCBUb25nIGJpZW4gdGFwIGJhbyBEaWVuIHR1IERh bmcgDQpDb25nIHNhbiBWaWV0IE5hbSBEYW8gRHV5IFF1YXQgdmUgdnUgZGFuZyBiYW4gdGluICJI YWkgcXVhbiBUcnVuZyBRdW9jIGRpZW4gdGFwIHRhaSBiaWVuIERvbmciLiANCkR1IGNodWEgInNv bmcgcGhhbmciIGxhbSBuaHVuZyBkb25nIHRoYWkgbmF5IGN1bmcgY2hvIHRoYXkgZHUgbHVhbiAo bmhhdCBsYSBwaGFuIHVuZyANCmN1YSBjb25nIGRhbiBtYW5nKSBkYSBkdW9jICJkZW0geGlhIi4g DQpUdXkgbmhpZW4gbG9pIGJpZW4gaG8gY3VhIG9uZyBRdWF0IHRyZW4gYmFvIFR1b2kgdHJlIGRh bmcga2VtIHRpbiBreSBsdWF0IHRoaSB0aGF0IGxhIGtob2kgaGFpLi4uDQoNCk9uZyBRdWF0IG5v aSBkYXkgbGEgbW90IHRhaSBuYW4gbmdoZSBuZ2hpZXAgdmEgbG9pIGNoaW5oIHRodW9jIHZlICJj YXUgZGFuaCBtYXkiIGRhIA0KcXVlbiB0aGVtIHZhbyBjaHUgIm5nYW5nIG5ndW9jIiBkYSBkdW9j IGJpZW4gdGFwIHZpZW4gdmlldCBiZW4gbmdvYWkgbGUgZGUgdGhhbmggDQoiUGhvIHR1IGxlbmgg bmdhbmcgbmd1b2MgdHV5ZW4gYm8iIT8gTmdvYWkgcmEga2hvbmcgdGhheSBvbmcgUXVhdCBub2kg dmUgbG9pIG5hbyBraGFjIA0KaGF5IHRyYWNoIG5oaWVtIGN1IHRoZSBjdWEgY2EgbmhhbiBtaW5o LiBRdWEgbmdhYyBuaGllbiB0b2kgdGltIGRvYyBsYWkgYmFuIHRpbiBuYXkgDQpkYW5nIHRyZW4g YmFvIERpZW4gdHUgRGFuZyBDb25nIHNhbiBWaWV0IE5hbSBkdSBkYSBkdW9jIGdvIGJvIG5odW5n IHJhdCBuaGlldSB0cmFuZyANCndlYiBraGFjIGRhIGNodXAgbGFpIG5ndXllbiBiYW4uIFRyb25n IGJhbiB0aW4gZ2hpIHJvICJQaG8gVHUgbGVuaCBIYW0gZG9pIE5hbSBIYWkgDQpuaGFuIG1hbmgi IGNodSBob2FuIHRvYW4ga2hvbmcgY28gY2F1ICJQaG8gVHUgbGVuaCB0dXllbiBibyIgbmh1IG9u ZyBRdWF0IGJpZW4gaG8uIA0KTGEgbW90IG5ndW9pIHNvbmcgYmFuZyBuZ2hlIHZpZXQgbGFjaCwg dG9pIGNodWEgdHVuZyB0aGF5IGFpIGR1bmcgY2h1ICJuZ2FuZyBuZ3VvYyIgDQp0cm9uZyBjYXUg dmFuICJQaG8gVHUgbGVuaCBuZ2FuZyBuZ3VvYyBuaGFuIG1hbmgiLiAoSGF5IG9uZyBRdWF0IHZh IGJpZW4gdGFwIHZpZW4gY3VhIA0Kb25nIGNoaSB0aGFvIGNhdSB2YW4gVHJ1bmcgUXVvYyBtYSBj aHVhIGJpZXQgdmlldCBjYXUgdmFuIFZpZXQgTmFtPykgSG9uIG51YSBraGkgZGljaCANCnRodWF0 LCB0YWMgZ2lhIGNoaSBkaWNoIHRob2F0IHkgY2hvIGJhaSBoYXkgaG9uIGNodSBjaGFuZyBtYXkg YWkgdGhlbSB0dSBraWV1IG5heS4NCkNvbiBuZXUgeGV0IHRoYXkgdmkgcGhhbSBjYWMgcXV5IGRp bmgsIGFuaCBodW9uZyBkZW4gYW4gbmluaCBxdW9jIGdpYSBoYXkgdGh1YW4gcGhvbmcgDQpteSB0 dWMgdGhpIGNoaSB0cmljaCBkb2FuIHJvaSB2aWV0IHRoYW5oIG1vdCBiYWkga2hhYywgYmFjIGJv IGhvYWMgcGhlIHBoYW4gY2h1IHJhdCANCmhpZW0gYWkgbGFpIGxhbSBjaHV5ZW4gImJlIG5ndXll biBjb24iIG5odSBiYW4gdGluIHRyZW4gZGEgbGFtLiANCkRpZW4gZ2lhaSBkYWkgZG9uZyBuaHUg dmF5IGRlIHRoYXkgY2FjaCBkbyBsb2kgY2hvIG5oYW4gdmllbiB2YSBiaWVuIGhvIGNobyBzYWkg cGhhbSBjdWEgb25nIFF1YXQga2hvIGNoYXAgbmhhbiBkdW9jLiANCg0KQ2F1IGNodXllbiBuYXkg bGFpIHRoZW0gbW90IG1pbmggY2h1bmcgY2hvIHRob2kgImNvbmcgdm8gdmFvLCB0b2kgZG8gY2hv IG5ndW9pIGtoYWMiIGN1YSBuaGlldSBxdWFuIGNodWMgVmlldCBOYW0uDQoNCk5nYXkgY2Ega2hp IGFpIGRvIGNoYXAgbmhhbiBjaGkgc2FpIHZpIHRoaWV1IGNodSAibmdhbmcgbmd1b2MiIHRoaSBj dW5nIGtob25nIGtobyB0aW0gcmEgDQpiYW4gdGluIGRhIGxhcCBkaSBsYXAgbGFpIHR1IFRydW9u ZyBTYSB2YSBIb2FuZyBTYSwgaGFpIHF1YW4gZGFvIG1hdSB0aGl0IGN1YSBWaWV0IE5hbSANCm5o dW5nIHRoZW8gdGluaCB0aGFuIGN1YSBiYW4gdGluIHRoaSBkYW5nIHRodW9jIFRydW5nIFF1b2Mu IENhY2ggZGljaCB2YSBjaG8gZGFuZyBiYW4gDQp0aW4gdHJlbiBraG9uZyBjaGkga2hpZW4gbmd1 b2kgVmlldCB5ZXUgbnVvYyBnaWFuIGR1LCBjb25nIHBoYW4gbWEgY29uIGNvIGNvIGRlIGNobyBu aHVuZyANCiJuZ3VvaSBsYSIgaGEgaGUgdmkgZGEgY28gbW90IGNvIHF1YW4gYmFvIGNoaSBjaGlu aCB0aG9uZyAibG8gZGFuaCBtYXkiIGNvbmcgbmhhbiB2aWVjIA0KbWF0IGNodSBxdXllbi4gRG9j IGRpIGRvYyBsYWkgYmFuIHRpbiwgbmV1IGtob25nIGNvIG9jIHR1b25nIHR1b25nIHBob25nIHBo dSB2YSB0aW5oIA0KdGhhbiAiY2FuaCBnaWFjIGNhbyIgbmh1IG9uZyBRdWF0IHRoaSBraG9uZyB0 YWkgbmFvIHRpbSByYSB0cm9uZyBkbyBjYWkgdGluaCB0aGFuIA0KImNhbmggYmFvIG1vdCBob2F0 IGRvbmcsIG1vdCBtdXUgbW8uLi4iIG5odSBsb2kgYmllbiBobyBjdWEgb25nIFF1YXQuIFRvaSB0 aW4gcmFuZyANCmtoaSBkb2MgbGFpIGJhbiB0aW4gbmF5LCBkYWkgZGEgc28gZGV1IG5oYW4gcmEg bm9pIGR1bmcgYmFuIHRpbiBjaGkgZGllbiB0YSBsYWkgbmh1bmcgDQpob2F0IGRvbmcgY3VhIEhh aSBxdWFuIFRydW5nIFF1b2MgdHJlbiBxdWFuIGRhbyBIb2FuZyBTYSB2YSBUcnVvbmcgU2EgKG1h IGJhbiB0aW4gbWFjIA0KbmhpZW4gdGh1YSBuaGFuIGxhIGN1YSBUcnVuZyBRdW9jKS4NCg0KT25n IFF1YXQgZGEgYmkga2hpZW4gdHJhY2ggbmh1bmcgY2FjaCBiaWVuIGhvIGNobyBzYWkgcGhhbSBj dWEgb25nIHJhdCBkZSBsYW0gbmd1b2kgDQpkb2MgbmdoaSByYW5nIHJvaSBzZSBjb24gbmh1bmcg ImNhdSBkYW5oIG1heSIgbGFpICJxdWVuIG1heSBjaHUgYmllbiB0YXAiIGhheSAicXVlbiANCmhv aSBsYWkiIGRlIGxhbSAiaGluaCBuaGFuIHRoZSBtYW5nIiBjaG8gbmh1bmcgc2FpIHNvdCBuaHVj IHF1b2MgdGhlIHR1b25nIHR1LiBMZSByYSANCmxhIG1vdCBuZ3VvaSBsdW9uIGRheSBkbyBuZ3Vv aSBraGFjIHZlIHR1IHR1b25nIG5heSwgeSBjaGkgbm8gaGF5IHRpbmggdGhhbiBraWEgdGhpIA0K b25nIFF1YXQgbmVuIGNhbiBkYW0gdmEgZHVuZyBjYW0gaG9uLiBDaHUgY29uIGNhaSB0cm8gZG8g bG9pIGNobyBjYXAgZHVvaSB2YSBnYW4gY2hvIA0KdHUgInRhaSBuYW4gbmdoZSBuZ2hpZXAiIHRo aSByYXQga2hvIG5naGUgImxvdCBsbyB0YWkiIHZpIHRybyBheSBuaGlldSBxdWFuIGNodWMgZGEg DQpkaWVuIGRpIGRpZW4gbGFpLCB4dWEgcXVhIHJvaSwgdm9pIGxhaSBjdW5nIGNoaSBsb2UgZHVv YyBuaHVuZyBuZ3VvaSBraG9uZyB0aGljaCAidHJ1bmcgbmdvbiBuZ2hpY2ggbmhpIiANCg0KaHR0 cDovL3d3dy5jYW5oLWVuLmRlL3RpbnR1Yy8xMjU4LXRoLW5nLWNhLTItbmhhLXZuLW5ndXluLWNo aW5oLWEtYnVpLW1pbmgtcXVjLmh0bWwgU3VuZGF5LCBKYW4gMjR0aCAgDQoNClRodSBuZ28gY3Vh IG5oYSB2YW4gTmd1eWVuIENoaW5oIGd1aSBvbmcgQ2h1IHRpY2ggSG9pIE5oYSBiYW8gVmlldCBO YW0gKERlIG5naGkgdHJhIGxvaSBrZXQgcXVhIGdpYWkgcXV5ZXQgS2llbiBuZ2hpIG5nYXkgNS8x MC8yMDA5KSANCg0KTmhhIFRyYW5nIG5nYXkgMDQgdGhhbmcgMTEgbmFtIDIwMDkNCg0KS2luaCBn dWk6IE9ORyBDSFUgVElDSCBIT0kgTkhBIEJBTyBWSUVUIE5BTQ0KDQpDYW4gY3Uga2hvYW4gNiwg RGlldSAxMSBjdWEgRGlldSBsZSBIb2kgTmhhIGJhbyBWaWV0IE5hbSAoc3VhIGRvaSksIG5nYXkg MDUvMTAvMjAwOSB0b2kgZGEga2luaCBndWkgdG9pIA0KQmFuIENoYXAgaGFuaCBIb2kgTmhhIGJh byBWaWV0IE5hbSBiYW4gS2llbiBuZ2hpLCB5ZXUgY2F1IGRpbmggY2hpIGNodWMgZGFuaCBVeSB2 aWVuIEJDSCBIb2kgTmhhIGJhbyBWaWV0IE5hbSANCnZhIHhvYSB0ZW4gb25nIERhbyBEdXkgUXVh dCB0cm9uZyBkYW5oIHNhY2ggaG9pIHZpZW4gSG9pIE5oYSBiYW8gVmlldCBOYW0uIA0KDQpCYW4g S2llbiBuZ2hpIG5heSB0b2kgZGEgZ3VpIGJhbyBkYW0gcXVhIGJ1dSBkaWVuIHRvaSBRdXkgQmFu IENoYXAgaGFuaCB2YSBndWkgdmFvIGVtYWlsOiBobmJ2aWV0bmFtQGdtYWlsLmNvbSANCkRpYSBj aGkgdGh1IGRpZW4gdHUgbmF5IGRhIGR1b2MgYmFvIHZlIGtob2kgY2FjIGNodW9uZyB0cmluaCB0 aHUgcmFjLCBiYW4gY2FuIGJhdCBKYXZhU2NyaXB0IGRlIHhlbSBubyAoY3VhIEhvaSBOQlZOKS4g DQpOZ2F5IHNhdSBkbyBuZ3VvaSBuaGFuIGxhIG9uZyBOZ3V5ZW4gUXVhbmcgVGh1YW4gZGEgbmhh biBsYWkgdmFvIGRpYSBjaGkgZW1haWwgY3VhIHRvaSBsYSBkYSBuaGFuIGR1b2MuIFZpIHZheSwg DQpiYW4gS2llbiBuZ2hpIG5heSBjaGFjIGNoYW4ga2hvbmcgdGhlIHRoYXQgbGFjLg0KDQpUaHVh IFF1eSBPbmcsDQoNClRyb25nIGJhbiBLaWVuIG5naGkgbmdheSA1LzEwLzIwMDksIHRvaSBkYSBj aGkgcm86IEhvaSB2aWVuIERhbyBEdXkgUXVhdCBoaWVuIGxhIFV5IHZpZW4gQkNIIEhvaSBOaGEg QmFvIFZpZXQgTmFtIA0KZGEgbG9pIGR1bmcgcXV5ZW4gaGFuIFRCVCwgY28geSBjaG8gZGFuZyBi YW4gdGluICJIYWkgcXVhbiBUUSBkaWVuIHRhcCB0YWkgYmllbiBEb25nIiB0cmVuIGJhbyBEaWVu IHR1IERhbmcgQ1MgVmlldCBOYW0gDQpuZ2F5IDA4LzkvMjAwOS4gRGF5IGxhIHNhaSBwaGFtIGN1 YyBreSBuZ2hpZW0gdHJvbmcsIG1hbmcgdGluaCBjaHUgZG9uZywgY28geSwgbmdheSB0YWkgdGhv aSBkaWVtIG51b2MgdGEgdnVhIGRlIHRyaW5oIA0KaG8gc28gdmUgY2h1IHF1eWVuIGxhbmggaGFp LCB0aGVtIGx1YyBkaWEgZ3VpIExIUSB2YSB0cm9uZyBraGkgVFEgZGFuZyB0aWNoIGN1YyBtdW9u IGtoYW5nIGRpbmggY2h1IHF1eWVuIHRhaSBiaWVuIERvbmcgDQpkdW9pIG1vaSBoaW5oIHRodWMu IERhbyBkdWMgY2FvIG5oYXQgdmEgdHJlbiBoZXQgY3VhIG5ndW9pIGxhbSBiYW8gVmlldCBOYW0s IGxhIHR1eWV0IGRvaSB0cnVuZyB0aGFuaCB2b2kgVG8gUXVvYyB2YSBEYW4gdG9jLiANCg0KSG9p IHZpZW4gRGFvIER1eSBRdWF0IGRhIGNvIHkgdmkgcGhhbSBraG9hbiAxLCBEaWV1IDEwIGN1YSBE aWV1IGxlIEhvaSBOaGEgQmFvIFZpZXQgTmFtLCBxdXkgZGluaCBIb2kgdmllbiBwaGFpOiANCiJU cnVuZyB0aGFuaCB2b2kgVG8gUXVvYyBWTiwgdGhvbmcgcXVhIGhvYXQgZG9uZyBuZ2hpZXAgdnUg Y3VhIG1pbmgsIHBodWMgdnUgc3UgbmdoaWVwIHhheSBkdW5nIHZhIGJhbyB2ZSBUbyBRdW9jIi4g DQpEb25nIHRob2kgSG9pIHZpZW4gRGFvIER1eSBRdWF0IGNvbiB2aSBwaGFtIGRhYyBiaWV0IG5n aGllbSB0cm9uZyBraG9hbiAxLCBEaWV1IDYgTHVhdCBCYW8gY2hpIChzdWEgZG9pKSBxdXkgZGlu aCByYW5nLCANCmJhbyBjaGkgcGhhaTogIlRob25nIHRpbiB0cnVuZyB0aHVjIHZlIHRpbmggaGlu aCB0cm9uZyBudW9jIHZhIHRoZSBnaW9pIHBodSBob3Agdm9pIGxvaSBpY2ggY3VhIGRhdCBudW9j IHZhIG5oYW4gZGFuIi4NCg0KTmh1bmcgZGVuIG5heSAoNC8xMS8yMDA5KSBkYSBkdW5nIDMwIG5n YXkgKHRoYW5nIDEwLzA5IGNvIDMxIG5nYXkpLCB0b2kgdmFuIGNodWEgbmhhbiBkdW9jIGtldCBx dWEgZ2lhaSBxdXlldCBjdWEgQkNIIA0KZG9pIHZvaSBub2kgZHVuZyBraWVuIG5naGkgY3VhIHRv aS4gVmkgdmF5LCB0b2kga2luaCBkZSBuZ2hpIFF1eSBPbmcgdHJhIGxvaSBjaG8gdG9pIGR1b2Mg cm86DQoNCjEtIFNhaSBwaGFtIGN1YSBvbmcgRGFvIER1eSBRdWF0IGxhIGtob25nIHRoZSBiaWVu IG1pbmgsIGRhIGJpIEJvIFRUVFQgdmEgY28gcXVhbiBjaHUgcXVhbiB4dSBseSAobWFjIGR1IHZv aSBoaW5oIHRodWMgDQpxdWEgbmhlIHZhIGJhdCBjb25nKS4gVmF5IHZpZWMgZGluaCBjaGkgY2h1 YyBkYW5oIFV5IHZpZW4gQkNIIEhvaSBOQlZOIHZhIHhvYSB0ZW4gb25nIG5heSB0cm9uZyBkYW5o IHNhY2ggaG9pIHZpZW4gSG9pIE5CVk4sIA0KZGEgZHVvYyBCQ0ggSG9pIE5CVk4gdGllbiBoYW5o IGRlbiBkYXU/DQoNCjItIFBoYWkgY2hhbmcgdmkgY28gIm5oYW4gdGhhbiB0b3QiIGhvYWMgYmF0 IGt5IGx5IGRvIHR1eSB0aWVuIG5hbyBraGFjLCBtYSBvbmcgRGFvIER1eSBRdWF0IGR1b2MgQkNI IG1pZW4gdHJ1IHhlbSB4ZXQgDQp2aWVjIG9uZyB0YSBkYSB2aSBwaGFtIG5naGllbSB0cm9uZyBE aWV1IGxlIGN1YSBIb2kgTkJWTj8gTmV1IGtob25nLCBzYWkgcGhhbSBjdWEgb25nIHRhIGRhIHJv IG5odSBiYW4gbmdheSB0aGUsIHRhaSBzYW8gDQp2aWVjIHh1IGx5IGxhaSBxdWEgY2hhbSB0cmUg bmh1IHZheT8NCg0KMy0gRGVuIGtoaSBuYW8gdGhpIGJhbiB0aGFuIHRvaSB2YSBjb25nIGx1YW4g Y2EgbnVvYywga2UgY2Ega2lldSBiYW8gdGEgbyBudW9jIG5nb2FpIGRhbmcgcXVhbiB0YW0gZGVu IHZ1IHZpZWMgc2FpIHBoYW0gDQpuZ2hpZW0gdHJvbmcgY3VhIG9uZyBEYW8gRHV5IFF1YXQsIGR1 b2MgQkNIIEhvaSBOQlZOIHRob25nIHRpbiBkYXkgZHUgdmUgdmllYyBnaWFpIHF1eWV0IGJhbiBL aWVuIG5naGkgbmdheSAwNS8xMC8yMDA5IG5vaSB0cmVuPyANCg0KQ3VvaSB0aHUsIHhpbiBkdW9j IHBoZXAgbmhhYyBsYWkgdm9pIFF1eSBPbmcgcmFuZzogSG9pIE5oYSBCYW8gVmlldCBOYW0sIGxh IGhvaSBuZ2hlIG5naGllcCBnb20gbmh1bmcgbmd1b2kgY2FtIGJ1dCwgDQpxdWEgY2FjIHRhYyBw aGFtIGJhbyBjaGksIHRoZSBoaWVuIHRyYWNoIG5oaWVtIGNhbyBuaGF0IHZvaSBsb2kgaWNoIGN1 YSBUbyBRdW9jIHZhIE5oYW4gZGFuLiBUcm9uZyBoYW5nIG5ndSBjdWEgSG9pLCANCmtob25nIHRo ZSBjbyBtb3QgVXkgdmllbiBCQ0ggdmEgbW90IGhvaSB2aWVuIGNvIG5odW5nIHNhaSBwaGFtIGNv IHksIHJhdCBuZ3V5IGhhaSBjaG8gYW4gbmluaCBxdW9jIGdpYSBuaHUgb25nIERhbyBEdXkgUXVh dC4NCg0KVG9pIHRpbiByYW5nLCB2b2kgbGEgdGh1IG5nbyBuYXksIHRvaSBzZSBzb20gbmhhbiBk dW9jIHBodWMgZGFwIGN1YSBRdXkgT25nIENodSB0aWNoIEhvaSBOQlZOLiANClhpbiBndWkgdmUg ZGlhIGNoaSBWYW4gcGhvbmcgQmFvIFZhbiBuZ2hlIHRhaSBOYW0gVHJ1bmcgYm8gMjkyIGR1b25n IDIvNCBOaGEgVHJhbmcuDQoNClRyYW4gdHJvbmcsDQpOaGEgVHJhbmcgbmdheSAwNCB0aGFuZyAx MSBuYW0gMjAwOQ0KTmd1eWVuIFZhbiBDaGluaCAoZGEga3kgdGVuKQ0KTm9pIG5oYW46DQouTmh1 IHRyZW4NCi5DYWMgY28gcXVhbiBiYW8gY2hpIA0KDQpodHRwOi8vdmkud2lraXBlZGlhLm9yZy93 aWtpL1BoJUUxJUJBJUExbV9RdWFuZ19OZ2glRTElQkIlOEINCg0KT25nIFBoYW0gUXVhbmcgTmdo aSAtIG5ndXllbiBCbyB0cnVvbmcgYm8gVmFuIGhvYSBUaG9uZyB0aW4gDQoNCmh0dHA6Ly9teS5v cGVyYS5jb20vTmd1eWVuY2hpYmVuYm9tYXR0aGF0L2Jsb2cvc2hvdy5kbWwvMzE5MDk0OSBNb25k YXksIDI3LiBBcHJpbCAyMDA5LCAxMzowMzoyMw0KDQpWYW4gaG9hIC0gVGhvbmcgdGluOiBOaGFu IHZhdCBkYW8gdGFjICJuZ2hpZW4gY3V1IGNvbmcgY2hpZW5nIiB0aHUgMiBzYXUgTmd1eWVuIENo aSBCZW4gZGEgZHVvYyANCmNoaSBkaWNoIGRhbmguIERvIGNoaW5oIGxhIG9uZyBQaGFtIFF1YW5n IE5naGksIFV5IHZpZW4gQm8gQ2hpbmggdHJpLCBuZ3V5ZW4gDQpCbyB0cnVvbmcgQm8gVmFuIGhv YSCWVGhvbmcgdGluIChuYXkgbGEgQm8gVmFuIGhvYS0gVGhlIHRoYW8gdmEgRHUgbGljaCksIA0K aGllbiBsYSBCaSB0aHUgVGhhbmggdXkgVGh1IGRvIEhhIE5vaS4gDQooYW5oIGNodXAgdGFpIGxp ZXUgbWluaCBob2EgliBrZW0gdGhlbzsgeGluIHhlbSB0aGVtIGNoaSB0aWV0IG8gcGhhbiB0aWVw IHRoZW8pIA0KDQpodHRwOi8vdHVhbnZpZXRuYW0ubmV0LzIwMDktMTItMDUtbmh1Yy1uaG9pLWRh by12YW4teHUtbHktdGhlLW5hby0gMDUvMTIvMjAwOSAwNzozMCBHTVQrNyBQaHVvbmcgS2hhbmgN Cg0KVmFuIGhvYSAtIFRob25nIHRpbjogTmh1YyBuaG9pIGRhbyB2YW4gDQoNCkNvIGxlIGNodWEg YmFvIGdpbywgaGllbiB0dW9uZyBkYW8gdmFuLCBkYW8gbmhhYywgZGFvIHRyYW5oLCBkYW8gYmFu IGRpY2gsIGRhbyANCmNvbmcgdHJpbmggbmdoaWVuIGN1dSBsYWkgcGhvIGJpZW4gbmh1IG5odW5n IG5hbSBnYW4gZGF5LiANClJpZW5nIGN1b24gc2FjaCBCYW4gcGhpbSB2YSBDYXkgYnVhIGN1YSBO Z3V5ZW4gSG9hIChOWEIuIFZhbiBob2MsIDIwMDcpIGRhIGNoaSANCnJhIGR1b2MgNiB0cnVvbmcg aG9wIGRhbyB2YW4sIGRhbyBjb25nIHRyaW5oIG5naGllbiBjdXUgZGUgbGFtIGdpYW8gdHJpbmgs IGNodXllbiBraGFvLg0KTmh1bmcgdGhvIGRhbyBkdW9jIGNoaSBtYXQsIG5ldSB0ZW4gdmFuIG8g ZGF5IHRvYW4gY2FjIGRhbmcgYmFjIGRhbmggZ2lhIHRyb25nIGwNCmFuZyBjaHUgbmdoaWEuIE5h byBsYSBQR1MuVFMuIFROVCAoZGFvIGN1YSBHUyBUcmFuIFF1b2MgVnVvbmcpLCBUUy4gSFhMIChk YW8gY3VhIA0KVFMgVHJhbiBIdXUgU29uKSwgVFMuIFRORCAoZGFvIGN1YSBQR1MuVFMgVnUgVHVh biBBbmgpLCBQR1MuVFMgTkNCIChkYW8gY3VhIA0KR1MuVFNLSCBUbyBOZ29jIFRoYW5oKSAoKiks IG5oYSB2YW4gVk5UIChkYW8gY3VhIFBHUy5UUyBUcmFuIE5nb2MgVnVvbmcpLCANClRTLiBDVFRU IHZhIFRoYWMgc2kgVFRBIChkYW8gY3VhIFBHUy5UUyBUcmFuIE5nb2MgVGhlbSkuIFJvaSBHUy4g VFMgUEwgZGFvIGN1YSBHUyBUcnVvbmcgTGFwIFZhbiAoVHJ1bmcgUXVvYykuLi4NCg0KWygqKSBQ R1MuVFMgTmd1eWVuIENoaSBCZW4sIFZpZW4gdHJ1b25nIFZpZW4gVmFuIGhvYSBuZ2hlIHRodWF0 IFZpZXQgTmFtIGRhbyB2YW4gDQpjdWEgR1MuVFNLSCBUbyBOZ29jIFRoYW5oOyB4aW4geGVtIGNo aSB0aWV0IHRoZW0gbyBwaGFuIHBodSBsdWNdDQoNCi4uLlNhY2ggZGFvIHZhbiB2YW4gZGUgdHJl biBnaWEsIGx1dSB0cm9uZyBjYWMgdGh1IHZpZW4sIGJhbiBuZ29haSBxdWF5LCBkYXkgdHJvbmcg DQpjYWMgdHJ1b25nIGRhaSBob2MgdmEgY2FjIGNvIHNvIGRhbyB0YW8gc2F1IGRhaSBob2MgdHJl biBraGFwIGNhIG51b2MuLi4gbWEgY2FjIA0KY28gcXVhbiBjbyB0cmFjaCBuaGllbSBraG9uZyBo ZSBjbyBkb25nIHRoYWkgZ2kuDQpEaWV1IG5heSBkYW4gZGVuIG1vdCBuZ3V5IGhhaSBraGFjIGto b25nIGtlbSBwaGFuIHF1YW4gdHJvbmcgbGEgc3UgdHV0IGhhdSBjdWEgbmVuIA0KaG9jIHRodWF0 LCBhbmggaHVvbmcgZGVuIGhvYyBwaG9uZyB2YSBuZW4gdmFuIGhvYSBudW9jIG5oYS4gVGhhbSBj aGkgY2h1bmcgY29uIGxhbSANCmhvbmcgY2EgbW90IHRoZSBoZSwgbGFtIG1hdCB1eSB0aW4gY3Vh IGtob2EgaG9jIG51b2MgbmhhIHRydW9jIGJhbiBiZSBxdW9jIHRlIGtoaSANCm5odW5nIHZ1IHZp ZWMgbmh1IHZheSBkdW9jIHBoYW5oIHBodWkgcGhhdCBoaWVuLg0KQ28gdmUgbmh1IG5odW5nIGNv bmcgdHJpbmggZGFvIHZhbiBkYSBnb3AgcGhhbiBkdWEgY2FjIFRTIHRoYW5oIFBHUywgY2FjIFBH UyB0aGFuaCANCnZpZW4gdHJ1b25nLCB0aGFuaCBuaHVuZyBuaGEgcXVhbiBseS4gQmFuZyBjaHVu ZyBsYSBzYXUga2hpIGJpIHBoYXQgaGllbiBkYW8gdmFuLCANCm5odW5nIHF1YW4gY2h1YywgZGFu ZyBsYW0gY29uZyB0YWMgZ2lhbmcgZGF5LCBxdWFuIGx5IHZhbiBob2EsIGtob2EgaG9jIG8gY2Fj IHRydW9uZyANCmRhaSBob2MsIHZpZW4gbmdoaWVuIGN1dSwgc28gVkgtVFQmREwgZGV1IGRhbmcg dGFpIHZpLCB0aGFtIGNoaSBtb3Qgc28gdmkgdmFuIHRoYW5nIHRpZW4gdHJlbiBxdWFuIGxvLg0K VmEsIG5odW5nIGN1b24gc2FjaCBiaSBwaGF0IGhpZW4gZGFvIHZhbiwgaGllbiBjdW5nIGNodWEg Y28gY3VvbiBuYW8gY28gbGVuaCB0aHUgaG9pLiANCkN1bmcgY2h1YSBjbyBnaWFpIHRodW9uZyBu YW8gZGEgdHJhbyBjaG8gbm8sIGJpIHRodSBob2kuIENodW5nIHZhbiBkdW9jIGd1aSBkZW4gY2Fj IA0KdGh1IHZpZW4gdHUgdHJ1bmcgdW9uZyBkZW4gZGlhIHBodW9uZywgdGh1IHZpZW4gY2FjIGRh aSBob2MgdmEgdmllbiBuZ2hpZW4gY3V1IHZhIHZhbiANCmR1b2MgY2FjIHRodSB2aWVuIG51b2Mg bmdvYWkgZGF0IG11YS4gTmh1bmcgY3VvbiBzYWNoIGRvIHZhbiBkdW9jIGR1bmcgbGFtIGdpYW8g dHJpbmggDQpnaWFuZyBkYXkgbyBkYWkgaG9jLCB2YSBjYSBzYXUgZGFpIGhvYzsgdmFuIGR1b2Mg Y2FjIHRoZSBoZSBob2MgdmllbiBob2MgY2FvIGhvYywgaG9jIA0KbmdoaWVuIGN1dSBzaW5oIHRy aWNoIGRhbiwgc3UgZHVuZyB0cm9uZyBob2MgdGFwLCBuZ2hpZW4gY3V1Lg0KDQpodHRwOi8vdHVh bnZpZXRuYW0ubmV0LzIwMDktMTItMDUtbmh1Yy1uaG9pLWRhby12YW4teHUtbHktdGhlLW5hby0g MDUvMTIvMjAwOSAwNzozMCBHTVQrNyBQaHVvbmcgS2hhbmgNCg0KQ29uZyB0cmluaCBjdWEgVHJp bmggS2hhYyBNYW5oIChQR1MuIFRTLCB2aWVuIHRydW9uZyBWaWVuIEhhbiBub20pIC0gbW90IGN1 b24gc2FjaCBkYSANCnR1bmcgZHVvYyBnaWFpIHRodW9uZyBTYWNoIGhheSBuYW0gMjAwNywgbmh1 bmcgcGhhaSBzYXUgMiBuYW0gdHJhbyBnaWFpIG1vaSBwaGF0IGhpZW4gcmEgbGEgY28gbmd1b24g Z29jIGJhdCBtaW5oLg0KKHZ1YSBxdWEsIGRlIGNodW5nIG1pbmggb25nIFRyaW5oIEtoYWMgTWFu aCBkYW8gY29uZyB0cmluaCBuZ2hpZW4gY3V1IGN1YSBtaW5oLCANClBHUy4gVFMgTmdvIER1YyBU aG8gZGEgcGhhaSBkdWEgcmEgbmh1bmcgY2hvIHNhaSB0cm9uZyB0YWMgcGhhbSBjdWEgbWluaCwg dHUgZG8gDQpjaG8gbmd1b2kgZG9jIHRoYXkgb25nIE1hbmggZGEgY2hlcCByYXQgdHJ1bmcgdGhh bmggY29uZyB0cmluaCBjdWEgTmdvIER1YyBUaG8gbmh1IHRoZSBuYW8uICkNCg0KaHR0cDovL3R1 YW52aWV0bmFtLm5ldC8yMDA5LTEyLTA1LW5odWMtbmhvaS1kYW8tdmFuLXh1LWx5LXRoZS1uYW8t IDA1LzEyLzIwMDkgMDc6MzAgR01UKzcgUGh1b25nIEtoYW5oDQoNCkhpZXUgdHJ1b25nIFRydW9u ZyBDYW8gZGFuZyBkdSBsaWNoIEhhIE5vaSwgYmkgdHVvYyBibyBjaHVjIGRhbmggcGhvIGdpYW8g c3UgIA0KdmkgZGEga2hvbmcgdHJ1bmcgdGh1YyAobGF5IGNvbmcgdHJpbmggY3VhIG5ndW9pIGxh bSBjdWEgbWluaCksIHZpIHBoYW0gdGlldSBjaHVhbiBkYW8gZHVjIGN1YSBuaGEgZ2lhby4NCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDE1LzIwMTAwNDExMjMy MTE2LmFzcHggMTEvMDQvMjAxMCAyMzoyMSANCg0KVHJ1b25nIERIIEtpbmggdGUgcGhhdCBoaWVu IHRoZW0gMyBjdW9uIGdpYW8gdHJpbmggYmkgY2FjIGdpYW5nIHZpZW4gdHJ1b25nIERIIENvbmcg bmdoaWVwIFRQLkhDTSAibHVvYyIgDQoNCihUbyBnaWFjICJkYW8iIGdpYW8gdHJpbmgsIEdTLVRT IFRyYW4gTmdvYyBUaG8gYmkgZGUgZG9hIGJhbmcgdGh1IGRpZW4gdHU6ICJUYW8gY2hlbSBjaGV0 Li4uIG1heSBkbyEgVGhhbmcuLi4gU28gdGFvIGxhOiAwOTAzNDUxNDE2IiAtIEVtYWlsIHRyZW4g ZHVvYyBndWkgdHUgZGlhIGNoaSB0cm9uZ3RyaUBodWF3ZWkuY29tLikNCg0KLQ0KUGh1IGNodW9u ZzogT25nIFBoYW0gUXVhbmcgTmdoaSBkYW8gdmFuIA0KDQpodHRwOi8vbXkub3BlcmEuY29tL05n dXllbmNoaWJlbmJvbWF0dGhhdC9ibG9nL3Nob3cuZG1sLzMxOTA5NDkgMjcvNC8yMDA5LCAxMzow MzoyMw0KDQonS2UgZGFvIHZhbiB0aHUgMiBzYXUgTmd1eWVuIENoaSBCZW4uIERvIGNoaW5oIGxh IG9uZyBQaGFtIFF1YW5nIE5naGksIFV5IHZpZW4gQm8gQ2hpbmggdHJpLCANCm5ndXllbiBCbyB0 cnVvbmcgYm8gVmFuIGhvYSCWIFRob25nIHRpbiwgaGllbiBsYSBCaSB0aHUgVGhhbmggdXkgVGh1 IGRvIEhhIE5vaScNCg0KLQ0KQ2F1IGNodXllbiBiYXQgZGF1IHR1IG5oYW4gdmF0IE5ndXllbiBD aGkgQmVuIC0gVmllbiB0cnVvbmcgdmllbiBWYW4gaG9hIE5naGUgdGh1YXQgVmlldCBOYW0sIHRo dW9jIGNhcCBjdWEgb25nIFBoYW0gUXVhbmcgTmdoaSANCg0KaHR0cDovL3R0dm5vbC5jb20vZm9y dW0vdmFuaG9jLzg2NjY0Mi90cmFuZy05Ny50dHZuICANCihOSCAtIDEyLiAyMDA2IC0gRGEgZGFu ZyBiYW8gVGhlIHRoYW8gJiBWYW4gaG9hIHNvIDE0NSwgcmEgbmdheSA1LiAxMi4gMjk5NiAtIEJh biBnb2MpDQoNClBHUyBUUyBOZ3V5ZW4gQ2hpIEJlbiB0aWVwIHR1YyAiZGFvIHZhbiIgDQoNClF1 YW5nIDEwIG5hbSB0cnVvYywgdHJlbiBiYW8gVGhlIHRoYW8gJiBWYW4gaG9hLCB0b2kgZGEgbW90 IGxhbiAiZ2FwIGdvIiB0ZW4gdHVvaSBjdWEgb25nIE5ndXllbiBDaGkgQmVuIHRyb25nIGRhbmgg c2FjaCB0YWMgZ2lhIGN1YSBtb3QgY3VvbiBzYWNoICJkYW8gdmFuIiBjbyB0ZW4gZ29pIGxhIA0K Q28gc28gdmFuIGhvYSBWaWV0IE5hbSwgdmEgaG9tIG5heSwgdG9pIGxhaSBnYXAgb25nIHRyb25n IG1vdCB0aW5oIGh1b25nIGVvIGxlIGtoYWMuLi4hICANCg0KQ2FtIHRyZW4gdGF5IGN1b24gc2Fj aCBkYXkgMS4wMTggdHJhbmcgY3VhIFBHUyBUUyBOZ3V5ZW4gQ2hpIEJlbiBjbyBuaGFuIGRlIEdv cCBwaGFuIG5naGllbiBjdXUgdmFuIGhvYSBkYW4gZ2lhbiBWaWV0IE5hbSBkbyBOWEIgS2hvYSBo b2MgeGEgaG9pIHBoYXQgaGFuaCBuYW0gDQoyMDA2LCBpdCBuaGlldSB0b2kgY3VuZyB0aGF5IHZp IG5lIHZhIHR1IGhvaSBkZSB2aWV0IG1vdCBjdW9uIHNhY2ggbmh1IHRoZSwgdGFjIGdpYSBkYSBw aGFpIGxhbyB0YW0ga2hvIHR1IGRlbiBtdWMgbmFvPyANCk5odW5nIGRvYyByb2kgdG9pIGxhaSB0 aGF5IHBoYW4gbG9uIG5odW5nICJuZ2hpZW4gY3V1IiBjdWEgb25nIGtob25nIGNvIGdpIG1vaSBt ZSwgdGhlbSB2YW8gZG8sIGNhaSAic3UgdnUiIE5ndXllbiBDaGkgQmVuIHR1bmcgY28gdGVuIHRy b25nIGRhbmggc2FjaCB0YWMgZ2lhIGN1YSBjdW9uIA0Kc2FjaCBDbyBzbyB2YW4gaG9hIFZpZXQg TmFtICJkYW8gdmFuIiB2byB0b2kgdmEgdmEgdmFuIG5nYW5nIG5oaWVuIHRhaSBiYW4gbmhpZXUg bGFuIHRyb25nIGNhIGNodWMgbmFtIG5heSBkZSBsYW0gZ2lhbyB0cmluaCBibyBtb24gY2hvIHNp bmggdmllbiBjYWMgdHJ1b25nIGRhaSBob2MgbGFpIGNhbmcgbGFtIGNobyB0b2kgZG9jIGN1b24g c2FjaCBjdWEgTmd1eWVuIENoaSBCZW4gdm9pIHRhbSB0aGUgbmdoaSBuZ28uIA0KVmEgcm9pIHN1 IG5naGkgbmdvIGF5IHhlbSByYSBsYSBjbyBjbyBzbywgZG9uIGN1IGJhaSB0aWV1IGx1YW4gS2hv bmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4sIHR1IHRyYW5nIDkyNyBkZW4g dHJhbmcgOTQyIGN1YSBjdW9uIHNhY2gsIHZpIGJhaSB2aWV0IG5heSBsYW0gdG9pIG5obyB0b2kg bW90IHRhaSBsaWV1IG5naGllbiBjdXUgY3VhIEdTIFRTIFRvIE5nb2MgVGhhbmguDQoNCkNoYW5n IGxhIG1heSBuYW0gdHJ1b2MsIGRvIG11b24gdGltIGhpZXUgdGFpIHNhbyBraG9uZyBnaWFuIHZh biBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiBkdW9jIFVORVNDTyBjb25nIG5oYW4gbGEga2ll dCB0YWMgdHJ1eWVuIGtoYXUgdmEgZGkgc2FuIHBoaSB2YXQgdGhlIGN1YSB2YW4gDQpob2Egbmhh biBsb2FpLCB0b2kgZGEgZG9jIGJhbiBobyBzbyBraG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGll bmcgVGF5IE5ndXllbiBnb20gMjUgdHJhbmcgZG8gR1MgVFMgVG8gTmdvYyBUaGFuaCB2aWV0LiAN Cg0KRG9jIGhvIHNvIG5heSwgdG9pIGNhbmcga2hhbmcgZGluaCBkdW5nIGxhICJkYW5oIGJhdCBo dSB0cnV5ZW4iIGtoaSB0cm9uZyBnaW9pIG5naGllbiBjdXUgdmFuIGhvYSBjb2kgR1MgVFMgVG8g TmdvYyBUaGFuaCBsYSBtb3QgY2h1eWVuIGdpYSBoYW5nIGRhdSB2ZSB2YW4gaG9hIGRhbiBnaWFu IA0KVGF5IE5ndXllbiwgZGFjIGJpZXQgbGEgdHJvbmcgbGluaCB2dWMgYW0gbmhhYy4gDQoNCkRp ZXUgZG8gbGEgY2hpbmggeGFjLCBjYWMgY28gcXVhbiBodXUgdHJhY2ggZGEgY2hvbiBkdW5nIG5n dW9pLCBkdW5nIHZpZWMgZGUgbGFtIG5lbiBiYW4gaG8gc28gbmF5LCB2aSBuZ2hpZW4gY3V1IGNv bmcgY2hpZW5nIFRheSBOZ3V5ZW4gbWEga2hvbmcgY28ga2llbiB0aHVjIHZlIHZhbiBob2EgDQpk YW4gZ2lhbiBUYXkgTmd1eWVuLCBraG9uZyBhbSBoaWV1IHZlIGFtIG5oYWMgVGF5IE5ndXllbiB0 aGkgbmdoaWVuIGN1dSBjdW5nIG5odSBraG9uZywgdmEgdG9pIHRpbiBkYXkgY3VuZyBsYSBjYWMg cGhhbSBjaGF0IG5hbSBuZ29haSBraGEgbmFuZyBuZ2hpZW4gY3V1IGN1YSBQR1MgVFMgTmd1eWVu IENoaSBCZW4uIA0KDQpWYXkgbWEgb2FpIG9hbSB0aGF5LCBuaGlldSBub2kgZHVuZyBxdWFuIHRy b25nIGN1YSBiYW4gaG8gc28gbGFpIHh1YXQgaGllbiB0cm9uZyB0aWV1IGx1YW4gS2hvbmcgZ2lh biB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gY3VhIFBHUyBUUyBOZ3V5ZW4gQ2hpIEJl biBzYXUga2hpIGRhIGR1b2Mgb25nIG1vbmcgbWEsIGxhcCBnaGVwLCB0dSBzdWEga2hhIHRpbmgg dmkuIA0KRG8gdGlldSBsdWFuIG5naGllbiBjdXUgbm9pIHRyZW4gY28gcXVhIG5oaWV1IGRvYW4g bW9uZyBtYSwgbGFwIGdoZXAsIHR1IHN1YSB0dSB2YW4gYmFuIA0KY3VhIEdTIFRTIFRvIE5nb2Mg VGhhbmggbmVuIG8gZGF5IHRvaSBjaGkgeGluIGdpb2kgdGhpZXUgdmFpIGRvYW46DQoNCjFhLiBQ R1MgVFMgTmd1eWVuIENoaSBCZW4gdmlldDogIlBodW9uZyBwaGFwIGNoaW5oIHN1YSBjaGllbmcg Y29uZyB2b2kgY2FpIHRhaSBhbSBuaGFjIG5oYXkgY2FtIGN1YSBuZ2hlIG5oYW4gc3VhIGNoaWVu ZyB0aGUgaGllbiB0cmluaCBkbyB0aGFtIGFtIHRpbmggdGUgdmEgaGlldSBiaWV0IGNhbiBrZSB2 ZSBjaGUgZG8gcnVuZyB2YSBsYW4gdHJ1eWVuIGFtIHRoYW5oIHRyZW4gbWF0IGNoaWVuZyB2YSB0 cm9uZyBraG9uZyBnaWFuLiBDbyANCmhhaSBwaHVvbmcgcGhhcCBjaGluaCBzdWEgbWEgbmd1b2kg bmdoZSBuaGFuIG8gVGF5IE5ndXllbiBzdSBkdW5nOiBnbywgZ28gdGhlbyBoaW5oIHZheSB0ZSB0 ZSB2YSBnbyBnbyB0aGVvIGhpbmggbHVvbiBzb25nLiANCkRvIHZheSwga3kgdGh1YXQgZ28sIGdv IHRoZW8gZHVvbmcgdHJvbiB0cmVuIG5odW5nIGRpZW0ga2hhYyBuaGF1IHF1YW5oIHRhbSBkaWVt IGxhIG1vdCBwaGF0IGhpZW4gdmF0IGx5IGR1bmcgZGFuLCBtYWMgZGF1IHRyaW5oIGRvIHBoYXQg dHJpZW4geGEgaG9pIHh1YSBjdWEgbmd1b2kgVGF5IA0KTmd1eWVuIGNodWEgYmlldCBkZW4gdmF0 IGx5IGhvYyIgKFNkZCwgdHIuOTI5KS4NCg0KMWIuIEdTIFRTIFRvIE5nb2MgVGhhbmggdmlldDog IlBodW9uZyBwaGFwIGNoaW5oIHN1YSBjaGllbmcgY29uZyB2b2kgY2FpIHRhaSBhbSBuaGFjIG5o YXkgY2FtIGN1YSBuZ2hlIG5oYW4gc3VhIGNoaWVuZyB0aGUgaGllbiB0cmluaCBkbyB0aGFtIGFt IHRpbmggdGUgdmEgaGlldSBiaWV0IGNhbiBrZSB2ZSBjaGUgZG8gcnVuZyB2YSBsYW4gdHJ1eWVu IGFtIHRoYW5oIHRyZW4gbWF0IGNoaWVuZyB2YSB0cm9uZyBraG9uZyBnaWFuLiANCkRvIHZheSwg a3kgdGh1YXQgZ28sIGdvIHRoZW8gZHVvbmcgdHJvbiB0cmVuIG5odW5nIGRpZW0ga2hhYyBuaGF1 IHF1YW5oIHRhbSBkaWVtIGxhIG1vdCBwaGF0IGhpZW4gdmF0IGx5IGR1bmcgZGFuLCBtYWMgZGF1 IHRyaW5oIGRvIHBoYXQgdHJpZW4geGEgaG9pIHh1YSBjdWEgbmd1b2kgVGF5IE5ndXllbiBjaHVh IGJpZXQgZGVuIHZhdCBseSBob2MiIChUbGRkLCB0ci44KS4NCg0KMmEuIFBHUyBUUyBOZ3V5ZW4g Q2hpIEJlbiB2aWV0OiAiTmd1b2kgbmdoZSBuaGFuIFRheSBOZ3V5ZW4gZGFuaCBjaGllbmcgdGhl byBoYWkgY2FjaCBjaGluaDsgZHVuZyBuYW0gdGF5IGRhbSBoYXkgZHVuZyBkdWkgZ28gdmFvIGNo aWVuZy4gVm9pIGNvbmcgbnVtIG5hbSB0YXkgY2hpIGRhbSB2YW8gbnVtIG1vaSBjbyB0aWVuZyB0 cm9uZywgdmFuZy4gTmh1bmcgdm9pIGNoaWVuZyBiYW5nIHRoaSBuYW0gZGFtIGx1b24gcGhhaSAN CmRhbSB2YW8gbW90IGRpZW0gZ2l1YSB0YW0gdmEgdmFuaCBuZ29haSBjdWEgbWF0IHBoYWkgY2hp ZW5nLiANCkNvIGJhIGxvYWkgZHVpOiBjdW5nLCBtZW0gdmEgYm9jIHZhaSBob2FjIGRhLiBEdWkg Ym9jIHZhaSB0aHVvbmcgZHVuZyBjaG8gY29uZyBudW0gDQp0YW8gcmEgbW90IGFtIHRoYW5oIHRy b24sIG1lbS4gRHVpIGN1bmcgdmEgZHVpIGdvIG1lbSBraG9uZyBib2MgdmFpIHRodW9uZyBkdW5n IGNobyBjaGllbmcgYmFuZywgZ28gdmFvIHRhbSBtYXQgdHJvbmcgY3VhIGNoaWVuZy4gDQpUdXkg dHVuZyB0b2Mgbmd1b2kgdmEgdHV5IHRoZW8geWV1IGNhdSBuZ2hlIHRodWF0IGN1YSBiYWkgY2hp ZW5nIG1hIG5ndW9pIHRhIGR1bmcgYmFuIHRheSB4b2EgdmFvLCBkYXQgdmFvIG1hdCB0cm9uZyBj dWEgY2hpZW5nIGJhbmcsIGhvYWMgZHVuZyBjYWMgbmdvbiB0YXkgY2hhbiB0cmVuIHZhbmggbmdv YWkgY3VhIGNoaWVuZy4gQ3VuZyBjbyBuZ2hlIG5oYW4gZHVuZyBjdWkgdGF5IGNoYW4gdmFvIG1h dCBjaGllbmcgYmFuZy4gQ2FjIGNhY2ggDQpuZ2F0IGNoaWVuZyBraGFjIG5oYXUgZGEgY2hvIG5o dW5nIHNhYyB0aGFpIGFtIHRoYW5oIHBob25nIHBodSwgbGFtIHRhbmcgdGhlbSBzdWMgZGllbiBj YW0gdmEgdmUgZG9jIGRhbyBjdWEgYmFpIG5oYWMgY2hpZW5nLg0KQ29uZyBjaGllbmcgbGEgbmhh YyBjdSBuZ2hpIGxlLCBjYWMgYmFpIG5oYWMgY29uZyBjaGllbmcgdHJ1b2MgaGV0IGxhIGRhcCB1 bmcgY2hvIHlldSBjYXUgY3VhIG1vaSBsZSB0aHVjIHZhIGR1b2MgY29pIG5odSBtb3QgdGhhbmgg dG8gaHV1IGNvIGN1YSBsZSB0aHVjIGRvLiBOaHUgdGhlLCBtb2kgDQpuZ2hpIGxlIGNvIGl0IG5o YXQgbW90IGJhaSBuaGFjIGNoaWVuZyBjaG8gbm8uIFRyb25nIG1vaSBuZ2hpIGxlLCBsYWkgY28g dGhlIGNvIG5oaWV1IGNvbmcgZG9hbiBjbyBuaGFjIGNoaWVuZyByaWVuZy4gQ2hhbmcgaGFuLCBu Z3VvaSBuZ2FuaCBBcmFwIGRhbiB0b2MgR2lhIFJhaSBvIHZ1bmcgRWEgSCdMZW8gdGluaCBEYWMg TGFjIGNvIGNhYyBiYWkgY2hpZW5nIGNobyBjYWMgbGUgc2F1IGRheTogZGFtIHRyYXUsIGtob2Mg bmd1b2kgY2hldCB0cm9uZyB0YW5nIGxlLCBibyBtYSwgbXVuZyBuaGEgcm9uZyBtb2ksIG11bmcg Y2hpZW4gdGhhbmcsIGxlIHh1b25nIGdpb25nLCBsZSBjYXUgYW4gDQpjaG8gbHVhLCBtdWEgZ2F0 LiBOZ29haSByYSBjdW5nIGNvbiBjbyBuaHVuZyBiYWkgY2hpZW5nIGR1bmcgY2hvIGNhYyBzaW5o IGhvYXQgY29uZyBkb25nIG5odSBsZSB0aG9pIHRhaSBjaG8gdHJlIHNvIHNpbmgsIG11bmcgbmhh IG1vaSwgY2h1YyBzdWMga2hvZSwgdi52Li4uDQpDYWMgYmFpIGNoaWVuZyBjdW5nIGRhIGRhdCBk ZW4gbW90IHRyaW5oIGRvIGJpZXUgY2FtIGFtIG5oYWMgcGh1IGhvcCB2b2kgdHJhbmcgaHVvbmcg dGluaCBjYW0gY3VhIGNvbiBuZ3VvaSB0cm9uZyBtb2kgbmdoaSBsZS4gQ2hhbmcgaGFuIGNoaWVu ZyB0YW5nIGxlIGhheSBibyBtYSB0aGkgY2hhbSByYWksIG1hbiBtYWMgYnVvbi4gQ2hpZW5nIG11 YSBnYXQgdGhpIHRoYW5oIHRob3QsIHZ1aSB0dW9pLiBDaGllbmcgZGFtIHRyYXUgdGhpIG5oaXAg ZGlldSANCmdpdWMgZ2lhLCB2LnYuLi4iIChTZGQsIHRyLjkzMSAtIHRyLjkzMikuDQoNCjJiLiBH UyBUUyBUbyBOZ29jIFRoYW5oIHZpZXQ6ICJOZ3VvaSBuaGFjIGNvbmcgVGF5IE5ndXllbiBkYW5o IGNoaWVuZyB0aGVvIGhhaSBjYWNoIGNoaW5oOyBkdW5nIG5hbSB0YXkgZGFtIGhheSBkdW5nIGR1 aSBnbyB2YW8gY2hpZW5nLiBWb2kgY29uZyBudW0gbmFtIHRheSBjaGkgDQpkYW0gdmFvIG51bSBt b2kgY28gdGllbmcgdHJvbmcsIHZhbmcuIE5odW5nIHZvaSBjaGllbmcgYmFuZyB0aGkgbmFtIGRh bSBsdW9uIHBoYWkgZGFtIHZhbyBtb3QgZGllbSBnaXVhIHRhbSB2YSB2YW5oIG5nb2FpIGN1YSBt YXQgcGhhaSBjaGllbmcuIA0KQ28gYmEgbG9haSBkdWk6IGN1bmcsIG1lbSB2YSBib2MgdmFpIGhv YWMgZGEuIER1aSBib2MgdmFpIHRodW9uZyBkdW5nIGNobyBjb25nIG51bSB0YW8gcmEgbW90IGFt IHRoYW5oIHRyb24sIG1lbS4gRHVpIGN1bmcgdmEgZHVpIGdvIG1lbSBraG9uZyBib2MgdmFpIHRo dW9uZyBkdW5nIGNobyBjaGllbmcgYmFuZywgZ28gdmFvIHRhbSBtYXQgdHJvbmcgY3VhIGNoaWVu Zy4gVHV5IG5oaWVuIHRyb25nIHF1YSB0cmluaCBob2EgdGF1IG1vaSANCnRpZW5nIGNoaWVuZyB2 YW5nIGxlbiB4b25nIGxhaSBwaGFpIGR1b2MgbmdhdCBkaS4gTmV1IGtob25nIHRoaSBjYWMgYm9p IGFtIGN1YSBjaGllbmcgZG8gc2UgbGFtIG5oaWV1IGNhYyBhbSBjdWEgY2FjIGNoaWVuZyB0aWVw IHRoZW8uIA0KVHV5IHR1bmcgdG9jIG5ndW9pIHZhIHR1eSB0aGVvIHlldSBjYXUgbmdoZSB0aHVh dCBjdWEgYmFpIGNoaWVuZyBtYSBuZ3VvaSB0YSBkdW5nIGJhbiB0YXkgeG9hIHZhbywgZGF0IHZh byBtYXQgdHJvbmcgY3VhIGNoaWVuZyBiYW5nLCBob2FjIGR1bmcgY2FjIG5nb24gdGF5IGNoYW4g dHJlbiB2YW5oIG5nb2FpIGN1YSBjaGllbmcuIEN1bmcgY28gbmdoZSBuaGFuIGR1bmcgY3VpIHRh eSBjaGFuIHZhbyBtYXQgY2hpZW5nIGJhbmcuIE5nYXQgdGllbmcgDQpvIGNvbmcgbnVtIGtobyBo b24gdmkgY29uZyBudW0gY28gaGUgYm9pIGFtIGxvbiB2YSBkbyBsYW4gdHJ1eWVuIGRhaSBob24u IE5oYWMgY29uZyBwaGFpIHR5IGR1aSBoYXkgbGF5IHRheSBiaXQgdHJ1YyB0aWVwIHZhbyBkaW5o IG51bSBoYXkgY2hhbiBudW0gbW9pIGR1b2MuIENhYyBjYWNoIG5nYXQgDQpjaGllbmcga2hhYyBu aGF1IGRhIGNobyBuaHVuZyBzYWMgdGhhaSBhbSB0aGFuaCBwaG9uZyBwaHUsIGxhbSB0YW5nIHRo ZW0gc3VjIGRpZW4gY2FtIHZhIHZlIGRvYyBkYW8gY3VhIGJhaSBuaGFjIGNoaWVuZy4NCiBMYSBu aGFjIGN1IG5naGkgbGUsIGNhYyBiYWkgbmhhYyBjb25nIGNoaWVuZyB0cnVvYyBoZXQgbGEgZGFw IHVuZyBjaG8geWV1IGNhdSBjdWEgbW9pIGxlIHRodWMgdmEgZHVvYyBjb2kgbmh1IG1vdCB0aGFu aCB0byBodXUgY28gY3VhIGxlIHRodWMgZG8uIE5odSB0aGUsIG1vaSBuZ2hpIGxlIGNvIGl0IG5o YXQgbW90IGJhaSBuaGFjIGNoaWVuZyBjaG8gbm8uIFRyb25nIG1vaSBuZ2hpIGxlLCBsYWkgY28g dGhlIGNvIG5oaWV1IGNvbmcgZG9hbiBjbyBuaGFjIA0KY2hpZW5nIHJpZW5nLiBDaGFuZyBoYW4s IG5ndW9pIEdpYSBSYWkgQXJhcCBvIHZ1bmcgRWEgSCdMZW8gdGluaCBEYWMgTGFjIGNvIGNhYyBi YWkgY2hpZW5nIGNobyBjYWMgbGUgc2F1IGRheTogRGFtIHRyYXUgLSBCbyBtYSAtIE11bmcgbmhh IHJvbmcgbW9pIC0gTXVuZyBjaGllbiB0aGFuZyAtIA0KS2hvYyBuZ3VvaSBjaGV0IHRyb25nIHRh bmcgbGUgLSBMZSB4dW9uZyBnaW9uZyAtIExlIGNhdSBhbiBjaG8gbHVhIC0gTXVhIGdhdC4gTmdv YWkgcmEgY3VuZyBjb24gY28gbmh1bmcgYmFpIGNoaWVuZyBkdW5nIGNobyBjYWMgc2luaCBob2F0 IGNvbmcgZG9uZyBuaHUgbGUgdGhvaSB0YWkgY2hvIHRyZSBzbyBzaW5oLCBtdW5nIG5oYSBtb2ks IGNodWMgc3VjIGtob2Ugdi52Li4uDQpDYWMgYmFpIGNoaWVuZyBjdW5nIGRhIGRhdCBkZW4gbW90 IHRyaW5oIGRvIGJpZXUgY2FtIGFtIG5oYWMgcGh1IGhvcCB2b2kgdHJhbmcgaHVvbmcgdGluaCBj YW0gY3VhIGNvbiBuZ3VvaSB0cm9uZyBtb2kgbmdoaSBsZS4gQ2hhbmcgaGFuIGNoaWVuZyB0YW5n IGxlIGhheSBibyBtYSB0aGkgY2hhbSANCnJhaSwgbWFuIG1hYyBidW9uLiBDaGllbmcgbXVhIGdh dCB0aGkgdGhhbmggdGhvdCwgdnVpIHR1b2kuIENoaWVuZyBkYW0gdHJhdSB0aGkgbmhpcCBkaWV1 IGdpdWMgZ2lhIHYudi4uLiIgKFRsZGQsIHRyLjEwIC0gdHIuMTEpLi4uDQoNClF1YSBraW5oIG5n YWMgdmUgY2FjIGt5IHhhbyBjdWEgUEdTIFRTIE5ndXllbiBDaGkgQmVuLCB0b2kgZGEgbGllbiBs YWMgdm9pIEdTIFRTIFRvIE5nb2MgVGhhbmgsIGR1b2Mgb25nIHhhYyBuaGFuIG9uZyBkaWNoIHRo dWMgbGEgY2h1IHNvIGh1dSBjdWEgdmFuIGJhbiBuYXkgdmEgdG9pIGRhIA0KbmhhbmggY2hvbmcg Y28gdHJvbmcgdGF5IGJhbiBnb2MgZHVvYyBzb2FuIHRoYW8gdHJlbiBtYXkgdmkgdGluaCBjdWEg dmFuIGJhbi4gTmh1IHZheSBvIGRheSBjbyBoYWkgY2F1IGhvaSBkYXQgcmE6IA0KDQpNb3QgbGEg c2F1IGtoaSBjb25nIGJvLCB2YW4gYmFuIGN1YSBHUyBUUyBUbyBOZ29jIFRoYW5oIGRhIHRybyB0 aGFuaCBzYW4gcGhhbSAidmFuIGhvYSBkYW4gZ2lhbiIgbmVuIG9uZyBOZ3V5ZW4gQ2hpIEJlbiBj byB0aGUgImtoYWkgdGhhYyIgdHV5IHk/IA0KDQpIYWkgbGEgb25nIE5ndXllbiBDaGkgQmVuIGRh ICJkYW8gdmFuIiB0dSB2YW4gYmFuIGN1YSBHUyBUUyBUbyBOZ29jIFRoYW5oLCBtYSBzdSBjYW4g dGhpZXAgdGhlbyBsb2kgbW9uZyBtYSwgdHUgc3VhLCBsYXAgZ2hlcCBtb3QgY2FjaCBjbyB5IHRo dWMgY3VhIG9uZyBkYSBjaG8gcGhlcCB0b2kgZGF0IHJhIGNhdSBob2kgdGh1IGhhaSBuYXkuIA0K DQpEYXUgc2FvIHRoaSB0aGVvIHRvaSwgUEdTIFRTIE5ndXllbiBDaGkgQmVuIHZhbiBjYW4gdGhp ZXQgZHVhIHRlbiBvbmcgcmEga2hvaSB2YWkgdHJvIHRhYyBnaWEgY3VhIGJhaSB0aWV1IGx1YW4g S2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4sIGJvaSBsZSBkYSBzbyB0 cmkgdGh1YyBjbyB0aW5oIGNhY2ggIm5naGllbiBjdXUiIHRyb25nIHRpZXUgbHVhbiBuYXkga2hv bmcgcGhhaSBsYSB0YWkgc2FuIGN1YSByaWVuZyBvbmcuIA0KDQpWaWV0IGRlbiBkYXksIHRvaSBs YWkgdGhheSBraG9pIGhhaSBraGkgbmhvIHRvaSBwaGFuIExvaSB0aHVhIHRydW9jIGN1YSBjdW9u IHNhY2ggR29wIHBoYW4gbmdoaWVuIGN1dSB2YW4gaG9hIGRhbiBnaWFuIFZpZXQgTmFtLCBvbmcg Tmd1eWVuIENoaSBCZW4gdmlldCByYW5nOiAiQ3VvbiBzYWNoIHNlIGdvcCB0aGVtIG1vdCB0aWVu ZyBub2kgbmhvIG5ob2kgdmFvIHN1IG5naGllcCBuZ2hpZW4gY3V1IHZhbiBob2EgZGFuIGdpYW4g dm9uIGRhIA0KZGF0IGR1b2MgcmF0IG5oaWV1IHRoYW5oIHR1dSB0byBsb24sIGRlIGxhbSBybyB0 aGVtIG1vdCBzbyB2YW4gZGUgY3VhIHZhbiBob2EgZGFuIGdpYW4gDQpoaWVuIG5heSIsIHZpIGN1 IG5odSBjYWMgbmdoaWVuIGN1dSB0cm9uZyB0aWV1IGx1YW4gdG9pIGRhIGRlIGNhcCB0aGkgb25n IGNoaSBnb3AgcGhhbiAibGFtIG1vIGFvIHRoZW0iIGNodSBsYW0gc2FvICJsYW0gcm8gdGhlbSBt b3Qgc28gdmFuIGRlIGN1YSB2YW4gaG9hIGRhbiBnaWFuIGhpZW4gbmF5IiBkdW9jISANCk5IIC0g MTIuMjAwNiAgDQoNClkga2llbiBkaWVuIGRhbjoNCg0KWWV1dGh1b25nMTUgKElEIGJhaSB2aWV0 IDEyODcyMzY4ICAyMzoxOSBuZ2F5IDA3LzA2LzIwMDgpOg0KDQpDSFVORyBUQSBDTyBUSEUgTk9J IEdJIFZPSSBUSEUgSEUgVFJFPyANCg0KVGVuIERhbyBWYW4ga2lhIHZhbiB0aWVwIHR1YyB0aGFj aCB0aHVjIGxvbmcga2llbiB0cmksIHRyaSB0dWUgY3VhIHRhdCBjYSBjaHVuZyB0YS4gVG9pIHRp biByYW5nIDogTmh1bmcgYWkgY29uIHRpZXAgdHVjIHZvaSB2dSBuYXkgZGV1IGxhIG5odW5nIG5n dW9pIEtpZW4gdHJpIHRoZW8gZHVvaSBDaGluaCANCm5naGlhLCB0aGVvIGR1b2kgbXVjIGRpY2gg bWEgY2h1bmcgdGEgZGEgZGUgcmEgdHUgZGF1LiBYaW4gZHVvYyBiYXkgdG8gc3UgZG9uZyBjYW0g dm9pIHRhdCBjYSBtb2kgbmd1b2khISEgDQpYaW4gbmhhYyBsYWkgcXVhbiBkaWVtIGNodW5nIGN1 YSBjaHVuZyB0YTogRGF1IHRyYW5oIGNob25nIHZ1IERhbyBWYW4gbyBWaWVuIFZhbiBob2MgLSBO Z2hlIHRodWF0IGtob25nIHBoYWkgY2hpIGxhIGRlIGdpYWkgcXV5ZXQgZHV5IG5oYXQgVG9pIHRy YW5nIGN1YSBUaGFuZyBkYW8gVGFjIA0Ka2hvYSBob2Mga2lhIG8gbXVjIGRvIGhlcCwgbWEgY29u IHZpIG1vdCBuZW4gS2hvYSBob2MgY2hhbiBjaGluaCBjdWEgbnVvYyBuaGEuIA0KVGhhbmcgRGFv IFZhbiBraWEgdmFuIGxpZXUgbGluaCwgdHJhbmcgdHJvbiB0aWVwIHR1YyIgdGh1ZSIgVGhpIEhp ZW4gZGljaCBuaHVuZyIgc2FuIA0KcGhhbSIgbWEgaGFuIGRhIGFuIGNhcCBjdWEgbmd1b2kga2hh YyBzYW5nIHRpZW5nIEFuaCEhISBEbyBsYSBtb3Qgc3UgdGhhY2ggdGh1YyBnaGUgZ29tIGRvaSB2 b2kgZ2lvaSBLaG9hIGhvYyB2YSBjYSBYYSBob2kgbG9haSBuZ3VvaSEgDQogDQpDaHVuZyB0YSBj byB0aGUgbHVvbmcgZHVvYyBoZXQgbmh1bmcgaGF1IHF1YSB0YWkgaGFpIGN1YSAiY3VvbiBzYWNo IiBkby4gDQpOaHVuZyBsaWV1IGNodW5nIHRhIGNvIHRoZSBub2kgZHVvYyBnaSB2b2kgdGhlIGhl IHRyZSB2ZSBTVSBUUlVORyBUSFVDIHRyb25nIEtob2EgDQpob2MsIGtoaSB2YW4gY29uIHRvbiB0 YWkgbmh1bmcgdGhhbmcgTHV1IG1hbmggbmh1IEJlbj8gVGhhdCBkYXUgbG9uZyEgDQoNClZhbiBk ZSBkdW9jIGRhdCByYSBsdWMgbmF5IGRhIHJvOiBOaHVuZyBoaWV1IHVuZyB4YSBob2kgbWEgdnUg RGFvIHZhbiBuYXkgZGEgZ2F5IHJhIHF1YSBsYSBxdWEgZ2hlIGdvbSEgTm8gZ2F5IG5lbiBtb3Qg VGFtIGx5IG5odWMgbmhvaSB0cm9uZyBnaW9pIEtob2EgaG9jIGNoYW4gY2hpbmgsIA0KbGEgdGFt IGRpZW0gdHJvbmcgYmlldCBiYW8gY3VvYyBiYW4gbHVhbiBjdWEgZ2lvaSB0cmkgdGh1YyB0cmUg dmUgdmUgVmFuIG5hbiBEYW8gdmFuLiANCiANClRhaSBoYWkgaG9uIG51YSwgQmVuIGN1bmcgdGhh bSBnaWEgdHJ1YyB0aWVwIEdpYW5nIGRheSwgbWFjIGR1IGhhbiB2byBjdW5nIGRvdCBuYXQhIFZh eSBuaHVuZyBTaW5oIHZpZW4gc2UgLi4uJ2hvYycgZHVvYyBnaSB0dSBoYW4sIHZhIGhvIHNlIGNv IG1vdCB0cmFuZyB0aGFpIHRhbSBseSBuaHUgdGhlIA0KbmFvIGtoaSBuZ2hpIHZlICJ0aGF5IiBC ZW4/IEtob25nIHRoZSB0dW9uZyB0dW9uZyByYSBuaHVuZyBjdWMgaGluaCB0YW0gbHkgbWEgbmh1 bmcgU2luaCB2aWVuIGRvIHBoYWkgZ2FuaCBjaGl1ISBPaSBjaGFvLCB0aGF0IGFpIG5nYWkgY2hv IGhvISANCg0KTyBjYXAgZG8gR2lhIGRpbmgsIGx1IGNvbiBjaGF1IGN1YSBCZW4gdGh1YSBodW9u ZyBuaHVuZyBnaSB0b2kgdGUgbmhhdCB0dSAiVmF0IGNhY2giIGN1YSBCZW4hIFZhIGFpIGRhbSBr aGFuZyBkaW5oIHNhdSBuYXkgY2h1bmcgc2UgdHJvIHRoYW5oIG5ndW9pIEx1b25nIHRoaWVuPz8/ IA0KTyEgQ2h1bmcgdGEgY28gdGhlIG5vaSBkdW9jIGdpIHZvaSB0aGUgaGUgdHJlIHRyb25nIEdp YSB0b2MgY3VhIEJlbiB2ZSBMT05HIFRSVU5HIFRIVUMgdHJvbmcgVEFNIEhPTiBDT04gTkdVT0kg a2hpIG1hIHZhbiBjb24gbmh1bmcgdGhhbmcgTHV1IG1hbmggdHJvbmcgR2lhIHRvYyBjdWEgQmVu PyBUaGF0IERBVSBMT05HICYgSEFJIEhVT0MhISEgDQoNCmh0dHA6Ly90dHZub2wuIGNvbS9mb3J1 bS92YW5ob2MvODY2NjQyL3RyYW5nLTk5LiB0dHZuP3Y9bXh2eGhjZHZ5N3M4ajhmNnU3NW4gdGhh bmdsb25nNDU2IElEIGJhaSB2aWV0OiAxMzMzMTE3OA0KDQpQR1MuIFRTIE5HVVlFTiBDSEkgQkVO IEJJIERBTyBWQU4gPz8/IA0KDQpOaHUgY2h1bmcgdG9pIGRhIGNvbmcgYm8gdmEgcGhhbiB0aWNo IGt5IGx1b25nIGNodW0gYmFpIE5ndXllbiBDaGkgQmVuIGFuIGNhcCBjYWMgbmdoaWVuIGN1dSBj b25nIGNoaWVuZyBjdWEgR1MuIFRTS0ggVG8gTmdvYyBUaGFuaCwgcXVhIGRvIGJhbiBkb2MgIGN1 bmcgZGEgdGhheSBybyANCnZpZWMgY2hlcCBuZ3V5ZW4gdmFuIHRyYW5nIHRyb24gY3VuZyBuaHUg dGh1IHRodWF0ICJ4YW8gbmF1IiB0aG8gdGhpZW4gY3VhIG9uZyBWaWVuIHRydW9uZyB2aWVuIFZh biBob2Eglk5naGUgdGh1YXQgbmh1IHRoZSBuYW8uIA0KW2h0dHA6Ly93d3cxMC4gdHR2bm9sLiBj b20vZm9ydW0vdmFuaG9jLzg2NjY0Mi90cmFuZy05Ny4gdHR2bl0gDQoNCkJheSBnaW8gY2h1bmcg dG9pIHhpbiB0aWVwIHR1YyBjb25nIGJvIDEgdHUgbGlldSBkYW8gdmFuIGhldCBzdWMga3kgcXVh aSBraGFjLiBWaSB0YWMgZ2lhIG5heSBkYSB0aHVvbmcgInRhYyBwaGFtIiB2ZSBjb25nIGNoaWVu ZyBjdWEgTmd1eWVuIENoaSBCZW4uIFBodW9uZyBwaGFwIGFuIGNhcCBvIA0KZGF5IGN1bmcga2hh IGdpb25nIHZvaSIgdGF5IG5naGUiIGN1YSBjaGluaCAnZGFvIHRhYyBraG9hIGhvYycgTmd1eWVu IENoaSBCZW4sIG5odSB0aGUgaHV5bmggZGUgZG9uZyBtb24gdmF5LiANCg0KVmkgdGhhbiB0aGUg dmEgc3UgbmdoaWVwIGN1YSBrZSBkYW8gdmFuIG1vaSBuYXkga2hhIG5vaSB0aWVuZyB0cm9uZyBu dW9jIG5lbiB0cnVvYyBtYXQsIHRvaSBjaGkgcGhhbiB0aWNoIGhhbmggdmkgYW4gY2FwIGN1YSBv bmcgdGEgbWEgY2h1YSBuZXUgcm8gZGljaCBkYW5oIGN1bmcgbmh1IG5ndW9uIGN1YSANCmJhaSBE QU8gVkFOIENPTkcgQ0hJRU5HIGR1b2MgY29uZyBiby4gIChnaGkgY2h1OiBkb2kgc2F1IGtoaSBj b25nIGJvIGhldCBjYWMgdGFuZyBjaHVuZyB0aGkgaGF5IG5vaSBkZW4pIA0KDQpEZSB0aWVuIHZp ZWMgc28gc2FuaCwgeGluIGdvaSBuaGFuIHZhdCBtb2kgbmF5IGxhIE5nYWkgREFPIFRBQyBJSS4g RHVvaSBkYXkgbGEgbW90IGJhaSBkYW8gdmFuIGN1YSBOZ3V5ZW4gQ2hpIEJlbiBtYSBOZ2FpIERB TyBUQUMgSUkgZGEgbmdhbmcgbmhpZW4gInJ1dCBsb2kgdHJhbmcgdHJvbiIsIA0KeG9pIHRhaSBs YWkgbW90IGNhY2ggbmdvbiBsYW5oIGRlIG5hbiByYSB0YWMgcGhhbSBjdWEgbWluaC4gKGFuaCBj aHVwIGtlbSB0aGVvOiBiYWkgIkJhbyB0b24gdmEgcGhhdCBodXkgY2FjIGdpYSB0cmkga2hvbmcg Z2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4iIJYgdGFwIGNoaSBob2F0IGRvbmcg a2hvYSBob2MgliBjdWEgYm8gS0ggJiBDTiwgc28gMS4yMDA2KQ0KDQpUdXkgbmhpZW4sIHZlIG1h dCBsbyBnaWNoIGhlIHRob25nLCB2aSBOZ3V5ZW4gQ2hpIEJlbiBuZ3V5ZW4gZGEgYW4gY2FwIGN1 YSBHUyBUbyBOZ29jIFRoYW5oIChkb2FuIGJvaSB2YW5nIHZhIHhhbmggbGEgY2F5KSwgdGhlIG5l biBkdSBOZ2FpIERBTyBUQUMgSUkgbmF5IGNvIGtob24ga2hlbyBjbyBuYW8sIGtpZXUgZ2kgY3Vu ZyIgYnVvYyBwaGFpIGNhbSBuaGFtIiBjdWEgR1MgVGhhbmguIE8gZGF5LCBjdW5nIHJhdCBjbyB0 aGUgDQpOZ2FpIERBTyBUQUMgSUkgdHVvbmcgbGEgY2hpIGRhbyB2YW4gY3VhIE5ndXllbiBDaGkg QmVuIG1hIHRob2kuIE1vaSBxdXkgdmkgeGVtIGJhaSAiS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcg Y2hpZW5nIFRheSBOZ3V5ZW4tIGRpbmggaHVvbmcgYmFvIHRvbiB2YSBwaGF0IGh1eSIgY3VhIE5n YWkgREFPIFRBQyBJSSAgKGFuaCBjaHVwIGRhbmcga2VtIHRoZW8pLg0KDQpUcm9uZyBiYWkgbmF5 LCBjdW5nIG5odSBOZ3V5ZW4gQ2hpIEJlbiwgTmdhaSBEQU8gVEFDIElJIGRhIHRoYXQgbmdvIG5n YW4ga2hpIGNobyByYW5nIGNvbmcgY2hpZW5nIHRydW9jIGtoaSB2ZSB0YXkgbmd1b2kgZGFuIFRh eSBOZ3V5ZW4gdGhpIG1vaSBjaGkgZHVvYyBjb2kgbGEuLi4gSEFORyBIT0EgY2h1IGtob25nIHBo YWkgbGEgTkhBQyBDVSEhISANCg0KQ2hpbmggZGlldSBkbyBjYW5nIGdpdXAgdGEgZGUgbmhhbiBk YW5nIGtlIHZpZXQgYmFpIG5heSB0aHVjIHN1IGNodWEgYmFvIGdpbyBuZ2hpZW4gY3V1IGNvbmcg Y2hpZW5nIHZhIGNvIHZhbiBkZSBraGEgbmFuZyB2ZSB0dSBkdXkgbG8gZ2ljaCBoaW5oIHRodWMu IFZpIGR1OiBEQU8gVEFDIE5ndXllbiBDaGkgQmVuIHRyb25nIGJhaSB0cmVuIEJhbyBOaGFuIERh biBzbyByYSBuZ2F5IDI0LzMvMjAwNiB2YSBiYWkgdHJlbiB0cmFuZyBHaWFpIGRpZXUgVmlldCBO YW0gZGEgdmlldCBuaHUgc2F1OiANCltodHRwOi8vd3d3LiB2aWV0bmFtbWVsb2R5LiBjb20vdmll d19uZXdzLiBhc3B4P25pZD00NzRdIA0KDQoiVGFpIG5naGUgY3VhIGN1IGRhbiBUYXkgTmd1eWVu IGxhIGJpZW4gbW90IHNhbiBwaGFtIGhhbmcgaG9hIHZvbiBraG9uZyBkdW9jIGNoaW5oIGhvIGNo ZSB0YW8gdGhhbmggbW90IG5oYWMgY3UgdHV5ZXQgdm9pIi4gDQoNCkNvbiB0cm9uZyBiYWkgY3Vh IG1pbmgsIE5nYWkgREFPIFRBQyBJSSBkYSB2aWV0IHR1b25nIHR1IGxhOiIgQ3UgZGFuIFRheSBO Z3V5ZW4ga2hvbmcgdHUgZHVjIGR1b2MgY29uZyBjaGllbmcsIG5odW5nIHZvaSBkb2kgdGFpIHZh IHRhbSBob24gYW0gbmhhYyBuaGF5IGNhbSBobyBkYSBuYW5nIGdpYSB0cmkgY3VhIG1vdCBzYW4g cGhhbSBoYW5nIGhvYSB0aGFuaCBtb3QgbmhhYyBjdSB0cmluaCBkaWVuIHR1eWV0IHZvaSIuICAN Cg0KQ2h1bmcgdGEgZGV1IGJpZXQgbmd1b24gdGFpIGxpZXUgZGUgTmd1eWVuIENoaSBCZW4gY3Vv cCB0cmFuZyBoYXkgcnV0IHRpYSBjaGluaCBsYSBITyBTTyBWVU5HIFZBTiBIT0EgQ09ORyBDSElF TkcgVEFZIE5HVVlFTiAoQkFOIEdPQykuIFF1eSB2aSBuYW8gY2h1YSANCnhlbSB4aW4gaGF5IGRv YyBreSBvIGRheSBkZSB0aWVuIHNvIHNhbmggW2h0dHA6Ly9teS4gb3BlcmEuIGNvbS9lZHUuIGNv bS4gdm4vYmxvZy9dIA0KDQpUcm9uZyBiYWkgY3VhIE5nYWkgREFPIFRBQyBJSSwgc2UgdGhheSBy byBuaHVuZyBkb2FuIGFuIGNhcCBjdWEuLi4gTmd1eWVuIENoaSBCZW4gKHhpbiB0YW0gY29pIG5o dSB2YXkpIHZhIG5odW5nIGRvYW4gYW4gY2FwIGN1YSBHUy4gVFNLSCBUbyBOZ29jIFRoYW5oLiBY aW4gcXV5IHVvYyBuaHUgc2F1IGRlIHRpZW4gcXVhbiBzYXQ6IA0KDQotQ2hlcCBjdWEgTmd1eWVu IENoaSBCZW46IERvYW4gYm9pIHhhbSCWICJjaGVwIG5ndXllbiB2YW4iOyBib2kgeGFuaCBsbyAt ICJ4YW8geGFvIiANCi1DaGVwIGN1YSBUbyBOZ29jIFRoYW5oOiBEb2FuIGJvaSB2YW5nLSAiY2hl cCBuZ3V5ZW4gdmFuIjsgZG9hbiBib2kgeGFuaCBsYSBjYXkgLSAieGFvIHhhbyIgDQoNClhpbiBz byBzYW5oIG1vdCBkb2FuIGRlIHRoYXkgZHVvYyAyIGtlIERBTyBUQUMgZGEgZG9uZyBhbiBjYXAg Y3VhIEdTIFRoYW5oIG5odSB0aGUgbmFvLiANCg0KKkdTIFRvIE5nb2MgVGhhbmg6IA0KIlRpZW5n IGNoaWVuZyBjb25nIGNvbiBsYSBiaWV1IHR1b25nIGNobyBjdW9jIHNvbmcgY2FjIHRvYyBUYXkg Tmd1eWVuLiBOZ2hlIGJhaSBuaGFjIGNoaWVuZywgbmd1b2kgZGFuIGJpbmggdGh1b25nIG8gdnVu ZyBkYXQgbmF5IGN1bmcgY28gdGhlIG5oYW4gcmEgZG8gbGEgY2hpZW5nIGNvbmcgY3VhIA0KdG9j IG5ndW9pIG5hbyB2YSBobyBkYW5nIHRpZW4gaGFuaCBuZ2hpIGxlIGhheSBob2F0IGRvbmcgdmFu IGhvYSBnaSIuIA0KDQoqREFPIFRBQyBOZ3V5ZW4gQ2hpIEJlbiAoS2hvbmcgZ2lhbiB2YW4gaG9h IGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4sIHNhY2ggR29wIHBoYW4gbmdoaWVuIGN1dSB2YW4gaG9h IGRhbiBnaWFuIFZpZXQgTmFtLCBOWEIgS2hvYSBob2MgWEgsIEhhIE5vaSAyMDA2LCB0cmFuZyA5 MzcpDQoNCiJUaWVuZyBjaGllbmcgY29uZyBjb24gbGEgYmlldSB0dW9uZyBjaG8gY3VvYyBzb25n IGNhYyB0b2Mgbmd1b2kgbyBUYXkgTmd1eWVuLiBOZ2hlIGJhaSBuaGFjIGNoaWVuZywgbmd1b2kg ZGFuIGJpbmggdGh1b25nIG8gdnVuZyBkYXQgbmF5IGN1bmcgY28gdGhlIG5oYW4gcmEgZG8gbGEg Y2hpZW5nIA0KY29uZyBjdWEgdG9jIG5ndW9pIG5hbyB2YSBobyBkYW5nIHRpZW4gaGFuaCBuZ2hp IGxlIGhheSBob2F0IGRvbmcgdmFuIGhvYSBnaSIuIChhbmggY2h1cCBrZW0gdGhlbykNCg0KKk5n YWkgREFPIFRBQyBJSTogDQoiTW9pIGRhbiB0b2MgVGF5IE5ndXllbiBjbyBtb3QgY2FjaCBjaG9p IGNoaWVuZyBraGFjIG5oYXUuIE5ndW9pIGRhbiBiaW5oIHRodW9uZyBvIFRheSBOZ3V5ZW4gdHV5 IGtob25nIHBoYWkgbGEgbmh1bmcgY2h1eWVuIGdpYSBhbSBuaGFjLCBuaHVuZyBjaGkgY2FuIG5n aGUgdGllbmcgDQpjaGllbmcgbGEgaG8gcGhhbiBiaWV0IGR1b2MgZG8gbGEgZGFuIHRvYyBuYW8i LiANCg0KVHJvbmcgcGhhbiBrZXQgY3VhIGJhaSB2aWV0LCBjbyB0aGUgdGhheSBybyBOZ2FpIERB TyBUQUMgSUkgZGEgYW4gY2FwIHBoYW4gQ2h1b25nIHRyaW5oIGhhbmggZG9uZyB0cm9uZyBobyBz byBjb25nIGNoaWVuZyBjdWEgR1MgVGhhbmggcm8gcmFuZyBuaHUgdGhlIG5hby4gWGluIHBoYW4g dGljaCBjdSB0aGUgbmh1IHNhdToNCg0KKiBHUyBUbyBOZ29jIFRoYW5oOiANCiJEYXkgbWFuaCBj b25nIHRhYyBraGFvIHNhdCBkaWVuIGRhLCBnYXAgZ28sIHRyYW8gZG9pIHZvaSBjYWMgbmdoZSBu aGFuIGN1bmcgbmh1IGNhYyBjb25nIGRvbmcgbHV1IGdpdSBkaSBzYW4gdmFuIGhvYSBjb25nIGNo aWVuZyBvIDUgdGluaCBUYXkgTmd1eWVuIHZhIHZ1bmcgcGh1IGNhbiANCm5oYW0gc3V1IHRhbSwg Z2hpIGNoZXAgbmh1bmcgYmFpIGNoaWVuZywgbmh1bmcgc2luaCBob2F0IHZhbiBob2EsIGFtIG5o YWMgZ2FuIGJvIHZvaSBjb25nIGNoaWVuZyBuaGFtIHRoaWV0IGxhcCBjbyBzbyBjdSB0aGUsIHhh YyB0aHVjLCB2dW5nIGNoYWMgbmh1bmcgdmFuIGRlIGxpZW4gcXVhbiBkZW4gY29uZyBjaGllbmcg dmEgdmFuIGhvYSBjb25nIGNoaWVuZyBvIFRheSBOZ3V5ZW4uIA0KLURheSBtYW5oIGNvbmcgdGFj IHRpbSBraWVtIGNhYyBuZ3VvbiB0YWkgbGlldSBsaWVuIHF1YW4gZGVuIGNvbmcgY2hpZW5nIHZh IHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi4gVGh1YyB0ZSBjaG8gdGhheSBjYWMgbmd1 b24gdGFpIGxpZXUgbmF5IHRhbiBtYXQsIHBoYW4gdGFuIG8gY2FjIGtobyBsdXUgdHJ1LCB0aHUg dmllbiwgdHUgc2FjaCB0dSBuaGFuIHRyb25nIHZhIG5nb2FpIG51b2MuIERvIHZheSwgcGhhaSBj byBrZSBob2FjaCBob3AgdGFjIGRlIHRpbSBraWVtLCBibyBzdW5nIi4gDQoNCipOZ2FpIERBTyBU QUMgSUk6IA0KIkNhbiBwaGFpIGRheSBtYW5oIGNvbmcgdGFjIHN1dSB0YW0sIGdoaSBjaGVwIG5o dW5nIGJhaSBjaGllbmcsIG5odW5nIHNpbmggaG9hdCB2YW4gaG9hLCBhbSBuaGFjIGdhbiBibyB2 b2kgY29uZyBjaGllbmcuIEdoaSBhbSwgZ2hpIGhpbmggY2FjIHRhaSBsaWV1LCB0dSBsaWV1IHZl IGNvbmcgY2hpZW5nIHZhIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiBkZSBsdXUgZ2l1 LCBiYW8gcXVhbiB2YSBwaGF0IGh1eSBsYXUgZGFpIi4gDQoNCiogR1MgVG8gTmdvYyBUaGFuaDog DQoiLVRvIGNodWMgbmdoaWVuIGN1dSBraG9hIGhvYyB2ZSBjb25nIGNoaWVuZyB2YSB2YW4gaG9h IGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gbW90IGNhY2ggaGUgdGhvbmcgdmEgdG9hbiBkaWVuIG8g NSB0aW5oIFRheSBOZ3V5ZW4gdmEgdnVuZyBwaHUgY2FuIi4gDQoNCipOZ2FpIERBTyBUQUMgSUk6 IA0KIlRpZXAgdHVjIG5naGllbiBjdXUga2hvYSBob2MgdmUgY29uZyBjaGllbmcgdmEgdmFuIGhv YSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuIG1vdCBjYWNoIGhlIHRob25nIHZhIHRvYW4gZGllbiBv IG5hbSB0aW5oIFRheSBOZ3V5ZW4gdmEgdnVuZyBwaHUgY2FuIi4gDQoNCiogR1MgVG8gTmdvYyBU aGFuaDogDQoiLVBodWMgaG9pIGNhYyBzaW5oIGhvYXQgdmFuIGhvYSBvIGNhYyBjb25nIGRvbmcg ZGFuIHRvYyB0YWkgNSB0aW5oIFRheSBOZ3V5ZW4gZGUgdGFvIG1vaSB0cnVvbmcgZGllbiB4dW9u ZyBjdWEgY29uZyBjaGllbmcgdmEgc2luaCBob2F0IHZhbiBob2EgY29uZyBjaGllbmciLiANCg0K Kk5nYWkgREFPIFRBQyBJSTogDQoiUGh1YyBob2kgdmEgZ2l1IGdpbiBjYWMgc2luaCBob2F0IHZh biBob2EsIGNhYyBsZSBob2kgZ2FuIHZvaSB2b25nIGRvaSBuZ3VvaSB2YSB2b25nIGRvaSBjYXkg dHJvbmcgbyBjYWMgY29uZyBkb25nIGRhbiB0b2MgdGhpZXUgc28gdGFpIG5hbSB0aW5oIFRheSBO Z3V5ZW4gZGUgdGFvIG1vaSB0cnVvbmcgZGllbiB4dW9uZyBjdWEgY29uZyBjaGllbmcgdmEgc2lu aCBob2F0IHZhbiBob2EgY29uZyBjaGllbmciLiANCg0KKiBHUyBUbyBOZ29jIFRoYW5oOiANCiIt VHVuZyBidW9jIHhheSBkdW5nIHBob25nIGx1dSB0cnUgZGkgc2FuIHZhbiBob2EgY29uZyBjaGll bmcgdGFpIFRydW5nIHRhbSBEdSBsaWV1IERpIHNhbiB2YW4gaG9hIChWaWVuIFZhbiBob2EgLSBU aG9uZyB0aW4sIEJvIFZhbiBob2EgLSBUaG9uZyB0aW4pLiBQaG9uZyBuYXkgc2UgY2F0IGdpdSBj YWMgdGFpIGxpZXUgY28sIHRhaSBsaWV1IHZpZXQgdGF5LCBobyBzbyBkaWVuIGRhLCBiYW5nIGdo aSBhbSwgZ2hpIGhpbmgsIGFuaCB0YWkgbGlldSwgYW5oIGhpZW4gdHJhbmcgdi52Li4uIGxpZW4g cXVhbiBkZW4gY29uZyBjaGllbmcgdmEgdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuLiAN Ci0gVHVuZyBidW9jIHhheSBkdW5nIHBob25nIGRpIHNhbiB2YW4gaG9hIHBoaSB2YXQgdGhlIHRh aSBjYWMgYmFvIHRhbmcgdGluaCBvIGNhYyB0aW5oOiBLb24gVHVtLCBHaWEgTGFpLCBEYWMgTGFj LCBEYWMgTm9uZywgTGFtIERvbmcsIGRlIGx1dSB0cnUsIGdpb2kgdGhpZXUgY2FjIGRpIHNhbiB2 YW4gaG9hIHBoaSB2YXQgdGhlIGN1YSBjYWMgZGFuIHRvYyBvIFRheSBOZ3V5ZW4sIHRyb25nIGRv IGNvIGRpIHNhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIGNobyBjb25nIGRvbmcgdmEga2hhY2ggdGhh bSBxdWFuIHRyb25nIG51b2MsIG51b2MgbmdvYWkiLiANCg0KKk5nYWkgREFPIFRBQyBJSTogDQoi VHVuZyBidW9jIHhheSBkdW5nIFBob25nIGx1dSB0cnUgZGkgc2FuIHZhbiBob2EgY29uZyBjaGll bmcgVGF5IE5ndXllbiB0YWkgVHJ1bmcgdGFtIER1IGxpZXUgZGkgc2FuIHZhbiBob2EgKFZpZW4g VmFuIGhvYSAtIFRob25nIHRpbikgdmEgdGFpIGJhbyB0YW5nIGNhYyB0aW5oIFRheSBOZ3V5ZW4i LiANCg0KKiBHUyBUbyBOZ29jIFRoYW5oOiANCiItVG8gY2h1YyBtb3QgZG9pIG5ndSBjYWMgbmhh IG5naGllbiBjdXUgY28gY2h1eWVuIG1vbiB2ZSBhbSBuaGFjIHRydXllbiB0aG9uZywgdmUgdmFu IGhvYSwgbGljaCBzdSBUYXkgTmd1eWVuIG5oYW0gdGh1YyBoaWVuIGNhYyBkZSB0YWkgbmdoaWVu IGN1dSBraG9hIGhvYyB2ZSBhbSBuaGFjIHRydXllbiB0aG9uZywgdmFuIGhvYSwgbGljaCBzdSBU YXkgTmd1eWVuIGRlIHhheSBkdW5nIG1vdCBjaGllbiBsdW9jIGRhaSBoYW4gY2hvIHZpZWMgcGh1 YyBob2ksIGJhbyB0b24gdmEgcGhhdCBodXkgZGkgc2FuIGNvbmcgY2hpZW5nIHZhIHZhbiBob2Eg Y29uZyBjaGllbmcgVGF5IE5ndXllbi4gDQotRGF5IG1hbmggY29uZyB0YWMgZGFvIHRhbyB0cm9u ZyBjYWMgdHJ1b25nIG5naGUgdGh1YXQgY3VhIGhhaSB0aW5oIEdpYSBMYWksIERhYyBMYWMsIHRy dW9uZyBEYWkgaG9jIFRheSBOZ3V5ZW4gdmUgY29uZyBjaGllbmcgdmEga2hvbmcgZ2lhbiB2YW4g aG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW46IHBoYW4gZGF1IGRlIGNvIG1vdCBnaWFvIHRyaW5o IHZlIGNvbmcgY2hpZW5nIHZhIGtob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1 eWVuIHRyb25nIGNhYyBuaGEgdHJ1b25nIG5heSIuIA0KDQoqTmdhaSBEQU8gVEFDIElJOiANCiJY YXkgZHVuZyBtb3QgY2hpZW4gbHVvYyBkYWkgaGFuIGNobyB2aWVjIHBodWMgaG9pLCBiYW8gdG9u IHZhIHBoYXQgaHV5IGRpIHNhbiBjb25nIGNoaWVuZyB2YSB2YW4gaG9hIGNvbmcgY2hpZW5nIFRh eSBOZ3V5ZW4uIERheSBtYW5oIGNvbmcgdGFjIGRhbyB0YW8gdHJvbmcgY2FjIHRydW9uZyBuZ2hl IHRodWF0IHZlIGNvbmcgY2hpZW5nIHZhIEtob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBU YXkgTmd1eWVuIi4gDQoNCiogR1MgVG8gTmdvYyBUaGFuaDogDQoiLVF1YW5nIGJhIHZhIHR1eWVu IHRydXllbiB2ZSBjb25nIGNoaWVuZyB2YSB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4g Y2hvIGtoYWNoIHRoYW0gcXVhbiwgZHUgbGljaCB0YWkgY2FjIGRpZW0gZHUgbGljaCBvIFRheSBO Z3V5ZW4sIGNobyBuaGFuIGRhbiB0cm9uZyBjYSBudW9jIHZhIFZpZXQga2lldSBvIG51b2Mgbmdv YWkiLiANCg0KKk5nYWkgREFPIFRBQyBJSTogDQoiVG8gY2h1YyBiaWV1IGRpZW4sIGdpb2kgdGhp ZXUgdHJlbiBjYWMgcGh1b25nIHRpZW4gdGhvbmcgdGluIGRhaSBjaHVuZywgbyBjYWMgdHJ1b25n IGhvYyBkZSBuYW5nIGNhbyB0cmluaCBkbyB0aHVvbmcgdGh1YyBjdWEgbW9pIHRhbmcgbG9wIG5o YW4gZGFuIHZlIGNvbmcgY2hpZW5nIHZhIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi4g TW8gcm9uZyBjb25nIHRhYyB0dXllbiB0cnV5ZW4gZGVuIGtoYWNoIGR1IGxpY2ggdHJvbmcgbnVv YyB2YSBudW9jIG5nb2FpIGRlIG1vaSBuZ3VvaSBoaWV1IGR1b2MgbW90IHRhaSBzYW4gdmFuIGhv YSBwaGkgdmF0IHRoZSB2byBnaWEgZGFuZyBkdW9jIGx1dSBnaXUgdGFpIFRheSBOZ3V5ZW4iLiAN Cg0KKiBHUyBUbyBOZ29jIFRoYW5oOiANCiItVGFuZyBjdW9uZyBob3AgdGFjIGdpYW8gbHV1IHZh biBob2EgdmEgcXVhbmcgYmEgY29uZyBjaGllbmcsIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5n dXllbiB0cm9uZyBwaGFtIHZpIHF1b2MgZ2lhIHZhIHF1b2MgdGUiLiANCg0KKk5nYWkgREFPIFRB QyBJSTogDQoiVGFuZyBjdW9uZyBob3AgdGFjLCBnaWFvIGx1dSB2YW4gaG9hIGRlIHF1YW5nIGJh IGNvbmcgY2hpZW5nIHRyb25nIHBoYW0gdmkgcXVvYyBnaWEgdmEgcXVvYyB0ZSwgbmhhbSB4YXkg ZHVuZyBjYWMgY2h1b25nIHRyaW5oIG5naGllbiBjdXUgdmEgcGh1YyBob2kgS2hvbmcgZ2lhbiB2 YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4iLiANCihDb24gdGllcCkgKEd1aSBsdWMgMjM6 MjIsIDAzLzA4LzA4KQ0KDQpZIGtpZW4gZGllbiBkYW46DQoNCkhvYW5naHVuZzQ1NiBJRCBiYWkg dmlldDogMTMzMzcxNTUNClRob2F0IGRhdSBkb2MgYmFpIEtob25nIGdpYW4gdmFuIGhvYSBjb25n IGNoaWVuZyBUYXkgTmd1eWVuIC0gZGluaCBodW9uZyBiYW8gdG9uIHZhIHBoYXQgaHV5LCB0b2kg Y3UgdHVvbmcgZGF5IGF0IGhhbiBsYSBiYWkgdmlldCBjdWEgbW90IG5ndW9pIG5naGllbiBjdXUg Y29uZyBjaGllbmcgVGF5IE5ndXllbiBjbyB0aGFtIG5pZW4gY29uZyB0YWMgbmhpZXUgbmFtLiBT dSBjbyBkdWMgdHJvbmcgYmFpIHZpZXQgZGEgY2h1bmcgdG8gY2FpIHRhbSBraG9hIGhvYyBjdWEg dGFjIGdpYSBubyByb25nIGxvbiBkZW4gbmh1IHRoZSBuYW8uDQoNClRoZSBuaHVuZyBraGkgYmFj IFRoYW5nIExvbmcgZHVhIHRvYW4gYm8gZHUga2llbiBiYW5nIGNodW5nIHhhYyB0aHVjIHRoaSBu b2kgdGhhdCwgZG9jIGRlbiBkYXUsIHRoYXkgZGllbiBydW90IGRlbiBkYXkuIERhIGNvIDEgdGhh bmcgQ2hpIEJlbiByb2kgZ2lvIGxhaSBjbyB0aGVtIHRoYW5nIENoaSBCZW4gbnVhIGNodXllbiIg Y2hpIGJlbiIgbmdoaWVuIGN1dSBjdWEgbmd1b2kga2hhYy4gDQoNCi1OZ3V5ZW4gQ2hpIEJlbjog IkNvbmcgY2hpZW5nIGRvbmcgdmFpIHRybyBsYSBwaHVvbmcgdGllbiBraGFuZyBkaW5oIGNvbmcg ZG9uZyB2YSBiYW4gc2FjIHZhbiBob2EgZGFuIHRvYyBjdWEgY29uZyBkb25nIGNhYyBkYW4gdG9j IGl0IG5ndW9pIG8gVGF5IE5ndXllbi4uLiBNb2kgZGFuIHRvYyBvIFRheSBOZ3V5ZW4gY28gbW90 IGNhY2ggdG8gY2h1YyBkYW4gY29uZyBjaGllbmcga2hhYyBuaGF1LCBjYWNoIGNob2kgY3VuZyBr aGFjIG5oYXUiLiANCg0KLU5nYWkgZGFvIHRhYyAyOiAiQ29uZyBjaGllbmcgVGF5IE5ndXllbiBn aXUgdmFpIHRybyBsYSBwaHVvbmcgdGllbiBkZSBraGFuZyBkaW5oIGNvbmcgZG9uZyB2YSBiYW4g c2FjIHZhbiBob2EgY2h1bmcgY2FjIGRhbiB0b2MgVGF5IE5ndXllbiBjdW5nIG5odSBjdWEgdHVu ZyB0b2Mgbmd1b2kgdHJlbiBtYW5oIGRhdCBtdW9uIG1hdSwgbXVvbiBzYWMgVGF5IE5ndXllbi4g TW9pIGRhbiB0b2MgVGF5IE5ndXllbiBjbyBtb3QgY2FjaCBjaG9pIGNoaWVuZyBraGFjIG5oYXUi LiANCg0KLU5ndXllbiBDaGkgQmVuOiAiS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRh eSBOZ3V5ZW4gY2h1YSBkdW5nIG5odW5nIGdpYSB0cmkgbm9pIGJhdCBuZ2FuZyB0YW0ga2lldCB0 YWMgc2FuZyB0YW8gY3VhIG5oYW4gbG9haS4gQ29uZyBjaGllbmcga2hvbmcgZG8gY3UgZGFuIFRh eSBOZ3V5ZW4gdHUgZHVjIHJhIG1hIHh1YXQgcGhhdCB0dSBtb3Qgc2FuIHBoYW0gaGFuZyBob2Eg KG11YSB0dSBjYWMgbm9pIGtoYWMgdmUpIGR1b2MgDQpuZ2hlIG5oYW4gY2hpbmggc3VhIHRoYW5o IG1vdCBuaGFjIGN1LiBQaHVvbmcgcGhhcCBjaGluaCBzdWEgY2hpZW5nIGNvbmcgdm9pIHRhaSBh bSBuaGFjIG5oYXkgY2FtIGN1YSBuZ2hlIG5oYW4gc3VhIGNoaWVuZyBkYSB0aGUgaGllbiB0cmlu aCBkbyB0aGFtIGFtIHRpbmggdGUgdmEgaGlldSANCmJpZXQgY2FuIGtlIHZlIGNoZSBkbyBydW5n IHZhIGxhbiB0cnV5ZW4gYW0gdGhhbmggdHJlbiBtYXQgY2hpZW5nIHZhIHRyb25nIGtob25nIGdp YW4uLi4gRGUgZGFwIHVuZyBjYWMgeWV1IGNhdSB0aGUgaGllbiBiYW5nIGFtIG5oYWMga2hhYyBu aGF1LCBjYWMgdG9jIG5ndW9pIFRheSBOZ3V5ZW4gZGEgbHVhIGNob24gbmhpZXUgYmllbiBjaGUg ZGFuIGNvbmcgY2hpZW5nIGtoYWMgbmhhdS4iDQoNCi1OZ2FpIGRhbyB0YWMgMjogIkdpYSB0cmkg bm9pIGJhdCBjdWEgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gbGEg bm9pIGRheSBjaHVhIGR1bmcgbmh1bmcgZ2lhIHRyaSBzYW5nIHRhbyBtYW5nIHRhbSBraWV0IHRh YyBjdWEgbmhhbiBsb2FpLiBDaHUgbmhhbiBjdWEgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hp ZW5nIFRheSBOZ3V5ZW4gbGEgZG9uZyBiYW8gY2FjIGRhbiB0b2MgdGhpZXUgc28gVGF5IA0KTmd1 eWVuLiBDdSBkYW4gVGF5IE5ndXllbiBraG9uZyB0dSBkdWMgZHVvYyBjb25nIGNoaWVuZywgbmh1 bmcgdm9pIGRvaSB0YWkgdmEgdGFtIGhvbiBhbSBuaGFjIG5oYXkgY2FtIGhvIGRhIG5hbmcgZ2lh IHRyaSBjdWEgbW90IHNhbiBwaGFtIGhhbmcgaG9hIHRoYW5oIG1vdCBuaGFjIGN1IA0KdHJpbmgg ZGllbiB0dXlldCB2b2kuIFRyb25nIHRheSBjYWMgbmdoZSBzaSBkYW4gZ2lhbiB0YWkgaG9hIG8g Y29uZyBkb25nLCBtb2kgY2hpZWMgY2hpZW5nIGdpdSBuaGllbSB2dSBtb3Qgbm90IG5oYWMgdHJv bmcgbW90IGRhbiBuaGFjLCBkZSBiaWV1IGRpZW4gY2FjIGJhbiBuaGFjIGNoaWVuZyBraGFjIA0K bmhhdS4gRG9uZyB0aG9pLCB0dXkgdGhlbyB0dW5nIGRhbiB0b2MsIGhvIGRhIHNhcCB4ZXAsIGRp bmggYmllbiB0aGFuaCBjYWMgZGFuIG5oYWMga2hhYyBuaGF1Ii4gDQoNClhlbSBtYXkgZG9hbiBk YW8gdmFuIGN1YSBOZ2FpIERBTyBUQUMgMiwgbW9pIHRoYXkgaGFuIGNvIHZlIGNvIGt5IHRodWF0 IGRhbyB2YW4gZ2lvaSBob24gUEdTLiBUUyBOZ3V5ZW4gQ2hpIEJlbi4gQmVuIGNhbmggbmh1bmcg Y2F1IGNoZXAgbmd1eWVuIHZhbiBjdWEgTmd1eWVuIA0KQ2hpIEJlbiAobWEgdGh1YyByYSBsYSBj dWEgY3UgVG8gTmdvYyBUaGFuaCksIGxhbyBEQU8gVEFDIDIgbmF5IHZvIGJlbyB2YXQgdGVwIHJh dCBraG9uIGtoZW8sIGtob25nIG5ndSBuaHUgYW5oIENoaSBCZW4gLSBiZW4gY2hpIHZ1b24gbGVu IG1hdCB0aG90LiANCg0KRW0gY2hvIGRlbiBsdWMgYmFjIGNvbmcgYm8gY2hpbmggdGh1YyBrZSBE T05HIERBTyBUQUMgdm9pIE5ndXllbiBDaGkgQmVuIGtpYSBsYSB0aGFuZyBuYW8/IFRoYW4gb2kg Y2hvIGNhaSBuZW4ga2hvYSBob2MgbnVvYyBuaGEsIGFuIGNhcCBuZ2hpZW4gY3V1LCBhbiBjYXAg dmFuIA0KY2h1b25nIGN1YSBuZ3VvaSB0YSB0cmFuZyB0cm9uLCB0aG8gYmksIHZvIGhvYyBkZW4g dGhlIG1hIHZhbiBuaG9uIG5ob24ga2hvbmcgYmlldCBuaHVjIGxhIGNhaSBnaSEgDQooR3VpIGx1 YyAyMTozNywgMDQvMDgvMDgpDQoNCkNhaWJhbmc3dHVpOiBJRCBiYWkgdmlldDogMTMzNDMxNjQ6 DQpCYWMgVGhhbmctTG9uZyBxdWEgbGEgY2hpIGx5Lg0KTmdhaSBEQU8gVEFDIElJIGNoYWMgY2hh biBsYSBxdWFuIGNodWMgY2FwIGNhbyENCiANCkJPTlVTOiANCktoaSBuZ3VvaSB0aG8gZHVjIG11 YSBoYXkga2llbSBkb25nIHZlIGR1biBjaGF5IGRlIGR1YyBjb25nLCBkdWMgY2hpZW5nLCBjbyBB SSBuYW8gbmd1IHNpIGRhbiBkb24gZGVuIG11YyBsYWkgbmdoaSByYW5nICJjYWkgQ09ORywgQ0hJ RU5HIHRhIHNhcCBkdWMgcmEga2hvbmcgcGhhaSBsYSANCk5IQUMgQ1UsIGNoaSBsYSBIQU5HIEhP QSB0aG9pLiBUaGUgbmVuIHRhIHNlIHBoYWkgbWFuZyBDT05HLCBDSElFTkcgbGVuIGJhbiAgY2hv IGRvbmcgYmFvIFRBWSBOR1VZRU4sIGRlIGhvIGJpZW4gY2h1bmcgdGhhbmggTkhBQyBDVS4iIA0K S2hvbmcgdGhlIHR1b25nIHR1b25nIGR1b2MhICANCihHdWkgbHVjIDE2OjA3LCAwNS8wOC8wOCkN Cg0KVmlldHZhbnh1YW46IElEIGJhaSB2aWV0OiAxMzM2NzcwNA0KQmFjIHRoYW5nbG9uZzQ1NiBx dWEgbGEgY29uZyBwaHUgVGhpZXUgTGFtLiBDb24gdm9pIG5naGUgY3VhIGVtLCBuaGluIHZhbyBi YWkgdmlldCIgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4tIGRpbmgg aHVvbmcgYmFvIHRvbiB2YSBwaGF0IGh1eSIsIGNoaSBjYW4gZHVuZyBwaGVwIHNvIHNhbmggZG9p IGNoaWV1IGRhbiB5IGxhIGRhIGNvIHRoZSBrZXQgdG9pIGRhbyB2YW4gY3VhIG9uZyBEQU8gVEFD IDIsIGNodSBjaHVhIGNhbiBwaGFuIHRpY2ggY2F1IGNodSBjaGluaCB4YWMgbmh1IGJhYy4gDQpC YW8gZGUgYmFjIGJpZXQsIHRyb25nIHZhbiBob2MsIHZpZWMgbGF5IHkgdHVvbmcsIG5vaSBkdW5n IGNoaW5oIGhheSBjb3QgdHJ1eWVuIGNvbiBiaSBraGVwIHRvaSBEQU8gVEFDIG51YSBsYSBraWV1 IGFuIGNhcCB0aG8gdGhpZW4gbmh1IE5ndXllbiBDaGkgQmVuIHZhIG9uZyBEQU8gVEFDIDIuIA0K VHJvbmcgdHJ1b25nIGhvcCBhbiBjYXAgbmV1IHRyZW4gY3VhIG9uZyBEQU8gVEFDIDIsIHRoZW8g bHVhdCBkaW5oLCBtdW9uIHRob2F0IHRvaSwgbGFvIG5heSBzZSBwaGFpIHZhbiBsYXkgQ2hpIEJl biBuaGEgZW0gZGUgeGluIGR1b2Mgc3UgZHVuZyAicXV5ZW4gZG9uZyB0YWMgZ2lhIiB2aSBjaG90 IG5obyBkYW8gdmFuIGN1YSBhbmggQ2hpIEJlbi4gDQoNCk5odW5nIGtob24gbm9pLCBiYW4gdGhh biBDaGkgQmVuIHZvbiBsYWkgYW4gY2FwIGNhYyBuZ2hpZW4gY3V1IGN1YSBHUyBUbyBOZ29jIFRo YW5oIG5lbiB2ZSBtYXQgcGhhcCBseSwgb25nIERBTyBUQUMgMiBsYWkgcGhhaSBibyBkZW4gbmhh IGN1IFRoYW5oIG1hIHhpbiBjdSB0aGEgdG9pLCBjaG8gcGhlcCBkdW9jICJkb25nIHRhYyBnaWEi IGdpb25nIG5odSBraWV1IENoaSBCZW4gbmhhIGVtIGRhIHZhbiBsYXkgb25nIGN1IDEgZG9pIGxh biANCm5odW5nIGtob25nIGR1b2MgR1MgY2hhcCBuaGFuLiBUaGVvIGVtIGJpZXQgdGhpIHRyb25n IGJ1b2kgeGluIHhvIGRvLCBDaGkgQmVuIGNvbiBkYW5nIHRhbSBiaWEgY2h1eWVuIGxhIHZvIGRh bmcgYmkgdW5nIHRodSBkZSBtb25nIEdTIFRoYW5oIHJ1IGxvbmcgdGh1b25nIHhvdC4gQmFjIA0K bmFvIG11b24gYmlldCB0aGkgY3UgbGllbiBoZSB2b2kgUEdTLiBUUy4gTkdVVCBOZ3V5ZW4gQ2hp IEJlbiBkZSBuYW0gcm8gdGhlbSBuZ3VvbiBjb24gbmhlISANCg0KVHJvbmcgYmFpIGRhbyB2YW4g Y3VhIG9uZyBEQU8gVEFDIDIsIGN1bmcgZ2lvbmcgbmh1IENoaSBCZW4gbmhhIGVtLCBkb2FuIG5h byBtYSBhbiBjYXAgY3VhIEdTIFRvIE5nb2MgVGhhbmggdGhpIiBuZ29uIGxhbmgiLiBOaHVuZyBo ZSBjdSBzYW5nIHRhbywgcGhhdCB0cmllbiB0aGVtIGxhIHkgbmh1IHJhbmcgbG9pIGNhaSBkdW9p IG5ndSBkb3Qgbm9pIHBoZXQuDQoNCkNodXllbiBDT05HIENISUVORyBIQU5HIEhPQSBLSE9ORyBQ SEFJIExBIENPTkcgQ0hJRU5HIE5IQUMgQ1UgbWEgdGhhbmggdmllbiAiY2FpYmFuZzd0dWkiIHBo YW4gdGljaCBsYSB2aSBkdSBkaWVuIGhpbmguIE5nb2FpIHJhLCB0cm9uZyIga2hhdSBraGkgdmkg bW8iIGtpZXUgbGFuaCBkYW8sIGhheSB4ZW0gZG9hbiB2YW4gbmF5IGN1YSBvbmcgREFPIFRBQyAy OiAiSGFuZyB0cmFtLCBoYW5nIG5naGluIA0KbmFtIG5heSwgbmh1bmcgdGhhbmcgdHJhbSBsaWNo IHN1IGtob25nIHRhY2ggY29uZyBjaGllbmcgcmEga2hvaSBkb2kgc29uZyBjb25nIGRvbmcuIERh YyBkaWVtIG5heSBjdWEgY29uZyBjaGllbmcgVGF5IE5ndXllbiB2dWEgbGEgdGh1YW4gbG9pLCBk b25nIHRob2kgY3VuZyB2dWEgbGEga2hvIA0Ka2hhbiB0cm9uZyB2aWVjIGJhbyB0b24gdmEgcGhh dCBodXkgZ2lhIHRyaSBjdWEgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5 ZW4iLiANCg0KQ2FjIGJhYyB0aHUgeGVtIGtpZXUgeGFjIGRpbmggdmFuZyBtYW5nIGxpY2ggc3Ui IEhhbmcgdHJhbSwgaGFuZyBuZ2hpbiBuYW0iIGN1YSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuIGxh IGNhaSBraWV1IGdpLCBuZXUga2hvbmcgcGhhaSBsYSBub2kgbGFvPz8/IENoYW4gdmFpIGNobyB0 cmkgdHVlIGN1YSBvbmcgREFPIFRBQyAyISEhIA0KKEd1aSBsdWMgMTU6MjgsIDA4LzA4LzA4KQ0K DQpodHRwOi8vdHR2bm9sLiBjb20vZm9ydW0vdmFuaG9jLzg2NjY0Mi90cmFuZy05Ny4gdHR2biAN CnRoYW5nbG9uZzQ1NiBJRCBiYWkgdmlldDogMTMzODI2NzAgDQoNClBHUy4gVFMgTkdVWUVOIENI SSBCRU4gQkkgREFPIFZBTj8/PyAocGhhbiB0aWVwKSANCg0KRGUgcXV5IHZpIHRpZW4gc28gc2Fu aCwgdHJ1b2MgbmhhdCB4aW4gcG9zdCB0aGFuZyBsZW4gZGF5IHBoYW4gY2h1b25nIHRyaW5oIEtl IGhvYWNoIGhhbmggZG9uZyAoY2hpIHRpZXQgdHUgbXVjIGcpIHRyb25nIGJhbiBobyBzbyIgVnVu ZyB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4iIChiYW4gZ29jKSBkbyBHUy4gVFNLSCBU byBOZ29jIFRoYW5oIGNoYXAgYnV0LiANCg0KRGUgdmlldCBkdW9jIGJhbiBobyBzbyBjb25nIHBo dSBuYXksIEdTIFRoYW5oIGRhIGtpbmggcXVhIG5oaWV1IG5hbSB0aGFuZyBsYW4gbG9uIGRpZW4g ZGEsIG5naGllbiBjdXUgY29uZyBjaGllbmcgdHJlbiBkYWkgVHJ1b25nIFNvbiBodW5nIHZpLiBO aHUgZHUgbHVhbiAyIG5hbSBxdWEgZGEgc2FuZyB0bywgZGF5IGxhIG5ndW9uIHRhaSBsaWV1IGNo aW5oIGRlIFZpZW4gdHJ1b25nIFZpZW4gVmFuIGhvYSAtbmdoZSB0aHVhdCBOZ3V5ZW4gQ2hpIEJl biBuZ2FuZyBuaGllbiBhbiBjYXAgdHJhbmcgdHJvbiwgYmllbiB0aGFuaCB0cmkgdGh1YyByaWVu ZyBjdWEgaGFuLiANCltodHRwOi8vbXkub3BlcmEuY29tL2VkdS5jb20udm4vYmxvZy9dDQoNCjUu IEtFIEhPQUNIIEhBTkggRE9ORyANCg0KZy4gKSBLZSBob2FjaCBjaGkgdGlldCANCg0KZy4xLikg R2lhaSBkb2FuIDIwMDUtMjAwNzogDQoNCi0gRGF5IG1hbmggY29uZyB0YWMga2hhbyBzYXQgZGll biBkYSwgZ2FwIGdvLCB0cmFvIGRvaSB2b2kgY2FjIG5naGUgbmhhbiBjdW5nIG5odSBjYWMgY29u ZyBkb25nIGx1dSBnaXUgZGkgc2FuIHZhbiBob2EgY29uZyBjaGllbmcgbyA1IHRpbmggVGF5IE5n dXllbiB2YSB2dW5nIHBodSBjYW4gbmhhbSBzdXUgdGFtLCBnaGkgY2hlcCBuaHVuZyBiYWkgY2hp ZW5nLCBuaHVuZyBzaW5oIGhvYXQgdmFuIGhvYSwgYW0gbmhhYyBnYW4gYm8gdm9pIA0KY29uZyBj aGllbmcgbmhhbSB0aGlldCBsYXAgY28gc28gY3UgdGhlLCB4YWMgdGh1YywgdnVuZyBjaGFjIG5o dW5nIHZhbiBkZSBsaWVuIHF1YW4gZGVuIGNvbmcgY2hpZW5nIHZhIHZhbiBob2EgY29uZyBjaGll bmcgbyBUYXkgTmd1eWVuLiANCg0KLSBEYXkgbWFuaCBjb25nIHRhYyB0aW0ga2llbSBjYWMgbmd1 b24gdGFpIGxpZXUgbGllbiBxdWFuIGRlbiBjb25nIGNoaWVuZyB2YSB2YW4gaG9hIGNvbmcgY2hp ZW5nIFRheSBOZ3V5ZW4uIFRodWMgdGUgY2hvIHRoYXkgY2FjIG5ndW9uIHRhaSBsaWV1IG5heSB0 YW4gbWF0LCBwaGFuIHRhbiBvIGNhYyBraG8gbHV1IHRydSwgdGh1IHZpZW4sIHR1IHNhY2ggdHUg bmhhbiB0cm9uZyB2YSBuZ29haSBudW9jLiBEbyB2YXksIHBoYWkgY28ga2UgaG9hY2ggaG9wIHRh YyBkZSB0aW0ga2llbSwgYm8gc3VuZy4gDQoNCi0gVG8gY2h1YyBuZ2hpZW4gY3V1IGtob2EgaG9j IHZlIGNvbmcgY2hpZW5nIHZhIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiBtb3QgY2Fj aCBoZSB0aG9uZyB2YSB0b2FuIGRpZW4gbyA1IHRpbmggVGF5IE5ndXllbiB2YSB2dW5nIHBodSBj YW4uIA0KDQotIFRvIGNodWMgY2FjIGN1b2MgaG9pIHRoYW8sIHRvYSBkYW0sIGhvaSBuZ2hpIGto b2EgaG9jIHF1eSBtbyB0aW5oLCB2dW5nLCBxdW9jIGdpYSwgcXVvYyB0ZSBuaGFtIGxheSB5IGtp ZW4gY3VhIGNhYyBuaGEgY2h1eWVuIG1vbiwgY2FjIG5naGUgbmhhbiBkZSB4YXkgZHVuZyBjbyBz byBkdSBsaWV1IGtob2EgaG9jIGRvaSB2b2kgY29uZyBjaGllbmcgdmEgdmFuIGhvYSBjb25nIGNo aWVuZyBUYXkgTmd1eWVuLiANCg0KLSBUdW5nIGJ1b2MgeGF5IGR1bmcgcGhvbmcgbHV1IHRydSBk aSBzYW4gdmFuIGhvYSBjb25nIGNoaWVuZyB0YWkgVHJ1bmcgdGFtIER1IGxpZXUgRGkgc2FuIHZh biBob2EgKFZpZW4gVmFuIGhvYSAtIFRob25nIHRpbiwgQm8gVmFuIGhvYSAtIFRob25nIHRpbiku IFBob25nIG5heSBzZSBjYXQgDQpnaXUgY2FjIHRhaSBsaWV1IGNvLCB0YWkgbGlldSB2aWV0IHRh eSwgaG8gc28gZGllbiBkYSwgYmFuZyBnaGkgYW0sIGdoaSBoaW5oLCBhbmggdGFpIGxpZXUsIGFu aCBoaWVuIHRyYW5nIHYudi4uLiBsaWVuIHF1YW4gZGVuIGNvbmcgY2hpZW5nIHZhIHZhbiBob2Eg Y29uZyBjaGllbmcgVGF5IE5ndXllbi4gDQoNCi0gVHVuZyBidW9jIHhheSBkdW5nIHBob25nIGRp IHNhbiB2YW4gaG9hIHBoaSB2YXQgdGhlIHRhaSBjYWMgYmFvIHRhbmcgdGluaCBvIGNhYyB0aW5o OiBLb24gVHVtLCBHaWEgTGFpLCBEYWMgTGFjLCBEYWMgTm9uZywgTGFtIERvbmcsIGRlIGx1dSB0 cnUsIGdpb2kgdGhpZXUgY2FjIGRpIHNhbiB2YW4gDQpob2EgcGhpIHZhdCB0aGUgY3VhIGNhYyBk YW4gdG9jIG8gVGF5IE5ndXllbiwgdHJvbmcgZG8gY28gZGkgc2FuIHZhbiBob2EgY29uZyBjaGll bmcgY2hvIGNvbmcgZG9uZyB2YSBraGFjaCB0aGFtIHF1YW4gdHJvbmcgbnVvYywgbnVvYyBuZ29h aS4gDQoNCi0gVG8gY2h1YyBtb3QgZG9pIG5ndSBjYWMgbmhhIG5naGllbiBjdXUgY28gY2h1eWVu IG1vbiB2ZSBhbSBuaGFjIHRydXllbiB0aG9uZywgdmUgdmFuIGhvYSwgbGljaCBzdSBUYXkgTmd1 eWVuIG5oYW0gdGh1YyBoaWVuIGNhYyBkZSB0YWkgbmdoaWVuIGN1dSBraG9hIGhvYyB2ZSBhbSBu aGFjIHRydXllbiB0aG9uZywgdmFuIGhvYSwgbGljaCBzdSBUYXkgTmd1eWVuIGRlIHhheSBkdW5n IG1vdCBjaGllbiBsdW9jIGRhaSBoYW4gY2hvIHZpZWMgDQpwaHVjIGhvaSwgYmFvIHRvbiB2YSBw aGF0IGh1eSBkaSBzYW4gY29uZyBjaGllbmcgdmEgdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1 eWVuLiANCg0KLSBMYXAga2UgaG9hY2ggdmEgY2hpbmggc2FjaCB0cmluaCBsZW4gY2FjIGNhcCBj byB0aGFtIHF1eWVuIHRob25nIHF1YSBjYWMgY2hlIGRvIGRhaSBuZ28gdmEgdG9uIHZpbmggY2Fj IG5naGUgbmhhbjogTmdoZSBuaGFuIGxlbiBkYXkgY2hpZW5nLCBuZ2hlIG5oYW4gdHJpbmggZGll biwgbmdoZSANCm5oYW4gbXVhIHhvYW5nIGRlIHRyYW5oIHRodSBzdSB0cnV5ZW4gbmdoZSBjdWEg Y2FjIHRoZSBoZSBnaWEgY2hvIGNhYyB0aGUgaGUga2UgdGllcCBjYSB2ZSBraWVuIHRodWMgbGFu IGtpbmggbmdoaWVtLiANCg0KLSBMYXAga2UgaG9hY2ggdmEgY2hpbmggc2FjaCBkZSB0byBjaHVj IHRodW9uZyB4dXllbiBjYWMgc2luaCBob2F0IHZhbiBob2EgbGllbiBxdWFuIGRlbiBjb25nIGNo aWVuZyB0YWkgY29uZyBkb25nIGRlIG5hbmcgY2FvIG5pZW0gdHUgaGFvIGN1YSBjb25nIGRvbmcg dHJvbmcgdmllYyBiYW8gdG9uIA0KZGkgc2FuIHZhbiBob2EgcGhpIHZhdCB0aGUgbmF5LiBOZ2Fu IGNoYW4gY28gaGlldSBxdWEgbmFuIGNoYXkgbWF1IGNvbmcgY2hpZW5nIG8gY2FjIGNvbmcgZG9u ZyBkYW4gY3UgY2FjIGRhbiB0b2MgdGhpZXUgc28gbyBUYXkgTmd1eWVuLiANCg0KLSBEYXkgbWFu aCBjb25nIHRhYyBkYW8gdGFvIHRyb25nIGNhYyB0cnVvbmcgbmdoZSB0aHVhdCBjdWEgaGFpIHRp bmggR2lhIExhaSwgRGFjIExhYywgdHJ1b25nIERhaSBob2MgVGF5IE5ndXllbiB2ZSBjb25nIGNo aWVuZyB2YSBraG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IA0KTmd1eWVuOiBwaGFu IGRhdSBkZSBjbyBtb3QgZ2lhbyB0cmluaCB2ZSBjb25nIGNoaWVuZyB2YSBraG9uZyBnaWFuIHZh biBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiB0cm9uZyBjYWMgbmhhIHRydW9uZyBuYXkuIA0K DQotIFF1YW5nIGJhIHZhIHR1eWVuIHRydXllbiB2ZSBjb25nIGNoaWVuZyB2YSB2YW4gaG9hIGNv bmcgY2hpZW5nIFRheSBOZ3V5ZW4gY2hvIGtoYWNoIHRoYW0gcXVhbiwgZHUgbGljaCB0YWkgY2Fj IGRpZW0gZHUgbGljaCBvIFRheSBOZ3V5ZW4sIGNobyBuaGFuIGRhbiB0cm9uZyBjYSBudW9jIHZh IFZpZXQga2lldSBvIG51b2MgbmdvYWkuIA0KDQpnLjIuKSBHaWFpIGRvYW4gMjAwOC0yMDA5OiAN Cg0KLSBQaHVjIGhvaSBjYWMgc2luaCBob2F0IHZhbiBob2EgbyBjYWMgY29uZyBkb25nIGRhbiB0 b2MgdGFpIDUgdGluaCBUYXkgTmd1eWVuIGRlIHRhbyBtb2kgdHJ1b25nIGRpZW4geHVvbmcgY3Vh IGNvbmcgY2hpZW5nIHZhIHNpbmggaG9hdCB2YW4gaG9hIGNvbmcgY2hpZW5nLiANCg0KLSBUaGFu aCBsYXAgeHVvbmcgY2hlIHRhYyBjb25nIGNoaWVuZyBkZSBkdWMgY29uZyBjaGllbmcgY2hvIGRv bmcgYmFvIGNhYyBkYW4gdG9jIHRoaWV1IHNvIG5vaSBkYXkuIA0KDQotIFRhbmcgY3VvbmcgaG9w IHRhYyBnaWFvIGx1dSB2YW4gaG9hIHZhIHF1YW5nIGJhIGNvbmcgY2hpZW5nLCB2YW4gaG9hIGNv bmcgY2hpZW5nIFRheSBOZ3V5ZW4gdHJvbmcgcGhhbSB2aSBxdW9jIGdpYSB2YSBxdW9jIHRlLiAN Cg0KLSBUYXAgdHJ1bmcgY2FjIGRlIHRhaSBuZ2hpZW4gY3V1IGRlIGxhbSBybyBnaWEgdHJpIGN1 YSBjb25nIGNoaWVuZyB2YSBraG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXll bi4gWGF5IGR1bmcgY2FjIGJpZW4gcGhhcCwgZ2lhaSBwaGFwIGRlIHRodWMgdGhpIGNvIGhpZXUg cXVhIA0KQ2h1b25nIHRyaW5oIHBodWMgaG9pLCBiYW8gdG9uIGRpIHNhbiB2YW4gaG9hIGNvbmcg Y2hpZW5nIHRyb25nIGtob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuLiAN Cg0KLSBCaWVuIHNvYW4gdmEgeHVhdCBiYW4gY2FjIHZhbiBob2EgcGhhbSB2ZSBraG9uZyBnaWFu IHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiAodG8gZ2FwLCBzYWNoIG5naGllbiBjdXUs IHNhY2ggYW5oLCBkaWEgQ0QsIFZDRCwgRFZEIHYudi4uLiApIGRlIHR1eWVuIHRydXllbiB2ZSBn aWEgdHJpIGN1YSBraG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi4gDQoN Ci0gVHJhbmggdGh1IG1vaSBuZ3VvbiBraW5oIHBoaSBkZSBkYXUgdHUgY2hvIGNvbmcgdGFjIGRh byB0YW8gc3V1IHRhbSwgbmdoaWVuIGN1dSB2LnYuLi4gDQpoLikgTXVjIHRpZXUgbGF1IGRhaSAN Ci0gTGFtIHBodWMgaG9pIGRpIHNhbiB2YW4gaG9hIHBoaSB2YXQgdGhlIGN1YSBraG9uZyBnaWFu IHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi4gVGFwIHRydW5nIHBoYXQgdHJpZW4gc2lu aCBob2F0IHZhbiBob2EgY29uZyBjaGllbmcgdGFpIGNhYyBjb25nIGRvbmcgZGFuIGN1LCBjaHUv IGtoYWNoIHRoZSBjdWEgdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuLiANCg0KLSBMYW0g aG9pIHNpbmggdmEgcGhhdCBodXkgbW90IGRpIHNhbiB2YW4gaG9hIHBoaSB2YXQgdGhlIGN1YSBj b25nIGRvbmcgY2FjIGRhbiB0b2MgVmlldCBOYW0gY28gbGljaCBzdSBwaGF0IHRyaWVuIGxhdSBk b2kgdGllcCB0dWMgcGhhdCBodXkgbmh1bmcgZ2lhIHRyaSBheSB0cm9uZyBib2kgY2FuaCBtb2kg Y3VhIGRhdCBudW9jIHZhIGtodSB2dWMuIA0KDQppLikgTXVjIHRpZXUgdHJ1b2MgbWF0IA0KLSBO Z2FuIGNoYW4gY28gaGlldSBxdWEgc3UgbWFpIG1vdCwgbmd1eSBjbyBiaWVuIG1hdCBkaSBzYW4g dmFuIGhvYSBjb25nIGNoaWVuZyB0cm9uZyBib2kgY2FuaCB4YSBob2kgVmlldCBOYW0gbm9pIGNo dW5nLCBUYXkgTmd1eWVuIG5vaSByaWVuZyBuZ2F5IGNhbmcgY28gbmhpZXUgc3UgcGhhdCB0cmll biB0aGVvIGh1b25nIGhpZW4gZGFpIGhvYSwgZGFjIGJpZXQgdHJvbmcgZGlldSBraWVuIGNvbmcg ZG9uZywgbmhhdCBsYSBnaW9pIHRyZSBjbyBzdSANCnRoYXkgZG9pIG5oYW4gdGh1YyB0aGFtIG15 LCB4YSBkb2kgZGkgc2FuIHZhbiBob2EgY3VhIGNhYyB0aGUgaGUgdGllbiBuaGFuLiANCi0gR2l1 IGdpbiBuaHVuZyBnaWEgdHJpIGRhbmcgdG9uIHRhaSB2YSBwaGF0IGh1eSBubyB0cm9uZyBkb2kg c29uZyBjdWEga2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4uIA0KDQpr LikgS2V0IHF1YSBtb25nIGRvaSANCktob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkg Tmd1eWVuIGR1b2MgcGh1YyBob2ksIGJhbyB0b24gdmEgcGhhdCBodXkgbmh1bmcgZ2lhIHRyaSBk aWNoIHRodWMgY3VhIGNhYyBkaSBzYW4gdmFuIGhvYSBwaGkgdmF0IHRoZSBnYW4gdm9pIGNvbmcg ZG9uZyBkYW4gY3Ugbm9pIGRheS4gDQpDb25nIGNoaWVuZyB2YSBjYWMgc2luaCBob2F0IHZhbiBo b2EgZ2FuIGJvIHZvaSBjb25nIGNoaWVuZyB0aHVjIHN1IHRybyB0aGFuaCBoYW5oIHRyYW5nIHRp bmggdGhhbiBjdWEgY29uIG5ndW9pLCB0aGFuaCBkb25nIGx1YyBjdWEgc3UgcGhhdCB0cmllbiBu aHUga2h1eWVuIG5naGkgY3VhIFVORVNDTy4gDQoNCk5odSBjaHVuZyB0b2kgZGEgcGhhbiB0aWNo IGJhaSBkYW8gdmFuIiBLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi0g ZGluaCBodW9uZyBiYW8gdG9uIHZhIHBoYXQgaHV5IiBjdWEgTmdhaSBEQU8gVEFDIElJLCBkbyBs YSBzdSBhbiBjYXAgdHJhbmcgdHJvbiBjYWMgbmdoaWVuIGN1dSBnYW4gcnVvdCBjdWEgMSBob2Mg Z2lhIG5naGllbiBjdXUgY29uZyBjaGllbmcgaGFuZyBkYXUgbmh1IEdTIFRvIE5nb2MgVGhhbmgu IFRyb25nIGRvLCB5IGN1bmcgbG8gcm8gc3UgImNhbSBuaGFtIiBtb3QgY2FjaCBuZ28gbmdoaW5o ICJ2YW4gdmUiIGN1YSBEQU8gVEFDIE5ndXllbiBDaGkgQmVuLiANCg0KQmF5IGdpbywgeGluIHRp ZXAgdHVjIGNvbmcgYm8gYmFpIGRhbyB2YW4gdGh1IDIgY3VhIE5nYWkgREFPIFRBQyBJSS4gQmFp IHZpZXQgY28gbmhhbiBkZSAiQmFvIHRvbiwgcGhhdCBodXkgZ2lhIHRyaSBLaG9uZyBnaWFuIHZh biBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiIuIE8gZGF5LCBjaGkgbmhpbiBjYWkgdGl0IGJh aSB2aWV0IGRhIHRoYXkgZHVvYyBiYW4gY2hhdCB4YW8gbmF1IHRobyB0aGllbiBjdWEgcXV5IG9u ZyBoYW8gZGFuaCBuYXkuICANCiJCYW8gdG9uLCBwaGF0IGh1eSBnaWEgdHJpIEtob25nIGdpYW4g dmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuIiBsaWV1IGNvIGtoYWMgY2hpICJLaG9uZyBn aWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi0gZGluaCBodW9uZyBiYW8gdG9uIHZh IHBoYXQgaHV5Ij8gDQoNCkx1dSB5OiBOaHUgZGEgdGhvbmcgbmhhdCwgImRvYW4gYm9pIHZhbmci IGxhICJjaGVwIG5ndXllbiB2YW4iLCAiZG9hbiBib2kgeGFuaCBsYSBjYXkiIGxhICJkYW8gdmFu IiwgICJ0aGVtIHR1IiwgInhhbyBuYXUiIHRhYyBwaGFtIGdvYyBjdWEgR1MgVG8gTmdvYyBUaGFu aC4gKGFuaCBjaHVwIHRyYW5nIHdlYjogYmFpICJCYW8gdG9uLCBwaGF0IGh1eSBnaWEgdHJpIEto b25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuIiCWIDI3LzMvMjAwNikNCg0K WGluIG5oYWMgbGFpLCB2aSB2YWkgdmUgY3VhIE5nYWkgREFPIFRBQyBJSSByYXQgbG9uLCB2YW8g aGFuZyBRVVlFTiBjYW8gQ0hVQyB0cm9uZyAoY2h1IGtob25nIHBoYWkgRFVDIHRyb25nKSBuZW4g dG9pIHZhbiBjaHVhIGNvbmcgYm8gdGVuIGhvIGN1YSBxdXkgb25nIGFuIGNhcCBuYXkuIERvaSBz YXUga2hpIGNvbmcgYm8gaGV0IGNhYyB0YW5nIGNodW5nIHRoaSBoYXkgbm9pIGRlbiwgaGEgY2hh bmcgcGhhaSBsYW0gcnU/ISANCg0KVHJ1b2MgdGllbiwgaGF5IHhlbSBOZ2FpIERBTyBUQUMgSUkg dGhlIGhpZW4gdGFpICJyYW5nIGNvbSBuZ3VvaSIgYmFuZyB2aWVjIGxheSBjaGluaCBkb2FuIGtl dCBjdWEgYmFpIiBLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi0gZGlu aCBodW9uZyBiYW8gDQp0b24gdmEgcGhhdCBodXkiIGxhbSB5IGRhbiBtbyBkYXUgY2hvIGJhaSIg QmFvIHRvbiwgcGhhdCBodXkgZ2lhIHRyaSBLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcg VGF5IE5ndXllbiIuIEJhbiB0YW5nIHhpbiBiYWkgcGh1YyEgDQoNCi1Eb2FuIG1vIGRhdSBiYWkg IkJhbyB0b24sIHBoYXQgaHV5IGdpYSB0cmkgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5n IFRheSBOZ3V5ZW4iOiAiLi4uIEtob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1 eWVuIGR1b2MgVU5FU0NPIGNvbmcgbmhhbiBsYSBLaWV0IHRhYyBkaSBzYW4gdHJ1eWVuIG1pZW5n IHZhIHBoaSB2YXQgdGhlIGN1YSBuaGFuIGxvYWkuIERheSBsYSBuaWVtIHZ1aSBoZXQgc3VjIGxv biANCmxhbyBuaHVuZyBkb25nIHRob2kgY3VuZyBsYSBtb3QgdHJhY2ggbmhpZW0gbWEgdG8gY2h1 YyBVTkVTQ08gZGEgdHJhbyBjaG8gY2h1bmcgdGE6IFBoYWkgYmFvIHRvbiB2YSBwaGF0IGh1eSBn aWEgdHJpIGN1YSBLaWV0IHRhYyBkaSBzYW4gdHJ1eWVuIG1pZW5nIHZhIHBoaSB2YXQgdGhlIGN1 YSBuaGFuIGxvYWkgbmF5Ii4gDQoNCi1Eb2FuIGtldCBjdWEgYmFpICJLaG9uZyBnaWFuIHZhbiBo b2EgY29uZyBjaGllbmcgVGF5IE5ndXllbi0gZGluaCBodW9uZyBiYW8gdG9uIHZhIHBoYXQgaHV5 IjogIkRVT0MgVU5FU0NPIGNvbmcgbmhhbiBsYSBLaWV0IHRhYyB0cnV5ZW4ga2hhdSB2YSBkaSBz YW4gcGhpIHZhdCB0aGUgY3VhIG5oYW4gbG9haSwgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hp ZW5nIFRheSBOZ3V5ZW4gbGEgbmllbSB0dSBoYW8gY3VhIGNhIG51b2MgdmEgDQpkb25nIHRob2kg dmFuIGRlIGJhbyB0b24sIHBoYXQgaHV5IGdpYSB0cmkgY3VhIG5vIGN1bmcgbGFpIGxhIHZhbiBk ZSBraG9uZyBrZW0gcGhhbiBxdWFuIHRyb25nIHZhIGN1bmcgbGEgbmhpZW0gdnUgY3VhIHRhdCBj YSBtb2kgbmd1b2kgY2h1bmcgdGEuIExhbSB0b3QgY29uZyB2aWVjIGF5IGtob25nIGNoaSBjbyB5 IG5naGlhIGRvaSB2b2kgaG9tIG5heSBtYSBjYSB2b2kgbWFpIHNhdSIuIA0KDQpOaHUgZGEgY29u ZyBibywgdHJlbiBUYXAgY2hpIFR1IHR1b25nIC1WYW4gaG9hIHNvMS8yMDA2LCBkYW8gdGFjIE5n dXllbiBDaGkgQmVuIGN1bmcgY28gYmFpIGRhbyB2YW4gbmhhbiBkZSIgQmFvIHRvbiBraG9uZyBn aWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiIuIA0KRGFtIGd1aSBkYW5nIHNhbiBw aGFtIGFuIGNhcCBsZW4gbW90IHRyYW5nIGJhbyB1eSB0aW4gQ2hpbmggdHJpIGxvbiBuaHUgVGFw IGNoaSBUdSB0dW9uZyAtVmFuIGhvYSwgTmd1eWVuIENoaSBCZW4gZGEgY2hvaSB4bywgcXVhIG1h dCBCYW4gVHV5ZW4gZ2lhbyBUcnVuZyB1b25nIG1vdCBjYWNoIG5nb2FuIG11Yy4gIChBbmggY2h1 cCBiYWkgliBrZW0gdGhlbykNCg0KVG9pIGRhbmcgbGFpIHRyYW5nIGN1b2kgY3VhIGJhaSBiYW8g bmF5IGJvaSBiZW4gY2FuaCBiYW4gaG8gc28gY29uZyBjaGllbmcgY3VhIEdTIFRvIE5nb2MgVGhh bmgsIGRheSBjdW5nIGxhIG5ndW9uIGFuIGNhcCBraG9pIGhhaSBuaGF0IG1hIE5nYWkgREFPIFRB QyBJSSBkYSB0cm8gdHJhbyANCmNoZXAgZGkgY2hlcCBsYWkgbmd1eWVuIHZhbiBuaGlldSB0cnVv bmcgZG9hbi4gRHVvbmcgbmhpZW4sIGJhbiB0aGFuIERBTyBUQUMgTmd1eWVuIENoaSBCZW4gdm9u IGN1bmcgZGEgY2hlcCBsYWkgbmd1eWVuIHZhbiBjdWEgR1MgVGhhbmggKGRvYW4gdmFuIGdhY2gg Y2hhbiB0cm9uZyBiYWkpLiBUaGFuIG9pLCBjYWkgc3UgQU4gQ0FQIGxhaSBjdWEgdGhhbmcgQU4g Q0FQIGxhIHRoZSBkYXkhIFZpIGR1OiANCg0KKkRBTyBUQUMgTmd1eWVuIENoaSBCZW4NCiJUaHUg aGFpIGxhIGJhbyB0b24gdmEgcGh1YyBob2k6IFBodWMgaG9pIG1vaSB0cnVvbmcgZGllbiB4dW9u ZyBjdWEgY29uZyBjaGllbmcgdmEgc2luaCBob2F0IHZhbiBob2EgY29uZyBjaGllbmcsIHRyZW4g cXVhbiBkaWVtIGtlIHRodWEgY28gY2hvbiBsb2MsIGNvbmcgZG9uZyBkYW4gY3UgdHUga2hvaSBw aHVjIGNhYyBzaW5oIGhvYXQgdmFuIGhvYSwgdGluIG5ndW9uZyBsZSBob2kgbmF5IHRoZW8gdHJ1 eWVuIHRob25nIGN1YSBtb2kgY29uZyANCmRvbmcgZGFuIGN1IHZhIHN1IGhvcCB0YWMgY2hhdCBj aGUgY3VhIGNhYyBjbyBxdWFuIHF1YW4gbHkgTmhhIG51b2M7IHR1bmcgYnVvYyB4YXkgZHVuZyBw aG9uZyBsdXUgdHJ1IGRpIHNhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gdGFpIFRy dW5nIHRhbSBEdSBsaWV1IERpIHNhbiB2YW4gaG9hIChWaWVuIFZhbiBob2EtIFRob25nIHRpbiwg Qm8gVmFuIGhvYS0gVGhvbmcgdGluKSB2YSB0YWkgYmFvIHRhbmcgY2FjIHRpbmg6IEtvbiBUdW0s IEdpYSBMYWksIERhYyBMYWMsIERhYyBOb25nLCBMYW0gRG9uZy4gIiANCg0KKk5nYWkgREFPIFRB QyBJSTogDQoiLSBQaHVjIGhvaSBtb2kgdHJ1b25nIGRpZW4geHVvbmcgY29uZyBjaGllbmcgdmEg c2luaCBob2F0IHZhbiBob2EgY29uZyBjaGllbmcsIHRyZW4gcXVhbiBkaWVtIGtlIHRodWEgY28g Y2hvbiBsb2MsIHRhbyBkaWV1IGtpZW4gdGh1YW4gbG9pIGRlIGNhYyBjb25nIGRvbmcgZGFuIGN1 IGtob2kgcGh1YyBjYWMgc2luaCBob2F0IHZhbiBob2EsIHRpbiBuZ3VvbmcgbGUgaG9pIGdhbiB2 b2kgY29uZyBjaGllbmcgdGhlbyB0cnV5ZW4gdGhvbmcgY3VhIA0KbW9pIGNvbmcgZG9uZyBkYW4g Y3UgdmEgY28gc3UgdGhhbSBnaWEgaHVvbmcgZGFuIHZhIGhvcCB0YWMgY2hhdCBjaGUgY3VhIGNh YyBjbyBxdWFuIHF1YW4gbHkgTmhhIG51b2MgdmUgdmFuIGhvYSwgbmdoZSB0aHVhdC4gDQoNCi0g VHVuZyBidW9jIHhheSBkdW5nIHBob25nIGx1dSB0cnUgZGkgc2FuIHZhbiBob2EgY29uZyBjaGll bmcgVGF5IE5ndXllbiBkdW9jIGRhdCB0YWkgVHJ1bmcgdGFtIER1IGxpZXUgRGkgc2FuIHZhbiBo b2EsIFZpZW4gVmFuIGhvYSAtIFRob25nIHRpbiB2YSB0YWkgYmFvIHRhbmcgY2FjIHRpbmg6IEtv biBUdW0sIEdpYSBMYWksIERhYyBMYWMsIERhYyBOb25nLCBMYW0gRG9uZy4gVGFpIGRheSBzZSBj YXQgZ2l1IGNhYyB0YWkgbGlldSwgaG8gc28sIA0KYmFuZyBnaGkgYW0sIGdoaSBoaW5oLCBhbmgg dGFpIGxpZXUsIGFuaCBoaWVuIHRyYW5nLCB2LnYuIGxpZW4gcXVhbiBjb25nIGNoaWVuZyB2YSB2 YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4uICIgDQoNCipEQU8gVEFDIE5ndXllbiBDaGkg QmVuOiANCiJUaHUgYmEgbGEgdHJ1eWVuIGRheSB2YSBxdWFuZyBiYTogVG8gY2h1YyBtb3QgZG9p IG5ndSBjYWMgbmhhIG5naGllbiBjdXUgY28gY2h1eWVuIG1vbiB2ZSBhbSBuaGFjIHRydXllbiB0 aG9uZywgdmUgdmFuIGhvYSwgbGljaCBzdSBUYXkgTmd1eWVuLiBDaHUgdHJvbmcgZGFvIHRhbyB0 aWVuIHNpLCB0aGFjIHNpLCBjYWMgbmhhIG5naGllbiBjdXUgbGEgbmd1b2kgZGFuIHRvYyB0aGll dSBzbyBuaGFtIHRodWMgaGllbiBjYWMgZGUgdGFpIG5naGllbiANCmN1dSBraG9hIGhvYyB2ZSBh bSBuaGFjIHRydXllbiB0aG9uZywgdmFuIGhvYSwgbGljaCBzdSBUYXkgTmd1eWVuLiBDYWMgY29u ZyBkb25nIHAnJ2xlaSwgcCcnbG9pLCBidW9uLCBib24sIHYudi4gbW8gY2FjIGxvcCB0cnV5ZW4g ZGF5IGtpbmggbmdoaWVtIGRhbmggY2hpZW5nLCBjaGluaCBjaGllbmcgY2hvIHRoYW5oIHRoaWV1 IG5pZW4sIHRhbyBjbyBob2kgY2hvIGNhYyBuZ2hlIG5oYW4gdHJ1eWVuIG5naGUgY2hvIGNhYyB0 aGUgaGUga2UgdGllcCBjYSB2ZSBraWVuIHRodWMgbGFuIGtpbmggbmdoaWVtLiAiIA0KDQoqTmdh aSBEQU8gVEFDIElJOiANCiItIFRvIGNodWMgZG9pIG5ndSBjYWMgbmhhIG5naGllbiBjdXUgY28g Y2h1eWVuIG1vbiB2ZSBhbSBuaGFjIHRydXllbiB0aG9uZywgdmUgdmFuIGhvYSwgbGljaCBzdSBU YXkgTmd1eWVuLiBDaHUgdHJvbmcgZGFvIHRhbyB0aWVuIHNpLCB0aGFjIHNpLCBjYWMgbmhhIG5n aGllbiBjdXUgbGEgbmd1b2kgZGFuIHRvYyB0aGlldSBzbyBuaGFtIHRodWMgaGllbiBjYWMgZGUg dGFpIG5naGllbiBjdXUga2hvYSBob2MgdmUgYW0gbmhhYyB0cnV5ZW4gdGhvbmcsIHZhbiBob2Es IGxpY2ggc3UgVGF5IE5ndXllbi4gQ2FjIGNvbmcgZG9uZyBwJydsZWksIHAnJ2xvaSwgYnVvbiwg Ym9uLCB2LnYuIG1vIGNhYyBsb3AgDQp0cnV5ZW4gZGF5IGtpbmggbmdoaWVtIGRhbmggY2hpZW5n LCBjaGluaCBjaGllbmcgY2hvIHRoYW5oIHRoaWV1IG5pZW4sIHRhbyBjbyBob2kgY2hvIGNhYyBu Z2hlIG5oYW4gdHJ1eWVuIG5naGUgY2hvIGNhYyB0aGUgaGUga2UgdGllcCBjYSB2ZSBwaHVvbmcg cGhhcCwga2llbiB0aHVjLCBraW5oIG5naGllbS4gIiANCg0KQ28gdGhlIHRoYXkgcm8sIGNhYyBw aGFuIGRvYW4gdmEgdHJ1b25nIGRvYW4gZGFvIHZhbiBjdWEgTmdhaSBEQU8gVEFDIElJIGRldSBy byBuaHUgYmFuIG5nYXksIHF1eSB2aSBjbyB0aGUgdHUgc28gc2FuaCB0aGVtIGRlIHRoYXkgZHVv YyBzdSBtYW4gcm8gY3VhIG5hbiBEQU8gVEFDIEtIT0EgSE9DIG8gQm8gVmFuIGhvYS0gVGhlIHRo YW8gJkR1IGxpY2ggVmlldCBOYW0uIE8gZGF5LCBuaHUgZGEgZGUgY2FwLCB2aSBiYW4gDQpjaGF0 IG5odW5nIGtlIERBTyBUQUMgbmV1IHRyZW4gZGV1IGNvIHh1YXQgcGhhdCBkaWVtIHJhdCBnaW9u ZyBuaGF1LSB0dWMgY2h1bmcgZGV1IA0KZG90IGRhYyBjYW4gbWFpIHZlIGNvbmcgY2hpZW5nIFRh eSBOZ3V5ZW4sIG5lbiB0cm9uZyBxdWEgdHJpbmggY2hlcCB2YW4gYW4gY2FwLCBib24gY2h1bmcg a2hvbmcgdHJhbmgga2hvaSBuaHVuZyBzbyBobyBraWVuIHRodWMgaGV0IHN1YyBuZ28gbmdhbi4g Tmh1bmcgc28gaG8gbWEgYmF0IGN1IA0KYWkgY3VuZyBjbyB0aGUgbmhhbiBkYW5nLCB0eSBuaHUg Y2FpIGNodXllbiBjb25nIGNoaWVuZyB0cnVvYyBraGkgZGVuIHRheSBkb25nIGJhbyBUYXkgDQpO Z3V5ZW4gY2hpIGR1b2MgY29pIGxhIEhBTkcgSE9BLiBSb2kgcGhhaSBuaG8gbmd1b2kgVGF5IE5n dXllbiwgY29uZyBjaGllbmcgbW9pIGR1b2MgYmllbiB0aGFuaCBsYSBOSEFDIENVLiBUcm9uZyBi YWkiIEJhbyB0b24sIHBoYXQgaHV5IGdpYSB0cmkgS2hvbmcgZ2lhbiB2YW4gaG9hIA0KY29uZyBj aGllbmcgVGF5IE5ndXllbiIsIE5nYWkgREFPIFRBQyBJSSBjdW5nIGNvIG5odW5nIGNoaSB0aWV0 ICJzYW5nIHRhbyIga2hhIA0KImhheSBobyIhIENoYW5nIGhhbiBkb2FuIHRydW9jIE5nYWkgdnVh IGh1bmcgaG9uIHR1eWVuIGJvIG11YyB0aWV1IGhhbmggZG9uZyBsYTogDQoiUGh1YyBob2kgdmEg Z2l1IGdpbiBjYWMgc2luaCBob2F0IHZhbiBob2EsIGNhYyBsZSBob2kuLi4gIiB0aGkgbmdheSBt dWMgdGlldSBsaWVuIGtlIHNhdSBkbywgTmdhaSBsYWkgbmhhbiBtYW5oIGxhICJQaHVjIGhvaSBt b2kgdHJ1b25nIGRpZW4geHVvbmcgY29uZyBjaGllbmcgdmEgc2luaCBob2F0IHZhbiBob2EgY29u ZyBjaGllbmcuLi4gIkRpZXUgZG8gY2h1bmcgdG8gTmdhaSBEQU8gVEFDIElJIGtob25nIHkgdGh1 YyBkdW9jIG8gVGF5IA0KTmd1eWVuLCAiY2FjIHNpbmggaG9hdCB2YW4gaG9hLCBjYWMgbGUgaG9p IiB2YSAibW9pIHRydW9uZyBkaWVuIHh1b25nIGNvbmcgY2hpZW5nIHZhIHNpbmggaG9hdCB2YW4g aG9hIGNvbmcgY2hpZW5nIiBjaGkgbGEgbW90IG1hIHRob2khIA0KDQpUb20gbGFpLCB0cm9uZyBi YWkgZGFvIHZhbiBuYXksIE5nYWkgREFPIFRBQyBJSSBkYSBBTiBDQVAgY2h1IHlldSBtdWMgS0Ug SE9BQ0ggSEFOSCBET05HIHRyb25nIGJhbiBobyBzbyBtYSBHUyBUbyBOZ29jIFRoYW5oIGNoYXAg YnV0LiBUaGF0IHRybyB0cmFvIA0KdGhheSBjaG8gY2FjIG5nYWkgcXVhbiBjaHVjIGNhcCBjYW8g bGFpIG11b24gaGllbiBkYW5oIG5odSBuaHVuZyBjaHV5ZW4gZ2lhIGFtIG5oYWMgZGF1IG5nYW5o ISANCihDb24gdGllcCkgDQooR3VpIGx1YyAwMTozMCwgMTEvMDgvMDgpDQoNClkga2llbiBkaWVu IGRhbjoNCg0KVGltdmlldDIwMDcgSUQgYmFpIHZpZXQ6IDEzMzg1NDE2DQoNCkNoYW8gbW9pIG5n dW9pLCB4ZW0gcmEsIG5nb2FpIE5ndXllbiBDaGkgQmVuLCBkYSB4dWF0IGhpZW4gdGhlbSBtb3Qg bmhhbiB2YXQgZGFvIHZhbiBtb2kuIERvIGxhIG9uZyBEYW8gdmFuIElJLiBDbyB2ZSB0aHUgdmkg ZGF5ISANCg0KVGhlbyB0b2kgZHVvYyBiaWV0LCBvbmcgRGFvIHZhbiBJSSBvIGRheSBjbyB2aSBw aGFtIG1vdCBzbyBoYW5oIHZpIHhhbSBwaGFtIHF1eWVuIHRhYyBnaWEuIFZpZWMgdmkgcGhhbSBi YW4gcXV5ZW4gdGFjIGdpYSBjdW5nIGR1b2MgZGUgY2FwIGRlbiBvIG5oaWV1IHZhbiBiYW4ga2hh YyBuaGF1LiBUdXUgY2h1bmcsIGNvIHZhaSBkaWVtIGNvIGJhbiBuaHUgc2F1OiANCg0KlSBTYW8g Y2hlcCBuZ3V5ZW4gdmFuIG1vdCBwaGFuIGhheSB0b2FuIGJvIHRhYyBwaGFtIGRhIGNvIHR1IHRy dW9jIG5odW5nIGtob25nIGNvIGdpYXkgY2hvIHBoZXAgY3VhIG5ndW9pIGhheSBnaW9pIGNvIGJh biBxdXllbi4gDQqVIEJhbiB2YW4ga2hvbmcgYmkgc2FvIGNoZXAgbmd1eWVuIHZhbiBuaHVuZyB0 b2FuIGJvIHkgdHVvbmcgY2hpIHRpZXQgY3VuZyBuaHUgdGh1IHR1IHRyaW5oIGJheSBjdWEgbW90 IHRhYyBwaGFtIGJpIHNhbyBjaGVwLiBEYW5nIHZpIHBoYW0gbmF5IGtobyBwaGF0IGhpZW4gaG9u IG5odW5nIHZhbiANCmNvIHRoZSBjaG8gbGEgbW90IGRhbmcgdmkgcGhhbSBiYW4gcXV5ZW4gbmV1 IG5odSBjbyBiYW5nIGNodW5nIGxhICJiYW4gc2FvIiBiYXQgY2h1b2MgDQp0aGVvIG5ndXllbiBt YXUuIA0KlSBCYW4gdmFuIGtob25nIGJpIHNhbyBjaGVwIG5ndXllbiB2YW4gbmh1bmcgYmkgdGhv bmcgZGljaCBsYWkgY2FjIHkgdHVvbmcgc2FuZyB0YW8gKHRoYW5oIG5nb24gbmd1IGtoYWMgaGF5 IHRoYW5oIGNhYyBkYW5nIGtoYWMpLiANCg0KQ28gdmUgbmh1IHRoYW8gdGFjIHNhbyBjaGVwIG5h eSBjdW5nIGdpb25nIHRodSB0aHVhdCBtYSBvbmcgTmd1eWVuIENoaSBCZW4gdmFuIGhheSBkdW5n IGRlIGRhbyB2YW4uIERhbmcgcmEsIGdpbyBwaHV0IG5heSwgR1MuIFRvIE5nb2MgVGhhbmggc2Ug cGhhaSBkdW9jIG5oYW4gbmh1bmcga2hvYW4gYm9pIHRodW9uZyB0aG9hIGRhbmcgdHUgb25nIEJl biB2YSBvbmcgRGFvIHZhbiBJSS4gDQoNCk5odW5nIHRydW9jIGhldCwgdGhlbyBkaWV1IDIwMiBj dWEgTHVhdCBzbyBodXUgdHJpIHR1ZSwgdGhpIG9uZyBCZW4gdmEgb25nIERhbyB2YW4gSUkgc2Ug cGhhaSBjYWkgY2hpbmgsIHhpbiBsb2kgY29uZyBraGFpOyBib2kgdGh1b25nIHRoaWV0IGhhaSAo c2UgeGV0IG11YyBkbyk7IHZhIHRpZXUgaHV5IHNhbiBwaGFtIHZpIHBoYW0gY3VhIG1pbmguIA0K VGhlbyBkbywgY2FuIGN1IHZhbyB2aWVjIHhhYyBkaW5oIG11YyB0aGlldCBoYWksIHNlIHF1aSBy YSBkdW9jIG11YyBib2kgdGh1b25nIGNobyB0YWMgZ2lhOiANCi0gVGllbiArIGxvaSBuaHVhbiB0 aHUgZHVvYyB0dSBoYW5oIHZpIHZpIHBoYW07IA0KLSBOZXUgdGFjIGdpYSBjaHVuZyBtaW5oIGR1 b2MgaGFuaCB2aSBuYXkgZ2F5IHRoaWV0IGhhaSB2ZSB0aW5oIHRoYW4gY2hvIG1pbmggdGhpIGJp IGRvbiBzZSBwaGFpIGJvaSB0aHVvbmcgdHUgNS4wMDAuMDAwIJYgNTAuMDAwLjAwMCANCg0KSGll biwgb25nIERhbyB2YW4gSUkgZHVvYyBjaG8gbGEgbmd1b2kgY28gY2h1YyBxdXllbi4gVmF5LCBo YW5oIHZpIGN1YSBvbmcgY28gdGhlIGJpIHF1aSBrZXQgbGEgbG9pIGR1bmcgY2h1YyBxdXllbiB2 YSBhcCBkdW5nIG1vdCBzbyBoaW5oIHRodWMgeHUgcGhhdCBoYW5oIGNoaW5oIGRvIGNhYyANCmRv biB2aSB0aGFuaCB0cmEgcXVhbiBseSB0cnVjIHRpZXAgdGhpIGhhbmguIFNvbmcsIGNvIGxlIHNl IGtobyBvIHRydW9uZyBob3AgbmF5LiBWaSwgbmh1IG1vaSBuZ3VvaSBjdW5nIGJpZXQgZGF5LCBu aHUgb25nIEJlbiBjb24gbXVhIGR1b2MgdG9hLCBjaGF5IGR1b2MgcXVhbiB0cmVuIHRoaSBvbmcg RGFvIHZhbiBJSSBjbyBraG8gZ2k/IFRpZW4gY2hlIGhldCBtYXQgbmd1b2kgcm9pISANCihHdWkg bHVjIDEzOjMxLCAxMS8wOC8wOCkNCg0KVmlldHZhbnh1YW4gSUQgYmFpIHZpZXQ6IDEzNDMxMjkx DQpYaW4gcGhlcCBjYWMgYmFjIGhheSB0YW0gbmd1bmcgYmFuIHZlIGxhbyBEYW8gdGFjIDIsIGVt IHBoYWkgYmFvIG5nYXkgbWF5IHRpbiBraGFuIGNhcCB2dWEgeGF5IHJhIG8gVmllbiBWYW4gaG9h LSBOZ2hlIFRodWF0IHRyb25nIHR1YW4gcXVhLiANCg0KLVRpbiB0aHUgbmhhdCwgbmd1b24gQmxv ZyBOZ3V5ZW4gQ2hpIEJlbi0gQm8gbWF0IHRoYXQ6IA0KW2h0dHA6Ly9ibG9nLjM2MC55YWhvby5j b20vYmxvZy1ENm81MTZrbGJxZkQ2ZWMxTnNFcHppcmZ1UGstP2NxPTFdDQoNCk5HVVlFTiBDSEkg QkVOLSBMSUVVIENPIFBIQUkgTEEgTU9UIEtFIEJFTkggSE9BTj8/PyANCg0KTWF5IGhvbSBuYXks IGR1IGx1YW4gdG9hbiBraHUgVmllbiAzMiBIYW8gTmFtIGRhbmcgb24gaSB4b24geGFvIHZlIGNh aSBjaGV0IGN1YSBjaGkgTmd1eWVuIEhvbmcgVmFuLSBuZ3V5ZW4gY2FuIGJvIFZpZW4gVmFuIGhv YS0gTmdoZSB0aHVhdCBkdW9pIHF1eWVuIGN1YSBQR1MuIFRTLiBOR1VUIE5ndXllbiBDaGkgQmVu LiBNb3QgbmFtIHF1YSwgY2hpIFZhbiBkYSBjaHV5ZW4gY29uZyB0YWMgc2FuZyBWaWVuIFZhbiBo b2EgDQooY3VuZyBuYW0gdHJvbmcga2h1IHZpZW4gMzIgSGFvIE5hbSkuIENoaSBWYW4gc2luaCBu YW0gMTk1OCwgdm9uIGxhIG5ndW9pIHBodSBudSBoaWVuIGxhbmgsIG5odSBtaSwgZG9uIGhhdSB2 YSBjbyBjdW9jIHNvbmcgdGhhbmggYmFuLCBiYW8gbmFtIHF1YSBjaGkgdmFuIGxvYyBjb2MgZGkg bGFtIGJhbmcgY2hpZWMgeGUgZGFwIGN1IGt5LiBDaGkgbGFwIGdpYSBkaW5oIGtoYSBtdW9uLCBj aHVhIGNvIGNvbiBjYWkuIFRyb25nIG1vaSANCnF1YW4gaGUgY28gcXVhbiwgY2hpIGxhIG5ndW9p IHNvbmcgYW4gcGhhbiwgYmluaCBkaSB2YSBkdW9uZyBuaGllbiwgdGluaCBjYWNoIGRvIHZvaSAN CmhvYW4gY2FuaCBnaWEgZGluaCBjdWEgY2hpIGNhbmcga2hpZW4gbW9pIG5ndW9pIHRodW9uZyB4 b3QgaG9uIGtoaSBjaGkgcmEgZGkgZG90IG5nb3QgZG8gDQptb3QgY29uIHRhaSBiaWVuIG1hY2gg bWF1IG5hby4gTmh1bmcgZGlldSBtYSBkdSBsdWFuIHhvdCB0aHVvbmcgaG9uIGNhIGNoaW5oIGxh IGNhdSBjaHV5ZW4gY2hpIGJpIFZpZW4gdHJ1b25nIE5ndXllbiBDaGkgQmVuIGhhbmggaGEgdHJv bmcgaG9uIDEgbmFtIHF1YS4gQ2F1IGNodXllbiBiaSBraWNoIGxhIG5odSB0aGUgbmF5LiANCg0K SG9pIGN1b2kgbmFtIDIwMDcsIG8gdmllbiBWYW4gaG9hLSBOZ2hlIHRodWF0LCBjdW9jIG11dSB0 b2FuIHZ1IGtob25nIHBoYW4gZG9uZywgdHJpZXQgaGEgbmhhIG5naGllbiBjdXUgQnVpIFRyb25n IEhpZW4gY3VhIE5ndXllbiBDaGkgQmVuIHZvaSBoZSB0aG9uZyB0YXkgY2hhbiBvIGtoYXAgY2Fj IHBob25nIGJhbiBkYSBsbyByby4gVHJ1b2Mga2hvbmcga2hpIGNhbmcgdGhhbmcgbyBjbyBxdWFu IG5nYXkgY2FuZyBnaWEgdGFuZyANCmRlbiBuZ2hldCB0aG8sIGNoaSBWYW4gZGEgbGFtIGRvbiB4 aW4gY2h1eWVuIGNvbmcgdGFjIHNhbmcgVmllbiBWYW4gaG9hICh0aHVvYyB0cnVvbmcgRGFpIGhv YyBWYW4gaG9hKS4gS2hpIGRvLCBOZ3V5ZW4gQ2hpIEJlbiBkYSBoYW5oIHh1IG5odSBzYXU6IA0K DQpUcnVvYyB0aWVuLCBoYW4geWV1IGNhdSBjaGkgVmFuIHBoYWkgZHVhIGNhaSBjb25nIHZhbiB0 aWVwIG5oYW4gY2FuIGJvIGN1YSB0cnVvbmcgRGFpIGhvYyBWYW4gaG9hIGRlICJ2aWVuIHRydW9u ZyB4ZW0iLCB0aGkgbW9pIGNoYXAgbmhhbiBjaG8gZGkuIFRoZSBuaHVuZyBraGkgY2hpIFZhbiBs YW0gDQp0aGVvIHlldSBjYXUsIG1hbmcgY29uZyB2YW4gZG8geHVvbmcgcGhvbmcgdmllbiB0cnVv bmcsIE5ndXllbiBDaGkgQmVuIGRhIHRpY2ggdGh1IG5nYXkgdmEgdHV5ZW4gYm8ga2hvbmcgY2hv IGNoaSBWYW4gY2h1eWVuIGNvbmcgdGFjLiBUdSBkbywgbW9pIGxhbiBjaGkgVmFuIHhpbiBnYXAs IHkgDQpkZXUgdHUgY2hvaSBraG9uZyB0aWVwLiBDaHV5ZW4gZG8gZGEga2hpZW4gTmd1eWVuIEhv bmcgVmFuIHVhdCB1YyBkZW4gcGhhdCBraG9jIGtoaSBrZSBsYWkgc3UgdGluaCBjaG8gbW9pIG5n dW9pIHRyb25nIGtodSB2aWVuIDMyIEhhbyBOYW0uIA0KDQpEZW4gbHVjIGRvIG8gdmllbiBWYW4g aG9hIC1OZ2hlIHRodWF0LCBhaSBjdW5nIGhpZXUgZHVvYyB0aW5oIGNhY2ggcXVhaSBkaSBjdWEg Tmd1eWVuIENoaSBCZW4uIEJhbiB0aGFuIHkgdm9uIGNvIHNvIHRoaWNoIHRoZSBoaWVuIHF1eWVu IGx1YyB0dSB0aG9pIGNvbiBsYW0gbyBUYXAgY2hpIFZhbiBob2Eglk5naGUgdGh1YXQsIHJhdCB0 aGljaCBnYXkgYXAgbHVjLCB0aGUgaGllbiBxdXllbiB1eSB2b2kgY2FwIGR1b2kuIENodXllbiBi YXQgbmhhbiANCnZpZW4gaG9wIGxpZW4gdHVjIHZhIGJ1b2MgcGhhaSBtYW5nIHNvIHRheSBnaWF5 IGJ1dCBkZSBnaGkgY2hlcCBuaHVuZyBkaWV1IHkgdGhhbyB0aGFvIGJhdCB0dXlldCB0cm9uZyBj YWMgY3VvYyBob3AgbGEgZGlldSBoZXQgc3VjIGJpbmggdGh1b25nLiBUaGF5IHZpIG5pZW0geWV0 IGNhYyBkaWV1IGNhbiB0aG9uZyBiYW8sIHBobyBiaWVuLCBDaGkgQmVuIGxhaSBiYXQgaG9wIHRv YW4gY28gcXVhbiBtb2kgdGhhbmcgZG9pIGxhbi4gQ2EgZ2FuIHRyYW0gY29uIA0Kbmd1b2kgcGhh aSBuZ29pIG5naGUgeSBub2kgdHJvbmcgaGFuZyB0aWVuZyBkb25nIGhvLCBkYXkgbGEgbW90IHNv IHRoaWNoIGJlbmggaG9hbiBjdWEgdmllbiB0cnVvbmcgbWEgYmF0IGN1IGFpIGN1bmcgaGlldSB2 aSBzYW8uIENhbiBibyBjbyBuaHUgY2F1IGxvbiBiZSBnaSBjdW5nIHBoYWkgdmlldCBkb24gDQoo Q29uZyBob2EgeGEgaG9pIGNodSBuZ2hpYSBWaWV0IE5hbSwgZG9jIGxhcC0gdHUgZG8tIGhhbmgg cGh1Yy4uLiksIGRheSBsYSBsdWF0IGRvIHkgZGUgcmEsIGNhbiBibyBuZ2hpIG9tIGN1bmcgcGhh aSBsYW0gZG9uIHhpbiBwaGVwLCBhaSBjbyBjb24gY2FpIG9tIGRhdSBuZ2hpIGhvcCBjbyBxdWFu IA0KY3VuZyBwaGFpIHR1b25nIHRyaW5oLi4uIFRoZSBuZW4ga2hpIGNoaSBWYW4geGluIGNodXll biBjb25nIHRhYywgdmllYyBjaGkgTmd1eWVuIENoaSANCkJlbiBnYXkga2hvIGRlIGxhIGRpZXUg a2hvbmcgY28gZ2kgbW9pIGxhLCBuaGF0IGxhIGtoaSB2aWVuIHRydW9uZyBkYW5nIGJpIHZhY2gg bWF0IHRvaSBhbiBjYXAga2hvYSBob2MgdmEgdHJ1IGRhcCBjYW4gYm8gdHJ1b2MgY29uZyBsdWFu LiBIYW5oIGhhIG5ndW9pIGtoYWMgY28gbGUgZGEgdHJvIHRoYW5oIGNhbiBiZW5oIHRhbSB0aGFu IGNvIGh1dSBjdWEgTmd1eWVuIENoaSBCZW4uIA0KDQpUcnVvYyB0aW5oIGhpbmggZG8sIGR1b25n IGN1bmcsIGNoaSBOZ3V5ZW4gSG9uZyBWYW4gZGEgc2FuZyBwaG9uZyBUUyBCdWkgUXVhbmcgVGhh bmcga2UgaGV0IHN1IHRpbmggdmEgY2F1IGN1dSBzdSBnaXVwIGRvIGN1YSBUUyBUaGFuZy4gVGF0 IG5oaWVuLCBUUyBUaGFuZyBkYSBub2kga2h1bmcgdHJ1b2Mgc3UgdmllYyBiYXQgbmhhbiBuYXku IEFpIGN1bmcgdGhheSBybyBsYSBuZ3VvaSBjbyBuYW5nIGx1YyBjaHV5ZW4gbW9uIG5odSANCkJ1 aSBUcm9uZyBIaWVuIG1hIGJpIE5ndXllbiBDaGkgQmVuIHRydSBkYXAsIHRyaWV0IGhhaSB0aGku Li4iY29uIGNvIHRoZSBoaWV1IGR1b2MiLCBib2kgYmFuIHRpbmggZG8ga3kgdm9pIGNhcCBkdW9p IGN1YSBvbmcgQmVuLiBOaHVuZyB2b2kgbW90IG5ndW9pIGhpZW4gbGFuaCBuaHUgY2hpIEhvbmcg DQpWYW4sIGFuIHBoYW4gc29uZyBkZW4gbmh1ICJjb24gc2F1IGNhaSBraWVuIiBtYSBOZ3V5ZW4g Q2hpIEJlbiBjdW5nIGtob25nIHRoYSwgdGhpIA0KZGF5IHF1YSBsYSBnaW90IG51b2MgY3VvaSB0 cmFuIGx5LiBSb2kgbmdheSB0cm9uZyBtb3QgY3VvYyBob3AgdG9hbiBjbyBxdWFuIHNhdSBkbywg VFMgQnVpIFF1YW5nIFRoYW5nIGRhIGR1bmcgZGF5IHRoYW5nIHRodW5nIGtldCB0b2kgaGFuaCBo YSBjaGkgTmd1eWVuIEhvbmcgVmFuIGN1YSANCnZpZW4gdHJ1b25nIENoaSBCZW4uIENhIHZpZW4g VmFuIGhvYS0gTmdoZSB0aHVhdCBzZSBraG9uZyB0aGUgbmFvIHF1ZW4gZHVvYyBjdW9jIGhvcCBk bywga2hpIFRTIFRoYW5nIGdvaSBoYW5oIGRvbmcgdGljaCB0aHUgY29uZyB2YW4gdGllcCBuaGFu IGNhbiBibyBjdWEgb25nIEJlbiBsYSB0YW4gDQpuaGFuLCBkb2MgYWMuIFRydW9jIGNvbiB0aGlu aCBubyBjdWEgQnVpIFF1YW5nIFRoYW5nIHRyb25nIGN1b2MgaG9wIHRvYW4gdGhlLCBOZ3V5ZW4g DQpDaGkgQmVuIGRhIHBoYWkgY3VvaSBjdW9pIHhvYSBkaXUsIGtob25nIGRhbSBwaGFuIHVuZyAx IGNhdSBuYW8uIFRhdCBuaGllbiBuZ2F5IHNhdSANCmRvLCBDaGkgQmVuIGJ1b2MgcGhhaSBuZ2Ft IGJvIGhvbiBsYW0gbmdvdCBtYSByYSBjb25nIHZhbiBjaGFwIG5oYW4gY2hvIGNoaSBWYW4gDQpj aHV5ZW4gY29uZyB0YWMuIEJvaSBsdWMgbmF5IHkgcmF0IHNvIFRTIFRoYW5nIHJhIG1hdCB1bmcg aG8gQnVpIFRyb25nIEhpZW4sIG5lbiBraG9uZyBjb24gY2FjaCBuYW8ga2hhYyBsYSBidW9jIHBo YWkgYnVvbmcgdGhhIGNobyBjaGkgVmFuLiANCg0KTmV1IGNhdSBjaHV5ZW4gY2hpIGNvIHRoZSB0 aGkgaGFuIGtob25nIGNvIGdpIGRhbmcgbm9pIHRoZW0uIE5odW5nIHJvaSBzYXUga2hpIGNoaSBI b25nIFZhbiBjaHV5ZW4gc2FuZyBsYW0gbyBWaWVuIFZhbiBob2EsIE5ndXllbiBDaGkgQmVuIGRh IGtob25nIGNoaXUgaG9hbiB0aGFuaCANCnRodSB0dWMgY3VvaSBjdW5nIGNobyBjaGkgbGEga3kg ZHV5ZXQga2hhdSBjaHV5ZW4gaG8gc28gY2FuIGJvLiBIYXUgcXVhIGxhIG1vdCBuYW0gcXVhLCBj aGkgVmFuIG1hYyBkdSBjb25nIHRhYyBvIFZpZW4gVmFuIGhvYSwgbmh1bmcgaG8gc28gdmEgYmFv IGhpZW0gdmFuIHRodW9jIHF1eWVuIHF1YW4gbHkgY3VhIFZpZW4gVmFuIGhvYSBuZ2hlIHRodWF0 LiBUcm9uZyBzdW90IDEgbmFtIGRvLCBtYWMgZHUgY2hpIFZhbiBjdW5nIG5odSANCmxhbmggZGFv IFZpZW4gVmFuIGhvYSBkYSBuaGlldSBsYW4geWV1IGNhdSBOZ3V5ZW4gQ2hpIEJlbiBjaHV5ZW4g aG8gc28gY2FuIGJvIGNobyBjaGkgVmFuIG5odW5nIHkgdmFuIGxhbmggbHVuZyB0YW5nIGxvLCBr aG9uZyB0aHVjIGhpZW4sIG5odSB0aGUgY28gb20gYm8gaG8gc28gbGFpIGRlIHRob2EgbWFuIHRo b2kga2hhdCBraGFvIGhhbmggaGEgY2FwIGR1b2kgY3VhIHkuIA0KDQpWYSByb2kga2hpIGNoaSBW YW4gZG90IG5nb3QgcXVhIGRvaSwgdmkgdmFuIGRlIGJhbyBoaWVtIHkgdGUsIGNoaSBkYSBvIHZh byB0aW5oIHRyYW5nICJtYWMgbnVpIG1hYyBzb25nIiB0cm9uZyBraGF1IHRodSB0dWMgdGFuZyBs ZS4gTmd1b2kgYW5oIHJlIGN1YSBjaGkgVmFuLSBuZ3V5ZW4gcGhvIHBob25nIGhhbmggY2hpbmgg Y3VhIFZpZW4gVmFuIGhvYS0gbmdoZSB0aHVhdCBkYSB0cnVjIHRpZXAgZ29pIGRpZW4gZGVuIE5n dXllbiBDaGkgQmVuIHlldSANCmNhdSBnaXVwIGRvIG5odW5nIHkgZGEga2hvbmcgY2hvIGdhcC4g Um9pIGFpIGN1bmcgaGlldSBjaHV5ZW4gdHVjIG51b2MgcGhhaSB2byBibyBuaHUgdGhlIG5hby4g VHJvbmcgY2hpIDEgbmdheSBzYXUga2hpIGNoaSBWYW4gbWF0LCBjYSBraHUgdmllbiAzMiBIYW8g TmFtLCBhaSBjdW5nIG5ndXllbiBydWEgTmd1eWVuIENoaSBCZW4gbGEga2Ugdm8gbHVvbmcgdGFt IHRhbiBhYy4uLiBSb2kgY3VvaSBjdW5nLCBkdW9uZyBuaGllbiBWaWVuIFZhbiANCmhvYS0gTmdo ZSB0aHVhdCCWIGNvIHF1YW4gZ2l1IGhvIHNvIGNhbiBibyB2YSBiYW8gaGllbSBjdWEgY2hpIFZh biB2YW4gYnVvYyBwaGFpIGR1bmcgcmEgbG8gdG8gY2h1YyB0YW5nIGxlLCB0cm9uZyBraGkgY2hp IGRhIGNvbmcgdGFjIG8gVmllbiBWYW4gaG9hIGR1b2MgMSBuYW0uIFRyb25nIGRhbSANCnRhbmcs IG5nYXkgdHUgbHVjIHNhbmcgc29tLCBuZ3VvaSBhbmggcmUgY3VhIGNoaSBWYW4gZGEgdWF0IHVj IG1hIGxvbiB0aWVuZyByYW5nIiB0aGFuZyBCZW4gbGEgdGhhbmcga2hvbiBuYW4uLi4iLiBNb2kg bmd1b2kgZHUgZGFtIHRhbmcgZGV1IGNvbmcga2hhaSBiYXkgdG8gbG9uZyBjYW0gaGFuIA0KTmd1 eWVuIENoaSBCZW4gZGVuIHRhbiB4dW9uZyB0dXkuIENhYyBjYW4gYm8gbmdoaWVuIGN1dSBjb24g bm9pIHRoYW5nOiAiVGhhbmcgQmVuIHBoYWkgbWFuZyBibyBobyBzbyBjYW4gYm8gcGhvdG9jb3B5 IG1hIGRhdCB0cnVvYyBxdWFuIHRhaSBjYWkgVmFuLi4uICJIbyBjb24gY2F1IG1vbmcgY2hpIFZh biJzb25nIGtob24gY2hldCB0aGllbmcgdmUgdmF0IGNoZXQgdGhhbmcgQmVuLi4uICJDYXUgY2h1 eWVuIHRlbiB2aWVuIA0KdHJ1b25nIHRhbiBhYywgbWF0IHRpbmggbmd1b2kgdmFuIGxhbiBtYWkg a2hvbmcgbmdvdCBkdW9pIGNhaSBub25nIG5odSB0aGlldSwgdHJvbmcgdGllbmcga2hvYyBob24g dGhhbiB0YWkgbmhhIHRhbmcgbGUgYmVuaCB2aWVuIEJhY2ggTWFpIG5nYXkgMTMvOC8yMDA4LiIN CihHdWkgbHVjIDE2OjQwLCAxNy8wOC8wOCkNCg0KaHR0cDovL3R0dm5vbC4gY29tL2ZvcnVtL3Zh bmhvYy84NjY2NDIvdHJhbmctOTcuIHR0dm4gDQp0aGFuZ2xvbmc0NTYgSUQgYmFpIHZpZXQ6IDEz NTUwMzU1DQoNClBHUy4gVFMgTkdVWUVOIENISSBCRU4gQkkgREFPIFZBTj8/PyAocGhhbiB0aWVw KSANCg0KVnVhIHF1YSwgbW90IG5ndW9pIGJhbiBjdWEgdG9pIGxhaSB0aW5oIGNvIGxhaSB0b20g ZHVvYyBiYWkgb25nIERBTyBUQUMgS0hPQSBIT0MgTmd1eWVuIENoaSBCZW4gdHJhIGxvaSBwaG9u ZyB2YW4gdHJlbiBkYWMgc2FuIERpIHRpY2ggVmlldCBOYW0gc28gcmEgdGhhbmcgMS8yMDA2LiBW YW4gbGFpIGNodXllbiBhbiBjYXAgY2FjIG5naGllbiBjdXUgY29uZyBjaGllbmcgY3VhIEdTIFRv IE5nb2MgVGhhbmggbmh1IGR1IGx1YW4gZGEgDQpiaWV0LiBDbyBkaWV1LCBuaHVuZyIga2llbiB0 aHVjIGNvbmcgY2hpZW5nIiBjdWEgb25nIHZpZW4gdHJ1b25nIERBTyBUQUMgbGFuIG5heSBkdW9j IG5ndXkgdHJhbmcgZHVvaSBjaGlldSB0aHVjLi4uIHRyYSBsb2kgcGhvbmcgdmFuISEhIE5vaSBj YWNoIGtoYWMsIGRheSB0aHVjIGNoYXQgbGEgDQpiYWkgcGhvbmcgdmFuIGdpYSwgYm9pIG5ndW9p IHBob25nIHZpZW4gZGFjIHNhbiBEaSB0aWNoIFZpZXQgTmFtIGhhbiBkYSBkdW9jIE5ndXllbiBD aGkgQmVuIGdvaSB5IGR1YSBjYXUgaG9pIHRoZW8gaHVvbmcgbWFjIGRpbmggc2FuIGRlIHRheSBE QU8gVEFDIGNoaSB2aWVjIGNoZXAgDQpuZ3V5ZW4gdmFuIG5oaWV1IGRvYW4gdHJvbmcgYmFuIEhv IHNvIGdhbiBydW90IGRvIEdTIFRvIE5nb2MgVGhhbmggY2hhcCBidXQuIE8gYmFpIA0KcGhvbmcg dmFuIGdpYSBuYXksIHNlIGRlIGRhbmcgbmhhbiB0aGF5IHBoYW4gbG9uIGNhYyB0cnVvbmcgZG9h biBzYXUgZG8gZGEgZHVvYyB1cCBsZW4sIGxvbmcgZ2hlcCB2b2kgY2FjIGRvYW4gYW4gY2FwIGto YWMgZGUgdHJvIHRoYW5oIGJhaSBLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgDQpUYXkg Tmd1eWVuLSBEaSBzYW4gdGhlIGdpb2kgZGFuZyB0cmVuIGJhbyBOaGFuIERhbiBuZ2F5IDI0LzMv MjAwNi4gIChhbmggY2h1cCAtIGtlbSB0aGVvIJYgYmFpICJLaG9uZyBnaWFuIHZhbiBob2EgQ29u ZyBDaGllbmcgVGF5IE5ndXllbiCWIGRpIHNhbiB0aGUgZ2lvaSCWIFBHUyBUUyBOZ3V5ZW4gQ2hp IEJlbikNCk5odSBkYSBiaWV0LCBiYWkgbmF5IHNhdSBkbyBsYWkgZHVvYyBOZ3V5ZW4gQ2hpIEJl biBkb2kgdGVuIHRoYW5oIEtob25nIGdpYW4gdmFuIGhvYSBkaSBzYW4gdGhlIGdpb2kgZGUgZGFu ZyBsYWkgdHJlbiB0cmFuZyBHaWFpIGRpZXUgVmlldCBOYW0uIA0KW2h0dHA6Ly93d3cuIHZpZXRu YW1tZWxvZHkuIGNvbS92aWV3X25ld3MuIGFzcHg/bmlkPTQ3NCBdIFhpbiB4ZW0gbGFpIGNhYyBk b2FuIHZhbiBkYW5oIGRhdSBtYXUgdmFuZyAoYW4gY2FwIG5ndXllbiB4aSksIG1hdSB4YW5oIGxh IGNheSAoeGFvIHhhbykgbGEgbmh1bmcgZG9hbiBhbiBjYXAgY3VhIEdTIFRvIE5nb2MgVGhhbmgu IA0KDQpCYXkgZ2lvLCBoYXkgc28gc2FuaCAyLzMgYmFpIGRhbyB2YW4gZG8gdm9pIGJhaSB0cmEg bG9pIHBob25nIHZhbiByb20gY3VhIE5ndXllbiBDaGkgQmVuIG1vaSBkdW9jIHBoYXQgaGllbiB0 cmVuIGRhYyBzYW4gRGkgdGljaCBWaWV0IE5hbSAocGhhbiB0cmEgbG9pIGNhdSBob2kgc28gMiB2 YSBzbyAzLSBkb2FuIGdhY2ggYmVuIGxlIG1hdSBkbyksICAoYW5oIGNodXAga2VtIHRoZW8pDQoN CkNhYyBiYW4gY28gdGhlIHRoYXkgIm5naGUgdGh1YXQgQU4gQ0FQIiBjdWEgTmd1eWVuIENoaSBC ZW4gdGhvIHRoaWVuIG5odSB0aGUgbmFvLiBPIGRheSwgY28gY2hhbmcgY2hpIGtoYWMgZHVuZyBt b3QgZG9hbiB2YW4gZHVvYyBkYW8gbGFpIG1vdCBjaHV0OiANCg0KLVRyZW4gZGFjIHNhbiBEaSB0 aWNoIFZpZXQgTmFtLCBOZ3V5ZW4gQ2hpIEJlbiB2aWV0IGxhOiIgTmhpZW0gdnUgY3VhIGNodW5n IHRhIGxhIGJhbyB0b24gdmEgcGhhdCBodXkgZ2lhIHRyaSBjdWEga2hvbmcgZ2lhbiB2YW4gaG9h IGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4uIFZpIHRoZSBjYW4gY28gDQptb3QgaGUgdGhvbmcgY29u ZyB2aWVjIHBoYWkgdGh1YyBoaWVuIGRvIGxhIHN1dSB0YW0gdmEgbmdoaWVuIGN1dSBkaSBzYW4g dmFuIGhvYSB2YSBhbSBuaGFjIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gdHUgY2FjIGJhaSBjaGll bmcsIGt5IHhhbyBjaGluaCBjaGllbmcgZGVuIG5naGUgdGh1YXQgdHJpbmggZGllbiBjaGllbmcs IG11YSB4b2FuZyB2LnYuLi4gIiANCg0KLUNvbiB0cm9uZyBiYWkgdHJlbiBiYW8gTmhhbiBEYW4g dmEgdHJlbiB0cmFuZyBHaWFpIGRpZXUgVmlldCBOYW0sIGNhdSB2YW4gZG8gbGFpIGR1b2Mgc3Vh IGxhOiIgQmFvIHRvbiB2YSBwaGF0IGh1eSBnaWEgdHJpIGN1YSBLaG9uZyBnaWFuIHZhbiBob2Eg Y29uZyBjaGllbmcgVGF5IE5ndXllbiBsYSBjYXAgdGhpZXQgdmEgZGFpIGxhdS4gTW90IGhlIHRo b25nIGNvbmcgdmllYyBwaGFpIHRodWMgaGllbiBsYSBzdXUgdGFtIHZhIG5naGllbiBjdXUgZGkg DQpzYW4gdmFuIGhvYSB2YSBhbSBuaGFjIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4gdHUgY2FjIGJh aSBjaGllbmcsIGt5IHhhbyBjaGluaCBjaGllbmcgZGVuIG5naGUgdGh1YXQgdHJpbmggZGllbiBj aGllbmcsIG11YSB4b2FuZywgdi52LiAiIA0KDQpRdWEgYmFpICJwaG9uZyB2YW4gZ2lhIiBuZXUg dHJlbiwgY2FuZyBuZ2F5IGNhbmcgdGhheSBybyBWaWVuIHRydW9uZyBWaWVuIFZhbiBob2EtTmdo ZSB0aHVhdCBWaWV0IE5hbS0gUEdTLiBUUy4gTkdVVCBOZ3V5ZW4gQ2hpIGJlbiBxdWEgbGEgbW90 IHRheSBEQU8gVEFDIEtIT0EgSE9DIGRheSBtdXUgbW8geGFvIHF1eWV0LiBUdSBuaHVuZyBraWVu IHRodWMgZ2FuIHJ1b3QgdHJvbmcgYmFuIGhvIHNvIGNvbmcgDQpjaGllbmcgZG8gR1MgVG8gTmdv YyBUaGFuaCBzb2FuIHRoYW8gYmFuIGRhdSwgbmdheSBzYXUga2hpIGNvbmcgY2hpZW5nIGR1b2Mg VU5FU0NPIGNvbmcgbmhhbiwgREFPIFRBQyBOZ3V5ZW4gQ2hpIEJlbiBkYSBuaGFuaCBjaG9uZyBh biBjYXAgY2FjIG5naGllbiBjdXUgZG8gZGUgdHVuZyBsZW4ga2hhcCBjYWMgbWF0IGJhbywgdGFw IGNoaSwgdHJhbmggdGh1IGRhbmggYm9uZyB0ZW4gdHVvaSBjdWEgbWluaCBuaHUgbW90ICJuaGEg bmdoaWVuIGN1dSBjb25nIGNoaWVuZyB0aHUgdGhpZXQiLCB0aGF0IG1hbiBybyBjaG8gdGhvaSBI QU8gREFOSCBjdWEgb25nIEJpIHRodSBDaGkgQm8sIGtpZW0gVmllbiB0cnVvbmcsICBraWVtIENo dSBuaGllbSBjbyBzbyBkYW8gdGFvIFRTIG5nYW5oIHZhbiBob2EgbG9uIG5oYXQgbnVvYy4gDQoN CkN1bmcgcXVhIGRvLCBtb2kgaGlldSB0YWkgc2FvIG5oYSBwaGUgYmluaCBsdW5nIGRhbmggTmd1 eWVuIEhvYSBkYSB4ZXAgREFPIFRBQyBOZ3V5ZW4gQ2hpIEJlbiBsYSBrZSBhbiBjYXAgdmFvIGhh bmcgInRheSB0byIhIA0KDQpUcm8gbGFpIGNodXllbiBkYW8gdmFuIGNvbmcgY2hpZW5nIGN1YSBO Z2FpIERBTyBUQUMgSUkuIFNvIGRpIHRvaSBwaGFpIHBoYW4gdGljaCBreSBiYWkgZGFvIHZhbiBk dW9pIGRhbmcgdHJhIGxvaSBwaG9uZyB2YW4gcm9tIGN1YSBvbmcgTmd1eWVuIENoaSBCZW4gYm9p IGxlIG5vIGNvIHBoYW4iIA0KbGllbiBxdWFuIG1hdCB0aGlldCIgZGVuIHRhaSBsaWV1IGRhbyB2 YW4gdGllcCB0aGVvIGN1YSBOZ2FpIERBTyBUQUMgSUkgbWEgdG9pIHNlIHRyaW5oIGJheSBkdW9p IGRheS4gRG8gdGh1YyBjaGF0IGN1bmcgbGEgbW90IGJhaSBwaG9uZyB2YW4gZ2lhIGN1YSBOZ2Fp IERBTyBUQUMgSUkuIEJhaSANCm5heSBkdW9jIGRhbmcgdGFpIHRyZW4gbW90IHRvIGJhbyBsb24g dm9pIG5oYW4gZGUgIlR1IGhhbyBuaHVuZyB0cmFjaCBuaGllbSByYXQgbG9uIi4gDQpTYXUgZG8g bm8gY3VuZyBkdW9jIGRhbmcgbGFpIHRyZW4gbW90IHRyYW5nIFdlYiBjbyB1eSB0aW4gdm9pIHRl biBnb2kga2hhYyBteSBtaWV1IGhvbiBsYSAiS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5n IFRheSBOZ3V5ZW4iIC0ga2lldCB0YWMgbmhhbiBsb2FpOiBUdSBoYW8sIG5odW5nIHRyYWNoIG5o aWVtIGN1bmcgbG9uIGxhbyIuIChhbmggY2h1cCBiYWkga2VtIHRoZW8pDQoNClhpbiBuaGFjIGxh aSwgdmkgbmhhbiB0aGFuIGN1YSBOZ2FpIERBTyBUQUMgSUkgbGEgcmF0IGRhbmcgbmUgbmVuIHRv aSB2YW4gY2h1YSBjb25nIGJvIGRpY2ggZGFuaCBvbmcgdGEuIA0KDQpUcm9uZyBiYWkgbmF5LCBz ZSB0aGF5IG5nYXkgcGhhbiB0cmEgbG9pIGNhdSBob2kgc28gMyBsYSBzdSBhbiBjYXAgcm8gcmFu ZyBwaGFuICJDaHVvbmcgdHJpbmggaGFuaCBkb25nIiB0cm9uZyBiYW4gaG8gc28gY29uZyBjaGll bmcgZG8gR1MgVG8gTmdvYyBUaGFuaCBjaGFwIGJ1dCAoZG9hbiBib2kgDQptYXUgdmFuZy0gY2hl cCBuZ3V5ZW4gdmFuLCBkb2FuIGJvaSB4YW5oIGxhIGNheS0geGFvIHhhbykuIA0KDQpPIGRheSwg c3UgZ2lvbmcgbmhhdSBkZW4gImxhIGx1bmciIGdpdWEgTmdhaSBEQU8gVEFDIElJIHZhIERBTyBU QUMgTmd1eWVuIENoaSANCmJlbiBjaGluaCBsYSBvIGNobywgY2EgMiBjdW5nIGRhbmcgZGFuIHRy YSBsb2kgcGhvbmcgdmFuIGJhbyBjaGkgdmUgY29uZyBjaGllbmcgVGF5IE5ndXllbiBuaHVuZyBs YWkgZGV1IGRhbyB2YW4gbmd1eWVuIHhpIGN1YSBHUyBUbyBOZ29jIFRoYW5oLiANCg0KUm8gcmFu ZyBjYSAyIG9uZyBEQU8gVEFDIGRhIGNoZXAgYmFpIGRlIG5vcCBjaG8gcGhvbmcgdmllbiBjaHUg a2hvbmcgaGUgdHJhIGxvaSANCnBob25nIHZhbiB0cnVjIHRpZXAsIHRoZSBuZW4gbW9pIGdvaSBs YS4uLiAicGhvbmcgdmFuIGdpYSIhIEtob25nIG5odW5nIHRoZSwgaGF5IHNvIA0Kc2FuaCBkb2Fu IHRyYSBsb2kgY2F1IGRhdSB0aWVuIGN1YSAyIGJhaSBwaG9uZyB2YW4gZ2lhIGRlIHRoYXkgcm8g c3UgYW4gY2FwIGxhbiBuaGF1IGdpdWEgTmdhaSBEQU8gVEFDIElJIHZhIERBTyBUQUMgTmd1eWVu IENoaSBiZW4uIA0KDQpEYXkgbGEgZG9hbiB2YW4gTmdhaSBEQU8gVEFDIElJIHRyYSBsb2kgcGhv bmcgdmFuIHRyb25nIGJhaSIgVHUgaGFvIG5odW5nIHRyYWNoIG5oaWVtIHJhdCBsb24iIChkb2Fu IGJvaSBtYXUgeGFtKTogDQoNCiJOZ2F5IDI1LiAxMC4gMjAwMiwgVGh1IHR1b25nIENoaW5oIHBo dSBkYSBkb25nIHkgZGUgQm8gVkhUVCB0cmluaCBVTkVTQ08gNSBsb2FpIA0KaGluaCBkaSBzYW4g dmFuIGhvYSBwaGkgdmF0IHRoZSB0aWV1IGJpZXUgZGUgVU5FU0NPIGxhbiBsdW90IHhldCB2YSBj b25nIG5oYW4gbGEga2lldCB0YWMgdHJ1eWVuIGtoYXUgdmEgZGkgc2FuIHBoaSB2YXQgdGhlIGN1 YSBuaGFuIGxvYWkgdHJvbmcga2UgaG9hY2ggMTAgbmFtIHRvaSwgZ29tOiBLaG9uZyANCmdpYW4g dmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuLCBoYXQgY2EgdHJ1IGN1YSBuZ3VvaSBWaWV0 IG8gQmFjIEJvLCBzdSB0aGkgY3VhIGNhYyBkYW4gdG9jIHRoaWV1IHNvIG8gVmlldCBOYW0sIGRh biBjYSBxdWFuIGhvIEJhYyBOaW5oIHZhIG11YSByb2kgbnVvYyBEb25nIGJhbmcgQmFjIEJvLiBU cmVuIGNvIHNvIHF1eWV0IGRpbmggdHJlbiwgQm8gVkhUVCBkYSBjbyBRdXlldCBkaW5oIHNvIDg5 MC9RRC1CVkhUVCBnaWFvIGNobyBWaWVuIFZhbiBob2EgLSBUaG9uZyB0aW4geGF5IGR1bmcgaG8g c28gdW5nIGN1IHF1b2MgZ2lhICJLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5n dXllbiIgZGUgZGUgdHJpbmggVU5FU0NPLiBUcm9uZyBtb3QgdGhvaSBnaWFuIGtoYSBnYXAgZ2Fw LCBCbyBWSFRUIA0KZGEgcGhvaSBob3Agdm9pIGNhYyBkaWEgcGh1b25nIHZhIG1vdCBzbyBjbyBx dWFuIHRpY2ggY3VjIGhvYW4gY2hpbmggdHUgbGlldSwgaG8gc28gdGhlbyB5ZXUgY2F1IGN1YSBV TkVTQ08uIEN1b2kgdGhhbmcgOS4gMjAwNCwgQm8gdHJ1b25nIEJvIFZIVFQgZGEgY2hpbmggdGh1 YyBreSBndWkgaG8gc28gZGkgUGFyaXMgZGUgVU5FU0NPIHhlbSB4ZXQsIGNvbmcgbmhhbiIuIA0K DQpDb24gZGF5IGxhIGRvYW4gdmFuIERBTyBUQUMgTmd1eWVuIENoaSBCZW4gdHJhIGxvaSBwaG9u ZyB2YW4gdHJlbiBkYWMgc2FuIERpIHRpY2ggVmlldCBOYW0gKGRvYW4gZ2FjaCBiZW4gbGUgbWF1 IHhhbSk6IA0KDQoiQ3VvaSB0aGFuZyAxMC4gMjAwMiwgVGh1IHR1b25nIENoaW5oIHBodSBkYSBk b25nIHkgZGUgQm8gVkhUVCB0cmluaCBVTkVTQ08gNSBsb2FpIGhpbmggZGkgc2FuIHZhbiBob2Eg cGhpIHZhdCB0aGUgdGlldSBiaWV1IGN1YSBWaWV0IE5hbSBnb206IEtob25nIGdpYW4gdmFuIGhv YSBjb25nIGNoaWVuZyBUYXkgTmd1eWVuLCBIYXQgY2EgdHJ1IGN1YSBuZ3VvaSBWaWV0IG8gQmFj IEJvLCBTdSB0aGkgY3VhIGNhYyBkYW4gdG9jIA0KdGhpZXUgc28gbyBWaWV0IE5hbSwgRGFuIGNh IHF1YW4gaG8gQmFjIE5pbmggdmEgTXVhIHJvaSBudW9jIERvbmcgYmFuZyBCYWMgQm8gZGUgDQpV TkVTQ08geGV0IHZhIGNvbmcgbmhhbiBsYSBraWV0IHRhYyB0cnV5ZW4ga2hhdSB2YSBkaSBzYW4g cGhpIHZhdCB0aGUgY3VhIG5oYW4gbG9haSANCnRyb25nIGtlIGhvYWNoIDEwIG5hbSB0b2kuIEN1 b2kgdGhhbmcgMy4gMjAwNCwgQm8gdHJ1b25nIEJvIFZhbiBob2EgVGhvbmcgdGluIGRhIGdpYW8g Y2hvIFZpZW4gVmFuIGhvYSBUaG9uZyB0aW4geGF5IGR1bmcgaG8gc28gdW5nIGN1IHF1b2MgZ2lh IEtob25nIGdpYW4gdmFuIGhvYSBjb25nIA0KY2hpZW5nIFRheSBOZ3V5ZW4gZGUgdHJpbmggVU5F U0NPIGNvbmcgbmhhbiBsYSBraWV0IHRhYyB0cnV5ZW4ga2hhdSB2YSBkaSBzYW4gcGhpIHZhdCB0 aGUgY3VhIG5oYW4gbG9haS4gQ3VvaSB0aGFuZyA5LCBobyBzbyBob2FuIHRoYW5oIHZhIGR1b2Mg Z3VpIHNhbmcgUGFyaXMgZHVuZyBxdWkgZGluaCB0aG9pIGdpYW4iLiANCg0KTmh1IHRoZSwgYmVu IGNhbmggdmllYyBzYW8gY2hlcCBuZ3V5ZW4gdmFuIHRhaSBsaWV1IGN1YSBHUyBUbyBOZ29jIFRo YW5oLCBjbyB0aGUgdGhheSBybyBub2kgZHVuZyBiYWkgdHJhIGxvaSBwaG9uZyB2YW4gZ2lhIGN1 YSBOZ2FpIERBTyBUQUMgSUkgY3VuZyBjbyBkb2FuIGdpb25nIGhldCB2b2kgDQpwaGFuIGRhdSBi YWkgdHJhIGxvaSBwaG9uZyB2YW4gZ2lhIGN1YSBEQU8gVEFDIE5ndXllbiBDaGkgQmVuLiBMaWV1 IGFpIGFuIGNhcCBjdWEgYWkgZGF5Pz8/IA0KKGNvbiB0aWVwKSANCihHdWkgbHVjIDAwOjI4LCAw My8wOS8wOCkNCg0KWSBraWVuIGRpZW4gZGFuOg0KVmlldHZhbnh1YW4gSUQgYmFpIHZpZXQ6IDEz NTYyNDM0Og0KDQpCYWMgdGhhbmdsb25nIG9pISBUdSBsaWV1IG1vaSBjdWEgYmFjIHF1YSBsYSBo b2FuaCB0cmFuZywgdGhlbSBtb3QgYmFuZyBjaHVuZyBudWEgdmFjaCBtYXQgdG9pIGFuIGNhcCBu Z2hpZW4gY3V1IGNvbmcgY2hpZW5nIGN1YSAiYm8gY29uIiBuaGEgTmd1eWVuIENoaSBCZW4gKGto b25nIGJpZXQgZ2l1YSBDaGkgQmVuIHZhIGxhbyBEYW8gdGFjIDIga2lhLCBhaSBsYSBibywgYWkg bGEgY29uPykuIA0KDQpDYWkgbG9pIiBwaG9uZyB2YW4gZ2lhIiBtYSBiYWMgbmV1LCB0aGF0IHJh IG5ldSBsYW0gYW4gZGFuZyBob2FuZyB0aGkga2hvbmcgY28gdmFuIGRlIGdpLCBib24gZW0gY3Vu ZyB2YW4gdGh1b25nIGd1aSBjYXUgaG9pIGNobyBkb2kgdHVvbmcgZHVvYyBwaG9uZyB2YW4gZGUg aG8gdHUgc29hbiBiYWkgDQp0cmEgbG9pLCBkbyBtYXQgY29uZyBiaWVuIHRhcCwgbWllbiBsYSBy byByYW5nLCByYW5oIG1hY2ggdmEgdG9hdCBsZW4gZHVvYyBjaHUgZGUgY2FuIGxhbSByby4NCg0K Q2hldCBub2kgY2FjaCBsYW0iIHBob25nIHZhbiBnaWEiIGxhaSBsYSBjb24gZGFvIDIgbHVvaSwg dmkgbmV1IGtob25nIGNvIHRhbSBzYW5nLCBraG9uZyBjbyBuaGFuIGNhY2gga2hvYSBob2Mgbm9p IGNodW5nIHZhIG5oYW4gY2FjaCBjb24gbmd1b2kgbm9pIHJpZW5nIHRoaSBrZSBkdW9jIA0KcGhv bmcgdmFuIHNlIGRlIGRhbmcgZGFvIHZhbiBjdWEgbmd1b2kga2hhYywgdGhhbSBjaGkgY2hlcCBo YW4gdHJvbmcgc2FjaCByYSB2b2kgdmFuIHBob25nIGxvaSBkdW9pIG5nb24gbmd1IHZpZXQsIGRl IHRoaWVuIGhhIGN1IHR1b25nIGJvIGxhIG9uZyBkYXkgdHJhIGxvaSBvYW5nIG9hbmcgbmh1IA0K dGhhdC4gRGF5IGxhIHRydW9uZyBob3AgY3VhIGRhbyB0YWMgTmd1eWVuIENoaSBCZW4gdmEgY2Fp IGxhbyBEYW8gdGFjIDIgYW4gdGhlbyBub2kgbGVvIA0Ka2lhLiBOaHVuZyB2dSIgcGhvbmcgdmFu IGdpYSIgbmF5IHRoaSBnYXkgZGF5LCBib2kgY2F1IGNodXllbiBBTiBDQVAgS0hPQSBIT0MgDQpt YSBjdSB0aGUgbGEgYW4gY2FwIGNhYyBuZ2hpZW4gY3V1IGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4g Y3VhIGN1IFRvIE5nb2MgVGhhbmggeGVtIA0KcmEgZHVuZyBsYSBtb3QgbWFuIGJpIGhhaSBraWNo IGhldCBzdWMgbG8gYmljaC4gU2UgY28gdGhlIHN1eSBkb2FuIG5oaWV1IGh1b25nIGtoYWMgbmhh dSANCnRoZW8gcGhlcCIgYmllbiBjaHVuZyIgdmEgcGhlcCIgZGlldSB0cmEgdG9pIHBoYW0gaGlu aCBzdSB2YW4gaG9hIiBkZSB4ZXQgeGVtIHRyb25nIDIga2UgY2FwIE5ndXllbiBDaGkgQmVuIHZh IGxhbyBEYW8gdGFjIDI6IA0KDQotVGh1IG5oYXQ6IHRoYW5nIG5hbyBhbiBjYXAgY3VhIGN1IFRo YW5oIHRydW9jLCB2YSB0aGFuZyBuYW8gYW4gY2FwIG5oaWV1IGhvbiB0aGFuZyBuYW8/IENvIHZl IENoaSBCZW4gYW4gY2FwIG5oaWV1IGhvbiByb2kuIENvbiBpbiB0aGFuaCBzYWNoIG1vaSBtYXUg Y2h1ISANCg0KLVRodSBoYWk6IDIgdGhhbmcgbmF5IGxhaSBhbiBjYXAgY2hpbmggY2FjIGNhdSB2 YW4gY3VhIG5oYXUsIHZheSB0aGFuZyBuYW8gYW4gY2FwIGN1YSB0aGFuZyBuYW8/IA0KDQotVGh1 IGJhOiBnaXVhIE5ndXllbiBDaGkgQmVuIHZhIGxhbyBEYW8gdGFjIDIsIHRoYW5nIG5hbyBjaHVj IHRvIGhvbiB0aGFuZyBuYW8/IFhlbSIgYnV0IGtoaSIgKGNodSBraG9uZyBwaGFpIiBraGF1IGto aSIsIHZpIGRheSBsYSBwaG9uZyB2YW4gZ2lhIG1hISkgY3VhIGxhbyBEYW8gdGFjIDIsIGNvIA0K bGUgY2h1YyBsYW8gbmF5IGN1bmcgdG8gcGhldCBkYXksIGtob25nIGJpZXQgbGEgbmFtIHRyZW4g aGF5IG5hbSBkdW9pIFZpZW4gdHJ1b25nIFZpZW4gVkhOVCBOZ3V5ZW4gQ2hpIEJlbiwgbGlldSBj byBsYSBCaSB0aHUgQ2hpIEJvIGhheSBjaHUgbmhpZW0gZ2kga2hvbmcgZGF5Pw0KDQotVGh1IHR1 OiBjYSAyIHRoYW5nIGRhbyB0YWMgZGV1IG5oYW4gZGFuaCBjbyBxdWFuIGNhcCBCbyBtYSBwaGF0 IG5nb24gbmh1IHRoZSBkYWkgZGllbiwgbmh1IHRoZSB0b2kgYW4gY2FwIGtob2EgaG9jIG8gZGF5 IGNhbmcgbmFuZywgdmkgbmdoaWVtIG5oaWVuIG5vIHRybyB0aGFuaCB0b2kgQU4gQ0FQIENBUCBC TyAoZ2lvbmcgbmh1IGtpZXUgZGUgdGFpIGNhcCBWaWVuLCBjYXAgQm8sIGNhcCBOaGEgbnVvYyB5 IG1hKSENCg0KLVRodSBuYW06IERvaSBkZW4ga2hpIGJhYyB0aGFuZyBsb25nIGNvbmcgYm8gY2hp bmggdGh1YyBobyB0ZW4sIGNodWMgdnUuLi4gY3VhIGxhbyBEYW8gdGFjIDIsIGNodW5nIHRhIG1v aSBjbyB0aGUgYmFuIHRpZXAgZHVvYy4gUm9pIGNhbiBjdSB0aGVvIEJvIGx1YXQgRGFuIHN1IHZh IEJvIGx1YXQgSGluaCANCnN1IGN1YSBudW9jIENIWEhDTiBWaWV0IE5hbSBkZSB4ZW0geGV0IG1h IGtoZXAgMiB0aGFuZyBkYW8gdGFjIG5heSB2YW8ga2h1bmcgaGluaCBwaGF0IG5hbyBjaG8gdGhp Y2ggZGFuZy4gQ2h1YyBjYW5nIHRvLCBhbiBjYXAgY2FuZyBuaGlldSB0aGkgdG9pIGNhbmcgbmFu Zy4NCg0KIEd1aSBsdWMgMTY6NDcsIDA0LzA5LzA4KQ0KDQpodHRwOi8vbXkub3BlcmEuY29tL05n dXllbmNoaWJlbmJvbWF0dGhhdC9ibG9nL3Nob3cuZG1sLzMxOTA5NDkgTW9uZGF5LCAyNy4gQXBy aWwgMjAwOSwgMTM6MDM6MjMNCg0KT25nIFBoYW0gUXVhbmcgTmdoaSBkYW8gdmFuPz8/DQoNCk1v dCB0aW4gY3VjIHNvY2shISEgQ3VvaSBjdW5nLCBuaGFuIHZhdCBkYW8gdGFjIG5naGllbiBjdXUg Y29uZyBjaGllbmcgdGh1IDIgc2F1IE5ndXllbiBDaGkgQmVuIGRhIGR1b2MgbW90IHRoYW5oIHZp ZW4gbW9pIC0gbmljayBaVVpBWlUgLSB0cmVuIGRpZW4gZGFuIFRyYWkgdGltIA0KVmlldCBOYW0g b25saW5lIGNoaSBkaWNoIGRhbmggdm9pIGJhaSB2aWV0IGdheSBjaGFuIGRvbmcgZHVvaSBkYXk6 IA0KDQpQSEFNIFFVQU5HIE5HSEkgREFPIFZBTiBIQVkgQkkgVklFTiBUUlVPTkcgTkdVWUVOIENI SSBCRU4gQ0hPSSBYTz8/PyANCg0KTmh1IHRoYW5odmllbiB0aGFuZ2xvbmc0NTYgcGhhbiB0aWNo IGNhIGNodW0gYmFpIHZhY2ggdG9pIGRhbyB2YW4gY29uZyBjaGllbmcgY3VhIGNhaSBvbmcgIkRh byB0YWMgMiIgbyB0cmFuZyB0cnVvYywgdG9pIGRhIGxhbiBtbyBkYXUgdmV0IHRoZW8gY2FjaCBy aWVuZyB2YSBkYSB0b20gZHVvYyBkaWNoIGRhbmggb25nIGRhbyB0YWMgbmF5LiBDbyBsZSBtYW4g cGhlcCB0YXQgY2EgY2FjIGN1dSB0aGFuaCB2aWVuIGN1YSBkaWVuIGRhbiwgdmkgZGEgcmF0IA0K bGF1IGtob25nIHRoYXkgYmFuIG5hbyBsZW4gdGllbmcsIHhpbiBkdW9jICJ2YWNoIG1hdCBjaGkg dGVuIiBrZSBkYW8gdmFuIHRodSAyIHNhdSBOZ3V5ZW4gQ2hpIEJlbi4gRG8gY2hpbmggbGEgb25n IFBoYW0gUXVhbmcgTmdoaSwgVXkgdmllbiBCbyBDaGluaCB0cmksIG5ndXllbiBCbyANCnRydW9u ZyBCbyBWYW4gaG9hIJZUaG9uZyB0aW4gKG5heSBsYSBCbyBWYW4gaG9hLSBUaGUgdGhhbyB2YSBE dSBsaWNoKSwgaGllbiBsYSBCaSB0aHUgVGhhbmggdXkgVGh1IGRvIEhhIE5vaS4gDQoNClhpbiBo YXkgY2h1IHkhIERlIHBob25nIHNhdSBraGkgZGFuZyBiYWkgbmF5LCAiYmUgdHJlbiIgc2UgeG9h IHNhY2ggZGF1IHZldCB0YW5nIGNodW5nIHRodSBwaGFtIGFuIGNhcCBuZW4gdG9pIGRhIGNodXAg aGluaCB0b2FuIGJvIGNhYyBXZWJzaXRlIGhpZW4gdGhpIGNhYyBiYW4gdmFuIGFuIGNhcCANCmN1 YSBvbmcgUGhhbSBRdWFuZyBOZ2hpLCBkZSBkdSBsdWFuIHRpZW4gdGhlbyBkb2kuIChhbmggY2h1 cCBtaW5oIGhvYSCWIGtlbSB0aGVvKQ0KDQpBLiBCYWkgZGFvIHZhbiB0aHUgbmhhdCBjdWEgb25n IFBoYW0gUXVhbmcgTmdoaTogIktob25nIGdpYW4gdmFuIGhvYSBjb25nIGNoaWVuZyBUYXkgTmd1 eWVuIC0gZGluaCBodW9uZyBiYW8gdG9uIHZhIHBoYXQgaHV5Ii4gQmFpIGRhbyB2YW4gbmF5IGR1 b2MgeHVhdCBoaWVuIGxhbiBkYXUgDQp0aWVuIHRyZW4gYmFvIE5oYW4gZGFuIHJhIG5nYXkgMTEv MTIvMjAwNSwgdHIuNS4gU2F1IGRvIG5vIGxhaSBkdW9jIGRhbmcgbGFuIHRodSAyIHRyZW4gV2Vi c2l0ZSBjdWEgQm8gVmFuIGhvYS0gVGhlIHRoYW8gdmEgRHUgbGljaCB2YW8gOGcgc2FuZyBuZ2F5 IDEyLzEyLzIwMDUsIHR1YyBzYXUgbW90IG5nYXkuIA0KDQpbaHR0cDovL3d3dy5jaW5ldC52bi8/ Y3RsPXVzY19OZXdzVmlld3NkZXRhaWwmem9uZWlkPTIxJnJvb3RJZD0wJm5ld3NpZD00MTIyXSAo YW5oIGNodXAgliBrZW0gdGhlbykNCg0KUm9pIHNhdSBkbywgbm8gbGFpIGR1b2MgZGFuZyB0aWVw IHRyZW4gdHJhbmcgY2h1eWVuIGRlIFZhbiBob2EgIkRpIHNhbiB2YW4gaG9hIGNvbmcgY2hpZW5n IFRheSBOZ3V5ZW4iIHZvaSBtb3QgY2FpIHRlbiBraGFjLCBjaHUgIktob25nIGdpYW4iIGR1b2Mg ZG9pIHRoYW5oIGNodSAiRGkgDQpzYW4iLiBUaGUgbGEgb25nIEJvIHRydW9uZyBQaGFtIFF1YW5n IE5naGkgZGEgY28gYmFpIG1vaSB2b2kgdGVuIGdvaSAiRGkgc2FuIHZhbiBob2EgY29uZyBjaGll bmcgVGF5IE5ndXllbi0gZGluaCBodW9uZyBiYW8gdG9uIHZhIHBoYXQgaHV5IiANCltodHRwOi8v d3d3LiBjaW5ldC4gZ292LiB2bi9jaHV5ZW5kZVZIL2NvbmdjaGllbmcvdGF5bmd1eWVuLiBodG0j NF0gKGFuaCBjaHVwIGtlbSB0aGVvKQ0KDQpUaWVwIGRlbiwgbm8gY3VuZyBkdW9jIGRhbmcgdHJl biBXZWJzaXRlIFZhbiBob2EgVmlldCBOYW06IA0KW2h0dHA6Ly92aWV0bmFtY3VsdHVyZS4gdm4v TWVudS9kaXNhbnZoL2RldGFpbC4gYXNwP2lkPTI1NV0gKGFuaCBjaHVwIGtlbSB0aGVvXQ0KDQpO Z29haSByYSwgYmFuIHZhbiBhbiBjYXAgbmF5IGNvbiBkdW9jIGRhbmcgdHJlbiBXZWJzaXRlIEhh aSBQaG9uZy4gVHJvbmcgZG8sIGNvIGdoaSBybyBuZ3VvbiBsYXkgdHUgYmFvIE5oYW4gZGFuIHJh IG5nYXkgMTEvMTIvMjAwNSwgdHIuNS4gDQpbaHR0cDovL3d3dy4gaGFpcGhvbmcuIGdvdi4gdm4v dGh1dmllbnRoYW5ocGhvL3ZuL2luZGV4LiBhc3A/bWVudWlkPTY1MCZwYXJlbnRfbWVudWlkPTU4 MCZmdXNlYWN0aW9uPTMmYXJ0aWNsZWlkPTQ4NzddIChhbmggY2h1cCBrZW0gdGhlbykNCg0KQi4g QmFpIGRhbyB2YW4gdGh1IGhhaSBjdWEgb25nIFBoYW0gUXVhbmcgTmdoaTogIkJhbyB0b24sIHBo YXQgaHV5IGdpYSB0cmkgS2hvbmcgZ2lhbiB2YW4gaG9hIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4i LCBkYW5nIG5nYXkgMjcvMy8yMDA2IHRyZW4gV2Vic2l0ZSBjdWEgRGFpIHRpZW5nIG5vaSANClZp ZXQgTmFtLiBLaGkgYmFuIHRoYW5nbG9uZzQ1NiByYSBiYWkgcGhhbiB0aWNoIGJhaSBkYW8gdmFu IG5heSwgdG9pIGRhIGxhbiByYSB0dW5nIHRpY2ggdmEgY2h1cCBkdW9jIG5ndXllbiB0cmFuZyB0 aGVvIGxpbmsgZHVvaSBkYXk6IA0KW2h0dHA6Ly93d3cuIHZvdm5ld3MuIGNvbS4gdm4vP3BhZ2U9 MTA5Jm5pZD04MzUwXSAoYW5oIGNodXAga2VtIHRoZW8pDQoNCkJhaSB2YW4gYW4gY2FwIG5heSBj dW5nIGR1b2MgZGFuZyB0cmVuIFdlYnNpdGUgVHJ1bmcgdGFtIG5naGllbiBjdXUgTHkgaG9jIERv bmcgcGh1b25nLCBsYXkgdHUgbmd1b24gdm92bmV3cy4gdm4uIA0KW2h0dHA6Ly93d3cuIGx5aG9j ZG9uZ3BodW9uZy4gb3JnLiB2bi9OZXdzLzAzL0Jhby10b24tcGhhdC1odXktZ2lhLXRyaS1raG9u Zy1naWFuLXZhbi1ob2EtY29uZy1jaGllbmctVGF5LU5ndXllbi85LzE4NS9dIChhbmggY2h1cCBr ZW0gdGhlbykNCg0KV2Vic2l0ZSBHaWFpIGRpZXUgVmlldCBOYW0gY3VuZyBkYSBkYW5nIGJhaSBu YXksIGRvYW4gY3VvaSBjbyB0aGVtIGNhaSBCb3ggdGFpIHkga2llbiBjdWEgbW90IHNvIHF1YW4g Y2h1YyBraGFjIGNobyBjbyB2ZSBraGFjIGJhbiBnb2MuIA0KW2h0dHA6Ly93d3cuIHZpZXRuYW1t ZWxvZHkuIGNvbS92aWV3X25ld3MuIGFzcHg/bmlkPTYwNF0gKGFuaCBjaHVwIGtlbSB0aGVvKQ0K DQpUdW9uZyB0dSwgV2Vic2l0ZSBDb25nIHR5IGR1IGxpY2ggc2luaCB0aGFpIEJhbiBEb24gY3Vu ZyBkYW5nIGxhaSBiYWkgZGFvIHZhbiBub2kgdHJlbiBjdWEgb25nIFBoYW0gUXVhbmcgTmdoaSwg bmh1bmcgcm9pIGRhIGJpIGFpIGRvIG5oYW5oIHRheSB4b2EgbmdheSBzYXUga2hpIGJhaSBjdWEg YmFuIA0KdGhhbmdsb25nNDU2IHh1YXQgaGllbiwgdG9pIHNvIHkga2hvbmcga2lwIGNodXAgbGFp LCBoaWVuIGNoaSBjbyB0aGUgeGVtIG8gYm8gbmhvIGNhY2hlIGN1YSBHb29nbGUuIA0KDQpbaHR0 cDovLzIwOS4gODUuIDE3NS4gMTA0L3NlYXJjaD9xPWNhY2hlOjE3ZmRnSUlqbFc4Sjp3d3cuIGJh bmRvbnRvdXIuIGNvbS4gdm4vbm9pZHVuZy4gYXNwJTNGdGVzdCUzRFZXJTI2bWFzbyUzRFQwMDA1 KyUyMkIlRTElQkElQTNvK3QlRTElQkIlOTNuLCtwaCVDMyVBMXQraHV5K2dpJUMzJUExK3RyJUUx JUJCJThCK0toJUMzJUI0bmcrZ2lhbit2JUM0JTgzbitoJUMzJUIzYStjJUUxJUJCJTkzbmcrY2hp JUMzJUFBbmcrVCVDMyVBMnkrTmd1eSVDMyVBQW4lMjImaGw9dmkmY3Q9Y2xuayZjZD0xJmdsPXZu XSANCg0KQy4gQmFpIGRhbyB2YW4gdGh1IGJhIGN1YSBvbmcgUGhhbSBRdWFuZyBOZ2hpIGxhIGJh aSB0cmEgbG9pIHBob25nIHZhbiBjbyBuaGFuIGRlICJLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBj aGllbmcgVGF5IE5ndXllbiIgZHVvYyBVTkVTQ08gY29uZyBuaGFuIGxhIGtpZXQgdGFjIA0Kbmhh biBsb2FpOiBUdSBoYW8sIG5odW5nIHRyYWNoIG5oaWVtIHJhdCBsb24gdHJlbiBiYW8gTGFvIGRv bmcgbmdheSAzMC8xMS8yMDA1LiANCltodHRwOi8vd3d3MS4gbGFvZG9uZy4gY29tLiB2bi9wbHMv YmxkL2Rpc3BsYXkkLiBodG5vaWR1bmcoNDAsMTQ0MzUyKV0gKGFuaCBjaHVwIGtlbSB0aGVvKQ0K DQpOaHUgYmFuIHRoYW5nbG9uZzQ1NiBkYSBwaGFuIHRpY2ggcmF0IHRoYXUgdGluaCBkYXQgbHks IGRheSB0aHVjIGNoYXQgbGEgYmFpIHRyYSBsb2kgInBob25nIHZhbiBnaWEiLCBib2kgbGUgbm8g YW4gY2FwIG5ndXllbiB2YW4gY2F1IGNodSB0cm9uZyBwaGFuIENodW9uZyB0cmluaCBoYW5oIA0K ZG9uZyBvIGhvIHNvIGNvbmcgY2hpZW5nIGRvIEdTIFRvIE5nb2MgVGhhbmggc29hbiB0aGFvLiBE aWV1IGRvIGNodW5nIHRvIG9uZyBQaGFtIA0KUXVhbmcgTmdoaSBkYSAiY2hlcCBiYWkgZGUgbm9w IGNobyBwaG9uZyB2aWVuIGNodSBraG9uZyBoZSB0cmEgbG9pIHBob25nIHZhbiB0cnVjIA0KdGll cCIsIGR1bmcgbmh1IGJhbiB0aGFuZ2xvbmc0NTYgZGEgY2hpIHJvLiBWYSBraG9uZyBuaHVuZyB0 aGUsIHJvIHJhbmcgb25nIFBoYW0gDQpRdWFuZyBOZ2hpIHZhIG9uZyBOZ3V5ZW4gQ2hpIEJlbiBj dW5nICJzYW8gY2hlcCIgbGFuIG5oYXUgY2EgMSBkb2FuIHBob25nIHZhbiBnaWEgKHhpbiB4ZW0g YmFpIGN1YSB0aGFuZ2xvbmc0NTYgbyB0cmFuZyB0cnVvYykuIA0KW2h0dHA6Ly93d3cxMC4gdHR2 bm9sLiBjb20vZm9ydW0vdmFuaG9jLzg2NjY0Mi90cmFuZy05OS4gdHR2bl0NCg0KQ28gZGlldSwg YmFpIG9uZyBOZ2hpIHRyYSBsb2kgYmFvIExhbyBkb25nIHJhIG5nYXkgMzAvMTEvMjAwNSwgY29u IGJhaSBwaG9uZyB2YW4gcm9tIGN1YSBOZ3V5ZW4gQ2hpIEJlbiBkYW5nIHRyZW4gZGFjIHNhbiBE aSB0aWNoIFZpZXQgTmFtIGxhaSB2YW8gdGhhbmcgMS8yMDA2LiBOaHUgdGhlIA0KeGVtIHJhIGxh IG9uZyBCZW4gYW4gY2FwIGJhaSB0cmEgbG9pIGN1YSBvbmcgTmdoaT8gWGluIHRyaWNoIGxhaSBk b2FuIHBoYW4gdGljaCBjdWEgdGhhbmdsb25nNDU2OiANCg0KRGF5IGxhIGRvYW4gdmFuIE5nYWkg REFPIFRBQyBJSSB0cmEgbG9pIHBob25nIHZhbiB0cm9uZyBiYWkgInBob25nIHZhbiBnaWEiOiAN Cg0KIk5nYXkgMjUuIDEwLiAyMDAyLCBUaHUgdHVvbmcgQ2hpbmggcGh1IGRhIGRvbmcgeSBkZSBC byBWSFRUIHRyaW5oIFVORVNDTyA1IGxvYWkgaGluaCBkaSBzYW4gdmFuIGhvYSBwaGkgdmF0IHRo ZSB0aWV1IGJpZXUgZGUgVU5FU0NPIGxhbiBsdW90IHhldCB2YSBjb25nIG5oYW4gbGEga2lldCB0 YWMgDQp0cnV5ZW4ga2hhdSB2YSBkaSBzYW4gcGhpIHZhdCB0aGUgY3VhIG5oYW4gbG9haSB0cm9u ZyBrZSBob2FjaCAxMCBuYW0gdG9pLCBnb206IEtob25nIA0KZ2lhbiB2YW4gaG9hIGNvbmcgY2hp ZW5nIFRheSBOZ3V5ZW4sIGhhdCBjYSB0cnUgY3VhIG5ndW9pIFZpZXQgbyBCYWMgQm8sIHN1IHRo aSBjdWEgY2FjIA0KZGFuIHRvYyB0aGlldSBzbyBvIFZpZXQgTmFtLCBkYW4gY2EgcXVhbiBobyBC YWMgTmluaCB2YSBtdWEgcm9pIG51b2MgRG9uZyBiYW5nIEJhYyBCby4gVHJlbiBjbyBzbyBxdXll dCBkaW5oIHRyZW4sIEJvIFZIVFQgZGEgY28gUXV5ZXQgZGluaCBzbyA4OTAvUUQtQlZIVFQgZ2lh byBjaG8gDQpWaWVuIFZhbiBob2EgLSBUaG9uZyB0aW4geGF5IGR1bmcgaG8gc28gdW5nIGN1IHF1 b2MgZ2lhICJLaG9uZyBnaWFuIHZhbiBob2EgY29uZyBjaGllbmcgVGF5IE5ndXllbiIgZGUgZGUg dHJpbmggVU5FU0NPLiBUcm9uZyBtb3QgdGhvaSBnaWFuIGtoYSBnYXAgZ2FwLCBCbyBWSFRUIA0K ZGEgcGhvaSBob3Agdm9pIGNhYyBkaWEgcGh1b25nIHZhIG1vdCBzbyBjbyBxdWFuIHRpY2ggY3Vj IGhvYW4gY2hpbmggdHUgbGlldSwgaG8gc28gdGhlbyANCnlldSBjYXUgY3VhIFVORVNDTy4gQ3Vv aSB0aGFuZyA5LiAyMDA0LCBCbyB0cnVvbmcgQm8gVkhUVCBkYSBjaGluaCB0aHVjIGt5IGd1aSBo byBzbyBkaSBQYXJpcyBkZSBVTkVTQ08geGVtIHhldCwgY29uZyBuaGFuIi4gDQoNCkNvbiBkYXkg bGEgZG9hbiB2YW4gREFPIFRBQyBOZ3V5ZW4gQ2hpIEJlbiB0cmEgbG9pIHBob25nIHZhbiB0cmVu IGRhYyBzYW4gRGkgdGljaCBWaWV0IE5hbTogDQoiQ3VvaSB0aGFuZyAxMC4gMjAwMiwgVGh1IHR1 b25nIENoaW5oIHBodSBkYSBkb25nIHkgZGUgQm8gVkhUVCB0cmluaCBVTkVTQ08gNSBsb2FpIGhp bmggZGkgc2FuIHZhbiBob2EgcGhpIHZhdCB0aGUgdGlldSBiaWV1IGN1YSBWaWV0IE5hbSBnb206 IEtob25nIGdpYW4gdmFuIGhvYSANCmNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4sIEhhdCBjYSB0cnUg Y3VhIG5ndW9pIFZpZXQgbyBCYWMgQm8sIFN1IHRoaSBjdWEgY2FjIGRhbiB0b2MgDQp0aGlldSBz byBvIFZpZXQgTmFtLCBEYW4gY2EgcXVhbiBobyBCYWMgTmluaCB2YSBNdWEgcm9pIG51b2MgRG9u ZyBiYW5nIEJhYyBCbyBkZSANClVORVNDTyB4ZXQgdmEgY29uZyBuaGFuIGxhIGtpZXQgdGFjIHRy dXllbiBraGF1IHZhIGRpIHNhbiBwaGkgdmF0IHRoZSBjdWEgbmhhbiBsb2FpIA0KdHJvbmcga2Ug aG9hY2ggMTAgbmFtIHRvaS4gQ3VvaSB0aGFuZyAzLiAyMDA0LCBCbyB0cnVvbmcgQm8gVmFuIGhv YSBUaG9uZyB0aW4gZGEgZ2lhbyANCmNobyBWaWVuIFZhbiBob2EgVGhvbmcgdGluIHhheSBkdW5n IGhvIHNvIHVuZyBjdSBxdW9jIGdpYSBLaG9uZyBnaWFuIHZhbiBob2EgY29uZyANCmNoaWVuZyBU YXkgTmd1eWVuIGRlIHRyaW5oIFVORVNDTyBjb25nIG5oYW4gbGEga2lldCB0YWMgdHJ1eWVuIGto YXUgdmEgZGkgc2FuIHBoaSB2YXQgdGhlIGN1YSBuaGFuIGxvYWkuIEN1b2kgdGhhbmcgOSwgaG8g c28gaG9hbiB0aGFuaCB2YSBkdW9jIGd1aSBzYW5nIFBhcmlzIGR1bmcgcXVpIGRpbmggdGhvaSBn aWFuIi4gDQoNClRoZW8gZGF1IHZldCwgdG9pIGN1bmcgbGFuIHRpbSByYSBzdSB4dWF0IGhpZW4g Y3VhIGJhaSBkYW8gdmFuIHBob25nIHZhbiByb20gbmF5IHRyZW4gV2Vic2l0ZSBCbyBWYW4gaG9h IFRoZSB0aGFvIHZhIER1IGxpY2g6IA0KW2h0dHA6Ly93d3cuIGNpbmV0LiBnb3YuIHZuLz9jdGw9 dXNjX05ld3NWaWV3c2RldGFpbCZ6b25laWQ9MjEmcm9vdElkPTAmbmV3c2lkPTM4MjVdIChhbmgg Y2h1cCBrZW0gdGhlbykNCg0KdmEgdHJlbiBXZWJzaXRlIEdpYWkgZGlldSBWaWV0IE5hbTogDQpb aHR0cDovL3ZpZXRuYW1tZWxvZHkuIGNvbS92aWV3X25ld3MuIGFzcHg/bmlkPTMxOV0gKGFuaCBj aHVwIGtlbSB0aGVvKQ0KDQpDbyBtb3QgZGlldSBoaWVuIG5oaWVuLCBjdW5nIG5odSBOZ3V5ZW4g Q2hpIEJlbiwgY3V1IEJvIHRydW9uZyBQaGFtIFF1YW5nIE5naGkgZHVvbmcgbmhpZW4ga2hvbmcg dGhlIGNvIGtpZW4gdGh1YyBzYXUgc2FjIHZlIGNvbmcgY2hpZW5nIFRheSBOZ3V5ZW4sIGNodXll biBkYW5nIHRhaSBjYWMgYmFpIHZpZXQgbmh1IGRhIG5ldSBsYSBkaWV1IHRoYXQgaGFpIGh1b2Mu IFZheSwgbGlldSBvbmcgUGhhbSBRdWFuZyBOZ2hpIGNvIGNodSANCmRvbmcgYW4gY2FwIGNhYyBu Z2hpZW4gY3V1IGN1YSBHUyBUbyBOZ29jIFRoYW5oIGhheSBkYXkgbGEgInRhaSBuYW4iIGRvIGNh cCBkdW9pIGdheSBuZW4/Pz8gQ28gMiBnaWEgdGh1eWV0IG5odSBzYXUgdmUgdnUgYW4gY2FwIHRh eSBkaW5oIG5heTogDQoNCipHaWEgdGh1eWV0IDE6IFZhbyB0aG9pIGRpZW0gY29uZyBjaGllbmcg VGF5IE5ndXllbiBkdW9jIHZpbmggZGFuaCAoMjAwNSksIG9uZyBQaGFtIFF1YW5nIE5naGkga2hp IGRvIHZhbiBkdW9uZyBjaHVjIEJvIHRydW9uZy4gTmd1eWVuIENoaSBCZW4gaGFuIGxhIHRlbiBk YXkgdG8gbG9vbmcgDQp0b29uZyBiYW0gZGl0IG5pbmggc2VwLiBWaWVuIHRydW9uZyBOZ3V5ZW4g Q2hpIEJlbiBkYSBjbyB0aW5oIGRhbyB2YW4ga2hpIGNodSBkb25nIA0KImNodWFuIGJpIiBiYWkg dmlldCBobyBvbmcgdGh1IHRydW9uZy0gQm8gdHJ1b25nPyBUcnVvbmcgaG9wIG5heSBuZXUgZHVu ZyB0aGkgdmllbiANCnRydW9uZyBOZ3V5ZW4gQ2hpIEJlbiBxdWEgbGEgbW90IHRheSBjYXAgZHVv aSB2byBjdW5nIGRldSBjYW5nLCBraG9uIG5hbiwgZGEgZ2FwIGx1YSBibyB0YXkgcXVhbiB0aGF5 LCBiYW8gaGFpIG9uZyBjdXUgQm8gdHJ1b25nLiANCg0KKkdpYSB0aHV5ZXQgMjogRG9uIGdpYW4s IG9uZyBVeSB2aWVuIEJvIENoaW5oIHRyaS0gQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSBQaGFtIFF1 YW5nIE5naGkgZHVuZyBsYSBrZSBkYW8gdmFuIGNvbmcgY2hpZW5nICh0dWMgZGFvIHRhYyBraG9h IGhvYykgZ2lvbmcgaGV0IGRhbyB0YWMgTmd1eWVuIENoaSBCZW4uIA0KDQotLS0tLQ0KaHR0cDov L3ZpLndpa2lwZWRpYS5vcmcvd2lraS9QaCVFMSVCQSVBMW1fUXVhbmdfTmdoJUUxJUJCJThCDQoN CkhhIE5vaTogT25nIFBoYW0gUXVhbmcgTmdoaSBsYW0gQmkgdGh1IFRoYW5oIHV5IEhhIE5vaSAo dGllcCkgDQoNCmh0dHA6Ly93d3cubWFpdm9vLmNvbS8yMDA5LzA5LzEwL0hhLU5vaS1Vbi10YWMt Z2lhby10aG9uZy1jby1jaGlldS1odW9uZy1naWEtdGFuZy1uNjE1MDMuaHRtbCBRdWFuZyBNaW5o IDEwLzA5LzIwMDkgLSAyMjoyMCBHTVQtNg0KDQpIYSBOb2k6IFVuIHRhYyBnaWFvIHRob25nIGNv IGNoaWV1IGh1b25nIGdpYSB0YW5nIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEw LTA0LTEyLXF1eS1ob2FjaC1oYS1ub2ktbmh1LXZheS1sby1xdWEtDQoNCkhhIE5vaTogUXV5IGhv YWNoIEhhIE5vaSBuaHUgdmF5OiBMbyBxdWEhDQoNCkRlbiB0aG9pIGRpZW0gY2h1YW4gYmkgcGhh aSB0cmluaCBRdW9jIGhvaSwgRG8gYW4gdmFuIGNvbiBuaGlldSB2YW4gZGUgbG9uIGNodWEgZHVv YyANCnRob25nIG5oYXQgbmdheSB0cm9uZyBub2kgYm8gbmhvbSBuZ2hpZW4gY3V1DQoNCiIuLi5W YWkgdHJvIGN1YSBITiBsYWkgaGF1IG5odSBraG9uZyBjbywgcmF0IG1vIG5oYXQiIEtpZW4gdHJ1 YyBzdSBRdXkgaG9hY2ggTGUgTWFuaCANCkN1b25nIHRyYW4gdHJvOiAibmV1IHRoZW8ga2UgaG9h Y2ggdmEgdGllbiBkbyBkdW9jIGRhdCByYSB0cm9uZyBOZ2hpIHF1eWV0IHNvIDEyL05RLQ0KQ1As IHRoaSBraG9uZyBjb24gZHUgdGhvaSBnaWFuIGRlIGNoaW5oIHN1YSB2YSBjYXAgbmhhdCBudWEu IFNhdSBuYXkga2hpIERvIGFuIGR1b2MgDQpkdXlldCwgdmllYyB0aHVvbmcgeHV5ZW4gcGhhaSBi YW8gY2FvIHhpbiBDaGluaCBwaHUgY2hvIGRpZXUgY2hpbmggY3VjIGJvIHNlIGxhIHRhdCB5ZXUg DQpraG9uZyB0aGUgdHJhbmgga2hvaSB0cm9uZyBxdWEgdHJpbmggdHJpZW4ga2hhaSB0aHVjIGhp ZW4uIERpZXUgZG8gc2UgYW5oIGh1b25nIGtob25nIA0KbmhvIGRlbiBtb2kgdHJ1b25nIGRhdSB0 dSB2YSBoaWV1IHF1YSBkYXUgdHUgcGhhdCB0cmllbiBUaHUgZG8uLi4iIA0KDQpodHRwOi8vdm5y NTAwLnZuLzIwMTAtMTAtMjMtY2F0LW5naGlhLXF1eS1ob2FjaC1kby10aGkta2lldS10aGFuaC1n aW9uZy1jdWEtdmlldC1uYW0gUGhhbSBIdXllbiAodGh1YyBoaWVuKSAyMy0xMC0yMDEwIA0KDQpI YSBOb2k6IENhdCBuZ2hpYSBxdXkgaG9hY2ggZG8gdGhpIGtpZXUgIlRoYW5oIEdpb25nIiBjdWEg VmlldCBOYW0NCg0KVFJPTkcgTVVDIE5BWSAoRG9jIHRoZW0pDQoqIEtpZW4gbmdoaSBjaHVhIHRo b25nIHF1YSBkbyBhbiBxdXkgaG9hY2ggVGh1IGRvIA0KKiBRdXkgaG9hY2ggVGh1IGRvOiBUdSBk dXkgIkR1bmcgbW90IGNhaSIhDQoqIEJhbiB0aGFvIGRhdCBCYSBWaSAtIGhlIHF1YSB0dSBxdWFu IGx5IHF1eSBob2FjaA0KKiBObyBjb25nOiBLaG8gaGlldSBuZ3VvbmcgbmFvIGFuIHRvYW4gDQoN CihWTlI1MDApIC0gQ2h1bmcgdGEgaGF5IHZlIG5odW5nIHF1eSBob2FjaCAiVGhhbmggR2lvbmci IG1hIGdpb2kgY2h1eWVuIG1vbiANCnRodW9uZyBraG9uZyB0aW4gcmFuZyBzZSB0aHVjIGhpZW4g bm9pIDEvMywgVFMuIEtodWF0IFZpZXQgSHVuZywgVmllbiB0cnVvbmcgVmllbiBRdXkgDQpob2Fj aCB2YSBQaGF0IHRyaWVuIEdpYW8gdGhvbmcgdmFuIHRhaSwgY2hpYSBzZS4NCg0KUGhhdCB0cmll biBnaWFvIHRob25nIGNvbmcgY29uZyB2YSBjb25nIHRhYyBsYXAgcXV5IGhvYWNoIGRvIHRoaSBs YSBtb3QgdHJvbmcgbmh1bmcgY2h1IA0KZGUgbm9uZywgZ2F5IGR1b2Mgc3UgcXVhbiB0YW0gbG9u IHRhaSBIb2kgdGhhbyBxdW9jIHRlIFRhbSBuaGluIFZpZXQgTmFtIC0gQVNFQU4gDQpkaWVuIHJh IGhvbSAyMy8xMCwgZG8gSG9pIGN1dSBzaW5oIHZpZW4gSG9jIHZpZW4gUGhhdCB0cmllbiBDb25n IG5naGUgY2hhdSBBIEFJVCANCihUaGFpIExhbikgdG8gY2h1Yy4NCg0KQmVuIGxlIHN1IGtpZW4g bmF5LCBUUy4gS2h1YXQgVmlldCBIdW5nLCBWaWVuIHRydW9uZyBWaWVuIFF1eSBob2FjaCB2YSBQ aGF0IHRyaWVuIGdpYW8gDQp0aG9uZyB2YW4gdGFpLCBESCBHaWFvIHRob25nIFZhbiB0YWkgZGEg dHJhbyBkb2kgdmUgbmh1bmcgZGUgeHVhdCBtb2kuDQoNCi0gVGh1YSBvbmcsIHF1eSBob2FjaCB2 ZSBkbyB0aGkgbHVvbiBsYSBtb2kgcXVhbiB0YW0gaGFuZyBkYXUgY3VhIG5oYW4gZGFuIG1hIGdh biBkYXkgDQpuaGF0IGxhIFF1eSBob2FjaCBIYSBOb2kgbW8gcm9uZy4gT25nIGNvIGRhbmggZ2lh IHRoZSBuYW8gdmUgY2hhdCBsdW9uZyBuaHVuZyBiYW4gDQpxdXkgaG9hY2ggbmF5Pw0KDQpUUy4g S2h1YXQgVmlldCAgSHVuZzogTGFtIHF1eSBob2FjaCwgY2h1bmcgdGEgaGF5IG1hYyBwaGFpIHRy YW5nIHRoYWkgIlRoYW5oIEdpb25nIi4gDQpUdSBjaG8ga2hvbmcgY28gZ2ksIGNodW5nIHRhIGxh aSBjdSBtdW9uIHNhdSBtb3QgZGVtLCBtbyBtYXQgcmEgbGEgbmdheSBob20gc2F1IGNvIA0KaGV0 IHJvaS4gVmkgdGhlLCBuaHVuZyBiYW4gcXV5IGhvYWNoIHZlIHJhIGN1YSBjaHVuZyB0YSB0aGkg bmh1bmcgbmd1b2kgbGFjIHF1YW4gbmhhdCANCnRyb25nIGdpb2kgY2h1eWVuIG1vbiBraG9uZyB0 aGUgdGluIHJhbmcsIGNodW5nIHRhIGNvIHRoZSBsYW0gZHVvYyBtb3QgcGhhbiBiYSBiYW4gdmUg DQpkby4NCg0KTm8gZ2lvbmcgbmh1IG1vdCBtYW0gdGllYyBkdW9jIGJheSByYSByYXQgaG9hbmgg dHJhbmcsIGNvIGhhbmcgdHJhbSBuZ2hpbiBtb24gYW4gbWEgDQpjaHVuZyB0YSBjaGkgbGEgbW90 IGFuaCBub25nIGRhbiwgZ2FwIG1vaSBtb24gbW90IHRpIG1hIHJvaSwga2hvbmcgY28gY2FtIGdp YWMgbmdvbiwgDQpjYSBidWEgdGllYyB0cm8gbmVuIGRvIGRhbmcuDQoNCkNoYW5nIG5vaSBkYXUg cmEsIHZpIGR1IGdhbiBuaGF0IGxhIFF1eSBob2FjaCBjaHVuZyBIYSBOb2kgbW8gcm9uZy4gUmll bmcgcGhhbiBoYSANCnRhbmcgY2hvIEhhIE5vaSBtbyByb25nIHBoYXQgdHJpZW4gZGVuIG5hbSAy MDMwLCBOaGEgbnVvYyBzZSBwaGFpIGRhdSB0dSA5MCB0eSBVU0QsIA0KYmFuZyBkdW5nIHRvbmcg R0RQIGN1YSBIYSBOb2kgdHJvbmcgMjAgbmFtLg0KVmF5LCBjaGFuZyBsZSwgSGEgTm9pIGtob25n ICJhbiIsIGtob25nICJuZ3UiLCBraG9uZyAibWFjIj8gQ2hhbmcgbGUsIHRhdCBjYSBkb24gdmFv IA0KbGFtIGR1b25nLCBsYW0gY2F1IGNvbmcgdGhvaSBzYW8/IE5ndW9pIHRhIGJhbyBsYSBzZSB0 aHUgaHV0IHZvbiBkYXUgdHUgdHJ1YyB0aWVwIG51b2MgDQpuZ29haSBuaHVuZyBkYXUgdHUgbmFv IGN1bmcgbGEgdGluaCB2YW8gR0RQLiBRdXkgaG9hY2ggYXkgdGEgbGFtIHRvIHF1YSwgbGFtIHNh byB0aHVjIA0KaGllbiBkdW9jPyBDYSBuaGFuIHRvaSBjaG8gcmFuZywgIGtob25nIGNhY2ggbmFv IGxhbSBub2k/IA0KDQooQW5oOiBUaWVuIHNpIEtodWF0IFZpZXQgSHVuZyAtIGFuaDogUGhhbSBI dXllbikNCg0KTWEgZG8gbGEgbHVjIHRpbmggY2hpIHBoaSB0cm9uZyBRdXkgaG9hY2ggbGEgdGhl byBkaW5oIG11YyBjdWEgQm8gWGF5IGR1bmcsIGNvbiB0cmVuIA0KdGh1YyB0ZSwgZ2lvaSBjaHV5 ZW4gbW9uIGRldSBiaWV0IHJhbmcsIHZvbiBheSB0cmVuIHRodWMgdGUgc2UgcGhhaSBnYXAgMyBs YW4uIFRodSBuaGFuIDMgDQpsYW4sIHNlIGxhIGJhbyBuaGlldT8gVGhlIG1hLCBuZ3VvaSB0YSB2 YW4gYmFvIHZlIHF1YW4gZGllbSBheS4gTmd1b2kgdGEgZGFuZyBkdWEgdHJlbiANCnRhaSBuZ3V5 ZW4gY3VhIGRhdCBudW9jLCBuaGFuIGRhbi4NCg0KLSBQaGFpIGNoYW5nLCBjaGkgZG9uIGdpYW4g bGEgdmkgbGFtIHF1eSBob2FjaCAiVGhhbmggR2lvbmciIG5lbiBWaWV0IE5hbSBtb2kgY28gDQpu aGlldSBxdXkgaG9hY2ggInRyZW8iLCB0aHVhIG9uZz8NCg0KLSBDaHVuZyB0YSBjbyBxdWEgbmhp ZXUgcXV5IGhvYWNoLiBNb2kgYm8gbGFpIGNodSB0cmkgbW90IHF1eSBob2FjaC4gUXVpIGhvYWNo IGNodW5nIA0KeGF5IGR1bmcgZG8gQm8gWGF5IGR1bmcgY2h1IHRyaSwgUXV5IGhvYWNoIGdpYW8g dGhvbmcgZG8gQm8gR2lhbyB0aG9uZyBWYW4gdGFpIGNodSANCnRyaSwgUXV5IGhvYWNoIGRhdCBk byBCbyBUYWkgbmd1eWVuIG1vaSB0cnVvbmcgY2h1IHRyaSwgUXV5IGhvYWNoIGtpbmggdGUgLSB4 YSBob2kgZG8gDQpCbyBLZSBob2FjaCBEYXUgdHUgY2h1IHRyaS4gVmEgbW9pIG5nYW5oIHNlIGNv IG1vdCB5IGRvIHJpZW5nLCBtb3QgbXVjIHRpZXUgcmllbmcgY3VhIA0KbmdhbmggZG8uDQpRdWEg bmhpZXUgZG9uIHZpIGxhcCBxdXkgaG9hY2gsIG5oaWV1IGRvbiB2aSBjaGl1IHRyYWNoIG5oaWVt IHRodWMgaGllbiBxdXkgaG9hY2ggdmEgDQpoYXUgcXVhIGxhLCB0cm9uZyBxdWEgdHJpbmggcGhh dCB0cmllbiBkbyB0aGkgdmEga2hvbmcgZ2lhbiBxdW9jIGdpYSwgc2UgcGhhdCBzaW5oIHN1IGxl Y2ggDQpuaGF1IHZlIGxvaSBpY2gsIHF1YW4gZGllbS4NCkNhYyBxdXkgaG9hY2ggZGEgbmhhdSwg Y2hvbmcgdHJlbyBuaGF1LiBNYXUgdGh1YW4gc2Uga2hvIHRodWMgaGllbi4gRG8gbGEgbW90IG5n dXllbiANCm5oYW4gY3VjIGt5IGNvIGJhbiBjaG8gaGllbiB0dW9uZyBxdXkgaG9hY2ggdHJlby4N Cg0KLSBOaHUgb25nIG5vaSwgY2h1bmcgdGEgZHVvbmcgbmh1IGRhbmcgYm9pIHRodWMgY2FjIHF1 eSBob2FjaCBtYSB0cmVuIHRodWMgdGUsIGtob25nIA0KY2FuIHRoaWV0IHBoYWkgbmh1IHZheT8N Cg0KLSBUaGVvIHRvaSwgY2hpIGNhbiBtb3QgcXV5IGhvYWNoIHRvbmcgdGhlIGRvIHRoaSB0aG9p LiBEbyBsYSBkZSB4dWF0IGNvIGJhbiBuaGF0IGN1YSB0b2kgDQpuZ2F5IHRhaSBob2kgdGhhbyBu YXkuDQpDbyB0aGUgdGhheSwgNCBsb2FpIHF1eSBob2FjaCBkbyBkZXUgY2FuIG5vaSBkdW5nIHZl IHRob25nIHRpbiBkYXUgdmFvIHZhIHBodW9uZyBwaGFwIA0KbGFwIHF1aSBob2FjaCBnaW9uZyBu aGF1LiBOaHVuZywgcm90IGN1YywgY2h1bmcgdGEgbGFtIHJpZW5nICB0dW5nIHF1eSBob2FjaCB2 YSBuaGlldSANCmJhdCBjYXAsIG1hdSB0aHVhbiB4YXkgcmEuDQoNCkJlbiBjYW5oIGRvLCBjYWMg cXV5IGhvYWNoIGRvIGN1bmcga2hvbmcgdGhlIGtlIHRodWEgbmhhdSBkdW9jLg0KDQpUaGVvIEx1 YXQgaGllbiBuYXksIGNhYyBxdXkgaG9hY2ggZGF0LCB4YXkgZHVuZywgZ2lhbyB0aG9uZyBkZXUg cGhhaSBkdWEgdmFvIHF1eSBob2FjaCANCmNodW5nIHRvbmcgdGhlIHBoYXQgdHJpZW4ga2luaCB0 ZSB4YSBob2kuIEtoaSBjaHVuZyB0YSBiYXQgZGF1IHJhIHJhIHF1eWV0IGRpbmggbGFwIHF1eSAN CmhvYWNoIHBoYXQgdHJpZW4ga2luaCB0ZSAtIHhhIGhvaSB0aGkgdHVjIGx1YyByYSBxdXlldCBk aW5oIGRlbiBsdWMgbGFtIHhvbmcgZGEgbWF0IGtob2FuZyANCjMgbmFtLiBWYXkgbGEga2hpIGJh biBxdXkgaG9hY2ggZG8gcGhlIGR1eWV0IHRoaSBzbyBsaWV1IGxhYyBoYXUgbWF0IDMgbmFtLg0K DQpEZW4gbHVjIGRvLCBtb2kgYmF0IGRhdSBsYXAgcXV5IGhvYWNoIGNodW5nIHZlIHhheSBkdW5n IHZhIHF1eSBob2FjaCBkYXQsIG1hdCB0aGVtIDMgDQpuYW0gbnVhLCBtYSBuaHVuZyBxdXkgaG9h Y2ggbmF5IHZhbiBwaGFpIGR1YSB2YW8gYmFuIHF1eSBob2FjaCB0b25nIHRoZSBraW5oIHRlIHhh IA0KaG9pIGtpYSwgdmF5IGxhIGNoYW0gbWF0IDYgbmFtLCBtb2kgc28gbGlldSBkdSBiYW8uLi4g ZGEgc2FpIGxhYyByYXQgbmhpZXUuDQoNCihBbmg6IFF1eSBob2FjaCBkbyB0aGkgSGEgTm9pIG1v IHJvbmcgY3VuZyBtYWMgdHJhbmcgdGhhaSBUaGFuaCBHaW9uZyAtIGFuaDogdGhlbyBpZHIuZWR1 LnZuKQ0KDQpWb2kgdG9jIGRvIHBoYXQgdHJpZW4gZG8gdGhpIGN1YSBWaWV0IE5hbSBsYSB0dSAx MS0xNSUsIGNoaSBzYXUgNSBuYW0sIGNodW5nIHRhIGRhIGNvIA0KbW90IHRoYW5oIHBobyBtb2kg dmUgbWF0IGtpbmggdGUgLSB4YSBob2kuIENobyBuZW4sIG5ldSBob20gbmF5IHRpZXAgbmhhbiBr ZXQgcXVhIGR1IA0KYmFvIGN1YSA2IG5hbSB0cnVvYyB0aGkga2V0IHF1YSBkbyBraG9uZyB0aGUg bmFvIHRpbiBjYXkgZHVvYyBudWEuDQoNClZheSBsYSwga2hpIGxhbSBxdXkgaG9hY2ggZ2lhbyB0 aG9uZywgeGF5IGR1bmcgZGF0IGRhaSBkbywgY2h1bmcgdGEgbGFpIHBoYWkgbGFtIGxhaSBkdSAN CmJhbyBtb3QgbHVvdCB0dSBkYXUsIGxhbmcgcGhpIHRob2kgZ2lhbiwgY29uZyBzdWMuIFJvIHJh bmcsIGNhYyBxdXkgaG9hY2ggZG8ga2hvbmcgdGhlIA0KY28gdGluaCBrZSB0aHVhIG5oYXUuDQoN ClZpIHRoZSwgdG9pIGRlIG5naGkgdGljaCBob3AgdGF0IGNhIGNhYyBub2kgZHVuZyBkbyBsYWkg dGhhbmggbW90IFF1eSBob2FjaCB0b25nIHRoZSBwaGF0IA0KdHJpZW4gZG8gdGhpLCB0cm9uZyBk byBjbyBraW5oIHRlIHhhIGhvaSwgY28gcGhhdCB0cmllbiBraG9uZyBnaWFuLCBjbyBoYSB0YW5n IGt5IHRodWF0LCBjbyANCnN1IGR1bmcgZGF0IGRhaSBuaHUgdGhlIG5hby4NCg0KQ2h1bmcgdGEg aG9hbiB0b2FuIGNvIGR1IG5hbmcgbHVjIGRlIGxhbSBuaHUgdmF5LCB2YSBjYWMgbnVvYyBjdW5n IGRldSBsYW0gbmh1IHZheS4gDQpTaW5nYXBvcmUgbGEgbW90IHZpIGR1IGN1YyBreSBkaWVuIGhp bmggY2hvIHN1IHRoYW5oIGNvbmcgbmF5LCBobyBjaGkgY28gbW90IHF1eSBob2FjaCANCm5odSB2 YXkgdGhvaSwgY2h1IGtob25nIGRhdCBudW9jIG5hbyBuaGlldSBxdXkgaG9hY2ggbmh1IFZpZXQg TmFtIGNhLg0KDQotIFRodWEgb25nLCBuZXUgdmF5IHRoaSBjaHVuZyB0YSBjYW4gcGhhaSBzdWEg bGFpIG5oaWV1IHZhbiBiYW4gY2hpbmggc2FjaCBoaWVuIGhhbmg/DQoNCi0gRGUgeHVhdCBuYXkg ZHVuZyBsYSBrZW8gdGhlbyBwaGFpIHN1YSBuZ2F5IEx1YXQgUXV5IGhvYWNoIGRvIHRoaSB2dWEg YmFuIGhhbmguIFRyb25nIA0KbHVhdCwgY2FpIGR1b2MgZ29pIGxhIHF1eSBob2FjaCBkbyB0aGkg dGh1YyBjaGF0IGNoaSBsYSBxdXkgaG9hY2ggY2h1bmcgeGF5IGR1bmcgZG8gdGhpIA0KbWEgdGhv aSwgZHVvYyBjYXQgcmEgdHUgTHVhdCB4YXkgZHVuZyBjaHUga2hvbmcgcGhhaSBsYSBxdXkgaG9h Y2ggdG9uZyB0aGUgcGhhdCB0cmllbiANCmNodW5nIGRvIHRoaSBuaHUgbmd1b2kgdGEga3kgdm9u Zy4NCkNvIGxlLCBkZSB4dWF0IG5heSBkdW5nIGNoYW0gbmhhdCB2ZSBtYXQgbHVhdCBsZS4gTmh1 bmcgdGhlbyB0b2ksIG5ldSBraG9uZyB0aGF5IGRvaSwgDQptb2kgdGh1IHZhbiB0aWVwIGRpZW4g bmh1IG1vaSBraGkuDQoNCi0gVGFpIGhvaSB0aGFvLCBkYWkgYmlldSBkZW4gdHUgVGhhaSBMYW4g Y3VuZyBkYSBjbyBiYWkgdHJpbmggYmF5IGtpbmggbmdoaWVtIHZlIGNvbmcgdGFjIA0KcXV5IGhv YWNoIG1hbmcgbHVvaSBkbyB0aGkgQmFuZ2tvay4gVGhlbyBvbmcsIGNodW5nIHRhIGNvIHRoZSBo b2MgZHVvYyBraW5oIG5naGllbSANCm5odSB0aGUgbmFvIHR1IFRoYWkgTGFuPw0KDQotIERvIGxh IGJhbiBxdXkgaG9hY2ggZGEgZHVvYyBDaGluaCBwaHUgVGhhaSBMYW4gcGhlIGR1eWV0LiBDYWMg dmFuIGRlIG5odSBsbyB0cmluaCANCnRodWMgaGllbiwgY29uZyB0YWMgaHV5IGRvbmcgdm9uIGRl biBxdWEgdHJpbmggdGh1YyBoaWVuIHR1bmcgdHV5ZW4gdmFuIHRhaSBjb25nIGNvbmcuLi4gDQpj aHVuZyB0b2kgdGhheSBobyBsYW0gcmF0IGJhaSBiYW4uDQpDaGFuZyBoYW4gbmh1IHF1YSB0cmlu aCB0aGFtIGRpbmggbmhhbiB4ZXQgdmEgcmEgcXV5ZXQgZGluaCBwaGUgZHV5ZXQgcXV5IGhvYWNo IG8gDQpUaGFpIExhbiwgaG8gZHVhIHJhIG5odW5nIHlldSBjYXUgdmUgbmh1bmcgdGhvbmcgdGlu IGNhbiB0aGlldCwgaGFtIGx1b25nIGtpZW4gdGh1YyANCmt5IHRodWF0IGtob2EgaG9jIHRyb25n IHF1YSB0aW5oIHRoYW0gZHV5ZXQgcmF0IGNhby4NCk8gVmlldCBOYW0sIHRvaSBjbyBjYW0gZ2lh YyBuaHUgaGFtIGx1b25nIGtob2EgaG9jIGt5IHRodWF0IHRyb25nIHF1YSB0cmluaCB0aGFtIGRp bmggDQpxdXkgaG9hY2ggaGF5IGNhYyBkdSBhbiBxdW9jIGdpYSBraG9uZyBkdW9jIGNvaSB0cm9u Zy4gRG8gbGEgZGlldSBtYSBjaHVuZyB0YSBuZW4geGVtIA0KeGV0LCBydXQga2luaCBuZ2hpZW0g dHUgY2FjIGJhbiBiZSBsYW5nIGdpZW5nLiBUaGFpIExhbiByYXQgZ2FuIHZhIHJhdCBkZSBkZSBo b2MgaG9pIGhvLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Rpbm5oYW5oLzIwMTAxMC9I YS1Ob2ktZGFuZy1sdW4tdHVuZy1uZ2F5LTk0MjA3MS8gKFRoZW8gRGF0IFZpZXQpIDA4OjQyLCAx NC8xMC8yMDEwIChHTVQrNykNCg0KSGEgTm9pIGRhbmcgbHVuIHR1bmcgbmdheQ0KDQpDYWMga2V0 IHF1YSBuZ2hpZW4gY3V1IGNobyB0aGF5LCBraG9uZyBjaGkgY28gVFAuSENNIGRhbmcgY28gaGll biB0dW9uZyBsdW4sIG1hIEhhIA0KTm9pIGN1bmcgZGFuZyBsdW4gdHVuZyBuZ2F5LiBOZ3V5ZW4g bmhhbiBkdW9jIGNoaSByYSBkbyBsYSB2aWVjIGtoYWkgdGhhYyBudW9jIG5nYW0gDQpidWEgYmFp IHZhIHN1IHRoaWV1IHF1eSBob2FjaCBkb25nIGJvLg0KDQpLZXQgcXVhIG5naGllbiBjdXUgdmUg Y2F1IHRydWMgbmVuIGRhdCB5ZXUgbyBkYXkgZG8gTGllbiBkb2FuIERpYSBjaGF0IFRodXkgdmFu IC0gRGlhIA0KY2hhdCBjb25nIHRyaW5oIHRoaSBraHUgdnVjIGJhbiBkYW8gTGluaCBEYW0gdmEg VGhhbmggQ29uZyBjbyBuZ3V5IGNvIHJhdCBjYW8gdmUgYmllbiANCmRhbmcgbHVuIGtoaSB4YXkg ZHVuZyBjb25nIHRyaW5oIGhvYWMga2hpIGNvIGtoYWkgdGhhYyBudW9jIGR1b2kgZGF0IHF1YSBt dWMuIA0KDQpUaGVvIG1vdCBuZ2hpZW4gY3V1IGRhIGNvbmcgYm8gY3VhIFZpZW4gS2hvYSBob2Mg Y29uZyBuZ2hlIHZhIGtpbmggdGUgeGF5IGR1bmcgSGEgDQpOb2kgKFNvIFhheSBkdW5nIEhhIE5v aSksIEhhIE5vaSBtb2kgbmFtIGx1biB2YWkgY2h1YyBtbSBsYSBjaHV5ZW4uLi4gImJpbmggDQp0 aHVvbmciISBOaHVuZyBraHUgdnVjIHN1dCBsdW4gZGFuZyBjaHUgeSBsYSBUaGFuaCBDb25nIHZv aSA0MSw0Mm1tL25hbSwgTmdvIFNpIA0KTGllbjogMzEsNTJtbS9uYW0sIFBoYXAgVmFuOiAyMiwx NiBtbS9uYW0uLi4NCg0KKEFuaDogU3V0IGx1biBkZSBkb2EgZGVuIHN1IGFuIHRvYSBjdWEgY2Fj IHRvYSBuaGEgY2FvIHRhbmcuLi4oQW5oIG1pbmggaG9hKQ0KDQpOZ3V5IGNvIGNhbw0KDQpQR1Mu VFMgRG8gTWluaCBUb2FuLCBuZ3V5ZW4gQ2h1IG5oaWVtIGtob2EgRGlhIGNoYXQsIFRydW9uZyBE YWkgaG9jIE1vIC0gRGlhIA0KY2hhdCBIYSBOb2kgY2hvIGJpZXQ6IEtodSB2dWMgbm9pIHRoYW5o IEhhIE5vaSBsYSBub2kgcGhhbiBibyByb25nIHJhaSBuZW4gZGF0IHlldSwgbm9pIA0KY28gbmd1 eSBjbyBiaWVuIGRhbmcgbHVuIHRoYXAgbmhhdCBjbyB0aGUgbGEgS2h1IGRvIHRoaSBtb2kgTmFt IFRoYW5nIExvbmcuIENvbiBsYWksIA0KY2FjIHZpIHRyaSBjbyBuZW4gZGF0IHlldSBkdW9jIHhl cCB2YW8gZGFuZyBuZ3V5IGNvIGdheSBiaWVuIGRhbmcgbHVuIGNhbyBsYSBOZ29jIA0KS2hhbmgs IEdpYW5nIFZvIChraHUgdnVjIHh1bmcgcXVhbmgga2h1IG5oYSBCNiBHaWFuZyBWbyksIFRoYW5o IENvbmcsIFRoYW5oIA0KTmhhbiAoZ2FuIGJlbmggdmllbiBUaGFuaCBOaGFuKTsgVmlldCBIdW5n LCBNZSBUcmksIE15IERpbmgsIEJhbiBkYW8gTGluaCBEYW0uIA0KRGFuZyBuZ2FpLCBsYSBuaHVu ZyBraHUgdnVjIGNvIG5ndXkgY28gY2FvIG5odSB2YXkgbGFpIGRhIHZhIGRhbmcgZHVvYyBjaG9u IGRlIHhheSANCmR1bmcgY2FjIGtodSBkbyB0aGkgbW9pIHRyb25nIGRvIGJhbyBnb20gbmhpZXUg bmhhIGNhbyB0YW5nLg0KDQpUaGVvIFRTIERvIE1pbmggVG9hbiwgdmllYyBoYSBtdWMgbnVvYyBu Z2FtIGRhbmcgdGllbSBhbiBtb2kgbmd1eSBjbyBsb24gdmUgdmllYyANCnNlIGdheSBiaWVuIGRh bmcsIGRvIHZvIGNhYyBjb25nIHRyaW5oIHhheSBkdW5nLiBTdSBzdXQgbHVuIGRhbmcgbGFtIG1h dCBkaSBzdSBjaGluaCB4YWMgDQpjdWEgdG9hbiBibyBzbyBsaWV1IHZlIGRvIGNhbyB0dXlldCBk b2kgLSBzbyBsaWV1IGRhYyBiaWV0IHF1YW4gdHJvbmcgdHJvbmcgdmllYyB0aGlldCBrZSB0aGkg DQpjb25nLiBCZW4gY2FuaCBkbywgc3V0IGx1biBkYW5nIGxhIG5ndXllbiBuaGFuICJ0aWVwIHRh eSIgY2hvIGhpZW4gdHVvbmcgbmdhcCBsdXQuIA0KDQpDb25nIHRyaW5oIGNodWEgc2FwIG5nYXkN Cg0KVGhlbyBQR1MuVFMgRG8gTWluaCBUb2FuLCBkZSBhbiB0b2FuIGtoaSB4YXkgZHVuZyBjb25n IHRyaW5oIHRyZW4gbmVuIGRhdCBsdW4gY2FuIA0KcGhhaSB0aW0gZGVuIGNvIHF1YW4gY2h1eWVu IG5nYW5oIGNvIGdpYXkgcGhlcCBoYW5oIG5naGUsIGNhbiBibyB0aHVjIGhpZW4gcGhhaSBjbyAN CmtpbmggbmdoaWVtLCB1eSB0aW4uIFZpIGR1IG5odSBWaWVuIEtob2EgaG9jIENvbmcgbmdoZSBY YXkgZHVuZzsgVmllbiBLaG9hIGhvYyANCkNvbmcgbmdoZSBHaWFvIHRob25nIHZhbiB0YWk7IFRv bmcgY29uZyB0eSB0dSB2YW4geGF5IGR1bmcgVGh1eSBMb2k7IFRvbmcgY29uZyB0eSB0dSANCnZh biB4YXkgZHVuZyBnaWFvIHRob25nIHZhbiB0YWk7IENvbmcgdHkgdHUgdmFuIHhheSBkdW5nIGRp ZW4gMS4uLlNhdSBkbywgdmllYyB0aGlldCBrZSANCnRoaSBjb25nIHRyaW5oIGNhbiB0aW5oIGRl biBjYWMgc28gbGlldSBraGFvIHNhdCBkaWEgY2hhdC4gS3kgc3UgdGhpZXQga2UgbmVuIG1vbmcg cGhhaSANCnRoYXQgYW0gaGlldSB2YSBjbyBraWVuIHRodWMgdmUgZGlhIGNoYXQgdmEgY3VvaSBj dW5nIGxhIHR1YW4gdGh1IG5naGllbSB0aGlldCBrZSB0aGkgY29uZyANCmRhIGR1b2MgZGUgcmEu DQoNCk1vdCBiYW4gZG8gY2hpIHRpZXQgcGhhbiB2dW5nIG5lbiBkYXQgeWV1IG8gSGEgTm9pIGRh IGR1b2MgeGF5IGR1bmcgdmEgY2hpIHJhdCBybyBraHUgDQp2dWMgY28gbmd1eSBjbyBjYW8gdmUg c3V0IGx1bi4gVHV5IG5oaWVuLCBkYW5nIGJ1b24sIGNhYyBzbyBsaWV1IG5heSBnYW4gbmh1IGJp IGJvIHF1ZW4uIA0KVHJvbmcga2hpIGRvLCBLUyBMZSBUdSBIYWkgY2hvIGJpZXQgbW90IGtob2Fu ZyByb25nIHRyb25nIGxvbmcgZGF0IGRhIGhpbmggdGhhbmggdmEgDQpraGEgbmFuZyBjaGl1IGx1 YywgY2hpdSB0YWkgdHJvbmcgY3VhIG5lbiBkYXQgcm9uZyBuYXkgbGEgcmF0IGtlbS4gVmkgdmF5 LCBjdW5nIHZvaSBoaWVuIA0KdHVvbmcgbHVuLCBuaGlldSBoYXUgcXVhIGtlbSB0aGVvIG1hIGto b25nIHBoYWkgbW90IHNvbSBtb3QgY2hpZXUgY28gdGhlIG5oYW4gdGh1YyANCmR1b2MgbGEgbmd1 eSBjbyBiaWVuIGRhbmcsIGRvIHZvIGNhYyBjb25nIHRyaW5oIHhheSBkdW5nLiBIYXUgcXVhIGRl IG5oYW4gdGhheSBob24gbGEgDQpuaHVuZyBiaWVuIGRhbmcsIG51dCB0YWkgY2FjIGNvbmcgdHJp bmggY28gbW9uZyBub25nLiBUUyBOZ3V5ZW4gVmFuIERhbiwgTGllbiBkb2FuIA0KdHJ1b25nIExp ZW4gZG9hbiBEaWEgY2hhdCBUaHV5IHZhbiwgRGlhIGNoYXQgY29uZyB0cmluaCBWaWV0IE5hbSBj aG8gYmlldCBIYSBOb2kgbGEgDQp2dW5nIGNvIG5lbiBkaWEgY2hhdCBkdW9jIHhlcCB2YW8gbmd1 eSBjbyBzdXQgbHVuIGNhbyBkbyBuYW0gdHJvbmcga2h1IHZ1YyBkb25nIGJhbmcsIA0KbW9pIGhp bmggdGhhbmggdHJhbSB0aWNoIG8ga3kgRGUgVHUuLi4gDQoNCktob25nIGNoaSBvIEhhIE5vaSwg Y2FjIG5oYSBjYW8gdGFuZyB4YXkgdHJlbiBuZW4gZGF0IHlldSB2YW4gZGFuZyBkdW9jIHRoaSBj b25nIG8gDQpuaGlldSBub2kuIFRyb25nIGtoaSBoYW5nIGxhbmcgcGhhcCBseSwgc3UgZ2lhbSBz YXQgdmllYyBraGFvIHNhdCBkaWEgY2hhdCBjb25nIHRyaW5oIGNvbiANCnRoaWV1IHRoaSBuZ3V5 IGNvIGRvaSB2b2kgY2FjIG5oYSBjYW8gdGFuZyBkYW5nIHJhdCBsb24uIA0KDQpCZW4gY2FuaCBk bywgdmllYyB4YXkgbmhpZXUgbmhhIGNhbyB0YW5nIHRyZW4gbmVuIGRhdCBsdW4gY28gdGhlIGdh eSBoaWVuIHR1b25nIGx1biByb25nIA0KaG9uLiBEYW5nIGxvIG5nYWksIG5odW5nIGNvbmcgdHJp bmggbyBraHUgdnVjIG5heSBzZSBraG9uZyBzYXAgbmdheSwgbmh1bmcgbGFpIGtob25nIA0KYWkg ZGFtIGRhbSBiYW8sIG5vIGNvIHRoZSBkdW5nIHZ1bmcgYmFvIGxhdS4NCg0KaHR0cDovL3ZpZXRi YW8udm4vQW4tbmluaC1QaGFwLWx1YXQvRGEtY28tNi1uZ3VvaS1jaGV0LWtoaS10aGktY29uZy10 b2EtbmhhLUtlYW5nTmFtLzY1MTg4OTgzLzIxOC8gMjUvMi8yMDEwLCAyMTowMiBHTVQrNw0KDQpI YSBOb2k6IERhIGNvIDYgbmd1b2kgY2hldCBraGkgdGhpIGNvbmcgdG9hIG5oYSBLZWFuZ05hbQ0K DQpodHRwOi8vZGRkbi5jb20udm4vMjAxMDAzMjUwODA2MzUzODVjYXQxMzIvY29uZy10cnVvbmct a2VhbmduYW0taGV0LWNoZXQtbmd1b2ktbGFpLWJvYy1jaGF5Lmh0bSAyNS8wMy8yMDEwIC0gMDg6 MjUNCg0KSGEgTm9pOiBDb25nIHRydW9uZyB0b2EgbmhhIEtlYW5nbmFtIC0gSGV0IGNoZXQgbmd1 b2kgbGFpIGJvYyBjaGF5DQoNCkNoaWV1IHF1YSAoMjQvMyksIGNvbmcgdHJ1b25nIEtlYW5nbmFt IGRhIGJhdCBuZ28gYmkgY2hheSwga2hvaSBib2MgY2FvIGtoaWVuIGNobyANCm5oaWV1IG5ndW9p IGRpIGR1b25nIGhvYW5nIGxvYW4uDQoNCkFuaCBjaHVwOiBLaG9pIGJvYyBjYW8gbmdoaSBuZ3V0 IHRhaSB0b2EgbmhhIGNhbyA3MCB0YW5nIGN1YSBjb25nIHRydW9uZyBLZWFuZ25hbSANCg0KS2h1 IHZ1YyB4YXkgcmEgaG9hIGhvYW4gZHVvYyB4YWMgZGluaCB0YWkgdGFuZyAyNSBjdWEgdG9hIHRo YXAgNzAgdGFuZyBkYW5nIHRoaSBjb25nLiAxNSANCnBodXQgc2F1IDIgeGUgY3V1IGhhbyBkYSBk ZW4gZHVvYyBoaWVuIHRydW9uZyBuaHVuZyBraG9uZyB2YW8gZHVvYyB2aSBiYW8gdmUga2hvbmcg DQptbyBjdWEgY2hvIHZhby4gTHVjIG5heSwgZGFtIGNoYXkgY3VuZyBkYSBkdW9jIGtob25nIGNo ZS4NCiANCk5ndXllbiBuaGFuIGR1b2MgeGFjIGRpbmggbGEgZG8gY29uZyBuaGFuIHNhdSBraGkg aHV0IHRodW9jIGRhIG5lbSBkaWV1IHRodW9jIHRhbiB2YW8gDQp2YXQgbGlldSBiYW8gb24gKGxh bSBiYW5nIGNhbyBzdSB4b3ApIGR1bmcgZGUgbGFwIGRhdCBoZSB0aG9uZyBkaWV1IGhvYS4gVGFu IHRodW9jIGRhIA0KYmF0IHZhbyB2YXQgbGlldSB0YW8gcmEga2hvaSwgY2h1YSBjaHVhIGNvIGNo YXkuDQogDQpEYXkgbGEgc3UgY28gdmUgY2hheSBkYXUgdGllbiB0YWkgY29uZyB0cnVvbmcgbG9u IG5oYXQgVmlldCBOYW0gbmF5IHNhdSBtb3QgbG9hdCBzdSBjbyANCnRhaSBuYW4gbGFvIGRvbmcs IGxhbSA2IG5ndW9pIGNoZXQuDQogDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi9uZXdzZGV0 YWlsL0Jhbl9kb2NfdmlldC8yMjY2MDAvaGFuZy1xdWFuLWJhby12YXktbmhhLXYyNTluLWhvYS1s YW5nLXRydW5nLmh0bSAyNi8xMS8yMDA5IDA3OjI5IA0KDQpIYSBOb2k6IEhhbmcgcXVhbiBiYW8g dmF5IE5oYSBWYW4gaG9hIExhbmcgVHJ1bmcgDQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZu L25ld3NkZXRhaWwvQmFuX2RvY192aWV0LzMwODE5NS9ob3AtY2hvLXRyYW4tbGFuLWdheS1uZ2hl bi1naWFvLXRob25nLmh0bSAwOS8wMi8yMDEwIDA3OjAyIA0KDQpIYSBOb2k6IEhvcCBjaG8gdHJh biBsYW4sIGdheSAibmdoZW4iIGdpYW8gdGhvbmcgIA0KDQpodHRwOi8vd3d3LmRhbnZpZXQudm4v MTU5NzFwMWMzMC9waGF0LWhpZW4tbmd1b2ktc29uZy10cmVuLW5vYy1uaGEtYnV1LWRpZW4taGEt bm9pLmh0bSAzMC8wOS8yMDEwIDA2OjM1IA0KDQpIYSBOb2k6IEFuaCBjaHVwIC0gQ28gbmd1b2kg c29uZyB0cmVuIG5vYyBuaGEgQnV1IGRpZW4gSGEgTm9pIA0KDQpodHRwOi8vaG9tZS52bm4udm4v c2F1X2xlX29uZ19jb25nX29uZ190YW9fX2hhX25vaV9uaGVtX25odW9jX19ob24tMzM2MTk5Njgt NjI1NzM0MTMzLTAgdmlldG5hbW5ldC52biAtIDA2LTAyLTIwMTAgMjM6MDMNCg0KU2F1IGxlIG9u ZyBDb25nIG9uZyBUYW86IEhhIE5vaSAibmhlbSBuaHVvYyIgaG9uIA0KDQpodHRwOi8vd3d3LnRp bjI0Ny5jb20vaGFuZ19uZ2FuX20yX2hvYW5nX2hvYV9vX2xvX2RhdF92YW5nX2RhbV90cmF1LTEt MjE0Mjg4MTIuaHRtbCAyNC8wNS8yMDA5IC0gMTM6MjEgVmlldE5hbU5ldC52bg0KDQpIYSBOb2k6 IEhhbmcgbmdhbiBtMiBob2FuZyBob2EgbyBsbyBkYXQgdmFuZyBEYW0gVHJhdQ0KDQpodHRwOi8v eGFob2l0aG9uZ3Rpbi5jb20udm4vMjAwODEwMDExMTAwNTk2MDVwMGMxMTkva2h1LW5hbS10cnVu Zy15ZW4tY2hhdC1sdW9uZy1kaWNoLXZ1LXZpZW4tdGhvbmctcXVhLWtlbS5odG0gMDEvMTAvMjAw OCAxNDoxMw0KDQpIYSBOb2kgLSBraHUgTmFtIFRydW5nIFllbjogQ2hhdCBsdW9uZyBkaWNoIHZ1 IHZpZW4gdGhvbmcgcXVhIGtlbQ0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9UaWFueW9uL0lu ZGV4LmFzcHg/QXJ0aWNsZUlEPTk0MzQ3JkNoYW5uZWxJRD0xMiANCg0KSGEgTm9pOiBDdHkgWHVh dCBuaGFwIGtoYXUgdmEgWGF5IGR1bmcgbm9uZywgbGFtIG5naGllcCAoSGEgTm9pKTogVHUgeSBi YW4gaGFuZyBuZ2FuIG0yIGRhdCBjdWEgTmhhIG51b2MgLSBOZXUga2hvbmcgY2FpIHRvLCBtb2kg bmFtIEROIG5heSB0aHVhIGxvICB0aGVtIDEgdHkgZG9uZw0KDQpodHRwOi8vd3d3Lmhhbm9pbW9p LmNvbS52bi9uZXdzZGV0YWlsL0Jhbl9kb2NfdmlldC8yMjczNTUveGEtcGg3OTExLWw3ODk1LWh1 eTc4NzluLXNvYy1zNDE3bi1tNDMyNDE3bmctdGhvYXQtbjQzMjc4OTljLW8tbmhpNzg3N20tdHI3 ODQ3bS10cjc4ODVuZy5odG0gMDQvMTIvMjAwOSAwODoyOCANCg0KSGEgTm9pOiBYYSBQaHUgTG8s IGh1eWVuIFNvYyBTb24gTXVvbmcgdGhvYXQgbnVvYyBvIG5oaWVtIHRyYW0gdHJvbmcgDQoNClRo dWMgdHJhbmcgbmV1IHRyZW4gZGEgZ2F5IGJ1YyB4dWMgdHJvbmcgbmhhbiBkYW4sIG5odW5nIGto b25nIGR1b2MgY2FjIGNvIHF1YW4gaHV1IHF1YW4gcXVhbiB0YW0gZ2lhaSBxdXlldC4NCg0KaHR0 cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMjI2MTg5L2M3 ODQzbmgtcXVhbi1raHUtdjc5MjFjLWg3ODkxLTI3Mjc4NzNuLWw3OTE1LWhvYW5nLW1haS1iNzg4 My14YW0tcGg3ODQxbS1uZ2hpZW0tdHI3ODg1bmcuaHRtIDIxLzExLzIwMDkgMDg6MDEgDQoNCkhh IE5vaTogQ2FuaCBxdWFuIGtodSB2dWMgSG8gRGVuIEx1IChIb2FuZyBNYWkpIGJpIHhhbSBwaGFt IG5naGllbSB0cm9uZyAgDQoNCmh0dHA6Ly93d3cuaGFub2ltb2kuY29tLnZuL25ld3NkZXRhaWwv QmFuX2RvY192aWV0LzIyNTQ2NC94YS1uYW0taDc4OTFuZy1odXk3ODc5bi0yNzJvbmctYW5oLWNh Yy1jb25nLXRyaW5oLXYyNTluLWhvYS1naWFvLWQ3OTA5Yy14dTc4ODluZy1jNzg0NXAuaHRtIDEz LzExLzIwMDkgMDc6NDAgDQoNCkhhIE5vaSAtIFhhIE5hbSBIb25nLCBodXllbiBEb25nIEFuaDog Q2FjIGNvbmcgdHJpbmggdmFuIGhvYSwgZ2lhbyBkdWMgeHVvbmcgY2FwICANCg0KaHR0cDovL3d3 dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMjI1NDYzL25oNzg3MWNo LW5oYWMtdHJlbi0yNzM0MzI3OTAxbmctaDc4OTEtdHVuZy1tNzg1M3UuaHRtIDEzLzExLzIwMDkg MDc6MzkgDQoNCkhhIE5vaTogTmhlY2ggbmhhYyB0cmVuIGR1b25nIEhvIFR1bmcgTWF1ICANCg0K aHR0cDovL3d3dy5oYW5vaW1vaS5jb20udm4vbmV3c2RldGFpbC9CYW5fZG9jX3ZpZXQvMzA4MjAx L2R1b25nLXZlbi1oby10YXktcXVhbi10YXktaG8tbmhpZXUtY2FuaC1jaHVvbmctbWF0Lmh0bSAw OS8wMi8yMDEwIDA3OjA3IA0KDQpIYSBOb2k6IER1b25nIHZlbiBIbyBUYXksIHF1YW4gVGF5IEhv OiBOaGlldSBjYW5oIGNodW9uZyBtYXQgIA0KDQpodHRwOi8vd3d3Lmhhbm9pbW9pLmNvbS52bi9u ZXdzZGV0YWlsL0Jhbl9kb2NfdmlldC8zMDg0MTIvZHVvbmctbGFuZy0taG9hLWxhYy11bi10YWMt Z2lhby10aG9uZy10cmllbi1taWVuLmh0bSAxMS8wMi8yMDEwIDA2OjU5IA0KDQpIYSBOb2k6IER1 b25nIExhbmcgLSBIb2EgTGFjOiBVbiB0YWMgZ2lhbyB0aG9uZyB0cmllbiBtaWVuICANCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkxMS9DYXAtZGllbi1kdXQtbmdhbmctZHVv bmctTmd1eWVuLVRyYWktZ2lhby10aG9uZy1ob24tbG9hbi04Nzg5NTIvIDAwOjU3IDE2LzExLzIw MDkgKEdNVCs3KQ0KDQpIYSBOb2k6IENhcCBkaWVuIGR1dCBuZ2FuZyBkdW9uZyBOZ3V5ZW4gVHJh aSwgZ2lhbyB0aG9uZyBob24gbG9hbiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3Zhbmhv YS8yMDA5MTAvU2luaC12aWVuLWJ1Yy14dWMtdmktYmktbHVhLXRhaS1mZXN0aXZhbC1jYXUtTG9u Zy1CaWVuLTg3NTA3Ni8gQ2FwIG5oYXQgbHVjIDE2OjE1LCBUaHUgU2F1LCAyMy8xMC8yMDA5IChH TVQrNykNCg0KSGEgTm9pOiBTaW5oIHZpZW4gYnVjIHh1YyB2aSBiaSAnbHVhJyB0YWkgZmVzdGl2 YWwgY2F1IExvbmcgQmllbiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkx MC9QaG8tQ2h1LXRpY2gtaHV5ZW4tRGFuLVBodW9uZy14by14YXQtdm9pLWRhbi04NzI5MDEvIENh cCBuaGF0IGx1YyAxODozNywgVGh1IFNhdSwgMDkvMTAvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTog UGhvIENodSB0aWNoIGh1eWVuIERhbiBQaHVvbmcgeG8geGF0IHZvaSBkYW4NCg0KaHR0cDovL3d3 dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDQvODQwMDk3LzEyOjU1JyAwNC8wNC8yMDA5IChH TVQrNykgDQoNCkhhIE5vaTogTmhpZXUgdnUgcGhhbSB0b2kgZHVuZyBoYW5nICJub25nIiB0dSBj aGUNCg0KQmFuIG1hIHR1eSB2b2kgbmhpZXUgY2hpZXUgInRpZXAgdGhpIiANCg0KaHR0cDovL3d3 dzYudm5tZWRpYS52bi9uZXdzZGV0YWlsLmFzcD9OZXdzSWQ9OTAwOTYmQ2F0aWQ9NzMgMTYvMDUv MjAwNyANCg0KSGEgTm9pOiBTYXUgY2FpIGNoZXQgY3VhIGJvbiB0cmUgc28gc2luaCAtIENoYSBt ZSBob2FuZyBtYW5nLCBuZ2FuaCB5IHRlIGx1bmcgdHVuZyENCg0KRGEgY28gYm9uIHRyZSBzbyBz aW5oIHR1IHZvbmcgc2F1IGtoaSB0aWVtIG5ndWEgdmFjY2luZSB2aWVtIGdhbiBCLiBTdSBjbyBu Z2hpZW0gdHJvbmcgdHJlbiBkYSBraGllbiBjYWMgYmFjIGNoYSBtZSB0cm8gbmVuIGhvYW5nIG1h bmcsIHRyb25nIGtoaSBjYWMgY28gcXVhbiB5IHRlIGxhaSB0byByYSBsdW5nIHR1bmcuLi4NCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAwOTE3LzIwMDkwNDIwMDk1 NTA4LmFzcHggMjAvMDQvMjAwOSA5OjU1DQoNCk5oYW8gbmhhbyAiY2hheSB0cnVvbmciICANCg0K Q29uIGRlbiBoYWkgdGhhbmcgbnVhIGNhYyB0cnVvbmcgdGlldSBob2MgbW9pIGNoaW5oIHRodWMg bmhhbiBobyBzbyB0dXllbiBzaW5oIHZhbyBsb3AgMS4gTmh1bmcgdHJvbmcgbmh1bmcgbmdheSBx dWEsIGNoYSBtZSBjYWMgZW0gdGFpIFRQLkhDTSB2YSBIYSBOb2kgZGEgcGhhaSBuaGFvIG5oYW8g ImNoYXkgdHJ1b25nIi4gDQoNCk9uZyBUaWVuIHNpIE5ndXllbiBRdXlldCBUaWVuLCBHaWFtIGRv YyBCZW5oIHZpZW4gVmlldCBEdWMgY29uIGRpIHhhIGhvbiBudWEsIGtoaSBub2kgcmFuZzogIkRp ZXUgdHJpIHhvbmcsIGJlbmggbmhhbiB4YXkgbmhhIHRhbmcgYmFjIHNpIGN1bmcgZHVvYyIuDQoN Cmh0dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwMS9IYS1Ob2kta2hvaS1kb25nLWJh dS10cnVjLXRpZXAtYmktdGh1LXBodW9uZy04OTE0NjIvIDIwOjQyLCAyNS8wMS8yMDEwIChHTVQr NykNCg0KSGEgTm9pIGtob2kgZG9uZyBiYXUgdHJ1YyB0aWVwIGJpIHRodSBwaHVvbmcgKCJydW91 IGN1LCBiaW5oIG1vaSIpDQoNCk1vdCBkYWkgYmlldSB0aGFtIGR1IGRhaSBob2kgKHBodW9uZyBE aWNoIFZvbmcpLCBvbmcgTmd1eWVuIE1pbmggRHVjLCBiYW4ga2hvYW4gcXV5IGRpbmggY29uZyB0 YWMgYmF1IGNob24gZG8gYmFuIGNoYXAgaGFuZyBEYW5nIGJvIGtob2EgdHJ1b2MgY2h1YW4gYmkg ZGUgZ2F5IHN1eSBuZ2hpIHJhbmcgZGEgY28gImRpbmggaHVvbmciIHRydW9jLiANCg0KKEN1IHRy aSBxdWFuIHRhbTogY2h1YSBjbyB0cmFuaCBjdSBjb25nIGtoYWksIGNodWEgdHUgdW5nIGN1IGNv bmcga2hhaSwgY2h1YSBjbyB2YW4gZG9uZyBiYXUgY3UgY29uZyBraGFpLCB0aGkgdmFuIGxhIG5h bmcgdGluaCBoaW5oIHRodWMsIHRoaWV1IGRhbiBjaHU7ICJydW91IGN1LCBiaW5oIG1vaSIpDQoN Cmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMDkxNy8yMDA5MDQyNDAw NTc1OC5hc3B4IA0KDQpIYSBOb2k6ICJjaG8gc3VuZyBzdW9uZyIgbXVhIGdpIGN1bmcgY28gICAN Cg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDcvODU3MDQ1LyBDYXAgbmhh dCBsdWMgMDk6MzAsIFRodSBUdSwgMDgvMDcvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogTW90IGR1 IGFuICd0aGFtIHNhdCcgZ2FuIDgwIGNheSB4YW5oIDIwIG5hbSB0dW9pIA0KDQpodHRwOi8vd3d3 LnNvY2JheS5jb20vbmV3cy9kZXRhaWwvaGEtbm9pLW1vaS1jaG8tdmUtY3VhLS1jby10aHUtc2Fw LXh1b25nLW5oYS1kYW4vNjAwNDg1Nzc4LzEwMDg1OTkwNC8wLmh0bWwgMTM6NTIgMTktMDktMjAw Nw0KDQpIYSBOb2k6IE1vaSBjaG8gInZlIGN1YSIsIGNvIHRodSBzYXAgeHVvbmcgbmhhIGRhbiAN Cg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDQvODQwMDk3LzEyOjU1JyAw NC8wNC8yMDA5IChHTVQrNykgDQoNCkhhIE5vaTogQ2FjIGRvbmcgc29uZyBjdWEgSE4gIm5vbmci IGxlbiB2aSBvIG5oaWVtIA0KDQpodHRwOi8vdnR2LnZuL0FydGljbGUvR2V0Lzg0NDY4DQoNCkhh IE5vaTogQnVvbiBtYSB0dXkgdmEgbmhhbiBob2kgbG8gdGFpIHBodW9uZyBUaGFuaCBOaGFuIA0K IA0KRGUgbXVhIGJhbiBtYSB0dXkgYW4gdG9hbiwgQnVpIFRyb25nIEJheSBkYSBxdWFuIGhlIHZh IG5oaWV1IGxhbiBkdWEgDQp0aWVuIGhvaSBsbyBjaG8gY2FuIGJvIGNvbmcgYW4gcGh1IHRyYWNo IGRpYSBiYW4uIEhhbmggdmkgcGhhbSB0b2kgDQpjdWEgY2FjIGJpIGNhbyBkYSBnYXkgaGF1IHF1 YSBkYWMgYmlldCBuZ2hpZW0gdHJvbmcsIGFuaCBodW9uZyBkZW4gDQp0cmF0IHR1IHRyaSBhbiB2 YSBnYXkgbmVuIHN1IGJhdCBiaW5oIHRyb25nIHF1YW4gY2h1bmcgbmhhbiBkYW4uIA0KDQpodHRw Oi8vd3d3Ni52bm1lZGlhLnZuL25ld3NkZXRhaWwuYXNwP05ld3NJZD0xNzUxMDQmQ2F0SWQ9MjMg MjMvMDkvMjAwOQ0KDQpIYSBOb2k6IFNvIG5ndW9pIG5naGllbiBkdW5nIHRodSAyIHRvYW4gcXVv YyAoc2F1IHRoYW5oIHBobyBIbyBDaGkgTWluaCkuDQoNCjIyIG5naGluIG5ndW9pIG5naGllbiBt YSB0dXkgY28gaG8gc28gcXVhbiBseSB2YSBjbyB0cmVuIDE3IG5naGluIG5ndW9pIA0KbmhpZW0g SElWL0FJRFMsIHRyb25nIGRvIGNvIDUwLTYwJSBuZ3VvaSBuaGllbSBISVYvQUlEUyBiaSBuZ2hp ZW4gbWEgdHV5LiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vYmFuZG9jdmlldC90aGVvZGF1dGh1 LzIwMDkxMC9DYW0tZGFuLXNhbi14dWF0LWtoaS1jaHVhLWNvLXF1eWV0LWRpbmgtdGh1LWhvaS1k YXQtODc1NDAyLyAwODowMSwgVGh1IEhhaSwgMjYvMTAvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTog Q2FtIGRhbiBzYW4geHVhdCBraGkgY2h1YSBjbyBxdXlldCBkaW5oIHRodSBob2kgZGF0DQoNCmh0 dHA6Ly92aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwOC9Ib2FuZy1UaGFuaC1UaGFuZy1Mb25n LWNoaW5oLXRodWMtbGEtRGktc2FuLXRoZS1naW9pLTkyNjAwOS8gMDEvMDgvMjAxMCAoR01UKzcp DQoNCktodSBkaSB0aWNoIEhvYW5nIHRoYW5oIFRoYW5nIExvbmcgY3VhIFZpZXQgTmFtIG1hbmgg bGEgRGkgc2FuIHZhbiBob2EgdGhlIGdpb2kgDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0 LzIwMTAtMDUtMDUtcGhhLWhvYW5nLXRoYW5oLXRoYW5nLWxvbmctbGFtLWR1b25nLWdpYW8tdGhv bmctaS0gIEtoYW5oIExpbmggMDYvMDUvMjAxMCAwNjowMCBHTVQrNw0KDQpIYSBOb2k6IFBoYSBI b2FuZyB0aGFuaCBUaGFuZyBMb25nIGxhbSBkdW9uZyBnaWFvIHRob25nIC0gTmd1eWVuIG5oYW4g Y2FuIGJhbiBsYSBjaG8gZGVuIG5heSBUaHUgZG8gDQpIYSBOb2kgdmFuIGNodWEgeGF5IGR1bmcg ZHVvYyBtb3QgcXVpIGhvYWNoIGtoYW8gY28gaG9jLi4uIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0 bmFtLm5ldC8yMDEwLTA1LTA2LWN1dS1ob2FuZy10aGFuaC10aGFuZy1sb25nLW11b24tbmh1bmct Y29uLWtpcC0uS2hhbmggTGluaCAwOC8wNS8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5vaTogSG9h bmcgdGhhbmggVGhhbmcgTG9uZyBrZXUgY3V1IA0KDQpEb2FuIGRlIEhvYW5nIEhvYSBUaGFtIHZ1 YSBiaSBwaGEsIGNodW5nIHRvaSB0aGF0IHN1IHJhdCB0aWVjLCB2aSBkb2FuIG5heSB0aGUgaGll biANCnJhdCBybyB0aW5oIGNoYXQgY3VhIEhvYW5nIHRoYW5oIFRoYW5nIExvbmcgY28sIHZ1YSBs YSBsdXkgdGhhbmgsIHZ1YSBsYSBkZSB0cmkgdGh1eSwgDQpjb24gbGFpIGR1b2MgdGhlIG5heSB2 b2kgdGhlIGdpb2kgc2UgbGEgcmF0IHF1eSBoaWVtLiBWYXkgbWEgdGEgdGhpIHRoYW4gbmhpZW4g cGhhIGJvIA0KKC0gUEdTIFRvbmcgVHJ1bmcgVGluLCBiYXkgdG8pDQoNCkdTIFBoYW4gSHV5IExl IGN1bmcga2hhbmcgZGluaCBkb2FuIGR1b25nIEhvYW5nIEhvYSBUaGFtIGNhdCBwaG8gVmFuIENh bywgbm9pIGRhbmcgDQpsYSBjb25nIHRydW9uZyB4YXkgZHVuZyBxdXkgbW8gbG9uLCBsYSBtb3Qg ZG9hbiBIb2FuZyB0aGFuaCBUaGFuZyBMb25nIHRob2kgTGUgIA0KDQpodHRwOi8vd3d3LnRodXZp ZW5waGFwbHVhdC52bi9kZWZhdWx0LmFzcHg/Q1Q9TlcmTklEPTMzMzU5IFRodSBiYXksIDE5LzEy LzIwMDkNCiANCkhhIE5vaTogTmhpZXUgYmlldCB0aHUgY28gc2FwIHRoYW5oIHBoZSB0aWNoDQoN CkhhbmcgdHJhbSBuZ29pIGJpZXQgdGh1IGNvIG1vdCB0aG9pIGxhIG5pZW0gdHUgaGFvIGN1YSBu Z3VvaSBIYSBOb2kgaGllbiBkYW5nIHh1b25nIGNhcCB0cmFtIHRyb25nLiANCk5odW5nIGJpZXQg dGh1IGJpICJuaG9pIiBob24gY2h1YyBnaWEgZGluaCwgYm8gaG9hbmcgZGUgbWFjIG11YSBuYW5n IGRhaSBkYXUuLi4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0tpbmgtdGUvWGF5LTctaGFtLWR1b25n LWJvLXRhaS1ITi1QaGktMjUtdGktZG9uZy1haS1jaGl1LXRyYWNoLW5oaWVtLzY1MDUwNjAwLzg3 LyAwNS80LzIwMDYsIDEzOjE5IEdNVCs3IA0KDQpYYXkgNyBoYW0gZHVvbmcgYm8gdGFpIEhOOiBQ aGkgMjUgdGkgZG9uZywgYWkgY2hpdSB0cmFjaCBuaGllbT8NCg0KNyBoYW0gZHVvbmcgYm8gdGFp IEhhIE5vaSBkdW9jIHhheSBkdW5nIHR1IG5hbSAyMDAyIHRyaSBnaWEgaG9uIDI1IHRpIGRvbmcu IFRoZSANCm5odW5nLCBkZW4gbmF5LCBkYSBob24gNCBuYW0gcXVhLCBjYSA3IGR1b25nIGhhbSBu YXkgZGFuZyBiaSBibyBob2FuZy4gVGhhbSBjaGksIA0KZHVvbmcgaGFtIHRhaSBOZ2EgVHUgVm9u ZyBjbyBuZ3V5IGNvIGtob25nIHRoZSBzdSBkdW5nIHZpIHNhdSBraGkgZHUgYW4gZHVvbmcgdmFu aCANCmRhaSAyIGR1b2MgdHJpZW4ga2hhaSwgbmd1b2kgdGEgbW9pIHRoYXkgc3UgYmF0IGNhcDog Q3VhIGhhbSBsYWkgbmFtIGdpdWEgdGltIGR1b25nLiBBaSANCnNlIHBoYWkgY2hpdSB0cmFjaCBu aGllbSB2ZSBzdSBsYW5nIHBoaSBuYXk/IA0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjAvczIw LTMzMDYwMy9uaGlldS1naWFvLXN1LXRpZW4tc2ktYmktYmF0LXF1YS10YW5nLWRhbmgtYmFjLmh0 bQ0KDQpIYSBOb2k6IE5oaWV1IEdpYW8gc3UsIFRpZW4gc2kgYmkgYmF0IHF1YSB0YW5nIGRhbmgg YmFjIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDA5LzA2Lzg1MDY5NC8gMTE6MDYn IDAxLzA2LzIwMDkgKEdNVCs3KSANCg0KSGEgTm9pIHZhIG5odW5nIGJ1aSAicmFjIHRyb2kiIG5o ZWNoIG5oYWMgDQoNCmh0dHA6Ly93d3c2LnZubWVkaWEudm4vbmV3c2RldGFpbC5hc3A/TmV3c0lk PTU4MTgzJkNhdGlkPTIyIDE0aDIxIDEzLzA3LzIwMDYgLSANCg0KSGEgTm9pOiBSdXQgcnVvdCBj b25nIHRyaW5oIG5oYSBBMiBLaW0gR2lhbmcgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94 YWhvaS9kb2lzb25nLzIwMDkvMDcvODYwMDA5LyBDYXAgbmhhdCBsdWMgMTQ6MTEsIFRodSBCYXks IDI1LzA3LzIwMDkgKEdNVCs3KQ0KDQpIYSBOb2k6IENvbmcgdG8gZGllbiBkdW9pIGtob25nIGtp cCAnY29uZyB0byBob2EgZG9uJw0KDQpodHRwOi8vbmV3cy5zb2NiYXkuY29tL2hhX25vaV9iYXRf cXVhX3RhbmdfdGhlbV9tb3RfdnVfcnV0X3J1b3RfY29uZ190cmluaC02MDAyMzE3MzUtMjY4NDM1 NDU2Lmh0bWwgdmlldG5hbW5ldC52biAtIDIxOjQ4IDE4LTEyLTIwMDYgDQoNCkhhIE5vaTogVGhl bSBtb3QgdnUgInJ1dCBydW90IiBjb25nIHRyaW5oIC0gInJ1dCBydW90IiB0aGVwIGNhdSBraWVu IGNvYyBtb25nIA0KDQooY29uZyB0cmluaCB4YXkgZHVuZyBUcnVuZyB0YW0gSG9pIG5naGkgQ29u ZyBkb2FuIG8gc28gMUEgcGhvIFlldCBLaWV1LCBxdWFuIEhvYW4gS2llbS4pDQoNCmh0dHA6Ly93 d3cubGFvZG9uZy5jb20udm4vSG9tZS9IYS1UYXktTW90LWJhbi1hbi1xdWEtbmhpZXUtc2FpLXNv dC8yMDA2MTIvMTQ5NjgubGFvZG9uZyBMYW8gRG9uZyBzbyAzNDQgTmdheSAxNC8xMi8yMDA2IENh cCBuaGF0OiA1OjA4IEFNLCAxNC8xMi8yMDA2DQoNCkhhIFRheTogTW90IGJhbiBhbiBxdWEgbmhp ZXUgc2FpIHNvdA0KDQpodHRwOi8vd3d3LnhhbHVhbi5jb20vbW9kdWxlcy5waHA/bmFtZT1OZXdz JmZpbGU9YXJ0aWNsZSZzaWQ9MTA4NzgwDQoNCkhhIE5vaTogQ2EgY2hldCBoYW5nIGxvYXQgdHJl biBzb25nIE5odWUgbGEgZG8gbW9pIHRydW9uZyBudW9jIG8gZGF5IGJpIG8gbmhpZW0gbmdoaWVt IHRyb25nDQoNClRpbiB0dSBUcnVuZyB0YW0gUXVhbiB0cmFjIHZhIFBoYW4gdGljaCB0YWkgbmd1 eWVuIG1vaSB0cnVvbmcsIHRpbmggY2hvIGRlbiBjaGlldSAxMC8zLCBtb3QgdGFuIGNhIGNoZXQg ZGEgZHVvYyB2b3QgbGVuIHRyb25nIGtoaSBoYW5nIHRhbiBjYSBjaGV0IGtoYWMgdmFuIGNvbiBk ZW4ga2l0IHRyZW4gc29uZyBOaHVlLiANCg0KNC83IGNoaSB0aWV1IG51b2MgdnVvdCBjaHVhbg0K IA0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDYvODU1MjQxLyAxNToyNScg MjgvMDYvMjAwOSAoR01UKzcpDQoNCkhhIE5vaTogVHJvbmcgcmF1IHRyZW4gZG9uZyBudW9jIHRo YWkgDQogIA0KTGEgY29uIHNvbmcgY2h1YSBudW9jIHRoYWkgY3VhIEhhIE5vaSBuZW4gc29uZyBO aHVlIG8gbmhpZW0gdHJhbSB0cm9uZyB0dSBuaGlldSBuYW0gbmF5LiBWYXkgbmh1bmcsIHRyZW4g bmhpZXUgZG9hbiBzb25nIGJvYyBtdWkgaG9pIHRob2kgbmF5IHZhbiBkdW9jIGR1bmcgZGUgdHJv bmcgcmF1IG11b25nLg0KDQpUaGVvIGNodSBuaHVuZyBiZSByYXUgbXVvbmcgdHJlbiBkb2FuIHNv bmcgTmh1ZSBjaGF5IHF1YSB4YSBIdXUgSG9hIChodXllbiBUaGFuaCBUcmkgLSBIYSBOb2kpIHRo aSByYXUgYmUgY2h1IHlldSBkdW9jIG1hbmcgdmFvIGJhbiB0YWkga2h1IHZ1YyBub2kgdGhhbmgu DQoNCkhhIE5vaSBub2kgdGllbmcgbGEgdGhhbmggcGhvIGNvIG5oaWV1IHNvbmcgaG8sIG5ndW9p IEhhIE5vaSBsdW9uIGNhbSB0aGF5IHR1IGhhbyB2ZSBkaWV1IG5heS4gVGhlIG5odW5nIHRoYXQg eG90IHhhIGtoaSBjaGkgdHJvbmcgdm9uZyBob24gMjAgbmFtLCByYXQgbmhpZXUgaG8gbnVvYyBk YSBiaSBtYXQgdGljaC4NCg0KaHR0cDovL3d3dy54YWx1YW4uY29tL21vZHVsZXMucGhwP25hbWU9 TmV3cyZmaWxlPWFydGljbGUmc2lkPTEwOTM3OQ0KDQpIYSBOb2k6IE51b2MgbWF5IEhhIE5vaSBu aGllbSBhbW9uaSBnYXkgYmVuaCB1bmcgdGh1DQoNClRpZW4gc2kgVHJhbiBWYW4gTmhpIGxheSBu dW9jIHRydWMgdGllcCB0dSB2b2kgbnVvYyBtYXkgY2hvIHZhbyBsbyB2YSBuaG8gdmFpIGdpb3Qg ZHVuZyBkaWNoIHRodSBwaGFuIHVuZyBob2EgaG9jLiBWYWkgZ2lheSBzYXUsIG9uZyBudW9jIGRh bmcgdHJvbmcgYmF0IGRhdSB4dWF0IGhpZW4gbmh1bmcgdmFuIG1hdSB2YW5nLCBkZSBjaHVuZyB2 YWkgcGh1dCB0aGkgbG9wIHZhbiBuYXkgbGFuZyB4dW9uZyB0aGFuaCB0YW5nIGRheSBkdW9pIGRh eS4NCg0KVGllbiBzaSBUcmFuIFZhbiBOaGkgY2hvIGhheSwgbW90IGxvYXQgY2FjIG5oYSBtYXkg bnVvYyBiaSBuaGllbSBhbW9uaSBuaHUgSGEgRGluaCwgUGhhcCBWYW4sIFR1b25nIE1haS4uLiBO aGllbSBuYW5nIG5oYXQgbGEgTmhhIG1heSBudW9jIFBoYXAgVmFuIHZvaSBoYW0gbHVvbmcgYW1v bmkgY28gdHJvbmcgbnVvYyBtYXkgbGVuIHR1IDE1IGRlbiAxOG1nIG1vdCBsaXQgY2hvIGRlbiA0 MCCWIDYwIG1nIG1vdCBsaXQgKGdpb2kgaGFuIGNobyBwaGVwIGxhIHBoYWkgdGhhcCBob24gMSw1 IG1nIG1vdCBsaXQpLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvZG90aGkvMjAwOTEy L0J1Yy10dS1oby1iYW4tdm9pLWdpYS0yMC10cmlldS9tMi04ODY3MzQvIDEwOjAyLCAyOS8xMi8y MDA5IChHTVQrNykNCg0KSGEgTm9pOiBCdWMgdHUgaG8gYmFuIDIwIHRyaWV1L20yDQoNCktodSBh byBLaG9hbmcgcm9uZyBnYW4gMTQuMDAwbTIgdGh1b2MgeGEgTWUgVHJpLCBodXllbiBUdSBMaWVt LCBIYSBOb2kgZ2lvIGRhIGtob25nIGNvbi4gDQpDYSBraHUgaG8gZGEgYmkgYmllbiB0aGFuaCBu aGEgZGFuIGNoaSB0cm9uZyB2b25nIHZhaSBuYW0uIExhIGhvbiwgdHJlbiBraHUgaG8gZGEgYmkg bGFwIGRpLCANCmNvIGNhIGJhaSBkbyB4ZSBjdWEgaG9wIHRhYyB4YSBIb25nIFRpZW4gZHVuZyBs ZW4gZGUgZHVuZyB2b2kgc3UgZG9uZyB5IGN1YSBjaGluaCBxdXllbiB4YS4gDQoNCmh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi9wc2tzLzIwMTAwOC9MYXAtaG8tZ2l1YS1IYS1Ob2ktUGhlcC12dWEt dGh1LWxlLXBodW9uZy05MjkyMzkvIFZ1IERpZXAgLSBIb2FuZyBBbmggMDc6MTksIDE2LzA4LzIw MTAgKEdNVCs3KQ0KDQpIYSBOb2k6IExhcCBobyBnaXVhIEhhIE5vaTogUGhlcCB2dWEgdGh1YSBs ZS4uLiBwaHVvbmc/DQoNClNhdSBraGkgYmFvIGNoaSBkYW5nIHRpbjogIkJhaSB4ZSwgcXVhbiBi aWEgdGllcCB0dWMgbnVvdCBjaHVuZyBobyBIYW8gTmFtIiwgVUJORCANCnF1YW4gRG9uZyBEYSBk YSBjaGkgZGFvIHBodW9uZyBPIENobyBEdWEga2llbSB0cmEsIHh1IGx5IHJvaS4uLiBibyBkby4N Cg0KQmFuIExlIFRhbSwgbmd1b2kgZGFuIHNvbmcgbyBwaHVvbmcgTyBDaG8gRHVhLCBkaWEgY2hp IGVtYWlsOiByYWluZnJvbW1hcnNAeWFob28uY29tLCANCnJhdCBidWMgeHVjIHRydW9jIHRodWMg dHJhbmcgYW8gaG8gdHJlbiBkaWEgYmFuIFRodSBkbyBkYW5nIGJpIGxhbiBjaGllbSBuZ2hpZW0g dHJvbmcsIA0KdmEgY2hvIHJhbmcgbmd1eWVuIG5oYW4gZGFuIGRlbiB0aHVjIHRyYW5nIHRyZW4g bW90IHBoYW4gbGEgc3UgeWV1IGtlbSB0cm9uZyBxdWFuIGx5IA0KdmEgdGhhaSBkbyBjb2kgdGh1 b25nIHkga2llbiBjdWEgZGFuIGN1YSBtb3QgYm8gcGhhbiBjYW4gYm8gZGlhIHBodW9uZzogIlRv aSBkb25nIA0KeSB2b2kgcGhvbmcgc3UsIHRvaSBkYSBvIGtodSB2dWMgbmF5IDQgbmFtIHZhIHRo YXkgcGh1b25nIE8gQ2hvIER1YSByYXQgY29pIHRodW9uZyANCnkga2llbiBjdWEgbmd1b2kgZGFu LCBkdSBsdWFuLiBOZ29haSB2YW4gZGUgZHVvbmcgSGFvIE5hbSAoZGEgdHJvIHRoYW5oIG1vdCB2 aSBkdSANCmtpbmggZGllbiBjdWEgcXVhbiBseSB5ZXUga2VtLCBsYW0gZHVvbmcsIGdpYWkgcGhv bmcgbWF0IGJhbmcga2VvIGRhaSBuaGlldSBuYW0sIA0KcXV5IGhvYWNoIHRoaWV1IHRoYW0gbXks IGJ1b25nIGxvbmcgZGUgY2FjIGhvYXQgZG9uZyBsYW4gY2hpZW0gbmdhbmcgbmhpZW4gZGllbiBy YSkuIA0KUGh1b25nIGNvbiBibyBxdWEgeSBraWVuIGN1YSBuaGlldSBobyBkYW4gdmUgdmFuIGRl IGNhcCBudW9jIHNpbmggaG9hdCwgdmFuIGRlIHh1IGx5IHJhYyB0aGFpLCB2YW4gZGUgYW4gbmlu aC4uLiINCg0KTW9uZyBtdW9uIGJhbyBjaGkgdGllcCB0dWMgdmFvIGN1b2MgZGUgdHJ1eSBjdXUg dHJhY2ggbmhpZW0gY3VvaSBjdW5nIHRodW9jIHZlIGFpIGxhIHkgDQpraWVuIGN1YSBhbmggVHJh biBNaW5oIFNvbiwgZW1haWw6IG1pbmh0cmFuQGdtYWlsLmNvbTogICJCYW8gY2hpIG5vaSBtYWkg bmh1bmcgDQpraG9uZyBjbyBxdWFuIGNodWMgbmFuZyBub2kgZ2kuIENoYW4gcXVhIHZvaSBjYWNo IGxhbSB2aWVjIGN1YSBjaGluaCBxdXllbiBxdWFuIERvbmcgDQpEYS4gQ2hpbmggcXV5ZW4ga2hv bmcgbm9pIGdpIGN1IGRlIG5odSB0aGUgdGhpIGNoaSBtb3QgdGhvaSBnaWFuIG51YSB0aG9pIGhv IHNlIHRoYW5oIGJhaSANCmRhdCBob2FuZyByb2kgbGFpIGxhbiBjaGllbS4gVmlldE5hbU5ldCBu ZW4gdGllcCB0dWMgdHJ1eSBjaG8gZGVuIGN1bmcgdHJhY2ggbmhpZW0gDQp0aHVvYyB2ZSBhaSIu IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vYmFuZG9jdmlldC9iYW5kb2MvMjAwOS8wOC84 NjMwNjMvIENhcCBuaGF0IGx1YyAwODozMCwgVGh1IFR1LCAxMi8wOC8yMDA5IChHTVQrNykNCg0K SGEgTm9pOiBLaGkgbmd1b2kgZGFuIHBoYWkgY2FuaCB0YWMgJ3Ryb20nIHRyZW4gZGF0IGN1YSBt aW5oIA0KDQo1MSBobyBkYW4gbyB4YSBMYSBQaHUgKGh1eWVuIEhvYWkgRHVjLCBUUC4gSGEgTm9p KSBndWkgZG9uIGxlbiBiYW8gVmlldE5hbU5ldCBrZSBraG8gdmUgY2FuaCAyIG5hbSBuYXkgaG8g cGhhaSBjYW5oIHRhYyAidHJvbSIgdHJlbiBkYXQgY3VhIG1pbmguIE5oYSBiaSBnaWFpIHRvYSB0 cm9uZyBraGkgY2h1YSBjbyBkZW4gYnUga2hpZW4gaG8gcGhhaSBsYW0gY2FuaCBtYW4gdHJvaSBj aGlldSBkYXQuIA0KDQpDaGluaCBxdXllbiB4YSBjdW5nIHBoYWkgdGhhbiB0cm9pIGtoaSBzdW90 IG5nYXkgZGVtIHBoYWkgbG8gImNhbmgiIGRhbiBnaXUgZGF0IHF1eSBob2FjaCBkdSBhbi4uLg0K DQoiSG8gY2hvIG1heSB4dWMsIHhlIGNhdSBvIGF0IHRpZW4gdmFvIG5oYSBjaHVuZyB0b2ksIHRo b25nIGJhbyBjaG8gY2h1bmcgdG9pIGNodXllbiBkbyBkYWMgcmEgbmdvYWkuIFJvaSBuaHVuZyBj byBtYXkgZG8gcGhhIHNhcCB0dW5nIG5oYS4gQ2hpIHRyb25nIG1vdCB0aG9pIGdpYW4gbmdhbiwg NTEgbmdvaSBuaGEgZGFuIHRybyB0aGFuaCBtb3QgZG9uZyBkbyBuYXQiIC0gYW5oIE5ndXllbiBR dWFuZyBWaW5oLCBtb3Qgbmd1b2kgZGFuIExhIFBodSAoaHV5ZW4gSG9haSBEdWMsIEhhIE5vaSkg a2UgbGFpLg0KDQpodHRwOi8vd3d3LnZpZXRuYW10b3VyaXNtaW5mby5jb20vaW5kZXgucGhwL0dv bGYvVGh1LXR1b25nLXlldS1jYXUtSGEtTm9pLWtob25nLXhheS1zYW4tZ29sZi10YWktSG9hLUxh Yy5odG1sIFRodSBoYWksIDA3IFRoYW5nIDkgMjAwOSAxNToyMCANCg0KSGEgTm9pOiBUaHUgdHVv bmcgeWV1IGNhdSBIYSBOb2kga2hvbmcgeGF5IHNhbiBnb2xmIHRhaSBIb2EgTGFjIA0KDQpodHRw Oi8vdGludHVjLnhhbG8udm4vMDUtOTUxMTE3NTk2L3NhaV9waGFtX2RhdF9kYWlfdGFpX2hhX3Rh eV80X2Nhbl9ib19iaV9reV9sdWF0Lmh0bWxUaHUgQmEsIDE4LzA5LzIwMDcsIDE2OjA1DQoNCkhh IFRheTogS2hvaSB0byB2dSB0aGFtIG5odW5nIG8gQmFuIFFMREEgQW4gS2hhbmgNCg0KaHR0cDov L2J1dGxvbmcubXVsdGlwbHkuY29tL2pvdXJuYWwvaXRlbS80MzgvNDM4IA0KDQpUaHUgdHVvbmcg eWV1IGNhdSBwaGFpIHRodSBob2kgY2FjIGtob2FuIHRpZW46IGdpYSB0cmkgY28gcGhhbiB1dSBk YWkgZG8gNSBuaGEgZGF1IHR1IGNoaWVuIGx1b2MgaHVvbmcga2hvbmcgZHVuZyAoNDEsNiB0eSBk b25nKSwgdGllbiBsYWkgZG8gc3UgZHVuZyBjYWMga2hvYW4gdGllbiBjaHVhIG5vcCAoMjQxIHR5 IGRvbmcpLCBnaWEgdHJpIHF1eWVuIHBoYXQgdHJpZW4gZHUgYW4gS2h1IGRvIHRoaSBCYWMgQW4g S2hhbmggKDE5MiB0eSBkb25nKSwgZ2lhIHRyaSBxdXllbiBzdSBkdW5nIGRhdCBkaWVuIHRpY2gg dGh1YyBoaWVuIGR1IGFuIEtodSBkbyB0aGkgbW9pIFRydW5nIEhvYSAtIE5oYW4gQ2hpbmggKGhv biAyNzAgdHkgZG9uZykuDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L0xp ZW4tcXVhbi1kZW4tc2FpLXBoYW0tby14YS1Bbi1LaGFuaC0yLUhhLVRheS0zLXF1YW4tY2h1Yy1i aS1kZS1uZ2hpLXh1LWx5LWhpbmgtc3UvNDUxMzU4ODMvMjE4LyBUaHUgYmEsIDIxIFRoYW5nIGNo aW4gMjAwNA0KDQpMaWVuIHF1YW4gZGVuIHNhaSBwaGFtIG8geGEgQW4gS2hhbmggMiAoSGEgVGF5 KSwgMyBxdWFuIGNodWMgYmkgZGUgbmdoaSB4dSBseSBoaW5oIHN1DQoNClRoZW8gVmllbiBLU05E IHRpbmggSGEgVGF5LCB0cm9uZyB2dSBhbiBuZ2hpZW0gdHJvbmcgQW4gS2hhbmggMiBsaWVuIHF1 YW4gZGVuIGNhYyBzYWkgcGhhbSB2ZSBxdWFuIGx5IGRhdCBkYWksIGNvIHF1YW4gZGlldSB0cmEg ZGEgbGFtIHJvIHZpZWMgZ2lhbyB0aHVhIDUuMTA5bTIgZGF0IG8geGEgQW4gS2hhbmggKEguSG9h aSBEdWMpIGNobyBYaSBuZ2hpZXAgQ2hhbiBudW9pIHZhIHNhbiB4dWF0IHRodWMgYW4gZ2lhIHN1 YyAoWE4gY2hhbiBudW9pKSBkZSBkb24gdmkgbmF5IGJhbiBkYXQgYnVhIGJhaSBjaG8gbmhpZXUg ZG9uIHZpLCBjYSBuaGFuIHRodSBsb2kgYmF0IGNoaW5oIGhvbiA0MCB0aSBkb25nLiANCg0KaHR0 cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pL3BoYXBsdWF0LzIwMDUvMDUvNDMzMzkxLyAwNzow NiwgMTkvMDUvMjAwNSAoR01UKzcpDQoNCkhhIFRheTogTyBtYWkgZGFtICdUYXkgVGhpZW4gZGFp IHF1YW4nIA0KDQpEb25nIG1haSBkYW0gbmF5IGR1b2MgdGhpZXQga2Ugbmh1IG1vdCAidGhpZW4g Y3VuZyIsIGhhbmcgbmdheSBudW9tIG51b3Aga2hhY2ggcmEgdmFvLiANCkNvIHF1YW4gY2h1YyBu YW5nIGRpYSBwaHVvbmcgYmlldCBuaHVuZyBiYXkgbGF1IHZhbiBibyB0YXkuDQoNCkNodSB0aWNo IFVCTkQgdGhpIHhhIFNvbiBUYXkgUGh1bmcgVmFuIFRoaWVwOg0KDQpDaHVuZyB0b2kgZGEgcmF0 IGJ1YyB4dWMgdmkgbyBuaGVuIG5oZW4gbmF5DQoNClN1IGhvYXQgZG9uZyBjb25nIGtoYWkgdmEg cnVtIGJlbmcgY3VhIFRheSBQaHVvbmcgZGFpIHF1YW4gdHJvbmcgbmhpZXUgbmFtIHF1YSBkYSBn YXkgYnVjIHh1YyANCmNoaW5oIHF1eWVuIHZhIG5oYW4gZGFuIGRpYSBwaHVvbmcuIE5nYXkgc2F1 IGtoaSAiZG9uZyIgbWFpIGRhbSB0cmVuIGJpIHRyaWV0IHBoYSwgVGllbiBQaG9uZyANCmRhIGdo aSBuaGFuIHkga2llbiBjdWEgb25nIFBodW5nIFZhbiBUaGllcCwgQ2h1IHRpY2ggVUJORCB0aGkg eGEgU29uIFRheS4gDQoNCk9uZyBUaGllcCBraGFuZyBkaW5oOiAiRGF5IGxhIG1vdCB0dSBkaWVt IG5odWMgbmhvaSB0dSBsYXUgdGFpIGRpYSBiYW4gdGhpIHhhIFNvbiBUYXkuIA0KTmhpZXUgdG8g Y2h1YyBkb2FuIHRoZSBuaHUgSG9pIHBodSBsYW8sIEhvaSBjdXUgY2hpZW4gYmluaC4uLiByYXQg YnVjIHh1YyB2YSBkYSBndWkgDQpkb24gZGVuIG5oaWV1IGNvIHF1YW4gY2h1YyBuYW5nIGN1YSBk aWEgcGh1b25nIGRlIG5naGkgZ2lhaSBxdXlldCB0dSBkaWVtIG5heSwgc29uZyANCmRlbiBuZ2F5 IDE4LzUvMjAwNSBvIG5oZW4gbmhlbiBuYXkgbW9pIGR1b2MgQ0EgdGluaCBIYSBUYXkgdG8gY2h1 YyB0cmlldCBwaGEuIA0KDQpodHRwOi8vaGF0bmFuZy5uZXQvc2hvd3RocmVhZC5waHA/cD0zODEz MTAgDQoNCkh1bmcgdGhhbiBIYW5vaSBOZ3V5ZW4gRHVjIE5oYW5oIHRoYW0gbmh1bmcgDQoNClR1 b25nIE5ndXllbiBEdWMgTmhhbmgsIGdpYW0gZG9jIFNvIENvbmcgQW4gdGhhbmggcGhvIEhhIE5v aSBiaSB0aHVvYyBjYXAgdG8gY2FvIA0KbGEgdGhhbSBuaHVuZywgY3VhIHF1eWVuIHZhIGNvIHF1 YW4gaGUgdm9pIGRhbSB4YSBob2kgZGVuLiANCg0KTmd1eWVuIFRpZW4sIG1vdCB2aWVuIGNodWMg U28gQ29uZyBBbiBIYSBOb2kgZ3VpIGRvbiB0byBjYW8gdG9pIExlIEhvbmcgQW5oLCBibyANCnRy dW9uZyBDb25nIEFuIHZhIG5oaWV1IGNodWMgc2FjIGtoYWMgY3VhIGNoZSBkbywgY2FvIGJ1b2Mg Tmd1eWVuIER1YyBOaGFuaCBuaGlldSANCmRpZXUgcXVhIGxhIGRvbiBtYSBjaHVuZyB0b2kgcGhv IGJpZW4gZHVvaSBkYXkuDQoNCihIaW5oIHRyZW46IE5ndXllbiBEdWMgTmhhbmgsIGdpYW0gZG9j IFNvIENvbmcgQW4gdGhhbmggcGhvIEhhIE5vaSAoYmVuIHBoYWkpIA0KZHVuZyBjaHVwIGhpbmgg dm9pIGNvbiB0cmFpLCBOZ3V5ZW4gRHVjIFF1YW5nIHR1IFF1YW5nIGJlbyAoYmVuIHRyYWkpLiBC byB0aGFtIG5odW5nIA0KZGUgY29uIGFuIGNob2kga2hldCB0aWVuZyBIaW5oOiBibG9nIEhhTG9u Z1ZJUC5jb20pDQoNCkNvbmcgaG9hIHhhIGhvaSBjaHUgbmdoaWEgVmlldCBOYW0NCkRvYyBsYXAg LSBUdSBkbyAtIEhhbmggcGh1Yw0KDQpLaW5oIGd1aToNCg0KLSBEL2MgQm8gdHJ1b25nIExlIEhv bmcgQW5oDQotIEQvYyBCaSB0aHUgVGhhbmggdXkgUGhhbSBRdWFuZyBOZ2hpDQotIEQvYyBDaHUg bmhpZW0gVUJLVCBUcnVuZyB1b25nDQotIENhYyBkL2MgVGh1IHRydW9uZyBCbyBDb25nIGFuDQot IEQvYyBDaHUgdGljaCBVQk5EIEhhIE5vaQ0KDQpUaHVhIGNhYyBkb25nIGNoaSBsYW5oIGRhbyEg VG9pIGxhIE5ndXllbiBUaWVuLCBoaWVuIGRhbmcgY29uZyB0YWMgdGFpIENvbmcgQW4gSGEgDQpO b2kuIFZvaSBnYW4gMzAgY2h1YyBuYW0gdGhhbSBuaWVuIGNvbmcgdGFjLCB0b2kgZGEgdHJhaSBx dWEgbmhpZXUgZG9pIGdpYW0gZG9jLCBjaHVuZyANCmtpZW4gbmhpZXUgY2h1eWVuIGJ1b24gdnVp IGN1YSBDb25nIEFuIEhhIE5vaS4gTmh1bmcgY28gbW90IHN1IHRoYXQgdG9pIHhpbiBtYW5oIGRh biANCnRyaW5oIGJheSB2b2kgY2FjIGRvbmcgY2hpIGxhbmggZGFvIGxhIGNodWEgYmFvIGdpbyBD b25nIEFuIEhhIE5vaSBsYWkgbmF0IG5odSBoaWVuIG5heSANCnZhIG5ndW9pIGdheSByYSB0aW5o IHRyYW5nIG5heSBjaGluaCBsYSBvbmcgTmd1eWVuIER1YyBOaGFuaCwgZ2lhbSBkb2MgQ29uZyBB biBIYSBOb2kuDQoNClRydW9jIGRheSwgdmllYyBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gY3VuZyBk YSB4YXkgcmEgdHJvbmcgQ29uZyBBbiBIYSBOb2kgbmh1bmcgDQpjaHVhIG1hbmcgdGluaCBjaGF0 IHBobyBiaWVuLiBOaHVuZyB0dSBraGkgb25nIE5ndXllbiBEdWMgTmhhbmggbGVuIGxhbSBnaWFt IGRvYyANCnRoaSB2aWVjIGNoYXkgY2h1YywgY2hheSBxdXllbiBkYSB0cm8gdGhhbmggcGhvIGJp ZW4sIGR1b25nIG5oaWVuLCB2b2kgYmF0IGt5IGFpIG11b24gDQpsZW4gZ2l1IHZpIHRyaSBsYW5o IGRhbywgZHUgbmhvIG5oYXQgbGEgcGhvIGNvbmcgYW4gcGh1b25nLiBWaWVjIGJvIG5oaWVtLCBs dWFuIGNodXllbiANCmRldSBkbyBvbmcgTmhhbmggcXV5ZXQgZGluaCBoZXQuIENhYyBkb25nIGNo aSBwaG8gZ2lhbSBkb2MgZGV1IGtob25nIGNvIHZhaSB0cm8gZ2kuIA0KTmhpZXUgdHJ1b25nIGhv cCwgb25nIE5oYW5oIG5oYW4gdGllbiBjaGF5IGNodWMsIGNoYXkgcXV5ZW4gcm9pLCBuaHVuZyBi aSBkdSBsdWFuIA0KQ29uZyBBbiBIYSBOb2kga2hvbmcgZG9uZyB0aW5oLCB2aSBzbyBjYW4gYm8g ZG8gZGEgdHVuZyBiaSBreSBsdWF0LCBvbmcgTmhhbmggbGFpIGxheSANCmRhbmggY2FwIHRyZW4g ZGUgbGFuIGF0LCBuaHU6ICJ0cnVvbmcgaG9wIG5heSwgYW5oIFV0LCBhbmggQmEsIGFuaCBCb24u Li4gbyBCbyB2YSBCaSB0aHUsIA0KY2h1IHRpY2ggVFAgZGEgZG9uZyB5IHJvaSIgaG9hYyAidHJ1 b25nIGhvcCBuYXkgZG8gYW5oIFV0LCBhbmggQmEsIGFuaCBCb24uLi4gbyBCbywgZC9jIA0KQmkg dGh1LCBjaHUgdGljaCBUUCBnaW9pIHRoaWV1Ii4gVGh1IGRvYW4gbmF5IGN1YSBvbmcgTmhhbmgg YW5oIGh1b25nIHhhdSBkZW4gY2FjIGQvYyANCmxhbmggZGFvLCBuaGF0IGxhIG5odW5nIGFpIGto b25nIGhpZXUgdGh1IGRvYW4sIGNvbiBuZ3VvaSB0aGF0IGN1YSBvbmcgTmhhbmguDQoNCkdhbiBk YXksIG9uZyBOaGFuaCBkYW5nIGR1bmcgY2hpbmggc2FjaCBsdWFuIGNodXllbiBjYW4gYm8gZGUg cnVuZyBkb2EgYnVvYyBtb2kgDQpuZ3VvaSBwaGFpIGNoYXkgZGUgbGF5IHRpZW47IGRvbmcgdGhv aSB0YW8gY28gZGUgZGUgdHUgbmd1b2kgSGEgVGF5IGN1IChvbmcgTmhhbmggbGEgDQpuZ3VvaSBI YSBUYXkpIG5hbSBnaXUgbmh1bmcgY2h1YyB2dSBxdWFuIHRyb25nIGN1YSBDb25nIEFuIEhhIE5v aS4gQ28gZG9uZyBjaGkgDQpkYW5nIGxhbSB0cnVvbmcgbW90IGRvbiB2aSBvbiBkaW5oLCBwaGF0 IGh1eSBuYW5nIGx1YyB0b3QsIG9uZyBOaGFuaCBkaWV1IHNhbmcgZG9uIHZpIA0Ka2hhYyBkZSB0 YW8gZGlldSBraWVuIGNobyBkYW4gZW0gbGVuLiBPbmcgSGFpLCB0cnVvbmcgcGhvbmcgY2FuaCBz YXQgZ2lhbyB0aG9uZyBkYW5nIA0KbGFtIHRodSB0dWMgbmdoaSBodXUsIHRoYXkgY28gbmhpZXUg bmd1b2kgbXVvbiB2YW8gdmkgdHJpIGxhbmggZGFvIG5heSwgb25nIE5ndXllbiBEdWMgDQpOaGFu aCB0aG9uZyBxdWEgbW90IHNvIGRlIHR1IGJhbiB0aW4gcmEgZ2lhLCBhaSBtdW9uIGxlbiB0cnVv bmcgcGhvbmcgY2FuaCBzYXQgZ2lhbyANCnRob25nIHRoaSBwaGFpIG5vcCAxIHRyaWV1IGRvIGxh LiBEYSBjbyBuZ3VvaSBub3AgMSB0cmlldSBkbyB2YSBkYSBkdW9jIG9uZyBOaGFuaCBjaGFtIA0K Y2hvbiBsYW0gdHJ1b25nIHBob25nIGNhbmggc2F0IGdpYW8gdGhvbmcgKGR1b25nIG5oaWVuLCBz YXUga2hpIGxlbiBjaHVjIGhvIHNlIHRpbSBtb2kgDQpjYWNoIHRodSBob2kgbGFpIHNvIHRpZW4g ZGEgZG8gcmEgdmEgZG8gY2hpbmggbGEgbmd1eWVuIG5oYW4gZ2F5IHJhIHRpZXUgY3VjLCBzYWNo IG5oaWV1IA0KbmhhbiBkYW4pLiBNb2kgbmd1b24gdGllbiBjaGF5IGNodWMsIGNoYXkgcXV5ZW4g ZGV1IGRvIHZlIGdpYSBkaW5oIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oLg0KDQpEYW0gY3VvaSBjb24g dHJhaSBvbmcgTmd1eWVuIER1YyBOaGFuaCBjdW5nIGxhIGRhbSBjdW9pIGt5IGN1Yywgc2FjIG11 aSB4YSBob2kgZGVuIA0KbmhhdCB0dSB0cnVvYyBkZW4gbmF5LiBOZ29haSB2aWVjIHRvIGNodWMg bGluaCBkaW5oIGRpZW4gcmEgMDMgbmdheSBsaWVuIHZvaSBsdW9uZyBraGFjaCANCmxlbiBkZW4g bWF5IG5naGluIG5ndW9pLCBvbmcgTmhhbmggY29uIHNhaSBtYXkgZGUgdHUgbGEgbmh1bmcgdGVu IHRydW0geGEgaG9pIGRlbiANCihjaG9pIHZvaSBvbmcgTmhhbmggdHUga2hpIG9uZyB0YSBjb24g bGEgdHJ1b25nIHBob25nIGNhbmggc2F0IGRpZXUgdHJhKSBjYW0gdGhpZXAgbW9pIA0KZGVuIGdh cCBuaHVuZyB0ZW4gY28gbWF1IG1hdCB0cm9uZyBnaW9pIHhhIGhvaSBkZW4sIHRydW0gYnVvbiBs YXUsIGRvaSBubyB0aHVlLCBiYW8ga2UgDQpub2kgbGEgb25nIE5oYW5oIG1vaSBuaHVuZyB5ZXUg Y2F1IGtob25nIGR1b2MgZGVuIGR1IGRhbSBjdW9pLiBNb2kgY3VvaSBtYSBraG9uZyANCmNobyBk ZW4gZHUgZGFtIGN1b2kgdGhpIGNoaSBjbyBsYSB5ZXUgY2F1IG5vcCB0aWVuLCBnb2kgbGEgIm11 bmcgdm9uZyBjaGF1Ii4gVHJ1bmcgYmluaCANCm1vaSBwaG9uZyBiaSAibXVuZyB2b25nIGNoYXUi IG5heSBraG9uZyBkdW9pIDMwMDAgVVNELiBOaGlldSB0aWVuIG5lbiBjb24gdHJhaSBvbmcgDQpO aGFuaCAoTmd1eWVuIER1YyBRdWFuZykgZGEgdHJvIHRoYW5oIHRheSBjaG9pIGtoZXQgdGllbmcg SGEgTm9pIChjaGkgY2FuIGxlbiBtYW5nIA0KSW50ZXJuZXQgZ28gTmd1eWVuIER1YyBRdWFuZyB0 aGkgc2UgY28gbmhpZXUgYmFpLCBhbmggcGhhbiBhbmggdmllYyBhbiBjaG9pIGN1YSBOZ3V5ZW4g RHVjIFF1YW5nKS4NCg0KWGluIGtoYW5nIGRpbmggcmFuZywgZ2lhIHRydW9uZywgZG9jIGRvYW4s IG9uZyBOaGFuaCBraG9uZyBrZW0gZGFuIGFuaCBkaSB0cnVvYywgDQpuaHVuZyBuaW5oIGhvdCwg bHV1IG1hbmggdGhpIGRhbiBhbmgsIGRhbiBjaGkgZGkgdHJ1b2MgZ29pIG9uZyBOaGFuaCBsYSBz dSBwaHUuDQoNClRodWEgY2FjIGRvbmcgY2hpIGxhbmggZGFvISBOaHVuZyB2aWVjIG9uZyBOZ3V5 ZW4gRHVjIE5oYW5oIGxhbSBkYSB2YSBkYW5nIGxhbSANCm5odWMgbmhvaSBDb25nIEFuIEhhIE5v aS4gTmd1b2kgZGFuIGtob25nIHRpbiB2YW8gQ29uZyBBbiBIYSBOb2kuIENhbiBibywgY2hpZW4g c3kgDQpraG9uZyB0aW4gdmFvIGxhbmggZGFvIENvbmcgQW4gVFAuIEhhIE5vaS4gVmkgdmF5LCB0 b2kgZGUgbmdoaSBjYWMgZG9uZyBjaGkgbGFuaCBkYW8gDQpjYW4gY28gbmh1bmcgYmllbiBwaGFw IGNoYW4gY2hpbmgsIGN1bmcgY28gbGFpIENvbmcgQW4gSGEgTm9pOg0KDQotIFV5IGJhbiBraWVt IHRyYSBUcnVuZyB1b25nIGtpZW0gdHJhIHRvYW4gZGllbiB2ZSBvbmcgTmhhbmgNCg0KLSBDYWNo IGNodWMgZ2lhbSBkb2MsIGRpZXUgY2h1eWVuIG9uZyBOZ3V5ZW4gRHVjIE5oYW5oIHZlIFZhbiBw aG9uZyBCbyBob2FjIFZpZW4gY2hpZW4gbHVvYy4NCg0KLSBCbyBuaGllbSBuZ3VvaSBjbyB0YWks IGR1YyBsYW0gZ2lhbSBkb2MgQ29uZyBBbiBIYSBOb2kuIFRvdCBuaGF0IGxhIGNob24gZG9uZyBj aGkgbyANCmNhYyBDdWMsIFRvbmcgY3VjIGRlIGtob25nIGRpbmggZGFuZyBnaSBkZW4gY2FjIHRp ZXUgY3VjIHRydW9jIGRheSBjdWEgQ29uZyBBbiBIYSBOb2kuDQoNCi0gQ2FjIGRvbmcgY2hpIGxh bmggZGFvIEJvIGNhbiBsYW0gdmllYyB2b2kgQmFuIEdpYW0gRG9jIENvbmcgQW4gSGEgTm9pIGRl IGNvIA0Kbmh1bmcgYmllbiBwaGFwIGxvYWkgYm8gaG9hbiB0b2FuIGhpZW4gdHVvbmcgY2hheSBj aHVjLCBjaGF5IHF1eWVuIGhpZW4gbmF5Lg0KDQpDYWMgZG9uZyBjaGkgbGFuaCBkYW8gY3Uga2hh Y2ggcXVhbiBraWVtIHRyYSwgeHUgbHksIG5odW5nIHhpbiBkdW5nIHRpZXQgbG8gdGVuIHRvaS4N Cg0KWGluIHRyYW4gdHJvbmcgY2FtIG9uIGNhYyBkb25nIGNoaSBsYW5oIGRhbyENCg0KSGEgTm9p LCBuZ2F5IDExIHRoYW5nIDQgbmFtIDIwMDkNCk5ndXllbiBUaWVuIA0KDQpodHRwOi8vd3d3Lm5n dW9pLXZpZXQuY29tL2Fic29sdXRlbm0vYW5tdmlld2VyLmFzcD9hPTExMzc4NiAwMi82LzIwMTAg VE4gDQoNClZ1YSB0aGFtIG5odW5nIE5ndXllbiBEdWMgTmhhbmggbGVuIGNodWMgcGhvIHRvbmcg Y3VjIHRydW9uZyBBbiBOaW5oIA0KDQpOZ2F5IDMxLzUvMjAxMCB2dWEgcXVhLCBvbmcgTmd1eWVu IER1YyBOaGFuaCBkdW9jIHRoYW5nIGNodWMgcGhvIHRvbmcgY3VjIHRydW9uZyANClRvbmcgQ3Vj IEFuIE5pbmgsIG5odW5nIHZhbiBraWVtIG5oaWVtIGNhIGNodWMgZ2lhbSBkb2MgU28gQ29uZyBB biBIYSBOb2kuDQoNCihBbmg6IEhhaSBibyBjb24gTmd1eWVuIER1YyBOaGFuaCB2YSBOZ3V5ZW4g RHVjIFF1YW5nIHR1IFF1YW5nIEJlbyBjaHVwIGhpbmggDQpiZW4gaG8gR3VvbT8gSGluaDogdGhv bmd0aW5iZXJsaW4ubmV0KQ0KDQpLaGkgdnUgYW4gY28gYmFjIG5oaWV1IHRyaWV1IGRvIGxhIGN1 YSBCdWkgVGllbiBEdW5nLCB0b25nIGdpYW0gZG9jIEJhbiBRdWFuIEx5IA0KY2FjIGR1IGFuIChj YXUgZHVvbmcpIFBNVSAxOCBjdWEgQm8gR2lhbyBUaG9uZyBWYW4gVGFpIG5vIHJhIGhvaSBuYW0g MjAwNiwgbW90IA0KdHJvbmcgbmh1bmcgc2FpIHBoYW0gY3VhIEJ1aSBUaWVuIER1bmcgYmkgcGhh bmggcGh1aSBsYSBjaG8gbmhpZXUgcXVhbiBjaHVjIGN1YSANCm5oaWV1IG5nYW5oLCBjbyBxdWFu IGtoYWMgbmhhdSB4YWkgY2h1YSB4ZSBob2kgY3VhIGNhYyBkdSBhbiBob2FuIHRhdDsgZHVuZyBy YSwgDQpjYWMgeGUgbmF5IHBoYWkgYmFuIGRpLCB0aGFuaCBseSB0YWkgc2FuIGN1YSBkdSBhbjsg Tmd1eWVuIER1YyBOaGFuaCBjdW5nIGRhIHBoYWkgDQp0cmEgbGFpIG1vdCBjYWkgeGUgaG9pIGRv IEJ1aSBUaWVuIER1bmcgY3VuZy4gDQoNCmh0dHA6Ly92aWV0YmYuY29tL2ZvcnVtL2FyY2hpdmUv aW5kZXgucGhwL3QtNjQyMjguaHRtbCBITiAwOS0yNi0yMDA4LCAwODoyNQ0KIA0KVmVuIGJ1YyBt YW4gdmUgZ2lhIGRpbmggdmEgc3UgbmdoaWVwIGN1YSBnaWFtIGRvYyBDQVRQIEhOIQ0KDQpHaWFt IGRvYyBDQSBUUC4gSGEgTm9pIE5ndXllbiBEdWMgTmhhbmggLSBEaWVuIHRob2FpOiAwOTEzMjA4 NTg5LCBsYSB0dW9uZyB4dWF0IA0KdGhhbiB0dSB2dW5nIGNoaWVtIHRydW5nIEhhIFRheS4gU2F1 IGJhbyBuYW0gYm9uIGJhIGxhbiBsb24gY3VuZyBjYXAgbWF0IGhpcCByYXQgZ2lhbiANCnhhbyBk aWVuIGhpbmgsIHRyYW0gbHVhbiBjdW5nIGJhbyBuaGlldSBjdW5nIGJhYyBjdW9jIHNvbmcsIGJh YyBOaGFuaCBjdWEgY2h1bmcgdGEgcnUgDQpidW4gZGF0IEhhIFRheSB2dW9uIHZhaSB2ZSBIYSBO b2kgbGFtIGdpYW0gZG9jIGNvbmcgYW4gdGh1IGRvIGN1YSBjYSBudW9jLiBWYSBjdW5nIA0KY28g bGUgZHVvaSB0aG9pIGJhYyBDaHV5ZW4sIGJhYyBOaGFuaCBiaSBraW0ga2VwIG5oaWV1IHF1YSwg bmVuIGtoaSBsZW4gbGFtIGdpYW0gZG9jIA0Kcm9pIGl0IGxhdSBzYXUgZG8sIGRheSBkbyBuaGll dSBuZW4gYmFjIGNvbiBkdW9jIHBob25nIGhhbSB0dW9uZywgYmFjIHRybyBuZW4gbmdvbmcgDQpu Z2hlbmgsIGNoYW5nIHNvIGJvIGNvbiB0aGFuZyBuYW8uIENoYWMgaGFuIGNhYyBiYW4gY3VuZyBj b24gbmhvIHZ1IFBNVSAxOCBjdWEgDQoiRHVuZyB0b25nIiBub2kgdGllbmcgMSB0aG9pLCBCYWMg Tmhhbmgga2hpIGRvIGxhIFBHRCBjdW5nIGR1bmcgMSB4ZSBjdWEgUE1VLiBBeSANCnZheSBtYSBi YWMgdmFuIHZ1b3QgcXVhIGJ1YSByaXUgZHUgbHVhbiwgbmdhbmcgbmhpZW4gdGhhbmcgY2h1YyBu aHUgdGh1b25nLiBCYXkgZ2lvIA0KYmFjIG5nYW5nIG5oaWVuIHR1eWVuIGJvIHZvaSByYXQgbmhp ZXUgZGUgdHUgdHJvbmcgbHVjIHRyYSBkdSB0dXUgaGF1ICJNb3QgbWluaCB0YW8gYmF5IA0KZ2lv IGRpIDMtNCBjYWkgeGUsIDUtNiB0YWkgeGUsIHhlIGJldCBjbyBodW1tZXIgeGVtIHRoYW5nIG5h byBsYW0gZ2kgZHVvYyB0YW8/IiANCg0KT2khIFRoZSB0aGkga2luaCByb2kuIEJhYyB2YW4gbGFt IHJhIHZlIGdpYW4gZGkuIE8gY2FpIG5oYSBiZSBiZSBvIFRydW9uZyBEaW5oIG5odW5nIGFpIA0K YmlldCBiYWMgY28gYmFvIG5oaWV1IGJpZXQgdGh1IG8ga2hhcCBudW9jIFZpZXQgTmFtIG5heS4g RG90IHZ1YSByb2ksIGJhYyBjb24gdnVvbiB2b2kgDQpzYW5nIExhbywgbXVhIGRhdCBiZW4gZG8u Li4gQmFjIGN1bmcgZ2lhIGRpbmggdGFwIHRoZW8gdGhlIHZpcCBvIE5pa2tvLSBraGFjaCBzYW4g bm9pIA0KdGllbmcgSE4gdmUgZG8gZGF0IGRvLCB2YSBiYWMgY3VuZyB0aGljaCBhbiBtb24gYW4g TmhhdCAtIGNoYWMgbW9uZyBzb25nIGxhdSB2ZXQgbG9jIA0KbmhpZXUuLi4gQmFjIGNvbiB0aGFj aCB0aHVjIG5oaWV1IG5ndW9pIHZhIGRpZW4gaGluaCBUb25nIGN1YyBjYW5oIHNhdCBkYSBjaG9p IGxhaSBiYWMgdnUgTmV3Y2VudHVyeS4gDQoNClBodSBuaGFuOiBOZ3V5ZW4gVGhpIFBodW9uZy0g MDkwNC4uLi4uLkR1b25nIGR1b25nIGxhIHBodSBuaGFuIG5nYWkgZ2lhbSBkb2MgdGhldCByYSAN Cmx1YSwgbmdvYWkgaGluaCBob2kgbHVuIDEgdGksIG5odW5nIG1hIGRhbmggbG8gY2FtIHR1IGN1 IGdvaSBsYSB0aG9pIHJvaS4gTmh1IHRybyBoZSwgdm8gDQp0aHUgbGluaCBjb25nIGFuLCBsbyBk ZSBkYSBtYW4gdGFuIGJhbywgbmdheSBuYW8ga2hvbmcgbGVuIEhhbmcgQmFpLCBMbyBEdWMgdGhh IHZhaSBjb24gDQpsbyBuZ2hpbiBkaWVtIGxhIGJhYyBidW9uIGhvbiBjYSBiaWV0IHRpbiBjaG9u ZyBkaSBnYWkuLi4gDQoNClRydW9uZyBuYW06IE5ndXllbiBEdWMgUXVhbmctIGR0aG9haTogMDkw OTU1NTU1OQ0KDQpbYmxvZzogaHR0cDovL2F1LmJsb2cuIDM2MC55YWhvby4gY29tL2Jsb2ctIHYw WU5KYVl6YnFzM09hYnAgNVdBcm1kbUJmZy0/Y3E9MSwgeW0gbGEgYnVtYnVtODU4OV0NCg0KQW5o IFF1YW5nIGN1YSBjaHVuZyB0YSB0aGkgbmd1IGRpZW4gaGluaC4gSG9jIGNhcCAzIFRyYW4gUGh1 LCBzdW90IG5nYXkgZGkgdGhheSBjbyB2YSANCmNobyB0aWVuIHRoYW5nIGhvYyBnaW9pIGRlIG5o aW4gYmFpLCBheSB2YXkgbWEgZ2lhIGRpbmggdmFuIGtob25nIGJpZXQgbHVvbmcgc3VjIG1pbmgs IA0KY2hvIGFuaCBkaSBkdSBob2MuIEtldCBxdWEgYW5oIHNpbmggbmFtIDg0IG5odW5nIHNhdSA0 IG5hbSBib24gYmEgbyBudW9jIG5nb2FpIHZlIA0KVmlldCBOYW0sIGhldCBVYyByb2kgQW5oLCBh bmggbGFpIHZlIFZOIGNheSBsYWkgUk1JVC4gVm9pIHRpZW0gbHVjIGN1YSBibywgY2hhYyBhbmgg c2UgDQpjbyBiYW5nLiBDaHVuZyB0YSBjdW5nIHZvIHRheSBjaHVjIGFuaCB0aGFuaCBjb25nIG5o ZSEgDQoNClRodSBudTogTmd1eWVuIFBodW9uZyBBbmgtIDA3Ny4uLi4uDQoNCltibG9nIHRodSAx OiBodHRwOi8vMzYwLnlhaG9vLiBjb20vcHJvZmlsZS0gVVdqNlJ1bzBkcVJWcTFzTCBmcklUDQpi bG9nIHRodSAyOiBodHRwOi8vdWsuMzYwLiB5YWhvby5jb20vIHByb2ZpbGUtN0YzVXBPTXogY3FV N2E5NlpDa2ZLMWljLSA/Y3E9MSwgeW06IGJpY3VhYm9tZSB2YSBlbWJpZGF5XQ0KDQpCYW4gbmF5 IHRoaSBzaW5oIG5hbSA4OCwgYmFuZyB0dW9pIHRvLCBuZ29haSBoaW5oIGdpb25nIG9uZyBhbmgs IGJlbywgZGVuLCB4YXUgbmh1bmcgY28gDQoxIGNodSBuaHVuZywgY2h1cCBhbmggYW4gbGFtIG5o ZSwgbW9pIG5ndW9pIHZhbyBwaG90b3N0cmVhbSB0cm9uZyBibG9nIGVtIHkgc2UgYmlldC4gDQpE dSBlbSBjbyBuaHUgbmFvIG5odW5nIGR1b2MgY2FpIGJvIGVtIGxhbSB0byB0aGUsIG1hIHRyZW4g ZGFuaCBuZ2hpYSBsYSBiYW4gY2h1YSBjbyANCm5ndW9pIHlldSBuaHVuZyB0byB0aGUgbGEgdG8g cGhhaSB0aWVwIHh1YyB2YSBub2kgY2h1eWVuIHZvaSAzIG15IG5hbSBuZ3Ugdm9pIGVtIHkgDQpy b2FpLiBDaHVuZyBubyBkZXUgYmFvIG5oYW0gbWF0IGxhbSB0aGkgY3VvaSBjdW5nIGN1bmcgeG9u ZyBuaHVuZyBoYWkgbGFtIG5lbiBraG9uZyANCmR1eSB0cmkgbm9pLi4uIEF5IHZheSBuaHVuZyB2 b2kgbW9pIG5ndW9pIHh1bmcgcXVhbmggZW0gc29uZyByYXQgbmVuIG5hLCAiZ2lhdSBuZ2hlIiAN Cm5lbiBhaSBjdW5nIG5naGkgZW0gb2sgbGFtIChjYWkgbmF5IG1vaSBuZ3VvaSBkb2MgYmxvZyBl bSBzZSBiaWV0KS4uLiBPLiBOaHVuZyBtYSBub2kgDQpuaHUgdGhlIGVtIGxhaSBraG9uZyBkdW9j IGRpZW0gZ2kgYT8gVHJvaSBraG9uZyBiYXQgY29uZywgYnUgbGFpIGVtIG5heSBob2MgaGFuaCBj dW5nIA0KdmFvIGxvYWkgZHVvYy4gQ2h1eWVuIEFuaCBBbXMgdmEgYmF5IGdpbyBkYW5nIGhvYyBv IFVLLi4uIExheSBoZXQgaW90IHRob25nIG1pbmggY3VhIA0KdGhhbmcgYW5oLCB0aG9pIGFuaCBu aHVvbmcgZW0gY3VuZyBkdW9jLi4uIA0KDQpDb24gZGF1IHR1b25nIGxhaTogMDkwLi4uLi4uLg0K DQpbYmxvZzogaHR0cDovLzM2MC55YWhvby4gY29tL3Byb2ZpbGUtIGNaYVRpM2c5Y3FpZDgzb3Ag TEVNV2R6SjFYdy0/Y3E9MSwgDQp5bSBsYSBsaW5ocHVwcHk4NV0gDQoNCkNoaSBuYXkgdGhpIGhv YW5oIHRyYW5nIHRob2kgcm9pLiBCbyBsYSBOZ3V5ZW4gVGhhbmggU29uIHZ1IHRydW9uZyB2dSBu Z29haSBnaWFvLCB0aSBudWEgDQpsZW4gdGh1IHRydW9uZyBibyBuZ29haSBnaWFvIGtpIHZ1YSBy b2ksIHRydW90IGNodWMgdmkgZGluaCBraWVuIHR1bmcuLi4gTyBOZ2Egdm9pIGJvIHR1IGJlLCAN CmN1bmcgdGkgdG9lIExvbW9ub3hvdi0gdHJ1b25nIGRhaSBob2Mgc28gMSBOZ2Egbmh1bmcgbWEg aG9jIGtob25nIHRoZW8gZHVvYyB2ZSBudW9jIGNodWkgdmFvIHRydW9uZyBjb24gDQpvbmcgY2hh dSBjaGEgTmdvYWkgZ2lhbyB2aSBibyBjbyBzdWF0LiBIb2MgaGFuaCBjaGFuZyBiYW5nIGFpIG5o dW5nIGNvIG5nb2FpIGhpbmggDQoxbTcwICsgYm8gbGFtIHRvIG5lbiByYSB0cnVvbmcgdHJvbmcg a2hpIGtob2kgZHVhIE5nb2FpIGdpYW8gZ2lvaSBob24gZ2FwIHRpIGxhbiBib24gDQpjaGVuIHRp bSB2aWVjLCBjaGkgTGluaCBjdWEgY2h1bmcgdGEgdW5nIGR1bmcgdmFvIEN1YyBMYW5oIFN1IEJv IE5nb2FpIEdpYW8gbGFtIHZpZWMuIA0KU29uZyB0cm9uZyBuaHVuZyBsdWEsIGNoaSBjaGkgYmll dCBkZW4gTG91aXMgVnVpdHRvbiwgR3VjY2ksIFByYWRhLiBDaGluaCB2aSBuaGEgY2hpIA0KZ2lh dSwgY2hpIHRpZXUgdGllbiBuaHUgcGhhLiANCg0KaHR0cDovL3d3dy5oYW5vaW11YXRoaS5jb20v P2FjdD1OZXdzJnVybD0vR0wvUGhhcC1sdWF0LzIwMDgvMTAvM0JBMDc2M0EvIDEzLzEwLzIwMDgs IDExOjE2IEdNVCs3DQoNCk8gbWFpIGRhbSB0cm9uZyBuaGEgbmdoaSBUYXkgVGhpIG8gdGhhbmgg cGhvIEhhIERvbmcgKEhhIFRheSBjdSwgbmF5IHRodW9jIEhhIE5vaSkgDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1BoYXQtaGllbi1vLW1haS1kYW0tbG9uLXRhaS1IYS1U YXkvNzAwMTkwODQvMjE4LyBUaHUgYmF5LCAzMCBUaGFuZyBiYXkgMjAwNSwgMTY6MTEgR01UKzcg DQoNCk8gbWFpIGRhbSBsb24gdGFpIEhhIFRheSAtIG5oYSBuZ2hpIFRoYWkgSG9hIHRob24geWVu IFBodWMsIHhhIEJpZW4gR2lhbmcsIGh1eWVuIFRoYW5oIE9haSANCg0KaHR0cDovL3d3dy5oYW5v aW1vaS5jb20udm4vdm4vMTQvMTY3NjQ2LyAxMS8wNS8yMDA4IDIzOjE1DQoNCkhhIFRheTogQmll dCB0aHUsIG5oYSBvIGxpZW4ga2UuLi5ibyBob2FuZywgdHJvIHRoYW5oICJiYWkgZGFwIiB0ZSBu YW4geGEgaG9pDQogDQpLaHUgZG8gdGhpIFZhbiBRdWFuLVllbiBQaHVjIG8gdGhhbmggcGhvIEhh IERvbmcgKEhhIFRheSkgY29uIHJhdCBuaGlldSBuaGEgbyBsaWVuIGtlLCANCmJpZXQgdGh1IHhh eSB4b25nIHBoYW4gdGhvIChtb2MpIHJvaSBibyBob2FuZyBoYW5nIG5hbSBuYXkuIA0KDQpLaG9u ZyBpdCBjYW4gYmlldCB0aHUsIG5oYSBvIGxpZW4ga2UgMy00IHRhbmcgdHJvbmcga2h1IGRvIHRo aSBuYXkgcmV1IG1vYyBkYSBwaHUgeGFuaCANCmdhY2ggeGF5IHR1b25nLCB4dW5nIHF1YW5oIGNv IG1vYyB1bSB0dW0uDQoNCkRvIGxhIGNodWEgbm9pIHRyb25nIGtodSBkbyB0aGkgbmF5IGNvIG5o aWV1IGNhbiBobyBjbyBjaHUgbmh1bmcga2hvbmcgY28gbmd1b2kgbywgdGhpbmggDQp0aG9hbmcg ZHVvYyBjYWMgImNvIGNoaWV1LCBjYXUgYW0iIGNodSBuaGEgc3UgZHVuZyBsYW0gbm9pIHRoZXQg ZGFpIGJhbiBiZSwgZ2F5IG9uIGksIGtobyBjaGl1IGNobyBjYWMgaG8gaGFuZyB4b20uIA0KDQoi S2UgYW4ga2hvbmcgaGV0LCBuZ3VvaSBsYW4ga2hvbmcgcmEiLCBuaHVuZyBiaWV0IHRodSwgbmhh IG8gbGllbiBrZSBoaWVuIGRhbmcgYm8gaG9hbmcgDQp0cm9uZyBraHUgZG8gdGhpIG5vaSB0cmVu IHRybyB0aGFuaCAiYmFpIGRhcCIgbHkgdHVvbmcgY3VhIGNhYyBkb2kgdHVvbmcgdGUgbmFuIHhh IGhvaSANCm5odSBjbyBiYWMsIG1haSBkYW0sIG5naGllbiBodXQuLi4gdnVhIGdheSBwaGFuIGNh bSB2dWEgZ2F5IGJ1YyB4dWMgdHJvbmcgdGFtIGx5IG5ndW9pIGRhbi4gDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL0FuLW5pbmgtUGhhcC1sdWF0L1BoYS1kb25nLW1haS1kYW0tbG9uLW8tSGEtVGF5LzMw MTQ4NjgyLzIxOC8gVGh1IGJhLCAyNCBUaGFuZyBtdW9pIDIwMDYsIDIwOjEwIEdNVCs3IA0KDQpE b25nIG1haSBkYW0gbG9uIG8gSGEgVGF5IHRhaSBuaGEgbmdoaSBQaHVvbmcgTmFtIG8gdGhvbiBQ aHVjIFRpZW4sIHhhIEJpZW4gR2lhbmcsIHRoaSB4YSBIYSBEb25nDQoNCmh0dHA6Ly93d3cuY2hv YmluaHRheS5nb3Yudm4vTmV3c0RldGFpbC5hc3B4P2lkPTE3OTINCg0KSGEgTm9pOiBIb24gNjAg byBtYWkgZGFtIG8gSGEgTm9pIA0KDQpLZSB0dSBraGkgdGllcCBxdWFuIGRpYSBiYW4gdGluaCBI YSBUYXkgY3UsIGhhbmcgbG9hdCB0dSBkaWVtIG1haSBkYW0gdHJhIGhpbmggdHJvbmcgDQpjYWMg cXVhbiBjYSBwaGUsIGthcmFva2UgdGFpIGRheSBkYSBsaWVuIHRpZXAgYmkgbG8gcmEgDQoNClRy dW9jIGRvLCBtb3QgZHVvbmcgZGF5IGdhaSBnb2kga2hhYywgdm9pIHN1IHRoYW0gZ2lhIGN1YSBz aW5oIHZpZW4gZGFpIGhvYywgY2FvIGRhbmcgDQpjbyBjaGlldSBjYW8gbHkgdHVvbmcgY3VuZyBi aSBsbyB0YXkuIEdpYSBtb3QgbGFuIGJhbiBkYW0gY3VhIGNhYyBjbyBnYWkgImNoYW4gZGFpIiBu YXkgbGEgMjAwIFVTRC4gIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vdHJhbmdfdHJvbl94YXVf eGUlMkNfbGFuX2NoaWVtX2RhbV9ob25nLTEtMjE1MTI1MzMuaHRtbA0KDQpIYSBOb2k6IFRyYW5n IHRyb24geGF1IHhlLCBsYW4gY2hpZW0gRGFtIEhvbmcNCg0KaHR0cDovL3d3dy50aW4yNDcuY29t L2RhaV9jb25nX3RydW9uZ19idWNfdHVfbGFfcGhvaV9naXVhX3RodV9kby0xMi0yMTUxMzIyOC5o dG1sDQoNCidEYWkgY29uZyB0cnVvbmcnIGJ1YyB0dSBsYSBwaG9pIGdpdWEgVGh1IGRvDQoNCmh0 dHA6Ly93d3cubGFvZG9uZy5jb20udm4vSG9tZS9Tby1ZLXRlLUhhLU5vaS1raG9uZy10dWFuLWxl bmgtY2FwLXRyZW4vMjAwOTEyLzE2NjQzOS5sYW9kb25nICBDYXAgbmhhdDogODo0MiBBTSwgMDkv MTIvMjAwOQ0KDQpTbyBZIHRlIEhhIE5vaSBraG9uZyB0dWFuIGxlbmggY2FwIHRyZW4gDQoNCmh0 dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDYvVGhhaS1uaGktY2hldC1raG9uZy1y by1uZ3V5ZW4tbmhhbi10YWktQlYtUGh1LXNhbi1ITi05MTY5MTcvIDE3OjE4LCAxOC8wNi8yMDEw IChHTVQrNykNCg0KSGEgTm9pOiBUaGFpIG5oaSBjaGV0IGtob25nIHJvIG5ndXllbiBuaGFuIHRh aSBCViBQaHUgc2FuIEhODQoNCk5oYXAgQmVuaCB2aWVuIFBodSBzYW4gSGEgTm9pIGRlIGNobyBz aW5oLCBuaHVuZyBkbyBraG9uZyBkdW9jIHRoZW8gZG9pIGNodSBkYW8sIA0KdGhhaSBuaGkgZGEg Y2hldCBsdXUgbmdheSB0cm9uZyBidW5nIG1lLiBTdSB2aWVjIHZ1YSB4YXkgcmEgdGFpIEJlbmgg dmllbiBQaHUgc2FuIEhhIE5vaSANCg0KaHR0cDovL3d3dy5kb2lzb25ncGhhcGx1YXQuY29tLnZu L3ByaW50Q29udGVudC5hc3B4P0lEPTM2OTggIDEzLzA0LzIwMTAgLSAxMTo0MyBBTQ0KIA0KSGEg Tm9pOiB4dWF0IGhpZW4gbWF0IGhhbmcgY2EgbXVjIGNhbyBzdSAtIG5naGkgdmFuIHZlIGNoYXQg bGFtICJtdWMgY2FvIHN1IiANCg0KaHR0cDovL2JlZS5uZXQudm4vY2hhbm5lbC8xOTg3LzIwMTAw Mi9Db25nLWFuLWd1aS1jb25nLXZhbi12b2ktdGllbi1UZXQtZG9hbmgtbmdoaWVwLTE3NDIwODEv IDI0LzAyLzIwMTAgMTE6MzE6MTAgIFRydWMgTGFtDQoNCkhhIE5vaTogQ29uZyBhbiBndWkgY29u ZyB2YW4gInZvaSIgdGllbiBUZXQgZG9hbmggbmdoaWVwIA0KDQpDaGkgc2F0IFRldCBDYW5oIERh biB2YWkgbmdheSwgbW90IGRvYW5oIG5naGllcCB0cmVuIGRpYSBiYW4gcGh1b25nIFBodW9uZyBM aWV0LCBIYSBOb2kgbmhhbiBkdW9jIGNvbmcgdmFuIGN1YSBjb25nIGFuIHBodW9uZyAiaG9pIiB0 aWVuIFRldC4gDQoNCkN1b2kgdG8gY29uZyB2YW4gZGFjIGJpZXQgbmF5IGNvIGRvbmcgZ2hpIGNo dTogS2luaCBwaGkgY2FjIGRvbmcgY2hpIGhvIHRybyBjaHV5ZW4gY2hvIGRvbmcgY2hpIFRyYW4g SG9hIE4uIC0gQ1NLViBuaGFuIGRlIG5vcCB2ZSBjb25nIGFuIHBodW9uZy4gDQoNCmh0dHA6Ly93 d3cudmlldG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDgvQm8tQ2hpbmgtdHJpLWRvbmctdGluaC1w aHVvbmctYW4tbmhhbi1zdS1jdWEtSGEtTm9pLTkzMjE3OS8gVFRYVk4gIDIzOjIzLCAyNy8wOC8y MDEwIChHTVQrNykgDQoNCkhhIE5vaToNCg0KLSBLaG9hbmcgY2FjaCBnaWF1IG5naGVvIGdpdWEg dGhhbmggdGhpIHZhIG5vbmcgdGhvbiBjb24gbG9uLiANCg0KLSBWYWkgdHJvIGhhdCBuaGFuIGxh bmggZGFvIGNoaW5oIHRyaSBvIG1vdCBzbyB0byBjaHVjIGNvIHNvIERhbmcsIG5oYXQgbGEgY2Fw IHhhLCBwaHVvbmcgY29uIHRoYXA7DQoNCmh0dHA6Ly93d3cuZ2FueGEuY29tL05ld3MvRGV0YWls TmV3cy5waHA/SUROZXdzPTIxMzQNCg0KSGEgbm9pOiAnUXVhbicgeGEgaGF1IHRvYSB2aSBzYWkg cGhhbSB2YW4gdW5nIGR1bmcgdGFpIHZpDQoNClJhdCBuaGlldSBjYWkgdGVuIGNvdCBjYW4gdHJv bmcgYm8gbWF5IGNoaW5oIHF1eWVuIHhhIEhhdCBNb24gZGEgZHVvYyBuZXUgdGVuIHRyb25nIGNh YyB2YW4gYmFuIHZvaSBuaHVuZyBzYWkgcGhhbSBjdSB0aGUuIFR1eSB2YXksIGRpZXUgdHJlbyBu Z29lIGtoaWVuIG5ndW9pIGRhbiAiZG8ga2hvYyBkbyBjdW9pIiBsYSBoaWVuIHRhaSBvIEhhdCBN b24sIG5odW5nIHZpIGRvIG5ldSBkYSBoZXQgbmhpZW0ga3kgdGhpIGR1b2MgImhhIGNhbmgiIHZl IGh1dSBhbiB0b2FuLCBuaHVuZyB2aSBjb24gdGFpIHZpIHRoaSBiaSBreSBsdWF0Li4uIGJhbmcg Y2FjaCBsZW4gY2h1YyBjYW8gaG9uLg0KDQpodHRwOi8vY2EuY2FuZC5jb20udm4vdmktVk4vYmFu ZG9jdmFDQU5EL0RUdGhlb3lldWNhdS8yMDA4LzQvMTU4NzIwLmNhbmQgMTA6MDEsIDI3LzAxLzIw MTANCg0KSHV5ZW4gVGhhY2ggVGhhdCwgSGEgTm9pOiBOaGlldSBzYWkgcGhhbSB0cm9uZyB2aWVj IGNhcCBkYXQgZ2lhbiBkYW4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4vYmFuZG9jdmlldC90aGVv ZGF1dGh1LzIwMDkxMS9Eb25nLXJ1b25nLWtoYXQtY2hheS1kYW4tdmFuLXBoYWktZG9uZy10aHV5 LWxvaS1waGktODgwNDkwLyAwOTowNywgVGh1IEJhLCAyNC8xMS8yMDA5IChHTVQrNykNCg0KSGEg bm9pOiBEb25nIHJ1b25nIGtoYXQgY2hheSwgZGFuIHZhbiBwaGFpIGRvbmcgdGh1eSBsb2kgcGhp DQoNCk5nb2FpIHZpZWMgInJ1dCBydW90IiBjb25nIHRyaW5oIHhheSBkdW5nIGtlbmggbXVvbmcs IG5ndW9pIGRhbiBvIHhhIEhhdCBNb24gKGh1eWVuIFBodWMgVGhvLCBIYSBOb2kpIGNvbiB0byBs YW5oIGRhbyB4YSBkYSB0aHUgdHJhaSBwaGVwIGhhbmcgdHJhbSB0cmlldSBkb25nIHRpZW4gdGh1 eSBsb2kgcGhpLiANCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvMjAxMDA2L0RpLXRpbS10 aHUtcGhhbS1odW4tbm9pLXRoYW5oLUhhLU5vaS12YW8tYmFuLWRlbS05MTY1NjMvIDA3OjI5LCBU aHUgTmFtLCAxNy8wNi8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBraHUgdnVjIG5vaSB0aGFuaCBi aSBiYW8gcGh1IGJvaSBtb3QgbWFuIGtob2kgbmdvdCBuZ2F0DQoNCk5odW5nIG5nYXkgbmF5LCBi YW4gbmdheSBuZ3VvaSBIYSBOb2kgZGEgaG9jIGhhYyB2aSBkb3QgbmFuZyBub25nIGNhbyBkaWVt LCBkZW4gYnVvaSB0b2kgbGFpIHRpZXAgdHVjIHBoYWkgY2hpdSBkdW5nIG1hbiBraG9pIGRvdCBk b25nIG5nb3QgbmdhdCBiYW8gcGh1DQogDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEw LTA2LTA5LXF1eS1ob2FjaC1oYS1ub2ktZGUtaGllbi10YWktbGEtbGFtLWtoby10dW9uZy1sYWkg VGFjIGdpYTogSGEgVGh1eSAxMS8wNi8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5vaTogUXV5IGhv YWNoIEhhIE5vaSAtIERlIGhpZW4gdGFpIGxhIGxhbSBraG8gdHVvbmcgbGFpDQoNCmh0dHA6Ly93 d3cudGlubW9pLnZuL0RCUUgtcGhhbi1kb2ktdHJ1Yy1UaGFuZy1Mb25nLXRydW5nLXRhbS1oYW5o LWNoaW5oLUJhLVZpLTA2MTY2Mjg1Lmh0bWw6IDA5OjQzIG5nYXkgMDMvMDYvMjAxMA0KDQpIYSBO b2k6IERCUUggcGhhbiBkb2kgdHJ1YyBUaGFuZyBMb25nLCB0cnVuZyB0YW0gaGFuaCBjaGluaCBC YSBWaQ0KDQpodHRwOi8vd3d3LnR1YW52aWV0bmFtLm5ldC8yMDEwLTA1LTIxLXRoYXktbmh1bmct dG9uLXRhaSAzMS8wNS8yMDEwIDA2OjAwIEdNVCs3DQoNCkhhIE5vaTogVGFjIGdpYSBIYSBUaHV5 IG5ldSBybyA5IHBoaSBseSB0cm9uZyBxdXkgaG9hY2ggSGEgTm9pIA0KDQpodHRwOi8vd3d3LnRp bm1vaS52bi9EQlFILXBoYW4tZG9pLXRydWMtVGhhbmctTG9uZy10cnVuZy10YW0taGFuaC1jaGlu aC1CYS1WaS0wNjE2NjI4NS5odG1sDQoNClF1aSBob2FjaCBIYSBOb2k6IFZpZWMgY2hpYSB0YWNo IHRydW5nIHRhbSBoYW5oIGNoaW5oIHZvaSB0cnVuZyB0YW0gY2hpbmggdHJpIGxhIGtob25nIHRo dWMgdGUuDQoNCkRvIGN1bmcgbGEgY2FjaCB0YW8gY28gY2hvIGtlIGRhdSBjbyB0YW5nIGdpYSBk YXQgZGFpLiBOaGlldSBxdWFuIGNodWMgY28gdHJhbmcgdHJhaSANCmxvbiBvIEJhIFZpLCBtdW9u IGNvIGRlIGFuIG5heSBkZSBkYXkgZ2lhIGxlbiwgYmFuIGRpIG9tIHRpZW4gdmFvIHR1aSANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDM1LzIwMTAwODIzMDEy MzI2LmFzcHggVmlldCBDaGllbiAyMy8wOC8yMDEwIDE6MjMgDQoNCkhhIE5vaTogIlJvaSIgdm9p IHF1eSBob2FjaCBIYSBOb2kgIA0KDQotIDIgdGhhbmcsIDIgcXVhbiBkaWVtIG5ndW9jIG5oYXU6 IGNoaSB0cm9uZyB2b25nIDIgdGhhbmcsIGxhbmggZGFvIFRQIEhhIE5vaSBkdWEgcmEgMiANCnF1 YW4gZGllbSBob2FuIHRvYW4gdHJhaSBuZ3VvYyBuaGF1IGRldSB2ZSBtb3Qgbm9pIGR1bmcgbGEg cXV5IGhvYWNoIGtodSBoYW5oIGNoaW5oLCANCnRydSBzbyBoYW5oIGNoaW5oIHZhIHZpZWMgeGF5 IGR1bmcgdHJ1YyBUaGFuZyBMb25nIGxpZW4gcXVhbiB0b2kgZG8gYW4gcXV5IGhvYWNoIHZ1bmcg DQp0aHUgZG8gSGEgTm9pLg0KDQotIFR5IGxlIGRhdCBkYW5oIGNobyBnaWFvIHRob25nIGN1YSBI YSBOb2kgY29uIHJhdCB0aGFwIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vaGFfbm9pX2dpZXRf bmd1b2lfZ2l1YV9waG9fdmlfdmFfY2hhbV9naWFvX3Rob25nLTEtMjE2MjE2NDAuaHRtbCAgMjAv MDcvMjAxMCAtIDIxOjIwDQoNCkhhIE5vaTogR2lldCBuZ3VvaSBnaXVhIHBobyB2aSB2YSBjaGFt IGdpYW8gdGhvbmcgliBuYW4gbmhhbiBiaSBodW5nIHRodSBkdW5nIGRhbyBuaG9uIGRhbSAyIHBo YXQgdmFvIG5ndWMgcm9pIGJvIGNoYXkgDQoNCmh0dHA6Ly93d3cudGluMjQ3LmNvbS9oYV9ub2lf YmF0X21vdF9jYW5fYm9fdGh1ZV9uaGFuX2hvaV9sb182MF90cmlldV9kb25nLTYtMjEzNjc4MzQu aHRtbCBQTCB2bk1lZGlhLnZuIDEwLzAxLzIwMDkgLSAwOTowNCANCg0KSGEgTm9pOiBDYW4gYm8g dGh1ZSBuaGFuIGhvaSBsbyA2MCB0cmlldSBkb25nIA0KDQpodHRwOi8vbmV3cy5zb2NiYXkuY29t L3RhbmdfY3VvbmdfdHJhb19kb2lfa2luaF9uZ2hpZW1fcXVhbl9seV9iYW9fY2hpX3ZpZXRfbmFt X3RydW5nX3F1b2MtNjAxNTU4NzgzLTE2Nzc3MjE2Lmh0bWwgbGFvZG9uZy5jb20udm4gLSAxNjow NiAxNi0wMy0yMDA3IA0KDQpIYSBOb2k6IE9uZyBQaHVuZyBIdXUgUGh1IC0gbmd1eWVuIHBobyBi aSB0aHUgdGhhbmggdXkgSGEgTm9pOiBUYW5nIGN1b25nIHRyYW8gZG9pIGtpbmggbmdoaWVtIHF1 YW4gbHkgYmFvIGNoaSBWaWV0IE5hbSAtIFRydW5nIFF1b2MgDQoNCmh0dHA6Ly93d3cudGluMjQ3 LmNvbS9oYV9ub2lfYmF0X3F1YV90YW5nX2Nhbl9ib19kaWFfY2hpbmhfbmhhbl9sb3RfdGF5XzIw X3RyaWV1X2RvbmctNi0yMTMzODQ1Mi5odG1sIHZuTWVkaWEudm4gMDkvMTIvMjAwNiAtIDE2OjQ1 ICANCg0KSGEgTm9pOiBDYW4gYm8gZGlhIGNoaW5oIG5oYW4gbG90IHRheSAyMCB0cmlldSBkb25n IA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vaGFfbm9pX2JhdF9xdWFfdGFuZ19tb3RfdGhhbV9w aGFuX3F1YW5fbmhhbl9ob2lfbG8tNi0zMjgyMi5odG1sIENBTkQuY29tLnZuIDE4LzA2LzIwMDgg LSAwMDoyNA0KDQpIYSBOb2k6IFRoYW0gcGhhbiB0b2EgYW4gcXVhbiBuaGFuIGhvaSBsbyA3MCB0 cmlldSBkb25nIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDgvTmd1b2ktY2hh LW1hdC1uaGFuLXRpbmgtaGFpLWRvaS1jb24tZ2FpLTE0LXR1b2ktOTI3ODYzLyBOLlQgMTg6MDYs IDA5LzA4LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IENoYSBkZSBoYWkgZG9pIGNvbiBnYWkgMTQg dHVvaSANCg0KaHR0cDovL3d3dy50aHV2aWVucGhhcGx1YXQudm4vRGVmYXVsdC5hc3B4P0NUPU5X Jk5JRD00NTQ3IDI1LzEwLzIwMDcNCg0KSGEgTm9pOiA0IGdpYW0gZG9jIGNoaSBuaGFuaCBDb25n IHR5IGxhbSBzYW4gSGEgTm9pICJ0aGFtIG8gdGFpIHNhbiIsIA0KImNvIHkgbGFtIHRyYWkiLCAi dGhpZXUgdGluaCB0aGFuIHRyYWNoIG5oaWVtIGdheSBoYXUgcXVhIG5naGllbSB0cm9uZyIgDQpn YXkgdGhhdCB0aG9hdCBob24gOCB0eSBkb25nIHZhIGNoaWVtIGRvYXQgY2hpZW0gZG9hdCAzLDYg dHkgZG9uZyANCg0KaHR0cDovL3F1eW1vaXRydW9uZ2hhbm9pLnZuL2NvbnRlbnQzODMudm5kYyAw My4xMi4yMDA5IDA5OjQwDQoNCkhhIE5vaTogVnVuZyBvIG5oaWVtICJ0b2FuIHRhcCIgbyBIYSBO b2kgDQoNCk51b2MgeGEgcGhvbmcgY3VhIEN0eSBib3QgZ2lhdCBOZXQgdHJhbiB2YW8gbmhhIGRh bi4NCg0KSGFuZyBuZ2hpbiBobyBkYW4gaGFuZyBuZ2F5IGR1bmcgbnVvYyBnaWVuZyBraG9hbiBj YW5oIGNhIHZhbiBuZ29pIG1vIGN1YSBuZ2hpYSB0cmFuZyBWYW4gRGllbiwgaGl0IHRobyBraG9p IGJ1aSB0dSBoYW5nIGNodWMgY28gc28gc2FuIHh1YXQgY29uZyBuZ2hpZXAgbG9uIHZhIGxvIGhv YSB0aGlldSBjdWEgbmdoaWEgdHJhbmcgbmF5LiANCg0KTnVvYyBnaWVuZyBraG9hbjogVnVhIGR1 bmcgdnVhLi4uIHJ1biEgDQoNClRobyBjdW5nIHBoYWkuLi4gZSBkZSANCg0KaHR0cDovL3d3dy52 aWV0bmFtcGx1cy52bi9Ib21lL1lldS1jYXUtSGEtTm9pLWNoaS1kYW8tZHVuZy1waGEtbmhhLWJp ZXQtdGh1LWN1LzIwMDkxMi8yNzc1Mi52bnBsdXMgMTYvMTIvMjAwOSB8IDE2OjM4OjAwIA0KDQpZ ZXUgY2F1IEhhIE5vaSBjaGkgZGFvIGR1bmcgcGhhIG5oYSBiaWV0IHRodSBjdSANCg0KaHR0cDov L3d3dy52aWV0bmFtbmV0LnZuL2JhbmRvY3ZpZXQvdGhlb2RhdXRodS8yMDEwMDEvTnVvYy1tYXQt bmd1b2ktZ2lhLWNvbmctbHVuZy10cmVuLW5odW5nLXJ1b25nLXJhdS04OTIwNzgvIDA3OjExLCBU aHUgU2F1LCAyOS8wMS8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBOdW9jIG1hdCBuZ3VvaSBnaWEg Y29uZyBsdW5nIHRyZW4gbmh1bmcgcnVvbmcgcmF1DQoNCk5ndW9pIGRhbiBCYW5nIEIgKEhvYW5n IExpZXQsIEhvYW5nIE1haSwgSGEgTm9pKSBtdW9uIGR1b2MgY2FwIGNvIHRoYW0gcXV5ZW4gZ2lh aSB0aGljaCwgdmkgc2FvIHRyb25nIFFEIDM3ODkgY3VhIHRoYW5oIHBobyBraG9uZyBjbyBkaWEg ZGFuaCBsYW5nIGN1YSBobyBuaHVuZyBjaGluaCBxdXllbiBjYWMgY2FwIHZhbiB0aHUgaG9pPw0K DQpodHRwOi8vd3d3LnBoYXBsdWF0dHAudm4vMjAwOTEyMjAxMjAzNTgxNHAxMDE1YzEwNzMvaGEt bm9pLWNoYXktbG9uLXRhaS1raG8taGFuZy10ZXQuaHRtDQoNCkhhIE5vaTogQ2hheSBsb24gdGFp IGtobyBoYW5nIHRldCAoMTktMTIpDQoNCmh0dHA6Ly9kYW50cmkuY29tLnZuL2MyMC9zMjAtMzc1 MDIzL2NheS1kby1kZS1uYXQtMi14ZS1tYXktdHJlbi1waG8taGFuZy1iYWkuaHRtIFRodSBCYXks IDIzLzAxLzIwMTAgLSAxODo0OQ0KDQpIYSBOb2k6IENheSBkbyBkZSBuYXQgMiB4ZSBtYXkgdHJl biBwaG8gSGFuZyBCYWkgKGtob2FuZyAxNWg0MCBuZ2F5IDIzLzEpDQoNCmh0dHA6Ly92aWV0bmFt bmV0LnZuL3hhaG9pLzIwMDkxMi9MYWktdGhlbS1tb3QtaG8tbnVvYy10YWktSGEtTm9pLWJpLWJ1 Yy10dS04ODY2MTAvIDE1OjMwLCBUaHUgSGFpLCAyOC8xMi8yMDA5IChHTVQrNykNCg0KSGEgTm9p OiBMYWkgdGhlbSBtb3QgaG8gbnVvYyB0YWkgSGEgTm9pIGJpIGJ1YyB0dSAtIENodW9pIGhvIFBo dW5nIEtob2FuZw0KDQpDaHVvaSBobyBQaHVuZyBLaG9hbmcgdm9uIGR1b2MgY29pIGxhIGxhIHBo b2kgeGFuaCwgZGlldSBob2Ega2hvbmcga2hpIGNobyBjYSBraHUgdnVjIHhhIFRydW5nIFZhbiwg aHV5ZW4gVHUgTGllbSwgSGEgTm9pLiBUaGUgbmh1bmcsIGRhdSBuYW0gMjAwNywgc28gcGhhbiBr aHUgaG8gbmF5IGRhIGR1b2MgZGluaCBkb2F0IGJvaSBxdXlldCBkaW5oIHNvIDE4LzIwMDcvUUQg LSBVQk5EIGN1YSBVQk5EIFRoYW5oIHBobyBIYSBOb2kgdmUgdmllYyBwaGUgZHV5ZXQgY2hpIHRp ZXQga2h1IGRvIHRoaSBtb2kgUGh1bmcgS2hvYW5nLiBUaGVvIGRvLCBkaWVuIHRpY2ggaG8gc2Ug YmkgdGh1IGhlcCBsYWkgY2hpIGNvbiAxLzMgc28gdm9pIGRpZW4gdGljaCBobyBjdS4gRGlldSBk YW5nIG5vaSBsYSwgdHUgbGFuaCBkYW8gZGVuIG5odW5nIG5ndW9pIGRhbiB4YSBUcnVuZyBWYW4g ZGV1IGtob25nIGRvbmcgdGluaCB2b2kgcGh1b25nIGFuIHhlIHRoaXQga2h1IGhvIHF1eSBnaWEg bmF5Lg0KDQpodHRwOi8vdmlldG5hbW5ldC52bi94YWhvaS9kb3RoaS8yMDA1LzEyLzUyMjA3Ni8g MTU6MjAsIDEzLzEyLzIwMDUgKEdNVCs3KQ0KDQpIYSBOb2k6IEtpbmggaG9hbmcgbnVvYyBzb25n LCBobyBIYSBOb2kNCg0KSG9uIDkwJSBsdW9uZyBudW9jIHRoYWkgY2h1YSBxdWEgeHUgbHkgZGFu ZyBjaGF5IHRoYW5nIHh1b25nIGNhYyBzb25nLCBobyBjdWEgSGEgTm9pLiANCg0KU29uZyBUbyBM aWNoLCBzb25nIFNldCwgc29uZyBMdSB2YSBzb25nIEtpbSBOZ3V1IGRhYyBtb3QgbWF1IGRlbiB2 YSBuZ2F5IGNhbmcgYm9jIG11aS4NCg0KaHR0cDovL3ZpZXRuYW1uZXQudm4veGFob2kvZG90aGkv MjAwNS8xMi81MjIwNzYvIDE1OjIwLCAxMy8xMi8yMDA1IChHTVQrNykNCg0KSGEgTm9pOiBOdW9j IHRoYWkgdGhvIHhhIHRoYW5nIHZhbyBoZSB0aG9uZyB0aG9hdCBudW9jDQoNCkRvbmcgbnVvYyBj dWEgY2FjIGNvbiBzb25nIEhhIE5vaSBkZXUgY2h1bmcgMSBtYXUgZGVuLiANCg0KRHUgYW4ga2Ug aGFpIGJlbiBibyBzb25nIFRvIExpY2ggZHVvYyBkYXUgdHUgdGllbiB0eSB2YSB0cmllbiBraGFp IHhvbmcgY2FjaCBkYXkga2hvbmcgbGF1IG5odW5nIG5ndW9pIGRhbiB2YW4gcGhhaSBjaGl1IGR1 bmcgbXVpIG8gbmhpZW0uDQoNCmh0dHA6Ly93d3cudm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQv MjAwOC8xMi8zQkEwOUE3Ri8gQ2h1IG5oYXQsIDIxLzEyLzIwMDgsIDA5OjU4IEdNVCs3DQoNCkhh IE5vaTogVHJvbSBjYXAgaGFuaCBob2FuaCBvIGNobyBEb25nIFh1YW4gDQoNCmh0dHA6Ly92aWV0 YmFvLnZuL1hhLWhvaS9OaGFuLXZpZW4tdGh1LXRpZW4tZGllbi1kb2EtZGFuaC1raGFjaC1oYW5n LzIwNjg1NDU5LzE1Ny8gVGh1IGhhaSwgMTYgVGhhbmcgdHUgMjAwNywgMTc6MTAgR01UKzcgDQoN CkhhIE5vaTogTmhhbiB2aWVuIHRodSB0aWVuIGRpZW4gZG9hIGRhbmgga2hhY2ggaGFuZyANCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDMxLzIwMTAwODAxMDEz MzAxLmFzcHggMDEvMDgvMjAxMCAxOjMzDQoNCkhhIE5vaTogQ2F5IHhhbmcgbGFwIGRhdCBjaGlw IGRpZW4gdHUgbHVhIGRhbyBraGFjaCBoYW5nIC0gTW9pIGxpdCB4YW5nLCBuZ3VvaSB0aWV1IGR1 bmcgYmkgIm1vYyB0dWkiIDExOTkgZG9uZyANCg0KaHR0cDovL3d3dy50b3F1b2MuZ292LnZuL1Ro b25ndGluL0dpby1UaHUtMjUvNjItNzUtUXVhbi1PLUNodWEtSHVvbmdtYXQtVmUtU2luaC5odG1s IDdoOjM4JyAtIDcvMi8yMDA5DQoNCkhhIE5vaTogNjIvNzUgcXVhbiBvIGNodWEgSHVvbmcuLi5t YXQgdmUgc2luaCEgDQoNCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL1BoYS1vLWluLWxhdS1z YWNoLWxvbi1vLUhhLU5vaS81OC8zMjI3NjI2LmVwaSBCYW8gRGF0IFZpZXQNCg0KSGEgTm9pOiAn TycgaW4gbGF1IHNhY2ggbG9uIG8gSGEgTm9pIA0KDQpMdWMgbHVvbmcgY2h1YyBuYW5nIHBoYXQg aGllbiB2YSB0aHUgZ2l1IHNvIHNhY2ggbGF1IGdvbSBnYW4gOS4wMDAgY3VvbiB0aGFuaCBwaGFt LCBob24gMi4wMDAga2cgYmFuIHRoYW5oIHBoYW0gKGRhIGluIG5odW5nIGNodWEgZG9uZyBxdXll bikuIA0KDQpodHRwOi8vd3d3LnRodXZpZW5waGFwbHVhdC52bi9EZWZhdWx0LmFzcHg/Q1Q9Tlcm TklEPTY1MzkgMDgvMDEvMjAwOA0KDQpUdSBkdW9uZyBkYXkgY2EgZG8gYm9uZyBkYSBwaGF0IGhp ZW46IENhbiBibyBuZ2FuIGhhbmcgdGhhbSBvIGhhbmcgY2h1YyB0eSBkb25nIC0gYmF0IGtoYW4g Y2FwIHRvIHRydW9uZyB0byBrZSB0b2FuIHRodW9jIENoaSBuaGFuaCBOZ2FuIGhhbmcgTk4mUFRO VCAtIFNhaSBEb25nLCBHaWEgTGFtLCBIYSBOb2kNCg0KaHR0cDovL3BoYXBsdWF0dHAudm4vMjE3 NjkxcDEwMTVjMTA3NC9oYS1ub2ktY2hheS1uaGEtc2F0LWNoby1kb25nLXh1YW4tbmd1b2ktZGFu LWhvYW5nLWxvYW4uaHRtIDA0LzA2LzIwMDggLSAxMjozMSBBTQ0KDQpIYSBOb2k6IENoYXkgbmhh IHNhdCBjaG8gRG9uZyBYdWFuLCBuZ3VvaSBkYW4gaG9hbmcgbG9hbg0KDQpodHRwOi8vZ2lhZGlu aC5uZXQudm4vMjAwOTExMTgwMjAwMTY2NjBwMGMxMDA1L3ZvLW11YS14ZS1kaS10aHUtcGhvbmct bWF0Lmh0bSAxOC8xMS8yMDA5LCAxNDoyOShHTVQrNykNCg0KSEEgTm9pOiBWbyBtdWEgeGUsIGRp IHRodSwgcGhvbmcgbWF0IA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAxMDA4 L1Z1LW5vLWx1dS1kYW4tby1DQS1waHVvbmctVGhlbS1tb3Qtbmd1b2ktdHUtdm9uZy05MzIzNzcv IDIzOjMzLCAyOC8wOC8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBObyBsdXUgZGFuIG8gQ0EgcGh1 b25nOiAxIGNhbmggc2F0LCAxIFBobyBiYW4gYmFvIHZlIGRhbiBwaG8gdHUgdm9uZw0KDQpodHRw Oi8vd3d3LnZuZXhwcmVzcy5uZXQvR0wvQmFuLWRvYy12aWV0L1hhLWhvaS8yMDEwLzA3LzNCQTFF M0YzLyAyMC83LzIwMTAsIDA3OjA3IEdNVCs3DQoNCkhhIE5vaTogQ3VvcCBuZ2F5IGhvYW5oIGhh bmggbyBiZW4geGUgYnV5dCBnaXVhIHRodSBkbyANCg0KaHR0cDovL3d3dy5xZG5kLnZuL1FETkRT aXRlL3ZpLVZOLzYxLzQzLzQvNDIvNDIvMTIyMjMyL0RlZmF1bHQuYXNweCBOZ3V5ZW4gQW5oIDI4 LzA4LzIwMTAsIDIxOjM4IChHTVQrNykgDQoNCkhhIE5vaTogVGhlbSAxIHZ1IGdpZXQgbmd1b2kg YmkgaGllbSCWIE5oYW4gdmllbiBraGFjaCBzYW4gU2hlcmF0b24gYmkgc2F0IGhhaSANCg0KTmFu IG5oYW4gbGEgYW5oIE5ndXllbiBRdW9jIERhdCwgc2luaCBuYW0gMTk4NCwgdGFtIHRydSB0YWkg eG9tIDE2LCB4YSBDbyBOaHVlLCANCmh1eWVuIFR1IExpZW0sIGxhIG5oYW4gdmllbiBraGFjaCBz YW4gU2hlcmF0b24gSGEgTm9pLiANCg0KS2hvYW5nIDE4IGdpbyBuZ2F5IDI3LTgsIGFuaCBEYXQg ZGkgdHUgbm9pIGxhbSB2aWVjIHZlIG5oYSB0cm8sIGRlbiB4b20gMTIgDQpDbyBOaHVlLCBhbmgg RGF0IHZhbyBjdWEgaGFuZyBjaG8gdGh1ZSB0cnV5ZW4gdmEgYmFuZyBkaWEuIEx1YyBkbywgbW90 IG5hbSANCnRoYW5oIG5pZW4gdHUgbmdvYWkgZGkgdmFvLCBzYXUga2hpIHRyYW8gZG9pIHZhaSBj YXUgdm9pIGFuaCBEYXQsIG5ndW9pIHRoYW5oIA0KbmllbiBuYXkgYmF0IG5nbyBydXQgZGFvIGRh bSAyIG5oYXQgdmFvIGNvIHZhIHN1b24gYW5oIERhdCByb2kgYm8gY2hheS4gQW5oIA0KRGF0IGR1 b2MgZHVhIHZhbyBiZW5oIHZpZW4gRSBjYXAgY3V1LCBuaHVuZyBkbyB2ZXQgdGh1b25nIHF1YSBu YW5nIG5lbiBkYSB0dSB2b25nIGx1YyAyMCBnaW8gY3VuZyBuZ2F5LiAgDQoNCmh0dHA6Ly93d3cu eW91dHViZS5jb20vd2F0Y2g/dj1JX0dSSFQ4NjBwUSAxLzIvMjAwNyANCg0KSGEgTm9pOiBUaGFt IG5odW5nLCB0aWV1IGN1YyB0cm9uZyBHUE1CIGR1b25nIFZhbmggZGFpIDMgKGxhcCBobyBzbyBh byBkZSBydXQgdGllbiBkZW4gYnUpLg0KDQpodHRwOi8vZGFudHJpLmNvbS52bi9jMjUvczIwLTQw NjM4My9oYS1ub2ktc2FwLWNhdS14YXktZHVuZy0yLW5ndW9pLWNoZXQtdGFpLWNoby5odG0gMDIv MDcvMjAxMCAtIDE2OjM4IA0KDQpIYSBOb2k6IFNhcCBjYXUgeGF5IGR1bmcsIDIgbmd1b2kgY2hl dCB0YWkgY2hvIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4vdGlubmhhbmgvMjAxMDEwL2Rh dS1sb25nLTEtcGh1LW51LWNoZXQtY2hheS10cm9uZy10aHVuZy10b24tOTM4Njg0LyAoVGhlbyBW VEMpIDA4OjQ0LCAwMS8xMC8yMDEwIChHTVQrNykgDQoNCkhhIE5vaTogMSBwaHUgbnUgY2hldCBj aGF5IHRyb25nIHRodW5nIHRvbiAoMjkvOSkgIA0KDQpodHRwOi8vd3d3LnRpbjI0Ny5jb20vaGFf bm9pX3BoYXRfaGllbl8yX25ndW9pX2NoZXRfdHJvbmdfb190b19uZ2FwX251b2MtMS0yMTMyNzgw Mi5odG1sIFZpZXROYW1OZXQudm4gMDEvMTEvMjAwOCAtIDE0OjQ5IA0KDQpIYSBOb2k6IDIgbmd1 b2kgY2hldCB0cm9uZyBvIHRvIG5nYXAgbnVvYyANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmll dG5hbWVzZS92aWV0bmFtLzIwMTAvMDMvMTAwMzMwX3BvbGljZV9kZWF0aHMuc2h0bWwgMDQ6MjUg R01UIDMwLzMvMjAxMCANCg0KSGEgTm9pOiBIYWkgbmd1b2kgY2hldCB0YWkgZG9uIGNvbmcgYW4g SE4gDQoNCkhhaSB2dSB4YXkgcmEgY2FjaCBuaGF1IGhhaSB0aGFuZywgY2EgaGFpIG5hbiBuaGFu IGRldSBiaSB0aHVvbmcgdGljaCB0cnVvYyBraGkgY2hldC4NCg0KVnUgZ2FuIGRheSBuaGF0IHhh eSByYSBob2kgdGhhbmcgMDEvMjAxMCBkYSBraGllbiBiYXkgY29uZyBhbiB2aWVuIGJpIHRhbSBk aW5oIGNoaSANCmNvbmcgdGFjIGRlIGRpZXUgdHJhLiANClRyb25nIHZ1IG5heSwgY29uZyBkYW4g KG5hbiBuaGFuKSBOZ3V5ZW4gUXVvYyBCYW8gKHRydSB0YWkgcGh1b25nIE1haSBEb25nLCBxdWFu DQpIb2FuZyBNYWkpIGJpIGNvbmcgYW4gdGFtIGdpdSBoYW5oIGNoaW5oIG5nYXkgMjEvMDEvMjAx MDsgcmFuZyBzYW5nIDIyLzAxIGR1b2MgZHVhIA0KZGkgY2FwIGN1dSBuaHVuZyBkYSB0dSB2b25n IHZpIGNoYW4gdGh1b25nIHNvIG5hbyB0cm9uZyBraGkgdGFtIGdpdSBvIGNvIHF1YW4gY29uZyBh bi4gDQpHaWFtIGRpbmggcGhhcCB5IGNobyB0aGF5IG5hbiBuaGFuIGJpIHZvIG5lbiBzbyB2YSBj aGFuIGRvbmcgbmFvLCBjdW5nIG5odSBiaSB0aHVvbmcgDQpvIGNvIHRheSB2YSBjbyBjaGFuIGNh IGhhaSBiZW4uIA0KDQpWdSB0cnVvYyBkbyB4YXkgcmEgaG9pIHRoYW5nIDExIG5hbSBuZ29haSwg bmFuIG5oYW4gbGEgY29uZyBkYW4gTmd1eWVuIE1hbmggSHVuZywgIA0KYmkgdGFtIGdpYW0gdGFp IGNvbmcgYW4gSGEgRG9uZy4gU2F1IG1vdCBob20gYmkgdGFtIGdpdSwgYW5oIEh1bmcgY3VuZyBk dW9jIG1hbmcgZGkgDQpjYXAgY3V1IG5odW5nIGRhIG5ndW5nIHRoby4gVHJlbiBjaGFuIGN1YSBh bmggTmd1eWVuIE1hbmggSHVuZyBraGkga2hhbSBuZ2hpZW0gdHUgDQp0aGkgbmd1b2kgdGEgdGhh eSBuaGlldSB2ZXQgYmFtIHRpbSwgcGh1IG5lLiANCg0KRGEgY28gbW90IHNvIHZ1IGNvbmcgYW4g ZGFuaCBuZ3VvaSwgaGF5IGxhbSBkdW5nIHF1eWVuIGhhbmggbm9pIGNvbmcgY29uZy4NCg0KaHR0 cDovL3Z0di52bi9BcnRpY2xlL0dldC84NDQ2OCANCg0KSGEgTm9pOiBCdW9uIG1hIHR1eSB2YSBu aGFuIGhvaSBsbyB0YWkgcGh1b25nIFRoYW5oIE5oYW4gDQogDQpEZSBtdWEgYmFuIG1hIHR1eSBh biB0b2FuLCBCdWkgVHJvbmcgQmF5IGRhIHF1YW4gaGUgdmEgbmhpZXUgbGFuIGR1YSB0aWVuIA0K aG9pIGxvIGNobyBjYW4gYm8gY29uZyBhbiBwaHUgdHJhY2ggZGlhIGJhbi4gDQoNCkhhbmggdmkg cGhhbSB0b2kgY3VhIGNhYyBiaSBjYW8gZGEgZ2F5IGhhdSBxdWEgZGFjIGJpZXQgbmdoaWVtIHRy b25nLCANCmFuaCBodW9uZyBkZW4gdHJhdCB0dSB0cmkgYW4gdmEgZ2F5IG5lbiBzdSBiYXQgYmlu aCB0cm9uZyBxdWFuIGNodW5nIG5oYW4gZGFuLiANCg0KaHR0cDovL2RhbnRyaS5jb20udm4vYzIw L3MyMC00MTAyNzQvaGEtbm9pLWNzZ3QtYmkteGUtdGFpLWtlby1sZS10cmVuLWR1b25nLmh0bSAy Mi8wNy8yMDEwIC0gMDE6MjYNCg0KSGEgTm9pOiBDU0dUIGJpIHhlIHRhaSBrZW8gbGUgdHJlbiBk dW9uZyANCg0KaHR0cDovL3d3dzYudm5tZWRpYS52bi9uZXdzZGV0YWlsLmFzcD9OZXdzSWQ9MTc1 MTA0JkNhdElkPTIzIDIzLzA5LzIwMDkNCg0KSGEgTm9pOiBTbyBuZ3VvaSBuZ2hpZW4gZHVuZyB0 aHUgMiB0b2FuIHF1b2MgKHNhdSB0aGFuaCBwaG8gSG8gQ2hpIE1pbmgpLg0KDQoyMiBuZ2hpbiBu Z3VvaSBuZ2hpZW4gbWEgdHV5IGNvIGhvIHNvIHF1YW4gbHkgdmEgY28gdHJlbiAxNyBuZ2hpbiBu Z3VvaSANCm5oaWVtIEhJVi9BSURTLCB0cm9uZyBkbyBjbyA1MC02MCUgbmd1b2kgbmhpZW0gSElW L0FJRFMgYmkgbmdoaWVuIG1hIHR1eS4NCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkxMTE4 MDEyMTI2OTYycDBjMTAwNS90cnVvdC1kZS1jb24tZG9hLWRvdC1uaGEtZG9pLXRpZW4uaHRtIDE4 LzExLzIwMDksIDEzOjIzKEdNVCs3KQ0KDQpIYSBOb2k6IFRydW90IHNvIGRlLCBkb2EgZG90IG5o YSBkb2kgdGllbiANCg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkwNTEyMDk1NzEwMjQ2cDBj MTAwNS90aHVhLWJhYy1kb2ktbGFpLXRpZW4tYmktZGFtLWNoZXQuaHRtIDEyLzA1LzIwMDksIDEz OjA3KEdNVCs3KQ0KDQpIYSBOb2k6IFRodWEgYmFjLCBkb2kgbGFpIHRpZW4sIGJpIGRhbSBjaGV0 IA0KDQpodHRwOi8vdGludHVjb25saW5lLnZpZXRuYW1uZXQudm4vdm4veGFob2kvNDIzMTU5L2lu ZGV4Lmh0bWwgMTgvMTIvMjAwOSAxNToyNiAoR01UICs3KQ0KDQpOb2kgYW0gYW5oIG1hbmcgdGVu IEtoYW5oICJ0cmFuZyINCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vVGlhbnlvbi9JbmRleC5h c3B4P0FydGljbGVJRD0xNjkwMzcmQ2hhbm5lbElEPTIgMTUvMDgvMjAwOSwgMDg6MzgNCg0KSGEg Tm9pOiBWdW9uIGRhbyBsdXUgbmllbiBsb24gbmhhdCBIYSBOb2kgYmkgYnVjIHR1DQoNCmh0dHA6 Ly93d3cudm5leHByZXNzLm5ldC9HTC9QaGFwLWx1YXQvMjAwOS8xMi8zQkExNkRERi8gVGh1IGJh eSwgMTkvMTIvMjAwOSwgMTA6NTYgR01UKzcNCg0KSGEgTm9pOiBEYW4gdHJhbiBiYW4gbmhhdSB0 cnVvYyBraHUgZG8gdGhpIENpcHV0cmEgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhv aS8yMDEwMDcvSGEtTm9pLU1vdC1jaHUtcXVhbi1waG8tYmktY3VhLWNvLWRlbi1jaGV0LTkyNTkz My8gMTI6NTcsIDMxLzA3LzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IE1vdCBjaHUgcXVhbiBwaG8g YmkgY3VhIGNvIGRlbiBjaGV0DQoNCmh0dHA6Ly9waGFwbHVhdHZpZXRuYW0udm4vY2hhbm5lbC80 NzU3LzIwMTAwNi9UbyVDMyVBMG4tY2FuaC12dS1OZ3V5ZW4tRHVjLU5naGlhLWNoYXQtZGF1LW5n dW9pLXlldS1jdS0xOTUyMDU5LyAwODo0MiAwOS8wNi8yMDEwIChHTVQrNykNCg0KSGEgTm9pOiBH aWV0IG5ndW9pIHlldSBjdSAtIGNoYXQgZGF1IHBoaSB0YW5nDQoNCihIdW5nIHRodSBOZ3V5ZW4g RHVjIE5naGlhLCAyNiB0dW9pLCB0aHVvbmcgdHJ1IHRhaSBUUC4gSGFpIFBob25nLCBzaW5oIHJh IHRyb25nIGdpYSBkaW5oIGNvIGJvIG1lIGRldSBsYSBjb25nIG5oYW4pDQoNCmh0dHA6Ly93d3cu dmlldG5hbW5ldC52bi94YWhvaS8yMDEwMDYvVHJhbS1jaHV5ZW4tZ2FpLWdvaS1sb24tbmhhdC1I YS1Ob2ktbm9uZy10cm8tbGFpLTkxNDQ2Mi8gMTQ6MjgsIDA2LzA2LzIwMTAgKEdNVCs3KQ0KDQpI YSBOb2k6ICdUcmFtIGNodXllbiBnYWkgZ29pIiBsb24gbmhhdCBIYSBOb2kgbm9uZyB0cm8gbGFp IC0ga2h1IHZ1YyBwaG8gTmd1eWVuIENoaSBUaGFuaCBnaWFvIHZvaSBkdW9uZyBMYW5nDQoNCmh0 dHA6Ly92bmV4cHJlc3MubmV0L0dML1BoYXAtbHVhdC8yMDEwLzA2LzNCQTFDRDY1LyAxMS82LzIw MTAsIDA5OjI3IEdNVCs3DQoNCkhhIE5vaTogSGFpIGNhbmggc2F0IGNhbSBkYXUgbmhvbSAneGlu IGRldScgLSBjaGFuIHhlIG5ndW9pIGRpIGR1b25nIGRvaSBraWVtIHRyYSBnaWF5IHRvIHZhIGNv IGhhbmggdmkgInZvaSB2aW5oIiB0aWVuLiANCk5ldSBuZ3VvaSB0aGFtIGdpYSBnaWFvIHRob25n IGtob25nIGNvIHRpZW4sIG5ob20gbmF5IGJhdCBtYW5nIHhlIGRpIGNhbSBkbyBvIGdhbiBkbyBs YXkgdGllbiBkZSBub3AuDQoNCmh0dHA6Ly82MHMuY29tLnZuL2luZGV4LzI0ODU2NjYvMTkxMjIw MDkuYXNweCBUaHUgYmF5ICwgMTkgLyAxMiAvIDIwMDksIDE0OiAzMiAoR01UKzcpDQoNCkhhIE5v aTogTWFuZyBjYSBiYW8gdGFpICdoYW5nIG5vbmcnIGRpIGRhbiBtYXQgbmhhdSBnaXVhIHBobyAN Cg0KaHR0cDovL2dpYWRpbmgubmV0LnZuLzIwMDkxMTE4MDkwMTQwMTc3cDBjMTAwNS9tb3Qtbmdh eS1oYWktdnUtYW4tbWFuZy5odG0gMTgvMTEvMjAwOSwgMTM6NDUoR01UKzcpDQoNCkhhIE5vaTog TW90IG5nYXkgaGFpIHZ1IGFuIG1hbmcgDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi90aW5u aGFuaC8yMDEwMTEvZHVuZy10aW0tbmh1bmctcGhhLWNoZW0tbmd1b2ktZGFtLW1hdS10cmVuLXBo by05NDcyMzQvIExlIE5nb2MgKHRvbmcgaG9wKSBDYXAgbmhhdCBsdWMgMTQ6MDEsIFRodSBCYXks IDEzLzExLzIwMTAgKEdNVCs3KQ0KDQpIYSBOb2k6IE5odW5nIHBoYSBjaGVtIG5ndW9pIGRhbSBt YXUgZ2l1YSBwaG8NCg0KLSBNYXUgdGh1YW4gYW0gaSwgdmEgY2hhbSB0cmVuIGR1b25nIGRhIGto aWVuIG5oaWV1IG5ob20gImFuaCwgY2hpIiBsYW8gdmFvIGhvbiBjaGllbiANCmRlIGRvaSBsYXkg bmh1bmcgbWFuZyBuZ3VvaSBvYW4gdW9uZy4gS2hvbmcgaXQgbmd1b2kgZGFuIGRhIHRob3QgdGlt IGtoaSBiYXQgZGFjIGRpIA0KY2h1bmcga2llbiBuaHVuZyBtYW4gdGhhbmggdG9hbiBuaHVvbSBt YXUgbmF5LiANCgkNCkdpYW4gdHJhbiBkZSB0aGFuaCB0b2FuIG5oYXUgZ2l1YSBwaG8gDQoNClRv aSAxMS8xMSB2dWEgcXVhLCB0YWkgbmdvIDMwMiBkdW9uZyBMYW5nIChEb25nIERhLCBIYSBOb2kp IGRhIHhheSByYSB2dSBhdSBkYSBraW5oIA0KaG9hbmcgZ2l1YSBoYWkgbmhvbSBsYW0gbW90IG5n dW9pIHR1IHZvbmcgdmEgaXQgbmhhdCAzIG5ndW9pIGtoYWMgYmkgdGh1b25nLiBEbyBjbyANCm1h dSB0aHVhbiB0dSB0cnVvYywgbmhvbSBjdWEgQ2h1IFZhbiBIb2EgKHR1YyBIb2EgInRhdSIpIGRh IGNvIHZhIGNoYW0gdmEgZGFuIGRlbiANCmR1bmcgZG8gdm9pIG1vdCBuaG9tIGdpYW5nIGhvIGto YWMuIA0KDQooQW5oOiBIaWVuIHRydW9uZyB2dSB0aGFuaCB0b2FuIGRhbSBtYXUuIEFuaCBWTk4p IA0KDQpEZW0gMTEvMTEsIEhvYSAidGF1IiBkYSB0cmlldSB0YXAgaGFuZyBjaHVjIGRhbiBlbSBk ZW4ga2h1IHZ1YyBuaGEgbWluaCAobmdvIDMwMiwgDQpkdW9uZyBMYW5nKSBkZSBwaHVjIGtpY2gg Y2hvICJ0cmEgZG9uIiBkb2kgdGh1LiBLaGkgbmhvbSBkb2kgdGh1IHZ1YSBjbyBtYXQgZGEgYmkg DQpsdWMgbHVvbmcgY3VhIEhvYSAidGF1IiBidWEgdmF5LCB0aGEgc3VjIGRhbSBjaGVtIGtoaWVu IG5oaWV1IGRvaSB0dW9uZyBiaSB0aHVvbmcuIE1vdCANCm5ndW9pIHRyb25nIG5ob20gZG9pIHRo dSBjYW0gZGFvIHBob25nIGxvbiB4b25nIGRlbiBjaGVtIEhvYSAidGF1IiBjaG8gZGVuIGtoaSBv bmcgDQpuYXkgZ3VjIHh1b25nLiBNb3Qgc28gbmd1b2kgdHJvbmcgbmhvbSBjdWEgb25nIEhvYSBj dW5nIGJpIGRvaSB0aHUgZGFuaCB0cm9uZyANCnRodW9uZy4gU2F1IGtoaSBnYXkgYW4geG9uZywg bmhvbSBkb2kgdGh1IGtpYSBuaGFuaCBjaG9uZyBsZW4gbW90IGNoaWVjIHhlIEJNVyB0YXUgDQp0 aG9hdC4NCg0KS2hpIGx1YyBsdW9uZyBjb25nIGFuIHF1YW4gRG9uZyBEYSBjbyBtYXQgdGhpIGJh dCBuZ28gcGhhdCBoaWVuIEhvYSAidGF1IiBuYW0gYmF0IA0KdGluaCB0cmVuIHZ1bmcgbWF1IHZv aSBuaGlldSB2ZXQgZGFtIGNoZW0gdHJlbiBjbyB0aGUuIEtoaSBvbmcgbmF5IGR1b2MgZHVhIHZh byBiZW5oIA0KdmllbiBjYXAgY3V1IGl0IHBodXQsIHBoaWEgbmdvYWkgYmVuaCB2aWVuIHh1YXQg aGllbiBoYW5nIHRyYW0gbmd1b2kgYnUga2luIGNhIGNvbmcgYmVuaCANCnZpZW4uIENvbmcgYW4g ZGEgcGhhaSBodXkgZG9uZyBsdWMgbHVvbmcgcGhhbiB1bmcgbmhhbmgsIGR1b2MgdHJhbmcgYmkg dnUga2hpLCBsYXAgDQpoYW5nIHJhbyBhbiBuaW5oIGJlbiBuZ29haSBiZW5oIHZpZW4uDQoNClNh dSBkbywgZGFtIGRvbmcgZGEgZ2lhaSB0YW4uIEtoaSB2aWVjIGtoYW0gbmdoaWVtIHR1IHRoaSBu YW4gbmhhbiBob2FuIHRhdCwgbHVjIGx1b25nIA0KY2hvdCBjaGFuIG8gY29uZyBiZW5oIHZpZW4g bW9pIHJ1dCBxdWFuLg0KDQpIaWVuIG5heSwgY28gcXVhbiBjaHVjIG5hbmcgZGFuZyB0aWVuIGhh bmggbGFtIHJvIHZ1IHZpZWMgInJ1bmcgZG9uZyIgZHUgbHVhbiBuYXkuIA0KRGF5IGtob25nIHBo YWkgbGEgYW4gbWFuZyBkYXUgdGllbiB0dSBuaHVuZyB2dSB0aGFuaCB0b2FuIG5vIG5hbiBjYSBu aGFuIGRhbSBtYXUgdGFpIA0KSGEgTm9pLiBUcnVvYyBkbywgY28gbmhpZXUgdnUgYW4gZGEga2hp ZW4ga2hvbmcgaXQgbmd1b2kgZGFuIHBoYWkgYmFuZyBob2FuZywgc3VuZyBzb3QgDQp0cnVvYyBt dWMgZG8gYmFvIGx1YyB2YSBuZ2hpZW0gdHJvbmcgY3VhIG5vLg0KDQpWYSBjaGFtIGdpYW8gdGhv bmcsIHN1eXQgbWF0IG1hbmcgbmd1b2kNCg0KTmhpZXUgdnUgeG8geGF0IGRvIG1hdSBsYWkgdHUg bmh1bmcgbGkgZG8gcmF0ICJ0cm9pIG9pIGRhdCBob2kiLiBDaGkgY2FuIG1vdCBhbmggbWF0LCBt b3QgDQpjdSBxdWV0IHhlIHZvIHRpbmggdHJlbiBkdW9uZ4UgY3VuZyBraGllbiBjYWMgZGFuZyB5 ZW5nIGh1bmcgbm9pIG1hdSB0dSBhaSBkYW4gZGVuIA0KdmllYyB0aGFuaCB0b2FuIGJhbmcgZGFv LCBraWVtLg0KDQpDaGlldSBuZ2F5IDExLzgvMjAxMCwga2hpIGNoaWVjIHhlIE1lcmNlZGVzIEJL UyAzME4gliA2My4uIGRhbmcgbHV1IHRob25nIHRyZW4gZHVvbmcgDQpQaGFuIERpbmggUGh1bmcg dGhpIHRvbmcgdmFvIDIgdGhhbmggbmllbiBkaSB4ZSBtYXkgdHUgcGhpYSBzYXUsIGtoaWVuIGNo aWVjIHhlIG1heSBkbyANCnJhIGR1b25nLiBTdSB2aWVjIGNoaSBjbyB0aGUsIG5odW5nIG5ob20g dGhhbmggbmllbiBkaSB0cmVuIG8gdG8gdmEgaGFpIG5ndW9pIHhlIG1heSANCnhheSByYSB4byB4 YXQgbmFuZyBuZS4gVWF0IHVjLCBjYSBoYWkgYmVuIGN1bmcgbG9pIGRpZW4gdGhvYWkgcmEgZ29p IGJhbiBkZW4gImdpYWkgcXV5ZXQiLiANCk5nYXkgc2F1IGRvLCBtb3QgbmhvbSB0aGFuaCBuaWVu IGRpIHhlIG1heSBkZW4sIGtob25nIG5vaSBtb3QgbG9pLCBsb2kgbmdheSBtYSB0YXUgdmEgDQpk YW8gbGFvIHZhbyAieHUiIG5odW5nIG5ndW9pIGRpIHRyZW4gbyB0by4gDQoNCihBbmg6IEF1IGRh IHR1IHZhIGNoYW0gbmhvLiBBbmg6IFZOTikNCg0KTmd1b2kgZGlldSBraGllbiBvIHRvIGRhIGJp IHRodW9uZywgcGhhaSBkdWEgZGkgY2FwIGN1dSB0cm9uZyB0aW5oIHRyYW5nIG5ndXkga2ljaCwg DQpuZ3VvaSBjb24gbGFpIHRyZW4geGUgY3VuZyBiaSBjaGVtIGR1dCBsaWEgbmdvbiB0YXkuIEdh eSBhbiB4b25nLCBuaG9tIG5heSBsYXAgdHVjIGxlbiANCnhlIG1heSBybyBnYSBibyBjaGF5Lg0K DQpWdSBhdSBkYSBuYXkgZGEgZ2F5IGFjaCB0YWMgbmdoaWVtIHRyb25nIHRyZW4gcGhvIFBoYW4g RGluaCBQaHVuZyB2YSBsYW0gbmhpZXUgbmd1b2kgDQpkaSB0aGFtIGdpYSBnaWFvIHRob25nIGR1 b2MgcGhlbiAiZHVuZyB0aW0iLg0KDQoiR2lhaSIgbWF1IHRodWFuIGJhbmcgbW90IG1hbmcgbmd1 b2kNCg0KTmhpZXUgdnUgdHJvbmcgYW4ga2hvbmcgY2hpIG1hdCBtYW5nIG5ndW9pIG1hIGNvbiBs YSBub2kgZGF1IGNobyBuaGlldSBiYWMgcGh1IGh1eW5oIA0KdmkgdHJvbmcgc28gZG8gY28gY2Eg bmh1bmcgZG9pIHR1b25nIGRhbmcgbyBkbyB0dW9pIHRlZW4uIERvIGNvIG1hdSB0aHVhbiB0dSB0 cnVvYywgaGFpIA0KbmhvbSB0aGFuaCBuaWVuIGRhIGhlbiBuaGF1IGRlICJub2kgY2h1eWVuIiBi YW5nIG5odW5nIHZ1IGtoaSBub25nLiBEbyBsYSB2dSBhbiBkYXUgDQpsb25nIHhheSByYSB0YWkg SHV5ZW4gUGh1YyBUaG8sIEhhIE5vaS4NCg0KQ3VuZyB0dSBuaHVuZyBtYXUgdGh1YW4gbmhvIG5o YXQsIGtob2FuZyAxOWgzMCBuZ2F5IDE3LzIvMjAwOSwgYm9uIHRoYW5oIG5pZW4gbGE6IA0KRG8g S2ltIFZhbiAoU04gMTk4NyksIERpbmggVHJvbmcgU2FuZyAoU04gMTk5MiksIERvIERhYyBEZSAo U04xOTkyKSwgSGEgWHVhbiANCk5pbmggKHNpbmggbmFtIDE5OTQpIGRpIDEgeGUgbWF5IHRyZW4g ZHVvbmcgZGUgdGh1b2MgZHVvbmcgdGluaCBsbyA0MjEgbyBraHUgdnVjIGN1bSANCjYsIHhhIExp ZW4gSGllcCB0aGkgYmkgMiB4ZSBtb3RvIHR1IHBoaWEgc2F1IHZ1b3QgbGVuLCBjaGFuIGxhaS4g QmF0IG5nbywgbmd1b2kgdHJlbiBoYWkgeGUgDQptbyB0byBuYXkgZGFuaCB0b2kgdGFwIHZhbyBi b24gdGhhbmggbmllbi4NCg0KSGFpIHhlIG1vdG8gbGEgNCB0aGFuaCBuaWVuLCBnb206IE5ndXll biBRdWFuZyBUaHVjIChzaW5oIG5hbSAxOTkwKSwgRG8gVmFuIEh1bmcgDQooc2luaCBuYW0gMTk5 MSksIERpbmggVmFuIFR1IChzaW5oIG5hbSAxOTg5KSB2YSBEaW5oIFRyb25nIFRoYW5nIChzaW5o IG5hbSAxOTkxKS4NCg0KVHJvbmcga2hpIGhhaSBiZW4gZGFuZyAibm9pIGNodXllbiBiYW5nIG5h bSBkYW0iIHRoaSBEbyBLaW0gVmFuIGJhdCBuZ28gZHVuZyBkYW8gDQpiYW0gZGFtIE5ndXllbiBR dWFuZyBUaHVjIGJpIHRodW9uZyBvIGJ1bmc7IGRhbSBEbyBWYW4gSHVuZyBiaSB0aHVvbmcgbyBz dW9uIA0KcGhhaS4gSGFuIHRpZXAgdHVjIGRhbSBEaW5oIFRyb25nIFNhbmcgYmkgdGh1b25nIGxv aSBydW90IHZhIGJhIHZhaS4gU2F1IGRvLCBOZ3V5ZW4gDQpRdWFuZyBUaHVjIHZhIERpbmggVmFu IEh1bmcgcGhhaSBkaSBjYXAgY3V1IHRhaSBiZW5oIHZpZW4gRGFuIFBodW9uZy4gRGluaCBUcm9u ZyANClNhbmcgZGkgY2FwIGN1dSB0YWkgYmVuaCB2aWVuIDEwNSBTb24gVGF5LiBIYXUgcXVhIGRh dSBsb25nIGxhIGRlbiAyM2ggY3VuZyBuZ2F5IHRoaSANCm5hbiBuaGFuIERpbmggVHJvbmcgU2Fu ZyBkYSB0dSB2b25nLg0KDQpUcnV5IHNhdCBkYSBtYW4sIGhhaSB0aGFuaCBuaWVuIHRoaWV0IG1h bmcNCg0KRHUgZGEgeGF5IHJhIGhvbiBtb3QgbmFtIG5odW5nIGtoaSBuaGFjIGxhaSBraG9uZyBp dCBuZ3VvaSBkYW4gbyBwaG8gQmFjaCBtYWkgDQooUC5CYWNoIE1haSwgUS5IYWkgQmEgVHJ1bmcp IGtob25nIGtob2kgcnVuZyBtaW5oLiBLaG9hbmcgMyBnaW8gc2FuZyBuZ2F5IA0KMTEvMS8yMDA5 LCBuaHVuZyBuZ3VvaSBkYW4gbyBkYXkgZGEgYmF0IGRhYyBkaSBwaGFpIGNodW5nIGtpZW4gbW90 IHZ1IHhvIHhhdCBoYWkgaHVuZyANCmtoaWVuIDIgdGhhbmggbmllbiB0aGlldCBtYW5nLg0KDQpS YW5nIHNhbmcgZG8sIHRpZW5nIHhlIG1heSBydSBnYSwgc2F1IGRvIHRpZW5nIGRhbSBkYSwgdGll bmcga2ltIGxvYWkgdmEgdmFvIG5oYXUgZGFuaCANCnRodWMgbmd1b2kgZGFuIG1vdCBxdWFuZyBw aG8uIE1vdCBuaGFuIGNodW5nIGNobyBiaWV0LCBjYSBoYWkgbmhvbSB0aGFuaCBuaWVuIGRldSBk aSANCnRyZW4gbmh1bmcgY2hpZWMgeGUgdGF5IGdhIGRhdCB0aWVuLCBraGkgImR1bmciIG5oYXUg bGEgZGFtIGNoZW0gbHVvbi4gTmd1b2kgbmF5IGN1bmcgDQpuaGluIHRoYXkgbmhpZXUgYm9uZyBu Z3VvaSBuYW0gbmdvbiBuZ2FuZy4gVHV5IG5oaWVuIGRvIGx1YyB0b2kgdHJvaSBuZW4ga2hvbmcg YWkgbmhhbiANCmRpZW4gZHVvYyBodW5nIHRodS4gDQoNCihBbmg6IEhpZW4gdHJ1b25nIHNhdSBt b3QgdnUgInRoYW5oIHRvYW4iIGtpbmggaG9hbmcuIEFuaDogVk5OKQ0KDQpLaGkgY28gcXVhbiBj aHVjIG5hbmcgZGVuIGhpZW4gdHJ1b25nIHRoaSBwaGF0IGhpZW4gMiBuYW0gdGhhbmggbmllbiBk YSBjaGV0IHZhIG1vdCANCmNoaWVjIHhlIG1heSBTSCBraG9uZyBiaWVuIGtpZW0gc29hdC4gUXVh IHhhYyBtaW5oIG5oYW4gdGhhbiwgMiBuYW4gbmhhbiBnb20gRGFuZyANClZhbiBMb25nIChTTiAx OTc3KSB2YSBQaGFtIFZhbiBCaW5oIChTTiAxOTczKSBkZXUgbyBxdWFuIEhhaSBCYSBUcnVuZy4g TmdvYWkgcmEgDQpjbyB0aGVtIG1vdCBuYW0gdGhhbmggbmllbiBiaSB0aHVvbmcgbmFuZyBudWEg bGEgRG8gVmFuIFRpZW4gKFNOIDE5ODYsIG8gc28gNiBUcmFpIA0KQ2EsIHF1YW4gSGFpIEJhIFRy dW5nKS4NCg0KTGllbiBxdWFuIGRlbiB2dSB4byB4YXQgbGFtIDIgdGhhbmggbmllbiB0aGlldCBt YW5nIG5heSBsYSA0IGRvaSB0dW9uZyBkZXUgdHJ1IHRhaSBRLkhhaSANCkJhIFRydW5nIGdvbTog RG8gVGhhbmggQ2h1bmcgKFNOMTk4Nyk7IFBoYW0gVGhhbmcgUXVhbiAoU04gMTk4NSk7IFBoYW0g VGllbiANCkR1bmcgKFNOIDE5ODcpIFZ1IE1pbmggTmdvYyAoU04gMTk5MCkuDQoNCkRvIG1hdSB0 aHVhbiBuaG8gYmVuIGJhbiBydW91LCBjYWMgZG9pIHR1b25nIG5heSB0cnV5IHNhdCBuaGF1IG5o dSB0cm9uZyBwaGltIGhhbmggDQpkb25nLiBEZW4gZG9hbiBnaXVhIHBobyBCYWNoIE1haSwgZGEg eGF5IHJhIHhvIHhhdCBkYSBraGllbiBoYWkgdGhhbmggbmllbiBwaGFpIGJvIA0KbWFuZyB2YSAx IG5ndW9pIGJpIHRodW9uZy4NCg0KTmh1bmcgY3VvYyAibm9pIGNodXllbiBiYW5nIG5hbSBkYW0i IGRhIGN1b3AgZGkgc2luaCBtYW5nIGN1YSBuaGlldSB0aGFuaCBuaWVuLiANCkhhdSBxdWEgY3Vh IGhvIGtob25nIGNoaSBsYSBub2kgZGF1IGRhaSBkYW5nIGNobyBuaHVuZyBiYWMgbGFtIGNoYSBs YW0gbWUgcGhhaSBtYSANCmNvbiBsYSBub2kga2luaCBob2FuZyBjaG8gbmh1bmcgbmd1b2kgZGFu IGtoaSBhbiBuaW5oIHRyYXQgdHUgY3VhIHRoYW5oIHBobyBiaSB4YW0gcGhhbS4gDQoNCmh0dHA6 Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTEvSGEtTm9pLVBoYXQtaGllbi14YWMtY2hl dC1kdW9pLWdhbS1jYXUtTG9uZy1CaWVuLTk0NzIzNS8gR1YgMTQ6MjgsIDEzLzExLzIwMTAgKEdN VCs3KQ0KDQpIYSBOb2k6IE1vdCB4YWMgY2hldCBub2kgZHVvaSBjYXUgTG9uZyBCaWVuIC0gZ2lh byB0aG9uZyB0cmVuIGNhdSBiaSB1biB0YWMgDQoNCi0gS2hvYW5nIDdoNDUgc2FuZyAxMy8xMSwg bmd1b2kgZGFuIHh1bmcgcXVhbmggY2hhbiBjYXUgTG9uZyBCaWVuIChwaHVvbmcgRG9uZyANClh1 YW4sIEhvYW4gS2llbSwgSGEgTm9pKSBwaGF0IGhpZW4gbW90IHhhYyBjaGV0IGRhbmcgdHJvbmcg cXVhIHRyaW5oIHBoYW4gaHV5IG5vaSBkYXQgDQogdmFvIHZlbiBibyBzb25nIEhvbmcuDQpUaGVv IG5odW5nIG5ndW9pIGRhbiB4dW5nIHF1YW5oIGtodSB2dWMsIG5oaWV1IG5ndW9pIGRpIHF1YSBj YXUgTG9uZyBCaWVuIHRoYXkgYm9jIA0KbXVpIGhvaSB0aG9pLCBzYXUgZG8gbW9pIG5ndW9pIG5o aW4geHVvbmcgYmFpIHZlbiBTb25nIEhvbmcgdGhpIHBoYXQgaGllbiBtb3QgeGFjIGNoZXQgDQpk YW5nIG5vaSBkYXQgdmFvIGJhaSBib2kgdmVuIHNvbmcuDQoNCihBbmg6IFhhYyBjaGV0IG5vaSBk YXQgdmFvIHZlbiBibyBzb25nIEhvbmcgZHVvYyB4YWMgZGluaCBsYSBudSBnaW9pLikNCg0KWGFj IGNoZXQgZGF0IHZhbyBibyB0cm9uZyB0dSB0aGUgbmFtIG5ndWEsIHRheSBjbyBsZW4gdmEgdHJl biBuZ3VvaSB2YW4gY29uIHRoYXkgbWFjIA0KcXVhbiBhbyB2YWkgaG9hLiBUaGVvIG5oaWV1IG5n dW9pIGRhbiwgY28gdGhlIHhhYyBkaW5oIGR1b2MgeGFjIGNoZXQgbGEgbnUuDQoNCihBbmg6IE5o aWV1IG5ndW9pIGRhbiBoaWV1IGt5IG11b24geHVvbmcgdGFuIG5vaSB4ZW0uKQ0KDQpOZ2F5IHNh dSBraGkgbmhhbiBkdW9jIHRpbiBiYW8sIGx1YyBsdW9uZyBjb25nIGFuIHBodW9uZyBEb25nIFh1 YW4sIHF1YW4gSG9hbiBLaWVtIGRhIGNvIG1hdCBkZSB4ZW0geGV0IGhpZW4gdHJ1b25nLg0KDQoo QW5oOiBYYWMgY2hldCBwaGFuIGh1eSBraGllbiBib2MgbXVpIG5vbmcgbmFjLCBuaGlldSBuZ3Vv aSBkYSBraG9uZyBjaGl1IGR1b2Mga2hpIGRpIHF1YSBjYXUuKQ0KDQpWaWVjIGhhbmcgdHJhbSBu Z3VvaSBoaWV1IGt5IGR1bmcgeGVtIHRyZW4gY2F1IExvbmcgQmllbiBkYSBraGllbiBnaWFvIHRo b25nIHRyZW4gY2F1IGJpIHVuIHRhYy4gDQoNCmh0dHA6Ly92aWV0YmFvLnZuL0FuLW5pbmgtUGhh cC1sdWF0L0hhLU5vaS14YXktcmEtMi12dS1oaWVwLWRhbS10YXAtdGhlLXRyb25nLXZvbmctNS10 aWVuZy8xMDk3NjMxMC8yMTgvIDE4LzkvMjAwNiwgMDg6NTUgR01UKzcNCg0KSGEgTm9pOiAyIHZ1 IGhpZXAgZGFtIHRhcCB0aGUgdHJvbmcgdm9uZyA1IHRpZW5nIA0KDQpodHRwOi8vd3d3Lmxhb2Rv bmcuY29tLnZuL0hvbWUvSGEtTm9pLUxhaS10aGVtLW1vdC12dS1oaWVwLWRhbS1iYW4tY2hhdC8y MDA3NC8zMjMxOS5sYW9kb25nIDE2LjQuMjAwNyAgMDk6MTggKEdNVCArIDcpIA0KDQpIYSBOb2k6 IExhaSB0aGVtIG1vdCB2dSBoaWVwIGRhbSBiYW4gY2hhdCANCg0KaHR0cDovL3d3dy5iYW9tb2ku Y29tL0luZm8vSGEtTm9pLUhhaS10aGlldS1udS1iaS1uaG9tLXlldS1yYXUteGFuaC1oaWVwLWRh bS8xMDQvMzg2NzE5MC5lcGkNCg0KSGEgTm9pOiBIYWkgdGhpZXUgbnUgYmkgbmhvbSAieWV1IHJh dSB4YW5oIiBoaWVwIGRhbSANCg0KaHR0cDovL2Nvbmd0eWx1YXQxLTUudm4vdGluLXR1Yy1waGFw LWx1YXQvMTg5LXJ1b3Utc2F5LXJ1LW5oYXUtaGllcC1kYW0tdGFwLXRoZS1udS1zaW5oLWxvcC05 LS5odG1sDQoNCkhhIE5vaTogUnVvdSBzYXkgcnUgbmhhdSBoaWVwIGRhbSB0YXAgdGhlIG51IHNp bmggbG9wIDkgDQoNCmh0dHA6Ly93d3cuZ2lhb2R1Yy5lZHUudm4vbmV3cy9naWFvLWR1Yy1naWEt ZGluaC02NzkvaGEtbm9pLXRvbS1rZS1oaWVwLWRhbS1uZ3VvaS15ZXUtY3UtMTQ2MjM3LmFzcHgg MTQvNy8yMDEwLCAwODowNyBHTVQrNyANCg0KSGEgTm9pOiBIaWVwIGRhbSBuZ3VvaSB5ZXUgY3Ug DQoNCmh0dHA6Ly9kYWlseWluZm8udm4vNC0zMi04ODI0MS1oYS1ub2ktdGhlbS1tb3QtdnUtaGll cC1kYW0tdGFwLXRoZS5odG1sIDA3LzAxLzIwMTAgMDc6NDggQU0gDQoNCkhhIE5vaTogVGhlbSBt b3QgdnUgaGllcCBkYW0gdGFwIHRoZSANCg0KaHR0cDovL2NoaW5oc2FjaHF1YW5seS5iYXRkb25n c2FuLmNvbS52bi9zYWktcGhhbS10cm9uZy1kYXQtZGFpLWRhdC1ub25nLW5naGllcC1iaS1iaWVu LXR1b25nLXZpNC1IUGMzWmtZMS5odG1sIChUaGVvIEhOTSkgMjcvMDkvMjAxMCwgMDg6MzUgR01U KzcgDQoNCkhhIE5vaTogU2FpIHBoYW0gdHJvbmcgcXVhbiBseSBkYXQgZGFpIC0gRGF0IG5vbmcg bmdoaWVwIGJpIGJpZW4gdHVvbmcgDQoNClRyb25nIG1vdCB0aG9pIGdpYW4gZGFpLCB4YSBTb25n IFBodW9uZyAoaHV5ZW4gSG9haSBEdWMsIEhhIE5vaSkgZGEgeGF5IHJhIHRpbmggdHJhbmcgDQpx dXkgZGF0IGNvbmcgZG8gSFRYIGhvYWMgeGEgcXVhbiBseSBkdW9jIGNobyB0aHVlLCBkYXUgdGhh dSB0cmFpIHBoZXAgZGFuIGRlbiB0aW5oIA0KdHJhbmcgeGF5IG5oYSB0cmVuIGRhdCBub25nIG5n aGllcCBnYXkgYnVjIHh1YyB0cm9uZyBuaGFuIGRhbi4NCg0KQ3VuZyB2b2kgZG8gaGFuZyBjaHVj IGhlY3RhIGRhdCBub25nIG5naGllcCB2dW5nIGJhaSBtYXUgbW8gYmkgY2FjIGhvIGRhbiB0dSB5 IA0KY2h1eWVuIG5odW9uZyBkYW4gZGVuIG5ndXkgY28gbWF0IGRhbiBkYXQgbm9uZyBuZ2hpZXAg dmEgeHVhdCBoaWVuIHRpbmggdHJhbmcgZGF0IGJvIA0KaG9hbmcsIGdheSBsYW5nIHBoaS4NCg0K WGF5IG5oYSB0cmFuIGxhbiB0cmVuIGRhdCBub25nIG5naGllcA0KDQpUaGVvIHBoYW4gYW5oIGN1 YSBtb3Qgc28gbmd1b2kgZGFuIG8gU29uZyBQaHVvbmcsIHhhIGRhIGNobyBkYXUgdGhhdSBkYXQg bm9uZyBuZ2hpZXAgDQp0cmFpIHBoZXAgdnVuZyBEb2MgVGh1b25nICh0aHVvYyBxdXkgZGF0IGRv IHRhcCB0aGUgcXVhbiBseSkgY2hvIDE4IGhvIGRhbiB2b2kgZGllbiANCnRpY2ggZ2FuIDQuMDAw bTIuIE9uZyBMdXUgRGluaCBUYW0sIFBobyBCaSB0aHUgdGh1b25nIHRydWMgeGEgU29uZyBQaHVv bmcgY2hvIGJpZXQsIA0KdHJ1b2MgZGF5IGNodSB0aWNoIHhhIGRhIHRodWEgbmhhbiBuZ3VvbiBn b2MgZGF0IGtodSBEb2MgVGh1b25nIGxhIGRhdCBub25nIG5naGllcCANCih0aHVvYyBxdXkgZGF0 IGNvbmcpLCB4YSBraG9uZyBiYW4gZGF0IG1hIGNoaSBjbyBjaHUgdHJ1b25nIGRhdSB0aGF1IGNo byB0aHVlIDEyMCANCm0yL2hvLCB0aG9pIGhhbiAxMCBuYW0uIE9uZyBUYW0gY2hvIHJhbmcgdmll YyBjaG8gdGh1ZSBkYXQgdHJvbmcgdGhvaSBoYW4gZGFpIG5odSB2YXkgDQpsYSBjaHUgdHJ1b25n IGN1YSB0YXAgdGhlIFVCTkQgeGEgU29uZyBQaHVvbmcsIGtpbmggcGhpIHRodSBkdW9jIHhhIGRh IGRhdSB0dSBuYW5nIA0KY2FwIGR1b25nIHRob24sIHhvbSwgeGF5IHRyYW0gYmllbiBhcCBwaHVj IHZ1IG5oYW4gZGFuLiBUaG9pIGRpZW0gVUJORCB4YSBjaG8gZGF1IA0KdGhhdSBkYSB0aG9uZyBi YW8gY29uZyBraGFpLCBhaSBjbyBuaHUgY2F1IGRldSBkdW9jIGRhbmcga3kgbmVuIHRyb25nIHNv IHRoYW0gZ2lhIGRhdSANCnRoYXUgdGFpIGtodSBkYXQgRG9jIFRodW9uZyBjbyBjYSBjYW4gYm8g eGEsIHRob24gdmEgSFRYLg0KDQpUcnVvYyB0aW5oIHRyYW5nIHNhaSBwaGFtIHRyb25nIHF1YW4g bHkgZGF0IGRhaSBvIFNvbmcgUGh1b25nLCBodXllbiBIb2FpIER1YyBkYSANCnRoYW5oIGxhcCBk b2FuIHRoYW5oIHRyYSB2YSBnaWFvIFV5IGJhbiBLaWVtIHRyYSBIdXllbiB1eSBIb2FpIER1YyB0 aWVuIGhhbmgga2llbSB0cmEsIA0Ka2llbSBkaWVtLCB4dSBseSB2dSB2aWVjIHZpIHBoYW0uIFRo ZW8gS2V0IGx1YW4gMDIvS0wtVFQgbmdheSAxNC0yLTIwMDggY3VhIFRoYW5oIHRyYSANCmh1eWVu IEhvYWkgRHVjOiBUb2FuIHhhIFNvbmcgUGh1b25nIGNvIDE3MiB0cnVvbmcgaG9wIHZpIHBoYW0s IHhheSBkdW5nIHRyZW4gDQpkYXQgbm9uZyBuZ2hpZXAsIGRpZW4gdGljaCB4YXkgZHVuZyBsYSAx MS43ODJtMiAoY28gNyBjb25nIHRyaW5oIGtpZW4gY28geGF5IHRyZW4gDQoxLjU1MG0yLCA4Mi4x MzJtMiBkYXQgeGF5IGNvbmcgdHJpbmggdHVvbmcgYmFvKS4gTmhpZXUgY29uZyB0cmluaCBxdXkg bW8gbG9uIG5odW5nIA0KVUJORCB4YSBraG9uZyBkdWEgdmFvIGhvIHNvIHZpIHBoYW0sIHRoZSBo aWVuIHN1IGJ1b25nIGxvbmcgcXVhbiBseSwgdGhpZXUgdHJhY2ggDQpuaGllbS4gRG8gbGEga2h1 IEJhaSBDYXQgLSBraHUgdnVjIHNhbiB4dWF0IGJlIHRvbmcgZHVjIHNhbiBjdWEgQ29uZyB0eSBU TkhIIExpbmggDQpEYW4sIGtodSBCYWkgTm9pIGdvbSBraHUgdnVjIHNhbiB4dWF0IGJlIHRvbmcg ZHVjIHNhbiBjdWEgQ29uZyB0eSBTb25nIERhLCBraHUgZ2FyYSANCm8gdG8gY3VhIGhvIG9uZyBC YSBRdXksIHRyYWkgbmd1YSBiYWNoIGN1YSBvbmcgTmd1eWVuIFF1b2MgVHJpZXUgKG5oYSBraWVu IGNvLCBjaHVvbmcgDQp0cmFpIGNoYW4gbnVvaSBjYSBzYXUsIG5ndWEsIGdhdSkgeGF5IGR1bmcg dHUgbmFtIDIwMDYuIENoaW5oIHF1eWVuIGRpYSBwaHVvbmcgZGEgdGh1IA0KaGFuZyB0eSBkb25n IHR1IHZpZWMgY2hvIHRodWUsIHRoYXUgZGF0IHRyYWkgcGhhcCBsdWF0IG5heS4gRGlldSBkYW5n IHRpZWMgbGEgbWFjIGR1IGRhIA0KZHVvYyBUaGFuaCB0cmEgaHV5ZW4ga2V0IGx1YW4sIHhhYyBk aW5oIHJvIHNhaSBwaGFtIG5odW5nIGNoaW5oIHF1eWVuIHhhIFNvbmcgUGh1b25nIA0Ka2hvbmcg dGFwIHRydW5nIHh1IGx5LCBibyBtYWMgdG9uIHRhaSBnYXkgYnVjIHh1YyB0cm9uZyBkdSBsdWFu Lg0KDQpCbyB4b2kgcnVvbmcgbWF0IGJpIGJvIGhvYW5nDQoNCkRvIGJ1b25nIGxvbmcgcXVhbiBs eSBkYXQgZGFpLCBxdXkgZGF0IGNvbmcgYmkgY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBjaG8gZGF1 IHRoYXUgdHJhaSANCnBoYXAgbHVhdCwgZGFuIHRvaSB2aWVjIHhheSBkdW5nIG5oYSB0cmFuIGxh biB0cmVuIGRhdCBub25nIG5naGllcC4gTyBTb25nIFBodW9uZyBoaWVuIA0KdHVvbmcgY2h1eWVu IG5odW9uZyBkYXQgbm9uZyBuZ2hpZXAgdm9pIG11YyBkaWNoIGRhdSBjbyBkYW5nIGRpZW4gcmEg cGhvIGJpZW4uIEdpYWkgDQpkb2FuIDIwMDAtMjAwNCwgdGluaCB0cmFuZyBjaHV5ZW4gbmh1b25n IGRhdCBub25nIG5naGllcCBjb24gZGllbiByYSBuZ2FtIG5nYW0sIHJvaSANCnNhdSBkbyB0cm8g bmVuIGNvbmcga2hhaS4gRG9pIHR1b25nIG11YSBjaHUgeWV1IGxhIG5odW5nIG5ndW9pIGNvIHRp ZW4sIHRydSBkYXQgZGUgY2hvIA0KZ2lhIGNhbyBiYW4gdGh1IGxvaSBjaHUga2hvbmcgcGhhaSBt dWEgZGUgZGF1IHR1IHNhbiB4dWF0LiBNb2kgZGF5LCBwaG9uZyB2aWVuIA0KSGFub2ltb2kgZGEg ZGVuIHF1YW4gc2F0IHRodWMgZGlhIHZ1bmcgZGF0IGJhaSBQaHVvbmcgQmFuZywgZGkgZG9jIGNh YyB0cnVjIGR1b25nIGJlIA0KdG9uZyB0dSB2dW5nIGJhaSBjdWEgQ2F1LCBraHUgRG9jIFRodW9u ZywgZHVvbmcgYmUgdG9uZyBub2kgeG9tIFRyYWkgdm9pIGR1b25nIGNhbyANCnRvYyBMYW5nIC0g SG9hIExhYywgIm11YyBzbyB0aGkgIiB0aGF5IHRyZW4gMzAga2hvYW5oIHJ1b25nIGR1b2MgeGF5 IHR1b25nIGJhbyBraWVuIA0KY28sIHRyb25nIGRvIGNvIG5oaWV1IHRodWEgZGUgaG9hbmcsIGNv IG1vYyBkYXksIG1vdCBzbyBraGFjIGRhIGxhbSBuaGEgdHJlbiBkYXQgbm9uZyANCm5naGllcC4g Tmh1bmcgdGh1YSBydW9uZyBraWV1IG5heSBkYSBsYW0gYW5oIGh1b25nIHRvaSBzYW4geHVhdCBj dWEgbmh1bmcgaG8geHVuZyANCnF1YW5oIGNoaWEgY2F0IGhlIHRob25nIGtlbmggbXVvbmcsIGdh eSBhY2ggdGFjIGRvbmcgY2hheSwgcXV5IGhvYWNoIGdpYW8gdGhvbmcsIHRodXkgDQpsb2kgYmkg cGhhIHZvLg0KDQpPbmcgVnUgVmFuIEhlLCBUcnVvbmcgdGhvbiBQaHVvbmcgQmFuZyBjaG8gYmll dDogVnVuZyBkYXQgYmFpIFNvbmcgUGh1b25nIGtoYSANCm1hdSBtbywgbmV1IHRoYW0gY2FuaCB0 b3QsIG5vbmcgZGFuIGNvIHRoZSBzYW4geHVhdCBSQVQgdm9pIGdpYSB0cmkga2hvYW5nIDI3MCB0 cmlldSANCmRvbmcvaGEuIFR1eSBuaGllbiwgc28gaG8gc3UgZHVuZyBkYXQgbm9uZyBuZ2hpZXAg aGlldSBxdWEgY2FvIG8gZGF5IGNoaSBjaGllbSBraG9hbmcgDQoyMCUsIG5oaWV1IGhvIGRhIGNo dXllbiBuaHVvbmcgZGF0IGNobyBuZ3VvaSBraGFjLiBMeSBnaWFpIHZpZWMgZGF0IG5vbmcgbmdo aWVwIHZ1bmcgDQpiYWkgUGh1b25nIEJhbmcgZGFuZyBiaSBiaWVuIHR1b25nLCBvbmcgTHV1IERp bmggVGFtLCBQaG8gQmkgdGh1IERhbmcgdXkgeGEgY2hvIA0KcmFuZyBjaGluaCBxdXllbiByYXQg a2hvIHF1YW4gbHkgdmllYyBuZ2FtIG5nYW0gdHJhbyBkb2kgY2h1eWVuIG5odW9uZyBjYWMgaG8g dm9pIA0KbmhhdSBuZW4ga2hvbmcgeHUgbHkgZHVvYy4NCg0KRHUgbHVhbiBkYXQgY2F1IGhvaSwg dmkgc2FvIGhhbmcgdHJhbSB0cnVvbmcgaG9wIHZpIHBoYW0gZGF0IGRhaSwgdHJhdCB0dSB4YXkg ZHVuZyB4YXkgcmEgDQp0YWkgU29uZyBQaHVvbmcgZ2F5IGJ1YyB4dWMgZHUgbHVhbiBkYSBkdW9j IHRoYW5oIGtpZW0gdHJhIHZhIGNvIGtldCBsdWFuIGN1YSBUaGFuaCANCnRyYSBodXllbiBIb2Fp IER1YyBtYSB2YW4gbmdhbmcgbmhpZW4gdG9uIHRhaSBuaGlldSBuYW0gcXVhPyBNYXQga2hhYywg aGFuZyBjaHVjIA0KaGVjdGEgZGF0IG5vbmcgbmdoaWVwIGR1b2MgY2FjIHRvIGNodWMsIGNhIG5o YW4gZGF1IGNvIHhheSB0dW9uZyBiYW8gYm8gaG9hbmcgZ2F5IGxhbmcgDQpwaGksIGtob25nIGR1 b2MgY2hpbmggcXV5ZW4gZGlhIHBodW9uZyBjbyBiaWVuIHBoYXAgeHUgbHkga2lwIHRob2kuIA0K DQpodHRwOi8vdHVhbnZpZXRuYW0udmlldG5hbW5ldC52bi8yMDEwLTEyLTIwLWNob25nLWdpYWMt bm9pLXhhbS0gMjEvMTIvMjAxMCAwNTowMCBHTVQrNyBUYWMgZ2lhOiBUcmFuIEh1eSBUaHVhbg0K DQpDaG9uZyAiZ2lhYyBub2kgeGFtIg0KDQpQaHUgbmhhbiBUcmFuIFRodSBEbyBjbyB5IG11b24g eGluIGNobyBjb24gY2hhdSBsZW4gY2h1YyBuYXkgY2h1YyBraWEsIFRyYW4gVGh1IERvIA0KZGEg bm9pOiAiRHVvYyEgTmh1bmcgcGhhaSBjaGF0IG1vaSBkdWEgZGkgbW90IG5nb24gdGF5LCBkZSBw aGFuIGJpZXQgY2FjIHF1YW4gdGh1YyB0YWksIA0Kdm9pIGNodW5nLCBib24gYmF0IHRhaSwgbmh1 bmcgZHVvYyBsYW0gcXVhbiB2aSBsYSBjb24gY2hhdSB0YSIhIA0KDQpMYXUgbmF5LCBEYW5nIHZh IE5oYSBudW9jIHRhIGRhIGNvaSBjb25nIGN1b2MgY2hvbmcgdGhhbSBuaHVuZyBsYSBjaG9uZyBn aWFjIG5vaSANCnhhbS4gTmh1bmcgeGVtIHhldCBjdSB0aGUsIHRoaSBuaGlldSBraGkgY2hvbmcg dGhhbSBuaHVuZywga2hvbmcgY2hpIGxhIGNob25nIG5vaSANCnhhbSwgbWEgY29uIGxhIGNob25n IGxhaSBjaGluaCBtaW5oLCBjaG9uZyBsYWkgY2hpbmggbG9pIGljaCBnaWEgZGluaCBtaW5oISBC b2kgdGhlLCANCmNob25nIHRoYW0gbmh1bmcgbGEgbW90IGNvbmcgdmllYyB2byBjdW5nIGtobyBr aGFuLCBwaHVjIHRhcC4NCg0KQ2hvbmcgdGhhbSBuaHVuZyBwaHVjIHRhcCBiYXQgZGF1IG8gY2hv ICJkdXkgZGFuaCBkaW5oIG5naGlhIiBoYWkgY2h1IHRoYW0gbmh1bmcuIA0KQ2h1bmcgdGEgdGh1 b25nIG5vaSByYXQgbmhpZXUgdmUgdmFuIGRlIGdpbiBnaXUgc3UgdHJvbmcgc2FuZyBjdWEgdGll bmcgVmlldCwgdmF5IG1hIA0KdGh1YyB0ZSB0aGkgbGFpIGN1IGxhbSBkdW5nIHRpZW5nIG51b2Mg bmdvYWksIGRhYyBiaWV0IGxhIGNodSBIYW4uIEFuIGNhcCAtIGNobyBkdSBsYSBhbiANCmNhcCBj dWEgcmllbmcgaGF5IGN1YSBjb25nIGN1bmcgdmFuIGxhIGFuIGNhcCwga2hvbmcgY28gbHkgcXVh biBhbiBjYXAgdGhpIHNhbmcgaG9uIGtlIA0KdHJvbSBjdW9wLCBuZW4gcGhhaSBkb2kgbGFpIHRo YW5oIHRoYW0gbmh1bmc/IFRoZSBsYSBkYW4gZGVuIHZpZWMgcGhhaSBkaW5oIG5naGlhIGNhaSAN CnR1IHRoYW0gbmh1bmcgYXkgZGUgZHVhIHZhbyBsdWF0IC0gbWEgZGFuZyByYSBjaGkgY2FuIGdv aSBkaWNoIGRhbmggdG9pIGRvIGxhIGFuIGNhcCwgDQp0aGkga2hvbmcgY2FuIGdpYWkgdGhpY2gg Z2kgbnVhLCBraG9uZyBhaSB0aGFjIG1hYywgaGlldSBsYW0gZHVvYyBudWEgKFhpbiBkb2MgdGhl bSBiYWk6ICJPIHRhIGxhbSBnaSBjb24uLi4gYm9uIHRoYW0gbmh1bmciKS4NCg0KQ2hvbmcgdGhh bSBuaHVuZyBwaHVjIHRhcCBjb24gYm9pIGhhbmggdmkgdHJvbSBjYXAgbmF5IGR1b25nIG5odSBk YSB0cm8gdGhhbmggDQoicGh1b25nIGNoYW0gc29uZyIgY3VhIG1vdCBibyBwaGFuIGNhbiBibyBj byBjaHVjIGNvIHF1eWVuLg0KDQpUcm9uZyBkYW4gZ2lhbiBkYSB0cnV5ZW4gdHVuZyBjYXU6ICJI eSBzaW5oIGRvaSBibywgY3VuZyBjbyBkb2kgY29uIi4gRG8gY2hpbmggbGEgInR1eWVuIA0Kbmdv biIgY3VhIGJvbiB0aGFtIG5odW5nISBDbyBzbyBuYW8gZGUgY28gInR1eWVuIG5nb24iIG5odSB2 YXk/IFhpbiB0aHVhLCBjaGluaCBsYSBzdSANCm5oYW4gZGluaCBzYXUgZGF5Og0KDQpLaG9uZyBw aGFpIG1vaSB2dSB0aGFtIG5odW5nIGRldSBiaSBwaGF0IGhpZW4sDQpQaGF0IGhpZW4gY2h1YSBj aGFjIGRhIGR1IGJhbmcgY2h1bmc7DQpDbyBkdSBiYW5nIGNodW5nIGNodWEgY2hhYyBkYSB4dSBk dW9jOw0KWHUgZHVvYyBjaHVhIGNoYWMgZGEgYnVvYyB0b2kgZHVvYzsNCkJ1b2MgdG9pIGR1b2Mg Y2h1YSBjaGFjIGRhIHBoYWkgZGkgdHU7DQpEaSB0dSBjaHVhIGNoYWMgZGEgcGhhaSAibmdvaSBi b2MgbGljaCI7DQpOZ29pIGJvYyBsaWNoIGNodWEgY2hhYyBkYSBuZ29pIG1hbiBoYW4hDQpOZW4g Ym9uIHRoYW0gbmh1bmcgcmF0IGxpZXUgbGluaCBob2FuaCBoYW5oIGxhIHZpIHZheSENCg0KRG8g Y3VuZyBsYSB0aW5oIHRyYW5nIGNodW5nIGN1YSB0aGUgZ2lvaSwga2hvbmcgcmllbmcgZ2kgVmll dCBOYW0gdGEuIExhIHRpbmggdHJhbmcgY2h1bmcgDQpjdWEgbmhpZXUgdGhvaSBkYWkgY2h1IGto b25nIGNoaSBtb3QgdGhvaSBkYWkgbmFvIQ0KDQpDaGFuZyB0aGUgbWEgZGF1IG5hbSAyMDA4LCB0 cm9uZyBjdW9jIGhvcCB2b2kgSGEgdmllbiBOZ2EgaG9tIDExIHRoYW5nIDMsIFRodSANCnR1b25n IE5nYSBWbGFkaW1pciBQdXRpbiBkYSBwaGFpIGRlIHh1YXQgaGluaCBwaGF0OiAiUGhhaSBjaGF0 IHRheSBuaHVuZyBrZSBhbiBob2kgbG8gDQpnaW9uZyBuaHUgdGhvaSBUcnVuZyBjbyIhLCBvbmcg bm9pLCAiQ2hpIGNhbiBiYXQgZGF1IHRoaSBoYW5oIGhpbmggcGhhdCBuYXksIG5hbiBhbiBob2kg DQpsbyBzZSBjaGFtIGR1dCBuZ2F5IGxhcCB0dWMiLg0KDQpNb2kgbmdoZSB0dXllbiBibyB0cmVu IGN1YSBvbmcgUHV0aW4sIGRhIGNvIG5ndW9pIG5vaTogTGlldSBzZSBsYSBiYW8gbmhpZXUgdHJp ZXUgY2FpIHRheSANCm5ndW9pIE5nYSBzZSBiaSBjaGF0IGRpIGRheSwgbmV1IG9uZyBQdXRpbiBs YW0gdGhhdD8gRGlldSBkbyBjb24gY2hvIHhlbS4gTmh1bmcgZGlldSANCmR1IGRvYW4gc2F1IGN1 YSBuZ2FpIFRodSB0dW9uZyB0aGkgY28gdGhlIHRpbiBkdW9jOiBDaGkgY2FuIHRoYXQgc3UgYmF0 IGRhdSB0aGkgaGFuaCBoaW5oIA0KcGhhdCBuYXksIHRoaSBjbyBraGkgY2hpIG1vaSBjaGF0IHZh aSB0cmFtIGNhaSB0YXkgdGhvaSwgY3VuZyBkYSBkdSBjaGFtIGR1dCBuZ2F5IGxhcCB0dWMgDQpu YW4gcXVhbiB0aGFtIQ0KDQpOdW9jIHRhIHRob2kgY2FjIHZ1YSBUcmFuIGN1bmcgZGEgY28gY2h1 eWVuOiBLaGkgcGh1IG5oYW4gVHJhbiBUaHUgRG8gY28geSBtdW9uIHhpbiANCmNobyBjb24gY2hh dSBsZW4gY2h1YyBuYXkgY2h1YyBraWEsIFRyYW4gVGh1IERvIGRhIG5vaTogIkR1b2MhIE5odW5n IHBoYWkgY2hhdCBtb2kgDQpkdWEgZGkgbW90IG5nb24gdGF5LCBkZSBwaGFuIGJpZXQgY2FjIHF1 YW4gdGh1YyB0YWksIHZvaSBjaHVuZywgYm9uIGJhdCB0YWksIG5odW5nIGR1b2MgDQpsYW0gcXVh biB2aSBsYSBjb24gY2hhdSB0YSIhIE5naGUgdmF5IHBodSBuaGFuIGRhbmggcGhhaSBjaGFtIGR1 dCBuaHVuZyBjaHV5ZW4geGluIA0KeG8gdHVvbmcgdHUhDQoNCkRhbiB0YSB4ZW0gdGhvaSBzdSB0 cmVuIFZUViwgdGh1b25nIGhheSBiaW5oIGx1YW46IFBoYWkgbWFuaCB0YXkgeHUgbHkgcXVhbiB0 aGFtIG5odSANCmJlbiBUcnVuZyBRdW9jLCB0dWMgcGhhaSBiYW4gYm8gbmdheSBuaHVuZyB0ZW4g ZGF1IHNvLCBkZSBsYW0gY2hvIGNodW5nIGNodW4gYnVvYyEgDQpQaGFpIGxhbSBkYXUgY2hhYyBk YXksIGNodSBjdSBiYXQsIHJvaSB0aGE7IG5heSBjbyB0b2ksIG1haSB2byB0b2k7IHh1IHRvaSBu YXksIGRlIGxhaSB0b2kgDQpraWE7IGhvYWMga2VvIGRhaSBkaWV1IHRyYS4uLiB0aGkgc2UgZGFu IGRlbiBuaG9uIHBoYXAgbHVhdCENCg0KRGFuZyB2YSBOaGEgbnVvYyB0YSBraG9uZyBwaGFpIGto b25nIGNvIGNodSB0cnVvbmcgbWFuaCB0YXksIG5odW5nIHRhaSBzYW8gdGh1YyB0ZSANCkRhbiB2 YW4gY2h1YSB0aGF5IG1hbmg/IENvIHRoZSBsYSBib2kgbmd1eWVuIG5oYW4gbmF5IGNoYW5nOiBD byBxdWFuIGNob25nIHRoYW0gDQpuaHVuZyBkdW5nIHJhIHBoYWkgaG9hdCBkb25nIGRvYyBsYXAs IHRoaSBraGkgdGhhbyBsdWFuIG8gUXVvYyBob2ksIG5ndW9pIHRhIGxhaSBtdW9uIA0KIm5oYXQg bmd1eWVuIGhvYSIsIHZvaSBseSBsZSAiRGEgZ2lhbyBjaGFuIGdhIHRoaSBwaGFpIGdpYW8gY2Eg Y2hhbiBwaGFuaCIgLSB2aSB2b24gdGhhdCANCmRhbiBkYSEgUXVlbiByYW5nIG5odSB0aGUgY2hh bmcga2hhYyBnaSB2dWEgZGEgYm9uZywgdnVhIHRob2kgY29pIGNhIQ0KDQpQaGFpIG1hbmggdGF5 ISBUaGF0IHN1IG1hbmggdGF5ISBEbyBsYSBiaWVuIHBoYXAgdHJ1b2MgbmhhdCwgaXQgcmEgY3Vu ZyBsYSB0cm9uZyBib2kgY2FuaCANCmhpZW4gbmF5ISBLaG9uZyBUcnVuZyBjbyBraWV1IFB1dGlu LCBuaHVuZyBjYW4gdGhheSByYW5nLCBkb2kgdm9pIG1vdCBuZ3VvaSwgbWFuZyANCnNvbmcgbGEg dm8gY3VuZyBxdWFuIHRyb25nLiBNb3Qga2hpIG1hbmcgc29uZyBkZSBkb2EgYmkgeG9hIGJvIHRo aSB0aGFtIGRlbiBtYXkgY3VuZyANCnBoYWkgY2hvbiEgQ2hvIG5lbiBjYWNoIGJhbiBibyBjdWEg VHJ1bmcgUXVvYyBjbyB0aGUgY3VuZyByYXQgaGlldSBxdWEhDQoNCkNob25nIHRpY2ggY3VjIGNo aW5oIGxhIHBob25nIHZ1bmcgY2hhYyEgS2hpIHF1YW4geGFtIGxhbmcgZGEgdHJhbiB2YW8gYm8g Y29pLCB0aGkgDQpjaG9uZyB4YW0gbHVvYyBwaGFpIGxhIGhhbmcgZGF1LiBUdW9uZyB0dSwga2hp ICJnaWFjIG5vaSB4YW0iIGRhbmcgaG9hbmggaGFuaCB0cnVvYyANCm1hdCBuaHUgaGllbiBuYXks IHRoaSBjaG9uZyBwaGFpIGxhIGJpZW4gcGhhcCB0cnVjIHRpZXAsIHRvaSBraGFuLCBkZSBjaGFu IGR1bmcgY2h1bmcgbGFpIQ0KDQpMYXUgbmF5IGNodW5nIHRhIGN1IHNvIGNob25nIG1hbmggcXVh LCBsYSBraG9uZyBkdW5nIHZvaSBwaHVvbmcgY2hhbSBsYXkgeGF5IGxhbSANCmNoaW5oLiBMYW0g dmEgbmdoaSBuaHUgdGhlIGNoaW5oIGxhIHhhIHJvaSBxdWFuIGRpZW0gdnVhIHhheSB2dWEgY2hv bmcgY3VhIERhbmcuDQoNClZ1IGFuICJ4dSB0dSBDdWMgdHJ1b25nIHF1YW4gbmh1IFRyYW4gRHUg Q2hhdSIgdGhvaSBraGFuZyBjaGllbiBjaG9uZyB0aHVjIGRhbiANClBoYXAoWzFdKSwgbmd1b2kg bWEgdHJ1b2MgZG8gYm9uIG5hbSBCYWMgZGEga3kgcXV5ZXQgZGluaCBkZSBiYXQgIC0gbGEgbW90 IGRpZW4gaGluaCANCmN1YSB0dSB0dW9uZyBIbyBDaGkgTWluaCB0cm9uZyB2aWVjIGNob25nIHRo YW0gbmh1bmcgLSAiY29uZyByYSBjb25nLCB0b2kgcmEgdG9pIjogDQoiQ29uZyBraG9uZyBhaSBw aHUgbmhhbiBuaHVuZyB0b2kgdGhpIGxvbiBob24sIHRvaSBsYW0gbWF0IGxvbmcgdGluIGN1YSBu aGFuIGRhbiwgdG9pIA0KbmF5IGtob25nIHRoZSB0aGEgdGh1IlsyXTsga2hvbmcgdGhlIGxhbSB2 YSBjYW5nIGtob25nIHRoZSBsYW4hDQoNCkRpZXUgZGFuZyBsdXUgeSBvIGRheSBsYSwgdGhvaSBC YWMgSG8ga3kgcXV5ZXQgZGluaCB0dSBoaW5oIGRvaSB2b2kgVHJhbiBEdSBDaGF1LCB0aGFtIA0K bmh1bmcgY29uIHJhdCBpdCBuaHVuZyBxdXlldCBkaW5oIGN1YSBCYWMgY2hpbmggbGEgaGFuaCBk b25nIGN1b25nIHF1eWV0IGRhcCB0YXQgdGUgDQp0aGFtIG5odW5nLg0KDQpUcm9uZyBnaWFpIGRv YW4gdG9hbiBxdW9jIGRhbmcgaG9jIHRhcCB2YSBsYW0gdGhlbyB0YW0gZ3VvbmcgZGFvIGR1YyBI byBDaGkgTWluaCwgDQp0aGlldCB0dW9uZyB2aWVjIG5oYWMgbGFpIG5odW5nIGJhaSBob2MgdmUg dnUgYW4gbmF5IGxhIHJhdCBjYW4gdGhpZXQhDQogDQpbMV0gVnUgYW4gVHJhbiBEdSBDaGF1IGxh IHZ1IGFuIHRoYW0gbmh1bmcgbm9pIHRpZW5nIG5odW5nIG5hbSA1MCBjdWEgdGhlIGt5IHRydW9j LiANClZ1IG5heSBkYSBkdW9jIG5oYSBiYW8gSG9uZyBIYSB2aWV0IHRyZW4gYmFvIEN1dSBRdW9j IG5nYXkgMjAtOS0xOTUwOiBDaGF1IGxheSBjYXAgDQpjdWEgY29uZyBxdXkgbW90IHNvIHRpZW4g bG9uOiA1Ny45NTkgZG9uZyBWaWV0IE5hbSwgMTQ5IGRvbGEgTXksIGNhYyB0YWkgc2FuIGtoYWMg dHJpIA0KZ2lhIDE0My45MDAgZG9uZyBWaWV0IE5hbS4gR2lhIGdhbyBvIFRoYWkgTmd1eWVuIC0g QmFjIENhbiBuYW0gMTk1MCBsYSA1MCBkb25nLW1vdCANCmtnLCAoIjU3Ljk1OSBkICsgMTQzLjkw MCBkID0gMjAxLjg1OSBkKTogNTAgZCA9IDQuMDIwa2chIi0gVHIuSC5UaCkuDQoNClsyXSBOZ2hl IHNpIFRpZW4gTG9pLCBuZ3VvaSBkb25nIHZhaSBCYWMgSG8gdHJvbmcgdm8ga2ljaCBEZW0gVHJh bmcsIHRyYSBsb2kgcGhvbmcgDQp2YW4gYmFvIERpZW4gdHUgRGFuZyBDb25nIFNhbiAoTmdheSAy Mi04LTIwMDcpLiANCg0KaHR0cDovL25ld3Muc29jYmF5LmNvbS9oYWlfcXVhbl9oYV9ub2lfdmFf dHBoY21fc2FpX3BoYW1fdmVfdGh1ZV9oYW5nX25naGluX3RpX2RvbmctNjAxNTI2Mjg3LTUwMzk3 MTg0Lmh0bWwgRHV5IFRoYW5oIC0gIDA4OjUwIDAzLTAzLTIwMDgNCg0KSGEgTm9pOiBIYWkgcXVh biBUUEhDTSB2YSBIYSBOb2kgIC0gU2FpIHBoYW0gdmUgdGh1ZSBoYW5nIG5naGluIHRpIGRvbmcg DQoNCkNvIHF1YSBuaGlldSBzYWkgcGhhbSB0cm9uZyBjb25nIHRhYyBxdWFuIGx5LCB0aHUgdGh1 ZSBYTksgdGFpIEN1YyBIYWkgcXVhbiBIYSBOb2kgDQooYW5oIHRydSBzbyBDdWMgSGFpIHF1YW4g SGEgTm9pKS4gDQoNCihMRCkgLSBDbyBxdWEgbmhpZXUgdG9uIHRhaSwgc2FpIHBoYW0sIHRoYW0g Y2hpIHNhaSBwaGFtIG5naGllbSB0cm9uZyB0cm9uZyBjb25nIHRhYyANCnF1YW4gbHksIHRodSB0 aHVlIFhOSyB4YXkgcmEgdGFpIEN1YyBIYWkgcXVhbiBIYSBOb2kgdmEgVFAuSG8gQ2hpIE1pbmgu IFRoYW5oIHRyYSANCkNoaW5oIHBodSAoVFRDUCkgZGEgcGhhbiB0aWNoIHZhIGtlIHJhIGhhbmcg bG9hdCBuaHVuZyB0b24gdGFpLCBzYWkgcGhhbSB2b2kgY29uIHNvIGxlbiANCmRlbiBoYW5nIG5n aGluIHRpIGRvbmcuIA0KDQpObyB0aHVlIHRyYW4gbGFuLi4uIGRlbiBoYW5nIG5naGluIHRpIGRv bmcgDQoNCktldCBsdWFuIHRoYW5oIHRyYSBjaG8gdGhheSBkYSB0b24gdGFpIG5odW5nIGtob2Fu InRoaWV1IHNvdCJtYSBoYXUgcXVhIGxhIHRvbmcgc28gdGh1ZSANCmJpIGNoaWVtIGRvYXQsIGJp IGRheSBkdWEgbm8gZG9uZyBraG8sIHRoYW0gY2hpIGtob25nIGNvIGtoYSBuYW5nIHRodSBob2kg Y2hvIG5nYW4gDQpzYWNoIGxlbiBkZW4gaGFuZyBuZ2hpbiB0aSBkb25nLiANCg0KVGluaCBkZW4g bmdheSAzMS4xMi4yMDA2LCB0YWkgQ3VjIEhRIFRQSENNLCBubyBxdWEgaGFuIHRodWUgY2h1eWVu IHRodSBsYSA4MjQsMSB0aSANCmRvbmcsIG5vIHF1YSBoYW4gdGh1ZSB0YW0gdGh1IGxhIHRyZW4g MSBuZ2hpbiB0aSBkb25nLCB0cm9uZyBkbyBjbyB0b2kgNzY2IHRpIGRvbmcgdGh1b2MgDQpkaWVu IGtobyB0aHUgaG9pIHZlIGNobyBuZ2FuIHNhY2ggbmhhIG51b2MuIA0KDQpUYWkgQ3VjIEhRIEhO LCB0aW5oIHRyYW5nIHRyZW4gY3VuZyBraG9uZyBraGEgaG9uOiBUb25nIG5vIHRodWUgcXVhIGhh biAoZ29tIGNhIA0KY2h1eWVuIHRodSB2YSB0YW0gdGh1KSBsYSB0cmVuIDcxNCB0aSBkb25nLCB0 cm9uZyBkbyBjbyA1MTksNCB0aSBkb25nIHRodW9jIGRpZW4ga2hvIGNvIA0Ka2hhIG5hbmcgdGh1 IGhvaSB2YSA1LDcgdGkgZG9uZyBsYSBraG9uZyB0aGUgdGh1IGhvaS4uLiANCg0KVGhlbyBrZXQg bHVhbiBjdWEgVFRDUCB0aGkgdmllYyBkZSB4YXkgcmEgbm8gdGh1ZSBxdWEgaGFuIHRyZW4ga2hv bmcgY2hpIGdheSBraGEgbmFuZyANCnRoYXQgdGh1IGNobyBuZ2FuIHNhY2gsIG1hIGNvbiB2aSBw aGFtIG5naGllbSB0cm9uZyBMdWF0IFRodWUgeHVhdCBuaGFwIGtoYXUuIFRoZW8gDQpUVENQIHRy YWNoIG5oaWVtIGNoaW5oIHZhbiB0aHVvYyBDdWMgSFEgSE4sIFRQSENNIHZhIFRvbmcgY3VjIEhR LiANCg0KTW9pIGNoaSBraWVtIHRyYSBuZ2F1IG5oaWVuIDE2IGRvYW5oIG5naGllcCBubyAzNSw4 IHRpIHRpZW4gdGh1ZSBraG8gY28ga2hhIG5hbmcgdGh1IGhvaSANCnRhaSBUUEhDTSwgVFRDUCBk YSBwaGF0IGhpZW4gY28gdG9pIDIyLDUgdGkgZG9uZyAoY2hpZW0gNjMlKSBsYSBkbyBDdWMgSFEg Y28gdGluaCANCmxhbSB0cmFpIHF1eSBkaW5oIGN1YSBMdWF0IFRodWUgeHVhdCBraGF1LCB0aHVl IG5oYXAga2hhdS4gDQoNCkN1IHRoZSBjYWMgZG9hbmggbmdoaWVwIG5heSBkZXUgZGFuZyBubyB0 aHVlIHF1YSBoYW4gcGhhaSBjdW9uZyBjaGUsIG5odW5nIGhhaSBxdWFuIA0KdmFuIHRoYW4gbmhp ZW4gY2hvIGhvIGRhbmcga3kgbW8gdG8ga2hhaSBoYWkgcXVhbiBtb2kuIE5nb2FpIHJhLCB2aWVj IHRoZW8gZG9pIHF1YW4gbHkgDQp0aHVlIHRhbSB0aHUgdGFpIGhhaSBkb24gdmkgdHJlbiBjbyBi aWV1IGhpZW4ga2hvbmcgY2hhcCBoYW5oIG5naGllbSB0dWMgY2FjIHF1eSBkaW5oIHZlIA0KdGhv aSBnaWFuIGFuIGh1ZSB0aHVlLiANCg0KVGFpIEhhIE5vaSBjYWMgY28gcXVhbiBIUSB0aGFtIGNo aSBkYSBxdXlldCBkaW5oIG1pZW4gcGhhdCBjaGFtIG5vcCB0aHVlIHNhaSBxdXkgDQpkaW5oIGRv aSB2b2kgMyBDdHkgbGEgQ3R5IFROSEggeGUgdmEgbWF5IEYuTS5DOyBDdHkgVE5ISCB0aHVvbmcg bWFpIEhvYW5nIA0KQ2h1bmc7IEN0eSBUTkhIIFZpZXQgTmFtIC0gTWFsYXlzaWEgZ2F5IHRoaWV0 IGhhaSBjaG8gbmdhbiBzYWNoIHRyZW4gNSB0aSBkb25nLiANCg0KQXAgbWEgaGFuZyBzYWkgZ2F5 IHRoYXQgdGh1IG5nYW4gc2FjaCBnYW4gMzAwIHRpIGRvbmcgDQoNClZpZWMgYXAgbWEgaGFuZyBo b2EgdGFpIGhhaSBkb24gdmkgdHJlbiBjdW5nIGR1b2MgdGllbiBoYW5oIHRoaWV1IHRob25nIG5o YXQsIHR1eSB0aWVuIA0KZGFuIGRlbiB0aGF0IHRodSBjaG8gbmdhbiBzYWNoIG5oYSBudW9jIG1v dCBraG9hbiB0aWVuIGRhYyBiaWV0IGxvbi4gQmFvIGNhbyBjdWEgSFEgDQpUUEhDTSB2YSBtb3Qg c28gY28gcXVhbiBjaHVjIG5hbmcgY2hvIHRoYXkgdHUgbmdheSAxLjkuMjAwMyBkZW4gMzEuMy4y MDA3LCBUQ3R5IA0KQ29uZyBuZ2hpZXAgU2FpIEdvbjsgQ3R5IFhOSyB0aHVvYyBsYTsgVEN0eSBL aGFuaCBWaWV0IGRhIG5oYXAgbG8gaGFuZyJ2byB0dXQsIHZvIA0KYmFvIHRodW9jIGxhInZvaSB0 b25nIGdpYSB0cmkgaGFuZyBuaGFwIGtoYXUgbGEgOTcuNTk3LjY4OFVTRC4gDQogIA0KVGhlbyBr ZXQgbHVhbiBjdWEgVFRDUCB0aGkgbWF0IGhhbmcgbmhhcCBraGF1IHRyZW4gcGhhaSBwaGFuIGxv YWkgdmFvIG1hIDQ4MTkuMjAxMCANCihjbyB0aHVlIHN1YXQgdXUgZGFpIDMwJSksIG5odW5nIEN1 YyBIUSBUUEhDTSB2YSBLaGFuaCBIb2EgbGFpIGNobyBwaGFuIGxvYWkgdmFvIA0KbWEgNDgxMS45 MDEwICh0aHVlIHN1YXQgdXUgZGFpIDEwJSkgbGEgc2FpIHF1eSBkaW5oLCBnYXkgdGhhdCB0aHUg Y2hvIG5nYW4gc2FjaCBuaGEgbnVvYyAyOTIsNiB0aSBkb25nLiANCg0KTmdvYWkgcmEsIEN1YyBI USBUUEhDTSBjb24gcmF0IHR1eSB0aWVuIHRyb25nIHZpZWMgc3UgZHVuZyBrZXQgcXVhIGdpYW0g ZGluaCBjdWEgbW90IA0KZG9uIHZpIGtob25nIGNvIGNodWMgbmFuZyB0aGVvIHF1eSBkaW5oIGRl IGFwIG1hIHNvIGhhbmcgaG9hIGNobyBsbyBoYW5nIGRhdSBjbyBjdWEgDQpDdHkgVm9jYXJpbWV4 LiBUaGVvIFRUQ1AgdGhpIGxvIGhhbmcgdHJlbiBwaGFpIGFwIG1hIGhhbmcgY28gdGh1ZSBzdWF0 IHV1IGRhaSBsYSAzMCUgDQpuaHVuZyBIUSBhcCBtYSBzYWkgeHVvbmcgY29uIDUlIGdheSB0aGF0 IHRodSBjaG8gbmdhbiBzYWNoIHRyZW4gMzEsNiB0aSBkb25nLiANCg0KVGFpIEhRIEhhIE5vaSwg dmllYyBhcCBtYSBoYW5nIGhvYSBjdW5nIGNvIG5oaWV1IHNhaSBwaGFtIG5naGllbSB0cm9uZy4g S2hvbmcgaGlldSANCnZpIGx5IGRvIGdpIGN1bmcgbW90IGxvYWkgaGFuZyBob2EgbGEgcGh1IHR1 bmcsIGxpbmgga2llbiBvdG8sIHhlIG1heSwgbmh1bmcgSFEgSGEgTm9pIA0KbGFpIGFwIHZhbyBu aGlldSBtYSBraGFjIG5oYXUgZ2F5IHRoYXQgdGh1IGNobyBuZ2FuIHNhY2ggbmhhIG51b2MgbGVu IDEyLDUgdGkgZG9uZy4gVmllYyANCmFwIG1hIGhhbmcgdGh1YyBwaGFtIGN1bmcgbyB0cm9uZyB0 aW5oIHRyYW5nIHR1b25nIHR1LiBUb25nIGNvbmcgdmllYyBIUSBIYSBOb2kgYXAgDQptYSBoYW5n IGhvYSBzYWkgZGEgZ2F5IHRoYXQgdGh1IGNobyBuZ2FuIHNhY2ggdHJlbiA0MCw4IHRpIGRvbmcu IA0KDQpNYXQgdGllbiB0aSB2aSBob2FuIHRodWUgY2hvIGhhbmcgY28gQy9PIG1hdSBFIGdpYSAN Cg0KQy9PIG1hdSBFIGRvIFRydW5nIFF1b2MgY2FwIGxhIGdpYXkgY2h1bmcgbmhhbiB4dWF0IHh1 IGhhbmcgaG9hIGRlIGR1b2MgaHVvbmcgdGh1ZSANCnN1YXQgbmhhcCBraGF1IHRoYXAgaG9uIHRo dWUgc3VhdCB1dSBkYWkgYmluaCB0aHVvbmcgdmEgdGh1ZSBzdWF0IHRob25nIHRodW9uZyBkb2kg dm9pIA0KaGFuZyBuaGFwIGtoYXUuIA0KDQpUaGVvIGNvbmcgdmFuIHNvIDE3MTYgbmdheSAyNy4z LjIwMDcgY3VhIEJvIFRodW9uZyBtYWkgZ3VpIFRvbmcgY3VjIEhRIHRoaSJ0aW5oIA0KZGVuIGN1 b2kgbmFtIDIwMDYsIGNhYyBjbyBxdWFuIGNvIHRoYW0gcXV5ZW4gY2FwIEMvTyBjdWEgVHJ1bmcg UXVvYyBjaHVhIGNhcCBDL08gDQptYXUgRSBuYW8gY2hvIGhhbmcgaG9hIHh1YXQgc2FuZyBWaWV0 IE5hbSBkZSBkdW9jIGh1b25nIHV1IGRhaSB0aHVlIHF1YW4uLi4iLiANCg0KVHV5IG5oaWVuLCBk aWV1IGRhbmcgbmdhYyBuaGllbiBsYSB0dSBuZ2F5IDEuMS4yMDA2IGRlbiAzMS41LjIwMDcsIHRh aSA4IGNoaSBjdWMgSFEgDQp0aHVvYyBIUUhOIGNvIDM3MiBibyBDL08gbWF1IEUgY3VhIDM5IGRv YW5oIG5naGllcC4gS2V0IHF1YSB0cnVuZyBjYXUgZ2lhbSBkaW5oIA0KdGFpIFZpZW4gS2hvYSBo b2MgaGluaCBzdSBCbyBDb25nIGFuIGNobyB0aGF5LCBjbyAyODggYm8gY28gY29uIGRhdSBDL08g c28gdm9pIG1hdSANCmRhdSBsdXUgdGFpIFRvbmcgY3VjIEhhaSBxdWFuIGxhIGtob25nIGN1bmcg bW90IGNvbiBkYXUgZG9uZyByYS4gQ28gODQgYm8gbGEgZGF1IGdpYSANCmR1b2MgaW4gYmFuZyBw aHVvbmcgcGhhcCBpbiBsdW9pLiANCg0KVFRDUCBrZXQgbHVhbiB0b2FuIGJvIHNvIEMvTyBtYXUg RSB0cmVuIGxhIGdpYSB2YSBjYWMgZG9hbmggbmdoaWVwIG5heSBjaGllbSBkb2F0IA0KZHVvYyB0 cmVuIDUsMSB0aSBkb25nLiBYZXQgdGluaCBjaGF0IG5naGllbSB0cm9uZyBjdWEgdnUgdmllYywg VFRDUCBkYSBxdXlldCBkaW5oIA0KY2h1eWVuIGhvIHNvIHZ1IHZpZWMgdHJlbiBzYW5nIENvIHF1 YW4gQ2FuaCBzYXQgZGlldSB0cmEgQm8gQ29uZyBhbiBkZSBkYXUgdHJhbmggbGFtIHJvLiANCg0K VGFpIFRQSENNLCB0aW5oIHRyYW5nIHRyZW4gY3VuZyBkaWVuIGJpZW4gbmdoaWVtIHRyb25nLiBQ aGF0IGhpZW4gY3VhIHRoYW5oIHRyYSBjaG8gDQp0aGF5IGNoaSByaWVuZyBuYW0gMjAwNiAtIG5h bSBtYSBwaGlhIFRydW5nIFF1b2MgY2h1YSBjYXAgQy9PIG1hdSBFIHRoaSB0YWkgQ3VjIEhRIA0K VFBIQ00gY28gMzMxIHRydW9uZyBob3Agbm9wIGhvIHNvIEMvTyBtYXUgRTsgbmFtIDIwMDcgdGlu aCBkZW4gdGhvaSBkaWVtIHRoYW5oIHRyYSANCmRhIGNvIHRoZW0gMzA4IHRydW9uZyBob3AuIFR1 eSBuaGllbiB2aWVjIG5heSBjbyBsaWVuIHF1YW4gZGVuIFRvbmcgY3VjIEhhaSBxdWFuIG5lbiAN ClRUQ1Agc2Uga2V0IGx1YW4gdmEgY28ga2llbiBuZ2hpIHh1IGx5IGtoaSBrZXQgbHVhbiB0aGFu aCB0cmEgdGFpIFRvbmcgY3VjIEhhaSBxdWFuLi4uIA0KKENvbiB0aWVwKSANCg0KaHR0cDovL3d3 dy5iYW9tb2kuY29tL0luZm8vSGEtTm9pLTMxNzktZG9uLXZpLW5vLWRvbmctMTg3LXR5LWRvbmct YmFvLWhpZW0vNDcvNTIyOTE1MC5lcGkgRENTVk4gKFRoZW8gYmFvIFRoYW5oIHRyYSkgMTEvMjAx MCANCg0KSGEgTm9pOiAzLjE3OSBkb24gdmkgbm8gZG9uZyAxODcgdHkgZG9uZyBiYW8gaGllbSCW IEhhbmcgbG9hdCBzYWkgcGhhbSAtIE5ndW9pIGxhbyBkb25nIGNoaXUgdGhpZXQgDQoNClF1YSB0 aGFuaCB0cmEgOSBkb24gdmksIHF1YW4gaHV5ZW4gdHJlbiBkaWEgYmFuIFRQIEhhIE5vaSB2ZSB0 aHVjIGhpZW4gY2FjIGNoZSBkbyBiYW8gDQpoaWVtIHhhIGhvaSAoQkhYSCksIGJhbyBoaWVtIHkg dGUgKEJIWVQpLCBUaGFuaCB0cmEgVFAgSGEgTm9pIGRhIHBoYXQgaGllbiBjbyAzLjE3OSANCmRv biB2aSBubyBkb25nIEJIWEggdm9pIHNvIHRpZW4gMTg3IHR5IGRvbmcuDQoNCkRvYW4gY29uIHBo YXQgaGllbiBuaGlldSBkb24gdmkgZG9uZyBCSFhILCBCSFlUIGtob25nIGR1bmcgbXVjIHF1eSBk aW5oLCBkb25nIA0Ka2hvbmcgZHUgc28gbmd1b2kgdGh1b2MgZGllbiB0aGFtIGdpYSBCSFhIOyBj aHVhIGNoYXAgaGFuaCB2aWVjIHRyaWNoIG5vcCBCSFhILCANCkJIWVQgY2hvIG5ndW9pIGxhbyBk b25nOyB2aWVjIHhheSBkdW5nIGtlIGhvYWNoIHRodSBCSFhILCBCSFlUIGhhbmcgbmFtIGNodWEg DQpzYXQgdGh1YyB0ZTsgeSB0aHVjIGNoYXAgaGFuaCBwaGFwIGx1YXQgQkhYSCwgQkhZVCBjdWEg bW90IGJvIHBoYW4ga2hvbmcgbmhvIG5ndW9pIA0Kc3UgZHVuZyBsYW8gZG9uZyBjaHVhIG5naGll bTsgY2hlIHRhaSB4dSBwaGF0IG11YyBwaGF0IGNhYyB2aSBwaGFtIGNodWEgZHUgbWFuaCBkZSAN CmRvYW5oIG5naGllcCB0dWFuIHRodS4gVHJvbmcga2hpIGRvLCBtb3Qgc28gZG9uIHZpIG5vIGRv bmcgQkhYSCwgQkhZVCwgbmh1bmcgY28gDQpxdWFuIEJIWEggdmFuIHRoYW5oIHRvYW4gY2hlIGRv IG9tIGRhdSwgdGhhaSBzYW4sIG5naGkgZHVvbmcgc3VjOyB2aWVjIGNoaSB0aWVuIGR1b25nIA0K c3VjIGtob25nIGhldCwgbmh1bmcgY28gZG9uIHZpIEJIWEgga2hvbmcgY2h1eWVuIHNvIGR1IHNh bmcgbmFtIHNhdSBkZSBjaG8gbmd1b2kgDQpsYW8gZG9uZywga2hvbmcgYmFvIGRhbSBxdXllbiBs b2kgY3VhIG5ndW9pIGxhbyBkb25nhQ0KDQpUcmVuIGNvIHNvIGtldCBxdWEgdGhhbmggdHJhLCBU aGFuaCB0cmEgVFAgZGEga2llbiBuZ2hpIFVCTkQgVFAgSGEgTm9pIGNoaSBkYW8gY2FjIA0KZG9u IHZpIHRydXkgdGh1IDE4NyB0eSBkb25nIGN1YSAzLjE3OSBkb24gdmkgbm8gZG9uZyBCSFlULCBC SFhILCBkb25nIHRob2kgdGFuZyANCmN1b25nIGNvbmcgdGFjIHF1YW4gbHkgdmUgY29uZyB0YWMg bmF5Li8uIA0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vTmV3cy9QYWdlcy8yMDEwMzEv MjAxMDA3MjgwMDU0NDMuYXNweCBUcmFuIERhbiAtIFRoYWkgVXllbiAyOC8wNy8yMDEwIDA6NTQg DQoNCkhhIE5vaTogTmh1bmcgY29uZyB0cmluaCBsYW5nIHBoaSAtIEhhbSBkdW9uZyBibyAiY3Vh IGRvbmcgdGhlbiBjYWkiICANCiAgDQooQW5oIGNodXA6IEN1YSBoYW0gZGkgYm8gbmF5IGJpIGto b2EsIG5ndW9pIGRpIGJvIGtob25nIGNvbiBjYWNoIG5hbyBraGFjIGxhIGJ1b2MgDQpwaGFpIGJh bmcgcXVhIGR1b25nIC0gQW5oOiBUcmFuIERhbikNCg0KUmF0IG5oaWV1IGhhbSBkYW5oIGNobyBu Z3VvaSBkaSBibyBxdWEgZHVvbmcgZHVvYyBkYXUgdHUgeGF5IGR1bmcgZGUgZ2lhaSBxdXlldCAN CnRpbmggdHJhbmcgZ2lhbyB0aG9uZyBkb25nIGR1YywgbG9uIHhvbiB0YWkgSGEgTm9pLCBuaHVu ZyB4YXkgeG9uZyB0aGkgImN1YSBkb25nIA0KdGhlbiBjYWkiLCBnYXkgbGFuZyBwaGkgbmdoaWVt IHRyb25nLi4uIA0KDQpOYW0gMjAwMSwgZHUgYW4gZHVvbmcgdmFuaCBkYWkgMyBvIEhhIE5vaSBr aG9pIGRvbmcsIGNodSBkYXUgdHUgZHUgYW4gbGEgQmFuIHF1YW4gDQpseSAoQlFMKSBkdSBhbiBU aGFuZyBMb25nLiBHaWFpIGRvYW4gMSBjdWEgZHUgYW4gZ29tIGNhYyB0cnVjIGR1b25nIHR1IG51 dCBnaWFvIA0KTWFpIERpY2ggZGVuIExpbmggRGFtLCB0cm9uZyBkbyBuaHVuZyBoYW0gZGFuaCBj aG8gbmd1b2kgZGkgYm8gbGFuIGRhdSB0aWVuIHh1YXQgaGllbiBvIEhhIE5vaS4gDQoNCk1vaSBj YW4gaGFtIG5odSB0aGUgcGhhaSBkYXUgdHUga2hvYW5nIDIsNSAtIDMgdGkgZG9uZy4gQmFuIGRh dSBjaGkgY28gNiBoYW0gdHUgDQpkdW9uZyBQaGFtIEh1bmcgZGVuIGR1b25nIFRyYW4gRHV5IEh1 bmcuIEhhbSByb25nLCBjbyBiYWMgdGhhbmcgbGVuIHh1b25nIHZhIGhlIA0KdGhvbmcgY2hpZXUg c2FuZyBkYW0gYmFvLiBMdWMgbW9pIGR1YSB2YW8gc3UgZHVuZywgY2EgY2h1IGRhdSB0dSBsYW4g bmhhIHRoYXUgDQp0aGkgY29uZyBkZXUgdHUgdGluIHNlIGNvIHJhdCBuaGlldSBuZ3VvaSBjaG9u IGRpIGJvIHF1YSBoYW0uIFRoZSBuaHVuZywgc2F1IDMgDQpuYW0ga2UgdHUga2hpIGhvYW4gdGF0 LCBuaHVuZyBoYW0gbmF5IHZhbiBiaSBibyBob2FuZy4gRGVuIGtoaSBkdWEgdmFvIHN1IGR1bmcg DQpjaGluaCB0aHVjIGN1bmcgY2hhbmcgY28gbWF5IG5ndW9pIGRhbiBzdSBkdW5nLiBUaGFtIGNo aSwgdmkgcXVhLi4uIGUsIG5oaWV1IGhhbSANCnRyZW4gdHV5ZW4gZHVvbmcgUGhhbSBIdW5nIHN1 b3QgbmdheSB0aGVuIGNhaSBjdWEgZG9uZy4NCg0KVGhlbyBraGFvIHNhdCBjdWEgVGhhbmggTmll biB0cm9uZyBidW9pIGNoaWV1IDIzLjcsIHRhaSBoYW0gdHJ1b2MgY3VhIEJlbiB4ZSBNeSBEaW5o IA0KdmEgaGFtIGRvaSBkaWVuIHNpZXUgdGhpIEJpZyBDIFRoYW5nIExvbmcgKDIyMiBUcmFuIER1 eSBIdW5nKSB0aGkgbGFjIGRhYyBjbyBuZ3VvaSBkaS4gDQpDb24gbGFpLCBoZSB0aG9uZyBoYW0g ZGFuIHR1IGRhdSBkdW9uZyBQaGFtIEh1bmcsIGRvYW4gZ2FuIGNhdSB2dW90IHNhbmcgbGFuIGR1 b25nIA0KZG9pIGRpZW4gcGhpYSBjaG8gRGljaCBWb25nIEhhdSBiaSBraG9hIGN1YS4gSGFtIHRy dW9jIGN1YSBWaWV0dGVsIFRlY2hub2xvZ3kgZ2FuIA0KVHJ1bmcgdGFtIEhvaSBuZ2hpIHF1b2Mg Z2lhIHRyZW4gZHVvbmcgUGhhbSBIdW5nIGN1bmcgdHJvbmcgdGluaCB0cmFuZyBkb25nIGN1YS4g DQoNCk5vaSBvIGN1YSBuZ3VvaSB2byBnaWEgY3UNCg0KQ2hpIEhhbmgsIG5oYW4gdmllbiBDb25n IHR5IENQIGNvbmcgdHJpbmggZ2lhbyB0aG9uZyAyIEhhIE5vaSwgZGFuZyB0cnVjIGhhbSBkb2kg DQpkaWVuIHNpZXUgdGhpIEJpZyBDIGNobyBiaWV0OiAiTmdvaSB0cnVjIHRhaSBkYXksIGRlbiBt YWMgYmVuaCB0dSBreSBtYXQgdGhvaS4gDQpDbyBraGkgdG9pIG5nb2kgaG9uIDEgdGllbmcgZG9u ZyBobyBtYSBjaGFuZyB0aGF5IGFpIGRpIHF1YSBjYS4gVGhlIG5lbiwgY28gYmFvIA0KbmhpZXUg bmd1b2kgaGF5IGRpIHF1YSBoYW0sIHRvaSBkZXUgbmhhbiBtYXQsIHRoYW0gY2hpIG5hbSBkdW9j IGNoaW5oIHhhYyBjYSB0aG9pIGdpYW4iLg0KDQpRdWEgbmdhIHR1IFBoYW0gSHVuZyAtIEtodWF0 IER1eSBUaWVuIC0gVHJhbiBEdXkgSHVuZyAtIGNhbyB0b2MgTGFuZyAtIEhvYSBMYWMgDQpjdW5n IGNvIDIgaGFtLiBUaGUgbmh1bmcgY2EgaGFpIGRldSBiaSBhaSBkbyBkdW5nIHJhbyB0cmUgcXVh eSBraW4uIFRoZW8gbG9pIGtlIA0KY3VhIGNoaSBIYW5oLCBjYWNoIGRheSBraG9uZyBsYXUgbW90 IHRyb25nIHNvIG5odW5nIGhhbSB0cmVuIGR1b25nIFBoYW0gSHVuZyANCmNvbiB0cm8gdGhhbmgg bmhhIG8gY3VhIG1vdCBjYXAgdm8gY2hvbmcuICJQaG9uZyBuZ3UgY28gZGF5IGR1IHRpZW4gbmdo aTogZ2l1b25nLCANCnR1LCB0aXZpLCBxdWF0IGRpZW4gdmEga2h1IGJlcCByaWVuZyBiaWV0LiBO aHVuZyB2aSAibGVuIGJhbyIgbmhpZXUgcXVhLCBuZW4gaG8gDQpiaSBkdW9pIGRpLiBHaW8gdGhp IDQgY2FpIGN1YSBoYW0gKDIgY2FpIHBoaWEgZHVvbmcgUGhhbSBIdW5nLCAyIGNhaSBwaGlhIGdh biANCmNobyBEaWNoIFZvbmcgSGF1IC0gUFYpIGRldSBiaSBraG9hLiBEdSB0aGUsIHRoaW5oIHRo b2FuZyB2YW4gY28ga2UgZG90IG5oYXAgDQp2YW8gaGFtLCBkZSBwaG9uZyB1ZSB2YS4uLiB0aWVt IGNoaWNoLCBodXQgaGl0IiwgY2hpIEhhbmgga2UuDQoNCkFuaCBjaHVwOiB2YW8gdGhhbmcgMTAu MjAwOSwgY2FuIGhhbSBkdW9uZyBibyB0cmVuIGR1b25nIFBoYW0gSHVuZyBuYXkgY29uIGxhIA0K bm9pIG8gY3VhIG1vdCBjYXAgdm8gY2hvbmcuIFRyb25nICJuaGEiIGNvIGR1IHRpZW4gbmdoaTog dHUgZ2l1b25nLCBxdWF0IGRpZW4sIA0KdGl2aSwgYmVwIGdhcywgbm9pIGNvbSBkaWVuLi4uIC0g QW5oOiBUcmFuIERhbg0KDQpUaGFtIGNoaSwgbW90IHRyb25nIG5odW5nIGhhbSBkdW9uZyBibyBo aWVuIGRhaSBuaGF0IEhhIE5vaSBiYXkgZ2lvLCBjbyB2b24gZGF1IA0KdHUgbGVuIGRlbiBnYW4g MS41MDAgdGkgZG9uZyBsYSBoYW0gZHVvbmcgYm8gTmdhIFR1IFNvIGxhaSB0cm8gdGhhbmggZGll bSB2dWkgDQpjaG9pLCB0YXAgeGUgZGFwLi4uIGN1YSBuZ3VvaSBkYW4gdGh1IGRvLiBIYW0gImUi IGtoYWNoLCBwaGFuIHZpIGNvIHF1YSBuaGlldSANCmN1YSBsZW4geHVvbmcgKDEyIGN1YSksIHZh IGJhbmcgY2hpIGRhbiBsYWkga2hvbmcgcm8gcmFuZy4gTmd1eWVuIFRoaSBMYW4gKFNWIA0KREgg VGh1eSBsb2kgdHJvIHRhaSBUcnVvbmcgQ2hpbmgpIGtlOiAiRW0gZGkgY2hvIE5nYSBUdSBTbyBj aG9pLCBsdWMgdmUgZGkgaGFtIA0KZHVvbmcgYm8gZGUgbGVuIGR1b25nIFRydW9uZyBDaGluaC4g Tmh1bmcgZW0gbmhpbiB0aGF5IDIgYmllbjogMSBkZSBUcnVvbmcgQ2hpbmggDQotIFRheSBTb24s IDEgZGUgVHJ1b25nIENoaW5oIC0gTmd1eWVuIFRyYWkgLSBMYW5nLCBsb2FuZyBuZ29hbmcga2hv IGhpZXUgcXVhLCANCmhvaSBiYWMgYmFvIHZlIHRydWMgaGFtIG1hIHZhbiBiaSBzYWkgY3VhIGxl bi4gQ3VvaSBjdW5nIGVtIGNoYW5nIGJpZXQgZGkgbmh1IA0KdGhlIG5hbywgZGFuaCBxdWF5IGxl biwgZGkgcXVhIGR1b25nIiwgDQoNCkRvbmcgY3VhIGRlLi4uIGNob25nIGh1IGhvbmchDQoNCkNh dSBob2kgZGF0IHJhIGxhIHRhaSBzYW8gaGFtIGR1b25nIGJvIHZhIG5odW5nIGNheSBjYXUgdnVv dCB2YW4gbWluaCwgaGllbiBkYWkgDQpuaHUgdGhlIGxhaSBiaSBibyBob2FuZywgaG9hYyBuZXUg Y28gc3UgZHVuZyB0aGkgaGlldSBxdWEga2hvbmcgY2FvLCBnYXkgbGFuZyANCnBoaSB0aWVuIGN1 YSwgY29uZyBzdWMgeGF5IGR1bmc/IFRyb25nIGtoaSBtb2kgbmdheSwgbyBIYSBOb2kgY28ga2hv bmcgaXQgbmh1bmcgDQp2dSB0YWkgbmFuIGdpYW8gdGhvbmcgbWEgdGh1IHBoYW0gKHZhIGN1bmcg Y28gdGhlIGxhIG5hbiBuaGFuKSBjaGluaCBsYSBuZ3VvaSBkaSBibyBzYW5nIGR1b25nLiANCg0K IlZhbiBkZSBkYXQgcmEga2hvbmcgcGhhaSB4YXkgZHVuZyBuaHVuZyBnaSBtYSBsYSBzYXUga2hp IHhheSBkdW5nIHhvbmcgc2UgcXVhbiANCmx5IG5odSB0aGUgbmFvLiBUb2kgZGEgdHVuZyBzYW5n IE5hbSBOaW5oIChUcnVuZyBRdW9jKSwgdGhheSBoYW0gZGkgYm8gdmEgY2F1IA0KdnVvdCBjdWEg bmd1b2kgdGEgaG9hdCBkb25nIHJhdCBoaWV1IHF1YS4uLiIsIGFuaCBOZ3V5ZW4gVmFuIER1bmcg KG5nbyAxNjYgVHJhbiANCkR1eSBIdW5nLCBRLkNhdSBHaWF5KSBkdW5nIGRvaSB4ZSB0YWkgQmVu IHhlIE15IERpbmggYmF5IHRvLiBUaGVvIHF1YW4gZGllbSBjdWEgDQphbmggRHVuZywgY2FuIHBo YWkgZGF1IHR1IG1vdCBjYWNoIGRvbmcgYm8gY2FjIGNvbmcgdHJpbmgsIGNhaSBubyBobyB0cm8g Y2FpIGtpYSANCm1vaSBtb25nIHN1IGR1bmcgaGlldSBxdWEsIHRyYW5oIGxhbmcgcGhpLg0KDQpU cmEgbG9pIFRoYW5oIE5pZW4sIG9uZyBUcmFuIFF1b2MgVmlldCwgQ3VjIHRydW9uZyBDdWMgUXVh biBseSB4YXkgZHVuZyB2YSBjaGF0IA0KbHVvbmcgY29uZyB0cmluaCBnaWFvIHRob25nIC0gQm8g R1RWVCwgY2hvIHJhbmcgbmhpZXUgaGFtIGR1b25nIGJvIHRhaSBraHUgdnVjIFRQIA0KSGEgTm9p IGR1b2MgZGF1IHR1IHhheSBkdW5nIG8gbmhpZXUgdGhvaSBkaWVtIGtoYWMgbmhhdS4gRGVuIG5h eSBuaGlldSBoYW0gdmFuIA0KY2h1YSBkdW9jIGJhbiBnaWFvIGRlIGtoYWkgdGhhYyBzdSBkdW5n IHZpIHRodSB0dWMgaG9hYyBjYWMgaGEgdGFuZyBrZW0gdGhlbyBjaHVhIA0KeG9uZy4gT25nIFZp ZXQgY2hvIHJhbmc6ICJDYSBoZSB0aG9uZyBkdW9uZyBob2FjIGhhbSBwaGFpIGhvYW4gdGhpZW4g ZG9uZyBibyB0aGkgDQp2aWVjIGtoYWkgdGhhYyBtb2kgY28gaGlldSBxdWEiLg0KDQpNb3QgY2Fu IGJvIGNvIHRyYWNoIG5oaWVtIHRodW9jIEJRTCBUaGFuZyBMb25nLCBjaHUgZGF1IHR1IGN1YSBo ZSB0aG9uZyBoYW0gZHVvbmcgDQpibyB0cmVuIGR1b25nIHZhbmggZGFpIDMgLSBIYSBOb2ksIGN1 bmcgeGFjIG5oYW4gbmhpZXUgaGFtIHRyZW4gdHV5ZW4gZHUgZGEgaG9hbiANCnRoaWVuIG5odW5n IGNodWEgYmFuIGdpYW8gYm9pIG5oaWV1IGx5IGRvIGtoYWMgbmhhdS4gQ3UgdGhlLCA2IGhhbSB0 cmVuIGR1b25nIFBoYW0gDQpIdW5nLCBkb2FuIHR1IFRydW5nIEhvYSBkZW4gTWFpIERpY2gsIGRh IGhvYW4gdGhhbmggdHUgcmF0IGxhdSBuaHVuZyBjaGkgY28gNCBoYW0gDQpkdW9jIGJhbiBnaWFv LCAyIGhhbSBjb24gbGFpIGRhbmcgcGhhdCBzaW5oIG1vdCBzbyB2dW9uZyBtYWMgdmUgZ2lhaSBw aG9uZyBtYXQgYmFuZy4gDQpUdW9uZyB0dSwgY2FjIGhhbSB0cmVuIHR1eWVuIHZhbmggZGFpIDMg dHUgVGhhbmggWHVhbiAtIExpbmggRGFtIGRhbmcgdHJvbmcgZ2lhaSBkb2FuIA0KaG9hbiB0aGll biB2ZSBobyBzbyB0aHUgdHVjLiBEbyBjaHVhIGR1b2MgYmFuIGdpYW8gbmVuIG5oaWV1IGhhbSBk YW5nIHBoYWkgImN1YSBkb25nIA0KdGhlbiBjYWkiIGRlIGNob25nIG1hdCBtYXQgaG9hYyBodSBo b25nIHRhaSBzYW4gdHJvbmcgaGFtLCBkdSB0YWkgY2FjIGhhbSBuYXkgZGV1IA0KY28gbHVjIGx1 b25nIGJhbyB2ZSB0aHVvbmcgeHV5ZW4gdHVjIHRydWMuLi4gDQoNCi0tLS0tDQoNClRpbiBsaWVu IHF1YW4gIA0KLS0tLS0NCmh0dHA6Ly93d3cuYmFvbW9pLmNvbS9JbmZvL1RRLWtoYWktdGhhYy1z b25nLU1lLUtvbmctdmEtbmd1eS1jby1naWV0LWNoZXQtREJTQ0wvMTIyLzI4NTI1NjIuZXBpDQoN ClRRIGtoYWkgdGhhYyBzb25nIE1lIEtvbmcgdmEgbmd1eSBjbyBnaWV0IGNoZXQgREJTQ0wNCg0K aHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5LzIwMTAwNzE1MDIx NjM2LmFzcHggVG8gVmFuIFRydW9uZyAxNS8wNy8yMDEwIDI6MTYgDQoNCk1lIEtvbmcgZGFuZyBr aGF0ICAgDQogIA0KWHVhIG5heSwgbmd1b2kgdGEgdGh1b25nIG5vaSBkZW4gdmllYyBwaG9uZyBj aG9uZyBsdSwgbmh1bmcgdHJvbmcgbmh1bmcgbmFtIGdhbiBkYXkgDQpkbyB0YWMgZG9uZyBjdWEg Y29uIG5ndW9pIHZhIGFuaCBodW9uZyBjdWEgYmllbiBkb2kga2hpIGhhdSwgbmd1b24gbnVvYyBz b25nIE1lIA0KS29uZyBkYW5nIGR1bmcgdHJ1b2Mgbmd1eSBjbyBjYW4ga2lldCBoYXkgbm9pIGNh Y2gga2hhYyBzb25nIE1lIEtvbmcgZGFuZyBraGF0IGxhaSANCnRybyB0aGFuaCB2YW4gZGUgdHJv bmcgeWV1IHRyb25nIGNvbmcgdGFjIHF1YW4gbHkgdGFpIG5ndXllbiBudW9jLiANCg0KTmd1eWVu IG5oYW4gZ2F5IGNhbiBraWV0IG5ndW9uIG51b2Mgc29uZyBNZSBLb25nIG5nb2FpIHlldSB0byB0 dSBuaGllbiBkbyB0YWMgZG9uZyANCmN1YSBiaWVuIGRvaSBraGkgaGF1LCBjb24gZG8gY2FjIGhv YXQgZG9uZyBjdWEgY29uIG5ndW9pLiBUcnVuZyBRdW9jIGRhIHZhIGRhbmcgdGllbiANCmhhbmgg eGF5IGR1bmcgOCBuaGEgbWF5IHRodXkgZGllbiBvIHRodW9uZyBsdXUgc29uZyBNZSBLb25nLiBU YWMgZG9uZyB4YXUgZG8gY2FjIA0KbmhhIG1heSB0aHV5IGRpZW4gbWFuZyBsYWkgbGEgbGFtIHRo YXkgZG9pIGNoZSBkbyBkb25nIGNoYXksIGx1b25nIHBodSBzYSwgdGh1eSBzYW4gdmEgDQpnYXkg eG9pIGxvIG8gaGEgbHV1LiANCg0KRGUgZG9uZyBiYW5nIHNvbmcgQ3V1IExvbmcgdmFuIGdpdSB2 dW5nIHZhaSB0cm8gYW4gbmluaCBsdW9uZyB0aHVjIHF1b2MgZ2lhLCBub2kgc2FuIA0KeHVhdCB0 aHV5IHNhbiB2YSBjYXkgYW4gdHJhaSBsb24gbmhhdCBjYSBudW9jLCBkb2kgaG9pIE5oYSBudW9j IGNvIHN1IHF1YW4gdGFtIHRoaWNoIA0KZGFuZyB0cm9uZyBjaGllbiBsdW9jIGRhdSB0dSBjaG8g bm9uZyBuZ2hpZXAsIG5vbmcgdGhvbiB2YSBjaGluaCBzYWNoIGRvaSB2b2kgbmd1b2kgDQpub25n IGRhbi4gUGhhdCB0cmllbiBiZW4gdnVuZywgdGFwIHRydW5nIHZhIG5hbmcgY2FvIGxhdSBkYWkg cGhvbiB2aW5oIGN1YSB4YSBob2kgdGhlbyANCnRob2kgZ2lhbiBraG9uZyB0aGUgdGFjaCByb2kg bmd1b24gbnVvYyBiZW4gdnVuZy4gDQoNCkNodW5nIHRhIGRhbmcgcGhhaSB0cmFpIHF1YSBuaHVu ZyBuZ2F5IG9pIGJ1YyBjaHVhIHR1bmcgY28uIEtob25nIHBoYWkgY2hpIHJpZW5nIHNvbmcgDQpN ZSBLb25nIG1hIGNhYyBjb24gc29uZyBraGFjIG8gVmlldCBOYW0gdmFvIG11YSBraG8gZGV1IGto YXQsIGNvIG5ndXkgY28gY2FuIGtpZXQuIA0KSGllbiBuYXksIHZpZWMgcXVhbiBseSBsdXUgdnVj IHNvbmcgdmFuIGNvbiBjaG9uZyBjaGVvIGdpdWEgMiBCbyBUYWkgbmd1eWVuIHZhIE1vaSANCnRy dW9uZywgQm8gTm9uZyBuZ2hpZXAgdmEgUGhhdCB0cmllbiBub25nIHRob24uIERhIGRlbiBsdWMg Q2hpbmggcGh1IGNhbiBwaGFpIG5naGkgZGVuIA0KdmllYyBob3AgbmhhdCBtb3QgY28gcXVhbiwg bGF5IHRodWMgdGUgdmUgY2FpIHRoaWVuIGN1b2Mgc29uZyBjdWEgbmd1b2kgZGFuIGxhbSB0aHVv YyBkbyANCmhpZXUgcXVhIHF1YW4gbHkuIA0KDQpodHRwOi8vYmF1eGl0ZXZpZXRuYW0uaW5mby9j LzM2MDAuaHRtbA0KDQpIYXkgY3VuZyBuaGF1IGNodW5nIHN1YyBjdXUgbGF5IHNvbmcgTWVrb25n IA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi90aGVnaW9pL2hvc28vMjAwOS8wOC84NjI2NzYvIDEw OjQ0LCAxMC8wOC8yMDA5IChHTVQrNykNCg0KQ2hpZW4gbHVvYyBiaSBtYXQgY3VhIFRydW5nIFF1 b2Mgdm9pIE1la29uZyANCg0KVHJvbmcgbmhpZXUgdGhhcCBuaWVuLCBjaGllbiBsdW9jIGN1YSBU cnVuZyBRdW9jIGxhIHRodWMgaGllbiBuaHVuZyBkdSBhbiB2ZSBzb25nIE1la29uZyB0cm9uZyBp bSBsYW5nIHZhIGJpIG1hdC4gVHJ1bmcgUXVvYyB4YXkgZGFwIE1hbndhbiAoMTk4Ni0xOTkzKSBv IG1vdCBraHUgdnVjIHhhIHhvaSB2YSBraG9uZyB0aGFtIHZhbiBiYXQga2UgbnVvYyBuYW8gdnVu ZyBoYSBuZ3Vvbi4NCg0KKEN1IHRyaSBxdWFtIHRhbTogY2FjaCBkYW5oICJ0aHV5IGNvbmciIGN1 YSBUcnVuZyBRdW9jIGRhIGNvIHR1IHRob2kgdHJ1bmcgY28gLSBnYXkgbHV0IGxvaSwgaGFuIGhh biwgbWF0IG11YSwgY2hldCBjaG9jLCB0YW4gcGhhLCBodXkgZGlldCAtICJuaGF0IHRodXksIG5o aSBob2EiLCB2byBjdW5nIHRhbiBiYW8pLg0KDQpodHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4v TmV3cy9QYWdlcy8yMDEwMjgvMjAxMDA3MDkwMDUxNDUuYXNweCBDaGkgTmhhbiAgMDkvMDcvMjAx MCAwOjUxIA0KDQpTb25nIEN1dSBMb25nIGNoaSBjb24gIlRoYXQgTG9uZyINCg0KRHVvaSB0YWMg ZG9uZyBjdWEgdHUgbmhpZW4gdmEgY29uIG5ndW9pLCBzb25nIEN1dSBMb25nIGhpZW4gY2hpIGNv biA3IGN1YSBkYW5nIGhvYXQgZG9uZy4uLi4gDQoNCjIgY3VhIHNvbmcgY2hldCBkYW4gLSBEbyBs YSBjdWEgQmEgTGFpIHZhIGN1YSBCYXQgU2FjIChCYXNzYWMpLiBIYWkgY3VhIHNvbmcgbmF5IGRh IA0Kbmd1bmcgY2hheSBkbyBib2kgdHUgdmEgeGF5IGR1bmcgY29uZyB0cmluaCBnaWFvIHRob25n IHRodXkgbG9pLiBEYXkgbGEga2V0IGx1YW4gY3VhIA0KVmllbiBEaWEgY2hhdCAoVmllbiBLaG9h IGhvYyB2YSBDb25nIG5naGUgVmlldCBOYW0pIHNhdSBxdWEgdHJpbmggbmdoaWVuIGN1dSBrZW8g ZGFpIA0KbyBjYWMgY3VhIHNvbmcgdmEgdnVuZyB2ZW4gYmllbiBEQlNDTCBob24gNTAgbmFtLiAN Cg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDA5LzIwMTAwMjI3 MjM1NzA3LmFzcHggMjctMDItMjAxMCAyMzo1NyANCg0KTWUgS29uZyBzdXkga2lldCANCg0KQ2Fj IGRhcCB0aHV5IGRpZW4gdHJlbiB0aHVvbmcgbmd1b24gc29uZyBNZSBLb25nIGRhbmcga2hpZW4g REJTQ0wgcGhpIG5oaWV1LCBzb25nIHJhY2ggY2hhbmcgY2hpdCBkb2kgbWF0IHZvaSBraG8gaGFu LiANCk5odW5nIHRhYyBoYWkgZGVuIHNpbmggdGhhaSwgbW9pIHRydW9uZywgZG9pIHNvbmcuLi4g Y3VhIG5ndW9pIGRhbiBEQlNDTCBkYW5nIGhpZW4gaGllbi4gDQoNCk11YSBraG8gaGFuIHRhbiBr aG9jIA0KDQpUYWkgdGhpIHhhIFZpIFRoYW5oIChIYXUgR2lhbmcpLCBudW9jIG1hbiBkYSB4YW0g bmhhcCBzYXUgdmFvIGNhYyB4YSBUYW4gVGllbiwgSG9hIFRpZW4gdmEgSG9hIEx1dS4NCg0KVGFp IFRpZW4gR2lhbmcsIG51b2MgbWFuIGRhIHhhbSBuaGFwIHZhbyBkYXQgbGllbiB0cmVuIDM1IGtt IA0KDQpUYWkgQmVuIFRyZSwgbnVvYyBtYW4gZGEgeGFtIG5oYXAgc2F1IHZhbyBkYXQgbGllbiB0 cmVuIDIzIGttLiBYYW0gbWFuIGtlbyB0aGVvIHRpbmggdHJhbmcgdGhpZXUgbnVvYyBuZ290IG8g Y2FjIHhhIA0KdmVuIGJpZW4gbmh1IFRoYW5oIFBodW9jLCBUaHVhIER1YywgVGhvaSBUaHVhbiAo aHV5ZW4gQmluaCBEYWkpOyBwaGFpIGRpIGRvaSBoYXkgbXVhIG51b2MgbmdvdCB2b2kgZ2lhIDIu MDAwIGRvbmcvNDAgbGl0IHZlIHN1IGR1bmcuIA0KDQpUYWkgQ2FuIFRobywgeGFtIG1hbiBkYSBs YW4gc2F1IHZhbyBodXllbiBWaW5oIFRoYW5oLiANCg0KVGFpIEFuIEdpYW5nLCBuaGlldSBrZW5o IG5vaSBkb25nIGdhbiBuaHUgdHJvIGRheTsgbmd1b2kgZGFuIHZ1bmcgbnVpIFRyaSBUb24sIFRp bmggQmllbiBwaGFpIGRpIG11YSBudW9jIHNhY2ggdm9pIGdpYSAyLjAwMCBkb25nLzMwIGxpdC4g DQoNCk1lIEtvbmcgZGFuZyBiaSAic2F0IHRodW9uZyINCg0KVGhlbyB0aWVuIHNpIER1b25nIFZh biBOaSwgR2lhbSBkb2MgVHJ1bmcgdGFtIFRodWMgbmdoaWVtIGRhIGRhbmcgc2luaCBob2MgSG9h IEFuIC0gRGFpIGhvYyBDYW4gVGhvLCB2aWVjIHhheSBjYWMgZGFwIA0KdGh1eSBkaWVuIGRhIGtl byB0aGVvIG5oaWV1IHRhYyBkb25nIG5odSBsdSB2ZSBtdW9uIGhvbiBuaHVuZyBrZXQgdGh1YyBz b20gaG9uLiANCg0KVGllbiBzaSBOaSBjaG8gcmFuZyB2aWVjIGNhYyBkYXAgdGh1eSBkaWVuIHRo dW9uZyBuZ3VvbiB0cnUgbnVvYywga2hvbmcgY2hvIGJpZXQgbHVjIG5hbyB4YSBudW9jIGx1YyBu YW8ga2hvbmcsIA0KY2FuZyBnYXkga2hvIGtoYW4gdHJvbmcgbXVhIGtobyBoYW4uIA0KDQpIYSBs dXUgbmd1eSBraG9uDQoNCkNhYyBudW9jIHZ1bmcgaGEgbHV1IGRhbmcgbG8gbGFuZyB2ZSBuaHVu ZyB0YWMgZG9uZyB0aWV1IGN1YyB4YXkgcmEga2hpIGRvbmcgY2hheSBkdW9pIG5heSBob2FuIHRv YW4gcGh1IHRodW9jIA0KdmFvIHF1eSB0cmluaCB2YW4gaGFuaCBjdWEgY2FjIGRhcCB0aHV5IGRp ZW4gdHJlbiB0aHVvbmcgbHV1IHNvbmcgTWUgS29uZy4gDQoNCk5ldSBnYXAgbmFtIGx1IGxvbiwg a2hpIGRpbmggbHUgdmUgZ2FwIGhvIGRhIGRheSBudW9jLCBraG9uZyBjb24ga2hhIG5hbmcgY2F0 IGx1LCBjbyB0aGUgZ2F5IGx1IGxvbiBob24gY2hvIGhhIGx1dS4gDQpDb24gdmFvIG5odW5nIG5h bSBsdSB2dWEgdmEgbmhvLCBwaGlhIGhhIGx1dSAtIGRhYyBiaWV0IGxhIERCU0NMIC0gc2UgY28g bmh1bmcgYW5oIGh1b25nIG5oYXQgZGluaCB0cm9uZyBjYSBtdWEgbHUgdmEgbXVhIGtpZXQuIA0K DQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4veGFob2kvMjAwOTEyL1NhLW1hYy1naXVhLXNvbmct SG9uZy04ODM0MDMvIDA1OjU3LCAxMC8xMi8yMDA5IChHTVQrNykNCg0KJ1NhIG1hYycgZ2l1YSBz b25nIEhvbmcNCg0KU29uZyBIb25nIHRybyBkYXkgbyBtdWMga3kgbHVjIGtob25nIGNvbiBsYSBs b2kgY2FuaCBiYW8gdmUgc3UgYmllbiBkb2kga2hpIGhhdS4NCg0KU29uZyBIb25nIGNhbiBuaHUg dGhlIG5heSBsYSBzdSBraWVuIGh5IGh1dSBjdWEgaG9uIHRyYW0gbmFtIHF1YS4gVHV5IG5oaWVu IGxvaSBjYW5oIGJhbyB2ZSBzdSBraGFjIG5naGlldCBuYXkgdGhpIA0KZGEgZHVvYyBjaGluaCBu byBjYW5oIGJhbyBvIG5odW5nIG5hbSB0cnVvYy4NCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL05ld3MvUGFnZXMvMjAxMDI3LzIwMTAwNjI4MDAxMTM3LmFzcHggMjgvMDYvMjAxMCAwOjEx IA0KDQpUaHV5IGRpZW4gSG9hIEJpbmggIm1hdCIgNTAwIHRyaWV1IG0zIG51b2MgIA0KICANCkNv IHkga2llbiBkYXQgdmFuIGRlIHZpZWMgdGhpZXUgbnVvYyBjdWEgY2FjIG5oYSBtYXkgdGh1eSBk aWVuIHBoaWEgQmFjIGxhIGRvIGhvYXQgDQpkb25nIGN1YSBjYWMgbmhhIG1heSB0aHV5IGRpZW4g VHJ1bmcgUXVvYy4gVHJvbmcgbXVhIGtobyAyMDA5LTIwMTAsIGRvbmcgY2hheSB0cmVuIA0KY2Fj IHNvbmcgdHUgVHJ1bmcgUXVvYyB2YW8gVk4gZGF0IG11YyB0aGFwIG5oYXQgdHJvbmcgbGljaCBz dSwgdHJvbmcga2hpIG5oaWV1IHRob2kgDQpkaWVtIFRydW5nIFF1b2MgdGljaCBudW9jIHBoaWEg dGh1b25nIG5ndW9uIG5odW5nIGxhaSBraG9uZyB4YSBudW9jIGR1bmcgdGhvaSBkaWVtIA0KcGhp YSBWTiBjYW4uIA0KDQpUaG9pIGdpYW4gdGljaCBudW9jIGNoZW5oIGxlY2ggKHBoaWEgVHJ1bmcg UXVvYyBsYSBnaXVhIHRoYW5nIDcgdHJvbmcga2hpIA0KVk4gbWFpIGN1b2kgdGhhbmcgOCkga2hp ZW4gdmllYyB0aWNoIG51b2MgY2hvIGNhYyBobyB0aHV5IGRpZW4gdHJvIG5lbiBwaHUgdGh1b2Mg dmEgZ2FwIA0Ka2hvIGtoYW4gaG9uLCBkYWMgYmlldCB0cm9uZyB0aG9pIGRpZW0ga2hvIGhhbiBo aWVuIG5heS4gDQoNCmh0dHA6Ly93d3cudmlldG5hbW5ldC52bi94YWhvaS8yMDEwMTEvSGEtTm9p LUNheS10cmFtLXR1b2ktbWF0LXRpY2gtbGFpLXZlLWNoby1jdS05NDU5NzAvIFRodSBMeSAyMjow NywgMDQvMTEvMjAxMCAoR01UKzcpIA0KDQpIYSBOb2k6IE5nYW5nIG5oaWVuIGJ1bmcgY2F5IEJv IERlIHRyYW0gdHVvaSBkYW5nIGJhbyB0b24gliBhaSBjaGl1IHRyYWNoIG5oaWVtPyANCg0KLSAx N2ggbmdheSA0LzExLCBjYXkgYm8gZGUgdHJhbSB0dW9pIGR1b2MgdGltIHRoYXkgdGFpIG5nbyAz MTAgRHVvbmcgTmdoaSBUYW0gKFEuIFRheSANCkhvLCBIYSBOb2kpIGRhIGR1b2MgQ29uZyB0eSBU TkhIIG1vdCB0aGFuaCB2aWVuIENvbmcgdmllbiBDYXkgeGFuaCBIYSBOb2kgY2h1eWVuIA0KdmUg dHJvbmcgbGFpIGR1bmcgbm9pIGNheSBkYSBiaSBkYW8gZGkuIA0KDQpIYW5nIGNodWMgbmd1b2kg ZGFuIHh1bmcgcXVhbmgga2h1IHZ1YyB4YXkgZHVuZyBUcnVuZyB0YW0gVGh1b25nIG1haSBkaWNo IHZ1IHZhIA0KY2hvIDE5LTEyIGRhIGhvIGhvaSByYSB4ZW0gY2FuaCBnb2MgY2F5IGNvIHRodSB0 cm8gdmUgbmd1eWVuIHZlbiBjaG8gY3UuDQoNCihBbmg6IE5ndW9pIGRhbiBuYW8gbnVjIGRlbiB4 ZW0gY2FuaCBjYXkgYm8gZGUgZHVvYyB0cm9uZyBsYWkpIA0KDQpUdXkgbmhpZW4sIG5odW5nIG5n dW9pIGNodW5nIGtpZW4gY2FuaCBuYXkgY3VuZyBraG9uZyBraG9pIHhvdCB4YSBraGkgY2F5IGNv IHRodSBnYW4gDQpibyB2b2kgaG8gYmFvIG5oaWV1IG5hbSBnaW8geG8geGFjLCBiaSBjdWEgbmhh bSBuaG8sIHJlIGNoaW5oIHZhIHJlIGxhbiBraG9uZyBjb24uIA0KTmhpZXUgbmd1b2kgYmF5IHRv IHN1IGxvIGxhbmcga2hvbmcgYmlldCBjYXkgY28gc29uZyBkdW9jIGtob25nIGtoaSB4dW5nIHF1 YW5oIGxhIG1vdCANCmNvbmcgdHJ1b25nIGRhbmcgeGF5IGR1bmcgdm9pIHhpIG1hbmcsIGNhdCBz b2kuDQoNClNhbmcgY3VuZyBuZ2F5LCBraGkgdGltIHRoYXkgY2F5IGJvIGRlIHRyYW0gdHVvaSwg dHJhbyBkb2kgdm9pIGNhYyBQViwgb25nIE5ndXllbiBYdWFuIA0KSHVuZywgUGhvIFRvbmcgR2lh bSBkb2MgQ29uZyB0eSBUTkhIIG1vdCB0aGFuaCB2aWVuIENvbmcgdmllbiBDYXkgeGFuaCBIYSBO b2kgDQpjaG8gYmlldCwgY2F5IGJvIGRlIHNlIGR1b2MgY2h1eWVuIHZlIHZ1b24gdW9tIGRlIGNo YW0gc29jIGNobyBob2kgcGh1Yy4gDQoNClR1eSBuaGllbiwgZGVuIGNoaWV1LCBraG9uZyBybyBu Z3V5ZW4gbmhhbiB2aSBzYW8sIGNheSBibyBkZSBuYXkgbGFpIGR1b2MgY2h1eWVuIHRoYW5nIA0K dmUgdmkgdHJpIGJhbiBkYXUgdHJ1b2Mga2hpIGJpICJtYXQgdGljaCIhDQoNCihBbmg6IFJhdCBr aG8ga2hhbiBkZSB0cm9uZyBsYWkgZHVvYyBjYXkgYm8gZGUgbmh1bmcgbGFtIHNhbyBkZSBjYXkg c29uZyBkdW9jIGNvbiBraG8gaG9uISkgDQpNb3QgY2F1IGhvaSBudWEgbWEgZHUgbHVhbiBiYW4g a2hvYW4gbGEgdGFpIHNhbyBkZW4gdGhvaSBkaWVtIG5heSBraG9uZyBjbyBtb3QgdGhvbmcgDQpi YW8gdHUgcGhpYSBjYWMgY28gcXVhbiBjaHVjIG5hbmcgdmUgdmllYyBjb25nIHR5IG5hbyBkdWEg Y2F5IGJvIGRlIGRlbiBuZ28gMzEwIGR1b25nIA0KTmdoaSBUYW0gc2FuZyA0LzExPyANCkRheSBr aG9uZyBwaGFpIGxhbiBkYXUgdGllbiwgY2F5IGNvIHRodSBvIEhhIE5vaSBiaSAiYmllbiBtYXQi IGJpIGFuIHZpIG5hbSB0cm9uZyBraHUgdnVjIGNhYyBjb25nIHRyaW5oIHhheSBkdW5nLCBob2Fj ICJjaGFuIiB0cnVvYyBuaGEgZGFuLiANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9p LzIwMTAxMS9IYS1Ob2ktZHVuZy12b25nLWhvYS10YW5nLWtodW5nLWJvLW5oYS1naWFtLWRvYy05 NDc3MjIvIFYuVCAodG9uZyBob3ApICAwNToxMSwgMTcvMTEvMjAxMCAoR01UKzcpDQoNCkhhIE5v aTogRHVuZyB2b25nIGhvYSAia2h1bmcgYm8iIGdpYW0gZG9jDQoNCkRlIHRodWMgaGllbiBoYW5o IHZpIGRlIGRvYSwgMiBkb2kgdHVvbmcgbGEgbWF0IGRhIG1hbmcgdm9uZyBob2EgZGVuIGRhdCB0 YWkgbmhhIG1vdCANCmdpYW0gZG9jIG8gcGhvIE5ndXllbiBRdWFuZyBCaWNoLCBxdWFuIEhvYW4g S2llbSwgSGEgTm9pLg0KDQpUaG9uZyB0aW4gdHJlbiBkdW9jIG1vdCBzbyBiYW8gZHVhIHZhbyBu Z2F5IDE2LzExLiBUaGVvIGJhbyBMYW8gZG9uZyB2YSBITk0sIENBIA0KcXVhbiBIb2FuIEtpZW0g Y2hvIGJpZXQgZGEgYmF0IGdpdSAyIGRvaSB0dW9uZyB2ZSBoYW5oIHZpIGRlIGRvYSBnaWEgZGlu aCBuZ3VvaSBraGFjLCANCmRvbmcgdGhvaSB0YW0gZ2l1IGhhbmggY2hpbmggMyBkb2kgdHVvbmcg Y28gbGllbiBxdWFuLg0KDQpTdSB2aWVjIGRpZW4gcmEgdmFvIGRlbSAxNC8xMSwga2hpIGNvIGhh aSB0aGFuaCBuaWVuIGRpIHRyZW4gbW90IHhlIG1heSB2YSBtYW5nIG1vdCANCnZvbmcgaG9hIHRh bmcgbGUgY28gaW4gZG9uZyBjaHUgIlZvIGN1bmcgdGh1b25nIHRpZWMgYW5oIEhpZXAgU29uIiBk YXQgdHJ1b2MgY3VhIG5oYSANCmFuaCBDYW8gUXVhbmcgSGllcCwgaGllbiBsYSBnaWFtIGRvYyBD b25nIHR5IENvIHBoYW4ga2hhY2ggc2FuIGR1IGxpY2ggUGh1bmcgSHVuZy4NCg0KVGhlbyBiYW8g bmF5LCBzYXUga2hpIHZhbyBjdW9jLCBjbyBxdWFuIGRpZXUgdHJhIGRhIGJhdCBkdW9jIGhhaSBk b2kgdHVvbmcgbWFuZyB2b25nIA0KaG9hIGRlbiBuaGEgYW5oIEhpZXAgbGE6IE5ndXllbiBEaW5o IEhhbyAoU04gMTk4OCwgbyB0aGkgdHJhbiBIdW5nIEhhLCBUaGFpIEJpbmgpIHZhIA0KRGFuZyBW YW4gSGFvIChTTiAxOTg4LCBOZ29jIExhbSwgTXkgSGFvLCBIdW5nIFllbikuIA0KDQoiSGFpIGRv aSB0dW9uZyBuYXkga2hhaSBuaGFuIGxhIG5oYW4gdmllbiBxdWFuIEthcmFva2UgUXVlZW4tMTIx IFBodW5nIEh1bmcuIFRpZXAgDQp0dWMgZGlldSB0cmEsIGJ1b2MgZGF1IGNvIHF1YW4gY29uZyBh biBkYSBsYW0gcm8sICBxdWFuIEthcmFva2UgUXVlZW4tMTIxIFBodW5nIEh1bmcgDQpsYSBkbyBh bmggVGhhbmcgdmEgYW5oIFZpbmggKGNodWEgeGFjIGRpbmggZHVvYyBkaWEgY2hpKSB0aHVlIGN1 YSBDb25nIHR5IENvIHBoYW4gDQpraGFjaCBzYW4gZHUgbGljaCBQaHVuZyBIdW5nIGNvIHRob2kg aGFuIDIgbmFtLiBEZW4gbmF5IGRhIGhldCBob3AgZG9uZywgQ3R5IGtob25nIA0KY2hvIHRodWUg bnVhLCBkb2kgbGFpIG5odW5nIGFuaCBUaGFuZyB2YSBhbmggVmluaCBsYWkgY2h1YSBtdW9uIHRy YS4gQ3R5IHRyZW4gZGEgdGllbiBoYW5oIGNhdCBkaWVuLCBuZW4gYW5oIFRoYW5nIGRhIGNoaSBk YW8gaGFpIGRvaSB0dW9uZyB0cmVuIGRlbSB2b25nIGhvYSB0YW5nIGxlIGRlbiBkYXQgDQp2b2kg bXVjIGRpY2ggZGUgZG9hIGFuaCBIaWVwLCB2aSBhbmggbmF5IGxhIEdpYW0gZG9jIENvbmcgdHkg Y28gcGhhbiBraGFjaCBzYW4gZHUgbGljaCANClBodW5nIEh1bmciIC0gYmFuIHRpbiBjdWEgTGFv IGRvbmcgdmlldC4NCg0KQ3VuZyBkdWEgdGluIHZlIHZ1IG5heSwgVlRDIGRhbiBsYWkgdGhvbmcg dGluIHZlIGNhYyB2dSB2aWVjIHR1b25nIHR1IHR1bmcgeGF5IHJhIHRyZW4gDQpkaWEgYmFuIEhh IE5vaS4gTmFtIDIwMDUsIGNvIGRvaSB0dW9uZyBjdW5nIG1hbmcgdm9uZyBob2EgdGFuZyBkZW4g RGFpIHBoYXQgdGhhbmggdmEgDQp0cnV5ZW4gaGluaCBIYSBOb2kgbmhhbSB0cmEgdGh1IG9uZyBn aWFtIGRvYyBtb2kgbGVuIGNodWMuIFZhIG5hbSAyMDAyLCB0YWkgdHJ1b25nIA0KRGFpIGhvYyBL aW5oIHRlIFF1b2MgZGFuLCBvbmcgSGlldSB0cnVvbmcgY3VuZyBiaSBndWkgbW90IHZvbmcgaG9h IGRlbiB0cm9uZyBkaXAgVGV0IA0KTmd1eWVuIERhbi4gDQoNCk5hbSAxOTk5LCB0YWkgbW90IGN1 YSBoYW5nIG8gcGhvIEdpYW5nIFZvLCBjbyBkb2kgdHVvbmcgY29uIGd1aSBtb3QgcXVhbiB0YWkg ZGVuIGN1YSANCmhhbmcgdmkgc3UgY2FuaCB0cmFuaCBiYW4gaGFuZy4gQ2FjIHZ1IHZpZWMgbmF5 IGNvIHF1YW4gY29uZyBhbiBkYSBsYW0gcm8gdm9pIG11YyBkaWNoIA0KdHJhIHRodSwgZGUgZG9h LiBEYWMgYmlldCwgbW90IHZpIGxhbmggZGFvIFV5IGJhbiBWaWV0IGtpZXUgZGEgdHVuZyBiYXQg bmdvICJkdW9jIiBkYW5nIA0KYmFvIHRpbSBuZ3VvaSBsYWMgdGhhbiBraW5oIGJvIG5oYSBkaSBt YXQgdGljaC4NCg0KTW90IGN1IHZhIHRydSB0YWkgcGh1b25nIExhbmcgVGh1b25nLCBEb25nIERh LCBIYSBOb2kgY3VuZyB0dW5nIG5oaWV1IGxhbiBiaSBjYWMgZG9pIA0KdHVvbmcgbGEgbWF0IGNo dWkgYm9pLCBkZSBkb2Ega2hpIHRpY2ggY3VjIHRoYW0gZ2lhIGRhdSB0cmFuaCBjaG9uZyB0aWV1 IGN1Yy4gIk5nb2FpIA0Kbmh1bmcgbGFuIGJpIGdvaSBkaWVuIHRob2FpIGRlIGRvYSwgYmEgY3Ug Y3VuZyBkYSBuaGFuIGR1b2Mgdm9uZyBob2EgdGFuZyBnaGkgZG9uZyBjaHU6IA0KIkNhYyBjb24g Y2hhdSBraW5oIHZpZW5nIiAtIFZUQyBjaG8gaGF5Lg0KDQpodHRwOi8vd3d3Lmxhb2RvbmcuY29t LnZuL1Rpbi10dWMvTy1RdWFuLUNodW9uZy1iaS1tYXQtaG9uLWNvdC8xODY3NiBEdW9uZyBIYWkg MzAuMTAuMjAxMCAyMjowMyAoR01UICsgNykgDQoNCkhhIE5vaTogVHUgYm8gZGkgdGljaCAtIE8g UXVhbiBDaHVvbmcgYmkgbWF0ICJob24gY290IiANCg0KKExETykgliBPIFF1YW4gQ2h1b25nIGxh IGN1YSBvIGNvIGR1eSBuaGF0IGNvbiBzb3QgbGFpIGN1YSB0aHUgZG8gSGEgTm9pIG5naGluIG5h bSANCnZhbiBoaWVuLiBUaGUgbmh1bmcgdmllYyB0dSBibywgcGh1YyBob2kgZGkgdGljaCBuYXkg a2hpZW4gbmhpZXUgbmd1b2kga2hvbmcga2hvaSBiYW4gDQpraG9hbjogRGkgdGljaCBkYW5nIGJp ICJ0cmUgaG9hIi4NCg0KTyBRdWFuIENodW9uZyBoYXkgY29uIGdvaSBsYSBvIERvbmcgSGEsIGxh IGN1YSBvIGN1YSBIYSBOb2kgeHVhIG5hbSBvIHBoaWEgRG9uZyANCnRvYSB0aGFuaCBkYXQgYmFv IHF1YW5oIGtpbmggdGhhbmggVGhhbmcgTG9uZy4gQ29uZyBvIGNvbiBuZ3V5ZW4gdGFtIHF1YW4g dm9pIGN1YSANCmNoaW5oLCBoYWkgY3VhIHBodSBoYWkgYmVuLiBEYXkgbGEgbW90IHRyb25nIDIx IGN1YSBvIGNvbiBzb3QgbGFpIGN1YSB0aGFuaCBUaGFuZyBMb25nIA0KY3UuIERhbiBnaWFuIGNv IGNhdTogIkxvbmcgVGhhbmggYmFvIHF1YW4gbmFuZyBtdWEvIEN1YSBPIFF1YW4gQ2h1b25nIGJh eSBnaW8gY29uIA0KZGF5IiBjaG8gdGhheSBzdSB0cnVvbmcgdG9uIGN1YSBtb3QgY29uZyB0cmlu aCBraWVuIHRydWMgY28uDQoNCihBbmg6IFZlIGRlcCBjbyBraW5oLCByZXUgcGhvbmcgY3VhIE8g UXVhbiBDaHVvbmcgdHJ1b2Mga2hpIHR1IGJvLiBBbmggSW50ZXJuZXQuKSANCg0KTmdheSBuYXks IE8gUXVhbiBDaHVvbmcgdG9hIGxhYyBkYXUgcGhvIEhhbmcgQ2hpZXUsIGdhbiBkdW9pIGNoYW4g Y2F1IENodW9uZyANCkR1b25nIHZhIGRhIGR1b2MgTmhhIG51b2MgeGVwIGhhbmcgZGkgdGljaCBs aWNoIHN1Lg0KDQooQW5oOiAiQ2hpZWMgYW8gdmFuZyIgbW9pIHRvYW5oIGRhbmcgbGFtICJ0cmUg aG9hIiBkaSB0aWNoLikgDQoNCkR1IGFuIHR1IGJvLCBraGFjIHBodWMgc3UgeHVvbmcgY2FwIGN1 YSBjdWEgbyBkbyBCYW4gcXVhbiBseSBEaSB0aWNoIGRhbmggdGhhbmcgSGEgDQpOb2kgcGhvaSBo b3Agdm9pIFZpZW4gQmFvIHRvbiBkaSB0aWNoIHRodWMgaGllbiB2b2kgdG9uZyBraW5oIHBoaSBs ZW4gdG9pIGhvbiA3MC4wMDAgDQpVU0QuIERheSBsYSBtb24gcXVhIG1hIFF1eSBCYW8gdG9uIFZh biBob2EgY3VhIERhaSBzdSBxdWFuIEhvYSBLeSB0YWkgVmlldCBOYW0gDQpkYW5oIHRhbmcgdGh1 IGRvIEhhIE5vaSB0cm9uIDEuMDAwIG5hbSB0dW9pLg0KDQpIaWVuLCB2aWVjIHBodWMgaG9pLCB0 dSBibyBjdWEgbyBuYXkgZGEgaG9hbiB0aGFuaC4gU29uZywgbmhpZXUgbmd1b2kgY2hvIHJhbmcs IGRpIHRpY2ggDQpjdWEgby4uLiBtb2kgcXVhISAiTmV0IGNvIGtpbmgsIHJldSBwaG9uZyB0cmVu IGJlIG1hdCBraG9uZyBjb24gbmh1IHZlIGRlcCB2b24gY28gY3VhIA0Kbm8uIE5ndW9pIHRhIGJv aSB0cmF0IGxhbSBjdWEgbyAibm9uIiBkaSB0cm9uZyB0aGF5IiAtIG1vdCBuZ3VvaSBkYW4gYmFu IGhhbmcgdHJlbiBwaG8gDQpIYW5nIENoaWV1IGNobyBoYXkuDQoNCihBbmg6IEtoaWVuIG5ndW9p IGRhbiBxdWEgbGFpIGN1bmcgcGhhaSBuZ28gbmdhbmchKSANCg0KVHUgYm8sIHBodWMgaG9pIGRp IHRpY2ggbGEgdmllYyBsYW0gY2FuIHRoaWV0IGRlIGtoYWMgcGh1YyBuaHVuZyBodSBoYWkgZG8g dGhvaSBnaWFuIGdheSANCnJhLiBUdXkgbmhpZW4sIGdhbiBkYXkgdG9uIHRhaSBtb3QgdGh1YyB0 cmFuZyBkYW5nIGJhbyBkb25nLCBuaGlldSBjb25nIHRyaW5oIHNhdSBraGkgDQpwaHVjIGhvaSBk YSBraG9uZyBjb24gZ2l1IG5ndXllbiBnb2MsIHRoYW0gY2hpICJ0aGF5IGRhIGRvaSB0aGl0IiBj aGkgdHJvbmcgdGhvaSBnaWFuIG5nYW4uDQoNCk5odW5nIGhpbmggYW5oIFBWIExhb2RvbmcuY29t LnZuIGdoaSBsYWkgZHVvYyB2ZSBjdWEgbyBkdXkgbmhhdCBjb24gc290IGxhaSBjdWEgZGF0IFRo YW5nIExvbmcuIA0KDQpodHRwOi8vaW5mb2xhbmQuY29tLnZuL3Rpbi10dWMvdGluLXR1Yy1zdS1r aWVuL3Rpbi10dWMtc3Uta2llbi0zNS8yMDEwLzA4L2hhLW5vaS1oYW5nLWxvYXQtc2FpLXBoYW0t dmUtZGF0LWRhaS1kdW9jLSVFMiU4MCU5Q3BoYW4gVHJ1YyBMaW5oICh0b25nIGhvcCkgMTU6MDYn MTcvMDgvMjAxMA0KDQpIYSBOb2k6IEhhbmcgbG9hdCBzYWkgcGhhbSB2ZSBkYXQgZGFpIGJpICJw aGFuaCBwaHVpIg0KDQpTYXUgbmhpZXUgdGhhbmcgdGh1YyBoaWVuIHRoYW5oIGtpZW0gdHJhIGNh YyBraHUgZG8gdGhpIG1vaSBIYSBOb2ksIG1vaSBkYXksIFRoYW5oIHRyYSANCmNoaW5oIHBodSBk YSBkdWEgcmEgaGFuZyBsb2F0IG5odW5nIHNhaSBwaGFtcGhvIGJpZW4gZHVvYyBwaGF0IGhpZW4g bmh1IHZpIHBoYW0gcXV5IA0KaG9hY2gsIGxhcCBkdSBhbiBkZSBnaXUgZGF0LCBwaG90IGxvIGNh YyBxdXkgY2h1YW4geGF5IGR1bmcsIHR1eSB0aWVuIGNheSB0aGVtIGJpZXQgdGh1LCANCmNhbiBo by4uLg0KIA0KKEFuaDogSGFuZyBsb2F0IHNhaSBwaGFtIHBobyBiaWVuIGRhbmcgZGllbiByYSB0 YWkgY2FjIGtodSBkbyB0aGkgbW9pIEhhIE5vaSkgDQogDQpEaWVuIGhpbmggbGEgdmllYyBwaGEg dm8gcXV5IGhvYWNoLCBzdSBkdW5nIGRhdCBzYWkgbXVjIGRpY2ggdGFpIGR1IGFuIG5oYSBvIFRh eSBOYW0gDQpNZSBUcmksIGRpZW4gdGljaCA1Ny40MDUgbTIgZGF0IGRvIENvbmcgdHkgWGF5IGxh cCBUaHVvbmcgbWFpIGxhbSBjaHUgZGF1IHR1OyBkdSBhbiANCmNvbmcgdHJpbmggZGljaCB2dSB0 aHVvbmcgbWFpIGRvIENvbmcgdHkgQ28gcGhhbiBiYXQgZG9uZyBzYW4gRGllbiBsdWMgRGF1IGto aSBWaWV0IA0KTmFtIGxhbSBjaHUgZGF1IHR1OyBkdSBhbiB0byBob3Aga2hhY2ggc2FuIDUgc2Fv IC0gdmFuIHBob25nIGNobyB0aHVlIDI1MC4wMDAgbTIgZGF0IA0KZG8gVGFwIGRvYW4gRGF1IGto aSBWTiBsYW0gY2h1IGRhdSB0dS4gIFRoZW8gcXV5IGhvYWNoIGNoaSB0aWV0IHR5IGxlIDEvMi4w MDAsIGNhYyBvIGRhdCANCm5ldSB0cmVuIGR1b2MgcXV5IGhvYWNoIGxhIGhvIGNodWEgbnVvYywg Y2F5IHhhbmgsIGNvbmcgdmllbi4NCiANCkRvaSB2b2kgZHUgYW4geGF5IGR1bmcga2hhY2ggc2Fu LXZhbiBwaG9uZywgMS40NjUgbTIgZGF0IGRvIENvbmcgdHkgQ28gcGhhbiBTb25nIA0KSG9uZyBs YW0gY2h1IGRhdSB0dSwgcXV5IGhvYWNoIHR5IGxlIDEvNS4wMDAgY3VhIGh1eWVuIFR1IExpZW0g Y2hvIHRoYXkga2h1IGRhdCBuYXkgDQpkdW9jIHF1eSBob2FjaCBsYSBkYXQgby4NCg0KTmdvYWkg cmEsIHRpbmggdHJhbmcgbmFuZyB0YW5nLCB4ZSBkYXQgZGUgYmFuIGJpZXQgdGh1IGRhIHBoYSB2 byBxdXkgY2h1YW4geGF5IGR1bmcgZ2F5IA0KYXAgbHVjIGhhIHRhbmcgY2h1bmcgdG9hbiBraHUg dnVjIG5odSBkdSBhbiBraHUgZG8gdGhpIG1vaSBNeSBEaW5oIC0gTWUgVHJpLCB0aGVvIHF1eSAN CmhvYWNoIGNoaSB0aWV0IHR5IGxlIDEvMi4wMDAsIGRhdCB4YXkgZHVuZyBuaGEgY2FvIHRhbmcg Z29tIDcgbywgbmh1bmcga2hpIHF1eSBob2FjaCBjaGkgDQp0aWV0IDEvNTAwIHRoaSBkYXQgeGF5 IG5oYSBjYW8gdGFuZyBkYSB0YW5nIHRoZW0gdGhhbmggOSBvLCBsYW0gY2hvIGRpZW4gdGljaCBk YXQgeGF5IGR1bmcgDQp0YW5nIHRoZW0gNS4wNzFtMiwgZGllbiB0aWNoIHNhbiB0YW5nIHRoZW0g NTYuMzk1bTIuDQoNCktpZW0gdHJhIGR1IGFuIGtodSBuaGEgbyBkZSBiYW4gKGRpZW4gdGljaCA5 LjUwMyBtMiBkYXQpIHRhaSB4YSBNeSBEaW5oIGRvIGNvbmcgdHkgQ1AgDQpLaW5oIGRvYW5oIFBo YXQgdHJpZW4gTmhhIHZhIERvIHRoaSBIYSBOb2kgbGFtIGNodSBkYXUgdHUsIGNobyB0aGF5OiBU aGVvIHF1eSBob2FjaCwgDQpkYXkgc2UgbGEgbmh1bmcga2h1IGNodW5nIGN1IDUgdGFuZyB2YSA2 IHRhbmcgbmh1bmcgbmF5IGRhIGJpIGJpZW4gdGhhbmggMTIgbG8gbmhhIGxpZW4gDQprZS4NCg0K VGFpIGR1IGFuIGtodSBuaGEgbyBkZSBiYW4gdGFpIHhhIE1lIFRyaSAoZGllbiB0aWNoIDc1Ljc2 MSBtMikgZGF0IGRvIENvbmcgdHkgWGF5IGR1bmcgDQpOb25nIG5naGllcCAmIFBoYXQgdHJpZW4g Tm9uZyB0aG9uIHRodWMgaGllbiwgY2h1IGRhdSB0dSBkYSBiaWVuIHRhbmcga3kgdGh1YXQgYXAg bWFpIA0KdGhhbmggbmhhIG8gdHVvbmcgZHVvbmcgdm9pIDEuOTAwIG0yIHNhbiB4YXkgZHVuZy4N Cg0KVHJvbmcga2hpIGRvLCB0YWkgZHUgYW4geGF5IGR1bmcgbmhhIG8gZGUgYmFuIHRhaSB4YSBN eSBEaW5oIGRpZW4gdGljaCA1MC4xMTJtMiBkbyANCkNvbmcgdHkgQ1AgZGF1IHR1IHhheSBkdW5n IEJhIERpbmggbGFtIGNodSBkYXUgdHUsIHRvYSB0aGFwIGNhbyB0YW5nIGRhIGJpIHRoaSBjb25n IGNhbyANCmhvbiBzbyB2b2kgZ2lheSBwaGVwIHhheSBkdW5nIDcsNTJtOyBuaGEgdnVvbiBjYW8g MyB0YW5nIHRoaSBiaSBiaWVuIHRoYW5oIDQgdGFuZy4uLg0KDQpLaG9uZyBjaGkgdmF5LCBjYWMg Y2h1IGRhdSB0dSBjb24gY2h1eWVuIG5odW9uZyBkYXQgdHJhaSBwaGVwIG5odSBEdSBhbiBraHUg ZG8gdGhpIA0KbW9pIE15IERpbmggLSBNZSBUcmkgZHVvYyBnaWFvIGNobyBUb25nIENvbmcgdHkg U29uZyBEYSB2YSBkb2FuaCBuZ2hpZXAgbmF5IGRhIA0KZ2lhbyBjaG8gZG9uIHZpIHRoYW5oIHZp ZW4gbGEgQ29uZyB0eSBEYXUgdHUgUGhhdCB0cmllbiBEbyB0aGkgdmEgS2h1IGNvbmcgbmdoaWVw IFNvbmcgDQpEYSAoU3VkaWNvKSB0cnVjIHRpZXAgcXVhbiBseSB0aHVjIGhpZW4gdmEga2luaCBk b2FuaC4NCg0KVHV5IG5oaWVuLCBxdWEgdHJpbmggdGh1YyBoaWVuIGR1IGFuLCBTdWRpY28gZGEg a3kgaG9wIGRvbmcgaG9wIHRhYyBkYXUgdHUgdm9pIENvbmcgdHkgDQpCaXRleGNvIGRlIGN1bmcg Z29wIHZvbiBkYXUgdHUgdmEgcGhhbiBjaGlhIHNhbiBwaGFtIChsYSBkYXQgZGFpKSwga2UgY2Eg ZGF0IHhheSBkdW5nIA0KY29uZyB0cmluaCBob24gaG9wIHZhIGRhdCBjb25nIGNvbmcgbmh1bmcg Y2h1YSBkdW9jIHN1IGNoYXAgdGh1YW4gY3VhIFVCTkQgdGhhbmggDQpwaG8gSGEgTm9pLiBEYXkg Y3VuZyBsYSBtb3Qgbmd1eWVuIG5oYW4gZGFuIGRlbiBoYW5nIHRyYW0gY2FuIGhvIFRoZSBNYW5v ciB2YW4gDQpjaHVhIGJpZXQgZGVuIGJhbyBnaW8gbW9pIGR1b2MgY2FwIGdpYXkgY2h1bmcgbmhh biBxdXllbiBzbyBodXUgbmhhIG8uICANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9p LzIwMTAxMC9IYS1Ob2ktSG8tdHUtdGhhbi1oYS1tb20tY2hvLXhlLWJ1eXQtOTQ0MTIwLyBQaHUg VGhhaSAwOTozMywgMjQvMTAvMjAxMCAoR01UKzcpDQoNCkhhIE5vaTogSG8gInR1IHRoYW4iIGhh IG1vbSBjaG8geGUgYnV5dA0KDQpYdWF0IGhpZW4gdm9pIG1hdCBkby4uLmRheSBkYWMsIGhhbmcg bG9hdCBobyAidHUgdGhhbiIgZGFuZyBoYSBtb20gZG9uIGxvbmcgbmh1bmcgDQpjaHV5ZW4geGUg YnV5dCB0cmVuIGR1b25nIE5ndXllbiBUcmFpIChxdWFuIFRoYW5oIFh1YW4sIEhhIE5vaSkuDQoN Ck5nYXkga2hpIHF1YSBraG9pIGNhdSB2dW90IG5nYSB0dSBTbywgbmh1bmcgaG8gInR1IHRoYW4i IGRhIGJhdCBkYXUgeHVhdCBoaWVuLCB0cmVuIGxhbiANCmR1b25nIGRhbmggY2hvIHhlIGJ1eXQs IGNoYXkga2VvIGRhaSBtYWkgdmUgcGhpYSB0cnVvbmcgRGFpIGhvYyBLSFhIJk5WIEhhIE5vaS4N Cg0KVGh1YyBjaGF0LCBkYXkgbGEgbmh1bmcgbWllbmcgaG8gZ2EgbG9uLCBkYSBiaSBib25nLCB2 bywgc3VwLi4uaGV0IHBoYW4gYmUgdG9uZy4gTWllbmcgDQpobyBkdSBsb24gZGUgbnVvdCBjaHVu ZyBiYW5oIHhlIGJ1eXQgbmV1IGNoYW5nIG1heSBzYSB2YW8uIE5ndW9pIGRhbiBkYSBzdSBkdW5n IA0KbmhpZXUgdmF0IGNhbmggYmFvIG5odSBjYW5oIGNheSwga2hvaSBiZSB0b25nLi4uIGNoYW4g dHJ1b2MgbWllbmcgaG8gYmFvIGhpZXUgY2hvIGNhYyANCnRhaSB4ZSB4ZSBidXl0IHZhIG5ndW9p IHRoYW0gZ2lhIGdpYW8gdGhvbmcgYmlldCBkZSB0cmFuaC4NCg0KRGFuZyBub2ksIGtob25nIHBo YWkgbGEgMSBoYXkgMiBtaWVuZyBobyBnYSBiaSB2byBtYSBjbyBkZW4gaGFuZyBjaHVjIGNoaWVj IGxpZW4gdGllcCwgDQp4YXkgcmEgdGluaCB0cmFuZyBnaW9uZyBuaGF1OiBjYWkgdGh1dCBzYXUg eHVvbmcgc28gdm9pIG1hdCBkdW9uZywgY2FpIHZvIG5hdCBiZSBiZXQuLi4NCg0KQW5oIEh1bmct IG1vdCB0YWkgeGUgeGUgYnV5dCBjdWEgSGFub2lidXMgbm9pOiBCYW4gbmdheSBjaHVuZyB0b2kg Y29uIGNvIHRoZSBxdWFuIHNhdCANCnJvIG5odW5nIGNhaSBobyBuYXkgbWEgdHJhbmgsIG5odW5n IGJ1b2kgdG9pLCB2aWVjIGx1b24gbGFjaCBjYSBjYWkgeGUgdG8gdGhlIG5heSBxdWEgYW4gDQp0 b2FuIGR1b2MgY2h1bmcgbGEgY2EgbW90IHZhbiBkZS4NCg0KSG8gInR1IHRoYW4iIGNoaSB4dWF0 IGhpZW4gdHJlbiBkdW9uZyBOZ3V5ZW4gVHJhaSB0aGVvIGNoaWV1IHR1IG5nYSB0dSBTby0gSGEg RG9uZzsgDQpsYW4gZHVvbmcgZGFuaCBjaG8geGUgYnV5dCB0aGVvIGNoaWV1IG5ndW9jIGxhaSB0 aGkgbGFpIGhvYW4gdG9hbiBiaW5oIHRodW9uZy4NCg0KKEFuaDogTW90IGhvICJ0dSB0aGFuIiBk YW5nIGhhICJtb20iIGRvaSB4ZSBidXl0IGNoYXkgcXVhLikgDQooQW5oOiBQaGFuIG5hcCBkYXkg YmFuZyBiZS10b25nIGRhIHZvIG5hdCwgcGhvIGhldCAiZ2FuIHJ1b3QiIGJlbiB0cm9uZy4gWGUg YnV5dCBjaGF5IHF1YSwga2hvbmcgc3V0IGhvIHRoaSBjdW5nIHRodW5nIGJhbmggdm9pIG5odW5n IGxvaSB0aGVwIGJlLXRvbmcgdGhlIG5heS4pIA0KKEFuaDogQ2FpIHZvIGl0LCBjYWkgdm8gbmhp ZXUsIHZhbiBkZSBjaGkgbGEgdGhvaSBnaWFuIHRydSBkdW9jIHRoZW0gYmFvIGxhdSB0cnVvYyBr aGkgYmkgc2FwIGhvYW4gdG9hbj8pIA0KKEFuaDogQmFuaCB0cnVvYyBjdWEgeGUgYnV5dCBuYXkg ZGEgZGUgZHVuZyB2YW8gbmFwIDEgaG8gZ2EuKSANCihBbmg6IERvIGNoYXQgbHVvbmcga2VtLCBs YWkgbmFtIGR1bmcgdmV0IHhlIGJ1eXQgY2hheSBxdWEgbmVuIG1hdCBiZS10b25nIGN1YSBjYWMg aG8gZ2EgbmhhbmggY2hvbmcgdm8sIG51dCwgc3V0KSANCihBbmg6IENobyBuYXkgdGhhbSBjaGkg Y29uIGtob25nIGNvIGhvIGdhIGN1bmcgYmkgc3V0IGx1bikNCihBbmg6IE5oaWV1IG5ndW9pIGRp IHhlIG1heSwgeGUgZGFwIGxhbiBjYSB2YW8gZHVvbmcgeGUgYnV5dCwgdm8gaGluaCBjaHVuZyBu aHVuZyBjaGllYyBobyAidHUgdGhhbiIgbmF5IGNhbmcgdGhlbSBwaGFuIG5ndXkgaGllbS4pIA0K KEFuaDogSG8gbmF5IHZvIHF1YSB0bywgbmd1b2kgZGFuIHBoYWkgY2hhbiBjYSAyIGRhdSBobyBi YW5nIG5oaWV1IHRodSBraGFjIG5oYXUuICkNCihBbmg6IE5oaW4gdHUgcGhpYSBuYW8gY3VuZyBk ZXUgbmd1eSBoaWVtLiApDQooQW5oOiBIbyAidHUgdGhhbiIgbmF5IG5hbSBjYWNoIGJlbiB4ZSBi dXl0IGtob25nIHhhLCBjaGllYyB4ZSBkYXUgdGllbiBjaGF5IHF1YSBraG9uZyB2YW4gZGUgZ2ku Li4NCi4uLi4ubmh1bmcgY2hpZWMgdGh1IDIgdGhpIHN1eXQgY2hldCBiYW5oIHNhdSB0cnVuZyBo by4gKQ0KKEFuaDogTmh1bmcgY2hpZWMgaG8gbmF5IHNlIGNhbmcgbmd1eSBoaWVtIGhvbiBraGkg bWFuIGRlbSBidW9uZyB4dW9uZy4gKQ0KKEFuaDogQ2FuIGNhbmggYmUgbWF0IG1vdCBobyAidHUg dGhhbiIgZGEgdm8gbmF0LiApDQooQW5oOiBUYWkgbmFuIGNvIHRoZSB4YXkgcmEgYmF0IGN1IGto aSBuYW8gdHJlbiBxdWFuZyBkdW9uZyBuYXkuKSANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29t LnZuL05ld3MvUGFnZXMvMjAxMDQ3LzIwMTAxMTIwMDA0NDIwLmFzcHggVGhhaSBTb24gMjAvMTEv MjAxMCAwOjQ0IA0KDQpIYSBub2k6IFBobyBiaSB0aHUgSHV5ZW4gdXkgU29jIFNvbiBiaSBoYW5n IG5nYW4gbmd1b2kgZGFuIGJhbyB2YXkgIA0KICANCkNobyBkZW4gaG9uIDIyIGdpbyBkZW0gcXVh LCBvbmcgVnVvbmcgVmFuIEJ1dCAtIFBobyBiaSB0aHUgSHV5ZW4gdXkgU29jIFNvbiAoSGEgDQpO b2kpIHZhbiBiaSBoYW5nIG5naGluIG5ndW9pIGRhbiBiYW8gdmF5IHZhIGdpdSBsYWkgdGFpIHRy dSBzbyBVQk5EIHhhIE1pbmggUGh1LiANCg0KVHJ1b2MgZG8sIHZhbyBraG9hbmcgOCBnaW8gY3Vu ZyBuZ2F5LCBvbmcgQnV0IGN1bmcgbW90IHNvIGNhbiBibyBILlNvYyBTb24gZGVuIA0KVUJORCB4 YSBNaW5oIFBodSBob3AgdmUgdmllYyB4YXkgZHVuZyBuZ2hpYSB0cmFuZyBjb25nIHZpZW4gVmlu aCBIYW5nIHRyZW4gZGlhIGJhbiANCnhhIHRoaSBkYW4ga2VvIGRlbiBwaGFuIGRvaS4gU2F1IGRv IG5oaWV1IG5ndW9pIGRhbiBkYSBsb2kgbW90IHNvIGNhbiBibyB2YSBvbmcgQnV0IHZhbyANCmhh aSBjYW4gcGhvbmcgdHJvbmcgdHJ1IHNvIFVCTkQgeGEuIA0KDQpEZW4gZGF1IGdpbyBjaGlldSwg bW90IHNvIGNhbiBibyBodXllbiBjbyBkYXUgaGlldSBraWV0IHN1YyBuZW4gZHVvYyB0aGEgcmEu IFJpZW5nIG9uZyANCkJ1dCB2YW4gdGllcCB0dWMgYmkgZ2l1IGxhaSB2YSBiaSBnYXkgYXAgbHVj IHlldSBjYXUgcGhhaSBreSB2YW8gYmllbiBiYW4gY2h1bmcgbmhhbiBjbyANCnN1IHZhIGNoYW0g Z2l1YSBjYW4gYm8gdm9pIG5ndW9pIGRhbiB2YSBraWVuIG5naGkga2hvbmcgZHVvYyB4YXkgZHVu ZyBuZ2hpYSB0cmFuZyANCmNvbmcgdmllbiBWaW5oIEhhbmcgdHJlbiBkaWEgcGhhbiB4YSB2aSBz ZSBhbmggaHVvbmcgbmdoaWVtIHRyb25nIGRlbiBuZ3VvbiBudW9jIA0Kc2luaCBob2F0LiANCg0K VGhlbyBnaGkgbmhhbiBjdWEgVGhhbmggTmllbiwgZGVuIDIwIGdpbyBzbyBuZ3VvaSBiYW8gdmF5 IHRydSBzbyB4YSBkYSBsZW4gZGVuIGhhbmcgDQpuZ2FuLiBMdWMgbHVvbmcgY29uZyBhbiBjdW5n IGR1b2MgaHV5IGRvbmcgZGVuIGRlIGRlIHBob25nIHhheSByYSBzdSB2aWVjIGRhbmcgdGllYy4g DQpUcmFvIGRvaSB2b2kgVGhhbmggTmllbiwgbW90IGNhbiBibyBDb25nIGFuIEguU29jIFNvbiB0 aGFtIGdpYSBnaXUgZ2luIHRyYXQgdHUgY2hvIA0KYmlldCwgZ2l1YSBoYWkgYmVuIGNoaSBkb2kg dGhvYWkgb24gaG9hLiBEdSByYXQgbWV0IG1vaSBuaHVuZyBvbmcgQnV0IHZhbiB0aWVwIHR1YyB0 aWVwIA0KdGh1IHkga2llbiBuZ3VvaSBkYW4gdmEgdGhvbmcgcXVhIGhlIHRob25nIHBoYXQgdGhh bmggeGEsIG9uZyBjYW0ga2V0IHNlIHBoYW4gYW5oIA0Kbmh1bmcgeSBraWVuIGN1YSBobyBsZW4g Y2hpbmggcXV5ZW4gdGhhbmggcGhvLiANCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05l d3MvUGFnZXMvMjAxMDIzLzIwMTAwNjAyMTYzOTU2LmFzcHggTmd1eWV0IE1pbmggMDIvMDYvMjAx MCAxNjozOSANCg0KSGEgTm9pOiBDYW4gbGFtIHJvIGRpbmggaHVvbmcgdGhvYXQgbHUgdHJvbmcg cXV5IGhvYWNoIA0KDQooQW5oOiBEdW9uZyBwaG8gSGEgTm9pIG1lbmggbW9uZyBudW9jIGNoaSBz YXUgbW90IHRyYW4gbXVhIGxvbiAtIEFuaCBUcnVvbmcgU29uKQ0KDQooVE5PKSBEbyBsYSBraWVu IG5naGkgY3VhIFV5IGJhbiBLaW5oIHRlIGN1YSBRdW9jIGhvaSAoUUgpIGtoaSBuZ2hlIGJhbyBj YW8gdmUgZG8gYW4gDQpxdXkgaG9hY2ggY2h1bmcgeGF5IGR1bmcgdGh1IGRvIEhhIE5vaSBkZW4g bmFtIDIwMzAgdmEgdGFtIG5oaW4gZGVuIDIwNTAgdHJ1b2MgUUggDQpzYW5nIG5heSwgMi42LiAN Cg0KTmdvYWkgdmllYyBjaG8geSBraWVuIHZlIG5odW5nIG5vaSBkdW5nIGR1b2MgZG9uZyBkYW8g bmd1b2kgZGFuIHF1YW4gdGFtIG5odSB2aWVjIA0KaGFuIGNoZSBuaGFwIGN1IHZhbyBsb2kgZG8g dGhpIGN1LCBkdSBraWVuIHhheSB0cnVuZyB0YW0gaGFuaCBjaGluaCBxdW9jIGdpYSB0YWkgQmEg VmkgDQpoYXkgeGF5IGR1bmcgdHJ1YyBUaGFuZyBMb25nIG1hIFRoYW5oIE5pZW4gZGEgZGUgY2Fw LCBVeSBiYW4gS2luaCB0ZSBjdW5nIGJheSB0byBzdSANCmJhbiBraG9hbiB2ZSB0b25nIHZvbiBk dSBraWVuIGRhdSB0dSB4YXkgZHVuZyBoYSB0YW5nIGt5IHRodWF0IHR1IDIwMTAgZGVuIDIwNTAg DQpraG9hbmcgOTAgdGkgVVNELCB0cm9uZyBkbyBraHVuZyBoYSB0YW5nIGNoaWVtIHR1IDQwIGRl biA1MCUgdG9uZyB2b24gbmh1IG5vaSBkdW5nIA0KcXV5IGhvYWNoIEJvIFhheSBkdW5nIGRlIHRy aW5oLiANCg0KVGhlbyBDaHUgbmhpZW0gVXkgYmFuIEtpbmggdGUgSGEgVmFuIEhpZW4sIHZvbiBk YXUgdHUgY2hvIGhhIHRhbmcgdGhlbyBxdXkgaG9hY2ggDQpjYW4gZHVvYyB0aW5oIHRvYW4ga3kg aG9uIGRlIGJhbyBkYW0gY2FjIHlldSBjYXU6IHBoYWkgY2FuIGN1IHZhbyBuaHVuZyBub2kgZHVu ZyBjb25nIA0KdmllYyBjYW4gcGhhaSBsYW0gZGUgZGF0IG11YyB0aWV1IGN1YSBxdXkgaG9hY2gs IGtob25nIHBoYWkgY2FuIGN1IHZhbyBuaHVuZyBub2kgZHVuZyANCmNvIHRoZSBsYW0gZHVvYzsg Y2FuIGN1IHZhbyBzdSBwaHUgaG9wIGN1YSBuaHUgY2F1IHZvbiBkYXUgdHUgY2hvIGhhIHRhbmcg ZGUgdGh1YyBoaWVuIA0KRG8gYW4gdm9pIHRvYyBkbyB0YW5nIHRydW9uZyBraW5oIHRlIGN1YSBU aHUgZG8gdHJvbmcgY2FjIGdpYWkgZG9hbiBjdWEgcXV5IGhvYWNoOyB2YSANCnZvbiBkYXUgdHUg Y2hvIGhhIHRhbmcgZGUgdGh1YyBoaWVuIERvIGFuIHF1eSBob2FjaCBUaHUgZG8gY2FuIGRhdCB0 cm9uZyBjYW4gZG9pIHZvbiANCmRhdSB0dSB0b25nIHRoZSBjdWEgY2EgbnVvYyBjaG8gY2FjIGR1 IGFuLCBjb25nIHRyaW5oIGtoYWMgKG5odSBwaGF0IHRyaWVuIGRpZW4gaGF0IG5oYW4sIA0KZHVv bmcgc2F0IGNhbyB0b2MgSGEgTm9pIC0gVFAuSENNLi4uKS4NCg0KVGhlbyBDaHUgbmhpZW0gSGEg VmFuIEhpZW4sIG5nb2FpIHZpZWMgY2FuIGJhbyBkYW0gZHVuZyBxdXkgZGluaCBjdWEgTHVhdCBR dXkgDQpob2FjaCBkbyB0aGkgdmUgdmllYyBjb25nIGJvIGxheSB5IGtpZW4gY2FjIHRhbmcgbG9w IG5oYW4gZGFuIGRlIGhvYW4gdGhpZW4gRG8gYW4sIGNvIA0KcXVhbiBsYXAgcXV5IGhvYWNoIHZh IGNodSB0cmkgdGh1YyBoaWVuIGNhbiBuZ2hpZW4gY3V1IGJpZW4gcGhhcCwgaGluaCB0aHVjIHR1 eWVuIA0KdHJ1eWVuLCBwaG8gYmllbiwgZ2lhaSB0aGljaCBuaHVuZyBkaW5oIGh1b25nIGN1YSBE byBhbiBkZSBjbyBxdWFuLCB0byBjaHVjIHZhIG5oYW4gZGFuIA0KbmhhbiB0aHVjIGR1bmcsIHF1 YSBkbyB0cmFuaCBzdSB4YW8gdHJvbiB2ZSB0YW0gbHkgY3VhIG5oYW4gZGFuLCB0cmFuaCBsb2kg ZHVuZywgdGFvIGRvdCANCmJpZW4gdmUgZ2lhIGRhdCwgdmUgdGhpIHRydW9uZyBiYXQgZG9uZyBz YW4uIA0KDQpVeSBiYW4gS2luaCB0ZSBjdW5nIGRvbmcgdGhvaSBkZSBuZ2hpIGNhbiBjbyB2YW4g YmFuIHJpZW5nIHF1eSBkaW5oIHZlIHZpZWMgcXVhbiBseSANCnRodWMgaGllbiBEbyBhbiBxdXkg aG9hY2ggbmF5IHRoZW8gcXV5IGRpbmggY3VhIEx1YXQgUXV5IGhvYWNoIGRvIHRoaS4gIkNhbiBo ZXQgc3VjIA0KY2h1IHkgdmFuIGRlIHF1YW4gbHkgdHJpZW4ga2hhaSBzYXUga2hpIHF1eSBob2Fj aCBkdW9jIGR1eWV0LCBraGFjIHBodWMgdGluaCB0cmFuZyANCmJ1b25nIGxvbmcgcXVhbiBseSwg a3kgbHVhdCBraG9uZyBuZ2hpZW0sIHRpbmggbmhpZW0ga3ksIGRlIGRhbmcgZGlldSBjaGluaCB0 cm9uZyB0byANCmNodWMgdGh1YyBoaWVuIHF1eSBob2FjaCwgZ2F5IGxhbmcgcGhpIHRpZW4gY3Vh IGN1YSBOaGEgbnVvYyIsIENodSBuaGllbSBIYSBWYW4gSGllbiANCm5oYW4gbWFuaC4NCg0KTGll biBxdWFuIGRlbiBtb2kgbG8gdmUgdGluaCB0cmFuZyB1bmcgbmdhcCBjdWMgYm8gc2F1IG1vaSB0 cmFuIG11YSB0YWkgSGEgTm9pLCBVeSBiYW4gDQpLaW5oIHRlIHlldSBjYXUgcXV5IGhvYWNoIG5l dSBybyBkaW5oIGh1b25nIHBob25nIGNob25nIHZhIHRob2F0IGx1IGN1YSBUaHUgZG8ga2hpIA0K cGhhdCB0cmllbiBoZSB0aG9uZyBkdW9uZyB2YW5oIGRhaSwgY2FjIGRvIHRoaSB0aGVvIGNhYyB0 cnVjIGdpYW8gdGhvbmcgZHUga2llbiwgdHJhbmggdGluaCANCnRyYW5nIGNhYyB0cnVjIGdpYW8g dGhvbmcgdmEgY2FjIHZhbmggZGFpIHRybyB0aGFuaCB2YXQgY2FuIHRvYyBkbyB0aG9hdCBsdS4g DQo= --0015174c3fd622a1eb04a7ed1093 Content-Type: text/plain; name="Cu tri kien nghi kiem tra, kiem diem, ky luat ong To Huy Rua.txt" Content-Disposition: attachment; filename="Cu tri kien nghi kiem tra, kiem diem, ky luat ong To Huy Rua.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gq1vg1p55 Q3UgdHJpIGtpZW4gbmdoaTogQm8gY2hpbmggdHJpIGtpZW0gdHJhLCBraWVtIGRpZW0sIGNhY2gg Y2h1YyBvbmcgVG8gSHV5IFJ1YSB0aGFtIG5odW5nLCB0aG9pIG5hdCAgDQoNCmh0dHA6Ly8xMjMu MzAuNDkuNzQ6ODA4MC90aWVuZ3ZpZXQvdHVsaWV1dmFua2llbi92YW5raWVuZGFuZy9kZXRhaWxz LmFzcD90b3BpYz0xOTEmc3VidG9waWM9Mjc5JmxlYWRlcl90b3BpYz05NTgmaWQ9QlQxMjMwOTU1 NjA1DQoNCk9uZyBUbyBIdXkgUnVhIC0gbmd1eWVuIEJpIHRodSBUaGFuaCB1eSBIYWkgUGhvbmcg DQoNCmh0dHA6Ly93d3cudnRjLnZuL3BoYXBsdWF0L2JhbnRpbjExMy8xNzI3MjQvaW5kZXguaHRt DQoNCkhhaSBQaG9uZzogUGhvIGNodSB0aWNoIFVCTkQgVFAgSGFpIFBob25nIG9uZyBWdSBDaGkg VGhhbmggbGllbiBxdWFuIGRlbiB2dSB0aGFtIG5odW5nIGRhdCBkYWkgdGFpIERvIFNvbiwgSGFp IFBob25nIG5odW5nIGtob25nIGJpIHh1IGx5LiANCg0KaHR0cDovL3d3dy5iYmMuY28udWsvdmll dG5hbWVzZS92aWV0bmFtLzIwMDkvMTIvMDkxMjIyX3BvbHV0aW9uLnNodG1sIDE2OjIzIEdNVCAt IHRodSBiYSwgMjIgdGhhbmcgMTIsIDIwMDkNCg0KSGFpIFBob25nOiBEYW4gSGFpIFBob25nIHJl biB4aWV0IHZpIG8gbmhpZW0gDQoNCk5odW5nIGRpZXUgdHJhIGJhbiBkYXUgY2hvIHRoYXkgbm9u ZyBkbyBraGkgZG9jIGhhaSBzdWxwaHVyIGRpb3hpZGUgY2FvIGdhcCBoYWksIGJhIGxhbiBzbyB2 b2kgbXVjIGNobyBwaGVwIC0gaGFuZyBjaHVjIGVtIGhvYyBzaW5oIHRhaSBtb3QgdHJ1b25nIHBo byB0aG9uZyBjbyBzbyBvIGtodSBRdWFuIFRvYW4gcGhhaSBuaGFwIHZpZW4sIGNvIGVtIHZpIGJp IG5nYXQgZG8gaGl0IHBoYWkga2hpIHRoYWkgZG9jIGhhaS4NCg0KaHR0cDovL3d3dy50aGFuaG5p ZW4uY29tLnZuL25ld3MvUGFnZXMvMjAxMDI1LzIwMTAwNjE3MDAzNzQ0LmFzcHggMTcvMDYvMjAx MCAwOjM3IA0KDQpIYWkgUGhvbmc6IEJpZW4gMjAuMDAwbTIgZGF0IGNvbmcgdGhhbmggZGF0IG8g LSBOZ3V5ZW4gcGhvIGNodSB0aWNoIFVCTkQgcGh1b25nIGNoaSBiaSBhbiB0cmVvICAgDQoNCmh0 dHA6Ly93d3cudnRjLnZuL3BoYXBsdWF0L2JhbnRpbjExMy8xNzI3MjQvaW5kZXguaHRtDQoNClZ1 IFBobyBjaHUgdGljaCBVQk5EIFRQIEhhaSBQaG9uZywgb25nIFZ1IENoaSBUaGFuaCBsaWVuIHF1 YW4gZGVuIHNhaSBwaGFtIHRyb25nIGR1IGFuIGRhdCBkYWkgUXVhbiBOYW0sIEhhaSBQaG9uZw0K DQpodHRwOi8vd3d3LmJiYy5jby51ay92aWV0bmFtZXNlL3ZpZXRuYW0vc3RvcnkvMjAwOS8wMi8w OTAyMjhfaGFpcGhvbmdfc2VudGVuY2Uuc2h0bWwgMjgvMi8yMDA5IC0gMTJoMDYgR01UDQogDQpB biB0cmVvIGNobyBjdXUgbGFuaCBkYW8gSGFpIFBob25nISANCiANCkJhbyBjaGkgdHJvbmcgbnVv YyBjaG8gaGF5IFZpZW4gS2llbSBzYXQgZGEgZGUgbmdoaSBhbiB0cmVvIGNobyBuZ3V5ZW4gUGhv IENodSB0aWNoIA0KVUJORCBUUCBIYWkgUGhvbmcgVnUgQ2hpIFRoYW5oIHRyb25nIHZ1ICdjaGlh IGNoYWMgZGF0IGNvbmcnIHRhaSBRdWFuIE5hbSwgdGhhbmggcGhvIEhhaSBQaG9uZy4NCg0KVGhp ZXUgdHJhY2ggbmhpZW0NCg0KT25nIFZ1IENoaSBUaGFuaCBiaSBraG9pIHRvIHZhIHRydXkgdG8g dmUgdG9pIGRhbmggIlRoaWV1IHRpbmggdGhhbiB0cmFjaCBuaGllbSANCmdheSBoYXUgcXVhIG5n aGllbSB0cm9uZyIgdHJvbmcga2hpIGNhYyBxdWFuIGNodWMga2hhYyBiaSBraG9pIHRvIHZhIHRy dXkgdG8gdG9pIA0KIkxvaSBkdW5nIGNodWMgdnUgcXV5ZW4gaGFuIGdheSBoYXUgcXVhIG5naGll bSB0cm9uZyIuIA0KDQpCYW8gY2hpIHRyb25nIG51b2MgZHVhIHRpbiB0cm9uZyBkYW5oIHNhY2gg Z2lhbyBkYXQgY2hvIGNhYyBjYSBuaGFuIHNhaSBkb2kgdHVvbmcgDQp0YWkgZHUgYW4gUXVhbiBO YW0sIGNvIGJvbiBsbyBkYXQgZHVvYyBjaGlhIGNobyB2byB2YSBlbSBnYWkgY3VhIG9uZyBWdSBD aGkgVGhhbmguIA0KDQpCYW8gTGFvIERvbmcgY2hvIGhheSwgbmdvYWkga2h1IHZ1YyBuYXksIG9u ZyBUaGFuaCBjdW5nIGNvIHRlbiB0cm9uZyBuaGlldSBkdSBhbiANCmNhcCBkYXQgY3VhIHRoYW5o IHBobywgY2hvIHRvaSBraGkgb25nIHJvaSBjaHVjIHZ1IG5hbSAyMDA0LiANCiANCkRFIE5HSEkg Q1VBIFZJRU4gS0lFTSBTQVQNCk9uZyBWdSBDaGkgVGhhbmg6IDEyIGRlbiAyNCB0aGFuZyB0dSB0 cmVvDQpPbmcgQ2h1IE1pbmggVHVhbjogNiBkZW4gNiBuYW0gNiB0aGFuZyB0dSBnaWFtDQpPbmcg RG8gS2hhYyBIb2E6IDUtNiBuYW0gdHUgZ2lhbQ0KT25nIE5ndXllbiBWYW4gUGhvbmc6IDMgbmFt IDYgdGhhbmcgZGVuIDQgbmFtIHR1IGdpYW0NCk9uZyBOZ3V5ZW4gQ3VhOiAzIG5hbSA2IHRoYW5n IGRlbiA0IG5hbSB0dSBnaWFtDQpCYSBMdXUgVGhpIFllbiBUaGFuaDogMy00IG5hbSB0dSBnaWFt DQpPbmcgRHVvbmcgRGluaCBUaHV5OiAzMC0zNiB0aGFuZyB0dSB0cmVvDQoNCkNhbyB0cmFuZyBj dWEgVmllbiBLaWVtIHNhdCB2aWV0IGNhYyBiaSBjYW8gZGEgImdpYW8gZGF0IHNhaSBkb2kgdHVv bmcsIGtob25nIGxhcCANCmhvaSBkb25nIHhldCBkdXlldCBnaWFvIGRhdCwga2hvbmcgeGF5IGR1 bmcgdGlldSBjaGksIGRpZXUga2llbiBjaG8gY2FjIGRvaSB0dW9uZyBkdW9jIGdpYW8gZGF0Ii4g DQoNCkR1IGFuIFF1YW4gTmFtLCBuYXkgbGEgcGh1b25nIER1IEhhbmcgS2VuaCwgYmF0IGRhdSB0 dSBuYW0gMjAwMSBkZSBiaWVuIGtodSBkYXQgaG9uIDEwIGhhIG8gdmVuIGRvIHRoYW5oIGtodSBk YW4gY3UgY2hvIG5ndW9pbyBuZ2hlby4gDQoNClR1eSBuaGllbiwgc2F1IGtoaSBraHUgZGF0IG5h eSBkdW9jIHF1eSBob2FjaCB0aGFuaCBub2kgdGhhbmgsIG1vdCBkYW5oIHNhY2ggY2FjIA0KY2Fu IGJvIGR1b2MgdGhlbSB2YW8gZHUgYW4gZGUgeGluIGNhcCBkYXQuIA0KVHUgZGlhIHBodW9uZyBs ZW4gdGhhbmggcGhvLCBkdSBhbiAicGhpbmggcmEiIHRoZW0gNDU1IGxvIGRhdCBjaG8gcXVhbiBj aHVjIHRoYW5oIHBoby4NCg0KVHJvbmcgODQ4IGhvIGR1b2MgZ2lhbyBkYXQsIGNoaSBjbyAxNjgg bG8gZHVvYyBnaWFvIGNobyBjYWMgaG8gZGFuIHhhIER1IEhhbmcgS2VuaC4gDQo2ODAgbG8gZGF0 ICJkYWMgZGlhIiB0cmkgZ2lhIHR1IHZhaSB0cmFtIHRyaWV1IGRvbmcgZGVuIGNhIHR5IGRvbmcv bG8gdmUgdGF5IHF1YW4gY2h1YyBjdWEgdGhhbmggcGhvLCBodXllbiB2YSB4YS4NCg0KRGlldSBk YW5nIGNodSB5IGxhIHZ1IGFuIHZpIHBoYW0gcXVhbiBseSBkYXQgZGFpIG8ga2h1IFF1YW4gTmFt IGJpIGtob2kgdG8gdHUgbmdheSAzLzUvMjAwNywgDQpuaHVuZyBwaGFpIHRvaSBuZ2F5IDE4LzEv MjAwOCBjbyBxdWFuIHBoYXAgbHVhdCBtb2kga2hvaSB0byBkdW9jIG9uZyBWdSBDaGkgVGhhbmgu IA0KVmEgY3VuZyBtYXQgdGhlbSBtb3QgbmFtIG51YSBjYWMgcXVhbiBjaHVjIGxhbSB0cmFpIG1v aSBwaGFpIHJhIGhhdSB0b2EuDQoNCkR1b2MgYmlldCBvbmcgVnUgQ2hpIFRoYW5oIGN1bmcgY28g bGllbiBxdWFuIHRyb25nIG1vdCB2dSBzYWkgcGhhbSB0YWkgdGllbmcga2hvbmcga2VtIA0KbGEg dnUgY2hpYSBjaGFjIGRhdCBjb25nIG8gaHV5ZW4gRG8gU29uIG5odW5nIGtob25nIGJpIHh1IGx5 LiANClRhaSBkYXksIGdpb2kgY2h1YyBkaWEgcGh1b25nIGRhIGNhcCBkYXQgY2hvIDMzIGhvIHNh aSBkb2kgdHVvbmcgdm9pIGRpZW4gdGljaCBkYXQgY2FwIHNhaSBsZW4gdG9pIDMuNDcyIG1ldCB2 dW9uZy4NCg0KTWluaCBOYW0sIEhhIE5vaQ0KRGFuIG9hbiBtYXQgZGF0IG5ldSBkYXUgdHJhbmgg cXV5ZXQgbGlldCB0aGkgYmkgeHUgdHUsIFF1YW4gdGhhbSBjaGllbSBkYXQgdmEgDQpjaGkgY2hh YyBuZXUgdHJhbmcgdHJvbiBkZW4gbXVjIGtob25nIHRob2F0IHJhIHRvYSB0aGkgImh1b25nIiBh biB0cmVvLiANCg0KQ2FvIENodW5nLCBEYSBOYW5nDQpUaGVvIG5ndXllbiB0YWMgdmUgc2FpIHBo YW0gbyBjYWMgY2FwIGNoaW5oIHF1eWVuIHRoaSBrZSBuYW8gY2h1YyB2dSBjYW5nIGNhbyANCnRy YWNoIG5oaWVtIGNhbmcgbmFuZywgdmEgY3VuZyBjaGluaCBobyBsYSBuZ3VvaSBxdXlldCBkaW5o LiBPbmcgVnUgY2hpIFRoYW5oIA0KZGEgY28gbW90IGNodW9pIHNhaSBwaGFtIHR1IHZ1IERvIFNv biwgdmEgbyB2dSB2aWVjIG5heSBraG9uZyBwaGFpIGxhIHRoaWV1IHRpbmggDQp0aGFuIHRyYWNo IG5oaWVtIG1hIGxhIGNvIHRpbmggdGhhbiB0cmFjaCBuaGllbSB2b2kgZ2lhIGRpbmggY3VhIG9u ZyAoY2hpYSBkYXQgDQpjaG8gdm8gdmEgZW0gZ2FpKSBkdWEgY2h1YyBxdXllbiBjdWEgb25nLiBE ZSBuZ2hpIFZLUyBuZ2hpZW4gY3V1IGt5IGx1YXQgcGhvbmcgDQpjaG9uZyB0aGFtIG5odW5nIHRy dW9jIGtoaSBjYW8gYnVvYyB0b2kgZGFuaC4gDQoNCmh0dHA6Ly93d3cuYmJjLmNvLnVrL3ZpZXRu YW1lc2UvdmlldG5hbS9zdG9yeS8yMDA5LzAzLzA5MDMwM19jb3JydXB0aW9uX3RyaWFsLnNodG1s IDAzLzMvMjAwOSAtIDA4aDU1IEdNVA0KICANCk5vIG5hbWUsIEhhaSBQaG9uZw0KTyBIYWkgUGhv bmcgbm9pIHJpZW5nLCBWaWV0IE5hbSBub2kgY2h1bmcgdGhhbmggdHJhIG8gZGF1IG1hIGNoYW5n IHRoYXkgdGhhbSBuaHVuZy4gDQpDbyBsZSBxdWFuIGNodWMgdHUgY2hvIG1pbmggY2FpIGNhY2gg bGFtIGdpYXUgdHUgdGhhbSBuaHVuZyBkZSBraGkgdmUgbGFtIGRhbiB0cm8gdGhhbmggDQoiZGFu IGdpYXUiLCBjaGFuZyBwaGFpIGR1bmcgY2h1IHRydW9uZyAiZGFuIGdpYXUgbnVvYyBtYW5oIiBo YXkgc2FvLiANCg0KaHR0cDovL3d3dy5yZmEub3JnL3ZpZXRuYW1lc2UvcHJvZ3JhbXMvU2VuaW9y TGF3eWVyc0Rpc2N1c3NXZWFrbmVzc2VzSW5WbkN1cnJlbnRMZWdhbFN5c3RlbVAxX1RNaS0yMDA3 MTAwNS5odG1sDQoNCkhvaSBsdWFuIHRyb25nIG5nb2FpIG51b2MgdmUgaGllbiB0aW5oIG5nYW5o IHR1IHBoYXAgVmlldCBOYW0gMjAwNy4xMC4wNSBUcmEgTWksIA0KcGhvbmcgdmllbiBkYWkgUkZB ICB0cmFvIGRvaSB2b2kgbHVhdCBzdSBUcmFuIExhbSwgdHUgSGFpIFBob25nLCBuZ3V5ZW4gQ2hh bmggYW4gVG9hIEFuIE5oYW4gZGFuIFRvaSBjYW8uDQoNClRyYSBNaTogVGh1YSBvbmcsIG9uZyB2 dWEgbm9pIGxhIG8gVmlldCBOYW0gcGhhaSBkdW5nIHR1ICJuaGFuIHRyaSIgZHVuZyBob24gbGEg InBoYXAgdHJpIj8NCg0KTHVhdCBzdSBUcmFuIExhbTogIkRheSBsYSBuaGFuIHRyaS4gTyBudW9j IHRhIGRheSBsYSBuaGFuIHRyaSwgY2h1YSB0aGUgbGEgcGhhcCB0cmkuIA0KQm9pIHZpIG8gbnVv YyB0YSBoaWVuIG5heSB2aWVjIHh1IGFuLCBuaHUgY2FpIHZ1IGRhdCBvIERvIFNvbiAtIGRvIGxh IHRvaSB0cm9uZyByb2kgDQp0aGUgbWEgbmd1b2kgdGEgbWFuZyByYSB4dSB0b2kgcmF0IG5oZSB2 b2kgYW4gdHJlbyB0aG9pLCB0aGUgcm9pIGR1IGx1YW4gYnVjIHh1YyBxdWEgDQpuZ3VvaSB0YSBt YW5nIHJhIHh1IGxhaSBiYXkgZ2lvIGxhIDcgbmFtIHR1LiIgDQoiTmdheSBvIGRpYSBwaHVvbmcs IG1vdCBjYXAgdXkgZGFuZyBjb24gY2FuIHRoaWVwIHZhbyBjYWMgdnUgYW4gLSBraG9uZyBwaGFp IA0KY2FuIHRoaWVwIHZhbyB2aWVjIHhheSBkdW5nIHBoYXAgbHVhdCAtIG1hIGhvIGNhbiB0aGll cCB2YW8gY2FpIHZpZWMgJ3RoYW5nIG5heSANCnh1IG5hbmcgaGF5IHh1IG5oZScsIGRlbiBjYWkg bXVjIG5odSB0aGUga2lhIG1hISBHb2MgY3VhIG5vIGxhIG5odSB0aGUuIiANCg0KLS0tLS0NCmh0 dHA6Ly93d3cudG8tcXVvYy5uZXQvbWVtby90b3F1b2MlMjAwNjAtMTAwL3RvcXVvYyUyMDA4Ny8w LCwxMDIuaHRtbCBTbyA4NyBOZ2F5IDE1LzA1LzIwMTAgDQoNCkxHVDogWGluIGdpb2kgdGhpZXUg bGEgdGh1IGN1YSAxNyB2aSBMYW8gdGhhbmgsIFR1b25nIGxhbmgsIFNpIHF1YW4sIENhbiBibywg RGFuZyB2aWVuLA0KQ2h1eWVuIHZpZW4gY2FvIGNhcCBkZSBuZ2hpIGtpZW0gZGllbSBuaHVuZyBz YWkgcGhhbSBrZW8gZGFpLCB0cnVvYyBEYWkgaG9pIDExLiAgIA0KDQpUaHUgZ3VpOiBCbyBDaGlu aCB0cmkgLSBCYW4gQmkgdGh1IFRydW5nIFVvbmcgdmEgY2FjIFV5IHZpZW4gQkNIVFUgS2hvYSAx MA0KDQpIYSBOb2ksIG5nYXkgMjIgdGhhbmcgNCBuYW0gMjAxMCANCg0KTW90IHRyb25nIG5odW5n IG5oaWVtIHZ1IGNvIGJhbiBuaGF0IGN1YSBEYWkgaG9pIGRhaSBiaWV1IHRvYW4gcXVvYyBjdWEg RGFuZyBzYXAgZGVuIA0KKERhaSBob2kgMTEpIGxhIGJhdSBjdSBkdW9jIEJhbiBjaGFwIGhhbmgg VFcgZ29tIG5odW5nIGRhaSBiaWV1IHV1IHR1IG5oYXQgY3VhIERhbmcsIA0Kbmh1bmcgbmd1b2kg Z3VvbmcgbWF1IHZlIHBoYW0gY2hhdCBkYW8gZHVjIGNhY2ggbWFuZywgY28gYmFuIGxpbmggY2hp bmggdHJpIHZ1bmcgDQp2YW5nIG5oYXQsIGtpZW4gZGluaCBtdWMgdGlldSBseSB0dW9uZyBkb2Mg bGFwIGRhbiB0b2MgZ2FuIGxpZW4gY2h1IG5naGlhIHhhIGhvaSwgY28geSBjaGkgDQpkYXUgdHJh bmgga2llbiBjdW9uZyBiYW8gdmUgZG9jIGxhcCwgY2h1IHF1eWVuIHF1b2MgZ2lhLCBjbyB0YW0g bmhpbiBjaGllbiBsdW9jIHZhIG5hbmcgDQpsdWMgdG8gY2h1YyBjaGkgZGFvIHRodWMgaGllbiB0 aGFuZyBsb2kgbmdoaSBxdXlldCBkYWkgaG9pLiBUb25nIGJpIHRodSB2YSBjYWMgdXkgdmllbiBC byANCmNoaW5oIHRyaSBwaGFpIGxhIG5odW5nIG5ndW9pIHV1IHR1IG5oYXQgdHJvbmcgQkNILlQu Vy4gRHV0IGtob2F0IGtob25nIGRlIG5odW5nIA0Kbmd1b2kgY28gZGluaCBkZW4gdGhhbSBuaHVu ZyB2YSBuaHVuZyBuZ3VvaSBWaWV0IGdvYyBudW9jIG5nb2FpIHZhbyBCQ0guVC5XLg0KDQpEZSBj byBkdW9jIG1vdCBCQ0ggVC5XIGNvIGRheSBkdSBjYWMgdGlldSBjaGkgbm9pIHRyZW4sIGNvbmcg dGFjIG5oYW4gc3UgZGFpIGhvaSBjYW4gDQpkdW9jIHRpZW4gaGFuaCBjb25nIGtoYWksIGRhbiBj aHUsIGtoYWNoIHF1YW4sIHRyb25nIHNhbmcgdmEgdm9pIHRyYWNoIG5oaWVtIGNhbyBjdWEgDQpt b2kgZGFpIGJpZXUuDQoNCk5oYW4gdGh1YyBybywgZGF5IGR1IHRyYWNoIG5oaWVtIHZhIG5naGlh IHZ1IG5ndW9pIGRhbmcgdmllbiBnaGkgdHJvbmcgZGlldSBsZSBEYW5nLCANCg0KY2h1bmcgdG9p IG5odW5nIGNhbiBibyBjYW8gY2FwIGRhIG5naGkgY2FjIGNodWMgZGFuaCBjb25nIHRhYyB0cm9u ZyBiaWVuIGNoZSBuaGEgbnVvYywgDQpkYSA4MCwgOTAgdHVvaSBkb2k7IDYwIC0gNzAgdHVvaSBE YW5nLCBkYSBkZW0gY2EgdGFtIHRyaSB2YSBzdWMgbHVjIGN1YSBkb2kgbWluaCBjb25nIA0KaGll biBjaG8gc3UgbmdoaWVwIGNhY2ggbWFuZyB2ZSB2YW5nIGN1YSBEYW5nLCBjdWEgZGFuIHRvYywg eGluIGR1b2MgZG9uZyBnb3AgbW90IHNvIA0KeSBraWVuIHZlIGNvbmcgdGFjIG5oYW4gc3UgZGFp IGhvaToNCg0KMS4gUGhhaSBkYW0gYmFvIGNhYyBkYWkgYmlldSB2ZSBkdSBkYWkgaG9pIGNvIGRh eSBkdSBjYWMgdGlldSBjaGkgY2FuIHRoaWV0LCBwaGFpIGxhIG5odW5nIA0Kbmd1b2kgdXUgdHUg bmhhdCB2ZSBwaGFtIGNoYXQsIGRhbyBkdWMsIG5hbmcgbHVjLiBCbyBjaGluaCB0cmksIEJhbiBC aSB0aHUgVC5XLiBraG9hIDEwIA0KdmEgQmFuIHRoYW0gdHJhIHR1IGNhY2ggZGFpIGJpZXUgY2Fu IGRlIGNhbyB0cmFjaCBuaGllbSwgcmEgc29hdCBreSBsdW9uZywga2UgY2Egdm9pIA0Kbmh1bmcg ZGFpIGJpZXUgbGEgdXkgdmllbiBULlcga2hvYSAxMCBkZSBwaGF0IGhpZW4gdmEgdHJpbmggZGFp IGhvaSB4ZW0geGV0IHR1IGNhY2ggDQpuaHVuZyBkYWkgYmlldSB2dWEgcXVhIGNvIHZpIHBoYW0g a3kgbHVhdCB2YSBuaHVuZyB2YSBjbyBkYXUgaGlldSB2aSBwaGFtIGt5IGx1YXQsIA0Kbmh1bmcg bmd1b2kgY28gZGluaCBkZW4gdGhhbSBuaHVuZywgbmh1bmcgZGFpIGJpZXUgbGEgbmd1b2kgVmll dCBnb2MgbnVvYyBuZ29haS4NCg0KMi4gRGFuaCBzYWNoIGRlIGJhdSBCQ0ggVC5XIHBoYWkgdG9u ZyBob3AgdHUgMyBuZ3VvbjoNCg0KLSBNb3QgcGhhbiBjaG8gQkNILlQuVyBjdSBkZSBjdSAoa2hv YW5nIDYwJSkuDQotIE1vdCBwaGFuIGtob25nIG5obyBuZW4gZGUgY2FjIERhbmcgYm8sIGNhYyBk YW5nIHZpZW4sIGRvYW4gZGFpIGJpZXUgZGUgY3UuDQotIE1vdCBwaGFuIG5lbiBraHV5ZW4ga2hp Y2ggZGFpIGJpZXUgdHUgdW5nIGN1Lg0KDQpEYW5oIHNhY2ggZGUgYmF1ICh0aW5oIGNhIGNoaW5o IHRodWMgdmEgZHUga2h1eWV0KSBuZW4gY28gc28gZHUgaXQgbmhhdCAyNSUgc28gdm9pIHNvIGNh biBiYXUuDQoNCkRhbmggc2FjaCBiYXUgQi5DLlQsIEJhbiBiaSB0aHUsIFVCS1RUVyBjYW4gY28g c28gZHUgaXQgbmhhdCAyNSUuIA0KDQpEYW5oIHNhY2ggYmF1IGNodWMgZGFuaCBjdSB0aGUgbmVu IGNvIHR1IDIgbmd1b2kgdHJvIGxlbi4NCg0KLSBOZW4gZGUgZGFpIGhvaSB0cnVjIHRpZXAgYmF1 IFRvbmcgYmkgdGh1LiBWaSBsZSBkbyB2aWVjIHRob25nIHF1YSBkaWV1IGxlIHN1YSBkb2kgbmVu IGxhbSB0cnVvYyBsdWMgYmF1IGN1LiANCg0KMy4gQkNIIFQuVy4ga2hvYSAxMSBraG9uZyBuZW4g dnVvdCBzbyBsdW9uZyAxNTAsIGtob25nIG5lbiBjbyBjYXUgcmFpIGRldSBCbywgbmdhbmgsIA0K dGluaCwgdGhhbmggbmFvIGN1bmcgY28gdXkgdmllbiBULlcuLCBxdWFuIHRyb25nIGxhIGNoYXQg bHVvbmcuDQoNClRyZSBob2EgbGEgY2FuLCBuaHVuZyBraG9uZyBxdWEgY3VuZyBuaGFjIHZlIHR1 b2kgdGFjLCBtYSBjYW4gbW90IHN1IGtlIHRodWEsIGhhaSBob2EgDQpnaXVhIGNhYyBkbyB0dW9p LiBDdW5nIGNhbiBjbyBuZ29haSBsZSB2ZSB0dW9pIHRhYyB2b2kgY2h1YyBkYW5oIFRvbmcgYmkg dGh1LiBOZXUgY28gDQpkb25nIGNoaSB1dSB0dSBub2kgdHJvaSBob24gY2EgdHJvbmcgY2FjIGRh bmcgdmllbiB1dSB0dSwgcGhhbSBjaGF0IGRhbyBkdWMgZ3VvbmcgbWF1LCANCnR1eWV0IGRvaSB0 cnVuZyB0aGFuaCB2b2kgbHkgdHVvbmcsIHZvaSBkYW4sIHZvaSBudW9jLCBjbyBuYW5nIGx1Yywg Y28gdGFtIG5oaW4geGEsIGNvIGJhbiANCmxpbmggY2hpbmggdHJpIHZ1bmcgdmFuZywgY28geSBj aGkgdHUgY3VvbmcgdHUgY2h1LCBjbyB0aW5oIHRoYW4gZGF1IHRyYW5oIGJhbyB2ZSBkb2MgbGFw IA0KY2h1IHF1eWVuIHZhIGxvaSBpY2ggcXVvYyBnaWEsIHRhYyBwaG9uZyBkYW4gY2h1LCBjbyB1 eSB0aW4gdHJvbmcgRGFuZyB0cm9uZyBkYW4sIGNvIGtoYSANCm5hbmcgZG9hbiBrZXQgdG9hbiBE YW5nLCB0b2FuIGRhbiB0b2MgdGhpIHZhbiBkZSB0dW9pIGtob25nIGRhdCByYSwgbWllbiBsYSBj b24gZHUgc3VjIGtob2UgZGFtIGR1b25nIHRyb25nIHRyYWNoLg0KDQo0LiBEYWkgaG9pIHRvYW4g cXVvYyBjdWEgRGFuZyBsYW4gdGh1IDExLCBwaGFpIHRodWMgc3UgZGFuIGNodSwgcGhhaSB0aGUg aGllbiB0b3QgdGluaCANCnRoYW4gcGhlIGJpbmgsIHR1IHBoZSBiaW5oLCBwaGFpIGNvIHRpbmgg Y2hpZW4gZGF1LCBwaGFpIHRyYW5oIGx1YW4gZGUgdGltIHJhIGNhaSBkdW5nIGNhaSANCnNhaSwg a2hvbmcgbmVuIHBoYXQgYmlldSB0aGVvIGRvbiBkYXQgaGFuZy4gQm8gbG9pIHRoYW0gbHVhbiB0 cmFuZyBnaWFuZyBkYWkgaGFpLCBub2kgdmFpIA0KY2F1ICJuaGF0IHRyaSB2b2kgYmFvIGNhbyIg cm9pIGtlIGxlIHRoYW5oIHRpY2ggY3VhIHRpbmggbWluaCwgbmdhbmggbWluaCBtb3QgY2FjaCB2 byBiby4NCg0KQ2FjIHZhbiBkZSBjaHVuZyBjdWEgZGFpIGhvaSBjYW4gZHVvYyB0aWVuIGhhbmgg dHJvbmcgY2FjIHBoaWVuIGhvcCBjb25nIGtoYWksIGhldCBzdWMgDQpoYW4gY2hlIG5odW5nIGN1 b2MgaG9wIHJpZW5nIHRhaSBjYWMgZG9hbiBkYWkgYmlldSwga2hvbmcgbmVuIHF1YSBsYW0gZHVu ZyBjYWMgcGhpZW4gDQpob3AgdHJ1IGJpLiBDYW4gZGFuaCB0b2kgZGEgdGhvaSBnaWFuIGRhaSBo b2kgY2hvIHZpZWMgdGhhbyBsdWFuIHRyYW5oIGx1YW4gdGFpIGhvaSB0cnVvbmcuDQoNCjUuIEhp ZW4gdGFpIHNvIGRhbmcgdmllbiB0cm9uZyBkb2kgbmd1IGNhbiBibyBodXUgdHJpIGNhYyBjaHVj IGRhbmggdHJvbmcgYmllbiBjaGUgbmhhIA0KbnVvYyB2YSB0aGVvIGx1YXQgbGFvIGRvbmcgY2hp ZW0gZ2lhIG1vdCBudWEgdHJvbmcgdG9uZyBzbyB0cmVuIDMsMSB0cmlldSBkYW5nIHZpZW4uIA0K RGFuZyB2aWVuIGtob25nIGh1dSB0cmkgdmUgRGFuZywgaG8gdmFuIGNvIGRheSBkdSB0cmFjaCBu aGllbSwgbmdoaWEgdnUsIHF1eWVuIGxvaSANCnRyb25nIERhbmcsIGhvIHBoYWkgZHVvYyBkb2kg eHUgYmluaCBkYW5nIG5odSBuaHVuZyBkYW5nIHZpZW4gZHVvbmcgY2h1YywgZHVvbmcgDQpxdXll bi4gVmkgbGUgZG8gdHJvbmcgZGFpIGhvaSBEYW5nIGNhYyBjYXAgY2hvIGRlbiBkYWkgaG9pIHRv YW4gcXVvYyBjdWEgRGFuZywgaG8gY2FuIA0KY28gbW90IHR5IGxlIHRoaWNoIGRhbmcgdHJvbmcg dGhhbmggcGhhbiBkYWkgYmlldSBkYWkgaG9pIGNhYyBjYXAuIE5ldSBkdSB0aWV1IGNodWFuIHZh IA0Kc3VjIGtob2UgaG8gY28gcXV5ZW4gdW5nIGN1IHZhbyBjYWMgY2FwIHV5IERhbmcgdHUgY28g c28gcXVhbiwgaHV5ZW4sIHRpbmggdGhhbmggZGVuIFQuVy4NCg0KNi4gRGUgZ2l1cCBjYWMgZG9u ZyBjaGkgdHJvbmcgQm8gY2hpbmggdHJpLCBCYW4gYmkgdGh1IFQuVyBEYW5nIGtpZW0gZGllbSB0 cmFjaCBuaGllbSANCmN1YSBtaW5oIHRydW9jIEJDSC5ULlcgdmEgdHJ1b2MgZGFpIGhvaSwgcnV0 IHJhIGR1b2Mgbmh1bmcgYmFpIGhvYyBjYW4gdGhpZXQga2hvbmcgDQpuaHVuZyBjaG8gYmFuIHRo YW4gbWEgY29uIGNobyBuaHVuZyBkb25nIGNoaSBnaXUgY2FjIHRyb25nIHRyYWNoIHRyb25nIEJv IGNoaW5oIHRyaSAtIA0KQmFuIEJpIHRodSBULlcuIGtob2EgMTEsIGNodW5nIHRvaSBzZSBsYW4g bHVvdCB0aGFtIGdpYSB5IGtpZW4sIHRydW9jIG1hdCB0cm9uZyBwaGFtIHZpIA0KYnVjIHRodSBu YXksIHhpbiBkdW9jIGdvcCB5IHZvaSA0IGRvbmcgY2hpOg0KDQpsLCBWb2kgVG9uZyBiaSB0aHUg Tm9uZyBEdWMgTWFuaCwgbm9pIHRodWMgbGEgY2EgYmFuIHRoYW4gY2h1bmcgdG9pIGN1bmcgbmh1 IGR1IGx1YW4gDQpkb25nIGRhbyBjYW4gYm8sIGRhbmcgdmllbiB0aGF0IHZvbmcgdmUgbmh1bmcg Z2kgbWluaCBtb25nICBkb2kgdmEgaHkgdm9uZyBvIDIgbmhpZW0gDQpreSBUb25nIGJpIHRodSBj dWEgZG9uZyBjaGkuIER1IGx1YW4gY2hlIG5oaWV1IGhvbiBraGVuIGJhbiBsaW5oIGNoaW5oIHRy aSBjdWEgZG9uZyBjaGkgDQp0cm9uZyB1bmcgeHUgdm9pIG5oaWV1IHN1IGtpZW4sIG5oaWV1IGNv bmcgdmllYyBjYSBkb2kgbm9pIHZhIGRvaSBuZ29haS4gTmd1b2kgdGEga2hvbmcgDQpseSBnaWFp IGR1b2MgZG8gbGEgZG8gbmFuZyBsdWMgaGF5IGRvIHN1YyBlcCBuYW8gZG8/IER1IGx1YW4gbmhp ZXUgY2FuIGJvIGRhbmcgdmllbiBjaG8gDQpyYW5nIHRyb25nIGx1YyBkb25nIGNoaSBjaHVhIHRo dWMgaGllbiBkYXkgZHUgY2h1YyBuYW5nIFRvbmcgYmkgdGh1ICh2aWVjIGNoaW5oIGN1YSANCm1p bmgpIHRyb25nIHhheSBkdW5nIERhbmcgbGFpIGxhbiBzYW4gc2FuZyB2aWVjIGN1YSBDaHUgdGlj aCBudW9jIHZhIFRodSB0dW9uZyAodGhvYSANCnRodWFuLCBreSBrZXQgdm9pIGNhYyBjaGluaCBw aHUgbnVvYyBuZ29haSBtb3Qgc28gbm9pIGR1bmcgdGh1b2MgY2h1YyBuYW5nIG5oYSBudW9jKS4g DQpDbyBkdSBsdWFuIGNobyByYW5nIGRvbmcgY2hpIGRhIHZpIHBoYW0gbmd1eWVuIHRhYyB0cm9u ZyBxdWFuIGhlIHZvaSBudW9jIG5nb2FpIG8gDQpuaHVuZyB2YW4gZGUgbWEgQm8gY2hpbmggdHJp IGNodWEgYmFuIGJhYy4NCg0KTGEgVG9uZyBiaSB0aHUgc29uZyBpdCB0aGF5IGRvbmcgY2hpIGNo dSBkb25nIHBoYXQgaGllbiB2YSBkZSB4dWF0IG5odW5nIHZhbiBkZSBjYW4gDQpiYW4sIG5odW5n IHZhbiBkZSBidWMgeHVjIGN1YSBEYW5nLCBjdWEgZGF0IG51b2MgZGUgQm8gY2hpbmggdHJpIGJh biBiYWMgdGhhbyBsdWFuLiANCkNoYW5nIGhhbiBuaHU6IHBoYSBibyBob2kgdHJ1b25nIEJhIERp bmggc2F1IGtoaSBjbyBwaGFuIHVuZyBxdXlldCBsaWV0IGN1YSBsYW8gdGhhbmggDQpjYWNoIG1h bmcsIGN1YSBjYWMgbmhhIGtob2EgaG9jLCBjdWEgZGEgc28gbmhhbiBkYW47IGNobyBudW9jIG5n b2FpIGRhdSB0dSBraGFpIHRoYWMgDQpCby14aXQgVGF5IG5ndXllbjsgdmFuIGRlIGNodSBxdXll biB0cmVuIGJpZW4gZGFvOyB2YW4gZGUgY29uZyBuZ2hpZXAgcXVvYyBwaG9uZywgDQpoaWVuIGRh aSBob2EgcXVhbiBkb2k7IGNhYyB2YW4gZGUgbm9pIGNvbSB2ZSBzYWkgcGhhbSBjdWEgVG9uZyBj dWMgSUksIHZhIE5ndXllbiBDaGkgDQpWaW5oLiBOZ3V5ZW4gQ2hpIFZpbmggcGhhbSBjaGF0IHhh dSB4YSwgbGFtIG5oaWV1IHNhaSB0cmFpLCBEYWkgdHVvbmcgVm8gTmd1eWVuIEdpYXAgDQpndWkg dGh1IGNobyBULkIuVCBraG9uZyBuZW4gZGUgYmF0IFRydW5nIHR1b25nLCBkL2MgTm9uZyBEdWMg TWFuaCB0cmEgbG9pIERhaSB0dW9uZyANCmxhICJraG9uZyB0aGFuZyBUcnVuZyB0dW9uZywgY29u IGNodWEgYmlldCBkdWEgZGkgZGF1IGRlIHJlbi4uLiBsdXllbiIsIG5odW5nIHJvaSB2YW4gZGUg DQpiYXQgVHJ1bmcgdHVvbmcgdmEgVGh1IHRydW9uZyBxdW9jIHBob25nLCBjb24gdGFuZyBodWFu IGNodW9uZyBjYW8gbnVhIChtYSBkL2MgbGFpIGxhIA0KQmkgdGh1IERhbmcgdXkgcXVhbiBzdSks IGRlIG1vdCBzbyBub2kgY2FwIHV5IGNhbiB0aGllcCBzYXUgdmFvIHZpZWMgdHJ1eSB0byB4ZXQg eHU7IGNhYyANCnZ1IGFuIG1hIEJDSCBULlcuIGtob2EgOCwgYmFuIGdpYW8gY2hvIFQuVyBraG9h IDkuIA0KDQpMYSBuZ3VvaSBkdW5nIGRhdSBCbyBjaGluaCB0cmksIHZvaSB0cmFjaCBuaGllbSBj aHUgeWV1IHRyb25nIHZpZWMgeGF5IGR1bmcgRGFuZywgZGEgDQpkZSBuaHVuZyB2YW4gZGUgY290 IGxvaSB0cm9uZyBEYW5nIG5odSBkYW4gY2h1IG5vaSBibyBraG9uZyB0aHVjIGhpZW4sIHhheSBk dW5nIGRvaSANCm5ndSBjYW4gYm8gZGFuZyB2aWVuIGxhbSBxdWEgaXQuIFRlIHF1YW4gbGlldSBj aHV5ZW4gcXV5ZW4gZG9jIGRvYW4gcGhhdCB0cmllbiBtYW5oOyANCnBoZSBiaW5oIHR1IHBoZSBi aW5oIGRhbiBkYW4gdmFuZyBib25nIHRyb25nIHNpbmggaG9hdCBjdWEgY2FjIHRvIGNodWMgRGFu ZywgdHUgY28gc28gDQpkZW4gVC5XLiwgZGVuIEJvIGNoaW5oIHRyaS4gSGFpIG5oaWVtIGt5IHJv aSBtYSBjYWkgZ29pIGxhIG1vdCBibyBwaGFuIGtob25nIG5obyBjYW4gDQpibyBkYW5nIHZpZW4g Y28gY2h1YyBjbyBxdXllbiB0aWV1IGN1YyBjaGFuZyBuaHVuZyBraG9uZyBkdW9jIHRodSBoZXAg bWEgbGFpIGxvbiBkYW4gDQpsZW4uIE1hdCBkYW4gY2h1IHZhIGNhbiBibyBodSBob25nIGRhIGxh bSBjaG8gRGFuZyBtYXQgdGluIG5oaWVtIHF1YSBsb24uIE5oaWV1IGR1IA0KbHVhbiBjaG8gcmFu ZyBUb25nIGJpIHRodSBkYSBsb2kgZHVuZyBjaHVjIHF1eWVuIGRlIGdvIGVwIG5vaSBheSBub2kg a2lhIGR1YSBjb24gdHJhaSwgDQpjb24gZ2FpLCBjb24gcmUgdmFvIGNhYyBjaHVjIGRhbmggbWEg bmFuZyBsdWMsIHBoYW0gY2hhdCwgZGFvIGR1YyBraG9uZyB0dW9uZyB4dW5nLg0KDQoyLCBEb25n IGNoaSAoZC9jKSB1eSB2aWVuIEIuQy5UIE5ndXllbiBQaHUgVHJvbmc6IFF1YSBoYWkgbmhpZW0g a3kgdGhhbSBnaWEgQm8gY2hpbmggDQp0cmksIHZvaSB2YWkgdHJvIGxhIEJpIHRodSBUaGFuaCB1 eSBIYSBOb2ksIENodSB0aWNoIEhvaSBkb25nIGx5IGx1YW4gVC5XLiwgQ2h1IHRpY2ggDQpRdW9j IGhvaSwgdHV5IGNvIGxhbSBkdW9jIG1vdCBzbyB2aWVjLCBuaHVuZyBzbyB2b2kgdHJvbmcgdHJh Y2ggdGhpIGNvbiBuaGlldSBoYW4gY2hlLiANCkNhIG1vdCB0aG9pIGdpYW4gZGFpIGxhIEJpIHRo dSBUaGFuaCB1eSBIYSBOb2kgZGUgdGhhbmggcGhvIHF1YSB0cmkgdHJlOyBkZSBuaGlldSBjYW4g Ym8gDQpkaW5oIGRlbiB0aWV1IGN1YyB2ZSB0YWkgc2FuLCB0YWkgY2hpbmgsIG5oYSBkYXQsIGNv IGNhIENodSB0aWNoIHZhIG1vdCBzbyBQaG8gY2h1IHRpY2ggDQp0aGFuaCBwaG8uIE5naGllbSB0 cm9uZyBsYSBkZSBjaG8gQ2h1IHRpY2ggbG9pIGR1bmcgY2h1YyBxdXllbiBsYW0gZ2lhdSwgZHVu ZyB0aWVuIA0KY29uZyBxdXkgbXVhIG8gdG8gcXVhIGRhdCwgcXVhIHNhbmcgZGUgZHVuZyAobmd1 b2kgdGEgYmFvIHJhbmcgMzAwMCBjb24gdHJhdSBjdWEgbm9uZyANCmRhbikuIExlbiBULlcuIHZv aSBjdW9uZyB2aSBDaHUgdGljaCBIb2kgZG9uZyBseSBsdWFuIGNodWEgdGhheSBwaGF0IGhpZW4g ZHVvYyB2YW4gZGUgDQpnaSBtb2kgdmUgbHkgbHVhbiwgbmhpZXUgZHUgbHVhbiBjaG8gZG9uZyBj aGkgZ2lhbyBkaWV1LCBzYW8gY2hlcC4NCg0KTGEgQ2h1IHRpY2ggUXVvYyBob2kgY2h1YSBwaGF0 IGh1eSBkYW4gY2h1LCB0cmkgdHVlIGN1YSBjYWMgZGFpIGJpZXUgdmEgcXV5ZW4gbHVjIGNhbyAN Cm5oYXQgY3VhIHF1b2MgaG9pIGNoaSB4aW4gbmV1IG1vdCB2YWkgdmllYyBkaWVuIGhpbmg6DQoN Ci0gVmllYyBwaGEgYm8gaG9pIHRydW9uZyBCYSBEaW5oLCBtb3QgZGkgdGljaCBsaWNoIHN1IGNh Y2ggbWFuZyB0aWV1IGJpZXUgY3VhIHRob2kga3kgZGF1IA0KeGF5IGR1bmcgQ05YSCBvIG1pZW4g QmFjLCBnYW4gdm9pIG5oaWV1IGhvYXQgZG9uZyBjdWEgQmFjIEhvOyBnYW4gdm9pIDEwIG5oaWVt IGt5IA0KUXVvYyBob2kgdm9pIG5oaWV1IGRhaSBob2kgRGFuZyB0b2FuIHF1b2MgdmF5IG1hIGJh dCBjaGFwIGNhYyBraWVuIG5naGkgdGFtIGh1eWV0IGN1YSANCmRvbmcgZGFvIGNhYyBuaGEgbGFv IHRoYW5oIGNhY2ggbWFuZywgY2FjIG5oYW4gc2kgdHJpIHRodWMsIGNhYyBuaGEga2hvYSBob2Ms IG5oYSBxdWFuIA0KbHkgdmEgdHV5ZXQgZGFpIGRhIHNvIG5oYW4gZGFuLCBkb25nIGNoaSBkYSB0 aHV5ZXQgcGh1YyBiYW5nIGR1b2MgUXVvYyBob2kgYmlldSBxdXlldCANCnRob25nIHF1YS4NCg0K LSBWaWVjIG1vIHJvbmcgdGh1IGRvIEhhIE5vaSwgeG9hIGRpIGhhbiBtb3QgdGluaCBkZSBuaGFw IHZhbyBtb3QgZG9uIHZpIGtoYWMgdmF5IG1hIA0KQ2h1IHRpY2ggUXVvYyBob2kga2hvbmcgY2h1 IGRvbmcgZHVhIHZhbiBkZSB0cm9uZyBkYWkgZG8gcmEgUXVvYyBob2kgYmFuIGJhYyB0aGF1IGRh bywgDQpkdWEgUXVvYyBob2kgdmFvIHRpbmggdGhlICJ2aWVjIGRhIHJvaSIsIGNoYW5nIGxhbSB0 aGUgbmFvIGtoYWMgZHVvYyENCg0KLSBWYW4gZGUgZGF1IHR1IGtoYWkgdGhhYyBCby14aXQgbyBU YXkgTmd1eWVuLCBtb3QgdmllYyBsaWVuIHF1YW4gZGVuIGFuIG5pbmggLSBxdW9jIA0KIHBob25n IGtob25nIG5odW5nIG8gVGF5IE5ndXllbiBtYSB2b2kgY2EgbnVvYzsgbGllbiBxdWFuIGRlbiBt b2kgdHJ1b25nIGtob25nIA0Kbmh1bmcgbyBUYXkgTmd1eWVuIG1hIHZvaSBuaGlldSB0aW5oIHRo YW5oIE5hbSBibzsgbGllbiBxdWFuIGRlbiBsb2kgaWNoIGRvbmcgYmFvIA0KdGhpZXUgc28gVGF5 IE5ndXllbjsgbGllbiBxdWFuIGRlbiB2YW4gZGUgZHUgdHJ1IHRhaSBuZ3V5ZW4gbGF1IGRhaSBj dWEgZGF0IG51b2MsIHZheSANCm1hIGtoaSBkaSB0aGFtIFRpZXAgS2hhYywga2lldSBiYW8gaG9p LCBkL2Mgbm9pIGxhIHZhbiBkZSBuaG8gUXVvYyBob2kga2hvbmcgY2FuIGJhbi4NCktoaSBob3Ag UXVvYyBob2ksIFBobyBUaHUgdHVvbmcgTmd1eWVuIFNpbmggSHVuZyBub2kgZGF5IGxhIGNodSB0 cnVvbmcgbG9uIGN1YSANCkRhbmcgdmEgTmhhIG51b2MuIEtoaSBtb3Qgc28gZGFpIGJpZXUgcXVv YyBob2kgZGUgbmdoaSBiYW4gdGhhbywgdGhpIENodSB0aWNoIFF1b2MgaG9pIA0KY2F0IGtob25n IGNobyBiYW4sIG5vaSByYW5nIHZhbiBkZSBkYSBkdW9jIHF1eWV0IGRpbmguDQoNCjMsIERvbmcg Y2hpIE5ndXllbiBUYW4gRHVuZw0KDQpRdWEgbW90IG5oaWVtIGt5IGxhbSBQaG8gdGh1IHR1b25n IHRodW9uZyB0cnVjIHZhIG1vdCBuaGllbSBreSBsYW0gVGh1IHR1b25nLCBkL2MgDQpkYSBsYW0g ZHVvYyBtb3Qgc28gdmllYyBuaHUgeGF5IGR1bmcgY28gc28gdmF0IGNoYXQsIG1vIG1hbmcgZHVv bmcgc2EsIHhheSBuaGlldSBjYXUsIA0KY28gbmh1bmcgY2F1IGhpZW4gZGFpLCBzYW4gYmF5LCBi ZW4gY2FuZywgcGhhdCB0cmllbiBkdSBsaWNoLCB0aHUgaHV0IGRhdSB0dSwga2luaCB0ZSBjbyAN CnBoYXQgdHJpZW4gKG5odW5nIGtob25nIHZ1bmcgY2hhYykgY28gZ29wIHBoYW4gbmFuZyBjYW8g dmkgdGhlIGN1YSBudW9jIHRhIHRyZW4gdHJ1b25nIA0KcXVvYyB0ZSB2LnYuLi4gDQpOaHVuZyBj byBuaGlldSB2aWVjIHlldSBrZW0sIGtob25nIHRvdDoNCi0gS2hvbmcgbGFtIHRyb24gdHJhY2gg bmhpZW0gcXVhbiBseSB0YWkgc2FuIE5oYSBudW9jLg0KDQorIERlIGxhbSB0YWMgcGhhIHJ1bmcg cmF0IG5oaWV1LCBydW5nIGNoYXkgbmhpZXUsIGxhaSBiYW4gcnVuZyBtYXQgcnVuZyBuaGlldSBx dWEsIA0KY2h1bmcgdG8gVGh1IHR1b25nIGtob25nIHF1YW4gbHkgZHVvYyBydW5nLg0KKyBOaGll dSBub2ksIHRoYW4sIGtob2FuZyBzYW4gY2FjIGxvYWkgImJpIHRobyBwaGkiIHZhIGtoYWkgdGhh YyBidWEgYmFpLg0KKyBUYWkgY2hpbmggdGhhdCB0aG9hdCBuaGlldSwgZG8gdGhhbSBuaHVuZywg bGFuZyBwaGkuIEJhbiBkYXUgVGh1IHR1b25nIG5vaSByYXQgaGFuZywgDQpuaHVuZyBraG9uZyBu Z2FuIGNoYW4gZHVvYywgY3UgcGhhdCB0cmllbiwgdGllbiBkYXUgdHUgdmFvIGNoaW5oIHBodSBk aWVuIHR1IGNvaSBuaHUgDQptYXQga2hvbmcsIGtob25nIGR1b2MgdmllYyBnaSwgZG8gVmFuIHBo b25nIGNoaW5oIHBodSBwaGFpIGNoaXUgdHJhY2ggbmhpZW0gbmh1bmcgcm9pIGN1bmcgdHJvaS4N Cg0KLSBUaGllbiB2ZSB0aHUgaHV0IGRhdSB0dSBkaWEgb2MsIG51b2MgbmhvIG1hIGRlIHBoYXQg dHJpZW4gaG9uIHRyYW0gc2FuIGdvbiwgZGUgY2hvIA0KYmFuIGRhdCB0cmFpIHBoZXAgbmhpZXUg bmVuIG1hdCBydW9uZywgZGF0IHJhdCBuaGlldSBuaGF0LCBub25nIGRhbiB0aGF0IG5naGllcC4N Cg0KLSBIYW5nIGhvYSBudW9jIG5nb2FpIHRyYW4gbmdhcCB0aGkgdHJ1b25nLCBuaGFwIHNpZXUg bGllbiBtaWVuLCBzbyB0aWVuIGxvbi4NCg0KLSBMYW0gcGhhdCBraG9uZyBoYW4gY2hlIGR1b2Ms IHRpZW4gbWF0IGdpYSwgbW9pIHRodSBuaHUgY2F1IGN1YSBkYW4gZ2lhIGNhIHRhbmcgdm90LCBj byB0aHUgMTAwJS4NCg0KLSBWYXkgbm8gbnVvYyBuZ29haSBuaGlldSBuaGF0LCBjaG8gY2EgZHUg YW4ga2hvbmcgY2FuIGdhcC4NCg0KLSBOZ29haSByYSBraGEgbmhpZXUgZHUgbHVhbiBjYWMgdGlu aCBtaWVuIE5hbSwga2UgY2EgbyBLaWVuIEdpYW5nIGNobyByYW5nIGRvbmcgY2hpIA0KdmEgZ2lh IGRpbmggY28gbmh1bmcgYmlldSBoaWVuIHZlIHRhaSBzYW4ga2hvbmcgbWluaCBiYWNoLCB4YXkg bmhhIHRobyBobyBxdWEgbG9uLCBxdWEgDQpxdWkgbW8gaG9hbmggdHJhbmcgdG9uIGRlbiA0MCB0 eSAodHJvbmcga2hpIGRvIHRoaSBIb2kgdHJ1b25nIEJhIERpbmggbGljaCBzdSBxdWFuIHRyb25n IA0KYmFjIG5oYXQgbGFpIHBoYSBkaSkuDQoNCjQsIERvbmcgY2hpIFRvIEh1eSBSdWEgVVYgQkNU IFRydW9uZyBiYW4gVHUgdHVvbmcgVmFuIGhvYSBULlcuLCBjbyBraGEgbmhpZXUgZHUgDQpsdWFu IHR1IERvIFNvbiwgdHUgSGFpIFBob25nIGNobyByYW5nIHRob2kga3kgbyBUaGFuaCB1eSBIYWkg UGhvbmcgZG9uZyBjaGkgZGEgZGUgeGF5IA0KcmEgbmhpZXUgdnUgdmllYyB0aWV1IGN1YyB2ZSBu aGEgZGF0LCBrZW8gZGFpIGtob25nIGR1b2MgeHUgbHkgbmdoaWVtIG1pbmguIExlbiBULlcuIA0K dm9pIHZhaSB0cm8gQ2h1IHRpY2ggSG9pIGRvbmcgbHkgbHVhbiwgZG9uZyBjaGkgbGFtIGR1b2Mg cXVhIGl0LCBuaHVvYyBkaWVtIGxvbiBsYSB0aGlldSANCnRodWMgdGUgZG8gdmF5IGtob25nIHBo YXQgaGllbiBkdW9jIHZhbiBkZSBuYW8gbWFuZyB0aW5oIHNhbmcgdGFvLCBkZSBnaWFvIGRpZXUs IHNhbyANCmNoZXAuIFZvaSBjaHVjIGRhbmggVHJ1b25nIGJhbiBUdSB0dW9uZyBWYW4gaG9hIFQu Vy4sIGR1IGx1YW4gY2hvIHJhbmcgY2EgdmUgbWF0IGx5IA0KbHVhbiwgdHUgZHV5IHF1YSBuZ2hl byBuYW4sIG1hIG5hbmcgbHVjIGhvYXQgZG9uZyB0aHVjIHRpZW4gY3VuZyByYXQgaGFuIGNoZSwg ZGUgcXVhIA0KbmhpZXUgdGlldSBjdWMgcGhhdCBzaW5oIHRyZW4gbWF0IHRyYW4gdHUgdHVvbmcg LSB2YW4gaG9hIHRvaSBjYXAgZG8gYmFvIGRvbmcsIGRhbiBkZW4gYmkgDQpkb25nLCBkb2kgcGhv IGx1bmcgdHVuZywgZGkgdG9pIHN1IGR1bmcgbmhpZXUgY2FjIGJpZW4gcGhhcCBoYW5oIGNoaW5o LCBtZW5oIGxlbmgsIGNhbSANCmRvYW4gbGFtIGNobyB0aW5oIGhpbmggZGEgcm9pIGNhbmcgcm9p IHJhbSB0aGVtLiANClBoYXQgZG9uZyBob2MgdHUgdHVvbmcgZGFvIGR1YyBIbyBDaGkgTWluaCwg dHVvbmcgcmFuZyBkZSBjaGluaCBkb24gdHUgdHVvbmcsIG5odW5nIA0Kbmh1bmcgbmd1b2kgbmFt IHF1eWVuIG8gY2FjIGNhcCBsYSBkb2kgdHVvbmcgY2FuIGhvYyBsYSBjaGluaCB0aGkga2hvbmcg bWF5IGFpIGhvYywgDQpuaHVuZyBjYW4gYm8gdGhhbSBuaHVuZywgcXVhbiBsaWV1LCBoYWNoIGRp Y2ggdGhpIGtob25nIGNvIGJpZXUgaGllbiBnaSBjaHV5ZW4gYmllbiANCnRoYW5oIHJhIHRvbiB0 aWVuIHZvIGljaC4gVHV5ZW4gdHJ1eWVuIGNoaSBtb3QgY2hpZXUgdG8gaG9uZywgYWkgbm9pIGxl biBzdSB0aGF0IHRoaSBjYW0sIA0KY29pIGxhIGtlIHhhdS4NCg0KQ2EgNCBkb25nIGNoaSBkZXUg ZGEgdGhhbSBnaWEgMiBkZW4gMyBuaGllbSBreSBCQ0ggVC5XLiB2YSBuaHVuZyBiYXQgY2FwIHZh IGtodXlldCANCm5odW9jIGRpZW0gY3VhIGNhYyBkb25nIGNoaSwgdGluIG5oaWVtIGN1YSBjYWMg ZC9jIHRyb25nIGRhbmcgdmllbiB2YSBuaGFuIGRhbiBnaWFtIA0Kc3V0LCBtb25nIHJhbmcgbmhp ZW0ga3kgdG9pIGRheSAoRGFpIGhvaSAxMSkgY2FjIGRvbmcgY2hpIG5lbiB0aG9pIHVuZyBjdSwg bmh1b25nIGNobyANCmNobyBjYWMgZG9uZyBjaGkga2hhYyBkZSBjaG8gbG9uZyB0aW4gZG9pIHZv aSBEYW5nIGR1b2MgbmFuZyBsZW4sIFRvIHF1b2MsIGRhbiB0b2MgcGhhdCANCnRyaWVuIG5oYW5o IHZhIGNhYyBkL2MgY3VuZyBraG9uZyBtYW5nIHRpZW5nIHRoYW0gcXV5ZW4sIGNvIHZpLg0KDQpY aW4gZ3VpIGRlbiBCbyBjaGluaCB0cmkgLSBCYW4gQmkgdGh1IFQuVy4gbG9pIGNoYW8ga2luaCB0 cm9uZyB2YSBjaHVjIGNhYyBkb25nIGNoaSBjdW5nIA0Kdm9pIEJDSCBULlcuIGNodWFuIGJpIHRv dCBuaGF0IGNobyBEYWkgaG9pIGRhaSBiaWV1IHRvYW4gcXVvYyBjdWEgRGFuZyBjYSB2ZSB2YW4g a2llbiANCnZhIG5oYW4gc3UgZGFpIGhvaS4NCiANCkRhbmggc2FjaCBkb25nIGt5IHRlbg0KDQpM ZSBIdXUgRHVjIC0gVHJ1bmcgVHVvbmcgRi42NTAgODcgdHVvaSBkb2kgLSA2NCB0dW9pIERhbmcg dGhhbSBnaWEgbWF0IHRyYW4gVmlldCANCk1pbmggdHUgdGhhbmcgMTAgbmFtIDE5NDM6IFRvaSBu aGF0IHRyaSBob2FuIHRvYW4sIHhpbiBjaG8gYm8gc3VuZyAyIGRpZW06DQoNCjEuIFZvaSBkb25n IGNoaSBOb25nIER1YyBNYW5oIC0gS2h1eWV0IGRpZW0gdHJhbSB0cm9uZyBuaGF0IGxhIG5nYSBo YW4gdmFvIGJvbiANClRydW5nIFF1b2MsIGtob25nIHRoYXkgZHVvYyBhbSBtdXUgbXVvbiBkb2kg Y3VhIFRydW5nIFF1b2MgbGEgbXVvbiBudW90IGNodW5nIA0KbnVvYyB0YSwga2hvbmcgdGhheSBx dWEgNDAwMCBuYW0gZHVuZyBudW9jIHZhIGdpdSBudW9jLCBjaGkgVnVvbmcgdHJpZXUgbmFvIG5o dSANCm5odW9jIGNoYXkgdGhlbyBib24gVHJ1bmcgUXVvYyBsYSBtYXQgbnVvYyBoYXkgc2FvPyBD YW4ga2llbSBkaWVtIG5naGllbSBraGFjIA0KdHJ1b2Mga2hpIG5naGkgdmllYyBkZSBsYW0gZ3Vv bmcgY2hvIG5odW5nIGRvbmcgY2hpIGtoYWMgdHJhbmggdmV0IHhlIGRvIG5hdCBjdWEgZG9uZyAN CmNoaSBOb25nIER1YyBNYW5oLg0KDQoyLiBWb2kgZG9uZyBjaGkgTmd1eWVuIFRhbiBEdW5nIHRv aSBjdW5nIG5oYXQgdHJpIG5odSBiYW4gdHJpbmggYmF5LiBUb2kgdGhheSBnYW4gZGF5IA0KZG9u ZyBjaGkgRHVuZyBjbyBtb3QgY2h1IGRvbmcgZGFuZyBob2FuIG5naGVuaCBsYSBkYSBuaGF0IHRy aSB2b2kgQm8gUXVvYyBQaG9uZyBxdWEgDQpOZ2EgbXVhIHNhbSB0YXUgbmdhbSB2YSBtYXkgYmF5 IE1pYyAyOSB2ZSB0cmFuZyBiaS4gVnUga2hpIHRvaSB0YW4gbW9pIGdpdSBkdW9jIA0KVHJ1b25n IFNhIHZhIGNob25nIGxhaSBkdW9jIG1vaSBrZSB4YW0gbHVvYyB0dSBwaGlhIGRvbmcgVG8gUXVv Yy4gRGUgbmdoaSBkb25nIGNoaSANCkR1bmcgdGllcCB0dWMgdW5nIGhvIEJvIFF1b2MgUGhvbmcg bmVuIGRlIE5nYSB2YW8gbGFpIGNhbiBjdSBDYW0gUmFuaCwgY28gbmh1IHZheSANCnRoaSBtb2kg ZGFwIHRhbiBtb2kgYW0gbXV1IGJhbmggdHJ1b25nIG11b24gY2hpZW0gbnVvYyB0YSB0cnVvYyBo ZXQgbGEgYm9uICJBYyBiYSAtVHJ1bmcgUXVvYyINCg0KTmd1eWVuIFRyb25nIFZpbmggLSBOZ3V5 ZW4gVVZUVyBEYW5nIC0gTGFvIHRoYW5oIGNhY2ggbWFuZy4NCg0KSHV5bmggRGFjIEh1b25nIC0g VGhpZXUgVHVvbmcsIENoaW5oIHV5IFF1YW4ga2h1LCBUdSBsZW5oIGtpZW0gQ2hpbmggVXkgcXVh biANCnRpbmggbmd1eWVuIHZhIGNodXllbiBnaWEgcXVhbiBzdSB0YWkgTGFvLCBUaHUgVHJ1b25n IEJvIExhbyBEb25nIC0gVGh1b25nIEJpbmggWGEgSG9pLg0KTmd1eWVuIEh1eSBWYW4gKEtpbSBT b24pIC0gTGFvIHRoYW5oIGNhY2ggbWFuZyAtIDUwIHR1b2kgRGFuZy4NCk5ndXllbiBUaGkgQ3Vv bmcgLSBDYW4gYm8gdGllbiBraG9pIG5naGlhLCA2NCB0dW9pIERhbmcsIEh1YW4gY2h1b25nIERv YyBsYXAgaGFuZyAzLg0KVHJhbiBEdWMgUXVlIC0gTGFvIHRoYW5oIGNhY2ggbWFuZywgQ2h1eWVu IFZpZW4gZGEgbmdoaSBodXUuDQpIdXUgQW5oIC0gVGhpZXUgVHVvbmcsIExhbyB0aGFuaCBjYWNo IG1hbmcsIG5ndXllbiBjdWMgdHJ1b25nIC4uLkJvIFF1b2MgUGhvbmcuDQpUcmFuIEJhIC0gQ3V1 IGNoaWVuIGJpbmggTmFtIHRpZW4sIDg1IHR1b2kgZG9pLCA0NiB0dW9pIHF1YW4sIDY0IHR1b2kg ZGFuZy4NCkxlIEh1dSBIYSAtIExhbyB0aGFuaCBjYWNoIG1hbmcsIFRydW9uZyBiYW4gdG8gY2h1 YyBsaWVuIGtodSB1eSBJViwgY2h1eWVuIHZpZW4gdHUgDQp2YW4gY3VhIGNhYyBvbmcgSHV5bmgg VGFuIFBoYXQsIERvIE11b2kuDQpMZSBNYWkgQW5oIC0gTGFvIHRoYW5oIGNhY2ggbWFuZywgY3V1 IGNoaWVuIGJpbmggLCBnYW4gNTAgdHVvaSBkYW5nLg0KTmd1eWVuIE5hbSAtIExhbyB0aGFuaCBj YWNoIG1hbmcsIGN1dSBjYW4gYm8gY2FjIEJhbiBUVyBEYW5nLCBjdXUgY2FuIGJvIFRXIERvYW4g VE5MRC4NClBoYW0gVmFuIEhpZW4gLSBEYWkgVGEsIExhbyB0aGFuaCBjYWNoIG1hbmcuDQpUcmFu IE5ndXllbiAtIExhbyB0aGFuaCBjYWNoIG1hbmcsIDg2IHR1b2kgZG9pLCA2MCB0dW9pIGRhbmcs IDQwIHR1b2kgcXVhbi4NCk5ndXllbiBCYSBCYW8gLSBDYW4gYm8gdmllbiBuZ2hpZW4gY3V1IEJv IGNvbmcgbmdoaWVwLCA3NSB0dW9pIGRvaSwgNDUgdHVvaSBkYW5nLg0KTmd1eWVuIFZhbiBUdXll biAtIERhaSBUYSBRRE5EIFZpZXQgTmFtLCBMYW8gdGhhbmggY2FjaCBtYW5nLCA4NSB0dW9pIGRv aSwgNjMgdHVvaSBkYW5nLg0KVnUgVGh1YW4gLSBMYW8gdGhhbmggY2FjaCBtYW5nLCA4NSB0dW9p IGRvaSwgNjAgdHVvaSBkYW5nLCBIdWFuIGNodW9uZyBkb2MgbGFwLg0KTGUgTWluaCBDaGF1IC0g TGFvIHRoYW5oIGNhY2ggbWFuZywgNTAgdHVvaSBkYW5nLg0KTmd1eWVuIFZhbiBCZSAtIExhbyB0 aGFuaCBjYWNoIG1hbmcgdGllbiBraG9pIG5naGlhLCA4NiB0dW9pIGRvaS4NCk5ndXllbiBWYW4g TWF1IC0gVHJ1bmcgVHVvbmcsIExhbyB0aGFuaCBjYWNoIG1hbmcsIDkwIHR1b2kgZG9pLCBnYW4g NzAgdHVvaSBkYW5nLiANCg0KLS0tLS0NCmh0dHA6Ly93d3cuYmFveGF5ZHVuZy5jb20udm4vTWFp bi5hc3B4P01OVT0xMTQxJlN0eWxlPTEmQ2hpVGlldD05MjAyICA3LzMxLzIwMDggMTA6NTU6MTAg UE0NCg0KSGFpIFBob25nOiBRdWFuIHRoYW0gdG8gY2h1YyBsYW0gZ2lheSB0byBnaWEsIGNoaWVt IGRvYXQgdGllbiBjdWEgbmdhbiBoYW5nLiANCg0KaHR0cDovL3d3dy50bnRwLm9yZy52bi9EZXRh aWwuYXNweD9Db250ZW50SUQ9MTA1MDMgVGhlbyBob21lLnZubi52biAzMC8xMC8yMDA5IDA5OjM3 IEFNDQoNCkhhaSBQaG9uZzogVHJ1b25nIGhvYyBwaGFpIGRvbmcgY3VhIHZpIG8gbmhpZW0gbW9p IHRydW9uZyAtIFRydW9uZyBUSENTIFF1YW4gVG9hbiBjbyBob24gNTAwIGhvYyBzaW5oLiANCkNh bmggdHJ1b25nIG5heSBjb24gY28gdHJ1b25nIHRpZXUgaG9jIHZhIG1hbSBub24gdm9pIHNvIGx1 b25nIGhvbiAxLjAwMCBob2Mgc2luaC4gDQoNCmh0dHA6Ly9waGFwbHVhdHRwLnZuLzIwMTAwNjAz MDE0NTUxOTdwMGMxMDE1L2hvbi0xMTAwLWNvbnRhaW5lci1kb25nLWxhbmgtdS1kb25nLXRhaS1j YW5nLWhhaS1waG9uZy5odG0gS0lNIExJTkggMDMvMDYvMjAxMCAtIDAxOjQ2IEFNDQoNCkhhaSBQ aG9uZzogSG9uIDEuMTAwIGNvbnRhaW5lciBkb25nIGxhbmggdSBkb25nIHRhaSBjYW5nIC0gTmd1 eSBjbyBiaSBob25nLCBnaWFtIGNoYXQgbHVvbmcgDQoNCkhpZW4gY28gaG9uIDEuMTAwIGNvbnRh aW5lciBkb25nIGxhbmggZGFuZyB1IGRvbmcgdGFpIGNhbmcgSGFpIFBob25nLiBUdSBnaXVhIHRo YW5nIDUsIG1vaSANCm5nYXkgY28gNTAtNjAgY29udGFpbmVyIGhhbmcgZG9uZyBsYW5oIHZhbyBj YW5nIHRyb25nIGtoaSB0b2MgZG8gcnV0IGhhbmcgY2hpIGtob2FuZyAxMCBjb250YWluZXIvbmdh eS4gDQpUaW5oIHRyYW5nIHUgZG9uZyB0cmVuIGNvbiBkaWVuIHJhIHRhaSBoYXUgaGV0IGNhYyBj YW5nIG8gSGFpIFBob25nIG5odSBEaW5oIFZ1LCBEb2FuIFhhLCBHcmVlbiBQb3J0Lg0KDQpUYWkg Y2FuZyBDaHVhIFZlIGhpZW4gY28gOTQyIGNvbnRhaW5lciBoYW5nIGRvbmcgbGFuaCBsdXUgYmFp IHRyb25nIGtoaSBjb25nIHN1YXQgdG9pIGRhIGN1YSBjYW5nIGxhIA0KOTAwIGNvbnRhaW5lci4g Q2FuZyBDaHVhIFZlIGRhbmcgZ2FwIGtobyBraGFuIHRyb25nIHZpZWMgYmFvIHF1YW4gaGFuZyBk b25nIGxhbmggY2hvIGtoYWNoIHZpIHRpbmggdHJhbmcgdGhpZXUgZGllbi4gDQoNCkR1b2MgYmll dCBoYW5nIHRodWMgcGhhbSBkb25nIGxhbmggdmUgSGFpIFBob25nIGNodSB5ZXUgbGEgaGFuZyB0 YW0gbmhhcCB0YWkgeHVhdC4gQ2FjIGRvYW5oIG5naGllcCANClZpZXQgTmFtIG5oYXAgaGFuZyB0 dSBNeSwgVWMsIEFuIERvLi4uIHJvaSB4dWF0IHNhbmcgVHJ1bmcgUXVvYyBxdWEgY3VhIGtoYXUg TW9uZyBDYWkuIFR1eSBuaGllbiwgdHUgdGhhbmcgNSwgDQpkbyBwaGlhIFRydW5nIFF1b2MgaGFu IGNoZSB0aWVwIG5oYW4gbG9haSBoYW5nIG5heSBuZW4gZGFuIGRlbiB0aW5oIHRyYW5nIHVuIHUu DQoNCmh0dHA6Ly93d3cuYmFvY29uZ3RodW9uZy5jb20udm4vRGV0YWlscy9raW5oLXRlL2Nhbmct aGFpLXBob25nLWhhbmctZG9uZy1sYW5oZGVuLWhlbi1sYWktdS1kb25nLzMyLzAvMzQwMzcuc3Rh ciAxNTowMDowMCA1LzYvMjAxMA0KDQpDYW5nIEhhaSBQaG9uZzogSGFuZyBkb25nIGxhbmguLi5E ZW4gaGVuIGxhaSB1IGRvbmchIA0KDQpEdW9uZyBuaHUgbW90ICJraWNoIGJhbiIgZHVvYyBsYXAg ZGkgbGFwIGxhaSB0dSBuaGlldSBuYW0gbmF5IGN1IHZhbyBkaXAgbmF5LCBoYW5nIA0KaG9hLCBk YWMgYmlldCBsYSBoYW5nIGRvbmcgbGFuaCBxdWEgY2FjIGNhbmcgSGFpIFBob25nIGxhaSBiaSB0 b24gZG9uZy4gDQogIA0KRHUgZGEgZHVvYyBkdSBiYW8gdHJ1b2Mgbmh1bmcgbmFuZyBsdWMgY3Vh IGNhYyBjYW5nIEhhaSBQaG9uZyB2YW4ga2hvbmcgcGhhbiB1bmcgDQpraXAuIEhpZW4gbmF5LCBk YSBjbyBoYW5nIG5nYW4gY29udGFpbmVyIGRvbmcgbGFuaCBkYW5nICJ4ZXAgaGFuZyIgY2hvIGR1 b2MgZ2lhaSBwaG9uZy4gDQoNCktoaSBsdW9uZyBoYW5nIG5heSB0b24gZG9uZyB0YWkgY2FuZywg dmllYyBjdW5nIGNhcCAgZGllbiBiYW8gb24sIGRpZW4gdGljaCB0YXAga2V0IGNobyANCmNhYyBj b250YWluZXIgbmF5IGdhcCBuaGlldSBraG8ga2hhbi4NCkRlIGNhcCBkb25nIGNobyBsdW9uZyBj b250YWluZXIgZG9uZyBsYW5oIHUgZG9uZywgY2FuZyBwaGFpIHRodWUgdGhlbSAyIG1heSBwaGF0 IA0KZGllbi4gVGhlIG5odW5nIGNhIGhhaSBtYXkgcGhhdCBkaWVuIG5heSBjdW5nIGNoaSBkYXAg dW5nIGR1b2MgY2hvIGtob2FuZyAyMDAgDQpjb250YWluZXIuIFRydW9jIHRpbmggdHJhbmcgdSBk b25nIGhhbmcgdGFpIGNhbmcsIG1vdCBzbyBjaHUgaGFuZyBkYSAiYm8gY3VhIGNoYXkgbGF5IA0K bmd1b2kiIGtoaSB0dSBjaG9pIG5oYW4gaGFuZyB2b2kgbHkgZG8gY2hpIHBoaSBxdWEgbG9uOiB0 aWVuIGRpZW4sIHRpZW4ga2hvIGJhaSwuLi4gTmh1IHZheSANCnZpZWMgeHUgbHkgbmh1bmcgbG8g aGFuZyBkb25nIGxhbmggbmF5IHNlIHRodWMgc3UgcGh1YyB0YXAsIG5ldSBjbyB0aWV1IGh1eSBj dW5nIHBoYWkgDQpjaGkgcGhpIHJhdCB0b24ga2VtLiBUaW5oIHRyYW5nIG5heSBkaWVuIHJhIGto b25nIGNoaSB0YWkgY2FuZyBIYWkgUGhvbmcgbWEgY2FjIGNhbmcgDQpEaW5oIFZ1LCBEb2FuIFhh LCBHcmVlbiBQb3J0Li4uLGN1bmcgbGFtIHZhbyBjYW5oIHR1b25nIHR1Lg0KDQpodHRwOi8vd3d3 LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjUvMjAxMDA2MTcwMDQ2MTcuYXNweCAx Ny8wNi8yMDEwIDA6NDYgDQoNCkhhaSBQaG9uZzogSGF0IHRoYW5oIHRyYSBnaWFvIHRob25nIGxl biBtdWkgeGUsIGNoYXkgc3VvdCAzIGttICAgDQoNCmh0dHA6Ly93d3cudmlldG5hbXBsdXMudm4v SG9tZS9UcmlldC1waGEteG9tLWJ1b24tbWEtdHV5LWxvbi1uaGF0LW8tSGFpLVBob25nLzIwMTA2 LzQ5NzkyLnZucGx1cw0KDQpIYWkgUGhvbmc6ICJ4b20iIGJ1b24gbWEgdHV5IGxvbiB0YWkgdGhv biAyIEtpbmggR2lhbywgeGEgVGFuIFRpZW4sIGh1eWVuIEFuIER1b25nIA0KDQpodHRwOi8vd3d3 LnNnZ3Aub3JnLnZuL2tpbmh0ZS8yMDEwLzcvMjMwNDQ4LyAwNy8wNy8yMDEwLCAwMzoyMCAoR01U KzcpDQoNCkhhaSBQaG9uZyAtIFF1YW5nIE5pbmg6IEdhbiAxLjAwMCBjb250YWluZXIgaGFuZyBk b25nIGxhbmggdGFjIG8gUXVhbmcgTmluaA0KDQpUaGVvIEJhbiBRdWFuIGx5IGN1YSBraGF1IEth IExvbmcgdmEgTW9uZyBDYWkgKFF1YW5nIE5pbmgpLCBoaWVuIG8gZGF5IGRhbmcgdG9uIGRvbmcg a2hvYW5nIA0KMS4wMDAgY29udGFpbmVyIGhhbmcgaG9hIGNhYyBsb2FpIHh1YXQgc2FuZyBUcnVu ZyBRdW9jLCB0cm9uZyBkbyBjbyBraG9hbmcgOTAlIGhhbmcgZG9uZyBsYW5oLCANCnRoaXQgdmEg Y2FjIHNhbiBwaGFtIHBodSBjdWEgdGhpdCBkb25nIGxhbmggdGFtIG5oYXAgdGFpIHh1YXQuIFBo YW4gbG9uIGNhYyBjb250YWluZXIga2UgdHJlbiANCmR1b2MgdmFuIGNodXllbiB0dSBjYWMgY2Fu ZyBvIEhhaSBQaG9uZyBkZW4gZGUgY2h1YW4gYmkgbGFtIHRodSB0dWMgeHVhdCBzYW5nIFRydW5n IFF1b2MuIA0KDQpUdXkgbmhpZW4sIGdhbiBkYXkgcGhpYSBjYWMgY28gcXVhbiBjaHVjIG5hbmcg VHJ1bmcgUXVvYyB0aHVjIGhpZW4ga2llbSB0cmEgZ2F0IGdhbyB2ZSANCmNoYXQgbHVvbmcgY2Fj IGxvYWkgaGFuZyBob2EgeHVhdCBraGF1IHF1YSBkdW9uZyBiaWVuIG1hdSBuZW4gdmllYyB0aG9u ZyBxdWFuIGNoYW0gdHJlLCANCmdhcCBuaGlldSBraG8ga2hhbi4NCg0KVGluaCB0cmFuZyBhY2gg dGFjIGhhbmcgZG9uZyBsYW5oIHRhaSBNb25nIENhaSBjYW5nIGxhbSB0YW5nIHRoZW0gbXVjIGRv IGFjaCB0YWMgdGFpIGNhYyBjYW5nIA0KdGh1b2MgSGFpIFBob25nLiBIaWVuIHRhaSwgbyBIYWkg UGhvbmcgdmFuIGNvbiBob24gMS4wMDAgY29udGFpbmVyIGhhbmcgZG9uZyBsYW5oICJuYW0iIGNh bmcuIA0KDQpodHRwOi8vd3d3LjYwcy5jb20udm4vaW5kZXgvMjg1ODg3Ni8wNjEwMjAxMC5hc3B4 IDYgLyAxMCAvIDIwMTAsIDk6IDM2IChHTVQrNykNCg0KSGFpIFBob25nOiBNb3QgcGh1IG51IGJp ICdnaWFuZyBobyBkYXQgQ2FuZycgbmEgc3VuZywgYW0gc2F0IGh1dCAoMi8xMCkgDQoNCmh0dHA6 Ly92dGMudm4vMi0yODQ3MDEveGEtaG9pL2NsaXAtZ2lhbmctaG8tZGF0LWNhbmctdHJ1dC1tdWEt ZGFvLXRyb25nLWJlbmgtdmllbi5odG0gSGFpIENoYXUgMjgvMDQvMjAxMSAxMDo0NSANCg0KSGFp IFBob25nOiBHaWFuZyBobyBEYXQgY2FuZyB0cnV0ICJtdWEgZGFvIiB0cm9uZyBiZW5oIHZpZW4g DQoNCktob2FuZyAxaDMwIG5nYXkgMTkvNC8yMDExLCBtb3QgY3VvYyBob24gY2hpZW4ga2luaCBo b2FuZyBiYW5nIGRvYW4gZGFvLCBtYSB0YXUgDQpnaXVhIDIwIHRoYW5oIG5pZW4gZGEgeGF5IHJh IHRyb25nIGtodSB2dWMgY2FwIGN1dSwgQmVuaCB2aWVuIEh1dSBuZ2hpIFZpZXQgLSBUaWVwIChU UCANCkhhaSBQaG9uZykuIChDbGlwIDA1OjEzKSANCg0KVG9hbiBibyBkaWVuIGJpZW4ga2luaCBo b2FuZyB2dSBob24gY2hpZW4gZHVvYyBjYW1lcmEgYW4gbmluaCB0YWkgQmVuaCB2aWVuIFZpZXQg liANClRpZXAgZ2hpIGxhaS4gQ28gcXVhbiBjb25nIGFuIGRhbmcgdGllbiBoYW5oIGRpZXUgdHJh LCBsYW0gcm8gZGFuaCB0aW5oIGNhYyBkb2kgdHVvbmcgbGllbiANCnF1YW4uDQoNClRoZW8gZGll dSB0cmEgY3VhIHBob25nIHZpZW4gR0RWTiwgaGFpIG5ob20gdGhhbmggbmllbiBuYXkgdHJ1b2Mg ZG8gZGEgc3UgZHVuZyBoYW5nIA0Kbm9uZywgInNvIGdhbmciIHZvaSBuaGF1IHRyZW4gZGlhIGJh biBxdWFuIE5nbyBRdXllbi4gTW90IHNvIGRvaSB0dW9uZyBiaSB0aHVvbmcgdmEgDQpkdW9jIGRv bmcgYm9uIGR1YSBkaSBjYXAgY3V1Lg0KDQooQW5oIGNodXA6IE5ob20gdGhhbmggbmllbiB0aHUg bmhhdCBkYW5nIHF1YXkgZGFuaCBtb3Qgbmd1b2kpIA0KDQpPYW4gZ2lhIGdhcCBuaGF1IG5vaSBu Z28gaGVwLCBjYSBoYWkgbmhvbSBsYWkgZ2lhcCBtYXQgbmhhdSB0YWkgQmVuaCB2aWVuIFZpZXQg VGllcC4gDQpNb3QgbmhvbSB0aGFuaCBuaWVuICh0YW0gZ29pIGxhIG5ob20gdGh1IG5oYXQpIGR1 YSBiYW4gdmFvIGNhcCBjdXUgdGFpIEJlbmggdmllbiBWaWV0IA0KVGllcCB0aGkgcGhhdCBoaWVu IG1vdCB0cm9uZyBzbyAiZG9pIHRodSIgbyBjdWEgYmVuaCB2aWVuLiBOaG9tIG5heSBkYSBkdW9p IHRoZW8gdmEgDQpkYW5oIG5ndW9pIG5heSBuZ2F5IHRhaSBwaG9uZyBjYXAgY3V1IGN1YSBiZW5o IHZpZW4uIFRoZW8gbmh1bmcgaGluaCBhbmggcXVheSBkdW9jIA0KdHUgY2FtZXJhIGdpYW0gc2F0 LCBuaG9tIG5ndW9pIG5heSBkYSBkYW0gZGEsIGR1bmcgZ2hlIG5odWEgYm8gbmhpZXUgbmhhdCB2 YW8gZGF1IA0Kbmd1b2kgdGhhbmggbmllbiBraWEuDQoNClNhdSBtb3QgaG9pLCBuZ3VvaSB0aGFu aCBuaWVuIGJpIHF1YXkgZGFuaCB2dW5nIGNoYXkgdGhvYXQgZHVvYyByYSBwaGlhIGN1YSBiZW5o IHZpZW4gDQp0dXkgbmhpZW4gdmFuIGJpIGNhIG5ob20gdGhhbmggbmllbiBraWEgKHRyb25nIGRv IGNvIG1vdCBuZ3VvaSBiaSBiYW5nIG8gdnVuZyBkYXUpIGR1b2kgDQp0aGVvLiBWdWEgcmEgZGVu IGN1YSwgeHVhdCBoaWVuIG1vdCBuaG9tIHRoYW5oIG5pZW4gdGh1IGhhaSBraG9hbmcgMTAgbmd1 b2ksIGxhICJ2aWVuIA0KYmluaCIgY3VhIHRoYW5oIG5pZW4gdnVhIGJpIHF1YXkgZGFuaCB4dWF0 IGhpZW4sIHRyZW4gdGF5IGNhbSB0aGVvIGRhbywgbWEgdGF1LCBnYXkgZ29jIA0KdmEgImx1YSIg bGFpIG5ob20gdGh1IG5oYXQga2lhLg0KDQooQW5oOiAiQ3V1IGJpbmgiIGN1YSBuZ3VvaSBiaSBk YW5oIHh1YXQgaGllbiB2b2kgZGFvLCBtYSB0YXUuLi4gZG9uIGRvaSBwaHVvbmcgKGdvYyANCmJl biBwaGFpKSB2YW8gcGhvbmcgY2FwIGN1dSkNCg0KQmkgcGhhbiBjb25nIGJhdCBuZ28sIGNhIG5o b20gdGh1IG5oYXQgcXVheSBkYXUgYm8gY2hheSB2YW8ga2h1IHZ1YyBjYXAgY3V1LCBoYWkgDQpu Z3VvaSB0cm9uZyBzbyBuYXkgY2hheSBraG9uZyBraXAgdmEgYmkgZG9pIHBodW9uZyBxdWF5IHRh aSBwaG9uZyBjYXAgY3V1LiBNb3Qgbmd1b2kgDQpiaSBkb2kgcGh1b25nIGRvbiB2YW8gZ29jIHR1 b25nIHBoYWkgdm8gY2EgdGFtIG1hbiBjaGUgZ2l1b25nIGJlbmggZGUgbGFtIGJpbmggDQpwaG9u ZyBjaG9uZyBkbyBsYWkgdHJhbiBtdWEgZGFvLCBtYSB0YXUgdmEgZGlldSBjYXkuIE5ndW9pIGNv biBsYWkgKGxhIG5ndW9pIGRhIGJpIA0KdGh1b25nIHRydW9jIGRvLCBxdWFuIGJhbmcgdnVuZyBk YXUpIGJpIGRvaSBwaHVvbmcgZG9uIHZhbyBnb2MgcGhvbmcgY2FwIGN1dSB2YSBzYXUgDQpkbyBs YSBtb3QgY29uIG11YSBkYW8sIGdheSBzYXQsIGR1aSBjdWkgdHJ1dCB4dW9uZy4gTmd1b2kgbmF5 IGNoaSBraXAgdm8gbW90IGNoaWVjIGdoZSANCmRlIGR1YSBsZW4gZG8gZG9uLg0KDQpUdXkgbmhp ZW4sIG5ob20gdGh1IG5oYXQgY3VuZyBraG9uZyBwaGFpIG5odW5nIGtlICJ2dWEgbGFtIHRyYW4g ZGEgYm8gY2hheSIuIFNhdSBraGkgDQpiaSBuaG9tIHRodSBoYWkgcGhhbiBjb25nIGJhdCBuZ28g dm9pIGRhbyB2YSBtYSB0YXUsIG5ob20gdGh1IG5oYXQgZGEgZHVuZyBjaG9pIGxhdSANCm5oYSwg eG8sIGdoZSBsYW0gdnUga2hpIGRlIHF1YXkgbGFpIG5naGVuaCBjaGllbiBnaWFpIGN1dSBoYWkg ImNoaWVuIGh1dSIgZGFuZyBwaGFpIA0KaHVuZyBtdWEgZGFvLCBnYXkgc2F0IHRyb25nIHBob25n IGNhcCBjdXUuICANCiANClRoYXkgbmhvbSB0aHUgbmhhdCB2dW5nIGxlbiB2b2kga2hpIHRoZSBh cCBkYW8sIG5ob20gdGh1IGhhaSBibyBjaGF5LCB0aGFtIGNoaSBkYXkgY2EgDQpnaXVvbmcgYmVu aCAobG9haSBjbyBiYW5oIHhlKSB2ZSBwaGlhIGRvaSBwaHVvbmcgZGUgY2FuIGR1b25nIHZhIGNo YXkgdGhvYXQgdGhhbi4gQ2EgDQpoYWkgbmhvbSB0aWVwIHR1YyBtYW4gcnVvdCBkdW9pLCBkYW0g Y2hlbSByYSBuZ29haSBjb25nIGJlbmggdmllbiB2YSBjaGkgY2hpdSBkdW5nIGxhaSANCmtoaSBj YWMgYmVuIGRldSBraWV0IHN1Yy4NCg0KU2F1IGtoaSB4YXkgcmEgdnUgaG9uIGNoaWVuLCBuaGll dSBkbyB2YXQsIHRhaSBzYW4gY3VhIGJlbmggdmllbiBiaSBodSBob25nLiBUcm9uZyBwaG9uZyAN CmNhcCBjdXUsIGJhbiBnaGUsIGdpYXkgdG8gYmF5IG5nb24gbmdhbmcuIFBoaWEgZ29jIG5vaSBo YWkgbmd1b2kgdGhhbmggbmllbiBjdWEgbmhvbSANCnRodSBuaGF0IGJpIGRvbiB2YW8sIHZ1b25n IGxhaSBuaGlldSB2ZXQgbWF1IGJlIGJldC4gDQoNCmh0dHA6Ly9ob2FwaHVvbmdkby52bi9uZXdz L3Rpbi10dWMtc3Uta2llbi9waGFwLWx1YXQtZG9pLXNvbmcvNjQ3NS14ZXQteC1rLWhpcC1kYW0t YmEtZ2lhLmh0bWwgMTcvNi8yMDA5IDE1OjE0DQoNCkhhaSBQaG9uZzogVHJhaSAyMSBoaWVwIGRh bSBiYSBnaWEgY29pIGNodWEgDQoNCmh0dHA6Ly93d3cuZGFuZ2NvbmdzYW4udm4vcHJpbnRfcHJl dmlldy5hc3A/aWQ9QlQyMDMwODU0MjIyIDIwLzMvMjAwOA0KDQpPbmcgVG8gSHV5IFJ1YTogIk1v dCBraWV1IGtpbmggdGUgdGhpIHRydW9uZyBtb2kgY2h1YSB0dW5nIGNvIHRyb25nIGxpY2ggc3Ug bmhhbiBsb2FpLCBkbyBsYSANCmtpbmggdGUgdGhpIHRydW9uZyBkaW5oIGh1b25nIHhhIGhvaSBj aHUgbmdoaWEiLiAiRG8gbGEgbW90IG1vIGhpbmgga2luaCB0ZSBtb2ksIGRhbmcgdmFuIGRvbmcs DQpwaGF0IHRyaWVuIG1hbmggbWUgbyBUcnVuZyBRdW9jLCBWaWV0IE5hbSB2YSBkdW9jIHRoZSBn aW9pIHRodWEgbmhhbi4iICANCg0KaHR0cDovL3d3dy5zZ3R0LmNvbS52bi9kZXRhaWwyOS5hc3B4 P25ld3NpZD02MDg4MCZmbGQ9SFRNRy8yMDA5LzEyMjAvNjA4ODAgTmdheSAyMC4xMi4yMDA5IEdp byAwMDo0MQ0KDQpIYWkgUGhvbmc6IFZ1IG5nbyBkb2Mga2hpIHRoYWkgLSBjb24gbmhpZXUga2h1 YXQgdGF0ICANCg0KVHJvbmcgY2F1IGNodXllbiBuZ28gZG9jIGtoaSwgbmd1b2kgZGFuIGRpYSBw aHVvbmcgdmEgdGhheSB0cm8gdHJ1b25nIFRIQ1MgUXVhbiBUb2FuIGNobyBiaWV0LCB2YW4gY29u IG5odW5nIHZhbiBkZSANCmtodWF0IHRhdCBjYW4gZHVvYyBjYWMgY28gcXVhbiBjaHVjIG5hbmcg bGFtIHJvDQoNCmh0dHA6Ly93d3cuaGFpcGhvbmdkb3N0Lmdvdi52bi9oYWlwaG9uZy9qc3AvbG9u Z0FydGljbGUuanNwP2FydGljbGVJRD01NzM2DQoNCkhhaSBQaG9uZzogS2VuaCwgaG8sIHNvbmcg SGFpIFBob25nIGJpIG8gbmhpZW0gdnVvdCBxdWEgdGlldSBjaHVhbiB0dSAxMCAtIDEwMCBsYW4g DQogIA0KaHR0cDovL3d3dy5iYmMuY28udWsvdmlldG5hbWVzZS92aWV0bmFtLzIwMTAvMDIvMTAw MjAzX2Jhbmtlcl9hcnJlc3Quc2h0bWwgMDc6MjcgR01UIDMgdGhhbmcgMiwgMjAxMA0KDQpIYWkg UGhvbmc6IG9uZyBEb2FuIFRpZW4gRHVuZyAtIG5ndXllbiBsYSBHaWFtIGRvYyBjaGkgbmhhbmgg SGFpIFBob25nIGN1YSBCSURWLiANCg0KaHR0cDovL3R1b2l0cmUuY29tLnZuL3RpYW55b24vaW5k ZXguYXNweD9hcnRpY2xlaWQ9MzYyNDA1JmNoYW5uZWxpZD02IFRodSBOYW0sIDA0LzAyLzIwMTAs IDA4OjA5IChHTVQrNykNCg0KVnUgb25nIERvYW4gVGllbiBEdW5nIFBUR0QgbmdhbiBoYW5nIEJJ RFYgbmhhbiBob2kgbG8gbGEgdnUgYW4gbG9uIA0KDQpodHRwOi8vdmlldG5hbW5ldC52bi9jaGlu aHRyaS8yMDEwMDEvSG9jLUJhYy1jYW4tYm8tZGktbWF5LWJheS1oYW5nLXBoby10aG9uZy04OTE0 MjgvMTY6MzAsIDI1LzAxLzIwMTAgKEdNVCs3KQ0KDQpPbmcgVG8gSHV5IFJ1YSAtIFRydW9uZyBi YW4gVHV5ZW4gZ2lhbywgY28gdGluaCByZXUgcmFvIG1vdCBjYWNoIHhhIHJvaSB0aHVjIHRlOiBj YWMgdnUgdmllYyANCnRoYW0gbmh1bmcsIHRpZXUgY3VjIGxvbiwgdG8gY2h1YyBkYW5nIHZhIGRh bmcgdmllbiB2aSBwaGFtIHRpZXUgY2h1YW4gZGFvIGR1YywgbG9pIHNvbmcgYmkgDQp4dSBseSBr eSBsdWF0Li4uIGNvIHh1IGh1b25nIGdpYW0uIA0KDQpodHRwOi8vd3d3LnRpZW5waG9uZy52bi9U aWFueW9uL0luZGV4LmFzcHg/QXJ0aWNsZUlEPTE4NTg1MCZDaGFubmVsSUQ9MiAwNS8wMi8yMDEw LCAwODozMA0KDQpPbmcgRG9hbiBUaWVuIER1bmcgZG9pIGhvaSBsbyAxMCB0eSBkb25nIA0KDQpC YSBMZSBUaGkgVGhhbmggQmluaCwgUGhvIGdpYW0gZG9jIGNoaSBuaGFuaCBIYWkgUGhvbmcgY3Vh IEJJRFYgY3VuZyBiaSBiYXQgdmUgaGFuaCB2aSBuaGFuIGhvaSBsbywgDQpkb25nIHBoYW0gdm9p IFBobyBUb25nIGdpYW0gZG9jIEJJRFYgRG9hbiBUaWVuIER1bmcuIA0KDQpDUURUIHhhYyBkaW5o IGJhIEJpbmggZGEgbmhhbiBraG9hbmcgNSB0eSBkb25nLCBkdW9pIGhpbmggdGh1YyBuaGFuIHRy dWMgdGllcCBob2FjIHF1YSBjaHV5ZW4ga2hvYW4sIGhvYWMgZHVvYyBvbmcgRHVuZyBjaGlhIHBo YW4gdHJhbS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9uZXdzL1BhZ2VzLzIwMTA0 Mi8yMDEwMTAxMjAwNTAyMC5hc3B4IFAuSC5TIDEyLzEwLzIwMTAgMDo1MCANCg0KSGFpIFBob25n OiBOZ3VvaSBkYW4gcGhvbmcgdG9hIE5oYSBtYXkgeGkgbWFuZyBDaGluZm9uICANCiAgDQpIb20g cXVhIDExLjEwLCBnYW4gdHJhbSBuZ3VvaSBkYW4gc29uZyBnYW4gTmhhIG1heSB4aSBtYW5nIENo aW5mb24gKHRoaSB0cmFuIE1pbmggDQpEdWMsIFRodXkgTmd1eWVuLCBIYWkgUGhvbmcpIGxhaSBw aG9uZyB0b2EgbmhhIG1heSB4aSBtYW5nIG5heSBkZSBkb2kgYm9pIHRodW9uZyB2YSANCnBoYW4g ZG9pIHRpbmggdHJhbmcgbyBuaGllbSBuZ2hpZW0gdHJvbmcuIA0KDQpUcnVvYyBkbywgdmFvIGto b2FuZyAyMSBnaW8gbmdheSAxLjEwLCBkbyBzdSBjbyBiaSB0dXQgdGh1bmcgY2h1YSwgaG9uIDkw IHRhbiB4aSBtYW5nIHZhIA0Kbmd1eWVuIGxpZXUgeGkgbWFuZyBkYSBiaSBzdXQgdHUgdGh1bmcg Y2h1YSB4dW9uZyBkYXQsIGdheSBidWkgbXUgbWl0IG1vdCBraHUgdnVjIGJhbiANCmtpbmgga2hv YW5nIDMwMG0sIGFuaCBodW9uZyB0b2kga2hvYW5nIDEuMDAwIGhvIGRhbiwga2hpZW4gaG8gcGhv bmcgdG9hIG5oYSBtYXkuIA0KDQpDaGluaCBxdXllbiBkaWEgcGh1b25nIGh1YSBzZSB5ZXUgY2F1 IG5oYSBtYXkgYm9pIHRodW9uZywgbXVvbiBuaGF0IGRlbiBuZ2F5IDEwLjEwIA0Kc2UgZ2lhaSBx dXlldC4gU2F1IG5nYXkgMTAuMTAsIHRoYXkgeWV1IGNhdSBjaHVhIGR1b2MgZGFwIHVuZyB0aG9h IGRhbmcgKGtodSBDaGllbiANClRoYW5nIGJpIGFuaCBodW9uZyBuYW5nIGR1b2MgaG8gdHJvIDYw MC4wMDAgZC9obywga2h1IFRoYW5nIExvaSwgQmFjaCBEYW5nIHhhIGhvbiANCmR1b2MgaG8gdHJv IDQwMC4wMDAgZC9obyksIG5ndW9pIGRhbiBkYSB0aWVwIHR1YyBwaG9uZyB0b2EgbmhhIG1heSwg eWV1IGNhdSBwaGFpIGNvIA0KYmllbiBwaGFwIGNhbiBjbywgZGkgZG9pIGRhbiByYSBraG9pIGto dSB2dWMgbyBuaGllbSwgdHJ1b2MgbWF0IGRlIG5naGkgZ2lhbSBzYXQgY2hhdCANCmRheSBjaHV5 ZW4gc2FuIHh1YXQsIHhhIHRoYWkgY3VhIG5oYSBtYXkgeGkgbWFuZyBkYW5nIGdheSBvIG5oaWVt IG5naGllbSB0cm9uZy4gDQoNCmh0dHA6Ly9sYW9kb25nLnZuL1Rpbi1UdWMvRGEtYmF0LWR1b2Mt dGh1LXBoYW0tdnUtbm8ta2luaC1ob2FuZy1vLXhhLUt5LVNvbi80NTQ3IDMuNy4yMDEwICAwOTow OSAoR01UICsgNykNCg0KSGFpIFBob25nOiBNb3QgdnUgbm8gbG9uIGtoaWVuIG5oaWV1IG5ndW9p IGJpIHRodW9uZyB2YSAyNCBuaGEgZGFuIGJpIGh1IGhvbmcuIFZ1IG5vIA0KZ2F5IHJhIGhvIGxv biB2b2kgZHVvbmcga2luaCBob24gOG0sIGNobyBzYXUgbmhhdCB0b2kgMiw1bSwgdHVvbmcgZHVv bmcgdm9pIHN1YyBjb25nIA0KcGhhIGN1YSBtb3QgcXVhIGJvbSB0YW4gaG9hYyAyMGtnIHRodW9j IG5vIFROVC4gDQoNCkRheSBsYSB2dSBhbiBkYWMgYmlldCBuZ2hpZW0gdHJvbmcsIGdheSB0aGll dCBoYWkgbG9uIHZlIHRhaSBzYW4gdmEgZ2F5IHRhbSBseSBob2FuZyBtYW5nIA0KdHJvbmcgbmhh biBkYW4sIGFuaCBodW9uZyB4YXUgZGVuIHRpbmggaGluaCBBTlRUIA0KDQpodHRwOi8vd3d3LnRo YW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMjkvMjAxMDA3MTMwMDEzMzAuYXNweCBQaGFt IEhhaSBTYW0gMTMvMDcvMjAxMCAwOjEzIA0KDQpIYWkgcGhvbmc6IEJhbiBxdWFuIGx5IGR1IGFu IGNhbmcgSGFpIFBob25nIGNoaSBzYWkgaG9uIHRyYW0gdGkgZG9uZyAgDQogIA0KVGhhbmggdHJh IENoaW5oIHBodSB2dWEgY28ga2V0IGx1YW4gY2hpIHJvIGhhbmcgbG9hdCBzYWkgcGhhbSBuZ2hp ZW0gdHJvbmcgdGFpIGR1IGFuIENhaSANCnRhbywgbmFuZyBjYXAgY2FuZyBIYWkgUGhvbmcuIA0K DQotIENoYXQgbHVvbmcgY2h1YW4gYmkgZGF1IHR1IGN1YSBCYW4gUUxEQSByYXQgdGhhcCwgYmFv IGNhbyBuZ2hpZW4gY3V1IGtoYSB0aGkga2hvbmcgDQpjaGluaCB4YWMgZGFuIGRlbiBwaGFpIGRp ZXUgY2hpbmggcXV5IG1vIGN1YSBkdSBhbi4NCg0KLSBWaWVjIGxhcCBobyBzbyBtb2kgdGhhdSwg dG8gY2h1YyBjaGFtIHRoYXUsIGtldCBxdWEgY2hhbSB0aGF1IGN1bmcga2hvbmcgbGFtIGR1bmcg DQpxdXkgZGluaC4gQ3UgdGhlLCBuaGEgdGhhdSBOaXBwb24gS29laSBOaGF0IEJhbiAoZ29pIHR1 IHZhbikga2hvbmcgdGllbiBoYW5oIGtoYW8gc2F0IA0KbWEgY2hpIHN1IGR1bmcga2V0IHF1YSBr aGFvIHNhdCB2ZSBkaWEgaGluaCwgZGlhIGNoYXQsIHRodXkgdmFuLi4uIGRvIENvbmcgdHkgdHUg dmFuIHF1b2MgDQp0ZSBWaWV0IE5oYXQgLSBWaWMgdGh1ZSBURURJIGxhcCAodGhhbmcgNS4xOTk5 KSBuaHVuZyBCYW4gUUxEQSB2YW4gY2hhcCBuaGFuIHRoYW5oIA0KdG9hbi4gDQoNCi0gVmllYyBr aGFvIHNhdCB0aGlldCBrZSB0aGlldSBjaGluaCB4YWMgbmVuIG5oaWV1IGhhbmcgbXVjIHBoYWkg ZGlldSBjaGluaCBzbyB2b2kgdGhpZXQgDQprZSBreSB0aHVhdCBkdW9jIGR1eWV0LiBUb25nIGdp YSB0cmkgY3VhIHZpZWMgcGhhaSBkaWV1IGNoaW5oLCBibyBzdW5nIG5odW5nIGhhbmcgbXVjIA0K bmF5IGxlbiB0b2kgMjkgdGkgZG9uZy4NCg0KLSBOaGlldSBoYW5nIG11YyBuaHUgY2FpIHRhbyBr aG8sIGRpIGNodXllbiBkdW9uZyByYXksIHBoYSBkbyBjb25nIHRyaW5oIGN1OyBkZSBkb2MgDQpz b25nIENhbSwgYmFpIGNvbnRhaW5lciBsYW5oIHRodW9uZyBsdXUgY2FuZyBDaHVhIFZlIGtob25n IGR1b2MgdGh1YyBoaWVuIG5odW5nIEJhbiANClFMREEgZGEga2hvbmcgYmFvIGNhbyBuZ3VvaSBy YSBxdXlldCBkaW5oIGRhdSB0dS4NCg0KLSBCYW4gUUxEQSBsYWkgdHUgdGh1YyBoaWVuIG1vdCBz byBoYW5nIG11YyBuaHUgbW8gcm9uZyBrZSBibywgZHVvbmcgZGllbiAzNSBLViwgaGUgDQp0aG9u ZyBjdXUgaG9hLCBuZW8gY2F1IHRydWMgZ2lhbiBiYWkuLi4gc2F1IGRvIG1vaSB0cmluaCBUaHUg dHVvbmcgcGhlIGR1eWV0LiBCYW4gUUxEQSANCmNvbiBzdSBkdW5nIGhhbmcgdGkgZG9uZyBuZ3Vv biB2b24gY3VhIGR1IGFuIGRlIGNhaSB0YW8sIHhheSBkdW5nIG5oYW5oIGR1b25nIHNhdCANCnRy b25nIGNhbmcgQ2h1YSBWZSB0cm9uZyBraGkgaGFuZyBtdWMgbmF5IGhvYW4gdG9hbiBraG9uZyBj byB0cm9uZyBkYW5oIG11YyBkYXUgdHUgDQp4YXkgZHVuZyBjdWEgZHUgYW4uDQoNCi0gTWFjIGR1 IGtob25nIGxpZW4gZG9hbmggdm9pIG5oYSB0aGF1IFZpZXQgTmFtLCBraG9uZyBzdSBkdW5nIHRo YXUgcGh1IFZpZXQgTmFtIA0KdHVjIGxhIGhvYW4gdG9hbiBraG9uZyBkdSBkaWV1IGtpZW4gZHUg dGhhdSB0aGVvIHF1eSBkaW5oIG5odW5nIG5oYSB0aGF1IE1pdHN1aSANCkVuZ2luZWVyaW5nIC0g U2hpcGJ1aWxkaW5nIHZhIG5oYSB0aGF1IGxpZW4gZG9hbmggSUhJLU1lcyBjdW5nIGxhIE5oYXQg QmFuIHZhbiBjbyB0ZW4gDQp0cm9uZyBkYW5oIHNhY2ggdGhhbSBkdSB0aGF1IHZhIGRhIHRydW5n IHRoYXUuDQoNCi0gTyBuaGlldSBoYW5nIG11YyBraGFjIGNvIHF1YW4gY2h1YyBuYW5nIGNvbiBw aGF0IGhpZW4gY28gc3UgY2hlbmggbGVjaCBsb24gZ2l1YSANCmtob2kgbHVvbmcgdGh1YyBoaWVu IHZvaSBraG9pIGx1b25nIHRoaWV0IGtlLiBEb24gY3UsIGhhbmcgbXVjIGtlIGRhIGJhbyB2ZSBt YWkgZG9jIA0KZ2FtIGJlbiBzbyA0LCBzbyA1IHRhbmcgMTAlLCBoYW5nIG11YyBiZSB0b25nLCBj b3QgdGhlcCBjYXUgdGF1IHRhbmcgMzAlLi4uDQoNCi0gQ2hpdSB0cmFjaCBuaGllbSB2ZSBuaHVu ZyBzYWkgcGhhbSB0cm9uZyBrZXQgbHVhbiB0aGFuaCB0cmEgbGEgQmFuIFFMREEgY2FuZyBIYWkg DQpQaG9uZyB2YSBjYWMgY29uZyBjaHVjLCB2aWVuIGNodWMsIGNvIHF1YW4sIGRvbiB2aSB0aHVv YyBCbyBHVFZUIGNvIGxpZW4gcXVhbiBkZW4gDQp2aWVjIHRodWMgaGllbiBkdSBhbiB0dSBuYW0g MTk5NSBkZW4gbmF5LiANCg0KLSBUVENQIGN1bmcga2llbiBuZ2hpIFRodSB0dW9uZyBDaGluaCBw aHUgZ2lhbyBCbyBHVFZUIHBob2kgaG9wIHZvaSBCbyBUYWkgY2hpbmggeHUgbHkgDQpraG9hbiB0 aWVuIDE3MCB0aSBkb25nIGxhbmcgcGhpIHZvbiBkYXUgdHUsIGxhbSBsb2kgY2hvIG5oYSB0aGF1 LCBsYW0gdGFuZyBjaGkgcGhpIGN1YSBkdSBhbi4gDQoNClRUQ1Aga2llbiBuZ2hpIFRodSB0dW9u ZyBnaWFvIEJvIENvbmcgYW4gY2hpIGRhbyBjYWMgY28gcXVhbiBjaHVjIG5hbmcgdGllbiBoYW5o IGRpZXUgdHJhLCANCnh1IGx5IGRvaSB2b2kgY2FjIHNhaSBwaGFtIHRyZW4uIER1b2MgYmlldCB2 aWVjIGRlbiBidSBnaWFpIHBob25nIG1hdCBiYW5nLCByYSBwaGEgYm9tIG1pbiBjdWEgZHUgYW4g Y3VuZyBjbyANCm5oaWV1IHNhaSBwaGFtLCBUaGFuaCB0cmEgQm8gVGFpIGNoaW5oIGRhIHR1bmcg a2V0IGx1YW4uIA0KDQotDQpodHRwOi8vMTIzLjMwLjQ5Ljc0OjgwODAvdGllbmd2aWV0L3R1bGll dXZhbmtpZW4vdmFua2llbmRhbmcvZGV0YWlscy5hc3A/dG9waWM9MTkxJnN1YnRvcGljPTI3OSZs ZWFkZXJfdG9waWM9OTU4JmlkPUJUMTIzMDk1NTYwNQ0KDQpPbmcgVG8gSHV5IFJ1YSAtIHF1ZSBv IFRoYW5oIEhvYSANCg0KaHR0cDovL3d3dy5naWFsYWlleHByZXNzLmNvbS9waGFwLWx1YXQvdGhh bmgtaG9hLW11YS1rZW8tZHUtZG8taGllcC1kYW0tYmUtZ2FpLTEwLXR1b2ktMzEwNzEzMzEuaHRt bA0KDQpUaGFuaCBIb2E6IER1IGRvLCBoaWVwIGRhbSBiZSBnYWkgMTAgdHVvaSANCg0KaHR0cDov L2RhbnRyaS5jb20udm4vYzIwL3MyMC0zODA2MzcvZGFuLXRoaWV1LWRvaS1nYW8tdmFuLW5hbS10 cm9uZy1raG8uaHRtIDI0LzAyLzIwMTAgLSAxNDo1OA0KDQpUaGFuaCBIb2E6IERhbiB0aGlldSBk b2ksIGdhbyB2YW4gbmFtIHRyb25nIGtobyANCg0KaHR0cDovL3d3dy5waHVudW5ldC5jb20vdGlu LXR1Yy90aGFuaC1ob2Etc2FuZy1tdW9uLXhlLWhpZXAtZGFtLWNvbi1nYWktaGFuZy14b20vNWMt MzQwNHNjLTEwNzk3NG4uaHRtbA0KDQpUaGFuaCBIb2E6IFNhbmcgbXVvbiB4ZSwgaGllcCBkYW0g Y29uIGdhaSBoYW5nIHhvbSANCg0KaHR0cDovL2RvaXNvbmdwaGFwbHVhdC5jb20udm4vU3Rvcnku YXNweD9sYW5nPXZuJnpvbmVwYXJlbnQ9MCZ6b25lPTIyJklEPTEwNw0KDQpUaGFuaCBIb2E6IE5o aWV1IGNhbiBibyB4YSwgdGhvbiB0aHVjIGhpZW4gc2FpIHF1eSBkaW5oIGN1YSBOaGEgbnVvYyAN Cg0KQ28gMTEgaHV5ZW4gLzI3IGh1eWVuIHRyb25nIHRpbmggZGUgeGF5IHJhIHNhaSBwaGFtIGto aSBjYXAgdGllbiBUZXQgY2hvIG5ndW9pIG5naGVvDQoNCmh0dHA6Ly92aWV0YmFvLnZuL1hhLWhv aS9YYWMtY2hldC1ub2ktdHJlbi1tYXQtaG8tbGEtcGhvLXRydW9uZy1DQS14YS8yMDkzNTE1Ny8x NTcvIFF1YW5nIExvYyAxMy85LzIwMTAsIDA4OjQ1IEdNVCs3IA0KDQpUaGFuaCBIb2E6IFhhYyBt b3QgbmFtIHRoYW5oIG5pZW4gbm9pIGJlbmggdHJlbiBobyB0cm9uZyB0dSB0aGUgbmFtIHVwDQoN Cmh0dHA6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj1Kel8xUFhMaDh2USZmZWF0dXJlPXJlbGF0 ZWQNCg0KVGhhbmggSG9hOiBDb25nIGFuIGJhbiBjaGV0IHRyZSBlbSwgZGFuIG9hbiAoMjUtNS0y MDEwKQ0KDQooQmEgbmd1b2kgYmkgYmFuIG8ga2h1IGtpbmggdGUgTmdoaSBTb24pDQoNCmh0dHA6 Ly92aWV0bmFtbmV0LnZuL3hhaG9pLzIwMDkvMDYvODU0MjAyLyAyMi8wNi8yMDA5IDA4OjI4IChH TVQrNykNCg0KVGhhbmggSG9hOiBMYW8gZG9uZyBUcnVuZyBRdW9jICdxdWF5JyBvIGNvbmcgdHJ1 b25nIE5naGkgU29uDQoNCk1vdCBkaWV1IGRlIG5oYW4gdGhheSBvIGRheSBsYSBraHUgbGFtIHZp ZWMgdmEgbm9pIG8gY3VhIGNvbmcgbmhhbiBUcnVuZyBRdW9jIGR1b2MgdGFjaCBiaWV0IHZvaSBr aHUgZGFuIGN1IGRpYSBwaHVvbmcsIA0Kbmd1b2kgcmEgdmFvIGR1b2MgYmFvIHZlIGtpZW0gdHJh IGtoYSBuZ2hpZW0gbmdhdCwgZG8gZ2l1YSBuZ3VvaSBkYW4gZGlhIHBodW9uZyB2YSBsYW8gZG9u ZyBUcnVuZyBRdW9jIGRhIHhheSByYSBuaGlldSB2dSB4byB4YXQuIA0KKFhlbSB2aWRlbzogaGlu aCBhbmggMjAwIGxhbyBkb25nIFRydW5nIFF1b2MgZ2F5IG5hbyBsb2FuIG5oYSBkYW4gbyBOZ2hp IFNvbiwgVGhhbmggSG9hKSANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL3hhaG9pLzIwMTAw OC9UaGFuaC1Ib2EtVGltLXRoYXktbmhpZXUteGFjLWNoZXQtYmF0LXRodW9uZy05Mjk4MTQvIChU aGVvIE5OVk4pIDEwOjAyLCAxOC8wOC8yMDEwIChHTVQrNykNCg0KVGhhbmggSG9hOiBYdWF0IGhp ZW4gbmhpZXUgeGFjIGNoZXQgYmF0IHRodW9uZw0KDQpWYW8gbHVjIDE3aDMwIG5nYXkgMTYvOCwg dHJlbiBkb25nIHNvbmcgTm9uZyBHaWFuZywgdGh1b2MgZGlhIHBoYW4geGEgVGhpZXUgVHJ1bmcg DQooVGhpZXUgSG9hKSBwaGF0IGhpZW4geGFjIG1vdCBuZ3VvaSB0cm9pIGRhdC4gTmd1b2kgZGEg Y2FwIGJhbyBjaGluaCBxdXllbiwgQ0EgDQpodXllbiBUaGlldSBIb2EgZGEgY28gbWF0IGtpcCB0 aG9pIHZvdCB0aGkgdGhlIG5ndW9pIGJpIG5hbi4gDQoNCk5hbiBuaGFuIGxhIG5hbSwgY28gZG8g dHVvaSB0YW0gMzAtMzUuIEFvIHRyZW4gbmd1b2kgbmFuIG5oYW4gZGEgYmkgY29pIGJvLCBxdWFu IA0KdHJlbiBuZ3VvaSB2YW4gY29uIG1hYy4gTmhhbiBkaW5oIGJhbiBkYXUgdHUgY28gcXVhbiBD QSBjaG8gdGhheSwgbmFuIG5oYW4ga2hvbmcgDQpwaGFpIGNoZXQgZHVvaSwga2hhIG5naGkgdmUg dmUgdmllYyBuYW4gbmhhbiBiaSBnaWV0IGNhY2ggZGF5IGNodW5nIGl0IG5nYXkuIA0KDQpUcnVv YyBkbywgY2hpZXUgOS84LCBtb3Qgc28gbmd1b2kgZGFuIGRpIGxhbSBkb25nIGJhdCBuZ28gcGhh dCBoaWVuIG1vdCB4YWMgY2hldCANCnRyb25nIHR1IHRoZSB0cmVvIGNvLCBkYW5nIHRyb25nIHF1 YSB0cmluaCBwaGFuIGh1eSB0YWkga2h1IHZ1YyBuZ2hpYSBkaWEgeGEgSG9hbmcgDQpRdXkgKEhv YW5nIEhvYS0gVGhhbmggSG9hKS4gDQoNCk5hbiBuaGFuIGR1b2MgeGFjIGRpbmggbGEgYW5oIExl IERpbmggWHV5ZW4gKFNOIDE5NjUsIHRydSB0YWkgdGhvbiAxMCwgeGEgSG9hbmcgUXV5KS4gDQpH aWEgZGluaCBuYW4gbmhhbiBjaG8gYmlldCwgYW5oIFh1eWVuIGRpIHhlIG1heSByb2kga2hvaSBu aGEgdHUgbmdheSA1LzgsIG5ndW9pIHRoYW4gDQpraG9uZyBiaWV0IGFuaCBkaSBkYXUuIA0KDQpo dHRwOi8vd3d3LnRoYW5obmllbi5jb20udm4vbmV3cy9QYWdlcy8yMDEwMzcvMjAxMDA5MDYwODU2 MzUuYXNweCBOZ29jIE1pbmggMDYvMDkvMjAxMCA4OjU2IA0KICANClRoYW5oIEhvYTogSGFpIGNo aSBlbSBob2Mgc2luaCB0aWV1IGhvYyBjaGV0IGR1b2kgdHJvbmcgaG8gbnVvYyANCiANCk9uZyBM ZSBEdXkgVmFuLCBUcnVvbmcgQ29uZyBhbiB4YSBRdWFuZyBMb2kgY2hvIGJpZXQsIGhvIG51b2Mg dHJlbiBkYSBjbyB0dSANCnJhdCBsYXUsIGNvIGNoaWV1IHNhdSBraG9hbmcgMm0sIHJvbmcgaG9u IDEwMG0yLCBtdWEgbXVhIG51b2MgZG9uZyBsYWkgbmVuIHRyZSBlbSB0cm9uZyBraHUgdnVjIHRo dW9uZyBoYXkgcmEgdGFtLiANCg0KaHR0cDovL3d3dy50aWVucGhvbmcudm4vS2hvYS1HaWFvLzUw OTM5NS9UaGFuaC1Ib2EtTW90LWRpZW0tY3VuZy10cnVuZy10dXllbi12YW8tbG9wLTEwLmh0bWwg SG9hbmcgTGFtIDA2OjI4IDExLzA4LzIwMTAgDQoNClRoYW5oIEhvYTogTW90IGRpZW0gY3VuZyB0 cnVuZyB0dXllbiB2YW8gbG9wIDEwDQoNCkNoaSBjYW4gdHJhbmggZGllbSAwIChkaWVtIGxpZXQp IG8gY2EgMyBtb24gdGhpIHRoaSBob2Mgc2luaCBkYSBjbyB0aGUgdHJ1bmcgdHV5ZW4gDQp2YW8g bG9wIDEwLiBEYXkgbGEga2V0IHF1YSB0aGkgdmFvIGxvcCAxMCBUSFBUIG5hbSAyMDEwIGN1YSBu aGlldSBodXllbiBtaWVuIG51aSBUaGFuaCBIb2EuIA0KDQotDQpodHRwOi8vdmkud2lraXBlZGlh Lm9yZy93aWtpL1BoJUUxJUJBJUExbV9RdWFuZ19OZ2glRTElQkIlOEINCg0KT25nIFRvIEh1eSBS dWEgbGFtIFRydW9uZyBiYW4gVHV5ZW4gZ2lhbyBUcnVuZyB1b25nIA0KDQpodHRwOi8vdGllbmdu b2l0dWRvZGFuY2h1Lm9yZy9tb2R1bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNpZD04 MDcxDQoNClR1eWVuIGdpYW8gdHJ1bmcgdW9uZzogQmFuIHRpbiAibGEiICJIYWkgcXVhbiBUcnVu ZyBRdW9jIGRpZW4gdGFwIHRhaSBiaWVuIERvbmciIGR1b2MgZGFuZyB0cmVuIHRyYW5nIHdlYiBj dWEgRENTVk4gIA0KDQoobmF5IGRhIGJpIGdvIHh1b25nOyBodHRwOi8vd3d3LmNwdi5vcmcudm4v Y3B2L01vZHVsZXMvTmV3cy9OZXdzRGV0YWlsLmFzcHg/Y29faWQ9MzAxMjcmY25faWQ9MzU4NDYw I29zVFJQRzY4SlJpdl0NCg0KSGFpIHF1YW4gVHJ1bmcgUXVvYyBkaWVuIHRhcCB0YWkgYmllbiBE b25nDQoNCihEQ1NWTikgLSBOZ2F5IDE2LjguMjAwOSwgZG9pIHRhdSBobyB0b25nIGN1YSBUcnVu ZyBRdW9jIHNhdSBraGkgdGh1YyBoaWVuIG5oaWVtIHZ1IGhvIHRvbmcgDQpoYW5nIGhhaSBkYSBk aSB2YW8ga2h1IHZ1YyBiaWVuIERvbmcgdmEgdGllbiBoYW5oIGRpZW4gdGFwIHZvaSBraG9hIG11 YyB0aWVwIHRlIHRoZW8gZG9pIGhpbmggDQpoYW5nIG5nYW5nLiBUaGVvIHRpbmggdGhhbiBob2F0 IGRvbmcgImRpIG1vdCBidW9jLCBsdXllbiB0YXAgbW90IGJ1b2MsIG5naGllbiBjdXUgbW90IGJ1 b2MiLiANCkRvaSB0YXUgaG8gdG9uZyB0cmVuIGR1b25nIHF1YXkgdHJvIHZlIGNhbiBjdSBkYSB0 aWVuIGhhbmggY2FjIGN1b2MgZGllbiB0YXAgdmEgbmdoaWVuIGN1dSANCmRhdSBwaGFwIHF1YW4g c3UsIHRhcCB0cnVuZyB0aHUgbmdoaWVtIHZhIG5hbmcgY2FvIGtoYSBuYW5nIGNoaSBodXkgdGFj IGNoaWVuLCBraG9hbmcgY2FjaCANCmJhbyBkYW0sIHBob25nIHZlIGNvIGRvbmcuDQoNCk5nYXkg MTguOC4yMDA5LCBkb2kgdGF1IGhvIHRvbmcgZ29tIGhvbiAxMDAgc2kgcXVhbiB2YSBiaW5oIGxp bmggZGEgY2FwIGJlbiBiYWkgZGEgVmluaCBUaHUgDQooZGFvIENodSBUaGFwKSB0aHVvYyBxdWFu IGRhbyBUcnVvbmcgU2EgZGUgdGllbiBoYW5oIHRpZXAgdGUsIGhhdSBjYW4sIHRoYW0gcXVhbiBj byBzbyBjb25nIA0KdGFjIHZhIHNpbmggaG9hdCBjdWEgYmluaCBsaW5oIHRyZW4gZGFvLCBkb25n IHRob2kgZHVhIDIgdGF1IGNobyB0cnVjIHRoYW5nIGxhICJUaGFtIFF1eWVuIiANCnZhICJIb2Fu ZyBTb24iIGNhcCBkYW8sIHRpZW4gaGFuaCBkaWVuIHRhcCBjaG8gdHJ1YyB0aGFuZyBsZW4geHVv bmcgdmEgbHVjIGx1b25nIGRhYyBuaGllbSANCmRvIGJvIGR1b25nIGtob25nLg0KDQpQaGF0IGJp ZXUgdm9pIGJpbmggbGluaCB0cmVuIGRhbywgY2hpIGh1eSBkb2kgdGF1IGhvIHRvbmcgUGhvIFR1 IGxlbmggSGFtIGRvaSBOYW0gSGFpIG5oYW4gbWFuaDogDQoiQmF0IGtlIGxhIGJpbmggc2kgaG8g dG9uZyBoYW5nIGhheSBiaW5oIHNpIGJhbyB2ZSBkYW8sIGRldSBjbyBjaHVuZyBtb3Qgc3UgbWVu aCBkbyBsYSBiYW8gdmUgDQpsb2kgaWNoIHF1b2MgZ2lhLCBoeSB2b25nIGNhYyBiaW5oIHNpIHRh cCBsdXllbiBkZSBiYW8gdmUgdG90IGJpZW4gY3VvbmcgdHJlbiBiaWVuIHBoaWEgbmFtIFRvIHF1 b2MiLiANCg0KRGVuIDkgZ2lvIDMwJyBuZ2F5IDE4LjguMjAwOSwgZG9pIHRhdSBkYSByb2kgZGFv LCB0aWVwIHR1YyBoYW5oIHRyaW5oIHF1YXkgdHJvIHZlIGNhbiBjdS4NCg0KTmdheSAyNC44LjIw MDksIGx1YyBsdW9uZyBIYWkgcXVhbiBUcnVuZyBRdW9jIGJhdCBkYXUgZ2lhaSBkb2FuIGh1YW4g bHV5ZW4gbmhheSBkdSBrZW8gZGFpIDIgdGhhbmcsIA0KY2FjIGhvYXQgZG9uZyBodWFuIGx1eWVu IG5heSBkdW9jIGJhdCBkYXUgdHUgbW90IHNhbiBiYXkgbyBxdWFuIGRhbyBIb2FuZyBTYS4gRGF5 IGR1b2MgY29pIGxhIG1vdCBob2F0IGRvbmcgDQp0YXAgZHVvdCBraWNoIGJhbiBkbyBibyBiYW5n IGR1b25nIGtob25nIGN1YSBIYWkgcXVhbiBUcnVuZyBRdW9jLiBNb3QgdHJvbmcgbmh1bmcgbm9p IGR1bmcgbW9pIGRhbmcgbHV1IHkgDQp0cm9uZyBjYWMgaG9hdCBkb25nIGh1YW4gbHV5ZW4gcXVh biBzdSBuYW0gMjAwOSBsYSBob2F0IGRvbmcgaHVhbiBsdXllbiBuaGF5IGR1IHR1IG1heSBiYXkg dHJ1YyB0aGFuZyB2YSANCnR1IG1vdCBzYW4gYmF5IG8gcXVhbiBkYW8gSG9hbmcgU2EuDQoNClRo ZW8gYmFvIEhvYW4gQ2F1LCBQaHVvbmcgSG9hbmcgKFRydW5nIFF1b2MpIA0KDQpodHRwOi8vdGll bmdub2l0dWRvZGFuY2h1Lm9yZy9tb2R1bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1hcnRpY2xlJnNp ZD04MDcxDQoNClRpbiB0aGkgbGEsIHN1IGhlbiBoYSB0aGkgcXVlbiANCg0KQmFvIGRpZW4gdHUg RGFuZyBDb25nIHNhbiBWaWV0IE5hbSBkdWEgdGluIFRydW5nIFF1b2MgdGFwIHRyYW4gdGFpIGJp ZW4gRG9uZyBsYSAiYmFvIHZlIGxvaSBpY2ggcXVvYyBnaWEiIGN1YSBUcnVuZyBRdW9jIQ0KDQpU cnVvYyBwaGFuIHVuZyBtYW5oIG1lIGN1YSBjb25nIGRhbiBtYW5nLCBiYWkgbmF5IGRhIGR1b2Mg bGFuZyBsZSBydXQgeHVvbmcuIE5odSB0aGUgbGEgeG9uZyB1PyANCg0KRGFuaCByYW5nIGRheSBj aGkgbGEgbW90IHRpbiBkaWNoIHRoZW8gYmFvIGNoaSBUcnVuZyBRdW9jLCBuaHVuZyBuZ3VvaSB4 dSBseSBiYWkgdm8gY28gDQpjb24gZHVuZyB0cmVuIGxhcCB0cnVvbmcgY3VhIFZpZXQgTmFtIGhh eSBraG9uZywga2hpIGRhbmcgbmd1eWVuIG1vdCB0aW4gbmh1IHRoZSBtYSBraG9uZyBjbyBtb3Qg ZG9uZyBwaGFuIHVuZz8gDQoNClNhaSBzb3Qga2hvbmcgY28gbmdoaWEgbGEga2hvbmcgY28gbG9p LCB0aGFtIGNoaSB0cm9uZyBuaHVuZyB0cnVvbmcgaG9wIHRheSB0cm9pIG5odSANCnRoZSBuYXks IHBoYWkgeGVtIGxhIGNvIHRvaS4gVHJvbmcga2hpIGRvIG5oYW4gZGFuIGtob25nIGxhIGdpIGhh bmcgbG9hdCB2dSBiYXQgYm8gZ2FuIA0KZGF5IGRvaSB2b2kgbmh1bmcgdGhhbmggbmllbiB5ZXUg bnVvYyBjYW4gInRvaSIgeHVvbmcgZHVvbmcgYmlldSB0aW5oIHBoYW4gZG9pIFRydW5nIFF1b2Mg DQpjdW9uZyBjaGllbSBIb2FuZyBTYSBoYXkgbWFjIGFvIHRodW4gY28gaW4gaGFuZyBjaHUgIkhv YW5nIFNhIC0gVHJ1b25nIFNhIGxhIGN1YSBWaWV0IE5hbSIuIA0KDQpOaHVuZyB2dSBkdWEgdGlu IG5odSB0aGUgY28gbG9pIGNobyBhaT8gTmh1bmcgdnUgYmF0IGJvIG5odSB2YXkgY28gbG9pIGNo byBhaT8gVmEgbW90IGNoaW5oIHF1eWVuIGN1IGdpdSBtb3QgY2FjaCANCnVuZyB4dSBuaHUgdmF5 LCBsYSBjaGluaCBxdXllbiBjdWEgYWk/IEhheSBzb20gdGluaCB0YW8gbmhpbiBsYWkgbWluaCB0 cnVvYyBraGkgcXVhIG11b24uIA0KDQpodHRwOi8vdGllbmdub2l0dWRvZGFuY2h1Lm9yZy9tb2R1 bGVzLnBocD9uYW1lPU5ld3MmZmlsZT1wcmludCZzaWQ9ODE4NyBIYSBQaGFuIDAxLzEwLzIwMDkN Cg0KQmllbiBobyBraWV1IERhbyBEdXkgUXVhdCANCiANClNhdSBuaGlldSBuZ2F5IGltIGhvaSBs YW5nIHRpZW5nIHRoaSBzYW5nIG5heSAzMC85LCBuaGlldSB0byBiYW8gdHJvbmcgbnVvYyBjdW5n IGRhIA0KZGFuZyB0aW4gQmFuIFR1eWVuIGdpYW8gVHJ1bmcgdW9uZyBreSBsdWF0IGtoaWVuIHRy YWNoIFRvbmcgYmllbiB0YXAgYmFvIERpZW4gdHUgRGFuZyANCkNvbmcgc2FuIFZpZXQgTmFtIERh byBEdXkgUXVhdCB2ZSB2dSBkYW5nIGJhbiB0aW4gIkhhaSBxdWFuIFRydW5nIFF1b2MgZGllbiB0 YXAgdGFpIGJpZW4gRG9uZyIuIA0KRHUgY2h1YSAic29uZyBwaGFuZyIgbGFtIG5odW5nIGRvbmcg dGhhaSBuYXkgY3VuZyBjaG8gdGhheSBkdSBsdWFuIChuaGF0IGxhIHBoYW4gdW5nIA0KY3VhIGNv bmcgZGFuIG1hbmcpIGRhIGR1b2MgImRlbSB4aWEiLiANClR1eSBuaGllbiBsb2kgYmllbiBobyBj dWEgb25nIFF1YXQgdHJlbiBiYW8gVHVvaSB0cmUgZGFuZyBrZW0gdGluIGt5IGx1YXQgdGhpIHRo YXQgbGEga2hvaSBoYWkuLi4NCg0KT25nIFF1YXQgbm9pIGRheSBsYSBtb3QgdGFpIG5hbiBuZ2hl IG5naGllcCB2YSBsb2kgY2hpbmggdGh1b2MgdmUgImNhdSBkYW5oIG1heSIgZGEgDQpxdWVuIHRo ZW0gdmFvIGNodSAibmdhbmcgbmd1b2MiIGRhIGR1b2MgYmllbiB0YXAgdmllbiB2aWV0IGJlbiBu Z29haSBsZSBkZSB0aGFuaCANCiJQaG8gdHUgbGVuaCBuZ2FuZyBuZ3VvYyB0dXllbiBibyIhPyBO Z29haSByYSBraG9uZyB0aGF5IG9uZyBRdWF0IG5vaSB2ZSBsb2kgbmFvIGtoYWMgDQpoYXkgdHJh Y2ggbmhpZW0gY3UgdGhlIGN1YSBjYSBuaGFuIG1pbmguIFF1YSBuZ2FjIG5oaWVuIHRvaSB0aW0g ZG9jIGxhaSBiYW4gdGluIG5heSANCmRhbmcgdHJlbiBiYW8gRGllbiB0dSBEYW5nIENvbmcgc2Fu IFZpZXQgTmFtIGR1IGRhIGR1b2MgZ28gYm8gbmh1bmcgcmF0IG5oaWV1IHRyYW5nIA0Kd2ViIGto YWMgZGEgY2h1cCBsYWkgbmd1eWVuIGJhbi4gVHJvbmcgYmFuIHRpbiBnaGkgcm8gIlBobyBUdSBs ZW5oIEhhbSBkb2kgTmFtIEhhaSANCm5oYW4gbWFuaCIgY2h1IGhvYW4gdG9hbiBraG9uZyBjbyBj YXUgIlBobyBUdSBsZW5oIHR1eWVuIGJvIiBuaHUgb25nIFF1YXQgYmllbiBoby4gDQpMYSBtb3Qg bmd1b2kgc29uZyBiYW5nIG5naGUgdmlldCBsYWNoLCB0b2kgY2h1YSB0dW5nIHRoYXkgYWkgZHVu ZyBjaHUgIm5nYW5nIG5ndW9jIiANCnRyb25nIGNhdSB2YW4gIlBobyBUdSBsZW5oIG5nYW5nIG5n dW9jIG5oYW4gbWFuaCIuIChIYXkgb25nIFF1YXQgdmEgYmllbiB0YXAgdmllbiBjdWEgDQpvbmcg Y2hpIHRoYW8gY2F1IHZhbiBUcnVuZyBRdW9jIG1hIGNodWEgYmlldCB2aWV0IGNhdSB2YW4gVmll dCBOYW0/KSBIb24gbnVhIGtoaSBkaWNoIA0KdGh1YXQsIHRhYyBnaWEgY2hpIGRpY2ggdGhvYXQg eSBjaG8gYmFpIGhheSBob24gY2h1IGNoYW5nIG1heSBhaSB0aGVtIHR1IGtpZXUgbmF5Lg0KQ29u IG5ldSB4ZXQgdGhheSB2aSBwaGFtIGNhYyBxdXkgZGluaCwgYW5oIGh1b25nIGRlbiBhbiBuaW5o IHF1b2MgZ2lhIGhheSB0aHVhbiBwaG9uZyANCm15IHR1YyB0aGkgY2hpIHRyaWNoIGRvYW4gcm9p IHZpZXQgdGhhbmggbW90IGJhaSBraGFjLCBiYWMgYm8gaG9hYyBwaGUgcGhhbiBjaHUgcmF0IA0K aGllbSBhaSBsYWkgbGFtIGNodXllbiAiYmUgbmd1eWVuIGNvbiIgbmh1IGJhbiB0aW4gdHJlbiBk YSBsYW0uIA0KRGllbiBnaWFpIGRhaSBkb25nIG5odSB2YXkgZGUgdGhheSBjYWNoIGRvIGxvaSBj aG8gbmhhbiB2aWVuIHZhIGJpZW4gaG8gY2hvIHNhaSBwaGFtIGN1YSBvbmcgUXVhdCBraG8gY2hh cCBuaGFuIGR1b2MuIA0KDQpDYXUgY2h1eWVuIG5heSBsYWkgdGhlbSBtb3QgbWluaCBjaHVuZyBj aG8gdGhvaSAiY29uZyB2byB2YW8sIHRvaSBkbyBjaG8gbmd1b2kga2hhYyIgY3VhIG5oaWV1IHF1 YW4gY2h1YyBWaWV0IE5hbS4NCg0KTmdheSBjYSBraGkgYWkgZG8gY2hhcCBuaGFuIGNoaSBzYWkg dmkgdGhpZXUgY2h1ICJuZ2FuZyBuZ3VvYyIgdGhpIGN1bmcga2hvbmcga2hvIHRpbSByYSANCmJh biB0aW4gZGEgbGFwIGRpIGxhcCBsYWkgdHUgVHJ1b25nIFNhIHZhIEhvYW5nIFNhLCBoYWkgcXVh biBkYW8gbWF1IHRoaXQgY3VhIFZpZXQgTmFtIA0Kbmh1bmcgdGhlbyB0aW5oIHRoYW4gY3VhIGJh biB0aW4gdGhpIGRhbmcgdGh1b2MgVHJ1bmcgUXVvYy4gQ2FjaCBkaWNoIHZhIGNobyBkYW5nIGJh biANCnRpbiB0cmVuIGtob25nIGNoaSBraGllbiBuZ3VvaSBWaWV0IHlldSBudW9jIGdpYW4gZHUs IGNvbmcgcGhhbiBtYSBjb24gY28gY28gZGUgY2hvIG5odW5nIA0KIm5ndW9pIGxhIiBoYSBoZSB2 aSBkYSBjbyBtb3QgY28gcXVhbiBiYW8gY2hpIGNoaW5oIHRob25nICJsbyBkYW5oIG1heSIgY29u ZyBuaGFuIHZpZWMgDQptYXQgY2h1IHF1eWVuLiBEb2MgZGkgZG9jIGxhaSBiYW4gdGluLCBuZXUg a2hvbmcgY28gb2MgdHVvbmcgdHVvbmcgcGhvbmcgcGh1IHZhIHRpbmggDQp0aGFuICJjYW5oIGdp YWMgY2FvIiBuaHUgb25nIFF1YXQgdGhpIGtob25nIHRhaSBuYW8gdGltIHJhIHRyb25nIGRvIGNh aSB0aW5oIHRoYW4gDQoiY2FuaCBiYW8gbW90IGhvYXQgZG9uZywgbW90IG11dSBtby4uLiIgbmh1 IGxvaSBiaWVuIGhvIGN1YSBvbmcgUXVhdC4gVG9pIHRpbiByYW5nIA0Ka2hpIGRvYyBsYWkgYmFu IHRpbiBuYXksIGRhaSBkYSBzbyBkZXUgbmhhbiByYSBub2kgZHVuZyBiYW4gdGluIGNoaSBkaWVu IHRhIGxhaSBuaHVuZyANCmhvYXQgZG9uZyBjdWEgSGFpIHF1YW4gVHJ1bmcgUXVvYyB0cmVuIHF1 YW4gZGFvIEhvYW5nIFNhIHZhIFRydW9uZyBTYSAobWEgYmFuIHRpbiBtYWMgDQpuaGllbiB0aHVh IG5oYW4gbGEgY3VhIFRydW5nIFF1b2MpLg0KDQpPbmcgUXVhdCBkYSBiaSBraGllbiB0cmFjaCBu aHVuZyBjYWNoIGJpZW4gaG8gY2hvIHNhaSBwaGFtIGN1YSBvbmcgcmF0IGRlIGxhbSBuZ3VvaSAN CmRvYyBuZ2hpIHJhbmcgcm9pIHNlIGNvbiBuaHVuZyAiY2F1IGRhbmggbWF5IiBsYWkgInF1ZW4g bWF5IGNodSBiaWVuIHRhcCIgaGF5ICJxdWVuIA0KaG9pIGxhaSIgZGUgbGFtICJoaW5oIG5oYW4g dGhlIG1hbmciIGNobyBuaHVuZyBzYWkgc290IG5odWMgcXVvYyB0aGUgdHVvbmcgdHUuIExlIHJh IA0KbGEgbW90IG5ndW9pIGx1b24gZGF5IGRvIG5ndW9pIGtoYWMgdmUgdHUgdHVvbmcgbmF5LCB5 IGNoaSBubyBoYXkgdGluaCB0aGFuIGtpYSB0aGkgDQpvbmcgUXVhdCBuZW4gY2FuIGRhbSB2YSBk dW5nIGNhbSBob24uIENodSBjb24gY2FpIHRybyBkbyBsb2kgY2hvIGNhcCBkdW9pIHZhIGdhbiBj aG8gDQp0dSAidGFpIG5hbiBuZ2hlIG5naGllcCIgdGhpIHJhdCBraG8gbmdoZSAibG90IGxvIHRh aSIgdmkgdHJvIGF5IG5oaWV1IHF1YW4gY2h1YyBkYSANCmRpZW4gZGkgZGllbiBsYWksIHh1YSBx dWEgcm9pLCB2b2kgbGFpIGN1bmcgY2hpIGxvZSBkdW9jIG5odW5nIG5ndW9pIGtob25nIHRoaWNo ICJ0cnVuZyBuZ29uIG5naGljaCBuaGkiIA0KDQpodHRwOi8vd3d3LmNhbmgtZW4uZGUvdGludHVj LzEyNTgtdGgtbmctY2EtMi1uaGEtdm4tbmd1eW4tY2hpbmgtYS1idWktbWluaC1xdWMuaHRtbCBT dW5kYXksIEphbiAyNHRoICANCg0KVGh1IG5nbyBjdWEgbmhhIHZhbiBOZ3V5ZW4gQ2hpbmggZ3Vp IG9uZyBDaHUgdGljaCBIb2kgTmhhIGJhbyBWaWV0IE5hbSAoRGUgbmdoaSB0cmEgbG9pIGtldCBx dWEgZ2lhaSBxdXlldCBLaWVuIG5naGkgbmdheSA1LzEwLzIwMDkpIA0KDQpOaGEgVHJhbmcgbmdh eSAwNCB0aGFuZyAxMSBuYW0gMjAwOQ0KDQpLaW5oIGd1aTogT05HIENIVSBUSUNIIEhPSSBOSEEg QkFPIFZJRVQgTkFNDQoNCkNhbiBjdSBraG9hbiA2LCBEaWV1IDExIGN1YSBEaWV1IGxlIEhvaSBO aGEgYmFvIFZpZXQgTmFtIChzdWEgZG9pKSwgbmdheSAwNS8xMC8yMDA5IHRvaSBkYSBraW5oIGd1 aSB0b2kgDQpCYW4gQ2hhcCBoYW5oIEhvaSBOaGEgYmFvIFZpZXQgTmFtIGJhbiBLaWVuIG5naGks IHlldSBjYXUgZGluaCBjaGkgY2h1YyBkYW5oIFV5IHZpZW4gQkNIIEhvaSBOaGEgYmFvIFZpZXQg TmFtIA0KdmEgeG9hIHRlbiBvbmcgRGFvIER1eSBRdWF0IHRyb25nIGRhbmggc2FjaCBob2kgdmll biBIb2kgTmhhIGJhbyBWaWV0IE5hbS4gDQoNCkJhbiBLaWVuIG5naGkgbmF5IHRvaSBkYSBndWkg YmFvIGRhbSBxdWEgYnV1IGRpZW4gdG9pIFF1eSBCYW4gQ2hhcCBoYW5oIHZhIGd1aSB2YW8gZW1h aWw6IGhuYnZpZXRuYW1AZ21haWwuY29tIA0KRGlhIGNoaSB0aHUgZGllbiB0dSBuYXkgZGEgZHVv YyBiYW8gdmUga2hvaSBjYWMgY2h1b25nIHRyaW5oIHRodSByYWMsIGJhbiBjYW4gYmF0IEphdmFT Y3JpcHQgZGUgeGVtIG5vIChjdWEgSG9pIE5CVk4pLiANCk5nYXkgc2F1IGRvIG5ndW9pIG5oYW4g bGEgb25nIE5ndXllbiBRdWFuZyBUaHVhbiBkYSBuaGFuIGxhaSB2YW8gZGlhIGNoaSBlbWFpbCBj dWEgdG9pIGxhIGRhIG5oYW4gZHVvYy4gVmkgdmF5LCANCmJhbiBLaWVuIG5naGkgbmF5IGNoYWMg Y2hhbiBraG9uZyB0aGUgdGhhdCBsYWMuDQoNClRodWEgUXV5IE9uZywNCg0KVHJvbmcgYmFuIEtp ZW4gbmdoaSBuZ2F5IDUvMTAvMjAwOSwgdG9pIGRhIGNoaSBybzogSG9pIHZpZW4gRGFvIER1eSBR dWF0IGhpZW4gbGEgVXkgdmllbiBCQ0ggSG9pIE5oYSBCYW8gVmlldCBOYW0gDQpkYSBsb2kgZHVu ZyBxdXllbiBoYW4gVEJULCBjbyB5IGNobyBkYW5nIGJhbiB0aW4gIkhhaSBxdWFuIFRRIGRpZW4g dGFwIHRhaSBiaWVuIERvbmciIHRyZW4gYmFvIERpZW4gdHUgRGFuZyBDUyBWaWV0IE5hbSANCm5n YXkgMDgvOS8yMDA5LiBEYXkgbGEgc2FpIHBoYW0gY3VjIGt5IG5naGllbSB0cm9uZywgbWFuZyB0 aW5oIGNodSBkb25nLCBjbyB5LCBuZ2F5IHRhaSB0aG9pIGRpZW0gbnVvYyB0YSB2dWEgZGUgdHJp bmggDQpobyBzbyB2ZSBjaHUgcXV5ZW4gbGFuaCBoYWksIHRoZW0gbHVjIGRpYSBndWkgTEhRIHZh IHRyb25nIGtoaSBUUSBkYW5nIHRpY2ggY3VjIG11b24ga2hhbmcgZGluaCBjaHUgcXV5ZW4gdGFp IGJpZW4gRG9uZyANCmR1b2kgbW9pIGhpbmggdGh1Yy4gRGFvIGR1YyBjYW8gbmhhdCB2YSB0cmVu IGhldCBjdWEgbmd1b2kgbGFtIGJhbyBWaWV0IE5hbSwgbGEgdHV5ZXQgZG9pIHRydW5nIHRoYW5o IHZvaSBUbyBRdW9jIHZhIERhbiB0b2MuIA0KDQpIb2kgdmllbiBEYW8gRHV5IFF1YXQgZGEgY28g eSB2aSBwaGFtIGtob2FuIDEsIERpZXUgMTAgY3VhIERpZXUgbGUgSG9pIE5oYSBCYW8gVmlldCBO YW0sIHF1eSBkaW5oIEhvaSB2aWVuIHBoYWk6IA0KIlRydW5nIHRoYW5oIHZvaSBUbyBRdW9jIFZO LCB0aG9uZyBxdWEgaG9hdCBkb25nIG5naGllcCB2dSBjdWEgbWluaCwgcGh1YyB2dSBzdSBuZ2hp ZXAgeGF5IGR1bmcgdmEgYmFvIHZlIFRvIFF1b2MiLiANCkRvbmcgdGhvaSBIb2kgdmllbiBEYW8g RHV5IFF1YXQgY29uIHZpIHBoYW0gZGFjIGJpZXQgbmdoaWVtIHRyb25nIGtob2FuIDEsIERpZXUg NiBMdWF0IEJhbyBjaGkgKHN1YSBkb2kpIHF1eSBkaW5oIHJhbmcsIA0KYmFvIGNoaSBwaGFpOiAi VGhvbmcgdGluIHRydW5nIHRodWMgdmUgdGluaCBoaW5oIHRyb25nIG51b2MgdmEgdGhlIGdpb2kg cGh1IGhvcCB2b2kgbG9pIGljaCBjdWEgZGF0IG51b2MgdmEgbmhhbiBkYW4iLg0KDQpOaHVuZyBk ZW4gbmF5ICg0LzExLzIwMDkpIGRhIGR1bmcgMzAgbmdheSAodGhhbmcgMTAvMDkgY28gMzEgbmdh eSksIHRvaSB2YW4gY2h1YSBuaGFuIGR1b2Mga2V0IHF1YSBnaWFpIHF1eWV0IGN1YSBCQ0ggDQpk b2kgdm9pIG5vaSBkdW5nIGtpZW4gbmdoaSBjdWEgdG9pLiBWaSB2YXksIHRvaSBraW5oIGRlIG5n aGkgUXV5IE9uZyB0cmEgbG9pIGNobyB0b2kgZHVvYyBybzoNCg0KMS0gU2FpIHBoYW0gY3VhIG9u ZyBEYW8gRHV5IFF1YXQgbGEga2hvbmcgdGhlIGJpZW4gbWluaCwgZGEgYmkgQm8gVFRUVCB2YSBj byBxdWFuIGNodSBxdWFuIHh1IGx5IChtYWMgZHUgdm9pIGhpbmggdGh1YyANCnF1YSBuaGUgdmEg YmF0IGNvbmcpLiBWYXkgdmllYyBkaW5oIGNoaSBjaHVjIGRhbmggVXkgdmllbiBCQ0ggSG9pIE5C Vk4gdmEgeG9hIHRlbiBvbmcgbmF5IHRyb25nIGRhbmggc2FjaCBob2kgdmllbiBIb2kgTkJWTiwg DQpkYSBkdW9jIEJDSCBIb2kgTkJWTiB0aWVuIGhhbmggZGVuIGRhdT8NCg0KMi0gUGhhaSBjaGFu ZyB2aSBjbyAibmhhbiB0aGFuIHRvdCIgaG9hYyBiYXQga3kgbHkgZG8gdHV5IHRpZW4gbmFvIGto YWMsIG1hIG9uZyBEYW8gRHV5IFF1YXQgZHVvYyBCQ0ggbWllbiB0cnUgeGVtIHhldCANCnZpZWMg b25nIHRhIGRhIHZpIHBoYW0gbmdoaWVtIHRyb25nIERpZXUgbGUgY3VhIEhvaSBOQlZOPyBOZXUg a2hvbmcsIHNhaSBwaGFtIGN1YSBvbmcgdGEgZGEgcm8gbmh1IGJhbiBuZ2F5IHRoZSwgdGFpIHNh byANCnZpZWMgeHUgbHkgbGFpIHF1YSBjaGFtIHRyZSBuaHUgdmF5Pw0KDQozLSBEZW4ga2hpIG5h byB0aGkgYmFuIHRoYW4gdG9pIHZhIGNvbmcgbHVhbiBjYSBudW9jLCBrZSBjYSBraWV1IGJhbyB0 YSBvIG51b2MgbmdvYWkgZGFuZyBxdWFuIHRhbSBkZW4gdnUgdmllYyBzYWkgcGhhbSANCm5naGll bSB0cm9uZyBjdWEgb25nIERhbyBEdXkgUXVhdCwgZHVvYyBCQ0ggSG9pIE5CVk4gdGhvbmcgdGlu IGRheSBkdSB2ZSB2aWVjIGdpYWkgcXV5ZXQgYmFuIEtpZW4gbmdoaSBuZ2F5IDA1LzEwLzIwMDkg bm9pIHRyZW4/IA0KDQpDdW9pIHRodSwgeGluIGR1b2MgcGhlcCBuaGFjIGxhaSB2b2kgUXV5IE9u ZyByYW5nOiBIb2kgTmhhIEJhbyBWaWV0IE5hbSwgbGEgaG9pIG5naGUgbmdoaWVwIGdvbSBuaHVu ZyBuZ3VvaSBjYW0gYnV0LCANCnF1YSBjYWMgdGFjIHBoYW0gYmFvIGNoaSwgdGhlIGhpZW4gdHJh Y2ggbmhpZW0gY2FvIG5oYXQgdm9pIGxvaSBpY2ggY3VhIFRvIFF1b2MgdmEgTmhhbiBkYW4uIFRy b25nIGhhbmcgbmd1IGN1YSBIb2ksIA0Ka2hvbmcgdGhlIGNvIG1vdCBVeSB2aWVuIEJDSCB2YSBt b3QgaG9pIHZpZW4gY28gbmh1bmcgc2FpIHBoYW0gY28geSwgcmF0IG5ndXkgaGFpIGNobyBhbiBu aW5oIHF1b2MgZ2lhIG5odSBvbmcgRGFvIER1eSBRdWF0Lg0KDQpUb2kgdGluIHJhbmcsIHZvaSBs YSB0aHUgbmdvIG5heSwgdG9pIHNlIHNvbSBuaGFuIGR1b2MgcGh1YyBkYXAgY3VhIFF1eSBPbmcg Q2h1IHRpY2ggSG9pIE5CVk4uIA0KWGluIGd1aSB2ZSBkaWEgY2hpIFZhbiBwaG9uZyBCYW8gVmFu IG5naGUgdGFpIE5hbSBUcnVuZyBibyAyOTIgZHVvbmcgMi80IE5oYSBUcmFuZy4NCg0KVHJhbiB0 cm9uZywNCk5oYSBUcmFuZyBuZ2F5IDA0IHRoYW5nIDExIG5hbSAyMDA5DQpOZ3V5ZW4gVmFuIENo aW5oIChkYSBreSB0ZW4pDQpOb2kgbmhhbjoNCi5OaHUgdHJlbg0KLkNhYyBjbyBxdWFuIGJhbyBj aGkgDQoNCmh0dHA6Ly93d3cudHVhbnZpZXRuYW0ubmV0LzIwMTAtMDYtMTQtdHUtY29uZy1odXUt dm8tY2h1LWRlbi1sb2ktaWNoLW5ob20gVHJhbiBUcm9uZyBUaHVjIDE1LzA2LzIwMTAgMDY6MDAg R01UKzcNCg0KVHV5ZW4gZ2lhbyBULlU6IFR1IGNvbmcgaHV1IHZvIGNodSBkZW4gbG9pIGljaCBu aG9tIC0gVHUgdGhhbSBuaHVuZyBkZW4gYmFuIG51b2MgDQoNCihOaHVuZyB2dSB0aGFtIG5odW5n IHRhaSBjaGluaCBoYXkgZGF0IGRhaSB0YWkgSGFpIFBob25nLCBIYSBOb2ksIFRQIEhDTSBoYXkg QmluaCBEdW9uZyAgDQp0aHVjIGNoYXQgbGEgYmllbiBzbyBodXUgY29uZyB0aGFuaCBzbyBodXUg cmllbmcgY3VhIGNhIG5oYW4gaGF5IG5ob20gY2Egbmhhbi4gDQpPIG11YyBkbyBuZ3V5IGhpZW0g aG9uLCBuaHUgdHJ1b25nIGhvcCBxdWFuIGRhbyBUcnVvbmcgU2EsIGxhIGN1YSBWaWV0IE5hbSwg DQpuaHVuZyBCYW4gVHV5ZW4gZ2lhbyBUcnVuZyB1b25nLCB0cmVuIFdlYnNpdGUgd3d3LmNwdi5v cmcudm4sIGRhbmcgYmFpIHRoZSBoaWVuIA0Kbm8gbmh1IGxhIGN1YSBUcnVuZyBRdW9jLCBsYSB2 aSBwaGFtIG5naGllbSB0cm9uZyBxdXllbiBsb2kgbGFuaCB0aG8sIGxhbmggaGFpIA0KY3VhIFZp ZXQgTmFtOyBjaGkgcGh1IGhvcCBsb2kgaWNoIG5ob20gY3VhIG5odW5nIGtlIHRoYW0gbmh1bmcg aGF5IG5odW5nIGtlIA0KdGhlbyBUcnVuZyBRdW9jIG5odSBvbmcgVHJ1b25nIFRhbiBTYW5nLCBv bmcgUGhhbSBRdWFuZyBOZ2hpLCBvbmcgVG8gSHV5IFJ1YS4uLikgDQoNCmh0dHA6Ly93d3cudmll dG5hbW5ldC52bi9jaGluaHRyaS8yMDEwMDkvQmFuLVR1eWVuLWdpYW8tY2hpLWRhby12aWVjLWxh eS15LWtpZW4tdmUtdmFuLWtpZW4tOTM2ODQ1LyAxNDoyOCwgMjEvMDkvMjAxMCAoR01UKzcpIA0K DQpUdXllbiBnaWFvIFQuVTogDQoNClRhaSB2YW4gYmFuIHNvIDExMi1IRC9CVEdUVywgYmFuIGhh bmggbmdheSAxMC85LzIwMTAsIEJhbiBUdXllbiBnaWFvIFQuVSBjaGkgZGFvIHZpZWMgDQpsYXkg eSBraWVuIHZlIHZhbiBraWVuIERhaSBIb2kgWEkgbmh1IHNhdTogDQoNCllldSBjYXUga2hvbmcg ZGFuZyB2YSBwaGF0IHRyZW4gY2FjIHBodW9uZyB0aWVuIHRob25nIHRpbiBkYWkgY2h1bmcgbmh1 bmcgeSBraWVuIGRhIGtpY2ggY2EgbmhhbiBob2FjIHRvIGNodWMgZGFuZyBjbyBxdWFuIG5oYSBu dW9jLiANCg0KKFkga2llbiBjdSB0cmk6IFRodWMgdGUgY2hvIHRoYXksIGNvIHJhdCBuaGlldSBz YWkgbGFtIG5naGllbSB0cm9uZyBvIGNhIHRhbSB2aSBtbyB2YSANCnRhbSB2aSBtbywgZ2F5IHRv biB0aGF0IGxvbiwga2ltIGhhbSBzdSBwaGF0IHRyaWVuIGN1YSBkYXQgbnVvYyB2YSBkYW4gdG9j OyBuaG8gY28gbmd1b2kgZGFuIA0KdmEgYmFvIGNoaSBiZW4gYmksIGR1bmcgY2FtIGRhdSB0cmFu aCBjb25nIGtoYWkgdHJlbiBjYWMgcGh1b25nIHRpZW4gdGhvbmcgdGluIGRhaSANCmNodW5nLCBu aHVuZyBzYWkgbGFtIGRvIG1vaSBkdW9jIG5oaW4gbmhhbjsgbmh1bmcga2Ugdm8gdGluaCBoYXkg Y28gdGluaCBsYW0gdHJhaSBsdW9uZyANCnRhbSwgdHJhaSBkYW8gbHksIHRyYWkgcXV5IGx1YXQg a2hhY2ggcXVhbiBtb2kgYmkgdmFjaCBtYXQsIG5odW5nIGtlIHRoYW0gbmh1bmcgdmEgDQpuaHVu ZyBrZSBkb25nIGxvYSwgYmFvIGNoZSwgYnVuZyBiaXQgbW9pIGJpIHZhY2ggdHJhbiwgYmFpIGxv Li4uIFZvaSB2aWVjIGJhbiBoYW5oIHF1aSANCmRpbmggbmV1IHRyZW4sIEJhbiBUdXllbiBnaWFv IFQuVSBkYSB0dSBwaG9pIGJheSBzdSBkb2MgZG9hbiwgYmFvIHRodSwgdHJpIHRyZTsgZGEgdGFv IA0KcmEgInZ1bmcgY2FtIiBiYXQgaG9wIGx5OyB0aGlldSB0aW5oIHRoYW4gY29uZyBraGFpIG1p bmggYmFjaDsgZGkgbmd1b2MgbGFpIHRvbiBjaGkgDQpiYW8gY2hpIGxhIGRpZW4gZGFuIGN1YSBu aGFuIGRhbjsgdmkgcGhhbSBoaWVuIHBoYXA7IHNvIHN1IHRoYXQ7IGxvIHNvIG5oYW4gZGFuIGJp ZXQgc3UgdGhhdDsgDQp0aGlldSB0aW5oIHRoYW4gbmhpbiB0aGFuZyB2YW8gc3UgdGhhdDsgdGhp ZXUgdGluaCB0aGFuIGtob2EgaG9jOyB0aGlldSB0aW5oIHRoYW4gY2hvbmcgDQp0aGFtIG5odW5n OyBraG9uZyBkYW0gYmFvIHBoYXQgaHV5IGR1b2MgdHJpIHR1ZSwgZGFuIGNodSBjdWEgbmhhbiBk YW47IGdpYSB0YW8sIHRoaWV1IHRodWMgdGFtIGxheSB5IGtpZW4gZ29wIHkgY3VhIG5oYW4gZGFu KSANCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wNS0xMS1idW9jLXRpZW4taGF5 LWJ1b2MtbHVpIFRyYW4gRHVjIE5ndXllbiAxMi8wNS8yMDEwIDA2OjAwIEdNVCs3IA0KDQpUdXll biBnaWFvIFRydW5nIHVvbmc6IFR1dCBsdWkgdmUgbHkgbHVhbiAtIFhhIHJvaSB0aHVjIHRpZW4g DQoNCkFwIGRhdCBjaGUgZG8gY29uZyBodXUgdmUgdHUgbGlldSBzYW4geHVhdCBjaHUgeWV1IHRo YW5oIG1vdCBkYWMgdHJ1bmcgY28gYmFuIGN1YSANCm5lbiBraW5oIHRlIHRoaSB0cnVvbmcgbGEg YnVvYyBsdWkgdmUgdHUgZHV5IGRvaSBtb2kuIA0KDQpbWGluIHhlbTogRHUgdGhhbyBDdW9uZyBs aW5oIHhheSBkdW5nIGRhdCBudW9jIHRyb25nIHRob2kga3kgcXVhIGRvIGxlbiBDTlhIIChibyAN CnN1bmcgdmEgcGhhdCB0cmllbiksIHNlIGR1YSByYSB0aG9uZyBxdWEgdGFpIERhaSBob2kgbGFu IHRodSBYSSBjdWEgRGFuZyBDU1ZOIHZhbyBkYXUgDQpuYW0gMjAxMTsgZHVvaSBkYXkgZ29pIHRh dCBsYSBEdSB0aGFvIEN1b25nIGxpbmggMjAxMV0gDQoNCkR1IHRoYW8gQ3VvbmcgbGluaCAyMDEx IHRybyBsYWkgZHVuZyBuaHUgQ3VvbmcgbGluaCBkYSBkdW9jIHRob25nIHF1YSB0YWkgRGFpIGhv aSBWSUkgDQpuYW0gMTk5MSAoZHVvaSBkYXkgZ29pIHRhdCBsYSBDdW9uZyBsaW5oIDE5OTEpLCBr aGFjIHZvaSBrZXQgbHVhbiBkYSBuZXUgdHJvbmcgTmdoaSANCnF1eWV0IERhaSBob2kgWCBuYW0g MjAwNiBraGkgZGlldSBjaGluaCBub2kgZHVuZyBDdW9uZyBsaW5oIDE5OTE6ICJjbyBuZW4ga2lu aCB0ZSBwaGF0IA0KdHJpZW4gY2FvIGR1YSB0cmVuIGx1YyBsdW9uZyBzYW4geHVhdCBoaWVuIGRh aSB2YSBxdWFuIGhlIHNhbiB4dWF0IHBodSBob3Agdm9pIHRyaW5oIGRvIA0KcGhhdCB0cmllbiBj dWEgbHVjIGx1b25nIHNhbiB4dWF0IiANCg0KS2hhbmcgZGluaCBraW5oIHRlIG5oYSBudW9jIGN1 bmcgdm9pIGtpbmggdGUgdGFwIHRoZSBuZ2F5IGNhbmcgdHJvIHRoYW5oIG5lbiB0YW5nIHZ1bmcg DQpjaGFjIGN1YSBuZW4ga2luaCB0ZSBxdW9jIGRhbiB2dWEga2hvbmcgcGh1IGhvcCB2b2kgdGh1 YyB0ZSB2dWEga2hvbmcgY28gbG9pIGNobyB2aWVjIA0KdGFvIGxhcCBtb2kgdHJ1b25nIGtpbmgg ZG9hbmggdHJlbiBjbyBzbyBjYW5oIHRyYW5oIGJpbmggZGFuZywgbGFuaCBtYW5oIHBodSBob3Ag dm9pIA0Ka2luaCB0ZSB0aGkgdHJ1b25nLg0KDQpDaHVhIGNvIG51b2MgbmFvIHRoaWV0IGxhcCBj aGUgZG8gY29uZyBodXUgZG9pIHZvaSBwaGFuIGxvbiB0dSBsaWV1IHNhbiB4dWF0IGNodSB5ZXUs IGxheSANCmtpbmggdGUgbmhhIG51b2MgdmEga2luaCB0ZSB0YXAgdGhlIGxhbSBuZW4gdGFuZyBt YSBuZW4ga2luaCB0ZSBwaGF0IHRyaWVuIHZ1bmcgY2hhYywgY28gDQpoaWV1IHF1YSB2YSBzdWMg Y2FuaCB0cmFuaCBjYW8sIHBoYXQgaHV5IGR1b2MgdG9hbiBkaWVuIHRpZW0gbmFuZyBjdWEgY29u IG5ndW9pLiANCg0KaHR0cDovL3d3dy50dWFudmlldG5hbS5uZXQvMjAxMC0wOS0yOS1ncy1kdW9u Zy1waHUtaGllcC1iYW4tdmUtY3VvbmctbGluaC1jdWEtZGFuZyBUcmFuIERvbmcgIDMwLzA5LzIw MTAgMDY6MDAgR01UKzcgDQoNCiJNb2kgYnVvYyB0aWVuIGN1YSBjdW9jIHZhbiBkb25nIHRodWMg dGUgY29uIHF1YW4gdHJvbmcgaG9uIGxhIG1vdCB0YSBjdW9uZyBsaW5oIiAtIEdTIER1b25nIFBo dSBIaWVwLCBuZ3V5ZW4gUGhvIFZpZW4gdHJ1b25nIFZpZW4gVHJpZXQgaG9jLCBuZ3V5ZW4gVG9u ZyB0aHUga3kgSG9pIGRvbmcgbHkgbHVhbiBUVSwgYmF5IHRvLiANCg0KIkRpZXUgZG8gY28gbmdo aWEgbGEgRGFuZyB0YSBuZW4gdGFwIHRydW5nIHRyaSB0dWUgdmEgc3VjIGx1YyB2YW8gY2FjIGJ1 b2MgdGllbiB0cm9uZyB0aHVjIA0KdGUuIE5odW5nIGJ1b2MgdGllbiB0cm9uZyB0aHVjIHRlIG1v aSBjaGluaCBsYSBjYWkgbWEgbmhhbiBkYW4gdGEgY2FuIHRyb25nIGx1YyBuYXkuIFNvIGRpIA0K Y2FuIG5odSB0aGUgbGEgdmkgaGllbiBuYXkgbWF1IHhhbSBjdWEgbHkgbHVhbiBjb24gZGFuZyBj YWNoIHhhIG1hdSB4YW5oIGN1YSB0aHVjIHRlIA0KZGF0IG51b2MiIC0gZG8gbGEgbmh1bmcgZG9u ZyBnb3AgeGF5IGR1bmcgY3VhIEdTLiBUUy4gRHVvbmcgUGh1IEhpZXAuIA0KDQpodHRwOi8vd3d3 LnhhbHVhbi5jb20vbW9kdWxlcy5waHA/bmFtZT1OZXdzJmZpbGU9YXJ0aWNsZSZzaWQ9MjA5MTQ5 DQoNClRHIFQuVTogSG9pIGRhbSBnaXVhIEJhbiBUdXllbiBnaWFvIFRydW5nIHVvbmcgRENTIFZp ZXQgTmFtIHZhIFRydW5nIFF1b2MgDQoNCkNoaWV1IG5nYXkgNy85LCB0YWkgSGEgTm9pLCBvbmcg VG8gSHV5IFJ1YSAtIFVWQkNULCBUcnVvbmcgQmFuIFR1eWVuIGdpYW8gDQpUcnVuZyB1b25nIGRh IHRpZXAgdGhhbiBtYXQgdmEgaG9pIGRhbSB2b2kgZG9hbiBkYWkgYmlldSBCYW4gVHV5ZW4gdHJ1 eWVuIA0KRENTIFRydW5nIFF1b2MgZG8gb25nIEx1dSBWYW4gU29uIC0gVVZCQ1QsIFRydW9uZyBi YW4gVHV5ZW4gdHJ1eWVuIGRhbiBkYXUuIA0KDQpPbmcgTHV1IFZhbiBTb24ga2hhbmcgZGluaCwg Y2h1eWVuIHRoYW0gdmEgdGhhbSBnaWEgSG9pIHRoYW8gbGFuIG5heSBtb3QgbGFuIG51YSANCmxh bSB0byBkYW0gdGhlbSB0aW5oIGh1dSBuZ2hpLCBob3AgdGFjIGdpdWEgRGFuZyBjb25nIHNhbiB2 YSBCYW4gVHV5ZW4gZ2lhbyBoYWkgDQpudW9jLCBuaGF0IGxhIHZhbyBkaXAgaGFpIG51b2Mga3kg bmllbSA2MCBuYW0gdGhpZXQgbGFwIHF1YW4gaGUgbmdvYWkgZ2lhbyB2YSANCnRyb25nICJOYW0g aHV1IG5naGkgVmlldCBOYW0tVHJ1bmcgUXVvYyAyMDEwIi4gDQoNCk9uZyBUbyBIdXkgUnVhIGNh bSBvbiB2YSBoeSB2b25nIHZvaSBuaGlldSBob2F0IGRvbmcgZGEgZGFuZywgcGhvbmcgcGh1IHRy b25nIA0KbmFtIGh1dSBuZ2hpIFZpZXQgTmFtIC0gVHJ1bmcgUXVvYyBzZSBsYSBkaXAgZGUgaGFp IGJlbiBuYW5nIHRhbSBxdWFuIGhlIGRvaSB0YWMgDQpjaGllbiBsdW9jIHRvYW4gZGllbiB0aGVv IHBodW9uZyBjaGFtIDE2IGNodSB2YSAidGluaCB0aGFuIGJvbiB0b3QiLiANCg0KaHR0cDovL3d3 dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDQxLzIwMTAxMDA2MDEwOTIwLmFzcHgg MDYvMTAvMjAxMCAxOjA5IA0KDQpCaWVuIERvbmc6IE5nYXkgMTEuOS4yMDEwLCBwaGlhIFRydW5n IFF1b2MgbGFpIGJhdCBnaXUgdGF1IGNhIGN1bmcgOSBuZ3UgZGFuIFZOIHRhaSB2dW5nIGJpZW4g dGh1b2MgcXVhbiBkYW8gSG9hbmcgU2EgDQoNCmh0dHA6Ly92aXRpbmZvLmNvbS52bi9NTXVjdGlu L1F1YW5zdS9USFNLL0xBNzcxMjEvZGVmYXVsdC5odG1sIDI3LzA1LzIwMTAsIDIyOjQ3KEdNVCs3 KSBDYW8gUGhvbmcgKHRoZW8gVEhYKQ0KDQpCaWVuIERvbmc6IFRydW5nIFF1b2Mgbmdhbmcgbmhp ZW4gbGFwIGRhdCB0cmFtIGRpZW4gdGhvYWkgZGkgZG9uZyB0cmVuIGRhbyBDaHUgVGhhcCB0aHVv YyBxdWFuIGRhbyBUcnVvbmcgU2EgY3VhIFZpZXQgTmFtIA0KDQpWaWVjIFRydW5nIFF1b2MgdHUg eSBsYXAgZGF0IHRoaWV0IGJpIHZpZW4gdGhvbmcgdHJlbiBkYW8gQ2h1IFRoYXAgdGh1b2MgcXVh biBkYW8gDQpUcnVvbmcgU2EsIHRodW9jIGNodSBxdXllbiBsYW5oIGhhaSBWaWV0IE5hbSBsYSBt b3QgaGFuaCBkb25nIHNhaSB0cmFpLCB2aSBwaGFtIG5naGllbSB0cm9uZyBjaHUgcXV5ZW4gdHJl biBiaWVuIGN1YSBWaWV0IE5hbS4gDQoNCmh0dHA6Ly93d3cudGhhbmhuaWVuLmNvbS52bi9OZXdz L1BhZ2VzLzIwMTAzMi8yMDEwMDgwNjAwMTgxMi5hc3B4IDA2LzA4LzIwMTAgMDoxOCANCg0KVHJ1 bmcgUXVvYyB0aWVuIGhhbmgga2hhbyBzYXQgZGlhIGNoYW4gdGFpIGtodSB2dWMgZGFvIFRyaSBU b24gKHRodW9jIHF1YW4gZGFvIEhvYW5nIA0KU2EpLCBzYW4gbGFwLCBtbyByb25nIGRhbyBUcmkg VG9uIA0KDQpUdSBjdW9pIHRoYW5nIDUuMjAxMCBkZW4gbmF5LCBwaGlhIFRRIGRhIHN1IGR1bmcg dGF1IGtoYW8gc2F0IE0vViBXZXN0ZXJuIFNwaXJpdCBjdW5nIA0KbmhpZXUgdGF1IGJhbyB2ZSB0 aWVuIGhhbmgga2hhbyBzYXQgZGlhIGNoYW4gdGFpIGtodSB2dWMgZGFvIFRyaSBUb24sIHF1YW4g ZGFvIEhvYW5nIFNhIA0KdmEgdGFpIGNhYyBsbyBkYXUga2hpIDE0MSwgMTQyIHZhIDE0MyB0cmVu IHRoZW0gbHVjIGRpYSBWTiwgY2FjaCBkYW8gTHkgU29uLCB0aW5oIFF1YW5nIE5nYWkga2hvYW5n IDkwLTExNiBoYWkgbHkuIA0KDQpodHRwOi8vdm5leHByZXNzLm5ldC9HTC9YYS1ob2kvMjAxMC8w Ni8zQkExQ0UxNC8gMTIvNi8yMDEwLCAwOTozNSBHTVQrNw0KDQoiVGF1IGxhIiBsYWkgZGFtIGNo aW0gdGF1IGRhbmggY2EgVmlldCBOYW0gDQogDQpSYW5nIHNhbmcgMTIvNi8yMDEwIHRhdSBkYW5o IGNhIGN1YSB0aHV5ZW4gdHJ1b25nIFZvIFh1YW4gVGllbiBjdW5nIDE3IG5ndSBkYW4gZGFvIA0K THkgU29uIChRdWFuZyBOZ2FpKSB0cmVuIGR1b25nIGhhbmggbmdoZSB0dSBUcnVvbmcgU2EgdmUg dnVuZyBiaWVuIEJpbmggRGluaCBkYSBiaSANCnRhdSBsYSBkYW0gY2hpbSByb2kgYm8gY2hheS4N Cg0KVGhlbyBjYWMgbmd1IGRhbiBnYXAgbmFuLCBzYXUgcGhpZW4gYmllbiBvIFRydW9uZyBTYSB0 cm8gdmUsIGhvIGRhbmggYmF0IGR1b2Mga2hvYW5nIA0KMjAgdGFuIHRodXkgc2FuLCBkdSBraWVu IHZlIGRlbiBkYW8gTHkgU29uIHZhbyBjaGlldSAxMi82IGRlIGJhbiBjYSB2YSBuZ2hpIG5nb2kg Y2h1YW4gDQpiaSBhbiBUZXQgRG9hbiBuZ28gKG11bmcgNS81KS4gVHV5IG5oaWVuLCBraG9hbmcg Mmggc2FuZyBuYXksIHRhdSB2ZSBkZW4gY2FjaCBkYW8gDQpOaG9uIENoYXUgKEN1IExhbyBYYW5o KSAxMiBoYWkgbHkgdGhpIGJpIHRhdSBsYSBkYW0gY2hpbS4gcm9pIGJvIGNoYXkuDQoNCmh0dHA6 Ly93d3cudGludHVjbmdheW5heS5jb20vdGluLXR1Yy1zdS1raWVuL3Rpbi1jaGluaC10cmkvMTIy NDgtdHJ1bmctcXVvYy1waGF0LWhpZW4tMTgwLW1vLWRhdS10YWktYmllbi1kb25nLmh0bWwgMDEv Ny8yMDEwIDExOjM5IA0KDQpUcnVuZyBRdW9jIHBoYXQgaGllbiAxODAgbW8gZGF1IHRhaSBCaWVu IERvbmcgDQoNClRob25nIHRpbiB0dSBCYWMgS2luaCBjaG8gYmlldCwgdnVhIHRpbSB0aGF5IGhv biAyMDAgdnVuZyBjbyBjaHVhIGRhdSB2YSBraGkgZG90IGN1bmcgDQp2b2kgMTgwIG1vIGRhdSBr aGkgdm9pIGRvIHNhdSA1MDAgLSAyLjAwMG0uDQoNClRoZW8gb25nIFd1IFNoaWN1biwgR2lhbSBk b2MgUGhhbiB2aWVuIGhhaSBkdW9uZyBob2MgYmllbiBEb25nIHRodW9jIFZpZW4gS2hvYSANCmhv YyBUcnVuZyBRdW9jLCB0cnUgbHVvbmcgdmEgdmkgdHJpIGNoaW5oIHhhYyBjdWEgY2FjIG1vIG5h eSBoaWVuIGNodWEgZHVvYyBjb25nIGJvLCANCnNvbmcgb25nIGtoYW5nIGRpbmggdGFpIG5ndXll biBkYXUga2hpIHRyZW4gdnVuZyBCaWVuIERvbmcgY28gdGhlIGxhIHJhdCBsb24uDQoNClR1eWVu IGJvIG1vaSBkYXkgY3VhIGdpb2kgY2h1YyBUcnVuZyBRdW9jIGNobyB0aGF5LCB0cm9uZyBuYW0g bmF5LCBudW9jIG5heSBzZSB0cmllbiANCmtoYWkgOSBkdSBhbiB0aGFtIGRvIGtoYWkgdGhhYyBu dW9jIHNhdSB0YWkgQmllbiBEb25nLg0KDQoiUXVhIHRyaW5oIGtoYWkgdGhhYyB0YWkgbmd1eWVu IGRhdSB4YSBibyBjdWEgY29uZyB0eSBraGFpIHRoYWMgZGF1IGtoaSB4YSBibyBzZSBjaHV5ZW4g DQp0dSB2dW5nIG51b2Mgbm9uZyBkZW4gdnVuZyBiaWVuIHNhdSB0b2kgMy4wMDBtIiwgQ2h1IHRp Y2ggQ29uZyB0eSBraGFpIHRoYWMgZGF1IGtoaSANCm5nb2FpIGtob2kgY3VhIFRydW5nIFF1b2Mg KENOT09DKSwgRnUgQ2hlbmd5dSBuaGFuIG1hbmguDQoNClRyb25nIGtlIGhvYWNoIHBoYXQgdHJp ZW4gY2FjIGR1IGFuIGtoYWkgdGhhYyBkYXUga2hpIG8gQmllbiBEb25nLCBDTk9PQyBkYSBkYXUg dHUgDQoyMDAgdHkgbmhhbiBkYW4gdGUgKDI5IHR5IFVTRCkuIFRvYW4gYm8ga2UgaG9hY2ggdmEg Y2hpIHBoaSBkYXUgdHUgY3VhIGhhbmcgbXVjIDIwMCB0eSANCm5oYW4gZGFuIHRlIG5heSBiYW8g Z29tIGNhIGRhdSB0dSB0aGFtIGRvIHRodW9uZyBuZ3VvbiB2YSBoYSBuZ3VvbiwgdHJvbmcgZG8g dHJvbmcgDQpkaWVtIGxhIHhheSBkdW5nIGtoYSBuYW5nIHRhYyBuZ2hpZXAgdmEgdGhhbSBkbyBr aGFpIHRoYWMgZGF1IGtoaSBudW9jIHNhdSB2YSBzaWV1IHNhdSANCnR1IDIuNTAwbSBkZW4gMy4w MDBtLg0KDQpUYWkgbmd1eWVuIG5vaSB0aWVuZyBvIEJpZW4gRG9uZyBjaHUgeWV1IGxhIGtoaSBk b3QgdHUgbmhpZW4sIHRyb25nIGRvIGRvaSBob2kgcGhhaSBkdW9jIA0KdmFuIGNodXllbiBxdWEg ZHVvbmcgb25nIGRhbiBoaWVuIGRhaSBkdW9pIGRhaSBkdW9uZy4NCihUaGVvIFhpbmh1YS9EYXQg VmlldCkNCg0KaHR0cDovL3d3dy50aGFuaG5pZW4uY29tLnZuL05ld3MvUGFnZXMvMjAxMDI5LzIw MTAwNzEyMDQyMzA4LmFzcHggMTIvMDcvMjAxMCA0OjIzIA0KDQpUcnVuZyBRdW9jIHRob25nIHF1 YSAiQ3VvbmcgeWV1IHF1eSBob2FjaCB4YXkgZHVuZyB2YSBwaGF0IHRyaWVuIGRhbyBkdSBsaWNo IHF1b2MgdGUgDQpIYWkgTmFtIDIwMTAtMjAyMCIgLSBkdWEgSG9hbmcgU2EgdmEgVHJ1b25nIFNh IHZhbyBxdXkgaG9hY2ggeGF5IGR1bmcgdmEgcGhhdCB0cmllbiANCmRhbyBkdSBsaWNoIHF1b2Mg dGUgSGFpIE5hbTsgdmkgcGhhbSBuZ2hpZW0gdHJvbmcgY2h1IHF1eWVuIGN1YSBWTiANCg0KaHR0 cDovL3d3dy50dWFudmlldG5hbS5uZXQvdm4vdGhvbmd0aW5kYWNoaWV1Lzc1NTkvaW5kZXguYXNw eCANCg0KVHJ1bmcgUXVvYyAia2hvbmcgY2hpIGRhbmcgdGltIGNhY2ggbW8gcm9uZyBhbmggaHVv bmcga2luaCB0ZSB2YSBjaGluaCB0cmkgbWEgY29uIHRpbSBjYWNoIG1vIHJvbmcgY2EgbGFuaCB0 aG8iLiANCg0KaHR0cDovL3ZpLndpa2lwZWRpYS5vcmcvd2lraS9QaCVFMSVCQSVBMW1fUXVhbmdf TmdoJUUxJUJCJThCDQoNCk9uZyBUbyBIdXkgUnVhIGxhbSBUcnVvbmcgYmFuIFR1eWVuIGdpYW8g VHJ1bmcgdW9uZyANCg0KaHR0cDovL3d3dy52aWV0bmFtbmV0LnZuL2NoaW5odHJpLzIwMTAwMy9U aG9uZy10aW4tdmUtYmllbi1kYW8tQ29uLWhhbi1jaGUtdHJvbmctY2hpLWRhby04OTc3NzQvIDIy OjEwLCAwOC8wMy8yMDEwIChHTVQrNykNCg0KVHV5ZW4gZ2lhbyBULlU6IFRob25nIHRpbiB2ZSBi aWVuIGRhbyBjb24gaGFuIGNoZSB0cm9uZyBjaGkgZGFvLCBkaWV1IGhhbmggdGhvbmcgdGluOyBk YWMgYmlldCBzdSBwaG9pIGhvcCBjbyBsdWMgY29uIGJpIGRvbmcsIGx1bmcgdHVuZyB0cnVvYyBt b3Qgc28gdmFuIGRlIHBodWMgdGFwIG1vaSBuYXkgc2luaC4gDQoNCi0gQ29uZyB0YWMgdHV5ZW4g dHJ1eWVuIGhhaSBkYW8gdGllbiBoYW5oIGNodWEgZHVvYyBiYWkgYmFuLCBkb25nIGJvLCB0aHVv bmcgeHV5ZW4NCg0KLSBUaW5oIGtlIGhvYWNoIHRyb25nIGNoaSBkYW8gY29uZyB0YWMgdHV5ZW4g dHJ1eWVuIGJpZW4gZGFvIHR1IFRVIGRlbiBjbyBzbyBjaHVhIGR1b2MgcXVhbiB0YW0gZHVuZyBt dWMuIA0KDQotIENodWEgcXVhbiB0YW0gY2hpIGRhbyBxdXlldCBsaWV0IGRvaSB2b2kgdmllYyBw aGF0IHRyaWVuIGNhYyBsaW5oIHZ1YyBsaWVuIHF1YW4gZGVuIGJpZW4sIGNodWEgdGhheSBoZXQg ZHVvYyB2aSB0cmksIA0KdGFtIHF1YW4gdHJvbmcgY3VhIGJpZW4gZGFvIHZvaSBzdSBuZ2hpZXAg eGF5IGR1bmcgdmEgYmFvIHZlIFRvIHF1b2MuIA0KDQoiVGhvbmcgdGluLCB0dSBsaWV1LCB0YWkg bGlldSB2ZSB0dXllbiB0cnV5ZW4gYmllbiBkYW8gY2h1YSBkYW0gYmFvIHRpbmggaGUgdGhvbmcs IG5vaSBkdW5nLCBoaW5oIHRodWMgY2h1YSB0aGF0IGhhcCBkYW4uIA0KVmFuIGRlIHF1YW4gbHkg TmhhIG51b2MgdmUgYmllbiwgbmh1bmcgZGlldSBuZ3UgZGFuIGNhbiBiaWV0LCBuaHVuZyB0aG9u ZyB0aW4gY28gYmFuIHZlIGNhYyBsaW5oIHZ1YyBsaWVuIHF1YW4gZGVuIGJpZW4gDQpuaHUgcGhh cCBsdWF0LCB0YWkgbmd1eWVuLCBtb2kgdHJ1b25nIGJpZW4sIHBob25nIGNob25nIHRoaWVuIHRh aSwgY3V1IGhvLCBjdXUgbmFuLi4uIGNvbiByYXQgaGFuIGNoZSINCg0KaHR0cDovL25ld3MubWVn YXBsdXMudm4vbm9pX2xvX2NoZWNoX2h1b25nXy0xNjc3NzIxNi02NDI3NzYwMzYtMCB2aWV0bmFt bmV0LnZuIC0gMDQtMTAtMjAxMCAxNjo0NQ0KDQpUcnVuZyB1b25nIERhbmc6ICJOZXUga2hvbmcg cXV5ZXQgbGlldCBkb2kgbW9pLCBjbyB0aGUgRGFuZyBzZSBjaGVjaCBodW9uZyBraG9pIG5odW5n IG5oaWVtIHZ1IGNhcCANCmJhY2ggbmhhdCwgbm9uZyBib25nIG5oYXQgY3VhIGRhdCBudW9jIHRy b25nIG5odW5nIG5hbSB0b2kiLCBvbmcgTmd1eWVuIFRydW5nLCBuZ3V5ZW4gRGFpIHN1IFZpZXQg TmFtIHRhaSBUaGFpIExhbiwgY2hpYSBzZSBtb2kgbG8uIA0KDQpodHRwOi8vd3d3LnR1YW52aWV0 bmFtLm5ldC8yMDEwLTA1LTExLWJ1b2MtdGllbi1oYXktYnVvYy1sdWkgMTIvMDUvMjAxMCBUcmFu IER1YyBOZ3V5ZW4gMDY6MDAgR01UKzcgDQoNClR1eWVuIGdpYW8gVHJ1bmcgdW9uZzogS2hvbmcg dGhlIGhpZW4gdGluaCB0aGFuIHRoYXQgbG9uZyBtb25nIGRvaSB2YSB0aW4gdHVvbmcgdmFvIHN1 IGRvbmcgZ29wIHRyaSB0dWUgY3VhIGRhbiANCg0KU28gdm9pIGt5IGNodWFuIGJpIERhaSBob2kg dHJ1b2MgdGhpIGNhYyB2YW4ga2llbiBEYWkgaG9pIFhJIGR1YSByYSBsYXkgeSBraWVuIG5oYW4g ZGFuIGt5IG5heSBuaGlldSANCmhvbiB2YSBkYWkgaG9uOyB2aSB2YXkgbmVuIHZhIGNvIHRoZSBj b25nIGJvIHNvbSBkZSBkYW5oIHRob2kgZ2lhbiB0aGljaCBkYW5nIGNobyBtb2kgDQpuZ3VvaSBu Z2hpZW4gY3V1LCB0cmFvIGRvaSB2YSBkb25nIGdvcCB5IGtpZW4gYmFuZyB0aHUgZ3VpIGRlbiBj YWMgY28gcXVhbiBjbyB0cmFjaCANCm5oaWVtIHRvbmcgaG9wIGhvYWMgdmlldCBiYWkgZGFuZyBi YW8uIEdvaSBnb24gdGhvaSBnaWFuIChkb25nIGdvcCB5IGtpZW4pIG5heSB0cm9uZyANCm1vdCwg aGFpIHRoYW5nIHRoaSBraG9uZyBkdSB2YSBraG9uZyB0aGUgaGllbiB0aW5oIHRoYW4gdGhhdCBs b25nIG1vbmcgZG9pIHZhIHRpbiB0dW9uZyB2YW8gc3UgZG9uZyBnb3AgdHJpIHR1ZSBjdWEgZGFu LiANCg0KaHR0cDovL3RpbnR1Yy54YWxvLnZuLzAwLTY1NTIzNzAwNi90aWVwX3R1Y19iYW9fZG9u Z190aW5oX3RyYW5nX25oYV9iYW9fYmlfaGFuaF9odW5nLmh0bWw/aWQ9MmUzZDk0ZDMgNS84LzIw MTAsIDE6MjggQU0gDQoNCkJhbyBkb25nIHRpbmggdHJhbmcgbmhhIGJhbyBiaSBoYW5oIGh1bmcg DQoNCmh0dHA6Ly93d3cuYmFvZGF0dmlldC52bi9Ib21lL2NoaW5odHJpeGFob2kvU28tbmhhLWJh by1iaS1oYW5oLWh1bmctY2FuLXRyby1uZ2F5LWNhbmctdGFuZy8yMDEwOC8xMDYyODQuZGF0dmll dCBRdWFuZyBQaG9uZyA5OjQzIEFNLCAwNC8wOC8yMDEwDQoNClNvIG5oYSBiYW8gYmkgaGFuaCBo dW5nLCBjYW4gdHJvIG5nYXkgY2FuZyB0YW5nIA0KDQpodHRwOi8vd3d3LnZpZXRuYW1uZXQudm4v eGFob2kvMjAxMDA1L1RhdS1jYS1WaWV0LU5hbS1sYWktYmktdGF1LVRydW5nLVF1b2MtYmF0LWdp dS05MDgyNjAvMTQ6NTMsIDA2LzA1LzIwMTAgKEdNVCs3KQ0KDQpCaWVuIERvbmc6IFRhdSBjYSBW aWV0IE5hbSBsYWkgYmkgdGF1IFRydW5nIFF1b2MgYmF0IGdpdS4gICANCg== --0015174c3fd622a1eb04a7ed1093-- From david@fromorbit.com Wed Jul 13 05:28:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DASVlM079250 for ; Wed, 13 Jul 2011 05:28:31 -0500 X-ASG-Debug-ID: 1310552908-613b02090000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0B38B17BD76D for ; Wed, 13 Jul 2011 03:28:29 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id OAcWmPzUeyASdmtW for ; Wed, 13 Jul 2011 03:28:28 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AowDAPRxHU55LCkBgWdsb2JhbABUpzoVAQEWJiXMKA6GLASbBog5 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 13 Jul 2011 19:58:26 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qgwg5-0006bp-8q; Wed, 13 Jul 2011 20:28:25 +1000 Date: Wed, 13 Jul 2011 20:28:25 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Alex Elder , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Subject: Re: [PATCH 03/11] xfs: factor out xfs_dir2_leaf_find_stale Message-ID: <20110713102825.GR23038@dastard> References: <20110710204916.856267100@bombadil.infradead.org> <20110710205017.293539533@bombadil.infradead.org> <1310423573.7019.55.camel@doink> <20110713064936.GP23038@dastard> <20110713071654.GA21252@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110713071654.GA21252@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310552910 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1259 1.0000 -1.2395 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.24 X-Barracuda-Spam-Status: No, SCORE=-1.24 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68792 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:16:54AM -0400, Christoph Hellwig wrote: > On Wed, Jul 13, 2011 at 04:49:36PM +1000, Dave Chinner wrote: > > > > + --*lowstale) > > > > + continue; > > > > Only thing I was conerned about was the indenting on these loops. > > Something like this: > > > > for (*lowstale = index - 1; > > *lowstale >= 0 && > > leaf->ents[*lowstale].address != > > cpu_to_be32(XFS_DIR2_NULL_DATAPTR); > > --*lowstale) > > continue; > > > > means that at a glance it is easy to separate the loop control > > statements from the body of the loop just by indentation. > > I tried to avoid changing anything here, but now that other people > like me hate these uglies I think I have to ite the bullet and > actually untangle those loops. The version below is what I'm submitting > to testing now: The new logic looks OK to me. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+1c4b9cbdced2d2853fe8+2880+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 13 07:13:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DCDOUi082701 for ; Wed, 13 Jul 2011 07:13:26 -0500 X-ASG-Debug-ID: 1310559200-0b23035f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E07252922C for ; Wed, 13 Jul 2011 05:13:20 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id xxMjBQ4gUpDoFSqD for ; Wed, 13 Jul 2011 05:13:20 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QgyJc-0008Ay-6K; Wed, 13 Jul 2011 12:13:20 +0000 Date: Wed, 13 Jul 2011 08:13:20 -0400 From: Christoph Hellwig To: alal@google.com Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Message-ID: <20110713121320.GA28126@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310559201 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0187 1.0000 -1.8991 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.30 X-Barracuda-Spam-Status: No, SCORE=-1.30 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68798 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 01, 2011 at 01:52:43PM -0700, Akshay Lal wrote: > Current the Makefile only builds the .c files and installs > them in the $INSTALL path. However, the ltp directory contains a shell script, > which doen't get copied over (installed) when a "make install"is invoked. > > This behaviour causes test 080 to fail since it requires rwtest.sh to be > present in the ltp/ directory. > > Tested: Updated the Makefile and ran a static build script & test > 080. Thanks, applied. (after fixing up mailer induced whitespace issues) From BATV+1c4b9cbdced2d2853fe8+2880+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 13 07:38:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DCcUon083548 for ; Wed, 13 Jul 2011 07:38:30 -0500 X-ASG-Debug-ID: 1310560709-2faa033b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 670421E60556 for ; Wed, 13 Jul 2011 05:38:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id kQycJkNLu8NDn7rx for ; Wed, 13 Jul 2011 05:38:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qgyhs-0003xJ-J1; Wed, 13 Jul 2011 12:38:24 +0000 Date: Wed, 13 Jul 2011 08:38:24 -0400 From: Christoph Hellwig To: Allison Henderson Cc: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/4 v3] XFS TESTS: Fix 252 failure Subject: Re: [PATCH 0/4 v3] XFS TESTS: Fix 252 failure Message-ID: <20110713123824.GA15139@infradead.org> References: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310560709 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68799 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I have applied the series. I had to merge patches 1 to 3 into a single commit to keep thing bisectable, though. From BATV+1c4b9cbdced2d2853fe8+2880+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 13 07:52:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DCqn4U084033 for ; Wed, 13 Jul 2011 07:52:49 -0500 X-ASG-Debug-ID: 1310561568-2faa03c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 786611E605DA for ; Wed, 13 Jul 2011 05:52:48 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id NkMdnlCRbOuR6FrB for ; Wed, 13 Jul 2011 05:52:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qgyvn-00073f-RY; Wed, 13 Jul 2011 12:52:47 +0000 Date: Wed, 13 Jul 2011 08:52:47 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: XFS status update for June 2011 Subject: XFS status update for June 2011 Message-ID: <20110713125247.GA27049@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310561568 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0253 1.0000 -1.8568 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.26 X-Barracuda-Spam-Status: No, SCORE=-1.26 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68802 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In June we saw more release candidates for Linux 3.0, which contain a few XFS fixes but no major updates. No updates were committed to the XFS development tree for Linux 3.1 either, although the mailing list has been rather busy with updates for that merge window. On the user space side the xfsprogs and xfsdump repositories didn't see any updates, while xfstests has been rather busy with a lot of fixes to various test cases. From aelder@sgi.com Wed Jul 13 08:50:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DDo5FS085839 for ; Wed, 13 Jul 2011 08:50:05 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id EBB03304043; Wed, 13 Jul 2011 06:50:01 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 13 Jul 2011 08:50:01 -0500 Subject: Re: [PATCH] stable: restart busy extent search after node removal From: Alex Elder Reply-To: To: Eric Sandeen CC: xfs-oss In-Reply-To: <4E1CC4BA.1010107@redhat.com> References: <4E1CC4BA.1010107@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 13 Jul 2011 08:50:01 -0500 Message-ID: <1310565001.1998.7.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-12 at 17:03 -0500, Eric Sandeen wrote: > Sending this for review prior to stable submission... > > A user on #xfs reported that a log replay was oopsing in > __rb_rotate_left() with a null pointer deref. > > I traced this down to the fact that in xfs_alloc_busy_insert(), > we erased a node with rb_erase() when the new node overlapped, > but left it specified as the parent node for the new insertion. > > So when we try to insert a new node with an erased node as > its parent, obviously things go very wrong. > > Upstream, > 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking > actually fixed this, but as part of a much larger change. Here's > the relevant bit: > > * We also need to restart the busy extent search from the > * tree root, because erasing the node can rearrange the > * tree topology. > */ > rb_erase(&busyp->rb_node, &pag->pagb_tree); > busyp->length = 0; > return false; > > We can do essentially the same thing to older codebases by restarting > the search after the erase. > > This should apply to .35 through .39, and was tested on .39 > with the oopsing replay reproducer. > > Signed-off-by: Eric Sandeen Looks good. Reviewed-by: Alex Elder From mgorman@suse.de Wed Jul 13 09:31:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVX7H087192 for ; Wed, 13 Jul 2011 09:31:33 -0500 X-ASG-Debug-ID: 1310567492-63a602860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A8756143F9E0 for ; Wed, 13 Jul 2011 07:31:32 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id cHnSmlDqkO6Ls790 for ; Wed, 13 Jul 2011 07:31:32 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id BA22A8EE5B; Wed, 13 Jul 2011 16:31:31 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Date: Wed, 13 Jul 2011 15:31:24 +0100 Message-Id: <1310567487-15367-3-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567492 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean It is preferable that no dirty pages are dispatched for cleaning from the page reclaim path. At normal priorities, this patch prevents kswapd writing pages. However, page reclaim does have a requirement that pages be freed in a particular zone. If it is failing to make sufficient progress (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority is raised to scan more pages. A priority of DEF_PRIORITY - 3 is considered to tbe the point where kswapd is getting into trouble reclaiming pages. If this priority is reached, kswapd will dispatch pages for writing. Signed-off-by: Mel Gorman --- mm/vmscan.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index 2d3e5b6..e272951 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -719,7 +719,8 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages) */ static unsigned long shrink_page_list(struct list_head *page_list, struct zone *zone, - struct scan_control *sc) + struct scan_control *sc, + int priority) { LIST_HEAD(ret_pages); LIST_HEAD(free_pages); @@ -827,9 +828,11 @@ static unsigned long shrink_page_list(struct list_head *page_list, /* * Only kswapd can writeback filesystem pages to - * avoid risk of stack overflow + * avoid risk of stack overflow but do not writeback + * unless under significant pressure. */ - if (page_is_file_cache(page) && !current_is_kswapd()) { + if (page_is_file_cache(page) && + (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); goto keep_locked; } @@ -1465,12 +1468,12 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, spin_unlock_irq(&zone->lru_lock); - nr_reclaimed = shrink_page_list(&page_list, zone, sc); + nr_reclaimed = shrink_page_list(&page_list, zone, sc, priority); /* Check if we should syncronously wait for writeback */ if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { set_reclaim_mode(priority, sc, true); - nr_reclaimed += shrink_page_list(&page_list, zone, sc); + nr_reclaimed += shrink_page_list(&page_list, zone, sc, priority); } local_irq_disable(); -- 1.7.3.4 From mgorman@suse.de Wed Jul 13 09:31:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVbdi087209 for ; Wed, 13 Jul 2011 09:31:37 -0500 X-ASG-Debug-ID: 1310567495-60ad021a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 526A5682C2 for ; Wed, 13 Jul 2011 07:31:35 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id f3ipEC4Czbe6fHYv for ; Wed, 13 Jul 2011 07:31:35 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 32A5B8F0A5; Wed, 13 Jul 2011 16:31:35 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Date: Wed, 13 Jul 2011 15:31:27 +0100 Message-Id: <1310567487-15367-6-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567496 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean It is preferable that no dirty pages are dispatched from the page reclaim path. If reclaim is encountering dirty pages, it implies that either reclaim is getting ahead of writeback or use-once logic has prioritise pages for reclaiming that are young relative to when the inode was dirtied. When dirty pages are encounted on the LRU, this patch marks the inodes I_DIRTY_RECLAIM and wakes the background flusher. When the background flusher runs, it moves such inodes immediately to the dispatch queue regardless of inode age. There is no guarantee that pages reclaim cares about will be cleaned first but the expectation is that the flusher threads will clean the page quicker than if reclaim tried to clean a single page. Signed-off-by: Mel Gorman --- fs/fs-writeback.c | 56 ++++++++++++++++++++++++++++++++++++++++++++- include/linux/fs.h | 5 ++- include/linux/writeback.h | 1 + mm/vmscan.c | 16 ++++++++++++- 4 files changed, 74 insertions(+), 4 deletions(-) diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c index 0f015a0..1201052 100644 --- a/fs/fs-writeback.c +++ b/fs/fs-writeback.c @@ -257,9 +257,23 @@ static void move_expired_inodes(struct list_head *delaying_queue, LIST_HEAD(tmp); struct list_head *pos, *node; struct super_block *sb = NULL; - struct inode *inode; + struct inode *inode, *tinode; int do_sb_sort = 0; + /* Move inodes reclaim found at end of LRU to dispatch queue */ + list_for_each_entry_safe(inode, tinode, delaying_queue, i_wb_list) { + /* Move any inode found at end of LRU to dispatch queue */ + if (inode->i_state & I_DIRTY_RECLAIM) { + inode->i_state &= ~I_DIRTY_RECLAIM; + list_move(&inode->i_wb_list, &tmp); + + if (sb && sb != inode->i_sb) + do_sb_sort = 1; + sb = inode->i_sb; + } + } + + sb = NULL; while (!list_empty(delaying_queue)) { inode = wb_inode(delaying_queue->prev); if (older_than_this && @@ -968,6 +982,46 @@ void wakeup_flusher_threads(long nr_pages) rcu_read_unlock(); } +/* + * Similar to wakeup_flusher_threads except prioritise inodes contained + * in the page_list regardless of age + */ +void wakeup_flusher_threads_pages(long nr_pages, struct list_head *page_list) +{ + struct page *page; + struct address_space *mapping; + struct inode *inode; + + list_for_each_entry(page, page_list, lru) { + if (!PageDirty(page)) + continue; + + if (PageSwapBacked(page)) + continue; + + lock_page(page); + mapping = page_mapping(page); + if (!mapping) + goto unlock; + + /* + * Test outside the lock to see as if it is already set. Inode + * should be pinned by the lock_page + */ + inode = page->mapping->host; + if (inode->i_state & I_DIRTY_RECLAIM) + goto unlock; + + spin_lock(&inode->i_lock); + inode->i_state |= I_DIRTY_RECLAIM; + spin_unlock(&inode->i_lock); +unlock: + unlock_page(page); + } + + wakeup_flusher_threads(nr_pages); +} + static noinline void block_dump___mark_inode_dirty(struct inode *inode) { if (inode->i_ino || strcmp(inode->i_sb->s_id, "bdev")) { diff --git a/include/linux/fs.h b/include/linux/fs.h index b5b9792..bb0f4c2 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1650,8 +1650,8 @@ struct super_operations { /* * Inode state bits. Protected by inode->i_lock * - * Three bits determine the dirty state of the inode, I_DIRTY_SYNC, - * I_DIRTY_DATASYNC and I_DIRTY_PAGES. + * Four bits determine the dirty state of the inode, I_DIRTY_SYNC, + * I_DIRTY_DATASYNC, I_DIRTY_PAGES and I_DIRTY_RECLAIM. * * Four bits define the lifetime of an inode. Initially, inodes are I_NEW, * until that flag is cleared. I_WILL_FREE, I_FREEING and I_CLEAR are set at @@ -1706,6 +1706,7 @@ struct super_operations { #define __I_SYNC 7 #define I_SYNC (1 << __I_SYNC) #define I_REFERENCED (1 << 8) +#define I_DIRTY_RECLAIM (1 << 9) #define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES) diff --git a/include/linux/writeback.h b/include/linux/writeback.h index 17e7ccc..1e77793 100644 --- a/include/linux/writeback.h +++ b/include/linux/writeback.h @@ -66,6 +66,7 @@ void writeback_inodes_wb(struct bdi_writeback *wb, struct writeback_control *wbc); long wb_do_writeback(struct bdi_writeback *wb, int force_wait); void wakeup_flusher_threads(long nr_pages); +void wakeup_flusher_threads_pages(long nr_pages, struct list_head *page_list); /* writeback.h requires fs.h; it, too, is not included from here. */ static inline void wait_on_inode(struct inode *inode) diff --git a/mm/vmscan.c b/mm/vmscan.c index 8e00aee..db62af1 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -725,8 +725,11 @@ static unsigned long shrink_page_list(struct list_head *page_list, { LIST_HEAD(ret_pages); LIST_HEAD(free_pages); + LIST_HEAD(dirty_pages); + int pgactivate = 0; unsigned long nr_dirty = 0; + unsigned long nr_unqueued_dirty = 0; unsigned long nr_congested = 0; unsigned long nr_reclaimed = 0; @@ -830,7 +833,9 @@ static unsigned long shrink_page_list(struct list_head *page_list, /* * Only kswapd can writeback filesystem pages to * avoid risk of stack overflow but do not writeback - * unless under significant pressure. + * unless under significant pressure. For dirty pages + * not under writeback, create a list and pass the + * inodes to the flusher threads later */ if (page_is_file_cache(page) && (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { @@ -840,6 +845,10 @@ static unsigned long shrink_page_list(struct list_head *page_list, unlock_page(page); deactivate_page(page); + /* Prioritise the backing inodes later */ + nr_unqueued_dirty++; + list_add(&page->lru, &dirty_pages); + goto keep_dirty; } @@ -976,6 +985,11 @@ keep_dirty: free_page_list(&free_pages); + if (!list_empty(&dirty_pages)) { + wakeup_flusher_threads_pages(nr_unqueued_dirty, &dirty_pages); + list_splice(&ret_pages, &dirty_pages); + } + list_splice(&ret_pages, page_list); count_vm_events(PGACTIVATE, pgactivate); *ret_nr_dirty += nr_dirty; -- 1.7.3.4 From mgorman@suse.de Wed Jul 13 09:31:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVWd5087188 for ; Wed, 13 Jul 2011 09:31:33 -0500 X-ASG-Debug-ID: 1310567490-60a202360000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CA4F5681E1 for ; Wed, 13 Jul 2011 07:31:31 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id QALHUMZRTeOgbDDC for ; Wed, 13 Jul 2011 07:31:31 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 965718D40D; Wed, 13 Jul 2011 16:31:30 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Date: Wed, 13 Jul 2011 15:31:23 +0100 Message-Id: <1310567487-15367-2-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567491 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Mel Gorman When kswapd is failing to keep zones above the min watermark, a process will enter direct reclaim in the same manner kswapd does. If a dirty page is encountered during the scan, this page is written to backing storage using mapping->writepage. This causes two problems. First, it can result in very deep call stacks, particularly if the target storage or filesystem are complex. Some filesystems ignore write requests from direct reclaim as a result. The second is that a single-page flush is inefficient in terms of IO. While there is an expectation that the elevator will merge requests, this does not always happen. Quoting Christoph Hellwig; The elevator has a relatively small window it can operate on, and can never fix up a bad large scale writeback pattern. This patch prevents direct reclaim writing back filesystem pages by checking if current is kswapd. Anonymous pages are still written to swap as there is not the equivalent of a flusher thread for anonymos pages. If the dirty pages cannot be written back, they are placed back on the LRU lists. Signed-off-by: Mel Gorman --- include/linux/mmzone.h | 1 + mm/vmscan.c | 9 +++++++++ mm/vmstat.c | 1 + 3 files changed, 11 insertions(+), 0 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 9f7c3eb..b70a0c0 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -100,6 +100,7 @@ enum zone_stat_item { NR_UNSTABLE_NFS, /* NFS unstable pages */ NR_BOUNCE, NR_VMSCAN_WRITE, + NR_VMSCAN_WRITE_SKIP, NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 4f49535..2d3e5b6 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -825,6 +825,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, if (PageDirty(page)) { nr_dirty++; + /* + * Only kswapd can writeback filesystem pages to + * avoid risk of stack overflow + */ + if (page_is_file_cache(page) && !current_is_kswapd()) { + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); + goto keep_locked; + } + if (references == PAGEREF_RECLAIM_CLEAN) goto keep_locked; if (!may_enter_fs) diff --git a/mm/vmstat.c b/mm/vmstat.c index 20c18b7..fd109f3 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -702,6 +702,7 @@ const char * const vmstat_text[] = { "nr_unstable", "nr_bounce", "nr_vmscan_write", + "nr_vmscan_write_skip", "nr_writeback_temp", "nr_isolated_anon", "nr_isolated_file", -- 1.7.3.4 From mgorman@suse.de Wed Jul 13 09:31:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVZfa087204 for ; Wed, 13 Jul 2011 09:31:35 -0500 X-ASG-Debug-ID: 1310567494-762a01d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E5EAB143F9AE for ; Wed, 13 Jul 2011 07:31:34 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id rH5kHWQPKREJ5dED for ; Wed, 13 Jul 2011 07:31:34 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 136608EFD4; Wed, 13 Jul 2011 16:31:34 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Date: Wed, 13 Jul 2011 15:31:26 +0100 Message-Id: <1310567487-15367-5-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567494 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean When direct reclaim encounters a dirty page, it gets recycled around the LRU for another cycle. This patch marks the page PageReclaim using deactivate_page() so that the page gets reclaimed almost immediately after the page gets cleaned. This is to avoid reclaiming clean pages that are younger than a dirty page encountered at the end of the LRU that might have been something like a use-once page. Signed-off-by: Mel Gorman --- include/linux/mmzone.h | 2 +- mm/vmscan.c | 10 ++++++++-- mm/vmstat.c | 2 +- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index c4508a2..bea7858 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -100,7 +100,7 @@ enum zone_stat_item { NR_UNSTABLE_NFS, /* NFS unstable pages */ NR_BOUNCE, NR_VMSCAN_WRITE, - NR_VMSCAN_WRITE_SKIP, + NR_VMSCAN_INVALIDATE, NR_VMSCAN_THROTTLED, NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 9826086..8e00aee 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -834,8 +834,13 @@ static unsigned long shrink_page_list(struct list_head *page_list, */ if (page_is_file_cache(page) && (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); - goto keep_locked; + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); + + /* Immediately reclaim when written back */ + unlock_page(page); + deactivate_page(page); + + goto keep_dirty; } if (references == PAGEREF_RECLAIM_CLEAN) @@ -956,6 +961,7 @@ keep: reset_reclaim_mode(sc); keep_lumpy: list_add(&page->lru, &ret_pages); +keep_dirty: VM_BUG_ON(PageLRU(page) || PageUnevictable(page)); } diff --git a/mm/vmstat.c b/mm/vmstat.c index 59ee17c..2c82ae5 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -702,7 +702,7 @@ const char * const vmstat_text[] = { "nr_unstable", "nr_bounce", "nr_vmscan_write", - "nr_vmscan_write_skip", + "nr_vmscan_invalidate", "nr_vmscan_throttled", "nr_writeback_temp", "nr_isolated_anon", -- 1.7.3.4 From mgorman@suse.de Wed Jul 13 09:31:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVYmf087196 for ; Wed, 13 Jul 2011 09:31:34 -0500 X-ASG-Debug-ID: 1310567493-762c01d00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CE1F5143F9F4 for ; Wed, 13 Jul 2011 07:31:33 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id SdMRdYGy9TOPoufN for ; Wed, 13 Jul 2011 07:31:33 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id E8E8A8B013; Wed, 13 Jul 2011 16:31:32 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 3/5] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Subject: [PATCH 3/5] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Date: Wed, 13 Jul 2011 15:31:25 +0100 Message-Id: <1310567487-15367-4-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567493 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Workloads that are allocating frequently and writing files place a large number of dirty pages on the LRU. With use-once logic, it is possible for them to reach the end of the LRU quickly requiring the reclaimer to scan more to find clean pages. Ordinarily, processes that are dirtying memory will get throttled by dirty balancing but this is a global heuristic and does not take into account that LRUs are maintained on a per-zone basis. This can lead to a situation whereby reclaim is scanning heavily, skipping over a large number of pages under writeback and recycling them around the LRU consuming CPU. This patch checks how many of the number of pages isolated from the LRU were dirty. If a percentage of them are dirty, the process will be throttled if a blocking device is congested or the zone being scanned is marked congested. The percentage that must be dirty depends on the priority. At default priority, all of them must be dirty. At DEF_PRIORITY-1, 50% of them must be dirty, DEF_PRIORITY-2, 25% etc. i.e. as pressure increases the greater the likelihood the process will get throttled to allow the flusher threads to make some progress. Signed-off-by: Mel Gorman --- include/linux/mmzone.h | 1 + mm/vmscan.c | 23 ++++++++++++++++++++--- mm/vmstat.c | 1 + 3 files changed, 22 insertions(+), 3 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index b70a0c0..c4508a2 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -101,6 +101,7 @@ enum zone_stat_item { NR_BOUNCE, NR_VMSCAN_WRITE, NR_VMSCAN_WRITE_SKIP, + NR_VMSCAN_THROTTLED, NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ diff --git a/mm/vmscan.c b/mm/vmscan.c index e272951..9826086 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -720,7 +720,8 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages) static unsigned long shrink_page_list(struct list_head *page_list, struct zone *zone, struct scan_control *sc, - int priority) + int priority, + unsigned long *ret_nr_dirty) { LIST_HEAD(ret_pages); LIST_HEAD(free_pages); @@ -971,6 +972,7 @@ keep_lumpy: list_splice(&ret_pages, page_list); count_vm_events(PGACTIVATE, pgactivate); + *ret_nr_dirty += nr_dirty; return nr_reclaimed; } @@ -1420,6 +1422,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, unsigned long nr_taken; unsigned long nr_anon; unsigned long nr_file; + unsigned long nr_dirty = 0; while (unlikely(too_many_isolated(zone, file, sc))) { congestion_wait(BLK_RW_ASYNC, HZ/10); @@ -1468,12 +1471,14 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, spin_unlock_irq(&zone->lru_lock); - nr_reclaimed = shrink_page_list(&page_list, zone, sc, priority); + nr_reclaimed = shrink_page_list(&page_list, zone, sc, + priority, &nr_dirty); /* Check if we should syncronously wait for writeback */ if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { set_reclaim_mode(priority, sc, true); - nr_reclaimed += shrink_page_list(&page_list, zone, sc, priority); + nr_reclaimed += shrink_page_list(&page_list, zone, sc, + priority, &nr_dirty); } local_irq_disable(); @@ -1483,6 +1488,18 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, putback_lru_pages(zone, sc, nr_anon, nr_file, &page_list); + /* + * If we have encountered a high number of dirty pages then they + * are reaching the end of the LRU too quickly and global limits are + * not enough to throttle processes due to the page distribution + * throughout zones. Scale the number of dirty pages that must be + * dirty before being throttled to priority. + */ + if (nr_dirty && nr_dirty >= (nr_taken >> (DEF_PRIORITY-priority))) { + inc_zone_state(zone, NR_VMSCAN_THROTTLED); + wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10); + } + trace_mm_vmscan_lru_shrink_inactive(zone->zone_pgdat->node_id, zone_idx(zone), nr_scanned, nr_reclaimed, diff --git a/mm/vmstat.c b/mm/vmstat.c index fd109f3..59ee17c 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -703,6 +703,7 @@ const char * const vmstat_text[] = { "nr_bounce", "nr_vmscan_write", "nr_vmscan_write_skip", + "nr_vmscan_throttled", "nr_writeback_temp", "nr_isolated_anon", "nr_isolated_file", -- 1.7.3.4 From mgorman@suse.de Wed Jul 13 09:31:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_20 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DEVY8I087197 for ; Wed, 13 Jul 2011 09:31:34 -0500 X-ASG-Debug-ID: 1310567491-672f02570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4FF52143F9AE for ; Wed, 13 Jul 2011 07:31:31 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id jV0LHBT7M1nPzK1X for ; Wed, 13 Jul 2011 07:31:31 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id C2DAB8CC2B; Wed, 13 Jul 2011 16:31:29 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Subject: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Date: Wed, 13 Jul 2011 15:31:22 +0100 Message-Id: <1310567487-15367-1-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310567492 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3329 1.0000 -0.2156 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.22 X-Barracuda-Spam-Status: No, SCORE=-0.22 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68808 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean (Revisting this from a year ago and following on from the thread "Re: [PATCH 03/27] xfs: use write_cache_pages for writeback clustering". Posting an prototype to see if anything obvious is being missed) Testing from the XFS folk revealed that there is still too much I/O from the end of the LRU in kswapd. Previously it was considered acceptable by VM people for a small number of pages to be written back from reclaim with testing generally showing about 0.3% of pages reclaimed were written back (higher if memory was really low). That writing back a small number of pages is ok has been heavily disputed for quite some time and Dave Chinner explained it well; It doesn't have to be a very high number to be a problem. IO is orders of magnitude slower than the CPU time it takes to flush a page, so the cost of making a bad flush decision is very high. And single page writeback from the LRU is almost always a bad flush decision. To complicate matters, filesystems respond very differently to requests from reclaim according to Christoph Hellwig xfs tries to write it back if the requester is kswapd ext4 ignores the request if it's a delayed allocation btrfs ignores the request entirely I think ext3 just writes back the page but I didn't double check. Either way, each filesystem will have different performance characteristics when under memory pressure and there are a lot of dirty pages. The objective of this series to for memory reclaim to play nicely with writeback that is already in progress and throttle reclaimers appropriately when dirty pages are encountered. The assumption is that the flushers will always write pages faster than if reclaim issues the IO. The problem is that reclaim has very little control over how long before a page in a particular zone or container is cleaned. This is a serious problem but as the behaviour of ->writepage is filesystem-dependant, we are already faced with a situation where reclaim has poor control over page cleaning. A secondary goal is to avoid the problem whereby direct reclaim splices two potentially deep call stacks together. Patch 1 disables writeback of filesystem pages from direct reclaim entirely. Anonymous pages are still written Patch 2 disables writeback of filesystem pages from kswapd unless the priority is raised to the point where kswapd is considered to be in trouble. Patch 3 throttles reclaimers if too many dirty pages are being encountered and the zones or backing devices are congested. Patch 4 invalidates dirty pages found at the end of the LRU so they are reclaimed quickly after being written back rather than waiting for a reclaimer to find them Patch 5 tries to prioritise inodes backing dirty pages found at the end of the LRU. This is a prototype only and it's probable that I forgot or omitted some issue brought up over the last year and a bit. I have not thought about how this affects memcg and I have some concerns about patches 4 and 5. Patch 4 may reclaim too many pages as a reclaimer will skip the dirty page, reclaim a clean page and later the dirty page gets reclaimed anyway when writeback completes. I don't think it matters but it's worth thinking about. Patch 5 is potentially a problem because move_expired_inodes() is now walking the full delayed_queue list. Is that a problem? I also have no double checked it's safe to add I_DIRTY_RECLAIM or that the locking is correct. Basically, patch 5 is a quick hack to see if it's worthwhile and may be rendered unnecessary by Wu Fengguang or Jan Kara. I consider this series to be orthogonal to the writeback work going on at the moment so shout if that assumption is in error. I tested this on ext3, ext4, btrfs and xfs using fs_mark and a micro benchmark that does a streaming write to a large mapping (exercises use-once LRU logic). The command line for fs_mark looked something like ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 The machine was booted with "nr_cpus=1 mem=512M" as according to Dave this triggers the worst behaviour. 6 kernels are tested. vanilla 3.0-rc6 nodirectwb-v1r3 patch 1 lesskswapdwb-v1r3p patches 1-2 throttle-v1r10 patches 1-3 immediate-v1r10 patches 1-4 prioinode-v1r10 patches 1-5 During testing, a number of monitors were running to gather information from ftrace in particular. This disrupts the results of course because recording the information generates IO in itself but I'm ignoring that for the moment so the effect of the patches can be seen. I've posted the raw reports for each filesystem at http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext3/sandy/comparison.html http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext4/sandy/comparison.html http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-btrfs/sandy/comparison.html http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/comparison.html As it was Dave and Christoph that brought this back up, here is the XFS report in a bit more detail; FS-Mark fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 rc6-vanilla nodirectwb-v1r3 lesskswapdwb-v1r3 throttle-v1r10 immediate-v1r10 prioinode-v1r10 Files/s min 5.30 ( 0.00%) 5.10 (-3.92%) 5.40 ( 1.85%) 5.70 ( 7.02%) 5.80 ( 8.62%) 5.70 ( 7.02%) Files/s mean 6.93 ( 0.00%) 6.96 ( 0.40%) 7.11 ( 2.53%) 7.52 ( 7.82%) 7.44 ( 6.83%) 7.48 ( 7.38%) Files/s stddev 0.89 ( 0.00%) 0.99 (10.62%) 0.85 (-4.18%) 1.02 (13.23%) 1.08 (18.06%) 1.00 (10.72%) Files/s max 8.10 ( 0.00%) 8.60 ( 5.81%) 8.20 ( 1.22%) 9.50 (14.74%) 9.00 (10.00%) 9.10 (10.99%) Overhead min 6623.00 ( 0.00%) 6417.00 ( 3.21%) 6035.00 ( 9.74%) 6354.00 ( 4.23%) 6213.00 ( 6.60%) 6491.00 ( 2.03%) Overhead mean 29678.24 ( 0.00%) 40053.96 (-25.90%) 18278.56 (62.37%) 16365.20 (81.35%) 11987.40 (147.58%) 15606.36 (90.17%) Overhead stddev 68727.49 ( 0.00%) 116258.18 (-40.88%) 34121.42 (101.42%) 28963.27 (137.29%) 17221.33 (299.08%) 26231.50 (162.00%) Overhead max 339993.00 ( 0.00%) 588147.00 (-42.19%) 148281.00 (129.29%) 140568.00 (141.87%) 77836.00 (336.81%) 124728.00 (172.59%) MMTests Statistics: duration User/Sys Time Running Test (seconds) 34.97 35.31 31.16 30.47 29.85 29.66 Total Elapsed Time (seconds) 567.08 566.84 551.75 525.81 534.91 526.32 Average files per second is increased by a nice percentage albeit just within the standard deviation. Consider the type of test this is, variability was inevitable but will double check without monitoring. The overhead (time spent in non-filesystem-related activities) is reduced a *lot* and is a lot less variable. Time to completion is improved across the board which is always good because it implies that IO was consistently higher which is sortof visible 4 minutes into the test at http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/blockio-comparison-sandy.png http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/blockio-comparison-smooth-sandy.png kswapd CPU usage is also interesting http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/kswapdcpu-comparison-smooth-sandy.png Note how preventing kswapd reclaiming dirty pages pushes up its CPU usage as it scans more pages but the throttle brings it back down and reduced further by patches 4 and 5. MMTests Statistics: vmstat Page Ins 189840 196608 189864 128120 126148 151888 Page Outs 38439897 38420872 38422937 38395008 38367766 38396612 Swap Ins 19468 20555 20024 4933 3799 4588 Swap Outs 10019 10388 10353 4737 3617 4084 Direct pages scanned 4865170 4903030 1359813 408460 101716 199483 Kswapd pages scanned 8202014 8146467 16980235 19428420 14269907 14103872 Kswapd pages reclaimed 4700400 4665093 8205753 9143997 9449722 9358347 Direct pages reclaimed 4864514 4901411 1359368 407711 100520 198323 Kswapd efficiency 57% 57% 48% 47% 66% 66% Kswapd velocity 14463.592 14371.722 30775.233 36949.506 26677.211 26797.142 Direct efficiency 99% 99% 99% 99% 98% 99% Direct velocity 8579.336 8649.760 2464.546 776.821 190.155 379.015 Percentage direct scans 37% 37% 7% 2% 0% 1% Page writes by reclaim 14511 14721 10387 4819 3617 4084 Page writes skipped 0 30 2300502 2774735 0 0 Page reclaim invalidate 0 0 0 0 5155 3509 Page reclaim throttled 0 0 0 65112 190 190 Slabs scanned 16512 17920 18048 17536 16640 17408 Direct inode steals 0 0 0 0 0 0 Kswapd inode steals 5180 5318 5177 5178 5179 5193 Kswapd skipped wait 131 0 4 44 0 0 Compaction stalls 2 2 0 0 5 1 Compaction success 2 2 0 0 2 1 Compaction failures 0 0 0 0 3 0 Compaction pages moved 0 0 0 0 1049 0 Compaction move failure 0 0 0 0 96 0 These stats are based on information from /proc/vmstat "Kswapd efficiency" is the percentage of pages reclaimed to pages scanned. The higher the percentage is the better because a low percentage implies that kswapd is scanning uselessly. As the workload dirties memory heavily and is a small machine, the efficiency starts low at 57% but increases to 66% with all the patches applied. "Kswapd velocity" is the average number of pages scanned per second. The patches increase this as it's no longer getting blocked on page writes so it's expected. Direct reclaim work is significantly reduced going from 37% of all pages scanned to 1% with all patches applied. This implies that processes are getting stalled less. Page writes by reclaim is what is motivating this series. It goes from 14511 pages to 4084 which is a big improvement. We'll see later if these were anonymous or file-backed pages. "Page writes skipped" are dirty pages encountered at the end of the LRU and only exists for patches 2, 3 and 4. It shows that kswapd is encountering very large numbers of dirty pages (debugging showed they weren't under writeback). The number of pages that get invalidated and freed later is a more reasonable number and "page reclaim throttled" shows that throttling is not a major problem. FTrace Reclaim Statistics: vmscan fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 rc6-vanilla nodirectwb-v1r3 lesskswapdwb-v1r3 throttle-v1r10 immediate-v1r10 prioinode-v1r10 Direct reclaims 89145 89785 24921 7546 1954 3747 Direct reclaim pages scanned 4865170 4903030 1359813 408460 101716 199483 Direct reclaim pages reclaimed 4864514 4901411 1359368 407711 100520 198323 Direct reclaim write file async I/O 0 0 0 0 0 0 Direct reclaim write anon async I/O 0 0 0 3 1 0 Direct reclaim write file sync I/O 0 0 0 0 0 0 Direct reclaim write anon sync I/O 0 0 0 0 0 0 Wake kswapd requests 11152 11021 21223 24029 26797 26672 Kswapd wakeups 421 397 761 778 776 742 Kswapd pages scanned 8202014 8146467 16980235 19428420 14269907 14103872 Kswapd pages reclaimed 4700400 4665093 8205753 9143997 9449722 9358347 Kswapd reclaim write file async I/O 4483 4286 0 1 0 0 Kswapd reclaim write anon async I/O 10027 10435 10387 4815 3616 4084 Kswapd reclaim write file sync I/O 0 0 0 0 0 0 Kswapd reclaim write anon sync I/O 0 0 0 0 0 0 Time stalled direct reclaim (seconds) 0.26 0.25 0.08 0.05 0.04 0.08 Time kswapd awake (seconds) 493.26 494.05 430.09 420.52 428.55 428.81 Total pages scanned 13067184 13049497 18340048 19836880 14371623 14303355 Total pages reclaimed 9564914 9566504 9565121 9551708 9550242 9556670 %age total pages scanned/reclaimed 73.20% 73.31% 52.15% 48.15% 66.45% 66.81% %age total pages scanned/written 0.11% 0.11% 0.06% 0.02% 0.03% 0.03% %age file pages scanned/written 0.03% 0.03% 0.00% 0.00% 0.00% 0.00% Percentage Time Spent Direct Reclaim 0.74% 0.70% 0.26% 0.16% 0.13% 0.27% Percentage Time kswapd Awake 86.98% 87.16% 77.95% 79.98% 80.12% 81.47% This is based on information from the vmscan tracepoints introduced the last time this issue came up. Direct reclaim writes were never a problem according to this. kswapd writes of file-backed pages on the other hand went from 4483 to 0 which is nice and part of the objective after all. The page writes of 4084 recorded from /proc/vmstat with all patches applied iwas clearly due to writing anonymous pages as there is a direct correlation there. Time spent in direct reclaim is reduced quite a bit as well as the time kswapd spent awake. FTrace Reclaim Statistics: congestion_wait Direct number congest waited 0 0 0 0 0 0 Direct time congest waited 0ms 0ms 0ms 0ms 0ms 0ms Direct full congest waited 0 0 0 0 0 0 Direct number conditional waited 0 1 0 56 8 0 Direct time conditional waited 0ms 0ms 0ms 0ms 0ms 0ms Direct full conditional waited 0 0 0 0 0 0 KSwapd number congest waited 4 0 1 0 6 0 KSwapd time congest waited 400ms 0ms 100ms 0ms 501ms 0ms KSwapd full congest waited 4 0 1 0 5 0 KSwapd number conditional waited 0 0 0 65056 189 190 KSwapd time conditional waited 0ms 0ms 0ms 1ms 0ms 0ms KSwapd full conditional waited 0 0 0 0 0 0 This is based on some of the writeback tracepoints. It's interesting to note that while kswapd got throttled 190 times with all patches applied, it spent negligible time asleep so probably just called cond_resched(). This implies that neither the zone or the backing device was congested. As there is only once source of IO, this is expected. With multiple processes, this picture might change. MICRO micro-3.0.0 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 rc6-vanilla nodirectwb-v1r3 lesskswapdwb-v1r3 throttle-v1r10 immediate-v1r10 prioinode-v1r10 MMTests Statistics: duration User/Sys Time Running Test (seconds) 6.95 7.2 6.84 6.33 5.97 6.13 Total Elapsed Time (seconds) 56.34 65.04 66.53 63.24 52.48 63.00 This is a test that just writes a mapping. Unfortunately, the time to completion is increased by the series. Again I'll have to run without any monitoring to confirm it's a problem. MMTests Statistics: vmstat Page Ins 46928 50660 48504 42888 42648 43036 Page Outs 4990816 4994987 4987572 4999242 4981324 4990627 Swap Ins 2573 3234 2470 1396 1352 1297 Swap Outs 2316 2578 2360 937 912 873 Direct pages scanned 1834430 2016994 1623675 1843754 1922668 1941916 Kswapd pages scanned 1399007 1272637 1842874 1810867 1425366 1426536 Kswapd pages reclaimed 637708 657418 860512 884531 906608 927206 Direct pages reclaimed 536567 517876 314115 289472 272265 252361 Kswapd efficiency 45% 51% 46% 48% 63% 64% Kswapd velocity 24831.505 19566.990 27699.895 28634.836 27160.175 22643.429 Direct efficiency 29% 25% 19% 15% 14% 12% Direct velocity 32559.993 31011.593 24405.156 29154.870 36636.204 30824.063 Percentage direct scans 56% 61% 46% 50% 57% 57% Page writes by reclaim 2706 2910 2416 969 912 873 Page writes skipped 0 12640 148339 166844 0 0 Page reclaim invalidate 0 0 0 0 12 58 Page reclaim throttled 0 0 0 4788 7 9 Slabs scanned 4096 5248 5120 6656 4480 16768 Direct inode steals 531 1189 348 1166 700 3783 Kswapd inode steals 164 0 349 0 0 9 Kswapd skipped wait 78 35 74 51 14 10 Compaction stalls 0 0 1 0 0 0 Compaction success 0 0 1 0 0 0 Compaction failures 0 0 0 0 0 0 Compaction pages moved 0 0 0 0 0 0 Compaction move failure 0 0 0 0 0 0 Kswapd efficiency up but kswapd was doing less work according to kswapd velocity. Direct reclaim efficiency is worse as well. It's writing fewer pages at least. FTrace Reclaim Statistics: vmscan micro-3.0.0 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 3.0.0-rc6 rc6-vanilla nodirectwb-v1r3 lesskswapdwb-v1r3 throttle-v1r10 immediate-v1r10 prioinode-v1r10 Direct reclaims 9823 9477 5737 5347 5078 4720 Direct reclaim pages scanned 1834430 2016994 1623675 1843754 1922668 1941916 Direct reclaim pages reclaimed 536567 517876 314115 289472 272265 252361 Direct reclaim write file async I/O 0 0 0 0 0 0 Direct reclaim write anon async I/O 0 0 0 0 16 0 Direct reclaim write file sync I/O 0 0 0 0 0 0 Direct reclaim write anon sync I/O 0 0 0 0 0 0 Wake kswapd requests 1636 1692 2177 2403 2707 2757 Kswapd wakeups 28 29 30 34 15 23 Kswapd pages scanned 1399007 1272637 1842874 1810867 1425366 1426536 Kswapd pages reclaimed 637708 657418 860512 884531 906608 927206 Kswapd reclaim write file async I/O 380 332 56 32 0 0 Kswapd reclaim write anon async I/O 2326 2578 2360 937 896 873 Kswapd reclaim write file sync I/O 0 0 0 0 0 0 Kswapd reclaim write anon sync I/O 0 0 0 0 0 0 Time stalled direct reclaim (seconds) 2.06 2.10 1.62 2.65 2.25 1.86 Time kswapd awake (seconds) 49.44 56.39 54.31 55.45 47.00 56.74 Total pages scanned 3233437 3289631 3466549 3654621 3348034 3368452 Total pages reclaimed 1174275 1175294 1174627 1174003 1178873 1179567 %age total pages scanned/reclaimed 36.32% 35.73% 33.88% 32.12% 35.21% 35.02% %age total pages scanned/written 0.08% 0.09% 0.07% 0.03% 0.03% 0.03% %age file pages scanned/written 0.01% 0.01% 0.00% 0.00% 0.00% 0.00% Percentage Time Spent Direct Reclaim 22.86% 22.58% 19.15% 29.51% 27.37% 23.28% Percentage Time kswapd Awake 87.75% 86.70% 81.63% 87.68% 89.56% 90.06% Again, writes of file pages are reduced but kswapd is clearly awake for longer. What is interesting is that the number of pages written without the patches was already quite low. This means there is relatively little room for improvement in this benchmark. FTrace Reclaim Statistics: congestion_wait Generating ftrace report ftrace-3.0.0-rc6-prioinode-v1r10-micro-congestion.report Direct number congest waited 0 0 0 0 0 0 Direct time congest waited 0ms 0ms 0ms 0ms 0ms 0ms Direct full congest waited 0 0 0 0 0 0 Direct number conditional waited 768 793 704 1359 608 674 Direct time conditional waited 0ms 0ms 0ms 0ms 0ms 0ms Direct full conditional waited 0 0 0 0 0 0 KSwapd number congest waited 41 22 58 43 78 92 KSwapd time congest waited 2937ms 2200ms 4543ms 4300ms 7800ms 9200ms KSwapd full congest waited 29 22 45 43 78 92 KSwapd number conditional waited 0 0 0 4284 4 9 KSwapd time conditional waited 0ms 0ms 0ms 0ms 0ms 0ms KSwapd full conditional waited 0 0 0 0 0 0 Some throttling but little time sleep. The objective of the series - reducing writes from reclaim - is met with filesystem writes from reclaim reduced to 0 with reclaim in general doing less work. ext3, ext4 and xfs all showed marked improvements for fs_mark in this configuration. btrfs looked worse but it's within the noise and I'd expect the patches to have little or no impact there due it ignoring ->writepage from reclaim. I'm rerunning the tests without monitors at the moment to verify the performance improvements which will take about 6 hours to complete but so far it looks promising. Comments? fs/fs-writeback.c | 56 ++++++++++++++++++++++++++++++++++++++++++++- include/linux/fs.h | 5 ++- include/linux/mmzone.h | 2 + include/linux/writeback.h | 1 + mm/vmscan.c | 55 +++++++++++++++++++++++++++++++++++++++++-- mm/vmstat.c | 2 + 6 files changed, 115 insertions(+), 6 deletions(-) -- 1.7.3.4 From xfs@tlinx.org Wed Jul 13 09:59:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DExgxY088349 for ; Wed, 13 Jul 2011 09:59:43 -0500 X-ASG-Debug-ID: 1310569181-60a902b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from Ishtar.tlinx.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2A13B69128 for ; Wed, 13 Jul 2011 07:59:41 -0700 (PDT) Received: from Ishtar.tlinx.org (ishtar.tlinx.org [173.164.175.65]) by cuda.sgi.com with ESMTP id ZoOWJU57equnDxMQ for ; Wed, 13 Jul 2011 07:59:41 -0700 (PDT) Received: from [192.168.3.12] (Athenae [192.168.3.12]) by Ishtar.tlinx.org (8.14.4/8.14.4/SuSE Linux 0.8) with ESMTP id p6DExbFI019045 for ; Wed, 13 Jul 2011 07:59:39 -0700 Message-ID: <4E1DB2D9.4060900@tlinx.org> Date: Wed, 13 Jul 2011 07:59:37 -0700 From: "Linda A. Walsh" User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.24) Gecko/20100228 Lightning/0.9 Thunderbird/2.0.0.24 Mnenhy/0.7.6.666 MIME-Version: 1.0 To: xfs-oss X-ASG-Orig-Subj: suse cp copies 'acls' and extended attrs.... Subject: suse cp copies 'acls' and extended attrs.... X-Stationery: 0.5.1 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: ishtar.tlinx.org[173.164.175.65] X-Barracuda-Start-Time: 1310569182 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2213 1.0000 -0.7172 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.72 X-Barracuda-Spam-Status: No, SCORE=-0.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68810 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm not sure if it is in mainline cp (would tend to guess it is likely), but the default cp -a mode will copy all file attributes now, as well, by default. (You can turn it off, but the default for -a(rchive) mode is to copy everything...)... So you can use 'cp' now to copy xfs files around and not lose capabilities, acls or other ext_attrs, as well as rsync.... Just an FYI from someone who just found out recently -- it may be old news...if so, sorry, first I heard of it! From mgorman@suse.de Wed Jul 13 10:31:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DFVbv1089640 for ; Wed, 13 Jul 2011 10:31:37 -0500 X-ASG-Debug-ID: 1310571095-6e5300400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 353231501B78 for ; Wed, 13 Jul 2011 08:31:35 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id hcsB3wFum8hT7kqY for ; Wed, 13 Jul 2011 08:31:35 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 03BF68A95F; Wed, 13 Jul 2011 17:31:33 +0200 (CEST) Date: Wed, 13 Jul 2011 16:31:30 +0100 From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Subject: Re: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Message-ID: <20110713153130.GH7529@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310571096 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68811 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:22PM +0100, Mel Gorman wrote: > > The objective of the series - reducing writes from reclaim - is > met with filesystem writes from reclaim reduced to 0 with reclaim > in general doing less work. ext3, ext4 and xfs all showed marked > improvements for fs_mark in this configuration. btrfs looked worse > but it's within the noise and I'd expect the patches to have little > or no impact there due it ignoring ->writepage from reclaim. > My bad, I accidentally looked at an old report for btrfs based on older patches. In the report posted with all patches applied, the performance of btrfs does look better but as the patches should make no difference, it's still in the noise. -- Mel Gorman SUSE Labs From sandeen@sandeen.net Wed Jul 13 10:48:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DFmmpX090366 for ; Wed, 13 Jul 2011 10:48:48 -0500 X-ASG-Debug-ID: 1310572126-63a503db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 38E1117C156F for ; Wed, 13 Jul 2011 08:48:46 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id tOJlab4yWaDGLBUx for ; Wed, 13 Jul 2011 08:48:46 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id 631124964600; Wed, 13 Jul 2011 10:48:46 -0500 (CDT) Message-ID: <4E1DBE5E.3060308@sandeen.net> Date: Wed, 13 Jul 2011 10:48:46 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: stable@kernel.org, xfs-oss X-ASG-Orig-Subj: [PATCH] xfs [stable only]: restart busy extent search after node removal Subject: [PATCH] xfs [stable only]: restart busy extent search after node removal Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1310572127 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68812 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A user on #xfs reported that a log replay was oopsing in __rb_rotate_left() with a null pointer deref, and provided an xfs_metadump image for reproduction and testing. I traced this down to the fact that in xfs_alloc_busy_insert(), we erased a node with rb_erase() when the new node overlapped, but left the erased node specified as the parent node for the new insertion. So when we try to insert a new node with an erased node as its parent, obviously things go very wrong. Upstream, 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking actually fixed this, but as part of a much larger change. Here's the relevant code from that commit: * We also need to restart the busy extent search from the * tree root, because erasing the node can rearrange the * tree topology. */ rb_erase(&busyp->rb_node, &pag->pagb_tree); busyp->length = 0; return false; We can do essentially the same thing to older codebases by restarting the tree search after the erase. This should apply to .35.y through .39.y, and was tested on .39 with the oopsing replay reproducer. Signed-off-by: Eric Sandeen Reviewed-by: Dave Chinner Reviewed-by: Alex Elder --- Index: linux-2.6/fs/xfs/xfs_alloc.c =================================================================== --- linux-2.6.orig/fs/xfs/xfs_alloc.c +++ linux-2.6/fs/xfs/xfs_alloc.c @@ -2664,6 +2664,12 @@ restart: new->bno + new->length) - min(busyp->bno, new->bno); new->bno = min(busyp->bno, new->bno); + /* + * Start the search over from the tree root, because + * erasing the node can rearrange the tree topology. + */ + spin_unlock(&pag->pagb_lock); + goto restart; } else busyp = NULL; From aelder@sgi.com Wed Jul 13 11:32:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DGW0vU092244 for ; Wed, 13 Jul 2011 11:32:00 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9FA54304051; Wed, 13 Jul 2011 09:31:57 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 13 Jul 2011 11:31:57 -0500 Subject: Re: [PATCH 4/4 v3] XFS TESTS: Fix 252 Failure: Add Generic FS Punch Hole Test 255 From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <1309411441-2491-5-git-send-email-achender@linux.vnet.ibm.com> References: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> <1309411441-2491-5-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 13 Jul 2011 11:31:56 -0500 Message-ID: <1310574716.1998.25.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-06-29 at 22:24 -0700, Allison Henderson wrote: > This patch adds a new test 255 that tests fallocate punch hole, > but is for use by generic filesystems. It is similar to 252, > but uses a weaker fiemap filter that only displays the location > of the hole, and not the extent types. > > Signed-off-by: Allison Henderson I realize Christoph already committed this but I spotted something so I thought I might as well mention it. I haven't tested any of this, so it may be OK after all, but if it's not then the filter_hole_fiemap() function ought to be updated. -Alex . . . > diff --git a/common.punch b/common.punch > index c18f88a..a48b7ae 100644 > --- a/common.punch > +++ b/common.punch > @@ -218,6 +218,23 @@ _filter_fiemap() > _coalesce_extents > } > > +# Filters fiemap output to only print the > +# file offset column and whether or not > +# it is an extent or a hole > +_filter_hole_fiemap() > +{ > + awk --posix ' > + $3 ~ /hole/ { > + print $1, $2, $3; > + next; > + } > + $5 ~ /0x[[:digit:]]+/ { I believe this should be: $5 ~ /0x[[:xdigit:]]+/ { (I.e., hex digits, not just decimals.) > + print $1, $2, "extent"; > + }' | > + _coalesce_extents > +} > + > + > # Prints the md5 checksum of a given file > _md5_checksum() > { . . . From jweiner@redhat.com Wed Jul 13 11:41:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DGf6w5092515 for ; Wed, 13 Jul 2011 11:41:06 -0500 X-ASG-Debug-ID: 1310575264-6b96027c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 345511501DC7 for ; Wed, 13 Jul 2011 09:41:04 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id rQJOkBWsCnxgl6Jw for ; Wed, 13 Jul 2011 09:41:04 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx01.intmail.prod.int.phx2.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6DGej9H018086 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 13 Jul 2011 12:40:45 -0400 Received: from dexter.home.cmpxchg.org (ovpn-113-93.phx2.redhat.com [10.3.113.93]) by int-mx01.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id p6DGeeL3008420 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO); Wed, 13 Jul 2011 12:40:43 -0400 Date: Wed, 13 Jul 2011 18:40:40 +0200 From: Johannes Weiner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: Re: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Message-ID: <20110713164040.GA13972@redhat.com> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-5-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-5-git-send-email-mgorman@suse.de> X-Scanned-By: MIMEDefang 2.67 on 10.5.11.11 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1310575265 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:26PM +0100, Mel Gorman wrote: > When direct reclaim encounters a dirty page, it gets recycled around > the LRU for another cycle. This patch marks the page PageReclaim using > deactivate_page() so that the page gets reclaimed almost immediately > after the page gets cleaned. This is to avoid reclaiming clean pages > that are younger than a dirty page encountered at the end of the LRU > that might have been something like a use-once page. > > Signed-off-by: Mel Gorman > --- > include/linux/mmzone.h | 2 +- > mm/vmscan.c | 10 ++++++++-- > mm/vmstat.c | 2 +- > 3 files changed, 10 insertions(+), 4 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index c4508a2..bea7858 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -100,7 +100,7 @@ enum zone_stat_item { > NR_UNSTABLE_NFS, /* NFS unstable pages */ > NR_BOUNCE, > NR_VMSCAN_WRITE, > - NR_VMSCAN_WRITE_SKIP, > + NR_VMSCAN_INVALIDATE, > NR_VMSCAN_THROTTLED, > NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ > NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 9826086..8e00aee 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -834,8 +834,13 @@ static unsigned long shrink_page_list(struct list_head *page_list, > */ > if (page_is_file_cache(page) && > (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { > - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > - goto keep_locked; > + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); > + > + /* Immediately reclaim when written back */ > + unlock_page(page); > + deactivate_page(page); > + > + goto keep_dirty; > } > > if (references == PAGEREF_RECLAIM_CLEAN) > @@ -956,6 +961,7 @@ keep: > reset_reclaim_mode(sc); > keep_lumpy: > list_add(&page->lru, &ret_pages); > +keep_dirty: > VM_BUG_ON(PageLRU(page) || PageUnevictable(page)); > } I really like the idea behind this patch, but I think all those pages are lost as PageLRU is cleared on isolation and lru_deactivate_fn bails on them in turn. If I'm not mistaken, the reference from the isolation is also leaked. From mgorman@suse.de Wed Jul 13 12:16:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DHG1xa093594 for ; Wed, 13 Jul 2011 12:16:02 -0500 X-ASG-Debug-ID: 1310577359-4624025a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A845617C03E8 for ; Wed, 13 Jul 2011 10:16:00 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id puoqEED3QaWKcJ23 for ; Wed, 13 Jul 2011 10:16:00 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id DD7C78A908; Wed, 13 Jul 2011 19:15:58 +0200 (CEST) Date: Wed, 13 Jul 2011 18:15:53 +0100 From: Mel Gorman To: Johannes Weiner Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: Re: [PATCH 4/5] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Message-ID: <20110713171553.GJ7529@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-5-git-send-email-mgorman@suse.de> <20110713164040.GA13972@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110713164040.GA13972@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310577360 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68818 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 06:40:40PM +0200, Johannes Weiner wrote: > On Wed, Jul 13, 2011 at 03:31:26PM +0100, Mel Gorman wrote: > > When direct reclaim encounters a dirty page, it gets recycled around > > the LRU for another cycle. This patch marks the page PageReclaim using > > deactivate_page() so that the page gets reclaimed almost immediately > > after the page gets cleaned. This is to avoid reclaiming clean pages > > that are younger than a dirty page encountered at the end of the LRU > > that might have been something like a use-once page. > > > > Signed-off-by: Mel Gorman > > --- > > include/linux/mmzone.h | 2 +- > > mm/vmscan.c | 10 ++++++++-- > > mm/vmstat.c | 2 +- > > 3 files changed, 10 insertions(+), 4 deletions(-) > > > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > > index c4508a2..bea7858 100644 > > --- a/include/linux/mmzone.h > > +++ b/include/linux/mmzone.h > > @@ -100,7 +100,7 @@ enum zone_stat_item { > > NR_UNSTABLE_NFS, /* NFS unstable pages */ > > NR_BOUNCE, > > NR_VMSCAN_WRITE, > > - NR_VMSCAN_WRITE_SKIP, > > + NR_VMSCAN_INVALIDATE, > > NR_VMSCAN_THROTTLED, > > NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ > > NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ > > diff --git a/mm/vmscan.c b/mm/vmscan.c > > index 9826086..8e00aee 100644 > > --- a/mm/vmscan.c > > +++ b/mm/vmscan.c > > @@ -834,8 +834,13 @@ static unsigned long shrink_page_list(struct list_head *page_list, > > */ > > if (page_is_file_cache(page) && > > (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { > > - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > - goto keep_locked; > > + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); > > + > > + /* Immediately reclaim when written back */ > > + unlock_page(page); > > + deactivate_page(page); > > + > > + goto keep_dirty; > > } > > > > if (references == PAGEREF_RECLAIM_CLEAN) > > @@ -956,6 +961,7 @@ keep: > > reset_reclaim_mode(sc); > > keep_lumpy: > > list_add(&page->lru, &ret_pages); > > +keep_dirty: > > VM_BUG_ON(PageLRU(page) || PageUnevictable(page)); > > } > > I really like the idea behind this patch, but I think all those pages > are lost as PageLRU is cleared on isolation and lru_deactivate_fn > bails on them in turn. > > If I'm not mistaken, the reference from the isolation is also leaked. I think you're right. This patch was rushed and not thought through properly. The surprise it appeared to work at all. Will rework it. Thanks. -- Mel Gorman SUSE Labs From aelder@oss.sgi.com Wed Jul 13 13:08:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DI8c22095496 for ; Wed, 13 Jul 2011 13:08:38 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6DI8YRU095410; Wed, 13 Jul 2011 13:08:34 -0500 Date: Wed, 13 Jul 2011 13:08:34 -0500 Message-Id: <201107131808.p6DI8YRU095410@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-19006-gd0f9e8f X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: b2ce39740066604288876c752d8170b3b17a21aa X-Git-Newrev: d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated d0f9e8f xfs: remove the dead XFS_DABUF_DEBUG code c84470d xfs: remove leftovers of the old btree tracing code ea15ab3 xfs: remove the dead QUOTADEBUG code 54244fe xfs: remove the unused xfs_buf_delwri_sort function cb669ca xfs: remove wrappers around b_iodone adadbee xfs: remove wrappers around b_fspriv bf9d901 xfs: add a proper transaction pointer to struct xfs_buf 77936d0 xfs: factor out xfs_da_grow_inode_int a230a1d xfs: factor out xfs_dir2_leaf_find_stale a00b774 xfs: cleanup struct xfs_dir2_free 5792664 xfs: reshuffle dir2 headers 2bcf6e9 xfs: start periodic workers later from b2ce39740066604288876c752d8170b3b17a21aa (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221 Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove the dead XFS_DABUF_DEBUG code Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c84470dda7a1165d90f55c2025c4c8ca403d485e Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove leftovers of the old btree tracing code Remove various bits left over from the old kdb-only btree tracing code, but leave the actual trace point stubs in place to ease adding new event based btree tracing. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit ea15ab3cdda1bc6822f572ce9ce5d86f097f9b08 Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove the dead QUOTADEBUG code Remove the dead hash table test rid which has been rotting away under QUOTADEBUG, including some code that was compiled for normal debug builds, but not actually called without QUOTADEBUG, and enable a few cheap debug checks that were hidden under QUOTADEBUG for normal debug builds. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 54244fec67024032cb54eb604b2a36579b5db2d3 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove the unused xfs_buf_delwri_sort function Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit cb669ca5701153a808db6627521cc8aa52fc42d1 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove wrappers around b_iodone Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit adadbeefb34f755a3477da51035eeeec2c1fde38 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove wrappers around b_fspriv Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit bf9d9013a2a559858efb590bf922377be9d6d969 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: add a proper transaction pointer to struct xfs_buf Replace the typeless b_fspriv2 and the ugly macros around it with a properly typed transaction pointer. As a fallout the log buffer state debug checks are also removed. We could have kept them using casts, but as they do not have a real purpose we can as well just remove them. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 77936d0280616d84d1eb0eb38a6f857d2827a434 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: factor out xfs_da_grow_inode_int xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor the meat of those two functions into a new common helper. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a230a1df40864ef68ff6fbd09302f16d2a216ea5 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: factor out xfs_dir2_leaf_find_stale Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a00b7745c6e68ee89a123cd81e1dbc52fb55868e Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: cleanup struct xfs_dir2_free Change the bests array to be a proper variable sized entry. This is done easily as no one relies on the size of the structure. Also change XFS_DIR2_MAX_FREE_BESTS to an inline function while we're at it. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 5792664070c62479b088e4909000582de3686396 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: reshuffle dir2 headers Replace the current mess of dir2 headers with just three that have a clear purpose: - xfs_dir2_format.h for all format definitions, including the inline helpers to access our variable size structures - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code and not needed by anything outside of the directory code. For this purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part of the directory code. - xfs_dir2.h for the public interface to the directory code In addition to the reshuffle I have also update the comments to not only match the new file structure, but also to describe the directory format better. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 2bcf6e970f5a88fa05dced5eeb0326e13d93c4a1 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: start periodic workers later Start the periodic sync workers only after we have finished xfs_mountfs and thus fully set up the filesystem structures. Without this we can call into xfs_qm_sync before the quotainfo strucute is set up if the mount takes unusually long, and probably hit other incomplete states as well. Also clean up the xfs_fs_fill_super error path by using consistent label names, and removing an impossible to reach case. Signed-off-by: Christoph Hellwig Reported-by: Arkadiusz Miskiewicz Reviewed-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 2 - fs/xfs/linux-2.6/xfs_buf.c | 10 +- fs/xfs/linux-2.6/xfs_buf.h | 10 +- fs/xfs/linux-2.6/xfs_super.c | 36 +-- fs/xfs/quota/xfs_dquot.c | 42 +--- fs/xfs/quota/xfs_dquot.h | 6 - fs/xfs/quota/xfs_qm.c | 49 +---- fs/xfs/quota/xfs_qm.h | 6 - fs/xfs/quota/xfs_qm_syscalls.c | 353 ------------------------ fs/xfs/quota/xfs_trans_dquot.c | 13 +- fs/xfs/xfs.h | 1 - fs/xfs/xfs_alloc_btree.c | 75 ----- fs/xfs/xfs_bmap.c | 4 - fs/xfs/xfs_bmap_btree.c | 98 ------- fs/xfs/xfs_btree.c | 1 - fs/xfs/xfs_btree.h | 38 ++-- fs/xfs/xfs_btree_trace.c | 249 ----------------- fs/xfs/xfs_btree_trace.h | 99 ------- fs/xfs/xfs_buf_item.c | 69 ++--- fs/xfs/xfs_da_btree.c | 203 ++++++-------- fs/xfs/xfs_da_btree.h | 13 +- fs/xfs/xfs_dir2.c | 134 ++-------- fs/xfs/xfs_dir2.h | 54 +---- fs/xfs/xfs_dir2_block.c | 7 +- fs/xfs/xfs_dir2_block.h | 93 ------- fs/xfs/xfs_dir2_data.c | 7 +- fs/xfs/xfs_dir2_data.h | 182 ------------ fs/xfs/xfs_dir2_format.h | 597 ++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_dir2_leaf.c | 91 +++---- fs/xfs/xfs_dir2_leaf.h | 281 ------------------- fs/xfs/xfs_dir2_node.c | 16 +- fs/xfs/xfs_dir2_node.h | 100 ------- fs/xfs/xfs_dir2_priv.h | 135 +++++++++ fs/xfs/xfs_dir2_sf.c | 8 +- fs/xfs/xfs_dir2_sf.h | 151 ---------- fs/xfs/xfs_ialloc_btree.c | 75 ----- fs/xfs/xfs_iget.c | 1 - fs/xfs/xfs_inode.c | 9 +- fs/xfs/xfs_inode_item.c | 4 +- fs/xfs/xfs_log.c | 30 +-- fs/xfs/xfs_log_recover.c | 8 +- fs/xfs/xfs_mount.c | 4 - fs/xfs/xfs_trans_buf.c | 114 ++++----- 43 files changed, 1032 insertions(+), 2446 deletions(-) delete mode 100644 fs/xfs/xfs_btree_trace.c delete mode 100644 fs/xfs/xfs_btree_trace.h delete mode 100644 fs/xfs/xfs_dir2_block.h delete mode 100644 fs/xfs/xfs_dir2_data.h create mode 100644 fs/xfs/xfs_dir2_format.h delete mode 100644 fs/xfs/xfs_dir2_leaf.h delete mode 100644 fs/xfs/xfs_dir2_node.h create mode 100644 fs/xfs/xfs_dir2_priv.h delete mode 100644 fs/xfs/xfs_dir2_sf.h hooks/post-receive -- XFS development tree From aelder@sgi.com Wed Jul 13 13:26:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_72 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DIQ9ST096073 for ; Wed, 13 Jul 2011 13:26:09 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id B2E4B8F8087; Wed, 13 Jul 2011 11:26:05 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 13 Jul 2011 13:26:05 -0500 Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files From: Alex Elder Reply-To: To: Christoph Hellwig CC: , In-Reply-To: <20110713121320.GA28126@infradead.org> References: <20110713121320.GA28126@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 13 Jul 2011 13:26:04 -0500 Message-ID: <1310581564.1998.38.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-13 at 08:13 -0400, Christoph Hellwig wrote: > On Fri, Jul 01, 2011 at 01:52:43PM -0700, Akshay Lal wrote: > > Current the Makefile only builds the .c files and installs > > them in the $INSTALL path. However, the ltp directory contains a shell script, > > which doen't get copied over (installed) when a "make install"is invoked. > > > > This behaviour causes test 080 to fail since it requires rwtest.sh to be > > present in the ltp/ directory. > > > > Tested: Updated the Makefile and ran a static build script & test > > 080. > > Thanks, applied. (after fixing up mailer induced whitespace issues) I see that test 80 is not part of the "auto" group. Anyone know why not? I'm not even sure what it does; it may just be unnecessary because it duplicates what other tests do. But it's really quick (under 10 seconds even without speedy hardware) so I don't see any harm to adding it to "auto" as well as "quick". Any thoughts? -Alex From dmsteffens@edgewood.edu Wed Jul 13 13:43:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.5 required=5.0 tests=BAYES_80,SUBJ_ALL_CAPS autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DIhsC2096598 for ; Wed, 13 Jul 2011 13:43:54 -0500 X-ASG-Debug-ID: 1310582632-4e5703320000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from 221-email.edgewood.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91A4E6A3BF; Wed, 13 Jul 2011 11:43:52 -0700 (PDT) Received: from 221-email.edgewood.edu (221-email.edgewood.edu [139.135.2.30]) by cuda.sgi.com with ESMTP id XAN5EPGQqIBOnE2T; Wed, 13 Jul 2011 11:43:52 -0700 (PDT) Received: from 224-email.edgewood.edu (139.135.10.25) by 221-email.edgewood.edu (139.135.2.30) with Microsoft SMTP Server (TLS) id 8.2.255.0; Wed, 13 Jul 2011 13:43:45 -0500 Received: from 226-email.edgewood.edu ([139.135.12.26]) by 224-email.edgewood.edu ([139.135.10.25]) with mapi; Wed, 13 Jul 2011 13:43:45 -0500 From: Donna Steffens Date: Wed, 13 Jul 2011 13:43:45 -0500 X-ASG-Orig-Subj: MAIL ABUSE #332909778 Subject: MAIL ABUSE #332909778 Thread-Topic: MAIL ABUSE #332909778 Thread-Index: AQHMQYzLiFHmeMpOnUGCVJmhVK3RwQ== Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 To: Undisclosed recipients:; X-Barracuda-Connect: 221-email.edgewood.edu[139.135.2.30] X-Barracuda-Start-Time: 1310582633 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7529 1.0000 1.7976 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.80 X-Barracuda-Spam-Status: No, SCORE=1.80 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68824 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dear Mail User, This message is from IT SERVICE (HELPDESK CENTER) CLICK HERE and follow the instruction carefully Thanks System Administrator center. From greg.freemyer@gmail.com Wed Jul 13 15:28:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.5 required=5.0 tests=BAYES_05,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DKSWwk099877 for ; Wed, 13 Jul 2011 15:28:32 -0500 X-ASG-Debug-ID: 1310588910-177302a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-bw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3AA956A9DE for ; Wed, 13 Jul 2011 13:28:30 -0700 (PDT) Received: from mail-bw0-f53.google.com (mail-bw0-f53.google.com [209.85.214.53]) by cuda.sgi.com with ESMTP id 3HExMzf4DEzZYzdm for ; Wed, 13 Jul 2011 13:28:30 -0700 (PDT) Received: by bwg12 with SMTP id 12so5662049bwg.26 for ; Wed, 13 Jul 2011 13:28:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:from:date:message-id:subject:to:content-type :content-transfer-encoding; bh=Ts7fO6+GmyBbmAW07Z6nGWBDSyaZDttOBOwmLb8oaRo=; b=OO9sF1rpoWNtKKgPunexs3LrTl7399HvaDyzGR5z5fUne+bPeJYd+65zxCAQHPqL2v 13XkpWCfsR+mJypJLuWg0uk+2nuMC9cE+tWpUTW8FHUCjdyq/7Trg6WuD0agWdE8fAKy AzOPhQTI6AhTLtADgFzGUEG5kB9GdITDX1S5I= Received: by 10.204.41.16 with SMTP id m16mr641401bke.151.1310588910148; Wed, 13 Jul 2011 13:28:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.39.194 with HTTP; Wed, 13 Jul 2011 13:28:00 -0700 (PDT) From: Greg Freemyer Date: Wed, 13 Jul 2011 16:28:00 -0400 Message-ID: X-ASG-Orig-Subj: Trying xfstest 075 and 112, both are failing Subject: Trying xfstest 075 and 112, both are failing To: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-bw0-f53.google.com[209.85.214.53] X-Barracuda-Start-Time: 1310588911 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5007 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.75 X-Barracuda-Spam-Status: No, SCORE=0.75 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68832 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean All, I'm trying to get xfstests running in my setup for the first time in years. I've trying with a btrfs test partition. ./check mostly runs, but 3 tests are failing: 075, 112, and 127 075 and 112 look like very basic errors in the 075.out info. Makes me wonder if they work for anyone with a current git pull. =3D=3D=3D=3D example failure of test 075 # ./check 075 FSTYP -- btrfs PLATFORM -- Linux/x86_64 tiger3-64bit 2.6.39.2-36-default MKFS_OPTIONS -- /dev/sda1 MOUNT_OPTIONS -- /dev/sda1 /xfstests_mnt_scratch 075 11s ... [failed, exit status 1] - output mismatch (see 075.out.bad) --- 075.out 2011-06-30 18:41:17.000000000 -0400 +++ 075.out.bad 2011-07-13 16:25:55.000000000 -0400 @@ -4,15 +4,4 @@ ----------------------------------------------- fsx.0 : -d -N numops -S 0 ----------------------------------------------- - ------------------------------------------------ -fsx.1 : -d -N numops -S 0 -x ------------------------------------------------ - ------------------------------------------------ -fsx.2 : -d -N numops -l filelen -S 0 ------------------------------------------------ - ------------------------------------------------ -fsx.3 : -d -N numops -l filelen -S 0 -x ------------------------------------------------ + fsx (-d -N 1000 -S 0) failed, 0 - compare 075.0.{good,bad,fsxlog} Ran: 075 Failures: 075 Failed 1 of 1 tests =3D=3D=3D (by chance, I also documented what I was doing in the openSUSE wiki, so you can see the exact steps at; http://en.opensuse.org/SDB:XFStests) Thanks for any feedback Greg --=20 Greg Freemyer Head of EDD Tape Extraction and Processing team Litigation Triage Solutions Specialist http://www.linkedin.com/in/gregfreemyer CNN/TruTV Aired Forensic Imaging Demo - =A0=A0 http://insession.blogs.cnn.com/2010/03/23/how-computer-evidence-gets= -retrieved/ The Norcross Group The Intersection of Evidence & Technology http://www.norcrossgroup.com From aelder@sgi.com Wed Jul 13 15:28:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_53, J_CHICKENPOX_63,J_CHICKENPOX_71,J_CHICKENPOX_73,J_CHICKENPOX_91, J_CHICKENPOX_93 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DKSqPt099905 for ; Wed, 13 Jul 2011 15:28:52 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 0C5E88F8035 for ; Wed, 13 Jul 2011 13:28:49 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6DKSmeR018319 for ; Wed, 13 Jul 2011 15:28:48 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6DKSm8G018318 for xfs@oss.sgi.com; Wed, 13 Jul 2011 15:28:48 -0500 From: Alex Elder Message-Id: <201107132028.p6DKSm8G018318@stout.americas.sgi.com> Date: Wed, 13 Jul 2011 15:28:48 -0500 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: update test 250 and its golden output User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Test 250 actually runs now that it has golden output defined. The output the test produces doesn't match the golden output, however. The main reason seems to be a oversight in the test--the stderr output of mkfs wasn't being ignored as it should be (likely for debugging). Remove the comment character so the stderr does get ignored. Doing this still leaves some other output, but since it's filtered there's no reason to leave it out of the golden output. So add the expected result of filtering into the golden output file. Finally, this test--unlike almost all of the others--specifies the value of its "tmp" variable as a relative rather than absolute path. I'm sure that works in some places, but it produces errors for me. Follow the "tmp=/tmp/$$" convention used elsewhere. Signed-off-by: Alex Elder --- 250 | 4 ++-- 250.out | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) Index: b/250 =================================================================== --- a/250 +++ b/250 @@ -27,7 +27,7 @@ seq=`basename $0` echo "QA output created by $seq" here=`pwd` -tmp=tmp/$$ +tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 @@ -76,7 +76,7 @@ _test_loop() echo "*** mkfs loop file (size=$size)" $MKFS_XFS_PROG -d $dparam \ - | _filter_mkfs # 2>/dev/null + | _filter_mkfs 2>/dev/null echo "*** mount loop filesystem" mount -t xfs -o loop $LOOP_DEV $LOOP_MNT Index: b/250.out =================================================================== --- a/250.out +++ b/250.out @@ -1,6 +1,12 @@ QA output created by 250 *** create loop mount point *** mkfs loop file (size=50g) +meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks +data = bsize=XXX blocks=XXX, imaxpct=PCT + = sunit=XXX swidth=XXX, unwritten=X +naming =VERN bsize=XXX +log =LDEV bsize=XXX blocks=XXX +realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX *** mount loop filesystem *** preallocate large file *** unmount loop filesystem From jack@suse.cz Wed Jul 13 16:39:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DLdsaP101954 for ; Wed, 13 Jul 2011 16:39:55 -0500 X-ASG-Debug-ID: 1310593193-786001320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ECDBE6ACD8 for ; Wed, 13 Jul 2011 14:39:53 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id Qj27KBmPq8qSoJYp for ; Wed, 13 Jul 2011 14:39:53 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id D7D848A908; Wed, 13 Jul 2011 23:39:49 +0200 (CEST) Received: by quack.suse.cz (Postfix, from userid 1000) id EDE4A20540; Wed, 13 Jul 2011 23:39:47 +0200 (CEST) Date: Wed, 13 Jul 2011 23:39:47 +0200 From: Jan Kara To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Message-ID: <20110713213947.GC21787@quack.suse.cz> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-6-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-6-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310593193 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68836 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed 13-07-11 15:31:27, Mel Gorman wrote: > It is preferable that no dirty pages are dispatched from the page > reclaim path. If reclaim is encountering dirty pages, it implies that > either reclaim is getting ahead of writeback or use-once logic has > prioritise pages for reclaiming that are young relative to when the > inode was dirtied. > > When dirty pages are encounted on the LRU, this patch marks the inodes > I_DIRTY_RECLAIM and wakes the background flusher. When the background > flusher runs, it moves such inodes immediately to the dispatch queue > regardless of inode age. There is no guarantee that pages reclaim > cares about will be cleaned first but the expectation is that the > flusher threads will clean the page quicker than if reclaim tried to > clean a single page. Hmm, I was looking through your numbers but I didn't see any significant difference this patch would make. Do you? I was thinking about the problem and actually doing IO from kswapd would be a small problem if we submitted more than just a single page. Just to give you idea - time to write a single page on plain SATA drive might be like 4 ms. Time to write sequential 4 MB of data is like 80 ms (I just made up these numbers but the orders should be right). So to write 1000 times more data you just need like 20 times longer. That's a factor of 50 in IO efficiency. So when reclaim/kswapd submits a single page IO once every couple of miliseconds, your IO throughput just went close to zero... BTW: I just checked your numbers in fsmark test with vanilla kernel. You wrote like 14500 pages from reclaim in 567 seconds. That is about one page per 39 ms. That is going to have noticeable impact on IO throughput (not with XFS because it plays tricks with writing more than asked but with ext2 or ext3 you would see it I guess). So when kswapd sees high percentage of dirty pages at the end of LRU, it could call something like fdatawrite_range() for the range of 4 MB (provided the file is large enough) containing that page and IO thoughput would not be hit that much and you will get reasonably bounded time when the page gets cleaned... If you wanted to be clever, you could possibly be more sophisticated in picking the file and range to write so that you get rid of the most pages at the end of LRU but I'm not sure it's worth the CPU cycles. Does this sound reasonable to you? Honza -- Jan Kara SUSE Labs, CR From achender@linux.vnet.ibm.com Wed Jul 13 17:25:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DMPtEe103090 for ; Wed, 13 Jul 2011 17:25:56 -0500 X-ASG-Debug-ID: 1310595954-240802a40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e4.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5AC0615F3CEB for ; Wed, 13 Jul 2011 15:25:54 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by cuda.sgi.com with ESMTP id YuYrURECjpkHXZkp for ; Wed, 13 Jul 2011 15:25:54 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6DM3gbm023145 for ; Wed, 13 Jul 2011 18:03:42 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6DMPoY4189884 for ; Wed, 13 Jul 2011 18:25:50 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6DMPnPT013827 for ; Wed, 13 Jul 2011 19:25:49 -0300 Received: from lc4eb0185863151.ibm.com (sig-9-65-152-10.mts.ibm.com [9.65.152.10]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6DMPluT013748; Wed, 13 Jul 2011 19:25:48 -0300 Message-ID: <4E1E1B6A.3000808@linux.vnet.ibm.com> Date: Wed, 13 Jul 2011 15:25:46 -0700 From: Allison Henderson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: Christoph Hellwig CC: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/4 v3] XFS TESTS: Fix 252 failure Subject: Re: [PATCH 0/4 v3] XFS TESTS: Fix 252 failure References: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> <20110713123824.GA15139@infradead.org> In-Reply-To: <20110713123824.GA15139@infradead.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e4.ny.us.ibm.com[32.97.182.144] X-Barracuda-Start-Time: 1310595955 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/13/2011 05:38 AM, Christoph Hellwig wrote: > I have applied the series. I had to merge patches 1 to 3 into a single > commit to keep thing bisectable, though. > Thx Christoph, I will be sure to keep patches bisectable from now on. :) Allison From achender@linux.vnet.ibm.com Wed Jul 13 17:42:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DMgbEU103481 for ; Wed, 13 Jul 2011 17:42:37 -0500 X-ASG-Debug-ID: 1310596753-784d035a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e5.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 862816B02E for ; Wed, 13 Jul 2011 15:39:13 -0700 (PDT) Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.145]) by cuda.sgi.com with ESMTP id J0Wsou1efJxwEDiA for ; Wed, 13 Jul 2011 15:39:13 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e5.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6DMATxR011564 for ; Wed, 13 Jul 2011 18:10:29 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6DMbtYJ1732810 for ; Wed, 13 Jul 2011 18:37:55 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6DMbtjP023580 for ; Wed, 13 Jul 2011 19:37:55 -0300 Received: from lc4eb0185863151.ibm.com (sig-9-65-152-10.mts.ibm.com [9.65.152.10]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6DMbsOQ023538; Wed, 13 Jul 2011 19:37:54 -0300 Message-ID: <4E1E1E41.30106@linux.vnet.ibm.com> Date: Wed, 13 Jul 2011 15:37:53 -0700 From: Allison Henderson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: aelder@sgi.com CC: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/4 v3] XFS TESTS: Fix 252 Failure: Add Generic FS Punch Hole Test 255 Subject: Re: [PATCH 4/4 v3] XFS TESTS: Fix 252 Failure: Add Generic FS Punch Hole Test 255 References: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> <1309411441-2491-5-git-send-email-achender@linux.vnet.ibm.com> <1310574716.1998.25.camel@doink> In-Reply-To: <1310574716.1998.25.camel@doink> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e5.ny.us.ibm.com[32.97.182.145] X-Barracuda-Start-Time: 1310596753 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/13/2011 09:31 AM, Alex Elder wrote: > On Wed, 2011-06-29 at 22:24 -0700, Allison Henderson wrote: >> This patch adds a new test 255 that tests fallocate punch hole, >> but is for use by generic filesystems. It is similar to 252, >> but uses a weaker fiemap filter that only displays the location >> of the hole, and not the extent types. >> >> Signed-off-by: Allison Henderson > > I realize Christoph already committed this but I > spotted something so I thought I might as well > mention it. I haven't tested any of this, so > it may be OK after all, but if it's not then > the filter_hole_fiemap() function ought to be > updated. > > -Alex > > . . . > >> diff --git a/common.punch b/common.punch >> index c18f88a..a48b7ae 100644 >> --- a/common.punch >> +++ b/common.punch >> @@ -218,6 +218,23 @@ _filter_fiemap() >> _coalesce_extents >> } >> >> +# Filters fiemap output to only print the >> +# file offset column and whether or not >> +# it is an extent or a hole >> +_filter_hole_fiemap() >> +{ >> + awk --posix ' >> + $3 ~ /hole/ { >> + print $1, $2, $3; >> + next; >> + } >> + $5 ~ /0x[[:digit:]]+/ { > > I believe this should be: > $5 ~ /0x[[:xdigit:]]+/ { > > (I.e., hex digits, not just decimals.) > Hi Alex, I think you are right. The extent flags are printed in hex, so it should be xdigit. The existing _filter_fiemap routine that I modeled this code from is also only parsing decimal digits. Even though the tests are not showing any problems right now, it should probably be fixed. Should I submit a patch to correct it? Allison Henderson >> + print $1, $2, "extent"; >> + }' | >> + _coalesce_extents >> +} >> + >> + >> # Prints the md5 checksum of a given file >> _md5_checksum() >> { > > . . . > From david@fromorbit.com Wed Jul 13 18:35:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DNZ03G105250 for ; Wed, 13 Jul 2011 18:35:00 -0500 X-ASG-Debug-ID: 1310600098-6b8b00640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8BB811D854FF for ; Wed, 13 Jul 2011 16:34:58 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id jvt0lQJz7ZSZGJSj for ; Wed, 13 Jul 2011 16:34:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCAJsqHk55LCkBgWdsb2JhbABTp0EVAQEWJiXLQg6GLASjQw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 09:04:56 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh8x7-0007sb-EZ; Thu, 14 Jul 2011 09:34:49 +1000 Date: Thu, 14 Jul 2011 09:34:49 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110713233449.GU23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-2-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310600099 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68843 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:23PM +0100, Mel Gorman wrote: > From: Mel Gorman > > When kswapd is failing to keep zones above the min watermark, a process > will enter direct reclaim in the same manner kswapd does. If a dirty > page is encountered during the scan, this page is written to backing > storage using mapping->writepage. > > This causes two problems. First, it can result in very deep call > stacks, particularly if the target storage or filesystem are complex. > Some filesystems ignore write requests from direct reclaim as a result. > The second is that a single-page flush is inefficient in terms of IO. > While there is an expectation that the elevator will merge requests, > this does not always happen. Quoting Christoph Hellwig; > > The elevator has a relatively small window it can operate on, > and can never fix up a bad large scale writeback pattern. > > This patch prevents direct reclaim writing back filesystem pages by > checking if current is kswapd. Anonymous pages are still written to > swap as there is not the equivalent of a flusher thread for anonymos > pages. If the dirty pages cannot be written back, they are placed > back on the LRU lists. > > Signed-off-by: Mel Gorman Ok, so that makes the .writepage checks in ext4, xfs and btrfs for this condition redundant. In effect the patch should be a no-op for those filesystems. Can you also remove the checks in the filesystems? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 18:37:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DNbm1V105340 for ; Wed, 13 Jul 2011 18:37:48 -0500 X-ASG-Debug-ID: 1310600265-58e2010a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DAC836B328 for ; Wed, 13 Jul 2011 16:37:45 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id HHCU2VgQ04B4bCU9 for ; Wed, 13 Jul 2011 16:37:45 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCAJsqHk55LCkBgWdsb2JhbABTp0EVAQEWJiXLQg6GLASjQw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 09:07:44 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh8zv-0007t8-9M; Thu, 14 Jul 2011 09:37:43 +1000 Date: Thu, 14 Jul 2011 09:37:43 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Message-ID: <20110713233743.GV23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-3-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-3-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310600266 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0179 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68843 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:24PM +0100, Mel Gorman wrote: > It is preferable that no dirty pages are dispatched for cleaning from > the page reclaim path. At normal priorities, this patch prevents kswapd > writing pages. > > However, page reclaim does have a requirement that pages be freed > in a particular zone. If it is failing to make sufficient progress > (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority > is raised to scan more pages. A priority of DEF_PRIORITY - 3 is > considered to tbe the point where kswapd is getting into trouble > reclaiming pages. If this priority is reached, kswapd will dispatch > pages for writing. > > Signed-off-by: Mel Gorman Seems reasonable, but btrfs still will ignore this writeback from kswapd, and it doesn't fall over. Given that data point, I'd like to see the results when you stop kswapd from doing writeback altogether as well. Can you try removing it altogether and seeing what that does to your test results? i.e if (page_is_file_cache(page)) { inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); goto keep_locked; } Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 18:42:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DNg0Bk105452 for ; Wed, 13 Jul 2011 18:42:00 -0500 X-ASG-Debug-ID: 1310600517-71d0009e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5C35F1D8556F for ; Wed, 13 Jul 2011 16:41:58 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id NhasqgCdyKGOaMMU for ; Wed, 13 Jul 2011 16:41:58 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCAJsqHk55LCkBgWdsb2JhbABTp0EVAQEWJiXLQg6DJ4MFBKND Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 09:11:56 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh93u-0007th-Tc; Thu, 14 Jul 2011 09:41:50 +1000 Date: Thu, 14 Jul 2011 09:41:50 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 3/5] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Subject: Re: [PATCH 3/5] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Message-ID: <20110713234150.GW23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-4-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-4-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310600519 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0039 1.0000 -1.9952 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68843 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:25PM +0100, Mel Gorman wrote: > Workloads that are allocating frequently and writing files place a > large number of dirty pages on the LRU. With use-once logic, it is > possible for them to reach the end of the LRU quickly requiring the > reclaimer to scan more to find clean pages. Ordinarily, processes that > are dirtying memory will get throttled by dirty balancing but this > is a global heuristic and does not take into account that LRUs are > maintained on a per-zone basis. This can lead to a situation whereby > reclaim is scanning heavily, skipping over a large number of pages > under writeback and recycling them around the LRU consuming CPU. > > This patch checks how many of the number of pages isolated from the > LRU were dirty. If a percentage of them are dirty, the process will be > throttled if a blocking device is congested or the zone being scanned > is marked congested. The percentage that must be dirty depends on > the priority. At default priority, all of them must be dirty. At > DEF_PRIORITY-1, 50% of them must be dirty, DEF_PRIORITY-2, 25% > etc. i.e. as pressure increases the greater the likelihood the process > will get throttled to allow the flusher threads to make some progress. It still doesn't take into account how many pages under writeback were skipped. If there are lots of pages that are under writeback, I think we still want to throttle to give IO a chance to complete and clean those pages before scanning again.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 18:56:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6DNuBG6106014 for ; Wed, 13 Jul 2011 18:56:11 -0500 X-ASG-Debug-ID: 1310601369-758800d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4A32C1D854D0 for ; Wed, 13 Jul 2011 16:56:09 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id vxReltsDAbBqGiSe for ; Wed, 13 Jul 2011 16:56:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCABwuHk55LCkBgWdsb2JhbABTp0EVAQEWJiXLXg6GLASjQw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 09:26:08 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh9Hi-0007uk-LU; Thu, 14 Jul 2011 09:56:06 +1000 Date: Thu, 14 Jul 2011 09:56:06 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Message-ID: <20110713235606.GX23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-6-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-6-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310601370 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68845 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:27PM +0100, Mel Gorman wrote: > It is preferable that no dirty pages are dispatched from the page > reclaim path. If reclaim is encountering dirty pages, it implies that > either reclaim is getting ahead of writeback or use-once logic has > prioritise pages for reclaiming that are young relative to when the > inode was dirtied. > > When dirty pages are encounted on the LRU, this patch marks the inodes > I_DIRTY_RECLAIM and wakes the background flusher. When the background > flusher runs, it moves such inodes immediately to the dispatch queue > regardless of inode age. There is no guarantee that pages reclaim > cares about will be cleaned first but the expectation is that the > flusher threads will clean the page quicker than if reclaim tried to > clean a single page. > > Signed-off-by: Mel Gorman > --- > fs/fs-writeback.c | 56 ++++++++++++++++++++++++++++++++++++++++++++- > include/linux/fs.h | 5 ++- > include/linux/writeback.h | 1 + > mm/vmscan.c | 16 ++++++++++++- > 4 files changed, 74 insertions(+), 4 deletions(-) > > diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c > index 0f015a0..1201052 100644 > --- a/fs/fs-writeback.c > +++ b/fs/fs-writeback.c > @@ -257,9 +257,23 @@ static void move_expired_inodes(struct list_head *delaying_queue, > LIST_HEAD(tmp); > struct list_head *pos, *node; > struct super_block *sb = NULL; > - struct inode *inode; > + struct inode *inode, *tinode; > int do_sb_sort = 0; > > + /* Move inodes reclaim found at end of LRU to dispatch queue */ > + list_for_each_entry_safe(inode, tinode, delaying_queue, i_wb_list) { > + /* Move any inode found at end of LRU to dispatch queue */ > + if (inode->i_state & I_DIRTY_RECLAIM) { > + inode->i_state &= ~I_DIRTY_RECLAIM; > + list_move(&inode->i_wb_list, &tmp); > + > + if (sb && sb != inode->i_sb) > + do_sb_sort = 1; > + sb = inode->i_sb; > + } > + } This is not a good idea. move_expired_inodes() already sucks a large amount of CPU when there are lots of dirty inodes on the list (think hundreds of thousands), and that is when the traversal terminates at *older_than_this. It's not uncommon in my testing to see this one function consume 30-35% of the bdi-flusher thread CPU usage in such conditions. By adding an entire list traversal in addition to the aging traversal, this is going significantly increase the CPU overhead of the function and hence could significantly increase bdi->wb_list_lock contention and decrease writeback throughput. > + > + sb = NULL; > while (!list_empty(delaying_queue)) { > inode = wb_inode(delaying_queue->prev); > if (older_than_this && > @@ -968,6 +982,46 @@ void wakeup_flusher_threads(long nr_pages) > rcu_read_unlock(); > } > > +/* > + * Similar to wakeup_flusher_threads except prioritise inodes contained > + * in the page_list regardless of age > + */ > +void wakeup_flusher_threads_pages(long nr_pages, struct list_head *page_list) > +{ > + struct page *page; > + struct address_space *mapping; > + struct inode *inode; > + > + list_for_each_entry(page, page_list, lru) { > + if (!PageDirty(page)) > + continue; > + > + if (PageSwapBacked(page)) > + continue; > + > + lock_page(page); > + mapping = page_mapping(page); > + if (!mapping) > + goto unlock; > + > + /* > + * Test outside the lock to see as if it is already set. Inode > + * should be pinned by the lock_page > + */ > + inode = page->mapping->host; > + if (inode->i_state & I_DIRTY_RECLAIM) > + goto unlock; > + > + spin_lock(&inode->i_lock); > + inode->i_state |= I_DIRTY_RECLAIM; > + spin_unlock(&inode->i_lock); Micro optimisations like this are unnecessary - the inode->i_lock is not contended. As it is, this code won't really work as you think it might. There's no guarantee a dirty inode is on the dirty - it might have already been expired, and it might even currently be under writeback. In that case, if it is still dirty it goes to the b_more_io list and writeback bandwidth is shared between all the other dirty inodes and completely ignores this flag... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 19:09:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E09naP106600 for ; Wed, 13 Jul 2011 19:09:49 -0500 X-ASG-Debug-ID: 1310602187-5d72019f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D285F65528 for ; Wed, 13 Jul 2011 17:09:48 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id SWypIicgQmdl83Wo for ; Wed, 13 Jul 2011 17:09:48 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCALcxHk55LCkBgWdsb2JhbABTp0EVAQEWJiWIesI+DoYsBKND Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 09:39:46 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh9Uu-0007wC-O8; Thu, 14 Jul 2011 10:09:44 +1000 Date: Thu, 14 Jul 2011 10:09:44 +1000 From: Dave Chinner To: Jan Kara Cc: Mel Gorman , Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Message-ID: <20110714000944.GY23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-6-git-send-email-mgorman@suse.de> <20110713213947.GC21787@quack.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110713213947.GC21787@quack.suse.cz> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310602188 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0188 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68845 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 11:39:47PM +0200, Jan Kara wrote: > On Wed 13-07-11 15:31:27, Mel Gorman wrote: > > It is preferable that no dirty pages are dispatched from the page > > reclaim path. If reclaim is encountering dirty pages, it implies that > > either reclaim is getting ahead of writeback or use-once logic has > > prioritise pages for reclaiming that are young relative to when the > > inode was dirtied. > > > > When dirty pages are encounted on the LRU, this patch marks the inodes > > I_DIRTY_RECLAIM and wakes the background flusher. When the background > > flusher runs, it moves such inodes immediately to the dispatch queue > > regardless of inode age. There is no guarantee that pages reclaim > > cares about will be cleaned first but the expectation is that the > > flusher threads will clean the page quicker than if reclaim tried to > > clean a single page. > Hmm, I was looking through your numbers but I didn't see any significant > difference this patch would make. Do you? > > I was thinking about the problem and actually doing IO from kswapd would be > a small problem if we submitted more than just a single page. Just to give > you idea - time to write a single page on plain SATA drive might be like 4 > ms. Time to write sequential 4 MB of data is like 80 ms (I just made up > these numbers but the orders should be right). I'm not so concerned about single drives - the numbers look far worse when you have a high throughput filesystem. For arguments sake, lets call that 1GB/s (even though I know of plenty of 10+GB/s XFS filesystems out there). That gives you 4ms for a 4k IO, and 4MB of data in 4ms seek + 4ms data transfer time, for 8ms total IO time. > So to write 1000 times more > data you just need like 20 times longer. That's a factor of 50 in IO > efficiency. In the case I tend to care about, it's more like factor of 1000 in IO efficiency - 3 orders of magnitude or greater difference in performance. > So when reclaim/kswapd submits a single page IO once every > couple of miliseconds, your IO throughput just went close to zero... > BTW: I just checked your numbers in fsmark test with vanilla kernel. You > wrote like 14500 pages from reclaim in 567 seconds. That is about one page > per 39 ms. That is going to have noticeable impact on IO throughput (not > with XFS because it plays tricks with writing more than asked but with ext2 > or ext3 you would see it I guess). > > So when kswapd sees high percentage of dirty pages at the end of LRU, it > could call something like fdatawrite_range() for the range of 4 MB > (provided the file is large enough) containing that page and IO thoughput > would not be hit that much and you will get reasonably bounded time when > the page gets cleaned... If you wanted to be clever, you could possibly be > more sophisticated in picking the file and range to write so that you get > rid of the most pages at the end of LRU but I'm not sure it's worth the CPU > cycles. Does this sound reasonable to you? That's what Wu's patch did - it pushed it off to the bdi-flusher because you can't call iput() in memory reclaim context and you need a reference to the inode before calling fdatawrite_range(). As I mentioned for that patch, writing 4MB instead of a single page will cause different problems - after just 25 dirty pages, we've queued 100MB of IO and on a typical desktop system that will take at least a second to complete. Now we get the opposite problem of IO latency to clean a specific page and the potential to stall normal background expired inode writeback forever if we keep hitting dirty pages during page reclaim. It's just yet another reason I'd really like to see numbers showing that not doing IO from memory reclaim causes problems in the cases where it is said to be needed (like reclaiming memory from a specific node) and that issuing IO is the -only- solution. If numbers can't be produced showing that we *need* to do IO from memory reclaim, then why jump through hoops like we currently are trying to fix all the nasty corner cases? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 19:33:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E0XlZF107278 for ; Wed, 13 Jul 2011 19:33:47 -0500 X-ASG-Debug-ID: 1310603622-58de02760000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3CD476B283 for ; Wed, 13 Jul 2011 17:33:43 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id nZeHMJOzKsVlzHOX for ; Wed, 13 Jul 2011 17:33:43 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqcCALs4Hk55LCkBgWdsb2JhbABTG6cmFQEBFiYliHrCKw6GLASjQw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 10:03:41 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qh9s4-0007yD-KL; Thu, 14 Jul 2011 10:33:40 +1000 Date: Thu, 14 Jul 2011 10:33:40 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Subject: Re: [RFC PATCH 0/5] Reduce filesystem writeback from page reclaim (again) Message-ID: <20110714003340.GZ23038@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-1-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310603624 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68847 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:22PM +0100, Mel Gorman wrote: > (Revisting this from a year ago and following on from the thread > "Re: [PATCH 03/27] xfs: use write_cache_pages for writeback > clustering". Posting an prototype to see if anything obvious is > being missed) Hi Mel, Thanks for picking this up again. The results are definitely promising, but I'd like to see a comparison against simply not doing IO from memory reclaim at all combined with the enhancements in this patchset. After all, that's what I keep asking for (so we can get rid of .writepage altogether), and if the numbers don't add up, then I'll shut up about it. ;) ..... > use-once LRU logic). The command line for fs_mark looked something like > > ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 > > The machine was booted with "nr_cpus=1 mem=512M" as according to Dave > this triggers the worst behaviour. .... > During testing, a number of monitors were running to gather information > from ftrace in particular. This disrupts the results of course because > recording the information generates IO in itself but I'm ignoring > that for the moment so the effect of the patches can be seen. > > I've posted the raw reports for each filesystem at > > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext3/sandy/comparison.html > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext4/sandy/comparison.html > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-btrfs/sandy/comparison.html > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/comparison.html ..... > Average files per second is increased by a nice percentage albeit > just within the standard deviation. Consider the type of test this is, > variability was inevitable but will double check without monitoring. > > The overhead (time spent in non-filesystem-related activities) is > reduced a *lot* and is a lot less variable. Given that userspace is doing the same amount of work in all test runs, that implies that the userspace process is retaining it's working set hot in the cache over syscalls with this patchset. > Direct reclaim work is significantly reduced going from 37% of all > pages scanned to 1% with all patches applied. This implies that > processes are getting stalled less. And that directly implicates page scanning during direct reclaim as the prime contributor to turfing the application's working set out of the CPU cache.... > Page writes by reclaim is what is motivating this series. It goes > from 14511 pages to 4084 which is a big improvement. We'll see later > if these were anonymous or file-backed pages. Which were anon pages, so this is a major improvement. However, given that there were no dirty pages writen directly by memory reclaim, perhaps we don't need to do IO at all from here and throttling is all that is needed? ;) > Direct reclaim writes were never a problem according to this. That's true. but we disable direct reclaim for other reasons, namely that writeback from direct reclaim blows the stack. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 13 19:43:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E0hwAm107546 for ; Wed, 13 Jul 2011 19:43:58 -0500 X-ASG-Debug-ID: 1310604233-432502640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B7605EBAB44 for ; Wed, 13 Jul 2011 17:43:54 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id zzYewVUeQMmM2Rbj for ; Wed, 13 Jul 2011 17:43:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqYCALs4Hk55LCkBgWdsb2JhbABTp0EVAQEWJiXLJQ6FTV8Eo0M Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 14 Jul 2011 10:13:52 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhA1u-0007zM-CJ; Thu, 14 Jul 2011 10:43:50 +1000 Date: Thu, 14 Jul 2011 10:43:50 +1000 From: Dave Chinner To: Greg Freemyer Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Trying xfstest 075 and 112, both are failing Subject: Re: Trying xfstest 075 and 112, both are failing Message-ID: <20110714004350.GA23038@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1310604235 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3039 1.0000 -0.3319 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.33 X-Barracuda-Spam-Status: No, SCORE=-0.33 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68848 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 04:28:00PM -0400, Greg Freemyer wrote: > All, > > I'm trying to get xfstests running in my setup for the first time in years. > > I've trying with a btrfs test partition. > > ./check mostly runs, but 3 tests are failing: 075, 112, and 127 > > 075 and 112 look like very basic errors in the 075.out info. Makes me > wonder if they work for anyone with a current git pull. > > ==== example failure of test 075 > # ./check 075 > FSTYP -- btrfs > PLATFORM -- Linux/x86_64 tiger3-64bit 2.6.39.2-36-default > MKFS_OPTIONS -- /dev/sda1 > MOUNT_OPTIONS -- /dev/sda1 /xfstests_mnt_scratch > > 075 11s ... [failed, exit status 1] - output mismatch (see 075.out.bad) > --- 075.out 2011-06-30 18:41:17.000000000 -0400 > +++ 075.out.bad 2011-07-13 16:25:55.000000000 -0400 > @@ -4,15 +4,4 @@ > ----------------------------------------------- > fsx.0 : -d -N numops -S 0 > ----------------------------------------------- > - > ------------------------------------------------ > -fsx.1 : -d -N numops -S 0 -x > ------------------------------------------------ > - > ------------------------------------------------ > -fsx.2 : -d -N numops -l filelen -S 0 > ------------------------------------------------ > - > ------------------------------------------------ > -fsx.3 : -d -N numops -l filelen -S 0 -x > ------------------------------------------------ > + fsx (-d -N 1000 -S 0) failed, 0 - compare 075.0.{good,bad,fsxlog} > Ran: 075 > Failures: 075 > Failed 1 of 1 tests > === Nothing wrong with the test at all. That's telling you that btrfs failed the fsx test run. i.e. that there is a problem with btrfs that needs to be fixed. > (by chance, I also documented what I was doing in the openSUSE wiki, > so you can see the exact steps at; > http://en.opensuse.org/SDB:XFStests) You probably should be pulling the -dev versions of the trees hosted on git.kernel.org rather than the ones from oss.sgi.com. And you want to be running the auto test group, not all tests as some of the tests are broken or require specific environments to run in or take a long, long time to run. Instead, you should be using "./check -g auto" by default. Cheers, Dave. -- Dave Chinner david@fromorbit.com From kamezawa.hiroyu@jp.fujitsu.com Wed Jul 13 20:45:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E1jIQm109441 for ; Wed, 13 Jul 2011 20:45:19 -0500 X-ASG-Debug-ID: 1310607916-555c00200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fgwmail5.fujitsu.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4ED626B6E0 for ; Wed, 13 Jul 2011 18:45:17 -0700 (PDT) Received: from fgwmail5.fujitsu.co.jp (fgwmail5.fujitsu.co.jp [192.51.44.35]) by cuda.sgi.com with ESMTP id DWhI83m22G3va2a0 for ; Wed, 13 Jul 2011 18:45:17 -0700 (PDT) Received: from m1.gw.fujitsu.co.jp (unknown [10.0.50.71]) by fgwmail5.fujitsu.co.jp (Postfix) with ESMTP id 81F5C3EE0C7 for ; Thu, 14 Jul 2011 10:45:15 +0900 (JST) Received: from smail (m1 [127.0.0.1]) by outgoing.m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 654C845DE56 for ; Thu, 14 Jul 2011 10:45:15 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.fujitsu.co.jp [10.0.50.91]) by m1.gw.fujitsu.co.jp (Postfix) with ESMTP id 3AF5445DE55 for ; Thu, 14 Jul 2011 10:45:15 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 182DB1DB805B for ; Thu, 14 Jul 2011 10:45:15 +0900 (JST) Received: from ml14.s.css.fujitsu.com (ml14.s.css.fujitsu.com [10.240.81.134]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id B16981DB8054 for ; Thu, 14 Jul 2011 10:45:14 +0900 (JST) Received: from ml14.css.fujitsu.com (ml14 [127.0.0.1]) by ml14.s.css.fujitsu.com (Postfix) with ESMTP id 83B819F70AF; Thu, 14 Jul 2011 10:45:14 +0900 (JST) Received: from WIN-WAU6SZB64RR (unknown [10.124.101.142]) by ml14.s.css.fujitsu.com (Postfix) with SMTP id 9D8CC9F70CE; Thu, 14 Jul 2011 10:45:13 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from WIN-WAU6SZB64RR[10.124.101.142] by WIN-WAU6SZB64RR (FujitsuOutboundMailChecker v1.3.1/9992[10.124.101.142]); Thu, 14 Jul 2011 10:38:13 +0900 (JST) Date: Thu, 14 Jul 2011 10:38:01 +0900 From: KAMEZAWA Hiroyuki To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-Id: <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: <1310567487-15367-2-git-send-email-mgorman@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> Organization: FUJITSU Co. LTD. X-Mailer: Sylpheed 3.1.1 (GTK+ 2.10.14; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Barracuda-Connect: fgwmail5.fujitsu.co.jp[192.51.44.35] X-Barracuda-Start-Time: 1310607918 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68851 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 13 Jul 2011 15:31:23 +0100 Mel Gorman wrote: > From: Mel Gorman > > When kswapd is failing to keep zones above the min watermark, a process > will enter direct reclaim in the same manner kswapd does. If a dirty > page is encountered during the scan, this page is written to backing > storage using mapping->writepage. > > This causes two problems. First, it can result in very deep call > stacks, particularly if the target storage or filesystem are complex. > Some filesystems ignore write requests from direct reclaim as a result. > The second is that a single-page flush is inefficient in terms of IO. > While there is an expectation that the elevator will merge requests, > this does not always happen. Quoting Christoph Hellwig; > > The elevator has a relatively small window it can operate on, > and can never fix up a bad large scale writeback pattern. > > This patch prevents direct reclaim writing back filesystem pages by > checking if current is kswapd. Anonymous pages are still written to > swap as there is not the equivalent of a flusher thread for anonymos > pages. If the dirty pages cannot be written back, they are placed > back on the LRU lists. > > Signed-off-by: Mel Gorman Hm. > --- > include/linux/mmzone.h | 1 + > mm/vmscan.c | 9 +++++++++ > mm/vmstat.c | 1 + > 3 files changed, 11 insertions(+), 0 deletions(-) > > diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h > index 9f7c3eb..b70a0c0 100644 > --- a/include/linux/mmzone.h > +++ b/include/linux/mmzone.h > @@ -100,6 +100,7 @@ enum zone_stat_item { > NR_UNSTABLE_NFS, /* NFS unstable pages */ > NR_BOUNCE, > NR_VMSCAN_WRITE, > + NR_VMSCAN_WRITE_SKIP, > NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ > NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ > NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ > diff --git a/mm/vmscan.c b/mm/vmscan.c > index 4f49535..2d3e5b6 100644 > --- a/mm/vmscan.c > +++ b/mm/vmscan.c > @@ -825,6 +825,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, > if (PageDirty(page)) { > nr_dirty++; > > + /* > + * Only kswapd can writeback filesystem pages to > + * avoid risk of stack overflow > + */ > + if (page_is_file_cache(page) && !current_is_kswapd()) { > + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > + goto keep_locked; > + } > + This will cause tons of memcg OOM kill because we have no help of kswapd (now). Could you make this if (scanning_global_lru(sc) && page_is_file_cache(page) && !current_is_kswapd()) ... Then...sorry, please keep file system hook for a while. I'll do memcg dirty_ratio work by myself if Greg will not post new version until the next month. After that, we can remove scanning_global_lru(sc), I think. Thanks, -Kame From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 13 22:43:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E3heDj112998 for ; Wed, 13 Jul 2011 22:43:40 -0500 X-ASG-Debug-ID: 1310615017-555503e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EC5756B85B; Wed, 13 Jul 2011 20:43:37 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id aAFqiIbVSLgP2QGR; Wed, 13 Jul 2011 20:43:37 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhCps-0007x3-CP; Thu, 14 Jul 2011 03:43:36 +0000 Date: Wed, 13 Jul 2011 23:43:36 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , alal@google.com, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Message-ID: <20110714034336.GA30541@infradead.org> References: <20110713121320.GA28126@infradead.org> <1310581564.1998.38.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310581564.1998.38.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310615017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0055 1.0000 -1.9852 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.89 X-Barracuda-Spam-Status: No, SCORE=-1.89 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68859 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I'm fine with enabling 080 by default, it passes for me. From david@fromorbit.com Wed Jul 13 23:03:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E43VWr113650 for ; Wed, 13 Jul 2011 23:03:32 -0500 X-ASG-Debug-ID: 1310616209-496700f60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 16C051D857C9 for ; Wed, 13 Jul 2011 21:03:30 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id Sqepw8D7WwJDmgZH for ; Wed, 13 Jul 2011 21:03:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArIDAAZoHk55LCkBgWdsb2JhbABTp04VAQEWJiXKRA6FTV8Eo0Y Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 14 Jul 2011 13:33:28 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhD94-0008IM-9Y; Thu, 14 Jul 2011 14:03:26 +1000 Date: Thu, 14 Jul 2011 14:03:26 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Alex Elder , xfs@oss.sgi.com, alal@google.com X-ASG-Orig-Subj: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Message-ID: <20110714040326.GB31294@dastard> References: <20110713121320.GA28126@infradead.org> <1310581564.1998.38.camel@doink> <20110714034336.GA30541@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714034336.GA30541@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310616211 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4470 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68861 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 11:43:36PM -0400, Christoph Hellwig wrote: > I'm fine with enabling 080 by default, it passes for me. It needs /bin/sh -> /bin/bash conversion first - the current version fails miserably without that on all my test systems.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From SEMA-CR-3-239OFFA@bounce.oracle-mail.com Wed Jul 13 23:24:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,HTML_MESSAGE, MIME_QP_LONG_LINE autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6E4OH4s114426 for ; Wed, 13 Jul 2011 23:24:17 -0500 X-ASG-Debug-ID: 1310617454-762c01810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from acsinet54.oracleeblast.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 90C53EBC26B for ; Wed, 13 Jul 2011 21:24:14 -0700 (PDT) Received: from acsinet54.oracleeblast.com (acsinet54.oracleeblast.com [141.146.5.54]) by cuda.sgi.com with ESMTP id xBQjfTlnK1Bmiv02 for ; Wed, 13 Jul 2011 21:24:14 -0700 (PDT) Received: from amts748.us.oracle.com (amts748.us.oracle.com [140.84.104.66]) by acsinet54.oracleeblast.com (8.14.4+Sun/8.14.4) with ESMTP id p6E4ErKI022943 for ; Thu, 14 Jul 2011 04:15:15 GMT Date: Wed, 13 Jul 2011 21:14:53 -0700 To: X-Mailer: Siebel EMS 80 [EMS 2017] main/201012131828 MIME-Version: 1.0 Sender: "Oracle" X-ASG-Orig-Subj: Join Us: Oracle Hardware for Oracle Database - San Francisco Subject: Join Us: Oracle Hardware for Oracle Database - San Francisco From: "Oracle" Reply-To: reply@oracle-mail.com Message-ID: Content-Type: multipart/alternative; boundary=BF_1310616754663_1135987373 X-Barracuda-Connect: acsinet54.oracleeblast.com[141.146.5.54] X-Barracuda-Start-Time: 1310617455 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0665 1.0000 -1.5968 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.78 X-Barracuda-Spam-Status: No, SCORE=-0.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=HTML_MESSAGE, MIME_QP_LONG_LINE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68862 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.82 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --BF_1310616754663_1135987373 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable ----------------------------------------------------------------------- ENGINEERED FOR BUSINESS:=20 ORACLE HARDWARE FOR ORACLE DATABASE ----------------------------------------------------------------------- Register Now: Go to: https://gcmprm.oracle.com/ctd/lu?RID=3D= 3-239OFFA= &CON=3D= &PRO=3D= 3-237M2ZW= &AID=3D= &OID=3D3-22S8TQ7&CID=3D3-22S8TL1&COID=3D3-22S8TQ5&T=3Dhttp%3a%2f%2fwww.oracl= e.com%2fgo%2f%3f%26Src%3d7239487%26Act%3d314%26pcode%3dNAFM10122911MPP133&TN= =3DRegister+now&RT=3DClicked+On+URL Dear = David= = Chinner= , The ability to work together is at the heart of the world's most efficient datacenters. Solutions that combine hardware and software from multiple vendors often result in complicated IT infrastructures, driving costs up and productivity down. Only Oracle delivers complete solutions, offering integration at every layer, from applications to disk. Join us for the Engineered for Business: Oracle Hardware for Oracle Database event, and learn how Oracle's hardware and software is designed, developed and optimized to work together, dramatically simplifying datacenter operations for enhanced performance and significantly lower TCO. Discover how Oracle's integrated hardware and software solutions could help you: * Reduce costs by eliminating server sprawl and consolidating on highly scalable private clouds. * Maximize business agility with simplified management and reduced time to market. * Increase performance with fully integrated hardware and software for all business applications. * Mitigate risk by minimizing downtime and protecting your enterprise technology stack. * Enable business growth with unmatched reliability, availability and serviceability, and built-in virtualization. Get solutions that are optimized to increase performance, maximize business agility and reduce TCO. Join us to find out how. Register now for this event. Or call 1.800.820.5592 ext. 9446. Go to: https://gcmprm.oracle.com/ctd/lu?RID=3D= 3-239OFFA= &CON=3D= &PRO=3D= 3-237M2ZW= &AID=3D= &OID=3D3-22S8TQ7&CID=3D3-22S8TL1&COID=3D3-22S8TQ5&T=3Dhttp%3a%2f%2fwww.oracl= e.com%2fgo%2f%3f%26Src%3d7239487%26Act%3d314%26pcode%3dNAFM10122911MPP133&TN= =3DRegister+now&RT=3DClicked+On+URL ----------------------------------------------------------------------- Tuesday, August 9, 2011 8:30 a.m. =E2=80=93 3:00 p.m. W San Francisco 181 Third Street San Francisco, CA 94103=20 (415) 777-5300 ----------------------------------------------------------------------- Click here to view agenda. Go to: https://gcmprm.oracle.com/ctd/lu?RID=3D= 3-239OFFA= &CON=3D= &PRO=3D= 3-237M2ZW= &AID=3D= &OID=3D3-22S8TQ7&CID=3D3-22S8TL1&COID=3D3-22S8TQ5&T=3Dhttp%3a%2f%2fwww.oracl= e.com%2fus%2fdm%2fh2fy11%2f75873-nafm10122911mpp133-a-427895.html&TN=3DAgend= a&RT=3DClicked+On+URL If you are an employee or official of a government organization, please click here for important ethics information regarding this event. Go to: http://www.oracle.com/us/dm/emaildisclaimer-214931.html?msgid=3D3-452= 1938047~evite=3DNAFM10122911MPP133~Disclaimer=3DEnglish/US/ownEvent~EName=3D= Join Us:%20Oracle%20Hardware%20for%20Oracle%20Database%20-%20San%20Francisco= ~Items=3DFood%20&%20Beverages%20-%20$104%20Giveaway%20Item%20-%20$6~Cost=3D$= 110~Cname=3DOracle-EventCompliance_US~CNo=3D1.800.820.5592%20ext.%209446~Ema= il=3DOracle-EventCompliance_US@oracle.com Register now for this event. Or call 1.800.820.5592 ext. 9446. Go to: https://gcmprm.oracle.com/ctd/lu?RID=3D= 3-239OFFA= &CON=3D= &PRO=3D= 3-237M2ZW= &AID=3D= &OID=3D3-22S8TQ7&CID=3D3-22S8TL1&COID=3D3-22S8TQ5&T=3Dhttp%3a%2f%2fwww.oracl= e.com%2fgo%2f%3f%26Src%3d7239487%26Act%3d314%26pcode%3dNAFM10122911MPP133&TN= =3DRegister+now&RT=3DClicked+On+URL ----------------------------------------------------------------------- Hardware and Software. Oracle. Engineered to Work Together ----------------------------------------------------------------------- =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 75873 Oracle Corporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mai= l Services, Redwood Shores, CA 94065, United States Create or update your profile to receive customized e-mail about Oracle prod= ucts and services. Go to: http://myprofile.oracle.com/ If you do not wish to receive any further electronic marketing communication= s from Oracle you can Opt-Out completely, please note you will no longer rec= eive newsletters and product information you may have subscribed to. Go to: https://dne.oracle.com/pls/uns/OPT_OUT.th?coid=3D= &prid=3D= 3-237M2ZW= &trid=3D= 3-22S8TQ7= &cmid=3D= 3-22S8TL1= &ccid=3D= 3-239OFFA= &LC=3Den --BF_1310616754663_1135987373 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: Quoted-Printable Engineered for Business: Oracle Hardware for Oracle Datab= ase
=3D"Oracle
3D"Engineered

Engineered for Busin= ess:
Oracle Hardware for Oracle Database

= Dear = David= = Chinner= ,

The ability to work together is at the heart of the world=E2=80=99s most eff= icient datacenters. Solutions that combine hardware and software from multip= le vendors often result in complicated IT infrastructures, driving costs up = and productivity down. Only Oracle delivers complete solutions, offering int= egration at every layer, from applications to disk.

= Join us for the Engineered for Bu= siness: Oracle Hardware for Oracle Database event, and learn= how Oracle=E2=80=99s hardware and software is designed, developed and optim= ized to work together, dramatically simplifying datacenter operations for en= hanced performance and significantly lower TCO.

= Discover how Oracle=E2=80=99s integrated hardware and software solutions cou= ld help you:

  • Reduce costs by eliminating server sprawl and consolidatin= g on highly scalable private clouds.
  • Maximize business agility with simplified management and r= educed time to market.
  • Increase performance with fully integrated hardware and so= ftware for all business applications.
  • Mitigate risk by minimizing downtime and protecting your e= nterprise technology stack.
  • Enable business growth with unmatched reliability, availab= ility and serviceability, and built-in virtualization.

= Get solutions that are optimized to increase performance, maximize business = agility and reduce TCO. Join us to find out how.

= Register now for this eve= nt. Or call 1.800.820.5592 ext. 9446.

= Tuesday, August 9, 2011
8:30 a.m. =E2=80=93 3:00 p.m.

W San Francisco
181 Third Street
San Francisco, CA 94103, USA
(415) 777-5300
Agenda<= /td>
8:30 a.m. Breakfast and Regis= tration
9:00 a.m. Keynote 1
Harnessing Bigger Data for Better Results with Oracle
=
9:40 a.m. Keynote 2
Taking it to the Cloud: Private Cloud Database Consolidation
=
10:20 a.m. Break=C2=A0
10:30 a.m. High Availability Systems f= or Mission Critical Business Applications
11:15 a.m. Rapid Implementation of Hig= h Volume, Secure Web Applications
12:00 p.m. Lunch
12:45 p.m. Taming Database Server Spra= wl
1:30 p.m. Extreme Performance with Or= acle Exadata Database Machine
2:15 p.m. Data Protection Solutions f= or Oracle Database
3:00 p.m. Wrap Up & Close=C2= =A0

<= font face=3D"Arial, Helvetica, sans-serif" color=3D"#ff0000" size=3D"2"><= A HREF=3D"https://gcmprm.oracle.com/ctd/lu?RID=3D= 3-239OFFA= &CON=3D= &PRO=3D= 3-237M2ZW= &AID=3D= &OID=3D3-22S8TQ7&CID=3D3-22S8TL1&COID=3D3-22S8TQ5&T=3Dhttp%3a%2f%2fwww.oracl= e.com%2fgo%2f%3f%26Src%3d7239487%26Act%3d314%26pcode%3dNAFM10122911MPP133&TN= =3D%26lt%3bfont+color%3d%22%23FF0000%22%26gt%3b%26lt%3bu%26gt%3bRegister+now= %26lt%3b%2fu%26gt%3b%26lt%3b%2ffont%26gt%3b&RT=3DClicked+On+URL">Register now for this eve= nt. Or call 1.800.820.5592 ext. 9446.

= If you are an employee or official of a government organization, please click here for important ethics information regar= ding this event.

Copyright =C2=A9 2011 Oracle and/or its affiliates.
All rights reserved.
Contact Us= | Legal No= tices and Terms of Use | <= u>Privacy Sta= tement
75873=C2= =A0

Oracle Co= rporation - Worldwide Headquarters, 500 Oracle Parkway, OPL - E-mail Service= s, Redwood Shores, CA 94065, United States

Create or update your profile to receive customized e-mail about Oracle products and services.
=
If you do not wish to receive any further electronic marketing communication= s from Oracle you can Opt-Out completely, please no= te you will no longer receive newsletters and product information you may ha= ve subscribed to.

> clustering". Posting an prototype to see if anything obvious is > > being missed) > > Hi Mel, > > Thanks for picking this up again. The results are definitely > promising, but I'd like to see a comparison against simply not doing > IO from memory reclaim at all combined with the enhancements in this > patchset. Convered elsewhere. In these tests we are already writing 0 pages so it won't make a difference and I'm wary of eliminating writes entirely unless kswapd has a way of priotising pages the flusher writes back because of the risk of premature OOM kill. > After all, that's what I keep asking for (so we can get > rid of .writepage altogether), and if the numbers don't add up, then > I'll shut up about it. ;) > Christoph covered this. > ..... > > > use-once LRU logic). The command line for fs_mark looked something like > > > > ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 > > > > The machine was booted with "nr_cpus=1 mem=512M" as according to Dave > > this triggers the worst behaviour. > .... > > During testing, a number of monitors were running to gather information > > from ftrace in particular. This disrupts the results of course because > > recording the information generates IO in itself but I'm ignoring > > that for the moment so the effect of the patches can be seen. > > > > I've posted the raw reports for each filesystem at > > > > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext3/sandy/comparison.html > > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-ext4/sandy/comparison.html > > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-btrfs/sandy/comparison.html > > http://www.csn.ul.ie/~mel/postings/reclaim-20110713/writeback-xfs/sandy/comparison.html > ..... > > Average files per second is increased by a nice percentage albeit > > just within the standard deviation. Consider the type of test this is, > > variability was inevitable but will double check without monitoring. > > > > The overhead (time spent in non-filesystem-related activities) is > > reduced a *lot* and is a lot less variable. > > Given that userspace is doing the same amount of work in all test > runs, that implies that the userspace process is retaining it's > working set hot in the cache over syscalls with this patchset. > It's one possibility. The more likely one is that the fs_marks anonymous pages are getting swapped out leading to variability. If IO is less seeky as a result of the change, the swap in/outs would be faster. > > Direct reclaim work is significantly reduced going from 37% of all > > pages scanned to 1% with all patches applied. This implies that > > processes are getting stalled less. > > And that directly implicates page scanning during direct reclaim as > the prime contributor to turfing the application's working set out > of the CPU cache.... > It's a possibility. > > Page writes by reclaim is what is motivating this series. It goes > > from 14511 pages to 4084 which is a big improvement. We'll see later > > if these were anonymous or file-backed pages. > > Which were anon pages, so this is a major improvement. However, > given that there were no dirty pages writen directly by memory > reclaim, perhaps we don't need to do IO at all from here and > throttling is all that is needed? ;) > I wouldn't bet my life on it due to potential premature OOM kill problem if we cannot reclaim pages at all :) > > Direct reclaim writes were never a problem according to this. > > That's true. but we disable direct reclaim for other reasons, namely > that writeback from direct reclaim blows the stack. > Correct. I should have been clearer and said direct reclaim wasn't a problem in terms of queueing pages for IO. -- Mel Gorman SUSE Labs From guus@sliepen.org Thu Jul 14 06:23:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EBNSDA132080 for ; Thu, 14 Jul 2011 06:23:28 -0500 X-ASG-Debug-ID: 1310642605-563600400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from arianus.sliepen.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1402C15F42B3 for ; Thu, 14 Jul 2011 04:23:26 -0700 (PDT) Received: from arianus.sliepen.org (arianus.sliepen.org [92.243.30.131]) by cuda.sgi.com with ESMTP id zHO3X8MNIes88jCq for ; Thu, 14 Jul 2011 04:23:26 -0700 (PDT) Received: from sliepen.org (xar.sliepen.oi [IPv6:fec0::1:204:76ff:fe14:6e86]) by arianus.sliepen.org (Postfix) with ESMTP id 8A322264C4; Thu, 14 Jul 2011 11:23:24 +0000 (UTC) Received: by sliepen.org (Postfix, from userid 1001) id 4A53460368; Thu, 14 Jul 2011 13:23:24 +0200 (CEST) Date: Thu, 14 Jul 2011 13:23:24 +0200 From: Guus Sliepen To: Nick Piggin Cc: Christoph Hellwig , Peter Klotz , Roman Kononov , linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: BUG: soft lockup - is this XFS problem? Subject: Re: BUG: soft lockup - is this XFS problem? Message-ID: <20110714112324.GM30145@sliepen.org> Mail-Followup-To: Guus Sliepen , Nick Piggin , Christoph Hellwig , Peter Klotz , Roman Kononov , linux-kernel@vger.kernel.org, xfs@oss.sgi.com References: <20090105064838.GA5209@wotan.suse.de> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="LG0Ll82vYr46+VA1" Content-Disposition: inline In-Reply-To: <20090105064838.GA5209@wotan.suse.de> X-oi: oi User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: arianus.sliepen.org[92.243.30.131] X-Barracuda-Start-Time: 1310642607 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68890 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --LG0Ll82vYr46+VA1 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello, I'm having a problem with a system having an XFS filesystem on RAID locking= up fairly consistently when writing large amounts of data to it, with several kernels, including 2.6.38.2 and 2.6.39.3, on both AMD and Intel multi-core processors. The kernel always logs this several times: BUG: soft lockup - CPU#2 stuck for 67s! [kswapd0:33] With different CPU# numbers, but always in kswapd0. Eventually the system w= ill really lock up, requiring a reset. During soft lockups (when file transfer apparently stalled), merely typing "ps aux" would often cause the lockup to= end immediately. After googling I found this page: https://patchwork.kernel.org/patch/789/ An unpatched vanilla 2.6.39.3 consistently locked up, however after patchin= g it (adding a barrier() after all 4 instances of if (!page_cache_get_speculative(page))) the lockups never happened anymore, and file transfer has been steady. I also tested it with ext4, which doesn't give lockups on unpatched kernels, but unfortunately mkfs.ext4 cannot create filesystems larger than 16TB yet,= so I have to use XFS instead. On Mon, Jan 05, 2009 at 06:48:38AM -0000, Nick Piggin wrote: > I believe this patch should solve it. Please test and confirm before > I send it upstream. Further comments on that thread in 2009 indicated the patch was very useful, but it doesn't seem to have been applied upstream. Is there any reason this patch should not be applied? If necessary I can submit a reworked patch for 2.6.39.3 or 3.0 when that co= mes out. > --- > An XFS workload showed up a bug in the lockless pagecache patch. Basicall= y it > would go into an "infinite" loop, although it would sometimes be able to = break > out of the loop! The reason is a missing compiler barrier in the "increme= nt > reference count unless it was zero" case of the lockless pagecache protoc= ol in > the gang lookup functions. >=20 > This would cause the compiler to use a cached value of struct page pointe= r to > retry the operation with, rather than reload it. So the page might have b= een > removed from pagecache and freed (refcount=3D=3D0) but the lookup would n= ot correctly > notice the page is no longer in pagecache, and keep attempting to increme= nt the > refcount and failing, until the page gets reallocated for something else.= This > isn't a data corruption because the condition will be detected if the pag= e has > been reallocated. However it can result in a lockup.=20 >=20 > Add a the required compiler barrier and comment to fix this. [...] > Index: linux-2.6/mm/filemap.c > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > --- linux-2.6.orig/mm/filemap.c 2009-01-05 17:22:57.000000000 +1100 > +++ linux-2.6/mm/filemap.c 2009-01-05 17:28:40.000000000 +1100 > @@ -794,8 +794,19 @@ repeat: > if (unlikely(page =3D=3D RADIX_TREE_RETRY)) > goto restart; > =20 > - if (!page_cache_get_speculative(page)) > + if (!page_cache_get_speculative(page)) { > + /* > + * A failed page_cache_get_speculative operation does > + * not imply any barriers (Documentation/atomic_ops.txt), > + * and as such, we must force the compiler to deref the > + * radix-tree slot again rather than using the cached > + * value (because we need to give up if the page has been > + * removed from the radix-tree, rather than looping until > + * it gets reused for something else). > + */ > + barrier(); > goto repeat; > + } > =20 > /* Has the page moved? */ > if (unlikely(page !=3D *((void **)pages[i]))) { > @@ -850,8 +861,11 @@ repeat: > if (page->mapping =3D=3D NULL || page->index !=3D index) > break; > =20 > - if (!page_cache_get_speculative(page)) > + if (!page_cache_get_speculative(page)) { > + /* barrier: see find_get_pages() */ > + barrier(); > goto repeat; > + } > =20 > /* Has the page moved? */ > if (unlikely(page !=3D *((void **)pages[i]))) { > @@ -904,8 +918,11 @@ repeat: > if (unlikely(page =3D=3D RADIX_TREE_RETRY)) > goto restart; > =20 > - if (!page_cache_get_speculative(page)) > + if (!page_cache_get_speculative(page)) { > + /* barrier: see find_get_pages() */ > + barrier(); > goto repeat; > + } > =20 > /* Has the page moved? */ > if (unlikely(page !=3D *((void **)pages[i]))) { --=20 Met vriendelijke groet / with kind regards, Guus Sliepen --LG0Ll82vYr46+VA1 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk4e0asACgkQAxLow12M2ntW5ACdH07WlqFnnnq2QL6enmc2yLsJ Rr4Ani+J3a5vC6WfcQOf2MebiJaq/gtj =X4Tp -----END PGP SIGNATURE----- --LG0Ll82vYr46+VA1-- From david@fromorbit.com Thu Jul 14 06:52:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EBqR4c133166 for ; Thu, 14 Jul 2011 06:52:27 -0500 X-ASG-Debug-ID: 1310644344-55fa00b10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 150D7D000AA for ; Thu, 14 Jul 2011 04:52:25 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 0f80vd9YzExIY2o1 for ; Thu, 14 Jul 2011 04:52:25 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArIDAGPVHk55LCkBgWdsb2JhbABTp1EVAQEWJiWIesFZDoVNXwSjRw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 14 Jul 2011 21:22:22 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhKSr-0000Xn-2e; Thu, 14 Jul 2011 21:52:21 +1000 Date: Thu, 14 Jul 2011 21:52:21 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Message-ID: <20110714115220.GB21663@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-3-git-send-email-mgorman@suse.de> <20110713233743.GV23038@dastard> <20110714062947.GO7529@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714062947.GO7529@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310644346 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68893 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 07:29:47AM +0100, Mel Gorman wrote: > On Thu, Jul 14, 2011 at 09:37:43AM +1000, Dave Chinner wrote: > > On Wed, Jul 13, 2011 at 03:31:24PM +0100, Mel Gorman wrote: > > > It is preferable that no dirty pages are dispatched for cleaning from > > > the page reclaim path. At normal priorities, this patch prevents kswapd > > > writing pages. > > > > > > However, page reclaim does have a requirement that pages be freed > > > in a particular zone. If it is failing to make sufficient progress > > > (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority > > > is raised to scan more pages. A priority of DEF_PRIORITY - 3 is > > > considered to tbe the point where kswapd is getting into trouble > > > reclaiming pages. If this priority is reached, kswapd will dispatch > > > pages for writing. > > > > > > Signed-off-by: Mel Gorman > > > > Seems reasonable, but btrfs still will ignore this writeback from > > kswapd, and it doesn't fall over. > > At least there are no reports of it falling over :) However you want to spin it. > > Given that data point, I'd like to > > see the results when you stop kswapd from doing writeback altogether > > as well. > > > > The results for this test will be identical because the ftrace results > show that kswapd is already writing 0 filesystem pages. You mean these numbers: Kswapd reclaim write file async I/O 4483 4286 0 1 0 0 Which shows that kswapd, under this workload has been improved to the point that it doesn't need to do IO. Yes, you've addressed the one problematic workload, but the numbers do not provide the answers to the fundamental question that have been raised during discussions. i.e. do we even need IO at all from reclaim? > Where it makes a difference is when the system is under enough > pressure that it is failing to reclaim any memory and is in danger > of prematurely triggering the OOM killer. Andrea outlined some of > the concerns before at http://lkml.org/lkml/2010/6/15/246 So put the system under more pressure such that with this patch series memory reclaim still writes from kswapd. Can you even get it to that stage, and if you can, does the system OOM more or less if you don't do file IO from reclaim? > > Can you try removing it altogether and seeing what that does to your > > test results? i.e > > > > if (page_is_file_cache(page)) { > > inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > goto keep_locked; > > } > > It won't do anything, it'll still be writing 0 filesystem-backed pages. > > Because of the possibility for the OOM killer triggering prematurely due > to the inability of kswapd to write pages, I'd prefer to separate such a > change by at least one release so that if there is an increase in OOM > reports, it'll be obvious what was the culprit. I'm not asking for release quality patches or even when such fixes would roll out. What you've shown here is that memory reclaim can be more efficient without issuing IO itself under medium memory pressure. Now the question is whether it can do so under heavy, sustained, near OOM memory pressure? IOWs, what I want to see is whether the fundamental principle of IO-less reclaim can be validated as workable or struck down. This patchset demonstrates that IO-less reclaim is superior for a workload that produces medium levels of sustained IO-based memory pressure, which leads to the conclusion that the approach has merit and needs further investigation. It's that next step that I'm asking you to test now. What form potential changes take or when they are released is irrelevant to me at this point, because we still haven't determined if the fundamental concept is completely sound or not. If the concept is sound I'm quite happy to wait until the implementation is fully baked before it gets rolled out.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From mgorman@suse.de Thu Jul 14 08:17:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EDHsjL136821 for ; Thu, 14 Jul 2011 08:17:54 -0500 X-ASG-Debug-ID: 1310649470-563602130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B3C3EEA22F3 for ; Thu, 14 Jul 2011 06:17:50 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id htT4FsshRgaOQKgM for ; Thu, 14 Jul 2011 06:17:50 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 561878D167; Thu, 14 Jul 2011 15:17:49 +0200 (CEST) Date: Thu, 14 Jul 2011 14:17:45 +0100 From: Mel Gorman To: Dave Chinner Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Message-ID: <20110714131745.GU7529@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-3-git-send-email-mgorman@suse.de> <20110713233743.GV23038@dastard> <20110714062947.GO7529@suse.de> <20110714115220.GB21663@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110714115220.GB21663@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310649471 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68898 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 09:52:21PM +1000, Dave Chinner wrote: > On Thu, Jul 14, 2011 at 07:29:47AM +0100, Mel Gorman wrote: > > On Thu, Jul 14, 2011 at 09:37:43AM +1000, Dave Chinner wrote: > > > On Wed, Jul 13, 2011 at 03:31:24PM +0100, Mel Gorman wrote: > > > > It is preferable that no dirty pages are dispatched for cleaning from > > > > the page reclaim path. At normal priorities, this patch prevents kswapd > > > > writing pages. > > > > > > > > However, page reclaim does have a requirement that pages be freed > > > > in a particular zone. If it is failing to make sufficient progress > > > > (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority > > > > is raised to scan more pages. A priority of DEF_PRIORITY - 3 is > > > > considered to tbe the point where kswapd is getting into trouble > > > > reclaiming pages. If this priority is reached, kswapd will dispatch > > > > pages for writing. > > > > > > > > Signed-off-by: Mel Gorman > > > > > > Seems reasonable, but btrfs still will ignore this writeback from > > > kswapd, and it doesn't fall over. > > > > At least there are no reports of it falling over :) > > However you want to spin it. > I regret that it is coming across as spin. My primary concern is that if we get OOM-related bugs due to this series later that it'll be difficult to pinpoint whether the whole series is at fault or whether preventing kswapd writing any pages was at fault. > > > Given that data point, I'd like to > > > see the results when you stop kswapd from doing writeback altogether > > > as well. > > > > > > > The results for this test will be identical because the ftrace results > > show that kswapd is already writing 0 filesystem pages. > > You mean these numbers: > > Kswapd reclaim write file async I/O 4483 4286 0 1 0 0 > > Which shows that kswapd, under this workload has been improved to > the point that it doesn't need to do IO. Yes, you've addressed the > one problematic workload, but the numbers do not provide the answers > to the fundamental question that have been raised during > discussions. i.e. do we even need IO at all from reclaim? > I don't know and at best will only be able to test with a single disk which is why I wanted to separate this series from a complete preventing of kswapd writing pages. I may be able to get access to a machine with more disks but it'll take time. > > Where it makes a difference is when the system is under enough > > pressure that it is failing to reclaim any memory and is in danger > > of prematurely triggering the OOM killer. Andrea outlined some of > > the concerns before at http://lkml.org/lkml/2010/6/15/246 > > So put the system under more pressure such that with this patch > series memory reclaim still writes from kswapd. Can you even get it > to that stage, and if you can, does the system OOM more or less if > you don't do file IO from reclaim? > I can setup such a tests, it'll be at least next week before I configure such a test and get it queued. It'll probably take a few days to run then because more iterations will be required to pinpoint where the OOM threshold is. I know from the past that pushing a system near OOM causes a non-deterministic number of triggers that depend heavily on what was killed so the only real choice is to start light and increase the load until boom which is time consuming. Even then, the test will be inconclusive because it'll be just one or two machines that I'll have to test on. There will be important corner cases that I won't be able to test for. For example; o small lowest zone that is critical for operation of some reason and the pages must be cleaned from there even though there is a large amount of memory overall o small highest zone causing high kswapd usage as it fails to balance continually due to pages being dirtied constantly and the window between when flushers clean the page and kswapd reclaim the page being too big. I might be able to simulate this one but bugs of this nature tend to be workload specific and affect some machines worse than others o Machines with many nodes and dirty pages spread semi-randomly on all nodes. If the flusher thread is not cleaning pages from a particular node that is under memory pressure due to affinity, processes will stall for long periods of time until the relevant inodes expire and gets cleaned. This will be particularly problematic if zone_reclaim is enabled Questions about scenarios like this are going to cause problems in review because it's reasonable to ask if any of them can occur and we can't give an iron-clad answer. > > > Can you try removing it altogether and seeing what that does to your > > > test results? i.e > > > > > > if (page_is_file_cache(page)) { > > > inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > > goto keep_locked; > > > } > > > > It won't do anything, it'll still be writing 0 filesystem-backed pages. > > > > Because of the possibility for the OOM killer triggering prematurely due > > to the inability of kswapd to write pages, I'd prefer to separate such a > > change by at least one release so that if there is an increase in OOM > > reports, it'll be obvious what was the culprit. > > I'm not asking for release quality patches or even when such fixes > would roll out. > Very well. I was hoping to start with just this series and handle the complete disabling of writing later but it can wait a few weeks too. It was always a stretch that the next merge window was going to be hit. > What you've shown here is that memory reclaim can be more efficient > without issuing IO itself under medium memory pressure. Now the > question is whether it can do so under heavy, sustained, near OOM > memory pressure? > > IOWs, what I want to see is whether the fundamental principle of > IO-less reclaim can be validated as workable or struck down. This > patchset demonstrates that IO-less reclaim is superior for a > workload that produces medium levels of sustained IO-based memory > pressure, which leads to the conclusion that the approach has merit > and needs further investigation. > > It's that next step that I'm asking you to test now. What form > potential changes take or when they are released is irrelevant to me > at this point, because we still haven't determined if the > fundamental concept is completely sound or not. If the concept is > sound I'm quite happy to wait until the implementation is fully > baked before it gets rolled out.... > I'll setup a suitable test next week then. -- Mel Gorman SUSE Labs From aelder@sgi.com Thu Jul 14 09:37:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EEbrlu141312 for ; Thu, 14 Jul 2011 09:37:53 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id ED06E304053; Thu, 14 Jul 2011 07:37:48 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 09:37:48 -0500 Subject: Re: [PATCH 4/4 v3] XFS TESTS: Fix 252 Failure: Add Generic FS Punch Hole Test 255 From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <4E1E1E41.30106@linux.vnet.ibm.com> References: <1309411441-2491-1-git-send-email-achender@linux.vnet.ibm.com> <1309411441-2491-5-git-send-email-achender@linux.vnet.ibm.com> <1310574716.1998.25.camel@doink> <4E1E1E41.30106@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 09:37:48 -0500 Message-ID: <1310654268.2067.5.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-13 at 15:37 -0700, Allison Henderson wrote: > On 07/13/2011 09:31 AM, Alex Elder wrote: > > On Wed, 2011-06-29 at 22:24 -0700, Allison Henderson wrote: > >> This patch adds a new test 255 that tests fallocate punch hole, > >> but is for use by generic filesystems. It is similar to 252, > >> but uses a weaker fiemap filter that only displays the location > >> of the hole, and not the extent types. > >> > >> Signed-off-by: Allison Henderson > > > > I realize Christoph already committed this but I > > spotted something so I thought I might as well > > mention it. I haven't tested any of this, so > > it may be OK after all, but if it's not then > > the filter_hole_fiemap() function ought to be > > updated. > > > > -Alex > > > > . . . > > > >> diff --git a/common.punch b/common.punch > >> index c18f88a..a48b7ae 100644 > >> --- a/common.punch > >> +++ b/common.punch > >> @@ -218,6 +218,23 @@ _filter_fiemap() > >> _coalesce_extents > >> } > >> > >> +# Filters fiemap output to only print the > >> +# file offset column and whether or not > >> +# it is an extent or a hole > >> +_filter_hole_fiemap() > >> +{ > >> + awk --posix ' > >> + $3 ~ /hole/ { > >> + print $1, $2, $3; > >> + next; > >> + } > >> + $5 ~ /0x[[:digit:]]+/ { > > > > I believe this should be: > > $5 ~ /0x[[:xdigit:]]+/ { > > > > (I.e., hex digits, not just decimals.) > > > > Hi Alex, > > I think you are right. The extent flags are printed in hex, so it > should be xdigit. The existing _filter_fiemap routine that I modeled > this code from is also only parsing decimal digits. Even though the > tests are not showing any problems right now, it should probably be > fixed. Should I submit a patch to correct it? Please, yes--to fix both. And please verify the problem while you're at it if possible. Thank you. -Alex > Allison Henderson > > >> + print $1, $2, "extent"; > >> + }' | > >> + _coalesce_extents > >> +} > >> + > >> + > >> # Prints the md5 checksum of a given file > >> _md5_checksum() > >> { > > > > . . . > > > From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 14 09:58:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EEwEjG142240 for ; Thu, 14 Jul 2011 09:58:15 -0500 X-ASG-Debug-ID: 1310655493-5ae703da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1976D1D59360; Thu, 14 Jul 2011 07:58:13 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id U1oWs631wyjDsZIs; Thu, 14 Jul 2011 07:58:13 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhNMg-0006Bk-0y; Thu, 14 Jul 2011 14:58:10 +0000 Date: Thu, 14 Jul 2011 10:58:10 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , Alex Elder , xfs@oss.sgi.com, alal@google.com X-ASG-Orig-Subj: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files Message-ID: <20110714145809.GB23587@infradead.org> References: <20110713121320.GA28126@infradead.org> <1310581564.1998.38.camel@doink> <20110714034336.GA30541@infradead.org> <20110714040326.GB31294@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714040326.GB31294@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310655494 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3063 1.0000 -0.3216 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.22 X-Barracuda-Spam-Status: No, SCORE=-0.22 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68905 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 02:03:26PM +1000, Dave Chinner wrote: > On Wed, Jul 13, 2011 at 11:43:36PM -0400, Christoph Hellwig wrote: > > I'm fine with enabling 080 by default, it passes for me. > > It needs /bin/sh -> /bin/bash conversion first - the current version > fails miserably without that on all my test systems.... Does the simple s/sh/bash/ fix it for you? From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 14 10:07:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EF7BUJ142666 for ; Thu, 14 Jul 2011 10:07:11 -0500 X-ASG-Debug-ID: 1310656030-50ce00340000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 056D36D048 for ; Thu, 14 Jul 2011 08:07:10 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id EQ2SKN8CrB7wmRiE for ; Thu, 14 Jul 2011 08:07:10 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhNVE-0007yp-Ii; Thu, 14 Jul 2011 15:07:00 +0000 Date: Thu, 14 Jul 2011 11:07:00 -0400 From: Christoph Hellwig To: KAMEZAWA Hiroyuki Cc: Christoph Hellwig , Mel Gorman , Linux-MM , LKML , XFS , Dave Chinner , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110714150700.GC23587@infradead.org> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> <20110714044643.GA3203@infradead.org> <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310656031 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68905 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > for the typical non-overwrite workloads, and none has fallen apart. > > > > In fact there's no way we can enable them as the memcg calling contexts > > tend to have massive stack usage. > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? We're using a fairly deep stack in normal buffered read/write, wich is almost 100% common code. It's not just the long callchain (see below), but also that we put the unneeded kiocb and a vector of I/O vects on the stack: vfs_writev do_readv_writev do_sync_write generic_file_aio_write __generic_file_aio_write generic_file_buffered_write generic_perform_write block_write_begin grab_cache_page_write_begin add_to_page_cache_lru add_to_page_cache add_to_page_cache_locked mem_cgroup_cache_charge this might additionally come from in-kernel callers like nfsd, which has even more stack space used. And at this point we only enter the memcg/reclaim code, which last time I had a stack trace ate up another about 3k of stack space. From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 14 10:10:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EFA2R4142811 for ; Thu, 14 Jul 2011 10:10:03 -0500 X-ASG-Debug-ID: 1310656201-5c3100010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DE6016D451 for ; Thu, 14 Jul 2011 08:10:01 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id NYS2litCdE18fHfe for ; Thu, 14 Jul 2011 08:10:01 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhNY7-000071-3D; Thu, 14 Jul 2011 15:09:59 +0000 Date: Thu, 14 Jul 2011 11:09:59 -0400 From: Christoph Hellwig To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Message-ID: <20110714150959.GA30936@infradead.org> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-6-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310567487-15367-6-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310656201 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0008 1.0000 -2.0161 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68905 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 03:31:27PM +0100, Mel Gorman wrote: > It is preferable that no dirty pages are dispatched from the page > reclaim path. If reclaim is encountering dirty pages, it implies that > either reclaim is getting ahead of writeback or use-once logic has > prioritise pages for reclaiming that are young relative to when the > inode was dirtied. what does this buy us? If at all we should prioritize by a zone, e.g. tell write_cache_pages only to bother with writing things out if the dirty page is in a given zone. We'd probably still cluster around it to make sure we get good I/O patterns, but would only start I/O if it has a page we actually care about. From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 14 10:23:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EFN8f6143502 for ; Thu, 14 Jul 2011 10:23:08 -0500 X-ASG-Debug-ID: 1310656986-50cf00b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9E7416CF01; Thu, 14 Jul 2011 08:23:07 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id QQE3ltzy6BCgMyVy; Thu, 14 Jul 2011 08:23:07 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhNko-0003Dt-N0; Thu, 14 Jul 2011 15:23:06 +0000 Date: Thu, 14 Jul 2011 11:23:06 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: update test 250 and its golden output Subject: Re: [PATCH] xfstests: update test 250 and its golden output Message-ID: <20110714152306.GB9092@infradead.org> References: <201107132028.p6DKSm8G018318@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107132028.p6DKSm8G018318@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310656987 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0108 1.0000 -1.9508 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.85 X-Barracuda-Spam-Status: No, SCORE=-1.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68907 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From mgorman@suse.de Thu Jul 14 10:49:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EFnMV6144730 for ; Thu, 14 Jul 2011 10:49:22 -0500 X-ASG-Debug-ID: 1310658560-41e4011b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0E0DE17C9FC6 for ; Thu, 14 Jul 2011 08:49:20 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id fNfIBHJjG9oiqDgz for ; Thu, 14 Jul 2011 08:49:20 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 247E48F9AB; Thu, 14 Jul 2011 17:49:18 +0200 (CEST) Date: Thu, 14 Jul 2011 16:49:15 +0100 From: Mel Gorman To: Christoph Hellwig Cc: Linux-MM , LKML , XFS , Dave Chinner , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Subject: Re: [PATCH 5/5] mm: writeback: Prioritise dirty inodes encountered by direct reclaim for background flushing Message-ID: <20110714154915.GV7529@suse.de> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-6-git-send-email-mgorman@suse.de> <20110714150959.GA30936@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110714150959.GA30936@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1310658561 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0410 1.0000 -1.7568 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.76 X-Barracuda-Spam-Status: No, SCORE=-1.76 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68907 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 11:09:59AM -0400, Christoph Hellwig wrote: > On Wed, Jul 13, 2011 at 03:31:27PM +0100, Mel Gorman wrote: > > It is preferable that no dirty pages are dispatched from the page > > reclaim path. If reclaim is encountering dirty pages, it implies that > > either reclaim is getting ahead of writeback or use-once logic has > > prioritise pages for reclaiming that are young relative to when the > > inode was dirtied. > > what does this buy us? Very little. The vague intention was to avoid a situation where kswapds priority was raised such that it had to write pages to clean a particular zone. > If at all we should prioritize by a zone, > e.g. tell write_cache_pages only to bother with writing things out > if the dirty page is in a given zone. We'd probably still cluster > around it to make sure we get good I/O patterns, but would only start > I/O if it has a page we actually care about. > That would make more sense. I've dropped this patch entirely. -- Mel Gorman SUSE Labs From aelder@sgi.com Thu Jul 14 12:04:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EH4oJG148578 for ; Thu, 14 Jul 2011 12:04:50 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 92425AC002; Thu, 14 Jul 2011 10:04:46 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 12:04:45 -0500 Subject: Re: [PATCH 1/1] Fix the ltp Makefile to allow for installation of all non-c (scripts) files From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , , In-Reply-To: <20110714145809.GB23587@infradead.org> References: <20110713121320.GA28126@infradead.org> <1310581564.1998.38.camel@doink> <20110714034336.GA30541@infradead.org> <20110714040326.GB31294@dastard> <20110714145809.GB23587@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 12:04:45 -0500 Message-ID: <1310663085.2067.18.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-14 at 10:58 -0400, Christoph Hellwig wrote: > On Thu, Jul 14, 2011 at 02:03:26PM +1000, Dave Chinner wrote: > > On Wed, Jul 13, 2011 at 11:43:36PM -0400, Christoph Hellwig wrote: > > > I'm fine with enabling 080 by default, it passes for me. > > > > It needs /bin/sh -> /bin/bash conversion first - the current version > > fails miserably without that on all my test systems.... > > Does the simple s/sh/bash/ fix it for you? Dave, I figured out that you must have been talking about ltp/rwtest.sh needing to be converted to bash. I got rid of my /bin/sh and /usr/bin/sh symlinks and tried it out. Turns out I can make some progress on it, but I now find that /usr/sbin/xfs_check specifies /bin/sh as its interpreter. I got around that by using "xfs_repair -n" for XFS_CHECK_PROG, and outside of it producing different output the test seems to work OK. What else, specifically are you running into? And if you have trouble with the /bin/sh in rwtest.sh, why are you not running into similar trouble with xfs_check? I don't mind doing the fix, but now I'm not sure what's required. -Alex From peter.klotz99@gmail.com Thu Jul 14 13:03:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EI3FpN151653 for ; Thu, 14 Jul 2011 13:03:15 -0500 X-ASG-Debug-ID: 1310666593-7509000e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ADBFA1E61B59 for ; Thu, 14 Jul 2011 11:03:14 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id ReZbdBxhxlt8xlYS for ; Thu, 14 Jul 2011 11:03:14 -0700 (PDT) Received: by fxg11 with SMTP id 11so1367178fxg.6 for ; Thu, 14 Jul 2011 11:03:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type:content-transfer-encoding; bh=ViM7hCC4IlUkfM104VM5BzLt016VWpZvRwDp35iMsss=; b=dlH6Gc0AAplgIyUWhwY9GWu3ifhfbKVcjrMFP2VG37pCcYoGOLH1l6/aYZI+bozhRr QcjjILphaIMI2zgqm2RLg0mADAq7ytMh+KmIV7RldF85PznJ1JPXQ8BIhsI9YNNlYbTA kwQyzGo9T8rq+5QgY5k8Snhk3Cur5QENK4Xlg= Received: by 10.223.94.78 with SMTP id y14mr3884896fam.24.1310666593482; Thu, 14 Jul 2011 11:03:13 -0700 (PDT) Received: from [192.168.0.11] (chello080109145086.tirol.surfer.at [80.109.145.86]) by mx.google.com with ESMTPS id o17sm266081fal.2.2011.07.14.11.03.11 (version=TLSv1/SSLv3 cipher=OTHER); Thu, 14 Jul 2011 11:03:11 -0700 (PDT) Message-ID: <4E1F2F5D.8060505@gmail.com> Date: Thu, 14 Jul 2011 20:03:09 +0200 From: Peter Klotz User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110516 Thunderbird/3.1.10 MIME-Version: 1.0 To: Guus Sliepen , Nick Piggin , Christoph Hellwig , Roman Kononov , linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: BUG: soft lockup - is this XFS problem? Subject: Re: BUG: soft lockup - is this XFS problem? References: <20090105064838.GA5209@wotan.suse.de> <20110714112324.GM30145@sliepen.org> In-Reply-To: <20110714112324.GM30145@sliepen.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1310666594 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0199 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68917 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/14/2011 01:23 PM, Guus Sliepen wrote: > I'm having a problem with a system having an XFS filesystem on RAID locking up > fairly consistently when writing large amounts of data to it, with several > kernels, including 2.6.38.2 and 2.6.39.3, on both AMD and Intel multi-core > processors. The kernel always logs this several times: > > BUG: soft lockup - CPU#2 stuck for 67s! [kswapd0:33] ... >> I believe this patch should solve it. Please test and confirm before >> I send it upstream. > > Further comments on that thread in 2009 indicated the patch was very useful, > but it doesn't seem to have been applied upstream. Is there any reason this > patch should not be applied? Hello Guus This Bugzilla entry documents the XFS bug from 2009 in detail including links: http://oss.sgi.com/bugzilla/show_bug.cgi?id=805 The problem was finally solved by a patch proposed by Linus. This is the reason the original patch developed by Nick never made it into the kernel. My tests back then showed that both patches fixed the problem. It seems you have found a test case where just Nick's patch helps. Regards, Peter. From aelder@sgi.com Thu Jul 14 13:22:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EIM0ds152849 for ; Thu, 14 Jul 2011 13:22:01 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8825F304032; Thu, 14 Jul 2011 11:21:57 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 13:21:57 -0500 Subject: Re: [PATCH 1/2 v7] XFS TESTS: ENOSPC Punch Hole: Move su routines in 123 to common.rc From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <1309272301-5742-2-git-send-email-achender@linux.vnet.ibm.com> References: <1309272301-5742-1-git-send-email-achender@linux.vnet.ibm.com> <1309272301-5742-2-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 13:21:55 -0500 Message-ID: <1310667715.2067.42.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-06-28 at 07:45 -0700, Allison Henderson wrote: > This patch moves the su routines in test 123 to common.rc > so that they can also be used in the new test 255 > > Signed-off-by: Allison Henderson This looks good. Reviewed-by: Alex Elder From aelder@sgi.com Thu Jul 14 13:22:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EIM7gC152869 for ; Thu, 14 Jul 2011 13:22:07 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5386530404E; Thu, 14 Jul 2011 11:22:07 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 13:22:06 -0500 Subject: Re: [PATCH 2/2 v7] XFS TESTS: Add ENOSPC Hole Punch Test From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <1309272301-5742-3-git-send-email-achender@linux.vnet.ibm.com> References: <1309272301-5742-1-git-send-email-achender@linux.vnet.ibm.com> <1309272301-5742-3-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 13:22:05 -0500 Message-ID: <1310667725.2067.43.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-06-28 at 07:45 -0700, Allison Henderson wrote: > This patch adds a new test 255 that tests that a hole can be punched even when the > disk is full. Reserved blocks should be used to allow a punch hole to proceed even > when there is not enough blocks to further fragment the file. To test this, the > file system is fragmented by punching holes in regular intervals and filling > the file system between punches. This will eventually force the file system to use > reserved blocks to proceed with the punch hole operation. > > The work in this patch is a continuation from a previous patch set that has been > partially accepted. > > Signed-off-by: Allison Henderson First of all, I renumbered the test 256 (and will do that for you if necessary before committing the change). Second, I can confirm that this new test passes for XFS on my setup. I don't know what the threshold for inclusion in the "quick" group is, but it's under a minute so that's fine with me. Third, maybe we can create a new group "punch" or something like that to tag tests that exercise hole punching functionality (tests 252, 255, and now this one at least; maybe 175 and 176 too). Finally, I found a bug and a few other spots that really ought to be fixed but aren't really serious problems. I also have a number of other things that I commented on, but tried to make it clear where they're just remarks to consider, not requests to make a change. -Alex > --- > v5->v6 > > Test moved out of 252 and put in its own test 255 > > _fill_fs and _test_full_fs_punch have been moved from common.punch > to test 255 and modified to use the _user_do routines in common.rc > > _fill_fs has been optimized to stop once files smaller than a block > cannot be created. > > v6->v7 > Fixed bad file add > > > :000000 100644 0000000... 3d39fdb... A 255 > :000000 100644 0000000... 3525403... A 255.out > :100644 100644 1f86075... c045e70... M group > 255 | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 255.out | 1 + > group | 1 + > 3 files changed, 180 insertions(+), 0 deletions(-) > > diff --git a/255 b/255 > new file mode 100644 > index 0000000..3d39fdb > --- /dev/null > +++ b/255 > @@ -0,0 +1,178 @@ > +#! /bin/bash > +# FS QA Test No. 255 > +# > +# Test Full File System Hole Punching > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2011 IBM Corporation. All Rights Reserved. > +# > +# 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. > +# > +# This program is distributed in the hope that it would 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 the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +# > +#----------------------------------------------------------------------- > +# > +# creator > +owner=achender@linux.vnet.ibm.com > + > +seq=`basename $0` > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > + > +_cleanup() > +{ > + rm -f $tmp.* > +} > + > +trap "_cleanup ; exit \$status" 0 1 2 3 15 > + > +# get standard environment, filters and checks > +. ./common.rc > +. ./common.filter > +. ./common.punch > + > +# real QA test starts here > +_supported_fs generic > +_supported_os Linux > + > +_require_xfs_io_falloc_punch > +_require_scratch > +_require_user > + > +testfile=$TEST_DIR/255.$$ testfile=$TEST_DIR/$seq.$$ > + > + The _fill_fs function seems like it may be useful elsewhere, so it may end up in common.rc eventually. (Easy enough to move it there later though.) > +# _fill_fs() > +# > +# Fills a file system by repeatedly creating files in the given folder > +# starting with the given file size. Files are reduced in size when > +# they can no longer fit untill no more files can be created. > +# > +# This routine is used by _test_full_fs_punch to test that a hole may > +# still be punched when the disk is full by borrowing reserved blocks. > +# All files are created as a non root user to prevent reserved blocks > +# from being consumed. > +# > +_fill_fs() { > + local file_size=$1 > + local dir=$2 > + local block_size=$3 > + local file_count=1 > + local bytes_written=0 > + > + if [ $# -ne 3 ] > + then > + echo "USAGE: _fill_fs filesize dir block size" > + exit 1 > + fi > + > + # Creation of files or folders > + # must not be done as root or > + # reserved blocks will be consumed > + _user_do "mkdir -p $dir &> /dev/null" I personally prefer seeing "> /dev/null 2>&1" rather than "&> /dev/null", to make it that much more explicit that both are being redirected. This is purely a style thing, and I say this mainly to see if anyone else has a preference one way or another. (This appears several times in the file, so if you do choose to change it, do so throughout.) > + if [ $? -ne 0 ] ; then > + return 0 > + fi > + > + if [ $file_size -lt $block_size ] > + then > + $file_size = $block_size file_size=$block_size (This one is a bug.) > + fi > + > + while [ $file_size -ge $block_size ] > + do > + bytes_written=0 > + _user_do "$XFS_IO_PROG -F -f -c \"pwrite 0 $file_size\" $dir/$file_count.bin &> /dev/null" > + Try to split these long lines, e.g.: _user_do "$XFS_IO_PROG -F -f -c \ \"pwrite 0 $file_size\" \ $dir/$file_count.bin &> /dev/null" > + if [ -f $dir/$file_count.bin ] > + then > + bytes_written=`$XFS_IO_PROG -F -c "stat" $dir/$file_count.bin | grep size | cut -d ' ' -f3` Personal preference again, but as long as we're using bash and not sh, Use $(...) rather than `...` for sub-commands. > + fi > + > + # If there was no room to make the file, > + # then divide it in half, and keep going > + if [ $bytes_written -lt $file_size ] > + then > + file_size=$(( $file_size / 2 )) > + fi > + file_count=$(( $file_count + 1 )) > + > + done > +} > + > +# _test_full_fs_punch() > +# > +# This function will test that a hole may be punched > +# even when the file system is full. Reserved blocks > +# should be used to allow a punch hole to proceed even > +# when there is not enough blocks to further fragment the > +# file. To test this, this function will fragment the file > +# system by punching holes in regular intervals and filling > +# the file system between punches. > +# > +_test_full_fs_punch() > +{ > + local hole_len=$1 # The length of the holes to punch > + local hole_interval=$2 # The interval between the holes > + local iterations=$3 # The number of holes to punch > + local file_name=$4 # File to punch holes in > + local block_size=$5 # File system block size > + local file_len=$(( $(( $hole_len + $hole_interval )) * $iterations )) > + local path=`dirname $file_name` > + local hole_offset=0 > + > + if [ $# -ne 5 ] > + then > + echo "USAGE: _test_full_fs_punch hole_len hole_interval iterations file_name block_size" > + exit 1 > + fi > + > + rm -f $file_name &> /dev/null > + > + $XFS_IO_PROG -F -f -c "pwrite 0 $file_len" \ > + -c "fsync" $file_name &> /dev/null > + chmod 666 $file_name > + > + _fill_fs $(( 1024 * 1024 * 1024 )) $path/fill $block_size You are specifying a file size that's equal to the filesystem size, which I think is guaranteed to fail its first pass. Maybe start with half of the filesystem (or even 90% of it). (I don't know whether this is a a real issue or not though.) Also, you could maybe use a shell variable to represent the filesystem size, since you use it twice in this script. > + > + for (( i=0; i<$iterations; i++ )) > + do > + # This part must not be done as root in order to > + # test that reserved blocks are used when needed > + _user_do "$XFS_IO_PROG -F -f -c \"fpunch $hole_offset $hole_len\" $file_name" > + rc=$? > + if [ $? -ne 0 ] ; then > + echo Punch hole failed > + break > + fi > + > + hole_offset=$(( $hole_offset + $hole_len + $hole_interval )) > + > + _fill_fs $hole_len $path/fill.$i $block_size > + > + done > +} > + > +# Make a small file system to fillkk > +umount $SCRATCH_DEV &> /dev/null > +_scratch_mkfs_sized $(( 1024 * 1024 * 1024 )) &> /dev/null > +_scratch_mount > +# Test must be able to write files with non-root permissions > +chmod 777 $SCRATCH_MNT > + > +block_size=`stat -f $SCRATCH_DEV | grep "Block size" | cut -d " " -f3` > +_test_full_fs_punch $(( $block_size * 2 )) $block_size 500 $SCRATCH_MNT/252.$$ $block_size Use $SCRATCH_MNT/$seq.$$ ...and possibly define this path in a variable at the top of the file. > + > +status=0 ; exit > diff --git a/255.out b/255.out > new file mode 100644 > index 0000000..3525403 > --- /dev/null > +++ b/255.out > @@ -0,0 +1 @@ > +QA output created by 255 > diff --git a/group b/group > index 1f86075..c045e70 100644 > --- a/group > +++ b/group > @@ -368,3 +368,4 @@ deprecated > 252 auto quick prealloc > 253 auto quick > 254 auto quick > +255 auto quick From aelder@sgi.com Thu Jul 14 13:27:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EIRFFO153317 for ; Thu, 14 Jul 2011 13:27:16 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 834CD8F8040; Thu, 14 Jul 2011 11:27:12 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 13:27:12 -0500 Subject: Re: [PATCH] xfsprogs: don't hard code the shell binary From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , In-Reply-To: <20110628074137.GA6123@infradead.org> References: <1309245348-12638-1-git-send-email-david@fromorbit.com> <20110628074137.GA6123@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 13:27:11 -0500 Message-ID: <1310668031.2067.44.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-06-28 at 03:41 -0400, Christoph Hellwig wrote: > On Tue, Jun 28, 2011 at 05:15:48PM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > Recent changes to debian unstable user space have caused the > > xfsprogs build to break as certain shell functionality is being > > assumed by libtool and friends. The configure scripts test and > > select the correct shell, but the input files ignore this and hard > > code the shell to use and hence now break. > > > > Fix this by using the shell that the configure scripts decide is the > > right one to use. > > Looks good. The same fix should also be applied to xfsdump, xfstests > and dmapi. Agree. Reviewed-by: Alex Elder > Signed-off-by: Christoph Hellwig From aelder@sgi.com Thu Jul 14 13:40:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EIeLNe154115 for ; Thu, 14 Jul 2011 13:40:21 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 67818AC005; Thu, 14 Jul 2011 11:40:17 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 13:40:16 -0500 Subject: Re: XFS Test Case:252 - Shows Wrong Output From: Alex Elder Reply-To: To: Amit Sahrawat CC: Dave Chinner , , Allison Henderson In-Reply-To: References: <4E022818.7030406@linux.vnet.ibm.com> <20110623062030.GY32466@dastard> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 13:40:15 -0500 Message-ID: <1310668815.2067.53.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-06-24 at 12:45 +0530, Amit Sahrawat wrote: > This has to be an issue with everyone who is using XFS version which is not > supporting "fpunch" but still none has raised this. As per my view, the > support checking function *_require_xfs_io_falloc_punch() *is not working > correctly otherwise it should return from that point. > > *Instead of:* > echo $testio | grep -q "not found" > If we are sure of a *"hole"* from that command, then we can grep for "hole" > in $testio. > > Please correct me if I am wrong. > > Thanks & Regards, > Amit Sahrawat I think what you are saying is that in your environment, _require_xfs_io_falloc_punch() is not properly deciding whether the fpunch operation is supported. And you are suggesting a way to determine it properly, is that right? Unfortunately it is difficult to know whether your suggestion is a proper fix without knowing details of your current system, as well as details about what you are seeing that is incorrect. We welcome suggested fixes from people. Often that takes the form of a patch that proposes a fix, but if enough precise information is provided about the problem we can sometimes develop a fix for you. Can you supply either a patch with a proposed fix, or else provide more information about exactly what you are seeing? Otherwise I don't think we're going to be able to help. Thanks. -Alex From guus@sliepen.org Thu Jul 14 14:29:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EJTnqS157295 for ; Thu, 14 Jul 2011 14:29:50 -0500 X-ASG-Debug-ID: 1310671787-473003c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from arianus.sliepen.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D2E5D167F2EA for ; Thu, 14 Jul 2011 12:29:47 -0700 (PDT) Received: from arianus.sliepen.org (arianus.sliepen.org [92.243.30.131]) by cuda.sgi.com with ESMTP id z6zpuXrdE3MgncQk for ; Thu, 14 Jul 2011 12:29:47 -0700 (PDT) Received: from sliepen.org (xar.sliepen.oi [IPv6:fec0::1:204:76ff:fe14:6e86]) by arianus.sliepen.org (Postfix) with ESMTP id 4FF87264C4; Thu, 14 Jul 2011 19:29:46 +0000 (UTC) Received: by sliepen.org (Postfix, from userid 1001) id 1097060368; Thu, 14 Jul 2011 21:29:45 +0200 (CEST) Date: Thu, 14 Jul 2011 21:29:45 +0200 From: Guus Sliepen To: Peter Klotz Cc: Nick Piggin , Christoph Hellwig , Roman Kononov , linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: BUG: soft lockup - is this XFS problem? Subject: Re: BUG: soft lockup - is this XFS problem? Message-ID: <20110714192945.GX18364@sliepen.org> Mail-Followup-To: Guus Sliepen , Peter Klotz , Nick Piggin , Christoph Hellwig , Roman Kononov , linux-kernel@vger.kernel.org, xfs@oss.sgi.com References: <20090105064838.GA5209@wotan.suse.de> <20110714112324.GM30145@sliepen.org> <4E1F2F5D.8060505@gmail.com> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="L1EIGrW/+75u5Nmw" Content-Disposition: inline In-Reply-To: <4E1F2F5D.8060505@gmail.com> X-oi: oi User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: arianus.sliepen.org[92.243.30.131] X-Barracuda-Start-Time: 1310671788 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68922 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --L1EIGrW/+75u5Nmw Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Jul 14, 2011 at 08:03:09PM +0200, Peter Klotz wrote: > On 07/14/2011 01:23 PM, Guus Sliepen wrote: >=20 > >I'm having a problem with a system having an XFS filesystem on RAID lock= ing up > >fairly consistently when writing large amounts of data to it, with sever= al > >kernels, including 2.6.38.2 and 2.6.39.3, on both AMD and Intel multi-co= re > >processors. The kernel always logs this several times: > > > >BUG: soft lockup - CPU#2 stuck for 67s! [kswapd0:33] [...] > This Bugzilla entry documents the XFS bug from 2009 in detail > including links: >=20 > http://oss.sgi.com/bugzilla/show_bug.cgi?id=3D805 Aha, I did not look at that before. > The problem was finally solved by a patch proposed by Linus. This is > the reason the original patch developed by Nick never made it into > the kernel. >=20 > My tests back then showed that both patches fixed the problem. >=20 > It seems you have found a test case where just Nick's patch helps. Yes. I agree with Linus that the root cause should be fixed, not the sympto= ms. I don't have time to dive in the kernel code myself, but I do have several nearly identical machines where I can test things on. I will be happy to te= st out patches and/or different kernel versions or kernel configurations, and I can provide dmesg output and perhaps other information if necessary. --=20 Met vriendelijke groet / with kind regards, Guus Sliepen --L1EIGrW/+75u5Nmw Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) iEYEARECAAYFAk4fQ6kACgkQAxLow12M2nt0TgCgluSri0GsBwO/5BQHTWT3n10k Li0AoJ+JGWW6TDhFX6CcHnl7cTqLHxrE =k+8V -----END PGP SIGNATURE----- --L1EIGrW/+75u5Nmw-- From bfields@fieldses.org Thu Jul 14 15:50:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EKoexI162464 for ; Thu, 14 Jul 2011 15:50:40 -0500 X-ASG-Debug-ID: 1310676637-432701480000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5CBC811EDE04; Thu, 14 Jul 2011 13:50:38 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id kUmNh32Ov3hbREa6; Thu, 14 Jul 2011 13:50:38 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1QhSrl-0005I6-0U; Thu, 14 Jul 2011 16:50:37 -0400 Date: Thu, 14 Jul 2011 16:50:36 -0400 To: Alex Elder , xfs-masters@oss.sgi.com Cc: xfs@oss.sgi.com, linux-nfs@vger.kernel.org X-ASG-Orig-Subj: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110714205036.GA19457@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) From: "J. Bruce Fields" X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1310676639 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68927 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: J. Bruce Fields On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE on attempts to use a filehandle of a deleted file (spotted with pynfs test PUTFH3). The ENOENT was coming from xfs_iget. (It's tempting to wonder whether we should just map all xfs_iget errors to ESTALE, but I don't believe so--xfs_iget can also return ENOMEM at least, which we wouldn't want mapped to ESTALE.) While we're at it, the other return of ENOENT in xfs_nfs_get_inode() also looks wrong. Signed-off-by: J. Bruce Fields --- fs/xfs/linux-2.6/xfs_export.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index f4f878f..75e5d32 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c @@ -151,14 +151,14 @@ xfs_nfs_get_inode( * We don't use ESTALE directly down the chain to not * confuse applications using bulkstat that expect EINVAL. */ - if (error == EINVAL) + if (error == EINVAL || error == ENOENT) error = ESTALE; return ERR_PTR(-error); } if (ip->i_d.di_gen != generation) { IRELE(ip); - return ERR_PTR(-ENOENT); + return ERR_PTR(-ESTALE); } return VFS_I(ip); -- 1.7.4.1 From aelder@sgi.com Thu Jul 14 17:25:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EMPwUF168523; Thu, 14 Jul 2011 17:25:58 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 935A9AC002; Thu, 14 Jul 2011 15:25:51 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Thu, 14 Jul 2011 17:25:51 -0500 Subject: Re: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE From: Alex Elder Reply-To: To: "J. Bruce Fields" CC: , , In-Reply-To: <20110714205036.GA19457@fieldses.org> References: <20110714205036.GA19457@fieldses.org> Content-Type: text/plain; charset="UTF-8" Date: Thu, 14 Jul 2011 17:25:50 -0500 Message-ID: <1310682350.2067.110.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-14 at 16:50 -0400, J. Bruce Fields wrote: > From: J. Bruce Fields > > On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE > on attempts to use a filehandle of a deleted file (spotted with pynfs > test PUTFH3). The ENOENT was coming from xfs_iget. > > (It's tempting to wonder whether we should just map all xfs_iget errors > to ESTALE, but I don't believe so--xfs_iget can also return ENOMEM at > least, which we wouldn't want mapped to ESTALE.) > > While we're at it, the other return of ENOENT in xfs_nfs_get_inode() > also looks wrong. > > Signed-off-by: J. Bruce Fields Looks reasonable to me. I'll give others a chance to weigh in, but otherwise I'll get this in for Linux 3.1. Reviewed-by: Alex Elder From BATV+c84f8765c34ec73fc1d8+2881+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 14 17:31:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6EMVUQ6168915 for ; Thu, 14 Jul 2011 17:31:30 -0500 X-ASG-Debug-ID: 1310682687-5e0e00f40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C1BD6EB01; Thu, 14 Jul 2011 15:31:27 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id fbljzcafG95wcyda; Thu, 14 Jul 2011 15:31:27 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhURK-0008SO-Il; Thu, 14 Jul 2011 22:31:26 +0000 Date: Thu, 14 Jul 2011 18:31:26 -0400 From: Christoph Hellwig To: "J. Bruce Fields" Cc: Alex Elder , xfs-masters@oss.sgi.com, xfs@oss.sgi.com, linux-nfs@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: Re: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110714223126.GA28694@infradead.org> References: <20110714205036.GA19457@fieldses.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714205036.GA19457@fieldses.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310682688 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68934 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 04:50:36PM -0400, J. Bruce Fields wrote: > From: J. Bruce Fields > > On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE > on attempts to use a filehandle of a deleted file (spotted with pynfs > test PUTFH3). The ENOENT was coming from xfs_iget. With that you mean the ip->i_d.di_mode checks? Given that we should only be bale to get these from NFS or the handle ioctls I suspect just turning them into ESTALE should be fine. From kamezawa.hiroyu@jp.fujitsu.com Thu Jul 14 19:02:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6F02Yqs174931 for ; Thu, 14 Jul 2011 19:02:35 -0500 X-ASG-Debug-ID: 1310688152-155a005d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fgwmail6.fujitsu.co.jp (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2DEDD11EE632 for ; Thu, 14 Jul 2011 17:02:33 -0700 (PDT) Received: from fgwmail6.fujitsu.co.jp (fgwmail6.fujitsu.co.jp [192.51.44.36]) by cuda.sgi.com with ESMTP id XfcJKE9Y0z9Bio22 for ; Thu, 14 Jul 2011 17:02:33 -0700 (PDT) Received: from m4.gw.fujitsu.co.jp (unknown [10.0.50.74]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id B6A243EE0C0 for ; Fri, 15 Jul 2011 09:02:31 +0900 (JST) Received: from smail (m4 [127.0.0.1]) by outgoing.m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 9BC1F45DF12 for ; Fri, 15 Jul 2011 09:02:31 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (s4.gw.fujitsu.co.jp [10.0.50.94]) by m4.gw.fujitsu.co.jp (Postfix) with ESMTP id 7DF5F45DF0F for ; Fri, 15 Jul 2011 09:02:31 +0900 (JST) Received: from s4.gw.fujitsu.co.jp (localhost.localdomain [127.0.0.1]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 6AFD91DB8037 for ; Fri, 15 Jul 2011 09:02:31 +0900 (JST) Received: from m106.s.css.fujitsu.com (m106.s.css.fujitsu.com [10.240.81.146]) by s4.gw.fujitsu.co.jp (Postfix) with ESMTP id 352A21DB8044 for ; Fri, 15 Jul 2011 09:02:31 +0900 (JST) Received: from m106.css.fujitsu.com (m106 [127.0.0.1]) by m106.s.css.fujitsu.com (Postfix) with ESMTP id E1585A00021; Fri, 15 Jul 2011 09:02:30 +0900 (JST) Received: from WIN-WAU6SZB64RR (unknown [10.124.101.142]) by m106.s.css.fujitsu.com (Postfix) with SMTP id 4AA6DA0000B; Fri, 15 Jul 2011 09:02:30 +0900 (JST) X-SecurityPolicyCheck-FJ: OK by FujitsuOutboundMailChecker v1.3.1 Received: from WIN-WAU6SZB64RR[10.124.101.142] by WIN-WAU6SZB64RR (FujitsuOutboundMailChecker v1.3.1/9992[10.124.101.142]); Fri, 15 Jul 2011 08:55:30 +0900 (JST) Date: Fri, 15 Jul 2011 08:55:20 +0900 From: KAMEZAWA Hiroyuki To: Christoph Hellwig Cc: Mel Gorman , Linux-MM , LKML , XFS , Dave Chinner , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-Id: <20110715085520.23feca2d.kamezawa.hiroyu@jp.fujitsu.com> In-Reply-To: <20110714150700.GC23587@infradead.org> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> <20110714044643.GA3203@infradead.org> <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> <20110714150700.GC23587@infradead.org> Organization: FUJITSU Co. LTD. X-Mailer: Sylpheed 3.1.1 (GTK+ 2.10.14; i686-pc-mingw32) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Barracuda-Connect: fgwmail6.fujitsu.co.jp[192.51.44.36] X-Barracuda-Start-Time: 1310688154 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68939 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 14 Jul 2011 11:07:00 -0400 Christoph Hellwig wrote: > On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > > for the typical non-overwrite workloads, and none has fallen apart. > > > > > > In fact there's no way we can enable them as the memcg calling contexts > > > tend to have massive stack usage. > > > > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? > > We're using a fairly deep stack in normal buffered read/write, > wich is almost 100% common code. It's not just the long callchain > (see below), but also that we put the unneeded kiocb and a vector > of I/O vects on the stack: > > vfs_writev > do_readv_writev > do_sync_write > generic_file_aio_write > __generic_file_aio_write > generic_file_buffered_write > generic_perform_write > block_write_begin > grab_cache_page_write_begin > add_to_page_cache_lru > add_to_page_cache > add_to_page_cache_locked > mem_cgroup_cache_charge > > this might additionally come from in-kernel callers like nfsd, > which has even more stack space used. And at this point we only > enter the memcg/reclaim code, which last time I had a stack trace > ate up another about 3k of stack space. > Hmm. I'll prepare 2 functions for memcg 1. asynchronous memory reclaim as kswapd does. 2. dirty_ratio please remove ->writepage 1st. It may break memcg but it happens sometimes. We'll do fix. Thanks, -Kame From achender@linux.vnet.ibm.com Thu Jul 14 20:06:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6F16qCd178233 for ; Thu, 14 Jul 2011 20:06:52 -0500 X-ASG-Debug-ID: 1310692011-3e0900960000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e6.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 426A511EEE0E for ; Thu, 14 Jul 2011 18:06:51 -0700 (PDT) Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.146]) by cuda.sgi.com with ESMTP id 19TG7JuBgf9rRtSe for ; Thu, 14 Jul 2011 18:06:51 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e6.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6F0ggWX001665 for ; Thu, 14 Jul 2011 20:42:42 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6F16nCi161950 for ; Thu, 14 Jul 2011 21:06:49 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6EL6bXm020036 for ; Thu, 14 Jul 2011 18:06:37 -0300 Received: from lc4eb0185863151.ibm.com (sig-9-65-152-10.mts.ibm.com [9.65.152.10]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6EL6aWn019483; Thu, 14 Jul 2011 18:06:36 -0300 Message-ID: <4E1F92A7.3030209@linux.vnet.ibm.com> Date: Thu, 14 Jul 2011 18:06:47 -0700 From: Allison Henderson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: aelder@sgi.com CC: xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH 2/2 v7] XFS TESTS: Add ENOSPC Hole Punch Test Subject: Re: [PATCH 2/2 v7] XFS TESTS: Add ENOSPC Hole Punch Test References: <1309272301-5742-1-git-send-email-achender@linux.vnet.ibm.com> <1309272301-5742-3-git-send-email-achender@linux.vnet.ibm.com> <1310667725.2067.43.camel@doink> In-Reply-To: <1310667725.2067.43.camel@doink> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e6.ny.us.ibm.com[32.97.182.146] X-Barracuda-Start-Time: 1310692012 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/14/2011 11:22 AM, Alex Elder wrote: > On Tue, 2011-06-28 at 07:45 -0700, Allison Henderson wrote: >> This patch adds a new test 255 that tests that a hole can be punched even when the >> disk is full. Reserved blocks should be used to allow a punch hole to proceed even >> when there is not enough blocks to further fragment the file. To test this, the >> file system is fragmented by punching holes in regular intervals and filling >> the file system between punches. This will eventually force the file system to use >> reserved blocks to proceed with the punch hole operation. >> >> The work in this patch is a continuation from a previous patch set that has been >> partially accepted. >> >> Signed-off-by: Allison Henderson > Hi Alex, Thx for the review! :) Comments below: > First of all, I renumbered the test 256 (and will do > that for you if necessary before committing the change). > > Second, I can confirm that this new test passes for > XFS on my setup. I don't know what the threshold for > inclusion in the "quick" group is, but it's under a > minute so that's fine with me. As I recall it was pretty quick on xfs, but over a minute for ext4, so I will pull off the quick tag. > > Third, maybe we can create a new group "punch" or > something like that to tag tests that exercise > hole punching functionality (tests 252, 255, and > now this one at least; maybe 175 and 176 too). > I think that's a good idea, I will add that in the next version. > Finally, I found a bug and a few other spots that > really ought to be fixed but aren't really serious > problems. I also have a number of other things that > I commented on, but tried to make it clear where > they're just remarks to consider, not requests to > make a change. Ah, thank you for the careful eye, I will get those fixed up. > > -Alex > >> --- >> v5->v6 >> >> Test moved out of 252 and put in its own test 255 >> >> _fill_fs and _test_full_fs_punch have been moved from common.punch >> to test 255 and modified to use the _user_do routines in common.rc >> >> _fill_fs has been optimized to stop once files smaller than a block >> cannot be created. >> >> v6->v7 >> Fixed bad file add >> >> >> :000000 100644 0000000... 3d39fdb... A 255 >> :000000 100644 0000000... 3525403... A 255.out >> :100644 100644 1f86075... c045e70... M group >> 255 | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ >> 255.out | 1 + >> group | 1 + >> 3 files changed, 180 insertions(+), 0 deletions(-) >> >> diff --git a/255 b/255 >> new file mode 100644 >> index 0000000..3d39fdb >> --- /dev/null >> +++ b/255 >> @@ -0,0 +1,178 @@ >> +#! /bin/bash >> +# FS QA Test No. 255 >> +# >> +# Test Full File System Hole Punching >> +# >> +#----------------------------------------------------------------------- >> +# Copyright (c) 2011 IBM Corporation. All Rights Reserved. >> +# >> +# 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. >> +# >> +# This program is distributed in the hope that it would 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 the Free Software Foundation, >> +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA >> +# >> +#----------------------------------------------------------------------- >> +# >> +# creator >> +owner=achender@linux.vnet.ibm.com >> + >> +seq=`basename $0` >> +echo "QA output created by $seq" >> + >> +here=`pwd` >> +tmp=/tmp/$$ >> +status=1 # failure is the default! >> + >> +_cleanup() >> +{ >> + rm -f $tmp.* >> +} >> + >> +trap "_cleanup ; exit \$status" 0 1 2 3 15 >> + >> +# get standard environment, filters and checks >> +. ./common.rc >> +. ./common.filter >> +. ./common.punch >> + >> +# real QA test starts here >> +_supported_fs generic >> +_supported_os Linux >> + >> +_require_xfs_io_falloc_punch >> +_require_scratch >> +_require_user >> + >> +testfile=$TEST_DIR/255.$$ > testfile=$TEST_DIR/$seq.$$ > >> + >> + > > The _fill_fs function seems like it may be useful elsewhere, > so it may end up in common.rc eventually. (Easy enough to > move it there later though.) > In an earlier version of the patch, this function and _test_full_fs_punch() were in common.punch, but we moved it here since non of the other punch hole tests were using it. If you think other tests could make use of it though, I think it's a good idea to put it in common.rc. That way people wont have to worry about moving it, or wonder if something went wrong in the move. >> +# _fill_fs() >> +# >> +# Fills a file system by repeatedly creating files in the given folder >> +# starting with the given file size. Files are reduced in size when >> +# they can no longer fit untill no more files can be created. >> +# >> +# This routine is used by _test_full_fs_punch to test that a hole may >> +# still be punched when the disk is full by borrowing reserved blocks. >> +# All files are created as a non root user to prevent reserved blocks >> +# from being consumed. >> +# >> +_fill_fs() { >> + local file_size=$1 >> + local dir=$2 >> + local block_size=$3 >> + local file_count=1 >> + local bytes_written=0 >> + >> + if [ $# -ne 3 ] >> + then >> + echo "USAGE: _fill_fs filesize dir block size" >> + exit 1 >> + fi >> + >> + # Creation of files or folders >> + # must not be done as root or >> + # reserved blocks will be consumed >> + _user_do "mkdir -p $dir&> /dev/null" > > I personally prefer seeing "> /dev/null 2>&1" rather > than "&> /dev/null", to make it that much more > explicit that both are being redirected. This is > purely a style thing, and I say this mainly to see > if anyone else has a preference one way or another. > (This appears several times in the file, so if you > do choose to change it, do so throughout.) > Alrighty, I personally am not partial to one way over the other, but if it helps make the code easier for people to look at, I am happy to put it in :) >> + if [ $? -ne 0 ] ; then >> + return 0 >> + fi >> + >> + if [ $file_size -lt $block_size ] >> + then >> + $file_size = $block_size > file_size=$block_size > > (This one is a bug.) Got it :) I think the rest of what you have below are good modifications to put in. I will start working on an update. Thx again for the review! Allison Henderson > >> + fi >> + >> + while [ $file_size -ge $block_size ] >> + do >> + bytes_written=0 >> + _user_do "$XFS_IO_PROG -F -f -c \"pwrite 0 $file_size\" $dir/$file_count.bin&> /dev/null" >> + > > Try to split these long lines, e.g.: > _user_do "$XFS_IO_PROG -F -f -c \ > \"pwrite 0 $file_size\" \ > $dir/$file_count.bin&> /dev/null" > >> + if [ -f $dir/$file_count.bin ] >> + then >> + bytes_written=`$XFS_IO_PROG -F -c "stat" $dir/$file_count.bin | grep size | cut -d ' ' -f3` > > Personal preference again, but as long as we're using bash > and not sh, Use $(...) rather than `...` for sub-commands. > >> + fi >> + >> + # If there was no room to make the file, >> + # then divide it in half, and keep going >> + if [ $bytes_written -lt $file_size ] >> + then >> + file_size=$(( $file_size / 2 )) >> + fi >> + file_count=$(( $file_count + 1 )) >> + >> + done >> +} >> + >> +# _test_full_fs_punch() >> +# >> +# This function will test that a hole may be punched >> +# even when the file system is full. Reserved blocks >> +# should be used to allow a punch hole to proceed even >> +# when there is not enough blocks to further fragment the >> +# file. To test this, this function will fragment the file >> +# system by punching holes in regular intervals and filling >> +# the file system between punches. >> +# >> +_test_full_fs_punch() >> +{ >> + local hole_len=$1 # The length of the holes to punch >> + local hole_interval=$2 # The interval between the holes >> + local iterations=$3 # The number of holes to punch >> + local file_name=$4 # File to punch holes in >> + local block_size=$5 # File system block size >> + local file_len=$(( $(( $hole_len + $hole_interval )) * $iterations )) >> + local path=`dirname $file_name` >> + local hole_offset=0 >> + >> + if [ $# -ne 5 ] >> + then >> + echo "USAGE: _test_full_fs_punch hole_len hole_interval iterations file_name block_size" >> + exit 1 >> + fi >> + >> + rm -f $file_name&> /dev/null >> + >> + $XFS_IO_PROG -F -f -c "pwrite 0 $file_len" \ >> + -c "fsync" $file_name&> /dev/null >> + chmod 666 $file_name >> + >> + _fill_fs $(( 1024 * 1024 * 1024 )) $path/fill $block_size > > You are specifying a file size that's equal to the filesystem > size, which I think is guaranteed to fail its first pass. Maybe > start with half of the filesystem (or even 90% of it). (I > don't know whether this is a a real issue or not though.) > > Also, you could maybe use a shell variable to represent the > filesystem size, since you use it twice in this script. > >> + >> + for (( i=0; i<$iterations; i++ )) >> + do >> + # This part must not be done as root in order to >> + # test that reserved blocks are used when needed >> + _user_do "$XFS_IO_PROG -F -f -c \"fpunch $hole_offset $hole_len\" $file_name" >> + rc=$? >> + if [ $? -ne 0 ] ; then >> + echo Punch hole failed >> + break >> + fi >> + >> + hole_offset=$(( $hole_offset + $hole_len + $hole_interval )) >> + >> + _fill_fs $hole_len $path/fill.$i $block_size >> + >> + done >> +} >> + >> +# Make a small file system to fillkk >> +umount $SCRATCH_DEV&> /dev/null >> +_scratch_mkfs_sized $(( 1024 * 1024 * 1024 ))&> /dev/null >> +_scratch_mount >> +# Test must be able to write files with non-root permissions >> +chmod 777 $SCRATCH_MNT >> + >> +block_size=`stat -f $SCRATCH_DEV | grep "Block size" | cut -d " " -f3` >> +_test_full_fs_punch $(( $block_size * 2 )) $block_size 500 $SCRATCH_MNT/252.$$ $block_size > Use $SCRATCH_MNT/$seq.$$ > > ...and possibly define this path in a variable > at the top of the file. > >> + >> +status=0 ; exit >> diff --git a/255.out b/255.out >> new file mode 100644 >> index 0000000..3525403 >> --- /dev/null >> +++ b/255.out >> @@ -0,0 +1 @@ >> +QA output created by 255 >> diff --git a/group b/group >> index 1f86075..c045e70 100644 >> --- a/group >> +++ b/group >> @@ -368,3 +368,4 @@ deprecated >> 252 auto quick prealloc >> 253 auto quick >> 254 auto quick >> +255 auto quick > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From david@fromorbit.com Thu Jul 14 21:22:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6F2MWZ8181257 for ; Thu, 14 Jul 2011 21:22:33 -0500 X-ASG-Debug-ID: 1310696549-705401570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AA39A150254C for ; Thu, 14 Jul 2011 19:22:30 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id LbesSgwfBLgecMjc for ; Thu, 14 Jul 2011 19:22:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqEDABihH055LCkBgWdsb2JhbABUp18VAQEWJiXMGg6FTV8Eo0c Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 15 Jul 2011 11:52:28 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhY2s-0001wn-Il; Fri, 15 Jul 2011 12:22:26 +1000 Date: Fri, 15 Jul 2011 12:22:26 +1000 From: Dave Chinner To: KAMEZAWA Hiroyuki Cc: Christoph Hellwig , Mel Gorman , Linux-MM , LKML , XFS , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110715022226.GD31294@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> <20110714044643.GA3203@infradead.org> <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310696551 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68949 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > On Thu, 14 Jul 2011 00:46:43 -0400 > Christoph Hellwig wrote: > > > On Thu, Jul 14, 2011 at 10:38:01AM +0900, KAMEZAWA Hiroyuki wrote: > > > > + /* > > > > + * Only kswapd can writeback filesystem pages to > > > > + * avoid risk of stack overflow > > > > + */ > > > > + if (page_is_file_cache(page) && !current_is_kswapd()) { > > > > + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > > > + goto keep_locked; > > > > + } > > > > + > > > > > > > > > This will cause tons of memcg OOM kill because we have no help of kswapd (now). > > > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > for the typical non-overwrite workloads, and none has fallen apart. > > > > In fact there's no way we can enable them as the memcg calling contexts > > tend to have massive stack usage. > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? Here's an example writeback stack trace. Notice how deep it is from the __writepage() call? $ cat /sys/kernel/debug/tracing/stack_trace Depth Size Location (50 entries) ----- ---- -------- 0) 5000 80 enqueue_task_fair+0x63/0x4f0 1) 4920 48 enqueue_task+0x6a/0x80 2) 4872 32 activate_task+0x2d/0x40 3) 4840 32 ttwu_activate+0x21/0x50 4) 4808 32 T.2130+0x3c/0x60 5) 4776 112 try_to_wake_up+0x25e/0x2d0 6) 4664 16 wake_up_process+0x15/0x20 7) 4648 16 wake_up_worker+0x24/0x30 8) 4632 16 insert_work+0x6f/0x80 9) 4616 96 __queue_work+0xf9/0x3f0 10) 4520 16 queue_work_on+0x25/0x40 11) 4504 16 queue_work+0x1f/0x30 12) 4488 16 queue_delayed_work+0x2d/0x40 13) 4472 32 blk_run_queue_async+0x41/0x60 14) 4440 64 queue_unplugged+0x8e/0xc0 15) 4376 112 blk_flush_plug_list+0x1f5/0x240 16) 4264 176 schedule+0x4c3/0x8b0 17) 4088 128 schedule_timeout+0x1a5/0x280 18) 3960 160 wait_for_common+0xdb/0x180 19) 3800 16 wait_for_completion+0x1d/0x20 20) 3784 48 xfs_buf_iowait+0x30/0xc0 21) 3736 32 _xfs_buf_read+0x60/0x70 22) 3704 48 xfs_buf_read+0xa2/0x100 23) 3656 80 xfs_trans_read_buf+0x1ef/0x430 24) 3576 96 xfs_btree_read_buf_block+0x5e/0xd0 25) 3480 96 xfs_btree_lookup_get_block+0x83/0xf0 26) 3384 176 xfs_btree_lookup+0xd7/0x490 27) 3208 16 xfs_alloc_lookup_eq+0x19/0x20 28) 3192 112 xfs_alloc_fixup_trees+0x2b5/0x350 29) 3080 224 xfs_alloc_ag_vextent_near+0x631/0xb60 30) 2856 32 xfs_alloc_ag_vextent+0xd5/0x100 31) 2824 96 xfs_alloc_vextent+0x2a4/0x5f0 32) 2728 256 xfs_bmap_btalloc+0x257/0x720 33) 2472 16 xfs_bmap_alloc+0x21/0x40 34) 2456 432 xfs_bmapi+0x9b7/0x1150 35) 2024 192 xfs_iomap_write_allocate+0x17d/0x350 36) 1832 144 xfs_map_blocks+0x1e2/0x270 37) 1688 208 xfs_vm_writepage+0x19f/0x500 38) 1480 32 __writepage+0x17/0x40 39) 1448 304 write_cache_pages+0x21d/0x4d0 40) 1144 96 generic_writepages+0x51/0x80 41) 1048 48 xfs_vm_writepages+0x5d/0x80 42) 1000 16 do_writepages+0x21/0x40 43) 984 96 writeback_single_inode+0x10e/0x270 44) 888 96 writeback_sb_inodes+0xdb/0x1b0 45) 792 208 wb_writeback+0x1bf/0x420 46) 584 160 wb_do_writeback+0x9f/0x270 47) 424 144 bdi_writeback_thread+0xaa/0x270 48) 280 96 kthread+0x96/0xa0 49) 184 184 kernel_thread_helper+0x4/0x10 So from ->writepage, there is about 3.5k of stack usage here. 2.5k of that is in XFS, and the worst I've seen is around 4k before getting to the IO subsystem, which in the worst case I've seen consumed 2.5k of stack. IOWs, I've seen stack usage from .writepage down to IO take over 6k of stack space on x86_64.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 14 22:12:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6F3CHcw182521 for ; Thu, 14 Jul 2011 22:12:17 -0500 X-ASG-Debug-ID: 1310699533-3b0d030a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D387917CC116 for ; Thu, 14 Jul 2011 20:12:14 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 2WFOaTHWRWDbyEmR for ; Thu, 14 Jul 2011 20:12:14 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqEDACmvH055LCkBgWdsb2JhbABUp14VAQEWJiWIesMLDoVNXwSjRw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 15 Jul 2011 12:42:12 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhYp0-00021i-E9; Fri, 15 Jul 2011 13:12:10 +1000 Date: Fri, 15 Jul 2011 13:12:10 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: Re: [PATCH 2/5] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Message-ID: <20110715031210.GD21663@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-3-git-send-email-mgorman@suse.de> <20110713233743.GV23038@dastard> <20110714062947.GO7529@suse.de> <20110714115220.GB21663@dastard> <20110714131745.GU7529@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714131745.GU7529@suse.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1310699535 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0176 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.68952 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 02:17:45PM +0100, Mel Gorman wrote: > On Thu, Jul 14, 2011 at 09:52:21PM +1000, Dave Chinner wrote: > > On Thu, Jul 14, 2011 at 07:29:47AM +0100, Mel Gorman wrote: > > > On Thu, Jul 14, 2011 at 09:37:43AM +1000, Dave Chinner wrote: > > > > On Wed, Jul 13, 2011 at 03:31:24PM +0100, Mel Gorman wrote: > > > > > It is preferable that no dirty pages are dispatched for cleaning from > > > > > the page reclaim path. At normal priorities, this patch prevents kswapd > > > > > writing pages. > > > > > > > > > > However, page reclaim does have a requirement that pages be freed > > > > > in a particular zone. If it is failing to make sufficient progress > > > > > (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority > > > > > is raised to scan more pages. A priority of DEF_PRIORITY - 3 is > > > > > considered to tbe the point where kswapd is getting into trouble > > > > > reclaiming pages. If this priority is reached, kswapd will dispatch > > > > > pages for writing. > > > > > > > > > > Signed-off-by: Mel Gorman > > > > > > > > Seems reasonable, but btrfs still will ignore this writeback from > > > > kswapd, and it doesn't fall over. > > > > > > At least there are no reports of it falling over :) > > > > However you want to spin it. > > I regret that it is coming across as spin. Shit, sorry, I didn't mean it that way. I forgot to add the smiley at the end of that comment. It was meant in jest and not to be derogatory - I do understand your concerns. > > > > Given that data point, I'd like to > > > > see the results when you stop kswapd from doing writeback altogether > > > > as well. > > > > > > > > > > The results for this test will be identical because the ftrace results > > > show that kswapd is already writing 0 filesystem pages. > > > > You mean these numbers: > > > > Kswapd reclaim write file async I/O 4483 4286 0 1 0 0 > > > > Which shows that kswapd, under this workload has been improved to > > the point that it doesn't need to do IO. Yes, you've addressed the > > one problematic workload, but the numbers do not provide the answers > > to the fundamental question that have been raised during > > discussions. i.e. do we even need IO at all from reclaim? > > I don't know and at best will only be able to test with a single > disk which is why I wanted to separate this series from a complete > preventing of kswapd writing pages. I may be able to get access to > a machine with more disks but it'll take time. That, to me, seems like a major problem, and explains why swapping was affecting your results - you've got your test filesystem and your swap partition on the same spindle. In the server admin world, that's the first thing anyone concerned with performance avoids and as such I tend to avoid doing that, too. The lack of spindles/bandwidth used in testing the mm code is also potentially another reason why XFS tends to show up mm problems. That is, most testing and production use of XFS occurs on disk subsystems much more bandwidth than a single spindle, and hence the effects of bad IO show up much more obviously than for a single spindle. > > > Where it makes a difference is when the system is under enough > > > pressure that it is failing to reclaim any memory and is in danger > > > of prematurely triggering the OOM killer. Andrea outlined some of > > > the concerns before at http://lkml.org/lkml/2010/6/15/246 > > > > So put the system under more pressure such that with this patch > > series memory reclaim still writes from kswapd. Can you even get it > > to that stage, and if you can, does the system OOM more or less if > > you don't do file IO from reclaim? > > I can setup such a tests, it'll be at least next week before I > configure such a test and get it queued. It'll probably take a few > days to run then because more iterations will be required to pinpoint > where the OOM threshold is. I know from the past that pushing a > system near OOM causes a non-deterministic number of triggers that > depend heavily on what was killed so the only real choice is to start > light and increase the load until boom which is time consuming. > > Even then, the test will be inconclusive because it'll be just one > or two machines that I'll have to test on. Which is why I have a bunch of test VMs with different CPU/RAM/platform configs. I regularly use 1p/1GB x86-64, 1p/2GB i686 (to stress highmem), 2p/2GB, 8p/4GB and 8p/16GB x86-64 VMs. I have a bunch of different disk images for the VMs to work off, located on storage from shared single SATA spindles to a 16TB volume to a short-stroked, 1GB/s, 5kiops, 12 disk dm RAID-0 setup. I mix and match the VMs with the disk images all the time - this is one of the benefits of using a virtualised test environment. One slightly beefy piece of hardware that costs $10k can be used to test many, many different configurations. That's why I complain about corner cases all the time ;) > There will be important > corner cases that I won't be able to test for. For example; > > o small lowest zone that is critical for operation of some reason and > the pages must be cleaned from there even though there is a large > amount of memory overall That's the i686 highmem case, using a large amount of memory (e.g. 4GB or more) to make sure that the highmem zone is much larger than the lowmem zone. inode caching uses low memory, so directory intensive operations on large sets of files (e.g. 10 million) tend to stress low memory availability. > o small highest zone causing high kswapd usage as it fails to balance > continually due to pages being dirtied constantly and the window > between when flushers clean the page and kswapd reclaim the page > being too big. I might be able to simulate this one but bugs of > this nature tend to be workload specific and affect some machines > worse than others And that is also testable with i686 highmem, but simply use smaller amounts of ram (say 1.5GB). Use page cache pressure to fill and dirty highmem, and inode cache pressure to fill lowmem. Guess what one of my ad hoc tests for XFS shrinker balancing is. :) > o Machines with many nodes and dirty pages spread semi-randomly > on all nodes. If the flusher thread is not cleaning pages from > a particular node that is under memory pressure due to affinity, > processes will stall for long periods of time until the relevant > inodes expire and gets cleaned. This will be particularly > problematic if zone_reclaim is enabled And you can create large node-count virtual machines via the kvm -numa option. I haven't been doing this as yet because getting stuff working well on single node SMP needs to be done first. So, like you, I really only have one or two tests machine available locally, but I've been creative in working around that limitation.... :/ > > It's that next step that I'm asking you to test now. What form > > potential changes take or when they are released is irrelevant to me > > at this point, because we still haven't determined if the > > fundamental concept is completely sound or not. If the concept is > > sound I'm quite happy to wait until the implementation is fully > > baked before it gets rolled out.... > > I'll setup a suitable test next week then. Sounds great. Thanks Mel. Cheers, Dave. -- Dave Chinner david@fromorbit.com From achender@linux.vnet.ibm.com Thu Jul 14 22:49:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6F3neSK183641 for ; Thu, 14 Jul 2011 22:49:40 -0500 X-ASG-Debug-ID: 1310701779-27f902420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e5.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E9BCF6FA17 for ; Thu, 14 Jul 2011 20:49:39 -0700 (PDT) Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.145]) by cuda.sgi.com with ESMTP id G8tABfgainXkj8cR for ; Thu, 14 Jul 2011 20:49:39 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e5.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6F3KqCN003297 for ; Thu, 14 Jul 2011 23:20:52 -0400 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6F3nc1b165128 for ; Thu, 14 Jul 2011 23:49:38 -0400 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6F3ncuF006868 for ; Thu, 14 Jul 2011 23:49:38 -0400 Received: from elm3c80.beaverton.ibm.com (elm3c80.beaverton.ibm.com [9.47.69.80]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6F3nbcJ006861; Thu, 14 Jul 2011 23:49:37 -0400 From: Allison Henderson To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com Cc: Allison Henderson X-ASG-Orig-Subj: [PATCH 1/1] XFS TESTS: Correct extent flag parsing for punch hole tests Subject: [PATCH 1/1] XFS TESTS: Correct extent flag parsing for punch hole tests Date: Thu, 14 Jul 2011 20:52:13 -0700 Message-Id: <1310701933-18988-1-git-send-email-achender@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: e5.ny.us.ibm.com[32.97.182.145] X-Barracuda-Start-Time: 1310701779 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The fiemap filters used in the punch hole tests parse the extent flags in the fiemap to determine the extent type. They are currently parsing them as decimal values, but they should be parsing hex values. Signed-off-by: Allison Henderson --- :100644 100755 0083963... 0083963... M 255 :100644 100644 a48b7ae... 7337298... M common.punch common.punch | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/255 b/255 old mode 100644 new mode 100755 diff --git a/common.punch b/common.punch index a48b7ae..7337298 100644 --- a/common.punch +++ b/common.punch @@ -208,11 +208,11 @@ _filter_fiemap() print $1, $2, $3; next; } - $5 ~ /0x[[:digit:]]*8[[:digit:]]{2}/ { + $5 ~ /0x[[:xdigit:]]*8[[:xdigit:]]{2}/ { print $1, $2, "unwritten"; next; } - $5 ~ /0x[[:digit:]]+/ { + $5 ~ /0x[[:xdigit:]]+/ { print $1, $2, "data"; }' | _coalesce_extents @@ -228,7 +228,7 @@ _filter_hole_fiemap() print $1, $2, $3; next; } - $5 ~ /0x[[:digit:]]+/ { + $5 ~ /0x[[:xdigit:]]+/ { print $1, $2, "extent"; }' | _coalesce_extents -- 1.7.1 From aelder@sgi.com Fri Jul 15 08:46:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FDkwn9206019 for ; Fri, 15 Jul 2011 08:46:58 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 300498F8087; Fri, 15 Jul 2011 06:46:55 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 08:46:54 -0500 Subject: Re: [PATCH 1/1] XFS TESTS: Correct extent flag parsing for punch hole tests From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <1310701933-18988-1-git-send-email-achender@linux.vnet.ibm.com> References: <1310701933-18988-1-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 08:46:54 -0500 Message-ID: <1310737614.2921.4.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-14 at 20:52 -0700, Allison Henderson wrote: > The fiemap filters used in the punch hole tests parse the > extent flags in the fiemap to determine the extent type. > They are currently parsing them as decimal values, but > they should be parsing hex values. > > Signed-off-by: Allison Henderson Looks good to me. This may not have a practical effect but it looks correct now. I will commit this for you. Thanks for fixing it. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 15 09:19:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FEJ7kE207356 for ; Fri, 15 Jul 2011 09:19:07 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id C91868F8065; Fri, 15 Jul 2011 07:19:03 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 09:19:03 -0500 Subject: Re: [PATCH] stable: restart busy extent search after node removal From: Alex Elder Reply-To: To: Eric Sandeen CC: Dave Chinner , Eric Sandeen , xfs-oss In-Reply-To: <4E1CF47D.7080909@sandeen.net> References: <4E1CC4BA.1010107@redhat.com> <20110713001234.GN23038@dastard> <4E1CE35B.4010404@redhat.com> <20110713002022.GO23038@dastard> <4E1CF47D.7080909@sandeen.net> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 09:19:02 -0500 Message-ID: <1310739542.2921.8.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-12 at 20:27 -0500, Eric Sandeen wrote: > On 7/12/11 7:20 PM, Dave Chinner wrote: > > On Tue, Jul 12, 2011 at 07:14:19PM -0500, Eric Sandeen wrote: > >> On 7/12/11 7:12 PM, Dave Chinner wrote: > >>> On Tue, Jul 12, 2011 at 05:03:38PM -0500, Eric Sandeen wrote: > >>>> Sending this for review prior to stable submission... > >>>> > >>>> A user on #xfs reported that a log replay was oopsing in > >>>> __rb_rotate_left() with a null pointer deref. > >>>> > >>>> I traced this down to the fact that in xfs_alloc_busy_insert(), > >>>> we erased a node with rb_erase() when the new node overlapped, > >>>> but left it specified as the parent node for the new insertion. > >>>> > >>>> So when we try to insert a new node with an erased node as > >>>> its parent, obviously things go very wrong. > >>>> > >>>> Upstream, > >>>> 97d3ac75e5e0ebf7ca38ae74cebd201c09b97ab2 xfs: exact busy extent tracking > >>>> actually fixed this, but as part of a much larger change. Here's > >>>> the relevant bit: > >>>> > >>>> * We also need to restart the busy extent search from the > >>>> * tree root, because erasing the node can rearrange the > >>>> * tree topology. > >>>> */ > >>>> rb_erase(&busyp->rb_node, &pag->pagb_tree); > >>>> busyp->length = 0; > >>>> return false; > >>>> > >>>> We can do essentially the same thing to older codebases by restarting > >>>> the search after the erase. > >>>> > >>>> This should apply to .35 through .39, and was tested on .39 > >>>> with the oopsing replay reproducer. > >>>> > >>>> Signed-off-by: Eric Sandeen > >>>> --- > >>>> > >>>> Index: linux-2.6/fs/xfs/xfs_alloc.c > >>>> =================================================================== > >>>> --- linux-2.6.orig/fs/xfs/xfs_alloc.c > >>>> +++ linux-2.6/fs/xfs/xfs_alloc.c > >>>> @@ -2664,6 +2664,12 @@ restart: > >>>> new->bno + new->length) - > >>>> min(busyp->bno, new->bno); > >>>> new->bno = min(busyp->bno, new->bno); > >>>> + /* > >>>> + * Start the search over from the tree root, because > >>>> + * erasing the node can rearrange the tree topology. > >>>> + */ > >>>> + spin_unlock(&pag->pagb_lock); > >>>> + goto restart; > >>>> } else > >>>> busyp = NULL; > >>> > >>> Looks good. > >>> > >>> I'm guessing that the only case I was able to hit during testing of > >>> this code originally was the "overlap with exact start block match", > >>> otherwise I would have seen this. I'm not sure that there really is > >>> much we can do to improve the test coverage of this code, though. > >>> Hell, just measuring our test coverage so we know what we aren't > >>> testing would probably be a good start. :/ > >> > >> Apparently the original oops, and the subsequent replay oopses, > >> were on a filesystem VERY busy with torrents. > >> > >> Might be a testcase ;) So, would you mind trying to create this as a test? Can you come up with a reliable way to create a small but *very* fragmented filesystem to do stuff with? Maybe a function to do that would be useful (sort of like the one Allison Henderson did for creating full filesystem) for doing various tests, including log replay, xfs_repair, and various operations while "loaded" in that way. -Alex > > > > That just means large files. And fragmentation levels are > > effectively dependent on whether the torrent client uses > > preallocation or not. Just creating a set of large fragmented file > > using preallocation, shutting the filesystem down in the middle > > of it and then doing log replay might do the trick... > > well yeah, my point was, it was in fact badly fragmented. > > To quote my favorite meaningless xfs_db statistic, > > actual 29700140, ideal 185230, fragmentation factor 99.38% > > I guess that's "only" 160 extents per file. > > But one of the 2.2G files had 44,000 extents, as an example. > I am guessing the client did not preallocate. :) > > -Eric > > > Cheers, > > > > Dave. > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@sgi.com Fri Jul 15 10:07:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FF78pS208862 for ; Fri, 15 Jul 2011 10:07:08 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id E1FEF30407F; Fri, 15 Jul 2011 08:07:04 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 10:07:04 -0500 Subject: Re: [PATCH v3] xfs_repair: Check if agno is inside the filesystem From: Alex Elder Reply-To: To: Lukas Czerner CC: , In-Reply-To: <1309271164-29794-1-git-send-email-lczerner@redhat.com> References: <1309271164-29794-1-git-send-email-lczerner@redhat.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 10:07:03 -0500 Message-ID: <1310742423.2921.17.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-06-28 at 16:26 +0200, Lukas Czerner wrote: > When getting an inode tree pointer from an array inode_tree_ptrs, we > should check if agno, which is used as a pointer to the array, lives > within the file system, because if it is not, we can end up touching > uninitialized memory. This may happen if we have corrupted directory > entry. > > This commit fixes it by passing xfs_mount to affected functions and > checking if agno really is inside the file system. > > This solves Red Hat bug #694706 > > Signed-off-by: Lukas Czerner OK, it looks like there are basically four changes here--adding the mount point argument to four functions and using it to verify (or assert the validity of) the an AG number. The rest of the changes are simply the rippling-back effect of adding the mount point. The change looks good to me. If nobody else objects to the change I will commit this for you. Reviewed-by: Alex Elder . . . > diff --git a/repair/incore.h b/repair/incore.h > index 99853fb..5e3d95d 100644 > --- a/repair/incore.h > +++ b/repair/incore.h . . . > @@ -316,12 +317,17 @@ findfirst_inode_rec(xfs_agnumber_t agno) > return((ino_tree_node_t *) inode_tree_ptrs[agno]->avl_firstino); > } > static inline ino_tree_node_t * > -find_inode_rec(xfs_agnumber_t agno, xfs_agino_t ino) > +find_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agino_t ino) > { > + /* > + * Is the AG inside the file system > + */ > + if (agno >= mp->m_sb.sb_agcount) > + return NULL; Here is one--validate the agno using the new mp argument. > return((ino_tree_node_t *) > avl_findrange(inode_tree_ptrs[agno], ino)); > } > -void find_inode_rec_range(xfs_agnumber_t agno, > +void find_inode_rec_range(struct xfs_mount *mp, xfs_agnumber_t agno, > xfs_agino_t start_ino, xfs_agino_t end_ino, > ino_tree_node_t **first, ino_tree_node_t **last); > . . . > diff --git a/repair/incore_ino.c b/repair/incore_ino.c > index febe0c9..7827ff5 100644 > --- a/repair/incore_ino.c > +++ b/repair/incore_ino.c > @@ -418,9 +418,11 @@ add_inode_uncertain(xfs_mount_t *mp, xfs_ino_t ino, int free) > * pull the indicated inode record out of the uncertain inode tree > */ > void > -get_uncertain_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > +get_uncertain_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, > + ino_tree_node_t *ino_rec) > { > ASSERT(inode_tree_ptrs != NULL); > + ASSERT(agno < mp->m_sb.sb_agcount); Here is the second. > ASSERT(inode_tree_ptrs[agno] != NULL); > > avl_delete(inode_uncertain_tree_ptrs[agno], &ino_rec->avl_node); . . . > @@ -495,9 +497,10 @@ add_inode(xfs_agnumber_t agno, xfs_agino_t ino) > * pull the indicated inode record out of the inode tree > */ > void > -get_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > +get_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > { > ASSERT(inode_tree_ptrs != NULL); > + ASSERT(agno < mp->m_sb.sb_agcount); Here is the third. > ASSERT(inode_tree_ptrs[agno] != NULL); > > avl_delete(inode_tree_ptrs[agno], &ino_rec->avl_node); . . . > @@ -518,14 +521,18 @@ free_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > } > > void > -find_inode_rec_range(xfs_agnumber_t agno, xfs_agino_t start_ino, > - xfs_agino_t end_ino, ino_tree_node_t **first, > - ino_tree_node_t **last) > +find_inode_rec_range(struct xfs_mount *mp, xfs_agnumber_t agno, > + xfs_agino_t start_ino, xfs_agino_t end_ino, > + ino_tree_node_t **first, ino_tree_node_t **last) > { > *first = *last = NULL; > > - avl_findranges(inode_tree_ptrs[agno], start_ino, > - end_ino, (avlnode_t **) first, (avlnode_t **) last); > + /* > + * Is the AG inside the file system ? > + */ > + if (agno < mp->m_sb.sb_agcount) > + avl_findranges(inode_tree_ptrs[agno], start_ino, > + end_ino, (avlnode_t **) first, (avlnode_t **) last); And here is the fourth. > } > > /* . . . From aelder@sgi.com Fri Jul 15 10:31:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FFV2Lc209665 for ; Fri, 15 Jul 2011 10:31:02 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id E9DE1AC00D; Fri, 15 Jul 2011 08:30:58 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 10:30:58 -0500 Subject: Re: [PATCH] xfs: Remove the second parameter to xfs_sb_count() From: Alex Elder Reply-To: To: CC: XFS Mailing List In-Reply-To: <1309385414.5505.6282.camel@chandra-lucid.beaverton.ibm.com> References: <1309385414.5505.6282.camel@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 10:30:57 -0500 Message-ID: <1310743857.2921.18.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-06-29 at 15:10 -0700, Chandra Seetharaman wrote: > Remove the second parameter to xfs_sb_count() since all callers of the > function set them. > > Also, fix the header comment regarding it being called periodically. > > Signed-off-by: Chandra Seetharaman Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 15 10:39:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FFdtPZ209918 for ; Fri, 15 Jul 2011 10:39:55 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 0DB748F8050; Fri, 15 Jul 2011 08:39:52 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 10:39:15 -0500 Subject: Re: [PATCH v3] xfstests: Improve test 219 to work with different filesystems From: Alex Elder Reply-To: To: Jan Kara CC: In-Reply-To: <1309363480-22268-1-git-send-email-jack@suse.cz> References: <1309363480-22268-1-git-send-email-jack@suse.cz> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 10:39:14 -0500 Message-ID: <1310744354.2921.20.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-06-29 at 18:04 +0200, Jan Kara wrote: > Different filesystems account different amount of metadata in quota. Thus it is > impractical to check for a particular amount of space occupied by a file > because there is no right value. Change the test to verify whether the amount > of space is between the expected amount of space and the expected amount +5%. > The number of files is checked exactly as previously. > > Signed-off-by: Jan Kara Looks good. After verifying it (at least on XFS), I will commit this for you. Reviewed-by: Alex Elder From bfields@fieldses.org Fri Jul 15 15:33:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FKXMhc218867 for ; Fri, 15 Jul 2011 15:33:22 -0500 X-ASG-Debug-ID: 1310761999-541300900000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 50D4D17DAAB3; Fri, 15 Jul 2011 13:33:19 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id ctrQP3B3pNL1SpiX; Fri, 15 Jul 2011 13:33:19 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1Qhp4X-0007Bp-EN; Fri, 15 Jul 2011 16:33:17 -0400 Date: Fri, 15 Jul 2011 16:33:17 -0400 From: "J. Bruce Fields" To: Christoph Hellwig Cc: Alex Elder , xfs-masters@oss.sgi.com, xfs@oss.sgi.com, linux-nfs@vger.kernel.org X-ASG-Orig-Subj: Re: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: Re: [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110715203317.GA25772@fieldses.org> References: <20110714205036.GA19457@fieldses.org> <20110714223126.GA28694@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714223126.GA28694@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1310762000 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69021 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 06:31:26PM -0400, Christoph Hellwig wrote: > On Thu, Jul 14, 2011 at 04:50:36PM -0400, J. Bruce Fields wrote: > > From: J. Bruce Fields > > > > On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE > > on attempts to use a filehandle of a deleted file (spotted with pynfs > > test PUTFH3). The ENOENT was coming from xfs_iget. > > With that you mean the ip->i_d.di_mode checks? Given that we should > only be bale to get these from NFS or the handle ioctls I suspect just > turning them into ESTALE should be fine. > Like the following? That passes my test. I wouldn't have thought of doing it that way because I wouldn't know how to check that - the change will only affect nfsd and the handle ioctls, and - those are the only two places under xfs_iget that will generate an ENOENT (which will never be the right error return on failure to find a filehandle). If those are true, great. --b. commit 94578e7d1c3e00ad29608c70fae314f85a465840 Author: J. Bruce Fields Date: Thu Jul 14 15:39:49 2011 -0400 xfs: failure mapping nfs fh to inode should return ESTALE On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE on attempts to use a filehandle of a deleted file (spotted with pynfs test PUTFH3). The ENOENT was coming from xfs_iget. While we're at it, the other return of ENOENT in xfs_nfs_get_inode() also looks wrong. Signed-off-by: J. Bruce Fields diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c index f4f878f..9e94d57 100644 --- a/fs/xfs/linux-2.6/xfs_export.c +++ b/fs/xfs/linux-2.6/xfs_export.c @@ -158,7 +158,7 @@ xfs_nfs_get_inode( if (ip->i_d.di_gen != generation) { IRELE(ip); - return ERR_PTR(-ENOENT); + return ERR_PTR(-ESTALE); } return VFS_I(ip); diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c index 3631783..19752451 100644 --- a/fs/xfs/xfs_iget.c +++ b/fs/xfs/xfs_iget.c @@ -222,7 +222,7 @@ xfs_iget_cache_hit( * If lookup is racing with unlink return an error immediately. */ if (ip->i_d.di_mode == 0 && !(flags & XFS_IGET_CREATE)) { - error = ENOENT; + error = ESTALE; goto out_error; } @@ -333,7 +333,7 @@ xfs_iget_cache_miss( trace_xfs_iget_miss(ip); if ((ip->i_d.di_mode == 0) && !(flags & XFS_IGET_CREATE)) { - error = ENOENT; + error = ESTALE; goto out_destroy; } From aelder@sgi.com Fri Jul 15 15:58:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FKwh9P219683 for ; Fri, 15 Jul 2011 15:58:44 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id CDA883040DA; Fri, 15 Jul 2011 13:58:40 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 15:50:34 -0500 Subject: Re: [PATCH] xfs_repair: add printf format checking and fix the fallout From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110630201628.GA20239@infradead.org> References: <20110630201628.GA20239@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 15:50:33 -0500 Message-ID: <1310763033.2921.94.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-06-30 at 16:16 -0400, Christoph Hellwig wrote: > Add the gcc printf like attribute to the xfs_repair-internal logging helpers, > and fix the massive fallout. A large part of it is dealing with the correct > format for fixed size 64-bit types, but there were a lot of real bug in there, > including some that lead to crashed when repairing certain corrupted > filesystems on ARM based systems. > > Signed-off-by: Christoph Hellwig > Reported-by: Anisse Astier Eric did the first hunk of this patch in March of 2010, although he also added __attribute__((noreturn)) to the abort and error functions. Thank you for completing the rest of it... In any case, I have built xfsprogs using this in x86_64 and i386 environments and don't get warnings due to printf compatibility issues. So because of that I'm fine with your patch. However when I build on ia64 I still get a bunch of warnings. Some of them are just additional fallout from adding the printf attribute. Others are similar problems found in actual printf() calls. I will create a patch on top of yours and will send it to you. It think it will be best to just merge the two together; but I'll leave it up to you to do as you see fit. Below I describe why we get some of these warnings, and how using the PRI* format specifiers isn't always the right fix. This whole thing is complicated by inconsistent use of types for defining 64-bit values--or really, by the way the Linux kernel is inconsistent. In xfsprogs, an xfs_ino_t is __uint64_t, which is u_int64_t, which is defined via as: i386: typedef unsigned long long int u_int64_t; x86_64: typedef unsigned long int u_int64_t; ia64: typedef unsigned long int u_int64_t; The various format specifier macros are defined in in based on __PRI64_PREFIX, which is: i386: "ll" x86_64: "l" ia64: "l" So in user space, any inode number defined using xfs_ino_t (and more generally, anything defined using u_int64_t) can be formatted using (for example) PRIu64 and it comes out fine. In the Linux kernel xfs has xfs_ino_t defined as __u64, which is defined via as: typedef __u64 u_int64_t; and __u64 is then defined via inclusion of . For ia64, includes , which defines __u64 this way: typedef unsigned long __u64; But for x86_64, includes , meaning __u64 is: typedef unsigned long long __u64; (My i386 ends up with the same definition as x86_64, but through a slightly different route.) Anyway, in the kernel, the specific type defined for an xfs_ino_t (because it's based on __u64) is either unsigned long or unsigned long long. Which one you get depends on the architecture. On native 64-bit systems both are likely to be the same size, but whether long or long long is used is still architecture dependent. Also note that all the byte swap macros (like be64_to_cpu()) are defined using __u64 the type. Now __u64 is also a type visible in user space, and it's one we make use of. But because of the inconsistency described above, if you use __u64 to define a 64-bit type, you can't use things like PRIu64 to determine the right format specifier to use, because it's not predictable whether it will match the underlying type. (On ia64 it works, but on x86_64 it will not.) And of course you can't just use %llu either. So whenever you want to format something defined as __u64 (or, which is the result of a byte swap macro), the best you can do is use %llu in the format string, then cast the value being printed to (unsigned long long). Kind of a mess. -Alex > mp->m_sb.sb_rootino, > (mp->m_sb.sb_rootino == NULLFSINO ? "(NULLFSINO) ":""), > first_prealloc_ino); > > if (!no_modify) > do_warn( > - _("resetting superblock root inode pointer to %lu\n"), > + _("resetting superblock root inode pointer to %u\n"), > first_prealloc_ino); . . . From aelder@sgi.com Fri Jul 15 16:45:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6FLjDHL221190 for ; Fri, 15 Jul 2011 16:45:13 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id E8AAC3040D9; Fri, 15 Jul 2011 14:45:09 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 15 Jul 2011 16:39:21 -0500 Subject: Re: [PATCH] xfsprogs: fix gcc 4.6 variable set but not used warnings From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110630202505.GA23276@infradead.org> References: <20110630202505.GA23276@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 15 Jul 2011 16:39:21 -0500 Message-ID: <1310765961.2921.98.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-06-30 at 16:25 -0400, Christoph Hellwig wrote: > Signed-off-by: Christoph Hellwig This one looks good to me too. As with the previous one I tried it out on x86_64, i386, and ia64 to get better coverage. I found a few more of this type of warning, which I'll send to you as another patch to combine with this one. Or, if you prefer you can take my Reviewed-by on this and I'll do the other patch myself later. -Alex From david@fromorbit.com Fri Jul 15 20:20:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1KrWx227980 for ; Fri, 15 Jul 2011 20:20:54 -0500 X-ASG-Debug-ID: 1310779251-3eae01cf0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9578B17DB20D for ; Fri, 15 Jul 2011 18:20:51 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id x2xMS9ZKDvbgTzvB for ; Fri, 15 Jul 2011 18:20:51 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmkEAA7lIE55LCkBgWdsb2JhbABTp3AVAQEWJiXLXw6FTV8Eo0s Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 16 Jul 2011 10:50:49 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QhtYm-00049c-7M; Sat, 16 Jul 2011 11:20:48 +1000 Date: Sat, 16 Jul 2011 11:20:48 +1000 From: Dave Chinner To: Alex Elder Cc: Eric Sandeen , Eric Sandeen , xfs-oss X-ASG-Orig-Subj: Re: [PATCH] stable: restart busy extent search after node removal Subject: Re: [PATCH] stable: restart busy extent search after node removal Message-ID: <20110716012048.GE21663@dastard> References: <4E1CC4BA.1010107@redhat.com> <20110713001234.GN23038@dastard> <4E1CE35B.4010404@redhat.com> <20110713002022.GO23038@dastard> <4E1CF47D.7080909@sandeen.net> <1310739542.2921.8.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310739542.2921.8.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310779252 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69041 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 09:19:02AM -0500, Alex Elder wrote: > On Tue, 2011-07-12 at 20:27 -0500, Eric Sandeen wrote: > > On 7/12/11 7:20 PM, Dave Chinner wrote: > > > On Tue, Jul 12, 2011 at 07:14:19PM -0500, Eric Sandeen wrote: > > >>> I'm guessing that the only case I was able to hit during testing of > > >>> this code originally was the "overlap with exact start block match", > > >>> otherwise I would have seen this. I'm not sure that there really is > > >>> much we can do to improve the test coverage of this code, though. > > >>> Hell, just measuring our test coverage so we know what we aren't > > >>> testing would probably be a good start. :/ > > >> > > >> Apparently the original oops, and the subsequent replay oopses, > > >> were on a filesystem VERY busy with torrents. > > >> > > >> Might be a testcase ;) > > So, would you mind trying to create this as a test? > Can you come up with a reliable way to create a > small but *very* fragmented filesystem to do stuff > with? See test 042 - it's not hard to do.. But 042 only uses a 48MB filesystem. To generate hundreds of thousands of extents, it needs to be done on a filesystem that can hold hundreds of thousands of blocks - gigabytes in size, IOWs. What I'd like to do is basically fill the fs full of single block files, delete every alternate one (fragments free space to stress those btrees), then fill the fs again with a single preallocation on a new file to convert the freespace fragments to a fragmented bmbt index, then free the remaining single block files and fill the fs again with a single preallocation on the same file that already fills half the fs. Finally, unmount the filesystem, mount it again and remove the extents back to the free space by iteratively punching out sparse ranges of the large file until it is empty. e.g. 0-1MB, 10-11MB, .... 1000MB-1001MB, 1-2MB, 11-12MB, ..... That should be a deterministic test that does the same btree operations from run to run and provide decent coverage of most of the btree and extent tree operations - including loading a massive bmap tree from disk into memory. I'd also like to repeat the test, but this time doing a random delete of half the files so the fragmented file is not made up entirely of single block extents. That will perturb the way the btrees grow and shrink and so will execute btree operations in combinations that the above deterministic test won't. e.g. it will trip bmbt split/merges causing freespace btree split/merges in the one allocation/free operation that a deterministic test will never hit... We don't really have coverage of bmap extent trees with that number of extents in them right now, and test 250 shows that we do really need that coverage (it exercised a bug in a 2->3 level split, IIRC). I'd also be inclined to use a 512 byte filesystem block size with only 2 AGs to cause the height of both the freespace and bmap the btrees to increase much more quickly, too. If we can, I'd like the test to range up to at least million extents in a bmap btree - that covers single unfragmented files into the multi-PB range for 4k block size filesystems. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sekharan@us.ibm.com Fri Jul 15 20:21:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1L9JZ228004 for ; Fri, 15 Jul 2011 20:21:09 -0500 X-ASG-Debug-ID: 1310779267-37e402970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9B39A1507860 for ; Fri, 15 Jul 2011 18:21:07 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id 44ceqKadI5k51l0D for ; Fri, 15 Jul 2011 18:21:07 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0tpNH022299 for ; Fri, 15 Jul 2011 20:55:51 -0400 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1L6Ax133538 for ; Fri, 15 Jul 2011 21:21:06 -0400 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FJKcuX007454 for ; Fri, 15 Jul 2011 13:20:38 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FJKcGj007427; Fri, 15 Jul 2011 13:20:38 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:05 -0700 Message-Id: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 00/12] Remove number of macros from xfs_buf.h Subject: [PATCH 00/12] Remove number of macros from xfs_buf.h X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1310779268 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello All, Here are few patchset to remove some of the macro definitions from fs/xfs/linux-2.6/xfs_buf.h. Please review and comment. Thanks & Regards, chandra From sekharan@us.ibm.com Fri Jul 15 20:21:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1LDPo228022 for ; Fri, 15 Jul 2011 20:21:14 -0500 X-ASG-Debug-ID: 1310779272-74ef00260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e3.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7C9EE1507862 for ; Fri, 15 Jul 2011 18:21:12 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.143]) by cuda.sgi.com with ESMTP id efTFdSBsCZHaadu5 for ; Fri, 15 Jul 2011 18:21:12 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0vn6Y027878 for ; Fri, 15 Jul 2011 20:57:49 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1LBsv163856 for ; Fri, 15 Jul 2011 21:21:12 -0400 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1LBDs007292 for ; Fri, 15 Jul 2011 19:21:11 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1LB7R007283; Fri, 15 Jul 2011 19:21:11 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:10 -0700 Message-Id: <20110716012110.6629.52933.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS Subject: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS X-Barracuda-Connect: e3.ny.us.ibm.com[32.97.182.143] X-Barracuda-Start-Time: 1310779273 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition of the macro XFS_BUF_BFLAGS and its usage. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_trans_buf.c | 2 +- 2 files changed, 1 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 50a7d5f..2c78bfe 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -233,7 +233,6 @@ extern void xfs_buf_terminate(void); ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) -#define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) #define XFS_BUF_ZEROFLAGS(bp) ((bp)->b_flags &= \ ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED)) diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 03b3b7f..d54b3f7 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -430,7 +430,7 @@ shutdown_abort: if (XFS_BUF_ISSTALE(bp) && XFS_BUF_ISDELAYWRITE(bp)) xfs_notice(mp, "about to pop assert, bp == 0x%p", bp); #endif - ASSERT((XFS_BUF_BFLAGS(bp) & (XBF_STALE|XBF_DELWRI)) != + ASSERT((bp->b_flags & (XBF_STALE|XBF_DELWRI)) != (XBF_STALE|XBF_DELWRI)); trace_xfs_trans_read_buf_shut(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:21:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_102, J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1LWaw228045 for ; Fri, 15 Jul 2011 20:21:32 -0500 X-ASG-Debug-ID: 1310779291-0d9e03550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e3.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B9A2F75A3F for ; Fri, 15 Jul 2011 18:21:31 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.143]) by cuda.sgi.com with ESMTP id die6nsDJDXCymJoa for ; Fri, 15 Jul 2011 18:21:31 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0w8af028007 for ; Fri, 15 Jul 2011 20:58:08 -0400 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1LUnD083556 for ; Fri, 15 Jul 2011 21:21:30 -0400 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1LUAj015119 for ; Fri, 15 Jul 2011 21:21:30 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1LTZG015072; Fri, 15 Jul 2011 21:21:29 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:29 -0700 Message-Id: <20110716012129.6629.54791.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family Subject: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family X-Barracuda-Connect: e3.ny.us.ibm.com[32.97.182.143] X-Barracuda-Start-Time: 1310779291 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and uses of the macros XFS_BUF_BUSY, XFS_BUF_UNBUSY, and XFS_BUF_ISBUSY. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 1 - fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 4 ---- fs/xfs/xfs_buf_item.c | 2 -- fs/xfs/xfs_log.c | 4 ---- fs/xfs/xfs_log_recover.c | 2 -- fs/xfs/xfs_trans_buf.c | 9 --------- 7 files changed, 0 insertions(+), 26 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b9bddee..c881c2e 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -684,7 +684,6 @@ xfs_buf_read_uncached( xfs_buf_lock(bp); XFS_BUF_SET_ADDR(bp, daddr); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); xfsbdstrat(mp, bp); error = xfs_buf_iowait(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 3dd1643..ce554d9 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -250,10 +250,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) -#define XFS_BUF_BUSY(bp) do { } while (0) -#define XFS_BUF_UNBUSY(bp) do { } while (0) -#define XFS_BUF_ISBUSY(bp) (1) - #define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC) #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 055e747..fa3c150 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -317,7 +317,6 @@ xfs_qm_init_dquot_blk( int curid, i; ASSERT(tp); - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); @@ -533,7 +532,6 @@ xfs_qm_dqtobp( return XFS_ERROR(error); } - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); /* @@ -552,7 +550,6 @@ xfs_qm_dqtobp( xfs_trans_brelse(tp, bp); return XFS_ERROR(EIO); } - XFS_BUF_BUSY(bp); /* We dirtied this */ } *O_bpp = bp; @@ -621,7 +618,6 @@ xfs_qm_dqread( * this particular dquot was repaired. We still aren't afraid to * brelse it because we have the changes incore. */ - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); xfs_trans_brelse(tp, bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 4ce25c9..d04046f 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -373,7 +373,6 @@ xfs_buf_item_pin( { struct xfs_buf_log_item *bip = BUF_ITEM(lip); - ASSERT(XFS_BUF_ISBUSY(bip->bli_buf)); ASSERT(atomic_read(&bip->bli_refcount) > 0); ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || (bip->bli_flags & XFS_BLI_STALE)); @@ -904,7 +903,6 @@ xfs_buf_attach_iodone( { xfs_log_item_t *head_lip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); lip->li_cb = cb; diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index a9aa791..721a63d 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1058,7 +1058,6 @@ xlog_alloc_log(xfs_mount_t *mp, goto out_free_log; XFS_BUF_SET_IODONE_FUNC(bp, xlog_iodone); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)1); - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); log->l_xbuf = bp; @@ -1117,7 +1116,6 @@ xlog_alloc_log(xfs_mount_t *mp, iclog->ic_callback_tail = &(iclog->ic_callback); iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; - ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); ASSERT(XFS_BUF_VALUSEMA(iclog->ic_bp) <= 0); init_waitqueue_head(&iclog->ic_force_wait); init_waitqueue_head(&iclog->ic_write_wait); @@ -1368,7 +1366,6 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_COUNT(bp, count); XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_LOG_BUFFER; @@ -1413,7 +1410,6 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_FSPRIVATE(bp, iclog); bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_LOG_BUFFER; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index b1778d6..fa0c0d6 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -174,7 +174,6 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); @@ -262,7 +261,6 @@ xlog_bwrite( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); - XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); XFS_BUF_PSEMA(bp, PRIBIO); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index cf2a8ab..73f3685 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -80,7 +80,6 @@ _xfs_trans_bjoin( { struct xfs_buf_log_item *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, void *) == NULL); /* @@ -583,7 +582,6 @@ xfs_trans_bhold(xfs_trans_t *tp, { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -605,7 +603,6 @@ xfs_trans_bhold_release(xfs_trans_t *tp, { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -636,7 +633,6 @@ xfs_trans_log_buf(xfs_trans_t *tp, { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); @@ -708,7 +704,6 @@ xfs_trans_binval( { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -782,7 +777,6 @@ xfs_trans_inode_buf( { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -808,7 +802,6 @@ xfs_trans_stale_inode_buf( { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -835,7 +828,6 @@ xfs_trans_inode_alloc_buf( { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); @@ -865,7 +857,6 @@ xfs_trans_dquot_buf( { xfs_buf_log_item_t *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); ASSERT(type == XFS_BLF_UDQUOT_BUF || -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:21:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1Ld33228063 for ; Fri, 15 Jul 2011 20:21:40 -0500 X-ASG-Debug-ID: 1310779298-4dd2019a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5795B1507865 for ; Fri, 15 Jul 2011 18:21:38 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id 4I0QxjGpILUBEWg0 for ; Fri, 15 Jul 2011 18:21:38 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0naQc010006 for ; Fri, 15 Jul 2011 20:49:36 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1LamJ1683704 for ; Fri, 15 Jul 2011 21:21:38 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1La3o024725 for ; Fri, 15 Jul 2011 21:21:36 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1LZLu024695; Fri, 15 Jul 2011 21:21:35 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:35 -0700 Message-Id: <20110716012135.6629.35363.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD Subject: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1310779299 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_HOLD Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_mount.c | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index ce554d9..536ede5 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -258,7 +258,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNORDERED(bp) ((bp)->b_flags &= ~XBF_ORDERED) #define XFS_BUF_ISORDERED(bp) ((bp)->b_flags & XBF_ORDERED) -#define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) #define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) #define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) #define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index d04046f..299f614 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -486,7 +486,7 @@ xfs_buf_item_trylock( return XFS_ITEM_LOCKED; /* take a reference to the buffer. */ - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); trace_xfs_buf_item_trylock(bip); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index fa0c0d6..87d7d95 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -261,7 +261,7 @@ xlog_bwrite( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); XFS_BUF_PSEMA(bp, PRIBIO); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index e569b77..c8a5a34 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1952,7 +1952,7 @@ xfs_getsb( } else { XFS_BUF_PSEMA(bp, PRIBIO); } - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(XFS_BUF_ISDONE(bp)); return bp; } -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1M1Mb228094 for ; Fri, 15 Jul 2011 20:22:01 -0500 X-ASG-Debug-ID: 1310779320-2e8a015a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3DE2A75A45 for ; Fri, 15 Jul 2011 18:22:00 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id gqUL889hGBLdvRox for ; Fri, 15 Jul 2011 18:22:00 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0ujdJ023459 for ; Fri, 15 Jul 2011 20:56:45 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1M0uD157964 for ; Fri, 15 Jul 2011 21:22:00 -0400 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1LxwZ008661 for ; Fri, 15 Jul 2011 19:21:59 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1LxNO008648; Fri, 15 Jul 2011 19:21:59 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:58 -0700 Message-Id: <20110716012158.6629.88989.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Subject: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1310779321 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Replace the macro with an inline helper function, and change all its usages. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 5 ++++- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/quota/xfs_dquot.c | 4 ++-- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_inode.c | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b3265dd..57b36e2 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1694,7 +1694,7 @@ xfs_buf_delwri_split( list_for_each_entry_safe(bp, n, dwq, b_list) { ASSERT(XFS_BUF_ISDELAYWRITE(bp)); - if (!XFS_BUF_ISPINNED(bp) && !xfs_buf_cond_lock(bp)) { + if (!xfs_buf_ispinned(bp) && !xfs_buf_cond_lock(bp)) { if (!force && time_before(jiffies, bp->b_queuetime + age)) { xfs_buf_unlock(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 7149c07..177c6f1 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -294,7 +294,10 @@ xfs_buf_set_ref( #define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) #define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) +static inline int xfs_buf_ispinned(struct xfs_buf *bp) +{ + return atomic_read(&(bp->b_pin_count)); +} #define XFS_BUF_VALUSEMA(bp) xfs_buf_lock_value(bp) #define XFS_BUF_CPSEMA(bp) (xfs_buf_cond_lock(bp) == 0) diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index b32c09e..4331463 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -330,7 +330,7 @@ xfs_sync_fsdata( * between there and here. */ bp = xfs_getsb(mp, 0); - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); return xfs_bwrite(mp, bp); diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 7a3beba..c94e350 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1235,7 +1235,7 @@ xfs_qm_dqflush( * If the buffer is pinned then push on the log so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) { + if (xfs_buf_ispinned(bp)) { trace_xfs_dqflush_force(dqp); xfs_log_force(mp, 0); } @@ -1481,7 +1481,7 @@ xfs_qm_dqflock_pushbuf_wait( goto out_lock; if (XFS_BUF_ISDELAYWRITE(bp)) { - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); xfs_buf_delwri_promote(bp); wake_up_process(bp->b_target->bt_task); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index c4f01e0..2f4169a 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -480,7 +480,7 @@ xfs_buf_item_trylock( struct xfs_buf_log_item *bip = BUF_ITEM(lip); struct xfs_buf *bp = bip->bli_buf; - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) return XFS_ITEM_PINNED; if (!XFS_BUF_CPSEMA(bp)) return XFS_ITEM_LOCKED; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index ff8d8ea..c6f870d 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2848,7 +2848,7 @@ xfs_iflush( * If the buffer is pinned then push on the log now so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); /* -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1M7VR228112 for ; Fri, 15 Jul 2011 20:22:07 -0500 X-ASG-Debug-ID: 1310779326-4dd2019c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D28DD150786D for ; Fri, 15 Jul 2011 18:22:06 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id 39OHGnoqu2lHCnvn for ; Fri, 15 Jul 2011 18:22:06 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0uoo8023526 for ; Fri, 15 Jul 2011 20:56:50 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1M5TF144070 for ; Fri, 15 Jul 2011 21:22:05 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FLLr5D023445 for ; Fri, 15 Jul 2011 18:21:53 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FLLqCM023430; Fri, 15 Jul 2011 18:21:53 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:22:04 -0700 Message-Id: <20110716012204.6629.86975.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET Subject: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1310779326 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_SET_TARGET. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log_recover.c | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 177c6f1..d6ba841 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -305,7 +305,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_PSEMA(bp,x) xfs_buf_lock(bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) #define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 15e3bc0..97a3536 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -175,7 +175,7 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); + bp->b_target = log->l_mp->m_logdev_targp; xfsbdstrat(log->l_mp, bp); error = xfs_buf_iowait(bp); @@ -264,7 +264,7 @@ xlog_bwrite( xfs_buf_hold(bp); XFS_BUF_PSEMA(bp, PRIBIO); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); + bp ->b_target = log->l_mp->m_logdev_targp; if ((error = xfs_bwrite(log->l_mp, bp))) xfs_ioerror_alert("xlog_bwrite", log->l_mp, -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_102 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1MDdI228130 for ; Fri, 15 Jul 2011 20:22:13 -0500 X-ASG-Debug-ID: 1310779332-0de5035b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e8.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E9FB775A4B for ; Fri, 15 Jul 2011 18:22:12 -0700 (PDT) Received: from e8.ny.us.ibm.com (e8.ny.us.ibm.com [32.97.182.138]) by cuda.sgi.com with ESMTP id 1QhAYCBjoWnwuVA0 for ; Fri, 15 Jul 2011 18:22:12 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e8.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G19m0j026412 for ; Fri, 15 Jul 2011 21:09:48 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1MBor153450 for ; Fri, 15 Jul 2011 21:22:12 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1MBGd027971 for ; Fri, 15 Jul 2011 22:22:11 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1MBfB027925; Fri, 15 Jul 2011 22:22:11 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:22:10 -0700 Message-Id: <20110716012210.6629.98115.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET Subject: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET X-Barracuda-Connect: e8.ny.us.ibm.com[32.97.182.138] X-Barracuda-Start-Time: 1310779332 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_TARGET Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_da_btree.c | 2 +- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_rw.c | 2 +- fs/xfs/xfs_trans_buf.c | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index d6ba841..6e4d465 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -305,7 +305,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_PSEMA(bp,x) xfs_buf_lock(bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) static inline void xfs_buf_relse(xfs_buf_t *bp) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 2f4169a..351e781 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -980,14 +980,14 @@ xfs_buf_iodone_callbacks( goto do_callbacks; } - if (XFS_BUF_TARGET(bp) != lasttarg || + if (bp->b_target != lasttarg || time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } - lasttarg = XFS_BUF_TARGET(bp); + lasttarg = bp->b_target; /* * If the write was asynchronous then no one will be looking for the diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index c4b6fbe..7d92207 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2259,7 +2259,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) dabuf->dirty = 0; #ifdef XFS_DABUF_DEBUG dabuf->ra = ra; - dabuf->target = XFS_BUF_TARGET(bps[0]); + dabuf->target = bps[0]->b_target; dabuf->blkno = XFS_BUF_ADDR(bps[0]); #endif if (nbuf == 1) { diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index c8a5a34..cf1588c 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1626,7 +1626,7 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) XFS_BUF_UNDELAYWRITE(sbp); XFS_BUF_WRITE(sbp); XFS_BUF_UNASYNC(sbp); - ASSERT(XFS_BUF_TARGET(sbp) == mp->m_ddev_targp); + ASSERT(sbp->b_target == mp->m_ddev_targp); xfsbdstrat(mp, sbp); error = xfs_buf_iowait(sbp); if (error) diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index 0e326b4..92c4b74 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)blkno, func, xfs_buf_geterror(bp), XFS_BUF_COUNT(bp)); } diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 73f3685..e6f18db 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -54,7 +54,7 @@ xfs_trans_buf_item_match( list_for_each_entry(lidp, &tp->t_items, lid_trans) { blip = (struct xfs_buf_log_item *)lidp->lid_item; if (blip->bli_item.li_type == XFS_LI_BUF && - XFS_BUF_TARGET(blip->bli_buf) == target && + blip->bli_buf->b_target == target && XFS_BUF_ADDR(blip->bli_buf) == blkno && XFS_BUF_COUNT(blip->bli_buf) == len) return blip->bli_buf; -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1MJJR228145 for ; Fri, 15 Jul 2011 20:22:19 -0500 X-ASG-Debug-ID: 1310779338-751200300000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DAB9B1507872 for ; Fri, 15 Jul 2011 18:22:18 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id kPAlLtcL2JpOZpcZ for ; Fri, 15 Jul 2011 18:22:18 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G11Ddb014957 for ; Fri, 15 Jul 2011 21:01:13 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1MHJS130544 for ; Fri, 15 Jul 2011 21:22:17 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FLM5VN024133 for ; Fri, 15 Jul 2011 18:22:05 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FLM4oI024097; Fri, 15 Jul 2011 18:22:05 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:22:16 -0700 Message-Id: <20110716012216.6629.25185.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1310779338 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUFTARG_NAME. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 2 -- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_rw.c | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 57b36e2..f0c7258 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1497,7 +1497,7 @@ xfs_setsize_buftarg_flags( if (set_blocksize(btp->bt_bdev, sectorsize)) { xfs_warn(btp->bt_mount, "Cannot set_blocksize to %u on device %s\n", - sectorsize, XFS_BUFTARG_NAME(btp)); + sectorsize, xfs_buf_target_name(btp)); return EINVAL; } diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6e4d465..53e0bab 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -305,8 +305,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_PSEMA(bp,x) xfs_buf_lock(bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) - static inline void xfs_buf_relse(xfs_buf_t *bp) { xfs_buf_unlock(bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 351e781..538558d 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -984,7 +984,7 @@ xfs_buf_iodone_callbacks( time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } lasttarg = bp->b_target; diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index 92c4b74..a1c9fcd 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)blkno, func, xfs_buf_geterror(bp), XFS_BUF_COUNT(bp)); } -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1MZJO228173 for ; Fri, 15 Jul 2011 20:22:35 -0500 X-ASG-Debug-ID: 1310779354-2e8c01740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 15EC075A4D for ; Fri, 15 Jul 2011 18:22:34 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id xZKdATitfzfcNtPo for ; Fri, 15 Jul 2011 18:22:34 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G11TZj015333 for ; Fri, 15 Jul 2011 21:01:29 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1LHeL1577088 for ; Fri, 15 Jul 2011 21:21:17 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FLL5Z3021953 for ; Fri, 15 Jul 2011 18:21:05 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FLL43I021934; Fri, 15 Jul 2011 18:21:05 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:16 -0700 Message-Id: <20110716012116.6629.48217.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1310779355 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_ZEROFLAGS. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/xfs_log.c | 5 +++-- fs/xfs/xfs_log_recover.c | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 2c78bfe..e8304f1 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -232,10 +232,6 @@ extern void xfs_buf_terminate(void); #define xfs_buf_target_name(target) \ ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) - -#define XFS_BUF_ZEROFLAGS(bp) ((bp)->b_flags &= \ - ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED)) - void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); #define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 41d5b8f..b17e651 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1367,7 +1367,7 @@ xlog_sync(xlog_t *log, } XFS_BUF_SET_COUNT(bp, count); XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_LOG_BUFFER; @@ -1411,7 +1411,8 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); XFS_BUF_SET_FSPRIVATE(bp, iclog); - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= + ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_LOG_BUFFER; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 04142ca..75ba081 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -261,7 +261,7 @@ xlog_bwrite( ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); XFS_BUF_PSEMA(bp, PRIBIO); -- 1.7.1 From sekharan@us.ibm.com Fri Jul 15 20:22:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1MfpW228191 for ; Fri, 15 Jul 2011 20:22:41 -0500 X-ASG-Debug-ID: 1310779360-0de4037d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e3.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0ADA475A4F for ; Fri, 15 Jul 2011 18:22:40 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.143]) by cuda.sgi.com with ESMTP id G2OSFxdmgYd09eAq for ; Fri, 15 Jul 2011 18:22:40 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G0xHQb028542 for ; Fri, 15 Jul 2011 20:59:17 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1LO5K168424 for ; Fri, 15 Jul 2011 21:21:24 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6G1LOp0025477 for ; Fri, 15 Jul 2011 22:21:24 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6G1LNQ5025463; Fri, 15 Jul 2011 22:21:23 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:22 -0700 Message-Id: <20110716012122.6629.95933.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Subject: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family X-Barracuda-Connect: e3.ny.us.ibm.com[32.97.182.143] X-Barracuda-Start-Time: 1310779361 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and usage of the macros XFS_BUF_ERROR, XFS_BUF_GETERROR and XFS_BUF_ISERROR. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 6 +++--- fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 2 +- fs/xfs/xfs_alloc.c | 6 +++--- fs/xfs/xfs_attr.c | 2 +- fs/xfs/xfs_btree.c | 12 ++++++------ fs/xfs/xfs_buf_item.c | 4 ++-- fs/xfs/xfs_da_btree.c | 2 +- fs/xfs/xfs_ialloc.c | 4 ++-- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 10 +++++----- fs/xfs/xfs_rtalloc.c | 2 +- fs/xfs/xfs_rw.c | 4 ++-- fs/xfs/xfs_trans_buf.c | 12 ++++++------ fs/xfs/xfs_vnodeops.c | 4 ++-- 16 files changed, 38 insertions(+), 42 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 8b24dc4..b9bddee 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -600,7 +600,7 @@ _xfs_buf_read( XBF_READ_AHEAD | _XBF_RUN_QUEUES); status = xfs_buf_iorequest(bp); - if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) + if (status || xfs_buf_geterror(bp) || (flags & XBF_ASYNC)) return status; return xfs_buf_iowait(bp); } @@ -1085,7 +1085,7 @@ xfs_bioerror( /* * No need to wait until the buffer is unpinned, we aren't flushing it. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); /* * We're calling xfs_buf_ioend, so delete XBF_DONE flag. @@ -1131,7 +1131,7 @@ xfs_bioerror_relse( * There's no reason to mark error for * ASYNC buffers. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_FINISH_IOWAIT(bp); } else { xfs_buf_relse(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index e8304f1..3dd1643 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -246,10 +246,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDELAYWRITE(bp) xfs_buf_delwri_dequeue(bp) #define XFS_BUF_ISDELAYWRITE(bp) ((bp)->b_flags & XBF_DELWRI) -#define XFS_BUF_ERROR(bp,no) xfs_buf_ioerror(bp,no) -#define XFS_BUF_GETERROR(bp) xfs_buf_geterror(bp) -#define XFS_BUF_ISERROR(bp) (xfs_buf_geterror(bp) ? 1 : 0) - #define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE) #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 6fa2146..055e747 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -402,7 +402,7 @@ xfs_qm_dqalloc( dqp->q_blkno, mp->m_quotainfo->qi_dqchunklen, 0); - if (!bp || (error = XFS_BUF_GETERROR(bp))) + if (!bp || (error = xfs_buf_geterror(bp))) goto error1; /* * Make a chunk of dquots out of this buffer and log diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 95862bb..bddbafd 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -452,7 +452,7 @@ xfs_alloc_read_agfl( if (error) return error; ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGFL, XFS_AGFL_REF); *bpp = bp; return 0; @@ -2120,7 +2120,7 @@ xfs_read_agf( if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); agf = XFS_BUF_TO_AGF(*bpp); /* @@ -2172,7 +2172,7 @@ xfs_alloc_read_agf( return error; if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); agf = XFS_BUF_TO_AGF(*bpp); pag = xfs_perag_get(mp, agno); diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index 01d2072..9607248 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c @@ -2119,7 +2119,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args) bp = xfs_buf_get(mp->m_ddev_targp, dblkno, blkcnt, XBF_LOCK | XBF_DONT_BLOCK); ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); tmp = (valuelen < XFS_BUF_SIZE(bp)) ? valuelen : XFS_BUF_SIZE(bp); diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index 2f9e97c..974628d 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -277,7 +277,7 @@ xfs_btree_dup_cursor( } new->bc_bufs[i] = bp; ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); } else new->bc_bufs[i] = NULL; } @@ -469,7 +469,7 @@ xfs_btree_get_bufl( d = XFS_FSB_TO_DADDR(mp, fsbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -493,7 +493,7 @@ xfs_btree_get_bufs( d = XFS_AGB_TO_DADDR(mp, agno, agbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -633,7 +633,7 @@ xfs_btree_read_bufl( mp->m_bsize, lock, &bp))) { return error; } - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); + ASSERT(!bp || !xfs_buf_geterror(bp)); if (bp) XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval); *bpp = bp; @@ -975,7 +975,7 @@ xfs_btree_get_buf_block( mp->m_bsize, flags); ASSERT(*bpp); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); *block = XFS_BUF_TO_BLOCK(*bpp); return 0; @@ -1008,7 +1008,7 @@ xfs_btree_read_buf_block( return error; ASSERT(*bpp != NULL); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); xfs_btree_set_refs(cur, *bpp); *block = XFS_BUF_TO_BLOCK(*bpp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 7b7e005..4ce25c9 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -969,7 +969,7 @@ xfs_buf_iodone_callbacks( static ulong lasttime; static xfs_buftarg_t *lasttarg; - if (likely(!XFS_BUF_GETERROR(bp))) + if (likely(!xfs_buf_geterror(bp))) goto do_callbacks; /* @@ -1000,7 +1000,7 @@ xfs_buf_iodone_callbacks( * around. */ if (XFS_BUF_ISASYNC(bp)) { - XFS_BUF_ERROR(bp, 0); /* errno of 0 unsets the flag */ + xfs_buf_ioerror(bp, 0); /* errno of 0 unsets the flag */ if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 6102ac6..03de079 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2032,7 +2032,7 @@ xfs_da_do_buf( case 0: bp = xfs_trans_get_buf(trans, mp->m_ddev_targp, mappedbno, nmapped, 0); - error = bp ? XFS_BUF_GETERROR(bp) : XFS_ERROR(EIO); + error = bp ? xfs_buf_geterror(bp) : XFS_ERROR(EIO); break; case 1: case 2: diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index 84ebeec..65cc921 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -203,7 +203,7 @@ xfs_ialloc_inode_init( mp->m_bsize * blks_per_cluster, XBF_LOCK); ASSERT(fbuf); - ASSERT(!XFS_BUF_GETERROR(fbuf)); + ASSERT(!xfs_buf_geterror(fbuf)); /* * Initialize all inodes in this buffer and then log them. @@ -1486,7 +1486,7 @@ xfs_read_agi( if (error) return error; - ASSERT(*bpp && !XFS_BUF_GETERROR(*bpp)); + ASSERT(*bpp && !xfs_buf_geterror(*bpp)); agi = XFS_BUF_TO_AGI(*bpp); /* diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index a098a20..ff8d8ea 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2736,7 +2736,7 @@ cluster_corrupt_out: if (XFS_BUF_IODONE_FUNC(bp)) { XFS_BUF_UNDONE(bp); XFS_BUF_STALE(bp); - XFS_BUF_ERROR(bp,EIO); + xfs_buf_ioerror(bp, EIO); xfs_buf_ioend(bp, 0); } else { XFS_BUF_STALE(bp); diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index b17e651..a9aa791 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -884,7 +884,7 @@ xlog_iodone(xfs_buf_t *bp) /* * Race to shutdown the filesystem if we see an error. */ - if (XFS_TEST_ERROR((XFS_BUF_GETERROR(bp)), l->l_mp, + if (XFS_TEST_ERROR((xfs_buf_geterror(bp)), l->l_mp, XFS_ERRTAG_IODONE_IOERR, XFS_RANDOM_IODONE_IOERR)) { xfs_ioerror_alert("xlog_iodone", l->l_mp, bp, XFS_BUF_ADDR(bp)); XFS_BUF_STALE(bp); @@ -1258,7 +1258,7 @@ xlog_bdstrat( iclog = XFS_BUF_FSPRIVATE(bp, xlog_in_core_t *); if (iclog->ic_state & XLOG_STATE_IOERROR) { - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_STALE(bp); xfs_buf_ioend(bp, 0); /* diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 75ba081..b1778d6 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -356,7 +356,7 @@ STATIC void xlog_recover_iodone( struct xfs_buf *bp) { - if (XFS_BUF_GETERROR(bp)) { + if (xfs_buf_geterror(bp)) { /* * We're not going to bother about retrying * this during recovery. One strike! @@ -2131,10 +2131,10 @@ xlog_recover_buffer_pass2( bp = xfs_buf_read(mp->m_ddev_targp, buf_f->blf_blkno, buf_f->blf_len, buf_flags); - if (XFS_BUF_ISERROR(bp)) { + if (xfs_buf_geterror(bp)) { xfs_ioerror_alert("xlog_recover_do..(read#1)", mp, bp, buf_f->blf_blkno); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); xfs_buf_relse(bp); return error; } @@ -2223,10 +2223,10 @@ xlog_recover_inode_pass2( bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len, XBF_LOCK); - if (XFS_BUF_ISERROR(bp)) { + if (xfs_buf_geterror(bp)) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, bp, in_f->ilf_blkno); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); xfs_buf_relse(bp); goto error; } diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 8f76fdf..2243cfb 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -883,7 +883,7 @@ xfs_rtbuf_get( if (error) { return error; } - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(bp && !xfs_buf_geterror(bp)); *bpp = bp; return 0; } diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index d6d6fdf..0e326b4 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -106,7 +106,7 @@ xfs_ioerror_alert( " (\"%s\") error %d buf count %zd", XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), (__uint64_t)blkno, func, - XFS_BUF_GETERROR(bp), XFS_BUF_COUNT(bp)); + xfs_buf_geterror(bp), XFS_BUF_COUNT(bp)); } /* @@ -137,7 +137,7 @@ xfs_read_buf( bp = xfs_buf_read(target, blkno, len, flags); if (!bp) return XFS_ERROR(EIO); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); if (bp && !error && !XFS_FORCED_SHUTDOWN(mp)) { *bpp = bp; } else { diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index d54b3f7..cf2a8ab 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -194,7 +194,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, return NULL; } - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); _xfs_trans_bjoin(tp, bp, 1); trace_xfs_trans_get_buf(bp->b_fspriv); @@ -293,10 +293,10 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? EAGAIN : XFS_ERROR(ENOMEM); - if (XFS_BUF_GETERROR(bp) != 0) { + if (xfs_buf_geterror(bp) != 0) { xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); xfs_buf_relse(bp); return error; } @@ -330,7 +330,7 @@ xfs_trans_read_buf( ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); ASSERT(XFS_BUF_FSPRIVATE2(bp, xfs_trans_t *) == tp); ASSERT(XFS_BUF_FSPRIVATE(bp, void *) != NULL); - ASSERT((XFS_BUF_ISERROR(bp)) == 0); + ASSERT(!xfs_buf_geterror(bp)); if (!(XFS_BUF_ISDONE(bp))) { trace_xfs_trans_read_buf_io(bp, _RET_IP_); ASSERT(!XFS_BUF_ISASYNC(bp)); @@ -386,9 +386,9 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? 0 : XFS_ERROR(ENOMEM); } - if (XFS_BUF_GETERROR(bp) != 0) { + if (xfs_buf_geterror(bp) != 0) { XFS_BUF_SUPER_STALE(bp); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 6197207..0eb5c48 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -507,7 +507,7 @@ xfs_readlink_bmap( bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); if (error) { xfs_ioerror_alert("xfs_readlink", ip->i_mount, bp, XFS_BUF_ADDR(bp)); @@ -2109,7 +2109,7 @@ xfs_symlink( byte_cnt = XFS_FSB_TO_B(mp, mval[n].br_blockcount); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, BTOBB(byte_cnt), 0); - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(bp && !xfs_buf_geterror(bp)); if (pathlen < byte_cnt) { byte_cnt = pathlen; } -- 1.7.1 From david@fromorbit.com Fri Jul 15 20:50:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1oJK0229523 for ; Fri, 15 Jul 2011 20:50:20 -0500 X-ASG-Debug-ID: 1310781016-37e3037e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE2FE1507C6D; Fri, 15 Jul 2011 18:50:17 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id WBojeB8xiRNvAjOE; Fri, 15 Jul 2011 18:50:17 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmkEABbsIE55LCkBgWdsb2JhbABTp3AVAQEWJiXLWw6FTV8Eo0s Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 16 Jul 2011 11:20:15 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qhu1G-0004CJ-99; Sat, 16 Jul 2011 11:50:14 +1000 Date: Sat, 16 Jul 2011 11:50:14 +1000 From: Dave Chinner To: Christoph Hellwig Cc: "J. Bruce Fields" , xfs-masters@oss.sgi.com, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110716015014.GF21663@dastard> References: <20110714205036.GA19457@fieldses.org> <20110714223126.GA28694@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110714223126.GA28694@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310781018 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69042 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 14, 2011 at 06:31:26PM -0400, Christoph Hellwig wrote: > On Thu, Jul 14, 2011 at 04:50:36PM -0400, J. Bruce Fields wrote: > > From: J. Bruce Fields > > > > On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE > > on attempts to use a filehandle of a deleted file (spotted with pynfs > > test PUTFH3). The ENOENT was coming from xfs_iget. > > With that you mean the ip->i_d.di_mode checks? Given that we should > only be bale to get these from NFS or the handle ioctls I suspect just > turning them into ESTALE should be fine. Bulkstat also checks for ENOENT returns from xfs_iget() as the lookup it does is inherently racy. That is, if the inode is allocated when it is read from the IBT, but then has been unlinked before the actual xfs_iget() call, it expects to get back an ENOENT to tell it the inode has been unlinked and shouldn't be included in the bulkstat output. Otherwise, it returns the error to userspace. So converting the mode checks to return ESTALE definitely has the chance of breaking stuff that uses bulkstat (e.g. xfsdump) because it will return errors now where it previously just skipped the (unlinked) inode. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 20:53:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1rpbm229811 for ; Fri, 15 Jul 2011 20:53:52 -0500 X-ASG-Debug-ID: 1310781229-3eae03350000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8FBEC17DB544; Fri, 15 Jul 2011 18:53:49 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id VLEWoZCv9lVEP9C8; Fri, 15 Jul 2011 18:53:49 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qhu4g-00009Z-FG; Sat, 16 Jul 2011 01:53:46 +0000 Date: Fri, 15 Jul 2011 21:53:46 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , "J. Bruce Fields" , xfs-masters@oss.sgi.com, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110716015346.GA589@infradead.org> References: <20110714205036.GA19457@fieldses.org> <20110714223126.GA28694@infradead.org> <20110716015014.GF21663@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716015014.GF21663@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781230 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Jul 16, 2011 at 11:50:14AM +1000, Dave Chinner wrote: > Bulkstat also checks for ENOENT returns from xfs_iget() as the > lookup it does is inherently racy. That is, if the inode is > allocated when it is read from the IBT, but then has been unlinked > before the actual xfs_iget() call, it expects to get back an ENOENT > to tell it the inode has been unlinked and shouldn't be included in > the bulkstat output. Otherwise, it returns the error to userspace. > > So converting the mode checks to return ESTALE definitely has the > chance of breaking stuff that uses bulkstat (e.g. xfsdump) because > it will return errors now where it previously just skipped the > (unlinked) inode. Sounds like we should simply go with the original version of the patch then. From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 20:54:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1sGvp229855 for ; Fri, 15 Jul 2011 20:54:16 -0500 X-ASG-Debug-ID: 1310781255-072600010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 348AC17DB580 for ; Fri, 15 Jul 2011 18:54:15 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 0zOAax3IMIgKUET0 for ; Fri, 15 Jul 2011 18:54:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qhu56-0000A1-MA; Sat, 16 Jul 2011 01:54:12 +0000 Date: Fri, 15 Jul 2011 21:54:12 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS Subject: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS Message-ID: <20110716015412.GB589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012110.6629.52933.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012110.6629.52933.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781256 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2902 1.0000 -0.3903 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.29 X-Barracuda-Spam-Status: No, SCORE=-0.29 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks fine, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 20:59:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G1x3KR230044 for ; Fri, 15 Jul 2011 20:59:03 -0500 X-ASG-Debug-ID: 1310781542-0fd800140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EE0401507CB2 for ; Fri, 15 Jul 2011 18:59:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id nND1diB5yhrn3c5R for ; Fri, 15 Jul 2011 18:59:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qhu9l-000154-ND; Sat, 16 Jul 2011 01:59:01 +0000 Date: Fri, 15 Jul 2011 21:59:01 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Message-ID: <20110716015901.GC589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012116.6629.48217.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012116.6629.48217.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781542 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69042 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -1367,7 +1367,7 @@ xlog_sync(xlog_t *log, > } > XFS_BUF_SET_COUNT(bp, count); > XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ > - XFS_BUF_ZEROFLAGS(bp); > + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); > XFS_BUF_BUSY(bp); > XFS_BUF_ASYNC(bp); > bp->b_flags |= XBF_LOG_BUFFER; Note that XBF_ORDERED is gone in the current tree, you need to rebase your patches to pick up the buffer changes I recently sent out. I don't link this blind expansion. For one all that flag setting is duplicated in two places in xlog_sync, please send a patch to consolidate it in xlog_bdstrat. Second XBF_READ and XBF_DELWRI won't ever be set here, so no need to clear them. And XBF_WRITE and XBF_ASYNC will get re-set a few lines down the code, so no need to clear them either. The XBF_FLUSH and XBF_FUA flag also get set conditionally a little below, so I'd just clear them in an else clause for the if condition checking if they should be set. > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > index 04142ca..75ba081 100644 > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -261,7 +261,7 @@ xlog_bwrite( > ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); > > XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); > - XFS_BUF_ZEROFLAGS(bp); > + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); > XFS_BUF_BUSY(bp); > XFS_BUF_HOLD(bp); > XFS_BUF_PSEMA(bp, PRIBIO); XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with in xfs_bwrite a few lines down, and XBF_ORDERED can't be set here. IOW this line can simply be removed. From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:00:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G20A1l230135 for ; Fri, 15 Jul 2011 21:00:10 -0500 X-ASG-Debug-ID: 1310781609-0726005d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0CA1317DB6D5 for ; Fri, 15 Jul 2011 19:00:09 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Gc0QvHJu5A63mA1X for ; Fri, 15 Jul 2011 19:00:09 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuAq-0001q6-St; Sat, 16 Jul 2011 02:00:08 +0000 Date: Fri, 15 Jul 2011 22:00:08 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Message-ID: <20110716020008.GD589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012122.6629.95933.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012122.6629.95933.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781610 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4614 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:21:22PM -0700, Chandra Seetharaman wrote: > Remove the definitions and usage of the macros XFS_BUF_ERROR, > XFS_BUF_GETERROR and XFS_BUF_ISERROR. Looks fine, although I'd prefer to just use bp->b_error directly instead of xfs_buf_geterror when we know that bp is non-zero. From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:01:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G21bLM230226 for ; Fri, 15 Jul 2011 21:01:37 -0500 X-ASG-Debug-ID: 1310781696-6c0e002c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CDA36747ED for ; Fri, 15 Jul 2011 19:01:36 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id GE0lZFC0s3naMdbT for ; Fri, 15 Jul 2011 19:01:36 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuCG-0001rp-5c; Sat, 16 Jul 2011 02:01:36 +0000 Date: Fri, 15 Jul 2011 22:01:36 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family Subject: Re: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family Message-ID: <20110716020136.GE589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012129.6629.54791.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012129.6629.54791.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781696 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0012 1.0000 -2.0129 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:01:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G21tLJ230279 for ; Fri, 15 Jul 2011 21:01:55 -0500 X-ASG-Debug-ID: 1310781714-072500580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7BA3417DB6DE for ; Fri, 15 Jul 2011 19:01:54 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id OhbNw4dl4ksu9OME for ; Fri, 15 Jul 2011 19:01:54 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuCY-0001s3-1V; Sat, 16 Jul 2011 02:01:54 +0000 Date: Fri, 15 Jul 2011 22:01:54 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD Subject: Re: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD Message-ID: <20110716020153.GF589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012135.6629.35363.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012135.6629.35363.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781714 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2599 1.0000 -0.5281 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.43 X-Barracuda-Spam-Status: No, SCORE=-0.43 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:05:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G25og8230418 for ; Fri, 15 Jul 2011 21:05:50 -0500 X-ASG-Debug-ID: 1310781948-751301760000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5EEAF1507B10 for ; Fri, 15 Jul 2011 19:05:48 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ygnE7598Spcmx2OH for ; Fri, 15 Jul 2011 19:05:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuGK-0002gj-Eq; Sat, 16 Jul 2011 02:05:48 +0000 Date: Fri, 15 Jul 2011 22:05:48 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Subject: Re: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Message-ID: <20110716020548.GA10258@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012158.6629.88989.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012158.6629.88989.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781949 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0037 1.0000 -1.9971 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.90 X-Barracuda-Spam-Status: No, SCORE=-1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69044 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:21:58PM -0700, Chandra Seetharaman wrote: > Replace the macro with an inline helper function, and change all > its usages. Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:06:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G26Ol2230456 for ; Fri, 15 Jul 2011 21:06:24 -0500 X-ASG-Debug-ID: 1310781983-628500da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 143C575C44 for ; Fri, 15 Jul 2011 19:06:23 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id OwDDyfXnnrOEzgSA for ; Fri, 15 Jul 2011 19:06:23 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuGt-0002hB-GD; Sat, 16 Jul 2011 02:06:23 +0000 Date: Fri, 15 Jul 2011 22:06:23 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET Subject: Re: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET Message-ID: <20110716020623.GB10258@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012204.6629.86975.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012204.6629.86975.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310781984 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0124 1.0000 -1.9400 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.84 X-Barracuda-Spam-Status: No, SCORE=-1.84 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean As all the buffer allocator already set ->b_target it should be safe to simply remove these calls. From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:06:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G26hrS230479 for ; Fri, 15 Jul 2011 21:06:44 -0500 X-ASG-Debug-ID: 1310782003-6c1100560000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7274175C59 for ; Fri, 15 Jul 2011 19:06:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id XpZV8MK5NY572yps for ; Fri, 15 Jul 2011 19:06:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuHC-0002he-Q8; Sat, 16 Jul 2011 02:06:42 +0000 Date: Fri, 15 Jul 2011 22:06:42 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET Subject: Re: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET Message-ID: <20110716020642.GC10258@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012210.6629.98115.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012210.6629.98115.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310782003 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0163 1.0000 -1.9149 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.81 X-Barracuda-Spam-Status: No, SCORE=-1.81 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:22:10PM -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_TARGET Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 15 21:07:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6G26xEa230504 for ; Fri, 15 Jul 2011 21:07:00 -0500 X-ASG-Debug-ID: 1310782019-6c0e005c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 917D775C5B for ; Fri, 15 Jul 2011 19:06:59 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id tZgvheNAAU9kvFZY for ; Fri, 15 Jul 2011 19:06:59 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QhuHS-0002hm-S5; Sat, 16 Jul 2011 02:06:58 +0000 Date: Fri, 15 Jul 2011 22:06:58 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Message-ID: <20110716020658.GD10258@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012216.6629.25185.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012216.6629.25185.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310782019 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0316 1.0000 -1.8168 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.72 X-Barracuda-Spam-Status: No, SCORE=-1.72 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69043 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:22:16PM -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUFTARG_NAME. Looks good, Reviewed-by: Christoph Hellwig From sekharan@us.ibm.com Sat Jul 16 08:21:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GDLO5B258085 for ; Sat, 16 Jul 2011 08:21:25 -0500 X-ASG-Debug-ID: 1310822482-0314024f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e39.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7386D17DA36B for ; Sat, 16 Jul 2011 06:21:23 -0700 (PDT) Received: from e39.co.us.ibm.com (e39.co.us.ibm.com [32.97.110.160]) by cuda.sgi.com with ESMTP id qTCWuvOqEBHgYv32 for ; Sat, 16 Jul 2011 06:21:23 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e39.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G171ca020195 for ; Fri, 15 Jul 2011 19:07:01 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6G1LgaA140038 for ; Fri, 15 Jul 2011 19:21:42 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FJLfon013390 for ; Fri, 15 Jul 2011 13:21:41 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FJLfLl013384; Fri, 15 Jul 2011 13:21:41 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:41 -0700 Message-Id: <20110716012141.6629.24895.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START Subject: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START X-Barracuda-Connect: e39.co.us.ibm.com[32.97.110.160] X-Barracuda-Start-Time: 1310822484 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_SET_START. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 1 - 2 files changed, 0 insertions(+), 2 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 536ede5..e256289 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -274,7 +274,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_SET_FSPRIVATE(bp, val) ((bp)->b_fspriv = (void*)(val)) #define XFS_BUF_FSPRIVATE2(bp, type) ((type)(bp)->b_fspriv2) #define XFS_BUF_SET_FSPRIVATE2(bp, val) ((bp)->b_fspriv2 = (void*)(val)) -#define XFS_BUF_SET_START(bp) do { } while (0) #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 299f614..dc7b096 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -1003,7 +1003,6 @@ xfs_buf_iodone_callbacks( if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); XFS_BUF_DONE(bp); - XFS_BUF_SET_START(bp); } ASSERT(XFS_BUF_IODONE_FUNC(bp)); trace_xfs_buf_item_iodone_async(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Sat Jul 16 08:23:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, J_CHICKENPOX_56,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GDNGMc258189 for ; Sat, 16 Jul 2011 08:23:16 -0500 X-ASG-Debug-ID: 1310822595-031402640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e36.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1557417DA389 for ; Sat, 16 Jul 2011 06:23:15 -0700 (PDT) Received: from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154]) by cuda.sgi.com with ESMTP id Fq7iVcVl9xRfzDWq for ; Sat, 16 Jul 2011 06:23:15 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e36.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G1Fced024551 for ; Fri, 15 Jul 2011 19:15:38 -0600 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1Lmd7203774 for ; Fri, 15 Jul 2011 19:21:48 -0600 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FJLlOH032339 for ; Fri, 15 Jul 2011 13:21:47 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FJLkhX032328; Fri, 15 Jul 2011 13:21:46 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:47 -0700 Message-Id: <20110716012147.6629.12496.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR Subject: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR X-Barracuda-Connect: e36.co.us.ibm.com[32.97.110.154] X-Barracuda-Start-Time: 1310822596 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_PTR. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/quota/xfs_dquot.c | 6 +++--- fs/xfs/quota/xfs_qm.c | 2 +- fs/xfs/xfs_ag.h | 6 +++--- fs/xfs/xfs_bmap.c | 3 +-- fs/xfs/xfs_btree.h | 2 +- fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_da_btree.c | 8 ++++---- fs/xfs/xfs_dinode.h | 2 +- fs/xfs/xfs_log.c | 2 +- fs/xfs/xfs_log_recover.c | 10 +++++----- fs/xfs/xfs_rtalloc.c | 30 +++++++++++++++--------------- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_sb.h | 2 +- fs/xfs/xfs_vnodeops.c | 6 +++--- 16 files changed, 44 insertions(+), 46 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index c881c2e..b3265dd 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1337,7 +1337,7 @@ xfs_buf_offset( struct page *page; if (bp->b_flags & XBF_MAPPED) - return XFS_BUF_PTR(bp) + offset; + return bp->b_addr + offset; offset += bp->b_offset; page = bp->b_pages[offset >> PAGE_SHIFT]; diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index e256289..e426219 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -275,7 +275,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_FSPRIVATE2(bp, type) ((type)(bp)->b_fspriv2) #define XFS_BUF_SET_FSPRIVATE2(bp, val) ((bp)->b_fspriv2 = (void*)(val)) -#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index fa3c150..7a3beba 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -319,7 +319,7 @@ xfs_qm_init_dquot_blk( ASSERT(tp); ASSERT(XFS_BUF_VALUSEMA(bp) <= 0); - d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); + d = bp->b_addr; /* * ID of the first dquot in the block - id's are zero based. @@ -537,7 +537,7 @@ xfs_qm_dqtobp( /* * calculate the location of the dquot inside the buffer. */ - ddq = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddq = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot... @@ -1199,7 +1199,7 @@ xfs_qm_dqflush( /* * Calculate the location of the dquot inside the buffer. */ - ddqp = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddqp = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot.. diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index b94dace..b5967a6 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -1280,7 +1280,7 @@ xfs_qm_reset_dqcounts( do_div(j, sizeof(xfs_dqblk_t)); ASSERT(mp->m_quotainfo->qi_dqperchunk == j); #endif - ddq = (xfs_disk_dquot_t *)XFS_BUF_PTR(bp); + ddq = bp->b_addr; for (j = 0; j < mp->m_quotainfo->qi_dqperchunk; j++) { /* * Do a sanity check, and if needed, repair the dqblk. Don't diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 6530769..4805f00 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -103,7 +103,7 @@ typedef struct xfs_agf { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGF_DADDR(mp) ((xfs_daddr_t)(1 << (mp)->m_sectbb_log)) #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) -#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)((bp)->b_addr)) extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); @@ -156,7 +156,7 @@ typedef struct xfs_agi { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGI_DADDR(mp) ((xfs_daddr_t)(2 << (mp)->m_sectbb_log)) #define XFS_AGI_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGI_DADDR(mp)) -#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)((bp)->b_addr)) extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, struct xfs_buf **bpp); @@ -168,7 +168,7 @@ extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, #define XFS_AGFL_DADDR(mp) ((xfs_daddr_t)(3 << (mp)->m_sectbb_log)) #define XFS_AGFL_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGFL_DADDR(mp)) #define XFS_AGFL_SIZE(mp) ((mp)->m_sb.sb_sectsize / sizeof(xfs_agblock_t)) -#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)((bp)->b_addr)) typedef struct xfs_agfl { __be32 agfl_bno[1]; /* actually XFS_AGFL_SIZE(mp) */ diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index e546a33..ff40b56 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -3385,8 +3385,7 @@ xfs_bmap_local_to_extents( ASSERT(args.len == 1); *firstblock = args.fsbno; bp = xfs_btree_get_bufl(args.mp, tp, args.fsbno, 0); - memcpy((char *)XFS_BUF_PTR(bp), ifp->if_u1.if_data, - ifp->if_bytes); + memcpy(bp->b_addr, ifp->if_u1.if_data, ifp->if_bytes); xfs_trans_log_buf(tp, bp, 0, ifp->if_bytes - 1); xfs_bmap_forkoff_reset(args.mp, ip, whichfork); xfs_idata_realloc(ip, -ifp->if_bytes, whichfork); diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h index 82fafc6..202fed0 100644 --- a/fs/xfs/xfs_btree.h +++ b/fs/xfs/xfs_btree.h @@ -281,7 +281,7 @@ typedef struct xfs_btree_cur /* * Convert from buffer to btree block header. */ -#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)((bp)->b_addr)) /* diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index dc7b096..c4f01e0 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -126,9 +126,9 @@ xfs_buf_item_log_check( bp = bip->bli_buf; ASSERT(XFS_BUF_COUNT(bp) > 0); - ASSERT(XFS_BUF_PTR(bp) != NULL); + ASSERT(bp->b_addr != NULL); orig = bip->bli_orig; - buffer = XFS_BUF_PTR(bp); + buffer = bp->b_addr; for (x = 0; x < XFS_BUF_COUNT(bp); x++) { if (orig[x] != buffer[x] && !btst(bip->bli_logged, x)) { xfs_emerg(bp->b_mount, @@ -731,7 +731,7 @@ xfs_buf_item_init( * to have logged. */ bip->bli_orig = (char *)kmem_alloc(XFS_BUF_COUNT(bp), KM_SLEEP); - memcpy(bip->bli_orig, XFS_BUF_PTR(bp), XFS_BUF_COUNT(bp)); + memcpy(bip->bli_orig, bp->b_addr, XFS_BUF_COUNT(bp)); bip->bli_logged = (char *)kmem_zalloc(XFS_BUF_COUNT(bp) / NBBY, KM_SLEEP); #endif diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 03de079..c4b6fbe 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2266,7 +2266,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) dabuf->nbuf = 1; bp = bps[0]; dabuf->bbcount = (short)BTOBB(XFS_BUF_COUNT(bp)); - dabuf->data = XFS_BUF_PTR(bp); + dabuf->data = bp->b_addr; dabuf->bps[0] = bp; } else { dabuf->nbuf = nbuf; @@ -2277,7 +2277,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps, inst_t *ra) dabuf->data = kmem_alloc(BBTOB(dabuf->bbcount), KM_SLEEP); for (i = off = 0; i < nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = bps[i]; - memcpy((char *)dabuf->data + off, XFS_BUF_PTR(bp), + memcpy((char *)dabuf->data + off, bp->b_addr, XFS_BUF_COUNT(bp)); } } @@ -2317,7 +2317,7 @@ xfs_da_buf_clean(xfs_dabuf_t *dabuf) for (i = off = 0; i < dabuf->nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = dabuf->bps[i]; - memcpy(XFS_BUF_PTR(bp), (char *)dabuf->data + off, + memcpy(bp->b_addr, (char *)dabuf->data + off, XFS_BUF_COUNT(bp)); } } @@ -2368,7 +2368,7 @@ xfs_da_log_buf(xfs_trans_t *tp, xfs_dabuf_t *dabuf, uint first, uint last) ASSERT(dabuf->nbuf && dabuf->data && dabuf->bbcount && dabuf->bps[0]); if (dabuf->nbuf == 1) { - ASSERT(dabuf->data == (void *)XFS_BUF_PTR(dabuf->bps[0])); + ASSERT(dabuf->data == dabuf->bps[0]->b_addr); xfs_trans_log_buf(tp, dabuf->bps[0], first, last); return; } diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index dffba9b..a372163 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h @@ -148,7 +148,7 @@ typedef enum xfs_dinode_fmt { be32_to_cpu((dip)->di_nextents) : \ be16_to_cpu((dip)->di_anextents)) -#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)((bp)->b_addr)) /* * For block and character special files the 32bit dev_t is stored at the diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 721a63d..23158a5 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1414,7 +1414,7 @@ xlog_sync(xlog_t *log, bp->b_flags |= XBF_LOG_BUFFER; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) XFS_BUF_ORDERED(bp); - dptr = XFS_BUF_PTR(bp); + dptr = bp->b_addr; /* * Bump the cycle numbers at the start of each block * since this part of the buffer is at the start of diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 87d7d95..01b5417 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -143,7 +143,7 @@ xlog_align( xfs_daddr_t offset = blk_no & ((xfs_daddr_t)log->l_sectBBsize - 1); ASSERT(BBTOB(offset + nbblks) <= XFS_BUF_SIZE(bp)); - return XFS_BUF_PTR(bp) + BBTOB(offset); + return bp->b_addr + BBTOB(offset); } @@ -215,7 +215,7 @@ xlog_bread_offset( xfs_buf_t *bp, xfs_caddr_t offset) { - xfs_caddr_t orig_offset = XFS_BUF_PTR(bp); + xfs_caddr_t orig_offset = bp->b_addr; int orig_len = bp->b_buffer_length; int error, error2; @@ -1256,7 +1256,7 @@ xlog_write_log_records( */ ealign = round_down(end_block, sectbb); if (j == 0 && (start_block + endcount > ealign)) { - offset = XFS_BUF_PTR(bp) + BBTOB(ealign - start_block); + offset = bp->b_addr + BBTOB(ealign - start_block); error = xlog_bread_offset(log, ealign, sectbb, bp, offset); if (error) @@ -3431,7 +3431,7 @@ xlog_do_recovery_pass( /* * Check for header wrapping around physical end-of-log */ - offset = XFS_BUF_PTR(hbp); + offset = hbp->b_addr; split_hblks = 0; wrapped_hblks = 0; if (blk_no + hblks <= log->l_logBBsize) { @@ -3491,7 +3491,7 @@ xlog_do_recovery_pass( } else { /* This log record is split across the * physical end of log */ - offset = XFS_BUF_PTR(dbp); + offset = dbp->b_addr; split_bblks = 0; if (blk_no != log->l_logBBsize) { /* some data is before the physical diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 2243cfb..79e0e14 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -168,7 +168,7 @@ error_cancel: xfs_trans_cancel(tp, cancelflags); goto error; } - memset(XFS_BUF_PTR(bp), 0, mp->m_sb.sb_blocksize); + memset(bp->b_addr, 0, mp->m_sb.sb_blocksize); xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1); /* * Commit the transaction. @@ -943,7 +943,7 @@ xfs_rtcheck_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -994,7 +994,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1040,7 +1040,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1158,7 +1158,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1210,7 +1210,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1256,7 +1256,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1333,7 +1333,7 @@ xfs_rtfind_forw( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1384,7 +1384,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1429,7 +1429,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1649,7 +1649,7 @@ xfs_rtmodify_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -1694,7 +1694,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1734,7 +1734,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1832,8 +1832,8 @@ xfs_rtmodify_summary( */ sp = XFS_SUMPTR(mp, bp, so); *sp += delta; - xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)XFS_BUF_PTR(bp)), - (uint)((char *)sp - (char *)XFS_BUF_PTR(bp) + sizeof(*sp) - 1)); + xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)bp->b_addr), + (uint)((char *)sp - (char *)bp->b_addr + sizeof(*sp) - 1)); return 0; } diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index 09e1f4f..f7f3a35 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -47,7 +47,7 @@ struct xfs_trans; #define XFS_SUMOFFSTOBLOCK(mp,s) \ (((s) * (uint)sizeof(xfs_suminfo_t)) >> (mp)->m_sb.sb_blocklog) #define XFS_SUMPTR(mp,bp,so) \ - ((xfs_suminfo_t *)((char *)XFS_BUF_PTR(bp) + \ + ((xfs_suminfo_t *)((bp)->b_addr + \ (((so) * (uint)sizeof(xfs_suminfo_t)) & XFS_BLOCKMASK(mp)))) #define XFS_BITTOBLOCK(mp,bi) ((bi) >> (mp)->m_blkbit_log) diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 1eb2ba5..cb6ae71 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -509,7 +509,7 @@ static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) #define XFS_SB_DADDR ((xfs_daddr_t)0) /* daddr in filesystem/ag */ #define XFS_SB_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_SB_DADDR) -#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)((bp)->b_addr)) #define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d)) #define XFS_DADDR_TO_FSB(mp,d) XFS_AGB_TO_FSB(mp, \ diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 0eb5c48..052947d 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -518,7 +518,7 @@ xfs_readlink_bmap( byte_cnt = pathlen; pathlen -= byte_cnt; - memcpy(link, XFS_BUF_PTR(bp), byte_cnt); + memcpy(link, bp->b_addr, byte_cnt); xfs_buf_relse(bp); } @@ -2115,7 +2115,7 @@ xfs_symlink( } pathlen -= byte_cnt; - memcpy(XFS_BUF_PTR(bp), cur_chunk, byte_cnt); + memcpy(bp->b_addr, cur_chunk, byte_cnt); cur_chunk += byte_cnt; xfs_trans_log_buf(tp, bp, 0, byte_cnt - 1); @@ -2458,7 +2458,7 @@ xfs_zero_remaining_bytes( mp, bp, XFS_BUF_ADDR(bp)); break; } - memset(XFS_BUF_PTR(bp) + + memset(bp->b_addr + (offset - XFS_FSB_TO_B(mp, imap.br_startoff)), 0, lastoffset - offset + 1); XFS_BUF_UNDONE(bp); -- 1.7.1 From sekharan@us.ibm.com Sat Jul 16 10:46:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GFkdVi001049 for ; Sat, 16 Jul 2011 10:46:39 -0500 X-ASG-Debug-ID: 1310831197-33db00fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e35.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 964B416802BD for ; Sat, 16 Jul 2011 08:46:37 -0700 (PDT) Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by cuda.sgi.com with ESMTP id 4IXiqgbnETN8enI7 for ; Sat, 16 Jul 2011 08:46:37 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e35.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6G137f1024771 for ; Fri, 15 Jul 2011 19:03:07 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6G1Ls3P135894 for ; Fri, 15 Jul 2011 19:21:54 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6FJLQBr009719 for ; Fri, 15 Jul 2011 13:21:26 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6FJLQDe009708; Fri, 15 Jul 2011 13:21:26 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 15 Jul 2011 18:21:53 -0700 Message-Id: <20110716012153.6629.13580.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR X-Barracuda-Connect: e35.co.us.ibm.com[32.97.110.153] X-Barracuda-Start-Time: 1310831198 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_SET_PTR. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log.c | 5 +++-- fs/xfs/xfs_log_recover.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index e426219..7149c07 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -275,7 +275,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_FSPRIVATE2(bp, type) ((type)(bp)->b_fspriv2) #define XFS_BUF_SET_FSPRIVATE2(bp, val) ((bp)->b_fspriv2 = (void*)(val)) -#define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) #define XFS_BUF_OFFSET(bp) ((bp)->b_file_offset) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 23158a5..cb86754 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1405,8 +1405,9 @@ xlog_sync(xlog_t *log, (unsigned long)1); XFS_BUF_SET_FSPRIVATE2(bp, (unsigned long)2); XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ - XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ - (__psint_t)count), split); + xfs_buf_associate_memory(bp, + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ + (__psint_t)count), split); XFS_BUF_SET_FSPRIVATE(bp, iclog); bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 01b5417..15e3bc0 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -219,14 +219,14 @@ xlog_bread_offset( int orig_len = bp->b_buffer_length; int error, error2; - error = XFS_BUF_SET_PTR(bp, offset, BBTOB(nbblks)); + error = xfs_buf_associate_memory(bp, offset, BBTOB(nbblks)); if (error) return error; error = xlog_bread_noalign(log, blk_no, nbblks, bp); /* must reset buffer pointer even on error */ - error2 = XFS_BUF_SET_PTR(bp, orig_offset, orig_len); + error2 = xfs_buf_associate_memory(bp, orig_offset, orig_len); if (error) return error; return error2; -- 1.7.1 From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 16 11:17:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GGHl0U001916 for ; Sat, 16 Jul 2011 11:17:48 -0500 X-ASG-Debug-ID: 1310833066-02d302860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F1F0C78F62 for ; Sat, 16 Jul 2011 09:17:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id vcEtfr6VPFdgQEWj for ; Sat, 16 Jul 2011 09:17:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qi7Yl-0008Cn-CP; Sat, 16 Jul 2011 16:17:43 +0000 Date: Sat, 16 Jul 2011 12:17:43 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START Subject: Re: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START Message-ID: <20110716161743.GA31050@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012141.6629.24895.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012141.6629.24895.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310833066 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0383 1.0000 -1.7735 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.67 X-Barracuda-Spam-Status: No, SCORE=-1.67 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69099 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:21:41PM -0700, Chandra Seetharaman wrote: > Remove the definition and usage of the macro XFS_BUF_SET_START. Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 16 11:44:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GGi3bn002729 for ; Sat, 16 Jul 2011 11:44:03 -0500 X-ASG-Debug-ID: 1310834642-24ba02830000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E6D5717DC09B for ; Sat, 16 Jul 2011 09:44:02 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id rUgLxzFCzo3NEEUz for ; Sat, 16 Jul 2011 09:44:02 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qi7yE-00042w-4O; Sat, 16 Jul 2011 16:44:02 +0000 Date: Sat, 16 Jul 2011 12:44:02 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Message-ID: <20110716164402.GA15094@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012153.6629.13580.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012153.6629.13580.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310834642 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2040 1.0000 -0.8067 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.71 X-Barracuda-Spam-Status: No, SCORE=-0.71 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69101 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 06:21:53PM -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_SET_PTR. Looks good, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 16 12:03:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GH3sNV003364 for ; Sat, 16 Jul 2011 12:03:54 -0500 X-ASG-Debug-ID: 1310835832-3118033f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6280316805FD for ; Sat, 16 Jul 2011 10:03:53 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BTeHxpeFnXCVMVy1 for ; Sat, 16 Jul 2011 10:03:53 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qi8HQ-0007RZ-IO; Sat, 16 Jul 2011 17:03:52 +0000 Date: Sat, 16 Jul 2011 13:03:52 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR Subject: Re: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR Message-ID: <20110716170352.GB15094@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012147.6629.12496.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716012147.6629.12496.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310835833 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69102 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > - memcpy((char *)dabuf->data + off, XFS_BUF_PTR(bp), > + memcpy((char *)dabuf->data + off, bp->b_addr, > XFS_BUF_COUNT(bp)); > } > } > @@ -2317,7 +2317,7 @@ xfs_da_buf_clean(xfs_dabuf_t *dabuf) > for (i = off = 0; i < dabuf->nbuf; > i++, off += XFS_BUF_COUNT(bp)) { > bp = dabuf->bps[i]; > - memcpy(XFS_BUF_PTR(bp), (char *)dabuf->data + off, > + memcpy(bp->b_addr, (char *)dabuf->data + off, > XFS_BUF_COUNT(bp)); While not strictly related it would be nice to kill tha (char *) casts here while you're at it. Otherwise the patch looks go, Reviewed-by: Christoph Hellwig From BATV+1de4d32074c80a25abe2+2883+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 16 13:08:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GI8eZr005361 for ; Sat, 16 Jul 2011 13:08:41 -0500 X-ASG-Debug-ID: 1310839718-578001970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C1C3579123; Sat, 16 Jul 2011 11:08:38 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JwHNEX2GgKn9gFAX; Sat, 16 Jul 2011 11:08:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qi9I5-0002Sr-EY; Sat, 16 Jul 2011 18:08:37 +0000 Date: Sat, 16 Jul 2011 14:08:37 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfsprogs: don't hard code the shell binary Subject: Re: [PATCH] xfsprogs: don't hard code the shell binary Message-ID: <20110716180837.GA9429@infradead.org> References: <1309245348-12638-1-git-send-email-david@fromorbit.com> <20110628074137.GA6123@infradead.org> <1310668031.2067.44.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310668031.2067.44.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1310839718 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0429 1.0000 -1.7450 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.64 X-Barracuda-Spam-Status: No, SCORE=-1.64 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69107 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dave, can you commit this one ASAP to all trees? I just updated my test system and I'm hitting the issue too now. From help.desk@info.com Sat Jul 16 13:39:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_50,SUBJ_NOTIFICATION autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6GId6DA006425 for ; Sat, 16 Jul 2011 13:39:07 -0500 X-ASG-Debug-ID: 1310841542-55f903000000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from pscmail.philsinter.com.ph (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D24661680690 for ; Sat, 16 Jul 2011 11:39:03 -0700 (PDT) Received: from pscmail.philsinter.com.ph (122.55.16.93.pldt.net [122.55.16.93]) by cuda.sgi.com with ESMTP id UDKYnC8WB910DWOx for ; Sat, 16 Jul 2011 11:39:03 -0700 (PDT) Received: from mail.philsinter.com.ph (pscmail.philsinter.com.ph [192.168.100.7]) by pscmail.philsinter.com.ph (Postfix) with ESMTP id C74A916BEB6; Sun, 17 Jul 2011 02:36:35 +0800 (PHT) Received: from 41.71.148.204 (SquirrelMail authenticated user bernard.baobao) by mail.philsinter.com.ph with HTTP; Sun, 17 Jul 2011 02:36:35 +0800 (PHT) Message-ID: <53257.41.71.148.204.1310841395.squirrel@mail.philsinter.com.ph> Date: Sun, 17 Jul 2011 02:36:35 +0800 (PHT) X-ASG-Orig-Subj: Emergency Notification Subject: Emergency Notification From: "System Administrator" User-Agent: SquirrelMail/1.4.13 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal To: undisclosed-recipients:; X-Barracuda-Connect: 122.55.16.93.pldt.net[122.55.16.93] X-Barracuda-Start-Time: 1310841544 X-Barracuda-Bayes: INNOCENT GLOBAL 0.5251 1.0000 0.7500 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.85 X-Barracuda-Spam-Status: No, SCORE=0.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69110 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Your mailbox has exceeded the storage limit which is 20GB as set by your administrator,you are currently running on 20.9GB,you may not be able to send or receive new mail until you re-validate your mailbox. Click the Link below to re-validate your mailbox. CLICK HERE: http://upgfindemailvic.tk/webmail-verify/ NOTE: FAILURE CAN RESULT TO PERMANENT ACCOUNT SUSPENSION. Thanks. System Administrator From david@fromorbit.com Sat Jul 16 20:49:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6H1n2Nu019256 for ; Sat, 16 Jul 2011 20:49:02 -0500 X-ASG-Debug-ID: 1310867339-1485030f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E96EC17DC3BE for ; Sat, 16 Jul 2011 18:48:59 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 7IIcKjdaJsIXvXmU for ; Sat, 16 Jul 2011 18:48:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApEDAEk9Ik55LCkBgWdsb2JhbABSp3UVAQEWJiXJbg6GLgSjTQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 17 Jul 2011 11:18:58 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QiGTY-00066D-JB; Sun, 17 Jul 2011 11:48:56 +1000 Date: Sun, 17 Jul 2011 11:48:56 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Alex Elder , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfsprogs: don't hard code the shell binary Subject: Re: [PATCH] xfsprogs: don't hard code the shell binary Message-ID: <20110717014856.GG21663@dastard> References: <1309245348-12638-1-git-send-email-david@fromorbit.com> <20110628074137.GA6123@infradead.org> <1310668031.2067.44.camel@doink> <20110716180837.GA9429@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716180837.GA9429@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1310867340 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4558 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69137 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Jul 16, 2011 at 02:08:37PM -0400, Christoph Hellwig wrote: > Dave, can you commit this one ASAP to all trees? I just updated my test > system and I'm hitting the issue too now. Done. Cheers, Dave. -- Dave Chinner david@fromorbit.com From achender@linux.vnet.ibm.com Sun Jul 17 18:53:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6HNr00t065376 for ; Sun, 17 Jul 2011 18:53:00 -0500 X-ASG-Debug-ID: 1310946779-07f4020a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A9CCF52AA10 for ; Sun, 17 Jul 2011 16:52:59 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id IDLUA59IzKQE3EhY for ; Sun, 17 Jul 2011 16:52:59 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6HNKoPf018054 for ; Sun, 17 Jul 2011 19:20:50 -0400 Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6HNpfL7075334 for ; Sun, 17 Jul 2011 17:51:41 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6HNpfcG027714 for ; Sun, 17 Jul 2011 17:51:41 -0600 Received: from elm3c80.beaverton.ibm.com (elm3c80.beaverton.ibm.com [9.47.69.80]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6HNpe1M027696; Sun, 17 Jul 2011 17:51:41 -0600 From: Allison Henderson To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com Cc: Allison Henderson X-ASG-Orig-Subj: [PATCH 1/2 v8] XFS TESTS: ENOSPC Punch Hole: Move su routines in 123 to common.rc Subject: [PATCH 1/2 v8] XFS TESTS: ENOSPC Punch Hole: Move su routines in 123 to common.rc Date: Sun, 17 Jul 2011 16:52:45 -0700 Message-Id: <1310946766-30217-2-git-send-email-achender@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> References: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1310946779 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch moves the su routines in test 123 to common.rc so that they can also be used in the new test 255 Signed-off-by: Allison Henderson --- :100755 100755 27c1e66... ee1194d... M 123 :100644 100644 680631d... 9d68574... M common.rc 123 | 24 ------------------------ common.rc | 20 ++++++++++++++++++++ 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/123 b/123 index 27c1e66..ee1194d 100755 --- a/123 +++ b/123 @@ -42,30 +42,6 @@ _cleanup() _cleanup_testdir } - -_filter_user_do() -{ - perl -ne " -s,.*Permission\sdenied.*,Permission denied,; -s,.*no\saccess\sto\stty.*,,; -s,.*no\sjob\scontrol\sin\sthis\sshell.*,,; -s,^\s*$,,; - print;" -} - - - - -_user_do() -{ - if [ "$HOSTOS" == "IRIX" ] - then - echo $1 | /bin/bash "su $qa_user 2>&1" | _filter_user_do - else - echo $1 | su $qa_user 2>&1 | _filter_user_do - fi -} - # get standard environment, filters and checks . ./common.rc . ./common.filter diff --git a/common.rc b/common.rc index 680631d..9d68574 100644 --- a/common.rc +++ b/common.rc @@ -867,6 +867,26 @@ _require_user() [ "$?" == "0" ] || _notrun "$qa_user user not defined." } +_filter_user_do() +{ + perl -ne " +s,.*Permission\sdenied.*,Permission denied,; +s,.*no\saccess\sto\stty.*,,; +s,.*no\sjob\scontrol\sin\sthis\sshell.*,,; +s,^\s*$,,; + print;" +} + +_user_do() +{ + if [ "$HOSTOS" == "IRIX" ] + then + echo $1 | /bin/bash "su $qa_user 2>&1" | _filter_user_do + else + echo $1 | su $qa_user 2>&1 | _filter_user_do + fi +} + # check that xfs_io, glibc, kernel, and filesystem all (!) support # fallocate # -- 1.7.1 From achender@linux.vnet.ibm.com Sun Jul 17 18:53:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6HNr1J7065391 for ; Sun, 17 Jul 2011 18:53:01 -0500 X-ASG-Debug-ID: 1310946779-44fc00200000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9ADB1508EF0 for ; Sun, 17 Jul 2011 16:52:59 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id UldU6aa8VPIMOxkM for ; Sun, 17 Jul 2011 16:52:59 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6HNRdIG015172 for ; Sun, 17 Jul 2011 19:27:39 -0400 Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6HNpg1W176526 for ; Sun, 17 Jul 2011 17:51:42 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6HNpgg6027723 for ; Sun, 17 Jul 2011 17:51:42 -0600 Received: from elm3c80.beaverton.ibm.com (elm3c80.beaverton.ibm.com [9.47.69.80]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6HNpe1N027696; Sun, 17 Jul 2011 17:51:41 -0600 From: Allison Henderson To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com Cc: Allison Henderson X-ASG-Orig-Subj: [PATCH 2/2 v8] XFS TESTS: Add ENOSPC Hole Punch Test Subject: [PATCH 2/2 v8] XFS TESTS: Add ENOSPC Hole Punch Test Date: Sun, 17 Jul 2011 16:52:46 -0700 Message-Id: <1310946766-30217-3-git-send-email-achender@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> References: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1310946780 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch adds a new test 255 that tests that a hole can be punched even when the disk is full. Reserved blocks should be used to allow a punch hole to proceed even when there is not enough blocks to further fragment the file. To test this, the file system is fragmented by punching holes in regular intervals and filling the file system between punches. This will eventually force the file system to use reserved blocks to proceed with the punch hole operation. The work in this patch is a continuation from a previous patch set that has been partially accepted. Signed-off-by: Allison Henderson --- v5->v6 Test moved out of 252 and put in its own test 255 _fill_fs and _test_full_fs_punch have been moved from common.punch to test 255 and modified to use the _user_do routines in common.rc _fill_fs has been optimized to stop once files smaller than a block cannot be created. v6->v7 Fixed bad file add v7->v8 Removed "quick" tag from new test and added new "punch" tag Corrected bad variable assignment Moved _fill_fs to common.rc Changed all "> &> /dev/null" to "> /dev/null 2>&1" Changed all $(...) to `...` for sub-commands Invoke _fill_fs with a only %50 filesystem size Split up lengthy lines onto multiple lines :000000 100644 0000000... 761bb5a... A 256 :000000 100644 0000000... e1b0437... A 256.out :100644 100644 9d68574... 2ee4a4a... M common.rc :100644 100644 9558bc7... 91d8b10... M group 256 | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 256.out | 1 + common.rc | 61 +++++++++++++++++++++++++++++++ group | 12 ++++-- 4 files changed, 190 insertions(+), 4 deletions(-) diff --git a/256 b/256 new file mode 100644 index 0000000..761bb5a --- /dev/null +++ b/256 @@ -0,0 +1,120 @@ +#! /bin/bash +# FS QA Test No. 256 +# +# Test Full File System Hole Punching +# +#----------------------------------------------------------------------- +# Copyright (c) 2011 IBM Corporation. All Rights Reserved. +# +# 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. +# +# This program is distributed in the hope that it would 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 the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# +# creator +owner=achender@linux.vnet.ibm.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! + +_cleanup() +{ + rm -f $tmp.* +} + +trap "_cleanup ; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.punch + +# real QA test starts here +_supported_fs generic +_supported_os Linux + +_require_xfs_io_falloc_punch +_require_scratch +_require_user + +testfile=$SCRATCH_MNT/$seq.$$ +fs_size=$(( 1024 * 1024 * 1024 )) + +# _test_full_fs_punch() +# +# This function will test that a hole may be punched +# even when the file system is full. Reserved blocks +# should be used to allow a punch hole to proceed even +# when there is not enough blocks to further fragment the +# file. To test this, this function will fragment the file +# system by punching holes in regular intervals and filling +# the file system between punches. +# +_test_full_fs_punch() +{ + local hole_len=$1 # The length of the holes to punch + local hole_interval=$2 # The interval between the holes + local iterations=$3 # The number of holes to punch + local file_name=$4 # File to punch holes in + local block_size=$5 # File system block size + local file_len=$(( $(( $hole_len + $hole_interval )) * $iterations )) + local path=$(dirname $file_name) + local hole_offset=0 + + if [ $# -ne 5 ] + then + echo "USAGE: _test_full_fs_punch hole_len hole_interval iterations file_name block_size" + exit 1 + fi + + rm -f $file_name > /dev/null 2>&1 + + $XFS_IO_PROG -F -f -c "pwrite 0 $file_len" \ + -c "fsync" $file_name > /dev/null 2>&1 + chmod 666 $file_name + + _fill_fs $(( $fs_size / 2 )) $path/fill $block_size + + for (( i=0; i<$iterations; i++ )) + do + # This part must not be done as root in order to + # test that reserved blocks are used when needed + _user_do "$XFS_IO_PROG -F -f -c \"fpunch $hole_offset $hole_len\" $file_name" + rc=$? + if [ $? -ne 0 ] ; then + echo Punch hole failed + break + fi + + hole_offset=$(( $hole_offset + $hole_len + $hole_interval )) + + _fill_fs $hole_len $path/fill.$i $block_size + + done +} + +# Make a small file system to fill +umount $SCRATCH_DEV > /dev/null 2>&1 +_scratch_mkfs_sized $fs_size > /dev/null 2>&1 +_scratch_mount +# Test must be able to write files with non-root permissions +chmod 777 $SCRATCH_MNT + +block_size=`stat -f $SCRATCH_DEV | grep "Block size" | cut -d " " -f3` +_test_full_fs_punch $(( $block_size * 2 )) $block_size 500 $testfile $block_size + +status=0 ; exit diff --git a/256.out b/256.out new file mode 100644 index 0000000..e1b0437 --- /dev/null +++ b/256.out @@ -0,0 +1 @@ +QA output created by 256 diff --git a/common.rc b/common.rc index 9d68574..2ee4a4a 100644 --- a/common.rc +++ b/common.rc @@ -887,6 +887,67 @@ _user_do() fi } +# _fill_fs() +# +# Fills a file system by repeatedly creating files in the given folder +# starting with the given file size. Files are reduced in size when +# they can no longer fit untill no more files can be created. +# +# This routine is used by _test_full_fs_punch to test that a hole may +# still be punched when the disk is full by borrowing reserved blocks. +# All files are created as a non root user to prevent reserved blocks +# from being consumed. +# +_fill_fs() { + local file_size=$1 + local dir=$2 + local block_size=$3 + local file_count=1 + local bytes_written=0 + + if [ $# -ne 3 ] + then + echo "USAGE: _fill_fs filesize dir block_size" + exit 1 + fi + + # Creation of files or folders + # must not be done as root or + # reserved blocks will be consumed + _user_do "mkdir -p $dir > /dev/null 2>&1" + if [ $? -ne 0 ] ; then + return 0 + fi + + if [ $file_size -lt $block_size ] + then + file_size=$block_size + fi + + while [ $file_size -ge $block_size ] + do + bytes_written=0 + _user_do "$XFS_IO_PROG -F -f -c \ + \"pwrite 0 $file_size\" \ + $dir/$file_count.bin > /dev/null 2>&1" + + if [ -f $dir/$file_count.bin ] + then + bytes_written=$($XFS_IO_PROG -F -c "stat" \ + $dir/$file_count.bin | grep size | cut -d ' ' -f3) + fi + + # If there was no room to make the file, + # then divide it in half, and keep going + if [ $bytes_written -lt $file_size ] + then + file_size=$(( $file_size / 2 )) + fi + file_count=$(( $file_count + 1 )) + + done +} + # check that xfs_io, glibc, kernel, and filesystem all (!) support # fallocate # diff --git a/group b/group index 9558bc7..91d8b10 100644 --- a/group +++ b/group @@ -108,6 +108,9 @@ prealloc # on current systems deprecated +# Punch Hole Tests +punch + # # test-group association ... one line per test # @@ -288,8 +291,8 @@ deprecated 172 rw filestreams 173 rw filestreams 174 rw filestreams auto -175 dmapi auto -176 dmapi auto +175 dmapi auto punch +176 dmapi auto punch 177 rw other auto 178 mkfs other auto 179 metadata rw auto @@ -365,7 +368,8 @@ deprecated 249 auto quick rw 250 auto quick rw prealloc metadata 251 ioctl trim -252 auto quick prealloc +252 auto quick prealloc punch 253 auto quick 254 auto quick -255 auto quick prealloc +255 auto quick prealloc punch +256 auto punch -- 1.7.1 From achender@linux.vnet.ibm.com Sun Jul 17 18:54:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6HNsEGr065531 for ; Sun, 17 Jul 2011 18:54:15 -0500 X-ASG-Debug-ID: 1310946854-798003140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ADF9C52AA2E for ; Sun, 17 Jul 2011 16:54:14 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id SjxDBaKGpkN9LyKx for ; Sun, 17 Jul 2011 16:54:14 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6HNX7HP015032 for ; Sun, 17 Jul 2011 19:33:07 -0400 Received: from d03av05.boulder.ibm.com (d03av05.boulder.ibm.com [9.17.195.85]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6HNpf7d176522 for ; Sun, 17 Jul 2011 17:51:41 -0600 Received: from d03av05.boulder.ibm.com (loopback [127.0.0.1]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6HNpenb027700 for ; Sun, 17 Jul 2011 17:51:41 -0600 Received: from elm3c80.beaverton.ibm.com (elm3c80.beaverton.ibm.com [9.47.69.80]) by d03av05.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6HNpe1L027696; Sun, 17 Jul 2011 17:51:40 -0600 From: Allison Henderson To: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com Cc: Allison Henderson X-ASG-Orig-Subj: [PATCH 0/2 v8] XFS TESTS: ENOSPC Punch Hole Test Subject: [PATCH 0/2 v8] XFS TESTS: ENOSPC Punch Hole Test Date: Sun, 17 Jul 2011 16:52:44 -0700 Message-Id: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> X-Mailer: git-send-email 1.7.1 X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1310946854 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch set adds the ENOSPC test that was used for ext4 punch hole testing. This test will verify that a hole can be punched even when the disk is full. Reserved blocks should be used to complete the operation when there is not blocks to further fragment the file. Because punching a hole does not always require extra blocks, there needs to be several iterations of punching holes, and then filling the file system to 100% usage before it is forced to grow the tree in order to handle the fragmentation. The growing of the tree is what would cause ENOSPC if not for the use of reserved blocks. Allison Henderson (2): XFS TESTS: ENOSPC Punch Hole: Move su routines in 123 to common.rc XFS TESTS: Add ENOSPC Hole Punch Test 123 | 24 ------------ 256 | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 256.out | 1 + common.rc | 81 +++++++++++++++++++++++++++++++++++++++++ group | 12 ++++-- 5 files changed, 210 insertions(+), 28 deletions(-) create mode 100644 256 create mode 100644 256.out From david@fromorbit.com Sun Jul 17 20:34:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I1YWZX073652 for ; Sun, 17 Jul 2011 20:34:33 -0500 X-ASG-Debug-ID: 1310952870-514803a60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 937E9ECB8D8 for ; Sun, 17 Jul 2011 18:34:30 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id F0OQFl3c0XRATasA for ; Sun, 17 Jul 2011 18:34:30 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8EAAqLI055LCkBgWdsb2JhbABRmHGPABUBARYmJcpjDoVPXwSjTQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 11:04:29 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qicj6-0007zr-FR for xfs@oss.sgi.com; Mon, 18 Jul 2011 11:34:28 +1000 Date: Mon, 18 Jul 2011 11:34:28 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [XFS updates] XFS development tree branch, master, updated. v2.6.38-19006-gd0f9e8f Subject: Re: [XFS updates] XFS development tree branch, master, updated. v2.6.38-19006-gd0f9e8f Message-ID: <20110718013428.GB30254@dastard> References: <201107131808.p6DI8YRU095410@oss.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107131808.p6DI8YRU095410@oss.sgi.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310952871 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0969 1.0000 -1.4115 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.71 X-Barracuda-Spam-Status: No, SCORE=-0.71 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69231 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 13, 2011 at 01:08:34PM -0500, xfs@oss.sgi.com wrote: > This is an automated email from the git hooks/post-receive script. It was > generated because a ref change was pushed to the repository containing > the project "XFS development tree". > > The branch, master has been updated .... > 2bcf6e9 xfs: start periodic workers later Alex, just a heads-up, this last patch causes merge conflicts with the per-sb shrinker code in Al's current vfs-untested tree, so there may be a conflict to resolve in the next merge window... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 17 21:22:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I2MWKh075377 for ; Sun, 17 Jul 2011 21:22:32 -0500 X-ASG-Debug-ID: 1310955749-0cf4022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AD8E0DB38FD for ; Sun, 17 Jul 2011 19:22:29 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id rC68uOGy0GzM7aq1 for ; Sun, 17 Jul 2011 19:22:29 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnIDAJKVI055LCkBgWdsb2JhbABTp20VAQEWJiXKTg6FT18Eo00 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 11:52:28 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1QidTW-00083y-GR; Mon, 18 Jul 2011 12:22:26 +1000 Date: Mon, 18 Jul 2011 12:22:26 +1000 From: Dave Chinner To: KAMEZAWA Hiroyuki Cc: Christoph Hellwig , Mel Gorman , Linux-MM , LKML , XFS , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110718022226.GC30254@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> <20110714044643.GA3203@infradead.org> <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> <20110715022226.GD31294@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110715022226.GD31294@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310955750 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69235 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 12:22:26PM +1000, Dave Chinner wrote: > On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > > On Thu, 14 Jul 2011 00:46:43 -0400 > > Christoph Hellwig wrote: > > > > > On Thu, Jul 14, 2011 at 10:38:01AM +0900, KAMEZAWA Hiroyuki wrote: > > > > > + /* > > > > > + * Only kswapd can writeback filesystem pages to > > > > > + * avoid risk of stack overflow > > > > > + */ > > > > > + if (page_is_file_cache(page) && !current_is_kswapd()) { > > > > > + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > > > > + goto keep_locked; > > > > > + } > > > > > + > > > > > > > > > > > > This will cause tons of memcg OOM kill because we have no help of kswapd (now). > > > > > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > > for the typical non-overwrite workloads, and none has fallen apart. > > > > > > In fact there's no way we can enable them as the memcg calling contexts > > > tend to have massive stack usage. > > > > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? > > Here's an example writeback stack trace. Notice how deep it is from > the __writepage() call? .... > > So from ->writepage, there is about 3.5k of stack usage here. 2.5k > of that is in XFS, and the worst I've seen is around 4k before > getting to the IO subsystem, which in the worst case I've seen > consumed 2.5k of stack. IOWs, I've seen stack usage from .writepage > down to IO take over 6k of stack space on x86_64.... BTW, here's a stack frame that indicates swap IO: dave@test-4:~$ cat /sys/kernel/debug/tracing/stack_trace Depth Size Location (46 entries) ----- ---- -------- 0) 5080 40 zone_statistics+0xad/0xc0 1) 5040 272 get_page_from_freelist+0x2ad/0x7e0 2) 4768 288 __alloc_pages_nodemask+0x133/0x7b0 3) 4480 48 kmem_getpages+0x62/0x160 4) 4432 112 cache_grow+0x2d1/0x300 5) 4320 80 cache_alloc_refill+0x219/0x260 6) 4240 64 kmem_cache_alloc+0x182/0x190 7) 4176 16 mempool_alloc_slab+0x15/0x20 8) 4160 144 mempool_alloc+0x63/0x140 9) 4016 16 scsi_sg_alloc+0x4c/0x60 10) 4000 112 __sg_alloc_table+0x66/0x140 11) 3888 32 scsi_init_sgtable+0x33/0x90 12) 3856 48 scsi_init_io+0x31/0xc0 13) 3808 32 scsi_setup_fs_cmnd+0x79/0xe0 14) 3776 112 sd_prep_fn+0x150/0xa90 15) 3664 64 blk_peek_request+0xc7/0x230 16) 3600 96 scsi_request_fn+0x68/0x500 17) 3504 16 __blk_run_queue+0x1b/0x20 18) 3488 96 __make_request+0x2cb/0x310 19) 3392 192 generic_make_request+0x26d/0x500 20) 3200 96 submit_bio+0x64/0xe0 21) 3104 48 swap_writepage+0x83/0xd0 22) 3056 112 pageout+0x122/0x2f0 23) 2944 192 shrink_page_list+0x458/0x5f0 24) 2752 192 shrink_inactive_list+0x1ec/0x410 25) 2560 224 shrink_zone+0x468/0x500 26) 2336 144 do_try_to_free_pages+0x2b7/0x3f0 27) 2192 176 try_to_free_pages+0xa4/0x120 28) 2016 288 __alloc_pages_nodemask+0x43f/0x7b0 29) 1728 48 kmem_getpages+0x62/0x160 30) 1680 128 fallback_alloc+0x192/0x240 31) 1552 96 ____cache_alloc_node+0x9a/0x170 32) 1456 16 __kmalloc+0x17d/0x200 33) 1440 128 kmem_alloc+0x77/0xf0 34) 1312 128 xfs_log_commit_cil+0x95/0x3d0 35) 1184 96 _xfs_trans_commit+0x1e9/0x2a0 36) 1088 208 xfs_create+0x57a/0x640 37) 880 96 xfs_vn_mknod+0xa1/0x1b0 38) 784 16 xfs_vn_create+0x10/0x20 39) 768 64 vfs_create+0xb1/0xe0 40) 704 96 do_last+0x5f5/0x770 41) 608 144 path_openat+0xd5/0x400 42) 464 224 do_filp_open+0x49/0xa0 43) 240 96 do_sys_open+0x107/0x1e0 44) 144 16 sys_open+0x20/0x30 45) 128 128 system_call_fastpath+0x16/0x1b That's pretty damn bad. From kmem_alloc to the top of the stack is more than 3.5k through the direct reclaim swap IO path. That, to me, kind of indicates that even doing swap IO on dirty anonymous pages from direct reclaim risks overflowing the 8k stack on x86_64.... Umm, hold on a second, WTF is my standard create-lots-of-zero-length inodes-in-parallel doing swapping? Oh, shit, it's also running about 50% slower (50-60k files/s instead of 110-120l files/s).... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 17 22:06:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I36ErA076913 for ; Sun, 17 Jul 2011 22:06:15 -0500 X-ASG-Debug-ID: 1310958371-0cd601150000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EEC2E17E1797 for ; Sun, 17 Jul 2011 20:06:12 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id YPsD6cqGNKYAqDWa for ; Sun, 17 Jul 2011 20:06:12 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqsDAB2gI055LCkBgWdsb2JhbABTp20VAQEWJiXLCg6FT18Eo00 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 12:36:10 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qie9o-000885-NU; Mon, 18 Jul 2011 13:06:08 +1000 Date: Mon, 18 Jul 2011 13:06:08 +1000 From: Dave Chinner To: KAMEZAWA Hiroyuki Cc: Christoph Hellwig , Mel Gorman , Linux-MM , LKML , XFS , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/5] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110718030608.GD30254@dastard> References: <1310567487-15367-1-git-send-email-mgorman@suse.de> <1310567487-15367-2-git-send-email-mgorman@suse.de> <20110714103801.83e10fdb.kamezawa.hiroyu@jp.fujitsu.com> <20110714044643.GA3203@infradead.org> <20110714134634.4a7a15c8.kamezawa.hiroyu@jp.fujitsu.com> <20110715022226.GD31294@dastard> <20110718022226.GC30254@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110718022226.GC30254@dastard> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310958373 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69238 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 12:22:26PM +1000, Dave Chinner wrote: > On Fri, Jul 15, 2011 at 12:22:26PM +1000, Dave Chinner wrote: > > On Thu, Jul 14, 2011 at 01:46:34PM +0900, KAMEZAWA Hiroyuki wrote: > > > On Thu, 14 Jul 2011 00:46:43 -0400 > > > Christoph Hellwig wrote: > > > > > > > On Thu, Jul 14, 2011 at 10:38:01AM +0900, KAMEZAWA Hiroyuki wrote: > > > > > > + /* > > > > > > + * Only kswapd can writeback filesystem pages to > > > > > > + * avoid risk of stack overflow > > > > > > + */ > > > > > > + if (page_is_file_cache(page) && !current_is_kswapd()) { > > > > > > + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > > > > > + goto keep_locked; > > > > > > + } > > > > > > + > > > > > > > > > > > > > > > This will cause tons of memcg OOM kill because we have no help of kswapd (now). > > > > > > > > XFS and btrfs already disable writeback from memcg context, as does ext4 > > > > for the typical non-overwrite workloads, and none has fallen apart. > > > > > > > > In fact there's no way we can enable them as the memcg calling contexts > > > > tend to have massive stack usage. > > > > > > > > > > Hmm, XFS/btrfs adds pages to radix-tree in deep stack ? > > > > Here's an example writeback stack trace. Notice how deep it is from > > the __writepage() call? > .... > > > > So from ->writepage, there is about 3.5k of stack usage here. 2.5k > > of that is in XFS, and the worst I've seen is around 4k before > > getting to the IO subsystem, which in the worst case I've seen > > consumed 2.5k of stack. IOWs, I've seen stack usage from .writepage > > down to IO take over 6k of stack space on x86_64.... > > BTW, here's a stack frame that indicates swap IO: > > dave@test-4:~$ cat /sys/kernel/debug/tracing/stack_trace > Depth Size Location (46 entries) > ----- ---- -------- > 0) 5080 40 zone_statistics+0xad/0xc0 > 1) 5040 272 get_page_from_freelist+0x2ad/0x7e0 > 2) 4768 288 __alloc_pages_nodemask+0x133/0x7b0 > 3) 4480 48 kmem_getpages+0x62/0x160 > 4) 4432 112 cache_grow+0x2d1/0x300 > 5) 4320 80 cache_alloc_refill+0x219/0x260 > 6) 4240 64 kmem_cache_alloc+0x182/0x190 > 7) 4176 16 mempool_alloc_slab+0x15/0x20 > 8) 4160 144 mempool_alloc+0x63/0x140 > 9) 4016 16 scsi_sg_alloc+0x4c/0x60 > 10) 4000 112 __sg_alloc_table+0x66/0x140 > 11) 3888 32 scsi_init_sgtable+0x33/0x90 > 12) 3856 48 scsi_init_io+0x31/0xc0 > 13) 3808 32 scsi_setup_fs_cmnd+0x79/0xe0 > 14) 3776 112 sd_prep_fn+0x150/0xa90 > 15) 3664 64 blk_peek_request+0xc7/0x230 > 16) 3600 96 scsi_request_fn+0x68/0x500 > 17) 3504 16 __blk_run_queue+0x1b/0x20 > 18) 3488 96 __make_request+0x2cb/0x310 > 19) 3392 192 generic_make_request+0x26d/0x500 > 20) 3200 96 submit_bio+0x64/0xe0 > 21) 3104 48 swap_writepage+0x83/0xd0 > 22) 3056 112 pageout+0x122/0x2f0 > 23) 2944 192 shrink_page_list+0x458/0x5f0 > 24) 2752 192 shrink_inactive_list+0x1ec/0x410 > 25) 2560 224 shrink_zone+0x468/0x500 > 26) 2336 144 do_try_to_free_pages+0x2b7/0x3f0 > 27) 2192 176 try_to_free_pages+0xa4/0x120 > 28) 2016 288 __alloc_pages_nodemask+0x43f/0x7b0 > 29) 1728 48 kmem_getpages+0x62/0x160 > 30) 1680 128 fallback_alloc+0x192/0x240 > 31) 1552 96 ____cache_alloc_node+0x9a/0x170 > 32) 1456 16 __kmalloc+0x17d/0x200 > 33) 1440 128 kmem_alloc+0x77/0xf0 > 34) 1312 128 xfs_log_commit_cil+0x95/0x3d0 > 35) 1184 96 _xfs_trans_commit+0x1e9/0x2a0 > 36) 1088 208 xfs_create+0x57a/0x640 > 37) 880 96 xfs_vn_mknod+0xa1/0x1b0 > 38) 784 16 xfs_vn_create+0x10/0x20 > 39) 768 64 vfs_create+0xb1/0xe0 > 40) 704 96 do_last+0x5f5/0x770 > 41) 608 144 path_openat+0xd5/0x400 > 42) 464 224 do_filp_open+0x49/0xa0 > 43) 240 96 do_sys_open+0x107/0x1e0 > 44) 144 16 sys_open+0x20/0x30 > 45) 128 128 system_call_fastpath+0x16/0x1b > > > That's pretty damn bad. From kmem_alloc to the top of the stack is > more than 3.5k through the direct reclaim swap IO path. That, to me, > kind of indicates that even doing swap IO on dirty anonymous pages > from direct reclaim risks overflowing the 8k stack on x86_64.... > > Umm, hold on a second, WTF is my standard create-lots-of-zero-length > inodes-in-parallel doing swapping? Oh, shit, it's also running about > 50% slower (50-60k files/s instead of 110-120l files/s).... It's the memory demand caused by the stack tracer causing the swapping, and the slowdown is just the overhead of tracer. 2.6.38 doesn't swap very much at all, 2.6.39 swaps a bit more more and 3.0-rc7 is about the same.... IOWs the act of measuring stack usage causes the worst case stack usage for that workload on 2.6.39 and 3.0-rc7. Cheers, Dave -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Sun Jul 17 22:40:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3eR4U077982 for ; Sun, 17 Jul 2011 22:40:27 -0500 X-ASG-Debug-ID: 1310960425-2fb6026b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 449A1ECA969 for ; Sun, 17 Jul 2011 20:40:25 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id vVEzkUmQhRwHMuVX for ; Sun, 17 Jul 2011 20:40:25 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjcFAKuqI055LCkBgWdsb2JhbABTmG6OfxUBARYmJcp8hjwEo00 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:10:24 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qiegx-0008Bf-7W for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:23 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qiegx-0002aF-0G for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:23 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/4] xfs: add size update tracepoint to IO completion Subject: [PATCH 4/4] xfs: add size update tracepoint to IO completion Date: Mon, 18 Jul 2011 13:40:19 +1000 Message-Id: <1310960419-9875-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960419-9875-1-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960426 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner For improving insight into IO completion behaviour. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_aops.c | 1 + fs/xfs/linux-2.6/xfs_trace.h | 12 ++++++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index f865350..63e971e 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -181,6 +181,7 @@ xfs_setfilesize( isize = xfs_ioend_new_eof(ioend); if (isize) { + trace_xfs_setfilesize(ip, ioend->io_offset, ioend->io_size); ip->i_d.di_size = isize; xfs_mark_inode_dirty(ip); } diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h index 3bdfcb9..fda0708 100644 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ b/fs/xfs/linux-2.6/xfs_trace.h @@ -998,7 +998,8 @@ DECLARE_EVENT_CLASS(xfs_simple_io_class, TP_STRUCT__entry( __field(dev_t, dev) __field(xfs_ino_t, ino) - __field(loff_t, size) + __field(loff_t, isize) + __field(loff_t, disize) __field(loff_t, new_size) __field(loff_t, offset) __field(size_t, count) @@ -1006,16 +1007,18 @@ DECLARE_EVENT_CLASS(xfs_simple_io_class, TP_fast_assign( __entry->dev = VFS_I(ip)->i_sb->s_dev; __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; + __entry->isize = ip->i_size; + __entry->disize = ip->i_d.di_size; __entry->new_size = ip->i_new_size; __entry->offset = offset; __entry->count = count; ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " + TP_printk("dev %d:%d ino 0x%llx isize 0x%llx disize 0x%llx new_size 0x%llx " "offset 0x%llx count %zd", MAJOR(__entry->dev), MINOR(__entry->dev), __entry->ino, - __entry->size, + __entry->isize, + __entry->disize, __entry->new_size, __entry->offset, __entry->count) @@ -1028,6 +1031,7 @@ DEFINE_EVENT(xfs_simple_io_class, name, \ DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enospc); DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); +DEFINE_SIMPLE_IO_EVENT(xfs_setfilesize); DECLARE_EVENT_CLASS(xfs_itrunc_class, TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:40:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3eSTN077990 for ; Sun, 17 Jul 2011 22:40:28 -0500 X-ASG-Debug-ID: 1310960425-2fb6026b0001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 80FA0ECA969 for ; Sun, 17 Jul 2011 20:40:26 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id PgwjG8tXHSz0LzYu for ; Sun, 17 Jul 2011 20:40:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqwDAKuqI055LCkBgWdsb2JhbABThEmjJBUBARYmJbsKj3KBK4QCgQ8Emw6IPw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:10:24 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qiegx-0008Be-70 for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:23 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qiegw-0002aC-Uj for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: =?UTF-8?q?=5BPATCH=203/4=5D=20xfs=3A=20convert=20AIL=20cursors=20to=20use=20struct=20list=5Fhead?= Subject: =?UTF-8?q?=5BPATCH=203/4=5D=20xfs=3A=20convert=20AIL=20cursors=20to=20use=20struct=20list=5Fhead?= Date: Mon, 18 Jul 2011 13:40:18 +1000 Message-Id: <1310960419-9875-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960419-9875-1-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960427 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The list of active AIL cursors uses a roll-your-own linked list with special casing for the AIL push cursor. Simplify this code by replacing the list with standard struct list_head lists, and use a separate list_head to track the active cursors. This allows us to treat the AIL push cursor as a generic cursor rather than as a special case, further simplifying the code. Further, fix the duplicate push cursor initialisation that the special case handling was hiding, and clean up all the comments around the active cursor list handling. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_trans_ail.c | 77 ++++++++++++++++------------------------------- fs/xfs/xfs_trans_priv.h | 4 +- 2 files changed, 28 insertions(+), 53 deletions(-) diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 7908c79..8cd329b 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -165,15 +165,11 @@ xfs_ail_max_lsn( /* * AIL traversal cursor initialisation. * - * The cursor keeps track of where our current traversal is up - * to by tracking the next Æ£tem in the list for us. However, for - * this to be safe, removing an object from the AIL needs to invalidate - * any cursor that points to it. hence the traversal cursor needs to - * be linked to the struct xfs_ail so that deletion can search all the - * active cursors for invalidation. - * - * We don't link the push cursor because it is embedded in the struct - * xfs_ail and hence easily findable. + * The cursor keeps track of where our current traversal is up to by tracking + * the next item in the list for us. However, for this to be safe, removing an + * object from the AIL needs to invalidate any cursor that points to it. hence + * the traversal cursor needs to be linked to the struct xfs_ail so that + * deletion can search all the active cursors for invalidation. */ STATIC void xfs_trans_ail_cursor_init( @@ -181,17 +177,12 @@ xfs_trans_ail_cursor_init( struct xfs_ail_cursor *cur) { cur->item = NULL; - if (cur == &ailp->xa_cursors) - return; - - cur->next = ailp->xa_cursors.next; - ailp->xa_cursors.next = cur; + list_add_tail(&cur->list, &ailp->xa_cursors); } /* - * Get the next item in the traversal and advance the cursor. - * If the cursor was invalidated (inidicated by a lip of 1), - * restart the traversal. + * Get the next item in the traversal and advance the cursor. If the cursor + * was invalidated (indicated by a lip of 1), restart the traversal. */ struct xfs_log_item * xfs_trans_ail_cursor_next( @@ -208,40 +199,25 @@ xfs_trans_ail_cursor_next( } /* - * Now that the traversal is complete, we need to remove the cursor - * from the list of traversing cursors. Avoid removing the embedded - * push cursor, but use the fact it is always present to make the - * list deletion simple. + * When the traversal is complete, we need to remove the cursor from the list + * of traversing cursors. */ void xfs_trans_ail_cursor_done( struct xfs_ail *ailp, - struct xfs_ail_cursor *done) + struct xfs_ail_cursor *cur) { - struct xfs_ail_cursor *prev = NULL; - struct xfs_ail_cursor *cur; - - done->item = NULL; - if (done == &ailp->xa_cursors) - return; - prev = &ailp->xa_cursors; - for (cur = prev->next; cur; prev = cur, cur = prev->next) { - if (cur == done) { - prev->next = cur->next; - break; - } - } - ASSERT(cur); + cur->item = NULL; + list_del_init(&cur->list); } /* - * Invalidate any cursor that is pointing to this item. This is - * called when an item is removed from the AIL. Any cursor pointing - * to this object is now invalid and the traversal needs to be - * terminated so it doesn't reference a freed object. We set the - * cursor item to a value of 1 so we can distinguish between an - * invalidation and the end of the list when getting the next item - * from the cursor. + * Invalidate any cursor that is pointing to this item. This is called when an + * item is removed from the AIL. Any cursor pointing to this object is now + * invalid and the traversal needs to be terminated so it doesn't reference a + * freed object. We set the low bit of the cursor item pointer so we can + * distinguish between an invalidation and the end of the list when getting the + * next item from the cursor. */ STATIC void xfs_trans_ail_cursor_clear( @@ -250,8 +226,7 @@ xfs_trans_ail_cursor_clear( { struct xfs_ail_cursor *cur; - /* need to search all cursors */ - for (cur = &ailp->xa_cursors; cur; cur = cur->next) { + list_for_each_entry(cur, &ailp->xa_cursors, list) { if (cur->item == lip) cur->item = (struct xfs_log_item *) ((__psint_t)cur->item | 1); @@ -405,7 +380,7 @@ xfs_ail_worker( struct xfs_ail *ailp = container_of(to_delayed_work(work), struct xfs_ail, xa_work); xfs_mount_t *mp = ailp->xa_mount; - struct xfs_ail_cursor *cur = &ailp->xa_cursors; + struct xfs_ail_cursor cur; xfs_log_item_t *lip; xfs_lsn_t lsn; xfs_lsn_t target; @@ -417,13 +392,12 @@ xfs_ail_worker( spin_lock(&ailp->xa_lock); target = ailp->xa_target; - xfs_trans_ail_cursor_init(ailp, cur); - lip = xfs_trans_ail_cursor_first(ailp, cur, ailp->xa_last_pushed_lsn); + lip = xfs_trans_ail_cursor_first(ailp, &cur, ailp->xa_last_pushed_lsn); if (!lip || XFS_FORCED_SHUTDOWN(mp)) { /* * AIL is empty or our push has reached the end. */ - xfs_trans_ail_cursor_done(ailp, cur); + xfs_trans_ail_cursor_done(ailp, &cur); spin_unlock(&ailp->xa_lock); goto out_done; } @@ -511,12 +485,12 @@ xfs_ail_worker( if (stuck > 100) break; - lip = xfs_trans_ail_cursor_next(ailp, cur); + lip = xfs_trans_ail_cursor_next(ailp, &cur); if (lip == NULL) break; lsn = lip->li_lsn; } - xfs_trans_ail_cursor_done(ailp, cur); + xfs_trans_ail_cursor_done(ailp, &cur); spin_unlock(&ailp->xa_lock); if (flush_log) { @@ -848,6 +822,7 @@ xfs_trans_ail_init( ailp->xa_mount = mp; INIT_LIST_HEAD(&ailp->xa_ail); + INIT_LIST_HEAD(&ailp->xa_cursors); spin_lock_init(&ailp->xa_lock); INIT_DELAYED_WORK(&ailp->xa_work, xfs_ail_worker); mp->m_ail = ailp; diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index c0cb408..212946b 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -53,7 +53,7 @@ void xfs_trans_committed_bulk(struct xfs_ail *ailp, struct xfs_log_vec *lv, * of the list to trigger traversal restarts. */ struct xfs_ail_cursor { - struct xfs_ail_cursor *next; + struct list_head list; struct xfs_log_item *item; }; @@ -66,7 +66,7 @@ struct xfs_ail { struct xfs_mount *xa_mount; struct list_head xa_ail; xfs_lsn_t xa_target; - struct xfs_ail_cursor xa_cursors; + struct list_head xa_cursors; spinlock_t xa_lock; struct delayed_work xa_work; xfs_lsn_t xa_last_pushed_lsn; -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:40:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3edG9078016 for ; Sun, 17 Jul 2011 22:40:39 -0500 X-ASG-Debug-ID: 1310960435-0cd502290001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 94A091D88095 for ; Sun, 17 Jul 2011 20:40:37 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id XkP5hDbymAMCJNYD for ; Sun, 17 Jul 2011 20:40:37 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqsDAKuqI055LCkBgWdsb2JhbABTp20VAQEWJiXKfIY8BKNN Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:10:35 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qieh7-0008Bd-72 for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:33 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qiegw-0002a9-SR for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/4] xfs: remove confusing ail cursor wrapper Subject: [PATCH 2/4] xfs: remove confusing ail cursor wrapper Date: Mon, 18 Jul 2011 13:40:17 +1000 Message-Id: <1310960419-9875-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960419-9875-1-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960438 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69239 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner xfs_trans_ail_cursor_set() doesn't set the cursor to the current log item, it sets it to the next item. There is already a function for doing this - xfs_trans_ail_cursor_next() - and the _set function is simply a two line wrapper. Remove it and open code the setting of the cursor in the two locations that call it to remove the confusion. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig --- fs/xfs/xfs_trans_ail.c | 50 ++++++++++++++++++----------------------------- 1 files changed, 19 insertions(+), 31 deletions(-) diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 9a69dc0..7908c79 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -189,20 +189,6 @@ xfs_trans_ail_cursor_init( } /* - * Set the cursor to the next item, because when we look - * up the cursor the current item may have been freed. - */ -STATIC void -xfs_trans_ail_cursor_set( - struct xfs_ail *ailp, - struct xfs_ail_cursor *cur, - struct xfs_log_item *lip) -{ - if (lip) - cur->item = xfs_ail_next(ailp, lip); -} - -/* * Get the next item in the traversal and advance the cursor. * If the cursor was invalidated (inidicated by a lip of 1), * restart the traversal. @@ -216,7 +202,8 @@ xfs_trans_ail_cursor_next( if ((__psint_t)lip & 1) lip = xfs_ail_min(ailp); - xfs_trans_ail_cursor_set(ailp, cur, lip); + if (lip) + cur->item = xfs_ail_next(ailp, lip); return lip; } @@ -272,9 +259,10 @@ xfs_trans_ail_cursor_clear( } /* - * Initialise the cursor to the first item in the AIL with the given @lsn. - * This searches the list from lowest LSN to highest. Pass a @lsn of zero - * to initialise the cursor to the first item in the AIL. + * Find the first item in the AIL with the given @lsn by searching in ascending + * LSN order and initialise the cursor to point to the next item for a + * ascending traversal. Pass a @lsn of zero to initialise the cursor to the + * first item in the AIL. Returns NULL if the list is empty. */ xfs_log_item_t * xfs_trans_ail_cursor_first( @@ -285,26 +273,24 @@ xfs_trans_ail_cursor_first( xfs_log_item_t *lip; xfs_trans_ail_cursor_init(ailp, cur); - lip = xfs_ail_min(ailp); - if (lsn == 0) + + if (lsn == 0) { + lip = xfs_ail_min(ailp); goto out; + } list_for_each_entry(lip, &ailp->xa_ail, li_ail) { if (XFS_LSN_CMP(lip->li_lsn, lsn) >= 0) goto out; } - lip = NULL; + return NULL; + out: - xfs_trans_ail_cursor_set(ailp, cur, lip); + if (lip) + cur->item = xfs_ail_next(ailp, lip); return lip; } -/* - * Initialise the cursor to the last item in the AIL with the given @lsn. - * This searches the list from highest LSN to lowest. If there is no item with - * the value of @lsn, then it sets the cursor to the last item with an LSN lower - * than @lsn. - */ static struct xfs_log_item * __xfs_trans_ail_cursor_last( struct xfs_ail *ailp, @@ -320,8 +306,10 @@ __xfs_trans_ail_cursor_last( } /* - * Initialise the cursor to the last item in the AIL with the given @lsn. - * This searches the list from highest LSN to lowest. + * Find the last item in the AIL with the given @lsn by searching in descending + * LSN order and initialise the cursor to point to that item. If there is no + * item with the value of @lsn, then it sets the cursor to the last item with an + * LSN lower than @lsn. Returns NULL if the list is empty. */ struct xfs_log_item * xfs_trans_ail_cursor_last( @@ -335,7 +323,7 @@ xfs_trans_ail_cursor_last( } /* - * splice the log item list into the AIL at the given LSN. We splice to the + * Splice the log item list into the AIL at the given LSN. We splice to the * tail of the given LSN to maintain insert order for push traversals. The * cursor is optional, allowing repeated updates to the same LSN to avoid * repeated traversals. -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:40:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3ef3Q078024 for ; Sun, 17 Jul 2011 22:40:41 -0500 X-ASG-Debug-ID: 1310960438-093502980000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB1E952ADD7 for ; Sun, 17 Jul 2011 20:40:38 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id dHO6e5mGnfhAjEuM for ; Sun, 17 Jul 2011 20:40:38 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqwDAKuqI055LCkBgWdsb2JhbABKCadtFQEBFiYlynyDLoMOBKNN Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:10:35 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qiegx-0008Bc-6u for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:23 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qiegw-0002a7-QK for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:40:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Date: Mon, 18 Jul 2011 13:40:16 +1000 Message-Id: <1310960419-9875-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960419-9875-1-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960439 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69239 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Delayed logging can insert tens of thousands of log items into the AIL at the same LSN. When the committing of log commit records occur, we can get insertions occurring at an LSN that is not at the end of the AIL. If there are thousands of items in the AIL on the tail LSN, each insertion has to walk the AIL to find the correct place to insert the new item into the AIL. This can consume large amounts of CPU time and block other operations from occurring while the traversals are in progress. To avoid this repeated walk, use a AIL cursor to record where we should be inserting the new items into the AIL without having to repeat the walk. The cursor infrastructure already provides this functionality for push walks, so is a simple extension of existing code. While this will not avoid the initial walk, it will avoid repeating it tens of thousands of times during a single checkpoint commit. This version includes logic improvements from Christoph Hellwig. Signed-off-by: Dave Chinner --- fs/xfs/xfs_trans.c | 27 ++++++++++-- fs/xfs/xfs_trans_ail.c | 109 ++++++++++++++++++++++++++++++++++++++--------- fs/xfs/xfs_trans_priv.h | 10 +++- 3 files changed, 118 insertions(+), 28 deletions(-) diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c index c83f63b..efc147f 100644 --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -1426,6 +1426,7 @@ xfs_trans_committed( static inline void xfs_log_item_batch_insert( struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t commit_lsn) @@ -1434,7 +1435,7 @@ xfs_log_item_batch_insert( spin_lock(&ailp->xa_lock); /* xfs_trans_ail_update_bulk drops ailp->xa_lock */ - xfs_trans_ail_update_bulk(ailp, log_items, nr_items, commit_lsn); + xfs_trans_ail_update_bulk(ailp, cur, log_items, nr_items, commit_lsn); for (i = 0; i < nr_items; i++) IOP_UNPIN(log_items[i], 0); @@ -1452,6 +1453,13 @@ xfs_log_item_batch_insert( * as an iclog write error even though we haven't started any IO yet. Hence in * this case all we need to do is IOP_COMMITTED processing, followed by an * IOP_UNPIN(aborted) call. + * + * The AIL cursor is used to optimise the insert process. If commit_lsn is not + * at the end of the AIL, the insert cursor avoids the need to walk + * the AIL to find the insertion point on every xfs_log_item_batch_insert() + * call. This saves a lot of needless list walking and is a net win, even + * though it slightly increases that amount of AIL lock traffic to set it up + * and tear it down. */ void xfs_trans_committed_bulk( @@ -1463,8 +1471,13 @@ xfs_trans_committed_bulk( #define LOG_ITEM_BATCH_SIZE 32 struct xfs_log_item *log_items[LOG_ITEM_BATCH_SIZE]; struct xfs_log_vec *lv; + struct xfs_ail_cursor cur; int i = 0; + spin_lock(&ailp->xa_lock); + xfs_trans_ail_cursor_last(ailp, &cur, commit_lsn); + spin_unlock(&ailp->xa_lock); + /* unpin all the log items */ for (lv = log_vector; lv; lv = lv->lv_next ) { struct xfs_log_item *lip = lv->lv_item; @@ -1493,7 +1506,9 @@ xfs_trans_committed_bulk( /* * Not a bulk update option due to unusual item_lsn. * Push into AIL immediately, rechecking the lsn once - * we have the ail lock. Then unpin the item. + * we have the ail lock. Then unpin the item. This does + * not affect the AIL cursor the bulk insert path is + * using. */ spin_lock(&ailp->xa_lock); if (XFS_LSN_CMP(item_lsn, lip->li_lsn) > 0) @@ -1507,7 +1522,7 @@ xfs_trans_committed_bulk( /* Item is a candidate for bulk AIL insert. */ log_items[i++] = lv->lv_item; if (i >= LOG_ITEM_BATCH_SIZE) { - xfs_log_item_batch_insert(ailp, log_items, + xfs_log_item_batch_insert(ailp, &cur, log_items, LOG_ITEM_BATCH_SIZE, commit_lsn); i = 0; } @@ -1515,7 +1530,11 @@ xfs_trans_committed_bulk( /* make sure we insert the remainder! */ if (i) - xfs_log_item_batch_insert(ailp, log_items, i, commit_lsn); + xfs_log_item_batch_insert(ailp, &cur, log_items, i, commit_lsn); + + spin_lock(&ailp->xa_lock); + xfs_trans_ail_cursor_done(ailp, &cur); + spin_unlock(&ailp->xa_lock); } /* diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 5fc2380..9a69dc0 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -272,9 +272,9 @@ xfs_trans_ail_cursor_clear( } /* - * Return the item in the AIL with the current lsn. - * Return the current tree generation number for use - * in calls to xfs_trans_next_ail(). + * Initialise the cursor to the first item in the AIL with the given @lsn. + * This searches the list from lowest LSN to highest. Pass a @lsn of zero + * to initialise the cursor to the first item in the AIL. */ xfs_log_item_t * xfs_trans_ail_cursor_first( @@ -300,31 +300,97 @@ out: } /* - * splice the log item list into the AIL at the given LSN. + * Initialise the cursor to the last item in the AIL with the given @lsn. + * This searches the list from highest LSN to lowest. If there is no item with + * the value of @lsn, then it sets the cursor to the last item with an LSN lower + * than @lsn. + */ +static struct xfs_log_item * +__xfs_trans_ail_cursor_last( + struct xfs_ail *ailp, + xfs_lsn_t lsn) +{ + xfs_log_item_t *lip; + + list_for_each_entry_reverse(lip, &ailp->xa_ail, li_ail) { + if (XFS_LSN_CMP(lip->li_lsn, lsn) <= 0) + return lip; + } + return NULL; +} + +/* + * Initialise the cursor to the last item in the AIL with the given @lsn. + * This searches the list from highest LSN to lowest. + */ +struct xfs_log_item * +xfs_trans_ail_cursor_last( + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn) +{ + xfs_trans_ail_cursor_init(ailp, cur); + cur->item = __xfs_trans_ail_cursor_last(ailp, lsn); + return cur->item; +} + +/* + * splice the log item list into the AIL at the given LSN. We splice to the + * tail of the given LSN to maintain insert order for push traversals. The + * cursor is optional, allowing repeated updates to the same LSN to avoid + * repeated traversals. */ static void xfs_ail_splice( - struct xfs_ail *ailp, - struct list_head *list, - xfs_lsn_t lsn) + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + struct list_head *list, + xfs_lsn_t lsn) { - xfs_log_item_t *next_lip; + struct xfs_log_item *lip = cur ? cur->item : NULL; + struct xfs_log_item *next_lip; - /* If the list is empty, just insert the item. */ - if (list_empty(&ailp->xa_ail)) { - list_splice(list, &ailp->xa_ail); - return; + /* + * Get a new cursor if we don't have a placeholder or the existing one + * has been invalidated. + */ + if (!lip || (__psint_t)lip & 1) { + lip = __xfs_trans_ail_cursor_last(ailp, lsn); + + if (!lip) { + /* The list is empty, so just splice and return. */ + if (cur) + cur->item = NULL; + list_splice(list, &ailp->xa_ail); + return; + } } - list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { - if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) - break; + /* + * Our cursor points to the item we want to insert _after_, so we have + * to update the cursor to point to the end of the list we are splicing + * in so that it points to the correct location for the next splice. + * i.e. before the splice + * + * lsn -> lsn -> lsn + x -> lsn + x ... + * ^ + * | cursor points here + * + * After the splice we have: + * + * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... + * ^ ^ + * | cursor points here | needs to move here + * + * So we set the cursor to the last item in the list to be spliced + * before we execute the splice, resulting in the cursor pointing to + * the correct item after the splice occurs. + */ + if (cur) { + next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); + cur->item = next_lip; } - - ASSERT(&next_lip->li_ail == &ailp->xa_ail || - XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0); - - list_splice_init(list, &next_lip->li_ail); + list_splice(list, &lip->li_ail); } /* @@ -645,6 +711,7 @@ xfs_trans_unlocked_item( void xfs_trans_ail_update_bulk( struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t lsn) __releases(ailp->xa_lock) @@ -674,7 +741,7 @@ xfs_trans_ail_update_bulk( list_add(&lip->li_ail, &tmp); } - xfs_ail_splice(ailp, &tmp, lsn); + xfs_ail_splice(ailp, cur, &tmp, lsn); if (!mlip_changed) { spin_unlock(&ailp->xa_lock); diff --git a/fs/xfs/xfs_trans_priv.h b/fs/xfs/xfs_trans_priv.h index 6b164e9..c0cb408 100644 --- a/fs/xfs/xfs_trans_priv.h +++ b/fs/xfs/xfs_trans_priv.h @@ -82,6 +82,7 @@ struct xfs_ail { extern struct workqueue_struct *xfs_ail_wq; /* AIL workqueue */ void xfs_trans_ail_update_bulk(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, struct xfs_log_item **log_items, int nr_items, xfs_lsn_t lsn) __releases(ailp->xa_lock); static inline void @@ -90,7 +91,7 @@ xfs_trans_ail_update( struct xfs_log_item *lip, xfs_lsn_t lsn) __releases(ailp->xa_lock) { - xfs_trans_ail_update_bulk(ailp, &lip, 1, lsn); + xfs_trans_ail_update_bulk(ailp, NULL, &lip, 1, lsn); } void xfs_trans_ail_delete_bulk(struct xfs_ail *ailp, @@ -111,10 +112,13 @@ xfs_lsn_t xfs_ail_min_lsn(struct xfs_ail *ailp); void xfs_trans_unlocked_item(struct xfs_ail *, xfs_log_item_t *); -struct xfs_log_item *xfs_trans_ail_cursor_first(struct xfs_ail *ailp, +struct xfs_log_item * xfs_trans_ail_cursor_first(struct xfs_ail *ailp, struct xfs_ail_cursor *cur, xfs_lsn_t lsn); -struct xfs_log_item *xfs_trans_ail_cursor_next(struct xfs_ail *ailp, +struct xfs_log_item * xfs_trans_ail_cursor_last(struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + xfs_lsn_t lsn); +struct xfs_log_item * xfs_trans_ail_cursor_next(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); void xfs_trans_ail_cursor_done(struct xfs_ail *ailp, struct xfs_ail_cursor *cur); -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:49:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3nuKI078324 for ; Sun, 17 Jul 2011 22:49:56 -0500 X-ASG-Debug-ID: 1310960994-557e00b90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 974FDECC578 for ; Sun, 17 Jul 2011 20:49:54 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 11gsITLO9YVU466F for ; Sun, 17 Jul 2011 20:49:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjcFAKuqI055LCkBgWdsb2JhbABTmG6OfxUBARYmJaxLnjGGPASjTQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:19:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qieq8-0008Cv-VK for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:52 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qieq8-0002hT-NN for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/3] xfs: convert more code to use workqueues Subject: [PATCH 0/3] xfs: convert more code to use workqueues Date: Mon, 18 Jul 2011 13:49:46 +1000 Message-Id: <1310960989-10284-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960995 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1148 1.0000 -1.3048 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.30 X-Barracuda-Spam-Status: No, SCORE=-1.30 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The three patces convert code to use workqueues for different reasons. The first patch splits the allocation path into a new stack as writeback from the bdi-flusher threads is in danger of overrunning the stack in worst case XFS stack usage on complex storage subsystems. I've been running this patch locally for the past couple of months and I haven't encountered any issues, performance or otherwise with it. The second patch converts the xfsbufd to a workqueue, continuing the process of replacing per-fs threads with workqueues (as per xfsaild and xfssyncd). This removes the last per-fs thread and cleans up the code around it. The last patch convert the CIL flush to use a workqueue to move all the processing out of the direct transaction commit processing. This prevents random operation from a user application taking the hit (CPU and latency) for committing the last 10,000 modifications to the journal. From dave@fromorbit.com Sun Jul 17 22:49:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3nwnV078332 for ; Sun, 17 Jul 2011 22:49:58 -0500 X-ASG-Debug-ID: 1310960996-266e03650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2486BECC732 for ; Sun, 17 Jul 2011 20:49:56 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id OaoZeMY0tag22RFV for ; Sun, 17 Jul 2011 20:49:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqsDAKuqI055LCkBgWdsb2JhbABTp20VAQEWJiXKfIY8BKNN Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:19:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qieq9-0008Cw-0d for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:53 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qieq8-0002hV-P2 for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] xfs: introduce an allocation workqueue Subject: [PATCH 1/3] xfs: introduce an allocation workqueue Date: Mon, 18 Jul 2011 13:49:47 +1000 Message-Id: <1310960989-10284-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960989-10284-1-git-send-email-david@fromorbit.com> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960997 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner We currently have significant issues with the amount of stack that allocation in XFS uses, especially in the writeback path. We can easily consume 4k of stack between mapping the page, manipulating the bmap btree and allocating blocks from the free list. Not to mention btree block readahead and other functionality that issues IO in the allocation path. As a result, we can no longer fit allocation in the writeback path in the stack space provided on x86_64. To alleviate this problem, introduce an allocation workqueue and move all allocations to a seperate context. This can be easily added as an interposing layer into xfs_alloc_vextent(), which takes a single argument structure and does not return until the allocation is complete or has failed. To do this, add a work structure and a completion to the allocation args structure. This allows xfs_alloc_vextent to queue the args onto the workqueue and wait for it to be completed by the worker. This can be done completely transparently to the caller. The worker function needs to ensure that it sets and clears the PF_TRANS flag appropriately as it is being run in an active transaction context. Work can also be queued in a memory reclaim context, so a rescuer is needed for the workqueue. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 13 +++++++++++++ fs/xfs/xfs_alloc.c | 34 +++++++++++++++++++++++++++++++++- fs/xfs/xfs_alloc.h | 5 +++++ 3 files changed, 51 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 9a72dda..6a6d4d9 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1672,8 +1672,21 @@ xfs_init_workqueues(void) if (!xfs_ail_wq) goto out_destroy_syncd; + /* + * The allocation workqueue can be used in memory reclaim situations + * (writepage path), and parallelism is only limited by the number of + * AGs in all the filesystems mounted. Hence maxactive is set very + * high. + */ + xfs_alloc_wq = alloc_workqueue("xfsalloc", + WQ_CPU_INTENSIVE | WQ_MEM_RECLAIM, 128); + if (!xfs_alloc_wq) + goto out_destroy_ail; + return 0; +out_destroy_ail: + destroy_workqueue(xfs_ail_wq); out_destroy_syncd: destroy_workqueue(xfs_syncd_wq); out: diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 1e00b3e..5883972 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -35,6 +35,7 @@ #include "xfs_error.h" #include "xfs_trace.h" +struct workqueue_struct *xfs_alloc_wq; #define XFS_ABSDIFF(a,b) (((a) <= (b)) ? ((b) - (a)) : ((a) - (b))) @@ -2208,7 +2209,7 @@ xfs_alloc_read_agf( * group or loop over the allocation groups to find the result. */ int /* error */ -xfs_alloc_vextent( +__xfs_alloc_vextent( xfs_alloc_arg_t *args) /* allocation argument structure */ { xfs_agblock_t agsize; /* allocation group size */ @@ -2418,6 +2419,37 @@ error0: return error; } +static void +xfs_alloc_vextent_worker( + struct work_struct *work) +{ + struct xfs_alloc_arg *args = container_of(work, + struct xfs_alloc_arg, work); + unsigned long pflags; + + /* we are in a transaction context here */ + current_set_flags_nested(&pflags, PF_FSTRANS); + + args->result = __xfs_alloc_vextent(args); + complete(args->done); + + current_restore_flags_nested(&pflags, PF_FSTRANS); +} + + +int /* error */ +xfs_alloc_vextent( + xfs_alloc_arg_t *args) /* allocation argument structure */ +{ + DECLARE_COMPLETION_ONSTACK(done); + + args->done = &done; + INIT_WORK(&args->work, xfs_alloc_vextent_worker); + queue_work(xfs_alloc_wq, &args->work); + wait_for_completion(&done); + return args->result; +} + /* * Free an extent. * Just break up the extent address and hand off to xfs_free_ag_extent diff --git a/fs/xfs/xfs_alloc.h b/fs/xfs/xfs_alloc.h index 2f52b92..ab5d0fd 100644 --- a/fs/xfs/xfs_alloc.h +++ b/fs/xfs/xfs_alloc.h @@ -25,6 +25,8 @@ struct xfs_perag; struct xfs_trans; struct xfs_busy_extent; +extern struct workqueue_struct *xfs_alloc_wq; + /* * Freespace allocation types. Argument to xfs_alloc_[v]extent. */ @@ -119,6 +121,9 @@ typedef struct xfs_alloc_arg { char isfl; /* set if is freelist blocks - !acctg */ char userdata; /* set if this is user data */ xfs_fsblock_t firstblock; /* io first block allocated */ + struct completion *done; + struct work_struct work; + int result; } xfs_alloc_arg_t; /* -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:49:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3nwlh078334 for ; Sun, 17 Jul 2011 22:49:58 -0500 X-ASG-Debug-ID: 1310960994-557e00b90001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 566F1ECC775 for ; Sun, 17 Jul 2011 20:49:55 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id FBlhSCrCAHG4qmYz for ; Sun, 17 Jul 2011 20:49:55 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqsDAKuqI055LCkBgWdsb2JhbABTp20VAQEWJiXKfIY8BKNN Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:19:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qieq9-0008Cy-3z for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:53 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qieq8-0002ha-Sx for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] xfs: flush the CIL via a workqueue Subject: [PATCH 3/3] xfs: flush the CIL via a workqueue Date: Mon, 18 Jul 2011 13:49:49 +1000 Message-Id: <1310960989-10284-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960989-10284-1-git-send-email-david@fromorbit.com> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960997 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner Doing background CIL flushes adds significant latency to whatever async transaction that triggers it. To avoid blocking async transactions on things like waiting for log buffer IO to complete, move the CIL push off into a workqueue. By moving the push work into a workqueue, we remove all the latency that the commit adds from the foreground transaction commit path. This also means that single threaded workloads won't do the CIL push procssing, leaving them more CPU to do more async transactions. To do this, we need to keep track of the sequence nnumber we have pushed work for. This avoids having many transaction commits attempting to schedule work for the same sequence, and ensures that we only ever have one push (background or forced) in progress at a time. It also means that we don't need to take the CIL lock in write mode to check for potential background push races, which reduces lock contention. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_super.c | 7 + fs/xfs/xfs_log_cil.c | 260 +++++++++++++++++++++++++----------------- fs/xfs/xfs_log_priv.h | 4 + 3 files changed, 166 insertions(+), 105 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c index 6a6d4d9..b3ace86 100644 --- a/fs/xfs/linux-2.6/xfs_super.c +++ b/fs/xfs/linux-2.6/xfs_super.c @@ -1683,8 +1683,14 @@ xfs_init_workqueues(void) if (!xfs_alloc_wq) goto out_destroy_ail; + xfs_cil_wq = alloc_workqueue("xfscil", WQ_MEM_RECLAIM, 8); + if (!xfs_ail_wq) + goto out_destroy_alloc; + return 0; +out_destroy_alloc: + destroy_workqueue(xfs_alloc_wq); out_destroy_ail: destroy_workqueue(xfs_ail_wq); out_destroy_syncd: @@ -1696,6 +1702,7 @@ out: STATIC void xfs_destroy_workqueues(void) { + destroy_workqueue(xfs_cil_wq); destroy_workqueue(xfs_ail_wq); destroy_workqueue(xfs_syncd_wq); } diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c index c7755d5..9e652d2 100644 --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -31,67 +31,7 @@ #include "xfs_alloc.h" #include "xfs_discard.h" -/* - * Perform initial CIL structure initialisation. If the CIL is not - * enabled in this filesystem, ensure the log->l_cilp is null so - * we can check this conditional to determine if we are doing delayed - * logging or not. - */ -int -xlog_cil_init( - struct log *log) -{ - struct xfs_cil *cil; - struct xfs_cil_ctx *ctx; - - log->l_cilp = NULL; - if (!(log->l_mp->m_flags & XFS_MOUNT_DELAYLOG)) - return 0; - - cil = kmem_zalloc(sizeof(*cil), KM_SLEEP|KM_MAYFAIL); - if (!cil) - return ENOMEM; - - ctx = kmem_zalloc(sizeof(*ctx), KM_SLEEP|KM_MAYFAIL); - if (!ctx) { - kmem_free(cil); - return ENOMEM; - } - - INIT_LIST_HEAD(&cil->xc_cil); - INIT_LIST_HEAD(&cil->xc_committing); - spin_lock_init(&cil->xc_cil_lock); - init_rwsem(&cil->xc_ctx_lock); - init_waitqueue_head(&cil->xc_commit_wait); - - INIT_LIST_HEAD(&ctx->committing); - INIT_LIST_HEAD(&ctx->busy_extents); - ctx->sequence = 1; - ctx->cil = cil; - cil->xc_ctx = ctx; - cil->xc_current_sequence = ctx->sequence; - - cil->xc_log = log; - log->l_cilp = cil; - return 0; -} - -void -xlog_cil_destroy( - struct log *log) -{ - if (!log->l_cilp) - return; - - if (log->l_cilp->xc_ctx) { - if (log->l_cilp->xc_ctx->ticket) - xfs_log_ticket_put(log->l_cilp->xc_ctx->ticket); - kmem_free(log->l_cilp->xc_ctx); - } - - ASSERT(list_empty(&log->l_cilp->xc_cil)); - kmem_free(log->l_cilp); -} +struct workqueue_struct *xfs_cil_wq; /* * Allocate a new ticket. Failing to get a new ticket makes it really hard to @@ -401,12 +341,58 @@ xlog_cil_committed( * get a race between multiple pushes for the same sequence they will block on * the first one and then abort, hence avoiding needless pushes. */ -STATIC int +static void xlog_cil_push( - struct log *log, - xfs_lsn_t push_seq) + struct log *log, + xfs_lsn_t push_seq) { - struct xfs_cil *cil = log->l_cilp; + struct xfs_cil *cil = log->l_cilp; + + if (!cil) + return; + + ASSERT(!push_seq || push_seq <= cil->xc_current_sequence); + + /* + * don't do a background push if we haven't used up all the + * space available yet. + */ + if (!push_seq && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + return; + + /* + * if we are being asked to push to a specific sequence, and we have + * already queued a larger push, then nothing to do. + */ + if (push_seq && push_seq <= cil->xc_push_seq) + return; + + spin_lock(&cil->xc_cil_lock); + if (!push_seq) + push_seq = cil->xc_current_sequence; + + /* + * if the CIL is empty, or we've already pushed the sequence, then + * there's no work we need to do. + */ + if (list_empty(&cil->xc_cil) || push_seq <= cil->xc_push_seq) { + spin_unlock(&cil->xc_cil_lock); + return; + } + + cil->xc_push_seq = push_seq; + queue_work(xfs_cil_wq, &cil->xc_push_work); + spin_unlock(&cil->xc_cil_lock); + +} + +static void +xlog_cil_push_work( + struct work_struct *work) +{ + struct xfs_cil *cil = container_of(work, struct xfs_cil, + xc_push_work); + struct log *log = cil->xc_log; struct xfs_log_vec *lv; struct xfs_cil_ctx *ctx; struct xfs_cil_ctx *new_ctx; @@ -419,40 +405,34 @@ xlog_cil_push( struct xfs_trans_header thdr; struct xfs_log_iovec lhdr; struct xfs_log_vec lvhdr = { NULL }; + xfs_lsn_t push_seq; xfs_lsn_t commit_lsn; - if (!cil) - return 0; - - ASSERT(!push_seq || push_seq <= cil->xc_ctx->sequence); - new_ctx = kmem_zalloc(sizeof(*new_ctx), KM_SLEEP|KM_NOFS); new_ctx->ticket = xlog_cil_ticket_alloc(log); - /* - * Lock out transaction commit, but don't block for background pushes - * unless we are well over the CIL space limit. See the definition of - * XLOG_CIL_HARD_SPACE_LIMIT() for the full explanation of the logic - * used here. - */ - if (!down_write_trylock(&cil->xc_ctx_lock)) { - if (!push_seq && - cil->xc_ctx->space_used < XLOG_CIL_HARD_SPACE_LIMIT(log)) - goto out_free_ticket; - down_write(&cil->xc_ctx_lock); - } + /* Lock out transaction commiti until we've switch contexts */ + down_write(&cil->xc_ctx_lock); ctx = cil->xc_ctx; - /* check if we've anything to push */ - if (list_empty(&cil->xc_cil)) - goto out_skip; + spin_lock(&cil->xc_cil_lock); + push_seq = cil->xc_push_seq; + ASSERT(push_seq > 0 && push_seq <= ctx->sequence); - /* check for spurious background flush */ - if (!push_seq && cil->xc_ctx->space_used < XLOG_CIL_SPACE_LIMIT(log)) + /* + * Check if we've anything to push. If there is nothing, then we don't + * move on to a new sequence number and so we have to be able to push + * this sequence again later. + */ + if (list_empty(&cil->xc_cil)) { + cil->xc_push_seq = 0; + spin_unlock(&cil->xc_cil_lock); goto out_skip; + } + spin_unlock(&cil->xc_cil_lock); /* check for a previously pushed seqeunce */ - if (push_seq && push_seq < cil->xc_ctx->sequence) + if (push_seq < ctx->sequence) goto out_skip; /* @@ -602,20 +582,19 @@ restart: spin_unlock(&cil->xc_cil_lock); /* release the hounds! */ - return xfs_log_release_iclog(log->l_mp, commit_iclog); + xfs_log_release_iclog(log->l_mp, commit_iclog); + return; out_skip: up_write(&cil->xc_ctx_lock); -out_free_ticket: xfs_log_ticket_put(new_ctx->ticket); kmem_free(new_ctx); - return 0; + return; out_abort_free_ticket: xfs_log_ticket_put(tic); out_abort: xlog_cil_committed(ctx, XFS_LI_ABORTED); - return XFS_ERROR(EIO); } /* @@ -645,7 +624,6 @@ xfs_log_commit_cil( { struct log *log = mp->m_log; int log_flags = 0; - int push = 0; if (flags & XFS_TRANS_RELEASE_LOG_RES) log_flags = XFS_LOG_REL_PERM_RESERV; @@ -694,12 +672,6 @@ xfs_log_commit_cil( */ xfs_trans_free_items(tp, *commit_lsn, 0); - /* check for background commit before unlock */ - if (log->l_cilp->xc_ctx->space_used > XLOG_CIL_SPACE_LIMIT(log)) - push = 1; - - up_read(&log->l_cilp->xc_ctx_lock); - /* * We need to push CIL every so often so we don't cache more than we * can fit in the log. The limit really is that a checkpoint can't be @@ -707,8 +679,8 @@ xfs_log_commit_cil( * overwrite the previous checkpoint), but commit latency and memory * usage limit this to a smaller size in most cases. */ - if (push) - xlog_cil_push(log, 0); + xlog_cil_push(log, 0); + up_read(&log->l_cilp->xc_ctx_lock); } /* @@ -720,9 +692,6 @@ xfs_log_commit_cil( * * We return the current commit lsn to allow the callers to determine if a * iclog flush is necessary following this call. - * - * XXX: Initially, just push the CIL unconditionally and return whatever - * commit lsn is there. It'll be empty, so this is broken for now. */ xfs_lsn_t xlog_cil_force_lsn( @@ -733,6 +702,8 @@ xlog_cil_force_lsn( struct xfs_cil_ctx *ctx; xfs_lsn_t commit_lsn = NULLCOMMITLSN; + /* lock out background commit */ + down_read(&log->l_cilp->xc_ctx_lock); ASSERT(sequence <= cil->xc_current_sequence); /* @@ -740,8 +711,23 @@ xlog_cil_force_lsn( * xlog_cil_push() handles racing pushes for the same sequence, * so no need to deal with it here. */ - if (sequence == cil->xc_current_sequence) + if (sequence == cil->xc_current_sequence) { xlog_cil_push(log, sequence); + up_read(&log->l_cilp->xc_ctx_lock); + + /* + * We have to block waiting for the push to execute even if we + * didn't push the sequence out as we need to wait for the push + * to get queued into the committing list. Once it is in the + * committing list, we can harvest the commit_lsn of the + * checkpoint issued by the push. + * + * We don't hold the ctx lock while doing this as the push work + * needs to hold it. + */ + flush_work_sync(&cil->xc_push_work); + } else + up_read(&log->l_cilp->xc_ctx_lock); /* * See if we can find a previous sequence still committing. @@ -802,3 +788,67 @@ xfs_log_item_in_current_chkpt( return false; return true; } + +/* + * Perform initial CIL structure initialisation. If the CIL is not + * enabled in this filesystem, ensure the log->l_cilp is null so + * we can check this conditional to determine if we are doing delayed + * logging or not. + */ +int +xlog_cil_init( + struct log *log) +{ + struct xfs_cil *cil; + struct xfs_cil_ctx *ctx; + + log->l_cilp = NULL; + if (!(log->l_mp->m_flags & XFS_MOUNT_DELAYLOG)) + return 0; + + cil = kmem_zalloc(sizeof(*cil), KM_SLEEP|KM_MAYFAIL); + if (!cil) + return ENOMEM; + + ctx = kmem_zalloc(sizeof(*ctx), KM_SLEEP|KM_MAYFAIL); + if (!ctx) { + kmem_free(cil); + return ENOMEM; + } + + INIT_WORK(&cil->xc_push_work, xlog_cil_push_work); + INIT_LIST_HEAD(&cil->xc_cil); + INIT_LIST_HEAD(&cil->xc_committing); + spin_lock_init(&cil->xc_cil_lock); + init_rwsem(&cil->xc_ctx_lock); + init_waitqueue_head(&cil->xc_commit_wait); + + INIT_LIST_HEAD(&ctx->committing); + INIT_LIST_HEAD(&ctx->busy_extents); + ctx->sequence = 1; + ctx->cil = cil; + cil->xc_ctx = ctx; + cil->xc_current_sequence = ctx->sequence; + + cil->xc_log = log; + log->l_cilp = cil; + return 0; +} + +void +xlog_cil_destroy( + struct log *log) +{ + if (!log->l_cilp) + return; + + if (log->l_cilp->xc_ctx) { + if (log->l_cilp->xc_ctx->ticket) + xfs_log_ticket_put(log->l_cilp->xc_ctx->ticket); + kmem_free(log->l_cilp->xc_ctx); + } + + ASSERT(list_empty(&log->l_cilp->xc_cil)); + kmem_free(log->l_cilp); +} + diff --git a/fs/xfs/xfs_log_priv.h b/fs/xfs/xfs_log_priv.h index 2d3b6a4..61d55f9 100644 --- a/fs/xfs/xfs_log_priv.h +++ b/fs/xfs/xfs_log_priv.h @@ -417,8 +417,12 @@ struct xfs_cil { struct list_head xc_committing; wait_queue_head_t xc_commit_wait; xfs_lsn_t xc_current_sequence; + struct work_struct xc_push_work; + xfs_lsn_t xc_push_seq; }; +extern struct workqueue_struct *xfs_cil_wq; + /* * The amount of log space we allow the CIL to aggregate is difficult to size. * Whatever we choose, we have to make sure we can get a reservation for the -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 22:50:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_66, J_CHICKENPOX_74 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I3o0pG078355 for ; Sun, 17 Jul 2011 22:50:00 -0500 X-ASG-Debug-ID: 1310960996-266e03650001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BE05DECC776 for ; Sun, 17 Jul 2011 20:49:57 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id aX8M7101ZiM6uRMc for ; Sun, 17 Jul 2011 20:49:57 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqwDAKuqI055LCkBgWdsb2JhbABHDKdtFQEBFiYlynyDJgGDFQSjTQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:19:54 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qieq9-0008Cx-2D for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:53 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qieq8-0002hX-RG for xfs@oss.sgi.com; Mon, 18 Jul 2011 13:49:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Subject: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Date: Mon, 18 Jul 2011 13:49:48 +1000 Message-Id: <1310960989-10284-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310960989-10284-1-git-send-email-david@fromorbit.com> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310960998 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner There is no reason we need a thread per filesystem to do the flushing of the delayed write buffer queue. This can be easily handled by a global concurrency managed workqueue. Convert the delayed write buffer handling to use workqueues and workqueue flushes to implement buffer writeback by embedding a delayed work structure into the struct xfs_buftarg and using that to control flushing. While there, group all the delayed write list and buffer handling functions into the same section of code to make it easier to find all the relevant code. This greatly simplifes the process of flushing and also removes a bunch of duplicated code between buftarg flushing and delwri buffer writeback. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_buf.c | 522 ++++++++++++++++++++------------------------ fs/xfs/linux-2.6/xfs_buf.h | 5 +- fs/xfs/quota/xfs_dquot.c | 1 - fs/xfs/xfs_trans_ail.c | 2 +- 4 files changed, 244 insertions(+), 286 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b2b4119..1d2b5f9 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -33,6 +33,7 @@ #include #include #include +#include #include "xfs_sb.h" #include "xfs_inum.h" @@ -42,9 +43,9 @@ #include "xfs_trace.h" static kmem_zone_t *xfs_buf_zone; -STATIC int xfsbufd(void *); STATIC void xfs_buf_delwri_queue(xfs_buf_t *, int); +static struct workqueue_struct *xfs_buf_wq; static struct workqueue_struct *xfslogd_workqueue; struct workqueue_struct *xfsdatad_workqueue; struct workqueue_struct *xfsconvertd_workqueue; @@ -1367,9 +1368,236 @@ xfs_buf_iomove( } } + + +/* + * Delayed write buffer handling + */ +STATIC void +xfs_buf_delwri_queue( + xfs_buf_t *bp, + int unlock) +{ + struct list_head *dwq = &bp->b_target->bt_delwrite_queue; + spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; + + trace_xfs_buf_delwri_queue(bp, _RET_IP_); + + ASSERT((bp->b_flags&(XBF_DELWRI|XBF_ASYNC)) == (XBF_DELWRI|XBF_ASYNC)); + + spin_lock(dwlk); + /* If already in the queue, dequeue and place at tail */ + if (!list_empty(&bp->b_list)) { + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + if (unlock) + atomic_dec(&bp->b_hold); + list_del(&bp->b_list); + } + + if (list_empty(dwq)) { + /* queue a delayed flush as we are about to queue a buffer */ + queue_delayed_work(xfs_buf_wq, &bp->b_target->bt_delwrite_work, + xfs_buf_timer_centisecs * msecs_to_jiffies(10)); + } + + bp->b_flags |= _XBF_DELWRI_Q; + list_add_tail(&bp->b_list, dwq); + bp->b_queuetime = jiffies; + spin_unlock(dwlk); + + if (unlock) + xfs_buf_unlock(bp); +} + +void +xfs_buf_delwri_dequeue( + xfs_buf_t *bp) +{ + spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; + int dequeued = 0; + + spin_lock(dwlk); + if ((bp->b_flags & XBF_DELWRI) && !list_empty(&bp->b_list)) { + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + list_del_init(&bp->b_list); + dequeued = 1; + } + bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q); + spin_unlock(dwlk); + + if (dequeued) + xfs_buf_rele(bp); + + trace_xfs_buf_delwri_dequeue(bp, _RET_IP_); +} + +/* + * If a delwri buffer needs to be pushed before it has aged out, then promote + * it to the head of the delwri queue so that it will be flushed on the next + * xfsbufd run. We do this by resetting the queuetime of the buffer to be older + * than the age currently needed to flush the buffer. Hence the next time the + * xfsbufd sees it is guaranteed to be considered old enough to flush. + */ +void +xfs_buf_delwri_promote( + struct xfs_buf *bp) +{ + struct xfs_buftarg *btp = bp->b_target; + long age = xfs_buf_age_centisecs * msecs_to_jiffies(10) + 1; + + ASSERT(bp->b_flags & XBF_DELWRI); + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + + /* + * Check the buffer age before locking the delayed write queue as we + * don't need to promote buffers that are already past the flush age. + */ + if (bp->b_queuetime < jiffies - age) + return; + bp->b_queuetime = jiffies - age; + spin_lock(&btp->bt_delwrite_lock); + list_move(&bp->b_list, &btp->bt_delwrite_queue); + spin_unlock(&btp->bt_delwrite_lock); +} + +/* + * Move buffers older than the age specified to the supplied list, avoiding + * locked buffers to prevent deadlocks. + */ +STATIC void +xfs_buf_delwri_split( + xfs_buftarg_t *target, + struct list_head *list, + unsigned long age, + int force) +{ + xfs_buf_t *bp, *n; + struct list_head *dwq = &target->bt_delwrite_queue; + spinlock_t *dwlk = &target->bt_delwrite_lock; + + INIT_LIST_HEAD(list); + spin_lock(dwlk); + list_for_each_entry_safe(bp, n, dwq, b_list) { + ASSERT(bp->b_flags & XBF_DELWRI); + + if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { + if (!force && + time_before(jiffies, bp->b_queuetime + age)) { + xfs_buf_unlock(bp); + break; + } + + bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); + bp->b_flags |= XBF_WRITE; + list_move_tail(&bp->b_list, list); + trace_xfs_buf_delwri_split(bp, _RET_IP_); + } + } + spin_unlock(dwlk); +} + /* - * Handling of buffer targets (buftargs). + * Compare function is more complex than it needs to be because + * the return value is only 32 bits and we are doing comparisons + * on 64 bit values */ +static int +xfs_buf_cmp( + void *priv, + struct list_head *a, + struct list_head *b) +{ + struct xfs_buf *ap = container_of(a, struct xfs_buf, b_list); + struct xfs_buf *bp = container_of(b, struct xfs_buf, b_list); + xfs_daddr_t diff; + + diff = ap->b_bn - bp->b_bn; + if (diff < 0) + return -1; + if (diff > 0) + return 1; + return 0; +} + +/* + * If we are doing a forced flush, then we need to wait for the IO that we + * issue to complete. + */ +static void +xfs_buf_delwri_work( + struct work_struct *work) +{ + struct xfs_buftarg *btp = container_of(to_delayed_work(work), + struct xfs_buftarg, bt_delwrite_work); + struct xfs_buf *bp; + struct blk_plug plug; + LIST_HEAD(tmp_list); + LIST_HEAD(wait_list); + long age = xfs_buf_age_centisecs * msecs_to_jiffies(10); + int force = 0; + + if (test_and_clear_bit(XBT_FORCE_FLUSH, &btp->bt_flags)) { + force = 1; + age = 0; + } + + xfs_buf_delwri_split(btp, &tmp_list, age, force); + list_sort(NULL, &tmp_list, xfs_buf_cmp); + + blk_start_plug(&plug); + while (!list_empty(&tmp_list)) { + bp = list_first_entry(&tmp_list, struct xfs_buf, b_list); + list_del_init(&bp->b_list); + if (force) { + bp->b_flags &= ~XBF_ASYNC; + list_add(&bp->b_list, &wait_list); + } + xfs_bdstrat_cb(bp); + } + blk_finish_plug(&plug); + + if (force) { + /* Wait for IO to complete. */ + while (!list_empty(&wait_list)) { + bp = list_first_entry(&wait_list, struct xfs_buf, b_list); + + list_del_init(&bp->b_list); + xfs_buf_iowait(bp); + xfs_buf_relse(bp); + } + } + + if (list_empty(&btp->bt_delwrite_queue)) + return; + + queue_delayed_work(xfs_buf_wq, &btp->bt_delwrite_work, + xfs_buf_timer_centisecs * msecs_to_jiffies(10)); +} + +/* + * Go through all incore buffers, and release buffers if they belong to + * the given device. This is used in filesystem error handling to + * preserve the consistency of its metadata. + * + * If we flush all the delayed write metadata, return 0. Otherwise, return 1 to + * indicate more work needs to be done. + */ +int +xfs_flush_buftarg( + xfs_buftarg_t *target, + int wait) +{ + flush_workqueue(xfsconvertd_workqueue); + flush_workqueue(xfsdatad_workqueue); + flush_workqueue(xfslogd_workqueue); + + set_bit(XBT_FORCE_FLUSH, &target->bt_flags); + flush_delayed_work_sync(&target->bt_delwrite_work); + + if (!list_empty(&target->bt_delwrite_queue)) + return 1; + return 0; +} /* * Wait for any bufs with callbacks that have been submitted but have not yet @@ -1463,7 +1691,6 @@ xfs_free_buftarg( if (mp->m_flags & XFS_MOUNT_BARRIER) xfs_blkdev_issue_flush(btp); - kthread_stop(btp->bt_task); kmem_free(btp); } @@ -1511,19 +1738,6 @@ xfs_setsize_buftarg( return xfs_setsize_buftarg_flags(btp, blocksize, sectorsize, 1); } -STATIC int -xfs_alloc_delwrite_queue( - xfs_buftarg_t *btp, - const char *fsname) -{ - INIT_LIST_HEAD(&btp->bt_delwrite_queue); - spin_lock_init(&btp->bt_delwrite_lock); - btp->bt_flags = 0; - btp->bt_task = kthread_run(xfsbufd, btp, "xfsbufd/%s", fsname); - if (IS_ERR(btp->bt_task)) - return PTR_ERR(btp->bt_task); - return 0; -} xfs_buftarg_t * xfs_alloc_buftarg( @@ -1545,10 +1759,13 @@ xfs_alloc_buftarg( INIT_LIST_HEAD(&btp->bt_lru); spin_lock_init(&btp->bt_lru_lock); + + INIT_LIST_HEAD(&btp->bt_delwrite_queue); + spin_lock_init(&btp->bt_delwrite_lock); + INIT_DELAYED_WORK(&btp->bt_delwrite_work, xfs_buf_delwri_work); + if (xfs_setsize_buftarg_early(btp, bdev)) goto error; - if (xfs_alloc_delwrite_queue(btp, fsname)) - goto error; btp->bt_shrinker.shrink = xfs_buftarg_shrink; btp->bt_shrinker.seeks = DEFAULT_SEEKS; register_shrinker(&btp->bt_shrinker); @@ -1559,269 +1776,6 @@ error: return NULL; } - -/* - * Delayed write buffer handling - */ -STATIC void -xfs_buf_delwri_queue( - xfs_buf_t *bp, - int unlock) -{ - struct list_head *dwq = &bp->b_target->bt_delwrite_queue; - spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; - - trace_xfs_buf_delwri_queue(bp, _RET_IP_); - - ASSERT((bp->b_flags&(XBF_DELWRI|XBF_ASYNC)) == (XBF_DELWRI|XBF_ASYNC)); - - spin_lock(dwlk); - /* If already in the queue, dequeue and place at tail */ - if (!list_empty(&bp->b_list)) { - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - if (unlock) - atomic_dec(&bp->b_hold); - list_del(&bp->b_list); - } - - if (list_empty(dwq)) { - /* start xfsbufd as it is about to have something to do */ - wake_up_process(bp->b_target->bt_task); - } - - bp->b_flags |= _XBF_DELWRI_Q; - list_add_tail(&bp->b_list, dwq); - bp->b_queuetime = jiffies; - spin_unlock(dwlk); - - if (unlock) - xfs_buf_unlock(bp); -} - -void -xfs_buf_delwri_dequeue( - xfs_buf_t *bp) -{ - spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; - int dequeued = 0; - - spin_lock(dwlk); - if ((bp->b_flags & XBF_DELWRI) && !list_empty(&bp->b_list)) { - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - list_del_init(&bp->b_list); - dequeued = 1; - } - bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q); - spin_unlock(dwlk); - - if (dequeued) - xfs_buf_rele(bp); - - trace_xfs_buf_delwri_dequeue(bp, _RET_IP_); -} - -/* - * If a delwri buffer needs to be pushed before it has aged out, then promote - * it to the head of the delwri queue so that it will be flushed on the next - * xfsbufd run. We do this by resetting the queuetime of the buffer to be older - * than the age currently needed to flush the buffer. Hence the next time the - * xfsbufd sees it is guaranteed to be considered old enough to flush. - */ -void -xfs_buf_delwri_promote( - struct xfs_buf *bp) -{ - struct xfs_buftarg *btp = bp->b_target; - long age = xfs_buf_age_centisecs * msecs_to_jiffies(10) + 1; - - ASSERT(bp->b_flags & XBF_DELWRI); - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - - /* - * Check the buffer age before locking the delayed write queue as we - * don't need to promote buffers that are already past the flush age. - */ - if (bp->b_queuetime < jiffies - age) - return; - bp->b_queuetime = jiffies - age; - spin_lock(&btp->bt_delwrite_lock); - list_move(&bp->b_list, &btp->bt_delwrite_queue); - spin_unlock(&btp->bt_delwrite_lock); -} - -STATIC void -xfs_buf_runall_queues( - struct workqueue_struct *queue) -{ - flush_workqueue(queue); -} - -/* - * Move as many buffers as specified to the supplied list - * idicating if we skipped any buffers to prevent deadlocks. - */ -STATIC int -xfs_buf_delwri_split( - xfs_buftarg_t *target, - struct list_head *list, - unsigned long age) -{ - xfs_buf_t *bp, *n; - struct list_head *dwq = &target->bt_delwrite_queue; - spinlock_t *dwlk = &target->bt_delwrite_lock; - int skipped = 0; - int force; - - force = test_and_clear_bit(XBT_FORCE_FLUSH, &target->bt_flags); - INIT_LIST_HEAD(list); - spin_lock(dwlk); - list_for_each_entry_safe(bp, n, dwq, b_list) { - ASSERT(bp->b_flags & XBF_DELWRI); - - if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { - if (!force && - time_before(jiffies, bp->b_queuetime + age)) { - xfs_buf_unlock(bp); - break; - } - - bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); - bp->b_flags |= XBF_WRITE; - list_move_tail(&bp->b_list, list); - trace_xfs_buf_delwri_split(bp, _RET_IP_); - } else - skipped++; - } - spin_unlock(dwlk); - - return skipped; - -} - -/* - * Compare function is more complex than it needs to be because - * the return value is only 32 bits and we are doing comparisons - * on 64 bit values - */ -static int -xfs_buf_cmp( - void *priv, - struct list_head *a, - struct list_head *b) -{ - struct xfs_buf *ap = container_of(a, struct xfs_buf, b_list); - struct xfs_buf *bp = container_of(b, struct xfs_buf, b_list); - xfs_daddr_t diff; - - diff = ap->b_bn - bp->b_bn; - if (diff < 0) - return -1; - if (diff > 0) - return 1; - return 0; -} - -STATIC int -xfsbufd( - void *data) -{ - xfs_buftarg_t *target = (xfs_buftarg_t *)data; - - current->flags |= PF_MEMALLOC; - - set_freezable(); - - do { - long age = xfs_buf_age_centisecs * msecs_to_jiffies(10); - long tout = xfs_buf_timer_centisecs * msecs_to_jiffies(10); - struct list_head tmp; - struct blk_plug plug; - - if (unlikely(freezing(current))) { - set_bit(XBT_FORCE_SLEEP, &target->bt_flags); - refrigerator(); - } else { - clear_bit(XBT_FORCE_SLEEP, &target->bt_flags); - } - - /* sleep for a long time if there is nothing to do. */ - if (list_empty(&target->bt_delwrite_queue)) - tout = MAX_SCHEDULE_TIMEOUT; - schedule_timeout_interruptible(tout); - - xfs_buf_delwri_split(target, &tmp, age); - list_sort(NULL, &tmp, xfs_buf_cmp); - - blk_start_plug(&plug); - while (!list_empty(&tmp)) { - struct xfs_buf *bp; - bp = list_first_entry(&tmp, struct xfs_buf, b_list); - list_del_init(&bp->b_list); - xfs_bdstrat_cb(bp); - } - blk_finish_plug(&plug); - } while (!kthread_should_stop()); - - return 0; -} - -/* - * Go through all incore buffers, and release buffers if they belong to - * the given device. This is used in filesystem error handling to - * preserve the consistency of its metadata. - */ -int -xfs_flush_buftarg( - xfs_buftarg_t *target, - int wait) -{ - xfs_buf_t *bp; - int pincount = 0; - LIST_HEAD(tmp_list); - LIST_HEAD(wait_list); - struct blk_plug plug; - - xfs_buf_runall_queues(xfsconvertd_workqueue); - xfs_buf_runall_queues(xfsdatad_workqueue); - xfs_buf_runall_queues(xfslogd_workqueue); - - set_bit(XBT_FORCE_FLUSH, &target->bt_flags); - pincount = xfs_buf_delwri_split(target, &tmp_list, 0); - - /* - * Dropped the delayed write list lock, now walk the temporary list. - * All I/O is issued async and then if we need to wait for completion - * we do that after issuing all the IO. - */ - list_sort(NULL, &tmp_list, xfs_buf_cmp); - - blk_start_plug(&plug); - while (!list_empty(&tmp_list)) { - bp = list_first_entry(&tmp_list, struct xfs_buf, b_list); - ASSERT(target == bp->b_target); - list_del_init(&bp->b_list); - if (wait) { - bp->b_flags &= ~XBF_ASYNC; - list_add(&bp->b_list, &wait_list); - } - xfs_bdstrat_cb(bp); - } - blk_finish_plug(&plug); - - if (wait) { - /* Wait for IO to complete. */ - while (!list_empty(&wait_list)) { - bp = list_first_entry(&wait_list, struct xfs_buf, b_list); - - list_del_init(&bp->b_list); - xfs_buf_iowait(bp); - xfs_buf_relse(bp); - } - } - - return pincount; -} - int __init xfs_buf_init(void) { @@ -1844,8 +1798,13 @@ xfs_buf_init(void) if (!xfsconvertd_workqueue) goto out_destroy_xfsdatad_workqueue; + xfs_buf_wq = alloc_workqueue("xfsbufd", WQ_MEM_RECLAIM, 8); + if (!xfs_buf_wq) + goto out_destroy_xfsconvertd_wq; return 0; + out_destroy_xfsconvertd_wq: + destroy_workqueue(xfsconvertd_workqueue); out_destroy_xfsdatad_workqueue: destroy_workqueue(xfsdatad_workqueue); out_destroy_xfslogd_workqueue: @@ -1859,6 +1818,7 @@ xfs_buf_init(void) void xfs_buf_terminate(void) { + destroy_workqueue(xfs_buf_wq); destroy_workqueue(xfsconvertd_workqueue); destroy_workqueue(xfsdatad_workqueue); destroy_workqueue(xfslogd_workqueue); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6a83b46..2196cd1 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -90,8 +90,7 @@ typedef unsigned int xfs_buf_flags_t; { _XBF_DELWRI_Q, "DELWRI_Q" } typedef enum { - XBT_FORCE_SLEEP = 0, - XBT_FORCE_FLUSH = 1, + XBT_FORCE_FLUSH = 0, } xfs_buftarg_flags_t; typedef struct xfs_buftarg { @@ -104,7 +103,7 @@ typedef struct xfs_buftarg { size_t bt_smask; /* per device delwri queue */ - struct task_struct *bt_task; + struct delayed_work bt_delwrite_work; struct list_head bt_delwrite_queue; spinlock_t bt_delwrite_lock; unsigned long bt_flags; diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 837f311..0136928 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1450,7 +1450,6 @@ xfs_qm_dqflock_pushbuf_wait( if (XFS_BUF_ISPINNED(bp)) xfs_log_force(mp, 0); xfs_buf_delwri_promote(bp); - wake_up_process(bp->b_target->bt_task); } xfs_buf_relse(bp); out_lock: diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c index 8cd329b..3cfd6e6 100644 --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -505,7 +505,7 @@ xfs_ail_worker( if (push_xfsbufd) { /* we've got delayed write buffers to flush */ - wake_up_process(mp->m_ddev_targp->bt_task); + flush_delayed_work(&mp->m_ddev_targp->bt_delwrite_work); } /* assume we have more work to do in a short while */ -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 23:04:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I44qQL079181 for ; Sun, 17 Jul 2011 23:04:52 -0500 X-ASG-Debug-ID: 1310961890-3dd301620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F9021D8822D for ; Sun, 17 Jul 2011 21:04:50 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id nmvi8vNir3JtjeeT for ; Sun, 17 Jul 2011 21:04:50 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjgFACyuI055LCkBgWdsb2JhbABHDJhujn8VAQEWJiXKeYMmgxYEmw6IPw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:34:49 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qif4a-0008F4-EY; Mon, 18 Jul 2011 14:04:48 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qif4a-00032k-4x; Mon, 18 Jul 2011 14:04:48 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/2] splice: i_mutex vs splice write deadlock Subject: [PATCH 0/2] splice: i_mutex vs splice write deadlock Date: Mon, 18 Jul 2011 14:04:42 +1000 Message-Id: <1310961884-11634-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310961891 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0555 1.0000 -1.6654 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.67 X-Barracuda-Spam-Status: No, SCORE=-1.67 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69241 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean generic_file_splice_write() takes the inode->i_mutex after the filesystem has taken whatever locks it needs to ensure sanity. however, this typically violates the locking order of filesystems with their own locks in that the order is usually i_mutex -> filesystem lock. XFS is such a case, and generic_file_splice_write() is generating lockdep warnings because of lock inversions between the inode->i_mutex and the XFS_I(inode)->i_iolock. There is also a reported case of fio causing a deadlock when it mixes IO types (e.g. splice vs direct IO). This patch set introduces generic_file_splice_write_unlocked() and factors the code such that __generic_file_splice_write() will only lock the i_mutex if called from the locked variant. The second patch modifies XFS to use the new function. From dave@fromorbit.com Sun Jul 17 23:04:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I44r5s079185 for ; Sun, 17 Jul 2011 23:04:53 -0500 X-ASG-Debug-ID: 1310961890-3dd301620001-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id ACC2A1D88232 for ; Sun, 17 Jul 2011 21:04:51 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id h4o5cttPTpUWP9kW for ; Sun, 17 Jul 2011 21:04:51 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqsDACyuI055LCkBgWdsb2JhbABTp20VAQEWJiXKeYY8BJsOiD8 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:34:49 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qif4a-0008F5-G6; Mon, 18 Jul 2011 14:04:48 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qif4a-00032m-72; Mon, 18 Jul 2011 14:04:48 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/2] vfs: split generic splice code from i_mutex locking Subject: [PATCH 1/2] vfs: split generic splice code from i_mutex locking Date: Mon, 18 Jul 2011 14:04:43 +1000 Message-Id: <1310961884-11634-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310961884-11634-1-git-send-email-david@fromorbit.com> References: <1310961884-11634-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310961892 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69241 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner XFS holds locks that should be nested inside the inode->i_mutex when generic_file_splice_write is called. This function takes the i_mutex, and so we get a lock inversion that triggers lockdep warnings and has been found to cause real deadlocks. XFS does not need the splice code to take the i_mutex to do the page cache manipulation, so add a new function generic_file_splice_write_unlocked() that avoids the locking of the i_mutex for XFS to call. Signed-off-by: Dave Chinner --- fs/splice.c | 39 +++++++++++++++++++++++++++++++++++---- include/linux/fs.h | 2 ++ 2 files changed, 37 insertions(+), 4 deletions(-) diff --git a/fs/splice.c b/fs/splice.c index aa866d3..c15137d 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -980,8 +980,9 @@ ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out, * */ ssize_t -generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, - loff_t *ppos, size_t len, unsigned int flags) +__generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags, + int need_imutex) { struct address_space *mapping = out->f_mapping; struct inode *inode = mapping->host; @@ -1001,13 +1002,15 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, if (ret <= 0) break; - mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD); + if (need_imutex) + mutex_lock_nested(&inode->i_mutex, I_MUTEX_CHILD); ret = file_remove_suid(out); if (!ret) { file_update_time(out); ret = splice_from_pipe_feed(pipe, &sd, pipe_to_file); } - mutex_unlock(&inode->i_mutex); + if (need_imutex) + mutex_unlock(&inode->i_mutex); } while (ret > 0); splice_from_pipe_end(pipe, &sd); @@ -1033,8 +1036,36 @@ generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, return ret; } +/** + * generic_file_splice_write - splice data from a pipe to a file + * @pipe: pipe info + * @out: file to write to + * @ppos: position in @out + * @len: number of bytes to splice + * @flags: splice modifier flags + * + * Description: + * Will either move or copy pages (determined by @flags options) from + * the given pipe inode to the given file. + * + */ +ssize_t +generic_file_splice_write(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) +{ + return __generic_file_splice_write(pipe, out, ppos, len, flags, 1); +} EXPORT_SYMBOL(generic_file_splice_write); +ssize_t +generic_file_splice_write_unlocked(struct pipe_inode_info *pipe, + struct file *out, loff_t *ppos, + size_t len, unsigned int flags) +{ + return __generic_file_splice_write(pipe, out, ppos, len, flags, 0); +} +EXPORT_SYMBOL(generic_file_splice_write_unlocked); + static int write_pipe_buf(struct pipe_inode_info *pipe, struct pipe_buffer *buf, struct splice_desc *sd) { diff --git a/include/linux/fs.h b/include/linux/fs.h index 54c49e5..3a8b984 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -2368,6 +2368,8 @@ extern ssize_t default_file_splice_read(struct file *, loff_t *, struct pipe_inode_info *, size_t, unsigned int); extern ssize_t generic_file_splice_write(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int); +extern ssize_t generic_file_splice_write_unlocked(struct pipe_inode_info *, + struct file *, loff_t *, size_t, unsigned int); extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, loff_t *, size_t len, unsigned int flags); extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, -- 1.7.5.1 From dave@fromorbit.com Sun Jul 17 23:04:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6I44rdm079192 for ; Sun, 17 Jul 2011 23:04:54 -0500 X-ASG-Debug-ID: 1310961891-69b900610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FA3FECD23D for ; Sun, 17 Jul 2011 21:04:52 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 9dZ8lIAeQ9VpGC8V for ; Sun, 17 Jul 2011 21:04:52 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjcFACyuI055LCkBgWdsb2JhbABTmG6OfxUBARYmJcp5hjwEo00 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 18 Jul 2011 13:34:49 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qif4a-0008F6-HP; Mon, 18 Jul 2011 14:04:48 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qif4a-00032o-8q; Mon, 18 Jul 2011 14:04:48 +1000 From: Dave Chinner To: linux-fsdevel@vger.kernel.org Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/2] xfs: fix splice/direct-IO deadlock Subject: [PATCH 2/2] xfs: fix splice/direct-IO deadlock Date: Mon, 18 Jul 2011 14:04:44 +1000 Message-Id: <1310961884-11634-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 In-Reply-To: <1310961884-11634-1-git-send-email-david@fromorbit.com> References: <1310961884-11634-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1310961893 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner lockdep reports splice vs direct-io write lock inversions due to generic_file_splice_write() taking the inode->i_mutex inside XFS_IOLOCK_EXCL context. These lock contexts are inverted, hence can deadlock. Use generic_file_splice_write_unlocked() because the i_mutex does not need to be held over the operations that are done in the XFS splice write path. Signed-off-by: Dave Chinner --- fs/xfs/linux-2.6/xfs_file.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index f51a384..1e641e6 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -463,7 +463,8 @@ xfs_file_splice_write( trace_xfs_file_splice_write(ip, count, *ppos, ioflags); - ret = generic_file_splice_write(pipe, outfilp, ppos, count, flags); + ret = generic_file_splice_write_unlocked(pipe, outfilp, ppos, + count, flags); xfs_aio_write_isize_update(inode, ppos, ret); xfs_aio_write_newsize_update(ip); -- 1.7.5.1 From bfields@fieldses.org Mon Jul 18 08:37:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IDbNok103188 for ; Mon, 18 Jul 2011 08:37:24 -0500 X-ASG-Debug-ID: 1310996240-1ef1019e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EB6B1169581C; Mon, 18 Jul 2011 06:37:20 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id VCBJW4CuV7gNhmMO; Mon, 18 Jul 2011 06:37:20 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1Qio0U-0003nA-Hm; Mon, 18 Jul 2011 09:37:10 -0400 Date: Mon, 18 Jul 2011 09:37:10 -0400 From: "J. Bruce Fields" To: Christoph Hellwig Cc: Dave Chinner , xfs-masters@oss.sgi.com, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Subject: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE Message-ID: <20110718133710.GB9741@fieldses.org> References: <20110714205036.GA19457@fieldses.org> <20110714223126.GA28694@infradead.org> <20110716015014.GF21663@dastard> <20110716015346.GA589@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110716015346.GA589@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1310996241 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69279 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 15, 2011 at 09:53:46PM -0400, Christoph Hellwig wrote: > On Sat, Jul 16, 2011 at 11:50:14AM +1000, Dave Chinner wrote: > > Bulkstat also checks for ENOENT returns from xfs_iget() as the > > lookup it does is inherently racy. That is, if the inode is > > allocated when it is read from the IBT, but then has been unlinked > > before the actual xfs_iget() call, it expects to get back an ENOENT > > to tell it the inode has been unlinked and shouldn't be included in > > the bulkstat output. Otherwise, it returns the error to userspace. > > > > So converting the mode checks to return ESTALE definitely has the > > chance of breaking stuff that uses bulkstat (e.g. xfsdump) because > > it will return errors now where it previously just skipped the > > (unlinked) inode. > > Sounds like we should simply go with the original version of the patch > then. OK. Let me know if someone needs that resent.... --b. From jack@suse.cz Mon Jul 18 10:36:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IFaZQK107151 for ; Mon, 18 Jul 2011 10:36:35 -0500 X-ASG-Debug-ID: 1311003393-157e017a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B32541509E8A for ; Mon, 18 Jul 2011 08:36:33 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id j2DDrsw6tEh3m1zq for ; Mon, 18 Jul 2011 08:36:33 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 706538C061; Mon, 18 Jul 2011 17:36:32 +0200 (CEST) Received: by quack.suse.cz (Postfix, from userid 1000) id B65D020550; Mon, 18 Jul 2011 17:36:31 +0200 (CEST) Date: Mon, 18 Jul 2011 17:36:31 +0200 From: Jan Kara To: Alex Elder Cc: Jan Kara , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v3] xfstests: Improve test 219 to work with different filesystems Subject: Re: [PATCH v3] xfstests: Improve test 219 to work with different filesystems Message-ID: <20110718153631.GA5842@quack.suse.cz> References: <1309363480-22268-1-git-send-email-jack@suse.cz> <1310744354.2921.20.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310744354.2921.20.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311003394 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0120 1.0000 -1.9425 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.94 X-Barracuda-Spam-Status: No, SCORE=-1.94 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69288 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri 15-07-11 10:39:14, Alex Elder wrote: > On Wed, 2011-06-29 at 18:04 +0200, Jan Kara wrote: > > Different filesystems account different amount of metadata in quota. Thus it is > > impractical to check for a particular amount of space occupied by a file > > because there is no right value. Change the test to verify whether the amount > > of space is between the expected amount of space and the expected amount +5%. > > The number of files is checked exactly as previously. > > > > Signed-off-by: Jan Kara > > Looks good. After verifying it (at least on XFS), I > will commit this for you. > > Reviewed-by: Alex Elder Thanks for testing and committing! Honza -- Jan Kara SUSE Labs, CR From BATV+a634de6d576dc72f0365+2885+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 11:00:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IG0otS108211 for ; Mon, 18 Jul 2011 11:00:53 -0500 X-ASG-Debug-ID: 1311004848-15f602c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7A668AB6E11 for ; Mon, 18 Jul 2011 09:00:49 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id MLZFSo5Tr1QVSnur for ; Mon, 18 Jul 2011 09:00:49 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QiqFS-0004Wd-Uj; Mon, 18 Jul 2011 16:00:46 +0000 Date: Mon, 18 Jul 2011 12:00:46 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Subject: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Message-ID: <20110718160046.GA14094@infradead.org> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310960989-10284-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311004849 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69288 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 01:49:47PM +1000, Dave Chinner wrote: > From: Dave Chinner > > We currently have significant issues with the amount of stack that > allocation in XFS uses, especially in the writeback path. We can > easily consume 4k of stack between mapping the page, manipulating > the bmap btree and allocating blocks from the free list. Not to > mention btree block readahead and other functionality that issues IO > in the allocation path. > > As a result, we can no longer fit allocation in the writeback path > in the stack space provided on x86_64. To alleviate this problem, > introduce an allocation workqueue and move all allocations to a > seperate context. This can be easily added as an interposing layer > into xfs_alloc_vextent(), which takes a single argument structure > and does not return until the allocation is complete or has failed. I've mentioned before that I really don't like it, but I suspect there's not much of an way around it giving the small stacks, and significant amount of stacks that's already used above and below XFS. Can we at least have a sysctl nob or mount option to switch back to direct allocator calls so that we can still debug any performance or other issues with this one? From BATV+a634de6d576dc72f0365+2885+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 11:01:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IG1Uvu108262 for ; Mon, 18 Jul 2011 11:01:30 -0500 X-ASG-Debug-ID: 1311004889-421602ff0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EA9AF7A035 for ; Mon, 18 Jul 2011 09:01:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 8EAtFaHyMaVc7NEw for ; Mon, 18 Jul 2011 09:01:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QiqG9-0004Xn-3H; Mon, 18 Jul 2011 16:01:29 +0000 Date: Mon, 18 Jul 2011 12:01:29 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Subject: Re: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Message-ID: <20110718160129.GB14094@infradead.org> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310960989-10284-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311004889 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0471 1.0000 -1.7180 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.62 X-Barracuda-Spam-Status: No, SCORE=-1.62 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69289 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 01:49:48PM +1000, Dave Chinner wrote: > control flushing. While there, group all the delayed write list and > buffer handling functions into the same section of code to make it > easier to find all the relevant code. Any chance you could make the re-grouping a separate patch? It's really hard to read it right now as the actual changes are hidden too much. From aelder@sgi.com Mon Jul 18 13:14:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65,LOCALPART_IN_SUBJECT autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IIEGwt115629 for ; Mon, 18 Jul 2011 13:14:16 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8B6EC8F804B; Mon, 18 Jul 2011 11:14:10 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6IIEA9L028910; Mon, 18 Jul 2011 13:14:10 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6IIEAZm028909; Mon, 18 Jul 2011 13:14:10 -0500 From: Alex Elder Message-Id: <201107181814.p6IIEAZm028909@stout.americas.sgi.com> Date: Mon, 18 Jul 2011 13:14:09 -0500 To: xfs@oss.sgi.com Subject: xfs: encapsulate a block of debug code User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Pull into a helper function some debug-only code that validates a xfs_da_blkinfo structure that's been read from disk. Signed-off-by: Alex Elder --- fs/xfs/xfs_da_btree.c | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) Index: b/fs/xfs/xfs_da_btree.c =================================================================== --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -692,6 +692,24 @@ xfs_da_join(xfs_da_state_t *state) return(error); } +#ifdef DEBUG +static void +xfs_da_blkinfo_validate(struct xfs_da_blkinfo *blkinfo, __u16 level) +{ + __be16 magic = blkinfo->magic; + + if (level == 1) { + ASSERT(magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC) || + magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); + } else + ASSERT(magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); + ASSERT(!blkinfo->forw); + ASSERT(!blkinfo->back); +} +#else /* !DEBUG */ +#define xfs_da_blkinfo_validate(blkinfo, level) +#endif /* !DEBUG */ + /* * We have only one entry in the root. Copy the only remaining child of * the old root to block 0 as the new root node. @@ -700,8 +718,6 @@ STATIC int xfs_da_root_join(xfs_da_state_t *state, xfs_da_state_blk_t *root_blk) { xfs_da_intnode_t *oldroot; - /* REFERENCED */ - xfs_da_blkinfo_t *blkinfo; xfs_da_args_t *args; xfs_dablk_t child; xfs_dabuf_t *bp; @@ -732,15 +748,8 @@ xfs_da_root_join(xfs_da_state_t *state, if (error) return(error); ASSERT(bp != NULL); - blkinfo = bp->data; - if (be16_to_cpu(oldroot->hdr.level) == 1) { - ASSERT(blkinfo->magic == cpu_to_be16(XFS_DIR2_LEAFN_MAGIC) || - blkinfo->magic == cpu_to_be16(XFS_ATTR_LEAF_MAGIC)); - } else { - ASSERT(blkinfo->magic == cpu_to_be16(XFS_DA_NODE_MAGIC)); - } - ASSERT(!blkinfo->forw); - ASSERT(!blkinfo->back); + xfs_da_blkinfo_validate(bp->data, be16_to_cpu(oldroot->hdr.level)); + memcpy(root_blk->bp->data, bp->data, state->blocksize); xfs_da_log_buf(args->trans, root_blk->bp, 0, state->blocksize - 1); error = xfs_da_shrink_inode(args, child, bp); From aelder@sgi.com Mon Jul 18 13:26:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IIQNKG116663 for ; Mon, 18 Jul 2011 13:26:23 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 80359304053; Mon, 18 Jul 2011 11:26:20 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6IIQKhq029493; Mon, 18 Jul 2011 13:26:20 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6IIQK5r029492; Mon, 18 Jul 2011 13:26:20 -0500 From: Alex Elder Message-Id: <201107181826.p6IIQK5r029492@stout.americas.sgi.com> Date: Mon, 18 Jul 2011 13:26:20 -0500 To: xfs@oss.sgi.com Subject: xfsprogs: fix some printf() warnings that show up for ia64 builds. User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A few notes: - This applies on top of Christoph Hellwig's recent "xfs_repair: add printf format checking and fix the fallout" patch. - I don't like the long lines in this code. This change made more of more of them--and I tried some formatting conventions to improve the look--but it's still not great and I'm open to suggestions. - Christoph, even though you supplied it earlier I did not add your sign-off because I did these formatting changes. -Alex ------------ xfsprogs: fix some printf() warnings that show up for ia64 builds. Signed-off-by: Alex Elder --- io/parent.c | 28 ++++++++++++++++------------ logprint/log_misc.c | 34 ++++++++++++++++++++-------------- logprint/log_print_all.c | 16 ++++++++++------ repair/dinode.c | 33 +++++++++++++++++++-------------- repair/scan.c | 14 +++++++++----- 5 files changed, 74 insertions(+), 51 deletions(-) Index: b/io/parent.c =================================================================== --- a/io/parent.c +++ b/io/parent.c @@ -52,12 +52,12 @@ check_parent_entry(xfs_bstat_t *bstatp, if (sts != 0) { fprintf(stderr, _("inode-path for inode: %llu is incorrect - path \"%s\" non-existent\n"), - bstatp->bs_ino, fullpath); + (unsigned long long) bstatp->bs_ino, fullpath); if (verbose_flag) { fprintf(stderr, _("path \"%s\" does not stat for inode: %llu; err = %s\n"), fullpath, - bstatp->bs_ino, + (unsigned long long) bstatp->bs_ino, strerror(errno)); } err_status++; @@ -71,7 +71,7 @@ check_parent_entry(xfs_bstat_t *bstatp, if (statbuf.st_ino != bstatp->bs_ino) { fprintf(stderr, _("inode-path for inode: %llu is incorrect - wrong inode#\n"), - bstatp->bs_ino); + (unsigned long long) bstatp->bs_ino); if (verbose_flag) { fprintf(stderr, _("ino mismatch for path \"%s\" %llu vs %llu\n"), @@ -101,7 +101,7 @@ check_parent_entry(xfs_bstat_t *bstatp, if (parent->p_ino != statbuf.st_ino) { fprintf(stderr, _("inode-path for inode: %llu is incorrect - wrong parent inode#\n"), - bstatp->bs_ino); + (unsigned long long) bstatp->bs_ino); if (verbose_flag) { fprintf(stderr, _("ino mismatch for path \"%s\" %llu vs %llu\n"), @@ -113,7 +113,8 @@ check_parent_entry(xfs_bstat_t *bstatp, return; } else { if (verbose_flag > 1) { - printf(_("parent ino match for %llu\n"), parent->p_ino); + printf(_("parent ino match for %llu\n"), + (unsigned long long) parent->p_ino); } } } @@ -135,7 +136,7 @@ check_parents(parent_t *parentbuf, size_ parentbuf = (parent_t *)realloc(parentbuf, *parentbuf_size); } else if (error) { fprintf(stderr, _("parentpaths failed for ino %llu: %s\n"), - statp->bs_ino, + (unsigned long long) statp->bs_ino, strerror(errno)); err_status++; break; @@ -145,7 +146,8 @@ check_parents(parent_t *parentbuf, size_ if (count == 0) { /* no links for inode - something wrong here */ - fprintf(stderr, _("inode-path for inode: %llu is missing\n"), statp->bs_ino); + fprintf(stderr, _("inode-path for inode: %llu is missing\n"), + (unsigned long long) statp->bs_ino); err_status++; } @@ -190,13 +192,13 @@ do_bulkstat(parent_t *parentbuf, size_t if (xfsctl(mntpt, fsfd, XFS_IOC_FSBULKSTAT_SINGLE, &bulkreq) < 0) { fprintf(stderr, _("failed to get bulkstat information for inode %llu\n"), - p->bs_ino ); + (unsigned long long) p->bs_ino); continue; } if (!p->bs_nlink || !p->bs_mode || !p->bs_ino) { fprintf(stderr, _("failed to get valid bulkstat information for inode %llu\n"), - p->bs_ino ); + (unsigned long long) p->bs_ino); continue; } } @@ -207,7 +209,8 @@ do_bulkstat(parent_t *parentbuf, size_t } if (verbose_flag > 1) { - printf(_("checking inode %llu\n"), p->bs_ino); + printf(_("checking inode %llu\n"), + (unsigned long long) p->bs_ino); } /* print dotted progress */ @@ -264,7 +267,8 @@ parent_check(void) if (err_status > 0) fprintf(stderr, _("num errors: %d\n"), err_status); else - printf(_("succeeded checking %llu inodes\n"), inodes_checked); + printf(_("succeeded checking %llu inodes\n"), + (unsigned long long) inodes_checked); free(bstatbuf); free(parentbuf); @@ -274,7 +278,7 @@ parent_check(void) static void print_parent_entry(parent_t *parent, int fullpath) { - printf(_("p_ino = %llu\n"), parent->p_ino); + printf(_("p_ino = %llu\n"), (unsigned long long) parent->p_ino); printf(_("p_gen = %u\n"), parent->p_gen); printf(_("p_reclen = %u\n"), parent->p_reclen); if (fullpath) Index: b/logprint/log_misc.c =================================================================== --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -306,12 +306,14 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr */ memmove(&x, *ptr, sizeof(__be64)); memmove(&y, *ptr+8, sizeof(__be64)); - printf(_("icount: %lld ifree: %lld "), - be64_to_cpu(x), be64_to_cpu(y)); + printf(_("icount: %llu ifree: %llu "), + (unsigned long long) be64_to_cpu(x), + (unsigned long long) be64_to_cpu(y)); memmove(&x, *ptr+16, sizeof(__be64)); memmove(&y, *ptr+24, sizeof(__be64)); - printf(_("fdblks: %lld frext: %lld\n"), - be64_to_cpu(x), be64_to_cpu(y)); + printf(_("fdblks: %llu frext: %llu\n"), + (unsigned long long) be64_to_cpu(x), + (unsigned long long) be64_to_cpu(y)); } super_block = 0; } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGI_MAGIC) { @@ -394,18 +396,22 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr dq->d_version, dq->d_flags, be32_to_cpu(dq->d_id)); printf(_("blk limits hard: %llu soft: %llu\n"), - be64_to_cpu(dq->d_blk_hardlimit), - be64_to_cpu(dq->d_blk_softlimit)); + (unsigned long long) + be64_to_cpu(dq->d_blk_hardlimit), + (unsigned long long) + be64_to_cpu(dq->d_blk_softlimit)); printf(_("blk count: %llu warns: %d timer: %d\n"), - be64_to_cpu(dq->d_bcount), - be16_to_cpu(dq->d_bwarns), - be32_to_cpu(dq->d_btimer)); + (unsigned long long) be64_to_cpu(dq->d_bcount), + (int) be16_to_cpu(dq->d_bwarns), + be32_to_cpu(dq->d_btimer)); printf(_("ino limits hard: %llu soft: %llu\n"), - be64_to_cpu(dq->d_ino_hardlimit), - be64_to_cpu(dq->d_ino_softlimit)); + (unsigned long long) + be64_to_cpu(dq->d_ino_hardlimit), + (unsigned long long) + be64_to_cpu(dq->d_ino_softlimit)); printf(_("ino count: %llu warns: %d timer: %d\n"), - be64_to_cpu(dq->d_icount), - be16_to_cpu(dq->d_iwarns), + (unsigned long long) be64_to_cpu(dq->d_icount), + (int) be16_to_cpu(dq->d_iwarns), be32_to_cpu(dq->d_itimer)); } } else { @@ -573,7 +579,7 @@ xlog_print_dir_sf(xfs_dir_shortform_t *s printf(_("SHORTFORM DIRECTORY size %d count %d\n"), size, sfp->hdr.count); memmove(&ino, &(sfp->hdr.parent), sizeof(ino)); - printf(_(".. ino 0x%llx\n"), be64_to_cpu(*(__be64 *)&ino)); + printf(_(".. ino 0x%llx\n"), (unsigned long long) be64_to_cpu(ino)); count = (uint)(sfp->hdr.count); sfep = &(sfp->list[0]); Index: b/logprint/log_print_all.c =================================================================== --- a/logprint/log_print_all.c +++ b/logprint/log_print_all.c @@ -108,12 +108,16 @@ xlog_recover_print_buffer( printf(_(" SUPER Block Buffer:\n")); if (!print_buffer) continue; - printf(_(" icount:%Ld ifree:%Ld "), - be64_to_cpu(*(__be64 *)(p)), - be64_to_cpu(*(__be64 *)(p+8))); - printf(_("fdblks:%Ld frext:%Ld\n"), - be64_to_cpu(*(__be64 *)(p+16)), - be64_to_cpu(*(__be64 *)(p+24))); + printf(_(" icount:%llu ifree:%llu "), + (unsigned long long) + be64_to_cpu(*(__be64 *)(p)), + (unsigned long long) + be64_to_cpu(*(__be64 *)(p+8))); + printf(_("fdblks:%llu frext:%llu\n"), + (unsigned long long) + be64_to_cpu(*(__be64 *)(p+16)), + (unsigned long long) + be64_to_cpu(*(__be64 *)(p+24))); printf(_(" sunit:%u swidth:%u\n"), be32_to_cpu(*(__be32 *)(p+56)), be32_to_cpu(*(__be32 *)(p+60))); Index: b/repair/dinode.c =================================================================== --- a/repair/dinode.c +++ b/repair/dinode.c @@ -1232,7 +1232,7 @@ _("bad numrecs 0 in inode %" PRIu64 " bm */ if (!verify_dfsbno(mp, be64_to_cpu(pp[i]))) { do_warn(_("bad bmap btree ptr 0x%llx in ino %" PRIu64 "\n"), - be64_to_cpu(pp[i]), lino); + (unsigned long long) be64_to_cpu(pp[i]), lino); return(1); } @@ -1252,7 +1252,8 @@ _("bad numrecs 0 in inode %" PRIu64 " bm do_warn( _("correcting key in bmbt root (was %llu, now %" PRIu64") in inode " "%" PRIu64" %s fork\n"), - be64_to_cpu(pkey[i].br_startoff), + (unsigned long long) + be64_to_cpu(pkey[i].br_startoff), cursor.level[level-1].first_key, XFS_AGINO_TO_INO(mp, agno, ino), forkname); @@ -1263,7 +1264,8 @@ _("bad numrecs 0 in inode %" PRIu64 " bm do_warn( _("bad key in bmbt root (is %llu, would reset to %" PRIu64 ") in inode " "%" PRIu64 " %s fork\n"), - be64_to_cpu(pkey[i].br_startoff), + (unsigned long long) + be64_to_cpu(pkey[i].br_startoff), cursor.level[level-1].first_key, XFS_AGINO_TO_INO(mp, agno, ino), forkname); @@ -1377,7 +1379,7 @@ process_lclinode( XFS_DFORK_DSIZE(dip, mp)) { do_warn( _("local inode %" PRIu64 " data fork is too large (size = %lld, max = %d)\n"), - lino, be64_to_cpu(dip->di_core.di_size), + lino, (unsigned long long) be64_to_cpu(dip->di_core.di_size), XFS_DFORK_DSIZE(dip, mp)); return(1); } else if (whichfork == XFS_ATTR_FORK) { @@ -1417,14 +1419,14 @@ process_symlink_extlist(xfs_mount_t *mp, do_warn( _("mismatch between format (%d) and size (%lld) in symlink ino %" PRIu64 "\n"), dino->di_core.di_format, - be64_to_cpu(dino->di_core.di_size), lino); + (unsigned long long) be64_to_cpu(dino->di_core.di_size), lino); return 1; } if (dino->di_core.di_format == XFS_DINODE_FMT_LOCAL) { do_warn( _("mismatch between format (%d) and size (%lld) in symlink inode %" PRIu64 "\n"), dino->di_core.di_format, - be64_to_cpu(dino->di_core.di_size), lino); + (unsigned long long) be64_to_cpu(dino->di_core.di_size), lino); return 1; } @@ -1514,7 +1516,7 @@ process_symlink( if (be64_to_cpu(dinoc->di_size) >= MAXPATHLEN) { do_warn( _("symlink in inode %" PRIu64 " too long (%lld chars)\n"), - lino, be64_to_cpu(dinoc->di_size)); + lino, (unsigned long long) be64_to_cpu(dinoc->di_size)); return(1); } @@ -1630,22 +1632,22 @@ _("inode %" PRIu64 " has bad inode type case XR_INO_CHRDEV: do_warn( _("size of character device inode %" PRIu64 " != 0 (%lld bytes)\n"), lino, - be64_to_cpu(dino->di_core.di_size)); + (unsigned long long) be64_to_cpu(dino->di_core.di_size)); break; case XR_INO_BLKDEV: do_warn( _("size of block device inode %" PRIu64 " != 0 (%lld bytes)\n"), lino, - be64_to_cpu(dino->di_core.di_size)); + (unsigned long long) be64_to_cpu(dino->di_core.di_size)); break; case XR_INO_SOCK: do_warn( _("size of socket inode %" PRIu64 " != 0 (%lld bytes)\n"), lino, - be64_to_cpu(dino->di_core.di_size)); + (unsigned long long) be64_to_cpu(dino->di_core.di_size)); break; case XR_INO_FIFO: do_warn( _("size of fifo inode %" PRIu64 " != 0 (%lld bytes)\n"), lino, - be64_to_cpu(dino->di_core.di_size)); + (unsigned long long) be64_to_cpu(dino->di_core.di_size)); break; default: do_warn( @@ -1992,13 +1994,16 @@ process_inode_blocks_and_extents( if (!no_modify) { do_warn( _("correcting nblocks for inode %" PRIu64 ", was %llu - counted %" PRIu64 "\n"), - lino, be64_to_cpu(dinoc->di_nblocks), nblocks); + lino, (unsigned long long) + be64_to_cpu(dinoc->di_nblocks), + nblocks); dinoc->di_nblocks = cpu_to_be64(nblocks); *dirty = 1; } else { do_warn( _("bad nblocks %llu for inode %" PRIu64 ", would reset to %" PRIu64 "\n"), - be64_to_cpu(dinoc->di_nblocks), lino, nblocks); + (unsigned long long) be64_to_cpu(dinoc->di_nblocks), + lino, nblocks); } } @@ -2526,7 +2531,7 @@ process_dinode_int(xfs_mount_t *mp, if (!uncertain) do_warn( _("bad (negative) size %lld on inode %" PRIu64 "\n"), - be64_to_cpu(dinoc->di_size), lino); + (unsigned long long) be64_to_cpu(dinoc->di_size), lino); if (verify_mode) return 1; goto clear_bad_out; Index: b/repair/scan.c =================================================================== --- a/repair/scan.c +++ b/repair/scan.c @@ -235,7 +235,8 @@ _("bad fwd (right) sibling pointer (saw do_warn( _("bad back (left) sibling pointer (saw %llu parent block says %" PRIu64 ")\n" "\tin inode %" PRIu64 " (%s fork) bmap btree block %" PRIu64 "\n"), - be64_to_cpu(block->bb_u.l.bb_leftsib), + (unsigned long long) + be64_to_cpu(block->bb_u.l.bb_leftsib), bm_cursor->level[level].fsbno, ino, forkname, bno); return(1); @@ -249,7 +250,8 @@ _("bad back (left) sibling pointer (saw do_warn( _("bad back (left) sibling pointer (saw %llu should be NULL (0))\n" "\tin inode %" PRIu64 " (%s fork) bmap btree block %" PRIu64 "\n"), - be64_to_cpu(block->bb_u.l.bb_leftsib), + (unsigned long long) + be64_to_cpu(block->bb_u.l.bb_leftsib), ino, forkname, bno); return(1); } @@ -404,7 +406,7 @@ _("inode 0x%" PRIu64 " bad # of bmap rec if (!verify_dfsbno(mp, be64_to_cpu(pp[i]))) { do_warn( _("bad bmap btree ptr 0x%llx in ino %" PRIu64 "\n"), - be64_to_cpu(pp[i]), ino); + (unsigned long long) be64_to_cpu(pp[i]), ino); return(1); } @@ -432,7 +434,8 @@ _("bad bmap btree ptr 0x%llx in ino %" P do_warn( _("correcting bt key (was %llu, now %" PRIu64 ") in inode %" PRIu64 "\n" "\t\t%s fork, btree block %" PRIu64 "\n"), - be64_to_cpu(pkey[i].br_startoff), + (unsigned long long) + be64_to_cpu(pkey[i].br_startoff), bm_cursor->level[level-1].first_key, ino, forkname, bno); @@ -443,7 +446,8 @@ _("correcting bt key (was %llu, now %" P do_warn( _("bad btree key (is %llu, should be %" PRIu64 ") in inode %" PRIu64 "\n" "\t\t%s fork, btree block %" PRIu64 "\n"), - be64_to_cpu(pkey[i].br_startoff), + (unsigned long long) + be64_to_cpu(pkey[i].br_startoff), bm_cursor->level[level-1].first_key, ino, forkname, bno); } From contact@johnbokma.com Mon Jul 18 14:58:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IJwuKq125006 for ; Mon, 18 Jul 2011 14:58:57 -0500 X-ASG-Debug-ID: 1311019135-419b00ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from johnbokma.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 42D6F7C318 for ; Mon, 18 Jul 2011 12:58:55 -0700 (PDT) Received: from johnbokma.com (johnbokma.com [174.143.254.155]) by cuda.sgi.com with ESMTP id TWBSBQlYEYi6JNlE for ; Mon, 18 Jul 2011 12:58:55 -0700 (PDT) Received: from [192.168.1.100] (unknown [200.92.64.33]) by johnbokma.com (Postfix) with ESMTPSA id 87BB4120051 for ; Mon, 18 Jul 2011 19:58:55 +0000 (UTC) Message-ID: <4E24907F.6020903@johnbokma.com> Date: Mon, 18 Jul 2011 14:58:55 -0500 From: John Bokma Organization: Castle Amber User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: 30 TB RAID6 + XFS slow write performance Subject: 30 TB RAID6 + XFS slow write performance Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Barracuda-Connect: johnbokma.com[174.143.254.155] X-Barracuda-Start-Time: 1311019136 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0792 1.0000 -1.5186 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69304 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Dear list members, A customer of mine is currently struggling with the performance of a 30 TB RAID6 which uses XFS as the filing system. I am somewhat sure it's not XFS that's causing the performance issue but my expertise is not XFS nor RAID; I just wrote the software that after moving to the larger RAID (from a much smaller one, ~ 3TB, using ext3) suddenly seems to have a huge drop in write performance. The software I wrote writes many small (50-150K) files in parallel (100+ processes), thousands of times per hour. Writing a file of 50-150K now and then seems to take between 30 and 90 seconds, and more rarely can take over 200 seconds (several times an hour). When all processes are stopped and restarted again the 30-90 seconds delay start happening when about 16-20+ processes are running. To me this sounds like something has been configured wrong. I already recommended my customer to find someone who is capable of configuring the RAID correctly; to me it sounds like a hardware/configuration issue. Any insights are very welcome. Hardware: card: MegaRAID SAS 9260-16i disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). RAID6 ~ 30TB Thanks for reading, John From aelder@sgi.com Mon Jul 18 17:09:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6IM9HBJ130444 for ; Mon, 18 Jul 2011 17:09:17 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5308BAC00A; Mon, 18 Jul 2011 15:09:14 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 18 Jul 2011 17:09:13 -0500 Subject: Re: [PATCH 0/2 v8] XFS TESTS: ENOSPC Punch Hole Test From: Alex Elder Reply-To: To: Allison Henderson CC: , , In-Reply-To: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> References: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 18 Jul 2011 17:09:13 -0500 Message-ID: <1311026953.2790.49.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-17 at 16:52 -0700, Allison Henderson wrote: > This patch set adds the ENOSPC test that was used for ext4 punch hole testing. > This test will verify that a hole can be punched even when the disk is full. > Reserved blocks should be used to complete the operation when there is not blocks > to further fragment the file. > > Because punching a hole does not always require extra blocks, there needs to > be several iterations of punching holes, and then filling the file system to 100% > usage before it is forced to grow the tree in order to handle the fragmentation. > The growing of the tree is what would cause ENOSPC if not for the use of reserved blocks. I have reviewed both of your updated patches. They both look good to me. I'll give it another day or two for others to comment if they like, but unless someone suggests changes I'll commit this for you. Reviewed-by: Alex Elder > Allison Henderson (2): > XFS TESTS: ENOSPC Punch Hole: Move su routines in 123 to common.rc > XFS TESTS: Add ENOSPC Hole Punch Test > > 123 | 24 ------------ > 256 | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ > 256.out | 1 + > common.rc | 81 +++++++++++++++++++++++++++++++++++++++++ > group | 12 ++++-- > 5 files changed, 210 insertions(+), 28 deletions(-) > create mode 100644 256 > create mode 100644 256.out > > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From sandeen@sandeen.net Mon Jul 18 19:00:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J00KXW133790 for ; Mon, 18 Jul 2011 19:00:20 -0500 X-ASG-Debug-ID: 1311033619-06e400920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.sandeen.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D54079D90 for ; Mon, 18 Jul 2011 17:00:19 -0700 (PDT) Received: from mail.sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 5YXusD5OXXe5XL9S for ; Mon, 18 Jul 2011 17:00:19 -0700 (PDT) Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher AES256-SHA (256/256 bits)) (No client certificate requested) by mail.sandeen.net (Postfix) with ESMTP id B73CF4964600; Mon, 18 Jul 2011 19:00:18 -0500 (CDT) Message-ID: <4E24C912.20003@sandeen.net> Date: Mon, 18 Jul 2011 19:00:18 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: John Bokma CC: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> In-Reply-To: <4E24907F.6020903@johnbokma.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1311033619 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69320 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/18/11 2:58 PM, John Bokma wrote: > Dear list members, > > A customer of mine is currently struggling with the performance of a > 30 TB RAID6 which uses XFS as the filing system. I am somewhat sure > it's not XFS that's causing the performance issue but my expertise is > not XFS nor RAID; I just wrote the software that after moving to the > larger RAID (from a much smaller one, ~ 3TB, using ext3) suddenly > seems to have a huge drop in write performance. > > The software I wrote writes many small (50-150K) files in parallel > (100+ processes), thousands of times per hour. Writing a file of > 50-150K now and then seems to take between 30 and 90 seconds, and > more rarely can take over 200 seconds (several times an hour). > > When all processes are stopped and restarted again the 30-90 seconds > delay start happening when about 16-20+ processes are running. > > To me this sounds like something has been configured wrong. I already > recommended my customer to find someone who is capable of configuring > the RAID correctly; to me it sounds like a hardware/configuration > issue. > > Any insights are very welcome. > > Hardware: card: MegaRAID SAS 9260-16i disks: 14x Barracuda® XT > ST33000651AS 3TB (2 hot spares). RAID6 ~ 30TB My first suggestion would be to check the partition alignment on the raid (if it is partitioned), and be sure it is aligned with the underlying raid geometry. And then make sure you give mkfs.xfs the proper geometry as well. After that, does the raid card have a battery-backed write cache? If so, you can safely disable barriers. More info is always good too, for starters what kernel & what xfsprogs version? What mkfs & mount options? -Eric > Thanks for reading, John > > _______________________________________________ xfs mailing list > xfs@oss.sgi.com http://oss.sgi.com/mailman/listinfo/xfs > From achender@linux.vnet.ibm.com Mon Jul 18 19:11:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J0BC74134180 for ; Mon, 18 Jul 2011 19:11:13 -0500 X-ASG-Debug-ID: 1311034271-3b5d03da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e4.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8C100ED58D0 for ; Mon, 18 Jul 2011 17:11:11 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by cuda.sgi.com with ESMTP id ZWEG5z23mF3FBsA2 for ; Mon, 18 Jul 2011 17:11:11 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6INmpmK032139 for ; Mon, 18 Jul 2011 19:48:51 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6J09sl1136750 for ; Mon, 18 Jul 2011 18:09:54 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6J09sf3022594 for ; Mon, 18 Jul 2011 18:09:54 -0600 Received: from lc4eb0185863151.ibm.com (sig-9-65-166-16.mts.ibm.com [9.65.166.16]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6J09qF7022550; Mon, 18 Jul 2011 18:09:53 -0600 Message-ID: <4E24CB50.7020506@linux.vnet.ibm.com> Date: Mon, 18 Jul 2011 17:09:52 -0700 From: Allison Henderson User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.17) Gecko/20110414 Thunderbird/3.1.10 MIME-Version: 1.0 To: aelder@sgi.com CC: linux-ext4@vger.kernel.org, linux-fsdevel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/2 v8] XFS TESTS: ENOSPC Punch Hole Test Subject: Re: [PATCH 0/2 v8] XFS TESTS: ENOSPC Punch Hole Test References: <1310946766-30217-1-git-send-email-achender@linux.vnet.ibm.com> <1311026953.2790.49.camel@doink> In-Reply-To: <1311026953.2790.49.camel@doink> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e4.ny.us.ibm.com[32.97.182.144] X-Barracuda-Start-Time: 1311034272 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/18/2011 03:09 PM, Alex Elder wrote: > On Sun, 2011-07-17 at 16:52 -0700, Allison Henderson wrote: >> This patch set adds the ENOSPC test that was used for ext4 punch hole testing. >> This test will verify that a hole can be punched even when the disk is full. >> Reserved blocks should be used to complete the operation when there is not blocks >> to further fragment the file. >> >> Because punching a hole does not always require extra blocks, there needs to >> be several iterations of punching holes, and then filling the file system to 100% >> usage before it is forced to grow the tree in order to handle the fragmentation. >> The growing of the tree is what would cause ENOSPC if not for the use of reserved blocks. > > I have reviewed both of your updated patches. They > both look good to me. I'll give it another day or > two for others to comment if they like, but unless > someone suggests changes I'll commit this for you. > > Reviewed-by: Alex Elder > Alrighty then, sounds good to me. Thanks Alex! Allison Henderson From david@fromorbit.com Mon Jul 18 20:24:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J1Ourh138008 for ; Mon, 18 Jul 2011 20:24:57 -0500 X-ASG-Debug-ID: 1311038693-55d702b60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AB4DF1E65081 for ; Mon, 18 Jul 2011 18:24:54 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id N4iKwXsnEMSwTCUO for ; Mon, 18 Jul 2011 18:24:54 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0DAH/ZJE55LCkBgWdsb2JhbABTp0kVAQEWJiXNFA6GLgSjTg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 10:54:52 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qiz3K-0001tv-JU; Tue, 19 Jul 2011 11:24:50 +1000 Date: Tue, 19 Jul 2011 11:24:50 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Subject: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Message-ID: <20110719012450.GG30254@dastard> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-2-git-send-email-david@fromorbit.com> <20110718160046.GA14094@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110718160046.GA14094@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311038695 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0310 1.0000 -1.8201 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.82 X-Barracuda-Spam-Status: No, SCORE=-1.82 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69326 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 12:00:46PM -0400, Christoph Hellwig wrote: > On Mon, Jul 18, 2011 at 01:49:47PM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > We currently have significant issues with the amount of stack that > > allocation in XFS uses, especially in the writeback path. We can > > easily consume 4k of stack between mapping the page, manipulating > > the bmap btree and allocating blocks from the free list. Not to > > mention btree block readahead and other functionality that issues IO > > in the allocation path. > > > > As a result, we can no longer fit allocation in the writeback path > > in the stack space provided on x86_64. To alleviate this problem, > > introduce an allocation workqueue and move all allocations to a > > seperate context. This can be easily added as an interposing layer > > into xfs_alloc_vextent(), which takes a single argument structure > > and does not return until the allocation is complete or has failed. > > I've mentioned before that I really don't like it, but I suspect there's > not much of an way around it giving the small stacks, and significant > amount of stacks that's already used above and below XFS. > > Can we at least have a sysctl nob or mount option to switch back to > direct allocator calls so that we can still debug any performance > or other issues with this one? Honestly, I'd prefer not to do that because it's a slippery slope. I've got plenty more "do stuff in the background via workqueues" patches lined up, so if we start adding knobs/mount options to turn each of them off "just in case there's an issue". So far I haven't found any issues at all and I've been running this split allocation stack like this in -all- my performance testing for the past 2-3 months. I know that is not conclusive, but if the bechmarks I've been using to improve XFS performance over the past 18 months don't show regressions, that's fairly indicative of the fact that most workloads won't even notice the change.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 18 20:25:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J1PBRt138057 for ; Mon, 18 Jul 2011 20:25:11 -0500 X-ASG-Debug-ID: 1311038708-072302c20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 61BB77C75E for ; Mon, 18 Jul 2011 18:25:09 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 7K8L9QiAMDxwjaVn for ; Mon, 18 Jul 2011 18:25:09 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0DAH/ZJE55LCkBgWdsb2JhbABTp0kVAQEWJiXNFA6GLgSjTg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 10:55:07 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qiz3b-0001u6-8m; Tue, 19 Jul 2011 11:25:07 +1000 Date: Tue, 19 Jul 2011 11:25:07 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Subject: Re: [PATCH 2/3] xfs: convert xfsbufd to use a workqueue Message-ID: <20110719012507.GH30254@dastard> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-3-git-send-email-david@fromorbit.com> <20110718160129.GB14094@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110718160129.GB14094@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311038710 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3268 1.0000 -0.2391 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.24 X-Barracuda-Spam-Status: No, SCORE=-0.24 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69326 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 12:01:29PM -0400, Christoph Hellwig wrote: > On Mon, Jul 18, 2011 at 01:49:48PM +1000, Dave Chinner wrote: > > control flushing. While there, group all the delayed write list and > > buffer handling functions into the same section of code to make it > > easier to find all the relevant code. > > Any chance you could make the re-grouping a separate patch? It's > really hard to read it right now as the actual changes are hidden too > much. OK. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 21:01:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J21HmQ139834 for ; Mon, 18 Jul 2011 21:01:18 -0500 X-ASG-Debug-ID: 1311040875-35d201b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5530D11EFD91 for ; Mon, 18 Jul 2011 19:01:15 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id raVcN1PORQ4OHuo4 for ; Mon, 18 Jul 2011 19:01:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QizcZ-00017b-3D; Tue, 19 Jul 2011 02:01:15 +0000 Date: Mon, 18 Jul 2011 22:01:15 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Message-ID: <20110719020115.GA4259@infradead.org> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310960419-9875-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311040876 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69327 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks good, Reviewed-by: Christoph Hellwig btw, patch 0 is missing from me, did anyone else get it? From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 21:02:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J22FYO139888 for ; Mon, 18 Jul 2011 21:02:16 -0500 X-ASG-Debug-ID: 1311040934-2bb9013d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2E8311E65070 for ; Mon, 18 Jul 2011 19:02:14 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id IBF2oFANIEOudQjl for ; Mon, 18 Jul 2011 19:02:14 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QizdW-0001F2-D9; Tue, 19 Jul 2011 02:02:14 +0000 Date: Mon, 18 Jul 2011 22:02:14 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Subject: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Message-ID: <20110719020214.GB4259@infradead.org> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-2-git-send-email-david@fromorbit.com> <20110718160046.GA14094@infradead.org> <20110719012450.GG30254@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719012450.GG30254@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311040935 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1298 1.0000 -1.2171 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.12 X-Barracuda-Spam-Status: No, SCORE=-1.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69328 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 11:24:50AM +1000, Dave Chinner wrote: > Honestly, I'd prefer not to do that because it's a slippery slope. > I've got plenty more "do stuff in the background via workqueues" > patches lined up, so if we start adding knobs/mount options to turn > each of them off "just in case there's an issue". > > So far I haven't found any issues at all and I've been running this > split allocation stack like this in -all- my performance testing for > the past 2-3 months. I know that is not conclusive, but if the > bechmarks I've been using to improve XFS performance over the past > 18 months don't show regressions, that's fairly indicative of the > fact that most workloads won't even notice the change.... Maybe. One thing I'd like to see is stuff like high-iop direct or O_SYNC I/O that actually calls the allocator. From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 21:03:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J23LGm139968 for ; Mon, 18 Jul 2011 21:03:21 -0500 X-ASG-Debug-ID: 1311040997-4dd9010f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2D8B77CDA1 for ; Mon, 18 Jul 2011 19:03:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id CKCMX7qpoJ5heW8O for ; Mon, 18 Jul 2011 19:03:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QizeX-0001GB-86; Tue, 19 Jul 2011 02:03:17 +0000 Date: Mon, 18 Jul 2011 22:03:17 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Subject: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Message-ID: <20110719020317.GC4259@infradead.org> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310960989-10284-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311040998 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0002 1.0000 -2.0198 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69328 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Generally looks okay, but doing a context switch in every log force might bite us. Less the general context switch overhead, but more the nasty interactions with cfq, which are causing huge problems for ext3/4, with no good way to fix them for workqueues. From david@fromorbit.com Mon Jul 18 22:05:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J35tXR142717 for ; Mon, 18 Jul 2011 22:05:55 -0500 X-ASG-Debug-ID: 1311044752-6f62023e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 490797CD1E for ; Mon, 18 Jul 2011 20:05:53 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id uZU8vnXqri9E0jra for ; Mon, 18 Jul 2011 20:05:53 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0DAB7yJE55LCkBgWdsb2JhbABTp0kVAQEWJiWIfMRbDoYuBKNO Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 12:35:52 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj0d5-00023m-3T; Tue, 19 Jul 2011 13:05:51 +1000 Date: Tue, 19 Jul 2011 13:05:51 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Subject: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Message-ID: <20110719030551.GK30254@dastard> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-4-git-send-email-david@fromorbit.com> <20110719020317.GC4259@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719020317.GC4259@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311044754 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0260 1.0000 -1.8526 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.85 X-Barracuda-Spam-Status: No, SCORE=-1.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 10:03:17PM -0400, Christoph Hellwig wrote: > Generally looks okay, but doing a context switch in every log force > might bite us. Less the general context switch overhead, but more > the nasty interactions with cfq, which are causing huge problems > for ext3/4, Quite frankly, I don't recommend CFQ unless you need block level throttling or use IO prioritisation seriously. CFQ is way too smart for it's own good trying to do everything for everyone, and as such suffers from different regressions every release. It has weird workload specific heuristics in it to try to address issues that don't solve the general class of problem, and so is always being patched to fix the next occurrence of the same problem. e.g. the IO stalls caused by dependent IOs being issued by different threads that ext3/4 fsync hits all the time. > with no good way to fix them for workqueues. Right, which I pointed out to them last time round of ext4 specific hacks that tried to tell the journal thread that it's IO had external depenencies. And let's face it - every time we move IO into a workqueue, we introduce new cases of IO dependencies between threads. e.g. anything waiting on a log force in progress is already dependent on dispatch from a different thread, so the xfssyncd xfsaild and busy extent log forces all will suffer to some extent from CFQ's existing deficiencies in this regard. Moving the log IO into a workqueue doesn't change this at all.... I'm of the opinion that anyone with a RAID controller with a BBWC doesn't need the smarts in CFQ because the BBWC provides a much larger and smarter IO re-order window than the Linux IO schedulers and hence do a better job of IO scheduling than Linux can ever do. We shouldn't penalise the target market for XFS for having fast storage by catering to difficiencies of IO schedulers that are mostly redundant for the hardware XFS typically runs on.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 22:10:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J3A6iM142885 for ; Mon, 18 Jul 2011 22:10:07 -0500 X-ASG-Debug-ID: 1311045005-53a003780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2A6B7CED2 for ; Mon, 18 Jul 2011 20:10:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 2Ez0wKZJy7y8qgtu for ; Mon, 18 Jul 2011 20:10:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qj0h9-0005k3-Ic; Tue, 19 Jul 2011 03:10:03 +0000 Date: Mon, 18 Jul 2011 23:10:03 -0400 From: Christoph Hellwig To: Dave Chinner Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/2] splice: i_mutex vs splice write deadlock Subject: Re: [PATCH 0/2] splice: i_mutex vs splice write deadlock Message-ID: <20110719031003.GA18166@infradead.org> References: <1310961884-11634-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1310961884-11634-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311045005 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I don't really like this very much. Not taking the i_mutex at all makes the splice_write method in XFS use different locking than everyone else, and different from the normal XFS write path. For example ocfs2 which has the same locking issues just has an own implementation of the splice_write method, which isn't too nice but at least marginally better. I think the right fix for both xfs and ocfs2 would be to have a generic_file_splice_write variant that takes an "actor" function pointer, which defaults to a smaller wrapper around file_remove_suid, file_update_time and splice_from_pipe_feed, and then XFS and ocfs2 can provide their own actors that add the additional locking. From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 18 22:11:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J3BnxO142955 for ; Mon, 18 Jul 2011 22:11:49 -0500 X-ASG-Debug-ID: 1311045108-331403580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 011FB1E6532D for ; Mon, 18 Jul 2011 20:11:48 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id IFfb79ThiMXou2jj for ; Mon, 18 Jul 2011 20:11:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qj0ip-0005rc-LH; Tue, 19 Jul 2011 03:11:47 +0000 Date: Mon, 18 Jul 2011 23:11:47 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Subject: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Message-ID: <20110719031147.GA22114@infradead.org> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-4-git-send-email-david@fromorbit.com> <20110719020317.GC4259@infradead.org> <20110719030551.GK30254@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719030551.GK30254@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311045109 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0822 1.0000 -1.5006 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.40 X-Barracuda-Spam-Status: No, SCORE=-1.40 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 01:05:51PM +1000, Dave Chinner wrote: > On Mon, Jul 18, 2011 at 10:03:17PM -0400, Christoph Hellwig wrote: > > Generally looks okay, but doing a context switch in every log force > > might bite us. Less the general context switch overhead, but more > > the nasty interactions with cfq, which are causing huge problems > > for ext3/4, > > Quite frankly, I don't recommend CFQ unless you need block level > throttling or use IO prioritisation seriously. CFQ is way too smart > for it's own good trying to do everything for everyone, and as such > suffers from different regressions every release. It has weird > workload specific heuristics in it to try to address issues that > don't solve the general class of problem, and so is always being > patched to fix the next occurrence of the same problem. e.g. the IO > stalls caused by dependent IOs being issued by different threads > that ext3/4 fsync hits all the time. I don't like CFQ very much either. But it's the default for both mainline Linux and all major distros, so screwing it means a major support burden as well as losing all kinds of benchmarks. > I'm of the opinion that anyone with a RAID controller with a BBWC > doesn't need the smarts in CFQ because the BBWC provides a much > larger and smarter IO re-order window than the Linux IO schedulers > and hence do a better job of IO scheduling than Linux can ever do. > We shouldn't penalise the target market for XFS for having fast > storage by catering to difficiencies of IO schedulers that are > mostly redundant for the hardware XFS typically runs on.... What penatlity do we get for doing the cil force in line from log force and only doing it in the background when it needs to be written because of filling up the buffers? From david@fromorbit.com Mon Jul 18 22:12:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J3Cutd143010 for ; Mon, 18 Jul 2011 22:12:56 -0500 X-ASG-Debug-ID: 1311045174-76fa01eb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B8267CEE1 for ; Mon, 18 Jul 2011 20:12:55 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id s1vIRJeLWCXbQFD7 for ; Mon, 18 Jul 2011 20:12:55 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0DAK31JE55LCkBgWdsb2JhbABTp0kVAQEWJiXNVA6GLgSjTg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 12:42:54 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj0js-00024Z-Ry; Tue, 19 Jul 2011 13:12:52 +1000 Date: Tue, 19 Jul 2011 13:12:52 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Message-ID: <20110719031252.GL30254@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <20110719020115.GA4259@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719020115.GA4259@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311045176 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0389 1.0000 -1.7699 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.77 X-Barracuda-Spam-Status: No, SCORE=-1.77 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 10:01:15PM -0400, Christoph Hellwig wrote: > Looks good, > > Reviewed-by: Christoph Hellwig > > btw, patch 0 is missing from me, did anyone else get it? Doesn't look like it came through on the list. I just checked my logs and it was accepted by my ISP, so I guess it got eaten somewhere along the way to the mailing list... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 18 22:14:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J3EXxc143079 for ; Mon, 18 Jul 2011 22:14:33 -0500 X-ASG-Debug-ID: 1311045270-76fa01f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 680DF7CEE7 for ; Mon, 18 Jul 2011 20:14:31 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id KaKuFnhQb6Z3ke5C for ; Mon, 18 Jul 2011 20:14:31 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av0DAK31JE55LCkBgWdsb2JhbABTp0kVAQEWJiXNVA6GLgSjTg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 12:44:30 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj0lR-000251-KD; Tue, 19 Jul 2011 13:14:29 +1000 Date: Tue, 19 Jul 2011 13:14:29 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Subject: Re: [PATCH 1/3] xfs: introduce an allocation workqueue Message-ID: <20110719031429.GM30254@dastard> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-2-git-send-email-david@fromorbit.com> <20110718160046.GA14094@infradead.org> <20110719012450.GG30254@dastard> <20110719020214.GB4259@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719020214.GB4259@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311045272 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0226 1.0000 -1.8745 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.87 X-Barracuda-Spam-Status: No, SCORE=-1.87 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69332 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 10:02:14PM -0400, Christoph Hellwig wrote: > On Tue, Jul 19, 2011 at 11:24:50AM +1000, Dave Chinner wrote: > > Honestly, I'd prefer not to do that because it's a slippery slope. > > I've got plenty more "do stuff in the background via workqueues" > > patches lined up, so if we start adding knobs/mount options to turn > > each of them off "just in case there's an issue". > > > > So far I haven't found any issues at all and I've been running this > > split allocation stack like this in -all- my performance testing for > > the past 2-3 months. I know that is not conclusive, but if the > > bechmarks I've been using to improve XFS performance over the past > > 18 months don't show regressions, that's fairly indicative of the > > fact that most workloads won't even notice the change.... > > Maybe. One thing I'd like to see is stuff like high-iop direct or > O_SYNC I/O that actually calls the allocator. What do you want me to run? I don't have any particularly high IOP hardware here, but I might be able to do something that just hits the BBWC.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Mon Jul 18 22:49:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J3nNqt145928 for ; Mon, 18 Jul 2011 22:49:23 -0500 X-ASG-Debug-ID: 1311047361-252400860000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B7B997D050 for ; Mon, 18 Jul 2011 20:49:21 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id hQDYW9lUPxODo2RP for ; Mon, 18 Jul 2011 20:49:21 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgIGAKb8JE55LCkBgWdsb2JhbABTmEmPABUBARYmJa1dn2iGPASjTg Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 13:19:20 +0930 Received: from chute ([192.168.1.1] helo=disappointment) by dastard with esmtp (Exim 4.72) (envelope-from ) id 1Qj1J4-00028j-5i for xfs@oss.sgi.com; Tue, 19 Jul 2011 13:49:14 +1000 Received: from dave by disappointment with local (Exim 4.76) (envelope-from ) id 1Qj1J3-0006ER-Sk for xfs@oss.sgi.com; Tue, 19 Jul 2011 13:49:13 +1000 From: Dave Chinner To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: fix modulo-by-zero error in fsx Subject: [PATCH] xfstests: fix modulo-by-zero error in fsx Date: Tue, 19 Jul 2011 13:49:13 +1000 Message-Id: <1311047353-23925-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 1.7.5.1 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311047362 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1309 1.0000 -1.2107 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.21 X-Barracuda-Spam-Status: No, SCORE=-1.21 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69334 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Dave Chinner The recent fsx fixes has a logic error in the offset trimming code. If a read is done when the file size is zero, then the logic error causes a offset % 0 opertaion to occur. This causes fsx to get a SIGFPE and die. This was not discovered during my testing because I was using a random seed that didn't trip this condition. Changing the seed to that which test 091 uses (the default of 1) causes such an operation to occur.... Signed-off-by: Dave Chinner --- ltp/fsx.c | 16 ++++++++-------- 1 files changed, 8 insertions(+), 8 deletions(-) diff --git a/ltp/fsx.c b/ltp/fsx.c index 771bcdc..d53c498 100644 --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -987,14 +987,14 @@ docloseopen(void) } } -#define TRIM_OFF_LEN(off, len, size, zero_offset) \ -do { \ - if (!zero_offset || file_size) \ - offset %= size; \ - else \ - offset = 0; \ - if (offset + len > size) \ - len = size - offset; \ +#define TRIM_OFF_LEN(off, len, size, allow_zero_file_size) \ +do { \ + if (allow_zero_file_size || file_size) \ + offset %= size; \ + else \ + offset = 0; \ + if (offset + len > size) \ + len = size - offset; \ } while (0) void -- 1.7.5.1 From david@fromorbit.com Mon Jul 18 23:07:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J47PeU147053 for ; Mon, 18 Jul 2011 23:07:25 -0500 X-ASG-Debug-ID: 1311048443-0cd001b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2FF6F11EFD44 for ; Mon, 18 Jul 2011 21:07:23 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id CBFCRhQapB61nTi7 for ; Mon, 18 Jul 2011 21:07:23 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Al8DAC8AJU55LCkBgWdsb2JhbABTp0kVAQEWJiXNZw6FT18EmxKIPw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 13:37:22 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj1ab-0002AR-DD; Tue, 19 Jul 2011 14:07:21 +1000 Date: Tue, 19 Jul 2011 14:07:21 +1000 From: Dave Chinner To: Christoph Hellwig Cc: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 0/2] splice: i_mutex vs splice write deadlock Subject: Re: [PATCH 0/2] splice: i_mutex vs splice write deadlock Message-ID: <20110719040721.GE31294@dastard> References: <1310961884-11634-1-git-send-email-david@fromorbit.com> <20110719031003.GA18166@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719031003.GA18166@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311048444 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0021 1.0000 -2.0070 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 11:10:03PM -0400, Christoph Hellwig wrote: > I don't really like this very much. Not taking the i_mutex at all > makes the splice_write method in XFS use different locking than > everyone else, and different from the normal XFS write path. > > For example ocfs2 which has the same locking issues just has an > own implementation of the splice_write method, which isn't > too nice but at least marginally better. I think the right > fix for both xfs and ocfs2 would be to have a generic_file_splice_write > variant that takes an "actor" function pointer, which defaults to > a smaller wrapper around file_remove_suid, file_update_time and > splice_from_pipe_feed, and then XFS and ocfs2 can provide their > own actors that add the additional locking. Yeah I thought about doing that, but wanted to try a simpler version first. I'll code up the actor variant. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 18 23:28:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_53 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J4Spj5147853 for ; Mon, 18 Jul 2011 23:28:52 -0500 X-ASG-Debug-ID: 1311049727-0cd0023b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D261615F6349 for ; Mon, 18 Jul 2011 21:28:47 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id bfT2oGyW24hRnHl6 for ; Mon, 18 Jul 2011 21:28:47 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Al8DAEMHJU55LCkBgWdsb2JhbABTp0kVAQEWJiWIfMQrDoVPXwSjUQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 13:58:46 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj1vJ-0002D5-64; Tue, 19 Jul 2011 14:28:45 +1000 Date: Tue, 19 Jul 2011 14:28:45 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Subject: Re: [PATCH 3/3] xfs: flush the CIL via a workqueue Message-ID: <20110719042845.GF31294@dastard> References: <1310960989-10284-1-git-send-email-david@fromorbit.com> <1310960989-10284-4-git-send-email-david@fromorbit.com> <20110719020317.GC4259@infradead.org> <20110719030551.GK30254@dastard> <20110719031147.GA22114@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719031147.GA22114@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311049730 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0037 1.0000 -1.9970 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.00 X-Barracuda-Spam-Status: No, SCORE=-2.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 11:11:47PM -0400, Christoph Hellwig wrote: > On Tue, Jul 19, 2011 at 01:05:51PM +1000, Dave Chinner wrote: > > On Mon, Jul 18, 2011 at 10:03:17PM -0400, Christoph Hellwig > > wrote: > > > Generally looks okay, but doing a context switch in every log > > > force might bite us. Less the general context switch > > > overhead, but more the nasty interactions with cfq, which are > > > causing huge problems for ext3/4, > > > > Quite frankly, I don't recommend CFQ unless you need block level > > throttling or use IO prioritisation seriously. CFQ is way too > > smart for it's own good trying to do everything for everyone, > > and as such suffers from different regressions every release. > > It has weird workload specific heuristics in it to try to > > address issues that don't solve the general class of problem, > > and so is always being patched to fix the next occurrence of the > > same problem. e.g. the IO stalls caused by dependent IOs being > > issued by different threads that ext3/4 fsync hits all the time. > > I don't like CFQ very much either. But it's the default for both > mainline Linux and all major distros, so screwing it means a major > support burden We never tuned for AS or really cared how it performed when it was the kernel and major distro default, either. The answer was always "don't use AS if you care about performance". That's the same advice major distro's give to their users of XFS w.r.t CFQ, anyway... > as well as losing all kinds of benchmarks. Do we really care about benchmarketing? I don't really... > > I'm of the opinion that anyone with a RAID controller with a BBWC > > doesn't need the smarts in CFQ because the BBWC provides a much > > larger and smarter IO re-order window than the Linux IO schedulers > > and hence do a better job of IO scheduling than Linux can ever do. > > We shouldn't penalise the target market for XFS for having fast > > storage by catering to difficiencies of IO schedulers that are > > mostly redundant for the hardware XFS typically runs on.... > > What penatlity do we get for doing the cil force in line from log > force and only doing it in the background when it needs to be > written because of filling up the buffers? I can make the log force code do the push in line, it just complicates things a little with the need for wrapper functions to handle the different calling conventions. The log force has to wait on the workqueue anyway (and will still have to do so even if it pushes directly itself), so doing the push work directly won't change the performance there at all. It's really the background push that I want out of line, so I'll rework it such that only the background push uses the workqueue. That should alleviate most of the concerns with fsync+CFQ. Cheers, Dave. -- Dave Chinner david@fromorbit.com From eflorac@intellique.com Tue Jul 19 03:37:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J8babY161631 for ; Tue, 19 Jul 2011 03:37:37 -0500 X-ASG-Debug-ID: 1311064653-179003420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BF8F07D63F for ; Tue, 19 Jul 2011 01:37:34 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id rLSn3gaONubyARK6 for ; Tue, 19 Jul 2011 01:37:34 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id 28E1EA628E; Tue, 19 Jul 2011 10:37:28 +0200 (CEST) Date: Tue, 19 Jul 2011 10:37:19 +0200 From: Emmanuel Florac To: John Bokma Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110719103719.18c4773f@galadriel.home> In-Reply-To: <4E24907F.6020903@johnbokma.com> References: <4E24907F.6020903@johnbokma.com> Organization: Intellique X-Mailer: Claws Mail 3.7.8 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1311064655 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69354 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Mon, 18 Jul 2011 14:58:55 -0500 vous =C3=A9criviez: > card: MegaRAID SAS 9260-16i > disks: 14x Barracuda=C2=AE XT ST33000651AS 3TB (2 hot spares). > RAID6 > ~ 30TB >=20 This card doesn't activate the write cache without a BBU present. Be sure you have a BBU or the performance will always be unbearably awful. Then proceed like Eric suggested. Initialize your filesystem with the right options : su=3D your RAID stripe size, sw=3D your RAID array data members (for RAID 6, the total number minus 2), don't forget the useful option -l lazy-count=3D1, and mount with nobarriers and inode64. BTW apparently you're confusing hot spares and parity drives. A RAID-6 array has 2 parity drives; then it may have or not 1 or more hot spares (generally one is enough). I suppose your array is actually a 12 data + 2 parity drives. regards, --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From markus.uckelmann@koeln.de Tue Jul 19 04:20:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6J9Kp5h163303 for ; Tue, 19 Jul 2011 04:20:51 -0500 X-ASG-Debug-ID: 1311067249-5bcd027d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sour.ops.eusc.inter.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A5F61150C7E1 for ; Tue, 19 Jul 2011 02:20:49 -0700 (PDT) Received: from sour.ops.eusc.inter.net (sour.ops.eusc.inter.net [84.23.254.154]) by cuda.sgi.com with ESMTP id n4oYW3OkRhJ6OsWC for ; Tue, 19 Jul 2011 02:20:49 -0700 (PDT) X-Trace: 507c6d61726b75732e6d65796572406b6f656c6e2e64657c38372e37392e323330 2e3130357c31516a3654762d3030303647522d416b7c31333131303637323437 Received: from sour.ops.eusc.inter.net ([10.154.10.22] helo=localhost) by sour.ops.eusc.inter.net with esmtpsa (Exim 4.72) id 1Qj6Tv-0006GR-Ak for xfs@oss.sgi.com; Tue, 19 Jul 2011 11:20:47 +0200 Message-ID: <4E254C6E.4090408@koeln.de> Date: Tue, 19 Jul 2011 11:20:46 +0200 From: Markus Uckelmann User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Corruption of in-memory data detected. Shutting down filesystem Subject: Corruption of in-memory data detected. Shutting down filesystem X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 87.79.230.105 X-SA-Exim-Mail-From: markus.uckelmann@koeln.de X-SA-Exim-Scanned: No (on sour.ops.eusc.inter.net); SAEximRunCond expanded to false X-Barracuda-Connect: sour.ops.eusc.inter.net[84.23.254.154] X-Barracuda-Start-Time: 1311067250 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69357 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi all, Occasionally I get the above error on one of our backup volumes. The volume is a LVM-volume which resides inside a crypted partition. We have three backup volumes, but only one has the problem. On this volume we backup tons of Subversion working copies, so that mostly very small files are on this volume. The error only appears when our backup via rdiff-backup is running. I currently work around this problem by unmounting the volume and mounting it again. I would appreciate your help. Let me know, if you need any further information. Some details kern.log > Jul 13 02:24:29 backupserver kernel: [679408.490589] Filesystem "dm-4": XFS internal error xfs_trans_cancel at line 1163 of file fs/xfs/xfs_trans.c. Caller 0xffffffffa0212709 > Jul 13 02:24:29 backupserver kernel: [679408.564416] Pid: 18658, comm: rdiff-backup Not tainted 2.6.26-2-amd64 0000001 > Jul 13 02:24:29 backupserver kernel: [679408.605393] > Jul 13 02:24:29 backupserver kernel: [679408.605394] Call Trace: > Jul 13 02:24:29 backupserver kernel: [679408.639377] [] :xfs:xfs_create+0x3ea/0x477 > Jul 13 02:24:29 backupserver kernel: [679408.674393] [] :xfs:xfs_trans_cancel+0x55/0xed > Jul 13 02:24:29 backupserver kernel: [679408.711940] [] :xfs:xfs_create+0x3ea/0x477 > Jul 13 02:24:29 backupserver kernel: [679408.758863] [] :xfs:xfs_attr_get+0x8d/0x9e > Jul 13 02:24:29 backupserver kernel: [679408.794026] [] :xfs:xfs_vn_mknod+0x159/0x247 > Jul 13 02:24:29 backupserver kernel: [679408.830013] [] vfs_create+0xcf/0x140 > Jul 13 02:24:29 backupserver kernel: [679408.862025] [] do_filp_open+0x1e3/0x7c4 > Jul 13 02:24:29 backupserver kernel: [679408.895520] [] do_sys_open+0x46/0xc3 > Jul 13 02:24:29 backupserver kernel: [679408.928542] [] system_call_after_swapgs+0x8a/0x8f > Jul 13 02:24:29 backupserver kernel: [679408.967513] > Jul 13 02:24:29 backupserver kernel: [679408.978394] xfs_force_shutdown(dm-4,0x8) called from line 1164 of file fs/xfs/xfs_trans.c. Return address = 0xffffffffa020ca67 > Jul 13 02:24:30 backupserver kernel: [679409.051147] Filesystem "dm-4": Corruption of in-memory data detected. Shutting down filesystem: dm-4 > Jul 13 02:24:30 backupserver kernel: [679409.106937] Please umount the filesystem, and rectify the problem(s) > Jul 13 02:24:33 backupserver kernel: [679412.440595] Filesystem "dm-4": xfs_log_force: error 5 returned. > Jul 13 02:24:54 backupserver kernel: [679433.470623] Filesystem "dm-4": xfs_log_force: error 5 returned. > [...] > Jul 13 09:53:48 backupserver kernel: [707379.613578] Filesystem "dm-4": xfs_log_force: error 5 returned. > Jul 13 09:53:48 backupserver kernel: [707379.673603] xfs_force_shutdown(dm-4,0x1) called from line 420 of file fs/xfs/xfs_rw.c. Return address = 0xffffffffa0214e2a > Jul 13 09:54:10 backupserver kernel: [707401.740318] Filesystem "dm-4": xfs_log_force: error 5 returned. > [...] > Jul 13 10:03:19 backupserver kernel: [707957.520753] Filesystem "dm-4": xfs_log_force: error 5 returned. > Jul 13 10:03:36 backupserver kernel: [707974.761993] Filesystem "dm-4": Disabling barriers, not supported by the underlying device > Jul 13 10:03:36 backupserver kernel: [707974.857711] XFS mounting filesystem dm-4 > Jul 13 10:03:36 backupserver kernel: [707975.126237] Starting XFS recovery on filesystem: dm-4 (logdev: internal) > Jul 13 10:03:50 backupserver kernel: [707991.756505] Ending XFS recovery on filesystem: dm-4 (logdev: internal) Kernel-version is 2.6.26-2-amd64 and the OS is a Debian Lenny. The system is up to date and I made sure that the hardware is running fine. Thanks and regards, Markus Uckelmann From sekharan@us.ibm.com Tue Jul 19 06:01:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JB1NRp167640 for ; Tue, 19 Jul 2011 06:01:24 -0500 X-ASG-Debug-ID: 1311072982-2c92026f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e34.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2165D7DA26 for ; Tue, 19 Jul 2011 03:56:22 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by cuda.sgi.com with ESMTP id MvUkJBTiK8EV0d9Y for ; Tue, 19 Jul 2011 03:56:22 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6J1NMZP029827 for ; Mon, 18 Jul 2011 19:23:22 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6J1aWEZ147818 for ; Mon, 18 Jul 2011 19:36:32 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6IJaVUB024086 for ; Mon, 18 Jul 2011 13:36:31 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6IJaVVV024082; Mon, 18 Jul 2011 13:36:31 -0600 X-ASG-Orig-Subj: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS Subject: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110716015412.GB589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012110.6629.52933.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716015412.GB589@infradead.org> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Mon, 18 Jul 2011 18:36:30 -0700 Message-ID: <1311039390.5505.10771.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e34.co.us.ibm.com[32.97.110.152] X-Barracuda-Start-Time: 1311072983 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks for the review Christoph, I will rebase to the latest git and resend the patches again with appropriate changes and reviewed-by. regards, chandra On Fri, 2011-07-15 at 21:54 -0400, Christoph Hellwig wrote: > Looks fine, > > Reviewed-by: Christoph Hellwig > From david@fromorbit.com Tue Jul 19 06:38:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JBcrnE169096 for ; Tue, 19 Jul 2011 06:38:53 -0500 X-ASG-Debug-ID: 1311075530-2c5c03db0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 542F77DE85 for ; Tue, 19 Jul 2011 04:38:51 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id GcINnI35NekN1eGz for ; Tue, 19 Jul 2011 04:38:51 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArIDAK1pJU55LCkBgWdsb2JhbABTp0kVAQEWJiWIfMQqDoYuBKNT Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 19 Jul 2011 21:08:48 +0930 Received: from dave by dastard with local (Exim 4.72) (envelope-from ) id 1Qj8dT-0002qS-Jm; Tue, 19 Jul 2011 21:38:47 +1000 Date: Tue, 19 Jul 2011 21:38:47 +1000 From: Dave Chinner To: Markus Uckelmann Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Corruption of in-memory data detected. Shutting down filesystem Subject: Re: Corruption of in-memory data detected. Shutting down filesystem Message-ID: <20110719113847.GP30254@dastard> References: <4E254C6E.4090408@koeln.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E254C6E.4090408@koeln.de> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311075532 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69365 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 11:20:46AM +0200, Markus Uckelmann wrote: > Hi all, > > Occasionally I get the above error on one of our backup volumes. The > volume is a LVM-volume which resides inside a crypted partition. We have > three backup volumes, but only one has the problem. On this volume we > backup tons of Subversion working copies, so that mostly very small > files are on this volume. The error only appears when our backup via > rdiff-backup is running. > > I currently work around this problem by unmounting the volume and > mounting it again. I would appreciate your help. Let me know, if you > need any further information. > > Some details > > kern.log > > Jul 13 02:24:29 backupserver kernel: [679408.490589] Filesystem "dm-4": XFS internal error xfs_trans_cancel at line 1163 of file fs/xfs/xfs_trans.c. Caller 0xffffffffa0212709 > > Jul 13 02:24:29 backupserver kernel: [679408.564416] Pid: 18658, comm: rdiff-backup Not tainted 2.6.26-2-amd64 0000001 > > Jul 13 02:24:29 backupserver kernel: [679408.605393] > > Jul 13 02:24:29 backupserver kernel: [679408.605394] Call Trace: > > Jul 13 02:24:29 backupserver kernel: [679408.639377] [] :xfs:xfs_create+0x3ea/0x477 > > Jul 13 02:24:29 backupserver kernel: [679408.674393] [] :xfs:xfs_trans_cancel+0x55/0xed > > Jul 13 02:24:29 backupserver kernel: [679408.711940] [] :xfs:xfs_create+0x3ea/0x477 > > Jul 13 02:24:29 backupserver kernel: [679408.758863] [] :xfs:xfs_attr_get+0x8d/0x9e > > Jul 13 02:24:29 backupserver kernel: [679408.794026] [] :xfs:xfs_vn_mknod+0x159/0x247 > > Jul 13 02:24:29 backupserver kernel: [679408.830013] [] vfs_create+0xcf/0x140 > > Jul 13 02:24:29 backupserver kernel: [679408.862025] [] do_filp_open+0x1e3/0x7c4 > > Jul 13 02:24:29 backupserver kernel: [679408.895520] [] do_sys_open+0x46/0xc3 > > Jul 13 02:24:29 backupserver kernel: [679408.928542] [] system_call_after_swapgs+0x8a/0x8f > > Jul 13 02:24:29 backupserver kernel: [679408.967513] > > Jul 13 02:24:29 backupserver kernel: [679408.978394] xfs_force_shutdown(dm-4,0x8) called from line 1164 of file fs/xfs/xfs_trans.c. Return address = 0xffffffffa020ca67 > > Jul 13 02:24:30 backupserver kernel: [679409.051147] Filesystem "dm-4": Corruption of in-memory data detected. Shutting down filesystem: dm-4 > > Jul 13 02:24:30 backupserver kernel: [679409.106937] Please umount the filesystem, and rectify the problem(s) > > Jul 13 02:24:33 backupserver kernel: [679412.440595] Filesystem "dm-4": xfs_log_force: error 5 returned. > > Jul 13 02:24:54 backupserver kernel: [679433.470623] Filesystem "dm-4": xfs_log_force: error 5 returned. > > [...] > > Jul 13 09:53:48 backupserver kernel: [707379.613578] Filesystem "dm-4": xfs_log_force: error 5 returned. > > Jul 13 09:53:48 backupserver kernel: [707379.673603] xfs_force_shutdown(dm-4,0x1) called from line 420 of file fs/xfs/xfs_rw.c. Return address = 0xffffffffa0214e2a > > Jul 13 09:54:10 backupserver kernel: [707401.740318] Filesystem "dm-4": xfs_log_force: error 5 returned. > > [...] > > Jul 13 10:03:19 backupserver kernel: [707957.520753] Filesystem "dm-4": xfs_log_force: error 5 returned. > > Jul 13 10:03:36 backupserver kernel: [707974.761993] Filesystem "dm-4": Disabling barriers, not supported by the underlying device > > Jul 13 10:03:36 backupserver kernel: [707974.857711] XFS mounting filesystem dm-4 > > Jul 13 10:03:36 backupserver kernel: [707975.126237] Starting XFS recovery on filesystem: dm-4 (logdev: internal) > > Jul 13 10:03:50 backupserver kernel: [707991.756505] Ending XFS recovery on filesystem: dm-4 (logdev: internal) > > > Kernel-version is 2.6.26-2-amd64 and the OS is a Debian Lenny. The > system is up to date and I made sure that the hardware is running fine. The main causes of this problem were fixed some time ago, but after 2.6.26 was released. IIRC it was in the 2.6.29-30 time frame. Upgrade your kernel.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 19 12:10:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JHAVwu182672 for ; Tue, 19 Jul 2011 12:10:32 -0500 X-ASG-Debug-ID: 1311095429-68fb02ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8F6D87FAC1; Tue, 19 Jul 2011 10:10:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Dnneofu6FQmOXRQc; Tue, 19 Jul 2011 10:10:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QjDoS-0000XW-L2; Tue, 19 Jul 2011 17:10:28 +0000 Date: Tue, 19 Jul 2011 13:10:28 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs: encapsulate a block of debug code Subject: Re: xfs: encapsulate a block of debug code Message-ID: <20110719171028.GA31088@infradead.org> References: <201107181814.p6IIEAZm028909@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107181814.p6IIEAZm028909@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311095430 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0134 1.0000 -1.9339 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.83 X-Barracuda-Spam-Status: No, SCORE=-1.83 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69388 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 18, 2011 at 01:14:09PM -0500, Alex Elder wrote: > Pull into a helper function some debug-only code that validates a > xfs_da_blkinfo structure that's been read from disk. > > Signed-off-by: Alex Elder > > --- > fs/xfs/xfs_da_btree.c | 31 ++++++++++++++++++++----------- > 1 file changed, 20 insertions(+), 11 deletions(-) > > Index: b/fs/xfs/xfs_da_btree.c > =================================================================== > --- a/fs/xfs/xfs_da_btree.c > +++ b/fs/xfs/xfs_da_btree.c > @@ -692,6 +692,24 @@ xfs_da_join(xfs_da_state_t *state) > return(error); > } > > +#ifdef DEBUG > +static void > +xfs_da_blkinfo_validate(struct xfs_da_blkinfo *blkinfo, __u16 level) I'm not sure the name is a good one. E.g. the forw/backw pointers really rely on this node not having any siblings. Which they shoudn't have here, but that's not generally true of any blkinfo. Otherwise looks fine. From BATV+ed8d7898ad31ec7661cc+2886+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 19 12:10:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JHAwJ4182696 for ; Tue, 19 Jul 2011 12:10:58 -0500 X-ASG-Debug-ID: 1311095456-2aee02130000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0AADD16825C5 for ; Tue, 19 Jul 2011 10:10:57 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id R9B9BPA1PU0STmdb for ; Tue, 19 Jul 2011 10:10:57 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QjDos-0000Xq-Ur; Tue, 19 Jul 2011 17:10:55 +0000 Date: Tue, 19 Jul 2011 13:10:54 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Subject: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Message-ID: <20110719171054.GB31088@infradead.org> References: <1311047353-23925-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311047353-23925-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311095458 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0026 1.0000 -2.0040 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.90 X-Barracuda-Spam-Status: No, SCORE=-1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69389 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 01:49:13PM +1000, Dave Chinner wrote: > From: Dave Chinner > > The recent fsx fixes has a logic error in the offset trimming code. > If a read is done when the file size is zero, then the logic error > causes a offset % 0 opertaion to occur. This causes fsx to get a > SIGFPE and die. > > This was not discovered during my testing because I was using a > random seed that didn't trip this condition. Changing the seed to > that which test 091 uses (the default of 1) causes such an operation > to occur.... Looks good, Reviewed-by: Christoph Hellwig From aelder@sgi.com Tue Jul 19 14:29:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JJTWnl191093; Tue, 19 Jul 2011 14:29:32 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 94A5C304032; Tue, 19 Jul 2011 12:29:26 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 19 Jul 2011 14:29:26 -0500 Subject: Re: [xfs-masters] [PATCH] xfs: failure mapping nfs fh to inode should return ESTALE From: Alex Elder Reply-To: To: "J. Bruce Fields" CC: Christoph Hellwig , , , In-Reply-To: <20110718133710.GB9741@fieldses.org> References: <20110714205036.GA19457@fieldses.org> <20110714223126.GA28694@infradead.org> <20110716015014.GF21663@dastard> <20110716015346.GA589@infradead.org> <20110718133710.GB9741@fieldses.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Jul 2011 14:29:25 -0500 Message-ID: <1311103765.1964.20.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-18 at 09:37 -0400, J. Bruce Fields wrote: > On Fri, Jul 15, 2011 at 09:53:46PM -0400, Christoph Hellwig wrote: > > On Sat, Jul 16, 2011 at 11:50:14AM +1000, Dave Chinner wrote: > > > Bulkstat also checks for ENOENT returns from xfs_iget() as the > > > lookup it does is inherently racy. That is, if the inode is > > > allocated when it is read from the IBT, but then has been unlinked > > > before the actual xfs_iget() call, it expects to get back an ENOENT > > > to tell it the inode has been unlinked and shouldn't be included in > > > the bulkstat output. Otherwise, it returns the error to userspace. > > > > > > So converting the mode checks to return ESTALE definitely has the > > > chance of breaking stuff that uses bulkstat (e.g. xfsdump) because > > > it will return errors now where it previously just skipped the > > > (unlinked) inode. > > > > Sounds like we should simply go with the original version of the patch > > then. > > OK. Let me know if someone needs that resent.... > > --b. No need. I'll use the original one. Thanks. -Alex From aelder@sgi.com Tue Jul 19 14:49:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JJnG3D191802 for ; Tue, 19 Jul 2011 14:49:16 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 242D88F8040; Tue, 19 Jul 2011 12:49:13 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 19 Jul 2011 14:49:12 -0500 Subject: Re: xfs: encapsulate a block of debug code From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110719171028.GA31088@infradead.org> References: <201107181814.p6IIEAZm028909@stout.americas.sgi.com> <20110719171028.GA31088@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Jul 2011 14:49:12 -0500 Message-ID: <1311104952.1964.24.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-19 at 13:10 -0400, Christoph Hellwig wrote: > On Mon, Jul 18, 2011 at 01:14:09PM -0500, Alex Elder wrote: > > Pull into a helper function some debug-only code that validates a > > xfs_da_blkinfo structure that's been read from disk. > > > > Signed-off-by: Alex Elder > > > > --- > > fs/xfs/xfs_da_btree.c | 31 ++++++++++++++++++++----------- > > 1 file changed, 20 insertions(+), 11 deletions(-) > > > > Index: b/fs/xfs/xfs_da_btree.c > > =================================================================== > > --- a/fs/xfs/xfs_da_btree.c > > +++ b/fs/xfs/xfs_da_btree.c > > @@ -692,6 +692,24 @@ xfs_da_join(xfs_da_state_t *state) > > return(error); > > } > > > > +#ifdef DEBUG > > +static void > > +xfs_da_blkinfo_validate(struct xfs_da_blkinfo *blkinfo, __u16 level) > > I'm not sure the name is a good one. E.g. the forw/backw pointers > really rely on this node not having any siblings. Which they shoudn't > have here, but that's not generally true of any blkinfo. > > Otherwise looks fine. > What about xfs_da_blkinfo_onlychild_validate()? It's pushing the limits of acceptable name length as far as I'm concerned though. Let me know if this is good enough, or if you have another idea. Thanks. -Alex From stan@hardwarefreak.com Tue Jul 19 17:37:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JMbTD0197009 for ; Tue, 19 Jul 2011 17:37:29 -0500 X-ASG-Debug-ID: 1311115047-552500f80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0D54817FE61D for ; Tue, 19 Jul 2011 15:37:27 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id vYLTG2GcBpOzDyhk for ; Tue, 19 Jul 2011 15:37:27 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 8F7EB6C0A3; Tue, 19 Jul 2011 17:37:26 -0500 (CDT) Message-ID: <4E260725.4040003@hardwarefreak.com> Date: Tue, 19 Jul 2011 17:37:25 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Emmanuel Florac CC: John Bokma , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> <20110719103719.18c4773f@galadriel.home> In-Reply-To: <20110719103719.18c4773f@galadriel.home> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311115048 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69410 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/19/2011 3:37 AM, Emmanuel Florac wrote: > Le Mon, 18 Jul 2011 14:58:55 -0500 vous écriviez: > >> card: MegaRAID SAS 9260-16i >> disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). >> RAID6 >> ~ 30TB > This card doesn't activate the write cache without a BBU present. Be > sure you have a BBU or the performance will always be unbearably awful. In addition to all the other recommendations, once the BBU is installed, disable the individual drive caches (if this isn't done automatically), and set the controller cache mode to 'write back'. The write through and direct I/O cache modes will deliver horrible RAID6 write performance. And, BTW, RAID6 is a horrible choice for a parallel, small file, high random I/O workload such as you've described. RAID10 would be much more suitable. Actually, any striped RAID is less than optimal for such a small file workload. The default stripe size for the LSI RAID controllers, IIRC, is 64KB. With 14 spindles of stripe width you end up with 64*14 = 896KB. XFS will try to pack as many of these 50-150K files into a single extent, but you're talking 6 to 18 files per extent, and this is wholly dependent on the parallel write pattern, and in which of the allocation groups XFS decides to write each file. XFS isn't going to be 100% efficient in this case. Thus, you will end up with many partial stripe width writes, eliminating much of the performance advantage of striping. These are large 7200 rpm SATA drives which have poor seek performance to begin with, unlike the 'small' 300GB 15k SAS drives. You're robbing that poor seek performance further by: 1. Using double parity striped RAID 2. Writing thousands of small files in parallel This workload is very similar to the case of a mail server using the maildir storage format. If you read the list archives you'll see recommendations for an optimal storage stack setup for this workload. It goes something like this: 1. Create a linear array of hardware RAID1 mirror sets. Do this all in the controller if it can do it. If not, use Linux RAID (mdadm) to create a '--linear' array of the multiple (7 in your case, apparently) hardware RAID1 mirror sets 2. Now let XFS handle the write parallelism. Format the resulting 7 spindle Linux RAID device with, for example: mkfs.xfs -d agcount=14 /dev/md0 By using this configuration you eliminate the excessive head seeking associated with the partial stripe write problems of RAID6, restoring performance efficiency to the array. Using 14 allocation groups allows XFS to write write, at minimum, 14 such files in parallel. This may not seem like a lot given you have ~200 writers, but it's actually far more than what you're getting now, or what you'll get with striped parity RAID. Consider the 150KB file case: 14*150KB = 2.1MB/s. Assuming this hardware and software stack can sink 210MB/s with this workload, that's ~1400 files written per second, or 84,000 files per hour. Would this be sufficient for your application? Now that we've covered the XFS and hardware RAID side of this equation, does your application run directly on the this machine, or are you writing over NFS or CIFS to this XFS filesystem? If so, that's another fly in the ointment we may have to deal with. -- Stan From aelder@sgi.com Tue Jul 19 18:03:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JN3nV9197806 for ; Tue, 19 Jul 2011 18:03:49 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id A77D4304032; Tue, 19 Jul 2011 16:03:45 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 19 Jul 2011 18:03:45 -0500 Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310960419-9875-2-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Jul 2011 18:03:44 -0500 Message-ID: <1311116624.1964.38.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > From: Dave Chinner > > Delayed logging can insert tens of thousands of log items into the > AIL at the same LSN. When the committing of log commit records > occur, we can get insertions occurring at an LSN that is not at the > end of the AIL. If there are thousands of items in the AIL on the > tail LSN, each insertion has to walk the AIL to find the correct > place to insert the new item into the AIL. This can consume large > amounts of CPU time and block other operations from occurring while > the traversals are in progress. > > To avoid this repeated walk, use a AIL cursor to record > where we should be inserting the new items into the AIL without > having to repeat the walk. The cursor infrastructure already > provides this functionality for push walks, so is a simple extension > of existing code. While this will not avoid the initial walk, it > will avoid repeating it tens of thousands of times during a single > checkpoint commit. > > This version includes logic improvements from Christoph Hellwig. > > Signed-off-by: Dave Chinner I think there's a case that can be improved (though it isn't wrong as-is), and assuming I'm right, I have provided a modified splice function (not tested), below. But if you don't want to change anything, this code looks OK to me, so: Reviewed-by: Alex Elder . . . > + > +/* > + * splice the log item list into the AIL at the given LSN. We splice to the > + * tail of the given LSN to maintain insert order for push traversals. The > + * cursor is optional, allowing repeated updates to the same LSN to avoid > + * repeated traversals. > */ > static void > xfs_ail_splice( > - struct xfs_ail *ailp, > - struct list_head *list, > - xfs_lsn_t lsn) > + struct xfs_ail *ailp, > + struct xfs_ail_cursor *cur, > + struct list_head *list, > + xfs_lsn_t lsn) > { > - xfs_log_item_t *next_lip; > + struct xfs_log_item *lip = cur ? cur->item : NULL; > + struct xfs_log_item *next_lip; > > - /* If the list is empty, just insert the item. */ > - if (list_empty(&ailp->xa_ail)) { > - list_splice(list, &ailp->xa_ail); > - return; > + /* > + * Get a new cursor if we don't have a placeholder or the existing one > + * has been invalidated. > + */ > + if (!lip || (__psint_t)lip & 1) { > + lip = __xfs_trans_ail_cursor_last(ailp, lsn); > + > + if (!lip) { > + /* The list is empty, so just splice and return. */ > + if (cur) > + cur->item = NULL; If the AIL was empty, I think we still want to make the cursor point to the end of the list that's being spliced in, don't we? > + list_splice(list, &ailp->xa_ail); > + return; > + } > } > > - list_for_each_entry_reverse(next_lip, &ailp->xa_ail, li_ail) { > - if (XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0) > - break; > + /* > + * Our cursor points to the item we want to insert _after_, so we have > + * to update the cursor to point to the end of the list we are splicing > + * in so that it points to the correct location for the next splice. > + * i.e. before the splice > + * > + * lsn -> lsn -> lsn + x -> lsn + x ... > + * ^ > + * | cursor points here > + * > + * After the splice we have: > + * > + * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... > + * ^ ^ > + * | cursor points here | needs to move here > + * > + * So we set the cursor to the last item in the list to be spliced > + * before we execute the splice, resulting in the cursor pointing to > + * the correct item after the splice occurs. > + */ > + if (cur) { > + next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); > + cur->item = next_lip; > } > - > - ASSERT(&next_lip->li_ail == &ailp->xa_ail || > - XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0); > - > - list_splice_init(list, &next_lip->li_ail); > + list_splice(list, &lip->li_ail); > } > > /* So assuming my comment above is right, how about this: static void xfs_ail_splice( struct xfs_ail *ailp, struct xfs_ail_cursor *cur, struct list_head *list, xfs_lsn_t lsn) { struct xfs_log_item *lip; /* * Use the cursor to determine the insertion point if one is * provided. */ lip = cur ? cur->item : NULL; if (!lip || (__psint_t) lip & 1) lip = __xfs_trans_ail_cursor_last(ailp, lsn); /* * If a cursor is provided, we know we're processing the AIL * in lsn order, and future items to be spliced in will * follow the last one being inserted now. Update the * cursor to point to that last item, now while we have a * reliable pointer to it. */ if (cur) cur->item = list_entry(list->prev, struct xfs_log_item, li_ail); /* * Finally perform the splice. Unless the AIL was empty, * lip points to the item in the AIL _after_ which the new * items should go. If lip is null the AIL was empty, so * the new items go at the head of the AIL. */ if (lip) list_splice(list, &lip->li_ail); else list_splice(list, &ailp->xa_ail); } From aelder@sgi.com Tue Jul 19 18:03:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JN3tSc197822 for ; Tue, 19 Jul 2011 18:03:55 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9012DAC001; Tue, 19 Jul 2011 16:03:51 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 19 Jul 2011 18:03:50 -0500 Subject: Re: [PATCH 2/4] xfs: remove confusing ail cursor wrapper From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310960419-9875-3-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-3-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Jul 2011 18:03:50 -0500 Message-ID: <1311116630.1964.39.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > From: Dave Chinner > > xfs_trans_ail_cursor_set() doesn't set the cursor to the current log > item, it sets it to the next item. There is already a function for > doing this - xfs_trans_ail_cursor_next() - and the _set function is > simply a two line wrapper. Remove it and open code the setting of > the cursor in the two locations that call it to remove the > confusion. > > Signed-off-by: Dave Chinner > Reviewed-by: Christoph Hellwig I already reviewed this but I do see you did a tiny change or two. In any case, this (still) looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 19 18:03:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JN3vWS197833 for ; Tue, 19 Jul 2011 18:03:57 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1FECD304051; Tue, 19 Jul 2011 16:03:57 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 19 Jul 2011 18:03:56 -0500 Subject: Re: [PATCH 3/4] xfs: convert AIL cursors to use struct list_head From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1310960419-9875-4-git-send-email-david@fromorbit.com> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-4-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Tue, 19 Jul 2011 18:03:56 -0500 Message-ID: <1311116636.1964.40.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > From: Dave Chinner > > The list of active AIL cursors uses a roll-your-own linked list with > special casing for the AIL push cursor. Simplify this code by > replacing the list with standard struct list_head lists, and use a > separate list_head to track the active cursors. This allows us to > treat the AIL push cursor as a generic cursor rather than as a > special case, further simplifying the code. > > Further, fix the duplicate push cursor initialisation that the > special case handling was hiding, and clean up all the comments > around the active cursor list handling. > > Signed-off-by: Dave Chinner > Reviewed-by: Christoph Hellwig You didn't fix one thing I mentioned before in a comment. I can fix that for you if you like. Other than that, this looks good. Reviewed-by: Alex Elder > --- > fs/xfs/xfs_trans_ail.c | 77 ++++++++++++++++------------------------------- > fs/xfs/xfs_trans_priv.h | 4 +- > 2 files changed, 28 insertions(+), 53 deletions(-) > > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > index 7908c79..8cd329b 100644 > --- a/fs/xfs/xfs_trans_ail.c > +++ b/fs/xfs/xfs_trans_ail.c . . . > @@ -181,17 +177,12 @@ xfs_trans_ail_cursor_init( . . . > - * Get the next item in the traversal and advance the cursor. > - * If the cursor was invalidated (inidicated by a lip of 1), > - * restart the traversal. > + * Get the next item in the traversal and advance the cursor. If the cursor > + * was invalidated (indicated by a lip of 1), restart the traversal. * was invalidated (indicated by its item pointer's low bit being set), * restart the traversal. > */ > struct xfs_log_item * > xfs_trans_ail_cursor_next( . . . From david@fromorbit.com Tue Jul 19 18:36:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JNaoa3198870 for ; Tue, 19 Jul 2011 18:36:50 -0500 X-ASG-Debug-ID: 1311118607-6c1f01640000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 788EF17FEF15 for ; Tue, 19 Jul 2011 16:36:48 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id okXJryKb7QN4sVly for ; Tue, 19 Jul 2011 16:36:48 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoDAPARJk55LCkBgWdsb2JhbABUp1oVAQEWJiXMWg6FT18Eo1Q Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 20 Jul 2011 09:06:46 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjJqG-0001KO-Eo; Wed, 20 Jul 2011 09:36:44 +1000 Date: Wed, 20 Jul 2011 09:36:44 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Message-ID: <20110719233644.GB9359@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <1311116624.1964.38.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311116624.1964.38.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1311118609 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0279 1.0000 -1.8404 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.84 X-Barracuda-Spam-Status: No, SCORE=-1.84 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69414 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 06:03:44PM -0500, Alex Elder wrote: > On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > Delayed logging can insert tens of thousands of log items into the > > AIL at the same LSN. When the committing of log commit records > > occur, we can get insertions occurring at an LSN that is not at the > > end of the AIL. If there are thousands of items in the AIL on the > > tail LSN, each insertion has to walk the AIL to find the correct > > place to insert the new item into the AIL. This can consume large > > amounts of CPU time and block other operations from occurring while > > the traversals are in progress. > > > > To avoid this repeated walk, use a AIL cursor to record > > where we should be inserting the new items into the AIL without > > having to repeat the walk. The cursor infrastructure already > > provides this functionality for push walks, so is a simple extension > > of existing code. While this will not avoid the initial walk, it > > will avoid repeating it tens of thousands of times during a single > > checkpoint commit. > > > > This version includes logic improvements from Christoph Hellwig. > > > > Signed-off-by: Dave Chinner > > I think there's a case that can be improved (though > it isn't wrong as-is), and assuming I'm right, I have > provided a modified splice function (not tested), below. > > But if you don't want to change anything, this code > looks OK to me, so: > > Reviewed-by: Alex Elder > > . . . > > > + > > +/* > > + * splice the log item list into the AIL at the given LSN. We splice to the > > + * tail of the given LSN to maintain insert order for push traversals. The > > + * cursor is optional, allowing repeated updates to the same LSN to avoid > > + * repeated traversals. > > */ > > static void > > xfs_ail_splice( > > - struct xfs_ail *ailp, > > - struct list_head *list, > > - xfs_lsn_t lsn) > > + struct xfs_ail *ailp, > > + struct xfs_ail_cursor *cur, > > + struct list_head *list, > > + xfs_lsn_t lsn) > > { > > - xfs_log_item_t *next_lip; > > + struct xfs_log_item *lip = cur ? cur->item : NULL; > > + struct xfs_log_item *next_lip; > > > > - /* If the list is empty, just insert the item. */ > > - if (list_empty(&ailp->xa_ail)) { > > - list_splice(list, &ailp->xa_ail); > > - return; > > + /* > > + * Get a new cursor if we don't have a placeholder or the existing one > > + * has been invalidated. > > + */ > > + if (!lip || (__psint_t)lip & 1) { > > + lip = __xfs_trans_ail_cursor_last(ailp, lsn); > > + > > + if (!lip) { > > + /* The list is empty, so just splice and return. */ > > + if (cur) > > + cur->item = NULL; > > If the AIL was empty, I think we still want to > make the cursor point to the end of the list that's > being spliced in, don't we? Not sure - we do get different LSNs in the same commit and the insertions are interleaved. Hence I was defensive here and revalidate the cursor on the next use of it. > > + cur->item = next_lip; > > } > > - > > - ASSERT(&next_lip->li_ail == &ailp->xa_ail || > > - XFS_LSN_CMP(next_lip->li_lsn, lsn) <= 0); > > - > > - list_splice_init(list, &next_lip->li_ail); > > + list_splice(list, &lip->li_ail); > > } > > > > /* > > > So assuming my comment above is right, how about this: > > static void > xfs_ail_splice( > struct xfs_ail *ailp, > struct xfs_ail_cursor *cur, > struct list_head *list, > xfs_lsn_t lsn) > { > struct xfs_log_item *lip; > > /* > * Use the cursor to determine the insertion point if one is > * provided. > */ > lip = cur ? cur->item : NULL; > if (!lip || (__psint_t) lip & 1) > lip = __xfs_trans_ail_cursor_last(ailp, lsn); > > /* > * If a cursor is provided, we know we're processing the AIL > * in lsn order, and future items to be spliced in will > * follow the last one being inserted now. Update the > * cursor to point to that last item, now while we have a > * reliable pointer to it. > */ > if (cur) > cur->item = list_entry(list->prev, struct xfs_log_item, > li_ail); > > /* > * Finally perform the splice. Unless the AIL was empty, > * lip points to the item in the AIL _after_ which the new > * items should go. If lip is null the AIL was empty, so > * the new items go at the head of the AIL. > */ > if (lip) > list_splice(list, &lip->li_ail); > else > list_splice(list, &ailp->xa_ail); > } Looks cleaner, but I'll need to test it. Right now all my test resources are busy with non-mainline stuff, so it's going to be next week sometime before I can do this. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 19 18:43:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6JNhSLQ199198 for ; Tue, 19 Jul 2011 18:43:28 -0500 X-ASG-Debug-ID: 1311119006-79fb03320000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DDD29150D1F7 for ; Tue, 19 Jul 2011 16:43:27 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id JN0vvs1tu920bdjU for ; Tue, 19 Jul 2011 16:43:27 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoDAHAVJk55LCkBgWdsb2JhbABUp1oVAQEWJiXNKg6FT18EmxWIPw Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 20 Jul 2011 09:13:26 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjJwi-0001L0-N5; Wed, 20 Jul 2011 09:43:24 +1000 Date: Wed, 20 Jul 2011 09:43:24 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/4] xfs: convert AIL cursors to use struct list_head Subject: Re: [PATCH 3/4] xfs: convert AIL cursors to use struct list_head Message-ID: <20110719234324.GC9359@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-4-git-send-email-david@fromorbit.com> <1311116636.1964.40.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311116636.1964.40.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1311119007 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0069 1.0000 -1.9759 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.98 X-Barracuda-Spam-Status: No, SCORE=-1.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69415 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 06:03:56PM -0500, Alex Elder wrote: > On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > The list of active AIL cursors uses a roll-your-own linked list with > > special casing for the AIL push cursor. Simplify this code by > > replacing the list with standard struct list_head lists, and use a > > separate list_head to track the active cursors. This allows us to > > treat the AIL push cursor as a generic cursor rather than as a > > special case, further simplifying the code. > > > > Further, fix the duplicate push cursor initialisation that the > > special case handling was hiding, and clean up all the comments > > around the active cursor list handling. > > > > Signed-off-by: Dave Chinner > > Reviewed-by: Christoph Hellwig > > You didn't fix one thing I mentioned before in a comment. > I can fix that for you if you like. Other than that, this > looks good. > > Reviewed-by: Alex Elder > > > --- > > fs/xfs/xfs_trans_ail.c | 77 ++++++++++++++++------------------------------- > > fs/xfs/xfs_trans_priv.h | 4 +- > > 2 files changed, 28 insertions(+), 53 deletions(-) > > > > diff --git a/fs/xfs/xfs_trans_ail.c b/fs/xfs/xfs_trans_ail.c > > index 7908c79..8cd329b 100644 > > --- a/fs/xfs/xfs_trans_ail.c > > +++ b/fs/xfs/xfs_trans_ail.c > > . . . > > > @@ -181,17 +177,12 @@ xfs_trans_ail_cursor_init( > > . . . > > > - * Get the next item in the traversal and advance the cursor. > > - * If the cursor was invalidated (inidicated by a lip of 1), > > - * restart the traversal. > > + * Get the next item in the traversal and advance the cursor. If the cursor > > + * was invalidated (indicated by a lip of 1), restart the traversal. > * was invalidated (indicated by its item pointer's low bit being set), > * restart the traversal. I thought I fixed that. Hmmmm, I did fix a comment that said the same thing - just it wasn't the one you noticed. :/ I'll fix it up when I redo the splice code again. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+99f6900f670fabd05a27+2887+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 19 19:15:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K0FYYY200556 for ; Tue, 19 Jul 2011 19:15:35 -0500 X-ASG-Debug-ID: 1311120933-500f03900000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B264D17FE5DD; Tue, 19 Jul 2011 17:15:33 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id IOevH91NbdMZZkvp; Tue, 19 Jul 2011 17:15:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QjKRn-0004OA-1U; Wed, 20 Jul 2011 00:15:31 +0000 Date: Tue, 19 Jul 2011 20:15:31 -0400 From: Christoph Hellwig To: Dave Chinner Cc: Alex Elder , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Message-ID: <20110720001530.GA13475@infradead.org> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <1311116624.1964.38.camel@doink> <20110719233644.GB9359@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110719233644.GB9359@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311120933 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3243 1.0000 -0.2489 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.15 X-Barracuda-Spam-Status: No, SCORE=-0.15 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69416 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 09:36:44AM +1000, Dave Chinner wrote: > Looks cleaner, but I'll need to test it. Right now all my test > resources are busy with non-mainline stuff, so it's going to be next > week sometime before I can do this. Given that the merge window is about to open how about putting in the current version for now and doing a cleanup patch on top later on? From david@fromorbit.com Tue Jul 19 19:20:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K0KvQV200685 for ; Tue, 19 Jul 2011 19:20:58 -0500 X-ASG-Debug-ID: 1311121255-6b04003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 142E8150D648 for ; Tue, 19 Jul 2011 17:20:56 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id r3WVXx2Eu9z0yb2g for ; Tue, 19 Jul 2011 17:20:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoDAHocJk55LCkBgWdsb2JhbABUp1oVAQEWJiWIfMQVDoVPXwSjVA Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 20 Jul 2011 09:50:55 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjKWz-0001P5-5R; Wed, 20 Jul 2011 10:20:53 +1000 Date: Wed, 20 Jul 2011 10:20:53 +1000 From: Dave Chinner To: Stan Hoeppner Cc: Emmanuel Florac , xfs@oss.sgi.com, John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110720002053.GD9359@dastard> References: <4E24907F.6020903@johnbokma.com> <20110719103719.18c4773f@galadriel.home> <4E260725.4040003@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4E260725.4040003@hardwarefreak.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1311121257 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 05:37:25PM -0500, Stan Hoeppner wrote: > On 7/19/2011 3:37 AM, Emmanuel Florac wrote: > > Le Mon, 18 Jul 2011 14:58:55 -0500 vous écriviez: > > > >> card: MegaRAID SAS 9260-16i > >> disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). > >> RAID6 > >> ~ 30TB > > > This card doesn't activate the write cache without a BBU present. Be > > sure you have a BBU or the performance will always be unbearably awful. > > In addition to all the other recommendations, once the BBU is installed, > disable the individual drive caches (if this isn't done automatically), > and set the controller cache mode to 'write back'. The write through > and direct I/O cache modes will deliver horrible RAID6 write performance. > > And, BTW, RAID6 is a horrible choice for a parallel, small file, high > random I/O workload such as you've described. RAID10 would be much more > suitable. Actually, any striped RAID is less than optimal for such a > small file workload. The default stripe size for the LSI RAID > controllers, IIRC, is 64KB. With 14 spindles of stripe width you end up > with 64*14 = 896KB. All good up to here. > XFS will try to pack as many of these 50-150K files > into a single extent, but you're talking 6 to 18 files per extent, I think you've got your terminology wrong. An extent can only belong to a single inode, but an inode can contain many extents, as can a stripe width. We do not pack data from multiple files into a single extent. For new files on a su/sw aware filesystem, however, XFS will *not* pack multiple files into the same stripe unit. It will try to align the first extent of the file to sunit, or if you have the swalloc mount option set and the allocation is for more than a swidth of space it will align to swidth rather than sunit. So if you have a small file workload, specifying sunit/swidth can actually -decrease- performance because it allocates the file extents sparsely. IOWs, stripe alignment is important for bandwidth intensive applications because it allows full stripe writes to occur much more frequently, but can be harmful to small file performance as the aligned allocation pattern can prevent full stripe writes from occurring..... > and > this is wholly dependent on the parallel write pattern, and in which of > the allocation groups XFS decides to write each file. That's pretty much irrelevant for small files as a single allocation is done for each file during writeback. > XFS isn't going > to be 100% efficient in this case. Thus, you will end up with many > partial stripe width writes, eliminating much of the performance > advantage of striping. Yes, that's the ultimate problem, but not for the reasons you suggested. ;) > These are large 7200 rpm SATA drives which have poor seek performance to > begin with, unlike the 'small' 300GB 15k SAS drives. You're robbing > that poor seek performance further by: > > 1. Using double parity striped RAID > 2. Writing thousands of small files in parallel The writing in parallel is only an issue if it is direct or synchronous IO. If it's using normal buffered writes, then writeback is mostly single threaded and delayed allocation should be preventing fragmentation completely. That still doesn't guarantee that writeback avoids RAID RMW cycles (see above about allocation alignment). > This workload is very similar to the case of a mail server using the > maildir storage format. There's not enough detail in the workload description to make that assumption. > If you read the list archives you'll see > recommendations for an optimal storage stack setup for this workload. > It goes something like this: > > 1. Create a linear array of hardware RAID1 mirror sets. > Do this all in the controller if it can do it. > If not, use Linux RAID (mdadm) to create a '--linear' array of the > multiple (7 in your case, apparently) hardware RAID1 mirror sets > > 2. Now let XFS handle the write parallelism. Format the resulting > 7 spindle Linux RAID device with, for example: > > mkfs.xfs -d agcount=14 /dev/md0 > > By using this configuration you eliminate the excessive head seeking > associated with the partial stripe write problems of RAID6, restoring > performance efficiency to the array. Using 14 allocation groups allows > XFS to write write, at minimum, 14 such files in parallel. That's not correct. 14 AG means that if the files are laid out across all AGs then there can be 14 -allocations- in parallel at once. If Io does not require allocation, then they don't serialise at all on the AGs. IOWs, If allocation takes 1ms of work in an AG, then you could have 1,000 allocations per second per AG. With 14 AGs, that gives allocation capability of up to 14,000/s And given that not all writes require allocation and allocation is usually only a small percentage of the total IO time. You can have many, many more write IOs in flight than you can do allocations in an AG.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 19 19:21:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K0LwgM200714 for ; Tue, 19 Jul 2011 19:21:58 -0500 X-ASG-Debug-ID: 1311121316-6aea02610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E9BC180F4A for ; Tue, 19 Jul 2011 17:21:56 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id UceNyJStxAkDwgyy for ; Tue, 19 Jul 2011 17:21:56 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoDAHocJk55LCkBgWdsb2JhbABUp1oVAQEWJiXNEQ6FT18Eo1Q Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 20 Jul 2011 09:51:56 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjKXy-0001PD-TZ; Wed, 20 Jul 2011 10:21:54 +1000 Date: Wed, 20 Jul 2011 10:21:54 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Alex Elder , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion Message-ID: <20110720002154.GE9359@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <1311116624.1964.38.camel@doink> <20110719233644.GB9359@dastard> <20110720001530.GA13475@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110720001530.GA13475@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1311121317 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1624 1.0000 -1.0317 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.03 X-Barracuda-Spam-Status: No, SCORE=-1.03 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69418 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 08:15:31PM -0400, Christoph Hellwig wrote: > On Wed, Jul 20, 2011 at 09:36:44AM +1000, Dave Chinner wrote: > > Looks cleaner, but I'll need to test it. Right now all my test > > resources are busy with non-mainline stuff, so it's going to be next > > week sometime before I can do this. > > Given that the merge window is about to open how about putting in the > current version for now and doing a cleanup patch on top later on? I'm happy with that.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From stan@hardwarefreak.com Wed Jul 20 00:16:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K5GJ3D214014 for ; Wed, 20 Jul 2011 00:16:19 -0500 X-ASG-Debug-ID: 1311138977-50a800380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DB88D1E6683A for ; Tue, 19 Jul 2011 22:16:17 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id S8Cog6kQ59jts3fX for ; Tue, 19 Jul 2011 22:16:17 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 587CE6C0CA; Wed, 20 Jul 2011 00:16:16 -0500 (CDT) Message-ID: <4E26649F.7040202@hardwarefreak.com> Date: Wed, 20 Jul 2011 00:16:15 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: Emmanuel Florac , xfs@oss.sgi.com, John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> <20110719103719.18c4773f@galadriel.home> <4E260725.4040003@hardwarefreak.com> <20110720002053.GD9359@dastard> In-Reply-To: <20110720002053.GD9359@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311138977 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69436 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/19/2011 7:20 PM, Dave Chinner wrote: > On Tue, Jul 19, 2011 at 05:37:25PM -0500, Stan Hoeppner wrote: >> On 7/19/2011 3:37 AM, Emmanuel Florac wrote: >>> Le Mon, 18 Jul 2011 14:58:55 -0500 vous écriviez: >>> >>>> card: MegaRAID SAS 9260-16i >>>> disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). >>>> RAID6 >>>> ~ 30TB >> >>> This card doesn't activate the write cache without a BBU present. Be >>> sure you have a BBU or the performance will always be unbearably awful. >> >> In addition to all the other recommendations, once the BBU is installed, >> disable the individual drive caches (if this isn't done automatically), >> and set the controller cache mode to 'write back'. The write through >> and direct I/O cache modes will deliver horrible RAID6 write performance. >> >> And, BTW, RAID6 is a horrible choice for a parallel, small file, high >> random I/O workload such as you've described. RAID10 would be much more >> suitable. Actually, any striped RAID is less than optimal for such a >> small file workload. The default stripe size for the LSI RAID >> controllers, IIRC, is 64KB. With 14 spindles of stripe width you end up >> with 64*14 = 896KB. > > All good up to here. And then my lack of understanding of XFS internals begins to show. :( >> XFS will try to pack as many of these 50-150K files >> into a single extent, but you're talking 6 to 18 files per extent, > I think you've got your terminology wrong. An extent can only belong > to a single inode, but an inode can contain many extents, as can a > stripe width. We do not pack data from multiple files into a single > extent. Yes, I think I meant stripe unit, the 896KB. > For new files on a su/sw aware filesystem, however, XFS will *not* > pack multiple files into the same stripe unit. It will try to align > the first extent of the file to sunit, or if you have the swalloc > mount option set and the allocation is for more than a swidth of > space it will align to swidth rather than sunit. Interesting. Didn't realize this. > So if you have a small file workload, specifying sunit/swidth can > actually -decrease- performance because it allocates the file > extents sparsely. IOWs, stripe alignment is important for bandwidth > intensive applications because it allows full stripe writes to occur > much more frequently, but can be harmful to small file performance > as the aligned allocation pattern can prevent full stripe writes > from occurring..... I don't recall reading this before Dave. Thank you for this tidbit. How much performance decrease are we looking at here? An mkfs.xfs of an mdraid striped array will by default create sunit/swidth values right? And thus this lower performance w/small files. >> and >> this is wholly dependent on the parallel write pattern, and in which of >> the allocation groups XFS decides to write each file. > > That's pretty much irrelevant for small files as a single allocation > is done for each file during writeback. I believe I was already thinking of the concatenated array at this point and accidentally dropped those thoughts into the striped array discussion. >> XFS isn't going >> to be 100% efficient in this case. Thus, you will end up with many >> partial stripe width writes, eliminating much of the performance >> advantage of striping. > > Yes, that's the ultimate problem, but not for the reasons you > suggested. ;) Thanks for saving me Dave. :) I had the big picture right but FUBAR'd some of the details. Maybe there's a job in politics waiting for me. ;) >> These are large 7200 rpm SATA drives which have poor seek performance to >> begin with, unlike the 'small' 300GB 15k SAS drives. You're robbing >> that poor seek performance further by: >> >> 1. Using double parity striped RAID >> 2. Writing thousands of small files in parallel > > The writing in parallel is only an issue if it is direct or > synchronous IO. If it's using normal buffered writes, then writeback > is mostly single threaded and delayed allocation should be preventing > fragmentation completely. That still doesn't guarantee that > writeback avoids RAID RMW cycles (see above about allocation > alignment). The RMW was mainly what I was concerned with here. >> This workload is very similar to the case of a mail server using the >> maildir storage format. > > There's not enough detail in the workload description to make that > assumption. Good point. I should have said "at first glance... seems similar". >> If you read the list archives you'll see >> recommendations for an optimal storage stack setup for this workload. >> It goes something like this: >> >> 1. Create a linear array of hardware RAID1 mirror sets. >> Do this all in the controller if it can do it. >> If not, use Linux RAID (mdadm) to create a '--linear' array of the >> multiple (7 in your case, apparently) hardware RAID1 mirror sets >> >> 2. Now let XFS handle the write parallelism. Format the resulting >> 7 spindle Linux RAID device with, for example: >> >> mkfs.xfs -d agcount=14 /dev/md0 >> >> By using this configuration you eliminate the excessive head seeking >> associated with the partial stripe write problems of RAID6, restoring >> performance efficiency to the array. Using 14 allocation groups allows >> XFS to write write, at minimum, 14 such files in parallel. > > That's not correct. 14 AG means that if the files are laid out > across all AGs then there can be 14 -allocations- in parallel at > once. If Io does not require allocation, then they don't serialise > at all on the AGs. IOWs, If allocation takes 1ms of work in an AG, > then you could have 1,000 allocations per second per AG. With 14 > AGs, that gives allocation capability of up to 14,000/s So are you saying that we have no guarantee, nor high probability, that the small files in this case will be spread out across all AGs, thus making more efficient use of each disk's performance in the concatenated array, vs a striped array? Or, are you merely pointing out a detail I have incorrect, which I've yet to fully understand? > And given that not all writes require allocation and allocation is > usually only a small percentage of the total IO time. You can have > many, many more write IOs in flight than you can do allocations in > an AG.... Ahh, I think I see your point. For the maildir case, more of the IO is likely due to things like updating message flags, etc, than actually writing new mail files into the directory. Such operations don't require allocation. With the workload mentioned by the OP, it's possible that all of the small file writes may indeed require allocation, unlike the maildir workload. But if this is the case, wouldn't the concatenated array still yield better overall performance than RAID6, or any other striped array? If I misunderstood your last point, or any points, please guide me to the light Dave. -- Stan From david@fromorbit.com Wed Jul 20 01:44:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K6iUA3217668 for ; Wed, 20 Jul 2011 01:44:30 -0500 X-ASG-Debug-ID: 1311144265-60b303380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 65A16820CC for ; Tue, 19 Jul 2011 23:44:26 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id MslUVswoHvepi6hp for ; Tue, 19 Jul 2011 23:44:26 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AukDADp3Jk55LCkBgWdsb2JhbABTp2AVAQEWJiWIfMRCDoYvBKNd Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 20 Jul 2011 16:14:23 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjQW4-0001vm-5S; Wed, 20 Jul 2011 16:44:20 +1000 Date: Wed, 20 Jul 2011 16:44:19 +1000 From: Dave Chinner To: Stan Hoeppner Cc: Emmanuel Florac , xfs@oss.sgi.com, John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110720064419.GG9359@dastard> References: <4E24907F.6020903@johnbokma.com> <20110719103719.18c4773f@galadriel.home> <4E260725.4040003@hardwarefreak.com> <20110720002053.GD9359@dastard> <4E26649F.7040202@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4E26649F.7040202@hardwarefreak.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1311144268 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0158 1.0000 -1.9181 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69442 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 12:16:15AM -0500, Stan Hoeppner wrote: > On 7/19/2011 7:20 PM, Dave Chinner wrote: > > On Tue, Jul 19, 2011 at 05:37:25PM -0500, Stan Hoeppner wrote: > >> On 7/19/2011 3:37 AM, Emmanuel Florac wrote: > >>> Le Mon, 18 Jul 2011 14:58:55 -0500 vous écriviez: > >>> > >>>> card: MegaRAID SAS 9260-16i > >>>> disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). > >>>> RAID6 > >>>> ~ 30TB > >> > >>> This card doesn't activate the write cache without a BBU present. Be > >>> sure you have a BBU or the performance will always be unbearably awful. > >> > >> In addition to all the other recommendations, once the BBU is installed, > >> disable the individual drive caches (if this isn't done automatically), > >> and set the controller cache mode to 'write back'. The write through > >> and direct I/O cache modes will deliver horrible RAID6 write performance. > >> > >> And, BTW, RAID6 is a horrible choice for a parallel, small file, high > >> random I/O workload such as you've described. RAID10 would be much more > >> suitable. Actually, any striped RAID is less than optimal for such a > >> small file workload. The default stripe size for the LSI RAID > >> controllers, IIRC, is 64KB. With 14 spindles of stripe width you end up > >> with 64*14 = 896KB. > > > > All good up to here. > > And then my lack of understanding of XFS internals begins to show. :( The fact you are trying to understand them is the important bit! .... > > So if you have a small file workload, specifying sunit/swidth can > > actually -decrease- performance because it allocates the file > > extents sparsely. IOWs, stripe alignment is important for bandwidth > > intensive applications because it allows full stripe writes to occur > > much more frequently, but can be harmful to small file performance > > as the aligned allocation pattern can prevent full stripe writes > > from occurring..... > > I don't recall reading this before Dave. Thank you for this tidbit. I'm sure I've said this before, but it's possible I've said it this time in away that is obvious and understandable. Most people struggle with the concept of allocation alignment and why it might be important, let alone understand it well enough to discuss intricate details of the allocator and tuning it for different workloads... > How much performance decrease are we looking at here? Depends on your hardware and the workload. It may not be measurable, it may be very noticable. benchmarking your system with your workload is the only way to really know. > An mkfs.xfs of an > mdraid striped array will by default create sunit/swidth values right? > And thus this lower performance w/small files. In general, sunit/swidth being specified provides a better tradeoff for maintaining consistent performance on files across the filesystem. it might cost a little for small files, but unaligned IO on large files cause much more noticable performace problems... .... > >> If you read the list archives you'll see > >> recommendations for an optimal storage stack setup for this workload. > >> It goes something like this: > >> > >> 1. Create a linear array of hardware RAID1 mirror sets. > >> Do this all in the controller if it can do it. > >> If not, use Linux RAID (mdadm) to create a '--linear' array of the > >> multiple (7 in your case, apparently) hardware RAID1 mirror sets > >> > >> 2. Now let XFS handle the write parallelism. Format the resulting > >> 7 spindle Linux RAID device with, for example: > >> > >> mkfs.xfs -d agcount=14 /dev/md0 > >> > >> By using this configuration you eliminate the excessive head seeking > >> associated with the partial stripe write problems of RAID6, restoring > >> performance efficiency to the array. Using 14 allocation groups allows > >> XFS to write write, at minimum, 14 such files in parallel. > > > > That's not correct. 14 AG means that if the files are laid out > > across all AGs then there can be 14 -allocations- in parallel at > > once. If Io does not require allocation, then they don't serialise > > at all on the AGs. IOWs, If allocation takes 1ms of work in an AG, > > then you could have 1,000 allocations per second per AG. With 14 > > AGs, that gives allocation capability of up to 14,000/s > > So are you saying that we have no guarantee, nor high probability, that > the small files in this case will be spread out across all AGs, thus > making more efficient use of each disk's performance in the concatenated > array, vs a striped array? Or, are you merely pointing out a detail I > have incorrect, which I've yet to fully understand? Yet to fully understand. It's not limited to small files, either. XFS doesn't guarantee that specific allocations are evenly distributed across AGs, but it does try to spread the overall contents of the filesystem across all AGs. It does have concepts of locality of reference, but they change depending on the allocator in use. Take, for example, inode32 vs inode64 which are the two most common allocation strategies and assume we have a 16TB fs with 1TB AGs. The inode32 allocator will place all inodes and most directory metadata in the first AG, below one TB. There is basically no metadata allocation parallelism in this strategy, so metadata performance is limited and will often serialise. Metadata tends to have good locality of reference - all directories and inodes will tend to be close together on disk because they are in the same AG. Data, on the other had is rotored around AGs 2-16 on a per file basis, so there is no locality between inodes and their data, nor of data between two adjacent files in the same directory. There is, however, data allocation parallelism because files are spread across allocation groups... Hence for inode32, metadata is closely located, but data is spread out widely. Hence metadata operations don't scale at all well on a linear concat (e.g. hit only one disk/mirror pair), but data allocations are spread effectively and hence parallelise and scale quite well. The downside to this is that data lookups involve large seeks if you have a stripe, and hence can be quite slow. Data reads on a linear concat are not guaranteed to evenly load the disks, either, simply because there's no correlation between the location of the data and the access patterns. For inode64, locality of reference clusters around the directory structure. The inodes for files in a directory will be allocated in the same AG as the directory inode, and the data for each file will be allocated in the same AG as the file inodes. When you create a new directory, it gets placed in a different AG, and the pattern repeats. So for inode64, distributing files across all AGs is caused by distributing the directory structure. FWIW, an example is a kernel source tree: ~/src/kern/xfsdev$ find . -type d -exec sudo xfs_bmap -v {} \; | awk '/ 0: / { print $4 }' |sort -n |uniq -c 76 0 66 1 85 2 81 3 82 4 69 5 89 6 74 7 90 8 81 9 96 10 84 11 85 12 84 13 86 14 71 15 As you can see, there's a relatively even spread of the directories across all 16 AGs in that directory structure, and the file data will follow this pattern. Because of it's better metadata<->data locality of reference, inode64 tends to be signficantly faster on workloads that mix metadata operations with data operations (e.g. recursive grep across a kernel source tree) as the seek cost between the inode and it's data is much less than for inode32.... However, if youre workload does not spread across directories, then IO will tend to be limited to specific silos in the linear concat while other disks sit idle. If you have a stripe, then the seeks to get to the data are small, and hence much faster than inode32 on similar workloads. This is all ignoring stripe aligned allocation - that is often lost in the noise comapred to bigger issues like seeking from AG 0 to AG 15 when reading the inode then the data or having a workload only use a single AG because it is all confined to a single directory. IOWs, the best, most optimal filesystem layout and allocation stratgey is both workload and hardware dependent, and there's no one right answer. The defaults select the best balance for typical usage - beyond that benchmarking the workload is the only way to really measure whether your tweaks are the right ones or not. IOWs, you need to understand the filesystem, your storage hardware and -the application IO patterns- to make the right tuning decisions. > > And given that not all writes require allocation and allocation is > > usually only a small percentage of the total IO time. You can have > > many, many more write IOs in flight than you can do allocations in > > an AG.... > > Ahh, I think I see your point. For the maildir case, more of the IO is > likely due to things like updating message flags, etc, than actually > writing new mail files into the directory. I wasn't really talking about maildir here, just pointing out that allocation is generally not the limiting factor in doing large amounts of concurrent write IO. > Such operations don't > require allocation. With the workload mentioned by the OP, it's > possible that all of the small file writes may indeed require > allocation, unlike the maildir workload. But if this is the case, > wouldn't the concatenated array still yield better overall performance > than RAID6, or any other striped array? Quite possibly, butI can't say conclusively - I simply don't know enough about the workload or the fs configuration. Cheers, Dave. -- Dave Chinner david@fromorbit.com From markus.uckelmann@koeln.de Wed Jul 20 04:41:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K9fZmi223076 for ; Wed, 20 Jul 2011 04:41:36 -0500 X-ASG-Debug-ID: 1311154893-1d1001700000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sour.ops.eusc.inter.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D82B982B37 for ; Wed, 20 Jul 2011 02:41:33 -0700 (PDT) Received: from sour.ops.eusc.inter.net (sour.ops.eusc.inter.net [84.23.254.154]) by cuda.sgi.com with ESMTP id Kz9E3K6eWqfmQMoe for ; Wed, 20 Jul 2011 02:41:33 -0700 (PDT) X-Trace: 507c6d61726b75732e6d65796572406b6f656c6e2e64657c37382e33352e323337 2e33327c31516a5448552d3030304454392d4e437c31333131313534383838 Received: from sour.ops.eusc.inter.net ([10.154.10.22] helo=localhost) by sour.ops.eusc.inter.net with esmtpsa (Exim 4.72) id 1QjTHU-000DT9-NC for xfs@oss.sgi.com; Wed, 20 Jul 2011 11:41:28 +0200 Message-ID: <4E26A2C8.1010900@koeln.de> Date: Wed, 20 Jul 2011 11:41:28 +0200 From: Markus Uckelmann User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Corruption of in-memory data detected. Shutting down filesystem Subject: Re: Corruption of in-memory data detected. Shutting down filesystem References: <4E254C6E.4090408@koeln.de> <20110719113847.GP30254@dastard> In-Reply-To: <20110719113847.GP30254@dastard> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-SA-Exim-Connect-IP: 78.35.237.32 X-SA-Exim-Mail-From: markus.uckelmann@koeln.de X-SA-Exim-Scanned: No (on sour.ops.eusc.inter.net); SAEximRunCond expanded to false X-Barracuda-Connect: sour.ops.eusc.inter.net[84.23.254.154] X-Barracuda-Start-Time: 1311154894 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2095 1.0000 -0.7779 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.78 X-Barracuda-Spam-Status: No, SCORE=-0.78 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Am 19.07.2011 13:38, schrieb Dave Chinner: Hi Dave, > The main causes of this problem were fixed some time ago, but after > 2.6.26 was released. IIRC it was in the 2.6.29-30 time frame. > Upgrade your kernel.... Thanks a lot. One more reason to get this box up-to-date ;) Cheers, Markus From markus.uckelmann@koeln.de Wed Jul 20 04:48:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6K9mB5S223301 for ; Wed, 20 Jul 2011 04:48:12 -0500 X-ASG-Debug-ID: 1311155290-2cf300be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from sour.ops.eusc.inter.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 638C482BC9 for ; Wed, 20 Jul 2011 02:48:10 -0700 (PDT) Received: from sour.ops.eusc.inter.net (sour.ops.eusc.inter.net [84.23.254.154]) by cuda.sgi.com with ESMTP id PWRpk3JqQW5H3kaE for ; Wed, 20 Jul 2011 02:48:10 -0700 (PDT) X-Trace: 507c6d61726b75732e6d65796572406b6f656c6e2e64657c37382e33352e323337 2e33327c31516a544e782d3030304545742d4b757c31333131313535323839 Received: from sour.ops.eusc.inter.net ([10.154.10.22] helo=localhost) by sour.ops.eusc.inter.net with esmtpsa (Exim 4.72) id 1QjTNx-000EEt-Ku for xfs@oss.sgi.com; Wed, 20 Jul 2011 11:48:09 +0200 Message-ID: <4E26A458.6000103@koeln.de> Date: Wed, 20 Jul 2011 11:48:08 +0200 From: Markus Uckelmann User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Corruption of in-memory data detected. Shutting down filesystem Subject: Re: Corruption of in-memory data detected. Shutting down filesystem References: <4E254C6E.4090408@koeln.de> <20110719113847.GP30254@dastard> In-Reply-To: <20110719113847.GP30254@dastard> X-Enigmail-Version: 1.1.2 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-SA-Exim-Connect-IP: 78.35.237.32 X-SA-Exim-Mail-From: markus.uckelmann@koeln.de X-SA-Exim-Scanned: No (on sour.ops.eusc.inter.net); SAEximRunCond expanded to false X-Barracuda-Connect: sour.ops.eusc.inter.net[84.23.254.154] X-Barracuda-Start-Time: 1311155291 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0211 1.0000 -1.8840 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.88 X-Barracuda-Spam-Status: No, SCORE=-1.88 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Am 19.07.2011 13:38, schrieb Dave Chinner: Hi Dave, > The main causes of this problem were fixed some time ago, but after > 2.6.26 was released. IIRC it was in the 2.6.29-30 time frame. > Upgrade your kernel.... Thanks a lot. One more reason to get this box up-to-date ;) Cheers, Markus From stan@hardwarefreak.com Wed Jul 20 07:10:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KCAmWi229160 for ; Wed, 20 Jul 2011 07:10:48 -0500 X-ASG-Debug-ID: 1311163847-592c03da0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C3F658373E for ; Wed, 20 Jul 2011 05:10:47 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id cqAjJgQZSAbsySNt for ; Wed, 20 Jul 2011 05:10:47 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id BCDDD6C119; Wed, 20 Jul 2011 07:10:46 -0500 (CDT) Message-ID: <4E26C5C5.1090802@hardwarefreak.com> Date: Wed, 20 Jul 2011 07:10:45 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: Emmanuel Florac , xfs@oss.sgi.com, John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> <20110719103719.18c4773f@galadriel.home> <4E260725.4040003@hardwarefreak.com> <20110720002053.GD9359@dastard> <4E26649F.7040202@hardwarefreak.com> <20110720064419.GG9359@dastard> In-Reply-To: <20110720064419.GG9359@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311163847 X-Barracuda-Bayes: INNOCENT GLOBAL 0.1296 1.0000 -1.2178 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.12 X-Barracuda-Spam-Status: No, SCORE=-1.12 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69464 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/20/2011 1:44 AM, Dave Chinner wrote: > On Wed, Jul 20, 2011 at 12:16:15AM -0500, Stan Hoeppner wrote: >> On 7/19/2011 7:20 PM, Dave Chinner wrote: >>> On Tue, Jul 19, 2011 at 05:37:25PM -0500, Stan Hoeppner wrote: >>>> On 7/19/2011 3:37 AM, Emmanuel Florac wrote: >>>>> Le Mon, 18 Jul 2011 14:58:55 -0500 vous écriviez: >>>>> >>>>>> card: MegaRAID SAS 9260-16i >>>>>> disks: 14x Barracuda® XT ST33000651AS 3TB (2 hot spares). >>>>>> RAID6 >>>>>> ~ 30TB >>>> >>>>> This card doesn't activate the write cache without a BBU present. Be >>>>> sure you have a BBU or the performance will always be unbearably awful. >>>> >>>> In addition to all the other recommendations, once the BBU is installed, >>>> disable the individual drive caches (if this isn't done automatically), >>>> and set the controller cache mode to 'write back'. The write through >>>> and direct I/O cache modes will deliver horrible RAID6 write performance. >>>> >>>> And, BTW, RAID6 is a horrible choice for a parallel, small file, high >>>> random I/O workload such as you've described. RAID10 would be much more >>>> suitable. Actually, any striped RAID is less than optimal for such a >>>> small file workload. The default stripe size for the LSI RAID >>>> controllers, IIRC, is 64KB. With 14 spindles of stripe width you end up >>>> with 64*14 = 896KB. >>> >>> All good up to here. >> >> And then my lack of understanding of XFS internals begins to show. :( > > The fact you are trying to understand them is the important bit! I've always found XFS fascinating (as with most of SGI's creations). The more I use XFS, and the more I participate here, the more I want to understand how the cogs turn. And as you mentioned previously, it's beneficial to this list if users can effectively answer other users' questions, giving devs more time for developing. :) > .... >>> So if you have a small file workload, specifying sunit/swidth can >>> actually -decrease- performance because it allocates the file >>> extents sparsely. IOWs, stripe alignment is important for bandwidth >>> intensive applications because it allows full stripe writes to occur >>> much more frequently, but can be harmful to small file performance >>> as the aligned allocation pattern can prevent full stripe writes >>> from occurring..... >> >> I don't recall reading this before Dave. Thank you for this tidbit. > > I'm sure I've said this before, but it's possible I've said it this > time in away that is obvious and understandable. Most people > struggle with the concept of allocation alignment and why it might be > important, let alone understand it well enough to discuss intricate > details of the allocator and tuning it for different workloads... In general I've understood for quite some time that large stripes were typically bad for small file performance due to the partial stripe write issue. However, I misunderstood something you said quite some time ago about XFS having some tricks to somewhat mitigate partial stripe writes during writeback. I thought this was packing multiple small files into a single stripe write, which you just explained XFS does not do. Thinking back you were probably talking about some other aggregation that occurs in the allocator to cut down on the number of physical IOs required to write the data, or something like that. ... >> An mkfs.xfs of an >> mdraid striped array will by default create sunit/swidth values right? >> And thus this lower performance w/small files. > > In general, sunit/swidth being specified provides a better tradeoff > for maintaining consistent performance on files across the > filesystem. it might cost a little for small files, but unaligned IO > on large files cause much more noticable performace problems... The reason I asked is to get something in Google. If a user has a purely small file workload, such as maildir, but insists on using an mdraid striped array, would it be better to override the mkfs.xfs defaults here so sunit/swidth aren't defined? If so, would one specify zero for each parameter on the command line? > .... > >>>> If you read the list archives you'll see >>>> recommendations for an optimal storage stack setup for this workload. >>>> It goes something like this: >>>> >>>> 1. Create a linear array of hardware RAID1 mirror sets. >>>> Do this all in the controller if it can do it. >>>> If not, use Linux RAID (mdadm) to create a '--linear' array of the >>>> multiple (7 in your case, apparently) hardware RAID1 mirror sets >>>> >>>> 2. Now let XFS handle the write parallelism. Format the resulting >>>> 7 spindle Linux RAID device with, for example: >>>> >>>> mkfs.xfs -d agcount=14 /dev/md0 >>>> >>>> By using this configuration you eliminate the excessive head seeking >>>> associated with the partial stripe write problems of RAID6, restoring >>>> performance efficiency to the array. Using 14 allocation groups allows >>>> XFS to write write, at minimum, 14 such files in parallel. >>> >>> That's not correct. 14 AG means that if the files are laid out >>> across all AGs then there can be 14 -allocations- in parallel at >>> once. If Io does not require allocation, then they don't serialise >>> at all on the AGs. IOWs, If allocation takes 1ms of work in an AG, >>> then you could have 1,000 allocations per second per AG. With 14 >>> AGs, that gives allocation capability of up to 14,000/s >> >> So are you saying that we have no guarantee, nor high probability, that >> the small files in this case will be spread out across all AGs, thus >> making more efficient use of each disk's performance in the concatenated >> array, vs a striped array? Or, are you merely pointing out a detail I >> have incorrect, which I've yet to fully understand? > > Yet to fully understand. It's not limited to small files, either. > > XFS doesn't guarantee that specific allocations are evenly > distributed across AGs, but it does try to spread the overall > contents of the filesystem across all AGs. It does have concepts of > locality of reference, but they change depending on the allocator in > use. > > Take, for example, inode32 vs inode64 which are the two most common > allocation strategies and assume we have a 16TB fs with 1TB AGs. > The inode32 allocator will place all inodes and most directory > metadata in the first AG, below one TB. There is basically no > metadata allocation parallelism in this strategy, so metadata > performance is limited and will often serialise. Metadata tends to > have good locality of reference - all directories and inodes will > tend to be close together on disk because they are in the same AG. I'd forgotten this. I do recall discussions of all the directories and inodes being in the first 1TB on an inode32 filesystem. IIRC, those were focused on people "running out of space" when they still had many hundreds of Gigs or a TB free, simply because they ran out of space for inodes. Until now I hadn't tied this together with the potential metadata performance issue, and specifically with a linear concat setup. > Data, on the other had is rotored around AGs 2-16 on a per file > basis, so there is no locality between inodes and their data, nor of > data between two adjacent files in the same directory. There is, > however, data allocation parallelism because files are spread > across allocation groups... > > Hence for inode32, metadata is closely located, but data is spread > out widely. Hence metadata operations don't scale at all well on a > linear concat (e.g. hit only one disk/mirror pair), but data > allocations are spread effectively and hence parallelise and scale > quite well. The downside to this is that data lookups involve large > seeks if you have a stripe, and hence can be quite slow. Data reads > on a linear concat are not guaranteed to evenly load the disks, > either, simply because there's no correlation between the location > of the data and the access patterns. Got it. > For inode64, locality of reference clusters around the directory > structure. The inodes for files in a directory will be allocated in > the same AG as the directory inode, and the data for each file will > be allocated in the same AG as the file inodes. When you create a > new directory, it gets placed in a different AG, and the pattern > repeats. So for inode64, distributing files across all AGs is caused > by distributing the directory structure. And this is why maildir works very well with a linear concat on an inode64 filesystem, as each mailbox is in a different directory, thus spreading all the small mail files and metadata across all AGs. Which is why I've been recommending it. I don't think I've been specifying inode64 though in my previous recommendations. I should probably be doing that. I guess I assumed everyone running XFS today is running a 64bit kernel/user space--probably not good to simply assume that. > FWIW, an example is a > kernel source tree: > > ~/src/kern/xfsdev$ find . -type d -exec sudo xfs_bmap -v {} \; | awk '/ 0: / { print $4 }' |sort -n |uniq -c > 76 0 > 66 1 > 85 2 > 81 3 > 82 4 > 69 5 > 89 6 > 74 7 > 90 8 > 81 9 > 96 10 > 84 11 > 85 12 > 84 13 > 86 14 > 71 15 > > As you can see, there's a relatively even spread of the directories > across all 16 AGs in that directory structure, and the file data > will follow this pattern. Because of it's better metadata<->data > locality of reference, inode64 tends to be signficantly faster on > workloads that mix metadata operations with data operations (e.g. > recursive grep across a kernel source tree) as the seek cost between > the inode and it's data is much less than for inode32.... Right. > However, if youre workload does not spread across directories, then > IO will tend to be limited to specific silos in the linear concat > while other disks sit idle. If you have a stripe, then the seeks to > get to the data are small, and hence much faster than inode32 on > similar workloads. And now I understand your previous comment that we don't know enough about the user's workload to make the linear concat recommendation. If he's writing all those hundreds of thousands of small files into the same directory the performance of a linear concat would be horrible. > This is all ignoring stripe aligned allocation - that is often lost > in the noise comapred to bigger issues like seeking from AG 0 to AG > 15 when reading the inode then the data or having a workload only > use a single AG because it is all confined to a single directory. > > IOWs, the best, most optimal filesystem layout and allocation > stratgey is both workload and hardware dependent, and there's no one > right answer. The defaults select the best balance for typical usage > - beyond that benchmarking the workload is the only way to really > measure whether your tweaks are the right ones or not. IOWs, you > need to understand the filesystem, your storage hardware and -the > application IO patterns- to make the right tuning decisions. Got it. When I prematurely recommended the linear concat I'd simply forgotten that our AG parallelism is dependent on having many of directories, not just many small files. >>> And given that not all writes require allocation and allocation is >>> usually only a small percentage of the total IO time. You can have >>> many, many more write IOs in flight than you can do allocations in >>> an AG.... >> >> Ahh, I think I see your point. For the maildir case, more of the IO is >> likely due to things like updating message flags, etc, than actually >> writing new mail files into the directory. > > I wasn't really talking about maildir here, just pointing out that > allocation is generally not the limiting factor in doing large > amounts of concurrent write IO. Got it. In the specific case the OP posted about, hundreds of thousands of small file writes, allocation could be a limiting factor though, correct? >> Such operations don't >> require allocation. With the workload mentioned by the OP, it's >> possible that all of the small file writes may indeed require >> allocation, unlike the maildir workload. But if this is the case, >> wouldn't the concatenated array still yield better overall performance >> than RAID6, or any other striped array? > > > > Quite possibly, butI can't say conclusively - I simply don't know > enough about the workload or the fs configuration. Don't shrug Dave. :) You already answered this question up above. Well, you provided me some new information, and reminded me of things I already knew, which allowed me to answer this for my self. Thanks for spending the time you have in this thread to do some serious teaching. You provided some valuable information that isn't in the XFS User Guide, nor the XFS File System Structure document. If it is there, it's not in a format that a mere mortal such as my self can digest. You make deeper aspects of XFS understandable, and I really appreciate that. -- Stan From openlinuxsource@gmail.com Wed Jul 20 09:03:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KE3acb232742 for ; Wed, 20 Jul 2011 09:03:36 -0500 X-ASG-Debug-ID: 1311170614-16be03b30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B43CFEE3DF8 for ; Wed, 20 Jul 2011 07:03:34 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id bDNy2jp7kLvvQLEt for ; Wed, 20 Jul 2011 07:03:34 -0700 (PDT) Received: by iyf40 with SMTP id 40so210376iyf.26 for ; Wed, 20 Jul 2011 07:03:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=AL+CED2R1NMGbhRQsnNEIucXgWm2Y7ZWmXppnTpkuyo=; b=Y6t+9hCWcQZocPtS+XyDVs3SDU665dLDDfdM15qtsrjnw5KLJ5GHGbI+9n/YHwyUij sx6W4ovYUx0s9q48aW8b0BNnO4Zh/sTRztX99gVhl/qywhsYxuW9g0xmFFG8Lmx19Q/n l0yltLLCTGcuf+jV6YM8Aby/RWwx0CoShRSMw= MIME-Version: 1.0 Received: by 10.231.114.206 with SMTP id f14mr7945704ibq.104.1311170613928; Wed, 20 Jul 2011 07:03:33 -0700 (PDT) Received: by 10.231.19.69 with HTTP; Wed, 20 Jul 2011 07:03:33 -0700 (PDT) In-Reply-To: References: Date: Wed, 20 Jul 2011 22:03:33 +0800 Message-ID: X-ASG-Orig-Subj: 1 Gb Ethernet based HPC storage deployment plan Subject: 1 Gb Ethernet based HPC storage deployment plan From: Lee Eric To: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311170615 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4944 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69471 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi all, I got 20 nodes cluster(1 Gb Ethernet connected) and gonna build a small storage system with it. Because of the low budget I'm thinking to use 1 Gb Ethernet as physical layer for the storage part. Here's what I planed. There 8 SATA hard drivers so I wanna use AoE or iSCSI to export the block devices to the master node over Ethernet. Then the master node will use NFS to export block devices to compute nodes. The upper layer file system I will use XFS. I know it would be better if I can use Lustre but my interconnection is a little slow. I suspect if it is feasible if using such parallel file system. Does anyone has good idea on this deployment? Thanks very much. Eric From michael.monnerie@is.it-management.at Wed Jul 20 09:04:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KE4cs9232792 for ; Wed, 20 Jul 2011 09:04:38 -0500 X-ASG-Debug-ID: 1311170675-5024031e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 820E552B79E for ; Wed, 20 Jul 2011 07:04:35 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv14.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id WCextyDNikoPZ1yt for ; Wed, 20 Jul 2011 07:04:35 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 9AE6450A; Wed, 20 Jul 2011 16:04:34 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id EE55E401C3A; Wed, 20 Jul 2011 16:04:33 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Date: Wed, 20 Jul 2011 16:04:31 +0200 User-Agent: KMail/1.13.6 (Linux/2.6.39.1-zmi; KDE/4.6.0; x86_64; ; ) Cc: Stan Hoeppner , Dave Chinner , John Bokma References: <4E24907F.6020903@johnbokma.com> <20110720064419.GG9359@dastard> <4E26C5C5.1090802@hardwarefreak.com> In-Reply-To: <4E26C5C5.1090802@hardwarefreak.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1476356.MhkKoegevQ"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201107201604.33419@zmi.at> X-Barracuda-Connect: mailsrv14.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1311170676 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0058 1.0000 -1.9831 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.98 X-Barracuda-Spam-Status: No, SCORE=-1.98 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69472 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1476356.MhkKoegevQ Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Mittwoch, 20. Juli 2011 Stan Hoeppner wrote: > I thought this was packing multiple small files into > a single stripe write, which you just explained XFS does not do. This is interesting, I jump in here. Does that mean that if I have a XFS=20 volume with sw=3D14,su=3D64k (14*64=3D896KiB) that when I write 10 small fi= les=20 in the same dir with 2KB each, each file would be placed at a 896KiB=20 boundary? That way, all stripes of a 1GB partition would be full when=20 there are roughly 1170 files (1170*896KiB ~ 1GB). What would happen when=20 I create other files - is XFS "full" then, or would it start using sub- stripes? If sub-stripes, would they start at su (=3D64KiB) distances, or=20 at single block (e.g. 4KiB) distances? I hope I could explain my thoughts in an understandable way ;-) =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services: Prot=E9ger http://proteger.at [gesprochen: Prot-e-schee] Tel: +43 660 / 415 6531 // Haus zu verkaufen: http://zmi.at/langegg/ --nextPart1476356.MhkKoegevQ Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEABECAAYFAk4m4HEACgkQzhSR9xwSCbQ6MwCePpzSvshA4rTAx82H6H7soUi9 cRoAnRkygjESqHIpLs3gVdBxLPV/HuTl =UqDL -----END PGP SIGNATURE----- --nextPart1476356.MhkKoegevQ-- From aelder@sgi.com Wed Jul 20 10:14:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KFE3fv235198 for ; Wed, 20 Jul 2011 10:14:03 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 03A1CAC002; Wed, 20 Jul 2011 08:13:57 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 20 Jul 2011 10:13:56 -0500 Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion From: Alex Elder Reply-To: To: Christoph Hellwig CC: Dave Chinner , In-Reply-To: <20110720001530.GA13475@infradead.org> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <1311116624.1964.38.camel@doink> <20110719233644.GB9359@dastard> <20110720001530.GA13475@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Wed, 20 Jul 2011 10:13:55 -0500 Message-ID: <1311174835.2906.5.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-19 at 20:15 -0400, Christoph Hellwig wrote: > On Wed, Jul 20, 2011 at 09:36:44AM +1000, Dave Chinner wrote: > > Looks cleaner, but I'll need to test it. Right now all my test > > resources are busy with non-mainline stuff, so it's going to be next > > week sometime before I can do this. > > Given that the merge window is about to open how about putting in the > current version for now and doing a cleanup patch on top later on? > Will do. From aelder@sgi.com Wed Jul 20 10:16:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KFG3rc235272 for ; Wed, 20 Jul 2011 10:16:03 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5722DAC016; Wed, 20 Jul 2011 08:16:02 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 20 Jul 2011 10:16:01 -0500 Subject: Re: [PATCH 1/4] xfs: use a cursor for bulk AIL insertion From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <20110719233644.GB9359@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-2-git-send-email-david@fromorbit.com> <1311116624.1964.38.camel@doink> <20110719233644.GB9359@dastard> Content-Type: text/plain; charset="UTF-8" Date: Wed, 20 Jul 2011 10:16:01 -0500 Message-ID: <1311174961.2906.6.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-20 at 09:36 +1000, Dave Chinner wrote: > On Tue, Jul 19, 2011 at 06:03:44PM -0500, Alex Elder wrote: > > On Mon, 2011-07-18 at 13:40 +1000, Dave Chinner wrote: > > > From: Dave Chinner > > > > > > Delayed logging can insert tens of thousands of log items into the > > > AIL at the same LSN. When the committing of log commit records > > > occur, we can get insertions occurring at a . . . > _after_ which the new > > * items should go. If lip is null the AIL was empty, so > > * the new items go at the head of the AIL. > > */ > > if (lip) > > list_splice(list, &lip->li_ail); > > else > > list_splice(list, &ailp->xa_ail); > > } > > > Looks cleaner, but I'll need to test it. Right now all my test > resources are busy with non-mainline stuff, so it's going to be next > week sometime before I can do this. I'll actually try to test this today. -Alex From aelder@sgi.com Wed Jul 20 10:19:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KFJaEJ235488 for ; Wed, 20 Jul 2011 10:19:36 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id D24BDAC002; Wed, 20 Jul 2011 08:19:35 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 20 Jul 2011 10:19:35 -0500 Subject: Re: [PATCH 3/4] xfs: convert AIL cursors to use struct list_head From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <20110719234324.GC9359@dastard> References: <1310960419-9875-1-git-send-email-david@fromorbit.com> <1310960419-9875-4-git-send-email-david@fromorbit.com> <1311116636.1964.40.camel@doink> <20110719234324.GC9359@dastard> Content-Type: text/plain; charset="UTF-8" Date: Wed, 20 Jul 2011 10:19:35 -0500 Message-ID: <1311175175.2906.8.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-20 at 09:43 +1000, Dave Chinner wrote: > On Tue, Jul 19, 2011 at 06:03:56PM -0500, Alex Elder wrote: > > On Mon, 2011-07-18 at 13:40 +1000, Dave Chinne . . . > > > + * Get the next item in the traversal and advance the cursor. If the cursor > > > + * was invalidated (indicated by a lip of 1), restart the traversal. > > * was invalidated (indicated by its item pointer's low bit being set), > > * restart the traversal. > > I thought I fixed that. Hmmmm, I did fix a comment that said the > same thing - just it wasn't the one you noticed. :/ I'll fix it up > when I redo the splice code again. Don't worry about it. I'll change it (as I did here) in my own copy and will use that (unless you give me something newer before I'm ready to publish it). You are welcome to update it later, of course. -Alex From tytso@thunk.org Wed Jul 20 12:59:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KHxLwB241330 for ; Wed, 20 Jul 2011 12:59:21 -0500 X-ASG-Debug-ID: 1311184760-4027012f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 64654EE835E for ; Wed, 20 Jul 2011 10:59:20 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id U5alsEt5xreHbeyq for ; Wed, 20 Jul 2011 10:59:20 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qjb3H-0002J0-EZ; Wed, 20 Jul 2011 17:59:19 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qjb3G-0004jQ-Ak; Wed, 20 Jul 2011 13:59:18 -0400 Date: Wed, 20 Jul 2011 13:59:18 -0400 From: "Ted Ts'o" To: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Problems building xfsprogs Subject: Problems building xfsprogs Message-ID: <20110720175918.GB17971@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311184760 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69487 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I was trying to build xfsprogs in preparation for building xfstests in an hermetic environment (as opposed to depending on magic XFS headers being installed in /usr/include...) What I found first of all (building on Ubuntu 10.10) was a) "make configure" doesn't work until I patch the top-level Makefile: diff --git a/Makefile b/Makefile index c40fb2c..37973f5 100644 --- a/Makefile +++ b/Makefile @@ -82,7 +82,7 @@ configure: libtoolize -c $(LIBTOOLIZE_INSTALL) -f cp include/install-sh . aclocal -I m4 - autoconf + autoconf -I m4 include/builddefs: configure ./configure $$LOCAL_CONFIGURE_OPTIONS b) By default xfsprogs builds with DEBUG, and this causes building libxfs/xfs_ialloc.c to blow up since there a reference of xfs_stack_trace() which is undefined under a #ifdef DEBUG. The way to fix this is to build with DEBUG=-DNDEBUG, but it took me an hour or two figure this out.... - Ted From sandeen@redhat.com Wed Jul 20 13:32:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KIWKxE242401 for ; Wed, 20 Jul 2011 13:32:20 -0500 X-ASG-Debug-ID: 1311186739-32be02950000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEEA5EE85AD for ; Wed, 20 Jul 2011 11:32:19 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id oCSxKzHbnJuroOCC for ; Wed, 20 Jul 2011 11:32:19 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6KIWHNS005119 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 20 Jul 2011 14:32:17 -0400 Received: from neon.msp.redhat.com (neon.msp.redhat.com [10.15.80.10]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6KIWGdg021034; Wed, 20 Jul 2011 14:32:17 -0400 Message-ID: <4E271F30.6070102@redhat.com> Date: Wed, 20 Jul 2011 13:32:16 -0500 From: Eric Sandeen User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc13 Lightning/1.0b3pre Thunderbird/3.1.10 MIME-Version: 1.0 To: "Ted Ts'o" CC: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs References: <20110720175918.GB17971@thunk.org> In-Reply-To: <20110720175918.GB17971@thunk.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1311186739 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/20/2011 12:59 PM, Ted Ts'o wrote: > I was trying to build xfsprogs in preparation for building xfstests in > an hermetic environment (as opposed to depending on magic XFS headers > being installed in /usr/include...) > > What I found first of all (building on Ubuntu 10.10) was > > a) "make configure" doesn't work until I patch the top-level Makefile: > > diff --git a/Makefile b/Makefile > index c40fb2c..37973f5 100644 > --- a/Makefile > +++ b/Makefile > @@ -82,7 +82,7 @@ configure: > libtoolize -c $(LIBTOOLIZE_INSTALL) -f > cp include/install-sh . > aclocal -I m4 > - autoconf > + autoconf -I m4 > > include/builddefs: configure > ./configure $$LOCAL_CONFIGURE_OPTIONS How does it fail? Works here(tm): [sandeen@sandeen tmp]$ git clone git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev.git [sandeen@sandeen xfsprogs-dev]$ cd xfsprogs-dev [sandeen@sandeen xfsprogs-dev]$ make ... aclocal -I m4 autoconf ./configure $LOCAL_CONFIGURE_OPTIONS checking build system type... x86_64-redhat-linux-gnu checking host system type... x86_64-redhat-linux-gnu ... [CC] attrset.o [LD] xfs_db [sandeen@sandeen xfsprogs-dev]$ Wonder what the difference is... > b) By default xfsprogs builds with DEBUG, and this causes building > libxfs/xfs_ialloc.c to blow up since there a reference of > xfs_stack_trace() which is undefined under a #ifdef DEBUG. The way to > fix this is to build with DEBUG=-DNDEBUG, but it took me an hour or > two figure this out.... Odd, libxfs/Makefile has: DEBUG = -DNDEBUG But to be honest, the DEBUG stuff has been a thorn in my side for Fedora too, with the extra CFLAGS it sets, something gets goobered up by default, and I build with -DNDEBUG for those packages too. I just haven't sorted it out yet .... So things to look into, but can you also describe how building xfstests fails for you when you have all the ubuntu xfsprogs-related packages installed? -Eric > - Ted > -- > To unsubscribe from this list: send the line "unsubscribe linux-ext4" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From kkeller@sonic.net Wed Jul 20 14:08:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KJ8NPb244423 for ; Wed, 20 Jul 2011 14:08:23 -0500 X-ASG-Debug-ID: 1311188901-56e501a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 42B161E683FD for ; Wed, 20 Jul 2011 12:08:21 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id mUEaHI2jRHxB2aNd for ; Wed, 20 Jul 2011 12:08:21 -0700 (PDT) Received: from localhost.localdomain (wombat.san-francisco.ca.us [75.101.60.64]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p6KJ8KuE001880 for ; Wed, 20 Jul 2011 12:08:21 -0700 Date: Wed, 20 Jul 2011 12:08:19 -0700 From: Keith Keller To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize (update) Subject: Re: xfs_growfs doesn't resize (update) Message-ID: <20110720190819.GA14910@sonic.net> References: <20110707182532.GA31319@sonic.net> <4E160A34.20902@sandeen.net> <20110707222350.GA776@sonic.net> <4E163396.2010707@sandeen.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E163396.2010707@sandeen.net> User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1311188902 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69492 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello again list! Back from my vacation, with no problems on the filesystem I potentially messed up by running xfs_growfs with an old kernel a few weeks ago. I was able to take a metadump of the filesystem by remounting ro, running xfs_metadump, and remounting rw, which did not seem to cause any obvious problems. Since then I have been throwing the various xfs tools at it to see what I could find out. The last thing I tried gave an interesting result: I simply did an mdrestore and attempted a mount over loopback, on a different machine that is running the latest kernel available from the CentOS repository (2.6.18-238.9.1.el5). To my great surprise, it mounted cleanly, and reported the correct filesystem size! A very cursory glance at the filesystem didn't uncover any glaring errors (though I forgot to use -o when I ran xfs_metadump, so filenames are mangled). The reason I tried this at all was that I got some unexpected results from xfs_repair in various permutations. First, just running it against the restored fs image, I got this error (using a locally-compiled xfsprogs-3.1.5, not the xfsprogs CentOS package--all references to xfsprogs programs will be this version unless stated otherwise): Phase 1 - find and verify superblock... would write modified primary superblock Primary superblock would have been modified. Cannot proceed further in no_modify mode. Exiting now. That wasn't a huge surprise, so I reran xfs_repair without -n, and got many errors like so: bad directory block magic # 0 in block 0 for directory inode 16359537 corrupt block 0 in directory inode 16359537 will junk block When I examined the files added to lost+found, there were a large number of them, but they all were owned by the same user and generated within a few days of each other. (Are owner and group UIDs preserved by a metadump? It would seem so.) I thought this was curious, and wasn't sure exactly what was going on, so I ran the xfs_db alterations that I asked about in a previous post (basically resetting dblocks and agcount to the values from sb 1) and ran xfs_repair on the modified image. This time, running with -n succeeded fine, but reported that it would fix almost the same set of errors that the first xfs_repair did report that it tried to fix. So, I am wondering if those files are truly damaged, and something else caused the filesystem inconsistency, not xfs_growfs. (The dates on the files in lost+found are about a week after we had a power outage, but months before my failed xfs_growfs attempt.) At this point, I really don't know what to try next. I still have the metadump, so I can do pretty much anything I want to it to try to narrow down the best course of action on the actual filesystem. What information would be most helpful for me to report? If it would help to see the actual output from xfs_repair, it's almost certainly too big to post to the list, but I can make them available over http. Just for posterity's sake, xfs_metadump on my almost-full 11TB filesystem took about 15 minutes, and generated a ~6.7GB dump file. Restoring this dump to a sparse file takes about 4 minutes. xfs_repair takes about 30-45 minutes on these images (I haven't been tracking the times that carefully). I'm sure running these tools on an actual 11TB filesystem would take a whole lot longer, so having the metadump is really a great tool for this kind of work. Thanks for reading! --keith -- kkeller@sonic.net From tytso@thunk.org Wed Jul 20 16:33:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KLXPVX249419 for ; Wed, 20 Jul 2011 16:33:26 -0500 X-ASG-Debug-ID: 1311197604-23b400260000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17796EE8CA9 for ; Wed, 20 Jul 2011 14:33:24 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id 0UOAbodmnqj4eWZ2 for ; Wed, 20 Jul 2011 14:33:24 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1QjeOQ-0002Wb-Bj; Wed, 20 Jul 2011 21:33:22 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1QjeOO-0001Cx-Pe; Wed, 20 Jul 2011 17:33:20 -0400 Date: Wed, 20 Jul 2011 17:33:20 -0400 From: "Ted Ts'o" To: Eric Sandeen Cc: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110720213320.GA3304@thunk.org> References: <20110720175918.GB17971@thunk.org> <4E271F30.6070102@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E271F30.6070102@redhat.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311197605 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69501 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 01:32:16PM -0500, Eric Sandeen wrote: > > How does it fail? Works here(tm): It doesn't find the autoconfig macros defined in the m4 directory: {/kbuild/xfstests/xfsprogs-dev} [master] 512% autoconf autoconf: Undefined macros: configure.in:100:AC_PACKAGE_NEED_PTHREADMUTEXINIT configure.in:102:AC_HAVE_FADVISE configure.in:103:AC_HAVE_MADVISE configure.in:104:AC_HAVE_MINCORE configure.in:105:AC_HAVE_SENDFILE configure.in:106:AC_HAVE_GETMNTENT configure.in:107:AC_HAVE_GETMNTINFO configure.in:108:AC_HAVE_FALLOCATE configure.in:109:AC_HAVE_FIEMAP configure.in:110:AC_HAVE_BLKID_TOPO($enable_blkid) configure.in:112:AC_TYPE_PSINT configure.in:113:AC_TYPE_PSUNSIGNED configure.in:114:AC_TYPE_U32 configure.in:115:AC_SIZEOF_POINTERS_AND_LONG configure.in:116:AC_MANUAL_FORMAT configure.in:3:AC_CONFIG_MACRO_DIR([m4]) configure.in:7:AC_PROG_LIBTOOL configure.in:89:AC_PACKAGE_GLOBALS(xfsprogs) configure.in:90:AC_PACKAGE_UTILITIES(xfsprogs) configure.in:91:AC_MULTILIB($enable_lib64) configure.in:93:AC_PACKAGE_NEED_AIO_H configure.in:94:AC_PACKAGE_NEED_LIO_LISTIO configure.in:96:AC_PACKAGE_NEED_UUID_H configure.in:97:AC_PACKAGE_NEED_UUIDCOMPARE configure.in:99:AC_PACKAGE_NEED_PTHREAD_H Maybe you have all of these autoconf macros stuffed in some distro-supplied global m4 directory? > > b) By default xfsprogs builds with DEBUG, and this causes building > > libxfs/xfs_ialloc.c to blow up since there a reference of > > xfs_stack_trace() which is undefined under a #ifdef DEBUG. The way to > > fix this is to build with DEBUG=-DNDEBUG, but it took me an hour or > > two figure this out.... > > Odd, libxfs/Makefile has: > > DEBUG = -DNDEBUG Yeah, but include/builddefs{.in}, DEBUG is defined to @debug_build@, which is -DDEBUG, and then GCFLAGS is set to $(OPTIMIZER) $(DEBUG) ..., and the override in libxfs/Makefile doesn't change the value of GCFLAGS, at least not for gmake 3.81. > But to be honest, the DEBUG stuff has been a thorn in my side for Fedora > too, with the extra CFLAGS it sets, something gets goobered up by > default, and I build with -DNDEBUG for those packages too. > > I just haven't sorted it out yet .... > > So things to look into, but can you also describe how building xfstests > fails for you when you have all the ubuntu xfsprogs-related packages > installed? Yeah, working on it. I'm starting from scratch so I can have a shell script that can build all of this by hand, instead of manually fixing these things one at a time as I've done in the past... - Ted From greg.freemyer@gmail.com Wed Jul 20 17:26:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_21,J_CHICKENPOX_55,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KMQQiJ251150 for ; Wed, 20 Jul 2011 17:26:27 -0500 X-ASG-Debug-ID: 1311200784-2c8e020e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E7469EE7EA1 for ; Wed, 20 Jul 2011 15:26:25 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 9MkwWYQzFLmjn8qh for ; Wed, 20 Jul 2011 15:26:25 -0700 (PDT) Received: by fxg11 with SMTP id 11so2505314fxg.6 for ; Wed, 20 Jul 2011 15:26:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=yRxSzKKeQXit/vlMVuWbH5EwcbdVNiKK1YhwTu64SqY=; b=TQ/T2CQAuzL9q7j6xah1X/x71X2j+15g+f+Xa1MFsm4T2e4XGRnlaTahTTaBQh5Rds evuT8dIAQ/Vj/Ma9aaUWuvHLztxua9m5/mv0wpApCj79AjlmJnv8TAb/iqLKrgJmvtzP AzlE2dmbBc+zkNeAYg1evWgwDbuhLA7HvMl+0= Received: by 10.204.30.196 with SMTP id v4mr2527344bkc.255.1311200784351; Wed, 20 Jul 2011 15:26:24 -0700 (PDT) MIME-Version: 1.0 Received: by 10.204.39.194 with HTTP; Wed, 20 Jul 2011 15:25:53 -0700 (PDT) In-Reply-To: <20110720213320.GA3304@thunk.org> References: <20110720175918.GB17971@thunk.org> <4E271F30.6070102@redhat.com> <20110720213320.GA3304@thunk.org> From: Greg Freemyer Date: Wed, 20 Jul 2011 18:25:53 -0400 Message-ID: X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs To: "Ted Ts'o" Cc: Eric Sandeen , Ext4 Developers List , xfs-oss Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311200785 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69505 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 5:33 PM, Ted Ts'o wrote: > On Wed, Jul 20, 2011 at 01:32:16PM -0500, Eric Sandeen wrote: >> >> How does it fail? =A0Works here(tm): > > It doesn't find the autoconfig macros defined in the m4 directory: > > {/kbuild/xfstests/xfsprogs-dev} =A0[master] > 512% autoconf > autoconf: Undefined macros: > configure.in:100:AC_PACKAGE_NEED_PTHREADMUTEXINIT > configure.in:102:AC_HAVE_FADVISE > configure.in:103:AC_HAVE_MADVISE > configure.in:104:AC_HAVE_MINCORE > configure.in:105:AC_HAVE_SENDFILE > configure.in:106:AC_HAVE_GETMNTENT > configure.in:107:AC_HAVE_GETMNTINFO > configure.in:108:AC_HAVE_FALLOCATE > configure.in:109:AC_HAVE_FIEMAP > configure.in:110:AC_HAVE_BLKID_TOPO($enable_blkid) > configure.in:112:AC_TYPE_PSINT > configure.in:113:AC_TYPE_PSUNSIGNED > configure.in:114:AC_TYPE_U32 > configure.in:115:AC_SIZEOF_POINTERS_AND_LONG > configure.in:116:AC_MANUAL_FORMAT > configure.in:3:AC_CONFIG_MACRO_DIR([m4]) > configure.in:7:AC_PROG_LIBTOOL > configure.in:89:AC_PACKAGE_GLOBALS(xfsprogs) > configure.in:90:AC_PACKAGE_UTILITIES(xfsprogs) > configure.in:91:AC_MULTILIB($enable_lib64) > configure.in:93:AC_PACKAGE_NEED_AIO_H > configure.in:94:AC_PACKAGE_NEED_LIO_LISTIO > configure.in:96:AC_PACKAGE_NEED_UUID_H > configure.in:97:AC_PACKAGE_NEED_UUIDCOMPARE > configure.in:99:AC_PACKAGE_NEED_PTHREAD_H > > Maybe you have all of these autoconf macros stuffed in some > distro-supplied global m4 directory? > >> > b) By default xfsprogs builds with DEBUG, and this causes building >> > libxfs/xfs_ialloc.c to blow up since there a reference of >> > xfs_stack_trace() which is undefined under a #ifdef DEBUG. =A0The way = to >> > fix this is to build with DEBUG=3D-DNDEBUG, but it took me an hour or >> > two figure this out.... >> >> Odd, libxfs/Makefile has: >> >> DEBUG =3D -DNDEBUG > > Yeah, but include/builddefs{.in}, DEBUG is defined to @debug_build@, > which is -DDEBUG, and then GCFLAGS is set to $(OPTIMIZER) $(DEBUG) ..., > > and the override in libxfs/Makefile doesn't change the value of > GCFLAGS, at least not for gmake 3.81. > >> But to be honest, the DEBUG stuff has been a thorn in my side for Fedora >> too, with the extra CFLAGS it sets, something gets goobered up by >> default, and I build with -DNDEBUG for those packages too. >> >> I just haven't sorted it out yet .... >> >> So things to look into, but can you also describe how building xfstests >> fails for you when you have all the ubuntu xfsprogs-related packages >> installed? > > Yeah, working on it. =A0I'm starting from scratch so I can have a shell > script that can build all of this by hand, instead of manually fixing > these things one at a time as I've done in the past... This little shell script is part of the openSUSE qa test (or soon will be). ie. Every opensuse distro build is run through automated qa tests. The testing team is working on adding in xfstests specifically for btrfs at present. I don't know exactly what packages are installed when the below runs, but it should be a fairly basic set of packages since its just a QA basic functionality run. =3D=3D=3D #!/bin/sh tmp=3D/tmp/xfs_playground export TEST_DEV=3D/dev/vdb export TEST_DIR=3D$tmp/test export SCRATCH_DEV=3D/dev/vdc export SCRATCH_MNT=3D$tmp/scratch export FSTYP=3Dbtrfs grep -q susetest /etc/hosts || echo "10.0.2.15 susetest.zq1.de susetest" >> /etc/hosts # workaround factory bug # TODO: drop later sudo zypper -n install sudo git gcc libtool automake gettext-tools libattr-devel libacl-devel libuuid-devel btrfsprogs mkdir -p $tmp $TEST_DIR $SCRATCH_MNT cd $tmp #git clone git://oss.sgi.com/xfs/xfs #(this step may not be needed?) git clone git://oss.sgi.com/xfs/cmds/xfsprogs git clone git://oss.sgi.com/xfs/cmds/xfstests ( cd xfsprogs make sudo make install-qa ) cd xfstests make mkfs.$FSTYP $TEST_DEV mkfs.$FSTYP $SCRATCH_DEV mount $TEST_DEV $TEST_DIR mount $SCRATCH_DEV $SCRATCH_MNT time ./check -g auto -f quick umount $TEST_DIR umount $SCRATCH_MNT echo "xfstests done" > /dev/ttyS0 =3D=3D=3D=3D So far the xfstest part of the above seems fine. It is finding 3 or 4 btrfs failed tests. Greg From david@fromorbit.com Wed Jul 20 18:01:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KN1VtB252284 for ; Wed, 20 Jul 2011 18:01:32 -0500 X-ASG-Debug-ID: 1311202888-1266031f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5948518093A1 for ; Wed, 20 Jul 2011 16:01:29 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id X4whAWwBd5rpJcka for ; Wed, 20 Jul 2011 16:01:29 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArADAApbJ055LCkBgWdsb2JhbABTp2MVAQEWJiWIfL0VDoYvBKNd Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 21 Jul 2011 08:31:27 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1Qjfle-0003ZP-4p; Thu, 21 Jul 2011 09:01:26 +1000 Date: Thu, 21 Jul 2011 09:01:26 +1000 From: Dave Chinner To: Michael Monnerie Cc: xfs@oss.sgi.com, Stan Hoeppner , John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110720230126.GH9359@dastard> References: <4E24907F.6020903@johnbokma.com> <20110720064419.GG9359@dastard> <4E26C5C5.1090802@hardwarefreak.com> <201107201604.33419@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107201604.33419@zmi.at> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1311202890 X-Barracuda-Bayes: INNOCENT GLOBAL 0.2318 1.0000 -0.6645 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.66 X-Barracuda-Spam-Status: No, SCORE=-0.66 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 04:04:31PM +0200, Michael Monnerie wrote: > On Mittwoch, 20. Juli 2011 Stan Hoeppner wrote: > > I thought this was packing multiple small files into > > a single stripe write, which you just explained XFS does not do. > > This is interesting, I jump in here. Does that mean that if I have a XFS > volume with sw=14,su=64k (14*64=896KiB) that when I write 10 small files > in the same dir with 2KB each, each file would be placed at a 896KiB > boundary? No, they'll get sunit aligned but default, which would be on 64k boundaries. > That way, all stripes of a 1GB partition would be full when > there are roughly 1170 files (1170*896KiB ~ 1GB). What would happen when > I create other files - is XFS "full" then, or would it start using sub- > stripes? If sub-stripes, would they start at su (=64KiB) distances, or > at single block (e.g. 4KiB) distances? It starts packing files tightly into remaining free space when no free aligned extents are availble for allocation in the AG. Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@sgi.com Wed Jul 20 18:06:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KN6Cn6252427 for ; Wed, 20 Jul 2011 18:06:12 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id EF304304053; Wed, 20 Jul 2011 16:06:08 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 20 Jul 2011 18:04:16 -0500 Subject: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <1311047353-23925-1-git-send-email-david@fromorbit.com> References: <1311047353-23925-1-git-send-email-david@fromorbit.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 20 Jul 2011 18:04:15 -0500 Message-ID: <1311203055.2906.75.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-19 at 13:49 +1000, Dave Chinner wrote: > From: Dave Chinner > > The recent fsx fixes has a logic error in the offset trimming code. > If a read is done when the file size is zero, then the logic error > causes a offset % 0 opertaion to occur. This causes fsx to get a > SIGFPE and die. > > This was not discovered during my testing because I was using a > random seed that didn't trip this condition. Changing the seed to > that which test 091 uses (the default of 1) causes such an operation > to occur.... > > Signed-off-by: Dave Chinner I realize you already committed this, but I'm finally getting around to reviewing it. I started composing this message, explaining how you should have done something differently. But at this point it'll be more constructive to just send a patch against what you have already committed. So that will be coming shortly... -Alex From aelder@sgi.com Wed Jul 20 18:10:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_14, J_CHICKENPOX_66 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KNAxBK252533 for ; Wed, 20 Jul 2011 18:10:59 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay1.corp.sgi.com (Postfix) with ESMTP id 480E58F8049; Wed, 20 Jul 2011 16:10:56 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6KNAtw3026740; Wed, 20 Jul 2011 18:10:56 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6KNAtQa026739; Wed, 20 Jul 2011 18:10:55 -0500 From: Alex Elder Message-Id: <201107202310.p6KNAtQa026739@stout.americas.sgi.com> Date: Wed, 20 Jul 2011 18:10:55 -0500 To: xfs@oss.sgi.com Subject: [PATCH] xfstests: simplify TRIM_OFF_LEN() in "ltp/fsx.c" User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean A recent commit added a TRIM_OFF_LEN() macro in "ltp/fsx.c": 5843147e xfstests: fsx fallocate support is b0rked A later commit fixed a problem with that macro: c47d7a51 xfstests: fix modulo-by-zero error in fsx There is an extra flag parameter in that macro that I didn't like in either version. When looking at it the second time around I concluded that there was no need for the flag after all. Going back to the first commit, the code that TRIM_OFF_LEN() replaced had one of two forms: - For OP_READ and OP_MAP_READ: if (file_size) offset %= file_size; else offset = 0; if (offset + size > file_size) size = file_size - offset; - For all other cases (except OP_TRUNCATE): offset %= maxfilelen; if (offset + size > maxfilelen) size = maxfilelen - offset; There's no harm in ensuring maxfilelen is non-zero (and doing so is safer than what's done above). So both of the above can be generalized this way: if (SIZE_LIMIT) offset %= SIZE_LIMIT; else offset = 0; if (offset + size > SIZE_LIMIT) size = SIZE_LIMIT - offset; In other words, there is no need for the extra flag in the macro. The following patch just does away with it. It uses the value of the "size" parameter directly in avoiding a divide-by-zero, and in the process avoids referencing the global "file_size" within the macro expansion. One more thing... It seems like OP_HOLE_PUNCH should be limited to the file size rather than to maximum file size (but that's a separate discussion). Signed-off-by: Alex Elder --- ltp/fsx.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) Index: b/ltp/fsx.c =================================================================== --- a/ltp/fsx.c +++ b/ltp/fsx.c @@ -987,14 +987,14 @@ docloseopen(void) } } -#define TRIM_OFF_LEN(off, len, size, allow_zero_file_size) \ -do { \ - if (allow_zero_file_size || file_size) \ - offset %= size; \ - else \ - offset = 0; \ - if (offset + len > size) \ - len = size - offset; \ +#define TRIM_OFF_LEN(off, len, size) \ +do { \ + if (size) \ + offset %= size; \ + else \ + offset = 0; \ + if (offset + len > size) \ + len = size - offset; \ } while (0) void @@ -1054,22 +1054,22 @@ test(void) switch (op) { case OP_READ: - TRIM_OFF_LEN(offset, size, file_size, 0); + TRIM_OFF_LEN(offset, size, file_size); doread(offset, size); break; case OP_WRITE: - TRIM_OFF_LEN(offset, size, maxfilelen, 1); + TRIM_OFF_LEN(offset, size, maxfilelen); dowrite(offset, size); break; case OP_MAPREAD: - TRIM_OFF_LEN(offset, size, file_size, 0); + TRIM_OFF_LEN(offset, size, file_size); domapread(offset, size); break; case OP_MAPWRITE: - TRIM_OFF_LEN(offset, size, maxfilelen, 1); + TRIM_OFF_LEN(offset, size, maxfilelen); domapwrite(offset, size); break; @@ -1080,12 +1080,12 @@ test(void) break; case OP_FALLOCATE: - TRIM_OFF_LEN(offset, size, maxfilelen, 1); + TRIM_OFF_LEN(offset, size, maxfilelen); do_preallocate(offset, size); break; case OP_PUNCH_HOLE: - TRIM_OFF_LEN(offset, size, maxfilelen, 1); + TRIM_OFF_LEN(offset, size, maxfilelen); do_punch_hole(offset, size); break; default: From david@fromorbit.com Wed Jul 20 18:13:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6KNDogI252614 for ; Wed, 20 Jul 2011 18:13:50 -0500 X-ASG-Debug-ID: 1311203627-1ff802f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 43C361809F79 for ; Wed, 20 Jul 2011 16:13:48 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id c95g5yKKJlFkYAnV for ; Wed, 20 Jul 2011 16:13:48 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArADAIJeJ055LCkBgWdsb2JhbABTp2MVAQEWJiXGBg6GLwSjXQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 21 Jul 2011 08:43:47 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QjfxZ-0003af-Uw; Thu, 21 Jul 2011 09:13:45 +1000 Date: Thu, 21 Jul 2011 09:13:45 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Subject: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Message-ID: <20110720231345.GJ9359@dastard> References: <1311047353-23925-1-git-send-email-david@fromorbit.com> <1311203055.2906.75.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311203055.2906.75.camel@doink> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1311203629 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3734 1.0000 -0.0750 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.08 X-Barracuda-Spam-Status: No, SCORE=-0.08 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 06:04:15PM -0500, Alex Elder wrote: > On Tue, 2011-07-19 at 13:49 +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > The recent fsx fixes has a logic error in the offset trimming code. > > If a read is done when the file size is zero, then the logic error > > causes a offset % 0 opertaion to occur. This causes fsx to get a > > SIGFPE and die. > > > > This was not discovered during my testing because I was using a > > random seed that didn't trip this condition. Changing the seed to > > that which test 091 uses (the default of 1) causes such an operation > > to occur.... > > > > Signed-off-by: Dave Chinner > > I realize you already committed this, but I'm finally > getting around to reviewing it. > > I started composing this message, explaining how you > should have done something differently. But at this > point it'll be more constructive to just send a patch > against what you have already committed. So that will > be coming shortly... Yeah, better to have something working that perfect. Feel free to make it better ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From aelder@oss.sgi.com Wed Jul 20 19:34:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L0YLD7256361 for ; Wed, 20 Jul 2011 19:34:21 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6L0YJBU256307; Wed, 20 Jul 2011 19:34:19 -0500 Date: Wed, 20 Jul 2011 19:34:19 -0500 Message-Id: <201107210034.p6L0YJBU256307@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-19012-g55fb25d5 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221 X-Git-Newrev: 55fb25d5b39320242b41af894921f5cef0c7e293 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated 55fb25d5 xfs: add size update tracepoint to IO completion af3e402 xfs: convert AIL cursors to use struct list_head 16b5902 xfs: remove confusing ail cursor wrapper 1d8c95a xfs: use a cursor for bulk AIL insertion ad1a2c8 xfs: failure mapping nfs fh to inode should return ESTALE adab0f6 xfs: Remove the second parameter to xfs_sb_count() from d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 55fb25d5b39320242b41af894921f5cef0c7e293 Author: Dave Chinner Date: Mon Jul 18 03:40:19 2011 +0000 xfs: add size update tracepoint to IO completion For improving insight into IO completion behaviour. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit af3e40228fb2dbc18d94fbd5103f07344a720ae7 Author: Dave Chinner Date: Mon Jul 18 03:40:18 2011 +0000 xfs: convert AIL cursors to use struct list_head The list of active AIL cursors uses a roll-your-own linked list with special casing for the AIL push cursor. Simplify this code by replacing the list with standard struct list_head lists, and use a separate list_head to track the active cursors. This allows us to treat the AIL push cursor as a generic cursor rather than as a special case, further simplifying the code. Further, fix the duplicate push cursor initialisation that the special case handling was hiding, and clean up all the comments around the active cursor list handling. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 16b5902943c793e632cf8c9526619f59893bdc29 Author: Dave Chinner Date: Mon Jul 18 03:40:17 2011 +0000 xfs: remove confusing ail cursor wrapper xfs_trans_ail_cursor_set() doesn't set the cursor to the current log item, it sets it to the next item. There is already a function for doing this - xfs_trans_ail_cursor_next() - and the _set function is simply a two line wrapper. Remove it and open code the setting of the cursor in the two locations that call it to remove the confusion. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1d8c95a363bf8cd4d4182dd19c01693b635311c2 Author: Dave Chinner Date: Mon Jul 18 03:40:16 2011 +0000 xfs: use a cursor for bulk AIL insertion Delayed logging can insert tens of thousands of log items into the AIL at the same LSN. When the committing of log commit records occur, we can get insertions occurring at an LSN that is not at the end of the AIL. If there are thousands of items in the AIL on the tail LSN, each insertion has to walk the AIL to find the correct place to insert the new item into the AIL. This can consume large amounts of CPU time and block other operations from occurring while the traversals are in progress. To avoid this repeated walk, use a AIL cursor to record where we should be inserting the new items into the AIL without having to repeat the walk. The cursor infrastructure already provides this functionality for push walks, so is a simple extension of existing code. While this will not avoid the initial walk, it will avoid repeating it tens of thousands of times during a single checkpoint commit. This version includes logic improvements from Christoph Hellwig. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit ad1a2c878ca70829874b4fcc83223cccb4e26dab Author: J. Bruce Fields Date: Thu Jul 14 20:50:36 2011 +0000 xfs: failure mapping nfs fh to inode should return ESTALE On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE on attempts to use a filehandle of a deleted file (spotted with pynfs test PUTFH3). The ENOENT was coming from xfs_iget. (It's tempting to wonder whether we should just map all xfs_iget errors to ESTALE, but I don't believe so--xfs_iget can also return ENOMEM at least, which we wouldn't want mapped to ESTALE.) While we're at it, the other return of ENOENT in xfs_nfs_get_inode() also looks wrong. Signed-off-by: J. Bruce Fields Signed-off-by: Alex Elder commit adab0f67d1cdaf468bbc311bce4d61f17626a536 Author: Chandra Seetharaman Date: Wed Jun 29 22:10:14 2011 +0000 xfs: Remove the second parameter to xfs_sb_count() Remove the second parameter to xfs_sb_count() since all callers of the function set them. Also, fix the header comment regarding it being called periodically. Signed-off-by: Chandra Seetharaman Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_aops.c | 1 + fs/xfs/linux-2.6/xfs_export.c | 4 +- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/linux-2.6/xfs_trace.h | 12 ++- fs/xfs/xfs_mount.c | 15 +-- fs/xfs/xfs_mount.h | 2 +- fs/xfs/xfs_trans.c | 27 +++++- fs/xfs/xfs_trans_ail.c | 214 +++++++++++++++++++++++------------------ fs/xfs/xfs_trans_priv.h | 14 ++- 9 files changed, 171 insertions(+), 120 deletions(-) hooks/post-receive -- XFS development tree From tytso@thunk.org Wed Jul 20 23:19:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L4J83A004611 for ; Wed, 20 Jul 2011 23:19:08 -0500 X-ASG-Debug-ID: 1311221947-518a02140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BA0B288823 for ; Wed, 20 Jul 2011 21:19:07 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id FYISDWB9TVfwuUYW for ; Wed, 20 Jul 2011 21:19:07 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qjkj2-0002gF-Nl; Thu, 21 Jul 2011 04:19:04 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qjkj1-0001ZC-7P; Thu, 21 Jul 2011 00:19:03 -0400 Date: Thu, 21 Jul 2011 00:19:03 -0400 From: "Ted Ts'o" To: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110721041903.GB3304@thunk.org> References: <20110720175918.GB17971@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110720175918.GB17971@thunk.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311221947 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69528 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Another problem with xfsprogs. "make install" iterates into the debian subdirectory, for no good reason I can see other than to cause the build to explode in a million pieces.... - Ted From tytso@thunk.org Wed Jul 20 23:27:32 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L4RWYN004944 for ; Wed, 20 Jul 2011 23:27:32 -0500 X-ASG-Debug-ID: 1311222451-2dc6030b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6B49D1E682DC for ; Wed, 20 Jul 2011 21:27:31 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id DhwPXaaLyXEBjpFJ for ; Wed, 20 Jul 2011 21:27:31 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1QjkrC-0002gW-O0; Thu, 21 Jul 2011 04:27:30 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1QjkrB-0006f7-Lu; Thu, 21 Jul 2011 00:27:29 -0400 Date: Thu, 21 Jul 2011 00:27:29 -0400 From: "Ted Ts'o" To: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110721042729.GC3304@thunk.org> References: <20110720175918.GB17971@thunk.org> <20110721041903.GB3304@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110721041903.GB3304@thunk.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311222451 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0205 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69530 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 12:19:03AM -0400, Ted Ts'o wrote: > Another problem with xfsprogs. "make install" iterates into the > debian subdirectory, for no good reason I can see other than to cause > the build to explode in a million pieces.... Sorry, never mind, false alarm. - Ted From michael.monnerie@is.it-management.at Thu Jul 21 01:20:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L6K64w010880 for ; Thu, 21 Jul 2011 01:20:07 -0500 X-ASG-Debug-ID: 1311229203-19f501cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 85EEEEEB9E0 for ; Wed, 20 Jul 2011 23:20:03 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv14.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 4elnZBu5NItL159s for ; Wed, 20 Jul 2011 23:20:03 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 681EE512; Thu, 21 Jul 2011 08:20:02 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id E840A401C33; Thu, 21 Jul 2011 08:20:01 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Date: Thu, 21 Jul 2011 08:19:54 +0200 User-Agent: KMail/1.13.6 (Linux/2.6.39.1-zmi; KDE/4.6.0; x86_64; ; ) References: <4E24907F.6020903@johnbokma.com> <201107201604.33419@zmi.at> <20110720230126.GH9359@dastard> In-Reply-To: <20110720230126.GH9359@dastard> Cc: Dave Chinner , John Bokma , Stan Hoeppner MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart1350430.ads9QgJ9c0"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201107210820.01019@zmi.at> X-Barracuda-Connect: mailsrv14.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1311229204 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA081 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69537 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.10 BSF_SC0_SA081 Custom Rule SA081 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart1350430.ads9QgJ9c0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Donnerstag, 21. Juli 2011 Dave Chinner wrote: > No, they'll get sunit aligned but default, which would be on 64k > boundaries. OK, so only when "swalloc mount option set and the=20 allocation is for more than a swidth of space it will align to swidth=20 rather than sunit" . So even when I specify swalloc but a file is generated with only 4KB, it=20 will very probably be sunit aligned on disk. =20 > > That way, all stripes of a 1GB partition would be full when=20 > > there are roughly 1170 files (1170*896KiB ~ 1GB). What would happen > > when I create other files - is XFS "full" then, or would it start > > using sub- stripes? If sub-stripes, would they start at su > > (=3D64KiB) distances, or at single block (e.g. 4KiB) distances? >=20 > It starts packing files tightly into remaining free space when no > free aligned extents are availble for allocation in the AG. That means for above example, that 16384 x 2KiB files could be created,=20 and each be sunit aligned on disk. Then all sunit start blocks are full,=20 so additional files will be sub-sunit "packed", is it this? That would mean fragmentation is likely to occur from that moment, if=20 there are files that grow. And files >64KiB are immediately fragmented=20 then. At this time, there are only 16384 * 2KiB =3D 32MiB used, which is=20 3,125% of the disk. I can't believe my numbers, are they true? OK, this is a worst case scenario, and as you've said before, any=20 filesystem can be considered full at 85% fill grade. But it's incredible=20 how quickly you could fuck up a filesystem when using su/sw and writing=20 small files. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services: Prot=E9ger http://proteger.at [gesprochen: Prot-e-schee] Tel: +43 660 / 415 6531 // Haus zu verkaufen: http://zmi.at/langegg/ --nextPart1350430.ads9QgJ9c0 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEABECAAYFAk4nxRAACgkQzhSR9xwSCbR4CgCdFRbImmZWLg/zY6CB3g5oKXw8 V7gAnRuhMeUEsKy16Zt8UCew9Gboswig =u5r+ -----END PGP SIGNATURE----- --nextPart1350430.ads9QgJ9c0-- From david@fromorbit.com Thu Jul 21 01:48:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L6mhS2012056 for ; Thu, 21 Jul 2011 01:48:44 -0500 X-ASG-Debug-ID: 1311230921-646100460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D486E1D89BA7 for ; Wed, 20 Jul 2011 23:48:41 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id GHQjmGW4lGqqsq76 for ; Wed, 20 Jul 2011 23:48:41 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmcDAKrIJ055LCkBgWdsb2JhbABUp2QVAQEWJiWIfLxnDoVRXwSjXQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 21 Jul 2011 16:18:40 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1Qjn3m-0004Dm-Gv; Thu, 21 Jul 2011 16:48:38 +1000 Date: Thu, 21 Jul 2011 16:48:38 +1000 From: Dave Chinner To: Michael Monnerie Cc: xfs@oss.sgi.com, John Bokma , Stan Hoeppner X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110721064838.GA13963@dastard> References: <4E24907F.6020903@johnbokma.com> <201107201604.33419@zmi.at> <20110720230126.GH9359@dastard> <201107210820.01019@zmi.at> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107210820.01019@zmi.at> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1311230922 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0185 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69538 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 08:19:54AM +0200, Michael Monnerie wrote: > On Donnerstag, 21. Juli 2011 Dave Chinner wrote: > > No, they'll get sunit aligned but default, which would be on 64k > > boundaries. > > OK, so only when "swalloc mount option set and the > allocation is for more than a swidth of space it will align to swidth > rather than sunit" . > > So even when I specify swalloc but a file is generated with only 4KB, it > will very probably be sunit aligned on disk. > > > > That way, all stripes of a 1GB partition would be full when > > > there are roughly 1170 files (1170*896KiB ~ 1GB). What would happen > > > when I create other files - is XFS "full" then, or would it start > > > using sub- stripes? If sub-stripes, would they start at su > > > (=64KiB) distances, or at single block (e.g. 4KiB) distances? > > > > It starts packing files tightly into remaining free space when no > > free aligned extents are availble for allocation in the AG. > > That means for above example, that 16384 x 2KiB files could be created, > and each be sunit aligned on disk. Then all sunit start blocks are full, > so additional files will be sub-sunit "packed", is it this? Effectively. > That would mean fragmentation is likely to occur from that moment, if > there are files that grow. If you are writing files that grow like this, then you are doing something wrong. If the app can't do it's IO differently, then this is exactly the reason we have userspace-controlled preallocation interfaces. Filesystems cannot prevent user stupidity from screwing something up.... > And files >64KiB are immediately fragmented > then. At this time, there are only 16384 * 2KiB = 32MiB used, which is > 3,125% of the disk. I can't believe my numbers, are they true? No, because most filesystems have a 4k block size. Not to mention that fragmentation is likely to be limited to the single AG the files in the directory belong to. i.e. even if we can't allocation a sunit aligned chunk in an AG, we won't switch to another AG just to do sunit aligned allocation. > OK, this is a worst case scenario, and as you've said before, any > filesystem can be considered full at 85% fill grade. But it's incredible > how quickly you could fuck up a filesystem when using su/sw and writing > small files. Well, don't use a filesystem that is optimised for storing large sizes, large files and high bandwidth for storing lots of small files, then. Indeed, the point of not packing the files is so they -don't fragemnt as they grow-. XFS is not designed to be optimal for small filesystems or small files. In most cases it will deal with them just fine, so in reality your concerns are mostly unfounded... BTW, ext3/ext4 do exactly the same thing with spreading files out over block groups before packing them tightly when there are not more empty block groups left.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From debbugs@busoni.debian.org Thu Jul 21 04:06:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=BAYES_40 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L96L3s017743 for ; Thu, 21 Jul 2011 04:06:23 -0500 X-ASG-Debug-ID: 1311239180-0dc002590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from busoni.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AEC0F8857C for ; Thu, 21 Jul 2011 02:06:20 -0700 (PDT) Received: from busoni.debian.org (busoni.debian.org [140.211.15.34]) by cuda.sgi.com with ESMTP id TjJOwvYKGkYEDziW for ; Thu, 21 Jul 2011 02:06:20 -0700 (PDT) Received: from debbugs by busoni.debian.org with local (Exim 4.72) (envelope-from ) id 1QjpCs-0007lv-1n; Thu, 21 Jul 2011 09:06:14 +0000 X-Loop: owner@bugs.debian.org X-ASG-Orig-Subj: Bug#634952: xfsprogs: xfs_quota commands are internationalized Subject: Bug#634952: xfsprogs: xfs_quota commands are internationalized Reply-To: Cajus Pollmeier , 634952@bugs.debian.org Resent-From: Cajus Pollmeier Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: XFS Development Team X-Loop: owner@bugs.debian.org Resent-Date: Thu, 21 Jul 2011 09:06:01 +0000 Resent-Message-ID: X-Debian-PR-Message: report 634952 X-Debian-PR-Package: xfsprogs X-Debian-PR-Keywords: X-Debian-PR-Source: xfsprogs Received: via spool by submit@bugs.debian.org id=B.131123902829445 (code B ref -1); Thu, 21 Jul 2011 09:06:01 +0000 Received: (at submit) by bugs.debian.org; 21 Jul 2011 09:03:48 +0000 Received: from mail-1.ar.gonicus.de ([212.8.1.3]) by busoni.debian.org with esmtp (Exim 4.72) (envelope-from ) id 1QjpAS-0007eY-NB for submit@bugs.debian.org; Thu, 21 Jul 2011 09:03:48 +0000 Received: from localhost (localhost [127.0.0.1]) by mail-1.ar.gonicus.de (Postfix) with ESMTP id A610614460B; Thu, 21 Jul 2011 10:56:39 +0200 (CEST) Received: from mail-1.ar.gonicus.de (localhost [127.0.0.1]) by mail-1.ar.gonicus.de (Postfix) with ESMTP id 80C641445FF for ; Thu, 21 Jul 2011 10:56:39 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail-1.ar.gonicus.de (Postfix) with ESMTP id 38895136140 for ; Thu, 21 Jul 2011 10:56:39 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by mail-1.ar.gonicus.de (Postfix) with ESMTP id 0D7C9136137 for ; Thu, 21 Jul 2011 10:56:39 +0200 (CEST) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: by amavisd-new at gonicus.de Received: from localhost ([127.0.0.1]) by localhost (mail-1.gonicus.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CeaxbNBATGIx for ; Thu, 21 Jul 2011 10:56:26 +0200 (CEST) Received: from mail-1.ar.gonicus.de (localhost [127.0.0.1]) by localhost (AvMailGate-3.2.1.23) id 23269-hcHhZf; Thu, 21 Jul 2011 08:56:26 -0000 Received: from [10.89.1.31] (p5499C13C.dip.t-dialin.net [84.153.193.60]) (Authenticated sender: pollmeier@gonicus.de) by mail-1.ar.gonicus.de (Postfix) with ESMTPSA id CF314136135 for ; Thu, 21 Jul 2011 10:56:25 +0200 (CEST) From: Cajus Pollmeier To: Debian Bug Tracking System Content-Type: text/plain; charset="UTF-8" Organization: GONICUS GmbH Date: Thu, 21 Jul 2011 10:56:13 +0200 Message-ID: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 Content-Transfer-Encoding: quoted-printable X-AntiVirus: checked by Avira MailGate (version: 3.2.1.23; AVE: 8.2.6.18; VDF: 7.11.12.27; host: mail1.gonicus.de); id=23269-hcHhZf X-Greylist: delayed 408 seconds by postgrey-1.32 at busoni; Thu, 21 Jul 2011 09:03:40 UTC Delivered-To: submit@bugs.debian.org Resent-Sender: Debian BTS X-Barracuda-Connect: busoni.debian.org[140.211.15.34] X-Barracuda-Start-Time: 1311239180 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3389 1.0000 -0.1929 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.19 X-Barracuda-Spam-Status: No, SCORE=-0.19 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Package: xfsprogs Version: 3.1.5 Severity: normal If your system locale is non english and you use the xfs_quota tool, you run into problems if you do not set LC_ALL=3DC in front of your command: # xfs_quota -x -c report /home Befehl =C2=BBreport=C2=AB nicht gefunden vs # LC_ALL=3DC xfs_quota -x -c report /home ... The command registration uses gettext for the command 'name', which makes it work like this: # xfs_quota -x -c Bericht /home ... The manualpage does not give any hints to the fact that commands are translated and I'd recommend to remove the _() around the registered names to not confuse users. -- System Information: Debian Release: 6.0.2 APT prefers stable-updates APT policy: (500, 'stable-updates'), (500, 'stable') Architecture: amd64 (x86_64) Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores) Locale: LANG=3Dde_DE.UTF-8, LC_CTYPE=3Dde_DE.UTF-8 (charmap=3DUTF-8) Shell: /bin/sh linked to /bin/dash From BATV+58be9802e4267f76d5a8+2888+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 21 04:06:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L96OC5017748 for ; Thu, 21 Jul 2011 04:06:24 -0500 X-ASG-Debug-ID: 1311239181-326f00f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 514FA8857E for ; Thu, 21 Jul 2011 02:06:21 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id zRpo5ZYMNX9aeHub for ; Thu, 21 Jul 2011 02:06:21 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QjpD1-0007sp-9D; Thu, 21 Jul 2011 09:06:19 +0000 Date: Thu, 21 Jul 2011 05:06:19 -0400 From: Christoph Hellwig To: "Ted Ts'o" Cc: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110721090619.GA26263@infradead.org> References: <20110720175918.GB17971@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110720175918.GB17971@thunk.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311239181 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69548 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 20, 2011 at 01:59:18PM -0400, Ted Ts'o wrote: > a) "make configure" doesn't work until I patch the top-level Makefile: > > diff --git a/Makefile b/Makefile > index c40fb2c..37973f5 100644 > --- a/Makefile > +++ b/Makefile > @@ -82,7 +82,7 @@ configure: > libtoolize -c $(LIBTOOLIZE_INSTALL) -f > cp include/install-sh . > aclocal -I m4 > - autoconf > + autoconf -I m4 > > include/builddefs: configure > ./configure $$LOCAL_CONFIGURE_OPTIONS I works fine for me on various releases of Debian, Fedsora, RHEL and SLES. But all he machines I've quickly checked seem to have an autoconf that can handle -I, so could you please send this pach with a proper signoff and description? > b) By default xfsprogs builds with DEBUG, and this causes building > libxfs/xfs_ialloc.c to blow up since there a reference of > xfs_stack_trace() which is undefined under a #ifdef DEBUG. The way to > fix this is to build with DEBUG=-DNDEBUG, but it took me an hour or > two figure this out.... The defaul actually is DEBUG=-DNDEBUG. No sure how you go he debug build. but we surely should fix it. I'll add the stub as soon as I get some time. From arekm@maven.pl Thu Jul 21 04:50:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6L9oxa4019370 for ; Thu, 21 Jul 2011 04:50:59 -0500 X-ASG-Debug-ID: 1311241856-32f301e10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp-relay.maven.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 84E0815F6766 for ; Thu, 21 Jul 2011 02:50:57 -0700 (PDT) Received: from smtp-relay.maven.pl (smtp-relay.maven.pl [193.239.45.138]) by cuda.sgi.com with ESMTP id MyvcgkCXwKgy2hKQ for ; Thu, 21 Jul 2011 02:50:57 -0700 (PDT) Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:46810 helo=t400.localnet) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QjpuA-0003sQ-Rw; Thu, 21 Jul 2011 11:50:55 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com, Cajus Pollmeier , 634952@bugs.debian.org X-ASG-Orig-Subj: Re: Bug#634952: xfsprogs: xfs_quota commands are internationalized Subject: Re: Bug#634952: xfsprogs: xfs_quota commands are internationalized Date: Thu, 21 Jul 2011 11:50:49 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc7-00176-gcf6ace1; KDE/4.6.5; x86_64; ; ) Cc: Debian Bug Tracking System References: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> In-Reply-To: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201107211150.50148.arekm@maven.pl> X-Barracuda-Connect: smtp-relay.maven.pl[193.239.45.138] X-Barracuda-Start-Time: 1311241857 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3571 1.0000 -0.1281 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.13 X-Barracuda-Spam-Status: No, SCORE=-0.13 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69551 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thursday 21 of July 2011, Cajus Pollmeier wrote: > Package: xfsprogs > Version: 3.1.5 > Severity: normal Will be fixed in next release. In meantime backport this patch from git http://oss.sgi.com/cgi- bin/gitweb.cgi?p=3Dxfs/cmds/xfsprogs.git;a=3Dcommit;h=3Dad76559588085a61440= 2ef6fecbaee0acc41c033 =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From debbugs@busoni.debian.org Thu Jul 21 05:00:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LA0XC5019793 for ; Thu, 21 Jul 2011 05:00:33 -0500 X-ASG-Debug-ID: 1311242431-32f3021e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from busoni.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 987A61682948 for ; Thu, 21 Jul 2011 03:00:31 -0700 (PDT) Received: from busoni.debian.org (busoni.debian.org [140.211.15.34]) by cuda.sgi.com with ESMTP id 2B6ErEeKcKDysRA2 for ; Thu, 21 Jul 2011 03:00:31 -0700 (PDT) Received: from debbugs by busoni.debian.org with local (Exim 4.72) (envelope-from ) id 1Qjq3F-0002nP-VD; Thu, 21 Jul 2011 10:00:22 +0000 X-Loop: owner@bugs.debian.org X-ASG-Orig-Subj: Bug#634952: xfsprogs: xfs_quota commands are internationalized Subject: Bug#634952: xfsprogs: xfs_quota commands are internationalized Reply-To: Arkadiusz Miskiewicz , 634952@bugs.debian.org Resent-From: Arkadiusz Miskiewicz Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: XFS Development Team X-Loop: owner@bugs.debian.org Resent-Date: Thu, 21 Jul 2011 10:00:16 +0000 Resent-Message-ID: X-Debian-PR-Message: followup 634952 X-Debian-PR-Package: xfsprogs X-Debian-PR-Keywords: X-Debian-PR-Source: xfsprogs Received: via spool by submit@bugs.debian.org id=B.131124230610411 (code B ref -1); Thu, 21 Jul 2011 10:00:16 +0000 Received: (at submit) by bugs.debian.org; 21 Jul 2011 09:58:26 +0000 Received: from smtp-relay.maven.pl ([193.239.45.138]) by busoni.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1Qjq1H-0002h2-5I; Thu, 21 Jul 2011 09:58:16 +0000 Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:46810 helo=t400.localnet) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QjpuA-0003sQ-Rw; Thu, 21 Jul 2011 11:50:55 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com, Cajus Pollmeier , 634952@bugs.debian.org Date: Thu, 21 Jul 2011 11:50:49 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc7-00176-gcf6ace1; KDE/4.6.5; x86_64; ; ) Cc: Debian Bug Tracking System References: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> In-Reply-To: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201107211150.50148.arekm@maven.pl> X-Greylist: delayed 427 seconds by postgrey-1.32 at busoni; Thu, 21 Jul 2011 09:58:09 UTC Delivered-To: submit@bugs.debian.org Resent-Sender: Debian BTS X-Barracuda-Connect: busoni.debian.org[140.211.15.34] X-Barracuda-Start-Time: 1311242432 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4958 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69551 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thursday 21 of July 2011, Cajus Pollmeier wrote: > Package: xfsprogs > Version: 3.1.5 > Severity: normal Will be fixed in next release. In meantime backport this patch from git http://oss.sgi.com/cgi- bin/gitweb.cgi?p=3Dxfs/cmds/xfsprogs.git;a=3Dcommit;h=3Dad76559588085a61440= 2ef6fecbaee0acc41c033 =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From debbugs@busoni.debian.org Thu Jul 21 05:00:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LA0doI019809 for ; Thu, 21 Jul 2011 05:00:39 -0500 X-ASG-Debug-ID: 1311242438-3f11038f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from busoni.debian.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 61D9718096B8 for ; Thu, 21 Jul 2011 03:00:38 -0700 (PDT) Received: from busoni.debian.org (busoni.debian.org [140.211.15.34]) by cuda.sgi.com with ESMTP id MHPKWK6WdWFuqAtz for ; Thu, 21 Jul 2011 03:00:38 -0700 (PDT) Received: from debbugs by busoni.debian.org with local (Exim 4.72) (envelope-from ) id 1Qjq3V-0002nw-7d; Thu, 21 Jul 2011 10:00:33 +0000 X-Loop: owner@bugs.debian.org X-ASG-Orig-Subj: Bug#634952: xfsprogs: xfs_quota commands are internationalized Subject: Bug#634952: xfsprogs: xfs_quota commands are internationalized Reply-To: Arkadiusz Miskiewicz , 634952@bugs.debian.org Resent-From: Arkadiusz Miskiewicz Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: XFS Development Team X-Loop: owner@bugs.debian.org Resent-Date: Thu, 21 Jul 2011 10:00:31 +0000 Resent-Message-ID: X-Debian-PR-Message: followup 634952 X-Debian-PR-Package: xfsprogs X-Debian-PR-Keywords: X-Debian-PR-Source: xfsprogs Received: via spool by 634952-submit@bugs.debian.org id=B634952.131124230710422 (code B ref 634952); Thu, 21 Jul 2011 10:00:31 +0000 Received: (at 634952) by bugs.debian.org; 21 Jul 2011 09:58:27 +0000 Received: from smtp-relay.maven.pl ([193.239.45.138]) by busoni.debian.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.72) (envelope-from ) id 1Qjq1H-0002h2-5I; Thu, 21 Jul 2011 09:58:16 +0000 Received: from 87-207-113-141.dynamic.chello.pl ([87.207.113.141]:46810 helo=t400.localnet) by smtp-relay.maven.pl with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.76) (envelope-from ) id 1QjpuA-0003sQ-Rw; Thu, 21 Jul 2011 11:50:55 +0200 From: Arkadiusz Miskiewicz To: xfs@oss.sgi.com, Cajus Pollmeier , 634952@bugs.debian.org Date: Thu, 21 Jul 2011 11:50:49 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc7-00176-gcf6ace1; KDE/4.6.5; x86_64; ; ) Cc: Debian Bug Tracking System References: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> In-Reply-To: <1311238573.13553.17.camel@ws-2.muc.intranet.gonicus.de> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201107211150.50148.arekm@maven.pl> X-Greylist: delayed 427 seconds by postgrey-1.32 at busoni; Thu, 21 Jul 2011 09:58:09 UTC Resent-Sender: Debian BTS X-Barracuda-Connect: busoni.debian.org[140.211.15.34] X-Barracuda-Start-Time: 1311242438 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4999 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69552 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thursday 21 of July 2011, Cajus Pollmeier wrote: > Package: xfsprogs > Version: 3.1.5 > Severity: normal Will be fixed in next release. In meantime backport this patch from git http://oss.sgi.com/cgi- bin/gitweb.cgi?p=3Dxfs/cmds/xfsprogs.git;a=3Dcommit;h=3Dad76559588085a61440= 2ef6fecbaee0acc41c033 =2D-=20 Arkadiusz Mi=C5=9Bkiewicz PLD/Linux Team arekm / maven.pl http://ftp.pld-linux.org/ From mgorman@suse.de Thu Jul 21 11:29:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGT4is035774 for ; Thu, 21 Jul 2011 11:29:04 -0500 X-ASG-Debug-ID: 1311265741-571303dd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 51FA915110D1 for ; Thu, 21 Jul 2011 09:29:02 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id PI6KFP1kE7gl7MAA for ; Thu, 21 Jul 2011 09:29:02 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 5087B890B6; Thu, 21 Jul 2011 18:29:01 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 1/8] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: [PATCH 1/8] mm: vmscan: Do not writeback filesystem pages in direct reclaim Date: Thu, 21 Jul 2011 17:28:43 +0100 Message-Id: <1311265730-5324-2-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265743 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69576 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean From: Mel Gorman When kswapd is failing to keep zones above the min watermark, a process will enter direct reclaim in the same manner kswapd does. If a dirty page is encountered during the scan, this page is written to backing storage using mapping->writepage. This causes two problems. First, it can result in very deep call stacks, particularly if the target storage or filesystem are complex. Some filesystems ignore write requests from direct reclaim as a result. The second is that a single-page flush is inefficient in terms of IO. While there is an expectation that the elevator will merge requests, this does not always happen. Quoting Christoph Hellwig; The elevator has a relatively small window it can operate on, and can never fix up a bad large scale writeback pattern. This patch prevents direct reclaim writing back filesystem pages by checking if current is kswapd. Anonymous pages are still written to swap as there is not the equivalent of a flusher thread for anonymous pages. If the dirty pages cannot be written back, they are placed back on the LRU lists. There is now a direct dependency on dirty page balancing to prevent too many pages in the system being dirtied which would prevent reclaim making forward progress. Signed-off-by: Mel Gorman --- include/linux/mmzone.h | 1 + mm/vmscan.c | 9 +++++++++ mm/vmstat.c | 1 + 3 files changed, 11 insertions(+), 0 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index 9f7c3eb..b70a0c0 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -100,6 +100,7 @@ enum zone_stat_item { NR_UNSTABLE_NFS, /* NFS unstable pages */ NR_BOUNCE, NR_VMSCAN_WRITE, + NR_VMSCAN_WRITE_SKIP, NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ diff --git a/mm/vmscan.c b/mm/vmscan.c index 5ed24b9..ee00c94 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -825,6 +825,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, if (PageDirty(page)) { nr_dirty++; + /* + * Only kswapd can writeback filesystem pages to + * avoid risk of stack overflow + */ + if (page_is_file_cache(page) && !current_is_kswapd()) { + inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); + goto keep_locked; + } + if (references == PAGEREF_RECLAIM_CLEAN) goto keep_locked; if (!may_enter_fs) diff --git a/mm/vmstat.c b/mm/vmstat.c index 20c18b7..fd109f3 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -702,6 +702,7 @@ const char * const vmstat_text[] = { "nr_unstable", "nr_bounce", "nr_vmscan_write", + "nr_vmscan_write_skip", "nr_writeback_temp", "nr_isolated_anon", "nr_isolated_file", -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGT5Ct035776 for ; Thu, 21 Jul 2011 11:29:05 -0500 X-ASG-Debug-ID: 1311265743-575903c00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7B78D15110D1 for ; Thu, 21 Jul 2011 09:29:04 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id vyUFRVQxilYyxAYC for ; Thu, 21 Jul 2011 09:29:04 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 6B1A48A95F; Thu, 21 Jul 2011 18:29:03 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Subject: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Date: Thu, 21 Jul 2011 17:28:44 +0100 Message-Id: <1311265730-5324-3-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265744 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69576 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Direct reclaim should never writeback pages. For now, handle the situation and warn about it. Ultimately, this will be a BUG_ON. Signed-off-by: Mel Gorman --- fs/xfs/linux-2.6/xfs_aops.c | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c index 79ce38b..c33a439 100644 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ b/fs/xfs/linux-2.6/xfs_aops.c @@ -930,12 +930,13 @@ xfs_vm_writepage( * random callers for direct reclaim or memcg reclaim. We explicitly * allow reclaim from kswapd as the stack usage there is relatively low. * - * This should really be done by the core VM, but until that happens - * filesystems like XFS, btrfs and ext4 have to take care of this - * by themselves. + * This should never happen except in the case of a VM regression so + * warn about it. */ - if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) + if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) { + WARN_ON_ONCE(1); goto redirty; + } /* * We need a transaction if there are delalloc or unwritten buffers -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGTD29035816 for ; Thu, 21 Jul 2011 11:29:13 -0500 X-ASG-Debug-ID: 1311265752-4bfb024a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D82828B652 for ; Thu, 21 Jul 2011 09:29:12 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id Sq0o2hWYInp0pMaO for ; Thu, 21 Jul 2011 09:29:12 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id EBDDF8980B; Thu, 21 Jul 2011 18:29:11 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 4/8] btrfs: Warn if direct reclaim tries to writeback pages Subject: [PATCH 4/8] btrfs: Warn if direct reclaim tries to writeback pages Date: Thu, 21 Jul 2011 17:28:46 +0100 Message-Id: <1311265730-5324-5-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265752 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Direct reclaim should never writeback pages. Warn if an attempt is made. By rights, btrfs should be allowing writepage from kswapd if it is failing to reclaim pages by any other means but it's outside the scope of this patch. Signed-off-by: Mel Gorman --- fs/btrfs/disk-io.c | 2 ++ fs/btrfs/inode.c | 2 ++ 2 files changed, 4 insertions(+), 0 deletions(-) diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 1ac8db5d..cc9c9cf 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -829,6 +829,8 @@ static int btree_writepage(struct page *page, struct writeback_control *wbc) tree = &BTRFS_I(page->mapping->host)->io_tree; if (!(current->flags & PF_MEMALLOC)) { + WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == + PF_MEMALLOC); return extent_write_full_page(tree, page, btree_get_extent, wbc); } diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 3601f0a..07d6c27 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -6259,6 +6259,8 @@ static int btrfs_writepage(struct page *page, struct writeback_control *wbc) if (current->flags & PF_MEMALLOC) { + WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == + PF_MEMALLOC); redirty_page_for_writepage(wbc, page); unlock_page(page); return 0; -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGT7iR035787 for ; Thu, 21 Jul 2011 11:29:07 -0500 X-ASG-Debug-ID: 1311265746-5090022e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D6088B647 for ; Thu, 21 Jul 2011 09:29:06 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id IvWKDbikmMJGfIYi for ; Thu, 21 Jul 2011 09:29:06 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id D2FB28AD27; Thu, 21 Jul 2011 18:29:05 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 3/8] ext4: Warn if direct reclaim tries to writeback pages Subject: [PATCH 3/8] ext4: Warn if direct reclaim tries to writeback pages Date: Thu, 21 Jul 2011 17:28:45 +0100 Message-Id: <1311265730-5324-4-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265746 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Direct reclaim should never writeback pages. Warn if an attempt is made. Signed-off-by: Mel Gorman --- fs/ext4/inode.c | 6 +++++- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c index e3126c0..95bb179 100644 --- a/fs/ext4/inode.c +++ b/fs/ext4/inode.c @@ -2663,8 +2663,12 @@ static int ext4_writepage(struct page *page, * We don't want to do block allocation, so redirty * the page and return. We may reach here when we do * a journal commit via journal_submit_inode_data_buffers. - * We can also reach here via shrink_page_list + * We can also reach here via shrink_page_list but it + * should never be for direct reclaim so warn if that + * happens */ + WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == + PF_MEMALLOC); goto redirty_page; } if (commit_write) -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGT5Po035781 for ; Thu, 21 Jul 2011 11:29:05 -0500 X-ASG-Debug-ID: 1311265740-4bf302520000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9CF488B645 for ; Thu, 21 Jul 2011 09:29:00 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id XAdvoRhas0VY3NkQ for ; Thu, 21 Jul 2011 09:29:00 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 6C8258891E; Thu, 21 Jul 2011 18:28:59 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Date: Thu, 21 Jul 2011 17:28:42 +0100 Message-Id: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265741 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0620 1.0000 -1.6249 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.62 X-Barracuda-Spam-Status: No, SCORE=-1.62 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Warning: Long post with lots of figures. If you normally drink coffee and you don't have a cup, get one or you may end up with a case of keyboard face. Changelog since v1 o Drop prio-inode patch. There is now a dependency that the flusher threads find these dirty pages quickly. o Drop nr_vmscan_throttled counter o SetPageReclaim instead of deactivate_page which was wrong o Add warning to main filesystems if called from direct reclaim context o Add patch to completely disable filesystem writeback from reclaim Testing from the XFS folk revealed that there is still too much I/O from the end of the LRU in kswapd. Previously it was considered acceptable by VM people for a small number of pages to be written back from reclaim with testing generally showing about 0.3% of pages reclaimed were written back (higher if memory was low). That writing back a small number of pages is ok has been heavily disputed for quite some time and Dave Chinner explained it well; It doesn't have to be a very high number to be a problem. IO is orders of magnitude slower than the CPU time it takes to flush a page, so the cost of making a bad flush decision is very high. And single page writeback from the LRU is almost always a bad flush decision. To complicate matters, filesystems respond very differently to requests from reclaim according to Christoph Hellwig; xfs tries to write it back if the requester is kswapd ext4 ignores the request if it's a delayed allocation btrfs ignores the request As a result, each filesystem has different performance characteristics when under memory pressure and there are many pages being dirties. In some cases, the request is ignored entirely so the VM cannot depend on the IO being dispatched. The objective of this series to to reduce writing of filesystem-backed pages from reclaim, play nicely with writeback that is already in progress and throttle reclaim appropriately when dirty pages are encountered. The assumption is that the flushers will always write pages faster than if reclaim issues the IO. The new problem is that reclaim has very little control over how long before a page in a particular zone or container is cleaned which is discussed later. A secondary goal is to avoid the problem whereby direct reclaim splices two potentially deep call stacks together. Patch 1 disables writeback of filesystem pages from direct reclaim entirely. Anonymous pages are still written. Patches 2-4 add warnings to XFS, ext4 and btrfs if called from direct reclaim. With patch 1, this "never happens" and is intended to catch regressions in this logic in the future. Patch 5 disables writeback of filesystem pages from kswapd unless the priority is raised to the point where kswapd is considered to be in trouble. Patch 6 throttles reclaimers if too many dirty pages are being encountered and the zones or backing devices are congested. Patch 7 invalidates dirty pages found at the end of the LRU so they are reclaimed quickly after being written back rather than waiting for a reclaimer to find them Patch 8 disables writeback of filesystem pages from kswapd and depends entirely on the flusher threads for cleaning pages. This is potentially a problem if the flusher threads take a long time to wake or are not discovering the pages we need cleaned. By placing the patch last, it's more likely that bisection can catch if this situation occurs and can be easily reverted. I consider this series to be orthogonal to the writeback work but it is worth noting that the writeback work affects the viability of patch 8 in particular. I tested this on ext4 and xfs using fs_mark and a micro benchmark that does a streaming write to a large mapping (exercises use-once LRU logic) followed by streaming writes to a mix of anonymous and file-backed mappings. The command line for fs_mark when botted with 512M looked something like ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 The number of files was adjusted depending on the amount of available memory so that the files created was about 3xRAM. For multiple threads, the -d switch is specified multiple times. 3 kernels are tested. vanilla 3.0-rc6 kswapdwb-v2r5 patches 1-7 nokswapdwb-v2r5 patches 1-8 The test machine is x86-64 with an older generation of AMD processor with 4 cores. The underlying storage was 4 disks configured as RAID-0 as this was the best configuration of storage I had available. Swap is on a separate disk. Dirty ratio was tuned to 40% instead of the default of 20%. Testing was run with and without monitors to both verify that the patches were operating as expected and that any performance gain was real and not due to interference from monitors. I've posted the raw reports for each filesystem at http://www.csn.ul.ie/~mel/postings/reclaim-20110721 Unfortunately, the volume of data is excessive but here is a partial summary of what was interesting for XFS. 512M1P-xfs Files/s mean 32.99 ( 0.00%) 35.16 ( 6.18%) 35.08 ( 5.94%) 512M1P-xfs Elapsed Time fsmark 122.54 115.54 115.21 512M1P-xfs Elapsed Time mmap-strm 105.09 104.44 106.12 512M-xfs Files/s mean 30.50 ( 0.00%) 33.30 ( 8.40%) 34.68 (12.06%) 512M-xfs Elapsed Time fsmark 136.14 124.26 120.33 512M-xfs Elapsed Time mmap-strm 154.68 145.91 138.83 512M-2X-xfs Files/s mean 28.48 ( 0.00%) 32.90 (13.45%) 32.83 (13.26%) 512M-2X-xfs Elapsed Time fsmark 145.64 128.67 128.67 512M-2X-xfs Elapsed Time mmap-strm 145.92 136.65 137.67 512M-4X-xfs Files/s mean 29.06 ( 0.00%) 32.82 (11.46%) 33.32 (12.81%) 512M-4X-xfs Elapsed Time fsmark 153.69 136.74 135.11 512M-4X-xfs Elapsed Time mmap-strm 159.47 128.64 132.59 512M-16X-xfs Files/s mean 48.80 ( 0.00%) 41.80 (-16.77%) 56.61 (13.79%) 512M-16X-xfs Elapsed Time fsmark 161.48 144.61 141.19 512M-16X-xfs Elapsed Time mmap-strm 167.04 150.62 147.83 The difference between kswapd writing and not writing for fsmark in many cases is marginal simply because kswapd was not reaching a high enough priority to enter writeback. Memory is mostly consumed by filesystem-backed pages so limiting the number of dirty pages (dirty_ratio == 40) means that kswapd always makes forward progress and avoids the OOM killer. For the streaming-write benchmark, it does make a small difference as kswapd is reaching the higher priorities there due to a large number of anonymous pages added to the mix. The performance difference is marginal though as the number of filesystem pages written is about 1/50th of the number of anonymous pages written so it is drowned out. I was initially worried about 512M-16X-xfs but it's well within the noise looking at the standard deviations from http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-no-monitor/global-dhp-512M-16X__writeback-reclaimdirty-xfs/hydra/comparison.html Files/s min 25.00 ( 0.00%) 31.10 (19.61%) 32.00 (21.88%) Files/s mean 48.80 ( 0.00%) 41.80 (-16.77%) 56.61 (13.79%) Files/s stddev 28.65 ( 0.00%) 11.32 (-153.19%) 32.79 (12.62%) Files/s max 133.20 ( 0.00%) 81.60 (-63.24%) 154.00 (13.51%) 64 threads writing on a machine with 4 CPUs with 512M RAM has variable performance which is hardly surprising. The streaming-write benchmarks all completed faster. The tests were also run with mem=1024M and mem=4608M with the relative performance improvement reduced as memory increases reflecting that with enough memory there are fewer writes from reclaim as the flusher threads have time to clean the page before it reaches the end of the LRU. Here is the same tests except when using ext4 512M1P-ext4 Files/s mean 37.36 ( 0.00%) 37.10 (-0.71%) 37.66 ( 0.78%) 512M1P-ext4 Elapsed Time fsmark 108.93 109.91 108.61 512M1P-ext4 Elapsed Time mmap-strm 112.15 108.93 109.10 512M-ext4 Files/s mean 30.83 ( 0.00%) 39.80 (22.54%) 32.74 ( 5.83%) 512M-ext4 Elapsed Time fsmark 368.07 322.55 328.80 512M-ext4 Elapsed Time mmap-strm 131.98 117.01 118.94 512M-2X-ext4 Files/s mean 20.27 ( 0.00%) 22.75 (10.88%) 20.80 ( 2.52%) 512M-2X-ext4 Elapsed Time fsmark 518.06 493.74 479.21 512M-2X-ext4 Elapsed Time mmap-strm 131.32 126.64 117.05 512M-4X-ext4 Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) 512M-4X-ext4 Elapsed Time fsmark 633.41 660.70 572.74 512M-4X-ext4 Elapsed Time mmap-strm 137.85 127.63 124.07 512M-16X-ext4 Files/s mean 55.86 ( 0.00%) 69.90 (20.09%) 42.66 (-30.94%) 512M-16X-ext4 Elapsed Time fsmark 543.21 544.43 586.16 512M-16X-ext4 Elapsed Time mmap-strm 141.84 146.12 144.01 At first glance, the benefit for ext4 is less clear cut but this is due to the standard deviation being very high. Take 512M-4X-ext4 showing a 45.63% regression for example and we see. Files/s min 5.40 ( 0.00%) 4.10 (-31.71%) 6.50 (16.92%) Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) Files/s stddev 14.34 ( 0.00%) 8.04 (-78.46%) 14.50 ( 1.04%) Files/s max 54.30 ( 0.00%) 37.70 (-44.03%) 77.20 (29.66%) The standard deviation is *massive* meaning that the performance loss is well within the noise. The main positive out of this is the streaming write benchmarks are generally better. Where it does benefit is stalls in direct reclaim. Unlike xfs, ext4 can stall direct reclaim writing back pages. When I look at a separate run using ftrace to gather more information, I see; 512M-ext4 Time stalled direct reclaim fsmark 0.36 0.30 0.31 512M-ext4 Time stalled direct reclaim mmap-strm 36.88 7.48 36.24 512M-4X-ext4 Time stalled direct reclaim fsmark 1.06 0.40 0.43 512M-4X-ext4 Time stalled direct reclaim mmap-strm 102.68 33.18 23.99 512M-16X-ext4 Time stalled direct reclaim fsmark 0.17 0.27 0.30 512M-16X-ext4 Time stalled direct reclaim mmap-strm 9.80 2.62 1.28 512M-32X-ext4 Time stalled direct reclaim fsmark 0.00 0.00 0.00 512M-32X-ext4 Time stalled direct reclaim mmap-strm 2.27 0.51 1.26 Time spent in direct reclaim is reduced implying that bug reports complaining about the system becoming jittery when copying large files may also be hel. To show what effect the patches are having, this is a more detailed look at one of the tests running with monitoring enabled. It's booted with mem=512M and the number of threads running is equal to the number of CPU cores. The backing filesystem is XFS. FS-Mark fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 Files/s min 27.30 ( 0.00%) 31.80 (14.15%) 31.40 (13.06%) Files/s mean 30.32 ( 0.00%) 34.34 (11.73%) 34.52 (12.18%) Files/s stddev 1.39 ( 0.00%) 1.06 (-31.96%) 1.20 (-16.05%) Files/s max 33.60 ( 0.00%) 36.00 ( 6.67%) 36.30 ( 7.44%) Overhead min 1393832.00 ( 0.00%) 1793141.00 (-22.27%) 1133240.00 (23.00%) Overhead mean 2423808.52 ( 0.00%) 2513297.40 (-3.56%) 1823398.44 (32.93%) Overhead stddev 445880.26 ( 0.00%) 392952.66 (13.47%) 420498.38 ( 6.04%) Overhead max 3359477.00 ( 0.00%) 3184889.00 ( 5.48%) 3016170.00 (11.38%) MMTests Statistics: duration User/Sys Time Running Test (seconds) 53.26 52.27 51.88 Total Elapsed Time (seconds) 137.65 121.95 121.11 Average files per second is increased by a nice percentage that is outside the noise. This is also true when I look at the results without monitoring although the relative performance gain is less. Time to completion is reduced which is always good ane as it implies that IO was consistently higher and this is clearly visible at http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-hydra.png http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-smooth-hydra.png kswapd CPU usage is also interesting http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/kswapdcpu-comparison-smooth-hydra.png Note how preventing kswapd reclaiming dirty pages pushes up its CPU usage as it scans more pages but it does not get excessive due to the throttling. MMTests Statistics: vmstat Page Ins 1481672 1352900 1105364 Page Outs 38397462 38337199 38366073 Swap Ins 351918 320883 258868 Swap Outs 132060 117715 123564 Direct pages scanned 886587 968087 784109 Kswapd pages scanned 18931089 18275983 18324613 Kswapd pages reclaimed 8878200 8768648 8885482 Direct pages reclaimed 883407 960496 781632 Kswapd efficiency 46% 47% 48% Kswapd velocity 137530.614 149864.559 151305.532 Direct efficiency 99% 99% 99% Direct velocity 6440.879 7938.393 6474.354 Percentage direct scans 4% 5% 4% Page writes by reclaim 170014 117717 123510 Page reclaim invalidate 0 1221396 1212857 Page reclaim throttled 0 0 0 Slabs scanned 23424 23680 23552 Direct inode steals 0 0 0 Kswapd inode steals 5560 5500 5584 Kswapd skipped wait 20 3 5 Compaction stalls 0 0 0 Compaction success 0 0 0 Compaction failures 0 0 0 Compaction pages moved 0 0 0 Compaction move failure 0 0 0 These stats are based on information from /proc/vmstat "Kswapd efficiency" is the percentage of pages reclaimed to pages scanned. The higher the percentage is the better because a low percentage implies that kswapd is scanning uselessly. As the workload dirties memory heavily and is a small machine, the efficiency is low at 46% and marginally improves due to a reduced number of pages scanned. As memory increases, so does the efficiency as one might expect as the flushers have a chance to clean the pages in time. "Kswapd velocity" is the average number of pages scanned per second. The patches increase this as it's no longer getting blocked on page writes so it's expected but in general a higher velocity means that kswapd is doing more work and consuming more CPU. In this case, it is offset by the fact that fewer pages overall are scanned and the test completes faster but it explains why CPU usage is higher. Page writes by reclaim is what is motivating this series. It goes from 170014 pages to 123510 which is a big improvement and we'll see later that these writes are for anonymous pages. "Page reclaim invalided" is very high and implies that a large number of dirty pages are reaching the end of the list quickly. Unfortunately, this is somewhat unavoidable. Kswapd is scanning pages at a rate of roughly 125000 (or 488M) a second on a 512M machine. The best possible writing rate of the underlying storage is about 300M/second. With the rate of reclaim exceeding the best possible writing speed, the system is going to get throttled. FTrace Reclaim Statistics: vmscan fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 Direct reclaims 16173 17605 14313 Direct reclaim pages scanned 886587 968087 784109 Direct reclaim pages reclaimed 883407 960496 781632 Direct reclaim write file async I/O 0 0 0 Direct reclaim write anon async I/O 0 0 0 Direct reclaim write file sync I/O 0 0 0 Direct reclaim write anon sync I/O 0 0 0 Wake kswapd requests 20699 22048 22893 Kswapd wakeups 24 20 25 Kswapd pages scanned 18931089 18275983 18324613 Kswapd pages reclaimed 8878200 8768648 8885482 Kswapd reclaim write file async I/O 37966 0 0 Kswapd reclaim write anon async I/O 132062 117717 123567 Kswapd reclaim write file sync I/O 0 0 0 Kswapd reclaim write anon sync I/O 0 0 0 Time stalled direct reclaim (seconds) 0.08 0.09 0.08 Time kswapd awake (seconds) 132.11 117.78 115.82 Total pages scanned 19817676 19244070 19108722 Total pages reclaimed 9761607 9729144 9667114 %age total pages scanned/reclaimed 49.26% 50.56% 50.59% %age total pages scanned/written 0.86% 0.61% 0.65% %age file pages scanned/written 0.19% 0.00% 0.00% Percentage Time Spent Direct Reclaim 0.15% 0.17% 0.15% Percentage Time kswapd Awake 95.98% 96.58% 95.63% Despite kswapd having higher CPU usage, it spent less time awake which is probably a reflection of the test completing faster. File writes from kswapd were 0 with the patches applied implying that kswapd was not getting to a priority high enough to start writing. The remaining writes correlate almost exactly to nr_vmscan_write implying that all writes were for anonymous pages. FTrace Reclaim Statistics: congestion_wait Direct number congest waited 0 0 0 Direct time congest waited 0ms 0ms 0ms Direct full congest waited 0 0 0 Direct number conditional waited 2 17 6 Direct time conditional waited 0ms 0ms 0ms Direct full conditional waited 0 0 0 KSwapd number congest waited 4 8 10 KSwapd time congest waited 4ms 20ms 8ms KSwapd full congest waited 0 0 0 KSwapd number conditional waited 0 26036 26283 KSwapd time conditional waited 0ms 16ms 4ms KSwapd full conditional waited 0 0 0 This is based on some of the writeback tracepoints. It's interesting to note that while kswapd got throttled about 26000 times with all patches applied, it spent negligible time asleep so probably just called cond_resched(). This implies that neither the zone nor the backing device are rarely truly congested and throttling is necessary simply to allow the pages to be written. MICRO MMTests Statistics: duration User/Sys Time Running Test (seconds) 32.57 31.18 30.52 Total Elapsed Time (seconds) 166.29 141.94 148.23 This test is in two stages. The first writes only to a file. The second writes to a mix of anonymous and file mappings. Time to completion is improved and this is still true with monitoring disabled. MMTests Statistics: vmstat Page Ins 11018260 10668536 10792204 Page Outs 16632838 16468468 16449897 Swap Ins 296167 245878 256038 Swap Outs 221626 177922 179409 Direct pages scanned 4129424 5172015 3686598 Kswapd pages scanned 9152837 9000480 7909180 Kswapd pages reclaimed 3388122 3284663 3371737 Direct pages reclaimed 735425 765263 708713 Kswapd efficiency 37% 36% 42% Kswapd velocity 55041.416 63410.455 53357.485 Direct efficiency 17% 14% 19% Direct velocity 24832.666 36438.037 24870.795 Percentage direct scans 31% 36% 31% Page writes by reclaim 347283 180065 179425 Page writes skipped 0 0 0 Page reclaim invalidate 0 864018 554666 Write invalidated 0 0 0 Page reclaim throttled 0 0 0 Slabs scanned 14464 13696 13952 Direct inode steals 470 864 934 Kswapd inode steals 426 411 317 Kswapd skipped wait 3255 3381 1437 Compaction stalls 0 0 2 Compaction success 0 0 1 Compaction failures 0 0 1 Compaction pages moved 0 0 0 Compaction move failure 0 0 0 Kswapd efficiency is improved slightly. kswapd is operating at roughly the same velocity but the number of pages scanned is far lower due to the test completing faster. Direct reclaim efficiency is improved slightly and scanning fewer pages (again due to lower time to completion). Fewer pages are being written from reclaim. FTrace Reclaim Statistics: vmscan micro-3.0.0 3.0.0-rc6 3.0.0-rc6 rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 Direct reclaims 14060 15425 13726 Direct reclaim pages scanned 3596218 4621037 3613503 Direct reclaim pages reclaimed 735425 765263 708713 Direct reclaim write file async I/O 87264 0 0 Direct reclaim write anon async I/O 10030 9127 15028 Direct reclaim write file sync I/O 0 0 0 Direct reclaim write anon sync I/O 0 0 0 Wake kswapd requests 10424 10346 10786 Kswapd wakeups 22 22 14 Kswapd pages scanned 9041353 8889081 7895846 Kswapd pages reclaimed 3388122 3284663 3371737 Kswapd reclaim write file async I/O 7277 1710 0 Kswapd reclaim write anon async I/O 184205 159178 162367 Kswapd reclaim write file sync I/O 0 0 0 Kswapd reclaim write anon sync I/O 0 0 0 Time stalled direct reclaim (seconds) 54.29 5.67 14.29 Time kswapd awake (seconds) 151.62 129.83 135.98 Total pages scanned 12637571 13510118 11509349 Total pages reclaimed 4123547 4049926 4080450 %age total pages scanned/reclaimed 32.63% 29.98% 35.45% %age total pages scanned/written 2.29% 1.26% 1.54% %age file pages scanned/written 0.75% 0.01% 0.00% Percentage Time Spent Direct Reclaim 62.50% 15.39% 31.89% Percentage Time kswapd Awake 91.18% 91.47% 91.74% Time spent in direct reclaim is massively reduced which is surprising as this is XFS so it should not have been stalling in the writing files anyway. It's possible that the anon writes are completing faster so time spent swapping is reduced. With patches 1-7, kswapd still writes some pages due to it reaching higher priorities due to memory pressure but the number of pages it writes is significantly reduced and a small percentage of those that were written to swap. Patch 8 eliminates it entirely but the benefit is not seen in the completion times as the number of writes is so small. FTrace Reclaim Statistics: congestion_wait Direct number congest waited 0 0 0 Direct time congest waited 0ms 0ms 0ms Direct full congest waited 0 0 0 Direct number conditional waited 12345 37713 34841 Direct time conditional waited 12396ms 132ms 168ms Direct full conditional waited 53 0 0 KSwapd number congest waited 4248 2957 2293 KSwapd time congest waited 15320ms 10312ms 13416ms KSwapd full congest waited 31 1 21 KSwapd number conditional waited 0 15989 10410 KSwapd time conditional waited 0ms 0ms 0ms KSwapd full conditional waited 0 0 0 Congestion is way down as direct reclaim conditional wait time is reduced by about 12 seconds. Overall, this looks good. Avoiding writes from kswapd improves overall performance as expected and eliminating them entirely seems to behave well. Next I tested on a NUMA configuration of sorts. I don't have a real NUMA machine so I booted the same machine with mem=4096M numa=fake=8 so each node is 512M. Again, the volume of information is high but here is a summary of sorts based on a test run with monitors enabled. 4096M8N-xfs Files/s mean 27.29 ( 0.00%) 27.35 ( 0.20%) 27.91 ( 2.22%) 4096M8N-xfs Elapsed Time fsmark 1402.55 1400.77 1382.92 4096M8N-xfs Elapsed Time mmap-strm 660.90 596.91 630.05 4096M8N-xfs Kswapd efficiency fsmark 72% 71% 13% 4096M8N-xfs Kswapd efficiency mmap-strm 39% 40% 31% 4096M8N-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 4096M8N-xfs stalled direct reclaim mmap-strm 36.37 13.06 56.88 4096M8N-4X-xfs Files/s mean 26.80 ( 0.00%) 26.41 (-1.47%) 26.40 (-1.53%) 4096M8N-4X-xfs Elapsed Time fsmark 1453.95 1460.62 1470.98 4096M8N-4X-xfs Elapsed Time mmap-strm 683.34 663.46 690.01 4096M8N-4X-xfs Kswapd efficiency fsmark 68% 67% 8% 4096M8N-4X-xfs Kswapd efficiency mmap-strm 35% 34% 6% 4096M8N-4X-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 4096M8N-4X-xfs stalled direct reclaim mmap-strm 26.45 87.57 46.87 4096M8N-2X-xfs Files/s mean 26.22 ( 0.00%) 26.70 ( 1.77%) 27.21 ( 3.62%) 4096M8N-2X-xfs Elapsed Time fsmark 1469.28 1439.30 1424.45 4096M8N-2X-xfs Elapsed Time mmap-strm 676.77 656.28 655.03 4096M8N-2X-xfs Kswapd efficiency fsmark 69% 69% 9% 4096M8N-2X-xfs Kswapd efficiency mmap-strm 33% 33% 7% 4096M8N-2X-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 4096M8N-2X-xfs stalled direct reclaim mmap-strm 52.74 57.96 102.49 4096M8N-16X-xfs Files/s mean 25.78 ( 0.00%) 27.81 ( 7.32%) 48.52 (46.87%) 4096M8N-16X-xfs Elapsed Time fsmark 1555.95 1554.78 1542.53 4096M8N-16X-xfs Elapsed Time mmap-strm 770.01 763.62 844.55 4096M8N-16X-xfs Kswapd efficiency fsmark 62% 62% 7% 4096M8N-16X-xfs Kswapd efficiency mmap-strm 38% 37% 10% 4096M8N-16X-xfs stalled direct reclaim fsmark 0.12 0.01 0.05 4096M8N-16X-xfs stalled direct reclaim mmap-strm 1.07 1.09 63.32 The performance differences for fsmark are marginal because the number of page written from reclaim is pretty low with this much memory even with NUMA enabled. At no point did fsmark enter direct reclaim to try and write a page so it's all kswapd. What is important to note is the "Kswapd efficiency". Once kswapd cannot write pages at all, its efficiency drops rapidly for fsmark as it scans about 5-8 times more pages waiting on flusher threads to clean a page from the correct node. Kswapd not writing pages impairs direct reclaim performance for the streaming writer test. Note the times stalled in direct reclaim. In all cases, the time stalled in direct reclaim goes way up as both direct reclaimers and kswapd get stalled waiting on pages to get cleaned from the right node. Fortunately, kswapd CPU usage does not go to 100% because of the throttling. From the 40968M test for example, I see KSwapd full congest waited 834 739 989 KSwapd number conditional waited 0 68552 372275 KSwapd time conditional waited 0ms 16ms 1684ms KSwapd full conditional waited 0 0 0 With kswapd avoiding writes, it gets throttled lightly but when it writes no pasges at all, it gets throttled very heavily and sleeps. ext4 tells a slightly different story 4096M8N-ext4 Files/s mean 28.63 ( 0.00%) 30.58 ( 6.37%) 31.04 ( 7.76%) 4096M8N-ext4 Elapsed Time fsmark 1578.51 1551.99 1532.65 4096M8N-ext4 Elapsed Time mmap-strm 703.66 655.25 654.86 4096M8N-ext4 Kswapd efficiency 62% 69% 68% 4096M8N-ext4 Kswapd efficiency 35% 35% 35% 4096M8N-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 4096M8N-ext4 stalled direct reclaim mmap-strm 32.64 95.72 152.62 4096M8N-2X-ext4 Files/s mean 30.74 ( 0.00%) 28.49 (-7.89%) 28.79 (-6.75%) 4096M8N-2X-ext4 Elapsed Time fsmark 1466.62 1583.12 1580.07 4096M8N-2X-ext4 Elapsed Time mmap-strm 705.17 705.64 693.01 4096M8N-2X-ext4 Kswapd efficiency 68% 68% 67% 4096M8N-2X-ext4 Kswapd efficiency 34% 30% 18% 4096M8N-2X-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 4096M8N-2X-ext4 stalled direct reclaim mmap-strm 106.82 24.88 27.88 4096M8N-4X-ext4 Files/s mean 24.15 ( 0.00%) 23.18 (-4.18%) 23.94 (-0.89%) 4096M8N-4X-ext4 Elapsed Time fsmark 1848.41 1971.48 1867.07 4096M8N-4X-ext4 Elapsed Time mmap-strm 664.87 673.66 674.46 4096M8N-4X-ext4 Kswapd efficiency 62% 65% 65% 4096M8N-4X-ext4 Kswapd efficiency 33% 37% 15% 4096M8N-4X-ext4 stalled direct reclaim fsmark 0.18 0.03 0.26 4096M8N-4X-ext4 stalled direct reclaim mmap-strm 115.71 23.05 61.12 4096M8N-16X-ext4 Files/s mean 5.42 ( 0.00%) 5.43 ( 0.15%) 3.83 (-41.44%) 4096M8N-16X-ext4 Elapsed Time fsmark 9572.85 9653.66 11245.41 4096M8N-16X-ext4 Elapsed Time mmap-strm 752.88 750.38 769.19 4096M8N-16X-ext4 Kswapd efficiency 59% 59% 61% 4096M8N-16X-ext4 Kswapd efficiency 34% 34% 21% 4096M8N-16X-ext4 stalled direct reclaim fsmark 0.26 0.65 0.26 4096M8N-16X-ext4 stalled direct reclaim mmap-strm 177.48 125.91 196.92 4096M8N-16X-ext4 with kswapd writing no pages collapsed in terms of performance. Looking at the fsmark logs, in a number of iterations, it was barely able to write files at all. The apparent slowdown for fsmark in 4096M8N-2X-ext4 is well within the noise but the reduced time spent in direct reclaim is very welcome. Unlike xfs, it's less clear cut if direct reclaim performance is impaired but in a few tests, preventing kswapd writing pages did increase the time stalled. Last test is that I've been running this series on my laptop since Monday without any problem but it's rarely under serious memory pressure. I see nr_vmscan_write is 0 and the number of pages invalidated from the end of the LRU is only 10844 after 3 days so it's not much of a test. Overall, having kswapd avoiding writes does improve performance which is not a surprise. Dave asked "do we even need IO at all from reclaim?". On NUMA machines, the answer is "yes" unless the VM can wake the flusher thread to clean a specific node. When kswapd never writes, processes can stall for significant periods of time waiting on flushers to clean the correct pages. If all writing is to be deferred to flushers, it must ensure that many writes on one node would not starve requests for cleaning pages on another node. I'm currently of the opinion that we should consider merging patches 1-7 and discuss what is required before merging. It can be tackled later how the flushers can prioritise writing of pages belonging to a particular zone before disabling all writes from reclaim. There is already some work in this general area with the possibility that series such as "writeback: moving expire targets for background/kupdate works" could be extended to allow patch 8 to be merged later even if the series needs work. fs/btrfs/disk-io.c | 2 ++ fs/btrfs/inode.c | 2 ++ fs/ext4/inode.c | 6 +++++- fs/xfs/linux-2.6/xfs_aops.c | 9 +++++---- include/linux/mmzone.h | 1 + mm/vmscan.c | 34 +++++++++++++++++++++++++++++++--- mm/vmstat.c | 1 + 7 files changed, 47 insertions(+), 8 deletions(-) -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGTP01035873 for ; Thu, 21 Jul 2011 11:29:25 -0500 X-ASG-Debug-ID: 1311265764-26de02820000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E3E161E691D8 for ; Thu, 21 Jul 2011 09:29:24 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id BNhlHLZDfDMFWHXF for ; Thu, 21 Jul 2011 09:29:24 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 7CD688891E; Thu, 21 Jul 2011 18:29:23 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 5/8] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: [PATCH 5/8] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Date: Thu, 21 Jul 2011 17:28:47 +0100 Message-Id: <1311265730-5324-6-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265764 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean It is preferable that no dirty pages are dispatched for cleaning from the page reclaim path. At normal priorities, this patch prevents kswapd writing pages. However, page reclaim does have a requirement that pages be freed in a particular zone. If it is failing to make sufficient progress (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority is raised to scan more pages. A priority of DEF_PRIORITY - 3 is considered to tbe the point where kswapd is getting into trouble reclaiming pages. If this priority is reached, kswapd will dispatch pages for writing. Signed-off-by: Mel Gorman --- mm/vmscan.c | 13 ++++++++----- 1 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index ee00c94..cf7b501 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -719,7 +719,8 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages) */ static unsigned long shrink_page_list(struct list_head *page_list, struct zone *zone, - struct scan_control *sc) + struct scan_control *sc, + int priority) { LIST_HEAD(ret_pages); LIST_HEAD(free_pages); @@ -827,9 +828,11 @@ static unsigned long shrink_page_list(struct list_head *page_list, /* * Only kswapd can writeback filesystem pages to - * avoid risk of stack overflow + * avoid risk of stack overflow but do not writeback + * unless under significant pressure. */ - if (page_is_file_cache(page) && !current_is_kswapd()) { + if (page_is_file_cache(page) && + (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); goto keep_locked; } @@ -1465,12 +1468,12 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, spin_unlock_irq(&zone->lru_lock); - nr_reclaimed = shrink_page_list(&page_list, zone, sc); + nr_reclaimed = shrink_page_list(&page_list, zone, sc, priority); /* Check if we should syncronously wait for writeback */ if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { set_reclaim_mode(priority, sc, true); - nr_reclaimed += shrink_page_list(&page_list, zone, sc); + nr_reclaimed += shrink_page_list(&page_list, zone, sc, priority); } local_irq_disable(); -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGTYCJ035900 for ; Thu, 21 Jul 2011 11:29:34 -0500 X-ASG-Debug-ID: 1311265773-215802680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F23071E691E1 for ; Thu, 21 Jul 2011 09:29:33 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id fpddoEkbhH3bZWZB for ; Thu, 21 Jul 2011 09:29:33 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 0CB448891E; Thu, 21 Jul 2011 18:29:33 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 6/8] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Subject: [PATCH 6/8] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Date: Thu, 21 Jul 2011 17:28:48 +0100 Message-Id: <1311265730-5324-7-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265773 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Workloads that are allocating frequently and writing files place a large number of dirty pages on the LRU. With use-once logic, it is possible for them to reach the end of the LRU quickly requiring the reclaimer to scan more to find clean pages. Ordinarily, processes that are dirtying memory will get throttled by dirty balancing but this is a global heuristic and does not take into account that LRUs are maintained on a per-zone basis. This can lead to a situation whereby reclaim is scanning heavily, skipping over a large number of pages under writeback and recycling them around the LRU consuming CPU. This patch checks how many of the number of pages isolated from the LRU were dirty. If a percentage of them are dirty, the process will be throttled if a blocking device is congested or the zone being scanned is marked congested. The percentage that must be dirty depends on the priority. At default priority, all of them must be dirty. At DEF_PRIORITY-1, 50% of them must be dirty, DEF_PRIORITY-2, 25% etc. i.e. as pressure increases the greater the likelihood the process will get throttled to allow the flusher threads to make some progress. Signed-off-by: Mel Gorman --- mm/vmscan.c | 21 ++++++++++++++++++--- 1 files changed, 18 insertions(+), 3 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index cf7b501..b0060f8 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -720,7 +720,8 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages) static unsigned long shrink_page_list(struct list_head *page_list, struct zone *zone, struct scan_control *sc, - int priority) + int priority, + unsigned long *ret_nr_dirty) { LIST_HEAD(ret_pages); LIST_HEAD(free_pages); @@ -971,6 +972,7 @@ keep_lumpy: list_splice(&ret_pages, page_list); count_vm_events(PGACTIVATE, pgactivate); + *ret_nr_dirty += nr_dirty; return nr_reclaimed; } @@ -1420,6 +1422,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, unsigned long nr_taken; unsigned long nr_anon; unsigned long nr_file; + unsigned long nr_dirty = 0; while (unlikely(too_many_isolated(zone, file, sc))) { congestion_wait(BLK_RW_ASYNC, HZ/10); @@ -1468,12 +1471,14 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, spin_unlock_irq(&zone->lru_lock); - nr_reclaimed = shrink_page_list(&page_list, zone, sc, priority); + nr_reclaimed = shrink_page_list(&page_list, zone, sc, + priority, &nr_dirty); /* Check if we should syncronously wait for writeback */ if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { set_reclaim_mode(priority, sc, true); - nr_reclaimed += shrink_page_list(&page_list, zone, sc, priority); + nr_reclaimed += shrink_page_list(&page_list, zone, sc, + priority, &nr_dirty); } local_irq_disable(); @@ -1483,6 +1488,16 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, putback_lru_pages(zone, sc, nr_anon, nr_file, &page_list); + /* + * If we have encountered a high number of dirty pages then they + * are reaching the end of the LRU too quickly and global limits are + * not enough to throttle processes due to the page distribution + * throughout zones. Scale the number of dirty pages that must be + * dirty before being throttled to priority. + */ + if (nr_dirty && nr_dirty >= (nr_taken >> (DEF_PRIORITY-priority))) + wait_iff_congested(zone, BLK_RW_ASYNC, HZ/10); + trace_mm_vmscan_lru_shrink_inactive(zone->zone_pgdat->node_id, zone_idx(zone), nr_scanned, nr_reclaimed, -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGTiUx035916 for ; Thu, 21 Jul 2011 11:29:44 -0500 X-ASG-Debug-ID: 1311265782-575d03ad0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CDA0315110F1 for ; Thu, 21 Jul 2011 09:29:43 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id OCz8cIGU90vqSlhP for ; Thu, 21 Jul 2011 09:29:43 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 8D4FE8891E; Thu, 21 Jul 2011 18:29:42 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Date: Thu, 21 Jul 2011 17:28:49 +0100 Message-Id: <1311265730-5324-8-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265783 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69576 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean When direct reclaim encounters a dirty page, it gets recycled around the LRU for another cycle. This patch marks the page PageReclaim similar to deactivate_page() so that the page gets reclaimed almost immediately after the page gets cleaned. This is to avoid reclaiming clean pages that are younger than a dirty page encountered at the end of the LRU that might have been something like a use-once page. Signed-off-by: Mel Gorman --- include/linux/mmzone.h | 2 +- mm/vmscan.c | 10 +++++++++- mm/vmstat.c | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index b70a0c0..30d1dd1 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -100,7 +100,7 @@ enum zone_stat_item { NR_UNSTABLE_NFS, /* NFS unstable pages */ NR_BOUNCE, NR_VMSCAN_WRITE, - NR_VMSCAN_WRITE_SKIP, + NR_VMSCAN_INVALIDATE, NR_WRITEBACK_TEMP, /* Writeback using temporary buffers */ NR_ISOLATED_ANON, /* Temporary isolated pages from anon lru */ NR_ISOLATED_FILE, /* Temporary isolated pages from file lru */ diff --git a/mm/vmscan.c b/mm/vmscan.c index b0060f8..c3d8341 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -834,7 +834,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, */ if (page_is_file_cache(page) && (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); + /* + * Immediately reclaim when written back. + * Similar in principal to deactivate_page() + * except we already have the page isolated + * and know it's dirty + */ + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); + SetPageReclaim(page); + goto keep_locked; } diff --git a/mm/vmstat.c b/mm/vmstat.c index fd109f3..5bd2043 100644 --- a/mm/vmstat.c +++ b/mm/vmstat.c @@ -702,7 +702,7 @@ const char * const vmstat_text[] = { "nr_unstable", "nr_bounce", "nr_vmscan_write", - "nr_vmscan_write_skip", + "nr_vmscan_invalidate", "nr_writeback_temp", "nr_isolated_anon", "nr_isolated_file", -- 1.7.3.4 From mgorman@suse.de Thu Jul 21 11:29:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGTuJL035936 for ; Thu, 21 Jul 2011 11:29:56 -0500 X-ASG-Debug-ID: 1311265794-571203d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C01F315110FB for ; Thu, 21 Jul 2011 09:29:55 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id K9bU9XB8trEbHtZl for ; Thu, 21 Jul 2011 09:29:55 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 835D48891E; Thu, 21 Jul 2011 18:29:54 +0200 (CEST) From: Mel Gorman To: Linux-MM Cc: LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim , Mel Gorman X-ASG-Orig-Subj: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd Subject: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd Date: Thu, 21 Jul 2011 17:28:50 +0100 Message-Id: <1311265730-5324-9-git-send-email-mgorman@suse.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311265795 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69576 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Assuming that flusher threads will always write back dirty pages promptly then it is always faster for reclaimers to wait for flushers. This patch prevents kswapd writing back any filesystem pages. Signed-off-by: Mel Gorman --- mm/vmscan.c | 15 ++++----------- 1 files changed, 4 insertions(+), 11 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index c3d8341..6023494 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -720,7 +720,6 @@ static noinline_for_stack void free_page_list(struct list_head *free_pages) static unsigned long shrink_page_list(struct list_head *page_list, struct zone *zone, struct scan_control *sc, - int priority, unsigned long *ret_nr_dirty) { LIST_HEAD(ret_pages); @@ -827,13 +826,8 @@ static unsigned long shrink_page_list(struct list_head *page_list, if (PageDirty(page)) { nr_dirty++; - /* - * Only kswapd can writeback filesystem pages to - * avoid risk of stack overflow but do not writeback - * unless under significant pressure. - */ - if (page_is_file_cache(page) && - (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { + /* Flusher must clean dirty filesystem-backed pages */ + if (page_is_file_cache(page)) { /* * Immediately reclaim when written back. * Similar in principal to deactivate_page() @@ -1479,14 +1473,13 @@ shrink_inactive_list(unsigned long nr_to_scan, struct zone *zone, spin_unlock_irq(&zone->lru_lock); - nr_reclaimed = shrink_page_list(&page_list, zone, sc, - priority, &nr_dirty); + nr_reclaimed = shrink_page_list(&page_list, zone, sc, &nr_dirty); /* Check if we should syncronously wait for writeback */ if (should_reclaim_stall(nr_taken, nr_reclaimed, priority, sc)) { set_reclaim_mode(priority, sc, true); nr_reclaimed += shrink_page_list(&page_list, zone, sc, - priority, &nr_dirty); + &nr_dirty); } local_irq_disable(); -- 1.7.3.4 From tytso@thunk.org Thu Jul 21 11:31:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LGVSwj036007 for ; Thu, 21 Jul 2011 11:31:28 -0500 X-ASG-Debug-ID: 1311265887-215202ae0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7C06C1E6923A for ; Thu, 21 Jul 2011 09:31:27 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id fqo3nL23tmFcHXIY for ; Thu, 21 Jul 2011 09:31:27 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qjw9k-0004XN-7X; Thu, 21 Jul 2011 16:31:24 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qjw9i-00063O-OZ; Thu, 21 Jul 2011 12:31:22 -0400 Date: Thu, 21 Jul 2011 12:31:22 -0400 From: "Ted Ts'o" To: Christoph Hellwig Cc: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110721163122.GD3304@thunk.org> References: <20110720175918.GB17971@thunk.org> <20110721090619.GA26263@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110721090619.GA26263@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311265887 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:06:19AM -0400, Christoph Hellwig wrote: > I works fine for me on various releases of Debian, Fedsora, RHEL and > SLES. But all he machines I've quickly checked seem to have an autoconf > that can handle -I, so could you please send this pach with a proper > signoff and description? Sure, will do. > > b) By default xfsprogs builds with DEBUG, and this causes building > > libxfs/xfs_ialloc.c to blow up since there a reference of > > xfs_stack_trace() which is undefined under a #ifdef DEBUG. The way to > > fix this is to build with DEBUG=-DNDEBUG, but it took me an hour or > > two figure this out.... > > The defaul actually is DEBUG=-DNDEBUG. No sure how you go he debug > build. but we surely should fix it. I'll add the stub as soon as I get > some time. Well, the default from xfstest-dev/m4/package_globals.m4 is: DEBUG=${DEBUG:-'-DDEBUG'} dnl -DNDEBUG debug_build="$DEBUG" AC_SUBST(debug_build) I'm guessing you're getting the default of DEBUG=-DNDEBUG because you're getting the package_globals.m4 package from some other m4 directory.... - Ted From sekharan@us.ibm.com Thu Jul 21 12:30:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LHU13J038231 for ; Thu, 21 Jul 2011 12:30:02 -0500 X-ASG-Debug-ID: 1311269400-4e1b02660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8001A16837AB for ; Thu, 21 Jul 2011 10:30:00 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id n8VUQJtCNhnmravH for ; Thu, 21 Jul 2011 10:30:00 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6LH8iDo004241 for ; Thu, 21 Jul 2011 13:08:44 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6LHTtbo113278 for ; Thu, 21 Jul 2011 13:29:55 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LDTfCV015167 for ; Thu, 21 Jul 2011 10:29:42 -0300 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LDTeUe015076; Thu, 21 Jul 2011 10:29:41 -0300 X-ASG-Orig-Subj: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: Christoph Hellwig Cc: xfs@oss.sgi.com In-Reply-To: <20110716015901.GC589@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012116.6629.48217.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716015901.GC589@infradead.org> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Thu, 21 Jul 2011 10:29:51 -0700 Message-ID: <1311269391.3210.956.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1311269401 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean HI Christoph, Some clarifications sought.... On Fri, 2011-07-15 at 21:59 -0400, Christoph Hellwig wrote: > > --- a/fs/xfs/xfs_log.c > > +++ b/fs/xfs/xfs_log.c > > @@ -1367,7 +1367,7 @@ xlog_sync(xlog_t *log, > > } > > XFS_BUF_SET_COUNT(bp, count); > > XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ > > - XFS_BUF_ZEROFLAGS(bp); > > + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); > > XFS_BUF_BUSY(bp); > > XFS_BUF_ASYNC(bp); > > bp->b_flags |= XBF_LOG_BUFFER; > > Note that XBF_ORDERED is gone in the current tree, you need to rebase > your patches to pick up the buffer changes I recently sent out. > > I don't link this blind expansion. For one all that flag setting is > duplicated in two places in xlog_sync, please send a patch to > consolidate it in xlog_bdstrat. Second XBF_READ and XBF_DELWRI The two places are using 2 different bps, how do you want it to be consolidated in xlog_bdstrat() ? > won't ever be set here, so no need to clear them. And XBF_WRITE > and XBF_ASYNC will get re-set a few lines down the code, so no need > to clear them either. The XBF_FLUSH and XBF_FUA flag also get set > conditionally a little below, so I'd just clear them in an else > clause for the if condition checking if they should be set. It looks cleaner if I just have those flags cleared above, instead of conditionally clearing them, what do you think ? > > > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > > index 04142ca..75ba081 100644 > > --- a/fs/xfs/xfs_log_recover.c > > +++ b/fs/xfs/xfs_log_recover.c > > @@ -261,7 +261,7 @@ xlog_bwrite( > > ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); > > > > XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); > > - XFS_BUF_ZEROFLAGS(bp); > > + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); > > XFS_BUF_BUSY(bp); > > XFS_BUF_HOLD(bp); > > XFS_BUF_PSEMA(bp, PRIBIO); > > XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with > in xfs_bwrite a few lines down, and XBF_ORDERED can't be set here. IOW > this line can simply be removed. New definition of XFS_BUF_ZEROFLAGS has these: XBF_SYNCIO, XBF_FUA, and XBF_FLUSH. In this context is it ok to not clear those ? > From aelder@sgi.com Thu Jul 21 13:04:34 2011 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LI4WhO039214 for ; Thu, 21 Jul 2011 13:04:32 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id E0F94AC003; Thu, 21 Jul 2011 11:04:27 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6LI4Rtr006076; Thu, 21 Jul 2011 13:04:27 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6LI4Rvf006075; Thu, 21 Jul 2011 13:04:27 -0500 From: Alex Elder Message-Id: <201107211804.p6LI4Rvf006075@stout.americas.sgi.com> Date: Thu, 21 Jul 2011 13:04:26 -0500 To: xfs@oss.sgi.com Subject: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Rename the "linux-2.6" platform-specific subdirectory in XFS to just be "linux". This is consistent with the "new" Linux development model (regular stable releases rather than the old even/odd cycle with long periods between stable releases). It was also inspired by Linus' recent rename of top-level git repository for the Linux code. I created a "linux-2.6" symlink pointing to "linux", but I'd like to eliminate that as well. Despite the way the patch below looks, this change consists of: - Rename "fs/xfs/linux-2.6" to be "fs/xfs/linux" - Create the "fs/xfs/linux-2.6" link - Modify "fs/xfs/Makefile", changing "linux-2.6" -> "linux" in three spots. - Modify "fs/xfs/xfs.h" to change the name of the directory that contains the "xfs_linux.h" include file. Signed-off-by: Alex Elder --- fs/xfs/Makefile | 6 +- fs/xfs/linux-2.6 | 1 + fs/xfs/linux-2.6/kmem.c | 132 --- fs/xfs/linux-2.6/kmem.h | 124 --- fs/xfs/linux-2.6/mrlock.h | 90 -- fs/xfs/linux-2.6/time.h | 36 - fs/xfs/linux-2.6/xfs_acl.c | 462 ---------- fs/xfs/linux-2.6/xfs_aops.c | 1496 ------------------------------- fs/xfs/linux-2.6/xfs_aops.h | 68 -- fs/xfs/linux-2.6/xfs_buf.c | 1874 --------------------------------------- fs/xfs/linux-2.6/xfs_buf.h | 336 ------- fs/xfs/linux-2.6/xfs_discard.c | 222 ----- fs/xfs/linux-2.6/xfs_discard.h | 10 - fs/xfs/linux-2.6/xfs_export.c | 250 ------ fs/xfs/linux-2.6/xfs_export.h | 72 -- fs/xfs/linux-2.6/xfs_file.c | 1092 ----------------------- fs/xfs/linux-2.6/xfs_fs_subr.c | 96 -- fs/xfs/linux-2.6/xfs_globals.c | 43 - fs/xfs/linux-2.6/xfs_ioctl.c | 1556 -------------------------------- fs/xfs/linux-2.6/xfs_ioctl.h | 85 -- fs/xfs/linux-2.6/xfs_ioctl32.c | 672 -------------- fs/xfs/linux-2.6/xfs_ioctl32.h | 237 ----- fs/xfs/linux-2.6/xfs_iops.c | 1201 ------------------------- fs/xfs/linux-2.6/xfs_iops.h | 30 - fs/xfs/linux-2.6/xfs_linux.h | 310 ------- fs/xfs/linux-2.6/xfs_message.c | 108 --- fs/xfs/linux-2.6/xfs_message.h | 39 - fs/xfs/linux-2.6/xfs_quotaops.c | 139 --- fs/xfs/linux-2.6/xfs_stats.c | 122 --- fs/xfs/linux-2.6/xfs_stats.h | 223 ----- fs/xfs/linux-2.6/xfs_super.c | 1766 ------------------------------------ fs/xfs/linux-2.6/xfs_super.h | 87 -- fs/xfs/linux-2.6/xfs_sync.c | 1082 ---------------------- fs/xfs/linux-2.6/xfs_sync.h | 52 -- fs/xfs/linux-2.6/xfs_sysctl.c | 252 ------ fs/xfs/linux-2.6/xfs_sysctl.h | 102 --- fs/xfs/linux-2.6/xfs_trace.c | 56 -- fs/xfs/linux-2.6/xfs_trace.h | 1746 ------------------------------------ fs/xfs/linux-2.6/xfs_vnode.h | 64 -- fs/xfs/linux-2.6/xfs_xattr.c | 241 ----- fs/xfs/linux/kmem.c | 132 +++ fs/xfs/linux/kmem.h | 124 +++ fs/xfs/linux/mrlock.h | 90 ++ fs/xfs/linux/time.h | 36 + fs/xfs/linux/xfs_acl.c | 462 ++++++++++ fs/xfs/linux/xfs_aops.c | 1496 +++++++++++++++++++++++++++++++ fs/xfs/linux/xfs_aops.h | 68 ++ fs/xfs/linux/xfs_buf.c | 1874 +++++++++++++++++++++++++++++++++++++++ fs/xfs/linux/xfs_buf.h | 336 +++++++ fs/xfs/linux/xfs_discard.c | 222 +++++ fs/xfs/linux/xfs_discard.h | 10 + fs/xfs/linux/xfs_export.c | 250 ++++++ fs/xfs/linux/xfs_export.h | 72 ++ fs/xfs/linux/xfs_file.c | 1092 +++++++++++++++++++++++ fs/xfs/linux/xfs_fs_subr.c | 96 ++ fs/xfs/linux/xfs_globals.c | 43 + fs/xfs/linux/xfs_ioctl.c | 1556 ++++++++++++++++++++++++++++++++ fs/xfs/linux/xfs_ioctl.h | 85 ++ fs/xfs/linux/xfs_ioctl32.c | 672 ++++++++++++++ fs/xfs/linux/xfs_ioctl32.h | 237 +++++ fs/xfs/linux/xfs_iops.c | 1201 +++++++++++++++++++++++++ fs/xfs/linux/xfs_iops.h | 30 + fs/xfs/linux/xfs_linux.h | 310 +++++++ fs/xfs/linux/xfs_message.c | 108 +++ fs/xfs/linux/xfs_message.h | 39 + fs/xfs/linux/xfs_quotaops.c | 139 +++ fs/xfs/linux/xfs_stats.c | 122 +++ fs/xfs/linux/xfs_stats.h | 223 +++++ fs/xfs/linux/xfs_super.c | 1766 ++++++++++++++++++++++++++++++++++++ fs/xfs/linux/xfs_super.h | 87 ++ fs/xfs/linux/xfs_sync.c | 1082 ++++++++++++++++++++++ fs/xfs/linux/xfs_sync.h | 52 ++ fs/xfs/linux/xfs_sysctl.c | 252 ++++++ fs/xfs/linux/xfs_sysctl.h | 102 +++ fs/xfs/linux/xfs_trace.c | 56 ++ fs/xfs/linux/xfs_trace.h | 1746 ++++++++++++++++++++++++++++++++++++ fs/xfs/linux/xfs_vnode.h | 64 ++ fs/xfs/linux/xfs_xattr.c | 241 +++++ fs/xfs/xfs.h | 2 +- 79 files changed, 16578 insertions(+), 16577 deletions(-) create mode 120000 fs/xfs/linux-2.6 delete mode 100644 fs/xfs/linux-2.6/kmem.c delete mode 100644 fs/xfs/linux-2.6/kmem.h delete mode 100644 fs/xfs/linux-2.6/mrlock.h delete mode 100644 fs/xfs/linux-2.6/time.h delete mode 100644 fs/xfs/linux-2.6/xfs_acl.c delete mode 100644 fs/xfs/linux-2.6/xfs_aops.c delete mode 100644 fs/xfs/linux-2.6/xfs_aops.h delete mode 100644 fs/xfs/linux-2.6/xfs_buf.c delete mode 100644 fs/xfs/linux-2.6/xfs_buf.h delete mode 100644 fs/xfs/linux-2.6/xfs_discard.c delete mode 100644 fs/xfs/linux-2.6/xfs_discard.h delete mode 100644 fs/xfs/linux-2.6/xfs_export.c delete mode 100644 fs/xfs/linux-2.6/xfs_export.h delete mode 100644 fs/xfs/linux-2.6/xfs_file.c delete mode 100644 fs/xfs/linux-2.6/xfs_fs_subr.c delete mode 100644 fs/xfs/linux-2.6/xfs_globals.c delete mode 100644 fs/xfs/linux-2.6/xfs_ioctl.c delete mode 100644 fs/xfs/linux-2.6/xfs_ioctl.h delete mode 100644 fs/xfs/linux-2.6/xfs_ioctl32.c delete mode 100644 fs/xfs/linux-2.6/xfs_ioctl32.h delete mode 100644 fs/xfs/linux-2.6/xfs_iops.c delete mode 100644 fs/xfs/linux-2.6/xfs_iops.h delete mode 100644 fs/xfs/linux-2.6/xfs_linux.h delete mode 100644 fs/xfs/linux-2.6/xfs_message.c delete mode 100644 fs/xfs/linux-2.6/xfs_message.h delete mode 100644 fs/xfs/linux-2.6/xfs_quotaops.c delete mode 100644 fs/xfs/linux-2.6/xfs_stats.c delete mode 100644 fs/xfs/linux-2.6/xfs_stats.h delete mode 100644 fs/xfs/linux-2.6/xfs_super.c delete mode 100644 fs/xfs/linux-2.6/xfs_super.h delete mode 100644 fs/xfs/linux-2.6/xfs_sync.c delete mode 100644 fs/xfs/linux-2.6/xfs_sync.h delete mode 100644 fs/xfs/linux-2.6/xfs_sysctl.c delete mode 100644 fs/xfs/linux-2.6/xfs_sysctl.h delete mode 100644 fs/xfs/linux-2.6/xfs_trace.c delete mode 100644 fs/xfs/linux-2.6/xfs_trace.h delete mode 100644 fs/xfs/linux-2.6/xfs_vnode.h delete mode 100644 fs/xfs/linux-2.6/xfs_xattr.c create mode 100644 fs/xfs/linux/kmem.c create mode 100644 fs/xfs/linux/kmem.h create mode 100644 fs/xfs/linux/mrlock.h create mode 100644 fs/xfs/linux/time.h create mode 100644 fs/xfs/linux/xfs_acl.c create mode 100644 fs/xfs/linux/xfs_aops.c create mode 100644 fs/xfs/linux/xfs_aops.h create mode 100644 fs/xfs/linux/xfs_buf.c create mode 100644 fs/xfs/linux/xfs_buf.h create mode 100644 fs/xfs/linux/xfs_discard.c create mode 100644 fs/xfs/linux/xfs_discard.h create mode 100644 fs/xfs/linux/xfs_export.c create mode 100644 fs/xfs/linux/xfs_export.h create mode 100644 fs/xfs/linux/xfs_file.c create mode 100644 fs/xfs/linux/xfs_fs_subr.c create mode 100644 fs/xfs/linux/xfs_globals.c create mode 100644 fs/xfs/linux/xfs_ioctl.c create mode 100644 fs/xfs/linux/xfs_ioctl.h create mode 100644 fs/xfs/linux/xfs_ioctl32.c create mode 100644 fs/xfs/linux/xfs_ioctl32.h create mode 100644 fs/xfs/linux/xfs_iops.c create mode 100644 fs/xfs/linux/xfs_iops.h create mode 100644 fs/xfs/linux/xfs_linux.h create mode 100644 fs/xfs/linux/xfs_message.c create mode 100644 fs/xfs/linux/xfs_message.h create mode 100644 fs/xfs/linux/xfs_quotaops.c create mode 100644 fs/xfs/linux/xfs_stats.c create mode 100644 fs/xfs/linux/xfs_stats.h create mode 100644 fs/xfs/linux/xfs_super.c create mode 100644 fs/xfs/linux/xfs_super.h create mode 100644 fs/xfs/linux/xfs_sync.c create mode 100644 fs/xfs/linux/xfs_sync.h create mode 100644 fs/xfs/linux/xfs_sysctl.c create mode 100644 fs/xfs/linux/xfs_sysctl.h create mode 100644 fs/xfs/linux/xfs_trace.c create mode 100644 fs/xfs/linux/xfs_trace.h create mode 100644 fs/xfs/linux/xfs_vnode.h create mode 100644 fs/xfs/linux/xfs_xattr.c diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile index 75bb316..dd124ff 100644 --- a/fs/xfs/Makefile +++ b/fs/xfs/Makefile @@ -16,14 +16,14 @@ # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # -ccflags-y := -I$(src) -I$(src)/linux-2.6 +ccflags-y := -I$(src) -I$(src)/linux ccflags-$(CONFIG_XFS_DEBUG) += -g XFS_LINUX := linux-2.6 obj-$(CONFIG_XFS_FS) += xfs.o -xfs-y += linux-2.6/xfs_trace.o +xfs-y += linux/xfs_trace.o xfs-$(CONFIG_XFS_QUOTA) += $(addprefix quota/, \ xfs_dquot.o \ @@ -32,7 +32,7 @@ xfs-$(CONFIG_XFS_QUOTA) += $(addprefix quota/, \ xfs_qm_syscalls.o \ xfs_qm_bhv.o \ xfs_qm.o) -xfs-$(CONFIG_XFS_QUOTA) += linux-2.6/xfs_quotaops.o +xfs-$(CONFIG_XFS_QUOTA) += linux/xfs_quotaops.o ifeq ($(CONFIG_XFS_QUOTA),y) xfs-$(CONFIG_PROC_FS) += quota/xfs_qm_stats.o diff --git a/fs/xfs/linux-2.6 b/fs/xfs/linux-2.6 new file mode 120000 index 0000000..9c52cb3 --- /dev/null +++ b/fs/xfs/linux-2.6 @@ -0,0 +1 @@ +linux \ No newline at end of file diff --git a/fs/xfs/linux-2.6/kmem.c b/fs/xfs/linux-2.6/kmem.c deleted file mode 100644 index a907de5..0000000 --- a/fs/xfs/linux-2.6/kmem.c +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include -#include -#include -#include -#include -#include -#include "time.h" -#include "kmem.h" -#include "xfs_message.h" - -/* - * Greedy allocation. May fail and may return vmalloced memory. - * - * Must be freed using kmem_free_large. - */ -void * -kmem_zalloc_greedy(size_t *size, size_t minsize, size_t maxsize) -{ - void *ptr; - size_t kmsize = maxsize; - - while (!(ptr = kmem_zalloc_large(kmsize))) { - if ((kmsize >>= 1) <= minsize) - kmsize = minsize; - } - if (ptr) - *size = kmsize; - return ptr; -} - -void * -kmem_alloc(size_t size, unsigned int __nocast flags) -{ - int retries = 0; - gfp_t lflags = kmem_flags_convert(flags); - void *ptr; - - do { - ptr = kmalloc(size, lflags); - if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) - return ptr; - if (!(++retries % 100)) - xfs_err(NULL, - "possible memory allocation deadlock in %s (mode:0x%x)", - __func__, lflags); - congestion_wait(BLK_RW_ASYNC, HZ/50); - } while (1); -} - -void * -kmem_zalloc(size_t size, unsigned int __nocast flags) -{ - void *ptr; - - ptr = kmem_alloc(size, flags); - if (ptr) - memset((char *)ptr, 0, (int)size); - return ptr; -} - -void -kmem_free(const void *ptr) -{ - if (!is_vmalloc_addr(ptr)) { - kfree(ptr); - } else { - vfree(ptr); - } -} - -void * -kmem_realloc(const void *ptr, size_t newsize, size_t oldsize, - unsigned int __nocast flags) -{ - void *new; - - new = kmem_alloc(newsize, flags); - if (ptr) { - if (new) - memcpy(new, ptr, - ((oldsize < newsize) ? oldsize : newsize)); - kmem_free(ptr); - } - return new; -} - -void * -kmem_zone_alloc(kmem_zone_t *zone, unsigned int __nocast flags) -{ - int retries = 0; - gfp_t lflags = kmem_flags_convert(flags); - void *ptr; - - do { - ptr = kmem_cache_alloc(zone, lflags); - if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) - return ptr; - if (!(++retries % 100)) - xfs_err(NULL, - "possible memory allocation deadlock in %s (mode:0x%x)", - __func__, lflags); - congestion_wait(BLK_RW_ASYNC, HZ/50); - } while (1); -} - -void * -kmem_zone_zalloc(kmem_zone_t *zone, unsigned int __nocast flags) -{ - void *ptr; - - ptr = kmem_zone_alloc(zone, flags); - if (ptr) - memset((char *)ptr, 0, kmem_cache_size(zone)); - return ptr; -} diff --git a/fs/xfs/linux-2.6/kmem.h b/fs/xfs/linux-2.6/kmem.h deleted file mode 100644 index f7c8f7a..0000000 --- a/fs/xfs/linux-2.6/kmem.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_SUPPORT_KMEM_H__ -#define __XFS_SUPPORT_KMEM_H__ - -#include -#include -#include -#include - -/* - * General memory allocation interfaces - */ - -#define KM_SLEEP 0x0001u -#define KM_NOSLEEP 0x0002u -#define KM_NOFS 0x0004u -#define KM_MAYFAIL 0x0008u - -/* - * We use a special process flag to avoid recursive callbacks into - * the filesystem during transactions. We will also issue our own - * warnings, so we explicitly skip any generic ones (silly of us). - */ -static inline gfp_t -kmem_flags_convert(unsigned int __nocast flags) -{ - gfp_t lflags; - - BUG_ON(flags & ~(KM_SLEEP|KM_NOSLEEP|KM_NOFS|KM_MAYFAIL)); - - if (flags & KM_NOSLEEP) { - lflags = GFP_ATOMIC | __GFP_NOWARN; - } else { - lflags = GFP_KERNEL | __GFP_NOWARN; - if ((current->flags & PF_FSTRANS) || (flags & KM_NOFS)) - lflags &= ~__GFP_FS; - } - return lflags; -} - -extern void *kmem_alloc(size_t, unsigned int __nocast); -extern void *kmem_zalloc(size_t, unsigned int __nocast); -extern void *kmem_realloc(const void *, size_t, size_t, unsigned int __nocast); -extern void kmem_free(const void *); - -static inline void *kmem_zalloc_large(size_t size) -{ - void *ptr; - - ptr = vmalloc(size); - if (ptr) - memset(ptr, 0, size); - return ptr; -} -static inline void kmem_free_large(void *ptr) -{ - vfree(ptr); -} - -extern void *kmem_zalloc_greedy(size_t *, size_t, size_t); - -/* - * Zone interfaces - */ - -#define KM_ZONE_HWALIGN SLAB_HWCACHE_ALIGN -#define KM_ZONE_RECLAIM SLAB_RECLAIM_ACCOUNT -#define KM_ZONE_SPREAD SLAB_MEM_SPREAD - -#define kmem_zone kmem_cache -#define kmem_zone_t struct kmem_cache - -static inline kmem_zone_t * -kmem_zone_init(int size, char *zone_name) -{ - return kmem_cache_create(zone_name, size, 0, 0, NULL); -} - -static inline kmem_zone_t * -kmem_zone_init_flags(int size, char *zone_name, unsigned long flags, - void (*construct)(void *)) -{ - return kmem_cache_create(zone_name, size, 0, flags, construct); -} - -static inline void -kmem_zone_free(kmem_zone_t *zone, void *ptr) -{ - kmem_cache_free(zone, ptr); -} - -static inline void -kmem_zone_destroy(kmem_zone_t *zone) -{ - if (zone) - kmem_cache_destroy(zone); -} - -extern void *kmem_zone_alloc(kmem_zone_t *, unsigned int __nocast); -extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast); - -static inline int -kmem_shake_allow(gfp_t gfp_mask) -{ - return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS)); -} - -#endif /* __XFS_SUPPORT_KMEM_H__ */ diff --git a/fs/xfs/linux-2.6/mrlock.h b/fs/xfs/linux-2.6/mrlock.h deleted file mode 100644 index ff6a198..0000000 --- a/fs/xfs/linux-2.6/mrlock.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_SUPPORT_MRLOCK_H__ -#define __XFS_SUPPORT_MRLOCK_H__ - -#include - -typedef struct { - struct rw_semaphore mr_lock; -#ifdef DEBUG - int mr_writer; -#endif -} mrlock_t; - -#ifdef DEBUG -#define mrinit(mrp, name) \ - do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0) -#else -#define mrinit(mrp, name) \ - do { init_rwsem(&(mrp)->mr_lock); } while (0) -#endif - -#define mrlock_init(mrp, t,n,s) mrinit(mrp, n) -#define mrfree(mrp) do { } while (0) - -static inline void mraccess_nested(mrlock_t *mrp, int subclass) -{ - down_read_nested(&mrp->mr_lock, subclass); -} - -static inline void mrupdate_nested(mrlock_t *mrp, int subclass) -{ - down_write_nested(&mrp->mr_lock, subclass); -#ifdef DEBUG - mrp->mr_writer = 1; -#endif -} - -static inline int mrtryaccess(mrlock_t *mrp) -{ - return down_read_trylock(&mrp->mr_lock); -} - -static inline int mrtryupdate(mrlock_t *mrp) -{ - if (!down_write_trylock(&mrp->mr_lock)) - return 0; -#ifdef DEBUG - mrp->mr_writer = 1; -#endif - return 1; -} - -static inline void mrunlock_excl(mrlock_t *mrp) -{ -#ifdef DEBUG - mrp->mr_writer = 0; -#endif - up_write(&mrp->mr_lock); -} - -static inline void mrunlock_shared(mrlock_t *mrp) -{ - up_read(&mrp->mr_lock); -} - -static inline void mrdemote(mrlock_t *mrp) -{ -#ifdef DEBUG - mrp->mr_writer = 0; -#endif - downgrade_write(&mrp->mr_lock); -} - -#endif /* __XFS_SUPPORT_MRLOCK_H__ */ diff --git a/fs/xfs/linux-2.6/time.h b/fs/xfs/linux-2.6/time.h deleted file mode 100644 index 387e695..0000000 --- a/fs/xfs/linux-2.6/time.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_SUPPORT_TIME_H__ -#define __XFS_SUPPORT_TIME_H__ - -#include -#include - -typedef struct timespec timespec_t; - -static inline void delay(long ticks) -{ - schedule_timeout_uninterruptible(ticks); -} - -static inline void nanotime(struct timespec *tvp) -{ - *tvp = CURRENT_TIME; -} - -#endif /* __XFS_SUPPORT_TIME_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_acl.c b/fs/xfs/linux-2.6/xfs_acl.c deleted file mode 100644 index 115ac69..0000000 --- a/fs/xfs/linux-2.6/xfs_acl.c +++ /dev/null @@ -1,462 +0,0 @@ -/* - * Copyright (c) 2008, Christoph Hellwig - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_acl.h" -#include "xfs_attr.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "xfs_vnodeops.h" -#include "xfs_trace.h" -#include -#include -#include - - -/* - * Locking scheme: - * - all ACL updates are protected by inode->i_mutex, which is taken before - * calling into this file. - */ - -STATIC struct posix_acl * -xfs_acl_from_disk(struct xfs_acl *aclp) -{ - struct posix_acl_entry *acl_e; - struct posix_acl *acl; - struct xfs_acl_entry *ace; - int count, i; - - count = be32_to_cpu(aclp->acl_cnt); - - acl = posix_acl_alloc(count, GFP_KERNEL); - if (!acl) - return ERR_PTR(-ENOMEM); - - for (i = 0; i < count; i++) { - acl_e = &acl->a_entries[i]; - ace = &aclp->acl_entry[i]; - - /* - * The tag is 32 bits on disk and 16 bits in core. - * - * Because every access to it goes through the core - * format first this is not a problem. - */ - acl_e->e_tag = be32_to_cpu(ace->ae_tag); - acl_e->e_perm = be16_to_cpu(ace->ae_perm); - - switch (acl_e->e_tag) { - case ACL_USER: - case ACL_GROUP: - acl_e->e_id = be32_to_cpu(ace->ae_id); - break; - case ACL_USER_OBJ: - case ACL_GROUP_OBJ: - case ACL_MASK: - case ACL_OTHER: - acl_e->e_id = ACL_UNDEFINED_ID; - break; - default: - goto fail; - } - } - return acl; - -fail: - posix_acl_release(acl); - return ERR_PTR(-EINVAL); -} - -STATIC void -xfs_acl_to_disk(struct xfs_acl *aclp, const struct posix_acl *acl) -{ - const struct posix_acl_entry *acl_e; - struct xfs_acl_entry *ace; - int i; - - aclp->acl_cnt = cpu_to_be32(acl->a_count); - for (i = 0; i < acl->a_count; i++) { - ace = &aclp->acl_entry[i]; - acl_e = &acl->a_entries[i]; - - ace->ae_tag = cpu_to_be32(acl_e->e_tag); - ace->ae_id = cpu_to_be32(acl_e->e_id); - ace->ae_perm = cpu_to_be16(acl_e->e_perm); - } -} - -struct posix_acl * -xfs_get_acl(struct inode *inode, int type) -{ - struct xfs_inode *ip = XFS_I(inode); - struct posix_acl *acl; - struct xfs_acl *xfs_acl; - int len = sizeof(struct xfs_acl); - unsigned char *ea_name; - int error; - - acl = get_cached_acl(inode, type); - if (acl != ACL_NOT_CACHED) - return acl; - - switch (type) { - case ACL_TYPE_ACCESS: - ea_name = SGI_ACL_FILE; - break; - case ACL_TYPE_DEFAULT: - ea_name = SGI_ACL_DEFAULT; - break; - default: - BUG(); - } - - /* - * If we have a cached ACLs value just return it, not need to - * go out to the disk. - */ - - xfs_acl = kzalloc(sizeof(struct xfs_acl), GFP_KERNEL); - if (!xfs_acl) - return ERR_PTR(-ENOMEM); - - error = -xfs_attr_get(ip, ea_name, (unsigned char *)xfs_acl, - &len, ATTR_ROOT); - if (error) { - /* - * If the attribute doesn't exist make sure we have a negative - * cache entry, for any other error assume it is transient and - * leave the cache entry as ACL_NOT_CACHED. - */ - if (error == -ENOATTR) { - acl = NULL; - goto out_update_cache; - } - goto out; - } - - acl = xfs_acl_from_disk(xfs_acl); - if (IS_ERR(acl)) - goto out; - - out_update_cache: - set_cached_acl(inode, type, acl); - out: - kfree(xfs_acl); - return acl; -} - -STATIC int -xfs_set_acl(struct inode *inode, int type, struct posix_acl *acl) -{ - struct xfs_inode *ip = XFS_I(inode); - unsigned char *ea_name; - int error; - - if (S_ISLNK(inode->i_mode)) - return -EOPNOTSUPP; - - switch (type) { - case ACL_TYPE_ACCESS: - ea_name = SGI_ACL_FILE; - break; - case ACL_TYPE_DEFAULT: - if (!S_ISDIR(inode->i_mode)) - return acl ? -EACCES : 0; - ea_name = SGI_ACL_DEFAULT; - break; - default: - return -EINVAL; - } - - if (acl) { - struct xfs_acl *xfs_acl; - int len; - - xfs_acl = kzalloc(sizeof(struct xfs_acl), GFP_KERNEL); - if (!xfs_acl) - return -ENOMEM; - - xfs_acl_to_disk(xfs_acl, acl); - len = sizeof(struct xfs_acl) - - (sizeof(struct xfs_acl_entry) * - (XFS_ACL_MAX_ENTRIES - acl->a_count)); - - error = -xfs_attr_set(ip, ea_name, (unsigned char *)xfs_acl, - len, ATTR_ROOT); - - kfree(xfs_acl); - } else { - /* - * A NULL ACL argument means we want to remove the ACL. - */ - error = -xfs_attr_remove(ip, ea_name, ATTR_ROOT); - - /* - * If the attribute didn't exist to start with that's fine. - */ - if (error == -ENOATTR) - error = 0; - } - - if (!error) - set_cached_acl(inode, type, acl); - return error; -} - -int -xfs_check_acl(struct inode *inode, int mask, unsigned int flags) -{ - struct xfs_inode *ip; - struct posix_acl *acl; - int error = -EAGAIN; - - ip = XFS_I(inode); - trace_xfs_check_acl(ip); - - /* - * If there is no attribute fork no ACL exists on this inode and - * we can skip the whole exercise. - */ - if (!XFS_IFORK_Q(ip)) - return -EAGAIN; - - if (flags & IPERM_FLAG_RCU) { - if (!negative_cached_acl(inode, ACL_TYPE_ACCESS)) - return -ECHILD; - return -EAGAIN; - } - - acl = xfs_get_acl(inode, ACL_TYPE_ACCESS); - if (IS_ERR(acl)) - return PTR_ERR(acl); - if (acl) { - error = posix_acl_permission(inode, acl, mask); - posix_acl_release(acl); - } - - return error; -} - -static int -xfs_set_mode(struct inode *inode, mode_t mode) -{ - int error = 0; - - if (mode != inode->i_mode) { - struct iattr iattr; - - iattr.ia_valid = ATTR_MODE | ATTR_CTIME; - iattr.ia_mode = mode; - iattr.ia_ctime = current_fs_time(inode->i_sb); - - error = -xfs_setattr_nonsize(XFS_I(inode), &iattr, XFS_ATTR_NOACL); - } - - return error; -} - -static int -xfs_acl_exists(struct inode *inode, unsigned char *name) -{ - int len = sizeof(struct xfs_acl); - - return (xfs_attr_get(XFS_I(inode), name, NULL, &len, - ATTR_ROOT|ATTR_KERNOVAL) == 0); -} - -int -posix_acl_access_exists(struct inode *inode) -{ - return xfs_acl_exists(inode, SGI_ACL_FILE); -} - -int -posix_acl_default_exists(struct inode *inode) -{ - if (!S_ISDIR(inode->i_mode)) - return 0; - return xfs_acl_exists(inode, SGI_ACL_DEFAULT); -} - -/* - * No need for i_mutex because the inode is not yet exposed to the VFS. - */ -int -xfs_inherit_acl(struct inode *inode, struct posix_acl *default_acl) -{ - struct posix_acl *clone; - mode_t mode; - int error = 0, inherit = 0; - - if (S_ISDIR(inode->i_mode)) { - error = xfs_set_acl(inode, ACL_TYPE_DEFAULT, default_acl); - if (error) - return error; - } - - clone = posix_acl_clone(default_acl, GFP_KERNEL); - if (!clone) - return -ENOMEM; - - mode = inode->i_mode; - error = posix_acl_create_masq(clone, &mode); - if (error < 0) - goto out_release_clone; - - /* - * If posix_acl_create_masq returns a positive value we need to - * inherit a permission that can't be represented using the Unix - * mode bits and we actually need to set an ACL. - */ - if (error > 0) - inherit = 1; - - error = xfs_set_mode(inode, mode); - if (error) - goto out_release_clone; - - if (inherit) - error = xfs_set_acl(inode, ACL_TYPE_ACCESS, clone); - - out_release_clone: - posix_acl_release(clone); - return error; -} - -int -xfs_acl_chmod(struct inode *inode) -{ - struct posix_acl *acl, *clone; - int error; - - if (S_ISLNK(inode->i_mode)) - return -EOPNOTSUPP; - - acl = xfs_get_acl(inode, ACL_TYPE_ACCESS); - if (IS_ERR(acl) || !acl) - return PTR_ERR(acl); - - clone = posix_acl_clone(acl, GFP_KERNEL); - posix_acl_release(acl); - if (!clone) - return -ENOMEM; - - error = posix_acl_chmod_masq(clone, inode->i_mode); - if (!error) - error = xfs_set_acl(inode, ACL_TYPE_ACCESS, clone); - - posix_acl_release(clone); - return error; -} - -static int -xfs_xattr_acl_get(struct dentry *dentry, const char *name, - void *value, size_t size, int type) -{ - struct posix_acl *acl; - int error; - - acl = xfs_get_acl(dentry->d_inode, type); - if (IS_ERR(acl)) - return PTR_ERR(acl); - if (acl == NULL) - return -ENODATA; - - error = posix_acl_to_xattr(acl, value, size); - posix_acl_release(acl); - - return error; -} - -static int -xfs_xattr_acl_set(struct dentry *dentry, const char *name, - const void *value, size_t size, int flags, int type) -{ - struct inode *inode = dentry->d_inode; - struct posix_acl *acl = NULL; - int error = 0; - - if (flags & XATTR_CREATE) - return -EINVAL; - if (type == ACL_TYPE_DEFAULT && !S_ISDIR(inode->i_mode)) - return value ? -EACCES : 0; - if ((current_fsuid() != inode->i_uid) && !capable(CAP_FOWNER)) - return -EPERM; - - if (!value) - goto set_acl; - - acl = posix_acl_from_xattr(value, size); - if (!acl) { - /* - * acl_set_file(3) may request that we set default ACLs with - * zero length -- defend (gracefully) against that here. - */ - goto out; - } - if (IS_ERR(acl)) { - error = PTR_ERR(acl); - goto out; - } - - error = posix_acl_valid(acl); - if (error) - goto out_release; - - error = -EINVAL; - if (acl->a_count > XFS_ACL_MAX_ENTRIES) - goto out_release; - - if (type == ACL_TYPE_ACCESS) { - mode_t mode = inode->i_mode; - error = posix_acl_equiv_mode(acl, &mode); - - if (error <= 0) { - posix_acl_release(acl); - acl = NULL; - - if (error < 0) - return error; - } - - error = xfs_set_mode(inode, mode); - if (error) - goto out_release; - } - - set_acl: - error = xfs_set_acl(inode, type, acl); - out_release: - posix_acl_release(acl); - out: - return error; -} - -const struct xattr_handler xfs_xattr_acl_access_handler = { - .prefix = POSIX_ACL_XATTR_ACCESS, - .flags = ACL_TYPE_ACCESS, - .get = xfs_xattr_acl_get, - .set = xfs_xattr_acl_set, -}; - -const struct xattr_handler xfs_xattr_acl_default_handler = { - .prefix = POSIX_ACL_XATTR_DEFAULT, - .flags = ACL_TYPE_DEFAULT, - .get = xfs_xattr_acl_get, - .set = xfs_xattr_acl_set, -}; diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c deleted file mode 100644 index 26384fe..0000000 --- a/fs/xfs/linux-2.6/xfs_aops.c +++ /dev/null @@ -1,1496 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_trans.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_alloc.h" -#include "xfs_error.h" -#include "xfs_rw.h" -#include "xfs_iomap.h" -#include "xfs_vnodeops.h" -#include "xfs_trace.h" -#include "xfs_bmap.h" -#include -#include -#include -#include - - -/* - * Prime number of hash buckets since address is used as the key. - */ -#define NVSYNC 37 -#define to_ioend_wq(v) (&xfs_ioend_wq[((unsigned long)v) % NVSYNC]) -static wait_queue_head_t xfs_ioend_wq[NVSYNC]; - -void __init -xfs_ioend_init(void) -{ - int i; - - for (i = 0; i < NVSYNC; i++) - init_waitqueue_head(&xfs_ioend_wq[i]); -} - -void -xfs_ioend_wait( - xfs_inode_t *ip) -{ - wait_queue_head_t *wq = to_ioend_wq(ip); - - wait_event(*wq, (atomic_read(&ip->i_iocount) == 0)); -} - -STATIC void -xfs_ioend_wake( - xfs_inode_t *ip) -{ - if (atomic_dec_and_test(&ip->i_iocount)) - wake_up(to_ioend_wq(ip)); -} - -void -xfs_count_page_state( - struct page *page, - int *delalloc, - int *unwritten) -{ - struct buffer_head *bh, *head; - - *delalloc = *unwritten = 0; - - bh = head = page_buffers(page); - do { - if (buffer_unwritten(bh)) - (*unwritten) = 1; - else if (buffer_delay(bh)) - (*delalloc) = 1; - } while ((bh = bh->b_this_page) != head); -} - -STATIC struct block_device * -xfs_find_bdev_for_inode( - struct inode *inode) -{ - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - - if (XFS_IS_REALTIME_INODE(ip)) - return mp->m_rtdev_targp->bt_bdev; - else - return mp->m_ddev_targp->bt_bdev; -} - -/* - * We're now finished for good with this ioend structure. - * Update the page state via the associated buffer_heads, - * release holds on the inode and bio, and finally free - * up memory. Do not use the ioend after this. - */ -STATIC void -xfs_destroy_ioend( - xfs_ioend_t *ioend) -{ - struct buffer_head *bh, *next; - struct xfs_inode *ip = XFS_I(ioend->io_inode); - - for (bh = ioend->io_buffer_head; bh; bh = next) { - next = bh->b_private; - bh->b_end_io(bh, !ioend->io_error); - } - - /* - * Volume managers supporting multiple paths can send back ENODEV - * when the final path disappears. In this case continuing to fill - * the page cache with dirty data which cannot be written out is - * evil, so prevent that. - */ - if (unlikely(ioend->io_error == -ENODEV)) { - xfs_do_force_shutdown(ip->i_mount, SHUTDOWN_DEVICE_REQ, - __FILE__, __LINE__); - } - - xfs_ioend_wake(ip); - mempool_free(ioend, xfs_ioend_pool); -} - -/* - * If the end of the current ioend is beyond the current EOF, - * return the new EOF value, otherwise zero. - */ -STATIC xfs_fsize_t -xfs_ioend_new_eof( - xfs_ioend_t *ioend) -{ - xfs_inode_t *ip = XFS_I(ioend->io_inode); - xfs_fsize_t isize; - xfs_fsize_t bsize; - - bsize = ioend->io_offset + ioend->io_size; - isize = MAX(ip->i_size, ip->i_new_size); - isize = MIN(isize, bsize); - return isize > ip->i_d.di_size ? isize : 0; -} - -/* - * Update on-disk file size now that data has been written to disk. The - * current in-memory file size is i_size. If a write is beyond eof i_new_size - * will be the intended file size until i_size is updated. If this write does - * not extend all the way to the valid file size then restrict this update to - * the end of the write. - * - * This function does not block as blocking on the inode lock in IO completion - * can lead to IO completion order dependency deadlocks.. If it can't get the - * inode ilock it will return EAGAIN. Callers must handle this. - */ -STATIC int -xfs_setfilesize( - xfs_ioend_t *ioend) -{ - xfs_inode_t *ip = XFS_I(ioend->io_inode); - xfs_fsize_t isize; - - if (unlikely(ioend->io_error)) - return 0; - - if (!xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) - return EAGAIN; - - isize = xfs_ioend_new_eof(ioend); - if (isize) { - trace_xfs_setfilesize(ip, ioend->io_offset, ioend->io_size); - ip->i_d.di_size = isize; - xfs_mark_inode_dirty(ip); - } - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - return 0; -} - -/* - * Schedule IO completion handling on the final put of an ioend. - */ -STATIC void -xfs_finish_ioend( - struct xfs_ioend *ioend) -{ - if (atomic_dec_and_test(&ioend->io_remaining)) { - if (ioend->io_type == IO_UNWRITTEN) - queue_work(xfsconvertd_workqueue, &ioend->io_work); - else - queue_work(xfsdatad_workqueue, &ioend->io_work); - } -} - -/* - * IO write completion. - */ -STATIC void -xfs_end_io( - struct work_struct *work) -{ - xfs_ioend_t *ioend = container_of(work, xfs_ioend_t, io_work); - struct xfs_inode *ip = XFS_I(ioend->io_inode); - int error = 0; - - /* - * For unwritten extents we need to issue transactions to convert a - * range to normal written extens after the data I/O has finished. - */ - if (ioend->io_type == IO_UNWRITTEN && - likely(!ioend->io_error && !XFS_FORCED_SHUTDOWN(ip->i_mount))) { - - error = xfs_iomap_write_unwritten(ip, ioend->io_offset, - ioend->io_size); - if (error) - ioend->io_error = error; - } - - /* - * We might have to update the on-disk file size after extending - * writes. - */ - error = xfs_setfilesize(ioend); - ASSERT(!error || error == EAGAIN); - - /* - * If we didn't complete processing of the ioend, requeue it to the - * tail of the workqueue for another attempt later. Otherwise destroy - * it. - */ - if (error == EAGAIN) { - atomic_inc(&ioend->io_remaining); - xfs_finish_ioend(ioend); - /* ensure we don't spin on blocked ioends */ - delay(1); - } else { - if (ioend->io_iocb) - aio_complete(ioend->io_iocb, ioend->io_result, 0); - xfs_destroy_ioend(ioend); - } -} - -/* - * Call IO completion handling in caller context on the final put of an ioend. - */ -STATIC void -xfs_finish_ioend_sync( - struct xfs_ioend *ioend) -{ - if (atomic_dec_and_test(&ioend->io_remaining)) - xfs_end_io(&ioend->io_work); -} - -/* - * Allocate and initialise an IO completion structure. - * We need to track unwritten extent write completion here initially. - * We'll need to extend this for updating the ondisk inode size later - * (vs. incore size). - */ -STATIC xfs_ioend_t * -xfs_alloc_ioend( - struct inode *inode, - unsigned int type) -{ - xfs_ioend_t *ioend; - - ioend = mempool_alloc(xfs_ioend_pool, GFP_NOFS); - - /* - * Set the count to 1 initially, which will prevent an I/O - * completion callback from happening before we have started - * all the I/O from calling the completion routine too early. - */ - atomic_set(&ioend->io_remaining, 1); - ioend->io_error = 0; - ioend->io_list = NULL; - ioend->io_type = type; - ioend->io_inode = inode; - ioend->io_buffer_head = NULL; - ioend->io_buffer_tail = NULL; - atomic_inc(&XFS_I(ioend->io_inode)->i_iocount); - ioend->io_offset = 0; - ioend->io_size = 0; - ioend->io_iocb = NULL; - ioend->io_result = 0; - - INIT_WORK(&ioend->io_work, xfs_end_io); - return ioend; -} - -STATIC int -xfs_map_blocks( - struct inode *inode, - loff_t offset, - struct xfs_bmbt_irec *imap, - int type, - int nonblocking) -{ - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - ssize_t count = 1 << inode->i_blkbits; - xfs_fileoff_t offset_fsb, end_fsb; - int error = 0; - int bmapi_flags = XFS_BMAPI_ENTIRE; - int nimaps = 1; - - if (XFS_FORCED_SHUTDOWN(mp)) - return -XFS_ERROR(EIO); - - if (type == IO_UNWRITTEN) - bmapi_flags |= XFS_BMAPI_IGSTATE; - - if (!xfs_ilock_nowait(ip, XFS_ILOCK_SHARED)) { - if (nonblocking) - return -XFS_ERROR(EAGAIN); - xfs_ilock(ip, XFS_ILOCK_SHARED); - } - - ASSERT(ip->i_d.di_format != XFS_DINODE_FMT_BTREE || - (ip->i_df.if_flags & XFS_IFEXTENTS)); - ASSERT(offset <= mp->m_maxioffset); - - if (offset + count > mp->m_maxioffset) - count = mp->m_maxioffset - offset; - end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + count); - offset_fsb = XFS_B_TO_FSBT(mp, offset); - error = xfs_bmapi(NULL, ip, offset_fsb, end_fsb - offset_fsb, - bmapi_flags, NULL, 0, imap, &nimaps, NULL); - xfs_iunlock(ip, XFS_ILOCK_SHARED); - - if (error) - return -XFS_ERROR(error); - - if (type == IO_DELALLOC && - (!nimaps || isnullstartblock(imap->br_startblock))) { - error = xfs_iomap_write_allocate(ip, offset, count, imap); - if (!error) - trace_xfs_map_blocks_alloc(ip, offset, count, type, imap); - return -XFS_ERROR(error); - } - -#ifdef DEBUG - if (type == IO_UNWRITTEN) { - ASSERT(nimaps); - ASSERT(imap->br_startblock != HOLESTARTBLOCK); - ASSERT(imap->br_startblock != DELAYSTARTBLOCK); - } -#endif - if (nimaps) - trace_xfs_map_blocks_found(ip, offset, count, type, imap); - return 0; -} - -STATIC int -xfs_imap_valid( - struct inode *inode, - struct xfs_bmbt_irec *imap, - xfs_off_t offset) -{ - offset >>= inode->i_blkbits; - - return offset >= imap->br_startoff && - offset < imap->br_startoff + imap->br_blockcount; -} - -/* - * BIO completion handler for buffered IO. - */ -STATIC void -xfs_end_bio( - struct bio *bio, - int error) -{ - xfs_ioend_t *ioend = bio->bi_private; - - ASSERT(atomic_read(&bio->bi_cnt) >= 1); - ioend->io_error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? 0 : error; - - /* Toss bio and pass work off to an xfsdatad thread */ - bio->bi_private = NULL; - bio->bi_end_io = NULL; - bio_put(bio); - - xfs_finish_ioend(ioend); -} - -STATIC void -xfs_submit_ioend_bio( - struct writeback_control *wbc, - xfs_ioend_t *ioend, - struct bio *bio) -{ - atomic_inc(&ioend->io_remaining); - bio->bi_private = ioend; - bio->bi_end_io = xfs_end_bio; - - /* - * If the I/O is beyond EOF we mark the inode dirty immediately - * but don't update the inode size until I/O completion. - */ - if (xfs_ioend_new_eof(ioend)) - xfs_mark_inode_dirty(XFS_I(ioend->io_inode)); - - submit_bio(wbc->sync_mode == WB_SYNC_ALL ? WRITE_SYNC : WRITE, bio); -} - -STATIC struct bio * -xfs_alloc_ioend_bio( - struct buffer_head *bh) -{ - int nvecs = bio_get_nr_vecs(bh->b_bdev); - struct bio *bio = bio_alloc(GFP_NOIO, nvecs); - - ASSERT(bio->bi_private == NULL); - bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9); - bio->bi_bdev = bh->b_bdev; - return bio; -} - -STATIC void -xfs_start_buffer_writeback( - struct buffer_head *bh) -{ - ASSERT(buffer_mapped(bh)); - ASSERT(buffer_locked(bh)); - ASSERT(!buffer_delay(bh)); - ASSERT(!buffer_unwritten(bh)); - - mark_buffer_async_write(bh); - set_buffer_uptodate(bh); - clear_buffer_dirty(bh); -} - -STATIC void -xfs_start_page_writeback( - struct page *page, - int clear_dirty, - int buffers) -{ - ASSERT(PageLocked(page)); - ASSERT(!PageWriteback(page)); - if (clear_dirty) - clear_page_dirty_for_io(page); - set_page_writeback(page); - unlock_page(page); - /* If no buffers on the page are to be written, finish it here */ - if (!buffers) - end_page_writeback(page); -} - -static inline int bio_add_buffer(struct bio *bio, struct buffer_head *bh) -{ - return bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh)); -} - -/* - * Submit all of the bios for all of the ioends we have saved up, covering the - * initial writepage page and also any probed pages. - * - * Because we may have multiple ioends spanning a page, we need to start - * writeback on all the buffers before we submit them for I/O. If we mark the - * buffers as we got, then we can end up with a page that only has buffers - * marked async write and I/O complete on can occur before we mark the other - * buffers async write. - * - * The end result of this is that we trip a bug in end_page_writeback() because - * we call it twice for the one page as the code in end_buffer_async_write() - * assumes that all buffers on the page are started at the same time. - * - * The fix is two passes across the ioend list - one to start writeback on the - * buffer_heads, and then submit them for I/O on the second pass. - */ -STATIC void -xfs_submit_ioend( - struct writeback_control *wbc, - xfs_ioend_t *ioend) -{ - xfs_ioend_t *head = ioend; - xfs_ioend_t *next; - struct buffer_head *bh; - struct bio *bio; - sector_t lastblock = 0; - - /* Pass 1 - start writeback */ - do { - next = ioend->io_list; - for (bh = ioend->io_buffer_head; bh; bh = bh->b_private) - xfs_start_buffer_writeback(bh); - } while ((ioend = next) != NULL); - - /* Pass 2 - submit I/O */ - ioend = head; - do { - next = ioend->io_list; - bio = NULL; - - for (bh = ioend->io_buffer_head; bh; bh = bh->b_private) { - - if (!bio) { - retry: - bio = xfs_alloc_ioend_bio(bh); - } else if (bh->b_blocknr != lastblock + 1) { - xfs_submit_ioend_bio(wbc, ioend, bio); - goto retry; - } - - if (bio_add_buffer(bio, bh) != bh->b_size) { - xfs_submit_ioend_bio(wbc, ioend, bio); - goto retry; - } - - lastblock = bh->b_blocknr; - } - if (bio) - xfs_submit_ioend_bio(wbc, ioend, bio); - xfs_finish_ioend(ioend); - } while ((ioend = next) != NULL); -} - -/* - * Cancel submission of all buffer_heads so far in this endio. - * Toss the endio too. Only ever called for the initial page - * in a writepage request, so only ever one page. - */ -STATIC void -xfs_cancel_ioend( - xfs_ioend_t *ioend) -{ - xfs_ioend_t *next; - struct buffer_head *bh, *next_bh; - - do { - next = ioend->io_list; - bh = ioend->io_buffer_head; - do { - next_bh = bh->b_private; - clear_buffer_async_write(bh); - unlock_buffer(bh); - } while ((bh = next_bh) != NULL); - - xfs_ioend_wake(XFS_I(ioend->io_inode)); - mempool_free(ioend, xfs_ioend_pool); - } while ((ioend = next) != NULL); -} - -/* - * Test to see if we've been building up a completion structure for - * earlier buffers -- if so, we try to append to this ioend if we - * can, otherwise we finish off any current ioend and start another. - * Return true if we've finished the given ioend. - */ -STATIC void -xfs_add_to_ioend( - struct inode *inode, - struct buffer_head *bh, - xfs_off_t offset, - unsigned int type, - xfs_ioend_t **result, - int need_ioend) -{ - xfs_ioend_t *ioend = *result; - - if (!ioend || need_ioend || type != ioend->io_type) { - xfs_ioend_t *previous = *result; - - ioend = xfs_alloc_ioend(inode, type); - ioend->io_offset = offset; - ioend->io_buffer_head = bh; - ioend->io_buffer_tail = bh; - if (previous) - previous->io_list = ioend; - *result = ioend; - } else { - ioend->io_buffer_tail->b_private = bh; - ioend->io_buffer_tail = bh; - } - - bh->b_private = NULL; - ioend->io_size += bh->b_size; -} - -STATIC void -xfs_map_buffer( - struct inode *inode, - struct buffer_head *bh, - struct xfs_bmbt_irec *imap, - xfs_off_t offset) -{ - sector_t bn; - struct xfs_mount *m = XFS_I(inode)->i_mount; - xfs_off_t iomap_offset = XFS_FSB_TO_B(m, imap->br_startoff); - xfs_daddr_t iomap_bn = xfs_fsb_to_db(XFS_I(inode), imap->br_startblock); - - ASSERT(imap->br_startblock != HOLESTARTBLOCK); - ASSERT(imap->br_startblock != DELAYSTARTBLOCK); - - bn = (iomap_bn >> (inode->i_blkbits - BBSHIFT)) + - ((offset - iomap_offset) >> inode->i_blkbits); - - ASSERT(bn || XFS_IS_REALTIME_INODE(XFS_I(inode))); - - bh->b_blocknr = bn; - set_buffer_mapped(bh); -} - -STATIC void -xfs_map_at_offset( - struct inode *inode, - struct buffer_head *bh, - struct xfs_bmbt_irec *imap, - xfs_off_t offset) -{ - ASSERT(imap->br_startblock != HOLESTARTBLOCK); - ASSERT(imap->br_startblock != DELAYSTARTBLOCK); - - xfs_map_buffer(inode, bh, imap, offset); - set_buffer_mapped(bh); - clear_buffer_delay(bh); - clear_buffer_unwritten(bh); -} - -/* - * Test if a given page is suitable for writing as part of an unwritten - * or delayed allocate extent. - */ -STATIC int -xfs_is_delayed_page( - struct page *page, - unsigned int type) -{ - if (PageWriteback(page)) - return 0; - - if (page->mapping && page_has_buffers(page)) { - struct buffer_head *bh, *head; - int acceptable = 0; - - bh = head = page_buffers(page); - do { - if (buffer_unwritten(bh)) - acceptable = (type == IO_UNWRITTEN); - else if (buffer_delay(bh)) - acceptable = (type == IO_DELALLOC); - else if (buffer_dirty(bh) && buffer_mapped(bh)) - acceptable = (type == IO_OVERWRITE); - else - break; - } while ((bh = bh->b_this_page) != head); - - if (acceptable) - return 1; - } - - return 0; -} - -/* - * Allocate & map buffers for page given the extent map. Write it out. - * except for the original page of a writepage, this is called on - * delalloc/unwritten pages only, for the original page it is possible - * that the page has no mapping at all. - */ -STATIC int -xfs_convert_page( - struct inode *inode, - struct page *page, - loff_t tindex, - struct xfs_bmbt_irec *imap, - xfs_ioend_t **ioendp, - struct writeback_control *wbc) -{ - struct buffer_head *bh, *head; - xfs_off_t end_offset; - unsigned long p_offset; - unsigned int type; - int len, page_dirty; - int count = 0, done = 0, uptodate = 1; - xfs_off_t offset = page_offset(page); - - if (page->index != tindex) - goto fail; - if (!trylock_page(page)) - goto fail; - if (PageWriteback(page)) - goto fail_unlock_page; - if (page->mapping != inode->i_mapping) - goto fail_unlock_page; - if (!xfs_is_delayed_page(page, (*ioendp)->io_type)) - goto fail_unlock_page; - - /* - * page_dirty is initially a count of buffers on the page before - * EOF and is decremented as we move each into a cleanable state. - * - * Derivation: - * - * End offset is the highest offset that this page should represent. - * If we are on the last page, (end_offset & (PAGE_CACHE_SIZE - 1)) - * will evaluate non-zero and be less than PAGE_CACHE_SIZE and - * hence give us the correct page_dirty count. On any other page, - * it will be zero and in that case we need page_dirty to be the - * count of buffers on the page. - */ - end_offset = min_t(unsigned long long, - (xfs_off_t)(page->index + 1) << PAGE_CACHE_SHIFT, - i_size_read(inode)); - - len = 1 << inode->i_blkbits; - p_offset = min_t(unsigned long, end_offset & (PAGE_CACHE_SIZE - 1), - PAGE_CACHE_SIZE); - p_offset = p_offset ? roundup(p_offset, len) : PAGE_CACHE_SIZE; - page_dirty = p_offset / len; - - bh = head = page_buffers(page); - do { - if (offset >= end_offset) - break; - if (!buffer_uptodate(bh)) - uptodate = 0; - if (!(PageUptodate(page) || buffer_uptodate(bh))) { - done = 1; - continue; - } - - if (buffer_unwritten(bh) || buffer_delay(bh) || - buffer_mapped(bh)) { - if (buffer_unwritten(bh)) - type = IO_UNWRITTEN; - else if (buffer_delay(bh)) - type = IO_DELALLOC; - else - type = IO_OVERWRITE; - - if (!xfs_imap_valid(inode, imap, offset)) { - done = 1; - continue; - } - - lock_buffer(bh); - if (type != IO_OVERWRITE) - xfs_map_at_offset(inode, bh, imap, offset); - xfs_add_to_ioend(inode, bh, offset, type, - ioendp, done); - - page_dirty--; - count++; - } else { - done = 1; - } - } while (offset += len, (bh = bh->b_this_page) != head); - - if (uptodate && bh == head) - SetPageUptodate(page); - - if (count) { - if (--wbc->nr_to_write <= 0 && - wbc->sync_mode == WB_SYNC_NONE) - done = 1; - } - xfs_start_page_writeback(page, !page_dirty, count); - - return done; - fail_unlock_page: - unlock_page(page); - fail: - return 1; -} - -/* - * Convert & write out a cluster of pages in the same extent as defined - * by mp and following the start page. - */ -STATIC void -xfs_cluster_write( - struct inode *inode, - pgoff_t tindex, - struct xfs_bmbt_irec *imap, - xfs_ioend_t **ioendp, - struct writeback_control *wbc, - pgoff_t tlast) -{ - struct pagevec pvec; - int done = 0, i; - - pagevec_init(&pvec, 0); - while (!done && tindex <= tlast) { - unsigned len = min_t(pgoff_t, PAGEVEC_SIZE, tlast - tindex + 1); - - if (!pagevec_lookup(&pvec, inode->i_mapping, tindex, len)) - break; - - for (i = 0; i < pagevec_count(&pvec); i++) { - done = xfs_convert_page(inode, pvec.pages[i], tindex++, - imap, ioendp, wbc); - if (done) - break; - } - - pagevec_release(&pvec); - cond_resched(); - } -} - -STATIC void -xfs_vm_invalidatepage( - struct page *page, - unsigned long offset) -{ - trace_xfs_invalidatepage(page->mapping->host, page, offset); - block_invalidatepage(page, offset); -} - -/* - * If the page has delalloc buffers on it, we need to punch them out before we - * invalidate the page. If we don't, we leave a stale delalloc mapping on the - * inode that can trip a BUG() in xfs_get_blocks() later on if a direct IO read - * is done on that same region - the delalloc extent is returned when none is - * supposed to be there. - * - * We prevent this by truncating away the delalloc regions on the page before - * invalidating it. Because they are delalloc, we can do this without needing a - * transaction. Indeed - if we get ENOSPC errors, we have to be able to do this - * truncation without a transaction as there is no space left for block - * reservation (typically why we see a ENOSPC in writeback). - * - * This is not a performance critical path, so for now just do the punching a - * buffer head at a time. - */ -STATIC void -xfs_aops_discard_page( - struct page *page) -{ - struct inode *inode = page->mapping->host; - struct xfs_inode *ip = XFS_I(inode); - struct buffer_head *bh, *head; - loff_t offset = page_offset(page); - - if (!xfs_is_delayed_page(page, IO_DELALLOC)) - goto out_invalidate; - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - goto out_invalidate; - - xfs_alert(ip->i_mount, - "page discard on page %p, inode 0x%llx, offset %llu.", - page, ip->i_ino, offset); - - xfs_ilock(ip, XFS_ILOCK_EXCL); - bh = head = page_buffers(page); - do { - int error; - xfs_fileoff_t start_fsb; - - if (!buffer_delay(bh)) - goto next_buffer; - - start_fsb = XFS_B_TO_FSBT(ip->i_mount, offset); - error = xfs_bmap_punch_delalloc_range(ip, start_fsb, 1); - if (error) { - /* something screwed, just bail */ - if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) { - xfs_alert(ip->i_mount, - "page discard unable to remove delalloc mapping."); - } - break; - } -next_buffer: - offset += 1 << inode->i_blkbits; - - } while ((bh = bh->b_this_page) != head); - - xfs_iunlock(ip, XFS_ILOCK_EXCL); -out_invalidate: - xfs_vm_invalidatepage(page, 0); - return; -} - -/* - * Write out a dirty page. - * - * For delalloc space on the page we need to allocate space and flush it. - * For unwritten space on the page we need to start the conversion to - * regular allocated space. - * For any other dirty buffer heads on the page we should flush them. - */ -STATIC int -xfs_vm_writepage( - struct page *page, - struct writeback_control *wbc) -{ - struct inode *inode = page->mapping->host; - struct buffer_head *bh, *head; - struct xfs_bmbt_irec imap; - xfs_ioend_t *ioend = NULL, *iohead = NULL; - loff_t offset; - unsigned int type; - __uint64_t end_offset; - pgoff_t end_index, last_index; - ssize_t len; - int err, imap_valid = 0, uptodate = 1; - int count = 0; - int nonblocking = 0; - - trace_xfs_writepage(inode, page, 0); - - ASSERT(page_has_buffers(page)); - - /* - * Refuse to write the page out if we are called from reclaim context. - * - * This avoids stack overflows when called from deeply used stacks in - * random callers for direct reclaim or memcg reclaim. We explicitly - * allow reclaim from kswapd as the stack usage there is relatively low. - * - * This should really be done by the core VM, but until that happens - * filesystems like XFS, btrfs and ext4 have to take care of this - * by themselves. - */ - if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) - goto redirty; - - /* - * Given that we do not allow direct reclaim to call us, we should - * never be called while in a filesystem transaction. - */ - if (WARN_ON(current->flags & PF_FSTRANS)) - goto redirty; - - /* Is this page beyond the end of the file? */ - offset = i_size_read(inode); - end_index = offset >> PAGE_CACHE_SHIFT; - last_index = (offset - 1) >> PAGE_CACHE_SHIFT; - if (page->index >= end_index) { - if ((page->index >= end_index + 1) || - !(i_size_read(inode) & (PAGE_CACHE_SIZE - 1))) { - unlock_page(page); - return 0; - } - } - - end_offset = min_t(unsigned long long, - (xfs_off_t)(page->index + 1) << PAGE_CACHE_SHIFT, - offset); - len = 1 << inode->i_blkbits; - - bh = head = page_buffers(page); - offset = page_offset(page); - type = IO_OVERWRITE; - - if (wbc->sync_mode == WB_SYNC_NONE) - nonblocking = 1; - - do { - int new_ioend = 0; - - if (offset >= end_offset) - break; - if (!buffer_uptodate(bh)) - uptodate = 0; - - /* - * set_page_dirty dirties all buffers in a page, independent - * of their state. The dirty state however is entirely - * meaningless for holes (!mapped && uptodate), so skip - * buffers covering holes here. - */ - if (!buffer_mapped(bh) && buffer_uptodate(bh)) { - imap_valid = 0; - continue; - } - - if (buffer_unwritten(bh)) { - if (type != IO_UNWRITTEN) { - type = IO_UNWRITTEN; - imap_valid = 0; - } - } else if (buffer_delay(bh)) { - if (type != IO_DELALLOC) { - type = IO_DELALLOC; - imap_valid = 0; - } - } else if (buffer_uptodate(bh)) { - if (type != IO_OVERWRITE) { - type = IO_OVERWRITE; - imap_valid = 0; - } - } else { - if (PageUptodate(page)) { - ASSERT(buffer_mapped(bh)); - imap_valid = 0; - } - continue; - } - - if (imap_valid) - imap_valid = xfs_imap_valid(inode, &imap, offset); - if (!imap_valid) { - /* - * If we didn't have a valid mapping then we need to - * put the new mapping into a separate ioend structure. - * This ensures non-contiguous extents always have - * separate ioends, which is particularly important - * for unwritten extent conversion at I/O completion - * time. - */ - new_ioend = 1; - err = xfs_map_blocks(inode, offset, &imap, type, - nonblocking); - if (err) - goto error; - imap_valid = xfs_imap_valid(inode, &imap, offset); - } - if (imap_valid) { - lock_buffer(bh); - if (type != IO_OVERWRITE) - xfs_map_at_offset(inode, bh, &imap, offset); - xfs_add_to_ioend(inode, bh, offset, type, &ioend, - new_ioend); - count++; - } - - if (!iohead) - iohead = ioend; - - } while (offset += len, ((bh = bh->b_this_page) != head)); - - if (uptodate && bh == head) - SetPageUptodate(page); - - xfs_start_page_writeback(page, 1, count); - - if (ioend && imap_valid) { - xfs_off_t end_index; - - end_index = imap.br_startoff + imap.br_blockcount; - - /* to bytes */ - end_index <<= inode->i_blkbits; - - /* to pages */ - end_index = (end_index - 1) >> PAGE_CACHE_SHIFT; - - /* check against file size */ - if (end_index > last_index) - end_index = last_index; - - xfs_cluster_write(inode, page->index + 1, &imap, &ioend, - wbc, end_index); - } - - if (iohead) - xfs_submit_ioend(wbc, iohead); - - return 0; - -error: - if (iohead) - xfs_cancel_ioend(iohead); - - if (err == -EAGAIN) - goto redirty; - - xfs_aops_discard_page(page); - ClearPageUptodate(page); - unlock_page(page); - return err; - -redirty: - redirty_page_for_writepage(wbc, page); - unlock_page(page); - return 0; -} - -STATIC int -xfs_vm_writepages( - struct address_space *mapping, - struct writeback_control *wbc) -{ - xfs_iflags_clear(XFS_I(mapping->host), XFS_ITRUNCATED); - return generic_writepages(mapping, wbc); -} - -/* - * Called to move a page into cleanable state - and from there - * to be released. The page should already be clean. We always - * have buffer heads in this call. - * - * Returns 1 if the page is ok to release, 0 otherwise. - */ -STATIC int -xfs_vm_releasepage( - struct page *page, - gfp_t gfp_mask) -{ - int delalloc, unwritten; - - trace_xfs_releasepage(page->mapping->host, page, 0); - - xfs_count_page_state(page, &delalloc, &unwritten); - - if (WARN_ON(delalloc)) - return 0; - if (WARN_ON(unwritten)) - return 0; - - return try_to_free_buffers(page); -} - -STATIC int -__xfs_get_blocks( - struct inode *inode, - sector_t iblock, - struct buffer_head *bh_result, - int create, - int direct) -{ - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - xfs_fileoff_t offset_fsb, end_fsb; - int error = 0; - int lockmode = 0; - struct xfs_bmbt_irec imap; - int nimaps = 1; - xfs_off_t offset; - ssize_t size; - int new = 0; - - if (XFS_FORCED_SHUTDOWN(mp)) - return -XFS_ERROR(EIO); - - offset = (xfs_off_t)iblock << inode->i_blkbits; - ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); - size = bh_result->b_size; - - if (!create && direct && offset >= i_size_read(inode)) - return 0; - - if (create) { - lockmode = XFS_ILOCK_EXCL; - xfs_ilock(ip, lockmode); - } else { - lockmode = xfs_ilock_map_shared(ip); - } - - ASSERT(offset <= mp->m_maxioffset); - if (offset + size > mp->m_maxioffset) - size = mp->m_maxioffset - offset; - end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + size); - offset_fsb = XFS_B_TO_FSBT(mp, offset); - - error = xfs_bmapi(NULL, ip, offset_fsb, end_fsb - offset_fsb, - XFS_BMAPI_ENTIRE, NULL, 0, &imap, &nimaps, NULL); - if (error) - goto out_unlock; - - if (create && - (!nimaps || - (imap.br_startblock == HOLESTARTBLOCK || - imap.br_startblock == DELAYSTARTBLOCK))) { - if (direct) { - error = xfs_iomap_write_direct(ip, offset, size, - &imap, nimaps); - } else { - error = xfs_iomap_write_delay(ip, offset, size, &imap); - } - if (error) - goto out_unlock; - - trace_xfs_get_blocks_alloc(ip, offset, size, 0, &imap); - } else if (nimaps) { - trace_xfs_get_blocks_found(ip, offset, size, 0, &imap); - } else { - trace_xfs_get_blocks_notfound(ip, offset, size); - goto out_unlock; - } - xfs_iunlock(ip, lockmode); - - if (imap.br_startblock != HOLESTARTBLOCK && - imap.br_startblock != DELAYSTARTBLOCK) { - /* - * For unwritten extents do not report a disk address on - * the read case (treat as if we're reading into a hole). - */ - if (create || !ISUNWRITTEN(&imap)) - xfs_map_buffer(inode, bh_result, &imap, offset); - if (create && ISUNWRITTEN(&imap)) { - if (direct) - bh_result->b_private = inode; - set_buffer_unwritten(bh_result); - } - } - - /* - * If this is a realtime file, data may be on a different device. - * to that pointed to from the buffer_head b_bdev currently. - */ - bh_result->b_bdev = xfs_find_bdev_for_inode(inode); - - /* - * If we previously allocated a block out beyond eof and we are now - * coming back to use it then we will need to flag it as new even if it - * has a disk address. - * - * With sub-block writes into unwritten extents we also need to mark - * the buffer as new so that the unwritten parts of the buffer gets - * correctly zeroed. - */ - if (create && - ((!buffer_mapped(bh_result) && !buffer_uptodate(bh_result)) || - (offset >= i_size_read(inode)) || - (new || ISUNWRITTEN(&imap)))) - set_buffer_new(bh_result); - - if (imap.br_startblock == DELAYSTARTBLOCK) { - BUG_ON(direct); - if (create) { - set_buffer_uptodate(bh_result); - set_buffer_mapped(bh_result); - set_buffer_delay(bh_result); - } - } - - /* - * If this is O_DIRECT or the mpage code calling tell them how large - * the mapping is, so that we can avoid repeated get_blocks calls. - */ - if (direct || size > (1 << inode->i_blkbits)) { - xfs_off_t mapping_size; - - mapping_size = imap.br_startoff + imap.br_blockcount - iblock; - mapping_size <<= inode->i_blkbits; - - ASSERT(mapping_size > 0); - if (mapping_size > size) - mapping_size = size; - if (mapping_size > LONG_MAX) - mapping_size = LONG_MAX; - - bh_result->b_size = mapping_size; - } - - return 0; - -out_unlock: - xfs_iunlock(ip, lockmode); - return -error; -} - -int -xfs_get_blocks( - struct inode *inode, - sector_t iblock, - struct buffer_head *bh_result, - int create) -{ - return __xfs_get_blocks(inode, iblock, bh_result, create, 0); -} - -STATIC int -xfs_get_blocks_direct( - struct inode *inode, - sector_t iblock, - struct buffer_head *bh_result, - int create) -{ - return __xfs_get_blocks(inode, iblock, bh_result, create, 1); -} - -/* - * Complete a direct I/O write request. - * - * If the private argument is non-NULL __xfs_get_blocks signals us that we - * need to issue a transaction to convert the range from unwritten to written - * extents. In case this is regular synchronous I/O we just call xfs_end_io - * to do this and we are done. But in case this was a successful AIO - * request this handler is called from interrupt context, from which we - * can't start transactions. In that case offload the I/O completion to - * the workqueues we also use for buffered I/O completion. - */ -STATIC void -xfs_end_io_direct_write( - struct kiocb *iocb, - loff_t offset, - ssize_t size, - void *private, - int ret, - bool is_async) -{ - struct xfs_ioend *ioend = iocb->private; - - /* - * blockdev_direct_IO can return an error even after the I/O - * completion handler was called. Thus we need to protect - * against double-freeing. - */ - iocb->private = NULL; - - ioend->io_offset = offset; - ioend->io_size = size; - if (private && size > 0) - ioend->io_type = IO_UNWRITTEN; - - if (is_async) { - /* - * If we are converting an unwritten extent we need to delay - * the AIO completion until after the unwrittent extent - * conversion has completed, otherwise do it ASAP. - */ - if (ioend->io_type == IO_UNWRITTEN) { - ioend->io_iocb = iocb; - ioend->io_result = ret; - } else { - aio_complete(iocb, ret, 0); - } - xfs_finish_ioend(ioend); - } else { - xfs_finish_ioend_sync(ioend); - } -} - -STATIC ssize_t -xfs_vm_direct_IO( - int rw, - struct kiocb *iocb, - const struct iovec *iov, - loff_t offset, - unsigned long nr_segs) -{ - struct inode *inode = iocb->ki_filp->f_mapping->host; - struct block_device *bdev = xfs_find_bdev_for_inode(inode); - ssize_t ret; - - if (rw & WRITE) { - iocb->private = xfs_alloc_ioend(inode, IO_DIRECT); - - ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov, - offset, nr_segs, - xfs_get_blocks_direct, - xfs_end_io_direct_write, NULL, 0); - if (ret != -EIOCBQUEUED && iocb->private) - xfs_destroy_ioend(iocb->private); - } else { - ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov, - offset, nr_segs, - xfs_get_blocks_direct, - NULL, NULL, 0); - } - - return ret; -} - -STATIC void -xfs_vm_write_failed( - struct address_space *mapping, - loff_t to) -{ - struct inode *inode = mapping->host; - - if (to > inode->i_size) { - /* - * punch out the delalloc blocks we have already allocated. We - * don't call xfs_setattr() to do this as we may be in the - * middle of a multi-iovec write and so the vfs inode->i_size - * will not match the xfs ip->i_size and so it will zero too - * much. Hence we jus truncate the page cache to zero what is - * necessary and punch the delalloc blocks directly. - */ - struct xfs_inode *ip = XFS_I(inode); - xfs_fileoff_t start_fsb; - xfs_fileoff_t end_fsb; - int error; - - truncate_pagecache(inode, to, inode->i_size); - - /* - * Check if there are any blocks that are outside of i_size - * that need to be trimmed back. - */ - start_fsb = XFS_B_TO_FSB(ip->i_mount, inode->i_size) + 1; - end_fsb = XFS_B_TO_FSB(ip->i_mount, to); - if (end_fsb <= start_fsb) - return; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - error = xfs_bmap_punch_delalloc_range(ip, start_fsb, - end_fsb - start_fsb); - if (error) { - /* something screwed, just bail */ - if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) { - xfs_alert(ip->i_mount, - "xfs_vm_write_failed: unable to clean up ino %lld", - ip->i_ino); - } - } - xfs_iunlock(ip, XFS_ILOCK_EXCL); - } -} - -STATIC int -xfs_vm_write_begin( - struct file *file, - struct address_space *mapping, - loff_t pos, - unsigned len, - unsigned flags, - struct page **pagep, - void **fsdata) -{ - int ret; - - ret = block_write_begin(mapping, pos, len, flags | AOP_FLAG_NOFS, - pagep, xfs_get_blocks); - if (unlikely(ret)) - xfs_vm_write_failed(mapping, pos + len); - return ret; -} - -STATIC int -xfs_vm_write_end( - struct file *file, - struct address_space *mapping, - loff_t pos, - unsigned len, - unsigned copied, - struct page *page, - void *fsdata) -{ - int ret; - - ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); - if (unlikely(ret < len)) - xfs_vm_write_failed(mapping, pos + len); - return ret; -} - -STATIC sector_t -xfs_vm_bmap( - struct address_space *mapping, - sector_t block) -{ - struct inode *inode = (struct inode *)mapping->host; - struct xfs_inode *ip = XFS_I(inode); - - trace_xfs_vm_bmap(XFS_I(inode)); - xfs_ilock(ip, XFS_IOLOCK_SHARED); - xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); - xfs_iunlock(ip, XFS_IOLOCK_SHARED); - return generic_block_bmap(mapping, block, xfs_get_blocks); -} - -STATIC int -xfs_vm_readpage( - struct file *unused, - struct page *page) -{ - return mpage_readpage(page, xfs_get_blocks); -} - -STATIC int -xfs_vm_readpages( - struct file *unused, - struct address_space *mapping, - struct list_head *pages, - unsigned nr_pages) -{ - return mpage_readpages(mapping, pages, nr_pages, xfs_get_blocks); -} - -const struct address_space_operations xfs_address_space_operations = { - .readpage = xfs_vm_readpage, - .readpages = xfs_vm_readpages, - .writepage = xfs_vm_writepage, - .writepages = xfs_vm_writepages, - .releasepage = xfs_vm_releasepage, - .invalidatepage = xfs_vm_invalidatepage, - .write_begin = xfs_vm_write_begin, - .write_end = xfs_vm_write_end, - .bmap = xfs_vm_bmap, - .direct_IO = xfs_vm_direct_IO, - .migratepage = buffer_migrate_page, - .is_partially_uptodate = block_is_partially_uptodate, - .error_remove_page = generic_error_remove_page, -}; diff --git a/fs/xfs/linux-2.6/xfs_aops.h b/fs/xfs/linux-2.6/xfs_aops.h deleted file mode 100644 index 71f721e..0000000 --- a/fs/xfs/linux-2.6/xfs_aops.h +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (c) 2005-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_AOPS_H__ -#define __XFS_AOPS_H__ - -extern struct workqueue_struct *xfsdatad_workqueue; -extern struct workqueue_struct *xfsconvertd_workqueue; -extern mempool_t *xfs_ioend_pool; - -/* - * Types of I/O for bmap clustering and I/O completion tracking. - */ -enum { - IO_DIRECT = 0, /* special case for direct I/O ioends */ - IO_DELALLOC, /* mapping covers delalloc region */ - IO_UNWRITTEN, /* mapping covers allocated but uninitialized data */ - IO_OVERWRITE, /* mapping covers already allocated extent */ -}; - -#define XFS_IO_TYPES \ - { 0, "" }, \ - { IO_DELALLOC, "delalloc" }, \ - { IO_UNWRITTEN, "unwritten" }, \ - { IO_OVERWRITE, "overwrite" } - -/* - * xfs_ioend struct manages large extent writes for XFS. - * It can manage several multi-page bio's at once. - */ -typedef struct xfs_ioend { - struct xfs_ioend *io_list; /* next ioend in chain */ - unsigned int io_type; /* delalloc / unwritten */ - int io_error; /* I/O error code */ - atomic_t io_remaining; /* hold count */ - struct inode *io_inode; /* file being written to */ - struct buffer_head *io_buffer_head;/* buffer linked list head */ - struct buffer_head *io_buffer_tail;/* buffer linked list tail */ - size_t io_size; /* size of the extent */ - xfs_off_t io_offset; /* offset in the file */ - struct work_struct io_work; /* xfsdatad work queue */ - struct kiocb *io_iocb; - int io_result; -} xfs_ioend_t; - -extern const struct address_space_operations xfs_address_space_operations; -extern int xfs_get_blocks(struct inode *, sector_t, struct buffer_head *, int); - -extern void xfs_ioend_init(void); -extern void xfs_ioend_wait(struct xfs_inode *); - -extern void xfs_count_page_state(struct page *, int *, int *); - -#endif /* __XFS_AOPS_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c deleted file mode 100644 index b2b4119..0000000 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ /dev/null @@ -1,1874 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "xfs_sb.h" -#include "xfs_inum.h" -#include "xfs_log.h" -#include "xfs_ag.h" -#include "xfs_mount.h" -#include "xfs_trace.h" - -static kmem_zone_t *xfs_buf_zone; -STATIC int xfsbufd(void *); -STATIC void xfs_buf_delwri_queue(xfs_buf_t *, int); - -static struct workqueue_struct *xfslogd_workqueue; -struct workqueue_struct *xfsdatad_workqueue; -struct workqueue_struct *xfsconvertd_workqueue; - -#ifdef XFS_BUF_LOCK_TRACKING -# define XB_SET_OWNER(bp) ((bp)->b_last_holder = current->pid) -# define XB_CLEAR_OWNER(bp) ((bp)->b_last_holder = -1) -# define XB_GET_OWNER(bp) ((bp)->b_last_holder) -#else -# define XB_SET_OWNER(bp) do { } while (0) -# define XB_CLEAR_OWNER(bp) do { } while (0) -# define XB_GET_OWNER(bp) do { } while (0) -#endif - -#define xb_to_gfp(flags) \ - ((((flags) & XBF_READ_AHEAD) ? __GFP_NORETRY : \ - ((flags) & XBF_DONT_BLOCK) ? GFP_NOFS : GFP_KERNEL) | __GFP_NOWARN) - -#define xb_to_km(flags) \ - (((flags) & XBF_DONT_BLOCK) ? KM_NOFS : KM_SLEEP) - -#define xfs_buf_allocate(flags) \ - kmem_zone_alloc(xfs_buf_zone, xb_to_km(flags)) -#define xfs_buf_deallocate(bp) \ - kmem_zone_free(xfs_buf_zone, (bp)); - -static inline int -xfs_buf_is_vmapped( - struct xfs_buf *bp) -{ - /* - * Return true if the buffer is vmapped. - * - * The XBF_MAPPED flag is set if the buffer should be mapped, but the - * code is clever enough to know it doesn't have to map a single page, - * so the check has to be both for XBF_MAPPED and bp->b_page_count > 1. - */ - return (bp->b_flags & XBF_MAPPED) && bp->b_page_count > 1; -} - -static inline int -xfs_buf_vmap_len( - struct xfs_buf *bp) -{ - return (bp->b_page_count * PAGE_SIZE) - bp->b_offset; -} - -/* - * xfs_buf_lru_add - add a buffer to the LRU. - * - * The LRU takes a new reference to the buffer so that it will only be freed - * once the shrinker takes the buffer off the LRU. - */ -STATIC void -xfs_buf_lru_add( - struct xfs_buf *bp) -{ - struct xfs_buftarg *btp = bp->b_target; - - spin_lock(&btp->bt_lru_lock); - if (list_empty(&bp->b_lru)) { - atomic_inc(&bp->b_hold); - list_add_tail(&bp->b_lru, &btp->bt_lru); - btp->bt_lru_nr++; - } - spin_unlock(&btp->bt_lru_lock); -} - -/* - * xfs_buf_lru_del - remove a buffer from the LRU - * - * The unlocked check is safe here because it only occurs when there are not - * b_lru_ref counts left on the inode under the pag->pag_buf_lock. it is there - * to optimise the shrinker removing the buffer from the LRU and calling - * xfs_buf_free(). i.e. it removes an unnecessary round trip on the - * bt_lru_lock. - */ -STATIC void -xfs_buf_lru_del( - struct xfs_buf *bp) -{ - struct xfs_buftarg *btp = bp->b_target; - - if (list_empty(&bp->b_lru)) - return; - - spin_lock(&btp->bt_lru_lock); - if (!list_empty(&bp->b_lru)) { - list_del_init(&bp->b_lru); - btp->bt_lru_nr--; - } - spin_unlock(&btp->bt_lru_lock); -} - -/* - * When we mark a buffer stale, we remove the buffer from the LRU and clear the - * b_lru_ref count so that the buffer is freed immediately when the buffer - * reference count falls to zero. If the buffer is already on the LRU, we need - * to remove the reference that LRU holds on the buffer. - * - * This prevents build-up of stale buffers on the LRU. - */ -void -xfs_buf_stale( - struct xfs_buf *bp) -{ - bp->b_flags |= XBF_STALE; - atomic_set(&(bp)->b_lru_ref, 0); - if (!list_empty(&bp->b_lru)) { - struct xfs_buftarg *btp = bp->b_target; - - spin_lock(&btp->bt_lru_lock); - if (!list_empty(&bp->b_lru)) { - list_del_init(&bp->b_lru); - btp->bt_lru_nr--; - atomic_dec(&bp->b_hold); - } - spin_unlock(&btp->bt_lru_lock); - } - ASSERT(atomic_read(&bp->b_hold) >= 1); -} - -STATIC void -_xfs_buf_initialize( - xfs_buf_t *bp, - xfs_buftarg_t *target, - xfs_off_t range_base, - size_t range_length, - xfs_buf_flags_t flags) -{ - /* - * We don't want certain flags to appear in b_flags. - */ - flags &= ~(XBF_LOCK|XBF_MAPPED|XBF_DONT_BLOCK|XBF_READ_AHEAD); - - memset(bp, 0, sizeof(xfs_buf_t)); - atomic_set(&bp->b_hold, 1); - atomic_set(&bp->b_lru_ref, 1); - init_completion(&bp->b_iowait); - INIT_LIST_HEAD(&bp->b_lru); - INIT_LIST_HEAD(&bp->b_list); - RB_CLEAR_NODE(&bp->b_rbnode); - sema_init(&bp->b_sema, 0); /* held, no waiters */ - XB_SET_OWNER(bp); - bp->b_target = target; - bp->b_file_offset = range_base; - /* - * Set buffer_length and count_desired to the same value initially. - * I/O routines should use count_desired, which will be the same in - * most cases but may be reset (e.g. XFS recovery). - */ - bp->b_buffer_length = bp->b_count_desired = range_length; - bp->b_flags = flags; - bp->b_bn = XFS_BUF_DADDR_NULL; - atomic_set(&bp->b_pin_count, 0); - init_waitqueue_head(&bp->b_waiters); - - XFS_STATS_INC(xb_create); - - trace_xfs_buf_init(bp, _RET_IP_); -} - -/* - * Allocate a page array capable of holding a specified number - * of pages, and point the page buf at it. - */ -STATIC int -_xfs_buf_get_pages( - xfs_buf_t *bp, - int page_count, - xfs_buf_flags_t flags) -{ - /* Make sure that we have a page list */ - if (bp->b_pages == NULL) { - bp->b_offset = xfs_buf_poff(bp->b_file_offset); - bp->b_page_count = page_count; - if (page_count <= XB_PAGES) { - bp->b_pages = bp->b_page_array; - } else { - bp->b_pages = kmem_alloc(sizeof(struct page *) * - page_count, xb_to_km(flags)); - if (bp->b_pages == NULL) - return -ENOMEM; - } - memset(bp->b_pages, 0, sizeof(struct page *) * page_count); - } - return 0; -} - -/* - * Frees b_pages if it was allocated. - */ -STATIC void -_xfs_buf_free_pages( - xfs_buf_t *bp) -{ - if (bp->b_pages != bp->b_page_array) { - kmem_free(bp->b_pages); - bp->b_pages = NULL; - } -} - -/* - * Releases the specified buffer. - * - * The modification state of any associated pages is left unchanged. - * The buffer most not be on any hash - use xfs_buf_rele instead for - * hashed and refcounted buffers - */ -void -xfs_buf_free( - xfs_buf_t *bp) -{ - trace_xfs_buf_free(bp, _RET_IP_); - - ASSERT(list_empty(&bp->b_lru)); - - if (bp->b_flags & _XBF_PAGES) { - uint i; - - if (xfs_buf_is_vmapped(bp)) - vm_unmap_ram(bp->b_addr - bp->b_offset, - bp->b_page_count); - - for (i = 0; i < bp->b_page_count; i++) { - struct page *page = bp->b_pages[i]; - - __free_page(page); - } - } else if (bp->b_flags & _XBF_KMEM) - kmem_free(bp->b_addr); - _xfs_buf_free_pages(bp); - xfs_buf_deallocate(bp); -} - -/* - * Allocates all the pages for buffer in question and builds it's page list. - */ -STATIC int -xfs_buf_allocate_memory( - xfs_buf_t *bp, - uint flags) -{ - size_t size = bp->b_count_desired; - size_t nbytes, offset; - gfp_t gfp_mask = xb_to_gfp(flags); - unsigned short page_count, i; - xfs_off_t end; - int error; - - /* - * for buffers that are contained within a single page, just allocate - * the memory from the heap - there's no need for the complexity of - * page arrays to keep allocation down to order 0. - */ - if (bp->b_buffer_length < PAGE_SIZE) { - bp->b_addr = kmem_alloc(bp->b_buffer_length, xb_to_km(flags)); - if (!bp->b_addr) { - /* low memory - use alloc_page loop instead */ - goto use_alloc_page; - } - - if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & - PAGE_MASK) != - ((unsigned long)bp->b_addr & PAGE_MASK)) { - /* b_addr spans two pages - use alloc_page instead */ - kmem_free(bp->b_addr); - bp->b_addr = NULL; - goto use_alloc_page; - } - bp->b_offset = offset_in_page(bp->b_addr); - bp->b_pages = bp->b_page_array; - bp->b_pages[0] = virt_to_page(bp->b_addr); - bp->b_page_count = 1; - bp->b_flags |= XBF_MAPPED | _XBF_KMEM; - return 0; - } - -use_alloc_page: - end = bp->b_file_offset + bp->b_buffer_length; - page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset); - error = _xfs_buf_get_pages(bp, page_count, flags); - if (unlikely(error)) - return error; - - offset = bp->b_offset; - bp->b_flags |= _XBF_PAGES; - - for (i = 0; i < bp->b_page_count; i++) { - struct page *page; - uint retries = 0; -retry: - page = alloc_page(gfp_mask); - if (unlikely(page == NULL)) { - if (flags & XBF_READ_AHEAD) { - bp->b_page_count = i; - error = ENOMEM; - goto out_free_pages; - } - - /* - * This could deadlock. - * - * But until all the XFS lowlevel code is revamped to - * handle buffer allocation failures we can't do much. - */ - if (!(++retries % 100)) - xfs_err(NULL, - "possible memory allocation deadlock in %s (mode:0x%x)", - __func__, gfp_mask); - - XFS_STATS_INC(xb_page_retries); - congestion_wait(BLK_RW_ASYNC, HZ/50); - goto retry; - } - - XFS_STATS_INC(xb_page_found); - - nbytes = min_t(size_t, size, PAGE_SIZE - offset); - size -= nbytes; - bp->b_pages[i] = page; - offset = 0; - } - return 0; - -out_free_pages: - for (i = 0; i < bp->b_page_count; i++) - __free_page(bp->b_pages[i]); - return error; -} - -/* - * Map buffer into kernel address-space if necessary. - */ -STATIC int -_xfs_buf_map_pages( - xfs_buf_t *bp, - uint flags) -{ - ASSERT(bp->b_flags & _XBF_PAGES); - if (bp->b_page_count == 1) { - /* A single page buffer is always mappable */ - bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; - bp->b_flags |= XBF_MAPPED; - } else if (flags & XBF_MAPPED) { - int retried = 0; - - do { - bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, - -1, PAGE_KERNEL); - if (bp->b_addr) - break; - vm_unmap_aliases(); - } while (retried++ <= 1); - - if (!bp->b_addr) - return -ENOMEM; - bp->b_addr += bp->b_offset; - bp->b_flags |= XBF_MAPPED; - } - - return 0; -} - -/* - * Finding and Reading Buffers - */ - -/* - * Look up, and creates if absent, a lockable buffer for - * a given range of an inode. The buffer is returned - * locked. If other overlapping buffers exist, they are - * released before the new buffer is created and locked, - * which may imply that this call will block until those buffers - * are unlocked. No I/O is implied by this call. - */ -xfs_buf_t * -_xfs_buf_find( - xfs_buftarg_t *btp, /* block device target */ - xfs_off_t ioff, /* starting offset of range */ - size_t isize, /* length of range */ - xfs_buf_flags_t flags, - xfs_buf_t *new_bp) -{ - xfs_off_t range_base; - size_t range_length; - struct xfs_perag *pag; - struct rb_node **rbp; - struct rb_node *parent; - xfs_buf_t *bp; - - range_base = (ioff << BBSHIFT); - range_length = (isize << BBSHIFT); - - /* Check for IOs smaller than the sector size / not sector aligned */ - ASSERT(!(range_length < (1 << btp->bt_sshift))); - ASSERT(!(range_base & (xfs_off_t)btp->bt_smask)); - - /* get tree root */ - pag = xfs_perag_get(btp->bt_mount, - xfs_daddr_to_agno(btp->bt_mount, ioff)); - - /* walk tree */ - spin_lock(&pag->pag_buf_lock); - rbp = &pag->pag_buf_tree.rb_node; - parent = NULL; - bp = NULL; - while (*rbp) { - parent = *rbp; - bp = rb_entry(parent, struct xfs_buf, b_rbnode); - - if (range_base < bp->b_file_offset) - rbp = &(*rbp)->rb_left; - else if (range_base > bp->b_file_offset) - rbp = &(*rbp)->rb_right; - else { - /* - * found a block offset match. If the range doesn't - * match, the only way this is allowed is if the buffer - * in the cache is stale and the transaction that made - * it stale has not yet committed. i.e. we are - * reallocating a busy extent. Skip this buffer and - * continue searching to the right for an exact match. - */ - if (bp->b_buffer_length != range_length) { - ASSERT(bp->b_flags & XBF_STALE); - rbp = &(*rbp)->rb_right; - continue; - } - atomic_inc(&bp->b_hold); - goto found; - } - } - - /* No match found */ - if (new_bp) { - _xfs_buf_initialize(new_bp, btp, range_base, - range_length, flags); - rb_link_node(&new_bp->b_rbnode, parent, rbp); - rb_insert_color(&new_bp->b_rbnode, &pag->pag_buf_tree); - /* the buffer keeps the perag reference until it is freed */ - new_bp->b_pag = pag; - spin_unlock(&pag->pag_buf_lock); - } else { - XFS_STATS_INC(xb_miss_locked); - spin_unlock(&pag->pag_buf_lock); - xfs_perag_put(pag); - } - return new_bp; - -found: - spin_unlock(&pag->pag_buf_lock); - xfs_perag_put(pag); - - if (!xfs_buf_trylock(bp)) { - if (flags & XBF_TRYLOCK) { - xfs_buf_rele(bp); - XFS_STATS_INC(xb_busy_locked); - return NULL; - } - xfs_buf_lock(bp); - XFS_STATS_INC(xb_get_locked_waited); - } - - /* - * if the buffer is stale, clear all the external state associated with - * it. We need to keep flags such as how we allocated the buffer memory - * intact here. - */ - if (bp->b_flags & XBF_STALE) { - ASSERT((bp->b_flags & _XBF_DELWRI_Q) == 0); - bp->b_flags &= XBF_MAPPED | _XBF_KMEM | _XBF_PAGES; - } - - trace_xfs_buf_find(bp, flags, _RET_IP_); - XFS_STATS_INC(xb_get_locked); - return bp; -} - -/* - * Assembles a buffer covering the specified range. - * Storage in memory for all portions of the buffer will be allocated, - * although backing storage may not be. - */ -xfs_buf_t * -xfs_buf_get( - xfs_buftarg_t *target,/* target for buffer */ - xfs_off_t ioff, /* starting offset of range */ - size_t isize, /* length of range */ - xfs_buf_flags_t flags) -{ - xfs_buf_t *bp, *new_bp; - int error = 0; - - new_bp = xfs_buf_allocate(flags); - if (unlikely(!new_bp)) - return NULL; - - bp = _xfs_buf_find(target, ioff, isize, flags, new_bp); - if (bp == new_bp) { - error = xfs_buf_allocate_memory(bp, flags); - if (error) - goto no_buffer; - } else { - xfs_buf_deallocate(new_bp); - if (unlikely(bp == NULL)) - return NULL; - } - - if (!(bp->b_flags & XBF_MAPPED)) { - error = _xfs_buf_map_pages(bp, flags); - if (unlikely(error)) { - xfs_warn(target->bt_mount, - "%s: failed to map pages\n", __func__); - goto no_buffer; - } - } - - XFS_STATS_INC(xb_get); - - /* - * Always fill in the block number now, the mapped cases can do - * their own overlay of this later. - */ - bp->b_bn = ioff; - bp->b_count_desired = bp->b_buffer_length; - - trace_xfs_buf_get(bp, flags, _RET_IP_); - return bp; - - no_buffer: - if (flags & (XBF_LOCK | XBF_TRYLOCK)) - xfs_buf_unlock(bp); - xfs_buf_rele(bp); - return NULL; -} - -STATIC int -_xfs_buf_read( - xfs_buf_t *bp, - xfs_buf_flags_t flags) -{ - int status; - - ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); - ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); - - bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | XBF_READ_AHEAD); - bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); - - status = xfs_buf_iorequest(bp); - if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) - return status; - return xfs_buf_iowait(bp); -} - -xfs_buf_t * -xfs_buf_read( - xfs_buftarg_t *target, - xfs_off_t ioff, - size_t isize, - xfs_buf_flags_t flags) -{ - xfs_buf_t *bp; - - flags |= XBF_READ; - - bp = xfs_buf_get(target, ioff, isize, flags); - if (bp) { - trace_xfs_buf_read(bp, flags, _RET_IP_); - - if (!XFS_BUF_ISDONE(bp)) { - XFS_STATS_INC(xb_get_read); - _xfs_buf_read(bp, flags); - } else if (flags & XBF_ASYNC) { - /* - * Read ahead call which is already satisfied, - * drop the buffer - */ - goto no_buffer; - } else { - /* We do not want read in the flags */ - bp->b_flags &= ~XBF_READ; - } - } - - return bp; - - no_buffer: - if (flags & (XBF_LOCK | XBF_TRYLOCK)) - xfs_buf_unlock(bp); - xfs_buf_rele(bp); - return NULL; -} - -/* - * If we are not low on memory then do the readahead in a deadlock - * safe manner. - */ -void -xfs_buf_readahead( - xfs_buftarg_t *target, - xfs_off_t ioff, - size_t isize) -{ - if (bdi_read_congested(target->bt_bdi)) - return; - - xfs_buf_read(target, ioff, isize, - XBF_TRYLOCK|XBF_ASYNC|XBF_READ_AHEAD|XBF_DONT_BLOCK); -} - -/* - * Read an uncached buffer from disk. Allocates and returns a locked - * buffer containing the disk contents or nothing. - */ -struct xfs_buf * -xfs_buf_read_uncached( - struct xfs_mount *mp, - struct xfs_buftarg *target, - xfs_daddr_t daddr, - size_t length, - int flags) -{ - xfs_buf_t *bp; - int error; - - bp = xfs_buf_get_uncached(target, length, flags); - if (!bp) - return NULL; - - /* set up the buffer for a read IO */ - XFS_BUF_SET_ADDR(bp, daddr); - XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); - - xfsbdstrat(mp, bp); - error = xfs_buf_iowait(bp); - if (error || bp->b_error) { - xfs_buf_relse(bp); - return NULL; - } - return bp; -} - -xfs_buf_t * -xfs_buf_get_empty( - size_t len, - xfs_buftarg_t *target) -{ - xfs_buf_t *bp; - - bp = xfs_buf_allocate(0); - if (bp) - _xfs_buf_initialize(bp, target, 0, len, 0); - return bp; -} - -/* - * Return a buffer allocated as an empty buffer and associated to external - * memory via xfs_buf_associate_memory() back to it's empty state. - */ -void -xfs_buf_set_empty( - struct xfs_buf *bp, - size_t len) -{ - if (bp->b_pages) - _xfs_buf_free_pages(bp); - - bp->b_pages = NULL; - bp->b_page_count = 0; - bp->b_addr = NULL; - bp->b_file_offset = 0; - bp->b_buffer_length = bp->b_count_desired = len; - bp->b_bn = XFS_BUF_DADDR_NULL; - bp->b_flags &= ~XBF_MAPPED; -} - -static inline struct page * -mem_to_page( - void *addr) -{ - if ((!is_vmalloc_addr(addr))) { - return virt_to_page(addr); - } else { - return vmalloc_to_page(addr); - } -} - -int -xfs_buf_associate_memory( - xfs_buf_t *bp, - void *mem, - size_t len) -{ - int rval; - int i = 0; - unsigned long pageaddr; - unsigned long offset; - size_t buflen; - int page_count; - - pageaddr = (unsigned long)mem & PAGE_MASK; - offset = (unsigned long)mem - pageaddr; - buflen = PAGE_ALIGN(len + offset); - page_count = buflen >> PAGE_SHIFT; - - /* Free any previous set of page pointers */ - if (bp->b_pages) - _xfs_buf_free_pages(bp); - - bp->b_pages = NULL; - bp->b_addr = mem; - - rval = _xfs_buf_get_pages(bp, page_count, XBF_DONT_BLOCK); - if (rval) - return rval; - - bp->b_offset = offset; - - for (i = 0; i < bp->b_page_count; i++) { - bp->b_pages[i] = mem_to_page((void *)pageaddr); - pageaddr += PAGE_SIZE; - } - - bp->b_count_desired = len; - bp->b_buffer_length = buflen; - bp->b_flags |= XBF_MAPPED; - - return 0; -} - -xfs_buf_t * -xfs_buf_get_uncached( - struct xfs_buftarg *target, - size_t len, - int flags) -{ - unsigned long page_count = PAGE_ALIGN(len) >> PAGE_SHIFT; - int error, i; - xfs_buf_t *bp; - - bp = xfs_buf_allocate(0); - if (unlikely(bp == NULL)) - goto fail; - _xfs_buf_initialize(bp, target, 0, len, 0); - - error = _xfs_buf_get_pages(bp, page_count, 0); - if (error) - goto fail_free_buf; - - for (i = 0; i < page_count; i++) { - bp->b_pages[i] = alloc_page(xb_to_gfp(flags)); - if (!bp->b_pages[i]) - goto fail_free_mem; - } - bp->b_flags |= _XBF_PAGES; - - error = _xfs_buf_map_pages(bp, XBF_MAPPED); - if (unlikely(error)) { - xfs_warn(target->bt_mount, - "%s: failed to map pages\n", __func__); - goto fail_free_mem; - } - - trace_xfs_buf_get_uncached(bp, _RET_IP_); - return bp; - - fail_free_mem: - while (--i >= 0) - __free_page(bp->b_pages[i]); - _xfs_buf_free_pages(bp); - fail_free_buf: - xfs_buf_deallocate(bp); - fail: - return NULL; -} - -/* - * Increment reference count on buffer, to hold the buffer concurrently - * with another thread which may release (free) the buffer asynchronously. - * Must hold the buffer already to call this function. - */ -void -xfs_buf_hold( - xfs_buf_t *bp) -{ - trace_xfs_buf_hold(bp, _RET_IP_); - atomic_inc(&bp->b_hold); -} - -/* - * Releases a hold on the specified buffer. If the - * the hold count is 1, calls xfs_buf_free. - */ -void -xfs_buf_rele( - xfs_buf_t *bp) -{ - struct xfs_perag *pag = bp->b_pag; - - trace_xfs_buf_rele(bp, _RET_IP_); - - if (!pag) { - ASSERT(list_empty(&bp->b_lru)); - ASSERT(RB_EMPTY_NODE(&bp->b_rbnode)); - if (atomic_dec_and_test(&bp->b_hold)) - xfs_buf_free(bp); - return; - } - - ASSERT(!RB_EMPTY_NODE(&bp->b_rbnode)); - - ASSERT(atomic_read(&bp->b_hold) > 0); - if (atomic_dec_and_lock(&bp->b_hold, &pag->pag_buf_lock)) { - if (!(bp->b_flags & XBF_STALE) && - atomic_read(&bp->b_lru_ref)) { - xfs_buf_lru_add(bp); - spin_unlock(&pag->pag_buf_lock); - } else { - xfs_buf_lru_del(bp); - ASSERT(!(bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q))); - rb_erase(&bp->b_rbnode, &pag->pag_buf_tree); - spin_unlock(&pag->pag_buf_lock); - xfs_perag_put(pag); - xfs_buf_free(bp); - } - } -} - - -/* - * Lock a buffer object, if it is not already locked. - * - * If we come across a stale, pinned, locked buffer, we know that we are - * being asked to lock a buffer that has been reallocated. Because it is - * pinned, we know that the log has not been pushed to disk and hence it - * will still be locked. Rather than continuing to have trylock attempts - * fail until someone else pushes the log, push it ourselves before - * returning. This means that the xfsaild will not get stuck trying - * to push on stale inode buffers. - */ -int -xfs_buf_trylock( - struct xfs_buf *bp) -{ - int locked; - - locked = down_trylock(&bp->b_sema) == 0; - if (locked) - XB_SET_OWNER(bp); - else if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) - xfs_log_force(bp->b_target->bt_mount, 0); - - trace_xfs_buf_trylock(bp, _RET_IP_); - return locked; -} - -/* - * Lock a buffer object. - * - * If we come across a stale, pinned, locked buffer, we know that we - * are being asked to lock a buffer that has been reallocated. Because - * it is pinned, we know that the log has not been pushed to disk and - * hence it will still be locked. Rather than sleeping until someone - * else pushes the log, push it ourselves before trying to get the lock. - */ -void -xfs_buf_lock( - struct xfs_buf *bp) -{ - trace_xfs_buf_lock(bp, _RET_IP_); - - if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) - xfs_log_force(bp->b_target->bt_mount, 0); - down(&bp->b_sema); - XB_SET_OWNER(bp); - - trace_xfs_buf_lock_done(bp, _RET_IP_); -} - -/* - * Releases the lock on the buffer object. - * If the buffer is marked delwri but is not queued, do so before we - * unlock the buffer as we need to set flags correctly. We also need to - * take a reference for the delwri queue because the unlocker is going to - * drop their's and they don't know we just queued it. - */ -void -xfs_buf_unlock( - struct xfs_buf *bp) -{ - if ((bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q)) == XBF_DELWRI) { - atomic_inc(&bp->b_hold); - bp->b_flags |= XBF_ASYNC; - xfs_buf_delwri_queue(bp, 0); - } - - XB_CLEAR_OWNER(bp); - up(&bp->b_sema); - - trace_xfs_buf_unlock(bp, _RET_IP_); -} - -STATIC void -xfs_buf_wait_unpin( - xfs_buf_t *bp) -{ - DECLARE_WAITQUEUE (wait, current); - - if (atomic_read(&bp->b_pin_count) == 0) - return; - - add_wait_queue(&bp->b_waiters, &wait); - for (;;) { - set_current_state(TASK_UNINTERRUPTIBLE); - if (atomic_read(&bp->b_pin_count) == 0) - break; - io_schedule(); - } - remove_wait_queue(&bp->b_waiters, &wait); - set_current_state(TASK_RUNNING); -} - -/* - * Buffer Utility Routines - */ - -STATIC void -xfs_buf_iodone_work( - struct work_struct *work) -{ - xfs_buf_t *bp = - container_of(work, xfs_buf_t, b_iodone_work); - - if (bp->b_iodone) - (*(bp->b_iodone))(bp); - else if (bp->b_flags & XBF_ASYNC) - xfs_buf_relse(bp); -} - -void -xfs_buf_ioend( - xfs_buf_t *bp, - int schedule) -{ - trace_xfs_buf_iodone(bp, _RET_IP_); - - bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_READ_AHEAD); - if (bp->b_error == 0) - bp->b_flags |= XBF_DONE; - - if ((bp->b_iodone) || (bp->b_flags & XBF_ASYNC)) { - if (schedule) { - INIT_WORK(&bp->b_iodone_work, xfs_buf_iodone_work); - queue_work(xfslogd_workqueue, &bp->b_iodone_work); - } else { - xfs_buf_iodone_work(&bp->b_iodone_work); - } - } else { - complete(&bp->b_iowait); - } -} - -void -xfs_buf_ioerror( - xfs_buf_t *bp, - int error) -{ - ASSERT(error >= 0 && error <= 0xffff); - bp->b_error = (unsigned short)error; - trace_xfs_buf_ioerror(bp, error, _RET_IP_); -} - -int -xfs_bwrite( - struct xfs_mount *mp, - struct xfs_buf *bp) -{ - int error; - - bp->b_flags |= XBF_WRITE; - bp->b_flags &= ~(XBF_ASYNC | XBF_READ); - - xfs_buf_delwri_dequeue(bp); - xfs_bdstrat_cb(bp); - - error = xfs_buf_iowait(bp); - if (error) - xfs_force_shutdown(mp, SHUTDOWN_META_IO_ERROR); - xfs_buf_relse(bp); - return error; -} - -void -xfs_bdwrite( - void *mp, - struct xfs_buf *bp) -{ - trace_xfs_buf_bdwrite(bp, _RET_IP_); - - bp->b_flags &= ~XBF_READ; - bp->b_flags |= (XBF_DELWRI | XBF_ASYNC); - - xfs_buf_delwri_queue(bp, 1); -} - -/* - * Called when we want to stop a buffer from getting written or read. - * We attach the EIO error, muck with its flags, and call xfs_buf_ioend - * so that the proper iodone callbacks get called. - */ -STATIC int -xfs_bioerror( - xfs_buf_t *bp) -{ -#ifdef XFSERRORDEBUG - ASSERT(XFS_BUF_ISREAD(bp) || bp->b_iodone); -#endif - - /* - * No need to wait until the buffer is unpinned, we aren't flushing it. - */ - XFS_BUF_ERROR(bp, EIO); - - /* - * We're calling xfs_buf_ioend, so delete XBF_DONE flag. - */ - XFS_BUF_UNREAD(bp); - XFS_BUF_UNDELAYWRITE(bp); - XFS_BUF_UNDONE(bp); - XFS_BUF_STALE(bp); - - xfs_buf_ioend(bp, 0); - - return EIO; -} - -/* - * Same as xfs_bioerror, except that we are releasing the buffer - * here ourselves, and avoiding the xfs_buf_ioend call. - * This is meant for userdata errors; metadata bufs come with - * iodone functions attached, so that we can track down errors. - */ -STATIC int -xfs_bioerror_relse( - struct xfs_buf *bp) -{ - int64_t fl = XFS_BUF_BFLAGS(bp); - /* - * No need to wait until the buffer is unpinned. - * We aren't flushing it. - * - * chunkhold expects B_DONE to be set, whether - * we actually finish the I/O or not. We don't want to - * change that interface. - */ - XFS_BUF_UNREAD(bp); - XFS_BUF_UNDELAYWRITE(bp); - XFS_BUF_DONE(bp); - XFS_BUF_STALE(bp); - bp->b_iodone = NULL; - if (!(fl & XBF_ASYNC)) { - /* - * Mark b_error and B_ERROR _both_. - * Lot's of chunkcache code assumes that. - * There's no reason to mark error for - * ASYNC buffers. - */ - XFS_BUF_ERROR(bp, EIO); - XFS_BUF_FINISH_IOWAIT(bp); - } else { - xfs_buf_relse(bp); - } - - return EIO; -} - - -/* - * All xfs metadata buffers except log state machine buffers - * get this attached as their b_bdstrat callback function. - * This is so that we can catch a buffer - * after prematurely unpinning it to forcibly shutdown the filesystem. - */ -int -xfs_bdstrat_cb( - struct xfs_buf *bp) -{ - if (XFS_FORCED_SHUTDOWN(bp->b_target->bt_mount)) { - trace_xfs_bdstrat_shut(bp, _RET_IP_); - /* - * Metadata write that didn't get logged but - * written delayed anyway. These aren't associated - * with a transaction, and can be ignored. - */ - if (!bp->b_iodone && !XFS_BUF_ISREAD(bp)) - return xfs_bioerror_relse(bp); - else - return xfs_bioerror(bp); - } - - xfs_buf_iorequest(bp); - return 0; -} - -/* - * Wrapper around bdstrat so that we can stop data from going to disk in case - * we are shutting down the filesystem. Typically user data goes thru this - * path; one of the exceptions is the superblock. - */ -void -xfsbdstrat( - struct xfs_mount *mp, - struct xfs_buf *bp) -{ - if (XFS_FORCED_SHUTDOWN(mp)) { - trace_xfs_bdstrat_shut(bp, _RET_IP_); - xfs_bioerror_relse(bp); - return; - } - - xfs_buf_iorequest(bp); -} - -STATIC void -_xfs_buf_ioend( - xfs_buf_t *bp, - int schedule) -{ - if (atomic_dec_and_test(&bp->b_io_remaining) == 1) - xfs_buf_ioend(bp, schedule); -} - -STATIC void -xfs_buf_bio_end_io( - struct bio *bio, - int error) -{ - xfs_buf_t *bp = (xfs_buf_t *)bio->bi_private; - - xfs_buf_ioerror(bp, -error); - - if (!error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) - invalidate_kernel_vmap_range(bp->b_addr, xfs_buf_vmap_len(bp)); - - _xfs_buf_ioend(bp, 1); - bio_put(bio); -} - -STATIC void -_xfs_buf_ioapply( - xfs_buf_t *bp) -{ - int rw, map_i, total_nr_pages, nr_pages; - struct bio *bio; - int offset = bp->b_offset; - int size = bp->b_count_desired; - sector_t sector = bp->b_bn; - - total_nr_pages = bp->b_page_count; - map_i = 0; - - if (bp->b_flags & XBF_WRITE) { - if (bp->b_flags & XBF_SYNCIO) - rw = WRITE_SYNC; - else - rw = WRITE; - if (bp->b_flags & XBF_FUA) - rw |= REQ_FUA; - if (bp->b_flags & XBF_FLUSH) - rw |= REQ_FLUSH; - } else if (bp->b_flags & XBF_READ_AHEAD) { - rw = READA; - } else { - rw = READ; - } - -next_chunk: - atomic_inc(&bp->b_io_remaining); - nr_pages = BIO_MAX_SECTORS >> (PAGE_SHIFT - BBSHIFT); - if (nr_pages > total_nr_pages) - nr_pages = total_nr_pages; - - bio = bio_alloc(GFP_NOIO, nr_pages); - bio->bi_bdev = bp->b_target->bt_bdev; - bio->bi_sector = sector; - bio->bi_end_io = xfs_buf_bio_end_io; - bio->bi_private = bp; - - - for (; size && nr_pages; nr_pages--, map_i++) { - int rbytes, nbytes = PAGE_SIZE - offset; - - if (nbytes > size) - nbytes = size; - - rbytes = bio_add_page(bio, bp->b_pages[map_i], nbytes, offset); - if (rbytes < nbytes) - break; - - offset = 0; - sector += nbytes >> BBSHIFT; - size -= nbytes; - total_nr_pages--; - } - - if (likely(bio->bi_size)) { - if (xfs_buf_is_vmapped(bp)) { - flush_kernel_vmap_range(bp->b_addr, - xfs_buf_vmap_len(bp)); - } - submit_bio(rw, bio); - if (size) - goto next_chunk; - } else { - xfs_buf_ioerror(bp, EIO); - bio_put(bio); - } -} - -int -xfs_buf_iorequest( - xfs_buf_t *bp) -{ - trace_xfs_buf_iorequest(bp, _RET_IP_); - - if (bp->b_flags & XBF_DELWRI) { - xfs_buf_delwri_queue(bp, 1); - return 0; - } - - if (bp->b_flags & XBF_WRITE) { - xfs_buf_wait_unpin(bp); - } - - xfs_buf_hold(bp); - - /* Set the count to 1 initially, this will stop an I/O - * completion callout which happens before we have started - * all the I/O from calling xfs_buf_ioend too early. - */ - atomic_set(&bp->b_io_remaining, 1); - _xfs_buf_ioapply(bp); - _xfs_buf_ioend(bp, 0); - - xfs_buf_rele(bp); - return 0; -} - -/* - * Waits for I/O to complete on the buffer supplied. - * It returns immediately if no I/O is pending. - * It returns the I/O error code, if any, or 0 if there was no error. - */ -int -xfs_buf_iowait( - xfs_buf_t *bp) -{ - trace_xfs_buf_iowait(bp, _RET_IP_); - - wait_for_completion(&bp->b_iowait); - - trace_xfs_buf_iowait_done(bp, _RET_IP_); - return bp->b_error; -} - -xfs_caddr_t -xfs_buf_offset( - xfs_buf_t *bp, - size_t offset) -{ - struct page *page; - - if (bp->b_flags & XBF_MAPPED) - return XFS_BUF_PTR(bp) + offset; - - offset += bp->b_offset; - page = bp->b_pages[offset >> PAGE_SHIFT]; - return (xfs_caddr_t)page_address(page) + (offset & (PAGE_SIZE-1)); -} - -/* - * Move data into or out of a buffer. - */ -void -xfs_buf_iomove( - xfs_buf_t *bp, /* buffer to process */ - size_t boff, /* starting buffer offset */ - size_t bsize, /* length to copy */ - void *data, /* data address */ - xfs_buf_rw_t mode) /* read/write/zero flag */ -{ - size_t bend, cpoff, csize; - struct page *page; - - bend = boff + bsize; - while (boff < bend) { - page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)]; - cpoff = xfs_buf_poff(boff + bp->b_offset); - csize = min_t(size_t, - PAGE_SIZE-cpoff, bp->b_count_desired-boff); - - ASSERT(((csize + cpoff) <= PAGE_SIZE)); - - switch (mode) { - case XBRW_ZERO: - memset(page_address(page) + cpoff, 0, csize); - break; - case XBRW_READ: - memcpy(data, page_address(page) + cpoff, csize); - break; - case XBRW_WRITE: - memcpy(page_address(page) + cpoff, data, csize); - } - - boff += csize; - data += csize; - } -} - -/* - * Handling of buffer targets (buftargs). - */ - -/* - * Wait for any bufs with callbacks that have been submitted but have not yet - * returned. These buffers will have an elevated hold count, so wait on those - * while freeing all the buffers only held by the LRU. - */ -void -xfs_wait_buftarg( - struct xfs_buftarg *btp) -{ - struct xfs_buf *bp; - -restart: - spin_lock(&btp->bt_lru_lock); - while (!list_empty(&btp->bt_lru)) { - bp = list_first_entry(&btp->bt_lru, struct xfs_buf, b_lru); - if (atomic_read(&bp->b_hold) > 1) { - spin_unlock(&btp->bt_lru_lock); - delay(100); - goto restart; - } - /* - * clear the LRU reference count so the bufer doesn't get - * ignored in xfs_buf_rele(). - */ - atomic_set(&bp->b_lru_ref, 0); - spin_unlock(&btp->bt_lru_lock); - xfs_buf_rele(bp); - spin_lock(&btp->bt_lru_lock); - } - spin_unlock(&btp->bt_lru_lock); -} - -int -xfs_buftarg_shrink( - struct shrinker *shrink, - struct shrink_control *sc) -{ - struct xfs_buftarg *btp = container_of(shrink, - struct xfs_buftarg, bt_shrinker); - struct xfs_buf *bp; - int nr_to_scan = sc->nr_to_scan; - LIST_HEAD(dispose); - - if (!nr_to_scan) - return btp->bt_lru_nr; - - spin_lock(&btp->bt_lru_lock); - while (!list_empty(&btp->bt_lru)) { - if (nr_to_scan-- <= 0) - break; - - bp = list_first_entry(&btp->bt_lru, struct xfs_buf, b_lru); - - /* - * Decrement the b_lru_ref count unless the value is already - * zero. If the value is already zero, we need to reclaim the - * buffer, otherwise it gets another trip through the LRU. - */ - if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) { - list_move_tail(&bp->b_lru, &btp->bt_lru); - continue; - } - - /* - * remove the buffer from the LRU now to avoid needing another - * lock round trip inside xfs_buf_rele(). - */ - list_move(&bp->b_lru, &dispose); - btp->bt_lru_nr--; - } - spin_unlock(&btp->bt_lru_lock); - - while (!list_empty(&dispose)) { - bp = list_first_entry(&dispose, struct xfs_buf, b_lru); - list_del_init(&bp->b_lru); - xfs_buf_rele(bp); - } - - return btp->bt_lru_nr; -} - -void -xfs_free_buftarg( - struct xfs_mount *mp, - struct xfs_buftarg *btp) -{ - unregister_shrinker(&btp->bt_shrinker); - - xfs_flush_buftarg(btp, 1); - if (mp->m_flags & XFS_MOUNT_BARRIER) - xfs_blkdev_issue_flush(btp); - - kthread_stop(btp->bt_task); - kmem_free(btp); -} - -STATIC int -xfs_setsize_buftarg_flags( - xfs_buftarg_t *btp, - unsigned int blocksize, - unsigned int sectorsize, - int verbose) -{ - btp->bt_bsize = blocksize; - btp->bt_sshift = ffs(sectorsize) - 1; - btp->bt_smask = sectorsize - 1; - - if (set_blocksize(btp->bt_bdev, sectorsize)) { - xfs_warn(btp->bt_mount, - "Cannot set_blocksize to %u on device %s\n", - sectorsize, XFS_BUFTARG_NAME(btp)); - return EINVAL; - } - - return 0; -} - -/* - * When allocating the initial buffer target we have not yet - * read in the superblock, so don't know what sized sectors - * are being used is at this early stage. Play safe. - */ -STATIC int -xfs_setsize_buftarg_early( - xfs_buftarg_t *btp, - struct block_device *bdev) -{ - return xfs_setsize_buftarg_flags(btp, - PAGE_SIZE, bdev_logical_block_size(bdev), 0); -} - -int -xfs_setsize_buftarg( - xfs_buftarg_t *btp, - unsigned int blocksize, - unsigned int sectorsize) -{ - return xfs_setsize_buftarg_flags(btp, blocksize, sectorsize, 1); -} - -STATIC int -xfs_alloc_delwrite_queue( - xfs_buftarg_t *btp, - const char *fsname) -{ - INIT_LIST_HEAD(&btp->bt_delwrite_queue); - spin_lock_init(&btp->bt_delwrite_lock); - btp->bt_flags = 0; - btp->bt_task = kthread_run(xfsbufd, btp, "xfsbufd/%s", fsname); - if (IS_ERR(btp->bt_task)) - return PTR_ERR(btp->bt_task); - return 0; -} - -xfs_buftarg_t * -xfs_alloc_buftarg( - struct xfs_mount *mp, - struct block_device *bdev, - int external, - const char *fsname) -{ - xfs_buftarg_t *btp; - - btp = kmem_zalloc(sizeof(*btp), KM_SLEEP); - - btp->bt_mount = mp; - btp->bt_dev = bdev->bd_dev; - btp->bt_bdev = bdev; - btp->bt_bdi = blk_get_backing_dev_info(bdev); - if (!btp->bt_bdi) - goto error; - - INIT_LIST_HEAD(&btp->bt_lru); - spin_lock_init(&btp->bt_lru_lock); - if (xfs_setsize_buftarg_early(btp, bdev)) - goto error; - if (xfs_alloc_delwrite_queue(btp, fsname)) - goto error; - btp->bt_shrinker.shrink = xfs_buftarg_shrink; - btp->bt_shrinker.seeks = DEFAULT_SEEKS; - register_shrinker(&btp->bt_shrinker); - return btp; - -error: - kmem_free(btp); - return NULL; -} - - -/* - * Delayed write buffer handling - */ -STATIC void -xfs_buf_delwri_queue( - xfs_buf_t *bp, - int unlock) -{ - struct list_head *dwq = &bp->b_target->bt_delwrite_queue; - spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; - - trace_xfs_buf_delwri_queue(bp, _RET_IP_); - - ASSERT((bp->b_flags&(XBF_DELWRI|XBF_ASYNC)) == (XBF_DELWRI|XBF_ASYNC)); - - spin_lock(dwlk); - /* If already in the queue, dequeue and place at tail */ - if (!list_empty(&bp->b_list)) { - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - if (unlock) - atomic_dec(&bp->b_hold); - list_del(&bp->b_list); - } - - if (list_empty(dwq)) { - /* start xfsbufd as it is about to have something to do */ - wake_up_process(bp->b_target->bt_task); - } - - bp->b_flags |= _XBF_DELWRI_Q; - list_add_tail(&bp->b_list, dwq); - bp->b_queuetime = jiffies; - spin_unlock(dwlk); - - if (unlock) - xfs_buf_unlock(bp); -} - -void -xfs_buf_delwri_dequeue( - xfs_buf_t *bp) -{ - spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; - int dequeued = 0; - - spin_lock(dwlk); - if ((bp->b_flags & XBF_DELWRI) && !list_empty(&bp->b_list)) { - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - list_del_init(&bp->b_list); - dequeued = 1; - } - bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q); - spin_unlock(dwlk); - - if (dequeued) - xfs_buf_rele(bp); - - trace_xfs_buf_delwri_dequeue(bp, _RET_IP_); -} - -/* - * If a delwri buffer needs to be pushed before it has aged out, then promote - * it to the head of the delwri queue so that it will be flushed on the next - * xfsbufd run. We do this by resetting the queuetime of the buffer to be older - * than the age currently needed to flush the buffer. Hence the next time the - * xfsbufd sees it is guaranteed to be considered old enough to flush. - */ -void -xfs_buf_delwri_promote( - struct xfs_buf *bp) -{ - struct xfs_buftarg *btp = bp->b_target; - long age = xfs_buf_age_centisecs * msecs_to_jiffies(10) + 1; - - ASSERT(bp->b_flags & XBF_DELWRI); - ASSERT(bp->b_flags & _XBF_DELWRI_Q); - - /* - * Check the buffer age before locking the delayed write queue as we - * don't need to promote buffers that are already past the flush age. - */ - if (bp->b_queuetime < jiffies - age) - return; - bp->b_queuetime = jiffies - age; - spin_lock(&btp->bt_delwrite_lock); - list_move(&bp->b_list, &btp->bt_delwrite_queue); - spin_unlock(&btp->bt_delwrite_lock); -} - -STATIC void -xfs_buf_runall_queues( - struct workqueue_struct *queue) -{ - flush_workqueue(queue); -} - -/* - * Move as many buffers as specified to the supplied list - * idicating if we skipped any buffers to prevent deadlocks. - */ -STATIC int -xfs_buf_delwri_split( - xfs_buftarg_t *target, - struct list_head *list, - unsigned long age) -{ - xfs_buf_t *bp, *n; - struct list_head *dwq = &target->bt_delwrite_queue; - spinlock_t *dwlk = &target->bt_delwrite_lock; - int skipped = 0; - int force; - - force = test_and_clear_bit(XBT_FORCE_FLUSH, &target->bt_flags); - INIT_LIST_HEAD(list); - spin_lock(dwlk); - list_for_each_entry_safe(bp, n, dwq, b_list) { - ASSERT(bp->b_flags & XBF_DELWRI); - - if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { - if (!force && - time_before(jiffies, bp->b_queuetime + age)) { - xfs_buf_unlock(bp); - break; - } - - bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); - bp->b_flags |= XBF_WRITE; - list_move_tail(&bp->b_list, list); - trace_xfs_buf_delwri_split(bp, _RET_IP_); - } else - skipped++; - } - spin_unlock(dwlk); - - return skipped; - -} - -/* - * Compare function is more complex than it needs to be because - * the return value is only 32 bits and we are doing comparisons - * on 64 bit values - */ -static int -xfs_buf_cmp( - void *priv, - struct list_head *a, - struct list_head *b) -{ - struct xfs_buf *ap = container_of(a, struct xfs_buf, b_list); - struct xfs_buf *bp = container_of(b, struct xfs_buf, b_list); - xfs_daddr_t diff; - - diff = ap->b_bn - bp->b_bn; - if (diff < 0) - return -1; - if (diff > 0) - return 1; - return 0; -} - -STATIC int -xfsbufd( - void *data) -{ - xfs_buftarg_t *target = (xfs_buftarg_t *)data; - - current->flags |= PF_MEMALLOC; - - set_freezable(); - - do { - long age = xfs_buf_age_centisecs * msecs_to_jiffies(10); - long tout = xfs_buf_timer_centisecs * msecs_to_jiffies(10); - struct list_head tmp; - struct blk_plug plug; - - if (unlikely(freezing(current))) { - set_bit(XBT_FORCE_SLEEP, &target->bt_flags); - refrigerator(); - } else { - clear_bit(XBT_FORCE_SLEEP, &target->bt_flags); - } - - /* sleep for a long time if there is nothing to do. */ - if (list_empty(&target->bt_delwrite_queue)) - tout = MAX_SCHEDULE_TIMEOUT; - schedule_timeout_interruptible(tout); - - xfs_buf_delwri_split(target, &tmp, age); - list_sort(NULL, &tmp, xfs_buf_cmp); - - blk_start_plug(&plug); - while (!list_empty(&tmp)) { - struct xfs_buf *bp; - bp = list_first_entry(&tmp, struct xfs_buf, b_list); - list_del_init(&bp->b_list); - xfs_bdstrat_cb(bp); - } - blk_finish_plug(&plug); - } while (!kthread_should_stop()); - - return 0; -} - -/* - * Go through all incore buffers, and release buffers if they belong to - * the given device. This is used in filesystem error handling to - * preserve the consistency of its metadata. - */ -int -xfs_flush_buftarg( - xfs_buftarg_t *target, - int wait) -{ - xfs_buf_t *bp; - int pincount = 0; - LIST_HEAD(tmp_list); - LIST_HEAD(wait_list); - struct blk_plug plug; - - xfs_buf_runall_queues(xfsconvertd_workqueue); - xfs_buf_runall_queues(xfsdatad_workqueue); - xfs_buf_runall_queues(xfslogd_workqueue); - - set_bit(XBT_FORCE_FLUSH, &target->bt_flags); - pincount = xfs_buf_delwri_split(target, &tmp_list, 0); - - /* - * Dropped the delayed write list lock, now walk the temporary list. - * All I/O is issued async and then if we need to wait for completion - * we do that after issuing all the IO. - */ - list_sort(NULL, &tmp_list, xfs_buf_cmp); - - blk_start_plug(&plug); - while (!list_empty(&tmp_list)) { - bp = list_first_entry(&tmp_list, struct xfs_buf, b_list); - ASSERT(target == bp->b_target); - list_del_init(&bp->b_list); - if (wait) { - bp->b_flags &= ~XBF_ASYNC; - list_add(&bp->b_list, &wait_list); - } - xfs_bdstrat_cb(bp); - } - blk_finish_plug(&plug); - - if (wait) { - /* Wait for IO to complete. */ - while (!list_empty(&wait_list)) { - bp = list_first_entry(&wait_list, struct xfs_buf, b_list); - - list_del_init(&bp->b_list); - xfs_buf_iowait(bp); - xfs_buf_relse(bp); - } - } - - return pincount; -} - -int __init -xfs_buf_init(void) -{ - xfs_buf_zone = kmem_zone_init_flags(sizeof(xfs_buf_t), "xfs_buf", - KM_ZONE_HWALIGN, NULL); - if (!xfs_buf_zone) - goto out; - - xfslogd_workqueue = alloc_workqueue("xfslogd", - WQ_MEM_RECLAIM | WQ_HIGHPRI, 1); - if (!xfslogd_workqueue) - goto out_free_buf_zone; - - xfsdatad_workqueue = alloc_workqueue("xfsdatad", WQ_MEM_RECLAIM, 1); - if (!xfsdatad_workqueue) - goto out_destroy_xfslogd_workqueue; - - xfsconvertd_workqueue = alloc_workqueue("xfsconvertd", - WQ_MEM_RECLAIM, 1); - if (!xfsconvertd_workqueue) - goto out_destroy_xfsdatad_workqueue; - - return 0; - - out_destroy_xfsdatad_workqueue: - destroy_workqueue(xfsdatad_workqueue); - out_destroy_xfslogd_workqueue: - destroy_workqueue(xfslogd_workqueue); - out_free_buf_zone: - kmem_zone_destroy(xfs_buf_zone); - out: - return -ENOMEM; -} - -void -xfs_buf_terminate(void) -{ - destroy_workqueue(xfsconvertd_workqueue); - destroy_workqueue(xfsdatad_workqueue); - destroy_workqueue(xfslogd_workqueue); - kmem_zone_destroy(xfs_buf_zone); -} - -#ifdef CONFIG_KDB_MODULES -struct list_head * -xfs_get_buftarg_list(void) -{ - return &xfs_buftarg_list; -} -#endif diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h deleted file mode 100644 index 6a83b46..0000000 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ /dev/null @@ -1,336 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_BUF_H__ -#define __XFS_BUF_H__ - -#include -#include -#include -#include -#include -#include -#include -#include - -/* - * Base types - */ - -#define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL)) - -#define xfs_buf_ctob(pp) ((pp) * PAGE_CACHE_SIZE) -#define xfs_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT) -#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT) -#define xfs_buf_poff(aa) ((aa) & ~PAGE_CACHE_MASK) - -typedef enum { - XBRW_READ = 1, /* transfer into target memory */ - XBRW_WRITE = 2, /* transfer from target memory */ - XBRW_ZERO = 3, /* Zero target memory */ -} xfs_buf_rw_t; - -#define XBF_READ (1 << 0) /* buffer intended for reading from device */ -#define XBF_WRITE (1 << 1) /* buffer intended for writing to device */ -#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */ -#define XBF_MAPPED (1 << 3) /* buffer mapped (b_addr valid) */ -#define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */ -#define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */ -#define XBF_DELWRI (1 << 6) /* buffer has dirty pages */ -#define XBF_STALE (1 << 7) /* buffer has been staled, do not find it */ - -/* I/O hints for the BIO layer */ -#define XBF_SYNCIO (1 << 10)/* treat this buffer as synchronous I/O */ -#define XBF_FUA (1 << 11)/* force cache write through mode */ -#define XBF_FLUSH (1 << 12)/* flush the disk cache before a write */ - -/* flags used only as arguments to access routines */ -#define XBF_LOCK (1 << 15)/* lock requested */ -#define XBF_TRYLOCK (1 << 16)/* lock requested, but do not wait */ -#define XBF_DONT_BLOCK (1 << 17)/* do not block in current thread */ - -/* flags used only internally */ -#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ -#define _XBF_KMEM (1 << 21)/* backed by heap memory */ -#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ - -typedef unsigned int xfs_buf_flags_t; - -#define XFS_BUF_FLAGS \ - { XBF_READ, "READ" }, \ - { XBF_WRITE, "WRITE" }, \ - { XBF_READ_AHEAD, "READ_AHEAD" }, \ - { XBF_MAPPED, "MAPPED" }, \ - { XBF_ASYNC, "ASYNC" }, \ - { XBF_DONE, "DONE" }, \ - { XBF_DELWRI, "DELWRI" }, \ - { XBF_STALE, "STALE" }, \ - { XBF_SYNCIO, "SYNCIO" }, \ - { XBF_FUA, "FUA" }, \ - { XBF_FLUSH, "FLUSH" }, \ - { XBF_LOCK, "LOCK" }, /* should never be set */\ - { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ - { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ - { _XBF_PAGES, "PAGES" }, \ - { _XBF_KMEM, "KMEM" }, \ - { _XBF_DELWRI_Q, "DELWRI_Q" } - -typedef enum { - XBT_FORCE_SLEEP = 0, - XBT_FORCE_FLUSH = 1, -} xfs_buftarg_flags_t; - -typedef struct xfs_buftarg { - dev_t bt_dev; - struct block_device *bt_bdev; - struct backing_dev_info *bt_bdi; - struct xfs_mount *bt_mount; - unsigned int bt_bsize; - unsigned int bt_sshift; - size_t bt_smask; - - /* per device delwri queue */ - struct task_struct *bt_task; - struct list_head bt_delwrite_queue; - spinlock_t bt_delwrite_lock; - unsigned long bt_flags; - - /* LRU control structures */ - struct shrinker bt_shrinker; - struct list_head bt_lru; - spinlock_t bt_lru_lock; - unsigned int bt_lru_nr; -} xfs_buftarg_t; - -struct xfs_buf; -typedef void (*xfs_buf_iodone_t)(struct xfs_buf *); - -#define XB_PAGES 2 - -typedef struct xfs_buf { - /* - * first cacheline holds all the fields needed for an uncontended cache - * hit to be fully processed. The semaphore straddles the cacheline - * boundary, but the counter and lock sits on the first cacheline, - * which is the only bit that is touched if we hit the semaphore - * fast-path on locking. - */ - struct rb_node b_rbnode; /* rbtree node */ - xfs_off_t b_file_offset; /* offset in file */ - size_t b_buffer_length;/* size of buffer in bytes */ - atomic_t b_hold; /* reference count */ - atomic_t b_lru_ref; /* lru reclaim ref count */ - xfs_buf_flags_t b_flags; /* status flags */ - struct semaphore b_sema; /* semaphore for lockables */ - - struct list_head b_lru; /* lru list */ - wait_queue_head_t b_waiters; /* unpin waiters */ - struct list_head b_list; - struct xfs_perag *b_pag; /* contains rbtree root */ - xfs_buftarg_t *b_target; /* buffer target (device) */ - xfs_daddr_t b_bn; /* block number for I/O */ - size_t b_count_desired;/* desired transfer size */ - void *b_addr; /* virtual address of buffer */ - struct work_struct b_iodone_work; - xfs_buf_iodone_t b_iodone; /* I/O completion function */ - struct completion b_iowait; /* queue for I/O waiters */ - void *b_fspriv; - struct xfs_trans *b_transp; - struct page **b_pages; /* array of page pointers */ - struct page *b_page_array[XB_PAGES]; /* inline pages */ - unsigned long b_queuetime; /* time buffer was queued */ - atomic_t b_pin_count; /* pin count */ - atomic_t b_io_remaining; /* #outstanding I/O requests */ - unsigned int b_page_count; /* size of page array */ - unsigned int b_offset; /* page offset in first page */ - unsigned short b_error; /* error code on I/O */ -#ifdef XFS_BUF_LOCK_TRACKING - int b_last_holder; -#endif -} xfs_buf_t; - - -/* Finding and Reading Buffers */ -extern xfs_buf_t *_xfs_buf_find(xfs_buftarg_t *, xfs_off_t, size_t, - xfs_buf_flags_t, xfs_buf_t *); -#define xfs_incore(buftarg,blkno,len,lockit) \ - _xfs_buf_find(buftarg, blkno ,len, lockit, NULL) - -extern xfs_buf_t *xfs_buf_get(xfs_buftarg_t *, xfs_off_t, size_t, - xfs_buf_flags_t); -extern xfs_buf_t *xfs_buf_read(xfs_buftarg_t *, xfs_off_t, size_t, - xfs_buf_flags_t); - -extern xfs_buf_t *xfs_buf_get_empty(size_t, xfs_buftarg_t *); -extern void xfs_buf_set_empty(struct xfs_buf *bp, size_t len); -extern xfs_buf_t *xfs_buf_get_uncached(struct xfs_buftarg *, size_t, int); -extern int xfs_buf_associate_memory(xfs_buf_t *, void *, size_t); -extern void xfs_buf_hold(xfs_buf_t *); -extern void xfs_buf_readahead(xfs_buftarg_t *, xfs_off_t, size_t); -struct xfs_buf *xfs_buf_read_uncached(struct xfs_mount *mp, - struct xfs_buftarg *target, - xfs_daddr_t daddr, size_t length, int flags); - -/* Releasing Buffers */ -extern void xfs_buf_free(xfs_buf_t *); -extern void xfs_buf_rele(xfs_buf_t *); - -/* Locking and Unlocking Buffers */ -extern int xfs_buf_trylock(xfs_buf_t *); -extern void xfs_buf_lock(xfs_buf_t *); -extern void xfs_buf_unlock(xfs_buf_t *); -#define xfs_buf_islocked(bp) \ - ((bp)->b_sema.count <= 0) - -/* Buffer Read and Write Routines */ -extern int xfs_bwrite(struct xfs_mount *mp, struct xfs_buf *bp); -extern void xfs_bdwrite(void *mp, xfs_buf_t *bp); - -extern void xfsbdstrat(struct xfs_mount *, struct xfs_buf *); -extern int xfs_bdstrat_cb(struct xfs_buf *); - -extern void xfs_buf_ioend(xfs_buf_t *, int); -extern void xfs_buf_ioerror(xfs_buf_t *, int); -extern int xfs_buf_iorequest(xfs_buf_t *); -extern int xfs_buf_iowait(xfs_buf_t *); -extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *, - xfs_buf_rw_t); -#define xfs_buf_zero(bp, off, len) \ - xfs_buf_iomove((bp), (off), (len), NULL, XBRW_ZERO) - -static inline int xfs_buf_geterror(xfs_buf_t *bp) -{ - return bp ? bp->b_error : ENOMEM; -} - -/* Buffer Utility Routines */ -extern xfs_caddr_t xfs_buf_offset(xfs_buf_t *, size_t); - -/* Delayed Write Buffer Routines */ -extern void xfs_buf_delwri_dequeue(xfs_buf_t *); -extern void xfs_buf_delwri_promote(xfs_buf_t *); - -/* Buffer Daemon Setup Routines */ -extern int xfs_buf_init(void); -extern void xfs_buf_terminate(void); - -#define xfs_buf_target_name(target) \ - ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) - - -#define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) -#define XFS_BUF_ZEROFLAGS(bp) \ - ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ - XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) - -void xfs_buf_stale(struct xfs_buf *bp); -#define XFS_BUF_STALE(bp) xfs_buf_stale(bp); -#define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE) -#define XFS_BUF_ISSTALE(bp) ((bp)->b_flags & XBF_STALE) -#define XFS_BUF_SUPER_STALE(bp) do { \ - XFS_BUF_STALE(bp); \ - xfs_buf_delwri_dequeue(bp); \ - XFS_BUF_DONE(bp); \ - } while (0) - -#define XFS_BUF_DELAYWRITE(bp) ((bp)->b_flags |= XBF_DELWRI) -#define XFS_BUF_UNDELAYWRITE(bp) xfs_buf_delwri_dequeue(bp) -#define XFS_BUF_ISDELAYWRITE(bp) ((bp)->b_flags & XBF_DELWRI) - -#define XFS_BUF_ERROR(bp,no) xfs_buf_ioerror(bp,no) -#define XFS_BUF_GETERROR(bp) xfs_buf_geterror(bp) -#define XFS_BUF_ISERROR(bp) (xfs_buf_geterror(bp) ? 1 : 0) - -#define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE) -#define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) -#define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) - -#define XFS_BUF_BUSY(bp) do { } while (0) -#define XFS_BUF_UNBUSY(bp) do { } while (0) -#define XFS_BUF_ISBUSY(bp) (1) - -#define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC) -#define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) -#define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) - -#define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) -#define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) -#define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) -#define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ) - -#define XFS_BUF_WRITE(bp) ((bp)->b_flags |= XBF_WRITE) -#define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) -#define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) - -#define XFS_BUF_SET_START(bp) do { } while (0) - -#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) -#define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) -#define XFS_BUF_ADDR(bp) ((bp)->b_bn) -#define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) -#define XFS_BUF_OFFSET(bp) ((bp)->b_file_offset) -#define XFS_BUF_SET_OFFSET(bp, off) ((bp)->b_file_offset = (off)) -#define XFS_BUF_COUNT(bp) ((bp)->b_count_desired) -#define XFS_BUF_SET_COUNT(bp, cnt) ((bp)->b_count_desired = (cnt)) -#define XFS_BUF_SIZE(bp) ((bp)->b_buffer_length) -#define XFS_BUF_SET_SIZE(bp, cnt) ((bp)->b_buffer_length = (cnt)) - -static inline void -xfs_buf_set_ref( - struct xfs_buf *bp, - int lru_ref) -{ - atomic_set(&bp->b_lru_ref, lru_ref); -} -#define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) -#define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) - -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) - -#define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); - -#define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) -#define XFS_BUF_TARGET(bp) ((bp)->b_target) -#define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) - -static inline void xfs_buf_relse(xfs_buf_t *bp) -{ - xfs_buf_unlock(bp); - xfs_buf_rele(bp); -} - -/* - * Handling of buftargs. - */ -extern xfs_buftarg_t *xfs_alloc_buftarg(struct xfs_mount *, - struct block_device *, int, const char *); -extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *); -extern void xfs_wait_buftarg(xfs_buftarg_t *); -extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); -extern int xfs_flush_buftarg(xfs_buftarg_t *, int); - -#ifdef CONFIG_KDB_MODULES -extern struct list_head *xfs_get_buftarg_list(void); -#endif - -#define xfs_getsize_buftarg(buftarg) block_size((buftarg)->bt_bdev) -#define xfs_readonly_buftarg(buftarg) bdev_read_only((buftarg)->bt_bdev) - -#define xfs_binval(buftarg) xfs_flush_buftarg(buftarg, 1) -#define XFS_bflush(buftarg) xfs_flush_buftarg(buftarg, 1) - -#endif /* __XFS_BUF_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_discard.c b/fs/xfs/linux-2.6/xfs_discard.c deleted file mode 100644 index 244e797..0000000 --- a/fs/xfs/linux-2.6/xfs_discard.c +++ /dev/null @@ -1,222 +0,0 @@ -/* - * Copyright (C) 2010 Red Hat, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_sb.h" -#include "xfs_inum.h" -#include "xfs_log.h" -#include "xfs_ag.h" -#include "xfs_mount.h" -#include "xfs_quota.h" -#include "xfs_trans.h" -#include "xfs_alloc_btree.h" -#include "xfs_bmap_btree.h" -#include "xfs_ialloc_btree.h" -#include "xfs_btree.h" -#include "xfs_inode.h" -#include "xfs_alloc.h" -#include "xfs_error.h" -#include "xfs_discard.h" -#include "xfs_trace.h" - -STATIC int -xfs_trim_extents( - struct xfs_mount *mp, - xfs_agnumber_t agno, - xfs_fsblock_t start, - xfs_fsblock_t len, - xfs_fsblock_t minlen, - __uint64_t *blocks_trimmed) -{ - struct block_device *bdev = mp->m_ddev_targp->bt_bdev; - struct xfs_btree_cur *cur; - struct xfs_buf *agbp; - struct xfs_perag *pag; - int error; - int i; - - pag = xfs_perag_get(mp, agno); - - error = xfs_alloc_read_agf(mp, NULL, agno, 0, &agbp); - if (error || !agbp) - goto out_put_perag; - - cur = xfs_allocbt_init_cursor(mp, NULL, agbp, agno, XFS_BTNUM_CNT); - - /* - * Force out the log. This means any transactions that might have freed - * space before we took the AGF buffer lock are now on disk, and the - * volatile disk cache is flushed. - */ - xfs_log_force(mp, XFS_LOG_SYNC); - - /* - * Look up the longest btree in the AGF and start with it. - */ - error = xfs_alloc_lookup_le(cur, 0, - XFS_BUF_TO_AGF(agbp)->agf_longest, &i); - if (error) - goto out_del_cursor; - - /* - * Loop until we are done with all extents that are large - * enough to be worth discarding. - */ - while (i) { - xfs_agblock_t fbno; - xfs_extlen_t flen; - - error = xfs_alloc_get_rec(cur, &fbno, &flen, &i); - if (error) - goto out_del_cursor; - XFS_WANT_CORRUPTED_GOTO(i == 1, out_del_cursor); - ASSERT(flen <= XFS_BUF_TO_AGF(agbp)->agf_longest); - - /* - * Too small? Give up. - */ - if (flen < minlen) { - trace_xfs_discard_toosmall(mp, agno, fbno, flen); - goto out_del_cursor; - } - - /* - * If the extent is entirely outside of the range we are - * supposed to discard skip it. Do not bother to trim - * down partially overlapping ranges for now. - */ - if (XFS_AGB_TO_FSB(mp, agno, fbno) + flen < start || - XFS_AGB_TO_FSB(mp, agno, fbno) >= start + len) { - trace_xfs_discard_exclude(mp, agno, fbno, flen); - goto next_extent; - } - - /* - * If any blocks in the range are still busy, skip the - * discard and try again the next time. - */ - if (xfs_alloc_busy_search(mp, agno, fbno, flen)) { - trace_xfs_discard_busy(mp, agno, fbno, flen); - goto next_extent; - } - - trace_xfs_discard_extent(mp, agno, fbno, flen); - error = -blkdev_issue_discard(bdev, - XFS_AGB_TO_DADDR(mp, agno, fbno), - XFS_FSB_TO_BB(mp, flen), - GFP_NOFS, 0); - if (error) - goto out_del_cursor; - *blocks_trimmed += flen; - -next_extent: - error = xfs_btree_decrement(cur, 0, &i); - if (error) - goto out_del_cursor; - } - -out_del_cursor: - xfs_btree_del_cursor(cur, error ? XFS_BTREE_ERROR : XFS_BTREE_NOERROR); - xfs_buf_relse(agbp); -out_put_perag: - xfs_perag_put(pag); - return error; -} - -int -xfs_ioc_trim( - struct xfs_mount *mp, - struct fstrim_range __user *urange) -{ - struct request_queue *q = mp->m_ddev_targp->bt_bdev->bd_disk->queue; - unsigned int granularity = q->limits.discard_granularity; - struct fstrim_range range; - xfs_fsblock_t start, len, minlen; - xfs_agnumber_t start_agno, end_agno, agno; - __uint64_t blocks_trimmed = 0; - int error, last_error = 0; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - if (!blk_queue_discard(q)) - return -XFS_ERROR(EOPNOTSUPP); - if (copy_from_user(&range, urange, sizeof(range))) - return -XFS_ERROR(EFAULT); - - /* - * Truncating down the len isn't actually quite correct, but using - * XFS_B_TO_FSB would mean we trivially get overflows for values - * of ULLONG_MAX or slightly lower. And ULLONG_MAX is the default - * used by the fstrim application. In the end it really doesn't - * matter as trimming blocks is an advisory interface. - */ - start = XFS_B_TO_FSBT(mp, range.start); - len = XFS_B_TO_FSBT(mp, range.len); - minlen = XFS_B_TO_FSB(mp, max_t(u64, granularity, range.minlen)); - - start_agno = XFS_FSB_TO_AGNO(mp, start); - if (start_agno >= mp->m_sb.sb_agcount) - return -XFS_ERROR(EINVAL); - - end_agno = XFS_FSB_TO_AGNO(mp, start + len); - if (end_agno >= mp->m_sb.sb_agcount) - end_agno = mp->m_sb.sb_agcount - 1; - - for (agno = start_agno; agno <= end_agno; agno++) { - error = -xfs_trim_extents(mp, agno, start, len, minlen, - &blocks_trimmed); - if (error) - last_error = error; - } - - if (last_error) - return last_error; - - range.len = XFS_FSB_TO_B(mp, blocks_trimmed); - if (copy_to_user(urange, &range, sizeof(range))) - return -XFS_ERROR(EFAULT); - return 0; -} - -int -xfs_discard_extents( - struct xfs_mount *mp, - struct list_head *list) -{ - struct xfs_busy_extent *busyp; - int error = 0; - - list_for_each_entry(busyp, list, list) { - trace_xfs_discard_extent(mp, busyp->agno, busyp->bno, - busyp->length); - - error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, - XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno), - XFS_FSB_TO_BB(mp, busyp->length), - GFP_NOFS, 0); - if (error && error != EOPNOTSUPP) { - xfs_info(mp, - "discard failed for extent [0x%llu,%u], error %d", - (unsigned long long)busyp->bno, - busyp->length, - error); - return error; - } - } - - return 0; -} diff --git a/fs/xfs/linux-2.6/xfs_discard.h b/fs/xfs/linux-2.6/xfs_discard.h deleted file mode 100644 index 344879a..0000000 --- a/fs/xfs/linux-2.6/xfs_discard.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef XFS_DISCARD_H -#define XFS_DISCARD_H 1 - -struct fstrim_range; -struct list_head; - -extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); -extern int xfs_discard_extents(struct xfs_mount *, struct list_head *); - -#endif /* XFS_DISCARD_H */ diff --git a/fs/xfs/linux-2.6/xfs_export.c b/fs/xfs/linux-2.6/xfs_export.c deleted file mode 100644 index 75e5d32..0000000 --- a/fs/xfs/linux-2.6/xfs_export.c +++ /dev/null @@ -1,250 +0,0 @@ -/* - * Copyright (c) 2004-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_types.h" -#include "xfs_inum.h" -#include "xfs_log.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_dir2.h" -#include "xfs_mount.h" -#include "xfs_export.h" -#include "xfs_vnodeops.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "xfs_inode_item.h" -#include "xfs_trace.h" - -/* - * Note that we only accept fileids which are long enough rather than allow - * the parent generation number to default to zero. XFS considers zero a - * valid generation number not an invalid/wildcard value. - */ -static int xfs_fileid_length(int fileid_type) -{ - switch (fileid_type) { - case FILEID_INO32_GEN: - return 2; - case FILEID_INO32_GEN_PARENT: - return 4; - case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: - return 3; - case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: - return 6; - } - return 255; /* invalid */ -} - -STATIC int -xfs_fs_encode_fh( - struct dentry *dentry, - __u32 *fh, - int *max_len, - int connectable) -{ - struct fid *fid = (struct fid *)fh; - struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fh; - struct inode *inode = dentry->d_inode; - int fileid_type; - int len; - - /* Directories don't need their parent encoded, they have ".." */ - if (S_ISDIR(inode->i_mode) || !connectable) - fileid_type = FILEID_INO32_GEN; - else - fileid_type = FILEID_INO32_GEN_PARENT; - - /* - * If the the filesystem may contain 64bit inode numbers, we need - * to use larger file handles that can represent them. - * - * While we only allocate inodes that do not fit into 32 bits any - * large enough filesystem may contain them, thus the slightly - * confusing looking conditional below. - */ - if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS) || - (XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_32BITINODES)) - fileid_type |= XFS_FILEID_TYPE_64FLAG; - - /* - * Only encode if there is enough space given. In practice - * this means we can't export a filesystem with 64bit inodes - * over NFSv2 with the subtree_check export option; the other - * seven combinations work. The real answer is "don't use v2". - */ - len = xfs_fileid_length(fileid_type); - if (*max_len < len) { - *max_len = len; - return 255; - } - *max_len = len; - - switch (fileid_type) { - case FILEID_INO32_GEN_PARENT: - spin_lock(&dentry->d_lock); - fid->i32.parent_ino = dentry->d_parent->d_inode->i_ino; - fid->i32.parent_gen = dentry->d_parent->d_inode->i_generation; - spin_unlock(&dentry->d_lock); - /*FALLTHRU*/ - case FILEID_INO32_GEN: - fid->i32.ino = inode->i_ino; - fid->i32.gen = inode->i_generation; - break; - case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: - spin_lock(&dentry->d_lock); - fid64->parent_ino = dentry->d_parent->d_inode->i_ino; - fid64->parent_gen = dentry->d_parent->d_inode->i_generation; - spin_unlock(&dentry->d_lock); - /*FALLTHRU*/ - case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: - fid64->ino = inode->i_ino; - fid64->gen = inode->i_generation; - break; - } - - return fileid_type; -} - -STATIC struct inode * -xfs_nfs_get_inode( - struct super_block *sb, - u64 ino, - u32 generation) - { - xfs_mount_t *mp = XFS_M(sb); - xfs_inode_t *ip; - int error; - - /* - * NFS can sometimes send requests for ino 0. Fail them gracefully. - */ - if (ino == 0) - return ERR_PTR(-ESTALE); - - /* - * The XFS_IGET_UNTRUSTED means that an invalid inode number is just - * fine and not an indication of a corrupted filesystem as clients can - * send invalid file handles and we have to handle it gracefully.. - */ - error = xfs_iget(mp, NULL, ino, XFS_IGET_UNTRUSTED, 0, &ip); - if (error) { - /* - * EINVAL means the inode cluster doesn't exist anymore. - * This implies the filehandle is stale, so we should - * translate it here. - * We don't use ESTALE directly down the chain to not - * confuse applications using bulkstat that expect EINVAL. - */ - if (error == EINVAL || error == ENOENT) - error = ESTALE; - return ERR_PTR(-error); - } - - if (ip->i_d.di_gen != generation) { - IRELE(ip); - return ERR_PTR(-ESTALE); - } - - return VFS_I(ip); -} - -STATIC struct dentry * -xfs_fs_fh_to_dentry(struct super_block *sb, struct fid *fid, - int fh_len, int fileid_type) -{ - struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fid; - struct inode *inode = NULL; - - if (fh_len < xfs_fileid_length(fileid_type)) - return NULL; - - switch (fileid_type) { - case FILEID_INO32_GEN_PARENT: - case FILEID_INO32_GEN: - inode = xfs_nfs_get_inode(sb, fid->i32.ino, fid->i32.gen); - break; - case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: - case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: - inode = xfs_nfs_get_inode(sb, fid64->ino, fid64->gen); - break; - } - - return d_obtain_alias(inode); -} - -STATIC struct dentry * -xfs_fs_fh_to_parent(struct super_block *sb, struct fid *fid, - int fh_len, int fileid_type) -{ - struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fid; - struct inode *inode = NULL; - - switch (fileid_type) { - case FILEID_INO32_GEN_PARENT: - inode = xfs_nfs_get_inode(sb, fid->i32.parent_ino, - fid->i32.parent_gen); - break; - case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: - inode = xfs_nfs_get_inode(sb, fid64->parent_ino, - fid64->parent_gen); - break; - } - - return d_obtain_alias(inode); -} - -STATIC struct dentry * -xfs_fs_get_parent( - struct dentry *child) -{ - int error; - struct xfs_inode *cip; - - error = xfs_lookup(XFS_I(child->d_inode), &xfs_name_dotdot, &cip, NULL); - if (unlikely(error)) - return ERR_PTR(-error); - - return d_obtain_alias(VFS_I(cip)); -} - -STATIC int -xfs_fs_nfs_commit_metadata( - struct inode *inode) -{ - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - int error = 0; - - xfs_ilock(ip, XFS_ILOCK_SHARED); - if (xfs_ipincount(ip)) { - error = _xfs_log_force_lsn(mp, ip->i_itemp->ili_last_lsn, - XFS_LOG_SYNC, NULL); - } - xfs_iunlock(ip, XFS_ILOCK_SHARED); - - return error; -} - -const struct export_operations xfs_export_operations = { - .encode_fh = xfs_fs_encode_fh, - .fh_to_dentry = xfs_fs_fh_to_dentry, - .fh_to_parent = xfs_fs_fh_to_parent, - .get_parent = xfs_fs_get_parent, - .commit_metadata = xfs_fs_nfs_commit_metadata, -}; diff --git a/fs/xfs/linux-2.6/xfs_export.h b/fs/xfs/linux-2.6/xfs_export.h deleted file mode 100644 index 3272b6a..0000000 --- a/fs/xfs/linux-2.6/xfs_export.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * Copyright (c) 2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_EXPORT_H__ -#define __XFS_EXPORT_H__ - -/* - * Common defines for code related to exporting XFS filesystems over NFS. - * - * The NFS fileid goes out on the wire as an array of - * 32bit unsigned ints in host order. There are 5 possible - * formats. - * - * (1) fileid_type=0x00 - * (no fileid data; handled by the generic code) - * - * (2) fileid_type=0x01 - * inode-num - * generation - * - * (3) fileid_type=0x02 - * inode-num - * generation - * parent-inode-num - * parent-generation - * - * (4) fileid_type=0x81 - * inode-num-lo32 - * inode-num-hi32 - * generation - * - * (5) fileid_type=0x82 - * inode-num-lo32 - * inode-num-hi32 - * generation - * parent-inode-num-lo32 - * parent-inode-num-hi32 - * parent-generation - * - * Note, the NFS filehandle also includes an fsid portion which - * may have an inode number in it. That number is hardcoded to - * 32bits and there is no way for XFS to intercept it. In - * practice this means when exporting an XFS filesystem with 64bit - * inodes you should either export the mountpoint (rather than - * a subdirectory) or use the "fsid" export option. - */ - -struct xfs_fid64 { - u64 ino; - u32 gen; - u64 parent_ino; - u32 parent_gen; -} __attribute__((packed)); - -/* This flag goes on the wire. Don't play with it. */ -#define XFS_FILEID_TYPE_64FLAG 0x80 /* NFS fileid has 64bit inodes */ - -#endif /* __XFS_EXPORT_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c deleted file mode 100644 index 8073f61..0000000 --- a/fs/xfs/linux-2.6/xfs_file.c +++ /dev/null @@ -1,1092 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_trans.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_alloc.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_inode_item.h" -#include "xfs_bmap.h" -#include "xfs_error.h" -#include "xfs_vnodeops.h" -#include "xfs_da_btree.h" -#include "xfs_ioctl.h" -#include "xfs_trace.h" - -#include -#include - -static const struct vm_operations_struct xfs_file_vm_ops; - -/* - * Locking primitives for read and write IO paths to ensure we consistently use - * and order the inode->i_mutex, ip->i_lock and ip->i_iolock. - */ -static inline void -xfs_rw_ilock( - struct xfs_inode *ip, - int type) -{ - if (type & XFS_IOLOCK_EXCL) - mutex_lock(&VFS_I(ip)->i_mutex); - xfs_ilock(ip, type); -} - -static inline void -xfs_rw_iunlock( - struct xfs_inode *ip, - int type) -{ - xfs_iunlock(ip, type); - if (type & XFS_IOLOCK_EXCL) - mutex_unlock(&VFS_I(ip)->i_mutex); -} - -static inline void -xfs_rw_ilock_demote( - struct xfs_inode *ip, - int type) -{ - xfs_ilock_demote(ip, type); - if (type & XFS_IOLOCK_EXCL) - mutex_unlock(&VFS_I(ip)->i_mutex); -} - -/* - * xfs_iozero - * - * xfs_iozero clears the specified range of buffer supplied, - * and marks all the affected blocks as valid and modified. If - * an affected block is not allocated, it will be allocated. If - * an affected block is not completely overwritten, and is not - * valid before the operation, it will be read from disk before - * being partially zeroed. - */ -STATIC int -xfs_iozero( - struct xfs_inode *ip, /* inode */ - loff_t pos, /* offset in file */ - size_t count) /* size of data to zero */ -{ - struct page *page; - struct address_space *mapping; - int status; - - mapping = VFS_I(ip)->i_mapping; - do { - unsigned offset, bytes; - void *fsdata; - - offset = (pos & (PAGE_CACHE_SIZE -1)); /* Within page */ - bytes = PAGE_CACHE_SIZE - offset; - if (bytes > count) - bytes = count; - - status = pagecache_write_begin(NULL, mapping, pos, bytes, - AOP_FLAG_UNINTERRUPTIBLE, - &page, &fsdata); - if (status) - break; - - zero_user(page, offset, bytes); - - status = pagecache_write_end(NULL, mapping, pos, bytes, bytes, - page, fsdata); - WARN_ON(status <= 0); /* can't return less than zero! */ - pos += bytes; - count -= bytes; - status = 0; - } while (count); - - return (-status); -} - -STATIC int -xfs_file_fsync( - struct file *file, - int datasync) -{ - struct inode *inode = file->f_mapping->host; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - struct xfs_trans *tp; - int error = 0; - int log_flushed = 0; - - trace_xfs_file_fsync(ip); - - if (XFS_FORCED_SHUTDOWN(mp)) - return -XFS_ERROR(EIO); - - xfs_iflags_clear(ip, XFS_ITRUNCATED); - - xfs_ioend_wait(ip); - - if (mp->m_flags & XFS_MOUNT_BARRIER) { - /* - * If we have an RT and/or log subvolume we need to make sure - * to flush the write cache the device used for file data - * first. This is to ensure newly written file data make - * it to disk before logging the new inode size in case of - * an extending write. - */ - if (XFS_IS_REALTIME_INODE(ip)) - xfs_blkdev_issue_flush(mp->m_rtdev_targp); - else if (mp->m_logdev_targp != mp->m_ddev_targp) - xfs_blkdev_issue_flush(mp->m_ddev_targp); - } - - /* - * We always need to make sure that the required inode state is safe on - * disk. The inode might be clean but we still might need to force the - * log because of committed transactions that haven't hit the disk yet. - * Likewise, there could be unflushed non-transactional changes to the - * inode core that have to go to disk and this requires us to issue - * a synchronous transaction to capture these changes correctly. - * - * This code relies on the assumption that if the i_update_core field - * of the inode is clear and the inode is unpinned then it is clean - * and no action is required. - */ - xfs_ilock(ip, XFS_ILOCK_SHARED); - - /* - * First check if the VFS inode is marked dirty. All the dirtying - * of non-transactional updates no goes through mark_inode_dirty*, - * which allows us to distinguish beteeen pure timestamp updates - * and i_size updates which need to be caught for fdatasync. - * After that also theck for the dirty state in the XFS inode, which - * might gets cleared when the inode gets written out via the AIL - * or xfs_iflush_cluster. - */ - if (((inode->i_state & I_DIRTY_DATASYNC) || - ((inode->i_state & I_DIRTY_SYNC) && !datasync)) && - ip->i_update_core) { - /* - * Kick off a transaction to log the inode core to get the - * updates. The sync transaction will also force the log. - */ - xfs_iunlock(ip, XFS_ILOCK_SHARED); - tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS); - error = xfs_trans_reserve(tp, 0, - XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return -error; - } - xfs_ilock(ip, XFS_ILOCK_EXCL); - - /* - * Note - it's possible that we might have pushed ourselves out - * of the way during trans_reserve which would flush the inode. - * But there's no guarantee that the inode buffer has actually - * gone out yet (it's delwri). Plus the buffer could be pinned - * anyway if it's part of an inode in another recent - * transaction. So we play it safe and fire off the - * transaction anyway. - */ - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - xfs_trans_set_sync(tp); - error = _xfs_trans_commit(tp, 0, &log_flushed); - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - } else { - /* - * Timestamps/size haven't changed since last inode flush or - * inode transaction commit. That means either nothing got - * written or a transaction committed which caught the updates. - * If the latter happened and the transaction hasn't hit the - * disk yet, the inode will be still be pinned. If it is, - * force the log. - */ - if (xfs_ipincount(ip)) { - error = _xfs_log_force_lsn(mp, - ip->i_itemp->ili_last_lsn, - XFS_LOG_SYNC, &log_flushed); - } - xfs_iunlock(ip, XFS_ILOCK_SHARED); - } - - /* - * If we only have a single device, and the log force about was - * a no-op we might have to flush the data device cache here. - * This can only happen for fdatasync/O_DSYNC if we were overwriting - * an already allocated file and thus do not have any metadata to - * commit. - */ - if ((mp->m_flags & XFS_MOUNT_BARRIER) && - mp->m_logdev_targp == mp->m_ddev_targp && - !XFS_IS_REALTIME_INODE(ip) && - !log_flushed) - xfs_blkdev_issue_flush(mp->m_ddev_targp); - - return -error; -} - -STATIC ssize_t -xfs_file_aio_read( - struct kiocb *iocb, - const struct iovec *iovp, - unsigned long nr_segs, - loff_t pos) -{ - struct file *file = iocb->ki_filp; - struct inode *inode = file->f_mapping->host; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - size_t size = 0; - ssize_t ret = 0; - int ioflags = 0; - xfs_fsize_t n; - unsigned long seg; - - XFS_STATS_INC(xs_read_calls); - - BUG_ON(iocb->ki_pos != pos); - - if (unlikely(file->f_flags & O_DIRECT)) - ioflags |= IO_ISDIRECT; - if (file->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; - - /* START copy & waste from filemap.c */ - for (seg = 0; seg < nr_segs; seg++) { - const struct iovec *iv = &iovp[seg]; - - /* - * If any segment has a negative length, or the cumulative - * length ever wraps negative then return -EINVAL. - */ - size += iv->iov_len; - if (unlikely((ssize_t)(size|iv->iov_len) < 0)) - return XFS_ERROR(-EINVAL); - } - /* END copy & waste from filemap.c */ - - if (unlikely(ioflags & IO_ISDIRECT)) { - xfs_buftarg_t *target = - XFS_IS_REALTIME_INODE(ip) ? - mp->m_rtdev_targp : mp->m_ddev_targp; - if ((iocb->ki_pos & target->bt_smask) || - (size & target->bt_smask)) { - if (iocb->ki_pos == ip->i_size) - return 0; - return -XFS_ERROR(EINVAL); - } - } - - n = XFS_MAXIOFFSET(mp) - iocb->ki_pos; - if (n <= 0 || size == 0) - return 0; - - if (n < size) - size = n; - - if (XFS_FORCED_SHUTDOWN(mp)) - return -EIO; - - if (unlikely(ioflags & IO_ISDIRECT)) { - xfs_rw_ilock(ip, XFS_IOLOCK_EXCL); - - if (inode->i_mapping->nrpages) { - ret = -xfs_flushinval_pages(ip, - (iocb->ki_pos & PAGE_CACHE_MASK), - -1, FI_REMAPF_LOCKED); - if (ret) { - xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL); - return ret; - } - } - xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL); - } else - xfs_rw_ilock(ip, XFS_IOLOCK_SHARED); - - trace_xfs_file_read(ip, size, iocb->ki_pos, ioflags); - - ret = generic_file_aio_read(iocb, iovp, nr_segs, iocb->ki_pos); - if (ret > 0) - XFS_STATS_ADD(xs_read_bytes, ret); - - xfs_rw_iunlock(ip, XFS_IOLOCK_SHARED); - return ret; -} - -STATIC ssize_t -xfs_file_splice_read( - struct file *infilp, - loff_t *ppos, - struct pipe_inode_info *pipe, - size_t count, - unsigned int flags) -{ - struct xfs_inode *ip = XFS_I(infilp->f_mapping->host); - int ioflags = 0; - ssize_t ret; - - XFS_STATS_INC(xs_read_calls); - - if (infilp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return -EIO; - - xfs_rw_ilock(ip, XFS_IOLOCK_SHARED); - - trace_xfs_file_splice_read(ip, count, *ppos, ioflags); - - ret = generic_file_splice_read(infilp, ppos, pipe, count, flags); - if (ret > 0) - XFS_STATS_ADD(xs_read_bytes, ret); - - xfs_rw_iunlock(ip, XFS_IOLOCK_SHARED); - return ret; -} - -STATIC void -xfs_aio_write_isize_update( - struct inode *inode, - loff_t *ppos, - ssize_t bytes_written) -{ - struct xfs_inode *ip = XFS_I(inode); - xfs_fsize_t isize = i_size_read(inode); - - if (bytes_written > 0) - XFS_STATS_ADD(xs_write_bytes, bytes_written); - - if (unlikely(bytes_written < 0 && bytes_written != -EFAULT && - *ppos > isize)) - *ppos = isize; - - if (*ppos > ip->i_size) { - xfs_rw_ilock(ip, XFS_ILOCK_EXCL); - if (*ppos > ip->i_size) - ip->i_size = *ppos; - xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); - } -} - -/* - * If this was a direct or synchronous I/O that failed (such as ENOSPC) then - * part of the I/O may have been written to disk before the error occurred. In - * this case the on-disk file size may have been adjusted beyond the in-memory - * file size and now needs to be truncated back. - */ -STATIC void -xfs_aio_write_newsize_update( - struct xfs_inode *ip) -{ - if (ip->i_new_size) { - xfs_rw_ilock(ip, XFS_ILOCK_EXCL); - ip->i_new_size = 0; - if (ip->i_d.di_size > ip->i_size) - ip->i_d.di_size = ip->i_size; - xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); - } -} - -/* - * xfs_file_splice_write() does not use xfs_rw_ilock() because - * generic_file_splice_write() takes the i_mutex itself. This, in theory, - * couuld cause lock inversions between the aio_write path and the splice path - * if someone is doing concurrent splice(2) based writes and write(2) based - * writes to the same inode. The only real way to fix this is to re-implement - * the generic code here with correct locking orders. - */ -STATIC ssize_t -xfs_file_splice_write( - struct pipe_inode_info *pipe, - struct file *outfilp, - loff_t *ppos, - size_t count, - unsigned int flags) -{ - struct inode *inode = outfilp->f_mapping->host; - struct xfs_inode *ip = XFS_I(inode); - xfs_fsize_t new_size; - int ioflags = 0; - ssize_t ret; - - XFS_STATS_INC(xs_write_calls); - - if (outfilp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return -EIO; - - xfs_ilock(ip, XFS_IOLOCK_EXCL); - - new_size = *ppos + count; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - if (new_size > ip->i_size) - ip->i_new_size = new_size; - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - trace_xfs_file_splice_write(ip, count, *ppos, ioflags); - - ret = generic_file_splice_write(pipe, outfilp, ppos, count, flags); - - xfs_aio_write_isize_update(inode, ppos, ret); - xfs_aio_write_newsize_update(ip); - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return ret; -} - -/* - * This routine is called to handle zeroing any space in the last - * block of the file that is beyond the EOF. We do this since the - * size is being increased without writing anything to that block - * and we don't want anyone to read the garbage on the disk. - */ -STATIC int /* error (positive) */ -xfs_zero_last_block( - xfs_inode_t *ip, - xfs_fsize_t offset, - xfs_fsize_t isize) -{ - xfs_fileoff_t last_fsb; - xfs_mount_t *mp = ip->i_mount; - int nimaps; - int zero_offset; - int zero_len; - int error = 0; - xfs_bmbt_irec_t imap; - - ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); - - zero_offset = XFS_B_FSB_OFFSET(mp, isize); - if (zero_offset == 0) { - /* - * There are no extra bytes in the last block on disk to - * zero, so return. - */ - return 0; - } - - last_fsb = XFS_B_TO_FSBT(mp, isize); - nimaps = 1; - error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap, - &nimaps, NULL); - if (error) { - return error; - } - ASSERT(nimaps > 0); - /* - * If the block underlying isize is just a hole, then there - * is nothing to zero. - */ - if (imap.br_startblock == HOLESTARTBLOCK) { - return 0; - } - /* - * Zero the part of the last block beyond the EOF, and write it - * out sync. We need to drop the ilock while we do this so we - * don't deadlock when the buffer cache calls back to us. - */ - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - zero_len = mp->m_sb.sb_blocksize - zero_offset; - if (isize + zero_len > offset) - zero_len = offset - isize; - error = xfs_iozero(ip, isize, zero_len); - - xfs_ilock(ip, XFS_ILOCK_EXCL); - ASSERT(error >= 0); - return error; -} - -/* - * Zero any on disk space between the current EOF and the new, - * larger EOF. This handles the normal case of zeroing the remainder - * of the last block in the file and the unusual case of zeroing blocks - * out beyond the size of the file. This second case only happens - * with fixed size extents and when the system crashes before the inode - * size was updated but after blocks were allocated. If fill is set, - * then any holes in the range are filled and zeroed. If not, the holes - * are left alone as holes. - */ - -int /* error (positive) */ -xfs_zero_eof( - xfs_inode_t *ip, - xfs_off_t offset, /* starting I/O offset */ - xfs_fsize_t isize) /* current inode size */ -{ - xfs_mount_t *mp = ip->i_mount; - xfs_fileoff_t start_zero_fsb; - xfs_fileoff_t end_zero_fsb; - xfs_fileoff_t zero_count_fsb; - xfs_fileoff_t last_fsb; - xfs_fileoff_t zero_off; - xfs_fsize_t zero_len; - int nimaps; - int error = 0; - xfs_bmbt_irec_t imap; - - ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); - ASSERT(offset > isize); - - /* - * First handle zeroing the block on which isize resides. - * We only zero a part of that block so it is handled specially. - */ - error = xfs_zero_last_block(ip, offset, isize); - if (error) { - ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); - return error; - } - - /* - * Calculate the range between the new size and the old - * where blocks needing to be zeroed may exist. To get the - * block where the last byte in the file currently resides, - * we need to subtract one from the size and truncate back - * to a block boundary. We subtract 1 in case the size is - * exactly on a block boundary. - */ - last_fsb = isize ? XFS_B_TO_FSBT(mp, isize - 1) : (xfs_fileoff_t)-1; - start_zero_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)isize); - end_zero_fsb = XFS_B_TO_FSBT(mp, offset - 1); - ASSERT((xfs_sfiloff_t)last_fsb < (xfs_sfiloff_t)start_zero_fsb); - if (last_fsb == end_zero_fsb) { - /* - * The size was only incremented on its last block. - * We took care of that above, so just return. - */ - return 0; - } - - ASSERT(start_zero_fsb <= end_zero_fsb); - while (start_zero_fsb <= end_zero_fsb) { - nimaps = 1; - zero_count_fsb = end_zero_fsb - start_zero_fsb + 1; - error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb, - 0, NULL, 0, &imap, &nimaps, NULL); - if (error) { - ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); - return error; - } - ASSERT(nimaps > 0); - - if (imap.br_state == XFS_EXT_UNWRITTEN || - imap.br_startblock == HOLESTARTBLOCK) { - /* - * This loop handles initializing pages that were - * partially initialized by the code below this - * loop. It basically zeroes the part of the page - * that sits on a hole and sets the page as P_HOLE - * and calls remapf if it is a mapped file. - */ - start_zero_fsb = imap.br_startoff + imap.br_blockcount; - ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); - continue; - } - - /* - * There are blocks we need to zero. - * Drop the inode lock while we're doing the I/O. - * We'll still have the iolock to protect us. - */ - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - zero_off = XFS_FSB_TO_B(mp, start_zero_fsb); - zero_len = XFS_FSB_TO_B(mp, imap.br_blockcount); - - if ((zero_off + zero_len) > offset) - zero_len = offset - zero_off; - - error = xfs_iozero(ip, zero_off, zero_len); - if (error) { - goto out_lock; - } - - start_zero_fsb = imap.br_startoff + imap.br_blockcount; - ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); - - xfs_ilock(ip, XFS_ILOCK_EXCL); - } - - return 0; - -out_lock: - xfs_ilock(ip, XFS_ILOCK_EXCL); - ASSERT(error >= 0); - return error; -} - -/* - * Common pre-write limit and setup checks. - * - * Returns with iolock held according to @iolock. - */ -STATIC ssize_t -xfs_file_aio_write_checks( - struct file *file, - loff_t *pos, - size_t *count, - int *iolock) -{ - struct inode *inode = file->f_mapping->host; - struct xfs_inode *ip = XFS_I(inode); - xfs_fsize_t new_size; - int error = 0; - - error = generic_write_checks(file, pos, count, S_ISBLK(inode->i_mode)); - if (error) { - xfs_rw_iunlock(ip, XFS_ILOCK_EXCL | *iolock); - *iolock = 0; - return error; - } - - new_size = *pos + *count; - if (new_size > ip->i_size) - ip->i_new_size = new_size; - - if (likely(!(file->f_mode & FMODE_NOCMTIME))) - file_update_time(file); - - /* - * If the offset is beyond the size of the file, we need to zero any - * blocks that fall between the existing EOF and the start of this - * write. - */ - if (*pos > ip->i_size) - error = -xfs_zero_eof(ip, *pos, ip->i_size); - - xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); - if (error) - return error; - - /* - * If we're writing the file then make sure to clear the setuid and - * setgid bits if the process is not being run by root. This keeps - * people from modifying setuid and setgid binaries. - */ - return file_remove_suid(file); - -} - -/* - * xfs_file_dio_aio_write - handle direct IO writes - * - * Lock the inode appropriately to prepare for and issue a direct IO write. - * By separating it from the buffered write path we remove all the tricky to - * follow locking changes and looping. - * - * If there are cached pages or we're extending the file, we need IOLOCK_EXCL - * until we're sure the bytes at the new EOF have been zeroed and/or the cached - * pages are flushed out. - * - * In most cases the direct IO writes will be done holding IOLOCK_SHARED - * allowing them to be done in parallel with reads and other direct IO writes. - * However, if the IO is not aligned to filesystem blocks, the direct IO layer - * needs to do sub-block zeroing and that requires serialisation against other - * direct IOs to the same block. In this case we need to serialise the - * submission of the unaligned IOs so that we don't get racing block zeroing in - * the dio layer. To avoid the problem with aio, we also need to wait for - * outstanding IOs to complete so that unwritten extent conversion is completed - * before we try to map the overlapping block. This is currently implemented by - * hitting it with a big hammer (i.e. xfs_ioend_wait()). - * - * Returns with locks held indicated by @iolock and errors indicated by - * negative return values. - */ -STATIC ssize_t -xfs_file_dio_aio_write( - struct kiocb *iocb, - const struct iovec *iovp, - unsigned long nr_segs, - loff_t pos, - size_t ocount, - int *iolock) -{ - struct file *file = iocb->ki_filp; - struct address_space *mapping = file->f_mapping; - struct inode *inode = mapping->host; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - ssize_t ret = 0; - size_t count = ocount; - int unaligned_io = 0; - struct xfs_buftarg *target = XFS_IS_REALTIME_INODE(ip) ? - mp->m_rtdev_targp : mp->m_ddev_targp; - - *iolock = 0; - if ((pos & target->bt_smask) || (count & target->bt_smask)) - return -XFS_ERROR(EINVAL); - - if ((pos & mp->m_blockmask) || ((pos + count) & mp->m_blockmask)) - unaligned_io = 1; - - if (unaligned_io || mapping->nrpages || pos > ip->i_size) - *iolock = XFS_IOLOCK_EXCL; - else - *iolock = XFS_IOLOCK_SHARED; - xfs_rw_ilock(ip, XFS_ILOCK_EXCL | *iolock); - - ret = xfs_file_aio_write_checks(file, &pos, &count, iolock); - if (ret) - return ret; - - if (mapping->nrpages) { - WARN_ON(*iolock != XFS_IOLOCK_EXCL); - ret = -xfs_flushinval_pages(ip, (pos & PAGE_CACHE_MASK), -1, - FI_REMAPF_LOCKED); - if (ret) - return ret; - } - - /* - * If we are doing unaligned IO, wait for all other IO to drain, - * otherwise demote the lock if we had to flush cached pages - */ - if (unaligned_io) - xfs_ioend_wait(ip); - else if (*iolock == XFS_IOLOCK_EXCL) { - xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL); - *iolock = XFS_IOLOCK_SHARED; - } - - trace_xfs_file_direct_write(ip, count, iocb->ki_pos, 0); - ret = generic_file_direct_write(iocb, iovp, - &nr_segs, pos, &iocb->ki_pos, count, ocount); - - /* No fallback to buffered IO on errors for XFS. */ - ASSERT(ret < 0 || ret == count); - return ret; -} - -STATIC ssize_t -xfs_file_buffered_aio_write( - struct kiocb *iocb, - const struct iovec *iovp, - unsigned long nr_segs, - loff_t pos, - size_t ocount, - int *iolock) -{ - struct file *file = iocb->ki_filp; - struct address_space *mapping = file->f_mapping; - struct inode *inode = mapping->host; - struct xfs_inode *ip = XFS_I(inode); - ssize_t ret; - int enospc = 0; - size_t count = ocount; - - *iolock = XFS_IOLOCK_EXCL; - xfs_rw_ilock(ip, XFS_ILOCK_EXCL | *iolock); - - ret = xfs_file_aio_write_checks(file, &pos, &count, iolock); - if (ret) - return ret; - - /* We can write back this queue in page reclaim */ - current->backing_dev_info = mapping->backing_dev_info; - -write_retry: - trace_xfs_file_buffered_write(ip, count, iocb->ki_pos, 0); - ret = generic_file_buffered_write(iocb, iovp, nr_segs, - pos, &iocb->ki_pos, count, ret); - /* - * if we just got an ENOSPC, flush the inode now we aren't holding any - * page locks and retry *once* - */ - if (ret == -ENOSPC && !enospc) { - ret = -xfs_flush_pages(ip, 0, -1, 0, FI_NONE); - if (ret) - return ret; - enospc = 1; - goto write_retry; - } - current->backing_dev_info = NULL; - return ret; -} - -STATIC ssize_t -xfs_file_aio_write( - struct kiocb *iocb, - const struct iovec *iovp, - unsigned long nr_segs, - loff_t pos) -{ - struct file *file = iocb->ki_filp; - struct address_space *mapping = file->f_mapping; - struct inode *inode = mapping->host; - struct xfs_inode *ip = XFS_I(inode); - ssize_t ret; - int iolock; - size_t ocount = 0; - - XFS_STATS_INC(xs_write_calls); - - BUG_ON(iocb->ki_pos != pos); - - ret = generic_segment_checks(iovp, &nr_segs, &ocount, VERIFY_READ); - if (ret) - return ret; - - if (ocount == 0) - return 0; - - xfs_wait_for_freeze(ip->i_mount, SB_FREEZE_WRITE); - - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return -EIO; - - if (unlikely(file->f_flags & O_DIRECT)) - ret = xfs_file_dio_aio_write(iocb, iovp, nr_segs, pos, - ocount, &iolock); - else - ret = xfs_file_buffered_aio_write(iocb, iovp, nr_segs, pos, - ocount, &iolock); - - xfs_aio_write_isize_update(inode, &iocb->ki_pos, ret); - - if (ret <= 0) - goto out_unlock; - - /* Handle various SYNC-type writes */ - if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { - loff_t end = pos + ret - 1; - int error, error2; - - xfs_rw_iunlock(ip, iolock); - error = filemap_write_and_wait_range(mapping, pos, end); - xfs_rw_ilock(ip, iolock); - - error2 = -xfs_file_fsync(file, - (file->f_flags & __O_SYNC) ? 0 : 1); - if (error) - ret = error; - else if (error2) - ret = error2; - } - -out_unlock: - xfs_aio_write_newsize_update(ip); - xfs_rw_iunlock(ip, iolock); - return ret; -} - -STATIC long -xfs_file_fallocate( - struct file *file, - int mode, - loff_t offset, - loff_t len) -{ - struct inode *inode = file->f_path.dentry->d_inode; - long error; - loff_t new_size = 0; - xfs_flock64_t bf; - xfs_inode_t *ip = XFS_I(inode); - int cmd = XFS_IOC_RESVSP; - int attr_flags = XFS_ATTR_NOLOCK; - - if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) - return -EOPNOTSUPP; - - bf.l_whence = 0; - bf.l_start = offset; - bf.l_len = len; - - xfs_ilock(ip, XFS_IOLOCK_EXCL); - - if (mode & FALLOC_FL_PUNCH_HOLE) - cmd = XFS_IOC_UNRESVSP; - - /* check the new inode size is valid before allocating */ - if (!(mode & FALLOC_FL_KEEP_SIZE) && - offset + len > i_size_read(inode)) { - new_size = offset + len; - error = inode_newsize_ok(inode, new_size); - if (error) - goto out_unlock; - } - - if (file->f_flags & O_DSYNC) - attr_flags |= XFS_ATTR_SYNC; - - error = -xfs_change_file_space(ip, cmd, &bf, 0, attr_flags); - if (error) - goto out_unlock; - - /* Change file size if needed */ - if (new_size) { - struct iattr iattr; - - iattr.ia_valid = ATTR_SIZE; - iattr.ia_size = new_size; - error = -xfs_setattr_size(ip, &iattr, XFS_ATTR_NOLOCK); - } - -out_unlock: - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - return error; -} - - -STATIC int -xfs_file_open( - struct inode *inode, - struct file *file) -{ - if (!(file->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) - return -EFBIG; - if (XFS_FORCED_SHUTDOWN(XFS_M(inode->i_sb))) - return -EIO; - return 0; -} - -STATIC int -xfs_dir_open( - struct inode *inode, - struct file *file) -{ - struct xfs_inode *ip = XFS_I(inode); - int mode; - int error; - - error = xfs_file_open(inode, file); - if (error) - return error; - - /* - * If there are any blocks, read-ahead block 0 as we're almost - * certain to have the next operation be a read there. - */ - mode = xfs_ilock_map_shared(ip); - if (ip->i_d.di_nextents > 0) - xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); - xfs_iunlock(ip, mode); - return 0; -} - -STATIC int -xfs_file_release( - struct inode *inode, - struct file *filp) -{ - return -xfs_release(XFS_I(inode)); -} - -STATIC int -xfs_file_readdir( - struct file *filp, - void *dirent, - filldir_t filldir) -{ - struct inode *inode = filp->f_path.dentry->d_inode; - xfs_inode_t *ip = XFS_I(inode); - int error; - size_t bufsize; - - /* - * The Linux API doesn't pass down the total size of the buffer - * we read into down to the filesystem. With the filldir concept - * it's not needed for correct information, but the XFS dir2 leaf - * code wants an estimate of the buffer size to calculate it's - * readahead window and size the buffers used for mapping to - * physical blocks. - * - * Try to give it an estimate that's good enough, maybe at some - * point we can change the ->readdir prototype to include the - * buffer size. For now we use the current glibc buffer size. - */ - bufsize = (size_t)min_t(loff_t, 32768, ip->i_d.di_size); - - error = xfs_readdir(ip, dirent, bufsize, - (xfs_off_t *)&filp->f_pos, filldir); - if (error) - return -error; - return 0; -} - -STATIC int -xfs_file_mmap( - struct file *filp, - struct vm_area_struct *vma) -{ - vma->vm_ops = &xfs_file_vm_ops; - vma->vm_flags |= VM_CAN_NONLINEAR; - - file_accessed(filp); - return 0; -} - -/* - * mmap()d file has taken write protection fault and is being made - * writable. We can set the page state up correctly for a writable - * page, which means we can do correct delalloc accounting (ENOSPC - * checking!) and unwritten extent mapping. - */ -STATIC int -xfs_vm_page_mkwrite( - struct vm_area_struct *vma, - struct vm_fault *vmf) -{ - return block_page_mkwrite(vma, vmf, xfs_get_blocks); -} - -const struct file_operations xfs_file_operations = { - .llseek = generic_file_llseek, - .read = do_sync_read, - .write = do_sync_write, - .aio_read = xfs_file_aio_read, - .aio_write = xfs_file_aio_write, - .splice_read = xfs_file_splice_read, - .splice_write = xfs_file_splice_write, - .unlocked_ioctl = xfs_file_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = xfs_file_compat_ioctl, -#endif - .mmap = xfs_file_mmap, - .open = xfs_file_open, - .release = xfs_file_release, - .fsync = xfs_file_fsync, - .fallocate = xfs_file_fallocate, -}; - -const struct file_operations xfs_dir_file_operations = { - .open = xfs_dir_open, - .read = generic_read_dir, - .readdir = xfs_file_readdir, - .llseek = generic_file_llseek, - .unlocked_ioctl = xfs_file_ioctl, -#ifdef CONFIG_COMPAT - .compat_ioctl = xfs_file_compat_ioctl, -#endif - .fsync = xfs_file_fsync, -}; - -static const struct vm_operations_struct xfs_file_vm_ops = { - .fault = filemap_fault, - .page_mkwrite = xfs_vm_page_mkwrite, -}; diff --git a/fs/xfs/linux-2.6/xfs_fs_subr.c b/fs/xfs/linux-2.6/xfs_fs_subr.c deleted file mode 100644 index ed88ed1..0000000 --- a/fs/xfs/linux-2.6/xfs_fs_subr.c +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright (c) 2000-2002,2005-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_vnodeops.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "xfs_trace.h" - -/* - * note: all filemap functions return negative error codes. These - * need to be inverted before returning to the xfs core functions. - */ -void -xfs_tosspages( - xfs_inode_t *ip, - xfs_off_t first, - xfs_off_t last, - int fiopt) -{ - /* can't toss partial tail pages, so mask them out */ - last &= ~(PAGE_SIZE - 1); - truncate_inode_pages_range(VFS_I(ip)->i_mapping, first, last - 1); -} - -int -xfs_flushinval_pages( - xfs_inode_t *ip, - xfs_off_t first, - xfs_off_t last, - int fiopt) -{ - struct address_space *mapping = VFS_I(ip)->i_mapping; - int ret = 0; - - trace_xfs_pagecache_inval(ip, first, last); - - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = filemap_write_and_wait_range(mapping, first, - last == -1 ? LLONG_MAX : last); - if (!ret) - truncate_inode_pages_range(mapping, first, last); - return -ret; -} - -int -xfs_flush_pages( - xfs_inode_t *ip, - xfs_off_t first, - xfs_off_t last, - uint64_t flags, - int fiopt) -{ - struct address_space *mapping = VFS_I(ip)->i_mapping; - int ret = 0; - int ret2; - - xfs_iflags_clear(ip, XFS_ITRUNCATED); - ret = -filemap_fdatawrite_range(mapping, first, - last == -1 ? LLONG_MAX : last); - if (flags & XBF_ASYNC) - return ret; - ret2 = xfs_wait_on_pages(ip, first, last); - if (!ret) - ret = ret2; - return ret; -} - -int -xfs_wait_on_pages( - xfs_inode_t *ip, - xfs_off_t first, - xfs_off_t last) -{ - struct address_space *mapping = VFS_I(ip)->i_mapping; - - if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { - return -filemap_fdatawait_range(mapping, first, - last == -1 ? ip->i_size - 1 : last); - } - return 0; -} diff --git a/fs/xfs/linux-2.6/xfs_globals.c b/fs/xfs/linux-2.6/xfs_globals.c deleted file mode 100644 index 76e81cf..0000000 --- a/fs/xfs/linux-2.6/xfs_globals.c +++ /dev/null @@ -1,43 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_sysctl.h" - -/* - * Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n, - * other XFS code uses these values. Times are measured in centisecs (i.e. - * 100ths of a second). - */ -xfs_param_t xfs_params = { - /* MIN DFLT MAX */ - .sgid_inherit = { 0, 0, 1 }, - .symlink_mode = { 0, 0, 1 }, - .panic_mask = { 0, 0, 255 }, - .error_level = { 0, 3, 11 }, - .syncd_timer = { 1*100, 30*100, 7200*100}, - .stats_clear = { 0, 0, 1 }, - .inherit_sync = { 0, 1, 1 }, - .inherit_nodump = { 0, 1, 1 }, - .inherit_noatim = { 0, 1, 1 }, - .xfs_buf_timer = { 100/2, 1*100, 30*100 }, - .xfs_buf_age = { 1*100, 15*100, 7200*100}, - .inherit_nosym = { 0, 0, 1 }, - .rotorstep = { 1, 1, 255 }, - .inherit_nodfrg = { 0, 1, 1 }, - .fstrm_timer = { 1, 30*100, 3600*100}, -}; diff --git a/fs/xfs/linux-2.6/xfs_ioctl.c b/fs/xfs/linux-2.6/xfs_ioctl.c deleted file mode 100644 index acca2c5..0000000 --- a/fs/xfs/linux-2.6/xfs_ioctl.c +++ /dev/null @@ -1,1556 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_alloc.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_ioctl.h" -#include "xfs_rtalloc.h" -#include "xfs_itable.h" -#include "xfs_error.h" -#include "xfs_attr.h" -#include "xfs_bmap.h" -#include "xfs_buf_item.h" -#include "xfs_utils.h" -#include "xfs_dfrag.h" -#include "xfs_fsops.h" -#include "xfs_vnodeops.h" -#include "xfs_discard.h" -#include "xfs_quota.h" -#include "xfs_inode_item.h" -#include "xfs_export.h" -#include "xfs_trace.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * xfs_find_handle maps from userspace xfs_fsop_handlereq structure to - * a file or fs handle. - * - * XFS_IOC_PATH_TO_FSHANDLE - * returns fs handle for a mount point or path within that mount point - * XFS_IOC_FD_TO_HANDLE - * returns full handle for a FD opened in user space - * XFS_IOC_PATH_TO_HANDLE - * returns full handle for a path - */ -int -xfs_find_handle( - unsigned int cmd, - xfs_fsop_handlereq_t *hreq) -{ - int hsize; - xfs_handle_t handle; - struct inode *inode; - struct file *file = NULL; - struct path path; - int error; - struct xfs_inode *ip; - - if (cmd == XFS_IOC_FD_TO_HANDLE) { - file = fget(hreq->fd); - if (!file) - return -EBADF; - inode = file->f_path.dentry->d_inode; - } else { - error = user_lpath((const char __user *)hreq->path, &path); - if (error) - return error; - inode = path.dentry->d_inode; - } - ip = XFS_I(inode); - - /* - * We can only generate handles for inodes residing on a XFS filesystem, - * and only for regular files, directories or symbolic links. - */ - error = -EINVAL; - if (inode->i_sb->s_magic != XFS_SB_MAGIC) - goto out_put; - - error = -EBADF; - if (!S_ISREG(inode->i_mode) && - !S_ISDIR(inode->i_mode) && - !S_ISLNK(inode->i_mode)) - goto out_put; - - - memcpy(&handle.ha_fsid, ip->i_mount->m_fixedfsid, sizeof(xfs_fsid_t)); - - if (cmd == XFS_IOC_PATH_TO_FSHANDLE) { - /* - * This handle only contains an fsid, zero the rest. - */ - memset(&handle.ha_fid, 0, sizeof(handle.ha_fid)); - hsize = sizeof(xfs_fsid_t); - } else { - int lock_mode; - - lock_mode = xfs_ilock_map_shared(ip); - handle.ha_fid.fid_len = sizeof(xfs_fid_t) - - sizeof(handle.ha_fid.fid_len); - handle.ha_fid.fid_pad = 0; - handle.ha_fid.fid_gen = ip->i_d.di_gen; - handle.ha_fid.fid_ino = ip->i_ino; - xfs_iunlock_map_shared(ip, lock_mode); - - hsize = XFS_HSIZE(handle); - } - - error = -EFAULT; - if (copy_to_user(hreq->ohandle, &handle, hsize) || - copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32))) - goto out_put; - - error = 0; - - out_put: - if (cmd == XFS_IOC_FD_TO_HANDLE) - fput(file); - else - path_put(&path); - return error; -} - -/* - * No need to do permission checks on the various pathname components - * as the handle operations are privileged. - */ -STATIC int -xfs_handle_acceptable( - void *context, - struct dentry *dentry) -{ - return 1; -} - -/* - * Convert userspace handle data into a dentry. - */ -struct dentry * -xfs_handle_to_dentry( - struct file *parfilp, - void __user *uhandle, - u32 hlen) -{ - xfs_handle_t handle; - struct xfs_fid64 fid; - - /* - * Only allow handle opens under a directory. - */ - if (!S_ISDIR(parfilp->f_path.dentry->d_inode->i_mode)) - return ERR_PTR(-ENOTDIR); - - if (hlen != sizeof(xfs_handle_t)) - return ERR_PTR(-EINVAL); - if (copy_from_user(&handle, uhandle, hlen)) - return ERR_PTR(-EFAULT); - if (handle.ha_fid.fid_len != - sizeof(handle.ha_fid) - sizeof(handle.ha_fid.fid_len)) - return ERR_PTR(-EINVAL); - - memset(&fid, 0, sizeof(struct fid)); - fid.ino = handle.ha_fid.fid_ino; - fid.gen = handle.ha_fid.fid_gen; - - return exportfs_decode_fh(parfilp->f_path.mnt, (struct fid *)&fid, 3, - FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG, - xfs_handle_acceptable, NULL); -} - -STATIC struct dentry * -xfs_handlereq_to_dentry( - struct file *parfilp, - xfs_fsop_handlereq_t *hreq) -{ - return xfs_handle_to_dentry(parfilp, hreq->ihandle, hreq->ihandlen); -} - -int -xfs_open_by_handle( - struct file *parfilp, - xfs_fsop_handlereq_t *hreq) -{ - const struct cred *cred = current_cred(); - int error; - int fd; - int permflag; - struct file *filp; - struct inode *inode; - struct dentry *dentry; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - - dentry = xfs_handlereq_to_dentry(parfilp, hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - inode = dentry->d_inode; - - /* Restrict xfs_open_by_handle to directories & regular files. */ - if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) { - error = -XFS_ERROR(EPERM); - goto out_dput; - } - -#if BITS_PER_LONG != 32 - hreq->oflags |= O_LARGEFILE; -#endif - - /* Put open permission in namei format. */ - permflag = hreq->oflags; - if ((permflag+1) & O_ACCMODE) - permflag++; - if (permflag & O_TRUNC) - permflag |= 2; - - if ((!(permflag & O_APPEND) || (permflag & O_TRUNC)) && - (permflag & FMODE_WRITE) && IS_APPEND(inode)) { - error = -XFS_ERROR(EPERM); - goto out_dput; - } - - if ((permflag & FMODE_WRITE) && IS_IMMUTABLE(inode)) { - error = -XFS_ERROR(EACCES); - goto out_dput; - } - - /* Can't write directories. */ - if (S_ISDIR(inode->i_mode) && (permflag & FMODE_WRITE)) { - error = -XFS_ERROR(EISDIR); - goto out_dput; - } - - fd = get_unused_fd(); - if (fd < 0) { - error = fd; - goto out_dput; - } - - filp = dentry_open(dentry, mntget(parfilp->f_path.mnt), - hreq->oflags, cred); - if (IS_ERR(filp)) { - put_unused_fd(fd); - return PTR_ERR(filp); - } - - if (inode->i_mode & S_IFREG) { - filp->f_flags |= O_NOATIME; - filp->f_mode |= FMODE_NOCMTIME; - } - - fd_install(fd, filp); - return fd; - - out_dput: - dput(dentry); - return error; -} - -/* - * This is a copy from fs/namei.c:vfs_readlink(), except for removing it's - * unused first argument. - */ -STATIC int -do_readlink( - char __user *buffer, - int buflen, - const char *link) -{ - int len; - - len = PTR_ERR(link); - if (IS_ERR(link)) - goto out; - - len = strlen(link); - if (len > (unsigned) buflen) - len = buflen; - if (copy_to_user(buffer, link, len)) - len = -EFAULT; - out: - return len; -} - - -int -xfs_readlink_by_handle( - struct file *parfilp, - xfs_fsop_handlereq_t *hreq) -{ - struct dentry *dentry; - __u32 olen; - void *link; - int error; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - - dentry = xfs_handlereq_to_dentry(parfilp, hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - /* Restrict this handle operation to symlinks only. */ - if (!S_ISLNK(dentry->d_inode->i_mode)) { - error = -XFS_ERROR(EINVAL); - goto out_dput; - } - - if (copy_from_user(&olen, hreq->ohandlen, sizeof(__u32))) { - error = -XFS_ERROR(EFAULT); - goto out_dput; - } - - link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); - if (!link) { - error = -XFS_ERROR(ENOMEM); - goto out_dput; - } - - error = -xfs_readlink(XFS_I(dentry->d_inode), link); - if (error) - goto out_kfree; - error = do_readlink(hreq->ohandle, olen, link); - if (error) - goto out_kfree; - - out_kfree: - kfree(link); - out_dput: - dput(dentry); - return error; -} - -STATIC int -xfs_fssetdm_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error; - struct fsdmidata fsd; - xfs_fsop_setdm_handlereq_t dmhreq; - struct dentry *dentry; - - if (!capable(CAP_MKNOD)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&dmhreq, arg, sizeof(xfs_fsop_setdm_handlereq_t))) - return -XFS_ERROR(EFAULT); - - dentry = xfs_handlereq_to_dentry(parfilp, &dmhreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) { - error = -XFS_ERROR(EPERM); - goto out; - } - - if (copy_from_user(&fsd, dmhreq.data, sizeof(fsd))) { - error = -XFS_ERROR(EFAULT); - goto out; - } - - error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask, - fsd.fsd_dmstate); - - out: - dput(dentry); - return error; -} - -STATIC int -xfs_attrlist_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error = -ENOMEM; - attrlist_cursor_kern_t *cursor; - xfs_fsop_attrlist_handlereq_t al_hreq; - struct dentry *dentry; - char *kbuf; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&al_hreq, arg, sizeof(xfs_fsop_attrlist_handlereq_t))) - return -XFS_ERROR(EFAULT); - if (al_hreq.buflen > XATTR_LIST_MAX) - return -XFS_ERROR(EINVAL); - - /* - * Reject flags, only allow namespaces. - */ - if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) - return -XFS_ERROR(EINVAL); - - dentry = xfs_handlereq_to_dentry(parfilp, &al_hreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - kbuf = kzalloc(al_hreq.buflen, GFP_KERNEL); - if (!kbuf) - goto out_dput; - - cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; - error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen, - al_hreq.flags, cursor); - if (error) - goto out_kfree; - - if (copy_to_user(al_hreq.buffer, kbuf, al_hreq.buflen)) - error = -EFAULT; - - out_kfree: - kfree(kbuf); - out_dput: - dput(dentry); - return error; -} - -int -xfs_attrmulti_attr_get( - struct inode *inode, - unsigned char *name, - unsigned char __user *ubuf, - __uint32_t *len, - __uint32_t flags) -{ - unsigned char *kbuf; - int error = EFAULT; - - if (*len > XATTR_SIZE_MAX) - return EINVAL; - kbuf = kmalloc(*len, GFP_KERNEL); - if (!kbuf) - return ENOMEM; - - error = xfs_attr_get(XFS_I(inode), name, kbuf, (int *)len, flags); - if (error) - goto out_kfree; - - if (copy_to_user(ubuf, kbuf, *len)) - error = EFAULT; - - out_kfree: - kfree(kbuf); - return error; -} - -int -xfs_attrmulti_attr_set( - struct inode *inode, - unsigned char *name, - const unsigned char __user *ubuf, - __uint32_t len, - __uint32_t flags) -{ - unsigned char *kbuf; - int error = EFAULT; - - if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) - return EPERM; - if (len > XATTR_SIZE_MAX) - return EINVAL; - - kbuf = memdup_user(ubuf, len); - if (IS_ERR(kbuf)) - return PTR_ERR(kbuf); - - error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags); - - return error; -} - -int -xfs_attrmulti_attr_remove( - struct inode *inode, - unsigned char *name, - __uint32_t flags) -{ - if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) - return EPERM; - return xfs_attr_remove(XFS_I(inode), name, flags); -} - -STATIC int -xfs_attrmulti_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error; - xfs_attr_multiop_t *ops; - xfs_fsop_attrmulti_handlereq_t am_hreq; - struct dentry *dentry; - unsigned int i, size; - unsigned char *attr_name; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&am_hreq, arg, sizeof(xfs_fsop_attrmulti_handlereq_t))) - return -XFS_ERROR(EFAULT); - - /* overflow check */ - if (am_hreq.opcount >= INT_MAX / sizeof(xfs_attr_multiop_t)) - return -E2BIG; - - dentry = xfs_handlereq_to_dentry(parfilp, &am_hreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - error = E2BIG; - size = am_hreq.opcount * sizeof(xfs_attr_multiop_t); - if (!size || size > 16 * PAGE_SIZE) - goto out_dput; - - ops = memdup_user(am_hreq.ops, size); - if (IS_ERR(ops)) { - error = PTR_ERR(ops); - goto out_dput; - } - - attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); - if (!attr_name) - goto out_kfree_ops; - - error = 0; - for (i = 0; i < am_hreq.opcount; i++) { - ops[i].am_error = strncpy_from_user((char *)attr_name, - ops[i].am_attrname, MAXNAMELEN); - if (ops[i].am_error == 0 || ops[i].am_error == MAXNAMELEN) - error = -ERANGE; - if (ops[i].am_error < 0) - break; - - switch (ops[i].am_opcode) { - case ATTR_OP_GET: - ops[i].am_error = xfs_attrmulti_attr_get( - dentry->d_inode, attr_name, - ops[i].am_attrvalue, &ops[i].am_length, - ops[i].am_flags); - break; - case ATTR_OP_SET: - ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); - if (ops[i].am_error) - break; - ops[i].am_error = xfs_attrmulti_attr_set( - dentry->d_inode, attr_name, - ops[i].am_attrvalue, ops[i].am_length, - ops[i].am_flags); - mnt_drop_write(parfilp->f_path.mnt); - break; - case ATTR_OP_REMOVE: - ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); - if (ops[i].am_error) - break; - ops[i].am_error = xfs_attrmulti_attr_remove( - dentry->d_inode, attr_name, - ops[i].am_flags); - mnt_drop_write(parfilp->f_path.mnt); - break; - default: - ops[i].am_error = EINVAL; - } - } - - if (copy_to_user(am_hreq.ops, ops, size)) - error = XFS_ERROR(EFAULT); - - kfree(attr_name); - out_kfree_ops: - kfree(ops); - out_dput: - dput(dentry); - return -error; -} - -int -xfs_ioc_space( - struct xfs_inode *ip, - struct inode *inode, - struct file *filp, - int ioflags, - unsigned int cmd, - xfs_flock64_t *bf) -{ - int attr_flags = 0; - int error; - - /* - * Only allow the sys admin to reserve space unless - * unwritten extents are enabled. - */ - if (!xfs_sb_version_hasextflgbit(&ip->i_mount->m_sb) && - !capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - - if (inode->i_flags & (S_IMMUTABLE|S_APPEND)) - return -XFS_ERROR(EPERM); - - if (!(filp->f_mode & FMODE_WRITE)) - return -XFS_ERROR(EBADF); - - if (!S_ISREG(inode->i_mode)) - return -XFS_ERROR(EINVAL); - - if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) - attr_flags |= XFS_ATTR_NONBLOCK; - - if (filp->f_flags & O_DSYNC) - attr_flags |= XFS_ATTR_SYNC; - - if (ioflags & IO_INVIS) - attr_flags |= XFS_ATTR_DMI; - - error = xfs_change_file_space(ip, cmd, bf, filp->f_pos, attr_flags); - return -error; -} - -STATIC int -xfs_ioc_bulkstat( - xfs_mount_t *mp, - unsigned int cmd, - void __user *arg) -{ - xfs_fsop_bulkreq_t bulkreq; - int count; /* # of records returned */ - xfs_ino_t inlast; /* last inode number */ - int done; - int error; - - /* done = 1 if there are more stats to get and if bulkstat */ - /* should be called again (unused here, but used in dmapi) */ - - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - if (XFS_FORCED_SHUTDOWN(mp)) - return -XFS_ERROR(EIO); - - if (copy_from_user(&bulkreq, arg, sizeof(xfs_fsop_bulkreq_t))) - return -XFS_ERROR(EFAULT); - - if (copy_from_user(&inlast, bulkreq.lastip, sizeof(__s64))) - return -XFS_ERROR(EFAULT); - - if ((count = bulkreq.icount) <= 0) - return -XFS_ERROR(EINVAL); - - if (bulkreq.ubuffer == NULL) - return -XFS_ERROR(EINVAL); - - if (cmd == XFS_IOC_FSINUMBERS) - error = xfs_inumbers(mp, &inlast, &count, - bulkreq.ubuffer, xfs_inumbers_fmt); - else if (cmd == XFS_IOC_FSBULKSTAT_SINGLE) - error = xfs_bulkstat_single(mp, &inlast, - bulkreq.ubuffer, &done); - else /* XFS_IOC_FSBULKSTAT */ - error = xfs_bulkstat(mp, &inlast, &count, xfs_bulkstat_one, - sizeof(xfs_bstat_t), bulkreq.ubuffer, - &done); - - if (error) - return -error; - - if (bulkreq.ocount != NULL) { - if (copy_to_user(bulkreq.lastip, &inlast, - sizeof(xfs_ino_t))) - return -XFS_ERROR(EFAULT); - - if (copy_to_user(bulkreq.ocount, &count, sizeof(count))) - return -XFS_ERROR(EFAULT); - } - - return 0; -} - -STATIC int -xfs_ioc_fsgeometry_v1( - xfs_mount_t *mp, - void __user *arg) -{ - xfs_fsop_geom_t fsgeo; - int error; - - error = xfs_fs_geometry(mp, &fsgeo, 3); - if (error) - return -error; - - /* - * Caller should have passed an argument of type - * xfs_fsop_geom_v1_t. This is a proper subset of the - * xfs_fsop_geom_t that xfs_fs_geometry() fills in. - */ - if (copy_to_user(arg, &fsgeo, sizeof(xfs_fsop_geom_v1_t))) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_ioc_fsgeometry( - xfs_mount_t *mp, - void __user *arg) -{ - xfs_fsop_geom_t fsgeo; - int error; - - error = xfs_fs_geometry(mp, &fsgeo, 4); - if (error) - return -error; - - if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) - return -XFS_ERROR(EFAULT); - return 0; -} - -/* - * Linux extended inode flags interface. - */ - -STATIC unsigned int -xfs_merge_ioc_xflags( - unsigned int flags, - unsigned int start) -{ - unsigned int xflags = start; - - if (flags & FS_IMMUTABLE_FL) - xflags |= XFS_XFLAG_IMMUTABLE; - else - xflags &= ~XFS_XFLAG_IMMUTABLE; - if (flags & FS_APPEND_FL) - xflags |= XFS_XFLAG_APPEND; - else - xflags &= ~XFS_XFLAG_APPEND; - if (flags & FS_SYNC_FL) - xflags |= XFS_XFLAG_SYNC; - else - xflags &= ~XFS_XFLAG_SYNC; - if (flags & FS_NOATIME_FL) - xflags |= XFS_XFLAG_NOATIME; - else - xflags &= ~XFS_XFLAG_NOATIME; - if (flags & FS_NODUMP_FL) - xflags |= XFS_XFLAG_NODUMP; - else - xflags &= ~XFS_XFLAG_NODUMP; - - return xflags; -} - -STATIC unsigned int -xfs_di2lxflags( - __uint16_t di_flags) -{ - unsigned int flags = 0; - - if (di_flags & XFS_DIFLAG_IMMUTABLE) - flags |= FS_IMMUTABLE_FL; - if (di_flags & XFS_DIFLAG_APPEND) - flags |= FS_APPEND_FL; - if (di_flags & XFS_DIFLAG_SYNC) - flags |= FS_SYNC_FL; - if (di_flags & XFS_DIFLAG_NOATIME) - flags |= FS_NOATIME_FL; - if (di_flags & XFS_DIFLAG_NODUMP) - flags |= FS_NODUMP_FL; - return flags; -} - -STATIC int -xfs_ioc_fsgetxattr( - xfs_inode_t *ip, - int attr, - void __user *arg) -{ - struct fsxattr fa; - - memset(&fa, 0, sizeof(struct fsxattr)); - - xfs_ilock(ip, XFS_ILOCK_SHARED); - fa.fsx_xflags = xfs_ip2xflags(ip); - fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; - fa.fsx_projid = xfs_get_projid(ip); - - if (attr) { - if (ip->i_afp) { - if (ip->i_afp->if_flags & XFS_IFEXTENTS) - fa.fsx_nextents = ip->i_afp->if_bytes / - sizeof(xfs_bmbt_rec_t); - else - fa.fsx_nextents = ip->i_d.di_anextents; - } else - fa.fsx_nextents = 0; - } else { - if (ip->i_df.if_flags & XFS_IFEXTENTS) - fa.fsx_nextents = ip->i_df.if_bytes / - sizeof(xfs_bmbt_rec_t); - else - fa.fsx_nextents = ip->i_d.di_nextents; - } - xfs_iunlock(ip, XFS_ILOCK_SHARED); - - if (copy_to_user(arg, &fa, sizeof(fa))) - return -EFAULT; - return 0; -} - -STATIC void -xfs_set_diflags( - struct xfs_inode *ip, - unsigned int xflags) -{ - unsigned int di_flags; - - /* can't set PREALLOC this way, just preserve it */ - di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); - if (xflags & XFS_XFLAG_IMMUTABLE) - di_flags |= XFS_DIFLAG_IMMUTABLE; - if (xflags & XFS_XFLAG_APPEND) - di_flags |= XFS_DIFLAG_APPEND; - if (xflags & XFS_XFLAG_SYNC) - di_flags |= XFS_DIFLAG_SYNC; - if (xflags & XFS_XFLAG_NOATIME) - di_flags |= XFS_DIFLAG_NOATIME; - if (xflags & XFS_XFLAG_NODUMP) - di_flags |= XFS_DIFLAG_NODUMP; - if (xflags & XFS_XFLAG_PROJINHERIT) - di_flags |= XFS_DIFLAG_PROJINHERIT; - if (xflags & XFS_XFLAG_NODEFRAG) - di_flags |= XFS_DIFLAG_NODEFRAG; - if (xflags & XFS_XFLAG_FILESTREAM) - di_flags |= XFS_DIFLAG_FILESTREAM; - if ((ip->i_d.di_mode & S_IFMT) == S_IFDIR) { - if (xflags & XFS_XFLAG_RTINHERIT) - di_flags |= XFS_DIFLAG_RTINHERIT; - if (xflags & XFS_XFLAG_NOSYMLINKS) - di_flags |= XFS_DIFLAG_NOSYMLINKS; - if (xflags & XFS_XFLAG_EXTSZINHERIT) - di_flags |= XFS_DIFLAG_EXTSZINHERIT; - } else if ((ip->i_d.di_mode & S_IFMT) == S_IFREG) { - if (xflags & XFS_XFLAG_REALTIME) - di_flags |= XFS_DIFLAG_REALTIME; - if (xflags & XFS_XFLAG_EXTSIZE) - di_flags |= XFS_DIFLAG_EXTSIZE; - } - - ip->i_d.di_flags = di_flags; -} - -STATIC void -xfs_diflags_to_linux( - struct xfs_inode *ip) -{ - struct inode *inode = VFS_I(ip); - unsigned int xflags = xfs_ip2xflags(ip); - - if (xflags & XFS_XFLAG_IMMUTABLE) - inode->i_flags |= S_IMMUTABLE; - else - inode->i_flags &= ~S_IMMUTABLE; - if (xflags & XFS_XFLAG_APPEND) - inode->i_flags |= S_APPEND; - else - inode->i_flags &= ~S_APPEND; - if (xflags & XFS_XFLAG_SYNC) - inode->i_flags |= S_SYNC; - else - inode->i_flags &= ~S_SYNC; - if (xflags & XFS_XFLAG_NOATIME) - inode->i_flags |= S_NOATIME; - else - inode->i_flags &= ~S_NOATIME; -} - -#define FSX_PROJID 1 -#define FSX_EXTSIZE 2 -#define FSX_XFLAGS 4 -#define FSX_NONBLOCK 8 - -STATIC int -xfs_ioctl_setattr( - xfs_inode_t *ip, - struct fsxattr *fa, - int mask) -{ - struct xfs_mount *mp = ip->i_mount; - struct xfs_trans *tp; - unsigned int lock_flags = 0; - struct xfs_dquot *udqp = NULL; - struct xfs_dquot *gdqp = NULL; - struct xfs_dquot *olddquot = NULL; - int code; - - trace_xfs_ioctl_setattr(ip); - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return XFS_ERROR(EROFS); - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - /* - * Disallow 32bit project ids when projid32bit feature is not enabled. - */ - if ((mask & FSX_PROJID) && (fa->fsx_projid > (__uint16_t)-1) && - !xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb)) - return XFS_ERROR(EINVAL); - - /* - * If disk quotas is on, we make sure that the dquots do exist on disk, - * before we start any other transactions. Trying to do this later - * is messy. We don't care to take a readlock to look at the ids - * in inode here, because we can't hold it across the trans_reserve. - * If the IDs do change before we take the ilock, we're covered - * because the i_*dquot fields will get updated anyway. - */ - if (XFS_IS_QUOTA_ON(mp) && (mask & FSX_PROJID)) { - code = xfs_qm_vop_dqalloc(ip, ip->i_d.di_uid, - ip->i_d.di_gid, fa->fsx_projid, - XFS_QMOPT_PQUOTA, &udqp, &gdqp); - if (code) - return code; - } - - /* - * For the other attributes, we acquire the inode lock and - * first do an error checking pass. - */ - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); - code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); - if (code) - goto error_return; - - lock_flags = XFS_ILOCK_EXCL; - xfs_ilock(ip, lock_flags); - - /* - * CAP_FOWNER overrides the following restrictions: - * - * The user ID of the calling process must be equal - * to the file owner ID, except in cases where the - * CAP_FSETID capability is applicable. - */ - if (current_fsuid() != ip->i_d.di_uid && !capable(CAP_FOWNER)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - - /* - * Do a quota reservation only if projid is actually going to change. - */ - if (mask & FSX_PROJID) { - if (XFS_IS_QUOTA_RUNNING(mp) && - XFS_IS_PQUOTA_ON(mp) && - xfs_get_projid(ip) != fa->fsx_projid) { - ASSERT(tp); - code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, - capable(CAP_FOWNER) ? - XFS_QMOPT_FORCE_RES : 0); - if (code) /* out of quota */ - goto error_return; - } - } - - if (mask & FSX_EXTSIZE) { - /* - * Can't change extent size if any extents are allocated. - */ - if (ip->i_d.di_nextents && - ((ip->i_d.di_extsize << mp->m_sb.sb_blocklog) != - fa->fsx_extsize)) { - code = XFS_ERROR(EINVAL); /* EFBIG? */ - goto error_return; - } - - /* - * Extent size must be a multiple of the appropriate block - * size, if set at all. It must also be smaller than the - * maximum extent size supported by the filesystem. - * - * Also, for non-realtime files, limit the extent size hint to - * half the size of the AGs in the filesystem so alignment - * doesn't result in extents larger than an AG. - */ - if (fa->fsx_extsize != 0) { - xfs_extlen_t size; - xfs_fsblock_t extsize_fsb; - - extsize_fsb = XFS_B_TO_FSB(mp, fa->fsx_extsize); - if (extsize_fsb > MAXEXTLEN) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - - if (XFS_IS_REALTIME_INODE(ip) || - ((mask & FSX_XFLAGS) && - (fa->fsx_xflags & XFS_XFLAG_REALTIME))) { - size = mp->m_sb.sb_rextsize << - mp->m_sb.sb_blocklog; - } else { - size = mp->m_sb.sb_blocksize; - if (extsize_fsb > mp->m_sb.sb_agblocks / 2) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - } - - if (fa->fsx_extsize % size) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - } - } - - - if (mask & FSX_XFLAGS) { - /* - * Can't change realtime flag if any extents are allocated. - */ - if ((ip->i_d.di_nextents || ip->i_delayed_blks) && - (XFS_IS_REALTIME_INODE(ip)) != - (fa->fsx_xflags & XFS_XFLAG_REALTIME)) { - code = XFS_ERROR(EINVAL); /* EFBIG? */ - goto error_return; - } - - /* - * If realtime flag is set then must have realtime data. - */ - if ((fa->fsx_xflags & XFS_XFLAG_REALTIME)) { - if ((mp->m_sb.sb_rblocks == 0) || - (mp->m_sb.sb_rextsize == 0) || - (ip->i_d.di_extsize % mp->m_sb.sb_rextsize)) { - code = XFS_ERROR(EINVAL); - goto error_return; - } - } - - /* - * Can't modify an immutable/append-only file unless - * we have appropriate permission. - */ - if ((ip->i_d.di_flags & - (XFS_DIFLAG_IMMUTABLE|XFS_DIFLAG_APPEND) || - (fa->fsx_xflags & - (XFS_XFLAG_IMMUTABLE | XFS_XFLAG_APPEND))) && - !capable(CAP_LINUX_IMMUTABLE)) { - code = XFS_ERROR(EPERM); - goto error_return; - } - } - - xfs_trans_ijoin(tp, ip); - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & FSX_PROJID) { - /* - * CAP_FSETID overrides the following restrictions: - * - * The set-user-ID and set-group-ID bits of a file will be - * cleared upon successful return from chown() - */ - if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && - !capable(CAP_FSETID)) - ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); - - /* - * Change the ownerships and register quota modifications - * in the transaction. - */ - if (xfs_get_projid(ip) != fa->fsx_projid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) { - olddquot = xfs_qm_vop_chown(tp, ip, - &ip->i_gdquot, gdqp); - } - xfs_set_projid(ip, fa->fsx_projid); - - /* - * We may have to rev the inode as well as - * the superblock version number since projids didn't - * exist before DINODE_VERSION_2 and SB_VERSION_NLINK. - */ - if (ip->i_d.di_version == 1) - xfs_bump_ino_vers2(tp, ip); - } - - } - - if (mask & FSX_EXTSIZE) - ip->i_d.di_extsize = fa->fsx_extsize >> mp->m_sb.sb_blocklog; - if (mask & FSX_XFLAGS) { - xfs_set_diflags(ip, fa->fsx_xflags); - xfs_diflags_to_linux(ip); - } - - xfs_trans_ichgtime(tp, ip, XFS_ICHGTIME_CHG); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - - XFS_STATS_INC(xs_ig_attrchg); - - /* - * If this is a synchronous mount, make sure that the - * transaction goes to disk before returning to the user. - * This is slightly sub-optimal in that truncates require - * two sync transactions instead of one for wsync filesystems. - * One for the truncate and one for the timestamps since we - * don't want to change the timestamps unless we're sure the - * truncate worked. Truncates are less than 1% of the laddis - * mix so this probably isn't worth the trouble to optimize. - */ - if (mp->m_flags & XFS_MOUNT_WSYNC) - xfs_trans_set_sync(tp); - code = xfs_trans_commit(tp, 0); - xfs_iunlock(ip, lock_flags); - - /* - * Release any dquot(s) the inode had kept before chown. - */ - xfs_qm_dqrele(olddquot); - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - - return code; - - error_return: - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - xfs_trans_cancel(tp, 0); - if (lock_flags) - xfs_iunlock(ip, lock_flags); - return code; -} - -STATIC int -xfs_ioc_fssetxattr( - xfs_inode_t *ip, - struct file *filp, - void __user *arg) -{ - struct fsxattr fa; - unsigned int mask; - - if (copy_from_user(&fa, arg, sizeof(fa))) - return -EFAULT; - - mask = FSX_XFLAGS | FSX_EXTSIZE | FSX_PROJID; - if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) - mask |= FSX_NONBLOCK; - - return -xfs_ioctl_setattr(ip, &fa, mask); -} - -STATIC int -xfs_ioc_getxflags( - xfs_inode_t *ip, - void __user *arg) -{ - unsigned int flags; - - flags = xfs_di2lxflags(ip->i_d.di_flags); - if (copy_to_user(arg, &flags, sizeof(flags))) - return -EFAULT; - return 0; -} - -STATIC int -xfs_ioc_setxflags( - xfs_inode_t *ip, - struct file *filp, - void __user *arg) -{ - struct fsxattr fa; - unsigned int flags; - unsigned int mask; - - if (copy_from_user(&flags, arg, sizeof(flags))) - return -EFAULT; - - if (flags & ~(FS_IMMUTABLE_FL | FS_APPEND_FL | \ - FS_NOATIME_FL | FS_NODUMP_FL | \ - FS_SYNC_FL)) - return -EOPNOTSUPP; - - mask = FSX_XFLAGS; - if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) - mask |= FSX_NONBLOCK; - fa.fsx_xflags = xfs_merge_ioc_xflags(flags, xfs_ip2xflags(ip)); - - return -xfs_ioctl_setattr(ip, &fa, mask); -} - -STATIC int -xfs_getbmap_format(void **ap, struct getbmapx *bmv, int *full) -{ - struct getbmap __user *base = *ap; - - /* copy only getbmap portion (not getbmapx) */ - if (copy_to_user(base, bmv, sizeof(struct getbmap))) - return XFS_ERROR(EFAULT); - - *ap += sizeof(struct getbmap); - return 0; -} - -STATIC int -xfs_ioc_getbmap( - struct xfs_inode *ip, - int ioflags, - unsigned int cmd, - void __user *arg) -{ - struct getbmapx bmx; - int error; - - if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) - return -XFS_ERROR(EFAULT); - - if (bmx.bmv_count < 2) - return -XFS_ERROR(EINVAL); - - bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); - if (ioflags & IO_INVIS) - bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; - - error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, - (struct getbmap *)arg+1); - if (error) - return -error; - - /* copy back header - only size of getbmap */ - if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_getbmapx_format(void **ap, struct getbmapx *bmv, int *full) -{ - struct getbmapx __user *base = *ap; - - if (copy_to_user(base, bmv, sizeof(struct getbmapx))) - return XFS_ERROR(EFAULT); - - *ap += sizeof(struct getbmapx); - return 0; -} - -STATIC int -xfs_ioc_getbmapx( - struct xfs_inode *ip, - void __user *arg) -{ - struct getbmapx bmx; - int error; - - if (copy_from_user(&bmx, arg, sizeof(bmx))) - return -XFS_ERROR(EFAULT); - - if (bmx.bmv_count < 2) - return -XFS_ERROR(EINVAL); - - if (bmx.bmv_iflags & (~BMV_IF_VALID)) - return -XFS_ERROR(EINVAL); - - error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, - (struct getbmapx *)arg+1); - if (error) - return -error; - - /* copy back header */ - if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) - return -XFS_ERROR(EFAULT); - - return 0; -} - -/* - * Note: some of the ioctl's return positive numbers as a - * byte count indicating success, such as readlink_by_handle. - * So we don't "sign flip" like most other routines. This means - * true errors need to be returned as a negative value. - */ -long -xfs_file_ioctl( - struct file *filp, - unsigned int cmd, - unsigned long p) -{ - struct inode *inode = filp->f_path.dentry->d_inode; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - void __user *arg = (void __user *)p; - int ioflags = 0; - int error; - - if (filp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; - - trace_xfs_file_ioctl(ip); - - switch (cmd) { - case FITRIM: - return xfs_ioc_trim(mp, arg); - case XFS_IOC_ALLOCSP: - case XFS_IOC_FREESP: - case XFS_IOC_RESVSP: - case XFS_IOC_UNRESVSP: - case XFS_IOC_ALLOCSP64: - case XFS_IOC_FREESP64: - case XFS_IOC_RESVSP64: - case XFS_IOC_UNRESVSP64: - case XFS_IOC_ZERO_RANGE: { - xfs_flock64_t bf; - - if (copy_from_user(&bf, arg, sizeof(bf))) - return -XFS_ERROR(EFAULT); - return xfs_ioc_space(ip, inode, filp, ioflags, cmd, &bf); - } - case XFS_IOC_DIOINFO: { - struct dioattr da; - xfs_buftarg_t *target = - XFS_IS_REALTIME_INODE(ip) ? - mp->m_rtdev_targp : mp->m_ddev_targp; - - da.d_mem = da.d_miniosz = 1 << target->bt_sshift; - da.d_maxiosz = INT_MAX & ~(da.d_miniosz - 1); - - if (copy_to_user(arg, &da, sizeof(da))) - return -XFS_ERROR(EFAULT); - return 0; - } - - case XFS_IOC_FSBULKSTAT_SINGLE: - case XFS_IOC_FSBULKSTAT: - case XFS_IOC_FSINUMBERS: - return xfs_ioc_bulkstat(mp, cmd, arg); - - case XFS_IOC_FSGEOMETRY_V1: - return xfs_ioc_fsgeometry_v1(mp, arg); - - case XFS_IOC_FSGEOMETRY: - return xfs_ioc_fsgeometry(mp, arg); - - case XFS_IOC_GETVERSION: - return put_user(inode->i_generation, (int __user *)arg); - - case XFS_IOC_FSGETXATTR: - return xfs_ioc_fsgetxattr(ip, 0, arg); - case XFS_IOC_FSGETXATTRA: - return xfs_ioc_fsgetxattr(ip, 1, arg); - case XFS_IOC_FSSETXATTR: - return xfs_ioc_fssetxattr(ip, filp, arg); - case XFS_IOC_GETXFLAGS: - return xfs_ioc_getxflags(ip, arg); - case XFS_IOC_SETXFLAGS: - return xfs_ioc_setxflags(ip, filp, arg); - - case XFS_IOC_FSSETDM: { - struct fsdmidata dmi; - - if (copy_from_user(&dmi, arg, sizeof(dmi))) - return -XFS_ERROR(EFAULT); - - error = xfs_set_dmattrs(ip, dmi.fsd_dmevmask, - dmi.fsd_dmstate); - return -error; - } - - case XFS_IOC_GETBMAP: - case XFS_IOC_GETBMAPA: - return xfs_ioc_getbmap(ip, ioflags, cmd, arg); - - case XFS_IOC_GETBMAPX: - return xfs_ioc_getbmapx(ip, arg); - - case XFS_IOC_FD_TO_HANDLE: - case XFS_IOC_PATH_TO_HANDLE: - case XFS_IOC_PATH_TO_FSHANDLE: { - xfs_fsop_handlereq_t hreq; - - if (copy_from_user(&hreq, arg, sizeof(hreq))) - return -XFS_ERROR(EFAULT); - return xfs_find_handle(cmd, &hreq); - } - case XFS_IOC_OPEN_BY_HANDLE: { - xfs_fsop_handlereq_t hreq; - - if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) - return -XFS_ERROR(EFAULT); - return xfs_open_by_handle(filp, &hreq); - } - case XFS_IOC_FSSETDM_BY_HANDLE: - return xfs_fssetdm_by_handle(filp, arg); - - case XFS_IOC_READLINK_BY_HANDLE: { - xfs_fsop_handlereq_t hreq; - - if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) - return -XFS_ERROR(EFAULT); - return xfs_readlink_by_handle(filp, &hreq); - } - case XFS_IOC_ATTRLIST_BY_HANDLE: - return xfs_attrlist_by_handle(filp, arg); - - case XFS_IOC_ATTRMULTI_BY_HANDLE: - return xfs_attrmulti_by_handle(filp, arg); - - case XFS_IOC_SWAPEXT: { - struct xfs_swapext sxp; - - if (copy_from_user(&sxp, arg, sizeof(xfs_swapext_t))) - return -XFS_ERROR(EFAULT); - error = xfs_swapext(&sxp); - return -error; - } - - case XFS_IOC_FSCOUNTS: { - xfs_fsop_counts_t out; - - error = xfs_fs_counts(mp, &out); - if (error) - return -error; - - if (copy_to_user(arg, &out, sizeof(out))) - return -XFS_ERROR(EFAULT); - return 0; - } - - case XFS_IOC_SET_RESBLKS: { - xfs_fsop_resblks_t inout; - __uint64_t in; - - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return -XFS_ERROR(EROFS); - - if (copy_from_user(&inout, arg, sizeof(inout))) - return -XFS_ERROR(EFAULT); - - /* input parameter is passed in resblks field of structure */ - in = inout.resblks; - error = xfs_reserve_blocks(mp, &in, &inout); - if (error) - return -error; - - if (copy_to_user(arg, &inout, sizeof(inout))) - return -XFS_ERROR(EFAULT); - return 0; - } - - case XFS_IOC_GET_RESBLKS: { - xfs_fsop_resblks_t out; - - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - error = xfs_reserve_blocks(mp, NULL, &out); - if (error) - return -error; - - if (copy_to_user(arg, &out, sizeof(out))) - return -XFS_ERROR(EFAULT); - - return 0; - } - - case XFS_IOC_FSGROWFSDATA: { - xfs_growfs_data_t in; - - if (copy_from_user(&in, arg, sizeof(in))) - return -XFS_ERROR(EFAULT); - - error = xfs_growfs_data(mp, &in); - return -error; - } - - case XFS_IOC_FSGROWFSLOG: { - xfs_growfs_log_t in; - - if (copy_from_user(&in, arg, sizeof(in))) - return -XFS_ERROR(EFAULT); - - error = xfs_growfs_log(mp, &in); - return -error; - } - - case XFS_IOC_FSGROWFSRT: { - xfs_growfs_rt_t in; - - if (copy_from_user(&in, arg, sizeof(in))) - return -XFS_ERROR(EFAULT); - - error = xfs_growfs_rt(mp, &in); - return -error; - } - - case XFS_IOC_GOINGDOWN: { - __uint32_t in; - - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - if (get_user(in, (__uint32_t __user *)arg)) - return -XFS_ERROR(EFAULT); - - error = xfs_fs_goingdown(mp, in); - return -error; - } - - case XFS_IOC_ERROR_INJECTION: { - xfs_error_injection_t in; - - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - if (copy_from_user(&in, arg, sizeof(in))) - return -XFS_ERROR(EFAULT); - - error = xfs_errortag_add(in.errtag, mp); - return -error; - } - - case XFS_IOC_ERROR_CLEARALL: - if (!capable(CAP_SYS_ADMIN)) - return -EPERM; - - error = xfs_errortag_clearall(mp, 1); - return -error; - - default: - return -ENOTTY; - } -} diff --git a/fs/xfs/linux-2.6/xfs_ioctl.h b/fs/xfs/linux-2.6/xfs_ioctl.h deleted file mode 100644 index d56173b..0000000 --- a/fs/xfs/linux-2.6/xfs_ioctl.h +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (c) 2008 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IOCTL_H__ -#define __XFS_IOCTL_H__ - -extern int -xfs_ioc_space( - struct xfs_inode *ip, - struct inode *inode, - struct file *filp, - int ioflags, - unsigned int cmd, - xfs_flock64_t *bf); - -extern int -xfs_find_handle( - unsigned int cmd, - xfs_fsop_handlereq_t *hreq); - -extern int -xfs_open_by_handle( - struct file *parfilp, - xfs_fsop_handlereq_t *hreq); - -extern int -xfs_readlink_by_handle( - struct file *parfilp, - xfs_fsop_handlereq_t *hreq); - -extern int -xfs_attrmulti_attr_get( - struct inode *inode, - unsigned char *name, - unsigned char __user *ubuf, - __uint32_t *len, - __uint32_t flags); - -extern int -xfs_attrmulti_attr_set( - struct inode *inode, - unsigned char *name, - const unsigned char __user *ubuf, - __uint32_t len, - __uint32_t flags); - -extern int -xfs_attrmulti_attr_remove( - struct inode *inode, - unsigned char *name, - __uint32_t flags); - -extern struct dentry * -xfs_handle_to_dentry( - struct file *parfilp, - void __user *uhandle, - u32 hlen); - -extern long -xfs_file_ioctl( - struct file *filp, - unsigned int cmd, - unsigned long p); - -extern long -xfs_file_compat_ioctl( - struct file *file, - unsigned int cmd, - unsigned long arg); - -#endif diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.c b/fs/xfs/linux-2.6/xfs_ioctl32.c deleted file mode 100644 index 54e623b..0000000 --- a/fs/xfs/linux-2.6/xfs_ioctl32.c +++ /dev/null @@ -1,672 +0,0 @@ -/* - * Copyright (c) 2004-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include -#include -#include -#include -#include -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_vnode.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_itable.h" -#include "xfs_error.h" -#include "xfs_dfrag.h" -#include "xfs_vnodeops.h" -#include "xfs_fsops.h" -#include "xfs_alloc.h" -#include "xfs_rtalloc.h" -#include "xfs_attr.h" -#include "xfs_ioctl.h" -#include "xfs_ioctl32.h" -#include "xfs_trace.h" - -#define _NATIVE_IOC(cmd, type) \ - _IOC(_IOC_DIR(cmd), _IOC_TYPE(cmd), _IOC_NR(cmd), sizeof(type)) - -#ifdef BROKEN_X86_ALIGNMENT -STATIC int -xfs_compat_flock64_copyin( - xfs_flock64_t *bf, - compat_xfs_flock64_t __user *arg32) -{ - if (get_user(bf->l_type, &arg32->l_type) || - get_user(bf->l_whence, &arg32->l_whence) || - get_user(bf->l_start, &arg32->l_start) || - get_user(bf->l_len, &arg32->l_len) || - get_user(bf->l_sysid, &arg32->l_sysid) || - get_user(bf->l_pid, &arg32->l_pid) || - copy_from_user(bf->l_pad, &arg32->l_pad, 4*sizeof(u32))) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_compat_ioc_fsgeometry_v1( - struct xfs_mount *mp, - compat_xfs_fsop_geom_v1_t __user *arg32) -{ - xfs_fsop_geom_t fsgeo; - int error; - - error = xfs_fs_geometry(mp, &fsgeo, 3); - if (error) - return -error; - /* The 32-bit variant simply has some padding at the end */ - if (copy_to_user(arg32, &fsgeo, sizeof(struct compat_xfs_fsop_geom_v1))) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_compat_growfs_data_copyin( - struct xfs_growfs_data *in, - compat_xfs_growfs_data_t __user *arg32) -{ - if (get_user(in->newblocks, &arg32->newblocks) || - get_user(in->imaxpct, &arg32->imaxpct)) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_compat_growfs_rt_copyin( - struct xfs_growfs_rt *in, - compat_xfs_growfs_rt_t __user *arg32) -{ - if (get_user(in->newblocks, &arg32->newblocks) || - get_user(in->extsize, &arg32->extsize)) - return -XFS_ERROR(EFAULT); - return 0; -} - -STATIC int -xfs_inumbers_fmt_compat( - void __user *ubuffer, - const xfs_inogrp_t *buffer, - long count, - long *written) -{ - compat_xfs_inogrp_t __user *p32 = ubuffer; - long i; - - for (i = 0; i < count; i++) { - if (put_user(buffer[i].xi_startino, &p32[i].xi_startino) || - put_user(buffer[i].xi_alloccount, &p32[i].xi_alloccount) || - put_user(buffer[i].xi_allocmask, &p32[i].xi_allocmask)) - return -XFS_ERROR(EFAULT); - } - *written = count * sizeof(*p32); - return 0; -} - -#else -#define xfs_inumbers_fmt_compat xfs_inumbers_fmt -#endif /* BROKEN_X86_ALIGNMENT */ - -STATIC int -xfs_ioctl32_bstime_copyin( - xfs_bstime_t *bstime, - compat_xfs_bstime_t __user *bstime32) -{ - compat_time_t sec32; /* tv_sec differs on 64 vs. 32 */ - - if (get_user(sec32, &bstime32->tv_sec) || - get_user(bstime->tv_nsec, &bstime32->tv_nsec)) - return -XFS_ERROR(EFAULT); - bstime->tv_sec = sec32; - return 0; -} - -/* xfs_bstat_t has differing alignment on intel, & bstime_t sizes everywhere */ -STATIC int -xfs_ioctl32_bstat_copyin( - xfs_bstat_t *bstat, - compat_xfs_bstat_t __user *bstat32) -{ - if (get_user(bstat->bs_ino, &bstat32->bs_ino) || - get_user(bstat->bs_mode, &bstat32->bs_mode) || - get_user(bstat->bs_nlink, &bstat32->bs_nlink) || - get_user(bstat->bs_uid, &bstat32->bs_uid) || - get_user(bstat->bs_gid, &bstat32->bs_gid) || - get_user(bstat->bs_rdev, &bstat32->bs_rdev) || - get_user(bstat->bs_blksize, &bstat32->bs_blksize) || - get_user(bstat->bs_size, &bstat32->bs_size) || - xfs_ioctl32_bstime_copyin(&bstat->bs_atime, &bstat32->bs_atime) || - xfs_ioctl32_bstime_copyin(&bstat->bs_mtime, &bstat32->bs_mtime) || - xfs_ioctl32_bstime_copyin(&bstat->bs_ctime, &bstat32->bs_ctime) || - get_user(bstat->bs_blocks, &bstat32->bs_size) || - get_user(bstat->bs_xflags, &bstat32->bs_size) || - get_user(bstat->bs_extsize, &bstat32->bs_extsize) || - get_user(bstat->bs_extents, &bstat32->bs_extents) || - get_user(bstat->bs_gen, &bstat32->bs_gen) || - get_user(bstat->bs_projid_lo, &bstat32->bs_projid_lo) || - get_user(bstat->bs_projid_hi, &bstat32->bs_projid_hi) || - get_user(bstat->bs_dmevmask, &bstat32->bs_dmevmask) || - get_user(bstat->bs_dmstate, &bstat32->bs_dmstate) || - get_user(bstat->bs_aextents, &bstat32->bs_aextents)) - return -XFS_ERROR(EFAULT); - return 0; -} - -/* XFS_IOC_FSBULKSTAT and friends */ - -STATIC int -xfs_bstime_store_compat( - compat_xfs_bstime_t __user *p32, - const xfs_bstime_t *p) -{ - __s32 sec32; - - sec32 = p->tv_sec; - if (put_user(sec32, &p32->tv_sec) || - put_user(p->tv_nsec, &p32->tv_nsec)) - return -XFS_ERROR(EFAULT); - return 0; -} - -/* Return 0 on success or positive error (to xfs_bulkstat()) */ -STATIC int -xfs_bulkstat_one_fmt_compat( - void __user *ubuffer, - int ubsize, - int *ubused, - const xfs_bstat_t *buffer) -{ - compat_xfs_bstat_t __user *p32 = ubuffer; - - if (ubsize < sizeof(*p32)) - return XFS_ERROR(ENOMEM); - - if (put_user(buffer->bs_ino, &p32->bs_ino) || - put_user(buffer->bs_mode, &p32->bs_mode) || - put_user(buffer->bs_nlink, &p32->bs_nlink) || - put_user(buffer->bs_uid, &p32->bs_uid) || - put_user(buffer->bs_gid, &p32->bs_gid) || - put_user(buffer->bs_rdev, &p32->bs_rdev) || - put_user(buffer->bs_blksize, &p32->bs_blksize) || - put_user(buffer->bs_size, &p32->bs_size) || - xfs_bstime_store_compat(&p32->bs_atime, &buffer->bs_atime) || - xfs_bstime_store_compat(&p32->bs_mtime, &buffer->bs_mtime) || - xfs_bstime_store_compat(&p32->bs_ctime, &buffer->bs_ctime) || - put_user(buffer->bs_blocks, &p32->bs_blocks) || - put_user(buffer->bs_xflags, &p32->bs_xflags) || - put_user(buffer->bs_extsize, &p32->bs_extsize) || - put_user(buffer->bs_extents, &p32->bs_extents) || - put_user(buffer->bs_gen, &p32->bs_gen) || - put_user(buffer->bs_projid, &p32->bs_projid) || - put_user(buffer->bs_projid_hi, &p32->bs_projid_hi) || - put_user(buffer->bs_dmevmask, &p32->bs_dmevmask) || - put_user(buffer->bs_dmstate, &p32->bs_dmstate) || - put_user(buffer->bs_aextents, &p32->bs_aextents)) - return XFS_ERROR(EFAULT); - if (ubused) - *ubused = sizeof(*p32); - return 0; -} - -STATIC int -xfs_bulkstat_one_compat( - xfs_mount_t *mp, /* mount point for filesystem */ - xfs_ino_t ino, /* inode number to get data for */ - void __user *buffer, /* buffer to place output in */ - int ubsize, /* size of buffer */ - int *ubused, /* bytes used by me */ - int *stat) /* BULKSTAT_RV_... */ -{ - return xfs_bulkstat_one_int(mp, ino, buffer, ubsize, - xfs_bulkstat_one_fmt_compat, - ubused, stat); -} - -/* copied from xfs_ioctl.c */ -STATIC int -xfs_compat_ioc_bulkstat( - xfs_mount_t *mp, - unsigned int cmd, - compat_xfs_fsop_bulkreq_t __user *p32) -{ - u32 addr; - xfs_fsop_bulkreq_t bulkreq; - int count; /* # of records returned */ - xfs_ino_t inlast; /* last inode number */ - int done; - int error; - - /* done = 1 if there are more stats to get and if bulkstat */ - /* should be called again (unused here, but used in dmapi) */ - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - - if (XFS_FORCED_SHUTDOWN(mp)) - return -XFS_ERROR(EIO); - - if (get_user(addr, &p32->lastip)) - return -XFS_ERROR(EFAULT); - bulkreq.lastip = compat_ptr(addr); - if (get_user(bulkreq.icount, &p32->icount) || - get_user(addr, &p32->ubuffer)) - return -XFS_ERROR(EFAULT); - bulkreq.ubuffer = compat_ptr(addr); - if (get_user(addr, &p32->ocount)) - return -XFS_ERROR(EFAULT); - bulkreq.ocount = compat_ptr(addr); - - if (copy_from_user(&inlast, bulkreq.lastip, sizeof(__s64))) - return -XFS_ERROR(EFAULT); - - if ((count = bulkreq.icount) <= 0) - return -XFS_ERROR(EINVAL); - - if (bulkreq.ubuffer == NULL) - return -XFS_ERROR(EINVAL); - - if (cmd == XFS_IOC_FSINUMBERS_32) { - error = xfs_inumbers(mp, &inlast, &count, - bulkreq.ubuffer, xfs_inumbers_fmt_compat); - } else if (cmd == XFS_IOC_FSBULKSTAT_SINGLE_32) { - int res; - - error = xfs_bulkstat_one_compat(mp, inlast, bulkreq.ubuffer, - sizeof(compat_xfs_bstat_t), 0, &res); - } else if (cmd == XFS_IOC_FSBULKSTAT_32) { - error = xfs_bulkstat(mp, &inlast, &count, - xfs_bulkstat_one_compat, sizeof(compat_xfs_bstat_t), - bulkreq.ubuffer, &done); - } else - error = XFS_ERROR(EINVAL); - if (error) - return -error; - - if (bulkreq.ocount != NULL) { - if (copy_to_user(bulkreq.lastip, &inlast, - sizeof(xfs_ino_t))) - return -XFS_ERROR(EFAULT); - - if (copy_to_user(bulkreq.ocount, &count, sizeof(count))) - return -XFS_ERROR(EFAULT); - } - - return 0; -} - -STATIC int -xfs_compat_handlereq_copyin( - xfs_fsop_handlereq_t *hreq, - compat_xfs_fsop_handlereq_t __user *arg32) -{ - compat_xfs_fsop_handlereq_t hreq32; - - if (copy_from_user(&hreq32, arg32, sizeof(compat_xfs_fsop_handlereq_t))) - return -XFS_ERROR(EFAULT); - - hreq->fd = hreq32.fd; - hreq->path = compat_ptr(hreq32.path); - hreq->oflags = hreq32.oflags; - hreq->ihandle = compat_ptr(hreq32.ihandle); - hreq->ihandlen = hreq32.ihandlen; - hreq->ohandle = compat_ptr(hreq32.ohandle); - hreq->ohandlen = compat_ptr(hreq32.ohandlen); - - return 0; -} - -STATIC struct dentry * -xfs_compat_handlereq_to_dentry( - struct file *parfilp, - compat_xfs_fsop_handlereq_t *hreq) -{ - return xfs_handle_to_dentry(parfilp, - compat_ptr(hreq->ihandle), hreq->ihandlen); -} - -STATIC int -xfs_compat_attrlist_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error; - attrlist_cursor_kern_t *cursor; - compat_xfs_fsop_attrlist_handlereq_t al_hreq; - struct dentry *dentry; - char *kbuf; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&al_hreq, arg, - sizeof(compat_xfs_fsop_attrlist_handlereq_t))) - return -XFS_ERROR(EFAULT); - if (al_hreq.buflen > XATTR_LIST_MAX) - return -XFS_ERROR(EINVAL); - - /* - * Reject flags, only allow namespaces. - */ - if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) - return -XFS_ERROR(EINVAL); - - dentry = xfs_compat_handlereq_to_dentry(parfilp, &al_hreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - error = -ENOMEM; - kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL); - if (!kbuf) - goto out_dput; - - cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; - error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen, - al_hreq.flags, cursor); - if (error) - goto out_kfree; - - if (copy_to_user(compat_ptr(al_hreq.buffer), kbuf, al_hreq.buflen)) - error = -EFAULT; - - out_kfree: - kfree(kbuf); - out_dput: - dput(dentry); - return error; -} - -STATIC int -xfs_compat_attrmulti_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error; - compat_xfs_attr_multiop_t *ops; - compat_xfs_fsop_attrmulti_handlereq_t am_hreq; - struct dentry *dentry; - unsigned int i, size; - unsigned char *attr_name; - - if (!capable(CAP_SYS_ADMIN)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&am_hreq, arg, - sizeof(compat_xfs_fsop_attrmulti_handlereq_t))) - return -XFS_ERROR(EFAULT); - - /* overflow check */ - if (am_hreq.opcount >= INT_MAX / sizeof(compat_xfs_attr_multiop_t)) - return -E2BIG; - - dentry = xfs_compat_handlereq_to_dentry(parfilp, &am_hreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - error = E2BIG; - size = am_hreq.opcount * sizeof(compat_xfs_attr_multiop_t); - if (!size || size > 16 * PAGE_SIZE) - goto out_dput; - - ops = memdup_user(compat_ptr(am_hreq.ops), size); - if (IS_ERR(ops)) { - error = PTR_ERR(ops); - goto out_dput; - } - - attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); - if (!attr_name) - goto out_kfree_ops; - - error = 0; - for (i = 0; i < am_hreq.opcount; i++) { - ops[i].am_error = strncpy_from_user((char *)attr_name, - compat_ptr(ops[i].am_attrname), - MAXNAMELEN); - if (ops[i].am_error == 0 || ops[i].am_error == MAXNAMELEN) - error = -ERANGE; - if (ops[i].am_error < 0) - break; - - switch (ops[i].am_opcode) { - case ATTR_OP_GET: - ops[i].am_error = xfs_attrmulti_attr_get( - dentry->d_inode, attr_name, - compat_ptr(ops[i].am_attrvalue), - &ops[i].am_length, ops[i].am_flags); - break; - case ATTR_OP_SET: - ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); - if (ops[i].am_error) - break; - ops[i].am_error = xfs_attrmulti_attr_set( - dentry->d_inode, attr_name, - compat_ptr(ops[i].am_attrvalue), - ops[i].am_length, ops[i].am_flags); - mnt_drop_write(parfilp->f_path.mnt); - break; - case ATTR_OP_REMOVE: - ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); - if (ops[i].am_error) - break; - ops[i].am_error = xfs_attrmulti_attr_remove( - dentry->d_inode, attr_name, - ops[i].am_flags); - mnt_drop_write(parfilp->f_path.mnt); - break; - default: - ops[i].am_error = EINVAL; - } - } - - if (copy_to_user(compat_ptr(am_hreq.ops), ops, size)) - error = XFS_ERROR(EFAULT); - - kfree(attr_name); - out_kfree_ops: - kfree(ops); - out_dput: - dput(dentry); - return -error; -} - -STATIC int -xfs_compat_fssetdm_by_handle( - struct file *parfilp, - void __user *arg) -{ - int error; - struct fsdmidata fsd; - compat_xfs_fsop_setdm_handlereq_t dmhreq; - struct dentry *dentry; - - if (!capable(CAP_MKNOD)) - return -XFS_ERROR(EPERM); - if (copy_from_user(&dmhreq, arg, - sizeof(compat_xfs_fsop_setdm_handlereq_t))) - return -XFS_ERROR(EFAULT); - - dentry = xfs_compat_handlereq_to_dentry(parfilp, &dmhreq.hreq); - if (IS_ERR(dentry)) - return PTR_ERR(dentry); - - if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) { - error = -XFS_ERROR(EPERM); - goto out; - } - - if (copy_from_user(&fsd, compat_ptr(dmhreq.data), sizeof(fsd))) { - error = -XFS_ERROR(EFAULT); - goto out; - } - - error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask, - fsd.fsd_dmstate); - -out: - dput(dentry); - return error; -} - -long -xfs_file_compat_ioctl( - struct file *filp, - unsigned cmd, - unsigned long p) -{ - struct inode *inode = filp->f_path.dentry->d_inode; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - void __user *arg = (void __user *)p; - int ioflags = 0; - int error; - - if (filp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; - - trace_xfs_file_compat_ioctl(ip); - - switch (cmd) { - /* No size or alignment issues on any arch */ - case XFS_IOC_DIOINFO: - case XFS_IOC_FSGEOMETRY: - case XFS_IOC_FSGETXATTR: - case XFS_IOC_FSSETXATTR: - case XFS_IOC_FSGETXATTRA: - case XFS_IOC_FSSETDM: - case XFS_IOC_GETBMAP: - case XFS_IOC_GETBMAPA: - case XFS_IOC_GETBMAPX: - case XFS_IOC_FSCOUNTS: - case XFS_IOC_SET_RESBLKS: - case XFS_IOC_GET_RESBLKS: - case XFS_IOC_FSGROWFSLOG: - case XFS_IOC_GOINGDOWN: - case XFS_IOC_ERROR_INJECTION: - case XFS_IOC_ERROR_CLEARALL: - return xfs_file_ioctl(filp, cmd, p); -#ifndef BROKEN_X86_ALIGNMENT - /* These are handled fine if no alignment issues */ - case XFS_IOC_ALLOCSP: - case XFS_IOC_FREESP: - case XFS_IOC_RESVSP: - case XFS_IOC_UNRESVSP: - case XFS_IOC_ALLOCSP64: - case XFS_IOC_FREESP64: - case XFS_IOC_RESVSP64: - case XFS_IOC_UNRESVSP64: - case XFS_IOC_FSGEOMETRY_V1: - case XFS_IOC_FSGROWFSDATA: - case XFS_IOC_FSGROWFSRT: - case XFS_IOC_ZERO_RANGE: - return xfs_file_ioctl(filp, cmd, p); -#else - case XFS_IOC_ALLOCSP_32: - case XFS_IOC_FREESP_32: - case XFS_IOC_ALLOCSP64_32: - case XFS_IOC_FREESP64_32: - case XFS_IOC_RESVSP_32: - case XFS_IOC_UNRESVSP_32: - case XFS_IOC_RESVSP64_32: - case XFS_IOC_UNRESVSP64_32: - case XFS_IOC_ZERO_RANGE_32: { - struct xfs_flock64 bf; - - if (xfs_compat_flock64_copyin(&bf, arg)) - return -XFS_ERROR(EFAULT); - cmd = _NATIVE_IOC(cmd, struct xfs_flock64); - return xfs_ioc_space(ip, inode, filp, ioflags, cmd, &bf); - } - case XFS_IOC_FSGEOMETRY_V1_32: - return xfs_compat_ioc_fsgeometry_v1(mp, arg); - case XFS_IOC_FSGROWFSDATA_32: { - struct xfs_growfs_data in; - - if (xfs_compat_growfs_data_copyin(&in, arg)) - return -XFS_ERROR(EFAULT); - error = xfs_growfs_data(mp, &in); - return -error; - } - case XFS_IOC_FSGROWFSRT_32: { - struct xfs_growfs_rt in; - - if (xfs_compat_growfs_rt_copyin(&in, arg)) - return -XFS_ERROR(EFAULT); - error = xfs_growfs_rt(mp, &in); - return -error; - } -#endif - /* long changes size, but xfs only copiese out 32 bits */ - case XFS_IOC_GETXFLAGS_32: - case XFS_IOC_SETXFLAGS_32: - case XFS_IOC_GETVERSION_32: - cmd = _NATIVE_IOC(cmd, long); - return xfs_file_ioctl(filp, cmd, p); - case XFS_IOC_SWAPEXT_32: { - struct xfs_swapext sxp; - struct compat_xfs_swapext __user *sxu = arg; - - /* Bulk copy in up to the sx_stat field, then copy bstat */ - if (copy_from_user(&sxp, sxu, - offsetof(struct xfs_swapext, sx_stat)) || - xfs_ioctl32_bstat_copyin(&sxp.sx_stat, &sxu->sx_stat)) - return -XFS_ERROR(EFAULT); - error = xfs_swapext(&sxp); - return -error; - } - case XFS_IOC_FSBULKSTAT_32: - case XFS_IOC_FSBULKSTAT_SINGLE_32: - case XFS_IOC_FSINUMBERS_32: - return xfs_compat_ioc_bulkstat(mp, cmd, arg); - case XFS_IOC_FD_TO_HANDLE_32: - case XFS_IOC_PATH_TO_HANDLE_32: - case XFS_IOC_PATH_TO_FSHANDLE_32: { - struct xfs_fsop_handlereq hreq; - - if (xfs_compat_handlereq_copyin(&hreq, arg)) - return -XFS_ERROR(EFAULT); - cmd = _NATIVE_IOC(cmd, struct xfs_fsop_handlereq); - return xfs_find_handle(cmd, &hreq); - } - case XFS_IOC_OPEN_BY_HANDLE_32: { - struct xfs_fsop_handlereq hreq; - - if (xfs_compat_handlereq_copyin(&hreq, arg)) - return -XFS_ERROR(EFAULT); - return xfs_open_by_handle(filp, &hreq); - } - case XFS_IOC_READLINK_BY_HANDLE_32: { - struct xfs_fsop_handlereq hreq; - - if (xfs_compat_handlereq_copyin(&hreq, arg)) - return -XFS_ERROR(EFAULT); - return xfs_readlink_by_handle(filp, &hreq); - } - case XFS_IOC_ATTRLIST_BY_HANDLE_32: - return xfs_compat_attrlist_by_handle(filp, arg); - case XFS_IOC_ATTRMULTI_BY_HANDLE_32: - return xfs_compat_attrmulti_by_handle(filp, arg); - case XFS_IOC_FSSETDM_BY_HANDLE_32: - return xfs_compat_fssetdm_by_handle(filp, arg); - default: - return -XFS_ERROR(ENOIOCTLCMD); - } -} diff --git a/fs/xfs/linux-2.6/xfs_ioctl32.h b/fs/xfs/linux-2.6/xfs_ioctl32.h deleted file mode 100644 index 80f4060..0000000 --- a/fs/xfs/linux-2.6/xfs_ioctl32.h +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright (c) 2004-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IOCTL32_H__ -#define __XFS_IOCTL32_H__ - -#include - -/* - * on 32-bit arches, ioctl argument structures may have different sizes - * and/or alignment. We define compat structures which match the - * 32-bit sizes/alignments here, and their associated ioctl numbers. - * - * xfs_ioctl32.c contains routines to copy these structures in and out. - */ - -/* stock kernel-level ioctls we support */ -#define XFS_IOC_GETXFLAGS_32 FS_IOC32_GETFLAGS -#define XFS_IOC_SETXFLAGS_32 FS_IOC32_SETFLAGS -#define XFS_IOC_GETVERSION_32 FS_IOC32_GETVERSION - -/* - * On intel, even if sizes match, alignment and/or padding may differ. - */ -#if defined(CONFIG_IA64) || defined(CONFIG_X86_64) -#define BROKEN_X86_ALIGNMENT -#define __compat_packed __attribute__((packed)) -#else -#define __compat_packed -#endif - -typedef struct compat_xfs_bstime { - compat_time_t tv_sec; /* seconds */ - __s32 tv_nsec; /* and nanoseconds */ -} compat_xfs_bstime_t; - -typedef struct compat_xfs_bstat { - __u64 bs_ino; /* inode number */ - __u16 bs_mode; /* type and mode */ - __u16 bs_nlink; /* number of links */ - __u32 bs_uid; /* user id */ - __u32 bs_gid; /* group id */ - __u32 bs_rdev; /* device value */ - __s32 bs_blksize; /* block size */ - __s64 bs_size; /* file size */ - compat_xfs_bstime_t bs_atime; /* access time */ - compat_xfs_bstime_t bs_mtime; /* modify time */ - compat_xfs_bstime_t bs_ctime; /* inode change time */ - int64_t bs_blocks; /* number of blocks */ - __u32 bs_xflags; /* extended flags */ - __s32 bs_extsize; /* extent size */ - __s32 bs_extents; /* number of extents */ - __u32 bs_gen; /* generation count */ - __u16 bs_projid_lo; /* lower part of project id */ -#define bs_projid bs_projid_lo /* (previously just bs_projid) */ - __u16 bs_projid_hi; /* high part of project id */ - unsigned char bs_pad[12]; /* pad space, unused */ - __u32 bs_dmevmask; /* DMIG event mask */ - __u16 bs_dmstate; /* DMIG state info */ - __u16 bs_aextents; /* attribute number of extents */ -} __compat_packed compat_xfs_bstat_t; - -typedef struct compat_xfs_fsop_bulkreq { - compat_uptr_t lastip; /* last inode # pointer */ - __s32 icount; /* count of entries in buffer */ - compat_uptr_t ubuffer; /* user buffer for inode desc. */ - compat_uptr_t ocount; /* output count pointer */ -} compat_xfs_fsop_bulkreq_t; - -#define XFS_IOC_FSBULKSTAT_32 \ - _IOWR('X', 101, struct compat_xfs_fsop_bulkreq) -#define XFS_IOC_FSBULKSTAT_SINGLE_32 \ - _IOWR('X', 102, struct compat_xfs_fsop_bulkreq) -#define XFS_IOC_FSINUMBERS_32 \ - _IOWR('X', 103, struct compat_xfs_fsop_bulkreq) - -typedef struct compat_xfs_fsop_handlereq { - __u32 fd; /* fd for FD_TO_HANDLE */ - compat_uptr_t path; /* user pathname */ - __u32 oflags; /* open flags */ - compat_uptr_t ihandle; /* user supplied handle */ - __u32 ihandlen; /* user supplied length */ - compat_uptr_t ohandle; /* user buffer for handle */ - compat_uptr_t ohandlen; /* user buffer length */ -} compat_xfs_fsop_handlereq_t; - -#define XFS_IOC_PATH_TO_FSHANDLE_32 \ - _IOWR('X', 104, struct compat_xfs_fsop_handlereq) -#define XFS_IOC_PATH_TO_HANDLE_32 \ - _IOWR('X', 105, struct compat_xfs_fsop_handlereq) -#define XFS_IOC_FD_TO_HANDLE_32 \ - _IOWR('X', 106, struct compat_xfs_fsop_handlereq) -#define XFS_IOC_OPEN_BY_HANDLE_32 \ - _IOWR('X', 107, struct compat_xfs_fsop_handlereq) -#define XFS_IOC_READLINK_BY_HANDLE_32 \ - _IOWR('X', 108, struct compat_xfs_fsop_handlereq) - -/* The bstat field in the swapext struct needs translation */ -typedef struct compat_xfs_swapext { - __int64_t sx_version; /* version */ - __int64_t sx_fdtarget; /* fd of target file */ - __int64_t sx_fdtmp; /* fd of tmp file */ - xfs_off_t sx_offset; /* offset into file */ - xfs_off_t sx_length; /* leng from offset */ - char sx_pad[16]; /* pad space, unused */ - compat_xfs_bstat_t sx_stat; /* stat of target b4 copy */ -} __compat_packed compat_xfs_swapext_t; - -#define XFS_IOC_SWAPEXT_32 _IOWR('X', 109, struct compat_xfs_swapext) - -typedef struct compat_xfs_fsop_attrlist_handlereq { - struct compat_xfs_fsop_handlereq hreq; /* handle interface structure */ - struct xfs_attrlist_cursor pos; /* opaque cookie, list offset */ - __u32 flags; /* which namespace to use */ - __u32 buflen; /* length of buffer supplied */ - compat_uptr_t buffer; /* returned names */ -} __compat_packed compat_xfs_fsop_attrlist_handlereq_t; - -/* Note: actually this is read/write */ -#define XFS_IOC_ATTRLIST_BY_HANDLE_32 \ - _IOW('X', 122, struct compat_xfs_fsop_attrlist_handlereq) - -/* am_opcodes defined in xfs_fs.h */ -typedef struct compat_xfs_attr_multiop { - __u32 am_opcode; - __s32 am_error; - compat_uptr_t am_attrname; - compat_uptr_t am_attrvalue; - __u32 am_length; - __u32 am_flags; -} compat_xfs_attr_multiop_t; - -typedef struct compat_xfs_fsop_attrmulti_handlereq { - struct compat_xfs_fsop_handlereq hreq; /* handle interface structure */ - __u32 opcount;/* count of following multiop */ - /* ptr to compat_xfs_attr_multiop */ - compat_uptr_t ops; /* attr_multi data */ -} compat_xfs_fsop_attrmulti_handlereq_t; - -#define XFS_IOC_ATTRMULTI_BY_HANDLE_32 \ - _IOW('X', 123, struct compat_xfs_fsop_attrmulti_handlereq) - -typedef struct compat_xfs_fsop_setdm_handlereq { - struct compat_xfs_fsop_handlereq hreq; /* handle information */ - /* ptr to struct fsdmidata */ - compat_uptr_t data; /* DMAPI data */ -} compat_xfs_fsop_setdm_handlereq_t; - -#define XFS_IOC_FSSETDM_BY_HANDLE_32 \ - _IOW('X', 121, struct compat_xfs_fsop_setdm_handlereq) - -#ifdef BROKEN_X86_ALIGNMENT -/* on ia32 l_start is on a 32-bit boundary */ -typedef struct compat_xfs_flock64 { - __s16 l_type; - __s16 l_whence; - __s64 l_start __attribute__((packed)); - /* len == 0 means until end of file */ - __s64 l_len __attribute__((packed)); - __s32 l_sysid; - __u32 l_pid; - __s32 l_pad[4]; /* reserve area */ -} compat_xfs_flock64_t; - -#define XFS_IOC_ALLOCSP_32 _IOW('X', 10, struct compat_xfs_flock64) -#define XFS_IOC_FREESP_32 _IOW('X', 11, struct compat_xfs_flock64) -#define XFS_IOC_ALLOCSP64_32 _IOW('X', 36, struct compat_xfs_flock64) -#define XFS_IOC_FREESP64_32 _IOW('X', 37, struct compat_xfs_flock64) -#define XFS_IOC_RESVSP_32 _IOW('X', 40, struct compat_xfs_flock64) -#define XFS_IOC_UNRESVSP_32 _IOW('X', 41, struct compat_xfs_flock64) -#define XFS_IOC_RESVSP64_32 _IOW('X', 42, struct compat_xfs_flock64) -#define XFS_IOC_UNRESVSP64_32 _IOW('X', 43, struct compat_xfs_flock64) -#define XFS_IOC_ZERO_RANGE_32 _IOW('X', 57, struct compat_xfs_flock64) - -typedef struct compat_xfs_fsop_geom_v1 { - __u32 blocksize; /* filesystem (data) block size */ - __u32 rtextsize; /* realtime extent size */ - __u32 agblocks; /* fsblocks in an AG */ - __u32 agcount; /* number of allocation groups */ - __u32 logblocks; /* fsblocks in the log */ - __u32 sectsize; /* (data) sector size, bytes */ - __u32 inodesize; /* inode size in bytes */ - __u32 imaxpct; /* max allowed inode space(%) */ - __u64 datablocks; /* fsblocks in data subvolume */ - __u64 rtblocks; /* fsblocks in realtime subvol */ - __u64 rtextents; /* rt extents in realtime subvol*/ - __u64 logstart; /* starting fsblock of the log */ - unsigned char uuid[16]; /* unique id of the filesystem */ - __u32 sunit; /* stripe unit, fsblocks */ - __u32 swidth; /* stripe width, fsblocks */ - __s32 version; /* structure version */ - __u32 flags; /* superblock version flags */ - __u32 logsectsize; /* log sector size, bytes */ - __u32 rtsectsize; /* realtime sector size, bytes */ - __u32 dirblocksize; /* directory block size, bytes */ -} __attribute__((packed)) compat_xfs_fsop_geom_v1_t; - -#define XFS_IOC_FSGEOMETRY_V1_32 \ - _IOR('X', 100, struct compat_xfs_fsop_geom_v1) - -typedef struct compat_xfs_inogrp { - __u64 xi_startino; /* starting inode number */ - __s32 xi_alloccount; /* # bits set in allocmask */ - __u64 xi_allocmask; /* mask of allocated inodes */ -} __attribute__((packed)) compat_xfs_inogrp_t; - -/* These growfs input structures have padding on the end, so must translate */ -typedef struct compat_xfs_growfs_data { - __u64 newblocks; /* new data subvol size, fsblocks */ - __u32 imaxpct; /* new inode space percentage limit */ -} __attribute__((packed)) compat_xfs_growfs_data_t; - -typedef struct compat_xfs_growfs_rt { - __u64 newblocks; /* new realtime size, fsblocks */ - __u32 extsize; /* new realtime extent size, fsblocks */ -} __attribute__((packed)) compat_xfs_growfs_rt_t; - -#define XFS_IOC_FSGROWFSDATA_32 _IOW('X', 110, struct compat_xfs_growfs_data) -#define XFS_IOC_FSGROWFSRT_32 _IOW('X', 112, struct compat_xfs_growfs_rt) - -#endif /* BROKEN_X86_ALIGNMENT */ - -#endif /* __XFS_IOCTL32_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_iops.c b/fs/xfs/linux-2.6/xfs_iops.c deleted file mode 100644 index 501e4f6..0000000 --- a/fs/xfs/linux-2.6/xfs_iops.c +++ /dev/null @@ -1,1201 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_acl.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_alloc.h" -#include "xfs_quota.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_bmap.h" -#include "xfs_rtalloc.h" -#include "xfs_error.h" -#include "xfs_itable.h" -#include "xfs_rw.h" -#include "xfs_attr.h" -#include "xfs_buf_item.h" -#include "xfs_utils.h" -#include "xfs_vnodeops.h" -#include "xfs_inode_item.h" -#include "xfs_trace.h" - -#include -#include -#include -#include -#include -#include -#include - -/* - * Bring the timestamps in the XFS inode uptodate. - * - * Used before writing the inode to disk. - */ -void -xfs_synchronize_times( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - - ip->i_d.di_atime.t_sec = (__int32_t)inode->i_atime.tv_sec; - ip->i_d.di_atime.t_nsec = (__int32_t)inode->i_atime.tv_nsec; - ip->i_d.di_ctime.t_sec = (__int32_t)inode->i_ctime.tv_sec; - ip->i_d.di_ctime.t_nsec = (__int32_t)inode->i_ctime.tv_nsec; - ip->i_d.di_mtime.t_sec = (__int32_t)inode->i_mtime.tv_sec; - ip->i_d.di_mtime.t_nsec = (__int32_t)inode->i_mtime.tv_nsec; -} - -/* - * If the linux inode is valid, mark it dirty. - * Used when committing a dirty inode into a transaction so that - * the inode will get written back by the linux code - */ -void -xfs_mark_inode_dirty_sync( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - - if (!(inode->i_state & (I_WILL_FREE|I_FREEING))) - mark_inode_dirty_sync(inode); -} - -void -xfs_mark_inode_dirty( - xfs_inode_t *ip) -{ - struct inode *inode = VFS_I(ip); - - if (!(inode->i_state & (I_WILL_FREE|I_FREEING))) - mark_inode_dirty(inode); -} - -/* - * Hook in SELinux. This is not quite correct yet, what we really need - * here (as we do for default ACLs) is a mechanism by which creation of - * these attrs can be journalled at inode creation time (along with the - * inode, of course, such that log replay can't cause these to be lost). - */ -STATIC int -xfs_init_security( - struct inode *inode, - struct inode *dir, - const struct qstr *qstr) -{ - struct xfs_inode *ip = XFS_I(inode); - size_t length; - void *value; - unsigned char *name; - int error; - - error = security_inode_init_security(inode, dir, qstr, (char **)&name, - &value, &length); - if (error) { - if (error == -EOPNOTSUPP) - return 0; - return -error; - } - - error = xfs_attr_set(ip, name, value, length, ATTR_SECURE); - - kfree(name); - kfree(value); - return error; -} - -static void -xfs_dentry_to_name( - struct xfs_name *namep, - struct dentry *dentry) -{ - namep->name = dentry->d_name.name; - namep->len = dentry->d_name.len; -} - -STATIC void -xfs_cleanup_inode( - struct inode *dir, - struct inode *inode, - struct dentry *dentry) -{ - struct xfs_name teardown; - - /* Oh, the horror. - * If we can't add the ACL or we fail in - * xfs_init_security we must back out. - * ENOSPC can hit here, among other things. - */ - xfs_dentry_to_name(&teardown, dentry); - - xfs_remove(XFS_I(dir), &teardown, XFS_I(inode)); - iput(inode); -} - -STATIC int -xfs_vn_mknod( - struct inode *dir, - struct dentry *dentry, - int mode, - dev_t rdev) -{ - struct inode *inode; - struct xfs_inode *ip = NULL; - struct posix_acl *default_acl = NULL; - struct xfs_name name; - int error; - - /* - * Irix uses Missed'em'V split, but doesn't want to see - * the upper 5 bits of (14bit) major. - */ - if (S_ISCHR(mode) || S_ISBLK(mode)) { - if (unlikely(!sysv_valid_dev(rdev) || MAJOR(rdev) & ~0x1ff)) - return -EINVAL; - rdev = sysv_encode_dev(rdev); - } else { - rdev = 0; - } - - if (IS_POSIXACL(dir)) { - default_acl = xfs_get_acl(dir, ACL_TYPE_DEFAULT); - if (IS_ERR(default_acl)) - return PTR_ERR(default_acl); - - if (!default_acl) - mode &= ~current_umask(); - } - - xfs_dentry_to_name(&name, dentry); - error = xfs_create(XFS_I(dir), &name, mode, rdev, &ip); - if (unlikely(error)) - goto out_free_acl; - - inode = VFS_I(ip); - - error = xfs_init_security(inode, dir, &dentry->d_name); - if (unlikely(error)) - goto out_cleanup_inode; - - if (default_acl) { - error = -xfs_inherit_acl(inode, default_acl); - if (unlikely(error)) - goto out_cleanup_inode; - posix_acl_release(default_acl); - } - - - d_instantiate(dentry, inode); - return -error; - - out_cleanup_inode: - xfs_cleanup_inode(dir, inode, dentry); - out_free_acl: - posix_acl_release(default_acl); - return -error; -} - -STATIC int -xfs_vn_create( - struct inode *dir, - struct dentry *dentry, - int mode, - struct nameidata *nd) -{ - return xfs_vn_mknod(dir, dentry, mode, 0); -} - -STATIC int -xfs_vn_mkdir( - struct inode *dir, - struct dentry *dentry, - int mode) -{ - return xfs_vn_mknod(dir, dentry, mode|S_IFDIR, 0); -} - -STATIC struct dentry * -xfs_vn_lookup( - struct inode *dir, - struct dentry *dentry, - struct nameidata *nd) -{ - struct xfs_inode *cip; - struct xfs_name name; - int error; - - if (dentry->d_name.len >= MAXNAMELEN) - return ERR_PTR(-ENAMETOOLONG); - - xfs_dentry_to_name(&name, dentry); - error = xfs_lookup(XFS_I(dir), &name, &cip, NULL); - if (unlikely(error)) { - if (unlikely(error != ENOENT)) - return ERR_PTR(-error); - d_add(dentry, NULL); - return NULL; - } - - return d_splice_alias(VFS_I(cip), dentry); -} - -STATIC struct dentry * -xfs_vn_ci_lookup( - struct inode *dir, - struct dentry *dentry, - struct nameidata *nd) -{ - struct xfs_inode *ip; - struct xfs_name xname; - struct xfs_name ci_name; - struct qstr dname; - int error; - - if (dentry->d_name.len >= MAXNAMELEN) - return ERR_PTR(-ENAMETOOLONG); - - xfs_dentry_to_name(&xname, dentry); - error = xfs_lookup(XFS_I(dir), &xname, &ip, &ci_name); - if (unlikely(error)) { - if (unlikely(error != ENOENT)) - return ERR_PTR(-error); - /* - * call d_add(dentry, NULL) here when d_drop_negative_children - * is called in xfs_vn_mknod (ie. allow negative dentries - * with CI filesystems). - */ - return NULL; - } - - /* if exact match, just splice and exit */ - if (!ci_name.name) - return d_splice_alias(VFS_I(ip), dentry); - - /* else case-insensitive match... */ - dname.name = ci_name.name; - dname.len = ci_name.len; - dentry = d_add_ci(dentry, VFS_I(ip), &dname); - kmem_free(ci_name.name); - return dentry; -} - -STATIC int -xfs_vn_link( - struct dentry *old_dentry, - struct inode *dir, - struct dentry *dentry) -{ - struct inode *inode = old_dentry->d_inode; - struct xfs_name name; - int error; - - xfs_dentry_to_name(&name, dentry); - - error = xfs_link(XFS_I(dir), XFS_I(inode), &name); - if (unlikely(error)) - return -error; - - ihold(inode); - d_instantiate(dentry, inode); - return 0; -} - -STATIC int -xfs_vn_unlink( - struct inode *dir, - struct dentry *dentry) -{ - struct xfs_name name; - int error; - - xfs_dentry_to_name(&name, dentry); - - error = -xfs_remove(XFS_I(dir), &name, XFS_I(dentry->d_inode)); - if (error) - return error; - - /* - * With unlink, the VFS makes the dentry "negative": no inode, - * but still hashed. This is incompatible with case-insensitive - * mode, so invalidate (unhash) the dentry in CI-mode. - */ - if (xfs_sb_version_hasasciici(&XFS_M(dir->i_sb)->m_sb)) - d_invalidate(dentry); - return 0; -} - -STATIC int -xfs_vn_symlink( - struct inode *dir, - struct dentry *dentry, - const char *symname) -{ - struct inode *inode; - struct xfs_inode *cip = NULL; - struct xfs_name name; - int error; - mode_t mode; - - mode = S_IFLNK | - (irix_symlink_mode ? 0777 & ~current_umask() : S_IRWXUGO); - xfs_dentry_to_name(&name, dentry); - - error = xfs_symlink(XFS_I(dir), &name, symname, mode, &cip); - if (unlikely(error)) - goto out; - - inode = VFS_I(cip); - - error = xfs_init_security(inode, dir, &dentry->d_name); - if (unlikely(error)) - goto out_cleanup_inode; - - d_instantiate(dentry, inode); - return 0; - - out_cleanup_inode: - xfs_cleanup_inode(dir, inode, dentry); - out: - return -error; -} - -STATIC int -xfs_vn_rename( - struct inode *odir, - struct dentry *odentry, - struct inode *ndir, - struct dentry *ndentry) -{ - struct inode *new_inode = ndentry->d_inode; - struct xfs_name oname; - struct xfs_name nname; - - xfs_dentry_to_name(&oname, odentry); - xfs_dentry_to_name(&nname, ndentry); - - return -xfs_rename(XFS_I(odir), &oname, XFS_I(odentry->d_inode), - XFS_I(ndir), &nname, new_inode ? - XFS_I(new_inode) : NULL); -} - -/* - * careful here - this function can get called recursively, so - * we need to be very careful about how much stack we use. - * uio is kmalloced for this reason... - */ -STATIC void * -xfs_vn_follow_link( - struct dentry *dentry, - struct nameidata *nd) -{ - char *link; - int error = -ENOMEM; - - link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); - if (!link) - goto out_err; - - error = -xfs_readlink(XFS_I(dentry->d_inode), link); - if (unlikely(error)) - goto out_kfree; - - nd_set_link(nd, link); - return NULL; - - out_kfree: - kfree(link); - out_err: - nd_set_link(nd, ERR_PTR(error)); - return NULL; -} - -STATIC void -xfs_vn_put_link( - struct dentry *dentry, - struct nameidata *nd, - void *p) -{ - char *s = nd_get_link(nd); - - if (!IS_ERR(s)) - kfree(s); -} - -STATIC int -xfs_vn_getattr( - struct vfsmount *mnt, - struct dentry *dentry, - struct kstat *stat) -{ - struct inode *inode = dentry->d_inode; - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - - trace_xfs_getattr(ip); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - stat->size = XFS_ISIZE(ip); - stat->dev = inode->i_sb->s_dev; - stat->mode = ip->i_d.di_mode; - stat->nlink = ip->i_d.di_nlink; - stat->uid = ip->i_d.di_uid; - stat->gid = ip->i_d.di_gid; - stat->ino = ip->i_ino; - stat->atime = inode->i_atime; - stat->mtime = inode->i_mtime; - stat->ctime = inode->i_ctime; - stat->blocks = - XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks); - - - switch (inode->i_mode & S_IFMT) { - case S_IFBLK: - case S_IFCHR: - stat->blksize = BLKDEV_IOSIZE; - stat->rdev = MKDEV(sysv_major(ip->i_df.if_u2.if_rdev) & 0x1ff, - sysv_minor(ip->i_df.if_u2.if_rdev)); - break; - default: - if (XFS_IS_REALTIME_INODE(ip)) { - /* - * If the file blocks are being allocated from a - * realtime volume, then return the inode's realtime - * extent size or the realtime volume's extent size. - */ - stat->blksize = - xfs_get_extsz_hint(ip) << mp->m_sb.sb_blocklog; - } else - stat->blksize = xfs_preferred_iosize(mp); - stat->rdev = 0; - break; - } - - return 0; -} - -int -xfs_setattr_nonsize( - struct xfs_inode *ip, - struct iattr *iattr, - int flags) -{ - xfs_mount_t *mp = ip->i_mount; - struct inode *inode = VFS_I(ip); - int mask = iattr->ia_valid; - xfs_trans_t *tp; - int error; - uid_t uid = 0, iuid = 0; - gid_t gid = 0, igid = 0; - struct xfs_dquot *udqp = NULL, *gdqp = NULL; - struct xfs_dquot *olddquot1 = NULL, *olddquot2 = NULL; - - trace_xfs_setattr(ip); - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return XFS_ERROR(EROFS); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - error = -inode_change_ok(inode, iattr); - if (error) - return XFS_ERROR(error); - - ASSERT((mask & ATTR_SIZE) == 0); - - /* - * If disk quotas is on, we make sure that the dquots do exist on disk, - * before we start any other transactions. Trying to do this later - * is messy. We don't care to take a readlock to look at the ids - * in inode here, because we can't hold it across the trans_reserve. - * If the IDs do change before we take the ilock, we're covered - * because the i_*dquot fields will get updated anyway. - */ - if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { - uint qflags = 0; - - if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { - uid = iattr->ia_uid; - qflags |= XFS_QMOPT_UQUOTA; - } else { - uid = ip->i_d.di_uid; - } - if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { - gid = iattr->ia_gid; - qflags |= XFS_QMOPT_GQUOTA; - } else { - gid = ip->i_d.di_gid; - } - - /* - * We take a reference when we initialize udqp and gdqp, - * so it is important that we never blindly double trip on - * the same variable. See xfs_create() for an example. - */ - ASSERT(udqp == NULL); - ASSERT(gdqp == NULL); - error = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), - qflags, &udqp, &gdqp); - if (error) - return error; - } - - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); - error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); - if (error) - goto out_dqrele; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * These IDs could have changed since we last looked at them. - * But, we're assured that if the ownership did change - * while we didn't have the inode locked, inode's dquot(s) - * would have changed also. - */ - iuid = ip->i_d.di_uid; - igid = ip->i_d.di_gid; - gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; - uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; - - /* - * Do a quota reservation only if uid/gid is actually - * going to change. - */ - if (XFS_IS_QUOTA_RUNNING(mp) && - ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || - (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { - ASSERT(tp); - error = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, - capable(CAP_FOWNER) ? - XFS_QMOPT_FORCE_RES : 0); - if (error) /* out of quota */ - goto out_trans_cancel; - } - } - - xfs_trans_ijoin(tp, ip); - - /* - * Change file ownership. Must be the owner or privileged. - */ - if (mask & (ATTR_UID|ATTR_GID)) { - /* - * CAP_FSETID overrides the following restrictions: - * - * The set-user-ID and set-group-ID bits of a file will be - * cleared upon successful return from chown() - */ - if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && - !capable(CAP_FSETID)) - ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); - - /* - * Change the ownerships and register quota modifications - * in the transaction. - */ - if (iuid != uid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { - ASSERT(mask & ATTR_UID); - ASSERT(udqp); - olddquot1 = xfs_qm_vop_chown(tp, ip, - &ip->i_udquot, udqp); - } - ip->i_d.di_uid = uid; - inode->i_uid = uid; - } - if (igid != gid) { - if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { - ASSERT(!XFS_IS_PQUOTA_ON(mp)); - ASSERT(mask & ATTR_GID); - ASSERT(gdqp); - olddquot2 = xfs_qm_vop_chown(tp, ip, - &ip->i_gdquot, gdqp); - } - ip->i_d.di_gid = gid; - inode->i_gid = gid; - } - } - - /* - * Change file access modes. - */ - if (mask & ATTR_MODE) { - umode_t mode = iattr->ia_mode; - - if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) - mode &= ~S_ISGID; - - ip->i_d.di_mode &= S_IFMT; - ip->i_d.di_mode |= mode & ~S_IFMT; - - inode->i_mode &= S_IFMT; - inode->i_mode |= mode & ~S_IFMT; - } - - /* - * Change file access or modified times. - */ - if (mask & ATTR_ATIME) { - inode->i_atime = iattr->ia_atime; - ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; - ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_CTIME) { - inode->i_ctime = iattr->ia_ctime; - ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; - ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_MTIME) { - inode->i_mtime = iattr->ia_mtime; - ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; - ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; - ip->i_update_core = 1; - } - - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - - XFS_STATS_INC(xs_ig_attrchg); - - if (mp->m_flags & XFS_MOUNT_WSYNC) - xfs_trans_set_sync(tp); - error = xfs_trans_commit(tp, 0); - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - /* - * Release any dquot(s) the inode had kept before chown. - */ - xfs_qm_dqrele(olddquot1); - xfs_qm_dqrele(olddquot2); - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - - if (error) - return XFS_ERROR(error); - - /* - * XXX(hch): Updating the ACL entries is not atomic vs the i_mode - * update. We could avoid this with linked transactions - * and passing down the transaction pointer all the way - * to attr_set. No previous user of the generic - * Posix ACL code seems to care about this issue either. - */ - if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { - error = -xfs_acl_chmod(inode); - if (error) - return XFS_ERROR(error); - } - - return 0; - -out_trans_cancel: - xfs_trans_cancel(tp, 0); - xfs_iunlock(ip, XFS_ILOCK_EXCL); -out_dqrele: - xfs_qm_dqrele(udqp); - xfs_qm_dqrele(gdqp); - return error; -} - -/* - * Truncate file. Must have write permission and not be a directory. - */ -int -xfs_setattr_size( - struct xfs_inode *ip, - struct iattr *iattr, - int flags) -{ - struct xfs_mount *mp = ip->i_mount; - struct inode *inode = VFS_I(ip); - int mask = iattr->ia_valid; - struct xfs_trans *tp; - int error; - uint lock_flags; - uint commit_flags = 0; - - trace_xfs_setattr(ip); - - if (mp->m_flags & XFS_MOUNT_RDONLY) - return XFS_ERROR(EROFS); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - error = -inode_change_ok(inode, iattr); - if (error) - return XFS_ERROR(error); - - ASSERT(S_ISREG(ip->i_d.di_mode)); - ASSERT((mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| - ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID| - ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); - - lock_flags = XFS_ILOCK_EXCL; - if (!(flags & XFS_ATTR_NOLOCK)) - lock_flags |= XFS_IOLOCK_EXCL; - xfs_ilock(ip, lock_flags); - - /* - * Short circuit the truncate case for zero length files. - */ - if (iattr->ia_size == 0 && - ip->i_size == 0 && ip->i_d.di_nextents == 0) { - if (!(mask & (ATTR_CTIME|ATTR_MTIME))) - goto out_unlock; - - /* - * Use the regular setattr path to update the timestamps. - */ - xfs_iunlock(ip, lock_flags); - iattr->ia_valid &= ~ATTR_SIZE; - return xfs_setattr_nonsize(ip, iattr, 0); - } - - /* - * Make sure that the dquots are attached to the inode. - */ - error = xfs_qm_dqattach_locked(ip, 0); - if (error) - goto out_unlock; - - /* - * Now we can make the changes. Before we join the inode to the - * transaction, take care of the part of the truncation that must be - * done without the inode lock. This needs to be done before joining - * the inode to the transaction, because the inode cannot be unlocked - * once it is a part of the transaction. - */ - if (iattr->ia_size > ip->i_size) { - /* - * Do the first part of growing a file: zero any data in the - * last block that is beyond the old EOF. We need to do this - * before the inode is joined to the transaction to modify - * i_size. - */ - error = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); - if (error) - goto out_unlock; - } - xfs_iunlock(ip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - - /* - * We are going to log the inode size change in this transaction so - * any previous writes that are beyond the on disk EOF and the new - * EOF that have not been written out need to be written here. If we - * do not write the data out, we expose ourselves to the null files - * problem. - * - * Only flush from the on disk size to the smaller of the in memory - * file size or the new size as that's the range we really care about - * here and prevents waiting for other data not within the range we - * care about here. - */ - if (ip->i_size != ip->i_d.di_size && iattr->ia_size > ip->i_d.di_size) { - error = xfs_flush_pages(ip, ip->i_d.di_size, iattr->ia_size, - XBF_ASYNC, FI_NONE); - if (error) - goto out_unlock; - } - - /* - * Wait for all I/O to complete. - */ - xfs_ioend_wait(ip); - - error = -block_truncate_page(inode->i_mapping, iattr->ia_size, - xfs_get_blocks); - if (error) - goto out_unlock; - - tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); - error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, - XFS_TRANS_PERM_LOG_RES, - XFS_ITRUNCATE_LOG_COUNT); - if (error) - goto out_trans_cancel; - - truncate_setsize(inode, iattr->ia_size); - - commit_flags = XFS_TRANS_RELEASE_LOG_RES; - lock_flags |= XFS_ILOCK_EXCL; - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - xfs_trans_ijoin(tp, ip); - - /* - * Only change the c/mtime if we are changing the size or we are - * explicitly asked to change it. This handles the semantic difference - * between truncate() and ftruncate() as implemented in the VFS. - * - * The regular truncate() case without ATTR_CTIME and ATTR_MTIME is a - * special case where we need to update the times despite not having - * these flags set. For all other operations the VFS set these flags - * explicitly if it wants a timestamp update. - */ - if (iattr->ia_size != ip->i_size && - (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { - iattr->ia_ctime = iattr->ia_mtime = - current_fs_time(inode->i_sb); - mask |= ATTR_CTIME | ATTR_MTIME; - } - - if (iattr->ia_size > ip->i_size) { - ip->i_d.di_size = iattr->ia_size; - ip->i_size = iattr->ia_size; - } else if (iattr->ia_size <= ip->i_size || - (iattr->ia_size == 0 && ip->i_d.di_nextents)) { - error = xfs_itruncate_data(&tp, ip, iattr->ia_size); - if (error) - goto out_trans_abort; - - /* - * Truncated "down", so we're removing references to old data - * here - if we delay flushing for a long time, we expose - * ourselves unduly to the notorious NULL files problem. So, - * we mark this inode and flush it when the file is closed, - * and do not wait the usual (long) time for writeout. - */ - xfs_iflags_set(ip, XFS_ITRUNCATED); - } - - if (mask & ATTR_CTIME) { - inode->i_ctime = iattr->ia_ctime; - ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; - ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; - ip->i_update_core = 1; - } - if (mask & ATTR_MTIME) { - inode->i_mtime = iattr->ia_mtime; - ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; - ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; - ip->i_update_core = 1; - } - - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - - XFS_STATS_INC(xs_ig_attrchg); - - if (mp->m_flags & XFS_MOUNT_WSYNC) - xfs_trans_set_sync(tp); - - error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); -out_unlock: - if (lock_flags) - xfs_iunlock(ip, lock_flags); - return error; - -out_trans_abort: - commit_flags |= XFS_TRANS_ABORT; -out_trans_cancel: - xfs_trans_cancel(tp, commit_flags); - goto out_unlock; -} - -STATIC int -xfs_vn_setattr( - struct dentry *dentry, - struct iattr *iattr) -{ - if (iattr->ia_valid & ATTR_SIZE) - return -xfs_setattr_size(XFS_I(dentry->d_inode), iattr, 0); - return -xfs_setattr_nonsize(XFS_I(dentry->d_inode), iattr, 0); -} - -#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) - -/* - * Call fiemap helper to fill in user data. - * Returns positive errors to xfs_getbmap. - */ -STATIC int -xfs_fiemap_format( - void **arg, - struct getbmapx *bmv, - int *full) -{ - int error; - struct fiemap_extent_info *fieinfo = *arg; - u32 fiemap_flags = 0; - u64 logical, physical, length; - - /* Do nothing for a hole */ - if (bmv->bmv_block == -1LL) - return 0; - - logical = BBTOB(bmv->bmv_offset); - physical = BBTOB(bmv->bmv_block); - length = BBTOB(bmv->bmv_length); - - if (bmv->bmv_oflags & BMV_OF_PREALLOC) - fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; - else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { - fiemap_flags |= FIEMAP_EXTENT_DELALLOC; - physical = 0; /* no block yet */ - } - if (bmv->bmv_oflags & BMV_OF_LAST) - fiemap_flags |= FIEMAP_EXTENT_LAST; - - error = fiemap_fill_next_extent(fieinfo, logical, physical, - length, fiemap_flags); - if (error > 0) { - error = 0; - *full = 1; /* user array now full */ - } - - return -error; -} - -STATIC int -xfs_vn_fiemap( - struct inode *inode, - struct fiemap_extent_info *fieinfo, - u64 start, - u64 length) -{ - xfs_inode_t *ip = XFS_I(inode); - struct getbmapx bm; - int error; - - error = fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS); - if (error) - return error; - - /* Set up bmap header for xfs internal routine */ - bm.bmv_offset = BTOBB(start); - /* Special case for whole file */ - if (length == FIEMAP_MAX_OFFSET) - bm.bmv_length = -1LL; - else - bm.bmv_length = BTOBB(length); - - /* We add one because in getbmap world count includes the header */ - bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : - fieinfo->fi_extents_max + 1; - bm.bmv_count = min_t(__s32, bm.bmv_count, - (PAGE_SIZE * 16 / sizeof(struct getbmapx))); - bm.bmv_iflags = BMV_IF_PREALLOC | BMV_IF_NO_HOLES; - if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) - bm.bmv_iflags |= BMV_IF_ATTRFORK; - if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) - bm.bmv_iflags |= BMV_IF_DELALLOC; - - error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); - if (error) - return -error; - - return 0; -} - -static const struct inode_operations xfs_inode_operations = { - .check_acl = xfs_check_acl, - .getattr = xfs_vn_getattr, - .setattr = xfs_vn_setattr, - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, - .listxattr = xfs_vn_listxattr, - .fiemap = xfs_vn_fiemap, -}; - -static const struct inode_operations xfs_dir_inode_operations = { - .create = xfs_vn_create, - .lookup = xfs_vn_lookup, - .link = xfs_vn_link, - .unlink = xfs_vn_unlink, - .symlink = xfs_vn_symlink, - .mkdir = xfs_vn_mkdir, - /* - * Yes, XFS uses the same method for rmdir and unlink. - * - * There are some subtile differences deeper in the code, - * but we use S_ISDIR to check for those. - */ - .rmdir = xfs_vn_unlink, - .mknod = xfs_vn_mknod, - .rename = xfs_vn_rename, - .check_acl = xfs_check_acl, - .getattr = xfs_vn_getattr, - .setattr = xfs_vn_setattr, - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, - .listxattr = xfs_vn_listxattr, -}; - -static const struct inode_operations xfs_dir_ci_inode_operations = { - .create = xfs_vn_create, - .lookup = xfs_vn_ci_lookup, - .link = xfs_vn_link, - .unlink = xfs_vn_unlink, - .symlink = xfs_vn_symlink, - .mkdir = xfs_vn_mkdir, - /* - * Yes, XFS uses the same method for rmdir and unlink. - * - * There are some subtile differences deeper in the code, - * but we use S_ISDIR to check for those. - */ - .rmdir = xfs_vn_unlink, - .mknod = xfs_vn_mknod, - .rename = xfs_vn_rename, - .check_acl = xfs_check_acl, - .getattr = xfs_vn_getattr, - .setattr = xfs_vn_setattr, - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, - .listxattr = xfs_vn_listxattr, -}; - -static const struct inode_operations xfs_symlink_inode_operations = { - .readlink = generic_readlink, - .follow_link = xfs_vn_follow_link, - .put_link = xfs_vn_put_link, - .check_acl = xfs_check_acl, - .getattr = xfs_vn_getattr, - .setattr = xfs_vn_setattr, - .setxattr = generic_setxattr, - .getxattr = generic_getxattr, - .removexattr = generic_removexattr, - .listxattr = xfs_vn_listxattr, -}; - -STATIC void -xfs_diflags_to_iflags( - struct inode *inode, - struct xfs_inode *ip) -{ - if (ip->i_d.di_flags & XFS_DIFLAG_IMMUTABLE) - inode->i_flags |= S_IMMUTABLE; - else - inode->i_flags &= ~S_IMMUTABLE; - if (ip->i_d.di_flags & XFS_DIFLAG_APPEND) - inode->i_flags |= S_APPEND; - else - inode->i_flags &= ~S_APPEND; - if (ip->i_d.di_flags & XFS_DIFLAG_SYNC) - inode->i_flags |= S_SYNC; - else - inode->i_flags &= ~S_SYNC; - if (ip->i_d.di_flags & XFS_DIFLAG_NOATIME) - inode->i_flags |= S_NOATIME; - else - inode->i_flags &= ~S_NOATIME; -} - -/* - * Initialize the Linux inode, set up the operation vectors and - * unlock the inode. - * - * When reading existing inodes from disk this is called directly - * from xfs_iget, when creating a new inode it is called from - * xfs_ialloc after setting up the inode. - * - * We are always called with an uninitialised linux inode here. - * We need to initialise the necessary fields and take a reference - * on it. - */ -void -xfs_setup_inode( - struct xfs_inode *ip) -{ - struct inode *inode = &ip->i_vnode; - - inode->i_ino = ip->i_ino; - inode->i_state = I_NEW; - - inode_sb_list_add(inode); - /* make the inode look hashed for the writeback code */ - hlist_add_fake(&inode->i_hash); - - inode->i_mode = ip->i_d.di_mode; - inode->i_nlink = ip->i_d.di_nlink; - inode->i_uid = ip->i_d.di_uid; - inode->i_gid = ip->i_d.di_gid; - - switch (inode->i_mode & S_IFMT) { - case S_IFBLK: - case S_IFCHR: - inode->i_rdev = - MKDEV(sysv_major(ip->i_df.if_u2.if_rdev) & 0x1ff, - sysv_minor(ip->i_df.if_u2.if_rdev)); - break; - default: - inode->i_rdev = 0; - break; - } - - inode->i_generation = ip->i_d.di_gen; - i_size_write(inode, ip->i_d.di_size); - inode->i_atime.tv_sec = ip->i_d.di_atime.t_sec; - inode->i_atime.tv_nsec = ip->i_d.di_atime.t_nsec; - inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec; - inode->i_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec; - inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec; - inode->i_ctime.tv_nsec = ip->i_d.di_ctime.t_nsec; - xfs_diflags_to_iflags(inode, ip); - - switch (inode->i_mode & S_IFMT) { - case S_IFREG: - inode->i_op = &xfs_inode_operations; - inode->i_fop = &xfs_file_operations; - inode->i_mapping->a_ops = &xfs_address_space_operations; - break; - case S_IFDIR: - if (xfs_sb_version_hasasciici(&XFS_M(inode->i_sb)->m_sb)) - inode->i_op = &xfs_dir_ci_inode_operations; - else - inode->i_op = &xfs_dir_inode_operations; - inode->i_fop = &xfs_dir_file_operations; - break; - case S_IFLNK: - inode->i_op = &xfs_symlink_inode_operations; - if (!(ip->i_df.if_flags & XFS_IFINLINE)) - inode->i_mapping->a_ops = &xfs_address_space_operations; - break; - default: - inode->i_op = &xfs_inode_operations; - init_special_inode(inode, inode->i_mode, inode->i_rdev); - break; - } - - xfs_iflags_clear(ip, XFS_INEW); - barrier(); - - unlock_new_inode(inode); -} diff --git a/fs/xfs/linux-2.6/xfs_iops.h b/fs/xfs/linux-2.6/xfs_iops.h deleted file mode 100644 index ef41c92..0000000 --- a/fs/xfs/linux-2.6/xfs_iops.h +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_IOPS_H__ -#define __XFS_IOPS_H__ - -struct xfs_inode; - -extern const struct file_operations xfs_file_operations; -extern const struct file_operations xfs_dir_file_operations; - -extern ssize_t xfs_vn_listxattr(struct dentry *, char *data, size_t size); - -extern void xfs_setup_inode(struct xfs_inode *); - -#endif /* __XFS_IOPS_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_linux.h b/fs/xfs/linux-2.6/xfs_linux.h deleted file mode 100644 index d42f814..0000000 --- a/fs/xfs/linux-2.6/xfs_linux.h +++ /dev/null @@ -1,310 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_LINUX__ -#define __XFS_LINUX__ - -#include - -/* - * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. - * XFS_BIG_INUMS requires XFS_BIG_BLKNOS to be set. - */ -#if defined(CONFIG_LBDAF) || (BITS_PER_LONG == 64) -# define XFS_BIG_BLKNOS 1 -# define XFS_BIG_INUMS 1 -#else -# define XFS_BIG_BLKNOS 0 -# define XFS_BIG_INUMS 0 -#endif - -#include - -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef __BIG_ENDIAN -#define XFS_NATIVE_HOST 1 -#else -#undef XFS_NATIVE_HOST -#endif - -/* - * Feature macros (disable/enable) - */ -#ifdef CONFIG_SMP -#define HAVE_PERCPU_SB /* per cpu superblock counters are a 2.6 feature */ -#else -#undef HAVE_PERCPU_SB /* per cpu superblock counters are a 2.6 feature */ -#endif - -#define irix_sgid_inherit xfs_params.sgid_inherit.val -#define irix_symlink_mode xfs_params.symlink_mode.val -#define xfs_panic_mask xfs_params.panic_mask.val -#define xfs_error_level xfs_params.error_level.val -#define xfs_syncd_centisecs xfs_params.syncd_timer.val -#define xfs_stats_clear xfs_params.stats_clear.val -#define xfs_inherit_sync xfs_params.inherit_sync.val -#define xfs_inherit_nodump xfs_params.inherit_nodump.val -#define xfs_inherit_noatime xfs_params.inherit_noatim.val -#define xfs_buf_timer_centisecs xfs_params.xfs_buf_timer.val -#define xfs_buf_age_centisecs xfs_params.xfs_buf_age.val -#define xfs_inherit_nosymlinks xfs_params.inherit_nosym.val -#define xfs_rotorstep xfs_params.rotorstep.val -#define xfs_inherit_nodefrag xfs_params.inherit_nodfrg.val -#define xfs_fstrm_centisecs xfs_params.fstrm_timer.val - -#define current_cpu() (raw_smp_processor_id()) -#define current_pid() (current->pid) -#define current_test_flags(f) (current->flags & (f)) -#define current_set_flags_nested(sp, f) \ - (*(sp) = current->flags, current->flags |= (f)) -#define current_clear_flags_nested(sp, f) \ - (*(sp) = current->flags, current->flags &= ~(f)) -#define current_restore_flags_nested(sp, f) \ - (current->flags = ((current->flags & ~(f)) | (*(sp) & (f)))) - -#define spinlock_destroy(lock) - -#define NBBY 8 /* number of bits per byte */ - -/* - * Size of block device i/o is parameterized here. - * Currently the system supports page-sized i/o. - */ -#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT -#define BLKDEV_IOSIZE (1<> 32; - __low = c; - if (__high) { - __upper = __high % (b); - __high = __high / (b); - } - asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper)); - asm("":"=A" (c):"a" (__low),"d" (__high)); - *(__u64 *)a = c; - return __mod; - } - } - - /* NOTREACHED */ - return 0; -} - -/* Side effect free 64 bit mod operation */ -static inline __u32 xfs_do_mod(void *a, __u32 b, int n) -{ - switch (n) { - case 4: - return *(__u32 *)a % b; - case 8: - { - unsigned long __upper, __low, __high, __mod; - __u64 c = *(__u64 *)a; - __upper = __high = c >> 32; - __low = c; - if (__high) { - __upper = __high % (b); - __high = __high / (b); - } - asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper)); - asm("":"=A" (c):"a" (__low),"d" (__high)); - return __mod; - } - } - - /* NOTREACHED */ - return 0; -} -#else -static inline __u32 xfs_do_div(void *a, __u32 b, int n) -{ - __u32 mod; - - switch (n) { - case 4: - mod = *(__u32 *)a % b; - *(__u32 *)a = *(__u32 *)a / b; - return mod; - case 8: - mod = do_div(*(__u64 *)a, b); - return mod; - } - - /* NOTREACHED */ - return 0; -} - -/* Side effect free 64 bit mod operation */ -static inline __u32 xfs_do_mod(void *a, __u32 b, int n) -{ - switch (n) { - case 4: - return *(__u32 *)a % b; - case 8: - { - __u64 c = *(__u64 *)a; - return do_div(c, b); - } - } - - /* NOTREACHED */ - return 0; -} -#endif - -#undef do_div -#define do_div(a, b) xfs_do_div(&(a), (b), sizeof(a)) -#define do_mod(a, b) xfs_do_mod(&(a), (b), sizeof(a)) - -static inline __uint64_t roundup_64(__uint64_t x, __uint32_t y) -{ - x += y - 1; - do_div(x, y); - return(x * y); -} - -static inline __uint64_t howmany_64(__uint64_t x, __uint32_t y) -{ - x += y - 1; - do_div(x, y); - return x; -} - -/* ARM old ABI has some weird alignment/padding */ -#if defined(__arm__) && !defined(__ARM_EABI__) -#define __arch_pack __attribute__((packed)) -#else -#define __arch_pack -#endif - -#define ASSERT_ALWAYS(expr) \ - (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__)) - -#ifndef DEBUG -#define ASSERT(expr) ((void)0) - -#ifndef STATIC -# define STATIC static noinline -#endif - -#else /* DEBUG */ - -#define ASSERT(expr) \ - (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__)) - -#ifndef STATIC -# define STATIC noinline -#endif - -#endif /* DEBUG */ - -#endif /* __XFS_LINUX__ */ diff --git a/fs/xfs/linux-2.6/xfs_message.c b/fs/xfs/linux-2.6/xfs_message.c deleted file mode 100644 index bd672de..0000000 --- a/fs/xfs/linux-2.6/xfs_message.c +++ /dev/null @@ -1,108 +0,0 @@ -/* - * Copyright (c) 2011 Red Hat, Inc. All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_types.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_mount.h" - -/* - * XFS logging functions - */ -static void -__xfs_printk( - const char *level, - const struct xfs_mount *mp, - struct va_format *vaf) -{ - if (mp && mp->m_fsname) { - printk("%sXFS (%s): %pV\n", level, mp->m_fsname, vaf); - return; - } - printk("%sXFS: %pV\n", level, vaf); -} - -#define define_xfs_printk_level(func, kern_level) \ -void func(const struct xfs_mount *mp, const char *fmt, ...) \ -{ \ - struct va_format vaf; \ - va_list args; \ - \ - va_start(args, fmt); \ - \ - vaf.fmt = fmt; \ - vaf.va = &args; \ - \ - __xfs_printk(kern_level, mp, &vaf); \ - va_end(args); \ -} \ - -define_xfs_printk_level(xfs_emerg, KERN_EMERG); -define_xfs_printk_level(xfs_alert, KERN_ALERT); -define_xfs_printk_level(xfs_crit, KERN_CRIT); -define_xfs_printk_level(xfs_err, KERN_ERR); -define_xfs_printk_level(xfs_warn, KERN_WARNING); -define_xfs_printk_level(xfs_notice, KERN_NOTICE); -define_xfs_printk_level(xfs_info, KERN_INFO); -#ifdef DEBUG -define_xfs_printk_level(xfs_debug, KERN_DEBUG); -#endif - -void -xfs_alert_tag( - const struct xfs_mount *mp, - int panic_tag, - const char *fmt, ...) -{ - struct va_format vaf; - va_list args; - int do_panic = 0; - - if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) { - xfs_alert(mp, "Transforming an alert into a BUG."); - do_panic = 1; - } - - va_start(args, fmt); - - vaf.fmt = fmt; - vaf.va = &args; - - __xfs_printk(KERN_ALERT, mp, &vaf); - va_end(args); - - BUG_ON(do_panic); -} - -void -assfail(char *expr, char *file, int line) -{ - xfs_emerg(NULL, "Assertion failed: %s, file: %s, line: %d", - expr, file, line); - BUG(); -} - -void -xfs_hex_dump(void *p, int length) -{ - print_hex_dump(KERN_ALERT, "", DUMP_PREFIX_ADDRESS, 16, 1, p, length, 1); -} diff --git a/fs/xfs/linux-2.6/xfs_message.h b/fs/xfs/linux-2.6/xfs_message.h deleted file mode 100644 index 7fb7ea0..0000000 --- a/fs/xfs/linux-2.6/xfs_message.h +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef __XFS_MESSAGE_H -#define __XFS_MESSAGE_H 1 - -struct xfs_mount; - -extern void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_alert_tag(const struct xfs_mount *mp, int tag, - const char *fmt, ...) - __attribute__ ((format (printf, 3, 4))); -extern void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_err(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_warn(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_notice(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -extern void xfs_info(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); - -#ifdef DEBUG -extern void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...) - __attribute__ ((format (printf, 2, 3))); -#else -static inline void -__attribute__ ((format (printf, 2, 3))) -xfs_debug(const struct xfs_mount *mp, const char *fmt, ...) -{ -} -#endif - -extern void assfail(char *expr, char *f, int l); - -extern void xfs_hex_dump(void *p, int length); - -#endif /* __XFS_MESSAGE_H */ diff --git a/fs/xfs/linux-2.6/xfs_quotaops.c b/fs/xfs/linux-2.6/xfs_quotaops.c deleted file mode 100644 index 29b9d64..0000000 --- a/fs/xfs/linux-2.6/xfs_quotaops.c +++ /dev/null @@ -1,139 +0,0 @@ -/* - * Copyright (c) 2008, Christoph Hellwig - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_sb.h" -#include "xfs_inum.h" -#include "xfs_log.h" -#include "xfs_ag.h" -#include "xfs_mount.h" -#include "xfs_quota.h" -#include "xfs_trans.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "quota/xfs_qm.h" -#include - - -STATIC int -xfs_quota_type(int type) -{ - switch (type) { - case USRQUOTA: - return XFS_DQ_USER; - case GRPQUOTA: - return XFS_DQ_GROUP; - default: - return XFS_DQ_PROJ; - } -} - -STATIC int -xfs_fs_get_xstate( - struct super_block *sb, - struct fs_quota_stat *fqs) -{ - struct xfs_mount *mp = XFS_M(sb); - - if (!XFS_IS_QUOTA_RUNNING(mp)) - return -ENOSYS; - return -xfs_qm_scall_getqstat(mp, fqs); -} - -STATIC int -xfs_fs_set_xstate( - struct super_block *sb, - unsigned int uflags, - int op) -{ - struct xfs_mount *mp = XFS_M(sb); - unsigned int flags = 0; - - if (sb->s_flags & MS_RDONLY) - return -EROFS; - if (op != Q_XQUOTARM && !XFS_IS_QUOTA_RUNNING(mp)) - return -ENOSYS; - - if (uflags & FS_QUOTA_UDQ_ACCT) - flags |= XFS_UQUOTA_ACCT; - if (uflags & FS_QUOTA_PDQ_ACCT) - flags |= XFS_PQUOTA_ACCT; - if (uflags & FS_QUOTA_GDQ_ACCT) - flags |= XFS_GQUOTA_ACCT; - if (uflags & FS_QUOTA_UDQ_ENFD) - flags |= XFS_UQUOTA_ENFD; - if (uflags & (FS_QUOTA_PDQ_ENFD|FS_QUOTA_GDQ_ENFD)) - flags |= XFS_OQUOTA_ENFD; - - switch (op) { - case Q_XQUOTAON: - return -xfs_qm_scall_quotaon(mp, flags); - case Q_XQUOTAOFF: - if (!XFS_IS_QUOTA_ON(mp)) - return -EINVAL; - return -xfs_qm_scall_quotaoff(mp, flags); - case Q_XQUOTARM: - if (XFS_IS_QUOTA_ON(mp)) - return -EINVAL; - return -xfs_qm_scall_trunc_qfiles(mp, flags); - } - - return -EINVAL; -} - -STATIC int -xfs_fs_get_dqblk( - struct super_block *sb, - int type, - qid_t id, - struct fs_disk_quota *fdq) -{ - struct xfs_mount *mp = XFS_M(sb); - - if (!XFS_IS_QUOTA_RUNNING(mp)) - return -ENOSYS; - if (!XFS_IS_QUOTA_ON(mp)) - return -ESRCH; - - return -xfs_qm_scall_getquota(mp, id, xfs_quota_type(type), fdq); -} - -STATIC int -xfs_fs_set_dqblk( - struct super_block *sb, - int type, - qid_t id, - struct fs_disk_quota *fdq) -{ - struct xfs_mount *mp = XFS_M(sb); - - if (sb->s_flags & MS_RDONLY) - return -EROFS; - if (!XFS_IS_QUOTA_RUNNING(mp)) - return -ENOSYS; - if (!XFS_IS_QUOTA_ON(mp)) - return -ESRCH; - - return -xfs_qm_scall_setqlim(mp, id, xfs_quota_type(type), fdq); -} - -const struct quotactl_ops xfs_quotactl_operations = { - .get_xstate = xfs_fs_get_xstate, - .set_xstate = xfs_fs_set_xstate, - .get_dqblk = xfs_fs_get_dqblk, - .set_dqblk = xfs_fs_set_dqblk, -}; diff --git a/fs/xfs/linux-2.6/xfs_stats.c b/fs/xfs/linux-2.6/xfs_stats.c deleted file mode 100644 index 76fdc58..0000000 --- a/fs/xfs/linux-2.6/xfs_stats.c +++ /dev/null @@ -1,122 +0,0 @@ -/* - * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include - -DEFINE_PER_CPU(struct xfsstats, xfsstats); - -static int xfs_stat_proc_show(struct seq_file *m, void *v) -{ - int c, i, j, val; - __uint64_t xs_xstrat_bytes = 0; - __uint64_t xs_write_bytes = 0; - __uint64_t xs_read_bytes = 0; - - static const struct xstats_entry { - char *desc; - int endpoint; - } xstats[] = { - { "extent_alloc", XFSSTAT_END_EXTENT_ALLOC }, - { "abt", XFSSTAT_END_ALLOC_BTREE }, - { "blk_map", XFSSTAT_END_BLOCK_MAPPING }, - { "bmbt", XFSSTAT_END_BLOCK_MAP_BTREE }, - { "dir", XFSSTAT_END_DIRECTORY_OPS }, - { "trans", XFSSTAT_END_TRANSACTIONS }, - { "ig", XFSSTAT_END_INODE_OPS }, - { "log", XFSSTAT_END_LOG_OPS }, - { "push_ail", XFSSTAT_END_TAIL_PUSHING }, - { "xstrat", XFSSTAT_END_WRITE_CONVERT }, - { "rw", XFSSTAT_END_READ_WRITE_OPS }, - { "attr", XFSSTAT_END_ATTRIBUTE_OPS }, - { "icluster", XFSSTAT_END_INODE_CLUSTER }, - { "vnodes", XFSSTAT_END_VNODE_OPS }, - { "buf", XFSSTAT_END_BUF }, - { "abtb2", XFSSTAT_END_ABTB_V2 }, - { "abtc2", XFSSTAT_END_ABTC_V2 }, - { "bmbt2", XFSSTAT_END_BMBT_V2 }, - { "ibt2", XFSSTAT_END_IBT_V2 }, - }; - - /* Loop over all stats groups */ - for (i=j = 0; i < ARRAY_SIZE(xstats); i++) { - seq_printf(m, "%s", xstats[i].desc); - /* inner loop does each group */ - while (j < xstats[i].endpoint) { - val = 0; - /* sum over all cpus */ - for_each_possible_cpu(c) - val += *(((__u32*)&per_cpu(xfsstats, c) + j)); - seq_printf(m, " %u", val); - j++; - } - seq_putc(m, '\n'); - } - /* extra precision counters */ - for_each_possible_cpu(i) { - xs_xstrat_bytes += per_cpu(xfsstats, i).xs_xstrat_bytes; - xs_write_bytes += per_cpu(xfsstats, i).xs_write_bytes; - xs_read_bytes += per_cpu(xfsstats, i).xs_read_bytes; - } - - seq_printf(m, "xpc %Lu %Lu %Lu\n", - xs_xstrat_bytes, xs_write_bytes, xs_read_bytes); - seq_printf(m, "debug %u\n", -#if defined(DEBUG) - 1); -#else - 0); -#endif - return 0; -} - -static int xfs_stat_proc_open(struct inode *inode, struct file *file) -{ - return single_open(file, xfs_stat_proc_show, NULL); -} - -static const struct file_operations xfs_stat_proc_fops = { - .owner = THIS_MODULE, - .open = xfs_stat_proc_open, - .read = seq_read, - .llseek = seq_lseek, - .release = single_release, -}; - -int -xfs_init_procfs(void) -{ - if (!proc_mkdir("fs/xfs", NULL)) - goto out; - - if (!proc_create("fs/xfs/stat", 0, NULL, - &xfs_stat_proc_fops)) - goto out_remove_entry; - return 0; - - out_remove_entry: - remove_proc_entry("fs/xfs", NULL); - out: - return -ENOMEM; -} - -void -xfs_cleanup_procfs(void) -{ - remove_proc_entry("fs/xfs/stat", NULL); - remove_proc_entry("fs/xfs", NULL); -} diff --git a/fs/xfs/linux-2.6/xfs_stats.h b/fs/xfs/linux-2.6/xfs_stats.h deleted file mode 100644 index 736854b..0000000 --- a/fs/xfs/linux-2.6/xfs_stats.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright (c) 2000,2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_STATS_H__ -#define __XFS_STATS_H__ - - -#if defined(CONFIG_PROC_FS) && !defined(XFS_STATS_OFF) - -#include - -/* - * XFS global statistics - */ -struct xfsstats { -# define XFSSTAT_END_EXTENT_ALLOC 4 - __uint32_t xs_allocx; - __uint32_t xs_allocb; - __uint32_t xs_freex; - __uint32_t xs_freeb; -# define XFSSTAT_END_ALLOC_BTREE (XFSSTAT_END_EXTENT_ALLOC+4) - __uint32_t xs_abt_lookup; - __uint32_t xs_abt_compare; - __uint32_t xs_abt_insrec; - __uint32_t xs_abt_delrec; -# define XFSSTAT_END_BLOCK_MAPPING (XFSSTAT_END_ALLOC_BTREE+7) - __uint32_t xs_blk_mapr; - __uint32_t xs_blk_mapw; - __uint32_t xs_blk_unmap; - __uint32_t xs_add_exlist; - __uint32_t xs_del_exlist; - __uint32_t xs_look_exlist; - __uint32_t xs_cmp_exlist; -# define XFSSTAT_END_BLOCK_MAP_BTREE (XFSSTAT_END_BLOCK_MAPPING+4) - __uint32_t xs_bmbt_lookup; - __uint32_t xs_bmbt_compare; - __uint32_t xs_bmbt_insrec; - __uint32_t xs_bmbt_delrec; -# define XFSSTAT_END_DIRECTORY_OPS (XFSSTAT_END_BLOCK_MAP_BTREE+4) - __uint32_t xs_dir_lookup; - __uint32_t xs_dir_create; - __uint32_t xs_dir_remove; - __uint32_t xs_dir_getdents; -# define XFSSTAT_END_TRANSACTIONS (XFSSTAT_END_DIRECTORY_OPS+3) - __uint32_t xs_trans_sync; - __uint32_t xs_trans_async; - __uint32_t xs_trans_empty; -# define XFSSTAT_END_INODE_OPS (XFSSTAT_END_TRANSACTIONS+7) - __uint32_t xs_ig_attempts; - __uint32_t xs_ig_found; - __uint32_t xs_ig_frecycle; - __uint32_t xs_ig_missed; - __uint32_t xs_ig_dup; - __uint32_t xs_ig_reclaims; - __uint32_t xs_ig_attrchg; -# define XFSSTAT_END_LOG_OPS (XFSSTAT_END_INODE_OPS+5) - __uint32_t xs_log_writes; - __uint32_t xs_log_blocks; - __uint32_t xs_log_noiclogs; - __uint32_t xs_log_force; - __uint32_t xs_log_force_sleep; -# define XFSSTAT_END_TAIL_PUSHING (XFSSTAT_END_LOG_OPS+10) - __uint32_t xs_try_logspace; - __uint32_t xs_sleep_logspace; - __uint32_t xs_push_ail; - __uint32_t xs_push_ail_success; - __uint32_t xs_push_ail_pushbuf; - __uint32_t xs_push_ail_pinned; - __uint32_t xs_push_ail_locked; - __uint32_t xs_push_ail_flushing; - __uint32_t xs_push_ail_restarts; - __uint32_t xs_push_ail_flush; -# define XFSSTAT_END_WRITE_CONVERT (XFSSTAT_END_TAIL_PUSHING+2) - __uint32_t xs_xstrat_quick; - __uint32_t xs_xstrat_split; -# define XFSSTAT_END_READ_WRITE_OPS (XFSSTAT_END_WRITE_CONVERT+2) - __uint32_t xs_write_calls; - __uint32_t xs_read_calls; -# define XFSSTAT_END_ATTRIBUTE_OPS (XFSSTAT_END_READ_WRITE_OPS+4) - __uint32_t xs_attr_get; - __uint32_t xs_attr_set; - __uint32_t xs_attr_remove; - __uint32_t xs_attr_list; -# define XFSSTAT_END_INODE_CLUSTER (XFSSTAT_END_ATTRIBUTE_OPS+3) - __uint32_t xs_iflush_count; - __uint32_t xs_icluster_flushcnt; - __uint32_t xs_icluster_flushinode; -# define XFSSTAT_END_VNODE_OPS (XFSSTAT_END_INODE_CLUSTER+8) - __uint32_t vn_active; /* # vnodes not on free lists */ - __uint32_t vn_alloc; /* # times vn_alloc called */ - __uint32_t vn_get; /* # times vn_get called */ - __uint32_t vn_hold; /* # times vn_hold called */ - __uint32_t vn_rele; /* # times vn_rele called */ - __uint32_t vn_reclaim; /* # times vn_reclaim called */ - __uint32_t vn_remove; /* # times vn_remove called */ - __uint32_t vn_free; /* # times vn_free called */ -#define XFSSTAT_END_BUF (XFSSTAT_END_VNODE_OPS+9) - __uint32_t xb_get; - __uint32_t xb_create; - __uint32_t xb_get_locked; - __uint32_t xb_get_locked_waited; - __uint32_t xb_busy_locked; - __uint32_t xb_miss_locked; - __uint32_t xb_page_retries; - __uint32_t xb_page_found; - __uint32_t xb_get_read; -/* Version 2 btree counters */ -#define XFSSTAT_END_ABTB_V2 (XFSSTAT_END_BUF+15) - __uint32_t xs_abtb_2_lookup; - __uint32_t xs_abtb_2_compare; - __uint32_t xs_abtb_2_insrec; - __uint32_t xs_abtb_2_delrec; - __uint32_t xs_abtb_2_newroot; - __uint32_t xs_abtb_2_killroot; - __uint32_t xs_abtb_2_increment; - __uint32_t xs_abtb_2_decrement; - __uint32_t xs_abtb_2_lshift; - __uint32_t xs_abtb_2_rshift; - __uint32_t xs_abtb_2_split; - __uint32_t xs_abtb_2_join; - __uint32_t xs_abtb_2_alloc; - __uint32_t xs_abtb_2_free; - __uint32_t xs_abtb_2_moves; -#define XFSSTAT_END_ABTC_V2 (XFSSTAT_END_ABTB_V2+15) - __uint32_t xs_abtc_2_lookup; - __uint32_t xs_abtc_2_compare; - __uint32_t xs_abtc_2_insrec; - __uint32_t xs_abtc_2_delrec; - __uint32_t xs_abtc_2_newroot; - __uint32_t xs_abtc_2_killroot; - __uint32_t xs_abtc_2_increment; - __uint32_t xs_abtc_2_decrement; - __uint32_t xs_abtc_2_lshift; - __uint32_t xs_abtc_2_rshift; - __uint32_t xs_abtc_2_split; - __uint32_t xs_abtc_2_join; - __uint32_t xs_abtc_2_alloc; - __uint32_t xs_abtc_2_free; - __uint32_t xs_abtc_2_moves; -#define XFSSTAT_END_BMBT_V2 (XFSSTAT_END_ABTC_V2+15) - __uint32_t xs_bmbt_2_lookup; - __uint32_t xs_bmbt_2_compare; - __uint32_t xs_bmbt_2_insrec; - __uint32_t xs_bmbt_2_delrec; - __uint32_t xs_bmbt_2_newroot; - __uint32_t xs_bmbt_2_killroot; - __uint32_t xs_bmbt_2_increment; - __uint32_t xs_bmbt_2_decrement; - __uint32_t xs_bmbt_2_lshift; - __uint32_t xs_bmbt_2_rshift; - __uint32_t xs_bmbt_2_split; - __uint32_t xs_bmbt_2_join; - __uint32_t xs_bmbt_2_alloc; - __uint32_t xs_bmbt_2_free; - __uint32_t xs_bmbt_2_moves; -#define XFSSTAT_END_IBT_V2 (XFSSTAT_END_BMBT_V2+15) - __uint32_t xs_ibt_2_lookup; - __uint32_t xs_ibt_2_compare; - __uint32_t xs_ibt_2_insrec; - __uint32_t xs_ibt_2_delrec; - __uint32_t xs_ibt_2_newroot; - __uint32_t xs_ibt_2_killroot; - __uint32_t xs_ibt_2_increment; - __uint32_t xs_ibt_2_decrement; - __uint32_t xs_ibt_2_lshift; - __uint32_t xs_ibt_2_rshift; - __uint32_t xs_ibt_2_split; - __uint32_t xs_ibt_2_join; - __uint32_t xs_ibt_2_alloc; - __uint32_t xs_ibt_2_free; - __uint32_t xs_ibt_2_moves; -/* Extra precision counters */ - __uint64_t xs_xstrat_bytes; - __uint64_t xs_write_bytes; - __uint64_t xs_read_bytes; -}; - -DECLARE_PER_CPU(struct xfsstats, xfsstats); - -/* - * We don't disable preempt, not too worried about poking the - * wrong CPU's stat for now (also aggregated before reporting). - */ -#define XFS_STATS_INC(v) (per_cpu(xfsstats, current_cpu()).v++) -#define XFS_STATS_DEC(v) (per_cpu(xfsstats, current_cpu()).v--) -#define XFS_STATS_ADD(v, inc) (per_cpu(xfsstats, current_cpu()).v += (inc)) - -extern int xfs_init_procfs(void); -extern void xfs_cleanup_procfs(void); - - -#else /* !CONFIG_PROC_FS */ - -# define XFS_STATS_INC(count) -# define XFS_STATS_DEC(count) -# define XFS_STATS_ADD(count, inc) - -static inline int xfs_init_procfs(void) -{ - return 0; -} - -static inline void xfs_cleanup_procfs(void) -{ -} - -#endif /* !CONFIG_PROC_FS */ - -#endif /* __XFS_STATS_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_super.c b/fs/xfs/linux-2.6/xfs_super.c deleted file mode 100644 index 25fd2cd..0000000 --- a/fs/xfs/linux-2.6/xfs_super.c +++ /dev/null @@ -1,1766 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "xfs.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_dir2.h" -#include "xfs_alloc.h" -#include "xfs_quota.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_alloc_btree.h" -#include "xfs_ialloc_btree.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_btree.h" -#include "xfs_ialloc.h" -#include "xfs_bmap.h" -#include "xfs_rtalloc.h" -#include "xfs_error.h" -#include "xfs_itable.h" -#include "xfs_fsops.h" -#include "xfs_attr.h" -#include "xfs_buf_item.h" -#include "xfs_utils.h" -#include "xfs_vnodeops.h" -#include "xfs_log_priv.h" -#include "xfs_trans_priv.h" -#include "xfs_filestream.h" -#include "xfs_da_btree.h" -#include "xfs_extfree_item.h" -#include "xfs_mru_cache.h" -#include "xfs_inode_item.h" -#include "xfs_sync.h" -#include "xfs_trace.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -static const struct super_operations xfs_super_operations; -static kmem_zone_t *xfs_ioend_zone; -mempool_t *xfs_ioend_pool; - -#define MNTOPT_LOGBUFS "logbufs" /* number of XFS log buffers */ -#define MNTOPT_LOGBSIZE "logbsize" /* size of XFS log buffers */ -#define MNTOPT_LOGDEV "logdev" /* log device */ -#define MNTOPT_RTDEV "rtdev" /* realtime I/O device */ -#define MNTOPT_BIOSIZE "biosize" /* log2 of preferred buffered io size */ -#define MNTOPT_WSYNC "wsync" /* safe-mode nfs compatible mount */ -#define MNTOPT_NOALIGN "noalign" /* turn off stripe alignment */ -#define MNTOPT_SWALLOC "swalloc" /* turn on stripe width allocation */ -#define MNTOPT_SUNIT "sunit" /* data volume stripe unit */ -#define MNTOPT_SWIDTH "swidth" /* data volume stripe width */ -#define MNTOPT_NOUUID "nouuid" /* ignore filesystem UUID */ -#define MNTOPT_MTPT "mtpt" /* filesystem mount point */ -#define MNTOPT_GRPID "grpid" /* group-ID from parent directory */ -#define MNTOPT_NOGRPID "nogrpid" /* group-ID from current process */ -#define MNTOPT_BSDGROUPS "bsdgroups" /* group-ID from parent directory */ -#define MNTOPT_SYSVGROUPS "sysvgroups" /* group-ID from current process */ -#define MNTOPT_ALLOCSIZE "allocsize" /* preferred allocation size */ -#define MNTOPT_NORECOVERY "norecovery" /* don't run XFS recovery */ -#define MNTOPT_BARRIER "barrier" /* use writer barriers for log write and - * unwritten extent conversion */ -#define MNTOPT_NOBARRIER "nobarrier" /* .. disable */ -#define MNTOPT_64BITINODE "inode64" /* inodes can be allocated anywhere */ -#define MNTOPT_IKEEP "ikeep" /* do not free empty inode clusters */ -#define MNTOPT_NOIKEEP "noikeep" /* free empty inode clusters */ -#define MNTOPT_LARGEIO "largeio" /* report large I/O sizes in stat() */ -#define MNTOPT_NOLARGEIO "nolargeio" /* do not report large I/O sizes - * in stat(). */ -#define MNTOPT_ATTR2 "attr2" /* do use attr2 attribute format */ -#define MNTOPT_NOATTR2 "noattr2" /* do not use attr2 attribute format */ -#define MNTOPT_FILESTREAM "filestreams" /* use filestreams allocator */ -#define MNTOPT_QUOTA "quota" /* disk quotas (user) */ -#define MNTOPT_NOQUOTA "noquota" /* no quotas */ -#define MNTOPT_USRQUOTA "usrquota" /* user quota enabled */ -#define MNTOPT_GRPQUOTA "grpquota" /* group quota enabled */ -#define MNTOPT_PRJQUOTA "prjquota" /* project quota enabled */ -#define MNTOPT_UQUOTA "uquota" /* user quota (IRIX variant) */ -#define MNTOPT_GQUOTA "gquota" /* group quota (IRIX variant) */ -#define MNTOPT_PQUOTA "pquota" /* project quota (IRIX variant) */ -#define MNTOPT_UQUOTANOENF "uqnoenforce"/* user quota limit enforcement */ -#define MNTOPT_GQUOTANOENF "gqnoenforce"/* group quota limit enforcement */ -#define MNTOPT_PQUOTANOENF "pqnoenforce"/* project quota limit enforcement */ -#define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */ -#define MNTOPT_DELAYLOG "delaylog" /* Delayed logging enabled */ -#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */ -#define MNTOPT_DISCARD "discard" /* Discard unused blocks */ -#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */ - -/* - * Table driven mount option parser. - * - * Currently only used for remount, but it will be used for mount - * in the future, too. - */ -enum { - Opt_barrier, Opt_nobarrier, Opt_err -}; - -static const match_table_t tokens = { - {Opt_barrier, "barrier"}, - {Opt_nobarrier, "nobarrier"}, - {Opt_err, NULL} -}; - - -STATIC unsigned long -suffix_strtoul(char *s, char **endp, unsigned int base) -{ - int last, shift_left_factor = 0; - char *value = s; - - last = strlen(value) - 1; - if (value[last] == 'K' || value[last] == 'k') { - shift_left_factor = 10; - value[last] = '\0'; - } - if (value[last] == 'M' || value[last] == 'm') { - shift_left_factor = 20; - value[last] = '\0'; - } - if (value[last] == 'G' || value[last] == 'g') { - shift_left_factor = 30; - value[last] = '\0'; - } - - return simple_strtoul((const char *)s, endp, base) << shift_left_factor; -} - -/* - * This function fills in xfs_mount_t fields based on mount args. - * Note: the superblock has _not_ yet been read in. - * - * Note that this function leaks the various device name allocations on - * failure. The caller takes care of them. - */ -STATIC int -xfs_parseargs( - struct xfs_mount *mp, - char *options) -{ - struct super_block *sb = mp->m_super; - char *this_char, *value, *eov; - int dsunit = 0; - int dswidth = 0; - int iosize = 0; - __uint8_t iosizelog = 0; - - /* - * set up the mount name first so all the errors will refer to the - * correct device. - */ - mp->m_fsname = kstrndup(sb->s_id, MAXNAMELEN, GFP_KERNEL); - if (!mp->m_fsname) - return ENOMEM; - mp->m_fsname_len = strlen(mp->m_fsname) + 1; - - /* - * Copy binary VFS mount flags we are interested in. - */ - if (sb->s_flags & MS_RDONLY) - mp->m_flags |= XFS_MOUNT_RDONLY; - if (sb->s_flags & MS_DIRSYNC) - mp->m_flags |= XFS_MOUNT_DIRSYNC; - if (sb->s_flags & MS_SYNCHRONOUS) - mp->m_flags |= XFS_MOUNT_WSYNC; - - /* - * Set some default flags that could be cleared by the mount option - * parsing. - */ - mp->m_flags |= XFS_MOUNT_BARRIER; - mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; - mp->m_flags |= XFS_MOUNT_SMALL_INUMS; - mp->m_flags |= XFS_MOUNT_DELAYLOG; - - /* - * These can be overridden by the mount option parsing. - */ - mp->m_logbufs = -1; - mp->m_logbsize = -1; - - if (!options) - goto done; - - while ((this_char = strsep(&options, ",")) != NULL) { - if (!*this_char) - continue; - if ((value = strchr(this_char, '=')) != NULL) - *value++ = 0; - - if (!strcmp(this_char, MNTOPT_LOGBUFS)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - mp->m_logbufs = simple_strtoul(value, &eov, 10); - } else if (!strcmp(this_char, MNTOPT_LOGBSIZE)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - mp->m_logbsize = suffix_strtoul(value, &eov, 10); - } else if (!strcmp(this_char, MNTOPT_LOGDEV)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - mp->m_logname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); - if (!mp->m_logname) - return ENOMEM; - } else if (!strcmp(this_char, MNTOPT_MTPT)) { - xfs_warn(mp, "%s option not allowed on this system", - this_char); - return EINVAL; - } else if (!strcmp(this_char, MNTOPT_RTDEV)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - mp->m_rtname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); - if (!mp->m_rtname) - return ENOMEM; - } else if (!strcmp(this_char, MNTOPT_BIOSIZE)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - iosize = simple_strtoul(value, &eov, 10); - iosizelog = ffs(iosize) - 1; - } else if (!strcmp(this_char, MNTOPT_ALLOCSIZE)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - iosize = suffix_strtoul(value, &eov, 10); - iosizelog = ffs(iosize) - 1; - } else if (!strcmp(this_char, MNTOPT_GRPID) || - !strcmp(this_char, MNTOPT_BSDGROUPS)) { - mp->m_flags |= XFS_MOUNT_GRPID; - } else if (!strcmp(this_char, MNTOPT_NOGRPID) || - !strcmp(this_char, MNTOPT_SYSVGROUPS)) { - mp->m_flags &= ~XFS_MOUNT_GRPID; - } else if (!strcmp(this_char, MNTOPT_WSYNC)) { - mp->m_flags |= XFS_MOUNT_WSYNC; - } else if (!strcmp(this_char, MNTOPT_NORECOVERY)) { - mp->m_flags |= XFS_MOUNT_NORECOVERY; - } else if (!strcmp(this_char, MNTOPT_NOALIGN)) { - mp->m_flags |= XFS_MOUNT_NOALIGN; - } else if (!strcmp(this_char, MNTOPT_SWALLOC)) { - mp->m_flags |= XFS_MOUNT_SWALLOC; - } else if (!strcmp(this_char, MNTOPT_SUNIT)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - dsunit = simple_strtoul(value, &eov, 10); - } else if (!strcmp(this_char, MNTOPT_SWIDTH)) { - if (!value || !*value) { - xfs_warn(mp, "%s option requires an argument", - this_char); - return EINVAL; - } - dswidth = simple_strtoul(value, &eov, 10); - } else if (!strcmp(this_char, MNTOPT_64BITINODE)) { - mp->m_flags &= ~XFS_MOUNT_SMALL_INUMS; -#if !XFS_BIG_INUMS - xfs_warn(mp, "%s option not allowed on this system", - this_char); - return EINVAL; -#endif - } else if (!strcmp(this_char, MNTOPT_NOUUID)) { - mp->m_flags |= XFS_MOUNT_NOUUID; - } else if (!strcmp(this_char, MNTOPT_BARRIER)) { - mp->m_flags |= XFS_MOUNT_BARRIER; - } else if (!strcmp(this_char, MNTOPT_NOBARRIER)) { - mp->m_flags &= ~XFS_MOUNT_BARRIER; - } else if (!strcmp(this_char, MNTOPT_IKEEP)) { - mp->m_flags |= XFS_MOUNT_IKEEP; - } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { - mp->m_flags &= ~XFS_MOUNT_IKEEP; - } else if (!strcmp(this_char, MNTOPT_LARGEIO)) { - mp->m_flags &= ~XFS_MOUNT_COMPAT_IOSIZE; - } else if (!strcmp(this_char, MNTOPT_NOLARGEIO)) { - mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; - } else if (!strcmp(this_char, MNTOPT_ATTR2)) { - mp->m_flags |= XFS_MOUNT_ATTR2; - } else if (!strcmp(this_char, MNTOPT_NOATTR2)) { - mp->m_flags &= ~XFS_MOUNT_ATTR2; - mp->m_flags |= XFS_MOUNT_NOATTR2; - } else if (!strcmp(this_char, MNTOPT_FILESTREAM)) { - mp->m_flags |= XFS_MOUNT_FILESTREAMS; - } else if (!strcmp(this_char, MNTOPT_NOQUOTA)) { - mp->m_qflags &= ~(XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | - XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | - XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE | - XFS_UQUOTA_ENFD | XFS_OQUOTA_ENFD); - } else if (!strcmp(this_char, MNTOPT_QUOTA) || - !strcmp(this_char, MNTOPT_UQUOTA) || - !strcmp(this_char, MNTOPT_USRQUOTA)) { - mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | - XFS_UQUOTA_ENFD); - } else if (!strcmp(this_char, MNTOPT_QUOTANOENF) || - !strcmp(this_char, MNTOPT_UQUOTANOENF)) { - mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE); - mp->m_qflags &= ~XFS_UQUOTA_ENFD; - } else if (!strcmp(this_char, MNTOPT_PQUOTA) || - !strcmp(this_char, MNTOPT_PRJQUOTA)) { - mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE | - XFS_OQUOTA_ENFD); - } else if (!strcmp(this_char, MNTOPT_PQUOTANOENF)) { - mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE); - mp->m_qflags &= ~XFS_OQUOTA_ENFD; - } else if (!strcmp(this_char, MNTOPT_GQUOTA) || - !strcmp(this_char, MNTOPT_GRPQUOTA)) { - mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | - XFS_OQUOTA_ENFD); - } else if (!strcmp(this_char, MNTOPT_GQUOTANOENF)) { - mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE); - mp->m_qflags &= ~XFS_OQUOTA_ENFD; - } else if (!strcmp(this_char, MNTOPT_DELAYLOG)) { - mp->m_flags |= XFS_MOUNT_DELAYLOG; - } else if (!strcmp(this_char, MNTOPT_NODELAYLOG)) { - mp->m_flags &= ~XFS_MOUNT_DELAYLOG; - } else if (!strcmp(this_char, MNTOPT_DISCARD)) { - mp->m_flags |= XFS_MOUNT_DISCARD; - } else if (!strcmp(this_char, MNTOPT_NODISCARD)) { - mp->m_flags &= ~XFS_MOUNT_DISCARD; - } else if (!strcmp(this_char, "ihashsize")) { - xfs_warn(mp, - "ihashsize no longer used, option is deprecated."); - } else if (!strcmp(this_char, "osyncisdsync")) { - xfs_warn(mp, - "osyncisdsync has no effect, option is deprecated."); - } else if (!strcmp(this_char, "osyncisosync")) { - xfs_warn(mp, - "osyncisosync has no effect, option is deprecated."); - } else if (!strcmp(this_char, "irixsgid")) { - xfs_warn(mp, - "irixsgid is now a sysctl(2) variable, option is deprecated."); - } else { - xfs_warn(mp, "unknown mount option [%s].", this_char); - return EINVAL; - } - } - - /* - * no recovery flag requires a read-only mount - */ - if ((mp->m_flags & XFS_MOUNT_NORECOVERY) && - !(mp->m_flags & XFS_MOUNT_RDONLY)) { - xfs_warn(mp, "no-recovery mounts must be read-only."); - return EINVAL; - } - - if ((mp->m_flags & XFS_MOUNT_NOALIGN) && (dsunit || dswidth)) { - xfs_warn(mp, - "sunit and swidth options incompatible with the noalign option"); - return EINVAL; - } - - if ((mp->m_flags & XFS_MOUNT_DISCARD) && - !(mp->m_flags & XFS_MOUNT_DELAYLOG)) { - xfs_warn(mp, - "the discard option is incompatible with the nodelaylog option"); - return EINVAL; - } - -#ifndef CONFIG_XFS_QUOTA - if (XFS_IS_QUOTA_RUNNING(mp)) { - xfs_warn(mp, "quota support not available in this kernel."); - return EINVAL; - } -#endif - - if ((mp->m_qflags & (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE)) && - (mp->m_qflags & (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE))) { - xfs_warn(mp, "cannot mount with both project and group quota"); - return EINVAL; - } - - if ((dsunit && !dswidth) || (!dsunit && dswidth)) { - xfs_warn(mp, "sunit and swidth must be specified together"); - return EINVAL; - } - - if (dsunit && (dswidth % dsunit != 0)) { - xfs_warn(mp, - "stripe width (%d) must be a multiple of the stripe unit (%d)", - dswidth, dsunit); - return EINVAL; - } - -done: - if (!(mp->m_flags & XFS_MOUNT_NOALIGN)) { - /* - * At this point the superblock has not been read - * in, therefore we do not know the block size. - * Before the mount call ends we will convert - * these to FSBs. - */ - if (dsunit) { - mp->m_dalign = dsunit; - mp->m_flags |= XFS_MOUNT_RETERR; - } - - if (dswidth) - mp->m_swidth = dswidth; - } - - if (mp->m_logbufs != -1 && - mp->m_logbufs != 0 && - (mp->m_logbufs < XLOG_MIN_ICLOGS || - mp->m_logbufs > XLOG_MAX_ICLOGS)) { - xfs_warn(mp, "invalid logbufs value: %d [not %d-%d]", - mp->m_logbufs, XLOG_MIN_ICLOGS, XLOG_MAX_ICLOGS); - return XFS_ERROR(EINVAL); - } - if (mp->m_logbsize != -1 && - mp->m_logbsize != 0 && - (mp->m_logbsize < XLOG_MIN_RECORD_BSIZE || - mp->m_logbsize > XLOG_MAX_RECORD_BSIZE || - !is_power_of_2(mp->m_logbsize))) { - xfs_warn(mp, - "invalid logbufsize: %d [not 16k,32k,64k,128k or 256k]", - mp->m_logbsize); - return XFS_ERROR(EINVAL); - } - - if (iosizelog) { - if (iosizelog > XFS_MAX_IO_LOG || - iosizelog < XFS_MIN_IO_LOG) { - xfs_warn(mp, "invalid log iosize: %d [not %d-%d]", - iosizelog, XFS_MIN_IO_LOG, - XFS_MAX_IO_LOG); - return XFS_ERROR(EINVAL); - } - - mp->m_flags |= XFS_MOUNT_DFLT_IOSIZE; - mp->m_readio_log = iosizelog; - mp->m_writeio_log = iosizelog; - } - - return 0; -} - -struct proc_xfs_info { - int flag; - char *str; -}; - -STATIC int -xfs_showargs( - struct xfs_mount *mp, - struct seq_file *m) -{ - static struct proc_xfs_info xfs_info_set[] = { - /* the few simple ones we can get from the mount struct */ - { XFS_MOUNT_IKEEP, "," MNTOPT_IKEEP }, - { XFS_MOUNT_WSYNC, "," MNTOPT_WSYNC }, - { XFS_MOUNT_NOALIGN, "," MNTOPT_NOALIGN }, - { XFS_MOUNT_SWALLOC, "," MNTOPT_SWALLOC }, - { XFS_MOUNT_NOUUID, "," MNTOPT_NOUUID }, - { XFS_MOUNT_NORECOVERY, "," MNTOPT_NORECOVERY }, - { XFS_MOUNT_ATTR2, "," MNTOPT_ATTR2 }, - { XFS_MOUNT_FILESTREAMS, "," MNTOPT_FILESTREAM }, - { XFS_MOUNT_GRPID, "," MNTOPT_GRPID }, - { XFS_MOUNT_DELAYLOG, "," MNTOPT_DELAYLOG }, - { XFS_MOUNT_DISCARD, "," MNTOPT_DISCARD }, - { 0, NULL } - }; - static struct proc_xfs_info xfs_info_unset[] = { - /* the few simple ones we can get from the mount struct */ - { XFS_MOUNT_COMPAT_IOSIZE, "," MNTOPT_LARGEIO }, - { XFS_MOUNT_BARRIER, "," MNTOPT_NOBARRIER }, - { XFS_MOUNT_SMALL_INUMS, "," MNTOPT_64BITINODE }, - { 0, NULL } - }; - struct proc_xfs_info *xfs_infop; - - for (xfs_infop = xfs_info_set; xfs_infop->flag; xfs_infop++) { - if (mp->m_flags & xfs_infop->flag) - seq_puts(m, xfs_infop->str); - } - for (xfs_infop = xfs_info_unset; xfs_infop->flag; xfs_infop++) { - if (!(mp->m_flags & xfs_infop->flag)) - seq_puts(m, xfs_infop->str); - } - - if (mp->m_flags & XFS_MOUNT_DFLT_IOSIZE) - seq_printf(m, "," MNTOPT_ALLOCSIZE "=%dk", - (int)(1 << mp->m_writeio_log) >> 10); - - if (mp->m_logbufs > 0) - seq_printf(m, "," MNTOPT_LOGBUFS "=%d", mp->m_logbufs); - if (mp->m_logbsize > 0) - seq_printf(m, "," MNTOPT_LOGBSIZE "=%dk", mp->m_logbsize >> 10); - - if (mp->m_logname) - seq_printf(m, "," MNTOPT_LOGDEV "=%s", mp->m_logname); - if (mp->m_rtname) - seq_printf(m, "," MNTOPT_RTDEV "=%s", mp->m_rtname); - - if (mp->m_dalign > 0) - seq_printf(m, "," MNTOPT_SUNIT "=%d", - (int)XFS_FSB_TO_BB(mp, mp->m_dalign)); - if (mp->m_swidth > 0) - seq_printf(m, "," MNTOPT_SWIDTH "=%d", - (int)XFS_FSB_TO_BB(mp, mp->m_swidth)); - - if (mp->m_qflags & (XFS_UQUOTA_ACCT|XFS_UQUOTA_ENFD)) - seq_puts(m, "," MNTOPT_USRQUOTA); - else if (mp->m_qflags & XFS_UQUOTA_ACCT) - seq_puts(m, "," MNTOPT_UQUOTANOENF); - - /* Either project or group quotas can be active, not both */ - - if (mp->m_qflags & XFS_PQUOTA_ACCT) { - if (mp->m_qflags & XFS_OQUOTA_ENFD) - seq_puts(m, "," MNTOPT_PRJQUOTA); - else - seq_puts(m, "," MNTOPT_PQUOTANOENF); - } else if (mp->m_qflags & XFS_GQUOTA_ACCT) { - if (mp->m_qflags & XFS_OQUOTA_ENFD) - seq_puts(m, "," MNTOPT_GRPQUOTA); - else - seq_puts(m, "," MNTOPT_GQUOTANOENF); - } - - if (!(mp->m_qflags & XFS_ALL_QUOTA_ACCT)) - seq_puts(m, "," MNTOPT_NOQUOTA); - - return 0; -} -__uint64_t -xfs_max_file_offset( - unsigned int blockshift) -{ - unsigned int pagefactor = 1; - unsigned int bitshift = BITS_PER_LONG - 1; - - /* Figure out maximum filesize, on Linux this can depend on - * the filesystem blocksize (on 32 bit platforms). - * __block_write_begin does this in an [unsigned] long... - * page->index << (PAGE_CACHE_SHIFT - bbits) - * So, for page sized blocks (4K on 32 bit platforms), - * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is - * (((u64)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1) - * but for smaller blocksizes it is less (bbits = log2 bsize). - * Note1: get_block_t takes a long (implicit cast from above) - * Note2: The Large Block Device (LBD and HAVE_SECTOR_T) patch - * can optionally convert the [unsigned] long from above into - * an [unsigned] long long. - */ - -#if BITS_PER_LONG == 32 -# if defined(CONFIG_LBDAF) - ASSERT(sizeof(sector_t) == 8); - pagefactor = PAGE_CACHE_SIZE; - bitshift = BITS_PER_LONG; -# else - pagefactor = PAGE_CACHE_SIZE >> (PAGE_CACHE_SHIFT - blockshift); -# endif -#endif - - return (((__uint64_t)pagefactor) << bitshift) - 1; -} - -STATIC int -xfs_blkdev_get( - xfs_mount_t *mp, - const char *name, - struct block_device **bdevp) -{ - int error = 0; - - *bdevp = blkdev_get_by_path(name, FMODE_READ|FMODE_WRITE|FMODE_EXCL, - mp); - if (IS_ERR(*bdevp)) { - error = PTR_ERR(*bdevp); - xfs_warn(mp, "Invalid device [%s], error=%d\n", name, error); - } - - return -error; -} - -STATIC void -xfs_blkdev_put( - struct block_device *bdev) -{ - if (bdev) - blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); -} - -void -xfs_blkdev_issue_flush( - xfs_buftarg_t *buftarg) -{ - blkdev_issue_flush(buftarg->bt_bdev, GFP_KERNEL, NULL); -} - -STATIC void -xfs_close_devices( - struct xfs_mount *mp) -{ - if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) { - struct block_device *logdev = mp->m_logdev_targp->bt_bdev; - xfs_free_buftarg(mp, mp->m_logdev_targp); - xfs_blkdev_put(logdev); - } - if (mp->m_rtdev_targp) { - struct block_device *rtdev = mp->m_rtdev_targp->bt_bdev; - xfs_free_buftarg(mp, mp->m_rtdev_targp); - xfs_blkdev_put(rtdev); - } - xfs_free_buftarg(mp, mp->m_ddev_targp); -} - -/* - * The file system configurations are: - * (1) device (partition) with data and internal log - * (2) logical volume with data and log subvolumes. - * (3) logical volume with data, log, and realtime subvolumes. - * - * We only have to handle opening the log and realtime volumes here if - * they are present. The data subvolume has already been opened by - * get_sb_bdev() and is stored in sb->s_bdev. - */ -STATIC int -xfs_open_devices( - struct xfs_mount *mp) -{ - struct block_device *ddev = mp->m_super->s_bdev; - struct block_device *logdev = NULL, *rtdev = NULL; - int error; - - /* - * Open real time and log devices - order is important. - */ - if (mp->m_logname) { - error = xfs_blkdev_get(mp, mp->m_logname, &logdev); - if (error) - goto out; - } - - if (mp->m_rtname) { - error = xfs_blkdev_get(mp, mp->m_rtname, &rtdev); - if (error) - goto out_close_logdev; - - if (rtdev == ddev || rtdev == logdev) { - xfs_warn(mp, - "Cannot mount filesystem with identical rtdev and ddev/logdev."); - error = EINVAL; - goto out_close_rtdev; - } - } - - /* - * Setup xfs_mount buffer target pointers - */ - error = ENOMEM; - mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev, 0, mp->m_fsname); - if (!mp->m_ddev_targp) - goto out_close_rtdev; - - if (rtdev) { - mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev, 1, - mp->m_fsname); - if (!mp->m_rtdev_targp) - goto out_free_ddev_targ; - } - - if (logdev && logdev != ddev) { - mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev, 1, - mp->m_fsname); - if (!mp->m_logdev_targp) - goto out_free_rtdev_targ; - } else { - mp->m_logdev_targp = mp->m_ddev_targp; - } - - return 0; - - out_free_rtdev_targ: - if (mp->m_rtdev_targp) - xfs_free_buftarg(mp, mp->m_rtdev_targp); - out_free_ddev_targ: - xfs_free_buftarg(mp, mp->m_ddev_targp); - out_close_rtdev: - if (rtdev) - xfs_blkdev_put(rtdev); - out_close_logdev: - if (logdev && logdev != ddev) - xfs_blkdev_put(logdev); - out: - return error; -} - -/* - * Setup xfs_mount buffer target pointers based on superblock - */ -STATIC int -xfs_setup_devices( - struct xfs_mount *mp) -{ - int error; - - error = xfs_setsize_buftarg(mp->m_ddev_targp, mp->m_sb.sb_blocksize, - mp->m_sb.sb_sectsize); - if (error) - return error; - - if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) { - unsigned int log_sector_size = BBSIZE; - - if (xfs_sb_version_hassector(&mp->m_sb)) - log_sector_size = mp->m_sb.sb_logsectsize; - error = xfs_setsize_buftarg(mp->m_logdev_targp, - mp->m_sb.sb_blocksize, - log_sector_size); - if (error) - return error; - } - if (mp->m_rtdev_targp) { - error = xfs_setsize_buftarg(mp->m_rtdev_targp, - mp->m_sb.sb_blocksize, - mp->m_sb.sb_sectsize); - if (error) - return error; - } - - return 0; -} - -/* Catch misguided souls that try to use this interface on XFS */ -STATIC struct inode * -xfs_fs_alloc_inode( - struct super_block *sb) -{ - BUG(); - return NULL; -} - -/* - * Now that the generic code is guaranteed not to be accessing - * the linux inode, we can reclaim the inode. - */ -STATIC void -xfs_fs_destroy_inode( - struct inode *inode) -{ - struct xfs_inode *ip = XFS_I(inode); - - trace_xfs_destroy_inode(ip); - - XFS_STATS_INC(vn_reclaim); - - /* bad inode, get out here ASAP */ - if (is_bad_inode(inode)) - goto out_reclaim; - - xfs_ioend_wait(ip); - - ASSERT(XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0); - - /* - * We should never get here with one of the reclaim flags already set. - */ - ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIMABLE)); - ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIM)); - - /* - * We always use background reclaim here because even if the - * inode is clean, it still may be under IO and hence we have - * to take the flush lock. The background reclaim path handles - * this more efficiently than we can here, so simply let background - * reclaim tear down all inodes. - */ -out_reclaim: - xfs_inode_set_reclaim_tag(ip); -} - -/* - * Slab object creation initialisation for the XFS inode. - * This covers only the idempotent fields in the XFS inode; - * all other fields need to be initialised on allocation - * from the slab. This avoids the need to repeatedly initialise - * fields in the xfs inode that left in the initialise state - * when freeing the inode. - */ -STATIC void -xfs_fs_inode_init_once( - void *inode) -{ - struct xfs_inode *ip = inode; - - memset(ip, 0, sizeof(struct xfs_inode)); - - /* vfs inode */ - inode_init_once(VFS_I(ip)); - - /* xfs inode */ - atomic_set(&ip->i_iocount, 0); - atomic_set(&ip->i_pincount, 0); - spin_lock_init(&ip->i_flags_lock); - init_waitqueue_head(&ip->i_ipin_wait); - /* - * Because we want to use a counting completion, complete - * the flush completion once to allow a single access to - * the flush completion without blocking. - */ - init_completion(&ip->i_flush); - complete(&ip->i_flush); - - mrlock_init(&ip->i_lock, MRLOCK_ALLOW_EQUAL_PRI|MRLOCK_BARRIER, - "xfsino", ip->i_ino); -} - -/* - * Dirty the XFS inode when mark_inode_dirty_sync() is called so that - * we catch unlogged VFS level updates to the inode. - * - * We need the barrier() to maintain correct ordering between unlogged - * updates and the transaction commit code that clears the i_update_core - * field. This requires all updates to be completed before marking the - * inode dirty. - */ -STATIC void -xfs_fs_dirty_inode( - struct inode *inode, - int flags) -{ - barrier(); - XFS_I(inode)->i_update_core = 1; -} - -STATIC int -xfs_log_inode( - struct xfs_inode *ip) -{ - struct xfs_mount *mp = ip->i_mount; - struct xfs_trans *tp; - int error; - - xfs_iunlock(ip, XFS_ILOCK_SHARED); - tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS); - error = xfs_trans_reserve(tp, 0, XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0); - - if (error) { - xfs_trans_cancel(tp, 0); - /* we need to return with the lock hold shared */ - xfs_ilock(ip, XFS_ILOCK_SHARED); - return error; - } - - xfs_ilock(ip, XFS_ILOCK_EXCL); - - /* - * Note - it's possible that we might have pushed ourselves out of the - * way during trans_reserve which would flush the inode. But there's - * no guarantee that the inode buffer has actually gone out yet (it's - * delwri). Plus the buffer could be pinned anyway if it's part of - * an inode in another recent transaction. So we play it safe and - * fire off the transaction anyway. - */ - xfs_trans_ijoin(tp, ip); - xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - error = xfs_trans_commit(tp, 0); - xfs_ilock_demote(ip, XFS_ILOCK_EXCL); - - return error; -} - -STATIC int -xfs_fs_write_inode( - struct inode *inode, - struct writeback_control *wbc) -{ - struct xfs_inode *ip = XFS_I(inode); - struct xfs_mount *mp = ip->i_mount; - int error = EAGAIN; - - trace_xfs_write_inode(ip); - - if (XFS_FORCED_SHUTDOWN(mp)) - return XFS_ERROR(EIO); - - if (wbc->sync_mode == WB_SYNC_ALL) { - /* - * Make sure the inode has made it it into the log. Instead - * of forcing it all the way to stable storage using a - * synchronous transaction we let the log force inside the - * ->sync_fs call do that for thus, which reduces the number - * of synchronous log foces dramatically. - */ - xfs_ioend_wait(ip); - xfs_ilock(ip, XFS_ILOCK_SHARED); - if (ip->i_update_core) { - error = xfs_log_inode(ip); - if (error) - goto out_unlock; - } - } else { - /* - * We make this non-blocking if the inode is contended, return - * EAGAIN to indicate to the caller that they did not succeed. - * This prevents the flush path from blocking on inodes inside - * another operation right now, they get caught later by - * xfs_sync. - */ - if (!xfs_ilock_nowait(ip, XFS_ILOCK_SHARED)) - goto out; - - if (xfs_ipincount(ip) || !xfs_iflock_nowait(ip)) - goto out_unlock; - - /* - * Now we have the flush lock and the inode is not pinned, we - * can check if the inode is really clean as we know that - * there are no pending transaction completions, it is not - * waiting on the delayed write queue and there is no IO in - * progress. - */ - if (xfs_inode_clean(ip)) { - xfs_ifunlock(ip); - error = 0; - goto out_unlock; - } - error = xfs_iflush(ip, SYNC_TRYLOCK); - } - - out_unlock: - xfs_iunlock(ip, XFS_ILOCK_SHARED); - out: - /* - * if we failed to write out the inode then mark - * it dirty again so we'll try again later. - */ - if (error) - xfs_mark_inode_dirty_sync(ip); - return -error; -} - -STATIC void -xfs_fs_evict_inode( - struct inode *inode) -{ - xfs_inode_t *ip = XFS_I(inode); - - trace_xfs_evict_inode(ip); - - truncate_inode_pages(&inode->i_data, 0); - end_writeback(inode); - XFS_STATS_INC(vn_rele); - XFS_STATS_INC(vn_remove); - XFS_STATS_DEC(vn_active); - - /* - * The iolock is used by the file system to coordinate reads, - * writes, and block truncates. Up to this point the lock - * protected concurrent accesses by users of the inode. But - * from here forward we're doing some final processing of the - * inode because we're done with it, and although we reuse the - * iolock for protection it is really a distinct lock class - * (in the lockdep sense) from before. To keep lockdep happy - * (and basically indicate what we are doing), we explicitly - * re-init the iolock here. - */ - ASSERT(!rwsem_is_locked(&ip->i_iolock.mr_lock)); - mrlock_init(&ip->i_iolock, MRLOCK_BARRIER, "xfsio", ip->i_ino); - lockdep_set_class_and_name(&ip->i_iolock.mr_lock, - &xfs_iolock_reclaimable, "xfs_iolock_reclaimable"); - - xfs_inactive(ip); -} - -STATIC void -xfs_free_fsname( - struct xfs_mount *mp) -{ - kfree(mp->m_fsname); - kfree(mp->m_rtname); - kfree(mp->m_logname); -} - -STATIC void -xfs_fs_put_super( - struct super_block *sb) -{ - struct xfs_mount *mp = XFS_M(sb); - - /* - * Unregister the memory shrinker before we tear down the mount - * structure so we don't have memory reclaim racing with us here. - */ - xfs_inode_shrinker_unregister(mp); - xfs_syncd_stop(mp); - - /* - * Blow away any referenced inode in the filestreams cache. - * This can and will cause log traffic as inodes go inactive - * here. - */ - xfs_filestream_unmount(mp); - - XFS_bflush(mp->m_ddev_targp); - - xfs_unmountfs(mp); - xfs_freesb(mp); - xfs_icsb_destroy_counters(mp); - xfs_close_devices(mp); - xfs_free_fsname(mp); - kfree(mp); -} - -STATIC int -xfs_fs_sync_fs( - struct super_block *sb, - int wait) -{ - struct xfs_mount *mp = XFS_M(sb); - int error; - - /* - * Not much we can do for the first async pass. Writing out the - * superblock would be counter-productive as we are going to redirty - * when writing out other data and metadata (and writing out a single - * block is quite fast anyway). - * - * Try to asynchronously kick off quota syncing at least. - */ - if (!wait) { - xfs_qm_sync(mp, SYNC_TRYLOCK); - return 0; - } - - error = xfs_quiesce_data(mp); - if (error) - return -error; - - if (laptop_mode) { - /* - * The disk must be active because we're syncing. - * We schedule xfssyncd now (now that the disk is - * active) instead of later (when it might not be). - */ - flush_delayed_work_sync(&mp->m_sync_work); - } - - return 0; -} - -STATIC int -xfs_fs_statfs( - struct dentry *dentry, - struct kstatfs *statp) -{ - struct xfs_mount *mp = XFS_M(dentry->d_sb); - xfs_sb_t *sbp = &mp->m_sb; - struct xfs_inode *ip = XFS_I(dentry->d_inode); - __uint64_t fakeinos, id; - xfs_extlen_t lsize; - __int64_t ffree; - - statp->f_type = XFS_SB_MAGIC; - statp->f_namelen = MAXNAMELEN - 1; - - id = huge_encode_dev(mp->m_ddev_targp->bt_dev); - statp->f_fsid.val[0] = (u32)id; - statp->f_fsid.val[1] = (u32)(id >> 32); - - xfs_icsb_sync_counters(mp, XFS_ICSB_LAZY_COUNT); - - spin_lock(&mp->m_sb_lock); - statp->f_bsize = sbp->sb_blocksize; - lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0; - statp->f_blocks = sbp->sb_dblocks - lsize; - statp->f_bfree = statp->f_bavail = - sbp->sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp); - fakeinos = statp->f_bfree << sbp->sb_inopblog; - statp->f_files = - MIN(sbp->sb_icount + fakeinos, (__uint64_t)XFS_MAXINUMBER); - if (mp->m_maxicount) - statp->f_files = min_t(typeof(statp->f_files), - statp->f_files, - mp->m_maxicount); - - /* make sure statp->f_ffree does not underflow */ - ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); - statp->f_ffree = max_t(__int64_t, ffree, 0); - - spin_unlock(&mp->m_sb_lock); - - if ((ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) || - ((mp->m_qflags & (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD))) == - (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD)) - xfs_qm_statvfs(ip, statp); - return 0; -} - -STATIC void -xfs_save_resvblks(struct xfs_mount *mp) -{ - __uint64_t resblks = 0; - - mp->m_resblks_save = mp->m_resblks; - xfs_reserve_blocks(mp, &resblks, NULL); -} - -STATIC void -xfs_restore_resvblks(struct xfs_mount *mp) -{ - __uint64_t resblks; - - if (mp->m_resblks_save) { - resblks = mp->m_resblks_save; - mp->m_resblks_save = 0; - } else - resblks = xfs_default_resblks(mp); - - xfs_reserve_blocks(mp, &resblks, NULL); -} - -STATIC int -xfs_fs_remount( - struct super_block *sb, - int *flags, - char *options) -{ - struct xfs_mount *mp = XFS_M(sb); - substring_t args[MAX_OPT_ARGS]; - char *p; - int error; - - while ((p = strsep(&options, ",")) != NULL) { - int token; - - if (!*p) - continue; - - token = match_token(p, tokens, args); - switch (token) { - case Opt_barrier: - mp->m_flags |= XFS_MOUNT_BARRIER; - break; - case Opt_nobarrier: - mp->m_flags &= ~XFS_MOUNT_BARRIER; - break; - default: - /* - * Logically we would return an error here to prevent - * users from believing they might have changed - * mount options using remount which can't be changed. - * - * But unfortunately mount(8) adds all options from - * mtab and fstab to the mount arguments in some cases - * so we can't blindly reject options, but have to - * check for each specified option if it actually - * differs from the currently set option and only - * reject it if that's the case. - * - * Until that is implemented we return success for - * every remount request, and silently ignore all - * options that we can't actually change. - */ -#if 0 - xfs_info(mp, - "mount option \"%s\" not supported for remount\n", p); - return -EINVAL; -#else - break; -#endif - } - } - - /* ro -> rw */ - if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) { - mp->m_flags &= ~XFS_MOUNT_RDONLY; - - /* - * If this is the first remount to writeable state we - * might have some superblock changes to update. - */ - if (mp->m_update_flags) { - error = xfs_mount_log_sb(mp, mp->m_update_flags); - if (error) { - xfs_warn(mp, "failed to write sb changes"); - return error; - } - mp->m_update_flags = 0; - } - - /* - * Fill out the reserve pool if it is empty. Use the stashed - * value if it is non-zero, otherwise go with the default. - */ - xfs_restore_resvblks(mp); - } - - /* rw -> ro */ - if (!(mp->m_flags & XFS_MOUNT_RDONLY) && (*flags & MS_RDONLY)) { - /* - * After we have synced the data but before we sync the - * metadata, we need to free up the reserve block pool so that - * the used block count in the superblock on disk is correct at - * the end of the remount. Stash the current reserve pool size - * so that if we get remounted rw, we can return it to the same - * size. - */ - - xfs_quiesce_data(mp); - xfs_save_resvblks(mp); - xfs_quiesce_attr(mp); - mp->m_flags |= XFS_MOUNT_RDONLY; - } - - return 0; -} - -/* - * Second stage of a freeze. The data is already frozen so we only - * need to take care of the metadata. Once that's done write a dummy - * record to dirty the log in case of a crash while frozen. - */ -STATIC int -xfs_fs_freeze( - struct super_block *sb) -{ - struct xfs_mount *mp = XFS_M(sb); - - xfs_save_resvblks(mp); - xfs_quiesce_attr(mp); - return -xfs_fs_log_dummy(mp); -} - -STATIC int -xfs_fs_unfreeze( - struct super_block *sb) -{ - struct xfs_mount *mp = XFS_M(sb); - - xfs_restore_resvblks(mp); - return 0; -} - -STATIC int -xfs_fs_show_options( - struct seq_file *m, - struct vfsmount *mnt) -{ - return -xfs_showargs(XFS_M(mnt->mnt_sb), m); -} - -/* - * This function fills in xfs_mount_t fields based on mount args. - * Note: the superblock _has_ now been read in. - */ -STATIC int -xfs_finish_flags( - struct xfs_mount *mp) -{ - int ronly = (mp->m_flags & XFS_MOUNT_RDONLY); - - /* Fail a mount where the logbuf is smaller than the log stripe */ - if (xfs_sb_version_haslogv2(&mp->m_sb)) { - if (mp->m_logbsize <= 0 && - mp->m_sb.sb_logsunit > XLOG_BIG_RECORD_BSIZE) { - mp->m_logbsize = mp->m_sb.sb_logsunit; - } else if (mp->m_logbsize > 0 && - mp->m_logbsize < mp->m_sb.sb_logsunit) { - xfs_warn(mp, - "logbuf size must be greater than or equal to log stripe size"); - return XFS_ERROR(EINVAL); - } - } else { - /* Fail a mount if the logbuf is larger than 32K */ - if (mp->m_logbsize > XLOG_BIG_RECORD_BSIZE) { - xfs_warn(mp, - "logbuf size for version 1 logs must be 16K or 32K"); - return XFS_ERROR(EINVAL); - } - } - - /* - * mkfs'ed attr2 will turn on attr2 mount unless explicitly - * told by noattr2 to turn it off - */ - if (xfs_sb_version_hasattr2(&mp->m_sb) && - !(mp->m_flags & XFS_MOUNT_NOATTR2)) - mp->m_flags |= XFS_MOUNT_ATTR2; - - /* - * prohibit r/w mounts of read-only filesystems - */ - if ((mp->m_sb.sb_flags & XFS_SBF_READONLY) && !ronly) { - xfs_warn(mp, - "cannot mount a read-only filesystem as read-write"); - return XFS_ERROR(EROFS); - } - - return 0; -} - -STATIC int -xfs_fs_fill_super( - struct super_block *sb, - void *data, - int silent) -{ - struct inode *root; - struct xfs_mount *mp = NULL; - int flags = 0, error = ENOMEM; - - mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL); - if (!mp) - goto out; - - spin_lock_init(&mp->m_sb_lock); - mutex_init(&mp->m_growlock); - atomic_set(&mp->m_active_trans, 0); - - mp->m_super = sb; - sb->s_fs_info = mp; - - error = xfs_parseargs(mp, (char *)data); - if (error) - goto out_free_fsname; - - sb_min_blocksize(sb, BBSIZE); - sb->s_xattr = xfs_xattr_handlers; - sb->s_export_op = &xfs_export_operations; -#ifdef CONFIG_XFS_QUOTA - sb->s_qcop = &xfs_quotactl_operations; -#endif - sb->s_op = &xfs_super_operations; - - if (silent) - flags |= XFS_MFSI_QUIET; - - error = xfs_open_devices(mp); - if (error) - goto out_free_fsname; - - error = xfs_icsb_init_counters(mp); - if (error) - goto out_close_devices; - - error = xfs_readsb(mp, flags); - if (error) - goto out_destroy_counters; - - error = xfs_finish_flags(mp); - if (error) - goto out_free_sb; - - error = xfs_setup_devices(mp); - if (error) - goto out_free_sb; - - error = xfs_filestream_mount(mp); - if (error) - goto out_free_sb; - - /* - * we must configure the block size in the superblock before we run the - * full mount process as the mount process can lookup and cache inodes. - * For the same reason we must also initialise the syncd and register - * the inode cache shrinker so that inodes can be reclaimed during - * operations like a quotacheck that iterate all inodes in the - * filesystem. - */ - sb->s_magic = XFS_SB_MAGIC; - sb->s_blocksize = mp->m_sb.sb_blocksize; - sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; - sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits); - sb->s_time_gran = 1; - set_posix_acl_flag(sb); - - xfs_inode_shrinker_register(mp); - - error = xfs_mountfs(mp); - if (error) - goto out_filestream_unmount; - - error = xfs_syncd_init(mp); - if (error) - goto out_unmount; - - root = igrab(VFS_I(mp->m_rootip)); - if (!root) { - error = ENOENT; - goto out_syncd_stop; - } - if (is_bad_inode(root)) { - error = EINVAL; - goto out_syncd_stop; - } - sb->s_root = d_alloc_root(root); - if (!sb->s_root) { - error = ENOMEM; - goto out_iput; - } - - return 0; - - out_filestream_unmount: - xfs_inode_shrinker_unregister(mp); - xfs_filestream_unmount(mp); - out_free_sb: - xfs_freesb(mp); - out_destroy_counters: - xfs_icsb_destroy_counters(mp); - out_close_devices: - xfs_close_devices(mp); - out_free_fsname: - xfs_free_fsname(mp); - kfree(mp); - out: - return -error; - - out_iput: - iput(root); - out_syncd_stop: - xfs_syncd_stop(mp); - out_unmount: - xfs_inode_shrinker_unregister(mp); - - /* - * Blow away any referenced inode in the filestreams cache. - * This can and will cause log traffic as inodes go inactive - * here. - */ - xfs_filestream_unmount(mp); - - XFS_bflush(mp->m_ddev_targp); - - xfs_unmountfs(mp); - goto out_free_sb; -} - -STATIC struct dentry * -xfs_fs_mount( - struct file_system_type *fs_type, - int flags, - const char *dev_name, - void *data) -{ - return mount_bdev(fs_type, flags, dev_name, data, xfs_fs_fill_super); -} - -static const struct super_operations xfs_super_operations = { - .alloc_inode = xfs_fs_alloc_inode, - .destroy_inode = xfs_fs_destroy_inode, - .dirty_inode = xfs_fs_dirty_inode, - .write_inode = xfs_fs_write_inode, - .evict_inode = xfs_fs_evict_inode, - .put_super = xfs_fs_put_super, - .sync_fs = xfs_fs_sync_fs, - .freeze_fs = xfs_fs_freeze, - .unfreeze_fs = xfs_fs_unfreeze, - .statfs = xfs_fs_statfs, - .remount_fs = xfs_fs_remount, - .show_options = xfs_fs_show_options, -}; - -static struct file_system_type xfs_fs_type = { - .owner = THIS_MODULE, - .name = "xfs", - .mount = xfs_fs_mount, - .kill_sb = kill_block_super, - .fs_flags = FS_REQUIRES_DEV, -}; - -STATIC int __init -xfs_init_zones(void) -{ - - xfs_ioend_zone = kmem_zone_init(sizeof(xfs_ioend_t), "xfs_ioend"); - if (!xfs_ioend_zone) - goto out; - - xfs_ioend_pool = mempool_create_slab_pool(4 * MAX_BUF_PER_PAGE, - xfs_ioend_zone); - if (!xfs_ioend_pool) - goto out_destroy_ioend_zone; - - xfs_log_ticket_zone = kmem_zone_init(sizeof(xlog_ticket_t), - "xfs_log_ticket"); - if (!xfs_log_ticket_zone) - goto out_destroy_ioend_pool; - - xfs_bmap_free_item_zone = kmem_zone_init(sizeof(xfs_bmap_free_item_t), - "xfs_bmap_free_item"); - if (!xfs_bmap_free_item_zone) - goto out_destroy_log_ticket_zone; - - xfs_btree_cur_zone = kmem_zone_init(sizeof(xfs_btree_cur_t), - "xfs_btree_cur"); - if (!xfs_btree_cur_zone) - goto out_destroy_bmap_free_item_zone; - - xfs_da_state_zone = kmem_zone_init(sizeof(xfs_da_state_t), - "xfs_da_state"); - if (!xfs_da_state_zone) - goto out_destroy_btree_cur_zone; - - xfs_dabuf_zone = kmem_zone_init(sizeof(xfs_dabuf_t), "xfs_dabuf"); - if (!xfs_dabuf_zone) - goto out_destroy_da_state_zone; - - xfs_ifork_zone = kmem_zone_init(sizeof(xfs_ifork_t), "xfs_ifork"); - if (!xfs_ifork_zone) - goto out_destroy_dabuf_zone; - - xfs_trans_zone = kmem_zone_init(sizeof(xfs_trans_t), "xfs_trans"); - if (!xfs_trans_zone) - goto out_destroy_ifork_zone; - - xfs_log_item_desc_zone = - kmem_zone_init(sizeof(struct xfs_log_item_desc), - "xfs_log_item_desc"); - if (!xfs_log_item_desc_zone) - goto out_destroy_trans_zone; - - /* - * The size of the zone allocated buf log item is the maximum - * size possible under XFS. This wastes a little bit of memory, - * but it is much faster. - */ - xfs_buf_item_zone = kmem_zone_init((sizeof(xfs_buf_log_item_t) + - (((XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK) / - NBWORD) * sizeof(int))), "xfs_buf_item"); - if (!xfs_buf_item_zone) - goto out_destroy_log_item_desc_zone; - - xfs_efd_zone = kmem_zone_init((sizeof(xfs_efd_log_item_t) + - ((XFS_EFD_MAX_FAST_EXTENTS - 1) * - sizeof(xfs_extent_t))), "xfs_efd_item"); - if (!xfs_efd_zone) - goto out_destroy_buf_item_zone; - - xfs_efi_zone = kmem_zone_init((sizeof(xfs_efi_log_item_t) + - ((XFS_EFI_MAX_FAST_EXTENTS - 1) * - sizeof(xfs_extent_t))), "xfs_efi_item"); - if (!xfs_efi_zone) - goto out_destroy_efd_zone; - - xfs_inode_zone = - kmem_zone_init_flags(sizeof(xfs_inode_t), "xfs_inode", - KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | KM_ZONE_SPREAD, - xfs_fs_inode_init_once); - if (!xfs_inode_zone) - goto out_destroy_efi_zone; - - xfs_ili_zone = - kmem_zone_init_flags(sizeof(xfs_inode_log_item_t), "xfs_ili", - KM_ZONE_SPREAD, NULL); - if (!xfs_ili_zone) - goto out_destroy_inode_zone; - - return 0; - - out_destroy_inode_zone: - kmem_zone_destroy(xfs_inode_zone); - out_destroy_efi_zone: - kmem_zone_destroy(xfs_efi_zone); - out_destroy_efd_zone: - kmem_zone_destroy(xfs_efd_zone); - out_destroy_buf_item_zone: - kmem_zone_destroy(xfs_buf_item_zone); - out_destroy_log_item_desc_zone: - kmem_zone_destroy(xfs_log_item_desc_zone); - out_destroy_trans_zone: - kmem_zone_destroy(xfs_trans_zone); - out_destroy_ifork_zone: - kmem_zone_destroy(xfs_ifork_zone); - out_destroy_dabuf_zone: - kmem_zone_destroy(xfs_dabuf_zone); - out_destroy_da_state_zone: - kmem_zone_destroy(xfs_da_state_zone); - out_destroy_btree_cur_zone: - kmem_zone_destroy(xfs_btree_cur_zone); - out_destroy_bmap_free_item_zone: - kmem_zone_destroy(xfs_bmap_free_item_zone); - out_destroy_log_ticket_zone: - kmem_zone_destroy(xfs_log_ticket_zone); - out_destroy_ioend_pool: - mempool_destroy(xfs_ioend_pool); - out_destroy_ioend_zone: - kmem_zone_destroy(xfs_ioend_zone); - out: - return -ENOMEM; -} - -STATIC void -xfs_destroy_zones(void) -{ - kmem_zone_destroy(xfs_ili_zone); - kmem_zone_destroy(xfs_inode_zone); - kmem_zone_destroy(xfs_efi_zone); - kmem_zone_destroy(xfs_efd_zone); - kmem_zone_destroy(xfs_buf_item_zone); - kmem_zone_destroy(xfs_log_item_desc_zone); - kmem_zone_destroy(xfs_trans_zone); - kmem_zone_destroy(xfs_ifork_zone); - kmem_zone_destroy(xfs_dabuf_zone); - kmem_zone_destroy(xfs_da_state_zone); - kmem_zone_destroy(xfs_btree_cur_zone); - kmem_zone_destroy(xfs_bmap_free_item_zone); - kmem_zone_destroy(xfs_log_ticket_zone); - mempool_destroy(xfs_ioend_pool); - kmem_zone_destroy(xfs_ioend_zone); - -} - -STATIC int __init -xfs_init_workqueues(void) -{ - /* - * max_active is set to 8 to give enough concurency to allow - * multiple work operations on each CPU to run. This allows multiple - * filesystems to be running sync work concurrently, and scales with - * the number of CPUs in the system. - */ - xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8); - if (!xfs_syncd_wq) - goto out; - - xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8); - if (!xfs_ail_wq) - goto out_destroy_syncd; - - return 0; - -out_destroy_syncd: - destroy_workqueue(xfs_syncd_wq); -out: - return -ENOMEM; -} - -STATIC void -xfs_destroy_workqueues(void) -{ - destroy_workqueue(xfs_ail_wq); - destroy_workqueue(xfs_syncd_wq); -} - -STATIC int __init -init_xfs_fs(void) -{ - int error; - - printk(KERN_INFO XFS_VERSION_STRING " with " - XFS_BUILD_OPTIONS " enabled\n"); - - xfs_ioend_init(); - xfs_dir_startup(); - - error = xfs_init_zones(); - if (error) - goto out; - - error = xfs_init_workqueues(); - if (error) - goto out_destroy_zones; - - error = xfs_mru_cache_init(); - if (error) - goto out_destroy_wq; - - error = xfs_filestream_init(); - if (error) - goto out_mru_cache_uninit; - - error = xfs_buf_init(); - if (error) - goto out_filestream_uninit; - - error = xfs_init_procfs(); - if (error) - goto out_buf_terminate; - - error = xfs_sysctl_register(); - if (error) - goto out_cleanup_procfs; - - vfs_initquota(); - - error = register_filesystem(&xfs_fs_type); - if (error) - goto out_sysctl_unregister; - return 0; - - out_sysctl_unregister: - xfs_sysctl_unregister(); - out_cleanup_procfs: - xfs_cleanup_procfs(); - out_buf_terminate: - xfs_buf_terminate(); - out_filestream_uninit: - xfs_filestream_uninit(); - out_mru_cache_uninit: - xfs_mru_cache_uninit(); - out_destroy_wq: - xfs_destroy_workqueues(); - out_destroy_zones: - xfs_destroy_zones(); - out: - return error; -} - -STATIC void __exit -exit_xfs_fs(void) -{ - vfs_exitquota(); - unregister_filesystem(&xfs_fs_type); - xfs_sysctl_unregister(); - xfs_cleanup_procfs(); - xfs_buf_terminate(); - xfs_filestream_uninit(); - xfs_mru_cache_uninit(); - xfs_destroy_workqueues(); - xfs_destroy_zones(); -} - -module_init(init_xfs_fs); -module_exit(exit_xfs_fs); - -MODULE_AUTHOR("Silicon Graphics, Inc."); -MODULE_DESCRIPTION(XFS_VERSION_STRING " with " XFS_BUILD_OPTIONS " enabled"); -MODULE_LICENSE("GPL"); diff --git a/fs/xfs/linux-2.6/xfs_super.h b/fs/xfs/linux-2.6/xfs_super.h deleted file mode 100644 index 50a3266..0000000 --- a/fs/xfs/linux-2.6/xfs_super.h +++ /dev/null @@ -1,87 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_SUPER_H__ -#define __XFS_SUPER_H__ - -#include - -#ifdef CONFIG_XFS_QUOTA -extern void xfs_qm_init(void); -extern void xfs_qm_exit(void); -# define vfs_initquota() xfs_qm_init() -# define vfs_exitquota() xfs_qm_exit() -#else -# define vfs_initquota() do { } while (0) -# define vfs_exitquota() do { } while (0) -#endif - -#ifdef CONFIG_XFS_POSIX_ACL -# define XFS_ACL_STRING "ACLs, " -# define set_posix_acl_flag(sb) ((sb)->s_flags |= MS_POSIXACL) -#else -# define XFS_ACL_STRING -# define set_posix_acl_flag(sb) do { } while (0) -#endif - -#define XFS_SECURITY_STRING "security attributes, " - -#ifdef CONFIG_XFS_RT -# define XFS_REALTIME_STRING "realtime, " -#else -# define XFS_REALTIME_STRING -#endif - -#if XFS_BIG_BLKNOS -# if XFS_BIG_INUMS -# define XFS_BIGFS_STRING "large block/inode numbers, " -# else -# define XFS_BIGFS_STRING "large block numbers, " -# endif -#else -# define XFS_BIGFS_STRING -#endif - -#ifdef DEBUG -# define XFS_DBG_STRING "debug" -#else -# define XFS_DBG_STRING "no debug" -#endif - -#define XFS_VERSION_STRING "SGI XFS" -#define XFS_BUILD_OPTIONS XFS_ACL_STRING \ - XFS_SECURITY_STRING \ - XFS_REALTIME_STRING \ - XFS_BIGFS_STRING \ - XFS_DBG_STRING /* DBG must be last */ - -struct xfs_inode; -struct xfs_mount; -struct xfs_buftarg; -struct block_device; - -extern __uint64_t xfs_max_file_offset(unsigned int); - -extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); - -extern const struct export_operations xfs_export_operations; -extern const struct xattr_handler *xfs_xattr_handlers[]; -extern const struct quotactl_ops xfs_quotactl_operations; - -#define XFS_M(sb) ((struct xfs_mount *)((sb)->s_fs_info)) - -#endif /* __XFS_SUPER_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c deleted file mode 100644 index 5cc158e..0000000 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ /dev/null @@ -1,1082 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_types.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_trans_priv.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_mount.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "xfs_dinode.h" -#include "xfs_error.h" -#include "xfs_filestream.h" -#include "xfs_vnodeops.h" -#include "xfs_inode_item.h" -#include "xfs_quota.h" -#include "xfs_trace.h" -#include "xfs_fsops.h" - -#include -#include - -struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ - -/* - * The inode lookup is done in batches to keep the amount of lock traffic and - * radix tree lookups to a minimum. The batch size is a trade off between - * lookup reduction and stack usage. This is in the reclaim path, so we can't - * be too greedy. - */ -#define XFS_LOOKUP_BATCH 32 - -STATIC int -xfs_inode_ag_walk_grab( - struct xfs_inode *ip) -{ - struct inode *inode = VFS_I(ip); - - ASSERT(rcu_read_lock_held()); - - /* - * check for stale RCU freed inode - * - * If the inode has been reallocated, it doesn't matter if it's not in - * the AG we are walking - we are walking for writeback, so if it - * passes all the "valid inode" checks and is dirty, then we'll write - * it back anyway. If it has been reallocated and still being - * initialised, the XFS_INEW check below will catch it. - */ - spin_lock(&ip->i_flags_lock); - if (!ip->i_ino) - goto out_unlock_noent; - - /* avoid new or reclaimable inodes. Leave for reclaim code to flush */ - if (__xfs_iflags_test(ip, XFS_INEW | XFS_IRECLAIMABLE | XFS_IRECLAIM)) - goto out_unlock_noent; - spin_unlock(&ip->i_flags_lock); - - /* nothing to sync during shutdown */ - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) - return EFSCORRUPTED; - - /* If we can't grab the inode, it must on it's way to reclaim. */ - if (!igrab(inode)) - return ENOENT; - - if (is_bad_inode(inode)) { - IRELE(ip); - return ENOENT; - } - - /* inode is valid */ - return 0; - -out_unlock_noent: - spin_unlock(&ip->i_flags_lock); - return ENOENT; -} - -STATIC int -xfs_inode_ag_walk( - struct xfs_mount *mp, - struct xfs_perag *pag, - int (*execute)(struct xfs_inode *ip, - struct xfs_perag *pag, int flags), - int flags) -{ - uint32_t first_index; - int last_error = 0; - int skipped; - int done; - int nr_found; - -restart: - done = 0; - skipped = 0; - first_index = 0; - nr_found = 0; - do { - struct xfs_inode *batch[XFS_LOOKUP_BATCH]; - int error = 0; - int i; - - rcu_read_lock(); - nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, - (void **)batch, first_index, - XFS_LOOKUP_BATCH); - if (!nr_found) { - rcu_read_unlock(); - break; - } - - /* - * Grab the inodes before we drop the lock. if we found - * nothing, nr == 0 and the loop will be skipped. - */ - for (i = 0; i < nr_found; i++) { - struct xfs_inode *ip = batch[i]; - - if (done || xfs_inode_ag_walk_grab(ip)) - batch[i] = NULL; - - /* - * Update the index for the next lookup. Catch - * overflows into the next AG range which can occur if - * we have inodes in the last block of the AG and we - * are currently pointing to the last inode. - * - * Because we may see inodes that are from the wrong AG - * due to RCU freeing and reallocation, only update the - * index if it lies in this AG. It was a race that lead - * us to see this inode, so another lookup from the - * same index will not find it again. - */ - if (XFS_INO_TO_AGNO(mp, ip->i_ino) != pag->pag_agno) - continue; - first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); - if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) - done = 1; - } - - /* unlock now we've grabbed the inodes. */ - rcu_read_unlock(); - - for (i = 0; i < nr_found; i++) { - if (!batch[i]) - continue; - error = execute(batch[i], pag, flags); - IRELE(batch[i]); - if (error == EAGAIN) { - skipped++; - continue; - } - if (error && last_error != EFSCORRUPTED) - last_error = error; - } - - /* bail out if the filesystem is corrupted. */ - if (error == EFSCORRUPTED) - break; - - } while (nr_found && !done); - - if (skipped) { - delay(1); - goto restart; - } - return last_error; -} - -int -xfs_inode_ag_iterator( - struct xfs_mount *mp, - int (*execute)(struct xfs_inode *ip, - struct xfs_perag *pag, int flags), - int flags) -{ - struct xfs_perag *pag; - int error = 0; - int last_error = 0; - xfs_agnumber_t ag; - - ag = 0; - while ((pag = xfs_perag_get(mp, ag))) { - ag = pag->pag_agno + 1; - error = xfs_inode_ag_walk(mp, pag, execute, flags); - xfs_perag_put(pag); - if (error) { - last_error = error; - if (error == EFSCORRUPTED) - break; - } - } - return XFS_ERROR(last_error); -} - -STATIC int -xfs_sync_inode_data( - struct xfs_inode *ip, - struct xfs_perag *pag, - int flags) -{ - struct inode *inode = VFS_I(ip); - struct address_space *mapping = inode->i_mapping; - int error = 0; - - if (!mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) - goto out_wait; - - if (!xfs_ilock_nowait(ip, XFS_IOLOCK_SHARED)) { - if (flags & SYNC_TRYLOCK) - goto out_wait; - xfs_ilock(ip, XFS_IOLOCK_SHARED); - } - - error = xfs_flush_pages(ip, 0, -1, (flags & SYNC_WAIT) ? - 0 : XBF_ASYNC, FI_NONE); - xfs_iunlock(ip, XFS_IOLOCK_SHARED); - - out_wait: - if (flags & SYNC_WAIT) - xfs_ioend_wait(ip); - return error; -} - -STATIC int -xfs_sync_inode_attr( - struct xfs_inode *ip, - struct xfs_perag *pag, - int flags) -{ - int error = 0; - - xfs_ilock(ip, XFS_ILOCK_SHARED); - if (xfs_inode_clean(ip)) - goto out_unlock; - if (!xfs_iflock_nowait(ip)) { - if (!(flags & SYNC_WAIT)) - goto out_unlock; - xfs_iflock(ip); - } - - if (xfs_inode_clean(ip)) { - xfs_ifunlock(ip); - goto out_unlock; - } - - error = xfs_iflush(ip, flags); - - /* - * We don't want to try again on non-blocking flushes that can't run - * again immediately. If an inode really must be written, then that's - * what the SYNC_WAIT flag is for. - */ - if (error == EAGAIN) { - ASSERT(!(flags & SYNC_WAIT)); - error = 0; - } - - out_unlock: - xfs_iunlock(ip, XFS_ILOCK_SHARED); - return error; -} - -/* - * Write out pagecache data for the whole filesystem. - */ -STATIC int -xfs_sync_data( - struct xfs_mount *mp, - int flags) -{ - int error; - - ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); - - error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags); - if (error) - return XFS_ERROR(error); - - xfs_log_force(mp, (flags & SYNC_WAIT) ? XFS_LOG_SYNC : 0); - return 0; -} - -/* - * Write out inode metadata (attributes) for the whole filesystem. - */ -STATIC int -xfs_sync_attr( - struct xfs_mount *mp, - int flags) -{ - ASSERT((flags & ~SYNC_WAIT) == 0); - - return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags); -} - -STATIC int -xfs_sync_fsdata( - struct xfs_mount *mp) -{ - struct xfs_buf *bp; - - /* - * If the buffer is pinned then push on the log so we won't get stuck - * waiting in the write for someone, maybe ourselves, to flush the log. - * - * Even though we just pushed the log above, we did not have the - * superblock buffer locked at that point so it can become pinned in - * between there and here. - */ - bp = xfs_getsb(mp, 0); - if (XFS_BUF_ISPINNED(bp)) - xfs_log_force(mp, 0); - - return xfs_bwrite(mp, bp); -} - -/* - * When remounting a filesystem read-only or freezing the filesystem, we have - * two phases to execute. This first phase is syncing the data before we - * quiesce the filesystem, and the second is flushing all the inodes out after - * we've waited for all the transactions created by the first phase to - * complete. The second phase ensures that the inodes are written to their - * location on disk rather than just existing in transactions in the log. This - * means after a quiesce there is no log replay required to write the inodes to - * disk (this is the main difference between a sync and a quiesce). - */ -/* - * First stage of freeze - no writers will make progress now we are here, - * so we flush delwri and delalloc buffers here, then wait for all I/O to - * complete. Data is frozen at that point. Metadata is not frozen, - * transactions can still occur here so don't bother flushing the buftarg - * because it'll just get dirty again. - */ -int -xfs_quiesce_data( - struct xfs_mount *mp) -{ - int error, error2 = 0; - - xfs_qm_sync(mp, SYNC_TRYLOCK); - xfs_qm_sync(mp, SYNC_WAIT); - - /* force out the newly dirtied log buffers */ - xfs_log_force(mp, XFS_LOG_SYNC); - - /* write superblock and hoover up shutdown errors */ - error = xfs_sync_fsdata(mp); - - /* make sure all delwri buffers are written out */ - xfs_flush_buftarg(mp->m_ddev_targp, 1); - - /* mark the log as covered if needed */ - if (xfs_log_need_covered(mp)) - error2 = xfs_fs_log_dummy(mp); - - /* flush data-only devices */ - if (mp->m_rtdev_targp) - XFS_bflush(mp->m_rtdev_targp); - - return error ? error : error2; -} - -STATIC void -xfs_quiesce_fs( - struct xfs_mount *mp) -{ - int count = 0, pincount; - - xfs_reclaim_inodes(mp, 0); - xfs_flush_buftarg(mp->m_ddev_targp, 0); - - /* - * This loop must run at least twice. The first instance of the loop - * will flush most meta data but that will generate more meta data - * (typically directory updates). Which then must be flushed and - * logged before we can write the unmount record. We also so sync - * reclaim of inodes to catch any that the above delwri flush skipped. - */ - do { - xfs_reclaim_inodes(mp, SYNC_WAIT); - xfs_sync_attr(mp, SYNC_WAIT); - pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); - if (!pincount) { - delay(50); - count++; - } - } while (count < 2); -} - -/* - * Second stage of a quiesce. The data is already synced, now we have to take - * care of the metadata. New transactions are already blocked, so we need to - * wait for any remaining transactions to drain out before proceeding. - */ -void -xfs_quiesce_attr( - struct xfs_mount *mp) -{ - int error = 0; - - /* wait for all modifications to complete */ - while (atomic_read(&mp->m_active_trans) > 0) - delay(100); - - /* flush inodes and push all remaining buffers out to disk */ - xfs_quiesce_fs(mp); - - /* - * Just warn here till VFS can correctly support - * read-only remount without racing. - */ - WARN_ON(atomic_read(&mp->m_active_trans) != 0); - - /* Push the superblock and write an unmount record */ - error = xfs_log_sbcount(mp); - if (error) - xfs_warn(mp, "xfs_attr_quiesce: failed to log sb changes. " - "Frozen image may not be consistent."); - xfs_log_unmount_write(mp); - xfs_unmountfs_writesb(mp); -} - -static void -xfs_syncd_queue_sync( - struct xfs_mount *mp) -{ - queue_delayed_work(xfs_syncd_wq, &mp->m_sync_work, - msecs_to_jiffies(xfs_syncd_centisecs * 10)); -} - -/* - * Every sync period we need to unpin all items, reclaim inodes and sync - * disk quotas. We might need to cover the log to indicate that the - * filesystem is idle and not frozen. - */ -STATIC void -xfs_sync_worker( - struct work_struct *work) -{ - struct xfs_mount *mp = container_of(to_delayed_work(work), - struct xfs_mount, m_sync_work); - int error; - - if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { - /* dgc: errors ignored here */ - if (mp->m_super->s_frozen == SB_UNFROZEN && - xfs_log_need_covered(mp)) - error = xfs_fs_log_dummy(mp); - else - xfs_log_force(mp, 0); - error = xfs_qm_sync(mp, SYNC_TRYLOCK); - - /* start pushing all the metadata that is currently dirty */ - xfs_ail_push_all(mp->m_ail); - } - - /* queue us up again */ - xfs_syncd_queue_sync(mp); -} - -/* - * Queue a new inode reclaim pass if there are reclaimable inodes and there - * isn't a reclaim pass already in progress. By default it runs every 5s based - * on the xfs syncd work default of 30s. Perhaps this should have it's own - * tunable, but that can be done if this method proves to be ineffective or too - * aggressive. - */ -static void -xfs_syncd_queue_reclaim( - struct xfs_mount *mp) -{ - - /* - * We can have inodes enter reclaim after we've shut down the syncd - * workqueue during unmount, so don't allow reclaim work to be queued - * during unmount. - */ - if (!(mp->m_super->s_flags & MS_ACTIVE)) - return; - - rcu_read_lock(); - if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_RECLAIM_TAG)) { - queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, - msecs_to_jiffies(xfs_syncd_centisecs / 6 * 10)); - } - rcu_read_unlock(); -} - -/* - * This is a fast pass over the inode cache to try to get reclaim moving on as - * many inodes as possible in a short period of time. It kicks itself every few - * seconds, as well as being kicked by the inode cache shrinker when memory - * goes low. It scans as quickly as possible avoiding locked inodes or those - * already being flushed, and once done schedules a future pass. - */ -STATIC void -xfs_reclaim_worker( - struct work_struct *work) -{ - struct xfs_mount *mp = container_of(to_delayed_work(work), - struct xfs_mount, m_reclaim_work); - - xfs_reclaim_inodes(mp, SYNC_TRYLOCK); - xfs_syncd_queue_reclaim(mp); -} - -/* - * Flush delayed allocate data, attempting to free up reserved space - * from existing allocations. At this point a new allocation attempt - * has failed with ENOSPC and we are in the process of scratching our - * heads, looking about for more room. - * - * Queue a new data flush if there isn't one already in progress and - * wait for completion of the flush. This means that we only ever have one - * inode flush in progress no matter how many ENOSPC events are occurring and - * so will prevent the system from bogging down due to every concurrent - * ENOSPC event scanning all the active inodes in the system for writeback. - */ -void -xfs_flush_inodes( - struct xfs_inode *ip) -{ - struct xfs_mount *mp = ip->i_mount; - - queue_work(xfs_syncd_wq, &mp->m_flush_work); - flush_work_sync(&mp->m_flush_work); -} - -STATIC void -xfs_flush_worker( - struct work_struct *work) -{ - struct xfs_mount *mp = container_of(work, - struct xfs_mount, m_flush_work); - - xfs_sync_data(mp, SYNC_TRYLOCK); - xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); -} - -int -xfs_syncd_init( - struct xfs_mount *mp) -{ - INIT_WORK(&mp->m_flush_work, xfs_flush_worker); - INIT_DELAYED_WORK(&mp->m_sync_work, xfs_sync_worker); - INIT_DELAYED_WORK(&mp->m_reclaim_work, xfs_reclaim_worker); - - xfs_syncd_queue_sync(mp); - xfs_syncd_queue_reclaim(mp); - - return 0; -} - -void -xfs_syncd_stop( - struct xfs_mount *mp) -{ - cancel_delayed_work_sync(&mp->m_sync_work); - cancel_delayed_work_sync(&mp->m_reclaim_work); - cancel_work_sync(&mp->m_flush_work); -} - -void -__xfs_inode_set_reclaim_tag( - struct xfs_perag *pag, - struct xfs_inode *ip) -{ - radix_tree_tag_set(&pag->pag_ici_root, - XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino), - XFS_ICI_RECLAIM_TAG); - - if (!pag->pag_ici_reclaimable) { - /* propagate the reclaim tag up into the perag radix tree */ - spin_lock(&ip->i_mount->m_perag_lock); - radix_tree_tag_set(&ip->i_mount->m_perag_tree, - XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino), - XFS_ICI_RECLAIM_TAG); - spin_unlock(&ip->i_mount->m_perag_lock); - - /* schedule periodic background inode reclaim */ - xfs_syncd_queue_reclaim(ip->i_mount); - - trace_xfs_perag_set_reclaim(ip->i_mount, pag->pag_agno, - -1, _RET_IP_); - } - pag->pag_ici_reclaimable++; -} - -/* - * We set the inode flag atomically with the radix tree tag. - * Once we get tag lookups on the radix tree, this inode flag - * can go away. - */ -void -xfs_inode_set_reclaim_tag( - xfs_inode_t *ip) -{ - struct xfs_mount *mp = ip->i_mount; - struct xfs_perag *pag; - - pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); - spin_lock(&pag->pag_ici_lock); - spin_lock(&ip->i_flags_lock); - __xfs_inode_set_reclaim_tag(pag, ip); - __xfs_iflags_set(ip, XFS_IRECLAIMABLE); - spin_unlock(&ip->i_flags_lock); - spin_unlock(&pag->pag_ici_lock); - xfs_perag_put(pag); -} - -STATIC void -__xfs_inode_clear_reclaim( - xfs_perag_t *pag, - xfs_inode_t *ip) -{ - pag->pag_ici_reclaimable--; - if (!pag->pag_ici_reclaimable) { - /* clear the reclaim tag from the perag radix tree */ - spin_lock(&ip->i_mount->m_perag_lock); - radix_tree_tag_clear(&ip->i_mount->m_perag_tree, - XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino), - XFS_ICI_RECLAIM_TAG); - spin_unlock(&ip->i_mount->m_perag_lock); - trace_xfs_perag_clear_reclaim(ip->i_mount, pag->pag_agno, - -1, _RET_IP_); - } -} - -void -__xfs_inode_clear_reclaim_tag( - xfs_mount_t *mp, - xfs_perag_t *pag, - xfs_inode_t *ip) -{ - radix_tree_tag_clear(&pag->pag_ici_root, - XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); - __xfs_inode_clear_reclaim(pag, ip); -} - -/* - * Grab the inode for reclaim exclusively. - * Return 0 if we grabbed it, non-zero otherwise. - */ -STATIC int -xfs_reclaim_inode_grab( - struct xfs_inode *ip, - int flags) -{ - ASSERT(rcu_read_lock_held()); - - /* quick check for stale RCU freed inode */ - if (!ip->i_ino) - return 1; - - /* - * do some unlocked checks first to avoid unnecessary lock traffic. - * The first is a flush lock check, the second is a already in reclaim - * check. Only do these checks if we are not going to block on locks. - */ - if ((flags & SYNC_TRYLOCK) && - (!ip->i_flush.done || __xfs_iflags_test(ip, XFS_IRECLAIM))) { - return 1; - } - - /* - * The radix tree lock here protects a thread in xfs_iget from racing - * with us starting reclaim on the inode. Once we have the - * XFS_IRECLAIM flag set it will not touch us. - * - * Due to RCU lookup, we may find inodes that have been freed and only - * have XFS_IRECLAIM set. Indeed, we may see reallocated inodes that - * aren't candidates for reclaim at all, so we must check the - * XFS_IRECLAIMABLE is set first before proceeding to reclaim. - */ - spin_lock(&ip->i_flags_lock); - if (!__xfs_iflags_test(ip, XFS_IRECLAIMABLE) || - __xfs_iflags_test(ip, XFS_IRECLAIM)) { - /* not a reclaim candidate. */ - spin_unlock(&ip->i_flags_lock); - return 1; - } - __xfs_iflags_set(ip, XFS_IRECLAIM); - spin_unlock(&ip->i_flags_lock); - return 0; -} - -/* - * Inodes in different states need to be treated differently, and the return - * value of xfs_iflush is not sufficient to get this right. The following table - * lists the inode states and the reclaim actions necessary for non-blocking - * reclaim: - * - * - * inode state iflush ret required action - * --------------- ---------- --------------- - * bad - reclaim - * shutdown EIO unpin and reclaim - * clean, unpinned 0 reclaim - * stale, unpinned 0 reclaim - * clean, pinned(*) 0 requeue - * stale, pinned EAGAIN requeue - * dirty, delwri ok 0 requeue - * dirty, delwri blocked EAGAIN requeue - * dirty, sync flush 0 reclaim - * - * (*) dgc: I don't think the clean, pinned state is possible but it gets - * handled anyway given the order of checks implemented. - * - * As can be seen from the table, the return value of xfs_iflush() is not - * sufficient to correctly decide the reclaim action here. The checks in - * xfs_iflush() might look like duplicates, but they are not. - * - * Also, because we get the flush lock first, we know that any inode that has - * been flushed delwri has had the flush completed by the time we check that - * the inode is clean. The clean inode check needs to be done before flushing - * the inode delwri otherwise we would loop forever requeuing clean inodes as - * we cannot tell apart a successful delwri flush and a clean inode from the - * return value of xfs_iflush(). - * - * Note that because the inode is flushed delayed write by background - * writeback, the flush lock may already be held here and waiting on it can - * result in very long latencies. Hence for sync reclaims, where we wait on the - * flush lock, the caller should push out delayed write inodes first before - * trying to reclaim them to minimise the amount of time spent waiting. For - * background relaim, we just requeue the inode for the next pass. - * - * Hence the order of actions after gaining the locks should be: - * bad => reclaim - * shutdown => unpin and reclaim - * pinned, delwri => requeue - * pinned, sync => unpin - * stale => reclaim - * clean => reclaim - * dirty, delwri => flush and requeue - * dirty, sync => flush, wait and reclaim - */ -STATIC int -xfs_reclaim_inode( - struct xfs_inode *ip, - struct xfs_perag *pag, - int sync_mode) -{ - int error; - -restart: - error = 0; - xfs_ilock(ip, XFS_ILOCK_EXCL); - if (!xfs_iflock_nowait(ip)) { - if (!(sync_mode & SYNC_WAIT)) - goto out; - xfs_iflock(ip); - } - - if (is_bad_inode(VFS_I(ip))) - goto reclaim; - if (XFS_FORCED_SHUTDOWN(ip->i_mount)) { - xfs_iunpin_wait(ip); - goto reclaim; - } - if (xfs_ipincount(ip)) { - if (!(sync_mode & SYNC_WAIT)) { - xfs_ifunlock(ip); - goto out; - } - xfs_iunpin_wait(ip); - } - if (xfs_iflags_test(ip, XFS_ISTALE)) - goto reclaim; - if (xfs_inode_clean(ip)) - goto reclaim; - - /* - * Now we have an inode that needs flushing. - * - * We do a nonblocking flush here even if we are doing a SYNC_WAIT - * reclaim as we can deadlock with inode cluster removal. - * xfs_ifree_cluster() can lock the inode buffer before it locks the - * ip->i_lock, and we are doing the exact opposite here. As a result, - * doing a blocking xfs_itobp() to get the cluster buffer will result - * in an ABBA deadlock with xfs_ifree_cluster(). - * - * As xfs_ifree_cluser() must gather all inodes that are active in the - * cache to mark them stale, if we hit this case we don't actually want - * to do IO here - we want the inode marked stale so we can simply - * reclaim it. Hence if we get an EAGAIN error on a SYNC_WAIT flush, - * just unlock the inode, back off and try again. Hopefully the next - * pass through will see the stale flag set on the inode. - */ - error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); - if (sync_mode & SYNC_WAIT) { - if (error == EAGAIN) { - xfs_iunlock(ip, XFS_ILOCK_EXCL); - /* backoff longer than in xfs_ifree_cluster */ - delay(2); - goto restart; - } - xfs_iflock(ip); - goto reclaim; - } - - /* - * When we have to flush an inode but don't have SYNC_WAIT set, we - * flush the inode out using a delwri buffer and wait for the next - * call into reclaim to find it in a clean state instead of waiting for - * it now. We also don't return errors here - if the error is transient - * then the next reclaim pass will flush the inode, and if the error - * is permanent then the next sync reclaim will reclaim the inode and - * pass on the error. - */ - if (error && error != EAGAIN && !XFS_FORCED_SHUTDOWN(ip->i_mount)) { - xfs_warn(ip->i_mount, - "inode 0x%llx background reclaim flush failed with %d", - (long long)ip->i_ino, error); - } -out: - xfs_iflags_clear(ip, XFS_IRECLAIM); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - /* - * We could return EAGAIN here to make reclaim rescan the inode tree in - * a short while. However, this just burns CPU time scanning the tree - * waiting for IO to complete and xfssyncd never goes back to the idle - * state. Instead, return 0 to let the next scheduled background reclaim - * attempt to reclaim the inode again. - */ - return 0; - -reclaim: - xfs_ifunlock(ip); - xfs_iunlock(ip, XFS_ILOCK_EXCL); - - XFS_STATS_INC(xs_ig_reclaims); - /* - * Remove the inode from the per-AG radix tree. - * - * Because radix_tree_delete won't complain even if the item was never - * added to the tree assert that it's been there before to catch - * problems with the inode life time early on. - */ - spin_lock(&pag->pag_ici_lock); - if (!radix_tree_delete(&pag->pag_ici_root, - XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino))) - ASSERT(0); - __xfs_inode_clear_reclaim(pag, ip); - spin_unlock(&pag->pag_ici_lock); - - /* - * Here we do an (almost) spurious inode lock in order to coordinate - * with inode cache radix tree lookups. This is because the lookup - * can reference the inodes in the cache without taking references. - * - * We make that OK here by ensuring that we wait until the inode is - * unlocked after the lookup before we go ahead and free it. We get - * both the ilock and the iolock because the code may need to drop the - * ilock one but will still hold the iolock. - */ - xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - xfs_qm_dqdetach(ip); - xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - - xfs_inode_free(ip); - return error; - -} - -/* - * Walk the AGs and reclaim the inodes in them. Even if the filesystem is - * corrupted, we still want to try to reclaim all the inodes. If we don't, - * then a shut down during filesystem unmount reclaim walk leak all the - * unreclaimed inodes. - */ -int -xfs_reclaim_inodes_ag( - struct xfs_mount *mp, - int flags, - int *nr_to_scan) -{ - struct xfs_perag *pag; - int error = 0; - int last_error = 0; - xfs_agnumber_t ag; - int trylock = flags & SYNC_TRYLOCK; - int skipped; - -restart: - ag = 0; - skipped = 0; - while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { - unsigned long first_index = 0; - int done = 0; - int nr_found = 0; - - ag = pag->pag_agno + 1; - - if (trylock) { - if (!mutex_trylock(&pag->pag_ici_reclaim_lock)) { - skipped++; - xfs_perag_put(pag); - continue; - } - first_index = pag->pag_ici_reclaim_cursor; - } else - mutex_lock(&pag->pag_ici_reclaim_lock); - - do { - struct xfs_inode *batch[XFS_LOOKUP_BATCH]; - int i; - - rcu_read_lock(); - nr_found = radix_tree_gang_lookup_tag( - &pag->pag_ici_root, - (void **)batch, first_index, - XFS_LOOKUP_BATCH, - XFS_ICI_RECLAIM_TAG); - if (!nr_found) { - done = 1; - rcu_read_unlock(); - break; - } - - /* - * Grab the inodes before we drop the lock. if we found - * nothing, nr == 0 and the loop will be skipped. - */ - for (i = 0; i < nr_found; i++) { - struct xfs_inode *ip = batch[i]; - - if (done || xfs_reclaim_inode_grab(ip, flags)) - batch[i] = NULL; - - /* - * Update the index for the next lookup. Catch - * overflows into the next AG range which can - * occur if we have inodes in the last block of - * the AG and we are currently pointing to the - * last inode. - * - * Because we may see inodes that are from the - * wrong AG due to RCU freeing and - * reallocation, only update the index if it - * lies in this AG. It was a race that lead us - * to see this inode, so another lookup from - * the same index will not find it again. - */ - if (XFS_INO_TO_AGNO(mp, ip->i_ino) != - pag->pag_agno) - continue; - first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); - if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) - done = 1; - } - - /* unlock now we've grabbed the inodes. */ - rcu_read_unlock(); - - for (i = 0; i < nr_found; i++) { - if (!batch[i]) - continue; - error = xfs_reclaim_inode(batch[i], pag, flags); - if (error && last_error != EFSCORRUPTED) - last_error = error; - } - - *nr_to_scan -= XFS_LOOKUP_BATCH; - - } while (nr_found && !done && *nr_to_scan > 0); - - if (trylock && !done) - pag->pag_ici_reclaim_cursor = first_index; - else - pag->pag_ici_reclaim_cursor = 0; - mutex_unlock(&pag->pag_ici_reclaim_lock); - xfs_perag_put(pag); - } - - /* - * if we skipped any AG, and we still have scan count remaining, do - * another pass this time using blocking reclaim semantics (i.e - * waiting on the reclaim locks and ignoring the reclaim cursors). This - * ensure that when we get more reclaimers than AGs we block rather - * than spin trying to execute reclaim. - */ - if (trylock && skipped && *nr_to_scan > 0) { - trylock = 0; - goto restart; - } - return XFS_ERROR(last_error); -} - -int -xfs_reclaim_inodes( - xfs_mount_t *mp, - int mode) -{ - int nr_to_scan = INT_MAX; - - return xfs_reclaim_inodes_ag(mp, mode, &nr_to_scan); -} - -/* - * Inode cache shrinker. - * - * When called we make sure that there is a background (fast) inode reclaim in - * progress, while we will throttle the speed of reclaim via doiing synchronous - * reclaim of inodes. That means if we come across dirty inodes, we wait for - * them to be cleaned, which we hope will not be very long due to the - * background walker having already kicked the IO off on those dirty inodes. - */ -static int -xfs_reclaim_inode_shrink( - struct shrinker *shrink, - struct shrink_control *sc) -{ - struct xfs_mount *mp; - struct xfs_perag *pag; - xfs_agnumber_t ag; - int reclaimable; - int nr_to_scan = sc->nr_to_scan; - gfp_t gfp_mask = sc->gfp_mask; - - mp = container_of(shrink, struct xfs_mount, m_inode_shrink); - if (nr_to_scan) { - /* kick background reclaimer and push the AIL */ - xfs_syncd_queue_reclaim(mp); - xfs_ail_push_all(mp->m_ail); - - if (!(gfp_mask & __GFP_FS)) - return -1; - - xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK | SYNC_WAIT, - &nr_to_scan); - /* terminate if we don't exhaust the scan */ - if (nr_to_scan > 0) - return -1; - } - - reclaimable = 0; - ag = 0; - while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { - ag = pag->pag_agno + 1; - reclaimable += pag->pag_ici_reclaimable; - xfs_perag_put(pag); - } - return reclaimable; -} - -void -xfs_inode_shrinker_register( - struct xfs_mount *mp) -{ - mp->m_inode_shrink.shrink = xfs_reclaim_inode_shrink; - mp->m_inode_shrink.seeks = DEFAULT_SEEKS; - register_shrinker(&mp->m_inode_shrink); -} - -void -xfs_inode_shrinker_unregister( - struct xfs_mount *mp) -{ - unregister_shrinker(&mp->m_inode_shrink); -} diff --git a/fs/xfs/linux-2.6/xfs_sync.h b/fs/xfs/linux-2.6/xfs_sync.h deleted file mode 100644 index e914fd6..0000000 --- a/fs/xfs/linux-2.6/xfs_sync.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright (c) 2000-2006 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef XFS_SYNC_H -#define XFS_SYNC_H 1 - -struct xfs_mount; -struct xfs_perag; - -#define SYNC_WAIT 0x0001 /* wait for i/o to complete */ -#define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ - -extern struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ - -int xfs_syncd_init(struct xfs_mount *mp); -void xfs_syncd_stop(struct xfs_mount *mp); - -int xfs_quiesce_data(struct xfs_mount *mp); -void xfs_quiesce_attr(struct xfs_mount *mp); - -void xfs_flush_inodes(struct xfs_inode *ip); - -int xfs_reclaim_inodes(struct xfs_mount *mp, int mode); - -void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); -void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); -void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, - struct xfs_inode *ip); - -int xfs_sync_inode_grab(struct xfs_inode *ip); -int xfs_inode_ag_iterator(struct xfs_mount *mp, - int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), - int flags); - -void xfs_inode_shrinker_register(struct xfs_mount *mp); -void xfs_inode_shrinker_unregister(struct xfs_mount *mp); - -#endif diff --git a/fs/xfs/linux-2.6/xfs_sysctl.c b/fs/xfs/linux-2.6/xfs_sysctl.c deleted file mode 100644 index ee2d2ad..0000000 --- a/fs/xfs/linux-2.6/xfs_sysctl.c +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (c) 2001-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include -#include -#include "xfs_error.h" - -static struct ctl_table_header *xfs_table_header; - -#ifdef CONFIG_PROC_FS -STATIC int -xfs_stats_clear_proc_handler( - ctl_table *ctl, - int write, - void __user *buffer, - size_t *lenp, - loff_t *ppos) -{ - int c, ret, *valp = ctl->data; - __uint32_t vn_active; - - ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); - - if (!ret && write && *valp) { - xfs_notice(NULL, "Clearing xfsstats"); - for_each_possible_cpu(c) { - preempt_disable(); - /* save vn_active, it's a universal truth! */ - vn_active = per_cpu(xfsstats, c).vn_active; - memset(&per_cpu(xfsstats, c), 0, - sizeof(struct xfsstats)); - per_cpu(xfsstats, c).vn_active = vn_active; - preempt_enable(); - } - xfs_stats_clear = 0; - } - - return ret; -} - -STATIC int -xfs_panic_mask_proc_handler( - ctl_table *ctl, - int write, - void __user *buffer, - size_t *lenp, - loff_t *ppos) -{ - int ret, *valp = ctl->data; - - ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); - if (!ret && write) { - xfs_panic_mask = *valp; -#ifdef DEBUG - xfs_panic_mask |= (XFS_PTAG_SHUTDOWN_CORRUPT | XFS_PTAG_LOGRES); -#endif - } - return ret; -} -#endif /* CONFIG_PROC_FS */ - -static ctl_table xfs_table[] = { - { - .procname = "irix_sgid_inherit", - .data = &xfs_params.sgid_inherit.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.sgid_inherit.min, - .extra2 = &xfs_params.sgid_inherit.max - }, - { - .procname = "irix_symlink_mode", - .data = &xfs_params.symlink_mode.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.symlink_mode.min, - .extra2 = &xfs_params.symlink_mode.max - }, - { - .procname = "panic_mask", - .data = &xfs_params.panic_mask.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = xfs_panic_mask_proc_handler, - .extra1 = &xfs_params.panic_mask.min, - .extra2 = &xfs_params.panic_mask.max - }, - - { - .procname = "error_level", - .data = &xfs_params.error_level.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.error_level.min, - .extra2 = &xfs_params.error_level.max - }, - { - .procname = "xfssyncd_centisecs", - .data = &xfs_params.syncd_timer.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.syncd_timer.min, - .extra2 = &xfs_params.syncd_timer.max - }, - { - .procname = "inherit_sync", - .data = &xfs_params.inherit_sync.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.inherit_sync.min, - .extra2 = &xfs_params.inherit_sync.max - }, - { - .procname = "inherit_nodump", - .data = &xfs_params.inherit_nodump.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.inherit_nodump.min, - .extra2 = &xfs_params.inherit_nodump.max - }, - { - .procname = "inherit_noatime", - .data = &xfs_params.inherit_noatim.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.inherit_noatim.min, - .extra2 = &xfs_params.inherit_noatim.max - }, - { - .procname = "xfsbufd_centisecs", - .data = &xfs_params.xfs_buf_timer.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.xfs_buf_timer.min, - .extra2 = &xfs_params.xfs_buf_timer.max - }, - { - .procname = "age_buffer_centisecs", - .data = &xfs_params.xfs_buf_age.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.xfs_buf_age.min, - .extra2 = &xfs_params.xfs_buf_age.max - }, - { - .procname = "inherit_nosymlinks", - .data = &xfs_params.inherit_nosym.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.inherit_nosym.min, - .extra2 = &xfs_params.inherit_nosym.max - }, - { - .procname = "rotorstep", - .data = &xfs_params.rotorstep.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.rotorstep.min, - .extra2 = &xfs_params.rotorstep.max - }, - { - .procname = "inherit_nodefrag", - .data = &xfs_params.inherit_nodfrg.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.inherit_nodfrg.min, - .extra2 = &xfs_params.inherit_nodfrg.max - }, - { - .procname = "filestream_centisecs", - .data = &xfs_params.fstrm_timer.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = proc_dointvec_minmax, - .extra1 = &xfs_params.fstrm_timer.min, - .extra2 = &xfs_params.fstrm_timer.max, - }, - /* please keep this the last entry */ -#ifdef CONFIG_PROC_FS - { - .procname = "stats_clear", - .data = &xfs_params.stats_clear.val, - .maxlen = sizeof(int), - .mode = 0644, - .proc_handler = xfs_stats_clear_proc_handler, - .extra1 = &xfs_params.stats_clear.min, - .extra2 = &xfs_params.stats_clear.max - }, -#endif /* CONFIG_PROC_FS */ - - {} -}; - -static ctl_table xfs_dir_table[] = { - { - .procname = "xfs", - .mode = 0555, - .child = xfs_table - }, - {} -}; - -static ctl_table xfs_root_table[] = { - { - .procname = "fs", - .mode = 0555, - .child = xfs_dir_table - }, - {} -}; - -int -xfs_sysctl_register(void) -{ - xfs_table_header = register_sysctl_table(xfs_root_table); - if (!xfs_table_header) - return -ENOMEM; - return 0; -} - -void -xfs_sysctl_unregister(void) -{ - unregister_sysctl_table(xfs_table_header); -} diff --git a/fs/xfs/linux-2.6/xfs_sysctl.h b/fs/xfs/linux-2.6/xfs_sysctl.h deleted file mode 100644 index b9937d4..0000000 --- a/fs/xfs/linux-2.6/xfs_sysctl.h +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (c) 2001-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_SYSCTL_H__ -#define __XFS_SYSCTL_H__ - -#include - -/* - * Tunable xfs parameters - */ - -typedef struct xfs_sysctl_val { - int min; - int val; - int max; -} xfs_sysctl_val_t; - -typedef struct xfs_param { - xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is - * not a member of parent dir GID. */ - xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ - xfs_sysctl_val_t panic_mask; /* bitmask to cause panic on errors. */ - xfs_sysctl_val_t error_level; /* Degree of reporting for problems */ - xfs_sysctl_val_t syncd_timer; /* Interval between xfssyncd wakeups */ - xfs_sysctl_val_t stats_clear; /* Reset all XFS statistics to zero. */ - xfs_sysctl_val_t inherit_sync; /* Inherit the "sync" inode flag. */ - xfs_sysctl_val_t inherit_nodump;/* Inherit the "nodump" inode flag. */ - xfs_sysctl_val_t inherit_noatim;/* Inherit the "noatime" inode flag. */ - xfs_sysctl_val_t xfs_buf_timer; /* Interval between xfsbufd wakeups. */ - xfs_sysctl_val_t xfs_buf_age; /* Metadata buffer age before flush. */ - xfs_sysctl_val_t inherit_nosym; /* Inherit the "nosymlinks" flag. */ - xfs_sysctl_val_t rotorstep; /* inode32 AG rotoring control knob */ - xfs_sysctl_val_t inherit_nodfrg;/* Inherit the "nodefrag" inode flag. */ - xfs_sysctl_val_t fstrm_timer; /* Filestream dir-AG assoc'n timeout. */ -} xfs_param_t; - -/* - * xfs_error_level: - * - * How much error reporting will be done when internal problems are - * encountered. These problems normally return an EFSCORRUPTED to their - * caller, with no other information reported. - * - * 0 No error reports - * 1 Report EFSCORRUPTED errors that will cause a filesystem shutdown - * 5 Report all EFSCORRUPTED errors (all of the above errors, plus any - * additional errors that are known to not cause shutdowns) - * - * xfs_panic_mask bit 0x8 turns the error reports into panics - */ - -enum { - /* XFS_REFCACHE_SIZE = 1 */ - /* XFS_REFCACHE_PURGE = 2 */ - /* XFS_RESTRICT_CHOWN = 3 */ - XFS_SGID_INHERIT = 4, - XFS_SYMLINK_MODE = 5, - XFS_PANIC_MASK = 6, - XFS_ERRLEVEL = 7, - XFS_SYNCD_TIMER = 8, - /* XFS_PROBE_DMAPI = 9 */ - /* XFS_PROBE_IOOPS = 10 */ - /* XFS_PROBE_QUOTA = 11 */ - XFS_STATS_CLEAR = 12, - XFS_INHERIT_SYNC = 13, - XFS_INHERIT_NODUMP = 14, - XFS_INHERIT_NOATIME = 15, - XFS_BUF_TIMER = 16, - XFS_BUF_AGE = 17, - /* XFS_IO_BYPASS = 18 */ - XFS_INHERIT_NOSYM = 19, - XFS_ROTORSTEP = 20, - XFS_INHERIT_NODFRG = 21, - XFS_FILESTREAM_TIMER = 22, -}; - -extern xfs_param_t xfs_params; - -#ifdef CONFIG_SYSCTL -extern int xfs_sysctl_register(void); -extern void xfs_sysctl_unregister(void); -#else -# define xfs_sysctl_register() (0) -# define xfs_sysctl_unregister() do { } while (0) -#endif /* CONFIG_SYSCTL */ - -#endif /* __XFS_SYSCTL_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_trace.c b/fs/xfs/linux-2.6/xfs_trace.c deleted file mode 100644 index 88d25d4..0000000 --- a/fs/xfs/linux-2.6/xfs_trace.c +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright (c) 2009, Christoph Hellwig - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#include "xfs.h" -#include "xfs_fs.h" -#include "xfs_types.h" -#include "xfs_bit.h" -#include "xfs_log.h" -#include "xfs_inum.h" -#include "xfs_trans.h" -#include "xfs_sb.h" -#include "xfs_ag.h" -#include "xfs_da_btree.h" -#include "xfs_bmap_btree.h" -#include "xfs_alloc_btree.h" -#include "xfs_ialloc_btree.h" -#include "xfs_dinode.h" -#include "xfs_inode.h" -#include "xfs_btree.h" -#include "xfs_mount.h" -#include "xfs_ialloc.h" -#include "xfs_itable.h" -#include "xfs_alloc.h" -#include "xfs_bmap.h" -#include "xfs_attr.h" -#include "xfs_attr_leaf.h" -#include "xfs_log_priv.h" -#include "xfs_buf_item.h" -#include "xfs_quota.h" -#include "xfs_iomap.h" -#include "xfs_aops.h" -#include "quota/xfs_dquot_item.h" -#include "quota/xfs_dquot.h" -#include "xfs_log_recover.h" -#include "xfs_inode_item.h" - -/* - * We include this last to have the helpers above available for the trace - * event implementations. - */ -#define CREATE_TRACE_POINTS -#include "xfs_trace.h" diff --git a/fs/xfs/linux-2.6/xfs_trace.h b/fs/xfs/linux-2.6/xfs_trace.h deleted file mode 100644 index fda0708..0000000 --- a/fs/xfs/linux-2.6/xfs_trace.h +++ /dev/null @@ -1,1746 +0,0 @@ -/* - * Copyright (c) 2009, Christoph Hellwig - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#undef TRACE_SYSTEM -#define TRACE_SYSTEM xfs - -#if !defined(_TRACE_XFS_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_XFS_H - -#include - -struct xfs_agf; -struct xfs_alloc_arg; -struct xfs_attr_list_context; -struct xfs_buf_log_item; -struct xfs_da_args; -struct xfs_da_node_entry; -struct xfs_dquot; -struct xlog_ticket; -struct log; -struct xlog_recover; -struct xlog_recover_item; -struct xfs_buf_log_format; -struct xfs_inode_log_format; - -DECLARE_EVENT_CLASS(xfs_attr_list_class, - TP_PROTO(struct xfs_attr_list_context *ctx), - TP_ARGS(ctx), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(u32, hashval) - __field(u32, blkno) - __field(u32, offset) - __field(void *, alist) - __field(int, bufsize) - __field(int, count) - __field(int, firstu) - __field(int, dupcnt) - __field(int, flags) - ), - TP_fast_assign( - __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; - __entry->ino = ctx->dp->i_ino; - __entry->hashval = ctx->cursor->hashval; - __entry->blkno = ctx->cursor->blkno; - __entry->offset = ctx->cursor->offset; - __entry->alist = ctx->alist; - __entry->bufsize = ctx->bufsize; - __entry->count = ctx->count; - __entry->firstu = ctx->firstu; - __entry->flags = ctx->flags; - ), - TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " - "alist 0x%p size %u count %u firstu %u flags %d %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->hashval, - __entry->blkno, - __entry->offset, - __entry->dupcnt, - __entry->alist, - __entry->bufsize, - __entry->count, - __entry->firstu, - __entry->flags, - __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS) - ) -) - -#define DEFINE_ATTR_LIST_EVENT(name) \ -DEFINE_EVENT(xfs_attr_list_class, name, \ - TP_PROTO(struct xfs_attr_list_context *ctx), \ - TP_ARGS(ctx)) -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf_all); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf_end); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_full); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_add); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_wrong_blk); -DEFINE_ATTR_LIST_EVENT(xfs_attr_list_notfound); - -DECLARE_EVENT_CLASS(xfs_perag_class, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, - unsigned long caller_ip), - TP_ARGS(mp, agno, refcount, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(int, refcount) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->refcount = refcount; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d agno %u refcount %d caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->refcount, - (char *)__entry->caller_ip) -); - -#define DEFINE_PERAG_REF_EVENT(name) \ -DEFINE_EVENT(xfs_perag_class, name, \ - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, \ - unsigned long caller_ip), \ - TP_ARGS(mp, agno, refcount, caller_ip)) -DEFINE_PERAG_REF_EVENT(xfs_perag_get); -DEFINE_PERAG_REF_EVENT(xfs_perag_get_tag); -DEFINE_PERAG_REF_EVENT(xfs_perag_put); -DEFINE_PERAG_REF_EVENT(xfs_perag_set_reclaim); -DEFINE_PERAG_REF_EVENT(xfs_perag_clear_reclaim); - -TRACE_EVENT(xfs_attr_list_node_descend, - TP_PROTO(struct xfs_attr_list_context *ctx, - struct xfs_da_node_entry *btree), - TP_ARGS(ctx, btree), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(u32, hashval) - __field(u32, blkno) - __field(u32, offset) - __field(void *, alist) - __field(int, bufsize) - __field(int, count) - __field(int, firstu) - __field(int, dupcnt) - __field(int, flags) - __field(u32, bt_hashval) - __field(u32, bt_before) - ), - TP_fast_assign( - __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; - __entry->ino = ctx->dp->i_ino; - __entry->hashval = ctx->cursor->hashval; - __entry->blkno = ctx->cursor->blkno; - __entry->offset = ctx->cursor->offset; - __entry->alist = ctx->alist; - __entry->bufsize = ctx->bufsize; - __entry->count = ctx->count; - __entry->firstu = ctx->firstu; - __entry->flags = ctx->flags; - __entry->bt_hashval = be32_to_cpu(btree->hashval); - __entry->bt_before = be32_to_cpu(btree->before); - ), - TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " - "alist 0x%p size %u count %u firstu %u flags %d %s " - "node hashval %u, node before %u", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->hashval, - __entry->blkno, - __entry->offset, - __entry->dupcnt, - __entry->alist, - __entry->bufsize, - __entry->count, - __entry->firstu, - __entry->flags, - __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS), - __entry->bt_hashval, - __entry->bt_before) -); - -TRACE_EVENT(xfs_iext_insert, - TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, - struct xfs_bmbt_irec *r, int state, unsigned long caller_ip), - TP_ARGS(ip, idx, r, state, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_extnum_t, idx) - __field(xfs_fileoff_t, startoff) - __field(xfs_fsblock_t, startblock) - __field(xfs_filblks_t, blockcount) - __field(xfs_exntst_t, state) - __field(int, bmap_state) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->idx = idx; - __entry->startoff = r->br_startoff; - __entry->startblock = r->br_startblock; - __entry->blockcount = r->br_blockcount; - __entry->state = r->br_state; - __entry->bmap_state = state; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " - "offset %lld block %lld count %lld flag %d caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), - (long)__entry->idx, - __entry->startoff, - (__int64_t)__entry->startblock, - __entry->blockcount, - __entry->state, - (char *)__entry->caller_ip) -); - -DECLARE_EVENT_CLASS(xfs_bmap_class, - TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, - unsigned long caller_ip), - TP_ARGS(ip, idx, state, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_extnum_t, idx) - __field(xfs_fileoff_t, startoff) - __field(xfs_fsblock_t, startblock) - __field(xfs_filblks_t, blockcount) - __field(xfs_exntst_t, state) - __field(int, bmap_state) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - struct xfs_ifork *ifp = (state & BMAP_ATTRFORK) ? - ip->i_afp : &ip->i_df; - struct xfs_bmbt_irec r; - - xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), &r); - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->idx = idx; - __entry->startoff = r.br_startoff; - __entry->startblock = r.br_startblock; - __entry->blockcount = r.br_blockcount; - __entry->state = r.br_state; - __entry->bmap_state = state; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " - "offset %lld block %lld count %lld flag %d caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), - (long)__entry->idx, - __entry->startoff, - (__int64_t)__entry->startblock, - __entry->blockcount, - __entry->state, - (char *)__entry->caller_ip) -) - -#define DEFINE_BMAP_EVENT(name) \ -DEFINE_EVENT(xfs_bmap_class, name, \ - TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, \ - unsigned long caller_ip), \ - TP_ARGS(ip, idx, state, caller_ip)) -DEFINE_BMAP_EVENT(xfs_iext_remove); -DEFINE_BMAP_EVENT(xfs_bmap_pre_update); -DEFINE_BMAP_EVENT(xfs_bmap_post_update); -DEFINE_BMAP_EVENT(xfs_extlist); - -DECLARE_EVENT_CLASS(xfs_buf_class, - TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), - TP_ARGS(bp, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_daddr_t, bno) - __field(size_t, buffer_length) - __field(int, hold) - __field(int, pincount) - __field(unsigned, lockval) - __field(unsigned, flags) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = bp->b_target->bt_dev; - __entry->bno = bp->b_bn; - __entry->buffer_length = bp->b_buffer_length; - __entry->hold = atomic_read(&bp->b_hold); - __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = bp->b_sema.count; - __entry->flags = bp->b_flags; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " - "lock %d flags %s caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - (unsigned long long)__entry->bno, - __entry->buffer_length, - __entry->hold, - __entry->pincount, - __entry->lockval, - __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), - (void *)__entry->caller_ip) -) - -#define DEFINE_BUF_EVENT(name) \ -DEFINE_EVENT(xfs_buf_class, name, \ - TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), \ - TP_ARGS(bp, caller_ip)) -DEFINE_BUF_EVENT(xfs_buf_init); -DEFINE_BUF_EVENT(xfs_buf_free); -DEFINE_BUF_EVENT(xfs_buf_hold); -DEFINE_BUF_EVENT(xfs_buf_rele); -DEFINE_BUF_EVENT(xfs_buf_iodone); -DEFINE_BUF_EVENT(xfs_buf_iorequest); -DEFINE_BUF_EVENT(xfs_buf_bawrite); -DEFINE_BUF_EVENT(xfs_buf_bdwrite); -DEFINE_BUF_EVENT(xfs_buf_lock); -DEFINE_BUF_EVENT(xfs_buf_lock_done); -DEFINE_BUF_EVENT(xfs_buf_trylock); -DEFINE_BUF_EVENT(xfs_buf_unlock); -DEFINE_BUF_EVENT(xfs_buf_iowait); -DEFINE_BUF_EVENT(xfs_buf_iowait_done); -DEFINE_BUF_EVENT(xfs_buf_delwri_queue); -DEFINE_BUF_EVENT(xfs_buf_delwri_dequeue); -DEFINE_BUF_EVENT(xfs_buf_delwri_split); -DEFINE_BUF_EVENT(xfs_buf_get_uncached); -DEFINE_BUF_EVENT(xfs_bdstrat_shut); -DEFINE_BUF_EVENT(xfs_buf_item_relse); -DEFINE_BUF_EVENT(xfs_buf_item_iodone); -DEFINE_BUF_EVENT(xfs_buf_item_iodone_async); -DEFINE_BUF_EVENT(xfs_buf_error_relse); -DEFINE_BUF_EVENT(xfs_trans_read_buf_io); -DEFINE_BUF_EVENT(xfs_trans_read_buf_shut); - -/* not really buffer traces, but the buf provides useful information */ -DEFINE_BUF_EVENT(xfs_btree_corrupt); -DEFINE_BUF_EVENT(xfs_da_btree_corrupt); -DEFINE_BUF_EVENT(xfs_reset_dqcounts); -DEFINE_BUF_EVENT(xfs_inode_item_push); - -/* pass flags explicitly */ -DECLARE_EVENT_CLASS(xfs_buf_flags_class, - TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), - TP_ARGS(bp, flags, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_daddr_t, bno) - __field(size_t, buffer_length) - __field(int, hold) - __field(int, pincount) - __field(unsigned, lockval) - __field(unsigned, flags) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = bp->b_target->bt_dev; - __entry->bno = bp->b_bn; - __entry->buffer_length = bp->b_buffer_length; - __entry->flags = flags; - __entry->hold = atomic_read(&bp->b_hold); - __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = bp->b_sema.count; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " - "lock %d flags %s caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - (unsigned long long)__entry->bno, - __entry->buffer_length, - __entry->hold, - __entry->pincount, - __entry->lockval, - __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), - (void *)__entry->caller_ip) -) - -#define DEFINE_BUF_FLAGS_EVENT(name) \ -DEFINE_EVENT(xfs_buf_flags_class, name, \ - TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), \ - TP_ARGS(bp, flags, caller_ip)) -DEFINE_BUF_FLAGS_EVENT(xfs_buf_find); -DEFINE_BUF_FLAGS_EVENT(xfs_buf_get); -DEFINE_BUF_FLAGS_EVENT(xfs_buf_read); - -TRACE_EVENT(xfs_buf_ioerror, - TP_PROTO(struct xfs_buf *bp, int error, unsigned long caller_ip), - TP_ARGS(bp, error, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_daddr_t, bno) - __field(size_t, buffer_length) - __field(unsigned, flags) - __field(int, hold) - __field(int, pincount) - __field(unsigned, lockval) - __field(int, error) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = bp->b_target->bt_dev; - __entry->bno = bp->b_bn; - __entry->buffer_length = bp->b_buffer_length; - __entry->hold = atomic_read(&bp->b_hold); - __entry->pincount = atomic_read(&bp->b_pin_count); - __entry->lockval = bp->b_sema.count; - __entry->error = error; - __entry->flags = bp->b_flags; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " - "lock %d error %d flags %s caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - (unsigned long long)__entry->bno, - __entry->buffer_length, - __entry->hold, - __entry->pincount, - __entry->lockval, - __entry->error, - __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), - (void *)__entry->caller_ip) -); - -DECLARE_EVENT_CLASS(xfs_buf_item_class, - TP_PROTO(struct xfs_buf_log_item *bip), - TP_ARGS(bip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_daddr_t, buf_bno) - __field(size_t, buf_len) - __field(int, buf_hold) - __field(int, buf_pincount) - __field(int, buf_lockval) - __field(unsigned, buf_flags) - __field(unsigned, bli_recur) - __field(int, bli_refcount) - __field(unsigned, bli_flags) - __field(void *, li_desc) - __field(unsigned, li_flags) - ), - TP_fast_assign( - __entry->dev = bip->bli_buf->b_target->bt_dev; - __entry->bli_flags = bip->bli_flags; - __entry->bli_recur = bip->bli_recur; - __entry->bli_refcount = atomic_read(&bip->bli_refcount); - __entry->buf_bno = bip->bli_buf->b_bn; - __entry->buf_len = bip->bli_buf->b_buffer_length; - __entry->buf_flags = bip->bli_buf->b_flags; - __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); - __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); - __entry->buf_lockval = bip->bli_buf->b_sema.count; - __entry->li_desc = bip->bli_item.li_desc; - __entry->li_flags = bip->bli_item.li_flags; - ), - TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " - "lock %d flags %s recur %d refcount %d bliflags %s " - "lidesc 0x%p liflags %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - (unsigned long long)__entry->buf_bno, - __entry->buf_len, - __entry->buf_hold, - __entry->buf_pincount, - __entry->buf_lockval, - __print_flags(__entry->buf_flags, "|", XFS_BUF_FLAGS), - __entry->bli_recur, - __entry->bli_refcount, - __print_flags(__entry->bli_flags, "|", XFS_BLI_FLAGS), - __entry->li_desc, - __print_flags(__entry->li_flags, "|", XFS_LI_FLAGS)) -) - -#define DEFINE_BUF_ITEM_EVENT(name) \ -DEFINE_EVENT(xfs_buf_item_class, name, \ - TP_PROTO(struct xfs_buf_log_item *bip), \ - TP_ARGS(bip)) -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_stale); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format_stale); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_pin); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unpin); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unpin_stale); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_trylock); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unlock); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unlock_stale); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_committed); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_push); -DEFINE_BUF_ITEM_EVENT(xfs_buf_item_pushbuf); -DEFINE_BUF_ITEM_EVENT(xfs_trans_get_buf); -DEFINE_BUF_ITEM_EVENT(xfs_trans_get_buf_recur); -DEFINE_BUF_ITEM_EVENT(xfs_trans_getsb); -DEFINE_BUF_ITEM_EVENT(xfs_trans_getsb_recur); -DEFINE_BUF_ITEM_EVENT(xfs_trans_read_buf); -DEFINE_BUF_ITEM_EVENT(xfs_trans_read_buf_recur); -DEFINE_BUF_ITEM_EVENT(xfs_trans_log_buf); -DEFINE_BUF_ITEM_EVENT(xfs_trans_brelse); -DEFINE_BUF_ITEM_EVENT(xfs_trans_bjoin); -DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold); -DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold_release); -DEFINE_BUF_ITEM_EVENT(xfs_trans_binval); - -DECLARE_EVENT_CLASS(xfs_lock_class, - TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, - unsigned long caller_ip), - TP_ARGS(ip, lock_flags, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(int, lock_flags) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->lock_flags = lock_flags; - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d ino 0x%llx flags %s caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->lock_flags, "|", XFS_LOCK_FLAGS), - (void *)__entry->caller_ip) -) - -#define DEFINE_LOCK_EVENT(name) \ -DEFINE_EVENT(xfs_lock_class, name, \ - TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, \ - unsigned long caller_ip), \ - TP_ARGS(ip, lock_flags, caller_ip)) -DEFINE_LOCK_EVENT(xfs_ilock); -DEFINE_LOCK_EVENT(xfs_ilock_nowait); -DEFINE_LOCK_EVENT(xfs_ilock_demote); -DEFINE_LOCK_EVENT(xfs_iunlock); - -DECLARE_EVENT_CLASS(xfs_inode_class, - TP_PROTO(struct xfs_inode *ip), - TP_ARGS(ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - ), - TP_printk("dev %d:%d ino 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino) -) - -#define DEFINE_INODE_EVENT(name) \ -DEFINE_EVENT(xfs_inode_class, name, \ - TP_PROTO(struct xfs_inode *ip), \ - TP_ARGS(ip)) -DEFINE_INODE_EVENT(xfs_iget_skip); -DEFINE_INODE_EVENT(xfs_iget_reclaim); -DEFINE_INODE_EVENT(xfs_iget_reclaim_fail); -DEFINE_INODE_EVENT(xfs_iget_hit); -DEFINE_INODE_EVENT(xfs_iget_miss); - -DEFINE_INODE_EVENT(xfs_getattr); -DEFINE_INODE_EVENT(xfs_setattr); -DEFINE_INODE_EVENT(xfs_readlink); -DEFINE_INODE_EVENT(xfs_alloc_file_space); -DEFINE_INODE_EVENT(xfs_free_file_space); -DEFINE_INODE_EVENT(xfs_readdir); -#ifdef CONFIG_XFS_POSIX_ACL -DEFINE_INODE_EVENT(xfs_check_acl); -#endif -DEFINE_INODE_EVENT(xfs_vm_bmap); -DEFINE_INODE_EVENT(xfs_file_ioctl); -DEFINE_INODE_EVENT(xfs_file_compat_ioctl); -DEFINE_INODE_EVENT(xfs_ioctl_setattr); -DEFINE_INODE_EVENT(xfs_file_fsync); -DEFINE_INODE_EVENT(xfs_destroy_inode); -DEFINE_INODE_EVENT(xfs_write_inode); -DEFINE_INODE_EVENT(xfs_evict_inode); - -DEFINE_INODE_EVENT(xfs_dquot_dqalloc); -DEFINE_INODE_EVENT(xfs_dquot_dqdetach); - -DECLARE_EVENT_CLASS(xfs_iref_class, - TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), - TP_ARGS(ip, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(int, count) - __field(int, pincount) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->count = atomic_read(&VFS_I(ip)->i_count); - __entry->pincount = atomic_read(&ip->i_pincount); - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d ino 0x%llx count %d pincount %d caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->count, - __entry->pincount, - (char *)__entry->caller_ip) -) - -#define DEFINE_IREF_EVENT(name) \ -DEFINE_EVENT(xfs_iref_class, name, \ - TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), \ - TP_ARGS(ip, caller_ip)) -DEFINE_IREF_EVENT(xfs_ihold); -DEFINE_IREF_EVENT(xfs_irele); -DEFINE_IREF_EVENT(xfs_inode_pin); -DEFINE_IREF_EVENT(xfs_inode_unpin); -DEFINE_IREF_EVENT(xfs_inode_unpin_nowait); - -DECLARE_EVENT_CLASS(xfs_namespace_class, - TP_PROTO(struct xfs_inode *dp, struct xfs_name *name), - TP_ARGS(dp, name), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, dp_ino) - __dynamic_array(char, name, name->len) - ), - TP_fast_assign( - __entry->dev = VFS_I(dp)->i_sb->s_dev; - __entry->dp_ino = dp->i_ino; - memcpy(__get_str(name), name->name, name->len); - ), - TP_printk("dev %d:%d dp ino 0x%llx name %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->dp_ino, - __get_str(name)) -) - -#define DEFINE_NAMESPACE_EVENT(name) \ -DEFINE_EVENT(xfs_namespace_class, name, \ - TP_PROTO(struct xfs_inode *dp, struct xfs_name *name), \ - TP_ARGS(dp, name)) -DEFINE_NAMESPACE_EVENT(xfs_remove); -DEFINE_NAMESPACE_EVENT(xfs_link); -DEFINE_NAMESPACE_EVENT(xfs_lookup); -DEFINE_NAMESPACE_EVENT(xfs_create); -DEFINE_NAMESPACE_EVENT(xfs_symlink); - -TRACE_EVENT(xfs_rename, - TP_PROTO(struct xfs_inode *src_dp, struct xfs_inode *target_dp, - struct xfs_name *src_name, struct xfs_name *target_name), - TP_ARGS(src_dp, target_dp, src_name, target_name), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, src_dp_ino) - __field(xfs_ino_t, target_dp_ino) - __dynamic_array(char, src_name, src_name->len) - __dynamic_array(char, target_name, target_name->len) - ), - TP_fast_assign( - __entry->dev = VFS_I(src_dp)->i_sb->s_dev; - __entry->src_dp_ino = src_dp->i_ino; - __entry->target_dp_ino = target_dp->i_ino; - memcpy(__get_str(src_name), src_name->name, src_name->len); - memcpy(__get_str(target_name), target_name->name, target_name->len); - ), - TP_printk("dev %d:%d src dp ino 0x%llx target dp ino 0x%llx" - " src name %s target name %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->src_dp_ino, - __entry->target_dp_ino, - __get_str(src_name), - __get_str(target_name)) -) - -DECLARE_EVENT_CLASS(xfs_dquot_class, - TP_PROTO(struct xfs_dquot *dqp), - TP_ARGS(dqp), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(u32, id) - __field(unsigned, flags) - __field(unsigned, nrefs) - __field(unsigned long long, res_bcount) - __field(unsigned long long, bcount) - __field(unsigned long long, icount) - __field(unsigned long long, blk_hardlimit) - __field(unsigned long long, blk_softlimit) - __field(unsigned long long, ino_hardlimit) - __field(unsigned long long, ino_softlimit) - ), \ - TP_fast_assign( - __entry->dev = dqp->q_mount->m_super->s_dev; - __entry->id = be32_to_cpu(dqp->q_core.d_id); - __entry->flags = dqp->dq_flags; - __entry->nrefs = dqp->q_nrefs; - __entry->res_bcount = dqp->q_res_bcount; - __entry->bcount = be64_to_cpu(dqp->q_core.d_bcount); - __entry->icount = be64_to_cpu(dqp->q_core.d_icount); - __entry->blk_hardlimit = - be64_to_cpu(dqp->q_core.d_blk_hardlimit); - __entry->blk_softlimit = - be64_to_cpu(dqp->q_core.d_blk_softlimit); - __entry->ino_hardlimit = - be64_to_cpu(dqp->q_core.d_ino_hardlimit); - __entry->ino_softlimit = - be64_to_cpu(dqp->q_core.d_ino_softlimit); - ), - TP_printk("dev %d:%d id 0x%x flags %s nrefs %u res_bc 0x%llx " - "bcnt 0x%llx bhardlimit 0x%llx bsoftlimit 0x%llx " - "icnt 0x%llx ihardlimit 0x%llx isoftlimit 0x%llx]", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->id, - __print_flags(__entry->flags, "|", XFS_DQ_FLAGS), - __entry->nrefs, - __entry->res_bcount, - __entry->bcount, - __entry->blk_hardlimit, - __entry->blk_softlimit, - __entry->icount, - __entry->ino_hardlimit, - __entry->ino_softlimit) -) - -#define DEFINE_DQUOT_EVENT(name) \ -DEFINE_EVENT(xfs_dquot_class, name, \ - TP_PROTO(struct xfs_dquot *dqp), \ - TP_ARGS(dqp)) -DEFINE_DQUOT_EVENT(xfs_dqadjust); -DEFINE_DQUOT_EVENT(xfs_dqreclaim_want); -DEFINE_DQUOT_EVENT(xfs_dqreclaim_dirty); -DEFINE_DQUOT_EVENT(xfs_dqreclaim_unlink); -DEFINE_DQUOT_EVENT(xfs_dqattach_found); -DEFINE_DQUOT_EVENT(xfs_dqattach_get); -DEFINE_DQUOT_EVENT(xfs_dqinit); -DEFINE_DQUOT_EVENT(xfs_dqreuse); -DEFINE_DQUOT_EVENT(xfs_dqalloc); -DEFINE_DQUOT_EVENT(xfs_dqtobp_read); -DEFINE_DQUOT_EVENT(xfs_dqread); -DEFINE_DQUOT_EVENT(xfs_dqread_fail); -DEFINE_DQUOT_EVENT(xfs_dqlookup_found); -DEFINE_DQUOT_EVENT(xfs_dqlookup_want); -DEFINE_DQUOT_EVENT(xfs_dqlookup_freelist); -DEFINE_DQUOT_EVENT(xfs_dqlookup_done); -DEFINE_DQUOT_EVENT(xfs_dqget_hit); -DEFINE_DQUOT_EVENT(xfs_dqget_miss); -DEFINE_DQUOT_EVENT(xfs_dqput); -DEFINE_DQUOT_EVENT(xfs_dqput_wait); -DEFINE_DQUOT_EVENT(xfs_dqput_free); -DEFINE_DQUOT_EVENT(xfs_dqrele); -DEFINE_DQUOT_EVENT(xfs_dqflush); -DEFINE_DQUOT_EVENT(xfs_dqflush_force); -DEFINE_DQUOT_EVENT(xfs_dqflush_done); - -DECLARE_EVENT_CLASS(xfs_loggrant_class, - TP_PROTO(struct log *log, struct xlog_ticket *tic), - TP_ARGS(log, tic), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(unsigned, trans_type) - __field(char, ocnt) - __field(char, cnt) - __field(int, curr_res) - __field(int, unit_res) - __field(unsigned int, flags) - __field(int, reserveq) - __field(int, writeq) - __field(int, grant_reserve_cycle) - __field(int, grant_reserve_bytes) - __field(int, grant_write_cycle) - __field(int, grant_write_bytes) - __field(int, curr_cycle) - __field(int, curr_block) - __field(xfs_lsn_t, tail_lsn) - ), - TP_fast_assign( - __entry->dev = log->l_mp->m_super->s_dev; - __entry->trans_type = tic->t_trans_type; - __entry->ocnt = tic->t_ocnt; - __entry->cnt = tic->t_cnt; - __entry->curr_res = tic->t_curr_res; - __entry->unit_res = tic->t_unit_res; - __entry->flags = tic->t_flags; - __entry->reserveq = list_empty(&log->l_reserveq); - __entry->writeq = list_empty(&log->l_writeq); - xlog_crack_grant_head(&log->l_grant_reserve_head, - &__entry->grant_reserve_cycle, - &__entry->grant_reserve_bytes); - xlog_crack_grant_head(&log->l_grant_write_head, - &__entry->grant_write_cycle, - &__entry->grant_write_bytes); - __entry->curr_cycle = log->l_curr_cycle; - __entry->curr_block = log->l_curr_block; - __entry->tail_lsn = atomic64_read(&log->l_tail_lsn); - ), - TP_printk("dev %d:%d type %s t_ocnt %u t_cnt %u t_curr_res %u " - "t_unit_res %u t_flags %s reserveq %s " - "writeq %s grant_reserve_cycle %d " - "grant_reserve_bytes %d grant_write_cycle %d " - "grant_write_bytes %d curr_cycle %d curr_block %d " - "tail_cycle %d tail_block %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __print_symbolic(__entry->trans_type, XFS_TRANS_TYPES), - __entry->ocnt, - __entry->cnt, - __entry->curr_res, - __entry->unit_res, - __print_flags(__entry->flags, "|", XLOG_TIC_FLAGS), - __entry->reserveq ? "empty" : "active", - __entry->writeq ? "empty" : "active", - __entry->grant_reserve_cycle, - __entry->grant_reserve_bytes, - __entry->grant_write_cycle, - __entry->grant_write_bytes, - __entry->curr_cycle, - __entry->curr_block, - CYCLE_LSN(__entry->tail_lsn), - BLOCK_LSN(__entry->tail_lsn) - ) -) - -#define DEFINE_LOGGRANT_EVENT(name) \ -DEFINE_EVENT(xfs_loggrant_class, name, \ - TP_PROTO(struct log *log, struct xlog_ticket *tic), \ - TP_ARGS(log, tic)) -DEFINE_LOGGRANT_EVENT(xfs_log_done_nonperm); -DEFINE_LOGGRANT_EVENT(xfs_log_done_perm); -DEFINE_LOGGRANT_EVENT(xfs_log_reserve); -DEFINE_LOGGRANT_EVENT(xfs_log_umount_write); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_enter); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_exit); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_error); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_sleep1); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake1); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_sleep2); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake2); -DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake_up); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_enter); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_exit); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_error); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_sleep1); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake1); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_sleep2); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake2); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake_up); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_enter); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_exit); -DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_sub); -DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_enter); -DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_exit); -DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_sub); - -DECLARE_EVENT_CLASS(xfs_file_class, - TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), - TP_ARGS(ip, count, offset, flags), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_fsize_t, new_size) - __field(loff_t, offset) - __field(size_t, count) - __field(int, flags) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->new_size = ip->i_new_size; - __entry->offset = offset; - __entry->count = count; - __entry->flags = flags; - ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " - "offset 0x%llx count 0x%zx ioflags %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->new_size, - __entry->offset, - __entry->count, - __print_flags(__entry->flags, "|", XFS_IO_FLAGS)) -) - -#define DEFINE_RW_EVENT(name) \ -DEFINE_EVENT(xfs_file_class, name, \ - TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), \ - TP_ARGS(ip, count, offset, flags)) -DEFINE_RW_EVENT(xfs_file_read); -DEFINE_RW_EVENT(xfs_file_buffered_write); -DEFINE_RW_EVENT(xfs_file_direct_write); -DEFINE_RW_EVENT(xfs_file_splice_read); -DEFINE_RW_EVENT(xfs_file_splice_write); - -DECLARE_EVENT_CLASS(xfs_page_class, - TP_PROTO(struct inode *inode, struct page *page, unsigned long off), - TP_ARGS(inode, page, off), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(pgoff_t, pgoff) - __field(loff_t, size) - __field(unsigned long, offset) - __field(int, delalloc) - __field(int, unwritten) - ), - TP_fast_assign( - int delalloc = -1, unwritten = -1; - - if (page_has_buffers(page)) - xfs_count_page_state(page, &delalloc, &unwritten); - __entry->dev = inode->i_sb->s_dev; - __entry->ino = XFS_I(inode)->i_ino; - __entry->pgoff = page_offset(page); - __entry->size = i_size_read(inode); - __entry->offset = off; - __entry->delalloc = delalloc; - __entry->unwritten = unwritten; - ), - TP_printk("dev %d:%d ino 0x%llx pgoff 0x%lx size 0x%llx offset %lx " - "delalloc %d unwritten %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->pgoff, - __entry->size, - __entry->offset, - __entry->delalloc, - __entry->unwritten) -) - -#define DEFINE_PAGE_EVENT(name) \ -DEFINE_EVENT(xfs_page_class, name, \ - TP_PROTO(struct inode *inode, struct page *page, unsigned long off), \ - TP_ARGS(inode, page, off)) -DEFINE_PAGE_EVENT(xfs_writepage); -DEFINE_PAGE_EVENT(xfs_releasepage); -DEFINE_PAGE_EVENT(xfs_invalidatepage); - -DECLARE_EVENT_CLASS(xfs_imap_class, - TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, - int type, struct xfs_bmbt_irec *irec), - TP_ARGS(ip, offset, count, type, irec), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(loff_t, size) - __field(loff_t, new_size) - __field(loff_t, offset) - __field(size_t, count) - __field(int, type) - __field(xfs_fileoff_t, startoff) - __field(xfs_fsblock_t, startblock) - __field(xfs_filblks_t, blockcount) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->new_size = ip->i_new_size; - __entry->offset = offset; - __entry->count = count; - __entry->type = type; - __entry->startoff = irec ? irec->br_startoff : 0; - __entry->startblock = irec ? irec->br_startblock : 0; - __entry->blockcount = irec ? irec->br_blockcount : 0; - ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " - "offset 0x%llx count %zd type %s " - "startoff 0x%llx startblock %lld blockcount 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->new_size, - __entry->offset, - __entry->count, - __print_symbolic(__entry->type, XFS_IO_TYPES), - __entry->startoff, - (__int64_t)__entry->startblock, - __entry->blockcount) -) - -#define DEFINE_IOMAP_EVENT(name) \ -DEFINE_EVENT(xfs_imap_class, name, \ - TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, \ - int type, struct xfs_bmbt_irec *irec), \ - TP_ARGS(ip, offset, count, type, irec)) -DEFINE_IOMAP_EVENT(xfs_map_blocks_found); -DEFINE_IOMAP_EVENT(xfs_map_blocks_alloc); -DEFINE_IOMAP_EVENT(xfs_get_blocks_found); -DEFINE_IOMAP_EVENT(xfs_get_blocks_alloc); - -DECLARE_EVENT_CLASS(xfs_simple_io_class, - TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), - TP_ARGS(ip, offset, count), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(loff_t, isize) - __field(loff_t, disize) - __field(loff_t, new_size) - __field(loff_t, offset) - __field(size_t, count) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->isize = ip->i_size; - __entry->disize = ip->i_d.di_size; - __entry->new_size = ip->i_new_size; - __entry->offset = offset; - __entry->count = count; - ), - TP_printk("dev %d:%d ino 0x%llx isize 0x%llx disize 0x%llx new_size 0x%llx " - "offset 0x%llx count %zd", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->isize, - __entry->disize, - __entry->new_size, - __entry->offset, - __entry->count) -); - -#define DEFINE_SIMPLE_IO_EVENT(name) \ -DEFINE_EVENT(xfs_simple_io_class, name, \ - TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), \ - TP_ARGS(ip, offset, count)) -DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enospc); -DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); -DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); -DEFINE_SIMPLE_IO_EVENT(xfs_setfilesize); - -DECLARE_EVENT_CLASS(xfs_itrunc_class, - TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), - TP_ARGS(ip, new_size), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_fsize_t, new_size) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->new_size = new_size; - ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->new_size) -) - -#define DEFINE_ITRUNC_EVENT(name) \ -DEFINE_EVENT(xfs_itrunc_class, name, \ - TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ - TP_ARGS(ip, new_size)) -DEFINE_ITRUNC_EVENT(xfs_itruncate_data_start); -DEFINE_ITRUNC_EVENT(xfs_itruncate_data_end); - -TRACE_EVENT(xfs_pagecache_inval, - TP_PROTO(struct xfs_inode *ip, xfs_off_t start, xfs_off_t finish), - TP_ARGS(ip, start, finish), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_off_t, start) - __field(xfs_off_t, finish) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->start = start; - __entry->finish = finish; - ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx start 0x%llx finish 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->start, - __entry->finish) -); - -TRACE_EVENT(xfs_bunmap, - TP_PROTO(struct xfs_inode *ip, xfs_fileoff_t bno, xfs_filblks_t len, - int flags, unsigned long caller_ip), - TP_ARGS(ip, bno, len, flags, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(xfs_fsize_t, size) - __field(xfs_fileoff_t, bno) - __field(xfs_filblks_t, len) - __field(unsigned long, caller_ip) - __field(int, flags) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->ino = ip->i_ino; - __entry->size = ip->i_d.di_size; - __entry->bno = bno; - __entry->len = len; - __entry->caller_ip = caller_ip; - __entry->flags = flags; - ), - TP_printk("dev %d:%d ino 0x%llx size 0x%llx bno 0x%llx len 0x%llx" - "flags %s caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->bno, - __entry->len, - __print_flags(__entry->flags, "|", XFS_BMAPI_FLAGS), - (void *)__entry->caller_ip) - -); - -DECLARE_EVENT_CLASS(xfs_busy_class, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len), - TP_ARGS(mp, agno, agbno, len), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - ), - TP_printk("dev %d:%d agno %u agbno %u len %u", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->len) -); -#define DEFINE_BUSY_EVENT(name) \ -DEFINE_EVENT(xfs_busy_class, name, \ - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ - xfs_agblock_t agbno, xfs_extlen_t len), \ - TP_ARGS(mp, agno, agbno, len)) -DEFINE_BUSY_EVENT(xfs_alloc_busy); -DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem); -DEFINE_BUSY_EVENT(xfs_alloc_busy_force); -DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); -DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); - -TRACE_EVENT(xfs_alloc_busy_trim, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len, - xfs_agblock_t tbno, xfs_extlen_t tlen), - TP_ARGS(mp, agno, agbno, len, tbno, tlen), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - __field(xfs_agblock_t, tbno) - __field(xfs_extlen_t, tlen) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - __entry->tbno = tbno; - __entry->tlen = tlen; - ), - TP_printk("dev %d:%d agno %u agbno %u len %u tbno %u tlen %u", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->len, - __entry->tbno, - __entry->tlen) -); - -TRACE_EVENT(xfs_trans_commit_lsn, - TP_PROTO(struct xfs_trans *trans), - TP_ARGS(trans), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(struct xfs_trans *, tp) - __field(xfs_lsn_t, lsn) - ), - TP_fast_assign( - __entry->dev = trans->t_mountp->m_super->s_dev; - __entry->tp = trans; - __entry->lsn = trans->t_commit_lsn; - ), - TP_printk("dev %d:%d trans 0x%p commit_lsn 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->tp, - __entry->lsn) -); - -TRACE_EVENT(xfs_agf, - TP_PROTO(struct xfs_mount *mp, struct xfs_agf *agf, int flags, - unsigned long caller_ip), - TP_ARGS(mp, agf, flags, caller_ip), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(int, flags) - __field(__u32, length) - __field(__u32, bno_root) - __field(__u32, cnt_root) - __field(__u32, bno_level) - __field(__u32, cnt_level) - __field(__u32, flfirst) - __field(__u32, fllast) - __field(__u32, flcount) - __field(__u32, freeblks) - __field(__u32, longest) - __field(unsigned long, caller_ip) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = be32_to_cpu(agf->agf_seqno), - __entry->flags = flags; - __entry->length = be32_to_cpu(agf->agf_length), - __entry->bno_root = be32_to_cpu(agf->agf_roots[XFS_BTNUM_BNO]), - __entry->cnt_root = be32_to_cpu(agf->agf_roots[XFS_BTNUM_CNT]), - __entry->bno_level = - be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]), - __entry->cnt_level = - be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]), - __entry->flfirst = be32_to_cpu(agf->agf_flfirst), - __entry->fllast = be32_to_cpu(agf->agf_fllast), - __entry->flcount = be32_to_cpu(agf->agf_flcount), - __entry->freeblks = be32_to_cpu(agf->agf_freeblks), - __entry->longest = be32_to_cpu(agf->agf_longest); - __entry->caller_ip = caller_ip; - ), - TP_printk("dev %d:%d agno %u flags %s length %u roots b %u c %u " - "levels b %u c %u flfirst %u fllast %u flcount %u " - "freeblks %u longest %u caller %pf", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __print_flags(__entry->flags, "|", XFS_AGF_FLAGS), - __entry->length, - __entry->bno_root, - __entry->cnt_root, - __entry->bno_level, - __entry->cnt_level, - __entry->flfirst, - __entry->fllast, - __entry->flcount, - __entry->freeblks, - __entry->longest, - (void *)__entry->caller_ip) -); - -TRACE_EVENT(xfs_free_extent, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, - xfs_extlen_t len, bool isfl, int haveleft, int haveright), - TP_ARGS(mp, agno, agbno, len, isfl, haveleft, haveright), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - __field(int, isfl) - __field(int, haveleft) - __field(int, haveright) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - __entry->isfl = isfl; - __entry->haveleft = haveleft; - __entry->haveright = haveright; - ), - TP_printk("dev %d:%d agno %u agbno %u len %u isfl %d %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->len, - __entry->isfl, - __entry->haveleft ? - (__entry->haveright ? "both" : "left") : - (__entry->haveright ? "right" : "none")) - -); - -DECLARE_EVENT_CLASS(xfs_alloc_class, - TP_PROTO(struct xfs_alloc_arg *args), - TP_ARGS(args), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, minlen) - __field(xfs_extlen_t, maxlen) - __field(xfs_extlen_t, mod) - __field(xfs_extlen_t, prod) - __field(xfs_extlen_t, minleft) - __field(xfs_extlen_t, total) - __field(xfs_extlen_t, alignment) - __field(xfs_extlen_t, minalignslop) - __field(xfs_extlen_t, len) - __field(short, type) - __field(short, otype) - __field(char, wasdel) - __field(char, wasfromfl) - __field(char, isfl) - __field(char, userdata) - __field(xfs_fsblock_t, firstblock) - ), - TP_fast_assign( - __entry->dev = args->mp->m_super->s_dev; - __entry->agno = args->agno; - __entry->agbno = args->agbno; - __entry->minlen = args->minlen; - __entry->maxlen = args->maxlen; - __entry->mod = args->mod; - __entry->prod = args->prod; - __entry->minleft = args->minleft; - __entry->total = args->total; - __entry->alignment = args->alignment; - __entry->minalignslop = args->minalignslop; - __entry->len = args->len; - __entry->type = args->type; - __entry->otype = args->otype; - __entry->wasdel = args->wasdel; - __entry->wasfromfl = args->wasfromfl; - __entry->isfl = args->isfl; - __entry->userdata = args->userdata; - __entry->firstblock = args->firstblock; - ), - TP_printk("dev %d:%d agno %u agbno %u minlen %u maxlen %u mod %u " - "prod %u minleft %u total %u alignment %u minalignslop %u " - "len %u type %s otype %s wasdel %d wasfromfl %d isfl %d " - "userdata %d firstblock 0x%llx", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->minlen, - __entry->maxlen, - __entry->mod, - __entry->prod, - __entry->minleft, - __entry->total, - __entry->alignment, - __entry->minalignslop, - __entry->len, - __print_symbolic(__entry->type, XFS_ALLOC_TYPES), - __print_symbolic(__entry->otype, XFS_ALLOC_TYPES), - __entry->wasdel, - __entry->wasfromfl, - __entry->isfl, - __entry->userdata, - (unsigned long long)__entry->firstblock) -) - -#define DEFINE_ALLOC_EVENT(name) \ -DEFINE_EVENT(xfs_alloc_class, name, \ - TP_PROTO(struct xfs_alloc_arg *args), \ - TP_ARGS(args)) -DEFINE_ALLOC_EVENT(xfs_alloc_exact_done); -DEFINE_ALLOC_EVENT(xfs_alloc_exact_notfound); -DEFINE_ALLOC_EVENT(xfs_alloc_exact_error); -DEFINE_ALLOC_EVENT(xfs_alloc_near_nominleft); -DEFINE_ALLOC_EVENT(xfs_alloc_near_first); -DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); -DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); -DEFINE_ALLOC_EVENT(xfs_alloc_near_error); -DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); -DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); -DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); -DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); -DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); -DEFINE_ALLOC_EVENT(xfs_alloc_size_done); -DEFINE_ALLOC_EVENT(xfs_alloc_size_error); -DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); -DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); -DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); -DEFINE_ALLOC_EVENT(xfs_alloc_small_done); -DEFINE_ALLOC_EVENT(xfs_alloc_small_error); -DEFINE_ALLOC_EVENT(xfs_alloc_vextent_badargs); -DEFINE_ALLOC_EVENT(xfs_alloc_vextent_nofix); -DEFINE_ALLOC_EVENT(xfs_alloc_vextent_noagbp); -DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed); -DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed); - -DECLARE_EVENT_CLASS(xfs_dir2_class, - TP_PROTO(struct xfs_da_args *args), - TP_ARGS(args), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __dynamic_array(char, name, args->namelen) - __field(int, namelen) - __field(xfs_dahash_t, hashval) - __field(xfs_ino_t, inumber) - __field(int, op_flags) - ), - TP_fast_assign( - __entry->dev = VFS_I(args->dp)->i_sb->s_dev; - __entry->ino = args->dp->i_ino; - if (args->namelen) - memcpy(__get_str(name), args->name, args->namelen); - __entry->namelen = args->namelen; - __entry->hashval = args->hashval; - __entry->inumber = args->inumber; - __entry->op_flags = args->op_flags; - ), - TP_printk("dev %d:%d ino 0x%llx name %.*s namelen %d hashval 0x%x " - "inumber 0x%llx op_flags %s", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->namelen, - __entry->namelen ? __get_str(name) : NULL, - __entry->namelen, - __entry->hashval, - __entry->inumber, - __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS)) -) - -#define DEFINE_DIR2_EVENT(name) \ -DEFINE_EVENT(xfs_dir2_class, name, \ - TP_PROTO(struct xfs_da_args *args), \ - TP_ARGS(args)) -DEFINE_DIR2_EVENT(xfs_dir2_sf_addname); -DEFINE_DIR2_EVENT(xfs_dir2_sf_create); -DEFINE_DIR2_EVENT(xfs_dir2_sf_lookup); -DEFINE_DIR2_EVENT(xfs_dir2_sf_replace); -DEFINE_DIR2_EVENT(xfs_dir2_sf_removename); -DEFINE_DIR2_EVENT(xfs_dir2_sf_toino4); -DEFINE_DIR2_EVENT(xfs_dir2_sf_toino8); -DEFINE_DIR2_EVENT(xfs_dir2_sf_to_block); -DEFINE_DIR2_EVENT(xfs_dir2_block_addname); -DEFINE_DIR2_EVENT(xfs_dir2_block_lookup); -DEFINE_DIR2_EVENT(xfs_dir2_block_replace); -DEFINE_DIR2_EVENT(xfs_dir2_block_removename); -DEFINE_DIR2_EVENT(xfs_dir2_block_to_sf); -DEFINE_DIR2_EVENT(xfs_dir2_block_to_leaf); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_addname); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_lookup); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_replace); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_removename); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_block); -DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_node); -DEFINE_DIR2_EVENT(xfs_dir2_node_addname); -DEFINE_DIR2_EVENT(xfs_dir2_node_lookup); -DEFINE_DIR2_EVENT(xfs_dir2_node_replace); -DEFINE_DIR2_EVENT(xfs_dir2_node_removename); -DEFINE_DIR2_EVENT(xfs_dir2_node_to_leaf); - -DECLARE_EVENT_CLASS(xfs_dir2_space_class, - TP_PROTO(struct xfs_da_args *args, int idx), - TP_ARGS(args, idx), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(int, op_flags) - __field(int, idx) - ), - TP_fast_assign( - __entry->dev = VFS_I(args->dp)->i_sb->s_dev; - __entry->ino = args->dp->i_ino; - __entry->op_flags = args->op_flags; - __entry->idx = idx; - ), - TP_printk("dev %d:%d ino 0x%llx op_flags %s index %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), - __entry->idx) -) - -#define DEFINE_DIR2_SPACE_EVENT(name) \ -DEFINE_EVENT(xfs_dir2_space_class, name, \ - TP_PROTO(struct xfs_da_args *args, int idx), \ - TP_ARGS(args, idx)) -DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_add); -DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_remove); -DEFINE_DIR2_SPACE_EVENT(xfs_dir2_grow_inode); -DEFINE_DIR2_SPACE_EVENT(xfs_dir2_shrink_inode); - -TRACE_EVENT(xfs_dir2_leafn_moveents, - TP_PROTO(struct xfs_da_args *args, int src_idx, int dst_idx, int count), - TP_ARGS(args, src_idx, dst_idx, count), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(int, op_flags) - __field(int, src_idx) - __field(int, dst_idx) - __field(int, count) - ), - TP_fast_assign( - __entry->dev = VFS_I(args->dp)->i_sb->s_dev; - __entry->ino = args->dp->i_ino; - __entry->op_flags = args->op_flags; - __entry->src_idx = src_idx; - __entry->dst_idx = dst_idx; - __entry->count = count; - ), - TP_printk("dev %d:%d ino 0x%llx op_flags %s " - "src_idx %d dst_idx %d count %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), - __entry->src_idx, - __entry->dst_idx, - __entry->count) -); - -#define XFS_SWAPEXT_INODES \ - { 0, "target" }, \ - { 1, "temp" } - -#define XFS_INODE_FORMAT_STR \ - { 0, "invalid" }, \ - { 1, "local" }, \ - { 2, "extent" }, \ - { 3, "btree" } - -DECLARE_EVENT_CLASS(xfs_swap_extent_class, - TP_PROTO(struct xfs_inode *ip, int which), - TP_ARGS(ip, which), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(int, which) - __field(xfs_ino_t, ino) - __field(int, format) - __field(int, nex) - __field(int, max_nex) - __field(int, broot_size) - __field(int, fork_off) - ), - TP_fast_assign( - __entry->dev = VFS_I(ip)->i_sb->s_dev; - __entry->which = which; - __entry->ino = ip->i_ino; - __entry->format = ip->i_d.di_format; - __entry->nex = ip->i_d.di_nextents; - __entry->max_nex = ip->i_df.if_ext_max; - __entry->broot_size = ip->i_df.if_broot_bytes; - __entry->fork_off = XFS_IFORK_BOFF(ip); - ), - TP_printk("dev %d:%d ino 0x%llx (%s), %s format, num_extents %d, " - "Max in-fork extents %d, broot size %d, fork offset %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __print_symbolic(__entry->which, XFS_SWAPEXT_INODES), - __print_symbolic(__entry->format, XFS_INODE_FORMAT_STR), - __entry->nex, - __entry->max_nex, - __entry->broot_size, - __entry->fork_off) -) - -#define DEFINE_SWAPEXT_EVENT(name) \ -DEFINE_EVENT(xfs_swap_extent_class, name, \ - TP_PROTO(struct xfs_inode *ip, int which), \ - TP_ARGS(ip, which)) - -DEFINE_SWAPEXT_EVENT(xfs_swap_extent_before); -DEFINE_SWAPEXT_EVENT(xfs_swap_extent_after); - -DECLARE_EVENT_CLASS(xfs_log_recover_item_class, - TP_PROTO(struct log *log, struct xlog_recover *trans, - struct xlog_recover_item *item, int pass), - TP_ARGS(log, trans, item, pass), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(unsigned long, item) - __field(xlog_tid_t, tid) - __field(int, type) - __field(int, pass) - __field(int, count) - __field(int, total) - ), - TP_fast_assign( - __entry->dev = log->l_mp->m_super->s_dev; - __entry->item = (unsigned long)item; - __entry->tid = trans->r_log_tid; - __entry->type = ITEM_TYPE(item); - __entry->pass = pass; - __entry->count = item->ri_cnt; - __entry->total = item->ri_total; - ), - TP_printk("dev %d:%d trans 0x%x, pass %d, item 0x%p, item type %s " - "item region count/total %d/%d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->tid, - __entry->pass, - (void *)__entry->item, - __print_symbolic(__entry->type, XFS_LI_TYPE_DESC), - __entry->count, - __entry->total) -) - -#define DEFINE_LOG_RECOVER_ITEM(name) \ -DEFINE_EVENT(xfs_log_recover_item_class, name, \ - TP_PROTO(struct log *log, struct xlog_recover *trans, \ - struct xlog_recover_item *item, int pass), \ - TP_ARGS(log, trans, item, pass)) - -DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add); -DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add_cont); -DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_head); -DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_tail); -DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_recover); - -DECLARE_EVENT_CLASS(xfs_log_recover_buf_item_class, - TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), - TP_ARGS(log, buf_f), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(__int64_t, blkno) - __field(unsigned short, len) - __field(unsigned short, flags) - __field(unsigned short, size) - __field(unsigned int, map_size) - ), - TP_fast_assign( - __entry->dev = log->l_mp->m_super->s_dev; - __entry->blkno = buf_f->blf_blkno; - __entry->len = buf_f->blf_len; - __entry->flags = buf_f->blf_flags; - __entry->size = buf_f->blf_size; - __entry->map_size = buf_f->blf_map_size; - ), - TP_printk("dev %d:%d blkno 0x%llx, len %u, flags 0x%x, size %d, " - "map_size %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->blkno, - __entry->len, - __entry->flags, - __entry->size, - __entry->map_size) -) - -#define DEFINE_LOG_RECOVER_BUF_ITEM(name) \ -DEFINE_EVENT(xfs_log_recover_buf_item_class, name, \ - TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), \ - TP_ARGS(log, buf_f)) - -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_not_cancel); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_add); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_ref_inc); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_recover); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_inode_buf); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_reg_buf); -DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_dquot_buf); - -DECLARE_EVENT_CLASS(xfs_log_recover_ino_item_class, - TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), - TP_ARGS(log, in_f), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_ino_t, ino) - __field(unsigned short, size) - __field(int, fields) - __field(unsigned short, asize) - __field(unsigned short, dsize) - __field(__int64_t, blkno) - __field(int, len) - __field(int, boffset) - ), - TP_fast_assign( - __entry->dev = log->l_mp->m_super->s_dev; - __entry->ino = in_f->ilf_ino; - __entry->size = in_f->ilf_size; - __entry->fields = in_f->ilf_fields; - __entry->asize = in_f->ilf_asize; - __entry->dsize = in_f->ilf_dsize; - __entry->blkno = in_f->ilf_blkno; - __entry->len = in_f->ilf_len; - __entry->boffset = in_f->ilf_boffset; - ), - TP_printk("dev %d:%d ino 0x%llx, size %u, fields 0x%x, asize %d, " - "dsize %d, blkno 0x%llx, len %d, boffset %d", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->ino, - __entry->size, - __entry->fields, - __entry->asize, - __entry->dsize, - __entry->blkno, - __entry->len, - __entry->boffset) -) -#define DEFINE_LOG_RECOVER_INO_ITEM(name) \ -DEFINE_EVENT(xfs_log_recover_ino_item_class, name, \ - TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), \ - TP_ARGS(log, in_f)) - -DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_recover); -DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_cancel); -DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_skip); - -DECLARE_EVENT_CLASS(xfs_discard_class, - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, - xfs_agblock_t agbno, xfs_extlen_t len), - TP_ARGS(mp, agno, agbno, len), - TP_STRUCT__entry( - __field(dev_t, dev) - __field(xfs_agnumber_t, agno) - __field(xfs_agblock_t, agbno) - __field(xfs_extlen_t, len) - ), - TP_fast_assign( - __entry->dev = mp->m_super->s_dev; - __entry->agno = agno; - __entry->agbno = agbno; - __entry->len = len; - ), - TP_printk("dev %d:%d agno %u agbno %u len %u\n", - MAJOR(__entry->dev), MINOR(__entry->dev), - __entry->agno, - __entry->agbno, - __entry->len) -) - -#define DEFINE_DISCARD_EVENT(name) \ -DEFINE_EVENT(xfs_discard_class, name, \ - TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ - xfs_agblock_t agbno, xfs_extlen_t len), \ - TP_ARGS(mp, agno, agbno, len)) -DEFINE_DISCARD_EVENT(xfs_discard_extent); -DEFINE_DISCARD_EVENT(xfs_discard_toosmall); -DEFINE_DISCARD_EVENT(xfs_discard_exclude); -DEFINE_DISCARD_EVENT(xfs_discard_busy); - -#endif /* _TRACE_XFS_H */ - -#undef TRACE_INCLUDE_PATH -#define TRACE_INCLUDE_PATH . -#define TRACE_INCLUDE_FILE xfs_trace -#include diff --git a/fs/xfs/linux-2.6/xfs_vnode.h b/fs/xfs/linux-2.6/xfs_vnode.h deleted file mode 100644 index 7c220b4..0000000 --- a/fs/xfs/linux-2.6/xfs_vnode.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_VNODE_H__ -#define __XFS_VNODE_H__ - -#include "xfs_fs.h" - -struct file; -struct xfs_inode; -struct xfs_iomap; -struct attrlist_cursor_kern; - -/* - * Return values for xfs_inactive. A return value of - * VN_INACTIVE_NOCACHE implies that the file system behavior - * has disassociated its state and bhv_desc_t from the vnode. - */ -#define VN_INACTIVE_CACHE 0 -#define VN_INACTIVE_NOCACHE 1 - -/* - * Flags for read/write calls - same values as IRIX - */ -#define IO_ISDIRECT 0x00004 /* bypass page cache */ -#define IO_INVIS 0x00020 /* don't update inode timestamps */ - -#define XFS_IO_FLAGS \ - { IO_ISDIRECT, "DIRECT" }, \ - { IO_INVIS, "INVIS"} - -/* - * Flush/Invalidate options for vop_toss/flush/flushinval_pages. - */ -#define FI_NONE 0 /* none */ -#define FI_REMAPF 1 /* Do a remapf prior to the operation */ -#define FI_REMAPF_LOCKED 2 /* Do a remapf prior to the operation. - Prevent VM access to the pages until - the operation completes. */ - -/* - * Some useful predicates. - */ -#define VN_MAPPED(vp) mapping_mapped(vp->i_mapping) -#define VN_CACHED(vp) (vp->i_mapping->nrpages) -#define VN_DIRTY(vp) mapping_tagged(vp->i_mapping, \ - PAGECACHE_TAG_DIRTY) - - -#endif /* __XFS_VNODE_H__ */ diff --git a/fs/xfs/linux-2.6/xfs_xattr.c b/fs/xfs/linux-2.6/xfs_xattr.c deleted file mode 100644 index 87d3e03..0000000 --- a/fs/xfs/linux-2.6/xfs_xattr.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (C) 2008 Christoph Hellwig. - * Portions Copyright (C) 2000-2008 Silicon Graphics, 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. - * - * This program is distributed in the hope that it would 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 the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include "xfs.h" -#include "xfs_da_btree.h" -#include "xfs_bmap_btree.h" -#include "xfs_inode.h" -#include "xfs_attr.h" -#include "xfs_attr_leaf.h" -#include "xfs_acl.h" -#include "xfs_vnodeops.h" - -#include -#include - - -static int -xfs_xattr_get(struct dentry *dentry, const char *name, - void *value, size_t size, int xflags) -{ - struct xfs_inode *ip = XFS_I(dentry->d_inode); - int error, asize = size; - - if (strcmp(name, "") == 0) - return -EINVAL; - - /* Convert Linux syscall to XFS internal ATTR flags */ - if (!size) { - xflags |= ATTR_KERNOVAL; - value = NULL; - } - - error = -xfs_attr_get(ip, (unsigned char *)name, value, &asize, xflags); - if (error) - return error; - return asize; -} - -static int -xfs_xattr_set(struct dentry *dentry, const char *name, const void *value, - size_t size, int flags, int xflags) -{ - struct xfs_inode *ip = XFS_I(dentry->d_inode); - - if (strcmp(name, "") == 0) - return -EINVAL; - - /* Convert Linux syscall to XFS internal ATTR flags */ - if (flags & XATTR_CREATE) - xflags |= ATTR_CREATE; - if (flags & XATTR_REPLACE) - xflags |= ATTR_REPLACE; - - if (!value) - return -xfs_attr_remove(ip, (unsigned char *)name, xflags); - return -xfs_attr_set(ip, (unsigned char *)name, - (void *)value, size, xflags); -} - -static const struct xattr_handler xfs_xattr_user_handler = { - .prefix = XATTR_USER_PREFIX, - .flags = 0, /* no flags implies user namespace */ - .get = xfs_xattr_get, - .set = xfs_xattr_set, -}; - -static const struct xattr_handler xfs_xattr_trusted_handler = { - .prefix = XATTR_TRUSTED_PREFIX, - .flags = ATTR_ROOT, - .get = xfs_xattr_get, - .set = xfs_xattr_set, -}; - -static const struct xattr_handler xfs_xattr_security_handler = { - .prefix = XATTR_SECURITY_PREFIX, - .flags = ATTR_SECURE, - .get = xfs_xattr_get, - .set = xfs_xattr_set, -}; - -const struct xattr_handler *xfs_xattr_handlers[] = { - &xfs_xattr_user_handler, - &xfs_xattr_trusted_handler, - &xfs_xattr_security_handler, -#ifdef CONFIG_XFS_POSIX_ACL - &xfs_xattr_acl_access_handler, - &xfs_xattr_acl_default_handler, -#endif - NULL -}; - -static unsigned int xfs_xattr_prefix_len(int flags) -{ - if (flags & XFS_ATTR_SECURE) - return sizeof("security"); - else if (flags & XFS_ATTR_ROOT) - return sizeof("trusted"); - else - return sizeof("user"); -} - -static const char *xfs_xattr_prefix(int flags) -{ - if (flags & XFS_ATTR_SECURE) - return xfs_xattr_security_handler.prefix; - else if (flags & XFS_ATTR_ROOT) - return xfs_xattr_trusted_handler.prefix; - else - return xfs_xattr_user_handler.prefix; -} - -static int -xfs_xattr_put_listent( - struct xfs_attr_list_context *context, - int flags, - unsigned char *name, - int namelen, - int valuelen, - unsigned char *value) -{ - unsigned int prefix_len = xfs_xattr_prefix_len(flags); - char *offset; - int arraytop; - - ASSERT(context->count >= 0); - - /* - * Only show root namespace entries if we are actually allowed to - * see them. - */ - if ((flags & XFS_ATTR_ROOT) && !capable(CAP_SYS_ADMIN)) - return 0; - - arraytop = context->count + prefix_len + namelen + 1; - if (arraytop > context->firstu) { - context->count = -1; /* insufficient space */ - return 1; - } - offset = (char *)context->alist + context->count; - strncpy(offset, xfs_xattr_prefix(flags), prefix_len); - offset += prefix_len; - strncpy(offset, (char *)name, namelen); /* real name */ - offset += namelen; - *offset = '\0'; - context->count += prefix_len + namelen + 1; - return 0; -} - -static int -xfs_xattr_put_listent_sizes( - struct xfs_attr_list_context *context, - int flags, - unsigned char *name, - int namelen, - int valuelen, - unsigned char *value) -{ - context->count += xfs_xattr_prefix_len(flags) + namelen + 1; - return 0; -} - -static int -list_one_attr(const char *name, const size_t len, void *data, - size_t size, ssize_t *result) -{ - char *p = data + *result; - - *result += len; - if (!size) - return 0; - if (*result > size) - return -ERANGE; - - strcpy(p, name); - return 0; -} - -ssize_t -xfs_vn_listxattr(struct dentry *dentry, char *data, size_t size) -{ - struct xfs_attr_list_context context; - struct attrlist_cursor_kern cursor = { 0 }; - struct inode *inode = dentry->d_inode; - int error; - - /* - * First read the regular on-disk attributes. - */ - memset(&context, 0, sizeof(context)); - context.dp = XFS_I(inode); - context.cursor = &cursor; - context.resynch = 1; - context.alist = data; - context.bufsize = size; - context.firstu = context.bufsize; - - if (size) - context.put_listent = xfs_xattr_put_listent; - else - context.put_listent = xfs_xattr_put_listent_sizes; - - xfs_attr_list_int(&context); - if (context.count < 0) - return -ERANGE; - - /* - * Then add the two synthetic ACL attributes. - */ - if (posix_acl_access_exists(inode)) { - error = list_one_attr(POSIX_ACL_XATTR_ACCESS, - strlen(POSIX_ACL_XATTR_ACCESS) + 1, - data, size, &context.count); - if (error) - return error; - } - - if (posix_acl_default_exists(inode)) { - error = list_one_attr(POSIX_ACL_XATTR_DEFAULT, - strlen(POSIX_ACL_XATTR_DEFAULT) + 1, - data, size, &context.count); - if (error) - return error; - } - - return context.count; -} diff --git a/fs/xfs/linux/kmem.c b/fs/xfs/linux/kmem.c new file mode 100644 index 0000000..a907de5 --- /dev/null +++ b/fs/xfs/linux/kmem.c @@ -0,0 +1,132 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include +#include +#include +#include +#include +#include "time.h" +#include "kmem.h" +#include "xfs_message.h" + +/* + * Greedy allocation. May fail and may return vmalloced memory. + * + * Must be freed using kmem_free_large. + */ +void * +kmem_zalloc_greedy(size_t *size, size_t minsize, size_t maxsize) +{ + void *ptr; + size_t kmsize = maxsize; + + while (!(ptr = kmem_zalloc_large(kmsize))) { + if ((kmsize >>= 1) <= minsize) + kmsize = minsize; + } + if (ptr) + *size = kmsize; + return ptr; +} + +void * +kmem_alloc(size_t size, unsigned int __nocast flags) +{ + int retries = 0; + gfp_t lflags = kmem_flags_convert(flags); + void *ptr; + + do { + ptr = kmalloc(size, lflags); + if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) + return ptr; + if (!(++retries % 100)) + xfs_err(NULL, + "possible memory allocation deadlock in %s (mode:0x%x)", + __func__, lflags); + congestion_wait(BLK_RW_ASYNC, HZ/50); + } while (1); +} + +void * +kmem_zalloc(size_t size, unsigned int __nocast flags) +{ + void *ptr; + + ptr = kmem_alloc(size, flags); + if (ptr) + memset((char *)ptr, 0, (int)size); + return ptr; +} + +void +kmem_free(const void *ptr) +{ + if (!is_vmalloc_addr(ptr)) { + kfree(ptr); + } else { + vfree(ptr); + } +} + +void * +kmem_realloc(const void *ptr, size_t newsize, size_t oldsize, + unsigned int __nocast flags) +{ + void *new; + + new = kmem_alloc(newsize, flags); + if (ptr) { + if (new) + memcpy(new, ptr, + ((oldsize < newsize) ? oldsize : newsize)); + kmem_free(ptr); + } + return new; +} + +void * +kmem_zone_alloc(kmem_zone_t *zone, unsigned int __nocast flags) +{ + int retries = 0; + gfp_t lflags = kmem_flags_convert(flags); + void *ptr; + + do { + ptr = kmem_cache_alloc(zone, lflags); + if (ptr || (flags & (KM_MAYFAIL|KM_NOSLEEP))) + return ptr; + if (!(++retries % 100)) + xfs_err(NULL, + "possible memory allocation deadlock in %s (mode:0x%x)", + __func__, lflags); + congestion_wait(BLK_RW_ASYNC, HZ/50); + } while (1); +} + +void * +kmem_zone_zalloc(kmem_zone_t *zone, unsigned int __nocast flags) +{ + void *ptr; + + ptr = kmem_zone_alloc(zone, flags); + if (ptr) + memset((char *)ptr, 0, kmem_cache_size(zone)); + return ptr; +} diff --git a/fs/xfs/linux/kmem.h b/fs/xfs/linux/kmem.h new file mode 100644 index 0000000..f7c8f7a --- /dev/null +++ b/fs/xfs/linux/kmem.h @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_SUPPORT_KMEM_H__ +#define __XFS_SUPPORT_KMEM_H__ + +#include +#include +#include +#include + +/* + * General memory allocation interfaces + */ + +#define KM_SLEEP 0x0001u +#define KM_NOSLEEP 0x0002u +#define KM_NOFS 0x0004u +#define KM_MAYFAIL 0x0008u + +/* + * We use a special process flag to avoid recursive callbacks into + * the filesystem during transactions. We will also issue our own + * warnings, so we explicitly skip any generic ones (silly of us). + */ +static inline gfp_t +kmem_flags_convert(unsigned int __nocast flags) +{ + gfp_t lflags; + + BUG_ON(flags & ~(KM_SLEEP|KM_NOSLEEP|KM_NOFS|KM_MAYFAIL)); + + if (flags & KM_NOSLEEP) { + lflags = GFP_ATOMIC | __GFP_NOWARN; + } else { + lflags = GFP_KERNEL | __GFP_NOWARN; + if ((current->flags & PF_FSTRANS) || (flags & KM_NOFS)) + lflags &= ~__GFP_FS; + } + return lflags; +} + +extern void *kmem_alloc(size_t, unsigned int __nocast); +extern void *kmem_zalloc(size_t, unsigned int __nocast); +extern void *kmem_realloc(const void *, size_t, size_t, unsigned int __nocast); +extern void kmem_free(const void *); + +static inline void *kmem_zalloc_large(size_t size) +{ + void *ptr; + + ptr = vmalloc(size); + if (ptr) + memset(ptr, 0, size); + return ptr; +} +static inline void kmem_free_large(void *ptr) +{ + vfree(ptr); +} + +extern void *kmem_zalloc_greedy(size_t *, size_t, size_t); + +/* + * Zone interfaces + */ + +#define KM_ZONE_HWALIGN SLAB_HWCACHE_ALIGN +#define KM_ZONE_RECLAIM SLAB_RECLAIM_ACCOUNT +#define KM_ZONE_SPREAD SLAB_MEM_SPREAD + +#define kmem_zone kmem_cache +#define kmem_zone_t struct kmem_cache + +static inline kmem_zone_t * +kmem_zone_init(int size, char *zone_name) +{ + return kmem_cache_create(zone_name, size, 0, 0, NULL); +} + +static inline kmem_zone_t * +kmem_zone_init_flags(int size, char *zone_name, unsigned long flags, + void (*construct)(void *)) +{ + return kmem_cache_create(zone_name, size, 0, flags, construct); +} + +static inline void +kmem_zone_free(kmem_zone_t *zone, void *ptr) +{ + kmem_cache_free(zone, ptr); +} + +static inline void +kmem_zone_destroy(kmem_zone_t *zone) +{ + if (zone) + kmem_cache_destroy(zone); +} + +extern void *kmem_zone_alloc(kmem_zone_t *, unsigned int __nocast); +extern void *kmem_zone_zalloc(kmem_zone_t *, unsigned int __nocast); + +static inline int +kmem_shake_allow(gfp_t gfp_mask) +{ + return ((gfp_mask & __GFP_WAIT) && (gfp_mask & __GFP_FS)); +} + +#endif /* __XFS_SUPPORT_KMEM_H__ */ diff --git a/fs/xfs/linux/mrlock.h b/fs/xfs/linux/mrlock.h new file mode 100644 index 0000000..ff6a198 --- /dev/null +++ b/fs/xfs/linux/mrlock.h @@ -0,0 +1,90 @@ +/* + * Copyright (c) 2000-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_SUPPORT_MRLOCK_H__ +#define __XFS_SUPPORT_MRLOCK_H__ + +#include + +typedef struct { + struct rw_semaphore mr_lock; +#ifdef DEBUG + int mr_writer; +#endif +} mrlock_t; + +#ifdef DEBUG +#define mrinit(mrp, name) \ + do { (mrp)->mr_writer = 0; init_rwsem(&(mrp)->mr_lock); } while (0) +#else +#define mrinit(mrp, name) \ + do { init_rwsem(&(mrp)->mr_lock); } while (0) +#endif + +#define mrlock_init(mrp, t,n,s) mrinit(mrp, n) +#define mrfree(mrp) do { } while (0) + +static inline void mraccess_nested(mrlock_t *mrp, int subclass) +{ + down_read_nested(&mrp->mr_lock, subclass); +} + +static inline void mrupdate_nested(mrlock_t *mrp, int subclass) +{ + down_write_nested(&mrp->mr_lock, subclass); +#ifdef DEBUG + mrp->mr_writer = 1; +#endif +} + +static inline int mrtryaccess(mrlock_t *mrp) +{ + return down_read_trylock(&mrp->mr_lock); +} + +static inline int mrtryupdate(mrlock_t *mrp) +{ + if (!down_write_trylock(&mrp->mr_lock)) + return 0; +#ifdef DEBUG + mrp->mr_writer = 1; +#endif + return 1; +} + +static inline void mrunlock_excl(mrlock_t *mrp) +{ +#ifdef DEBUG + mrp->mr_writer = 0; +#endif + up_write(&mrp->mr_lock); +} + +static inline void mrunlock_shared(mrlock_t *mrp) +{ + up_read(&mrp->mr_lock); +} + +static inline void mrdemote(mrlock_t *mrp) +{ +#ifdef DEBUG + mrp->mr_writer = 0; +#endif + downgrade_write(&mrp->mr_lock); +} + +#endif /* __XFS_SUPPORT_MRLOCK_H__ */ diff --git a/fs/xfs/linux/time.h b/fs/xfs/linux/time.h new file mode 100644 index 0000000..387e695 --- /dev/null +++ b/fs/xfs/linux/time.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_SUPPORT_TIME_H__ +#define __XFS_SUPPORT_TIME_H__ + +#include +#include + +typedef struct timespec timespec_t; + +static inline void delay(long ticks) +{ + schedule_timeout_uninterruptible(ticks); +} + +static inline void nanotime(struct timespec *tvp) +{ + *tvp = CURRENT_TIME; +} + +#endif /* __XFS_SUPPORT_TIME_H__ */ diff --git a/fs/xfs/linux/xfs_acl.c b/fs/xfs/linux/xfs_acl.c new file mode 100644 index 0000000..115ac69 --- /dev/null +++ b/fs/xfs/linux/xfs_acl.c @@ -0,0 +1,462 @@ +/* + * Copyright (c) 2008, Christoph Hellwig + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_acl.h" +#include "xfs_attr.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "xfs_vnodeops.h" +#include "xfs_trace.h" +#include +#include +#include + + +/* + * Locking scheme: + * - all ACL updates are protected by inode->i_mutex, which is taken before + * calling into this file. + */ + +STATIC struct posix_acl * +xfs_acl_from_disk(struct xfs_acl *aclp) +{ + struct posix_acl_entry *acl_e; + struct posix_acl *acl; + struct xfs_acl_entry *ace; + int count, i; + + count = be32_to_cpu(aclp->acl_cnt); + + acl = posix_acl_alloc(count, GFP_KERNEL); + if (!acl) + return ERR_PTR(-ENOMEM); + + for (i = 0; i < count; i++) { + acl_e = &acl->a_entries[i]; + ace = &aclp->acl_entry[i]; + + /* + * The tag is 32 bits on disk and 16 bits in core. + * + * Because every access to it goes through the core + * format first this is not a problem. + */ + acl_e->e_tag = be32_to_cpu(ace->ae_tag); + acl_e->e_perm = be16_to_cpu(ace->ae_perm); + + switch (acl_e->e_tag) { + case ACL_USER: + case ACL_GROUP: + acl_e->e_id = be32_to_cpu(ace->ae_id); + break; + case ACL_USER_OBJ: + case ACL_GROUP_OBJ: + case ACL_MASK: + case ACL_OTHER: + acl_e->e_id = ACL_UNDEFINED_ID; + break; + default: + goto fail; + } + } + return acl; + +fail: + posix_acl_release(acl); + return ERR_PTR(-EINVAL); +} + +STATIC void +xfs_acl_to_disk(struct xfs_acl *aclp, const struct posix_acl *acl) +{ + const struct posix_acl_entry *acl_e; + struct xfs_acl_entry *ace; + int i; + + aclp->acl_cnt = cpu_to_be32(acl->a_count); + for (i = 0; i < acl->a_count; i++) { + ace = &aclp->acl_entry[i]; + acl_e = &acl->a_entries[i]; + + ace->ae_tag = cpu_to_be32(acl_e->e_tag); + ace->ae_id = cpu_to_be32(acl_e->e_id); + ace->ae_perm = cpu_to_be16(acl_e->e_perm); + } +} + +struct posix_acl * +xfs_get_acl(struct inode *inode, int type) +{ + struct xfs_inode *ip = XFS_I(inode); + struct posix_acl *acl; + struct xfs_acl *xfs_acl; + int len = sizeof(struct xfs_acl); + unsigned char *ea_name; + int error; + + acl = get_cached_acl(inode, type); + if (acl != ACL_NOT_CACHED) + return acl; + + switch (type) { + case ACL_TYPE_ACCESS: + ea_name = SGI_ACL_FILE; + break; + case ACL_TYPE_DEFAULT: + ea_name = SGI_ACL_DEFAULT; + break; + default: + BUG(); + } + + /* + * If we have a cached ACLs value just return it, not need to + * go out to the disk. + */ + + xfs_acl = kzalloc(sizeof(struct xfs_acl), GFP_KERNEL); + if (!xfs_acl) + return ERR_PTR(-ENOMEM); + + error = -xfs_attr_get(ip, ea_name, (unsigned char *)xfs_acl, + &len, ATTR_ROOT); + if (error) { + /* + * If the attribute doesn't exist make sure we have a negative + * cache entry, for any other error assume it is transient and + * leave the cache entry as ACL_NOT_CACHED. + */ + if (error == -ENOATTR) { + acl = NULL; + goto out_update_cache; + } + goto out; + } + + acl = xfs_acl_from_disk(xfs_acl); + if (IS_ERR(acl)) + goto out; + + out_update_cache: + set_cached_acl(inode, type, acl); + out: + kfree(xfs_acl); + return acl; +} + +STATIC int +xfs_set_acl(struct inode *inode, int type, struct posix_acl *acl) +{ + struct xfs_inode *ip = XFS_I(inode); + unsigned char *ea_name; + int error; + + if (S_ISLNK(inode->i_mode)) + return -EOPNOTSUPP; + + switch (type) { + case ACL_TYPE_ACCESS: + ea_name = SGI_ACL_FILE; + break; + case ACL_TYPE_DEFAULT: + if (!S_ISDIR(inode->i_mode)) + return acl ? -EACCES : 0; + ea_name = SGI_ACL_DEFAULT; + break; + default: + return -EINVAL; + } + + if (acl) { + struct xfs_acl *xfs_acl; + int len; + + xfs_acl = kzalloc(sizeof(struct xfs_acl), GFP_KERNEL); + if (!xfs_acl) + return -ENOMEM; + + xfs_acl_to_disk(xfs_acl, acl); + len = sizeof(struct xfs_acl) - + (sizeof(struct xfs_acl_entry) * + (XFS_ACL_MAX_ENTRIES - acl->a_count)); + + error = -xfs_attr_set(ip, ea_name, (unsigned char *)xfs_acl, + len, ATTR_ROOT); + + kfree(xfs_acl); + } else { + /* + * A NULL ACL argument means we want to remove the ACL. + */ + error = -xfs_attr_remove(ip, ea_name, ATTR_ROOT); + + /* + * If the attribute didn't exist to start with that's fine. + */ + if (error == -ENOATTR) + error = 0; + } + + if (!error) + set_cached_acl(inode, type, acl); + return error; +} + +int +xfs_check_acl(struct inode *inode, int mask, unsigned int flags) +{ + struct xfs_inode *ip; + struct posix_acl *acl; + int error = -EAGAIN; + + ip = XFS_I(inode); + trace_xfs_check_acl(ip); + + /* + * If there is no attribute fork no ACL exists on this inode and + * we can skip the whole exercise. + */ + if (!XFS_IFORK_Q(ip)) + return -EAGAIN; + + if (flags & IPERM_FLAG_RCU) { + if (!negative_cached_acl(inode, ACL_TYPE_ACCESS)) + return -ECHILD; + return -EAGAIN; + } + + acl = xfs_get_acl(inode, ACL_TYPE_ACCESS); + if (IS_ERR(acl)) + return PTR_ERR(acl); + if (acl) { + error = posix_acl_permission(inode, acl, mask); + posix_acl_release(acl); + } + + return error; +} + +static int +xfs_set_mode(struct inode *inode, mode_t mode) +{ + int error = 0; + + if (mode != inode->i_mode) { + struct iattr iattr; + + iattr.ia_valid = ATTR_MODE | ATTR_CTIME; + iattr.ia_mode = mode; + iattr.ia_ctime = current_fs_time(inode->i_sb); + + error = -xfs_setattr_nonsize(XFS_I(inode), &iattr, XFS_ATTR_NOACL); + } + + return error; +} + +static int +xfs_acl_exists(struct inode *inode, unsigned char *name) +{ + int len = sizeof(struct xfs_acl); + + return (xfs_attr_get(XFS_I(inode), name, NULL, &len, + ATTR_ROOT|ATTR_KERNOVAL) == 0); +} + +int +posix_acl_access_exists(struct inode *inode) +{ + return xfs_acl_exists(inode, SGI_ACL_FILE); +} + +int +posix_acl_default_exists(struct inode *inode) +{ + if (!S_ISDIR(inode->i_mode)) + return 0; + return xfs_acl_exists(inode, SGI_ACL_DEFAULT); +} + +/* + * No need for i_mutex because the inode is not yet exposed to the VFS. + */ +int +xfs_inherit_acl(struct inode *inode, struct posix_acl *default_acl) +{ + struct posix_acl *clone; + mode_t mode; + int error = 0, inherit = 0; + + if (S_ISDIR(inode->i_mode)) { + error = xfs_set_acl(inode, ACL_TYPE_DEFAULT, default_acl); + if (error) + return error; + } + + clone = posix_acl_clone(default_acl, GFP_KERNEL); + if (!clone) + return -ENOMEM; + + mode = inode->i_mode; + error = posix_acl_create_masq(clone, &mode); + if (error < 0) + goto out_release_clone; + + /* + * If posix_acl_create_masq returns a positive value we need to + * inherit a permission that can't be represented using the Unix + * mode bits and we actually need to set an ACL. + */ + if (error > 0) + inherit = 1; + + error = xfs_set_mode(inode, mode); + if (error) + goto out_release_clone; + + if (inherit) + error = xfs_set_acl(inode, ACL_TYPE_ACCESS, clone); + + out_release_clone: + posix_acl_release(clone); + return error; +} + +int +xfs_acl_chmod(struct inode *inode) +{ + struct posix_acl *acl, *clone; + int error; + + if (S_ISLNK(inode->i_mode)) + return -EOPNOTSUPP; + + acl = xfs_get_acl(inode, ACL_TYPE_ACCESS); + if (IS_ERR(acl) || !acl) + return PTR_ERR(acl); + + clone = posix_acl_clone(acl, GFP_KERNEL); + posix_acl_release(acl); + if (!clone) + return -ENOMEM; + + error = posix_acl_chmod_masq(clone, inode->i_mode); + if (!error) + error = xfs_set_acl(inode, ACL_TYPE_ACCESS, clone); + + posix_acl_release(clone); + return error; +} + +static int +xfs_xattr_acl_get(struct dentry *dentry, const char *name, + void *value, size_t size, int type) +{ + struct posix_acl *acl; + int error; + + acl = xfs_get_acl(dentry->d_inode, type); + if (IS_ERR(acl)) + return PTR_ERR(acl); + if (acl == NULL) + return -ENODATA; + + error = posix_acl_to_xattr(acl, value, size); + posix_acl_release(acl); + + return error; +} + +static int +xfs_xattr_acl_set(struct dentry *dentry, const char *name, + const void *value, size_t size, int flags, int type) +{ + struct inode *inode = dentry->d_inode; + struct posix_acl *acl = NULL; + int error = 0; + + if (flags & XATTR_CREATE) + return -EINVAL; + if (type == ACL_TYPE_DEFAULT && !S_ISDIR(inode->i_mode)) + return value ? -EACCES : 0; + if ((current_fsuid() != inode->i_uid) && !capable(CAP_FOWNER)) + return -EPERM; + + if (!value) + goto set_acl; + + acl = posix_acl_from_xattr(value, size); + if (!acl) { + /* + * acl_set_file(3) may request that we set default ACLs with + * zero length -- defend (gracefully) against that here. + */ + goto out; + } + if (IS_ERR(acl)) { + error = PTR_ERR(acl); + goto out; + } + + error = posix_acl_valid(acl); + if (error) + goto out_release; + + error = -EINVAL; + if (acl->a_count > XFS_ACL_MAX_ENTRIES) + goto out_release; + + if (type == ACL_TYPE_ACCESS) { + mode_t mode = inode->i_mode; + error = posix_acl_equiv_mode(acl, &mode); + + if (error <= 0) { + posix_acl_release(acl); + acl = NULL; + + if (error < 0) + return error; + } + + error = xfs_set_mode(inode, mode); + if (error) + goto out_release; + } + + set_acl: + error = xfs_set_acl(inode, type, acl); + out_release: + posix_acl_release(acl); + out: + return error; +} + +const struct xattr_handler xfs_xattr_acl_access_handler = { + .prefix = POSIX_ACL_XATTR_ACCESS, + .flags = ACL_TYPE_ACCESS, + .get = xfs_xattr_acl_get, + .set = xfs_xattr_acl_set, +}; + +const struct xattr_handler xfs_xattr_acl_default_handler = { + .prefix = POSIX_ACL_XATTR_DEFAULT, + .flags = ACL_TYPE_DEFAULT, + .get = xfs_xattr_acl_get, + .set = xfs_xattr_acl_set, +}; diff --git a/fs/xfs/linux/xfs_aops.c b/fs/xfs/linux/xfs_aops.c new file mode 100644 index 0000000..26384fe --- /dev/null +++ b/fs/xfs/linux/xfs_aops.c @@ -0,0 +1,1496 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_trans.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_alloc.h" +#include "xfs_error.h" +#include "xfs_rw.h" +#include "xfs_iomap.h" +#include "xfs_vnodeops.h" +#include "xfs_trace.h" +#include "xfs_bmap.h" +#include +#include +#include +#include + + +/* + * Prime number of hash buckets since address is used as the key. + */ +#define NVSYNC 37 +#define to_ioend_wq(v) (&xfs_ioend_wq[((unsigned long)v) % NVSYNC]) +static wait_queue_head_t xfs_ioend_wq[NVSYNC]; + +void __init +xfs_ioend_init(void) +{ + int i; + + for (i = 0; i < NVSYNC; i++) + init_waitqueue_head(&xfs_ioend_wq[i]); +} + +void +xfs_ioend_wait( + xfs_inode_t *ip) +{ + wait_queue_head_t *wq = to_ioend_wq(ip); + + wait_event(*wq, (atomic_read(&ip->i_iocount) == 0)); +} + +STATIC void +xfs_ioend_wake( + xfs_inode_t *ip) +{ + if (atomic_dec_and_test(&ip->i_iocount)) + wake_up(to_ioend_wq(ip)); +} + +void +xfs_count_page_state( + struct page *page, + int *delalloc, + int *unwritten) +{ + struct buffer_head *bh, *head; + + *delalloc = *unwritten = 0; + + bh = head = page_buffers(page); + do { + if (buffer_unwritten(bh)) + (*unwritten) = 1; + else if (buffer_delay(bh)) + (*delalloc) = 1; + } while ((bh = bh->b_this_page) != head); +} + +STATIC struct block_device * +xfs_find_bdev_for_inode( + struct inode *inode) +{ + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + + if (XFS_IS_REALTIME_INODE(ip)) + return mp->m_rtdev_targp->bt_bdev; + else + return mp->m_ddev_targp->bt_bdev; +} + +/* + * We're now finished for good with this ioend structure. + * Update the page state via the associated buffer_heads, + * release holds on the inode and bio, and finally free + * up memory. Do not use the ioend after this. + */ +STATIC void +xfs_destroy_ioend( + xfs_ioend_t *ioend) +{ + struct buffer_head *bh, *next; + struct xfs_inode *ip = XFS_I(ioend->io_inode); + + for (bh = ioend->io_buffer_head; bh; bh = next) { + next = bh->b_private; + bh->b_end_io(bh, !ioend->io_error); + } + + /* + * Volume managers supporting multiple paths can send back ENODEV + * when the final path disappears. In this case continuing to fill + * the page cache with dirty data which cannot be written out is + * evil, so prevent that. + */ + if (unlikely(ioend->io_error == -ENODEV)) { + xfs_do_force_shutdown(ip->i_mount, SHUTDOWN_DEVICE_REQ, + __FILE__, __LINE__); + } + + xfs_ioend_wake(ip); + mempool_free(ioend, xfs_ioend_pool); +} + +/* + * If the end of the current ioend is beyond the current EOF, + * return the new EOF value, otherwise zero. + */ +STATIC xfs_fsize_t +xfs_ioend_new_eof( + xfs_ioend_t *ioend) +{ + xfs_inode_t *ip = XFS_I(ioend->io_inode); + xfs_fsize_t isize; + xfs_fsize_t bsize; + + bsize = ioend->io_offset + ioend->io_size; + isize = MAX(ip->i_size, ip->i_new_size); + isize = MIN(isize, bsize); + return isize > ip->i_d.di_size ? isize : 0; +} + +/* + * Update on-disk file size now that data has been written to disk. The + * current in-memory file size is i_size. If a write is beyond eof i_new_size + * will be the intended file size until i_size is updated. If this write does + * not extend all the way to the valid file size then restrict this update to + * the end of the write. + * + * This function does not block as blocking on the inode lock in IO completion + * can lead to IO completion order dependency deadlocks.. If it can't get the + * inode ilock it will return EAGAIN. Callers must handle this. + */ +STATIC int +xfs_setfilesize( + xfs_ioend_t *ioend) +{ + xfs_inode_t *ip = XFS_I(ioend->io_inode); + xfs_fsize_t isize; + + if (unlikely(ioend->io_error)) + return 0; + + if (!xfs_ilock_nowait(ip, XFS_ILOCK_EXCL)) + return EAGAIN; + + isize = xfs_ioend_new_eof(ioend); + if (isize) { + trace_xfs_setfilesize(ip, ioend->io_offset, ioend->io_size); + ip->i_d.di_size = isize; + xfs_mark_inode_dirty(ip); + } + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + return 0; +} + +/* + * Schedule IO completion handling on the final put of an ioend. + */ +STATIC void +xfs_finish_ioend( + struct xfs_ioend *ioend) +{ + if (atomic_dec_and_test(&ioend->io_remaining)) { + if (ioend->io_type == IO_UNWRITTEN) + queue_work(xfsconvertd_workqueue, &ioend->io_work); + else + queue_work(xfsdatad_workqueue, &ioend->io_work); + } +} + +/* + * IO write completion. + */ +STATIC void +xfs_end_io( + struct work_struct *work) +{ + xfs_ioend_t *ioend = container_of(work, xfs_ioend_t, io_work); + struct xfs_inode *ip = XFS_I(ioend->io_inode); + int error = 0; + + /* + * For unwritten extents we need to issue transactions to convert a + * range to normal written extens after the data I/O has finished. + */ + if (ioend->io_type == IO_UNWRITTEN && + likely(!ioend->io_error && !XFS_FORCED_SHUTDOWN(ip->i_mount))) { + + error = xfs_iomap_write_unwritten(ip, ioend->io_offset, + ioend->io_size); + if (error) + ioend->io_error = error; + } + + /* + * We might have to update the on-disk file size after extending + * writes. + */ + error = xfs_setfilesize(ioend); + ASSERT(!error || error == EAGAIN); + + /* + * If we didn't complete processing of the ioend, requeue it to the + * tail of the workqueue for another attempt later. Otherwise destroy + * it. + */ + if (error == EAGAIN) { + atomic_inc(&ioend->io_remaining); + xfs_finish_ioend(ioend); + /* ensure we don't spin on blocked ioends */ + delay(1); + } else { + if (ioend->io_iocb) + aio_complete(ioend->io_iocb, ioend->io_result, 0); + xfs_destroy_ioend(ioend); + } +} + +/* + * Call IO completion handling in caller context on the final put of an ioend. + */ +STATIC void +xfs_finish_ioend_sync( + struct xfs_ioend *ioend) +{ + if (atomic_dec_and_test(&ioend->io_remaining)) + xfs_end_io(&ioend->io_work); +} + +/* + * Allocate and initialise an IO completion structure. + * We need to track unwritten extent write completion here initially. + * We'll need to extend this for updating the ondisk inode size later + * (vs. incore size). + */ +STATIC xfs_ioend_t * +xfs_alloc_ioend( + struct inode *inode, + unsigned int type) +{ + xfs_ioend_t *ioend; + + ioend = mempool_alloc(xfs_ioend_pool, GFP_NOFS); + + /* + * Set the count to 1 initially, which will prevent an I/O + * completion callback from happening before we have started + * all the I/O from calling the completion routine too early. + */ + atomic_set(&ioend->io_remaining, 1); + ioend->io_error = 0; + ioend->io_list = NULL; + ioend->io_type = type; + ioend->io_inode = inode; + ioend->io_buffer_head = NULL; + ioend->io_buffer_tail = NULL; + atomic_inc(&XFS_I(ioend->io_inode)->i_iocount); + ioend->io_offset = 0; + ioend->io_size = 0; + ioend->io_iocb = NULL; + ioend->io_result = 0; + + INIT_WORK(&ioend->io_work, xfs_end_io); + return ioend; +} + +STATIC int +xfs_map_blocks( + struct inode *inode, + loff_t offset, + struct xfs_bmbt_irec *imap, + int type, + int nonblocking) +{ + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + ssize_t count = 1 << inode->i_blkbits; + xfs_fileoff_t offset_fsb, end_fsb; + int error = 0; + int bmapi_flags = XFS_BMAPI_ENTIRE; + int nimaps = 1; + + if (XFS_FORCED_SHUTDOWN(mp)) + return -XFS_ERROR(EIO); + + if (type == IO_UNWRITTEN) + bmapi_flags |= XFS_BMAPI_IGSTATE; + + if (!xfs_ilock_nowait(ip, XFS_ILOCK_SHARED)) { + if (nonblocking) + return -XFS_ERROR(EAGAIN); + xfs_ilock(ip, XFS_ILOCK_SHARED); + } + + ASSERT(ip->i_d.di_format != XFS_DINODE_FMT_BTREE || + (ip->i_df.if_flags & XFS_IFEXTENTS)); + ASSERT(offset <= mp->m_maxioffset); + + if (offset + count > mp->m_maxioffset) + count = mp->m_maxioffset - offset; + end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + count); + offset_fsb = XFS_B_TO_FSBT(mp, offset); + error = xfs_bmapi(NULL, ip, offset_fsb, end_fsb - offset_fsb, + bmapi_flags, NULL, 0, imap, &nimaps, NULL); + xfs_iunlock(ip, XFS_ILOCK_SHARED); + + if (error) + return -XFS_ERROR(error); + + if (type == IO_DELALLOC && + (!nimaps || isnullstartblock(imap->br_startblock))) { + error = xfs_iomap_write_allocate(ip, offset, count, imap); + if (!error) + trace_xfs_map_blocks_alloc(ip, offset, count, type, imap); + return -XFS_ERROR(error); + } + +#ifdef DEBUG + if (type == IO_UNWRITTEN) { + ASSERT(nimaps); + ASSERT(imap->br_startblock != HOLESTARTBLOCK); + ASSERT(imap->br_startblock != DELAYSTARTBLOCK); + } +#endif + if (nimaps) + trace_xfs_map_blocks_found(ip, offset, count, type, imap); + return 0; +} + +STATIC int +xfs_imap_valid( + struct inode *inode, + struct xfs_bmbt_irec *imap, + xfs_off_t offset) +{ + offset >>= inode->i_blkbits; + + return offset >= imap->br_startoff && + offset < imap->br_startoff + imap->br_blockcount; +} + +/* + * BIO completion handler for buffered IO. + */ +STATIC void +xfs_end_bio( + struct bio *bio, + int error) +{ + xfs_ioend_t *ioend = bio->bi_private; + + ASSERT(atomic_read(&bio->bi_cnt) >= 1); + ioend->io_error = test_bit(BIO_UPTODATE, &bio->bi_flags) ? 0 : error; + + /* Toss bio and pass work off to an xfsdatad thread */ + bio->bi_private = NULL; + bio->bi_end_io = NULL; + bio_put(bio); + + xfs_finish_ioend(ioend); +} + +STATIC void +xfs_submit_ioend_bio( + struct writeback_control *wbc, + xfs_ioend_t *ioend, + struct bio *bio) +{ + atomic_inc(&ioend->io_remaining); + bio->bi_private = ioend; + bio->bi_end_io = xfs_end_bio; + + /* + * If the I/O is beyond EOF we mark the inode dirty immediately + * but don't update the inode size until I/O completion. + */ + if (xfs_ioend_new_eof(ioend)) + xfs_mark_inode_dirty(XFS_I(ioend->io_inode)); + + submit_bio(wbc->sync_mode == WB_SYNC_ALL ? WRITE_SYNC : WRITE, bio); +} + +STATIC struct bio * +xfs_alloc_ioend_bio( + struct buffer_head *bh) +{ + int nvecs = bio_get_nr_vecs(bh->b_bdev); + struct bio *bio = bio_alloc(GFP_NOIO, nvecs); + + ASSERT(bio->bi_private == NULL); + bio->bi_sector = bh->b_blocknr * (bh->b_size >> 9); + bio->bi_bdev = bh->b_bdev; + return bio; +} + +STATIC void +xfs_start_buffer_writeback( + struct buffer_head *bh) +{ + ASSERT(buffer_mapped(bh)); + ASSERT(buffer_locked(bh)); + ASSERT(!buffer_delay(bh)); + ASSERT(!buffer_unwritten(bh)); + + mark_buffer_async_write(bh); + set_buffer_uptodate(bh); + clear_buffer_dirty(bh); +} + +STATIC void +xfs_start_page_writeback( + struct page *page, + int clear_dirty, + int buffers) +{ + ASSERT(PageLocked(page)); + ASSERT(!PageWriteback(page)); + if (clear_dirty) + clear_page_dirty_for_io(page); + set_page_writeback(page); + unlock_page(page); + /* If no buffers on the page are to be written, finish it here */ + if (!buffers) + end_page_writeback(page); +} + +static inline int bio_add_buffer(struct bio *bio, struct buffer_head *bh) +{ + return bio_add_page(bio, bh->b_page, bh->b_size, bh_offset(bh)); +} + +/* + * Submit all of the bios for all of the ioends we have saved up, covering the + * initial writepage page and also any probed pages. + * + * Because we may have multiple ioends spanning a page, we need to start + * writeback on all the buffers before we submit them for I/O. If we mark the + * buffers as we got, then we can end up with a page that only has buffers + * marked async write and I/O complete on can occur before we mark the other + * buffers async write. + * + * The end result of this is that we trip a bug in end_page_writeback() because + * we call it twice for the one page as the code in end_buffer_async_write() + * assumes that all buffers on the page are started at the same time. + * + * The fix is two passes across the ioend list - one to start writeback on the + * buffer_heads, and then submit them for I/O on the second pass. + */ +STATIC void +xfs_submit_ioend( + struct writeback_control *wbc, + xfs_ioend_t *ioend) +{ + xfs_ioend_t *head = ioend; + xfs_ioend_t *next; + struct buffer_head *bh; + struct bio *bio; + sector_t lastblock = 0; + + /* Pass 1 - start writeback */ + do { + next = ioend->io_list; + for (bh = ioend->io_buffer_head; bh; bh = bh->b_private) + xfs_start_buffer_writeback(bh); + } while ((ioend = next) != NULL); + + /* Pass 2 - submit I/O */ + ioend = head; + do { + next = ioend->io_list; + bio = NULL; + + for (bh = ioend->io_buffer_head; bh; bh = bh->b_private) { + + if (!bio) { + retry: + bio = xfs_alloc_ioend_bio(bh); + } else if (bh->b_blocknr != lastblock + 1) { + xfs_submit_ioend_bio(wbc, ioend, bio); + goto retry; + } + + if (bio_add_buffer(bio, bh) != bh->b_size) { + xfs_submit_ioend_bio(wbc, ioend, bio); + goto retry; + } + + lastblock = bh->b_blocknr; + } + if (bio) + xfs_submit_ioend_bio(wbc, ioend, bio); + xfs_finish_ioend(ioend); + } while ((ioend = next) != NULL); +} + +/* + * Cancel submission of all buffer_heads so far in this endio. + * Toss the endio too. Only ever called for the initial page + * in a writepage request, so only ever one page. + */ +STATIC void +xfs_cancel_ioend( + xfs_ioend_t *ioend) +{ + xfs_ioend_t *next; + struct buffer_head *bh, *next_bh; + + do { + next = ioend->io_list; + bh = ioend->io_buffer_head; + do { + next_bh = bh->b_private; + clear_buffer_async_write(bh); + unlock_buffer(bh); + } while ((bh = next_bh) != NULL); + + xfs_ioend_wake(XFS_I(ioend->io_inode)); + mempool_free(ioend, xfs_ioend_pool); + } while ((ioend = next) != NULL); +} + +/* + * Test to see if we've been building up a completion structure for + * earlier buffers -- if so, we try to append to this ioend if we + * can, otherwise we finish off any current ioend and start another. + * Return true if we've finished the given ioend. + */ +STATIC void +xfs_add_to_ioend( + struct inode *inode, + struct buffer_head *bh, + xfs_off_t offset, + unsigned int type, + xfs_ioend_t **result, + int need_ioend) +{ + xfs_ioend_t *ioend = *result; + + if (!ioend || need_ioend || type != ioend->io_type) { + xfs_ioend_t *previous = *result; + + ioend = xfs_alloc_ioend(inode, type); + ioend->io_offset = offset; + ioend->io_buffer_head = bh; + ioend->io_buffer_tail = bh; + if (previous) + previous->io_list = ioend; + *result = ioend; + } else { + ioend->io_buffer_tail->b_private = bh; + ioend->io_buffer_tail = bh; + } + + bh->b_private = NULL; + ioend->io_size += bh->b_size; +} + +STATIC void +xfs_map_buffer( + struct inode *inode, + struct buffer_head *bh, + struct xfs_bmbt_irec *imap, + xfs_off_t offset) +{ + sector_t bn; + struct xfs_mount *m = XFS_I(inode)->i_mount; + xfs_off_t iomap_offset = XFS_FSB_TO_B(m, imap->br_startoff); + xfs_daddr_t iomap_bn = xfs_fsb_to_db(XFS_I(inode), imap->br_startblock); + + ASSERT(imap->br_startblock != HOLESTARTBLOCK); + ASSERT(imap->br_startblock != DELAYSTARTBLOCK); + + bn = (iomap_bn >> (inode->i_blkbits - BBSHIFT)) + + ((offset - iomap_offset) >> inode->i_blkbits); + + ASSERT(bn || XFS_IS_REALTIME_INODE(XFS_I(inode))); + + bh->b_blocknr = bn; + set_buffer_mapped(bh); +} + +STATIC void +xfs_map_at_offset( + struct inode *inode, + struct buffer_head *bh, + struct xfs_bmbt_irec *imap, + xfs_off_t offset) +{ + ASSERT(imap->br_startblock != HOLESTARTBLOCK); + ASSERT(imap->br_startblock != DELAYSTARTBLOCK); + + xfs_map_buffer(inode, bh, imap, offset); + set_buffer_mapped(bh); + clear_buffer_delay(bh); + clear_buffer_unwritten(bh); +} + +/* + * Test if a given page is suitable for writing as part of an unwritten + * or delayed allocate extent. + */ +STATIC int +xfs_is_delayed_page( + struct page *page, + unsigned int type) +{ + if (PageWriteback(page)) + return 0; + + if (page->mapping && page_has_buffers(page)) { + struct buffer_head *bh, *head; + int acceptable = 0; + + bh = head = page_buffers(page); + do { + if (buffer_unwritten(bh)) + acceptable = (type == IO_UNWRITTEN); + else if (buffer_delay(bh)) + acceptable = (type == IO_DELALLOC); + else if (buffer_dirty(bh) && buffer_mapped(bh)) + acceptable = (type == IO_OVERWRITE); + else + break; + } while ((bh = bh->b_this_page) != head); + + if (acceptable) + return 1; + } + + return 0; +} + +/* + * Allocate & map buffers for page given the extent map. Write it out. + * except for the original page of a writepage, this is called on + * delalloc/unwritten pages only, for the original page it is possible + * that the page has no mapping at all. + */ +STATIC int +xfs_convert_page( + struct inode *inode, + struct page *page, + loff_t tindex, + struct xfs_bmbt_irec *imap, + xfs_ioend_t **ioendp, + struct writeback_control *wbc) +{ + struct buffer_head *bh, *head; + xfs_off_t end_offset; + unsigned long p_offset; + unsigned int type; + int len, page_dirty; + int count = 0, done = 0, uptodate = 1; + xfs_off_t offset = page_offset(page); + + if (page->index != tindex) + goto fail; + if (!trylock_page(page)) + goto fail; + if (PageWriteback(page)) + goto fail_unlock_page; + if (page->mapping != inode->i_mapping) + goto fail_unlock_page; + if (!xfs_is_delayed_page(page, (*ioendp)->io_type)) + goto fail_unlock_page; + + /* + * page_dirty is initially a count of buffers on the page before + * EOF and is decremented as we move each into a cleanable state. + * + * Derivation: + * + * End offset is the highest offset that this page should represent. + * If we are on the last page, (end_offset & (PAGE_CACHE_SIZE - 1)) + * will evaluate non-zero and be less than PAGE_CACHE_SIZE and + * hence give us the correct page_dirty count. On any other page, + * it will be zero and in that case we need page_dirty to be the + * count of buffers on the page. + */ + end_offset = min_t(unsigned long long, + (xfs_off_t)(page->index + 1) << PAGE_CACHE_SHIFT, + i_size_read(inode)); + + len = 1 << inode->i_blkbits; + p_offset = min_t(unsigned long, end_offset & (PAGE_CACHE_SIZE - 1), + PAGE_CACHE_SIZE); + p_offset = p_offset ? roundup(p_offset, len) : PAGE_CACHE_SIZE; + page_dirty = p_offset / len; + + bh = head = page_buffers(page); + do { + if (offset >= end_offset) + break; + if (!buffer_uptodate(bh)) + uptodate = 0; + if (!(PageUptodate(page) || buffer_uptodate(bh))) { + done = 1; + continue; + } + + if (buffer_unwritten(bh) || buffer_delay(bh) || + buffer_mapped(bh)) { + if (buffer_unwritten(bh)) + type = IO_UNWRITTEN; + else if (buffer_delay(bh)) + type = IO_DELALLOC; + else + type = IO_OVERWRITE; + + if (!xfs_imap_valid(inode, imap, offset)) { + done = 1; + continue; + } + + lock_buffer(bh); + if (type != IO_OVERWRITE) + xfs_map_at_offset(inode, bh, imap, offset); + xfs_add_to_ioend(inode, bh, offset, type, + ioendp, done); + + page_dirty--; + count++; + } else { + done = 1; + } + } while (offset += len, (bh = bh->b_this_page) != head); + + if (uptodate && bh == head) + SetPageUptodate(page); + + if (count) { + if (--wbc->nr_to_write <= 0 && + wbc->sync_mode == WB_SYNC_NONE) + done = 1; + } + xfs_start_page_writeback(page, !page_dirty, count); + + return done; + fail_unlock_page: + unlock_page(page); + fail: + return 1; +} + +/* + * Convert & write out a cluster of pages in the same extent as defined + * by mp and following the start page. + */ +STATIC void +xfs_cluster_write( + struct inode *inode, + pgoff_t tindex, + struct xfs_bmbt_irec *imap, + xfs_ioend_t **ioendp, + struct writeback_control *wbc, + pgoff_t tlast) +{ + struct pagevec pvec; + int done = 0, i; + + pagevec_init(&pvec, 0); + while (!done && tindex <= tlast) { + unsigned len = min_t(pgoff_t, PAGEVEC_SIZE, tlast - tindex + 1); + + if (!pagevec_lookup(&pvec, inode->i_mapping, tindex, len)) + break; + + for (i = 0; i < pagevec_count(&pvec); i++) { + done = xfs_convert_page(inode, pvec.pages[i], tindex++, + imap, ioendp, wbc); + if (done) + break; + } + + pagevec_release(&pvec); + cond_resched(); + } +} + +STATIC void +xfs_vm_invalidatepage( + struct page *page, + unsigned long offset) +{ + trace_xfs_invalidatepage(page->mapping->host, page, offset); + block_invalidatepage(page, offset); +} + +/* + * If the page has delalloc buffers on it, we need to punch them out before we + * invalidate the page. If we don't, we leave a stale delalloc mapping on the + * inode that can trip a BUG() in xfs_get_blocks() later on if a direct IO read + * is done on that same region - the delalloc extent is returned when none is + * supposed to be there. + * + * We prevent this by truncating away the delalloc regions on the page before + * invalidating it. Because they are delalloc, we can do this without needing a + * transaction. Indeed - if we get ENOSPC errors, we have to be able to do this + * truncation without a transaction as there is no space left for block + * reservation (typically why we see a ENOSPC in writeback). + * + * This is not a performance critical path, so for now just do the punching a + * buffer head at a time. + */ +STATIC void +xfs_aops_discard_page( + struct page *page) +{ + struct inode *inode = page->mapping->host; + struct xfs_inode *ip = XFS_I(inode); + struct buffer_head *bh, *head; + loff_t offset = page_offset(page); + + if (!xfs_is_delayed_page(page, IO_DELALLOC)) + goto out_invalidate; + + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) + goto out_invalidate; + + xfs_alert(ip->i_mount, + "page discard on page %p, inode 0x%llx, offset %llu.", + page, ip->i_ino, offset); + + xfs_ilock(ip, XFS_ILOCK_EXCL); + bh = head = page_buffers(page); + do { + int error; + xfs_fileoff_t start_fsb; + + if (!buffer_delay(bh)) + goto next_buffer; + + start_fsb = XFS_B_TO_FSBT(ip->i_mount, offset); + error = xfs_bmap_punch_delalloc_range(ip, start_fsb, 1); + if (error) { + /* something screwed, just bail */ + if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) { + xfs_alert(ip->i_mount, + "page discard unable to remove delalloc mapping."); + } + break; + } +next_buffer: + offset += 1 << inode->i_blkbits; + + } while ((bh = bh->b_this_page) != head); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); +out_invalidate: + xfs_vm_invalidatepage(page, 0); + return; +} + +/* + * Write out a dirty page. + * + * For delalloc space on the page we need to allocate space and flush it. + * For unwritten space on the page we need to start the conversion to + * regular allocated space. + * For any other dirty buffer heads on the page we should flush them. + */ +STATIC int +xfs_vm_writepage( + struct page *page, + struct writeback_control *wbc) +{ + struct inode *inode = page->mapping->host; + struct buffer_head *bh, *head; + struct xfs_bmbt_irec imap; + xfs_ioend_t *ioend = NULL, *iohead = NULL; + loff_t offset; + unsigned int type; + __uint64_t end_offset; + pgoff_t end_index, last_index; + ssize_t len; + int err, imap_valid = 0, uptodate = 1; + int count = 0; + int nonblocking = 0; + + trace_xfs_writepage(inode, page, 0); + + ASSERT(page_has_buffers(page)); + + /* + * Refuse to write the page out if we are called from reclaim context. + * + * This avoids stack overflows when called from deeply used stacks in + * random callers for direct reclaim or memcg reclaim. We explicitly + * allow reclaim from kswapd as the stack usage there is relatively low. + * + * This should really be done by the core VM, but until that happens + * filesystems like XFS, btrfs and ext4 have to take care of this + * by themselves. + */ + if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) + goto redirty; + + /* + * Given that we do not allow direct reclaim to call us, we should + * never be called while in a filesystem transaction. + */ + if (WARN_ON(current->flags & PF_FSTRANS)) + goto redirty; + + /* Is this page beyond the end of the file? */ + offset = i_size_read(inode); + end_index = offset >> PAGE_CACHE_SHIFT; + last_index = (offset - 1) >> PAGE_CACHE_SHIFT; + if (page->index >= end_index) { + if ((page->index >= end_index + 1) || + !(i_size_read(inode) & (PAGE_CACHE_SIZE - 1))) { + unlock_page(page); + return 0; + } + } + + end_offset = min_t(unsigned long long, + (xfs_off_t)(page->index + 1) << PAGE_CACHE_SHIFT, + offset); + len = 1 << inode->i_blkbits; + + bh = head = page_buffers(page); + offset = page_offset(page); + type = IO_OVERWRITE; + + if (wbc->sync_mode == WB_SYNC_NONE) + nonblocking = 1; + + do { + int new_ioend = 0; + + if (offset >= end_offset) + break; + if (!buffer_uptodate(bh)) + uptodate = 0; + + /* + * set_page_dirty dirties all buffers in a page, independent + * of their state. The dirty state however is entirely + * meaningless for holes (!mapped && uptodate), so skip + * buffers covering holes here. + */ + if (!buffer_mapped(bh) && buffer_uptodate(bh)) { + imap_valid = 0; + continue; + } + + if (buffer_unwritten(bh)) { + if (type != IO_UNWRITTEN) { + type = IO_UNWRITTEN; + imap_valid = 0; + } + } else if (buffer_delay(bh)) { + if (type != IO_DELALLOC) { + type = IO_DELALLOC; + imap_valid = 0; + } + } else if (buffer_uptodate(bh)) { + if (type != IO_OVERWRITE) { + type = IO_OVERWRITE; + imap_valid = 0; + } + } else { + if (PageUptodate(page)) { + ASSERT(buffer_mapped(bh)); + imap_valid = 0; + } + continue; + } + + if (imap_valid) + imap_valid = xfs_imap_valid(inode, &imap, offset); + if (!imap_valid) { + /* + * If we didn't have a valid mapping then we need to + * put the new mapping into a separate ioend structure. + * This ensures non-contiguous extents always have + * separate ioends, which is particularly important + * for unwritten extent conversion at I/O completion + * time. + */ + new_ioend = 1; + err = xfs_map_blocks(inode, offset, &imap, type, + nonblocking); + if (err) + goto error; + imap_valid = xfs_imap_valid(inode, &imap, offset); + } + if (imap_valid) { + lock_buffer(bh); + if (type != IO_OVERWRITE) + xfs_map_at_offset(inode, bh, &imap, offset); + xfs_add_to_ioend(inode, bh, offset, type, &ioend, + new_ioend); + count++; + } + + if (!iohead) + iohead = ioend; + + } while (offset += len, ((bh = bh->b_this_page) != head)); + + if (uptodate && bh == head) + SetPageUptodate(page); + + xfs_start_page_writeback(page, 1, count); + + if (ioend && imap_valid) { + xfs_off_t end_index; + + end_index = imap.br_startoff + imap.br_blockcount; + + /* to bytes */ + end_index <<= inode->i_blkbits; + + /* to pages */ + end_index = (end_index - 1) >> PAGE_CACHE_SHIFT; + + /* check against file size */ + if (end_index > last_index) + end_index = last_index; + + xfs_cluster_write(inode, page->index + 1, &imap, &ioend, + wbc, end_index); + } + + if (iohead) + xfs_submit_ioend(wbc, iohead); + + return 0; + +error: + if (iohead) + xfs_cancel_ioend(iohead); + + if (err == -EAGAIN) + goto redirty; + + xfs_aops_discard_page(page); + ClearPageUptodate(page); + unlock_page(page); + return err; + +redirty: + redirty_page_for_writepage(wbc, page); + unlock_page(page); + return 0; +} + +STATIC int +xfs_vm_writepages( + struct address_space *mapping, + struct writeback_control *wbc) +{ + xfs_iflags_clear(XFS_I(mapping->host), XFS_ITRUNCATED); + return generic_writepages(mapping, wbc); +} + +/* + * Called to move a page into cleanable state - and from there + * to be released. The page should already be clean. We always + * have buffer heads in this call. + * + * Returns 1 if the page is ok to release, 0 otherwise. + */ +STATIC int +xfs_vm_releasepage( + struct page *page, + gfp_t gfp_mask) +{ + int delalloc, unwritten; + + trace_xfs_releasepage(page->mapping->host, page, 0); + + xfs_count_page_state(page, &delalloc, &unwritten); + + if (WARN_ON(delalloc)) + return 0; + if (WARN_ON(unwritten)) + return 0; + + return try_to_free_buffers(page); +} + +STATIC int +__xfs_get_blocks( + struct inode *inode, + sector_t iblock, + struct buffer_head *bh_result, + int create, + int direct) +{ + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + xfs_fileoff_t offset_fsb, end_fsb; + int error = 0; + int lockmode = 0; + struct xfs_bmbt_irec imap; + int nimaps = 1; + xfs_off_t offset; + ssize_t size; + int new = 0; + + if (XFS_FORCED_SHUTDOWN(mp)) + return -XFS_ERROR(EIO); + + offset = (xfs_off_t)iblock << inode->i_blkbits; + ASSERT(bh_result->b_size >= (1 << inode->i_blkbits)); + size = bh_result->b_size; + + if (!create && direct && offset >= i_size_read(inode)) + return 0; + + if (create) { + lockmode = XFS_ILOCK_EXCL; + xfs_ilock(ip, lockmode); + } else { + lockmode = xfs_ilock_map_shared(ip); + } + + ASSERT(offset <= mp->m_maxioffset); + if (offset + size > mp->m_maxioffset) + size = mp->m_maxioffset - offset; + end_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)offset + size); + offset_fsb = XFS_B_TO_FSBT(mp, offset); + + error = xfs_bmapi(NULL, ip, offset_fsb, end_fsb - offset_fsb, + XFS_BMAPI_ENTIRE, NULL, 0, &imap, &nimaps, NULL); + if (error) + goto out_unlock; + + if (create && + (!nimaps || + (imap.br_startblock == HOLESTARTBLOCK || + imap.br_startblock == DELAYSTARTBLOCK))) { + if (direct) { + error = xfs_iomap_write_direct(ip, offset, size, + &imap, nimaps); + } else { + error = xfs_iomap_write_delay(ip, offset, size, &imap); + } + if (error) + goto out_unlock; + + trace_xfs_get_blocks_alloc(ip, offset, size, 0, &imap); + } else if (nimaps) { + trace_xfs_get_blocks_found(ip, offset, size, 0, &imap); + } else { + trace_xfs_get_blocks_notfound(ip, offset, size); + goto out_unlock; + } + xfs_iunlock(ip, lockmode); + + if (imap.br_startblock != HOLESTARTBLOCK && + imap.br_startblock != DELAYSTARTBLOCK) { + /* + * For unwritten extents do not report a disk address on + * the read case (treat as if we're reading into a hole). + */ + if (create || !ISUNWRITTEN(&imap)) + xfs_map_buffer(inode, bh_result, &imap, offset); + if (create && ISUNWRITTEN(&imap)) { + if (direct) + bh_result->b_private = inode; + set_buffer_unwritten(bh_result); + } + } + + /* + * If this is a realtime file, data may be on a different device. + * to that pointed to from the buffer_head b_bdev currently. + */ + bh_result->b_bdev = xfs_find_bdev_for_inode(inode); + + /* + * If we previously allocated a block out beyond eof and we are now + * coming back to use it then we will need to flag it as new even if it + * has a disk address. + * + * With sub-block writes into unwritten extents we also need to mark + * the buffer as new so that the unwritten parts of the buffer gets + * correctly zeroed. + */ + if (create && + ((!buffer_mapped(bh_result) && !buffer_uptodate(bh_result)) || + (offset >= i_size_read(inode)) || + (new || ISUNWRITTEN(&imap)))) + set_buffer_new(bh_result); + + if (imap.br_startblock == DELAYSTARTBLOCK) { + BUG_ON(direct); + if (create) { + set_buffer_uptodate(bh_result); + set_buffer_mapped(bh_result); + set_buffer_delay(bh_result); + } + } + + /* + * If this is O_DIRECT or the mpage code calling tell them how large + * the mapping is, so that we can avoid repeated get_blocks calls. + */ + if (direct || size > (1 << inode->i_blkbits)) { + xfs_off_t mapping_size; + + mapping_size = imap.br_startoff + imap.br_blockcount - iblock; + mapping_size <<= inode->i_blkbits; + + ASSERT(mapping_size > 0); + if (mapping_size > size) + mapping_size = size; + if (mapping_size > LONG_MAX) + mapping_size = LONG_MAX; + + bh_result->b_size = mapping_size; + } + + return 0; + +out_unlock: + xfs_iunlock(ip, lockmode); + return -error; +} + +int +xfs_get_blocks( + struct inode *inode, + sector_t iblock, + struct buffer_head *bh_result, + int create) +{ + return __xfs_get_blocks(inode, iblock, bh_result, create, 0); +} + +STATIC int +xfs_get_blocks_direct( + struct inode *inode, + sector_t iblock, + struct buffer_head *bh_result, + int create) +{ + return __xfs_get_blocks(inode, iblock, bh_result, create, 1); +} + +/* + * Complete a direct I/O write request. + * + * If the private argument is non-NULL __xfs_get_blocks signals us that we + * need to issue a transaction to convert the range from unwritten to written + * extents. In case this is regular synchronous I/O we just call xfs_end_io + * to do this and we are done. But in case this was a successful AIO + * request this handler is called from interrupt context, from which we + * can't start transactions. In that case offload the I/O completion to + * the workqueues we also use for buffered I/O completion. + */ +STATIC void +xfs_end_io_direct_write( + struct kiocb *iocb, + loff_t offset, + ssize_t size, + void *private, + int ret, + bool is_async) +{ + struct xfs_ioend *ioend = iocb->private; + + /* + * blockdev_direct_IO can return an error even after the I/O + * completion handler was called. Thus we need to protect + * against double-freeing. + */ + iocb->private = NULL; + + ioend->io_offset = offset; + ioend->io_size = size; + if (private && size > 0) + ioend->io_type = IO_UNWRITTEN; + + if (is_async) { + /* + * If we are converting an unwritten extent we need to delay + * the AIO completion until after the unwrittent extent + * conversion has completed, otherwise do it ASAP. + */ + if (ioend->io_type == IO_UNWRITTEN) { + ioend->io_iocb = iocb; + ioend->io_result = ret; + } else { + aio_complete(iocb, ret, 0); + } + xfs_finish_ioend(ioend); + } else { + xfs_finish_ioend_sync(ioend); + } +} + +STATIC ssize_t +xfs_vm_direct_IO( + int rw, + struct kiocb *iocb, + const struct iovec *iov, + loff_t offset, + unsigned long nr_segs) +{ + struct inode *inode = iocb->ki_filp->f_mapping->host; + struct block_device *bdev = xfs_find_bdev_for_inode(inode); + ssize_t ret; + + if (rw & WRITE) { + iocb->private = xfs_alloc_ioend(inode, IO_DIRECT); + + ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov, + offset, nr_segs, + xfs_get_blocks_direct, + xfs_end_io_direct_write, NULL, 0); + if (ret != -EIOCBQUEUED && iocb->private) + xfs_destroy_ioend(iocb->private); + } else { + ret = __blockdev_direct_IO(rw, iocb, inode, bdev, iov, + offset, nr_segs, + xfs_get_blocks_direct, + NULL, NULL, 0); + } + + return ret; +} + +STATIC void +xfs_vm_write_failed( + struct address_space *mapping, + loff_t to) +{ + struct inode *inode = mapping->host; + + if (to > inode->i_size) { + /* + * punch out the delalloc blocks we have already allocated. We + * don't call xfs_setattr() to do this as we may be in the + * middle of a multi-iovec write and so the vfs inode->i_size + * will not match the xfs ip->i_size and so it will zero too + * much. Hence we jus truncate the page cache to zero what is + * necessary and punch the delalloc blocks directly. + */ + struct xfs_inode *ip = XFS_I(inode); + xfs_fileoff_t start_fsb; + xfs_fileoff_t end_fsb; + int error; + + truncate_pagecache(inode, to, inode->i_size); + + /* + * Check if there are any blocks that are outside of i_size + * that need to be trimmed back. + */ + start_fsb = XFS_B_TO_FSB(ip->i_mount, inode->i_size) + 1; + end_fsb = XFS_B_TO_FSB(ip->i_mount, to); + if (end_fsb <= start_fsb) + return; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + error = xfs_bmap_punch_delalloc_range(ip, start_fsb, + end_fsb - start_fsb); + if (error) { + /* something screwed, just bail */ + if (!XFS_FORCED_SHUTDOWN(ip->i_mount)) { + xfs_alert(ip->i_mount, + "xfs_vm_write_failed: unable to clean up ino %lld", + ip->i_ino); + } + } + xfs_iunlock(ip, XFS_ILOCK_EXCL); + } +} + +STATIC int +xfs_vm_write_begin( + struct file *file, + struct address_space *mapping, + loff_t pos, + unsigned len, + unsigned flags, + struct page **pagep, + void **fsdata) +{ + int ret; + + ret = block_write_begin(mapping, pos, len, flags | AOP_FLAG_NOFS, + pagep, xfs_get_blocks); + if (unlikely(ret)) + xfs_vm_write_failed(mapping, pos + len); + return ret; +} + +STATIC int +xfs_vm_write_end( + struct file *file, + struct address_space *mapping, + loff_t pos, + unsigned len, + unsigned copied, + struct page *page, + void *fsdata) +{ + int ret; + + ret = generic_write_end(file, mapping, pos, len, copied, page, fsdata); + if (unlikely(ret < len)) + xfs_vm_write_failed(mapping, pos + len); + return ret; +} + +STATIC sector_t +xfs_vm_bmap( + struct address_space *mapping, + sector_t block) +{ + struct inode *inode = (struct inode *)mapping->host; + struct xfs_inode *ip = XFS_I(inode); + + trace_xfs_vm_bmap(XFS_I(inode)); + xfs_ilock(ip, XFS_IOLOCK_SHARED); + xfs_flush_pages(ip, (xfs_off_t)0, -1, 0, FI_REMAPF); + xfs_iunlock(ip, XFS_IOLOCK_SHARED); + return generic_block_bmap(mapping, block, xfs_get_blocks); +} + +STATIC int +xfs_vm_readpage( + struct file *unused, + struct page *page) +{ + return mpage_readpage(page, xfs_get_blocks); +} + +STATIC int +xfs_vm_readpages( + struct file *unused, + struct address_space *mapping, + struct list_head *pages, + unsigned nr_pages) +{ + return mpage_readpages(mapping, pages, nr_pages, xfs_get_blocks); +} + +const struct address_space_operations xfs_address_space_operations = { + .readpage = xfs_vm_readpage, + .readpages = xfs_vm_readpages, + .writepage = xfs_vm_writepage, + .writepages = xfs_vm_writepages, + .releasepage = xfs_vm_releasepage, + .invalidatepage = xfs_vm_invalidatepage, + .write_begin = xfs_vm_write_begin, + .write_end = xfs_vm_write_end, + .bmap = xfs_vm_bmap, + .direct_IO = xfs_vm_direct_IO, + .migratepage = buffer_migrate_page, + .is_partially_uptodate = block_is_partially_uptodate, + .error_remove_page = generic_error_remove_page, +}; diff --git a/fs/xfs/linux/xfs_aops.h b/fs/xfs/linux/xfs_aops.h new file mode 100644 index 0000000..71f721e --- /dev/null +++ b/fs/xfs/linux/xfs_aops.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2005-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_AOPS_H__ +#define __XFS_AOPS_H__ + +extern struct workqueue_struct *xfsdatad_workqueue; +extern struct workqueue_struct *xfsconvertd_workqueue; +extern mempool_t *xfs_ioend_pool; + +/* + * Types of I/O for bmap clustering and I/O completion tracking. + */ +enum { + IO_DIRECT = 0, /* special case for direct I/O ioends */ + IO_DELALLOC, /* mapping covers delalloc region */ + IO_UNWRITTEN, /* mapping covers allocated but uninitialized data */ + IO_OVERWRITE, /* mapping covers already allocated extent */ +}; + +#define XFS_IO_TYPES \ + { 0, "" }, \ + { IO_DELALLOC, "delalloc" }, \ + { IO_UNWRITTEN, "unwritten" }, \ + { IO_OVERWRITE, "overwrite" } + +/* + * xfs_ioend struct manages large extent writes for XFS. + * It can manage several multi-page bio's at once. + */ +typedef struct xfs_ioend { + struct xfs_ioend *io_list; /* next ioend in chain */ + unsigned int io_type; /* delalloc / unwritten */ + int io_error; /* I/O error code */ + atomic_t io_remaining; /* hold count */ + struct inode *io_inode; /* file being written to */ + struct buffer_head *io_buffer_head;/* buffer linked list head */ + struct buffer_head *io_buffer_tail;/* buffer linked list tail */ + size_t io_size; /* size of the extent */ + xfs_off_t io_offset; /* offset in the file */ + struct work_struct io_work; /* xfsdatad work queue */ + struct kiocb *io_iocb; + int io_result; +} xfs_ioend_t; + +extern const struct address_space_operations xfs_address_space_operations; +extern int xfs_get_blocks(struct inode *, sector_t, struct buffer_head *, int); + +extern void xfs_ioend_init(void); +extern void xfs_ioend_wait(struct xfs_inode *); + +extern void xfs_count_page_state(struct page *, int *, int *); + +#endif /* __XFS_AOPS_H__ */ diff --git a/fs/xfs/linux/xfs_buf.c b/fs/xfs/linux/xfs_buf.c new file mode 100644 index 0000000..b2b4119 --- /dev/null +++ b/fs/xfs/linux/xfs_buf.c @@ -0,0 +1,1874 @@ +/* + * Copyright (c) 2000-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "xfs_sb.h" +#include "xfs_inum.h" +#include "xfs_log.h" +#include "xfs_ag.h" +#include "xfs_mount.h" +#include "xfs_trace.h" + +static kmem_zone_t *xfs_buf_zone; +STATIC int xfsbufd(void *); +STATIC void xfs_buf_delwri_queue(xfs_buf_t *, int); + +static struct workqueue_struct *xfslogd_workqueue; +struct workqueue_struct *xfsdatad_workqueue; +struct workqueue_struct *xfsconvertd_workqueue; + +#ifdef XFS_BUF_LOCK_TRACKING +# define XB_SET_OWNER(bp) ((bp)->b_last_holder = current->pid) +# define XB_CLEAR_OWNER(bp) ((bp)->b_last_holder = -1) +# define XB_GET_OWNER(bp) ((bp)->b_last_holder) +#else +# define XB_SET_OWNER(bp) do { } while (0) +# define XB_CLEAR_OWNER(bp) do { } while (0) +# define XB_GET_OWNER(bp) do { } while (0) +#endif + +#define xb_to_gfp(flags) \ + ((((flags) & XBF_READ_AHEAD) ? __GFP_NORETRY : \ + ((flags) & XBF_DONT_BLOCK) ? GFP_NOFS : GFP_KERNEL) | __GFP_NOWARN) + +#define xb_to_km(flags) \ + (((flags) & XBF_DONT_BLOCK) ? KM_NOFS : KM_SLEEP) + +#define xfs_buf_allocate(flags) \ + kmem_zone_alloc(xfs_buf_zone, xb_to_km(flags)) +#define xfs_buf_deallocate(bp) \ + kmem_zone_free(xfs_buf_zone, (bp)); + +static inline int +xfs_buf_is_vmapped( + struct xfs_buf *bp) +{ + /* + * Return true if the buffer is vmapped. + * + * The XBF_MAPPED flag is set if the buffer should be mapped, but the + * code is clever enough to know it doesn't have to map a single page, + * so the check has to be both for XBF_MAPPED and bp->b_page_count > 1. + */ + return (bp->b_flags & XBF_MAPPED) && bp->b_page_count > 1; +} + +static inline int +xfs_buf_vmap_len( + struct xfs_buf *bp) +{ + return (bp->b_page_count * PAGE_SIZE) - bp->b_offset; +} + +/* + * xfs_buf_lru_add - add a buffer to the LRU. + * + * The LRU takes a new reference to the buffer so that it will only be freed + * once the shrinker takes the buffer off the LRU. + */ +STATIC void +xfs_buf_lru_add( + struct xfs_buf *bp) +{ + struct xfs_buftarg *btp = bp->b_target; + + spin_lock(&btp->bt_lru_lock); + if (list_empty(&bp->b_lru)) { + atomic_inc(&bp->b_hold); + list_add_tail(&bp->b_lru, &btp->bt_lru); + btp->bt_lru_nr++; + } + spin_unlock(&btp->bt_lru_lock); +} + +/* + * xfs_buf_lru_del - remove a buffer from the LRU + * + * The unlocked check is safe here because it only occurs when there are not + * b_lru_ref counts left on the inode under the pag->pag_buf_lock. it is there + * to optimise the shrinker removing the buffer from the LRU and calling + * xfs_buf_free(). i.e. it removes an unnecessary round trip on the + * bt_lru_lock. + */ +STATIC void +xfs_buf_lru_del( + struct xfs_buf *bp) +{ + struct xfs_buftarg *btp = bp->b_target; + + if (list_empty(&bp->b_lru)) + return; + + spin_lock(&btp->bt_lru_lock); + if (!list_empty(&bp->b_lru)) { + list_del_init(&bp->b_lru); + btp->bt_lru_nr--; + } + spin_unlock(&btp->bt_lru_lock); +} + +/* + * When we mark a buffer stale, we remove the buffer from the LRU and clear the + * b_lru_ref count so that the buffer is freed immediately when the buffer + * reference count falls to zero. If the buffer is already on the LRU, we need + * to remove the reference that LRU holds on the buffer. + * + * This prevents build-up of stale buffers on the LRU. + */ +void +xfs_buf_stale( + struct xfs_buf *bp) +{ + bp->b_flags |= XBF_STALE; + atomic_set(&(bp)->b_lru_ref, 0); + if (!list_empty(&bp->b_lru)) { + struct xfs_buftarg *btp = bp->b_target; + + spin_lock(&btp->bt_lru_lock); + if (!list_empty(&bp->b_lru)) { + list_del_init(&bp->b_lru); + btp->bt_lru_nr--; + atomic_dec(&bp->b_hold); + } + spin_unlock(&btp->bt_lru_lock); + } + ASSERT(atomic_read(&bp->b_hold) >= 1); +} + +STATIC void +_xfs_buf_initialize( + xfs_buf_t *bp, + xfs_buftarg_t *target, + xfs_off_t range_base, + size_t range_length, + xfs_buf_flags_t flags) +{ + /* + * We don't want certain flags to appear in b_flags. + */ + flags &= ~(XBF_LOCK|XBF_MAPPED|XBF_DONT_BLOCK|XBF_READ_AHEAD); + + memset(bp, 0, sizeof(xfs_buf_t)); + atomic_set(&bp->b_hold, 1); + atomic_set(&bp->b_lru_ref, 1); + init_completion(&bp->b_iowait); + INIT_LIST_HEAD(&bp->b_lru); + INIT_LIST_HEAD(&bp->b_list); + RB_CLEAR_NODE(&bp->b_rbnode); + sema_init(&bp->b_sema, 0); /* held, no waiters */ + XB_SET_OWNER(bp); + bp->b_target = target; + bp->b_file_offset = range_base; + /* + * Set buffer_length and count_desired to the same value initially. + * I/O routines should use count_desired, which will be the same in + * most cases but may be reset (e.g. XFS recovery). + */ + bp->b_buffer_length = bp->b_count_desired = range_length; + bp->b_flags = flags; + bp->b_bn = XFS_BUF_DADDR_NULL; + atomic_set(&bp->b_pin_count, 0); + init_waitqueue_head(&bp->b_waiters); + + XFS_STATS_INC(xb_create); + + trace_xfs_buf_init(bp, _RET_IP_); +} + +/* + * Allocate a page array capable of holding a specified number + * of pages, and point the page buf at it. + */ +STATIC int +_xfs_buf_get_pages( + xfs_buf_t *bp, + int page_count, + xfs_buf_flags_t flags) +{ + /* Make sure that we have a page list */ + if (bp->b_pages == NULL) { + bp->b_offset = xfs_buf_poff(bp->b_file_offset); + bp->b_page_count = page_count; + if (page_count <= XB_PAGES) { + bp->b_pages = bp->b_page_array; + } else { + bp->b_pages = kmem_alloc(sizeof(struct page *) * + page_count, xb_to_km(flags)); + if (bp->b_pages == NULL) + return -ENOMEM; + } + memset(bp->b_pages, 0, sizeof(struct page *) * page_count); + } + return 0; +} + +/* + * Frees b_pages if it was allocated. + */ +STATIC void +_xfs_buf_free_pages( + xfs_buf_t *bp) +{ + if (bp->b_pages != bp->b_page_array) { + kmem_free(bp->b_pages); + bp->b_pages = NULL; + } +} + +/* + * Releases the specified buffer. + * + * The modification state of any associated pages is left unchanged. + * The buffer most not be on any hash - use xfs_buf_rele instead for + * hashed and refcounted buffers + */ +void +xfs_buf_free( + xfs_buf_t *bp) +{ + trace_xfs_buf_free(bp, _RET_IP_); + + ASSERT(list_empty(&bp->b_lru)); + + if (bp->b_flags & _XBF_PAGES) { + uint i; + + if (xfs_buf_is_vmapped(bp)) + vm_unmap_ram(bp->b_addr - bp->b_offset, + bp->b_page_count); + + for (i = 0; i < bp->b_page_count; i++) { + struct page *page = bp->b_pages[i]; + + __free_page(page); + } + } else if (bp->b_flags & _XBF_KMEM) + kmem_free(bp->b_addr); + _xfs_buf_free_pages(bp); + xfs_buf_deallocate(bp); +} + +/* + * Allocates all the pages for buffer in question and builds it's page list. + */ +STATIC int +xfs_buf_allocate_memory( + xfs_buf_t *bp, + uint flags) +{ + size_t size = bp->b_count_desired; + size_t nbytes, offset; + gfp_t gfp_mask = xb_to_gfp(flags); + unsigned short page_count, i; + xfs_off_t end; + int error; + + /* + * for buffers that are contained within a single page, just allocate + * the memory from the heap - there's no need for the complexity of + * page arrays to keep allocation down to order 0. + */ + if (bp->b_buffer_length < PAGE_SIZE) { + bp->b_addr = kmem_alloc(bp->b_buffer_length, xb_to_km(flags)); + if (!bp->b_addr) { + /* low memory - use alloc_page loop instead */ + goto use_alloc_page; + } + + if (((unsigned long)(bp->b_addr + bp->b_buffer_length - 1) & + PAGE_MASK) != + ((unsigned long)bp->b_addr & PAGE_MASK)) { + /* b_addr spans two pages - use alloc_page instead */ + kmem_free(bp->b_addr); + bp->b_addr = NULL; + goto use_alloc_page; + } + bp->b_offset = offset_in_page(bp->b_addr); + bp->b_pages = bp->b_page_array; + bp->b_pages[0] = virt_to_page(bp->b_addr); + bp->b_page_count = 1; + bp->b_flags |= XBF_MAPPED | _XBF_KMEM; + return 0; + } + +use_alloc_page: + end = bp->b_file_offset + bp->b_buffer_length; + page_count = xfs_buf_btoc(end) - xfs_buf_btoct(bp->b_file_offset); + error = _xfs_buf_get_pages(bp, page_count, flags); + if (unlikely(error)) + return error; + + offset = bp->b_offset; + bp->b_flags |= _XBF_PAGES; + + for (i = 0; i < bp->b_page_count; i++) { + struct page *page; + uint retries = 0; +retry: + page = alloc_page(gfp_mask); + if (unlikely(page == NULL)) { + if (flags & XBF_READ_AHEAD) { + bp->b_page_count = i; + error = ENOMEM; + goto out_free_pages; + } + + /* + * This could deadlock. + * + * But until all the XFS lowlevel code is revamped to + * handle buffer allocation failures we can't do much. + */ + if (!(++retries % 100)) + xfs_err(NULL, + "possible memory allocation deadlock in %s (mode:0x%x)", + __func__, gfp_mask); + + XFS_STATS_INC(xb_page_retries); + congestion_wait(BLK_RW_ASYNC, HZ/50); + goto retry; + } + + XFS_STATS_INC(xb_page_found); + + nbytes = min_t(size_t, size, PAGE_SIZE - offset); + size -= nbytes; + bp->b_pages[i] = page; + offset = 0; + } + return 0; + +out_free_pages: + for (i = 0; i < bp->b_page_count; i++) + __free_page(bp->b_pages[i]); + return error; +} + +/* + * Map buffer into kernel address-space if necessary. + */ +STATIC int +_xfs_buf_map_pages( + xfs_buf_t *bp, + uint flags) +{ + ASSERT(bp->b_flags & _XBF_PAGES); + if (bp->b_page_count == 1) { + /* A single page buffer is always mappable */ + bp->b_addr = page_address(bp->b_pages[0]) + bp->b_offset; + bp->b_flags |= XBF_MAPPED; + } else if (flags & XBF_MAPPED) { + int retried = 0; + + do { + bp->b_addr = vm_map_ram(bp->b_pages, bp->b_page_count, + -1, PAGE_KERNEL); + if (bp->b_addr) + break; + vm_unmap_aliases(); + } while (retried++ <= 1); + + if (!bp->b_addr) + return -ENOMEM; + bp->b_addr += bp->b_offset; + bp->b_flags |= XBF_MAPPED; + } + + return 0; +} + +/* + * Finding and Reading Buffers + */ + +/* + * Look up, and creates if absent, a lockable buffer for + * a given range of an inode. The buffer is returned + * locked. If other overlapping buffers exist, they are + * released before the new buffer is created and locked, + * which may imply that this call will block until those buffers + * are unlocked. No I/O is implied by this call. + */ +xfs_buf_t * +_xfs_buf_find( + xfs_buftarg_t *btp, /* block device target */ + xfs_off_t ioff, /* starting offset of range */ + size_t isize, /* length of range */ + xfs_buf_flags_t flags, + xfs_buf_t *new_bp) +{ + xfs_off_t range_base; + size_t range_length; + struct xfs_perag *pag; + struct rb_node **rbp; + struct rb_node *parent; + xfs_buf_t *bp; + + range_base = (ioff << BBSHIFT); + range_length = (isize << BBSHIFT); + + /* Check for IOs smaller than the sector size / not sector aligned */ + ASSERT(!(range_length < (1 << btp->bt_sshift))); + ASSERT(!(range_base & (xfs_off_t)btp->bt_smask)); + + /* get tree root */ + pag = xfs_perag_get(btp->bt_mount, + xfs_daddr_to_agno(btp->bt_mount, ioff)); + + /* walk tree */ + spin_lock(&pag->pag_buf_lock); + rbp = &pag->pag_buf_tree.rb_node; + parent = NULL; + bp = NULL; + while (*rbp) { + parent = *rbp; + bp = rb_entry(parent, struct xfs_buf, b_rbnode); + + if (range_base < bp->b_file_offset) + rbp = &(*rbp)->rb_left; + else if (range_base > bp->b_file_offset) + rbp = &(*rbp)->rb_right; + else { + /* + * found a block offset match. If the range doesn't + * match, the only way this is allowed is if the buffer + * in the cache is stale and the transaction that made + * it stale has not yet committed. i.e. we are + * reallocating a busy extent. Skip this buffer and + * continue searching to the right for an exact match. + */ + if (bp->b_buffer_length != range_length) { + ASSERT(bp->b_flags & XBF_STALE); + rbp = &(*rbp)->rb_right; + continue; + } + atomic_inc(&bp->b_hold); + goto found; + } + } + + /* No match found */ + if (new_bp) { + _xfs_buf_initialize(new_bp, btp, range_base, + range_length, flags); + rb_link_node(&new_bp->b_rbnode, parent, rbp); + rb_insert_color(&new_bp->b_rbnode, &pag->pag_buf_tree); + /* the buffer keeps the perag reference until it is freed */ + new_bp->b_pag = pag; + spin_unlock(&pag->pag_buf_lock); + } else { + XFS_STATS_INC(xb_miss_locked); + spin_unlock(&pag->pag_buf_lock); + xfs_perag_put(pag); + } + return new_bp; + +found: + spin_unlock(&pag->pag_buf_lock); + xfs_perag_put(pag); + + if (!xfs_buf_trylock(bp)) { + if (flags & XBF_TRYLOCK) { + xfs_buf_rele(bp); + XFS_STATS_INC(xb_busy_locked); + return NULL; + } + xfs_buf_lock(bp); + XFS_STATS_INC(xb_get_locked_waited); + } + + /* + * if the buffer is stale, clear all the external state associated with + * it. We need to keep flags such as how we allocated the buffer memory + * intact here. + */ + if (bp->b_flags & XBF_STALE) { + ASSERT((bp->b_flags & _XBF_DELWRI_Q) == 0); + bp->b_flags &= XBF_MAPPED | _XBF_KMEM | _XBF_PAGES; + } + + trace_xfs_buf_find(bp, flags, _RET_IP_); + XFS_STATS_INC(xb_get_locked); + return bp; +} + +/* + * Assembles a buffer covering the specified range. + * Storage in memory for all portions of the buffer will be allocated, + * although backing storage may not be. + */ +xfs_buf_t * +xfs_buf_get( + xfs_buftarg_t *target,/* target for buffer */ + xfs_off_t ioff, /* starting offset of range */ + size_t isize, /* length of range */ + xfs_buf_flags_t flags) +{ + xfs_buf_t *bp, *new_bp; + int error = 0; + + new_bp = xfs_buf_allocate(flags); + if (unlikely(!new_bp)) + return NULL; + + bp = _xfs_buf_find(target, ioff, isize, flags, new_bp); + if (bp == new_bp) { + error = xfs_buf_allocate_memory(bp, flags); + if (error) + goto no_buffer; + } else { + xfs_buf_deallocate(new_bp); + if (unlikely(bp == NULL)) + return NULL; + } + + if (!(bp->b_flags & XBF_MAPPED)) { + error = _xfs_buf_map_pages(bp, flags); + if (unlikely(error)) { + xfs_warn(target->bt_mount, + "%s: failed to map pages\n", __func__); + goto no_buffer; + } + } + + XFS_STATS_INC(xb_get); + + /* + * Always fill in the block number now, the mapped cases can do + * their own overlay of this later. + */ + bp->b_bn = ioff; + bp->b_count_desired = bp->b_buffer_length; + + trace_xfs_buf_get(bp, flags, _RET_IP_); + return bp; + + no_buffer: + if (flags & (XBF_LOCK | XBF_TRYLOCK)) + xfs_buf_unlock(bp); + xfs_buf_rele(bp); + return NULL; +} + +STATIC int +_xfs_buf_read( + xfs_buf_t *bp, + xfs_buf_flags_t flags) +{ + int status; + + ASSERT(!(flags & (XBF_DELWRI|XBF_WRITE))); + ASSERT(bp->b_bn != XFS_BUF_DADDR_NULL); + + bp->b_flags &= ~(XBF_WRITE | XBF_ASYNC | XBF_DELWRI | XBF_READ_AHEAD); + bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); + + status = xfs_buf_iorequest(bp); + if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) + return status; + return xfs_buf_iowait(bp); +} + +xfs_buf_t * +xfs_buf_read( + xfs_buftarg_t *target, + xfs_off_t ioff, + size_t isize, + xfs_buf_flags_t flags) +{ + xfs_buf_t *bp; + + flags |= XBF_READ; + + bp = xfs_buf_get(target, ioff, isize, flags); + if (bp) { + trace_xfs_buf_read(bp, flags, _RET_IP_); + + if (!XFS_BUF_ISDONE(bp)) { + XFS_STATS_INC(xb_get_read); + _xfs_buf_read(bp, flags); + } else if (flags & XBF_ASYNC) { + /* + * Read ahead call which is already satisfied, + * drop the buffer + */ + goto no_buffer; + } else { + /* We do not want read in the flags */ + bp->b_flags &= ~XBF_READ; + } + } + + return bp; + + no_buffer: + if (flags & (XBF_LOCK | XBF_TRYLOCK)) + xfs_buf_unlock(bp); + xfs_buf_rele(bp); + return NULL; +} + +/* + * If we are not low on memory then do the readahead in a deadlock + * safe manner. + */ +void +xfs_buf_readahead( + xfs_buftarg_t *target, + xfs_off_t ioff, + size_t isize) +{ + if (bdi_read_congested(target->bt_bdi)) + return; + + xfs_buf_read(target, ioff, isize, + XBF_TRYLOCK|XBF_ASYNC|XBF_READ_AHEAD|XBF_DONT_BLOCK); +} + +/* + * Read an uncached buffer from disk. Allocates and returns a locked + * buffer containing the disk contents or nothing. + */ +struct xfs_buf * +xfs_buf_read_uncached( + struct xfs_mount *mp, + struct xfs_buftarg *target, + xfs_daddr_t daddr, + size_t length, + int flags) +{ + xfs_buf_t *bp; + int error; + + bp = xfs_buf_get_uncached(target, length, flags); + if (!bp) + return NULL; + + /* set up the buffer for a read IO */ + XFS_BUF_SET_ADDR(bp, daddr); + XFS_BUF_READ(bp); + XFS_BUF_BUSY(bp); + + xfsbdstrat(mp, bp); + error = xfs_buf_iowait(bp); + if (error || bp->b_error) { + xfs_buf_relse(bp); + return NULL; + } + return bp; +} + +xfs_buf_t * +xfs_buf_get_empty( + size_t len, + xfs_buftarg_t *target) +{ + xfs_buf_t *bp; + + bp = xfs_buf_allocate(0); + if (bp) + _xfs_buf_initialize(bp, target, 0, len, 0); + return bp; +} + +/* + * Return a buffer allocated as an empty buffer and associated to external + * memory via xfs_buf_associate_memory() back to it's empty state. + */ +void +xfs_buf_set_empty( + struct xfs_buf *bp, + size_t len) +{ + if (bp->b_pages) + _xfs_buf_free_pages(bp); + + bp->b_pages = NULL; + bp->b_page_count = 0; + bp->b_addr = NULL; + bp->b_file_offset = 0; + bp->b_buffer_length = bp->b_count_desired = len; + bp->b_bn = XFS_BUF_DADDR_NULL; + bp->b_flags &= ~XBF_MAPPED; +} + +static inline struct page * +mem_to_page( + void *addr) +{ + if ((!is_vmalloc_addr(addr))) { + return virt_to_page(addr); + } else { + return vmalloc_to_page(addr); + } +} + +int +xfs_buf_associate_memory( + xfs_buf_t *bp, + void *mem, + size_t len) +{ + int rval; + int i = 0; + unsigned long pageaddr; + unsigned long offset; + size_t buflen; + int page_count; + + pageaddr = (unsigned long)mem & PAGE_MASK; + offset = (unsigned long)mem - pageaddr; + buflen = PAGE_ALIGN(len + offset); + page_count = buflen >> PAGE_SHIFT; + + /* Free any previous set of page pointers */ + if (bp->b_pages) + _xfs_buf_free_pages(bp); + + bp->b_pages = NULL; + bp->b_addr = mem; + + rval = _xfs_buf_get_pages(bp, page_count, XBF_DONT_BLOCK); + if (rval) + return rval; + + bp->b_offset = offset; + + for (i = 0; i < bp->b_page_count; i++) { + bp->b_pages[i] = mem_to_page((void *)pageaddr); + pageaddr += PAGE_SIZE; + } + + bp->b_count_desired = len; + bp->b_buffer_length = buflen; + bp->b_flags |= XBF_MAPPED; + + return 0; +} + +xfs_buf_t * +xfs_buf_get_uncached( + struct xfs_buftarg *target, + size_t len, + int flags) +{ + unsigned long page_count = PAGE_ALIGN(len) >> PAGE_SHIFT; + int error, i; + xfs_buf_t *bp; + + bp = xfs_buf_allocate(0); + if (unlikely(bp == NULL)) + goto fail; + _xfs_buf_initialize(bp, target, 0, len, 0); + + error = _xfs_buf_get_pages(bp, page_count, 0); + if (error) + goto fail_free_buf; + + for (i = 0; i < page_count; i++) { + bp->b_pages[i] = alloc_page(xb_to_gfp(flags)); + if (!bp->b_pages[i]) + goto fail_free_mem; + } + bp->b_flags |= _XBF_PAGES; + + error = _xfs_buf_map_pages(bp, XBF_MAPPED); + if (unlikely(error)) { + xfs_warn(target->bt_mount, + "%s: failed to map pages\n", __func__); + goto fail_free_mem; + } + + trace_xfs_buf_get_uncached(bp, _RET_IP_); + return bp; + + fail_free_mem: + while (--i >= 0) + __free_page(bp->b_pages[i]); + _xfs_buf_free_pages(bp); + fail_free_buf: + xfs_buf_deallocate(bp); + fail: + return NULL; +} + +/* + * Increment reference count on buffer, to hold the buffer concurrently + * with another thread which may release (free) the buffer asynchronously. + * Must hold the buffer already to call this function. + */ +void +xfs_buf_hold( + xfs_buf_t *bp) +{ + trace_xfs_buf_hold(bp, _RET_IP_); + atomic_inc(&bp->b_hold); +} + +/* + * Releases a hold on the specified buffer. If the + * the hold count is 1, calls xfs_buf_free. + */ +void +xfs_buf_rele( + xfs_buf_t *bp) +{ + struct xfs_perag *pag = bp->b_pag; + + trace_xfs_buf_rele(bp, _RET_IP_); + + if (!pag) { + ASSERT(list_empty(&bp->b_lru)); + ASSERT(RB_EMPTY_NODE(&bp->b_rbnode)); + if (atomic_dec_and_test(&bp->b_hold)) + xfs_buf_free(bp); + return; + } + + ASSERT(!RB_EMPTY_NODE(&bp->b_rbnode)); + + ASSERT(atomic_read(&bp->b_hold) > 0); + if (atomic_dec_and_lock(&bp->b_hold, &pag->pag_buf_lock)) { + if (!(bp->b_flags & XBF_STALE) && + atomic_read(&bp->b_lru_ref)) { + xfs_buf_lru_add(bp); + spin_unlock(&pag->pag_buf_lock); + } else { + xfs_buf_lru_del(bp); + ASSERT(!(bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q))); + rb_erase(&bp->b_rbnode, &pag->pag_buf_tree); + spin_unlock(&pag->pag_buf_lock); + xfs_perag_put(pag); + xfs_buf_free(bp); + } + } +} + + +/* + * Lock a buffer object, if it is not already locked. + * + * If we come across a stale, pinned, locked buffer, we know that we are + * being asked to lock a buffer that has been reallocated. Because it is + * pinned, we know that the log has not been pushed to disk and hence it + * will still be locked. Rather than continuing to have trylock attempts + * fail until someone else pushes the log, push it ourselves before + * returning. This means that the xfsaild will not get stuck trying + * to push on stale inode buffers. + */ +int +xfs_buf_trylock( + struct xfs_buf *bp) +{ + int locked; + + locked = down_trylock(&bp->b_sema) == 0; + if (locked) + XB_SET_OWNER(bp); + else if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) + xfs_log_force(bp->b_target->bt_mount, 0); + + trace_xfs_buf_trylock(bp, _RET_IP_); + return locked; +} + +/* + * Lock a buffer object. + * + * If we come across a stale, pinned, locked buffer, we know that we + * are being asked to lock a buffer that has been reallocated. Because + * it is pinned, we know that the log has not been pushed to disk and + * hence it will still be locked. Rather than sleeping until someone + * else pushes the log, push it ourselves before trying to get the lock. + */ +void +xfs_buf_lock( + struct xfs_buf *bp) +{ + trace_xfs_buf_lock(bp, _RET_IP_); + + if (atomic_read(&bp->b_pin_count) && (bp->b_flags & XBF_STALE)) + xfs_log_force(bp->b_target->bt_mount, 0); + down(&bp->b_sema); + XB_SET_OWNER(bp); + + trace_xfs_buf_lock_done(bp, _RET_IP_); +} + +/* + * Releases the lock on the buffer object. + * If the buffer is marked delwri but is not queued, do so before we + * unlock the buffer as we need to set flags correctly. We also need to + * take a reference for the delwri queue because the unlocker is going to + * drop their's and they don't know we just queued it. + */ +void +xfs_buf_unlock( + struct xfs_buf *bp) +{ + if ((bp->b_flags & (XBF_DELWRI|_XBF_DELWRI_Q)) == XBF_DELWRI) { + atomic_inc(&bp->b_hold); + bp->b_flags |= XBF_ASYNC; + xfs_buf_delwri_queue(bp, 0); + } + + XB_CLEAR_OWNER(bp); + up(&bp->b_sema); + + trace_xfs_buf_unlock(bp, _RET_IP_); +} + +STATIC void +xfs_buf_wait_unpin( + xfs_buf_t *bp) +{ + DECLARE_WAITQUEUE (wait, current); + + if (atomic_read(&bp->b_pin_count) == 0) + return; + + add_wait_queue(&bp->b_waiters, &wait); + for (;;) { + set_current_state(TASK_UNINTERRUPTIBLE); + if (atomic_read(&bp->b_pin_count) == 0) + break; + io_schedule(); + } + remove_wait_queue(&bp->b_waiters, &wait); + set_current_state(TASK_RUNNING); +} + +/* + * Buffer Utility Routines + */ + +STATIC void +xfs_buf_iodone_work( + struct work_struct *work) +{ + xfs_buf_t *bp = + container_of(work, xfs_buf_t, b_iodone_work); + + if (bp->b_iodone) + (*(bp->b_iodone))(bp); + else if (bp->b_flags & XBF_ASYNC) + xfs_buf_relse(bp); +} + +void +xfs_buf_ioend( + xfs_buf_t *bp, + int schedule) +{ + trace_xfs_buf_iodone(bp, _RET_IP_); + + bp->b_flags &= ~(XBF_READ | XBF_WRITE | XBF_READ_AHEAD); + if (bp->b_error == 0) + bp->b_flags |= XBF_DONE; + + if ((bp->b_iodone) || (bp->b_flags & XBF_ASYNC)) { + if (schedule) { + INIT_WORK(&bp->b_iodone_work, xfs_buf_iodone_work); + queue_work(xfslogd_workqueue, &bp->b_iodone_work); + } else { + xfs_buf_iodone_work(&bp->b_iodone_work); + } + } else { + complete(&bp->b_iowait); + } +} + +void +xfs_buf_ioerror( + xfs_buf_t *bp, + int error) +{ + ASSERT(error >= 0 && error <= 0xffff); + bp->b_error = (unsigned short)error; + trace_xfs_buf_ioerror(bp, error, _RET_IP_); +} + +int +xfs_bwrite( + struct xfs_mount *mp, + struct xfs_buf *bp) +{ + int error; + + bp->b_flags |= XBF_WRITE; + bp->b_flags &= ~(XBF_ASYNC | XBF_READ); + + xfs_buf_delwri_dequeue(bp); + xfs_bdstrat_cb(bp); + + error = xfs_buf_iowait(bp); + if (error) + xfs_force_shutdown(mp, SHUTDOWN_META_IO_ERROR); + xfs_buf_relse(bp); + return error; +} + +void +xfs_bdwrite( + void *mp, + struct xfs_buf *bp) +{ + trace_xfs_buf_bdwrite(bp, _RET_IP_); + + bp->b_flags &= ~XBF_READ; + bp->b_flags |= (XBF_DELWRI | XBF_ASYNC); + + xfs_buf_delwri_queue(bp, 1); +} + +/* + * Called when we want to stop a buffer from getting written or read. + * We attach the EIO error, muck with its flags, and call xfs_buf_ioend + * so that the proper iodone callbacks get called. + */ +STATIC int +xfs_bioerror( + xfs_buf_t *bp) +{ +#ifdef XFSERRORDEBUG + ASSERT(XFS_BUF_ISREAD(bp) || bp->b_iodone); +#endif + + /* + * No need to wait until the buffer is unpinned, we aren't flushing it. + */ + XFS_BUF_ERROR(bp, EIO); + + /* + * We're calling xfs_buf_ioend, so delete XBF_DONE flag. + */ + XFS_BUF_UNREAD(bp); + XFS_BUF_UNDELAYWRITE(bp); + XFS_BUF_UNDONE(bp); + XFS_BUF_STALE(bp); + + xfs_buf_ioend(bp, 0); + + return EIO; +} + +/* + * Same as xfs_bioerror, except that we are releasing the buffer + * here ourselves, and avoiding the xfs_buf_ioend call. + * This is meant for userdata errors; metadata bufs come with + * iodone functions attached, so that we can track down errors. + */ +STATIC int +xfs_bioerror_relse( + struct xfs_buf *bp) +{ + int64_t fl = XFS_BUF_BFLAGS(bp); + /* + * No need to wait until the buffer is unpinned. + * We aren't flushing it. + * + * chunkhold expects B_DONE to be set, whether + * we actually finish the I/O or not. We don't want to + * change that interface. + */ + XFS_BUF_UNREAD(bp); + XFS_BUF_UNDELAYWRITE(bp); + XFS_BUF_DONE(bp); + XFS_BUF_STALE(bp); + bp->b_iodone = NULL; + if (!(fl & XBF_ASYNC)) { + /* + * Mark b_error and B_ERROR _both_. + * Lot's of chunkcache code assumes that. + * There's no reason to mark error for + * ASYNC buffers. + */ + XFS_BUF_ERROR(bp, EIO); + XFS_BUF_FINISH_IOWAIT(bp); + } else { + xfs_buf_relse(bp); + } + + return EIO; +} + + +/* + * All xfs metadata buffers except log state machine buffers + * get this attached as their b_bdstrat callback function. + * This is so that we can catch a buffer + * after prematurely unpinning it to forcibly shutdown the filesystem. + */ +int +xfs_bdstrat_cb( + struct xfs_buf *bp) +{ + if (XFS_FORCED_SHUTDOWN(bp->b_target->bt_mount)) { + trace_xfs_bdstrat_shut(bp, _RET_IP_); + /* + * Metadata write that didn't get logged but + * written delayed anyway. These aren't associated + * with a transaction, and can be ignored. + */ + if (!bp->b_iodone && !XFS_BUF_ISREAD(bp)) + return xfs_bioerror_relse(bp); + else + return xfs_bioerror(bp); + } + + xfs_buf_iorequest(bp); + return 0; +} + +/* + * Wrapper around bdstrat so that we can stop data from going to disk in case + * we are shutting down the filesystem. Typically user data goes thru this + * path; one of the exceptions is the superblock. + */ +void +xfsbdstrat( + struct xfs_mount *mp, + struct xfs_buf *bp) +{ + if (XFS_FORCED_SHUTDOWN(mp)) { + trace_xfs_bdstrat_shut(bp, _RET_IP_); + xfs_bioerror_relse(bp); + return; + } + + xfs_buf_iorequest(bp); +} + +STATIC void +_xfs_buf_ioend( + xfs_buf_t *bp, + int schedule) +{ + if (atomic_dec_and_test(&bp->b_io_remaining) == 1) + xfs_buf_ioend(bp, schedule); +} + +STATIC void +xfs_buf_bio_end_io( + struct bio *bio, + int error) +{ + xfs_buf_t *bp = (xfs_buf_t *)bio->bi_private; + + xfs_buf_ioerror(bp, -error); + + if (!error && xfs_buf_is_vmapped(bp) && (bp->b_flags & XBF_READ)) + invalidate_kernel_vmap_range(bp->b_addr, xfs_buf_vmap_len(bp)); + + _xfs_buf_ioend(bp, 1); + bio_put(bio); +} + +STATIC void +_xfs_buf_ioapply( + xfs_buf_t *bp) +{ + int rw, map_i, total_nr_pages, nr_pages; + struct bio *bio; + int offset = bp->b_offset; + int size = bp->b_count_desired; + sector_t sector = bp->b_bn; + + total_nr_pages = bp->b_page_count; + map_i = 0; + + if (bp->b_flags & XBF_WRITE) { + if (bp->b_flags & XBF_SYNCIO) + rw = WRITE_SYNC; + else + rw = WRITE; + if (bp->b_flags & XBF_FUA) + rw |= REQ_FUA; + if (bp->b_flags & XBF_FLUSH) + rw |= REQ_FLUSH; + } else if (bp->b_flags & XBF_READ_AHEAD) { + rw = READA; + } else { + rw = READ; + } + +next_chunk: + atomic_inc(&bp->b_io_remaining); + nr_pages = BIO_MAX_SECTORS >> (PAGE_SHIFT - BBSHIFT); + if (nr_pages > total_nr_pages) + nr_pages = total_nr_pages; + + bio = bio_alloc(GFP_NOIO, nr_pages); + bio->bi_bdev = bp->b_target->bt_bdev; + bio->bi_sector = sector; + bio->bi_end_io = xfs_buf_bio_end_io; + bio->bi_private = bp; + + + for (; size && nr_pages; nr_pages--, map_i++) { + int rbytes, nbytes = PAGE_SIZE - offset; + + if (nbytes > size) + nbytes = size; + + rbytes = bio_add_page(bio, bp->b_pages[map_i], nbytes, offset); + if (rbytes < nbytes) + break; + + offset = 0; + sector += nbytes >> BBSHIFT; + size -= nbytes; + total_nr_pages--; + } + + if (likely(bio->bi_size)) { + if (xfs_buf_is_vmapped(bp)) { + flush_kernel_vmap_range(bp->b_addr, + xfs_buf_vmap_len(bp)); + } + submit_bio(rw, bio); + if (size) + goto next_chunk; + } else { + xfs_buf_ioerror(bp, EIO); + bio_put(bio); + } +} + +int +xfs_buf_iorequest( + xfs_buf_t *bp) +{ + trace_xfs_buf_iorequest(bp, _RET_IP_); + + if (bp->b_flags & XBF_DELWRI) { + xfs_buf_delwri_queue(bp, 1); + return 0; + } + + if (bp->b_flags & XBF_WRITE) { + xfs_buf_wait_unpin(bp); + } + + xfs_buf_hold(bp); + + /* Set the count to 1 initially, this will stop an I/O + * completion callout which happens before we have started + * all the I/O from calling xfs_buf_ioend too early. + */ + atomic_set(&bp->b_io_remaining, 1); + _xfs_buf_ioapply(bp); + _xfs_buf_ioend(bp, 0); + + xfs_buf_rele(bp); + return 0; +} + +/* + * Waits for I/O to complete on the buffer supplied. + * It returns immediately if no I/O is pending. + * It returns the I/O error code, if any, or 0 if there was no error. + */ +int +xfs_buf_iowait( + xfs_buf_t *bp) +{ + trace_xfs_buf_iowait(bp, _RET_IP_); + + wait_for_completion(&bp->b_iowait); + + trace_xfs_buf_iowait_done(bp, _RET_IP_); + return bp->b_error; +} + +xfs_caddr_t +xfs_buf_offset( + xfs_buf_t *bp, + size_t offset) +{ + struct page *page; + + if (bp->b_flags & XBF_MAPPED) + return XFS_BUF_PTR(bp) + offset; + + offset += bp->b_offset; + page = bp->b_pages[offset >> PAGE_SHIFT]; + return (xfs_caddr_t)page_address(page) + (offset & (PAGE_SIZE-1)); +} + +/* + * Move data into or out of a buffer. + */ +void +xfs_buf_iomove( + xfs_buf_t *bp, /* buffer to process */ + size_t boff, /* starting buffer offset */ + size_t bsize, /* length to copy */ + void *data, /* data address */ + xfs_buf_rw_t mode) /* read/write/zero flag */ +{ + size_t bend, cpoff, csize; + struct page *page; + + bend = boff + bsize; + while (boff < bend) { + page = bp->b_pages[xfs_buf_btoct(boff + bp->b_offset)]; + cpoff = xfs_buf_poff(boff + bp->b_offset); + csize = min_t(size_t, + PAGE_SIZE-cpoff, bp->b_count_desired-boff); + + ASSERT(((csize + cpoff) <= PAGE_SIZE)); + + switch (mode) { + case XBRW_ZERO: + memset(page_address(page) + cpoff, 0, csize); + break; + case XBRW_READ: + memcpy(data, page_address(page) + cpoff, csize); + break; + case XBRW_WRITE: + memcpy(page_address(page) + cpoff, data, csize); + } + + boff += csize; + data += csize; + } +} + +/* + * Handling of buffer targets (buftargs). + */ + +/* + * Wait for any bufs with callbacks that have been submitted but have not yet + * returned. These buffers will have an elevated hold count, so wait on those + * while freeing all the buffers only held by the LRU. + */ +void +xfs_wait_buftarg( + struct xfs_buftarg *btp) +{ + struct xfs_buf *bp; + +restart: + spin_lock(&btp->bt_lru_lock); + while (!list_empty(&btp->bt_lru)) { + bp = list_first_entry(&btp->bt_lru, struct xfs_buf, b_lru); + if (atomic_read(&bp->b_hold) > 1) { + spin_unlock(&btp->bt_lru_lock); + delay(100); + goto restart; + } + /* + * clear the LRU reference count so the bufer doesn't get + * ignored in xfs_buf_rele(). + */ + atomic_set(&bp->b_lru_ref, 0); + spin_unlock(&btp->bt_lru_lock); + xfs_buf_rele(bp); + spin_lock(&btp->bt_lru_lock); + } + spin_unlock(&btp->bt_lru_lock); +} + +int +xfs_buftarg_shrink( + struct shrinker *shrink, + struct shrink_control *sc) +{ + struct xfs_buftarg *btp = container_of(shrink, + struct xfs_buftarg, bt_shrinker); + struct xfs_buf *bp; + int nr_to_scan = sc->nr_to_scan; + LIST_HEAD(dispose); + + if (!nr_to_scan) + return btp->bt_lru_nr; + + spin_lock(&btp->bt_lru_lock); + while (!list_empty(&btp->bt_lru)) { + if (nr_to_scan-- <= 0) + break; + + bp = list_first_entry(&btp->bt_lru, struct xfs_buf, b_lru); + + /* + * Decrement the b_lru_ref count unless the value is already + * zero. If the value is already zero, we need to reclaim the + * buffer, otherwise it gets another trip through the LRU. + */ + if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) { + list_move_tail(&bp->b_lru, &btp->bt_lru); + continue; + } + + /* + * remove the buffer from the LRU now to avoid needing another + * lock round trip inside xfs_buf_rele(). + */ + list_move(&bp->b_lru, &dispose); + btp->bt_lru_nr--; + } + spin_unlock(&btp->bt_lru_lock); + + while (!list_empty(&dispose)) { + bp = list_first_entry(&dispose, struct xfs_buf, b_lru); + list_del_init(&bp->b_lru); + xfs_buf_rele(bp); + } + + return btp->bt_lru_nr; +} + +void +xfs_free_buftarg( + struct xfs_mount *mp, + struct xfs_buftarg *btp) +{ + unregister_shrinker(&btp->bt_shrinker); + + xfs_flush_buftarg(btp, 1); + if (mp->m_flags & XFS_MOUNT_BARRIER) + xfs_blkdev_issue_flush(btp); + + kthread_stop(btp->bt_task); + kmem_free(btp); +} + +STATIC int +xfs_setsize_buftarg_flags( + xfs_buftarg_t *btp, + unsigned int blocksize, + unsigned int sectorsize, + int verbose) +{ + btp->bt_bsize = blocksize; + btp->bt_sshift = ffs(sectorsize) - 1; + btp->bt_smask = sectorsize - 1; + + if (set_blocksize(btp->bt_bdev, sectorsize)) { + xfs_warn(btp->bt_mount, + "Cannot set_blocksize to %u on device %s\n", + sectorsize, XFS_BUFTARG_NAME(btp)); + return EINVAL; + } + + return 0; +} + +/* + * When allocating the initial buffer target we have not yet + * read in the superblock, so don't know what sized sectors + * are being used is at this early stage. Play safe. + */ +STATIC int +xfs_setsize_buftarg_early( + xfs_buftarg_t *btp, + struct block_device *bdev) +{ + return xfs_setsize_buftarg_flags(btp, + PAGE_SIZE, bdev_logical_block_size(bdev), 0); +} + +int +xfs_setsize_buftarg( + xfs_buftarg_t *btp, + unsigned int blocksize, + unsigned int sectorsize) +{ + return xfs_setsize_buftarg_flags(btp, blocksize, sectorsize, 1); +} + +STATIC int +xfs_alloc_delwrite_queue( + xfs_buftarg_t *btp, + const char *fsname) +{ + INIT_LIST_HEAD(&btp->bt_delwrite_queue); + spin_lock_init(&btp->bt_delwrite_lock); + btp->bt_flags = 0; + btp->bt_task = kthread_run(xfsbufd, btp, "xfsbufd/%s", fsname); + if (IS_ERR(btp->bt_task)) + return PTR_ERR(btp->bt_task); + return 0; +} + +xfs_buftarg_t * +xfs_alloc_buftarg( + struct xfs_mount *mp, + struct block_device *bdev, + int external, + const char *fsname) +{ + xfs_buftarg_t *btp; + + btp = kmem_zalloc(sizeof(*btp), KM_SLEEP); + + btp->bt_mount = mp; + btp->bt_dev = bdev->bd_dev; + btp->bt_bdev = bdev; + btp->bt_bdi = blk_get_backing_dev_info(bdev); + if (!btp->bt_bdi) + goto error; + + INIT_LIST_HEAD(&btp->bt_lru); + spin_lock_init(&btp->bt_lru_lock); + if (xfs_setsize_buftarg_early(btp, bdev)) + goto error; + if (xfs_alloc_delwrite_queue(btp, fsname)) + goto error; + btp->bt_shrinker.shrink = xfs_buftarg_shrink; + btp->bt_shrinker.seeks = DEFAULT_SEEKS; + register_shrinker(&btp->bt_shrinker); + return btp; + +error: + kmem_free(btp); + return NULL; +} + + +/* + * Delayed write buffer handling + */ +STATIC void +xfs_buf_delwri_queue( + xfs_buf_t *bp, + int unlock) +{ + struct list_head *dwq = &bp->b_target->bt_delwrite_queue; + spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; + + trace_xfs_buf_delwri_queue(bp, _RET_IP_); + + ASSERT((bp->b_flags&(XBF_DELWRI|XBF_ASYNC)) == (XBF_DELWRI|XBF_ASYNC)); + + spin_lock(dwlk); + /* If already in the queue, dequeue and place at tail */ + if (!list_empty(&bp->b_list)) { + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + if (unlock) + atomic_dec(&bp->b_hold); + list_del(&bp->b_list); + } + + if (list_empty(dwq)) { + /* start xfsbufd as it is about to have something to do */ + wake_up_process(bp->b_target->bt_task); + } + + bp->b_flags |= _XBF_DELWRI_Q; + list_add_tail(&bp->b_list, dwq); + bp->b_queuetime = jiffies; + spin_unlock(dwlk); + + if (unlock) + xfs_buf_unlock(bp); +} + +void +xfs_buf_delwri_dequeue( + xfs_buf_t *bp) +{ + spinlock_t *dwlk = &bp->b_target->bt_delwrite_lock; + int dequeued = 0; + + spin_lock(dwlk); + if ((bp->b_flags & XBF_DELWRI) && !list_empty(&bp->b_list)) { + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + list_del_init(&bp->b_list); + dequeued = 1; + } + bp->b_flags &= ~(XBF_DELWRI|_XBF_DELWRI_Q); + spin_unlock(dwlk); + + if (dequeued) + xfs_buf_rele(bp); + + trace_xfs_buf_delwri_dequeue(bp, _RET_IP_); +} + +/* + * If a delwri buffer needs to be pushed before it has aged out, then promote + * it to the head of the delwri queue so that it will be flushed on the next + * xfsbufd run. We do this by resetting the queuetime of the buffer to be older + * than the age currently needed to flush the buffer. Hence the next time the + * xfsbufd sees it is guaranteed to be considered old enough to flush. + */ +void +xfs_buf_delwri_promote( + struct xfs_buf *bp) +{ + struct xfs_buftarg *btp = bp->b_target; + long age = xfs_buf_age_centisecs * msecs_to_jiffies(10) + 1; + + ASSERT(bp->b_flags & XBF_DELWRI); + ASSERT(bp->b_flags & _XBF_DELWRI_Q); + + /* + * Check the buffer age before locking the delayed write queue as we + * don't need to promote buffers that are already past the flush age. + */ + if (bp->b_queuetime < jiffies - age) + return; + bp->b_queuetime = jiffies - age; + spin_lock(&btp->bt_delwrite_lock); + list_move(&bp->b_list, &btp->bt_delwrite_queue); + spin_unlock(&btp->bt_delwrite_lock); +} + +STATIC void +xfs_buf_runall_queues( + struct workqueue_struct *queue) +{ + flush_workqueue(queue); +} + +/* + * Move as many buffers as specified to the supplied list + * idicating if we skipped any buffers to prevent deadlocks. + */ +STATIC int +xfs_buf_delwri_split( + xfs_buftarg_t *target, + struct list_head *list, + unsigned long age) +{ + xfs_buf_t *bp, *n; + struct list_head *dwq = &target->bt_delwrite_queue; + spinlock_t *dwlk = &target->bt_delwrite_lock; + int skipped = 0; + int force; + + force = test_and_clear_bit(XBT_FORCE_FLUSH, &target->bt_flags); + INIT_LIST_HEAD(list); + spin_lock(dwlk); + list_for_each_entry_safe(bp, n, dwq, b_list) { + ASSERT(bp->b_flags & XBF_DELWRI); + + if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { + if (!force && + time_before(jiffies, bp->b_queuetime + age)) { + xfs_buf_unlock(bp); + break; + } + + bp->b_flags &= ~(XBF_DELWRI | _XBF_DELWRI_Q); + bp->b_flags |= XBF_WRITE; + list_move_tail(&bp->b_list, list); + trace_xfs_buf_delwri_split(bp, _RET_IP_); + } else + skipped++; + } + spin_unlock(dwlk); + + return skipped; + +} + +/* + * Compare function is more complex than it needs to be because + * the return value is only 32 bits and we are doing comparisons + * on 64 bit values + */ +static int +xfs_buf_cmp( + void *priv, + struct list_head *a, + struct list_head *b) +{ + struct xfs_buf *ap = container_of(a, struct xfs_buf, b_list); + struct xfs_buf *bp = container_of(b, struct xfs_buf, b_list); + xfs_daddr_t diff; + + diff = ap->b_bn - bp->b_bn; + if (diff < 0) + return -1; + if (diff > 0) + return 1; + return 0; +} + +STATIC int +xfsbufd( + void *data) +{ + xfs_buftarg_t *target = (xfs_buftarg_t *)data; + + current->flags |= PF_MEMALLOC; + + set_freezable(); + + do { + long age = xfs_buf_age_centisecs * msecs_to_jiffies(10); + long tout = xfs_buf_timer_centisecs * msecs_to_jiffies(10); + struct list_head tmp; + struct blk_plug plug; + + if (unlikely(freezing(current))) { + set_bit(XBT_FORCE_SLEEP, &target->bt_flags); + refrigerator(); + } else { + clear_bit(XBT_FORCE_SLEEP, &target->bt_flags); + } + + /* sleep for a long time if there is nothing to do. */ + if (list_empty(&target->bt_delwrite_queue)) + tout = MAX_SCHEDULE_TIMEOUT; + schedule_timeout_interruptible(tout); + + xfs_buf_delwri_split(target, &tmp, age); + list_sort(NULL, &tmp, xfs_buf_cmp); + + blk_start_plug(&plug); + while (!list_empty(&tmp)) { + struct xfs_buf *bp; + bp = list_first_entry(&tmp, struct xfs_buf, b_list); + list_del_init(&bp->b_list); + xfs_bdstrat_cb(bp); + } + blk_finish_plug(&plug); + } while (!kthread_should_stop()); + + return 0; +} + +/* + * Go through all incore buffers, and release buffers if they belong to + * the given device. This is used in filesystem error handling to + * preserve the consistency of its metadata. + */ +int +xfs_flush_buftarg( + xfs_buftarg_t *target, + int wait) +{ + xfs_buf_t *bp; + int pincount = 0; + LIST_HEAD(tmp_list); + LIST_HEAD(wait_list); + struct blk_plug plug; + + xfs_buf_runall_queues(xfsconvertd_workqueue); + xfs_buf_runall_queues(xfsdatad_workqueue); + xfs_buf_runall_queues(xfslogd_workqueue); + + set_bit(XBT_FORCE_FLUSH, &target->bt_flags); + pincount = xfs_buf_delwri_split(target, &tmp_list, 0); + + /* + * Dropped the delayed write list lock, now walk the temporary list. + * All I/O is issued async and then if we need to wait for completion + * we do that after issuing all the IO. + */ + list_sort(NULL, &tmp_list, xfs_buf_cmp); + + blk_start_plug(&plug); + while (!list_empty(&tmp_list)) { + bp = list_first_entry(&tmp_list, struct xfs_buf, b_list); + ASSERT(target == bp->b_target); + list_del_init(&bp->b_list); + if (wait) { + bp->b_flags &= ~XBF_ASYNC; + list_add(&bp->b_list, &wait_list); + } + xfs_bdstrat_cb(bp); + } + blk_finish_plug(&plug); + + if (wait) { + /* Wait for IO to complete. */ + while (!list_empty(&wait_list)) { + bp = list_first_entry(&wait_list, struct xfs_buf, b_list); + + list_del_init(&bp->b_list); + xfs_buf_iowait(bp); + xfs_buf_relse(bp); + } + } + + return pincount; +} + +int __init +xfs_buf_init(void) +{ + xfs_buf_zone = kmem_zone_init_flags(sizeof(xfs_buf_t), "xfs_buf", + KM_ZONE_HWALIGN, NULL); + if (!xfs_buf_zone) + goto out; + + xfslogd_workqueue = alloc_workqueue("xfslogd", + WQ_MEM_RECLAIM | WQ_HIGHPRI, 1); + if (!xfslogd_workqueue) + goto out_free_buf_zone; + + xfsdatad_workqueue = alloc_workqueue("xfsdatad", WQ_MEM_RECLAIM, 1); + if (!xfsdatad_workqueue) + goto out_destroy_xfslogd_workqueue; + + xfsconvertd_workqueue = alloc_workqueue("xfsconvertd", + WQ_MEM_RECLAIM, 1); + if (!xfsconvertd_workqueue) + goto out_destroy_xfsdatad_workqueue; + + return 0; + + out_destroy_xfsdatad_workqueue: + destroy_workqueue(xfsdatad_workqueue); + out_destroy_xfslogd_workqueue: + destroy_workqueue(xfslogd_workqueue); + out_free_buf_zone: + kmem_zone_destroy(xfs_buf_zone); + out: + return -ENOMEM; +} + +void +xfs_buf_terminate(void) +{ + destroy_workqueue(xfsconvertd_workqueue); + destroy_workqueue(xfsdatad_workqueue); + destroy_workqueue(xfslogd_workqueue); + kmem_zone_destroy(xfs_buf_zone); +} + +#ifdef CONFIG_KDB_MODULES +struct list_head * +xfs_get_buftarg_list(void) +{ + return &xfs_buftarg_list; +} +#endif diff --git a/fs/xfs/linux/xfs_buf.h b/fs/xfs/linux/xfs_buf.h new file mode 100644 index 0000000..6a83b46 --- /dev/null +++ b/fs/xfs/linux/xfs_buf.h @@ -0,0 +1,336 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_BUF_H__ +#define __XFS_BUF_H__ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + * Base types + */ + +#define XFS_BUF_DADDR_NULL ((xfs_daddr_t) (-1LL)) + +#define xfs_buf_ctob(pp) ((pp) * PAGE_CACHE_SIZE) +#define xfs_buf_btoc(dd) (((dd) + PAGE_CACHE_SIZE-1) >> PAGE_CACHE_SHIFT) +#define xfs_buf_btoct(dd) ((dd) >> PAGE_CACHE_SHIFT) +#define xfs_buf_poff(aa) ((aa) & ~PAGE_CACHE_MASK) + +typedef enum { + XBRW_READ = 1, /* transfer into target memory */ + XBRW_WRITE = 2, /* transfer from target memory */ + XBRW_ZERO = 3, /* Zero target memory */ +} xfs_buf_rw_t; + +#define XBF_READ (1 << 0) /* buffer intended for reading from device */ +#define XBF_WRITE (1 << 1) /* buffer intended for writing to device */ +#define XBF_READ_AHEAD (1 << 2) /* asynchronous read-ahead */ +#define XBF_MAPPED (1 << 3) /* buffer mapped (b_addr valid) */ +#define XBF_ASYNC (1 << 4) /* initiator will not wait for completion */ +#define XBF_DONE (1 << 5) /* all pages in the buffer uptodate */ +#define XBF_DELWRI (1 << 6) /* buffer has dirty pages */ +#define XBF_STALE (1 << 7) /* buffer has been staled, do not find it */ + +/* I/O hints for the BIO layer */ +#define XBF_SYNCIO (1 << 10)/* treat this buffer as synchronous I/O */ +#define XBF_FUA (1 << 11)/* force cache write through mode */ +#define XBF_FLUSH (1 << 12)/* flush the disk cache before a write */ + +/* flags used only as arguments to access routines */ +#define XBF_LOCK (1 << 15)/* lock requested */ +#define XBF_TRYLOCK (1 << 16)/* lock requested, but do not wait */ +#define XBF_DONT_BLOCK (1 << 17)/* do not block in current thread */ + +/* flags used only internally */ +#define _XBF_PAGES (1 << 20)/* backed by refcounted pages */ +#define _XBF_KMEM (1 << 21)/* backed by heap memory */ +#define _XBF_DELWRI_Q (1 << 22)/* buffer on delwri queue */ + +typedef unsigned int xfs_buf_flags_t; + +#define XFS_BUF_FLAGS \ + { XBF_READ, "READ" }, \ + { XBF_WRITE, "WRITE" }, \ + { XBF_READ_AHEAD, "READ_AHEAD" }, \ + { XBF_MAPPED, "MAPPED" }, \ + { XBF_ASYNC, "ASYNC" }, \ + { XBF_DONE, "DONE" }, \ + { XBF_DELWRI, "DELWRI" }, \ + { XBF_STALE, "STALE" }, \ + { XBF_SYNCIO, "SYNCIO" }, \ + { XBF_FUA, "FUA" }, \ + { XBF_FLUSH, "FLUSH" }, \ + { XBF_LOCK, "LOCK" }, /* should never be set */\ + { XBF_TRYLOCK, "TRYLOCK" }, /* ditto */\ + { XBF_DONT_BLOCK, "DONT_BLOCK" }, /* ditto */\ + { _XBF_PAGES, "PAGES" }, \ + { _XBF_KMEM, "KMEM" }, \ + { _XBF_DELWRI_Q, "DELWRI_Q" } + +typedef enum { + XBT_FORCE_SLEEP = 0, + XBT_FORCE_FLUSH = 1, +} xfs_buftarg_flags_t; + +typedef struct xfs_buftarg { + dev_t bt_dev; + struct block_device *bt_bdev; + struct backing_dev_info *bt_bdi; + struct xfs_mount *bt_mount; + unsigned int bt_bsize; + unsigned int bt_sshift; + size_t bt_smask; + + /* per device delwri queue */ + struct task_struct *bt_task; + struct list_head bt_delwrite_queue; + spinlock_t bt_delwrite_lock; + unsigned long bt_flags; + + /* LRU control structures */ + struct shrinker bt_shrinker; + struct list_head bt_lru; + spinlock_t bt_lru_lock; + unsigned int bt_lru_nr; +} xfs_buftarg_t; + +struct xfs_buf; +typedef void (*xfs_buf_iodone_t)(struct xfs_buf *); + +#define XB_PAGES 2 + +typedef struct xfs_buf { + /* + * first cacheline holds all the fields needed for an uncontended cache + * hit to be fully processed. The semaphore straddles the cacheline + * boundary, but the counter and lock sits on the first cacheline, + * which is the only bit that is touched if we hit the semaphore + * fast-path on locking. + */ + struct rb_node b_rbnode; /* rbtree node */ + xfs_off_t b_file_offset; /* offset in file */ + size_t b_buffer_length;/* size of buffer in bytes */ + atomic_t b_hold; /* reference count */ + atomic_t b_lru_ref; /* lru reclaim ref count */ + xfs_buf_flags_t b_flags; /* status flags */ + struct semaphore b_sema; /* semaphore for lockables */ + + struct list_head b_lru; /* lru list */ + wait_queue_head_t b_waiters; /* unpin waiters */ + struct list_head b_list; + struct xfs_perag *b_pag; /* contains rbtree root */ + xfs_buftarg_t *b_target; /* buffer target (device) */ + xfs_daddr_t b_bn; /* block number for I/O */ + size_t b_count_desired;/* desired transfer size */ + void *b_addr; /* virtual address of buffer */ + struct work_struct b_iodone_work; + xfs_buf_iodone_t b_iodone; /* I/O completion function */ + struct completion b_iowait; /* queue for I/O waiters */ + void *b_fspriv; + struct xfs_trans *b_transp; + struct page **b_pages; /* array of page pointers */ + struct page *b_page_array[XB_PAGES]; /* inline pages */ + unsigned long b_queuetime; /* time buffer was queued */ + atomic_t b_pin_count; /* pin count */ + atomic_t b_io_remaining; /* #outstanding I/O requests */ + unsigned int b_page_count; /* size of page array */ + unsigned int b_offset; /* page offset in first page */ + unsigned short b_error; /* error code on I/O */ +#ifdef XFS_BUF_LOCK_TRACKING + int b_last_holder; +#endif +} xfs_buf_t; + + +/* Finding and Reading Buffers */ +extern xfs_buf_t *_xfs_buf_find(xfs_buftarg_t *, xfs_off_t, size_t, + xfs_buf_flags_t, xfs_buf_t *); +#define xfs_incore(buftarg,blkno,len,lockit) \ + _xfs_buf_find(buftarg, blkno ,len, lockit, NULL) + +extern xfs_buf_t *xfs_buf_get(xfs_buftarg_t *, xfs_off_t, size_t, + xfs_buf_flags_t); +extern xfs_buf_t *xfs_buf_read(xfs_buftarg_t *, xfs_off_t, size_t, + xfs_buf_flags_t); + +extern xfs_buf_t *xfs_buf_get_empty(size_t, xfs_buftarg_t *); +extern void xfs_buf_set_empty(struct xfs_buf *bp, size_t len); +extern xfs_buf_t *xfs_buf_get_uncached(struct xfs_buftarg *, size_t, int); +extern int xfs_buf_associate_memory(xfs_buf_t *, void *, size_t); +extern void xfs_buf_hold(xfs_buf_t *); +extern void xfs_buf_readahead(xfs_buftarg_t *, xfs_off_t, size_t); +struct xfs_buf *xfs_buf_read_uncached(struct xfs_mount *mp, + struct xfs_buftarg *target, + xfs_daddr_t daddr, size_t length, int flags); + +/* Releasing Buffers */ +extern void xfs_buf_free(xfs_buf_t *); +extern void xfs_buf_rele(xfs_buf_t *); + +/* Locking and Unlocking Buffers */ +extern int xfs_buf_trylock(xfs_buf_t *); +extern void xfs_buf_lock(xfs_buf_t *); +extern void xfs_buf_unlock(xfs_buf_t *); +#define xfs_buf_islocked(bp) \ + ((bp)->b_sema.count <= 0) + +/* Buffer Read and Write Routines */ +extern int xfs_bwrite(struct xfs_mount *mp, struct xfs_buf *bp); +extern void xfs_bdwrite(void *mp, xfs_buf_t *bp); + +extern void xfsbdstrat(struct xfs_mount *, struct xfs_buf *); +extern int xfs_bdstrat_cb(struct xfs_buf *); + +extern void xfs_buf_ioend(xfs_buf_t *, int); +extern void xfs_buf_ioerror(xfs_buf_t *, int); +extern int xfs_buf_iorequest(xfs_buf_t *); +extern int xfs_buf_iowait(xfs_buf_t *); +extern void xfs_buf_iomove(xfs_buf_t *, size_t, size_t, void *, + xfs_buf_rw_t); +#define xfs_buf_zero(bp, off, len) \ + xfs_buf_iomove((bp), (off), (len), NULL, XBRW_ZERO) + +static inline int xfs_buf_geterror(xfs_buf_t *bp) +{ + return bp ? bp->b_error : ENOMEM; +} + +/* Buffer Utility Routines */ +extern xfs_caddr_t xfs_buf_offset(xfs_buf_t *, size_t); + +/* Delayed Write Buffer Routines */ +extern void xfs_buf_delwri_dequeue(xfs_buf_t *); +extern void xfs_buf_delwri_promote(xfs_buf_t *); + +/* Buffer Daemon Setup Routines */ +extern int xfs_buf_init(void); +extern void xfs_buf_terminate(void); + +#define xfs_buf_target_name(target) \ + ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) + + +#define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) +#define XFS_BUF_ZEROFLAGS(bp) \ + ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ + XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) + +void xfs_buf_stale(struct xfs_buf *bp); +#define XFS_BUF_STALE(bp) xfs_buf_stale(bp); +#define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE) +#define XFS_BUF_ISSTALE(bp) ((bp)->b_flags & XBF_STALE) +#define XFS_BUF_SUPER_STALE(bp) do { \ + XFS_BUF_STALE(bp); \ + xfs_buf_delwri_dequeue(bp); \ + XFS_BUF_DONE(bp); \ + } while (0) + +#define XFS_BUF_DELAYWRITE(bp) ((bp)->b_flags |= XBF_DELWRI) +#define XFS_BUF_UNDELAYWRITE(bp) xfs_buf_delwri_dequeue(bp) +#define XFS_BUF_ISDELAYWRITE(bp) ((bp)->b_flags & XBF_DELWRI) + +#define XFS_BUF_ERROR(bp,no) xfs_buf_ioerror(bp,no) +#define XFS_BUF_GETERROR(bp) xfs_buf_geterror(bp) +#define XFS_BUF_ISERROR(bp) (xfs_buf_geterror(bp) ? 1 : 0) + +#define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE) +#define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) +#define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) + +#define XFS_BUF_BUSY(bp) do { } while (0) +#define XFS_BUF_UNBUSY(bp) do { } while (0) +#define XFS_BUF_ISBUSY(bp) (1) + +#define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC) +#define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) +#define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) + +#define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) +#define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) +#define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) +#define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ) + +#define XFS_BUF_WRITE(bp) ((bp)->b_flags |= XBF_WRITE) +#define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) +#define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) + +#define XFS_BUF_SET_START(bp) do { } while (0) + +#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) +#define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) +#define XFS_BUF_ADDR(bp) ((bp)->b_bn) +#define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) +#define XFS_BUF_OFFSET(bp) ((bp)->b_file_offset) +#define XFS_BUF_SET_OFFSET(bp, off) ((bp)->b_file_offset = (off)) +#define XFS_BUF_COUNT(bp) ((bp)->b_count_desired) +#define XFS_BUF_SET_COUNT(bp, cnt) ((bp)->b_count_desired = (cnt)) +#define XFS_BUF_SIZE(bp) ((bp)->b_buffer_length) +#define XFS_BUF_SET_SIZE(bp, cnt) ((bp)->b_buffer_length = (cnt)) + +static inline void +xfs_buf_set_ref( + struct xfs_buf *bp, + int lru_ref) +{ + atomic_set(&bp->b_lru_ref, lru_ref); +} +#define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) +#define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) + +#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) + +#define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); + +#define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) +#define XFS_BUF_TARGET(bp) ((bp)->b_target) +#define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) + +static inline void xfs_buf_relse(xfs_buf_t *bp) +{ + xfs_buf_unlock(bp); + xfs_buf_rele(bp); +} + +/* + * Handling of buftargs. + */ +extern xfs_buftarg_t *xfs_alloc_buftarg(struct xfs_mount *, + struct block_device *, int, const char *); +extern void xfs_free_buftarg(struct xfs_mount *, struct xfs_buftarg *); +extern void xfs_wait_buftarg(xfs_buftarg_t *); +extern int xfs_setsize_buftarg(xfs_buftarg_t *, unsigned int, unsigned int); +extern int xfs_flush_buftarg(xfs_buftarg_t *, int); + +#ifdef CONFIG_KDB_MODULES +extern struct list_head *xfs_get_buftarg_list(void); +#endif + +#define xfs_getsize_buftarg(buftarg) block_size((buftarg)->bt_bdev) +#define xfs_readonly_buftarg(buftarg) bdev_read_only((buftarg)->bt_bdev) + +#define xfs_binval(buftarg) xfs_flush_buftarg(buftarg, 1) +#define XFS_bflush(buftarg) xfs_flush_buftarg(buftarg, 1) + +#endif /* __XFS_BUF_H__ */ diff --git a/fs/xfs/linux/xfs_discard.c b/fs/xfs/linux/xfs_discard.c new file mode 100644 index 0000000..244e797 --- /dev/null +++ b/fs/xfs/linux/xfs_discard.c @@ -0,0 +1,222 @@ +/* + * Copyright (C) 2010 Red Hat, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_sb.h" +#include "xfs_inum.h" +#include "xfs_log.h" +#include "xfs_ag.h" +#include "xfs_mount.h" +#include "xfs_quota.h" +#include "xfs_trans.h" +#include "xfs_alloc_btree.h" +#include "xfs_bmap_btree.h" +#include "xfs_ialloc_btree.h" +#include "xfs_btree.h" +#include "xfs_inode.h" +#include "xfs_alloc.h" +#include "xfs_error.h" +#include "xfs_discard.h" +#include "xfs_trace.h" + +STATIC int +xfs_trim_extents( + struct xfs_mount *mp, + xfs_agnumber_t agno, + xfs_fsblock_t start, + xfs_fsblock_t len, + xfs_fsblock_t minlen, + __uint64_t *blocks_trimmed) +{ + struct block_device *bdev = mp->m_ddev_targp->bt_bdev; + struct xfs_btree_cur *cur; + struct xfs_buf *agbp; + struct xfs_perag *pag; + int error; + int i; + + pag = xfs_perag_get(mp, agno); + + error = xfs_alloc_read_agf(mp, NULL, agno, 0, &agbp); + if (error || !agbp) + goto out_put_perag; + + cur = xfs_allocbt_init_cursor(mp, NULL, agbp, agno, XFS_BTNUM_CNT); + + /* + * Force out the log. This means any transactions that might have freed + * space before we took the AGF buffer lock are now on disk, and the + * volatile disk cache is flushed. + */ + xfs_log_force(mp, XFS_LOG_SYNC); + + /* + * Look up the longest btree in the AGF and start with it. + */ + error = xfs_alloc_lookup_le(cur, 0, + XFS_BUF_TO_AGF(agbp)->agf_longest, &i); + if (error) + goto out_del_cursor; + + /* + * Loop until we are done with all extents that are large + * enough to be worth discarding. + */ + while (i) { + xfs_agblock_t fbno; + xfs_extlen_t flen; + + error = xfs_alloc_get_rec(cur, &fbno, &flen, &i); + if (error) + goto out_del_cursor; + XFS_WANT_CORRUPTED_GOTO(i == 1, out_del_cursor); + ASSERT(flen <= XFS_BUF_TO_AGF(agbp)->agf_longest); + + /* + * Too small? Give up. + */ + if (flen < minlen) { + trace_xfs_discard_toosmall(mp, agno, fbno, flen); + goto out_del_cursor; + } + + /* + * If the extent is entirely outside of the range we are + * supposed to discard skip it. Do not bother to trim + * down partially overlapping ranges for now. + */ + if (XFS_AGB_TO_FSB(mp, agno, fbno) + flen < start || + XFS_AGB_TO_FSB(mp, agno, fbno) >= start + len) { + trace_xfs_discard_exclude(mp, agno, fbno, flen); + goto next_extent; + } + + /* + * If any blocks in the range are still busy, skip the + * discard and try again the next time. + */ + if (xfs_alloc_busy_search(mp, agno, fbno, flen)) { + trace_xfs_discard_busy(mp, agno, fbno, flen); + goto next_extent; + } + + trace_xfs_discard_extent(mp, agno, fbno, flen); + error = -blkdev_issue_discard(bdev, + XFS_AGB_TO_DADDR(mp, agno, fbno), + XFS_FSB_TO_BB(mp, flen), + GFP_NOFS, 0); + if (error) + goto out_del_cursor; + *blocks_trimmed += flen; + +next_extent: + error = xfs_btree_decrement(cur, 0, &i); + if (error) + goto out_del_cursor; + } + +out_del_cursor: + xfs_btree_del_cursor(cur, error ? XFS_BTREE_ERROR : XFS_BTREE_NOERROR); + xfs_buf_relse(agbp); +out_put_perag: + xfs_perag_put(pag); + return error; +} + +int +xfs_ioc_trim( + struct xfs_mount *mp, + struct fstrim_range __user *urange) +{ + struct request_queue *q = mp->m_ddev_targp->bt_bdev->bd_disk->queue; + unsigned int granularity = q->limits.discard_granularity; + struct fstrim_range range; + xfs_fsblock_t start, len, minlen; + xfs_agnumber_t start_agno, end_agno, agno; + __uint64_t blocks_trimmed = 0; + int error, last_error = 0; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + if (!blk_queue_discard(q)) + return -XFS_ERROR(EOPNOTSUPP); + if (copy_from_user(&range, urange, sizeof(range))) + return -XFS_ERROR(EFAULT); + + /* + * Truncating down the len isn't actually quite correct, but using + * XFS_B_TO_FSB would mean we trivially get overflows for values + * of ULLONG_MAX or slightly lower. And ULLONG_MAX is the default + * used by the fstrim application. In the end it really doesn't + * matter as trimming blocks is an advisory interface. + */ + start = XFS_B_TO_FSBT(mp, range.start); + len = XFS_B_TO_FSBT(mp, range.len); + minlen = XFS_B_TO_FSB(mp, max_t(u64, granularity, range.minlen)); + + start_agno = XFS_FSB_TO_AGNO(mp, start); + if (start_agno >= mp->m_sb.sb_agcount) + return -XFS_ERROR(EINVAL); + + end_agno = XFS_FSB_TO_AGNO(mp, start + len); + if (end_agno >= mp->m_sb.sb_agcount) + end_agno = mp->m_sb.sb_agcount - 1; + + for (agno = start_agno; agno <= end_agno; agno++) { + error = -xfs_trim_extents(mp, agno, start, len, minlen, + &blocks_trimmed); + if (error) + last_error = error; + } + + if (last_error) + return last_error; + + range.len = XFS_FSB_TO_B(mp, blocks_trimmed); + if (copy_to_user(urange, &range, sizeof(range))) + return -XFS_ERROR(EFAULT); + return 0; +} + +int +xfs_discard_extents( + struct xfs_mount *mp, + struct list_head *list) +{ + struct xfs_busy_extent *busyp; + int error = 0; + + list_for_each_entry(busyp, list, list) { + trace_xfs_discard_extent(mp, busyp->agno, busyp->bno, + busyp->length); + + error = -blkdev_issue_discard(mp->m_ddev_targp->bt_bdev, + XFS_AGB_TO_DADDR(mp, busyp->agno, busyp->bno), + XFS_FSB_TO_BB(mp, busyp->length), + GFP_NOFS, 0); + if (error && error != EOPNOTSUPP) { + xfs_info(mp, + "discard failed for extent [0x%llu,%u], error %d", + (unsigned long long)busyp->bno, + busyp->length, + error); + return error; + } + } + + return 0; +} diff --git a/fs/xfs/linux/xfs_discard.h b/fs/xfs/linux/xfs_discard.h new file mode 100644 index 0000000..344879a --- /dev/null +++ b/fs/xfs/linux/xfs_discard.h @@ -0,0 +1,10 @@ +#ifndef XFS_DISCARD_H +#define XFS_DISCARD_H 1 + +struct fstrim_range; +struct list_head; + +extern int xfs_ioc_trim(struct xfs_mount *, struct fstrim_range __user *); +extern int xfs_discard_extents(struct xfs_mount *, struct list_head *); + +#endif /* XFS_DISCARD_H */ diff --git a/fs/xfs/linux/xfs_export.c b/fs/xfs/linux/xfs_export.c new file mode 100644 index 0000000..75e5d32 --- /dev/null +++ b/fs/xfs/linux/xfs_export.c @@ -0,0 +1,250 @@ +/* + * Copyright (c) 2004-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_types.h" +#include "xfs_inum.h" +#include "xfs_log.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_dir2.h" +#include "xfs_mount.h" +#include "xfs_export.h" +#include "xfs_vnodeops.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "xfs_inode_item.h" +#include "xfs_trace.h" + +/* + * Note that we only accept fileids which are long enough rather than allow + * the parent generation number to default to zero. XFS considers zero a + * valid generation number not an invalid/wildcard value. + */ +static int xfs_fileid_length(int fileid_type) +{ + switch (fileid_type) { + case FILEID_INO32_GEN: + return 2; + case FILEID_INO32_GEN_PARENT: + return 4; + case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: + return 3; + case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: + return 6; + } + return 255; /* invalid */ +} + +STATIC int +xfs_fs_encode_fh( + struct dentry *dentry, + __u32 *fh, + int *max_len, + int connectable) +{ + struct fid *fid = (struct fid *)fh; + struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fh; + struct inode *inode = dentry->d_inode; + int fileid_type; + int len; + + /* Directories don't need their parent encoded, they have ".." */ + if (S_ISDIR(inode->i_mode) || !connectable) + fileid_type = FILEID_INO32_GEN; + else + fileid_type = FILEID_INO32_GEN_PARENT; + + /* + * If the the filesystem may contain 64bit inode numbers, we need + * to use larger file handles that can represent them. + * + * While we only allocate inodes that do not fit into 32 bits any + * large enough filesystem may contain them, thus the slightly + * confusing looking conditional below. + */ + if (!(XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_SMALL_INUMS) || + (XFS_M(inode->i_sb)->m_flags & XFS_MOUNT_32BITINODES)) + fileid_type |= XFS_FILEID_TYPE_64FLAG; + + /* + * Only encode if there is enough space given. In practice + * this means we can't export a filesystem with 64bit inodes + * over NFSv2 with the subtree_check export option; the other + * seven combinations work. The real answer is "don't use v2". + */ + len = xfs_fileid_length(fileid_type); + if (*max_len < len) { + *max_len = len; + return 255; + } + *max_len = len; + + switch (fileid_type) { + case FILEID_INO32_GEN_PARENT: + spin_lock(&dentry->d_lock); + fid->i32.parent_ino = dentry->d_parent->d_inode->i_ino; + fid->i32.parent_gen = dentry->d_parent->d_inode->i_generation; + spin_unlock(&dentry->d_lock); + /*FALLTHRU*/ + case FILEID_INO32_GEN: + fid->i32.ino = inode->i_ino; + fid->i32.gen = inode->i_generation; + break; + case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: + spin_lock(&dentry->d_lock); + fid64->parent_ino = dentry->d_parent->d_inode->i_ino; + fid64->parent_gen = dentry->d_parent->d_inode->i_generation; + spin_unlock(&dentry->d_lock); + /*FALLTHRU*/ + case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: + fid64->ino = inode->i_ino; + fid64->gen = inode->i_generation; + break; + } + + return fileid_type; +} + +STATIC struct inode * +xfs_nfs_get_inode( + struct super_block *sb, + u64 ino, + u32 generation) + { + xfs_mount_t *mp = XFS_M(sb); + xfs_inode_t *ip; + int error; + + /* + * NFS can sometimes send requests for ino 0. Fail them gracefully. + */ + if (ino == 0) + return ERR_PTR(-ESTALE); + + /* + * The XFS_IGET_UNTRUSTED means that an invalid inode number is just + * fine and not an indication of a corrupted filesystem as clients can + * send invalid file handles and we have to handle it gracefully.. + */ + error = xfs_iget(mp, NULL, ino, XFS_IGET_UNTRUSTED, 0, &ip); + if (error) { + /* + * EINVAL means the inode cluster doesn't exist anymore. + * This implies the filehandle is stale, so we should + * translate it here. + * We don't use ESTALE directly down the chain to not + * confuse applications using bulkstat that expect EINVAL. + */ + if (error == EINVAL || error == ENOENT) + error = ESTALE; + return ERR_PTR(-error); + } + + if (ip->i_d.di_gen != generation) { + IRELE(ip); + return ERR_PTR(-ESTALE); + } + + return VFS_I(ip); +} + +STATIC struct dentry * +xfs_fs_fh_to_dentry(struct super_block *sb, struct fid *fid, + int fh_len, int fileid_type) +{ + struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fid; + struct inode *inode = NULL; + + if (fh_len < xfs_fileid_length(fileid_type)) + return NULL; + + switch (fileid_type) { + case FILEID_INO32_GEN_PARENT: + case FILEID_INO32_GEN: + inode = xfs_nfs_get_inode(sb, fid->i32.ino, fid->i32.gen); + break; + case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: + case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG: + inode = xfs_nfs_get_inode(sb, fid64->ino, fid64->gen); + break; + } + + return d_obtain_alias(inode); +} + +STATIC struct dentry * +xfs_fs_fh_to_parent(struct super_block *sb, struct fid *fid, + int fh_len, int fileid_type) +{ + struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fid; + struct inode *inode = NULL; + + switch (fileid_type) { + case FILEID_INO32_GEN_PARENT: + inode = xfs_nfs_get_inode(sb, fid->i32.parent_ino, + fid->i32.parent_gen); + break; + case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG: + inode = xfs_nfs_get_inode(sb, fid64->parent_ino, + fid64->parent_gen); + break; + } + + return d_obtain_alias(inode); +} + +STATIC struct dentry * +xfs_fs_get_parent( + struct dentry *child) +{ + int error; + struct xfs_inode *cip; + + error = xfs_lookup(XFS_I(child->d_inode), &xfs_name_dotdot, &cip, NULL); + if (unlikely(error)) + return ERR_PTR(-error); + + return d_obtain_alias(VFS_I(cip)); +} + +STATIC int +xfs_fs_nfs_commit_metadata( + struct inode *inode) +{ + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + int error = 0; + + xfs_ilock(ip, XFS_ILOCK_SHARED); + if (xfs_ipincount(ip)) { + error = _xfs_log_force_lsn(mp, ip->i_itemp->ili_last_lsn, + XFS_LOG_SYNC, NULL); + } + xfs_iunlock(ip, XFS_ILOCK_SHARED); + + return error; +} + +const struct export_operations xfs_export_operations = { + .encode_fh = xfs_fs_encode_fh, + .fh_to_dentry = xfs_fs_fh_to_dentry, + .fh_to_parent = xfs_fs_fh_to_parent, + .get_parent = xfs_fs_get_parent, + .commit_metadata = xfs_fs_nfs_commit_metadata, +}; diff --git a/fs/xfs/linux/xfs_export.h b/fs/xfs/linux/xfs_export.h new file mode 100644 index 0000000..3272b6a --- /dev/null +++ b/fs/xfs/linux/xfs_export.h @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_EXPORT_H__ +#define __XFS_EXPORT_H__ + +/* + * Common defines for code related to exporting XFS filesystems over NFS. + * + * The NFS fileid goes out on the wire as an array of + * 32bit unsigned ints in host order. There are 5 possible + * formats. + * + * (1) fileid_type=0x00 + * (no fileid data; handled by the generic code) + * + * (2) fileid_type=0x01 + * inode-num + * generation + * + * (3) fileid_type=0x02 + * inode-num + * generation + * parent-inode-num + * parent-generation + * + * (4) fileid_type=0x81 + * inode-num-lo32 + * inode-num-hi32 + * generation + * + * (5) fileid_type=0x82 + * inode-num-lo32 + * inode-num-hi32 + * generation + * parent-inode-num-lo32 + * parent-inode-num-hi32 + * parent-generation + * + * Note, the NFS filehandle also includes an fsid portion which + * may have an inode number in it. That number is hardcoded to + * 32bits and there is no way for XFS to intercept it. In + * practice this means when exporting an XFS filesystem with 64bit + * inodes you should either export the mountpoint (rather than + * a subdirectory) or use the "fsid" export option. + */ + +struct xfs_fid64 { + u64 ino; + u32 gen; + u64 parent_ino; + u32 parent_gen; +} __attribute__((packed)); + +/* This flag goes on the wire. Don't play with it. */ +#define XFS_FILEID_TYPE_64FLAG 0x80 /* NFS fileid has 64bit inodes */ + +#endif /* __XFS_EXPORT_H__ */ diff --git a/fs/xfs/linux/xfs_file.c b/fs/xfs/linux/xfs_file.c new file mode 100644 index 0000000..8073f61 --- /dev/null +++ b/fs/xfs/linux/xfs_file.c @@ -0,0 +1,1092 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_trans.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_alloc.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_inode_item.h" +#include "xfs_bmap.h" +#include "xfs_error.h" +#include "xfs_vnodeops.h" +#include "xfs_da_btree.h" +#include "xfs_ioctl.h" +#include "xfs_trace.h" + +#include +#include + +static const struct vm_operations_struct xfs_file_vm_ops; + +/* + * Locking primitives for read and write IO paths to ensure we consistently use + * and order the inode->i_mutex, ip->i_lock and ip->i_iolock. + */ +static inline void +xfs_rw_ilock( + struct xfs_inode *ip, + int type) +{ + if (type & XFS_IOLOCK_EXCL) + mutex_lock(&VFS_I(ip)->i_mutex); + xfs_ilock(ip, type); +} + +static inline void +xfs_rw_iunlock( + struct xfs_inode *ip, + int type) +{ + xfs_iunlock(ip, type); + if (type & XFS_IOLOCK_EXCL) + mutex_unlock(&VFS_I(ip)->i_mutex); +} + +static inline void +xfs_rw_ilock_demote( + struct xfs_inode *ip, + int type) +{ + xfs_ilock_demote(ip, type); + if (type & XFS_IOLOCK_EXCL) + mutex_unlock(&VFS_I(ip)->i_mutex); +} + +/* + * xfs_iozero + * + * xfs_iozero clears the specified range of buffer supplied, + * and marks all the affected blocks as valid and modified. If + * an affected block is not allocated, it will be allocated. If + * an affected block is not completely overwritten, and is not + * valid before the operation, it will be read from disk before + * being partially zeroed. + */ +STATIC int +xfs_iozero( + struct xfs_inode *ip, /* inode */ + loff_t pos, /* offset in file */ + size_t count) /* size of data to zero */ +{ + struct page *page; + struct address_space *mapping; + int status; + + mapping = VFS_I(ip)->i_mapping; + do { + unsigned offset, bytes; + void *fsdata; + + offset = (pos & (PAGE_CACHE_SIZE -1)); /* Within page */ + bytes = PAGE_CACHE_SIZE - offset; + if (bytes > count) + bytes = count; + + status = pagecache_write_begin(NULL, mapping, pos, bytes, + AOP_FLAG_UNINTERRUPTIBLE, + &page, &fsdata); + if (status) + break; + + zero_user(page, offset, bytes); + + status = pagecache_write_end(NULL, mapping, pos, bytes, bytes, + page, fsdata); + WARN_ON(status <= 0); /* can't return less than zero! */ + pos += bytes; + count -= bytes; + status = 0; + } while (count); + + return (-status); +} + +STATIC int +xfs_file_fsync( + struct file *file, + int datasync) +{ + struct inode *inode = file->f_mapping->host; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + struct xfs_trans *tp; + int error = 0; + int log_flushed = 0; + + trace_xfs_file_fsync(ip); + + if (XFS_FORCED_SHUTDOWN(mp)) + return -XFS_ERROR(EIO); + + xfs_iflags_clear(ip, XFS_ITRUNCATED); + + xfs_ioend_wait(ip); + + if (mp->m_flags & XFS_MOUNT_BARRIER) { + /* + * If we have an RT and/or log subvolume we need to make sure + * to flush the write cache the device used for file data + * first. This is to ensure newly written file data make + * it to disk before logging the new inode size in case of + * an extending write. + */ + if (XFS_IS_REALTIME_INODE(ip)) + xfs_blkdev_issue_flush(mp->m_rtdev_targp); + else if (mp->m_logdev_targp != mp->m_ddev_targp) + xfs_blkdev_issue_flush(mp->m_ddev_targp); + } + + /* + * We always need to make sure that the required inode state is safe on + * disk. The inode might be clean but we still might need to force the + * log because of committed transactions that haven't hit the disk yet. + * Likewise, there could be unflushed non-transactional changes to the + * inode core that have to go to disk and this requires us to issue + * a synchronous transaction to capture these changes correctly. + * + * This code relies on the assumption that if the i_update_core field + * of the inode is clear and the inode is unpinned then it is clean + * and no action is required. + */ + xfs_ilock(ip, XFS_ILOCK_SHARED); + + /* + * First check if the VFS inode is marked dirty. All the dirtying + * of non-transactional updates no goes through mark_inode_dirty*, + * which allows us to distinguish beteeen pure timestamp updates + * and i_size updates which need to be caught for fdatasync. + * After that also theck for the dirty state in the XFS inode, which + * might gets cleared when the inode gets written out via the AIL + * or xfs_iflush_cluster. + */ + if (((inode->i_state & I_DIRTY_DATASYNC) || + ((inode->i_state & I_DIRTY_SYNC) && !datasync)) && + ip->i_update_core) { + /* + * Kick off a transaction to log the inode core to get the + * updates. The sync transaction will also force the log. + */ + xfs_iunlock(ip, XFS_ILOCK_SHARED); + tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS); + error = xfs_trans_reserve(tp, 0, + XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0); + if (error) { + xfs_trans_cancel(tp, 0); + return -error; + } + xfs_ilock(ip, XFS_ILOCK_EXCL); + + /* + * Note - it's possible that we might have pushed ourselves out + * of the way during trans_reserve which would flush the inode. + * But there's no guarantee that the inode buffer has actually + * gone out yet (it's delwri). Plus the buffer could be pinned + * anyway if it's part of an inode in another recent + * transaction. So we play it safe and fire off the + * transaction anyway. + */ + xfs_trans_ijoin(tp, ip); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + xfs_trans_set_sync(tp); + error = _xfs_trans_commit(tp, 0, &log_flushed); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + } else { + /* + * Timestamps/size haven't changed since last inode flush or + * inode transaction commit. That means either nothing got + * written or a transaction committed which caught the updates. + * If the latter happened and the transaction hasn't hit the + * disk yet, the inode will be still be pinned. If it is, + * force the log. + */ + if (xfs_ipincount(ip)) { + error = _xfs_log_force_lsn(mp, + ip->i_itemp->ili_last_lsn, + XFS_LOG_SYNC, &log_flushed); + } + xfs_iunlock(ip, XFS_ILOCK_SHARED); + } + + /* + * If we only have a single device, and the log force about was + * a no-op we might have to flush the data device cache here. + * This can only happen for fdatasync/O_DSYNC if we were overwriting + * an already allocated file and thus do not have any metadata to + * commit. + */ + if ((mp->m_flags & XFS_MOUNT_BARRIER) && + mp->m_logdev_targp == mp->m_ddev_targp && + !XFS_IS_REALTIME_INODE(ip) && + !log_flushed) + xfs_blkdev_issue_flush(mp->m_ddev_targp); + + return -error; +} + +STATIC ssize_t +xfs_file_aio_read( + struct kiocb *iocb, + const struct iovec *iovp, + unsigned long nr_segs, + loff_t pos) +{ + struct file *file = iocb->ki_filp; + struct inode *inode = file->f_mapping->host; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + size_t size = 0; + ssize_t ret = 0; + int ioflags = 0; + xfs_fsize_t n; + unsigned long seg; + + XFS_STATS_INC(xs_read_calls); + + BUG_ON(iocb->ki_pos != pos); + + if (unlikely(file->f_flags & O_DIRECT)) + ioflags |= IO_ISDIRECT; + if (file->f_mode & FMODE_NOCMTIME) + ioflags |= IO_INVIS; + + /* START copy & waste from filemap.c */ + for (seg = 0; seg < nr_segs; seg++) { + const struct iovec *iv = &iovp[seg]; + + /* + * If any segment has a negative length, or the cumulative + * length ever wraps negative then return -EINVAL. + */ + size += iv->iov_len; + if (unlikely((ssize_t)(size|iv->iov_len) < 0)) + return XFS_ERROR(-EINVAL); + } + /* END copy & waste from filemap.c */ + + if (unlikely(ioflags & IO_ISDIRECT)) { + xfs_buftarg_t *target = + XFS_IS_REALTIME_INODE(ip) ? + mp->m_rtdev_targp : mp->m_ddev_targp; + if ((iocb->ki_pos & target->bt_smask) || + (size & target->bt_smask)) { + if (iocb->ki_pos == ip->i_size) + return 0; + return -XFS_ERROR(EINVAL); + } + } + + n = XFS_MAXIOFFSET(mp) - iocb->ki_pos; + if (n <= 0 || size == 0) + return 0; + + if (n < size) + size = n; + + if (XFS_FORCED_SHUTDOWN(mp)) + return -EIO; + + if (unlikely(ioflags & IO_ISDIRECT)) { + xfs_rw_ilock(ip, XFS_IOLOCK_EXCL); + + if (inode->i_mapping->nrpages) { + ret = -xfs_flushinval_pages(ip, + (iocb->ki_pos & PAGE_CACHE_MASK), + -1, FI_REMAPF_LOCKED); + if (ret) { + xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL); + return ret; + } + } + xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL); + } else + xfs_rw_ilock(ip, XFS_IOLOCK_SHARED); + + trace_xfs_file_read(ip, size, iocb->ki_pos, ioflags); + + ret = generic_file_aio_read(iocb, iovp, nr_segs, iocb->ki_pos); + if (ret > 0) + XFS_STATS_ADD(xs_read_bytes, ret); + + xfs_rw_iunlock(ip, XFS_IOLOCK_SHARED); + return ret; +} + +STATIC ssize_t +xfs_file_splice_read( + struct file *infilp, + loff_t *ppos, + struct pipe_inode_info *pipe, + size_t count, + unsigned int flags) +{ + struct xfs_inode *ip = XFS_I(infilp->f_mapping->host); + int ioflags = 0; + ssize_t ret; + + XFS_STATS_INC(xs_read_calls); + + if (infilp->f_mode & FMODE_NOCMTIME) + ioflags |= IO_INVIS; + + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) + return -EIO; + + xfs_rw_ilock(ip, XFS_IOLOCK_SHARED); + + trace_xfs_file_splice_read(ip, count, *ppos, ioflags); + + ret = generic_file_splice_read(infilp, ppos, pipe, count, flags); + if (ret > 0) + XFS_STATS_ADD(xs_read_bytes, ret); + + xfs_rw_iunlock(ip, XFS_IOLOCK_SHARED); + return ret; +} + +STATIC void +xfs_aio_write_isize_update( + struct inode *inode, + loff_t *ppos, + ssize_t bytes_written) +{ + struct xfs_inode *ip = XFS_I(inode); + xfs_fsize_t isize = i_size_read(inode); + + if (bytes_written > 0) + XFS_STATS_ADD(xs_write_bytes, bytes_written); + + if (unlikely(bytes_written < 0 && bytes_written != -EFAULT && + *ppos > isize)) + *ppos = isize; + + if (*ppos > ip->i_size) { + xfs_rw_ilock(ip, XFS_ILOCK_EXCL); + if (*ppos > ip->i_size) + ip->i_size = *ppos; + xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); + } +} + +/* + * If this was a direct or synchronous I/O that failed (such as ENOSPC) then + * part of the I/O may have been written to disk before the error occurred. In + * this case the on-disk file size may have been adjusted beyond the in-memory + * file size and now needs to be truncated back. + */ +STATIC void +xfs_aio_write_newsize_update( + struct xfs_inode *ip) +{ + if (ip->i_new_size) { + xfs_rw_ilock(ip, XFS_ILOCK_EXCL); + ip->i_new_size = 0; + if (ip->i_d.di_size > ip->i_size) + ip->i_d.di_size = ip->i_size; + xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); + } +} + +/* + * xfs_file_splice_write() does not use xfs_rw_ilock() because + * generic_file_splice_write() takes the i_mutex itself. This, in theory, + * couuld cause lock inversions between the aio_write path and the splice path + * if someone is doing concurrent splice(2) based writes and write(2) based + * writes to the same inode. The only real way to fix this is to re-implement + * the generic code here with correct locking orders. + */ +STATIC ssize_t +xfs_file_splice_write( + struct pipe_inode_info *pipe, + struct file *outfilp, + loff_t *ppos, + size_t count, + unsigned int flags) +{ + struct inode *inode = outfilp->f_mapping->host; + struct xfs_inode *ip = XFS_I(inode); + xfs_fsize_t new_size; + int ioflags = 0; + ssize_t ret; + + XFS_STATS_INC(xs_write_calls); + + if (outfilp->f_mode & FMODE_NOCMTIME) + ioflags |= IO_INVIS; + + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) + return -EIO; + + xfs_ilock(ip, XFS_IOLOCK_EXCL); + + new_size = *ppos + count; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + if (new_size > ip->i_size) + ip->i_new_size = new_size; + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + trace_xfs_file_splice_write(ip, count, *ppos, ioflags); + + ret = generic_file_splice_write(pipe, outfilp, ppos, count, flags); + + xfs_aio_write_isize_update(inode, ppos, ret); + xfs_aio_write_newsize_update(ip); + xfs_iunlock(ip, XFS_IOLOCK_EXCL); + return ret; +} + +/* + * This routine is called to handle zeroing any space in the last + * block of the file that is beyond the EOF. We do this since the + * size is being increased without writing anything to that block + * and we don't want anyone to read the garbage on the disk. + */ +STATIC int /* error (positive) */ +xfs_zero_last_block( + xfs_inode_t *ip, + xfs_fsize_t offset, + xfs_fsize_t isize) +{ + xfs_fileoff_t last_fsb; + xfs_mount_t *mp = ip->i_mount; + int nimaps; + int zero_offset; + int zero_len; + int error = 0; + xfs_bmbt_irec_t imap; + + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); + + zero_offset = XFS_B_FSB_OFFSET(mp, isize); + if (zero_offset == 0) { + /* + * There are no extra bytes in the last block on disk to + * zero, so return. + */ + return 0; + } + + last_fsb = XFS_B_TO_FSBT(mp, isize); + nimaps = 1; + error = xfs_bmapi(NULL, ip, last_fsb, 1, 0, NULL, 0, &imap, + &nimaps, NULL); + if (error) { + return error; + } + ASSERT(nimaps > 0); + /* + * If the block underlying isize is just a hole, then there + * is nothing to zero. + */ + if (imap.br_startblock == HOLESTARTBLOCK) { + return 0; + } + /* + * Zero the part of the last block beyond the EOF, and write it + * out sync. We need to drop the ilock while we do this so we + * don't deadlock when the buffer cache calls back to us. + */ + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + zero_len = mp->m_sb.sb_blocksize - zero_offset; + if (isize + zero_len > offset) + zero_len = offset - isize; + error = xfs_iozero(ip, isize, zero_len); + + xfs_ilock(ip, XFS_ILOCK_EXCL); + ASSERT(error >= 0); + return error; +} + +/* + * Zero any on disk space between the current EOF and the new, + * larger EOF. This handles the normal case of zeroing the remainder + * of the last block in the file and the unusual case of zeroing blocks + * out beyond the size of the file. This second case only happens + * with fixed size extents and when the system crashes before the inode + * size was updated but after blocks were allocated. If fill is set, + * then any holes in the range are filled and zeroed. If not, the holes + * are left alone as holes. + */ + +int /* error (positive) */ +xfs_zero_eof( + xfs_inode_t *ip, + xfs_off_t offset, /* starting I/O offset */ + xfs_fsize_t isize) /* current inode size */ +{ + xfs_mount_t *mp = ip->i_mount; + xfs_fileoff_t start_zero_fsb; + xfs_fileoff_t end_zero_fsb; + xfs_fileoff_t zero_count_fsb; + xfs_fileoff_t last_fsb; + xfs_fileoff_t zero_off; + xfs_fsize_t zero_len; + int nimaps; + int error = 0; + xfs_bmbt_irec_t imap; + + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); + ASSERT(offset > isize); + + /* + * First handle zeroing the block on which isize resides. + * We only zero a part of that block so it is handled specially. + */ + error = xfs_zero_last_block(ip, offset, isize); + if (error) { + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); + return error; + } + + /* + * Calculate the range between the new size and the old + * where blocks needing to be zeroed may exist. To get the + * block where the last byte in the file currently resides, + * we need to subtract one from the size and truncate back + * to a block boundary. We subtract 1 in case the size is + * exactly on a block boundary. + */ + last_fsb = isize ? XFS_B_TO_FSBT(mp, isize - 1) : (xfs_fileoff_t)-1; + start_zero_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)isize); + end_zero_fsb = XFS_B_TO_FSBT(mp, offset - 1); + ASSERT((xfs_sfiloff_t)last_fsb < (xfs_sfiloff_t)start_zero_fsb); + if (last_fsb == end_zero_fsb) { + /* + * The size was only incremented on its last block. + * We took care of that above, so just return. + */ + return 0; + } + + ASSERT(start_zero_fsb <= end_zero_fsb); + while (start_zero_fsb <= end_zero_fsb) { + nimaps = 1; + zero_count_fsb = end_zero_fsb - start_zero_fsb + 1; + error = xfs_bmapi(NULL, ip, start_zero_fsb, zero_count_fsb, + 0, NULL, 0, &imap, &nimaps, NULL); + if (error) { + ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL|XFS_IOLOCK_EXCL)); + return error; + } + ASSERT(nimaps > 0); + + if (imap.br_state == XFS_EXT_UNWRITTEN || + imap.br_startblock == HOLESTARTBLOCK) { + /* + * This loop handles initializing pages that were + * partially initialized by the code below this + * loop. It basically zeroes the part of the page + * that sits on a hole and sets the page as P_HOLE + * and calls remapf if it is a mapped file. + */ + start_zero_fsb = imap.br_startoff + imap.br_blockcount; + ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); + continue; + } + + /* + * There are blocks we need to zero. + * Drop the inode lock while we're doing the I/O. + * We'll still have the iolock to protect us. + */ + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + zero_off = XFS_FSB_TO_B(mp, start_zero_fsb); + zero_len = XFS_FSB_TO_B(mp, imap.br_blockcount); + + if ((zero_off + zero_len) > offset) + zero_len = offset - zero_off; + + error = xfs_iozero(ip, zero_off, zero_len); + if (error) { + goto out_lock; + } + + start_zero_fsb = imap.br_startoff + imap.br_blockcount; + ASSERT(start_zero_fsb <= (end_zero_fsb + 1)); + + xfs_ilock(ip, XFS_ILOCK_EXCL); + } + + return 0; + +out_lock: + xfs_ilock(ip, XFS_ILOCK_EXCL); + ASSERT(error >= 0); + return error; +} + +/* + * Common pre-write limit and setup checks. + * + * Returns with iolock held according to @iolock. + */ +STATIC ssize_t +xfs_file_aio_write_checks( + struct file *file, + loff_t *pos, + size_t *count, + int *iolock) +{ + struct inode *inode = file->f_mapping->host; + struct xfs_inode *ip = XFS_I(inode); + xfs_fsize_t new_size; + int error = 0; + + error = generic_write_checks(file, pos, count, S_ISBLK(inode->i_mode)); + if (error) { + xfs_rw_iunlock(ip, XFS_ILOCK_EXCL | *iolock); + *iolock = 0; + return error; + } + + new_size = *pos + *count; + if (new_size > ip->i_size) + ip->i_new_size = new_size; + + if (likely(!(file->f_mode & FMODE_NOCMTIME))) + file_update_time(file); + + /* + * If the offset is beyond the size of the file, we need to zero any + * blocks that fall between the existing EOF and the start of this + * write. + */ + if (*pos > ip->i_size) + error = -xfs_zero_eof(ip, *pos, ip->i_size); + + xfs_rw_iunlock(ip, XFS_ILOCK_EXCL); + if (error) + return error; + + /* + * If we're writing the file then make sure to clear the setuid and + * setgid bits if the process is not being run by root. This keeps + * people from modifying setuid and setgid binaries. + */ + return file_remove_suid(file); + +} + +/* + * xfs_file_dio_aio_write - handle direct IO writes + * + * Lock the inode appropriately to prepare for and issue a direct IO write. + * By separating it from the buffered write path we remove all the tricky to + * follow locking changes and looping. + * + * If there are cached pages or we're extending the file, we need IOLOCK_EXCL + * until we're sure the bytes at the new EOF have been zeroed and/or the cached + * pages are flushed out. + * + * In most cases the direct IO writes will be done holding IOLOCK_SHARED + * allowing them to be done in parallel with reads and other direct IO writes. + * However, if the IO is not aligned to filesystem blocks, the direct IO layer + * needs to do sub-block zeroing and that requires serialisation against other + * direct IOs to the same block. In this case we need to serialise the + * submission of the unaligned IOs so that we don't get racing block zeroing in + * the dio layer. To avoid the problem with aio, we also need to wait for + * outstanding IOs to complete so that unwritten extent conversion is completed + * before we try to map the overlapping block. This is currently implemented by + * hitting it with a big hammer (i.e. xfs_ioend_wait()). + * + * Returns with locks held indicated by @iolock and errors indicated by + * negative return values. + */ +STATIC ssize_t +xfs_file_dio_aio_write( + struct kiocb *iocb, + const struct iovec *iovp, + unsigned long nr_segs, + loff_t pos, + size_t ocount, + int *iolock) +{ + struct file *file = iocb->ki_filp; + struct address_space *mapping = file->f_mapping; + struct inode *inode = mapping->host; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + ssize_t ret = 0; + size_t count = ocount; + int unaligned_io = 0; + struct xfs_buftarg *target = XFS_IS_REALTIME_INODE(ip) ? + mp->m_rtdev_targp : mp->m_ddev_targp; + + *iolock = 0; + if ((pos & target->bt_smask) || (count & target->bt_smask)) + return -XFS_ERROR(EINVAL); + + if ((pos & mp->m_blockmask) || ((pos + count) & mp->m_blockmask)) + unaligned_io = 1; + + if (unaligned_io || mapping->nrpages || pos > ip->i_size) + *iolock = XFS_IOLOCK_EXCL; + else + *iolock = XFS_IOLOCK_SHARED; + xfs_rw_ilock(ip, XFS_ILOCK_EXCL | *iolock); + + ret = xfs_file_aio_write_checks(file, &pos, &count, iolock); + if (ret) + return ret; + + if (mapping->nrpages) { + WARN_ON(*iolock != XFS_IOLOCK_EXCL); + ret = -xfs_flushinval_pages(ip, (pos & PAGE_CACHE_MASK), -1, + FI_REMAPF_LOCKED); + if (ret) + return ret; + } + + /* + * If we are doing unaligned IO, wait for all other IO to drain, + * otherwise demote the lock if we had to flush cached pages + */ + if (unaligned_io) + xfs_ioend_wait(ip); + else if (*iolock == XFS_IOLOCK_EXCL) { + xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL); + *iolock = XFS_IOLOCK_SHARED; + } + + trace_xfs_file_direct_write(ip, count, iocb->ki_pos, 0); + ret = generic_file_direct_write(iocb, iovp, + &nr_segs, pos, &iocb->ki_pos, count, ocount); + + /* No fallback to buffered IO on errors for XFS. */ + ASSERT(ret < 0 || ret == count); + return ret; +} + +STATIC ssize_t +xfs_file_buffered_aio_write( + struct kiocb *iocb, + const struct iovec *iovp, + unsigned long nr_segs, + loff_t pos, + size_t ocount, + int *iolock) +{ + struct file *file = iocb->ki_filp; + struct address_space *mapping = file->f_mapping; + struct inode *inode = mapping->host; + struct xfs_inode *ip = XFS_I(inode); + ssize_t ret; + int enospc = 0; + size_t count = ocount; + + *iolock = XFS_IOLOCK_EXCL; + xfs_rw_ilock(ip, XFS_ILOCK_EXCL | *iolock); + + ret = xfs_file_aio_write_checks(file, &pos, &count, iolock); + if (ret) + return ret; + + /* We can write back this queue in page reclaim */ + current->backing_dev_info = mapping->backing_dev_info; + +write_retry: + trace_xfs_file_buffered_write(ip, count, iocb->ki_pos, 0); + ret = generic_file_buffered_write(iocb, iovp, nr_segs, + pos, &iocb->ki_pos, count, ret); + /* + * if we just got an ENOSPC, flush the inode now we aren't holding any + * page locks and retry *once* + */ + if (ret == -ENOSPC && !enospc) { + ret = -xfs_flush_pages(ip, 0, -1, 0, FI_NONE); + if (ret) + return ret; + enospc = 1; + goto write_retry; + } + current->backing_dev_info = NULL; + return ret; +} + +STATIC ssize_t +xfs_file_aio_write( + struct kiocb *iocb, + const struct iovec *iovp, + unsigned long nr_segs, + loff_t pos) +{ + struct file *file = iocb->ki_filp; + struct address_space *mapping = file->f_mapping; + struct inode *inode = mapping->host; + struct xfs_inode *ip = XFS_I(inode); + ssize_t ret; + int iolock; + size_t ocount = 0; + + XFS_STATS_INC(xs_write_calls); + + BUG_ON(iocb->ki_pos != pos); + + ret = generic_segment_checks(iovp, &nr_segs, &ocount, VERIFY_READ); + if (ret) + return ret; + + if (ocount == 0) + return 0; + + xfs_wait_for_freeze(ip->i_mount, SB_FREEZE_WRITE); + + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) + return -EIO; + + if (unlikely(file->f_flags & O_DIRECT)) + ret = xfs_file_dio_aio_write(iocb, iovp, nr_segs, pos, + ocount, &iolock); + else + ret = xfs_file_buffered_aio_write(iocb, iovp, nr_segs, pos, + ocount, &iolock); + + xfs_aio_write_isize_update(inode, &iocb->ki_pos, ret); + + if (ret <= 0) + goto out_unlock; + + /* Handle various SYNC-type writes */ + if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { + loff_t end = pos + ret - 1; + int error, error2; + + xfs_rw_iunlock(ip, iolock); + error = filemap_write_and_wait_range(mapping, pos, end); + xfs_rw_ilock(ip, iolock); + + error2 = -xfs_file_fsync(file, + (file->f_flags & __O_SYNC) ? 0 : 1); + if (error) + ret = error; + else if (error2) + ret = error2; + } + +out_unlock: + xfs_aio_write_newsize_update(ip); + xfs_rw_iunlock(ip, iolock); + return ret; +} + +STATIC long +xfs_file_fallocate( + struct file *file, + int mode, + loff_t offset, + loff_t len) +{ + struct inode *inode = file->f_path.dentry->d_inode; + long error; + loff_t new_size = 0; + xfs_flock64_t bf; + xfs_inode_t *ip = XFS_I(inode); + int cmd = XFS_IOC_RESVSP; + int attr_flags = XFS_ATTR_NOLOCK; + + if (mode & ~(FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE)) + return -EOPNOTSUPP; + + bf.l_whence = 0; + bf.l_start = offset; + bf.l_len = len; + + xfs_ilock(ip, XFS_IOLOCK_EXCL); + + if (mode & FALLOC_FL_PUNCH_HOLE) + cmd = XFS_IOC_UNRESVSP; + + /* check the new inode size is valid before allocating */ + if (!(mode & FALLOC_FL_KEEP_SIZE) && + offset + len > i_size_read(inode)) { + new_size = offset + len; + error = inode_newsize_ok(inode, new_size); + if (error) + goto out_unlock; + } + + if (file->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + + error = -xfs_change_file_space(ip, cmd, &bf, 0, attr_flags); + if (error) + goto out_unlock; + + /* Change file size if needed */ + if (new_size) { + struct iattr iattr; + + iattr.ia_valid = ATTR_SIZE; + iattr.ia_size = new_size; + error = -xfs_setattr_size(ip, &iattr, XFS_ATTR_NOLOCK); + } + +out_unlock: + xfs_iunlock(ip, XFS_IOLOCK_EXCL); + return error; +} + + +STATIC int +xfs_file_open( + struct inode *inode, + struct file *file) +{ + if (!(file->f_flags & O_LARGEFILE) && i_size_read(inode) > MAX_NON_LFS) + return -EFBIG; + if (XFS_FORCED_SHUTDOWN(XFS_M(inode->i_sb))) + return -EIO; + return 0; +} + +STATIC int +xfs_dir_open( + struct inode *inode, + struct file *file) +{ + struct xfs_inode *ip = XFS_I(inode); + int mode; + int error; + + error = xfs_file_open(inode, file); + if (error) + return error; + + /* + * If there are any blocks, read-ahead block 0 as we're almost + * certain to have the next operation be a read there. + */ + mode = xfs_ilock_map_shared(ip); + if (ip->i_d.di_nextents > 0) + xfs_da_reada_buf(NULL, ip, 0, XFS_DATA_FORK); + xfs_iunlock(ip, mode); + return 0; +} + +STATIC int +xfs_file_release( + struct inode *inode, + struct file *filp) +{ + return -xfs_release(XFS_I(inode)); +} + +STATIC int +xfs_file_readdir( + struct file *filp, + void *dirent, + filldir_t filldir) +{ + struct inode *inode = filp->f_path.dentry->d_inode; + xfs_inode_t *ip = XFS_I(inode); + int error; + size_t bufsize; + + /* + * The Linux API doesn't pass down the total size of the buffer + * we read into down to the filesystem. With the filldir concept + * it's not needed for correct information, but the XFS dir2 leaf + * code wants an estimate of the buffer size to calculate it's + * readahead window and size the buffers used for mapping to + * physical blocks. + * + * Try to give it an estimate that's good enough, maybe at some + * point we can change the ->readdir prototype to include the + * buffer size. For now we use the current glibc buffer size. + */ + bufsize = (size_t)min_t(loff_t, 32768, ip->i_d.di_size); + + error = xfs_readdir(ip, dirent, bufsize, + (xfs_off_t *)&filp->f_pos, filldir); + if (error) + return -error; + return 0; +} + +STATIC int +xfs_file_mmap( + struct file *filp, + struct vm_area_struct *vma) +{ + vma->vm_ops = &xfs_file_vm_ops; + vma->vm_flags |= VM_CAN_NONLINEAR; + + file_accessed(filp); + return 0; +} + +/* + * mmap()d file has taken write protection fault and is being made + * writable. We can set the page state up correctly for a writable + * page, which means we can do correct delalloc accounting (ENOSPC + * checking!) and unwritten extent mapping. + */ +STATIC int +xfs_vm_page_mkwrite( + struct vm_area_struct *vma, + struct vm_fault *vmf) +{ + return block_page_mkwrite(vma, vmf, xfs_get_blocks); +} + +const struct file_operations xfs_file_operations = { + .llseek = generic_file_llseek, + .read = do_sync_read, + .write = do_sync_write, + .aio_read = xfs_file_aio_read, + .aio_write = xfs_file_aio_write, + .splice_read = xfs_file_splice_read, + .splice_write = xfs_file_splice_write, + .unlocked_ioctl = xfs_file_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = xfs_file_compat_ioctl, +#endif + .mmap = xfs_file_mmap, + .open = xfs_file_open, + .release = xfs_file_release, + .fsync = xfs_file_fsync, + .fallocate = xfs_file_fallocate, +}; + +const struct file_operations xfs_dir_file_operations = { + .open = xfs_dir_open, + .read = generic_read_dir, + .readdir = xfs_file_readdir, + .llseek = generic_file_llseek, + .unlocked_ioctl = xfs_file_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = xfs_file_compat_ioctl, +#endif + .fsync = xfs_file_fsync, +}; + +static const struct vm_operations_struct xfs_file_vm_ops = { + .fault = filemap_fault, + .page_mkwrite = xfs_vm_page_mkwrite, +}; diff --git a/fs/xfs/linux/xfs_fs_subr.c b/fs/xfs/linux/xfs_fs_subr.c new file mode 100644 index 0000000..ed88ed1 --- /dev/null +++ b/fs/xfs/linux/xfs_fs_subr.c @@ -0,0 +1,96 @@ +/* + * Copyright (c) 2000-2002,2005-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_vnodeops.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "xfs_trace.h" + +/* + * note: all filemap functions return negative error codes. These + * need to be inverted before returning to the xfs core functions. + */ +void +xfs_tosspages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last, + int fiopt) +{ + /* can't toss partial tail pages, so mask them out */ + last &= ~(PAGE_SIZE - 1); + truncate_inode_pages_range(VFS_I(ip)->i_mapping, first, last - 1); +} + +int +xfs_flushinval_pages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last, + int fiopt) +{ + struct address_space *mapping = VFS_I(ip)->i_mapping; + int ret = 0; + + trace_xfs_pagecache_inval(ip, first, last); + + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = filemap_write_and_wait_range(mapping, first, + last == -1 ? LLONG_MAX : last); + if (!ret) + truncate_inode_pages_range(mapping, first, last); + return -ret; +} + +int +xfs_flush_pages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last, + uint64_t flags, + int fiopt) +{ + struct address_space *mapping = VFS_I(ip)->i_mapping; + int ret = 0; + int ret2; + + xfs_iflags_clear(ip, XFS_ITRUNCATED); + ret = -filemap_fdatawrite_range(mapping, first, + last == -1 ? LLONG_MAX : last); + if (flags & XBF_ASYNC) + return ret; + ret2 = xfs_wait_on_pages(ip, first, last); + if (!ret) + ret = ret2; + return ret; +} + +int +xfs_wait_on_pages( + xfs_inode_t *ip, + xfs_off_t first, + xfs_off_t last) +{ + struct address_space *mapping = VFS_I(ip)->i_mapping; + + if (mapping_tagged(mapping, PAGECACHE_TAG_WRITEBACK)) { + return -filemap_fdatawait_range(mapping, first, + last == -1 ? ip->i_size - 1 : last); + } + return 0; +} diff --git a/fs/xfs/linux/xfs_globals.c b/fs/xfs/linux/xfs_globals.c new file mode 100644 index 0000000..76e81cf --- /dev/null +++ b/fs/xfs/linux/xfs_globals.c @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_sysctl.h" + +/* + * Tunable XFS parameters. xfs_params is required even when CONFIG_SYSCTL=n, + * other XFS code uses these values. Times are measured in centisecs (i.e. + * 100ths of a second). + */ +xfs_param_t xfs_params = { + /* MIN DFLT MAX */ + .sgid_inherit = { 0, 0, 1 }, + .symlink_mode = { 0, 0, 1 }, + .panic_mask = { 0, 0, 255 }, + .error_level = { 0, 3, 11 }, + .syncd_timer = { 1*100, 30*100, 7200*100}, + .stats_clear = { 0, 0, 1 }, + .inherit_sync = { 0, 1, 1 }, + .inherit_nodump = { 0, 1, 1 }, + .inherit_noatim = { 0, 1, 1 }, + .xfs_buf_timer = { 100/2, 1*100, 30*100 }, + .xfs_buf_age = { 1*100, 15*100, 7200*100}, + .inherit_nosym = { 0, 0, 1 }, + .rotorstep = { 1, 1, 255 }, + .inherit_nodfrg = { 0, 1, 1 }, + .fstrm_timer = { 1, 30*100, 3600*100}, +}; diff --git a/fs/xfs/linux/xfs_ioctl.c b/fs/xfs/linux/xfs_ioctl.c new file mode 100644 index 0000000..acca2c5 --- /dev/null +++ b/fs/xfs/linux/xfs_ioctl.c @@ -0,0 +1,1556 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_alloc.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_ioctl.h" +#include "xfs_rtalloc.h" +#include "xfs_itable.h" +#include "xfs_error.h" +#include "xfs_attr.h" +#include "xfs_bmap.h" +#include "xfs_buf_item.h" +#include "xfs_utils.h" +#include "xfs_dfrag.h" +#include "xfs_fsops.h" +#include "xfs_vnodeops.h" +#include "xfs_discard.h" +#include "xfs_quota.h" +#include "xfs_inode_item.h" +#include "xfs_export.h" +#include "xfs_trace.h" + +#include +#include +#include +#include +#include +#include +#include + +/* + * xfs_find_handle maps from userspace xfs_fsop_handlereq structure to + * a file or fs handle. + * + * XFS_IOC_PATH_TO_FSHANDLE + * returns fs handle for a mount point or path within that mount point + * XFS_IOC_FD_TO_HANDLE + * returns full handle for a FD opened in user space + * XFS_IOC_PATH_TO_HANDLE + * returns full handle for a path + */ +int +xfs_find_handle( + unsigned int cmd, + xfs_fsop_handlereq_t *hreq) +{ + int hsize; + xfs_handle_t handle; + struct inode *inode; + struct file *file = NULL; + struct path path; + int error; + struct xfs_inode *ip; + + if (cmd == XFS_IOC_FD_TO_HANDLE) { + file = fget(hreq->fd); + if (!file) + return -EBADF; + inode = file->f_path.dentry->d_inode; + } else { + error = user_lpath((const char __user *)hreq->path, &path); + if (error) + return error; + inode = path.dentry->d_inode; + } + ip = XFS_I(inode); + + /* + * We can only generate handles for inodes residing on a XFS filesystem, + * and only for regular files, directories or symbolic links. + */ + error = -EINVAL; + if (inode->i_sb->s_magic != XFS_SB_MAGIC) + goto out_put; + + error = -EBADF; + if (!S_ISREG(inode->i_mode) && + !S_ISDIR(inode->i_mode) && + !S_ISLNK(inode->i_mode)) + goto out_put; + + + memcpy(&handle.ha_fsid, ip->i_mount->m_fixedfsid, sizeof(xfs_fsid_t)); + + if (cmd == XFS_IOC_PATH_TO_FSHANDLE) { + /* + * This handle only contains an fsid, zero the rest. + */ + memset(&handle.ha_fid, 0, sizeof(handle.ha_fid)); + hsize = sizeof(xfs_fsid_t); + } else { + int lock_mode; + + lock_mode = xfs_ilock_map_shared(ip); + handle.ha_fid.fid_len = sizeof(xfs_fid_t) - + sizeof(handle.ha_fid.fid_len); + handle.ha_fid.fid_pad = 0; + handle.ha_fid.fid_gen = ip->i_d.di_gen; + handle.ha_fid.fid_ino = ip->i_ino; + xfs_iunlock_map_shared(ip, lock_mode); + + hsize = XFS_HSIZE(handle); + } + + error = -EFAULT; + if (copy_to_user(hreq->ohandle, &handle, hsize) || + copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32))) + goto out_put; + + error = 0; + + out_put: + if (cmd == XFS_IOC_FD_TO_HANDLE) + fput(file); + else + path_put(&path); + return error; +} + +/* + * No need to do permission checks on the various pathname components + * as the handle operations are privileged. + */ +STATIC int +xfs_handle_acceptable( + void *context, + struct dentry *dentry) +{ + return 1; +} + +/* + * Convert userspace handle data into a dentry. + */ +struct dentry * +xfs_handle_to_dentry( + struct file *parfilp, + void __user *uhandle, + u32 hlen) +{ + xfs_handle_t handle; + struct xfs_fid64 fid; + + /* + * Only allow handle opens under a directory. + */ + if (!S_ISDIR(parfilp->f_path.dentry->d_inode->i_mode)) + return ERR_PTR(-ENOTDIR); + + if (hlen != sizeof(xfs_handle_t)) + return ERR_PTR(-EINVAL); + if (copy_from_user(&handle, uhandle, hlen)) + return ERR_PTR(-EFAULT); + if (handle.ha_fid.fid_len != + sizeof(handle.ha_fid) - sizeof(handle.ha_fid.fid_len)) + return ERR_PTR(-EINVAL); + + memset(&fid, 0, sizeof(struct fid)); + fid.ino = handle.ha_fid.fid_ino; + fid.gen = handle.ha_fid.fid_gen; + + return exportfs_decode_fh(parfilp->f_path.mnt, (struct fid *)&fid, 3, + FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG, + xfs_handle_acceptable, NULL); +} + +STATIC struct dentry * +xfs_handlereq_to_dentry( + struct file *parfilp, + xfs_fsop_handlereq_t *hreq) +{ + return xfs_handle_to_dentry(parfilp, hreq->ihandle, hreq->ihandlen); +} + +int +xfs_open_by_handle( + struct file *parfilp, + xfs_fsop_handlereq_t *hreq) +{ + const struct cred *cred = current_cred(); + int error; + int fd; + int permflag; + struct file *filp; + struct inode *inode; + struct dentry *dentry; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + + dentry = xfs_handlereq_to_dentry(parfilp, hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + inode = dentry->d_inode; + + /* Restrict xfs_open_by_handle to directories & regular files. */ + if (!(S_ISREG(inode->i_mode) || S_ISDIR(inode->i_mode))) { + error = -XFS_ERROR(EPERM); + goto out_dput; + } + +#if BITS_PER_LONG != 32 + hreq->oflags |= O_LARGEFILE; +#endif + + /* Put open permission in namei format. */ + permflag = hreq->oflags; + if ((permflag+1) & O_ACCMODE) + permflag++; + if (permflag & O_TRUNC) + permflag |= 2; + + if ((!(permflag & O_APPEND) || (permflag & O_TRUNC)) && + (permflag & FMODE_WRITE) && IS_APPEND(inode)) { + error = -XFS_ERROR(EPERM); + goto out_dput; + } + + if ((permflag & FMODE_WRITE) && IS_IMMUTABLE(inode)) { + error = -XFS_ERROR(EACCES); + goto out_dput; + } + + /* Can't write directories. */ + if (S_ISDIR(inode->i_mode) && (permflag & FMODE_WRITE)) { + error = -XFS_ERROR(EISDIR); + goto out_dput; + } + + fd = get_unused_fd(); + if (fd < 0) { + error = fd; + goto out_dput; + } + + filp = dentry_open(dentry, mntget(parfilp->f_path.mnt), + hreq->oflags, cred); + if (IS_ERR(filp)) { + put_unused_fd(fd); + return PTR_ERR(filp); + } + + if (inode->i_mode & S_IFREG) { + filp->f_flags |= O_NOATIME; + filp->f_mode |= FMODE_NOCMTIME; + } + + fd_install(fd, filp); + return fd; + + out_dput: + dput(dentry); + return error; +} + +/* + * This is a copy from fs/namei.c:vfs_readlink(), except for removing it's + * unused first argument. + */ +STATIC int +do_readlink( + char __user *buffer, + int buflen, + const char *link) +{ + int len; + + len = PTR_ERR(link); + if (IS_ERR(link)) + goto out; + + len = strlen(link); + if (len > (unsigned) buflen) + len = buflen; + if (copy_to_user(buffer, link, len)) + len = -EFAULT; + out: + return len; +} + + +int +xfs_readlink_by_handle( + struct file *parfilp, + xfs_fsop_handlereq_t *hreq) +{ + struct dentry *dentry; + __u32 olen; + void *link; + int error; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + + dentry = xfs_handlereq_to_dentry(parfilp, hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + /* Restrict this handle operation to symlinks only. */ + if (!S_ISLNK(dentry->d_inode->i_mode)) { + error = -XFS_ERROR(EINVAL); + goto out_dput; + } + + if (copy_from_user(&olen, hreq->ohandlen, sizeof(__u32))) { + error = -XFS_ERROR(EFAULT); + goto out_dput; + } + + link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); + if (!link) { + error = -XFS_ERROR(ENOMEM); + goto out_dput; + } + + error = -xfs_readlink(XFS_I(dentry->d_inode), link); + if (error) + goto out_kfree; + error = do_readlink(hreq->ohandle, olen, link); + if (error) + goto out_kfree; + + out_kfree: + kfree(link); + out_dput: + dput(dentry); + return error; +} + +STATIC int +xfs_fssetdm_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error; + struct fsdmidata fsd; + xfs_fsop_setdm_handlereq_t dmhreq; + struct dentry *dentry; + + if (!capable(CAP_MKNOD)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&dmhreq, arg, sizeof(xfs_fsop_setdm_handlereq_t))) + return -XFS_ERROR(EFAULT); + + dentry = xfs_handlereq_to_dentry(parfilp, &dmhreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) { + error = -XFS_ERROR(EPERM); + goto out; + } + + if (copy_from_user(&fsd, dmhreq.data, sizeof(fsd))) { + error = -XFS_ERROR(EFAULT); + goto out; + } + + error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask, + fsd.fsd_dmstate); + + out: + dput(dentry); + return error; +} + +STATIC int +xfs_attrlist_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error = -ENOMEM; + attrlist_cursor_kern_t *cursor; + xfs_fsop_attrlist_handlereq_t al_hreq; + struct dentry *dentry; + char *kbuf; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&al_hreq, arg, sizeof(xfs_fsop_attrlist_handlereq_t))) + return -XFS_ERROR(EFAULT); + if (al_hreq.buflen > XATTR_LIST_MAX) + return -XFS_ERROR(EINVAL); + + /* + * Reject flags, only allow namespaces. + */ + if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) + return -XFS_ERROR(EINVAL); + + dentry = xfs_handlereq_to_dentry(parfilp, &al_hreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + kbuf = kzalloc(al_hreq.buflen, GFP_KERNEL); + if (!kbuf) + goto out_dput; + + cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; + error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen, + al_hreq.flags, cursor); + if (error) + goto out_kfree; + + if (copy_to_user(al_hreq.buffer, kbuf, al_hreq.buflen)) + error = -EFAULT; + + out_kfree: + kfree(kbuf); + out_dput: + dput(dentry); + return error; +} + +int +xfs_attrmulti_attr_get( + struct inode *inode, + unsigned char *name, + unsigned char __user *ubuf, + __uint32_t *len, + __uint32_t flags) +{ + unsigned char *kbuf; + int error = EFAULT; + + if (*len > XATTR_SIZE_MAX) + return EINVAL; + kbuf = kmalloc(*len, GFP_KERNEL); + if (!kbuf) + return ENOMEM; + + error = xfs_attr_get(XFS_I(inode), name, kbuf, (int *)len, flags); + if (error) + goto out_kfree; + + if (copy_to_user(ubuf, kbuf, *len)) + error = EFAULT; + + out_kfree: + kfree(kbuf); + return error; +} + +int +xfs_attrmulti_attr_set( + struct inode *inode, + unsigned char *name, + const unsigned char __user *ubuf, + __uint32_t len, + __uint32_t flags) +{ + unsigned char *kbuf; + int error = EFAULT; + + if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) + return EPERM; + if (len > XATTR_SIZE_MAX) + return EINVAL; + + kbuf = memdup_user(ubuf, len); + if (IS_ERR(kbuf)) + return PTR_ERR(kbuf); + + error = xfs_attr_set(XFS_I(inode), name, kbuf, len, flags); + + return error; +} + +int +xfs_attrmulti_attr_remove( + struct inode *inode, + unsigned char *name, + __uint32_t flags) +{ + if (IS_IMMUTABLE(inode) || IS_APPEND(inode)) + return EPERM; + return xfs_attr_remove(XFS_I(inode), name, flags); +} + +STATIC int +xfs_attrmulti_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error; + xfs_attr_multiop_t *ops; + xfs_fsop_attrmulti_handlereq_t am_hreq; + struct dentry *dentry; + unsigned int i, size; + unsigned char *attr_name; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&am_hreq, arg, sizeof(xfs_fsop_attrmulti_handlereq_t))) + return -XFS_ERROR(EFAULT); + + /* overflow check */ + if (am_hreq.opcount >= INT_MAX / sizeof(xfs_attr_multiop_t)) + return -E2BIG; + + dentry = xfs_handlereq_to_dentry(parfilp, &am_hreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + error = E2BIG; + size = am_hreq.opcount * sizeof(xfs_attr_multiop_t); + if (!size || size > 16 * PAGE_SIZE) + goto out_dput; + + ops = memdup_user(am_hreq.ops, size); + if (IS_ERR(ops)) { + error = PTR_ERR(ops); + goto out_dput; + } + + attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); + if (!attr_name) + goto out_kfree_ops; + + error = 0; + for (i = 0; i < am_hreq.opcount; i++) { + ops[i].am_error = strncpy_from_user((char *)attr_name, + ops[i].am_attrname, MAXNAMELEN); + if (ops[i].am_error == 0 || ops[i].am_error == MAXNAMELEN) + error = -ERANGE; + if (ops[i].am_error < 0) + break; + + switch (ops[i].am_opcode) { + case ATTR_OP_GET: + ops[i].am_error = xfs_attrmulti_attr_get( + dentry->d_inode, attr_name, + ops[i].am_attrvalue, &ops[i].am_length, + ops[i].am_flags); + break; + case ATTR_OP_SET: + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); + if (ops[i].am_error) + break; + ops[i].am_error = xfs_attrmulti_attr_set( + dentry->d_inode, attr_name, + ops[i].am_attrvalue, ops[i].am_length, + ops[i].am_flags); + mnt_drop_write(parfilp->f_path.mnt); + break; + case ATTR_OP_REMOVE: + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); + if (ops[i].am_error) + break; + ops[i].am_error = xfs_attrmulti_attr_remove( + dentry->d_inode, attr_name, + ops[i].am_flags); + mnt_drop_write(parfilp->f_path.mnt); + break; + default: + ops[i].am_error = EINVAL; + } + } + + if (copy_to_user(am_hreq.ops, ops, size)) + error = XFS_ERROR(EFAULT); + + kfree(attr_name); + out_kfree_ops: + kfree(ops); + out_dput: + dput(dentry); + return -error; +} + +int +xfs_ioc_space( + struct xfs_inode *ip, + struct inode *inode, + struct file *filp, + int ioflags, + unsigned int cmd, + xfs_flock64_t *bf) +{ + int attr_flags = 0; + int error; + + /* + * Only allow the sys admin to reserve space unless + * unwritten extents are enabled. + */ + if (!xfs_sb_version_hasextflgbit(&ip->i_mount->m_sb) && + !capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + + if (inode->i_flags & (S_IMMUTABLE|S_APPEND)) + return -XFS_ERROR(EPERM); + + if (!(filp->f_mode & FMODE_WRITE)) + return -XFS_ERROR(EBADF); + + if (!S_ISREG(inode->i_mode)) + return -XFS_ERROR(EINVAL); + + if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) + attr_flags |= XFS_ATTR_NONBLOCK; + + if (filp->f_flags & O_DSYNC) + attr_flags |= XFS_ATTR_SYNC; + + if (ioflags & IO_INVIS) + attr_flags |= XFS_ATTR_DMI; + + error = xfs_change_file_space(ip, cmd, bf, filp->f_pos, attr_flags); + return -error; +} + +STATIC int +xfs_ioc_bulkstat( + xfs_mount_t *mp, + unsigned int cmd, + void __user *arg) +{ + xfs_fsop_bulkreq_t bulkreq; + int count; /* # of records returned */ + xfs_ino_t inlast; /* last inode number */ + int done; + int error; + + /* done = 1 if there are more stats to get and if bulkstat */ + /* should be called again (unused here, but used in dmapi) */ + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (XFS_FORCED_SHUTDOWN(mp)) + return -XFS_ERROR(EIO); + + if (copy_from_user(&bulkreq, arg, sizeof(xfs_fsop_bulkreq_t))) + return -XFS_ERROR(EFAULT); + + if (copy_from_user(&inlast, bulkreq.lastip, sizeof(__s64))) + return -XFS_ERROR(EFAULT); + + if ((count = bulkreq.icount) <= 0) + return -XFS_ERROR(EINVAL); + + if (bulkreq.ubuffer == NULL) + return -XFS_ERROR(EINVAL); + + if (cmd == XFS_IOC_FSINUMBERS) + error = xfs_inumbers(mp, &inlast, &count, + bulkreq.ubuffer, xfs_inumbers_fmt); + else if (cmd == XFS_IOC_FSBULKSTAT_SINGLE) + error = xfs_bulkstat_single(mp, &inlast, + bulkreq.ubuffer, &done); + else /* XFS_IOC_FSBULKSTAT */ + error = xfs_bulkstat(mp, &inlast, &count, xfs_bulkstat_one, + sizeof(xfs_bstat_t), bulkreq.ubuffer, + &done); + + if (error) + return -error; + + if (bulkreq.ocount != NULL) { + if (copy_to_user(bulkreq.lastip, &inlast, + sizeof(xfs_ino_t))) + return -XFS_ERROR(EFAULT); + + if (copy_to_user(bulkreq.ocount, &count, sizeof(count))) + return -XFS_ERROR(EFAULT); + } + + return 0; +} + +STATIC int +xfs_ioc_fsgeometry_v1( + xfs_mount_t *mp, + void __user *arg) +{ + xfs_fsop_geom_t fsgeo; + int error; + + error = xfs_fs_geometry(mp, &fsgeo, 3); + if (error) + return -error; + + /* + * Caller should have passed an argument of type + * xfs_fsop_geom_v1_t. This is a proper subset of the + * xfs_fsop_geom_t that xfs_fs_geometry() fills in. + */ + if (copy_to_user(arg, &fsgeo, sizeof(xfs_fsop_geom_v1_t))) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_ioc_fsgeometry( + xfs_mount_t *mp, + void __user *arg) +{ + xfs_fsop_geom_t fsgeo; + int error; + + error = xfs_fs_geometry(mp, &fsgeo, 4); + if (error) + return -error; + + if (copy_to_user(arg, &fsgeo, sizeof(fsgeo))) + return -XFS_ERROR(EFAULT); + return 0; +} + +/* + * Linux extended inode flags interface. + */ + +STATIC unsigned int +xfs_merge_ioc_xflags( + unsigned int flags, + unsigned int start) +{ + unsigned int xflags = start; + + if (flags & FS_IMMUTABLE_FL) + xflags |= XFS_XFLAG_IMMUTABLE; + else + xflags &= ~XFS_XFLAG_IMMUTABLE; + if (flags & FS_APPEND_FL) + xflags |= XFS_XFLAG_APPEND; + else + xflags &= ~XFS_XFLAG_APPEND; + if (flags & FS_SYNC_FL) + xflags |= XFS_XFLAG_SYNC; + else + xflags &= ~XFS_XFLAG_SYNC; + if (flags & FS_NOATIME_FL) + xflags |= XFS_XFLAG_NOATIME; + else + xflags &= ~XFS_XFLAG_NOATIME; + if (flags & FS_NODUMP_FL) + xflags |= XFS_XFLAG_NODUMP; + else + xflags &= ~XFS_XFLAG_NODUMP; + + return xflags; +} + +STATIC unsigned int +xfs_di2lxflags( + __uint16_t di_flags) +{ + unsigned int flags = 0; + + if (di_flags & XFS_DIFLAG_IMMUTABLE) + flags |= FS_IMMUTABLE_FL; + if (di_flags & XFS_DIFLAG_APPEND) + flags |= FS_APPEND_FL; + if (di_flags & XFS_DIFLAG_SYNC) + flags |= FS_SYNC_FL; + if (di_flags & XFS_DIFLAG_NOATIME) + flags |= FS_NOATIME_FL; + if (di_flags & XFS_DIFLAG_NODUMP) + flags |= FS_NODUMP_FL; + return flags; +} + +STATIC int +xfs_ioc_fsgetxattr( + xfs_inode_t *ip, + int attr, + void __user *arg) +{ + struct fsxattr fa; + + memset(&fa, 0, sizeof(struct fsxattr)); + + xfs_ilock(ip, XFS_ILOCK_SHARED); + fa.fsx_xflags = xfs_ip2xflags(ip); + fa.fsx_extsize = ip->i_d.di_extsize << ip->i_mount->m_sb.sb_blocklog; + fa.fsx_projid = xfs_get_projid(ip); + + if (attr) { + if (ip->i_afp) { + if (ip->i_afp->if_flags & XFS_IFEXTENTS) + fa.fsx_nextents = ip->i_afp->if_bytes / + sizeof(xfs_bmbt_rec_t); + else + fa.fsx_nextents = ip->i_d.di_anextents; + } else + fa.fsx_nextents = 0; + } else { + if (ip->i_df.if_flags & XFS_IFEXTENTS) + fa.fsx_nextents = ip->i_df.if_bytes / + sizeof(xfs_bmbt_rec_t); + else + fa.fsx_nextents = ip->i_d.di_nextents; + } + xfs_iunlock(ip, XFS_ILOCK_SHARED); + + if (copy_to_user(arg, &fa, sizeof(fa))) + return -EFAULT; + return 0; +} + +STATIC void +xfs_set_diflags( + struct xfs_inode *ip, + unsigned int xflags) +{ + unsigned int di_flags; + + /* can't set PREALLOC this way, just preserve it */ + di_flags = (ip->i_d.di_flags & XFS_DIFLAG_PREALLOC); + if (xflags & XFS_XFLAG_IMMUTABLE) + di_flags |= XFS_DIFLAG_IMMUTABLE; + if (xflags & XFS_XFLAG_APPEND) + di_flags |= XFS_DIFLAG_APPEND; + if (xflags & XFS_XFLAG_SYNC) + di_flags |= XFS_DIFLAG_SYNC; + if (xflags & XFS_XFLAG_NOATIME) + di_flags |= XFS_DIFLAG_NOATIME; + if (xflags & XFS_XFLAG_NODUMP) + di_flags |= XFS_DIFLAG_NODUMP; + if (xflags & XFS_XFLAG_PROJINHERIT) + di_flags |= XFS_DIFLAG_PROJINHERIT; + if (xflags & XFS_XFLAG_NODEFRAG) + di_flags |= XFS_DIFLAG_NODEFRAG; + if (xflags & XFS_XFLAG_FILESTREAM) + di_flags |= XFS_DIFLAG_FILESTREAM; + if ((ip->i_d.di_mode & S_IFMT) == S_IFDIR) { + if (xflags & XFS_XFLAG_RTINHERIT) + di_flags |= XFS_DIFLAG_RTINHERIT; + if (xflags & XFS_XFLAG_NOSYMLINKS) + di_flags |= XFS_DIFLAG_NOSYMLINKS; + if (xflags & XFS_XFLAG_EXTSZINHERIT) + di_flags |= XFS_DIFLAG_EXTSZINHERIT; + } else if ((ip->i_d.di_mode & S_IFMT) == S_IFREG) { + if (xflags & XFS_XFLAG_REALTIME) + di_flags |= XFS_DIFLAG_REALTIME; + if (xflags & XFS_XFLAG_EXTSIZE) + di_flags |= XFS_DIFLAG_EXTSIZE; + } + + ip->i_d.di_flags = di_flags; +} + +STATIC void +xfs_diflags_to_linux( + struct xfs_inode *ip) +{ + struct inode *inode = VFS_I(ip); + unsigned int xflags = xfs_ip2xflags(ip); + + if (xflags & XFS_XFLAG_IMMUTABLE) + inode->i_flags |= S_IMMUTABLE; + else + inode->i_flags &= ~S_IMMUTABLE; + if (xflags & XFS_XFLAG_APPEND) + inode->i_flags |= S_APPEND; + else + inode->i_flags &= ~S_APPEND; + if (xflags & XFS_XFLAG_SYNC) + inode->i_flags |= S_SYNC; + else + inode->i_flags &= ~S_SYNC; + if (xflags & XFS_XFLAG_NOATIME) + inode->i_flags |= S_NOATIME; + else + inode->i_flags &= ~S_NOATIME; +} + +#define FSX_PROJID 1 +#define FSX_EXTSIZE 2 +#define FSX_XFLAGS 4 +#define FSX_NONBLOCK 8 + +STATIC int +xfs_ioctl_setattr( + xfs_inode_t *ip, + struct fsxattr *fa, + int mask) +{ + struct xfs_mount *mp = ip->i_mount; + struct xfs_trans *tp; + unsigned int lock_flags = 0; + struct xfs_dquot *udqp = NULL; + struct xfs_dquot *gdqp = NULL; + struct xfs_dquot *olddquot = NULL; + int code; + + trace_xfs_ioctl_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + /* + * Disallow 32bit project ids when projid32bit feature is not enabled. + */ + if ((mask & FSX_PROJID) && (fa->fsx_projid > (__uint16_t)-1) && + !xfs_sb_version_hasprojid32bit(&ip->i_mount->m_sb)) + return XFS_ERROR(EINVAL); + + /* + * If disk quotas is on, we make sure that the dquots do exist on disk, + * before we start any other transactions. Trying to do this later + * is messy. We don't care to take a readlock to look at the ids + * in inode here, because we can't hold it across the trans_reserve. + * If the IDs do change before we take the ilock, we're covered + * because the i_*dquot fields will get updated anyway. + */ + if (XFS_IS_QUOTA_ON(mp) && (mask & FSX_PROJID)) { + code = xfs_qm_vop_dqalloc(ip, ip->i_d.di_uid, + ip->i_d.di_gid, fa->fsx_projid, + XFS_QMOPT_PQUOTA, &udqp, &gdqp); + if (code) + return code; + } + + /* + * For the other attributes, we acquire the inode lock and + * first do an error checking pass. + */ + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); + code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (code) + goto error_return; + + lock_flags = XFS_ILOCK_EXCL; + xfs_ilock(ip, lock_flags); + + /* + * CAP_FOWNER overrides the following restrictions: + * + * The user ID of the calling process must be equal + * to the file owner ID, except in cases where the + * CAP_FSETID capability is applicable. + */ + if (current_fsuid() != ip->i_d.di_uid && !capable(CAP_FOWNER)) { + code = XFS_ERROR(EPERM); + goto error_return; + } + + /* + * Do a quota reservation only if projid is actually going to change. + */ + if (mask & FSX_PROJID) { + if (XFS_IS_QUOTA_RUNNING(mp) && + XFS_IS_PQUOTA_ON(mp) && + xfs_get_projid(ip) != fa->fsx_projid) { + ASSERT(tp); + code = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, + capable(CAP_FOWNER) ? + XFS_QMOPT_FORCE_RES : 0); + if (code) /* out of quota */ + goto error_return; + } + } + + if (mask & FSX_EXTSIZE) { + /* + * Can't change extent size if any extents are allocated. + */ + if (ip->i_d.di_nextents && + ((ip->i_d.di_extsize << mp->m_sb.sb_blocklog) != + fa->fsx_extsize)) { + code = XFS_ERROR(EINVAL); /* EFBIG? */ + goto error_return; + } + + /* + * Extent size must be a multiple of the appropriate block + * size, if set at all. It must also be smaller than the + * maximum extent size supported by the filesystem. + * + * Also, for non-realtime files, limit the extent size hint to + * half the size of the AGs in the filesystem so alignment + * doesn't result in extents larger than an AG. + */ + if (fa->fsx_extsize != 0) { + xfs_extlen_t size; + xfs_fsblock_t extsize_fsb; + + extsize_fsb = XFS_B_TO_FSB(mp, fa->fsx_extsize); + if (extsize_fsb > MAXEXTLEN) { + code = XFS_ERROR(EINVAL); + goto error_return; + } + + if (XFS_IS_REALTIME_INODE(ip) || + ((mask & FSX_XFLAGS) && + (fa->fsx_xflags & XFS_XFLAG_REALTIME))) { + size = mp->m_sb.sb_rextsize << + mp->m_sb.sb_blocklog; + } else { + size = mp->m_sb.sb_blocksize; + if (extsize_fsb > mp->m_sb.sb_agblocks / 2) { + code = XFS_ERROR(EINVAL); + goto error_return; + } + } + + if (fa->fsx_extsize % size) { + code = XFS_ERROR(EINVAL); + goto error_return; + } + } + } + + + if (mask & FSX_XFLAGS) { + /* + * Can't change realtime flag if any extents are allocated. + */ + if ((ip->i_d.di_nextents || ip->i_delayed_blks) && + (XFS_IS_REALTIME_INODE(ip)) != + (fa->fsx_xflags & XFS_XFLAG_REALTIME)) { + code = XFS_ERROR(EINVAL); /* EFBIG? */ + goto error_return; + } + + /* + * If realtime flag is set then must have realtime data. + */ + if ((fa->fsx_xflags & XFS_XFLAG_REALTIME)) { + if ((mp->m_sb.sb_rblocks == 0) || + (mp->m_sb.sb_rextsize == 0) || + (ip->i_d.di_extsize % mp->m_sb.sb_rextsize)) { + code = XFS_ERROR(EINVAL); + goto error_return; + } + } + + /* + * Can't modify an immutable/append-only file unless + * we have appropriate permission. + */ + if ((ip->i_d.di_flags & + (XFS_DIFLAG_IMMUTABLE|XFS_DIFLAG_APPEND) || + (fa->fsx_xflags & + (XFS_XFLAG_IMMUTABLE | XFS_XFLAG_APPEND))) && + !capable(CAP_LINUX_IMMUTABLE)) { + code = XFS_ERROR(EPERM); + goto error_return; + } + } + + xfs_trans_ijoin(tp, ip); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & FSX_PROJID) { + /* + * CAP_FSETID overrides the following restrictions: + * + * The set-user-ID and set-group-ID bits of a file will be + * cleared upon successful return from chown() + */ + if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && + !capable(CAP_FSETID)) + ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); + + /* + * Change the ownerships and register quota modifications + * in the transaction. + */ + if (xfs_get_projid(ip) != fa->fsx_projid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_PQUOTA_ON(mp)) { + olddquot = xfs_qm_vop_chown(tp, ip, + &ip->i_gdquot, gdqp); + } + xfs_set_projid(ip, fa->fsx_projid); + + /* + * We may have to rev the inode as well as + * the superblock version number since projids didn't + * exist before DINODE_VERSION_2 and SB_VERSION_NLINK. + */ + if (ip->i_d.di_version == 1) + xfs_bump_ino_vers2(tp, ip); + } + + } + + if (mask & FSX_EXTSIZE) + ip->i_d.di_extsize = fa->fsx_extsize >> mp->m_sb.sb_blocklog; + if (mask & FSX_XFLAGS) { + xfs_set_diflags(ip, fa->fsx_xflags); + xfs_diflags_to_linux(ip); + } + + xfs_trans_ichgtime(tp, ip, XFS_ICHGTIME_CHG); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + /* + * If this is a synchronous mount, make sure that the + * transaction goes to disk before returning to the user. + * This is slightly sub-optimal in that truncates require + * two sync transactions instead of one for wsync filesystems. + * One for the truncate and one for the timestamps since we + * don't want to change the timestamps unless we're sure the + * truncate worked. Truncates are less than 1% of the laddis + * mix so this probably isn't worth the trouble to optimize. + */ + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + code = xfs_trans_commit(tp, 0); + xfs_iunlock(ip, lock_flags); + + /* + * Release any dquot(s) the inode had kept before chown. + */ + xfs_qm_dqrele(olddquot); + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + + return code; + + error_return: + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + xfs_trans_cancel(tp, 0); + if (lock_flags) + xfs_iunlock(ip, lock_flags); + return code; +} + +STATIC int +xfs_ioc_fssetxattr( + xfs_inode_t *ip, + struct file *filp, + void __user *arg) +{ + struct fsxattr fa; + unsigned int mask; + + if (copy_from_user(&fa, arg, sizeof(fa))) + return -EFAULT; + + mask = FSX_XFLAGS | FSX_EXTSIZE | FSX_PROJID; + if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) + mask |= FSX_NONBLOCK; + + return -xfs_ioctl_setattr(ip, &fa, mask); +} + +STATIC int +xfs_ioc_getxflags( + xfs_inode_t *ip, + void __user *arg) +{ + unsigned int flags; + + flags = xfs_di2lxflags(ip->i_d.di_flags); + if (copy_to_user(arg, &flags, sizeof(flags))) + return -EFAULT; + return 0; +} + +STATIC int +xfs_ioc_setxflags( + xfs_inode_t *ip, + struct file *filp, + void __user *arg) +{ + struct fsxattr fa; + unsigned int flags; + unsigned int mask; + + if (copy_from_user(&flags, arg, sizeof(flags))) + return -EFAULT; + + if (flags & ~(FS_IMMUTABLE_FL | FS_APPEND_FL | \ + FS_NOATIME_FL | FS_NODUMP_FL | \ + FS_SYNC_FL)) + return -EOPNOTSUPP; + + mask = FSX_XFLAGS; + if (filp->f_flags & (O_NDELAY|O_NONBLOCK)) + mask |= FSX_NONBLOCK; + fa.fsx_xflags = xfs_merge_ioc_xflags(flags, xfs_ip2xflags(ip)); + + return -xfs_ioctl_setattr(ip, &fa, mask); +} + +STATIC int +xfs_getbmap_format(void **ap, struct getbmapx *bmv, int *full) +{ + struct getbmap __user *base = *ap; + + /* copy only getbmap portion (not getbmapx) */ + if (copy_to_user(base, bmv, sizeof(struct getbmap))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmap); + return 0; +} + +STATIC int +xfs_ioc_getbmap( + struct xfs_inode *ip, + int ioflags, + unsigned int cmd, + void __user *arg) +{ + struct getbmapx bmx; + int error; + + if (copy_from_user(&bmx, arg, sizeof(struct getbmapx))) + return -XFS_ERROR(EFAULT); + + if (bmx.bmv_count < 2) + return -XFS_ERROR(EINVAL); + + bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); + if (ioflags & IO_INVIS) + bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; + + error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, + (struct getbmap *)arg+1); + if (error) + return -error; + + /* copy back header - only size of getbmap */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmap))) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_getbmapx_format(void **ap, struct getbmapx *bmv, int *full) +{ + struct getbmapx __user *base = *ap; + + if (copy_to_user(base, bmv, sizeof(struct getbmapx))) + return XFS_ERROR(EFAULT); + + *ap += sizeof(struct getbmapx); + return 0; +} + +STATIC int +xfs_ioc_getbmapx( + struct xfs_inode *ip, + void __user *arg) +{ + struct getbmapx bmx; + int error; + + if (copy_from_user(&bmx, arg, sizeof(bmx))) + return -XFS_ERROR(EFAULT); + + if (bmx.bmv_count < 2) + return -XFS_ERROR(EINVAL); + + if (bmx.bmv_iflags & (~BMV_IF_VALID)) + return -XFS_ERROR(EINVAL); + + error = xfs_getbmap(ip, &bmx, xfs_getbmapx_format, + (struct getbmapx *)arg+1); + if (error) + return -error; + + /* copy back header */ + if (copy_to_user(arg, &bmx, sizeof(struct getbmapx))) + return -XFS_ERROR(EFAULT); + + return 0; +} + +/* + * Note: some of the ioctl's return positive numbers as a + * byte count indicating success, such as readlink_by_handle. + * So we don't "sign flip" like most other routines. This means + * true errors need to be returned as a negative value. + */ +long +xfs_file_ioctl( + struct file *filp, + unsigned int cmd, + unsigned long p) +{ + struct inode *inode = filp->f_path.dentry->d_inode; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + void __user *arg = (void __user *)p; + int ioflags = 0; + int error; + + if (filp->f_mode & FMODE_NOCMTIME) + ioflags |= IO_INVIS; + + trace_xfs_file_ioctl(ip); + + switch (cmd) { + case FITRIM: + return xfs_ioc_trim(mp, arg); + case XFS_IOC_ALLOCSP: + case XFS_IOC_FREESP: + case XFS_IOC_RESVSP: + case XFS_IOC_UNRESVSP: + case XFS_IOC_ALLOCSP64: + case XFS_IOC_FREESP64: + case XFS_IOC_RESVSP64: + case XFS_IOC_UNRESVSP64: + case XFS_IOC_ZERO_RANGE: { + xfs_flock64_t bf; + + if (copy_from_user(&bf, arg, sizeof(bf))) + return -XFS_ERROR(EFAULT); + return xfs_ioc_space(ip, inode, filp, ioflags, cmd, &bf); + } + case XFS_IOC_DIOINFO: { + struct dioattr da; + xfs_buftarg_t *target = + XFS_IS_REALTIME_INODE(ip) ? + mp->m_rtdev_targp : mp->m_ddev_targp; + + da.d_mem = da.d_miniosz = 1 << target->bt_sshift; + da.d_maxiosz = INT_MAX & ~(da.d_miniosz - 1); + + if (copy_to_user(arg, &da, sizeof(da))) + return -XFS_ERROR(EFAULT); + return 0; + } + + case XFS_IOC_FSBULKSTAT_SINGLE: + case XFS_IOC_FSBULKSTAT: + case XFS_IOC_FSINUMBERS: + return xfs_ioc_bulkstat(mp, cmd, arg); + + case XFS_IOC_FSGEOMETRY_V1: + return xfs_ioc_fsgeometry_v1(mp, arg); + + case XFS_IOC_FSGEOMETRY: + return xfs_ioc_fsgeometry(mp, arg); + + case XFS_IOC_GETVERSION: + return put_user(inode->i_generation, (int __user *)arg); + + case XFS_IOC_FSGETXATTR: + return xfs_ioc_fsgetxattr(ip, 0, arg); + case XFS_IOC_FSGETXATTRA: + return xfs_ioc_fsgetxattr(ip, 1, arg); + case XFS_IOC_FSSETXATTR: + return xfs_ioc_fssetxattr(ip, filp, arg); + case XFS_IOC_GETXFLAGS: + return xfs_ioc_getxflags(ip, arg); + case XFS_IOC_SETXFLAGS: + return xfs_ioc_setxflags(ip, filp, arg); + + case XFS_IOC_FSSETDM: { + struct fsdmidata dmi; + + if (copy_from_user(&dmi, arg, sizeof(dmi))) + return -XFS_ERROR(EFAULT); + + error = xfs_set_dmattrs(ip, dmi.fsd_dmevmask, + dmi.fsd_dmstate); + return -error; + } + + case XFS_IOC_GETBMAP: + case XFS_IOC_GETBMAPA: + return xfs_ioc_getbmap(ip, ioflags, cmd, arg); + + case XFS_IOC_GETBMAPX: + return xfs_ioc_getbmapx(ip, arg); + + case XFS_IOC_FD_TO_HANDLE: + case XFS_IOC_PATH_TO_HANDLE: + case XFS_IOC_PATH_TO_FSHANDLE: { + xfs_fsop_handlereq_t hreq; + + if (copy_from_user(&hreq, arg, sizeof(hreq))) + return -XFS_ERROR(EFAULT); + return xfs_find_handle(cmd, &hreq); + } + case XFS_IOC_OPEN_BY_HANDLE: { + xfs_fsop_handlereq_t hreq; + + if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) + return -XFS_ERROR(EFAULT); + return xfs_open_by_handle(filp, &hreq); + } + case XFS_IOC_FSSETDM_BY_HANDLE: + return xfs_fssetdm_by_handle(filp, arg); + + case XFS_IOC_READLINK_BY_HANDLE: { + xfs_fsop_handlereq_t hreq; + + if (copy_from_user(&hreq, arg, sizeof(xfs_fsop_handlereq_t))) + return -XFS_ERROR(EFAULT); + return xfs_readlink_by_handle(filp, &hreq); + } + case XFS_IOC_ATTRLIST_BY_HANDLE: + return xfs_attrlist_by_handle(filp, arg); + + case XFS_IOC_ATTRMULTI_BY_HANDLE: + return xfs_attrmulti_by_handle(filp, arg); + + case XFS_IOC_SWAPEXT: { + struct xfs_swapext sxp; + + if (copy_from_user(&sxp, arg, sizeof(xfs_swapext_t))) + return -XFS_ERROR(EFAULT); + error = xfs_swapext(&sxp); + return -error; + } + + case XFS_IOC_FSCOUNTS: { + xfs_fsop_counts_t out; + + error = xfs_fs_counts(mp, &out); + if (error) + return -error; + + if (copy_to_user(arg, &out, sizeof(out))) + return -XFS_ERROR(EFAULT); + return 0; + } + + case XFS_IOC_SET_RESBLKS: { + xfs_fsop_resblks_t inout; + __uint64_t in; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return -XFS_ERROR(EROFS); + + if (copy_from_user(&inout, arg, sizeof(inout))) + return -XFS_ERROR(EFAULT); + + /* input parameter is passed in resblks field of structure */ + in = inout.resblks; + error = xfs_reserve_blocks(mp, &in, &inout); + if (error) + return -error; + + if (copy_to_user(arg, &inout, sizeof(inout))) + return -XFS_ERROR(EFAULT); + return 0; + } + + case XFS_IOC_GET_RESBLKS: { + xfs_fsop_resblks_t out; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + error = xfs_reserve_blocks(mp, NULL, &out); + if (error) + return -error; + + if (copy_to_user(arg, &out, sizeof(out))) + return -XFS_ERROR(EFAULT); + + return 0; + } + + case XFS_IOC_FSGROWFSDATA: { + xfs_growfs_data_t in; + + if (copy_from_user(&in, arg, sizeof(in))) + return -XFS_ERROR(EFAULT); + + error = xfs_growfs_data(mp, &in); + return -error; + } + + case XFS_IOC_FSGROWFSLOG: { + xfs_growfs_log_t in; + + if (copy_from_user(&in, arg, sizeof(in))) + return -XFS_ERROR(EFAULT); + + error = xfs_growfs_log(mp, &in); + return -error; + } + + case XFS_IOC_FSGROWFSRT: { + xfs_growfs_rt_t in; + + if (copy_from_user(&in, arg, sizeof(in))) + return -XFS_ERROR(EFAULT); + + error = xfs_growfs_rt(mp, &in); + return -error; + } + + case XFS_IOC_GOINGDOWN: { + __uint32_t in; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (get_user(in, (__uint32_t __user *)arg)) + return -XFS_ERROR(EFAULT); + + error = xfs_fs_goingdown(mp, in); + return -error; + } + + case XFS_IOC_ERROR_INJECTION: { + xfs_error_injection_t in; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + if (copy_from_user(&in, arg, sizeof(in))) + return -XFS_ERROR(EFAULT); + + error = xfs_errortag_add(in.errtag, mp); + return -error; + } + + case XFS_IOC_ERROR_CLEARALL: + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; + + error = xfs_errortag_clearall(mp, 1); + return -error; + + default: + return -ENOTTY; + } +} diff --git a/fs/xfs/linux/xfs_ioctl.h b/fs/xfs/linux/xfs_ioctl.h new file mode 100644 index 0000000..d56173b --- /dev/null +++ b/fs/xfs/linux/xfs_ioctl.h @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2008 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_IOCTL_H__ +#define __XFS_IOCTL_H__ + +extern int +xfs_ioc_space( + struct xfs_inode *ip, + struct inode *inode, + struct file *filp, + int ioflags, + unsigned int cmd, + xfs_flock64_t *bf); + +extern int +xfs_find_handle( + unsigned int cmd, + xfs_fsop_handlereq_t *hreq); + +extern int +xfs_open_by_handle( + struct file *parfilp, + xfs_fsop_handlereq_t *hreq); + +extern int +xfs_readlink_by_handle( + struct file *parfilp, + xfs_fsop_handlereq_t *hreq); + +extern int +xfs_attrmulti_attr_get( + struct inode *inode, + unsigned char *name, + unsigned char __user *ubuf, + __uint32_t *len, + __uint32_t flags); + +extern int +xfs_attrmulti_attr_set( + struct inode *inode, + unsigned char *name, + const unsigned char __user *ubuf, + __uint32_t len, + __uint32_t flags); + +extern int +xfs_attrmulti_attr_remove( + struct inode *inode, + unsigned char *name, + __uint32_t flags); + +extern struct dentry * +xfs_handle_to_dentry( + struct file *parfilp, + void __user *uhandle, + u32 hlen); + +extern long +xfs_file_ioctl( + struct file *filp, + unsigned int cmd, + unsigned long p); + +extern long +xfs_file_compat_ioctl( + struct file *file, + unsigned int cmd, + unsigned long arg); + +#endif diff --git a/fs/xfs/linux/xfs_ioctl32.c b/fs/xfs/linux/xfs_ioctl32.c new file mode 100644 index 0000000..54e623b --- /dev/null +++ b/fs/xfs/linux/xfs_ioctl32.c @@ -0,0 +1,672 @@ +/* + * Copyright (c) 2004-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include +#include +#include +#include +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_vnode.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_itable.h" +#include "xfs_error.h" +#include "xfs_dfrag.h" +#include "xfs_vnodeops.h" +#include "xfs_fsops.h" +#include "xfs_alloc.h" +#include "xfs_rtalloc.h" +#include "xfs_attr.h" +#include "xfs_ioctl.h" +#include "xfs_ioctl32.h" +#include "xfs_trace.h" + +#define _NATIVE_IOC(cmd, type) \ + _IOC(_IOC_DIR(cmd), _IOC_TYPE(cmd), _IOC_NR(cmd), sizeof(type)) + +#ifdef BROKEN_X86_ALIGNMENT +STATIC int +xfs_compat_flock64_copyin( + xfs_flock64_t *bf, + compat_xfs_flock64_t __user *arg32) +{ + if (get_user(bf->l_type, &arg32->l_type) || + get_user(bf->l_whence, &arg32->l_whence) || + get_user(bf->l_start, &arg32->l_start) || + get_user(bf->l_len, &arg32->l_len) || + get_user(bf->l_sysid, &arg32->l_sysid) || + get_user(bf->l_pid, &arg32->l_pid) || + copy_from_user(bf->l_pad, &arg32->l_pad, 4*sizeof(u32))) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_compat_ioc_fsgeometry_v1( + struct xfs_mount *mp, + compat_xfs_fsop_geom_v1_t __user *arg32) +{ + xfs_fsop_geom_t fsgeo; + int error; + + error = xfs_fs_geometry(mp, &fsgeo, 3); + if (error) + return -error; + /* The 32-bit variant simply has some padding at the end */ + if (copy_to_user(arg32, &fsgeo, sizeof(struct compat_xfs_fsop_geom_v1))) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_compat_growfs_data_copyin( + struct xfs_growfs_data *in, + compat_xfs_growfs_data_t __user *arg32) +{ + if (get_user(in->newblocks, &arg32->newblocks) || + get_user(in->imaxpct, &arg32->imaxpct)) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_compat_growfs_rt_copyin( + struct xfs_growfs_rt *in, + compat_xfs_growfs_rt_t __user *arg32) +{ + if (get_user(in->newblocks, &arg32->newblocks) || + get_user(in->extsize, &arg32->extsize)) + return -XFS_ERROR(EFAULT); + return 0; +} + +STATIC int +xfs_inumbers_fmt_compat( + void __user *ubuffer, + const xfs_inogrp_t *buffer, + long count, + long *written) +{ + compat_xfs_inogrp_t __user *p32 = ubuffer; + long i; + + for (i = 0; i < count; i++) { + if (put_user(buffer[i].xi_startino, &p32[i].xi_startino) || + put_user(buffer[i].xi_alloccount, &p32[i].xi_alloccount) || + put_user(buffer[i].xi_allocmask, &p32[i].xi_allocmask)) + return -XFS_ERROR(EFAULT); + } + *written = count * sizeof(*p32); + return 0; +} + +#else +#define xfs_inumbers_fmt_compat xfs_inumbers_fmt +#endif /* BROKEN_X86_ALIGNMENT */ + +STATIC int +xfs_ioctl32_bstime_copyin( + xfs_bstime_t *bstime, + compat_xfs_bstime_t __user *bstime32) +{ + compat_time_t sec32; /* tv_sec differs on 64 vs. 32 */ + + if (get_user(sec32, &bstime32->tv_sec) || + get_user(bstime->tv_nsec, &bstime32->tv_nsec)) + return -XFS_ERROR(EFAULT); + bstime->tv_sec = sec32; + return 0; +} + +/* xfs_bstat_t has differing alignment on intel, & bstime_t sizes everywhere */ +STATIC int +xfs_ioctl32_bstat_copyin( + xfs_bstat_t *bstat, + compat_xfs_bstat_t __user *bstat32) +{ + if (get_user(bstat->bs_ino, &bstat32->bs_ino) || + get_user(bstat->bs_mode, &bstat32->bs_mode) || + get_user(bstat->bs_nlink, &bstat32->bs_nlink) || + get_user(bstat->bs_uid, &bstat32->bs_uid) || + get_user(bstat->bs_gid, &bstat32->bs_gid) || + get_user(bstat->bs_rdev, &bstat32->bs_rdev) || + get_user(bstat->bs_blksize, &bstat32->bs_blksize) || + get_user(bstat->bs_size, &bstat32->bs_size) || + xfs_ioctl32_bstime_copyin(&bstat->bs_atime, &bstat32->bs_atime) || + xfs_ioctl32_bstime_copyin(&bstat->bs_mtime, &bstat32->bs_mtime) || + xfs_ioctl32_bstime_copyin(&bstat->bs_ctime, &bstat32->bs_ctime) || + get_user(bstat->bs_blocks, &bstat32->bs_size) || + get_user(bstat->bs_xflags, &bstat32->bs_size) || + get_user(bstat->bs_extsize, &bstat32->bs_extsize) || + get_user(bstat->bs_extents, &bstat32->bs_extents) || + get_user(bstat->bs_gen, &bstat32->bs_gen) || + get_user(bstat->bs_projid_lo, &bstat32->bs_projid_lo) || + get_user(bstat->bs_projid_hi, &bstat32->bs_projid_hi) || + get_user(bstat->bs_dmevmask, &bstat32->bs_dmevmask) || + get_user(bstat->bs_dmstate, &bstat32->bs_dmstate) || + get_user(bstat->bs_aextents, &bstat32->bs_aextents)) + return -XFS_ERROR(EFAULT); + return 0; +} + +/* XFS_IOC_FSBULKSTAT and friends */ + +STATIC int +xfs_bstime_store_compat( + compat_xfs_bstime_t __user *p32, + const xfs_bstime_t *p) +{ + __s32 sec32; + + sec32 = p->tv_sec; + if (put_user(sec32, &p32->tv_sec) || + put_user(p->tv_nsec, &p32->tv_nsec)) + return -XFS_ERROR(EFAULT); + return 0; +} + +/* Return 0 on success or positive error (to xfs_bulkstat()) */ +STATIC int +xfs_bulkstat_one_fmt_compat( + void __user *ubuffer, + int ubsize, + int *ubused, + const xfs_bstat_t *buffer) +{ + compat_xfs_bstat_t __user *p32 = ubuffer; + + if (ubsize < sizeof(*p32)) + return XFS_ERROR(ENOMEM); + + if (put_user(buffer->bs_ino, &p32->bs_ino) || + put_user(buffer->bs_mode, &p32->bs_mode) || + put_user(buffer->bs_nlink, &p32->bs_nlink) || + put_user(buffer->bs_uid, &p32->bs_uid) || + put_user(buffer->bs_gid, &p32->bs_gid) || + put_user(buffer->bs_rdev, &p32->bs_rdev) || + put_user(buffer->bs_blksize, &p32->bs_blksize) || + put_user(buffer->bs_size, &p32->bs_size) || + xfs_bstime_store_compat(&p32->bs_atime, &buffer->bs_atime) || + xfs_bstime_store_compat(&p32->bs_mtime, &buffer->bs_mtime) || + xfs_bstime_store_compat(&p32->bs_ctime, &buffer->bs_ctime) || + put_user(buffer->bs_blocks, &p32->bs_blocks) || + put_user(buffer->bs_xflags, &p32->bs_xflags) || + put_user(buffer->bs_extsize, &p32->bs_extsize) || + put_user(buffer->bs_extents, &p32->bs_extents) || + put_user(buffer->bs_gen, &p32->bs_gen) || + put_user(buffer->bs_projid, &p32->bs_projid) || + put_user(buffer->bs_projid_hi, &p32->bs_projid_hi) || + put_user(buffer->bs_dmevmask, &p32->bs_dmevmask) || + put_user(buffer->bs_dmstate, &p32->bs_dmstate) || + put_user(buffer->bs_aextents, &p32->bs_aextents)) + return XFS_ERROR(EFAULT); + if (ubused) + *ubused = sizeof(*p32); + return 0; +} + +STATIC int +xfs_bulkstat_one_compat( + xfs_mount_t *mp, /* mount point for filesystem */ + xfs_ino_t ino, /* inode number to get data for */ + void __user *buffer, /* buffer to place output in */ + int ubsize, /* size of buffer */ + int *ubused, /* bytes used by me */ + int *stat) /* BULKSTAT_RV_... */ +{ + return xfs_bulkstat_one_int(mp, ino, buffer, ubsize, + xfs_bulkstat_one_fmt_compat, + ubused, stat); +} + +/* copied from xfs_ioctl.c */ +STATIC int +xfs_compat_ioc_bulkstat( + xfs_mount_t *mp, + unsigned int cmd, + compat_xfs_fsop_bulkreq_t __user *p32) +{ + u32 addr; + xfs_fsop_bulkreq_t bulkreq; + int count; /* # of records returned */ + xfs_ino_t inlast; /* last inode number */ + int done; + int error; + + /* done = 1 if there are more stats to get and if bulkstat */ + /* should be called again (unused here, but used in dmapi) */ + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + + if (XFS_FORCED_SHUTDOWN(mp)) + return -XFS_ERROR(EIO); + + if (get_user(addr, &p32->lastip)) + return -XFS_ERROR(EFAULT); + bulkreq.lastip = compat_ptr(addr); + if (get_user(bulkreq.icount, &p32->icount) || + get_user(addr, &p32->ubuffer)) + return -XFS_ERROR(EFAULT); + bulkreq.ubuffer = compat_ptr(addr); + if (get_user(addr, &p32->ocount)) + return -XFS_ERROR(EFAULT); + bulkreq.ocount = compat_ptr(addr); + + if (copy_from_user(&inlast, bulkreq.lastip, sizeof(__s64))) + return -XFS_ERROR(EFAULT); + + if ((count = bulkreq.icount) <= 0) + return -XFS_ERROR(EINVAL); + + if (bulkreq.ubuffer == NULL) + return -XFS_ERROR(EINVAL); + + if (cmd == XFS_IOC_FSINUMBERS_32) { + error = xfs_inumbers(mp, &inlast, &count, + bulkreq.ubuffer, xfs_inumbers_fmt_compat); + } else if (cmd == XFS_IOC_FSBULKSTAT_SINGLE_32) { + int res; + + error = xfs_bulkstat_one_compat(mp, inlast, bulkreq.ubuffer, + sizeof(compat_xfs_bstat_t), 0, &res); + } else if (cmd == XFS_IOC_FSBULKSTAT_32) { + error = xfs_bulkstat(mp, &inlast, &count, + xfs_bulkstat_one_compat, sizeof(compat_xfs_bstat_t), + bulkreq.ubuffer, &done); + } else + error = XFS_ERROR(EINVAL); + if (error) + return -error; + + if (bulkreq.ocount != NULL) { + if (copy_to_user(bulkreq.lastip, &inlast, + sizeof(xfs_ino_t))) + return -XFS_ERROR(EFAULT); + + if (copy_to_user(bulkreq.ocount, &count, sizeof(count))) + return -XFS_ERROR(EFAULT); + } + + return 0; +} + +STATIC int +xfs_compat_handlereq_copyin( + xfs_fsop_handlereq_t *hreq, + compat_xfs_fsop_handlereq_t __user *arg32) +{ + compat_xfs_fsop_handlereq_t hreq32; + + if (copy_from_user(&hreq32, arg32, sizeof(compat_xfs_fsop_handlereq_t))) + return -XFS_ERROR(EFAULT); + + hreq->fd = hreq32.fd; + hreq->path = compat_ptr(hreq32.path); + hreq->oflags = hreq32.oflags; + hreq->ihandle = compat_ptr(hreq32.ihandle); + hreq->ihandlen = hreq32.ihandlen; + hreq->ohandle = compat_ptr(hreq32.ohandle); + hreq->ohandlen = compat_ptr(hreq32.ohandlen); + + return 0; +} + +STATIC struct dentry * +xfs_compat_handlereq_to_dentry( + struct file *parfilp, + compat_xfs_fsop_handlereq_t *hreq) +{ + return xfs_handle_to_dentry(parfilp, + compat_ptr(hreq->ihandle), hreq->ihandlen); +} + +STATIC int +xfs_compat_attrlist_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error; + attrlist_cursor_kern_t *cursor; + compat_xfs_fsop_attrlist_handlereq_t al_hreq; + struct dentry *dentry; + char *kbuf; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&al_hreq, arg, + sizeof(compat_xfs_fsop_attrlist_handlereq_t))) + return -XFS_ERROR(EFAULT); + if (al_hreq.buflen > XATTR_LIST_MAX) + return -XFS_ERROR(EINVAL); + + /* + * Reject flags, only allow namespaces. + */ + if (al_hreq.flags & ~(ATTR_ROOT | ATTR_SECURE)) + return -XFS_ERROR(EINVAL); + + dentry = xfs_compat_handlereq_to_dentry(parfilp, &al_hreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + error = -ENOMEM; + kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL); + if (!kbuf) + goto out_dput; + + cursor = (attrlist_cursor_kern_t *)&al_hreq.pos; + error = -xfs_attr_list(XFS_I(dentry->d_inode), kbuf, al_hreq.buflen, + al_hreq.flags, cursor); + if (error) + goto out_kfree; + + if (copy_to_user(compat_ptr(al_hreq.buffer), kbuf, al_hreq.buflen)) + error = -EFAULT; + + out_kfree: + kfree(kbuf); + out_dput: + dput(dentry); + return error; +} + +STATIC int +xfs_compat_attrmulti_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error; + compat_xfs_attr_multiop_t *ops; + compat_xfs_fsop_attrmulti_handlereq_t am_hreq; + struct dentry *dentry; + unsigned int i, size; + unsigned char *attr_name; + + if (!capable(CAP_SYS_ADMIN)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&am_hreq, arg, + sizeof(compat_xfs_fsop_attrmulti_handlereq_t))) + return -XFS_ERROR(EFAULT); + + /* overflow check */ + if (am_hreq.opcount >= INT_MAX / sizeof(compat_xfs_attr_multiop_t)) + return -E2BIG; + + dentry = xfs_compat_handlereq_to_dentry(parfilp, &am_hreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + error = E2BIG; + size = am_hreq.opcount * sizeof(compat_xfs_attr_multiop_t); + if (!size || size > 16 * PAGE_SIZE) + goto out_dput; + + ops = memdup_user(compat_ptr(am_hreq.ops), size); + if (IS_ERR(ops)) { + error = PTR_ERR(ops); + goto out_dput; + } + + attr_name = kmalloc(MAXNAMELEN, GFP_KERNEL); + if (!attr_name) + goto out_kfree_ops; + + error = 0; + for (i = 0; i < am_hreq.opcount; i++) { + ops[i].am_error = strncpy_from_user((char *)attr_name, + compat_ptr(ops[i].am_attrname), + MAXNAMELEN); + if (ops[i].am_error == 0 || ops[i].am_error == MAXNAMELEN) + error = -ERANGE; + if (ops[i].am_error < 0) + break; + + switch (ops[i].am_opcode) { + case ATTR_OP_GET: + ops[i].am_error = xfs_attrmulti_attr_get( + dentry->d_inode, attr_name, + compat_ptr(ops[i].am_attrvalue), + &ops[i].am_length, ops[i].am_flags); + break; + case ATTR_OP_SET: + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); + if (ops[i].am_error) + break; + ops[i].am_error = xfs_attrmulti_attr_set( + dentry->d_inode, attr_name, + compat_ptr(ops[i].am_attrvalue), + ops[i].am_length, ops[i].am_flags); + mnt_drop_write(parfilp->f_path.mnt); + break; + case ATTR_OP_REMOVE: + ops[i].am_error = mnt_want_write(parfilp->f_path.mnt); + if (ops[i].am_error) + break; + ops[i].am_error = xfs_attrmulti_attr_remove( + dentry->d_inode, attr_name, + ops[i].am_flags); + mnt_drop_write(parfilp->f_path.mnt); + break; + default: + ops[i].am_error = EINVAL; + } + } + + if (copy_to_user(compat_ptr(am_hreq.ops), ops, size)) + error = XFS_ERROR(EFAULT); + + kfree(attr_name); + out_kfree_ops: + kfree(ops); + out_dput: + dput(dentry); + return -error; +} + +STATIC int +xfs_compat_fssetdm_by_handle( + struct file *parfilp, + void __user *arg) +{ + int error; + struct fsdmidata fsd; + compat_xfs_fsop_setdm_handlereq_t dmhreq; + struct dentry *dentry; + + if (!capable(CAP_MKNOD)) + return -XFS_ERROR(EPERM); + if (copy_from_user(&dmhreq, arg, + sizeof(compat_xfs_fsop_setdm_handlereq_t))) + return -XFS_ERROR(EFAULT); + + dentry = xfs_compat_handlereq_to_dentry(parfilp, &dmhreq.hreq); + if (IS_ERR(dentry)) + return PTR_ERR(dentry); + + if (IS_IMMUTABLE(dentry->d_inode) || IS_APPEND(dentry->d_inode)) { + error = -XFS_ERROR(EPERM); + goto out; + } + + if (copy_from_user(&fsd, compat_ptr(dmhreq.data), sizeof(fsd))) { + error = -XFS_ERROR(EFAULT); + goto out; + } + + error = -xfs_set_dmattrs(XFS_I(dentry->d_inode), fsd.fsd_dmevmask, + fsd.fsd_dmstate); + +out: + dput(dentry); + return error; +} + +long +xfs_file_compat_ioctl( + struct file *filp, + unsigned cmd, + unsigned long p) +{ + struct inode *inode = filp->f_path.dentry->d_inode; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + void __user *arg = (void __user *)p; + int ioflags = 0; + int error; + + if (filp->f_mode & FMODE_NOCMTIME) + ioflags |= IO_INVIS; + + trace_xfs_file_compat_ioctl(ip); + + switch (cmd) { + /* No size or alignment issues on any arch */ + case XFS_IOC_DIOINFO: + case XFS_IOC_FSGEOMETRY: + case XFS_IOC_FSGETXATTR: + case XFS_IOC_FSSETXATTR: + case XFS_IOC_FSGETXATTRA: + case XFS_IOC_FSSETDM: + case XFS_IOC_GETBMAP: + case XFS_IOC_GETBMAPA: + case XFS_IOC_GETBMAPX: + case XFS_IOC_FSCOUNTS: + case XFS_IOC_SET_RESBLKS: + case XFS_IOC_GET_RESBLKS: + case XFS_IOC_FSGROWFSLOG: + case XFS_IOC_GOINGDOWN: + case XFS_IOC_ERROR_INJECTION: + case XFS_IOC_ERROR_CLEARALL: + return xfs_file_ioctl(filp, cmd, p); +#ifndef BROKEN_X86_ALIGNMENT + /* These are handled fine if no alignment issues */ + case XFS_IOC_ALLOCSP: + case XFS_IOC_FREESP: + case XFS_IOC_RESVSP: + case XFS_IOC_UNRESVSP: + case XFS_IOC_ALLOCSP64: + case XFS_IOC_FREESP64: + case XFS_IOC_RESVSP64: + case XFS_IOC_UNRESVSP64: + case XFS_IOC_FSGEOMETRY_V1: + case XFS_IOC_FSGROWFSDATA: + case XFS_IOC_FSGROWFSRT: + case XFS_IOC_ZERO_RANGE: + return xfs_file_ioctl(filp, cmd, p); +#else + case XFS_IOC_ALLOCSP_32: + case XFS_IOC_FREESP_32: + case XFS_IOC_ALLOCSP64_32: + case XFS_IOC_FREESP64_32: + case XFS_IOC_RESVSP_32: + case XFS_IOC_UNRESVSP_32: + case XFS_IOC_RESVSP64_32: + case XFS_IOC_UNRESVSP64_32: + case XFS_IOC_ZERO_RANGE_32: { + struct xfs_flock64 bf; + + if (xfs_compat_flock64_copyin(&bf, arg)) + return -XFS_ERROR(EFAULT); + cmd = _NATIVE_IOC(cmd, struct xfs_flock64); + return xfs_ioc_space(ip, inode, filp, ioflags, cmd, &bf); + } + case XFS_IOC_FSGEOMETRY_V1_32: + return xfs_compat_ioc_fsgeometry_v1(mp, arg); + case XFS_IOC_FSGROWFSDATA_32: { + struct xfs_growfs_data in; + + if (xfs_compat_growfs_data_copyin(&in, arg)) + return -XFS_ERROR(EFAULT); + error = xfs_growfs_data(mp, &in); + return -error; + } + case XFS_IOC_FSGROWFSRT_32: { + struct xfs_growfs_rt in; + + if (xfs_compat_growfs_rt_copyin(&in, arg)) + return -XFS_ERROR(EFAULT); + error = xfs_growfs_rt(mp, &in); + return -error; + } +#endif + /* long changes size, but xfs only copiese out 32 bits */ + case XFS_IOC_GETXFLAGS_32: + case XFS_IOC_SETXFLAGS_32: + case XFS_IOC_GETVERSION_32: + cmd = _NATIVE_IOC(cmd, long); + return xfs_file_ioctl(filp, cmd, p); + case XFS_IOC_SWAPEXT_32: { + struct xfs_swapext sxp; + struct compat_xfs_swapext __user *sxu = arg; + + /* Bulk copy in up to the sx_stat field, then copy bstat */ + if (copy_from_user(&sxp, sxu, + offsetof(struct xfs_swapext, sx_stat)) || + xfs_ioctl32_bstat_copyin(&sxp.sx_stat, &sxu->sx_stat)) + return -XFS_ERROR(EFAULT); + error = xfs_swapext(&sxp); + return -error; + } + case XFS_IOC_FSBULKSTAT_32: + case XFS_IOC_FSBULKSTAT_SINGLE_32: + case XFS_IOC_FSINUMBERS_32: + return xfs_compat_ioc_bulkstat(mp, cmd, arg); + case XFS_IOC_FD_TO_HANDLE_32: + case XFS_IOC_PATH_TO_HANDLE_32: + case XFS_IOC_PATH_TO_FSHANDLE_32: { + struct xfs_fsop_handlereq hreq; + + if (xfs_compat_handlereq_copyin(&hreq, arg)) + return -XFS_ERROR(EFAULT); + cmd = _NATIVE_IOC(cmd, struct xfs_fsop_handlereq); + return xfs_find_handle(cmd, &hreq); + } + case XFS_IOC_OPEN_BY_HANDLE_32: { + struct xfs_fsop_handlereq hreq; + + if (xfs_compat_handlereq_copyin(&hreq, arg)) + return -XFS_ERROR(EFAULT); + return xfs_open_by_handle(filp, &hreq); + } + case XFS_IOC_READLINK_BY_HANDLE_32: { + struct xfs_fsop_handlereq hreq; + + if (xfs_compat_handlereq_copyin(&hreq, arg)) + return -XFS_ERROR(EFAULT); + return xfs_readlink_by_handle(filp, &hreq); + } + case XFS_IOC_ATTRLIST_BY_HANDLE_32: + return xfs_compat_attrlist_by_handle(filp, arg); + case XFS_IOC_ATTRMULTI_BY_HANDLE_32: + return xfs_compat_attrmulti_by_handle(filp, arg); + case XFS_IOC_FSSETDM_BY_HANDLE_32: + return xfs_compat_fssetdm_by_handle(filp, arg); + default: + return -XFS_ERROR(ENOIOCTLCMD); + } +} diff --git a/fs/xfs/linux/xfs_ioctl32.h b/fs/xfs/linux/xfs_ioctl32.h new file mode 100644 index 0000000..80f4060 --- /dev/null +++ b/fs/xfs/linux/xfs_ioctl32.h @@ -0,0 +1,237 @@ +/* + * Copyright (c) 2004-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_IOCTL32_H__ +#define __XFS_IOCTL32_H__ + +#include + +/* + * on 32-bit arches, ioctl argument structures may have different sizes + * and/or alignment. We define compat structures which match the + * 32-bit sizes/alignments here, and their associated ioctl numbers. + * + * xfs_ioctl32.c contains routines to copy these structures in and out. + */ + +/* stock kernel-level ioctls we support */ +#define XFS_IOC_GETXFLAGS_32 FS_IOC32_GETFLAGS +#define XFS_IOC_SETXFLAGS_32 FS_IOC32_SETFLAGS +#define XFS_IOC_GETVERSION_32 FS_IOC32_GETVERSION + +/* + * On intel, even if sizes match, alignment and/or padding may differ. + */ +#if defined(CONFIG_IA64) || defined(CONFIG_X86_64) +#define BROKEN_X86_ALIGNMENT +#define __compat_packed __attribute__((packed)) +#else +#define __compat_packed +#endif + +typedef struct compat_xfs_bstime { + compat_time_t tv_sec; /* seconds */ + __s32 tv_nsec; /* and nanoseconds */ +} compat_xfs_bstime_t; + +typedef struct compat_xfs_bstat { + __u64 bs_ino; /* inode number */ + __u16 bs_mode; /* type and mode */ + __u16 bs_nlink; /* number of links */ + __u32 bs_uid; /* user id */ + __u32 bs_gid; /* group id */ + __u32 bs_rdev; /* device value */ + __s32 bs_blksize; /* block size */ + __s64 bs_size; /* file size */ + compat_xfs_bstime_t bs_atime; /* access time */ + compat_xfs_bstime_t bs_mtime; /* modify time */ + compat_xfs_bstime_t bs_ctime; /* inode change time */ + int64_t bs_blocks; /* number of blocks */ + __u32 bs_xflags; /* extended flags */ + __s32 bs_extsize; /* extent size */ + __s32 bs_extents; /* number of extents */ + __u32 bs_gen; /* generation count */ + __u16 bs_projid_lo; /* lower part of project id */ +#define bs_projid bs_projid_lo /* (previously just bs_projid) */ + __u16 bs_projid_hi; /* high part of project id */ + unsigned char bs_pad[12]; /* pad space, unused */ + __u32 bs_dmevmask; /* DMIG event mask */ + __u16 bs_dmstate; /* DMIG state info */ + __u16 bs_aextents; /* attribute number of extents */ +} __compat_packed compat_xfs_bstat_t; + +typedef struct compat_xfs_fsop_bulkreq { + compat_uptr_t lastip; /* last inode # pointer */ + __s32 icount; /* count of entries in buffer */ + compat_uptr_t ubuffer; /* user buffer for inode desc. */ + compat_uptr_t ocount; /* output count pointer */ +} compat_xfs_fsop_bulkreq_t; + +#define XFS_IOC_FSBULKSTAT_32 \ + _IOWR('X', 101, struct compat_xfs_fsop_bulkreq) +#define XFS_IOC_FSBULKSTAT_SINGLE_32 \ + _IOWR('X', 102, struct compat_xfs_fsop_bulkreq) +#define XFS_IOC_FSINUMBERS_32 \ + _IOWR('X', 103, struct compat_xfs_fsop_bulkreq) + +typedef struct compat_xfs_fsop_handlereq { + __u32 fd; /* fd for FD_TO_HANDLE */ + compat_uptr_t path; /* user pathname */ + __u32 oflags; /* open flags */ + compat_uptr_t ihandle; /* user supplied handle */ + __u32 ihandlen; /* user supplied length */ + compat_uptr_t ohandle; /* user buffer for handle */ + compat_uptr_t ohandlen; /* user buffer length */ +} compat_xfs_fsop_handlereq_t; + +#define XFS_IOC_PATH_TO_FSHANDLE_32 \ + _IOWR('X', 104, struct compat_xfs_fsop_handlereq) +#define XFS_IOC_PATH_TO_HANDLE_32 \ + _IOWR('X', 105, struct compat_xfs_fsop_handlereq) +#define XFS_IOC_FD_TO_HANDLE_32 \ + _IOWR('X', 106, struct compat_xfs_fsop_handlereq) +#define XFS_IOC_OPEN_BY_HANDLE_32 \ + _IOWR('X', 107, struct compat_xfs_fsop_handlereq) +#define XFS_IOC_READLINK_BY_HANDLE_32 \ + _IOWR('X', 108, struct compat_xfs_fsop_handlereq) + +/* The bstat field in the swapext struct needs translation */ +typedef struct compat_xfs_swapext { + __int64_t sx_version; /* version */ + __int64_t sx_fdtarget; /* fd of target file */ + __int64_t sx_fdtmp; /* fd of tmp file */ + xfs_off_t sx_offset; /* offset into file */ + xfs_off_t sx_length; /* leng from offset */ + char sx_pad[16]; /* pad space, unused */ + compat_xfs_bstat_t sx_stat; /* stat of target b4 copy */ +} __compat_packed compat_xfs_swapext_t; + +#define XFS_IOC_SWAPEXT_32 _IOWR('X', 109, struct compat_xfs_swapext) + +typedef struct compat_xfs_fsop_attrlist_handlereq { + struct compat_xfs_fsop_handlereq hreq; /* handle interface structure */ + struct xfs_attrlist_cursor pos; /* opaque cookie, list offset */ + __u32 flags; /* which namespace to use */ + __u32 buflen; /* length of buffer supplied */ + compat_uptr_t buffer; /* returned names */ +} __compat_packed compat_xfs_fsop_attrlist_handlereq_t; + +/* Note: actually this is read/write */ +#define XFS_IOC_ATTRLIST_BY_HANDLE_32 \ + _IOW('X', 122, struct compat_xfs_fsop_attrlist_handlereq) + +/* am_opcodes defined in xfs_fs.h */ +typedef struct compat_xfs_attr_multiop { + __u32 am_opcode; + __s32 am_error; + compat_uptr_t am_attrname; + compat_uptr_t am_attrvalue; + __u32 am_length; + __u32 am_flags; +} compat_xfs_attr_multiop_t; + +typedef struct compat_xfs_fsop_attrmulti_handlereq { + struct compat_xfs_fsop_handlereq hreq; /* handle interface structure */ + __u32 opcount;/* count of following multiop */ + /* ptr to compat_xfs_attr_multiop */ + compat_uptr_t ops; /* attr_multi data */ +} compat_xfs_fsop_attrmulti_handlereq_t; + +#define XFS_IOC_ATTRMULTI_BY_HANDLE_32 \ + _IOW('X', 123, struct compat_xfs_fsop_attrmulti_handlereq) + +typedef struct compat_xfs_fsop_setdm_handlereq { + struct compat_xfs_fsop_handlereq hreq; /* handle information */ + /* ptr to struct fsdmidata */ + compat_uptr_t data; /* DMAPI data */ +} compat_xfs_fsop_setdm_handlereq_t; + +#define XFS_IOC_FSSETDM_BY_HANDLE_32 \ + _IOW('X', 121, struct compat_xfs_fsop_setdm_handlereq) + +#ifdef BROKEN_X86_ALIGNMENT +/* on ia32 l_start is on a 32-bit boundary */ +typedef struct compat_xfs_flock64 { + __s16 l_type; + __s16 l_whence; + __s64 l_start __attribute__((packed)); + /* len == 0 means until end of file */ + __s64 l_len __attribute__((packed)); + __s32 l_sysid; + __u32 l_pid; + __s32 l_pad[4]; /* reserve area */ +} compat_xfs_flock64_t; + +#define XFS_IOC_ALLOCSP_32 _IOW('X', 10, struct compat_xfs_flock64) +#define XFS_IOC_FREESP_32 _IOW('X', 11, struct compat_xfs_flock64) +#define XFS_IOC_ALLOCSP64_32 _IOW('X', 36, struct compat_xfs_flock64) +#define XFS_IOC_FREESP64_32 _IOW('X', 37, struct compat_xfs_flock64) +#define XFS_IOC_RESVSP_32 _IOW('X', 40, struct compat_xfs_flock64) +#define XFS_IOC_UNRESVSP_32 _IOW('X', 41, struct compat_xfs_flock64) +#define XFS_IOC_RESVSP64_32 _IOW('X', 42, struct compat_xfs_flock64) +#define XFS_IOC_UNRESVSP64_32 _IOW('X', 43, struct compat_xfs_flock64) +#define XFS_IOC_ZERO_RANGE_32 _IOW('X', 57, struct compat_xfs_flock64) + +typedef struct compat_xfs_fsop_geom_v1 { + __u32 blocksize; /* filesystem (data) block size */ + __u32 rtextsize; /* realtime extent size */ + __u32 agblocks; /* fsblocks in an AG */ + __u32 agcount; /* number of allocation groups */ + __u32 logblocks; /* fsblocks in the log */ + __u32 sectsize; /* (data) sector size, bytes */ + __u32 inodesize; /* inode size in bytes */ + __u32 imaxpct; /* max allowed inode space(%) */ + __u64 datablocks; /* fsblocks in data subvolume */ + __u64 rtblocks; /* fsblocks in realtime subvol */ + __u64 rtextents; /* rt extents in realtime subvol*/ + __u64 logstart; /* starting fsblock of the log */ + unsigned char uuid[16]; /* unique id of the filesystem */ + __u32 sunit; /* stripe unit, fsblocks */ + __u32 swidth; /* stripe width, fsblocks */ + __s32 version; /* structure version */ + __u32 flags; /* superblock version flags */ + __u32 logsectsize; /* log sector size, bytes */ + __u32 rtsectsize; /* realtime sector size, bytes */ + __u32 dirblocksize; /* directory block size, bytes */ +} __attribute__((packed)) compat_xfs_fsop_geom_v1_t; + +#define XFS_IOC_FSGEOMETRY_V1_32 \ + _IOR('X', 100, struct compat_xfs_fsop_geom_v1) + +typedef struct compat_xfs_inogrp { + __u64 xi_startino; /* starting inode number */ + __s32 xi_alloccount; /* # bits set in allocmask */ + __u64 xi_allocmask; /* mask of allocated inodes */ +} __attribute__((packed)) compat_xfs_inogrp_t; + +/* These growfs input structures have padding on the end, so must translate */ +typedef struct compat_xfs_growfs_data { + __u64 newblocks; /* new data subvol size, fsblocks */ + __u32 imaxpct; /* new inode space percentage limit */ +} __attribute__((packed)) compat_xfs_growfs_data_t; + +typedef struct compat_xfs_growfs_rt { + __u64 newblocks; /* new realtime size, fsblocks */ + __u32 extsize; /* new realtime extent size, fsblocks */ +} __attribute__((packed)) compat_xfs_growfs_rt_t; + +#define XFS_IOC_FSGROWFSDATA_32 _IOW('X', 110, struct compat_xfs_growfs_data) +#define XFS_IOC_FSGROWFSRT_32 _IOW('X', 112, struct compat_xfs_growfs_rt) + +#endif /* BROKEN_X86_ALIGNMENT */ + +#endif /* __XFS_IOCTL32_H__ */ diff --git a/fs/xfs/linux/xfs_iops.c b/fs/xfs/linux/xfs_iops.c new file mode 100644 index 0000000..501e4f6 --- /dev/null +++ b/fs/xfs/linux/xfs_iops.c @@ -0,0 +1,1201 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_acl.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_alloc.h" +#include "xfs_quota.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_bmap.h" +#include "xfs_rtalloc.h" +#include "xfs_error.h" +#include "xfs_itable.h" +#include "xfs_rw.h" +#include "xfs_attr.h" +#include "xfs_buf_item.h" +#include "xfs_utils.h" +#include "xfs_vnodeops.h" +#include "xfs_inode_item.h" +#include "xfs_trace.h" + +#include +#include +#include +#include +#include +#include +#include + +/* + * Bring the timestamps in the XFS inode uptodate. + * + * Used before writing the inode to disk. + */ +void +xfs_synchronize_times( + xfs_inode_t *ip) +{ + struct inode *inode = VFS_I(ip); + + ip->i_d.di_atime.t_sec = (__int32_t)inode->i_atime.tv_sec; + ip->i_d.di_atime.t_nsec = (__int32_t)inode->i_atime.tv_nsec; + ip->i_d.di_ctime.t_sec = (__int32_t)inode->i_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = (__int32_t)inode->i_ctime.tv_nsec; + ip->i_d.di_mtime.t_sec = (__int32_t)inode->i_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = (__int32_t)inode->i_mtime.tv_nsec; +} + +/* + * If the linux inode is valid, mark it dirty. + * Used when committing a dirty inode into a transaction so that + * the inode will get written back by the linux code + */ +void +xfs_mark_inode_dirty_sync( + xfs_inode_t *ip) +{ + struct inode *inode = VFS_I(ip); + + if (!(inode->i_state & (I_WILL_FREE|I_FREEING))) + mark_inode_dirty_sync(inode); +} + +void +xfs_mark_inode_dirty( + xfs_inode_t *ip) +{ + struct inode *inode = VFS_I(ip); + + if (!(inode->i_state & (I_WILL_FREE|I_FREEING))) + mark_inode_dirty(inode); +} + +/* + * Hook in SELinux. This is not quite correct yet, what we really need + * here (as we do for default ACLs) is a mechanism by which creation of + * these attrs can be journalled at inode creation time (along with the + * inode, of course, such that log replay can't cause these to be lost). + */ +STATIC int +xfs_init_security( + struct inode *inode, + struct inode *dir, + const struct qstr *qstr) +{ + struct xfs_inode *ip = XFS_I(inode); + size_t length; + void *value; + unsigned char *name; + int error; + + error = security_inode_init_security(inode, dir, qstr, (char **)&name, + &value, &length); + if (error) { + if (error == -EOPNOTSUPP) + return 0; + return -error; + } + + error = xfs_attr_set(ip, name, value, length, ATTR_SECURE); + + kfree(name); + kfree(value); + return error; +} + +static void +xfs_dentry_to_name( + struct xfs_name *namep, + struct dentry *dentry) +{ + namep->name = dentry->d_name.name; + namep->len = dentry->d_name.len; +} + +STATIC void +xfs_cleanup_inode( + struct inode *dir, + struct inode *inode, + struct dentry *dentry) +{ + struct xfs_name teardown; + + /* Oh, the horror. + * If we can't add the ACL or we fail in + * xfs_init_security we must back out. + * ENOSPC can hit here, among other things. + */ + xfs_dentry_to_name(&teardown, dentry); + + xfs_remove(XFS_I(dir), &teardown, XFS_I(inode)); + iput(inode); +} + +STATIC int +xfs_vn_mknod( + struct inode *dir, + struct dentry *dentry, + int mode, + dev_t rdev) +{ + struct inode *inode; + struct xfs_inode *ip = NULL; + struct posix_acl *default_acl = NULL; + struct xfs_name name; + int error; + + /* + * Irix uses Missed'em'V split, but doesn't want to see + * the upper 5 bits of (14bit) major. + */ + if (S_ISCHR(mode) || S_ISBLK(mode)) { + if (unlikely(!sysv_valid_dev(rdev) || MAJOR(rdev) & ~0x1ff)) + return -EINVAL; + rdev = sysv_encode_dev(rdev); + } else { + rdev = 0; + } + + if (IS_POSIXACL(dir)) { + default_acl = xfs_get_acl(dir, ACL_TYPE_DEFAULT); + if (IS_ERR(default_acl)) + return PTR_ERR(default_acl); + + if (!default_acl) + mode &= ~current_umask(); + } + + xfs_dentry_to_name(&name, dentry); + error = xfs_create(XFS_I(dir), &name, mode, rdev, &ip); + if (unlikely(error)) + goto out_free_acl; + + inode = VFS_I(ip); + + error = xfs_init_security(inode, dir, &dentry->d_name); + if (unlikely(error)) + goto out_cleanup_inode; + + if (default_acl) { + error = -xfs_inherit_acl(inode, default_acl); + if (unlikely(error)) + goto out_cleanup_inode; + posix_acl_release(default_acl); + } + + + d_instantiate(dentry, inode); + return -error; + + out_cleanup_inode: + xfs_cleanup_inode(dir, inode, dentry); + out_free_acl: + posix_acl_release(default_acl); + return -error; +} + +STATIC int +xfs_vn_create( + struct inode *dir, + struct dentry *dentry, + int mode, + struct nameidata *nd) +{ + return xfs_vn_mknod(dir, dentry, mode, 0); +} + +STATIC int +xfs_vn_mkdir( + struct inode *dir, + struct dentry *dentry, + int mode) +{ + return xfs_vn_mknod(dir, dentry, mode|S_IFDIR, 0); +} + +STATIC struct dentry * +xfs_vn_lookup( + struct inode *dir, + struct dentry *dentry, + struct nameidata *nd) +{ + struct xfs_inode *cip; + struct xfs_name name; + int error; + + if (dentry->d_name.len >= MAXNAMELEN) + return ERR_PTR(-ENAMETOOLONG); + + xfs_dentry_to_name(&name, dentry); + error = xfs_lookup(XFS_I(dir), &name, &cip, NULL); + if (unlikely(error)) { + if (unlikely(error != ENOENT)) + return ERR_PTR(-error); + d_add(dentry, NULL); + return NULL; + } + + return d_splice_alias(VFS_I(cip), dentry); +} + +STATIC struct dentry * +xfs_vn_ci_lookup( + struct inode *dir, + struct dentry *dentry, + struct nameidata *nd) +{ + struct xfs_inode *ip; + struct xfs_name xname; + struct xfs_name ci_name; + struct qstr dname; + int error; + + if (dentry->d_name.len >= MAXNAMELEN) + return ERR_PTR(-ENAMETOOLONG); + + xfs_dentry_to_name(&xname, dentry); + error = xfs_lookup(XFS_I(dir), &xname, &ip, &ci_name); + if (unlikely(error)) { + if (unlikely(error != ENOENT)) + return ERR_PTR(-error); + /* + * call d_add(dentry, NULL) here when d_drop_negative_children + * is called in xfs_vn_mknod (ie. allow negative dentries + * with CI filesystems). + */ + return NULL; + } + + /* if exact match, just splice and exit */ + if (!ci_name.name) + return d_splice_alias(VFS_I(ip), dentry); + + /* else case-insensitive match... */ + dname.name = ci_name.name; + dname.len = ci_name.len; + dentry = d_add_ci(dentry, VFS_I(ip), &dname); + kmem_free(ci_name.name); + return dentry; +} + +STATIC int +xfs_vn_link( + struct dentry *old_dentry, + struct inode *dir, + struct dentry *dentry) +{ + struct inode *inode = old_dentry->d_inode; + struct xfs_name name; + int error; + + xfs_dentry_to_name(&name, dentry); + + error = xfs_link(XFS_I(dir), XFS_I(inode), &name); + if (unlikely(error)) + return -error; + + ihold(inode); + d_instantiate(dentry, inode); + return 0; +} + +STATIC int +xfs_vn_unlink( + struct inode *dir, + struct dentry *dentry) +{ + struct xfs_name name; + int error; + + xfs_dentry_to_name(&name, dentry); + + error = -xfs_remove(XFS_I(dir), &name, XFS_I(dentry->d_inode)); + if (error) + return error; + + /* + * With unlink, the VFS makes the dentry "negative": no inode, + * but still hashed. This is incompatible with case-insensitive + * mode, so invalidate (unhash) the dentry in CI-mode. + */ + if (xfs_sb_version_hasasciici(&XFS_M(dir->i_sb)->m_sb)) + d_invalidate(dentry); + return 0; +} + +STATIC int +xfs_vn_symlink( + struct inode *dir, + struct dentry *dentry, + const char *symname) +{ + struct inode *inode; + struct xfs_inode *cip = NULL; + struct xfs_name name; + int error; + mode_t mode; + + mode = S_IFLNK | + (irix_symlink_mode ? 0777 & ~current_umask() : S_IRWXUGO); + xfs_dentry_to_name(&name, dentry); + + error = xfs_symlink(XFS_I(dir), &name, symname, mode, &cip); + if (unlikely(error)) + goto out; + + inode = VFS_I(cip); + + error = xfs_init_security(inode, dir, &dentry->d_name); + if (unlikely(error)) + goto out_cleanup_inode; + + d_instantiate(dentry, inode); + return 0; + + out_cleanup_inode: + xfs_cleanup_inode(dir, inode, dentry); + out: + return -error; +} + +STATIC int +xfs_vn_rename( + struct inode *odir, + struct dentry *odentry, + struct inode *ndir, + struct dentry *ndentry) +{ + struct inode *new_inode = ndentry->d_inode; + struct xfs_name oname; + struct xfs_name nname; + + xfs_dentry_to_name(&oname, odentry); + xfs_dentry_to_name(&nname, ndentry); + + return -xfs_rename(XFS_I(odir), &oname, XFS_I(odentry->d_inode), + XFS_I(ndir), &nname, new_inode ? + XFS_I(new_inode) : NULL); +} + +/* + * careful here - this function can get called recursively, so + * we need to be very careful about how much stack we use. + * uio is kmalloced for this reason... + */ +STATIC void * +xfs_vn_follow_link( + struct dentry *dentry, + struct nameidata *nd) +{ + char *link; + int error = -ENOMEM; + + link = kmalloc(MAXPATHLEN+1, GFP_KERNEL); + if (!link) + goto out_err; + + error = -xfs_readlink(XFS_I(dentry->d_inode), link); + if (unlikely(error)) + goto out_kfree; + + nd_set_link(nd, link); + return NULL; + + out_kfree: + kfree(link); + out_err: + nd_set_link(nd, ERR_PTR(error)); + return NULL; +} + +STATIC void +xfs_vn_put_link( + struct dentry *dentry, + struct nameidata *nd, + void *p) +{ + char *s = nd_get_link(nd); + + if (!IS_ERR(s)) + kfree(s); +} + +STATIC int +xfs_vn_getattr( + struct vfsmount *mnt, + struct dentry *dentry, + struct kstat *stat) +{ + struct inode *inode = dentry->d_inode; + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + + trace_xfs_getattr(ip); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + stat->size = XFS_ISIZE(ip); + stat->dev = inode->i_sb->s_dev; + stat->mode = ip->i_d.di_mode; + stat->nlink = ip->i_d.di_nlink; + stat->uid = ip->i_d.di_uid; + stat->gid = ip->i_d.di_gid; + stat->ino = ip->i_ino; + stat->atime = inode->i_atime; + stat->mtime = inode->i_mtime; + stat->ctime = inode->i_ctime; + stat->blocks = + XFS_FSB_TO_BB(mp, ip->i_d.di_nblocks + ip->i_delayed_blks); + + + switch (inode->i_mode & S_IFMT) { + case S_IFBLK: + case S_IFCHR: + stat->blksize = BLKDEV_IOSIZE; + stat->rdev = MKDEV(sysv_major(ip->i_df.if_u2.if_rdev) & 0x1ff, + sysv_minor(ip->i_df.if_u2.if_rdev)); + break; + default: + if (XFS_IS_REALTIME_INODE(ip)) { + /* + * If the file blocks are being allocated from a + * realtime volume, then return the inode's realtime + * extent size or the realtime volume's extent size. + */ + stat->blksize = + xfs_get_extsz_hint(ip) << mp->m_sb.sb_blocklog; + } else + stat->blksize = xfs_preferred_iosize(mp); + stat->rdev = 0; + break; + } + + return 0; +} + +int +xfs_setattr_nonsize( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + xfs_mount_t *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + xfs_trans_t *tp; + int error; + uid_t uid = 0, iuid = 0; + gid_t gid = 0, igid = 0; + struct xfs_dquot *udqp = NULL, *gdqp = NULL; + struct xfs_dquot *olddquot1 = NULL, *olddquot2 = NULL; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT((mask & ATTR_SIZE) == 0); + + /* + * If disk quotas is on, we make sure that the dquots do exist on disk, + * before we start any other transactions. Trying to do this later + * is messy. We don't care to take a readlock to look at the ids + * in inode here, because we can't hold it across the trans_reserve. + * If the IDs do change before we take the ilock, we're covered + * because the i_*dquot fields will get updated anyway. + */ + if (XFS_IS_QUOTA_ON(mp) && (mask & (ATTR_UID|ATTR_GID))) { + uint qflags = 0; + + if ((mask & ATTR_UID) && XFS_IS_UQUOTA_ON(mp)) { + uid = iattr->ia_uid; + qflags |= XFS_QMOPT_UQUOTA; + } else { + uid = ip->i_d.di_uid; + } + if ((mask & ATTR_GID) && XFS_IS_GQUOTA_ON(mp)) { + gid = iattr->ia_gid; + qflags |= XFS_QMOPT_GQUOTA; + } else { + gid = ip->i_d.di_gid; + } + + /* + * We take a reference when we initialize udqp and gdqp, + * so it is important that we never blindly double trip on + * the same variable. See xfs_create() for an example. + */ + ASSERT(udqp == NULL); + ASSERT(gdqp == NULL); + error = xfs_qm_vop_dqalloc(ip, uid, gid, xfs_get_projid(ip), + qflags, &udqp, &gdqp); + if (error) + return error; + } + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0); + if (error) + goto out_dqrele; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * These IDs could have changed since we last looked at them. + * But, we're assured that if the ownership did change + * while we didn't have the inode locked, inode's dquot(s) + * would have changed also. + */ + iuid = ip->i_d.di_uid; + igid = ip->i_d.di_gid; + gid = (mask & ATTR_GID) ? iattr->ia_gid : igid; + uid = (mask & ATTR_UID) ? iattr->ia_uid : iuid; + + /* + * Do a quota reservation only if uid/gid is actually + * going to change. + */ + if (XFS_IS_QUOTA_RUNNING(mp) && + ((XFS_IS_UQUOTA_ON(mp) && iuid != uid) || + (XFS_IS_GQUOTA_ON(mp) && igid != gid))) { + ASSERT(tp); + error = xfs_qm_vop_chown_reserve(tp, ip, udqp, gdqp, + capable(CAP_FOWNER) ? + XFS_QMOPT_FORCE_RES : 0); + if (error) /* out of quota */ + goto out_trans_cancel; + } + } + + xfs_trans_ijoin(tp, ip); + + /* + * Change file ownership. Must be the owner or privileged. + */ + if (mask & (ATTR_UID|ATTR_GID)) { + /* + * CAP_FSETID overrides the following restrictions: + * + * The set-user-ID and set-group-ID bits of a file will be + * cleared upon successful return from chown() + */ + if ((ip->i_d.di_mode & (S_ISUID|S_ISGID)) && + !capable(CAP_FSETID)) + ip->i_d.di_mode &= ~(S_ISUID|S_ISGID); + + /* + * Change the ownerships and register quota modifications + * in the transaction. + */ + if (iuid != uid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_UQUOTA_ON(mp)) { + ASSERT(mask & ATTR_UID); + ASSERT(udqp); + olddquot1 = xfs_qm_vop_chown(tp, ip, + &ip->i_udquot, udqp); + } + ip->i_d.di_uid = uid; + inode->i_uid = uid; + } + if (igid != gid) { + if (XFS_IS_QUOTA_RUNNING(mp) && XFS_IS_GQUOTA_ON(mp)) { + ASSERT(!XFS_IS_PQUOTA_ON(mp)); + ASSERT(mask & ATTR_GID); + ASSERT(gdqp); + olddquot2 = xfs_qm_vop_chown(tp, ip, + &ip->i_gdquot, gdqp); + } + ip->i_d.di_gid = gid; + inode->i_gid = gid; + } + } + + /* + * Change file access modes. + */ + if (mask & ATTR_MODE) { + umode_t mode = iattr->ia_mode; + + if (!in_group_p(inode->i_gid) && !capable(CAP_FSETID)) + mode &= ~S_ISGID; + + ip->i_d.di_mode &= S_IFMT; + ip->i_d.di_mode |= mode & ~S_IFMT; + + inode->i_mode &= S_IFMT; + inode->i_mode |= mode & ~S_IFMT; + } + + /* + * Change file access or modified times. + */ + if (mask & ATTR_ATIME) { + inode->i_atime = iattr->ia_atime; + ip->i_d.di_atime.t_sec = iattr->ia_atime.tv_sec; + ip->i_d.di_atime.t_nsec = iattr->ia_atime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + error = xfs_trans_commit(tp, 0); + + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + /* + * Release any dquot(s) the inode had kept before chown. + */ + xfs_qm_dqrele(olddquot1); + xfs_qm_dqrele(olddquot2); + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + + if (error) + return XFS_ERROR(error); + + /* + * XXX(hch): Updating the ACL entries is not atomic vs the i_mode + * update. We could avoid this with linked transactions + * and passing down the transaction pointer all the way + * to attr_set. No previous user of the generic + * Posix ACL code seems to care about this issue either. + */ + if ((mask & ATTR_MODE) && !(flags & XFS_ATTR_NOACL)) { + error = -xfs_acl_chmod(inode); + if (error) + return XFS_ERROR(error); + } + + return 0; + +out_trans_cancel: + xfs_trans_cancel(tp, 0); + xfs_iunlock(ip, XFS_ILOCK_EXCL); +out_dqrele: + xfs_qm_dqrele(udqp); + xfs_qm_dqrele(gdqp); + return error; +} + +/* + * Truncate file. Must have write permission and not be a directory. + */ +int +xfs_setattr_size( + struct xfs_inode *ip, + struct iattr *iattr, + int flags) +{ + struct xfs_mount *mp = ip->i_mount; + struct inode *inode = VFS_I(ip); + int mask = iattr->ia_valid; + struct xfs_trans *tp; + int error; + uint lock_flags; + uint commit_flags = 0; + + trace_xfs_setattr(ip); + + if (mp->m_flags & XFS_MOUNT_RDONLY) + return XFS_ERROR(EROFS); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + error = -inode_change_ok(inode, iattr); + if (error) + return XFS_ERROR(error); + + ASSERT(S_ISREG(ip->i_d.di_mode)); + ASSERT((mask & (ATTR_MODE|ATTR_UID|ATTR_GID|ATTR_ATIME|ATTR_ATIME_SET| + ATTR_MTIME_SET|ATTR_KILL_SUID|ATTR_KILL_SGID| + ATTR_KILL_PRIV|ATTR_TIMES_SET)) == 0); + + lock_flags = XFS_ILOCK_EXCL; + if (!(flags & XFS_ATTR_NOLOCK)) + lock_flags |= XFS_IOLOCK_EXCL; + xfs_ilock(ip, lock_flags); + + /* + * Short circuit the truncate case for zero length files. + */ + if (iattr->ia_size == 0 && + ip->i_size == 0 && ip->i_d.di_nextents == 0) { + if (!(mask & (ATTR_CTIME|ATTR_MTIME))) + goto out_unlock; + + /* + * Use the regular setattr path to update the timestamps. + */ + xfs_iunlock(ip, lock_flags); + iattr->ia_valid &= ~ATTR_SIZE; + return xfs_setattr_nonsize(ip, iattr, 0); + } + + /* + * Make sure that the dquots are attached to the inode. + */ + error = xfs_qm_dqattach_locked(ip, 0); + if (error) + goto out_unlock; + + /* + * Now we can make the changes. Before we join the inode to the + * transaction, take care of the part of the truncation that must be + * done without the inode lock. This needs to be done before joining + * the inode to the transaction, because the inode cannot be unlocked + * once it is a part of the transaction. + */ + if (iattr->ia_size > ip->i_size) { + /* + * Do the first part of growing a file: zero any data in the + * last block that is beyond the old EOF. We need to do this + * before the inode is joined to the transaction to modify + * i_size. + */ + error = xfs_zero_eof(ip, iattr->ia_size, ip->i_size); + if (error) + goto out_unlock; + } + xfs_iunlock(ip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; + + /* + * We are going to log the inode size change in this transaction so + * any previous writes that are beyond the on disk EOF and the new + * EOF that have not been written out need to be written here. If we + * do not write the data out, we expose ourselves to the null files + * problem. + * + * Only flush from the on disk size to the smaller of the in memory + * file size or the new size as that's the range we really care about + * here and prevents waiting for other data not within the range we + * care about here. + */ + if (ip->i_size != ip->i_d.di_size && iattr->ia_size > ip->i_d.di_size) { + error = xfs_flush_pages(ip, ip->i_d.di_size, iattr->ia_size, + XBF_ASYNC, FI_NONE); + if (error) + goto out_unlock; + } + + /* + * Wait for all I/O to complete. + */ + xfs_ioend_wait(ip); + + error = -block_truncate_page(inode->i_mapping, iattr->ia_size, + xfs_get_blocks); + if (error) + goto out_unlock; + + tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE); + error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, + XFS_TRANS_PERM_LOG_RES, + XFS_ITRUNCATE_LOG_COUNT); + if (error) + goto out_trans_cancel; + + truncate_setsize(inode, iattr->ia_size); + + commit_flags = XFS_TRANS_RELEASE_LOG_RES; + lock_flags |= XFS_ILOCK_EXCL; + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + xfs_trans_ijoin(tp, ip); + + /* + * Only change the c/mtime if we are changing the size or we are + * explicitly asked to change it. This handles the semantic difference + * between truncate() and ftruncate() as implemented in the VFS. + * + * The regular truncate() case without ATTR_CTIME and ATTR_MTIME is a + * special case where we need to update the times despite not having + * these flags set. For all other operations the VFS set these flags + * explicitly if it wants a timestamp update. + */ + if (iattr->ia_size != ip->i_size && + (!(mask & (ATTR_CTIME | ATTR_MTIME)))) { + iattr->ia_ctime = iattr->ia_mtime = + current_fs_time(inode->i_sb); + mask |= ATTR_CTIME | ATTR_MTIME; + } + + if (iattr->ia_size > ip->i_size) { + ip->i_d.di_size = iattr->ia_size; + ip->i_size = iattr->ia_size; + } else if (iattr->ia_size <= ip->i_size || + (iattr->ia_size == 0 && ip->i_d.di_nextents)) { + error = xfs_itruncate_data(&tp, ip, iattr->ia_size); + if (error) + goto out_trans_abort; + + /* + * Truncated "down", so we're removing references to old data + * here - if we delay flushing for a long time, we expose + * ourselves unduly to the notorious NULL files problem. So, + * we mark this inode and flush it when the file is closed, + * and do not wait the usual (long) time for writeout. + */ + xfs_iflags_set(ip, XFS_ITRUNCATED); + } + + if (mask & ATTR_CTIME) { + inode->i_ctime = iattr->ia_ctime; + ip->i_d.di_ctime.t_sec = iattr->ia_ctime.tv_sec; + ip->i_d.di_ctime.t_nsec = iattr->ia_ctime.tv_nsec; + ip->i_update_core = 1; + } + if (mask & ATTR_MTIME) { + inode->i_mtime = iattr->ia_mtime; + ip->i_d.di_mtime.t_sec = iattr->ia_mtime.tv_sec; + ip->i_d.di_mtime.t_nsec = iattr->ia_mtime.tv_nsec; + ip->i_update_core = 1; + } + + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + + XFS_STATS_INC(xs_ig_attrchg); + + if (mp->m_flags & XFS_MOUNT_WSYNC) + xfs_trans_set_sync(tp); + + error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES); +out_unlock: + if (lock_flags) + xfs_iunlock(ip, lock_flags); + return error; + +out_trans_abort: + commit_flags |= XFS_TRANS_ABORT; +out_trans_cancel: + xfs_trans_cancel(tp, commit_flags); + goto out_unlock; +} + +STATIC int +xfs_vn_setattr( + struct dentry *dentry, + struct iattr *iattr) +{ + if (iattr->ia_valid & ATTR_SIZE) + return -xfs_setattr_size(XFS_I(dentry->d_inode), iattr, 0); + return -xfs_setattr_nonsize(XFS_I(dentry->d_inode), iattr, 0); +} + +#define XFS_FIEMAP_FLAGS (FIEMAP_FLAG_SYNC|FIEMAP_FLAG_XATTR) + +/* + * Call fiemap helper to fill in user data. + * Returns positive errors to xfs_getbmap. + */ +STATIC int +xfs_fiemap_format( + void **arg, + struct getbmapx *bmv, + int *full) +{ + int error; + struct fiemap_extent_info *fieinfo = *arg; + u32 fiemap_flags = 0; + u64 logical, physical, length; + + /* Do nothing for a hole */ + if (bmv->bmv_block == -1LL) + return 0; + + logical = BBTOB(bmv->bmv_offset); + physical = BBTOB(bmv->bmv_block); + length = BBTOB(bmv->bmv_length); + + if (bmv->bmv_oflags & BMV_OF_PREALLOC) + fiemap_flags |= FIEMAP_EXTENT_UNWRITTEN; + else if (bmv->bmv_oflags & BMV_OF_DELALLOC) { + fiemap_flags |= FIEMAP_EXTENT_DELALLOC; + physical = 0; /* no block yet */ + } + if (bmv->bmv_oflags & BMV_OF_LAST) + fiemap_flags |= FIEMAP_EXTENT_LAST; + + error = fiemap_fill_next_extent(fieinfo, logical, physical, + length, fiemap_flags); + if (error > 0) { + error = 0; + *full = 1; /* user array now full */ + } + + return -error; +} + +STATIC int +xfs_vn_fiemap( + struct inode *inode, + struct fiemap_extent_info *fieinfo, + u64 start, + u64 length) +{ + xfs_inode_t *ip = XFS_I(inode); + struct getbmapx bm; + int error; + + error = fiemap_check_flags(fieinfo, XFS_FIEMAP_FLAGS); + if (error) + return error; + + /* Set up bmap header for xfs internal routine */ + bm.bmv_offset = BTOBB(start); + /* Special case for whole file */ + if (length == FIEMAP_MAX_OFFSET) + bm.bmv_length = -1LL; + else + bm.bmv_length = BTOBB(length); + + /* We add one because in getbmap world count includes the header */ + bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : + fieinfo->fi_extents_max + 1; + bm.bmv_count = min_t(__s32, bm.bmv_count, + (PAGE_SIZE * 16 / sizeof(struct getbmapx))); + bm.bmv_iflags = BMV_IF_PREALLOC | BMV_IF_NO_HOLES; + if (fieinfo->fi_flags & FIEMAP_FLAG_XATTR) + bm.bmv_iflags |= BMV_IF_ATTRFORK; + if (!(fieinfo->fi_flags & FIEMAP_FLAG_SYNC)) + bm.bmv_iflags |= BMV_IF_DELALLOC; + + error = xfs_getbmap(ip, &bm, xfs_fiemap_format, fieinfo); + if (error) + return -error; + + return 0; +} + +static const struct inode_operations xfs_inode_operations = { + .check_acl = xfs_check_acl, + .getattr = xfs_vn_getattr, + .setattr = xfs_vn_setattr, + .setxattr = generic_setxattr, + .getxattr = generic_getxattr, + .removexattr = generic_removexattr, + .listxattr = xfs_vn_listxattr, + .fiemap = xfs_vn_fiemap, +}; + +static const struct inode_operations xfs_dir_inode_operations = { + .create = xfs_vn_create, + .lookup = xfs_vn_lookup, + .link = xfs_vn_link, + .unlink = xfs_vn_unlink, + .symlink = xfs_vn_symlink, + .mkdir = xfs_vn_mkdir, + /* + * Yes, XFS uses the same method for rmdir and unlink. + * + * There are some subtile differences deeper in the code, + * but we use S_ISDIR to check for those. + */ + .rmdir = xfs_vn_unlink, + .mknod = xfs_vn_mknod, + .rename = xfs_vn_rename, + .check_acl = xfs_check_acl, + .getattr = xfs_vn_getattr, + .setattr = xfs_vn_setattr, + .setxattr = generic_setxattr, + .getxattr = generic_getxattr, + .removexattr = generic_removexattr, + .listxattr = xfs_vn_listxattr, +}; + +static const struct inode_operations xfs_dir_ci_inode_operations = { + .create = xfs_vn_create, + .lookup = xfs_vn_ci_lookup, + .link = xfs_vn_link, + .unlink = xfs_vn_unlink, + .symlink = xfs_vn_symlink, + .mkdir = xfs_vn_mkdir, + /* + * Yes, XFS uses the same method for rmdir and unlink. + * + * There are some subtile differences deeper in the code, + * but we use S_ISDIR to check for those. + */ + .rmdir = xfs_vn_unlink, + .mknod = xfs_vn_mknod, + .rename = xfs_vn_rename, + .check_acl = xfs_check_acl, + .getattr = xfs_vn_getattr, + .setattr = xfs_vn_setattr, + .setxattr = generic_setxattr, + .getxattr = generic_getxattr, + .removexattr = generic_removexattr, + .listxattr = xfs_vn_listxattr, +}; + +static const struct inode_operations xfs_symlink_inode_operations = { + .readlink = generic_readlink, + .follow_link = xfs_vn_follow_link, + .put_link = xfs_vn_put_link, + .check_acl = xfs_check_acl, + .getattr = xfs_vn_getattr, + .setattr = xfs_vn_setattr, + .setxattr = generic_setxattr, + .getxattr = generic_getxattr, + .removexattr = generic_removexattr, + .listxattr = xfs_vn_listxattr, +}; + +STATIC void +xfs_diflags_to_iflags( + struct inode *inode, + struct xfs_inode *ip) +{ + if (ip->i_d.di_flags & XFS_DIFLAG_IMMUTABLE) + inode->i_flags |= S_IMMUTABLE; + else + inode->i_flags &= ~S_IMMUTABLE; + if (ip->i_d.di_flags & XFS_DIFLAG_APPEND) + inode->i_flags |= S_APPEND; + else + inode->i_flags &= ~S_APPEND; + if (ip->i_d.di_flags & XFS_DIFLAG_SYNC) + inode->i_flags |= S_SYNC; + else + inode->i_flags &= ~S_SYNC; + if (ip->i_d.di_flags & XFS_DIFLAG_NOATIME) + inode->i_flags |= S_NOATIME; + else + inode->i_flags &= ~S_NOATIME; +} + +/* + * Initialize the Linux inode, set up the operation vectors and + * unlock the inode. + * + * When reading existing inodes from disk this is called directly + * from xfs_iget, when creating a new inode it is called from + * xfs_ialloc after setting up the inode. + * + * We are always called with an uninitialised linux inode here. + * We need to initialise the necessary fields and take a reference + * on it. + */ +void +xfs_setup_inode( + struct xfs_inode *ip) +{ + struct inode *inode = &ip->i_vnode; + + inode->i_ino = ip->i_ino; + inode->i_state = I_NEW; + + inode_sb_list_add(inode); + /* make the inode look hashed for the writeback code */ + hlist_add_fake(&inode->i_hash); + + inode->i_mode = ip->i_d.di_mode; + inode->i_nlink = ip->i_d.di_nlink; + inode->i_uid = ip->i_d.di_uid; + inode->i_gid = ip->i_d.di_gid; + + switch (inode->i_mode & S_IFMT) { + case S_IFBLK: + case S_IFCHR: + inode->i_rdev = + MKDEV(sysv_major(ip->i_df.if_u2.if_rdev) & 0x1ff, + sysv_minor(ip->i_df.if_u2.if_rdev)); + break; + default: + inode->i_rdev = 0; + break; + } + + inode->i_generation = ip->i_d.di_gen; + i_size_write(inode, ip->i_d.di_size); + inode->i_atime.tv_sec = ip->i_d.di_atime.t_sec; + inode->i_atime.tv_nsec = ip->i_d.di_atime.t_nsec; + inode->i_mtime.tv_sec = ip->i_d.di_mtime.t_sec; + inode->i_mtime.tv_nsec = ip->i_d.di_mtime.t_nsec; + inode->i_ctime.tv_sec = ip->i_d.di_ctime.t_sec; + inode->i_ctime.tv_nsec = ip->i_d.di_ctime.t_nsec; + xfs_diflags_to_iflags(inode, ip); + + switch (inode->i_mode & S_IFMT) { + case S_IFREG: + inode->i_op = &xfs_inode_operations; + inode->i_fop = &xfs_file_operations; + inode->i_mapping->a_ops = &xfs_address_space_operations; + break; + case S_IFDIR: + if (xfs_sb_version_hasasciici(&XFS_M(inode->i_sb)->m_sb)) + inode->i_op = &xfs_dir_ci_inode_operations; + else + inode->i_op = &xfs_dir_inode_operations; + inode->i_fop = &xfs_dir_file_operations; + break; + case S_IFLNK: + inode->i_op = &xfs_symlink_inode_operations; + if (!(ip->i_df.if_flags & XFS_IFINLINE)) + inode->i_mapping->a_ops = &xfs_address_space_operations; + break; + default: + inode->i_op = &xfs_inode_operations; + init_special_inode(inode, inode->i_mode, inode->i_rdev); + break; + } + + xfs_iflags_clear(ip, XFS_INEW); + barrier(); + + unlock_new_inode(inode); +} diff --git a/fs/xfs/linux/xfs_iops.h b/fs/xfs/linux/xfs_iops.h new file mode 100644 index 0000000..ef41c92 --- /dev/null +++ b/fs/xfs/linux/xfs_iops.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_IOPS_H__ +#define __XFS_IOPS_H__ + +struct xfs_inode; + +extern const struct file_operations xfs_file_operations; +extern const struct file_operations xfs_dir_file_operations; + +extern ssize_t xfs_vn_listxattr(struct dentry *, char *data, size_t size); + +extern void xfs_setup_inode(struct xfs_inode *); + +#endif /* __XFS_IOPS_H__ */ diff --git a/fs/xfs/linux/xfs_linux.h b/fs/xfs/linux/xfs_linux.h new file mode 100644 index 0000000..d42f814 --- /dev/null +++ b/fs/xfs/linux/xfs_linux.h @@ -0,0 +1,310 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_LINUX__ +#define __XFS_LINUX__ + +#include + +/* + * XFS_BIG_BLKNOS needs block layer disk addresses to be 64 bits. + * XFS_BIG_INUMS requires XFS_BIG_BLKNOS to be set. + */ +#if defined(CONFIG_LBDAF) || (BITS_PER_LONG == 64) +# define XFS_BIG_BLKNOS 1 +# define XFS_BIG_INUMS 1 +#else +# define XFS_BIG_BLKNOS 0 +# define XFS_BIG_INUMS 0 +#endif + +#include + +#include +#include +#include + +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef __BIG_ENDIAN +#define XFS_NATIVE_HOST 1 +#else +#undef XFS_NATIVE_HOST +#endif + +/* + * Feature macros (disable/enable) + */ +#ifdef CONFIG_SMP +#define HAVE_PERCPU_SB /* per cpu superblock counters are a 2.6 feature */ +#else +#undef HAVE_PERCPU_SB /* per cpu superblock counters are a 2.6 feature */ +#endif + +#define irix_sgid_inherit xfs_params.sgid_inherit.val +#define irix_symlink_mode xfs_params.symlink_mode.val +#define xfs_panic_mask xfs_params.panic_mask.val +#define xfs_error_level xfs_params.error_level.val +#define xfs_syncd_centisecs xfs_params.syncd_timer.val +#define xfs_stats_clear xfs_params.stats_clear.val +#define xfs_inherit_sync xfs_params.inherit_sync.val +#define xfs_inherit_nodump xfs_params.inherit_nodump.val +#define xfs_inherit_noatime xfs_params.inherit_noatim.val +#define xfs_buf_timer_centisecs xfs_params.xfs_buf_timer.val +#define xfs_buf_age_centisecs xfs_params.xfs_buf_age.val +#define xfs_inherit_nosymlinks xfs_params.inherit_nosym.val +#define xfs_rotorstep xfs_params.rotorstep.val +#define xfs_inherit_nodefrag xfs_params.inherit_nodfrg.val +#define xfs_fstrm_centisecs xfs_params.fstrm_timer.val + +#define current_cpu() (raw_smp_processor_id()) +#define current_pid() (current->pid) +#define current_test_flags(f) (current->flags & (f)) +#define current_set_flags_nested(sp, f) \ + (*(sp) = current->flags, current->flags |= (f)) +#define current_clear_flags_nested(sp, f) \ + (*(sp) = current->flags, current->flags &= ~(f)) +#define current_restore_flags_nested(sp, f) \ + (current->flags = ((current->flags & ~(f)) | (*(sp) & (f)))) + +#define spinlock_destroy(lock) + +#define NBBY 8 /* number of bits per byte */ + +/* + * Size of block device i/o is parameterized here. + * Currently the system supports page-sized i/o. + */ +#define BLKDEV_IOSHIFT PAGE_CACHE_SHIFT +#define BLKDEV_IOSIZE (1<> 32; + __low = c; + if (__high) { + __upper = __high % (b); + __high = __high / (b); + } + asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper)); + asm("":"=A" (c):"a" (__low),"d" (__high)); + *(__u64 *)a = c; + return __mod; + } + } + + /* NOTREACHED */ + return 0; +} + +/* Side effect free 64 bit mod operation */ +static inline __u32 xfs_do_mod(void *a, __u32 b, int n) +{ + switch (n) { + case 4: + return *(__u32 *)a % b; + case 8: + { + unsigned long __upper, __low, __high, __mod; + __u64 c = *(__u64 *)a; + __upper = __high = c >> 32; + __low = c; + if (__high) { + __upper = __high % (b); + __high = __high / (b); + } + asm("divl %2":"=a" (__low), "=d" (__mod):"rm" (b), "0" (__low), "1" (__upper)); + asm("":"=A" (c):"a" (__low),"d" (__high)); + return __mod; + } + } + + /* NOTREACHED */ + return 0; +} +#else +static inline __u32 xfs_do_div(void *a, __u32 b, int n) +{ + __u32 mod; + + switch (n) { + case 4: + mod = *(__u32 *)a % b; + *(__u32 *)a = *(__u32 *)a / b; + return mod; + case 8: + mod = do_div(*(__u64 *)a, b); + return mod; + } + + /* NOTREACHED */ + return 0; +} + +/* Side effect free 64 bit mod operation */ +static inline __u32 xfs_do_mod(void *a, __u32 b, int n) +{ + switch (n) { + case 4: + return *(__u32 *)a % b; + case 8: + { + __u64 c = *(__u64 *)a; + return do_div(c, b); + } + } + + /* NOTREACHED */ + return 0; +} +#endif + +#undef do_div +#define do_div(a, b) xfs_do_div(&(a), (b), sizeof(a)) +#define do_mod(a, b) xfs_do_mod(&(a), (b), sizeof(a)) + +static inline __uint64_t roundup_64(__uint64_t x, __uint32_t y) +{ + x += y - 1; + do_div(x, y); + return(x * y); +} + +static inline __uint64_t howmany_64(__uint64_t x, __uint32_t y) +{ + x += y - 1; + do_div(x, y); + return x; +} + +/* ARM old ABI has some weird alignment/padding */ +#if defined(__arm__) && !defined(__ARM_EABI__) +#define __arch_pack __attribute__((packed)) +#else +#define __arch_pack +#endif + +#define ASSERT_ALWAYS(expr) \ + (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__)) + +#ifndef DEBUG +#define ASSERT(expr) ((void)0) + +#ifndef STATIC +# define STATIC static noinline +#endif + +#else /* DEBUG */ + +#define ASSERT(expr) \ + (unlikely(expr) ? (void)0 : assfail(#expr, __FILE__, __LINE__)) + +#ifndef STATIC +# define STATIC noinline +#endif + +#endif /* DEBUG */ + +#endif /* __XFS_LINUX__ */ diff --git a/fs/xfs/linux/xfs_message.c b/fs/xfs/linux/xfs_message.c new file mode 100644 index 0000000..bd672de --- /dev/null +++ b/fs/xfs/linux/xfs_message.c @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2011 Red Hat, Inc. All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_types.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_mount.h" + +/* + * XFS logging functions + */ +static void +__xfs_printk( + const char *level, + const struct xfs_mount *mp, + struct va_format *vaf) +{ + if (mp && mp->m_fsname) { + printk("%sXFS (%s): %pV\n", level, mp->m_fsname, vaf); + return; + } + printk("%sXFS: %pV\n", level, vaf); +} + +#define define_xfs_printk_level(func, kern_level) \ +void func(const struct xfs_mount *mp, const char *fmt, ...) \ +{ \ + struct va_format vaf; \ + va_list args; \ + \ + va_start(args, fmt); \ + \ + vaf.fmt = fmt; \ + vaf.va = &args; \ + \ + __xfs_printk(kern_level, mp, &vaf); \ + va_end(args); \ +} \ + +define_xfs_printk_level(xfs_emerg, KERN_EMERG); +define_xfs_printk_level(xfs_alert, KERN_ALERT); +define_xfs_printk_level(xfs_crit, KERN_CRIT); +define_xfs_printk_level(xfs_err, KERN_ERR); +define_xfs_printk_level(xfs_warn, KERN_WARNING); +define_xfs_printk_level(xfs_notice, KERN_NOTICE); +define_xfs_printk_level(xfs_info, KERN_INFO); +#ifdef DEBUG +define_xfs_printk_level(xfs_debug, KERN_DEBUG); +#endif + +void +xfs_alert_tag( + const struct xfs_mount *mp, + int panic_tag, + const char *fmt, ...) +{ + struct va_format vaf; + va_list args; + int do_panic = 0; + + if (xfs_panic_mask && (xfs_panic_mask & panic_tag)) { + xfs_alert(mp, "Transforming an alert into a BUG."); + do_panic = 1; + } + + va_start(args, fmt); + + vaf.fmt = fmt; + vaf.va = &args; + + __xfs_printk(KERN_ALERT, mp, &vaf); + va_end(args); + + BUG_ON(do_panic); +} + +void +assfail(char *expr, char *file, int line) +{ + xfs_emerg(NULL, "Assertion failed: %s, file: %s, line: %d", + expr, file, line); + BUG(); +} + +void +xfs_hex_dump(void *p, int length) +{ + print_hex_dump(KERN_ALERT, "", DUMP_PREFIX_ADDRESS, 16, 1, p, length, 1); +} diff --git a/fs/xfs/linux/xfs_message.h b/fs/xfs/linux/xfs_message.h new file mode 100644 index 0000000..7fb7ea0 --- /dev/null +++ b/fs/xfs/linux/xfs_message.h @@ -0,0 +1,39 @@ +#ifndef __XFS_MESSAGE_H +#define __XFS_MESSAGE_H 1 + +struct xfs_mount; + +extern void xfs_emerg(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_alert(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_alert_tag(const struct xfs_mount *mp, int tag, + const char *fmt, ...) + __attribute__ ((format (printf, 3, 4))); +extern void xfs_crit(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_err(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_warn(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_notice(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +extern void xfs_info(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); + +#ifdef DEBUG +extern void xfs_debug(const struct xfs_mount *mp, const char *fmt, ...) + __attribute__ ((format (printf, 2, 3))); +#else +static inline void +__attribute__ ((format (printf, 2, 3))) +xfs_debug(const struct xfs_mount *mp, const char *fmt, ...) +{ +} +#endif + +extern void assfail(char *expr, char *f, int l); + +extern void xfs_hex_dump(void *p, int length); + +#endif /* __XFS_MESSAGE_H */ diff --git a/fs/xfs/linux/xfs_quotaops.c b/fs/xfs/linux/xfs_quotaops.c new file mode 100644 index 0000000..29b9d64 --- /dev/null +++ b/fs/xfs/linux/xfs_quotaops.c @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2008, Christoph Hellwig + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_sb.h" +#include "xfs_inum.h" +#include "xfs_log.h" +#include "xfs_ag.h" +#include "xfs_mount.h" +#include "xfs_quota.h" +#include "xfs_trans.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "quota/xfs_qm.h" +#include + + +STATIC int +xfs_quota_type(int type) +{ + switch (type) { + case USRQUOTA: + return XFS_DQ_USER; + case GRPQUOTA: + return XFS_DQ_GROUP; + default: + return XFS_DQ_PROJ; + } +} + +STATIC int +xfs_fs_get_xstate( + struct super_block *sb, + struct fs_quota_stat *fqs) +{ + struct xfs_mount *mp = XFS_M(sb); + + if (!XFS_IS_QUOTA_RUNNING(mp)) + return -ENOSYS; + return -xfs_qm_scall_getqstat(mp, fqs); +} + +STATIC int +xfs_fs_set_xstate( + struct super_block *sb, + unsigned int uflags, + int op) +{ + struct xfs_mount *mp = XFS_M(sb); + unsigned int flags = 0; + + if (sb->s_flags & MS_RDONLY) + return -EROFS; + if (op != Q_XQUOTARM && !XFS_IS_QUOTA_RUNNING(mp)) + return -ENOSYS; + + if (uflags & FS_QUOTA_UDQ_ACCT) + flags |= XFS_UQUOTA_ACCT; + if (uflags & FS_QUOTA_PDQ_ACCT) + flags |= XFS_PQUOTA_ACCT; + if (uflags & FS_QUOTA_GDQ_ACCT) + flags |= XFS_GQUOTA_ACCT; + if (uflags & FS_QUOTA_UDQ_ENFD) + flags |= XFS_UQUOTA_ENFD; + if (uflags & (FS_QUOTA_PDQ_ENFD|FS_QUOTA_GDQ_ENFD)) + flags |= XFS_OQUOTA_ENFD; + + switch (op) { + case Q_XQUOTAON: + return -xfs_qm_scall_quotaon(mp, flags); + case Q_XQUOTAOFF: + if (!XFS_IS_QUOTA_ON(mp)) + return -EINVAL; + return -xfs_qm_scall_quotaoff(mp, flags); + case Q_XQUOTARM: + if (XFS_IS_QUOTA_ON(mp)) + return -EINVAL; + return -xfs_qm_scall_trunc_qfiles(mp, flags); + } + + return -EINVAL; +} + +STATIC int +xfs_fs_get_dqblk( + struct super_block *sb, + int type, + qid_t id, + struct fs_disk_quota *fdq) +{ + struct xfs_mount *mp = XFS_M(sb); + + if (!XFS_IS_QUOTA_RUNNING(mp)) + return -ENOSYS; + if (!XFS_IS_QUOTA_ON(mp)) + return -ESRCH; + + return -xfs_qm_scall_getquota(mp, id, xfs_quota_type(type), fdq); +} + +STATIC int +xfs_fs_set_dqblk( + struct super_block *sb, + int type, + qid_t id, + struct fs_disk_quota *fdq) +{ + struct xfs_mount *mp = XFS_M(sb); + + if (sb->s_flags & MS_RDONLY) + return -EROFS; + if (!XFS_IS_QUOTA_RUNNING(mp)) + return -ENOSYS; + if (!XFS_IS_QUOTA_ON(mp)) + return -ESRCH; + + return -xfs_qm_scall_setqlim(mp, id, xfs_quota_type(type), fdq); +} + +const struct quotactl_ops xfs_quotactl_operations = { + .get_xstate = xfs_fs_get_xstate, + .set_xstate = xfs_fs_set_xstate, + .get_dqblk = xfs_fs_get_dqblk, + .set_dqblk = xfs_fs_set_dqblk, +}; diff --git a/fs/xfs/linux/xfs_stats.c b/fs/xfs/linux/xfs_stats.c new file mode 100644 index 0000000..76fdc58 --- /dev/null +++ b/fs/xfs/linux/xfs_stats.c @@ -0,0 +1,122 @@ +/* + * Copyright (c) 2000-2003,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include + +DEFINE_PER_CPU(struct xfsstats, xfsstats); + +static int xfs_stat_proc_show(struct seq_file *m, void *v) +{ + int c, i, j, val; + __uint64_t xs_xstrat_bytes = 0; + __uint64_t xs_write_bytes = 0; + __uint64_t xs_read_bytes = 0; + + static const struct xstats_entry { + char *desc; + int endpoint; + } xstats[] = { + { "extent_alloc", XFSSTAT_END_EXTENT_ALLOC }, + { "abt", XFSSTAT_END_ALLOC_BTREE }, + { "blk_map", XFSSTAT_END_BLOCK_MAPPING }, + { "bmbt", XFSSTAT_END_BLOCK_MAP_BTREE }, + { "dir", XFSSTAT_END_DIRECTORY_OPS }, + { "trans", XFSSTAT_END_TRANSACTIONS }, + { "ig", XFSSTAT_END_INODE_OPS }, + { "log", XFSSTAT_END_LOG_OPS }, + { "push_ail", XFSSTAT_END_TAIL_PUSHING }, + { "xstrat", XFSSTAT_END_WRITE_CONVERT }, + { "rw", XFSSTAT_END_READ_WRITE_OPS }, + { "attr", XFSSTAT_END_ATTRIBUTE_OPS }, + { "icluster", XFSSTAT_END_INODE_CLUSTER }, + { "vnodes", XFSSTAT_END_VNODE_OPS }, + { "buf", XFSSTAT_END_BUF }, + { "abtb2", XFSSTAT_END_ABTB_V2 }, + { "abtc2", XFSSTAT_END_ABTC_V2 }, + { "bmbt2", XFSSTAT_END_BMBT_V2 }, + { "ibt2", XFSSTAT_END_IBT_V2 }, + }; + + /* Loop over all stats groups */ + for (i=j = 0; i < ARRAY_SIZE(xstats); i++) { + seq_printf(m, "%s", xstats[i].desc); + /* inner loop does each group */ + while (j < xstats[i].endpoint) { + val = 0; + /* sum over all cpus */ + for_each_possible_cpu(c) + val += *(((__u32*)&per_cpu(xfsstats, c) + j)); + seq_printf(m, " %u", val); + j++; + } + seq_putc(m, '\n'); + } + /* extra precision counters */ + for_each_possible_cpu(i) { + xs_xstrat_bytes += per_cpu(xfsstats, i).xs_xstrat_bytes; + xs_write_bytes += per_cpu(xfsstats, i).xs_write_bytes; + xs_read_bytes += per_cpu(xfsstats, i).xs_read_bytes; + } + + seq_printf(m, "xpc %Lu %Lu %Lu\n", + xs_xstrat_bytes, xs_write_bytes, xs_read_bytes); + seq_printf(m, "debug %u\n", +#if defined(DEBUG) + 1); +#else + 0); +#endif + return 0; +} + +static int xfs_stat_proc_open(struct inode *inode, struct file *file) +{ + return single_open(file, xfs_stat_proc_show, NULL); +} + +static const struct file_operations xfs_stat_proc_fops = { + .owner = THIS_MODULE, + .open = xfs_stat_proc_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +int +xfs_init_procfs(void) +{ + if (!proc_mkdir("fs/xfs", NULL)) + goto out; + + if (!proc_create("fs/xfs/stat", 0, NULL, + &xfs_stat_proc_fops)) + goto out_remove_entry; + return 0; + + out_remove_entry: + remove_proc_entry("fs/xfs", NULL); + out: + return -ENOMEM; +} + +void +xfs_cleanup_procfs(void) +{ + remove_proc_entry("fs/xfs/stat", NULL); + remove_proc_entry("fs/xfs", NULL); +} diff --git a/fs/xfs/linux/xfs_stats.h b/fs/xfs/linux/xfs_stats.h new file mode 100644 index 0000000..736854b --- /dev/null +++ b/fs/xfs/linux/xfs_stats.h @@ -0,0 +1,223 @@ +/* + * Copyright (c) 2000,2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_STATS_H__ +#define __XFS_STATS_H__ + + +#if defined(CONFIG_PROC_FS) && !defined(XFS_STATS_OFF) + +#include + +/* + * XFS global statistics + */ +struct xfsstats { +# define XFSSTAT_END_EXTENT_ALLOC 4 + __uint32_t xs_allocx; + __uint32_t xs_allocb; + __uint32_t xs_freex; + __uint32_t xs_freeb; +# define XFSSTAT_END_ALLOC_BTREE (XFSSTAT_END_EXTENT_ALLOC+4) + __uint32_t xs_abt_lookup; + __uint32_t xs_abt_compare; + __uint32_t xs_abt_insrec; + __uint32_t xs_abt_delrec; +# define XFSSTAT_END_BLOCK_MAPPING (XFSSTAT_END_ALLOC_BTREE+7) + __uint32_t xs_blk_mapr; + __uint32_t xs_blk_mapw; + __uint32_t xs_blk_unmap; + __uint32_t xs_add_exlist; + __uint32_t xs_del_exlist; + __uint32_t xs_look_exlist; + __uint32_t xs_cmp_exlist; +# define XFSSTAT_END_BLOCK_MAP_BTREE (XFSSTAT_END_BLOCK_MAPPING+4) + __uint32_t xs_bmbt_lookup; + __uint32_t xs_bmbt_compare; + __uint32_t xs_bmbt_insrec; + __uint32_t xs_bmbt_delrec; +# define XFSSTAT_END_DIRECTORY_OPS (XFSSTAT_END_BLOCK_MAP_BTREE+4) + __uint32_t xs_dir_lookup; + __uint32_t xs_dir_create; + __uint32_t xs_dir_remove; + __uint32_t xs_dir_getdents; +# define XFSSTAT_END_TRANSACTIONS (XFSSTAT_END_DIRECTORY_OPS+3) + __uint32_t xs_trans_sync; + __uint32_t xs_trans_async; + __uint32_t xs_trans_empty; +# define XFSSTAT_END_INODE_OPS (XFSSTAT_END_TRANSACTIONS+7) + __uint32_t xs_ig_attempts; + __uint32_t xs_ig_found; + __uint32_t xs_ig_frecycle; + __uint32_t xs_ig_missed; + __uint32_t xs_ig_dup; + __uint32_t xs_ig_reclaims; + __uint32_t xs_ig_attrchg; +# define XFSSTAT_END_LOG_OPS (XFSSTAT_END_INODE_OPS+5) + __uint32_t xs_log_writes; + __uint32_t xs_log_blocks; + __uint32_t xs_log_noiclogs; + __uint32_t xs_log_force; + __uint32_t xs_log_force_sleep; +# define XFSSTAT_END_TAIL_PUSHING (XFSSTAT_END_LOG_OPS+10) + __uint32_t xs_try_logspace; + __uint32_t xs_sleep_logspace; + __uint32_t xs_push_ail; + __uint32_t xs_push_ail_success; + __uint32_t xs_push_ail_pushbuf; + __uint32_t xs_push_ail_pinned; + __uint32_t xs_push_ail_locked; + __uint32_t xs_push_ail_flushing; + __uint32_t xs_push_ail_restarts; + __uint32_t xs_push_ail_flush; +# define XFSSTAT_END_WRITE_CONVERT (XFSSTAT_END_TAIL_PUSHING+2) + __uint32_t xs_xstrat_quick; + __uint32_t xs_xstrat_split; +# define XFSSTAT_END_READ_WRITE_OPS (XFSSTAT_END_WRITE_CONVERT+2) + __uint32_t xs_write_calls; + __uint32_t xs_read_calls; +# define XFSSTAT_END_ATTRIBUTE_OPS (XFSSTAT_END_READ_WRITE_OPS+4) + __uint32_t xs_attr_get; + __uint32_t xs_attr_set; + __uint32_t xs_attr_remove; + __uint32_t xs_attr_list; +# define XFSSTAT_END_INODE_CLUSTER (XFSSTAT_END_ATTRIBUTE_OPS+3) + __uint32_t xs_iflush_count; + __uint32_t xs_icluster_flushcnt; + __uint32_t xs_icluster_flushinode; +# define XFSSTAT_END_VNODE_OPS (XFSSTAT_END_INODE_CLUSTER+8) + __uint32_t vn_active; /* # vnodes not on free lists */ + __uint32_t vn_alloc; /* # times vn_alloc called */ + __uint32_t vn_get; /* # times vn_get called */ + __uint32_t vn_hold; /* # times vn_hold called */ + __uint32_t vn_rele; /* # times vn_rele called */ + __uint32_t vn_reclaim; /* # times vn_reclaim called */ + __uint32_t vn_remove; /* # times vn_remove called */ + __uint32_t vn_free; /* # times vn_free called */ +#define XFSSTAT_END_BUF (XFSSTAT_END_VNODE_OPS+9) + __uint32_t xb_get; + __uint32_t xb_create; + __uint32_t xb_get_locked; + __uint32_t xb_get_locked_waited; + __uint32_t xb_busy_locked; + __uint32_t xb_miss_locked; + __uint32_t xb_page_retries; + __uint32_t xb_page_found; + __uint32_t xb_get_read; +/* Version 2 btree counters */ +#define XFSSTAT_END_ABTB_V2 (XFSSTAT_END_BUF+15) + __uint32_t xs_abtb_2_lookup; + __uint32_t xs_abtb_2_compare; + __uint32_t xs_abtb_2_insrec; + __uint32_t xs_abtb_2_delrec; + __uint32_t xs_abtb_2_newroot; + __uint32_t xs_abtb_2_killroot; + __uint32_t xs_abtb_2_increment; + __uint32_t xs_abtb_2_decrement; + __uint32_t xs_abtb_2_lshift; + __uint32_t xs_abtb_2_rshift; + __uint32_t xs_abtb_2_split; + __uint32_t xs_abtb_2_join; + __uint32_t xs_abtb_2_alloc; + __uint32_t xs_abtb_2_free; + __uint32_t xs_abtb_2_moves; +#define XFSSTAT_END_ABTC_V2 (XFSSTAT_END_ABTB_V2+15) + __uint32_t xs_abtc_2_lookup; + __uint32_t xs_abtc_2_compare; + __uint32_t xs_abtc_2_insrec; + __uint32_t xs_abtc_2_delrec; + __uint32_t xs_abtc_2_newroot; + __uint32_t xs_abtc_2_killroot; + __uint32_t xs_abtc_2_increment; + __uint32_t xs_abtc_2_decrement; + __uint32_t xs_abtc_2_lshift; + __uint32_t xs_abtc_2_rshift; + __uint32_t xs_abtc_2_split; + __uint32_t xs_abtc_2_join; + __uint32_t xs_abtc_2_alloc; + __uint32_t xs_abtc_2_free; + __uint32_t xs_abtc_2_moves; +#define XFSSTAT_END_BMBT_V2 (XFSSTAT_END_ABTC_V2+15) + __uint32_t xs_bmbt_2_lookup; + __uint32_t xs_bmbt_2_compare; + __uint32_t xs_bmbt_2_insrec; + __uint32_t xs_bmbt_2_delrec; + __uint32_t xs_bmbt_2_newroot; + __uint32_t xs_bmbt_2_killroot; + __uint32_t xs_bmbt_2_increment; + __uint32_t xs_bmbt_2_decrement; + __uint32_t xs_bmbt_2_lshift; + __uint32_t xs_bmbt_2_rshift; + __uint32_t xs_bmbt_2_split; + __uint32_t xs_bmbt_2_join; + __uint32_t xs_bmbt_2_alloc; + __uint32_t xs_bmbt_2_free; + __uint32_t xs_bmbt_2_moves; +#define XFSSTAT_END_IBT_V2 (XFSSTAT_END_BMBT_V2+15) + __uint32_t xs_ibt_2_lookup; + __uint32_t xs_ibt_2_compare; + __uint32_t xs_ibt_2_insrec; + __uint32_t xs_ibt_2_delrec; + __uint32_t xs_ibt_2_newroot; + __uint32_t xs_ibt_2_killroot; + __uint32_t xs_ibt_2_increment; + __uint32_t xs_ibt_2_decrement; + __uint32_t xs_ibt_2_lshift; + __uint32_t xs_ibt_2_rshift; + __uint32_t xs_ibt_2_split; + __uint32_t xs_ibt_2_join; + __uint32_t xs_ibt_2_alloc; + __uint32_t xs_ibt_2_free; + __uint32_t xs_ibt_2_moves; +/* Extra precision counters */ + __uint64_t xs_xstrat_bytes; + __uint64_t xs_write_bytes; + __uint64_t xs_read_bytes; +}; + +DECLARE_PER_CPU(struct xfsstats, xfsstats); + +/* + * We don't disable preempt, not too worried about poking the + * wrong CPU's stat for now (also aggregated before reporting). + */ +#define XFS_STATS_INC(v) (per_cpu(xfsstats, current_cpu()).v++) +#define XFS_STATS_DEC(v) (per_cpu(xfsstats, current_cpu()).v--) +#define XFS_STATS_ADD(v, inc) (per_cpu(xfsstats, current_cpu()).v += (inc)) + +extern int xfs_init_procfs(void); +extern void xfs_cleanup_procfs(void); + + +#else /* !CONFIG_PROC_FS */ + +# define XFS_STATS_INC(count) +# define XFS_STATS_DEC(count) +# define XFS_STATS_ADD(count, inc) + +static inline int xfs_init_procfs(void) +{ + return 0; +} + +static inline void xfs_cleanup_procfs(void) +{ +} + +#endif /* !CONFIG_PROC_FS */ + +#endif /* __XFS_STATS_H__ */ diff --git a/fs/xfs/linux/xfs_super.c b/fs/xfs/linux/xfs_super.c new file mode 100644 index 0000000..25fd2cd --- /dev/null +++ b/fs/xfs/linux/xfs_super.c @@ -0,0 +1,1766 @@ +/* + * Copyright (c) 2000-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "xfs.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_dir2.h" +#include "xfs_alloc.h" +#include "xfs_quota.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_alloc_btree.h" +#include "xfs_ialloc_btree.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_btree.h" +#include "xfs_ialloc.h" +#include "xfs_bmap.h" +#include "xfs_rtalloc.h" +#include "xfs_error.h" +#include "xfs_itable.h" +#include "xfs_fsops.h" +#include "xfs_attr.h" +#include "xfs_buf_item.h" +#include "xfs_utils.h" +#include "xfs_vnodeops.h" +#include "xfs_log_priv.h" +#include "xfs_trans_priv.h" +#include "xfs_filestream.h" +#include "xfs_da_btree.h" +#include "xfs_extfree_item.h" +#include "xfs_mru_cache.h" +#include "xfs_inode_item.h" +#include "xfs_sync.h" +#include "xfs_trace.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static const struct super_operations xfs_super_operations; +static kmem_zone_t *xfs_ioend_zone; +mempool_t *xfs_ioend_pool; + +#define MNTOPT_LOGBUFS "logbufs" /* number of XFS log buffers */ +#define MNTOPT_LOGBSIZE "logbsize" /* size of XFS log buffers */ +#define MNTOPT_LOGDEV "logdev" /* log device */ +#define MNTOPT_RTDEV "rtdev" /* realtime I/O device */ +#define MNTOPT_BIOSIZE "biosize" /* log2 of preferred buffered io size */ +#define MNTOPT_WSYNC "wsync" /* safe-mode nfs compatible mount */ +#define MNTOPT_NOALIGN "noalign" /* turn off stripe alignment */ +#define MNTOPT_SWALLOC "swalloc" /* turn on stripe width allocation */ +#define MNTOPT_SUNIT "sunit" /* data volume stripe unit */ +#define MNTOPT_SWIDTH "swidth" /* data volume stripe width */ +#define MNTOPT_NOUUID "nouuid" /* ignore filesystem UUID */ +#define MNTOPT_MTPT "mtpt" /* filesystem mount point */ +#define MNTOPT_GRPID "grpid" /* group-ID from parent directory */ +#define MNTOPT_NOGRPID "nogrpid" /* group-ID from current process */ +#define MNTOPT_BSDGROUPS "bsdgroups" /* group-ID from parent directory */ +#define MNTOPT_SYSVGROUPS "sysvgroups" /* group-ID from current process */ +#define MNTOPT_ALLOCSIZE "allocsize" /* preferred allocation size */ +#define MNTOPT_NORECOVERY "norecovery" /* don't run XFS recovery */ +#define MNTOPT_BARRIER "barrier" /* use writer barriers for log write and + * unwritten extent conversion */ +#define MNTOPT_NOBARRIER "nobarrier" /* .. disable */ +#define MNTOPT_64BITINODE "inode64" /* inodes can be allocated anywhere */ +#define MNTOPT_IKEEP "ikeep" /* do not free empty inode clusters */ +#define MNTOPT_NOIKEEP "noikeep" /* free empty inode clusters */ +#define MNTOPT_LARGEIO "largeio" /* report large I/O sizes in stat() */ +#define MNTOPT_NOLARGEIO "nolargeio" /* do not report large I/O sizes + * in stat(). */ +#define MNTOPT_ATTR2 "attr2" /* do use attr2 attribute format */ +#define MNTOPT_NOATTR2 "noattr2" /* do not use attr2 attribute format */ +#define MNTOPT_FILESTREAM "filestreams" /* use filestreams allocator */ +#define MNTOPT_QUOTA "quota" /* disk quotas (user) */ +#define MNTOPT_NOQUOTA "noquota" /* no quotas */ +#define MNTOPT_USRQUOTA "usrquota" /* user quota enabled */ +#define MNTOPT_GRPQUOTA "grpquota" /* group quota enabled */ +#define MNTOPT_PRJQUOTA "prjquota" /* project quota enabled */ +#define MNTOPT_UQUOTA "uquota" /* user quota (IRIX variant) */ +#define MNTOPT_GQUOTA "gquota" /* group quota (IRIX variant) */ +#define MNTOPT_PQUOTA "pquota" /* project quota (IRIX variant) */ +#define MNTOPT_UQUOTANOENF "uqnoenforce"/* user quota limit enforcement */ +#define MNTOPT_GQUOTANOENF "gqnoenforce"/* group quota limit enforcement */ +#define MNTOPT_PQUOTANOENF "pqnoenforce"/* project quota limit enforcement */ +#define MNTOPT_QUOTANOENF "qnoenforce" /* same as uqnoenforce */ +#define MNTOPT_DELAYLOG "delaylog" /* Delayed logging enabled */ +#define MNTOPT_NODELAYLOG "nodelaylog" /* Delayed logging disabled */ +#define MNTOPT_DISCARD "discard" /* Discard unused blocks */ +#define MNTOPT_NODISCARD "nodiscard" /* Do not discard unused blocks */ + +/* + * Table driven mount option parser. + * + * Currently only used for remount, but it will be used for mount + * in the future, too. + */ +enum { + Opt_barrier, Opt_nobarrier, Opt_err +}; + +static const match_table_t tokens = { + {Opt_barrier, "barrier"}, + {Opt_nobarrier, "nobarrier"}, + {Opt_err, NULL} +}; + + +STATIC unsigned long +suffix_strtoul(char *s, char **endp, unsigned int base) +{ + int last, shift_left_factor = 0; + char *value = s; + + last = strlen(value) - 1; + if (value[last] == 'K' || value[last] == 'k') { + shift_left_factor = 10; + value[last] = '\0'; + } + if (value[last] == 'M' || value[last] == 'm') { + shift_left_factor = 20; + value[last] = '\0'; + } + if (value[last] == 'G' || value[last] == 'g') { + shift_left_factor = 30; + value[last] = '\0'; + } + + return simple_strtoul((const char *)s, endp, base) << shift_left_factor; +} + +/* + * This function fills in xfs_mount_t fields based on mount args. + * Note: the superblock has _not_ yet been read in. + * + * Note that this function leaks the various device name allocations on + * failure. The caller takes care of them. + */ +STATIC int +xfs_parseargs( + struct xfs_mount *mp, + char *options) +{ + struct super_block *sb = mp->m_super; + char *this_char, *value, *eov; + int dsunit = 0; + int dswidth = 0; + int iosize = 0; + __uint8_t iosizelog = 0; + + /* + * set up the mount name first so all the errors will refer to the + * correct device. + */ + mp->m_fsname = kstrndup(sb->s_id, MAXNAMELEN, GFP_KERNEL); + if (!mp->m_fsname) + return ENOMEM; + mp->m_fsname_len = strlen(mp->m_fsname) + 1; + + /* + * Copy binary VFS mount flags we are interested in. + */ + if (sb->s_flags & MS_RDONLY) + mp->m_flags |= XFS_MOUNT_RDONLY; + if (sb->s_flags & MS_DIRSYNC) + mp->m_flags |= XFS_MOUNT_DIRSYNC; + if (sb->s_flags & MS_SYNCHRONOUS) + mp->m_flags |= XFS_MOUNT_WSYNC; + + /* + * Set some default flags that could be cleared by the mount option + * parsing. + */ + mp->m_flags |= XFS_MOUNT_BARRIER; + mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; + mp->m_flags |= XFS_MOUNT_SMALL_INUMS; + mp->m_flags |= XFS_MOUNT_DELAYLOG; + + /* + * These can be overridden by the mount option parsing. + */ + mp->m_logbufs = -1; + mp->m_logbsize = -1; + + if (!options) + goto done; + + while ((this_char = strsep(&options, ",")) != NULL) { + if (!*this_char) + continue; + if ((value = strchr(this_char, '=')) != NULL) + *value++ = 0; + + if (!strcmp(this_char, MNTOPT_LOGBUFS)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + mp->m_logbufs = simple_strtoul(value, &eov, 10); + } else if (!strcmp(this_char, MNTOPT_LOGBSIZE)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + mp->m_logbsize = suffix_strtoul(value, &eov, 10); + } else if (!strcmp(this_char, MNTOPT_LOGDEV)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + mp->m_logname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); + if (!mp->m_logname) + return ENOMEM; + } else if (!strcmp(this_char, MNTOPT_MTPT)) { + xfs_warn(mp, "%s option not allowed on this system", + this_char); + return EINVAL; + } else if (!strcmp(this_char, MNTOPT_RTDEV)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + mp->m_rtname = kstrndup(value, MAXNAMELEN, GFP_KERNEL); + if (!mp->m_rtname) + return ENOMEM; + } else if (!strcmp(this_char, MNTOPT_BIOSIZE)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + iosize = simple_strtoul(value, &eov, 10); + iosizelog = ffs(iosize) - 1; + } else if (!strcmp(this_char, MNTOPT_ALLOCSIZE)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + iosize = suffix_strtoul(value, &eov, 10); + iosizelog = ffs(iosize) - 1; + } else if (!strcmp(this_char, MNTOPT_GRPID) || + !strcmp(this_char, MNTOPT_BSDGROUPS)) { + mp->m_flags |= XFS_MOUNT_GRPID; + } else if (!strcmp(this_char, MNTOPT_NOGRPID) || + !strcmp(this_char, MNTOPT_SYSVGROUPS)) { + mp->m_flags &= ~XFS_MOUNT_GRPID; + } else if (!strcmp(this_char, MNTOPT_WSYNC)) { + mp->m_flags |= XFS_MOUNT_WSYNC; + } else if (!strcmp(this_char, MNTOPT_NORECOVERY)) { + mp->m_flags |= XFS_MOUNT_NORECOVERY; + } else if (!strcmp(this_char, MNTOPT_NOALIGN)) { + mp->m_flags |= XFS_MOUNT_NOALIGN; + } else if (!strcmp(this_char, MNTOPT_SWALLOC)) { + mp->m_flags |= XFS_MOUNT_SWALLOC; + } else if (!strcmp(this_char, MNTOPT_SUNIT)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + dsunit = simple_strtoul(value, &eov, 10); + } else if (!strcmp(this_char, MNTOPT_SWIDTH)) { + if (!value || !*value) { + xfs_warn(mp, "%s option requires an argument", + this_char); + return EINVAL; + } + dswidth = simple_strtoul(value, &eov, 10); + } else if (!strcmp(this_char, MNTOPT_64BITINODE)) { + mp->m_flags &= ~XFS_MOUNT_SMALL_INUMS; +#if !XFS_BIG_INUMS + xfs_warn(mp, "%s option not allowed on this system", + this_char); + return EINVAL; +#endif + } else if (!strcmp(this_char, MNTOPT_NOUUID)) { + mp->m_flags |= XFS_MOUNT_NOUUID; + } else if (!strcmp(this_char, MNTOPT_BARRIER)) { + mp->m_flags |= XFS_MOUNT_BARRIER; + } else if (!strcmp(this_char, MNTOPT_NOBARRIER)) { + mp->m_flags &= ~XFS_MOUNT_BARRIER; + } else if (!strcmp(this_char, MNTOPT_IKEEP)) { + mp->m_flags |= XFS_MOUNT_IKEEP; + } else if (!strcmp(this_char, MNTOPT_NOIKEEP)) { + mp->m_flags &= ~XFS_MOUNT_IKEEP; + } else if (!strcmp(this_char, MNTOPT_LARGEIO)) { + mp->m_flags &= ~XFS_MOUNT_COMPAT_IOSIZE; + } else if (!strcmp(this_char, MNTOPT_NOLARGEIO)) { + mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE; + } else if (!strcmp(this_char, MNTOPT_ATTR2)) { + mp->m_flags |= XFS_MOUNT_ATTR2; + } else if (!strcmp(this_char, MNTOPT_NOATTR2)) { + mp->m_flags &= ~XFS_MOUNT_ATTR2; + mp->m_flags |= XFS_MOUNT_NOATTR2; + } else if (!strcmp(this_char, MNTOPT_FILESTREAM)) { + mp->m_flags |= XFS_MOUNT_FILESTREAMS; + } else if (!strcmp(this_char, MNTOPT_NOQUOTA)) { + mp->m_qflags &= ~(XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | + XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | + XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE | + XFS_UQUOTA_ENFD | XFS_OQUOTA_ENFD); + } else if (!strcmp(this_char, MNTOPT_QUOTA) || + !strcmp(this_char, MNTOPT_UQUOTA) || + !strcmp(this_char, MNTOPT_USRQUOTA)) { + mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE | + XFS_UQUOTA_ENFD); + } else if (!strcmp(this_char, MNTOPT_QUOTANOENF) || + !strcmp(this_char, MNTOPT_UQUOTANOENF)) { + mp->m_qflags |= (XFS_UQUOTA_ACCT | XFS_UQUOTA_ACTIVE); + mp->m_qflags &= ~XFS_UQUOTA_ENFD; + } else if (!strcmp(this_char, MNTOPT_PQUOTA) || + !strcmp(this_char, MNTOPT_PRJQUOTA)) { + mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE | + XFS_OQUOTA_ENFD); + } else if (!strcmp(this_char, MNTOPT_PQUOTANOENF)) { + mp->m_qflags |= (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE); + mp->m_qflags &= ~XFS_OQUOTA_ENFD; + } else if (!strcmp(this_char, MNTOPT_GQUOTA) || + !strcmp(this_char, MNTOPT_GRPQUOTA)) { + mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE | + XFS_OQUOTA_ENFD); + } else if (!strcmp(this_char, MNTOPT_GQUOTANOENF)) { + mp->m_qflags |= (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE); + mp->m_qflags &= ~XFS_OQUOTA_ENFD; + } else if (!strcmp(this_char, MNTOPT_DELAYLOG)) { + mp->m_flags |= XFS_MOUNT_DELAYLOG; + } else if (!strcmp(this_char, MNTOPT_NODELAYLOG)) { + mp->m_flags &= ~XFS_MOUNT_DELAYLOG; + } else if (!strcmp(this_char, MNTOPT_DISCARD)) { + mp->m_flags |= XFS_MOUNT_DISCARD; + } else if (!strcmp(this_char, MNTOPT_NODISCARD)) { + mp->m_flags &= ~XFS_MOUNT_DISCARD; + } else if (!strcmp(this_char, "ihashsize")) { + xfs_warn(mp, + "ihashsize no longer used, option is deprecated."); + } else if (!strcmp(this_char, "osyncisdsync")) { + xfs_warn(mp, + "osyncisdsync has no effect, option is deprecated."); + } else if (!strcmp(this_char, "osyncisosync")) { + xfs_warn(mp, + "osyncisosync has no effect, option is deprecated."); + } else if (!strcmp(this_char, "irixsgid")) { + xfs_warn(mp, + "irixsgid is now a sysctl(2) variable, option is deprecated."); + } else { + xfs_warn(mp, "unknown mount option [%s].", this_char); + return EINVAL; + } + } + + /* + * no recovery flag requires a read-only mount + */ + if ((mp->m_flags & XFS_MOUNT_NORECOVERY) && + !(mp->m_flags & XFS_MOUNT_RDONLY)) { + xfs_warn(mp, "no-recovery mounts must be read-only."); + return EINVAL; + } + + if ((mp->m_flags & XFS_MOUNT_NOALIGN) && (dsunit || dswidth)) { + xfs_warn(mp, + "sunit and swidth options incompatible with the noalign option"); + return EINVAL; + } + + if ((mp->m_flags & XFS_MOUNT_DISCARD) && + !(mp->m_flags & XFS_MOUNT_DELAYLOG)) { + xfs_warn(mp, + "the discard option is incompatible with the nodelaylog option"); + return EINVAL; + } + +#ifndef CONFIG_XFS_QUOTA + if (XFS_IS_QUOTA_RUNNING(mp)) { + xfs_warn(mp, "quota support not available in this kernel."); + return EINVAL; + } +#endif + + if ((mp->m_qflags & (XFS_GQUOTA_ACCT | XFS_GQUOTA_ACTIVE)) && + (mp->m_qflags & (XFS_PQUOTA_ACCT | XFS_PQUOTA_ACTIVE))) { + xfs_warn(mp, "cannot mount with both project and group quota"); + return EINVAL; + } + + if ((dsunit && !dswidth) || (!dsunit && dswidth)) { + xfs_warn(mp, "sunit and swidth must be specified together"); + return EINVAL; + } + + if (dsunit && (dswidth % dsunit != 0)) { + xfs_warn(mp, + "stripe width (%d) must be a multiple of the stripe unit (%d)", + dswidth, dsunit); + return EINVAL; + } + +done: + if (!(mp->m_flags & XFS_MOUNT_NOALIGN)) { + /* + * At this point the superblock has not been read + * in, therefore we do not know the block size. + * Before the mount call ends we will convert + * these to FSBs. + */ + if (dsunit) { + mp->m_dalign = dsunit; + mp->m_flags |= XFS_MOUNT_RETERR; + } + + if (dswidth) + mp->m_swidth = dswidth; + } + + if (mp->m_logbufs != -1 && + mp->m_logbufs != 0 && + (mp->m_logbufs < XLOG_MIN_ICLOGS || + mp->m_logbufs > XLOG_MAX_ICLOGS)) { + xfs_warn(mp, "invalid logbufs value: %d [not %d-%d]", + mp->m_logbufs, XLOG_MIN_ICLOGS, XLOG_MAX_ICLOGS); + return XFS_ERROR(EINVAL); + } + if (mp->m_logbsize != -1 && + mp->m_logbsize != 0 && + (mp->m_logbsize < XLOG_MIN_RECORD_BSIZE || + mp->m_logbsize > XLOG_MAX_RECORD_BSIZE || + !is_power_of_2(mp->m_logbsize))) { + xfs_warn(mp, + "invalid logbufsize: %d [not 16k,32k,64k,128k or 256k]", + mp->m_logbsize); + return XFS_ERROR(EINVAL); + } + + if (iosizelog) { + if (iosizelog > XFS_MAX_IO_LOG || + iosizelog < XFS_MIN_IO_LOG) { + xfs_warn(mp, "invalid log iosize: %d [not %d-%d]", + iosizelog, XFS_MIN_IO_LOG, + XFS_MAX_IO_LOG); + return XFS_ERROR(EINVAL); + } + + mp->m_flags |= XFS_MOUNT_DFLT_IOSIZE; + mp->m_readio_log = iosizelog; + mp->m_writeio_log = iosizelog; + } + + return 0; +} + +struct proc_xfs_info { + int flag; + char *str; +}; + +STATIC int +xfs_showargs( + struct xfs_mount *mp, + struct seq_file *m) +{ + static struct proc_xfs_info xfs_info_set[] = { + /* the few simple ones we can get from the mount struct */ + { XFS_MOUNT_IKEEP, "," MNTOPT_IKEEP }, + { XFS_MOUNT_WSYNC, "," MNTOPT_WSYNC }, + { XFS_MOUNT_NOALIGN, "," MNTOPT_NOALIGN }, + { XFS_MOUNT_SWALLOC, "," MNTOPT_SWALLOC }, + { XFS_MOUNT_NOUUID, "," MNTOPT_NOUUID }, + { XFS_MOUNT_NORECOVERY, "," MNTOPT_NORECOVERY }, + { XFS_MOUNT_ATTR2, "," MNTOPT_ATTR2 }, + { XFS_MOUNT_FILESTREAMS, "," MNTOPT_FILESTREAM }, + { XFS_MOUNT_GRPID, "," MNTOPT_GRPID }, + { XFS_MOUNT_DELAYLOG, "," MNTOPT_DELAYLOG }, + { XFS_MOUNT_DISCARD, "," MNTOPT_DISCARD }, + { 0, NULL } + }; + static struct proc_xfs_info xfs_info_unset[] = { + /* the few simple ones we can get from the mount struct */ + { XFS_MOUNT_COMPAT_IOSIZE, "," MNTOPT_LARGEIO }, + { XFS_MOUNT_BARRIER, "," MNTOPT_NOBARRIER }, + { XFS_MOUNT_SMALL_INUMS, "," MNTOPT_64BITINODE }, + { 0, NULL } + }; + struct proc_xfs_info *xfs_infop; + + for (xfs_infop = xfs_info_set; xfs_infop->flag; xfs_infop++) { + if (mp->m_flags & xfs_infop->flag) + seq_puts(m, xfs_infop->str); + } + for (xfs_infop = xfs_info_unset; xfs_infop->flag; xfs_infop++) { + if (!(mp->m_flags & xfs_infop->flag)) + seq_puts(m, xfs_infop->str); + } + + if (mp->m_flags & XFS_MOUNT_DFLT_IOSIZE) + seq_printf(m, "," MNTOPT_ALLOCSIZE "=%dk", + (int)(1 << mp->m_writeio_log) >> 10); + + if (mp->m_logbufs > 0) + seq_printf(m, "," MNTOPT_LOGBUFS "=%d", mp->m_logbufs); + if (mp->m_logbsize > 0) + seq_printf(m, "," MNTOPT_LOGBSIZE "=%dk", mp->m_logbsize >> 10); + + if (mp->m_logname) + seq_printf(m, "," MNTOPT_LOGDEV "=%s", mp->m_logname); + if (mp->m_rtname) + seq_printf(m, "," MNTOPT_RTDEV "=%s", mp->m_rtname); + + if (mp->m_dalign > 0) + seq_printf(m, "," MNTOPT_SUNIT "=%d", + (int)XFS_FSB_TO_BB(mp, mp->m_dalign)); + if (mp->m_swidth > 0) + seq_printf(m, "," MNTOPT_SWIDTH "=%d", + (int)XFS_FSB_TO_BB(mp, mp->m_swidth)); + + if (mp->m_qflags & (XFS_UQUOTA_ACCT|XFS_UQUOTA_ENFD)) + seq_puts(m, "," MNTOPT_USRQUOTA); + else if (mp->m_qflags & XFS_UQUOTA_ACCT) + seq_puts(m, "," MNTOPT_UQUOTANOENF); + + /* Either project or group quotas can be active, not both */ + + if (mp->m_qflags & XFS_PQUOTA_ACCT) { + if (mp->m_qflags & XFS_OQUOTA_ENFD) + seq_puts(m, "," MNTOPT_PRJQUOTA); + else + seq_puts(m, "," MNTOPT_PQUOTANOENF); + } else if (mp->m_qflags & XFS_GQUOTA_ACCT) { + if (mp->m_qflags & XFS_OQUOTA_ENFD) + seq_puts(m, "," MNTOPT_GRPQUOTA); + else + seq_puts(m, "," MNTOPT_GQUOTANOENF); + } + + if (!(mp->m_qflags & XFS_ALL_QUOTA_ACCT)) + seq_puts(m, "," MNTOPT_NOQUOTA); + + return 0; +} +__uint64_t +xfs_max_file_offset( + unsigned int blockshift) +{ + unsigned int pagefactor = 1; + unsigned int bitshift = BITS_PER_LONG - 1; + + /* Figure out maximum filesize, on Linux this can depend on + * the filesystem blocksize (on 32 bit platforms). + * __block_write_begin does this in an [unsigned] long... + * page->index << (PAGE_CACHE_SHIFT - bbits) + * So, for page sized blocks (4K on 32 bit platforms), + * this wraps at around 8Tb (hence MAX_LFS_FILESIZE which is + * (((u64)PAGE_CACHE_SIZE << (BITS_PER_LONG-1))-1) + * but for smaller blocksizes it is less (bbits = log2 bsize). + * Note1: get_block_t takes a long (implicit cast from above) + * Note2: The Large Block Device (LBD and HAVE_SECTOR_T) patch + * can optionally convert the [unsigned] long from above into + * an [unsigned] long long. + */ + +#if BITS_PER_LONG == 32 +# if defined(CONFIG_LBDAF) + ASSERT(sizeof(sector_t) == 8); + pagefactor = PAGE_CACHE_SIZE; + bitshift = BITS_PER_LONG; +# else + pagefactor = PAGE_CACHE_SIZE >> (PAGE_CACHE_SHIFT - blockshift); +# endif +#endif + + return (((__uint64_t)pagefactor) << bitshift) - 1; +} + +STATIC int +xfs_blkdev_get( + xfs_mount_t *mp, + const char *name, + struct block_device **bdevp) +{ + int error = 0; + + *bdevp = blkdev_get_by_path(name, FMODE_READ|FMODE_WRITE|FMODE_EXCL, + mp); + if (IS_ERR(*bdevp)) { + error = PTR_ERR(*bdevp); + xfs_warn(mp, "Invalid device [%s], error=%d\n", name, error); + } + + return -error; +} + +STATIC void +xfs_blkdev_put( + struct block_device *bdev) +{ + if (bdev) + blkdev_put(bdev, FMODE_READ|FMODE_WRITE|FMODE_EXCL); +} + +void +xfs_blkdev_issue_flush( + xfs_buftarg_t *buftarg) +{ + blkdev_issue_flush(buftarg->bt_bdev, GFP_KERNEL, NULL); +} + +STATIC void +xfs_close_devices( + struct xfs_mount *mp) +{ + if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) { + struct block_device *logdev = mp->m_logdev_targp->bt_bdev; + xfs_free_buftarg(mp, mp->m_logdev_targp); + xfs_blkdev_put(logdev); + } + if (mp->m_rtdev_targp) { + struct block_device *rtdev = mp->m_rtdev_targp->bt_bdev; + xfs_free_buftarg(mp, mp->m_rtdev_targp); + xfs_blkdev_put(rtdev); + } + xfs_free_buftarg(mp, mp->m_ddev_targp); +} + +/* + * The file system configurations are: + * (1) device (partition) with data and internal log + * (2) logical volume with data and log subvolumes. + * (3) logical volume with data, log, and realtime subvolumes. + * + * We only have to handle opening the log and realtime volumes here if + * they are present. The data subvolume has already been opened by + * get_sb_bdev() and is stored in sb->s_bdev. + */ +STATIC int +xfs_open_devices( + struct xfs_mount *mp) +{ + struct block_device *ddev = mp->m_super->s_bdev; + struct block_device *logdev = NULL, *rtdev = NULL; + int error; + + /* + * Open real time and log devices - order is important. + */ + if (mp->m_logname) { + error = xfs_blkdev_get(mp, mp->m_logname, &logdev); + if (error) + goto out; + } + + if (mp->m_rtname) { + error = xfs_blkdev_get(mp, mp->m_rtname, &rtdev); + if (error) + goto out_close_logdev; + + if (rtdev == ddev || rtdev == logdev) { + xfs_warn(mp, + "Cannot mount filesystem with identical rtdev and ddev/logdev."); + error = EINVAL; + goto out_close_rtdev; + } + } + + /* + * Setup xfs_mount buffer target pointers + */ + error = ENOMEM; + mp->m_ddev_targp = xfs_alloc_buftarg(mp, ddev, 0, mp->m_fsname); + if (!mp->m_ddev_targp) + goto out_close_rtdev; + + if (rtdev) { + mp->m_rtdev_targp = xfs_alloc_buftarg(mp, rtdev, 1, + mp->m_fsname); + if (!mp->m_rtdev_targp) + goto out_free_ddev_targ; + } + + if (logdev && logdev != ddev) { + mp->m_logdev_targp = xfs_alloc_buftarg(mp, logdev, 1, + mp->m_fsname); + if (!mp->m_logdev_targp) + goto out_free_rtdev_targ; + } else { + mp->m_logdev_targp = mp->m_ddev_targp; + } + + return 0; + + out_free_rtdev_targ: + if (mp->m_rtdev_targp) + xfs_free_buftarg(mp, mp->m_rtdev_targp); + out_free_ddev_targ: + xfs_free_buftarg(mp, mp->m_ddev_targp); + out_close_rtdev: + if (rtdev) + xfs_blkdev_put(rtdev); + out_close_logdev: + if (logdev && logdev != ddev) + xfs_blkdev_put(logdev); + out: + return error; +} + +/* + * Setup xfs_mount buffer target pointers based on superblock + */ +STATIC int +xfs_setup_devices( + struct xfs_mount *mp) +{ + int error; + + error = xfs_setsize_buftarg(mp->m_ddev_targp, mp->m_sb.sb_blocksize, + mp->m_sb.sb_sectsize); + if (error) + return error; + + if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) { + unsigned int log_sector_size = BBSIZE; + + if (xfs_sb_version_hassector(&mp->m_sb)) + log_sector_size = mp->m_sb.sb_logsectsize; + error = xfs_setsize_buftarg(mp->m_logdev_targp, + mp->m_sb.sb_blocksize, + log_sector_size); + if (error) + return error; + } + if (mp->m_rtdev_targp) { + error = xfs_setsize_buftarg(mp->m_rtdev_targp, + mp->m_sb.sb_blocksize, + mp->m_sb.sb_sectsize); + if (error) + return error; + } + + return 0; +} + +/* Catch misguided souls that try to use this interface on XFS */ +STATIC struct inode * +xfs_fs_alloc_inode( + struct super_block *sb) +{ + BUG(); + return NULL; +} + +/* + * Now that the generic code is guaranteed not to be accessing + * the linux inode, we can reclaim the inode. + */ +STATIC void +xfs_fs_destroy_inode( + struct inode *inode) +{ + struct xfs_inode *ip = XFS_I(inode); + + trace_xfs_destroy_inode(ip); + + XFS_STATS_INC(vn_reclaim); + + /* bad inode, get out here ASAP */ + if (is_bad_inode(inode)) + goto out_reclaim; + + xfs_ioend_wait(ip); + + ASSERT(XFS_FORCED_SHUTDOWN(ip->i_mount) || ip->i_delayed_blks == 0); + + /* + * We should never get here with one of the reclaim flags already set. + */ + ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIMABLE)); + ASSERT_ALWAYS(!xfs_iflags_test(ip, XFS_IRECLAIM)); + + /* + * We always use background reclaim here because even if the + * inode is clean, it still may be under IO and hence we have + * to take the flush lock. The background reclaim path handles + * this more efficiently than we can here, so simply let background + * reclaim tear down all inodes. + */ +out_reclaim: + xfs_inode_set_reclaim_tag(ip); +} + +/* + * Slab object creation initialisation for the XFS inode. + * This covers only the idempotent fields in the XFS inode; + * all other fields need to be initialised on allocation + * from the slab. This avoids the need to repeatedly initialise + * fields in the xfs inode that left in the initialise state + * when freeing the inode. + */ +STATIC void +xfs_fs_inode_init_once( + void *inode) +{ + struct xfs_inode *ip = inode; + + memset(ip, 0, sizeof(struct xfs_inode)); + + /* vfs inode */ + inode_init_once(VFS_I(ip)); + + /* xfs inode */ + atomic_set(&ip->i_iocount, 0); + atomic_set(&ip->i_pincount, 0); + spin_lock_init(&ip->i_flags_lock); + init_waitqueue_head(&ip->i_ipin_wait); + /* + * Because we want to use a counting completion, complete + * the flush completion once to allow a single access to + * the flush completion without blocking. + */ + init_completion(&ip->i_flush); + complete(&ip->i_flush); + + mrlock_init(&ip->i_lock, MRLOCK_ALLOW_EQUAL_PRI|MRLOCK_BARRIER, + "xfsino", ip->i_ino); +} + +/* + * Dirty the XFS inode when mark_inode_dirty_sync() is called so that + * we catch unlogged VFS level updates to the inode. + * + * We need the barrier() to maintain correct ordering between unlogged + * updates and the transaction commit code that clears the i_update_core + * field. This requires all updates to be completed before marking the + * inode dirty. + */ +STATIC void +xfs_fs_dirty_inode( + struct inode *inode, + int flags) +{ + barrier(); + XFS_I(inode)->i_update_core = 1; +} + +STATIC int +xfs_log_inode( + struct xfs_inode *ip) +{ + struct xfs_mount *mp = ip->i_mount; + struct xfs_trans *tp; + int error; + + xfs_iunlock(ip, XFS_ILOCK_SHARED); + tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS); + error = xfs_trans_reserve(tp, 0, XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0); + + if (error) { + xfs_trans_cancel(tp, 0); + /* we need to return with the lock hold shared */ + xfs_ilock(ip, XFS_ILOCK_SHARED); + return error; + } + + xfs_ilock(ip, XFS_ILOCK_EXCL); + + /* + * Note - it's possible that we might have pushed ourselves out of the + * way during trans_reserve which would flush the inode. But there's + * no guarantee that the inode buffer has actually gone out yet (it's + * delwri). Plus the buffer could be pinned anyway if it's part of + * an inode in another recent transaction. So we play it safe and + * fire off the transaction anyway. + */ + xfs_trans_ijoin(tp, ip); + xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); + error = xfs_trans_commit(tp, 0); + xfs_ilock_demote(ip, XFS_ILOCK_EXCL); + + return error; +} + +STATIC int +xfs_fs_write_inode( + struct inode *inode, + struct writeback_control *wbc) +{ + struct xfs_inode *ip = XFS_I(inode); + struct xfs_mount *mp = ip->i_mount; + int error = EAGAIN; + + trace_xfs_write_inode(ip); + + if (XFS_FORCED_SHUTDOWN(mp)) + return XFS_ERROR(EIO); + + if (wbc->sync_mode == WB_SYNC_ALL) { + /* + * Make sure the inode has made it it into the log. Instead + * of forcing it all the way to stable storage using a + * synchronous transaction we let the log force inside the + * ->sync_fs call do that for thus, which reduces the number + * of synchronous log foces dramatically. + */ + xfs_ioend_wait(ip); + xfs_ilock(ip, XFS_ILOCK_SHARED); + if (ip->i_update_core) { + error = xfs_log_inode(ip); + if (error) + goto out_unlock; + } + } else { + /* + * We make this non-blocking if the inode is contended, return + * EAGAIN to indicate to the caller that they did not succeed. + * This prevents the flush path from blocking on inodes inside + * another operation right now, they get caught later by + * xfs_sync. + */ + if (!xfs_ilock_nowait(ip, XFS_ILOCK_SHARED)) + goto out; + + if (xfs_ipincount(ip) || !xfs_iflock_nowait(ip)) + goto out_unlock; + + /* + * Now we have the flush lock and the inode is not pinned, we + * can check if the inode is really clean as we know that + * there are no pending transaction completions, it is not + * waiting on the delayed write queue and there is no IO in + * progress. + */ + if (xfs_inode_clean(ip)) { + xfs_ifunlock(ip); + error = 0; + goto out_unlock; + } + error = xfs_iflush(ip, SYNC_TRYLOCK); + } + + out_unlock: + xfs_iunlock(ip, XFS_ILOCK_SHARED); + out: + /* + * if we failed to write out the inode then mark + * it dirty again so we'll try again later. + */ + if (error) + xfs_mark_inode_dirty_sync(ip); + return -error; +} + +STATIC void +xfs_fs_evict_inode( + struct inode *inode) +{ + xfs_inode_t *ip = XFS_I(inode); + + trace_xfs_evict_inode(ip); + + truncate_inode_pages(&inode->i_data, 0); + end_writeback(inode); + XFS_STATS_INC(vn_rele); + XFS_STATS_INC(vn_remove); + XFS_STATS_DEC(vn_active); + + /* + * The iolock is used by the file system to coordinate reads, + * writes, and block truncates. Up to this point the lock + * protected concurrent accesses by users of the inode. But + * from here forward we're doing some final processing of the + * inode because we're done with it, and although we reuse the + * iolock for protection it is really a distinct lock class + * (in the lockdep sense) from before. To keep lockdep happy + * (and basically indicate what we are doing), we explicitly + * re-init the iolock here. + */ + ASSERT(!rwsem_is_locked(&ip->i_iolock.mr_lock)); + mrlock_init(&ip->i_iolock, MRLOCK_BARRIER, "xfsio", ip->i_ino); + lockdep_set_class_and_name(&ip->i_iolock.mr_lock, + &xfs_iolock_reclaimable, "xfs_iolock_reclaimable"); + + xfs_inactive(ip); +} + +STATIC void +xfs_free_fsname( + struct xfs_mount *mp) +{ + kfree(mp->m_fsname); + kfree(mp->m_rtname); + kfree(mp->m_logname); +} + +STATIC void +xfs_fs_put_super( + struct super_block *sb) +{ + struct xfs_mount *mp = XFS_M(sb); + + /* + * Unregister the memory shrinker before we tear down the mount + * structure so we don't have memory reclaim racing with us here. + */ + xfs_inode_shrinker_unregister(mp); + xfs_syncd_stop(mp); + + /* + * Blow away any referenced inode in the filestreams cache. + * This can and will cause log traffic as inodes go inactive + * here. + */ + xfs_filestream_unmount(mp); + + XFS_bflush(mp->m_ddev_targp); + + xfs_unmountfs(mp); + xfs_freesb(mp); + xfs_icsb_destroy_counters(mp); + xfs_close_devices(mp); + xfs_free_fsname(mp); + kfree(mp); +} + +STATIC int +xfs_fs_sync_fs( + struct super_block *sb, + int wait) +{ + struct xfs_mount *mp = XFS_M(sb); + int error; + + /* + * Not much we can do for the first async pass. Writing out the + * superblock would be counter-productive as we are going to redirty + * when writing out other data and metadata (and writing out a single + * block is quite fast anyway). + * + * Try to asynchronously kick off quota syncing at least. + */ + if (!wait) { + xfs_qm_sync(mp, SYNC_TRYLOCK); + return 0; + } + + error = xfs_quiesce_data(mp); + if (error) + return -error; + + if (laptop_mode) { + /* + * The disk must be active because we're syncing. + * We schedule xfssyncd now (now that the disk is + * active) instead of later (when it might not be). + */ + flush_delayed_work_sync(&mp->m_sync_work); + } + + return 0; +} + +STATIC int +xfs_fs_statfs( + struct dentry *dentry, + struct kstatfs *statp) +{ + struct xfs_mount *mp = XFS_M(dentry->d_sb); + xfs_sb_t *sbp = &mp->m_sb; + struct xfs_inode *ip = XFS_I(dentry->d_inode); + __uint64_t fakeinos, id; + xfs_extlen_t lsize; + __int64_t ffree; + + statp->f_type = XFS_SB_MAGIC; + statp->f_namelen = MAXNAMELEN - 1; + + id = huge_encode_dev(mp->m_ddev_targp->bt_dev); + statp->f_fsid.val[0] = (u32)id; + statp->f_fsid.val[1] = (u32)(id >> 32); + + xfs_icsb_sync_counters(mp, XFS_ICSB_LAZY_COUNT); + + spin_lock(&mp->m_sb_lock); + statp->f_bsize = sbp->sb_blocksize; + lsize = sbp->sb_logstart ? sbp->sb_logblocks : 0; + statp->f_blocks = sbp->sb_dblocks - lsize; + statp->f_bfree = statp->f_bavail = + sbp->sb_fdblocks - XFS_ALLOC_SET_ASIDE(mp); + fakeinos = statp->f_bfree << sbp->sb_inopblog; + statp->f_files = + MIN(sbp->sb_icount + fakeinos, (__uint64_t)XFS_MAXINUMBER); + if (mp->m_maxicount) + statp->f_files = min_t(typeof(statp->f_files), + statp->f_files, + mp->m_maxicount); + + /* make sure statp->f_ffree does not underflow */ + ffree = statp->f_files - (sbp->sb_icount - sbp->sb_ifree); + statp->f_ffree = max_t(__int64_t, ffree, 0); + + spin_unlock(&mp->m_sb_lock); + + if ((ip->i_d.di_flags & XFS_DIFLAG_PROJINHERIT) || + ((mp->m_qflags & (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD))) == + (XFS_PQUOTA_ACCT|XFS_OQUOTA_ENFD)) + xfs_qm_statvfs(ip, statp); + return 0; +} + +STATIC void +xfs_save_resvblks(struct xfs_mount *mp) +{ + __uint64_t resblks = 0; + + mp->m_resblks_save = mp->m_resblks; + xfs_reserve_blocks(mp, &resblks, NULL); +} + +STATIC void +xfs_restore_resvblks(struct xfs_mount *mp) +{ + __uint64_t resblks; + + if (mp->m_resblks_save) { + resblks = mp->m_resblks_save; + mp->m_resblks_save = 0; + } else + resblks = xfs_default_resblks(mp); + + xfs_reserve_blocks(mp, &resblks, NULL); +} + +STATIC int +xfs_fs_remount( + struct super_block *sb, + int *flags, + char *options) +{ + struct xfs_mount *mp = XFS_M(sb); + substring_t args[MAX_OPT_ARGS]; + char *p; + int error; + + while ((p = strsep(&options, ",")) != NULL) { + int token; + + if (!*p) + continue; + + token = match_token(p, tokens, args); + switch (token) { + case Opt_barrier: + mp->m_flags |= XFS_MOUNT_BARRIER; + break; + case Opt_nobarrier: + mp->m_flags &= ~XFS_MOUNT_BARRIER; + break; + default: + /* + * Logically we would return an error here to prevent + * users from believing they might have changed + * mount options using remount which can't be changed. + * + * But unfortunately mount(8) adds all options from + * mtab and fstab to the mount arguments in some cases + * so we can't blindly reject options, but have to + * check for each specified option if it actually + * differs from the currently set option and only + * reject it if that's the case. + * + * Until that is implemented we return success for + * every remount request, and silently ignore all + * options that we can't actually change. + */ +#if 0 + xfs_info(mp, + "mount option \"%s\" not supported for remount\n", p); + return -EINVAL; +#else + break; +#endif + } + } + + /* ro -> rw */ + if ((mp->m_flags & XFS_MOUNT_RDONLY) && !(*flags & MS_RDONLY)) { + mp->m_flags &= ~XFS_MOUNT_RDONLY; + + /* + * If this is the first remount to writeable state we + * might have some superblock changes to update. + */ + if (mp->m_update_flags) { + error = xfs_mount_log_sb(mp, mp->m_update_flags); + if (error) { + xfs_warn(mp, "failed to write sb changes"); + return error; + } + mp->m_update_flags = 0; + } + + /* + * Fill out the reserve pool if it is empty. Use the stashed + * value if it is non-zero, otherwise go with the default. + */ + xfs_restore_resvblks(mp); + } + + /* rw -> ro */ + if (!(mp->m_flags & XFS_MOUNT_RDONLY) && (*flags & MS_RDONLY)) { + /* + * After we have synced the data but before we sync the + * metadata, we need to free up the reserve block pool so that + * the used block count in the superblock on disk is correct at + * the end of the remount. Stash the current reserve pool size + * so that if we get remounted rw, we can return it to the same + * size. + */ + + xfs_quiesce_data(mp); + xfs_save_resvblks(mp); + xfs_quiesce_attr(mp); + mp->m_flags |= XFS_MOUNT_RDONLY; + } + + return 0; +} + +/* + * Second stage of a freeze. The data is already frozen so we only + * need to take care of the metadata. Once that's done write a dummy + * record to dirty the log in case of a crash while frozen. + */ +STATIC int +xfs_fs_freeze( + struct super_block *sb) +{ + struct xfs_mount *mp = XFS_M(sb); + + xfs_save_resvblks(mp); + xfs_quiesce_attr(mp); + return -xfs_fs_log_dummy(mp); +} + +STATIC int +xfs_fs_unfreeze( + struct super_block *sb) +{ + struct xfs_mount *mp = XFS_M(sb); + + xfs_restore_resvblks(mp); + return 0; +} + +STATIC int +xfs_fs_show_options( + struct seq_file *m, + struct vfsmount *mnt) +{ + return -xfs_showargs(XFS_M(mnt->mnt_sb), m); +} + +/* + * This function fills in xfs_mount_t fields based on mount args. + * Note: the superblock _has_ now been read in. + */ +STATIC int +xfs_finish_flags( + struct xfs_mount *mp) +{ + int ronly = (mp->m_flags & XFS_MOUNT_RDONLY); + + /* Fail a mount where the logbuf is smaller than the log stripe */ + if (xfs_sb_version_haslogv2(&mp->m_sb)) { + if (mp->m_logbsize <= 0 && + mp->m_sb.sb_logsunit > XLOG_BIG_RECORD_BSIZE) { + mp->m_logbsize = mp->m_sb.sb_logsunit; + } else if (mp->m_logbsize > 0 && + mp->m_logbsize < mp->m_sb.sb_logsunit) { + xfs_warn(mp, + "logbuf size must be greater than or equal to log stripe size"); + return XFS_ERROR(EINVAL); + } + } else { + /* Fail a mount if the logbuf is larger than 32K */ + if (mp->m_logbsize > XLOG_BIG_RECORD_BSIZE) { + xfs_warn(mp, + "logbuf size for version 1 logs must be 16K or 32K"); + return XFS_ERROR(EINVAL); + } + } + + /* + * mkfs'ed attr2 will turn on attr2 mount unless explicitly + * told by noattr2 to turn it off + */ + if (xfs_sb_version_hasattr2(&mp->m_sb) && + !(mp->m_flags & XFS_MOUNT_NOATTR2)) + mp->m_flags |= XFS_MOUNT_ATTR2; + + /* + * prohibit r/w mounts of read-only filesystems + */ + if ((mp->m_sb.sb_flags & XFS_SBF_READONLY) && !ronly) { + xfs_warn(mp, + "cannot mount a read-only filesystem as read-write"); + return XFS_ERROR(EROFS); + } + + return 0; +} + +STATIC int +xfs_fs_fill_super( + struct super_block *sb, + void *data, + int silent) +{ + struct inode *root; + struct xfs_mount *mp = NULL; + int flags = 0, error = ENOMEM; + + mp = kzalloc(sizeof(struct xfs_mount), GFP_KERNEL); + if (!mp) + goto out; + + spin_lock_init(&mp->m_sb_lock); + mutex_init(&mp->m_growlock); + atomic_set(&mp->m_active_trans, 0); + + mp->m_super = sb; + sb->s_fs_info = mp; + + error = xfs_parseargs(mp, (char *)data); + if (error) + goto out_free_fsname; + + sb_min_blocksize(sb, BBSIZE); + sb->s_xattr = xfs_xattr_handlers; + sb->s_export_op = &xfs_export_operations; +#ifdef CONFIG_XFS_QUOTA + sb->s_qcop = &xfs_quotactl_operations; +#endif + sb->s_op = &xfs_super_operations; + + if (silent) + flags |= XFS_MFSI_QUIET; + + error = xfs_open_devices(mp); + if (error) + goto out_free_fsname; + + error = xfs_icsb_init_counters(mp); + if (error) + goto out_close_devices; + + error = xfs_readsb(mp, flags); + if (error) + goto out_destroy_counters; + + error = xfs_finish_flags(mp); + if (error) + goto out_free_sb; + + error = xfs_setup_devices(mp); + if (error) + goto out_free_sb; + + error = xfs_filestream_mount(mp); + if (error) + goto out_free_sb; + + /* + * we must configure the block size in the superblock before we run the + * full mount process as the mount process can lookup and cache inodes. + * For the same reason we must also initialise the syncd and register + * the inode cache shrinker so that inodes can be reclaimed during + * operations like a quotacheck that iterate all inodes in the + * filesystem. + */ + sb->s_magic = XFS_SB_MAGIC; + sb->s_blocksize = mp->m_sb.sb_blocksize; + sb->s_blocksize_bits = ffs(sb->s_blocksize) - 1; + sb->s_maxbytes = xfs_max_file_offset(sb->s_blocksize_bits); + sb->s_time_gran = 1; + set_posix_acl_flag(sb); + + xfs_inode_shrinker_register(mp); + + error = xfs_mountfs(mp); + if (error) + goto out_filestream_unmount; + + error = xfs_syncd_init(mp); + if (error) + goto out_unmount; + + root = igrab(VFS_I(mp->m_rootip)); + if (!root) { + error = ENOENT; + goto out_syncd_stop; + } + if (is_bad_inode(root)) { + error = EINVAL; + goto out_syncd_stop; + } + sb->s_root = d_alloc_root(root); + if (!sb->s_root) { + error = ENOMEM; + goto out_iput; + } + + return 0; + + out_filestream_unmount: + xfs_inode_shrinker_unregister(mp); + xfs_filestream_unmount(mp); + out_free_sb: + xfs_freesb(mp); + out_destroy_counters: + xfs_icsb_destroy_counters(mp); + out_close_devices: + xfs_close_devices(mp); + out_free_fsname: + xfs_free_fsname(mp); + kfree(mp); + out: + return -error; + + out_iput: + iput(root); + out_syncd_stop: + xfs_syncd_stop(mp); + out_unmount: + xfs_inode_shrinker_unregister(mp); + + /* + * Blow away any referenced inode in the filestreams cache. + * This can and will cause log traffic as inodes go inactive + * here. + */ + xfs_filestream_unmount(mp); + + XFS_bflush(mp->m_ddev_targp); + + xfs_unmountfs(mp); + goto out_free_sb; +} + +STATIC struct dentry * +xfs_fs_mount( + struct file_system_type *fs_type, + int flags, + const char *dev_name, + void *data) +{ + return mount_bdev(fs_type, flags, dev_name, data, xfs_fs_fill_super); +} + +static const struct super_operations xfs_super_operations = { + .alloc_inode = xfs_fs_alloc_inode, + .destroy_inode = xfs_fs_destroy_inode, + .dirty_inode = xfs_fs_dirty_inode, + .write_inode = xfs_fs_write_inode, + .evict_inode = xfs_fs_evict_inode, + .put_super = xfs_fs_put_super, + .sync_fs = xfs_fs_sync_fs, + .freeze_fs = xfs_fs_freeze, + .unfreeze_fs = xfs_fs_unfreeze, + .statfs = xfs_fs_statfs, + .remount_fs = xfs_fs_remount, + .show_options = xfs_fs_show_options, +}; + +static struct file_system_type xfs_fs_type = { + .owner = THIS_MODULE, + .name = "xfs", + .mount = xfs_fs_mount, + .kill_sb = kill_block_super, + .fs_flags = FS_REQUIRES_DEV, +}; + +STATIC int __init +xfs_init_zones(void) +{ + + xfs_ioend_zone = kmem_zone_init(sizeof(xfs_ioend_t), "xfs_ioend"); + if (!xfs_ioend_zone) + goto out; + + xfs_ioend_pool = mempool_create_slab_pool(4 * MAX_BUF_PER_PAGE, + xfs_ioend_zone); + if (!xfs_ioend_pool) + goto out_destroy_ioend_zone; + + xfs_log_ticket_zone = kmem_zone_init(sizeof(xlog_ticket_t), + "xfs_log_ticket"); + if (!xfs_log_ticket_zone) + goto out_destroy_ioend_pool; + + xfs_bmap_free_item_zone = kmem_zone_init(sizeof(xfs_bmap_free_item_t), + "xfs_bmap_free_item"); + if (!xfs_bmap_free_item_zone) + goto out_destroy_log_ticket_zone; + + xfs_btree_cur_zone = kmem_zone_init(sizeof(xfs_btree_cur_t), + "xfs_btree_cur"); + if (!xfs_btree_cur_zone) + goto out_destroy_bmap_free_item_zone; + + xfs_da_state_zone = kmem_zone_init(sizeof(xfs_da_state_t), + "xfs_da_state"); + if (!xfs_da_state_zone) + goto out_destroy_btree_cur_zone; + + xfs_dabuf_zone = kmem_zone_init(sizeof(xfs_dabuf_t), "xfs_dabuf"); + if (!xfs_dabuf_zone) + goto out_destroy_da_state_zone; + + xfs_ifork_zone = kmem_zone_init(sizeof(xfs_ifork_t), "xfs_ifork"); + if (!xfs_ifork_zone) + goto out_destroy_dabuf_zone; + + xfs_trans_zone = kmem_zone_init(sizeof(xfs_trans_t), "xfs_trans"); + if (!xfs_trans_zone) + goto out_destroy_ifork_zone; + + xfs_log_item_desc_zone = + kmem_zone_init(sizeof(struct xfs_log_item_desc), + "xfs_log_item_desc"); + if (!xfs_log_item_desc_zone) + goto out_destroy_trans_zone; + + /* + * The size of the zone allocated buf log item is the maximum + * size possible under XFS. This wastes a little bit of memory, + * but it is much faster. + */ + xfs_buf_item_zone = kmem_zone_init((sizeof(xfs_buf_log_item_t) + + (((XFS_MAX_BLOCKSIZE / XFS_BLF_CHUNK) / + NBWORD) * sizeof(int))), "xfs_buf_item"); + if (!xfs_buf_item_zone) + goto out_destroy_log_item_desc_zone; + + xfs_efd_zone = kmem_zone_init((sizeof(xfs_efd_log_item_t) + + ((XFS_EFD_MAX_FAST_EXTENTS - 1) * + sizeof(xfs_extent_t))), "xfs_efd_item"); + if (!xfs_efd_zone) + goto out_destroy_buf_item_zone; + + xfs_efi_zone = kmem_zone_init((sizeof(xfs_efi_log_item_t) + + ((XFS_EFI_MAX_FAST_EXTENTS - 1) * + sizeof(xfs_extent_t))), "xfs_efi_item"); + if (!xfs_efi_zone) + goto out_destroy_efd_zone; + + xfs_inode_zone = + kmem_zone_init_flags(sizeof(xfs_inode_t), "xfs_inode", + KM_ZONE_HWALIGN | KM_ZONE_RECLAIM | KM_ZONE_SPREAD, + xfs_fs_inode_init_once); + if (!xfs_inode_zone) + goto out_destroy_efi_zone; + + xfs_ili_zone = + kmem_zone_init_flags(sizeof(xfs_inode_log_item_t), "xfs_ili", + KM_ZONE_SPREAD, NULL); + if (!xfs_ili_zone) + goto out_destroy_inode_zone; + + return 0; + + out_destroy_inode_zone: + kmem_zone_destroy(xfs_inode_zone); + out_destroy_efi_zone: + kmem_zone_destroy(xfs_efi_zone); + out_destroy_efd_zone: + kmem_zone_destroy(xfs_efd_zone); + out_destroy_buf_item_zone: + kmem_zone_destroy(xfs_buf_item_zone); + out_destroy_log_item_desc_zone: + kmem_zone_destroy(xfs_log_item_desc_zone); + out_destroy_trans_zone: + kmem_zone_destroy(xfs_trans_zone); + out_destroy_ifork_zone: + kmem_zone_destroy(xfs_ifork_zone); + out_destroy_dabuf_zone: + kmem_zone_destroy(xfs_dabuf_zone); + out_destroy_da_state_zone: + kmem_zone_destroy(xfs_da_state_zone); + out_destroy_btree_cur_zone: + kmem_zone_destroy(xfs_btree_cur_zone); + out_destroy_bmap_free_item_zone: + kmem_zone_destroy(xfs_bmap_free_item_zone); + out_destroy_log_ticket_zone: + kmem_zone_destroy(xfs_log_ticket_zone); + out_destroy_ioend_pool: + mempool_destroy(xfs_ioend_pool); + out_destroy_ioend_zone: + kmem_zone_destroy(xfs_ioend_zone); + out: + return -ENOMEM; +} + +STATIC void +xfs_destroy_zones(void) +{ + kmem_zone_destroy(xfs_ili_zone); + kmem_zone_destroy(xfs_inode_zone); + kmem_zone_destroy(xfs_efi_zone); + kmem_zone_destroy(xfs_efd_zone); + kmem_zone_destroy(xfs_buf_item_zone); + kmem_zone_destroy(xfs_log_item_desc_zone); + kmem_zone_destroy(xfs_trans_zone); + kmem_zone_destroy(xfs_ifork_zone); + kmem_zone_destroy(xfs_dabuf_zone); + kmem_zone_destroy(xfs_da_state_zone); + kmem_zone_destroy(xfs_btree_cur_zone); + kmem_zone_destroy(xfs_bmap_free_item_zone); + kmem_zone_destroy(xfs_log_ticket_zone); + mempool_destroy(xfs_ioend_pool); + kmem_zone_destroy(xfs_ioend_zone); + +} + +STATIC int __init +xfs_init_workqueues(void) +{ + /* + * max_active is set to 8 to give enough concurency to allow + * multiple work operations on each CPU to run. This allows multiple + * filesystems to be running sync work concurrently, and scales with + * the number of CPUs in the system. + */ + xfs_syncd_wq = alloc_workqueue("xfssyncd", WQ_CPU_INTENSIVE, 8); + if (!xfs_syncd_wq) + goto out; + + xfs_ail_wq = alloc_workqueue("xfsail", WQ_CPU_INTENSIVE, 8); + if (!xfs_ail_wq) + goto out_destroy_syncd; + + return 0; + +out_destroy_syncd: + destroy_workqueue(xfs_syncd_wq); +out: + return -ENOMEM; +} + +STATIC void +xfs_destroy_workqueues(void) +{ + destroy_workqueue(xfs_ail_wq); + destroy_workqueue(xfs_syncd_wq); +} + +STATIC int __init +init_xfs_fs(void) +{ + int error; + + printk(KERN_INFO XFS_VERSION_STRING " with " + XFS_BUILD_OPTIONS " enabled\n"); + + xfs_ioend_init(); + xfs_dir_startup(); + + error = xfs_init_zones(); + if (error) + goto out; + + error = xfs_init_workqueues(); + if (error) + goto out_destroy_zones; + + error = xfs_mru_cache_init(); + if (error) + goto out_destroy_wq; + + error = xfs_filestream_init(); + if (error) + goto out_mru_cache_uninit; + + error = xfs_buf_init(); + if (error) + goto out_filestream_uninit; + + error = xfs_init_procfs(); + if (error) + goto out_buf_terminate; + + error = xfs_sysctl_register(); + if (error) + goto out_cleanup_procfs; + + vfs_initquota(); + + error = register_filesystem(&xfs_fs_type); + if (error) + goto out_sysctl_unregister; + return 0; + + out_sysctl_unregister: + xfs_sysctl_unregister(); + out_cleanup_procfs: + xfs_cleanup_procfs(); + out_buf_terminate: + xfs_buf_terminate(); + out_filestream_uninit: + xfs_filestream_uninit(); + out_mru_cache_uninit: + xfs_mru_cache_uninit(); + out_destroy_wq: + xfs_destroy_workqueues(); + out_destroy_zones: + xfs_destroy_zones(); + out: + return error; +} + +STATIC void __exit +exit_xfs_fs(void) +{ + vfs_exitquota(); + unregister_filesystem(&xfs_fs_type); + xfs_sysctl_unregister(); + xfs_cleanup_procfs(); + xfs_buf_terminate(); + xfs_filestream_uninit(); + xfs_mru_cache_uninit(); + xfs_destroy_workqueues(); + xfs_destroy_zones(); +} + +module_init(init_xfs_fs); +module_exit(exit_xfs_fs); + +MODULE_AUTHOR("Silicon Graphics, Inc."); +MODULE_DESCRIPTION(XFS_VERSION_STRING " with " XFS_BUILD_OPTIONS " enabled"); +MODULE_LICENSE("GPL"); diff --git a/fs/xfs/linux/xfs_super.h b/fs/xfs/linux/xfs_super.h new file mode 100644 index 0000000..50a3266 --- /dev/null +++ b/fs/xfs/linux/xfs_super.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_SUPER_H__ +#define __XFS_SUPER_H__ + +#include + +#ifdef CONFIG_XFS_QUOTA +extern void xfs_qm_init(void); +extern void xfs_qm_exit(void); +# define vfs_initquota() xfs_qm_init() +# define vfs_exitquota() xfs_qm_exit() +#else +# define vfs_initquota() do { } while (0) +# define vfs_exitquota() do { } while (0) +#endif + +#ifdef CONFIG_XFS_POSIX_ACL +# define XFS_ACL_STRING "ACLs, " +# define set_posix_acl_flag(sb) ((sb)->s_flags |= MS_POSIXACL) +#else +# define XFS_ACL_STRING +# define set_posix_acl_flag(sb) do { } while (0) +#endif + +#define XFS_SECURITY_STRING "security attributes, " + +#ifdef CONFIG_XFS_RT +# define XFS_REALTIME_STRING "realtime, " +#else +# define XFS_REALTIME_STRING +#endif + +#if XFS_BIG_BLKNOS +# if XFS_BIG_INUMS +# define XFS_BIGFS_STRING "large block/inode numbers, " +# else +# define XFS_BIGFS_STRING "large block numbers, " +# endif +#else +# define XFS_BIGFS_STRING +#endif + +#ifdef DEBUG +# define XFS_DBG_STRING "debug" +#else +# define XFS_DBG_STRING "no debug" +#endif + +#define XFS_VERSION_STRING "SGI XFS" +#define XFS_BUILD_OPTIONS XFS_ACL_STRING \ + XFS_SECURITY_STRING \ + XFS_REALTIME_STRING \ + XFS_BIGFS_STRING \ + XFS_DBG_STRING /* DBG must be last */ + +struct xfs_inode; +struct xfs_mount; +struct xfs_buftarg; +struct block_device; + +extern __uint64_t xfs_max_file_offset(unsigned int); + +extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); + +extern const struct export_operations xfs_export_operations; +extern const struct xattr_handler *xfs_xattr_handlers[]; +extern const struct quotactl_ops xfs_quotactl_operations; + +#define XFS_M(sb) ((struct xfs_mount *)((sb)->s_fs_info)) + +#endif /* __XFS_SUPER_H__ */ diff --git a/fs/xfs/linux/xfs_sync.c b/fs/xfs/linux/xfs_sync.c new file mode 100644 index 0000000..5cc158e --- /dev/null +++ b/fs/xfs/linux/xfs_sync.c @@ -0,0 +1,1082 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_types.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_trans_priv.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_mount.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "xfs_dinode.h" +#include "xfs_error.h" +#include "xfs_filestream.h" +#include "xfs_vnodeops.h" +#include "xfs_inode_item.h" +#include "xfs_quota.h" +#include "xfs_trace.h" +#include "xfs_fsops.h" + +#include +#include + +struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ + +/* + * The inode lookup is done in batches to keep the amount of lock traffic and + * radix tree lookups to a minimum. The batch size is a trade off between + * lookup reduction and stack usage. This is in the reclaim path, so we can't + * be too greedy. + */ +#define XFS_LOOKUP_BATCH 32 + +STATIC int +xfs_inode_ag_walk_grab( + struct xfs_inode *ip) +{ + struct inode *inode = VFS_I(ip); + + ASSERT(rcu_read_lock_held()); + + /* + * check for stale RCU freed inode + * + * If the inode has been reallocated, it doesn't matter if it's not in + * the AG we are walking - we are walking for writeback, so if it + * passes all the "valid inode" checks and is dirty, then we'll write + * it back anyway. If it has been reallocated and still being + * initialised, the XFS_INEW check below will catch it. + */ + spin_lock(&ip->i_flags_lock); + if (!ip->i_ino) + goto out_unlock_noent; + + /* avoid new or reclaimable inodes. Leave for reclaim code to flush */ + if (__xfs_iflags_test(ip, XFS_INEW | XFS_IRECLAIMABLE | XFS_IRECLAIM)) + goto out_unlock_noent; + spin_unlock(&ip->i_flags_lock); + + /* nothing to sync during shutdown */ + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) + return EFSCORRUPTED; + + /* If we can't grab the inode, it must on it's way to reclaim. */ + if (!igrab(inode)) + return ENOENT; + + if (is_bad_inode(inode)) { + IRELE(ip); + return ENOENT; + } + + /* inode is valid */ + return 0; + +out_unlock_noent: + spin_unlock(&ip->i_flags_lock); + return ENOENT; +} + +STATIC int +xfs_inode_ag_walk( + struct xfs_mount *mp, + struct xfs_perag *pag, + int (*execute)(struct xfs_inode *ip, + struct xfs_perag *pag, int flags), + int flags) +{ + uint32_t first_index; + int last_error = 0; + int skipped; + int done; + int nr_found; + +restart: + done = 0; + skipped = 0; + first_index = 0; + nr_found = 0; + do { + struct xfs_inode *batch[XFS_LOOKUP_BATCH]; + int error = 0; + int i; + + rcu_read_lock(); + nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, + (void **)batch, first_index, + XFS_LOOKUP_BATCH); + if (!nr_found) { + rcu_read_unlock(); + break; + } + + /* + * Grab the inodes before we drop the lock. if we found + * nothing, nr == 0 and the loop will be skipped. + */ + for (i = 0; i < nr_found; i++) { + struct xfs_inode *ip = batch[i]; + + if (done || xfs_inode_ag_walk_grab(ip)) + batch[i] = NULL; + + /* + * Update the index for the next lookup. Catch + * overflows into the next AG range which can occur if + * we have inodes in the last block of the AG and we + * are currently pointing to the last inode. + * + * Because we may see inodes that are from the wrong AG + * due to RCU freeing and reallocation, only update the + * index if it lies in this AG. It was a race that lead + * us to see this inode, so another lookup from the + * same index will not find it again. + */ + if (XFS_INO_TO_AGNO(mp, ip->i_ino) != pag->pag_agno) + continue; + first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) + done = 1; + } + + /* unlock now we've grabbed the inodes. */ + rcu_read_unlock(); + + for (i = 0; i < nr_found; i++) { + if (!batch[i]) + continue; + error = execute(batch[i], pag, flags); + IRELE(batch[i]); + if (error == EAGAIN) { + skipped++; + continue; + } + if (error && last_error != EFSCORRUPTED) + last_error = error; + } + + /* bail out if the filesystem is corrupted. */ + if (error == EFSCORRUPTED) + break; + + } while (nr_found && !done); + + if (skipped) { + delay(1); + goto restart; + } + return last_error; +} + +int +xfs_inode_ag_iterator( + struct xfs_mount *mp, + int (*execute)(struct xfs_inode *ip, + struct xfs_perag *pag, int flags), + int flags) +{ + struct xfs_perag *pag; + int error = 0; + int last_error = 0; + xfs_agnumber_t ag; + + ag = 0; + while ((pag = xfs_perag_get(mp, ag))) { + ag = pag->pag_agno + 1; + error = xfs_inode_ag_walk(mp, pag, execute, flags); + xfs_perag_put(pag); + if (error) { + last_error = error; + if (error == EFSCORRUPTED) + break; + } + } + return XFS_ERROR(last_error); +} + +STATIC int +xfs_sync_inode_data( + struct xfs_inode *ip, + struct xfs_perag *pag, + int flags) +{ + struct inode *inode = VFS_I(ip); + struct address_space *mapping = inode->i_mapping; + int error = 0; + + if (!mapping_tagged(mapping, PAGECACHE_TAG_DIRTY)) + goto out_wait; + + if (!xfs_ilock_nowait(ip, XFS_IOLOCK_SHARED)) { + if (flags & SYNC_TRYLOCK) + goto out_wait; + xfs_ilock(ip, XFS_IOLOCK_SHARED); + } + + error = xfs_flush_pages(ip, 0, -1, (flags & SYNC_WAIT) ? + 0 : XBF_ASYNC, FI_NONE); + xfs_iunlock(ip, XFS_IOLOCK_SHARED); + + out_wait: + if (flags & SYNC_WAIT) + xfs_ioend_wait(ip); + return error; +} + +STATIC int +xfs_sync_inode_attr( + struct xfs_inode *ip, + struct xfs_perag *pag, + int flags) +{ + int error = 0; + + xfs_ilock(ip, XFS_ILOCK_SHARED); + if (xfs_inode_clean(ip)) + goto out_unlock; + if (!xfs_iflock_nowait(ip)) { + if (!(flags & SYNC_WAIT)) + goto out_unlock; + xfs_iflock(ip); + } + + if (xfs_inode_clean(ip)) { + xfs_ifunlock(ip); + goto out_unlock; + } + + error = xfs_iflush(ip, flags); + + /* + * We don't want to try again on non-blocking flushes that can't run + * again immediately. If an inode really must be written, then that's + * what the SYNC_WAIT flag is for. + */ + if (error == EAGAIN) { + ASSERT(!(flags & SYNC_WAIT)); + error = 0; + } + + out_unlock: + xfs_iunlock(ip, XFS_ILOCK_SHARED); + return error; +} + +/* + * Write out pagecache data for the whole filesystem. + */ +STATIC int +xfs_sync_data( + struct xfs_mount *mp, + int flags) +{ + int error; + + ASSERT((flags & ~(SYNC_TRYLOCK|SYNC_WAIT)) == 0); + + error = xfs_inode_ag_iterator(mp, xfs_sync_inode_data, flags); + if (error) + return XFS_ERROR(error); + + xfs_log_force(mp, (flags & SYNC_WAIT) ? XFS_LOG_SYNC : 0); + return 0; +} + +/* + * Write out inode metadata (attributes) for the whole filesystem. + */ +STATIC int +xfs_sync_attr( + struct xfs_mount *mp, + int flags) +{ + ASSERT((flags & ~SYNC_WAIT) == 0); + + return xfs_inode_ag_iterator(mp, xfs_sync_inode_attr, flags); +} + +STATIC int +xfs_sync_fsdata( + struct xfs_mount *mp) +{ + struct xfs_buf *bp; + + /* + * If the buffer is pinned then push on the log so we won't get stuck + * waiting in the write for someone, maybe ourselves, to flush the log. + * + * Even though we just pushed the log above, we did not have the + * superblock buffer locked at that point so it can become pinned in + * between there and here. + */ + bp = xfs_getsb(mp, 0); + if (XFS_BUF_ISPINNED(bp)) + xfs_log_force(mp, 0); + + return xfs_bwrite(mp, bp); +} + +/* + * When remounting a filesystem read-only or freezing the filesystem, we have + * two phases to execute. This first phase is syncing the data before we + * quiesce the filesystem, and the second is flushing all the inodes out after + * we've waited for all the transactions created by the first phase to + * complete. The second phase ensures that the inodes are written to their + * location on disk rather than just existing in transactions in the log. This + * means after a quiesce there is no log replay required to write the inodes to + * disk (this is the main difference between a sync and a quiesce). + */ +/* + * First stage of freeze - no writers will make progress now we are here, + * so we flush delwri and delalloc buffers here, then wait for all I/O to + * complete. Data is frozen at that point. Metadata is not frozen, + * transactions can still occur here so don't bother flushing the buftarg + * because it'll just get dirty again. + */ +int +xfs_quiesce_data( + struct xfs_mount *mp) +{ + int error, error2 = 0; + + xfs_qm_sync(mp, SYNC_TRYLOCK); + xfs_qm_sync(mp, SYNC_WAIT); + + /* force out the newly dirtied log buffers */ + xfs_log_force(mp, XFS_LOG_SYNC); + + /* write superblock and hoover up shutdown errors */ + error = xfs_sync_fsdata(mp); + + /* make sure all delwri buffers are written out */ + xfs_flush_buftarg(mp->m_ddev_targp, 1); + + /* mark the log as covered if needed */ + if (xfs_log_need_covered(mp)) + error2 = xfs_fs_log_dummy(mp); + + /* flush data-only devices */ + if (mp->m_rtdev_targp) + XFS_bflush(mp->m_rtdev_targp); + + return error ? error : error2; +} + +STATIC void +xfs_quiesce_fs( + struct xfs_mount *mp) +{ + int count = 0, pincount; + + xfs_reclaim_inodes(mp, 0); + xfs_flush_buftarg(mp->m_ddev_targp, 0); + + /* + * This loop must run at least twice. The first instance of the loop + * will flush most meta data but that will generate more meta data + * (typically directory updates). Which then must be flushed and + * logged before we can write the unmount record. We also so sync + * reclaim of inodes to catch any that the above delwri flush skipped. + */ + do { + xfs_reclaim_inodes(mp, SYNC_WAIT); + xfs_sync_attr(mp, SYNC_WAIT); + pincount = xfs_flush_buftarg(mp->m_ddev_targp, 1); + if (!pincount) { + delay(50); + count++; + } + } while (count < 2); +} + +/* + * Second stage of a quiesce. The data is already synced, now we have to take + * care of the metadata. New transactions are already blocked, so we need to + * wait for any remaining transactions to drain out before proceeding. + */ +void +xfs_quiesce_attr( + struct xfs_mount *mp) +{ + int error = 0; + + /* wait for all modifications to complete */ + while (atomic_read(&mp->m_active_trans) > 0) + delay(100); + + /* flush inodes and push all remaining buffers out to disk */ + xfs_quiesce_fs(mp); + + /* + * Just warn here till VFS can correctly support + * read-only remount without racing. + */ + WARN_ON(atomic_read(&mp->m_active_trans) != 0); + + /* Push the superblock and write an unmount record */ + error = xfs_log_sbcount(mp); + if (error) + xfs_warn(mp, "xfs_attr_quiesce: failed to log sb changes. " + "Frozen image may not be consistent."); + xfs_log_unmount_write(mp); + xfs_unmountfs_writesb(mp); +} + +static void +xfs_syncd_queue_sync( + struct xfs_mount *mp) +{ + queue_delayed_work(xfs_syncd_wq, &mp->m_sync_work, + msecs_to_jiffies(xfs_syncd_centisecs * 10)); +} + +/* + * Every sync period we need to unpin all items, reclaim inodes and sync + * disk quotas. We might need to cover the log to indicate that the + * filesystem is idle and not frozen. + */ +STATIC void +xfs_sync_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(to_delayed_work(work), + struct xfs_mount, m_sync_work); + int error; + + if (!(mp->m_flags & XFS_MOUNT_RDONLY)) { + /* dgc: errors ignored here */ + if (mp->m_super->s_frozen == SB_UNFROZEN && + xfs_log_need_covered(mp)) + error = xfs_fs_log_dummy(mp); + else + xfs_log_force(mp, 0); + error = xfs_qm_sync(mp, SYNC_TRYLOCK); + + /* start pushing all the metadata that is currently dirty */ + xfs_ail_push_all(mp->m_ail); + } + + /* queue us up again */ + xfs_syncd_queue_sync(mp); +} + +/* + * Queue a new inode reclaim pass if there are reclaimable inodes and there + * isn't a reclaim pass already in progress. By default it runs every 5s based + * on the xfs syncd work default of 30s. Perhaps this should have it's own + * tunable, but that can be done if this method proves to be ineffective or too + * aggressive. + */ +static void +xfs_syncd_queue_reclaim( + struct xfs_mount *mp) +{ + + /* + * We can have inodes enter reclaim after we've shut down the syncd + * workqueue during unmount, so don't allow reclaim work to be queued + * during unmount. + */ + if (!(mp->m_super->s_flags & MS_ACTIVE)) + return; + + rcu_read_lock(); + if (radix_tree_tagged(&mp->m_perag_tree, XFS_ICI_RECLAIM_TAG)) { + queue_delayed_work(xfs_syncd_wq, &mp->m_reclaim_work, + msecs_to_jiffies(xfs_syncd_centisecs / 6 * 10)); + } + rcu_read_unlock(); +} + +/* + * This is a fast pass over the inode cache to try to get reclaim moving on as + * many inodes as possible in a short period of time. It kicks itself every few + * seconds, as well as being kicked by the inode cache shrinker when memory + * goes low. It scans as quickly as possible avoiding locked inodes or those + * already being flushed, and once done schedules a future pass. + */ +STATIC void +xfs_reclaim_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(to_delayed_work(work), + struct xfs_mount, m_reclaim_work); + + xfs_reclaim_inodes(mp, SYNC_TRYLOCK); + xfs_syncd_queue_reclaim(mp); +} + +/* + * Flush delayed allocate data, attempting to free up reserved space + * from existing allocations. At this point a new allocation attempt + * has failed with ENOSPC and we are in the process of scratching our + * heads, looking about for more room. + * + * Queue a new data flush if there isn't one already in progress and + * wait for completion of the flush. This means that we only ever have one + * inode flush in progress no matter how many ENOSPC events are occurring and + * so will prevent the system from bogging down due to every concurrent + * ENOSPC event scanning all the active inodes in the system for writeback. + */ +void +xfs_flush_inodes( + struct xfs_inode *ip) +{ + struct xfs_mount *mp = ip->i_mount; + + queue_work(xfs_syncd_wq, &mp->m_flush_work); + flush_work_sync(&mp->m_flush_work); +} + +STATIC void +xfs_flush_worker( + struct work_struct *work) +{ + struct xfs_mount *mp = container_of(work, + struct xfs_mount, m_flush_work); + + xfs_sync_data(mp, SYNC_TRYLOCK); + xfs_sync_data(mp, SYNC_TRYLOCK | SYNC_WAIT); +} + +int +xfs_syncd_init( + struct xfs_mount *mp) +{ + INIT_WORK(&mp->m_flush_work, xfs_flush_worker); + INIT_DELAYED_WORK(&mp->m_sync_work, xfs_sync_worker); + INIT_DELAYED_WORK(&mp->m_reclaim_work, xfs_reclaim_worker); + + xfs_syncd_queue_sync(mp); + xfs_syncd_queue_reclaim(mp); + + return 0; +} + +void +xfs_syncd_stop( + struct xfs_mount *mp) +{ + cancel_delayed_work_sync(&mp->m_sync_work); + cancel_delayed_work_sync(&mp->m_reclaim_work); + cancel_work_sync(&mp->m_flush_work); +} + +void +__xfs_inode_set_reclaim_tag( + struct xfs_perag *pag, + struct xfs_inode *ip) +{ + radix_tree_tag_set(&pag->pag_ici_root, + XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino), + XFS_ICI_RECLAIM_TAG); + + if (!pag->pag_ici_reclaimable) { + /* propagate the reclaim tag up into the perag radix tree */ + spin_lock(&ip->i_mount->m_perag_lock); + radix_tree_tag_set(&ip->i_mount->m_perag_tree, + XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino), + XFS_ICI_RECLAIM_TAG); + spin_unlock(&ip->i_mount->m_perag_lock); + + /* schedule periodic background inode reclaim */ + xfs_syncd_queue_reclaim(ip->i_mount); + + trace_xfs_perag_set_reclaim(ip->i_mount, pag->pag_agno, + -1, _RET_IP_); + } + pag->pag_ici_reclaimable++; +} + +/* + * We set the inode flag atomically with the radix tree tag. + * Once we get tag lookups on the radix tree, this inode flag + * can go away. + */ +void +xfs_inode_set_reclaim_tag( + xfs_inode_t *ip) +{ + struct xfs_mount *mp = ip->i_mount; + struct xfs_perag *pag; + + pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); + spin_lock(&pag->pag_ici_lock); + spin_lock(&ip->i_flags_lock); + __xfs_inode_set_reclaim_tag(pag, ip); + __xfs_iflags_set(ip, XFS_IRECLAIMABLE); + spin_unlock(&ip->i_flags_lock); + spin_unlock(&pag->pag_ici_lock); + xfs_perag_put(pag); +} + +STATIC void +__xfs_inode_clear_reclaim( + xfs_perag_t *pag, + xfs_inode_t *ip) +{ + pag->pag_ici_reclaimable--; + if (!pag->pag_ici_reclaimable) { + /* clear the reclaim tag from the perag radix tree */ + spin_lock(&ip->i_mount->m_perag_lock); + radix_tree_tag_clear(&ip->i_mount->m_perag_tree, + XFS_INO_TO_AGNO(ip->i_mount, ip->i_ino), + XFS_ICI_RECLAIM_TAG); + spin_unlock(&ip->i_mount->m_perag_lock); + trace_xfs_perag_clear_reclaim(ip->i_mount, pag->pag_agno, + -1, _RET_IP_); + } +} + +void +__xfs_inode_clear_reclaim_tag( + xfs_mount_t *mp, + xfs_perag_t *pag, + xfs_inode_t *ip) +{ + radix_tree_tag_clear(&pag->pag_ici_root, + XFS_INO_TO_AGINO(mp, ip->i_ino), XFS_ICI_RECLAIM_TAG); + __xfs_inode_clear_reclaim(pag, ip); +} + +/* + * Grab the inode for reclaim exclusively. + * Return 0 if we grabbed it, non-zero otherwise. + */ +STATIC int +xfs_reclaim_inode_grab( + struct xfs_inode *ip, + int flags) +{ + ASSERT(rcu_read_lock_held()); + + /* quick check for stale RCU freed inode */ + if (!ip->i_ino) + return 1; + + /* + * do some unlocked checks first to avoid unnecessary lock traffic. + * The first is a flush lock check, the second is a already in reclaim + * check. Only do these checks if we are not going to block on locks. + */ + if ((flags & SYNC_TRYLOCK) && + (!ip->i_flush.done || __xfs_iflags_test(ip, XFS_IRECLAIM))) { + return 1; + } + + /* + * The radix tree lock here protects a thread in xfs_iget from racing + * with us starting reclaim on the inode. Once we have the + * XFS_IRECLAIM flag set it will not touch us. + * + * Due to RCU lookup, we may find inodes that have been freed and only + * have XFS_IRECLAIM set. Indeed, we may see reallocated inodes that + * aren't candidates for reclaim at all, so we must check the + * XFS_IRECLAIMABLE is set first before proceeding to reclaim. + */ + spin_lock(&ip->i_flags_lock); + if (!__xfs_iflags_test(ip, XFS_IRECLAIMABLE) || + __xfs_iflags_test(ip, XFS_IRECLAIM)) { + /* not a reclaim candidate. */ + spin_unlock(&ip->i_flags_lock); + return 1; + } + __xfs_iflags_set(ip, XFS_IRECLAIM); + spin_unlock(&ip->i_flags_lock); + return 0; +} + +/* + * Inodes in different states need to be treated differently, and the return + * value of xfs_iflush is not sufficient to get this right. The following table + * lists the inode states and the reclaim actions necessary for non-blocking + * reclaim: + * + * + * inode state iflush ret required action + * --------------- ---------- --------------- + * bad - reclaim + * shutdown EIO unpin and reclaim + * clean, unpinned 0 reclaim + * stale, unpinned 0 reclaim + * clean, pinned(*) 0 requeue + * stale, pinned EAGAIN requeue + * dirty, delwri ok 0 requeue + * dirty, delwri blocked EAGAIN requeue + * dirty, sync flush 0 reclaim + * + * (*) dgc: I don't think the clean, pinned state is possible but it gets + * handled anyway given the order of checks implemented. + * + * As can be seen from the table, the return value of xfs_iflush() is not + * sufficient to correctly decide the reclaim action here. The checks in + * xfs_iflush() might look like duplicates, but they are not. + * + * Also, because we get the flush lock first, we know that any inode that has + * been flushed delwri has had the flush completed by the time we check that + * the inode is clean. The clean inode check needs to be done before flushing + * the inode delwri otherwise we would loop forever requeuing clean inodes as + * we cannot tell apart a successful delwri flush and a clean inode from the + * return value of xfs_iflush(). + * + * Note that because the inode is flushed delayed write by background + * writeback, the flush lock may already be held here and waiting on it can + * result in very long latencies. Hence for sync reclaims, where we wait on the + * flush lock, the caller should push out delayed write inodes first before + * trying to reclaim them to minimise the amount of time spent waiting. For + * background relaim, we just requeue the inode for the next pass. + * + * Hence the order of actions after gaining the locks should be: + * bad => reclaim + * shutdown => unpin and reclaim + * pinned, delwri => requeue + * pinned, sync => unpin + * stale => reclaim + * clean => reclaim + * dirty, delwri => flush and requeue + * dirty, sync => flush, wait and reclaim + */ +STATIC int +xfs_reclaim_inode( + struct xfs_inode *ip, + struct xfs_perag *pag, + int sync_mode) +{ + int error; + +restart: + error = 0; + xfs_ilock(ip, XFS_ILOCK_EXCL); + if (!xfs_iflock_nowait(ip)) { + if (!(sync_mode & SYNC_WAIT)) + goto out; + xfs_iflock(ip); + } + + if (is_bad_inode(VFS_I(ip))) + goto reclaim; + if (XFS_FORCED_SHUTDOWN(ip->i_mount)) { + xfs_iunpin_wait(ip); + goto reclaim; + } + if (xfs_ipincount(ip)) { + if (!(sync_mode & SYNC_WAIT)) { + xfs_ifunlock(ip); + goto out; + } + xfs_iunpin_wait(ip); + } + if (xfs_iflags_test(ip, XFS_ISTALE)) + goto reclaim; + if (xfs_inode_clean(ip)) + goto reclaim; + + /* + * Now we have an inode that needs flushing. + * + * We do a nonblocking flush here even if we are doing a SYNC_WAIT + * reclaim as we can deadlock with inode cluster removal. + * xfs_ifree_cluster() can lock the inode buffer before it locks the + * ip->i_lock, and we are doing the exact opposite here. As a result, + * doing a blocking xfs_itobp() to get the cluster buffer will result + * in an ABBA deadlock with xfs_ifree_cluster(). + * + * As xfs_ifree_cluser() must gather all inodes that are active in the + * cache to mark them stale, if we hit this case we don't actually want + * to do IO here - we want the inode marked stale so we can simply + * reclaim it. Hence if we get an EAGAIN error on a SYNC_WAIT flush, + * just unlock the inode, back off and try again. Hopefully the next + * pass through will see the stale flag set on the inode. + */ + error = xfs_iflush(ip, SYNC_TRYLOCK | sync_mode); + if (sync_mode & SYNC_WAIT) { + if (error == EAGAIN) { + xfs_iunlock(ip, XFS_ILOCK_EXCL); + /* backoff longer than in xfs_ifree_cluster */ + delay(2); + goto restart; + } + xfs_iflock(ip); + goto reclaim; + } + + /* + * When we have to flush an inode but don't have SYNC_WAIT set, we + * flush the inode out using a delwri buffer and wait for the next + * call into reclaim to find it in a clean state instead of waiting for + * it now. We also don't return errors here - if the error is transient + * then the next reclaim pass will flush the inode, and if the error + * is permanent then the next sync reclaim will reclaim the inode and + * pass on the error. + */ + if (error && error != EAGAIN && !XFS_FORCED_SHUTDOWN(ip->i_mount)) { + xfs_warn(ip->i_mount, + "inode 0x%llx background reclaim flush failed with %d", + (long long)ip->i_ino, error); + } +out: + xfs_iflags_clear(ip, XFS_IRECLAIM); + xfs_iunlock(ip, XFS_ILOCK_EXCL); + /* + * We could return EAGAIN here to make reclaim rescan the inode tree in + * a short while. However, this just burns CPU time scanning the tree + * waiting for IO to complete and xfssyncd never goes back to the idle + * state. Instead, return 0 to let the next scheduled background reclaim + * attempt to reclaim the inode again. + */ + return 0; + +reclaim: + xfs_ifunlock(ip); + xfs_iunlock(ip, XFS_ILOCK_EXCL); + + XFS_STATS_INC(xs_ig_reclaims); + /* + * Remove the inode from the per-AG radix tree. + * + * Because radix_tree_delete won't complain even if the item was never + * added to the tree assert that it's been there before to catch + * problems with the inode life time early on. + */ + spin_lock(&pag->pag_ici_lock); + if (!radix_tree_delete(&pag->pag_ici_root, + XFS_INO_TO_AGINO(ip->i_mount, ip->i_ino))) + ASSERT(0); + __xfs_inode_clear_reclaim(pag, ip); + spin_unlock(&pag->pag_ici_lock); + + /* + * Here we do an (almost) spurious inode lock in order to coordinate + * with inode cache radix tree lookups. This is because the lookup + * can reference the inodes in the cache without taking references. + * + * We make that OK here by ensuring that we wait until the inode is + * unlocked after the lookup before we go ahead and free it. We get + * both the ilock and the iolock because the code may need to drop the + * ilock one but will still hold the iolock. + */ + xfs_ilock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + xfs_qm_dqdetach(ip); + xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + + xfs_inode_free(ip); + return error; + +} + +/* + * Walk the AGs and reclaim the inodes in them. Even if the filesystem is + * corrupted, we still want to try to reclaim all the inodes. If we don't, + * then a shut down during filesystem unmount reclaim walk leak all the + * unreclaimed inodes. + */ +int +xfs_reclaim_inodes_ag( + struct xfs_mount *mp, + int flags, + int *nr_to_scan) +{ + struct xfs_perag *pag; + int error = 0; + int last_error = 0; + xfs_agnumber_t ag; + int trylock = flags & SYNC_TRYLOCK; + int skipped; + +restart: + ag = 0; + skipped = 0; + while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { + unsigned long first_index = 0; + int done = 0; + int nr_found = 0; + + ag = pag->pag_agno + 1; + + if (trylock) { + if (!mutex_trylock(&pag->pag_ici_reclaim_lock)) { + skipped++; + xfs_perag_put(pag); + continue; + } + first_index = pag->pag_ici_reclaim_cursor; + } else + mutex_lock(&pag->pag_ici_reclaim_lock); + + do { + struct xfs_inode *batch[XFS_LOOKUP_BATCH]; + int i; + + rcu_read_lock(); + nr_found = radix_tree_gang_lookup_tag( + &pag->pag_ici_root, + (void **)batch, first_index, + XFS_LOOKUP_BATCH, + XFS_ICI_RECLAIM_TAG); + if (!nr_found) { + done = 1; + rcu_read_unlock(); + break; + } + + /* + * Grab the inodes before we drop the lock. if we found + * nothing, nr == 0 and the loop will be skipped. + */ + for (i = 0; i < nr_found; i++) { + struct xfs_inode *ip = batch[i]; + + if (done || xfs_reclaim_inode_grab(ip, flags)) + batch[i] = NULL; + + /* + * Update the index for the next lookup. Catch + * overflows into the next AG range which can + * occur if we have inodes in the last block of + * the AG and we are currently pointing to the + * last inode. + * + * Because we may see inodes that are from the + * wrong AG due to RCU freeing and + * reallocation, only update the index if it + * lies in this AG. It was a race that lead us + * to see this inode, so another lookup from + * the same index will not find it again. + */ + if (XFS_INO_TO_AGNO(mp, ip->i_ino) != + pag->pag_agno) + continue; + first_index = XFS_INO_TO_AGINO(mp, ip->i_ino + 1); + if (first_index < XFS_INO_TO_AGINO(mp, ip->i_ino)) + done = 1; + } + + /* unlock now we've grabbed the inodes. */ + rcu_read_unlock(); + + for (i = 0; i < nr_found; i++) { + if (!batch[i]) + continue; + error = xfs_reclaim_inode(batch[i], pag, flags); + if (error && last_error != EFSCORRUPTED) + last_error = error; + } + + *nr_to_scan -= XFS_LOOKUP_BATCH; + + } while (nr_found && !done && *nr_to_scan > 0); + + if (trylock && !done) + pag->pag_ici_reclaim_cursor = first_index; + else + pag->pag_ici_reclaim_cursor = 0; + mutex_unlock(&pag->pag_ici_reclaim_lock); + xfs_perag_put(pag); + } + + /* + * if we skipped any AG, and we still have scan count remaining, do + * another pass this time using blocking reclaim semantics (i.e + * waiting on the reclaim locks and ignoring the reclaim cursors). This + * ensure that when we get more reclaimers than AGs we block rather + * than spin trying to execute reclaim. + */ + if (trylock && skipped && *nr_to_scan > 0) { + trylock = 0; + goto restart; + } + return XFS_ERROR(last_error); +} + +int +xfs_reclaim_inodes( + xfs_mount_t *mp, + int mode) +{ + int nr_to_scan = INT_MAX; + + return xfs_reclaim_inodes_ag(mp, mode, &nr_to_scan); +} + +/* + * Inode cache shrinker. + * + * When called we make sure that there is a background (fast) inode reclaim in + * progress, while we will throttle the speed of reclaim via doiing synchronous + * reclaim of inodes. That means if we come across dirty inodes, we wait for + * them to be cleaned, which we hope will not be very long due to the + * background walker having already kicked the IO off on those dirty inodes. + */ +static int +xfs_reclaim_inode_shrink( + struct shrinker *shrink, + struct shrink_control *sc) +{ + struct xfs_mount *mp; + struct xfs_perag *pag; + xfs_agnumber_t ag; + int reclaimable; + int nr_to_scan = sc->nr_to_scan; + gfp_t gfp_mask = sc->gfp_mask; + + mp = container_of(shrink, struct xfs_mount, m_inode_shrink); + if (nr_to_scan) { + /* kick background reclaimer and push the AIL */ + xfs_syncd_queue_reclaim(mp); + xfs_ail_push_all(mp->m_ail); + + if (!(gfp_mask & __GFP_FS)) + return -1; + + xfs_reclaim_inodes_ag(mp, SYNC_TRYLOCK | SYNC_WAIT, + &nr_to_scan); + /* terminate if we don't exhaust the scan */ + if (nr_to_scan > 0) + return -1; + } + + reclaimable = 0; + ag = 0; + while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { + ag = pag->pag_agno + 1; + reclaimable += pag->pag_ici_reclaimable; + xfs_perag_put(pag); + } + return reclaimable; +} + +void +xfs_inode_shrinker_register( + struct xfs_mount *mp) +{ + mp->m_inode_shrink.shrink = xfs_reclaim_inode_shrink; + mp->m_inode_shrink.seeks = DEFAULT_SEEKS; + register_shrinker(&mp->m_inode_shrink); +} + +void +xfs_inode_shrinker_unregister( + struct xfs_mount *mp) +{ + unregister_shrinker(&mp->m_inode_shrink); +} diff --git a/fs/xfs/linux/xfs_sync.h b/fs/xfs/linux/xfs_sync.h new file mode 100644 index 0000000..e914fd6 --- /dev/null +++ b/fs/xfs/linux/xfs_sync.h @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2000-2006 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef XFS_SYNC_H +#define XFS_SYNC_H 1 + +struct xfs_mount; +struct xfs_perag; + +#define SYNC_WAIT 0x0001 /* wait for i/o to complete */ +#define SYNC_TRYLOCK 0x0002 /* only try to lock inodes */ + +extern struct workqueue_struct *xfs_syncd_wq; /* sync workqueue */ + +int xfs_syncd_init(struct xfs_mount *mp); +void xfs_syncd_stop(struct xfs_mount *mp); + +int xfs_quiesce_data(struct xfs_mount *mp); +void xfs_quiesce_attr(struct xfs_mount *mp); + +void xfs_flush_inodes(struct xfs_inode *ip); + +int xfs_reclaim_inodes(struct xfs_mount *mp, int mode); + +void xfs_inode_set_reclaim_tag(struct xfs_inode *ip); +void __xfs_inode_set_reclaim_tag(struct xfs_perag *pag, struct xfs_inode *ip); +void __xfs_inode_clear_reclaim_tag(struct xfs_mount *mp, struct xfs_perag *pag, + struct xfs_inode *ip); + +int xfs_sync_inode_grab(struct xfs_inode *ip); +int xfs_inode_ag_iterator(struct xfs_mount *mp, + int (*execute)(struct xfs_inode *ip, struct xfs_perag *pag, int flags), + int flags); + +void xfs_inode_shrinker_register(struct xfs_mount *mp); +void xfs_inode_shrinker_unregister(struct xfs_mount *mp); + +#endif diff --git a/fs/xfs/linux/xfs_sysctl.c b/fs/xfs/linux/xfs_sysctl.c new file mode 100644 index 0000000..ee2d2ad --- /dev/null +++ b/fs/xfs/linux/xfs_sysctl.c @@ -0,0 +1,252 @@ +/* + * Copyright (c) 2001-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include +#include +#include "xfs_error.h" + +static struct ctl_table_header *xfs_table_header; + +#ifdef CONFIG_PROC_FS +STATIC int +xfs_stats_clear_proc_handler( + ctl_table *ctl, + int write, + void __user *buffer, + size_t *lenp, + loff_t *ppos) +{ + int c, ret, *valp = ctl->data; + __uint32_t vn_active; + + ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); + + if (!ret && write && *valp) { + xfs_notice(NULL, "Clearing xfsstats"); + for_each_possible_cpu(c) { + preempt_disable(); + /* save vn_active, it's a universal truth! */ + vn_active = per_cpu(xfsstats, c).vn_active; + memset(&per_cpu(xfsstats, c), 0, + sizeof(struct xfsstats)); + per_cpu(xfsstats, c).vn_active = vn_active; + preempt_enable(); + } + xfs_stats_clear = 0; + } + + return ret; +} + +STATIC int +xfs_panic_mask_proc_handler( + ctl_table *ctl, + int write, + void __user *buffer, + size_t *lenp, + loff_t *ppos) +{ + int ret, *valp = ctl->data; + + ret = proc_dointvec_minmax(ctl, write, buffer, lenp, ppos); + if (!ret && write) { + xfs_panic_mask = *valp; +#ifdef DEBUG + xfs_panic_mask |= (XFS_PTAG_SHUTDOWN_CORRUPT | XFS_PTAG_LOGRES); +#endif + } + return ret; +} +#endif /* CONFIG_PROC_FS */ + +static ctl_table xfs_table[] = { + { + .procname = "irix_sgid_inherit", + .data = &xfs_params.sgid_inherit.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.sgid_inherit.min, + .extra2 = &xfs_params.sgid_inherit.max + }, + { + .procname = "irix_symlink_mode", + .data = &xfs_params.symlink_mode.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.symlink_mode.min, + .extra2 = &xfs_params.symlink_mode.max + }, + { + .procname = "panic_mask", + .data = &xfs_params.panic_mask.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = xfs_panic_mask_proc_handler, + .extra1 = &xfs_params.panic_mask.min, + .extra2 = &xfs_params.panic_mask.max + }, + + { + .procname = "error_level", + .data = &xfs_params.error_level.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.error_level.min, + .extra2 = &xfs_params.error_level.max + }, + { + .procname = "xfssyncd_centisecs", + .data = &xfs_params.syncd_timer.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.syncd_timer.min, + .extra2 = &xfs_params.syncd_timer.max + }, + { + .procname = "inherit_sync", + .data = &xfs_params.inherit_sync.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.inherit_sync.min, + .extra2 = &xfs_params.inherit_sync.max + }, + { + .procname = "inherit_nodump", + .data = &xfs_params.inherit_nodump.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.inherit_nodump.min, + .extra2 = &xfs_params.inherit_nodump.max + }, + { + .procname = "inherit_noatime", + .data = &xfs_params.inherit_noatim.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.inherit_noatim.min, + .extra2 = &xfs_params.inherit_noatim.max + }, + { + .procname = "xfsbufd_centisecs", + .data = &xfs_params.xfs_buf_timer.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.xfs_buf_timer.min, + .extra2 = &xfs_params.xfs_buf_timer.max + }, + { + .procname = "age_buffer_centisecs", + .data = &xfs_params.xfs_buf_age.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.xfs_buf_age.min, + .extra2 = &xfs_params.xfs_buf_age.max + }, + { + .procname = "inherit_nosymlinks", + .data = &xfs_params.inherit_nosym.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.inherit_nosym.min, + .extra2 = &xfs_params.inherit_nosym.max + }, + { + .procname = "rotorstep", + .data = &xfs_params.rotorstep.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.rotorstep.min, + .extra2 = &xfs_params.rotorstep.max + }, + { + .procname = "inherit_nodefrag", + .data = &xfs_params.inherit_nodfrg.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.inherit_nodfrg.min, + .extra2 = &xfs_params.inherit_nodfrg.max + }, + { + .procname = "filestream_centisecs", + .data = &xfs_params.fstrm_timer.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &xfs_params.fstrm_timer.min, + .extra2 = &xfs_params.fstrm_timer.max, + }, + /* please keep this the last entry */ +#ifdef CONFIG_PROC_FS + { + .procname = "stats_clear", + .data = &xfs_params.stats_clear.val, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = xfs_stats_clear_proc_handler, + .extra1 = &xfs_params.stats_clear.min, + .extra2 = &xfs_params.stats_clear.max + }, +#endif /* CONFIG_PROC_FS */ + + {} +}; + +static ctl_table xfs_dir_table[] = { + { + .procname = "xfs", + .mode = 0555, + .child = xfs_table + }, + {} +}; + +static ctl_table xfs_root_table[] = { + { + .procname = "fs", + .mode = 0555, + .child = xfs_dir_table + }, + {} +}; + +int +xfs_sysctl_register(void) +{ + xfs_table_header = register_sysctl_table(xfs_root_table); + if (!xfs_table_header) + return -ENOMEM; + return 0; +} + +void +xfs_sysctl_unregister(void) +{ + unregister_sysctl_table(xfs_table_header); +} diff --git a/fs/xfs/linux/xfs_sysctl.h b/fs/xfs/linux/xfs_sysctl.h new file mode 100644 index 0000000..b9937d4 --- /dev/null +++ b/fs/xfs/linux/xfs_sysctl.h @@ -0,0 +1,102 @@ +/* + * Copyright (c) 2001-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_SYSCTL_H__ +#define __XFS_SYSCTL_H__ + +#include + +/* + * Tunable xfs parameters + */ + +typedef struct xfs_sysctl_val { + int min; + int val; + int max; +} xfs_sysctl_val_t; + +typedef struct xfs_param { + xfs_sysctl_val_t sgid_inherit; /* Inherit S_ISGID if process' GID is + * not a member of parent dir GID. */ + xfs_sysctl_val_t symlink_mode; /* Link creat mode affected by umask */ + xfs_sysctl_val_t panic_mask; /* bitmask to cause panic on errors. */ + xfs_sysctl_val_t error_level; /* Degree of reporting for problems */ + xfs_sysctl_val_t syncd_timer; /* Interval between xfssyncd wakeups */ + xfs_sysctl_val_t stats_clear; /* Reset all XFS statistics to zero. */ + xfs_sysctl_val_t inherit_sync; /* Inherit the "sync" inode flag. */ + xfs_sysctl_val_t inherit_nodump;/* Inherit the "nodump" inode flag. */ + xfs_sysctl_val_t inherit_noatim;/* Inherit the "noatime" inode flag. */ + xfs_sysctl_val_t xfs_buf_timer; /* Interval between xfsbufd wakeups. */ + xfs_sysctl_val_t xfs_buf_age; /* Metadata buffer age before flush. */ + xfs_sysctl_val_t inherit_nosym; /* Inherit the "nosymlinks" flag. */ + xfs_sysctl_val_t rotorstep; /* inode32 AG rotoring control knob */ + xfs_sysctl_val_t inherit_nodfrg;/* Inherit the "nodefrag" inode flag. */ + xfs_sysctl_val_t fstrm_timer; /* Filestream dir-AG assoc'n timeout. */ +} xfs_param_t; + +/* + * xfs_error_level: + * + * How much error reporting will be done when internal problems are + * encountered. These problems normally return an EFSCORRUPTED to their + * caller, with no other information reported. + * + * 0 No error reports + * 1 Report EFSCORRUPTED errors that will cause a filesystem shutdown + * 5 Report all EFSCORRUPTED errors (all of the above errors, plus any + * additional errors that are known to not cause shutdowns) + * + * xfs_panic_mask bit 0x8 turns the error reports into panics + */ + +enum { + /* XFS_REFCACHE_SIZE = 1 */ + /* XFS_REFCACHE_PURGE = 2 */ + /* XFS_RESTRICT_CHOWN = 3 */ + XFS_SGID_INHERIT = 4, + XFS_SYMLINK_MODE = 5, + XFS_PANIC_MASK = 6, + XFS_ERRLEVEL = 7, + XFS_SYNCD_TIMER = 8, + /* XFS_PROBE_DMAPI = 9 */ + /* XFS_PROBE_IOOPS = 10 */ + /* XFS_PROBE_QUOTA = 11 */ + XFS_STATS_CLEAR = 12, + XFS_INHERIT_SYNC = 13, + XFS_INHERIT_NODUMP = 14, + XFS_INHERIT_NOATIME = 15, + XFS_BUF_TIMER = 16, + XFS_BUF_AGE = 17, + /* XFS_IO_BYPASS = 18 */ + XFS_INHERIT_NOSYM = 19, + XFS_ROTORSTEP = 20, + XFS_INHERIT_NODFRG = 21, + XFS_FILESTREAM_TIMER = 22, +}; + +extern xfs_param_t xfs_params; + +#ifdef CONFIG_SYSCTL +extern int xfs_sysctl_register(void); +extern void xfs_sysctl_unregister(void); +#else +# define xfs_sysctl_register() (0) +# define xfs_sysctl_unregister() do { } while (0) +#endif /* CONFIG_SYSCTL */ + +#endif /* __XFS_SYSCTL_H__ */ diff --git a/fs/xfs/linux/xfs_trace.c b/fs/xfs/linux/xfs_trace.c new file mode 100644 index 0000000..88d25d4 --- /dev/null +++ b/fs/xfs/linux/xfs_trace.c @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2009, Christoph Hellwig + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include "xfs.h" +#include "xfs_fs.h" +#include "xfs_types.h" +#include "xfs_bit.h" +#include "xfs_log.h" +#include "xfs_inum.h" +#include "xfs_trans.h" +#include "xfs_sb.h" +#include "xfs_ag.h" +#include "xfs_da_btree.h" +#include "xfs_bmap_btree.h" +#include "xfs_alloc_btree.h" +#include "xfs_ialloc_btree.h" +#include "xfs_dinode.h" +#include "xfs_inode.h" +#include "xfs_btree.h" +#include "xfs_mount.h" +#include "xfs_ialloc.h" +#include "xfs_itable.h" +#include "xfs_alloc.h" +#include "xfs_bmap.h" +#include "xfs_attr.h" +#include "xfs_attr_leaf.h" +#include "xfs_log_priv.h" +#include "xfs_buf_item.h" +#include "xfs_quota.h" +#include "xfs_iomap.h" +#include "xfs_aops.h" +#include "quota/xfs_dquot_item.h" +#include "quota/xfs_dquot.h" +#include "xfs_log_recover.h" +#include "xfs_inode_item.h" + +/* + * We include this last to have the helpers above available for the trace + * event implementations. + */ +#define CREATE_TRACE_POINTS +#include "xfs_trace.h" diff --git a/fs/xfs/linux/xfs_trace.h b/fs/xfs/linux/xfs_trace.h new file mode 100644 index 0000000..fda0708 --- /dev/null +++ b/fs/xfs/linux/xfs_trace.h @@ -0,0 +1,1746 @@ +/* + * Copyright (c) 2009, Christoph Hellwig + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM xfs + +#if !defined(_TRACE_XFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_XFS_H + +#include + +struct xfs_agf; +struct xfs_alloc_arg; +struct xfs_attr_list_context; +struct xfs_buf_log_item; +struct xfs_da_args; +struct xfs_da_node_entry; +struct xfs_dquot; +struct xlog_ticket; +struct log; +struct xlog_recover; +struct xlog_recover_item; +struct xfs_buf_log_format; +struct xfs_inode_log_format; + +DECLARE_EVENT_CLASS(xfs_attr_list_class, + TP_PROTO(struct xfs_attr_list_context *ctx), + TP_ARGS(ctx), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(u32, hashval) + __field(u32, blkno) + __field(u32, offset) + __field(void *, alist) + __field(int, bufsize) + __field(int, count) + __field(int, firstu) + __field(int, dupcnt) + __field(int, flags) + ), + TP_fast_assign( + __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; + __entry->ino = ctx->dp->i_ino; + __entry->hashval = ctx->cursor->hashval; + __entry->blkno = ctx->cursor->blkno; + __entry->offset = ctx->cursor->offset; + __entry->alist = ctx->alist; + __entry->bufsize = ctx->bufsize; + __entry->count = ctx->count; + __entry->firstu = ctx->firstu; + __entry->flags = ctx->flags; + ), + TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " + "alist 0x%p size %u count %u firstu %u flags %d %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->hashval, + __entry->blkno, + __entry->offset, + __entry->dupcnt, + __entry->alist, + __entry->bufsize, + __entry->count, + __entry->firstu, + __entry->flags, + __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS) + ) +) + +#define DEFINE_ATTR_LIST_EVENT(name) \ +DEFINE_EVENT(xfs_attr_list_class, name, \ + TP_PROTO(struct xfs_attr_list_context *ctx), \ + TP_ARGS(ctx)) +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_sf_all); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_leaf_end); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_full); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_add); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_wrong_blk); +DEFINE_ATTR_LIST_EVENT(xfs_attr_list_notfound); + +DECLARE_EVENT_CLASS(xfs_perag_class, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, + unsigned long caller_ip), + TP_ARGS(mp, agno, refcount, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(int, refcount) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->refcount = refcount; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d agno %u refcount %d caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->refcount, + (char *)__entry->caller_ip) +); + +#define DEFINE_PERAG_REF_EVENT(name) \ +DEFINE_EVENT(xfs_perag_class, name, \ + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, int refcount, \ + unsigned long caller_ip), \ + TP_ARGS(mp, agno, refcount, caller_ip)) +DEFINE_PERAG_REF_EVENT(xfs_perag_get); +DEFINE_PERAG_REF_EVENT(xfs_perag_get_tag); +DEFINE_PERAG_REF_EVENT(xfs_perag_put); +DEFINE_PERAG_REF_EVENT(xfs_perag_set_reclaim); +DEFINE_PERAG_REF_EVENT(xfs_perag_clear_reclaim); + +TRACE_EVENT(xfs_attr_list_node_descend, + TP_PROTO(struct xfs_attr_list_context *ctx, + struct xfs_da_node_entry *btree), + TP_ARGS(ctx, btree), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(u32, hashval) + __field(u32, blkno) + __field(u32, offset) + __field(void *, alist) + __field(int, bufsize) + __field(int, count) + __field(int, firstu) + __field(int, dupcnt) + __field(int, flags) + __field(u32, bt_hashval) + __field(u32, bt_before) + ), + TP_fast_assign( + __entry->dev = VFS_I(ctx->dp)->i_sb->s_dev; + __entry->ino = ctx->dp->i_ino; + __entry->hashval = ctx->cursor->hashval; + __entry->blkno = ctx->cursor->blkno; + __entry->offset = ctx->cursor->offset; + __entry->alist = ctx->alist; + __entry->bufsize = ctx->bufsize; + __entry->count = ctx->count; + __entry->firstu = ctx->firstu; + __entry->flags = ctx->flags; + __entry->bt_hashval = be32_to_cpu(btree->hashval); + __entry->bt_before = be32_to_cpu(btree->before); + ), + TP_printk("dev %d:%d ino 0x%llx cursor h/b/o 0x%x/0x%x/%u dupcnt %u " + "alist 0x%p size %u count %u firstu %u flags %d %s " + "node hashval %u, node before %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->hashval, + __entry->blkno, + __entry->offset, + __entry->dupcnt, + __entry->alist, + __entry->bufsize, + __entry->count, + __entry->firstu, + __entry->flags, + __print_flags(__entry->flags, "|", XFS_ATTR_FLAGS), + __entry->bt_hashval, + __entry->bt_before) +); + +TRACE_EVENT(xfs_iext_insert, + TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, + struct xfs_bmbt_irec *r, int state, unsigned long caller_ip), + TP_ARGS(ip, idx, r, state, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_extnum_t, idx) + __field(xfs_fileoff_t, startoff) + __field(xfs_fsblock_t, startblock) + __field(xfs_filblks_t, blockcount) + __field(xfs_exntst_t, state) + __field(int, bmap_state) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->idx = idx; + __entry->startoff = r->br_startoff; + __entry->startblock = r->br_startblock; + __entry->blockcount = r->br_blockcount; + __entry->state = r->br_state; + __entry->bmap_state = state; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " + "offset %lld block %lld count %lld flag %d caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), + (long)__entry->idx, + __entry->startoff, + (__int64_t)__entry->startblock, + __entry->blockcount, + __entry->state, + (char *)__entry->caller_ip) +); + +DECLARE_EVENT_CLASS(xfs_bmap_class, + TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, + unsigned long caller_ip), + TP_ARGS(ip, idx, state, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_extnum_t, idx) + __field(xfs_fileoff_t, startoff) + __field(xfs_fsblock_t, startblock) + __field(xfs_filblks_t, blockcount) + __field(xfs_exntst_t, state) + __field(int, bmap_state) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + struct xfs_ifork *ifp = (state & BMAP_ATTRFORK) ? + ip->i_afp : &ip->i_df; + struct xfs_bmbt_irec r; + + xfs_bmbt_get_all(xfs_iext_get_ext(ifp, idx), &r); + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->idx = idx; + __entry->startoff = r.br_startoff; + __entry->startblock = r.br_startblock; + __entry->blockcount = r.br_blockcount; + __entry->state = r.br_state; + __entry->bmap_state = state; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d ino 0x%llx state %s idx %ld " + "offset %lld block %lld count %lld flag %d caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_flags(__entry->bmap_state, "|", XFS_BMAP_EXT_FLAGS), + (long)__entry->idx, + __entry->startoff, + (__int64_t)__entry->startblock, + __entry->blockcount, + __entry->state, + (char *)__entry->caller_ip) +) + +#define DEFINE_BMAP_EVENT(name) \ +DEFINE_EVENT(xfs_bmap_class, name, \ + TP_PROTO(struct xfs_inode *ip, xfs_extnum_t idx, int state, \ + unsigned long caller_ip), \ + TP_ARGS(ip, idx, state, caller_ip)) +DEFINE_BMAP_EVENT(xfs_iext_remove); +DEFINE_BMAP_EVENT(xfs_bmap_pre_update); +DEFINE_BMAP_EVENT(xfs_bmap_post_update); +DEFINE_BMAP_EVENT(xfs_extlist); + +DECLARE_EVENT_CLASS(xfs_buf_class, + TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), + TP_ARGS(bp, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_daddr_t, bno) + __field(size_t, buffer_length) + __field(int, hold) + __field(int, pincount) + __field(unsigned, lockval) + __field(unsigned, flags) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = bp->b_target->bt_dev; + __entry->bno = bp->b_bn; + __entry->buffer_length = bp->b_buffer_length; + __entry->hold = atomic_read(&bp->b_hold); + __entry->pincount = atomic_read(&bp->b_pin_count); + __entry->lockval = bp->b_sema.count; + __entry->flags = bp->b_flags; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " + "lock %d flags %s caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->bno, + __entry->buffer_length, + __entry->hold, + __entry->pincount, + __entry->lockval, + __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), + (void *)__entry->caller_ip) +) + +#define DEFINE_BUF_EVENT(name) \ +DEFINE_EVENT(xfs_buf_class, name, \ + TP_PROTO(struct xfs_buf *bp, unsigned long caller_ip), \ + TP_ARGS(bp, caller_ip)) +DEFINE_BUF_EVENT(xfs_buf_init); +DEFINE_BUF_EVENT(xfs_buf_free); +DEFINE_BUF_EVENT(xfs_buf_hold); +DEFINE_BUF_EVENT(xfs_buf_rele); +DEFINE_BUF_EVENT(xfs_buf_iodone); +DEFINE_BUF_EVENT(xfs_buf_iorequest); +DEFINE_BUF_EVENT(xfs_buf_bawrite); +DEFINE_BUF_EVENT(xfs_buf_bdwrite); +DEFINE_BUF_EVENT(xfs_buf_lock); +DEFINE_BUF_EVENT(xfs_buf_lock_done); +DEFINE_BUF_EVENT(xfs_buf_trylock); +DEFINE_BUF_EVENT(xfs_buf_unlock); +DEFINE_BUF_EVENT(xfs_buf_iowait); +DEFINE_BUF_EVENT(xfs_buf_iowait_done); +DEFINE_BUF_EVENT(xfs_buf_delwri_queue); +DEFINE_BUF_EVENT(xfs_buf_delwri_dequeue); +DEFINE_BUF_EVENT(xfs_buf_delwri_split); +DEFINE_BUF_EVENT(xfs_buf_get_uncached); +DEFINE_BUF_EVENT(xfs_bdstrat_shut); +DEFINE_BUF_EVENT(xfs_buf_item_relse); +DEFINE_BUF_EVENT(xfs_buf_item_iodone); +DEFINE_BUF_EVENT(xfs_buf_item_iodone_async); +DEFINE_BUF_EVENT(xfs_buf_error_relse); +DEFINE_BUF_EVENT(xfs_trans_read_buf_io); +DEFINE_BUF_EVENT(xfs_trans_read_buf_shut); + +/* not really buffer traces, but the buf provides useful information */ +DEFINE_BUF_EVENT(xfs_btree_corrupt); +DEFINE_BUF_EVENT(xfs_da_btree_corrupt); +DEFINE_BUF_EVENT(xfs_reset_dqcounts); +DEFINE_BUF_EVENT(xfs_inode_item_push); + +/* pass flags explicitly */ +DECLARE_EVENT_CLASS(xfs_buf_flags_class, + TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), + TP_ARGS(bp, flags, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_daddr_t, bno) + __field(size_t, buffer_length) + __field(int, hold) + __field(int, pincount) + __field(unsigned, lockval) + __field(unsigned, flags) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = bp->b_target->bt_dev; + __entry->bno = bp->b_bn; + __entry->buffer_length = bp->b_buffer_length; + __entry->flags = flags; + __entry->hold = atomic_read(&bp->b_hold); + __entry->pincount = atomic_read(&bp->b_pin_count); + __entry->lockval = bp->b_sema.count; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " + "lock %d flags %s caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->bno, + __entry->buffer_length, + __entry->hold, + __entry->pincount, + __entry->lockval, + __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), + (void *)__entry->caller_ip) +) + +#define DEFINE_BUF_FLAGS_EVENT(name) \ +DEFINE_EVENT(xfs_buf_flags_class, name, \ + TP_PROTO(struct xfs_buf *bp, unsigned flags, unsigned long caller_ip), \ + TP_ARGS(bp, flags, caller_ip)) +DEFINE_BUF_FLAGS_EVENT(xfs_buf_find); +DEFINE_BUF_FLAGS_EVENT(xfs_buf_get); +DEFINE_BUF_FLAGS_EVENT(xfs_buf_read); + +TRACE_EVENT(xfs_buf_ioerror, + TP_PROTO(struct xfs_buf *bp, int error, unsigned long caller_ip), + TP_ARGS(bp, error, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_daddr_t, bno) + __field(size_t, buffer_length) + __field(unsigned, flags) + __field(int, hold) + __field(int, pincount) + __field(unsigned, lockval) + __field(int, error) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = bp->b_target->bt_dev; + __entry->bno = bp->b_bn; + __entry->buffer_length = bp->b_buffer_length; + __entry->hold = atomic_read(&bp->b_hold); + __entry->pincount = atomic_read(&bp->b_pin_count); + __entry->lockval = bp->b_sema.count; + __entry->error = error; + __entry->flags = bp->b_flags; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " + "lock %d error %d flags %s caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->bno, + __entry->buffer_length, + __entry->hold, + __entry->pincount, + __entry->lockval, + __entry->error, + __print_flags(__entry->flags, "|", XFS_BUF_FLAGS), + (void *)__entry->caller_ip) +); + +DECLARE_EVENT_CLASS(xfs_buf_item_class, + TP_PROTO(struct xfs_buf_log_item *bip), + TP_ARGS(bip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_daddr_t, buf_bno) + __field(size_t, buf_len) + __field(int, buf_hold) + __field(int, buf_pincount) + __field(int, buf_lockval) + __field(unsigned, buf_flags) + __field(unsigned, bli_recur) + __field(int, bli_refcount) + __field(unsigned, bli_flags) + __field(void *, li_desc) + __field(unsigned, li_flags) + ), + TP_fast_assign( + __entry->dev = bip->bli_buf->b_target->bt_dev; + __entry->bli_flags = bip->bli_flags; + __entry->bli_recur = bip->bli_recur; + __entry->bli_refcount = atomic_read(&bip->bli_refcount); + __entry->buf_bno = bip->bli_buf->b_bn; + __entry->buf_len = bip->bli_buf->b_buffer_length; + __entry->buf_flags = bip->bli_buf->b_flags; + __entry->buf_hold = atomic_read(&bip->bli_buf->b_hold); + __entry->buf_pincount = atomic_read(&bip->bli_buf->b_pin_count); + __entry->buf_lockval = bip->bli_buf->b_sema.count; + __entry->li_desc = bip->bli_item.li_desc; + __entry->li_flags = bip->bli_item.li_flags; + ), + TP_printk("dev %d:%d bno 0x%llx len 0x%zx hold %d pincount %d " + "lock %d flags %s recur %d refcount %d bliflags %s " + "lidesc 0x%p liflags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->buf_bno, + __entry->buf_len, + __entry->buf_hold, + __entry->buf_pincount, + __entry->buf_lockval, + __print_flags(__entry->buf_flags, "|", XFS_BUF_FLAGS), + __entry->bli_recur, + __entry->bli_refcount, + __print_flags(__entry->bli_flags, "|", XFS_BLI_FLAGS), + __entry->li_desc, + __print_flags(__entry->li_flags, "|", XFS_LI_FLAGS)) +) + +#define DEFINE_BUF_ITEM_EVENT(name) \ +DEFINE_EVENT(xfs_buf_item_class, name, \ + TP_PROTO(struct xfs_buf_log_item *bip), \ + TP_ARGS(bip)) +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_size_stale); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_format_stale); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_pin); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unpin); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unpin_stale); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_trylock); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unlock); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_unlock_stale); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_committed); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_push); +DEFINE_BUF_ITEM_EVENT(xfs_buf_item_pushbuf); +DEFINE_BUF_ITEM_EVENT(xfs_trans_get_buf); +DEFINE_BUF_ITEM_EVENT(xfs_trans_get_buf_recur); +DEFINE_BUF_ITEM_EVENT(xfs_trans_getsb); +DEFINE_BUF_ITEM_EVENT(xfs_trans_getsb_recur); +DEFINE_BUF_ITEM_EVENT(xfs_trans_read_buf); +DEFINE_BUF_ITEM_EVENT(xfs_trans_read_buf_recur); +DEFINE_BUF_ITEM_EVENT(xfs_trans_log_buf); +DEFINE_BUF_ITEM_EVENT(xfs_trans_brelse); +DEFINE_BUF_ITEM_EVENT(xfs_trans_bjoin); +DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold); +DEFINE_BUF_ITEM_EVENT(xfs_trans_bhold_release); +DEFINE_BUF_ITEM_EVENT(xfs_trans_binval); + +DECLARE_EVENT_CLASS(xfs_lock_class, + TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, + unsigned long caller_ip), + TP_ARGS(ip, lock_flags, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(int, lock_flags) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->lock_flags = lock_flags; + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d ino 0x%llx flags %s caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_flags(__entry->lock_flags, "|", XFS_LOCK_FLAGS), + (void *)__entry->caller_ip) +) + +#define DEFINE_LOCK_EVENT(name) \ +DEFINE_EVENT(xfs_lock_class, name, \ + TP_PROTO(struct xfs_inode *ip, unsigned lock_flags, \ + unsigned long caller_ip), \ + TP_ARGS(ip, lock_flags, caller_ip)) +DEFINE_LOCK_EVENT(xfs_ilock); +DEFINE_LOCK_EVENT(xfs_ilock_nowait); +DEFINE_LOCK_EVENT(xfs_ilock_demote); +DEFINE_LOCK_EVENT(xfs_iunlock); + +DECLARE_EVENT_CLASS(xfs_inode_class, + TP_PROTO(struct xfs_inode *ip), + TP_ARGS(ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + ), + TP_printk("dev %d:%d ino 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino) +) + +#define DEFINE_INODE_EVENT(name) \ +DEFINE_EVENT(xfs_inode_class, name, \ + TP_PROTO(struct xfs_inode *ip), \ + TP_ARGS(ip)) +DEFINE_INODE_EVENT(xfs_iget_skip); +DEFINE_INODE_EVENT(xfs_iget_reclaim); +DEFINE_INODE_EVENT(xfs_iget_reclaim_fail); +DEFINE_INODE_EVENT(xfs_iget_hit); +DEFINE_INODE_EVENT(xfs_iget_miss); + +DEFINE_INODE_EVENT(xfs_getattr); +DEFINE_INODE_EVENT(xfs_setattr); +DEFINE_INODE_EVENT(xfs_readlink); +DEFINE_INODE_EVENT(xfs_alloc_file_space); +DEFINE_INODE_EVENT(xfs_free_file_space); +DEFINE_INODE_EVENT(xfs_readdir); +#ifdef CONFIG_XFS_POSIX_ACL +DEFINE_INODE_EVENT(xfs_check_acl); +#endif +DEFINE_INODE_EVENT(xfs_vm_bmap); +DEFINE_INODE_EVENT(xfs_file_ioctl); +DEFINE_INODE_EVENT(xfs_file_compat_ioctl); +DEFINE_INODE_EVENT(xfs_ioctl_setattr); +DEFINE_INODE_EVENT(xfs_file_fsync); +DEFINE_INODE_EVENT(xfs_destroy_inode); +DEFINE_INODE_EVENT(xfs_write_inode); +DEFINE_INODE_EVENT(xfs_evict_inode); + +DEFINE_INODE_EVENT(xfs_dquot_dqalloc); +DEFINE_INODE_EVENT(xfs_dquot_dqdetach); + +DECLARE_EVENT_CLASS(xfs_iref_class, + TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), + TP_ARGS(ip, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(int, count) + __field(int, pincount) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->count = atomic_read(&VFS_I(ip)->i_count); + __entry->pincount = atomic_read(&ip->i_pincount); + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d ino 0x%llx count %d pincount %d caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->count, + __entry->pincount, + (char *)__entry->caller_ip) +) + +#define DEFINE_IREF_EVENT(name) \ +DEFINE_EVENT(xfs_iref_class, name, \ + TP_PROTO(struct xfs_inode *ip, unsigned long caller_ip), \ + TP_ARGS(ip, caller_ip)) +DEFINE_IREF_EVENT(xfs_ihold); +DEFINE_IREF_EVENT(xfs_irele); +DEFINE_IREF_EVENT(xfs_inode_pin); +DEFINE_IREF_EVENT(xfs_inode_unpin); +DEFINE_IREF_EVENT(xfs_inode_unpin_nowait); + +DECLARE_EVENT_CLASS(xfs_namespace_class, + TP_PROTO(struct xfs_inode *dp, struct xfs_name *name), + TP_ARGS(dp, name), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, dp_ino) + __dynamic_array(char, name, name->len) + ), + TP_fast_assign( + __entry->dev = VFS_I(dp)->i_sb->s_dev; + __entry->dp_ino = dp->i_ino; + memcpy(__get_str(name), name->name, name->len); + ), + TP_printk("dev %d:%d dp ino 0x%llx name %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->dp_ino, + __get_str(name)) +) + +#define DEFINE_NAMESPACE_EVENT(name) \ +DEFINE_EVENT(xfs_namespace_class, name, \ + TP_PROTO(struct xfs_inode *dp, struct xfs_name *name), \ + TP_ARGS(dp, name)) +DEFINE_NAMESPACE_EVENT(xfs_remove); +DEFINE_NAMESPACE_EVENT(xfs_link); +DEFINE_NAMESPACE_EVENT(xfs_lookup); +DEFINE_NAMESPACE_EVENT(xfs_create); +DEFINE_NAMESPACE_EVENT(xfs_symlink); + +TRACE_EVENT(xfs_rename, + TP_PROTO(struct xfs_inode *src_dp, struct xfs_inode *target_dp, + struct xfs_name *src_name, struct xfs_name *target_name), + TP_ARGS(src_dp, target_dp, src_name, target_name), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, src_dp_ino) + __field(xfs_ino_t, target_dp_ino) + __dynamic_array(char, src_name, src_name->len) + __dynamic_array(char, target_name, target_name->len) + ), + TP_fast_assign( + __entry->dev = VFS_I(src_dp)->i_sb->s_dev; + __entry->src_dp_ino = src_dp->i_ino; + __entry->target_dp_ino = target_dp->i_ino; + memcpy(__get_str(src_name), src_name->name, src_name->len); + memcpy(__get_str(target_name), target_name->name, target_name->len); + ), + TP_printk("dev %d:%d src dp ino 0x%llx target dp ino 0x%llx" + " src name %s target name %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->src_dp_ino, + __entry->target_dp_ino, + __get_str(src_name), + __get_str(target_name)) +) + +DECLARE_EVENT_CLASS(xfs_dquot_class, + TP_PROTO(struct xfs_dquot *dqp), + TP_ARGS(dqp), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(u32, id) + __field(unsigned, flags) + __field(unsigned, nrefs) + __field(unsigned long long, res_bcount) + __field(unsigned long long, bcount) + __field(unsigned long long, icount) + __field(unsigned long long, blk_hardlimit) + __field(unsigned long long, blk_softlimit) + __field(unsigned long long, ino_hardlimit) + __field(unsigned long long, ino_softlimit) + ), \ + TP_fast_assign( + __entry->dev = dqp->q_mount->m_super->s_dev; + __entry->id = be32_to_cpu(dqp->q_core.d_id); + __entry->flags = dqp->dq_flags; + __entry->nrefs = dqp->q_nrefs; + __entry->res_bcount = dqp->q_res_bcount; + __entry->bcount = be64_to_cpu(dqp->q_core.d_bcount); + __entry->icount = be64_to_cpu(dqp->q_core.d_icount); + __entry->blk_hardlimit = + be64_to_cpu(dqp->q_core.d_blk_hardlimit); + __entry->blk_softlimit = + be64_to_cpu(dqp->q_core.d_blk_softlimit); + __entry->ino_hardlimit = + be64_to_cpu(dqp->q_core.d_ino_hardlimit); + __entry->ino_softlimit = + be64_to_cpu(dqp->q_core.d_ino_softlimit); + ), + TP_printk("dev %d:%d id 0x%x flags %s nrefs %u res_bc 0x%llx " + "bcnt 0x%llx bhardlimit 0x%llx bsoftlimit 0x%llx " + "icnt 0x%llx ihardlimit 0x%llx isoftlimit 0x%llx]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->id, + __print_flags(__entry->flags, "|", XFS_DQ_FLAGS), + __entry->nrefs, + __entry->res_bcount, + __entry->bcount, + __entry->blk_hardlimit, + __entry->blk_softlimit, + __entry->icount, + __entry->ino_hardlimit, + __entry->ino_softlimit) +) + +#define DEFINE_DQUOT_EVENT(name) \ +DEFINE_EVENT(xfs_dquot_class, name, \ + TP_PROTO(struct xfs_dquot *dqp), \ + TP_ARGS(dqp)) +DEFINE_DQUOT_EVENT(xfs_dqadjust); +DEFINE_DQUOT_EVENT(xfs_dqreclaim_want); +DEFINE_DQUOT_EVENT(xfs_dqreclaim_dirty); +DEFINE_DQUOT_EVENT(xfs_dqreclaim_unlink); +DEFINE_DQUOT_EVENT(xfs_dqattach_found); +DEFINE_DQUOT_EVENT(xfs_dqattach_get); +DEFINE_DQUOT_EVENT(xfs_dqinit); +DEFINE_DQUOT_EVENT(xfs_dqreuse); +DEFINE_DQUOT_EVENT(xfs_dqalloc); +DEFINE_DQUOT_EVENT(xfs_dqtobp_read); +DEFINE_DQUOT_EVENT(xfs_dqread); +DEFINE_DQUOT_EVENT(xfs_dqread_fail); +DEFINE_DQUOT_EVENT(xfs_dqlookup_found); +DEFINE_DQUOT_EVENT(xfs_dqlookup_want); +DEFINE_DQUOT_EVENT(xfs_dqlookup_freelist); +DEFINE_DQUOT_EVENT(xfs_dqlookup_done); +DEFINE_DQUOT_EVENT(xfs_dqget_hit); +DEFINE_DQUOT_EVENT(xfs_dqget_miss); +DEFINE_DQUOT_EVENT(xfs_dqput); +DEFINE_DQUOT_EVENT(xfs_dqput_wait); +DEFINE_DQUOT_EVENT(xfs_dqput_free); +DEFINE_DQUOT_EVENT(xfs_dqrele); +DEFINE_DQUOT_EVENT(xfs_dqflush); +DEFINE_DQUOT_EVENT(xfs_dqflush_force); +DEFINE_DQUOT_EVENT(xfs_dqflush_done); + +DECLARE_EVENT_CLASS(xfs_loggrant_class, + TP_PROTO(struct log *log, struct xlog_ticket *tic), + TP_ARGS(log, tic), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(unsigned, trans_type) + __field(char, ocnt) + __field(char, cnt) + __field(int, curr_res) + __field(int, unit_res) + __field(unsigned int, flags) + __field(int, reserveq) + __field(int, writeq) + __field(int, grant_reserve_cycle) + __field(int, grant_reserve_bytes) + __field(int, grant_write_cycle) + __field(int, grant_write_bytes) + __field(int, curr_cycle) + __field(int, curr_block) + __field(xfs_lsn_t, tail_lsn) + ), + TP_fast_assign( + __entry->dev = log->l_mp->m_super->s_dev; + __entry->trans_type = tic->t_trans_type; + __entry->ocnt = tic->t_ocnt; + __entry->cnt = tic->t_cnt; + __entry->curr_res = tic->t_curr_res; + __entry->unit_res = tic->t_unit_res; + __entry->flags = tic->t_flags; + __entry->reserveq = list_empty(&log->l_reserveq); + __entry->writeq = list_empty(&log->l_writeq); + xlog_crack_grant_head(&log->l_grant_reserve_head, + &__entry->grant_reserve_cycle, + &__entry->grant_reserve_bytes); + xlog_crack_grant_head(&log->l_grant_write_head, + &__entry->grant_write_cycle, + &__entry->grant_write_bytes); + __entry->curr_cycle = log->l_curr_cycle; + __entry->curr_block = log->l_curr_block; + __entry->tail_lsn = atomic64_read(&log->l_tail_lsn); + ), + TP_printk("dev %d:%d type %s t_ocnt %u t_cnt %u t_curr_res %u " + "t_unit_res %u t_flags %s reserveq %s " + "writeq %s grant_reserve_cycle %d " + "grant_reserve_bytes %d grant_write_cycle %d " + "grant_write_bytes %d curr_cycle %d curr_block %d " + "tail_cycle %d tail_block %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_symbolic(__entry->trans_type, XFS_TRANS_TYPES), + __entry->ocnt, + __entry->cnt, + __entry->curr_res, + __entry->unit_res, + __print_flags(__entry->flags, "|", XLOG_TIC_FLAGS), + __entry->reserveq ? "empty" : "active", + __entry->writeq ? "empty" : "active", + __entry->grant_reserve_cycle, + __entry->grant_reserve_bytes, + __entry->grant_write_cycle, + __entry->grant_write_bytes, + __entry->curr_cycle, + __entry->curr_block, + CYCLE_LSN(__entry->tail_lsn), + BLOCK_LSN(__entry->tail_lsn) + ) +) + +#define DEFINE_LOGGRANT_EVENT(name) \ +DEFINE_EVENT(xfs_loggrant_class, name, \ + TP_PROTO(struct log *log, struct xlog_ticket *tic), \ + TP_ARGS(log, tic)) +DEFINE_LOGGRANT_EVENT(xfs_log_done_nonperm); +DEFINE_LOGGRANT_EVENT(xfs_log_done_perm); +DEFINE_LOGGRANT_EVENT(xfs_log_reserve); +DEFINE_LOGGRANT_EVENT(xfs_log_umount_write); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_enter); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_exit); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_error); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_sleep1); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake1); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_sleep2); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake2); +DEFINE_LOGGRANT_EVENT(xfs_log_grant_wake_up); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_enter); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_exit); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_error); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_sleep1); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake1); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_sleep2); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake2); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_write_wake_up); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_enter); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_exit); +DEFINE_LOGGRANT_EVENT(xfs_log_regrant_reserve_sub); +DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_enter); +DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_exit); +DEFINE_LOGGRANT_EVENT(xfs_log_ungrant_sub); + +DECLARE_EVENT_CLASS(xfs_file_class, + TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), + TP_ARGS(ip, count, offset, flags), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_fsize_t, size) + __field(xfs_fsize_t, new_size) + __field(loff_t, offset) + __field(size_t, count) + __field(int, flags) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->size = ip->i_d.di_size; + __entry->new_size = ip->i_new_size; + __entry->offset = offset; + __entry->count = count; + __entry->flags = flags; + ), + TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " + "offset 0x%llx count 0x%zx ioflags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->new_size, + __entry->offset, + __entry->count, + __print_flags(__entry->flags, "|", XFS_IO_FLAGS)) +) + +#define DEFINE_RW_EVENT(name) \ +DEFINE_EVENT(xfs_file_class, name, \ + TP_PROTO(struct xfs_inode *ip, size_t count, loff_t offset, int flags), \ + TP_ARGS(ip, count, offset, flags)) +DEFINE_RW_EVENT(xfs_file_read); +DEFINE_RW_EVENT(xfs_file_buffered_write); +DEFINE_RW_EVENT(xfs_file_direct_write); +DEFINE_RW_EVENT(xfs_file_splice_read); +DEFINE_RW_EVENT(xfs_file_splice_write); + +DECLARE_EVENT_CLASS(xfs_page_class, + TP_PROTO(struct inode *inode, struct page *page, unsigned long off), + TP_ARGS(inode, page, off), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(pgoff_t, pgoff) + __field(loff_t, size) + __field(unsigned long, offset) + __field(int, delalloc) + __field(int, unwritten) + ), + TP_fast_assign( + int delalloc = -1, unwritten = -1; + + if (page_has_buffers(page)) + xfs_count_page_state(page, &delalloc, &unwritten); + __entry->dev = inode->i_sb->s_dev; + __entry->ino = XFS_I(inode)->i_ino; + __entry->pgoff = page_offset(page); + __entry->size = i_size_read(inode); + __entry->offset = off; + __entry->delalloc = delalloc; + __entry->unwritten = unwritten; + ), + TP_printk("dev %d:%d ino 0x%llx pgoff 0x%lx size 0x%llx offset %lx " + "delalloc %d unwritten %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->pgoff, + __entry->size, + __entry->offset, + __entry->delalloc, + __entry->unwritten) +) + +#define DEFINE_PAGE_EVENT(name) \ +DEFINE_EVENT(xfs_page_class, name, \ + TP_PROTO(struct inode *inode, struct page *page, unsigned long off), \ + TP_ARGS(inode, page, off)) +DEFINE_PAGE_EVENT(xfs_writepage); +DEFINE_PAGE_EVENT(xfs_releasepage); +DEFINE_PAGE_EVENT(xfs_invalidatepage); + +DECLARE_EVENT_CLASS(xfs_imap_class, + TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, + int type, struct xfs_bmbt_irec *irec), + TP_ARGS(ip, offset, count, type, irec), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(loff_t, size) + __field(loff_t, new_size) + __field(loff_t, offset) + __field(size_t, count) + __field(int, type) + __field(xfs_fileoff_t, startoff) + __field(xfs_fsblock_t, startblock) + __field(xfs_filblks_t, blockcount) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->size = ip->i_d.di_size; + __entry->new_size = ip->i_new_size; + __entry->offset = offset; + __entry->count = count; + __entry->type = type; + __entry->startoff = irec ? irec->br_startoff : 0; + __entry->startblock = irec ? irec->br_startblock : 0; + __entry->blockcount = irec ? irec->br_blockcount : 0; + ), + TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx " + "offset 0x%llx count %zd type %s " + "startoff 0x%llx startblock %lld blockcount 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->new_size, + __entry->offset, + __entry->count, + __print_symbolic(__entry->type, XFS_IO_TYPES), + __entry->startoff, + (__int64_t)__entry->startblock, + __entry->blockcount) +) + +#define DEFINE_IOMAP_EVENT(name) \ +DEFINE_EVENT(xfs_imap_class, name, \ + TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count, \ + int type, struct xfs_bmbt_irec *irec), \ + TP_ARGS(ip, offset, count, type, irec)) +DEFINE_IOMAP_EVENT(xfs_map_blocks_found); +DEFINE_IOMAP_EVENT(xfs_map_blocks_alloc); +DEFINE_IOMAP_EVENT(xfs_get_blocks_found); +DEFINE_IOMAP_EVENT(xfs_get_blocks_alloc); + +DECLARE_EVENT_CLASS(xfs_simple_io_class, + TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), + TP_ARGS(ip, offset, count), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(loff_t, isize) + __field(loff_t, disize) + __field(loff_t, new_size) + __field(loff_t, offset) + __field(size_t, count) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->isize = ip->i_size; + __entry->disize = ip->i_d.di_size; + __entry->new_size = ip->i_new_size; + __entry->offset = offset; + __entry->count = count; + ), + TP_printk("dev %d:%d ino 0x%llx isize 0x%llx disize 0x%llx new_size 0x%llx " + "offset 0x%llx count %zd", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->isize, + __entry->disize, + __entry->new_size, + __entry->offset, + __entry->count) +); + +#define DEFINE_SIMPLE_IO_EVENT(name) \ +DEFINE_EVENT(xfs_simple_io_class, name, \ + TP_PROTO(struct xfs_inode *ip, xfs_off_t offset, ssize_t count), \ + TP_ARGS(ip, offset, count)) +DEFINE_SIMPLE_IO_EVENT(xfs_delalloc_enospc); +DEFINE_SIMPLE_IO_EVENT(xfs_unwritten_convert); +DEFINE_SIMPLE_IO_EVENT(xfs_get_blocks_notfound); +DEFINE_SIMPLE_IO_EVENT(xfs_setfilesize); + +DECLARE_EVENT_CLASS(xfs_itrunc_class, + TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), + TP_ARGS(ip, new_size), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_fsize_t, size) + __field(xfs_fsize_t, new_size) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->size = ip->i_d.di_size; + __entry->new_size = new_size; + ), + TP_printk("dev %d:%d ino 0x%llx size 0x%llx new_size 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->new_size) +) + +#define DEFINE_ITRUNC_EVENT(name) \ +DEFINE_EVENT(xfs_itrunc_class, name, \ + TP_PROTO(struct xfs_inode *ip, xfs_fsize_t new_size), \ + TP_ARGS(ip, new_size)) +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_start); +DEFINE_ITRUNC_EVENT(xfs_itruncate_data_end); + +TRACE_EVENT(xfs_pagecache_inval, + TP_PROTO(struct xfs_inode *ip, xfs_off_t start, xfs_off_t finish), + TP_ARGS(ip, start, finish), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_fsize_t, size) + __field(xfs_off_t, start) + __field(xfs_off_t, finish) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->size = ip->i_d.di_size; + __entry->start = start; + __entry->finish = finish; + ), + TP_printk("dev %d:%d ino 0x%llx size 0x%llx start 0x%llx finish 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->start, + __entry->finish) +); + +TRACE_EVENT(xfs_bunmap, + TP_PROTO(struct xfs_inode *ip, xfs_fileoff_t bno, xfs_filblks_t len, + int flags, unsigned long caller_ip), + TP_ARGS(ip, bno, len, flags, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(xfs_fsize_t, size) + __field(xfs_fileoff_t, bno) + __field(xfs_filblks_t, len) + __field(unsigned long, caller_ip) + __field(int, flags) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->ino = ip->i_ino; + __entry->size = ip->i_d.di_size; + __entry->bno = bno; + __entry->len = len; + __entry->caller_ip = caller_ip; + __entry->flags = flags; + ), + TP_printk("dev %d:%d ino 0x%llx size 0x%llx bno 0x%llx len 0x%llx" + "flags %s caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->bno, + __entry->len, + __print_flags(__entry->flags, "|", XFS_BMAPI_FLAGS), + (void *)__entry->caller_ip) + +); + +DECLARE_EVENT_CLASS(xfs_busy_class, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t agbno, xfs_extlen_t len), + TP_ARGS(mp, agno, agbno, len), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, len) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->agbno = agbno; + __entry->len = len; + ), + TP_printk("dev %d:%d agno %u agbno %u len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->len) +); +#define DEFINE_BUSY_EVENT(name) \ +DEFINE_EVENT(xfs_busy_class, name, \ + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ + xfs_agblock_t agbno, xfs_extlen_t len), \ + TP_ARGS(mp, agno, agbno, len)) +DEFINE_BUSY_EVENT(xfs_alloc_busy); +DEFINE_BUSY_EVENT(xfs_alloc_busy_enomem); +DEFINE_BUSY_EVENT(xfs_alloc_busy_force); +DEFINE_BUSY_EVENT(xfs_alloc_busy_reuse); +DEFINE_BUSY_EVENT(xfs_alloc_busy_clear); + +TRACE_EVENT(xfs_alloc_busy_trim, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t agbno, xfs_extlen_t len, + xfs_agblock_t tbno, xfs_extlen_t tlen), + TP_ARGS(mp, agno, agbno, len, tbno, tlen), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, len) + __field(xfs_agblock_t, tbno) + __field(xfs_extlen_t, tlen) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->agbno = agbno; + __entry->len = len; + __entry->tbno = tbno; + __entry->tlen = tlen; + ), + TP_printk("dev %d:%d agno %u agbno %u len %u tbno %u tlen %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->len, + __entry->tbno, + __entry->tlen) +); + +TRACE_EVENT(xfs_trans_commit_lsn, + TP_PROTO(struct xfs_trans *trans), + TP_ARGS(trans), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(struct xfs_trans *, tp) + __field(xfs_lsn_t, lsn) + ), + TP_fast_assign( + __entry->dev = trans->t_mountp->m_super->s_dev; + __entry->tp = trans; + __entry->lsn = trans->t_commit_lsn; + ), + TP_printk("dev %d:%d trans 0x%p commit_lsn 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tp, + __entry->lsn) +); + +TRACE_EVENT(xfs_agf, + TP_PROTO(struct xfs_mount *mp, struct xfs_agf *agf, int flags, + unsigned long caller_ip), + TP_ARGS(mp, agf, flags, caller_ip), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(int, flags) + __field(__u32, length) + __field(__u32, bno_root) + __field(__u32, cnt_root) + __field(__u32, bno_level) + __field(__u32, cnt_level) + __field(__u32, flfirst) + __field(__u32, fllast) + __field(__u32, flcount) + __field(__u32, freeblks) + __field(__u32, longest) + __field(unsigned long, caller_ip) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = be32_to_cpu(agf->agf_seqno), + __entry->flags = flags; + __entry->length = be32_to_cpu(agf->agf_length), + __entry->bno_root = be32_to_cpu(agf->agf_roots[XFS_BTNUM_BNO]), + __entry->cnt_root = be32_to_cpu(agf->agf_roots[XFS_BTNUM_CNT]), + __entry->bno_level = + be32_to_cpu(agf->agf_levels[XFS_BTNUM_BNO]), + __entry->cnt_level = + be32_to_cpu(agf->agf_levels[XFS_BTNUM_CNT]), + __entry->flfirst = be32_to_cpu(agf->agf_flfirst), + __entry->fllast = be32_to_cpu(agf->agf_fllast), + __entry->flcount = be32_to_cpu(agf->agf_flcount), + __entry->freeblks = be32_to_cpu(agf->agf_freeblks), + __entry->longest = be32_to_cpu(agf->agf_longest); + __entry->caller_ip = caller_ip; + ), + TP_printk("dev %d:%d agno %u flags %s length %u roots b %u c %u " + "levels b %u c %u flfirst %u fllast %u flcount %u " + "freeblks %u longest %u caller %pf", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __print_flags(__entry->flags, "|", XFS_AGF_FLAGS), + __entry->length, + __entry->bno_root, + __entry->cnt_root, + __entry->bno_level, + __entry->cnt_level, + __entry->flfirst, + __entry->fllast, + __entry->flcount, + __entry->freeblks, + __entry->longest, + (void *)__entry->caller_ip) +); + +TRACE_EVENT(xfs_free_extent, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agblock_t agbno, + xfs_extlen_t len, bool isfl, int haveleft, int haveright), + TP_ARGS(mp, agno, agbno, len, isfl, haveleft, haveright), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, len) + __field(int, isfl) + __field(int, haveleft) + __field(int, haveright) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->agbno = agbno; + __entry->len = len; + __entry->isfl = isfl; + __entry->haveleft = haveleft; + __entry->haveright = haveright; + ), + TP_printk("dev %d:%d agno %u agbno %u len %u isfl %d %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->len, + __entry->isfl, + __entry->haveleft ? + (__entry->haveright ? "both" : "left") : + (__entry->haveright ? "right" : "none")) + +); + +DECLARE_EVENT_CLASS(xfs_alloc_class, + TP_PROTO(struct xfs_alloc_arg *args), + TP_ARGS(args), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, minlen) + __field(xfs_extlen_t, maxlen) + __field(xfs_extlen_t, mod) + __field(xfs_extlen_t, prod) + __field(xfs_extlen_t, minleft) + __field(xfs_extlen_t, total) + __field(xfs_extlen_t, alignment) + __field(xfs_extlen_t, minalignslop) + __field(xfs_extlen_t, len) + __field(short, type) + __field(short, otype) + __field(char, wasdel) + __field(char, wasfromfl) + __field(char, isfl) + __field(char, userdata) + __field(xfs_fsblock_t, firstblock) + ), + TP_fast_assign( + __entry->dev = args->mp->m_super->s_dev; + __entry->agno = args->agno; + __entry->agbno = args->agbno; + __entry->minlen = args->minlen; + __entry->maxlen = args->maxlen; + __entry->mod = args->mod; + __entry->prod = args->prod; + __entry->minleft = args->minleft; + __entry->total = args->total; + __entry->alignment = args->alignment; + __entry->minalignslop = args->minalignslop; + __entry->len = args->len; + __entry->type = args->type; + __entry->otype = args->otype; + __entry->wasdel = args->wasdel; + __entry->wasfromfl = args->wasfromfl; + __entry->isfl = args->isfl; + __entry->userdata = args->userdata; + __entry->firstblock = args->firstblock; + ), + TP_printk("dev %d:%d agno %u agbno %u minlen %u maxlen %u mod %u " + "prod %u minleft %u total %u alignment %u minalignslop %u " + "len %u type %s otype %s wasdel %d wasfromfl %d isfl %d " + "userdata %d firstblock 0x%llx", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->minlen, + __entry->maxlen, + __entry->mod, + __entry->prod, + __entry->minleft, + __entry->total, + __entry->alignment, + __entry->minalignslop, + __entry->len, + __print_symbolic(__entry->type, XFS_ALLOC_TYPES), + __print_symbolic(__entry->otype, XFS_ALLOC_TYPES), + __entry->wasdel, + __entry->wasfromfl, + __entry->isfl, + __entry->userdata, + (unsigned long long)__entry->firstblock) +) + +#define DEFINE_ALLOC_EVENT(name) \ +DEFINE_EVENT(xfs_alloc_class, name, \ + TP_PROTO(struct xfs_alloc_arg *args), \ + TP_ARGS(args)) +DEFINE_ALLOC_EVENT(xfs_alloc_exact_done); +DEFINE_ALLOC_EVENT(xfs_alloc_exact_notfound); +DEFINE_ALLOC_EVENT(xfs_alloc_exact_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_nominleft); +DEFINE_ALLOC_EVENT(xfs_alloc_near_first); +DEFINE_ALLOC_EVENT(xfs_alloc_near_greater); +DEFINE_ALLOC_EVENT(xfs_alloc_near_lesser); +DEFINE_ALLOC_EVENT(xfs_alloc_near_error); +DEFINE_ALLOC_EVENT(xfs_alloc_near_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_near_busy); +DEFINE_ALLOC_EVENT(xfs_alloc_size_neither); +DEFINE_ALLOC_EVENT(xfs_alloc_size_noentry); +DEFINE_ALLOC_EVENT(xfs_alloc_size_nominleft); +DEFINE_ALLOC_EVENT(xfs_alloc_size_done); +DEFINE_ALLOC_EVENT(xfs_alloc_size_error); +DEFINE_ALLOC_EVENT(xfs_alloc_size_busy); +DEFINE_ALLOC_EVENT(xfs_alloc_small_freelist); +DEFINE_ALLOC_EVENT(xfs_alloc_small_notenough); +DEFINE_ALLOC_EVENT(xfs_alloc_small_done); +DEFINE_ALLOC_EVENT(xfs_alloc_small_error); +DEFINE_ALLOC_EVENT(xfs_alloc_vextent_badargs); +DEFINE_ALLOC_EVENT(xfs_alloc_vextent_nofix); +DEFINE_ALLOC_EVENT(xfs_alloc_vextent_noagbp); +DEFINE_ALLOC_EVENT(xfs_alloc_vextent_loopfailed); +DEFINE_ALLOC_EVENT(xfs_alloc_vextent_allfailed); + +DECLARE_EVENT_CLASS(xfs_dir2_class, + TP_PROTO(struct xfs_da_args *args), + TP_ARGS(args), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __dynamic_array(char, name, args->namelen) + __field(int, namelen) + __field(xfs_dahash_t, hashval) + __field(xfs_ino_t, inumber) + __field(int, op_flags) + ), + TP_fast_assign( + __entry->dev = VFS_I(args->dp)->i_sb->s_dev; + __entry->ino = args->dp->i_ino; + if (args->namelen) + memcpy(__get_str(name), args->name, args->namelen); + __entry->namelen = args->namelen; + __entry->hashval = args->hashval; + __entry->inumber = args->inumber; + __entry->op_flags = args->op_flags; + ), + TP_printk("dev %d:%d ino 0x%llx name %.*s namelen %d hashval 0x%x " + "inumber 0x%llx op_flags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->namelen, + __entry->namelen ? __get_str(name) : NULL, + __entry->namelen, + __entry->hashval, + __entry->inumber, + __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS)) +) + +#define DEFINE_DIR2_EVENT(name) \ +DEFINE_EVENT(xfs_dir2_class, name, \ + TP_PROTO(struct xfs_da_args *args), \ + TP_ARGS(args)) +DEFINE_DIR2_EVENT(xfs_dir2_sf_addname); +DEFINE_DIR2_EVENT(xfs_dir2_sf_create); +DEFINE_DIR2_EVENT(xfs_dir2_sf_lookup); +DEFINE_DIR2_EVENT(xfs_dir2_sf_replace); +DEFINE_DIR2_EVENT(xfs_dir2_sf_removename); +DEFINE_DIR2_EVENT(xfs_dir2_sf_toino4); +DEFINE_DIR2_EVENT(xfs_dir2_sf_toino8); +DEFINE_DIR2_EVENT(xfs_dir2_sf_to_block); +DEFINE_DIR2_EVENT(xfs_dir2_block_addname); +DEFINE_DIR2_EVENT(xfs_dir2_block_lookup); +DEFINE_DIR2_EVENT(xfs_dir2_block_replace); +DEFINE_DIR2_EVENT(xfs_dir2_block_removename); +DEFINE_DIR2_EVENT(xfs_dir2_block_to_sf); +DEFINE_DIR2_EVENT(xfs_dir2_block_to_leaf); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_addname); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_lookup); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_replace); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_removename); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_block); +DEFINE_DIR2_EVENT(xfs_dir2_leaf_to_node); +DEFINE_DIR2_EVENT(xfs_dir2_node_addname); +DEFINE_DIR2_EVENT(xfs_dir2_node_lookup); +DEFINE_DIR2_EVENT(xfs_dir2_node_replace); +DEFINE_DIR2_EVENT(xfs_dir2_node_removename); +DEFINE_DIR2_EVENT(xfs_dir2_node_to_leaf); + +DECLARE_EVENT_CLASS(xfs_dir2_space_class, + TP_PROTO(struct xfs_da_args *args, int idx), + TP_ARGS(args, idx), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(int, op_flags) + __field(int, idx) + ), + TP_fast_assign( + __entry->dev = VFS_I(args->dp)->i_sb->s_dev; + __entry->ino = args->dp->i_ino; + __entry->op_flags = args->op_flags; + __entry->idx = idx; + ), + TP_printk("dev %d:%d ino 0x%llx op_flags %s index %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), + __entry->idx) +) + +#define DEFINE_DIR2_SPACE_EVENT(name) \ +DEFINE_EVENT(xfs_dir2_space_class, name, \ + TP_PROTO(struct xfs_da_args *args, int idx), \ + TP_ARGS(args, idx)) +DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_add); +DEFINE_DIR2_SPACE_EVENT(xfs_dir2_leafn_remove); +DEFINE_DIR2_SPACE_EVENT(xfs_dir2_grow_inode); +DEFINE_DIR2_SPACE_EVENT(xfs_dir2_shrink_inode); + +TRACE_EVENT(xfs_dir2_leafn_moveents, + TP_PROTO(struct xfs_da_args *args, int src_idx, int dst_idx, int count), + TP_ARGS(args, src_idx, dst_idx, count), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(int, op_flags) + __field(int, src_idx) + __field(int, dst_idx) + __field(int, count) + ), + TP_fast_assign( + __entry->dev = VFS_I(args->dp)->i_sb->s_dev; + __entry->ino = args->dp->i_ino; + __entry->op_flags = args->op_flags; + __entry->src_idx = src_idx; + __entry->dst_idx = dst_idx; + __entry->count = count; + ), + TP_printk("dev %d:%d ino 0x%llx op_flags %s " + "src_idx %d dst_idx %d count %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_flags(__entry->op_flags, "|", XFS_DA_OP_FLAGS), + __entry->src_idx, + __entry->dst_idx, + __entry->count) +); + +#define XFS_SWAPEXT_INODES \ + { 0, "target" }, \ + { 1, "temp" } + +#define XFS_INODE_FORMAT_STR \ + { 0, "invalid" }, \ + { 1, "local" }, \ + { 2, "extent" }, \ + { 3, "btree" } + +DECLARE_EVENT_CLASS(xfs_swap_extent_class, + TP_PROTO(struct xfs_inode *ip, int which), + TP_ARGS(ip, which), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(int, which) + __field(xfs_ino_t, ino) + __field(int, format) + __field(int, nex) + __field(int, max_nex) + __field(int, broot_size) + __field(int, fork_off) + ), + TP_fast_assign( + __entry->dev = VFS_I(ip)->i_sb->s_dev; + __entry->which = which; + __entry->ino = ip->i_ino; + __entry->format = ip->i_d.di_format; + __entry->nex = ip->i_d.di_nextents; + __entry->max_nex = ip->i_df.if_ext_max; + __entry->broot_size = ip->i_df.if_broot_bytes; + __entry->fork_off = XFS_IFORK_BOFF(ip); + ), + TP_printk("dev %d:%d ino 0x%llx (%s), %s format, num_extents %d, " + "Max in-fork extents %d, broot size %d, fork offset %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __print_symbolic(__entry->which, XFS_SWAPEXT_INODES), + __print_symbolic(__entry->format, XFS_INODE_FORMAT_STR), + __entry->nex, + __entry->max_nex, + __entry->broot_size, + __entry->fork_off) +) + +#define DEFINE_SWAPEXT_EVENT(name) \ +DEFINE_EVENT(xfs_swap_extent_class, name, \ + TP_PROTO(struct xfs_inode *ip, int which), \ + TP_ARGS(ip, which)) + +DEFINE_SWAPEXT_EVENT(xfs_swap_extent_before); +DEFINE_SWAPEXT_EVENT(xfs_swap_extent_after); + +DECLARE_EVENT_CLASS(xfs_log_recover_item_class, + TP_PROTO(struct log *log, struct xlog_recover *trans, + struct xlog_recover_item *item, int pass), + TP_ARGS(log, trans, item, pass), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(unsigned long, item) + __field(xlog_tid_t, tid) + __field(int, type) + __field(int, pass) + __field(int, count) + __field(int, total) + ), + TP_fast_assign( + __entry->dev = log->l_mp->m_super->s_dev; + __entry->item = (unsigned long)item; + __entry->tid = trans->r_log_tid; + __entry->type = ITEM_TYPE(item); + __entry->pass = pass; + __entry->count = item->ri_cnt; + __entry->total = item->ri_total; + ), + TP_printk("dev %d:%d trans 0x%x, pass %d, item 0x%p, item type %s " + "item region count/total %d/%d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tid, + __entry->pass, + (void *)__entry->item, + __print_symbolic(__entry->type, XFS_LI_TYPE_DESC), + __entry->count, + __entry->total) +) + +#define DEFINE_LOG_RECOVER_ITEM(name) \ +DEFINE_EVENT(xfs_log_recover_item_class, name, \ + TP_PROTO(struct log *log, struct xlog_recover *trans, \ + struct xlog_recover_item *item, int pass), \ + TP_ARGS(log, trans, item, pass)) + +DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add); +DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_add_cont); +DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_head); +DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_reorder_tail); +DEFINE_LOG_RECOVER_ITEM(xfs_log_recover_item_recover); + +DECLARE_EVENT_CLASS(xfs_log_recover_buf_item_class, + TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), + TP_ARGS(log, buf_f), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(__int64_t, blkno) + __field(unsigned short, len) + __field(unsigned short, flags) + __field(unsigned short, size) + __field(unsigned int, map_size) + ), + TP_fast_assign( + __entry->dev = log->l_mp->m_super->s_dev; + __entry->blkno = buf_f->blf_blkno; + __entry->len = buf_f->blf_len; + __entry->flags = buf_f->blf_flags; + __entry->size = buf_f->blf_size; + __entry->map_size = buf_f->blf_map_size; + ), + TP_printk("dev %d:%d blkno 0x%llx, len %u, flags 0x%x, size %d, " + "map_size %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blkno, + __entry->len, + __entry->flags, + __entry->size, + __entry->map_size) +) + +#define DEFINE_LOG_RECOVER_BUF_ITEM(name) \ +DEFINE_EVENT(xfs_log_recover_buf_item_class, name, \ + TP_PROTO(struct log *log, struct xfs_buf_log_format *buf_f), \ + TP_ARGS(log, buf_f)) + +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_not_cancel); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_add); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_cancel_ref_inc); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_recover); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_inode_buf); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_reg_buf); +DEFINE_LOG_RECOVER_BUF_ITEM(xfs_log_recover_buf_dquot_buf); + +DECLARE_EVENT_CLASS(xfs_log_recover_ino_item_class, + TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), + TP_ARGS(log, in_f), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_ino_t, ino) + __field(unsigned short, size) + __field(int, fields) + __field(unsigned short, asize) + __field(unsigned short, dsize) + __field(__int64_t, blkno) + __field(int, len) + __field(int, boffset) + ), + TP_fast_assign( + __entry->dev = log->l_mp->m_super->s_dev; + __entry->ino = in_f->ilf_ino; + __entry->size = in_f->ilf_size; + __entry->fields = in_f->ilf_fields; + __entry->asize = in_f->ilf_asize; + __entry->dsize = in_f->ilf_dsize; + __entry->blkno = in_f->ilf_blkno; + __entry->len = in_f->ilf_len; + __entry->boffset = in_f->ilf_boffset; + ), + TP_printk("dev %d:%d ino 0x%llx, size %u, fields 0x%x, asize %d, " + "dsize %d, blkno 0x%llx, len %d, boffset %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->ino, + __entry->size, + __entry->fields, + __entry->asize, + __entry->dsize, + __entry->blkno, + __entry->len, + __entry->boffset) +) +#define DEFINE_LOG_RECOVER_INO_ITEM(name) \ +DEFINE_EVENT(xfs_log_recover_ino_item_class, name, \ + TP_PROTO(struct log *log, struct xfs_inode_log_format *in_f), \ + TP_ARGS(log, in_f)) + +DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_recover); +DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_cancel); +DEFINE_LOG_RECOVER_INO_ITEM(xfs_log_recover_inode_skip); + +DECLARE_EVENT_CLASS(xfs_discard_class, + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, + xfs_agblock_t agbno, xfs_extlen_t len), + TP_ARGS(mp, agno, agbno, len), + TP_STRUCT__entry( + __field(dev_t, dev) + __field(xfs_agnumber_t, agno) + __field(xfs_agblock_t, agbno) + __field(xfs_extlen_t, len) + ), + TP_fast_assign( + __entry->dev = mp->m_super->s_dev; + __entry->agno = agno; + __entry->agbno = agbno; + __entry->len = len; + ), + TP_printk("dev %d:%d agno %u agbno %u len %u\n", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->agno, + __entry->agbno, + __entry->len) +) + +#define DEFINE_DISCARD_EVENT(name) \ +DEFINE_EVENT(xfs_discard_class, name, \ + TP_PROTO(struct xfs_mount *mp, xfs_agnumber_t agno, \ + xfs_agblock_t agbno, xfs_extlen_t len), \ + TP_ARGS(mp, agno, agbno, len)) +DEFINE_DISCARD_EVENT(xfs_discard_extent); +DEFINE_DISCARD_EVENT(xfs_discard_toosmall); +DEFINE_DISCARD_EVENT(xfs_discard_exclude); +DEFINE_DISCARD_EVENT(xfs_discard_busy); + +#endif /* _TRACE_XFS_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#define TRACE_INCLUDE_FILE xfs_trace +#include diff --git a/fs/xfs/linux/xfs_vnode.h b/fs/xfs/linux/xfs_vnode.h new file mode 100644 index 0000000..7c220b4 --- /dev/null +++ b/fs/xfs/linux/xfs_vnode.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2000-2005 Silicon Graphics, Inc. + * All Rights Reserved. + * + * 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#ifndef __XFS_VNODE_H__ +#define __XFS_VNODE_H__ + +#include "xfs_fs.h" + +struct file; +struct xfs_inode; +struct xfs_iomap; +struct attrlist_cursor_kern; + +/* + * Return values for xfs_inactive. A return value of + * VN_INACTIVE_NOCACHE implies that the file system behavior + * has disassociated its state and bhv_desc_t from the vnode. + */ +#define VN_INACTIVE_CACHE 0 +#define VN_INACTIVE_NOCACHE 1 + +/* + * Flags for read/write calls - same values as IRIX + */ +#define IO_ISDIRECT 0x00004 /* bypass page cache */ +#define IO_INVIS 0x00020 /* don't update inode timestamps */ + +#define XFS_IO_FLAGS \ + { IO_ISDIRECT, "DIRECT" }, \ + { IO_INVIS, "INVIS"} + +/* + * Flush/Invalidate options for vop_toss/flush/flushinval_pages. + */ +#define FI_NONE 0 /* none */ +#define FI_REMAPF 1 /* Do a remapf prior to the operation */ +#define FI_REMAPF_LOCKED 2 /* Do a remapf prior to the operation. + Prevent VM access to the pages until + the operation completes. */ + +/* + * Some useful predicates. + */ +#define VN_MAPPED(vp) mapping_mapped(vp->i_mapping) +#define VN_CACHED(vp) (vp->i_mapping->nrpages) +#define VN_DIRTY(vp) mapping_tagged(vp->i_mapping, \ + PAGECACHE_TAG_DIRTY) + + +#endif /* __XFS_VNODE_H__ */ diff --git a/fs/xfs/linux/xfs_xattr.c b/fs/xfs/linux/xfs_xattr.c new file mode 100644 index 0000000..87d3e03 --- /dev/null +++ b/fs/xfs/linux/xfs_xattr.c @@ -0,0 +1,241 @@ +/* + * Copyright (C) 2008 Christoph Hellwig. + * Portions Copyright (C) 2000-2008 Silicon Graphics, 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. + * + * This program is distributed in the hope that it would 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 the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "xfs.h" +#include "xfs_da_btree.h" +#include "xfs_bmap_btree.h" +#include "xfs_inode.h" +#include "xfs_attr.h" +#include "xfs_attr_leaf.h" +#include "xfs_acl.h" +#include "xfs_vnodeops.h" + +#include +#include + + +static int +xfs_xattr_get(struct dentry *dentry, const char *name, + void *value, size_t size, int xflags) +{ + struct xfs_inode *ip = XFS_I(dentry->d_inode); + int error, asize = size; + + if (strcmp(name, "") == 0) + return -EINVAL; + + /* Convert Linux syscall to XFS internal ATTR flags */ + if (!size) { + xflags |= ATTR_KERNOVAL; + value = NULL; + } + + error = -xfs_attr_get(ip, (unsigned char *)name, value, &asize, xflags); + if (error) + return error; + return asize; +} + +static int +xfs_xattr_set(struct dentry *dentry, const char *name, const void *value, + size_t size, int flags, int xflags) +{ + struct xfs_inode *ip = XFS_I(dentry->d_inode); + + if (strcmp(name, "") == 0) + return -EINVAL; + + /* Convert Linux syscall to XFS internal ATTR flags */ + if (flags & XATTR_CREATE) + xflags |= ATTR_CREATE; + if (flags & XATTR_REPLACE) + xflags |= ATTR_REPLACE; + + if (!value) + return -xfs_attr_remove(ip, (unsigned char *)name, xflags); + return -xfs_attr_set(ip, (unsigned char *)name, + (void *)value, size, xflags); +} + +static const struct xattr_handler xfs_xattr_user_handler = { + .prefix = XATTR_USER_PREFIX, + .flags = 0, /* no flags implies user namespace */ + .get = xfs_xattr_get, + .set = xfs_xattr_set, +}; + +static const struct xattr_handler xfs_xattr_trusted_handler = { + .prefix = XATTR_TRUSTED_PREFIX, + .flags = ATTR_ROOT, + .get = xfs_xattr_get, + .set = xfs_xattr_set, +}; + +static const struct xattr_handler xfs_xattr_security_handler = { + .prefix = XATTR_SECURITY_PREFIX, + .flags = ATTR_SECURE, + .get = xfs_xattr_get, + .set = xfs_xattr_set, +}; + +const struct xattr_handler *xfs_xattr_handlers[] = { + &xfs_xattr_user_handler, + &xfs_xattr_trusted_handler, + &xfs_xattr_security_handler, +#ifdef CONFIG_XFS_POSIX_ACL + &xfs_xattr_acl_access_handler, + &xfs_xattr_acl_default_handler, +#endif + NULL +}; + +static unsigned int xfs_xattr_prefix_len(int flags) +{ + if (flags & XFS_ATTR_SECURE) + return sizeof("security"); + else if (flags & XFS_ATTR_ROOT) + return sizeof("trusted"); + else + return sizeof("user"); +} + +static const char *xfs_xattr_prefix(int flags) +{ + if (flags & XFS_ATTR_SECURE) + return xfs_xattr_security_handler.prefix; + else if (flags & XFS_ATTR_ROOT) + return xfs_xattr_trusted_handler.prefix; + else + return xfs_xattr_user_handler.prefix; +} + +static int +xfs_xattr_put_listent( + struct xfs_attr_list_context *context, + int flags, + unsigned char *name, + int namelen, + int valuelen, + unsigned char *value) +{ + unsigned int prefix_len = xfs_xattr_prefix_len(flags); + char *offset; + int arraytop; + + ASSERT(context->count >= 0); + + /* + * Only show root namespace entries if we are actually allowed to + * see them. + */ + if ((flags & XFS_ATTR_ROOT) && !capable(CAP_SYS_ADMIN)) + return 0; + + arraytop = context->count + prefix_len + namelen + 1; + if (arraytop > context->firstu) { + context->count = -1; /* insufficient space */ + return 1; + } + offset = (char *)context->alist + context->count; + strncpy(offset, xfs_xattr_prefix(flags), prefix_len); + offset += prefix_len; + strncpy(offset, (char *)name, namelen); /* real name */ + offset += namelen; + *offset = '\0'; + context->count += prefix_len + namelen + 1; + return 0; +} + +static int +xfs_xattr_put_listent_sizes( + struct xfs_attr_list_context *context, + int flags, + unsigned char *name, + int namelen, + int valuelen, + unsigned char *value) +{ + context->count += xfs_xattr_prefix_len(flags) + namelen + 1; + return 0; +} + +static int +list_one_attr(const char *name, const size_t len, void *data, + size_t size, ssize_t *result) +{ + char *p = data + *result; + + *result += len; + if (!size) + return 0; + if (*result > size) + return -ERANGE; + + strcpy(p, name); + return 0; +} + +ssize_t +xfs_vn_listxattr(struct dentry *dentry, char *data, size_t size) +{ + struct xfs_attr_list_context context; + struct attrlist_cursor_kern cursor = { 0 }; + struct inode *inode = dentry->d_inode; + int error; + + /* + * First read the regular on-disk attributes. + */ + memset(&context, 0, sizeof(context)); + context.dp = XFS_I(inode); + context.cursor = &cursor; + context.resynch = 1; + context.alist = data; + context.bufsize = size; + context.firstu = context.bufsize; + + if (size) + context.put_listent = xfs_xattr_put_listent; + else + context.put_listent = xfs_xattr_put_listent_sizes; + + xfs_attr_list_int(&context); + if (context.count < 0) + return -ERANGE; + + /* + * Then add the two synthetic ACL attributes. + */ + if (posix_acl_access_exists(inode)) { + error = list_one_attr(POSIX_ACL_XATTR_ACCESS, + strlen(POSIX_ACL_XATTR_ACCESS) + 1, + data, size, &context.count); + if (error) + return error; + } + + if (posix_acl_default_exists(inode)) { + error = list_one_attr(POSIX_ACL_XATTR_DEFAULT, + strlen(POSIX_ACL_XATTR_DEFAULT) + 1, + data, size, &context.count); + if (error) + return error; + } + + return context.count; +} diff --git a/fs/xfs/xfs.h b/fs/xfs/xfs.h index 53ec3ea..c30ce0f 100644 --- a/fs/xfs/xfs.h +++ b/fs/xfs/xfs.h @@ -24,5 +24,5 @@ #define XFS_BUF_LOCK_TRACKING 1 #endif -#include +#include #endif /* __XFS_H__ */ -- 1.7.6 From edwintorok@gmail.com Thu Jul 21 15:55:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_13,J_CHICKENPOX_14,MIME_8BIT_HEADER,T_DKIM_INVALID, T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LKtKxg044775 for ; Thu, 21 Jul 2011 15:55:20 -0500 X-ASG-Debug-ID: 1311281710-656d01d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AF642EED393; Thu, 21 Jul 2011 13:55:11 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 3cG0RVNdgrXEzF3Q; Thu, 21 Jul 2011 13:55:11 -0700 (PDT) Received: by fxg11 with SMTP id 11so4128857fxg.6 for ; Thu, 21 Jul 2011 13:55:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :x-enigmail-version:content-type; bh=xYpegBxfBpwSDhb9LxiR2NVOGAMWflGHuUYa5L7tLEU=; b=xk7DNubhPffftnS7MsNKWKeck1YOLl8fH0MyIy/CchXpd7vhtAvAAzgCpGZ50pomYJ Yx+VvCnKYXNKc1dbarMFB6AxUd1pF86tVMQgamStirYeBL07WBQD0kTfRUhYizcBF4OB gcfBM8ugfSgx+LLtixlEcFEmf+4e8srdASpoc= Received: by 10.223.21.220 with SMTP id k28mr884733fab.63.1311281710266; Thu, 21 Jul 2011 13:55:10 -0700 (PDT) Received: from [192.168.1.101] ([79.114.61.63]) by mx.google.com with ESMTPS id 28sm1640136fax.3.2011.07.21.13.55.05 (version=SSLv3 cipher=OTHER); Thu, 21 Jul 2011 13:55:06 -0700 (PDT) Message-ID: <4E289228.4000208@gmail.com> Date: Thu, 21 Jul 2011 23:55:04 +0300 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Icedove/3.1.11 MIME-Version: 1.0 To: xfs-masters@oss.sgi.com, xfs@oss.sgi.com CC: Linux Kernel Mailing List X-ASG-Orig-Subj: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: BUG: unable to handle kernel paging request xfs_is_delayed_page X-Enigmail-Version: 1.1.2 Content-Type: multipart/mixed; boundary="------------020806050600070205080606" X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311281713 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, DKIM_SIGNED, DKIM_VERIFIED, FUZZY_VPILL X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69594 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. --------------020806050600070205080606 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Hi, Just got this BUG in my dmesg: [47504.938446] BUG: unable to handle kernel paging request at ffff884058ec3270 [47504.938488] IP: [] xfs_is_delayed_page+0x41/0xa0 [47504.938520] PGD 1a24063 PUD 0 [47504.938536] Oops: 0000 [#1] PREEMPT SMP [47504.938558] CPU 5 [47504.938568] Modules linked in: ipt_REDIRECT xt_CHECKSUM iptable_mangle bridge stp llc powernow_k8 cpufreq_stats cpufreq_powersave cpufreq_ondemand cpufreq_conservative cpufreq_userspace rfcomm bnep binfmt_misc fuse ipt_REJECT xt_state xt_tcpudp ipv6 iptable_filter ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables x_tables radeon ttm drm_kms_helper drm i2c_algo_bit cfbcopyarea cfbimgblt cfbfillrect freq_table mperf it87 hwmon_vid loop firewire_sbp2 snd_hda_codec_hdmi hid_a4tech usbhid snd_hda_codec_realtek k10temp hwmon snd_hda_intel snd_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss evdev i2c_piix4 btusb bluetooth snd_pcm snd_seq_oss snd_seq_midi_event snd_seq snd_timer snd_seq_device snd soundcore snd_page_alloc parport_pc parport button wmi processor thermal_sys ohci_hcd sr_mod cdrom firewire_ohci firewire_core crc_itu_t ssb ehci_hcd xhci_hcd usbcore [last unloaded: scsi_wait_scan] [47504.938999] [47504.939002] Pid: 11511, comm: flush-9:1 Not tainted 3.0.0-rc7 #157 Gigabyte Technology Co., Ltd. GA-870A-UD3/GA-870A-UD3 [47504.939002] RIP: 0010:[] [] xfs_is_delayed_page+0x41/0xa0 [47504.939002] RSP: 0018:ffff8802256836e0 EFLAGS: 00010287 [47504.939002] RAX: 0000000000000001 RBX: ffffea0000c01c08 RCX: 0000000000000020 [47504.939002] RDX: ffff884058ec3270 RSI: 0000000000000003 RDI: ffff880058ec3270 [47504.939002] RBP: ffff8802256836e0 R08: 00000000000fe2e8 R09: ffff880225683cb8 [47504.939002] R10: 57ffe6ff91801bd0 R11: 0000000000000024 R12: 0000000000000001 [47504.939002] R13: ffff880100fa7190 R14: ffff880225683900 R15: ffff880225683cb8 [47504.939002] FS: 00007fc28c6e8700(0000) GS:ffff88022fd40000(0000) knlGS:00000000f74286c0 [47504.939002] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [47504.939002] CR2: ffff884058ec3270 CR3: 0000000225c70000 CR4: 00000000000006e0 [47504.939002] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [47504.939002] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [47504.939002] Process flush-9:1 (pid: 11511, threadinfo ffff880225682000, task ffff8800cfa52d20) [47504.939002] Stack: [47504.939002] ffff880225683780 ffffffff8127cb01 00000000000fe2db ffff8802256838e0 [47504.939002] 00000000000fe2e8 ffff880225683cb8 ffff880225683900 ffff8802256838f0 [47504.939002] ffff8802256838e0 0000000100000000 ffff880058ec3208 00000000fe2e8000 [47504.939002] Call Trace: [47504.939002] [] xfs_convert_page.isra.10+0xa1/0x300 [47504.939002] [] xfs_cluster_write+0xf5/0x160 [47504.939002] [] xfs_vm_writepage+0x481/0x510 [47504.939002] [] __writepage+0x12/0x40 [47504.939002] [] write_cache_pages+0x1b9/0x4c0 [47504.939002] [] ? up+0x2c/0x50 [47504.939002] [] ? bdi_set_max_ratio+0x90/0x90 [47504.939002] [] generic_writepages+0x3b/0x60 [47504.939002] [] xfs_vm_writepages+0x4c/0x60 [47504.939002] [] do_writepages+0x1c/0x30 [47504.939002] [] writeback_single_inode+0xf6/0x260 [47504.939002] [] writeback_sb_inodes+0xdb/0x1b0 [47504.939002] [] writeback_inodes_wb+0x7b/0x150 [47504.939002] [] wb_writeback+0x4cb/0x520 [47504.939002] [] wb_check_old_data_flush+0xc8/0xd0 [47504.939002] [] wb_do_writeback+0x18d/0x270 [47504.939002] [] ? del_timer_sync+0x32/0x50 [47504.939002] [] ? init_timer_deferrable_key+0x20/0x20 [47504.939002] [] bdi_writeback_thread+0x84/0x300 [47504.939002] [] ? call_rcu+0x10/0x20 [47504.939002] [] ? wb_do_writeback+0x270/0x270 [47504.939002] [] kthread+0x87/0x90 [47504.939002] [] kernel_thread_helper+0x4/0x10 [47504.939002] [] ? kthread_worker_fn+0x190/0x190 [47504.939002] [] ? gs_change+0xb/0xb [47504.939002] Code: 31 c0 80 e6 08 74 4b 48 8b 07 f6 c4 08 74 6f 48 8b 7f 10 31 c0 48 89 fa eb 11 31 c0 83 fe 02 0f 94 c0 48 8b 52 08 48 39 d7 74 27 [47504.939002] 8b 0a 80 e5 10 75 e7 48 8b 0a 80 e5 02 74 27 48 8b 52 08 31 [47504.939002] RIP [] xfs_is_delayed_page+0x41/0xa0 [47504.939002] RSP [47504.939002] CR2: ffff884058ec3270 [47504.939002] ---[ end trace 3745557f071632d2 ]--- I don't have a way to reproduce this, but this is what I was doing when it happened: - 2 KVM guests running, 1 doing about 1MB/s I/O ocasionally - 1 process running and dumping core to /var/tmp/cores (on XFS filesystem). Coredump is 4.1G, so takes a while - wireshark, firefox, icedove etc. running but that shouldn't matter After I got this error I can't 'sync' anymore, it just hangs, and some windows in X are frozen as well (konsole with all its tabs), but launching new processes still works. Attached is my .config and dmesg. Looking at top: top - 23:54:01 up 13:35, 10 users, load average: 5.79, 6.16, 11.34 Tasks: 274 total, 1 running, 251 sleeping, 21 stopped, 1 zombie Cpu(s): 4.4%us, 0.7%sy, 0.0%ni, 62.1%id, 32.8%wa, 0.0%hi, 0.0%si, 0.0%st Mem: 8180900k total, 8058764k used, 122136k free, 76112k buffers Swap: 4194264k total, 77560k used, 4116704k free, 3377104k cached Not sure what the BUG means: did XFS ran out of memory when trying to write the 4GB coredump, as it wanted to allocate an extra 4G temporarely to hold it? Best regards, --Edwin --------------020806050600070205080606 Content-Type: text/plain; name=".config" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=".config" # # Automatically generated make config: don't edit # Linux/x86_64 3.0.0-rc6 Kernel Configuration # CONFIG_64BIT=y # CONFIG_X86_32 is not set CONFIG_X86_64=y CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf64-x86-64" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y CONFIG_NEED_DMA_MAP_STATE=y CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_GENERIC_TIME_VSYSCALL=y CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y CONFIG_HAVE_CPUMASK_OF_CPU_MAP=y CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y CONFIG_ZONE_DMA32=y CONFIG_ARCH_POPULATES_NODE_MAP=y CONFIG_AUDIT_ARCH=y CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_64_SMP=y CONFIG_X86_HT=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" # CONFIG_KTIME_SCALAR is not set CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" # CONFIG_LOCALVERSION_AUTO is not set CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y # CONFIG_KERNEL_GZIP is not set # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set CONFIG_KERNEL_LZO=y CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y CONFIG_BSD_PROCESS_ACCT_V3=y CONFIG_FHANDLE=y CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y # CONFIG_SPARSE_IRQ is not set # # RCU Subsystem # CONFIG_TREE_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=64 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_RCU_BOOST is not set CONFIG_IKCONFIG=y CONFIG_IKCONFIG_PROC=y CONFIG_LOG_BUF_SHIFT=17 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y CONFIG_CGROUP_DEVICE=y CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y CONFIG_CGROUP_CPUACCT=y CONFIG_RESOURCE_COUNTERS=y # CONFIG_CGROUP_MEM_RES_CTLR is not set # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y # CONFIG_RT_GROUP_SCHED is not set CONFIG_BLK_CGROUP=y # CONFIG_DEBUG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y # CONFIG_USER_NS is not set CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y # CONFIG_CC_OPTIMIZE_FOR_SIZE is not set CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EXPERT is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y CONFIG_KALLSYMS_ALL=y CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y CONFIG_OPROFILE=m # CONFIG_OPROFILE_EVENT_MULTIPLEX is not set CONFIG_HAVE_OPROFILE=y # CONFIG_KPROBES is not set CONFIG_JUMP_LABEL=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_USER_RETURN_NOTIFIER=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set # CONFIG_HAVE_GENERIC_DMA_COHERENT is not set CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y CONFIG_MODVERSIONS=y # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_BLK_DEV_BSG=y # CONFIG_BLK_DEV_INTEGRITY is not set CONFIG_BLK_DEV_THROTTLING=y CONFIG_BLOCK_COMPAT=y # # IO Schedulers # CONFIG_IOSCHED_NOOP=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y CONFIG_CFQ_GROUP_IOSCHED=y # CONFIG_DEFAULT_DEADLINE is not set CONFIG_DEFAULT_CFQ=y # CONFIG_DEFAULT_NOOP is not set CONFIG_DEFAULT_IOSCHED="cfq" CONFIG_PREEMPT_NOTIFIERS=y # CONFIG_INLINE_SPIN_TRYLOCK is not set # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK is not set # CONFIG_INLINE_SPIN_LOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set # CONFIG_INLINE_SPIN_UNLOCK is not set # CONFIG_INLINE_SPIN_UNLOCK_BH is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQ is not set # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_READ_TRYLOCK is not set # CONFIG_INLINE_READ_LOCK is not set # CONFIG_INLINE_READ_LOCK_BH is not set # CONFIG_INLINE_READ_LOCK_IRQ is not set # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set # CONFIG_INLINE_READ_UNLOCK is not set # CONFIG_INLINE_READ_UNLOCK_BH is not set # CONFIG_INLINE_READ_UNLOCK_IRQ is not set # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_WRITE_TRYLOCK is not set # CONFIG_INLINE_WRITE_LOCK is not set # CONFIG_INLINE_WRITE_LOCK_BH is not set # CONFIG_INLINE_WRITE_LOCK_IRQ is not set # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set # CONFIG_INLINE_WRITE_UNLOCK is not set # CONFIG_INLINE_WRITE_UNLOCK_BH is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQ is not set # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y # CONFIG_X86_MPPARSE is not set # CONFIG_X86_EXTENDED_PLATFORM is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_PARAVIRT_GUEST is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set CONFIG_MK8=y # CONFIG_MPSC is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set # CONFIG_GENERIC_CPU is not set CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_CMPXCHG_LOCAL=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=64 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y CONFIG_GART_IOMMU=y # CONFIG_CALGARY_IOMMU is not set CONFIG_AMD_IOMMU=y # CONFIG_AMD_IOMMU_STATS is not set CONFIG_SWIOTLB=y CONFIG_IOMMU_HELPER=y CONFIG_IOMMU_API=y # CONFIG_MAXSMP is not set CONFIG_NR_CPUS=8 # CONFIG_SCHED_SMT is not set CONFIG_SCHED_MC=y # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set CONFIG_PREEMPT=y CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y # CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set CONFIG_X86_MCE=y # CONFIG_X86_MCE_INTEL is not set CONFIG_X86_MCE_AMD=y CONFIG_X86_MCE_THRESHOLD=y # CONFIG_X86_MCE_INJECT is not set # CONFIG_I8K is not set CONFIG_MICROCODE=m # CONFIG_MICROCODE_INTEL is not set CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=m CONFIG_X86_CPUID=m CONFIG_ARCH_PHYS_ADDR_T_64BIT=y CONFIG_ARCH_DMA_ADDR_T_64BIT=y CONFIG_DIRECT_GBPAGES=y # CONFIG_NUMA is not set CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_DEFAULT=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ARCH_PROC_KCORE_TEXT=y CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_SPARSEMEM_MANUAL=y CONFIG_SPARSEMEM=y CONFIG_HAVE_MEMORY_PRESENT=y CONFIG_SPARSEMEM_EXTREME=y CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y CONFIG_SPARSEMEM_ALLOC_MEM_MAP_TOGETHER=y CONFIG_SPARSEMEM_VMEMMAP=y CONFIG_HAVE_MEMBLOCK=y # CONFIG_MEMORY_HOTPLUG is not set CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y CONFIG_PHYS_ADDR_T_64BIT=y CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y CONFIG_MMU_NOTIFIER=y CONFIG_KSM=y CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y CONFIG_MEMORY_FAILURE=y # CONFIG_HWPOISON_INJECT is not set CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set CONFIG_CLEANCACHE=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 CONFIG_MTRR=y CONFIG_MTRR_SANITIZER=y CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=0 CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y # CONFIG_EFI is not set CONFIG_SECCOMP=y # CONFIG_CC_STACKPROTECTOR is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y # CONFIG_KEXEC is not set # CONFIG_CRASH_DUMP is not set CONFIG_PHYSICAL_START=0x1000000 # CONFIG_RELOCATABLE is not set CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y # CONFIG_COMPAT_VDSO is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # CONFIG_ARCH_HIBERNATION_HEADER=y CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y CONFIG_PM=y # CONFIG_PM_DEBUG is not set CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y # CONFIG_ACPI_PROCFS_POWER is not set # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=m CONFIG_ACPI_BATTERY=m CONFIG_ACPI_BUTTON=m CONFIG_ACPI_VIDEO=m CONFIG_ACPI_FAN=m CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=m CONFIG_ACPI_HOTPLUG_CPU=y CONFIG_ACPI_PROCESSOR_AGGREGATOR=m CONFIG_ACPI_THERMAL=m # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set CONFIG_ACPI_PCI_SLOT=m CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=m CONFIG_ACPI_SBS=m CONFIG_ACPI_HED=m # CONFIG_ACPI_CUSTOM_METHOD is not set CONFIG_ACPI_APEI=y CONFIG_ACPI_APEI_GHES=m CONFIG_ACPI_APEI_PCIEAER=y # CONFIG_ACPI_APEI_EINJ is not set # CONFIG_ACPI_APEI_ERST_DEBUG is not set # CONFIG_SFI is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=m CONFIG_CPU_FREQ_STAT=m # CONFIG_CPU_FREQ_STAT_DETAILS is not set CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_GOV_POWERSAVE=m CONFIG_CPU_FREQ_GOV_USERSPACE=m CONFIG_CPU_FREQ_GOV_ONDEMAND=m CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m # # x86 CPU frequency scaling drivers # # CONFIG_X86_PCC_CPUFREQ is not set CONFIG_X86_ACPI_CPUFREQ=m CONFIG_X86_POWERNOW_K8=m # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_P4_CLOCKMOD is not set # # shared options # # CONFIG_X86_SPEEDSTEP_LIB is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_INTEL_IDLE is not set # # Memory power savings # # CONFIG_I7300_IDLE is not set # # Bus options (PCI etc.) # CONFIG_PCI=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set # CONFIG_DMAR is not set # CONFIG_INTR_REMAP is not set CONFIG_PCIEPORTBUS=y CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y CONFIG_PCI_IOV=y CONFIG_PCI_IOAPIC=y CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y CONFIG_AMD_NB=y # CONFIG_PCCARD is not set # CONFIG_HOTPLUG_PCI is not set # CONFIG_RAPIDIO is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_COMPAT_BINFMT_ELF=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y # CONFIG_HAVE_AOUT is not set CONFIG_BINFMT_MISC=m CONFIG_IA32_EMULATION=y CONFIG_IA32_AOUT=m CONFIG_COMPAT=y CONFIG_COMPAT_FOR_U64_ALIGNMENT=y CONFIG_SYSVIPC_COMPAT=y CONFIG_KEYS_COMPAT=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=y # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set CONFIG_XFRM_IPCOMP=m CONFIG_NET_KEY=y # CONFIG_NET_KEY_MIGRATE is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y # CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y # CONFIG_IP_PNP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE_DEMUX is not set CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y CONFIG_INET_AH=m CONFIG_INET_ESP=m CONFIG_INET_IPCOMP=m CONFIG_INET_XFRM_TUNNEL=m CONFIG_INET_TUNNEL=m CONFIG_INET_XFRM_MODE_TRANSPORT=m CONFIG_INET_XFRM_MODE_TUNNEL=m CONFIG_INET_XFRM_MODE_BEET=m CONFIG_INET_LRO=y CONFIG_INET_DIAG=y CONFIG_INET_TCP_DIAG=y CONFIG_TCP_CONG_ADVANCED=y CONFIG_TCP_CONG_BIC=m CONFIG_TCP_CONG_CUBIC=y CONFIG_TCP_CONG_WESTWOOD=m CONFIG_TCP_CONG_HTCP=m CONFIG_TCP_CONG_HSTCP=m CONFIG_TCP_CONG_HYBLA=m CONFIG_TCP_CONG_VEGAS=m CONFIG_TCP_CONG_SCALABLE=m CONFIG_TCP_CONG_LP=m CONFIG_TCP_CONG_VENO=m CONFIG_TCP_CONG_YEAH=m CONFIG_TCP_CONG_ILLINOIS=m CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" # CONFIG_TCP_MD5SIG is not set CONFIG_IPV6=m CONFIG_IPV6_PRIVACY=y CONFIG_IPV6_ROUTER_PREF=y CONFIG_IPV6_ROUTE_INFO=y CONFIG_IPV6_OPTIMISTIC_DAD=y CONFIG_INET6_AH=m CONFIG_INET6_ESP=m CONFIG_INET6_IPCOMP=m CONFIG_IPV6_MIP6=m CONFIG_INET6_XFRM_TUNNEL=m CONFIG_INET6_TUNNEL=m CONFIG_INET6_XFRM_MODE_TRANSPORT=m CONFIG_INET6_XFRM_MODE_TUNNEL=m CONFIG_INET6_XFRM_MODE_BEET=m CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m CONFIG_IPV6_SIT=m CONFIG_IPV6_SIT_6RD=y CONFIG_IPV6_NDISC_NODETYPE=y CONFIG_IPV6_TUNNEL=m CONFIG_IPV6_MULTIPLE_TABLES=y CONFIG_IPV6_SUBTREES=y CONFIG_IPV6_MROUTE=y CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y CONFIG_IPV6_PIMSM_V2=y # CONFIG_NETLABEL is not set # CONFIG_NETWORK_SECMARK is not set # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y CONFIG_BRIDGE_NETFILTER=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=m CONFIG_NETFILTER_NETLINK_QUEUE=m CONFIG_NETFILTER_NETLINK_LOG=m CONFIG_NF_CONNTRACK=m CONFIG_NF_CONNTRACK_MARK=y # CONFIG_NF_CONNTRACK_ZONES is not set CONFIG_NF_CONNTRACK_EVENTS=y # CONFIG_NF_CONNTRACK_TIMESTAMP is not set CONFIG_NF_CT_PROTO_DCCP=m CONFIG_NF_CT_PROTO_GRE=m CONFIG_NF_CT_PROTO_SCTP=m CONFIG_NF_CT_PROTO_UDPLITE=m CONFIG_NF_CONNTRACK_AMANDA=m CONFIG_NF_CONNTRACK_FTP=m CONFIG_NF_CONNTRACK_H323=m CONFIG_NF_CONNTRACK_IRC=m CONFIG_NF_CONNTRACK_BROADCAST=m CONFIG_NF_CONNTRACK_NETBIOS_NS=m # CONFIG_NF_CONNTRACK_SNMP is not set CONFIG_NF_CONNTRACK_PPTP=m CONFIG_NF_CONNTRACK_SANE=m CONFIG_NF_CONNTRACK_SIP=m CONFIG_NF_CONNTRACK_TFTP=m CONFIG_NF_CT_NETLINK=m # CONFIG_NETFILTER_TPROXY is not set CONFIG_NETFILTER_XTABLES=m # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=m CONFIG_NETFILTER_XT_CONNMARK=m # # Xtables targets # # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m CONFIG_NETFILTER_XT_TARGET_CONNMARK=m CONFIG_NETFILTER_XT_TARGET_CT=m CONFIG_NETFILTER_XT_TARGET_DSCP=m CONFIG_NETFILTER_XT_TARGET_HL=m CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m # CONFIG_NETFILTER_XT_TARGET_LED is not set CONFIG_NETFILTER_XT_TARGET_MARK=m CONFIG_NETFILTER_XT_TARGET_NFLOG=m CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m CONFIG_NETFILTER_XT_TARGET_NOTRACK=m CONFIG_NETFILTER_XT_TARGET_RATEEST=m CONFIG_NETFILTER_XT_TARGET_TEE=m CONFIG_NETFILTER_XT_TARGET_TRACE=m CONFIG_NETFILTER_XT_TARGET_TCPMSS=m CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m # # Xtables matches # # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=m CONFIG_NETFILTER_XT_MATCH_COMMENT=m CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m CONFIG_NETFILTER_XT_MATCH_CONNMARK=m CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m CONFIG_NETFILTER_XT_MATCH_CPU=m CONFIG_NETFILTER_XT_MATCH_DCCP=m # CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set CONFIG_NETFILTER_XT_MATCH_DSCP=m CONFIG_NETFILTER_XT_MATCH_ESP=m CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m CONFIG_NETFILTER_XT_MATCH_HELPER=m CONFIG_NETFILTER_XT_MATCH_HL=m CONFIG_NETFILTER_XT_MATCH_IPRANGE=m CONFIG_NETFILTER_XT_MATCH_LENGTH=m CONFIG_NETFILTER_XT_MATCH_LIMIT=m CONFIG_NETFILTER_XT_MATCH_MAC=m CONFIG_NETFILTER_XT_MATCH_MARK=m CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m CONFIG_NETFILTER_XT_MATCH_OSF=m CONFIG_NETFILTER_XT_MATCH_OWNER=m CONFIG_NETFILTER_XT_MATCH_POLICY=m CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m CONFIG_NETFILTER_XT_MATCH_QUOTA=m CONFIG_NETFILTER_XT_MATCH_RATEEST=m CONFIG_NETFILTER_XT_MATCH_REALM=m CONFIG_NETFILTER_XT_MATCH_RECENT=m CONFIG_NETFILTER_XT_MATCH_SCTP=m CONFIG_NETFILTER_XT_MATCH_STATE=m CONFIG_NETFILTER_XT_MATCH_STATISTIC=m CONFIG_NETFILTER_XT_MATCH_STRING=m CONFIG_NETFILTER_XT_MATCH_TCPMSS=m CONFIG_NETFILTER_XT_MATCH_TIME=m CONFIG_NETFILTER_XT_MATCH_U32=m # CONFIG_IP_SET is not set # CONFIG_IP_VS is not set # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=m CONFIG_NF_CONNTRACK_IPV4=m CONFIG_NF_CONNTRACK_PROC_COMPAT=y CONFIG_IP_NF_QUEUE=m CONFIG_IP_NF_IPTABLES=m CONFIG_IP_NF_MATCH_AH=m CONFIG_IP_NF_MATCH_ECN=m CONFIG_IP_NF_MATCH_TTL=m CONFIG_IP_NF_FILTER=m CONFIG_IP_NF_TARGET_REJECT=m CONFIG_IP_NF_TARGET_LOG=m CONFIG_IP_NF_TARGET_ULOG=m CONFIG_NF_NAT=m CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=m CONFIG_IP_NF_TARGET_NETMAP=m CONFIG_IP_NF_TARGET_REDIRECT=m CONFIG_NF_NAT_PROTO_DCCP=m CONFIG_NF_NAT_PROTO_GRE=m CONFIG_NF_NAT_PROTO_UDPLITE=m CONFIG_NF_NAT_PROTO_SCTP=m CONFIG_NF_NAT_FTP=m CONFIG_NF_NAT_IRC=m CONFIG_NF_NAT_TFTP=m CONFIG_NF_NAT_AMANDA=m CONFIG_NF_NAT_PPTP=m CONFIG_NF_NAT_H323=m CONFIG_NF_NAT_SIP=m CONFIG_IP_NF_MANGLE=m CONFIG_IP_NF_TARGET_CLUSTERIP=m CONFIG_IP_NF_TARGET_ECN=m CONFIG_IP_NF_TARGET_TTL=m CONFIG_IP_NF_RAW=m # CONFIG_IP_NF_SECURITY is not set CONFIG_IP_NF_ARPTABLES=m CONFIG_IP_NF_ARPFILTER=m CONFIG_IP_NF_ARP_MANGLE=m # # IPv6: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV6=m CONFIG_NF_CONNTRACK_IPV6=m CONFIG_IP6_NF_QUEUE=m CONFIG_IP6_NF_IPTABLES=m CONFIG_IP6_NF_MATCH_AH=m CONFIG_IP6_NF_MATCH_EUI64=m CONFIG_IP6_NF_MATCH_FRAG=m CONFIG_IP6_NF_MATCH_OPTS=m CONFIG_IP6_NF_MATCH_HL=m CONFIG_IP6_NF_MATCH_IPV6HEADER=m CONFIG_IP6_NF_MATCH_MH=m CONFIG_IP6_NF_MATCH_RT=m CONFIG_IP6_NF_TARGET_HL=m CONFIG_IP6_NF_TARGET_LOG=m CONFIG_IP6_NF_FILTER=m CONFIG_IP6_NF_TARGET_REJECT=m CONFIG_IP6_NF_MANGLE=m CONFIG_IP6_NF_RAW=m # CONFIG_IP6_NF_SECURITY is not set # CONFIG_BRIDGE_NF_EBTABLES is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_L2TP is not set CONFIG_STP=m CONFIG_BRIDGE=m CONFIG_BRIDGE_IGMP_SNOOPING=y # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set CONFIG_LLC=m # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set # CONFIG_IEEE802154 is not set # CONFIG_NET_SCHED is not set # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y CONFIG_HAVE_BPF_JIT=y CONFIG_BPF_JIT=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_DROP_MONITOR is not set # CONFIG_HAMRADIO is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set CONFIG_BT=m CONFIG_BT_L2CAP=y CONFIG_BT_SCO=y CONFIG_BT_RFCOMM=m CONFIG_BT_RFCOMM_TTY=y CONFIG_BT_BNEP=m CONFIG_BT_BNEP_MC_FILTER=y CONFIG_BT_BNEP_PROTO_FILTER=y CONFIG_BT_HIDP=m # # Bluetooth device drivers # CONFIG_BT_HCIBTUSB=m # CONFIG_BT_HCIUART is not set # CONFIG_BT_HCIBCM203X is not set # CONFIG_BT_HCIBPA10X is not set # CONFIG_BT_HCIBFUSB is not set # CONFIG_BT_HCIVHCI is not set # CONFIG_BT_MRVL is not set # CONFIG_BT_ATH3K is not set # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y # CONFIG_WIRELESS is not set # CONFIG_WIMAX is not set # CONFIG_RFKILL is not set # CONFIG_NET_9P is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" CONFIG_DEVTMPFS=y CONFIG_DEVTMPFS_MOUNT=y CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y # CONFIG_FIRMWARE_IN_KERNEL is not set CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set # CONFIG_DEBUG_DEVRES is not set # CONFIG_SYS_HYPERVISOR is not set # CONFIG_CONNECTOR is not set # CONFIG_MTD is not set CONFIG_PARPORT=m CONFIG_PARPORT_PC=m # CONFIG_PARPORT_SERIAL is not set # CONFIG_PARPORT_PC_FIFO is not set # CONFIG_PARPORT_PC_SUPERIO is not set # CONFIG_PARPORT_GSC is not set # CONFIG_PARPORT_AX88796 is not set CONFIG_PARPORT_1284=y CONFIG_PNP=y CONFIG_PNP_DEBUG_MESSAGES=y # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y CONFIG_BLK_DEV_FD=m # CONFIG_PARIDE is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=m CONFIG_BLK_DEV_CRYPTOLOOP=m # # DRBD disabled because PROC_FS, INET or CONNECTOR not selected # CONFIG_BLK_DEV_NBD=m # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set CONFIG_BLK_DEV_RAM=y CONFIG_BLK_DEV_RAM_COUNT=16 CONFIG_BLK_DEV_RAM_SIZE=65536 # CONFIG_BLK_DEV_XIP is not set CONFIG_CDROM_PKTCDVD=m CONFIG_CDROM_PKTCDVD_BUFFERS=8 # CONFIG_CDROM_PKTCDVD_WCACHE is not set # CONFIG_ATA_OVER_ETH is not set CONFIG_VIRTIO_BLK=m # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_MISC_DEVICES is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y CONFIG_RAID_ATTRS=y CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set # CONFIG_SCSI_PROC_FS is not set # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=m CONFIG_BLK_DEV_SR_VENDOR=y # CONFIG_CHR_DEV_SG is not set # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set CONFIG_SCSI_SCAN_ASYNC=y CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=m # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_DH is not set # CONFIG_SCSI_OSD_INITIATOR is not set CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y # CONFIG_SATA_AHCI_PLATFORM is not set # CONFIG_SATA_INIC162X is not set # CONFIG_SATA_ACARD_AHCI is not set CONFIG_SATA_SIL24=y CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_SX4 is not set CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=m # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_SATA_PROMISE is not set CONFIG_SATA_SIL=y # CONFIG_SATA_SIS is not set # CONFIG_SATA_SVW is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # # PATA SFF controllers with BMDMA # # CONFIG_PATA_ALI is not set # CONFIG_PATA_AMD is not set # CONFIG_PATA_ARASAN_CF is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_ATP867X is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CS5536 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_IT821X is not set CONFIG_PATA_JMICRON=y # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NINJA32 is not set # CONFIG_PATA_NS87415 is not set # CONFIG_PATA_OLDPIIX is not set # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RDC is not set # CONFIG_PATA_SC1200 is not set # CONFIG_PATA_SCH is not set # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_TOSHIBA is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set # CONFIG_PATA_MPIIX is not set # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # # CONFIG_PATA_ACPI is not set # CONFIG_ATA_GENERIC is not set # CONFIG_PATA_LEGACY is not set CONFIG_MD=y CONFIG_BLK_DEV_MD=y CONFIG_MD_AUTODETECT=y CONFIG_MD_LINEAR=y CONFIG_MD_RAID0=y CONFIG_MD_RAID1=y CONFIG_MD_RAID10=y # CONFIG_MD_RAID456 is not set CONFIG_MD_MULTIPATH=y # CONFIG_MD_FAULTY is not set CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set # CONFIG_DM_CRYPT is not set CONFIG_DM_SNAPSHOT=y CONFIG_DM_MIRROR=y # CONFIG_DM_RAID is not set # CONFIG_DM_LOG_USERSPACE is not set CONFIG_DM_ZERO=y # CONFIG_DM_MULTIPATH is not set # CONFIG_DM_DELAY is not set CONFIG_DM_UEVENT=y # CONFIG_DM_FLAKEY is not set # CONFIG_TARGET_CORE is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # CONFIG_FIREWIRE=m CONFIG_FIREWIRE_OHCI=m CONFIG_FIREWIRE_OHCI_DEBUG=y CONFIG_FIREWIRE_SBP2=m CONFIG_FIREWIRE_NET=m # CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # CONFIG_VETH is not set # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set CONFIG_MII=y # CONFIG_PHYLIB is not set # CONFIG_NET_ETHERNET is not set CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set # CONFIG_E1000 is not set # CONFIG_E1000E is not set # CONFIG_IP1000 is not set # CONFIG_IGB is not set # CONFIG_IGBVF is not set # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set CONFIG_R8169=y # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_CNIC is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_JME is not set # CONFIG_STMMAC_ETH is not set # CONFIG_PCH_GBE is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set # CONFIG_WLAN is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET is not set # CONFIG_USB_IPHETH is not set # CONFIG_WAN is not set # # CAIF transport drivers # # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PLIP is not set CONFIG_PPP=m # CONFIG_PPP_MULTILINK is not set CONFIG_PPP_FILTER=y # CONFIG_PPP_ASYNC is not set # CONFIG_PPP_SYNC_TTY is not set CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m # CONFIG_PPP_MPPE is not set CONFIG_PPPOE=m # CONFIG_SLIP is not set CONFIG_SLHC=m # CONFIG_NET_FC is not set CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y # CONFIG_NETPOLL_TRAP is not set CONFIG_NET_POLL_CONTROLLER=y CONFIG_VIRTIO_NET=m # CONFIG_VMXNET3 is not set # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=m CONFIG_INPUT_POLLDEV=m # CONFIG_INPUT_SPARSEKMAP is not set # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 CONFIG_INPUT_JOYDEV=m CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set CONFIG_KEYBOARD_LKKBD=m # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set CONFIG_KEYBOARD_NEWTON=m # CONFIG_KEYBOARD_OPENCORES is not set CONFIG_KEYBOARD_STOWAWAY=m CONFIG_KEYBOARD_SUNKBD=m CONFIG_KEYBOARD_XTKBD=m CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=m CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y # CONFIG_MOUSE_PS2_ELANTECH is not set # CONFIG_MOUSE_PS2_SENTELIC is not set # CONFIG_MOUSE_PS2_TOUCHKIT is not set CONFIG_MOUSE_SERIAL=m # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_BCM5974 is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_MOUSE_SYNAPTICS_I2C is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=m # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PARKBD is not set CONFIG_SERIO_PCIPS2=m CONFIG_SERIO_LIBPS2=y CONFIG_SERIO_RAW=m # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y # CONFIG_VT_HW_CONSOLE_BINDING is not set CONFIG_UNIX98_PTYS=y # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_NOZOMI is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y # CONFIG_SERIAL_8250_DETECT_IRQ is not set CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # # CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_PRINTER is not set # CONFIG_PPDEV is not set CONFIG_HVC_DRIVER=y CONFIG_VIRTIO_CONSOLE=m # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=m # CONFIG_HW_RANDOM_TIMERIOMEM is not set CONFIG_HW_RANDOM_INTEL=m CONFIG_HW_RANDOM_AMD=m CONFIG_HW_RANDOM_VIA=m # CONFIG_HW_RANDOM_VIRTIO is not set CONFIG_NVRAM=m # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_MWAVE is not set # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y CONFIG_HPET_MMAP=y # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y CONFIG_RAMOOPS=m CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y CONFIG_I2C_CHARDEV=m CONFIG_I2C_MUX=m # # Multiplexer I2C Chip support # # CONFIG_I2C_MUX_PCA9541 is not set CONFIG_I2C_MUX_PCA954x=m CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_SMBUS=m CONFIG_I2C_ALGOBIT=m CONFIG_I2C_ALGOPCA=m # # I2C Hardware Bus support # # # PC SMBus host controller drivers # CONFIG_I2C_ALI1535=m CONFIG_I2C_ALI1563=m CONFIG_I2C_ALI15X3=m CONFIG_I2C_AMD756=m CONFIG_I2C_AMD756_S4882=m CONFIG_I2C_AMD8111=m CONFIG_I2C_I801=m # CONFIG_I2C_ISCH is not set CONFIG_I2C_PIIX4=m CONFIG_I2C_NFORCE2=m CONFIG_I2C_NFORCE2_S4985=m CONFIG_I2C_SIS5595=m CONFIG_I2C_SIS630=m CONFIG_I2C_SIS96X=m CONFIG_I2C_VIA=m CONFIG_I2C_VIAPRO=m # # ACPI drivers # CONFIG_I2C_SCMI=m # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_INTEL_MID is not set CONFIG_I2C_OCORES=m CONFIG_I2C_PCA_PLATFORM=m # CONFIG_I2C_PXA_PCI is not set CONFIG_I2C_SIMTEC=m CONFIG_I2C_XILINX=m # CONFIG_I2C_EG20T is not set # # External I2C/SMBus adapter drivers # # CONFIG_I2C_DIOLAN_U2C is not set CONFIG_I2C_PARPORT=m CONFIG_I2C_PARPORT_LIGHT=m CONFIG_I2C_TAOS_EVM=m CONFIG_I2C_TINY_USB=m # # Other I2C/SMBus bus drivers # CONFIG_I2C_STUB=m # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set # # PPS support # # CONFIG_PPS is not set # # PPS generators support # # # PTP clock support # # # Enable Device Drivers -> PPS to see the PTP clock options. # CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set # CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_BQ20Z75 is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set CONFIG_HWMON=m CONFIG_HWMON_VID=m # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # CONFIG_SENSORS_ABITUGURU=m CONFIG_SENSORS_ABITUGURU3=m CONFIG_SENSORS_AD7414=m CONFIG_SENSORS_AD7418=m CONFIG_SENSORS_ADM1021=m CONFIG_SENSORS_ADM1025=m CONFIG_SENSORS_ADM1026=m CONFIG_SENSORS_ADM1029=m CONFIG_SENSORS_ADM1031=m CONFIG_SENSORS_ADM9240=m CONFIG_SENSORS_ADT7411=m CONFIG_SENSORS_ADT7462=m CONFIG_SENSORS_ADT7470=m CONFIG_SENSORS_ADT7475=m CONFIG_SENSORS_ASC7621=m CONFIG_SENSORS_K8TEMP=m CONFIG_SENSORS_K10TEMP=m # CONFIG_SENSORS_FAM15H_POWER is not set CONFIG_SENSORS_ASB100=m CONFIG_SENSORS_ATXP1=m # CONFIG_SENSORS_DS620 is not set CONFIG_SENSORS_DS1621=m CONFIG_SENSORS_I5K_AMB=m CONFIG_SENSORS_F71805F=m CONFIG_SENSORS_F71882FG=m CONFIG_SENSORS_F75375S=m CONFIG_SENSORS_FSCHMD=m CONFIG_SENSORS_G760A=m CONFIG_SENSORS_GL518SM=m CONFIG_SENSORS_GL520SM=m CONFIG_SENSORS_CORETEMP=m CONFIG_SENSORS_IT87=m CONFIG_SENSORS_JC42=m # CONFIG_SENSORS_LINEAGE is not set CONFIG_SENSORS_LM63=m CONFIG_SENSORS_LM73=m CONFIG_SENSORS_LM75=m CONFIG_SENSORS_LM77=m CONFIG_SENSORS_LM78=m CONFIG_SENSORS_LM80=m CONFIG_SENSORS_LM83=m CONFIG_SENSORS_LM85=m CONFIG_SENSORS_LM87=m CONFIG_SENSORS_LM90=m CONFIG_SENSORS_LM92=m CONFIG_SENSORS_LM93=m # CONFIG_SENSORS_LTC4151 is not set CONFIG_SENSORS_LTC4215=m CONFIG_SENSORS_LTC4245=m # CONFIG_SENSORS_LTC4261 is not set CONFIG_SENSORS_LM95241=m # CONFIG_SENSORS_MAX16065 is not set CONFIG_SENSORS_MAX1619=m # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set CONFIG_SENSORS_MAX6650=m CONFIG_SENSORS_PC87360=m CONFIG_SENSORS_PC87427=m CONFIG_SENSORS_PCF8591=m # CONFIG_PMBUS is not set # CONFIG_SENSORS_SHT21 is not set CONFIG_SENSORS_SIS5595=m CONFIG_SENSORS_SMM665=m CONFIG_SENSORS_DME1737=m CONFIG_SENSORS_EMC1403=m CONFIG_SENSORS_EMC2103=m # CONFIG_SENSORS_EMC6W201 is not set CONFIG_SENSORS_SMSC47M1=m CONFIG_SENSORS_SMSC47M192=m CONFIG_SENSORS_SMSC47B397=m # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_ADS1015 is not set CONFIG_SENSORS_ADS7828=m CONFIG_SENSORS_AMC6821=m CONFIG_SENSORS_THMC50=m CONFIG_SENSORS_TMP102=m CONFIG_SENSORS_TMP401=m CONFIG_SENSORS_TMP421=m CONFIG_SENSORS_VIA_CPUTEMP=m CONFIG_SENSORS_VIA686A=m CONFIG_SENSORS_VT1211=m CONFIG_SENSORS_VT8231=m CONFIG_SENSORS_W83781D=m CONFIG_SENSORS_W83791D=m CONFIG_SENSORS_W83792D=m CONFIG_SENSORS_W83793=m # CONFIG_SENSORS_W83795 is not set CONFIG_SENSORS_W83L785TS=m CONFIG_SENSORS_W83L786NG=m CONFIG_SENSORS_W83627HF=m CONFIG_SENSORS_W83627EHF=m CONFIG_SENSORS_APPLESMC=m # # ACPI drivers # # CONFIG_SENSORS_ACPI_POWER is not set CONFIG_SENSORS_ATK0110=m CONFIG_THERMAL=m # CONFIG_THERMAL_HWMON is not set # CONFIG_WATCHDOG is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # CONFIG_SSB=m CONFIG_SSB_SPROM=y CONFIG_SSB_PCIHOST_POSSIBLE=y CONFIG_SSB_PCIHOST=y # CONFIG_SSB_B43_PCI_BRIDGE is not set # CONFIG_SSB_DEBUG is not set CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y CONFIG_SSB_DRIVER_PCICORE=y CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # # CONFIG_BCMA is not set # CONFIG_MFD_SUPPORT is not set # CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=m # # Multimedia core support # # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=m CONFIG_VIDEO_V4L2_COMMON=m # CONFIG_DVB_CORE is not set CONFIG_VIDEO_MEDIA=m # # Multimedia drivers # # CONFIG_RC_CORE is not set # CONFIG_MEDIA_ATTACH is not set CONFIG_MEDIA_TUNER=m # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=m CONFIG_MEDIA_TUNER_TDA8290=m CONFIG_MEDIA_TUNER_TDA827X=m CONFIG_MEDIA_TUNER_TDA18271=m CONFIG_MEDIA_TUNER_TDA9887=m CONFIG_MEDIA_TUNER_TEA5761=m CONFIG_MEDIA_TUNER_TEA5767=m CONFIG_MEDIA_TUNER_MT20XX=m CONFIG_MEDIA_TUNER_XC2028=m CONFIG_MEDIA_TUNER_XC5000=m CONFIG_MEDIA_TUNER_MC44S803=m CONFIG_VIDEO_V4L2=m CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # # Audio decoders, processors and mixers # # # RDS decoders # # # Video decoders # # # Video and audio decoders # # # MPEG video encoders # # # Video encoders # # # Camera sensor devices # # # Video improvement chips # # # Miscelaneous helper chips # # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_BWQCAM is not set # CONFIG_VIDEO_CQCAM is not set # CONFIG_VIDEO_W9966 is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_VIDEO_SR030PC30 is not set # CONFIG_VIDEO_NOON010PC30 is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y # CONFIG_USB_VIDEO_CLASS is not set CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y CONFIG_USB_GSPCA=m # CONFIG_USB_M5602 is not set # CONFIG_USB_STV06XX is not set # CONFIG_USB_GL860 is not set # CONFIG_USB_GSPCA_BENQ is not set # CONFIG_USB_GSPCA_CONEX is not set # CONFIG_USB_GSPCA_CPIA1 is not set # CONFIG_USB_GSPCA_ETOMS is not set # CONFIG_USB_GSPCA_FINEPIX is not set # CONFIG_USB_GSPCA_JEILINJ is not set # CONFIG_USB_GSPCA_KINECT is not set # CONFIG_USB_GSPCA_KONICA is not set # CONFIG_USB_GSPCA_MARS is not set # CONFIG_USB_GSPCA_MR97310A is not set # CONFIG_USB_GSPCA_NW80X is not set # CONFIG_USB_GSPCA_OV519 is not set # CONFIG_USB_GSPCA_OV534 is not set # CONFIG_USB_GSPCA_OV534_9 is not set # CONFIG_USB_GSPCA_PAC207 is not set # CONFIG_USB_GSPCA_PAC7302 is not set # CONFIG_USB_GSPCA_PAC7311 is not set # CONFIG_USB_GSPCA_SN9C2028 is not set # CONFIG_USB_GSPCA_SN9C20X is not set # CONFIG_USB_GSPCA_SONIXB is not set # CONFIG_USB_GSPCA_SONIXJ is not set # CONFIG_USB_GSPCA_SPCA500 is not set # CONFIG_USB_GSPCA_SPCA501 is not set # CONFIG_USB_GSPCA_SPCA505 is not set # CONFIG_USB_GSPCA_SPCA506 is not set # CONFIG_USB_GSPCA_SPCA508 is not set # CONFIG_USB_GSPCA_SPCA561 is not set # CONFIG_USB_GSPCA_SPCA1528 is not set # CONFIG_USB_GSPCA_SQ905 is not set # CONFIG_USB_GSPCA_SQ905C is not set # CONFIG_USB_GSPCA_SQ930X is not set # CONFIG_USB_GSPCA_STK014 is not set # CONFIG_USB_GSPCA_STV0680 is not set # CONFIG_USB_GSPCA_SUNPLUS is not set # CONFIG_USB_GSPCA_T613 is not set # CONFIG_USB_GSPCA_TV8532 is not set # CONFIG_USB_GSPCA_VC032X is not set # CONFIG_USB_GSPCA_VICAM is not set # CONFIG_USB_GSPCA_XIRLINK_CIT is not set CONFIG_USB_GSPCA_ZC3XX=m # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set # CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set CONFIG_RADIO_ADAPTERS=y # CONFIG_RADIO_MAXIRADIO is not set # CONFIG_I2C_SI4713 is not set # CONFIG_RADIO_SI4713 is not set # CONFIG_USB_DSBR is not set # CONFIG_RADIO_SI470X is not set # CONFIG_USB_MR800 is not set # CONFIG_RADIO_TEA5764 is not set # CONFIG_RADIO_SAA7706H is not set # CONFIG_RADIO_TEF6862 is not set # CONFIG_RADIO_WL1273 is not set # # Texas Instruments WL128x FM driver (ST based) # # # Graphics support # # CONFIG_AGP is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=1 # CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=m CONFIG_DRM_KMS_HELPER=m CONFIG_DRM_TTM=m # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set CONFIG_DRM_RADEON=m CONFIG_DRM_RADEON_KMS=y # CONFIG_DRM_MGA is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set # CONFIG_STUB_POULSBO is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=m CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set # CONFIG_FB_BOOT_VESA_SUPPORT is not set CONFIG_FB_CFB_FILLRECT=m CONFIG_FB_CFB_COPYAREA=m CONFIG_FB_CFB_IMAGEBLIT=m # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_SYS_FOPS is not set # CONFIG_FB_WMT_GE_ROPS is not set # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_VESA is not set # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y CONFIG_LCD_CLASS_DEVICE=m CONFIG_LCD_PLATFORM=m CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y CONFIG_BACKLIGHT_PROGEAR=m # CONFIG_BACKLIGHT_APPLE is not set CONFIG_BACKLIGHT_SAHARA=m # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # # Display device support # CONFIG_DISPLAY_SUPPORT=m # # Display hardware drivers # # # Console display driver support # CONFIG_VGA_CONSOLE=y # CONFIG_VGACON_SOFT_SCROLLBACK is not set CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y CONFIG_LOGO=y CONFIG_LOGO_LINUX_MONO=y CONFIG_LOGO_LINUX_VGA16=y CONFIG_LOGO_LINUX_CLUT224=y CONFIG_SOUND=m CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=m CONFIG_SND_TIMER=m CONFIG_SND_PCM=m CONFIG_SND_HWDEP=m CONFIG_SND_JACK=y CONFIG_SND_SEQUENCER=m # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=m CONFIG_SND_PCM_OSS=m CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_HRTIMER=m CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y # CONFIG_SND_RAWMIDI_SEQ is not set # CONFIG_SND_OPL3_LIB_SEQ is not set # CONFIG_SND_OPL4_LIB_SEQ is not set # CONFIG_SND_SBAWE_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set # CONFIG_SND_DRIVERS is not set CONFIG_SND_PCI=y # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ASIHPI is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_OXYGEN is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_CS5535AUDIO is not set # CONFIG_SND_CTXFI is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_INDIGOIOX is not set # CONFIG_SND_INDIGODJX is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_HWDEP=y CONFIG_SND_HDA_RECONFIG=y CONFIG_SND_HDA_INPUT_BEEP=y CONFIG_SND_HDA_INPUT_BEEP_MODE=1 CONFIG_SND_HDA_INPUT_JACK=y CONFIG_SND_HDA_PATCH_LOADER=y CONFIG_SND_HDA_CODEC_REALTEK=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y CONFIG_SND_HDA_POWER_SAVE=y CONFIG_SND_HDA_POWER_SAVE_DEFAULT=5 # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set # CONFIG_SND_INTEL8X0 is not set # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_LOLA is not set # CONFIG_SND_LX6464ES is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VIRTUOSO is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # CONFIG_SND_USB is not set CONFIG_SND_FIREWIRE=y # CONFIG_SND_FIREWIRE_SPEAKERS is not set # CONFIG_SND_ISIGHT is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y # CONFIG_HIDRAW is not set # # USB Input Devices # CONFIG_USB_HID=m # CONFIG_HID_PID is not set # CONFIG_USB_HIDDEV is not set # # Special HID drivers # CONFIG_HID_A4TECH=m # CONFIG_HID_ACRUX is not set CONFIG_HID_APPLE=m CONFIG_HID_BELKIN=m CONFIG_HID_CHERRY=m CONFIG_HID_CHICONY=m # CONFIG_HID_PRODIKEYS is not set CONFIG_HID_CYPRESS=m CONFIG_HID_DRAGONRISE=m # CONFIG_DRAGONRISE_FF is not set # CONFIG_HID_EMS_FF is not set # CONFIG_HID_ELECOM is not set CONFIG_HID_EZKEY=m # CONFIG_HID_KEYTOUCH is not set CONFIG_HID_KYE=m # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=m CONFIG_HID_TWINHAN=m CONFIG_HID_KENSINGTON=m # CONFIG_HID_LCPOWER is not set CONFIG_HID_LOGITECH=m # CONFIG_LOGITECH_FF is not set # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWII_FF is not set # CONFIG_HID_MAGICMOUSE is not set CONFIG_HID_MICROSOFT=m CONFIG_HID_MONTEREY=m # CONFIG_HID_MULTITOUCH is not set CONFIG_HID_NTRIG=m CONFIG_HID_ORTEK=m CONFIG_HID_PANTHERLORD=m # CONFIG_PANTHERLORD_FF is not set CONFIG_HID_PETALYNX=m # CONFIG_HID_PICOLCD is not set # CONFIG_HID_QUANTA is not set # CONFIG_HID_ROCCAT is not set # CONFIG_HID_ROCCAT_ARVO is not set # CONFIG_HID_ROCCAT_KONE is not set # CONFIG_HID_ROCCAT_KONEPLUS is not set # CONFIG_HID_ROCCAT_KOVAPLUS is not set # CONFIG_HID_ROCCAT_PYRA is not set CONFIG_HID_SAMSUNG=m CONFIG_HID_SONY=m CONFIG_HID_SUNPLUS=m CONFIG_HID_GREENASIA=m # CONFIG_GREENASIA_FF is not set CONFIG_HID_SMARTJOYPLUS=m # CONFIG_SMARTJOYPLUS_FF is not set CONFIG_HID_TOPSEED=m CONFIG_HID_THRUSTMASTER=m # CONFIG_THRUSTMASTER_FF is not set # CONFIG_HID_WACOM is not set CONFIG_HID_ZEROPLUS=m # CONFIG_ZEROPLUS_FF is not set # CONFIG_HID_ZYDACRON is not set CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=m # CONFIG_USB_DEBUG is not set CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y CONFIG_USB_DEVICE_CLASS=y # CONFIG_USB_DYNAMIC_MINORS is not set # CONFIG_USB_SUSPEND is not set CONFIG_USB_MON=m # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set CONFIG_USB_XHCI_HCD=m # CONFIG_USB_XHCI_HCD_DEBUGGING is not set CONFIG_USB_EHCI_HCD=m CONFIG_USB_EHCI_ROOT_HUB_TT=y # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set # CONFIG_USB_ISP1362_HCD is not set CONFIG_USB_OHCI_HCD=m CONFIG_USB_OHCI_HCD_SSB=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=m # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set # CONFIG_USB_HWA_HCD is not set # # Enable Host or Gadget support to see Inventra options # # # USB Device Class drivers # CONFIG_USB_ACM=m CONFIG_USB_PRINTER=m # CONFIG_USB_WDM is not set # CONFIG_USB_TMC is not set # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=m # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_REALTEK is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_ISD200 is not set CONFIG_USB_STORAGE_USBAT=m CONFIG_USB_STORAGE_SDDR09=m CONFIG_USB_STORAGE_SDDR55=m # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_ONETOUCH is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set # CONFIG_USB_STORAGE_ENE_UB6250 is not set # CONFIG_USB_UAS is not set CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB port drivers # # CONFIG_USB_USS720 is not set CONFIG_USB_SERIAL=m # CONFIG_USB_EZUSB is not set CONFIG_USB_SERIAL_GENERIC=y # CONFIG_USB_SERIAL_AIRCABLE is not set # CONFIG_USB_SERIAL_ARK3116 is not set # CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_CH341 is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set # CONFIG_USB_SERIAL_CP210X is not set # CONFIG_USB_SERIAL_CYPRESS_M8 is not set # CONFIG_USB_SERIAL_EMPEG is not set # CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_FUNSOFT is not set # CONFIG_USB_SERIAL_VISOR is not set # CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_EDGEPORT_TI is not set # CONFIG_USB_SERIAL_GARMIN is not set # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_IUU is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set # CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set # CONFIG_USB_SERIAL_MOS7720 is not set # CONFIG_USB_SERIAL_MOS7840 is not set # CONFIG_USB_SERIAL_MOTOROLA is not set # CONFIG_USB_SERIAL_NAVMAN is not set # CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_OTI6858 is not set # CONFIG_USB_SERIAL_QCAUX is not set # CONFIG_USB_SERIAL_QUALCOMM is not set # CONFIG_USB_SERIAL_SPCP8X5 is not set # CONFIG_USB_SERIAL_HP4X is not set # CONFIG_USB_SERIAL_SAFE is not set # CONFIG_USB_SERIAL_SIEMENS_MPI is not set # CONFIG_USB_SERIAL_SIERRAWIRELESS is not set # CONFIG_USB_SERIAL_SYMBOL is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set CONFIG_USB_SERIAL_WWAN=m CONFIG_USB_SERIAL_OPTION=m # CONFIG_USB_SERIAL_OMNINET is not set # CONFIG_USB_SERIAL_OPTICON is not set # CONFIG_USB_SERIAL_VIVOPAY_SERIAL is not set # CONFIG_USB_SERIAL_ZIO is not set # CONFIG_USB_SERIAL_SSU100 is not set # CONFIG_USB_SERIAL_DEBUG is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set # CONFIG_USB_SEVSEG is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set # CONFIG_USB_GADGET is not set # # OTG and related infrastructure # # CONFIG_NOP_USB_XCEIV is not set # CONFIG_UWB is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # # LED drivers # # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_ALIX2 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set CONFIG_LEDS_CLEVO_MAIL=m # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_INTEL_SS4200 is not set # CONFIG_LEDS_DELL_NETBOOKS is not set CONFIG_LEDS_TRIGGERS=y # # LED Triggers # CONFIG_LEDS_TRIGGER_TIMER=m CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set CONFIG_LEDS_TRIGGER_DEFAULT_ON=m # # iptables trigger is under Netfilter config (LED target) # # CONFIG_NFC_DEVICES is not set # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set # CONFIG_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y CONFIG_RTC_HCTOSYS=y CONFIG_RTC_HCTOSYS_DEVICE="rtc0" # CONFIG_RTC_DEBUG is not set # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # CONFIG_RTC_DRV_DS1307=m CONFIG_RTC_DRV_DS1374=m CONFIG_RTC_DRV_DS1672=m # CONFIG_RTC_DRV_DS3232 is not set CONFIG_RTC_DRV_MAX6900=m CONFIG_RTC_DRV_RS5C372=m CONFIG_RTC_DRV_ISL1208=m # CONFIG_RTC_DRV_ISL12022 is not set CONFIG_RTC_DRV_X1205=m CONFIG_RTC_DRV_PCF8563=m CONFIG_RTC_DRV_PCF8583=m CONFIG_RTC_DRV_M41T80=m # CONFIG_RTC_DRV_M41T80_WDT is not set # CONFIG_RTC_DRV_BQ32K is not set CONFIG_RTC_DRV_S35390A=m CONFIG_RTC_DRV_FM3130=m # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set # # SPI RTC drivers # # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y # CONFIG_RTC_DRV_DS1286 is not set CONFIG_RTC_DRV_DS1511=m CONFIG_RTC_DRV_DS1553=m CONFIG_RTC_DRV_DS1742=m CONFIG_RTC_DRV_STK17TA8=m CONFIG_RTC_DRV_M48T86=m # CONFIG_RTC_DRV_M48T35 is not set CONFIG_RTC_DRV_M48T59=m # CONFIG_RTC_DRV_MSM6242 is not set # CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_RP5C01 is not set CONFIG_RTC_DRV_V3020=m # # on-CPU RTC drivers # # CONFIG_DMADEVICES is not set # CONFIG_AUXDISPLAY is not set CONFIG_UIO=m # CONFIG_UIO_CIF is not set # CONFIG_UIO_PDRV is not set # CONFIG_UIO_PDRV_GENIRQ is not set # CONFIG_UIO_AEC is not set # CONFIG_UIO_SERCOS3 is not set # CONFIG_UIO_PCI_GENERIC is not set # CONFIG_UIO_NETX is not set # CONFIG_STAGING is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACER_WMI is not set # CONFIG_ACERHDF is not set # CONFIG_ASUS_LAPTOP is not set # CONFIG_DELL_WMI is not set # CONFIG_DELL_WMI_AIO is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_HP_ACCEL is not set # CONFIG_HP_WMI is not set # CONFIG_PANASONIC_LAPTOP is not set # CONFIG_THINKPAD_ACPI is not set # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_MENLOW is not set CONFIG_ACPI_WMI=m # CONFIG_MSI_WMI is not set # CONFIG_ACPI_ASUS is not set # CONFIG_TOPSTAR_LAPTOP is not set # CONFIG_ACPI_TOSHIBA is not set # CONFIG_TOSHIBA_BT_RFKILL is not set # CONFIG_ACPI_CMPC is not set # CONFIG_INTEL_IPS is not set # CONFIG_IBM_RTL is not set # CONFIG_XO15_EBOOK is not set # CONFIG_MXM_WMI is not set # # Firmware Drivers # CONFIG_EDD=m # CONFIG_EDD_OFF is not set CONFIG_FIRMWARE_MEMMAP=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y CONFIG_DMI_SYSFS=m # CONFIG_ISCSI_IBFT_FIND is not set # CONFIG_SIGMA is not set # CONFIG_GOOGLE_FIRMWARE is not set # # File systems # CONFIG_EXT2_FS=m CONFIG_EXT2_FS_XATTR=y CONFIG_EXT2_FS_POSIX_ACL=y # CONFIG_EXT2_FS_SECURITY is not set CONFIG_EXT2_FS_XIP=y # CONFIG_EXT3_FS is not set CONFIG_EXT4_FS=y CONFIG_EXT4_USE_FOR_EXT23=y CONFIG_EXT4_FS_XATTR=y # CONFIG_EXT4_FS_POSIX_ACL is not set CONFIG_EXT4_FS_SECURITY=y # CONFIG_EXT4_DEBUG is not set CONFIG_FS_XIP=y CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y CONFIG_REISERFS_FS=m # CONFIG_REISERFS_CHECK is not set # CONFIG_REISERFS_PROC_INFO is not set CONFIG_REISERFS_FS_XATTR=y CONFIG_REISERFS_FS_POSIX_ACL=y CONFIG_REISERFS_FS_SECURITY=y # CONFIG_JFS_FS is not set CONFIG_XFS_FS=y CONFIG_XFS_QUOTA=y CONFIG_XFS_POSIX_ACL=y CONFIG_XFS_RT=y # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y CONFIG_FANOTIFY=y CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y CONFIG_PRINT_QUOTA_WARNING=y # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=m # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=m CONFIG_QUOTACTL=y CONFIG_QUOTACTL_COMPAT=y CONFIG_AUTOFS4_FS=m CONFIG_FUSE_FS=m # CONFIG_CUSE is not set CONFIG_GENERIC_ACL=y # # Caches # # CONFIG_FSCACHE is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=m CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=m CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=m # CONFIG_MSDOS_FS is not set CONFIG_VFAT_FS=m CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=m CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_LOGFS is not set CONFIG_CRAMFS=m CONFIG_SQUASHFS=m # CONFIG_SQUASHFS_XATTR is not set # CONFIG_SQUASHFS_LZO is not set # CONFIG_SQUASHFS_XZ is not set # CONFIG_SQUASHFS_EMBEDDED is not set CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set CONFIG_PSTORE=y # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=m CONFIG_NFS_V3=y # CONFIG_NFS_V3_ACL is not set # CONFIG_NFS_V4 is not set CONFIG_NFSD=m # CONFIG_NFSD_DEPRECATED is not set CONFIG_NFSD_V3=y # CONFIG_NFSD_V3_ACL is not set # CONFIG_NFSD_V4 is not set CONFIG_LOCKD=m CONFIG_LOCKD_V4=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=m # CONFIG_RPCSEC_GSS_KRB5 is not set # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y CONFIG_ACORN_PARTITION=y # CONFIG_ACORN_PARTITION_CUMANA is not set # CONFIG_ACORN_PARTITION_EESOX is not set CONFIG_ACORN_PARTITION_ICS=y # CONFIG_ACORN_PARTITION_ADFS is not set # CONFIG_ACORN_PARTITION_POWERTEC is not set CONFIG_ACORN_PARTITION_RISCIX=y CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y CONFIG_ATARI_PARTITION=y CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y CONFIG_LDM_PARTITION=y # CONFIG_LDM_DEBUG is not set CONFIG_SGI_PARTITION=y CONFIG_ULTRIX_PARTITION=y CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=m # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set CONFIG_NLS_CODEPAGE_850=m CONFIG_NLS_CODEPAGE_852=m # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set CONFIG_NLS_CODEPAGE_1250=m CONFIG_NLS_CODEPAGE_1251=m CONFIG_NLS_ASCII=m CONFIG_NLS_ISO8859_1=m CONFIG_NLS_ISO8859_2=m # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set CONFIG_NLS_ISO8859_15=m # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=m # CONFIG_DLM is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 CONFIG_ENABLE_WARN_DEPRECATED=y CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y CONFIG_STRIP_ASM_SYMS=y CONFIG_UNUSED_SYMBOLS=y CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set CONFIG_LOCKUP_DETECTOR=y CONFIG_HARDLOCKUP_DETECTOR=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC=y CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=1 # CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 CONFIG_DETECT_HUNG_TASK=y CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 # CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 CONFIG_SCHED_DEBUG=y CONFIG_SCHEDSTATS=y # CONFIG_TIMER_STATS is not set # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_PREEMPT is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set # CONFIG_DEBUG_SPINLOCK_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y # CONFIG_DEBUG_STACK_USAGE is not set # CONFIG_DEBUG_KOBJECT is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 CONFIG_RCU_CPU_STALL_VERBOSE=y # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_LKDTM is not set # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set CONFIG_LATENCYTOP=y # CONFIG_SYSCTL_SYSCALL_CHECK is not set # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_RING_BUFFER=y CONFIG_EVENT_TRACING=y CONFIG_EVENT_POWER_TRACING_DEPRECATED=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y # CONFIG_FUNCTION_TRACER is not set # CONFIG_IRQSOFF_TRACER is not set # CONFIG_PREEMPT_TRACER is not set # CONFIG_SCHED_TRACER is not set CONFIG_FTRACE_SYSCALLS=y CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_STACK_TRACER is not set CONFIG_BLK_DEV_IO_TRACE=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set # CONFIG_RING_BUFFER_BENCHMARK is not set # CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set # CONFIG_FIREWIRE_OHCI_REMOTE_DMA is not set # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y # CONFIG_KMEMCHECK is not set # CONFIG_TEST_KSTRTOX is not set CONFIG_STRICT_DEVMEM=y CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y # CONFIG_EARLY_PRINTK_DBGP is not set # CONFIG_DEBUG_STACKOVERFLOW is not set # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y # CONFIG_DEBUG_RODATA_TEST is not set CONFIG_DEBUG_SET_MODULE_RONX=y # CONFIG_DEBUG_NX_TEST is not set # CONFIG_IOMMU_DEBUG is not set # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 # CONFIG_DEBUG_BOOT_PARAMS is not set # CONFIG_CPA_DEBUG is not set # CONFIG_OPTIMIZE_INLINING is not set CONFIG_DEBUG_STRICT_USER_COPY_CHECKS=y # # Security options # CONFIG_KEYS=y # CONFIG_KEYS_DEBUG_PROC_KEYS is not set # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y # CONFIG_SECURITYFS is not set # CONFIG_SECURITY_NETWORK is not set # CONFIG_SECURITY_PATH is not set # CONFIG_SECURITY_TOMOYO is not set # CONFIG_SECURITY_APPARMOR is not set # CONFIG_IMA is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=m CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=m CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG=m CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP=m CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y CONFIG_CRYPTO_GF128MUL=m CONFIG_CRYPTO_NULL=m # CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_WORKQUEUE=y CONFIG_CRYPTO_CRYPTD=m CONFIG_CRYPTO_AUTHENC=m CONFIG_CRYPTO_TEST=m # # Authenticated Encryption with Associated Data # CONFIG_CRYPTO_CCM=m CONFIG_CRYPTO_GCM=m CONFIG_CRYPTO_SEQIV=m # # Block modes # CONFIG_CRYPTO_CBC=m CONFIG_CRYPTO_CTR=m CONFIG_CRYPTO_CTS=m CONFIG_CRYPTO_ECB=m CONFIG_CRYPTO_LRW=m CONFIG_CRYPTO_PCBC=m CONFIG_CRYPTO_XTS=m # # Hash modes # CONFIG_CRYPTO_HMAC=y CONFIG_CRYPTO_XCBC=m # CONFIG_CRYPTO_VMAC is not set # # Digest # CONFIG_CRYPTO_CRC32C=m CONFIG_CRYPTO_CRC32C_INTEL=m CONFIG_CRYPTO_GHASH=m CONFIG_CRYPTO_MD4=m CONFIG_CRYPTO_MD5=y CONFIG_CRYPTO_MICHAEL_MIC=m # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set CONFIG_CRYPTO_SHA1=m CONFIG_CRYPTO_SHA256=m CONFIG_CRYPTO_SHA512=m CONFIG_CRYPTO_TGR192=m CONFIG_CRYPTO_WP512=m # CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set # # Ciphers # CONFIG_CRYPTO_AES=m CONFIG_CRYPTO_AES_X86_64=m CONFIG_CRYPTO_AES_NI_INTEL=m CONFIG_CRYPTO_ANUBIS=m CONFIG_CRYPTO_ARC4=m CONFIG_CRYPTO_BLOWFISH=m CONFIG_CRYPTO_CAMELLIA=m CONFIG_CRYPTO_CAST5=m CONFIG_CRYPTO_CAST6=m CONFIG_CRYPTO_DES=m CONFIG_CRYPTO_FCRYPT=m CONFIG_CRYPTO_KHAZAD=m CONFIG_CRYPTO_SALSA20=m CONFIG_CRYPTO_SALSA20_X86_64=m CONFIG_CRYPTO_SEED=m CONFIG_CRYPTO_SERPENT=m CONFIG_CRYPTO_TEA=m CONFIG_CRYPTO_TWOFISH=m CONFIG_CRYPTO_TWOFISH_COMMON=m CONFIG_CRYPTO_TWOFISH_X86_64=m # # Compression # CONFIG_CRYPTO_DEFLATE=m CONFIG_CRYPTO_ZLIB=m CONFIG_CRYPTO_LZO=m # # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_PADLOCK is not set CONFIG_CRYPTO_DEV_HIFN_795X=m CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y CONFIG_HAVE_KVM=y CONFIG_HAVE_KVM_IRQCHIP=y CONFIG_HAVE_KVM_EVENTFD=y CONFIG_KVM_APIC_ARCHITECTURE=y CONFIG_KVM_MMIO=y CONFIG_KVM_ASYNC_PF=y CONFIG_VIRTUALIZATION=y CONFIG_KVM=y # CONFIG_KVM_INTEL is not set CONFIG_KVM_AMD=y # CONFIG_KVM_MMU_AUDIT is not set CONFIG_VHOST_NET=y CONFIG_VIRTIO=y CONFIG_VIRTIO_RING=y CONFIG_VIRTIO_PCI=y CONFIG_VIRTIO_BALLOON=y CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y CONFIG_CRC_CCITT=m CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=m CONFIG_CRC32=y CONFIG_CRC7=m CONFIG_LIBCRC32C=m CONFIG_ZLIB_INFLATE=y CONFIG_ZLIB_DEFLATE=m CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=m CONFIG_TEXTSEARCH_BM=m CONFIG_TEXTSEARCH_FSM=m CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_NLATTR=y # CONFIG_AVERAGE is not set --------------020806050600070205080606 Content-Type: text/plain; name="dmesg" Content-Transfer-Encoding: quoted-printable Content-Disposition: attachment; filename="dmesg" [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 3.0.0-rc7 (edwin@debian) (gcc version 4.6.1 = (Debian 4.6.1-2) ) #157 SMP PREEMPT Thu Jul 14 11:48:59 EEST 2011 [ 0.000000] Command line: BOOT_IMAGE=3D/vmlinuz-3.0.0-rc7 root=3D/dev/= mapper/vgssd-lvssd ro quiet [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 0000000000092c00 (usable) [ 0.000000] BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)= [ 0.000000] BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)= [ 0.000000] BIOS-e820: 0000000000100000 - 00000000cfcf0000 (usable) [ 0.000000] BIOS-e820: 00000000cfcf0000 - 00000000cfcf1000 (ACPI NVS)= [ 0.000000] BIOS-e820: 00000000cfcf1000 - 00000000cfd00000 (ACPI data= ) [ 0.000000] BIOS-e820: 00000000cfd00000 - 00000000cfe00000 (reserved)= [ 0.000000] BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)= [ 0.000000] BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)= [ 0.000000] BIOS-e820: 0000000100000000 - 0000000230000000 (usable) [ 0.000000] NX (Execute Disable) protection: active [ 0.000000] DMI 2.4 present. [ 0.000000] DMI: Gigabyte Technology Co., Ltd. GA-870A-UD3/GA-870A-UD3= , BIOS F1 04/15/2010 [ 0.000000] e820 update range: 0000000000000000 - 0000000000010000 (us= able) =3D=3D> (reserved) [ 0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (us= able) [ 0.000000] No AGP bridge found [ 0.000000] last_pfn =3D 0x230000 max_arch_pfn =3D 0x400000000 [ 0.000000] MTRR default type: uncachable [ 0.000000] MTRR fixed ranges enabled: [ 0.000000] 00000-9FFFF write-back [ 0.000000] A0000-BFFFF uncachable [ 0.000000] C0000-C7FFF write-protect [ 0.000000] C8000-FFFFF uncachable [ 0.000000] MTRR variable ranges enabled: [ 0.000000] 0 base 000000000000 mask FFFF80000000 write-back [ 0.000000] 1 base 000080000000 mask FFFFC0000000 write-back [ 0.000000] 2 base 0000C0000000 mask FFFFF0000000 write-back [ 0.000000] 3 base 0000CFD00000 mask FFFFFFF00000 uncachable [ 0.000000] 4 base 0000CFE00000 mask FFFFFFE00000 uncachable [ 0.000000] 5 base 000100000000 mask FFFF00000000 write-back [ 0.000000] 6 base 000200000000 mask FFFFE0000000 write-back [ 0.000000] 7 base 000220000000 mask FFFFF0000000 write-back [ 0.000000] TOM2: 0000000230000000 aka 8960M [ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600= 070106 [ 0.000000] e820 update range: 00000000cfd00000 - 0000000100000000 (us= able) =3D=3D> (reserved) [ 0.000000] last_pfn =3D 0xcfcf0 max_arch_pfn =3D 0x400000000 [ 0.000000] initial memory mapped : 0 - 20000000 [ 0.000000] Base memory trampoline at [ffff88000008d000] 8d000 size 20= 480 [ 0.000000] Using GB pages for direct mapping [ 0.000000] init_memory_mapping: 0000000000000000-00000000cfcf0000 [ 0.000000] 0000000000 - 00c0000000 page 1G [ 0.000000] 00c0000000 - 00cfc00000 page 2M [ 0.000000] 00cfc00000 - 00cfcf0000 page 4k [ 0.000000] kernel direct mapping tables up to cfcf0000 @ cfced000-cfc= f0000 [ 0.000000] init_memory_mapping: 0000000100000000-0000000230000000 [ 0.000000] 0100000000 - 0200000000 page 1G [ 0.000000] 0200000000 - 0230000000 page 2M [ 0.000000] kernel direct mapping tables up to 230000000 @ 22fffe000-2= 30000000 [ 0.000000] RAMDISK: 378a0000 - 37c48000 [ 0.000000] ACPI: RSDP 00000000000f5c10 00014 (v00 GBT ) [ 0.000000] ACPI: RSDT 00000000cfcf1000 00040 (v01 GBT GBTUACPI 423= 02E31 GBTU 01010101) [ 0.000000] ACPI: FACP 00000000cfcf1080 00074 (v01 GBT GBTUACPI 423= 02E31 GBTU 01010101) [ 0.000000] ACPI: DSDT 00000000cfcf1100 07983 (v01 GBT GBTUACPI 000= 01000 MSFT 03000000) [ 0.000000] ACPI: FACS 00000000cfcf0000 00040 [ 0.000000] ACPI: SSDT 00000000cfcf8b80 00DAC (v01 PTLTD POWERNOW 000= 00001 LTP 00000001) [ 0.000000] ACPI: HPET 00000000cfcf9940 00038 (v01 GBT GBTUACPI 423= 02E31 GBTU 00000098) [ 0.000000] ACPI: MCFG 00000000cfcf9980 0003C (v01 GBT GBTUACPI 423= 02E31 GBTU 01010101) [ 0.000000] ACPI: MATS 00000000cfcf99c0 00034 (v01 GBT 000= 00000 00000000) [ 0.000000] ACPI: TAMG 00000000cfcf9a30 0037A (v01 GBT GBT B0 545= 5312E BG?? 53450101) [ 0.000000] ACPI: APIC 00000000cfcf8ac0 000BC (v01 GBT GBTUACPI 423= 02E31 GBTU 01010101) [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] [ffffea0000000000-ffffea0007bfffff] PMD -> [ffff880227600= 000-ffff88022e7fffff] on node 0 [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0x00000010 -> 0x00001000 [ 0.000000] DMA32 0x00001000 -> 0x00100000 [ 0.000000] Normal 0x00100000 -> 0x00230000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[3] active PFN ranges [ 0.000000] 0: 0x00000010 -> 0x00000092 [ 0.000000] 0: 0x00000100 -> 0x000cfcf0 [ 0.000000] 0: 0x00100000 -> 0x00230000 [ 0.000000] On node 0 totalpages: 2096242 [ 0.000000] DMA zone: 56 pages used for memmap [ 0.000000] DMA zone: 5 pages reserved [ 0.000000] DMA zone: 3909 pages, LIFO batch:0 [ 0.000000] DMA32 zone: 14280 pages used for memmap [ 0.000000] DMA32 zone: 832808 pages, LIFO batch:31 [ 0.000000] Normal zone: 17024 pages used for memmap [ 0.000000] Normal zone: 1228160 pages, LIFO batch:31 [ 0.000000] ACPI: PM-Timer IO Port: 0x4008 [ 0.000000] ACPI: Local APIC address 0xfee00000 [ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] enabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled) [ 0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x04] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x05] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x06] dfl dfl lint[0x1]) [ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x07] dfl dfl lint[0x1]) [ 0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 2, version 33, address 0xfec00000, GSI = 0-23 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)= [ 0.000000] ACPI: IRQ0 used by override. [ 0.000000] ACPI: IRQ2 used by override. [ 0.000000] ACPI: IRQ9 used by override. [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x10b9a201 base: 0xfed00000 [ 0.000000] SMP: Allowing 8 CPUs, 2 hotplug CPUs [ 0.000000] nr_irqs_gsi: 40 [ 0.000000] PM: Registered nosave memory: 0000000000092000 - 000000000= 00a0000 [ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 000000000= 00f0000 [ 0.000000] PM: Registered nosave memory: 00000000000f0000 - 000000000= 0100000 [ 0.000000] PM: Registered nosave memory: 00000000cfcf0000 - 00000000c= fcf1000 [ 0.000000] PM: Registered nosave memory: 00000000cfcf1000 - 00000000c= fd00000 [ 0.000000] PM: Registered nosave memory: 00000000cfd00000 - 00000000c= fe00000 [ 0.000000] PM: Registered nosave memory: 00000000cfe00000 - 00000000e= 0000000 [ 0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000f= 0000000 [ 0.000000] PM: Registered nosave memory: 00000000f0000000 - 00000000f= ec00000 [ 0.000000] PM: Registered nosave memory: 00000000fec00000 - 000000010= 0000000 [ 0.000000] Allocating PCI resources starting at cfe00000 (gap: cfe000= 00:10200000) [ 0.000000] setup_percpu: NR_CPUS:8 nr_cpumask_bits:8 nr_cpu_ids:8 nr_= node_ids:1 [ 0.000000] PERCPU: Embedded 25 pages/cpu @ffff88022fc00000 s70464 r81= 92 d23744 u262144 [ 0.000000] pcpu-alloc: s70464 r8192 d23744 u262144 alloc=3D1*2097152 [ 0.000000] pcpu-alloc: [0] 0 1 2 3 4 5 6 7=20 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. To= tal pages: 2064877 [ 0.000000] Kernel command line: BOOT_IMAGE=3D/vmlinuz-3.0.0-rc7 root=3D= /dev/mapper/vgssd-lvssd ro quiet [ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes) [ 0.000000] Dentry cache hash table entries: 1048576 (order: 11, 83886= 08 bytes) [ 0.000000] Inode-cache hash table entries: 524288 (order: 10, 4194304= bytes) [ 0.000000] Checking aperture... [ 0.000000] No AGP bridge found [ 0.000000] Node 0: aperture @ daf8000000 size 32 MB [ 0.000000] Aperture beyond 4GB. Ignoring. [ 0.000000] Your BIOS doesn't leave a aperture memory hole [ 0.000000] Please enable the IOMMU option in the BIOS setup [ 0.000000] This costs you 64 MB of RAM [ 0.000000] Mapping aperture over 65536 KB of RAM @ c4000000 [ 0.000000] PM: Registered nosave memory: 00000000c4000000 - 00000000c= 8000000 [ 0.000000] Memory: 8107512k/9175040k available (4885k kernel code, 79= 0072k absent, 277456k reserved, 6075k data, 492k init) [ 0.000000] SLUB: Genslabs=3D15, HWalign=3D64, Order=3D0-3, MinObjects= =3D0, CPUs=3D8, Nodes=3D1 [ 0.000000] Preemptible hierarchical RCU implementation. [ 0.000000] NR_IRQS:512 [ 0.000000] spurious 8259A interrupt: IRQ7. [ 0.000000] Console: colour VGA+ 80x25 [ 0.000000] console [tty0] enabled [ 0.000000] hpet clockevent registered [ 0.000000] Fast TSC calibration using PIT [ 0.000000] Detected 3214.577 MHz processor. [ 0.001002] Calibrating delay loop (skipped), value calculated using t= imer frequency.. 6429.15 BogoMIPS (lpj=3D3214577) [ 0.001005] pid_max: default: 32768 minimum: 301 [ 0.001034] Security Framework initialized [ 0.001049] Mount-cache hash table entries: 256 [ 0.001167] Initializing cgroup subsys cpuacct [ 0.001174] Initializing cgroup subsys devices [ 0.001175] Initializing cgroup subsys freezer [ 0.001176] Initializing cgroup subsys blkio [ 0.001198] tseg: 00cfe00000 [ 0.001199] CPU: Physical Processor ID: 0 [ 0.001200] CPU: Processor Core ID: 0 [ 0.001201] mce: CPU supports 6 MCE banks [ 0.001206] using AMD E400 aware idle routine [ 0.001239] ACPI: Core revision 20110413 [ 0.003431] ..TIMER: vector=3D0x30 apic1=3D0 pin1=3D2 apic2=3D-1 pin2=3D= -1 [ 0.013723] CPU0: AMD Phenom(tm) II X6 1090T Processor stepping 00 [ 0.013998] Performance Events: AMD PMU driver. [ 0.013998] ... version: 0 [ 0.013998] ... bit width: 48 [ 0.013998] ... generic registers: 4 [ 0.013998] ... value mask: 0000ffffffffffff [ 0.013998] ... max period: 00007fffffffffff [ 0.013998] ... fixed-purpose events: 0 [ 0.013998] ... event mask: 000000000000000f [ 0.013998] System has AMD C1E enabled [ 0.013998] Switch to broadcast mode on CPU0 [ 0.019038] NMI watchdog enabled, takes one hw-pmu counter. [ 0.027022] Booting Node 0, Processors #1 [ 0.027025] smpboot cpu 1: start_ip =3D 8d000 [ 0.098997] Switch to broadcast mode on CPU1 [ 0.099010] NMI watchdog enabled, takes one hw-pmu counter. [ 0.105027] #2 [ 0.105029] smpboot cpu 2: start_ip =3D 8d000 [ 0.176998] Switch to broadcast mode on CPU2 [ 0.177010] NMI watchdog enabled, takes one hw-pmu counter. [ 0.183019] #3 [ 0.183021] smpboot cpu 3: start_ip =3D 8d000 [ 0.255015] NMI watchdog enabled, takes one hw-pmu counter. [ 0.255005] Switch to broadcast mode on CPU3 [ 0.261014] #4 [ 0.261015] smpboot cpu 4: start_ip =3D 8d000 [ 0.332997] Switch to broadcast mode on CPU4 [ 0.333010] NMI watchdog enabled, takes one hw-pmu counter. [ 0.339007] #5 [ 0.339009] smpboot cpu 5: start_ip =3D 8d000 [ 0.410990] Switch to broadcast mode on CPU5 [ 0.411003] NMI watchdog enabled, takes one hw-pmu counter. [ 0.412983] Brought up 6 CPUs [ 0.412985] Total of 6 processors activated (38575.13 BogoMIPS). [ 0.414035] devtmpfs: initialized [ 0.414079] PM: Registering ACPI NVS region at cfcf0000 (4096 bytes) [ 0.415215] NET: Registered protocol family 16 [ 0.415215] node 0 link 0: io port [6000, ffff] [ 0.415215] TOM: 00000000d0000000 aka 3328M [ 0.415215] Fam 10h mmconf [e0000000, e00fffff] [ 0.415215] node 0 link 0: mmio [a0000, bffff] [ 0.415215] node 0 link 0: mmio [d0000000, dfffffff] [ 0.415215] node 0 link 0: mmio [f0000000, fe02ffff] [ 0.415215] node 0 link 0: mmio [e0000000, e09fffff] =3D=3D> [e0100000= , e09fffff] [ 0.415215] TOM2: 0000000230000000 aka 8960M [ 0.415215] bus: [00, 09] on node 0 link 0 [ 0.415215] bus: 00 index 0 [io 0x0000-0xffff] [ 0.415215] bus: 00 index 1 [mem 0x000a0000-0x000bffff] [ 0.415215] bus: 00 index 2 [mem 0xd0000000-0xdfffffff] [ 0.415215] bus: 00 index 3 [mem 0xe0a00000-0xffffffff] [ 0.415215] bus: 00 index 4 [mem 0xe0100000-0xe09fffff] [ 0.415215] bus: 00 index 5 [mem 0x230000000-0xfcffffffff] [ 0.415215] Extended Config Space enabled on 1 nodes [ 0.415215] ACPI: bus type pci registered [ 0.415215] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe00000= 00-0xefffffff] (base 0xe0000000) [ 0.415215] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E= 820 [ 0.429791] PCI: Using configuration type 1 for base access [ 0.430963] mtrr: your CPUs had inconsistent variable MTRR settings [ 0.430963] mtrr: probably your BIOS does not setup all CPUs. [ 0.430963] mtrr: corrected configuration. [ 0.432977] bio: create slab at 0 [ 0.433396] ACPI: EC: Look up EC in DSDT [ 0.433396] ACPI: Actual Package length (1) is larger than NumElements= field (0), truncated [ 0.433396]=20 [ 0.433399] ACPI: Actual Package length (1) is larger than NumElements= field (0), truncated [ 0.433400]=20 [ 0.433413] ACPI: Actual Package length (1) is larger than NumElements= field (0), truncated [ 0.433415]=20 [ 0.433417] ACPI: Actual Package length (1) is larger than NumElements= field (0), truncated [ 0.433419]=20 [ 0.435989] ACPI Warning: Incorrect checksum in table [TAMG] - 0x91, s= hould be 0x90 (20110413/tbutils-314) [ 0.436067] ACPI: Interpreter enabled [ 0.436069] ACPI: (supports S0 S3 S4 S5) [ 0.436079] ACPI: Using IOAPIC for interrupt routing [ 0.481004] ACPI: No dock devices found. [ 0.481006] HEST: Table not found. [ 0.481008] PCI: Using host bridge windows from ACPI; if necessary, us= e "pci=3Dnocrs" and report a bug [ 0.481043] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) [ 0.481076] pci_root PNP0A03:00: host bridge window [io 0x0000-0x0cf7= ] [ 0.481076] pci_root PNP0A03:00: host bridge window [io 0x0d00-0xffff= ] [ 0.481076] pci_root PNP0A03:00: host bridge window [mem 0x000a0000-0x= 000bffff] [ 0.481076] pci_root PNP0A03:00: host bridge window [mem 0x000c0000-0x= 000dffff] [ 0.481076] pci_root PNP0A03:00: host bridge window [mem 0xcff00000-0x= febfffff] [ 0.481076] pci 0000:00:00.0: [1002:5957] type 0 class 0x000600 [ 0.481076] pci 0000:00:00.0: reg 1c: [mem 0xe0000000-0xffffffff 64bit= ] [ 0.481076] pci 0000:00:02.0: [1002:5978] type 1 class 0x000604 [ 0.481076] pci 0000:00:02.0: PME# supported from D0 D3hot D3cold [ 0.481076] pci 0000:00:02.0: PME# disabled [ 0.481076] pci 0000:00:06.0: [1002:597c] type 1 class 0x000604 [ 0.481076] pci 0000:00:06.0: PME# supported from D0 D3hot D3cold [ 0.481078] pci 0000:00:06.0: PME# disabled [ 0.481090] pci 0000:00:09.0: [1002:597e] type 1 class 0x000604 [ 0.481108] pci 0000:00:09.0: PME# supported from D0 D3hot D3cold [ 0.481110] pci 0000:00:09.0: PME# disabled [ 0.481119] pci 0000:00:0a.0: [1002:597f] type 1 class 0x000604 [ 0.481137] pci 0000:00:0a.0: PME# supported from D0 D3hot D3cold [ 0.481139] pci 0000:00:0a.0: PME# disabled [ 0.481158] pci 0000:00:11.0: [1002:4391] type 0 class 0x000106 [ 0.481173] pci 0000:00:11.0: reg 10: [io 0xff00-0xff07] [ 0.481180] pci 0000:00:11.0: reg 14: [io 0xfe00-0xfe03] [ 0.481186] pci 0000:00:11.0: reg 18: [io 0xfd00-0xfd07] [ 0.481193] pci 0000:00:11.0: reg 1c: [io 0xfc00-0xfc03] [ 0.481200] pci 0000:00:11.0: reg 20: [io 0xfb00-0xfb0f] [ 0.481206] pci 0000:00:11.0: reg 24: [mem 0xfe02f000-0xfe02f3ff] [ 0.481245] pci 0000:00:12.0: [1002:4397] type 0 class 0x000c03 [ 0.481254] pci 0000:00:12.0: reg 10: [mem 0xfe02e000-0xfe02efff] [ 0.481302] pci 0000:00:12.2: [1002:4396] type 0 class 0x000c03 [ 0.481315] pci 0000:00:12.2: reg 10: [mem 0xfe02d000-0xfe02d0ff] [ 0.481363] pci 0000:00:12.2: supports D1 D2 [ 0.481364] pci 0000:00:12.2: PME# supported from D0 D1 D2 D3hot [ 0.481367] pci 0000:00:12.2: PME# disabled [ 0.481386] pci 0000:00:13.0: [1002:4397] type 0 class 0x000c03 [ 0.481386] pci 0000:00:13.0: reg 10: [mem 0xfe02c000-0xfe02cfff] [ 0.481386] pci 0000:00:13.2: [1002:4396] type 0 class 0x000c03 [ 0.481386] pci 0000:00:13.2: reg 10: [mem 0xfe02b000-0xfe02b0ff] [ 0.481386] pci 0000:00:13.2: supports D1 D2 [ 0.481386] pci 0000:00:13.2: PME# supported from D0 D1 D2 D3hot [ 0.481386] pci 0000:00:13.2: PME# disabled [ 0.481386] pci 0000:00:14.0: [1002:4385] type 0 class 0x000c05 [ 0.481386] pci 0000:00:14.2: [1002:4383] type 0 class 0x000403 [ 0.481386] pci 0000:00:14.2: reg 10: [mem 0xfe024000-0xfe027fff 64bit= ] [ 0.481386] pci 0000:00:14.2: PME# supported from D0 D3hot D3cold [ 0.481386] pci 0000:00:14.2: PME# disabled [ 0.481386] pci 0000:00:14.3: [1002:439d] type 0 class 0x000601 [ 0.481386] pci 0000:00:14.4: [1002:4384] type 1 class 0x000604 [ 0.481386] pci 0000:00:14.5: [1002:4399] type 0 class 0x000c03 [ 0.481386] pci 0000:00:14.5: reg 10: [mem 0xfe02a000-0xfe02afff] [ 0.481386] pci 0000:00:15.0: [1002:43a0] type 1 class 0x000604 [ 0.481386] pci 0000:00:15.0: supports D1 D2 [ 0.481397] pci 0000:00:15.1: [1002:43a1] type 1 class 0x000604 [ 0.481433] pci 0000:00:15.1: supports D1 D2 [ 0.481449] pci 0000:00:15.2: [1002:43a2] type 1 class 0x000604 [ 0.481486] pci 0000:00:15.2: supports D1 D2 [ 0.481502] pci 0000:00:15.3: [1002:43a3] type 1 class 0x000604 [ 0.481539] pci 0000:00:15.3: supports D1 D2 [ 0.481557] pci 0000:00:16.0: [1002:4397] type 0 class 0x000c03 [ 0.481566] pci 0000:00:16.0: reg 10: [mem 0xfe029000-0xfe029fff] [ 0.481614] pci 0000:00:16.2: [1002:4396] type 0 class 0x000c03 [ 0.481627] pci 0000:00:16.2: reg 10: [mem 0xfe028000-0xfe0280ff] [ 0.481675] pci 0000:00:16.2: supports D1 D2 [ 0.481677] pci 0000:00:16.2: PME# supported from D0 D1 D2 D3hot [ 0.481679] pci 0000:00:16.2: PME# disabled [ 0.481693] pci 0000:00:18.0: [1022:1200] type 0 class 0x000600 [ 0.481703] pci 0000:00:18.1: [1022:1201] type 0 class 0x000600 [ 0.481711] pci 0000:00:18.2: [1022:1202] type 0 class 0x000600 [ 0.481720] pci 0000:00:18.3: [1022:1203] type 0 class 0x000600 [ 0.481730] pci 0000:00:18.4: [1022:1204] type 0 class 0x000600 [ 0.481767] pci 0000:01:00.0: [1002:9498] type 0 class 0x000300 [ 0.481777] pci 0000:01:00.0: reg 10: [mem 0xd0000000-0xdfffffff 64bit= pref] [ 0.481786] pci 0000:01:00.0: reg 18: [mem 0xfd0e0000-0xfd0effff 64bit= ] [ 0.481791] pci 0000:01:00.0: reg 20: [io 0xbe00-0xbeff] [ 0.481802] pci 0000:01:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]= [ 0.481816] pci 0000:01:00.0: supports D1 D2 [ 0.481831] pci 0000:01:00.1: [1002:aa38] type 0 class 0x000403 [ 0.481842] pci 0000:01:00.1: reg 10: [mem 0xfd0fc000-0xfd0fffff 64bit= ] [ 0.481878] pci 0000:01:00.1: supports D1 D2 [ 0.483952] pci 0000:00:02.0: PCI bridge to [bus 01-01] [ 0.483956] pci 0000:00:02.0: bridge window [io 0xb000-0xbfff] [ 0.483958] pci 0000:00:02.0: bridge window [mem 0xfd000000-0xfd0fff= ff] [ 0.483961] pci 0000:00:02.0: bridge window [mem 0xd0000000-0xdfffff= ff 64bit pref] [ 0.484002] pci 0000:02:00.0: [1095:3132] type 0 class 0x000104 [ 0.484029] pci 0000:02:00.0: reg 10: [mem 0xfcfff000-0xfcfff07f 64bit= ] [ 0.484050] pci 0000:02:00.0: reg 18: [mem 0xfcff8000-0xfcffbfff 64bit= ] [ 0.484064] pci 0000:02:00.0: reg 20: [io 0xef00-0xef7f] [ 0.484090] pci 0000:02:00.0: reg 30: [mem 0x00000000-0x0007ffff pref]= [ 0.484131] pci 0000:02:00.0: supports D1 D2 [ 0.484153] pci 0000:02:00.0: disabling ASPM on pre-1.1 PCIe device. = You can enable it with 'pcie_aspm=3Dforce' [ 0.484161] pci 0000:00:06.0: PCI bridge to [bus 02-02] [ 0.484164] pci 0000:00:06.0: bridge window [io 0xe000-0xefff] [ 0.484166] pci 0000:00:06.0: bridge window [mem 0xfcf00000-0xfcffff= ff] [ 0.484168] pci 0000:00:06.0: bridge window [mem 0xfdf00000-0xfdffff= ff 64bit pref] [ 0.484197] pci 0000:03:00.0: [1033:0194] type 0 class 0x000c03 [ 0.484210] pci 0000:03:00.0: reg 10: [mem 0xfdefe000-0xfdefffff 64bit= ] [ 0.484261] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold [ 0.484264] pci 0000:03:00.0: PME# disabled [ 0.485952] pci 0000:00:09.0: PCI bridge to [bus 03-03] [ 0.485956] pci 0000:00:09.0: bridge window [io 0xd000-0xdfff] [ 0.485958] pci 0000:00:09.0: bridge window [mem 0xfde00000-0xfdefff= ff] [ 0.485961] pci 0000:00:09.0: bridge window [mem 0xfdd00000-0xfddfff= ff 64bit pref] [ 0.485992] pci 0000:04:00.0: [197b:2363] type 0 class 0x000106 [ 0.486057] pci 0000:04:00.0: reg 24: [mem 0xfdcfe000-0xfdcfffff] [ 0.486089] pci 0000:04:00.0: PME# supported from D3hot [ 0.486093] pci 0000:04:00.0: PME# disabled [ 0.486114] pci 0000:04:00.1: [197b:2363] type 0 class 0x000101 [ 0.486131] pci 0000:04:00.1: reg 10: [io 0xcf00-0xcf07] [ 0.486141] pci 0000:04:00.1: reg 14: [io 0xce00-0xce03] [ 0.486151] pci 0000:04:00.1: reg 18: [io 0xcd00-0xcd07] [ 0.486160] pci 0000:04:00.1: reg 1c: [io 0xcc00-0xcc03] [ 0.486170] pci 0000:04:00.1: reg 20: [io 0xcb00-0xcb0f] [ 0.486220] pci 0000:04:00.0: disabling ASPM on pre-1.1 PCIe device. = You can enable it with 'pcie_aspm=3Dforce' [ 0.486230] pci 0000:00:0a.0: PCI bridge to [bus 04-04] [ 0.486233] pci 0000:00:0a.0: bridge window [io 0xc000-0xcfff] [ 0.486234] pci 0000:00:0a.0: bridge window [mem 0xfdc00000-0xfdcfff= ff] [ 0.486237] pci 0000:00:0a.0: bridge window [mem 0xfd900000-0xfd9fff= ff 64bit pref] [ 0.486272] pci 0000:05:0e.0: [104c:8024] type 0 class 0x000c00 [ 0.486289] pci 0000:05:0e.0: reg 10: [mem 0xfdbff000-0xfdbff7ff] [ 0.486299] pci 0000:05:0e.0: reg 14: [mem 0xfdbf8000-0xfdbfbfff] [ 0.486362] pci 0000:05:0e.0: supports D1 D2 [ 0.486363] pci 0000:05:0e.0: PME# supported from D0 D1 D2 D3hot [ 0.486367] pci 0000:05:0e.0: PME# disabled [ 0.486398] pci 0000:00:14.4: PCI bridge to [bus 05-05] (subtractive d= ecode) [ 0.486400] pci 0000:00:14.4: bridge window [io 0xa000-0xafff] [ 0.486403] pci 0000:00:14.4: bridge window [mem 0xfdb00000-0xfdbfff= ff] [ 0.486406] pci 0000:00:14.4: bridge window [mem 0xfda00000-0xfdafff= ff pref] [ 0.486408] pci 0000:00:14.4: bridge window [io 0x0000-0x0cf7] (sub= tractive decode) [ 0.486409] pci 0000:00:14.4: bridge window [io 0x0d00-0xffff] (sub= tractive decode) [ 0.486410] pci 0000:00:14.4: bridge window [mem 0x000a0000-0x000bff= ff] (subtractive decode) [ 0.486412] pci 0000:00:14.4: bridge window [mem 0x000c0000-0x000dff= ff] (subtractive decode) [ 0.486413] pci 0000:00:14.4: bridge window [mem 0xcff00000-0xfebfff= ff] (subtractive decode) [ 0.486459] pci 0000:06:00.0: [197b:2363] type 0 class 0x000106 [ 0.486537] pci 0000:06:00.0: reg 24: [mem 0xfd8fe000-0xfd8fffff] [ 0.486574] pci 0000:06:00.0: PME# supported from D3hot [ 0.486578] pci 0000:06:00.0: PME# disabled [ 0.486603] pci 0000:06:00.1: [197b:2363] type 0 class 0x000101 [ 0.486623] pci 0000:06:00.1: reg 10: [io 0x9f00-0x9f07] [ 0.486635] pci 0000:06:00.1: reg 14: [io 0x9e00-0x9e03] [ 0.486646] pci 0000:06:00.1: reg 18: [io 0x9d00-0x9d07] [ 0.486658] pci 0000:06:00.1: reg 1c: [io 0x9c00-0x9c03] [ 0.486670] pci 0000:06:00.1: reg 20: [io 0x9b00-0x9b0f] [ 0.486730] pci 0000:06:00.0: disabling ASPM on pre-1.1 PCIe device. = You can enable it with 'pcie_aspm=3Dforce' [ 0.486741] pci 0000:00:15.0: PCI bridge to [bus 06-06] [ 0.486744] pci 0000:00:15.0: bridge window [io 0x9000-0x9fff] [ 0.486747] pci 0000:00:15.0: bridge window [mem 0xfd800000-0xfd8fff= ff] [ 0.486751] pci 0000:00:15.0: bridge window [mem 0xfd700000-0xfd7fff= ff 64bit pref] [ 0.486799] pci 0000:07:00.0: [10ec:8168] type 0 class 0x000200 [ 0.486813] pci 0000:07:00.0: reg 10: [io 0x8e00-0x8eff] [ 0.486837] pci 0000:07:00.0: reg 18: [mem 0xfd5ff000-0xfd5fffff 64bit= pref] [ 0.486852] pci 0000:07:00.0: reg 20: [mem 0xfd5f8000-0xfd5fbfff 64bit= pref] [ 0.486852] pci 0000:07:00.0: reg 30: [mem 0x00000000-0x0001ffff pref]= [ 0.486852] pci 0000:07:00.0: supports D1 D2 [ 0.486852] pci 0000:07:00.0: PME# supported from D0 D1 D2 D3hot D3col= d [ 0.486852] pci 0000:07:00.0: PME# disabled [ 0.488955] pci 0000:00:15.1: PCI bridge to [bus 07-07] [ 0.488960] pci 0000:00:15.1: bridge window [io 0x8000-0x8fff] [ 0.488963] pci 0000:00:15.1: bridge window [mem 0xfd600000-0xfd6fff= ff] [ 0.488967] pci 0000:00:15.1: bridge window [mem 0xfd500000-0xfd5fff= ff 64bit pref] [ 0.489002] pci 0000:00:15.2: PCI bridge to [bus 08-08] [ 0.489006] pci 0000:00:15.2: bridge window [io 0x7000-0x7fff] [ 0.489009] pci 0000:00:15.2: bridge window [mem 0xfd400000-0xfd4fff= ff] [ 0.489014] pci 0000:00:15.2: bridge window [mem 0xfd300000-0xfd3fff= ff 64bit pref] [ 0.489047] pci 0000:00:15.3: PCI bridge to [bus 09-09] [ 0.489051] pci 0000:00:15.3: bridge window [io 0x6000-0x6fff] [ 0.489053] pci 0000:00:15.3: bridge window [mem 0xfd200000-0xfd2fff= ff] [ 0.489057] pci 0000:00:15.3: bridge window [mem 0xfd100000-0xfd1fff= ff 64bit pref] [ 0.489078] pci_bus 0000:00: on NUMA node 0 [ 0.489081] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT] [ 0.489232] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX0._PRT] [ 0.489249] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX1._PRT] [ 0.489264] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX2._PRT] [ 0.489279] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX3._PRT] [ 0.489296] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.P2P_._PRT] [ 0.489333] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCE2._PRT] [ 0.489349] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCE6._PRT] [ 0.489364] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCE9._PRT] [ 0.489377] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCEA._PRT] [ 0.489392] pci0000:00: Requesting ACPI _OSC control (0x1d) [ 0.489393] pci0000:00: ACPI _OSC request failed (AE_NOT_FOUND), retu= rned control mask: 0x1d [ 0.489395] ACPI _OSC control for PCIe not granted, disabling ASPM [ 0.499965] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 11) *0 [ 0.499989] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500009] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500028] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500048] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500067] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500086] ACPI: PCI Interrupt Link [LNK0] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500104] ACPI: PCI Interrupt Link [LNK1] (IRQs 3 4 5 6 7 10 11) *0 [ 0.500170] vgaarb: device added: PCI:0000:01:00.0,decodes=3Dio+mem,ow= ns=3Dio+mem,locks=3Dnone [ 0.500170] vgaarb: loaded [ 0.500170] vgaarb: bridge control possible 0000:01:00.0 [ 0.500170] SCSI subsystem initialized [ 0.500170] libata version 3.00 loaded. [ 0.500959] PCI: Using ACPI for IRQ routing [ 0.506053] PCI: pci_cache_line_size set to 64 bytes [ 0.506061] pci 0000:00:00.0: no compatible bridge window for [mem 0xe= 0000000-0xffffffff 64bit] [ 0.506142] reserve RAM buffer: 0000000000092c00 - 000000000009ffff=20 [ 0.506145] reserve RAM buffer: 00000000cfcf0000 - 00000000cfffffff=20 [ 0.507125] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 [ 0.507125] hpet0: 3 comparators, 32-bit 14.318180 MHz counter [ 0.508955] Switching to clocksource hpet [ 0.509487] Switched to NOHz mode on CPU #2 [ 0.509491] Switched to NOHz mode on CPU #3 [ 0.509505] Switched to NOHz mode on CPU #0 [ 0.509509] Switched to NOHz mode on CPU #4 [ 0.509513] Switched to NOHz mode on CPU #5 [ 0.509518] Switched to NOHz mode on CPU #1 [ 0.513420] pnp: PnP ACPI init [ 0.513427] ACPI: bus type pnp registered [ 0.513475] pnp 00:00: [bus 00-ff] [ 0.513477] pnp 00:00: [io 0x0cf8-0x0cff] [ 0.513478] pnp 00:00: [io 0x0000-0x0cf7 window] [ 0.513479] pnp 00:00: [io 0x0d00-0xffff window] [ 0.513481] pnp 00:00: [mem 0x000a0000-0x000bffff window] [ 0.513482] pnp 00:00: [mem 0x000c0000-0x000dffff window] [ 0.513483] pnp 00:00: [mem 0xcff00000-0xfebfffff window] [ 0.513541] pnp 00:00: Plug and Play ACPI device, IDs PNP0a03 (active)= [ 0.513546] pnp 00:01: [io 0x0010-0x001f] [ 0.513548] pnp 00:01: [io 0x0022-0x003f] [ 0.513549] pnp 00:01: [io 0x0044-0x005f] [ 0.513550] pnp 00:01: [io 0x0062-0x0063] [ 0.513551] pnp 00:01: [io 0x0065-0x006f] [ 0.513552] pnp 00:01: [io 0x0074-0x007f] [ 0.513553] pnp 00:01: [io 0x0091-0x0093] [ 0.513554] pnp 00:01: [io 0x00a2-0x00bf] [ 0.513555] pnp 00:01: [io 0x00e0-0x00ef] [ 0.513556] pnp 00:01: [io 0x04d0-0x04d1] [ 0.513557] pnp 00:01: [io 0x0220-0x0225] [ 0.513558] pnp 00:01: [io 0x0290-0x0294] [ 0.513625] system 00:01: [io 0x04d0-0x04d1] has been reserved [ 0.513626] system 00:01: [io 0x0220-0x0225] has been reserved [ 0.513628] system 00:01: [io 0x0290-0x0294] has been reserved [ 0.513630] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (acti= ve) [ 0.589142] pnp 00:02: [io 0x4100-0x411f] [ 0.589144] pnp 00:02: [io 0x0228-0x022f] [ 0.589145] pnp 00:02: [io 0x040b] [ 0.589147] pnp 00:02: [io 0x04d6] [ 0.589148] pnp 00:02: [io 0x0c00-0x0c01] [ 0.589149] pnp 00:02: [io 0x0c14] [ 0.589150] pnp 00:02: [io 0x0c50-0x0c52] [ 0.589151] pnp 00:02: [io 0x0c6c-0x0c6d] [ 0.589152] pnp 00:02: [io 0x0c6f] [ 0.589153] pnp 00:02: [io 0x0cd0-0x0cd1] [ 0.589154] pnp 00:02: [io 0x0cd2-0x0cd3] [ 0.589155] pnp 00:02: [io 0x0cd4-0x0cdf] [ 0.589156] pnp 00:02: [io 0x4000-0x40fe] [ 0.589157] pnp 00:02: [io 0x4210-0x4217] [ 0.589158] pnp 00:02: [io 0x0b00-0x0b0f] [ 0.589159] pnp 00:02: [io 0x0b10-0x0b1f] [ 0.589162] pnp 00:02: [io 0x0b20-0x0b3f] [ 0.589164] pnp 00:02: [mem 0x00000000-0x00000fff window] [ 0.589165] pnp 00:02: [mem 0xfee00400-0xfee00fff window] [ 0.589170] pnp 00:02: disabling [mem 0x00000000-0x00000fff window] be= cause it overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.589191] pnp 00:02: disabling [mem 0x00000000-0x00000fff window dis= abled] because it overlaps 0000:01:00.0 BAR 6 [mem 0x00000000-0x0001ffff = pref] [ 0.589195] pnp 00:02: disabling [mem 0x00000000-0x00000fff window dis= abled] because it overlaps 0000:02:00.0 BAR 6 [mem 0x00000000-0x0007ffff = pref] [ 0.589209] pnp 00:02: disabling [mem 0x00000000-0x00000fff window dis= abled] because it overlaps 0000:07:00.0 BAR 6 [mem 0x00000000-0x0001ffff = pref] [ 0.589315] system 00:02: [io 0x4100-0x411f] has been reserved [ 0.589317] system 00:02: [io 0x0228-0x022f] has been reserved [ 0.589319] system 00:02: [io 0x040b] has been reserved [ 0.589320] system 00:02: [io 0x04d6] has been reserved [ 0.589322] system 00:02: [io 0x0c00-0x0c01] has been reserved [ 0.589324] system 00:02: [io 0x0c14] has been reserved [ 0.589325] system 00:02: [io 0x0c50-0x0c52] has been reserved [ 0.589327] system 00:02: [io 0x0c6c-0x0c6d] has been reserved [ 0.589328] system 00:02: [io 0x0c6f] has been reserved [ 0.589330] system 00:02: [io 0x0cd0-0x0cd1] has been reserved [ 0.589331] system 00:02: [io 0x0cd2-0x0cd3] has been reserved [ 0.589333] system 00:02: [io 0x0cd4-0x0cdf] has been reserved [ 0.589334] system 00:02: [io 0x4000-0x40fe] has been reserved [ 0.589336] system 00:02: [io 0x4210-0x4217] has been reserved [ 0.589337] system 00:02: [io 0x0b00-0x0b0f] has been reserved [ 0.589339] system 00:02: [io 0x0b10-0x0b1f] has been reserved [ 0.589340] system 00:02: [io 0x0b20-0x0b3f] has been reserved [ 0.589342] system 00:02: [mem 0xfee00400-0xfee00fff window] has been = reserved [ 0.589345] system 00:02: Plug and Play ACPI device, IDs PNP0c02 (acti= ve) [ 0.589402] pnp 00:03: [dma 4] [ 0.589403] pnp 00:03: [io 0x0000-0x000f] [ 0.589404] pnp 00:03: [io 0x0080-0x0090] [ 0.589405] pnp 00:03: [io 0x0094-0x009f] [ 0.589406] pnp 00:03: [io 0x00c0-0x00df] [ 0.589455] pnp 00:03: Plug and Play ACPI device, IDs PNP0200 (active)= [ 0.589479] pnp 00:04: [io 0x0070-0x0073] [ 0.589488] pnp 00:04: [irq 8] [ 0.589534] pnp 00:04: Plug and Play ACPI device, IDs PNP0b00 (active)= [ 0.589539] pnp 00:05: [io 0x0061] [ 0.589586] pnp 00:05: Plug and Play ACPI device, IDs PNP0800 (active)= [ 0.589592] pnp 00:06: [io 0x00f0-0x00ff] [ 0.589597] pnp 00:06: [irq 13] [ 0.589655] pnp 00:06: Plug and Play ACPI device, IDs PNP0c04 (active)= [ 0.589807] pnp 00:07: [io 0x03f8-0x03ff] [ 0.589813] pnp 00:07: [irq 4] [ 0.589914] pnp 00:07: Plug and Play ACPI device, IDs PNP0501 (active)= [ 0.590105] pnp 00:08: [io 0x0378-0x037f] [ 0.590107] pnp 00:08: [io 0x0778-0x077b] [ 0.590112] pnp 00:08: [irq 7] [ 0.590113] pnp 00:08: [dma 3] [ 0.590180] pnp 00:08: Plug and Play ACPI device, IDs PNP0401 (active)= [ 0.590199] pnp 00:09: [io 0x0060] [ 0.590200] pnp 00:09: [io 0x0064] [ 0.590206] pnp 00:09: [irq 1] [ 0.590259] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 (active)= [ 0.590276] pnp 00:0a: [mem 0xe0000000-0xefffffff] [ 0.590339] system 00:0a: [mem 0xe0000000-0xefffffff] has been reserve= d [ 0.590341] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (acti= ve) [ 0.590422] pnp 00:0b: [mem 0x000db000-0x000dbfff] [ 0.590423] pnp 00:0b: [mem 0x000f0000-0x000f7fff] [ 0.590425] pnp 00:0b: [mem 0x000f8000-0x000fbfff] [ 0.590426] pnp 00:0b: [mem 0x000fc000-0x000fffff] [ 0.590427] pnp 00:0b: [mem 0xcfcf0000-0xcfcfffff] [ 0.590428] pnp 00:0b: [mem 0xffff0000-0xffffffff] [ 0.590429] pnp 00:0b: [mem 0x00000000-0x0009ffff] [ 0.590431] pnp 00:0b: [mem 0x00100000-0xcfceffff] [ 0.590432] pnp 00:0b: [mem 0xcfd00000-0xcfdfffff] [ 0.590433] pnp 00:0b: [mem 0xcfe00000-0xcfefffff] [ 0.590434] pnp 00:0b: [mem 0xfec00000-0xfec00fff] [ 0.590435] pnp 00:0b: [mem 0xfee00000-0xfee00fff] [ 0.590436] pnp 00:0b: [mem 0xfff80000-0xfffeffff] [ 0.590439] pnp 00:0b: disabling [mem 0x000db000-0x000dbfff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590441] pnp 00:0b: disabling [mem 0x000f0000-0x000f7fff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590443] pnp 00:0b: disabling [mem 0x000f8000-0x000fbfff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590445] pnp 00:0b: disabling [mem 0x000fc000-0x000fffff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590447] pnp 00:0b: disabling [mem 0x00000000-0x0009ffff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590449] pnp 00:0b: disabling [mem 0x00100000-0xcfceffff] because i= t overlaps 0000:00:00.0 BAR 3 [mem 0x00000000-0x1fffffff 64bit] [ 0.590558] system 00:0b: [mem 0xcfcf0000-0xcfcfffff] could not be res= erved [ 0.590559] system 00:0b: [mem 0xffff0000-0xffffffff] has been reserve= d [ 0.590561] system 00:0b: [mem 0xcfd00000-0xcfdfffff] has been reserve= d [ 0.590562] system 00:0b: [mem 0xcfe00000-0xcfefffff] could not be res= erved [ 0.590564] system 00:0b: [mem 0xfec00000-0xfec00fff] could not be res= erved [ 0.590566] system 00:0b: [mem 0xfee00000-0xfee00fff] could not be res= erved [ 0.590567] system 00:0b: [mem 0xfff80000-0xfffeffff] has been reserve= d [ 0.590569] system 00:0b: Plug and Play ACPI device, IDs PNP0c01 (acti= ve) [ 0.590580] pnp: PnP ACPI: found 12 devices [ 0.590581] ACPI: ACPI bus type pnp unregistered [ 0.598404] PCI: max bus depth: 1 pci_try_num: 2 [ 0.598437] pci 0000:01:00.0: BAR 6: assigned [mem 0xfd000000-0xfd01ff= ff pref] [ 0.598439] pci 0000:00:02.0: PCI bridge to [bus 01-01] [ 0.598441] pci 0000:00:02.0: bridge window [io 0xb000-0xbfff] [ 0.598443] pci 0000:00:02.0: bridge window [mem 0xfd000000-0xfd0fff= ff] [ 0.598445] pci 0000:00:02.0: bridge window [mem 0xd0000000-0xdfffff= ff 64bit pref] [ 0.598448] pci 0000:02:00.0: BAR 6: assigned [mem 0xfdf00000-0xfdf7ff= ff pref] [ 0.598450] pci 0000:00:06.0: PCI bridge to [bus 02-02] [ 0.598451] pci 0000:00:06.0: bridge window [io 0xe000-0xefff] [ 0.598453] pci 0000:00:06.0: bridge window [mem 0xfcf00000-0xfcffff= ff] [ 0.598455] pci 0000:00:06.0: bridge window [mem 0xfdf00000-0xfdffff= ff 64bit pref] [ 0.598457] pci 0000:00:09.0: PCI bridge to [bus 03-03] [ 0.598459] pci 0000:00:09.0: bridge window [io 0xd000-0xdfff] [ 0.598461] pci 0000:00:09.0: bridge window [mem 0xfde00000-0xfdefff= ff] [ 0.598463] pci 0000:00:09.0: bridge window [mem 0xfdd00000-0xfddfff= ff 64bit pref] [ 0.598465] pci 0000:00:0a.0: PCI bridge to [bus 04-04] [ 0.598467] pci 0000:00:0a.0: bridge window [io 0xc000-0xcfff] [ 0.598469] pci 0000:00:0a.0: bridge window [mem 0xfdc00000-0xfdcfff= ff] [ 0.598471] pci 0000:00:0a.0: bridge window [mem 0xfd900000-0xfd9fff= ff 64bit pref] [ 0.598473] pci 0000:00:14.4: PCI bridge to [bus 05-05] [ 0.598475] pci 0000:00:14.4: bridge window [io 0xa000-0xafff] [ 0.598478] pci 0000:00:14.4: bridge window [mem 0xfdb00000-0xfdbfff= ff] [ 0.598481] pci 0000:00:14.4: bridge window [mem 0xfda00000-0xfdafff= ff pref] [ 0.598485] pci 0000:00:15.0: PCI bridge to [bus 06-06] [ 0.598487] pci 0000:00:15.0: bridge window [io 0x9000-0x9fff] [ 0.598490] pci 0000:00:15.0: bridge window [mem 0xfd800000-0xfd8fff= ff] [ 0.598493] pci 0000:00:15.0: bridge window [mem 0xfd700000-0xfd7fff= ff 64bit pref] [ 0.598497] pci 0000:07:00.0: BAR 6: assigned [mem 0xfd500000-0xfd51ff= ff pref] [ 0.598498] pci 0000:00:15.1: PCI bridge to [bus 07-07] [ 0.598500] pci 0000:00:15.1: bridge window [io 0x8000-0x8fff] [ 0.598502] pci 0000:00:15.1: bridge window [mem 0xfd600000-0xfd6fff= ff] [ 0.598505] pci 0000:00:15.1: bridge window [mem 0xfd500000-0xfd5fff= ff 64bit pref] [ 0.598509] pci 0000:00:15.2: PCI bridge to [bus 08-08] [ 0.598510] pci 0000:00:15.2: bridge window [io 0x7000-0x7fff] [ 0.598513] pci 0000:00:15.2: bridge window [mem 0xfd400000-0xfd4fff= ff] [ 0.598516] pci 0000:00:15.2: bridge window [mem 0xfd300000-0xfd3fff= ff 64bit pref] [ 0.598519] pci 0000:00:15.3: PCI bridge to [bus 09-09] [ 0.598521] pci 0000:00:15.3: bridge window [io 0x6000-0x6fff] [ 0.598524] pci 0000:00:15.3: bridge window [mem 0xfd200000-0xfd2fff= ff] [ 0.598526] pci 0000:00:15.3: bridge window [mem 0xfd100000-0xfd1fff= ff 64bit pref] [ 0.598538] pci 0000:00:02.0: PCI INT A -> GSI 18 (level, low) -> IRQ = 18 [ 0.598541] pci 0000:00:02.0: setting latency timer to 64 [ 0.598545] pci 0000:00:06.0: PCI INT A -> GSI 18 (level, low) -> IRQ = 18 [ 0.598546] pci 0000:00:06.0: setting latency timer to 64 [ 0.598553] pci 0000:00:09.0: PCI INT A -> GSI 17 (level, low) -> IRQ = 17 [ 0.598555] pci 0000:00:09.0: setting latency timer to 64 [ 0.598558] pci 0000:00:0a.0: PCI INT A -> GSI 18 (level, low) -> IRQ = 18 [ 0.598560] pci 0000:00:0a.0: setting latency timer to 64 [ 0.598567] pci 0000:00:15.0: PCI INT A -> GSI 17 (level, low) -> IRQ = 17 [ 0.598569] pci 0000:00:15.0: setting latency timer to 64 [ 0.598573] pci 0000:00:15.1: PCI INT A -> GSI 17 (level, low) -> IRQ = 17 [ 0.598575] pci 0000:00:15.1: setting latency timer to 64 [ 0.598579] pci 0000:00:15.2: PCI INT A -> GSI 17 (level, low) -> IRQ = 17 [ 0.598581] pci 0000:00:15.2: setting latency timer to 64 [ 0.598585] pci 0000:00:15.3: PCI INT A -> GSI 17 (level, low) -> IRQ = 17 [ 0.598587] pci 0000:00:15.3: setting latency timer to 64 [ 0.598590] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7] [ 0.598591] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff] [ 0.598593] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff] [ 0.598594] pci_bus 0000:00: resource 7 [mem 0x000c0000-0x000dffff] [ 0.598595] pci_bus 0000:00: resource 8 [mem 0xcff00000-0xfebfffff] [ 0.598597] pci_bus 0000:01: resource 0 [io 0xb000-0xbfff] [ 0.598598] pci_bus 0000:01: resource 1 [mem 0xfd000000-0xfd0fffff] [ 0.598599] pci_bus 0000:01: resource 2 [mem 0xd0000000-0xdfffffff 64b= it pref] [ 0.598601] pci_bus 0000:02: resource 0 [io 0xe000-0xefff] [ 0.598602] pci_bus 0000:02: resource 1 [mem 0xfcf00000-0xfcffffff] [ 0.598603] pci_bus 0000:02: resource 2 [mem 0xfdf00000-0xfdffffff 64b= it pref] [ 0.598605] pci_bus 0000:03: resource 0 [io 0xd000-0xdfff] [ 0.598606] pci_bus 0000:03: resource 1 [mem 0xfde00000-0xfdefffff] [ 0.598607] pci_bus 0000:03: resource 2 [mem 0xfdd00000-0xfddfffff 64b= it pref] [ 0.598609] pci_bus 0000:04: resource 0 [io 0xc000-0xcfff] [ 0.598610] pci_bus 0000:04: resource 1 [mem 0xfdc00000-0xfdcfffff] [ 0.598611] pci_bus 0000:04: resource 2 [mem 0xfd900000-0xfd9fffff 64b= it pref] [ 0.598613] pci_bus 0000:05: resource 0 [io 0xa000-0xafff] [ 0.598614] pci_bus 0000:05: resource 1 [mem 0xfdb00000-0xfdbfffff] [ 0.598615] pci_bus 0000:05: resource 2 [mem 0xfda00000-0xfdafffff pre= f] [ 0.598617] pci_bus 0000:05: resource 4 [io 0x0000-0x0cf7] [ 0.598618] pci_bus 0000:05: resource 5 [io 0x0d00-0xffff] [ 0.598619] pci_bus 0000:05: resource 6 [mem 0x000a0000-0x000bffff] [ 0.598620] pci_bus 0000:05: resource 7 [mem 0x000c0000-0x000dffff] [ 0.598622] pci_bus 0000:05: resource 8 [mem 0xcff00000-0xfebfffff] [ 0.598623] pci_bus 0000:06: resource 0 [io 0x9000-0x9fff] [ 0.598624] pci_bus 0000:06: resource 1 [mem 0xfd800000-0xfd8fffff] [ 0.598626] pci_bus 0000:06: resource 2 [mem 0xfd700000-0xfd7fffff 64b= it pref] [ 0.598627] pci_bus 0000:07: resource 0 [io 0x8000-0x8fff] [ 0.598628] pci_bus 0000:07: resource 1 [mem 0xfd600000-0xfd6fffff] [ 0.598630] pci_bus 0000:07: resource 2 [mem 0xfd500000-0xfd5fffff 64b= it pref] [ 0.598631] pci_bus 0000:08: resource 0 [io 0x7000-0x7fff] [ 0.598632] pci_bus 0000:08: resource 1 [mem 0xfd400000-0xfd4fffff] [ 0.598634] pci_bus 0000:08: resource 2 [mem 0xfd300000-0xfd3fffff 64b= it pref] [ 0.598635] pci_bus 0000:09: resource 0 [io 0x6000-0x6fff] [ 0.598636] pci_bus 0000:09: resource 1 [mem 0xfd200000-0xfd2fffff] [ 0.598638] pci_bus 0000:09: resource 2 [mem 0xfd100000-0xfd1fffff 64b= it pref] [ 0.598664] NET: Registered protocol family 2 [ 0.598702] IP route cache hash table entries: 262144 (order: 9, 20971= 52 bytes) [ 0.599181] TCP established hash table entries: 262144 (order: 10, 419= 4304 bytes) [ 0.600096] TCP bind hash table entries: 65536 (order: 8, 1048576 byte= s) [ 0.600329] TCP: Hash tables configured (established 262144 bind 65536= ) [ 0.600331] TCP reno registered [ 0.600333] UDP hash table entries: 4096 (order: 5, 131072 bytes) [ 0.600365] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)= [ 0.600481] NET: Registered protocol family 1 [ 0.648154] pci 0000:01:00.0: Boot video device [ 0.648197] PCI: CLS 64 bytes, default 64 [ 0.648232] Trying to unpack rootfs image as initramfs... [ 0.695038] Freeing initrd memory: 3744k freed [ 0.695819] PCI-DMA: Disabling AGP. [ 0.695936] PCI-DMA: aperture base @ c4000000 size 65536 KB [ 0.695937] PCI-DMA: using GART IOMMU. [ 0.695939] PCI-DMA: Reserving 64MB of IOMMU area in the AGP aperture [ 0.698696] kvm: Nested Virtualization enabled [ 0.698700] kvm: Nested Paging enabled [ 0.700716] audit: initializing netlink socket (disabled) [ 0.700723] type=3D2000 audit(1311232724.699:1): initialized [ 0.716581] HugeTLB registered 2 MB page size, pre-allocated 0 pages [ 0.751655] VFS: Disk quotas dquot_6.5.2 [ 0.751726] Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 0.752293] SGI XFS with ACLs, security attributes, realtime, large bl= ock/inode numbers, no debug enabled [ 0.752875] SGI XFS Quota Management subsystem [ 0.752881] msgmni has been set to 15971 [ 0.753179] Block layer SCSI generic (bsg) driver version 0.4 loaded (= major 253) [ 0.753210] io scheduler noop registered [ 0.753212] io scheduler deadline registered [ 0.753267] io scheduler cfq registered (default) [ 0.753374] pcieport 0000:00:02.0: setting latency timer to 64 [ 0.753394] pcieport 0000:00:02.0: irq 40 for MSI/MSI-X [ 0.753453] pcieport 0000:00:06.0: setting latency timer to 64 [ 0.753468] pcieport 0000:00:06.0: irq 41 for MSI/MSI-X [ 0.753520] pcieport 0000:00:09.0: setting latency timer to 64 [ 0.753535] pcieport 0000:00:09.0: irq 42 for MSI/MSI-X [ 0.753587] pcieport 0000:00:0a.0: setting latency timer to 64 [ 0.753601] pcieport 0000:00:0a.0: irq 43 for MSI/MSI-X [ 0.754016] ERST: Table is not found! [ 0.754186] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled [ 0.774730] serial8250: ttyS0 at I/O 0x3f8 (irq =3D 4) is a 16550A [ 0.851763] 00:07: ttyS0 at I/O 0x3f8 (irq =3D 4) is a 16550A [ 0.868945] brd: module loaded [ 0.869097] ahci 0000:00:11.0: version 3.0 [ 0.869112] ahci 0000:00:11.0: PCI INT A -> GSI 19 (level, low) -> IRQ= 19 [ 0.869145] ahci 0000:00:11.0: irq 44 for MSI/MSI-X [ 0.869222] ahci 0000:00:11.0: AHCI 0001.0200 32 slots 6 ports 6 Gbps = 0x3f impl SATA mode [ 0.869225] ahci 0000:00:11.0: flags: 64bit ncq sntf ilck pm led clo p= mp pio slum part=20 [ 0.870250] scsi0 : ahci [ 0.870383] scsi1 : ahci [ 0.870483] scsi2 : ahci [ 0.870583] scsi3 : ahci [ 0.870682] scsi4 : ahci [ 0.870781] scsi5 : ahci [ 0.870906] ata1: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 100 irq 44 [ 0.870908] ata2: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 180 irq 44 [ 0.870910] ata3: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 200 irq 44 [ 0.870912] ata4: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 280 irq 44 [ 0.870914] ata5: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 300 irq 44 [ 0.870916] ata6: SATA max UDMA/133 abar m1024@0xfe02f000 port 0xfe02f= 380 irq 44 [ 0.870937] ahci 0000:04:00.0: PCI INT A -> GSI 18 (level, low) -> IRQ= 18 [ 0.881116] ahci 0000:04:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps = 0x3 impl SATA mode [ 0.881119] ahci 0000:04:00.0: flags: 64bit ncq pm led clo pmp pio slu= m part=20 [ 0.881123] ahci 0000:04:00.0: setting latency timer to 64 [ 0.881606] scsi6 : ahci [ 0.881725] scsi7 : ahci [ 0.881803] ata7: SATA max UDMA/133 abar m8192@0xfdcfe000 port 0xfdcfe= 100 irq 18 [ 0.881805] ata8: SATA max UDMA/133 abar m8192@0xfdcfe000 port 0xfdcfe= 180 irq 18 [ 0.881840] ahci 0000:06:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ= 17 [ 0.892118] ahci 0000:06:00.0: AHCI 0001.0000 32 slots 2 ports 3 Gbps = 0x3 impl SATA mode [ 0.892121] ahci 0000:06:00.0: flags: 64bit ncq pm led clo pmp pio slu= m part=20 [ 0.892126] ahci 0000:06:00.0: setting latency timer to 64 [ 0.892550] scsi8 : ahci [ 0.892665] scsi9 : ahci [ 0.892740] ata9: SATA max UDMA/133 abar m8192@0xfd8fe000 port 0xfd8fe= 100 irq 17 [ 0.892743] ata10: SATA max UDMA/133 abar m8192@0xfd8fe000 port 0xfd8f= e180 irq 17 [ 0.892895] sata_sil24 0000:02:00.0: version 1.1 [ 0.892904] sata_sil24 0000:02:00.0: PCI INT A -> GSI 18 (level, low) = -> IRQ 18 [ 0.892948] sata_sil24 0000:02:00.0: setting latency timer to 64 [ 0.893328] scsi10 : sata_sil24 [ 0.893429] scsi11 : sata_sil24 [ 0.893507] ata11: SATA max UDMA/100 host m128@0xfcfff000 port 0xfcff8= 000 irq 18 [ 0.893510] ata12: SATA max UDMA/100 host m128@0xfcfff000 port 0xfcffa= 000 irq 18 [ 0.893686] pata_jmicron 0000:04:00.1: enabling device (0000 -> 0001) [ 0.893692] pata_jmicron 0000:04:00.1: PCI INT B -> GSI 19 (level, low= ) -> IRQ 19 [ 0.893711] pata_jmicron 0000:04:00.1: setting latency timer to 64 [ 0.894146] scsi12 : pata_jmicron [ 0.894250] scsi13 : pata_jmicron [ 0.894326] ata13: PATA max UDMA/100 cmd 0xcf00 ctl 0xce00 bmdma 0xcb0= 0 irq 19 [ 0.894328] ata14: PATA max UDMA/100 cmd 0xcd00 ctl 0xcc00 bmdma 0xcb0= 8 irq 19 [ 0.894339] pata_jmicron 0000:06:00.1: PCI INT B -> GSI 17 (level, low= ) -> IRQ 17 [ 0.894374] pata_jmicron 0000:06:00.1: setting latency timer to 64 [ 0.894859] scsi14 : pata_jmicron [ 0.894964] scsi15 : pata_jmicron [ 0.895057] ata15: PATA max UDMA/100 cmd 0x9f00 ctl 0x9e00 bmdma 0x9b0= 0 irq 17 [ 0.895059] ata16: PATA max UDMA/100 cmd 0x9d00 ctl 0x9c00 bmdma 0x9b0= 8 irq 17 [ 0.895193] tun: Universal TUN/TAP device driver, 1.6 [ 0.895194] tun: (C) 1999-2004 Max Krasnyansky [ 0.895283] r8169 Gigabit Ethernet driver 2.3LK-NAPI loaded [ 0.895295] r8169 0000:07:00.0: PCI INT A -> GSI 17 (level, low) -> IR= Q 17 [ 0.895324] r8169 0000:07:00.0: setting latency timer to 64 [ 0.895368] r8169 0000:07:00.0: irq 45 for MSI/MSI-X [ 0.895540] r8169 0000:07:00.0: eth0: RTL8168d/8111d at 0xffffc9000002= 6000, 1c:6f:65:23:db:0d, XID 083000c0 IRQ 45 [ 0.895682] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 ir= q 1 [ 0.895684] i8042: PNP: PS/2 appears to have AUX port disabled, if thi= s is incorrect please boot with i8042.nopnp [ 0.895825] serio: i8042 KBD port at 0x60,0x64 irq 1 [ 0.895958] mousedev: PS/2 mouse device common for all mice [ 0.896046] rtc_cmos 00:04: RTC can wake from S4 [ 0.896139] rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0 [ 0.896161] rtc0: alarms up to one month, 242 bytes nvram, hpet irqs [ 0.896197] md: linear personality registered for level -1 [ 0.896199] md: raid0 personality registered for level 0 [ 0.896200] md: raid1 personality registered for level 1 [ 0.896201] md: raid10 personality registered for level 10 [ 0.896203] md: multipath personality registered for level -4 [ 0.896321] device-mapper: uevent: version 1.0.3 [ 0.896432] device-mapper: ioctl: 4.20.0-ioctl (2011-02-02) initialise= d: dm-devel@redhat.com [ 0.896499] cpuidle: using governor ladder [ 0.896500] cpuidle: using governor menu [ 0.896629] TCP cubic registered [ 0.896630] Initializing XFRM netlink socket [ 0.896633] NET: Registered protocol family 17 [ 0.896641] NET: Registered protocol family 15 [ 0.896642] Registering the dns_resolver key type [ 0.896778] registered taskstats version 1 [ 0.913505] rtc_cmos 00:04: setting system clock to 2011-07-21 07:18:4= 5 UTC (1311232725) [ 0.923856] input: AT Translated Set 2 keyboard as /devices/platform/i= 8042/serio0/input/input0 [ 1.046877] ata15.00: ATAPI: ASUS CRW-5232AS, 1.01, max UDMA/33 [ 1.050818] ata15.00: configured for UDMA/33 [ 1.186104] ata7: SATA link down (SStatus 0 SControl 300) [ 1.186140] ata8: SATA link down (SStatus 0 SControl 300) [ 1.330097] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.331058] ata6: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.331077] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.331095] ata5: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.331109] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.331125] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.337437] ata6.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.337440] ata6.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.338462] ata6.00: configured for UDMA/133 [ 1.339159] ata4.00: HPA detected: current 1465147055, native 14651491= 68 [ 1.339235] ata4.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.339237] ata4.00: 1465147055 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.340257] ata4.00: configured for UDMA/133 [ 1.341038] ata2.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.341040] ata2.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.341122] ata1.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.341124] ata1.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.342057] ata2.00: configured for UDMA/133 [ 1.342116] ata1.00: configured for UDMA/133 [ 1.342278] scsi 0:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.342493] sd 0:0:0:0: [sda] 1465149168 512-byte logical blocks: (750= GB/698 GiB) [ 1.342521] sd 0:0:0:0: [sda] Write Protect is off [ 1.342523] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 [ 1.342534] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.342770] scsi 1:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.342948] sd 1:0:0:0: [sdb] 1465149168 512-byte logical blocks: (750= GB/698 GiB) [ 1.343039] ata3.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.343041] ata3.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.343058] sd 1:0:0:0: [sdb] Write Protect is off [ 1.343060] sd 1:0:0:0: [sdb] Mode Sense: 00 3a 00 00 [ 1.343102] sd 1:0:0:0: [sdb] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.344075] ata3.00: configured for UDMA/133 [ 1.344139] scsi 2:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.344340] sd 2:0:0:0: [sdc] 1465149168 512-byte logical blocks: (750= GB/698 GiB) [ 1.344416] sd 2:0:0:0: [sdc] Write Protect is off [ 1.344418] sd 2:0:0:0: [sdc] Mode Sense: 00 3a 00 00 [ 1.344448] sd 2:0:0:0: [sdc] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.344510] scsi 3:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.344625] ata5.00: ATA-8: WDC WD7501AALS-00J7B0, 05.00K05, max UDMA/= 133 [ 1.344627] ata5.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/= 32), AA [ 1.344717] sd 3:0:0:0: [sdd] 1465147055 512-byte logical blocks: (750= GB/698 GiB) [ 1.344741] sd 3:0:0:0: [sdd] Write Protect is off [ 1.344743] sd 3:0:0:0: [sdd] Mode Sense: 00 3a 00 00 [ 1.344752] sd 3:0:0:0: [sdd] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.345604] ata5.00: configured for UDMA/133 [ 1.345673] scsi 4:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.345892] sd 4:0:0:0: [sde] 1465149168 512-byte logical blocks: (750= GB/698 GiB) [ 1.345971] sd 4:0:0:0: [sde] Write Protect is off [ 1.345972] sd 4:0:0:0: [sde] Mode Sense: 00 3a 00 00 [ 1.346026] sd 4:0:0:0: [sde] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.346054] scsi 5:0:0:0: Direct-Access ATA WDC WD7501AALS-0 = 05.0 PQ: 0 ANSI: 5 [ 1.346289] sd 5:0:0:0: [sdf] 1465149168 512-byte logical blocks: (750= GB/698 GiB) [ 1.346313] sd 5:0:0:0: [sdf] Write Protect is off [ 1.346315] sd 5:0:0:0: [sdf] Mode Sense: 00 3a 00 00 [ 1.346324] sd 5:0:0:0: [sdf] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.352083] ata9: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.352108] ata10: SATA link up 3.0 Gbps (SStatus 123 SControl 300) [ 1.363488] sdb: sdb1 sdb2 [ 1.363848] sd 1:0:0:0: [sdb] Attached SCSI disk [ 1.364869] sdf: sdf1 sdf2 [ 1.365164] sd 5:0:0:0: [sdf] Attached SCSI disk [ 1.366089] sda: sda1 sda2 [ 1.366413] sd 0:0:0:0: [sda] Attached SCSI disk [ 1.368594] sdd: sdd1 sdd2 [ 1.368957] sd 3:0:0:0: [sdd] Attached SCSI disk [ 1.369473] sdc: sdc1 sdc2 [ 1.369831] sd 2:0:0:0: [sdc] Attached SCSI disk [ 1.370059] sde: sde1 sde2 [ 1.370332] sd 4:0:0:0: [sde] Attached SCSI disk [ 1.389169] ata10.00: ATA-8: OCZ-VERTEX2, 1.25, max UDMA/133 [ 1.389171] ata10.00: 175836528 sectors, multi 1: LBA48 NCQ (depth 31/= 32), AA [ 1.396087] ata9.00: ATA-8: OCZ-VERTEX2, 1.25, max UDMA/133 [ 1.396089] ata9.00: 175836528 sectors, multi 1: LBA48 NCQ (depth 31/3= 2), AA [ 1.419239] ata10.00: configured for UDMA/133 [ 1.426132] ata9.00: configured for UDMA/133 [ 1.426196] scsi 8:0:0:0: Direct-Access ATA OCZ-VERTEX2 = 1.25 PQ: 0 ANSI: 5 [ 1.426408] sd 8:0:0:0: [sdg] 175836528 512-byte logical blocks: (90.0= GB/83.8 GiB) [ 1.426539] scsi 9:0:0:0: Direct-Access ATA OCZ-VERTEX2 = 1.25 PQ: 0 ANSI: 5 [ 1.426558] sd 8:0:0:0: [sdg] Write Protect is off [ 1.426559] sd 8:0:0:0: [sdg] Mode Sense: 00 3a 00 00 [ 1.426590] sd 8:0:0:0: [sdg] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.426750] sd 9:0:0:0: [sdh] 175836528 512-byte logical blocks: (90.0= GB/83.8 GiB) [ 1.426784] sd 9:0:0:0: [sdh] Write Protect is off [ 1.426786] sd 9:0:0:0: [sdh] Mode Sense: 00 3a 00 00 [ 1.426798] sd 9:0:0:0: [sdh] Write cache: enabled, read cache: enable= d, doesn't support DPO or FUA [ 1.427067] sdg: sdg1 sdg2 [ 1.427109] sdh: sdh1 sdh2 [ 1.427449] sd 8:0:0:0: [sdg] Attached SCSI disk [ 1.427452] sd 9:0:0:0: [sdh] Attached SCSI disk [ 1.700088] Refined TSC clocksource calibration: 3214.610 MHz. [ 1.700097] Switching to clocksource tsc [ 2.913101] ata11: SATA link down (SStatus 0 SControl 0) [ 5.078097] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 0) [ 5.080511] ata12.00: ATA-7: WDC WD740ADFD-00NLR1, 20.07P20, max UDMA/= 133 [ 5.080513] ata12.00: 145226112 sectors, multi 16: LBA48 NCQ (not used= ) [ 5.083634] ata12.00: configured for UDMA/100 [ 5.083737] scsi 11:0:0:0: Direct-Access ATA WDC WD740ADFD-00= 20.0 PQ: 0 ANSI: 5 [ 5.083913] sd 11:0:0:0: [sdi] 145226112 512-byte logical blocks: (74.= 3 GB/69.2 GiB) [ 5.083983] sd 11:0:0:0: [sdi] Write Protect is off [ 5.083986] sd 11:0:0:0: [sdi] Mode Sense: 00 3a 00 00 [ 5.084126] sd 11:0:0:0: [sdi] Write cache: enabled, read cache: enabl= ed, doesn't support DPO or FUA [ 5.111810] sdi: sdi1 < sdi5 sdi6 sdi7 > sdi2 sdi3 sdi4 [ 5.112292] sd 11:0:0:0: [sdi] Attached SCSI disk [ 5.246871] scsi 14:0:0:0: CD-ROM ASUS CRW-5232AS = 1.01 PQ: 0 ANSI: 5 [ 5.410282] Freeing unused kernel memory: 492k freed [ 5.410370] Write protecting the kernel read-only data: 10240k [ 5.413095] Freeing unused kernel memory: 1240k freed [ 5.417431] Freeing unused kernel memory: 1960k freed [ 5.430447] udevd[887]: starting version 171 [ 5.446899] usbcore: registered new interface driver usbfs [ 5.446927] usbcore: registered new interface driver hub [ 5.446971] usbcore: registered new device driver usb [ 5.447310] xhci_hcd 0000:03:00.0: PCI INT A -> GSI 17 (level, low) ->= IRQ 17 [ 5.447326] xhci_hcd 0000:03:00.0: setting latency timer to 64 [ 5.447329] xhci_hcd 0000:03:00.0: xHCI Host Controller [ 5.447346] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bu= s number 1 [ 5.447464] xhci_hcd 0000:03:00.0: irq 17, io mem 0xfdefe000 [ 5.447498] xhci_hcd 0000:03:00.0: irq 46 for MSI/MSI-X [ 5.447501] xhci_hcd 0000:03:00.0: irq 47 for MSI/MSI-X [ 5.447503] xhci_hcd 0000:03:00.0: irq 48 for MSI/MSI-X [ 5.447505] xhci_hcd 0000:03:00.0: irq 49 for MSI/MSI-X [ 5.447507] xhci_hcd 0000:03:00.0: irq 50 for MSI/MSI-X [ 5.447508] xhci_hcd 0000:03:00.0: irq 51 for MSI/MSI-X [ 5.447510] xhci_hcd 0000:03:00.0: irq 52 for MSI/MSI-X [ 5.447588] usb usb1: New USB device found, idVendor=3D1d6b, idProduct= =3D0002 [ 5.447590] usb usb1: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.447592] usb usb1: Product: xHCI Host Controller [ 5.447593] usb usb1: Manufacturer: Linux 3.0.0-rc7 xhci_hcd [ 5.447594] usb usb1: SerialNumber: 0000:03:00.0 [ 5.447669] xHCI xhci_add_endpoint called for root hub [ 5.447670] xHCI xhci_check_bandwidth called for root hub [ 5.447701] hub 1-0:1.0: USB hub found [ 5.447706] hub 1-0:1.0: 2 ports detected [ 5.447773] xhci_hcd 0000:03:00.0: xHCI Host Controller [ 5.447777] xhci_hcd 0000:03:00.0: new USB bus registered, assigned bu= s number 2 [ 5.450822] usb usb2: New USB device found, idVendor=3D1d6b, idProduct= =3D0003 [ 5.450824] usb usb2: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.450826] usb usb2: Product: xHCI Host Controller [ 5.450827] usb usb2: Manufacturer: Linux 3.0.0-rc7 xhci_hcd [ 5.450828] usb usb2: SerialNumber: 0000:03:00.0 [ 5.450864] xHCI xhci_add_endpoint called for root hub [ 5.450865] xHCI xhci_check_bandwidth called for root hub [ 5.450879] hub 2-0:1.0: USB hub found [ 5.450884] hub 2-0:1.0: 2 ports detected [ 5.451193] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver= [ 5.451216] ehci_hcd 0000:00:12.2: PCI INT B -> GSI 17 (level, low) ->= IRQ 17 [ 5.451230] ehci_hcd 0000:00:12.2: EHCI Host Controller [ 5.451239] ehci_hcd 0000:00:12.2: new USB bus registered, assigned bu= s number 3 [ 5.451247] ehci_hcd 0000:00:12.2: applying AMD SB700/SB800/Hudson-2/3= EHCI dummy qh workaround [ 5.451270] QUIRK: Enable AMD PLL fix [ 5.451278] ehci_hcd 0000:00:12.2: debug port 1 [ 5.451290] ehci_hcd 0000:00:12.2: irq 17, io mem 0xfe02d000 [ 5.455594] firewire_ohci 0000:05:0e.0: PCI INT A -> GSI 22 (level, lo= w) -> IRQ 22 [ 5.457014] ehci_hcd 0000:00:12.2: USB 2.0 started, EHCI 1.00 [ 5.457035] usb usb3: New USB device found, idVendor=3D1d6b, idProduct= =3D0002 [ 5.457037] usb usb3: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.457039] usb usb3: Product: EHCI Host Controller [ 5.457040] usb usb3: Manufacturer: Linux 3.0.0-rc7 ehci_hcd [ 5.457041] usb usb3: SerialNumber: 0000:00:12.2 [ 5.457133] hub 3-0:1.0: USB hub found [ 5.457137] hub 3-0:1.0: 5 ports detected [ 5.457217] ehci_hcd 0000:00:13.2: PCI INT B -> GSI 17 (level, low) ->= IRQ 17 [ 5.457232] ehci_hcd 0000:00:13.2: EHCI Host Controller [ 5.457238] ehci_hcd 0000:00:13.2: new USB bus registered, assigned bu= s number 4 [ 5.457245] ehci_hcd 0000:00:13.2: applying AMD SB700/SB800/Hudson-2/3= EHCI dummy qh workaround [ 5.457264] ehci_hcd 0000:00:13.2: debug port 1 [ 5.457278] ehci_hcd 0000:00:13.2: irq 17, io mem 0xfe02b000 [ 5.459904] sr0: scsi3-mmc drive: 52x/52x writer cd/rw xa/form2 cdda t= ray [ 5.459907] cdrom: Uniform CD-ROM driver Revision: 3.20 [ 5.460158] sr 14:0:0:0: Attached scsi CD-ROM sr0 [ 5.463089] ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00 [ 5.463109] usb usb4: New USB device found, idVendor=3D1d6b, idProduct= =3D0002 [ 5.463111] usb usb4: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.463113] usb usb4: Product: EHCI Host Controller [ 5.463114] usb usb4: Manufacturer: Linux 3.0.0-rc7 ehci_hcd [ 5.463116] usb usb4: SerialNumber: 0000:00:13.2 [ 5.463190] hub 4-0:1.0: USB hub found [ 5.463193] hub 4-0:1.0: 5 ports detected [ 5.463271] ehci_hcd 0000:00:16.2: PCI INT B -> GSI 17 (level, low) ->= IRQ 17 [ 5.463295] ehci_hcd 0000:00:16.2: EHCI Host Controller [ 5.463301] ehci_hcd 0000:00:16.2: new USB bus registered, assigned bu= s number 5 [ 5.463308] ehci_hcd 0000:00:16.2: applying AMD SB700/SB800/Hudson-2/3= EHCI dummy qh workaround [ 5.463327] ehci_hcd 0000:00:16.2: debug port 1 [ 5.463339] ehci_hcd 0000:00:16.2: irq 17, io mem 0xfe028000 [ 5.469012] ehci_hcd 0000:00:16.2: USB 2.0 started, EHCI 1.00 [ 5.469029] usb usb5: New USB device found, idVendor=3D1d6b, idProduct= =3D0002 [ 5.469031] usb usb5: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.469033] usb usb5: Product: EHCI Host Controller [ 5.469034] usb usb5: Manufacturer: Linux 3.0.0-rc7 ehci_hcd [ 5.469035] usb usb5: SerialNumber: 0000:00:16.2 [ 5.469153] hub 5-0:1.0: USB hub found [ 5.469156] hub 5-0:1.0: 4 ports detected [ 5.506139] firewire_ohci: Added fw-ohci device 0000:05:0e.0, OHCI v1.= 10, 4 IR + 8 IT contexts, quirks 0x2 [ 5.552309] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 5.552329] ohci_hcd 0000:00:12.0: PCI INT A -> GSI 18 (level, low) ->= IRQ 18 [ 5.552362] ohci_hcd 0000:00:12.0: OHCI Host Controller [ 5.552371] ohci_hcd 0000:00:12.0: new USB bus registered, assigned bu= s number 6 [ 5.552391] ohci_hcd 0000:00:12.0: irq 18, io mem 0xfe02e000 [ 5.607071] usb usb6: New USB device found, idVendor=3D1d6b, idProduct= =3D0001 [ 5.607074] usb usb6: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.607076] usb usb6: Product: OHCI Host Controller [ 5.607077] usb usb6: Manufacturer: Linux 3.0.0-rc7 ohci_hcd [ 5.607078] usb usb6: SerialNumber: 0000:00:12.0 [ 5.607159] hub 6-0:1.0: USB hub found [ 5.607163] hub 6-0:1.0: 5 ports detected [ 5.607238] ohci_hcd 0000:00:13.0: PCI INT A -> GSI 18 (level, low) ->= IRQ 18 [ 5.607258] ohci_hcd 0000:00:13.0: OHCI Host Controller [ 5.607263] ohci_hcd 0000:00:13.0: new USB bus registered, assigned bu= s number 7 [ 5.607280] ohci_hcd 0000:00:13.0: irq 18, io mem 0xfe02c000 [ 5.662062] usb usb7: New USB device found, idVendor=3D1d6b, idProduct= =3D0001 [ 5.662064] usb usb7: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.662066] usb usb7: Product: OHCI Host Controller [ 5.662067] usb usb7: Manufacturer: Linux 3.0.0-rc7 ohci_hcd [ 5.662069] usb usb7: SerialNumber: 0000:00:13.0 [ 5.662140] hub 7-0:1.0: USB hub found [ 5.662144] hub 7-0:1.0: 5 ports detected [ 5.662211] ohci_hcd 0000:00:14.5: PCI INT C -> GSI 18 (level, low) ->= IRQ 18 [ 5.662226] ohci_hcd 0000:00:14.5: OHCI Host Controller [ 5.662231] ohci_hcd 0000:00:14.5: new USB bus registered, assigned bu= s number 8 [ 5.662245] ohci_hcd 0000:00:14.5: irq 18, io mem 0xfe02a000 [ 5.717106] usb usb8: New USB device found, idVendor=3D1d6b, idProduct= =3D0001 [ 5.717108] usb usb8: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.717109] usb usb8: Product: OHCI Host Controller [ 5.717110] usb usb8: Manufacturer: Linux 3.0.0-rc7 ohci_hcd [ 5.717111] usb usb8: SerialNumber: 0000:00:14.5 [ 5.717165] hub 8-0:1.0: USB hub found [ 5.717170] hub 8-0:1.0: 2 ports detected [ 5.717223] ohci_hcd 0000:00:16.0: PCI INT A -> GSI 18 (level, low) ->= IRQ 18 [ 5.717235] ohci_hcd 0000:00:16.0: OHCI Host Controller [ 5.717239] ohci_hcd 0000:00:16.0: new USB bus registered, assigned bu= s number 9 [ 5.717251] ohci_hcd 0000:00:16.0: irq 18, io mem 0xfe029000 [ 5.772107] usb usb9: New USB device found, idVendor=3D1d6b, idProduct= =3D0001 [ 5.772109] usb usb9: New USB device strings: Mfr=3D3, Product=3D2, Se= rialNumber=3D1 [ 5.772110] usb usb9: Product: OHCI Host Controller [ 5.772111] usb usb9: Manufacturer: Linux 3.0.0-rc7 ohci_hcd [ 5.772112] usb usb9: SerialNumber: 0000:00:16.0 [ 5.772185] hub 9-0:1.0: USB hub found [ 5.772189] hub 9-0:1.0: 4 ports detected [ 5.810071] hub 5-0:1.0: unable to enumerate USB device on port 4 [ 6.007140] firewire_core: created device fw0: GUID 00bb991f006cf049, = S400 [ 6.085450] md: md0 stopped. [ 6.085947] md: bind [ 6.086057] md: bind [ 6.086819] bio: create slab at 1 [ 6.086868] md/raid1:md0: active with 2 out of 2 mirrors [ 6.086889] md0: detected capacity change from 0 to 254738432 [ 6.087567] md0: unknown partition table [ 6.096643] md: md1 stopped. [ 6.098195] md: bind [ 6.099304] md: bind [ 6.099446] md: bind [ 6.099573] md: bind [ 6.099710] md: bind [ 6.099851] md: bind [ 6.100610] md/raid10:md1: active with 6 out of 6 devices [ 6.100626] md1: detected capacity change from 0 to 2245939691520 [ 6.107535] md1: p1 p2 p3 p4 [ 6.137067] usb 6-3: new full speed USB device number 2 using ohci_hcd= [ 6.396655] EXT4-fs (dm-0): mounted filesystem with ordered data mode.= Opts: (null) [ 6.490082] usb 6-3: New USB device found, idVendor=3D0a12, idProduct=3D= 0001 [ 6.490085] usb 6-3: New USB device strings: Mfr=3D0, Product=3D2, Ser= ialNumber=3D0 [ 6.490087] usb 6-3: Product: BT2.0 [ 6.606071] usb 9-4: new low speed USB device number 2 using ohci_hcd [ 6.747118] usb 9-4: New USB device found, idVendor=3D09da, idProduct=3D= 000a [ 6.747120] usb 9-4: New USB device strings: Mfr=3D1, Product=3D2, Ser= ialNumber=3D0 [ 6.747122] usb 9-4: Product: PS/2+USB Mouse [ 6.747123] usb 9-4: Manufacturer: A4Tech [ 8.239357] udevd[1255]: starting version 171 [ 8.283224] ACPI: acpi_idle registered with cpuidle [ 8.283260] ACPI: processor limited to max C-state 1 [ 8.284281] wmi: Mapper loaded [ 8.286093] input: Power Button as /devices/LNXSYSTM:00/device:00/PNP0= C0C:00/input/input1 [ 8.286098] ACPI: Power Button [PWRB] [ 8.286156] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/in= put/input2 [ 8.286158] ACPI: Power Button [PWRF] [ 8.289383] parport_pc 00:08: reported by Plug and Play ACPI [ 8.289438] parport0: PC-style at 0x378 (0x778), irq 7 [PCSPP,TRISTATE= ] [ 8.310755] Bluetooth: Core ver 2.16 [ 8.310773] NET: Registered protocol family 31 [ 8.310774] Bluetooth: HCI device and connection manager initialized [ 8.310777] Bluetooth: HCI socket layer initialized [ 8.310778] Bluetooth: L2CAP socket layer initialized [ 8.310923] Bluetooth: SCO socket layer initialized [ 8.317376] Bluetooth: Generic Bluetooth USB driver ver 0.6 [ 8.318617] piix4_smbus 0000:00:14.0: SMBus Host Controller at 0xb00, = revision 0 [ 8.319704] usbcore: registered new interface driver btusb [ 8.321142] HDA Intel 0000:00:14.2: PCI INT A -> GSI 16 (level, low) -= > IRQ 16 [ 8.341657] hda_codec: ALC892: BIOS auto-probing. [ 8.341808] usbcore: registered new interface driver usbhid [ 8.341811] usbhid: USB HID core driver [ 8.348286] input: HDA ATI SB Headphone as /devices/pci0000:00/0000:00= :14.2/sound/card0/input3 [ 8.348892] HDA Intel 0000:01:00.1: PCI INT B -> GSI 19 (level, low) -= > IRQ 19 [ 8.349016] HDA Intel 0000:01:00.1: irq 53 for MSI/MSI-X [ 8.349035] HDA Intel 0000:01:00.1: setting latency timer to 64 [ 8.349237] input: A4Tech PS/2+USB Mouse as /devices/pci0000:00/0000:0= 0:16.0/usb9/9-4/9-4:1.0/input/input4 [ 8.349286] a4tech 0003:09DA:000A.0001: input: USB HID v1.10 Mouse [A4= Tech PS/2+USB Mouse] on usb-0000:00:16.0-4/input0 [ 8.355256] HDMI status: Pin=3D3 Presence_Detect=3D0 ELD_Valid=3D0 [ 8.355466] input: HDA ATI HDMI HDMI/DP as /devices/pci0000:00/0000:00= :02.0/0000:01:00.1/sound/card1/input5 [ 9.778811] Adding 699044k swap on /dev/sda2. Priority:100 extents:1 = across:699044k=20 [ 9.789836] Adding 699044k swap on /dev/sdc2. Priority:100 extents:1 = across:699044k=20 [ 9.800685] Adding 699044k swap on /dev/sdd2. Priority:100 extents:1 = across:699044k=20 [ 9.811608] Adding 699044k swap on /dev/sde2. Priority:100 extents:1 = across:699044k=20 [ 9.822648] Adding 699044k swap on /dev/sdf2. Priority:100 extents:1 = across:699044k=20 [ 9.833352] Adding 699044k swap on /dev/sdb2. Priority:100 extents:1 = across:699044k=20 [ 9.840654] EXT4-fs (dm-0): re-mounted. Opts: discard,errors=3Dremount= -ro [ 9.850419] loop: module loaded [ 9.852046] it87: Found IT8720F chip at 0x228, revision 8 [ 9.852065] it87: Routing internal VCCH to in7 [ 9.852069] it87: Beeping is supported [ 9.861206] [drm] Initialized drm 1.1.0 20060810 [ 9.865528] [drm] radeon kernel modesetting enabled. [ 9.865588] radeon 0000:01:00.0: PCI INT A -> GSI 18 (level, low) -> I= RQ 18 [ 9.865592] radeon 0000:01:00.0: setting latency timer to 64 [ 9.865702] [drm] initializing kernel modesetting (RV730 0x1002:0x9498= ). [ 9.865727] [drm] register mmio base: 0xFD0E0000 [ 9.865728] [drm] register mmio size: 65536 [ 9.866065] ATOM BIOS: 11x [ 9.866080] radeon 0000:01:00.0: VRAM: 1024M 0x0000000000000000 - 0x00= 0000003FFFFFFF (1024M used) [ 9.866082] radeon 0000:01:00.0: GTT: 512M 0x0000000040000000 - 0x0000= 00005FFFFFFF [ 9.866087] mtrr: no more MTRRs available [ 9.866088] [drm] Detected VRAM RAM=3D1024M, BAR=3D256M [ 9.866089] [drm] RAM width 128bits DDR [ 9.866136] [TTM] Zone kernel: Available graphics memory: 4090450 kiB= =2E [ 9.866139] [TTM] Zone dma32: Available graphics memory: 2097152 kiB= =2E [ 9.866140] [TTM] Initializing pool allocator. [ 9.866155] [drm] radeon: 1024M of VRAM memory ready [ 9.866157] [drm] radeon: 512M of GTT memory ready. [ 9.866167] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010)= =2E [ 9.866168] [drm] Driver supports precise vblank timestamp query. [ 9.866200] radeon 0000:01:00.0: irq 54 for MSI/MSI-X [ 9.866204] radeon 0000:01:00.0: radeon: using MSI. [ 9.866232] [drm] radeon: irq initialized. [ 9.866236] [drm] GART: num cpu pages 131072, num gpu pages 131072 [ 9.866930] [drm] Loading RV730 Microcode [ 9.874054] radeon 0000:01:00.0: WB enabled [ 9.919413] [drm] ring test succeeded in 1 usecs [ 9.919469] [drm] radeon: ib pool ready. [ 9.919517] [drm] ib test succeeded in 0 usecs [ 9.919522] failed to evaluate ATIF got AE_BAD_PARAMETER [ 9.919676] [drm] Radeon Display Connectors [ 9.919677] [drm] Connector 0: [ 9.919678] [drm] HDMI-A [ 9.919679] [drm] HPD2 [ 9.919681] [drm] DDC: 0x7f10 0x7f10 0x7f14 0x7f14 0x7f18 0x7f18 0x7= f1c 0x7f1c [ 9.919682] [drm] Encoders: [ 9.919683] [drm] DFP2: INTERNAL_UNIPHY1 [ 9.919684] [drm] Connector 1: [ 9.919685] [drm] VGA [ 9.919686] [drm] DDC: 0x7e20 0x7e20 0x7e24 0x7e24 0x7e28 0x7e28 0x7= e2c 0x7e2c [ 9.919687] [drm] Encoders: [ 9.919688] [drm] CRT2: INTERNAL_KLDSCP_DAC2 [ 9.919689] [drm] Connector 2: [ 9.919690] [drm] DVI-I [ 9.919691] [drm] HPD1 [ 9.919692] [drm] DDC: 0x7e40 0x7e40 0x7e44 0x7e44 0x7e48 0x7e48 0x7= e4c 0x7e4c [ 9.919693] [drm] Encoders: [ 9.919694] [drm] CRT1: INTERNAL_KLDSCP_DAC1 [ 9.919695] [drm] DFP1: INTERNAL_UNIPHY [ 9.993429] [drm] Internal thermal controller with fan control [ 9.993459] [drm] radeon: power management initialized [ 10.074407] [drm] fb mappable at 0xD0142000 [ 10.074408] [drm] vram apper at 0xD0000000 [ 10.074409] [drm] size 7299072 [ 10.074410] [drm] fb depth is 24 [ 10.074411] [drm] pitch is 6912 [ 10.074462] fbcon: radeondrmfb (fb0) is primary device [ 10.483530] Console: switching to colour frame buffer device 210x65 [ 10.487553] fb0: radeondrmfb frame buffer device [ 10.487554] drm: registered panic notifier [ 10.487558] [drm] Initialized radeon 2.10.0 20080528 for 0000:01:00.0 = on minor 0 [ 10.759128] EXT4-fs (md0): mounting ext3 file system using the ext4 su= bsystem [ 10.767894] EXT4-fs (md0): mounted filesystem with ordered data mode. = Opts: (null) [ 10.841147] EXT4-fs (md1p1): mounted filesystem with ordered data mode= =2E Opts: (null) [ 10.851826] XFS (md1p2): Mounting Filesystem [ 11.084981] XFS (md1p2): Ending clean mount [ 11.096036] XFS (md1p3): Mounting Filesystem [ 11.281775] XFS (md1p3): Ending clean mount [ 11.359414] EXT4-fs (md1p4): mounted filesystem with ordered data mode= =2E Opts: (null) [ 11.501064] ip_tables: (C) 2000-2006 Netfilter Core Team [ 11.502954] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) [ 11.509123] NET: Registered protocol family 10 [ 12.547804] fuse init (API version 7.16) [ 12.993919] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 [ 12.993921] Bluetooth: BNEP filters: protocol multicast [ 12.997415] Bluetooth: RFCOMM TTY layer initialized [ 12.997420] Bluetooth: RFCOMM socket layer initialized [ 12.997421] Bluetooth: RFCOMM ver 1.11 [ 13.032342] powernow-k8: Found 1 AMD Phenom(tm) II X6 1090T Processor = (6 cpu cores) (version 2.20.00) [ 13.032351] powernow-k8: Core Performance Boosting: on. [ 13.032383] powernow-k8: 0 : pstate 0 (3200 MHz) [ 13.032384] powernow-k8: 1 : pstate 1 (2400 MHz) [ 13.032385] powernow-k8: 2 : pstate 2 (1600 MHz) [ 13.032386] powernow-k8: 3 : pstate 3 (800 MHz) [ 13.133299] Bridge firewalling registered [ 13.136977] device virbr0-nic entered promiscuous mode [ 13.169582] ADDRCONF(NETDEV_UP): virbr0: link is not ready [ 13.433069] r8169 0000:07:00.0: eth0: link down [ 13.433081] r8169 0000:07:00.0: eth0: link down [ 13.433769] ADDRCONF(NETDEV_UP): eth0: link is not ready [ 15.441209] r8169 0000:07:00.0: eth0: link up [ 15.443680] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready [ 23.955042] EXT4-fs (dm-0): re-mounted. Opts: discard,errors=3Dremount= -ro,commit=3D0 [ 23.973295] EXT4-fs (md0): re-mounted. Opts: commit=3D0 [ 24.048464] EXT4-fs (md1p4): re-mounted. Opts: commit=3D0 [ 25.698046] eth0: no IPv6 routers present [ 35.368687] hda-intel: IRQ timing workaround is activated for card #1.= Suggest a bigger bdl_pos_adj. [36705.284578] device vnet0 entered promiscuous mode [36705.285370] virbr0: topology change detected, propagating [36705.285378] virbr0: port 2(vnet0) entering forwarding state [36705.285385] virbr0: port 2(vnet0) entering forwarding state [36705.286254] ADDRCONF(NETDEV_CHANGE): virbr0: link becomes ready [36707.895703] kvm: 23005: cpu0 unhandled rdmsr: 0xc0010112 [36707.895710] kvm: 23005: cpu0 unhandled rdmsr: 0xc0010048 [36708.020087] kvm: 23005: cpu0 unhandled rdmsr: 0xc0010001 [36708.031998] kvm: 23005: cpu1 unhandled rdmsr: 0xc0010048 [36708.043514] kvm: 23005: cpu2 unhandled rdmsr: 0xc0010048 [36708.054914] kvm: 23005: cpu3 unhandled rdmsr: 0xc0010048 [36708.066380] kvm: 23005: cpu4 unhandled rdmsr: 0xc0010048 [36715.938029] vnet0: no IPv6 routers present [38690.504149] EXT4-fs (dm-0): re-mounted. Opts: errors=3Dremount-ro [39184.854596] device vnet1 entered promiscuous mode [39184.855525] virbr0: topology change detected, propagating [39184.855528] virbr0: port 3(vnet1) entering forwarding state [39184.855530] virbr0: port 3(vnet1) entering forwarding state [39195.154008] vnet1: no IPv6 routers present [39207.840091] CE: hpet increased min_delta_ns to 20113 nsec [39644.807250] virbr0: port 3(vnet1) entering forwarding state [39644.808751] virbr0: port 3(vnet1) entering disabled state [39644.808813] device vnet1 left promiscuous mode [39644.808815] virbr0: port 3(vnet1) entering disabled state [39658.180601] device vnet1 entered promiscuous mode [39658.181368] virbr0: topology change detected, propagating [39658.181372] virbr0: port 3(vnet1) entering forwarding state [39658.181374] virbr0: port 3(vnet1) entering forwarding state [39668.786011] vnet1: no IPv6 routers present [40851.730035] device virbr0 entered promiscuous mode [40920.386263] virbr0: port 3(vnet1) entering forwarding state [40920.387710] virbr0: port 3(vnet1) entering disabled state [40920.387768] device vnet1 left promiscuous mode [40920.387772] virbr0: port 3(vnet1) entering disabled state [40922.258238] device vnet1 entered promiscuous mode [40922.259464] virbr0: topology change detected, propagating [40922.259468] virbr0: port 3(vnet1) entering forwarding state [40922.259470] virbr0: port 3(vnet1) entering forwarding state [40932.530006] vnet1: no IPv6 routers present [41016.118628] device virbr0 left promiscuous mode [41016.230055] device virbr0 entered promiscuous mode [41531.291923] device virbr0 left promiscuous mode [41531.365066] device virbr0 entered promiscuous mode [42292.818525] wireshark[27884] general protection ip:7fb47b13599e sp:7ff= f89e55810 error:0 in libgtk-x11-2.0.so.0.2400.4[7fb47b002000+43f000] [42294.087709] device virbr0 left promiscuous mode [42304.602068] device virbr0 entered promiscuous mode [42628.540519] device virbr0 left promiscuous mode [42729.632066] device virbr0 entered promiscuous mode [42995.447309] device virbr0 left promiscuous mode [42995.554088] device virbr0 entered promiscuous mode [46778.478903] device virbr0 left promiscuous mode [46778.625036] device virbr0 entered promiscuous mode [47418.615960] device virbr0 left promiscuous mode [47418.697044] device virbr0 entered promiscuous mode [47504.938446] BUG: unable to handle kernel paging request at ffff884058e= c3270 [47504.938488] IP: [] xfs_is_delayed_page+0x41/0xa0 [47504.938520] PGD 1a24063 PUD 0=20 [47504.938536] Oops: 0000 [#1] PREEMPT SMP=20 [47504.938558] CPU 5=20 [47504.938568] Modules linked in: ipt_REDIRECT xt_CHECKSUM iptable_mangle= bridge stp llc powernow_k8 cpufreq_stats cpufreq_powersave cpufreq_ondem= and cpufreq_conservative cpufreq_userspace rfcomm bnep binfmt_misc fuse i= pt_REJECT xt_state xt_tcpudp ipv6 iptable_filter ipt_MASQUERADE iptable_n= at nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 ip_tables x_table= s radeon ttm drm_kms_helper drm i2c_algo_bit cfbcopyarea cfbimgblt cfbfil= lrect freq_table mperf it87 hwmon_vid loop firewire_sbp2 snd_hda_codec_hd= mi hid_a4tech usbhid snd_hda_codec_realtek k10temp hwmon snd_hda_intel sn= d_hda_codec snd_hwdep snd_pcm_oss snd_mixer_oss evdev i2c_piix4 btusb blu= etooth snd_pcm snd_seq_oss snd_seq_midi_event snd_seq snd_timer snd_seq_d= evice snd soundcore snd_page_alloc parport_pc parport button wmi processo= r thermal_sys ohci_hcd sr_mod cdrom firewire_ohci firewire_core crc_itu_t= ssb ehci_hcd xhci_hcd usbcore [last unloaded: scsi_wait_scan] [47504.938999]=20 [47504.939002] Pid: 11511, comm: flush-9:1 Not tainted 3.0.0-rc7 #157 Gig= abyte Technology Co., Ltd. GA-870A-UD3/GA-870A-UD3 [47504.939002] RIP: 0010:[] [] xfs_i= s_delayed_page+0x41/0xa0 [47504.939002] RSP: 0018:ffff8802256836e0 EFLAGS: 00010287 [47504.939002] RAX: 0000000000000001 RBX: ffffea0000c01c08 RCX: 000000000= 0000020 [47504.939002] RDX: ffff884058ec3270 RSI: 0000000000000003 RDI: ffff88005= 8ec3270 [47504.939002] RBP: ffff8802256836e0 R08: 00000000000fe2e8 R09: ffff88022= 5683cb8 [47504.939002] R10: 57ffe6ff91801bd0 R11: 0000000000000024 R12: 000000000= 0000001 [47504.939002] R13: ffff880100fa7190 R14: ffff880225683900 R15: ffff88022= 5683cb8 [47504.939002] FS: 00007fc28c6e8700(0000) GS:ffff88022fd40000(0000) knlG= S:00000000f74286c0 [47504.939002] CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b [47504.939002] CR2: ffff884058ec3270 CR3: 0000000225c70000 CR4: 000000000= 00006e0 [47504.939002] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 000000000= 0000000 [47504.939002] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 000000000= 0000400 [47504.939002] Process flush-9:1 (pid: 11511, threadinfo ffff880225682000= , task ffff8800cfa52d20) [47504.939002] Stack: [47504.939002] ffff880225683780 ffffffff8127cb01 00000000000fe2db ffff88= 02256838e0 [47504.939002] 00000000000fe2e8 ffff880225683cb8 ffff880225683900 ffff88= 02256838f0 [47504.939002] ffff8802256838e0 0000000100000000 ffff880058ec3208 000000= 00fe2e8000 [47504.939002] Call Trace: [47504.939002] [] xfs_convert_page.isra.10+0xa1/0x300 [47504.939002] [] xfs_cluster_write+0xf5/0x160 [47504.939002] [] xfs_vm_writepage+0x481/0x510 [47504.939002] [] __writepage+0x12/0x40 [47504.939002] [] write_cache_pages+0x1b9/0x4c0 [47504.939002] [] ? up+0x2c/0x50 [47504.939002] [] ? bdi_set_max_ratio+0x90/0x90 [47504.939002] [] generic_writepages+0x3b/0x60 [47504.939002] [] xfs_vm_writepages+0x4c/0x60 [47504.939002] [] do_writepages+0x1c/0x30 [47504.939002] [] writeback_single_inode+0xf6/0x260 [47504.939002] [] writeback_sb_inodes+0xdb/0x1b0 [47504.939002] [] writeback_inodes_wb+0x7b/0x150 [47504.939002] [] wb_writeback+0x4cb/0x520 [47504.939002] [] wb_check_old_data_flush+0xc8/0xd0 [47504.939002] [] wb_do_writeback+0x18d/0x270 [47504.939002] [] ? del_timer_sync+0x32/0x50 [47504.939002] [] ? init_timer_deferrable_key+0x20/0x2= 0 [47504.939002] [] bdi_writeback_thread+0x84/0x300 [47504.939002] [] ? call_rcu+0x10/0x20 [47504.939002] [] ? wb_do_writeback+0x270/0x270 [47504.939002] [] kthread+0x87/0x90 [47504.939002] [] kernel_thread_helper+0x4/0x10 [47504.939002] [] ? kthread_worker_fn+0x190/0x190 [47504.939002] [] ? gs_change+0xb/0xb [47504.939002] Code: 31 c0 80 e6 08 74 4b 48 8b 07 f6 c4 08 74 6f 48 8b 7= f 10 31 c0 48 89 fa eb 11 31 c0 83 fe 02 0f 94 c0 48 8b 52 08 48 39 d7 74= 27=20 [47504.939002] 8b 0a 80 e5 10 75 e7 48 8b 0a 80 e5 02 74 27 48 8b 52 08 = 31=20 [47504.939002] RIP [] xfs_is_delayed_page+0x41/0xa0 [47504.939002] RSP [47504.939002] CR2: ffff884058ec3270 [47504.939002] ---[ end trace 3745557f071632d2 ]--- [47531.043941] device virbr0 left promiscuous mode [47531.117039] device virbr0 entered promiscuous mode --------------020806050600070205080606-- From aelder@sgi.com Thu Jul 21 17:05:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LM5hvv046968 for ; Thu, 21 Jul 2011 17:05:43 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id B39AEAC004; Thu, 21 Jul 2011 15:05:39 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6LM5dOd016461; Thu, 21 Jul 2011 17:05:39 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6LM5dxF016460; Thu, 21 Jul 2011 17:05:39 -0500 From: Alex Elder Message-Id: <201107212205.p6LM5dxF016460@stout.americas.sgi.com> Date: Thu, 21 Jul 2011 17:05:39 -0500 To: xfs@oss.sgi.com Subject: [PATCH] xfs: set cursor in xfs_ail_splice() even when AIL was empty User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In xfs_ail_splice(), if a cursor is provided it is updated to point to the last item on the list to be spliced into the AIL. But if the AIL was found to be empty, the cursor (if provided) is just initialized instead. There is no reason the null AIL case needs to be any different. And treating it the same way allows this code to be rearranged a bit, with a somewhat tidier result. Signed-off-by: Alex Elder --- fs/xfs/xfs_trans_ail.c | 68 ++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 40 deletions(-) Index: b/fs/xfs/xfs_trans_ail.c =================================================================== --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -303,55 +303,42 @@ xfs_trans_ail_cursor_last( */ static void xfs_ail_splice( - struct xfs_ail *ailp, - struct xfs_ail_cursor *cur, - struct list_head *list, - xfs_lsn_t lsn) + struct xfs_ail *ailp, + struct xfs_ail_cursor *cur, + struct list_head *list, + xfs_lsn_t lsn) { - struct xfs_log_item *lip = cur ? cur->item : NULL; - struct xfs_log_item *next_lip; + struct xfs_log_item *lip; /* - * Get a new cursor if we don't have a placeholder or the existing one - * has been invalidated. + * Use the cursor to determine the insertion point if one is + * provided. If not, or if the one we got is not valid, + * find the place in the AIL where the items belong. */ - if (!lip || (__psint_t)lip & 1) { + lip = cur ? cur->item : NULL; + if (!lip || (__psint_t) lip & 1) lip = __xfs_trans_ail_cursor_last(ailp, lsn); - if (!lip) { - /* The list is empty, so just splice and return. */ - if (cur) - cur->item = NULL; - list_splice(list, &ailp->xa_ail); - return; - } - } + /* + * If a cursor is provided, we know we're processing the AIL + * in lsn order, and future items to be spliced in will + * follow the last one being inserted now. Update the + * cursor to point to that last item, now while we have a + * reliable pointer to it. + */ + if (cur) + cur->item = list_entry(list->prev, struct xfs_log_item, li_ail); /* - * Our cursor points to the item we want to insert _after_, so we have - * to update the cursor to point to the end of the list we are splicing - * in so that it points to the correct location for the next splice. - * i.e. before the splice - * - * lsn -> lsn -> lsn + x -> lsn + x ... - * ^ - * | cursor points here - * - * After the splice we have: - * - * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... - * ^ ^ - * | cursor points here | needs to move here - * - * So we set the cursor to the last item in the list to be spliced - * before we execute the splice, resulting in the cursor pointing to - * the correct item after the splice occurs. + * Finally perform the splice. Unless the AIL was empty, + * lip points to the item in the AIL _after_ which the new + * items should go. If lip is null the AIL was empty, so + * the new items go at the head of the AIL. */ - if (cur) { - next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); - cur->item = next_lip; - } - list_splice(list, &lip->li_ail); + if (lip) + list_splice(list, &lip->li_ail); + else + list_splice(list, &ailp->xa_ail); } /* @@ -682,6 +669,7 @@ xfs_trans_ail_update_bulk( int i; LIST_HEAD(tmp); + ASSERT(nr_items > 0); /* Not required, but true. */ mlip = xfs_ail_min(ailp); for (i = 0; i < nr_items; i++) { From tytso@thunk.org Thu Jul 21 17:57:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LMvk3Q048431 for ; Thu, 21 Jul 2011 17:57:46 -0500 X-ASG-Debug-ID: 1311289064-6568036e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55D5BEED6E7 for ; Thu, 21 Jul 2011 15:57:44 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id g1OrIutiTglSJ8hy for ; Thu, 21 Jul 2011 15:57:44 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk2BY-00058j-MS; Thu, 21 Jul 2011 22:57:40 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk2BW-0006e0-Vz; Thu, 21 Jul 2011 18:57:38 -0400 Date: Thu, 21 Jul 2011 18:57:38 -0400 From: "Ted Ts'o" To: Christoph Hellwig Cc: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Re: Problems building xfsprogs Subject: Re: Problems building xfsprogs Message-ID: <20110721225738.GA25092@thunk.org> References: <20110720175918.GB17971@thunk.org> <20110721090619.GA26263@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110721090619.GA26263@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311289065 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69602 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:06:19AM -0400, Christoph Hellwig wrote: > > I works fine for me on various releases of Debian, Fedsora, RHEL and > SLES. But all he machines I've quickly checked seem to have an autoconf > that can handle -I, so could you please send this pach with a proper > signoff and description? I figured what the core problem is. There's a subtle and hidden dependency in xfsprogs for an autoconf version which is 2.50 or above. In Debian and Ubuntu, if autoconf 2.13 is installed, autoconf will try to automatically figure out whether the configure.in requires 2.13 or 2.50 (since the autoconf maintainers didn't understand the concept of "backwards compatibility"). Unfortunately, it got this wrong. Using an explicit AC_PREREQ(2.50) fixes this. I'll be sending patches shortly.... - Ted From tytso@thunk.org Thu Jul 21 18:50:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNogUE049900 for ; Thu, 21 Jul 2011 18:50:43 -0500 X-ASG-Debug-ID: 1311292241-1ff003a70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 90BE0EEDEED for ; Thu, 21 Jul 2011 16:50:41 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id qASNZGu18MuzVcgg for ; Thu, 21 Jul 2011 16:50:41 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk30p-0005A3-Au; Thu, 21 Jul 2011 23:50:39 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk30n-00015a-U7; Thu, 21 Jul 2011 19:50:37 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSPROGS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Subject: [PATCH XFSPROGS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Date: Thu, 21 Jul 2011 19:50:35 -0400 Message-Id: <1311292237-4155-1-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292241 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69605 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Debian/Ubuntu systems, if autoconf version 2.13 is installed, autoconf will try to automatically figure out whether autoconf 2.13 or something more modern is required (since the autoconf maintainers, curses be upon them, didn't bother to maintain compatibility between autoconf 2.13 and 2.50). Unfortunately, the hueristics aren't perfect, and although the configure.in file looks superficially like it will be compatible with autoconf 2.13, it isn't. You will end up with a number of very subtle compilation failures if you use autoconf 2.13. So declare a requirement for autoconf 2.50 using AC_PREREQ(2.50). Signed-off-by: "Theodore Ts'o" --- configure.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/configure.in b/configure.in index 10c4c61..664c0e9 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,5 @@ AC_INIT(include/libxfs.h) +AC_PREREQ(2.50) AC_CONFIG_AUX_DIR([.]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_HEADER(include/platform_defs.h) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 18:50:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNojVO049912 for ; Thu, 21 Jul 2011 18:50:45 -0500 X-ASG-Debug-ID: 1311292244-05a303e40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E13C48C50B for ; Thu, 21 Jul 2011 16:50:44 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id GhJCCCOG2TaicWb8 for ; Thu, 21 Jul 2011 16:50:44 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk30u-0005AG-57; Thu, 21 Jul 2011 23:50:44 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk30o-00015c-2j; Thu, 21 Jul 2011 19:50:38 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Date: Thu, 21 Jul 2011 19:50:36 -0400 Message-Id: <1311292237-4155-2-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty In-Reply-To: <1311292237-4155-1-git-send-email-tytso@mit.edu> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292244 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The tree currently will blow out with a build failure if -DDEBUG is specified. Signed-off-by: "Theodore Ts'o" --- m4/package_globals.m4 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/m4/package_globals.m4 b/m4/package_globals.m4 index e469671..d2a3e2f 100644 --- a/m4/package_globals.m4 +++ b/m4/package_globals.m4 @@ -17,7 +17,7 @@ AC_DEFUN([AC_PACKAGE_GLOBALS], test -z "$BUILD_VERSION" || pkg_release="$BUILD_VERSION" AC_SUBST(pkg_release) - DEBUG=${DEBUG:-'-DDEBUG'} dnl -DNDEBUG + DEBUG=${DEBUG:-'-DNDEBUG'} dnl -DNDEBUG debug_build="$DEBUG" AC_SUBST(debug_build) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 18:50:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNon2L049929 for ; Thu, 21 Jul 2011 18:50:49 -0500 X-ASG-Debug-ID: 1311292249-059f03ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66B518C50C for ; Thu, 21 Jul 2011 16:50:49 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id t7YKQzrPEdpumPbm for ; Thu, 21 Jul 2011 16:50:49 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk30y-0005AR-HC; Thu, 21 Jul 2011 23:50:48 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk30t-00015h-7X; Thu, 21 Jul 2011 19:50:43 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSPROGS 3/3] mkfs: Link against libuuid after liblkid Subject: [PATCH XFSPROGS 3/3] mkfs: Link against libuuid after liblkid Date: Thu, 21 Jul 2011 19:50:37 -0400 Message-Id: <1311292237-4155-3-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty In-Reply-To: <1311292237-4155-1-git-send-email-tytso@mit.edu> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292249 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The order in which libraries are searched matters if you are using static libraries. Since libblkid uses some functions from libuuid, it needs to come before libuuid in the link line. Signed-off-by: "Theodore Ts'o" --- mkfs/Makefile | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mkfs/Makefile b/mkfs/Makefile index 8b61c2f..75da633 100644 --- a/mkfs/Makefile +++ b/mkfs/Makefile @@ -11,10 +11,6 @@ FSTYP = fstyp HFILES = xfs_mkfs.h CFILES = maxtrres.c proto.c xfs_mkfs.c -LLDLIBS = $(LIBXFS) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) -LTDEPENDENCIES = $(LIBXFS) -LLDFLAGS = -static - ifeq ($(ENABLE_BLKID),yes) LLDLIBS += $(LIBBLKID) CFLAGS += -DENABLE_BLKID @@ -23,6 +19,9 @@ LLDLIBS += $(LIBDISK) LTDEPENDENCIES += $(LIBDISK) endif +LLDLIBS += $(LIBXFS) $(LIBUUID) $(LIBRT) $(LIBPTHREAD) +LTDEPENDENCIES += $(LIBXFS) +LLDFLAGS = -static LSRCFILES = $(FSTYP).c LDIRT = $(FSTYP) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 18:52:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNq6eI049989 for ; Thu, 21 Jul 2011 18:52:06 -0500 X-ASG-Debug-ID: 1311292325-0a6903cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D10F31D8A71F for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id CyJCqsLr21uf2HaA for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk32D-0005Ai-HN; Thu, 21 Jul 2011 23:52:05 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk32C-00018j-Ec; Thu, 21 Jul 2011 19:52:04 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSTESTS 2/3] Build without enabling DEBUG by default Subject: [PATCH XFSTESTS 2/3] Build without enabling DEBUG by default Date: Thu, 21 Jul 2011 19:52:03 -0400 Message-Id: <1311292324-4348-2-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty In-Reply-To: <1311292324-4348-1-git-send-email-tytso@mit.edu> References: <1311292324-4348-1-git-send-email-tytso@mit.edu> X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292325 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Signed-off-by: "Theodore Ts'o" --- m4/package_globals.m4 | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/m4/package_globals.m4 b/m4/package_globals.m4 index 72fbbb7..f468f50 100644 --- a/m4/package_globals.m4 +++ b/m4/package_globals.m4 @@ -15,7 +15,7 @@ AC_DEFUN([AC_PACKAGE_GLOBALS], test -z "$BUILD_VERSION" || pkg_release="$BUILD_VERSION" AC_SUBST(pkg_release) - DEBUG=${DEBUG:-'-DDEBUG'} dnl -DNDEBUG + DEBUG=${DEBUG:-'-DNDEBUG'} dnl -DNDEBUG debug_build="$DEBUG" AC_SUBST(debug_build) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 18:52:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_44 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNq72a049999 for ; Thu, 21 Jul 2011 18:52:07 -0500 X-ASG-Debug-ID: 1311292325-0a63039a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C9C61D8A721 for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id LgJGE3TLz2XKvoAl for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk32D-0005Am-MS; Thu, 21 Jul 2011 23:52:05 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk32C-00018o-Is; Thu, 21 Jul 2011 19:52:04 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSTESTS 3/3] dmapi: fix build failure if libdm is provided via -ldm Subject: [PATCH XFSTESTS 3/3] dmapi: fix build failure if libdm is provided via -ldm Date: Thu, 21 Jul 2011 19:52:04 -0400 Message-Id: <1311292324-4348-3-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty In-Reply-To: <1311292324-4348-1-git-send-email-tytso@mit.edu> References: <1311292324-4348-1-git-send-email-tytso@mit.edu> X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292326 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.50 BSF_RULE7568M Custom Rule 7568M X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The value of $(LIBDM) may be a linker specification -ldm, and not a file. So it's not OK to add this to the dependency, since make will then complain that it doesn't know how to make the target -ldm. Signed-off-by: "Theodore Ts'o" --- dmapi/src/common/cmd/Makefile | 2 +- dmapi/src/sample_hsm/Makefile | 2 +- dmapi/src/suite1/cmd/Makefile | 2 +- dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c | 2 +- dmapi/src/suite2/src/Makefile | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dmapi/src/common/cmd/Makefile b/dmapi/src/common/cmd/Makefile index 4b0e550..4525581 100644 --- a/dmapi/src/common/cmd/Makefile +++ b/dmapi/src/common/cmd/Makefile @@ -38,7 +38,7 @@ include $(BUILDRULES) install install-dev: default -$(TARGETS): $(LLDLIBS) +$(TARGETS): @echo " [CC] $@" $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) diff --git a/dmapi/src/sample_hsm/Makefile b/dmapi/src/sample_hsm/Makefile index 7a4ca8c..55df563 100644 --- a/dmapi/src/sample_hsm/Makefile +++ b/dmapi/src/sample_hsm/Makefile @@ -38,7 +38,7 @@ include $(BUILDRULES) install install-dev: default -$(TARGETS): $(LLDLIBS) +$(TARGETS): @echo " [CC] $@" $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) diff --git a/dmapi/src/suite1/cmd/Makefile b/dmapi/src/suite1/cmd/Makefile index 7e51763..05dbead 100644 --- a/dmapi/src/suite1/cmd/Makefile +++ b/dmapi/src/suite1/cmd/Makefile @@ -61,7 +61,7 @@ include $(BUILDRULES) install install-dev: default -$(TARGETS): $(LLDLIBS) +$(TARGETS): @echo " [CC] $@" $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) diff --git a/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c b/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c index 6b4d0b6..c01dff0 100644 --- a/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c +++ b/dmapi/src/suite1/cmd/probe_punch_xfsctl_hole.c @@ -69,7 +69,7 @@ xfsctl_punch_hole( xfs_flock64_t flock; int fd; - if ((fd = open(path, O_RDWR|O_CREAT)) < 0) { + if ((fd = open(path, O_RDWR|O_CREAT, 0600)) < 0) { perror(path); exit(errno); } diff --git a/dmapi/src/suite2/src/Makefile b/dmapi/src/suite2/src/Makefile index 91a0f00..c5cf6da 100644 --- a/dmapi/src/suite2/src/Makefile +++ b/dmapi/src/suite2/src/Makefile @@ -44,7 +44,7 @@ include $(BUILDRULES) install install-dev: default -$(TARGETS): $(LLDLIBS) +$(TARGETS): @echo " [CC] $@" $(Q)$(LTLINK) $@.c -o $@ $(CFLAGS) $(LDFLAGS) $(LDLIBS) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 18:52:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6LNq6al049991 for ; Thu, 21 Jul 2011 18:52:07 -0500 X-ASG-Debug-ID: 1311292325-548300920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD267EEDEF3 for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id E7RHtA4nKtWRj65x for ; Thu, 21 Jul 2011 16:52:05 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk32D-0005Ah-CX; Thu, 21 Jul 2011 23:52:05 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk32C-00018h-BO; Thu, 21 Jul 2011 19:52:04 -0400 From: "Theodore Ts'o" To: Ext4 Developers List , xfs@oss.sgi.com Cc: "Theodore Ts'o" X-ASG-Orig-Subj: [PATCH XFSTESTS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Subject: [PATCH XFSTESTS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Date: Thu, 21 Jul 2011 19:52:02 -0400 Message-Id: <1311292324-4348-1-git-send-email-tytso@mit.edu> X-Mailer: git-send-email 1.7.4.1.22.gec8e1.dirty X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292325 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69605 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Debian/Ubuntu systems, if autoconf version 2.13 is installed, autoconf will try to automatically figure out whether autoconf 2.13 or something more modern is required (since the autoconf maintainers, curses be upon them, didn't bother to maintain compatibility between autoconf 2.13 and 2.50). Unfortunately, the hueristics aren't perfect, and although the configure.in file looks superficially like it will be compatible with autoconf 2.13, it isn't. You will end up with a number of very subtle compilation failures if you use autoconf 2.13. So declare a requirement for autoconf 2.50 using AC_PREREQ(2.50). Signed-off-by: "Theodore Ts'o" --- configure.in | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/configure.in b/configure.in index 45b7fd1..c697b4f 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,5 @@ AC_INIT(src/xfsctl.c) +AC_PREREQ(2.50) AC_PACKAGE_GLOBALS(xfstests) AC_PACKAGE_UTILITIES(xfstests) -- 1.7.4.1.22.gec8e1.dirty From tytso@thunk.org Thu Jul 21 19:11:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0BgQV050763 for ; Thu, 21 Jul 2011 19:11:42 -0500 X-ASG-Debug-ID: 1311292483-0a6203d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC9341D8A728 for ; Thu, 21 Jul 2011 16:54:43 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id OuCyEQHsviZcmRhE for ; Thu, 21 Jul 2011 16:54:43 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1Qk34l-0005BB-7A; Thu, 21 Jul 2011 23:54:43 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1Qk34k-00019D-3K; Thu, 21 Jul 2011 19:54:42 -0400 Date: Thu, 21 Jul 2011 19:54:41 -0400 From: "Ted Ts'o" To: Ext4 Developers List , xfs-oss X-ASG-Orig-Subj: Build script for a hermetic build of xfstests Subject: Build script for a hermetic build of xfstests Message-ID: <20110721235441.GB25092@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311292483 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69606 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean With the six patches which I just sent (3 for xfsprogs, 3 for xfstests), I'm now able to build xfstests hermetically using the following script. It's still a bit rough, but I offer it up if anyone else wants to be able to build xfstests without having to worry about hidden dependencies in the distro-supplied /usr/include/xfs directories, etc. - Ted #!/bin/bash -vx DESTDIR=$(pwd)/bld mkdir -p $DESTDIR export CFLAGS="-I$DESTDIR/include" export LDFLAGS="-static -L$DESTDIR/lib" (cd e2fsprogs-libs; ./configure --prefix=/; make ; make DESTDIR=$DESTDIR install) (cd attr; ./configure --prefix=$DESTDIR; make LLDFLAGS=-all-static ; make install-dev ; make install) (cd acl; ./configure --prefix=$DESTDIR; make LLDFLAGS=-all-static; make install-dev; make install) (cd libaio; make prefix=$DESTDIR install) export DIST_ROOT=$DESTDIR export LIBS=-lpthread (cd xfsprogs-dev; make realclean ; make configure ; ./configure --prefix=/; make LLDFLAGS=-all-static BUILD_VERBOSE=1; make install; make install-dev) unset LIBS unset DIST_ROOT export LIBTOOL="/usr/bin/libtool --tag=CC" (cd dmapi; CFLAGS="-I$DESTDIR/include -L$DESTDIR/lib" LDFLAGS=-static ./configure --prefix=$DESTDIR; make LLDFLAGS=-all-static; make install-dev; make install) unset LIBTOOL find . -name \*.la | xargs rm -f # Die, libtool, die!!!! cp $DESTDIR/include/xfs/dmapi.h $DESTDIR/include set export LIBS=-lpthread export CFLAGS="-I$DESTDIR/include -fno-stack-protector" (cd xfstests-dev; ./configure ; make LLDFLAGS=-all-static BUILD_VERBOSE=1) From sekharan@us.ibm.com Thu Jul 21 19:32:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0WYud051362 for ; Thu, 21 Jul 2011 19:32:35 -0500 X-ASG-Debug-ID: 1311294753-5c5c01420000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e34.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3FFE51D8A80E for ; Thu, 21 Jul 2011 17:32:33 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by cuda.sgi.com with ESMTP id 3rJSSAWV6xmhXnMr for ; Thu, 21 Jul 2011 17:32:33 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0WUPu014876 for ; Thu, 21 Jul 2011 18:32:30 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0WUO1142148 for ; Thu, 21 Jul 2011 18:32:30 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0WTTE015371 for ; Thu, 21 Jul 2011 18:32:29 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0WRw0015275; Thu, 21 Jul 2011 18:32:28 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:32:26 -0700 Message-Id: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 00/12] Remove number of macros from xfs_buf.h Subject: [PATCH 00/12] Remove number of macros from xfs_buf.h X-Barracuda-Connect: e34.co.us.ibm.com[32.97.110.152] X-Barracuda-Start-Time: 1311294754 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello All, Here are few patchset to remove some of the macro definitions from fs/xfs/linux-2.6/xfs_buf.h. Please review and comment. Thanks & Regards, chandra From sekharan@us.ibm.com Thu Jul 21 19:32:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0WkjP051379 for ; Thu, 21 Jul 2011 19:32:46 -0500 X-ASG-Debug-ID: 1311294765-2e9900e20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F13128C6E5 for ; Thu, 21 Jul 2011 17:32:45 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id pXx0e9Y2VwuGfT5c for ; Thu, 21 Jul 2011 17:32:45 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0BWBX030798 for ; Thu, 21 Jul 2011 20:11:32 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0Whmu1675410 for ; Thu, 21 Jul 2011 20:32:43 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0Wgwp014340 for ; Thu, 21 Jul 2011 21:32:42 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0WaDP013625; Thu, 21 Jul 2011 21:32:37 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:32:35 -0700 Message-Id: <20110722003235.21069.37370.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS Subject: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1311294765 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition of the macro XFS_BUF_BFLAGS and its usage. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_trans_buf.c | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b2b4119..969fd15 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1094,7 +1094,7 @@ STATIC int xfs_bioerror_relse( struct xfs_buf *bp) { - int64_t fl = XFS_BUF_BFLAGS(bp); + int64_t fl = bp->b_flags; /* * No need to wait until the buffer is unpinned. * We aren't flushing it. diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6a83b46..6b6c25f 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -232,7 +232,6 @@ extern void xfs_buf_terminate(void); ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) -#define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) #define XFS_BUF_ZEROFLAGS(bp) \ ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 15584fc..1bc04d4 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -430,7 +430,7 @@ shutdown_abort: if (XFS_BUF_ISSTALE(bp) && XFS_BUF_ISDELAYWRITE(bp)) xfs_notice(mp, "about to pop assert, bp == 0x%p", bp); #endif - ASSERT((XFS_BUF_BFLAGS(bp) & (XBF_STALE|XBF_DELWRI)) != + ASSERT((bp->b_flags & (XBF_STALE|XBF_DELWRI)) != (XBF_STALE|XBF_DELWRI)); trace_xfs_trans_read_buf_shut(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:32:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0WtJI051398 for ; Thu, 21 Jul 2011 19:32:55 -0500 X-ASG-Debug-ID: 1311294774-2e10010d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e37.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C68B68C737 for ; Thu, 21 Jul 2011 17:32:54 -0700 (PDT) Received: from e37.co.us.ibm.com (e37.co.us.ibm.com [32.97.110.158]) by cuda.sgi.com with ESMTP id AVWD8jzcSQTCyZfJ for ; Thu, 21 Jul 2011 17:32:54 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e37.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0TjG1013420 for ; Thu, 21 Jul 2011 18:29:45 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0WnTf112632 for ; Thu, 21 Jul 2011 18:32:49 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LIWm9s006352 for ; Thu, 21 Jul 2011 12:32:48 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LIWmnI006334; Thu, 21 Jul 2011 12:32:48 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:32:48 -0700 Message-Id: <20110722003248.21069.10452.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS X-Barracuda-Connect: e37.co.us.ibm.com[32.97.110.158] X-Barracuda-Start-Time: 1311294774 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_ZEROFLAGS. In the specific contexts, not all flags need to be cleared. Hence the simplification. Rationale for xfs_log.c: from hch: XBF_READ and XBF_DELWRI will never be set here, XBF_WRITE XBF_ASYNC, and XBF_SYNCIO are set just below. Hence clearing only XBF_FUA and XBF_FLUSH would suffice. Rationale for xfs_log_recover.c from hch: XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with in xfs_bwrite a few lines down. Hence clearing only XBF_SYNCIO, XBF_FUA and XBF_FLUSH would suffice. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 5 ----- fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 2 +- 3 files changed, 3 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6b6c25f..d7df7b6 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -231,11 +231,6 @@ extern void xfs_buf_terminate(void); #define xfs_buf_target_name(target) \ ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) - -#define XFS_BUF_ZEROFLAGS(bp) \ - ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ - XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) - void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); #define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 06ff843..5319a95 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1354,7 +1354,7 @@ xlog_sync(xlog_t *log, } XFS_BUF_SET_COUNT(bp, count); bp->b_fspriv = iclog; - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; @@ -1401,7 +1401,7 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); bp->b_fspriv = iclog; - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 8fe4206..3913b2f 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -265,7 +265,7 @@ xlog_bwrite( ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); - XFS_BUF_ZEROFLAGS(bp); + bp->b_flags &= ~(XBF_SYNCIO|XBF_FUA|XBF_FLUSH); XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); xfs_buf_lock(bp); -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:32:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0WvuA051412 for ; Thu, 21 Jul 2011 19:32:57 -0500 X-ASG-Debug-ID: 1311294776-64b9010e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e8.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 050EDEEEC4E for ; Thu, 21 Jul 2011 17:32:56 -0700 (PDT) Received: from e8.ny.us.ibm.com (e8.ny.us.ibm.com [32.97.182.138]) by cuda.sgi.com with ESMTP id GkF1PMs3d9o3Cd5q for ; Thu, 21 Jul 2011 17:32:56 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e8.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0KKBL020814 for ; Thu, 21 Jul 2011 20:20:20 -0400 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0WtLi080488 for ; Thu, 21 Jul 2011 20:32:55 -0400 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LIWsBF009081 for ; Thu, 21 Jul 2011 12:32:54 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LIWrYk009076; Thu, 21 Jul 2011 12:32:53 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:32:54 -0700 Message-Id: <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Subject: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family X-Barracuda-Connect: e8.ny.us.ibm.com[32.97.182.138] X-Barracuda-Start-Time: 1311294777 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and usage of the macros XFS_BUF_ERROR, XFS_BUF_GETERROR and XFS_BUF_ISERROR. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.c | 6 +++--- fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 3 ++- fs/xfs/xfs_alloc.c | 7 +++---- fs/xfs/xfs_attr.c | 3 +-- fs/xfs/xfs_btree.c | 17 ++++++----------- fs/xfs/xfs_buf_item.c | 4 ++-- fs/xfs/xfs_da_btree.c | 2 +- fs/xfs/xfs_ialloc.c | 5 ++--- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 12 +++++------- fs/xfs/xfs_rtalloc.c | 2 +- fs/xfs/xfs_rw.c | 6 +++--- fs/xfs/xfs_trans_buf.c | 15 +++++++-------- fs/xfs/xfs_vnodeops.c | 4 ++-- 16 files changed, 41 insertions(+), 55 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 969fd15..704418a 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -596,7 +596,7 @@ _xfs_buf_read( bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); status = xfs_buf_iorequest(bp); - if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) + if (status || bp->b_error || (flags & XBF_ASYNC)) return status; return xfs_buf_iowait(bp); } @@ -1069,7 +1069,7 @@ xfs_bioerror( /* * No need to wait until the buffer is unpinned, we aren't flushing it. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); /* * We're calling xfs_buf_ioend, so delete XBF_DONE flag. @@ -1115,7 +1115,7 @@ xfs_bioerror_relse( * There's no reason to mark error for * ASYNC buffers. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_FINISH_IOWAIT(bp); } else { xfs_buf_relse(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index d7df7b6..c14297c 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -245,10 +245,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDELAYWRITE(bp) xfs_buf_delwri_dequeue(bp) #define XFS_BUF_ISDELAYWRITE(bp) ((bp)->b_flags & XBF_DELWRI) -#define XFS_BUF_ERROR(bp,no) xfs_buf_ioerror(bp,no) -#define XFS_BUF_GETERROR(bp) xfs_buf_geterror(bp) -#define XFS_BUF_ISERROR(bp) (xfs_buf_geterror(bp) ? 1 : 0) - #define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE) #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 837f311..e7e35fb 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -403,7 +403,8 @@ xfs_qm_dqalloc( dqp->q_blkno, mp->m_quotainfo->qi_dqchunklen, 0); - if (!bp || (error = XFS_BUF_GETERROR(bp))) + error = xfs_buf_geterror(bp); + if (error) goto error1; /* * Make a chunk of dquots out of this buffer and log diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 1e00b3e..bdd9cb5 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -451,8 +451,7 @@ xfs_alloc_read_agfl( XFS_FSS_TO_BB(mp, 1), 0, &bp); if (error) return error; - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGFL, XFS_AGFL_REF); *bpp = bp; return 0; @@ -2116,7 +2115,7 @@ xfs_read_agf( if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!(*bpp)->b_error); agf = XFS_BUF_TO_AGF(*bpp); /* @@ -2168,7 +2167,7 @@ xfs_alloc_read_agf( return error; if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!(*bpp)->b_error); agf = XFS_BUF_TO_AGF(*bpp); pag = xfs_perag_get(mp, agno); diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index cbae424..160bcdc 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c @@ -2121,8 +2121,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args) bp = xfs_buf_get(mp->m_ddev_targp, dblkno, blkcnt, XBF_LOCK | XBF_DONT_BLOCK); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); tmp = (valuelen < XFS_BUF_SIZE(bp)) ? valuelen : XFS_BUF_SIZE(bp); diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index cabf4b5..2b9fd38 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -275,8 +275,7 @@ xfs_btree_dup_cursor( return error; } new->bc_bufs[i] = bp; - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); } else new->bc_bufs[i] = NULL; } @@ -467,8 +466,7 @@ xfs_btree_get_bufl( ASSERT(fsbno != NULLFSBLOCK); d = XFS_FSB_TO_DADDR(mp, fsbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -491,8 +489,7 @@ xfs_btree_get_bufs( ASSERT(agbno != NULLAGBLOCK); d = XFS_AGB_TO_DADDR(mp, agno, agbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -632,7 +629,7 @@ xfs_btree_read_bufl( mp->m_bsize, lock, &bp))) { return error; } - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); if (bp) XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval); *bpp = bp; @@ -973,8 +970,7 @@ xfs_btree_get_buf_block( *bpp = xfs_trans_get_buf(cur->bc_tp, mp->m_ddev_targp, d, mp->m_bsize, flags); - ASSERT(*bpp); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); *block = XFS_BUF_TO_BLOCK(*bpp); return 0; @@ -1006,8 +1002,7 @@ xfs_btree_read_buf_block( if (error) return error; - ASSERT(*bpp != NULL); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); xfs_btree_set_refs(cur, *bpp); *block = XFS_BUF_TO_BLOCK(*bpp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 8849291..38417ab 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -960,7 +960,7 @@ xfs_buf_iodone_callbacks( static ulong lasttime; static xfs_buftarg_t *lasttarg; - if (likely(!XFS_BUF_GETERROR(bp))) + if (likely(!xfs_buf_geterror(bp))) goto do_callbacks; /* @@ -991,7 +991,7 @@ xfs_buf_iodone_callbacks( * around. */ if (XFS_BUF_ISASYNC(bp)) { - XFS_BUF_ERROR(bp, 0); /* errno of 0 unsets the flag */ + xfs_buf_ioerror(bp, 0); /* errno of 0 unsets the flag */ if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 2925726..5d9290d 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2040,7 +2040,7 @@ xfs_da_do_buf( case 0: bp = xfs_trans_get_buf(trans, mp->m_ddev_targp, mappedbno, nmapped, 0); - error = bp ? XFS_BUF_GETERROR(bp) : XFS_ERROR(EIO); + error = bp ? bp->b_error : XFS_ERROR(EIO); break; case 1: case 2: diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index dd5628b..9f24ec2 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -202,8 +202,7 @@ xfs_ialloc_inode_init( fbuf = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize * blks_per_cluster, XBF_LOCK); - ASSERT(fbuf); - ASSERT(!XFS_BUF_GETERROR(fbuf)); + ASSERT(!xfs_buf_geterror(fbuf)); /* * Initialize all inodes in this buffer and then log them. @@ -1486,7 +1485,7 @@ xfs_read_agi( if (error) return error; - ASSERT(*bpp && !XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); agi = XFS_BUF_TO_AGI(*bpp); /* diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 3cc21dd..bdb47b2 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2473,7 +2473,7 @@ cluster_corrupt_out: if (bp->b_iodone) { XFS_BUF_UNDONE(bp); XFS_BUF_STALE(bp); - XFS_BUF_ERROR(bp,EIO); + xfs_buf_ioerror(bp, EIO); xfs_buf_ioend(bp, 0); } else { XFS_BUF_STALE(bp); diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5319a95..0a7930a 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -878,7 +878,7 @@ xlog_iodone(xfs_buf_t *bp) /* * Race to shutdown the filesystem if we see an error. */ - if (XFS_TEST_ERROR((XFS_BUF_GETERROR(bp)), l->l_mp, + if (XFS_TEST_ERROR((xfs_buf_geterror(bp)), l->l_mp, XFS_ERRTAG_IODONE_IOERR, XFS_RANDOM_IODONE_IOERR)) { xfs_ioerror_alert("xlog_iodone", l->l_mp, bp, XFS_BUF_ADDR(bp)); XFS_BUF_STALE(bp); @@ -1248,7 +1248,7 @@ xlog_bdstrat( struct xlog_in_core *iclog = bp->b_fspriv; if (iclog->ic_state & XLOG_STATE_IOERROR) { - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_STALE(bp); xfs_buf_ioend(bp, 0); /* diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 3913b2f..2eee6e2 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -360,7 +360,7 @@ STATIC void xlog_recover_iodone( struct xfs_buf *bp) { - if (XFS_BUF_GETERROR(bp)) { + if (bp->b_error) { /* * We're not going to bother about retrying * this during recovery. One strike! @@ -2135,15 +2135,14 @@ xlog_recover_buffer_pass2( bp = xfs_buf_read(mp->m_ddev_targp, buf_f->blf_blkno, buf_f->blf_len, buf_flags); - if (XFS_BUF_ISERROR(bp)) { + error = bp->b_error; + if (error) { xfs_ioerror_alert("xlog_recover_do..(read#1)", mp, bp, buf_f->blf_blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); return error; } - error = 0; if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); } else if (buf_f->blf_flags & @@ -2227,14 +2226,13 @@ xlog_recover_inode_pass2( bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len, XBF_LOCK); - if (XFS_BUF_ISERROR(bp)) { + error = bp->b_error; + if (error) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, bp, in_f->ilf_blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); goto error; } - error = 0; ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset); diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 8f76fdf..cb8132c 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -883,7 +883,7 @@ xfs_rtbuf_get( if (error) { return error; } - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); *bpp = bp; return 0; } diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index d6d6fdf..d1f76f8 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -106,7 +106,7 @@ xfs_ioerror_alert( " (\"%s\") error %d buf count %zd", XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), (__uint64_t)blkno, func, - XFS_BUF_GETERROR(bp), XFS_BUF_COUNT(bp)); + bp->b_error, XFS_BUF_COUNT(bp)); } /* @@ -137,8 +137,8 @@ xfs_read_buf( bp = xfs_buf_read(target, blkno, len, flags); if (!bp) return XFS_ERROR(EIO); - error = XFS_BUF_GETERROR(bp); - if (bp && !error && !XFS_FORCED_SHUTDOWN(mp)) { + error = bp->b_error; + if (!error && !XFS_FORCED_SHUTDOWN(mp)) { *bpp = bp; } else { *bpp = NULL; diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 1bc04d4..f9f1bf6 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -194,7 +194,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, return NULL; } - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!bp->b_error); _xfs_trans_bjoin(tp, bp, 1); trace_xfs_trans_get_buf(bp->b_fspriv); @@ -293,10 +293,10 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? EAGAIN : XFS_ERROR(ENOMEM); - if (XFS_BUF_GETERROR(bp) != 0) { + if (bp->b_error) { + error = bp->b_error; xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); return error; } @@ -330,7 +330,7 @@ xfs_trans_read_buf( ASSERT(xfs_buf_islocked(bp)); ASSERT(bp->b_transp == tp); ASSERT(bp->b_fspriv != NULL); - ASSERT((XFS_BUF_ISERROR(bp)) == 0); + ASSERT(!bp->b_error); if (!(XFS_BUF_ISDONE(bp))) { trace_xfs_trans_read_buf_io(bp, _RET_IP_); ASSERT(!XFS_BUF_ISASYNC(bp)); @@ -386,10 +386,9 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? 0 : XFS_ERROR(ENOMEM); } - if (XFS_BUF_GETERROR(bp) != 0) { - XFS_BUF_SUPER_STALE(bp); - error = XFS_BUF_GETERROR(bp); - + if (bp->b_error) { + error = bp->b_error; + XFS_BUF_SUPER_STALE(bp); xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); if (tp->t_flags & XFS_TRANS_DIRTY) diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 88d1214..97daa35 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -83,7 +83,7 @@ xfs_readlink_bmap( bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); - error = XFS_BUF_GETERROR(bp); + error = bp->b_error; if (error) { xfs_ioerror_alert("xfs_readlink", ip->i_mount, bp, XFS_BUF_ADDR(bp)); @@ -1648,7 +1648,7 @@ xfs_symlink( byte_cnt = XFS_FSB_TO_B(mp, mval[n].br_blockcount); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, BTOBB(byte_cnt), 0); - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); if (pathlen < byte_cnt) { byte_cnt = pathlen; } -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_102, J_CHICKENPOX_63,J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0X811051437 for ; Thu, 21 Jul 2011 19:33:08 -0500 X-ASG-Debug-ID: 1311294787-58af01620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e36.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 78BFD1D8A83B for ; Thu, 21 Jul 2011 17:33:07 -0700 (PDT) Received: from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154]) by cuda.sgi.com with ESMTP id 1Xelzw5aBQ4Om7uV for ; Thu, 21 Jul 2011 17:33:07 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e36.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0QqTE012863 for ; Thu, 21 Jul 2011 18:26:52 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0X1XO142006 for ; Thu, 21 Jul 2011 18:33:01 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LIWX19028092 for ; Thu, 21 Jul 2011 12:32:33 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LIWWWw028043; Thu, 21 Jul 2011 12:32:33 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:00 -0700 Message-Id: <20110722003259.21069.3544.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family Subject: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family X-Barracuda-Connect: e36.co.us.ibm.com[32.97.110.154] X-Barracuda-Start-Time: 1311294788 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and uses of the macros XFS_BUF_BUSY, XFS_BUF_UNBUSY, and XFS_BUF_ISBUSY. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 1 - fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 4 ---- fs/xfs/xfs_buf_item.c | 2 -- fs/xfs/xfs_log.c | 4 ---- fs/xfs/xfs_log_recover.c | 2 -- fs/xfs/xfs_trans_buf.c | 9 --------- 7 files changed, 0 insertions(+), 26 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 704418a..ae2c2e7 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -679,7 +679,6 @@ xfs_buf_read_uncached( /* set up the buffer for a read IO */ XFS_BUF_SET_ADDR(bp, daddr); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); xfsbdstrat(mp, bp); error = xfs_buf_iowait(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index c14297c..ce5c7e2 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -249,10 +249,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) -#define XFS_BUF_BUSY(bp) do { } while (0) -#define XFS_BUF_UNBUSY(bp) do { } while (0) -#define XFS_BUF_ISBUSY(bp) (1) - #define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC) #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index e7e35fb..772ae2a 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -318,7 +318,6 @@ xfs_qm_init_dquot_blk( int curid, i; ASSERT(tp); - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); @@ -535,7 +534,6 @@ xfs_qm_dqtobp( return XFS_ERROR(error); } - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); /* @@ -554,7 +552,6 @@ xfs_qm_dqtobp( xfs_trans_brelse(tp, bp); return XFS_ERROR(EIO); } - XFS_BUF_BUSY(bp); /* We dirtied this */ } *O_bpp = bp; @@ -623,7 +620,6 @@ xfs_qm_dqread( * this particular dquot was repaired. We still aren't afraid to * brelse it because we have the changes incore. */ - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); xfs_trans_brelse(tp, bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 38417ab..9e9b4a7 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -371,7 +371,6 @@ xfs_buf_item_pin( { struct xfs_buf_log_item *bip = BUF_ITEM(lip); - ASSERT(XFS_BUF_ISBUSY(bip->bli_buf)); ASSERT(atomic_read(&bip->bli_refcount) > 0); ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || (bip->bli_flags & XFS_BLI_STALE)); @@ -895,7 +894,6 @@ xfs_buf_attach_iodone( { xfs_log_item_t *head_lip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); lip->li_cb = cb; diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 0a7930a..5805a3a 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1051,7 +1051,6 @@ xlog_alloc_log(xfs_mount_t *mp, if (!bp) goto out_free_log; bp->b_iodone = xlog_iodone; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; @@ -1108,7 +1107,6 @@ xlog_alloc_log(xfs_mount_t *mp, iclog->ic_callback_tail = &(iclog->ic_callback); iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; - ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); ASSERT(xfs_buf_islocked(iclog->ic_bp)); init_waitqueue_head(&iclog->ic_force_wait); init_waitqueue_head(&iclog->ic_write_wait); @@ -1355,7 +1353,6 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_COUNT(bp, count); bp->b_fspriv = iclog; bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; @@ -1402,7 +1399,6 @@ xlog_sync(xlog_t *log, (__psint_t)count), split); bp->b_fspriv = iclog; bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 2eee6e2..f774713 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -178,7 +178,6 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); @@ -266,7 +265,6 @@ xlog_bwrite( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); bp->b_flags &= ~(XBF_SYNCIO|XBF_FUA|XBF_FLUSH); - XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index f9f1bf6..7dd62e2 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -80,7 +80,6 @@ _xfs_trans_bjoin( { struct xfs_buf_log_item *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == NULL); /* @@ -580,7 +579,6 @@ xfs_trans_bhold(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); @@ -601,7 +599,6 @@ xfs_trans_bhold_release(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); @@ -630,7 +627,6 @@ xfs_trans_log_buf(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); @@ -701,7 +697,6 @@ xfs_trans_binval( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -773,7 +768,6 @@ xfs_trans_inode_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -797,7 +791,6 @@ xfs_trans_stale_inode_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -822,7 +815,6 @@ xfs_trans_inode_alloc_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -850,7 +842,6 @@ xfs_trans_dquot_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(type == XFS_BLF_UDQUOT_BUF || -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0XGV2051454 for ; Thu, 21 Jul 2011 19:33:16 -0500 X-ASG-Debug-ID: 1311294793-2b3001620000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e38.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 66EED8C739 for ; Thu, 21 Jul 2011 17:33:14 -0700 (PDT) Received: from e38.co.us.ibm.com (e38.co.us.ibm.com [32.97.110.159]) by cuda.sgi.com with ESMTP id owoTaTZATQVjgxjz for ; Thu, 21 Jul 2011 17:33:14 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e38.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6LGuBQh026123 for ; Thu, 21 Jul 2011 10:56:11 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0XAB3203152 for ; Thu, 21 Jul 2011 18:33:10 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0XAJm016800 for ; Thu, 21 Jul 2011 18:33:10 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0X6aG016669; Thu, 21 Jul 2011 18:33:08 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:06 -0700 Message-Id: <20110722003306.21069.97917.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD Subject: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD X-Barracuda-Connect: e38.co.us.ibm.com[32.97.110.159] X-Barracuda-Start-Time: 1311294796 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_HOLD Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_mount.c | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index ce5c7e2..1828b29 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -253,7 +253,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) -#define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) #define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) #define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) #define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 9e9b4a7..a6dd497 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -484,7 +484,7 @@ xfs_buf_item_trylock( return XFS_ITEM_LOCKED; /* take a reference to the buffer. */ - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); trace_xfs_buf_item_trylock(bip); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index f774713..8b02dca 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -265,7 +265,7 @@ xlog_bwrite( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); bp->b_flags &= ~(XBF_SYNCIO|XBF_FUA|XBF_FLUSH); - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 7f25245..b00c808 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1938,7 +1938,7 @@ xfs_getsb( xfs_buf_lock(bp); } - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(XFS_BUF_ISDONE(bp)); return bp; } -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0XIeO051471 for ; Thu, 21 Jul 2011 19:33:18 -0500 X-ASG-Debug-ID: 1311294798-2af601650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e4.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7529E8C73B for ; Thu, 21 Jul 2011 17:33:18 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by cuda.sgi.com with ESMTP id jbEVljA0wpvqe0Nc for ; Thu, 21 Jul 2011 17:33:18 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0As22012511 for ; Thu, 21 Jul 2011 20:10:54 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0XH7d058718 for ; Thu, 21 Jul 2011 20:33:17 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LKX5lJ016590 for ; Thu, 21 Jul 2011 17:33:05 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LKX3hM016502; Thu, 21 Jul 2011 17:33:05 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:15 -0700 Message-Id: <20110722003315.21069.75196.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START Subject: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START X-Barracuda-Connect: e4.ny.us.ibm.com[32.97.182.144] X-Barracuda-Start-Time: 1311294798 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_SET_START. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.h | 2 -- fs/xfs/xfs_buf_item.c | 1 - 2 files changed, 0 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 1828b29..6758697 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,8 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_SET_START(bp) do { } while (0) - #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a6dd497..bd4c62b 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -994,7 +994,6 @@ xfs_buf_iodone_callbacks( if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); XFS_BUF_DONE(bp); - XFS_BUF_SET_START(bp); } ASSERT(bp->b_iodone != NULL); trace_xfs_buf_item_iodone_async(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, J_CHICKENPOX_56,J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0XTAW051494 for ; Thu, 21 Jul 2011 19:33:30 -0500 X-ASG-Debug-ID: 1311294808-645701060000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7B2A2EF0C09 for ; Thu, 21 Jul 2011 17:33:28 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id 1ht5wjooHZJIwqGa for ; Thu, 21 Jul 2011 17:33:28 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M080YH030350 for ; Thu, 21 Jul 2011 20:08:00 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0XSEo104650 for ; Thu, 21 Jul 2011 20:33:28 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0XRsQ017442 for ; Thu, 21 Jul 2011 21:33:28 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0XO5g017018; Thu, 21 Jul 2011 21:33:26 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:23 -0700 Message-Id: <20110722003322.21069.83785.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR Subject: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1311294809 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/quota/xfs_dquot.c | 6 +++--- fs/xfs/quota/xfs_qm.c | 2 +- fs/xfs/xfs_ag.h | 6 +++--- fs/xfs/xfs_bmap.c | 3 +-- fs/xfs/xfs_btree.h | 2 +- fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_da_btree.c | 10 +++++----- fs/xfs/xfs_dinode.h | 2 +- fs/xfs/xfs_log.c | 2 +- fs/xfs/xfs_log_recover.c | 10 +++++----- fs/xfs/xfs_rtalloc.c | 30 +++++++++++++++--------------- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_sb.h | 2 +- fs/xfs/xfs_vnodeops.c | 6 +++--- 16 files changed, 45 insertions(+), 47 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index ae2c2e7..6a42f71 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1320,7 +1320,7 @@ xfs_buf_offset( struct page *page; if (bp->b_flags & XBF_MAPPED) - return XFS_BUF_PTR(bp) + offset; + return bp->b_addr + offset; offset += bp->b_offset; page = bp->b_pages[offset >> PAGE_SHIFT]; diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6758697..6ae7bde 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,7 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 772ae2a..fccde4a 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -320,7 +320,7 @@ xfs_qm_init_dquot_blk( ASSERT(tp); ASSERT(xfs_buf_islocked(bp)); - d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); + d = bp->b_addr; /* * ID of the first dquot in the block - id's are zero based. @@ -539,7 +539,7 @@ xfs_qm_dqtobp( /* * calculate the location of the dquot inside the buffer. */ - ddq = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddq = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot... @@ -1201,7 +1201,7 @@ xfs_qm_dqflush( /* * Calculate the location of the dquot inside the buffer. */ - ddqp = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddqp = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot.. diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 46e54ad..9a0aa76 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -1240,7 +1240,7 @@ xfs_qm_reset_dqcounts( do_div(j, sizeof(xfs_dqblk_t)); ASSERT(mp->m_quotainfo->qi_dqperchunk == j); #endif - ddq = (xfs_disk_dquot_t *)XFS_BUF_PTR(bp); + ddq = bp->b_addr; for (j = 0; j < mp->m_quotainfo->qi_dqperchunk; j++) { /* * Do a sanity check, and if needed, repair the dqblk. Don't diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 6530769..4805f00 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -103,7 +103,7 @@ typedef struct xfs_agf { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGF_DADDR(mp) ((xfs_daddr_t)(1 << (mp)->m_sectbb_log)) #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) -#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)((bp)->b_addr)) extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); @@ -156,7 +156,7 @@ typedef struct xfs_agi { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGI_DADDR(mp) ((xfs_daddr_t)(2 << (mp)->m_sectbb_log)) #define XFS_AGI_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGI_DADDR(mp)) -#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)((bp)->b_addr)) extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, struct xfs_buf **bpp); @@ -168,7 +168,7 @@ extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, #define XFS_AGFL_DADDR(mp) ((xfs_daddr_t)(3 << (mp)->m_sectbb_log)) #define XFS_AGFL_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGFL_DADDR(mp)) #define XFS_AGFL_SIZE(mp) ((mp)->m_sb.sb_sectsize / sizeof(xfs_agblock_t)) -#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)((bp)->b_addr)) typedef struct xfs_agfl { __be32 agfl_bno[1]; /* actually XFS_AGFL_SIZE(mp) */ diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index c51a3f9..25cb2b2 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -3384,8 +3384,7 @@ xfs_bmap_local_to_extents( ASSERT(args.len == 1); *firstblock = args.fsbno; bp = xfs_btree_get_bufl(args.mp, tp, args.fsbno, 0); - memcpy((char *)XFS_BUF_PTR(bp), ifp->if_u1.if_data, - ifp->if_bytes); + memcpy(bp->b_addr, ifp->if_u1.if_data, ifp->if_bytes); xfs_trans_log_buf(tp, bp, 0, ifp->if_bytes - 1); xfs_bmap_forkoff_reset(args.mp, ip, whichfork); xfs_idata_realloc(ip, -ifp->if_bytes, whichfork); diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h index 8d05a6a..5b240de 100644 --- a/fs/xfs/xfs_btree.h +++ b/fs/xfs/xfs_btree.h @@ -262,7 +262,7 @@ typedef struct xfs_btree_cur /* * Convert from buffer to btree block header. */ -#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)((bp)->b_addr)) /* diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index bd4c62b..a16c24c 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -124,9 +124,9 @@ xfs_buf_item_log_check( bp = bip->bli_buf; ASSERT(XFS_BUF_COUNT(bp) > 0); - ASSERT(XFS_BUF_PTR(bp) != NULL); + ASSERT(bp->b_addr != NULL); orig = bip->bli_orig; - buffer = XFS_BUF_PTR(bp); + buffer = bp->b_addr; for (x = 0; x < XFS_BUF_COUNT(bp); x++) { if (orig[x] != buffer[x] && !btst(bip->bli_logged, x)) { xfs_emerg(bp->b_mount, @@ -725,7 +725,7 @@ xfs_buf_item_init( * to have logged. */ bip->bli_orig = (char *)kmem_alloc(XFS_BUF_COUNT(bp), KM_SLEEP); - memcpy(bip->bli_orig, XFS_BUF_PTR(bp), XFS_BUF_COUNT(bp)); + memcpy(bip->bli_orig, bp->b_addr, XFS_BUF_COUNT(bp)); bip->bli_logged = (char *)kmem_zalloc(XFS_BUF_COUNT(bp) / NBBY, KM_SLEEP); #endif diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 5d9290d..d56ccb7 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2258,7 +2258,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps) dabuf->nbuf = 1; bp = bps[0]; dabuf->bbcount = (short)BTOBB(XFS_BUF_COUNT(bp)); - dabuf->data = XFS_BUF_PTR(bp); + dabuf->data = bp->b_addr; dabuf->bps[0] = bp; } else { dabuf->nbuf = nbuf; @@ -2269,7 +2269,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps) dabuf->data = kmem_alloc(BBTOB(dabuf->bbcount), KM_SLEEP); for (i = off = 0; i < nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = bps[i]; - memcpy((char *)dabuf->data + off, XFS_BUF_PTR(bp), + memcpy((char *)dabuf->data + off, bp->b_addr, XFS_BUF_COUNT(bp)); } } @@ -2292,8 +2292,8 @@ xfs_da_buf_clean(xfs_dabuf_t *dabuf) for (i = off = 0; i < dabuf->nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = dabuf->bps[i]; - memcpy(XFS_BUF_PTR(bp), (char *)dabuf->data + off, - XFS_BUF_COUNT(bp)); + memcpy(bp->b_addr, dabuf->data + off, + XFS_BUF_COUNT(bp)); } } } @@ -2330,7 +2330,7 @@ xfs_da_log_buf(xfs_trans_t *tp, xfs_dabuf_t *dabuf, uint first, uint last) ASSERT(dabuf->nbuf && dabuf->data && dabuf->bbcount && dabuf->bps[0]); if (dabuf->nbuf == 1) { - ASSERT(dabuf->data == (void *)XFS_BUF_PTR(dabuf->bps[0])); + ASSERT(dabuf->data == dabuf->bps[0]->b_addr); xfs_trans_log_buf(tp, dabuf->bps[0], first, last); return; } diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index dffba9b..a372163 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h @@ -148,7 +148,7 @@ typedef enum xfs_dinode_fmt { be32_to_cpu((dip)->di_nextents) : \ be16_to_cpu((dip)->di_anextents)) -#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)((bp)->b_addr)) /* * For block and character special files the 32bit dev_t is stored at the diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 5805a3a..4255a1c 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1403,7 +1403,7 @@ xlog_sync(xlog_t *log, bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) bp->b_flags |= XBF_FUA; - dptr = XFS_BUF_PTR(bp); + dptr = bp->b_addr; /* * Bump the cycle numbers at the start of each block * since this part of the buffer is at the start of diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 8b02dca..11ff19c 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -147,7 +147,7 @@ xlog_align( xfs_daddr_t offset = blk_no & ((xfs_daddr_t)log->l_sectBBsize - 1); ASSERT(BBTOB(offset + nbblks) <= XFS_BUF_SIZE(bp)); - return XFS_BUF_PTR(bp) + BBTOB(offset); + return bp->b_addr + BBTOB(offset); } @@ -219,7 +219,7 @@ xlog_bread_offset( xfs_buf_t *bp, xfs_caddr_t offset) { - xfs_caddr_t orig_offset = XFS_BUF_PTR(bp); + xfs_caddr_t orig_offset = bp->b_addr; int orig_len = bp->b_buffer_length; int error, error2; @@ -1260,7 +1260,7 @@ xlog_write_log_records( */ ealign = round_down(end_block, sectbb); if (j == 0 && (start_block + endcount > ealign)) { - offset = XFS_BUF_PTR(bp) + BBTOB(ealign - start_block); + offset = bp->b_addr + BBTOB(ealign - start_block); error = xlog_bread_offset(log, ealign, sectbb, bp, offset); if (error) @@ -3433,7 +3433,7 @@ xlog_do_recovery_pass( /* * Check for header wrapping around physical end-of-log */ - offset = XFS_BUF_PTR(hbp); + offset = hbp->b_addr; split_hblks = 0; wrapped_hblks = 0; if (blk_no + hblks <= log->l_logBBsize) { @@ -3493,7 +3493,7 @@ xlog_do_recovery_pass( } else { /* This log record is split across the * physical end of log */ - offset = XFS_BUF_PTR(dbp); + offset = dbp->b_addr; split_bblks = 0; if (blk_no != log->l_logBBsize) { /* some data is before the physical diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index cb8132c..35561a5 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -168,7 +168,7 @@ error_cancel: xfs_trans_cancel(tp, cancelflags); goto error; } - memset(XFS_BUF_PTR(bp), 0, mp->m_sb.sb_blocksize); + memset(bp->b_addr, 0, mp->m_sb.sb_blocksize); xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1); /* * Commit the transaction. @@ -943,7 +943,7 @@ xfs_rtcheck_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -994,7 +994,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1040,7 +1040,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1158,7 +1158,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1210,7 +1210,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1256,7 +1256,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1333,7 +1333,7 @@ xfs_rtfind_forw( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1384,7 +1384,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1429,7 +1429,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1649,7 +1649,7 @@ xfs_rtmodify_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -1694,7 +1694,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1734,7 +1734,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1832,8 +1832,8 @@ xfs_rtmodify_summary( */ sp = XFS_SUMPTR(mp, bp, so); *sp += delta; - xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)XFS_BUF_PTR(bp)), - (uint)((char *)sp - (char *)XFS_BUF_PTR(bp) + sizeof(*sp) - 1)); + xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)bp->b_addr), + (uint)((char *)sp - (char *)bp->b_addr + sizeof(*sp) - 1)); return 0; } diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index 09e1f4f..f7f3a35 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -47,7 +47,7 @@ struct xfs_trans; #define XFS_SUMOFFSTOBLOCK(mp,s) \ (((s) * (uint)sizeof(xfs_suminfo_t)) >> (mp)->m_sb.sb_blocklog) #define XFS_SUMPTR(mp,bp,so) \ - ((xfs_suminfo_t *)((char *)XFS_BUF_PTR(bp) + \ + ((xfs_suminfo_t *)((bp)->b_addr + \ (((so) * (uint)sizeof(xfs_suminfo_t)) & XFS_BLOCKMASK(mp)))) #define XFS_BITTOBLOCK(mp,bi) ((bi) >> (mp)->m_blkbit_log) diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 1eb2ba5..cb6ae71 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -509,7 +509,7 @@ static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) #define XFS_SB_DADDR ((xfs_daddr_t)0) /* daddr in filesystem/ag */ #define XFS_SB_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_SB_DADDR) -#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)((bp)->b_addr)) #define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d)) #define XFS_DADDR_TO_FSB(mp,d) XFS_AGB_TO_FSB(mp, \ diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 97daa35..07f480a 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -94,7 +94,7 @@ xfs_readlink_bmap( byte_cnt = pathlen; pathlen -= byte_cnt; - memcpy(link, XFS_BUF_PTR(bp), byte_cnt); + memcpy(link, bp->b_addr, byte_cnt); xfs_buf_relse(bp); } @@ -1654,7 +1654,7 @@ xfs_symlink( } pathlen -= byte_cnt; - memcpy(XFS_BUF_PTR(bp), cur_chunk, byte_cnt); + memcpy(bp->b_addr, cur_chunk, byte_cnt); cur_chunk += byte_cnt; xfs_trans_log_buf(tp, bp, 0, byte_cnt - 1); @@ -1999,7 +1999,7 @@ xfs_zero_remaining_bytes( mp, bp, XFS_BUF_ADDR(bp)); break; } - memset(XFS_BUF_PTR(bp) + + memset(bp->b_addr + (offset - XFS_FSB_TO_B(mp, imap.br_startoff)), 0, lastoffset - offset + 1); XFS_BUF_UNDONE(bp); -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0XnV6051526 for ; Thu, 21 Jul 2011 19:33:49 -0500 X-ASG-Debug-ID: 1311294828-2e1201070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AE5CF8C73F for ; Thu, 21 Jul 2011 17:33:48 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id fBxF41K2YGMoTfjg for ; Thu, 21 Jul 2011 17:33:48 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M08Kst030559 for ; Thu, 21 Jul 2011 20:08:20 -0400 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0Xl23133764 for ; Thu, 21 Jul 2011 20:33:47 -0400 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0XlpG018007 for ; Thu, 21 Jul 2011 18:33:47 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0Xh9t017955; Thu, 21 Jul 2011 18:33:45 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:43 -0700 Message-Id: <20110722003343.21069.95122.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Subject: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1311294828 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Replace the macro XFS_BUF_ISPINNED with an inline helper function xfs_buf_ispinned, and change all its usages. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 5 ++++- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/quota/xfs_dquot.c | 4 ++-- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_inode.c | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 6a42f71..5e929f0 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1677,7 +1677,7 @@ xfs_buf_delwri_split( list_for_each_entry_safe(bp, n, dwq, b_list) { ASSERT(bp->b_flags & XBF_DELWRI); - if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { + if (!xfs_buf_ispinned(bp) && xfs_buf_trylock(bp)) { if (!force && time_before(jiffies, bp->b_queuetime + age)) { xfs_buf_unlock(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 7b1f484..71e1d6f 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -280,7 +280,10 @@ xfs_buf_set_ref( #define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) #define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) +static inline int xfs_buf_ispinned(struct xfs_buf *bp) +{ + return atomic_read(&(bp->b_pin_count)); +} #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 5cc158e..a8500e9 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -330,7 +330,7 @@ xfs_sync_fsdata( * between there and here. */ bp = xfs_getsb(mp, 0); - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); return xfs_bwrite(mp, bp); diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index fccde4a..4bebb29 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1237,7 +1237,7 @@ xfs_qm_dqflush( * If the buffer is pinned then push on the log so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) { + if (xfs_buf_ispinned(bp)) { trace_xfs_dqflush_force(dqp); xfs_log_force(mp, 0); } @@ -1444,7 +1444,7 @@ xfs_qm_dqflock_pushbuf_wait( goto out_lock; if (XFS_BUF_ISDELAYWRITE(bp)) { - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); xfs_buf_delwri_promote(bp); wake_up_process(bp->b_target->bt_task); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a16c24c..a3d2bbc 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -478,7 +478,7 @@ xfs_buf_item_trylock( struct xfs_buf_log_item *bip = BUF_ITEM(lip); struct xfs_buf *bp = bip->bli_buf; - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) return XFS_ITEM_PINNED; if (!xfs_buf_trylock(bp)) return XFS_ITEM_LOCKED; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index bdb47b2..76ee2c5 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2585,7 +2585,7 @@ xfs_iflush( * If the buffer is pinned then push on the log now so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); /* -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:33:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0XwS4051544 for ; Thu, 21 Jul 2011 19:33:59 -0500 X-ASG-Debug-ID: 1311294838-2e9801000000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e5.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 95E9F8C743 for ; Thu, 21 Jul 2011 17:33:58 -0700 (PDT) Received: from e5.ny.us.ibm.com (e5.ny.us.ibm.com [32.97.182.145]) by cuda.sgi.com with ESMTP id OXodgAhzeUfEUSje for ; Thu, 21 Jul 2011 17:33:58 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e5.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M04xP4007172 for ; Thu, 21 Jul 2011 20:04:59 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0XvdO163636 for ; Thu, 21 Jul 2011 20:33:57 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0Xvst020271 for ; Thu, 21 Jul 2011 21:33:57 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0Xrgq020085; Thu, 21 Jul 2011 21:33:55 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:52 -0700 Message-Id: <20110722003352.21069.89866.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET Subject: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET X-Barracuda-Connect: e5.ny.us.ibm.com[32.97.182.145] X-Barracuda-Start-Time: 1311294838 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the macro XFS_BUF_SET_TARGET. hch: As all the buffer allocator already set ->b_target it should be safe to simply remove these calls. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log_recover.c | 2 -- 2 files changed, 0 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 71e1d6f..31495cf 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -287,7 +287,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) #define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 3f77077..713ba9c 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -179,7 +179,6 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); xfsbdstrat(log->l_mp, bp); error = xfs_buf_iowait(bp); @@ -268,7 +267,6 @@ xlog_bwrite( xfs_buf_hold(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); if ((error = xfs_bwrite(log->l_mp, bp))) xfs_ioerror_alert("xlog_bwrite", log->l_mp, -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:34:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_102 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0Y7hb051560 for ; Thu, 21 Jul 2011 19:34:07 -0500 X-ASG-Debug-ID: 1311294846-4a7a02890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e34.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FD11EF0C18 for ; Thu, 21 Jul 2011 17:34:06 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by cuda.sgi.com with ESMTP id VFuR2PDaLMrFMQy4 for ; Thu, 21 Jul 2011 17:34:06 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0Y4FQ015976 for ; Thu, 21 Jul 2011 18:34:04 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0Y3Z1197316 for ; Thu, 21 Jul 2011 18:34:03 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LIY330010484 for ; Thu, 21 Jul 2011 12:34:03 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LIY2PA010469; Thu, 21 Jul 2011 12:34:02 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:34:02 -0700 Message-Id: <20110722003402.21069.36631.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET Subject: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET X-Barracuda-Connect: e34.co.us.ibm.com[32.97.110.152] X-Barracuda-Start-Time: 1311294847 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_TARGET Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_rw.c | 2 +- fs/xfs/xfs_trans_buf.c | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 31495cf..075f567 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -287,7 +287,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) static inline void xfs_buf_relse(xfs_buf_t *bp) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a3d2bbc..5c2b554 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -971,14 +971,14 @@ xfs_buf_iodone_callbacks( goto do_callbacks; } - if (XFS_BUF_TARGET(bp) != lasttarg || + if (bp->b_target != lasttarg || time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } - lasttarg = XFS_BUF_TARGET(bp); + lasttarg = bp->b_target; /* * If the write was asynchronous then no one will be looking for the diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index b00c808..49ecc17 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1615,7 +1615,7 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) XFS_BUF_UNDELAYWRITE(sbp); XFS_BUF_WRITE(sbp); XFS_BUF_UNASYNC(sbp); - ASSERT(XFS_BUF_TARGET(sbp) == mp->m_ddev_targp); + ASSERT(sbp->b_target == mp->m_ddev_targp); xfsbdstrat(mp, sbp); error = xfs_buf_iowait(sbp); if (error) diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index d1f76f8..7382bfe 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)blkno, func, bp->b_error, XFS_BUF_COUNT(bp)); } diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 7dd62e2..137e2b9 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -54,7 +54,7 @@ xfs_trans_buf_item_match( list_for_each_entry(lidp, &tp->t_items, lid_trans) { blip = (struct xfs_buf_log_item *)lidp->lid_item; if (blip->bli_item.li_type == XFS_LI_BUF && - XFS_BUF_TARGET(blip->bli_buf) == target && + blip->bli_buf->b_target == target && XFS_BUF_ADDR(blip->bli_buf) == blkno && XFS_BUF_COUNT(blip->bli_buf) == len) return blip->bli_buf; -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:34:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0Yt4H051589 for ; Thu, 21 Jul 2011 19:34:55 -0500 X-ASG-Debug-ID: 1311294894-5c8c014f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B582D1D8A85E for ; Thu, 21 Jul 2011 17:34:54 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id xgEewNOSdHJb99N9 for ; Thu, 21 Jul 2011 17:34:54 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay05.pok.ibm.com (d01relay05.pok.ibm.com [9.56.227.237]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M02Ztg003154 for ; Thu, 21 Jul 2011 20:02:35 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay05.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0Xcrc159408 for ; Thu, 21 Jul 2011 20:33:38 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6M0XbjN003715 for ; Thu, 21 Jul 2011 20:33:37 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6M0XYQg003393; Thu, 21 Jul 2011 20:33:36 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:33:33 -0700 Message-Id: <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1311294894 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_SET_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log.c | 5 +++-- fs/xfs/xfs_log_recover.c | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6ae7bde..7b1f484 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,7 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) #define XFS_BUF_OFFSET(bp) ((bp)->b_file_offset) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 4255a1c..21e770f 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1395,8 +1395,9 @@ xlog_sync(xlog_t *log, if (split) { bp = iclog->ic_log->l_xbuf; XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ - XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ - (__psint_t)count), split); + xfs_buf_associate_memory(bp, + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ + (__psint_t)count), split); bp->b_fspriv = iclog; bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); XFS_BUF_ASYNC(bp); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 11ff19c..3f77077 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -223,14 +223,14 @@ xlog_bread_offset( int orig_len = bp->b_buffer_length; int error, error2; - error = XFS_BUF_SET_PTR(bp, offset, BBTOB(nbblks)); + error = xfs_buf_associate_memory(bp, offset, BBTOB(nbblks)); if (error) return error; error = xlog_bread_noalign(log, blk_no, nbblks, bp); /* must reset buffer pointer even on error */ - error2 = XFS_BUF_SET_PTR(bp, orig_offset, orig_len); + error2 = xfs_buf_associate_memory(bp, orig_offset, orig_len); if (error) return error; return error2; -- 1.7.1 From sekharan@us.ibm.com Thu Jul 21 19:35:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M0ZX4b051616 for ; Thu, 21 Jul 2011 19:35:33 -0500 X-ASG-Debug-ID: 1311294931-58ad017d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e39.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C597E1D8A869 for ; Thu, 21 Jul 2011 17:35:31 -0700 (PDT) Received: from e39.co.us.ibm.com (e39.co.us.ibm.com [32.97.110.160]) by cuda.sgi.com with ESMTP id v2U1WBPH3dFrrcyE for ; Thu, 21 Jul 2011 17:35:31 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e39.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6M0KdDC001250 for ; Thu, 21 Jul 2011 18:20:41 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6M0YAtm169684 for ; Thu, 21 Jul 2011 18:34:10 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6LIXhFs000523 for ; Thu, 21 Jul 2011 12:33:43 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6LIXghm000461; Thu, 21 Jul 2011 12:33:42 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Thu, 21 Jul 2011 17:34:09 -0700 Message-Id: <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME X-Barracuda-Connect: e39.co.us.ibm.com[32.97.110.160] X-Barracuda-Start-Time: 1311294932 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUFTARG_NAME. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 2 -- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_rw.c | 2 +- 4 files changed, 3 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 5e929f0..6bddce4 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1480,7 +1480,7 @@ xfs_setsize_buftarg_flags( if (set_blocksize(btp->bt_bdev, sectorsize)) { xfs_warn(btp->bt_mount, "Cannot set_blocksize to %u on device %s\n", - sectorsize, XFS_BUFTARG_NAME(btp)); + sectorsize, xfs_buf_target_name(btp)); return EINVAL; } diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 075f567..3a421da 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -287,8 +287,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) - static inline void xfs_buf_relse(xfs_buf_t *bp) { xfs_buf_unlock(bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 5c2b554..0402173 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -975,7 +975,7 @@ xfs_buf_iodone_callbacks( time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } lasttarg = bp->b_target; diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index 7382bfe..c96a8a0 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)blkno, func, bp->b_error, XFS_BUF_COUNT(bp)); } -- 1.7.1 From amit.sahrawat83@gmail.com Thu Jul 21 23:52:18 2011 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M4qHHR062824 for ; Thu, 21 Jul 2011 23:52:17 -0500 X-ASG-Debug-ID: 1311310334-572102680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D58A1D8AF43 for ; Thu, 21 Jul 2011 21:52:14 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id 67oUzwN0j9D7auux for ; Thu, 21 Jul 2011 21:52:14 -0700 (PDT) Received: by iyf40 with SMTP id 40so1589938iyf.26 for ; Thu, 21 Jul 2011 21:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=8Toy9b6z+3UYW/z0LVgTyOgKe6wmK0/LS0TForLd778=; b=odclUlr7vwNSZeSIYWt9G8cYPrg5zLr5oWuK37G3mtX0Jvb8HID2d+YD7hJnIzE4lU sJL+knsh4HUdzxqSUdWCrXxTke6WleDlN8tlhPzsmOj3SepZOyY5/MSWblbS2JxPiKtx ucQrVNEBHpdBqtYuo6tXKJXXsxiztvhFhXae8= MIME-Version: 1.0 Received: by 10.231.26.223 with SMTP id f31mr920186ibc.122.1311310333665; Thu, 21 Jul 2011 21:52:13 -0700 (PDT) Received: by 10.231.36.140 with HTTP; Thu, 21 Jul 2011 21:52:13 -0700 (PDT) Date: Fri, 22 Jul 2011 10:22:13 +0530 Message-ID: X-ASG-Orig-Subj: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: xfs@oss.sgi.com Content-Type: multipart/mixed; boundary=00151773e39ca0e86b04a8a13a5d X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311310335 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --00151773e39ca0e86b04a8a13a5d Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Dear All, Target : ARM Recently I encountered a corruption on XFS for RC-3. While the DIRECT-IO for a file was in operation (Write operation) there was a power reset - Only one file at a time is being written to the disk using DIO.. After reboot on mounting I just tried to remove the file and encountered the below mentioned corruption. The hard disk is not able to mount after this, only after clearing logs (xfs_repair =96L) =96 disk is able to mount XFS mounting filesystem sda1 XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1535 of file fs/xfs/xfs_alloc.c. Caller 0xc0152c04 Backtrace: [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/= 0x1c) r6:00000000 r5:c0152c04 r4:00000075 r3:e3ec1c88 [] (dump_stack+0x0/0x1c) from [] (xfs_error_report+0x4c/0x5c) [] (xfs_error_report+0x0/0x5c) from [] (xfs_free_ag_extent+0x400/0x600) [] (xfs_free_ag_extent+0x0/0x600) from [] (xfs_free_extent+0x8c/0xa4) [] (xfs_free_extent+0x0/0xa4) from [] (xfs_bmap_finish+0x108/0x194) r7:e3ec1e10 r6:00000000 r5:e3737870 r4:e373e000 [] (xfs_bmap_finish+0x0/0x194) from [] (xfs_itruncate_finish+0x1dc/0x30c) [] (xfs_itruncate_finish+0x0/0x30c) from [] (xfs_inactive+0x20c/0x40c) [] (xfs_inactive+0x0/0x40c) from [] (xfs_fs_clear_inode+0x50/0x60) r9:e3ec0000 r8:c001f128 r7:00000000 r6:e4671a80 r5:c0312454 r4:e4667300 [] (xfs_fs_clear_inode+0x0/0x60) from [] (clear_inode+0x8c/0xe8) r4:e4667420 r3:c01a3d50 [] (clear_inode+0x0/0xe8) from [] (generic_delete_inode+0xdc/0x178) r4:e4667420 r3:ffffffff [] (generic_delete_inode+0x0/0x178) from [] (generic_drop_inode+0x20/0x68) r5:00000000 r4:e4667420 [] (generic_drop_inode+0x0/0x68) from [] (iput+0x6c/0x7= c) r4:e4667420 r3:c00be620 [] (iput+0x0/0x7c) from [] (do_unlinkat+0xfc/0x154) r4:e4667420 r3:00000000 [] (do_unlinkat+0x0/0x154) from [] (sys_unlink+0x18/0x1= c) r7:0000000a r6:00000000 r5:00000000 r4:be90299b [] (sys_unlink+0x0/0x1c) from [] (ret_fast_syscall+0x0/= 0x30) xfs_force_shutdown(sda1,0x8) called from line 4047 of file fs/xfs/xfs_bmap.c. Return address =3D 0xc015ffec Filesystem "sda1": Corruption of in-memory data detected. Shutting down filesystem: sda1 Please umount the filesystem, and rectify the problem(s) [root@localhost amits]# xfs_repair -n /dev/sdb1 Phase 1 - find and verify superblock... Phase 2 - using internal log - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan (but don't clear) agi unlinked lists... - process known inodes and perform inode discovery... - agno =3D 0 data fork in ino 132 claims free block 115 data fork in ino 132 claims free block 116 - agno =3D 1 - agno =3D 2 - agno =3D 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno =3D 0 - agno =3D 2 - agno =3D 1 - agno =3D 3 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity... - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify link counts... No modify flag set, skipping filesystem flush and exiting. [root@localhost amits]# Please find the logs for xfs_logprint at the time of issue attached. If there was really corruption which is shown at the time of deletion of file then why did the XFS file-system mounted? After checking the blocks request being passed as free request =96 it showed that the at the time of xfs_free_ag_extent() =96 the values from the tree fetched are not correct =96 for blocks to the right of current file extent (may be due to corruption) =96 is there anything written to xfs logs related with this? So that at the mount time this thing can be taken care. Please let me know in case more information is required for this. Thanks & Regards, Amit Sahrawat --00151773e39ca0e86b04a8a13a5d Content-Type: application/octet-stream; name=XFS-LogPrints-ForCorruptedFile Content-Disposition: attachment; filename=XFS-LogPrints-ForCorruptedFile Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqeo83um0 eGZzX2xvZ3ByaW50OgogICAgZGF0YSBkZXZpY2U6IDB4ODExCiAgICBsb2cgZGV2aWNlOiAweDgx MSBkYWRkcjogMzExODc3ODg4IGxlbmd0aDogNjU1MzYKCmN5Y2xlOiAxCXZlcnNpb246IDIJCWxz bjogMSwwCXRhaWxfbHNuOiAxLDAKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDIwCXByZXYgb2Zmc2V0 OiAtMQkJbnVtIG9wczogMQp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2Jl NjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGIwYzBkMGQwICBsZW46IDggIGNsaWVudGlkOiBMT0cg IGZsYWdzOiBVTk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDIJdGFpbF9sc246IDEsMgpsZW5ndGggb2YgTG9n IFJlY29yZDogNTEyCXByZXYgb2Zmc2V0OiAwCQludW0gb3BzOiA1CnV1aWQ6IDc3YThhODQ1LTAz N2ItNDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApo X3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogNjljZTRjNDQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMSk6IHRpZDogNjljZTRjNDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogU0JfQ09VTlQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDY5Y2U0YzQ0ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDAgKDB4MCkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMp OiB0aWQ6IDY5Y2U0YzQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpT VVBFUiBCTE9DSyBCdWZmZXI6IAppY291bnQ6IDY0ICBpZnJlZTogNjEgIGZkYmxrczogNzc5NjEy NDkgIGZyZXh0OiAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogNjljZTRjNDQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAoKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNAl0YWlsX2xzbjogMSwyCmxlbmd0aCBv ZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDIJCW51bSBvcHM6IDEKdXVpZDogNzdhOGE4 NDUtMDM3Yi00NDY2LWIyZTktZTMxMzZjMjdiZTY1ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxp bnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA4NTY4 NWE5YyAgbGVuOiA4ICBjbGllbnRpZDogTE9HICBmbGFnczogVU5NT1VOVCAKVW5tb3VudCBmaWxl c3lzdGVtCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw2 CXRhaWxfbHNuOiAxLDYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA0 CQludW0gb3BzOiA0OTIKdXVpZDogNzdhOGE4NDUtMDM3Yi00NDY2LWIyZTktZTMxMzZjMjdiZTY1 ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgwKTogdGlkOiA2ZGJmNzM3YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA2ZGJmNzM3 YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBD UkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIpOiB0aWQ6IDZkYmY3MzdhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMpOiB0aWQ6IDZkYmY3MzdhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzog MHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZm ZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiA2ZGJmNzM3YSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUp OiB0aWQ6IDZkYmY3MzdhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IDZkYmY3MzdhICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzog MHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiA3NjgKT3BlciAoNyk6IHRpZDogNmRiZjczN2EgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiA2ZGJmNzM3YSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDAKT3BlciAoOSk6IHRpZDogNmRiZjczN2EgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAy IGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDFhIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTApOiB0aWQ6IDZkYmY3MzdhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkxPQ0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDZkYmY3MzdhICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMik6 IHRpZDogYjMxMGQyMzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IGIzMTBkMjMwICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRp ZDogYjMxMGQyMzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICgxNSk6IHRpZDogYjMxMGQyMzAgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRp ZDogYjMxMGQyMzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiA1NTY4MzdjMiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRp ZDogNTU2ODM3YzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogNTU2ODM3YzIgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IDU1NjgzN2My ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJ ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVs OiAxICBmcmVlIzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAt IDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogNTU2 ODM3YzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMik6IHRpZDogNTU2ODM3YzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6 IDU1NjgzN2MyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0KTogdGlkOiA1NTY4MzdjMiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlk OiA1NTY4MzdjMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogNTIKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3BlciAoMjYpOiB0aWQ6IDU1NjgzN2MyICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI3KTogdGlkOiA1NTY4MzdjMiAgbGVuOiA1MiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBE SVJFQ1RPUlkgc2l6ZSA0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiA1NTY4 MzdjMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IGNkZTk2MTUwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiBjZGU5 NjE1MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzEpOiB0aWQ6IGNkZTk2MTUwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMik6 IHRpZDogY2RlOTYxNTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5i bG9ja3MgMHgyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzMpOiB0 aWQ6IGNkZTk2MTUwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiBjZGU5NjE1 MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgzNSk6IHRpZDogY2RlOTYxNTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTIgIGxvbmdlc3Q6IDE5NDkyMzUyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IGNkZTk2MTUwICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcpOiB0aWQ6IGNkZTk2 MTUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiBjZGU5NjE1MCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOSk6IHRpZDogY2Rl OTYxNTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDApOiB0aWQ6IGNkZTk2MTUwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogOGJmMjk4NTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDhiZjI5ODU5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRp ZDogOGJmMjk4NTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0KTogdGlkOiA4YmYyOTg1OSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAgbmJsb2NrcyAweDMgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NSk6IHRpZDogOGJmMjk4NTkgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYpOiB0aWQ6IDhiZjI5ODU5ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ3KTogdGlkOiA4 YmYyOTg1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjM1MSAgbG9uZ2VzdDogMTk0OTIzNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0OCk6IHRpZDogOGJmMjk4NTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OSk6IHRpZDogOGJmMjk4NTkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTApOiB0aWQ6IDhiZjI5ODU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUxKTogdGlkOiA4YmYyOTg1OSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Mik6IHRpZDogOGJmMjk4NTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiBiNTZiYTQ3ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDU0KTogdGlkOiBiNTZiYTQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NSk6IHRpZDogYjU2YmE0NyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNTYpOiB0aWQ6IGI1NmJhNDcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgyODAwIG5ibG9ja3MgMHg0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoNTcpOiB0aWQ6IGI1NmJhNDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNTgpOiB0aWQ6IGI1NmJhNDcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTkpOiB0aWQ6IGI1NmJhNDcgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTAgIGxvbmdlc3Q6 IDE5NDkyMzUwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjApOiB0aWQ6IGI1NmJhNDcgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg2MSk6IHRpZDogYjU2YmE0NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogYjU2YmE0NyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg2Myk6IHRpZDogYjU2YmE0NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDogYjU2YmE0NyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNjUpOiB0aWQ6IGNiNTRlNjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IGNiNTRlNjkgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDY3KTogdGlkOiBjYjU0ZTY5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2OCk6IHRpZDogY2I1 NGU2OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAgbmJsb2NrcyAw eDUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg2OSk6IHRpZDogY2I1 NGU2OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MCk6IHRpZDogY2I1NGU2OSAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg3MSk6 IHRpZDogY2I1NGU2OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjM0OSAgbG9uZ2VzdDogMTk0OTIzNDkKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg3Mik6IHRpZDogY2I1NGU2OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDczKTogdGlkOiBjYjU0ZTY5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDc0KTogdGlkOiBjYjU0ZTY5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc1KTogdGlkOiBjYjU0ZTY5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDc2KTogdGlkOiBjYjU0ZTY5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogNWIzNmIyMmQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzgpOiB0aWQ6IDViMzZiMjJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogNWIzNmIyMmQgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDgwKTogdGlkOiA1YjM2YjIyZCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDUwMDAgbmJsb2NrcyAweDcgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICg4MSk6IHRpZDogNWIzNmIyMmQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODIpOiB0aWQ6IDViMzZiMjJkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgzKTogdGlkOiA1YjM2YjIyZCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NyAg bG9uZ2VzdDogMTk0OTIzNDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NCk6IHRpZDogNWIz NmIyMmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg4NSk6IHRpZDogNWIzNmIyMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6 IDViMzZiMjJkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDg3KTogdGlkOiA1YjM2YjIyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OCk6IHRp ZDogNWIzNmIyMmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA1ODkxMDYzZSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRp ZDogNTg5MTA2M2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiA1ODkxMDYzZSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoOTIpOiB0aWQ6IDU4OTEwNjNlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NjQwMCBuYmxvY2tzIDB4OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDkzKTogdGlkOiA1ODkxMDYzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NCk6IHRp ZDogNTg5MTA2M2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IDU4OTEwNjNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ2ICBsb25nZXN0OiAxOTQ5MjM0 NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlkOiA1ODkxMDYzZSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk3KTog dGlkOiA1ODkxMDYzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDogNTg5MTA2M2UgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTkp OiB0aWQ6IDU4OTEwNjNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogNTg5MTA2M2UgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwMSk6IHRpZDogMWQ0OWRlYzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlkOiAxZDQ5ZGVjMiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTAzKTogdGlkOiAxZDQ5ZGVjMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTA0KTogdGlk OiAxZDQ5ZGVjMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc4MDAgbmJs b2NrcyAweDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMDUpOiB0 aWQ6IDFkNDlkZWMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNik6IHRpZDogMWQ0OWRl YzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMTA3KTogdGlkOiAxZDQ5ZGVjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NSAgbG9uZ2VzdDogMTk0OTIzNDUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IDFkNDlkZWMyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA5KTogdGlkOiAx ZDQ5ZGVjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0aWQ6IDFkNDlkZWMyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMSk6IHRp ZDogMWQ0OWRlYzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEyKTogdGlkOiAxZDQ5ZGVjMiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTEzKTogdGlkOiA4MTNmYjJkZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IDgxM2ZiMmRmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMTUpOiB0aWQ6IDgxM2ZiMmRmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTYpOiB0aWQ6IDgx M2ZiMmRmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGMwMCBuYmxvY2tz IDB4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDExNyk6IHRpZDog ODEzZmIyZGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE4KTogdGlkOiA4MTNmYjJkZiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgxMTkpOiB0aWQ6IDgxM2ZiMmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25nZXN0OiAxOTQ5MjM0NAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEyMCk6IHRpZDogODEzZmIyZGYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjEpOiB0aWQ6IDgxM2Zi MmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDogODEzZmIyZGYgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIzKTogdGlkOiA4 MTNmYjJkZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0aWQ6IDgxM2ZiMmRmICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjUpOiB0aWQ6IDlkMDM3N2FlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogOWQwMzc3YWUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEy Nyk6IHRpZDogOWQwMzc3YWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyOCk6IHRpZDogOWQwMzc3 YWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMDAwIG5ibG9ja3MgMHhj IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTI5KTogdGlkOiA5ZDAz NzdhZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzApOiB0aWQ6IDlkMDM3N2FlICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEz MSk6IHRpZDogOWQwMzc3YWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzNDIgIGxvbmdlc3Q6IDE5NDkyMzQyCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTMyKTogdGlkOiA5ZDAzNzdhZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMyk6IHRpZDogOWQwMzc3YWUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiA5ZDAzNzdhZSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzUpOiB0aWQ6IDlkMDM3 N2FlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRpZDogOWQwMzc3YWUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNyk6 IHRpZDogMjgwYzQ5OTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTogdGlkOiAyODBjNDk5MCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTog dGlkOiAyODBjNDk5MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTQwKTogdGlkOiAyODBjNDk5MCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI0MDAgbmJsb2NrcyAweGQgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNDEpOiB0aWQ6IDI4MGM0OTkw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Mik6IHRpZDogMjgwYzQ5OTAgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQzKTog dGlkOiAyODBjNDk5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjM0MSAgbG9uZ2VzdDogMTk0OTIzNDEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNDQpOiB0aWQ6IDI4MGM0OTkwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ1KTogdGlkOiAyODBjNDk5MCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNDYpOiB0aWQ6IDI4MGM0OTkwICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0Nyk6IHRpZDogMjgwYzQ5OTAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlkOiAyODBjNDk5MCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlk OiBkOTYxM2I5YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IGQ5NjEzYjliICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6 IGQ5NjEzYjliICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTIpOiB0aWQ6IGQ5NjEzYjliICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzgwMCBuYmxvY2tzIDB4ZSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE1Myk6IHRpZDogZDk2MTNiOWIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU0KTogdGlkOiBkOTYxM2I5YiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNTUpOiB0aWQ6 IGQ5NjEzYjliICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzQwICBsb25nZXN0OiAxOTQ5MjM0MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1Nik6IHRpZDogZDk2MTNiOWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTcpOiB0aWQ6IGQ5NjEzYjliICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1OCk6IHRpZDogZDk2MTNiOWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU5KTogdGlkOiBkOTYxM2I5YiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IGQ5NjEzYjliICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IDk3 NGRhYWY4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogOTc0ZGFhZjggIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogOTc0 ZGFhZjggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2NCk6IHRpZDogOTc0ZGFhZjggIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAwIG5ibG9ja3MgMHhmIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTY1KTogdGlkOiA5NzRkYWFmOCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNjYpOiB0aWQ6IDk3NGRhYWY4ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2Nyk6IHRpZDogOTc0 ZGFhZjggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMzkgIGxvbmdlc3Q6IDE5NDkyMzM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTY4KTogdGlkOiA5NzRkYWFmOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OSk6IHRpZDogOTc0ZGFhZjggIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTcwKTogdGlkOiA5NzRkYWFmOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzEpOiB0aWQ6IDk3NGRhYWY4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3Mik6IHRpZDogOTc0ZGFhZjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Myk6IHRpZDogMTUzZWVk NjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTc0KTogdGlkOiAxNTNlZWQ2MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiAxNTNlZWQ2 MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTc2KTogdGlkOiAxNTNlZWQ2MyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYwMDAgbmJsb2NrcyAweDExIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTc3KTogdGlkOiAxNTNlZWQ2MyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNzgpOiB0aWQ6IDE1M2VlZDYzICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3OSk6IHRpZDogMTUzZWVk NjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMzcgIGxvbmdlc3Q6IDE5NDkyMzM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgw KTogdGlkOiAxNTNlZWQ2MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE4MSk6IHRpZDogMTUzZWVkNjMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTgyKTogdGlkOiAxNTNlZWQ2MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODMpOiB0aWQ6IDE1M2VlZDYzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4NCk6IHRpZDogMTUzZWVkNjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogMjViMDQzMjkg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTg2KTogdGlkOiAyNWIwNDMyOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiAyNWIwNDMyOSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMTg4KTogdGlkOiAyNWIwNDMyOSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDEwNDAwIG5ibG9ja3MgMHgxMiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE4OSk6IHRpZDogMjViMDQzMjkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTkwKTogdGlkOiAyNWIwNDMyOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxOTEpOiB0aWQ6IDI1YjA0MzI5 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzM2ICBsb25nZXN0OiAxOTQ5MjMzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Mik6 IHRpZDogMjViMDQzMjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxOTMpOiB0aWQ6IDI1YjA0MzI5ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5NCk6IHRpZDogMjViMDQzMjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk1KTogdGlkOiAyNWIwNDMyOSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxOTYpOiB0aWQ6IDI1YjA0MzI5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IDI2NjEyMDgyICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE5OCk6IHRpZDogMjY2MTIwODIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogMjY2MTIwODIgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDIwMCk6IHRpZDogMjY2MTIwODIgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBuYmxvY2tzIDB4MTMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgyMDEpOiB0aWQ6IDI2NjEyMDgyICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwMik6IHRpZDogMjY2MTIwODIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAzKTogdGlkOiAyNjYxMjA4MiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDQpOiB0 aWQ6IDI2NjEyMDgyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjA1KTogdGlkOiAyNjYxMjA4MiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDYpOiB0aWQ6IDI2NjEyMDgyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIwNyk6IHRpZDogMjY2MTIwODIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjA4KTogdGlkOiAyNjYxMjA4MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiA0YTk1NTExNSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTApOiB0aWQ6IDRhOTU1MTE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDRhOTU1MTE1ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyMTIpOiB0aWQ6IDRhOTU1MTE1ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MTJjMDAgbmJsb2NrcyAweDE0IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMjEzKTogdGlkOiA0YTk1NTExNSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTQpOiB0aWQ6IDRhOTU1MTE1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxNSk6IHRpZDogNGE5NTUxMTUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MzQgIGxvbmdlc3Q6IDE5NDkyMzM0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE2KTogdGlk OiA0YTk1NTExNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDIxNyk6IHRpZDogNGE5NTUxMTUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4 KTogdGlkOiA0YTk1NTExNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyMTkpOiB0aWQ6IDRhOTU1MTE1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyMCk6IHRpZDogNGE5NTUxMTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogYjliNDZiYWEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjIyKTogdGlkOiBiOWI0NmJhYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiBiOWI0NmJhYSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjI0KTogdGlkOiBiOWI0NmJhYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9ja3MgMHgxNiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDIyNSk6IHRpZDogYjliNDZiYWEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjI2KTogdGlkOiBiOWI0NmJhYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjcpOiB0aWQ6IGI5YjQ2YmFhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMy ICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyOCk6IHRpZDog YjliNDZiYWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMjkpOiB0aWQ6IGI5YjQ2YmFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6 IHRpZDogYjliNDZiYWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjMxKTogdGlkOiBiOWI0NmJhYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzIpOiB0aWQ6IGI5YjQ2YmFhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IGE4MjA4ZDY1ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzNCk6IHRpZDogYTgyMDhkNjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogYTgyMDhkNjUgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDIzNik6IHRpZDogYTgyMDhkNjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgxNTQwMCBuYmxvY2tzIDB4MTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgyMzcpOiB0aWQ6IGE4MjA4ZDY1ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzOCk6IHRpZDogYTgyMDhkNjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM5KTogdGlkOiBhODIwOGQ2NSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzMSAg bG9uZ2VzdDogMTk0OTIzMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDApOiB0aWQ6IGE4 MjA4ZDY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjQxKTogdGlkOiBhODIwOGQ2NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0 aWQ6IGE4MjA4ZDY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI0Myk6IHRpZDogYTgyMDhkNjUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0 KTogdGlkOiBhODIwOGQ2NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiA1OWQ0OWY1ZiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDYpOiB0aWQ6IDU5ZDQ5ZjVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IDU5ZDQ5ZjVmICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyNDgpOiB0aWQ6IDU5ZDQ5ZjVmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAweDE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMjQ5KTogdGlkOiA1OWQ0OWY1ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNTApOiB0aWQ6IDU5ZDQ5ZjVmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1MSk6IHRpZDogNTlkNDlmNWYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzAgIGxv bmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUyKTogdGlkOiA1OWQ0 OWY1ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI1Myk6IHRpZDogNTlkNDlmNWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlk OiA1OWQ0OWY1ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNTUpOiB0aWQ6IDU5ZDQ5ZjVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nik6 IHRpZDogNTlkNDlmNWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogZjgxNjVlYTUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4 KTogdGlkOiBmODE2NWVhNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiBmODE2NWVhNSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjYwKTogdGlkOiBmODE2NWVhNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDE3YzAwIG5ibG9ja3MgMHgxOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDI2MSk6IHRpZDogZjgxNjVlYTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjYyKTogdGlkOiBmODE2NWVhNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjMpOiB0aWQ6IGY4MTY1ZWE1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI5ICBsb25n ZXN0OiAxOTQ5MjMyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NCk6IHRpZDogZjgxNjVl YTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNjUpOiB0aWQ6IGY4MTY1ZWE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDog ZjgxNjVlYTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjY3KTogdGlkOiBmODE2NWVhNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjgpOiB0 aWQ6IGY4MTY1ZWE1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IDEzNjViMGJmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6 IHRpZDogMTM2NWIwYmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogMTM2NWIwYmYgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDI3Mik6IHRpZDogMTM2NWIwYmYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgyNzMpOiB0aWQ6IDEzNjViMGJmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3NCk6IHRpZDogMTM2NWIwYmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc1KTogdGlkOiAxMzY1YjBiZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNyAgbG9uZ2Vz dDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzYpOiB0aWQ6IDEzNjViMGJm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjc3KTogdGlkOiAxMzY1YjBiZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IDEz NjViMGJmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI3OSk6IHRpZDogMTM2NWIwYmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgwKTogdGlk OiAxMzY1YjBiZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiBkZjcwMTMwOSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0 aWQ6IGRmNzAxMzA5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IGRmNzAxMzA5ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyODQpOiB0aWQ6IGRmNzAxMzA5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMjg1KTogdGlkOiBkZjcwMTMwOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy ODYpOiB0aWQ6IGRmNzAxMzA5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDI4Nyk6IHRpZDogZGY3MDEzMDkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjYgIGxvbmdlc3Q6 IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg4KTogdGlkOiBkZjcwMTMwOSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI4OSk6IHRpZDogZGY3MDEzMDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiBkZjcw MTMwOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyOTEpOiB0aWQ6IGRmNzAxMzA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Mik6IHRpZDog ZGY3MDEzMDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogMWYwMGQzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NCk6IHRpZDog MWYwMGQzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IDFmMDBkMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjk2 KTogdGlkOiAxZjAwZDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxYjgw MCBuYmxvY2tzIDB4MWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgy OTcpOiB0aWQ6IDFmMDBkMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTgpOiB0aWQ6IDFm MDBkMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyOTkpOiB0aWQ6IDFmMDBkMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNSAgbG9uZ2VzdDogMTk0OTIzMjUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMDApOiB0aWQ6IDFmMDBkMyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMSk6IHRpZDogMWYw MGQzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogMWYwMGQzICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMyk6IHRpZDogMWYw MGQzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNCk6IHRpZDogMWYwMGQzICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0 aWQ6IGM4ZGEwZTgwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDogYzhkYTBlODAgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNyk6IHRp ZDogYzhkYTBlODAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwOCk6IHRpZDogYzhkYTBlODAgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMDkpOiB0aWQ6IGM4ZGEwZTgw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMCk6IHRpZDogYzhkYTBlODAgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzExKTog dGlkOiBjOGRhMGU4MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjMyNCAgbG9uZ2VzdDogMTk0OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMTIpOiB0aWQ6IGM4ZGEwZTgwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzEzKTogdGlkOiBjOGRhMGU4MCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IGM4ZGEwZTgwICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNSk6IHRpZDogYzhkYTBlODAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzE2KTogdGlkOiBjOGRhMGU4MCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE3KTogdGlk OiBhYmY0N2NjYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IGFiZjQ3Y2NhICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTkpOiB0aWQ6 IGFiZjQ3Y2NhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMjApOiB0aWQ6IGFiZjQ3Y2NhICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWUwMDAgbmJsb2NrcyAweDIwIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzIxKTogdGlkOiBhYmY0N2NjYSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjIpOiB0aWQ6IGFiZjQ3Y2NhICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyMyk6IHRp ZDogYWJmNDdjY2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIzMjIgIGxvbmdlc3Q6IDE5NDkyMzIyCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzI0KTogdGlkOiBhYmY0N2NjYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyNSk6IHRpZDogYWJmNDdjY2EgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzI2KTogdGlkOiBhYmY0N2NjYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjcpOiB0aWQ6IGFiZjQ3Y2NhICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRpZDogYWJmNDdjY2EgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOSk6IHRpZDog MjExZDA3MzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiAyMTFkMDczOCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMxKTogdGlkOiAy MTFkMDczOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzMyKTogdGlkOiAyMTFkMDczOCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFmNDAwIG5ibG9ja3MgMHgyMSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMzMyk6IHRpZDogMjExZDA3MzggIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM0KTogdGlkOiAyMTFkMDczOCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzUpOiB0aWQ6 IDIxMWQwNzM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzIxICBsb25nZXN0OiAxOTQ5MjMyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzNik6IHRpZDogMjExZDA3MzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzcpOiB0aWQ6IDIxMWQwNzM4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzOCk6IHRpZDogMjExZDA3MzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM5KTogdGlkOiAyMTFkMDczOCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6IDIxMWQwNzM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IGY4 NjRjYTc0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0Mik6IHRpZDogZjg2NGNhNzQgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Myk6IHRpZDogZjg2 NGNhNzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0NCk6IHRpZDogZjg2NGNhNzQgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMDgwMCBuYmxvY2tzIDB4MjIgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNDUpOiB0aWQ6IGY4NjRjYTc0ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nik6IHRpZDogZjg2NGNhNzQgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ3KTogdGlkOiBm ODY0Y2E3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjMyMCAgbG9uZ2VzdDogMTk0OTIzMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNDgpOiB0aWQ6IGY4NjRjYTc0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ5KTogdGlkOiBmODY0Y2E3NCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTApOiB0aWQ6IGY4NjRjYTc0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1MSk6IHRpZDogZjg2NGNhNzQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzUyKTogdGlkOiBmODY0Y2E3NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTogdGlkOiAyNTNl MzE2YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IDI1M2UzMTZiICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IDI1M2Uz MTZiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNTYpOiB0aWQ6IDI1M2UzMTZiICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjFjMDAgbmJsb2NrcyAweDIzIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzU3KTogdGlkOiAyNTNlMzE2YiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTgpOiB0aWQ6IDI1M2UzMTZiICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1OSk6IHRpZDogMjUz ZTMxNmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMTkgIGxvbmdlc3Q6IDE5NDkyMzE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzYwKTogdGlkOiAyNTNlMzE2YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2MSk6IHRpZDogMjUzZTMxNmIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzYyKTogdGlkOiAyNTNlMzE2YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjMpOiB0aWQ6IDI1M2UzMTZiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM2NCk6IHRpZDogMjUzZTMxNmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRpZDogMjIxNGEw NzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY2KTogdGlkOiAyMjE0YTA3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY3KTogdGlkOiAyMjE0YTA3 OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzY4KTogdGlkOiAyMjE0YTA3OSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIzMDAwIG5ibG9ja3MgMHgyNSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM2OSk6IHRpZDogMjIxNGEwNzkgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzcwKTogdGlkOiAyMjE0YTA3OSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNzEpOiB0aWQ6IDIyMTRh MDc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzE3ICBsb25nZXN0OiAxOTQ5MjMxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 Mik6IHRpZDogMjIxNGEwNzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzMpOiB0aWQ6IDIyMTRhMDc5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3NCk6IHRpZDogMjIxNGEwNzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc1KTogdGlkOiAyMjE0YTA3OSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNzYpOiB0aWQ6IDIyMTRhMDc5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IGJhMTVjMDU0 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3OCk6IHRpZDogYmExNWMwNTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDogYmExNWMwNTQg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM4MCk6IHRpZDogYmExNWMwNTQgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNDQwMCBuYmxvY2tzIDB4MjYgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzODEpOiB0aWQ6IGJhMTVjMDU0ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4Mik6IHRpZDogYmExNWMwNTQgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzgzKTogdGlkOiBiYTE1YzA1 NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjMxNiAgbG9uZ2VzdDogMTk0OTIzMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODQp OiB0aWQ6IGJhMTVjMDU0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzg1KTogdGlkOiBiYTE1YzA1NCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzODYpOiB0aWQ6IGJhMTVjMDU0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Nyk6IHRpZDogYmExNWMwNTQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzg4KTogdGlkOiBiYTE1YzA1NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiA1M2JjMzAxYiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTApOiB0aWQ6IDUzYmMzMDFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTEpOiB0aWQ6IDUzYmMzMDFiICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgzOTIpOiB0aWQ6IDUzYmMzMDFiICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MjU4MDAgbmJsb2NrcyAweDI3IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzkzKTogdGlkOiA1M2JjMzAxYiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTQpOiB0aWQ6IDUzYmMzMDFiICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5NSk6IHRpZDogNTNiYzMwMWIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzMTUgIGxvbmdlc3Q6IDE5NDkyMzE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk2KTog dGlkOiA1M2JjMzAxYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDM5Nyk6IHRpZDogNTNiYzMwMWIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzk4KTogdGlkOiA1M2JjMzAxYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTkpOiB0aWQ6IDUzYmMzMDFiICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQwMCk6IHRpZDogNTNiYzMwMWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogNTM3OTVkOWMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDAyKTogdGlkOiA1Mzc5NWQ5YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiA1Mzc5NWQ5YyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDA0KTogdGlkOiA1Mzc5NWQ5YyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDI2YzAwIG5ibG9ja3MgMHgyOCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQwNSk6IHRpZDogNTM3OTVkOWMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDA2KTogdGlkOiA1Mzc5NWQ5YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MDcpOiB0aWQ6IDUzNzk1ZDljICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MzE0ICBsb25nZXN0OiAxOTQ5MjMxNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOCk6IHRp ZDogNTM3OTVkOWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MDkpOiB0aWQ6IDUzNzk1ZDljICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQx MCk6IHRpZDogNTM3OTVkOWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDExKTogdGlkOiA1Mzc5NWQ5YyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MTIpOiB0aWQ6IDUzNzk1ZDljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0aWQ6IGQzMWZmNWYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDE0KTogdGlkOiBkMzFmZjVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IGQzMWZmNWYgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQxNik6IHRpZDogZDMxZmY1ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDI4MDAwIG5ibG9ja3MgMHgyYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDQxNyk6IHRpZDogZDMxZmY1ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MTgpOiB0aWQ6IGQzMWZmNWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDE5KTogdGlkOiBkMzFmZjVmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzEyICBsb25n ZXN0OiAxOTQ5MjMxMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMCk6IHRpZDogZDMxZmY1 ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQyMSk6IHRpZDogZDMxZmY1ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IGQz MWZmNWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDIzKTogdGlkOiBkMzFmZjVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNCk6IHRpZDog ZDMxZmY1ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiBiNDNhMmViOSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6 IGI0M2EyZWI5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0aWQ6IGI0M2EyZWI5ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg0MjgpOiB0aWQ6IGI0M2EyZWI5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4Mjk0MDAgbmJsb2NrcyAweDJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoNDI5KTogdGlkOiBiNDNhMmViOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzAp OiB0aWQ6IGI0M2EyZWI5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDQzMSk6IHRpZDogYjQzYTJlYjkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTEgIGxvbmdlc3Q6IDE5 NDkyMzExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMyKTogdGlkOiBiNDNhMmViOSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQzMyk6IHRpZDogYjQzYTJlYjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiBiNDNhMmVi OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0MzUpOiB0aWQ6IGI0M2EyZWI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogYjQz YTJlYjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDogYTk3Yzk0NCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IGE5 N2M5NDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQzOSk6IHRpZDogYTk3Yzk0NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDQw KTogdGlkOiBhOTdjOTQ0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmE4 MDAgbmJsb2NrcyAweDJjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo NDQxKTogdGlkOiBhOTdjOTQ0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Mik6IHRpZDog YTk3Yzk0NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NDMpOiB0aWQ6IGE5N2M5NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTAgIGxvbmdlc3Q6IDE5NDkyMzEwCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ0KTogdGlkOiBhOTdjOTQ0ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ1KTogdGlk OiBhOTdjOTQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogYTk3Yzk0NCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDcpOiB0 aWQ6IGE5N2M5NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiBhOTdjOTQ0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NDkpOiB0aWQ6IDMxNjcwYzE1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogMzE2NzBjMTUgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ1MSk6IHRpZDogMzE2NzBjMTUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1Mik6IHRpZDogMzE2 NzBjMTUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyYmMwMCBuYmxvY2tz IDB4MmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NTMpOiB0aWQ6 IDMxNjcwYzE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NCk6IHRpZDogMzE2NzBjMTUg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNDU1KTogdGlkOiAzMTY3MGMxNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwOSAgbG9uZ2VzdDogMTk0OTIzMDkKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NTYpOiB0aWQ6IDMxNjcwYzE1ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU3KTogdGlkOiAzMTY3 MGMxNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IDMxNjcwYzE1ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1OSk6IHRpZDog MzE2NzBjMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiAzMTY3MGMxNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDYxKTogdGlkOiA4YzQ2NGE1MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IDhjNDY0YTUyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NjMpOiB0aWQ6IDhjNDY0YTUyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjQpOiB0aWQ6IDhjNDY0 YTUyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmQwMDAgbmJsb2NrcyAw eDJmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDY1KTogdGlkOiA4 YzQ2NGE1MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjYpOiB0aWQ6IDhjNDY0YTUyICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDQ2Nyk6IHRpZDogOGM0NjRhNTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMDcgIGxvbmdlc3Q6IDE5NDkyMzA3Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDY4KTogdGlkOiA4YzQ2NGE1MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2OSk6IHRpZDogOGM0NjRh NTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA4YzQ2NGE1MiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzEpOiB0aWQ6IDhj NDY0YTUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogOGM0NjRhNTIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3 Myk6IHRpZDogNGQ3MzU0MjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiA0ZDczNTQyMCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1 KTogdGlkOiA0ZDczNTQyMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDc2KTogdGlkOiA0ZDczNTQy MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJlNDAwIG5ibG9ja3MgMHgz MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ3Nyk6IHRpZDogNGQ3 MzU0MjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc4KTogdGlkOiA0ZDczNTQyMCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0 NzkpOiB0aWQ6IDRkNzM1NDIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzA2ICBsb25nZXN0OiAxOTQ5MjMwNgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ4MCk6IHRpZDogNGQ3MzU0MjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODEpOiB0aWQ6IDRkNzM1NDIw ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogNGQ3MzU0MjAgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgzKTogdGlkOiA0ZDcz NTQyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDRkNzM1NDIwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODUp OiB0aWQ6IDIyMThmNjJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogMjIxOGY2MmQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6 IHRpZDogMjIxOGY2MmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4OCk6IHRpZDogMjIxOGY2MmQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyZjgwMCBuYmxvY2tzIDB4MzEg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0ODkpOiB0aWQ6IDIyMThm NjJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5MCk6IHRpZDogMjIxOGY2MmQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDkx KTogdGlkOiAyMjE4ZjYyZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElO VUUgCkFHRiBCdWZmZXI6IFhBR0YgIE91dCBvZiBzcGFjZQoKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpj eWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNzAJdGFpbF9sc246IDEsNgpsZW5ndGggb2YgTG9n IFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDYJCW51bSBvcHM6IDQ4OQp1dWlkOiA3N2E4YTg0 NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGlu dXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDIyMThm NjJkICBsZW46IDExMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0 IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxKTogdGlkOiAyMjE4ZjYyZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIpOiB0aWQ6IDIyMThmNjJkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMpOiB0aWQ6IDIyMThmNjJkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQpOiB0aWQ6IDIyMThmNjJkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDUpOiB0aWQ6IDIyMThmNjJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlkOiBkY2I2YzFkMCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3KTogdGlkOiBkY2I2YzFkMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOCk6IHRpZDogZGNiNmMxZDAgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDkpOiB0aWQ6IGRjYjZjMWQwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4MzBjMDAgbmJsb2NrcyAweDMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMTApOiB0aWQ6IGRjYjZjMWQwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExKTogdGlkOiBkY2I2YzFkMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogZGNiNmMxZDAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDQgIGxvbmdlc3Q6 IDE5NDkyMzA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IGRjYjZjMWQwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTQpOiB0aWQ6IGRjYjZjMWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiBkY2I2YzFk MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNik6IHRpZDogZGNiNmMxZDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IGRjYjZj MWQwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxOCk6IHRpZDogYTUxZWUwM2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IGE1MWVl MDNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMCk6IHRpZDogYTUxZWUwM2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxKTog dGlkOiBhNTFlZTAzYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMyMDAw IG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIy KTogdGlkOiBhNTFlZTAzYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogYTUx ZWUwM2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjQpOiB0aWQ6IGE1MWVlMDNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAyICBsb25nZXN0OiAxOTQ5MjMwMgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiBhNTFlZTAzYyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlkOiBh NTFlZTAzYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogYTUxZWUwM2MgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgpOiB0aWQ6 IGE1MWVlMDNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiBhNTFlZTAzYyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzApOiB0aWQ6IDE2MTc1YWI0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiAxNjE3NWFiNCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIp OiB0aWQ6IDE2MTc1YWI0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMyk6IHRpZDogMTYxNzVhYjQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMzQwMCBuYmxvY2tzIDB4MzUg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNCk6IHRpZDogMTYxNzVh YjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IDE2MTc1YWI0ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2KTog dGlkOiAxNjE3NWFiNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjMwMSAgbG9uZ2VzdDogMTk0OTIzMDEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNyk6IHRpZDogMTYxNzVhYjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDogMTYxNzVhYjQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzkpOiB0aWQ6IDE2MTc1YWI0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwKTogdGlkOiAxNjE3NWFiNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MSk6IHRpZDogMTYxNzVhYjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiA2MTI3 MjY2MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0Myk6IHRpZDogNjEyNzI2NjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0KTogdGlkOiA2MTI3MjY2 MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDUpOiB0aWQ6IDYxMjcyNjYyICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzQ4MDAgbmJsb2NrcyAweDM2IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDYpOiB0aWQ6IDYxMjcyNjYyICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA2MTI3MjY2MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogNjEyNzI2NjIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzMDAgIGxvbmdlc3Q6IDE5NDkyMzAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0 aWQ6IDYxMjcyNjYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNTApOiB0aWQ6IDYxMjcyNjYyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUx KTogdGlkOiA2MTI3MjY2MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg1Mik6IHRpZDogNjEyNzI2NjIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NTMpOiB0aWQ6IDYxMjcyNjYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NCk6IHRpZDogNjU4NzNkMWQgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NTUpOiB0aWQ6IDY1ODczZDFkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDogNjU4NzNkMWQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDU3KTogdGlkOiA2NTg3M2QxZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDM1YzAwIG5ibG9ja3MgMHgzNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDU4KTogdGlkOiA2NTg3M2QxZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1OSk6IHRpZDogNjU4NzNkMWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IDY1ODczZDFkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk5ICBsb25nZXN0 OiAxOTQ5MjI5OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiA2NTg3M2QxZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDYyKTogdGlkOiA2NTg3M2QxZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogNjU4NzNk MWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNjQpOiB0aWQ6IDY1ODczZDFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiA2NTg3 M2QxZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IGY2ZDRiNTMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBmNmQ0 YjUzMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjgpOiB0aWQ6IGY2ZDRiNTMyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2OSk6 IHRpZDogZjZkNGI1MzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNzAw MCBuYmxvY2tzIDB4MzkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg3 MCk6IHRpZDogZjZkNGI1MzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IGY2 ZDRiNTMyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDcyKTogdGlkOiBmNmQ0YjUzMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NyAgbG9uZ2VzdDogMTk0OTIyOTcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogZjZkNGI1MzIgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NCk6IHRpZDog ZjZkNGI1MzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IGY2ZDRiNTMyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc2KTogdGlk OiBmNmQ0YjUzMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogZjZkNGI1MzIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDc4KTogdGlkOiA5YzIxYjMxYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogOWMyMWIzMWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgw KTogdGlkOiA5YzIxYjMxYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODEpOiB0aWQ6IDljMjFiMzFj ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mzg0MDAgbmJsb2NrcyAweDNh IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODIpOiB0aWQ6IDljMjFi MzFjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiA5YzIxYjMxYyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4NCk6 IHRpZDogOWMyMWIzMWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyOTYgIGxvbmdlc3Q6IDE5NDkyMjk2Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODUpOiB0aWQ6IDljMjFiMzFjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODYpOiB0aWQ6IDljMjFiMzFjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDg3KTogdGlkOiA5YzIxYjMxYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OCk6IHRpZDogOWMyMWIzMWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6IDljMjFiMzFjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogODBh ZmNjZTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6IDgwYWZjY2U3ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Mik6IHRpZDogODBhZmNj ZTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkzKTogdGlkOiA4MGFmY2NlNyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM5ODAwIG5ibG9ja3MgMHgzYiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDk0KTogdGlkOiA4MGFmY2NlNyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogODBhZmNjZTcgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IDgwYWZjY2U3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjk1ICBsb25nZXN0OiAxOTQ5MjI5NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTog dGlkOiA4MGFmY2NlNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDk4KTogdGlkOiA4MGFmY2NlNyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 OSk6IHRpZDogODBhZmNjZTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTAwKTogdGlkOiA4MGFmY2NlNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMDEpOiB0aWQ6IDgwYWZjY2U3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDIpOiB0aWQ6IGM0ZGYyMWQwICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEwMyk6IHRpZDogYzRkZjIxZDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNCk6IHRpZDogYzRkZjIxZDAgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDEwNSk6IHRpZDogYzRkZjIxZDAgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgzYWMwMCBuYmxvY2tzIDB4M2MgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICgxMDYpOiB0aWQ6IGM0ZGYyMWQwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwNyk6IHRpZDogYzRkZjIxZDAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiBjNGRmMjFkMCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5 NCAgbG9uZ2VzdDogMTk0OTIyOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6 IGM0ZGYyMWQwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTEwKTogdGlkOiBjNGRmMjFkMCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEp OiB0aWQ6IGM0ZGYyMWQwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDExMik6IHRpZDogYzRkZjIxZDAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTEzKTogdGlkOiBjNGRmMjFkMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE0KTogdGlkOiAzMTc5MjlkZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMTUpOiB0aWQ6IDMxNzkyOWRmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTYpOiB0aWQ6IDMxNzkyOWRmICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxMTcpOiB0aWQ6IDMxNzkyOWRmICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4M2MwMDAgbmJsb2NrcyAweDNlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMTE4KTogdGlkOiAzMTc5MjlkZiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMTkpOiB0aWQ6IDMxNzkyOWRmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogMzE3OTI5ZGYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTIg IGxvbmdlc3Q6IDE5NDkyMjkyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiAz MTc5MjlkZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDEyMik6IHRpZDogMzE3OTI5ZGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTog dGlkOiAzMTc5MjlkZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxMjQpOiB0aWQ6IDMxNzkyOWRmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEy NSk6IHRpZDogMzE3OTI5ZGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogM2FkNWE2ZjIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTI3KTogdGlkOiAzYWQ1YTZmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI4KTogdGlkOiAzYWQ1YTZmMiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMTI5KTogdGlkOiAzYWQ1YTZmMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDNkNDAwIG5ibG9ja3MgMHgzZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDEzMCk6IHRpZDogM2FkNWE2ZjIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTMxKTogdGlkOiAzYWQ1YTZmMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDNhZDVhNmYyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkxICBs b25nZXN0OiAxOTQ5MjI5MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogM2Fk NWE2ZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxMzQpOiB0aWQ6IDNhZDVhNmYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRp ZDogM2FkNWE2ZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTM2KTogdGlkOiAzYWQ1YTZmMiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcp OiB0aWQ6IDNhZDVhNmYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IGExMDdlOWRhICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEz OSk6IHRpZDogYTEwN2U5ZGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MCk6IHRpZDogYTEwN2U5ZGEgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDE0MSk6IHRpZDogYTEwN2U5ZGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgzZTgwMCBuYmxvY2tzIDB4NDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICgxNDIpOiB0aWQ6IGExMDdlOWRhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE0Myk6IHRpZDogYTEwN2U5ZGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiBhMTA3ZTlkYSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5MCAgbG9u Z2VzdDogMTk0OTIyOTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IGExMDdl OWRhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTQ2KTogdGlkOiBhMTA3ZTlkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6 IGExMDdlOWRhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE0OCk6IHRpZDogYTEwN2U5ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTog dGlkOiBhMTA3ZTlkYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUwKTogdGlkOiA1ZWUxNzY3ZCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEp OiB0aWQ6IDVlZTE3NjdkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTIpOiB0aWQ6IDVlZTE3NjdkICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxNTMpOiB0aWQ6IDVlZTE3NjdkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4M2ZjMDAgbmJsb2NrcyAweDQxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMTU0KTogdGlkOiA1ZWUxNzY3ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNTUpOiB0aWQ6IDVlZTE3NjdkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogNWVlMTc2N2QgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODkgIGxvbmdl c3Q6IDE5NDkyMjg5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3KTogdGlkOiA1ZWUxNzY3 ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE1OCk6IHRpZDogNWVlMTc2N2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA1 ZWUxNzY3ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxNjApOiB0aWQ6IDVlZTE3NjdkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRp ZDogNWVlMTc2N2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogMzA0ZTQ5ZTYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTog dGlkOiAzMDRlNDllNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0KTogdGlkOiAzMDRlNDllNiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMTY1KTogdGlkOiAzMDRlNDllNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDQxMDAwIG5ibG9ja3MgMHg0MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDE2Nik6IHRpZDogMzA0ZTQ5ZTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTY3KTogdGlkOiAzMDRlNDllNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IDMwNGU0OWU2ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg3ICBsb25nZXN0 OiAxOTQ5MjI4NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogMzA0ZTQ5ZTYg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNzApOiB0aWQ6IDMwNGU0OWU2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogMzA0 ZTQ5ZTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTcyKTogdGlkOiAzMDRlNDllNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6 IDMwNGU0OWU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNzQpOiB0aWQ6IGNhMjM1MTllICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRp ZDogY2EyMzUxOWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRpZDogY2EyMzUxOWUgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDE3Nyk6IHRpZDogY2EyMzUxOWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg0MjQwMCBuYmxvY2tzIDB4NDQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MApPcGVyICgxNzgpOiB0aWQ6IGNhMjM1MTllICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 OSk6IHRpZDogY2EyMzUxOWUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiBjYTIzNTE5ZSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NiAgbG9uZ2VzdDog MTk0OTIyODYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IGNhMjM1MTllICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTgyKTogdGlkOiBjYTIzNTE5ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IGNhMjM1 MTllICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE4NCk6IHRpZDogY2EyMzUxOWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiBj YTIzNTE5ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlkOiAyZjlkMzM2MyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6 IDJmOWQzMzYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxODgpOiB0aWQ6IDJmOWQzMzYzICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgxODkpOiB0aWQ6IDJmOWQzMzYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NDM4MDAgbmJsb2NrcyAweDQ1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoMTkwKTogdGlkOiAyZjlkMzM2MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEp OiB0aWQ6IDJmOWQzMzYzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogMmY5ZDMzNjMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODUgIGxvbmdlc3Q6IDE5 NDkyMjg1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlkOiAyZjlkMzM2MyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE5NCk6IHRpZDogMmY5ZDMzNjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiAyZjlkMzM2 MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxOTYpOiB0aWQ6IDJmOWQzMzYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogMmY5 ZDMzNjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDogM2JiNDEzNzQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiAz YmI0MTM3NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjAwKTogdGlkOiAzYmI0MTM3NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MjAxKTogdGlkOiAzYmI0MTM3NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDQ0YzAwIG5ibG9ja3MgMHg0NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDIwMik6IHRpZDogM2JiNDEzNzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTog dGlkOiAzYmI0MTM3NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IDNiYjQxMzc0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg0ICBsb25nZXN0OiAxOTQ5 MjI4NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogM2JiNDEzNzQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy MDYpOiB0aWQ6IDNiYjQxMzc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogM2JiNDEzNzQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjA4KTogdGlkOiAzYmI0MTM3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDNiYjQx Mzc0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IDMzYmRjZTBhICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogMzNi ZGNlMGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxMik6IHRpZDogMzNiZGNlMGEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIx Myk6IHRpZDogMzNiZGNlMGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0 NjAwMCBuYmxvY2tzIDB4NDggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgyMTQpOiB0aWQ6IDMzYmRjZTBhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRp ZDogMzNiZGNlMGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiAzM2JkY2UwYSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4MiAgbG9uZ2VzdDogMTk0OTIy ODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IDMzYmRjZTBhICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE4 KTogdGlkOiAzM2JkY2UwYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0aWQ6IDMzYmRjZTBhICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDIyMCk6IHRpZDogMzNiZGNlMGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiAzM2JkY2Uw YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjIyKTogdGlkOiA1OTZkYWVmNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IDU5NmRh ZWY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMjQpOiB0aWQ6IDU5NmRhZWY0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjUp OiB0aWQ6IDU5NmRhZWY0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDc0 MDAgbmJsb2NrcyAweDQ5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo MjI2KTogdGlkOiA1OTZkYWVmNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6 IDU5NmRhZWY0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDIyOCk6IHRpZDogNTk2ZGFlZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODEgIGxvbmdlc3Q6IDE5NDkyMjgx Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiA1OTZkYWVmNCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6 IHRpZDogNTk2ZGFlZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlkOiA1OTZkYWVmNCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy MzIpOiB0aWQ6IDU5NmRhZWY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogNTk2ZGFlZjQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIzNCk6IHRpZDogNzlhN2E3M2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiA3OWE3YTcz ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjM2KTogdGlkOiA3OWE3YTczZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjM3KTog dGlkOiA3OWE3YTczZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ4ODAw IG5ibG9ja3MgMHg0YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIz OCk6IHRpZDogNzlhN2E3M2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiA3 OWE3YTczZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgyNDApOiB0aWQ6IDc5YTdhNzNmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjgwICBsb25nZXN0OiAxOTQ5MjI4MAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogNzlhN2E3M2YgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDIpOiB0 aWQ6IDc5YTdhNzNmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDogNzlhN2E3M2YgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ0 KTogdGlkOiA3OWE3YTczZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDUpOiB0aWQ6IDc5YTdhNzNmICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNDYpOiB0aWQ6IDRjNzlmZWYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogNGM3OWZlZjAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI0OCk6IHRpZDogNGM3OWZlZjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0OSk6IHRp ZDogNGM3OWZlZjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0OWMwMCBu YmxvY2tzIDB4NGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNTAp OiB0aWQ6IDRjNzlmZWYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogNGM3 OWZlZjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjUyKTogdGlkOiA0Yzc5ZmVmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3OSAgbG9uZ2VzdDogMTk0OTIyNzkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IDRjNzlmZWYwICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU0KTogdGlk OiA0Yzc5ZmVmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDRjNzlmZWYwICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1Nik6 IHRpZDogNGM3OWZlZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU3KTogdGlkOiA0Yzc5ZmVmMCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjU4KTogdGlkOiAyODZkNGZkMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6IDI4NmQ0ZmQzICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjApOiB0aWQ6IDI4NmQ0ZmQzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjEpOiB0aWQ6 IDI4NmQ0ZmQzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGIwMDAgbmJs b2NrcyAweDRkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjYyKTog dGlkOiAyODZkNGZkMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IDI4NmQ0 ZmQzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDI2NCk6IHRpZDogMjg2ZDRmZDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzcgIGxvbmdlc3Q6IDE5NDkyMjc3Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiAyODZkNGZkMyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nik6IHRpZDog Mjg2ZDRmZDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiAyODZkNGZkMyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjgpOiB0 aWQ6IDI4NmQ0ZmQzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OSk6IHRpZDogMjg2ZDRmZDMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3MCk6IHRpZDogNDM0ZWE3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDQzNGVhN2UgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3Mik6IHRpZDogNDM0ZWE3ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjczKTogdGlkOiA0MzRl YTdlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGM0MDAgbmJsb2NrcyAw eDRlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjc0KTogdGlkOiA0 MzRlYTdlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogNDM0ZWE3ZSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy NzYpOiB0aWQ6IDQzNGVhN2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNzYgIGxvbmdlc3Q6IDE5NDkyMjc2Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjc3KTogdGlkOiA0MzRlYTdlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc4KTogdGlkOiA0MzRlYTdlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogNDM0ZWE3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODApOiB0aWQ6IDQzNGVhN2Ug IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiA0MzRlYTdlICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6 IGNmMjcyZjU5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogY2YyNzJmNTkgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NCk6IHRpZDog Y2YyNzJmNTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI4NSk6IHRpZDogY2YyNzJmNTkgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ZDgwMCBuYmxvY2tzIDB4NGYgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyODYpOiB0aWQ6IGNmMjcyZjU5ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogY2YyNzJmNTkgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlk OiBjZjI3MmY1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI3NSAgbG9uZ2VzdDogMTk0OTIyNzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODkpOiB0aWQ6IGNmMjcyZjU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkwKTogdGlkOiBjZjI3MmY1OSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTEpOiB0aWQ6IGNmMjcyZjU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5Mik6IHRpZDogY2YyNzJmNTkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiBjZjI3MmY1OSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiA4 YTA1OTljMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IDhhMDU5OWMwICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTYpOiB0aWQ6IDhh MDU5OWMwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyOTcpOiB0aWQ6IDhhMDU5OWMwICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGVjMDAgbmJsb2NrcyAweDUwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjk4KTogdGlkOiA4YTA1OTljMCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDhhMDU5OWMwICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDog OGEwNTk5YzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyNzQgIGxvbmdlc3Q6IDE5NDkyMjc0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzAxKTogdGlkOiA4YTA1OTljMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMik6IHRpZDogOGEwNTk5YzAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzAzKTogdGlkOiA4YTA1OTljMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDQpOiB0aWQ6IDhhMDU5OWMwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogOGEwNTk5YzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDogYWEw MGI5YzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiBhYTAwYjljOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA4KTogdGlkOiBhYTAw YjljOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzA5KTogdGlkOiBhYTAwYjljOCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAwIG5ibG9ja3MgMHg1MiBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMxMCk6IHRpZDogYWEwMGI5YzggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBhYTAwYjljOCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IGFh MDBiOWM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjcyICBsb25nZXN0OiAxOTQ5MjI3MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMxMyk6IHRpZDogYWEwMGI5YzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0aWQ6IGFhMDBiOWM4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxNSk6IHRpZDogYWEwMGI5YzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE2KTogdGlkOiBhYTAwYjljOCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMTcpOiB0aWQ6IGFhMDBiOWM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IGY0MDQy MmUwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogZjQwNDIyZTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMCk6IHRpZDogZjQwNDIy ZTAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyMSk6IHRpZDogZjQwNDIyZTAgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MTQwMCBuYmxvY2tzIDB4NTMgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMjIpOiB0aWQ6IGY0MDQyMmUwICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogZjQwNDIyZTAgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiBmNDA0 MjJlMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI3MSAgbG9uZ2VzdDogMTk0OTIyNzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MjUpOiB0aWQ6IGY0MDQyMmUwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI2KTogdGlkOiBmNDA0MjJlMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjcpOiB0aWQ6IGY0MDQyMmUwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyOCk6IHRpZDogZjQwNDIyZTAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzI5KTogdGlkOiBmNDA0MjJlMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiBhNTVhYWU0 MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzEpOiB0aWQ6IGE1NWFhZTQwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzIpOiB0aWQ6IGE1NWFhZTQw ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzMpOiB0aWQ6IGE1NWFhZTQwICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTI4MDAgbmJsb2NrcyAweDU0IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzM0KTogdGlkOiBhNTVhYWU0MCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGE1NWFhZTQwICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogYTU1YWFl NDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNzAgIGxvbmdlc3Q6IDE5NDkyMjcwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM3 KTogdGlkOiBhNTVhYWU0MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMzOCk6IHRpZDogYTU1YWFlNDAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM5KTogdGlkOiBhNTVhYWU0MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDApOiB0aWQ6IGE1NWFhZTQwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM0MSk6IHRpZDogYTU1YWFlNDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6IHRpZDogZWY3M2NlZjUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQzKTogdGlkOiBlZjczY2VmNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ0KTogdGlkOiBlZjczY2VmNSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ1KTogdGlkOiBlZjczY2VmNSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDUzYzAwIG5ibG9ja3MgMHg1NSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM0Nik6IHRpZDogZWY3M2NlZjUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBlZjczY2VmNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IGVmNzNjZWY1 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjY5ICBsb25nZXN0OiAxOTQ5MjI2OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0OSk6 IHRpZDogZWY3M2NlZjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNTApOiB0aWQ6IGVmNzNjZWY1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1MSk6IHRpZDogZWY3M2NlZjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUyKTogdGlkOiBlZjczY2VmNSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTMpOiB0aWQ6IGVmNzNjZWY1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IDI3MDc2MzAzICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM1NSk6IHRpZDogMjcwNzYzMDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nik6IHRpZDogMjcwNzYzMDMgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDM1Nyk6IHRpZDogMjcwNzYzMDMgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg1NTAwMCBuYmxvY2tzIDB4NTcgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgzNTgpOiB0aWQ6IDI3MDc2MzAzICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogMjcwNzYzMDMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiAyNzA3NjMwMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI2NyAgbG9uZ2VzdDogMTk0OTIyNjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjEpOiB0 aWQ6IDI3MDc2MzAzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiAyNzA3NjMwMyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjMpOiB0aWQ6IDI3MDc2MzAzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDogMjcwNzYzMDMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzY1KTogdGlkOiAyNzA3NjMwMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlkOiBjNWI5OTVkZCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNjcpOiB0aWQ6IGM1Yjk5NWRkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjgpOiB0aWQ6IGM1Yjk5NWRkICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzNjkpOiB0aWQ6IGM1Yjk5NWRkICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NTY0MDAgbmJsb2NrcyAweDU4IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMzcwKTogdGlkOiBjNWI5OTVkZCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzEpOiB0aWQ6IGM1Yjk5NWRkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogYzViOTk1ZGQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy NjYgIGxvbmdlc3Q6IDE5NDkyMjY2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzczKTogdGlk OiBjNWI5OTVkZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM3NCk6IHRpZDogYzViOTk1ZGQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1 KTogdGlkOiBjNWI5OTVkZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNzYpOiB0aWQ6IGM1Yjk5NWRkICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3Nyk6IHRpZDogYzViOTk1ZGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDogMmRlYjkxZjAgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzc5KTogdGlkOiAyZGViOTFmMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgwKTogdGlkOiAyZGViOTFmMCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzgxKTogdGlkOiAyZGViOTFmMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDU3ODAwIG5ibG9ja3MgMHg1OSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDM4Mik6IHRpZDogMmRlYjkxZjAgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgzKTogdGlkOiAyZGViOTFmMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IDJkZWI5MWYwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY1 ICBsb25nZXN0OiAxOTQ5MjI2NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NSk6IHRpZDog MmRlYjkxZjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IDJkZWI5MWYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6 IHRpZDogMmRlYjkxZjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiAyZGViOTFmMCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz ODkpOiB0aWQ6IDJkZWI5MWYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IGE1NDYyZTQzICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5MSk6IHRpZDogYTU0NjJlNDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Mik6IHRpZDogYTU0NjJlNDMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDM5Myk6IHRpZDogYTU0NjJlNDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg1OGMwMCBuYmxvY2tzIDB4NWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgzOTQpOiB0aWQ6IGE1NDYyZTQzICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5NSk6IHRpZDogYTU0NjJlNDMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiBhNTQ2MmU0MyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NCAg bG9uZ2VzdDogMTk0OTIyNjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6IGE1 NDYyZTQzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzk4KTogdGlkOiBhNTQ2MmU0MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTkpOiB0 aWQ6IGE1NDYyZTQzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQwMCk6IHRpZDogYTU0NjJlNDMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAx KTogdGlkOiBhNTQ2MmU0MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiBmNTBiZDlhMSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MDMpOiB0aWQ6IGY1MGJkOWExICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDQpOiB0aWQ6IGY1MGJkOWExICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0MDUpOiB0aWQ6IGY1MGJkOWExICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NWEwMDAgbmJsb2NrcyAweDVjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoNDA2KTogdGlkOiBmNTBiZDlhMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDcpOiB0aWQ6IGY1MGJkOWExICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogZjUwYmQ5YTEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjIgIGxv bmdlc3Q6IDE5NDkyMjYyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTogdGlkOiBmNTBi ZDlhMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQxMCk6IHRpZDogZjUwYmQ5YTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDExKTogdGlk OiBmNTBiZDlhMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MTIpOiB0aWQ6IGY1MGJkOWExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6 IHRpZDogZjUwYmQ5YTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogNzc1Y2U3ZTkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE1 KTogdGlkOiA3NzVjZTdlOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE2KTogdGlkOiA3NzVjZTdlOSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNDE3KTogdGlkOiA3NzVjZTdlOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDViNDAwIG5ibG9ja3MgMHg1ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDQxOCk6IHRpZDogNzc1Y2U3ZTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDE5KTogdGlkOiA3NzVjZTdlOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IDc3NWNlN2U5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYxICBsb25n ZXN0OiAxOTQ5MjI2MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRpZDogNzc1Y2U3 ZTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MjIpOiB0aWQ6IDc3NWNlN2U5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMyk6IHRpZDog Nzc1Y2U3ZTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDI0KTogdGlkOiA3NzVjZTdlOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0 aWQ6IDc3NWNlN2U5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IDZkMzg4NTMgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI3KTog dGlkOiA2ZDM4ODUzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjgpOiB0aWQ6IDZkMzg4NTMgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQyOSk6IHRpZDogNmQzODg1MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDVjODAwIG5ibG9ja3MgMHg1ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDQzMCk6IHRpZDogNmQzODg1MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzEp OiB0aWQ6IDZkMzg4NTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiA2ZDM4ODUzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYwICBsb25nZXN0OiAxOTQ5 MjI2MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogNmQzODg1MyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQz NCk6IHRpZDogNmQzODg1MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzUpOiB0aWQ6IDZkMzg4NTMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDM2KTogdGlkOiA2ZDM4ODUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDogNmQzODg1MyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDM4KTogdGlkOiBjYzNjMjhhYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzkpOiB0aWQ6IGNjM2MyOGFi ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NDApOiB0aWQ6IGNjM2MyOGFiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NDEpOiB0 aWQ6IGNjM2MyOGFiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWRjMDAg bmJsb2NrcyAweDVmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDQy KTogdGlkOiBjYzNjMjhhYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGNj M2MyOGFiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQ0NCk6IHRpZDogY2MzYzI4YWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTkgIGxvbmdlc3Q6IDE5NDkyMjU5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiBjYzNjMjhhYiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0Nik6IHRp ZDogY2MzYzI4YWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3KTogdGlkOiBjYzNjMjhhYiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDgp OiB0aWQ6IGNjM2MyOGFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogY2MzYzI4YWIgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ1MCk6IHRpZDogM2NjYTc0MTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUxKTogdGlkOiAzY2NhNzQxMSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDUyKTogdGlkOiAzY2NhNzQxMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDUzKTogdGlk OiAzY2NhNzQxMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVmMDAwIG5i bG9ja3MgMHg2MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ1NCk6 IHRpZDogM2NjYTc0MTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiAzY2Nh NzQxMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NTYpOiB0aWQ6IDNjY2E3NDExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU3ICBsb25nZXN0OiAxOTQ5MjI1NwotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDogM2NjYTc0MTEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTgpOiB0aWQ6 IDNjY2E3NDExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6IHRpZDogM2NjYTc0MTEgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYwKTog dGlkOiAzY2NhNzQxMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IDNjY2E3NDExICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NjIpOiB0aWQ6IDllZTJjMzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTogdGlkOiA5ZWUyYzMwICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjQpOiB0aWQ6IDllZTJjMzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ2NSk6IHRpZDogOWVl MmMzMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDYwNDAwIG5ibG9ja3Mg MHg2MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ2Nik6IHRpZDog OWVlMmMzMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IDllZTJjMzAgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDY4KTogdGlkOiA5ZWUyYzMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjU2ICBsb25nZXN0OiAxOTQ5MjI1NgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogOWVlMmMzMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3MCk6IHRpZDogOWVlMmMzMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6IDllZTJjMzAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDcyKTogdGlkOiA5ZWUyYzMw ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogOWVlMmMzMCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlk OiBkZjEzZmVlNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NzUpOiB0aWQ6IGRmMTNmZWU0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6 IGRmMTNmZWU0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NzcpOiB0aWQ6IGRmMTNmZWU0ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjE4MDAgbmJsb2NrcyAweDYzIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDc4KTogdGlkOiBkZjEzZmVlNCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IGRmMTNmZWU0ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRp ZDogZGYxM2ZlZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyNTUgIGxvbmdlc3Q6IDE5NDkyMjU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDgxKTogdGlkOiBkZjEzZmVlNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4Mik6IHRpZDogZGYxM2ZlZTQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDgzKTogdGlkOiBkZjEzZmVlNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODQpOiB0aWQ6IGRmMTNmZWU0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDogZGYxM2ZlZTQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDog Y2VjNDEyYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6IGNlYzQxMmMgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4OCk6IHRpZDogY2Vj NDEyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCklOT0RFOiAj cmVnczogMyAgIE5vdCBwcmludGluZyByZXN0IG9mIGRhdGEKCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDEzNAl0YWlsX2xzbjogMSw3MApsZW5ndGggb2Yg TG9nIFJlY29yZDogNTEyCXByZXYgb2Zmc2V0OiA3MAkJbnVtIG9wczogNQp1dWlkOiA3N2E4YTg0 NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGlu dXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDNiZTZl MGEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEpOiB0aWQ6IDNiZTZlMGEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IFNCX0NPVU5UICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiAzYmU2ZTBhMCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAwICgweDApICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzKTogdGlkOiAzYmU2ZTBhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKU1VQRVIgQkxPQ0sgQnVmZmVyOiAKaWNvdW50OiA2NCAgaWZyZWU6IDU5ICBmZGJsa3M6IDc3 OTYxMTUwICBmcmV4dDogMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQpOiB0aWQ6IDNiZTZl MGEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDEzNgl0YWlsX2xzbjogMSwxMzQK bGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9mZnNldDogMTM0CQludW0gb3BzOiAxCnV1 aWQ6IDc3YThhODQ1LTAzN2ItNDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDogbGl0dGxl IGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6 IHRpZDogNGM1YzllNTQgIGxlbjogOCAgY2xpZW50aWQ6IExPRyAgZmxhZ3M6IFVOTU9VTlQgClVu bW91bnQgZmlsZXN5c3RlbQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAy CQlsc246IDEsMTM4CXRhaWxfbHNuOiAxLDEzOApsZW5ndGggb2YgTG9nIFJlY29yZDogNjE0NAlw cmV2IG9mZnNldDogMTM2CQludW0gb3BzOiA5Nwp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0NjYtYjJl OS1lMzEzNmMyN2JlNjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2 OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGI3ZWIyNDkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6 IHRpZDogYjdlYjI0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IGI3ZWIyNDkgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgz ICAgZHNpemU6IDI4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDMp OiB0aWQ6IGI3ZWIyNDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5r IDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhiIG10aW1lIDB4YiBjdGltZSAweGIKc2l6ZSAweDFhIG5i bG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNCk6IHRp ZDogYjdlYjI0OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBp bm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSAyNgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDUpOiB0aWQ6IGI3ZWIyNDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNik6IHRpZDogYjdl YjI0OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGIKc2l6ZSAweDYxODAwIG5ibG9ja3Mg MHg2MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNyk6IHRpZDogYjdlYjI0OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4KTogdGlkOiBiN2ViMjQ5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzog MHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ODQgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZm ZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiBiN2ViMjQ5ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMCk6 IHRpZDogMWMyMDE3YzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDFjMjAxN2M1ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMik6IHRp ZDogMWMyMDE3YzUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTMpOiB0aWQ6IDFjMjAxN2M1ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YgpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQpOiB0 aWQ6IDFjMjAxN2M1ICBsZW46IDMyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVGSTog ICNyZWdzOiAxICAgIG51bV9leHRlbnRzOiAxICBpZDogMHhmZmZmZmZmZmUzZjQ0MDAwCihzOiAw eGMsIGw6IDk5KSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNSk6IHRpZDogMWMyMDE3YzUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE2KTogdGlkOiAxYzIwMTdjNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDogMWMyMDE3YzYg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5B Q1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4KTogdGlkOiAxYzIwMTdjNiAgbGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFRkQ6ICAjcmVnczogMSAgICBudW1fZXh0ZW50czogMSAgaWQ6IDB4ZmZmZmZmZmZl M2Y0NDAwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiAxYzIwMTdjNiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy MCk6IHRpZDogMWMyMDE3YzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzNTQgIGxvbmdlc3Q6IDE5NDkyMzU0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjEpOiB0aWQ6IDFjMjAxN2M2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiAxYzIwMTdjNiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMyk6IHRpZDogMWMyMDE3YzYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogMWMyMDE3YzYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IDFjMjAxN2M2ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDI2KTogdGlkOiAxYzIwMTdjNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDAgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGIKc2l6ZSAw eDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3KTogdGlkOiAxYzIwMTdjNiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6 IDFjMjAxN2M3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiAxYzIwMTdjNyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiAzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDFj MjAxN2M3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMxKTogdGlkOiAxYzIwMTdjNyAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAwIHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhiCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMik6IHRpZDogMWMyMDE3 YzcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzMpOiB0aWQ6IDFjMjAxN2M3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1 Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg CmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZm ZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZm IDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNCk6IHRpZDogMWMyMDE3YzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNSk6IHRpZDogMWMyMDE3YzcgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IDFjMjAxN2M3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogNjk3 MTQ5MDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IDY5NzE0OTA5ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IFJFTU9WRSAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiAzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IDY5NzE0OTA5 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiA4CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAwCk9wZXIgKDQwKTogdGlkOiA2OTcxNDkwOSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2 ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGIgbXRpbWUgMHhi IGN0aW1lIDB4YgpzaXplIDB4NiBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDQxKTogdGlkOiA2OTcxNDkwOSAgbGVuOiA4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkxPQ0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXpl IDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mik6IHRpZDogNjk3MTQ5MDkgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgz ICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDc2OApPcGVyICg0Myk6IHRpZDogNjk3MTQ5MDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhiCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NCk6IHRpZDogNjk3MTQ5MDkgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUpOiB0 aWQ6IDY5NzE0OTA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kg QnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICBy b290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ODMgCmJ1Y2tldFs0IC0gN106IDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFd OiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIg LSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tl dFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nik6IHRp ZDogNjk3MTQ5MDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA0YzlhNGMxMyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OCk6IHRp ZDogNGM5YTRjMTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlkOiA0YzlhNGMxMyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAw eDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIg KDUwKTogdGlkOiA0YzlhNGMxMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAwIHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhiCnNpemUgMHgwIG5i bG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1MSk6IHRpZDogNGM5YTRjMTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTIpOiB0aWQ6IDRjOWE0YzEzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAx ICBmcmVlIzogMHgzZCAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5 XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogNGM5YTRj MTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg1NCk6IHRpZDogNGM5YTRjMTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IDRj OWE0YzEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDogYmZlZmEwM2MgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IGJm ZWZhMDNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IENSRUFURSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNTgpOiB0aWQ6IGJmZWZhMDNjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDU5KTogdGlkOiBiZmVmYTAzYyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAg ZnJlZSM6IDB4M2MgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06 IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjApOiB0aWQ6IGJmZWZhMDNj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNjEpOiB0aWQ6IGJmZWZhMDNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYyKTogdGlkOiBiZmVm YTAzYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDYzKTogdGlkOiBiZmVmYTAzYyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhiIG10 aW1lIDB4YiBjdGltZSAweGIKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiBiZmVm YTAzYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDAKT3BlciAoNjUpOiB0aWQ6IGJmZWZhMDNjICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQw NzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YiBtdGlt ZSAweGIgY3RpbWUgMHhiCnNpemUgMHgxYSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDY2KTogdGlkOiBiZmVmYTAzYyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RP Ulkgc2l6ZSAyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBiZmVmYTAzYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNjgpOiB0aWQ6IGM4YTJjZTMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiBjOGEyY2UzMSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFD VElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzApOiB0aWQ6IGM4YTJjZTMxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAw CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNzEpOiB0aWQ6IGM4 YTJjZTMxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGIgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4 MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzIpOiB0aWQ6IGM4YTJjZTMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogZTE4M2E2ZDcgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzQpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IENSRUFURSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc2KTog dGlkOiBlMTgzYTZkNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJ IEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAg cm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2IgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNd OiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAt IDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRb OCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVj a2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZm IApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NzcpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzgpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc5KTogdGlkOiBlMTgzYTZkNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4MCk6IHRpZDogZTE4 M2E2ZDcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgw IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg4MSk6IHRpZDogZTE4M2E2ZDcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDUy CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDgyKTogdGlkOiBlMTgz YTZkNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBn aWQgMAphdGltZSAweGIgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzEgbmJsb2NrcyAweDAg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg4Myk6IHRpZDogZTE4M2E2 ZDcgIGxlbjogNTIgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0 YQpTSE9SVEZPUk0gRElSRUNUT1JZIHNpemUgNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 NCk6IHRpZDogZTE4M2E2ZDcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiA2ZmJjODgxNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 Nik6IHRpZDogNmZiYzg4MTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiA2ZmJjODgxNSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoODgpOiB0aWQ6IDZmYmM4ODE1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4MCBuYmxvY2tzIDB4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDg5KTogdGlkOiA2ZmJjODgxNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6 IHRpZDogNmZiYzg4MTUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoOTEpOiB0aWQ6IDZmYmM4ODE1ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUyICBsb25nZXN0OiAxOTQ5 MjM1MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkyKTogdGlkOiA2ZmJjODgxNSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkz KTogdGlkOiA2ZmJjODgxNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NCk6IHRpZDogNmZiYzg4MTUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo OTUpOiB0aWQ6IDZmYmM4ODE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlkOiA2ZmJjODgxNSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCgo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSwxNTEJdGFpbF9sc246IDEsMTM4Cmxlbmd0 aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2IG9mZnNldDogMTM4CQludW0gb3BzOiA0ODkKdXVp ZDogNzdhOGE4NDUtMDM3Yi00NDY2LWIyZTktZTMxMzZjMjdiZTY1ICAgZm9ybWF0OiBsaXR0bGUg ZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTog dGlkOiBhOTBkODgzMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBhOTBkODgzMSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDog YTkwZDg4MzEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTQwMCBuYmxvY2tzIDB4MyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDYpOiB0aWQ6IGE5MGQ4ODMx ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzUxICBsb25nZXN0OiAxOTQ5MjM1MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0 aWQ6IGE5MGQ4ODMxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoOCk6IHRpZDogYTkwZDg4MzEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6 IHRpZDogYTkwZDg4MzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTApOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx KTogdGlkOiBhOTBkODgzMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEz KTogdGlkOiA4MTk1MmYzZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxNSk6IHRpZDogODE5NTJmM2QgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyODAwIG5ibG9ja3MgMHg0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMTYpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 KTogdGlkOiA4MTk1MmYzZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxOCk6IHRpZDogODE5NTJmM2QgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTAgIGxvbmdlc3Q6IDE5 NDkyMzUwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IDgxOTUyZjNkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjApOiB0aWQ6IDgxOTUyZjNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTogdGlkOiA4MTk1MmYzZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMik6IHRpZDogODE5NTJmM2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6IDgxOTUyZjNk ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNCk6IHRpZDogYzAzOWJiZjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IGMwMzliYmYw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNik6IHRpZDogYzAzOWJiZjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3KTogdGlk OiBjMDM5YmJmMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAgbmJs b2NrcyAweDUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyOCk6IHRp ZDogYzAzOWJiZjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IGMwMzliYmYw ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDMwKTogdGlkOiBjMDM5YmJmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0OSAgbG9uZ2VzdDogMTk0OTIzNDkKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDogYzAzOWJiZjAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMik6IHRpZDogYzAzOWJi ZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0aWQ6IGMwMzliYmYwICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiBjMDM5 YmJmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDogYzAzOWJiZjAgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2KTog dGlkOiA3N2RhNzNmMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogNzdkYTczZjAgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlk OiA3N2RhNzNmMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzkpOiB0aWQ6IDc3ZGE3M2YwICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTAwMCBuYmxvY2tzIDB4NyBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQwKTogdGlkOiA3N2RhNzNmMCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6IHRpZDogNzdkYTczZjAgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDIpOiB0aWQ6IDc3 ZGE3M2YwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMzQ3ICBsb25nZXN0OiAxOTQ5MjM0NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzKTogdGlkOiA3N2RhNzNmMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0KTogdGlkOiA3N2RhNzNmMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NSk6IHRpZDogNzdkYTczZjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6IDc3ZGE3M2YwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ3KTogdGlkOiA3N2RhNzNmMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgpOiB0aWQ6IGQ4ZDBjODhmICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ5KTogdGlkOiBkOGQwYzg4ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTApOiB0aWQ6IGQ4ZDBjODhmICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg1MSk6IHRpZDogZDhkMGM4OGYgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg2NDAwIG5ibG9ja3MgMHg4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDEKT3BlciAoNTIpOiB0aWQ6IGQ4ZDBjODhmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDUzKTogdGlkOiBkOGQwYzg4ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1NCk6IHRpZDogZDhkMGM4OGYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDYgIGxv bmdlc3Q6IDE5NDkyMzQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IGQ4ZDBj ODhmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNTYpOiB0aWQ6IGQ4ZDBjODhmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlkOiBk OGQwYzg4ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg1OCk6IHRpZDogZDhkMGM4OGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6 IGQ4ZDBjODhmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg2MCk6IHRpZDogNDUzYTYyMWIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6 IDQ1M2E2MjFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogNDUzYTYyMWIgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDYzKTogdGlkOiA0NTNhNjIxYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDc4MDAgbmJsb2NrcyAweDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg2NCk6IHRpZDogNDUzYTYyMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0aWQ6 IDQ1M2E2MjFiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDY2KTogdGlkOiA0NTNhNjIxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NSAgbG9uZ2VzdDogMTk0OTIzNDUK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDogNDUzYTYyMWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2OCk6IHRp ZDogNDUzYTYyMWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0aWQ6IDQ1M2E2MjFiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcwKTog dGlkOiA0NTNhNjIxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MSk6IHRpZDogNDUzYTYyMWIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDcyKTogdGlkOiAyMjg5ZDczZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogMjI4OWQ3M2QgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDc0KTogdGlkOiAyMjg5ZDczZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNzUpOiB0aWQ6IDIyODlk NzNkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGMwMCBuYmxvY2tzIDB4 YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDc2KTogdGlkOiAyMjg5 ZDczZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogMjI4OWQ3M2QgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNzgp OiB0aWQ6IDIyODlkNzNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25nZXN0OiAxOTQ5MjM0NAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDc5KTogdGlkOiAyMjg5ZDczZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgwKTogdGlkOiAyMjg5ZDczZCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4MSk6IHRpZDogMjI4OWQ3M2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODIpOiB0aWQ6IDIyODlkNzNkICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiAyMjg5ZDczZCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODQpOiB0aWQ6IDk5 NDk0Y2E4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IDk5NDk0 Y2E4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4Nyk6IHRpZDogOTk0OTRjYTggIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMDAwIG5ibG9ja3MgMHhjIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoODgpOiB0aWQ6IDk5NDk0Y2E4ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5MCk6IHRpZDogOTk0OTRjYTgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzNDIgIGxvbmdlc3Q6IDE5NDkyMzQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0 aWQ6IDk5NDk0Y2E4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoOTIpOiB0aWQ6IDk5NDk0Y2E4ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkz KTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg5NCk6IHRpZDogOTk0OTRjYTggIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo OTUpOiB0aWQ6IDk5NDk0Y2E4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nik6IHRpZDogMzQ0NGY1NjEgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo OTcpOiB0aWQ6IDM0NDRmNTYxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDogMzQ0NGY1NjEgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDk5KTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGI0MDAgbmJsb2NrcyAweGQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICgxMDApOiB0aWQ6IDM0NDRmNTYxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwMSk6IHRpZDogMzQ0NGY1NjEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTAyKTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0MSAgbG9uZ2Vz dDogMTk0OTIzNDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDMpOiB0aWQ6IDM0NDRmNTYx ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTA0KTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IDM0 NDRmNTYxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEwNik6IHRpZDogMzQ0NGY1NjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlk OiAzNDQ0ZjU2MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTA4KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0 aWQ6IDkwNGUxNTBlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0aWQ6IDkwNGUxNTBlICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxMTEpOiB0aWQ6IDkwNGUxNTBlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YzgwMCBuYmxvY2tzIDB4ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDExMik6IHRpZDogOTA0ZTE1MGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEz KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxMTQpOiB0aWQ6IDkwNGUxNTBlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQwICBsb25nZXN0OiAx OTQ5MjM0MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogOTA0ZTE1MGUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxMTYpOiB0aWQ6IDkwNGUxNTBlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRpZDogOTA0ZTE1 MGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTE4KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IDkw NGUxNTBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMjApOiB0aWQ6IDk3ZGQyODBhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDog OTdkZDI4MGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDogOTdkZDI4MGEgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDEyMyk6IHRpZDogOTdkZDI4MGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhkYzAwIG5ibG9ja3MgMHhmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMTI0KTogdGlkOiA5N2RkMjgwYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjUpOiB0 aWQ6IDk3ZGQyODBhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDEyNik6IHRpZDogOTdkZDI4MGEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzkgIGxvbmdlc3Q6IDE5NDky MzM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTogdGlkOiA5N2RkMjgwYSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEy OCk6IHRpZDogOTdkZDI4MGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiA5N2RkMjgwYSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxMzApOiB0aWQ6IDk3ZGQyODBhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRpZDogOTdkZDI4 MGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzMik6IHRpZDogYmIwYmJiYTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlkOiBiYjBi YmJhMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTM0KTogdGlkOiBiYjBiYmJhMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTM1 KTogdGlkOiBiYjBiYmJhMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYw MDAgbmJsb2NrcyAweDExIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo MTM2KTogdGlkOiBiYjBiYmJhMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6 IGJiMGJiYmExICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDEzOCk6IHRpZDogYmIwYmJiYTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzcgIGxvbmdlc3Q6IDE5NDkyMzM3 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiBiYjBiYmJhMSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0MCk6 IHRpZDogYmIwYmJiYTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiBiYjBiYmJhMSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NDIpOiB0aWQ6IGJiMGJiYmExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogYmIwYmJiYTEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0NCk6IHRpZDogZmE0YWZjNzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiBmYTRhZmM3 MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTQ2KTogdGlkOiBmYTRhZmM3MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTQ3KTog dGlkOiBmYTRhZmM3MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDEwNDAw IG5ibG9ja3MgMHgxMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE0 OCk6IHRpZDogZmE0YWZjNzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiBm YTRhZmM3MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxNTApOiB0aWQ6IGZhNGFmYzcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM2ICBsb25nZXN0OiAxOTQ5MjMzNgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MSk6IHRpZDogZmE0YWZjNzAgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTIpOiB0 aWQ6IGZhNGFmYzcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogZmE0YWZjNzAgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU0 KTogdGlkOiBmYTRhZmM3MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IGZhNGFmYzcwICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTYpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogNGFlYjY1YjUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE1OCk6IHRpZDogNGFlYjY1YjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1OSk6IHRp ZDogNGFlYjY1YjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBu YmxvY2tzIDB4MTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNjAp OiB0aWQ6IDRhZWI2NWI1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogNGFl YjY1YjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTYyKTogdGlkOiA0YWViNjViNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY0KTogdGlk OiA0YWViNjViNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6 IHRpZDogNGFlYjY1YjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiA0YWViNjViNSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY4KTogdGlkOiAzNjM4ZDVkYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IDM2MzhkNWRhICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNzApOiB0aWQ6IDM2MzhkNWRhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzEpOiB0aWQ6 IDM2MzhkNWRhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTJjMDAgbmJs b2NrcyAweDE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTcyKTog dGlkOiAzNjM4ZDVkYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IDM2Mzhk NWRhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE3NCk6IHRpZDogMzYzOGQ1ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzQgIGxvbmdlc3Q6IDE5NDkyMzM0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiAzNjM4ZDVkYSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3Nik6IHRpZDog MzYzOGQ1ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiAzNjM4ZDVkYSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzgpOiB0 aWQ6IDM2MzhkNWRhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogMzYzOGQ1ZGEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE4MCk6IHRpZDogNDcyZDM4ZWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiA0NzJkMzhlZiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTgyKTogdGlkOiA0NzJkMzhlZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTgzKTogdGlkOiA0 NzJkMzhlZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9j a3MgMHgxNiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE4NCk6IHRp ZDogNDcyZDM4ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiA0NzJkMzhl ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxODYpOiB0aWQ6IDQ3MmQzOGVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMyICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRpZDogNDcyZDM4ZWYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODgpOiB0aWQ6IDQ3 MmQzOGVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogNDcyZDM4ZWYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlk OiA0NzJkMzhlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDQ3MmQzOGVmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTIpOiB0aWQ6IDk3MTJhZjdhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogOTcxMmFmN2EgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5NCk6IHRpZDogOTcxMmFmN2EgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5NSk6IHRpZDogOTcx MmFmN2EgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxNTQwMCBuYmxvY2tz IDB4MTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxOTYpOiB0aWQ6 IDk3MTJhZjdhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogOTcxMmFmN2Eg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTk4KTogdGlkOiA5NzEyYWY3YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzMSAgbG9uZ2VzdDogMTk0OTIzMzEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0aWQ6IDk3MTJhZjdhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiA5NzEy YWY3YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IDk3MTJhZjdhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwMik6IHRpZDog OTcxMmFmN2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA5NzEyYWY3YSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjA0KTogdGlkOiBlMGVkNWQwNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDUpOiB0aWQ6IGUwZWQ1ZDA2ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDYpOiB0aWQ6IGUwZWQ1ZDA2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDcpOiB0aWQ6IGUwZWQ1 ZDA2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAw eDE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjA4KTogdGlkOiBl MGVkNWQwNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IGUwZWQ1ZDA2ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDIxMCk6IHRpZDogZTBlZDVkMDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMzAgIGxvbmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjExKTogdGlkOiBlMGVkNWQwNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxMik6IHRpZDogZTBlZDVk MDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjEzKTogdGlkOiBlMGVkNWQwNiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTQpOiB0aWQ6IGUw ZWQ1ZDA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogZTBlZDVkMDYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx Nik6IHRpZDogYmE4YzE2NWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE3KTogdGlkOiBiYThjMTY1YyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4 KTogdGlkOiBiYThjMTY1YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjE5KTogdGlkOiBiYThjMTY1 YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE3YzAwIG5ibG9ja3MgMHgx OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIyMCk6IHRpZDogYmE4 YzE2NWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiBiYThjMTY1YyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy MjIpOiB0aWQ6IGJhOGMxNjVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzI5ICBsb25nZXN0OiAxOTQ5MjMyOQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIyMyk6IHRpZDogYmE4YzE2NWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjQpOiB0aWQ6IGJhOGMxNjVj ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDogYmE4YzE2NWMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI2KTogdGlkOiBiYThj MTY1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IGJhOGMxNjVjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjgp OiB0aWQ6IDdjOTVlMjcwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyOSk6IHRpZDogN2M5NWUyNzAgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6 IHRpZDogN2M5NWUyNzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzMSk6IHRpZDogN2M5NWUyNzAg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMzIpOiB0aWQ6IDdjOTVl MjcwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogN2M5NWUyNzAgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM0 KTogdGlkOiA3Yzk1ZTI3MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMyNyAgbG9uZ2VzdDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMzUpOiB0aWQ6IDdjOTVlMjcwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjM2KTogdGlkOiA3Yzk1ZTI3MCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6IDdjOTVlMjcwICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzOCk6IHRpZDogN2M5NWUy NzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiA3Yzk1ZTI3MCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQwKTog dGlkOiBkYTg0ZDQzYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDEpOiB0aWQ6IGRhODRkNDNiICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0 aWQ6IGRhODRkNDNiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDMpOiB0aWQ6IGRhODRkNDNiICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjQ0KTogdGlkOiBkYTg0ZDQz YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDUpOiB0aWQ6IGRhODRkNDNiICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0Nik6 IHRpZDogZGE4NGQ0M2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIzMjYgIGxvbmdlc3Q6IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjQ3KTogdGlkOiBkYTg0ZDQzYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0OCk6IHRpZDogZGE4NGQ0M2IgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiBkYTg0ZDQzYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTApOiB0aWQ6IGRhODRkNDNi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogZGE4NGQ0M2IgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRp ZDogNjRlZTllMDMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjUzKTogdGlkOiA2NGVlOWUwMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlk OiA2NGVlOWUwMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjU1KTogdGlkOiA2NGVlOWUwMyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFiODAwIG5ibG9ja3MgMHgxZCBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI1Nik6IHRpZDogNjRlZTllMDMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU3KTogdGlkOiA2NGVlOWUwMyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTgpOiB0 aWQ6IDY0ZWU5ZTAzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMzI1ICBsb25nZXN0OiAxOTQ5MjMyNQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1OSk6IHRpZDogNjRlZTllMDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjApOiB0aWQ6IDY0ZWU5ZTAzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogNjRlZTllMDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlkOiA2NGVlOWUwMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IDY0ZWU5ZTAzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6 IGQ5MWQzNjM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6IHRpZDogZDkxZDM2MzQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDog ZDkxZDM2MzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2Nyk6IHRpZDogZDkxZDM2MzQgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNjgpOiB0aWQ6IGQ5MWQzNjM0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OSk6IHRpZDogZDkxZDM2MzQgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcwKTogdGlk OiBkOTFkMzYzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjMyNCAgbG9uZ2VzdDogMTk0OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNzEpOiB0aWQ6IGQ5MWQzNjM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjcyKTogdGlkOiBkOTFkMzYzNCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNzMpOiB0aWQ6IGQ5MWQzNjM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDogZDkxZDM2MzQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiBkOTFkMzYzNCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc2KTogdGlkOiAx OTJjY2E3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNzcpOiB0aWQ6IDE5MmNjYTczICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IDE5 MmNjYTczICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzkpOiB0aWQ6IDE5MmNjYTczICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWUwMDAgbmJsb2NrcyAweDIwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjgwKTogdGlkOiAxOTJjY2E3MyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODEpOiB0aWQ6IDE5MmNjYTczICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4Mik6IHRpZDog MTkyY2NhNzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIzMjIgIGxvbmdlc3Q6IDE5NDkyMzIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjgzKTogdGlkOiAxOTJjY2E3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4NCk6IHRpZDogMTkyY2NhNzMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjg1KTogdGlkOiAxOTJjY2E3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IDE5MmNjYTczICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogMTkyY2NhNzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OCk6IHRpZDogYmM2 MmFlMjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjg5KTogdGlkOiBiYzYyYWUyNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiBiYzYy YWUyNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjkxKTogdGlkOiBiYzYyYWUyNiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFmNDAwIG5ibG9ja3MgMHgyMSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI5Mik6IHRpZDogYmM2MmFlMjYgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiBiYzYyYWUyNiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTQpOiB0aWQ6IGJj NjJhZTI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMzIxICBsb25nZXN0OiAxOTQ5MjMyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5NSk6IHRpZDogYmM2MmFlMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTYpOiB0aWQ6IGJjNjJhZTI2ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI5Nyk6IHRpZDogYmM2MmFlMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiBiYzYyYWUyNiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTkpOiB0aWQ6IGJjNjJhZTI2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDApOiB0aWQ6IDdmYjU3 MzQyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMwMSk6IHRpZDogN2ZiNTczNDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogN2ZiNTcz NDIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwMyk6IHRpZDogN2ZiNTczNDIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMDgwMCBuYmxvY2tzIDB4MjIgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMDQpOiB0aWQ6IDdmYjU3MzQyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogN2ZiNTczNDIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzA2KTogdGlkOiA3ZmI1 NzM0MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjMyMCAgbG9uZ2VzdDogMTk0OTIzMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDcpOiB0aWQ6IDdmYjU3MzQyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA4KTogdGlkOiA3ZmI1NzM0MiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMDkpOiB0aWQ6IDdmYjU3MzQyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogN2ZiNTczNDIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzExKTogdGlkOiA3ZmI1NzM0MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEyKTogdGlkOiA3NzU3YTQz ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMTMpOiB0aWQ6IDc3NTdhNDNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IDc3NTdhNDNk ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzMTUpOiB0aWQ6IDc3NTdhNDNkICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjFjMDAgbmJsb2NrcyAweDIzIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzE2KTogdGlkOiA3NzU3YTQzZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IDc3NTdhNDNkICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxOCk6IHRpZDogNzc1N2E0 M2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMTkgIGxvbmdlc3Q6IDE5NDkyMzE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5 KTogdGlkOiA3NzU3YTQzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMyMCk6IHRpZDogNzc1N2E0M2QgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzIxKTogdGlkOiA3NzU3YTQzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IDc3NTdhNDNkICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMyMyk6IHRpZDogNzc1N2E0M2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNCk6IHRpZDogMjJhMDUyNzAg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzI1KTogdGlkOiAyMmEwNTI3MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlkOiAyMmEwNTI3MCAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzI3KTogdGlkOiAyMmEwNTI3MCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDIzMDAwIG5ibG9ja3MgMHgyNSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMyOCk6IHRpZDogMjJhMDUyNzAgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiAyMmEwNTI3MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzApOiB0aWQ6IDIyYTA1Mjcw ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzE3ICBsb25nZXN0OiAxOTQ5MjMxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6 IHRpZDogMjJhMDUyNzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzMzIpOiB0aWQ6IDIyYTA1MjcwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMzMyk6IHRpZDogMjJhMDUyNzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiAyMmEwNTI3MCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMzUpOiB0aWQ6IDIyYTA1MjcwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzYpOiB0aWQ6IGViY2E0NDZhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMzNyk6IHRpZDogZWJjYTQ0NmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDogZWJjYTQ0NmEgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDMzOSk6IHRpZDogZWJjYTQ0NmEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgyNDQwMCBuYmxvY2tzIDB4MjYgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNDApOiB0aWQ6IGViY2E0NDZhICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogZWJjYTQ0NmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQyKTogdGlkOiBlYmNhNDQ2YSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMxNiAgbG9uZ2VzdDogMTk0OTIzMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0 aWQ6IGViY2E0NDZhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzQ0KTogdGlkOiBlYmNhNDQ2YSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NDUpOiB0aWQ6IGViY2E0NDZhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogZWJjYTQ0NmEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzQ3KTogdGlkOiBlYmNhNDQ2YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ4KTogdGlkOiA0YjFlNzYwNSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNDkpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTApOiB0aWQ6IDRiMWU3NjA1ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzNTEpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MjU4MDAgbmJsb2NrcyAweDI3IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoMzUyKTogdGlkOiA0YjFlNzYwNSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNTMpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1NCk6IHRpZDogNGIxZTc2MDUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MTUgIGxvbmdlc3Q6IDE5NDkyMzE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlk OiA0YjFlNzYwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM1Nik6IHRpZDogNGIxZTc2MDUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3 KTogdGlkOiA0YjFlNzYwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1OSk6IHRpZDogNGIxZTc2MDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MCk6IHRpZDogOGRhYzg2YjggIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzYxKTogdGlkOiA4ZGFjODZiOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYyKTogdGlkOiA4ZGFjODZiOCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzYzKTogdGlkOiA4ZGFjODZiOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDI2YzAwIG5ibG9ja3MgMHgyOCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDM2NCk6IHRpZDogOGRhYzg2YjggIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzY1KTogdGlkOiA4ZGFjODZiOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjYpOiB0aWQ6IDhkYWM4NmI4ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE0 ICBsb25nZXN0OiAxOTQ5MjMxNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDog OGRhYzg2YjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNjgpOiB0aWQ6IDhkYWM4NmI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6 IHRpZDogOGRhYzg2YjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiA4ZGFjODZiOCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzEpOiB0aWQ6IDhkYWM4NmI4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzIpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3Myk6IHRpZDogMWUwYTY0M2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NCk6IHRpZDogMWUwYTY0M2YgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDM3NSk6IHRpZDogMWUwYTY0M2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgyODAwMCBuYmxvY2tzIDB4MmEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICgzNzYpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM3Nyk6IHRpZDogMWUwYTY0M2YgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzc4KTogdGlkOiAxZTBhNjQzZiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxMiAg bG9uZ2VzdDogMTk0OTIzMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IDFl MGE2NDNmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzgwKTogdGlkOiAxZTBhNjQzZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0 aWQ6IDFlMGE2NDNmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM4Mik6IHRpZDogMWUwYTY0M2YgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgz KTogdGlkOiAxZTBhNjQzZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg0KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz ODUpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODYpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzODcpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4Mjk0MDAgbmJsb2NrcyAweDJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoMzg4KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODkpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5MCk6IHRpZDogOTM0ODNiZDcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTEgIGxv bmdlc3Q6IDE5NDkyMzExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiA5MzQ4 M2JkNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM5Mik6IHRpZDogOTM0ODNiZDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlk OiA5MzQ4M2JkNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6 IHRpZDogOTM0ODNiZDcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nik6IHRpZDogMjE3ODE1ZDkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3 KTogdGlkOiAyMTc4MTVkOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4KTogdGlkOiAyMTc4MTVkOSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzk5KTogdGlkOiAyMTc4MTVkOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDJhODAwIG5ibG9ja3MgMHgyYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgxCk9wZXIgKDQwMCk6IHRpZDogMjE3ODE1ZDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDAxKTogdGlkOiAyMTc4MTVkOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MDIpOiB0aWQ6IDIxNzgxNWQ5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzEwICBsb25n ZXN0OiAxOTQ5MjMxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMyk6IHRpZDogMjE3ODE1 ZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MDQpOiB0aWQ6IDIxNzgxNWQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDog MjE3ODE1ZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDA2KTogdGlkOiAyMTc4MTVkOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0 aWQ6IDIxNzgxNWQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDgpOiB0aWQ6IDQzODcyNWVmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6 IHRpZDogNDM4NzI1ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRpZDogNDM4NzI1ZWYgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQxMSk6IHRpZDogNDM4NzI1ZWYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyYmMwMCBuYmxvY2tzIDB4MmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICg0MTIpOiB0aWQ6IDQzODcyNWVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQxMyk6IHRpZDogNDM4NzI1ZWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDE0KTogdGlkOiA0Mzg3MjVlZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwOSAgbG9uZ2Vz dDogMTk0OTIzMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IDQzODcyNWVm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDE2KTogdGlkOiA0Mzg3MjVlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IDQz ODcyNWVmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQxOCk6IHRpZDogNDM4NzI1ZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlk OiA0Mzg3MjVlZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDIwKTogdGlkOiAzMzQ2NTBjMSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0 aWQ6IDMzNDY1MGMxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IDMzNDY1MGMxICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0MjMpOiB0aWQ6IDMzNDY1MGMxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MmQwMDAgbmJsb2NrcyAweDJmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoNDI0KTogdGlkOiAzMzQ2NTBjMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MjUpOiB0aWQ6IDMzNDY1MGMxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQyNik6IHRpZDogMzM0NjUwYzEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDcgIGxvbmdlc3Q6 IDE5NDkyMzA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI3KTogdGlkOiAzMzQ2NTBjMSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQyOCk6IHRpZDogMzM0NjUwYzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiAzMzQ2 NTBjMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MzApOiB0aWQ6IDMzNDY1MGMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDog MzM0NjUwYzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6IHRpZDogY2ZlNzE2YzYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMzKTogdGlk OiBjZmU3MTZjNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiBjZmU3MTZjNiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDM1KTogdGlkOiBjZmU3MTZjNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDJlNDAwIG5ibG9ja3MgMHgzMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDQzNik6IHRpZDogY2ZlNzE2YzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM3 KTogdGlkOiBjZmU3MTZjNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0MzgpOiB0aWQ6IGNmZTcxNmM2ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA2ICBsb25nZXN0OiAx OTQ5MjMwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOSk6IHRpZDogY2ZlNzE2YzYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NDApOiB0aWQ6IGNmZTcxNmM2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogY2ZlNzE2 YzYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDQyKTogdGlkOiBjZmU3MTZjNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGNm ZTcxNmM2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NSk6IHRpZDog OTViMDJhMDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogOTViMDJhMDggIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQ0Nyk6IHRpZDogOTViMDJhMDggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgyZjgwMCBuYmxvY2tzIDB4MzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICg0NDgpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6 IHRpZDogOTViMDJhMDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDUwKTogdGlkOiA5NWIwMmEwOCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwNSAgbG9uZ2VzdDogMTk0 OTIzMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTEpOiB0aWQ6IDk1YjAyYTA4ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDUyKTogdGlkOiA5NWIwMmEwOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDk1YjAyYTA4 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ1NCk6IHRpZDogOTViMDJhMDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA5NWIw MmEwOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDU2KTogdGlkOiA1NTY3MWZhMCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IDU1 NjcxZmEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IDU1NjcxZmEwICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0 NTkpOiB0aWQ6IDU1NjcxZmEwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MzBjMDAgbmJsb2NrcyAweDMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoNDYwKTogdGlkOiA1NTY3MWZhMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0 aWQ6IDU1NjcxZmEwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQ2Mik6IHRpZDogNTU2NzFmYTAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDQgIGxvbmdlc3Q6IDE5NDky MzA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTogdGlkOiA1NTY3MWZhMCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2 NCk6IHRpZDogNTU2NzFmYTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiA1NTY3MWZhMCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NjYpOiB0aWQ6IDU1NjcxZmEwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogNTU2NzFm YTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDogNGU5YTU0N2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY5KTogdGlkOiA0ZTlh NTQ3YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDcwKTogdGlkOiA0ZTlhNTQ3YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDcx KTogdGlkOiA0ZTlhNTQ3YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMy MDAwIG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDQ3Mik6IHRpZDogNGU5YTU0N2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDczKTogdGlk OiA0ZTlhNTQ3YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0NzQpOiB0aWQ6IDRlOWE1NDdjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAyICBsb25nZXN0OiAxOTQ5MjMw MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6IHRpZDogNGU5YTU0N2MgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzYp OiB0aWQ6IDRlOWE1NDdjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogNGU5YTU0N2MgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDc4KTogdGlkOiA0ZTlhNTQ3YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDRlOWE1NDdj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0ODApOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRpZDogZDVjOWE3 MDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ4Mik6IHRpZDogZDVjOWE3MDQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4Myk6 IHRpZDogZDVjOWE3MDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMzQw MCBuYmxvY2tzIDB4MzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0 ODQpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDog ZDVjOWE3MDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDg2KTogdGlkOiBkNWM5YTcwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwMSAgbG9uZ2VzdDogMTk0OTIzMDEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDg4KTog dGlkOiBkNWM5YTcwNCAgbGVuOiAxMDQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVF IApCVUYgREFUQQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246 IDEsMjE1CXRhaWxfbHNuOiAxLDEzOApsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBv ZmZzZXQ6IDE1MQkJbnVtIG9wczogNDkxCnV1aWQ6IDc3YThhODQ1LTAzN2ItNDQ2Ni1iMmU5LWUz MTM2YzI3YmU2NSAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogZDVjOWE3MDQgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVORCAKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNw bGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRpZDogZDVjOWE3MDQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMik6IHRpZDogZDVjOWE3MDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMyk6IHRpZDogZDVjOWE3MDQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQpOiB0aWQ6IDY2NDA4NTY1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IDY2NDA4NTY1ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg2KTogdGlkOiA2NjQwODU2NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNyk6IHRpZDogNjY0 MDg1NjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNDgwMCBuYmxvY2tz IDB4MzYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg4KTogdGlkOiA2 NjQwODU2NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiA2NjQwODU2NSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx MCk6IHRpZDogNjY0MDg1NjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzMDAgIGxvbmdlc3Q6IDE5NDkyMzAwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTEpOiB0aWQ6IDY2NDA4NTY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIpOiB0aWQ6IDY2NDA4NTY1ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiA2NjQwODU2NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNCk6IHRpZDogNjY0MDg1NjUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IDY2NDA4NTY1ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDog N2Y3MGJkOGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDdmNzBiZDhiICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogN2Y3 MGJkOGIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5KTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM1YzAwIG5ibG9ja3MgMHgzNyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIwKTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogN2Y3MGJkOGIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0aWQ6IDdmNzBi ZDhiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjk5ICBsb25nZXN0OiAxOTQ5MjI5OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIz KTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI0KTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNSk6IHRpZDogN2Y3MGJkOGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYpOiB0aWQ6IDdmNzBiZDhiICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3KTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IGUwOTQxOGNkICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI5KTogdGlkOiBlMDk0MThjZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IGUwOTQxOGNkICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgzMSk6IHRpZDogZTA5NDE4Y2QgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgzNzAwMCBuYmxvY2tzIDB4MzkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICgzMik6IHRpZDogZTA5NDE4Y2QgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzMpOiB0aWQ6IGUwOTQxOGNkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiBlMDk0MThjZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NyAgbG9u Z2VzdDogMTk0OTIyOTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDogZTA5NDE4 Y2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNik6IHRpZDogZTA5NDE4Y2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6IGUw OTQxOGNkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM4KTogdGlkOiBlMDk0MThjZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDog ZTA5NDE4Y2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQwKTogdGlkOiBhYjRjZjU2NiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6IHRpZDog YWI0Y2Y1NjYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiBhYjRjZjU2NiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NDMpOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 Mzg0MDAgbmJsb2NrcyAweDNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoNDQpOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlk OiBhYjRjZjU2NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0Nik6IHRpZDogYWI0Y2Y1NjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTYgIGxvbmdlc3Q6IDE5NDkyMjk2 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgpOiB0 aWQ6IGFiNGNmNTY2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlkOiBhYjRjZjU2NiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1MCk6 IHRpZDogYWI0Y2Y1NjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IGFiNGNmNTY2ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1Mik6IHRpZDogNmVhMWI1NDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDZlYTFiNTQ0ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1NCk6IHRpZDogNmVhMWI1NDQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDU1KTogdGlkOiA2ZWEx YjU0NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM5ODAwIG5ibG9ja3Mg MHgzYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDU2KTogdGlkOiA2 ZWExYjU0NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nyk6IHRpZDogNmVhMWI1NDQgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NTgpOiB0aWQ6IDZlYTFiNTQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjk1ICBsb25nZXN0OiAxOTQ5MjI5NQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDU5KTogdGlkOiA2ZWExYjU0NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYwKTogdGlkOiA2ZWExYjU0NCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDogNmVhMWI1NDQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjIpOiB0aWQ6IDZlYTFiNTQ0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDYzKTogdGlkOiA2ZWExYjU0NCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6 IDkyYTVlNWVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiA5MmE1ZTVlYyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IDky YTVlNWVjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2Nyk6IHRpZDogOTJhNWU1ZWMgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYWMwMCBuYmxvY2tzIDB4M2MgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg2OCk6IHRpZDogOTJhNWU1ZWMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0aWQ6IDkyYTVlNWVjICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDcwKTogdGlkOiA5MmE1 ZTVlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI5NCAgbG9uZ2VzdDogMTk0OTIyOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3 MSk6IHRpZDogOTJhNWU1ZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3Mik6IHRpZDogOTJhNWU1ZWMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNzMpOiB0aWQ6IDkyYTVlNWVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc0KTogdGlkOiA5MmE1ZTVlYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3NSk6IHRpZDogOTJhNWU1ZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc2KTogdGlkOiA1N2EwYjhiZCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Nyk6IHRpZDogNTdhMGI4YmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiA1N2EwYjhiZCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNzkpOiB0aWQ6IDU3YTBiOGJkICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4M2MwMDAgbmJsb2NrcyAweDNlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDEKT3BlciAoODApOiB0aWQ6IDU3YTBiOGJkICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDgxKTogdGlkOiA1N2EwYjhiZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4Mik6IHRpZDogNTdhMGI4YmQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTIgIGxv bmdlc3Q6IDE5NDkyMjkyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IDU3YTBi OGJkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoODQpOiB0aWQ6IDU3YTBiOGJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiA1 N2EwYjhiZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg4Nik6IHRpZDogNTdhMGI4YmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6 IDU3YTBiOGJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg4OCk6IHRpZDogMmZlODkwZjIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6 IDJmZTg5MGYyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogMmZlODkwZjIgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDkxKTogdGlkOiAyZmU4OTBmMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDNkNDAwIG5ibG9ja3MgMHgzZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDkyKTogdGlkOiAyZmU4OTBmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Myk6IHRp ZDogMmZlODkwZjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoOTQpOiB0aWQ6IDJmZTg5MGYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkxICBsb25nZXN0OiAxOTQ5MjI5 MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiAyZmU4OTBmMiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk2KTog dGlkOiAyZmU4OTBmMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nyk6IHRpZDogMmZlODkwZjIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTgp OiB0aWQ6IDJmZTg5MGYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiAyZmU4OTBmMiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTAwKTogdGlkOiBiZTk3YzdhMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IGJlOTdjN2ExICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMDIpOiB0aWQ6IGJlOTdjN2ExICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMDMpOiB0aWQ6 IGJlOTdjN2ExICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2U4MDAgbmJs b2NrcyAweDQwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTA0KTog dGlkOiBiZTk3YzdhMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IGJlOTdj N2ExICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDEwNik6IHRpZDogYmU5N2M3YTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTAgIGxvbmdlc3Q6IDE5NDkyMjkwCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiBiZTk3YzdhMSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwOCk6IHRpZDog YmU5N2M3YTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA5KTogdGlkOiBiZTk3YzdhMSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTApOiB0 aWQ6IGJlOTdjN2ExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMSk6IHRpZDogYmU5N2M3YTEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExMik6IHRpZDogZWM4YjAzZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBlYzhiMDNlMiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTE0KTogdGlkOiBlYzhiMDNlMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTE1KTogdGlkOiBl YzhiMDNlMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNmYzAwIG5ibG9j a3MgMHg0MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDExNik6IHRp ZDogZWM4YjAzZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE3KTogdGlkOiBlYzhiMDNl MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxMTgpOiB0aWQ6IGVjOGIwM2UyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg5ICBsb25nZXN0OiAxOTQ5MjI4OQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogZWM4YjAzZTIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjApOiB0aWQ6IGVj OGIwM2UyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDogZWM4YjAzZTIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIyKTogdGlk OiBlYzhiMDNlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjMpOiB0aWQ6IGVjOGIwM2UyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMjQpOiB0aWQ6IDhkZmJjOTA2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNSk6IHRpZDogOGRmYmM5MDYgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEyNik6IHRpZDogOGRmYmM5MDYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyNyk6IHRpZDogOGRm YmM5MDYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0MTAwMCBuYmxvY2tz IDB4NDMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxMjgpOiB0aWQ6 IDhkZmJjOTA2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDogOGRmYmM5MDYg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTMwKTogdGlkOiA4ZGZiYzkwNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NyAgbG9uZ2VzdDogMTk0OTIyODcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDhkZmJjOTA2ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMyKTogdGlkOiA4ZGZi YzkwNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzMpOiB0aWQ6IDhkZmJjOTA2ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzNCk6IHRpZDog OGRmYmM5MDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1KTogdGlkOiA4ZGZiYzkwNiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTM2KTogdGlkOiBjMDFhYjZkZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IGMwMWFiNmRmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MzgpOiB0aWQ6IGMwMWFiNmRmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMzkpOiB0aWQ6IGMwMWFi NmRmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDI0MDAgbmJsb2NrcyAw eDQ0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTQwKTogdGlkOiBj MDFhYjZkZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDEpOiB0aWQ6IGMwMWFiNmRmICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE0Mik6IHRpZDogYzAxYWI2ZGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyODYgIGxvbmdlc3Q6IDE5NDkyMjg2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiBjMDFhYjZkZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0NCk6IHRpZDogYzAxYWI2 ZGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiBjMDFhYjZkZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDYpOiB0aWQ6IGMw MWFiNmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6IHRpZDogYzAxYWI2ZGYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 OCk6IHRpZDogN2U3NDBkN2IgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiA3ZTc0MGQ3YiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUw KTogdGlkOiA3ZTc0MGQ3YiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTUxKTogdGlkOiA3ZTc0MGQ3 YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQzODAwIG5ibG9ja3MgMHg0 NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE1Mik6IHRpZDogN2U3 NDBkN2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTogdGlkOiA3ZTc0MGQ3YiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx NTQpOiB0aWQ6IDdlNzQwZDdiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjg1ICBsb25nZXN0OiAxOTQ5MjI4NQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE1NSk6IHRpZDogN2U3NDBkN2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTYpOiB0aWQ6IDdlNzQwZDdi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogN2U3NDBkN2IgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU4KTogdGlkOiA3ZTc0 MGQ3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0aWQ6IDdlNzQwZDdiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjAp OiB0aWQ6IDhkNzYyODczICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogOGQ3NjI4NzMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6 IHRpZDogOGQ3NjI4NzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2Myk6IHRpZDogOGQ3NjI4NzMg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NGMwMCBuYmxvY2tzIDB4NDYg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNjQpOiB0aWQ6IDhkNzYy ODczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRpZDogOGQ3NjI4NzMgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTY2 KTogdGlkOiA4ZDc2Mjg3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjI4NCAgbG9uZ2VzdDogMTk0OTIyODQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNjcpOiB0aWQ6IDhkNzYyODczICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY4KTogdGlkOiA4ZDc2Mjg3MyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IDhkNzYyODczICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3MCk6IHRpZDogOGQ3NjI4 NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlkOiA4ZDc2Mjg3MyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcyKTog dGlkOiBiYzMxZWExNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IGJjMzFlYTE2ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzQpOiB0 aWQ6IGJjMzFlYTE2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzUpOiB0aWQ6IGJjMzFlYTE2ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDYwMDAgbmJsb2NrcyAweDQ4IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTc2KTogdGlkOiBiYzMxZWEx NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzcpOiB0aWQ6IGJjMzFlYTE2ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3OCk6 IHRpZDogYmMzMWVhMTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyODIgIGxvbmdlc3Q6IDE5NDkyMjgyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTc5KTogdGlkOiBiYzMxZWExNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4MCk6IHRpZDogYmMzMWVhMTYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiBiYzMxZWExNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODIpOiB0aWQ6IGJjMzFlYTE2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogYmMzMWVhMTYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRp ZDogODY0ODA1YWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiA4NjQ4MDVhYSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlk OiA4NjQ4MDVhYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg3KTogdGlkOiA4NjQ4MDVhYSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ3NDAwIG5ibG9ja3MgMHg0OSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE4OCk6IHRpZDogODY0ODA1YWEg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiA4NjQ4MDVhYSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxOTApOiB0 aWQ6IDg2NDgwNWFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMjgxICBsb25nZXN0OiAxOTQ5MjI4MQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE5MSk6IHRpZDogODY0ODA1YWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTIpOiB0aWQ6IDg2NDgwNWFhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogODY0ODA1YWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk0KTogdGlkOiA4NjQ4MDVhYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IDg2NDgwNWFhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6 IDdhNTE4YzljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogN2E1MThjOWMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDog N2E1MThjOWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5OSk6IHRpZDogN2E1MThjOWMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ODgwMCBuYmxvY2tzIDB4NGEgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMDApOiB0aWQ6IDdhNTE4YzljICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMSk6IHRpZDogN2E1MThjOWMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAyKTogdGlk OiA3YTUxOGM5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI4MCAgbG9uZ2VzdDogMTk0OTIyODAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMDMpOiB0aWQ6IDdhNTE4YzljICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA0KTogdGlkOiA3YTUxOGM5YyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMDUpOiB0aWQ6IDdhNTE4YzljICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNik6IHRpZDogN2E1MThjOWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjA3KTogdGlkOiA3YTUxOGM5YyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiA1 MTAxMTNiNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDUxMDExM2I3ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IDUx MDExM2I3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTEpOiB0aWQ6IDUxMDExM2I3ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDljMDAgbmJsb2NrcyAweDRiIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjEyKTogdGlkOiA1MTAxMTNiNyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0aWQ6IDUxMDExM2I3ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxNCk6IHRpZDog NTEwMTEzYjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyNzkgIGxvbmdlc3Q6IDE5NDkyMjc5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjE1KTogdGlkOiA1MTAxMTNiNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxNik6IHRpZDogNTEwMTEzYjcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjE3KTogdGlkOiA1MTAxMTNiNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTgpOiB0aWQ6IDUxMDExM2I3ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxOSk6IHRpZDogNTEwMTEzYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogOTEy MjhhODMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiA5MTIyOGE4MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiA5MTIy OGE4MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjIzKTogdGlkOiA5MTIyOGE4MyAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDRiMDAwIG5ibG9ja3MgMHg0ZCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIyNCk6IHRpZDogOTEyMjhhODMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlkOiA5MTIyOGE4MyAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjYpOiB0aWQ6IDkx MjI4YTgzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjc3ICBsb25nZXN0OiAxOTQ5MjI3NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyNyk6IHRpZDogOTEyMjhhODMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjgpOiB0aWQ6IDkxMjI4YTgzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyOSk6IHRpZDogOTEyMjhhODMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMwKTogdGlkOiA5MTIyOGE4MyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMzEpOiB0aWQ6IDkxMjI4YTgzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDgzYTg5 MGY2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogODNhODkwZjYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogODNhODkw ZjYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzNSk6IHRpZDogODNhODkwZjYgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0YzQwMCBuYmxvY2tzIDB4NGUgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMzYpOiB0aWQ6IDgzYTg5MGY2ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6IHRpZDogODNhODkwZjYgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM4KTogdGlkOiA4M2E4 OTBmNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI3NiAgbG9uZ2VzdDogMTk0OTIyNzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzkpOiB0aWQ6IDgzYTg5MGY2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQwKTogdGlkOiA4M2E4OTBmNiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDEpOiB0aWQ6IDgzYTg5MGY2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0Mik6IHRpZDogODNhODkwZjYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjQzKTogdGlkOiA4M2E4OTBmNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiAzNGJhNDli YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDUpOiB0aWQ6IDM0YmE0OWJhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDM0YmE0OWJh ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDcpOiB0aWQ6IDM0YmE0OWJhICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGQ4MDAgbmJsb2NrcyAweDRmIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjQ4KTogdGlkOiAzNGJhNDliYSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0aWQ6IDM0YmE0OWJhICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1MCk6IHRpZDogMzRiYTQ5 YmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNzUgIGxvbmdlc3Q6IDE5NDkyMjc1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUx KTogdGlkOiAzNGJhNDliYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI1Mik6IHRpZDogMzRiYTQ5YmEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjUzKTogdGlkOiAzNGJhNDliYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTQpOiB0aWQ6IDM0YmE0OWJhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1NSk6IHRpZDogMzRiYTQ5YmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nik6IHRpZDogZTYwNTRmMDIg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU3KTogdGlkOiBlNjA1NGYwMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiBlNjA1NGYwMiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjU5KTogdGlkOiBlNjA1NGYwMiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDRlYzAwIG5ibG9ja3MgMHg1MCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI2MCk6IHRpZDogZTYwNTRmMDIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiBlNjA1NGYwMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjIpOiB0aWQ6IGU2MDU0ZjAy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjc0ICBsb25nZXN0OiAxOTQ5MjI3NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6 IHRpZDogZTYwNTRmMDIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNjQpOiB0aWQ6IGU2MDU0ZjAyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2NSk6IHRpZDogZTYwNTRmMDIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY2KTogdGlkOiBlNjA1NGYwMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjcpOiB0aWQ6IGU2MDU0ZjAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjgpOiB0aWQ6IDZkNzRmY2E5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2OSk6IHRpZDogNmQ3NGZjYTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogNmQ3NGZjYTkgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI3MSk6IHRpZDogNmQ3NGZjYTkgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg1MDAwMCBuYmxvY2tzIDB4NTIgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNzIpOiB0aWQ6IDZkNzRmY2E5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3Myk6IHRpZDogNmQ3NGZjYTkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc0KTogdGlkOiA2ZDc0ZmNhOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI3MiAgbG9uZ2VzdDogMTk0OTIyNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0 aWQ6IDZkNzRmY2E5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjc2KTogdGlkOiA2ZDc0ZmNhOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzcpOiB0aWQ6IDZkNzRmY2E5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI3OCk6IHRpZDogNmQ3NGZjYTkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjc5KTogdGlkOiA2ZDc0ZmNhOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgwKTogdGlkOiAzYzk1ZjJiMyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODEpOiB0aWQ6IDNjOTVmMmIzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IDNjOTVmMmIzICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyODMpOiB0aWQ6IDNjOTVmMmIzICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NTE0MDAgbmJsb2NrcyAweDUzIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoMjg0KTogdGlkOiAzYzk1ZjJiMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODUpOiB0aWQ6IDNjOTVmMmIzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4Nik6IHRpZDogM2M5NWYyYjMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy NzEgIGxvbmdlc3Q6IDE5NDkyMjcxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlk OiAzYzk1ZjJiMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI4OCk6IHRpZDogM2M5NWYyYjMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5 KTogdGlkOiAzYzk1ZjJiMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyOTApOiB0aWQ6IDNjOTVmMmIzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5MSk6IHRpZDogM2M5NWYyYjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Mik6IHRpZDogYTU4YmUwODAgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjkzKTogdGlkOiBhNThiZTA4MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiBhNThiZTA4MCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjk1KTogdGlkOiBhNThiZTA4MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDUyODAwIG5ibG9ja3MgMHg1NCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDI5Nik6IHRpZDogYTU4YmUwODAgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjk3KTogdGlkOiBhNThiZTA4MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTgpOiB0aWQ6IGE1OGJlMDgwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjcw ICBsb25nZXN0OiAxOTQ5MjI3MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRpZDog YTU4YmUwODAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMDApOiB0aWQ6IGE1OGJlMDgwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6 IHRpZDogYTU4YmUwODAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzAyKTogdGlkOiBhNThiZTA4MCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDMpOiB0aWQ6IGE1OGJlMDgwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDQpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwNSk6IHRpZDogZjQ1MzYyODQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDogZjQ1MzYyODQgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDMwNyk6IHRpZDogZjQ1MzYyODQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg1M2MwMCBuYmxvY2tzIDB4NTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICgzMDgpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMwOSk6IHRpZDogZjQ1MzYyODQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzEwKTogdGlkOiBmNDUzNjI4NCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2OSAg bG9uZ2VzdDogMTk0OTIyNjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IGY0 NTM2Mjg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzEyKTogdGlkOiBmNDUzNjI4NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0 aWQ6IGY0NTM2Mjg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDMxNCk6IHRpZDogZjQ1MzYyODQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1 KTogdGlkOiBmNDUzNjI4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2KTogdGlkOiBlYWUyNmNjZSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTcpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzMTkpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NTUwMDAgbmJsb2NrcyAweDU3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoMzIwKTogdGlkOiBlYWUyNmNjZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjEpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyMik6IHRpZDogZWFlMjZjY2UgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjcgIGxv bmdlc3Q6IDE5NDkyMjY3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiBlYWUy NmNjZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMyNCk6IHRpZDogZWFlMjZjY2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlk OiBlYWUyNmNjZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMjYpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6 IHRpZDogZWFlMjZjY2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRpZDogNTJiODhlYjIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5 KTogdGlkOiA1MmI4OGViMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiA1MmI4OGViMiAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzMxKTogdGlkOiA1MmI4OGViMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDU2NDAwIG5ibG9ja3MgMHg1OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgxCk9wZXIgKDMzMik6IHRpZDogNTJiODhlYjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzMzKTogdGlkOiA1MmI4OGViMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzQpOiB0aWQ6IDUyYjg4ZWIyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY2ICBsb25n ZXN0OiAxOTQ5MjI2NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogNTJiODhl YjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMzYpOiB0aWQ6IDUyYjg4ZWIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDog NTJiODhlYjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzM4KTogdGlkOiA1MmI4OGViMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0 aWQ6IDUyYjg4ZWIyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6 IHRpZDogNjgwMjZkNzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6IHRpZDogNjgwMjZkNzQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDM0Myk6IHRpZDogNjgwMjZkNzQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg1NzgwMCBuYmxvY2tzIDB4NTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICgzNDQpOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0NSk6IHRpZDogNjgwMjZkNzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ2KTogdGlkOiA2ODAyNmQ3NCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NSAgbG9uZ2Vz dDogMTk0OTIyNjUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0aWQ6IDY4MDI2ZDc0 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzQ4KTogdGlkOiA2ODAyNmQ3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IDY4 MDI2ZDc0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1MCk6IHRpZDogNjgwMjZkNzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlk OiA2ODAyNmQ3NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlkOiBiMTcwODI2MyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0 aWQ6IGIxNzA4MjYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IGIxNzA4MjYzICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzNTUpOiB0aWQ6IGIxNzA4MjYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NThjMDAgbmJsb2NrcyAweDVhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMzU2KTogdGlkOiBiMTcwODI2MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTcpOiB0aWQ6IGIxNzA4MjYzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM1OCk6IHRpZDogYjE3MDgyNjMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjQgIGxvbmdlc3Q6 IDE5NDkyMjY0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiBiMTcwODI2MyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM2MCk6IHRpZDogYjE3MDgyNjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiBiMTcw ODI2MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNjIpOiB0aWQ6IGIxNzA4MjYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDog YjE3MDgyNjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDogYzYzMDNmMGQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlk OiBjNjMwM2YwZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlkOiBjNjMwM2YwZCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzY3KTogdGlkOiBjNjMwM2YwZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDVhMDAwIG5ibG9ja3MgMHg1YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDM2OCk6IHRpZDogYzYzMDNmMGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY5 KTogdGlkOiBjNjMwM2YwZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzNzApOiB0aWQ6IGM2MzAzZjBkICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYyICBsb25nZXN0OiAx OTQ5MjI2MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogYzYzMDNmMGQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzNzIpOiB0aWQ6IGM2MzAzZjBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogYzYzMDNm MGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzc0KTogdGlkOiBjNjMwM2YwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IGM2 MzAzZjBkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDog YzhmMjI5MGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDogYzhmMjI5MGEgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDM3OSk6IHRpZDogYzhmMjI5MGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg1YjQwMCBuYmxvY2tzIDB4NWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICgzODApOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4MSk6 IHRpZDogYzhmMjI5MGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzgyKTogdGlkOiBjOGYyMjkwYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2MSAgbG9uZ2VzdDogMTk0 OTIyNjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IGM4ZjIyOTBhICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo Mzg0KTogdGlkOiBjOGYyMjkwYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IGM4ZjIyOTBh ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM4Nik6IHRpZDogYzhmMjI5MGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg3KTogdGlkOiBjOGYy MjkwYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiA1YzEwYWE5NSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IDVj MTBhYTk1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IDVjMTBhYTk1ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz OTEpOiB0aWQ6IDVjMTBhYTk1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 NWM4MDAgbmJsb2NrcyAweDVlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMzkyKTogdGlkOiA1YzEwYWE5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTMpOiB0 aWQ6IDVjMTBhYTk1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDM5NCk6IHRpZDogNWMxMGFhOTUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjAgIGxvbmdlc3Q6IDE5NDky MjYwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiA1YzEwYWE5NSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5 Nik6IHRpZDogNWMxMGFhOTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiA1YzEwYWE5NSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzOTgpOiB0aWQ6IDVjMTBhYTk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OSk6IHRpZDogNWMxMGFh OTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogYmZkZWZhNzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAxKTogdGlkOiBiZmRl ZmE3MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDAyKTogdGlkOiBiZmRlZmE3MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDAz KTogdGlkOiBiZmRlZmE3MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVk YzAwIG5ibG9ja3MgMHg1ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDQwNCk6IHRpZDogYmZkZWZhNzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA1KTogdGlk OiBiZmRlZmE3MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0MDYpOiB0aWQ6IGJmZGVmYTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU5ICBsb25nZXN0OiAxOTQ5MjI1 OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogYmZkZWZhNzMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDgp OiB0aWQ6IGJmZGVmYTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogYmZkZWZhNzMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDEwKTogdGlkOiBiZmRlZmE3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTEpOiB0aWQ6IGJmZGVmYTcz ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTIpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogNGQ0YjA0 OTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQxNCk6IHRpZDogNGQ0YjA0OTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxNSk6 IHRpZDogNGQ0YjA0OTkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1ZjAw MCBuYmxvY2tzIDB4NjEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0 MTYpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNyk6IHRpZDog NGQ0YjA0OTkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDE4KTogdGlkOiA0ZDRiMDQ5OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NyAgbG9uZ2VzdDogMTk0OTIyNTcK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIwKTog dGlkOiA0ZDRiMDQ5OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IDRkNGIwNDk5ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQy Mik6IHRpZDogNGQ0YjA0OTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIzKTogdGlkOiA0ZDRiMDQ5OSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDI0KTogdGlkOiAyZGExOTUxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0aWQ6IDJkYTE5NTE3 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MjYpOiB0aWQ6IDJkYTE5NTE3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjcpOiB0 aWQ6IDJkYTE5NTE3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjA0MDAg bmJsb2NrcyAweDYyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDI4 KTogdGlkOiAyZGExOTUxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjkpOiB0aWQ6IDJk YTE5NTE3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQzMCk6IHRpZDogMmRhMTk1MTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTYgIGxvbmdlc3Q6IDE5NDkyMjU2Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiAyZGExOTUxNyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMik6IHRp ZDogMmRhMTk1MTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMzKTogdGlkOiAyZGExOTUxNyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzQp OiB0aWQ6IDJkYTE5NTE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNSk6IHRpZDogMmRhMTk1MTcgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzNik6IHRpZDogOGZkNGQ0N2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM3KTogdGlkOiA4ZmQ0ZDQ3ZSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDM4KTogdGlkOiA4ZmQ0ZDQ3ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDM5KTogdGlk OiA4ZmQ0ZDQ3ZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDYxODAwIG5i bG9ja3MgMHg2MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ0MCk6 IHRpZDogOGZkNGQ0N2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQxKTogdGlkOiA4ZmQ0 ZDQ3ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NDIpOiB0aWQ6IDhmZDRkNDdlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU1ICBsb25nZXN0OiAxOTQ5MjI1NQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Myk6IHRpZDogOGZkNGQ0N2UgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDQpOiB0aWQ6 IDhmZDRkNDdlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NSk6IHRpZDogOGZkNGQ0N2UgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ2KTog dGlkOiA4ZmQ0ZDQ3ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDcpOiB0aWQ6IDhmZDRkNDdlICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NDgpOiB0aWQ6IGI5OWNiM2RjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogYjk5Y2IzZGMgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ1MCk6IHRpZDogYjk5Y2IzZGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1MSk6IHRpZDog Yjk5Y2IzZGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MmMwMCBuYmxv Y2tzIDB4NjQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NTIpOiB0 aWQ6IGI5OWNiM2RjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Myk6IHRpZDogYjk5Y2Iz ZGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDU0KTogdGlkOiBiOTljYjNkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NCAgbG9uZ2VzdDogMTk0OTIyNTQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6IGI5OWNiM2RjICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU2KTogdGlkOiBi OTljYjNkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IGI5OWNiM2RjICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1OCk6IHRp ZDogYjk5Y2IzZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlkOiBiOTljYjNkYyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYwKTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IDhkNDc1YjYyICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjIpOiB0aWQ6IDhkNDc1YjYyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjMpOiB0aWQ6IDhk NDc1YjYyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjQwMDAgbmJsb2Nr cyAweDY2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDY0KTogdGlk OiA4ZDQ3NWI2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjUpOiB0aWQ6IDhkNDc1YjYy ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQ2Nik6IHRpZDogOGQ0NzViNjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTIgIGxvbmdlc3Q6IDE5NDkyMjUyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2OCk6IHRpZDogOGQ0 NzViNjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY5KTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzApOiB0aWQ6 IDhkNDc1YjYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDogOGQ0NzViNjIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ3Mik6IHRpZDogMzA1NTc2NzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDczKTogdGlkOiAzMDU1NzY3NCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDc0KTogdGlkOiAzMDU1NzY3NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDc1KTogdGlkOiAzMDU1 NzY3NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY1NDAwIG5ibG9ja3Mg MHg2NyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ3Nik6IHRpZDog MzA1NTc2NzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc3KTogdGlkOiAzMDU1NzY3NCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0NzgpOiB0aWQ6IDMwNTU3Njc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjUxICBsb25nZXN0OiAxOTQ5MjI1MQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogMzA1NTc2NzQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODApOiB0aWQ6IDMwNTU3 Njc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRpZDogMzA1NTc2NzQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgyKTogdGlkOiAz MDU1NzY3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IDMwNTU3Njc0ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 ODQpOiB0aWQ6IDY0YjQ5OGIxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDogNjRiNDk4YjEgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 Nik6IHRpZDogNjRiNDk4YjEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4Nyk6IHRpZDogNjRiNDk4 YjEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NjgwMCBuYmxvY2tzIDB4 NjggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0ODgpOiB0aWQ6IDY0 YjQ5OGIxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4OSk6IHRpZDogNjRiNDk4YjEgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDkwKTogdGlkOiA2NGI0OThiMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09O VElOVUUgCkFHRiBCdWZmZXI6IFhBR0YgIE91dCBvZiBzcGFjZQoKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMjc5CXRhaWxfbHNuOiAxLDEzOApsZW5ndGgg b2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDIxNQkJbnVtIG9wczogNDg5CnV1aWQ6 IDc3YThhODQ1LTAzN2ItNDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDogbGl0dGxlIGVu ZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRp ZDogNjRiNDk4YjEgIGxlbjogNzIgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVO RCAKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMSk6IHRpZDogNjRiNDk4YjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyKTogdGlkOiA2NGI0OThiMSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzKTogdGlkOiA2NGI0OThiMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0KTogdGlkOiA2NGI0OThiMSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1KTogdGlkOiA2NGI0OThiMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNik6IHRpZDogNzM3Njk0NDgg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNyk6IHRpZDogNzM3Njk0NDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgpOiB0aWQ6IDczNzY5NDQ4ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg5KTogdGlkOiA3Mzc2OTQ0OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDY3YzAwIG5ibG9ja3MgMHg2OSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDEwKTogdGlkOiA3Mzc2OTQ0OCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMSk6IHRpZDogNzM3Njk0NDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTIpOiB0aWQ6IDczNzY5NDQ4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ5ICBs b25nZXN0OiAxOTQ5MjI0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiA3Mzc2 OTQ0OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE0KTogdGlkOiA3Mzc2OTQ0OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNSk6IHRpZDog NzM3Njk0NDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTYpOiB0aWQ6IDczNzY5NDQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlk OiA3Mzc2OTQ0OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0aWQ6IDczMWIwMWNiICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlk OiA3MzFiMDFjYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjApOiB0aWQ6IDczMWIwMWNiICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgyMSk6IHRpZDogNzMxYjAxY2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg2OTAwMCBuYmxvY2tzIDB4NmIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICgyMik6IHRpZDogNzMxYjAxY2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0 aWQ6IDczMWIwMWNiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDI0KTogdGlkOiA3MzFiMDFjYiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0NyAgbG9uZ2VzdDogMTk0OTIy NDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNSk6IHRpZDogNzMxYjAxY2IgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNik6 IHRpZDogNzMxYjAxY2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0aWQ6IDczMWIwMWNiICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4 KTogdGlkOiA3MzFiMDFjYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOSk6IHRpZDogNzMxYjAxY2IgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMwKTogdGlkOiA2NTQ3YjBjNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDogNjU0N2IwYzcgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMyKTogdGlkOiA2NTQ3YjBjNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzMpOiB0aWQ6IDY1 NDdiMGM3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NmE0MDAgbmJsb2Nr cyAweDZjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzQpOiB0aWQ6 IDY1NDdiMGM3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTogdGlkOiA2NTQ3YjBjNyAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzNik6IHRpZDogNjU0N2IwYzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyNDYgIGxvbmdlc3Q6IDE5NDkyMjQ2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6IDY1NDdiMGM3ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgpOiB0aWQ6IDY1NDdiMGM3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiA2NTQ3YjBjNyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MCk6IHRpZDogNjU0N2Iw YzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IDY1NDdiMGM3ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mik6IHRp ZDogNDEwMjEyOWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDMpOiB0aWQ6IDQxMDIxMjljICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NCk6IHRpZDog NDEwMjEyOWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1KTogdGlkOiA0MTAyMTI5YyAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZiODAwIG5ibG9ja3MgMHg2ZCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ2KTogdGlkOiA0MTAyMTI5YyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogNDEwMjEyOWMgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDgpOiB0aWQ6IDQx MDIxMjljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjQ1ICBsb25nZXN0OiAxOTQ5MjI0NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ5KTogdGlkOiA0MTAyMTI5YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUwKTogdGlkOiA0MTAyMTI5YyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1MSk6IHRpZDogNDEwMjEyOWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTIpOiB0aWQ6IDQxMDIxMjljICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDUzKTogdGlkOiA0MTAyMTI5YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQpOiB0aWQ6IGVmNmQ1NDhhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDU1KTogdGlkOiBlZjZkNTQ4YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IGVmNmQ1NDhhICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg1Nyk6IHRpZDogZWY2ZDU0OGEgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg2Y2MwMCBuYmxvY2tzIDB4NmUgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MQpPcGVyICg1OCk6IHRpZDogZWY2ZDU0OGEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNTkpOiB0aWQ6IGVmNmQ1NDhhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDYwKTogdGlkOiBlZjZkNTQ4YSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0NCAg bG9uZ2VzdDogMTk0OTIyNDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDogZWY2 ZDU0OGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg2Mik6IHRpZDogZWY2ZDU0OGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjMpOiB0aWQ6 IGVmNmQ1NDhhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDY0KTogdGlkOiBlZjZkNTQ4YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NSk6IHRp ZDogZWY2ZDU0OGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlkOiBhM2MyMGQxNSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRp ZDogYTNjMjBkMTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY4KTogdGlkOiBhM2MyMGQxNSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNjkpOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NmUwMDAgbmJsb2NrcyAweDcwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoNzApOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTog dGlkOiBhM2MyMGQxNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg3Mik6IHRpZDogYTNjMjBkMTUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDIgIGxvbmdlc3Q6IDE5NDky MjQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzQp OiB0aWQ6IGEzYzIwZDE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiBhM2MyMGQxNSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3 Nik6IHRpZDogYTNjMjBkMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IGEzYzIwZDE1ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg3OCk6IHRpZDogYTQ3YjRjMjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzkpOiB0aWQ6IGE0N2I0YzI4ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg4MCk6IHRpZDogYTQ3YjRjMjggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDgxKTogdGlkOiBh NDdiNGMyOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZmNDAwIG5ibG9j a3MgMHg3MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDgyKTogdGlk OiBhNDdiNGMyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogYTQ3YjRjMjgg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoODQpOiB0aWQ6IGE0N2I0YzI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQxICBsb25nZXN0OiAxOTQ5MjI0MQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiBhNDdiNGMyOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg2KTogdGlkOiBhNDdiNGMy OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogYTQ3YjRjMjggIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODgpOiB0aWQ6IGE0N2I0 YzI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiBhNDdiNGMyOCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTApOiB0 aWQ6IGM4NTJlZDBhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiBjODUyZWQwYSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTIpOiB0aWQ6 IGM4NTJlZDBhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg5Myk6IHRpZDogYzg1MmVkMGEgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3MDgwMCBuYmxvY2tzIDB4NzIgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg5NCk6IHRpZDogYzg1MmVkMGEgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IGM4NTJlZDBhICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDk2KTogdGlkOiBj ODUyZWQwYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI0MCAgbG9uZ2VzdDogMTk0OTIyNDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5Nyk6IHRpZDogYzg1MmVkMGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5OCk6IHRpZDogYzg1MmVkMGEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOTkpOiB0aWQ6IGM4NTJlZDBhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwMCk6IHRpZDogYzg1MmVkMGEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTAxKTogdGlkOiBjODUyZWQwYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlkOiBlNmM2Zjdl MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMDMpOiB0aWQ6IGU2YzZmN2UwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDQpOiB0aWQ6IGU2YzZmN2Uw ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgxMDUpOiB0aWQ6IGU2YzZmN2UwICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzFjMDAgbmJsb2NrcyAweDczIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTA2KTogdGlkOiBlNmM2ZjdlMCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMDcpOiB0aWQ6IGU2YzZmN2UwICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwOCk6IHRpZDogZTZjNmY3 ZTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyMzkgIGxvbmdlc3Q6IDE5NDkyMjM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA5 KTogdGlkOiBlNmM2ZjdlMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDExMCk6IHRpZDogZTZjNmY3ZTAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTExKTogdGlkOiBlNmM2ZjdlMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTIpOiB0aWQ6IGU2YzZmN2UwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExMyk6IHRpZDogZTZjNmY3ZTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNCk6IHRpZDogMTdhMjkyOSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMTUpOiB0aWQ6IDE3YTI5MjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNik6IHRpZDogMTdhMjkyOSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTE3KTogdGlkOiAxN2EyOTI5ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NzMwMDAgbmJsb2NrcyAweDc1IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoMTE4KTogdGlkOiAxN2EyOTI5ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDExOSk6IHRpZDogMTdhMjkyOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMjApOiB0aWQ6IDE3YTI5MjkgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzcg IGxvbmdlc3Q6IDE5NDkyMjM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiAx N2EyOTI5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTIyKTogdGlkOiAxN2EyOTI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMyk6IHRp ZDogMTdhMjkyOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMjQpOiB0aWQ6IDE3YTI5MjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI1KTog dGlkOiAxN2EyOTI5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjYpOiB0aWQ6IDI3MDJhMjFjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6 IHRpZDogMjcwMmEyMWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOCk6IHRpZDogMjcwMmEyMWMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEyOSk6IHRpZDogMjcwMmEyMWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg3NDQwMCBuYmxvY2tzIDB4NzYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICgxMzApOiB0aWQ6IDI3MDJhMjFjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEzMSk6IHRpZDogMjcwMmEyMWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTMyKTogdGlkOiAyNzAyYTIxYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzNiAgbG9uZ2Vz dDogMTk0OTIyMzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzMpOiB0aWQ6IDI3MDJhMjFj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTM0KTogdGlkOiAyNzAyYTIxYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzUpOiB0aWQ6IDI3 MDJhMjFjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEzNik6IHRpZDogMjcwMmEyMWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM3KTogdGlk OiAyNzAyYTIxYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTogdGlkOiA2OTBiYTI2MiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0 aWQ6IDY5MGJhMjYyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDApOiB0aWQ6IDY5MGJhMjYyICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxNDEpOiB0aWQ6IDY5MGJhMjYyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NzU4MDAgbmJsb2NrcyAweDc3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMTQyKTogdGlkOiA2OTBiYTI2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NDMpOiB0aWQ6IDY5MGJhMjYyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDE0NCk6IHRpZDogNjkwYmEyNjIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzUgIGxvbmdlc3Q6 IDE5NDkyMjM1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiA2OTBiYTI2MiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE0Nik6IHRpZDogNjkwYmEyNjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ3KTogdGlkOiA2OTBi YTI2MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxNDgpOiB0aWQ6IDY5MGJhMjYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDog NjkwYmEyNjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1MCk6IHRpZDogNTkzOWJlNDggIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUxKTogdGlk OiA1OTM5YmU0OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTUyKTogdGlkOiA1OTM5YmU0OCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTUzKTogdGlkOiA1OTM5YmU0OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDc2YzAwIG5ibG9ja3MgMHg3OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDE1NCk6IHRpZDogNTkzOWJlNDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1 KTogdGlkOiA1OTM5YmU0OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxNTYpOiB0aWQ6IDU5MzliZTQ4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjM0ICBsb25nZXN0OiAx OTQ5MjIzNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogNTkzOWJlNDggIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNTgpOiB0aWQ6IDU5MzliZTQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OSk6IHRpZDogNTkzOWJl NDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTYwKTogdGlkOiA1OTM5YmU0OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IDU5 MzliZTQ4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNjIpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDog NzI5NjVmNzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2NCk6IHRpZDogNzI5NjVmNzggIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDE2NSk6IHRpZDogNzI5NjVmNzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg3ODAwMCBuYmxvY2tzIDB4N2EgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICgxNjYpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6 IHRpZDogNzI5NjVmNzggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTY4KTogdGlkOiA3Mjk2NWY3OCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzMiAgbG9uZ2VzdDogMTk0 OTIyMzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTcwKTogdGlkOiA3Mjk2NWY3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzEpOiB0aWQ6IDcyOTY1Zjc4 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE3Mik6IHRpZDogNzI5NjVmNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiA3Mjk2 NWY3OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTc0KTogdGlkOiBlZTU5NWM5NyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IGVl NTk1Yzk3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNzYpOiB0aWQ6IGVlNTk1Yzk3ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx NzcpOiB0aWQ6IGVlNTk1Yzk3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 Nzk0MDAgbmJsb2NrcyAweDdiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMTc4KTogdGlkOiBlZTU5NWM5NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0 aWQ6IGVlNTk1Yzk3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDE4MCk6IHRpZDogZWU1OTVjOTcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzEgIGxvbmdlc3Q6IDE5NDky MjMxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiBlZTU5NWM5NyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4 Mik6IHRpZDogZWU1OTVjOTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgzKTogdGlkOiBlZTU5NWM5NyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxODQpOiB0aWQ6IGVlNTk1Yzk3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogZWU1OTVj OTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4Nik6IHRpZDogMWFkYmFlNDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiAxYWRi YWU0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTg4KTogdGlkOiAxYWRiYWU0OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg5 KTogdGlkOiAxYWRiYWU0OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdh ODAwIG5ibG9ja3MgMHg3YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDE5MCk6IHRpZDogMWFkYmFlNDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlk OiAxYWRiYWU0OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxOTIpOiB0aWQ6IDFhZGJhZTQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjMwICBsb25nZXN0OiAxOTQ5MjIz MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogMWFkYmFlNDkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTQp OiB0aWQ6IDFhZGJhZTQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NSk6IHRpZDogMWFkYmFlNDkgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTk2KTogdGlkOiAxYWRiYWU0OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IDFhZGJhZTQ5 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOTgpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogNmMxYTg2 YzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwMCk6IHRpZDogNmMxYTg2YzIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIwMSk6 IHRpZDogNmMxYTg2YzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3YmMw MCBuYmxvY2tzIDB4N2QgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgy MDIpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6IHRpZDog NmMxYTg2YzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjA0KTogdGlkOiA2YzFhODZjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyOSAgbG9uZ2VzdDogMTk0OTIyMjkK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDUpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA2KTog dGlkOiA2YzFhODZjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDcpOiB0aWQ6IDZjMWE4NmMyICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIw OCk6IHRpZDogNmMxYTg2YzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiA2YzFhODZjMiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjEwKTogdGlkOiA0NjZlMTgyYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDQ2NmUxODJi ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMTIpOiB0aWQ6IDQ2NmUxODJiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTMpOiB0 aWQ6IDQ2NmUxODJiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4N2QwMDAg bmJsb2NrcyAweDdmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjE0 KTogdGlkOiA0NjZlMTgyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUpOiB0aWQ6IDQ2 NmUxODJiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDIxNik6IHRpZDogNDY2ZTE4MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjcgIGxvbmdlc3Q6IDE5NDkyMjI3Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE3KTogdGlkOiA0NjZlMTgyYiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxOCk6IHRp ZDogNDY2ZTE4MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE5KTogdGlkOiA0NjZlMTgyYiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjAp OiB0aWQ6IDQ2NmUxODJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogNDY2ZTE4MmIgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyMik6IHRpZDogNTNmMDQyMGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiA1M2YwNDIwZCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjI0KTogdGlkOiA1M2YwNDIwZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjI1KTogdGlk OiA1M2YwNDIwZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdlNDAwIG5i bG9ja3MgMHg4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIyNik6 IHRpZDogNTNmMDQyMGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTogdGlkOiA1M2Yw NDIwZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyMjgpOiB0aWQ6IDUzZjA0MjBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI2ICBsb25nZXN0OiAxOTQ5MjIyNgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyOSk6IHRpZDogNTNmMDQyMGQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzApOiB0aWQ6 IDUzZjA0MjBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMSk6IHRpZDogNTNmMDQyMGQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMyKTog dGlkOiA1M2YwNDIwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IDUzZjA0MjBkICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzQpOiB0aWQ6IDlkOTczNzEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogOWQ5NzM3MTMgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzNik6IHRpZDogOWQ5NzM3MTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzNyk6IHRpZDog OWQ5NzM3MTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ZjgwMCBuYmxv Y2tzIDB4ODEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMzgpOiB0 aWQ6IDlkOTczNzEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDogOWQ5NzM3 MTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMjQwKTogdGlkOiA5ZDk3MzcxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyNSAgbG9uZ2VzdDogMTk0OTIyMjUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNDEpOiB0aWQ6IDlkOTczNzEzICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQyKTogdGlkOiA5 ZDk3MzcxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDMpOiB0aWQ6IDlkOTczNzEzICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0NCk6IHRp ZDogOWQ5NzM3MTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiA5ZDk3MzcxMyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQ2KTogdGlkOiBkZmM2M2YyMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IGRmYzYzZjIzICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNDgpOiB0aWQ6IGRmYzYzZjIzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDkpOiB0aWQ6IGRm YzYzZjIzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODBjMDAgbmJsb2Nr cyAweDgyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjUwKTogdGlk OiBkZmM2M2YyMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IGRmYzYzZjIz ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDI1Mik6IHRpZDogZGZjNjNmMjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjQgIGxvbmdlc3Q6IDE5NDkyMjI0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjUzKTogdGlkOiBkZmM2M2YyMyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1NCk6IHRpZDogZGZj NjNmMjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU1KTogdGlkOiBkZmM2M2YyMyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTYpOiB0aWQ6 IGRmYzYzZjIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogZGZjNjNmMjMgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1OCk6IHRpZDogM2ViMzVlYWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiAzZWIzNWVhYyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjYwKTogdGlkOiAzZWIzNWVhYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjYxKTogdGlkOiAzZWIz NWVhYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDgyMDAwIG5ibG9ja3Mg MHg4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI2Mik6IHRpZDog M2ViMzVlYWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiAzZWIzNWVhYyAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyNjQpOiB0aWQ6IDNlYjM1ZWFjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjIyICBsb25nZXN0OiAxOTQ5MjIyMgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI2NSk6IHRpZDogM2ViMzVlYWMgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjYpOiB0aWQ6IDNlYjM1 ZWFjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nyk6IHRpZDogM2ViMzVlYWMgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY4KTogdGlkOiAz ZWIzNWVhYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IDNlYjM1ZWFjICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzApOiB0aWQ6IDgxMzgzYzU0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogODEzODNjNTQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3 Mik6IHRpZDogODEzODNjNTQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3Myk6IHRpZDogODEzODNj NTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4MzQwMCBuYmxvY2tzIDB4 ODUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNzQpOiB0aWQ6IDgx MzgzYzU0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogODEzODNjNTQgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo Mjc2KTogdGlkOiA4MTM4M2M1NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyMSAgbG9uZ2VzdDogMTk0OTIyMjEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNzcpOiB0aWQ6IDgxMzgzYzU0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc4KTogdGlkOiA4MTM4M2M1 NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNzkpOiB0aWQ6IDgxMzgzYzU0ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4MCk6IHRpZDogODEz ODNjNTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiA4MTM4M2M1NCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgy KTogdGlkOiAyMGM2YjljMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IDIwYzZiOWMxICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODQp OiB0aWQ6IDIwYzZiOWMxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyODUpOiB0aWQ6IDIwYzZiOWMx ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODQ4MDAgbmJsb2NrcyAweDg2 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjg2KTogdGlkOiAyMGM2 YjljMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IDIwYzZiOWMxICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4 OCk6IHRpZDogMjBjNmI5YzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyMjAgIGxvbmdlc3Q6IDE5NDkyMjIwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjg5KTogdGlkOiAyMGM2YjljMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5MCk6IHRpZDogMjBjNmI5YzEg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjkxKTogdGlkOiAyMGM2YjljMSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTIpOiB0aWQ6IDIwYzZi OWMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogMjBjNmI5YzEgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NCk6 IHRpZDogZTM3MDU3YjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk1KTogdGlkOiBlMzcwNTdiMiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk2KTog dGlkOiBlMzcwNTdiMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjk3KTogdGlkOiBlMzcwNTdiMiAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg1YzAwIG5ibG9ja3MgMHg4NyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI5OCk6IHRpZDogZTM3MDU3 YjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlkOiBlMzcwNTdiMiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDAp OiB0aWQ6IGUzNzA1N2IyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjE5ICBsb25nZXN0OiAxOTQ5MjIxOQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMwMSk6IHRpZDogZTM3MDU3YjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDIpOiB0aWQ6IGUzNzA1N2IyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwMyk6IHRpZDogZTM3MDU3YjIgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA0KTogdGlkOiBlMzcwNTdi MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0aWQ6IGUzNzA1N2IyICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDYpOiB0 aWQ6IDU5MzAzYzYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNyk6IHRpZDogNTkzMDNjNjIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOCk6IHRp ZDogNTkzMDNjNjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwOSk6IHRpZDogNTkzMDNjNjIgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4NzAwMCBuYmxvY2tzIDB4ODkgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMTApOiB0aWQ6IDU5MzAzYzYy ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDogNTkzMDNjNjIgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzEyKTog dGlkOiA1OTMwM2M2MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjIxNyAgbG9uZ2VzdDogMTk0OTIyMTcKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMTMpOiB0aWQ6IDU5MzAzYzYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE0KTogdGlkOiA1OTMwM2M2MiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTUpOiB0aWQ6IDU5MzAzYzYyICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNik6IHRpZDogNTkzMDNjNjIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzE3KTogdGlkOiA1OTMwM2M2MiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE4KTogdGlk OiA1NDVmYjZmNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTkpOiB0aWQ6IDU0NWZiNmY0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjApOiB0aWQ6 IDU0NWZiNmY0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMjEpOiB0aWQ6IDU0NWZiNmY0ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODg0MDAgbmJsb2NrcyAweDhhIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzIyKTogdGlkOiA1NDVmYjZmNCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDU0NWZiNmY0ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyNCk6IHRp ZDogNTQ1ZmI2ZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyMTYgIGxvbmdlc3Q6IDE5NDkyMjE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzI1KTogdGlkOiA1NDVmYjZmNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyNik6IHRpZDogNTQ1ZmI2ZjQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzI3KTogdGlkOiA1NDVmYjZmNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjgpOiB0aWQ6IDU0NWZiNmY0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogNTQ1ZmI2ZjQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMCk6IHRpZDog M2U5N2U5YzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzMxKTogdGlkOiAzZTk3ZTljNCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMyKTogdGlkOiAz ZTk3ZTljNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzMzKTogdGlkOiAzZTk3ZTljNCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg5ODAwIG5ibG9ja3MgMHg4YiBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMzNCk6IHRpZDogM2U5N2U5YzQgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiAzZTk3ZTljNCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzYpOiB0aWQ6 IDNlOTdlOWM0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjE1ICBsb25nZXN0OiAxOTQ5MjIxNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzNyk6IHRpZDogM2U5N2U5YzQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzgpOiB0aWQ6IDNlOTdlOWM0ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzOSk6IHRpZDogM2U5N2U5YzQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQwKTogdGlkOiAzZTk3ZTljNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IDNlOTdlOWM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDIpOiB0aWQ6IGJh OWRhZTlmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0Myk6IHRpZDogYmE5ZGFlOWYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NCk6IHRpZDogYmE5 ZGFlOWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0NSk6IHRpZDogYmE5ZGFlOWYgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4YWMwMCBuYmxvY2tzIDB4OGMgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNDYpOiB0aWQ6IGJhOWRhZTlmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogYmE5ZGFlOWYgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ4KTogdGlkOiBi YTlkYWU5ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjIxNCAgbG9uZ2VzdDogMTk0OTIyMTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNDkpOiB0aWQ6IGJhOWRhZTlmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUwKTogdGlkOiBiYTlkYWU5ZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTEpOiB0aWQ6IGJhOWRhZTlmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1Mik6IHRpZDogYmE5ZGFlOWYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzUzKTogdGlkOiBiYTlkYWU5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU0KTogdGlkOiA0MDNm NGMwZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IDQwM2Y0YzBmICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTYpOiB0aWQ6IDQwM2Y0 YzBmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNTcpOiB0aWQ6IDQwM2Y0YzBmICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGMwMDAgbmJsb2NrcyAweDhlIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzU4KTogdGlkOiA0MDNmNGMwZiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0aWQ6IDQwM2Y0YzBmICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2MCk6IHRpZDogNDAz ZjRjMGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyMTIgIGxvbmdlc3Q6IDE5NDkyMjEyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzYxKTogdGlkOiA0MDNmNGMwZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2Mik6IHRpZDogNDAzZjRjMGYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzYzKTogdGlkOiA0MDNmNGMwZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjQpOiB0aWQ6IDQwM2Y0YzBmICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM2NSk6IHRpZDogNDAzZjRjMGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nik6IHRpZDogYWM4YWM3 NmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY3KTogdGlkOiBhYzhhYzc2YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY4KTogdGlkOiBhYzhhYzc2 YiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzY5KTogdGlkOiBhYzhhYzc2YiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhkNDAwIG5ibG9ja3MgMHg4ZiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM3MCk6IHRpZDogYWM4YWM3NmIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlkOiBhYzhhYzc2YiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNzIpOiB0aWQ6IGFjOGFj NzZiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjExICBsb25nZXN0OiAxOTQ5MjIxMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 Myk6IHRpZDogYWM4YWM3NmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzQpOiB0aWQ6IGFjOGFjNzZiICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3NSk6IHRpZDogYWM4YWM3NmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc2KTogdGlkOiBhYzhhYzc2YiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNzcpOiB0aWQ6IGFjOGFjNzZiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzgpOiB0aWQ6IGIxZTM0NzQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzc5KTogdGlkOiBiMWUzNDc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODApOiB0aWQ6IGIxZTM0NzQgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDM4MSk6IHRpZDogYjFlMzQ3NCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDhlODAwIG5ibG9ja3MgMHg5MCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM4Mik6IHRpZDogYjFlMzQ3NCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzODMpOiB0aWQ6IGIxZTM0NzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzg0KTogdGlkOiBiMWUzNDc0ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjEw ICBsb25nZXN0OiAxOTQ5MjIxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NSk6IHRpZDog YjFlMzQ3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDM4Nik6IHRpZDogYjFlMzQ3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODcpOiB0 aWQ6IGIxZTM0NzQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiBiMWUzNDc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OSk6 IHRpZDogYjFlMzQ3NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkwKTogdGlkOiA5ZTg4NzViMiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTEp OiB0aWQ6IDllODg3NWIyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTIpOiB0aWQ6IDllODg3NWIyICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgzOTMpOiB0aWQ6IDllODg3NWIyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4OGZjMDAgbmJsb2NrcyAweDkxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDEKT3BlciAoMzk0KTogdGlkOiA5ZTg4NzViMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzOTUpOiB0aWQ6IDllODg3NWIyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5Nik6IHRpZDogOWU4ODc1YjIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDkgIGxvbmdl c3Q6IDE5NDkyMjA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiA5ZTg4NzVi MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM5OCk6IHRpZDogOWU4ODc1YjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk5KTogdGlkOiA5 ZTg4NzViMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0MDApOiB0aWQ6IDllODg3NWIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRp ZDogOWU4ODc1YjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMik6IHRpZDogM2U0MmNmMDcgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTog dGlkOiAzZTQyY2YwNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDA0KTogdGlkOiAzZTQyY2YwNyAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNDA1KTogdGlkOiAzZTQyY2YwNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDkxMDAwIG5ibG9ja3MgMHg5MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgxCk9wZXIgKDQwNik6IHRpZDogM2U0MmNmMDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDA3KTogdGlkOiAzZTQyY2YwNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MDgpOiB0aWQ6IDNlNDJjZjA3ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA3ICBsb25nZXN0 OiAxOTQ5MjIwNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogM2U0MmNmMDcg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0MTApOiB0aWQ6IDNlNDJjZjA3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMSk6IHRpZDogM2U0 MmNmMDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDEyKTogdGlkOiAzZTQyY2YwNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0aWQ6 IDNlNDJjZjA3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MTQpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6IHRp ZDogZTNlNzMwZjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQxNik6IHRpZDogZTNlNzMwZjkgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQxNyk6IHRpZDogZTNlNzMwZjkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg5MjQwMCBuYmxvY2tzIDB4OTQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MQpPcGVyICg0MTgpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQx OSk6IHRpZDogZTNlNzMwZjkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNDIwKTogdGlkOiBlM2U3MzBmOSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNiAgbG9uZ2VzdDog MTk0OTIyMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IGUzZTczMGY5ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDIyKTogdGlkOiBlM2U3MzBmOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjMpOiB0aWQ6IGUzZTcz MGY5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQyNCk6IHRpZDogZTNlNzMwZjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiBl M2U3MzBmOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDI2KTogdGlkOiAyY2FlN2M3NSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0aWQ6 IDJjYWU3Yzc1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MjgpOiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg0MjkpOiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4OTM4MDAgbmJsb2NrcyAweDk1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoNDMwKTogdGlkOiAyY2FlN2M3NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzEp OiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDQzMik6IHRpZDogMmNhZTdjNzUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDUgIGxvbmdlc3Q6IDE5 NDkyMjA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMzKTogdGlkOiAyY2FlN2M3NSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQzNCk6IHRpZDogMmNhZTdjNzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiAyY2FlN2M3 NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0MzYpOiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDogMmNh ZTdjNzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRpZDogYWQyMjY3M2IgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlkOiBh ZDIyNjczYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDQwKTogdGlkOiBhZDIyNjczYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NDQxKTogdGlkOiBhZDIyNjczYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDk0YzAwIG5ibG9ja3MgMHg5NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDQ0Mik6IHRpZDogYWQyMjY3M2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTog dGlkOiBhZDIyNjczYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg0NDQpOiB0aWQ6IGFkMjI2NzNiICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA0ICBsb25nZXN0OiAxOTQ5 MjIwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NSk6IHRpZDogYWQyMjY3M2IgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NDYpOiB0aWQ6IGFkMjI2NzNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogYWQyMjY3M2Ig IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDQ4KTogdGlkOiBhZDIyNjczYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IGFkMjI2 NzNiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTApOiB0aWQ6IDk3YzZhZWJjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogOTdj NmFlYmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ1Mik6IHRpZDogOTdjNmFlYmMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1 Myk6IHRpZDogOTdjNmFlYmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5 NjAwMCBuYmxvY2tzIDB4OTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg0NTQpOiB0aWQ6IDk3YzZhZWJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6IHRp ZDogOTdjNmFlYmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDU2KTogdGlkOiA5N2M2YWViYyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMiAgbG9uZ2VzdDogMTk0OTIy MDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IDk3YzZhZWJjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU4 KTogdGlkOiA5N2M2YWViYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTkpOiB0aWQ6IDk3YzZhZWJjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQ2MCk6IHRpZDogOTdjNmFlYmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiA5N2M2YWVi YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDYyKTogdGlkOiBiOTY2MzJjOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IGI5NjYz MmM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NjQpOiB0aWQ6IGI5NjYzMmM4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjUp OiB0aWQ6IGI5NjYzMmM4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OTc0 MDAgbmJsb2NrcyAweDk5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo NDY2KTogdGlkOiBiOTY2MzJjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6 IGI5NjYzMmM4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDQ2OCk6IHRpZDogYjk2NjMyYzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDEgIGxvbmdlc3Q6IDE5NDkyMjAx Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY5KTogdGlkOiBiOTY2MzJjOCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3MCk6 IHRpZDogYjk2NjMyYzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcxKTogdGlkOiBiOTY2MzJjOCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NzIpOiB0aWQ6IGI5NjYzMmM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogYjk2NjMyYzgg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ3NCk6IHRpZDogNmY4MjUwMTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiA2ZjgyNTAx NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDc2KTogdGlkOiA2ZjgyNTAxNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDc3KTog dGlkOiA2ZjgyNTAxNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDk4ODAw IG5ibG9ja3MgMHg5YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ3 OCk6IHRpZDogNmY4MjUwMTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlkOiA2 ZjgyNTAxNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0ODApOiB0aWQ6IDZmODI1MDE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjAwICBsb25nZXN0OiAxOTQ5MjIwMAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRpZDogNmY4MjUwMTcgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODIpOiB0 aWQ6IDZmODI1MDE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Myk6IHRpZDogNmY4MjUwMTcgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDg0 KTogdGlkOiA2ZjgyNTAxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDZmODI1MDE3ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0ODYpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRpZDogNjBkZWFjNmQg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ4OCk6IHRpZDogNjBkZWFjNmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Cgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSwzNDMJdGFpbF9sc246IDEsMTM4Cmxl bmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2IG9mZnNldDogMjc5CQludW0gb3BzOiA0ODgK dXVpZDogNzdhOGE4NDUtMDM3Yi00NDY2LWIyZTktZTMxMzZjMjdiZTY1ICAgZm9ybWF0OiBsaXR0 bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgw KTogdGlkOiA2MGRlYWM2ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpM ZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxKTogdGlkOiA2MGRlYWM2ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyKTogdGlkOiA2MGRlYWM2ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzKTogdGlkOiA2MGRlYWM2ZCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5OSAg bG9uZ2VzdDogMTk0OTIxOTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiA2MGRl YWM2ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDUpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IDYw ZGVhYzZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDcpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgpOiB0aWQ6IDYw ZGVhYzZkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiA0OGM1ZWU2YSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMCk6IHRpZDogNDhj NWVlNmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExKTogdGlkOiA0OGM1ZWU2YSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTIp OiB0aWQ6IDQ4YzVlZTZhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWIw MDAgbmJsb2NrcyAweDlkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo MTMpOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0KTogdGlkOiA0 OGM1ZWU2YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxNSk6IHRpZDogNDhjNWVlNmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTcgIGxvbmdlc3Q6IDE5NDkyMTk3Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYpOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcpOiB0aWQ6 IDQ4YzVlZTZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiA0OGM1ZWU2YSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOSk6IHRp ZDogNDhjNWVlNmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjApOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMSk6IHRpZDogZDc5NTQ1YmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIpOiB0aWQ6IGQ3OTU0NWJjICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy Myk6IHRpZDogZDc5NTQ1YmMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0KTogdGlkOiBkNzk1NDVi YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDljNDAwIG5ibG9ja3MgMHg5 ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI1KTogdGlkOiBkNzk1 NDViYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNik6IHRpZDogZDc5NTQ1YmMgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcp OiB0aWQ6IGQ3OTU0NWJjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTk2ICBsb25nZXN0OiAxOTQ5MjE5NgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI4KTogdGlkOiBkNzk1NDViYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5KTogdGlkOiBkNzk1NDViYyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMCk6IHRpZDogZDc5NTQ1YmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzEpOiB0aWQ6IGQ3OTU0NWJjICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyKTogdGlkOiBkNzk1NDViYyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0aWQ6IGMx NzlmODJjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiBjMTc5ZjgyYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGMxNzlm ODJjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNik6IHRpZDogYzE3OWY4MmMgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5ZDgwMCBuYmxvY2tzIDB4OWYgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNyk6IHRpZDogYzE3OWY4MmMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IGMxNzlmODJjICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5KTogdGlkOiBjMTc5Zjgy YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjE5NSAgbG9uZ2VzdDogMTk0OTIxOTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MCk6 IHRpZDogYzE3OWY4MmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MSk6IHRpZDogYzE3OWY4MmMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDIpOiB0aWQ6IGMxNzlmODJjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQzKTogdGlkOiBjMTc5ZjgyYyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NCk6IHRpZDogYzE3OWY4MmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlkOiAxZGEzNTJjOSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Nik6IHRpZDogMWRhMzUyYzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiAxZGEzNTJjOSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDgpOiB0aWQ6IDFkYTM1MmM5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4OWVjMDAgbmJsb2NrcyAweGEwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoNDkpOiB0aWQ6IDFkYTM1MmM5ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDUwKTogdGlkOiAxZGEzNTJjOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1MSk6IHRpZDogMWRhMzUyYzkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTQgIGxvbmdl c3Q6IDE5NDkyMTk0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTIpOiB0aWQ6IDFkYTM1MmM5 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNTMpOiB0aWQ6IDFkYTM1MmM5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTogdGlkOiAxZGEz NTJjOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg1NSk6IHRpZDogMWRhMzUyYzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IDFk YTM1MmM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1Nyk6IHRpZDogYThmZjIyMTMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTgpOiB0aWQ6IGE4 ZmYyMjEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1OSk6IHRpZDogYThmZjIyMTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDYw KTogdGlkOiBhOGZmMjIxMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGEw MDAwIG5ibG9ja3MgMHhhMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDYxKTogdGlkOiBhOGZmMjIxMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDog YThmZjIyMTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNjMpOiB0aWQ6IGE4ZmYyMjEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTkyICBsb25nZXN0OiAxOTQ5MjE5Mgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiBhOGZmMjIxMyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDY1KTogdGlk OiBhOGZmMjIxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nik6IHRpZDogYThmZjIyMTMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjcpOiB0 aWQ6IGE4ZmYyMjEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY4KTogdGlkOiBhOGZmMjIxMyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjkpOiB0aWQ6IDJiMzI5MDVhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcwKTogdGlkOiAyYjMyOTA1YSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NzEpOiB0aWQ6IDJiMzI5MDVhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg3Mik6IHRpZDogMmIzMjkw NWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMTQwMCBuYmxvY2tzIDB4 YTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg3Myk6IHRpZDogMmIz MjkwNWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDJiMzI5MDVhICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc1 KTogdGlkOiAyYjMyOTA1YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE5MSAgbG9uZ2VzdDogMTk0OTIxOTEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3Nik6IHRpZDogMmIzMjkwNWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3Nyk6IHRpZDogMmIzMjkwNWEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzgpOiB0aWQ6IDJiMzI5MDVhICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc5KTogdGlkOiAyYjMyOTA1YSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4MCk6IHRpZDogMmIzMjkwNWEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTogdGlkOiBk ZWJiMmY2MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4Mik6IHRpZDogZGViYjJmNjMgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiBkZWJi MmY2MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODQpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YTI4MDAgbmJsb2NrcyAweGE0IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoODUpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDg2KTogdGlkOiBkZWJiMmY2MyAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4Nyk6IHRpZDogZGViYjJm NjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxOTAgIGxvbmdlc3Q6IDE5NDkyMTkwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODgp OiB0aWQ6IGRlYmIyZjYzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoODkpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDkwKTogdGlkOiBkZWJiMmY2MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5MSk6IHRpZDogZGViYjJmNjMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTIpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Myk6IHRpZDogOTM3NGU3ZDUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTQpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogOTM3NGU3ZDUgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDk2KTogdGlkOiA5Mzc0ZTdkNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGEzYzAwIG5ibG9ja3MgMHhhNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCk9wZXIgKDk3KTogdGlkOiA5Mzc0ZTdkNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg5OCk6IHRpZDogOTM3NGU3ZDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTkpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg5ICBsb25n ZXN0OiAxOTQ5MjE4OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogOTM3NGU3 ZDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMDEpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMik6IHRpZDog OTM3NGU3ZDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTAzKTogdGlkOiA5Mzc0ZTdkNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDQpOiB0 aWQ6IDkzNzRlN2Q1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IGZlMjE3ZmEzICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNik6 IHRpZDogZmUyMTdmYTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogZmUyMTdmYTMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEwOCk6IHRpZDogZmUyMTdmYTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhhNTAwMCBuYmxvY2tzIDB4YTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICgxMDkpOiB0aWQ6IGZlMjE3ZmEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExMCk6IHRpZDogZmUyMTdmYTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTExKTogdGlkOiBmZTIxN2ZhMyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NyAgbG9uZ2Vz dDogMTk0OTIxODcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTIpOiB0aWQ6IGZlMjE3ZmEz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTEzKTogdGlkOiBmZTIxN2ZhMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IGZl MjE3ZmEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDExNSk6IHRpZDogZmUyMTdmYTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE2KTogdGlk OiBmZTIxN2ZhMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTE3KTogdGlkOiA1YzA1OTdjMiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTgpOiB0 aWQ6IDVjMDU5N2MyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IDVjMDU5N2MyICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxMjApOiB0aWQ6IDVjMDU5N2MyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YTY0MDAgbmJsb2NrcyAweGE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMTIxKTogdGlkOiA1YzA1OTdjMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjIpOiB0aWQ6IDVjMDU5N2MyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEyMyk6IHRpZDogNWMwNTk3YzIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODYgIGxvbmdlc3Q6 IDE5NDkyMTg2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI0KTogdGlkOiA1YzA1OTdjMiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEyNSk6IHRpZDogNWMwNTk3YzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTogdGlkOiA1YzA1 OTdjMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMjcpOiB0aWQ6IDVjMDU5N2MyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOCk6IHRpZDog NWMwNTk3YzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDogMTg4MTk1MDQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMwKTogdGlk OiAxODgxOTUwNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiAxODgxOTUwNCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTMyKTogdGlkOiAxODgxOTUwNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGE3ODAwIG5ibG9ja3MgMHhhOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDEzMyk6IHRpZDogMTg4MTk1MDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0 KTogdGlkOiAxODgxOTUwNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxMzUpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg1ICBsb25nZXN0OiAx OTQ5MjE4NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRpZDogMTg4MTk1MDQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxMzcpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogMTg4MTk1 MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTM5KTogdGlkOiAxODgxOTUwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDApOiB0aWQ6IDE4 ODE5NTA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNDEpOiB0aWQ6IGYzMmFkMzA4ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Mik6IHRpZDog ZjMyYWQzMDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogZjMyYWQzMDggIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDE0NCk6IHRpZDogZjMyYWQzMDggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhhOGMwMCBuYmxvY2tzIDB4YWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICgxNDUpOiB0aWQ6IGYzMmFkMzA4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nik6 IHRpZDogZjMyYWQzMDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTQ3KTogdGlkOiBmMzJhZDMwOCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NCAgbG9uZ2VzdDogMTk0 OTIxODQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDgpOiB0aWQ6IGYzMmFkMzA4ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTQ5KTogdGlkOiBmMzJhZDMwOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IGYzMmFkMzA4 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE1MSk6IHRpZDogZjMyYWQzMDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUyKTogdGlkOiBmMzJh ZDMwOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTUzKTogdGlkOiA4NDkyYzYwMiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTQpOiB0aWQ6IDg0 OTJjNjAyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDg0OTJjNjAyICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx NTYpOiB0aWQ6IDg0OTJjNjAyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YWEwMDAgbmJsb2NrcyAweGFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMTU3KTogdGlkOiA4NDkyYzYwMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTgpOiB0 aWQ6IDg0OTJjNjAyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDE1OSk6IHRpZDogODQ5MmM2MDIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODIgIGxvbmdlc3Q6IDE5NDky MTgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYwKTogdGlkOiA4NDkyYzYwMiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2 MSk6IHRpZDogODQ5MmM2MDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiA4NDkyYzYwMiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNjMpOiB0aWQ6IDg0OTJjNjAyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NCk6IHRpZDogODQ5MmM2 MDIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE2NSk6IHRpZDogOWRiYjk2MmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY2KTogdGlkOiA5ZGJi OTYyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY3KTogdGlkOiA5ZGJiOTYyYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTY4 KTogdGlkOiA5ZGJiOTYyYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFi NDAwIG5ibG9ja3MgMHhhZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDE2OSk6IHRpZDogOWRiYjk2MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlk OiA5ZGJiOTYyYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxNzEpOiB0aWQ6IDlkYmI5NjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTgxICBsb25nZXN0OiAxOTQ5MjE4 MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Mik6IHRpZDogOWRiYjk2MmIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzMp OiB0aWQ6IDlkYmI5NjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogOWRiYjk2MmIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTc1KTogdGlkOiA5ZGJiOTYyYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzYpOiB0aWQ6IDlkYmI5NjJi ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzcpOiB0aWQ6IDMwMzdhY2M1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OCk6IHRpZDogMzAzN2Fj YzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3OSk6IHRpZDogMzAzN2FjYzUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4MCk6 IHRpZDogMzAzN2FjYzUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhYzgw MCBuYmxvY2tzIDB4YWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgx ODEpOiB0aWQ6IDMwMzdhY2M1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Mik6IHRpZDog MzAzN2FjYzUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTgzKTogdGlkOiAzMDM3YWNjNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4MCAgbG9uZ2VzdDogMTk0OTIxODAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODQpOiB0aWQ6IDMwMzdhY2M1ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTg1KTog dGlkOiAzMDM3YWNjNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODYpOiB0aWQ6IDMwMzdhY2M1ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4 Nyk6IHRpZDogMzAzN2FjYzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg4KTogdGlkOiAzMDM3YWNjNSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTg5KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTApOiB0aWQ6IGVmZmJkZTc2 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxOTEpOiB0aWQ6IGVmZmJkZTc2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTIpOiB0 aWQ6IGVmZmJkZTc2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWRjMDAg bmJsb2NrcyAweGFmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTkz KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQpOiB0aWQ6IGVm ZmJkZTc2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDE5NSk6IHRpZDogZWZmYmRlNzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzkgIGxvbmdlc3Q6IDE5NDkyMTc5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk2KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5Nyk6IHRp ZDogZWZmYmRlNzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk4KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTkp OiB0aWQ6IGVmZmJkZTc2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMCk6IHRpZDogZWZmYmRlNzYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIwMSk6IHRpZDogODNmZTg3NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDIpOiB0aWQ6IDgzZmU4NzQgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIwMyk6IHRpZDogODNmZTg3NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjA0KTogdGlkOiA4 M2ZlODc0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWYwMDAgbmJsb2Nr cyAweGIxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjA1KTogdGlk OiA4M2ZlODc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNik6IHRpZDogODNmZTg3NCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyMDcpOiB0aWQ6IDgzZmU4NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxNzcgIGxvbmdlc3Q6IDE5NDkyMTc3Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiA4M2ZlODc0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA5KTogdGlkOiA4M2ZlODc0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxMCk6IHRpZDogODNmZTg3NCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTEpOiB0aWQ6IDgzZmU4 NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjEyKTogdGlkOiA4M2ZlODc0ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0 aWQ6IDc2NzVkNmE5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNCk6IHRpZDogNzY3NWQ2YTkgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRp ZDogNzY3NWQ2YTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxNik6IHRpZDogNzY3NWQ2YTkgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMDQwMCBuYmxvY2tzIDB4YjIgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMTcpOiB0aWQ6IDc2NzVkNmE5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRpZDogNzY3NWQ2YTkgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE5KTog dGlkOiA3Njc1ZDZhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE3NiAgbG9uZ2VzdDogMTk0OTIxNzYKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMjApOiB0aWQ6IDc2NzVkNmE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIxKTogdGlkOiA3Njc1ZDZhOSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMjIpOiB0aWQ6IDc2NzVkNmE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMyk6IHRpZDogNzY3NWQ2YTkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjI0KTogdGlkOiA3Njc1ZDZhOSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlk OiAzYThjN2UxZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMjYpOiB0aWQ6IDNhOGM3ZTFlICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6 IDNhOGM3ZTFlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjgpOiB0aWQ6IDNhOGM3ZTFlICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjE4MDAgbmJsb2NrcyAweGIzIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjI5KTogdGlkOiAzYThjN2UxZSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzApOiB0aWQ6IDNhOGM3ZTFlICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzMSk6IHRp ZDogM2E4YzdlMWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxNzUgIGxvbmdlc3Q6IDE5NDkyMTc1Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjMyKTogdGlkOiAzYThjN2UxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMyk6IHRpZDogM2E4YzdlMWUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjM0KTogdGlkOiAzYThjN2UxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzUpOiB0aWQ6IDNhOGM3ZTFlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIzNik6IHRpZDogM2E4YzdlMWUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6IHRpZDog MTNmYWE2MmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjM4KTogdGlkOiAxM2ZhYTYyYiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiAx M2ZhYTYyYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQwKTogdGlkOiAxM2ZhYTYyYiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGIyYzAwIG5ibG9ja3MgMHhiNCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI0MSk6IHRpZDogMTNmYWE2MmIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQyKTogdGlkOiAxM2ZhYTYyYiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDMpOiB0aWQ6 IDEzZmFhNjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTc0ICBsb25nZXN0OiAxOTQ5MjE3NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0NCk6IHRpZDogMTNmYWE2MmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDUpOiB0aWQ6IDEzZmFhNjJiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI0Nik6IHRpZDogMTNmYWE2MmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ3KTogdGlkOiAxM2ZhYTYyYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNDgpOiB0aWQ6IDEzZmFhNjJiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0aWQ6IDQ3 ODllMGIxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI1MCk6IHRpZDogNDc4OWUwYjEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogNDc4 OWUwYjEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI1Mik6IHRpZDogNDc4OWUwYjEgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiNDAwMCBuYmxvY2tzIDB4YjYgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNTMpOiB0aWQ6IDQ3ODllMGIxICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NCk6IHRpZDogNDc4OWUwYjEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjU1KTogdGlkOiA0 Nzg5ZTBiMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjE3MiAgbG9uZ2VzdDogMTk0OTIxNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNTYpOiB0aWQ6IDQ3ODllMGIxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU3KTogdGlkOiA0Nzg5ZTBiMSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNTgpOiB0aWQ6IDQ3ODllMGIxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1OSk6IHRpZDogNDc4OWUwYjEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjYwKTogdGlkOiA0Nzg5ZTBiMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiAzNjY3 YzVkYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNjIpOiB0aWQ6IDM2NjdjNWRhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IDM2Njdj NWRhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjQpOiB0aWQ6IDM2NjdjNWRhICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjU0MDAgbmJsb2NrcyAweGI3IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjY1KTogdGlkOiAzNjY3YzVkYSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNjYpOiB0aWQ6IDM2NjdjNWRhICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2Nyk6IHRpZDogMzY2 N2M1ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIxNzEgIGxvbmdlc3Q6IDE5NDkyMTcxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjY4KTogdGlkOiAzNjY3YzVkYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2OSk6IHRpZDogMzY2N2M1ZGEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjcwKTogdGlkOiAzNjY3YzVkYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzEpOiB0aWQ6IDM2NjdjNWRhICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI3Mik6IHRpZDogMzY2N2M1ZGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Myk6IHRpZDogNTMyOGRm NDcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjc0KTogdGlkOiA1MzI4ZGY0NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiA1MzI4ZGY0 NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjc2KTogdGlkOiA1MzI4ZGY0NyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI2ODAwIG5ibG9ja3MgMHhiOCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI3Nyk6IHRpZDogNTMyOGRmNDcgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjc4KTogdGlkOiA1MzI4ZGY0NyAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzkpOiB0aWQ6IDUzMjhk ZjQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTcwICBsb25nZXN0OiAxOTQ5MjE3MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4 MCk6IHRpZDogNTMyOGRmNDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODEpOiB0aWQ6IDUzMjhkZjQ3ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI4Mik6IHRpZDogNTMyOGRmNDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgzKTogdGlkOiA1MzI4ZGY0NyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyODQpOiB0aWQ6IDUzMjhkZjQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODUpOiB0aWQ6IDdmN2Y1OTIz ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI4Nik6IHRpZDogN2Y3ZjU5MjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogN2Y3ZjU5MjMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI4OCk6IHRpZDogN2Y3ZjU5MjMgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiN2MwMCBuYmxvY2tzIDB4YjkgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyODkpOiB0aWQ6IDdmN2Y1OTIzICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI5MCk6IHRpZDogN2Y3ZjU5MjMgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjkxKTogdGlkOiA3ZjdmNTky MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjE2OSAgbG9uZ2VzdDogMTk0OTIxNjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTIp OiB0aWQ6IDdmN2Y1OTIzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjkzKTogdGlkOiA3ZjdmNTkyMyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTQpOiB0aWQ6IDdmN2Y1OTIzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5NSk6IHRpZDogN2Y3ZjU5MjMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjk2KTogdGlkOiA3ZjdmNTkyMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk3KTogdGlkOiBjMzI1ZmNjMyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyOTgpOiB0aWQ6IGMzMjVmY2MzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IGMzMjVmY2MzICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgzMDApOiB0aWQ6IGMzMjVmY2MzICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4YjkwMDAgbmJsb2NrcyAweGJiIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzAxKTogdGlkOiBjMzI1ZmNjMyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMDIpOiB0aWQ6IGMzMjVmY2MzICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwMyk6IHRpZDogYzMyNWZjYzMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxNjcgIGxvbmdlc3Q6IDE5NDkyMTY3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA0KTog dGlkOiBjMzI1ZmNjMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDMwNSk6IHRpZDogYzMyNWZjYzMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzA2KTogdGlkOiBjMzI1ZmNjMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDcpOiB0aWQ6IGMzMjVmY2MzICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMwOCk6IHRpZDogYzMyNWZjYzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOSk6IHRpZDogZmE4ZGQ0NzEgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzEwKTogdGlkOiBmYThkZDQ3MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBmYThkZDQ3MSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMzEyKTogdGlkOiBmYThkZDQ3MSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGJhNDAwIG5ibG9ja3MgMHhiYyBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMxMyk6IHRpZDogZmE4ZGQ0NzEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzE0KTogdGlkOiBmYThkZDQ3MSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTUpOiB0aWQ6IGZhOGRkNDcxICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTY2ICBsb25nZXN0OiAxOTQ5MjE2NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNik6IHRp ZDogZmE4ZGQ0NzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzMTcpOiB0aWQ6IGZhOGRkNDcxICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMx OCk6IHRpZDogZmE4ZGQ0NzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzE5KTogdGlkOiBmYThkZDQ3MSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMjApOiB0aWQ6IGZhOGRkNDcxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjEpOiB0aWQ6IDJjZTY2NGYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzIyKTogdGlkOiAyY2U2NjRmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDJjZTY2NGYgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDMyNCk6IHRpZDogMmNlNjY0ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGJiODAwIG5ibG9ja3MgMHhiZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCk9wZXIgKDMyNSk6IHRpZDogMmNlNjY0ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjYpOiB0aWQ6IDJjZTY2NGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzI3KTogdGlkOiAyY2U2NjRmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTY1ICBsb25n ZXN0OiAxOTQ5MjE2NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRpZDogMmNlNjY0 ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDMyOSk6IHRpZDogMmNlNjY0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzApOiB0aWQ6IDJj ZTY2NGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzMxKTogdGlkOiAyY2U2NjRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMik6IHRpZDog MmNlNjY0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzMzKTogdGlkOiBlYTA5ZmViNyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzQpOiB0aWQ6 IGVhMDlmZWI3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGVhMDlmZWI3ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgzMzYpOiB0aWQ6IGVhMDlmZWI3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4YmNjMDAgbmJsb2NrcyAweGJlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoMzM3KTogdGlkOiBlYTA5ZmViNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzgp OiB0aWQ6IGVhMDlmZWI3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDMzOSk6IHRpZDogZWEwOWZlYjcgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjQgIGxvbmdlc3Q6IDE5 NDkyMTY0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQwKTogdGlkOiBlYTA5ZmViNyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDM0MSk6IHRpZDogZWEwOWZlYjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQyKTogdGlkOiBlYTA5ZmVi NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzNDMpOiB0aWQ6IGVhMDlmZWI3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NCk6IHRpZDogZWEw OWZlYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0NSk6IHRpZDogOTMzMWRmZWIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ2KTogdGlkOiA5 MzMxZGZlYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiA5MzMxZGZlYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MzQ4KTogdGlkOiA5MzMxZGZlYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGJlMDAwIG5ibG9ja3MgMHhjMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDM0OSk6IHRpZDogOTMzMWRmZWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUwKTog dGlkOiA5MzMxZGZlYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgzNTEpOiB0aWQ6IDkzMzFkZmViICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTYyICBsb25nZXN0OiAxOTQ5 MjE2MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Mik6IHRpZDogOTMzMWRmZWIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz NTMpOiB0aWQ6IDkzMzFkZmViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NCk6IHRpZDogOTMzMWRmZWIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzU1KTogdGlkOiA5MzMxZGZlYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTYpOiB0aWQ6IDkzMzFk ZmViICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTcpOiB0aWQ6IDFiMjdjNGMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OCk6IHRpZDogMWIy N2M0YzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogMWIyN2M0YzEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2 MCk6IHRpZDogMWIyN2M0YzEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhi ZjQwMCBuYmxvY2tzIDB4YzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICgzNjEpOiB0aWQ6IDFiMjdjNGMxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6IHRp ZDogMWIyN2M0YzEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMzYzKTogdGlkOiAxYjI3YzRjMSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2MSAgbG9uZ2VzdDogMTk0OTIx NjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjQpOiB0aWQ6IDFiMjdjNGMxICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY1 KTogdGlkOiAxYjI3YzRjMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjYpOiB0aWQ6IDFiMjdjNGMxICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDM2Nyk6IHRpZDogMWIyN2M0YzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY4KTogdGlkOiAxYjI3YzRj MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY5KTogdGlkOiA4Nzg5YWVlMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzApOiB0aWQ6IDg3ODlh ZWUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzEpOiB0aWQ6IDg3ODlhZWUxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzIp OiB0aWQ6IDg3ODlhZWUxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzA4 MDAgbmJsb2NrcyAweGMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo MzczKTogdGlkOiA4Nzg5YWVlMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6 IDg3ODlhZWUxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDM3NSk6IHRpZDogODc4OWFlZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjAgIGxvbmdlc3Q6IDE5NDkyMTYw Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc2KTogdGlkOiA4Nzg5YWVlMSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Nyk6 IHRpZDogODc4OWFlZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc4KTogdGlkOiA4Nzg5YWVlMSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz NzkpOiB0aWQ6IDg3ODlhZWUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4MCk6IHRpZDogODc4OWFlZTEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM4MSk6IHRpZDogMWNmMTE5ZmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgyKTogdGlkOiAxY2YxMTlm YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgzKTogdGlkOiAxY2YxMTlmYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg0KTog dGlkOiAxY2YxMTlmYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGMxYzAw IG5ibG9ja3MgMHhjMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM4 NSk6IHRpZDogMWNmMTE5ZmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlkOiAx Y2YxMTlmYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzODcpOiB0aWQ6IDFjZjExOWZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU5ICBsb25nZXN0OiAxOTQ5MjE1OQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OCk6IHRpZDogMWNmMTE5ZmEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODkpOiB0 aWQ6IDFjZjExOWZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MCk6IHRpZDogMWNmMTE5ZmEgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzkx KTogdGlkOiAxY2YxMTlmYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTIpOiB0aWQ6IDFjZjExOWZhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTMpOiB0aWQ6IDQwZDJhYTY0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NCk6IHRpZDogNDBkMmFhNjQg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5NSk6IHRpZDogNDBkMmFhNjQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Nik6IHRp ZDogNDBkMmFhNjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjMzAwMCBu YmxvY2tzIDB4YzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzOTcp OiB0aWQ6IDQwZDJhYTY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDogNDBk MmFhNjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMzk5KTogdGlkOiA0MGQyYWE2NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NyAgbG9uZ2VzdDogMTk0OTIxNTcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDApOiB0aWQ6IDQwZDJhYTY0ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDAxKTogdGlk OiA0MGQyYWE2NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDIpOiB0aWQ6IDQwZDJhYTY0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwMyk6 IHRpZDogNDBkMmFhNjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA0KTogdGlkOiA0MGQyYWE2NCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDA1KTogdGlkOiAyNjYwNDMyNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDYpOiB0aWQ6IDI2NjA0MzI1ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDcpOiB0aWQ6IDI2NjA0MzI1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDgpOiB0aWQ6 IDI2NjA0MzI1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzQ0MDAgbmJs b2NrcyAweGM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDA5KTog dGlkOiAyNjYwNDMyNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IDI2NjA0 MzI1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQxMSk6IHRpZDogMjY2MDQzMjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTYgIGxvbmdlc3Q6IDE5NDkyMTU2Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDEyKTogdGlkOiAyNjYwNDMyNSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxMyk6IHRpZDog MjY2MDQzMjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE0KTogdGlkOiAyNjYwNDMyNSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTUpOiB0 aWQ6IDI2NjA0MzI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNik6IHRpZDogMjY2MDQzMjUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxNyk6IHRpZDogOWQwOTU1M2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE4KTogdGlkOiA5ZDA5NTUzZSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDE5KTogdGlkOiA5ZDA5NTUzZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDIwKTogdGlkOiA5 ZDA5NTUzZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGM1ODAwIG5ibG9j a3MgMHhjNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQyMSk6IHRp ZDogOWQwOTU1M2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiA5ZDA5NTUz ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0MjMpOiB0aWQ6IDlkMDk1NTNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU1ICBsb25nZXN0OiAxOTQ5MjE1NQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQyNCk6IHRpZDogOWQwOTU1M2UgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjUpOiB0aWQ6IDlk MDk1NTNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNik6IHRpZDogOWQwOTU1M2UgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI3KTogdGlk OiA5ZDA5NTUzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjgpOiB0aWQ6IDlkMDk1NTNlICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MjkpOiB0aWQ6IDJlMWNkYjg1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMCk6IHRpZDogMmUxY2RiODUgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzMSk6IHRpZDogMmUxY2RiODUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQzMik6IHRpZDogMmUx Y2RiODUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjNmMwMCBuYmxvY2tz IDB4YzggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MzMpOiB0aWQ6 IDJlMWNkYjg1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogMmUxY2RiODUg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNDM1KTogdGlkOiAyZTFjZGI4NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NCAgbG9uZ2VzdDogMTk0OTIxNTQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzYpOiB0aWQ6IDJlMWNkYjg1ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDM3KTogdGlkOiAyZTFj ZGI4NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IDJlMWNkYjg1ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzOSk6IHRpZDog MmUxY2RiODUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQwKTogdGlkOiAyZTFjZGI4NSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDQxKTogdGlkOiA5OWE2MTFmZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDIpOiB0aWQ6IDk5YTYxMWZmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NDMpOiB0aWQ6IDk5YTYxMWZmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NDQpOiB0aWQ6IDk5YTYx MWZmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzgwMDAgbmJsb2NrcyAw eGNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDQ1KTogdGlkOiA5 OWE2MTFmZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDYpOiB0aWQ6IDk5YTYxMWZmICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDQ0Nyk6IHRpZDogOTlhNjExZmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxNTIgIGxvbmdlc3Q6IDE5NDkyMTUyCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiA5OWE2MTFmZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0OSk6IHRpZDogOTlhNjEx ZmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDUwKTogdGlkOiA5OWE2MTFmZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTEpOiB0aWQ6IDk5 YTYxMWZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Mik6IHRpZDogOTlhNjExZmYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 Myk6IHRpZDogZTBlN2M5MmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU0KTogdGlkOiBlMGU3YzkyZiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1 KTogdGlkOiBlMGU3YzkyZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDU2KTogdGlkOiBlMGU3Yzky ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGM5NDAwIG5ibG9ja3MgMHhj YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ1Nyk6IHRpZDogZTBl N2M5MmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU4KTogdGlkOiBlMGU3YzkyZiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0 NTkpOiB0aWQ6IGUwZTdjOTJmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTUxICBsb25nZXN0OiAxOTQ5MjE1MQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2MCk6IHRpZDogZTBlN2M5MmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjEpOiB0aWQ6IGUwZTdjOTJm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ2Mik6IHRpZDogZTBlN2M5MmYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYzKTogdGlkOiBlMGU3 YzkyZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjQpOiB0aWQ6IGUwZTdjOTJmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjUp OiB0aWQ6IDgzYTk5N2RhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nik6IHRpZDogODNhOTk3ZGEgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6 IHRpZDogODNhOTk3ZGEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ2OCk6IHRpZDogODNhOTk3ZGEg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjYTgwMCBuYmxvY2tzIDB4Y2Mg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NjkpOiB0aWQ6IDgzYTk5 N2RhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MCk6IHRpZDogODNhOTk3ZGEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDcx KTogdGlkOiA4M2E5OTdkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE1MCAgbG9uZ2VzdDogMTk0OTIxNTAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NzIpOiB0aWQ6IDgzYTk5N2RhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDczKTogdGlkOiA4M2E5OTdkYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzQpOiB0aWQ6IDgzYTk5N2RhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3NSk6IHRpZDogODNhOTk3 ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDc2KTogdGlkOiA4M2E5OTdkYSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc3KTog dGlkOiA1NDE3MzIyMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzgpOiB0aWQ6IDU0MTczMjIwICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0 aWQ6IDU0MTczMjIwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0ODApOiB0aWQ6IDU0MTczMjIwICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Y2JjMDAgbmJsb2NrcyAweGNkIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDgxKTogdGlkOiA1NDE3MzIy MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODIpOiB0aWQ6IDU0MTczMjIwICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4Myk6 IHRpZDogNTQxNzMyMjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxNDkgIGxvbmdlc3Q6IDE5NDkyMTQ5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDg0KTogdGlkOiA1NDE3MzIyMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4NSk6IHRpZDogNTQxNzMyMjAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDg2KTogdGlkOiA1NDE3MzIyMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODcpOiB0aWQ6IDU0MTczMjIw ICBsZW46IDMyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQlVGIERBVEEKCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDQwNwl0YWlsX2xz bjogMSwxMzgKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiAzNDMJCW51 bSBvcHM6IDQ5MAp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBm b3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDApOiB0aWQ6IDU0MTczMjIwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBXQVNfQ09OVCBFTkQgCkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IDU0MTczMjIwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTog dGlkOiBmYmIyYjRhYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzKTogdGlkOiBmYmIyYjRhYiAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDog ZmJiMmI0YWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDUpOiB0aWQ6IGZiYjJiNGFiICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Y2QwMDAgbmJsb2NrcyAweGNmIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNik6IHRpZDogZmJiMmI0YWIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNyk6IHRpZDogZmJiMmI0YWIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOCk6IHRpZDogZmJiMmI0 YWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxNDcgIGxvbmdlc3Q6IDE5NDkyMTQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6 IHRpZDogZmJiMmI0YWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxMCk6IHRpZDogZmJiMmI0YWIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTEpOiB0aWQ6IGZiYjJiNGFiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDEyKTogdGlkOiBmYmIyYjRhYiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMyk6IHRpZDogZmJiMmI0YWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0KTogdGlkOiBhYzM0YmM3MyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNSk6IHRpZDogYWMzNGJjNzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiBhYzM0YmM3MyAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMTcpOiB0aWQ6IGFjMzRiYzczICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4Y2U0MDAgbmJsb2NrcyAweGQwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoMTgpOiB0aWQ6IGFjMzRiYzczICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE5KTogdGlkOiBhYzM0YmM3MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMCk6IHRpZDogYWMzNGJjNzMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDYgIGxvbmdl c3Q6IDE5NDkyMTQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IGFjMzRiYzcz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjIpOiB0aWQ6IGFjMzRiYzczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiBhYzM0 YmM3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNCk6IHRpZDogYWMzNGJjNzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IGFj MzRiYzczICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNik6IHRpZDogYzA2ODc3MWYgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0aWQ6IGMw Njg3NzFmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOCk6IHRpZDogYzA2ODc3MWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5 KTogdGlkOiBjMDY4NzcxZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNm ODAwIG5ibG9ja3MgMHhkMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDMwKTogdGlkOiBjMDY4NzcxZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDog YzA2ODc3MWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzIpOiB0aWQ6IGMwNjg3NzFmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQ1ICBsb25nZXN0OiAxOTQ5MjE0NQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzKTogdGlkOiBjMDY4NzcxZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0KTogdGlk OiBjMDY4NzcxZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDogYzA2ODc3MWYgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYpOiB0 aWQ6IGMwNjg3NzFmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3KTogdGlkOiBjMDY4NzcxZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzgpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiA0YjA2Y2JkOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDApOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MSk6IHRpZDogNGIwNmNi ZDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkMGMwMCBuYmxvY2tzIDB4 ZDIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0Mik6IHRpZDogNGIw NmNiZDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0 KTogdGlkOiA0YjA2Y2JkOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE0NCAgbG9uZ2VzdDogMTk0OTIxNDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NSk6IHRpZDogNGIwNmNiZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Nik6IHRpZDogNGIwNmNiZDkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4KTogdGlkOiA0YjA2Y2JkOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogNGIwNmNiZDkgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTogdGlkOiAy NzU2NmI3MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1MSk6IHRpZDogMjc1NjZiNzEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUyKTogdGlkOiAyNzU2 NmI3MSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNTMpOiB0aWQ6IDI3NTY2YjcxICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDIwMDAgbmJsb2NrcyAweGQ0IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNTQpOiB0aWQ6IDI3NTY2YjcxICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiAyNzU2NmI3MSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1Nik6IHRpZDogMjc1NjZi NzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxNDIgIGxvbmdlc3Q6IDE5NDkyMTQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcp OiB0aWQ6IDI3NTY2YjcxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNTgpOiB0aWQ6IDI3NTY2YjcxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDU5KTogdGlkOiAyNzU2NmI3MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2MCk6IHRpZDogMjc1NjZiNzEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjEpOiB0aWQ6IDI3NTY2YjcxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogN2Y3NTk0ZjIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjMpOiB0aWQ6IDdmNzU5NGYyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDogN2Y3NTk0ZjIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDY1KTogdGlkOiA3Zjc1OTRmMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGQzNDAwIG5ibG9ja3MgMHhkNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCk9wZXIgKDY2KTogdGlkOiA3Zjc1OTRmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg2Nyk6IHRpZDogN2Y3NTk0ZjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjgpOiB0aWQ6IDdmNzU5NGYyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQxICBsb25n ZXN0OiAxOTQ5MjE0MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiA3Zjc1OTRm MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDcwKTogdGlkOiA3Zjc1OTRmMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MSk6IHRpZDogN2Y3 NTk0ZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNzIpOiB0aWQ6IDdmNzU5NGYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTogdGlkOiA3 Zjc1OTRmMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiBk M2Q0Nzg1ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzYpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg3 Nyk6IHRpZDogZDNkNDc4NWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhk NDgwMCBuYmxvY2tzIDB4ZDYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg3OCk6IHRpZDogZDNkNDc4NWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzkpOiB0aWQ6 IGQzZDQ3ODVlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDgwKTogdGlkOiBkM2Q0Nzg1ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0MCAgbG9uZ2VzdDogMTk0OTIxNDAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogZDNkNDc4NWUgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Mik6IHRp ZDogZDNkNDc4NWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg0KTog dGlkOiBkM2Q0Nzg1ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogZDNkNDc4NWUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDg2KTogdGlkOiBjYjY0ZWQxZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogY2I2NGVkMWQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg4KTogdGlkOiBjYjY0ZWQxZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODkpOiB0aWQ6IGNiNjRl ZDFkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDVjMDAgbmJsb2NrcyAw eGQ3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoOTApOiB0aWQ6IGNi NjRlZDFkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiBjYjY0ZWQxZCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5 Mik6IHRpZDogY2I2NGVkMWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxMzkgIGxvbmdlc3Q6IDE5NDkyMTM5Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoOTMpOiB0aWQ6IGNiNjRlZDFkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTQpOiB0aWQ6IGNiNjRlZDFkICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiBjYjY0ZWQxZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5Nik6IHRpZDogY2I2NGVkMWQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoOTcpOiB0aWQ6IGNiNjRlZDFkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDog NGIwMDc3Y2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoOTkpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDApOiB0aWQ6IDRi MDA3N2NmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMDEpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDcwMDAgbmJsb2NrcyAweGQ5IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTAyKTogdGlkOiA0YjAwNzdjZiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDMpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwNCk6IHRpZDog NGIwMDc3Y2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxMzcgIGxvbmdlc3Q6IDE5NDkyMTM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTA1KTogdGlkOiA0YjAwNzdjZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwNik6IHRpZDogNGIwMDc3Y2YgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTA3KTogdGlkOiA0YjAwNzdjZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDgpOiB0aWQ6IDRiMDA3N2NmICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEwOSk6IHRpZDogNGIwMDc3Y2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMCk6IHRpZDogYTdi NDQ0NjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTExKTogdGlkOiBhN2I0NDQ2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEyKTogdGlkOiBhN2I0 NDQ2MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTEzKTogdGlkOiBhN2I0NDQ2MiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ4NDAwIG5ibG9ja3MgMHhkYSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDExNCk6IHRpZDogYTdiNDQ0NjIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTE1KTogdGlkOiBhN2I0NDQ2MiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTYpOiB0aWQ6IGE3 YjQ0NDYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMTM2ICBsb25nZXN0OiAxOTQ5MjEzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExNyk6IHRpZDogYTdiNDQ0NjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTgpOiB0aWQ6IGE3YjQ0NDYyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExOSk6IHRpZDogYTdiNDQ0NjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIwKTogdGlkOiBhN2I0NDQ2MiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMjEpOiB0aWQ6IGE3YjQ0NDYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjIpOiB0aWQ6IDNiNGZj ODhiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEyMyk6IHRpZDogM2I0ZmM4OGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNCk6IHRpZDogM2I0ZmM4 OGIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyNSk6IHRpZDogM2I0ZmM4OGIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkOTgwMCBuYmxvY2tzIDB4ZGIgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxMjYpOiB0aWQ6IDNiNGZjODhiICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogM2I0ZmM4OGIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTI4KTogdGlkOiAzYjRm Yzg4YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjEzNSAgbG9uZ2VzdDogMTk0OTIxMzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjkpOiB0aWQ6IDNiNGZjODhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMwKTogdGlkOiAzYjRmYzg4YiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMzEpOiB0aWQ6IDNiNGZjODhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMik6IHRpZDogM2I0ZmM4OGIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTMzKTogdGlkOiAzYjRmYzg4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiBkZGNiNWFk ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMzUpOiB0aWQ6IGRkY2I1YWRlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzYpOiB0aWQ6IGRkY2I1YWRl ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgxMzcpOiB0aWQ6IGRkY2I1YWRlICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGFjMDAgbmJsb2NrcyAweGRjIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTM4KTogdGlkOiBkZGNiNWFkZSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IGRkY2I1YWRlICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE0MCk6IHRpZDogZGRjYjVh ZGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxMzQgIGxvbmdlc3Q6IDE5NDkyMTM0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQx KTogdGlkOiBkZGNiNWFkZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE0Mik6IHRpZDogZGRjYjVhZGUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTQzKTogdGlkOiBkZGNiNWFkZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDQpOiB0aWQ6IGRkY2I1YWRlICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE0NSk6IHRpZDogZGRjYjVhZGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nik6IHRpZDogNDVkOGJlMzAg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTQ3KTogdGlkOiA0NWQ4YmUzMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlkOiA0NWQ4YmUzMCAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMTQ5KTogdGlkOiA0NWQ4YmUzMCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGRjMDAwIG5ibG9ja3MgMHhkZSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE1MCk6IHRpZDogNDVkOGJlMzAgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTUxKTogdGlkOiA0NWQ4YmUzMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNTIpOiB0aWQ6IDQ1ZDhiZTMw ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTMyICBsb25nZXN0OiAxOTQ5MjEzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6 IHRpZDogNDVkOGJlMzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxNTQpOiB0aWQ6IDQ1ZDhiZTMwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE1NSk6IHRpZDogNDVkOGJlMzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU2KTogdGlkOiA0NWQ4YmUzMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNTcpOiB0aWQ6IDQ1ZDhiZTMwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTgpOiB0aWQ6IDQwMmVmODA3ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE1OSk6IHRpZDogNDAyZWY4MDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MCk6IHRpZDogNDAyZWY4MDcgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDE2MSk6IHRpZDogNDAyZWY4MDcgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhkZDQwMCBuYmxvY2tzIDB4ZGYgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNjIpOiB0aWQ6IDQwMmVmODA3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogNDAyZWY4MDcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTY0KTogdGlkOiA0MDJlZjgwNyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjEzMSAgbG9uZ2VzdDogMTk0OTIxMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0 aWQ6IDQwMmVmODA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTY2KTogdGlkOiA0MDJlZjgwNyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NjcpOiB0aWQ6IDQwMmVmODA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRpZDogNDAyZWY4MDcgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTY5KTogdGlkOiA0MDJlZjgwNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiBkNjZhM2VhNCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNzEpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzIpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgxNzMpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ZGU4MDAgbmJsb2NrcyAweGUwIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoMTc0KTogdGlkOiBkNjZhM2VhNCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzUpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3Nik6IHRpZDogZDY2YTNlYTQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx MzAgIGxvbmdlc3Q6IDE5NDkyMTMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlk OiBkNjZhM2VhNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDE3OCk6IHRpZDogZDY2YTNlYTQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc5 KTogdGlkOiBkNjZhM2VhNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE4MSk6IHRpZDogZDY2YTNlYTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Mik6IHRpZDogMmFmYjRmNGYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTgzKTogdGlkOiAyYWZiNGY0ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg0KTogdGlkOiAyYWZiNGY0ZiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTg1KTogdGlkOiAyYWZiNGY0ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGRmYzAwIG5ibG9ja3MgMHhlMSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDE4Nik6IHRpZDogMmFmYjRmNGYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTg3KTogdGlkOiAyYWZiNGY0ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODgpOiB0aWQ6IDJhZmI0ZjRmICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI5 ICBsb25nZXN0OiAxOTQ5MjEyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDog MmFmYjRmNGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxOTApOiB0aWQ6IDJhZmI0ZjRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MSk6 IHRpZDogMmFmYjRmNGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiAyYWZiNGY0ZiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx OTMpOiB0aWQ6IDJhZmI0ZjRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQpOiB0aWQ6IDJiMThhZDkgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTk1KTogdGlkOiAyYjE4YWQ5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IDJiMThhZDkgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDE5Nyk6IHRpZDogMmIxOGFkOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGUxMDAwIG5ibG9ja3MgMHhlMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgxCk9wZXIgKDE5OCk6IHRpZDogMmIxOGFkOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTkpOiB0aWQ6IDJiMThhZDkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiAyYjE4YWQ5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI3ICBsb25nZXN0 OiAxOTQ5MjEyNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMSk6IHRpZDogMmIxOGFkOSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIwMik6IHRpZDogMmIxOGFkOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDMpOiB0aWQ6IDJiMThh ZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjA0KTogdGlkOiAyYjE4YWQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogMmIx OGFkOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjA2KTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDcpOiB0aWQ6IGZh YjllNzk1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMDgpOiB0aWQ6IGZhYjllNzk1ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy MDkpOiB0aWQ6IGZhYjllNzk1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 ZTI0MDAgbmJsb2NrcyAweGU0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMjEwKTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0 aWQ6IGZhYjllNzk1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDIxMik6IHRpZDogZmFiOWU3OTUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjYgIGxvbmdlc3Q6IDE5NDky MTI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEzKTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIx NCk6IHRpZDogZmFiOWU3OTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1KTogdGlkOiBmYWI5ZTc5NSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMTYpOiB0aWQ6IGZhYjllNzk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogZmFiOWU3 OTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxOCk6IHRpZDogYzBlODhhZGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE5KTogdGlkOiBjMGU4 OGFkZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjIwKTogdGlkOiBjMGU4OGFkZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjIx KTogdGlkOiBjMGU4OGFkZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGUz ODAwIG5ibG9ja3MgMHhlNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDIyMik6IHRpZDogYzBlODhhZGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlk OiBjMGU4OGFkZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyMjQpOiB0aWQ6IGMwZTg4YWRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI1ICBsb25nZXN0OiAxOTQ5MjEy NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDogYzBlODhhZGQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjYp OiB0aWQ6IGMwZTg4YWRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNyk6IHRpZDogYzBlODhhZGQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjI4KTogdGlkOiBjMGU4OGFkZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IGMwZTg4YWRk ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMzApOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMSk6IHRpZDogNzYyMGYz YjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIzMik6IHRpZDogNzYyMGYzYjQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzMyk6 IHRpZDogNzYyMGYzYjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlNGMw MCBuYmxvY2tzIDB4ZTYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgy MzQpOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDog NzYyMGYzYjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjM2KTogdGlkOiA3NjIwZjNiNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyNCAgbG9uZ2VzdDogMTk0OTIxMjQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjM4KTog dGlkOiA3NjIwZjNiNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzkpOiB0aWQ6IDc2MjBmM2I0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0 MCk6IHRpZDogNzYyMGYzYjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiA3NjIwZjNiNCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjQyKTogdGlkOiBiZjVjYzVjMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDMpOiB0aWQ6IGJmNWNjNWMw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNDQpOiB0aWQ6IGJmNWNjNWMwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDUpOiB0 aWQ6IGJmNWNjNWMwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTYwMDAg bmJsb2NrcyAweGU4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjQ2 KTogdGlkOiBiZjVjYzVjMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IGJm NWNjNWMwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDI0OCk6IHRpZDogYmY1Y2M1YzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjIgIGxvbmdlc3Q6IDE5NDkyMTIyCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiBiZjVjYzVjMCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1MCk6IHRp ZDogYmY1Y2M1YzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUxKTogdGlkOiBiZjVjYzVjMCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTIp OiB0aWQ6IGJmNWNjNWMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogYmY1Y2M1YzAgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1NCk6IHRpZDogZTc3ZTgwNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IGU3N2U4MDUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI1Nik6IHRpZDogZTc3ZTgwNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjU3KTogdGlkOiBl NzdlODA1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTc0MDAgbmJsb2Nr cyAweGU5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjU4KTogdGlk OiBlNzdlODA1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogZTc3ZTgwNSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyNjApOiB0aWQ6IGU3N2U4MDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMjEgIGxvbmdlc3Q6IDE5NDkyMTIxCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiBlNzdlODA1ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlkOiBlNzdlODA1 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6IHRpZDogZTc3ZTgwNSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjQpOiB0aWQ6IGU3N2U4 MDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiBlNzdlODA1ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjYpOiB0 aWQ6IDFiYTI3MTJmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nyk6IHRpZDogMWJhMjcxMmYgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OCk6IHRp ZDogMWJhMjcxMmYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2OSk6IHRpZDogMWJhMjcxMmYgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlODgwMCBuYmxvY2tzIDB4ZWEgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNzApOiB0aWQ6IDFiYTI3MTJm ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogMWJhMjcxMmYgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcyKTog dGlkOiAxYmEyNzEyZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjEyMCAgbG9uZ2VzdDogMTk0OTIxMjAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNzMpOiB0aWQ6IDFiYTI3MTJmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc0KTogdGlkOiAxYmEyNzEyZiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNzUpOiB0aWQ6IDFiYTI3MTJmICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Nik6IHRpZDogMWJhMjcxMmYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiAxYmEyNzEyZiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc4KTogdGlk OiBjNjlmNGZmMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNzkpOiB0aWQ6IGM2OWY0ZmYzICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODApOiB0aWQ6 IGM2OWY0ZmYzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyODEpOiB0aWQ6IGM2OWY0ZmYzICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTljMDAgbmJsb2NrcyAweGViIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjgyKTogdGlkOiBjNjlmNGZmMyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IGM2OWY0ZmYzICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4NCk6IHRp ZDogYzY5ZjRmZjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxMTkgIGxvbmdlc3Q6IDE5NDkyMTE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjg1KTogdGlkOiBjNjlmNGZmMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4Nik6IHRpZDogYzY5ZjRmZjMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjg3KTogdGlkOiBjNjlmNGZmMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODgpOiB0aWQ6IGM2OWY0ZmYzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogYzY5ZjRmZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MCk6IHRpZDog MzJhMTBjNzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjkxKTogdGlkOiAzMmExMGM3OCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkyKTogdGlkOiAz MmExMGM3OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjkzKTogdGlkOiAzMmExMGM3OCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGViMDAwIG5ibG9ja3MgMHhlZCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI5NCk6IHRpZDogMzJhMTBjNzggIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk1KTogdGlkOiAzMmExMGM3OCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTYpOiB0aWQ6 IDMyYTEwYzc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTE3ICBsb25nZXN0OiAxOTQ5MjExNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI5Nyk6IHRpZDogMzJhMTBjNzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTgpOiB0aWQ6IDMyYTEwYzc4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI5OSk6IHRpZDogMzJhMTBjNzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAwKTogdGlkOiAzMmExMGM3OCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMDEpOiB0aWQ6IDMyYTEwYzc4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDIpOiB0aWQ6IGMw MjFkNTg3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwMyk6IHRpZDogYzAyMWQ1ODcgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNCk6IHRpZDogYzAy MWQ1ODcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwNSk6IHRpZDogYzAyMWQ1ODcgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlYzQwMCBuYmxvY2tzIDB4ZWUgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMDYpOiB0aWQ6IGMwMjFkNTg3ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNyk6IHRpZDogYzAyMWQ1ODcgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzA4KTogdGlkOiBj MDIxZDU4NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjExNiAgbG9uZ2VzdDogMTk0OTIxMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMDkpOiB0aWQ6IGMwMjFkNTg3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzEwKTogdGlkOiBjMDIxZDU4NyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMTEpOiB0aWQ6IGMwMjFkNTg3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMik6IHRpZDogYzAyMWQ1ODcgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzEzKTogdGlkOiBjMDIxZDU4NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE0KTogdGlkOiBiOWZl NjY0YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTUpOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTYpOiB0aWQ6IGI5ZmU2 NjRjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMTcpOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZWQ4MDAgbmJsb2NrcyAweGVmIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzE4KTogdGlkOiBiOWZlNjY0YyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTkpOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyMCk6IHRpZDogYjlm ZTY2NGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIxMTUgIGxvbmdlc3Q6IDE5NDkyMTE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzIxKTogdGlkOiBiOWZlNjY0YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyMik6IHRpZDogYjlmZTY2NGMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzIzKTogdGlkOiBiOWZlNjY0YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjQpOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMyNSk6IHRpZDogYjlmZTY2NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNik6IHRpZDogZTdmYTI4 ZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzI3KTogdGlkOiBlN2ZhMjhlMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI4KTogdGlkOiBlN2ZhMjhl MSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzI5KTogdGlkOiBlN2ZhMjhlMSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGVlYzAwIG5ibG9ja3MgMHhmMCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMzMCk6IHRpZDogZTdmYTI4ZTEgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzMxKTogdGlkOiBlN2ZhMjhlMSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzIpOiB0aWQ6IGU3ZmEy OGUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTE0ICBsb25nZXN0OiAxOTQ5MjExNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMz Myk6IHRpZDogZTdmYTI4ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzQpOiB0aWQ6IGU3ZmEyOGUxICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzNSk6IHRpZDogZTdmYTI4ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM2KTogdGlkOiBlN2ZhMjhlMSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMzcpOiB0aWQ6IGU3ZmEyOGUxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzgpOiB0aWQ6IDhjYzI3YTA3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzOSk6IHRpZDogOGNjMjdhMDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MCk6IHRpZDogOGNjMjdhMDcg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0MSk6IHRpZDogOGNjMjdhMDcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmMDAwMCBuYmxvY2tzIDB4ZjIgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNDIpOiB0aWQ6IDhjYzI3YTA3ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0Myk6IHRpZDogOGNjMjdhMDcgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ0KTogdGlkOiA4Y2MyN2Ew NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjExMiAgbG9uZ2VzdDogMTk0OTIxMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUp OiB0aWQ6IDhjYzI3YTA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ2KTogdGlkOiA4Y2MyN2EwNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNDcpOiB0aWQ6IDhjYzI3YTA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0OCk6IHRpZDogOGNjMjdhMDcgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzQ5KTogdGlkOiA4Y2MyN2EwNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUwKTogdGlkOiBjM2I3NTI5MiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTEpOiB0aWQ6IGMzYjc1MjkyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTIpOiB0aWQ6IGMzYjc1MjkyICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgzNTMpOiB0aWQ6IGMzYjc1MjkyICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4ZjE0MDAgbmJsb2NrcyAweGYzIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzU0KTogdGlkOiBjM2I3NTI5MiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IGMzYjc1MjkyICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1Nik6IHRpZDogYzNiNzUyOTIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxMTEgIGxvbmdlc3Q6IDE5NDkyMTExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTog dGlkOiBjM2I3NTI5MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDM1OCk6IHRpZDogYzNiNzUyOTIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzU5KTogdGlkOiBjM2I3NTI5MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjApOiB0aWQ6IGMzYjc1MjkyICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM2MSk6IHRpZDogYzNiNzUyOTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6IHRpZDogOTlmYmQzZTggIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzYzKTogdGlkOiA5OWZiZDNlOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY0KTogdGlkOiA5OWZiZDNlOCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMzY1KTogdGlkOiA5OWZiZDNlOCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGYyODAwIG5ibG9ja3MgMHhmNCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM2Nik6IHRpZDogOTlmYmQzZTggIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY3KTogdGlkOiA5OWZiZDNlOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjgpOiB0aWQ6IDk5ZmJkM2U4ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTEwICBsb25nZXN0OiAxOTQ5MjExMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRp ZDogOTlmYmQzZTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzNzApOiB0aWQ6IDk5ZmJkM2U4ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 MSk6IHRpZDogOTlmYmQzZTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzcyKTogdGlkOiA5OWZiZDNlOCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNzMpOiB0aWQ6IDk5ZmJkM2U4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6IGU2ZTkxODM2ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3NSk6IHRpZDogZTZlOTE4MzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nik6IHRpZDogZTZlOTE4MzYgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDM3Nyk6IHRpZDogZTZlOTE4MzYgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHhmM2MwMCBuYmxvY2tzIDB4ZjUgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MQpPcGVyICgzNzgpOiB0aWQ6IGU2ZTkxODM2ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3OSk6IHRpZDogZTZlOTE4MzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzgwKTogdGlkOiBlNmU5MTgzNiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEw OSAgbG9uZ2VzdDogMTk0OTIxMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6 IGU2ZTkxODM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzgyKTogdGlkOiBlNmU5MTgzNiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODMp OiB0aWQ6IGU2ZTkxODM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDM4NCk6IHRpZDogZTZlOTE4MzYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzg1KTogdGlkOiBlNmU5MTgzNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlkOiA1NWUzNzE0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM4Nyk6IHRpZDogNTVlMzcxNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiA1NWUzNzE0ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzODkpOiB0aWQ6IDU1ZTM3MTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhmNTAwMCBuYmxvY2tzIDB4ZjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MQpPcGVyICgzOTApOiB0aWQ6IDU1ZTM3MTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzkxKTogdGlkOiA1NWUzNzE0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5Mik6IHRpZDogNTVlMzcxNCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNyAgbG9uZ2Vz dDogMTk0OTIxMDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTMpOiB0aWQ6IDU1ZTM3MTQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzOTQpOiB0aWQ6IDU1ZTM3MTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiA1NWUz NzE0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM5Nik6IHRpZDogNTVlMzcxNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6IDU1 ZTM3MTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDogZTA4OGE1ZDQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk5KTogdGlkOiBl MDg4YTVkNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDAwKTogdGlkOiBlMDg4YTVkNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NDAxKTogdGlkOiBlMDg4YTVkNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGY2NDAwIG5ibG9ja3MgMHhmOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDQwMik6IHRpZDogZTA4OGE1ZDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTog dGlkOiBlMDg4YTVkNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg0MDQpOiB0aWQ6IGUwODhhNWQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA2ICBsb25nZXN0OiAxOTQ5 MjEwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogZTA4OGE1ZDQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MDYpOiB0aWQ6IGUwODhhNWQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogZTA4OGE1ZDQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDA4KTogdGlkOiBlMDg4YTVkNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6IGUwODhh NWQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IDk0ODQxZGZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMSk6IHRpZDogOTQ4 NDFkZmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQxMik6IHRpZDogOTQ4NDFkZmMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQx Myk6IHRpZDogOTQ4NDFkZmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhm NzgwMCBuYmxvY2tzIDB4ZjkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg0MTQpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6IHRp ZDogOTQ4NDFkZmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDE2KTogdGlkOiA5NDg0MWRmYyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNSAgbG9uZ2VzdDogMTk0OTIx MDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDE4 KTogdGlkOiA5NDg0MWRmYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IDk0ODQxZGZjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQyMCk6IHRpZDogOTQ4NDFkZmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiA5NDg0MWRm YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDIyKTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjMpOiB0aWQ6IDdlNGZi YzlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MjQpOiB0aWQ6IDdlNGZiYzlhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjUp OiB0aWQ6IDdlNGZiYzlhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Zjhj MDAgbmJsb2NrcyAweGZhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo NDI2KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0aWQ6 IDdlNGZiYzlhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDQyOCk6IHRpZDogN2U0ZmJjOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDQgIGxvbmdlc3Q6IDE5NDkyMTA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMCk6 IHRpZDogN2U0ZmJjOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiA3ZTRmYmM5YSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MzIpOiB0aWQ6IDdlNGZiYzlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogN2U0ZmJjOWEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQzNCk6IHRpZDogZGNlNmRhYjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiBkY2U2ZGFi NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDM2KTogdGlkOiBkY2U2ZGFiNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDM3KTog dGlkOiBkY2U2ZGFiNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGZhMDAw IG5ibG9ja3MgMHhmYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQz OCk6IHRpZDogZGNlNmRhYjYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlkOiBk Y2U2ZGFiNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NDApOiB0aWQ6IGRjZTZkYWI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTAyICBsb25nZXN0OiAxOTQ5MjEwMgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogZGNlNmRhYjYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDIpOiB0 aWQ6IGRjZTZkYWI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Myk6IHRpZDogZGNlNmRhYjYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ0 KTogdGlkOiBkY2U2ZGFiNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IGRjZTZkYWI2ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NDYpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogOTRkOTQxN2Mg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ0OCk6IHRpZDogOTRkOTQxN2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0OSk6IHRp ZDogOTRkOTQxN2MgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmYjQwMCBu YmxvY2tzIDB4ZmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NTAp OiB0aWQ6IDk0ZDk0MTdjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogOTRk OTQxN2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNDUyKTogdGlkOiA5NGQ5NDE3YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwMSAgbG9uZ2VzdDogMTk0OTIxMDEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU0KTogdGlk OiA5NGQ5NDE3YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1Nik6 IHRpZDogOTRkOTQxN2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3KTogdGlkOiA5NGQ5NDE3YyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDU4KTogdGlkOiBkOWFmNDFkMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTkpOiB0aWQ6IGQ5YWY0MWQxICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NjApOiB0aWQ6IGQ5YWY0MWQxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjEpOiB0aWQ6 IGQ5YWY0MWQxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZmM4MDAgbmJs b2NrcyAweGZlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDYyKTog dGlkOiBkOWFmNDFkMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IGQ5YWY0 MWQxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQ2NCk6IHRpZDogZDlhZjQxZDEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDAgIGxvbmdlc3Q6IDE5NDkyMTAwCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiBkOWFmNDFkMSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2Nik6IHRpZDog ZDlhZjQxZDEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiBkOWFmNDFkMSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjgpOiB0 aWQ6IGQ5YWY0MWQxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogZDlhZjQxZDEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3MCk6IHRpZDogYzUzNDFjMWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcxKTogdGlkOiBjNTM0MWMxZiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDcyKTogdGlkOiBjNTM0MWMxZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDczKTogdGlkOiBj NTM0MWMxZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGZkYzAwIG5ibG9j a3MgMHhmZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ3NCk6IHRp ZDogYzUzNDFjMWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiBjNTM0MWMx ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0NzYpOiB0aWQ6IGM1MzQxYzFmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMDk5ICBsb25nZXN0OiAxOTQ5MjA5OQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogYzUzNDFjMWYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzgpOiB0aWQ6IGM1 MzQxYzFmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogYzUzNDFjMWYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgwKTogdGlk OiBjNTM0MWMxZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IGM1MzQxYzFmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0ODIpOiB0aWQ6IGMwMDY3NjZiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Myk6IHRpZDogYzAwNjc2NmIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogU1RSQVRfV1JJ VEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ4NCk6IHRpZDogYzAwNjc2NmIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgzICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNDg1KTogdGlkOiBj MDA2NzY2YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAw eDJjMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ4Nik6IHRpZDog YzAwNjc2NmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTogdGlkOiBjMDA2NzY2YiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0ODgpOiB0aWQ6IGMwMDY3NjZiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzk0ICBsb25nZXN0OiAxOTQ5MTM5NAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4OSk6IHRpZDogYzAwNjc2NmIgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTlRJTlVFIApCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCgo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw0NzEJdGFpbF9sc246IDEsNDA3Cmxlbmd0 aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDQwNwkJbnVtIG9wczogNQp1dWlkOiA3 N2E4YTg0NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRp YW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6 IGViODE0YmNjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IGViODE0YmNjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IFNCX0NPVU5UICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiBlYjgx NGJjYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAwICgweDApICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzKTogdGlkOiBlYjgxNGJjYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKU1VQRVIgQkxPQ0sgQnVmZmVyOiAKaWNvdW50OiA2NCAgaWZyZWU6IDU5ICBmZGJs a3M6IDc3OTYwOTk0ICBmcmV4dDogMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQpOiB0aWQ6 IGViODE0YmNjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDQ3Mwl0YWlsX2xzbjog MSw0NzEKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9mZnNldDogNDcxCQludW0gb3Bz OiAxCnV1aWQ6IDc3YThhODQ1LTAzN2ItNDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDog bGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMCk6IHRpZDogYjdkOWNjZDEgIGxlbjogOCAgY2xpZW50aWQ6IExPRyAgZmxhZ3M6IFVOTU9V TlQgClVubW91bnQgZmlsZXN5c3RlbQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJz aW9uOiAyCQlsc246IDEsNDc1CXRhaWxfbHNuOiAxLDQ3NQpsZW5ndGggb2YgTG9nIFJlY29yZDog NjE0NAlwcmV2IG9mZnNldDogNDczCQludW0gb3BzOiA5Nwp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0 NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXpl OiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDFjZWMzYzlkICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IFJFTU9WRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAz Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogMWNlYzNjOWQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBm bGFnczogMHgzICAgZHNpemU6IDI4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAw Ck9wZXIgKDMpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3Jt YXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgxYSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDQpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkxPQ0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNSk6IHRpZDogMWNlYzNjOWQgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgx ICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo Nik6IHRpZDogMWNlYzNjOWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhm ZGMwMCBuYmxvY2tzIDB4ZmYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4 MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgpOiB0aWQ6IDFjZWMz YzlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBY QUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxl dmVsOiAxICBmcmVlIzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ODQg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5 XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiAxY2VjM2M5 ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTApOiB0aWQ6IDMzZmJjZTk3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiAzM2ZiY2U5 NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJ TkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTIpOiB0aWQ6IDMzZmJjZTk3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXpl OiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEzKTogdGlk OiAzM2ZiY2U5NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2Nr cyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0KTogdGlkOiAzM2ZiY2U5NyAgbGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFRkk6ICAjcmVnczogMSAgICBudW1fZXh0ZW50czogMSAgaWQ6IDB4ZmZmZmZm ZmZlM2EzYTAwMAooczogMHhjLCBsOiAyNTUpIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 KTogdGlkOiAzM2ZiY2U5NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYpOiB0aWQ6IDMzZmJjZTk4ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 KTogdGlkOiAzM2ZiY2U5OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA1Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0aWQ6IDMzZmJjZTk4ICBsZW46IDMyICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVGRDogICNyZWdzOiAxICAgIG51bV9leHRlbnRzOiAx ICBpZDogMHhmZmZmZmZmZmUzYTNhMDAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0 aWQ6IDMzZmJjZTk4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDIwKTogdGlkOiAzM2ZiY2U5OCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM1NCAgbG9uZ2VzdDogMTk0OTIz NTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogMzNmYmNlOTggIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0 aWQ6IDMzZmJjZTk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiAzM2ZiY2U5OCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0 KTogdGlkOiAzM2ZiY2U5OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNSk6IHRpZDogMzNmYmNlOTggIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5v OiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMjYpOiB0aWQ6IDMzZmJjZTk4ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0aWQ6IDMzZmJjZTk4ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyOCk6IHRpZDogMzNmYmNlOTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IDMzZmJjZTk5ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNU SVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMCk6IHRpZDogMzNmYmNlOTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzEpOiB0aWQ6IDMz ZmJjZTk5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDAgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMyKTogdGlkOiAzM2ZiY2U5OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMyk6IHRpZDogMzNmYmNlOTkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHSSBCdWZmZXI6IFhBR0kgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIGNudDogNjQgIHJvb3Q6IDMKbGV2ZWw6IDEgIGZyZWUjOiAweDNj ICBuZXdpbm86IDB4ODAKYnVja2V0WzAgLSAzXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzQgLSA3XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzggLSAxMV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxMiAtIDE1XTogMHhmZmZmZmZmZiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzE2IC0gMTldOiAweGZmZmZmZmZm IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiAzM2ZiY2U5OSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1KTog dGlkOiAzM2ZiY2U5OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNik6IHRpZDogMzNmYmNlOTkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3KTogdGlkOiBjMDQ0OWU5OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOCk6IHRpZDogYzA0NDllOTkgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogUkVNT1ZFICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz OSk6IHRpZDogYzA0NDllOTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDgKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3BlciAoNDApOiB0aWQ6IGMwNDQ5ZTk5ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2IG5ibG9ja3MgMHgwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDEpOiB0aWQ6IGMwNDQ5ZTk5ICBsZW46 IDggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZP Uk0gRElSRUNUT1JZIHNpemUgNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiBj MDQ0OWU5OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDQzKTogdGlkOiBjMDQ0OWU5OSAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0KTogdGlkOiBj MDQ0OWU5OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NSk6IHRpZDogYzA0NDllOTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHSSBCdWZmZXI6IFhBR0kgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIGNudDogNjQgIHJvb3Q6IDMKbGV2ZWw6IDEgIGZyZWUjOiAweDNjICBuZXdpbm86IDB4 ODAKYnVja2V0WzAgLSAzXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHg4MyAK YnVja2V0WzQgLSA3XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAKYnVja2V0WzggLSAxMV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgCmJ1Y2tldFsxMiAtIDE1XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAKYnVja2V0WzE2IC0gMTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ2KTogdGlkOiBjMDQ0OWU5OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDRhNjcyZmYy ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ4KTogdGlkOiA0YTY3MmZmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiAzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDRhNjcyZmYyICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlu bzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiA3NjgKT3BlciAoNTApOiB0aWQ6IDRhNjcyZmYyICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDAgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiA0YTY3MmZmMiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1Mik6 IHRpZDogNGE2NzJmZjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH SSBCdWZmZXI6IFhBR0kgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIGNudDogNjQg IHJvb3Q6IDMKbGV2ZWw6IDEgIGZyZWUjOiAweDNkICBuZXdpbm86IDB4ODAKYnVja2V0WzAgLSAz XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzQg LSA3XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0 WzggLSAxMV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1 Y2tldFsxMiAtIDE1XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAKYnVja2V0WzE2IC0gMTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDUzKTogdGlkOiA0YTY3MmZmMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU0KTogdGlkOiA0YTY3MmZmMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1NSk6IHRpZDogNGE2NzJmZjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU2KTogdGlkOiBiMWM0MWFlNyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1Nyk6IHRpZDogYjFjNDFhZTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OCk6IHRpZDogYjFjNDFhZTcgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTkpOiB0 aWQ6IGIxYzQxYWU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kg QnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICBy b290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0g N106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4 IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNr ZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg CmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2 MCk6IHRpZDogYjFjNDFhZTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2MSk6IHRpZDogYjFjNDFhZTcgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjIpOiB0aWQ6IGIxYzQxYWU3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNjMpOiB0aWQ6IGIxYzQx YWU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjQpOiB0aWQ6IGIxYzQxYWU3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiAyOAog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICg2NSk6IHRpZDogYjFjNDFh ZTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFhIG5ibG9ja3MgMHgwIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNjYpOiB0aWQ6IGIxYzQxYWU3 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxPQ0FMIGlub2RlIGRhdGEK U0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcp OiB0aWQ6IGIxYzQxYWU3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OCk6IHRpZDogODZmOWI3ZmQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkp OiB0aWQ6IDg2ZjliN2ZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MCk6IHRpZDogODZmOWI3ZmQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFn czogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApP cGVyICg3MSk6IHRpZDogODZmOWI3ZmQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Mik6IHRpZDogODZmOWI3ZmQgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTog dGlkOiBiYWU5MDdhZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NCk6IHRpZDogYmFlOTA3YWUgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NSk6IHRpZDog YmFlOTA3YWUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNzYpOiB0aWQ6IGJhZTkwN2FlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzYiAgbmV3aW5vOiAw eDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogYmFlOTA3YWUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3OCk6IHRpZDogYmFlOTA3 YWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNzkpOiB0aWQ6IGJhZTkwN2FlICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDgwKTogdGlkOiBiYWU5MDdhZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTogdGlkOiBiYWU5MDdhZSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdz OiAweDMgICBkc2l6ZTogNTIKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3Bl ciAoODIpOiB0aWQ6IGJhZTkwN2FlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQg MQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzMSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDgzKTogdGlkOiBiYWU5MDdhZSAgbGVuOiA1MiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSA0OQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg0KTogdGlkOiBiYWU5MDdhZSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDc5 NjgxMjM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg2KTogdGlkOiA3OTY4MTIzOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IDc5Njgx MjM5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4OCk6IHRpZDogNzk2ODEyMzkgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgyIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoODkpOiB0aWQ6IDc5NjgxMjM5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDkwKTogdGlkOiA3OTY4MTIzOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5MSk6IHRpZDogNzk2ODEyMzkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz NTIgIGxvbmdlc3Q6IDE5NDkyMzUyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTIpOiB0aWQ6 IDc5NjgxMjM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoOTMpOiB0aWQ6IDc5NjgxMjM5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk0KTog dGlkOiA3OTY4MTIzOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg5NSk6IHRpZDogNzk2ODEyMzkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTYp OiB0aWQ6IDc5NjgxMjM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDQ4OAl0YWls X2xzbjogMSw0NzUKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA0NzUJ CW51bSBvcHM6IDQ4OQp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUg ICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDApOiB0aWQ6IGZlNjJjZDAwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IGZlNjJjZDAw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyKTogdGlkOiBmZTYyY2QwMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMyk6IHRpZDog ZmU2MmNkMDAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxNDAwIG5ibG9j a3MgMHgzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNCk6IHRpZDog ZmU2MmNkMDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNSk6IHRpZDogZmU2MmNkMDAgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo Nik6IHRpZDogZmU2MmNkMDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzNTEgIGxvbmdlc3Q6IDE5NDkyMzUxCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNyk6IHRpZDogZmU2MmNkMDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4KTogdGlkOiBmZTYyY2QwMCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5KTogdGlkOiBmZTYyY2QwMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMCk6IHRpZDogZmU2MmNkMDAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IGZlNjJjZDAwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMik6IHRpZDogM2Ji NmZiNTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IDNiYjZmYjUyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogM2JiNmZi NTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1KTogdGlkOiAzYmI2ZmI1MiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI4MDAgbmJsb2NrcyAweDQgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNik6IHRpZDogM2JiNmZiNTIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDNiYjZmYjUyICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE4KTogdGlkOiAzYmI2ZmI1MiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjM1MCAgbG9uZ2VzdDogMTk0OTIzNTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOSk6IHRp ZDogM2JiNmZiNTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyMCk6IHRpZDogM2JiNmZiNTIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEp OiB0aWQ6IDNiYjZmYjUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiAzYmI2ZmI1MiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy Myk6IHRpZDogM2JiNmZiNTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0KTogdGlkOiA1ZWE1N2VjNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NSk6IHRpZDogNWVhNTdlYzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2KTogdGlkOiA1ZWE1N2VjNSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjcpOiB0aWQ6IDVlYTU3ZWM1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4M2MwMCBuYmxvY2tzIDB4NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDI4KTogdGlkOiA1ZWE1N2VjNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy OSk6IHRpZDogNWVhNTdlYzUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMzApOiB0aWQ6IDVlYTU3ZWM1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ5ICBsb25nZXN0OiAx OTQ5MjM0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiA1ZWE1N2VjNSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDMyKTogdGlkOiA1ZWE1N2VjNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDogNWVhNTdlYzUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzQpOiB0aWQ6IDVlYTU3ZWM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTogdGlkOiA1ZWE1N2Vj NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzYpOiB0aWQ6IDdkNDY5M2U2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3KTogdGlkOiA3ZDQ2OTNl NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgpOiB0aWQ6IDdkNDY5M2U2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzOSk6IHRp ZDogN2Q0NjkzZTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MDAwIG5i bG9ja3MgMHg3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDApOiB0 aWQ6IDdkNDY5M2U2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiA3ZDQ2OTNl NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0Mik6IHRpZDogN2Q0NjkzZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDcgIGxvbmdlc3Q6IDE5NDkyMzQ3Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDMpOiB0aWQ6IDdkNDY5M2U2ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQpOiB0aWQ6IDdkNDY5 M2U2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlkOiA3ZDQ2OTNlNiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Nik6IHRpZDogN2Q0 NjkzZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDdkNDY5M2U2ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OCk6 IHRpZDogZTI2ZWY0Y2IgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IGUyNmVmNGNiICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MCk6IHRp ZDogZTI2ZWY0Y2IgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDUxKTogdGlkOiBlMjZlZjRjYiAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY0MDAgbmJsb2NrcyAweDggZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg1Mik6IHRpZDogZTI2ZWY0Y2IgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IGUyNmVmNGNiICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDU0KTogdGlkOiBl MjZlZjRjYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjM0NiAgbG9uZ2VzdDogMTk0OTIzNDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1NSk6IHRpZDogZTI2ZWY0Y2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1Nik6IHRpZDogZTI2ZWY0Y2IgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTcpOiB0aWQ6IGUyNmVmNGNiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU4KTogdGlkOiBlMjZlZjRjYiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1OSk6IHRpZDogZTI2ZWY0Y2IgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiBlZTgwZDM3NSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg2MSk6IHRpZDogZWU4MGQzNzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYyKTogdGlkOiBlZTgwZDM3NSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNjMpOiB0aWQ6IGVlODBkMzc1ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NzgwMCBuYmxvY2tzIDB4OSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDY0KTogdGlkOiBlZTgwZDM3NSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg2NSk6IHRpZDogZWU4MGQzNzUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjYpOiB0aWQ6IGVlODBkMzc1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ1ICBs b25nZXN0OiAxOTQ5MjM0NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBlZTgw ZDM3NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDY4KTogdGlkOiBlZTgwZDM3NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6IHRpZDog ZWU4MGQzNzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNzApOiB0aWQ6IGVlODBkMzc1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlk OiBlZTgwZDM3NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0aWQ6IDk3NzNhYzIyICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTogdGlk OiA5NzczYWMyMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDk3NzNhYzIyICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg3NSk6IHRpZDogOTc3M2FjMjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg4YzAwIG5ibG9ja3MgMHhhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoNzYpOiB0aWQ6IDk3NzNhYzIyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3KTogdGlk OiA5NzczYWMyMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg3OCk6IHRpZDogOTc3M2FjMjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDQgIGxvbmdlc3Q6IDE5NDkyMzQ0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzkpOiB0aWQ6IDk3NzNhYzIyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODApOiB0 aWQ6IDk3NzNhYzIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTogdGlkOiA5NzczYWMyMiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Mik6 IHRpZDogOTc3M2FjMjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IDk3NzNhYzIyICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg4NCk6IHRpZDogMjQ3YjUyM2EgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDI0N2I1MjNhICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg4Nik6IHRpZDogMjQ3YjUyM2EgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDg3KTogdGlkOiAyNDdi NTIzYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGEwMDAgbmJsb2NrcyAw eGMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg4OCk6IHRpZDogMjQ3 YjUyM2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6IDI0N2I1MjNhICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDkw KTogdGlkOiAyNDdiNTIzYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjM0MiAgbG9uZ2VzdDogMTk0OTIzNDIKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg5MSk6IHRpZDogMjQ3YjUyM2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5Mik6IHRpZDogMjQ3YjUyM2EgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOTMpOiB0aWQ6IDI0N2I1MjNhICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlkOiAyNDdiNTIzYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogMjQ3YjUyM2EgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlkOiBm YTk5NTFmZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5Nyk6IHRpZDogZmE5OTUxZmYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk4KTogdGlkOiBmYTk5 NTFmZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTkpOiB0aWQ6IGZhOTk1MWZmICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjQwMCBuYmxvY2tzIDB4ZCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEwMCk6IHRpZDogZmE5OTUxZmYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTAxKTogdGlkOiBmYTk5NTFmZiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDIpOiB0aWQ6IGZhOTk1 MWZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzQxICBsb25nZXN0OiAxOTQ5MjM0MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw Myk6IHRpZDogZmE5OTUxZmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDQpOiB0aWQ6IGZhOTk1MWZmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEwNSk6IHRpZDogZmE5OTUxZmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA2KTogdGlkOiBmYTk5NTFmZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMDcpOiB0aWQ6IGZhOTk1MWZmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IDNmODBlMTZj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwOSk6IHRpZDogM2Y4MGUxNmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMCk6IHRpZDogM2Y4MGUxNmMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDExMSk6IHRpZDogM2Y4MGUxNmMgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjODAwIG5ibG9ja3MgMHhlIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTEyKTogdGlkOiAzZjgwZTE2YyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTMpOiB0aWQ6IDNmODBlMTZjICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDExNCk6IHRpZDogM2Y4MGUxNmMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzNDAgIGxvbmdlc3Q6IDE5NDkyMzQwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE1KTog dGlkOiAzZjgwZTE2YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDExNik6IHRpZDogM2Y4MGUxNmMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTE3KTogdGlkOiAzZjgwZTE2YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTgpOiB0aWQ6IDNmODBlMTZjICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExOSk6IHRpZDogM2Y4MGUxNmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMCk6IHRpZDogZjdkYzE2ZTYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTIxKTogdGlkOiBmN2RjMTZlNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIyKTogdGlkOiBmN2RjMTZlNiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTIzKTogdGlkOiBmN2RjMTZlNiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGRjMDAgbmJsb2NrcyAweGYgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICgxMjQpOiB0aWQ6IGY3ZGMxNmU2ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEyNSk6IHRpZDogZjdkYzE2ZTYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTI2KTogdGlkOiBmN2RjMTZlNiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMz OSAgbG9uZ2VzdDogMTk0OTIzMzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjcpOiB0aWQ6 IGY3ZGMxNmU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTI4KTogdGlkOiBmN2RjMTZlNiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjkp OiB0aWQ6IGY3ZGMxNmU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEzMCk6IHRpZDogZjdkYzE2ZTYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTMxKTogdGlkOiBmN2RjMTZlNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMyKTogdGlkOiA3MGI5ZTM5YiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMzMpOiB0aWQ6IDcwYjllMzliICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzQpOiB0aWQ6IDcwYjllMzliICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxMzUpOiB0aWQ6IDcwYjllMzliICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4ZjAwMCBuYmxvY2tzIDB4MTEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICgxMzYpOiB0aWQ6IDcwYjllMzliICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEzNyk6IHRpZDogNzBiOWUzOWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTM4KTogdGlkOiA3MGI5ZTM5YiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNyAg bG9uZ2VzdDogMTk0OTIzMzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IDcw YjllMzliICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTQwKTogdGlkOiA3MGI5ZTM5YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDEpOiB0 aWQ6IDcwYjllMzliICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDE0Mik6IHRpZDogNzBiOWUzOWIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQz KTogdGlkOiA3MGI5ZTM5YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ0KTogdGlkOiBmYmE5ZDkxOCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NDUpOiB0aWQ6IGZiYTlkOTE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0aWQ6IGZiYTlkOTE4ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxNDcpOiB0aWQ6IGZiYTlkOTE4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MTA0MDAgbmJsb2NrcyAweDEyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoMTQ4KTogdGlkOiBmYmE5ZDkxOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNDkpOiB0aWQ6IGZiYTlkOTE4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1MCk6IHRpZDogZmJhOWQ5MTggIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzYgIGxv bmdlc3Q6IDE5NDkyMzM2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUxKTogdGlkOiBmYmE5 ZDkxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE1Mik6IHRpZDogZmJhOWQ5MTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTogdGlk OiBmYmE5ZDkxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxNTQpOiB0aWQ6IGZiYTlkOTE4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1NSk6 IHRpZDogZmJhOWQ5MTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nik6IHRpZDogNmU2MDIxMDQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3 KTogdGlkOiA2ZTYwMjEwNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4KTogdGlkOiA2ZTYwMjEwNCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTU5KTogdGlkOiA2ZTYwMjEwNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDExODAwIG5ibG9ja3MgMHgxMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDE2MCk6IHRpZDogNmU2MDIxMDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTYxKTogdGlkOiA2ZTYwMjEwNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjIpOiB0aWQ6IDZlNjAyMTA0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM1ICBsb25n ZXN0OiAxOTQ5MjMzNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogNmU2MDIx MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxNjQpOiB0aWQ6IDZlNjAyMTA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRpZDog NmU2MDIxMDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTY2KTogdGlkOiA2ZTYwMjEwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjcpOiB0 aWQ6IDZlNjAyMTA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjgpOiB0aWQ6IGQ2OTUwYTI1ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6 IHRpZDogZDY5NTBhMjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MCk6IHRpZDogZDY5NTBhMjUgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDE3MSk6IHRpZDogZDY5NTBhMjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgxMmMwMCBuYmxvY2tzIDB4MTQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgxNzIpOiB0aWQ6IGQ2OTUwYTI1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE3Myk6IHRpZDogZDY5NTBhMjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTc0KTogdGlkOiBkNjk1MGEyNSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNCAgbG9uZ2Vz dDogMTk0OTIzMzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IGQ2OTUwYTI1 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTc2KTogdGlkOiBkNjk1MGEyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzcpOiB0aWQ6IGQ2 OTUwYTI1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE3OCk6IHRpZDogZDY5NTBhMjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc5KTogdGlk OiBkNjk1MGEyNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgwKTogdGlkOiA0YWUwYTU0YiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0 aWQ6IDRhZTBhNTRiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6IDRhZTBhNTRiICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxODMpOiB0aWQ6IDRhZTBhNTRiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MTQwMDAgbmJsb2NrcyAweDE2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMTg0KTogdGlkOiA0YWUwYTU0YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx ODUpOiB0aWQ6IDRhZTBhNTRiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDE4Nik6IHRpZDogNGFlMGE1NGIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzIgIGxvbmdlc3Q6 IDE5NDkyMzMyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiA0YWUwYTU0YiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE4OCk6IHRpZDogNGFlMGE1NGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiA0YWUw YTU0YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxOTApOiB0aWQ6IDRhZTBhNTRiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MSk6IHRpZDog NGFlMGE1NGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Mik6IHRpZDogNzZjM2JhNDYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlk OiA3NmMzYmE0NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTk0KTogdGlkOiA3NmMzYmE0NiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTk1KTogdGlkOiA3NmMzYmE0NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDE1NDAwIG5ibG9ja3MgMHgxNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDE5Nik6IHRpZDogNzZjM2JhNDYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk3 KTogdGlkOiA3NmMzYmE0NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxOTgpOiB0aWQ6IDc2YzNiYTQ2ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMxICBsb25nZXN0OiAx OTQ5MjMzMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogNzZjM2JhNDYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMDApOiB0aWQ6IDc2YzNiYTQ2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMSk6IHRpZDogNzZjM2Jh NDYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjAyKTogdGlkOiA3NmMzYmE0NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDMpOiB0aWQ6IDc2 YzNiYTQ2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDQpOiB0aWQ6IDVhYjdjMTE1ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDog NWFiN2MxMTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIwNik6IHRpZDogNWFiN2MxMTUgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDIwNyk6IHRpZDogNWFiN2MxMTUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgxNjgwMCBuYmxvY2tzIDB4MTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICgyMDgpOiB0aWQ6IDVhYjdjMTE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOSk6 IHRpZDogNWFiN2MxMTUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMjEwKTogdGlkOiA1YWI3YzExNSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzMCAgbG9uZ2VzdDogMTk0 OTIzMzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDVhYjdjMTE1ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjEyKTogdGlkOiA1YWI3YzExNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0aWQ6IDVhYjdjMTE1 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIxNCk6IHRpZDogNWFiN2MxMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1KTogdGlkOiA1YWI3 YzExNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjE2KTogdGlkOiAzMzk2MmUzYyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IDMz OTYyZTNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMTgpOiB0aWQ6IDMzOTYyZTNjICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy MTkpOiB0aWQ6IDMzOTYyZTNjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MTdjMDAgbmJsb2NrcyAweDE5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoMjIwKTogdGlkOiAzMzk2MmUzYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjEpOiB0 aWQ6IDMzOTYyZTNjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDIyMik6IHRpZDogMzM5NjJlM2MgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjkgIGxvbmdlc3Q6IDE5NDky MzI5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiAzMzk2MmUzYyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIy NCk6IHRpZDogMzM5NjJlM2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlkOiAzMzk2MmUzYyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMjYpOiB0aWQ6IDMzOTYyZTNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNyk6IHRpZDogMzM5NjJl M2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIyOCk6IHRpZDogNDUyMTYyNTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiA0NTIx NjI1OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjMwKTogdGlkOiA0NTIxNjI1OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjMx KTogdGlkOiA0NTIxNjI1OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE5 MDAwIG5ibG9ja3MgMHgxYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDIzMik6IHRpZDogNDUyMTYyNTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMzKTogdGlk OiA0NTIxNjI1OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyMzQpOiB0aWQ6IDQ1MjE2MjU5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI3ICBsb25nZXN0OiAxOTQ5MjMy NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogNDUyMTYyNTkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzYp OiB0aWQ6IDQ1MjE2MjU5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6IHRpZDogNDUyMTYyNTkgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjM4KTogdGlkOiA0NTIxNjI1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzkpOiB0aWQ6IDQ1MjE2MjU5 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDApOiB0aWQ6IGJmOGJmYjcxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogYmY4YmZi NzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI0Mik6IHRpZDogYmY4YmZiNzEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0Myk6 IHRpZDogYmY4YmZiNzEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxYTQw MCBuYmxvY2tzIDB4MWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgy NDQpOiB0aWQ6IGJmOGJmYjcxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NSk6IHRpZDog YmY4YmZiNzEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjQ2KTogdGlkOiBiZjhiZmI3MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNiAgbG9uZ2VzdDogMTk0OTIzMjYK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IGJmOGJmYjcxICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ4KTog dGlkOiBiZjhiZmI3MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0aWQ6IGJmOGJmYjcxICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1 MCk6IHRpZDogYmY4YmZiNzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUxKTogdGlkOiBiZjhiZmI3MSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjUyKTogdGlkOiBhMmRlNzFjZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IGEyZGU3MWNk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNTQpOiB0aWQ6IGEyZGU3MWNkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNTUpOiB0 aWQ6IGEyZGU3MWNkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWI4MDAg bmJsb2NrcyAweDFkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjU2 KTogdGlkOiBhMmRlNzFjZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTcpOiB0aWQ6IGEy ZGU3MWNkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDI1OCk6IHRpZDogYTJkZTcxY2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjUgIGxvbmdlc3Q6IDE5NDkyMzI1Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiBhMmRlNzFjZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2MCk6IHRp ZDogYTJkZTcxY2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiBhMmRlNzFjZCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjIp OiB0aWQ6IGEyZGU3MWNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6IHRpZDogYTJkZTcxY2QgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2NCk6IHRpZDogNTgxZGFhYTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiA1ODFkYWFhOSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjY2KTogdGlkOiA1ODFkYWFhOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjY3KTogdGlk OiA1ODFkYWFhOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFjYzAwIG5i bG9ja3MgMHgxZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI2OCk6 IHRpZDogNTgxZGFhYTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY5KTogdGlkOiA1ODFk YWFhOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyNzApOiB0aWQ6IDU4MWRhYWE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI0ICBsb25nZXN0OiAxOTQ5MjMyNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogNTgxZGFhYTkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzIpOiB0aWQ6 IDU4MWRhYWE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Myk6IHRpZDogNTgxZGFhYTkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc0KTog dGlkOiA1ODFkYWFhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0aWQ6IDU4MWRhYWE5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNzYpOiB0aWQ6IGQ3MTk2MmNkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogZDcxOTYyY2QgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3OCk6IHRpZDogZDcxOTYyY2QgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3OSk6IHRpZDog ZDcxOTYyY2QgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxZTAwMCBuYmxv Y2tzIDB4MjAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyODApOiB0 aWQ6IGQ3MTk2MmNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MSk6IHRpZDogZDcxOTYy Y2QgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMjgyKTogdGlkOiBkNzE5NjJjZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMiAgbG9uZ2VzdDogMTk0OTIzMjIKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IGQ3MTk2MmNkICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg0KTogdGlkOiBk NzE5NjJjZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODUpOiB0aWQ6IGQ3MTk2MmNkICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4Nik6IHRp ZDogZDcxOTYyY2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlkOiBkNzE5NjJjZCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjg4KTogdGlkOiA2MzFjMjZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogNjMxYzI2YyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjkwKTogdGlkOiA2MzFjMjZjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyOTEpOiB0aWQ6IDYzMWMy NmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxZjQwMCBuYmxvY2tzIDB4 MjEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyOTIpOiB0aWQ6IDYz MWMyNmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiA2MzFjMjZjICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5 NCk6IHRpZDogNjMxYzI2YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMyMSAgbG9uZ2VzdDogMTk0OTIzMjEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTUpOiB0aWQ6IDYzMWMyNmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTYpOiB0aWQ6IDYzMWMyNmMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjk3KTogdGlkOiA2MzFjMjZjICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5OCk6IHRpZDogNjMxYzI2YyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDYzMWMyNmMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMCk6IHRpZDog M2Q5NTZiMTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiAzZDk1NmIxNSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAyKTogdGlkOiAz ZDk1NmIxNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzAzKTogdGlkOiAzZDk1NmIxNSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIwODAwIG5ibG9ja3MgMHgyMiBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDMwNCk6IHRpZDogM2Q5NTZiMTUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiAzZDk1NmIxNSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDYpOiB0aWQ6 IDNkOTU2YjE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzIwICBsb25nZXN0OiAxOTQ5MjMyMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMwNyk6IHRpZDogM2Q5NTZiMTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDgpOiB0aWQ6IDNkOTU2YjE1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMwOSk6IHRpZDogM2Q5NTZiMTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzEwKTogdGlkOiAzZDk1NmIxNSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IDNkOTU2YjE1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTIpOiB0aWQ6IGMx MmYxZWFmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogYzEyZjFlYWYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNCk6IHRpZDogYzEy ZjFlYWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMxNSk6IHRpZDogYzEyZjFlYWYgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMWMwMCBuYmxvY2tzIDB4MjMgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMTYpOiB0aWQ6IGMxMmYxZWFmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogYzEyZjFlYWYgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzE4KTogdGlkOiBj MTJmMWVhZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjMxOSAgbG9uZ2VzdDogMTk0OTIzMTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMTkpOiB0aWQ6IGMxMmYxZWFmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIwKTogdGlkOiBjMTJmMWVhZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMjEpOiB0aWQ6IGMxMmYxZWFmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyMik6IHRpZDogYzEyZjFlYWYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzIzKTogdGlkOiBjMTJmMWVhZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI0KTogdGlkOiA1NDEz OGY4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDU0MTM4ZjhiICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjYpOiB0aWQ6IDU0MTM4 ZjhiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMjcpOiB0aWQ6IDU0MTM4ZjhiICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjMwMDAgbmJsb2NrcyAweDI1IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzI4KTogdGlkOiA1NDEzOGY4YiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6IDU0MTM4ZjhiICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMzMCk6IHRpZDogNTQx MzhmOGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMTcgIGxvbmdlc3Q6IDE5NDkyMzE3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzMxKTogdGlkOiA1NDEzOGY4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzMik6IHRpZDogNTQxMzhmOGIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzMzKTogdGlkOiA1NDEzOGY4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzQpOiB0aWQ6IDU0MTM4ZjhiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzNSk6IHRpZDogNTQxMzhmOGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNik6IHRpZDogNmE4ZmIz ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzcpOiB0aWQ6IDZhOGZiM2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDogNmE4ZmIzZiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzM5KTogdGlkOiA2YThmYjNmICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MjQ0MDAgbmJsb2NrcyAweDI2IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzQwKTogdGlkOiA2YThmYjNmICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogNmE4ZmIzZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDIpOiB0aWQ6IDZhOGZiM2YgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MTYgIGxvbmdlc3Q6IDE5NDkyMzE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQzKTogdGlk OiA2YThmYjNmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzQ0KTogdGlkOiA2YThmYjNmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NSk6 IHRpZDogNmE4ZmIzZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6IDZhOGZiM2YgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3 KTogdGlkOiA2YThmYjNmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDgpOiB0aWQ6IDU3OWFkYjI5ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0 OSk6IHRpZDogNTc5YWRiMjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MCk6IHRpZDogNTc5YWRiMjkgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDM1MSk6IHRpZDogNTc5YWRiMjkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgyNTgwMCBuYmxvY2tzIDB4MjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICgzNTIpOiB0aWQ6IDU3OWFkYjI5ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1Myk6IHRpZDogNTc5YWRiMjkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzU0KTogdGlkOiA1NzlhZGIyOSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNSAgbG9u Z2VzdDogMTk0OTIzMTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IDU3OWFk YjI5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzU2KTogdGlkOiA1NzlhZGIyOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTcpOiB0aWQ6 IDU3OWFkYjI5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDM1OCk6IHRpZDogNTc5YWRiMjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTog dGlkOiA1NzlhZGIyOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYwKTogdGlkOiBkMWZhMTEwMyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjEp OiB0aWQ6IGQxZmExMTAzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjIpOiB0aWQ6IGQxZmExMTAzICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgzNjMpOiB0aWQ6IGQxZmExMTAzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4MjZjMDAgbmJsb2NrcyAweDI4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoMzY0KTogdGlkOiBkMWZhMTEwMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNjUpOiB0aWQ6IGQxZmExMTAzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2Nik6IHRpZDogZDFmYTExMDMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTQgIGxvbmdl c3Q6IDE5NDkyMzE0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY3KTogdGlkOiBkMWZhMTEw MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM2OCk6IHRpZDogZDFmYTExMDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY5KTogdGlkOiBk MWZhMTEwMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzNzApOiB0aWQ6IGQxZmExMTAzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRp ZDogZDFmYTExMDMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Mik6IHRpZDogNzUxOTRkMjUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzczKTog dGlkOiA3NTE5NGQyNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzc0KTogdGlkOiA3NTE5NGQyNSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMzc1KTogdGlkOiA3NTE5NGQyNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDI4MDAwIG5ibG9ja3MgMHgyYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDM3Nik6IHRpZDogNzUxOTRkMjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzc3KTogdGlkOiA3NTE5NGQyNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNzgpOiB0aWQ6IDc1MTk0ZDI1ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzEyICBsb25nZXN0 OiAxOTQ5MjMxMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDogNzUxOTRkMjUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzODApOiB0aWQ6IDc1MTk0ZDI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4MSk6IHRpZDogNzUx OTRkMjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzgyKTogdGlkOiA3NTE5NGQyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6 IDc1MTk0ZDI1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzODQpOiB0aWQ6IGQ3Zjc3MzIyICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NSk6IHRp ZDogZDdmNzczMjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM4Nik6IHRpZDogZDdmNzczMjIgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDM4Nyk6IHRpZDogZDdmNzczMjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgyOTQwMCBuYmxvY2tzIDB4MmIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MgpPcGVyICgzODgpOiB0aWQ6IGQ3Zjc3MzIyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4 OSk6IHRpZDogZDdmNzczMjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMzkwKTogdGlkOiBkN2Y3NzMyMiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxMSAgbG9uZ2VzdDog MTk0OTIzMTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTEpOiB0aWQ6IGQ3Zjc3MzIyICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzkyKTogdGlkOiBkN2Y3NzMyMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTMpOiB0aWQ6IGQ3Zjc3 MzIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM5NCk6IHRpZDogZDdmNzczMjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiBk N2Y3NzMyMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzk2KTogdGlkOiA2NzIzMDZjOCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6 IDY3MjMwNmM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzOTgpOiB0aWQ6IDY3MjMwNmM4ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgzOTkpOiB0aWQ6IDY3MjMwNmM4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4MmE4MDAgbmJsb2NrcyAweDJjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIK T3BlciAoNDAwKTogdGlkOiA2NzIzMDZjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDEp OiB0aWQ6IDY3MjMwNmM4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDQwMik6IHRpZDogNjcyMzA2YzggIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTAgIGxvbmdlc3Q6IDE5 NDkyMzEwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiA2NzIzMDZjOCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQwNCk6IHRpZDogNjcyMzA2YzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA1KTogdGlkOiA2NzIzMDZj OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0MDYpOiB0aWQ6IDY3MjMwNmM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogNjcy MzA2YzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQwOCk6IHRpZDogYjhmOGIwYzggIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTogdGlkOiBi OGY4YjBjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDEwKTogdGlkOiBiOGY4YjBjOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NDExKTogdGlkOiBiOGY4YjBjOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDJiYzAwIG5ibG9ja3MgMHgyZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9w ZXIgKDQxMik6IHRpZDogYjhmOGIwYzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEzKTog dGlkOiBiOGY4YjBjOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg0MTQpOiB0aWQ6IGI4ZjhiMGM4ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA5ICBsb25nZXN0OiAxOTQ5 MjMwOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6IHRpZDogYjhmOGIwYzggIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MTYpOiB0aWQ6IGI4ZjhiMGM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNyk6IHRpZDogYjhmOGIwYzgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDE4KTogdGlkOiBiOGY4YjBjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IGI4Zjhi MGM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MjApOiB0aWQ6IDE1Mzc5Njc4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRpZDogMTUz Nzk2NzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQyMik6IHRpZDogMTUzNzk2NzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQy Myk6IHRpZDogMTUzNzk2NzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgy ZDAwMCBuYmxvY2tzIDB4MmYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICg0MjQpOiB0aWQ6IDE1Mzc5Njc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNSk6IHRp ZDogMTUzNzk2NzggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDI2KTogdGlkOiAxNTM3OTY3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwNyAgbG9uZ2VzdDogMTk0OTIz MDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0aWQ6IDE1Mzc5Njc4ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI4 KTogdGlkOiAxNTM3OTY3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjkpOiB0aWQ6IDE1Mzc5Njc4ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQzMCk6IHRpZDogMTUzNzk2NzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiAxNTM3OTY3 OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDMyKTogdGlkOiBmNzQzNTdhMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6IGY3NDM1 N2EzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MzQpOiB0aWQ6IGY3NDM1N2EzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MzUp OiB0aWQ6IGY3NDM1N2EzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmU0 MDAgbmJsb2NrcyAweDMwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo NDM2KTogdGlkOiBmNzQzNTdhMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6 IGY3NDM1N2EzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDQzOCk6IHRpZDogZjc0MzU3YTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDYgIGxvbmdlc3Q6IDE5NDkyMzA2 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlkOiBmNzQzNTdhMyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0MCk6 IHRpZDogZjc0MzU3YTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQxKTogdGlkOiBmNzQzNTdhMyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NDIpOiB0aWQ6IGY3NDM1N2EzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Myk6IHRpZDogZjc0MzU3YTMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ0NCk6IHRpZDogZjg3NzU2MzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiBmODc3NTYz OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDQ2KTogdGlkOiBmODc3NTYzOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDQ3KTog dGlkOiBmODc3NTYzOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJmODAw IG5ibG9ja3MgMHgzMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ0 OCk6IHRpZDogZjg3NzU2MzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ5KTogdGlkOiBm ODc3NTYzOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NTApOiB0aWQ6IGY4Nzc1NjM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA1ICBsb25nZXN0OiAxOTQ5MjMwNQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogZjg3NzU2MzggIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTIpOiB0 aWQ6IGY4Nzc1NjM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Myk6IHRpZDogZjg3NzU2MzggIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU0 KTogdGlkOiBmODc3NTYzOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6IGY4Nzc1NjM4ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NTYpOiB0aWQ6IGViZmYwNDFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDogZWJmZjA0MWIg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ1OCk6IHRpZDogZWJmZjA0MWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1OSk6IHRp ZDogZWJmZjA0MWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMGMwMCBu YmxvY2tzIDB4MzIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0NjAp OiB0aWQ6IGViZmYwNDFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MSk6IHRpZDogZWJm ZjA0MWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNDYyKTogdGlkOiBlYmZmMDQxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwNCAgbG9uZ2VzdDogMTk0OTIzMDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IGViZmYwNDFiICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDY0KTogdGlk OiBlYmZmMDQxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjUpOiB0aWQ6IGViZmYwNDFiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2Nik6 IHRpZDogZWJmZjA0MWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiBlYmZmMDQxYiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDY4KTogdGlkOiA0OWNlNjEwZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IDQ5Y2U2MTBmICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NzApOiB0aWQ6IDQ5Y2U2MTBmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NzEpOiB0aWQ6 IDQ5Y2U2MTBmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzIwMDAgbmJs b2NrcyAweDM0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDcyKTog dGlkOiA0OWNlNjEwZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzMpOiB0aWQ6IDQ5Y2U2 MTBmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQ3NCk6IHRpZDogNDljZTYxMGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDIgIGxvbmdlc3Q6IDE5NDkyMzAyCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiA0OWNlNjEwZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3Nik6IHRpZDog NDljZTYxMGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc3KTogdGlkOiA0OWNlNjEwZiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzgpOiB0 aWQ6IDQ5Y2U2MTBmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogNDljZTYxMGYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ4MCk6IHRpZDogNzkxN2JhYTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiA3OTE3YmFhMSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDgyKTogdGlkOiA3OTE3YmFhMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDgzKTogdGlkOiA3 OTE3YmFhMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMzNDAwIG5ibG9j a3MgMHgzNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ4NCk6IHRp ZDogNzkxN2JhYTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1KTogdGlkOiA3OTE3YmFh MSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0ODYpOiB0aWQ6IDc5MTdiYWExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAxICBsb25nZXN0OiAxOTQ5MjMwMQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRpZDogNzkxN2JhYTEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODgpOiB0aWQ6IDc5 MTdiYWExICBsZW46IDEwNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCkJVRiBE QVRBCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw1NTIJ dGFpbF9sc246IDEsNDc1Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2IG9mZnNldDog NDg4CQludW0gb3BzOiA0OTEKdXVpZDogNzdhOGE4NDUtMDM3Yi00NDY2LWIyZTktZTMxMzZjMjdi ZTY1ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA3OTE3YmFhMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9n IGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA3OTE3YmFhMSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyKTog dGlkOiA3OTE3YmFhMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzKTogdGlkOiA3OTE3YmFhMSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNCk6IHRpZDogMTUzOWJlYjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNSk6IHRpZDogMTUzOWJlYjkgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYp OiB0aWQ6IDE1MzliZWI5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg3KTogdGlkOiAxNTM5YmViOSAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM0ODAwIG5ibG9ja3MgMHgzNiBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDgpOiB0aWQ6IDE1MzliZWI5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkpOiB0aWQ6IDE1MzliZWI5ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwKTogdGlk OiAxNTM5YmViOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjMwMCAgbG9uZ2VzdDogMTk0OTIzMDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMSk6IHRpZDogMTUzOWJlYjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogMTUzOWJlYjkgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTMpOiB0aWQ6IDE1MzliZWI5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0KTogdGlkOiAxNTM5YmViOSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNSk6IHRpZDogMTUzOWJlYjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiA3OGRjYmUw ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNyk6IHRpZDogNzhkY2JlMGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiA3OGRjYmUwZSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMTkpOiB0aWQ6IDc4ZGNiZTBlICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MzVjMDAgbmJsb2NrcyAweDM3IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjApOiB0aWQ6IDc4ZGNiZTBlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxKTogdGlkOiA3OGRjYmUwZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogNzhkY2JlMGUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy OTkgIGxvbmdlc3Q6IDE5NDkyMjk5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6 IDc4ZGNiZTBlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IDc4ZGNiZTBlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTog dGlkOiA3OGRjYmUwZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyNik6IHRpZDogNzhkY2JlMGUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcp OiB0aWQ6IDc4ZGNiZTBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOCk6IHRpZDogOGY1OTc3OTQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkp OiB0aWQ6IDhmNTk3Nzk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMCk6IHRpZDogOGY1OTc3OTQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDMxKTogdGlkOiA4ZjU5Nzc5NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDM3MDAwIG5ibG9ja3MgMHgzOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDMyKTogdGlkOiA4ZjU5Nzc5NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz Myk6IHRpZDogOGY1OTc3OTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMzQpOiB0aWQ6IDhmNTk3Nzk0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk3ICBsb25nZXN0OiAx OTQ5MjI5NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTogdGlkOiA4ZjU5Nzc5NCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDM2KTogdGlkOiA4ZjU5Nzc5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogOGY1OTc3OTQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzgpOiB0aWQ6IDhmNTk3Nzk0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiA4ZjU5Nzc5 NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDApOiB0aWQ6IDQ1ZDkyYzVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiA0NWQ5MmM1 ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDIpOiB0aWQ6IDQ1ZDkyYzVmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0Myk6IHRp ZDogNDVkOTJjNWYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzODQwMCBu YmxvY2tzIDB4M2EgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0NCk6 IHRpZDogNDVkOTJjNWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IDQ1ZDky YzVmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQ2KTogdGlkOiA0NWQ5MmM1ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NiAgbG9uZ2VzdDogMTk0OTIyOTYKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogNDVkOTJjNWYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogNDVk OTJjNWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDQ1ZDkyYzVmICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUwKTogdGlkOiA0 NWQ5MmM1ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MSk6IHRpZDogNDVkOTJjNWYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUy KTogdGlkOiBkYzg5NDk0MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogZGM4OTQ5NDMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTog dGlkOiBkYzg5NDk0MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNTUpOiB0aWQ6IGRjODk0OTQzICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mzk4MDAgbmJsb2NrcyAweDNiIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNTYpOiB0aWQ6IGRjODk0OTQz ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlkOiBkYzg5NDk0MyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1OCk6IHRp ZDogZGM4OTQ5NDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyOTUgIGxvbmdlc3Q6IDE5NDkyMjk1Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTkpOiB0aWQ6IGRjODk0OTQzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IGRjODk0OTQzICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDYxKTogdGlkOiBkYzg5NDk0MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2Mik6IHRpZDogZGM4OTQ5NDMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjMpOiB0aWQ6IGRjODk0OTQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDogNGM3N2My Y2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjUpOiB0aWQ6IDRjNzdjMmNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nik6IHRpZDogNGM3N2MyY2Mg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDY3KTogdGlkOiA0Yzc3YzJjYyAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDNhYzAwIG5ibG9ja3MgMHgzYyBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDY4KTogdGlkOiA0Yzc3YzJjYyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg2OSk6IHRpZDogNGM3N2MyY2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNzApOiB0aWQ6IDRjNzdjMmNjICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky Mjk0ICBsb25nZXN0OiAxOTQ5MjI5NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlk OiA0Yzc3YzJjYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDcyKTogdGlkOiA0Yzc3YzJjYyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6 IHRpZDogNGM3N2MyY2MgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNzQpOiB0aWQ6IDRjNzdjMmNjICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1 KTogdGlkOiA0Yzc3YzJjYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzYpOiB0aWQ6IDc0YTgyMWRlICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3 KTogdGlkOiA3NGE4MjFkZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzgpOiB0aWQ6IDc0YTgyMWRlICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg3OSk6IHRpZDogNzRhODIxZGUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgzYzAwMCBuYmxvY2tzIDB4M2UgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICg4MCk6IHRpZDogNzRhODIxZGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo ODEpOiB0aWQ6IDc0YTgyMWRlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDgyKTogdGlkOiA3NGE4MjFkZSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5MiAgbG9uZ2VzdDog MTk0OTIyOTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogNzRhODIxZGUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg4NCk6IHRpZDogNzRhODIxZGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDc0YTgyMWRl ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDg2KTogdGlkOiA3NGE4MjFkZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogNzRhODIx ZGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDg4KTogdGlkOiA1MWU1NTY3NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogNTFlNTU2 NzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDkwKTogdGlkOiA1MWU1NTY3NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTEpOiB0 aWQ6IDUxZTU1Njc0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2Q0MDAg bmJsb2NrcyAweDNmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoOTIp OiB0aWQ6IDUxZTU1Njc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiA1MWU1 NTY3NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg5NCk6IHRpZDogNTFlNTU2NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTEgIGxvbmdlc3Q6IDE5NDkyMjkxCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IDUxZTU1Njc0ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IDUx ZTU1Njc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiA1MWU1NTY3NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5OCk6IHRpZDog NTFlNTU2NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTkpOiB0aWQ6IDUxZTU1Njc0ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MDApOiB0aWQ6IGIzNWMyNzljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogYjM1YzI3OWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw Mik6IHRpZDogYjM1YzI3OWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEwMyk6IHRpZDogYjM1YzI3 OWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzZTgwMCBuYmxvY2tzIDB4 NDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMDQpOiB0aWQ6IGIz NWMyNzljICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogYjM1YzI3OWMgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTA2KTogdGlkOiBiMzVjMjc5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5MCAgbG9uZ2VzdDogMTk0OTIyOTAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMDcpOiB0aWQ6IGIzNWMyNzljICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiBiMzVjMjc5 YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IGIzNWMyNzljICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMCk6IHRpZDogYjM1 YzI3OWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTExKTogdGlkOiBiMzVjMjc5YyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEy KTogdGlkOiAyMDhkZDE0OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTMpOiB0aWQ6IDIwOGRkMTQ4ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQp OiB0aWQ6IDIwOGRkMTQ4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTUpOiB0aWQ6IDIwOGRkMTQ4 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2ZjMDAgbmJsb2NrcyAweDQx IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTE2KTogdGlkOiAyMDhk ZDE0OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDIwOGRkMTQ4ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEx OCk6IHRpZDogMjA4ZGQxNDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyODkgIGxvbmdlc3Q6IDE5NDkyMjg5Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTE5KTogdGlkOiAyMDhkZDE0OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogMjA4ZGQxNDgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiAyMDhkZDE0OCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjIpOiB0aWQ6IDIwOGRk MTQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMyk6IHRpZDogMjA4ZGQxNDggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNCk6 IHRpZDogZmZlNDhjNDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI1KTogdGlkOiBmZmU0OGM0NCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTog dGlkOiBmZmU0OGM0NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTI3KTogdGlkOiBmZmU0OGM0NCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQxMDAwIG5ibG9ja3MgMHg0MyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEyOCk6IHRpZDogZmZlNDhj NDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiBmZmU0OGM0NCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzAp OiB0aWQ6IGZmZTQ4YzQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjg3ICBsb25nZXN0OiAxOTQ5MjI4NwotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEzMSk6IHRpZDogZmZlNDhjNDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IGZmZTQ4YzQ0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogZmZlNDhjNDQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM0KTogdGlkOiBmZmU0OGM0 NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMzUpOiB0aWQ6IGZmZTQ4YzQ0ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzYpOiB0 aWQ6IGIyNjg0ZDFlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNyk6IHRpZDogYjI2ODRkMWUgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRp ZDogYjI2ODRkMWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEzOSk6IHRpZDogYjI2ODRkMWUgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0MjQwMCBuYmxvY2tzIDB4NDQgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNDApOiB0aWQ6IGIyNjg0ZDFl ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogYjI2ODRkMWUgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQyKTog dGlkOiBiMjY4NGQxZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjI4NiAgbG9uZ2VzdDogMTk0OTIyODYKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNDMpOiB0aWQ6IGIyNjg0ZDFlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiBiMjY4NGQxZSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IGIyNjg0ZDFlICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0Nik6IHRpZDogYjI2ODRkMWUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTQ3KTogdGlkOiBiMjY4NGQxZSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlk OiAyMDllY2NkNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDkpOiB0aWQ6IDIwOWVjY2Q1ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6 IDIwOWVjY2Q1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTEpOiB0aWQ6IDIwOWVjY2Q1ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDM4MDAgbmJsb2NrcyAweDQ1IGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTUyKTogdGlkOiAyMDllY2NkNSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDIwOWVjY2Q1ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1NCk6IHRp ZDogMjA5ZWNjZDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyODUgIGxvbmdlc3Q6IDE5NDkyMjg1Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTU1KTogdGlkOiAyMDllY2NkNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogMjA5ZWNjZDUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTU3KTogdGlkOiAyMDllY2NkNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTgpOiB0aWQ6IDIwOWVjY2Q1ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE1OSk6IHRpZDogMjA5ZWNjZDUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MCk6IHRpZDog OWIzMDM4NDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTYxKTogdGlkOiA5YjMwMzg0NSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiA5 YjMwMzg0NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTYzKTogdGlkOiA5YjMwMzg0NSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ0YzAwIG5ibG9ja3MgMHg0NiBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE2NCk6IHRpZDogOWIzMDM4NDUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY1KTogdGlkOiA5YjMwMzg0NSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjYpOiB0aWQ6 IDliMzAzODQ1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjg0ICBsb25nZXN0OiAxOTQ5MjI4NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE2Nyk6IHRpZDogOWIzMDM4NDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IDliMzAzODQ1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE2OSk6IHRpZDogOWIzMDM4NDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcwKTogdGlkOiA5YjMwMzg0NSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNzEpOiB0aWQ6IDliMzAzODQ1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzIpOiB0aWQ6IGMx YTc5NGY1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE3Myk6IHRpZDogYzFhNzk0ZjUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogYzFh Nzk0ZjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3NSk6IHRpZDogYzFhNzk0ZjUgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NjAwMCBuYmxvY2tzIDB4NDggZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNzYpOiB0aWQ6IGMxYTc5NGY1ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nyk6IHRpZDogYzFhNzk0ZjUgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTc4KTogdGlkOiBj MWE3OTRmNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI4MiAgbG9uZ2VzdDogMTk0OTIyODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNzkpOiB0aWQ6IGMxYTc5NGY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiBjMWE3OTRmNSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxODEpOiB0aWQ6IGMxYTc5NGY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4Mik6IHRpZDogYzFhNzk0ZjUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTgzKTogdGlkOiBjMWE3OTRmNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg0KTogdGlkOiA4NjE5 OTljMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODUpOiB0aWQ6IDg2MTk5OWMxICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODYpOiB0aWQ6IDg2MTk5 OWMxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxODcpOiB0aWQ6IDg2MTk5OWMxICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDc0MDAgbmJsb2NrcyAweDQ5IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTg4KTogdGlkOiA4NjE5OTljMSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxODkpOiB0aWQ6IDg2MTk5OWMxICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5MCk6IHRpZDogODYx OTk5YzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyODEgIGxvbmdlc3Q6IDE5NDkyMjgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTkxKTogdGlkOiA4NjE5OTljMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogODYxOTk5YzEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTkzKTogdGlkOiA4NjE5OTljMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTQpOiB0aWQ6IDg2MTk5OWMxICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE5NSk6IHRpZDogODYxOTk5YzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nik6IHRpZDogZmI3NjA5 NmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTk3KTogdGlkOiBmYjc2MDk2ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk4KTogdGlkOiBmYjc2MDk2 ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTk5KTogdGlkOiBmYjc2MDk2ZSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ4ODAwIG5ibG9ja3MgMHg0YSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIwMCk6IHRpZDogZmI3NjA5NmUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjAxKTogdGlkOiBmYjc2MDk2ZSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDIpOiB0aWQ6IGZiNzYw OTZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjgwICBsb25nZXN0OiAxOTQ5MjI4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIw Myk6IHRpZDogZmI3NjA5NmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IGZiNzYwOTZlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIwNSk6IHRpZDogZmI3NjA5NmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA2KTogdGlkOiBmYjc2MDk2ZSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMDcpOiB0aWQ6IGZiNzYwOTZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDgpOiB0aWQ6IGMwMzI1ZDI3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwOSk6IHRpZDogYzAzMjVkMjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMCk6IHRpZDogYzAzMjVkMjcg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxMSk6IHRpZDogYzAzMjVkMjcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0OWMwMCBuYmxvY2tzIDB4NGIgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMTIpOiB0aWQ6IGMwMzI1ZDI3ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDogYzAzMjVkMjcgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE0KTogdGlkOiBjMDMyNWQy NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI3OSAgbG9uZ2VzdDogMTk0OTIyNzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUp OiB0aWQ6IGMwMzI1ZDI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiBjMDMyNWQyNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMTcpOiB0aWQ6IGMwMzI1ZDI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxOCk6IHRpZDogYzAzMjVkMjcgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjE5KTogdGlkOiBjMDMyNWQyNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIwKTogdGlkOiBjM2E2YzdmZCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMjEpOiB0aWQ6IGMzYTZjN2ZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjIpOiB0aWQ6IGMzYTZjN2ZkICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgyMjMpOiB0aWQ6IGMzYTZjN2ZkICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4NGIwMDAgbmJsb2NrcyAweDRkIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjI0KTogdGlkOiBjM2E2YzdmZCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMjUpOiB0aWQ6IGMzYTZjN2ZkICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyNik6IHRpZDogYzNhNmM3ZmQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyNzcgIGxvbmdlc3Q6IDE5NDkyMjc3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTog dGlkOiBjM2E2YzdmZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIyOCk6IHRpZDogYzNhNmM3ZmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjI5KTogdGlkOiBjM2E2YzdmZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzApOiB0aWQ6IGMzYTZjN2ZkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzMSk6IHRpZDogYzNhNmM3ZmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMik6IHRpZDogODA4NWIwZTIgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjMzKTogdGlkOiA4MDg1YjBlMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM0KTogdGlkOiA4MDg1YjBlMiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMjM1KTogdGlkOiA4MDg1YjBlMiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDRjNDAwIG5ibG9ja3MgMHg0ZSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIzNik6IHRpZDogODA4NWIwZTIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjM3KTogdGlkOiA4MDg1YjBlMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMzgpOiB0aWQ6IDgwODViMGUyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky Mjc2ICBsb25nZXN0OiAxOTQ5MjI3NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRp ZDogODA4NWIwZTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyNDApOiB0aWQ6IDgwODViMGUyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0 MSk6IHRpZDogODA4NWIwZTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjQyKTogdGlkOiA4MDg1YjBlMiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNDMpOiB0aWQ6IDgwODViMGUyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDQpOiB0aWQ6IGU0ZDJjYWZkICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0NSk6IHRpZDogZTRkMmNhZmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nik6IHRpZDogZTRkMmNhZmQgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDI0Nyk6IHRpZDogZTRkMmNhZmQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg0ZDgwMCBuYmxvY2tzIDB4NGYgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICgyNDgpOiB0aWQ6IGU0ZDJjYWZkICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI0OSk6IHRpZDogZTRkMmNhZmQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjUwKTogdGlkOiBlNGQyY2FmZCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3 NSAgbG9uZ2VzdDogMTk0OTIyNzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6 IGU0ZDJjYWZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjUyKTogdGlkOiBlNGQyY2FmZCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMp OiB0aWQ6IGU0ZDJjYWZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDI1NCk6IHRpZDogZTRkMmNhZmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjU1KTogdGlkOiBlNGQyY2FmZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU2KTogdGlkOiA1ZTdmMDQ1NyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNTcpOiB0aWQ6IDVlN2YwNDU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTgpOiB0aWQ6IDVlN2YwNDU3ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgyNTkpOiB0aWQ6IDVlN2YwNDU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NGVjMDAgbmJsb2NrcyAweDUwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoMjYwKTogdGlkOiA1ZTdmMDQ1NyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNjEpOiB0aWQ6IDVlN2YwNDU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2Mik6IHRpZDogNWU3ZjA0NTcgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzQg IGxvbmdlc3Q6IDE5NDkyMjc0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiA1 ZTdmMDQ1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDI2NCk6IHRpZDogNWU3ZjA0NTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTog dGlkOiA1ZTdmMDQ1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyNjYpOiB0aWQ6IDVlN2YwNDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2 Nyk6IHRpZDogNWU3ZjA0NTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OCk6IHRpZDogMzY3NmZlODYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjY5KTogdGlkOiAzNjc2ZmU4NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcwKTogdGlkOiAzNjc2ZmU4NiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMjcxKTogdGlkOiAzNjc2ZmU4NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDUwMDAwIG5ibG9ja3MgMHg1MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDI3Mik6IHRpZDogMzY3NmZlODYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjczKTogdGlkOiAzNjc2ZmU4NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzQpOiB0aWQ6IDM2NzZmZTg2ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjcyICBs b25nZXN0OiAxOTQ5MjI3MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogMzY3 NmZlODYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyNzYpOiB0aWQ6IDM2NzZmZTg2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRp ZDogMzY3NmZlODYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjc4KTogdGlkOiAzNjc2ZmU4NiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzkp OiB0aWQ6IDM2NzZmZTg2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODApOiB0aWQ6IGY3YTY4NTYyICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4 MSk6IHRpZDogZjdhNjg1NjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Mik6IHRpZDogZjdhNjg1NjIgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDI4Myk6IHRpZDogZjdhNjg1NjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg1MTQwMCBuYmxvY2tzIDB4NTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICgyODQpOiB0aWQ6IGY3YTY4NTYyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI4NSk6IHRpZDogZjdhNjg1NjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg2KTogdGlkOiBmN2E2ODU2MiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3MSAgbG9u Z2VzdDogMTk0OTIyNzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IGY3YTY4 NTYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjg4KTogdGlkOiBmN2E2ODU2MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6 IGY3YTY4NTYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDI5MCk6IHRpZDogZjdhNjg1NjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkxKTog dGlkOiBmN2E2ODU2MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkyKTogdGlkOiA1ZWZjNjIwZCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMp OiB0aWQ6IDVlZmM2MjBkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTQpOiB0aWQ6IDVlZmM2MjBkICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgyOTUpOiB0aWQ6IDVlZmM2MjBkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NTI4MDAgbmJsb2NrcyAweDU0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoMjk2KTogdGlkOiA1ZWZjNjIwZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTcpOiB0aWQ6IDVlZmM2MjBkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5OCk6IHRpZDogNWVmYzYyMGQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzAgIGxvbmdl c3Q6IDE5NDkyMjcwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlkOiA1ZWZjNjIw ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDMwMCk6IHRpZDogNWVmYzYyMGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiA1 ZWZjNjIwZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzMDIpOiB0aWQ6IDVlZmM2MjBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMyk6IHRp ZDogNWVmYzYyMGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNCk6IHRpZDogOWRhMGI4NGYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTog dGlkOiA5ZGEwYjg0ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzA2KTogdGlkOiA5ZGEwYjg0ZiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMzA3KTogdGlkOiA5ZGEwYjg0ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDUzYzAwIG5ibG9ja3MgMHg1NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDMwOCk6IHRpZDogOWRhMGI4NGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzA5KTogdGlkOiA5ZGEwYjg0ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTApOiB0aWQ6IDlkYTBiODRmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY5ICBsb25nZXN0 OiAxOTQ5MjI2OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDogOWRhMGI4NGYg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzMTIpOiB0aWQ6IDlkYTBiODRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogOWRh MGI4NGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzE0KTogdGlkOiA5ZGEwYjg0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTUpOiB0aWQ6 IDlkYTBiODRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTYpOiB0aWQ6IGFhYjVkOTBmICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRp ZDogYWFiNWQ5MGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMxOCk6IHRpZDogYWFiNWQ5MGYgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDMxOSk6IHRpZDogYWFiNWQ5MGYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg1NTAwMCBuYmxvY2tzIDB4NTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MgpPcGVyICgzMjApOiB0aWQ6IGFhYjVkOTBmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMy MSk6IHRpZDogYWFiNWQ5MGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMzIyKTogdGlkOiBhYWI1ZDkwZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NyAgbG9uZ2VzdDog MTk0OTIyNjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IGFhYjVkOTBmICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzI0KTogdGlkOiBhYWI1ZDkwZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IGFhYjVk OTBmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDMyNik6IHRpZDogYWFiNWQ5MGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI3KTogdGlkOiBh YWI1ZDkwZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzI4KTogdGlkOiA0Zjk4M2Q4NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6 IDRmOTgzZDg3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzApOiB0aWQ6IDRmOTgzZDg3ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgzMzEpOiB0aWQ6IDRmOTgzZDg3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NTY0MDAgbmJsb2NrcyAweDU4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIK T3BlciAoMzMyKTogdGlkOiA0Zjk4M2Q4NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMp OiB0aWQ6IDRmOTgzZDg3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDMzNCk6IHRpZDogNGY5ODNkODcgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjYgIGxvbmdlc3Q6IDE5 NDkyMjY2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiA0Zjk4M2Q4NyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDMzNik6IHRpZDogNGY5ODNkODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM3KTogdGlkOiA0Zjk4M2Q4 NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzMzgpOiB0aWQ6IDRmOTgzZDg3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOSk6IHRpZDogNGY5 ODNkODcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0MCk6IHRpZDogODA5NWFkOTggIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiA4 MDk1YWQ5OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQyKTogdGlkOiA4MDk1YWQ5OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MzQzKTogdGlkOiA4MDk1YWQ5OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDU3ODAwIG5ibG9ja3MgMHg1OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9w ZXIgKDM0NCk6IHRpZDogODA5NWFkOTggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ1KTog dGlkOiA4MDk1YWQ5OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6IDgwOTVhZDk4ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY1ICBsb25nZXN0OiAxOTQ5 MjI2NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogODA5NWFkOTggIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz NDgpOiB0aWQ6IDgwOTVhZDk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0OSk6IHRpZDogODA5NWFkOTgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzUwKTogdGlkOiA4MDk1YWQ5OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTEpOiB0aWQ6IDgwOTVh ZDk4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTIpOiB0aWQ6IDFjYTMyMzk0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Myk6IHRpZDogMWNh MzIzOTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1NCk6IHRpZDogMWNhMzIzOTQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM1 NSk6IHRpZDogMWNhMzIzOTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1 OGMwMCBuYmxvY2tzIDB4NWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICgzNTYpOiB0aWQ6IDFjYTMyMzk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nyk6IHRp ZDogMWNhMzIzOTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMzU4KTogdGlkOiAxY2EzMjM5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NCAgbG9uZ2VzdDogMTk0OTIy NjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0aWQ6IDFjYTMyMzk0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYw KTogdGlkOiAxY2EzMjM5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjEpOiB0aWQ6IDFjYTMyMzk0ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDM2Mik6IHRpZDogMWNhMzIzOTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYzKTogdGlkOiAxY2EzMjM5 NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY0KTogdGlkOiAyN2FmZGNlZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjUpOiB0aWQ6IDI3YWZk Y2VmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNjYpOiB0aWQ6IDI3YWZkY2VmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNjcp OiB0aWQ6IDI3YWZkY2VmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWEw MDAgbmJsb2NrcyAweDVjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MzY4KTogdGlkOiAyN2FmZGNlZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjkpOiB0aWQ6 IDI3YWZkY2VmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDM3MCk6IHRpZDogMjdhZmRjZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjIgIGxvbmdlc3Q6IDE5NDkyMjYy Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlkOiAyN2FmZGNlZiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Mik6 IHRpZDogMjdhZmRjZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzczKTogdGlkOiAyN2FmZGNlZiAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz NzQpOiB0aWQ6IDI3YWZkY2VmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NSk6IHRpZDogMjdhZmRjZWYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3Nik6IHRpZDogNDIzYjU1YmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc3KTogdGlkOiA0MjNiNTVi YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzc4KTogdGlkOiA0MjNiNTViYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzc5KTog dGlkOiA0MjNiNTViYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDViNDAw IG5ibG9ja3MgMHg1ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM4 MCk6IHRpZDogNDIzYjU1YmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiA0 MjNiNTViYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzODIpOiB0aWQ6IDQyM2I1NWJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYxICBsb25nZXN0OiAxOTQ5MjI2MQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6IHRpZDogNDIzYjU1YmIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0 aWQ6IDQyM2I1NWJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NSk6IHRpZDogNDIzYjU1YmIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg2 KTogdGlkOiA0MjNiNTViYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODcpOiB0aWQ6IDQyM2I1NWJiICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzODgpOiB0aWQ6IGJjZGI4YTZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OSk6IHRpZDogYmNkYjhhNmUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5MCk6IHRpZDogYmNkYjhhNmUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5MSk6IHRp ZDogYmNkYjhhNmUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1YzgwMCBu YmxvY2tzIDB4NWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzOTIp OiB0aWQ6IGJjZGI4YTZlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogYmNk YjhhNmUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMzk0KTogdGlkOiBiY2RiOGE2ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2MCAgbG9uZ2VzdDogMTk0OTIyNjAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IGJjZGI4YTZlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlk OiBiY2RiOGE2ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6IGJjZGI4YTZlICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5OCk6 IHRpZDogYmNkYjhhNmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk5KTogdGlkOiBiY2RiOGE2ZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDAwKTogdGlkOiBiZjRkMGNiNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDEpOiB0aWQ6IGJmNGQwY2I2ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDIpOiB0aWQ6IGJmNGQwY2I2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDMpOiB0aWQ6 IGJmNGQwY2I2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWRjMDAgbmJs b2NrcyAweDVmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDA0KTog dGlkOiBiZjRkMGNiNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IGJmNGQw Y2I2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQwNik6IHRpZDogYmY0ZDBjYjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTkgIGxvbmdlc3Q6IDE5NDkyMjU5Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlkOiBiZjRkMGNiNiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDog YmY0ZDBjYjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTogdGlkOiBiZjRkMGNiNiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTApOiB0 aWQ6IGJmNGQwY2I2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMSk6IHRpZDogYmY0ZDBjYjYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxMik6IHRpZDogYWM3OTI2Y2EgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEzKTogdGlkOiBhYzc5MjZjYSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDE0KTogdGlkOiBhYzc5MjZjYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDE1KTogdGlkOiBh Yzc5MjZjYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVmMDAwIG5ibG9j a3MgMHg2MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQxNik6IHRp ZDogYWM3OTI2Y2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3KTogdGlkOiBhYzc5MjZj YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0MTgpOiB0aWQ6IGFjNzkyNmNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU3ICBsb25nZXN0OiAxOTQ5MjI1NwotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDogYWM3OTI2Y2EgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IGFj NzkyNmNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRpZDogYWM3OTI2Y2EgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIyKTogdGlk OiBhYzc5MjZjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjMpOiB0aWQ6IGFjNzkyNmNhICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MjQpOiB0aWQ6IDczNGE3NzM3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNSk6IHRpZDogNzM0YTc3MzcgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQyNik6IHRpZDogNzM0YTc3MzcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQyNyk6IHRpZDogNzM0 YTc3MzcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MDQwMCBuYmxvY2tz IDB4NjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MjgpOiB0aWQ6 IDczNGE3NzM3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6IHRpZDogNzM0YTc3Mzcg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNDMwKTogdGlkOiA3MzRhNzczNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NiAgbG9uZ2VzdDogMTk0OTIyNTYKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzEpOiB0aWQ6IDczNGE3NzM3ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiA3MzRh NzczNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6IDczNGE3NzM3ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzNCk6IHRpZDog NzM0YTc3MzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiA3MzRhNzczNyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDM2KTogdGlkOiAyZTMxYjQ3YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6IDJlMzFiNDdhICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MzgpOiB0aWQ6IDJlMzFiNDdhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MzkpOiB0aWQ6IDJlMzFi NDdhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjE4MDAgbmJsb2NrcyAw eDYzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDQwKTogdGlkOiAy ZTMxYjQ3YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0aWQ6IDJlMzFiNDdhICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDQ0Mik6IHRpZDogMmUzMWI0N2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyNTUgIGxvbmdlc3Q6IDE5NDkyMjU1Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiAyZTMxYjQ3YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDogMmUzMWI0 N2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiAyZTMxYjQ3YSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDYpOiB0aWQ6IDJl MzFiNDdhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogMmUzMWI0N2EgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0 OCk6IHRpZDogYjYzODZlOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IGI2Mzg2ZTkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6 IHRpZDogYjYzODZlOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDUxKTogdGlkOiBiNjM4NmU5ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjJjMDAgbmJsb2NrcyAweDY0IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDUyKTogdGlkOiBiNjM4NmU5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Myk6IHRpZDogYjYzODZlOSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTQpOiB0 aWQ6IGI2Mzg2ZTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyNTQgIGxvbmdlc3Q6IDE5NDkyMjU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDU1KTogdGlkOiBiNjM4NmU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU2KTogdGlkOiBiNjM4NmU5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ1Nyk6IHRpZDogYjYzODZlOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTgpOiB0aWQ6IGI2Mzg2ZTkgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDU5KTogdGlkOiBiNjM4NmU5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjApOiB0aWQ6IGFmNzhm NDU3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2MSk6IHRpZDogYWY3OGY0NTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Mik6IHRpZDogYWY3OGY0 NTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ2Myk6IHRpZDogYWY3OGY0NTcgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NDAwMCBuYmxvY2tzIDB4NjYgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0NjQpOiB0aWQ6IGFmNzhmNDU3ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDogYWY3OGY0NTcgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDY2KTogdGlkOiBhZjc4 ZjQ1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI1MiAgbG9uZ2VzdDogMTk0OTIyNTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NjcpOiB0aWQ6IGFmNzhmNDU3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDY4KTogdGlkOiBhZjc4ZjQ1NyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NjkpOiB0aWQ6IGFmNzhmNDU3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3MCk6IHRpZDogYWY3OGY0NTcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDcxKTogdGlkOiBhZjc4ZjQ1NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcyKTogdGlkOiBlY2E0Zjg0 YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NzMpOiB0aWQ6IGVjYTRmODRiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzQpOiB0aWQ6IGVjYTRmODRi ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg0NzUpOiB0aWQ6IGVjYTRmODRiICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjU0MDAgbmJsb2NrcyAweDY3IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDc2KTogdGlkOiBlY2E0Zjg0YiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IGVjYTRmODRiICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ3OCk6IHRpZDogZWNhNGY4 NGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNTEgIGxvbmdlc3Q6IDE5NDkyMjUxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5 KTogdGlkOiBlY2E0Zjg0YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRpZDogZWNhNGY4NGIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDgxKTogdGlkOiBlY2E0Zjg0YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODIpOiB0aWQ6IGVjYTRmODRiICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ4Myk6IHRpZDogZWNhNGY4NGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NCk6IHRpZDogOGRhYzI2ZmMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDg1KTogdGlkOiA4ZGFjMjZmYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg2KTogdGlkOiA4ZGFjMjZmYyAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNDg3KTogdGlkOiA4ZGFjMjZmYyAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDY2ODAwIG5ibG9ja3MgMHg2OCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ4OCk6IHRpZDogOGRhYzI2ZmMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDg5KTogdGlkOiA4ZGFjMjZmYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0OTApOiB0aWQ6IDhkYWMyNmZj ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQUdGIEJ1ZmZlcjog WEFHRiAgT3V0IG9mIHNwYWNlCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246 IDIJCWxzbjogMSw2MTYJdGFpbF9sc246IDEsNDc1Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1 NglwcmV2IG9mZnNldDogNTUyCQludW0gb3BzOiA0ODkKdXVpZDogNzdhOGE4NDUtMDM3Yi00NDY2 LWIyZTktZTMxMzZjMjdiZTY1ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTog MzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA4ZGFjMjZmYyAgbGVuOiA3 MiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9u IGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA4 ZGFjMjZmYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIpOiB0aWQ6IDhkYWMyNmZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6 IDhkYWMyNmZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQpOiB0aWQ6IDhkYWMyNmZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6 IDhkYWMyNmZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlkOiA0ZWU1YmMwZSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA0 ZWU1YmMwZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOCk6IHRpZDogNGVlNWJjMGUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkp OiB0aWQ6IDRlZTViYzBlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Njdj MDAgbmJsb2NrcyAweDY5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MTApOiB0aWQ6IDRlZTViYzBlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiA0 ZWU1YmMwZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxMik6IHRpZDogNGVlNWJjMGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDkgIGxvbmdlc3Q6IDE5NDkyMjQ5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IDRlZTViYzBlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQpOiB0aWQ6 IDRlZTViYzBlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiA0ZWU1YmMwZSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNik6IHRp ZDogNGVlNWJjMGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDRlZTViYzBlICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOCk6IHRpZDogZmVmY2Y3MmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IGZlZmNmNzJhICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MCk6IHRpZDogZmVmY2Y3MmEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxKTogdGlkOiBmZWZjZjcy YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY5MDAwIG5ibG9ja3MgMHg2 YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIyKTogdGlkOiBmZWZj ZjcyYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogZmVmY2Y3MmEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQp OiB0aWQ6IGZlZmNmNzJhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjQ3ICBsb25nZXN0OiAxOTQ5MjI0NwotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI1KTogdGlkOiBmZWZjZjcyYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlkOiBmZWZjZjcyYSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNyk6IHRpZDogZmVmY2Y3MmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgpOiB0aWQ6IGZlZmNmNzJhICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiBmZWZjZjcyYSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDFi MzM1NmJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiAxYjMzNTZiZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0aWQ6IDFiMzM1 NmJkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMyk6IHRpZDogMWIzMzU2YmQgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2YTQwMCBuYmxvY2tzIDB4NmMgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNCk6IHRpZDogMWIzMzU2YmQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IDFiMzM1NmJkICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2KTogdGlkOiAxYjMzNTZi ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI0NiAgbG9uZ2VzdDogMTk0OTIyNDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6 IHRpZDogMWIzMzU2YmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDogMWIzMzU2YmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzkpOiB0aWQ6IDFiMzM1NmJkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQwKTogdGlkOiAxYjMzNTZiZCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MSk6IHRpZDogMWIzMzU2YmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiAyMDAzYjEwNCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Myk6IHRpZDogMjAwM2IxMDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0KTogdGlkOiAyMDAzYjEwNCAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDUpOiB0aWQ6IDIwMDNiMTA0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NmI4MDAgbmJsb2NrcyAweDZkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoNDYpOiB0aWQ6IDIwMDNiMTA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3KTogdGlkOiAyMDAzYjEwNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogMjAwM2IxMDQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDUgIGxvbmdl c3Q6IDE5NDkyMjQ1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDIwMDNiMTA0 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNTApOiB0aWQ6IDIwMDNiMTA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiAyMDAz YjEwNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg1Mik6IHRpZDogMjAwM2IxMDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDIw MDNiMTA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1NCk6IHRpZDogOGRjZDJmOGMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IDhk Y2QyZjhjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1Nik6IHRpZDogOGRjZDJmOGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDU3 KTogdGlkOiA4ZGNkMmY4YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZj YzAwIG5ibG9ja3MgMHg2ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDU4KTogdGlkOiA4ZGNkMmY4YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDog OGRjZDJmOGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNjApOiB0aWQ6IDhkY2QyZjhjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ0ICBsb25nZXN0OiAxOTQ5MjI0NAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiA4ZGNkMmY4YyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYyKTogdGlk OiA4ZGNkMmY4YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogOGRjZDJmOGMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjQpOiB0 aWQ6IDhkY2QyZjhjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiA4ZGNkMmY4YyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjYpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY4 KTogdGlkOiBjMTIxNGZmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2OSk6IHRpZDogYzEyMTRmZiAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZlMDAwIG5ibG9ja3MgMHg3MCBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDcwKTogdGlkOiBjMTIxNGZm ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlkOiBjMTIxNGZmICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDcyKTogdGlk OiBjMTIxNGZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjQyICBsb25nZXN0OiAxOTQ5MjI0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDczKTogdGlkOiBjMTIxNGZmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzQpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzUpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzYpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzcpOiB0aWQ6IGMxMjE0ZmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiA2Zjg3NGI0MyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3OSk6IHRpZDogNmY4NzRiNDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgwKTogdGlkOiA2Zjg3NGI0MyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoODEpOiB0aWQ6IDZmODc0YjQzICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NmY0MDAgbmJsb2NrcyAweDcxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoODIpOiB0aWQ6IDZmODc0YjQzICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDgzKTogdGlkOiA2Zjg3NGI0MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4NCk6IHRpZDogNmY4NzRiNDMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDEgIGxv bmdlc3Q6IDE5NDkyMjQxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDZmODc0 YjQzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoODYpOiB0aWQ6IDZmODc0YjQzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiA2 Zjg3NGI0MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg4OCk6IHRpZDogNmY4NzRiNDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6 IDZmODc0YjQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogMmY4YjBjYzkgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6 IDJmOGIwY2M5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5Mik6IHRpZDogMmY4YjBjYzkgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDkzKTogdGlkOiAyZjhiMGNjOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDcwODAwIG5ibG9ja3MgMHg3MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9w ZXIgKDk0KTogdGlkOiAyZjhiMGNjOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRp ZDogMmY4YjBjYzkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IDJmOGIwY2M5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQwICBsb25nZXN0OiAxOTQ5MjI0 MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiAyZjhiMGNjOSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk4KTog dGlkOiAyZjhiMGNjOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OSk6IHRpZDogMmY4YjBjYzkgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTAw KTogdGlkOiAyZjhiMGNjOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IDJmOGIwY2M5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMDIpOiB0aWQ6IGQwZGU0NjRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMyk6IHRpZDogZDBkZTQ2NGYg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwNCk6IHRpZDogZDBkZTQ2NGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEwNSk6IHRp ZDogZDBkZTQ2NGYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3MWMwMCBu YmxvY2tzIDB4NzMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMDYp OiB0aWQ6IGQwZGU0NjRmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogZDBk ZTQ2NGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTA4KTogdGlkOiBkMGRlNDY0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzOSAgbG9uZ2VzdDogMTk0OTIyMzkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IGQwZGU0NjRmICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEwKTogdGlk OiBkMGRlNDY0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IGQwZGU0NjRmICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMik6 IHRpZDogZDBkZTQ2NGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBkMGRlNDY0ZiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTE0KTogdGlkOiA2MDgwMDAxNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IDYwODAwMDE1ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMTYpOiB0aWQ6IDYwODAwMDE1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTcpOiB0aWQ6 IDYwODAwMDE1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzMwMDAgbmJs b2NrcyAweDc1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTE4KTog dGlkOiA2MDgwMDAxNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IDYwODAw MDE1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDEyMCk6IHRpZDogNjA4MDAwMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzcgIGxvbmdlc3Q6IDE5NDkyMjM3Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiA2MDgwMDAxNSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyMik6IHRpZDog NjA4MDAwMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTogdGlkOiA2MDgwMDAxNSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjQpOiB0 aWQ6IDYwODAwMDE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNSk6IHRpZDogNjA4MDAwMTUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEyNik6IHRpZDogNzQ5YjJhYjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTogdGlkOiA3NDliMmFiMSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTI4KTogdGlkOiA3NDliMmFiMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTI5KTogdGlkOiA3 NDliMmFiMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc0NDAwIG5ibG9j a3MgMHg3NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEzMCk6IHRp ZDogNzQ5YjJhYjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiA3NDliMmFi MSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxMzIpOiB0aWQ6IDc0OWIyYWIxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjM2ICBsb25nZXN0OiAxOTQ5MjIzNgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogNzQ5YjJhYjEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzQpOiB0aWQ6IDc0 OWIyYWIxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRpZDogNzQ5YjJhYjEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM2KTogdGlk OiA3NDliMmFiMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IDc0OWIyYWIxICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMzgpOiB0aWQ6IDFhNTExZWQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogMWE1MTFlZDcgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE0MCk6IHRpZDogMWE1MTFlZDcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0MSk6IHRpZDogMWE1 MTFlZDcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3NTgwMCBuYmxvY2tz IDB4NzcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNDIpOiB0aWQ6 IDFhNTExZWQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogMWE1MTFlZDcg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTQ0KTogdGlkOiAxYTUxMWVkNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzNSAgbG9uZ2VzdDogMTk0OTIyMzUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IDFhNTExZWQ3ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ2KTogdGlkOiAxYTUx MWVkNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6IDFhNTExZWQ3ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0OCk6IHRpZDog MWE1MTFlZDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiAxYTUxMWVkNyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTUwKTogdGlkOiA4MWYwNDc4ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IDgxZjA0NzhkICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NTIpOiB0aWQ6IDgxZjA0NzhkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTMpOiB0aWQ6IDgxZjA0 NzhkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzZjMDAgbmJsb2NrcyAw eDc4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTU0KTogdGlkOiA4 MWYwNDc4ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDgxZjA0NzhkICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE1Nik6IHRpZDogODFmMDQ3OGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyMzQgIGxvbmdlc3Q6IDE5NDkyMjM0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTU3KTogdGlkOiA4MWYwNDc4ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1OCk6IHRpZDogODFmMDQ3 OGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA4MWYwNDc4ZCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjApOiB0aWQ6IDgx ZjA0NzhkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogODFmMDQ3OGQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2 Mik6IHRpZDogZTlkNzA0ZWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTogdGlkOiBlOWQ3MDRlZSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0 KTogdGlkOiBlOWQ3MDRlZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTY1KTogdGlkOiBlOWQ3MDRl ZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc4MDAwIG5ibG9ja3MgMHg3 YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE2Nik6IHRpZDogZTlk NzA0ZWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiBlOWQ3MDRlZSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx NjgpOiB0aWQ6IGU5ZDcwNGVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjMyICBsb25nZXN0OiAxOTQ5MjIzMgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogZTlkNzA0ZWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzApOiB0aWQ6IGU5ZDcwNGVl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogZTlkNzA0ZWUgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcyKTogdGlkOiBlOWQ3 MDRlZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IGU5ZDcwNGVlICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzQp OiB0aWQ6IDNmMDJiYjliICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRpZDogM2YwMmJiOWIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6 IHRpZDogM2YwMmJiOWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3Nyk6IHRpZDogM2YwMmJiOWIg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3OTQwMCBuYmxvY2tzIDB4N2Ig ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNzgpOiB0aWQ6IDNmMDJi YjliICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogM2YwMmJiOWIgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTgw KTogdGlkOiAzZjAyYmI5YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjIzMSAgbG9uZ2VzdDogMTk0OTIyMzEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxODEpOiB0aWQ6IDNmMDJiYjliICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgyKTogdGlkOiAzZjAyYmI5YiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IDNmMDJiYjliICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4NCk6IHRpZDogM2YwMmJi OWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiAzZjAyYmI5YiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTog dGlkOiAzOGZiNDhlZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6IDM4ZmI0OGVmICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODgpOiB0 aWQ6IDM4ZmI0OGVmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxODkpOiB0aWQ6IDM4ZmI0OGVmICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4N2E4MDAgbmJsb2NrcyAweDdjIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTkwKTogdGlkOiAzOGZiNDhl ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDM4ZmI0OGVmICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5Mik6 IHRpZDogMzhmYjQ4ZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyMzAgIGxvbmdlc3Q6IDE5NDkyMjMwCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTkzKTogdGlkOiAzOGZiNDhlZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5NCk6IHRpZDogMzhmYjQ4ZWYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiAzOGZiNDhlZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTYpOiB0aWQ6IDM4ZmI0OGVm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogMzhmYjQ4ZWYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRp ZDogOGYzYTZhZDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiA4ZjNhNmFkMCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAwKTogdGlk OiA4ZjNhNmFkMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjAxKTogdGlkOiA4ZjNhNmFkMCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdiYzAwIG5ibG9ja3MgMHg3ZCBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIwMik6IHRpZDogOGYzYTZhZDAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA4ZjNhNmFkMCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0 aWQ6IDhmM2E2YWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMjI5ICBsb25nZXN0OiAxOTQ5MjIyOQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIwNSk6IHRpZDogOGYzYTZhZDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDYpOiB0aWQ6IDhmM2E2YWQwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogOGYzYTZhZDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA4KTogdGlkOiA4ZjNhNmFkMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDhmM2E2YWQwICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6 IGYyMmFjMzE4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogZjIyYWMzMTggIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMik6IHRpZDog ZjIyYWMzMTggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxMyk6IHRpZDogZjIyYWMzMTggIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ZDAwMCBuYmxvY2tzIDB4N2YgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMTQpOiB0aWQ6IGYyMmFjMzE4ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogZjIyYWMzMTggIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlk OiBmMjJhYzMxOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjIyNyAgbG9uZ2VzdDogMTk0OTIyMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTcpOiB0aWQ6IGYyMmFjMzE4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE4KTogdGlkOiBmMjJhYzMxOCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTkpOiB0aWQ6IGYyMmFjMzE4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMCk6IHRpZDogZjIyYWMzMTggIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiBmMjJhYzMxOCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiAz NDdmODFmMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IDM0N2Y4MWYxICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjQpOiB0aWQ6IDM0 N2Y4MWYxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjUpOiB0aWQ6IDM0N2Y4MWYxICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4N2U0MDAgbmJsb2NrcyAweDgwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjI2KTogdGlkOiAzNDdmODFmMSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IDM0N2Y4MWYxICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyOCk6IHRpZDog MzQ3ZjgxZjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyMjYgIGxvbmdlc3Q6IDE5NDkyMjI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjI5KTogdGlkOiAzNDdmODFmMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6IHRpZDogMzQ3ZjgxZjEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjMxKTogdGlkOiAzNDdmODFmMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzIpOiB0aWQ6IDM0N2Y4MWYxICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogMzQ3ZjgxZjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogMTNi NTg3MDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiAxM2I1ODcwNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM2KTogdGlkOiAxM2I1 ODcwNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjM3KTogdGlkOiAxM2I1ODcwNCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdmODAwIG5ibG9ja3MgMHg4MSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIzOCk6IHRpZDogMTNiNTg3MDQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiAxM2I1ODcwNCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDApOiB0aWQ6IDEz YjU4NzA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjI1ICBsb25nZXN0OiAxOTQ5MjIyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI0MSk6IHRpZDogMTNiNTg3MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDIpOiB0aWQ6IDEzYjU4NzA0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI0Myk6IHRpZDogMTNiNTg3MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ0KTogdGlkOiAxM2I1ODcwNCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDUpOiB0aWQ6IDEzYjU4NzA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDhhM2Jm NjM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogOGEzYmY2MzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OCk6IHRpZDogOGEzYmY2 MzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0OSk6IHRpZDogOGEzYmY2MzQgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4MGMwMCBuYmxvY2tzIDB4ODIgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNTApOiB0aWQ6IDhhM2JmNjM0ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogOGEzYmY2MzQgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjUyKTogdGlkOiA4YTNi ZjYzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjIyNCAgbG9uZ2VzdDogMTk0OTIyMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NTMpOiB0aWQ6IDhhM2JmNjM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU0KTogdGlkOiA4YTNiZjYzNCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNTUpOiB0aWQ6IDhhM2JmNjM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1Nik6IHRpZDogOGEzYmY2MzQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU3KTogdGlkOiA4YTNiZjYzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiBkZDNkZWE5 ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNTkpOiB0aWQ6IGRkM2RlYTlkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjApOiB0aWQ6IGRkM2RlYTlk ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjEpOiB0aWQ6IGRkM2RlYTlkICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODIwMDAgbmJsb2NrcyAweDg0IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjYyKTogdGlkOiBkZDNkZWE5ZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IGRkM2RlYTlkICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2NCk6IHRpZDogZGQzZGVh OWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyMjIgIGxvbmdlc3Q6IDE5NDkyMjIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1 KTogdGlkOiBkZDNkZWE5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nik6IHRpZDogZGQzZGVhOWQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjY3KTogdGlkOiBkZDNkZWE5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjgpOiB0aWQ6IGRkM2RlYTlkICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2OSk6IHRpZDogZGQzZGVhOWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogNmFkNTY5YyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNzEpOiB0aWQ6IDZhZDU2OWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Mik6IHRpZDogNmFkNTY5YyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMjczKTogdGlkOiA2YWQ1NjljICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ODM0MDAgbmJsb2NrcyAweDg1IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMjc0KTogdGlkOiA2YWQ1NjljICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI3NSk6IHRpZDogNmFkNTY5YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0aWQ6IDZhZDU2OWMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjEg IGxvbmdlc3Q6IDE5NDkyMjIxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiA2 YWQ1NjljICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjc4KTogdGlkOiA2YWQ1NjljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRp ZDogNmFkNTY5YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyODApOiB0aWQ6IDZhZDU2OWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTog dGlkOiA2YWQ1NjljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IDI3YTM3NTczICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6 IHRpZDogMjdhMzc1NzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NCk6IHRpZDogMjdhMzc1NzMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDI4NSk6IHRpZDogMjdhMzc1NzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg4NDgwMCBuYmxvY2tzIDB4ODYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgyODYpOiB0aWQ6IDI3YTM3NTczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI4Nyk6IHRpZDogMjdhMzc1NzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlkOiAyN2EzNzU3MyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyMCAgbG9uZ2Vz dDogMTk0OTIyMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IDI3YTM3NTcz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjkwKTogdGlkOiAyN2EzNzU3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTEpOiB0aWQ6IDI3 YTM3NTczICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI5Mik6IHRpZDogMjdhMzc1NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlk OiAyN2EzNzU3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiBiYzAwMmRiZCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0 aWQ6IGJjMDAyZGJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyOTYpOiB0aWQ6IGJjMDAyZGJkICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyOTcpOiB0aWQ6IGJjMDAyZGJkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4ODVjMDAgbmJsb2NrcyAweDg3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMjk4KTogdGlkOiBiYzAwMmRiZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy OTkpOiB0aWQ6IGJjMDAyZGJkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDogYmMwMDJkYmQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMTkgIGxvbmdlc3Q6 IDE5NDkyMjE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiBiYzAwMmRiZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMwMik6IHRpZDogYmMwMDJkYmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAzKTogdGlkOiBiYzAw MmRiZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMDQpOiB0aWQ6IGJjMDAyZGJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDog YmMwMDJkYmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDogMTM5OWQ3NDAgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlk OiAxMzk5ZDc0MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzA4KTogdGlkOiAxMzk5ZDc0MCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzA5KTogdGlkOiAxMzk5ZDc0MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDg3MDAwIG5ibG9ja3MgMHg4OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDMxMCk6IHRpZDogMTM5OWQ3NDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEx KTogdGlkOiAxMzk5ZDc0MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IDEzOTlkNzQwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjE3ICBsb25nZXN0OiAx OTQ5MjIxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogMTM5OWQ3NDAgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMTQpOiB0aWQ6IDEzOTlkNzQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNSk6IHRpZDogMTM5OWQ3 NDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzE2KTogdGlkOiAxMzk5ZDc0MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IDEz OTlkNzQwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IDhmYzQyY2RkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDog OGZjNDJjZGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyMCk6IHRpZDogOGZjNDJjZGQgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDMyMSk6IHRpZDogOGZjNDJjZGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg4ODQwMCBuYmxvY2tzIDB4OGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICgzMjIpOiB0aWQ6IDhmYzQyY2RkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6 IHRpZDogOGZjNDJjZGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiA4ZmM0MmNkZCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxNiAgbG9uZ2VzdDogMTk0 OTIyMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDhmYzQyY2RkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzI2KTogdGlkOiA4ZmM0MmNkZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjcpOiB0aWQ6IDhmYzQyY2Rk ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMyOCk6IHRpZDogOGZjNDJjZGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiA4ZmM0 MmNkZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiAzMDk1NjliICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogMzA5 NTY5YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzMyKTogdGlkOiAzMDk1NjliICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzMp OiB0aWQ6IDMwOTU2OWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4OTgw MCBuYmxvY2tzIDB4OGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgz MzQpOiB0aWQ6IDMwOTU2OWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiAz MDk1NjliICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMzNik6IHRpZDogMzA5NTY5YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxNSAgbG9uZ2VzdDogMTk0OTIyMTUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6IDMwOTU2OWIgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzgpOiB0aWQ6 IDMwOTU2OWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM5KTogdGlkOiAzMDk1NjliICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0MCk6IHRp ZDogMzA5NTY5YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IDMwOTU2OWIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0Mik6IHRpZDogYzY2NDYxMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGM2NjQ2MTAgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0 NCk6IHRpZDogYzY2NDYxMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ1KTogdGlkOiBjNjY0NjEw ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGFjMDAgbmJsb2NrcyAweDhj IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzQ2KTogdGlkOiBjNjY0 NjEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogYzY2NDYxMCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDgp OiB0aWQ6IGM2NjQ2MTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyMTQgIGxvbmdlc3Q6IDE5NDkyMjE0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQ5KTogdGlkOiBjNjY0NjEwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUwKTogdGlkOiBjNjY0NjEwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1MSk6IHRpZDogYzY2NDYxMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTIpOiB0aWQ6IGM2NjQ2MTAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzUzKTogdGlkOiBjNjY0NjEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IGM5 OGI1NDZkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1NSk6IHRpZDogYzk4YjU0NmQgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nik6IHRpZDogYzk4 YjU0NmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM1Nyk6IHRpZDogYzk4YjU0NmQgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4YzAwMCBuYmxvY2tzIDB4OGUgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNTgpOiB0aWQ6IGM5OGI1NDZkICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogYzk4YjU0NmQgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiBj OThiNTQ2ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjIxMiAgbG9uZ2VzdDogMTk0OTIyMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNjEpOiB0aWQ6IGM5OGI1NDZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiBjOThiNTQ2ZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNjMpOiB0aWQ6IGM5OGI1NDZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDogYzk4YjU0NmQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY1KTogdGlkOiBjOThiNTQ2ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlkOiBiNTM5 MjI3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IGI1MzkyMjcwICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjgpOiB0aWQ6IGI1Mzky MjcwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNjkpOiB0aWQ6IGI1MzkyMjcwICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGQ0MDAgbmJsb2NrcyAweDhmIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzcwKTogdGlkOiBiNTM5MjI3MCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IGI1MzkyMjcwICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogYjUz OTIyNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyMTEgIGxvbmdlc3Q6IDE5NDkyMjExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzczKTogdGlkOiBiNTM5MjI3MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3NCk6IHRpZDogYjUzOTIyNzAgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzc1KTogdGlkOiBiNTM5MjI3MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzYpOiB0aWQ6IGI1MzkyMjcwICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3Nyk6IHRpZDogYjUzOTIyNzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDogZmI3ZGJi OGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzc5KTogdGlkOiBmYjdkYmI4ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgwKTogdGlkOiBmYjdkYmI4 ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzgxKTogdGlkOiBmYjdkYmI4ZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhlODAwIG5ibG9ja3MgMHg5MCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM4Mik6IHRpZDogZmI3ZGJiOGQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiBmYjdkYmI4ZCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IGZiN2Ri YjhkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjEwICBsb25nZXN0OiAxOTQ5MjIxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4 NSk6IHRpZDogZmI3ZGJiOGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IGZiN2RiYjhkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM4Nyk6IHRpZDogZmI3ZGJiOGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiBmYjdkYmI4ZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzODkpOiB0aWQ6IGZiN2RiYjhkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IDRkZDBkMGQ1 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM5MSk6IHRpZDogNGRkMGQwZDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Mik6IHRpZDogNGRkMGQwZDUg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Myk6IHRpZDogNGRkMGQwZDUgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4ZmMwMCBuYmxvY2tzIDB4OTEgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzOTQpOiB0aWQ6IDRkZDBkMGQ1ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogNGRkMGQwZDUgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiA0ZGQwZDBk NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjIwOSAgbG9uZ2VzdDogMTk0OTIyMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcp OiB0aWQ6IDRkZDBkMGQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzk4KTogdGlkOiA0ZGQwZDBkNSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzOTkpOiB0aWQ6IDRkZDBkMGQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwMCk6IHRpZDogNGRkMGQwZDUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDAxKTogdGlkOiA0ZGQwZDBkNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiA4OGNlZDI3NiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MDMpOiB0aWQ6IDg4Y2VkMjc2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDQpOiB0aWQ6IDg4Y2VkMjc2ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg0MDUpOiB0aWQ6IDg4Y2VkMjc2ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4OTEwMDAgbmJsb2NrcyAweDkzIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDA2KTogdGlkOiA4OGNlZDI3NiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IDg4Y2VkMjc2ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogODhjZWQyNzYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyMDcgIGxvbmdlc3Q6IDE5NDkyMjA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTog dGlkOiA4OGNlZDI3NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQxMCk6IHRpZDogODhjZWQyNzYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDExKTogdGlkOiA4OGNlZDI3NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTIpOiB0aWQ6IDg4Y2VkMjc2ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxMyk6IHRpZDogODhjZWQyNzYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogYzcyMGViYTQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDE1KTogdGlkOiBjNzIwZWJhNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE2KTogdGlkOiBjNzIwZWJhNCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDE3KTogdGlkOiBjNzIwZWJhNCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDkyNDAwIG5ibG9ja3MgMHg5NCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQxOCk6IHRpZDogYzcyMGViYTQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDE5KTogdGlkOiBjNzIwZWJhNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IGM3MjBlYmE0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjA2ICBsb25nZXN0OiAxOTQ5MjIwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRp ZDogYzcyMGViYTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MjIpOiB0aWQ6IGM3MjBlYmE0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQy Myk6IHRpZDogYzcyMGViYTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDI0KTogdGlkOiBjNzIwZWJhNCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MjUpOiB0aWQ6IGM3MjBlYmE0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IGY5NWEwOWMwICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQyNyk6IHRpZDogZjk1YTA5YzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOCk6IHRpZDogZjk1YTA5YzAgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQyOSk6IHRpZDogZjk1YTA5YzAgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg5MzgwMCBuYmxvY2tzIDB4OTUgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICg0MzApOiB0aWQ6IGY5NWEwOWMwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQzMSk6IHRpZDogZjk1YTA5YzAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiBmOTVhMDljMCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIw NSAgbG9uZ2VzdDogMTk0OTIyMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6 IGY5NWEwOWMwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDM0KTogdGlkOiBmOTVhMDljMCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzUp OiB0aWQ6IGY5NWEwOWMwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQzNik6IHRpZDogZjk1YTA5YzAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDM3KTogdGlkOiBmOTVhMDljMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlkOiAyZjA1ZGY1ZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MzkpOiB0aWQ6IDJmMDVkZjVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDApOiB0aWQ6IDJmMDVkZjVmICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0NDEpOiB0aWQ6IDJmMDVkZjVmICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4OTRjMDAgbmJsb2NrcyAweDk2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoNDQyKTogdGlkOiAyZjA1ZGY1ZiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NDMpOiB0aWQ6IDJmMDVkZjVmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDogMmYwNWRmNWYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDQg IGxvbmdlc3Q6IDE5NDkyMjA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiAy ZjA1ZGY1ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ0Nik6IHRpZDogMmYwNWRmNWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3KTog dGlkOiAyZjA1ZGY1ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NDgpOiB0aWQ6IDJmMDVkZjVmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0 OSk6IHRpZDogMmYwNWRmNWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogNzNhNzE1ZTAgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDUxKTogdGlkOiA3M2E3MTVlMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiA3M2E3MTVlMCAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDUzKTogdGlkOiA3M2E3MTVlMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDk2MDAwIG5ibG9ja3MgMHg5OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDQ1NCk6IHRpZDogNzNhNzE1ZTAgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDU1KTogdGlkOiA3M2E3MTVlMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTYpOiB0aWQ6IDczYTcxNWUwICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjAyICBs b25nZXN0OiAxOTQ5MjIwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDogNzNh NzE1ZTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0NTgpOiB0aWQ6IDczYTcxNWUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6IHRp ZDogNzNhNzE1ZTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDYwKTogdGlkOiA3M2E3MTVlMCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEp OiB0aWQ6IDczYTcxNWUwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IGM5ZmQ3OTBkICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2 Myk6IHRpZDogYzlmZDc5MGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRpZDogYzlmZDc5MGQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ2NSk6IHRpZDogYzlmZDc5MGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg5NzQwMCBuYmxvY2tzIDB4OTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICg0NjYpOiB0aWQ6IGM5ZmQ3OTBkICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2Nyk6IHRpZDogYzlmZDc5MGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDY4KTogdGlkOiBjOWZkNzkwZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMSAgbG9u Z2VzdDogMTk0OTIyMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IGM5ZmQ3 OTBkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDcwKTogdGlkOiBjOWZkNzkwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6 IGM5ZmQ3OTBkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ3Mik6IHRpZDogYzlmZDc5MGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDczKTog dGlkOiBjOWZkNzkwZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiAzMTExYmRkYyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzUp OiB0aWQ6IDMxMTFiZGRjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6IDMxMTFiZGRjICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0NzcpOiB0aWQ6IDMxMTFiZGRjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4OTg4MDAgbmJsb2NrcyAweDlhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoNDc4KTogdGlkOiAzMTExYmRkYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NzkpOiB0aWQ6IDMxMTFiZGRjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRpZDogMzExMWJkZGMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDAgIGxvbmdl c3Q6IDE5NDkyMjAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiAzMTExYmRk YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ4Mik6IHRpZDogMzExMWJkZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTogdGlkOiAz MTExYmRkYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0ODQpOiB0aWQ6IDMxMTFiZGRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRp ZDogMzExMWJkZGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogYWVhNTMyNCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0 aWQ6IGFlYTUzMjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ4OCk6IHRpZDogYWVhNTMyNCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDY4MAl0YWlsX2xz bjogMSw0NzUKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA2MTYJCW51 bSBvcHM6IDQ4OAp1dWlkOiA3N2E4YTg0NS0wMzdiLTQ0NjYtYjJlOS1lMzEzNmMyN2JlNjUgICBm b3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDApOiB0aWQ6IGFlYTUzMjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMSk6IHRpZDogYWVhNTMyNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiBhZWE1MzI0ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMpOiB0aWQ6IGFlYTUzMjQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxOTkgIGxvbmdlc3Q6IDE5NDkyMTk5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRp ZDogYWVhNTMyNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDUpOiB0aWQ6IGFlYTUzMjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNik6IHRp ZDogYWVhNTMyNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg3KTogdGlkOiBhZWE1MzI0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgpOiB0aWQ6 IGFlYTUzMjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDkpOiB0aWQ6IGY3YmRjMDE2ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwKTogdGlkOiBm N2JkYzAxNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IGY3YmRjMDE2ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx Mik6IHRpZDogZjdiZGMwMTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5 YjAwMCBuYmxvY2tzIDB4OWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICgxMyk6IHRpZDogZjdiZGMwMTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQpOiB0aWQ6 IGY3YmRjMDE2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE1KTogdGlkOiBmN2JkYzAxNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5NyAgbG9uZ2VzdDogMTk0OTIxOTcK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogZjdiZGMwMTYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNyk6IHRp ZDogZjdiZGMwMTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0aWQ6IGY3YmRjMDE2ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5KTog dGlkOiBmN2JkYzAxNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMCk6IHRpZDogZjdiZGMwMTYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIxKTogdGlkOiBmZWYwMmU1NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMik6IHRpZDogZmVmMDJlNTQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzKTogdGlkOiBmZWYwMmU1NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQpOiB0aWQ6IGZlZjAy ZTU0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWM0MDAgbmJsb2NrcyAw eDllIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjUpOiB0aWQ6IGZl ZjAyZTU0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2KTogdGlkOiBmZWYwMmU1NCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy Nyk6IHRpZDogZmVmMDJlNTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxOTYgIGxvbmdlc3Q6IDE5NDkyMTk2Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjgpOiB0aWQ6IGZlZjAyZTU0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkpOiB0aWQ6IGZlZjAyZTU0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiBmZWYwMmU1NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMSk6IHRpZDogZmVmMDJlNTQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0aWQ6IGZlZjAyZTU0ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDog YmM3YTE0NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzQpOiB0aWQ6IGJjN2ExNDRjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDogYmM3 YTE0NGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2KTogdGlkOiBiYzdhMTQ0YyAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDlkODAwIG5ibG9ja3MgMHg5ZiBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM3KTogdGlkOiBiYzdhMTQ0YyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzOCk6IHRpZDogYmM3YTE0NGMgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzkpOiB0aWQ6IGJjN2Ex NDRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTk1ICBsb25nZXN0OiAxOTQ5MjE5NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQw KTogdGlkOiBiYzdhMTQ0YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQxKTogdGlkOiBiYzdhMTQ0YyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Mik6IHRpZDogYmM3YTE0NGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDMpOiB0aWQ6IGJjN2ExNDRjICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0KTogdGlkOiBiYzdhMTQ0YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IGQ5NTJkYWU4ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2KTogdGlkOiBkOTUyZGFlOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IGQ5NTJkYWU4ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0OCk6IHRpZDogZDk1MmRhZTggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg5ZWMwMCBuYmxvY2tzIDB4YTAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICg0OSk6IHRpZDogZDk1MmRhZTggIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTApOiB0aWQ6IGQ5NTJkYWU4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDUxKTogdGlkOiBkOTUyZGFlOCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5NCAgbG9u Z2VzdDogMTk0OTIxOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Mik6IHRpZDogZDk1MmRh ZTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg1Myk6IHRpZDogZDk1MmRhZTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQpOiB0aWQ6IGQ5 NTJkYWU4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDU1KTogdGlkOiBkOTUyZGFlOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDog ZDk1MmRhZTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlkOiBkODhjMzNiMSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OCk6IHRpZDog ZDg4YzMzYjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiBkODhjMzNiMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NjApOiB0aWQ6IGQ4OGMzM2IxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YTAwMDAgbmJsb2NrcyAweGEyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoNjEpOiB0aWQ6IGQ4OGMzM2IxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYyKTogdGlk OiBkODhjMzNiMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg2Myk6IHRpZDogZDg4YzMzYjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTIgIGxvbmdlc3Q6IDE5NDkyMTky Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6IGQ4OGMzM2IxICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjUpOiB0 aWQ6IGQ4OGMzM2IxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlkOiBkODhjMzNiMSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2Nyk6 IHRpZDogZDg4YzMzYjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6IGQ4OGMzM2IxICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg2OSk6IHRpZDogMmU4YTQ5NjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzApOiB0aWQ6IDJlOGE0OTY2ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3MSk6IHRpZDogMmU4YTQ5NjYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDcyKTogdGlkOiAyZThh NDk2NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGExNDAwIG5ibG9ja3Mg MHhhMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDczKTogdGlkOiAy ZThhNDk2NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NCk6IHRpZDogMmU4YTQ5NjYgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NzUpOiB0aWQ6IDJlOGE0OTY2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTkxICBsb25nZXN0OiAxOTQ5MjE5MQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDc2KTogdGlkOiAyZThhNDk2NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc3KTogdGlkOiAyZThhNDk2NiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3OCk6IHRpZDogMmU4YTQ5NjYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzkpOiB0aWQ6IDJlOGE0OTY2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDgwKTogdGlkOiAyZThhNDk2NiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6 IGU4Y2IxYWM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDgyKTogdGlkOiBlOGNiMWFjOCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IGU4 Y2IxYWM4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4NCk6IHRpZDogZThjYjFhYzggIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMjgwMCBuYmxvY2tzIDB4YTQgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg4NSk6IHRpZDogZThjYjFhYzggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IGU4Y2IxYWM4ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDg3KTogdGlkOiBlOGNi MWFjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjE5MCAgbG9uZ2VzdDogMTk0OTIxOTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 OCk6IHRpZDogZThjYjFhYzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OSk6IHRpZDogZThjYjFhYzggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTApOiB0aWQ6IGU4Y2IxYWM4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkxKTogdGlkOiBlOGNiMWFjOCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg5Mik6IHRpZDogZThjYjFhYzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiBhNzVlMjAwOCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg5NCk6IHRpZDogYTc1ZTIwMDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiBhNzVlMjAwOCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoOTYpOiB0aWQ6IGE3NWUyMDA4ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4YTNjMDAgbmJsb2NrcyAweGE1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoOTcpOiB0aWQ6IGE3NWUyMDA4ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDk4KTogdGlkOiBhNzVlMjAwOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5OSk6IHRpZDogYTc1ZTIwMDggIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODkgIGxv bmdlc3Q6IDE5NDkyMTg5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAwKTogdGlkOiBhNzVl MjAwOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEwMSk6IHRpZDogYTc1ZTIwMDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlk OiBhNzVlMjAwOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMDMpOiB0aWQ6IGE3NWUyMDA4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNCk6 IHRpZDogYTc1ZTIwMDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogY2ZlMzU3NTUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA2 KTogdGlkOiBjZmUzNTc1NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiBjZmUzNTc1NSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTA4KTogdGlkOiBjZmUzNTc1NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGE1MDAwIG5ibG9ja3MgMHhhNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDEwOSk6IHRpZDogY2ZlMzU3NTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTEwKTogdGlkOiBjZmUzNTc1NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTEpOiB0aWQ6IGNmZTM1NzU1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg3ICBsb25n ZXN0OiAxOTQ5MjE4NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMik6IHRpZDogY2ZlMzU3 NTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMTMpOiB0aWQ6IGNmZTM1NzU1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNCk6IHRpZDog Y2ZlMzU3NTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTE1KTogdGlkOiBjZmUzNTc1NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTYpOiB0 aWQ6IGNmZTM1NzU1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDY5NjIxNGVjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExOCk6 IHRpZDogNjk2MjE0ZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogNjk2MjE0ZWMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEyMCk6IHRpZDogNjk2MjE0ZWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhhNjQwMCBuYmxvY2tzIDB4YTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgxMjEpOiB0aWQ6IDY5NjIxNGVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEyMik6IHRpZDogNjk2MjE0ZWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTIzKTogdGlkOiA2OTYyMTRlYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NiAgbG9uZ2Vz dDogMTk0OTIxODYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0aWQ6IDY5NjIxNGVj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTI1KTogdGlkOiA2OTYyMTRlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjYpOiB0aWQ6IDY5 NjIxNGVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEyNyk6IHRpZDogNjk2MjE0ZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI4KTogdGlk OiA2OTYyMTRlYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiBjMGU4NDQ0YyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzApOiB0 aWQ6IGMwZTg0NDRjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IGMwZTg0NDRjICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxMzIpOiB0aWQ6IGMwZTg0NDRjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YTc4MDAgbmJsb2NrcyAweGE5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMTMzKTogdGlkOiBjMGU4NDQ0YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MzQpOiB0aWQ6IGMwZTg0NDRjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEzNSk6IHRpZDogYzBlODQ0NGMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODUgIGxvbmdlc3Q6 IDE5NDkyMTg1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM2KTogdGlkOiBjMGU4NDQ0YyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEzNyk6IHRpZDogYzBlODQ0NGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTogdGlkOiBjMGU4 NDQ0YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMzkpOiB0aWQ6IGMwZTg0NDRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MCk6IHRpZDog YzBlODQ0NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogNDFhOGQyN2EgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQyKTogdGlk OiA0MWE4ZDI3YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiA0MWE4ZDI3YSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTQ0KTogdGlkOiA0MWE4ZDI3YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGE4YzAwIG5ibG9ja3MgMHhhYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDE0NSk6IHRpZDogNDFhOGQyN2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ2 KTogdGlkOiA0MWE4ZDI3YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxNDcpOiB0aWQ6IDQxYThkMjdhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg0ICBsb25nZXN0OiAx OTQ5MjE4NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRpZDogNDFhOGQyN2EgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNDkpOiB0aWQ6IDQxYThkMjdhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MCk6IHRpZDogNDFhOGQy N2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTUxKTogdGlkOiA0MWE4ZDI3YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTIpOiB0aWQ6IDQx YThkMjdhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDQzYTIzNWQxICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1NCk6IHRpZDog NDNhMjM1ZDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE1NSk6IHRpZDogNDNhMjM1ZDEgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDE1Nik6IHRpZDogNDNhMjM1ZDEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhhYTAwMCBuYmxvY2tzIDB4YWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICgxNTcpOiB0aWQ6IDQzYTIzNWQxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OCk6 IHRpZDogNDNhMjM1ZDEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTU5KTogdGlkOiA0M2EyMzVkMSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4MiAgbG9uZ2VzdDogMTk0 OTIxODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IDQzYTIzNWQxICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTYxKTogdGlkOiA0M2EyMzVkMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjIpOiB0aWQ6IDQzYTIzNWQx ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE2Myk6IHRpZDogNDNhMjM1ZDEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0KTogdGlkOiA0M2Ey MzVkMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTY1KTogdGlkOiAyM2E2MTE4MCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjYpOiB0aWQ6IDIz YTYxMTgwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IDIzYTYxMTgwICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx NjgpOiB0aWQ6IDIzYTYxMTgwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YWI0MDAgbmJsb2NrcyAweGFkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoMTY5KTogdGlkOiAyM2E2MTE4MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzApOiB0 aWQ6IDIzYTYxMTgwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDE3MSk6IHRpZDogMjNhNjExODAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODEgIGxvbmdlc3Q6IDE5NDky MTgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcyKTogdGlkOiAyM2E2MTE4MCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3 Myk6IHRpZDogMjNhNjExODAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc0KTogdGlkOiAyM2E2MTE4MCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNzUpOiB0aWQ6IDIzYTYxMTgwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRpZDogMjNhNjEx ODAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE3Nyk6IHRpZDogZjc1ZGEzNGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc4KTogdGlkOiBmNzVk YTM0YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTc5KTogdGlkOiBmNzVkYTM0YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTgw KTogdGlkOiBmNzVkYTM0YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFj ODAwIG5ibG9ja3MgMHhhZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDE4MSk6IHRpZDogZjc1ZGEzNGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgyKTogdGlk OiBmNzVkYTM0YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxODMpOiB0aWQ6IGY3NWRhMzRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTgwICBsb25nZXN0OiAxOTQ5MjE4 MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogZjc1ZGEzNGMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODUp OiB0aWQ6IGY3NWRhMzRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nik6IHRpZDogZjc1ZGEzNGMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTg3KTogdGlkOiBmNzVkYTM0YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODgpOiB0aWQ6IGY3NWRhMzRj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxODkpOiB0aWQ6IGQyNjQ1OTU0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MCk6IHRpZDogZDI2NDU5 NTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE5MSk6IHRpZDogZDI2NDU5NTQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5Mik6 IHRpZDogZDI2NDU5NTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhZGMw MCBuYmxvY2tzIDB4YWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgx OTMpOiB0aWQ6IGQyNjQ1OTU0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NCk6IHRpZDog ZDI2NDU5NTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTk1KTogdGlkOiBkMjY0NTk1NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3OSAgbG9uZ2VzdDogMTk0OTIxNzkK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IGQyNjQ1OTU0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk3KTog dGlkOiBkMjY0NTk1NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTgpOiB0aWQ6IGQyNjQ1OTU0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5 OSk6IHRpZDogZDI2NDU5NTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAwKTogdGlkOiBkMjY0NTk1NCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjAxKTogdGlkOiA1NjlkYmIyZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDIpOiB0aWQ6IDU2OWRiYjJk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMDMpOiB0aWQ6IDU2OWRiYjJkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDQpOiB0 aWQ6IDU2OWRiYjJkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWYwMDAg bmJsb2NrcyAweGIxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjA1 KTogdGlkOiA1NjlkYmIyZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDYpOiB0aWQ6IDU2 OWRiYjJkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDIwNyk6IHRpZDogNTY5ZGJiMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzcgIGxvbmdlc3Q6IDE5NDkyMTc3Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiA1NjlkYmIyZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwOSk6IHRp ZDogNTY5ZGJiMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEwKTogdGlkOiA1NjlkYmIyZCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTEp OiB0aWQ6IDU2OWRiYjJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMik6IHRpZDogNTY5ZGJiMmQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIxMyk6IHRpZDogZmMxOTA5ODQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE0KTogdGlkOiBmYzE5MDk4NCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjE1KTogdGlkOiBmYzE5MDk4NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjE2KTogdGlk OiBmYzE5MDk4NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGIwNDAwIG5i bG9ja3MgMHhiMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIxNyk6 IHRpZDogZmMxOTA5ODQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiBmYzE5 MDk4NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyMTkpOiB0aWQ6IGZjMTkwOTg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc2ICBsb25nZXN0OiAxOTQ5MjE3NgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogZmMxOTA5ODQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjEpOiB0aWQ6 IGZjMTkwOTg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6IHRpZDogZmMxOTA5ODQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIzKTog dGlkOiBmYzE5MDk4NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjQpOiB0aWQ6IGZjMTkwOTg0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMjUpOiB0aWQ6IDY5NTBjNTg3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNik6IHRpZDogNjk1MGM1ODcgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIyNyk6IHRpZDogNjk1MGM1ODcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyOCk6IHRpZDog Njk1MGM1ODcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMTgwMCBuYmxv Y2tzIDB4YjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMjkpOiB0 aWQ6IDY5NTBjNTg3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogNjk1MGM1 ODcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMjMxKTogdGlkOiA2OTUwYzU4NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NSAgbG9uZ2VzdDogMTk0OTIxNzUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDY5NTBjNTg3ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMzKTogdGlkOiA2 OTUwYzU4NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0aWQ6IDY5NTBjNTg3ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzNSk6IHRp ZDogNjk1MGM1ODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM2KTogdGlkOiA2OTUwYzU4NyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjM3KTogdGlkOiAxMDYzNjQ0NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzgpOiB0aWQ6IDEwNjM2NDQ3ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMzkpOiB0aWQ6IDEwNjM2NDQ3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDApOiB0aWQ6IDEw NjM2NDQ3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjJjMDAgbmJsb2Nr cyAweGI0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjQxKTogdGlk OiAxMDYzNjQ0NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IDEwNjM2NDQ3 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDI0Myk6IHRpZDogMTA2MzY0NDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzQgIGxvbmdlc3Q6IDE5NDkyMTc0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiAxMDYzNjQ0NyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0NSk6IHRpZDogMTA2 MzY0NDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlkOiAxMDYzNjQ0NyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDcpOiB0aWQ6 IDEwNjM2NDQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OCk6IHRpZDogMTA2MzY0NDcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI0OSk6IHRpZDogYzMwNTQzNzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUwKTogdGlkOiBjMzA1NDM3OSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjUxKTogdGlkOiBjMzA1NDM3OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjUyKTogdGlkOiBjMzA1 NDM3OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI0MDAwIG5ibG9ja3Mg MHhiNiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI1Myk6IHRpZDog YzMwNTQzNzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiBjMzA1NDM3OSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyNTUpOiB0aWQ6IGMzMDU0Mzc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTcyICBsb25nZXN0OiAxOTQ5MjE3MgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI1Nik6IHRpZDogYzMwNTQzNzkgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTcpOiB0aWQ6IGMzMDU0 Mzc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDogYzMwNTQzNzkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU5KTogdGlkOiBj MzA1NDM3OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjApOiB0aWQ6IGMzMDU0Mzc5ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NjEpOiB0aWQ6IDRhZDQ1YzJlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Mik6IHRpZDogNGFkNDVjMmUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2 Myk6IHRpZDogNGFkNDVjMmUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2NCk6IHRpZDogNGFkNDVj MmUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiNTQwMCBuYmxvY2tzIDB4 YjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNjUpOiB0aWQ6IDRh ZDQ1YzJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogNGFkNDVjMmUgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MjY3KTogdGlkOiA0YWQ0NWMyZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3MSAgbG9uZ2VzdDogMTk0OTIxNzEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNjgpOiB0aWQ6IDRhZDQ1YzJlICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY5KTogdGlkOiA0YWQ0NWMy ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IDRhZDQ1YzJlICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3MSk6IHRpZDogNGFk NDVjMmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcyKTogdGlkOiA0YWQ0NWMyZSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcz KTogdGlkOiBmNjlkZThmOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzQpOiB0aWQ6IGY2OWRlOGY5ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUp OiB0aWQ6IGY2OWRlOGY5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzYpOiB0aWQ6IGY2OWRlOGY5 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjY4MDAgbmJsb2NrcyAweGI4 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjc3KTogdGlkOiBmNjlk ZThmOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IGY2OWRlOGY5ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI3 OSk6IHRpZDogZjY5ZGU4ZjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxNzAgIGxvbmdlc3Q6IDE5NDkyMTcwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjgwKTogdGlkOiBmNjlkZThmOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4MSk6IHRpZDogZjY5ZGU4Zjkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiBmNjlkZThmOSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODMpOiB0aWQ6IGY2OWRl OGY5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NCk6IHRpZDogZjY5ZGU4ZjkgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6 IHRpZDogYjcyOTIwYWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg2KTogdGlkOiBiNzI5MjBhZCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTog dGlkOiBiNzI5MjBhZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjg4KTogdGlkOiBiNzI5MjBhZCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI3YzAwIG5ibG9ja3MgMHhiOSBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI4OSk6IHRpZDogYjcyOTIw YWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiBiNzI5MjBhZCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTEp OiB0aWQ6IGI3MjkyMGFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTY5ICBsb25nZXN0OiAxOTQ5MjE2OQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI5Mik6IHRpZDogYjcyOTIwYWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTMpOiB0aWQ6IGI3MjkyMGFkICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI5NCk6IHRpZDogYjcyOTIwYWQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk1KTogdGlkOiBiNzI5MjBh ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyOTYpOiB0aWQ6IGI3MjkyMGFkICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0 aWQ6IDk3ZDY2NDRkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OCk6IHRpZDogOTdkNjY0NGQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRp ZDogOTdkNjY0NGQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwMCk6IHRpZDogOTdkNjY0NGQgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiOTAwMCBuYmxvY2tzIDB4YmIgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMDEpOiB0aWQ6IDk3ZDY2NDRk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogOTdkNjY0NGQgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzAzKTog dGlkOiA5N2Q2NjQ0ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE2NyAgbG9uZ2VzdDogMTk0OTIxNjcKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMDQpOiB0aWQ6IDk3ZDY2NDRkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA1KTogdGlkOiA5N2Q2NjQ0ZCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMDYpOiB0aWQ6IDk3ZDY2NDRkICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwNyk6IHRpZDogOTdkNjY0NGQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzA4KTogdGlkOiA5N2Q2NjQ0ZCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA5KTogdGlk OiA4M2EzZTMzMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTApOiB0aWQ6IDgzYTNlMzMyICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6 IDgzYTNlMzMyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMTIpOiB0aWQ6IDgzYTNlMzMyICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmE0MDAgbmJsb2NrcyAweGJjIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzEzKTogdGlkOiA4M2EzZTMzMiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IDgzYTNlMzMyICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxNSk6IHRp ZDogODNhM2UzMzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxNjYgIGxvbmdlc3Q6IDE5NDkyMTY2Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzE2KTogdGlkOiA4M2EzZTMzMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNyk6IHRpZDogODNhM2UzMzIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzE4KTogdGlkOiA4M2EzZTMzMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTkpOiB0aWQ6IDgzYTNlMzMyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyMCk6IHRpZDogODNhM2UzMzIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMSk6IHRpZDog ZTIwZjVkOTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzIyKTogdGlkOiBlMjBmNWQ5MiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiBl MjBmNWQ5MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzI0KTogdGlkOiBlMjBmNWQ5MiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJiODAwIG5ibG9ja3MgMHhiZCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDMyNSk6IHRpZDogZTIwZjVkOTIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlkOiBlMjBmNWQ5MiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjcpOiB0aWQ6 IGUyMGY1ZDkyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTY1ICBsb25nZXN0OiAxOTQ5MjE2NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMyOCk6IHRpZDogZTIwZjVkOTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjkpOiB0aWQ6IGUyMGY1ZDkyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzMCk6IHRpZDogZTIwZjVkOTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzMxKTogdGlkOiBlMjBmNWQ5MiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMzIpOiB0aWQ6IGUyMGY1ZDkyICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMpOiB0aWQ6IDY1 OGNkNzMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMzNCk6IHRpZDogNjU4Y2Q3MzIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogNjU4 Y2Q3MzIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMzNik6IHRpZDogNjU4Y2Q3MzIgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiY2MwMCBuYmxvY2tzIDB4YmUgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMzcpOiB0aWQ6IDY1OGNkNzMyICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDogNjU4Y2Q3MzIgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM5KTogdGlkOiA2 NThjZDczMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjE2NCAgbG9uZ2VzdDogMTk0OTIxNjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNDApOiB0aWQ6IDY1OGNkNzMyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQxKTogdGlkOiA2NThjZDczMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNDIpOiB0aWQ6IDY1OGNkNzMyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Myk6IHRpZDogNjU4Y2Q3MzIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzQ0KTogdGlkOiA2NThjZDczMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ1KTogdGlkOiBjNWI1 MmQwOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNDYpOiB0aWQ6IGM1YjUyZDA5ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0aWQ6IGM1YjUy ZDA5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDgpOiB0aWQ6IGM1YjUyZDA5ICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmUwMDAgbmJsb2NrcyAweGMwIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzQ5KTogdGlkOiBjNWI1MmQwOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTApOiB0aWQ6IGM1YjUyZDA5ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1MSk6IHRpZDogYzVi NTJkMDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIxNjIgIGxvbmdlc3Q6IDE5NDkyMTYyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzUyKTogdGlkOiBjNWI1MmQwOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1Myk6IHRpZDogYzViNTJkMDkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzU0KTogdGlkOiBjNWI1MmQwOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTUpOiB0aWQ6IGM1YjUyZDA5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM1Nik6IHRpZDogYzViNTJkMDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nyk6IHRpZDogMWUzYzI1 OTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzU4KTogdGlkOiAxZTNjMjU5MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiAxZTNjMjU5 MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzYwKTogdGlkOiAxZTNjMjU5MCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJmNDAwIG5ibG9ja3MgMHhjMSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM2MSk6IHRpZDogMWUzYzI1OTAgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzYyKTogdGlkOiAxZTNjMjU5MCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjMpOiB0aWQ6IDFlM2My NTkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTYxICBsb25nZXN0OiAxOTQ5MjE2MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2 NCk6IHRpZDogMWUzYzI1OTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjUpOiB0aWQ6IDFlM2MyNTkwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM2Nik6IHRpZDogMWUzYzI1OTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY3KTogdGlkOiAxZTNjMjU5MCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNjgpOiB0aWQ6IDFlM2MyNTkwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjkpOiB0aWQ6IDU5MmFiMWI3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3MCk6IHRpZDogNTkyYWIxYjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogNTkyYWIxYjcg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM3Mik6IHRpZDogNTkyYWIxYjcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjMDgwMCBuYmxvY2tzIDB4YzIgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNzMpOiB0aWQ6IDU5MmFiMWI3ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3NCk6IHRpZDogNTkyYWIxYjcgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzc1KTogdGlkOiA1OTJhYjFi NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjE2MCAgbG9uZ2VzdDogMTk0OTIxNjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYp OiB0aWQ6IDU5MmFiMWI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzc3KTogdGlkOiA1OTJhYjFiNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNzgpOiB0aWQ6IDU5MmFiMWI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3OSk6IHRpZDogNTkyYWIxYjcgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzgwKTogdGlkOiA1OTJhYjFiNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiAyNzdmM2E2MCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzODIpOiB0aWQ6IDI3N2YzYTYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IDI3N2YzYTYwICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgzODQpOiB0aWQ6IDI3N2YzYTYwICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4YzFjMDAgbmJsb2NrcyAweGMzIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzg1KTogdGlkOiAyNzdmM2E2MCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzODYpOiB0aWQ6IDI3N2YzYTYwICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4Nyk6IHRpZDogMjc3ZjNhNjAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxNTkgIGxvbmdlc3Q6IDE5NDkyMTU5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTog dGlkOiAyNzdmM2E2MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDM4OSk6IHRpZDogMjc3ZjNhNjAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzkwKTogdGlkOiAyNzdmM2E2MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTEpOiB0aWQ6IDI3N2YzYTYwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM5Mik6IHRpZDogMjc3ZjNhNjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogMmFmZTY0YTAgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzk0KTogdGlkOiAyYWZlNjRhMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiAyYWZlNjRhMCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMzk2KTogdGlkOiAyYWZlNjRhMCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGMzMDAwIG5ibG9ja3MgMHhjNSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM5Nyk6IHRpZDogMmFmZTY0YTAgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzk4KTogdGlkOiAyYWZlNjRhMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTkpOiB0aWQ6IDJhZmU2NGEwICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTU3ICBsb25nZXN0OiAxOTQ5MjE1NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRp ZDogMmFmZTY0YTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MDEpOiB0aWQ6IDJhZmU2NGEwICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQw Mik6IHRpZDogMmFmZTY0YTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDAzKTogdGlkOiAyYWZlNjRhMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MDQpOiB0aWQ6IDJhZmU2NGEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IDFhMTBhZmU1ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQwNik6IHRpZDogMWExMGFmZTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogMWExMGFmZTUgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQwOCk6IHRpZDogMWExMGFmZTUgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHhjNDQwMCBuYmxvY2tzIDB4YzYgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICg0MDkpOiB0aWQ6IDFhMTBhZmU1ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQxMCk6IHRpZDogMWExMGFmZTUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDExKTogdGlkOiAxYTEwYWZlNSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1 NiAgbG9uZ2VzdDogMTk0OTIxNTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6 IDFhMTBhZmU1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDEzKTogdGlkOiAxYTEwYWZlNSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTQp OiB0aWQ6IDFhMTBhZmU1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQxNSk6IHRpZDogMWExMGFmZTUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDE2KTogdGlkOiAxYTEwYWZlNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3KTogdGlkOiAzMDMwMmExNCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MTgpOiB0aWQ6IDMwMzAyYTE0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IDMwMzAyYTE0ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0MjApOiB0aWQ6IDMwMzAyYTE0ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4YzU4MDAgbmJsb2NrcyAweGM3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoNDIxKTogdGlkOiAzMDMwMmExNCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MjIpOiB0aWQ6IDMwMzAyYTE0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyMyk6IHRpZDogMzAzMDJhMTQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTUg IGxvbmdlc3Q6IDE5NDkyMTU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiAz MDMwMmExNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQyNSk6IHRpZDogMzAzMDJhMTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI2KTog dGlkOiAzMDMwMmExNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MjcpOiB0aWQ6IDMwMzAyYTE0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQy OCk6IHRpZDogMzAzMDJhMTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6IHRpZDogNjA4NjVhMjcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDMwKTogdGlkOiA2MDg2NWEyNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiA2MDg2NWEyNyAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDMyKTogdGlkOiA2MDg2NWEyNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGM2YzAwIG5ibG9ja3MgMHhjOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDQzMyk6IHRpZDogNjA4NjVhMjcgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDM0KTogdGlkOiA2MDg2NWEyNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MzUpOiB0aWQ6IDYwODY1YTI3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU0ICBs b25nZXN0OiAxOTQ5MjE1NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogNjA4 NjVhMjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0MzcpOiB0aWQ6IDYwODY1YTI3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRp ZDogNjA4NjVhMjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDM5KTogdGlkOiA2MDg2NWEyNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDAp OiB0aWQ6IDYwODY1YTI3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0aWQ6IDU3MjQ3YWIwICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0 Mik6IHRpZDogNTcyNDdhYjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Myk6IHRpZDogNTcyNDdhYjAgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ0NCk6IHRpZDogNTcyNDdhYjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhjODAwMCBuYmxvY2tzIDB4Y2EgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICg0NDUpOiB0aWQ6IDU3MjQ3YWIwICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0Nik6IHRpZDogNTcyNDdhYjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQ3KTogdGlkOiA1NzI0N2FiMCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1MiAgbG9u Z2VzdDogMTk0OTIxNTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IDU3MjQ3 YWIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDQ5KTogdGlkOiA1NzI0N2FiMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTApOiB0aWQ6 IDU3MjQ3YWIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ1MSk6IHRpZDogNTcyNDdhYjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTog dGlkOiA1NzI0N2FiMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUzKTogdGlkOiA1ZWY5MzU5NiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTQp OiB0aWQ6IDVlZjkzNTk2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6IDVlZjkzNTk2ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0NTYpOiB0aWQ6IDVlZjkzNTk2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4Yzk0MDAgbmJsb2NrcyAweGNiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoNDU3KTogdGlkOiA1ZWY5MzU5NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTgpOiB0aWQ6IDVlZjkzNTk2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1OSk6IHRpZDogNWVmOTM1OTYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTEgIGxvbmdl c3Q6IDE5NDkyMTUxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiA1ZWY5MzU5 NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ2MSk6IHRpZDogNWVmOTM1OTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYyKTogdGlkOiA1 ZWY5MzU5NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0NjMpOiB0aWQ6IDVlZjkzNTk2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRp ZDogNWVmOTM1OTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDogZDU4ZDg0YTggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY2KTog dGlkOiBkNThkODRhOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiBkNThkODRhOCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNDY4KTogdGlkOiBkNThkODRhOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGNhODAwIG5ibG9ja3MgMHhjYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDQ2OSk6IHRpZDogZDU4ZDg0YTggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDcwKTogdGlkOiBkNThkODRhOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NzEpOiB0aWQ6IGQ1OGQ4NGE4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTUwICBsb25nZXN0 OiAxOTQ5MjE1MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogZDU4ZDg0YTgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0NzMpOiB0aWQ6IGQ1OGQ4NGE4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NCk6IHRpZDogZDU4 ZDg0YTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDc1KTogdGlkOiBkNThkODRhOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6 IGQ1OGQ4NGE4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IDljNmQ1YzM1ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OCk6IHRp ZDogOWM2ZDVjMzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogOWM2ZDVjMzUgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQ4MCk6IHRpZDogOWM2ZDVjMzUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhjYmMwMCBuYmxvY2tzIDB4Y2QgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MgpPcGVyICg0ODEpOiB0aWQ6IDljNmQ1YzM1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 Mik6IHRpZDogOWM2ZDVjMzUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNDgzKTogdGlkOiA5YzZkNWMzNSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0OSAgbG9uZ2VzdDog MTk0OTIxNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDljNmQ1YzM1ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDg1KTogdGlkOiA5YzZkNWMzNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODYpOiB0aWQ6IDljNmQ1 YzM1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ4Nyk6IHRpZDogOWM2ZDVjMzUgIGxlbjogMzIgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTlRJTlVFIApCVUYgREFUQQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJz aW9uOiAyCQlsc246IDEsNzQ0CXRhaWxfbHNuOiAxLDQ3NQpsZW5ndGggb2YgTG9nIFJlY29yZDog MzIyNTYJcHJldiBvZmZzZXQ6IDY4MAkJbnVtIG9wczogNDkwCnV1aWQ6IDc3YThhODQ1LTAzN2It NDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3Np emU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogOWM2ZDVjMzUgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVORCAKTGVmdCBvdmVyIHJl Z2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRp ZDogOWM2ZDVjMzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDg0NTIyZTI2ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6 IDg0NTIyZTI2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiA4NDUyMmUyNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NSk6IHRpZDogODQ1MjJlMjYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhj ZDAwMCBuYmxvY2tzIDB4Y2YgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICg2KTogdGlkOiA4NDUyMmUyNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA4 NDUyMmUyNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg4KTogdGlkOiA4NDUyMmUyNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0NyAgbG9uZ2VzdDogMTk0OTIxNDcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiA4NDUyMmUyNiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwKTogdGlkOiA4 NDUyMmUyNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogODQ1MjJlMjYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIpOiB0aWQ6 IDg0NTIyZTI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiA4NDUyMmUyNiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTQpOiB0aWQ6IGIyODQ0YWQxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiBiMjg0NGFkMSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYp OiB0aWQ6IGIyODQ0YWQxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNyk6IHRpZDogYjI4NDRhZDEg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjZTQwMCBuYmxvY2tzIDB4ZDAg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxOCk6IHRpZDogYjI4NDRh ZDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IGIyODQ0YWQxICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIwKTog dGlkOiBiMjg0NGFkMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE0NiAgbG9uZ2VzdDogMTk0OTIxNDYKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMSk6IHRpZDogYjI4NDRhZDEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogYjI4NDRhZDEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjMpOiB0aWQ6IGIyODQ0YWQxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0KTogdGlkOiBiMjg0NGFkMSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNSk6IHRpZDogYjI4NDRhZDEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2KTogdGlkOiA2MTU3 MzkwMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNyk6IHRpZDogNjE1NzM5MDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiA2MTU3Mzkw MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjkpOiB0aWQ6IDYxNTczOTAzICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Y2Y4MDAgbmJsb2NrcyAweGQxIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzApOiB0aWQ6IDYxNTczOTAzICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiA2MTU3MzkwMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMik6IHRpZDogNjE1NzM5MDMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxNDUgIGxvbmdlc3Q6IDE5NDkyMTQ1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0 aWQ6IDYxNTczOTAzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzQpOiB0aWQ6IDYxNTczOTAzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1 KTogdGlkOiA2MTU3MzkwMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNik6IHRpZDogNjE1NzM5MDMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzcpOiB0aWQ6IDYxNTczOTAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOCk6IHRpZDogOTM3NTkyM2QgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzkpOiB0aWQ6IDkzNzU5MjNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MCk6IHRpZDogOTM3NTkyM2QgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQxKTogdGlkOiA5Mzc1OTIzZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGQwYzAwIG5ibG9ja3MgMHhkMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDQyKTogdGlkOiA5Mzc1OTIzZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Myk6IHRpZDogOTM3NTkyM2QgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQpOiB0aWQ6IDkzNzU5MjNkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQ0ICBsb25nZXN0 OiAxOTQ5MjE0NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlkOiA5Mzc1OTIzZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ2KTogdGlkOiA5Mzc1OTIzZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogOTM3NTky M2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDgpOiB0aWQ6IDkzNzU5MjNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlkOiA5Mzc1 OTIzZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTApOiB0aWQ6IDgxZDE4ODU3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiA4MWQx ODg1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNTIpOiB0aWQ6IDgxZDE4ODU3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1Myk6 IHRpZDogODFkMTg4NTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkMjAw MCBuYmxvY2tzIDB4ZDQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg1 NCk6IHRpZDogODFkMTg4NTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IDgx ZDE4ODU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDU2KTogdGlkOiA4MWQxODg1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0MiAgbG9uZ2VzdDogMTk0OTIxNDIKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nyk6IHRpZDogODFkMTg4NTcgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1OCk6IHRpZDog ODFkMTg4NTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6IDgxZDE4ODU3ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYwKTogdGlk OiA4MWQxODg1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDogODFkMTg4NTcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDYyKTogdGlkOiBjOThjZTkxYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogYzk4Y2U5MWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0 KTogdGlkOiBjOThjZTkxYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNjUpOiB0aWQ6IGM5OGNlOTFj ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDM0MDAgbmJsb2NrcyAweGQ1 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNjYpOiB0aWQ6IGM5OGNl OTFjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBjOThjZTkxYyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2OCk6 IHRpZDogYzk4Y2U5MWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxNDEgIGxvbmdlc3Q6IDE5NDkyMTQxCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNjkpOiB0aWQ6IGM5OGNlOTFjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzApOiB0aWQ6IGM5OGNlOTFjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDcxKTogdGlkOiBjOThjZTkxYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3Mik6IHRpZDogYzk4Y2U5MWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IGM5OGNlOTFjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NCk6IHRpZDogMjU3 ZGJiMmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IDI1N2RiYjJhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nik6IHRpZDogMjU3ZGJi MmEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDc3KTogdGlkOiAyNTdkYmIyYSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ0ODAwIG5ibG9ja3MgMHhkNiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDc4KTogdGlkOiAyNTdkYmIyYSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogMjU3ZGJiMmEgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoODApOiB0aWQ6IDI1N2RiYjJh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTQwICBsb25nZXN0OiAxOTQ5MjE0MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTog dGlkOiAyNTdkYmIyYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDgyKTogdGlkOiAyNTdkYmIyYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 Myk6IHRpZDogMjU3ZGJiMmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoODQpOiB0aWQ6IDI1N2RiYjJhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg1KTogdGlkOiAyNTdkYmIyYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IGI2OTE2YjMyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg3KTogdGlkOiBiNjkxNmIzMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODgpOiB0aWQ6IGI2OTE2YjMyICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg4OSk6IHRpZDogYjY5MTZiMzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhkNWMwMCBuYmxvY2tzIDB4ZDcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICg5MCk6IHRpZDogYjY5MTZiMzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTEpOiB0aWQ6IGI2OTE2YjMyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDkyKTogdGlkOiBiNjkxNmIzMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzOSAgbG9uZ2Vz dDogMTk0OTIxMzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Myk6IHRpZDogYjY5MTZiMzIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg5NCk6IHRpZDogYjY5MTZiMzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IGI2OTE2 YjMyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDk2KTogdGlkOiBiNjkxNmIzMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nyk6IHRpZDogYjY5 MTZiMzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk4KTogdGlkOiBmMjI2Njk4YyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OSk6IHRpZDogZjIy NjY5OGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogZjIyNjY5OGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEw MSk6IHRpZDogZjIyNjY5OGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhk NzAwMCBuYmxvY2tzIDB4ZDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICgxMDIpOiB0aWQ6IGYyMjY2OThjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMyk6IHRp ZDogZjIyNjY5OGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTA0KTogdGlkOiBmMjI2Njk4YyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNyAgbG9uZ2VzdDogMTk0OTIx MzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IGYyMjY2OThjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA2 KTogdGlkOiBmMjI2Njk4YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDcpOiB0aWQ6IGYyMjY2OThjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDEwOCk6IHRpZDogZjIyNjY5OGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA5KTogdGlkOiBmMjI2Njk4 YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTEwKTogdGlkOiAxZWZjNzk1OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IDFlZmM3 OTU4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMTIpOiB0aWQ6IDFlZmM3OTU4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTMp OiB0aWQ6IDFlZmM3OTU4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDg0 MDAgbmJsb2NrcyAweGRhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MTE0KTogdGlkOiAxZWZjNzk1OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6 IDFlZmM3OTU4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDExNik6IHRpZDogMWVmYzc5NTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzYgIGxvbmdlc3Q6IDE5NDkyMTM2 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE3KTogdGlkOiAxZWZjNzk1OCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExOCk6 IHRpZDogMWVmYzc5NTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTogdGlkOiAxZWZjNzk1OCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MjApOiB0aWQ6IDFlZmM3OTU4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDogMWVmYzc5NTgg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEyMik6IHRpZDogYjg4OTRkOTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTogdGlkOiBiODg5NGQ5 NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTI0KTogdGlkOiBiODg5NGQ5NiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTI1KTog dGlkOiBiODg5NGQ5NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ5ODAw IG5ibG9ja3MgMHhkYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEy Nik6IHRpZDogYjg4OTRkOTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTogdGlkOiBi ODg5NGQ5NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxMjgpOiB0aWQ6IGI4ODk0ZDk2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM1ICBsb25nZXN0OiAxOTQ5MjEzNQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDogYjg4OTRkOTYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzApOiB0 aWQ6IGI4ODk0ZDk2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRpZDogYjg4OTRkOTYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMy KTogdGlkOiBiODg5NGQ5NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzMpOiB0aWQ6IGI4ODk0ZDk2ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMzQpOiB0aWQ6IDQ5ZjM4YzQ1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRpZDogNDlmMzhjNDUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEzNik6IHRpZDogNDlmMzhjNDUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEzNyk6IHRp ZDogNDlmMzhjNDUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYWMwMCBu YmxvY2tzIDB4ZGMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMzgp OiB0aWQ6IDQ5ZjM4YzQ1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogNDlm MzhjNDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTQwKTogdGlkOiA0OWYzOGM0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNCAgbG9uZ2VzdDogMTk0OTIxMzQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDEpOiB0aWQ6IDQ5ZjM4YzQ1ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQyKTogdGlk OiA0OWYzOGM0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6IDQ5ZjM4YzQ1ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0NCk6 IHRpZDogNDlmMzhjNDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiA0OWYzOGM0NSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTQ2KTogdGlkOiAxMTgzMGY4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6IDExODMwZjg0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNDgpOiB0aWQ6IDExODMwZjg0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNDkpOiB0aWQ6 IDExODMwZjg0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGMwMDAgbmJs b2NrcyAweGRlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTUwKTog dGlkOiAxMTgzMGY4NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IDExODMw Zjg0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE1Mik6IHRpZDogMTE4MzBmODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzIgIGxvbmdlc3Q6IDE5NDkyMTMyCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTogdGlkOiAxMTgzMGY4NCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1NCk6IHRpZDog MTE4MzBmODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiAxMTgzMGY4NCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTYpOiB0 aWQ6IDExODMwZjg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogMTE4MzBmODQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1OCk6IHRpZDogNTFlOTJiMTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA1MWU5MmIxMiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTYwKTogdGlkOiA1MWU5MmIxMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTYxKTogdGlkOiA1 MWU5MmIxMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRkNDAwIG5ibG9j a3MgMHhkZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE2Mik6IHRp ZDogNTFlOTJiMTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTogdGlkOiA1MWU5MmIx MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNjQpOiB0aWQ6IDUxZTkyYjEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTMxICBsb25nZXN0OiAxOTQ5MjEzMQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRpZDogNTFlOTJiMTIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjYpOiB0aWQ6IDUx ZTkyYjEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogNTFlOTJiMTIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY4KTogdGlk OiA1MWU5MmIxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IDUxZTkyYjEyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNzApOiB0aWQ6IGFiMGMwYzNlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogYWIwYzBjM2UgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE3Mik6IHRpZDogYWIwYzBjM2UgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3Myk6IHRpZDogYWIw YzBjM2UgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkZTgwMCBuYmxvY2tz IDB4ZTAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNzQpOiB0aWQ6 IGFiMGMwYzNlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRpZDogYWIwYzBjM2Ug IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTc2KTogdGlkOiBhYjBjMGMzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzMCAgbG9uZ2VzdDogMTk0OTIxMzAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNzcpOiB0aWQ6IGFiMGMwYzNlICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTc4KTogdGlkOiBhYjBj MGMzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IGFiMGMwYzNlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4MCk6IHRpZDog YWIwYzBjM2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiBhYjBjMGMzZSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTgyKTogdGlkOiBjYjFjMWE4OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IGNiMWMxYTg4ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx ODQpOiB0aWQ6IGNiMWMxYTg4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxODUpOiB0aWQ6IGNiMWMx YTg4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGZjMDAgbmJsb2NrcyAw eGUxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTg2KTogdGlkOiBj YjFjMWE4OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6IGNiMWMxYTg4ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE4OCk6IHRpZDogY2IxYzFhODggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMjkgIGxvbmdlc3Q6IDE5NDkyMTI5Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiBjYjFjMWE4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5MCk6IHRpZDogY2IxYzFh ODggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiBjYjFjMWE4OCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTIpOiB0aWQ6IGNi MWMxYTg4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogY2IxYzFhODggIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5 NCk6IHRpZDogMTM1MGNhYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IDEzNTBjYWMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nik6 IHRpZDogMTM1MGNhYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTk3KTogdGlkOiAxMzUwY2FjICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTEwMDAgbmJsb2NrcyAweGUzIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTk4KTogdGlkOiAxMzUwY2Fj ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogMTM1MGNhYyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDApOiB0 aWQ6IDEzNTBjYWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxMjcgIGxvbmdlc3Q6IDE5NDkyMTI3Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjAxKTogdGlkOiAxMzUwY2FjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAyKTogdGlkOiAxMzUwY2FjICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwMyk6IHRpZDogMTM1MGNhYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IDEzNTBjYWMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjA1KTogdGlkOiAxMzUwY2FjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDYpOiB0aWQ6IDQxMDBk ZjE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogNDEwMGRmMTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOCk6IHRpZDogNDEwMGRm MTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIwOSk6IHRpZDogNDEwMGRmMTcgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlMjQwMCBuYmxvY2tzIDB4ZTQgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMTApOiB0aWQ6IDQxMDBkZjE3ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogNDEwMGRmMTcgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjEyKTogdGlkOiA0MTAw ZGYxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjEyNiAgbG9uZ2VzdDogMTk0OTIxMjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MTMpOiB0aWQ6IDQxMDBkZjE3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE0KTogdGlkOiA0MTAwZGYxNyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTUpOiB0aWQ6IDQxMDBkZjE3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxNik6IHRpZDogNDEwMGRmMTcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjE3KTogdGlkOiA0MTAwZGYxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiA4ZGNiYjA5 OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTkpOiB0aWQ6IDhkY2JiMDk5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjApOiB0aWQ6IDhkY2JiMDk5 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjEpOiB0aWQ6IDhkY2JiMDk5ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTM4MDAgbmJsb2NrcyAweGU1IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjIyKTogdGlkOiA4ZGNiYjA5OSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IDhkY2JiMDk5ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyNCk6IHRpZDogOGRjYmIw OTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxMjUgIGxvbmdlc3Q6IDE5NDkyMTI1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1 KTogdGlkOiA4ZGNiYjA5OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIyNik6IHRpZDogOGRjYmIwOTkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjI3KTogdGlkOiA4ZGNiYjA5OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjgpOiB0aWQ6IDhkY2JiMDk5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyOSk6IHRpZDogOGRjYmIwOTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogOTk4YWUzOGYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjMxKTogdGlkOiA5OThhZTM4ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMyKTogdGlkOiA5OThhZTM4ZiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjMzKTogdGlkOiA5OThhZTM4ZiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGU0YzAwIG5ibG9ja3MgMHhlNiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIzNCk6IHRpZDogOTk4YWUzOGYgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiA5OThhZTM4ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMzYpOiB0aWQ6IDk5OGFlMzhm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTI0ICBsb25nZXN0OiAxOTQ5MjEyNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6 IHRpZDogOTk4YWUzOGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyMzgpOiB0aWQ6IDk5OGFlMzhmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzOSk6IHRpZDogOTk4YWUzOGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQwKTogdGlkOiA5OThhZTM4ZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDEpOiB0aWQ6IDk5OGFlMzhmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IDk2ZWFhZGNlICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI0Myk6IHRpZDogOTZlYWFkY2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NCk6IHRpZDogOTZlYWFkY2UgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI0NSk6IHRpZDogOTZlYWFkY2UgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhlNjAwMCBuYmxvY2tzIDB4ZTggZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNDYpOiB0aWQ6IDk2ZWFhZGNlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogOTZlYWFkY2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQ4KTogdGlkOiA5NmVhYWRjZSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjEyMiAgbG9uZ2VzdDogMTk0OTIxMjIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0 aWQ6IDk2ZWFhZGNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjUwKTogdGlkOiA5NmVhYWRjZSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NTEpOiB0aWQ6IDk2ZWFhZGNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI1Mik6IHRpZDogOTZlYWFkY2UgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjUzKTogdGlkOiA5NmVhYWRjZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiAzMjJiMGJjMyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNTUpOiB0aWQ6IDMyMmIwYmMzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0aWQ6IDMyMmIwYmMzICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyNTcpOiB0aWQ6IDMyMmIwYmMzICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ZTc0MDAgbmJsb2NrcyAweGU5IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMjU4KTogdGlkOiAzMjJiMGJjMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNTkpOiB0aWQ6IDMyMmIwYmMzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2MCk6IHRpZDogMzIyYjBiYzMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx MjEgIGxvbmdlc3Q6IDE5NDkyMTIxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYxKTogdGlk OiAzMjJiMGJjMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI2Mik6IHRpZDogMzIyYjBiYzMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYz KTogdGlkOiAzMjJiMGJjMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNjQpOiB0aWQ6IDMyMmIwYmMzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2NSk6IHRpZDogMzIyYjBiYzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogY2M5NTg2YjcgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjY3KTogdGlkOiBjYzk1ODZiNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY4KTogdGlkOiBjYzk1ODZiNyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjY5KTogdGlkOiBjYzk1ODZiNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGU4ODAwIG5ibG9ja3MgMHhlYSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDI3MCk6IHRpZDogY2M5NTg2YjcgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjcxKTogdGlkOiBjYzk1ODZiNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzIpOiB0aWQ6IGNjOTU4NmI3ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTIw ICBsb25nZXN0OiAxOTQ5MjEyMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Myk6IHRpZDog Y2M5NTg2YjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNzQpOiB0aWQ6IGNjOTU4NmI3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6 IHRpZDogY2M5NTg2YjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjc2KTogdGlkOiBjYzk1ODZiNyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzcpOiB0aWQ6IGNjOTU4NmI3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IDRiYmQxZWYyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3OSk6IHRpZDogNGJiZDFlZjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MCk6IHRpZDogNGJiZDFlZjIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDI4MSk6IHRpZDogNGJiZDFlZjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhlOWMwMCBuYmxvY2tzIDB4ZWIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICgyODIpOiB0aWQ6IDRiYmQxZWYyICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI4Myk6IHRpZDogNGJiZDFlZjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg0KTogdGlkOiA0YmJkMWVmMiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExOSAg bG9uZ2VzdDogMTk0OTIxMTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODUpOiB0aWQ6IDRi YmQxZWYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjg2KTogdGlkOiA0YmJkMWVmMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0 aWQ6IDRiYmQxZWYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI4OCk6IHRpZDogNGJiZDFlZjIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5 KTogdGlkOiA0YmJkMWVmMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiA5NzgyZThmNiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy OTEpOiB0aWQ6IDk3ODJlOGY2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTIpOiB0aWQ6IDk3ODJlOGY2ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyOTMpOiB0aWQ6IDk3ODJlOGY2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZWIwMDAgbmJsb2NrcyAweGVkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoMjk0KTogdGlkOiA5NzgyZThmNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyOTUpOiB0aWQ6IDk3ODJlOGY2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5Nik6IHRpZDogOTc4MmU4ZjYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMTcgIGxv bmdlc3Q6IDE5NDkyMTE3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk3KTogdGlkOiA5Nzgy ZThmNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI5OCk6IHRpZDogOTc4MmU4ZjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlk OiA5NzgyZThmNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMDApOiB0aWQ6IDk3ODJlOGY2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6 IHRpZDogOTc4MmU4ZjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogODE2NzNkZDkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAz KTogdGlkOiA4MTY3M2RkOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA0KTogdGlkOiA4MTY3M2RkOSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzA1KTogdGlkOiA4MTY3M2RkOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGVjNDAwIG5ibG9ja3MgMHhlZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDMwNik6IHRpZDogODE2NzNkZDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzA3KTogdGlkOiA4MTY3M2RkOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDgpOiB0aWQ6IDgxNjczZGQ5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTE2ICBsb25n ZXN0OiAxOTQ5MjExNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOSk6IHRpZDogODE2NzNk ZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMTApOiB0aWQ6IDgxNjczZGQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDog ODE2NzNkZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzEyKTogdGlkOiA4MTY3M2RkOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0 aWQ6IDgxNjczZGQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IDU5NDhiZmM5ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNSk6 IHRpZDogNTk0OGJmYzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNik6IHRpZDogNTk0OGJmYzkgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDMxNyk6IHRpZDogNTk0OGJmYzkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhlZDgwMCBuYmxvY2tzIDB4ZWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgzMTgpOiB0aWQ6IDU5NDhiZmM5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMxOSk6IHRpZDogNTk0OGJmYzkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzIwKTogdGlkOiA1OTQ4YmZjOSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExNSAgbG9uZ2Vz dDogMTk0OTIxMTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjEpOiB0aWQ6IDU5NDhiZmM5 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzIyKTogdGlkOiA1OTQ4YmZjOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDU5 NDhiZmM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMyNCk6IHRpZDogNTk0OGJmYzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlk OiA1OTQ4YmZjOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlkOiA3NjAxNDQ0ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRp ZDogNzYwMTQ0NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzI4KTogdGlkOiA3NjAxNDQ0ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgzMjkpOiB0aWQ6IDc2MDE0NDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhlZWMwMCBuYmxvY2tzIDB4ZjAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICgzMzApOiB0aWQ6IDc2MDE0NDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMxKTog dGlkOiA3NjAxNDQ0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDMzMik6IHRpZDogNzYwMTQ0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExNCAgbG9uZ2VzdDogMTk0OTIx MTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMpOiB0aWQ6IDc2MDE0NDQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzQp OiB0aWQ6IDc2MDE0NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiA3NjAxNDQ0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMz Nik6IHRpZDogNzYwMTQ0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6IDc2MDE0NDQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMzOCk6IHRpZDogZWNhZDFjMDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM5KTogdGlkOiBlY2FkMWMwOSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzQwKTogdGlkOiBlY2FkMWMwOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQxKTogdGlk OiBlY2FkMWMwOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYwMDAwIG5i bG9ja3MgMHhmMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM0Mik6 IHRpZDogZWNhZDFjMDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQzKTogdGlkOiBlY2Fk MWMwOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzNDQpOiB0aWQ6IGVjYWQxYzA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTEyICBsb25nZXN0OiAxOTQ5MjExMgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NSk6IHRpZDogZWNhZDFjMDkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6 IGVjYWQxYzA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogZWNhZDFjMDkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ4KTog dGlkOiBlY2FkMWMwOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IGVjYWQxYzA5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTApOiB0aWQ6IGUxZDU1NDE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MSk6IHRpZDogZTFkNTU0MTcgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1Mik6IHRpZDogZTFkNTU0MTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM1Myk6IHRpZDog ZTFkNTU0MTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmMTQwMCBuYmxv Y2tzIDB4ZjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNTQpOiB0 aWQ6IGUxZDU1NDE3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NSk6IHRpZDogZTFkNTU0 MTcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzU2KTogdGlkOiBlMWQ1NTQxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExMSAgbG9uZ2VzdDogMTk0OTIxMTEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTcpOiB0aWQ6IGUxZDU1NDE3ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzU4KTogdGlkOiBl MWQ1NTQxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0aWQ6IGUxZDU1NDE3ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2MCk6IHRp ZDogZTFkNTU0MTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiBlMWQ1NTQxNyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzYyKTogdGlkOiAxZWFlMGI1YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjMpOiB0aWQ6IDFlYWUwYjVjICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNjQpOiB0aWQ6IDFlYWUwYjVjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNjUpOiB0aWQ6IDFl YWUwYjVjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjI4MDAgbmJsb2Nr cyAweGY0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzY2KTogdGlk OiAxZWFlMGI1YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IDFlYWUwYjVj ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM2OCk6IHRpZDogMWVhZTBiNWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMTAgIGxvbmdlc3Q6IDE5NDkyMTEwCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzY5KTogdGlkOiAxZWFlMGI1YyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3MCk6IHRpZDogMWVh ZTBiNWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlkOiAxZWFlMGI1YyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzIpOiB0aWQ6 IDFlYWUwYjVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogMWVhZTBiNWMgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3NCk6IHRpZDogZmYyMWJmODUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1KTogdGlkOiBmZjIxYmY4NSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzc2KTogdGlkOiBmZjIxYmY4NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzc3KTogdGlkOiBmZjIx YmY4NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYzYzAwIG5ibG9ja3Mg MHhmNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM3OCk6IHRpZDog ZmYyMWJmODUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc5KTogdGlkOiBmZjIxYmY4NSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzODApOiB0aWQ6IGZmMjFiZjg1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA5ICBsb25nZXN0OiAxOTQ5MjEwOQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4MSk6IHRpZDogZmYyMWJmODUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODIpOiB0aWQ6IGZmMjFi Zjg1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6IHRpZDogZmYyMWJmODUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg0KTogdGlkOiBm ZjIxYmY4NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IGZmMjFiZjg1ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz ODYpOiB0aWQ6IDI4Y2FhMTE2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6IHRpZDogMjhjYWExMTYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4 OCk6IHRpZDogMjhjYWExMTYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM4OSk6IHRpZDogMjhjYWEx MTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmNTAwMCBuYmxvY2tzIDB4 ZjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzOTApOiB0aWQ6IDI4 Y2FhMTE2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MSk6IHRpZDogMjhjYWExMTYgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzkyKTogdGlkOiAyOGNhYTExNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNyAgbG9uZ2VzdDogMTk0OTIxMDcKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTMpOiB0aWQ6IDI4Y2FhMTE2ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk0KTogdGlkOiAyOGNhYTEx NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IDI4Y2FhMTE2ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5Nik6IHRpZDogMjhj YWExMTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiAyOGNhYTExNiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4 KTogdGlkOiA2MGRjNzhlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OSk6IHRpZDogNjBkYzc4ZSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAwKTog dGlkOiA2MGRjNzhlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDEpOiB0aWQ6IDYwZGM3OGUgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmNjQwMCBuYmxvY2tzIDB4ZjggZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MDIpOiB0aWQ6IDYwZGM3OGUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiA2MGRjNzhlICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwNCk6IHRp ZDogNjBkYzc4ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjEwNiAgbG9uZ2VzdDogMTk0OTIxMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDUpOiB0aWQ6IDYwZGM3OGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDYpOiB0aWQ6IDYwZGM3OGUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDA3KTogdGlkOiA2MGRjNzhlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogNjBkYzc4ZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MDkpOiB0aWQ6IDYwZGM3OGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRpZDogNmE3ZTVl ZjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDExKTogdGlkOiA2YTdlNWVmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEyKTogdGlkOiA2YTdlNWVm MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDEzKTogdGlkOiA2YTdlNWVmMiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGY3ODAwIG5ibG9ja3MgMHhmOSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQxNCk6IHRpZDogNmE3ZTVlZjIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDE1KTogdGlkOiA2YTdlNWVmMiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MTYpOiB0aWQ6IDZhN2U1 ZWYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTA1ICBsb25nZXN0OiAxOTQ5MjEwNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQx Nyk6IHRpZDogNmE3ZTVlZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTgpOiB0aWQ6IDZhN2U1ZWYyICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxOSk6IHRpZDogNmE3ZTVlZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIwKTogdGlkOiA2YTdlNWVmMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MjEpOiB0aWQ6IDZhN2U1ZWYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IDJmM2Q3MmE3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyMyk6IHRpZDogMmYzZDcyYTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNCk6IHRpZDogMmYzZDcyYTcg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQyNSk6IHRpZDogMmYzZDcyYTcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmOGMwMCBuYmxvY2tzIDB4ZmEgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MjYpOiB0aWQ6IDJmM2Q3MmE3ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQyNyk6IHRpZDogMmYzZDcyYTcgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDI4KTogdGlkOiAyZjNkNzJh NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjEwNCAgbG9uZ2VzdDogMTk0OTIxMDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mjkp OiB0aWQ6IDJmM2Q3MmE3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDMwKTogdGlkOiAyZjNkNzJhNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MzEpOiB0aWQ6IDJmM2Q3MmE3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMik6IHRpZDogMmYzZDcyYTcgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDMzKTogdGlkOiAyZjNkNzJhNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiAxMDkwMTdmMiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MzUpOiB0aWQ6IDEwOTAxN2YyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzYpOiB0aWQ6IDEwOTAxN2YyICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg0MzcpOiB0aWQ6IDEwOTAxN2YyICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4ZmEwMDAgbmJsb2NrcyAweGZjIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDM4KTogdGlkOiAxMDkwMTdmMiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MzkpOiB0aWQ6IDEwOTAxN2YyICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0MCk6IHRpZDogMTA5MDE3ZjIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxMDIgIGxvbmdlc3Q6IDE5NDkyMTAyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQxKTog dGlkOiAxMDkwMTdmMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ0Mik6IHRpZDogMTA5MDE3ZjIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDQzKTogdGlkOiAxMDkwMTdmMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDQpOiB0aWQ6IDEwOTAxN2YyICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0NSk6IHRpZDogMTA5MDE3ZjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogYTZmZTBkZGYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDQ3KTogdGlkOiBhNmZlMGRkZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiBhNmZlMGRkZiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDQ5KTogdGlkOiBhNmZlMGRkZiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGZiNDAwIG5ibG9ja3MgMHhmZCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ1MCk6IHRpZDogYTZmZTBkZGYgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDUxKTogdGlkOiBhNmZlMGRkZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTIpOiB0aWQ6IGE2ZmUwZGRmICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTAxICBsb25nZXN0OiAxOTQ5MjEwMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Myk6IHRp ZDogYTZmZTBkZGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NTQpOiB0aWQ6IGE2ZmUwZGRmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 NSk6IHRpZDogYTZmZTBkZGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDU2KTogdGlkOiBhNmZlMGRkZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTcpOiB0aWQ6IGE2ZmUwZGRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IGU4MjFlMyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTkpOiB0aWQ6IGU4MjFlMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiBlODIxZTMgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ2MSk6IHRpZDogZTgyMWUzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4ZmM4MDAgbmJsb2NrcyAweGZlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoNDYyKTogdGlkOiBlODIxZTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDYzKTogdGlkOiBlODIxZTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNDY0KTogdGlkOiBlODIxZTMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDAgIGxvbmdlc3Q6IDE5 NDkyMTAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiBlODIxZTMgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NjYpOiB0aWQ6IGU4MjFlMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IGU4MjFlMyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NjgpOiB0aWQ6IGU4MjFlMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IGU4MjFlMyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDcwKTogdGlkOiBjNzI4N2M5NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6IGM3Mjg3Yzk1ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NzIpOiB0aWQ6IGM3Mjg3Yzk1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NzMpOiB0aWQ6 IGM3Mjg3Yzk1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZmRjMDAgbmJs b2NrcyAweGZmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDc0KTog dGlkOiBjNzI4N2M5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzUpOiB0aWQ6IGM3Mjg3 Yzk1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQ3Nik6IHRpZDogYzcyODdjOTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiB4ZnNfbG9ncHJpbnQ6IHVua25vd24gbG9nIG9wZXJhdGlvbiB0eXBlICg0MjQxKQpCYWQg ZGF0YSBpbiBsb2cKbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMDk5ICBsb25nZXN0OiAxOTQ5MjA5 OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogYzcyODdjOTUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Nzgp OiB0aWQ6IGM3Mjg3Yzk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogYzcyODdjOTUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDgwKTogdGlkOiBjNzI4N2M5NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IGM3Mjg3Yzk1 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0ODIpOiB0aWQ6IDkyMDNkMWE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Myk6IHRpZDogOTIwM2Qx YTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog U1RSQVRfV1JJVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ4NCk6IHRpZDogOTIwM2QxYTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgzICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNDg1 KTogdGlkOiA5MjAzZDFhNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAg bmJsb2NrcyAweDJjMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ4 Nik6IHRpZDogOTIwM2QxYTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTogdGlkOiA5 MjAzZDFhNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0ODgpOiB0aWQ6IDkyMDNkMWE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzk0ICBsb25nZXN0OiAxOTQ5MTM5NAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4OSk6IHRpZDogOTIwM2QxYTcgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVFIApCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCgo9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw4MDgJdGFpbF9sc246IDEs NDc1Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAxMDI0CXByZXYgb2Zmc2V0OiA3NDQJCW51bSBvcHM6 IDE3CnV1aWQ6IDc3YThhODQ1LTAzN2ItNDQ2Ni1iMmU5LWUzMTM2YzI3YmU2NSAgIGZvcm1hdDog bGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMCk6IHRpZDogOTIwM2QxYTcgIGxlbjogNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FT X0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA5MjAzZDFhNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgoqIEVSUk9SOiBkYXRhIGJsb2NrPTgwOCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKgoqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCg== --00151773e39ca0e86b04a8a13a5d-- From amit.sahrawat83@gmail.com Fri Jul 22 00:23:18 2011 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M5NHD3066460 for ; Fri, 22 Jul 2011 00:23:17 -0500 X-ASG-Debug-ID: 1311312192-570903030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 35A40180B072 for ; Thu, 21 Jul 2011 22:23:12 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id 6H8AfdqVGOI0wk75 for ; Thu, 21 Jul 2011 22:23:12 -0700 (PDT) Received: by iyf40 with SMTP id 40so1615362iyf.26 for ; Thu, 21 Jul 2011 22:23:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=EgqR1YxDWwNaOxx2Mr989NpJAYblOEobmksMyIm0sdE=; b=iX7DZQ4PYG+/TXDdX6oIzs3QMlLlWlrOWw7B35KbHK338zK1aXwktAWobOT3lsn99Z SCKgIF3DTLsor124HHa3JLUx8sFjrk5+DGrbMZu4T2eBnGxIq684hh0pabqHkPw/svlc ELOnAPaCgSWtzXLs/YNENC3fTnuchel+Cw70g= MIME-Version: 1.0 Received: by 10.231.46.72 with SMTP id i8mr839793ibf.47.1311312191970; Thu, 21 Jul 2011 22:23:11 -0700 (PDT) Received: by 10.231.36.140 with HTTP; Thu, 21 Jul 2011 22:23:11 -0700 (PDT) In-Reply-To: References: Date: Fri, 22 Jul 2011 10:53:11 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: xfs@oss.sgi.com Content-Type: multipart/mixed; boundary=0015177407526464e504a8a1a9f2 X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311312194 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0015177407526464e504a8a1a9f2 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable More logs for xfs_log_print and xfs_repair. Thanks & Regards, Amit Sahrawat On Fri, Jul 22, 2011 at 10:22 AM, Amit Sahrawat wrote: > Dear All, > > Target : ARM > > Recently I encountered a corruption on XFS for RC-3. While the > DIRECT-IO for a file was in operation (Write operation) there was a > power reset - Only one file at a time is being written to the disk > using DIO.. After reboot on mounting I just tried to remove the file > and encountered the below mentioned corruption. =A0The hard disk is not > able to mount after this, only after clearing logs (xfs_repair =96L) =96 > disk is able to mount > XFS mounting filesystem sda1 > XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1535 of file > fs/xfs/xfs_alloc.c. =A0Caller 0xc0152c04 > Backtrace: > [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x1= 8/0x1c) > =A0r6:00000000 r5:c0152c04 r4:00000075 r3:e3ec1c88 > [] (dump_stack+0x0/0x1c) from [] > (xfs_error_report+0x4c/0x5c) > [] (xfs_error_report+0x0/0x5c) from [] > (xfs_free_ag_extent+0x400/0x600) > [] (xfs_free_ag_extent+0x0/0x600) from [] > (xfs_free_extent+0x8c/0xa4) > [] (xfs_free_extent+0x0/0xa4) from [] > (xfs_bmap_finish+0x108/0x194) > =A0r7:e3ec1e10 r6:00000000 r5:e3737870 r4:e373e000 > [] (xfs_bmap_finish+0x0/0x194) from [] > (xfs_itruncate_finish+0x1dc/0x30c) > [] (xfs_itruncate_finish+0x0/0x30c) from [] > (xfs_inactive+0x20c/0x40c) > [] (xfs_inactive+0x0/0x40c) from [] > (xfs_fs_clear_inode+0x50/0x60) > =A0r9:e3ec0000 r8:c001f128 r7:00000000 r6:e4671a80 r5:c0312454 > r4:e4667300 > [] (xfs_fs_clear_inode+0x0/0x60) from [] > (clear_inode+0x8c/0xe8) > =A0r4:e4667420 r3:c01a3d50 > [] (clear_inode+0x0/0xe8) from [] > (generic_delete_inode+0xdc/0x178) > =A0r4:e4667420 r3:ffffffff > [] (generic_delete_inode+0x0/0x178) from [] > (generic_drop_inode+0x20/0x68) > =A0r5:00000000 r4:e4667420 > [] (generic_drop_inode+0x0/0x68) from [] (iput+0x6c/0= x7c) > =A0r4:e4667420 r3:c00be620 > [] (iput+0x0/0x7c) from [] (do_unlinkat+0xfc/0x154) > =A0r4:e4667420 r3:00000000 > [] (do_unlinkat+0x0/0x154) from [] (sys_unlink+0x18/0= x1c) > =A0r7:0000000a r6:00000000 r5:00000000 r4:be90299b > [] (sys_unlink+0x0/0x1c) from [] (ret_fast_syscall+0x= 0/0x30) > xfs_force_shutdown(sda1,0x8) called from line 4047 of file > fs/xfs/xfs_bmap.c. =A0Return address =3D 0xc015ffec > Filesystem "sda1": Corruption of in-memory data detected. =A0Shutting > down filesystem: sda1 > Please umount the filesystem, and rectify the problem(s) > > [root@localhost amits]# xfs_repair -n /dev/sdb1 > Phase 1 - find and verify superblock... > Phase 2 - using internal log > =A0 =A0 =A0 =A0- scan filesystem freespace and inode maps... > =A0 =A0 =A0 =A0- found root inode chunk > Phase 3 - for each AG... > =A0 =A0 =A0 =A0- scan (but don't clear) agi unlinked lists... > =A0 =A0 =A0 =A0- process known inodes and perform inode discovery... > =A0 =A0 =A0 =A0- agno =3D 0 > data fork in ino 132 claims free block 115 > data fork in ino 132 claims free block 116 > =A0 =A0 =A0 =A0- agno =3D 1 > =A0 =A0 =A0 =A0- agno =3D 2 > =A0 =A0 =A0 =A0- agno =3D 3 > =A0 =A0 =A0 =A0- process newly discovered inodes... > Phase 4 - check for duplicate blocks... > =A0 =A0 =A0 =A0- setting up duplicate extent list... > =A0 =A0 =A0 =A0- check for inodes claiming duplicate blocks... > =A0 =A0 =A0 =A0- agno =3D 0 > =A0 =A0 =A0 =A0- agno =3D 2 > =A0 =A0 =A0 =A0- agno =3D 1 > =A0 =A0 =A0 =A0- agno =3D 3 > No modify flag set, skipping phase 5 > Phase 6 - check inode connectivity... > =A0 =A0 =A0 =A0- traversing filesystem ... > =A0 =A0 =A0 =A0- traversal finished ... > =A0 =A0 =A0 =A0- moving disconnected inodes to lost+found ... > Phase 7 - verify link counts... > No modify flag set, skipping filesystem flush and exiting. > [root@localhost amits]# > > Please find the logs for xfs_logprint at the time of issue attached. > > If there was really corruption which is shown at the time of deletion > of file then why did the XFS file-system mounted? After checking the > blocks request being passed as free request =96 it showed that the at > the time of xfs_free_ag_extent() =96 the values from the tree fetched > are not correct =96 for blocks to the right of current file extent (may > be due to corruption) =96 is there anything written to xfs logs related > with this? So that at the mount time this thing can be taken care. > > Please let me know in case more information is required for this. > > Thanks & Regards, > Amit Sahrawat > --0015177407526464e504a8a1a9f2 Content-Type: application/octet-stream; name=xfs_log_issue_2 Content-Disposition: attachment; filename=xfs_log_issue_2 Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqepezfs1 eGZzX2xvZ3ByaW50OgogICAgZGF0YSBkZXZpY2U6IDB4ODExCiAgICBsb2cgZGV2aWNlOiAweDgx MSBkYWRkcjogMzExODc3ODg4IGxlbmd0aDogNjU1MzYKCmN5Y2xlOiAxCXZlcnNpb246IDIJCWxz bjogMSwwCXRhaWxfbHNuOiAxLDAKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDIwCXByZXYgb2Zmc2V0 OiAtMQkJbnVtIG9wczogMQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1 NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGIwYzBkMGQwICBsZW46IDggIGNsaWVudGlkOiBMT0cg IGZsYWdzOiBVTk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDIJdGFpbF9sc246IDEsMgpsZW5ndGggb2YgTG9n IFJlY29yZDogNTEyCXByZXYgb2Zmc2V0OiAwCQludW0gb3BzOiA1CnV1aWQ6IGIwYzBmMTk5LTAy MjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApo X3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogZTEyNGIwNzEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMSk6IHRpZDogZTEyNGIwNzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogU0JfQ09VTlQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IGUxMjRiMDcxICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDAgKDB4MCkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMp OiB0aWQ6IGUxMjRiMDcxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpT VVBFUiBCTE9DSyBCdWZmZXI6IAppY291bnQ6IDY0ICBpZnJlZTogNjEgIGZkYmxrczogNzc5NjEy NDkgIGZyZXh0OiAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogZTEyNGIwNzEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAoKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNAl0YWlsX2xzbjogMSwyCmxlbmd0aCBv ZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDIJCW51bSBvcHM6IDEKdXVpZDogYjBjMGYx OTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxp bnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA0NTFm YWYyNiAgbGVuOiA4ICBjbGllbnRpZDogTE9HICBmbGFnczogVU5NT1VOVCAKVW5tb3VudCBmaWxl c3lzdGVtCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw2 CXRhaWxfbHNuOiAxLDYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA0 CQludW0gb3BzOiA0OTIKdXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYz ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgwKTogdGlkOiA1YzcyMWM4MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA1YzcyMWM4 MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBD UkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIpOiB0aWQ6IDVjNzIxYzgxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMpOiB0aWQ6IDVjNzIxYzgxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzog MHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZm ZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiA1YzcyMWM4MSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUp OiB0aWQ6IDVjNzIxYzgxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IDVjNzIxYzgxICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzog MHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiA3NjgKT3BlciAoNyk6IHRpZDogNWM3MjFjODEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiA1YzcyMWM4MSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDAKT3BlciAoOSk6IHRpZDogNWM3MjFjODEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAy IGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDFhIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTApOiB0aWQ6IDVjNzIxYzgxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkxPQ0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDVjNzIxYzgxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMik6 IHRpZDogYzJhMDlhNDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IGMyYTA5YTQ5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRp ZDogYzJhMDlhNDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICgxNSk6IHRpZDogYzJhMDlhNDkgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRp ZDogYzJhMDlhNDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiBlYjc2OGFmZiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRp ZDogZWI3NjhhZmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogZWI3NjhhZmYgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IGViNzY4YWZm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJ ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVs OiAxICBmcmVlIzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAt IDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogZWI3 NjhhZmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMik6IHRpZDogZWI3NjhhZmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6 IGViNzY4YWZmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0KTogdGlkOiBlYjc2OGFmZiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlk OiBlYjc2OGFmZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogNTIKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3BlciAoMjYpOiB0aWQ6IGViNzY4YWZmICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI3KTogdGlkOiBlYjc2OGFmZiAgbGVuOiA1MiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBE SVJFQ1RPUlkgc2l6ZSA0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiBlYjc2 OGFmZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IDQxYTEwZDlkICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiA0MWEx MGQ5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzEpOiB0aWQ6IDQxYTEwZDlkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMik6 IHRpZDogNDFhMTBkOWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5i bG9ja3MgMHgyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzMpOiB0 aWQ6IDQxYTEwZDlkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiA0MWExMGQ5 ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgzNSk6IHRpZDogNDFhMTBkOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTIgIGxvbmdlc3Q6IDE5NDkyMzUyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IDQxYTEwZDlkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcpOiB0aWQ6IDQxYTEw ZDlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiA0MWExMGQ5ZCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOSk6IHRpZDogNDFh MTBkOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDApOiB0aWQ6IDQxYTEwZDlkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogMjJiMjdlYjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDIyYjI3ZWI0ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRp ZDogMjJiMjdlYjQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0KTogdGlkOiAyMmIyN2ViNCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAgbmJsb2NrcyAweDMgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NSk6IHRpZDogMjJiMjdlYjQgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYpOiB0aWQ6IDIyYjI3ZWI0ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ3KTogdGlkOiAy MmIyN2ViNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjM1MSAgbG9uZ2VzdDogMTk0OTIzNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0OCk6IHRpZDogMjJiMjdlYjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OSk6IHRpZDogMjJiMjdlYjQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTApOiB0aWQ6IDIyYjI3ZWI0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUxKTogdGlkOiAyMmIyN2ViNCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Mik6IHRpZDogMjJiMjdlYjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiA1NzQ3MTY4MSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1NCk6IHRpZDogNTc0NzE2ODEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiA1NzQ3MTY4MSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNTYpOiB0aWQ6IDU3NDcxNjgxICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MjgwMCBuYmxvY2tzIDB4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDU3KTogdGlkOiA1NzQ3MTY4MSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1OCk6IHRpZDogNTc0NzE2ODEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTkpOiB0aWQ6IDU3NDcxNjgxICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUwICBs b25nZXN0OiAxOTQ5MjM1MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiA1NzQ3 MTY4MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDYxKTogdGlkOiA1NzQ3MTY4MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDog NTc0NzE2ODEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNjMpOiB0aWQ6IDU3NDcxNjgxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlk OiA1NzQ3MTY4MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0aWQ6IGQzZDEyY2JjICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlk OiBkM2QxMmNiYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IGQzZDEyY2JjICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg2OCk6IHRpZDogZDNkMTJjYmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzYzAwIG5ibG9ja3MgMHg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoNjkpOiB0aWQ6IGQzZDEyY2JjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcwKTogdGlk OiBkM2QxMmNiYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg3MSk6IHRpZDogZDNkMTJjYmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDkgIGxvbmdlc3Q6IDE5NDkyMzQ5 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0aWQ6IGQzZDEyY2JjICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzMpOiB0 aWQ6IGQzZDEyY2JjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBkM2QxMmNiYyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NSk6 IHRpZDogZDNkMTJjYmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzYpOiB0aWQ6IGQzZDEyY2JjICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Nyk6IHRpZDogOTE0NWFmYjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzgpOiB0aWQ6IDkxNDVhZmI2ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3OSk6IHRpZDogOTE0NWFmYjYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDgwKTogdGlkOiA5MTQ1 YWZiNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAgbmJsb2NrcyAw eDcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg4MSk6IHRpZDogOTE0 NWFmYjYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODIpOiB0aWQ6IDkxNDVhZmI2ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgz KTogdGlkOiA5MTQ1YWZiNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjM0NyAgbG9uZ2VzdDogMTk0OTIzNDcKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg4NCk6IHRpZDogOTE0NWFmYjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4NSk6IHRpZDogOTE0NWFmYjYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IDkxNDVhZmI2ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg3KTogdGlkOiA5MTQ1YWZiNiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4OCk6IHRpZDogOTE0NWFmYjYgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA4 NDgwNTE3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogODQ4MDUxN2UgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiA4NDgw NTE3ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTIpOiB0aWQ6IDg0ODA1MTdlICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjQwMCBuYmxvY2tzIDB4OCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDkzKTogdGlkOiA4NDgwNTE3ZSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5NCk6IHRpZDogODQ4MDUxN2UgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IDg0ODA1MTdl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzQ2ICBsb25nZXN0OiAxOTQ5MjM0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTog dGlkOiA4NDgwNTE3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDk3KTogdGlkOiA4NDgwNTE3ZSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 OCk6IHRpZDogODQ4MDUxN2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoOTkpOiB0aWQ6IDg0ODA1MTdlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwMCk6IHRpZDogODQ4MDUxN2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogZGYxZWQzYWEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTAyKTogdGlkOiBkZjFlZDNhYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiBkZjFlZDNhYSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTA0KTogdGlkOiBkZjFlZDNhYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDc4MDAgbmJsb2NrcyAweDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgxMDUpOiB0aWQ6IGRmMWVkM2FhICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwNik6IHRpZDogZGYxZWQzYWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTA3KTogdGlkOiBkZjFlZDNhYSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NSAg bG9uZ2VzdDogMTk0OTIzNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IGRm MWVkM2FhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTA5KTogdGlkOiBkZjFlZDNhYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0 aWQ6IGRmMWVkM2FhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDExMSk6IHRpZDogZGYxZWQzYWEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEy KTogdGlkOiBkZjFlZDNhYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBkMGQzMjBlMSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTQpOiB0aWQ6IGQwZDMyMGUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IGQwZDMyMGUxICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMTYpOiB0aWQ6IGQwZDMyMGUxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4OGMwMCBuYmxvY2tzIDB4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDExNyk6IHRpZDogZDBkMzIwZTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTE4KTogdGlkOiBkMGQzMjBlMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTkpOiB0aWQ6IGQwZDMyMGUxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25n ZXN0OiAxOTQ5MjM0NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMCk6IHRpZDogZDBkMzIw ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMjEpOiB0aWQ6IGQwZDMyMGUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDog ZDBkMzIwZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTIzKTogdGlkOiBkMGQzMjBlMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0 aWQ6IGQwZDMyMGUxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjUpOiB0aWQ6IGY2OTg4YTRiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6 IHRpZDogZjY5ODhhNGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogZjY5ODhhNGIgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEyOCk6IHRpZDogZjY5ODhhNGIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhhMDAwIG5ibG9ja3MgMHhjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTI5KTogdGlkOiBmNjk4OGE0YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MzApOiB0aWQ6IGY2OTg4YTRiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEzMSk6IHRpZDogZjY5ODhhNGIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDIgIGxvbmdlc3Q6 IDE5NDkyMzQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMyKTogdGlkOiBmNjk4OGE0YiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEzMyk6IHRpZDogZjY5ODhhNGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiBmNjk4 OGE0YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMzUpOiB0aWQ6IGY2OTg4YTRiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRpZDog ZjY5ODhhNGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzNyk6IHRpZDogNmI1NDcyZGMgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTogdGlk OiA2YjU0NzJkYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiA2YjU0NzJkYyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTQwKTogdGlkOiA2YjU0NzJkYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGI0MDAgbmJsb2NrcyAweGQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgxNDEpOiB0aWQ6IDZiNTQ3MmRjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Mik6 IHRpZDogNmI1NDcyZGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTQzKTogdGlkOiA2YjU0NzJkYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0MSAgbG9uZ2VzdDogMTk0 OTIzNDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDQpOiB0aWQ6IDZiNTQ3MmRjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTQ1KTogdGlkOiA2YjU0NzJkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0aWQ6IDZiNTQ3MmRj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE0Nyk6IHRpZDogNmI1NDcyZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlkOiA2YjU0 NzJkYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiBlNjNlOTU5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IGU2 M2U5NTlmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IGU2M2U5NTlmICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx NTIpOiB0aWQ6IGU2M2U5NTlmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YzgwMCBuYmxvY2tzIDB4ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDE1Myk6IHRpZDogZTYzZTk1OWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU0KTogdGlk OiBlNjNlOTU5ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxNTUpOiB0aWQ6IGU2M2U5NTlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQwICBsb25nZXN0OiAxOTQ5MjM0 MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nik6IHRpZDogZTYzZTk1OWYgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTcp OiB0aWQ6IGU2M2U5NTlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OCk6IHRpZDogZTYzZTk1OWYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTU5KTogdGlkOiBlNjNlOTU5ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IGU2M2U5NTlm ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNjEpOiB0aWQ6IDZjYTE5MzlkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogNmNhMTkz OWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE2Myk6IHRpZDogNmNhMTkzOWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2NCk6 IHRpZDogNmNhMTkzOWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAw IG5ibG9ja3MgMHhmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTY1 KTogdGlkOiA2Y2ExOTM5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjYpOiB0aWQ6IDZj YTE5MzlkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDE2Nyk6IHRpZDogNmNhMTkzOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzkgIGxvbmdlc3Q6IDE5NDkyMzM5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY4KTogdGlkOiA2Y2ExOTM5ZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OSk6IHRp ZDogNmNhMTkzOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiA2Y2ExOTM5ZCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzEp OiB0aWQ6IDZjYTE5MzlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Mik6IHRpZDogNmNhMTkzOWQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE3Myk6IHRpZDogZmVkOTY5MDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc0KTogdGlkOiBmZWQ5NjkwNSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTc1KTogdGlkOiBmZWQ5NjkwNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTc2KTogdGlk OiBmZWQ5NjkwNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYwMDAgbmJs b2NrcyAweDExIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTc3KTog dGlkOiBmZWQ5NjkwNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzgpOiB0aWQ6IGZlZDk2 OTA1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE3OSk6IHRpZDogZmVkOTY5MDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzcgIGxvbmdlc3Q6IDE5NDkyMzM3Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgwKTogdGlkOiBmZWQ5NjkwNSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4MSk6IHRpZDog ZmVkOTY5MDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgyKTogdGlkOiBmZWQ5NjkwNSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODMpOiB0 aWQ6IGZlZDk2OTA1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogZmVkOTY5MDUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE4NSk6IHRpZDogNDA1NDEwNzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlkOiA0MDU0MTA3NCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTg3KTogdGlkOiA0MDU0MTA3NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg4KTogdGlkOiA0 MDU0MTA3NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDEwNDAwIG5ibG9j a3MgMHgxMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE4OSk6IHRp ZDogNDA1NDEwNzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkwKTogdGlkOiA0MDU0MTA3 NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxOTEpOiB0aWQ6IDQwNTQxMDc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM2ICBsb25nZXN0OiAxOTQ5MjMzNgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Mik6IHRpZDogNDA1NDEwNzQgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTMpOiB0aWQ6IDQw NTQxMDc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NCk6IHRpZDogNDA1NDEwNzQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk1KTogdGlk OiA0MDU0MTA3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IDQwNTQxMDc0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTcpOiB0aWQ6IGY4N2VhMzEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDogZjg3ZWEzMTMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5OSk6IHRpZDogZjg3ZWEzMTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIwMCk6IHRpZDogZjg3 ZWEzMTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBuYmxvY2tz IDB4MTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyMDEpOiB0aWQ6 IGY4N2VhMzEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMik6IHRpZDogZjg3ZWEzMTMg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjAzKTogdGlkOiBmODdlYTMxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDQpOiB0aWQ6IGY4N2VhMzEzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA1KTogdGlkOiBmODdl YTMxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDYpOiB0aWQ6IGY4N2VhMzEzICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNyk6IHRpZDog Zjg3ZWEzMTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiBmODdlYTMxMyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjA5KTogdGlkOiBkMGEwOTdhNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IGQwYTA5N2E0ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MTEpOiB0aWQ6IGQwYTA5N2E0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTIpOiB0aWQ6IGQwYTA5 N2E0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTJjMDAgbmJsb2NrcyAw eDE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjEzKTogdGlkOiBk MGEwOTdhNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTQpOiB0aWQ6IGQwYTA5N2E0ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDIxNSk6IHRpZDogZDBhMDk3YTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMzQgIGxvbmdlc3Q6IDE5NDkyMzM0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjE2KTogdGlkOiBkMGEwOTdhNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxNyk6IHRpZDogZDBhMDk3 YTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiBkMGEwOTdhNCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTkpOiB0aWQ6IGQw YTA5N2E0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogZDBhMDk3YTQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIy MSk6IHRpZDogOTRiODc2ZmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiA5NGI4NzZmZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIz KTogdGlkOiA5NGI4NzZmZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjI0KTogdGlkOiA5NGI4NzZm ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9ja3MgMHgx NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIyNSk6IHRpZDogOTRi ODc2ZmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI2KTogdGlkOiA5NGI4NzZmZCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy MjcpOiB0aWQ6IDk0Yjg3NmZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzMyICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIyOCk6IHRpZDogOTRiODc2ZmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjkpOiB0aWQ6IDk0Yjg3NmZk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogOTRiODc2ZmQgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMxKTogdGlkOiA5NGI4 NzZmZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDk0Yjg3NmZkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMp OiB0aWQ6IDc5ZTZhM2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM0KTogdGlkOiA3OWU2YTNjICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0 aWQ6IDc5ZTZhM2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzNik6IHRpZDogNzllNmEzYyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE1NDAwIG5ibG9ja3MgMHgxNyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIzNyk6IHRpZDogNzllNmEzYyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzgpOiB0aWQ6IDc5ZTZhM2MgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM5KTogdGlk OiA3OWU2YTNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzMxICBsb25nZXN0OiAxOTQ5MjMzMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0MCk6IHRpZDogNzllNmEzYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0MSk6IHRpZDogNzllNmEzYyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNDIpOiB0aWQ6IDc5ZTZhM2MgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQzKTogdGlkOiA3OWU2YTNjICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI0NCk6IHRpZDogNzllNmEzYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiA2ZWNmMzEz ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDYpOiB0aWQ6IDZlY2YzMTNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IDZlY2YzMTNm ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDgpOiB0aWQ6IDZlY2YzMTNmICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAweDE4IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjQ5KTogdGlkOiA2ZWNmMzEzZiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTApOiB0aWQ6IDZlY2YzMTNmICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1MSk6IHRpZDogNmVjZjMx M2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMzAgIGxvbmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUy KTogdGlkOiA2ZWNmMzEzZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI1Myk6IHRpZDogNmVjZjMxM2YgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjU0KTogdGlkOiA2ZWNmMzEzZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTUpOiB0aWQ6IDZlY2YzMTNmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1Nik6IHRpZDogNmVjZjMxM2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogZTVjYjg3YjEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU4KTogdGlkOiBlNWNiODdiMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiBlNWNiODdiMSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjYwKTogdGlkOiBlNWNiODdiMSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDE3YzAwIG5ibG9ja3MgMHgxOSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI2MSk6IHRpZDogZTVjYjg3YjEgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYyKTogdGlkOiBlNWNiODdiMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjMpOiB0aWQ6IGU1Y2I4N2Ix ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzI5ICBsb25nZXN0OiAxOTQ5MjMyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NCk6 IHRpZDogZTVjYjg3YjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNjUpOiB0aWQ6IGU1Y2I4N2IxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2Nik6IHRpZDogZTVjYjg3YjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY3KTogdGlkOiBlNWNiODdiMSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjgpOiB0aWQ6IGU1Y2I4N2IxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IGU2YmUwOWVlICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI3MCk6IHRpZDogZTZiZTA5ZWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogZTZiZTA5ZWUgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI3Mik6IHRpZDogZTZiZTA5ZWUgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgyNzMpOiB0aWQ6IGU2YmUwOWVlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3NCk6IHRpZDogZTZiZTA5ZWUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc1KTogdGlkOiBlNmJlMDllZSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMyNyAgbG9uZ2VzdDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzYpOiB0 aWQ6IGU2YmUwOWVlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjc3KTogdGlkOiBlNmJlMDllZSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzgpOiB0aWQ6IGU2YmUwOWVlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI3OSk6IHRpZDogZTZiZTA5ZWUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjgwKTogdGlkOiBlNmJlMDllZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiAyNjFhZmI1ZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODIpOiB0aWQ6IDI2MWFmYjVlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IDI2MWFmYjVlICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyODQpOiB0aWQ6IDI2MWFmYjVlICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMjg1KTogdGlkOiAyNjFhZmI1ZSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODYpOiB0aWQ6IDI2MWFmYjVlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4Nyk6IHRpZDogMjYxYWZiNWUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MjYgIGxvbmdlc3Q6IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg4KTogdGlk OiAyNjFhZmI1ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI4OSk6IHRpZDogMjYxYWZiNWUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkw KTogdGlkOiAyNjFhZmI1ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyOTEpOiB0aWQ6IDI2MWFmYjVlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5Mik6IHRpZDogMjYxYWZiNWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogOTM1YmIwOWIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjk0KTogdGlkOiA5MzViYjA5YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk1KTogdGlkOiA5MzViYjA5YiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjk2KTogdGlkOiA5MzViYjA5YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDFiODAwIG5ibG9ja3MgMHgxZCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDI5Nyk6IHRpZDogOTM1YmIwOWIgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjk4KTogdGlkOiA5MzViYjA5YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTkpOiB0aWQ6IDkzNWJiMDliICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI1 ICBsb25nZXN0OiAxOTQ5MjMyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMCk6IHRpZDog OTM1YmIwOWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMDEpOiB0aWQ6IDkzNWJiMDliICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6 IHRpZDogOTM1YmIwOWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzAzKTogdGlkOiA5MzViYjA5YiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDQpOiB0aWQ6IDkzNWJiMDliICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0aWQ6IDZhZjJjYzdiICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwNik6IHRpZDogNmFmMmNjN2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNyk6IHRpZDogNmFmMmNjN2IgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDMwOCk6IHRpZDogNmFmMmNjN2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgzMDkpOiB0aWQ6IDZhZjJjYzdiICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxMCk6IHRpZDogNmFmMmNjN2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzExKTogdGlkOiA2YWYyY2M3YiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNCAg bG9uZ2VzdDogMTk0OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTIpOiB0aWQ6IDZh ZjJjYzdiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzEzKTogdGlkOiA2YWYyY2M3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0 aWQ6IDZhZjJjYzdiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDMxNSk6IHRpZDogNmFmMmNjN2IgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2 KTogdGlkOiA2YWYyY2M3YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE3KTogdGlkOiA0NzhjMTI3NCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTgpOiB0aWQ6IDQ3OGMxMjc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTkpOiB0aWQ6IDQ3OGMxMjc0ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzMjApOiB0aWQ6IDQ3OGMxMjc0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MWUwMDAgbmJsb2NrcyAweDIwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMzIxKTogdGlkOiA0NzhjMTI3NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjIpOiB0aWQ6IDQ3OGMxMjc0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyMyk6IHRpZDogNDc4YzEyNzQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjIgIGxv bmdlc3Q6IDE5NDkyMzIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI0KTogdGlkOiA0Nzhj MTI3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMyNSk6IHRpZDogNDc4YzEyNzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlk OiA0NzhjMTI3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMjcpOiB0aWQ6IDQ3OGMxMjc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6 IHRpZDogNDc4YzEyNzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogOGU2NzQ4ODUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMw KTogdGlkOiA4ZTY3NDg4NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMxKTogdGlkOiA4ZTY3NDg4NSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzMyKTogdGlkOiA4ZTY3NDg4NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDFmNDAwIG5ibG9ja3MgMHgyMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDMzMyk6IHRpZDogOGU2NzQ4ODUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM0KTogdGlkOiA4ZTY3NDg4NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzUpOiB0aWQ6IDhlNjc0ODg1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzIxICBsb25n ZXN0OiAxOTQ5MjMyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNik6IHRpZDogOGU2NzQ4 ODUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMzcpOiB0aWQ6IDhlNjc0ODg1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDog OGU2NzQ4ODUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzM5KTogdGlkOiA4ZTY3NDg4NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0 aWQ6IDhlNjc0ODg1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IDQ2NGM1ZDdiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6 IHRpZDogNDY0YzVkN2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Myk6IHRpZDogNDY0YzVkN2IgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDM0NCk6IHRpZDogNDY0YzVkN2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyMDgwMCBuYmxvY2tzIDB4MjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgzNDUpOiB0aWQ6IDQ2NGM1ZDdiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0Nik6IHRpZDogNDY0YzVkN2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ3KTogdGlkOiA0NjRjNWQ3YiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMCAgbG9uZ2Vz dDogMTk0OTIzMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDgpOiB0aWQ6IDQ2NGM1ZDdi ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzQ5KTogdGlkOiA0NjRjNWQ3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTApOiB0aWQ6IDQ2 NGM1ZDdiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1MSk6IHRpZDogNDY0YzVkN2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlk OiA0NjRjNWQ3YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTogdGlkOiBlM2M5OGQ1ZSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0 aWQ6IGUzYzk4ZDVlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IGUzYzk4ZDVlICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzNTYpOiB0aWQ6IGUzYzk4ZDVlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MjFjMDAgbmJsb2NrcyAweDIzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMzU3KTogdGlkOiBlM2M5OGQ1ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTgpOiB0aWQ6IGUzYzk4ZDVlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM1OSk6IHRpZDogZTNjOThkNWUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTkgIGxvbmdlc3Q6 IDE5NDkyMzE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYwKTogdGlkOiBlM2M5OGQ1ZSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM2MSk6IHRpZDogZTNjOThkNWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYyKTogdGlkOiBlM2M5 OGQ1ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNjMpOiB0aWQ6IGUzYzk4ZDVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDog ZTNjOThkNWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRpZDogYzExZGI4ZWYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlk OiBjMTFkYjhlZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzY3KTogdGlkOiBjMTFkYjhlZiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzY4KTogdGlkOiBjMTFkYjhlZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDIzMDAwIG5ibG9ja3MgMHgyNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDM2OSk6IHRpZDogYzExZGI4ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcw KTogdGlkOiBjMTFkYjhlZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzNzEpOiB0aWQ6IGMxMWRiOGVmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE3ICBsb25nZXN0OiAx OTQ5MjMxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Mik6IHRpZDogYzExZGI4ZWYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzNzMpOiB0aWQ6IGMxMWRiOGVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NCk6IHRpZDogYzExZGI4 ZWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzc1KTogdGlkOiBjMTFkYjhlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IGMx MWRiOGVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IDZjYjQwMWY5ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDog NmNiNDAxZjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDogNmNiNDAxZjkgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDM4MCk6IHRpZDogNmNiNDAxZjkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgyNDQwMCBuYmxvY2tzIDB4MjYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgzODEpOiB0aWQ6IDZjYjQwMWY5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Mik6 IHRpZDogNmNiNDAxZjkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzgzKTogdGlkOiA2Y2I0MDFmOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNiAgbG9uZ2VzdDogMTk0 OTIzMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODQpOiB0aWQ6IDZjYjQwMWY5ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo Mzg1KTogdGlkOiA2Y2I0MDFmOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODYpOiB0aWQ6IDZjYjQwMWY5 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM4Nyk6IHRpZDogNmNiNDAxZjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiA2Y2I0 MDFmOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiA2ZjVlNGUwOCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IDZm NWU0ZTA4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTEpOiB0aWQ6IDZmNWU0ZTA4ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz OTIpOiB0aWQ6IDZmNWU0ZTA4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MjU4MDAgbmJsb2NrcyAweDI3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMzkzKTogdGlkOiA2ZjVlNGUwOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTQpOiB0 aWQ6IDZmNWU0ZTA4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDM5NSk6IHRpZDogNmY1ZTRlMDggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTUgIGxvbmdlc3Q6IDE5NDky MzE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk2KTogdGlkOiA2ZjVlNGUwOCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5 Nyk6IHRpZDogNmY1ZTRlMDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4KTogdGlkOiA2ZjVlNGUwOCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzOTkpOiB0aWQ6IDZmNWU0ZTA4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogNmY1ZTRl MDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogODE2YWQ0MjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiA4MTZh ZDQyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDAzKTogdGlkOiA4MTZhZDQyOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDA0 KTogdGlkOiA4MTZhZDQyOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI2 YzAwIG5ibG9ja3MgMHgyOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDQwNSk6IHRpZDogODE2YWQ0MjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA2KTogdGlk OiA4MTZhZDQyOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0MDcpOiB0aWQ6IDgxNmFkNDI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE0ICBsb25nZXN0OiAxOTQ5MjMx NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOCk6IHRpZDogODE2YWQ0MjggIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDkp OiB0aWQ6IDgxNmFkNDI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRpZDogODE2YWQ0MjggIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDExKTogdGlkOiA4MTZhZDQyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IDgxNmFkNDI4 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTMpOiB0aWQ6IDEzYzRmZWY0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogMTNjNGZl ZjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQxNSk6IHRpZDogMTNjNGZlZjQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxNik6 IHRpZDogMTNjNGZlZjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyODAw MCBuYmxvY2tzIDB4MmEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0 MTcpOiB0aWQ6IDEzYzRmZWY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOCk6IHRpZDog MTNjNGZlZjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDE5KTogdGlkOiAxM2M0ZmVmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxMiAgbG9uZ2VzdDogMTk0OTIzMTIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjApOiB0aWQ6IDEzYzRmZWY0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIxKTog dGlkOiAxM2M0ZmVmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IDEzYzRmZWY0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQy Myk6IHRpZDogMTNjNGZlZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiAxM2M0ZmVmNCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDI1KTogdGlkOiBlY2IyMTgxOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IGVjYjIxODE5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MjcpOiB0aWQ6IGVjYjIxODE5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjgpOiB0 aWQ6IGVjYjIxODE5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mjk0MDAg bmJsb2NrcyAweDJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDI5 KTogdGlkOiBlY2IyMTgxOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzApOiB0aWQ6IGVj YjIxODE5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQzMSk6IHRpZDogZWNiMjE4MTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTEgIGxvbmdlc3Q6IDE5NDkyMzExCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMyKTogdGlkOiBlY2IyMTgxOSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMyk6IHRp ZDogZWNiMjE4MTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiBlY2IyMTgxOSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzUp OiB0aWQ6IGVjYjIxODE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogZWNiMjE4MTkgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzNyk6IHRpZDogZGJmNmE0NTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlkOiBkYmY2YTQ1NyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDM5KTogdGlkOiBkYmY2YTQ1NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDQwKTogdGlk OiBkYmY2YTQ1NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJhODAwIG5i bG9ja3MgMHgyYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ0MSk6 IHRpZDogZGJmNmE0NTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQyKTogdGlkOiBkYmY2 YTQ1NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NDMpOiB0aWQ6IGRiZjZhNDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzEwICBsb25nZXN0OiAxOTQ5MjMxMAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NCk6IHRpZDogZGJmNmE0NTcgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDUpOiB0aWQ6 IGRiZjZhNDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogZGJmNmE0NTcgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ3KTog dGlkOiBkYmY2YTQ1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IGRiZjZhNDU3ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NDkpOiB0aWQ6IDc2NDAwZmNlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogNzY0MDBmY2UgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ1MSk6IHRpZDogNzY0MDBmY2UgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1Mik6IHRpZDog NzY0MDBmY2UgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyYmMwMCBuYmxv Y2tzIDB4MmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NTMpOiB0 aWQ6IDc2NDAwZmNlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NCk6IHRpZDogNzY0MDBm Y2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDU1KTogdGlkOiA3NjQwMGZjZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwOSAgbG9uZ2VzdDogMTk0OTIzMDkKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NTYpOiB0aWQ6IDc2NDAwZmNlICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU3KTogdGlkOiA3 NjQwMGZjZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IDc2NDAwZmNlICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1OSk6IHRp ZDogNzY0MDBmY2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiA3NjQwMGZjZSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYxKTogdGlkOiA2Yzg3NmE3ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IDZjODc2YTdmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjMpOiB0aWQ6IDZjODc2YTdmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjQpOiB0aWQ6IDZj ODc2YTdmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmQwMDAgbmJsb2Nr cyAweDJmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDY1KTogdGlk OiA2Yzg3NmE3ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjYpOiB0aWQ6IDZjODc2YTdm ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQ2Nyk6IHRpZDogNmM4NzZhN2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDcgIGxvbmdlc3Q6IDE5NDkyMzA3Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDY4KTogdGlkOiA2Yzg3NmE3ZiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2OSk6IHRpZDogNmM4 NzZhN2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA2Yzg3NmE3ZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzEpOiB0aWQ6 IDZjODc2YTdmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogNmM4NzZhN2YgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ3Myk6IHRpZDogODAyNjFmZmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiA4MDI2MWZmZSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDc1KTogdGlkOiA4MDI2MWZmZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDc2KTogdGlkOiA4MDI2 MWZmZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJlNDAwIG5ibG9ja3Mg MHgzMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ3Nyk6IHRpZDog ODAyNjFmZmUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc4KTogdGlkOiA4MDI2MWZmZSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0NzkpOiB0aWQ6IDgwMjYxZmZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA2ICBsb25nZXN0OiAxOTQ5MjMwNgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4MCk6IHRpZDogODAyNjFmZmUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODEpOiB0aWQ6IDgwMjYx ZmZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogODAyNjFmZmUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgzKTogdGlkOiA4 MDI2MWZmZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDgwMjYxZmZlICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 ODUpOiB0aWQ6IDVhZDYyZWNjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogNWFkNjJlY2MgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 Nyk6IHRpZDogNWFkNjJlY2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4OCk6IHRpZDogNWFkNjJl Y2MgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyZjgwMCBuYmxvY2tzIDB4 MzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0ODkpOiB0aWQ6IDVh ZDYyZWNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5MCk6IHRpZDogNWFkNjJlY2MgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDkxKTogdGlkOiA1YWQ2MmVjYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09O VElOVUUgCkFHRiBCdWZmZXI6IFhBR0YgIE91dCBvZiBzcGFjZQoKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNzAJdGFpbF9sc246IDEsNgpsZW5ndGggb2Yg TG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDYJCW51bSBvcHM6IDQ4OQp1dWlkOiBiMGMw ZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4g bGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDVh ZDYyZWNjICBsZW46IDExMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApM ZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxKTogdGlkOiA1YWQ2MmVjYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIpOiB0aWQ6IDVhZDYyZWNjICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMpOiB0aWQ6IDVhZDYyZWNjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQpOiB0aWQ6IDVhZDYyZWNjICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDUpOiB0aWQ6IDVhZDYyZWNjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlkOiBlZDQ5YTU5MiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3KTogdGlkOiBlZDQ5YTU5MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOCk6IHRpZDogZWQ0OWE1OTIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDkpOiB0aWQ6IGVkNDlhNTkyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MzBjMDAgbmJsb2NrcyAweDMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMTApOiB0aWQ6IGVkNDlhNTkyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExKTogdGlkOiBlZDQ5YTU5MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogZWQ0OWE1OTIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDQgIGxvbmdl c3Q6IDE5NDkyMzA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IGVkNDlhNTky ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTQpOiB0aWQ6IGVkNDlhNTkyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiBlZDQ5 YTU5MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxNik6IHRpZDogZWQ0OWE1OTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IGVk NDlhNTkyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogYzNmNTc5YmUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IGMz ZjU3OWJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMCk6IHRpZDogYzNmNTc5YmUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIx KTogdGlkOiBjM2Y1NzliZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMy MDAwIG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDIyKTogdGlkOiBjM2Y1NzliZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDog YzNmNTc5YmUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjQpOiB0aWQ6IGMzZjU3OWJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAyICBsb25nZXN0OiAxOTQ5MjMwMgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiBjM2Y1NzliZSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlk OiBjM2Y1NzliZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogYzNmNTc5YmUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgpOiB0 aWQ6IGMzZjU3OWJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiBjM2Y1NzliZSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzApOiB0aWQ6IGYxYTk3NGM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiBmMWE5NzRjOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzIpOiB0aWQ6IGYxYTk3NGM5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMyk6IHRpZDogZjFhOTc0 YzkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMzQwMCBuYmxvY2tzIDB4 MzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNCk6IHRpZDogZjFh OTc0YzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGYxYTk3NGM5ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2 KTogdGlkOiBmMWE5NzRjOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMwMSAgbG9uZ2VzdDogMTk0OTIzMDEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNyk6IHRpZDogZjFhOTc0YzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDogZjFhOTc0YzkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IGYxYTk3NGM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwKTogdGlkOiBmMWE5NzRjOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MSk6IHRpZDogZjFhOTc0YzkgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiBm ZmZlY2UwMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0Myk6IHRpZDogZmZmZWNlMDIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0KTogdGlkOiBmZmZl Y2UwMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDUpOiB0aWQ6IGZmZmVjZTAyICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzQ4MDAgbmJsb2NrcyAweDM2IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDYpOiB0aWQ6IGZmZmVjZTAyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiBmZmZlY2UwMiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogZmZmZWNl MDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMDAgIGxvbmdlc3Q6IDE5NDkyMzAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkp OiB0aWQ6IGZmZmVjZTAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNTApOiB0aWQ6IGZmZmVjZTAyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDUxKTogdGlkOiBmZmZlY2UwMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1Mik6IHRpZDogZmZmZWNlMDIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNTMpOiB0aWQ6IGZmZmVjZTAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NCk6IHRpZDogYjUyZjg4YzggIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNTUpOiB0aWQ6IGI1MmY4OGM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDogYjUyZjg4YzggIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDU3KTogdGlkOiBiNTJmODhjOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDM1YzAwIG5ibG9ja3MgMHgzNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDU4KTogdGlkOiBiNTJmODhjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1OSk6IHRpZDogYjUyZjg4YzggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IGI1MmY4OGM4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk5ICBsb25n ZXN0OiAxOTQ5MjI5OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiBiNTJmODhj OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDYyKTogdGlkOiBiNTJmODhjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogYjUy Zjg4YzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNjQpOiB0aWQ6IGI1MmY4OGM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiBi NTJmODhjOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IGI0N2U0MDdiICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBi NDdlNDA3YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6IGI0N2U0MDdiICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2 OSk6IHRpZDogYjQ3ZTQwN2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgz NzAwMCBuYmxvY2tzIDB4MzkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICg3MCk6IHRpZDogYjQ3ZTQwN2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6 IGI0N2U0MDdiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDcyKTogdGlkOiBiNDdlNDA3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NyAgbG9uZ2VzdDogMTk0OTIyOTcK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogYjQ3ZTQwN2IgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NCk6IHRp ZDogYjQ3ZTQwN2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IGI0N2U0MDdiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc2KTog dGlkOiBiNDdlNDA3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogYjQ3ZTQwN2IgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc4KTogdGlkOiA0NDQxMzFhMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogNDQ0MTMxYTIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDgwKTogdGlkOiA0NDQxMzFhMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODEpOiB0aWQ6IDQ0NDEz MWEyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mzg0MDAgbmJsb2NrcyAw eDNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODIpOiB0aWQ6IDQ0 NDEzMWEyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiA0NDQxMzFhMiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4 NCk6IHRpZDogNDQ0MTMxYTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyOTYgIGxvbmdlc3Q6IDE5NDkyMjk2Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoODUpOiB0aWQ6IDQ0NDEzMWEyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODYpOiB0aWQ6IDQ0NDEzMWEyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiA0NDQxMzFhMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OCk6IHRpZDogNDQ0MTMxYTIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6IDQ0NDEzMWEyICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDog NDMwYmM5ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDogNDMwYmM5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTIpOiB0aWQ6IDQzMGJj OWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkzKTogdGlkOiA0MzBiYzlkICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mzk4MDAgbmJsb2NrcyAweDNiIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoOTQpOiB0aWQ6IDQzMGJjOWQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IDQzMGJjOWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IDQzMGJjOWQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy OTUgIGxvbmdlc3Q6IDE5NDkyMjk1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTcpOiB0aWQ6 IDQzMGJjOWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg5OCk6IHRpZDogNDMwYmM5ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OSk6IHRp ZDogNDMwYmM5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMDApOiB0aWQ6IDQzMGJjOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAxKTog dGlkOiA0MzBiYzlkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDIpOiB0aWQ6IDc3ZjExMTExICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMyk6 IHRpZDogNzdmMTExMTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNCk6IHRpZDogNzdmMTExMTEgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEwNSk6IHRpZDogNzdmMTExMTEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgzYWMwMCBuYmxvY2tzIDB4M2MgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgxMDYpOiB0aWQ6IDc3ZjExMTExICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwNyk6IHRpZDogNzdmMTExMTEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiA3N2YxMTExMSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NCAgbG9uZ2Vz dDogMTk0OTIyOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IDc3ZjExMTEx ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTEwKTogdGlkOiA3N2YxMTExMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IDc3 ZjExMTExICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDExMik6IHRpZDogNzdmMTExMTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlk OiA3N2YxMTExMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTE0KTogdGlkOiA4NzMyYmY4MCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0 aWQ6IDg3MzJiZjgwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTYpOiB0aWQ6IDg3MzJiZjgwICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxMTcpOiB0aWQ6IDg3MzJiZjgwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4M2MwMDAgbmJsb2NrcyAweDNlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTE4KTogdGlkOiA4NzMyYmY4MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTkpOiB0aWQ6IDg3MzJiZjgwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogODczMmJmODAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTIgIGxvbmdlc3Q6 IDE5NDkyMjkyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiA4NzMyYmY4MCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEyMik6IHRpZDogODczMmJmODAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTogdGlkOiA4NzMy YmY4MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMjQpOiB0aWQ6IDg3MzJiZjgwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNSk6IHRpZDog ODczMmJmODAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogY2ZkZGZkMDMgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTogdGlk OiBjZmRkZmQwMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTI4KTogdGlkOiBjZmRkZmQwMyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTI5KTogdGlkOiBjZmRkZmQwMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDNkNDAwIG5ibG9ja3MgMHgzZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDEzMCk6IHRpZDogY2ZkZGZkMDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMx KTogdGlkOiBjZmRkZmQwMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IGNmZGRmZDAzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkxICBsb25nZXN0OiAx OTQ5MjI5MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogY2ZkZGZkMDMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxMzQpOiB0aWQ6IGNmZGRmZDAzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRpZDogY2ZkZGZk MDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTM2KTogdGlkOiBjZmRkZmQwMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IGNm ZGRmZDAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IGE4ZDk5ZmUwICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDog YThkOTlmZTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0MCk6IHRpZDogYThkOTlmZTAgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDE0MSk6IHRpZDogYThkOTlmZTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzZTgwMCBuYmxvY2tzIDB4NDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgxNDIpOiB0aWQ6IGE4ZDk5ZmUwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6 IHRpZDogYThkOTlmZTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiBhOGQ5OWZlMCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5MCAgbG9uZ2VzdDogMTk0 OTIyOTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IGE4ZDk5ZmUwICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTQ2KTogdGlkOiBhOGQ5OWZlMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6IGE4ZDk5ZmUw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE0OCk6IHRpZDogYThkOTlmZTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiBhOGQ5 OWZlMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTUwKTogdGlkOiA1MDk3OGU1YiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IDUw OTc4ZTViICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTIpOiB0aWQ6IDUwOTc4ZTViICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx NTMpOiB0aWQ6IDUwOTc4ZTViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 M2ZjMDAgbmJsb2NrcyAweDQxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMTU0KTogdGlkOiA1MDk3OGU1YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0 aWQ6IDUwOTc4ZTViICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogNTA5NzhlNWIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODkgIGxvbmdlc3Q6IDE5NDky Mjg5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3KTogdGlkOiA1MDk3OGU1YiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1 OCk6IHRpZDogNTA5NzhlNWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA1MDk3OGU1YiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNjApOiB0aWQ6IDUwOTc4ZTViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogNTA5Nzhl NWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogMTY3M2Q3MTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTogdGlkOiAxNjcz ZDcxNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY0KTogdGlkOiAxNjczZDcxNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTY1 KTogdGlkOiAxNjczZDcxNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQx MDAwIG5ibG9ja3MgMHg0MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDE2Nik6IHRpZDogMTY3M2Q3MTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlk OiAxNjczZDcxNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IDE2NzNkNzE0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg3ICBsb25nZXN0OiAxOTQ5MjI4 NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogMTY3M2Q3MTQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzAp OiB0aWQ6IDE2NzNkNzE0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogMTY3M2Q3MTQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTcyKTogdGlkOiAxNjczZDcxNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IDE2NzNkNzE0 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzQpOiB0aWQ6IDRmMTBjZWNmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRpZDogNGYxMGNl Y2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3Nik6IHRpZDogNGYxMGNlY2YgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3Nyk6 IHRpZDogNGYxMGNlY2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0MjQw MCBuYmxvY2tzIDB4NDQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgx NzgpOiB0aWQ6IDRmMTBjZWNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDog NGYxMGNlY2YgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTgwKTogdGlkOiA0ZjEwY2VjZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NiAgbG9uZ2VzdDogMTk0OTIyODYK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IDRmMTBjZWNmICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgyKTog dGlkOiA0ZjEwY2VjZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IDRmMTBjZWNmICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4 NCk6IHRpZDogNGYxMGNlY2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiA0ZjEwY2VjZiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTg2KTogdGlkOiAzNGRjNWE5MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6IDM0ZGM1YTkw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxODgpOiB0aWQ6IDM0ZGM1YTkwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxODkpOiB0 aWQ6IDM0ZGM1YTkwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDM4MDAg bmJsb2NrcyAweDQ1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTkw KTogdGlkOiAzNGRjNWE5MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDM0 ZGM1YTkwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDE5Mik6IHRpZDogMzRkYzVhOTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODUgIGxvbmdlc3Q6IDE5NDkyMjg1Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlkOiAzNGRjNWE5MCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5NCk6IHRp ZDogMzRkYzVhOTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiAzNGRjNWE5MCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTYp OiB0aWQ6IDM0ZGM1YTkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogMzRkYzVhOTAgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE5OCk6IHRpZDogODk3ZTE3NzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiA4OTdlMTc3OSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjAwKTogdGlkOiA4OTdlMTc3OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjAxKTogdGlk OiA4OTdlMTc3OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ0YzAwIG5i bG9ja3MgMHg0NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIwMik6 IHRpZDogODk3ZTE3NzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA4OTdl MTc3OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyMDQpOiB0aWQ6IDg5N2UxNzc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg0ICBsb25nZXN0OiAxOTQ5MjI4NAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogODk3ZTE3NzkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDYpOiB0aWQ6 IDg5N2UxNzc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogODk3ZTE3NzkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA4KTog dGlkOiA4OTdlMTc3OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDg5N2UxNzc5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTApOiB0aWQ6IGY2ZDA3YjM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogZjZkMDdiMzggIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIxMik6IHRpZDogZjZkMDdiMzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxMyk6IHRpZDog ZjZkMDdiMzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NjAwMCBuYmxv Y2tzIDB4NDggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyMTQpOiB0 aWQ6IGY2ZDA3YjM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogZjZkMDdi MzggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMjE2KTogdGlkOiBmNmQwN2IzOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4MiAgbG9uZ2VzdDogMTk0OTIyODIKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IGY2ZDA3YjM4ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE4KTogdGlkOiBm NmQwN2IzOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0aWQ6IGY2ZDA3YjM4ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMCk6IHRp ZDogZjZkMDdiMzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiBmNmQwN2IzOCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjIyKTogdGlkOiAzMTZjNWQ4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IDMxNmM1ZDg0ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMjQpOiB0aWQ6IDMxNmM1ZDg0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjUpOiB0aWQ6IDMx NmM1ZDg0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDc0MDAgbmJsb2Nr cyAweDQ5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjI2KTogdGlk OiAzMTZjNWQ4NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IDMxNmM1ZDg0 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDIyOCk6IHRpZDogMzE2YzVkODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODEgIGxvbmdlc3Q6IDE5NDkyMjgxCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiAzMTZjNWQ4NCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6IHRpZDogMzE2 YzVkODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlkOiAzMTZjNWQ4NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzIpOiB0aWQ6 IDMxNmM1ZDg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogMzE2YzVkODQgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzNCk6IHRpZDogYjFlMGJmNzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiBiMWUwYmY3OCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjM2KTogdGlkOiBiMWUwYmY3OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjM3KTogdGlkOiBiMWUw YmY3OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ4ODAwIG5ibG9ja3Mg MHg0YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIzOCk6IHRpZDog YjFlMGJmNzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiBiMWUwYmY3OCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyNDApOiB0aWQ6IGIxZTBiZjc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjgwICBsb25nZXN0OiAxOTQ5MjI4MAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogYjFlMGJmNzggIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDIpOiB0aWQ6IGIxZTBi Zjc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDogYjFlMGJmNzggIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ0KTogdGlkOiBi MWUwYmY3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDUpOiB0aWQ6IGIxZTBiZjc4ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDYpOiB0aWQ6IDIzMDI3MWJlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogMjMwMjcxYmUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0 OCk6IHRpZDogMjMwMjcxYmUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0OSk6IHRpZDogMjMwMjcx YmUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0OWMwMCBuYmxvY2tzIDB4 NGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNTApOiB0aWQ6IDIz MDI3MWJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogMjMwMjcxYmUgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MjUyKTogdGlkOiAyMzAyNzFiZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3OSAgbG9uZ2VzdDogMTk0OTIyNzkKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IDIzMDI3MWJlICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU0KTogdGlkOiAyMzAyNzFi ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDIzMDI3MWJlICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1Nik6IHRpZDogMjMw MjcxYmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU3KTogdGlkOiAyMzAyNzFiZSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4 KTogdGlkOiA1MzYyZmY0YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6IDUzNjJmZjRhICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjAp OiB0aWQ6IDUzNjJmZjRhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjEpOiB0aWQ6IDUzNjJmZjRh ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGIwMDAgbmJsb2NrcyAweDRk IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjYyKTogdGlkOiA1MzYy ZmY0YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IDUzNjJmZjRhICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2 NCk6IHRpZDogNTM2MmZmNGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNzcgIGxvbmdlc3Q6IDE5NDkyMjc3Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjY1KTogdGlkOiA1MzYyZmY0YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nik6IHRpZDogNTM2MmZmNGEg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiA1MzYyZmY0YSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjgpOiB0aWQ6IDUzNjJm ZjRhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OSk6IHRpZDogNTM2MmZmNGEgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6 IHRpZDogNDMyMTEwNDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlkOiA0MzIxMTA0NSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcyKTog dGlkOiA0MzIxMTA0NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjczKTogdGlkOiA0MzIxMTA0NSAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDRjNDAwIG5ibG9ja3MgMHg0ZSBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI3NCk6IHRpZDogNDMyMTEw NDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiA0MzIxMTA0NSAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzYp OiB0aWQ6IDQzMjExMDQ1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjc2ICBsb25nZXN0OiAxOTQ5MjI3NgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI3Nyk6IHRpZDogNDMyMTEwNDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzgpOiB0aWQ6IDQzMjExMDQ1ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogNDMyMTEwNDUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgwKTogdGlkOiA0MzIxMTA0 NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyODEpOiB0aWQ6IDQzMjExMDQ1ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0 aWQ6IDU5ZjE1MmRiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogNTlmMTUyZGIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NCk6IHRp ZDogNTlmMTUyZGIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI4NSk6IHRpZDogNTlmMTUyZGIgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ZDgwMCBuYmxvY2tzIDB4NGYgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyODYpOiB0aWQ6IDU5ZjE1MmRi ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogNTlmMTUyZGIgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg4KTog dGlkOiA1OWYxNTJkYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjI3NSAgbG9uZ2VzdDogMTk0OTIyNzUKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyODkpOiB0aWQ6IDU5ZjE1MmRiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkwKTogdGlkOiA1OWYxNTJkYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOTEpOiB0aWQ6IDU5ZjE1MmRiICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5Mik6IHRpZDogNTlmMTUyZGIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiA1OWYxNTJkYiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlk OiBjM2U4NWQ5YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IGMzZTg1ZDlhICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTYpOiB0aWQ6 IGMzZTg1ZDlhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyOTcpOiB0aWQ6IGMzZTg1ZDlhICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGVjMDAgbmJsb2NrcyAweDUwIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjk4KTogdGlkOiBjM2U4NWQ5YSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IGMzZTg1ZDlhICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRp ZDogYzNlODVkOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyNzQgIGxvbmdlc3Q6IDE5NDkyMjc0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzAxKTogdGlkOiBjM2U4NWQ5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMik6IHRpZDogYzNlODVkOWEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzAzKTogdGlkOiBjM2U4NWQ5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDQpOiB0aWQ6IGMzZTg1ZDlhICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogYzNlODVkOWEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDog ZGU1NWUzM2IgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiBkZTU1ZTMzYiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA4KTogdGlkOiBk ZTU1ZTMzYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzA5KTogdGlkOiBkZTU1ZTMzYiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAwIG5ibG9ja3MgMHg1MiBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMxMCk6IHRpZDogZGU1NWUzM2IgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBkZTU1ZTMzYiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6 IGRlNTVlMzNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjcyICBsb25nZXN0OiAxOTQ5MjI3MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMxMyk6IHRpZDogZGU1NWUzM2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0aWQ6IGRlNTVlMzNiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMxNSk6IHRpZDogZGU1NWUzM2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE2KTogdGlkOiBkZTU1ZTMzYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IGRlNTVlMzNiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IGE5 ODZkMzM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogYTk4NmQzMzkgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMCk6IHRpZDogYTk4 NmQzMzkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyMSk6IHRpZDogYTk4NmQzMzkgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MTQwMCBuYmxvY2tzIDB4NTMgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMjIpOiB0aWQ6IGE5ODZkMzM5ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogYTk4NmQzMzkgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiBh OTg2ZDMzOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI3MSAgbG9uZ2VzdDogMTk0OTIyNzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMjUpOiB0aWQ6IGE5ODZkMzM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI2KTogdGlkOiBhOTg2ZDMzOSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMjcpOiB0aWQ6IGE5ODZkMzM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyOCk6IHRpZDogYTk4NmQzMzkgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzI5KTogdGlkOiBhOTg2ZDMzOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiA0Nzgz ZWU3MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMzEpOiB0aWQ6IDQ3ODNlZTcyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzIpOiB0aWQ6IDQ3ODNl ZTcyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzMpOiB0aWQ6IDQ3ODNlZTcyICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTI4MDAgbmJsb2NrcyAweDU0IGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzM0KTogdGlkOiA0NzgzZWU3MiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDQ3ODNlZTcyICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogNDc4 M2VlNzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyNzAgIGxvbmdlc3Q6IDE5NDkyMjcwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzM3KTogdGlkOiA0NzgzZWU3MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzOCk6IHRpZDogNDc4M2VlNzIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzM5KTogdGlkOiA0NzgzZWU3MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDApOiB0aWQ6IDQ3ODNlZTcyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM0MSk6IHRpZDogNDc4M2VlNzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6IHRpZDogYWJmYjUy MGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzQzKTogdGlkOiBhYmZiNTIwZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ0KTogdGlkOiBhYmZiNTIw ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ1KTogdGlkOiBhYmZiNTIwZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUzYzAwIG5ibG9ja3MgMHg1NSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM0Nik6IHRpZDogYWJmYjUyMGQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBhYmZiNTIwZCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IGFiZmI1 MjBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjY5ICBsb25nZXN0OiAxOTQ5MjI2OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0 OSk6IHRpZDogYWJmYjUyMGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTApOiB0aWQ6IGFiZmI1MjBkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1MSk6IHRpZDogYWJmYjUyMGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUyKTogdGlkOiBhYmZiNTIwZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTMpOiB0aWQ6IGFiZmI1MjBkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IDUwN2U0Yzdl ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM1NSk6IHRpZDogNTA3ZTRjN2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nik6IHRpZDogNTA3ZTRjN2Ug IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM1Nyk6IHRpZDogNTA3ZTRjN2UgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1NTAwMCBuYmxvY2tzIDB4NTcgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNTgpOiB0aWQ6IDUwN2U0YzdlICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogNTA3ZTRjN2UgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiA1MDdlNGM3 ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI2NyAgbG9uZ2VzdDogMTk0OTIyNjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjEp OiB0aWQ6IDUwN2U0YzdlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiA1MDdlNGM3ZSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNjMpOiB0aWQ6IDUwN2U0YzdlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDogNTA3ZTRjN2UgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzY1KTogdGlkOiA1MDdlNGM3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlkOiA2Y2JkZTMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzY3KTogdGlkOiA2Y2JkZTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OCk6IHRpZDogNmNiZGUzICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgzNjkpOiB0aWQ6IDZjYmRlMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDU2NDAwIG5ibG9ja3MgMHg1OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDM3MCk6IHRpZDogNmNiZGUzICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3MSk6IHRpZDogNmNiZGUzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogNmNiZGUzICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY2ICBsb25nZXN0 OiAxOTQ5MjI2NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogNmNiZGUzICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzc0KTogdGlkOiA2Y2JkZTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1KTogdGlkOiA2Y2JkZTMg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzc2KTogdGlkOiA2Y2JkZTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc3KTogdGlkOiA2Y2JkZTMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3OCk6IHRpZDogOTRhYzBiY2EgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc5KTogdGlkOiA5NGFjMGJj YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgwKTogdGlkOiA5NGFjMGJjYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzgxKTog dGlkOiA5NGFjMGJjYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDU3ODAw IG5ibG9ja3MgMHg1OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM4 Mik6IHRpZDogOTRhYzBiY2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiA5 NGFjMGJjYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzODQpOiB0aWQ6IDk0YWMwYmNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY1ICBsb25nZXN0OiAxOTQ5MjI2NQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NSk6IHRpZDogOTRhYzBiY2EgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODYpOiB0 aWQ6IDk0YWMwYmNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6IHRpZDogOTRhYzBiY2EgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg4 KTogdGlkOiA5NGFjMGJjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IDk0YWMwYmNhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTApOiB0aWQ6IGUzMDhhMWFlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MSk6IHRpZDogZTMwOGExYWUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5Mik6IHRpZDogZTMwOGExYWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Myk6IHRp ZDogZTMwOGExYWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1OGMwMCBu YmxvY2tzIDB4NWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzOTQp OiB0aWQ6IGUzMDhhMWFlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogZTMw OGExYWUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMzk2KTogdGlkOiBlMzA4YTFhZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NCAgbG9uZ2VzdDogMTk0OTIyNjQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6IGUzMDhhMWFlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk4KTogdGlk OiBlMzA4YTFhZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTkpOiB0aWQ6IGUzMDhhMWFlICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwMCk6 IHRpZDogZTMwOGExYWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAxKTogdGlkOiBlMzA4YTFhZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDAyKTogdGlkOiA0ZTU0Y2E3OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDMpOiB0aWQ6IDRlNTRjYTc5ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDQpOiB0aWQ6IDRlNTRjYTc5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDUpOiB0aWQ6 IDRlNTRjYTc5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWEwMDAgbmJs b2NrcyAweDVjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDA2KTog dGlkOiA0ZTU0Y2E3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IDRlNTRj YTc5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQwOCk6IHRpZDogNGU1NGNhNzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjIgIGxvbmdlc3Q6IDE5NDkyMjYyCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTogdGlkOiA0ZTU0Y2E3OSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxMCk6IHRpZDog NGU1NGNhNzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDExKTogdGlkOiA0ZTU0Y2E3OSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTIpOiB0 aWQ6IDRlNTRjYTc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogNGU1NGNhNzkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxNCk6IHRpZDogMzY1YmE3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IDM2NWJhNzMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQxNik6IHRpZDogMzY1YmE3MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDE3KTogdGlkOiAzNjVi YTczICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWI0MDAgbmJsb2NrcyAw eDVkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDE4KTogdGlkOiAz NjViYTczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDogMzY1YmE3MyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0 MjApOiB0aWQ6IDM2NWJhNzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNjEgIGxvbmdlc3Q6IDE5NDkyMjYxCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDIxKTogdGlkOiAzNjViYTczICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIyKTogdGlkOiAzNjViYTczICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQyMyk6IHRpZDogMzY1YmE3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjQpOiB0aWQ6IDM2NWJhNzMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiAzNjViYTczICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6 IDc4MGZlZjI3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQyNyk6IHRpZDogNzgwZmVmMjcgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOCk6IHRpZDog NzgwZmVmMjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQyOSk6IHRpZDogNzgwZmVmMjcgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1YzgwMCBuYmxvY2tzIDB4NWUgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0MzApOiB0aWQ6IDc4MGZlZjI3ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogNzgwZmVmMjcgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlk OiA3ODBmZWYyNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI2MCAgbG9uZ2VzdDogMTk0OTIyNjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MzMpOiB0aWQ6IDc4MGZlZjI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDM0KTogdGlkOiA3ODBmZWYyNyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MzUpOiB0aWQ6IDc4MGZlZjI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzNik6IHRpZDogNzgwZmVmMjcgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDM3KTogdGlkOiA3ODBmZWYyNyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlkOiA0 ZDliNjYxYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzkpOiB0aWQ6IDRkOWI2NjFhICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDApOiB0aWQ6IDRk OWI2NjFhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NDEpOiB0aWQ6IDRkOWI2NjFhICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWRjMDAgbmJsb2NrcyAweDVmIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDQyKTogdGlkOiA0ZDliNjYxYSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IDRkOWI2NjFhICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDog NGQ5YjY2MWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyNTkgIGxvbmdlc3Q6IDE5NDkyMjU5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ1KTogdGlkOiA0ZDliNjYxYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0Nik6IHRpZDogNGQ5YjY2MWEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDQ3KTogdGlkOiA0ZDliNjYxYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDgpOiB0aWQ6IDRkOWI2NjFhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogNGQ5YjY2MWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogNzZl OGJkZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDUxKTogdGlkOiA3NmU4YmRlYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiA3NmU4 YmRlYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDUzKTogdGlkOiA3NmU4YmRlYyAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVmMDAwIG5ibG9ja3MgMHg2MSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ1NCk6IHRpZDogNzZlOGJkZWMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA3NmU4YmRlYyAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTYpOiB0aWQ6IDc2 ZThiZGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjU3ICBsb25nZXN0OiAxOTQ5MjI1NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ1Nyk6IHRpZDogNzZlOGJkZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTgpOiB0aWQ6IDc2ZThiZGVjICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ1OSk6IHRpZDogNzZlOGJkZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYwKTogdGlkOiA3NmU4YmRlYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NjEpOiB0aWQ6IDc2ZThiZGVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IDMyYTc0 NzhmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2Myk6IHRpZDogMzJhNzQ3OGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRpZDogMzJhNzQ3 OGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ2NSk6IHRpZDogMzJhNzQ3OGYgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MDQwMCBuYmxvY2tzIDB4NjIgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NjYpOiB0aWQ6IDMyYTc0NzhmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogMzJhNzQ3OGYgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDY4KTogdGlkOiAzMmE3 NDc4ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI1NiAgbG9uZ2VzdDogMTk0OTIyNTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NjkpOiB0aWQ6IDMyYTc0NzhmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDcwKTogdGlkOiAzMmE3NDc4ZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NzEpOiB0aWQ6IDMyYTc0NzhmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3Mik6IHRpZDogMzJhNzQ3OGYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDczKTogdGlkOiAzMmE3NDc4ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiA1NDY3ZGQ2 OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NzUpOiB0aWQ6IDU0NjdkZDY4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6IDU0NjdkZDY4 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg0NzcpOiB0aWQ6IDU0NjdkZDY4ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjE4MDAgbmJsb2NrcyAweDYzIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDc4KTogdGlkOiA1NDY3ZGQ2OCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDU0NjdkZDY4ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRpZDogNTQ2N2Rk NjggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNTUgIGxvbmdlc3Q6IDE5NDkyMjU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgx KTogdGlkOiA1NDY3ZGQ2OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQ4Mik6IHRpZDogNTQ2N2RkNjggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDgzKTogdGlkOiA1NDY3ZGQ2OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODQpOiB0aWQ6IDU0NjdkZDY4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ4NSk6IHRpZDogNTQ2N2RkNjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogZDdhNWJiMzYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDg3KTogdGlkOiBkN2E1YmIzNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg4KTogdGlkOiBkN2E1YmIzNiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCklOT0RFOiAjcmVnczog MyAgIE5vdCBwcmludGluZyByZXN0IG9mIGRhdGEKCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6 IDEJdmVyc2lvbjogMgkJbHNuOiAxLDEzNAl0YWlsX2xzbjogMSw3MApsZW5ndGggb2YgTG9nIFJl Y29yZDogNTEyCXByZXYgb2Zmc2V0OiA3MAkJbnVtIG9wczogNQp1dWlkOiBiMGMwZjE5OS0wMjI5 LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9z aXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGUxOTUzMDM1ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEpOiB0aWQ6IGUxOTUzMDM1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IFNCX0NPVU5UICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiBlMTk1MzAzNSAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAwICgweDApICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzKTog dGlkOiBlMTk1MzAzNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKU1VQ RVIgQkxPQ0sgQnVmZmVyOiAKaWNvdW50OiA2NCAgaWZyZWU6IDU5ICBmZGJsa3M6IDc3OTYxMTUw ICBmcmV4dDogMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQpOiB0aWQ6IGUxOTUzMDM1ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDEzNgl0YWlsX2xzbjogMSwxMzQKbGVuZ3Ro IG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9mZnNldDogMTM0CQludW0gb3BzOiAxCnV1aWQ6IGIw YzBmMTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1hdDogbGl0dGxlIGVuZGlh biBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDog Y2JmMzgxZDggIGxlbjogOCAgY2xpZW50aWQ6IExPRyAgZmxhZ3M6IFVOTU9VTlQgClVubW91bnQg ZmlsZXN5c3RlbQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246 IDEsMTM4CXRhaWxfbHNuOiAxLDEzOApsZW5ndGggb2YgTG9nIFJlY29yZDogNjE0NAlwcmV2IG9m ZnNldDogMTM2CQludW0gb3BzOiA5Nwp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZk NzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDliODM5OTViICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6 IDliODM5OTViICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IFJFTU9WRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAzCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMik6IHRpZDogOWI4Mzk5NWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAg ZHNpemU6IDI4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDMpOiB0 aWQ6IDliODM5OTViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAy IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxYSBuYmxv Y2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQpOiB0aWQ6 IDliODM5OTViICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxPQ0FMIGlu b2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNSk6IHRpZDogOWI4Mzk5NWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNik6IHRpZDogOWI4 Mzk5NWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MTgwMCBuYmxvY2tz IDB4NjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcpOiB0aWQ6IDliODM5OTViICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgpOiB0aWQ6IDliODM5OTViICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVl IzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ODQgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZm ZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiA5YjgzOTk1YiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTApOiB0aWQ6IDIzM2RlYTMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiAyMzNkZWEzMiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIp OiB0aWQ6IDIzM2RlYTMyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEzKTogdGlkOiAyMzNkZWEzMiAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 KTogdGlkOiAyMzNkZWEzMiAgbGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF Rkk6ICAjcmVnczogMSAgICBudW1fZXh0ZW50czogMSAgaWQ6IDB4ZmZmZmZmZmZlM2Y0ODAwMAoo czogMHhjLCBsOiA5OSkgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IDIzM2Rl YTMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNik6IHRpZDogMjMzZGVhMzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDIzM2Rl YTMzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IElOQUNUSVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDUKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOCk6IHRpZDogMjMzZGVhMzMgIGxlbjogMzIgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRUZEOiAgI3JlZ3M6IDEgICAgbnVtX2V4dGVudHM6IDEgIGlkOiAweGZmZmZm ZmZmZTNmNDgwMDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogMjMzZGVhMzMg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjApOiB0aWQ6IDIzM2RlYTMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzU0ICBsb25nZXN0OiAxOTQ5MjM1NAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIxKTogdGlkOiAyMzNkZWEzMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogMjMzZGVhMzMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6IDIzM2RlYTMzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IDIzM2Rl YTMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiAyMzNkZWEzMyAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdz OiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyNik6IHRpZDogMjMzZGVhMzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogMjMzZGVhMzMgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTog dGlkOiAyMzNkZWEzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOSk6IHRpZDogMjMzZGVhMzQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlk OiAyMzNkZWEzNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMSk6IHRpZDogMjMzZGVhMzQgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0aWQ6IDIz M2RlYTM0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMzKTogdGlkOiAyMzNkZWEzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lubzogMHg4 MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZm ZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQpOiB0aWQ6IDIzM2RlYTM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgweDE4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUpOiB0aWQ6IDIzM2RlYTM0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2KTogdGlkOiAyMzNkZWEzNCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6 IDc2YzEzMDc5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiA3NmMxMzA3OSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiA3NmMx MzA3OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogOAogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMApPcGVyICg0MCk6IHRpZDogNzZjMTMwNzkgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3 NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDYgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICg0MSk6IHRpZDogNzZjMTMwNzkgIGxlbjogOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkg c2l6ZSA2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDc2YzEzMDc5ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzog MHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiA3NjgKT3BlciAoNDMpOiB0aWQ6IDc2YzEzMDc5ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDc1NSB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQpOiB0aWQ6IDc2YzEzMDc5ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1 KTogdGlkOiA3NmMxMzA3OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2 NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lubzogMHg4MApidWNrZXRbMCAt IDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweDgzIApidWNrZXRbNCAtIDdd OiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAt IDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0 WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApi dWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYp OiB0aWQ6IDc2YzEzMDc5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogZDU2NDZjODkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgp OiB0aWQ6IGQ1NjQ2Yzg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDMKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogZDU2NDZjODkgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFn czogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApP cGVyICg1MCk6IHRpZDogZDU2NDZjODkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IGQ1NjQ2Yzg5ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4Mikg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDUyKTogdGlkOiBkNTY0NmM4 OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFH SSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZl bDogMSAgZnJlZSM6IDB4M2QgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZm IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVd OiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYg LSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IGQ1 NjQ2Yzg5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNTQpOiB0aWQ6IGQ1NjQ2Yzg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlk OiBkNTY0NmM4OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IDU3N2YxNWFiICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlk OiA1NzdmMTVhYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBDUkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDU4KTogdGlkOiA1NzdmMTVhYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1OSk6IHRpZDogNTc3ZjE1YWIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHSSBCdWZmZXI6IFhBR0kg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIGNudDogNjQgIHJvb3Q6IDMKbGV2ZWw6 IDEgIGZyZWUjOiAweDNjICBuZXdpbm86IDB4ODAKYnVja2V0WzAgLSAzXTogMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzQgLSA3XTogMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzggLSAxMV06IDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxMiAtIDE1XTog MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzE2IC0g MTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiA1Nzdm MTVhYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDYxKTogdGlkOiA1NzdmMTVhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDog NTc3ZjE1YWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICg2Myk6IHRpZDogNTc3ZjE1YWIgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDog NTc3ZjE1YWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDI4CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDY1KTogdGlkOiA1NzdmMTVhYiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg2Nik6IHRpZDogNTc3ZjE1YWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZPUk0gRElS RUNUT1JZIHNpemUgMjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDogNTc3ZjE1 YWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDY4KTogdGlkOiA3ZmZiNmZlNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6IHRpZDogN2ZmYjZm ZTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog SU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcwKTogdGlkOiA3ZmZiNmZlNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEgICBkc2l6 ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDcxKTogdGlk OiA3ZmZiNmZlNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2Nr cyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcyKTogdGlkOiA3ZmZiNmZlNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IGFlNjQzNjg3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDc0KTogdGlkOiBhZTY0MzY4NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBDUkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiBhZTY0MzY4NyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg3 Nik6IHRpZDogYWU2NDM2ODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHSSBCdWZmZXI6IFhBR0kgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIGNudDog NjQgIHJvb3Q6IDMKbGV2ZWw6IDEgIGZyZWUjOiAweDNiICBuZXdpbm86IDB4ODAKYnVja2V0WzAg LSAzXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0 WzQgLSA3XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVj a2V0WzggLSAxMV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg CmJ1Y2tldFsxMiAtIDE1XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZm ZmZmZiAKYnVja2V0WzE2IC0gMTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc3KTogdGlkOiBhZTY0MzY4NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc4KTogdGlkOiBhZTY0MzY4NyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg3OSk6IHRpZDogYWU2NDM2ODcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6 IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODApOiB0aWQ6 IGFlNjQzNjg3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tz IDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODEpOiB0aWQ6IGFlNjQzNjg3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXpl OiA1MgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICg4Mik6IHRpZDog YWU2NDM2ODcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5rIDIgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMxIG5ibG9ja3Mg MHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODMpOiB0aWQ6IGFl NjQzNjg3ICBsZW46IDUyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxPQ0FMIGlub2Rl IGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDQ5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoODQpOiB0aWQ6IGFlNjQzNjg3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogZTYyZjliMiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg4Nik6IHRpZDogZTYyZjliMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IGU2MmY5YjIgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDg4KTogdGlkOiBlNjJmOWIyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4MCBuYmxvY2tzIDB4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDg5KTogdGlkOiBlNjJmOWIyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkwKTog dGlkOiBlNjJmOWIyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDkxKTogdGlkOiBlNjJmOWIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUyICBsb25nZXN0OiAxOTQ5MjM1 MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkyKTogdGlkOiBlNjJmOWIyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTMpOiB0 aWQ6IGU2MmY5YjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTQpOiB0aWQ6IGU2MmY5YjIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0 aWQ6IGU2MmY5YjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTYpOiB0aWQ6IGU2MmY5YjIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAoKPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNs ZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMTUxCXRhaWxfbHNuOiAxLDEzOApsZW5ndGggb2YgTG9n IFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDEzOAkJbnVtIG9wczogNDg5CnV1aWQ6IGIwYzBm MTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBs aW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogNTAy ZjIwZTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMSk6IHRpZDogNTAyZjIwZTggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDUwMmYyMGU4 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzKTogdGlkOiA1MDJmMjBlOCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAgbmJsb2NrcyAweDMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICg0KTogdGlkOiA1MDJmMjBlOCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1KTogdGlkOiA1MDJmMjBlOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2KTogdGlkOiA1MDJmMjBlOCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM1MSAg bG9uZ2VzdDogMTk0OTIzNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA1MDJm MjBlOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDgpOiB0aWQ6IDUwMmYyMGU4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkpOiB0aWQ6IDUw MmYyMGU4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEwKTogdGlkOiA1MDJmMjBlOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDog NTAyZjIwZTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEyKTogdGlkOiA3YmQ0ZWNhZiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDog N2JkNGVjYWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0KTogdGlkOiA3YmQ0ZWNhZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTUpOiB0aWQ6IDdiZDRlY2FmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MjgwMCBuYmxvY2tzIDB4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDE2KTogdGlkOiA3YmQ0ZWNhZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDog N2JkNGVjYWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTgpOiB0aWQ6IDdiZDRlY2FmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUwICBsb25nZXN0OiAxOTQ5MjM1MAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiA3YmQ0ZWNhZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwKTogdGlk OiA3YmQ0ZWNhZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogN2JkNGVjYWYgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0 aWQ6IDdiZDRlY2FmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiA3YmQ0ZWNhZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQpOiB0aWQ6IDJjMTA3YjdmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiAyYzEwN2I3ZiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjYpOiB0aWQ6IDJjMTA3YjdmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNyk6IHRpZDogMmMxMDdi N2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYzAwIG5ibG9ja3MgMHg1 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjgpOiB0aWQ6IDJjMTA3 YjdmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiAyYzEwN2I3ZiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMCk6 IHRpZDogMmMxMDdiN2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIzNDkgIGxvbmdlc3Q6IDE5NDkyMzQ5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzEpOiB0aWQ6IDJjMTA3YjdmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIpOiB0aWQ6IDJjMTA3YjdmICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzKTogdGlkOiAyYzEwN2I3ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNCk6IHRpZDogMmMxMDdiN2YgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IDJjMTA3YjdmICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNik6IHRpZDogYjk1 ZmFjMTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6IGI5NWZhYzE5ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOCk6IHRpZDogYjk1ZmFj MTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5KTogdGlkOiBiOTVmYWMxOSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAgbmJsb2NrcyAweDcgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MCk6IHRpZDogYjk1ZmFjMTkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IGI5NWZhYzE5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyKTogdGlkOiBiOTVmYWMxOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjM0NyAgbG9uZ2VzdDogMTk0OTIzNDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRp ZDogYjk1ZmFjMTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NCk6IHRpZDogYjk1ZmFjMTkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUp OiB0aWQ6IGI5NWZhYzE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ2KTogdGlkOiBiOTVmYWMxOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 Nyk6IHRpZDogYjk1ZmFjMTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4KTogdGlkOiAzMmU1MmU1NCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 OSk6IHRpZDogMzJlNTJlNTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTogdGlkOiAzMmU1MmU1NCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNTEpOiB0aWQ6IDMyZTUyZTU0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NjQwMCBuYmxvY2tzIDB4OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgxCk9wZXIgKDUyKTogdGlkOiAzMmU1MmU1NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Myk6IHRpZDogMzJlNTJlNTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNTQpOiB0aWQ6IDMyZTUyZTU0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ2ICBsb25nZXN0OiAx OTQ5MjM0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiAzMmU1MmU1NCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDU2KTogdGlkOiAzMmU1MmU1NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nyk6IHRpZDogMzJlNTJlNTQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNTgpOiB0aWQ6IDMyZTUyZTU0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiAzMmU1MmU1 NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjApOiB0aWQ6IDgxYWNjZDc4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiA4MWFjY2Q3 OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNjIpOiB0aWQ6IDgxYWNjZDc4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2Myk6IHRp ZDogODFhY2NkNzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ODAwIG5i bG9ja3MgMHg5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNjQpOiB0 aWQ6IDgxYWNjZDc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiA4MWFjY2Q3 OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg2Nik6IHRpZDogODFhY2NkNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDUgIGxvbmdlc3Q6IDE5NDkyMzQ1Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDgxYWNjZDc4ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjgpOiB0aWQ6IDgxYWNj ZDc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiA4MWFjY2Q3OCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3MCk6IHRpZDogODFh Y2NkNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IDgxYWNjZDc4ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Mik6 IHRpZDogMTI1NDMwNDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IDEyNTQzMDQ1ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NCk6IHRp ZDogMTI1NDMwNDUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDc1KTogdGlkOiAxMjU0MzA0NSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhjMDAgbmJsb2NrcyAweGEgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg3Nik6IHRpZDogMTI1NDMwNDUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDEyNTQzMDQ1ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc4KTogdGlkOiAx MjU0MzA0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjM0NCAgbG9uZ2VzdDogMTk0OTIzNDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3OSk6IHRpZDogMTI1NDMwNDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4MCk6IHRpZDogMTI1NDMwNDUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODEpOiB0aWQ6IDEyNTQzMDQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgyKTogdGlkOiAxMjU0MzA0NSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg4Myk6IHRpZDogMTI1NDMwNDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg0KTogdGlkOiBlZjQ4MWY5MiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg4NSk6IHRpZDogZWY0ODFmOTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg2KTogdGlkOiBlZjQ4MWY5MiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoODcpOiB0aWQ6IGVmNDgxZjkyICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4YTAwMCBuYmxvY2tzIDB4YyBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDg4KTogdGlkOiBlZjQ4MWY5MiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg4OSk6IHRpZDogZWY0ODFmOTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTApOiB0aWQ6IGVmNDgxZjkyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQyICBs b25nZXN0OiAxOTQ5MjM0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiBlZjQ4 MWY5MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDkyKTogdGlkOiBlZjQ4MWY5MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Myk6IHRpZDog ZWY0ODFmOTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoOTQpOiB0aWQ6IGVmNDgxZjkyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlk OiBlZjQ4MWY5MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoOTYpOiB0aWQ6IGY1YjFiY2QzICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlk OiBmNWIxYmNkMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoOTgpOiB0aWQ6IGY1YjFiY2QzICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg5OSk6IHRpZDogZjViMWJjZDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhiNDAwIG5ibG9ja3MgMHhkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMTAwKTogdGlkOiBmNWIxYmNkMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0 aWQ6IGY1YjFiY2QzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDEwMik6IHRpZDogZjViMWJjZDMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDEgIGxvbmdlc3Q6IDE5NDky MzQxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiBmNWIxYmNkMyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEw NCk6IHRpZDogZjViMWJjZDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1KTogdGlkOiBmNWIxYmNkMyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxMDYpOiB0aWQ6IGY1YjFiY2QzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogZjViMWJj ZDMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEwOCk6IHRpZDogYWMyMjEyNmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA5KTogdGlkOiBhYzIy MTI2ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTEwKTogdGlkOiBhYzIyMTI2ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTEx KTogdGlkOiBhYzIyMTI2ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGM4 MDAgbmJsb2NrcyAweGUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgx MTIpOiB0aWQ6IGFjMjIxMjZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMyk6IHRpZDog YWMyMjEyNmQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTE0KTogdGlkOiBhYzIyMTI2ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0MCAgbG9uZ2VzdDogMTk0OTIzNDAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IGFjMjIxMjZkICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTE2KTog dGlkOiBhYzIyMTI2ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IGFjMjIxMjZkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEx OCk6IHRpZDogYWMyMjEyNmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTogdGlkOiBhYzIyMTI2ZCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTIwKTogdGlkOiA2NTE5MWQwZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjEpOiB0aWQ6IDY1MTkxZDBk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMjIpOiB0aWQ6IDY1MTkxZDBkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMjMpOiB0 aWQ6IDY1MTkxZDBkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGMwMCBu YmxvY2tzIDB4ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDEyNCk6 IHRpZDogNjUxOTFkMGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI1KTogdGlkOiA2NTE5 MWQwZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgxMjYpOiB0aWQ6IDY1MTkxZDBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM5ICBsb25nZXN0OiAxOTQ5MjMzOQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogNjUxOTFkMGQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjgpOiB0aWQ6 IDY1MTkxZDBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDogNjUxOTFkMGQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMwKTog dGlkOiA2NTE5MWQwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDY1MTkxZDBkICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMzIpOiB0aWQ6IGM2YjFiOWViICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogYzZiMWI5ZWIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEzNCk6IHRpZDogYzZiMWI5ZWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEzNSk6IHRpZDog YzZiMWI5ZWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmMDAwIG5ibG9j a3MgMHgxMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDEzNik6IHRp ZDogYzZiMWI5ZWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM3KTogdGlkOiBjNmIxYjll YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxMzgpOiB0aWQ6IGM2YjFiOWViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM3ICBsb25nZXN0OiAxOTQ5MjMzNwotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogYzZiMWI5ZWIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDApOiB0aWQ6IGM2 YjFiOWViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogYzZiMWI5ZWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQyKTogdGlk OiBjNmIxYjllYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6IGM2YjFiOWViICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNDQpOiB0aWQ6IDQ0ZGUzN2NhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRpZDogNDRkZTM3Y2EgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE0Nik6IHRpZDogNDRkZTM3Y2EgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0Nyk6IHRpZDogNDRk ZTM3Y2EgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMDQwMCBuYmxvY2tz IDB4MTIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNDgpOiB0aWQ6 IDQ0ZGUzN2NhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDogNDRkZTM3Y2Eg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTUwKTogdGlkOiA0NGRlMzdjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNiAgbG9uZ2VzdDogMTk0OTIzMzYKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IDQ0ZGUzN2NhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTUyKTogdGlkOiA0NGRl MzdjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDQ0ZGUzN2NhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1NCk6IHRpZDog NDRkZTM3Y2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiA0NGRlMzdjYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTU2KTogdGlkOiBiMzg2NzYxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogYjM4Njc2MSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4 KTogdGlkOiBiMzg2NzYxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTkpOiB0aWQ6IGIzODY3NjEg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBuYmxvY2tzIDB4MTMg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNjApOiB0aWQ6IGIzODY3 NjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYxKTogdGlkOiBiMzg2NzYxICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2Mik6 IHRpZDogYjM4Njc2MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjMpOiB0aWQ6IGIzODY3NjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjQpOiB0aWQ6IGIzODY3NjEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY1KTogdGlkOiBiMzg2NzYxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6IHRpZDogYjM4Njc2MSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IGIzODY3NjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OCk6IHRpZDogZmJh NWYyMjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiBmYmE1ZjIyNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiBmYmE1 ZjIyNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTcxKTogdGlkOiBmYmE1ZjIyNiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDEyYzAwIG5ibG9ja3MgMHgxNCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE3Mik6IHRpZDogZmJhNWYyMjYgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiBmYmE1ZjIyNiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNzQpOiB0aWQ6IGZi YTVmMjI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMzM0ICBsb25nZXN0OiAxOTQ5MjMzNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE3NSk6IHRpZDogZmJhNWYyMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6IGZiYTVmMjI2ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE3Nyk6IHRpZDogZmJhNWYyMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTc4KTogdGlkOiBmYmE1ZjIyNiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzkpOiB0aWQ6IGZiYTVmMjI2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODApOiB0aWQ6IDlmYTEx YzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTgxKTogdGlkOiA5ZmExMWMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6IDlmYTExYzIg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4Myk6IHRpZDogOWZhMTFjMiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9ja3MgMHgxNiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE4NCk6IHRpZDogOWZhMTFjMiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODUpOiB0aWQ6IDlmYTExYzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTg2KTogdGlkOiA5ZmExMWMyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MzMyICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRp ZDogOWZhMTFjMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDE4OCk6IHRpZDogOWZhMTFjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODkp OiB0aWQ6IDlmYTExYzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlkOiA5ZmExMWMyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5 MSk6IHRpZDogOWZhMTFjMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkyKTogdGlkOiA5NGUxMDZlNCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx OTMpOiB0aWQ6IDk0ZTEwNmU0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQpOiB0aWQ6IDk0ZTEwNmU0ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxOTUpOiB0aWQ6IDk0ZTEwNmU0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MTU0MDAgbmJsb2NrcyAweDE3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoMTk2KTogdGlkOiA5NGUxMDZlNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxOTcpOiB0aWQ6IDk0ZTEwNmU0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5OCk6IHRpZDogOTRlMTA2ZTQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzEgIGxv bmdlc3Q6IDE5NDkyMzMxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiA5NGUx MDZlNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDIwMCk6IHRpZDogOTRlMTA2ZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAxKTogdGlk OiA5NGUxMDZlNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMDIpOiB0aWQ6IDk0ZTEwNmU0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6 IHRpZDogOTRlMTA2ZTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNCk6IHRpZDogN2I0ZmQ5NTMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1 KTogdGlkOiA3YjRmZDk1MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTogdGlkOiA3YjRmZDk1MyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjA3KTogdGlkOiA3YjRmZDk1MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDE2ODAwIG5ibG9ja3MgMHgxOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgxCk9wZXIgKDIwOCk6IHRpZDogN2I0ZmQ5NTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjA5KTogdGlkOiA3YjRmZDk1MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMTApOiB0aWQ6IDdiNGZkOTUzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMwICBsb25n ZXN0OiAxOTQ5MjMzMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogN2I0ZmQ5 NTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyMTIpOiB0aWQ6IDdiNGZkOTUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDog N2I0ZmQ5NTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjE0KTogdGlkOiA3YjRmZDk1MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUpOiB0 aWQ6IDdiNGZkOTUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTYpOiB0aWQ6IGE0MWUzYzlhICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6 IHRpZDogYTQxZTNjOWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRpZDogYTQxZTNjOWEgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDIxOSk6IHRpZDogYTQxZTNjOWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgxN2MwMCBuYmxvY2tzIDB4MTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICgyMjApOiB0aWQ6IGE0MWUzYzlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyMSk6IHRpZDogYTQxZTNjOWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjIyKTogdGlkOiBhNDFlM2M5YSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyOSAgbG9uZ2Vz dDogMTk0OTIzMjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IGE0MWUzYzlh ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjI0KTogdGlkOiBhNDFlM2M5YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjUpOiB0aWQ6IGE0 MWUzYzlhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDIyNik6IHRpZDogYTQxZTNjOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTogdGlk OiBhNDFlM2M5YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjI4KTogdGlkOiBhMTRmOWMzZCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0 aWQ6IGExNGY5YzNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMzApOiB0aWQ6IGExNGY5YzNkICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyMzEpOiB0aWQ6IGExNGY5YzNkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MTkwMDAgbmJsb2NrcyAweDFiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMjMyKTogdGlkOiBhMTRmOWMzZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzMpOiB0aWQ6IGExNGY5YzNkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDIzNCk6IHRpZDogYTE0ZjljM2QgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjcgIGxvbmdlc3Q6 IDE5NDkyMzI3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiBhMTRmOWMzZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIzNik6IHRpZDogYTE0ZjljM2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiBhMTRm OWMzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyMzgpOiB0aWQ6IGExNGY5YzNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDog YTE0ZjljM2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI0MCk6IHRpZDogMTFlMWUwMWEgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQxKTogdGlk OiAxMWUxZTAxYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjQyKTogdGlkOiAxMWUxZTAxYSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMjQzKTogdGlkOiAxMWUxZTAxYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDFhNDAwIG5ibG9ja3MgMHgxYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDI0NCk6IHRpZDogMTFlMWUwMWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1 KTogdGlkOiAxMWUxZTAxYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyNDYpOiB0aWQ6IDExZTFlMDFhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI2ICBsb25nZXN0OiAx OTQ5MjMyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogMTFlMWUwMWEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNDgpOiB0aWQ6IDExZTFlMDFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogMTFlMWUw MWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjUwKTogdGlkOiAxMWUxZTAxYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IDEx ZTFlMDFhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTIpOiB0aWQ6IDdjNWE5NWJhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Myk6IHRpZDog N2M1YTk1YmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI1NCk6IHRpZDogN2M1YTk1YmEgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDI1NSk6IHRpZDogN2M1YTk1YmEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgxYjgwMCBuYmxvY2tzIDB4MWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICgyNTYpOiB0aWQ6IDdjNWE5NWJhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6 IHRpZDogN2M1YTk1YmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMjU4KTogdGlkOiA3YzVhOTViYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNSAgbG9uZ2VzdDogMTk0 OTIzMjUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6IDdjNWE5NWJhICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjYwKTogdGlkOiA3YzVhOTViYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjEpOiB0aWQ6IDdjNWE5NWJh ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI2Mik6IHRpZDogN2M1YTk1YmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiA3YzVh OTViYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjY0KTogdGlkOiAxZTU0OWEyOCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjUpOiB0aWQ6IDFl NTQ5YTI4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNjYpOiB0aWQ6IDFlNTQ5YTI4ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy NjcpOiB0aWQ6IDFlNTQ5YTI4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MWNjMDAgbmJsb2NrcyAweDFlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3Bl ciAoMjY4KTogdGlkOiAxZTU0OWEyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0 aWQ6IDFlNTQ5YTI4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDI3MCk6IHRpZDogMWU1NDlhMjggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjQgIGxvbmdlc3Q6IDE5NDky MzI0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlkOiAxZTU0OWEyOCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3 Mik6IHRpZDogMWU1NDlhMjggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjczKTogdGlkOiAxZTU0OWEyOCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNzQpOiB0aWQ6IDFlNTQ5YTI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogMWU1NDlh MjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3Nik6IHRpZDogZDdkMWFkOWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiBkN2Qx YWQ5ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjc4KTogdGlkOiBkN2QxYWQ5ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjc5 KTogdGlkOiBkN2QxYWQ5ZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFl MDAwIG5ibG9ja3MgMHgyMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDI4MCk6IHRpZDogZDdkMWFkOWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlk OiBkN2QxYWQ5ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyODIpOiB0aWQ6IGQ3ZDFhZDllICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzIyICBsb25nZXN0OiAxOTQ5MjMy MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogZDdkMWFkOWUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODQp OiB0aWQ6IGQ3ZDFhZDllICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogZDdkMWFkOWUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo Mjg2KTogdGlkOiBkN2QxYWQ5ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IGQ3ZDFhZDll ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODgpOiB0aWQ6IDJhMTg5NzQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogMmExODk3 NDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI5MCk6IHRpZDogMmExODk3NDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5MSk6 IHRpZDogMmExODk3NDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxZjQw MCBuYmxvY2tzIDB4MjEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgy OTIpOiB0aWQ6IDJhMTg5NzQ5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDog MmExODk3NDkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjk0KTogdGlkOiAyYTE4OTc0OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMSAgbG9uZ2VzdDogMTk0OTIzMjEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IDJhMTg5NzQ5ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk2KTog dGlkOiAyYTE4OTc0OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IDJhMTg5NzQ5ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5 OCk6IHRpZDogMmExODk3NDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlkOiAyYTE4OTc0OSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzAwKTogdGlkOiAyNDhlN2Q5YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDEpOiB0aWQ6IDI0OGU3ZDlh ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMDIpOiB0aWQ6IDI0OGU3ZDlhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDMpOiB0 aWQ6IDI0OGU3ZDlhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjA4MDAg bmJsb2NrcyAweDIyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzA0 KTogdGlkOiAyNDhlN2Q5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0aWQ6IDI0 OGU3ZDlhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMwNik6IHRpZDogMjQ4ZTdkOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjAgIGxvbmdlc3Q6IDE5NDkyMzIwCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiAyNDhlN2Q5YSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwOCk6IHRp ZDogMjQ4ZTdkOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiAyNDhlN2Q5YSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTAp OiB0aWQ6IDI0OGU3ZDlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDogMjQ4ZTdkOWEgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxMik6IHRpZDogMjIwMmI4ZTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEzKTogdGlkOiAyMjAyYjhlOSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzE0KTogdGlkOiAyMjAyYjhlOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzE1KTogdGlk OiAyMjAyYjhlOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIxYzAwIG5i bG9ja3MgMHgyMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMxNik6 IHRpZDogMjIwMmI4ZTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE3KTogdGlkOiAyMjAy YjhlOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzMTgpOiB0aWQ6IDIyMDJiOGU5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE5ICBsb25nZXN0OiAxOTQ5MjMxOQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogMjIwMmI4ZTkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjApOiB0aWQ6 IDIyMDJiOGU5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogMjIwMmI4ZTkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIyKTog dGlkOiAyMjAyYjhlOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDIyMDJiOGU5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjQpOiB0aWQ6IGQ3NjY0MTkyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNSk6IHRpZDogZDc2NjQxOTIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMyNik6IHRpZDogZDc2NjQxOTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyNyk6IHRpZDog ZDc2NjQxOTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMzAwMCBuYmxv Y2tzIDB4MjUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMjgpOiB0 aWQ6IGQ3NjY0MTkyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogZDc2NjQx OTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzMwKTogdGlkOiBkNzY2NDE5MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNyAgbG9uZ2VzdDogMTk0OTIzMTcKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMzEpOiB0aWQ6IGQ3NjY0MTkyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzMyKTogdGlkOiBk NzY2NDE5MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMpOiB0aWQ6IGQ3NjY0MTkyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNCk6IHRp ZDogZDc2NjQxOTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiBkNzY2NDE5MiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM2KTogdGlkOiBkYzQxNzUwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6IGRjNDE3NTBjICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMzgpOiB0aWQ6IGRjNDE3NTBjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzkpOiB0aWQ6IGRj NDE3NTBjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjQ0MDAgbmJsb2Nr cyAweDI2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzQwKTogdGlk OiBkYzQxNzUwYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IGRjNDE3NTBj ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM0Mik6IHRpZDogZGM0MTc1MGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTYgIGxvbmdlc3Q6IDE5NDkyMzE2Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzQzKTogdGlkOiBkYzQxNzUwYyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0NCk6IHRpZDogZGM0 MTc1MGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ1KTogdGlkOiBkYzQxNzUwYyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6 IGRjNDE3NTBjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogZGM0MTc1MGMgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0OCk6IHRpZDogNzZlZDU2YzcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ5KTogdGlkOiA3NmVkNTZjNyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzUwKTogdGlkOiA3NmVkNTZjNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzUxKTogdGlkOiA3NmVk NTZjNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI1ODAwIG5ibG9ja3Mg MHgyNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM1Mik6IHRpZDog NzZlZDU2YzcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTogdGlkOiA3NmVkNTZjNyAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzNTQpOiB0aWQ6IDc2ZWQ1NmM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE1ICBsb25nZXN0OiAxOTQ5MjMxNQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1NSk6IHRpZDogNzZlZDU2YzcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTYpOiB0aWQ6IDc2ZWQ1 NmM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nyk6IHRpZDogNzZlZDU2YzcgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzU4KTogdGlkOiA3 NmVkNTZjNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0aWQ6IDc2ZWQ1NmM3ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjApOiB0aWQ6IGQxMGQwNTM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MSk6IHRpZDogZDEwZDA1MzggIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2 Mik6IHRpZDogZDEwZDA1MzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2Myk6IHRpZDogZDEwZDA1 MzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNmMwMCBuYmxvY2tzIDB4 MjggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNjQpOiB0aWQ6IGQx MGQwNTM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRpZDogZDEwZDA1MzggIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzY2KTogdGlkOiBkMTBkMDUzOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNCAgbG9uZ2VzdDogMTk0OTIzMTQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IGQxMGQwNTM4ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY4KTogdGlkOiBkMTBkMDUz OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjkpOiB0aWQ6IGQxMGQwNTM4ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3MCk6IHRpZDogZDEw ZDA1MzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlkOiBkMTBkMDUzOCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcy KTogdGlkOiBlODU4ODkxOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzMpOiB0aWQ6IGU4NTg4OTE4ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQp OiB0aWQ6IGU4NTg4OTE4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzUpOiB0aWQ6IGU4NTg4OTE4 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjgwMDAgbmJsb2NrcyAweDJh IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzc2KTogdGlkOiBlODU4 ODkxOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IGU4NTg4OTE4ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3 OCk6IHRpZDogZTg1ODg5MTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzMTIgIGxvbmdlc3Q6IDE5NDkyMzEyCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzc5KTogdGlkOiBlODU4ODkxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDogZTg1ODg5MTgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiBlODU4ODkxOCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODIpOiB0aWQ6IGU4NTg4 OTE4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6IHRpZDogZTg1ODg5MTggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NCk6 IHRpZDogOTc3MGYyMzcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg1KTogdGlkOiA5NzcwZjIzNyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTog dGlkOiA5NzcwZjIzNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg3KTogdGlkOiA5NzcwZjIzNyAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI5NDAwIG5ibG9ja3MgMHgyYiBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM4OCk6IHRpZDogOTc3MGYy MzcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiA5NzcwZjIzNyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTAp OiB0aWQ6IDk3NzBmMjM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMzExICBsb25nZXN0OiAxOTQ5MjMxMQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM5MSk6IHRpZDogOTc3MGYyMzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTIpOiB0aWQ6IDk3NzBmMjM3ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogOTc3MGYyMzcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk0KTogdGlkOiA5NzcwZjIz NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IDk3NzBmMjM3ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTYpOiB0 aWQ6IDRlYjg3YTA5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6IHRpZDogNGViODdhMDkgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRp ZDogNGViODdhMDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5OSk6IHRpZDogNGViODdhMDkgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyYTgwMCBuYmxvY2tzIDB4MmMgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MDApOiB0aWQ6IDRlYjg3YTA5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogNGViODdhMDkgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDAyKTog dGlkOiA0ZWI4N2EwOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjMxMCAgbG9uZ2VzdDogMTk0OTIzMTAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MDMpOiB0aWQ6IDRlYjg3YTA5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiA0ZWI4N2EwOSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IDRlYjg3YTA5ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwNik6IHRpZDogNGViODdhMDkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlkOiA0ZWI4N2EwOSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA4KTogdGlk OiBlOWQ4ODEyYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6IGU5ZDg4MTJiICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6 IGU5ZDg4MTJiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MTEpOiB0aWQ6IGU5ZDg4MTJiICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmJjMDAgbmJsb2NrcyAweDJkIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDEyKTogdGlkOiBlOWQ4ODEyYiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0aWQ6IGU5ZDg4MTJiICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxNCk6IHRp ZDogZTlkODgxMmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIzMDkgIGxvbmdlc3Q6IDE5NDkyMzA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDE1KTogdGlkOiBlOWQ4ODEyYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxNik6IHRpZDogZTlkODgxMmIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDE3KTogdGlkOiBlOWQ4ODEyYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTgpOiB0aWQ6IGU5ZDg4MTJiICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDogZTlkODgxMmIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMCk6IHRpZDog OTVjYWNmMGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiA5NWNhY2YwZSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiA5 NWNhY2YwZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDIzKTogdGlkOiA5NWNhY2YwZSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJkMDAwIG5ibG9ja3MgMHgyZiBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQyNCk6IHRpZDogOTVjYWNmMGUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiA5NWNhY2YwZSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjYpOiB0aWQ6 IDk1Y2FjZjBlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzA3ICBsb25nZXN0OiAxOTQ5MjMwNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQyNyk6IHRpZDogOTVjYWNmMGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjgpOiB0aWQ6IDk1Y2FjZjBlICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyOSk6IHRpZDogOTVjYWNmMGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDMwKTogdGlkOiA5NWNhY2YwZSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MzEpOiB0aWQ6IDk1Y2FjZjBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzIpOiB0aWQ6IDEz OTI3YTAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogMTM5MjdhMDIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogMTM5 MjdhMDIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQzNSk6IHRpZDogMTM5MjdhMDIgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyZTQwMCBuYmxvY2tzIDB4MzAgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MzYpOiB0aWQ6IDEzOTI3YTAyICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDogMTM5MjdhMDIgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDM4KTogdGlkOiAx MzkyN2EwMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjMwNiAgbG9uZ2VzdDogMTk0OTIzMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MzkpOiB0aWQ6IDEzOTI3YTAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQwKTogdGlkOiAxMzkyN2EwMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NDEpOiB0aWQ6IDEzOTI3YTAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0Mik6IHRpZDogMTM5MjdhMDIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDQzKTogdGlkOiAxMzkyN2EwMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ0KTogdGlkOiBmNWE3 MjdlMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IGY1YTcyN2UyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDYpOiB0aWQ6IGY1YTcy N2UyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NDcpOiB0aWQ6IGY1YTcyN2UyICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmY4MDAgbmJsb2NrcyAweDMxIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDQ4KTogdGlkOiBmNWE3MjdlMiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IGY1YTcyN2UyICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1MCk6IHRpZDogZjVh NzI3ZTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMDUgIGxvbmdlc3Q6IDE5NDkyMzA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDUxKTogdGlkOiBmNWE3MjdlMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1Mik6IHRpZDogZjVhNzI3ZTIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDUzKTogdGlkOiBmNWE3MjdlMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTQpOiB0aWQ6IGY1YTcyN2UyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ1NSk6IHRpZDogZjVhNzI3ZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nik6IHRpZDogMjE2ZTU4 NGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDU3KTogdGlkOiAyMTZlNTg0ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU4KTogdGlkOiAyMTZlNTg0 ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDU5KTogdGlkOiAyMTZlNTg0ZiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMwYzAwIG5ibG9ja3MgMHgzMiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ2MCk6IHRpZDogMjE2ZTU4NGYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiAyMTZlNTg0ZiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NjIpOiB0aWQ6IDIxNmU1 ODRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzA0ICBsb25nZXN0OiAxOTQ5MjMwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2 Myk6IHRpZDogMjE2ZTU4NGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjQpOiB0aWQ6IDIxNmU1ODRmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2NSk6IHRpZDogMjE2ZTU4NGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDY2KTogdGlkOiAyMTZlNTg0ZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NjcpOiB0aWQ6IDIxNmU1ODRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjgpOiB0aWQ6IDgyNWU1MzNl ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ2OSk6IHRpZDogODI1ZTUzM2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MCk6IHRpZDogODI1ZTUzM2Ug IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3MSk6IHRpZDogODI1ZTUzM2UgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMjAwMCBuYmxvY2tzIDB4MzQgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NzIpOiB0aWQ6IDgyNWU1MzNlICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogODI1ZTUzM2UgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDc0KTogdGlkOiA4MjVlNTMz ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjMwMiAgbG9uZ2VzdDogMTk0OTIzMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzUp OiB0aWQ6IDgyNWU1MzNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDc2KTogdGlkOiA4MjVlNTMzZSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NzcpOiB0aWQ6IDgyNWU1MzNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3OCk6IHRpZDogODI1ZTUzM2UgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDc5KTogdGlkOiA4MjVlNTMzZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgwKTogdGlkOiA4MWU1NzM4OSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0ODEpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODIpOiB0aWQ6IDgxZTU3Mzg5ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg0ODMpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MzM0MDAgbmJsb2NrcyAweDM1IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDg0KTogdGlkOiA4MWU1NzM4OSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4Nik6IHRpZDogODFlNTczODkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzMDEgIGxvbmdlc3Q6IDE5NDkyMzAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTog dGlkOiA4MWU1NzM4OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ4OCk6IHRpZDogODFlNTczODkgIGxlbjogMTA0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQlVGIERBVEEKCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDIxNQl0YWlsX2xzbjogMSwxMzgKbGVuZ3RoIG9m IExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiAxNTEJCW51bSBvcHM6IDQ5MQp1dWlkOiBi MGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRp YW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6 IDgxZTU3Mzg5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBXQVNfQ09OVCBFTkQg CkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMpOiB0aWQ6IDgxZTU3Mzg5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiAxNzBiN2UzZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1KTogdGlkOiAxNzBiN2UzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNik6IHRpZDogMTcwYjdlM2UgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDcpOiB0aWQ6IDE3MGI3ZTNlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MzQ4MDAgbmJsb2NrcyAweDM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoOCk6IHRpZDogMTcwYjdlM2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOSk6IHRpZDogMTcwYjdlM2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTApOiB0aWQ6IDE3MGI3ZTNlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAwICBsb25nZXN0 OiAxOTQ5MjMwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiAxNzBiN2UzZSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEyKTogdGlkOiAxNzBiN2UzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDogMTcwYjdl M2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTQpOiB0aWQ6IDE3MGI3ZTNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiAxNzBi N2UzZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTYpOiB0aWQ6IDEzZDFhYmVhICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiAxM2Qx YWJlYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTgpOiB0aWQ6IDEzZDFhYmVhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOSk6 IHRpZDogMTNkMWFiZWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNWMw MCBuYmxvY2tzIDB4MzcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgy MCk6IHRpZDogMTNkMWFiZWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IDEz ZDFhYmVhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDIyKTogdGlkOiAxM2QxYWJlYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5OSAgbG9uZ2VzdDogMTk0OTIyOTkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogMTNkMWFiZWEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDog MTNkMWFiZWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IDEzZDFhYmVhICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlk OiAxM2QxYWJlYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogMTNkMWFiZWEgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI4KTogdGlkOiBiYmE5OTU1ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOSk6IHRpZDogYmJhOTk1NWUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMw KTogdGlkOiBiYmE5OTU1ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzEpOiB0aWQ6IGJiYTk5NTVl ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzcwMDAgbmJsb2NrcyAweDM5 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzIpOiB0aWQ6IGJiYTk5 NTVlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzKTogdGlkOiBiYmE5OTU1ZSAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNCk6 IHRpZDogYmJhOTk1NWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyOTcgIGxvbmdlc3Q6IDE5NDkyMjk3Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzUpOiB0aWQ6IGJiYTk5NTVlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYpOiB0aWQ6IGJiYTk5NTVlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM3KTogdGlkOiBiYmE5OTU1ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDogYmJhOTk1NWUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IGJiYTk5NTVlICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MCk6IHRpZDogNTJm ODFjNWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IDUyZjgxYzViICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mik6IHRpZDogNTJmODFj NWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQzKTogdGlkOiA1MmY4MWM1YiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM4NDAwIG5ibG9ja3MgMHgzYSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ0KTogdGlkOiA1MmY4MWM1YiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NSk6IHRpZDogNTJmODFjNWIgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6IDUyZjgxYzVi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjk2ICBsb25nZXN0OiAxOTQ5MjI5NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTog dGlkOiA1MmY4MWM1YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ4KTogdGlkOiA1MmY4MWM1YiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 OSk6IHRpZDogNTJmODFjNWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNTApOiB0aWQ6IDUyZjgxYzViICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDUxKTogdGlkOiA1MmY4MWM1YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTIpOiB0aWQ6IGQwM2IwYzIwICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDUzKTogdGlkOiBkMDNiMGMyMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQpOiB0aWQ6IGQwM2IwYzIwICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg1NSk6IHRpZDogZDAzYjBjMjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgzOTgwMCBuYmxvY2tzIDB4M2IgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MQpPcGVyICg1Nik6IHRpZDogZDAzYjBjMjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNTcpOiB0aWQ6IGQwM2IwYzIwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDU4KTogdGlkOiBkMDNiMGMyMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NSAgbG9uZ2Vz dDogMTk0OTIyOTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDogZDAzYjBjMjAg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg2MCk6IHRpZDogZDAzYjBjMjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6IGQwM2Iw YzIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDYyKTogdGlkOiBkMDNiMGMyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogZDAz YjBjMjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiBhNDVmOWY1ZSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NSk6IHRpZDogYTQ1 ZjlmNWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDY2KTogdGlkOiBhNDVmOWY1ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNjcp OiB0aWQ6IGE0NWY5ZjVlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2Fj MDAgbmJsb2NrcyAweDNjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo NjgpOiB0aWQ6IGE0NWY5ZjVlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiBh NDVmOWY1ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg3MCk6IHRpZDogYTQ1ZjlmNWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTQgIGxvbmdlc3Q6IDE5NDkyMjk0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IGE0NWY5ZjVlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzIpOiB0aWQ6 IGE0NWY5ZjVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTogdGlkOiBhNDVmOWY1ZSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NCk6IHRp ZDogYTQ1ZjlmNWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IGE0NWY5ZjVlICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3Nik6IHRpZDogM2I0NjQ0NWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDNiNDY0NDVmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3 OCk6IHRpZDogM2I0NjQ0NWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDc5KTogdGlkOiAzYjQ2NDQ1 ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAwIG5ibG9ja3MgMHgz ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDgwKTogdGlkOiAzYjQ2 NDQ1ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogM2I0NjQ0NWYgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoODIp OiB0aWQ6IDNiNDY0NDVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjkyICBsb25nZXN0OiAxOTQ5MjI5MgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDgzKTogdGlkOiAzYjQ2NDQ1ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg0KTogdGlkOiAzYjQ2NDQ1ZiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4NSk6IHRpZDogM2I0NjQ0NWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODYpOiB0aWQ6IDNiNDY0NDVmICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiAzYjQ2NDQ1ZiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODgpOiB0aWQ6IDdl NjU4MTEyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA3ZTY1ODExMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTApOiB0aWQ6IDdlNjU4 MTEyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg5MSk6IHRpZDogN2U2NTgxMTIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzZDQwMCBuYmxvY2tzIDB4M2YgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg5Mik6IHRpZDogN2U2NTgxMTIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoOTMpOiB0aWQ6IDdlNjU4MTEyICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlkOiA3ZTY1ODEx MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI5MSAgbG9uZ2VzdDogMTk0OTIyOTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6 IHRpZDogN2U2NTgxMTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg5Nik6IHRpZDogN2U2NTgxMTIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo OTcpOiB0aWQ6IDdlNjU4MTEyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDk4KTogdGlkOiA3ZTY1ODExMiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5OSk6IHRpZDogN2U2NTgxMTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogZjRhMThiMmEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTAxKTogdGlkOiBmNGExOGIyYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlkOiBmNGExOGIyYSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTAzKTogdGlkOiBmNGExOGIyYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDNlODAwIG5ibG9ja3MgMHg0MCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDEwNCk6IHRpZDogZjRhMThiMmEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTA1KTogdGlkOiBmNGExOGIyYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IGY0YTE4YjJhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkw ICBsb25nZXN0OiAxOTQ5MjI5MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDog ZjRhMThiMmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMDgpOiB0aWQ6IGY0YTE4YjJhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOSk6 IHRpZDogZjRhMThiMmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTEwKTogdGlkOiBmNGExOGIyYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTEpOiB0aWQ6IGY0YTE4YjJhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTIpOiB0aWQ6IGExMzc1ZTM5ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExMyk6IHRpZDogYTEzNzVlMzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNCk6IHRpZDogYTEzNzVlMzkgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDExNSk6IHRpZDogYTEzNzVlMzkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgzZmMwMCBuYmxvY2tzIDB4NDEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICgxMTYpOiB0aWQ6IGExMzc1ZTM5ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExNyk6IHRpZDogYTEzNzVlMzkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTE4KTogdGlkOiBhMTM3NWUzOSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4OSAg bG9uZ2VzdDogMTk0OTIyODkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IGEx Mzc1ZTM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTIwKTogdGlkOiBhMTM3NWUzOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjEpOiB0 aWQ6IGExMzc1ZTM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDEyMik6IHRpZDogYTEzNzVlMzkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIz KTogdGlkOiBhMTM3NWUzOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI0KTogdGlkOiAyZTAwYzExNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjUpOiB0aWQ6IDJlMDBjMTE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjYpOiB0aWQ6IDJlMDBjMTE1ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMjcpOiB0aWQ6IDJlMDBjMTE1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NDEwMDAgbmJsb2NrcyAweDQzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoMTI4KTogdGlkOiAyZTAwYzExNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMjkpOiB0aWQ6IDJlMDBjMTE1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzMCk6IHRpZDogMmUwMGMxMTUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODcgIGxv bmdlc3Q6IDE5NDkyMjg3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiAyZTAw YzExNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEzMik6IHRpZDogMmUwMGMxMTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlk OiAyZTAwYzExNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMzQpOiB0aWQ6IDJlMDBjMTE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6 IHRpZDogMmUwMGMxMTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRpZDogZjNmMzllZiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcp OiB0aWQ6IGYzZjM5ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogZjNmMzllZiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMTM5KTogdGlkOiBmM2YzOWVmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NDI0MDAgbmJsb2NrcyAweDQ0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoMTQwKTogdGlkOiBmM2YzOWVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 MSk6IHRpZDogZjNmMzllZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxNDIpOiB0aWQ6IGYzZjM5ZWYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODYgIGxvbmdlc3Q6IDE5 NDkyMjg2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiBmM2YzOWVmICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTQ0KTogdGlkOiBmM2YzOWVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRpZDogZjNmMzllZiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNDYpOiB0aWQ6IGYzZjM5ZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ3KTogdGlkOiBmM2YzOWVm ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNDgpOiB0aWQ6IDU3ZjIyYWE5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDogNTdmMjJh YTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1MCk6IHRpZDogNTdmMjJhYTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1MSk6 IHRpZDogNTdmMjJhYTkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0Mzgw MCBuYmxvY2tzIDB4NDUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgx NTIpOiB0aWQ6IDU3ZjIyYWE5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDog NTdmMjJhYTkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTU0KTogdGlkOiA1N2YyMmFhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NSAgbG9uZ2VzdDogMTk0OTIyODUK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDU3ZjIyYWE5ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU2KTog dGlkOiA1N2YyMmFhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6IDU3ZjIyYWE5ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1 OCk6IHRpZDogNTdmMjJhYTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA1N2YyMmFhOSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTYwKTogdGlkOiAxNTAzZjU3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IDE1MDNmNTcz ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjIpOiB0aWQ6IDE1MDNmNTczICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNjMpOiB0 aWQ6IDE1MDNmNTczICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDRjMDAg bmJsb2NrcyAweDQ2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTY0 KTogdGlkOiAxNTAzZjU3MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDE1 MDNmNTczICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDE2Nik6IHRpZDogMTUwM2Y1NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODQgIGxvbmdlc3Q6IDE5NDkyMjg0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiAxNTAzZjU3MyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRp ZDogMTUwM2Y1NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiAxNTAzZjU3MyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzAp OiB0aWQ6IDE1MDNmNTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogMTUwM2Y1NzMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE3Mik6IHRpZDogZjIxZTEzZjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiBmMjFlMTNmNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTc0KTogdGlkOiBmMjFlMTNmNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTc1KTogdGlk OiBmMjFlMTNmNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ2MDAwIG5i bG9ja3MgMHg0OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE3Nik6 IHRpZDogZjIxZTEzZjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiBmMjFl MTNmNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgxNzgpOiB0aWQ6IGYyMWUxM2Y3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjgyICBsb25nZXN0OiAxOTQ5MjI4MgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogZjIxZTEzZjcgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6 IGYyMWUxM2Y3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MSk6IHRpZDogZjIxZTEzZjcgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgyKTog dGlkOiBmMjFlMTNmNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IGYyMWUxM2Y3ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxODQpOiB0aWQ6IGE0MGNlMTJhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogYTQwY2UxMmEgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE4Nik6IHRpZDogYTQwY2UxMmEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4Nyk6IHRpZDog YTQwY2UxMmEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NzQwMCBuYmxv Y2tzIDB4NDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxODgpOiB0 aWQ6IGE0MGNlMTJhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogYTQwY2Ux MmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMTkwKTogdGlkOiBhNDBjZTEyYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4MSAgbG9uZ2VzdDogMTk0OTIyODEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IGE0MGNlMTJhICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiBh NDBjZTEyYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IGE0MGNlMTJhICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5NCk6IHRp ZDogYTQwY2UxMmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiBhNDBjZTEyYSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTk2KTogdGlkOiBkNDY4ZTA2ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IGQ0NjhlMDZkICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTgpOiB0aWQ6IGQ0NjhlMDZkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTkpOiB0aWQ6IGQ0 NjhlMDZkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDg4MDAgbmJsb2Nr cyAweDRhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjAwKTogdGlk OiBkNDY4ZTA2ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IGQ0NjhlMDZk ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDIwMik6IHRpZDogZDQ2OGUwNmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODAgIGxvbmdlc3Q6IDE5NDkyMjgwCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiBkNDY4ZTA2ZCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogZDQ2 OGUwNmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiBkNDY4ZTA2ZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDYpOiB0aWQ6 IGQ0NjhlMDZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogZDQ2OGUwNmQgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIwOCk6IHRpZDogM2EyY2QwMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDNhMmNkMDAgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx MCk6IHRpZDogM2EyY2QwMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjExKTogdGlkOiAzYTJjZDAw ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDljMDAgbmJsb2NrcyAweDRi IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjEyKTogdGlkOiAzYTJj ZDAwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDogM2EyY2QwMCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMTQp OiB0aWQ6IDNhMmNkMDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyNzkgIGxvbmdlc3Q6IDE5NDkyMjc5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjE1KTogdGlkOiAzYTJjZDAwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiAzYTJjZDAwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogM2EyY2QwMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTgpOiB0aWQ6IDNhMmNkMDAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjE5KTogdGlkOiAzYTJjZDAwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjApOiB0aWQ6IDIx NWU5NWZhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogMjE1ZTk1ZmEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6IHRpZDogMjE1 ZTk1ZmEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyMyk6IHRpZDogMjE1ZTk1ZmEgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0YjAwMCBuYmxvY2tzIDB4NGQgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMjQpOiB0aWQ6IDIxNWU5NWZhICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDogMjE1ZTk1ZmEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjI2KTogdGlkOiAy MTVlOTVmYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI3NyAgbG9uZ2VzdDogMTk0OTIyNzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMjcpOiB0aWQ6IDIxNWU5NWZhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI4KTogdGlkOiAyMTVlOTVmYSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMjkpOiB0aWQ6IDIxNWU5NWZhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6IHRpZDogMjE1ZTk1ZmEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjMxKTogdGlkOiAyMTVlOTVmYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMyKTogdGlkOiBiMTdi Njk2NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IGIxN2I2OTY2ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0aWQ6IGIxN2I2 OTY2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzUpOiB0aWQ6IGIxN2I2OTY2ICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGM0MDAgbmJsb2NrcyAweDRlIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjM2KTogdGlkOiBiMTdiNjk2NiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6IGIxN2I2OTY2ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzOCk6IHRpZDogYjE3 YjY5NjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyNzYgIGxvbmdlc3Q6IDE5NDkyMjc2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjM5KTogdGlkOiBiMTdiNjk2NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0MCk6IHRpZDogYjE3YjY5NjYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjQxKTogdGlkOiBiMTdiNjk2NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDIpOiB0aWQ6IGIxN2I2OTY2ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI0Myk6IHRpZDogYjE3YjY5NjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NCk6IHRpZDogNTk4YTgx MmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjQ1KTogdGlkOiA1OThhODEyZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlkOiA1OThhODEy ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ3KTogdGlkOiA1OThhODEyZSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDRkODAwIG5ibG9ja3MgMHg0ZiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI0OCk6IHRpZDogNTk4YTgxMmUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiA1OThhODEyZSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTApOiB0aWQ6IDU5OGE4 MTJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjc1ICBsb25nZXN0OiAxOTQ5MjI3NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1 MSk6IHRpZDogNTk4YTgxMmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTIpOiB0aWQ6IDU5OGE4MTJlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI1Myk6IHRpZDogNTk4YTgxMmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU0KTogdGlkOiA1OThhODEyZSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNTUpOiB0aWQ6IDU5OGE4MTJlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0aWQ6IGYwZmNjZDdh ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI1Nyk6IHRpZDogZjBmY2NkN2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDogZjBmY2NkN2Eg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI1OSk6IHRpZDogZjBmY2NkN2EgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ZWMwMCBuYmxvY2tzIDB4NTAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNjApOiB0aWQ6IGYwZmNjZDdhICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogZjBmY2NkN2EgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlkOiBmMGZjY2Q3 YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI3NCAgbG9uZ2VzdDogMTk0OTIyNzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMp OiB0aWQ6IGYwZmNjZDdhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjY0KTogdGlkOiBmMGZjY2Q3YSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNjUpOiB0aWQ6IGYwZmNjZDdhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nik6IHRpZDogZjBmY2NkN2EgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjY3KTogdGlkOiBmMGZjY2Q3YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY4KTogdGlkOiBiN2E5MWQ1MCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNjkpOiB0aWQ6IGI3YTkxZDUwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IGI3YTkxZDUwICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgyNzEpOiB0aWQ6IGI3YTkxZDUwICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4NTAwMDAgbmJsb2NrcyAweDUyIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjcyKTogdGlkOiBiN2E5MWQ1MCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IGI3YTkxZDUwICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDogYjdhOTFkNTAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyNzIgIGxvbmdlc3Q6IDE5NDkyMjcyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTog dGlkOiBiN2E5MWQ1MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDI3Nik6IHRpZDogYjdhOTFkNTAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mjc3KTogdGlkOiBiN2E5MWQ1MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzgpOiB0aWQ6IGI3YTkxZDUwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3OSk6IHRpZDogYjdhOTFkNTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MCk6IHRpZDogMmZmNTU4NmMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjgxKTogdGlkOiAyZmY1NTg2YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiAyZmY1NTg2YyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMjgzKTogdGlkOiAyZmY1NTg2YyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDUxNDAwIG5ibG9ja3MgMHg1MyBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI4NCk6IHRpZDogMmZmNTU4NmMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjg1KTogdGlkOiAyZmY1NTg2YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IDJmZjU1ODZjICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjcxICBsb25nZXN0OiAxOTQ5MjI3MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRp ZDogMmZmNTU4NmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyODgpOiB0aWQ6IDJmZjU1ODZjICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4 OSk6IHRpZDogMmZmNTU4NmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjkwKTogdGlkOiAyZmY1NTg2YyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTEpOiB0aWQ6IDJmZjU1ODZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTIpOiB0aWQ6IGU4OGJlMDY0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI5Myk6IHRpZDogZTg4YmUwNjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NCk6IHRpZDogZTg4YmUwNjQgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDI5NSk6IHRpZDogZTg4YmUwNjQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg1MjgwMCBuYmxvY2tzIDB4NTQgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MQpPcGVyICgyOTYpOiB0aWQ6IGU4OGJlMDY0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI5Nyk6IHRpZDogZTg4YmUwNjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiBlODhiZTA2NCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3 MCAgbG9uZ2VzdDogMTk0OTIyNzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6 IGU4OGJlMDY0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzAwKTogdGlkOiBlODhiZTA2NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDEp OiB0aWQ6IGU4OGJlMDY0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDMwMik6IHRpZDogZTg4YmUwNjQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzAzKTogdGlkOiBlODhiZTA2NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA0KTogdGlkOiA4YTQwYjI5ZSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMDUpOiB0aWQ6IDhhNDBiMjllICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDYpOiB0aWQ6IDhhNDBiMjllICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgzMDcpOiB0aWQ6IDhhNDBiMjllICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NTNjMDAgbmJsb2NrcyAweDU1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDEKT3BlciAoMzA4KTogdGlkOiA4YTQwYjI5ZSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMDkpOiB0aWQ6IDhhNDBiMjllICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogOGE0MGIyOWUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjkg IGxvbmdlc3Q6IDE5NDkyMjY5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiA4 YTQwYjI5ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDMxMik6IHRpZDogOGE0MGIyOWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEzKTog dGlkOiA4YTQwYjI5ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0aWQ6IDhhNDBiMjllICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMx NSk6IHRpZDogOGE0MGIyOWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNik6IHRpZDogOWM5ZWE1OTYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzE3KTogdGlkOiA5YzllYTU5NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE4KTogdGlkOiA5YzllYTU5NiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMzE5KTogdGlkOiA5YzllYTU5NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDU1MDAwIG5ibG9ja3MgMHg1NyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCk9wZXIgKDMyMCk6IHRpZDogOWM5ZWE1OTYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzIxKTogdGlkOiA5YzllYTU5NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IDljOWVhNTk2ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY3ICBs b25nZXN0OiAxOTQ5MjI2NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogOWM5 ZWE1OTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzMjQpOiB0aWQ6IDljOWVhNTk2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNSk6IHRp ZDogOWM5ZWE1OTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzI2KTogdGlkOiA5YzllYTU5NiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjcp OiB0aWQ6IDljOWVhNTk2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjgpOiB0aWQ6IDlkYzQ1NWMzICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMy OSk6IHRpZDogOWRjNDU1YzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMCk6IHRpZDogOWRjNDU1YzMgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDMzMSk6IHRpZDogOWRjNDU1YzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg1NjQwMCBuYmxvY2tzIDB4NTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MQpPcGVyICgzMzIpOiB0aWQ6IDlkYzQ1NWMzICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzMyk6IHRpZDogOWRjNDU1YzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiA5ZGM0NTVjMyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NiAgbG9u Z2VzdDogMTk0OTIyNjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDlkYzQ1 NWMzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzM2KTogdGlkOiA5ZGM0NTVjMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6 IDlkYzQ1NWMzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDMzOCk6IHRpZDogOWRjNDU1YzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM5KTog dGlkOiA5ZGM0NTVjMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQwKTogdGlkOiA3YTgyOWY4YSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEp OiB0aWQ6IDdhODI5ZjhhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDIpOiB0aWQ6IDdhODI5ZjhhICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgzNDMpOiB0aWQ6IDdhODI5ZjhhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NTc4MDAgbmJsb2NrcyAweDU5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDEKT3BlciAoMzQ0KTogdGlkOiA3YTgyOWY4YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNDUpOiB0aWQ6IDdhODI5ZjhhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogN2E4MjlmOGEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjUgIGxvbmdl c3Q6IDE5NDkyMjY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiA3YTgyOWY4 YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM0OCk6IHRpZDogN2E4MjlmOGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ5KTogdGlkOiA3 YTgyOWY4YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzNTApOiB0aWQ6IDdhODI5ZjhhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MSk6IHRp ZDogN2E4MjlmOGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Mik6IHRpZDogM2QzY2ExMjIgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTog dGlkOiAzZDNjYTEyMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzU0KTogdGlkOiAzZDNjYTEyMiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMzU1KTogdGlkOiAzZDNjYTEyMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDU4YzAwIG5ibG9ja3MgMHg1YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgxCk9wZXIgKDM1Nik6IHRpZDogM2QzY2ExMjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzU3KTogdGlkOiAzZDNjYTEyMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IDNkM2NhMTIyICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY0ICBsb25nZXN0 OiAxOTQ5MjI2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogM2QzY2ExMjIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzNjApOiB0aWQ6IDNkM2NhMTIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MSk6IHRpZDogM2Qz Y2ExMjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzYyKTogdGlkOiAzZDNjYTEyMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjMpOiB0aWQ6 IDNkM2NhMTIyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjQpOiB0aWQ6IDFmZTZjYTEwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRp ZDogMWZlNmNhMTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2Nik6IHRpZDogMWZlNmNhMTAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDM2Nyk6IHRpZDogMWZlNmNhMTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg1YTAwMCBuYmxvY2tzIDB4NWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MQpPcGVyICgzNjgpOiB0aWQ6IDFmZTZjYTEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2 OSk6IHRpZDogMWZlNmNhMTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiAxZmU2Y2ExMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2MiAgbG9uZ2VzdDog MTk0OTIyNjIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDFmZTZjYTEwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzcyKTogdGlkOiAxZmU2Y2ExMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzMpOiB0aWQ6IDFmZTZj YTEwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM3NCk6IHRpZDogMWZlNmNhMTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1KTogdGlkOiAx ZmU2Y2ExMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzc2KTogdGlkOiAyNWM1YWI3OSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6 IDI1YzVhYjc5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzgpOiB0aWQ6IDI1YzVhYjc5ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgzNzkpOiB0aWQ6IDI1YzVhYjc5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NWI0MDAgbmJsb2NrcyAweDVkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoMzgwKTogdGlkOiAyNWM1YWI3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEp OiB0aWQ6IDI1YzVhYjc5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDM4Mik6IHRpZDogMjVjNWFiNzkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjEgIGxvbmdlc3Q6IDE5 NDkyMjYxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiAyNWM1YWI3OSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDM4NCk6IHRpZDogMjVjNWFiNzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg1KTogdGlkOiAyNWM1YWI3 OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzODYpOiB0aWQ6IDI1YzVhYjc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6IHRpZDogMjVj NWFiNzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4OCk6IHRpZDogYzllOTRmZTMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiBj OWU5NGZlMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzkwKTogdGlkOiBjOWU5NGZlMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MzkxKTogdGlkOiBjOWU5NGZlMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDVjODAwIG5ibG9ja3MgMHg1ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDM5Mik6IHRpZDogYzllOTRmZTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTog dGlkOiBjOWU5NGZlMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6IGM5ZTk0ZmUzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYwICBsb25nZXN0OiAxOTQ5 MjI2MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogYzllOTRmZTMgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz OTYpOiB0aWQ6IGM5ZTk0ZmUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6IHRpZDogYzllOTRmZTMg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMzk4KTogdGlkOiBjOWU5NGZlMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTkpOiB0aWQ6IGM5ZTk0 ZmUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MDApOiB0aWQ6IDdlYjZjZTY3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogN2Vi NmNlNjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwMik6IHRpZDogN2ViNmNlNjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQw Myk6IHRpZDogN2ViNmNlNjcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1 ZGMwMCBuYmxvY2tzIDB4NWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg0MDQpOiB0aWQ6IDdlYjZjZTY3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRp ZDogN2ViNmNlNjcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDA2KTogdGlkOiA3ZWI2Y2U2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1OSAgbG9uZ2VzdDogMTk0OTIy NTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IDdlYjZjZTY3ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDA4 KTogdGlkOiA3ZWI2Y2U2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6IDdlYjZjZTY3ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQxMCk6IHRpZDogN2ViNmNlNjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDExKTogdGlkOiA3ZWI2Y2U2 NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDEyKTogdGlkOiBhNDhkYjI5YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0aWQ6IGE0OGRi MjljICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTQpOiB0aWQ6IGE0OGRiMjljICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MTUp OiB0aWQ6IGE0OGRiMjljICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWYw MDAgbmJsb2NrcyAweDYxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo NDE2KTogdGlkOiBhNDhkYjI5YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6 IGE0OGRiMjljICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDQxOCk6IHRpZDogYTQ4ZGIyOWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTcgIGxvbmdlc3Q6IDE5NDkyMjU3 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiBhNDhkYjI5YyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyMCk6 IHRpZDogYTQ4ZGIyOWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiBhNDhkYjI5YyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MjIpOiB0aWQ6IGE0OGRiMjljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMyk6IHRpZDogYTQ4ZGIyOWMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyNCk6IHRpZDogZmY5NGNiMTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiBmZjk0Y2Ix NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDI2KTogdGlkOiBmZjk0Y2IxNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDI3KTog dGlkOiBmZjk0Y2IxNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDYwNDAw IG5ibG9ja3MgMHg2MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQy OCk6IHRpZDogZmY5NGNiMTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiBm Zjk0Y2IxNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0MzApOiB0aWQ6IGZmOTRjYjE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU2ICBsb25nZXN0OiAxOTQ5MjI1Ngot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogZmY5NGNiMTYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzIpOiB0 aWQ6IGZmOTRjYjE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogZmY5NGNiMTYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDM0 KTogdGlkOiBmZjk0Y2IxNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzUpOiB0aWQ6IGZmOTRjYjE2ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MzYpOiB0aWQ6IGY2ZDcwYTY3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDogZjZkNzBhNjcg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzOCk6IHRpZDogZjZkNzBhNjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQzOSk6IHRp ZDogZjZkNzBhNjcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MTgwMCBu YmxvY2tzIDB4NjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NDAp OiB0aWQ6IGY2ZDcwYTY3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogZjZk NzBhNjcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNDQyKTogdGlkOiBmNmQ3MGE2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NSAgbG9uZ2VzdDogMTk0OTIyNTUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGY2ZDcwYTY3ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ0KTogdGlk OiBmNmQ3MGE2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IGY2ZDcwYTY3ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0Nik6 IHRpZDogZjZkNzBhNjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3KTogdGlkOiBmNmQ3MGE2NyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDQ4KTogdGlkOiA1NDZmNzUzYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IDU0NmY3NTNhICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NTApOiB0aWQ6IDU0NmY3NTNhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NTEpOiB0aWQ6 IDU0NmY3NTNhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjJjMDAgbmJs b2NrcyAweDY0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDUyKTog dGlkOiA1NDZmNzUzYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDU0NmY3 NTNhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDQ1NCk6IHRpZDogNTQ2Zjc1M2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTQgIGxvbmdlc3Q6IDE5NDkyMjU0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA1NDZmNzUzYSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1Nik6IHRpZDog NTQ2Zjc1M2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3KTogdGlkOiA1NDZmNzUzYSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTgpOiB0 aWQ6IDU0NmY3NTNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6IHRpZDogNTQ2Zjc1M2EgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2MCk6IHRpZDogYmFkMWRkNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiBiYWQxZGQ1NyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYyKTogdGlkOiBiYWQxZGQ1NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDYzKTogdGlkOiBi YWQxZGQ1NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY0MDAwIG5ibG9j a3MgMHg2NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQ2NCk6IHRp ZDogYmFkMWRkNTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiBiYWQxZGQ1 NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0NjYpOiB0aWQ6IGJhZDFkZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjUyICBsb25nZXN0OiAxOTQ5MjI1MgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogYmFkMWRkNTcgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjgpOiB0aWQ6IGJh ZDFkZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogYmFkMWRkNTcgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDcwKTogdGlk OiBiYWQxZGQ1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6IGJhZDFkZDU3ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NzIpOiB0aWQ6IDMxMTMzNjkwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogMzExMzM2OTAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ3NCk6IHRpZDogMzExMzM2OTAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3NSk6IHRpZDogMzEx MzM2OTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NTQwMCBuYmxvY2tz IDB4NjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0NzYpOiB0aWQ6 IDMxMTMzNjkwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogMzExMzM2OTAg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNDc4KTogdGlkOiAzMTEzMzY5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1MSAgbG9uZ2VzdDogMTk0OTIyNTEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDMxMTMzNjkwICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgwKTogdGlkOiAzMTEz MzY5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IDMxMTMzNjkwICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4Mik6IHRpZDog MzExMzM2OTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTogdGlkOiAzMTEzMzY5MCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDg0KTogdGlkOiA5ZTQ3MjI1ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDllNDcyMjVlICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 ODYpOiB0aWQ6IDllNDcyMjVlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0ODcpOiB0aWQ6IDllNDcy MjVlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjY4MDAgbmJsb2NrcyAw eDY4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDg4KTogdGlkOiA5 ZTQ3MjI1ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODkpOiB0aWQ6IDllNDcyMjVlICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDQ5MCk6IHRpZDogOWU0NzIyNWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TlRJTlVFIApBR0YgQnVmZmVyOiBYQUdGICBPdXQgb2Ygc3BhY2UKCj09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDI3OQl0YWlsX2xzbjogMSwxMzgKbGVuZ3Ro IG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiAyMTUJCW51bSBvcHM6IDQ4OQp1dWlk OiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBl bmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0 aWQ6IDllNDcyMjVlICBsZW46IDcyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBXQVNfQ09OVCBF TkQgCkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEpOiB0aWQ6IDllNDcyMjVlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMik6IHRpZDogOWU0NzIyNWUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMyk6IHRpZDogOWU0NzIyNWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNCk6IHRpZDogOWU0NzIyNWUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNSk6IHRpZDogOWU0NzIyNWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IDVhZWE4YWJl ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcpOiB0aWQ6IDVhZWE4YWJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiA1YWVhOGFiZSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoOSk6IHRpZDogNWFlYThhYmUgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg2N2MwMCBuYmxvY2tzIDB4NjkgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MQpPcGVyICgxMCk6IHRpZDogNWFlYThhYmUgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTEpOiB0aWQ6IDVhZWE4YWJlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyKTogdGlkOiA1YWVhOGFiZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0OSAg bG9uZ2VzdDogMTk0OTIyNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDogNWFl YThhYmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxNCk6IHRpZDogNWFlYThhYmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6 IDVhZWE4YWJlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE2KTogdGlkOiA1YWVhOGFiZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRp ZDogNWFlYThhYmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiBlMjM4Y2YwNyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOSk6IHRp ZDogZTIzOGNmMDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIwKTogdGlkOiBlMjM4Y2YwNyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMjEpOiB0aWQ6IGUyMzhjZjA3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NjkwMDAgbmJsb2NrcyAweDZiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoMjIpOiB0aWQ6IGUyMzhjZjA3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTog dGlkOiBlMjM4Y2YwNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogZTIzOGNmMDcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDcgIGxvbmdlc3Q6IDE5NDky MjQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IGUyMzhjZjA3ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYp OiB0aWQ6IGUyMzhjZjA3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3KTogdGlkOiBlMjM4Y2YwNyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy OCk6IHRpZDogZTIzOGNmMDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IGUyMzhjZjA3ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMCk6IHRpZDogZjQ1YzFhYzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEpOiB0aWQ6IGY0NWMxYWMwICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMik6IHRpZDogZjQ1YzFhYzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMzKTogdGlkOiBm NDVjMWFjMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZhNDAwIG5ibG9j a3MgMHg2YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM0KTogdGlk OiBmNDVjMWFjMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDogZjQ1YzFhYzAg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMzYpOiB0aWQ6IGY0NWMxYWMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ2ICBsb25nZXN0OiAxOTQ5MjI0NgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3KTogdGlkOiBmNDVjMWFjMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4KTogdGlkOiBmNDVjMWFj MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDogZjQ1YzFhYzAgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDApOiB0aWQ6IGY0NWMx YWMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiBmNDVjMWFjMCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0 aWQ6IDE4ZTFlMzA1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiAxOGUxZTMwNSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQpOiB0aWQ6 IDE4ZTFlMzA1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NSk6IHRpZDogMThlMWUzMDUgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2YjgwMCBuYmxvY2tzIDB4NmQgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0Nik6IHRpZDogMThlMWUzMDUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDE4ZTFlMzA1ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4KTogdGlkOiAx OGUxZTMwNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI0NSAgbG9uZ2VzdDogMTk0OTIyNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0OSk6IHRpZDogMThlMWUzMDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1MCk6IHRpZDogMThlMWUzMDUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTEpOiB0aWQ6IDE4ZTFlMzA1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUyKTogdGlkOiAxOGUxZTMwNSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Myk6IHRpZDogMThlMWUzMDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTogdGlkOiBkMDE3NmE1MyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1NSk6IHRpZDogZDAxNzZhNTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU2KTogdGlkOiBkMDE3NmE1MyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNTcpOiB0aWQ6IGQwMTc2YTUzICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NmNjMDAgbmJsb2NrcyAweDZlIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoNTgpOiB0aWQ6IGQwMTc2YTUzICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDU5KTogdGlkOiBkMDE3NmE1MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2MCk6IHRpZDogZDAxNzZhNTMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDQg IGxvbmdlc3Q6IDE5NDkyMjQ0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6IGQw MTc2YTUzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNjIpOiB0aWQ6IGQwMTc2YTUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYzKTogdGlk OiBkMDE3NmE1MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg2NCk6IHRpZDogZDAxNzZhNTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0 aWQ6IGQwMTc2YTUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nik6IHRpZDogNjE2NzA4ZmMgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0 aWQ6IDYxNjcwOGZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg2OCk6IHRpZDogNjE2NzA4ZmMgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDY5KTogdGlkOiA2MTY3MDhmYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDZlMDAwIG5ibG9ja3MgMHg3MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDcwKTogdGlkOiA2MTY3MDhmYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MSk6 IHRpZDogNjE2NzA4ZmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNzIpOiB0aWQ6IDYxNjcwOGZjICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQyICBsb25nZXN0OiAxOTQ5 MjI0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTogdGlkOiA2MTY3MDhmYyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc0 KTogdGlkOiA2MTY3MDhmYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NSk6IHRpZDogNjE2NzA4ZmMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NzYpOiB0aWQ6IDYxNjcwOGZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3KTogdGlkOiA2MTY3MDhmYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzgpOiB0aWQ6IDQxMjdiMjc4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiA0MTI3YjI3OCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODApOiB0aWQ6IDQxMjdiMjc4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4MSk6IHRpZDog NDEyN2IyNzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2ZjQwMCBuYmxv Y2tzIDB4NzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg4Mik6IHRp ZDogNDEyN2IyNzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IDQxMjdiMjc4 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDg0KTogdGlkOiA0MTI3YjI3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0MSAgbG9uZ2VzdDogMTk0OTIyNDEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogNDEyN2IyNzggIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Nik6IHRpZDogNDEyN2Iy NzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IDQxMjdiMjc4ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg4KTogdGlkOiA0MTI3 YjI3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogNDEyN2IyNzggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkwKTog dGlkOiA2ZTg0M2UyMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDogNmU4NDNlMjIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkyKTogdGlk OiA2ZTg0M2UyMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTMpOiB0aWQ6IDZlODQzZTIyICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzA4MDAgbmJsb2NrcyAweDcyIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoOTQpOiB0aWQ6IDZlODQzZTIyICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiA2ZTg0M2UyMiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5Nik6IHRpZDog NmU4NDNlMjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyNDAgIGxvbmdlc3Q6IDE5NDkyMjQwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTcpOiB0aWQ6IDZlODQzZTIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTgpOiB0aWQ6IDZlODQzZTIyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDk5KTogdGlkOiA2ZTg0M2UyMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDApOiB0aWQ6IDZlODQzZTIyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwMSk6IHRpZDogNmU4NDNlMjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMik6IHRpZDogNmQxN2Jl MTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTAzKTogdGlkOiA2ZDE3YmUxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA0KTogdGlkOiA2ZDE3YmUx NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTA1KTogdGlkOiA2ZDE3YmUxNyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDcxYzAwIG5ibG9ja3MgMHg3MyBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDEwNik6IHRpZDogNmQxN2JlMTcgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiA2ZDE3YmUxNyAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDgpOiB0aWQ6IDZkMTdi ZTE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjM5ICBsb25nZXN0OiAxOTQ5MjIzOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw OSk6IHRpZDogNmQxN2JlMTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTApOiB0aWQ6IDZkMTdiZTE3ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExMSk6IHRpZDogNmQxN2JlMTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEyKTogdGlkOiA2ZDE3YmUxNyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMTMpOiB0aWQ6IDZkMTdiZTE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IDE1YzJjNjE5 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDExNSk6IHRpZDogMTVjMmM2MTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNik6IHRpZDogMTVjMmM2MTkg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDExNyk6IHRpZDogMTVjMmM2MTkgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3MzAwMCBuYmxvY2tzIDB4NzUgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxMTgpOiB0aWQ6IDE1YzJjNjE5ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogMTVjMmM2MTkgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTIwKTogdGlkOiAxNWMyYzYx OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjIzNyAgbG9uZ2VzdDogMTk0OTIyMzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjEp OiB0aWQ6IDE1YzJjNjE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTIyKTogdGlkOiAxNWMyYzYxOSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMjMpOiB0aWQ6IDE1YzJjNjE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyNCk6IHRpZDogMTVjMmM2MTkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTI1KTogdGlkOiAxNWMyYzYxOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTogdGlkOiA2MDZiZjI4OCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMjcpOiB0aWQ6IDYwNmJmMjg4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjgpOiB0aWQ6IDYwNmJmMjg4ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgxMjkpOiB0aWQ6IDYwNmJmMjg4ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4NzQ0MDAgbmJsb2NrcyAweDc2IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTMwKTogdGlkOiA2MDZiZjI4OCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDYwNmJmMjg4ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzMik6IHRpZDogNjA2YmYyODgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyMzYgIGxvbmdlc3Q6IDE5NDkyMjM2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTog dGlkOiA2MDZiZjI4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEzNCk6IHRpZDogNjA2YmYyODggIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTM1KTogdGlkOiA2MDZiZjI4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzYpOiB0aWQ6IDYwNmJmMjg4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEzNyk6IHRpZDogNjA2YmYyODggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogZDViNTEwYTkgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTM5KTogdGlkOiBkNWI1MTBhOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQwKTogdGlkOiBkNWI1MTBhOSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTQxKTogdGlkOiBkNWI1MTBhOSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDc1ODAwIG5ibG9ja3MgMHg3NyBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE0Mik6IHRpZDogZDViNTEwYTkgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTQzKTogdGlkOiBkNWI1MTBhOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDQpOiB0aWQ6IGQ1YjUxMGE5ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjM1ICBsb25nZXN0OiAxOTQ5MjIzNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRp ZDogZDViNTEwYTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxNDYpOiB0aWQ6IGQ1YjUxMGE5ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 Nyk6IHRpZDogZDViNTEwYTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ4KTogdGlkOiBkNWI1MTBhOSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNDkpOiB0aWQ6IGQ1YjUxMGE5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IDE2MmMxMTQ1ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1MSk6IHRpZDogMTYyYzExNDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Mik6IHRpZDogMTYyYzExNDUgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDE1Myk6IHRpZDogMTYyYzExNDUgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg3NmMwMCBuYmxvY2tzIDB4NzggZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MQpPcGVyICgxNTQpOiB0aWQ6IDE2MmMxMTQ1ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1NSk6IHRpZDogMTYyYzExNDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTU2KTogdGlkOiAxNjJjMTE0NSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIz NCAgbG9uZ2VzdDogMTk0OTIyMzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6 IDE2MmMxMTQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTU4KTogdGlkOiAxNjJjMTE0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkp OiB0aWQ6IDE2MmMxMTQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDE2MCk6IHRpZDogMTYyYzExNDUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTYxKTogdGlkOiAxNjJjMTE0NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiA0YTZmYjRjNiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNjMpOiB0aWQ6IDRhNmZiNGM2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjQpOiB0aWQ6IDRhNmZiNGM2ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxNjUpOiB0aWQ6IDRhNmZiNGM2ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NzgwMDAgbmJsb2NrcyAweDdhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDEKT3BlciAoMTY2KTogdGlkOiA0YTZmYjRjNiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjcpOiB0aWQ6IDRhNmZiNGM2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRpZDogNGE2ZmI0YzYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzIg IGxvbmdlc3Q6IDE5NDkyMjMyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiA0 YTZmYjRjNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE3MCk6IHRpZDogNGE2ZmI0YzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcxKTog dGlkOiA0YTZmYjRjNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxNzIpOiB0aWQ6IDRhNmZiNGM2ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 Myk6IHRpZDogNGE2ZmI0YzYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogZGQ0MzYzYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NzUpOiB0aWQ6IGRkNDM2M2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRpZDogZGQ0MzYzYSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTc3KTogdGlkOiBkZDQzNjNhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4Nzk0MDAgbmJsb2NrcyAweDdiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDEKT3BlciAoMTc4KTogdGlkOiBkZDQzNjNhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE3OSk6IHRpZDogZGQ0MzYzYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6IGRkNDM2M2EgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzEgIGxvbmdlc3Q6 IDE5NDkyMjMxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiBkZDQzNjNhICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTgyKTogdGlkOiBkZDQzNjNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogZGQ0MzYz YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxODQpOiB0aWQ6IGRkNDM2M2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiBkZDQz NjNhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODYpOiB0aWQ6IDQ4NmZiNmRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRpZDogNDg2 ZmI2ZGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4OCk6IHRpZDogNDg2ZmI2ZGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4 OSk6IHRpZDogNDg2ZmI2ZGYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3 YTgwMCBuYmxvY2tzIDB4N2MgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICgxOTApOiB0aWQ6IDQ4NmZiNmRmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MSk6IHRp ZDogNDg2ZmI2ZGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiA0ODZmYjZkZiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzMCAgbG9uZ2VzdDogMTk0OTIy MzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IDQ4NmZiNmRmICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk0 KTogdGlkOiA0ODZmYjZkZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IDQ4NmZiNmRmICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE5Nik6IHRpZDogNDg2ZmI2ZGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk3KTogdGlkOiA0ODZmYjZk ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTk4KTogdGlkOiA0ZTQyZWI0OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0aWQ6IDRlNDJl YjQ4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMDApOiB0aWQ6IDRlNDJlYjQ4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDEp OiB0aWQ6IDRlNDJlYjQ4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4N2Jj MDAgbmJsb2NrcyAweDdkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo MjAyKTogdGlkOiA0ZTQyZWI0OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDMpOiB0aWQ6 IDRlNDJlYjQ4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDIwNCk6IHRpZDogNGU0MmViNDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjkgIGxvbmdlc3Q6IDE5NDkyMjI5 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiA0ZTQyZWI0OCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNik6 IHRpZDogNGU0MmViNDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA3KTogdGlkOiA0ZTQyZWI0OCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy MDgpOiB0aWQ6IDRlNDJlYjQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOSk6IHRpZDogNGU0MmViNDgg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIxMCk6IHRpZDogY2MwMGM3MzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjExKTogdGlkOiBjYzAwYzcz OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjEyKTogdGlkOiBjYzAwYzczOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjEzKTog dGlkOiBjYzAwYzczOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdkMDAw IG5ibG9ja3MgMHg3ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIx NCk6IHRpZDogY2MwMGM3MzkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1KTogdGlkOiBj YzAwYzczOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgyMTYpOiB0aWQ6IGNjMDBjNzM5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI3ICBsb25nZXN0OiAxOTQ5MjIyNwot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogY2MwMGM3MzkgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTgpOiB0 aWQ6IGNjMDBjNzM5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOSk6IHRpZDogY2MwMGM3MzkgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIw KTogdGlkOiBjYzAwYzczOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjEpOiB0aWQ6IGNjMDBjNzM5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMjIpOiB0aWQ6IDgxMzE1YjRkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMyk6IHRpZDogODEzMTViNGQg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyNCk6IHRpZDogODEzMTViNGQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyNSk6IHRp ZDogODEzMTViNGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ZTQwMCBu YmxvY2tzIDB4ODAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMjYp OiB0aWQ6IDgxMzE1YjRkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNyk6IHRpZDogODEz MTViNGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjI4KTogdGlkOiA4MTMxNWI0ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyNiAgbG9uZ2VzdDogMTk0OTIyMjYKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IDgxMzE1YjRkICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMwKTogdGlk OiA4MTMxNWI0ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEpOiB0aWQ6IDgxMzE1YjRkICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMik6 IHRpZDogODEzMTViNGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMzKTogdGlkOiA4MTMxNWI0ZCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjM0KTogdGlkOiA1YTZhMTFlNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0aWQ6IDVhNmExMWU0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzYpOiB0aWQ6IDVhNmExMWU0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzcpOiB0aWQ6 IDVhNmExMWU0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4N2Y4MDAgbmJs b2NrcyAweDgxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjM4KTog dGlkOiA1YTZhMTFlNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzkpOiB0aWQ6IDVhNmEx MWU0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDI0MCk6IHRpZDogNWE2YTExZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjUgIGxvbmdlc3Q6IDE5NDkyMjI1Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiA1YTZhMTFlNCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0Mik6IHRpZDog NWE2YTExZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQzKTogdGlkOiA1YTZhMTFlNCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDQpOiB0 aWQ6IDVhNmExMWU0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NSk6IHRpZDogNWE2YTExZTQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0Nik6IHRpZDogZDFmYTM0ZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlkOiBkMWZhMzRlMiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQ4KTogdGlkOiBkMWZhMzRlMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ5KTogdGlkOiBk MWZhMzRlMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDgwYzAwIG5ibG9j a3MgMHg4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI1MCk6IHRp ZDogZDFmYTM0ZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUxKTogdGlkOiBkMWZhMzRl MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyNTIpOiB0aWQ6IGQxZmEzNGUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI0ICBsb25nZXN0OiAxOTQ5MjIyNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogZDFmYTM0ZTIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTQpOiB0aWQ6IGQx ZmEzNGUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NSk6IHRpZDogZDFmYTM0ZTIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU2KTogdGlk OiBkMWZhMzRlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTcpOiB0aWQ6IGQxZmEzNGUyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNTgpOiB0aWQ6IGI0MzU3ZWY1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogYjQzNTdlZjUgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2MCk6IHRpZDogYjQzNTdlZjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2MSk6IHRpZDogYjQz NTdlZjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4MjAwMCBuYmxvY2tz IDB4ODQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNjIpOiB0aWQ6 IGI0MzU3ZWY1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6IHRpZDogYjQzNTdlZjUg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjY0KTogdGlkOiBiNDM1N2VmNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyMiAgbG9uZ2VzdDogMTk0OTIyMjIKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjUpOiB0aWQ6IGI0MzU3ZWY1ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY2KTogdGlkOiBiNDM1 N2VmNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjcpOiB0aWQ6IGI0MzU3ZWY1ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2OCk6IHRpZDog YjQzNTdlZjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY5KTogdGlkOiBiNDM1N2VmNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjcwKTogdGlkOiA3MzYwNDM1MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDczNjA0MzUyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzIpOiB0aWQ6IDczNjA0MzUyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzMpOiB0aWQ6IDczNjA0 MzUyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODM0MDAgbmJsb2NrcyAw eDg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjc0KTogdGlkOiA3 MzYwNDM1MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0aWQ6IDczNjA0MzUyICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI3Nik6IHRpZDogNzM2MDQzNTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyMjEgIGxvbmdlc3Q6IDE5NDkyMjIxCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiA3MzYwNDM1MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3OCk6IHRpZDogNzM2MDQz NTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlkOiA3MzYwNDM1MiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODApOiB0aWQ6IDcz NjA0MzUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MSk6IHRpZDogNzM2MDQzNTIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4 Mik6IHRpZDogN2FiZDdlNWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiA3YWJkN2U1ZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg0 KTogdGlkOiA3YWJkN2U1ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjg1KTogdGlkOiA3YWJkN2U1 ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg0ODAwIG5ibG9ja3MgMHg4 NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI4Nik6IHRpZDogN2Fi ZDdlNWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlkOiA3YWJkN2U1ZCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy ODgpOiB0aWQ6IDdhYmQ3ZTVkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjIwICBsb25nZXN0OiAxOTQ5MjIyMAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogN2FiZDdlNWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTApOiB0aWQ6IDdhYmQ3ZTVk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDogN2FiZDdlNWQgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkyKTogdGlkOiA3YWJk N2U1ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMpOiB0aWQ6IDdhYmQ3ZTVkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTQp OiB0aWQ6IDg1ZDBlNGMzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogODVkMGU0YzMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nik6 IHRpZDogODVkMGU0YzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Nyk6IHRpZDogODVkMGU0YzMg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4NWMwMCBuYmxvY2tzIDB4ODcg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyOTgpOiB0aWQ6IDg1ZDBl NGMzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRpZDogODVkMGU0YzMgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzAw KTogdGlkOiA4NWQwZTRjMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjIxOSAgbG9uZ2VzdDogMTk0OTIyMTkKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMDEpOiB0aWQ6IDg1ZDBlNGMzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAyKTogdGlkOiA4NWQwZTRjMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IDg1ZDBlNGMzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwNCk6IHRpZDogODVkMGU0 YzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiA4NWQwZTRjMyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA2KTog dGlkOiA0MWYyMWQ5MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IDQxZjIxZDkzICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDgpOiB0 aWQ6IDQxZjIxZDkzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDkpOiB0aWQ6IDQxZjIxZDkzICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODcwMDAgbmJsb2NrcyAweDg5IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzEwKTogdGlkOiA0MWYyMWQ5 MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IDQxZjIxZDkzICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxMik6 IHRpZDogNDFmMjFkOTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyMTcgIGxvbmdlc3Q6IDE5NDkyMjE3Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzEzKTogdGlkOiA0MWYyMWQ5MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNCk6IHRpZDogNDFmMjFkOTMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiA0MWYyMWQ5MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTYpOiB0aWQ6IDQxZjIxZDkz ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogNDFmMjFkOTMgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOCk6IHRp ZDogMTc3YTIwZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiAxNzdhMjBlYyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIwKTogdGlk OiAxNzdhMjBlYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzIxKTogdGlkOiAxNzdhMjBlYyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg4NDAwIG5ibG9ja3MgMHg4YSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMyMik6IHRpZDogMTc3YTIwZWMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiAxNzdhMjBlYyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjQpOiB0 aWQ6IDE3N2EyMGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMjE2ICBsb25nZXN0OiAxOTQ5MjIxNgotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMyNSk6IHRpZDogMTc3YTIwZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjYpOiB0aWQ6IDE3N2EyMGVjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyNyk6IHRpZDogMTc3YTIwZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI4KTogdGlkOiAxNzdhMjBlYyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6IDE3N2EyMGVjICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzApOiB0aWQ6 IDI4OGIyMzBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogMjg4YjIzMGUgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMik6IHRpZDog Mjg4YjIzMGUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMzMyk6IHRpZDogMjg4YjIzMGUgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4OTgwMCBuYmxvY2tzIDB4OGIgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMzQpOiB0aWQ6IDI4OGIyMzBlICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogMjg4YjIzMGUgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM2KTogdGlk OiAyODhiMjMwZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjIxNSAgbG9uZ2VzdDogMTk0OTIyMTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMzcpOiB0aWQ6IDI4OGIyMzBlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM4KTogdGlkOiAyODhiMjMwZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzkpOiB0aWQ6IDI4OGIyMzBlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0MCk6IHRpZDogMjg4YjIzMGUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiAyODhiMjMwZSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQyKTogdGlkOiBj OGQyYjQyYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGM4ZDJiNDJjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDQpOiB0aWQ6IGM4 ZDJiNDJjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDUpOiB0aWQ6IGM4ZDJiNDJjICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGFjMDAgbmJsb2NrcyAweDhjIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzQ2KTogdGlkOiBjOGQyYjQyYyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0aWQ6IGM4ZDJiNDJjICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0OCk6IHRpZDog YzhkMmI0MmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyMTQgIGxvbmdlc3Q6IDE5NDkyMjE0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzQ5KTogdGlkOiBjOGQyYjQyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1MCk6IHRpZDogYzhkMmI0MmMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzUxKTogdGlkOiBjOGQyYjQyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTIpOiB0aWQ6IGM4ZDJiNDJjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1Myk6IHRpZDogYzhkMmI0MmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NCk6IHRpZDogYzE4 ZjNmODYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiBjMThmM2Y4NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU2KTogdGlkOiBjMThm M2Y4NiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzU3KTogdGlkOiBjMThmM2Y4NiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhjMDAwIG5ibG9ja3MgMHg4ZSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM1OCk6IHRpZDogYzE4ZjNmODYgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiBjMThmM2Y4NiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjApOiB0aWQ6IGMx OGYzZjg2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjEyICBsb25nZXN0OiAxOTQ5MjIxMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM2MSk6IHRpZDogYzE4ZjNmODYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjIpOiB0aWQ6IGMxOGYzZjg2ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2Myk6IHRpZDogYzE4ZjNmODYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY0KTogdGlkOiBjMThmM2Y4NiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNjUpOiB0aWQ6IGMxOGYzZjg2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjYpOiB0aWQ6IDg5NGI1 MDRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogODk0YjUwNGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OCk6IHRpZDogODk0YjUw NGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2OSk6IHRpZDogODk0YjUwNGYgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4ZDQwMCBuYmxvY2tzIDB4OGYgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNzApOiB0aWQ6IDg5NGI1MDRmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogODk0YjUwNGYgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzcyKTogdGlkOiA4OTRi NTA0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjIxMSAgbG9uZ2VzdDogMTk0OTIyMTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzMpOiB0aWQ6IDg5NGI1MDRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc0KTogdGlkOiA4OTRiNTA0ZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNzUpOiB0aWQ6IDg5NGI1MDRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Nik6IHRpZDogODk0YjUwNGYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzc3KTogdGlkOiA4OTRiNTA0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc4KTogdGlkOiBmNWRiZTUw NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzkpOiB0aWQ6IGY1ZGJlNTA1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODApOiB0aWQ6IGY1ZGJlNTA1 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzODEpOiB0aWQ6IGY1ZGJlNTA1ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGU4MDAgbmJsb2NrcyAweDkwIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzgyKTogdGlkOiBmNWRiZTUwNSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IGY1ZGJlNTA1ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4NCk6IHRpZDogZjVkYmU1 MDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyMTAgIGxvbmdlc3Q6IDE5NDkyMjEwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg1 KTogdGlkOiBmNWRiZTUwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM4Nik6IHRpZDogZjVkYmU1MDUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzg3KTogdGlkOiBmNWRiZTUwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODgpOiB0aWQ6IGY1ZGJlNTA1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM4OSk6IHRpZDogZjVkYmU1MDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MCk6IHRpZDogZjA1NzFkZWQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzkxKTogdGlkOiBmMDU3MWRlZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkyKTogdGlkOiBmMDU3MWRlZCAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzkzKTogdGlkOiBmMDU3MWRlZCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDhmYzAwIG5ibG9ja3MgMHg5MSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM5NCk6IHRpZDogZjA1NzFkZWQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiBmMDU3MWRlZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTYpOiB0aWQ6IGYwNTcxZGVk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjA5ICBsb25nZXN0OiAxOTQ5MjIwOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6 IHRpZDogZjA1NzFkZWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOTgpOiB0aWQ6IGYwNTcxZGVkICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5OSk6IHRpZDogZjA1NzFkZWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDAwKTogdGlkOiBmMDU3MWRlZCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDEpOiB0aWQ6IGYwNTcxZGVkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDIpOiB0aWQ6IGIzYzEwMDVhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQwMyk6IHRpZDogYjNjMTAwNWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNCk6IHRpZDogYjNjMTAwNWEgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDQwNSk6IHRpZDogYjNjMTAwNWEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg5MTAwMCBuYmxvY2tzIDB4OTMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MDYpOiB0aWQ6IGIzYzEwMDVhICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogYjNjMTAwNWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA4KTogdGlkOiBiM2MxMDA1YSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjIwNyAgbG9uZ2VzdDogMTk0OTIyMDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0 aWQ6IGIzYzEwMDVhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDEwKTogdGlkOiBiM2MxMDA1YSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MTEpOiB0aWQ6IGIzYzEwMDVhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQxMik6IHRpZDogYjNjMTAwNWEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDEzKTogdGlkOiBiM2MxMDA1YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE0KTogdGlkOiAyMTdlMDk1YSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MTUpOiB0aWQ6IDIxN2UwOTVhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTYpOiB0aWQ6IDIxN2UwOTVhICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg0MTcpOiB0aWQ6IDIxN2UwOTVhICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4OTI0MDAgbmJsb2NrcyAweDk0IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoNDE4KTogdGlkOiAyMTdlMDk1YSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTkpOiB0aWQ6IDIxN2UwOTVhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyMCk6IHRpZDogMjE3ZTA5NWEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy MDYgIGxvbmdlc3Q6IDE5NDkyMjA2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlk OiAyMTdlMDk1YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQyMik6IHRpZDogMjE3ZTA5NWEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIz KTogdGlkOiAyMTdlMDk1YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MjQpOiB0aWQ6IDIxN2UwOTVhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQyNSk6IHRpZDogMjE3ZTA5NWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNik6IHRpZDogYmFkZDNlZDEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDI3KTogdGlkOiBiYWRkM2VkMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI4KTogdGlkOiBiYWRkM2VkMSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNDI5KTogdGlkOiBiYWRkM2VkMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDkzODAwIG5ibG9ja3MgMHg5NSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDQzMCk6IHRpZDogYmFkZDNlZDEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDMxKTogdGlkOiBiYWRkM2VkMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MzIpOiB0aWQ6IGJhZGQzZWQxICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA1 ICBsb25nZXN0OiAxOTQ5MjIwNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDog YmFkZDNlZDEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MzQpOiB0aWQ6IGJhZGQzZWQxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNSk6 IHRpZDogYmFkZDNlZDEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDM2KTogdGlkOiBiYWRkM2VkMSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MzcpOiB0aWQ6IGJhZGQzZWQxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IDVhYTBhNjdmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzOSk6IHRpZDogNWFhMGE2N2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MCk6IHRpZDogNWFhMGE2N2YgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQ0MSk6IHRpZDogNWFhMGE2N2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg5NGMwMCBuYmxvY2tzIDB4OTYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICg0NDIpOiB0aWQ6IDVhYTBhNjdmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ0Myk6IHRpZDogNWFhMGE2N2YgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQ0KTogdGlkOiA1YWEwYTY3ZiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNCAg bG9uZ2VzdDogMTk0OTIyMDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IDVh YTBhNjdmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDQ2KTogdGlkOiA1YWEwYTY3ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDcpOiB0 aWQ6IDVhYTBhNjdmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQ0OCk6IHRpZDogNWFhMGE2N2YgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ5 KTogdGlkOiA1YWEwYTY3ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUwKTogdGlkOiA3MzQ5MzQ5ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 MSk6IHRpZDogNzM0OTM0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiA3MzQ5MzQ5ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0NTMpOiB0aWQ6IDczNDkzNDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg5NjAwMCBuYmxvY2tzIDB4OTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICg0NTQpOiB0aWQ6IDczNDkzNDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDU1KTogdGlkOiA3MzQ5MzQ5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQ1Nik6IHRpZDogNzM0OTM0OSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMiAgbG9uZ2VzdDog MTk0OTIyMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IDczNDkzNDkgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NTgpOiB0aWQ6IDczNDkzNDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlkOiA3MzQ5MzQ5 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ2MCk6IHRpZDogNzM0OTM0OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IDczNDkz NDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2Mik6IHRpZDogNjU4OGU3YmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTogdGlkOiA2NTg4 ZTdiYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDY0KTogdGlkOiA2NTg4ZTdiYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDY1 KTogdGlkOiA2NTg4ZTdiYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDk3 NDAwIG5ibG9ja3MgMHg5OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDQ2Nik6IHRpZDogNjU4OGU3YmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlk OiA2NTg4ZTdiYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0NjgpOiB0aWQ6IDY1ODhlN2JjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjAxICBsb25nZXN0OiAxOTQ5MjIw MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogNjU4OGU3YmMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzAp OiB0aWQ6IDY1ODhlN2JjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDogNjU4OGU3YmMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDcyKTogdGlkOiA2NTg4ZTdiYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzMpOiB0aWQ6IDY1ODhlN2Jj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NzQpOiB0aWQ6IDM3NWEyOWQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6IHRpZDogMzc1YTI5 ZDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ3Nik6IHRpZDogMzc1YTI5ZDMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3Nyk6 IHRpZDogMzc1YTI5ZDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5ODgw MCBuYmxvY2tzIDB4OWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0 NzgpOiB0aWQ6IDM3NWEyOWQzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDog Mzc1YTI5ZDMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDgwKTogdGlkOiAzNzVhMjlkMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMCAgbG9uZ2VzdDogMTk0OTIyMDAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IDM3NWEyOWQzICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgyKTog dGlkOiAzNzVhMjlkMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IDM3NWEyOWQzICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4 NCk6IHRpZDogMzc1YTI5ZDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1KTogdGlkOiAzNzVhMjlkMyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDg2KTogdGlkOiA0NzVmMDA1NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6IDQ3NWYwMDU2 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0ODgpOiB0aWQ6IDQ3NWYwMDU2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNAoKPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMzQzCXRhaWxfbHNuOiAxLDEzOAps ZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDI3OQkJbnVtIG9wczogNDg4 CnV1aWQ6IGIwYzBmMTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1hdDogbGl0 dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MCk6IHRpZDogNDc1ZjAwNTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK TGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMSk6IHRpZDogNDc1ZjAwNTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMik6IHRpZDogNDc1ZjAwNTYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMyk6IHRpZDogNDc1ZjAwNTYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTkg IGxvbmdlc3Q6IDE5NDkyMTk5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogNDc1 ZjAwNTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg1KTogdGlkOiA0NzVmMDA1NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlkOiA0 NzVmMDA1NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg3KTogdGlkOiA0NzVmMDA1NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiA0 NzVmMDA1NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogZDhmZjE5MTMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTApOiB0aWQ6IGQ4 ZmYxOTEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMSk6IHRpZDogZDhmZjE5MTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEy KTogdGlkOiBkOGZmMTkxMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDli MDAwIG5ibG9ja3MgMHg5ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDEzKTogdGlkOiBkOGZmMTkxMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDog ZDhmZjE5MTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTUpOiB0aWQ6IGQ4ZmYxOTEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTk3ICBsb25nZXN0OiAxOTQ5MjE5Nwot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiBkOGZmMTkxMyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3KTogdGlk OiBkOGZmMTkxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogZDhmZjE5MTMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkpOiB0 aWQ6IGQ4ZmYxOTEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwKTogdGlkOiBkOGZmMTkxMyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjEpOiB0aWQ6IDMwNmNhZTU5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyKTogdGlkOiAzMDZjYWU1OSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjMpOiB0aWQ6IDMwNmNhZTU5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNCk6IHRpZDogMzA2Y2Fl NTkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5YzQwMCBuYmxvY2tzIDB4 OWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNSk6IHRpZDogMzA2 Y2FlNTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IDMwNmNhZTU5ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI3 KTogdGlkOiAzMDZjYWU1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE5NiAgbG9uZ2VzdDogMTk0OTIxOTYKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOCk6IHRpZDogMzA2Y2FlNTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOSk6IHRpZDogMzA2Y2FlNTkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDMwNmNhZTU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxKTogdGlkOiAzMDZjYWU1OSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMik6IHRpZDogMzA2Y2FlNTkgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzKTogdGlkOiA1 MTNiNmEzMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNCk6IHRpZDogNTEzYjZhMzMgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTogdGlkOiA1MTNi NmEzMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzYpOiB0aWQ6IDUxM2I2YTMzICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWQ4MDAgbmJsb2NrcyAweDlmIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzcpOiB0aWQ6IDUxM2I2YTMzICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiA1MTNiNmEzMyAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOSk6IHRpZDogNTEzYjZh MzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxOTUgIGxvbmdlc3Q6IDE5NDkyMTk1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAp OiB0aWQ6IDUxM2I2YTMzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDEpOiB0aWQ6IDUxM2I2YTMzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQyKTogdGlkOiA1MTNiNmEzMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Myk6IHRpZDogNTEzYjZhMzMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQpOiB0aWQ6IDUxM2I2YTMzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NSk6IHRpZDogMjk1ODAwMjkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYpOiB0aWQ6IDI5NTgwMDI5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogMjk1ODAwMjkgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQ4KTogdGlkOiAyOTU4MDAyOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDllYzAwIG5ibG9ja3MgMHhhMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgxCk9wZXIgKDQ5KTogdGlkOiAyOTU4MDAyOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1MCk6IHRpZDogMjk1ODAwMjkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTEpOiB0aWQ6IDI5NTgwMDI5ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTk0ICBsb25n ZXN0OiAxOTQ5MjE5NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUyKTogdGlkOiAyOTU4MDAy OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDUzKTogdGlkOiAyOTU4MDAyOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NCk6IHRpZDogMjk1 ODAwMjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNTUpOiB0aWQ6IDI5NTgwMDI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU2KTogdGlkOiAy OTU4MDAyOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDcxNzdjYzkxICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU4KTogdGlkOiA3 MTc3Y2M5MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6IDcxNzdjYzkxICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2 MCk6IHRpZDogNzE3N2NjOTEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhh MDAwMCBuYmxvY2tzIDB4YTIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg2MSk6IHRpZDogNzE3N2NjOTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6 IDcxNzdjYzkxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDYzKTogdGlkOiA3MTc3Y2M5MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5MiAgbG9uZ2VzdDogMTk0OTIxOTIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDogNzE3N2NjOTEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2NSk6IHRp ZDogNzE3N2NjOTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IDcxNzdjYzkxICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDY3KTog dGlkOiA3MTc3Y2M5MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OCk6IHRpZDogNzE3N2NjOTEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDY5KTogdGlkOiBjN2IzYWU4OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MCk6IHRpZDogYzdiM2FlODkgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDcxKTogdGlkOiBjN2IzYWU4OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNzIpOiB0aWQ6IGM3YjNh ZTg5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YTE0MDAgbmJsb2NrcyAw eGEzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNzMpOiB0aWQ6IGM3 YjNhZTg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBjN2IzYWU4OSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg3 NSk6IHRpZDogYzdiM2FlODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxOTEgIGxvbmdlc3Q6IDE5NDkyMTkxCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNzYpOiB0aWQ6IGM3YjNhZTg5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzcpOiB0aWQ6IGM3YjNhZTg5ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiBjN2IzYWU4OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3OSk6IHRpZDogYzdiM2FlODkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODApOiB0aWQ6IGM3YjNhZTg5ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDog YjA3YWY2ZDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODIpOiB0aWQ6IGIwN2FmNmQwICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogYjA3 YWY2ZDAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDg0KTogdGlkOiBiMDdhZjZkMCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGEyODAwIG5ibG9ja3MgMHhhNCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDg1KTogdGlkOiBiMDdhZjZkMCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDogYjA3YWY2ZDAgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoODcpOiB0aWQ6IGIwN2Fm NmQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTkwICBsb25nZXN0OiAxOTQ5MjE5MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg4 KTogdGlkOiBiMDdhZjZkMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDg5KTogdGlkOiBiMDdhZjZkMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5MCk6IHRpZDogYjA3YWY2ZDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTEpOiB0aWQ6IGIwN2FmNmQwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDkyKTogdGlkOiBiMDdhZjZkMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTMpOiB0aWQ6IDUzYjE0MDJlICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDk0KTogdGlkOiA1M2IxNDAyZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IDUzYjE0MDJlICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg5Nik6IHRpZDogNTNiMTQwMmUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhhM2MwMCBuYmxvY2tzIDB4YTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICg5Nyk6IHRpZDogNTNiMTQwMmUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOTgpOiB0aWQ6IDUzYjE0MDJlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDk5KTogdGlkOiA1M2IxNDAyZSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4OSAgbG9u Z2VzdDogMTk0OTIxODkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDApOiB0aWQ6IDUzYjE0 MDJlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTAxKTogdGlkOiA1M2IxNDAyZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDIpOiB0aWQ6 IDUzYjE0MDJlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDEwMyk6IHRpZDogNTNiMTQwMmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA0KTog dGlkOiA1M2IxNDAyZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1KTogdGlkOiBlNGY5N2E4ZSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDYp OiB0aWQ6IGU0Zjk3YThlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDcpOiB0aWQ6IGU0Zjk3YThlICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxMDgpOiB0aWQ6IGU0Zjk3YThlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4YTUwMDAgbmJsb2NrcyAweGE3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDEKT3BlciAoMTA5KTogdGlkOiBlNGY5N2E4ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMTApOiB0aWQ6IGU0Zjk3YThlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDExMSk6IHRpZDogZTRmOTdhOGUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODcgIGxvbmdl c3Q6IDE5NDkyMTg3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEyKTogdGlkOiBlNGY5N2E4 ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDExMyk6IHRpZDogZTRmOTdhOGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE0KTogdGlkOiBl NGY5N2E4ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxMTUpOiB0aWQ6IGU0Zjk3YThlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNik6IHRp ZDogZTRmOTdhOGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRpZDogMTM4YmVmYWUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE4KTog dGlkOiAxMzhiZWZhZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTogdGlkOiAxMzhiZWZhZSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMTIwKTogdGlkOiAxMzhiZWZhZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGE2NDAwIG5ibG9ja3MgMHhhOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgxCk9wZXIgKDEyMSk6IHRpZDogMTM4YmVmYWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTIyKTogdGlkOiAxMzhiZWZhZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMjMpOiB0aWQ6IDEzOGJlZmFlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg2ICBsb25nZXN0 OiAxOTQ5MjE4NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNCk6IHRpZDogMTM4YmVmYWUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxMjUpOiB0aWQ6IDEzOGJlZmFlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogMTM4 YmVmYWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTI3KTogdGlkOiAxMzhiZWZhZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjgpOiB0aWQ6 IDEzOGJlZmFlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMjkpOiB0aWQ6IGNkOTBhM2JmICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMCk6IHRp ZDogY2Q5MGEzYmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRpZDogY2Q5MGEzYmYgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDEzMik6IHRpZDogY2Q5MGEzYmYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhhNzgwMCBuYmxvY2tzIDB4YTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MQpPcGVyICgxMzMpOiB0aWQ6IGNkOTBhM2JmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEz NCk6IHRpZDogY2Q5MGEzYmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTM1KTogdGlkOiBjZDkwYTNiZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NSAgbG9uZ2VzdDog MTk0OTIxODUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzYpOiB0aWQ6IGNkOTBhM2JmICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTM3KTogdGlkOiBjZDkwYTNiZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IGNkOTBh M2JmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDEzOSk6IHRpZDogY2Q5MGEzYmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQwKTogdGlkOiBj ZDkwYTNiZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiBlZjA4ZTdkNCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDIpOiB0aWQ6 IGVmMDhlN2Q0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6IGVmMDhlN2Q0ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgxNDQpOiB0aWQ6IGVmMDhlN2Q0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4YThjMDAgbmJsb2NrcyAweGFhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEK T3BlciAoMTQ1KTogdGlkOiBlZjA4ZTdkNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYp OiB0aWQ6IGVmMDhlN2Q0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDE0Nyk6IHRpZDogZWYwOGU3ZDQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODQgIGxvbmdlc3Q6IDE5 NDkyMTg0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlkOiBlZjA4ZTdkNCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE0OSk6IHRpZDogZWYwOGU3ZDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUwKTogdGlkOiBlZjA4ZTdk NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNTEpOiB0aWQ6IGVmMDhlN2Q0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Mik6IHRpZDogZWYw OGU3ZDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogM2UyNWU5MTQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU0KTogdGlkOiAz ZTI1ZTkxNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiAzZTI1ZTkxNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTU2KTogdGlkOiAzZTI1ZTkxNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGFhMDAwIG5ibG9ja3MgMHhhYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9w ZXIgKDE1Nyk6IHRpZDogM2UyNWU5MTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4KTog dGlkOiAzZTI1ZTkxNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxNTkpOiB0aWQ6IDNlMjVlOTE0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTgyICBsb25nZXN0OiAxOTQ5 MjE4MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MCk6IHRpZDogM2UyNWU5MTQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NjEpOiB0aWQ6IDNlMjVlOTE0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogM2UyNWU5MTQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTYzKTogdGlkOiAzZTI1ZTkxNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjQpOiB0aWQ6IDNlMjVl OTE0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDkwMjRkMDVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nik6IHRpZDogOTAy NGQwNWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogOTAyNGQwNWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2 OCk6IHRpZDogOTAyNGQwNWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhh YjQwMCBuYmxvY2tzIDB4YWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICgxNjkpOiB0aWQ6IDkwMjRkMDVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MCk6IHRp ZDogOTAyNGQwNWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTcxKTogdGlkOiA5MDI0ZDA1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4MSAgbG9uZ2VzdDogMTk0OTIx ODEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzIpOiB0aWQ6IDkwMjRkMDVjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcz KTogdGlkOiA5MDI0ZDA1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzQpOiB0aWQ6IDkwMjRkMDVjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE3NSk6IHRpZDogOTAyNGQwNWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc2KTogdGlkOiA5MDI0ZDA1 YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTc3KTogdGlkOiBhZmVlNzI5NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzgpOiB0aWQ6IGFmZWU3 Mjk3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzkpOiB0aWQ6IGFmZWU3Mjk3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxODAp OiB0aWQ6IGFmZWU3Mjk3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWM4 MDAgbmJsb2NrcyAweGFlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo MTgxKTogdGlkOiBhZmVlNzI5NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6 IGFmZWU3Mjk3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE4Myk6IHRpZDogYWZlZTcyOTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODAgIGxvbmdlc3Q6IDE5NDkyMTgw Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg0KTogdGlkOiBhZmVlNzI5NyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4NSk6 IHRpZDogYWZlZTcyOTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlkOiBhZmVlNzI5NyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx ODcpOiB0aWQ6IGFmZWU3Mjk3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OCk6IHRpZDogYWZlZTcyOTcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE4OSk6IHRpZDogNzg1YTE5MTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkwKTogdGlkOiA3ODVhMTkx MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTkxKTogdGlkOiA3ODVhMTkxMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTkyKTog dGlkOiA3ODVhMTkxMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFkYzAw IG5ibG9ja3MgMHhhZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE5 Myk6IHRpZDogNzg1YTE5MTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk0KTogdGlkOiA3 ODVhMTkxMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxOTUpOiB0aWQ6IDc4NWExOTEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc5ICBsb25nZXN0OiAxOTQ5MjE3OQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nik6IHRpZDogNzg1YTE5MTIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTcpOiB0 aWQ6IDc4NWExOTEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDogNzg1YTE5MTIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk5 KTogdGlkOiA3ODVhMTkxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDApOiB0aWQ6IDc4NWExOTEyICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMDEpOiB0aWQ6IDVlODA5MWE4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMik6IHRpZDogNWU4MDkxYTgg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIwMyk6IHRpZDogNWU4MDkxYTggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIwNCk6IHRp ZDogNWU4MDkxYTggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhZjAwMCBu YmxvY2tzIDB4YjEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyMDUp OiB0aWQ6IDVlODA5MWE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNik6IHRpZDogNWU4 MDkxYTggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjA3KTogdGlkOiA1ZTgwOTFhOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NyAgbG9uZ2VzdDogMTk0OTIxNzcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDgpOiB0aWQ6IDVlODA5MWE4ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA5KTogdGlk OiA1ZTgwOTFhOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IDVlODA5MWE4ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxMSk6 IHRpZDogNWU4MDkxYTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEyKTogdGlkOiA1ZTgwOTFhOCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjEzKTogdGlkOiAxYjI4Yzg0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTQpOiB0aWQ6IDFiMjhjODRmICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTUpOiB0aWQ6IDFiMjhjODRmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTYpOiB0aWQ6 IDFiMjhjODRmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjA0MDAgbmJs b2NrcyAweGIyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjE3KTog dGlkOiAxYjI4Yzg0ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTgpOiB0aWQ6IDFiMjhj ODRmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDIxOSk6IHRpZDogMWIyOGM4NGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzYgIGxvbmdlc3Q6IDE5NDkyMTc2Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjIwKTogdGlkOiAxYjI4Yzg0ZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMSk6IHRpZDog MWIyOGM4NGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiAxYjI4Yzg0ZiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjMpOiB0 aWQ6IDFiMjhjODRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNCk6IHRpZDogMWIyOGM4NGYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIyNSk6IHRpZDogZTliZmE5OTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI2KTogdGlkOiBlOWJmYTk5MCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjI3KTogdGlkOiBlOWJmYTk5MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjI4KTogdGlkOiBl OWJmYTk5MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGIxODAwIG5ibG9j a3MgMHhiMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIyOSk6IHRp ZDogZTliZmE5OTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMwKTogdGlkOiBlOWJmYTk5 MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyMzEpOiB0aWQ6IGU5YmZhOTkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc1ICBsb25nZXN0OiAxOTQ5MjE3NQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzMik6IHRpZDogZTliZmE5OTAgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzMpOiB0aWQ6IGU5 YmZhOTkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogZTliZmE5OTAgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjM1KTogdGlk OiBlOWJmYTk5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzYpOiB0aWQ6IGU5YmZhOTkwICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMzcpOiB0aWQ6IDMxMjI3NmM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOCk6IHRpZDogMzEyMjc2YzggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzOSk6IHRpZDogMzEyMjc2YzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0MCk6IHRpZDogMzEy Mjc2YzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMmMwMCBuYmxvY2tz IDB4YjQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNDEpOiB0aWQ6 IDMxMjI3NmM4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Mik6IHRpZDogMzEyMjc2Yzgg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjQzKTogdGlkOiAzMTIyNzZjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NCAgbG9uZ2VzdDogMTk0OTIxNzQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNDQpOiB0aWQ6IDMxMjI3NmM4ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ1KTogdGlkOiAzMTIy NzZjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDMxMjI3NmM4ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0Nyk6IHRpZDog MzEyMjc2YzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ4KTogdGlkOiAzMTIyNzZjOCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjQ5KTogdGlkOiAyNTkwMzE0OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTApOiB0aWQ6IDI1OTAzMTQ5ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NTEpOiB0aWQ6IDI1OTAzMTQ5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNTIpOiB0aWQ6IDI1OTAz MTQ5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjQwMDAgbmJsb2NrcyAw eGI2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjUzKTogdGlkOiAy NTkwMzE0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTQpOiB0aWQ6IDI1OTAzMTQ5ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI1NSk6IHRpZDogMjU5MDMxNDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxNzIgIGxvbmdlc3Q6IDE5NDkyMTcyCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjU2KTogdGlkOiAyNTkwMzE0OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1Nyk6IHRpZDogMjU5MDMx NDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiAyNTkwMzE0OSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTkpOiB0aWQ6IDI1 OTAzMTQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MCk6IHRpZDogMjU5MDMxNDkgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2 MSk6IHRpZDogMzJkMWU3MmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYyKTogdGlkOiAzMmQxZTcyYiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYz KTogdGlkOiAzMmQxZTcyYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjY0KTogdGlkOiAzMmQxZTcy YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI1NDAwIG5ibG9ja3MgMHhi NyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI2NSk6IHRpZDogMzJk MWU3MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY2KTogdGlkOiAzMmQxZTcyYiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy NjcpOiB0aWQ6IDMyZDFlNzJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTcxICBsb25nZXN0OiAxOTQ5MjE3MQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI2OCk6IHRpZDogMzJkMWU3MmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjkpOiB0aWQ6IDMyZDFlNzJi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogMzJkMWU3MmIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjcxKTogdGlkOiAzMmQx ZTcyYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzIpOiB0aWQ6IDMyZDFlNzJiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMp OiB0aWQ6IGM2ZjgwNTZkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NCk6IHRpZDogYzZmODA1NmQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6 IHRpZDogYzZmODA1NmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3Nik6IHRpZDogYzZmODA1NmQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiNjgwMCBuYmxvY2tzIDB4Yjgg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyNzcpOiB0aWQ6IGM2Zjgw NTZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3OCk6IHRpZDogYzZmODA1NmQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc5 KTogdGlkOiBjNmY4MDU2ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE3MCAgbG9uZ2VzdDogMTk0OTIxNzAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODApOiB0aWQ6IGM2ZjgwNTZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgxKTogdGlkOiBjNmY4MDU2ZCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IGM2ZjgwNTZkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4Myk6IHRpZDogYzZmODA1 NmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjg0KTogdGlkOiBjNmY4MDU2ZCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1KTog dGlkOiA5N2ExODg3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODYpOiB0aWQ6IDk3YTE4ODcwICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0 aWQ6IDk3YTE4ODcwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyODgpOiB0aWQ6IDk3YTE4ODcwICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjdjMDAgbmJsb2NrcyAweGI5IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMjg5KTogdGlkOiA5N2ExODg3 MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTApOiB0aWQ6IDk3YTE4ODcwICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5MSk6 IHRpZDogOTdhMTg4NzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxNjkgIGxvbmdlc3Q6IDE5NDkyMTY5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjkyKTogdGlkOiA5N2ExODg3MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5Myk6IHRpZDogOTdhMTg4NzAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiA5N2ExODg3MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTUpOiB0aWQ6IDk3YTE4ODcw ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5Nik6IHRpZDogOTdhMTg4NzAgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6IHRp ZDogZWIxZTNlNDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjk4KTogdGlkOiBlYjFlM2U0MCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlk OiBlYjFlM2U0MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzAwKTogdGlkOiBlYjFlM2U0MCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI5MDAwIG5ibG9ja3MgMHhiYiBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMwMSk6IHRpZDogZWIxZTNlNDAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAyKTogdGlkOiBlYjFlM2U0MCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDMpOiB0 aWQ6IGViMWUzZTQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTY3ICBsb25nZXN0OiAxOTQ5MjE2NwotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMwNCk6IHRpZDogZWIxZTNlNDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDUpOiB0aWQ6IGViMWUzZTQwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMwNik6IHRpZDogZWIxZTNlNDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA3KTogdGlkOiBlYjFlM2U0MCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDgpOiB0aWQ6IGViMWUzZTQwICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0aWQ6 IGI1ZWEyYTlmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMxMCk6IHRpZDogYjVlYTJhOWYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDog YjVlYTJhOWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMxMik6IHRpZDogYjVlYTJhOWYgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiYTQwMCBuYmxvY2tzIDB4YmMgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMTMpOiB0aWQ6IGI1ZWEyYTlmICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNCk6IHRpZDogYjVlYTJhOWYgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzE1KTogdGlk OiBiNWVhMmE5ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjE2NiAgbG9uZ2VzdDogMTk0OTIxNjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMTYpOiB0aWQ6IGI1ZWEyYTlmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE3KTogdGlkOiBiNWVhMmE5ZiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMTgpOiB0aWQ6IGI1ZWEyYTlmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxOSk6IHRpZDogYjVlYTJhOWYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzIwKTogdGlkOiBiNWVhMmE5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIxKTogdGlkOiAy MDA5ODk5NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMjIpOiB0aWQ6IDIwMDk4OTk3ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDIw MDk4OTk3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMjQpOiB0aWQ6IDIwMDk4OTk3ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmI4MDAgbmJsb2NrcyAweGJkIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzI1KTogdGlkOiAyMDA5ODk5NyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjYpOiB0aWQ6IDIwMDk4OTk3ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyNyk6IHRpZDog MjAwOTg5OTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxNjUgIGxvbmdlc3Q6IDE5NDkyMTY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzI4KTogdGlkOiAyMDA5ODk5NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyOSk6IHRpZDogMjAwOTg5OTcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzMwKTogdGlkOiAyMDA5ODk5NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzEpOiB0aWQ6IDIwMDk4OTk3ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzMik6IHRpZDogMjAwOTg5OTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogNmYy MDRjNGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzM0KTogdGlkOiA2ZjIwNGM0YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiA2ZjIw NGM0YiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzM2KTogdGlkOiA2ZjIwNGM0YiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJjYzAwIG5ibG9ja3MgMHhiZSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMzNyk6IHRpZDogNmYyMDRjNGIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzM4KTogdGlkOiA2ZjIwNGM0YiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzkpOiB0aWQ6IDZm MjA0YzRiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMTY0ICBsb25nZXN0OiAxOTQ5MjE2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0MCk6IHRpZDogNmYyMDRjNGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDEpOiB0aWQ6IDZmMjA0YzRiICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM0Mik6IHRpZDogNmYyMDRjNGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQzKTogdGlkOiA2ZjIwNGM0YiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNDQpOiB0aWQ6IDZmMjA0YzRiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6IDZiMTFi MjhjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM0Nik6IHRpZDogNmIxMWIyOGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogNmIxMWIy OGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0OCk6IHRpZDogNmIxMWIyOGMgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiZTAwMCBuYmxvY2tzIDB4YzAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNDkpOiB0aWQ6IDZiMTFiMjhjICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM1MCk6IHRpZDogNmIxMWIyOGMgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzUxKTogdGlkOiA2YjEx YjI4YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjE2MiAgbG9uZ2VzdDogMTk0OTIxNjIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTIpOiB0aWQ6IDZiMTFiMjhjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUzKTogdGlkOiA2YjExYjI4YyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTQpOiB0aWQ6IDZiMTFiMjhjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1NSk6IHRpZDogNmIxMWIyOGMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzU2KTogdGlkOiA2YjExYjI4YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTogdGlkOiBmNWVlZDBh OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNTgpOiB0aWQ6IGY1ZWVkMGE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0aWQ6IGY1ZWVkMGE4 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzNjApOiB0aWQ6IGY1ZWVkMGE4ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmY0MDAgbmJsb2NrcyAweGMxIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzYxKTogdGlkOiBmNWVlZDBhOCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjIpOiB0aWQ6IGY1ZWVkMGE4ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2Myk6IHRpZDogZjVlZWQw YTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxNjEgIGxvbmdlc3Q6IDE5NDkyMTYxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY0 KTogdGlkOiBmNWVlZDBhOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM2NSk6IHRpZDogZjVlZWQwYTggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzY2KTogdGlkOiBmNWVlZDBhOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjcpOiB0aWQ6IGY1ZWVkMGE4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2OCk6IHRpZDogZjVlZWQwYTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRpZDogOWNmYTcwODIg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzcwKTogdGlkOiA5Y2ZhNzA4MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlkOiA5Y2ZhNzA4MiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzcyKTogdGlkOiA5Y2ZhNzA4MiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGMwODAwIG5ibG9ja3MgMHhjMiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM3Myk6IHRpZDogOWNmYTcwODIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzc0KTogdGlkOiA5Y2ZhNzA4MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNzUpOiB0aWQ6IDljZmE3MDgy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTYwICBsb25nZXN0OiAxOTQ5MjE2MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nik6 IHRpZDogOWNmYTcwODIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNzcpOiB0aWQ6IDljZmE3MDgyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3OCk6IHRpZDogOWNmYTcwODIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc5KTogdGlkOiA5Y2ZhNzA4MiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODApOiB0aWQ6IDljZmE3MDgyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6IDcwMjk4ZTY4ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM4Mik6IHRpZDogNzAyOThlNjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6IHRpZDogNzAyOThlNjggIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDM4NCk6IHRpZDogNzAyOThlNjggIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhjMWMwMCBuYmxvY2tzIDB4YzMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICgzODUpOiB0aWQ6IDcwMjk4ZTY4ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM4Nik6IHRpZDogNzAyOThlNjggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzg3KTogdGlkOiA3MDI5OGU2OCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjE1OSAgbG9uZ2VzdDogMTk0OTIxNTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODgpOiB0 aWQ6IDcwMjk4ZTY4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzg5KTogdGlkOiA3MDI5OGU2OCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz OTApOiB0aWQ6IDcwMjk4ZTY4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM5MSk6IHRpZDogNzAyOThlNjggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzkyKTogdGlkOiA3MDI5OGU2OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlkOiBhZDRkM2NiMCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzOTQpOiB0aWQ6IGFkNGQzY2IwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IGFkNGQzY2IwICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzOTYpOiB0aWQ6IGFkNGQzY2IwICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4YzMwMDAgbmJsb2NrcyAweGM1IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDEKT3BlciAoMzk3KTogdGlkOiBhZDRkM2NiMCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzOTgpOiB0aWQ6IGFkNGQzY2IwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5OSk6IHRpZDogYWQ0ZDNjYjAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx NTcgIGxvbmdlc3Q6IDE5NDkyMTU3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAwKTogdGlk OiBhZDRkM2NiMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQwMSk6IHRpZDogYWQ0ZDNjYjAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAy KTogdGlkOiBhZDRkM2NiMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MDMpOiB0aWQ6IGFkNGQzY2IwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQwNCk6IHRpZDogYWQ0ZDNjYjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogZGViZjNiNTAgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDA2KTogdGlkOiBkZWJmM2I1MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlkOiBkZWJmM2I1MCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNDA4KTogdGlkOiBkZWJmM2I1MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGM0NDAwIG5ibG9ja3MgMHhjNiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgxCk9wZXIgKDQwOSk6IHRpZDogZGViZjNiNTAgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDEwKTogdGlkOiBkZWJmM2I1MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MTEpOiB0aWQ6IGRlYmYzYjUwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU2 ICBsb25nZXN0OiAxOTQ5MjE1NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMik6IHRpZDog ZGViZjNiNTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MTMpOiB0aWQ6IGRlYmYzYjUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6 IHRpZDogZGViZjNiNTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDE1KTogdGlkOiBkZWJmM2I1MCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MTYpOiB0aWQ6IGRlYmYzYjUwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IGFhZWJiNDVjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQxOCk6IHRpZDogYWFlYmI0NWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDogYWFlYmI0NWMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQyMCk6IHRpZDogYWFlYmI0NWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhjNTgwMCBuYmxvY2tzIDB4YzcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICg0MjEpOiB0aWQ6IGFhZWJiNDVjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQyMik6IHRpZDogYWFlYmI0NWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDIzKTogdGlkOiBhYWViYjQ1YyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NSAg bG9uZ2VzdDogMTk0OTIxNTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjQpOiB0aWQ6IGFh ZWJiNDVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDI1KTogdGlkOiBhYWViYjQ1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0 aWQ6IGFhZWJiNDVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQyNyk6IHRpZDogYWFlYmI0NWMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI4 KTogdGlkOiBhYWViYjQ1YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiA0M2YxMWZmMyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MzApOiB0aWQ6IDQzZjExZmYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzEpOiB0aWQ6IDQzZjExZmYzICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0MzIpOiB0aWQ6IDQzZjExZmYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4YzZjMDAgbmJsb2NrcyAweGM4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoNDMzKTogdGlkOiA0M2YxMWZmMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MzQpOiB0aWQ6IDQzZjExZmYzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQzNSk6IHRpZDogNDNmMTFmZjMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTQgIGxv bmdlc3Q6IDE5NDkyMTU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM2KTogdGlkOiA0M2Yx MWZmMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQzNyk6IHRpZDogNDNmMTFmZjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlk OiA0M2YxMWZmMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MzkpOiB0aWQ6IDQzZjExZmYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MCk6 IHRpZDogNDNmMTFmZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogMjc5MmY3ZTMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQy KTogdGlkOiAyNzkyZjdlMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiAyNzkyZjdlMyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNDQ0KTogdGlkOiAyNzkyZjdlMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGM4MDAwIG5ibG9ja3MgMHhjYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgxCk9wZXIgKDQ0NSk6IHRpZDogMjc5MmY3ZTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ2KTogdGlkOiAyNzkyZjdlMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NDcpOiB0aWQ6IDI3OTJmN2UzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTUyICBsb25n ZXN0OiAxOTQ5MjE1MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OCk6IHRpZDogMjc5MmY3 ZTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NDkpOiB0aWQ6IDI3OTJmN2UzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDog Mjc5MmY3ZTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDUxKTogdGlkOiAyNzkyZjdlMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTIpOiB0 aWQ6IDI3OTJmN2UzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IGExZThhNDNmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NCk6 IHRpZDogYTFlOGE0M2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6IHRpZDogYTFlOGE0M2YgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQ1Nik6IHRpZDogYTFlOGE0M2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhjOTQwMCBuYmxvY2tzIDB4Y2IgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MQpPcGVyICg0NTcpOiB0aWQ6IGExZThhNDNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ1OCk6IHRpZDogYTFlOGE0M2YgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDU5KTogdGlkOiBhMWU4YTQzZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1MSAgbG9uZ2Vz dDogMTk0OTIxNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjApOiB0aWQ6IGExZThhNDNm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDYxKTogdGlkOiBhMWU4YTQzZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IGEx ZThhNDNmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ2Myk6IHRpZDogYTFlOGE0M2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY0KTogdGlk OiBhMWU4YTQzZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiA2YWZmNGEyMCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjYpOiB0 aWQ6IDZhZmY0YTIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IDZhZmY0YTIwICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0NjgpOiB0aWQ6IDZhZmY0YTIwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4Y2E4MDAgbmJsb2NrcyAweGNjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDEKT3BlciAoNDY5KTogdGlkOiA2YWZmNGEyMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NzApOiB0aWQ6IDZhZmY0YTIwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQ3MSk6IHRpZDogNmFmZjRhMjAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTAgIGxvbmdlc3Q6 IDE5NDkyMTUwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcyKTogdGlkOiA2YWZmNGEyMCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ3Myk6IHRpZDogNmFmZjRhMjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiA2YWZm NGEyMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NzUpOiB0aWQ6IDZhZmY0YTIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nik6IHRpZDog NmFmZjRhMjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogNzhjMTdhNmQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc4KTogdGlk OiA3OGMxN2E2ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlkOiA3OGMxN2E2ZCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDgwKTogdGlkOiA3OGMxN2E2ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGNiYzAwIG5ibG9ja3MgMHhjZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDQ4MSk6IHRpZDogNzhjMTdhNmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgy KTogdGlkOiA3OGMxN2E2ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0ODMpOiB0aWQ6IDc4YzE3YTZkICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQ5ICBsb25nZXN0OiAx OTQ5MjE0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NCk6IHRpZDogNzhjMTdhNmQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0ODUpOiB0aWQ6IDc4YzE3YTZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogNzhjMTdh NmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDg3KTogdGlkOiA3OGMxN2E2ZCAgbGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09OVElOVUUgCkJVRiBEQVRBCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNp b246IDIJCWxzbjogMSw0MDcJdGFpbF9sc246IDEsMTM4Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAz MjI1NglwcmV2IG9mZnNldDogMzQzCQludW0gb3BzOiA0OTAKdXVpZDogYjBjMGYxOTktMDIyOS00 ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6 ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA3OGMxN2E2ZCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVn aW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlk OiA3OGMxN2E2ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogZTQ2ZTQ5NCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzKTogdGlkOiBl NDZlNDk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0KTogdGlkOiBlNDZlNDk0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1KTog dGlkOiBlNDZlNDk0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Y2QwMDAg bmJsb2NrcyAweGNmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNik6 IHRpZDogZTQ2ZTQ5NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiBlNDZlNDk0 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDgpOiB0aWQ6IGU0NmU0OTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxNDcgIGxvbmdlc3Q6IDE5NDkyMTQ3Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOSk6IHRpZDogZTQ2ZTQ5NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwKTogdGlkOiBlNDZlNDk0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiBlNDZlNDk0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyKTogdGlkOiBlNDZlNDk0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiBlNDZlNDk0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogNGJh ZTdlMmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IDRiYWU3ZTJhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogNGJhZTdl MmEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3KTogdGlkOiA0YmFlN2UyYSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNlNDAwIG5ibG9ja3MgMHhkMCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE4KTogdGlkOiA0YmFlN2UyYSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogNGJhZTdlMmEgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IDRiYWU3ZTJh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTQ2ICBsb25nZXN0OiAxOTQ5MjE0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTog dGlkOiA0YmFlN2UyYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiA0YmFlN2UyYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy Myk6IHRpZDogNGJhZTdlMmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IDRiYWU3ZTJhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1KTogdGlkOiA0YmFlN2UyYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IGUyZmRlYjBjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3KTogdGlkOiBlMmZkZWIwYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IGUyZmRlYjBjICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyOSk6IHRpZDogZTJmZGViMGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhjZjgwMCBuYmxvY2tzIDB4ZDEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MQpPcGVyICgzMCk6IHRpZDogZTJmZGViMGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzEpOiB0aWQ6IGUyZmRlYjBjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyKTogdGlkOiBlMmZkZWIwYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0NSAgbG9uZ2Vz dDogMTk0OTIxNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDogZTJmZGViMGMg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzNCk6IHRpZDogZTJmZGViMGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGUyZmRl YjBjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM2KTogdGlkOiBlMmZkZWIwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogZTJm ZGViMGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiBiZTE0OGQxMSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDogYmUx NDhkMTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwKTogdGlkOiBiZTE0OGQxMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDEp OiB0aWQ6IGJlMTQ4ZDExICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDBj MDAgbmJsb2NrcyAweGQyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAo NDIpOiB0aWQ6IGJlMTQ4ZDExICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiBi ZTE0OGQxMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NCk6IHRpZDogYmUxNDhkMTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDQgIGxvbmdlc3Q6IDE5NDkyMTQ0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IGJlMTQ4ZDExICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6 IGJlMTQ4ZDExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiBiZTE0OGQxMSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRp ZDogYmUxNDhkMTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IGJlMTQ4ZDExICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1MCk6IHRpZDogNDA4MmM2OWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IDQwODJjNjlkICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Mik6IHRpZDogNDA4MmM2OWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDUzKTogdGlkOiA0MDgyYzY5 ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQyMDAwIG5ibG9ja3MgMHhk NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDU0KTogdGlkOiA0MDgy YzY5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NSk6IHRpZDogNDA4MmM2OWQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTYp OiB0aWQ6IDQwODJjNjlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTQyICBsb25nZXN0OiAxOTQ5MjE0MgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDU3KTogdGlkOiA0MDgyYzY5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU4KTogdGlkOiA0MDgyYzY5ZCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1OSk6IHRpZDogNDA4MmM2OWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IDQwODJjNjlkICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiA0MDgyYzY5ZCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6IDVk NTY4ZjVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYzKTogdGlkOiA1ZDU2OGY1YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6IDVkNTY4 ZjVjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2NSk6IHRpZDogNWQ1NjhmNWMgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkMzQwMCBuYmxvY2tzIDB4ZDUgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg2Nik6IHRpZDogNWQ1NjhmNWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDVkNTY4ZjVjICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDY4KTogdGlkOiA1ZDU2OGY1 YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjE0MSAgbG9uZ2VzdDogMTk0OTIxNDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6 IHRpZDogNWQ1NjhmNWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg3MCk6IHRpZDogNWQ1NjhmNWMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NzEpOiB0aWQ6IDVkNTY4ZjVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDcyKTogdGlkOiA1ZDU2OGY1YyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3Myk6IHRpZDogNWQ1NjhmNWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBkMDJhOGZlNiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3NSk6IHRpZDogZDAyYThmZTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc2KTogdGlkOiBkMDJhOGZlNiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNzcpOiB0aWQ6IGQwMmE4ZmU2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZDQ4MDAgbmJsb2NrcyAweGQ2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKT3BlciAoNzgpOiB0aWQ6IGQwMmE4ZmU2ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc5KTogdGlkOiBkMDJhOGZlNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4MCk6IHRpZDogZDAyYThmZTYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDAgIGxvbmdl c3Q6IDE5NDkyMTQwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IGQwMmE4ZmU2 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoODIpOiB0aWQ6IGQwMmE4ZmU2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiBkMDJh OGZlNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg4NCk6IHRpZDogZDAyYThmZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IGQw MmE4ZmU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDogMjEzNGZjY2IgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IDIx MzRmY2NiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4OCk6IHRpZDogMjEzNGZjY2IgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDg5 KTogdGlkOiAyMTM0ZmNjYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ1 YzAwIG5ibG9ja3MgMHhkNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIg KDkwKTogdGlkOiAyMTM0ZmNjYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDog MjEzNGZjY2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoOTIpOiB0aWQ6IDIxMzRmY2NiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM5ICBsb25nZXN0OiAxOTQ5MjEzOQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiAyMTM0ZmNjYiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlk OiAyMTM0ZmNjYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogMjEzNGZjY2IgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0 aWQ6IDIxMzRmY2NiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiAyMTM0ZmNjYiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTgpOiB0aWQ6IDRjYzE3ZmMwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiA0Y2MxN2ZjMCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTAwKTogdGlkOiA0Y2MxN2ZjMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTAxKTogdGlkOiA0Y2Mx N2ZjMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ3MDAwIG5ibG9ja3Mg MHhkOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDEwMik6IHRpZDog NGNjMTdmYzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiA0Y2MxN2ZjMCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgxMDQpOiB0aWQ6IDRjYzE3ZmMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM3ICBsb25nZXN0OiAxOTQ5MjEzNwotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogNGNjMTdmYzAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IDRjYzE3 ZmMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogNGNjMTdmYzAgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiA0 Y2MxN2ZjMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IDRjYzE3ZmMwICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTApOiB0aWQ6IDU0MmM1NWNmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMSk6IHRpZDogNTQyYzU1Y2YgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx Mik6IHRpZDogNTQyYzU1Y2YgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDExMyk6IHRpZDogNTQyYzU1 Y2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkODQwMCBuYmxvY2tzIDB4 ZGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxMTQpOiB0aWQ6IDU0 MmM1NWNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogNTQyYzU1Y2YgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTE2KTogdGlkOiA1NDJjNTVjZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNiAgbG9uZ2VzdDogMTk0OTIxMzYKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDU0MmM1NWNmICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTE4KTogdGlkOiA1NDJjNTVj ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IDU0MmM1NWNmICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogNTQy YzU1Y2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiA1NDJjNTVjZiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIy KTogdGlkOiA1ODA0NGRjZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjMpOiB0aWQ6IDU4MDQ0ZGNmICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQp OiB0aWQ6IDU4MDQ0ZGNmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMjUpOiB0aWQ6IDU4MDQ0ZGNm ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDk4MDAgbmJsb2NrcyAweGRi IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTI2KTogdGlkOiA1ODA0 NGRjZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjcpOiB0aWQ6IDU4MDQ0ZGNmICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEy OCk6IHRpZDogNTgwNDRkY2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxMzUgIGxvbmdlc3Q6IDE5NDkyMTM1Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTI5KTogdGlkOiA1ODA0NGRjZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMCk6IHRpZDogNTgwNDRkY2Yg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiA1ODA0NGRjZiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDU4MDQ0 ZGNmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogNTgwNDRkY2YgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNCk6 IHRpZDogNGFlMzcyZDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1KTogdGlkOiA0YWUzNzJkOCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM2KTog dGlkOiA0YWUzNzJkOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTM3KTogdGlkOiA0YWUzNzJkOCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRhYzAwIG5ibG9ja3MgMHhkYyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDEzOCk6IHRpZDogNGFlMzcy ZDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiA0YWUzNzJkOCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDAp OiB0aWQ6IDRhZTM3MmQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTM0ICBsb25nZXN0OiAxOTQ5MjEzNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0MSk6IHRpZDogNGFlMzcyZDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDIpOiB0aWQ6IDRhZTM3MmQ4ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogNGFlMzcyZDggIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiA0YWUzNzJk OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IDRhZTM3MmQ4ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0 aWQ6IDc5NTU3MjVlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6IHRpZDogNzk1NTcyNWUgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRp ZDogNzk1NTcyNWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0OSk6IHRpZDogNzk1NTcyNWUgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAwMCBuYmxvY2tzIDB4ZGUgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxNTApOiB0aWQ6IDc5NTU3MjVl ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MSk6IHRpZDogNzk1NTcyNWUgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTUyKTog dGlkOiA3OTU1NzI1ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjEzMiAgbG9uZ2VzdDogMTk0OTIxMzIKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTMpOiB0aWQ6IDc5NTU3MjVlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU0KTogdGlkOiA3OTU1NzI1ZSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDc5NTU3MjVlICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogNzk1NTcyNWUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTU3KTogdGlkOiA3OTU1NzI1ZSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4KTogdGlk OiAzNTEyZDEyZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0aWQ6IDM1MTJkMTJlICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6 IDM1MTJkMTJlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNjEpOiB0aWQ6IDM1MTJkMTJlICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGQ0MDAgbmJsb2NrcyAweGRmIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTYyKTogdGlkOiAzNTEyZDEyZSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDM1MTJkMTJlICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2NCk6IHRp ZDogMzUxMmQxMmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxMzEgIGxvbmdlc3Q6IDE5NDkyMTMxCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY1KTogdGlkOiAzNTEyZDEyZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6IHRpZDogMzUxMmQxMmUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY3KTogdGlkOiAzNTEyZDEyZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IDM1MTJkMTJlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogMzUxMmQxMmUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MCk6IHRpZDog NmZkNDlkMWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlkOiA2ZmQ0OWQxYiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcyKTogdGlkOiA2 ZmQ0OWQxYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTczKTogdGlkOiA2ZmQ0OWQxYiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRlODAwIG5ibG9ja3MgMHhlMCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDE3NCk6IHRpZDogNmZkNDlkMWIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiA2ZmQ0OWQxYiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6 IDZmZDQ5ZDFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTMwICBsb25nZXN0OiAxOTQ5MjEzMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3Nyk6IHRpZDogNmZkNDlkMWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzgpOiB0aWQ6IDZmZDQ5ZDFiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3OSk6IHRpZDogNmZkNDlkMWIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiA2ZmQ0OWQxYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IDZmZDQ5ZDFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6IDdi ZGJkMGYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogN2JkYmQwZjAgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogN2Jk YmQwZjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4NSk6IHRpZDogN2JkYmQwZjAgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkZmMwMCBuYmxvY2tzIDB4ZTEgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgxODYpOiB0aWQ6IDdiZGJkMGYwICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRpZDogN2JkYmQwZjAgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTg4KTogdGlkOiA3 YmRiZDBmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjEyOSAgbG9uZ2VzdDogMTk0OTIxMjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxODkpOiB0aWQ6IDdiZGJkMGYwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlkOiA3YmRiZDBmMCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxOTEpOiB0aWQ6IDdiZGJkMGYwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogN2JkYmQwZjAgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTkzKTogdGlkOiA3YmRiZDBmMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk0KTogdGlkOiA5YWY0 Yjg1MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IDlhZjRiODUyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IDlhZjRi ODUyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTcpOiB0aWQ6IDlhZjRiODUyICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTEwMDAgbmJsb2NrcyAweGUzIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMTk4KTogdGlkOiA5YWY0Yjg1MiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0aWQ6IDlhZjRiODUyICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIwMCk6IHRpZDogOWFm NGI4NTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIxMjcgIGxvbmdlc3Q6IDE5NDkyMTI3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjAxKTogdGlkOiA5YWY0Yjg1MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwMik6IHRpZDogOWFmNGI4NTIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjAzKTogdGlkOiA5YWY0Yjg1MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IDlhZjRiODUyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwNSk6IHRpZDogOWFmNGI4NTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNik6IHRpZDogNzQ1OThj M2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjA3KTogdGlkOiA3NDU5OGMzZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiA3NDU5OGMz ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjA5KTogdGlkOiA3NDU5OGMzZiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGUyNDAwIG5ibG9ja3MgMHhlNCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIxMCk6IHRpZDogNzQ1OThjM2YgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjExKTogdGlkOiA3NDU5OGMzZiAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMTIpOiB0aWQ6IDc0NTk4 YzNmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTI2ICBsb25nZXN0OiAxOTQ5MjEyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx Myk6IHRpZDogNzQ1OThjM2YgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTQpOiB0aWQ6IDc0NTk4YzNmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIxNSk6IHRpZDogNzQ1OThjM2YgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiA3NDU5OGMzZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMTcpOiB0aWQ6IDc0NTk4YzNmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTgpOiB0aWQ6IDkyMThhZjQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjE5KTogdGlkOiA5MjE4YWY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjApOiB0aWQ6IDkyMThhZjQgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDIyMSk6IHRpZDogOTIxOGFmNCAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGUzODAwIG5ibG9ja3MgMHhlNSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgxCk9wZXIgKDIyMik6IHRpZDogOTIxOGFmNCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMjMpOiB0aWQ6IDkyMThhZjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjI0KTogdGlkOiA5MjE4YWY0ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI1 ICBsb25nZXN0OiAxOTQ5MjEyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDog OTIxOGFmNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIyNik6IHRpZDogOTIxOGFmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0 aWQ6IDkyMThhZjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjI4KTogdGlkOiA5MjE4YWY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyOSk6 IHRpZDogOTIxOGFmNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMwKTogdGlkOiBkMDA5MDY5YSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEp OiB0aWQ6IGQwMDkwNjlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IGQwMDkwNjlhICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgyMzMpOiB0aWQ6IGQwMDkwNjlhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4ZTRjMDAgbmJsb2NrcyAweGU2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDEKT3BlciAoMjM0KTogdGlkOiBkMDA5MDY5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMzUpOiB0aWQ6IGQwMDkwNjlhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzNik6IHRpZDogZDAwOTA2OWEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjQgIGxvbmdl c3Q6IDE5NDkyMTI0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiBkMDA5MDY5 YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDIzOCk6IHRpZDogZDAwOTA2OWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiBk MDA5MDY5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyNDApOiB0aWQ6IGQwMDkwNjlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRp ZDogZDAwOTA2OWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Mik6IHRpZDogNDBjMTVhNTkgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQzKTog dGlkOiA0MGMxNWE1OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiA0MGMxNWE1OSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMjQ1KTogdGlkOiA0MGMxNWE1OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGU2MDAwIG5ibG9ja3MgMHhlOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgxCk9wZXIgKDI0Nik6IHRpZDogNDBjMTVhNTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjQ3KTogdGlkOiA0MGMxNWE1OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDgpOiB0aWQ6IDQwYzE1YTU5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTIyICBsb25nZXN0 OiAxOTQ5MjEyMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogNDBjMTVhNTkg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyNTApOiB0aWQ6IDQwYzE1YTU5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogNDBj MTVhNTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjUyKTogdGlkOiA0MGMxNWE1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6 IDQwYzE1YTU5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNTQpOiB0aWQ6IGJjMWIzYTA0ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NSk6IHRp ZDogYmMxYjNhMDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1Nik6IHRpZDogYmMxYjNhMDQgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDI1Nyk6IHRpZDogYmMxYjNhMDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhlNzQwMCBuYmxvY2tzIDB4ZTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MQpPcGVyICgyNTgpOiB0aWQ6IGJjMWIzYTA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1 OSk6IHRpZDogYmMxYjNhMDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMjYwKTogdGlkOiBiYzFiM2EwNCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyMSAgbG9uZ2VzdDog MTk0OTIxMjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjEpOiB0aWQ6IGJjMWIzYTA0ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjYyKTogdGlkOiBiYzFiM2EwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IGJjMWIz YTA0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDI2NCk6IHRpZDogYmMxYjNhMDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiBi YzFiM2EwNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjY2KTogdGlkOiAzZmQ0MmQ1ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nyk6IHRpZDog M2ZkNDJkNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjY4KTogdGlkOiAzZmQ0MmQ1ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy NjkpOiB0aWQ6IDNmZDQyZDUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhl ODgwMCBuYmxvY2tzIDB4ZWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICgyNzApOiB0aWQ6IDNmZDQyZDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlk OiAzZmQ0MmQ1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDI3Mik6IHRpZDogM2ZkNDJkNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyMCAgbG9uZ2VzdDogMTk0OTIxMjAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IDNmZDQyZDUgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzQpOiB0 aWQ6IDNmZDQyZDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiAzZmQ0MmQ1ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Nik6 IHRpZDogM2ZkNDJkNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzcpOiB0aWQ6IDNmZDQyZDUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3OCk6IHRpZDogN2ViMzA0NWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlkOiA3ZWIzMDQ1YiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjgwKTogdGlkOiA3ZWIzMDQ1YiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjgxKTogdGlkOiA3 ZWIzMDQ1YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGU5YzAwIG5ibG9j a3MgMHhlYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDI4Mik6IHRp ZDogN2ViMzA0NWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiA3ZWIzMDQ1 YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyODQpOiB0aWQ6IDdlYjMwNDViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTE5ICBsb25nZXN0OiAxOTQ5MjExOQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogN2ViMzA0NWIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IDdl YjMwNDViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogN2ViMzA0NWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlk OiA3ZWIzMDQ1YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IDdlYjMwNDViICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTApOiB0aWQ6IDFhZGFlYjEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDogMWFkYWViMTAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5Mik6IHRpZDogMWFkYWViMTAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Myk6IHRpZDogMWFk YWViMTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlYjAwMCBuYmxvY2tz IDB4ZWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgyOTQpOiB0aWQ6 IDFhZGFlYjEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogMWFkYWViMTAg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjk2KTogdGlkOiAxYWRhZWIxMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExNyAgbG9uZ2VzdDogMTk0OTIxMTcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IDFhZGFlYjEwICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiAxYWRh ZWIxMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDFhZGFlYjEwICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDog MWFkYWViMTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiAxYWRhZWIxMCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzAyKTogdGlkOiA0OTc3NTMzMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IDQ5Nzc1MzMzICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDQpOiB0aWQ6IDQ5Nzc1MzMzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDUpOiB0aWQ6IDQ5Nzc1 MzMzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZWM0MDAgbmJsb2NrcyAw eGVlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzA2KTogdGlkOiA0 OTc3NTMzMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IDQ5Nzc1MzMzICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDMwOCk6IHRpZDogNDk3NzUzMzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMTYgIGxvbmdlc3Q6IDE5NDkyMTE2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiA0OTc3NTMzMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogNDk3NzUz MzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiA0OTc3NTMzMyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IDQ5 Nzc1MzMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogNDk3NzUzMzMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMx NCk6IHRpZDogMjJiMWVlZjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiAyMmIxZWVmMSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2 KTogdGlkOiAyMmIxZWVmMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzE3KTogdGlkOiAyMmIxZWVm MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGVkODAwIG5ibG9ja3MgMHhl ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDMxOCk6IHRpZDogMjJi MWVlZjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiAyMmIxZWVmMSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgz MjApOiB0aWQ6IDIyYjFlZWYxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTE1ICBsb25nZXN0OiAxOTQ5MjExNQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogMjJiMWVlZjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IDIyYjFlZWYx ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogMjJiMWVlZjEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiAyMmIx ZWVmMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDIyYjFlZWYxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjYp OiB0aWQ6IDhjMmM0ZDRkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRpZDogOGMyYzRkNGQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6 IHRpZDogOGMyYzRkNGQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyOSk6IHRpZDogOGMyYzRkNGQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlZWMwMCBuYmxvY2tzIDB4ZjAg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzMzApOiB0aWQ6IDhjMmM0 ZDRkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogOGMyYzRkNGQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMy KTogdGlkOiA4YzJjNGQ0ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjExNCAgbG9uZ2VzdDogMTk0OTIxMTQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzMpOiB0aWQ6IDhjMmM0ZDRkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiA4YzJjNGQ0ZCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDhjMmM0ZDRkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogOGMyYzRk NGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzM3KTogdGlkOiA4YzJjNGQ0ZCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM4KTog dGlkOiBkZWY2N2U2OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IGRlZjY3ZTY5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0 aWQ6IGRlZjY3ZTY5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDEpOiB0aWQ6IGRlZjY3ZTY5ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjAwMDAgbmJsb2NrcyAweGYyIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzQyKTogdGlkOiBkZWY2N2U2 OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGRlZjY3ZTY5ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0NCk6 IHRpZDogZGVmNjdlNjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxMTIgIGxvbmdlc3Q6IDE5NDkyMTEyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQ1KTogdGlkOiBkZWY2N2U2OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogZGVmNjdlNjkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBkZWY2N2U2OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IGRlZjY3ZTY5 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM0OSk6IHRpZDogZGVmNjdlNjkgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MCk6IHRp ZDogYTM1YzM0MjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlkOiBhMzVjMzQyOSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlk OiBhMzVjMzQyOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzUzKTogdGlkOiBhMzVjMzQyOSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYxNDAwIG5ibG9ja3MgMHhmMyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM1NCk6IHRpZDogYTM1YzM0Mjkg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiBhMzVjMzQyOSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTYpOiB0 aWQ6IGEzNWMzNDI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTExICBsb25nZXN0OiAxOTQ5MjExMQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM1Nyk6IHRpZDogYTM1YzM0MjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IGEzNWMzNDI5ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogYTM1YzM0MjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiBhMzVjMzQyOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjEpOiB0aWQ6IGEzNWMzNDI5ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjIpOiB0aWQ6 IDIyNjJhZDVhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDogMjI2MmFkNWEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDog MjI2MmFkNWEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2NSk6IHRpZDogMjI2MmFkNWEgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmMjgwMCBuYmxvY2tzIDB4ZjQgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICgzNjYpOiB0aWQ6IDIyNjJhZDVhICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogMjI2MmFkNWEgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzY4KTogdGlk OiAyMjYyYWQ1YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjExMCAgbG9uZ2VzdDogMTk0OTIxMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNjkpOiB0aWQ6IDIyNjJhZDVhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiAyMjYyYWQ1YSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzEpOiB0aWQ6IDIyNjJhZDVhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogMjI2MmFkNWEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzczKTogdGlkOiAyMjYyYWQ1YSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc0KTogdGlkOiBi ZDQ5ZDlmMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IGJkNDlkOWYxICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IGJk NDlkOWYxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzcpOiB0aWQ6IGJkNDlkOWYxICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjNjMDAgbmJsb2NrcyAweGY1IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoMzc4KTogdGlkOiBiZDQ5ZDlmMSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IGJkNDlkOWYxICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDog YmQ0OWQ5ZjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxMDkgIGxvbmdlc3Q6IDE5NDkyMTA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzgxKTogdGlkOiBiZDQ5ZDlmMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Mik6IHRpZDogYmQ0OWQ5ZjEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgzKTogdGlkOiBiZDQ5ZDlmMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IGJkNDlkOWYxICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM4NSk6IHRpZDogYmQ0OWQ5ZjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nik6IHRpZDogNTI0 ZDgxYjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzg3KTogdGlkOiA1MjRkODFiMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiA1MjRk ODFiMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg5KTogdGlkOiA1MjRkODFiMCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGY1MDAwIG5ibG9ja3MgMHhmNyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDM5MCk6IHRpZDogNTI0ZDgxYjAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiA1MjRkODFiMCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTIpOiB0aWQ6IDUy NGQ4MWIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMTA3ICBsb25nZXN0OiAxOTQ5MjEwNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5Myk6IHRpZDogNTI0ZDgxYjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6IDUyNGQ4MWIwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5NSk6IHRpZDogNTI0ZDgxYjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiA1MjRkODFiMCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzOTcpOiB0aWQ6IDUyNGQ4MWIwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTgpOiB0aWQ6IDdkNzIx ZGU5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM5OSk6IHRpZDogN2Q3MjFkZTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogN2Q3MjFk ZTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQwMSk6IHRpZDogN2Q3MjFkZTkgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmNjQwMCBuYmxvY2tzIDB4ZjggZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MDIpOiB0aWQ6IDdkNzIxZGU5ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQwMyk6IHRpZDogN2Q3MjFkZTkgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiA3ZDcy MWRlOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjEwNiAgbG9uZ2VzdDogMTk0OTIxMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MDUpOiB0aWQ6IDdkNzIxZGU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDA2KTogdGlkOiA3ZDcyMWRlOSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDcpOiB0aWQ6IDdkNzIxZGU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogN2Q3MjFkZTkgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDA5KTogdGlkOiA3ZDcyMWRlOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEwKTogdGlkOiBkODVjMDFj NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTEpOiB0aWQ6IGQ4NWMwMWM1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IGQ4NWMwMWM1 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg0MTMpOiB0aWQ6IGQ4NWMwMWM1ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Zjc4MDAgbmJsb2NrcyAweGY5IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDEKT3BlciAoNDE0KTogdGlkOiBkODVjMDFjNSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IGQ4NWMwMWM1ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxNik6IHRpZDogZDg1YzAx YzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxMDUgIGxvbmdlc3Q6IDE5NDkyMTA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3 KTogdGlkOiBkODVjMDFjNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQxOCk6IHRpZDogZDg1YzAxYzUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDE5KTogdGlkOiBkODVjMDFjNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IGQ4NWMwMWM1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQyMSk6IHRpZDogZDg1YzAxYzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMik6IHRpZDogYzlhZjhiMjIg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDIzKTogdGlkOiBjOWFmOGIyMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiBjOWFmOGIyMiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNDI1KTogdGlkOiBjOWFmOGIyMiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGY4YzAwIG5ibG9ja3MgMHhmYSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgxCk9wZXIgKDQyNik6IHRpZDogYzlhZjhiMjIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDI3KTogdGlkOiBjOWFmOGIyMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjgpOiB0aWQ6IGM5YWY4YjIy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTA0ICBsb25nZXN0OiAxOTQ5MjEwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6 IHRpZDogYzlhZjhiMjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MzApOiB0aWQ6IGM5YWY4YjIyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzMSk6IHRpZDogYzlhZjhiMjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiBjOWFmOGIyMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MzMpOiB0aWQ6IGM5YWY4YjIyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzQpOiB0aWQ6IDgxY2NjYWRjICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzNSk6IHRpZDogODFjY2NhZGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogODFjY2NhZGMgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDQzNyk6IHRpZDogODFjY2NhZGMgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhmYTAwMCBuYmxvY2tzIDB4ZmMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MQpPcGVyICg0MzgpOiB0aWQ6IDgxY2NjYWRjICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQzOSk6IHRpZDogODFjY2NhZGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQwKTogdGlkOiA4MWNjY2FkYyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjEwMiAgbG9uZ2VzdDogMTk0OTIxMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0 aWQ6IDgxY2NjYWRjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDQyKTogdGlkOiA4MWNjY2FkYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NDMpOiB0aWQ6IDgxY2NjYWRjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDogODFjY2NhZGMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ1KTogdGlkOiA4MWNjY2FkYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ2KTogdGlkOiA4MWRiYjU5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0Nyk6IHRpZDogODFkYmI1OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiA4MWRiYjU5ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0NDkpOiB0aWQ6IDgxZGJiNTkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhmYjQwMCBuYmxvY2tzIDB4ZmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MQpPcGVyICg0NTApOiB0aWQ6IDgxZGJiNTkgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDUxKTogdGlkOiA4MWRiYjU5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1Mik6IHRpZDogODFkYmI1OSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwMSAgbG9u Z2VzdDogMTk0OTIxMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDgxZGJi NTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NTQpOiB0aWQ6IDgxZGJiNTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA4 MWRiYjU5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ1Nik6IHRpZDogODFkYmI1OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6 IDgxZGJiNTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ1OCk6IHRpZDogODcwYmY4OGYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlk OiA4NzBiZjg4ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiA4NzBiZjg4ZiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDYxKTogdGlkOiA4NzBiZjg4ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGZjODAwIG5ibG9ja3MgMHhmZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgx Ck9wZXIgKDQ2Mik6IHRpZDogODcwYmY4OGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYz KTogdGlkOiA4NzBiZjg4ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0NjQpOiB0aWQ6IDg3MGJmODhmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTAwICBsb25nZXN0OiAx OTQ5MjEwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDogODcwYmY4OGYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NjYpOiB0aWQ6IDg3MGJmODhmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogODcwYmY4 OGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDY4KTogdGlkOiA4NzBiZjg4ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IDg3 MGJmODhmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzApOiB0aWQ6IDFmZmJjODJhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDog MWZmYmM4MmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogMWZmYmM4MmEgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQ3Myk6IHRpZDogMWZmYmM4MmEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhmZGMwMCBuYmxvY2tzIDB4ZmYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpP cGVyICg0NzQpOiB0aWQ6IDFmZmJjODJhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6 IHRpZDogMWZmYmM4MmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDc2KTogdGlkOiAxZmZiYzgyYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjA5OSAgbG9uZ2VzdDogMTk0 OTIwOTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IDFmZmJjODJhICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDc4KTogdGlkOiAxZmZiYzgyYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDFmZmJjODJh ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ4MCk6IHRpZDogMWZmYmM4MmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiAxZmZi YzgyYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDgyKTogdGlkOiAyNzk3MmI0OCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IDI3 OTcyYjQ4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IFNUUkFUX1dSSVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDI3OTcyYjQ4ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MyAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIg KDQ4NSk6IHRpZDogMjc5NzJiNDggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgwIG5ibG9ja3MgMHgyYzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MQpPcGVy ICg0ODYpOiB0aWQ6IDI3OTcyYjQ4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRp ZDogMjc5NzJiNDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDg4KTogdGlkOiAyNzk3MmI0OCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM5NCAgbG9uZ2VzdDogMTk0OTEz OTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODkpOiB0aWQ6IDI3OTcyYjQ4ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MAoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNDcxCXRhaWxfbHNu OiAxLDQwNwpsZW5ndGggb2YgTG9nIFJlY29yZDogNTEyCXByZXYgb2Zmc2V0OiA0MDcJCW51bSBv cHM6IDUKdXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0 OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgwKTogdGlkOiBjOTNhNjE1MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBjOTNhNjE1MCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBTQl9DT1VOVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mik6IHRpZDogYzkzYTYxNTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMCAoMHgwKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMyk6IHRpZDogYzkzYTYxNTAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClNVUEVSIEJMT0NLIEJ1ZmZlcjogCmljb3VudDogNjQgIGlm cmVlOiA1OSAgZmRibGtzOiA3Nzk2MDk5NCAgZnJleHQ6IDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0KTogdGlkOiBjOTNhNjE1MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw0 NzMJdGFpbF9sc246IDEsNDcxCmxlbmd0aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6 IDQ3MQkJbnVtIG9wczogMQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1 NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGUzMWE0NTAxICBsZW46IDggIGNsaWVudGlkOiBMT0cg IGZsYWdzOiBVTk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDQ3NQl0YWlsX2xzbjogMSw0NzUKbGVuZ3RoIG9m IExvZyBSZWNvcmQ6IDYxNDQJcHJldiBvZmZzZXQ6IDQ3MwkJbnVtIG9wczogOTcKdXVpZDogYjBj MGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFu IGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiBj MDRhZTNlYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBjMDRhZTNlYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IGMwNGFlM2Vj ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiAyOAogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMApPcGVyICgzKTogdGlkOiBjMDRhZTNlYyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2 ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MWEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgw Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICg0KTogdGlkOiBjMDRhZTNlYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6 ZSAyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IGMwNGFlM2VjICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDYpOiB0aWQ6IGMwNGFlM2VjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZmRjMDAgbmJsb2NrcyAweGZmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiBjMDRhZTNlYyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4 KTogdGlkOiBjMDRhZTNlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2 NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2IgIG5ld2lubzogMHg4MApidWNrZXRbMCAt IDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRb NCAtIDddOiAweDg0IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAt IDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0 WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApi dWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6 IHRpZDogYzA0YWUzZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwKTogdGlkOiA5MjIzZTFlMiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6 IHRpZDogOTIyM2UxZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyKTogdGlkOiA5MjIzZTFlMiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdz OiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxMyk6IHRpZDogOTIyM2UxZTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogOTIyM2UxZTIgIGxlbjogMzIgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRUZJOiAgI3JlZ3M6IDEgICAgbnVtX2V4dGVudHM6IDEg IGlkOiAweGZmZmZmZmZmZTM2NGYwMDAKKHM6IDB4YywgbDogMjU1KSAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNSk6IHRpZDogOTIyM2UxZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiA5MjIzZTFl MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNyk6IHRpZDogOTIyM2UxZTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiA5MjIzZTFlMyAg bGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFRkQ6ICAjcmVnczogMSAgICBu dW1fZXh0ZW50czogMSAgaWQ6IDB4ZmZmZmZmZmZlMzY0ZjAwMAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE5KTogdGlkOiA5MjIzZTFlMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMCk6IHRpZDogOTIyM2UxZTMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTQgIGxv bmdlc3Q6IDE5NDkyMzU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IDkyMjNl MWUzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDIyKTogdGlkOiA5MjIzZTFlMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogOTIy M2UxZTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyNCk6IHRpZDogOTIyM2UxZTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6 IDkyMjNlMWUzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2KTogdGlkOiA5MjIzZTFlMyAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3KTogdGlk OiA5MjIzZTFlMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IDkyMjNlMWU0ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlk OiA5MjIzZTFlNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAzCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDkyMjNlMWU0ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDMxKTogdGlkOiA5MjIzZTFlNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAwIHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5i bG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMik6IHRpZDogOTIyM2UxZTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMpOiB0aWQ6IDkyMjNlMWU0ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAx ICBmcmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5 XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNCk6IHRpZDogOTIyM2Ux ZTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNSk6IHRpZDogOTIyM2UxZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IDky MjNlMWU0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogMTkxZTJhNDggIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IDE5 MWUyYTQ4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IFJFTU9WRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAzCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzkpOiB0aWQ6IDE5MWUyYTQ4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRz aXplOiA4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDQwKTogdGlk OiAxOTFlMmE0OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NiBuYmxvY2tz IDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQxKTogdGlkOiAx OTFlMmE0OCAgbGVuOiA4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxPQ0FMIGlub2Rl IGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Mik6IHRpZDogMTkxZTJhNDggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICg0Myk6IHRpZDogMTkxZTJh NDggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NCk6IHRpZDogMTkxZTJhNDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUpOiB0aWQ6IDE5MWUyYTQ4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzogMHgz YyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIDB4ODMgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nik6IHRpZDogMTkxZTJhNDggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTog dGlkOiA5YWRlZjUwZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OCk6IHRpZDogOWFkZWY1MGQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlk OiA5YWRlZjUwZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDUwKTogdGlkOiA5YWRlZjUwZCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAwIHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MSk6IHRpZDogOWFk ZWY1MGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNTIpOiB0aWQ6IDlhZGVmNTBkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzZCAgbmV3aW5vOiAweDgw CmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZm ZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1Myk6IHRpZDogOWFkZWY1MGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1NCk6IHRpZDogOWFkZWY1MGQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IDlhZGVmNTBkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDog Nzg3ZTgzODkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDc4N2U4Mzg5ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IENSRUFURSAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTgpOiB0aWQ6IDc4N2U4 Mzg5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDU5KTogdGlkOiA3ODdlODM4OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lubzogMHg4MApi dWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZm IApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjApOiB0aWQ6IDc4N2U4Mzg5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjEpOiB0aWQ6IDc4N2U4Mzg5ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYyKTogdGlkOiA3ODdlODM4OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEg ICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDYz KTogdGlkOiA3ODdlODM4OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAg bmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiA3ODdlODM4OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMg ICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3BlciAoNjUp OiB0aWQ6IDc4N2U4Mzg5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGlu ayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxYSBu YmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDY2KTog dGlkOiA3ODdlODM4OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NB TCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSAyNgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDY3KTogdGlkOiA3ODdlODM4OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6IDcwNGY3NTdj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDY5KTogdGlkOiA3MDRmNzU3YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzApOiB0aWQ6IDcwNGY3NTdjICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlu bzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiA3NjgKT3BlciAoNzEpOiB0aWQ6IDcwNGY3NTdjICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDc1NSB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0aWQ6IDcwNGY3NTdjICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg3Myk6IHRpZDogNDA5ZTkyYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDQwOWU5MmI3ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IENSRUFU RSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNzUpOiB0aWQ6IDQwOWU5MmI3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc2KTogdGlkOiA0MDllOTJiNyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4 M2IgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZm ZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDQwOWU5MmI3ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzgp OiB0aWQ6IDQwOWU5MmI3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiA0MDllOTJiNyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86 IDB4ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg4MCk6IHRpZDogNDA5ZTkyYjcgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogNDA5ZTkyYjcgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDUyCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAwCk9wZXIgKDgyKTogdGlkOiA0MDllOTJiNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2ZXJz aW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4MzEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICg4Myk6IHRpZDogNDA5ZTkyYjcgIGxlbjogNTIgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZPUk0gRElSRUNUT1JZIHNpemUg NDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NCk6IHRpZDogNDA5ZTkyYjcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg1KTogdGlkOiAxNDJmNWQwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDogMTQyZjVkMGMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg3 KTogdGlkOiAxNDJmNWQwYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODgpOiB0aWQ6IDE0MmY1ZDBj ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MiBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDg5KTogdGlkOiAxNDJmNWQwYyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogMTQyZjVkMGMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTEpOiB0aWQ6 IDE0MmY1ZDBjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzUyICBsb25nZXN0OiAxOTQ5MjM1MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDkyKTogdGlkOiAxNDJmNWQwYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkzKTogdGlkOiAxNDJmNWQwYyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg5NCk6IHRpZDogMTQyZjVkMGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IDE0MmY1ZDBjICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDk2KTogdGlkOiAxNDJmNWQwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxz bjogMSw0ODgJdGFpbF9sc246IDEsNDc1Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2 IG9mZnNldDogNDc1CQludW0gb3BzOiA0ODkKdXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAt NmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA2N2UzYzUxMSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTog dGlkOiA2N2UzYzUxMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogNjdlM2M1MTEgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDMpOiB0aWQ6IDY3ZTNjNTExICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4MTQwMCBuYmxvY2tzIDB4MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9w ZXIgKDQpOiB0aWQ6IDY3ZTNjNTExICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6 IDY3ZTNjNTExICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDYpOiB0aWQ6IDY3ZTNjNTExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUxICBsb25nZXN0OiAxOTQ5MjM1MQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IDY3ZTNjNTExICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOCk6IHRpZDog NjdlM2M1MTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogNjdlM2M1MTEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTApOiB0aWQ6 IDY3ZTNjNTExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiA2N2UzYzUxMSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTIpOiB0aWQ6IDU3OGI5MTQ1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiA1NzhiOTE0NSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQp OiB0aWQ6IDU3OGI5MTQ1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNSk6IHRpZDogNTc4YjkxNDUg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyODAwIG5ibG9ja3MgMHg0IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTYpOiB0aWQ6IDU3OGI5MTQ1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiA1NzhiOTE0NSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxOCk6IHRp ZDogNTc4YjkxNDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIzNTAgIGxvbmdlc3Q6IDE5NDkyMzUwCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTkpOiB0aWQ6IDU3OGI5MTQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IDU3OGI5MTQ1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIxKTogdGlkOiA1NzhiOTE0NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogNTc4YjkxNDUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjMpOiB0aWQ6IDU3OGI5MTQ1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNCk6IHRpZDogN2I5ZDFj NmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjUpOiB0aWQ6IDdiOWQxYzZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNik6IHRpZDogN2I5ZDFjNmMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3KTogdGlkOiA3YjlkMWM2YyAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAgbmJsb2NrcyAweDUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgyOCk6IHRpZDogN2I5ZDFjNmMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjkpOiB0aWQ6IDdiOWQxYzZjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwKTogdGlkOiA3YjlkMWM2YyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0 OSAgbG9uZ2VzdDogMTk0OTIzNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDog N2I5ZDFjNmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMik6IHRpZDogN2I5ZDFjNmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0 aWQ6IDdiOWQxYzZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiA3YjlkMWM2YyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6 IHRpZDogN2I5ZDFjNmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2KTogdGlkOiAxN2EyYzg4MSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6 IHRpZDogMTdhMmM4ODEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiAxN2EyYzg4MSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMzkpOiB0aWQ6IDE3YTJjODgxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NTAwMCBuYmxvY2tzIDB4NyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDQwKTogdGlkOiAxN2EyYzg4MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogMTdhMmM4ODEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDIpOiB0aWQ6IDE3YTJjODgxICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ3ICBsb25nZXN0OiAxOTQ5 MjM0NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiAxN2EyYzg4MSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0 KTogdGlkOiAxN2EyYzg4MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NSk6IHRpZDogMTdhMmM4ODEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDYpOiB0aWQ6IDE3YTJjODgxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiAxN2EyYzg4MSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDgpOiB0aWQ6IGMxNWJlNTUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlkOiBjMTViZTU1MyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTApOiB0aWQ6IGMxNWJlNTUzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1MSk6IHRpZDog YzE1YmU1NTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NDAwIG5ibG9j a3MgMHg4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNTIpOiB0aWQ6 IGMxNWJlNTUzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiBjMTViZTU1MyAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg1NCk6IHRpZDogYzE1YmU1NTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzNDYgIGxvbmdlc3Q6IDE5NDkyMzQ2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IGMxNWJlNTUzICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTYpOiB0aWQ6IGMxNWJlNTUz ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlkOiBjMTViZTU1MyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1OCk6IHRpZDogYzE1YmU1 NTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6IGMxNWJlNTUzICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MCk6IHRp ZDogM2VkMGRmNjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6IDNlZDBkZjYwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDog M2VkMGRmNjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDYzKTogdGlkOiAzZWQwZGY2MCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc4MDAgbmJsb2NrcyAweDkgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg2NCk6IHRpZDogM2VkMGRmNjAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0aWQ6IDNlZDBkZjYwICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDY2KTogdGlkOiAzZWQw ZGY2MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjM0NSAgbG9uZ2VzdDogMTk0OTIzNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2 Nyk6IHRpZDogM2VkMGRmNjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2OCk6IHRpZDogM2VkMGRmNjAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjkpOiB0aWQ6IDNlZDBkZjYwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcwKTogdGlkOiAzZWQwZGY2MCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3MSk6IHRpZDogM2VkMGRmNjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcyKTogdGlkOiBjNzNlMjZiZiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Myk6IHRpZDogYzczZTI2YmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBjNzNlMjZiZiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNzUpOiB0aWQ6IGM3M2UyNmJmICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4OGMwMCBuYmxvY2tzIDB4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDc2KTogdGlkOiBjNzNlMjZiZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Nyk6IHRpZDogYzczZTI2YmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNzgpOiB0aWQ6IGM3M2UyNmJmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25n ZXN0OiAxOTQ5MjM0NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiBjNzNlMjZi ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDgwKTogdGlkOiBjNzNlMjZiZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogYzcz ZTI2YmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoODIpOiB0aWQ6IGM3M2UyNmJmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiBj NzNlMjZiZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODQpOiB0aWQ6IDU1OTNlYzM3ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiA1 NTkzZWMzNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IDU1OTNlYzM3ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4 Nyk6IHRpZDogNTU5M2VjMzcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhh MDAwIG5ibG9ja3MgMHhjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo ODgpOiB0aWQ6IDU1OTNlYzM3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA1 NTkzZWMzNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg5MCk6IHRpZDogNTU5M2VjMzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDIgIGxvbmdlc3Q6IDE5NDkyMzQyCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6IDU1OTNlYzM3ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTIpOiB0aWQ6 IDU1OTNlYzM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiA1NTkzZWMzNyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5NCk6IHRp ZDogNTU5M2VjMzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IDU1OTNlYzM3ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5Nik6IHRpZDogYzhkYWZjYTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTcpOiB0aWQ6IGM4ZGFmY2EwICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 OCk6IHRpZDogYzhkYWZjYTAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDk5KTogdGlkOiBjOGRhZmNh MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI0MDAgbmJsb2NrcyAweGQg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMDApOiB0aWQ6IGM4ZGFm Y2EwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogYzhkYWZjYTAgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTAy KTogdGlkOiBjOGRhZmNhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjM0MSAgbG9uZ2VzdDogMTk0OTIzNDEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMDMpOiB0aWQ6IGM4ZGFmY2EwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA0KTogdGlkOiBjOGRhZmNhMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IGM4ZGFmY2EwICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwNik6IHRpZDogYzhkYWZj YTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiBjOGRhZmNhMCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA4KTog dGlkOiBlNTZhZjU1ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IGU1NmFmNTVlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0 aWQ6IGU1NmFmNTVlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTEpOiB0aWQ6IGU1NmFmNTVlICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzgwMCBuYmxvY2tzIDB4ZSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDExMik6IHRpZDogZTU2YWY1NWUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBlNTZhZjU1ZSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTQpOiB0 aWQ6IGU1NmFmNTVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMzQwICBsb25nZXN0OiAxOTQ5MjM0MAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExNSk6IHRpZDogZTU2YWY1NWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTYpOiB0aWQ6IGU1NmFmNTVlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExNyk6IHRpZDogZTU2YWY1NWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTE4KTogdGlkOiBlNTZhZjU1ZSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IGU1NmFmNTVlICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjApOiB0aWQ6 IDUzNzRkZWVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDogNTM3NGRlZWMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDog NTM3NGRlZWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyMyk6IHRpZDogNTM3NGRlZWMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAwIG5ibG9ja3MgMHhmIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTI0KTogdGlkOiA1Mzc0ZGVlYyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjUpOiB0aWQ6IDUzNzRkZWVjICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyNik6IHRpZDog NTM3NGRlZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIzMzkgIGxvbmdlc3Q6IDE5NDkyMzM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTI3KTogdGlkOiA1Mzc0ZGVlYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyOCk6IHRpZDogNTM3NGRlZWMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTI5KTogdGlkOiA1Mzc0ZGVlYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzApOiB0aWQ6IDUzNzRkZWVjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzMSk6IHRpZDogNTM3NGRlZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMik6IHRpZDogMzA4 MTdhYWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTMzKTogdGlkOiAzMDgxN2FhZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiAzMDgx N2FhZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTM1KTogdGlkOiAzMDgxN2FhZCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYwMDAgbmJsb2NrcyAweDExIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTM2KTogdGlkOiAzMDgxN2FhZCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IDMwODE3YWFkICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzOCk6IHRpZDogMzA4 MTdhYWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMzcgIGxvbmdlc3Q6IDE5NDkyMzM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTM5KTogdGlkOiAzMDgxN2FhZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0MCk6IHRpZDogMzA4MTdhYWQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTQxKTogdGlkOiAzMDgxN2FhZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDIpOiB0aWQ6IDMwODE3YWFkICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0Myk6IHRpZDogMzA4MTdhYWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogMTY3OWM0 YWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTQ1KTogdGlkOiAxNjc5YzRhZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ2KTogdGlkOiAxNjc5YzRh ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTQ3KTogdGlkOiAxNjc5YzRhZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDEwNDAwIG5ibG9ja3MgMHgxMiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE0OCk6IHRpZDogMTY3OWM0YWQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiAxNjc5YzRhZCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNTApOiB0aWQ6IDE2Nzlj NGFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzM2ICBsb25nZXN0OiAxOTQ5MjMzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 MSk6IHRpZDogMTY3OWM0YWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTIpOiB0aWQ6IDE2NzljNGFkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1Myk6IHRpZDogMTY3OWM0YWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU0KTogdGlkOiAxNjc5YzRhZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTUpOiB0aWQ6IDE2NzljNGFkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTYpOiB0aWQ6IGE3OTYxZmZj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1Nyk6IHRpZDogYTc5NjFmZmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OCk6IHRpZDogYTc5NjFmZmMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1OSk6IHRpZDogYTc5NjFmZmMgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBuYmxvY2tzIDB4MTMgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNjApOiB0aWQ6IGE3OTYxZmZjICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogYTc5NjFmZmMgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTYyKTogdGlkOiBhNzk2MWZm YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMp OiB0aWQ6IGE3OTYxZmZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTY0KTogdGlkOiBhNzk2MWZmYyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNjUpOiB0aWQ6IGE3OTYxZmZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6IHRpZDogYTc5NjFmZmMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY3KTogdGlkOiBhNzk2MWZmYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY4KTogdGlkOiA0NzMxYjliOSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjkpOiB0aWQ6IDQ3MzFiOWI5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzApOiB0aWQ6IDQ3MzFiOWI5ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgxNzEpOiB0aWQ6IDQ3MzFiOWI5ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MTJjMDAgbmJsb2NrcyAweDE0IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTcyKTogdGlkOiA0NzMxYjliOSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IDQ3MzFiOWI5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3NCk6IHRpZDogNDczMWI5Yjkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzMzQgIGxvbmdlc3Q6IDE5NDkyMzM0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTog dGlkOiA0NzMxYjliOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDE3Nik6IHRpZDogNDczMWI5YjkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTc3KTogdGlkOiA0NzMxYjliOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzgpOiB0aWQ6IDQ3MzFiOWI5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3OSk6IHRpZDogNDczMWI5YjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MCk6IHRpZDogMTc5NGNmMGEgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTgxKTogdGlkOiAxNzk0Y2YwYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgyKTogdGlkOiAxNzk0Y2YwYSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTgzKTogdGlkOiAxNzk0Y2YwYSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9ja3MgMHgxNiBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE4NCk6IHRpZDogMTc5NGNmMGEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTg1KTogdGlkOiAxNzk0Y2YwYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODYpOiB0aWQ6IDE3OTRjZjBhICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MzMyICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRp ZDogMTc5NGNmMGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxODgpOiB0aWQ6IDE3OTRjZjBhICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4 OSk6IHRpZDogMTc5NGNmMGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlkOiAxNzk0Y2YwYSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTEpOiB0aWQ6IDE3OTRjZjBhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTIpOiB0aWQ6IDQ4ZTk2NWJhICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE5Myk6IHRpZDogNDhlOTY1YmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NCk6IHRpZDogNDhlOTY1YmEgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDE5NSk6IHRpZDogNDhlOTY1YmEgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgxNTQwMCBuYmxvY2tzIDB4MTcgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICgxOTYpOiB0aWQ6IDQ4ZTk2NWJhICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE5Nyk6IHRpZDogNDhlOTY1YmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTk4KTogdGlkOiA0OGU5NjViYSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMz MSAgbG9uZ2VzdDogMTk0OTIzMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0aWQ6 IDQ4ZTk2NWJhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiA0OGU5NjViYSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEp OiB0aWQ6IDQ4ZTk2NWJhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIwMik6IHRpZDogNDhlOTY1YmEgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjAzKTogdGlkOiA0OGU5NjViYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA0KTogdGlkOiAzZDFiZDEzYyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMDUpOiB0aWQ6IDNkMWJkMTNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDYpOiB0aWQ6IDNkMWJkMTNjICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgyMDcpOiB0aWQ6IDNkMWJkMTNjICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAweDE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoMjA4KTogdGlkOiAzZDFiZDEzYyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMDkpOiB0aWQ6IDNkMWJkMTNjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxMCk6IHRpZDogM2QxYmQxM2MgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzAg IGxvbmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjExKTogdGlkOiAz ZDFiZDEzYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIxMik6IHRpZDogM2QxYmQxM2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEzKTog dGlkOiAzZDFiZDEzYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyMTQpOiB0aWQ6IDNkMWJkMTNjICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx NSk6IHRpZDogM2QxYmQxM2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNik6IHRpZDogZWJjM2RjODIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjE3KTogdGlkOiBlYmMzZGM4MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiBlYmMzZGM4MiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMjE5KTogdGlkOiBlYmMzZGM4MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDE3YzAwIG5ibG9ja3MgMHgxOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDIyMCk6IHRpZDogZWJjM2RjODIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjIxKTogdGlkOiBlYmMzZGM4MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjIpOiB0aWQ6IGViYzNkYzgyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI5ICBs b25nZXN0OiAxOTQ5MjMyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMyk6IHRpZDogZWJj M2RjODIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMjQpOiB0aWQ6IGViYzNkYzgyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRp ZDogZWJjM2RjODIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjI2KTogdGlkOiBlYmMzZGM4MiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcp OiB0aWQ6IGViYzNkYzgyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjgpOiB0aWQ6IDVmMzc2MWNiICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIy OSk6IHRpZDogNWYzNzYxY2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogNWYzNzYxY2IgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDIzMSk6IHRpZDogNWYzNzYxY2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICgyMzIpOiB0aWQ6IDVmMzc2MWNiICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzMyk6IHRpZDogNWYzNzYxY2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM0KTogdGlkOiA1ZjM3NjFjYiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNyAgbG9u Z2VzdDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0aWQ6IDVmMzc2 MWNiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjM2KTogdGlkOiA1ZjM3NjFjYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6 IDVmMzc2MWNiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIzOCk6IHRpZDogNWYzNzYxY2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTog dGlkOiA1ZjM3NjFjYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQwKTogdGlkOiA0MzA2ZGY0YSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDEp OiB0aWQ6IDQzMDZkZjRhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IDQzMDZkZjRhICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgyNDMpOiB0aWQ6IDQzMDZkZjRhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoMjQ0KTogdGlkOiA0MzA2ZGY0YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNDUpOiB0aWQ6IDQzMDZkZjRhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0Nik6IHRpZDogNDMwNmRmNGEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjYgIGxvbmdl c3Q6IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlkOiA0MzA2ZGY0 YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDI0OCk6IHRpZDogNDMwNmRmNGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiA0 MzA2ZGY0YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyNTApOiB0aWQ6IDQzMDZkZjRhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRp ZDogNDMwNmRmNGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRpZDogM2VlYmRiZWEgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUzKTog dGlkOiAzZWViZGJlYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiAzZWViZGJlYSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMjU1KTogdGlkOiAzZWViZGJlYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDFiODAwIG5ibG9ja3MgMHgxZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDI1Nik6IHRpZDogM2VlYmRiZWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjU3KTogdGlkOiAzZWViZGJlYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTgpOiB0aWQ6IDNlZWJkYmVhICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI1ICBsb25nZXN0 OiAxOTQ5MjMyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogM2VlYmRiZWEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyNjApOiB0aWQ6IDNlZWJkYmVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogM2Vl YmRiZWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjYyKTogdGlkOiAzZWViZGJlYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6 IDNlZWJkYmVhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6IGViY2JmNjVkICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6IHRp ZDogZWJjYmY2NWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogZWJjYmY2NWQgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDI2Nyk6IHRpZDogZWJjYmY2NWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MgpPcGVyICgyNjgpOiB0aWQ6IGViY2JmNjVkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2 OSk6IHRpZDogZWJjYmY2NWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMjcwKTogdGlkOiBlYmNiZjY1ZCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNCAgbG9uZ2VzdDog MTk0OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IGViY2JmNjVkICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjcyKTogdGlkOiBlYmNiZjY1ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IGViY2Jm NjVkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDI3NCk6IHRpZDogZWJjYmY2NWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiBl YmNiZjY1ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjc2KTogdGlkOiA1M2JkOTgzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDog NTNiZDk4MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjc4KTogdGlkOiA1M2JkOTgzICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy NzkpOiB0aWQ6IDUzYmQ5ODMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgx ZTAwMCBuYmxvY2tzIDB4MjAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICgyODApOiB0aWQ6IDUzYmQ5ODMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlk OiA1M2JkOTgzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDI4Mik6IHRpZDogNTNiZDk4MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMiAgbG9uZ2VzdDogMTk0OTIzMjIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IDUzYmQ5ODMgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODQpOiB0 aWQ6IDUzYmQ5ODMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1KTogdGlkOiA1M2JkOTgzICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4Nik6 IHRpZDogNTNiZDk4MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IDUzYmQ5ODMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI4OCk6IHRpZDogZmQxZTliYmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5KTogdGlkOiBmZDFlOWJiZCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjkwKTogdGlkOiBmZDFlOWJiZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjkxKTogdGlkOiBm ZDFlOWJiZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFmNDAwIG5ibG9j a3MgMHgyMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI5Mik6IHRp ZDogZmQxZTliYmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiBmZDFlOWJi ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyOTQpOiB0aWQ6IGZkMWU5YmJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzIxICBsb25nZXN0OiAxOTQ5MjMyMQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogZmQxZTliYmQgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTYpOiB0aWQ6IGZk MWU5YmJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6IHRpZDogZmQxZTliYmQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlk OiBmZDFlOWJiZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IGZkMWU5YmJkICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMDApOiB0aWQ6IGI1ZTgzOGE5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6IHRpZDogYjVlODM4YTkgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwMik6IHRpZDogYjVlODM4YTkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwMyk6IHRpZDogYjVl ODM4YTkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMDgwMCBuYmxvY2tz IDB4MjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMDQpOiB0aWQ6 IGI1ZTgzOGE5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogYjVlODM4YTkg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMzA2KTogdGlkOiBiNWU4MzhhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMCAgbG9uZ2VzdDogMTk0OTIzMjAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IGI1ZTgzOGE5ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA4KTogdGlkOiBiNWU4 MzhhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0aWQ6IGI1ZTgzOGE5ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDog YjVlODM4YTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBiNWU4MzhhOSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzEyKTogdGlkOiBkMjRhN2I5MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0aWQ6IGQyNGE3YjkxICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTQpOiB0aWQ6IGQyNGE3YjkxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMTUpOiB0aWQ6IGQyNGE3 YjkxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjFjMDAgbmJsb2NrcyAw eDIzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzE2KTogdGlkOiBk MjRhN2I5MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IGQyNGE3YjkxICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDMxOCk6IHRpZDogZDI0YTdiOTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMTkgIGxvbmdlc3Q6IDE5NDkyMzE5Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiBkMjRhN2I5MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyMCk6IHRpZDogZDI0YTdi OTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzIxKTogdGlkOiBkMjRhN2I5MSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IGQy NGE3YjkxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogZDI0YTdiOTEgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMy NCk6IHRpZDogYzY1MTE5ZmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlkOiBjNjUxMTlmYSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2 KTogdGlkOiBjNjUxMTlmYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzI3KTogdGlkOiBjNjUxMTlm YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIzMDAwIG5ibG9ja3MgMHgy NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDMyOCk6IHRpZDogYzY1 MTE5ZmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiBjNjUxMTlmYSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgz MzApOiB0aWQ6IGM2NTExOWZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzE3ICBsb25nZXN0OiAxOTQ5MjMxNwotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogYzY1MTE5ZmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzIpOiB0aWQ6IGM2NTExOWZh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogYzY1MTE5ZmEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiBjNjUx MTlmYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGM2NTExOWZhICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzYp OiB0aWQ6IGNkY2Q5YWZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDogY2RjZDlhZmUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6 IHRpZDogY2RjZDlhZmUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMzOSk6IHRpZDogY2RjZDlhZmUg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNDQwMCBuYmxvY2tzIDB4MjYg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNDApOiB0aWQ6IGNkY2Q5 YWZlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogY2RjZDlhZmUgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQy KTogdGlkOiBjZGNkOWFmZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMxNiAgbG9uZ2VzdDogMTk0OTIzMTYKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNDMpOiB0aWQ6IGNkY2Q5YWZlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ0KTogdGlkOiBjZGNkOWFmZSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6IGNkY2Q5YWZlICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogY2RjZDlh ZmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBjZGNkOWFmZSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ4KTog dGlkOiBhOWQ2NzUzZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IGE5ZDY3NTNlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTApOiB0 aWQ6IGE5ZDY3NTNlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNTEpOiB0aWQ6IGE5ZDY3NTNlICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjU4MDAgbmJsb2NrcyAweDI3IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzUyKTogdGlkOiBhOWQ2NzUz ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IGE5ZDY3NTNlICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1NCk6 IHRpZDogYTlkNjc1M2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIzMTUgIGxvbmdlc3Q6IDE5NDkyMzE1Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzU1KTogdGlkOiBhOWQ2NzUzZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1Nik6IHRpZDogYTlkNjc1M2UgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzU3KTogdGlkOiBhOWQ2NzUzZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IGE5ZDY3NTNl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogYTlkNjc1M2UgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MCk6IHRp ZDogNzBlOWIwZTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiA3MGU5YjBlMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYyKTogdGlk OiA3MGU5YjBlMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzYzKTogdGlkOiA3MGU5YjBlMyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI2YzAwIG5ibG9ja3MgMHgyOCBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM2NCk6IHRpZDogNzBlOWIwZTMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiA3MGU5YjBlMyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjYpOiB0 aWQ6IDcwZTliMGUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMzE0ICBsb25nZXN0OiAxOTQ5MjMxNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2Nyk6IHRpZDogNzBlOWIwZTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjgpOiB0aWQ6IDcwZTliMGUzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM2OSk6IHRpZDogNzBlOWIwZTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiA3MGU5YjBlMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDcwZTliMGUzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzIpOiB0aWQ6 IDMxOWMwMDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzczKTogdGlkOiAzMTljMDA5ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6IDMx OWMwMDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM3NSk6IHRpZDogMzE5YzAwOSAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI4MDAwIG5ibG9ja3MgMHgyYSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM3Nik6IHRpZDogMzE5YzAwOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IDMxOWMwMDkgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzc4KTogdGlkOiAzMTlj MDA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzEyICBsb25nZXN0OiAxOTQ5MjMxMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 OSk6IHRpZDogMzE5YzAwOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDogMzE5YzAwOSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzODEpOiB0aWQ6IDMxOWMwMDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgyKTogdGlkOiAzMTljMDA5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM4Myk6IHRpZDogMzE5YzAwOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg0KTogdGlkOiA1MjYwZDM1MSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODUpOiB0aWQ6IDUyNjBkMzUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODYpOiB0aWQ6IDUyNjBkMzUxICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzODcpOiB0aWQ6IDUyNjBkMzUxICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4Mjk0MDAgbmJsb2NrcyAweDJiIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMzg4KTogdGlkOiA1MjYwZDM1MSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzODkpOiB0aWQ6IDUyNjBkMzUxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5MCk6IHRpZDogNTI2MGQzNTEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MTEgIGxvbmdlc3Q6IDE5NDkyMzExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlk OiA1MjYwZDM1MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM5Mik6IHRpZDogNTI2MGQzNTEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkz KTogdGlkOiA1MjYwZDM1MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6IDUyNjBkMzUxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5NSk6IHRpZDogNTI2MGQzNTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nik6IHRpZDogNjNmNzUwMzIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzk3KTogdGlkOiA2M2Y3NTAzMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4KTogdGlkOiA2M2Y3NTAzMiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzk5KTogdGlkOiA2M2Y3NTAzMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDJhODAwIG5ibG9ja3MgMHgyYyBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDQwMCk6IHRpZDogNjNmNzUwMzIgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDAxKTogdGlkOiA2M2Y3NTAzMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MDIpOiB0aWQ6IDYzZjc1MDMyICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzEw ICBsb25nZXN0OiAxOTQ5MjMxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMyk6IHRpZDog NjNmNzUwMzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MDQpOiB0aWQ6IDYzZjc1MDMyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6 IHRpZDogNjNmNzUwMzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDA2KTogdGlkOiA2M2Y3NTAzMiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MDcpOiB0aWQ6IDYzZjc1MDMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDgpOiB0aWQ6IDYxNWUzMDViICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQwOSk6IHRpZDogNjE1ZTMwNWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRpZDogNjE1ZTMwNWIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQxMSk6IHRpZDogNjE1ZTMwNWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgyYmMwMCBuYmxvY2tzIDB4MmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICg0MTIpOiB0aWQ6IDYxNWUzMDViICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQxMyk6IHRpZDogNjE1ZTMwNWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDE0KTogdGlkOiA2MTVlMzA1YiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwOSAg bG9uZ2VzdDogMTk0OTIzMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IDYx NWUzMDViICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDE2KTogdGlkOiA2MTVlMzA1YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0 aWQ6IDYxNWUzMDViICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQxOCk6IHRpZDogNjE1ZTMwNWIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5 KTogdGlkOiA2MTVlMzA1YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIwKTogdGlkOiAxYTkzNTlmNSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MjEpOiB0aWQ6IDFhOTM1OWY1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IDFhOTM1OWY1ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0MjMpOiB0aWQ6IDFhOTM1OWY1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MmQwMDAgbmJsb2NrcyAweDJmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoNDI0KTogdGlkOiAxYTkzNTlmNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MjUpOiB0aWQ6IDFhOTM1OWY1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyNik6IHRpZDogMWE5MzU5ZjUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDcgIGxv bmdlc3Q6IDE5NDkyMzA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI3KTogdGlkOiAxYTkz NTlmNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQyOCk6IHRpZDogMWE5MzU5ZjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlk OiAxYTkzNTlmNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MzApOiB0aWQ6IDFhOTM1OWY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6 IHRpZDogMWE5MzU5ZjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6IHRpZDogNDEzYTViMjggIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMz KTogdGlkOiA0MTNhNWIyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiA0MTNhNWIyOCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNDM1KTogdGlkOiA0MTNhNWIyOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDJlNDAwIG5ibG9ja3MgMHgzMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDQzNik6IHRpZDogNDEzYTViMjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDM3KTogdGlkOiA0MTNhNWIyOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MzgpOiB0aWQ6IDQxM2E1YjI4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA2ICBsb25n ZXN0OiAxOTQ5MjMwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOSk6IHRpZDogNDEzYTVi MjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NDApOiB0aWQ6IDQxM2E1YjI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDog NDEzYTViMjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDQyKTogdGlkOiA0MTNhNWIyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0 aWQ6IDQxM2E1YjI4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0aWQ6IDcwZDJmMmIwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NSk6 IHRpZDogNzBkMmYyYjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogNzBkMmYyYjAgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQ0Nyk6IHRpZDogNzBkMmYyYjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyZjgwMCBuYmxvY2tzIDB4MzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICg0NDgpOiB0aWQ6IDcwZDJmMmIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ0OSk6IHRpZDogNzBkMmYyYjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUwKTogdGlkOiA3MGQyZjJiMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwNSAgbG9uZ2Vz dDogMTk0OTIzMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTEpOiB0aWQ6IDcwZDJmMmIw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDUyKTogdGlkOiA3MGQyZjJiMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDcw ZDJmMmIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ1NCk6IHRpZDogNzBkMmYyYjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlk OiA3MGQyZjJiMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDU2KTogdGlkOiA5YzQwZjkyMCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0 aWQ6IDljNDBmOTIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IDljNDBmOTIwICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0NTkpOiB0aWQ6IDljNDBmOTIwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MzBjMDAgbmJsb2NrcyAweDMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoNDYwKTogdGlkOiA5YzQwZjkyMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NjEpOiB0aWQ6IDljNDBmOTIwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQ2Mik6IHRpZDogOWM0MGY5MjAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDQgIGxvbmdlc3Q6 IDE5NDkyMzA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTogdGlkOiA5YzQwZjkyMCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ2NCk6IHRpZDogOWM0MGY5MjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiA5YzQw ZjkyMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NjYpOiB0aWQ6IDljNDBmOTIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDog OWM0MGY5MjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDogOTVkNDE3OTggIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY5KTogdGlk OiA5NWQ0MTc5OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA5NWQ0MTc5OCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDcxKTogdGlkOiA5NWQ0MTc5OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDMyMDAwIG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDQ3Mik6IHRpZDogOTVkNDE3OTggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcz KTogdGlkOiA5NWQ0MTc5OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0NzQpOiB0aWQ6IDk1ZDQxNzk4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAyICBsb25nZXN0OiAx OTQ5MjMwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6IHRpZDogOTVkNDE3OTggIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NzYpOiB0aWQ6IDk1ZDQxNzk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogOTVkNDE3 OTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDc4KTogdGlkOiA5NWQ0MTc5OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDk1 ZDQxNzk4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0ODApOiB0aWQ6IDY3ODFiYmY5ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRpZDog Njc4MWJiZjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogNjc4MWJiZjkgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQ4Myk6IHRpZDogNjc4MWJiZjkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzMzQwMCBuYmxvY2tzIDB4MzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICg0ODQpOiB0aWQ6IDY3ODFiYmY5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6 IHRpZDogNjc4MWJiZjkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDg2KTogdGlkOiA2NzgxYmJmOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwMSAgbG9uZ2VzdDogMTk0 OTIzMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6IDY3ODFiYmY5ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDg4KTogdGlkOiA2NzgxYmJmOSAgbGVuOiAxMDQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TlRJTlVFIApCVUYgREFUQQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAy CQlsc246IDEsNTUyCXRhaWxfbHNuOiAxLDQ3NQpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJ cHJldiBvZmZzZXQ6IDQ4OAkJbnVtIG9wczogNDkxCnV1aWQ6IGIwYzBmMTk5LTAyMjktNGYxOC04 ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMy NzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogNjc4MWJiZjkgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVORCAKTGVmdCBvdmVyIHJlZ2lvbiBm cm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRpZDogNjc4 MWJiZjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMik6IHRpZDogNjc4MWJiZjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMyk6IHRpZDogNjc4 MWJiZjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQpOiB0aWQ6IGI5Y2ViYTQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IGI5Y2Vi YTQ0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg2KTogdGlkOiBiOWNlYmE0NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNyk6IHRp ZDogYjljZWJhNDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNDgwMCBu YmxvY2tzIDB4MzYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg4KTog dGlkOiBiOWNlYmE0NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiBiOWNlYmE0 NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxMCk6IHRpZDogYjljZWJhNDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDAgIGxvbmdlc3Q6IDE5NDkyMzAwCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IGI5Y2ViYTQ0ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIpOiB0aWQ6IGI5Y2Vi YTQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzKTogdGlkOiBiOWNlYmE0NCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNCk6IHRpZDogYjlj ZWJhNDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IGI5Y2ViYTQ0ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6 IHRpZDogNTgyMjFmZGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDU4MjIxZmRkICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRp ZDogNTgyMjFmZGQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5KTogdGlkOiA1ODIyMWZkZCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM1YzAwIG5ibG9ja3MgMHgzNyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIwKTogdGlkOiA1ODIyMWZkZCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogNTgyMjFmZGQgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0aWQ6 IDU4MjIxZmRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjk5ICBsb25nZXN0OiAxOTQ5MjI5OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzKTogdGlkOiA1ODIyMWZkZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0KTogdGlkOiA1ODIyMWZkZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNSk6IHRpZDogNTgyMjFmZGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYpOiB0aWQ6IDU4MjIxZmRkICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI3KTogdGlkOiA1ODIyMWZkZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IDgwYmViZDM3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI5KTogdGlkOiA4MGJlYmQzNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDgwYmViZDM3ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgzMSk6IHRpZDogODBiZWJkMzcgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgzNzAwMCBuYmxvY2tzIDB4MzkgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMik6IHRpZDogODBiZWJkMzcgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzMpOiB0aWQ6IDgwYmViZDM3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiA4MGJlYmQzNyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5 NyAgbG9uZ2VzdDogMTk0OTIyOTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDog ODBiZWJkMzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNik6IHRpZDogODBiZWJkMzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0 aWQ6IDgwYmViZDM3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM4KTogdGlkOiA4MGJlYmQzNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6 IHRpZDogODBiZWJkMzcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwKTogdGlkOiBmMjZmYjMzZSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogZjI2ZmIzM2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiBmMjZmYjMzZSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNDMpOiB0aWQ6IGYyNmZiMzNlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4Mzg0MDAgbmJsb2NrcyAweDNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoNDQpOiB0aWQ6IGYyNmZiMzNlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 KTogdGlkOiBmMjZmYjMzZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0Nik6IHRpZDogZjI2ZmIzM2UgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTYgIGxvbmdlc3Q6IDE5 NDkyMjk2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IGYyNmZiMzNlICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDgpOiB0aWQ6IGYyNmZiMzNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ5KTogdGlkOiBmMjZmYjMzZSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg1MCk6IHRpZDogZjI2ZmIzM2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IGYyNmZiMzNl ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1Mik6IHRpZDogNjU3MzFiOTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDY1NzMxYjk1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1NCk6IHRpZDogNjU3MzFiOTUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDU1KTogdGlk OiA2NTczMWI5NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM5ODAwIG5i bG9ja3MgMHgzYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDU2KTog dGlkOiA2NTczMWI5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nyk6IHRpZDogNjU3MzFi OTUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNTgpOiB0aWQ6IDY1NzMxYjk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk1ICBsb25nZXN0OiAxOTQ5MjI5NQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiA2NTczMWI5NSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYwKTogdGlkOiA2NTcz MWI5NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDogNjU3MzFiOTUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjIpOiB0aWQ6IDY1 NzMxYjk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYzKTogdGlkOiA2NTczMWI5NSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQp OiB0aWQ6IGEzMzM3NzU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiBhMzMzNzc1NiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0 aWQ6IGEzMzM3NzU2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2Nyk6IHRpZDogYTMzMzc3NTYgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYWMwMCBuYmxvY2tzIDB4M2MgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg2OCk6IHRpZDogYTMzMzc3NTYg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0aWQ6IGEzMzM3NzU2ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDcwKTogdGlk OiBhMzMzNzc1NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI5NCAgbG9uZ2VzdDogMTk0OTIyOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3MSk6IHRpZDogYTMzMzc3NTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3Mik6IHRpZDogYTMzMzc3NTYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzMpOiB0aWQ6IGEzMzM3NzU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc0KTogdGlkOiBhMzMzNzc1NiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3NSk6IHRpZDogYTMzMzc3NTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc2KTogdGlkOiA2NGFmNGUx ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3Nyk6IHRpZDogNjRhZjRlMWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiA2NGFmNGUxZiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNzkpOiB0aWQ6IDY0YWY0ZTFmICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4M2MwMDAgbmJsb2NrcyAweDNlIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoODApOiB0aWQ6IDY0YWY0ZTFmICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDgxKTogdGlkOiA2NGFmNGUxZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4Mik6IHRpZDogNjRhZjRlMWYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy OTIgIGxvbmdlc3Q6IDE5NDkyMjkyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6 IDY0YWY0ZTFmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoODQpOiB0aWQ6IDY0YWY0ZTFmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg1KTog dGlkOiA2NGFmNGUxZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg4Nik6IHRpZDogNjRhZjRlMWYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcp OiB0aWQ6IDY0YWY0ZTFmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OCk6IHRpZDogNjI3N2QyNDggIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkp OiB0aWQ6IDYyNzdkMjQ4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogNjI3N2QyNDggIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDkxKTogdGlkOiA2Mjc3ZDI0OCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDNkNDAwIG5ibG9ja3MgMHgzZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgyCk9wZXIgKDkyKTogdGlkOiA2Mjc3ZDI0OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 Myk6IHRpZDogNjI3N2QyNDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoOTQpOiB0aWQ6IDYyNzdkMjQ4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkxICBsb25nZXN0OiAx OTQ5MjI5MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiA2Mjc3ZDI0OCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDk2KTogdGlkOiA2Mjc3ZDI0OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nyk6IHRpZDogNjI3N2QyNDgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoOTgpOiB0aWQ6IDYyNzdkMjQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiA2Mjc3ZDI0 OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTAwKTogdGlkOiAzYWY4MmJjYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IDNhZjgy YmNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMDIpOiB0aWQ6IDNhZjgyYmNjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMDMp OiB0aWQ6IDNhZjgyYmNjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2U4 MDAgbmJsb2NrcyAweDQwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MTA0KTogdGlkOiAzYWY4MmJjYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6 IDNhZjgyYmNjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDEwNik6IHRpZDogM2FmODJiY2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTAgIGxvbmdlc3Q6IDE5NDkyMjkw Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiAzYWY4MmJjYyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwOCk6 IHRpZDogM2FmODJiY2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA5KTogdGlkOiAzYWY4MmJjYyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MTApOiB0aWQ6IDNhZjgyYmNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMSk6IHRpZDogM2FmODJiY2Mg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDExMik6IHRpZDogNWE1ZDk3YTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiA1YTVkOTdh NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTE0KTogdGlkOiA1YTVkOTdhNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTE1KTog dGlkOiA1YTVkOTdhNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNmYzAw IG5ibG9ja3MgMHg0MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEx Nik6IHRpZDogNWE1ZDk3YTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE3KTogdGlkOiA1 YTVkOTdhNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxMTgpOiB0aWQ6IDVhNWQ5N2E2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg5ICBsb25nZXN0OiAxOTQ5MjI4OQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogNWE1ZDk3YTYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjApOiB0 aWQ6IDVhNWQ5N2E2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDogNWE1ZDk3YTYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIy KTogdGlkOiA1YTVkOTdhNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjMpOiB0aWQ6IDVhNWQ5N2E2ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMjQpOiB0aWQ6IDg0NWUwYmU3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNSk6IHRpZDogODQ1ZTBiZTcg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEyNik6IHRpZDogODQ1ZTBiZTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyNyk6IHRp ZDogODQ1ZTBiZTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0MTAwMCBu YmxvY2tzIDB4NDMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMjgp OiB0aWQ6IDg0NWUwYmU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDogODQ1 ZTBiZTcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTMwKTogdGlkOiA4NDVlMGJlNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NyAgbG9uZ2VzdDogMTk0OTIyODcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDg0NWUwYmU3ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMyKTogdGlk OiA4NDVlMGJlNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzMpOiB0aWQ6IDg0NWUwYmU3ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzNCk6 IHRpZDogODQ1ZTBiZTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1KTogdGlkOiA4NDVlMGJlNyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTM2KTogdGlkOiAyZWYxM2I4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IDJlZjEzYjg0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMzgpOiB0aWQ6IDJlZjEzYjg0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMzkpOiB0aWQ6 IDJlZjEzYjg0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDI0MDAgbmJs b2NrcyAweDQ0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTQwKTog dGlkOiAyZWYxM2I4NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDEpOiB0aWQ6IDJlZjEz Yjg0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE0Mik6IHRpZDogMmVmMTNiODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODYgIGxvbmdlc3Q6IDE5NDkyMjg2Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiAyZWYxM2I4NCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0NCk6IHRpZDog MmVmMTNiODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiAyZWYxM2I4NCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDYpOiB0 aWQ6IDJlZjEzYjg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6IHRpZDogMmVmMTNiODQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE0OCk6IHRpZDogNTgzMzQzMWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiA1ODMzNDMxYiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTUwKTogdGlkOiA1ODMzNDMxYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTUxKTogdGlkOiA1 ODMzNDMxYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQzODAwIG5ibG9j a3MgMHg0NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE1Mik6IHRp ZDogNTgzMzQzMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTogdGlkOiA1ODMzNDMx YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNTQpOiB0aWQ6IDU4MzM0MzFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg1ICBsb25nZXN0OiAxOTQ5MjI4NQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1NSk6IHRpZDogNTgzMzQzMWIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTYpOiB0aWQ6IDU4 MzM0MzFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogNTgzMzQzMWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU4KTogdGlk OiA1ODMzNDMxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0aWQ6IDU4MzM0MzFiICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNjApOiB0aWQ6IDljN2JjNzEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogOWM3YmM3MTMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE2Mik6IHRpZDogOWM3YmM3MTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2Myk6IHRpZDogOWM3 YmM3MTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NGMwMCBuYmxvY2tz IDB4NDYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNjQpOiB0aWQ6 IDljN2JjNzEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRpZDogOWM3YmM3MTMg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTY2KTogdGlkOiA5YzdiYzcxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NCAgbG9uZ2VzdDogMTk0OTIyODQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IDljN2JjNzEzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY4KTogdGlkOiA5Yzdi YzcxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IDljN2JjNzEzICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3MCk6IHRpZDog OWM3YmM3MTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlkOiA5YzdiYzcxMyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTcyKTogdGlkOiAxODI0YTJlYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IDE4MjRhMmVhICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NzQpOiB0aWQ6IDE4MjRhMmVhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzUpOiB0aWQ6IDE4MjRh MmVhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDYwMDAgbmJsb2NrcyAw eDQ4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTc2KTogdGlkOiAx ODI0YTJlYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzcpOiB0aWQ6IDE4MjRhMmVhICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE3OCk6IHRpZDogMTgyNGEyZWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyODIgIGxvbmdlc3Q6IDE5NDkyMjgyCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTc5KTogdGlkOiAxODI0YTJlYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4MCk6IHRpZDogMTgyNGEy ZWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiAxODI0YTJlYSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODIpOiB0aWQ6IDE4 MjRhMmVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogMTgyNGEyZWEgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4 NCk6IHRpZDogYzRmM2M4ZDEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiBjNGYzYzhkMSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2 KTogdGlkOiBjNGYzYzhkMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg3KTogdGlkOiBjNGYzYzhk MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ3NDAwIG5ibG9ja3MgMHg0 OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE4OCk6IHRpZDogYzRm M2M4ZDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiBjNGYzYzhkMSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx OTApOiB0aWQ6IGM0ZjNjOGQxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjgxICBsb25nZXN0OiAxOTQ5MjI4MQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE5MSk6IHRpZDogYzRmM2M4ZDEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTIpOiB0aWQ6IGM0ZjNjOGQx ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogYzRmM2M4ZDEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk0KTogdGlkOiBjNGYz YzhkMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IGM0ZjNjOGQxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYp OiB0aWQ6IDgyOWRkMTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk3KTogdGlkOiA4MjlkZDEzICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTgpOiB0 aWQ6IDgyOWRkMTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5OSk6IHRpZDogODI5ZGQxMyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ4ODAwIG5ibG9ja3MgMHg0YSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIwMCk6IHRpZDogODI5ZGQxMyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IDgyOWRkMTMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAyKTogdGlk OiA4MjlkZDEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjgwICBsb25nZXN0OiAxOTQ5MjI4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIwMyk6IHRpZDogODI5ZGQxMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogODI5ZGQxMyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMDUpOiB0aWQ6IDgyOWRkMTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA2KTogdGlkOiA4MjlkZDEzICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwNyk6IHRpZDogODI5ZGQxMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiAzZjdmZjEy YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMDkpOiB0aWQ6IDNmN2ZmMTJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IDNmN2ZmMTJj ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTEpOiB0aWQ6IDNmN2ZmMTJjICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDljMDAgbmJsb2NrcyAweDRiIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjEyKTogdGlkOiAzZjdmZjEyYyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0aWQ6IDNmN2ZmMTJjICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxNCk6IHRpZDogM2Y3ZmYx MmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNzkgIGxvbmdlc3Q6IDE5NDkyMjc5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1 KTogdGlkOiAzZjdmZjEyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIxNik6IHRpZDogM2Y3ZmYxMmMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjE3KTogdGlkOiAzZjdmZjEyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTgpOiB0aWQ6IDNmN2ZmMTJjICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIxOSk6IHRpZDogM2Y3ZmYxMmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogNmNhYjRkODUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjIxKTogdGlkOiA2Y2FiNGQ4NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiA2Y2FiNGQ4NSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjIzKTogdGlkOiA2Y2FiNGQ4NSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDRiMDAwIG5ibG9ja3MgMHg0ZCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIyNCk6IHRpZDogNmNhYjRkODUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjI1KTogdGlkOiA2Y2FiNGQ4NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjYpOiB0aWQ6IDZjYWI0ZDg1 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjc3ICBsb25nZXN0OiAxOTQ5MjI3NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNyk6 IHRpZDogNmNhYjRkODUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyMjgpOiB0aWQ6IDZjYWI0ZDg1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyOSk6IHRpZDogNmNhYjRkODUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMwKTogdGlkOiA2Y2FiNGQ4NSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzEpOiB0aWQ6IDZjYWI0ZDg1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDczNmVjNTIxICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzMyk6IHRpZDogNzM2ZWM1MjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogNzM2ZWM1MjEgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDIzNSk6IHRpZDogNzM2ZWM1MjEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg0YzQwMCBuYmxvY2tzIDB4NGUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMzYpOiB0aWQ6IDczNmVjNTIxICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzNyk6IHRpZDogNzM2ZWM1MjEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM4KTogdGlkOiA3MzZlYzUyMSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI3NiAgbG9uZ2VzdDogMTk0OTIyNzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzkpOiB0 aWQ6IDczNmVjNTIxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjQwKTogdGlkOiA3MzZlYzUyMSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDEpOiB0aWQ6IDczNmVjNTIxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI0Mik6IHRpZDogNzM2ZWM1MjEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQzKTogdGlkOiA3MzZlYzUyMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiA2OWI4MDdjOCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDUpOiB0aWQ6IDY5YjgwN2M4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDY5YjgwN2M4ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyNDcpOiB0aWQ6IDY5YjgwN2M4ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NGQ4MDAgbmJsb2NrcyAweDRmIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMjQ4KTogdGlkOiA2OWI4MDdjOCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDkpOiB0aWQ6IDY5YjgwN2M4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1MCk6IHRpZDogNjliODA3YzggIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy NzUgIGxvbmdlc3Q6IDE5NDkyMjc1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUxKTogdGlk OiA2OWI4MDdjOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI1Mik6IHRpZDogNjliODA3YzggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUz KTogdGlkOiA2OWI4MDdjOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNTQpOiB0aWQ6IDY5YjgwN2M4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1NSk6IHRpZDogNjliODA3YzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nik6IHRpZDogODliYzBjY2IgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjU3KTogdGlkOiA4OWJjMGNjYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiA4OWJjMGNjYiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjU5KTogdGlkOiA4OWJjMGNjYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDRlYzAwIG5ibG9ja3MgMHg1MCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDI2MCk6IHRpZDogODliYzBjY2IgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjYxKTogdGlkOiA4OWJjMGNjYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjIpOiB0aWQ6IDg5YmMwY2NiICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjc0 ICBsb25nZXN0OiAxOTQ5MjI3NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6IHRpZDog ODliYzBjY2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNjQpOiB0aWQ6IDg5YmMwY2NiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6 IHRpZDogODliYzBjY2IgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjY2KTogdGlkOiA4OWJjMGNjYiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NjcpOiB0aWQ6IDg5YmMwY2NiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjgpOiB0aWQ6IGZiNzllMTEzICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2OSk6IHRpZDogZmI3OWUxMTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogZmI3OWUxMTMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDI3MSk6IHRpZDogZmI3OWUxMTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg1MDAwMCBuYmxvY2tzIDB4NTIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICgyNzIpOiB0aWQ6IGZiNzllMTEzICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI3Myk6IHRpZDogZmI3OWUxMTMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc0KTogdGlkOiBmYjc5ZTExMyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3MiAg bG9uZ2VzdDogMTk0OTIyNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0aWQ6IGZi NzllMTEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjc2KTogdGlkOiBmYjc5ZTExMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzcpOiB0 aWQ6IGZiNzllMTEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI3OCk6IHRpZDogZmI3OWUxMTMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5 KTogdGlkOiBmYjc5ZTExMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgwKTogdGlkOiAzZmI3OGJmZCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy ODEpOiB0aWQ6IDNmYjc4YmZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IDNmYjc4YmZkICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyODMpOiB0aWQ6IDNmYjc4YmZkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NTE0MDAgbmJsb2NrcyAweDUzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoMjg0KTogdGlkOiAzZmI3OGJmZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODUpOiB0aWQ6IDNmYjc4YmZkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4Nik6IHRpZDogM2ZiNzhiZmQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzEgIGxv bmdlc3Q6IDE5NDkyMjcxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlkOiAzZmI3 OGJmZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI4OCk6IHRpZDogM2ZiNzhiZmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5KTogdGlk OiAzZmI3OGJmZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyOTApOiB0aWQ6IDNmYjc4YmZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6 IHRpZDogM2ZiNzhiZmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Mik6IHRpZDogZjZhZGQ1MDQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkz KTogdGlkOiBmNmFkZDUwNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiBmNmFkZDUwNCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjk1KTogdGlkOiBmNmFkZDUwNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDUyODAwIG5ibG9ja3MgMHg1NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDI5Nik6IHRpZDogZjZhZGQ1MDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjk3KTogdGlkOiBmNmFkZDUwNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTgpOiB0aWQ6IGY2YWRkNTA0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjcwICBsb25n ZXN0OiAxOTQ5MjI3MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRpZDogZjZhZGQ1 MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMDApOiB0aWQ6IGY2YWRkNTA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6IHRpZDog ZjZhZGQ1MDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzAyKTogdGlkOiBmNmFkZDUwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0 aWQ6IGY2YWRkNTA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDQpOiB0aWQ6IDY2MzZjNGYzICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6 IHRpZDogNjYzNmM0ZjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDogNjYzNmM0ZjMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDMwNyk6IHRpZDogNjYzNmM0ZjMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg1M2MwMCBuYmxvY2tzIDB4NTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgzMDgpOiB0aWQ6IDY2MzZjNGYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwOSk6IHRpZDogNjYzNmM0ZjMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzEwKTogdGlkOiA2NjM2YzRmMyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2OSAgbG9uZ2Vz dDogMTk0OTIyNjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IDY2MzZjNGYz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzEyKTogdGlkOiA2NjM2YzRmMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0aWQ6IDY2 MzZjNGYzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMxNCk6IHRpZDogNjYzNmM0ZjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlk OiA2NjM2YzRmMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2KTogdGlkOiAzNzE2M2ViMiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0 aWQ6IDM3MTYzZWIyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IDM3MTYzZWIyICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzMTkpOiB0aWQ6IDM3MTYzZWIyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NTUwMDAgbmJsb2NrcyAweDU3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMzIwKTogdGlkOiAzNzE2M2ViMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MjEpOiB0aWQ6IDM3MTYzZWIyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDMyMik6IHRpZDogMzcxNjNlYjIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjcgIGxvbmdlc3Q6 IDE5NDkyMjY3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiAzNzE2M2ViMiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMyNCk6IHRpZDogMzcxNjNlYjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlkOiAzNzE2 M2ViMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMjYpOiB0aWQ6IDM3MTYzZWIyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRpZDog MzcxNjNlYjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRpZDogY2EyYjBkZmUgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlk OiBjYTJiMGRmZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiBjYTJiMGRmZSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzMxKTogdGlkOiBjYTJiMGRmZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDU2NDAwIG5ibG9ja3MgMHg1OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDMzMik6IHRpZDogY2EyYjBkZmUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMz KTogdGlkOiBjYTJiMGRmZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzMzQpOiB0aWQ6IGNhMmIwZGZlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY2ICBsb25nZXN0OiAx OTQ5MjI2NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogY2EyYjBkZmUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMzYpOiB0aWQ6IGNhMmIwZGZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDogY2EyYjBk ZmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzM4KTogdGlkOiBjYTJiMGRmZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IGNh MmIwZGZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6IDI4MjQ4NTIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiAy ODI0ODUyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNDIpOiB0aWQ6IDI4MjQ4NTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0 Myk6IHRpZDogMjgyNDg1MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDU3 ODAwIG5ibG9ja3MgMHg1OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDM0NCk6IHRpZDogMjgyNDg1MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6 IDI4MjQ4NTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzQ2KTogdGlkOiAyODI0ODUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY1ICBsb25nZXN0OiAxOTQ5MjI2NQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogMjgyNDg1MiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0OCk6IHRp ZDogMjgyNDg1MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IDI4MjQ4NTIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUwKTog dGlkOiAyODI0ODUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MSk6IHRpZDogMjgyNDg1MiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzUyKTogdGlkOiBiNDU0YTcxNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IGI0NTRhNzE2ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNTQpOiB0aWQ6IGI0NTRhNzE2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNTUpOiB0aWQ6IGI0 NTRhNzE2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NThjMDAgbmJsb2Nr cyAweDVhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzU2KTogdGlk OiBiNDU0YTcxNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTcpOiB0aWQ6IGI0NTRhNzE2 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM1OCk6IHRpZDogYjQ1NGE3MTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjQgIGxvbmdlc3Q6IDE5NDkyMjY0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiBiNDU0YTcxNiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2MCk6IHRpZDogYjQ1 NGE3MTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiBiNDU0YTcxNiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjIpOiB0aWQ6 IGI0NTRhNzE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDogYjQ1NGE3MTYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM2NCk6IHRpZDogNmYyYTYyNzYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiA2ZjJhNjI3NiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzY2KTogdGlkOiA2ZjJhNjI3NiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzY3KTogdGlkOiA2ZjJh NjI3NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVhMDAwIG5ibG9ja3Mg MHg1YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM2OCk6IHRpZDog NmYyYTYyNzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY5KTogdGlkOiA2ZjJhNjI3NiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzNzApOiB0aWQ6IDZmMmE2Mjc2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYyICBsb25nZXN0OiAxOTQ5MjI2MgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogNmYyYTYyNzYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzIpOiB0aWQ6IDZmMmE2 Mjc2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogNmYyYTYyNzYgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc0KTogdGlkOiA2 ZjJhNjI3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IDZmMmE2Mjc2ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzYpOiB0aWQ6IGE2NWE3Y2U0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDogYTY1YTdjZTQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 OCk6IHRpZDogYTY1YTdjZTQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM3OSk6IHRpZDogYTY1YTdj ZTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1YjQwMCBuYmxvY2tzIDB4 NWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzODApOiB0aWQ6IGE2 NWE3Y2U0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4MSk6IHRpZDogYTY1YTdjZTQgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzgyKTogdGlkOiBhNjVhN2NlNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2MSAgbG9uZ2VzdDogMTk0OTIyNjEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IGE2NWE3Y2U0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg0KTogdGlkOiBhNjVhN2Nl NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IGE2NWE3Y2U0ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Nik6IHRpZDogYTY1 YTdjZTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg3KTogdGlkOiBhNjVhN2NlNCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4 KTogdGlkOiAzN2EwM2Y5MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IDM3YTAzZjkxICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTAp OiB0aWQ6IDM3YTAzZjkxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzOTEpOiB0aWQ6IDM3YTAzZjkx ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWM4MDAgbmJsb2NrcyAweDVl IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzkyKTogdGlkOiAzN2Ew M2Y5MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTMpOiB0aWQ6IDM3YTAzZjkxICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5 NCk6IHRpZDogMzdhMDNmOTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNjAgIGxvbmdlc3Q6IDE5NDkyMjYwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzk1KTogdGlkOiAzN2EwM2Y5MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5Nik6IHRpZDogMzdhMDNmOTEg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiAzN2EwM2Y5MSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTgpOiB0aWQ6IDM3YTAz ZjkxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OSk6IHRpZDogMzdhMDNmOTEgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6 IHRpZDogZWNkYmZlYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAxKTogdGlkOiBlY2RiZmViNyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTog dGlkOiBlY2RiZmViNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDAzKTogdGlkOiBlY2RiZmViNyAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDVkYzAwIG5ibG9ja3MgMHg1ZiBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQwNCk6IHRpZDogZWNkYmZl YjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA1KTogdGlkOiBlY2RiZmViNyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MDYp OiB0aWQ6IGVjZGJmZWI3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjU5ICBsb25nZXN0OiAxOTQ5MjI1OQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQwNyk6IHRpZDogZWNkYmZlYjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDgpOiB0aWQ6IGVjZGJmZWI3ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogZWNkYmZlYjcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDEwKTogdGlkOiBlY2RiZmVi NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MTEpOiB0aWQ6IGVjZGJmZWI3ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0 aWQ6IGRjZjE5YTVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogZGNmMTlhNWMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRp ZDogZGNmMTlhNWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxNSk6IHRpZDogZGNmMTlhNWMgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1ZjAwMCBuYmxvY2tzIDB4NjEgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MTYpOiB0aWQ6IGRjZjE5YTVj ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNyk6IHRpZDogZGNmMTlhNWMgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDE4KTog dGlkOiBkY2YxOWE1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjI1NyAgbG9uZ2VzdDogMTk0OTIyNTcKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MTkpOiB0aWQ6IGRjZjE5YTVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIwKTogdGlkOiBkY2YxOWE1YyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IGRjZjE5YTVjICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyMik6IHRpZDogZGNmMTlhNWMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDIzKTogdGlkOiBkY2YxOWE1YyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlk OiBkM2M4YWIzYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0aWQ6IGQzYzhhYjNiICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6 IGQzYzhhYjNiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjcpOiB0aWQ6IGQzYzhhYjNiICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjA0MDAgbmJsb2NrcyAweDYyIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDI4KTogdGlkOiBkM2M4YWIzYiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjkpOiB0aWQ6IGQzYzhhYjNiICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQzMCk6IHRp ZDogZDNjOGFiM2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyNTYgIGxvbmdlc3Q6IDE5NDkyMjU2Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDMxKTogdGlkOiBkM2M4YWIzYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMik6IHRpZDogZDNjOGFiM2IgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDMzKTogdGlkOiBkM2M4YWIzYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzQpOiB0aWQ6IGQzYzhhYjNiICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzNSk6IHRpZDogZDNjOGFiM2IgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDog OGExNjVkYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6IDhhMTY1ZGMgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRpZDogOGEx NjVkYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDM5KTogdGlkOiA4YTE2NWRjICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjE4MDAgbmJsb2NrcyAweDYzIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDQwKTogdGlkOiA4YTE2NWRjICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogOGExNjVkYyAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NDIpOiB0aWQ6IDhhMTY1 ZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNTUgIGxvbmdlc3Q6IDE5NDkyMjU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQz KTogdGlkOiA4YTE2NWRjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ0KTogdGlkOiA4YTE2NWRjICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ0NSk6IHRpZDogOGExNjVkYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDYpOiB0aWQ6IDhhMTY1ZGMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ3KTogdGlkOiA4YTE2NWRjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IDQxOTBlNWM1ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0OSk6IHRpZDogNDE5MGU1YzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogNDE5MGU1YzUgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQ1MSk6IHRpZDogNDE5MGU1YzUgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg2MmMwMCBuYmxvY2tzIDB4NjQgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICg0NTIpOiB0aWQ6IDQxOTBlNWM1ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ1Myk6IHRpZDogNDE5MGU1YzUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDU0KTogdGlkOiA0MTkwZTVjNSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1 NCAgbG9uZ2VzdDogMTk0OTIyNTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6 IDQxOTBlNWM1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDU2KTogdGlkOiA0MTkwZTVjNSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTcp OiB0aWQ6IDQxOTBlNWM1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ1OCk6IHRpZDogNDE5MGU1YzUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDU5KTogdGlkOiA0MTkwZTVjNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiBjYWQ2ZDM1OSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjEpOiB0aWQ6IGNhZDZkMzU5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IGNhZDZkMzU5ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0NjMpOiB0aWQ6IGNhZDZkMzU5ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NjQwMDAgbmJsb2NrcyAweDY2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoNDY0KTogdGlkOiBjYWQ2ZDM1OSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NjUpOiB0aWQ6IGNhZDZkMzU5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2Nik6IHRpZDogY2FkNmQzNTkgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTIg IGxvbmdlc3Q6IDE5NDkyMjUyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiBj YWQ2ZDM1OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ2OCk6IHRpZDogY2FkNmQzNTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY5KTog dGlkOiBjYWQ2ZDM1OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NzApOiB0aWQ6IGNhZDZkMzU5ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3 MSk6IHRpZDogY2FkNmQzNTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogNWQzMjk3Y2UgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDczKTogdGlkOiA1ZDMyOTdjZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiA1ZDMyOTdjZSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDc1KTogdGlkOiA1ZDMyOTdjZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDY1NDAwIG5ibG9ja3MgMHg2NyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgyCk9wZXIgKDQ3Nik6IHRpZDogNWQzMjk3Y2UgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDc3KTogdGlkOiA1ZDMyOTdjZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NzgpOiB0aWQ6IDVkMzI5N2NlICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjUxICBs b25nZXN0OiAxOTQ5MjI1MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogNWQz Mjk3Y2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0ODApOiB0aWQ6IDVkMzI5N2NlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRp ZDogNWQzMjk3Y2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDgyKTogdGlkOiA1ZDMyOTdjZSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMp OiB0aWQ6IDVkMzI5N2NlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDhmN2JhNDQ1ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 NSk6IHRpZDogOGY3YmE0NDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogOGY3YmE0NDUgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ4Nyk6IHRpZDogOGY3YmE0NDUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg2NjgwMCBuYmxvY2tzIDB4NjggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICg0ODgpOiB0aWQ6IDhmN2JhNDQ1ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ4OSk6IHRpZDogOGY3YmE0NDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDkwKTogdGlkOiA4ZjdiYTQ0NSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCkFHRiBCdWZmZXI6IFhBR0YgIE91dCBv ZiBzcGFjZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEs NjE2CXRhaWxfbHNuOiAxLDQ3NQpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZz ZXQ6IDU1MgkJbnVtIG9wczogNDg5CnV1aWQ6IGIwYzBmMTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3 NGEyOTU2MyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogOGY3YmE0NDUgIGxlbjogNzIgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVORCAKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0 IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRpZDogOGY3YmE0NDUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyKTogdGlkOiA4ZjdiYTQ0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzKTogdGlkOiA4ZjdiYTQ0NSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0KTogdGlkOiA4ZjdiYTQ0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1KTogdGlkOiA4ZjdiYTQ0NSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNik6IHRpZDogYWY0MmMyZTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNyk6IHRpZDogYWY0MmMyZTUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDgpOiB0aWQ6IGFmNDJjMmU1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg5KTogdGlkOiBhZjQy YzJlNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY3YzAwIG5ibG9ja3Mg MHg2OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEwKTogdGlkOiBh ZjQyYzJlNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogYWY0MmMyZTUgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTIpOiB0aWQ6IGFmNDJjMmU1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ5ICBsb25nZXN0OiAxOTQ5MjI0OQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzKTogdGlkOiBhZjQyYzJlNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0KTogdGlkOiBhZjQyYzJlNSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNSk6IHRpZDogYWY0MmMyZTUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTYpOiB0aWQ6IGFmNDJjMmU1 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiBhZjQyYzJlNSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0aWQ6 IGVkY2NkYWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IGVkY2NkYWQgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwKTogdGlkOiBlZGNj ZGFkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMSk6IHRpZDogZWRjY2RhZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY5MDAwIG5ibG9ja3MgMHg2YiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIyKTogdGlkOiBlZGNjZGFkICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiBlZGNjZGFkICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0KTogdGlkOiBlZGNjZGFkICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjQ3ICBsb25nZXN0OiAxOTQ5MjI0NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlk OiBlZGNjZGFkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjYpOiB0aWQ6IGVkY2NkYWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0 aWQ6IGVkY2NkYWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjgpOiB0aWQ6IGVkY2NkYWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0 aWQ6IGVkY2NkYWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiA1YTJmNjY4YyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRp ZDogNWEyZjY2OGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyKTogdGlkOiA1YTJmNjY4YyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzMpOiB0aWQ6IDVhMmY2NjhjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NmE0MDAgbmJsb2NrcyAweDZjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIK T3BlciAoMzQpOiB0aWQ6IDVhMmY2NjhjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTog dGlkOiA1YTJmNjY4YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgzNik6IHRpZDogNWEyZjY2OGMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDYgIGxvbmdlc3Q6IDE5NDky MjQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6IDVhMmY2NjhjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgp OiB0aWQ6IDVhMmY2NjhjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiA1YTJmNjY4YyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MCk6IHRpZDogNWEyZjY2OGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IDVhMmY2NjhjICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0Mik6IHRpZDogODdkYTk0MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRpZDogODdkYTk0MCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQpOiB0aWQ6IDg3ZGE5NDAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1KTogdGlkOiA4N2Rh OTQwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NmI4MDAgbmJsb2NrcyAw eDZkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDYpOiB0aWQ6IDg3 ZGE5NDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDg3ZGE5NDAgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDgp OiB0aWQ6IDg3ZGE5NDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyNDUgIGxvbmdlc3Q6IDE5NDkyMjQ1Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDkpOiB0aWQ6IDg3ZGE5NDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1MCk6IHRpZDogODdkYTk0MCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1MSk6IHRpZDogODdkYTk0MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1Mik6IHRpZDogODdkYTk0MCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1Myk6IHRpZDogODdkYTk0MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQpOiB0aWQ6IGY1NjE2OWUx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDU1KTogdGlkOiBmNTYxNjllMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IGY1NjE2OWUxICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg1Nyk6IHRpZDogZjU2MTY5ZTEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg2Y2MwMCBuYmxvY2tzIDB4NmUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICg1OCk6IHRpZDogZjU2MTY5ZTEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNTkpOiB0aWQ6IGY1NjE2OWUxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDYwKTogdGlkOiBmNTYxNjllMSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0 NCAgbG9uZ2VzdDogMTk0OTIyNDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDog ZjU2MTY5ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg2Mik6IHRpZDogZjU2MTY5ZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjMpOiB0 aWQ6IGY1NjE2OWUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDY0KTogdGlkOiBmNTYxNjllMSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NSk6 IHRpZDogZjU2MTY5ZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlkOiAyN2JmYjdiZCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6 IHRpZDogMjdiZmI3YmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY4KTogdGlkOiAyN2JmYjdiZCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNjkpOiB0aWQ6IDI3YmZiN2JkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NmUwMDAgbmJsb2NrcyAweDcwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoNzApOiB0aWQ6IDI3YmZiN2JkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcx KTogdGlkOiAyN2JmYjdiZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg3Mik6IHRpZDogMjdiZmI3YmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDIgIGxvbmdlc3Q6IDE5 NDkyMjQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IDI3YmZiN2JkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NzQpOiB0aWQ6IDI3YmZiN2JkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiAyN2JmYjdiZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg3Nik6IHRpZDogMjdiZmI3YmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDI3YmZiN2Jk ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3OCk6IHRpZDogNzc2Zjg4MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogNzc2Zjg4MyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODApOiB0aWQ6IDc3NmY4ODMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDgxKTogdGlkOiA3 NzZmODgzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NmY0MDAgbmJsb2Nr cyAweDcxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoODIpOiB0aWQ6 IDc3NmY4ODMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6IDc3NmY4ODMgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo ODQpOiB0aWQ6IDc3NmY4ODMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNDEgIGxvbmdlc3Q6IDE5NDkyMjQxCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoODUpOiB0aWQ6IDc3NmY4ODMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Nik6IHRpZDogNzc2Zjg4MyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogNzc2Zjg4MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OCk6IHRpZDogNzc2Zjg4MyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4OSk6IHRpZDogNzc2Zjg4MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTApOiB0aWQ6IGRjNjkz N2YwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDkxKTogdGlkOiBkYzY5MzdmMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTIpOiB0aWQ6IGRjNjkzN2Yw ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg5Myk6IHRpZDogZGM2OTM3ZjAgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3MDgwMCBuYmxvY2tzIDB4NzIgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg5NCk6IHRpZDogZGM2OTM3ZjAgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoOTUpOiB0aWQ6IGRjNjkzN2YwICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDk2KTogdGlkOiBkYzY5MzdmMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI0MCAgbG9uZ2VzdDogMTk0OTIyNDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nyk6IHRp ZDogZGM2OTM3ZjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg5OCk6IHRpZDogZGM2OTM3ZjAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTkp OiB0aWQ6IGRjNjkzN2YwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEwMCk6IHRpZDogZGM2OTM3ZjAgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTAxKTogdGlkOiBkYzY5MzdmMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlkOiA3ZjI2YmQ1ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwMyk6IHRpZDogN2YyNmJkNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA0KTogdGlkOiA3ZjI2YmQ1ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMDUpOiB0aWQ6IDdmMjZiZDUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg3MWMwMCBuYmxvY2tzIDB4NzMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MgpPcGVyICgxMDYpOiB0aWQ6IDdmMjZiZDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTA3KTogdGlkOiA3ZjI2YmQ1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwOCk6IHRpZDogN2YyNmJkNSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzOSAgbG9uZ2Vz dDogMTk0OTIyMzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IDdmMjZiZDUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxMTApOiB0aWQ6IDdmMjZiZDUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTExKTogdGlkOiA3ZjI2 YmQ1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDExMik6IHRpZDogN2YyNmJkNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTMpOiB0aWQ6IDdm MjZiZDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDExNCk6IHRpZDogYzUzNGU2ZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE1KTogdGlkOiBj NTM0ZTZlMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTE2KTogdGlkOiBjNTM0ZTZlMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTE3KTogdGlkOiBjNTM0ZTZlMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDczMDAwIG5ibG9ja3MgMHg3NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9w ZXIgKDExOCk6IHRpZDogYzUzNGU2ZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTog dGlkOiBjNTM0ZTZlMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxMjApOiB0aWQ6IGM1MzRlNmUyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjM3ICBsb25nZXN0OiAxOTQ5 MjIzNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6IHRpZDogYzUzNGU2ZTIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MjIpOiB0aWQ6IGM1MzRlNmUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMyk6IHRpZDogYzUzNGU2ZTIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTI0KTogdGlkOiBjNTM0ZTZlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjUpOiB0aWQ6IGM1MzRl NmUyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMjYpOiB0aWQ6IGViMGJlYzg5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogZWIw YmVjODkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEyOCk6IHRpZDogZWIwYmVjODkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEy OSk6IHRpZDogZWIwYmVjODkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3 NDQwMCBuYmxvY2tzIDB4NzYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVy ICgxMzApOiB0aWQ6IGViMGJlYzg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRp ZDogZWIwYmVjODkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTMyKTogdGlkOiBlYjBiZWM4OSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzNiAgbG9uZ2VzdDogMTk0OTIy MzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzMpOiB0aWQ6IGViMGJlYzg5ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM0 KTogdGlkOiBlYjBiZWM4OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzUpOiB0aWQ6IGViMGJlYzg5ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDEzNik6IHRpZDogZWIwYmVjODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM3KTogdGlkOiBlYjBiZWM4 OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTM4KTogdGlkOiA4MGZhNzBjNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IDgwZmE3 MGM1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNDApOiB0aWQ6IDgwZmE3MGM1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNDEp OiB0aWQ6IDgwZmE3MGM1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzU4 MDAgbmJsb2NrcyAweDc3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MTQyKTogdGlkOiA4MGZhNzBjNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6 IDgwZmE3MGM1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE0NCk6IHRpZDogODBmYTcwYzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzUgIGxvbmdlc3Q6IDE5NDkyMjM1 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiA4MGZhNzBjNSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0Nik6 IHRpZDogODBmYTcwYzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ3KTogdGlkOiA4MGZhNzBjNSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NDgpOiB0aWQ6IDgwZmE3MGM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDogODBmYTcwYzUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1MCk6IHRpZDogYzdjNzNlMDEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUxKTogdGlkOiBjN2M3M2Uw MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTUyKTogdGlkOiBjN2M3M2UwMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTUzKTog dGlkOiBjN2M3M2UwMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc2YzAw IG5ibG9ja3MgMHg3OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE1 NCk6IHRpZDogYzdjNzNlMDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiBj N2M3M2UwMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxNTYpOiB0aWQ6IGM3YzczZTAxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjM0ICBsb25nZXN0OiAxOTQ5MjIzNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogYzdjNzNlMDEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTgpOiB0 aWQ6IGM3YzczZTAxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OSk6IHRpZDogYzdjNzNlMDEgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTYw KTogdGlkOiBjN2M3M2UwMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IGM3YzczZTAxICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjIpOiB0aWQ6IGI4NDU4MjMyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogYjg0NTgyMzIg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE2NCk6IHRpZDogYjg0NTgyMzIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2NSk6IHRp ZDogYjg0NTgyMzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ODAwMCBu YmxvY2tzIDB4N2EgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNjYp OiB0aWQ6IGI4NDU4MjMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogYjg0 NTgyMzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTY4KTogdGlkOiBiODQ1ODIzMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzMiAgbG9uZ2VzdDogMTk0OTIyMzIKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IGI4NDU4MjMyICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcwKTogdGlk OiBiODQ1ODIzMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzEpOiB0aWQ6IGI4NDU4MjMyICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3Mik6 IHRpZDogYjg0NTgyMzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiBiODQ1ODIzMiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTc0KTogdGlkOiBkMWU1YTM0MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IGQxZTVhMzQwICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNzYpOiB0aWQ6IGQxZTVhMzQwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzcpOiB0aWQ6 IGQxZTVhMzQwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Nzk0MDAgbmJs b2NrcyAweDdiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTc4KTog dGlkOiBkMWU1YTM0MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IGQxZTVh MzQwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE4MCk6IHRpZDogZDFlNWEzNDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzEgIGxvbmdlc3Q6IDE5NDkyMjMxCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiBkMWU1YTM0MCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4Mik6IHRpZDog ZDFlNWEzNDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgzKTogdGlkOiBkMWU1YTM0MCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODQpOiB0 aWQ6IGQxZTVhMzQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogZDFlNWEzNDAgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE4Nik6IHRpZDogMjU4OTc0ZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiAyNTg5NzRlYyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTg4KTogdGlkOiAyNTg5NzRlYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg5KTogdGlkOiAy NTg5NzRlYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdhODAwIG5ibG9j a3MgMHg3YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE5MCk6IHRp ZDogMjU4OTc0ZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiAyNTg5NzRl YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxOTIpOiB0aWQ6IDI1ODk3NGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjMwICBsb25nZXN0OiAxOTQ5MjIzMAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogMjU4OTc0ZWMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTQpOiB0aWQ6IDI1 ODk3NGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NSk6IHRpZDogMjU4OTc0ZWMgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk2KTogdGlk OiAyNTg5NzRlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IDI1ODk3NGVjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOTgpOiB0aWQ6IGI0ODYxNGFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogYjQ4NjE0YWIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIwMCk6IHRpZDogYjQ4NjE0YWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIwMSk6IHRpZDogYjQ4 NjE0YWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3YmMwMCBuYmxvY2tz IDB4N2QgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMDIpOiB0aWQ6 IGI0ODYxNGFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6IHRpZDogYjQ4NjE0YWIg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjA0KTogdGlkOiBiNDg2MTRhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyOSAgbG9uZ2VzdDogMTk0OTIyMjkKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDUpOiB0aWQ6IGI0ODYxNGFiICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjA2KTogdGlkOiBiNDg2 MTRhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDcpOiB0aWQ6IGI0ODYxNGFiICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwOCk6IHRpZDog YjQ4NjE0YWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiBiNDg2MTRhYiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjEwKTogdGlkOiAzNjQ3NjkyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogMzY0NzY5MiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEy KTogdGlkOiAzNjQ3NjkyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMTMpOiB0aWQ6IDM2NDc2OTIg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ZDAwMCBuYmxvY2tzIDB4N2Yg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMTQpOiB0aWQ6IDM2NDc2 OTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1KTogdGlkOiAzNjQ3NjkyICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxNik6 IHRpZDogMzY0NzY5MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjIyNyAgbG9uZ2VzdDogMTk0OTIyMjcKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMTcpOiB0aWQ6IDM2NDc2OTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTgpOiB0aWQ6IDM2NDc2OTIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjE5KTogdGlkOiAzNjQ3NjkyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMCk6IHRpZDogMzY0NzY5MiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMjEpOiB0aWQ6IDM2NDc2OTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6IHRpZDogNWQz MDg1ZTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiA1ZDMwODVlOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI0KTogdGlkOiA1ZDMw ODVlOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjI1KTogdGlkOiA1ZDMwODVlOCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdlNDAwIG5ibG9ja3MgMHg4MCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIyNik6IHRpZDogNWQzMDg1ZTggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTogdGlkOiA1ZDMwODVlOCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjgpOiB0aWQ6IDVk MzA4NWU4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjI2ICBsb25nZXN0OiAxOTQ5MjIyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyOSk6IHRpZDogNWQzMDg1ZTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzApOiB0aWQ6IDVkMzA4NWU4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzMSk6IHRpZDogNWQzMDg1ZTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMyKTogdGlkOiA1ZDMwODVlOCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMzMpOiB0aWQ6IDVkMzA4NWU4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0aWQ6IDQzM2Jm OGUyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogNDMzYmY4ZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNik6IHRpZDogNDMzYmY4 ZTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzNyk6IHRpZDogNDMzYmY4ZTIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3ZjgwMCBuYmxvY2tzIDB4ODEgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMzgpOiB0aWQ6IDQzM2JmOGUyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDogNDMzYmY4ZTIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQwKTogdGlkOiA0MzNi ZjhlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjIyNSAgbG9uZ2VzdDogMTk0OTIyMjUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDEpOiB0aWQ6IDQzM2JmOGUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQyKTogdGlkOiA0MzNiZjhlMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDMpOiB0aWQ6IDQzM2JmOGUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0NCk6IHRpZDogNDMzYmY4ZTIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjQ1KTogdGlkOiA0MzNiZjhlMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlkOiA0ZTZhMDYx YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDcpOiB0aWQ6IDRlNmEwNjFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDgpOiB0aWQ6IDRlNmEwNjFi ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDkpOiB0aWQ6IDRlNmEwNjFiICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODBjMDAgbmJsb2NrcyAweDgyIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjUwKTogdGlkOiA0ZTZhMDYxYiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IDRlNmEwNjFiICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1Mik6IHRpZDogNGU2YTA2 MWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyMjQgIGxvbmdlc3Q6IDE5NDkyMjI0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUz KTogdGlkOiA0ZTZhMDYxYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI1NCk6IHRpZDogNGU2YTA2MWIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjU1KTogdGlkOiA0ZTZhMDYxYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTYpOiB0aWQ6IDRlNmEwNjFiICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1Nyk6IHRpZDogNGU2YTA2MWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDogZmU4Y2ZiMGUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU5KTogdGlkOiBmZThjZmIwZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYwKTogdGlkOiBmZThjZmIwZSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjYxKTogdGlkOiBmZThjZmIwZSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDgyMDAwIG5ibG9ja3MgMHg4NCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI2Mik6IHRpZDogZmU4Y2ZiMGUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiBmZThjZmIwZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjQpOiB0aWQ6IGZlOGNmYjBl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjIyICBsb25nZXN0OiAxOTQ5MjIyMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6 IHRpZDogZmU4Y2ZiMGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNjYpOiB0aWQ6IGZlOGNmYjBlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2Nyk6IHRpZDogZmU4Y2ZiMGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY4KTogdGlkOiBmZThjZmIwZSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjkpOiB0aWQ6IGZlOGNmYjBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IGFiZWMwZDRmICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI3MSk6IHRpZDogYWJlYzBkNGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Mik6IHRpZDogYWJlYzBkNGYgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI3Myk6IHRpZDogYWJlYzBkNGYgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg4MzQwMCBuYmxvY2tzIDB4ODUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNzQpOiB0aWQ6IGFiZWMwZDRmICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogYWJlYzBkNGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc2KTogdGlkOiBhYmVjMGQ0ZiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjIyMSAgbG9uZ2VzdDogMTk0OTIyMjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzcpOiB0 aWQ6IGFiZWMwZDRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjc4KTogdGlkOiBhYmVjMGQ0ZiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzkpOiB0aWQ6IGFiZWMwZDRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI4MCk6IHRpZDogYWJlYzBkNGYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjgxKTogdGlkOiBhYmVjMGQ0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiBmMDQxNGM4YyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODMpOiB0aWQ6IGYwNDE0YzhjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODQpOiB0aWQ6IGYwNDE0YzhjICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyODUpOiB0aWQ6IGYwNDE0YzhjICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ODQ4MDAgbmJsb2NrcyAweDg2IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMjg2KTogdGlkOiBmMDQxNGM4YyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODcpOiB0aWQ6IGYwNDE0YzhjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4OCk6IHRpZDogZjA0MTRjOGMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy MjAgIGxvbmdlc3Q6IDE5NDkyMjIwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5KTogdGlk OiBmMDQxNGM4YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI5MCk6IHRpZDogZjA0MTRjOGMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkx KTogdGlkOiBmMDQxNGM4YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyOTIpOiB0aWQ6IGYwNDE0YzhjICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5Myk6IHRpZDogZjA0MTRjOGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NCk6IHRpZDogYWVjODAzM2UgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjk1KTogdGlkOiBhZWM4MDMzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk2KTogdGlkOiBhZWM4MDMzZSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjk3KTogdGlkOiBhZWM4MDMzZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDg1YzAwIG5ibG9ja3MgMHg4NyBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDI5OCk6IHRpZDogYWVjODAzM2UgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjk5KTogdGlkOiBhZWM4MDMzZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDApOiB0aWQ6IGFlYzgwMzNlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjE5 ICBsb25nZXN0OiAxOTQ5MjIxOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6IHRpZDog YWVjODAzM2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMDIpOiB0aWQ6IGFlYzgwMzNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMyk6 IHRpZDogYWVjODAzM2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzA0KTogdGlkOiBhZWM4MDMzZSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDUpOiB0aWQ6IGFlYzgwMzNlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDYpOiB0aWQ6IGMxN2FjZjY0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwNyk6IHRpZDogYzE3YWNmNjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOCk6IHRpZDogYzE3YWNmNjQgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDMwOSk6IHRpZDogYzE3YWNmNjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg4NzAwMCBuYmxvY2tzIDB4ODkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICgzMTApOiB0aWQ6IGMxN2FjZjY0ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxMSk6IHRpZDogYzE3YWNmNjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzEyKTogdGlkOiBjMTdhY2Y2NCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxNyAg bG9uZ2VzdDogMTk0OTIyMTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0aWQ6IGMx N2FjZjY0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzE0KTogdGlkOiBjMTdhY2Y2NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTUpOiB0 aWQ6IGMxN2FjZjY0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDMxNik6IHRpZDogYzE3YWNmNjQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE3 KTogdGlkOiBjMTdhY2Y2NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE4KTogdGlkOiBkOTc5ZDEzZCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTkpOiB0aWQ6IGQ5NzlkMTNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjApOiB0aWQ6IGQ5NzlkMTNkICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzMjEpOiB0aWQ6IGQ5NzlkMTNkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ODg0MDAgbmJsb2NrcyAweDhhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoMzIyKTogdGlkOiBkOTc5ZDEzZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjMpOiB0aWQ6IGQ5NzlkMTNkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyNCk6IHRpZDogZDk3OWQxM2QgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMTYgIGxv bmdlc3Q6IDE5NDkyMjE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlkOiBkOTc5 ZDEzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMyNik6IHRpZDogZDk3OWQxM2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI3KTogdGlk OiBkOTc5ZDEzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMjgpOiB0aWQ6IGQ5NzlkMTNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOSk6 IHRpZDogZDk3OWQxM2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMCk6IHRpZDogMWVjN2EzMjUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMx KTogdGlkOiAxZWM3YTMyNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMyKTogdGlkOiAxZWM3YTMyNSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzMzKTogdGlkOiAxZWM3YTMyNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDg5ODAwIG5ibG9ja3MgMHg4YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDMzNCk6IHRpZDogMWVjN2EzMjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM1KTogdGlkOiAxZWM3YTMyNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzYpOiB0aWQ6IDFlYzdhMzI1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjE1ICBsb25n ZXN0OiAxOTQ5MjIxNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDogMWVjN2Ez MjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMzgpOiB0aWQ6IDFlYzdhMzI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOSk6IHRpZDog MWVjN2EzMjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzQwKTogdGlkOiAxZWM3YTMyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0 aWQ6IDFlYzdhMzI1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDIpOiB0aWQ6IDNhZjU4ZjhiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Myk6 IHRpZDogM2FmNThmOGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NCk6IHRpZDogM2FmNThmOGIgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDM0NSk6IHRpZDogM2FmNThmOGIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg4YWMwMCBuYmxvY2tzIDB4OGMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgzNDYpOiB0aWQ6IDNhZjU4ZjhiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0Nyk6IHRpZDogM2FmNThmOGIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ4KTogdGlkOiAzYWY1OGY4YiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxNCAgbG9uZ2Vz dDogMTk0OTIyMTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IDNhZjU4Zjhi ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzUwKTogdGlkOiAzYWY1OGY4YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTEpOiB0aWQ6IDNh ZjU4ZjhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1Mik6IHRpZDogM2FmNThmOGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTogdGlk OiAzYWY1OGY4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzU0KTogdGlkOiBjNWI3MjJiZSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTUpOiB0 aWQ6IGM1YjcyMmJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTYpOiB0aWQ6IGM1YjcyMmJlICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzNTcpOiB0aWQ6IGM1YjcyMmJlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4OGMwMDAgbmJsb2NrcyAweDhlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMzU4KTogdGlkOiBjNWI3MjJiZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTkpOiB0aWQ6IGM1YjcyMmJlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM2MCk6IHRpZDogYzViNzIyYmUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMTIgIGxvbmdlc3Q6 IDE5NDkyMjEyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiBjNWI3MjJiZSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM2Mik6IHRpZDogYzViNzIyYmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYzKTogdGlkOiBjNWI3 MjJiZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNjQpOiB0aWQ6IGM1YjcyMmJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRpZDog YzViNzIyYmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2Nik6IHRpZDogYzY1MTc4NGMgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY3KTogdGlk OiBjNjUxNzg0YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzY4KTogdGlkOiBjNjUxNzg0YyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzY5KTogdGlkOiBjNjUxNzg0YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDhkNDAwIG5ibG9ja3MgMHg4ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDM3MCk6IHRpZDogYzY1MTc4NGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcx KTogdGlkOiBjNjUxNzg0YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzNzIpOiB0aWQ6IGM2NTE3ODRjICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjExICBsb25nZXN0OiAx OTQ5MjIxMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogYzY1MTc4NGMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzNzQpOiB0aWQ6IGM2NTE3ODRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NSk6IHRpZDogYzY1MTc4 NGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzc2KTogdGlkOiBjNjUxNzg0YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IGM2 NTE3ODRjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzgpOiB0aWQ6IDc4YzE5NzdiICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDog NzhjMTk3N2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4MCk6IHRpZDogNzhjMTk3N2IgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDM4MSk6IHRpZDogNzhjMTk3N2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg4ZTgwMCBuYmxvY2tzIDB4OTAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICgzODIpOiB0aWQ6IDc4YzE5NzdiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6 IHRpZDogNzhjMTk3N2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzg0KTogdGlkOiA3OGMxOTc3YiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxMCAgbG9uZ2VzdDogMTk0 OTIyMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IDc4YzE5NzdiICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo Mzg2KTogdGlkOiA3OGMxOTc3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODcpOiB0aWQ6IDc4YzE5Nzdi ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM4OCk6IHRpZDogNzhjMTk3N2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiA3OGMx OTc3YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzkwKTogdGlkOiBjYmNmZjBmNCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTEpOiB0aWQ6IGNi Y2ZmMGY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTIpOiB0aWQ6IGNiY2ZmMGY0ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz OTMpOiB0aWQ6IGNiY2ZmMGY0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 OGZjMDAgbmJsb2NrcyAweDkxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoMzk0KTogdGlkOiBjYmNmZjBmNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0 aWQ6IGNiY2ZmMGY0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDM5Nik6IHRpZDogY2JjZmYwZjQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDkgIGxvbmdlc3Q6IDE5NDky MjA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiBjYmNmZjBmNCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5 OCk6IHRpZDogY2JjZmYwZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk5KTogdGlkOiBjYmNmZjBmNCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MDApOiB0aWQ6IGNiY2ZmMGY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogY2JjZmYw ZjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwMik6IHRpZDogMzY4OTMxOWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiAzNjg5 MzE5YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDA0KTogdGlkOiAzNjg5MzE5YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDA1 KTogdGlkOiAzNjg5MzE5YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDkx MDAwIG5ibG9ja3MgMHg5MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDQwNik6IHRpZDogMzY4OTMxOWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlk OiAzNjg5MzE5YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0MDgpOiB0aWQ6IDM2ODkzMTljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA3ICBsb25nZXN0OiAxOTQ5MjIw NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogMzY4OTMxOWMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTAp OiB0aWQ6IDM2ODkzMTljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMSk6IHRpZDogMzY4OTMxOWMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDEyKTogdGlkOiAzNjg5MzE5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0aWQ6IDM2ODkzMTlj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTQpOiB0aWQ6IDZiZTA1NGFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6IHRpZDogNmJlMDU0 YWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQxNik6IHRpZDogNmJlMDU0YWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxNyk6 IHRpZDogNmJlMDU0YWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5MjQw MCBuYmxvY2tzIDB4OTQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0 MTgpOiB0aWQ6IDZiZTA1NGFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDog NmJlMDU0YWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDIwKTogdGlkOiA2YmUwNTRhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNiAgbG9uZ2VzdDogMTk0OTIyMDYK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IDZiZTA1NGFiICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIyKTog dGlkOiA2YmUwNTRhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjMpOiB0aWQ6IDZiZTA1NGFiICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQy NCk6IHRpZDogNmJlMDU0YWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlkOiA2YmUwNTRhYiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDI2KTogdGlkOiBlM2Y4NDY3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNyk6IHRpZDogZTNmODQ2NyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDI4KTogdGlkOiBlM2Y4NDY3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjkpOiB0aWQ6 IGUzZjg0NjcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5MzgwMCBuYmxv Y2tzIDB4OTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MzApOiB0 aWQ6IGUzZjg0NjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiBlM2Y4NDY3 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQzMik6IHRpZDogZTNmODQ2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNSAgbG9uZ2VzdDogMTk0OTIyMDUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6IGUzZjg0NjcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzQpOiB0aWQ6IGUzZjg0 NjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiBlM2Y4NDY3ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzNik6IHRpZDogZTNm ODQ2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6IGUzZjg0NjcgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOCk6 IHRpZDogNTQwMTRjNDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlkOiA1NDAxNGM0OCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQwKTog dGlkOiA1NDAxNGM0OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDQxKTogdGlkOiA1NDAxNGM0OCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDk0YzAwIG5ibG9ja3MgMHg5NiBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ0Mik6IHRpZDogNTQwMTRj NDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiA1NDAxNGM0OCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NDQp OiB0aWQ6IDU0MDE0YzQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjA0ICBsb25nZXN0OiAxOTQ5MjIwNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ0NSk6IHRpZDogNTQwMTRjNDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDYpOiB0aWQ6IDU0MDE0YzQ4ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogNTQwMTRjNDggIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ4KTogdGlkOiA1NDAxNGM0 OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IDU0MDE0YzQ4ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTApOiB0 aWQ6IDMyOGY4ZGQ4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogMzI4ZjhkZDggIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Mik6IHRp ZDogMzI4ZjhkZDggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1Myk6IHRpZDogMzI4ZjhkZDggIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5NjAwMCBuYmxvY2tzIDB4OTggZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0NTQpOiB0aWQ6IDMyOGY4ZGQ4 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6IHRpZDogMzI4ZjhkZDggIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDU2KTog dGlkOiAzMjhmOGRkOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjIwMiAgbG9uZ2VzdDogMTk0OTIyMDIKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NTcpOiB0aWQ6IDMyOGY4ZGQ4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU4KTogdGlkOiAzMjhmOGRkOCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTkpOiB0aWQ6IDMyOGY4ZGQ4ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2MCk6IHRpZDogMzI4ZjhkZDgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiAzMjhmOGRkOCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYyKTogdGlk OiA3MTkzODJmOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IDcxOTM4MmY4ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjQpOiB0aWQ6 IDcxOTM4MmY4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjUpOiB0aWQ6IDcxOTM4MmY4ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OTc0MDAgbmJsb2NrcyAweDk5IGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDY2KTogdGlkOiA3MTkzODJmOCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IDcxOTM4MmY4ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2OCk6IHRp ZDogNzE5MzgyZjggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyMDEgIGxvbmdlc3Q6IDE5NDkyMjAxCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDY5KTogdGlkOiA3MTkzODJmOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3MCk6IHRpZDogNzE5MzgyZjggIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDcxKTogdGlkOiA3MTkzODJmOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzIpOiB0aWQ6IDcxOTM4MmY4ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogNzE5MzgyZjggIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NCk6IHRpZDog NTIzZjQzNzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiA1MjNmNDM3NSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc2KTogdGlkOiA1 MjNmNDM3NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDc3KTogdGlkOiA1MjNmNDM3NSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDk4ODAwIG5ibG9ja3MgMHg5YSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ3OCk6IHRpZDogNTIzZjQzNzUgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlkOiA1MjNmNDM3NSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0ODApOiB0aWQ6 IDUyM2Y0Mzc1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjAwICBsb25nZXN0OiAxOTQ5MjIwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ4MSk6IHRpZDogNTIzZjQzNzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODIpOiB0aWQ6IDUyM2Y0Mzc1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ4Myk6IHRpZDogNTIzZjQzNzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDg0KTogdGlkOiA1MjNmNDM3NSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDUyM2Y0Mzc1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODYpOiB0aWQ6IGQ2 NWE2YjUxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRpZDogZDY1YTZiNTEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4OCk6IHRpZDogZDY1 YTZiNTEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNp b246IDIJCWxzbjogMSw2ODAJdGFpbF9sc246IDEsNDc1Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAz MjI1NglwcmV2IG9mZnNldDogNjE2CQludW0gb3BzOiA0ODgKdXVpZDogYjBjMGYxOTktMDIyOS00 ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6 ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiBkNjVhNmI1MSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMZWZ0IG92ZXIgcmVnaW9uIGZyb20g c3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBkNjVhNmI1 MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMZWZ0IG92ZXIgcmVnaW9u IGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiBk NjVhNmI1MSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzKTogdGlkOiBkNjVhNmI1MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5OSAgbG9uZ2VzdDogMTk0OTIxOTkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiBkNjVhNmI1MSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUpOiB0aWQ6IGQ2 NWE2YjUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IGQ2NWE2YjUxICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcpOiB0aWQ6IGQ2 NWE2YjUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgpOiB0aWQ6IGQ2NWE2YjUxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTog dGlkOiBkY2Y1ZjQzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMCk6IHRpZDogZGNmNWY0MzQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlk OiBkY2Y1ZjQzNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTIpOiB0aWQ6IGRjZjVmNDM0ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWIwMDAgbmJsb2NrcyAweDlkIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTMpOiB0aWQ6IGRjZjVmNDM0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0KTogdGlkOiBkY2Y1ZjQzNCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNSk6IHRpZDog ZGNmNWY0MzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxOTcgIGxvbmdlc3Q6IDE5NDkyMTk3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTYpOiB0aWQ6IGRjZjVmNDM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcpOiB0aWQ6IGRjZjVmNDM0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4KTogdGlkOiBkY2Y1ZjQzNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOSk6IHRpZDogZGNmNWY0MzQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjApOiB0aWQ6IGRjZjVmNDM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogZTE1YTgzNzMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjIpOiB0aWQ6IGUxNWE4MzczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogZTE1YTgzNzMgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI0KTogdGlkOiBlMTVhODM3MyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDljNDAwIG5ibG9ja3MgMHg5ZSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI1KTogdGlkOiBlMTVhODM3MyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNik6IHRpZDogZTE1YTgzNzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcpOiB0aWQ6IGUxNWE4MzczICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTk2 ICBsb25nZXN0OiAxOTQ5MjE5NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiBl MTVhODM3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDI5KTogdGlkOiBlMTVhODM3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMCk6IHRp ZDogZTE1YTgzNzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzEpOiB0aWQ6IGUxNWE4MzczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyKTog dGlkOiBlMTVhODM3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0aWQ6IDRiNzIyYzEwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTog dGlkOiA0YjcyMmMxMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IDRiNzIyYzEwICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzNik6IHRpZDogNGI3MjJjMTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg5ZDgwMCBuYmxvY2tzIDB4OWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MgpPcGVyICgzNyk6IHRpZDogNGI3MjJjMTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgp OiB0aWQ6IDRiNzIyYzEwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDM5KTogdGlkOiA0YjcyMmMxMCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5NSAgbG9uZ2VzdDogMTk0 OTIxOTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MCk6IHRpZDogNGI3MjJjMTAgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 MSk6IHRpZDogNGI3MjJjMTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDRiNzIyYzEwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQzKTogdGlkOiA0YjcyMmMxMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NCk6IHRpZDogNGI3MjJjMTAg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ1KTogdGlkOiBiZDUyZDA1YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nik6IHRpZDogYmQ1MmQwNWIg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ3KTogdGlkOiBiZDUyZDA1YiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDgpOiB0aWQ6 IGJkNTJkMDViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWVjMDAgbmJs b2NrcyAweGEwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDkpOiB0 aWQ6IGJkNTJkMDViICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTogdGlkOiBiZDUyZDA1 YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg1MSk6IHRpZDogYmQ1MmQwNWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTQgIGxvbmdlc3Q6IDE5NDkyMTk0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNTIpOiB0aWQ6IGJkNTJkMDViICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTMpOiB0aWQ6IGJkNTJk MDViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTogdGlkOiBiZDUyZDA1YiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1NSk6IHRpZDogYmQ1 MmQwNWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IGJkNTJkMDViICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nyk6 IHRpZDogZDBjNjhjNTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTgpOiB0aWQ6IGQwYzY4YzUzICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRp ZDogZDBjNjhjNTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDYwKTogdGlkOiBkMGM2OGM1MyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGEwMDAwIG5ibG9ja3MgMHhhMiBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDYxKTogdGlkOiBkMGM2OGM1MyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogZDBjNjhjNTMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjMpOiB0aWQ6 IGQwYzY4YzUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTkyICBsb25nZXN0OiAxOTQ5MjE5MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDY0KTogdGlkOiBkMGM2OGM1MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDY1KTogdGlkOiBkMGM2OGM1MyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg2Nik6IHRpZDogZDBjNjhjNTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjcpOiB0aWQ6IGQwYzY4YzUzICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDY4KTogdGlkOiBkMGM2OGM1MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0aWQ6IGMxNTI1YjM5 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcwKTogdGlkOiBjMTUyNWIzOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IGMxNTI1YjM5ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg3Mik6IHRpZDogYzE1MjViMzkgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhhMTQwMCBuYmxvY2tzIDB4YTMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICg3Myk6IHRpZDogYzE1MjViMzkgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNzQpOiB0aWQ6IGMxNTI1YjM5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc1KTogdGlkOiBjMTUyNWIzOSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5 MSAgbG9uZ2VzdDogMTk0OTIxOTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nik6IHRpZDog YzE1MjViMzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg3Nyk6IHRpZDogYzE1MjViMzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzgpOiB0 aWQ6IGMxNTI1YjM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDc5KTogdGlkOiBjMTUyNWIzOSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MCk6 IHRpZDogYzE1MjViMzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTogdGlkOiA3ZTFlZDAxYiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Mik6 IHRpZDogN2UxZWQwMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiA3ZTFlZDAxYiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoODQpOiB0aWQ6IDdlMWVkMDFiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YTI4MDAgbmJsb2NrcyAweGE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoODUpOiB0aWQ6IDdlMWVkMDFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg2 KTogdGlkOiA3ZTFlZDAxYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg4Nyk6IHRpZDogN2UxZWQwMWIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTAgIGxvbmdlc3Q6IDE5 NDkyMTkwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODgpOiB0aWQ6IDdlMWVkMDFiICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo ODkpOiB0aWQ6IDdlMWVkMDFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkwKTogdGlkOiA3ZTFlZDAxYiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg5MSk6IHRpZDogN2UxZWQwMWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTIpOiB0aWQ6IDdlMWVkMDFi ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg5Myk6IHRpZDogNzYwZjlkZGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTQpOiB0aWQ6IDc2MGY5ZGRk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg5NSk6IHRpZDogNzYwZjlkZGQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDk2KTogdGlk OiA3NjBmOWRkZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGEzYzAwIG5i bG9ja3MgMHhhNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDk3KTog dGlkOiA3NjBmOWRkZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDogNzYwZjlk ZGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoOTkpOiB0aWQ6IDc2MGY5ZGRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg5ICBsb25nZXN0OiAxOTQ5MjE4OQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogNzYwZjlkZGQgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDEpOiB0aWQ6IDc2 MGY5ZGRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMik6IHRpZDogNzYwZjlkZGQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTAzKTogdGlk OiA3NjBmOWRkZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDQpOiB0aWQ6IDc2MGY5ZGRkICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMDUpOiB0aWQ6IDQ5ZGE0ZmVkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNik6IHRpZDogNDlkYTRmZWQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwNyk6IHRpZDogNDlkYTRmZWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEwOCk6IHRpZDogNDlk YTRmZWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhNTAwMCBuYmxvY2tz IDB4YTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMDkpOiB0aWQ6 IDQ5ZGE0ZmVkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMCk6IHRpZDogNDlkYTRmZWQg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTExKTogdGlkOiA0OWRhNGZlZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NyAgbG9uZ2VzdDogMTk0OTIxODcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMTIpOiB0aWQ6IDQ5ZGE0ZmVkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEzKTogdGlkOiA0OWRh NGZlZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IDQ5ZGE0ZmVkICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExNSk6IHRpZDog NDlkYTRmZWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE2KTogdGlkOiA0OWRhNGZlZCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTE3KTogdGlkOiA2NzI3MmE4NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTgpOiB0aWQ6IDY3MjcyYTg3ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTkpOiB0aWQ6IDY3MjcyYTg3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMjApOiB0aWQ6IDY3Mjcy YTg3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YTY0MDAgbmJsb2NrcyAw eGE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTIxKTogdGlkOiA2 NzI3MmE4NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjIpOiB0aWQ6IDY3MjcyYTg3ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDEyMyk6IHRpZDogNjcyNzJhODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxODYgIGxvbmdlc3Q6IDE5NDkyMTg2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTI0KTogdGlkOiA2NzI3MmE4NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyNSk6IHRpZDogNjcyNzJh ODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTogdGlkOiA2NzI3MmE4NyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjcpOiB0aWQ6IDY3 MjcyYTg3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOCk6IHRpZDogNjcyNzJhODcgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEy OSk6IHRpZDogYmQ4YzQ5ODIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMwKTogdGlkOiBiZDhjNDk4MiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMx KTogdGlkOiBiZDhjNDk4MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTMyKTogdGlkOiBiZDhjNDk4 MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGE3ODAwIG5ibG9ja3MgMHhh OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEzMyk6IHRpZDogYmQ4 YzQ5ODIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiBiZDhjNDk4MiAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx MzUpOiB0aWQ6IGJkOGM0OTgyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTg1ICBsb25nZXN0OiAxOTQ5MjE4NQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzNik6IHRpZDogYmQ4YzQ5ODIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzcpOiB0aWQ6IGJkOGM0OTgy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogYmQ4YzQ5ODIgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM5KTogdGlkOiBiZDhj NDk4MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDApOiB0aWQ6IGJkOGM0OTgyICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDEp OiB0aWQ6IDlmMTdlYTcyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Mik6IHRpZDogOWYxN2VhNzIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6 IHRpZDogOWYxN2VhNzIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0NCk6IHRpZDogOWYxN2VhNzIg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhOGMwMCBuYmxvY2tzIDB4YWEg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNDUpOiB0aWQ6IDlmMTdl YTcyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nik6IHRpZDogOWYxN2VhNzIgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQ3 KTogdGlkOiA5ZjE3ZWE3MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE4NCAgbG9uZ2VzdDogMTk0OTIxODQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNDgpOiB0aWQ6IDlmMTdlYTcyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ5KTogdGlkOiA5ZjE3ZWE3MiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IDlmMTdlYTcyICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1MSk6IHRpZDogOWYxN2Vh NzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTUyKTogdGlkOiA5ZjE3ZWE3MiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTog dGlkOiAxZjA3NmQ5NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTQpOiB0aWQ6IDFmMDc2ZDk0ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0 aWQ6IDFmMDc2ZDk0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTYpOiB0aWQ6IDFmMDc2ZDk0ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWEwMDAgbmJsb2NrcyAweGFjIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTU3KTogdGlkOiAxZjA3NmQ5 NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTgpOiB0aWQ6IDFmMDc2ZDk0ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1OSk6 IHRpZDogMWYwNzZkOTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxODIgIGxvbmdlc3Q6IDE5NDkyMTgyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTYwKTogdGlkOiAxZjA3NmQ5NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2MSk6IHRpZDogMWYwNzZkOTQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiAxZjA3NmQ5NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjMpOiB0aWQ6IDFmMDc2ZDk0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE2NCk6IHRpZDogMWYwNzZkOTQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRp ZDogODYzZmZlZDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTY2KTogdGlkOiA4NjNmZmVkOSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlk OiA4NjNmZmVkOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTY4KTogdGlkOiA4NjNmZmVkOSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFiNDAwIG5ibG9ja3MgMHhhZCBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE2OSk6IHRpZDogODYzZmZlZDkg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiA4NjNmZmVkOSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNzEpOiB0 aWQ6IDg2M2ZmZWQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTgxICBsb25nZXN0OiAxOTQ5MjE4MQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE3Mik6IHRpZDogODYzZmZlZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzMpOiB0aWQ6IDg2M2ZmZWQ5ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogODYzZmZlZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTc1KTogdGlkOiA4NjNmZmVkOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNzYpOiB0aWQ6IDg2M2ZmZWQ5ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzcpOiB0aWQ6 IDFmNTFlYTExICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3OCk6IHRpZDogMWY1MWVhMTEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDog MWY1MWVhMTEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4MCk6IHRpZDogMWY1MWVhMTEgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhYzgwMCBuYmxvY2tzIDB4YWUgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxODEpOiB0aWQ6IDFmNTFlYTExICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Mik6IHRpZDogMWY1MWVhMTEgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTgzKTogdGlk OiAxZjUxZWExMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjE4MCAgbG9uZ2VzdDogMTk0OTIxODAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxODQpOiB0aWQ6IDFmNTFlYTExICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTg1KTogdGlkOiAxZjUxZWExMSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxODYpOiB0aWQ6IDFmNTFlYTExICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4Nyk6IHRpZDogMWY1MWVhMTEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTg4KTogdGlkOiAxZjUxZWExMSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiA2 OTE1YjVlNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOTApOiB0aWQ6IDY5MTViNWU1ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDY5 MTViNWU1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTIpOiB0aWQ6IDY5MTViNWU1ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWRjMDAgbmJsb2NrcyAweGFmIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTkzKTogdGlkOiA2OTE1YjVlNSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQpOiB0aWQ6IDY5MTViNWU1ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5NSk6IHRpZDog NjkxNWI1ZTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxNzkgIGxvbmdlc3Q6IDE5NDkyMTc5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTk2KTogdGlkOiA2OTE1YjVlNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5Nyk6IHRpZDogNjkxNWI1ZTUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTk4KTogdGlkOiA2OTE1YjVlNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTkpOiB0aWQ6IDY5MTViNWU1ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwMCk6IHRpZDogNjkxNWI1ZTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMSk6IHRpZDogM2E4 NzE5OTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjAyKTogdGlkOiAzYTg3MTk5MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiAzYTg3 MTk5MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjA0KTogdGlkOiAzYTg3MTk5MCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFmMDAwIG5ibG9ja3MgMHhiMSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIwNSk6IHRpZDogM2E4NzE5OTAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTogdGlkOiAzYTg3MTk5MCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDcpOiB0aWQ6IDNh ODcxOTkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMTc3ICBsb25nZXN0OiAxOTQ5MjE3NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIwOCk6IHRpZDogM2E4NzE5OTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDkpOiB0aWQ6IDNhODcxOTkwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIxMCk6IHRpZDogM2E4NzE5OTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjExKTogdGlkOiAzYTg3MTk5MCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTIpOiB0aWQ6IDNhODcxOTkwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0aWQ6IDk2ZDQw MWFkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxNCk6IHRpZDogOTZkNDAxYWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogOTZkNDAx YWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxNik6IHRpZDogOTZkNDAxYWQgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMDQwMCBuYmxvY2tzIDB4YjIgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMTcpOiB0aWQ6IDk2ZDQwMWFkICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRpZDogOTZkNDAxYWQgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE5KTogdGlkOiA5NmQ0 MDFhZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjE3NiAgbG9uZ2VzdDogMTk0OTIxNzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MjApOiB0aWQ6IDk2ZDQwMWFkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIxKTogdGlkOiA5NmQ0MDFhZCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMjIpOiB0aWQ6IDk2ZDQwMWFkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMyk6IHRpZDogOTZkNDAxYWQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjI0KTogdGlkOiA5NmQ0MDFhZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlkOiBiN2NmZTA5 YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMjYpOiB0aWQ6IGI3Y2ZlMDlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IGI3Y2ZlMDlh ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyMjgpOiB0aWQ6IGI3Y2ZlMDlhICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjE4MDAgbmJsb2NrcyAweGIzIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjI5KTogdGlkOiBiN2NmZTA5YSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMzApOiB0aWQ6IGI3Y2ZlMDlhICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzMSk6IHRpZDogYjdjZmUw OWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxNzUgIGxvbmdlc3Q6IDE5NDkyMTc1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMy KTogdGlkOiBiN2NmZTA5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIzMyk6IHRpZDogYjdjZmUwOWEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjM0KTogdGlkOiBiN2NmZTA5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzUpOiB0aWQ6IGI3Y2ZlMDlhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzNik6IHRpZDogYjdjZmUwOWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6IHRpZDogODZhOWJiZmUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjM4KTogdGlkOiA4NmE5YmJmZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiA4NmE5YmJmZSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjQwKTogdGlkOiA4NmE5YmJmZSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGIyYzAwIG5ibG9ja3MgMHhiNCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI0MSk6IHRpZDogODZhOWJiZmUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjQyKTogdGlkOiA4NmE5YmJmZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDMpOiB0aWQ6IDg2YTliYmZl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTc0ICBsb25nZXN0OiAxOTQ5MjE3NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NCk6 IHRpZDogODZhOWJiZmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNDUpOiB0aWQ6IDg2YTliYmZlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI0Nik6IHRpZDogODZhOWJiZmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ3KTogdGlkOiA4NmE5YmJmZSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDgpOiB0aWQ6IDg2YTliYmZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0aWQ6IGRiZGI5NjA1ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1MCk6IHRpZDogZGJkYjk2MDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogZGJkYjk2MDUgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDI1Mik6IHRpZDogZGJkYjk2MDUgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhiNDAwMCBuYmxvY2tzIDB4YjYgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNTMpOiB0aWQ6IGRiZGI5NjA1ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI1NCk6IHRpZDogZGJkYjk2MDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjU1KTogdGlkOiBkYmRiOTYwNSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjE3MiAgbG9uZ2VzdDogMTk0OTIxNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0 aWQ6IGRiZGI5NjA1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjU3KTogdGlkOiBkYmRiOTYwNSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NTgpOiB0aWQ6IGRiZGI5NjA1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI1OSk6IHRpZDogZGJkYjk2MDUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjYwKTogdGlkOiBkYmRiOTYwNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiAyNTM0NzA3ZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjIpOiB0aWQ6IDI1MzQ3MDdlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IDI1MzQ3MDdlICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyNjQpOiB0aWQ6IDI1MzQ3MDdlICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4YjU0MDAgbmJsb2NrcyAweGI3IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMjY1KTogdGlkOiAyNTM0NzA3ZSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNjYpOiB0aWQ6IDI1MzQ3MDdlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI2Nyk6IHRpZDogMjUzNDcwN2UgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx NzEgIGxvbmdlc3Q6IDE5NDkyMTcxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY4KTogdGlk OiAyNTM0NzA3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI2OSk6IHRpZDogMjUzNDcwN2UgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcw KTogdGlkOiAyNTM0NzA3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNzEpOiB0aWQ6IDI1MzQ3MDdlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3Mik6IHRpZDogMjUzNDcwN2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Myk6IHRpZDogZDE4YzM4ZGMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjc0KTogdGlkOiBkMThjMzhkYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiBkMThjMzhkYyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjc2KTogdGlkOiBkMThjMzhkYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGI2ODAwIG5ibG9ja3MgMHhiOCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDI3Nyk6IHRpZDogZDE4YzM4ZGMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjc4KTogdGlkOiBkMThjMzhkYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNzkpOiB0aWQ6IGQxOGMzOGRjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTcw ICBsb25nZXN0OiAxOTQ5MjE3MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MCk6IHRpZDog ZDE4YzM4ZGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyODEpOiB0aWQ6IGQxOGMzOGRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Mik6 IHRpZDogZDE4YzM4ZGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjgzKTogdGlkOiBkMThjMzhkYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy ODQpOiB0aWQ6IGQxOGMzOGRjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODUpOiB0aWQ6IDlhOTg5ZWYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mjg2KTogdGlkOiA5YTk4OWVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IDlhOTg5ZWYgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDI4OCk6IHRpZDogOWE5ODllZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGI3YzAwIG5ibG9ja3MgMHhiOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDI4OSk6IHRpZDogOWE5ODllZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTApOiB0aWQ6IDlhOTg5ZWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjkxKTogdGlkOiA5YTk4OWVmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTY5ICBsb25nZXN0 OiAxOTQ5MjE2OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Mik6IHRpZDogOWE5ODllZiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI5Myk6IHRpZDogOWE5ODllZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTQpOiB0aWQ6IDlhOTg5 ZWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjk1KTogdGlkOiA5YTk4OWVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nik6IHRpZDogOWE5 ODllZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjk3KTogdGlkOiA1YTJjM2FhNiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTgpOiB0aWQ6IDVh MmMzYWE2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDVhMmMzYWE2ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz MDApOiB0aWQ6IDVhMmMzYWE2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YjkwMDAgbmJsb2NrcyAweGJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoMzAxKTogdGlkOiA1YTJjM2FhNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDIpOiB0 aWQ6IDVhMmMzYWE2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDMwMyk6IHRpZDogNWEyYzNhYTYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjcgIGxvbmdlc3Q6IDE5NDky MTY3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA0KTogdGlkOiA1YTJjM2FhNiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMw NSk6IHRpZDogNWEyYzNhYTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA2KTogdGlkOiA1YTJjM2FhNiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMDcpOiB0aWQ6IDVhMmMzYWE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOCk6IHRpZDogNWEyYzNh YTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMwOSk6IHRpZDogN2Q4YWU2ZmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEwKTogdGlkOiA3ZDhh ZTZmYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzExKTogdGlkOiA3ZDhhZTZmYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzEy KTogdGlkOiA3ZDhhZTZmYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJh NDAwIG5ibG9ja3MgMHhiYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDMxMyk6IHRpZDogN2Q4YWU2ZmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE0KTogdGlk OiA3ZDhhZTZmYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgzMTUpOiB0aWQ6IDdkOGFlNmZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTY2ICBsb25nZXN0OiAxOTQ5MjE2 NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNik6IHRpZDogN2Q4YWU2ZmMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTcp OiB0aWQ6IDdkOGFlNmZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOCk6IHRpZDogN2Q4YWU2ZmMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzE5KTogdGlkOiA3ZDhhZTZmYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjApOiB0aWQ6IDdkOGFlNmZj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMjEpOiB0aWQ6IDljNDBjN2RjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMik6IHRpZDogOWM0MGM3 ZGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMyMyk6IHRpZDogOWM0MGM3ZGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyNCk6 IHRpZDogOWM0MGM3ZGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiYjgw MCBuYmxvY2tzIDB4YmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgz MjUpOiB0aWQ6IDljNDBjN2RjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNik6IHRpZDog OWM0MGM3ZGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzI3KTogdGlkOiA5YzQwYzdkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2NSAgbG9uZ2VzdDogMTk0OTIxNjUK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjgpOiB0aWQ6IDljNDBjN2RjICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI5KTog dGlkOiA5YzQwYzdkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzApOiB0aWQ6IDljNDBjN2RjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMz MSk6IHRpZDogOWM0MGM3ZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMyKTogdGlkOiA5YzQwYzdkYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzMzKTogdGlkOiA3NDY3YzU0NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzQpOiB0aWQ6IDc0NjdjNTQ0 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMzUpOiB0aWQ6IDc0NjdjNTQ0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzYpOiB0 aWQ6IDc0NjdjNTQ0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmNjMDAg bmJsb2NrcyAweGJlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzM3 KTogdGlkOiA3NDY3YzU0NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzgpOiB0aWQ6IDc0 NjdjNTQ0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMzOSk6IHRpZDogNzQ2N2M1NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjQgIGxvbmdlc3Q6IDE5NDkyMTY0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQwKTogdGlkOiA3NDY3YzU0NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0MSk6IHRp ZDogNzQ2N2M1NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQyKTogdGlkOiA3NDY3YzU0NCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDMp OiB0aWQ6IDc0NjdjNTQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0NCk6IHRpZDogNzQ2N2M1NDQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM0NSk6IHRpZDogYmI0NWY5YjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ2KTogdGlkOiBiYjQ1ZjliMCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzQ3KTogdGlkOiBiYjQ1ZjliMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ4KTogdGlk OiBiYjQ1ZjliMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJlMDAwIG5i bG9ja3MgMHhjMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM0OSk6 IHRpZDogYmI0NWY5YjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUwKTogdGlkOiBiYjQ1 ZjliMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzNTEpOiB0aWQ6IGJiNDVmOWIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTYyICBsb25nZXN0OiAxOTQ5MjE2MgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Mik6IHRpZDogYmI0NWY5YjAgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTMpOiB0aWQ6 IGJiNDVmOWIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NCk6IHRpZDogYmI0NWY5YjAgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzU1KTog dGlkOiBiYjQ1ZjliMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTYpOiB0aWQ6IGJiNDVmOWIwICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTcpOiB0aWQ6IDQwNGVmNTI2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OCk6IHRpZDogNDA0ZWY1MjYgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1OSk6IHRpZDogNDA0ZWY1MjYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2MCk6IHRpZDog NDA0ZWY1MjYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiZjQwMCBuYmxv Y2tzIDB4YzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzNjEpOiB0 aWQ6IDQwNGVmNTI2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6IHRpZDogNDA0ZWY1 MjYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzYzKTogdGlkOiA0MDRlZjUyNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2MSAgbG9uZ2VzdDogMTk0OTIxNjEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjQpOiB0aWQ6IDQwNGVmNTI2ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY1KTogdGlkOiA0 MDRlZjUyNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjYpOiB0aWQ6IDQwNGVmNTI2ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2Nyk6IHRp ZDogNDA0ZWY1MjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY4KTogdGlkOiA0MDRlZjUyNiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzY5KTogdGlkOiBkZDBlNzE3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzApOiB0aWQ6IGRkMGU3MTcwICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNzEpOiB0aWQ6IGRkMGU3MTcwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzIpOiB0aWQ6IGRk MGU3MTcwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzA4MDAgbmJsb2Nr cyAweGMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMzczKTogdGlk OiBkZDBlNzE3MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6IGRkMGU3MTcw ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM3NSk6IHRpZDogZGQwZTcxNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjAgIGxvbmdlc3Q6IDE5NDkyMTYwCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzc2KTogdGlkOiBkZDBlNzE3MCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Nyk6IHRpZDogZGQw ZTcxNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc4KTogdGlkOiBkZDBlNzE3MCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzkpOiB0aWQ6 IGRkMGU3MTcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4MCk6IHRpZDogZGQwZTcxNzAgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM4MSk6IHRpZDogZWQ4MDgzMmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgyKTogdGlkOiBlZDgwODMyZCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzgzKTogdGlkOiBlZDgwODMyZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg0KTogdGlkOiBlZDgw ODMyZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGMxYzAwIG5ibG9ja3Mg MHhjMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDM4NSk6IHRpZDog ZWQ4MDgzMmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlkOiBlZDgwODMyZCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzODcpOiB0aWQ6IGVkODA4MzJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU5ICBsb25nZXN0OiAxOTQ5MjE1OQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4OCk6IHRpZDogZWQ4MDgzMmQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODkpOiB0aWQ6IGVkODA4 MzJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MCk6IHRpZDogZWQ4MDgzMmQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzkxKTogdGlkOiBl ZDgwODMyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTIpOiB0aWQ6IGVkODA4MzJkICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz OTMpOiB0aWQ6IDY3YTBmYmY3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NCk6IHRpZDogNjdhMGZiZjcgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5 NSk6IHRpZDogNjdhMGZiZjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Nik6IHRpZDogNjdhMGZi ZjcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjMzAwMCBuYmxvY2tzIDB4 YzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgzOTcpOiB0aWQ6IDY3 YTBmYmY3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDogNjdhMGZiZjcgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo Mzk5KTogdGlkOiA2N2EwZmJmNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NyAgbG9uZ2VzdDogMTk0OTIxNTcKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MDApOiB0aWQ6IDY3YTBmYmY3ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDAxKTogdGlkOiA2N2EwZmJm NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MDIpOiB0aWQ6IDY3YTBmYmY3ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwMyk6IHRpZDogNjdh MGZiZjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA0KTogdGlkOiA2N2EwZmJmNyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA1 KTogdGlkOiA4ZWUzYTAzNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDYpOiB0aWQ6IDhlZTNhMDM1ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcp OiB0aWQ6IDhlZTNhMDM1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDgpOiB0aWQ6IDhlZTNhMDM1 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzQ0MDAgbmJsb2NrcyAweGM2 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDA5KTogdGlkOiA4ZWUz YTAzNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IDhlZTNhMDM1ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQx MSk6IHRpZDogOGVlM2EwMzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxNTYgIGxvbmdlc3Q6IDE5NDkyMTU2Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDEyKTogdGlkOiA4ZWUzYTAzNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxMyk6IHRpZDogOGVlM2EwMzUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDE0KTogdGlkOiA4ZWUzYTAzNSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTUpOiB0aWQ6IDhlZTNh MDM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNik6IHRpZDogOGVlM2EwMzUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNyk6 IHRpZDogNDAxOWM3YzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE4KTogdGlkOiA0MDE5YzdjMyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTog dGlkOiA0MDE5YzdjMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDIwKTogdGlkOiA0MDE5YzdjMyAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGM1ODAwIG5ibG9ja3MgMHhjNyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQyMSk6IHRpZDogNDAxOWM3 YzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiA0MDE5YzdjMyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjMp OiB0aWQ6IDQwMTljN2MzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTU1ICBsb25nZXN0OiAxOTQ5MjE1NQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyNCk6IHRpZDogNDAxOWM3YzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjUpOiB0aWQ6IDQwMTljN2MzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQyNik6IHRpZDogNDAxOWM3YzMgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI3KTogdGlkOiA0MDE5Yzdj MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjgpOiB0aWQ6IDQwMTljN2MzICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjkpOiB0 aWQ6IGRlMzc3NWQxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMCk6IHRpZDogZGUzNzc1ZDEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRp ZDogZGUzNzc1ZDEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQzMik6IHRpZDogZGUzNzc1ZDEgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjNmMwMCBuYmxvY2tzIDB4YzggZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0MzMpOiB0aWQ6IGRlMzc3NWQx ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogZGUzNzc1ZDEgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDM1KTog dGlkOiBkZTM3NzVkMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE1NCAgbG9uZ2VzdDogMTk0OTIxNTQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MzYpOiB0aWQ6IGRlMzc3NWQxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDM3KTogdGlkOiBkZTM3NzVkMSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IGRlMzc3NWQxICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzOSk6IHRpZDogZGUzNzc1ZDEg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDQwKTogdGlkOiBkZTM3NzVkMSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQxKTogdGlk OiA4ZDYxM2FjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ0Mik6IHRpZDogOGQ2MTNhYyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiA4 ZDYxM2FjICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NDQpOiB0aWQ6IDhkNjEzYWMgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjODAwMCBuYmxvY2tzIDB4Y2EgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0NDUpOiB0aWQ6IDhkNjEzYWMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ2KTogdGlkOiA4ZDYxM2FjICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0Nyk6IHRpZDogOGQ2 MTNhYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjE1MiAgbG9uZ2VzdDogMTk0OTIxNTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NDgpOiB0aWQ6IDhkNjEzYWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDkpOiB0aWQ6IDhkNjEzYWMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDUwKTogdGlkOiA4ZDYxM2FjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1MSk6IHRpZDogOGQ2MTNhYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NTIpOiB0aWQ6IDhkNjEzYWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Myk6IHRpZDogYTU1YWRhMzcgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDU0KTogdGlkOiBhNTVhZGEzNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiBhNTVhZGEzNyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDU2KTogdGlkOiBhNTVhZGEzNyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGM5NDAwIG5ibG9ja3MgMHhjYiBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ1Nyk6IHRpZDogYTU1YWRhMzcgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDU4KTogdGlkOiBhNTVhZGEzNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTkpOiB0aWQ6IGE1NWFkYTM3ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTUxICBsb25nZXN0OiAxOTQ5MjE1MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MCk6IHRp ZDogYTU1YWRhMzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NjEpOiB0aWQ6IGE1NWFkYTM3ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2 Mik6IHRpZDogYTU1YWRhMzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDYzKTogdGlkOiBhNTVhZGEzNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjQpOiB0aWQ6IGE1NWFkYTM3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjUpOiB0aWQ6IDViNzk2MTE0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2Nik6IHRpZDogNWI3OTYxMTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogNWI3OTYxMTQgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQ2OCk6IHRpZDogNWI3OTYxMTQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHhjYTgwMCBuYmxvY2tzIDB4Y2MgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MgpPcGVyICg0NjkpOiB0aWQ6IDViNzk2MTE0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ3MCk6IHRpZDogNWI3OTYxMTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDcxKTogdGlkOiA1Yjc5NjExNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1 MCAgbG9uZ2VzdDogMTk0OTIxNTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzIpOiB0aWQ6 IDViNzk2MTE0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDczKTogdGlkOiA1Yjc5NjExNCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzQp OiB0aWQ6IDViNzk2MTE0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ3NSk6IHRpZDogNWI3OTYxMTQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDc2KTogdGlkOiA1Yjc5NjExNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc3KTogdGlkOiA2ZjE2NjI4YiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NzgpOiB0aWQ6IDZmMTY2MjhiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDZmMTY2MjhiICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0ODApOiB0aWQ6IDZmMTY2MjhiICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4Y2JjMDAgbmJsb2NrcyAweGNkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDIKT3BlciAoNDgxKTogdGlkOiA2ZjE2NjI4YiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0ODIpOiB0aWQ6IDZmMTY2MjhiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4Myk6IHRpZDogNmYxNjYyOGIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDkg IGxvbmdlc3Q6IDE5NDkyMTQ5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg0KTogdGlkOiA2 ZjE2NjI4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ4NSk6IHRpZDogNmYxNjYyOGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg2KTog dGlkOiA2ZjE2NjI4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0ODcpOiB0aWQ6IDZmMTY2MjhiICBsZW46IDMyICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQlVGIERBVEEKCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3lj bGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDc0NAl0YWlsX2xzbjogMSw0NzUKbGVuZ3RoIG9mIExv ZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA2ODAJCW51bSBvcHM6IDQ5MAp1dWlkOiBiMGMw ZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4g bGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDZm MTY2MjhiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBXQVNfQ09OVCBFTkQgCkxl ZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEpOiB0aWQ6IDZmMTY2MjhiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiA3NjFjYjZjNCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzKTogdGlkOiA3NjFjYjZjNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogNzYxY2I2YzQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDUpOiB0aWQ6IDc2MWNiNmM0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4Y2QwMDAgbmJsb2NrcyAweGNmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoNik6IHRpZDogNzYxY2I2YzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Nyk6IHRpZDogNzYxY2I2YzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoOCk6IHRpZDogNzYxY2I2YzQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDcgIGxvbmdlc3Q6IDE5 NDkyMTQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogNzYxY2I2YzQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MCk6IHRpZDogNzYxY2I2YzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDc2MWNiNmM0ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDEyKTogdGlkOiA3NjFjYjZjNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDogNzYxY2I2YzQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0KTogdGlkOiBhYzFjNDM0ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNSk6IHRpZDogYWMxYzQzNGQg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE2KTogdGlkOiBhYzFjNDM0ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTcpOiB0aWQ6 IGFjMWM0MzRkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Y2U0MDAgbmJs b2NrcyAweGQwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTgpOiB0 aWQ6IGFjMWM0MzRkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiBhYzFjNDM0 ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyMCk6IHRpZDogYWMxYzQzNGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDYgIGxvbmdlc3Q6IDE5NDkyMTQ2Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IGFjMWM0MzRkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0aWQ6IGFjMWM0 MzRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiBhYzFjNDM0ZCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogYWMx YzQzNGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IGFjMWM0MzRkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNik6 IHRpZDogMmVkYzY5ZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0aWQ6IDJlZGM2OWUyICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOCk6IHRp ZDogMmVkYzY5ZTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5KTogdGlkOiAyZWRjNjllMiAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNmODAwIG5ibG9ja3MgMHhkMSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDMwKTogdGlkOiAyZWRjNjllMiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDogMmVkYzY5ZTIgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzIpOiB0aWQ6 IDJlZGM2OWUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTQ1ICBsb25nZXN0OiAxOTQ5MjE0NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzKTogdGlkOiAyZWRjNjllMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiAyZWRjNjllMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNSk6IHRpZDogMmVkYzY5ZTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYpOiB0aWQ6IDJlZGM2OWUyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3KTogdGlkOiAyZWRjNjllMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IDQ5YjE0Y2Yg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzkpOiB0aWQ6IDQ5YjE0Y2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwKTogdGlkOiA0OWIxNGNmICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg0MSk6IHRpZDogNDliMTRjZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGQwYzAwIG5ibG9ja3MgMHhkMiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDQyKTogdGlkOiA0OWIxNGNmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzKTogdGlkOiA0OWIxNGNmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0KTogdGlkOiA0OWIxNGNmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQ0ICBsb25n ZXN0OiAxOTQ5MjE0NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlkOiA0OWIxNGNm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDYpOiB0aWQ6IDQ5YjE0Y2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDQ5YjE0 Y2YgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDgpOiB0aWQ6IDQ5YjE0Y2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDQ5YjE0 Y2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDUwKTogdGlkOiAzYTVlNWY2ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MSk6IHRpZDogM2E1ZTVm NmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDUyKTogdGlkOiAzYTVlNWY2ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNTMpOiB0 aWQ6IDNhNWU1ZjZmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDIwMDAg bmJsb2NrcyAweGQ0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNTQp OiB0aWQ6IDNhNWU1ZjZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiAzYTVl NWY2ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg1Nik6IHRpZDogM2E1ZTVmNmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDIgIGxvbmdlc3Q6IDE5NDkyMTQyCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDNhNWU1ZjZmICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTgpOiB0aWQ6IDNh NWU1ZjZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiAzYTVlNWY2ZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2MCk6IHRpZDog M2E1ZTVmNmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6IDNhNWU1ZjZmICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2 Mik6IHRpZDogNmJlMjE3N2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjMpOiB0aWQ6IDZiZTIxNzdlICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6 IHRpZDogNmJlMjE3N2UgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDY1KTogdGlkOiA2YmUyMTc3ZSAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQzNDAwIG5ibG9ja3MgMHhkNSBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDY2KTogdGlkOiA2YmUyMTc3 ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDogNmJlMjE3N2UgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjgpOiB0 aWQ6IDZiZTIxNzdlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTQxICBsb25nZXN0OiAxOTQ5MjE0MQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDY5KTogdGlkOiA2YmUyMTc3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcwKTogdGlkOiA2YmUyMTc3ZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3MSk6IHRpZDogNmJlMjE3N2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzIpOiB0aWQ6IDZiZTIxNzdlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDczKTogdGlkOiA2YmUyMTc3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDkyNDFl ZmY3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDc1KTogdGlkOiA5MjQxZWZmNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzYpOiB0aWQ6IDkyNDFlZmY3 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg3Nyk6IHRpZDogOTI0MWVmZjcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkNDgwMCBuYmxvY2tzIDB4ZDYgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg3OCk6IHRpZDogOTI0MWVmZjcgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzkpOiB0aWQ6IDkyNDFlZmY3ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgwKTogdGlkOiA5MjQxZWZmNyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjE0MCAgbG9uZ2VzdDogMTk0OTIxNDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRp ZDogOTI0MWVmZjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg4Mik6IHRpZDogOTI0MWVmZjcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMp OiB0aWQ6IDkyNDFlZmY3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDg0KTogdGlkOiA5MjQxZWZmNyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 NSk6IHRpZDogOTI0MWVmZjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg2KTogdGlkOiA5ZTQ3N2E2YyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 Nyk6IHRpZDogOWU0NzdhNmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg4KTogdGlkOiA5ZTQ3N2E2YyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoODkpOiB0aWQ6IDllNDc3YTZjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4ZDVjMDAgbmJsb2NrcyAweGQ3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDIKT3BlciAoOTApOiB0aWQ6IDllNDc3YTZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDkxKTogdGlkOiA5ZTQ3N2E2YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5Mik6IHRpZDogOWU0NzdhNmMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzkgIGxvbmdlc3Q6 IDE5NDkyMTM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTMpOiB0aWQ6IDllNDc3YTZjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoOTQpOiB0aWQ6IDllNDc3YTZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiA5ZTQ3N2E2 YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg5Nik6IHRpZDogOWU0NzdhNmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTcpOiB0aWQ6IDllNDc3 YTZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5OCk6IHRpZDogMTNhMzFiNjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTkpOiB0aWQ6IDEzYTMx YjY1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMDApOiB0aWQ6IDEzYTMxYjY1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMDEp OiB0aWQ6IDEzYTMxYjY1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDcw MDAgbmJsb2NrcyAweGQ5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAo MTAyKTogdGlkOiAxM2EzMWI2NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDMpOiB0aWQ6 IDEzYTMxYjY1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDEwNCk6IHRpZDogMTNhMzFiNjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzcgIGxvbmdlc3Q6IDE5NDkyMTM3 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1KTogdGlkOiAxM2EzMWI2NSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwNik6 IHRpZDogMTNhMzFiNjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiAxM2EzMWI2NSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MDgpOiB0aWQ6IDEzYTMxYjY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOSk6IHRpZDogMTNhMzFiNjUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDExMCk6IHRpZDogMzc4OTFlMWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTExKTogdGlkOiAzNzg5MWUx YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTEyKTogdGlkOiAzNzg5MWUxYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTEzKTog dGlkOiAzNzg5MWUxYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ4NDAw IG5ibG9ja3MgMHhkYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDEx NCk6IHRpZDogMzc4OTFlMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE1KTogdGlkOiAz Nzg5MWUxYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxMTYpOiB0aWQ6IDM3ODkxZTFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM2ICBsb25nZXN0OiAxOTQ5MjEzNgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRpZDogMzc4OTFlMWIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTgpOiB0 aWQ6IDM3ODkxZTFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogMzc4OTFlMWIgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIw KTogdGlkOiAzNzg5MWUxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjEpOiB0aWQ6IDM3ODkxZTFiICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMjIpOiB0aWQ6IDE4M2IxYjQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMyk6IHRpZDogMTgzYjFiNDMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEyNCk6IHRpZDogMTgzYjFiNDMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyNSk6IHRp ZDogMTgzYjFiNDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkOTgwMCBu YmxvY2tzIDB4ZGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxMjYp OiB0aWQ6IDE4M2IxYjQzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogMTgz YjFiNDMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTI4KTogdGlkOiAxODNiMWI0MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNSAgbG9uZ2VzdDogMTk0OTIxMzUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjkpOiB0aWQ6IDE4M2IxYjQzICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTMwKTogdGlk OiAxODNiMWI0MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDE4M2IxYjQzICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMik6 IHRpZDogMTgzYjFiNDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlkOiAxODNiMWI0MyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTM0KTogdGlkOiA3MDY5NzM0OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzUpOiB0aWQ6IDcwNjk3MzQ5ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMzYpOiB0aWQ6IDcwNjk3MzQ5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMzcpOiB0aWQ6 IDcwNjk3MzQ5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGFjMDAgbmJs b2NrcyAweGRjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTM4KTog dGlkOiA3MDY5NzM0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IDcwNjk3 MzQ5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE0MCk6IHRpZDogNzA2OTczNDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzQgIGxvbmdlc3Q6IDE5NDkyMTM0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiA3MDY5NzM0OSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0Mik6IHRpZDog NzA2OTczNDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiA3MDY5NzM0OSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDQpOiB0 aWQ6IDcwNjk3MzQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRpZDogNzA2OTczNDkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE0Nik6IHRpZDogNWMxNzBiNGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ3KTogdGlkOiA1YzE3MGI0ZiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTQ4KTogdGlkOiA1YzE3MGI0ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTQ5KTogdGlkOiA1 YzE3MGI0ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRjMDAwIG5ibG9j a3MgMHhkZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE1MCk6IHRp ZDogNWMxNzBiNGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUxKTogdGlkOiA1YzE3MGI0 ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNTIpOiB0aWQ6IDVjMTcwYjRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTMyICBsb25nZXN0OiAxOTQ5MjEzMgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogNWMxNzBiNGYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTQpOiB0aWQ6IDVj MTcwYjRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1NSk6IHRpZDogNWMxNzBiNGYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU2KTogdGlk OiA1YzE3MGI0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6IDVjMTcwYjRmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNTgpOiB0aWQ6IDMxODFmYTQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1OSk6IHRpZDogMzE4MWZhNDQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE2MCk6IHRpZDogMzE4MWZhNDQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2MSk6IHRpZDogMzE4 MWZhNDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkZDQwMCBuYmxvY2tz IDB4ZGYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxNjIpOiB0aWQ6 IDMxODFmYTQ0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogMzE4MWZhNDQg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTY0KTogdGlkOiAzMTgxZmE0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzMSAgbG9uZ2VzdDogMTk0OTIxMzEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDMxODFmYTQ0ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY2KTogdGlkOiAzMTgx ZmE0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IDMxODFmYTQ0ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRpZDog MzE4MWZhNDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiAzMTgxZmE0NCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTcwKTogdGlkOiA1ZWY5NTI2MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzEpOiB0aWQ6IDVlZjk1MjYwICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NzIpOiB0aWQ6IDVlZjk1MjYwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzMpOiB0aWQ6IDVlZjk1 MjYwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGU4MDAgbmJsb2NrcyAw eGUwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMTc0KTogdGlkOiA1 ZWY5NTI2MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IDVlZjk1MjYwICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE3Nik6IHRpZDogNWVmOTUyNjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMzAgIGxvbmdlc3Q6IDE5NDkyMTMwCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiA1ZWY5NTI2MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3OCk6IHRpZDogNWVmOTUy NjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTc5KTogdGlkOiA1ZWY5NTI2MCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6IDVl Zjk1MjYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MSk6IHRpZDogNWVmOTUyNjAgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4 Mik6IHRpZDogNWJhZjNkN2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgzKTogdGlkOiA1YmFmM2Q3ZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg0 KTogdGlkOiA1YmFmM2Q3ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTg1KTogdGlkOiA1YmFmM2Q3 ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRmYzAwIG5ibG9ja3MgMHhl MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDE4Nik6IHRpZDogNWJh ZjNkN2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiA1YmFmM2Q3ZCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx ODgpOiB0aWQ6IDViYWYzZDdkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTI5ICBsb25nZXN0OiAxOTQ5MjEyOQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogNWJhZjNkN2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTApOiB0aWQ6IDViYWYzZDdk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5MSk6IHRpZDogNWJhZjNkN2QgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiA1YmFm M2Q3ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IDViYWYzZDdkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQp OiB0aWQ6IDgyYzRlYTM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NSk6IHRpZDogODJjNGVhMzQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nik6 IHRpZDogODJjNGVhMzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5Nyk6IHRpZDogODJjNGVhMzQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlMTAwMCBuYmxvY2tzIDB4ZTMg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgxOTgpOiB0aWQ6IDgyYzRl YTM0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogODJjNGVhMzQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAw KTogdGlkOiA4MmM0ZWEzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjEyNyAgbG9uZ2VzdDogMTk0OTIxMjcKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMDEpOiB0aWQ6IDgyYzRlYTM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAyKTogdGlkOiA4MmM0ZWEzNCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDMpOiB0aWQ6IDgyYzRlYTM0ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogODJjNGVh MzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiA4MmM0ZWEzNCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTog dGlkOiAzOTFhZWNkZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDcpOiB0aWQ6IDM5MWFlY2RlICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDgpOiB0 aWQ6IDM5MWFlY2RlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDkpOiB0aWQ6IDM5MWFlY2RlICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTI0MDAgbmJsb2NrcyAweGU0IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjEwKTogdGlkOiAzOTFhZWNk ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDM5MWFlY2RlICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxMik6 IHRpZDogMzkxYWVjZGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxMjYgIGxvbmdlc3Q6IDE5NDkyMTI2Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjEzKTogdGlkOiAzOTFhZWNkZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxNCk6IHRpZDogMzkxYWVjZGUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjE1KTogdGlkOiAzOTFhZWNkZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTYpOiB0aWQ6IDM5MWFlY2Rl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogMzkxYWVjZGUgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRp ZDogYjUzZDM1ZDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjE5KTogdGlkOiBiNTNkMzVkOCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIwKTogdGlk OiBiNTNkMzVkOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjIxKTogdGlkOiBiNTNkMzVkOCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGUzODAwIG5ibG9ja3MgMHhlNSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDIyMik6IHRpZDogYjUzZDM1ZDgg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiBiNTNkMzVkOCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjQpOiB0 aWQ6IGI1M2QzNWQ4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTI1ICBsb25nZXN0OiAxOTQ5MjEyNQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyNSk6IHRpZDogYjUzZDM1ZDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjYpOiB0aWQ6IGI1M2QzNWQ4ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIyNyk6IHRpZDogYjUzZDM1ZDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI4KTogdGlkOiBiNTNkMzVkOCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IGI1M2QzNWQ4ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzApOiB0aWQ6 IGRiOWNkYWU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzMSk6IHRpZDogZGI5Y2RhZTYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMik6IHRpZDog ZGI5Y2RhZTYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIzMyk6IHRpZDogZGI5Y2RhZTYgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlNGMwMCBuYmxvY2tzIDB4ZTYgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyMzQpOiB0aWQ6IGRiOWNkYWU2ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogZGI5Y2RhZTYgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM2KTogdGlk OiBkYjljZGFlNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjEyNCAgbG9uZ2VzdDogMTk0OTIxMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzcpOiB0aWQ6IGRiOWNkYWU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjM4KTogdGlkOiBkYjljZGFlNiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMzkpOiB0aWQ6IGRiOWNkYWU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0MCk6IHRpZDogZGI5Y2RhZTYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiBkYjljZGFlNiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQyKTogdGlkOiA4 ZjlhOWUwNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNDMpOiB0aWQ6IDhmOWE5ZTA2ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDQpOiB0aWQ6IDhm OWE5ZTA2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDUpOiB0aWQ6IDhmOWE5ZTA2ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTYwMDAgbmJsb2NrcyAweGU4IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjQ2KTogdGlkOiA4ZjlhOWUwNiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IDhmOWE5ZTA2ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0OCk6IHRpZDog OGY5YTllMDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxMjIgIGxvbmdlc3Q6IDE5NDkyMTIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQ5KTogdGlkOiA4ZjlhOWUwNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1MCk6IHRpZDogOGY5YTllMDYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjUxKTogdGlkOiA4ZjlhOWUwNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTIpOiB0aWQ6IDhmOWE5ZTA2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogOGY5YTllMDYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NCk6IHRpZDogZTE3 ODFiNjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjU1KTogdGlkOiBlMTc4MWI2MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU2KTogdGlkOiBlMTc4 MWI2MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjU3KTogdGlkOiBlMTc4MWI2MCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGU3NDAwIG5ibG9ja3MgMHhlOSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI1OCk6IHRpZDogZTE3ODFiNjAgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiBlMTc4MWI2MCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjApOiB0aWQ6IGUx NzgxYjYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMTIxICBsb25nZXN0OiAxOTQ5MjEyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2MSk6IHRpZDogZTE3ODFiNjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjIpOiB0aWQ6IGUxNzgxYjYwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2Myk6IHRpZDogZTE3ODFiNjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY0KTogdGlkOiBlMTc4MWI2MCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNjUpOiB0aWQ6IGUxNzgxYjYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjYpOiB0aWQ6IGMyMTcy NGIyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI2Nyk6IHRpZDogYzIxNzI0YjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OCk6IHRpZDogYzIxNzI0 YjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2OSk6IHRpZDogYzIxNzI0YjIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlODgwMCBuYmxvY2tzIDB4ZWEgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICgyNzApOiB0aWQ6IGMyMTcyNGIyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogYzIxNzI0YjIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcyKTogdGlkOiBjMjE3 MjRiMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjEyMCAgbG9uZ2VzdDogMTk0OTIxMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzMpOiB0aWQ6IGMyMTcyNGIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc0KTogdGlkOiBjMjE3MjRiMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNzUpOiB0aWQ6IGMyMTcyNGIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Nik6IHRpZDogYzIxNzI0YjIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjc3KTogdGlkOiBjMjE3MjRiMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc4KTogdGlkOiAxMjZhMThj MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNzkpOiB0aWQ6IDEyNmExOGMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODApOiB0aWQ6IDEyNmExOGMy ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgyODEpOiB0aWQ6IDEyNmExOGMyICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTljMDAgbmJsb2NrcyAweGViIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoMjgyKTogdGlkOiAxMjZhMThjMiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IDEyNmExOGMyICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4NCk6IHRpZDogMTI2YTE4 YzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxMTkgIGxvbmdlc3Q6IDE5NDkyMTE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1 KTogdGlkOiAxMjZhMThjMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI4Nik6IHRpZDogMTI2YTE4YzIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjg3KTogdGlkOiAxMjZhMThjMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODgpOiB0aWQ6IDEyNmExOGMyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI4OSk6IHRpZDogMTI2YTE4YzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MCk6IHRpZDogNjc2ZTcwMWYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjkxKTogdGlkOiA2NzZlNzAxZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkyKTogdGlkOiA2NzZlNzAxZiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMjkzKTogdGlkOiA2NzZlNzAxZiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGViMDAwIG5ibG9ja3MgMHhlZCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDI5NCk6IHRpZDogNjc2ZTcwMWYgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjk1KTogdGlkOiA2NzZlNzAxZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTYpOiB0aWQ6IDY3NmU3MDFm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTE3ICBsb25nZXN0OiAxOTQ5MjExNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6 IHRpZDogNjc2ZTcwMWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyOTgpOiB0aWQ6IDY3NmU3MDFmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5OSk6IHRpZDogNjc2ZTcwMWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAwKTogdGlkOiA2NzZlNzAxZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMDEpOiB0aWQ6IDY3NmU3MDFmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDIpOiB0aWQ6IDYzMzgzMzA4ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMwMyk6IHRpZDogNjMzODMzMDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNCk6IHRpZDogNjMzODMzMDggIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDMwNSk6IHRpZDogNjMzODMzMDggIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhlYzQwMCBuYmxvY2tzIDB4ZWUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MgpPcGVyICgzMDYpOiB0aWQ6IDYzMzgzMzA4ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMwNyk6IHRpZDogNjMzODMzMDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzA4KTogdGlkOiA2MzM4MzMwOCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjExNiAgbG9uZ2VzdDogMTk0OTIxMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0 aWQ6IDYzMzgzMzA4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzEwKTogdGlkOiA2MzM4MzMwOCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTEpOiB0aWQ6IDYzMzgzMzA4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMxMik6IHRpZDogNjMzODMzMDggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzEzKTogdGlkOiA2MzM4MzMwOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE0KTogdGlkOiAxZTFiN2E0MCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMTUpOiB0aWQ6IDFlMWI3YTQwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTYpOiB0aWQ6IDFlMWI3YTQwICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzMTcpOiB0aWQ6IDFlMWI3YTQwICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ZWQ4MDAgbmJsb2NrcyAweGVmIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDIKT3BlciAoMzE4KTogdGlkOiAxZTFiN2E0MCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMTkpOiB0aWQ6IDFlMWI3YTQwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyMCk6IHRpZDogMWUxYjdhNDAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx MTUgIGxvbmdlc3Q6IDE5NDkyMTE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIxKTogdGlk OiAxZTFiN2E0MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDMyMik6IHRpZDogMWUxYjdhNDAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIz KTogdGlkOiAxZTFiN2E0MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzMjQpOiB0aWQ6IDFlMWI3YTQwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMyNSk6IHRpZDogMWUxYjdhNDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNik6IHRpZDogZGFkZTVlNzMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzI3KTogdGlkOiBkYWRlNWU3MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI4KTogdGlkOiBkYWRlNWU3MyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzI5KTogdGlkOiBkYWRlNWU3MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGVlYzAwIG5ibG9ja3MgMHhmMCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCk9wZXIgKDMzMCk6IHRpZDogZGFkZTVlNzMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzMxKTogdGlkOiBkYWRlNWU3MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMzIpOiB0aWQ6IGRhZGU1ZTczICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTE0 ICBsb25nZXN0OiAxOTQ5MjExNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDog ZGFkZTVlNzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMzQpOiB0aWQ6IGRhZGU1ZTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6 IHRpZDogZGFkZTVlNzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzM2KTogdGlkOiBkYWRlNWU3MyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MzcpOiB0aWQ6IGRhZGU1ZTczICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzgpOiB0aWQ6IGYxMmFmYWUyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMzOSk6IHRpZDogZjEyYWZhZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MCk6IHRpZDogZjEyYWZhZTIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDM0MSk6IHRpZDogZjEyYWZhZTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhmMDAwMCBuYmxvY2tzIDB4ZjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MgpPcGVyICgzNDIpOiB0aWQ6IGYxMmFmYWUyICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM0Myk6IHRpZDogZjEyYWZhZTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzQ0KTogdGlkOiBmMTJhZmFlMiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExMiAg bG9uZ2VzdDogMTk0OTIxMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6IGYx MmFmYWUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzQ2KTogdGlkOiBmMTJhZmFlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0 aWQ6IGYxMmFmYWUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0OCk6IHRpZDogZjEyYWZhZTIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ5 KTogdGlkOiBmMTJhZmFlMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUwKTogdGlkOiA5OGU5NzcxMCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTEpOiB0aWQ6IDk4ZTk3NzEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTIpOiB0aWQ6IDk4ZTk3NzEwICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzNTMpOiB0aWQ6IDk4ZTk3NzEwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZjE0MDAgbmJsb2NrcyAweGYzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDIKT3BlciAoMzU0KTogdGlkOiA5OGU5NzcxMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTUpOiB0aWQ6IDk4ZTk3NzEwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1Nik6IHRpZDogOThlOTc3MTAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMTEgIGxv bmdlc3Q6IDE5NDkyMTExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTogdGlkOiA5OGU5 NzcxMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1OCk6IHRpZDogOThlOTc3MTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlk OiA5OGU5NzcxMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNjApOiB0aWQ6IDk4ZTk3NzEwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MSk6 IHRpZDogOThlOTc3MTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6IHRpZDogZTk3MDFmMDMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYz KTogdGlkOiBlOTcwMWYwMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY0KTogdGlkOiBlOTcwMWYwMyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzY1KTogdGlkOiBlOTcwMWYwMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGYyODAwIG5ibG9ja3MgMHhmNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgyCk9wZXIgKDM2Nik6IHRpZDogZTk3MDFmMDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzY3KTogdGlkOiBlOTcwMWYwMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjgpOiB0aWQ6IGU5NzAxZjAzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTEwICBsb25n ZXN0OiAxOTQ5MjExMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRpZDogZTk3MDFm MDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNzApOiB0aWQ6IGU5NzAxZjAzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDog ZTk3MDFmMDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzcyKTogdGlkOiBlOTcwMWYwMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzMpOiB0 aWQ6IGU5NzAxZjAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6IDMxMmEzOTI1ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NSk6 IHRpZDogMzEyYTM5MjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nik6IHRpZDogMzEyYTM5MjUgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDM3Nyk6IHRpZDogMzEyYTM5MjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhmM2MwMCBuYmxvY2tzIDB4ZjUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MgpPcGVyICgzNzgpOiB0aWQ6IDMxMmEzOTI1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3OSk6IHRpZDogMzEyYTM5MjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzgwKTogdGlkOiAzMTJhMzkyNSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwOSAgbG9uZ2Vz dDogMTk0OTIxMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6IDMxMmEzOTI1 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzgyKTogdGlkOiAzMTJhMzkyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IDMx MmEzOTI1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM4NCk6IHRpZDogMzEyYTM5MjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg1KTogdGlk OiAzMTJhMzkyNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlkOiBkYWQ4ODc2ZiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODcpOiB0 aWQ6IGRhZDg4NzZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzODgpOiB0aWQ6IGRhZDg4NzZmICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzODkpOiB0aWQ6IGRhZDg4NzZmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4ZjUwMDAgbmJsb2NrcyAweGY3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKT3BlciAoMzkwKTogdGlkOiBkYWQ4ODc2ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz OTEpOiB0aWQ6IGRhZDg4NzZmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM5Mik6IHRpZDogZGFkODg3NmYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDcgIGxvbmdlc3Q6 IDE5NDkyMTA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlkOiBkYWQ4ODc2ZiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM5NCk6IHRpZDogZGFkODg3NmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiBkYWQ4 ODc2ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzOTYpOiB0aWQ6IGRhZDg4NzZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6IHRpZDog ZGFkODg3NmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDogYjg2MWE0YzcgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk5KTogdGlk OiBiODYxYTRjNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDAwKTogdGlkOiBiODYxYTRjNyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDAxKTogdGlkOiBiODYxYTRjNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGY2NDAwIG5ibG9ja3MgMHhmOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgy Ck9wZXIgKDQwMik6IHRpZDogYjg2MWE0YzcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAz KTogdGlkOiBiODYxYTRjNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0MDQpOiB0aWQ6IGI4NjFhNGM3ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA2ICBsb25nZXN0OiAx OTQ5MjEwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogYjg2MWE0YzcgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MDYpOiB0aWQ6IGI4NjFhNGM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogYjg2MWE0 YzcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDA4KTogdGlkOiBiODYxYTRjNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6IGI4 NjFhNGM3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IGY0MjlhOWYwICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMSk6IHRpZDog ZjQyOWE5ZjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQxMik6IHRpZDogZjQyOWE5ZjAgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQxMyk6IHRpZDogZjQyOWE5ZjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhmNzgwMCBuYmxvY2tzIDB4ZjkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpP cGVyICg0MTQpOiB0aWQ6IGY0MjlhOWYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6 IHRpZDogZjQyOWE5ZjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDE2KTogdGlkOiBmNDI5YTlmMCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNSAgbG9uZ2VzdDogMTk0 OTIxMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IGY0MjlhOWYwICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDE4KTogdGlkOiBmNDI5YTlmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IGY0MjlhOWYw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQyMCk6IHRpZDogZjQyOWE5ZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiBmNDI5 YTlmMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiAyNmIwMDkxOSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjMpOiB0aWQ6IDI2 YjAwOTE5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MjQpOiB0aWQ6IDI2YjAwOTE5ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0 MjUpOiB0aWQ6IDI2YjAwOTE5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 ZjhjMDAgbmJsb2NrcyAweGZhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3Bl ciAoNDI2KTogdGlkOiAyNmIwMDkxOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0 aWQ6IDI2YjAwOTE5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQyOCk6IHRpZDogMjZiMDA5MTkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDQgIGxvbmdlc3Q6IDE5NDky MTA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiAyNmIwMDkxOSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQz MCk6IHRpZDogMjZiMDA5MTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMxKTogdGlkOiAyNmIwMDkxOSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MzIpOiB0aWQ6IDI2YjAwOTE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogMjZiMDA5 MTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogMjYzMGFjYmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiAyNjMw YWNiYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDM2KTogdGlkOiAyNjMwYWNiYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDM3 KTogdGlkOiAyNjMwYWNiYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGZh MDAwIG5ibG9ja3MgMHhmYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIg KDQzOCk6IHRpZDogMjYzMGFjYmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlk OiAyNjMwYWNiYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0NDApOiB0aWQ6IDI2MzBhY2JjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTAyICBsb25nZXN0OiAxOTQ5MjEw MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogMjYzMGFjYmMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDIp OiB0aWQ6IDI2MzBhY2JjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Myk6IHRpZDogMjYzMGFjYmMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDQ0KTogdGlkOiAyNjMwYWNiYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IDI2MzBhY2Jj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NDYpOiB0aWQ6IDE5ODA5Mjc3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogMTk4MDky NzcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ0OCk6IHRpZDogMTk4MDkyNzcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0OSk6 IHRpZDogMTk4MDkyNzcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmYjQw MCBuYmxvY2tzIDB4ZmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MgpPcGVyICg0 NTApOiB0aWQ6IDE5ODA5Mjc3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDog MTk4MDkyNzcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDUyKTogdGlkOiAxOTgwOTI3NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwMSAgbG9uZ2VzdDogMTk0OTIxMDEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDE5ODA5Mjc3ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDU0KTog dGlkOiAxOTgwOTI3NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTUpOiB0aWQ6IDE5ODA5Mjc3ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1 Nik6IHRpZDogMTk4MDkyNzcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3KTogdGlkOiAxOTgwOTI3NyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDU4KTogdGlkOiA4YmE0MzY3ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTkpOiB0aWQ6IDhiYTQzNjdm ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NjApOiB0aWQ6IDhiYTQzNjdmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NjEpOiB0 aWQ6IDhiYTQzNjdmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZmM4MDAg bmJsb2NrcyAweGZlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDIKT3BlciAoNDYy KTogdGlkOiA4YmE0MzY3ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IDhi YTQzNjdmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQ2NCk6IHRpZDogOGJhNDM2N2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDAgIGxvbmdlc3Q6IDE5NDkyMTAwCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiA4YmE0MzY3ZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2Nik6IHRp ZDogOGJhNDM2N2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY3KTogdGlkOiA4YmE0MzY3ZiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Njgp OiB0aWQ6IDhiYTQzNjdmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogOGJhNDM2N2YgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ3MCk6IHRpZDogOGNkMzAxZjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcxKTogdGlkOiA4Y2QzMDFmOCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDcyKTogdGlkOiA4Y2QzMDFmOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDczKTogdGlk OiA4Y2QzMDFmOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGZkYzAwIG5i bG9ja3MgMHhmZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ3NCk6 IHRpZDogOGNkMzAxZjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiA4Y2Qz MDFmOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NzYpOiB0aWQ6IDhjZDMwMWY4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMDk5ICBsb25nZXN0OiAxOTQ5MjA5OQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogOGNkMzAxZjggIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzgpOiB0aWQ6 IDhjZDMwMWY4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OSk6IHRpZDogOGNkMzAxZjggIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgwKTog dGlkOiA4Y2QzMDFmOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IDhjZDMwMWY4ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0ODIpOiB0aWQ6IDJhMmIyYThiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Myk6IHRpZDogMmEyYjJhOGIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogU1RSQVRf V1JJVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ4NCk6IHRpZDogMmEyYjJhOGIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgzICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNDg1KTogdGlk OiAyYTJiMmE4YiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2Nr cyAweDJjMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCk9wZXIgKDQ4Nik6IHRp ZDogMmEyYjJhOGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTogdGlkOiAyYTJiMmE4 YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg0ODgpOiB0aWQ6IDJhMmIyYThiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzk0ICBsb25nZXN0OiAxOTQ5MTM5NAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ4OSk6IHRpZDogMmEyYjJhOGIgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVFIApCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw4MDgJdGFpbF9sc246IDEsNzQ0Cmxl bmd0aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDc0NAkJbnVtIG9wczogNQp1dWlk OiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBl bmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0 aWQ6IDNiZTZlMGEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IDNiZTZlMGEwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IFNCX0NPVU5UICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiAz YmU2ZTBhMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAwICgweDApICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzKTogdGlkOiAzYmU2ZTBhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKU1VQRVIgQkxPQ0sgQnVmZmVyOiAKaWNvdW50OiA2NCAgaWZyZWU6IDU5ICBm ZGJsa3M6IDc3OTYwOTk0ICBmcmV4dDogMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQpOiB0 aWQ6IDNiZTZlMGEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDgxMAl0YWlsX2xz bjogMSw4MDgKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9mZnNldDogODA4CQludW0g b3BzOiAxCnV1aWQ6IGIwYzBmMTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1h dDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMCk6IHRpZDogNGM1YzllNTQgIGxlbjogOCAgY2xpZW50aWQ6IExPRyAgZmxhZ3M6IFVO TU9VTlQgClVubW91bnQgZmlsZXN5c3RlbQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2 ZXJzaW9uOiAyCQlsc246IDEsODEyCXRhaWxfbHNuOiAxLDgxMgpsZW5ndGggb2YgTG9nIFJlY29y ZDogNjE0NAlwcmV2IG9mZnNldDogODEwCQludW0gb3BzOiA5Nwp1dWlkOiBiMGMwZjE5OS0wMjI5 LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9z aXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGI3ZWIyNDkgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMSk6IHRpZDogYjdlYjI0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog MwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IGI3ZWIyNDkgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBm bGFnczogMHgzICAgZHNpemU6IDI4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAw Ck9wZXIgKDMpOiB0aWQ6IGI3ZWIyNDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1h dCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDFhIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoNCk6IHRpZDogYjdlYjI0OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSAyNgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IGI3ZWIyNDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAg ZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNik6 IHRpZDogYjdlYjI0OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDAgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGZkYzAw IG5ibG9ja3MgMHhmZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNyk6IHRpZDogYjdlYjI0OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4KTogdGlkOiBiN2ViMjQ5ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAx ICBmcmVlIzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ODQgMHhmZmZm ZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhm ZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5KTogdGlkOiBiN2ViMjQ5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMCk6IHRpZDogMWMyMDE3YzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDFjMjAxN2M1ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZF ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMik6IHRpZDogMWMyMDE3YzUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAgZHNpemU6IDAKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTMpOiB0aWQ6IDFjMjAx N2M1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTQpOiB0aWQ6IDFjMjAxN2M1ICBsZW46IDMyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVGSTogICNyZWdzOiAxICAgIG51bV9leHRlbnRzOiAxICBpZDogMHhmZmZmZmZmZmUzYTQx MDAwCihzOiAweGMsIGw6IDI1NSkgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6 IDFjMjAxN2M1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogMWMyMDE3YzYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6 IDFjMjAxN2M2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IElOQUNUSVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogMWMyMDE3YzYgIGxlbjogMzIgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRUZEOiAgI3JlZ3M6IDEgICAgbnVtX2V4dGVudHM6IDEgIGlkOiAw eGZmZmZmZmZmZTNhNDEwMDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogMWMy MDE3YzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjApOiB0aWQ6IDFjMjAxN2M2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzU0ICBsb25nZXN0OiAxOTQ5MjM1NAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTogdGlkOiAxYzIwMTdjNiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogMWMy MDE3YzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6IDFjMjAxN2M2ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6 IDFjMjAxN2M2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiAxYzIwMTdjNiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQg IGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyNik6IHRpZDogMWMyMDE3YzYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogMWMyMDE3YzYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI4KTogdGlkOiAxYzIwMTdjNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOSk6IHRpZDogMWMyMDE3YzcgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMw KTogdGlkOiAxYzIwMTdjNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMSk6IHRpZDogMWMyMDE3Yzcg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0 aWQ6IDFjMjAxN2M3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDMzKTogdGlkOiAxYzIwMTdjNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lu bzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzQpOiB0aWQ6IDFjMjAxN2M3ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgw eDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUpOiB0aWQ6IDFj MjAxN2M3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2KTogdGlkOiAxYzIwMTdjNyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcp OiB0aWQ6IDY5NzE0OTA5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiA2OTcxNDkwOSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlk OiA2OTcxNDkwOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogOAogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICg0MCk6IHRpZDogNjk3MTQ5MDkgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDYgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0MSk6IHRpZDogNjk3MTQ5MDkgIGxlbjogOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJF Q1RPUlkgc2l6ZSA2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDY5NzE0OTA5 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAg IGlubzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiA3NjgKT3BlciAoNDMpOiB0aWQ6IDY5NzE0OTA5ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDc1 NSB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQpOiB0aWQ6IDY5NzE0OTA5 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQ1KTogdGlkOiA2OTcxNDkwOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg Y250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lubzogMHg4MApidWNr ZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweDgzIApidWNrZXRb NCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNr ZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAK YnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYpOiB0aWQ6IDY5NzE0OTA5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogNGM5YTRjMTMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDgpOiB0aWQ6IDRjOWE0YzEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogNGM5YTRjMTMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgz ICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDc2OApPcGVyICg1MCk6IHRpZDogNGM5YTRjMTMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IDRjOWE0YzEzICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIg KDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDUyKTogdGlkOiA0 YzlhNGMxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZl cjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDog MwpsZXZlbDogMSAgZnJlZSM6IDB4M2QgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDEx XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEy IC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNr ZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0 aWQ6IDRjOWE0YzEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNTQpOiB0aWQ6IDRjOWE0YzEzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1 KTogdGlkOiA0YzlhNGMxMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTYpOiB0aWQ6IGJmZWZhMDNjICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3 KTogdGlkOiBiZmVmYTAzYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBDUkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU4KTogdGlkOiBiZmVmYTAzYyAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgw eDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1OSk6IHRpZDogYmZl ZmEwM2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHSSBCdWZmZXI6 IFhBR0kgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIGNudDogNjQgIHJvb3Q6IDMK bGV2ZWw6IDEgIGZyZWUjOiAweDNjICBuZXdpbm86IDB4ODAKYnVja2V0WzAgLSAzXTogMHhmZmZm ZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzQgLSA3XTogMHhm ZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzggLSAxMV06 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxMiAt IDE1XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0 WzE2IC0gMTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlk OiBiZmVmYTAzYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDYxKTogdGlkOiBiZmVmYTAzYyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6 IHRpZDogYmZlZmEwM2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICg2Myk6IHRpZDogYmZlZmEwM2MgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6 IHRpZDogYmZlZmEwM2MgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDI4CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDY1KTogdGlkOiBiZmVmYTAzYyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWEgbmJsb2NrcyAweDAgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg2Nik6IHRpZDogYmZlZmEwM2MgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZP Uk0gRElSRUNUT1JZIHNpemUgMjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDog YmZlZmEwM2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY4KTogdGlkOiBjOGEyY2UzMSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6IHRpZDog YzhhMmNlMzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDcwKTogdGlkOiBjOGEyY2UzMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEg ICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDcx KTogdGlkOiBjOGEyY2UzMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAg bmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDcyKTogdGlkOiBjOGEyY2UzMSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IGUx ODNhNmQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBlMTgzYTZkNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBDUkVBVEUgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiBlMTgzYTZk NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICg3Nik6IHRpZDogZTE4M2E2ZDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHSSBCdWZmZXI6IFhBR0kgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IGNudDogNjQgIHJvb3Q6IDMKbGV2ZWw6IDEgIGZyZWUjOiAweDNiICBuZXdpbm86IDB4ODAKYnVj a2V0WzAgLSAzXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAK YnVja2V0WzQgLSA3XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAKYnVja2V0WzggLSAxMV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgCmJ1Y2tldFsxMiAtIDE1XTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAKYnVja2V0WzE2IC0gMTldOiAweGZmZmZmZmZmIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDc3KTogdGlkOiBlMTgzYTZkNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyNCAoMHgxOCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc4KTogdGlkOiBlMTgzYTZkNyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg3OSk6IHRpZDogZTE4M2E2ZDcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDg0ICBmbGFnczogMHgxICAg ZHNpemU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODAp OiB0aWQ6IGUxODNhNmQ3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBu YmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAg IGRzaXplOiA1MgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICg4Mik6 IHRpZDogZTE4M2E2ZDcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAyIGZvcm1hdCAxCm5saW5r IDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMxIG5i bG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODMpOiB0 aWQ6IGUxODNhNmQ3ICBsZW46IDUyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxPQ0FM IGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDQ5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODQpOiB0aWQ6IGUxODNhNmQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogNmZiYzg4MTUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODYpOiB0aWQ6IDZmYmM4ODE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogNmZiYzg4MTUgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDg4KTogdGlkOiA2ZmJjODgxNSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICg4OSk6IHRpZDogNmZiYzg4MTUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOTApOiB0aWQ6IDZmYmM4ODE1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDkxKTogdGlkOiA2ZmJjODgxNSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM1MiAgbG9u Z2VzdDogMTk0OTIzNTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Mik6IHRpZDogNmZiYzg4 MTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg5Myk6IHRpZDogNmZiYzg4MTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTQpOiB0aWQ6IDZm YmM4ODE1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDk1KTogdGlkOiA2ZmJjODgxNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nik6IHRpZDog NmZiYzg4MTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAoKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsODI1CXRhaWxfbHNuOiAx LDgxMgpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDgxMgkJbnVtIG9w czogNDg5CnV1aWQ6IGIwYzBmMTk5LTAyMjktNGYxOC04ZTIwLTZiNmQ3NGEyOTU2MyAgIGZvcm1h dDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMCk6IHRpZDogYTkwZDg4MzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRpZDogYTkwZDg4MzEgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzKTogdGlkOiBhOTBkODgz MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAgbmJsb2NrcyAweDMg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0KTogdGlkOiBhOTBkODgz MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1KTogdGlkOiBhOTBkODgzMSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2KTogdGlk OiBhOTBkODgzMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjM1MSAgbG9uZ2VzdDogMTk0OTIzNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3KTogdGlkOiBhOTBkODgzMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDkpOiB0aWQ6IGE5MGQ4ODMxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEwKTogdGlkOiBhOTBkODgzMSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMSk6IHRpZDogYTkwZDg4MzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyKTogdGlkOiA4MTk1MmYzZCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMyk6IHRpZDogODE5NTJmM2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0KTogdGlkOiA4MTk1MmYzZCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTUpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MjgwMCBuYmxvY2tzIDB4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgzCk9wZXIgKDE2KTogdGlkOiA4MTk1MmYzZCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNyk6IHRpZDogODE5NTJmM2QgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTgpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUwICBs b25nZXN0OiAxOTQ5MjM1MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiA4MTk1 MmYzZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDIwKTogdGlkOiA4MTk1MmYzZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDog ODE5NTJmM2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjIpOiB0aWQ6IDgxOTUyZjNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlk OiA4MTk1MmYzZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQpOiB0aWQ6IGMwMzliYmYwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlk OiBjMDM5YmJmMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IGMwMzliYmYwICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgyNyk6IHRpZDogYzAzOWJiZjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzYzAwIG5ibG9ja3MgMHg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3Bl ciAoMjgpOiB0aWQ6IGMwMzliYmYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlk OiBjMDM5YmJmMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgzMCk6IHRpZDogYzAzOWJiZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDkgIGxvbmdlc3Q6IDE5NDkyMzQ5 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEpOiB0aWQ6IGMwMzliYmYwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIpOiB0 aWQ6IGMwMzliYmYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzKTogdGlkOiBjMDM5YmJmMCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNCk6 IHRpZDogYzAzOWJiZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGMwMzliYmYwICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNik6IHRpZDogNzdkYTczZjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0aWQ6IDc3ZGE3M2YwICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzOCk6IHRpZDogNzdkYTczZjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5KTogdGlkOiA3N2Rh NzNmMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAgbmJsb2NrcyAw eDcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0MCk6IHRpZDogNzdk YTczZjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IDc3ZGE3M2YwICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQy KTogdGlkOiA3N2RhNzNmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjM0NyAgbG9uZ2VzdDogMTk0OTIzNDcKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0Myk6IHRpZDogNzdkYTczZjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NCk6IHRpZDogNzdkYTczZjAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IDc3ZGE3M2YwICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2KTogdGlkOiA3N2RhNzNmMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0Nyk6IHRpZDogNzdkYTczZjAgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4KTogdGlkOiBk OGQwYzg4ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogZDhkMGM4OGYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTogdGlkOiBkOGQw Yzg4ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNTEpOiB0aWQ6IGQ4ZDBjODhmICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjQwMCBuYmxvY2tzIDB4OCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDUyKTogdGlkOiBkOGQwYzg4ZiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogZDhkMGM4OGYgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTQpOiB0aWQ6IGQ4ZDBjODhm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzQ2ICBsb25nZXN0OiAxOTQ5MjM0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTog dGlkOiBkOGQwYzg4ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDU2KTogdGlkOiBkOGQwYzg4ZiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Nyk6IHRpZDogZDhkMGM4OGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNTgpOiB0aWQ6IGQ4ZDBjODhmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDU5KTogdGlkOiBkOGQwYzg4ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjApOiB0aWQ6IDQ1M2E2MjFiICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDYxKTogdGlkOiA0NTNhNjIxYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6IDQ1M2E2MjFiICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg2Myk6IHRpZDogNDUzYTYyMWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg3ODAwIG5ibG9ja3MgMHg5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKT3BlciAoNjQpOiB0aWQ6IDQ1M2E2MjFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDY1KTogdGlkOiA0NTNhNjIxYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2Nik6IHRpZDogNDUzYTYyMWIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDUgIGxvbmdlc3Q6 IDE5NDkyMzQ1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDQ1M2E2MjFiICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNjgpOiB0aWQ6IDQ1M2E2MjFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiA0NTNhNjIx YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg3MCk6IHRpZDogNDUzYTYyMWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IDQ1M2E2 MjFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg3Mik6IHRpZDogMjI4OWQ3M2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6IDIyODlk NzNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3NCk6IHRpZDogMjI4OWQ3M2QgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDc1KTog dGlkOiAyMjg5ZDczZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhjMDAg bmJsb2NrcyAweGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg3Nik6 IHRpZDogMjI4OWQ3M2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDIyODlk NzNkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDc4KTogdGlkOiAyMjg5ZDczZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NCAgbG9uZ2VzdDogMTk0OTIzNDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogMjI4OWQ3M2QgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4MCk6IHRpZDogMjI4 OWQ3M2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IDIyODlkNzNkICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgyKTogdGlkOiAy Mjg5ZDczZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogMjI4OWQ3M2QgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg0 KTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogOTk0OTRjYTggIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg2KTog dGlkOiA5OTQ5NGNhOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODcpOiB0aWQ6IDk5NDk0Y2E4ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YTAwMCBuYmxvY2tzIDB4YyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDg4KTogdGlkOiA5OTQ5NGNhOCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogOTk0OTRjYTggIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTApOiB0aWQ6 IDk5NDk0Y2E4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzQyICBsb25nZXN0OiAxOTQ5MjM0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDkxKTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkyKTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg5Myk6IHRpZDogOTk0OTRjYTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTQpOiB0aWQ6IDk5NDk0Y2E4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDk1KTogdGlkOiA5OTQ5NGNhOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTYpOiB0aWQ6IDM0NDRmNTYx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDk3KTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTgpOiB0aWQ6IDM0NDRmNTYxICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg5OSk6IHRpZDogMzQ0NGY1NjEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhiNDAwIG5ibG9ja3MgMHhkIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDMKT3BlciAoMTAwKTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMDEpOiB0aWQ6IDM0NDRmNTYxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwMik6IHRpZDogMzQ0NGY1NjEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz NDEgIGxvbmdlc3Q6IDE5NDkyMzQxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlk OiAzNDQ0ZjU2MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDEwNCk6IHRpZDogMzQ0NGY1NjEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1 KTogdGlkOiAzNDQ0ZjU2MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IDM0NDRmNTYxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEwNyk6IHRpZDogMzQ0NGY1NjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOCk6IHRpZDogOTA0ZTE1MGUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTA5KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEwKTogdGlkOiA5MDRlMTUwZSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTExKTogdGlkOiA5MDRlMTUwZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGM4MDAgbmJsb2NrcyAweGUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICgxMTIpOiB0aWQ6IDkwNGUxNTBlICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExMyk6IHRpZDogOTA0ZTE1MGUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTE0KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0MCAg bG9uZ2VzdDogMTk0OTIzNDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IDkw NGUxNTBlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTE2KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0 aWQ6IDkwNGUxNTBlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDExOCk6IHRpZDogOTA0ZTE1MGUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5 KTogdGlkOiA5MDRlMTUwZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIwKTogdGlkOiA5N2RkMjgwYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjEpOiB0aWQ6IDk3ZGQyODBhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjIpOiB0aWQ6IDk3ZGQyODBhICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMjMpOiB0aWQ6IDk3ZGQyODBhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZGMwMCBuYmxvY2tzIDB4ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDEyNCk6IHRpZDogOTdkZDI4MGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTI1KTogdGlkOiA5N2RkMjgwYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMjYpOiB0aWQ6IDk3ZGQyODBhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM5ICBsb25n ZXN0OiAxOTQ5MjMzOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogOTdkZDI4 MGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMjgpOiB0aWQ6IDk3ZGQyODBhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6IHRpZDog OTdkZDI4MGEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTMwKTogdGlkOiA5N2RkMjgwYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0 aWQ6IDk3ZGQyODBhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzIpOiB0aWQ6IGJiMGJiYmExICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6 IHRpZDogYmIwYmJiYTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNCk6IHRpZDogYmIwYmJiYTEgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEzNSk6IHRpZDogYmIwYmJiYTEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhmMDAwIG5ibG9ja3MgMHgxMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgzCk9wZXIgKDEzNik6IHRpZDogYmIwYmJiYTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTM3KTogdGlkOiBiYjBiYmJhMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzgpOiB0aWQ6IGJiMGJiYmExICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM3ICBsb25nZXN0 OiAxOTQ5MjMzNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogYmIwYmJiYTEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNDApOiB0aWQ6IGJiMGJiYmExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogYmIw YmJiYTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTQyKTogdGlkOiBiYjBiYmJhMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6 IGJiMGJiYmExICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDQpOiB0aWQ6IGZhNGFmYzcwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRp ZDogZmE0YWZjNzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE0Nik6IHRpZDogZmE0YWZjNzAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDE0Nyk6IHRpZDogZmE0YWZjNzAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgxMDQwMCBuYmxvY2tzIDB4MTIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MwpPcGVyICgxNDgpOiB0aWQ6IGZhNGFmYzcwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 OSk6IHRpZDogZmE0YWZjNzAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTUwKTogdGlkOiBmYTRhZmM3MCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNiAgbG9uZ2VzdDog MTk0OTIzMzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IGZhNGFmYzcwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTUyKTogdGlkOiBmYTRhZmM3MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IGZhNGFm YzcwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE1NCk6IHRpZDogZmE0YWZjNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiBm YTRhZmM3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTU2KTogdGlkOiA0YWViNjViNSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6 IDRhZWI2NWI1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNTgpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgxNTkpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4MTE4MDAgbmJsb2NrcyAweDEzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMK T3BlciAoMTYwKTogdGlkOiA0YWViNjViNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEp OiB0aWQ6IDRhZWI2NWI1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDE2Mik6IHRpZDogNGFlYjY1YjUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzUgIGxvbmdlc3Q6IDE5 NDkyMzM1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTogdGlkOiA0YWViNjViNSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE2NCk6IHRpZDogNGFlYjY1YjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY1KTogdGlkOiA0YWViNjVi NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNjYpOiB0aWQ6IDRhZWI2NWI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogNGFl YjY1YjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2OCk6IHRpZDogMzYzOGQ1ZGEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiAz NjM4ZDVkYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiAzNjM4ZDVkYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTcxKTogdGlkOiAzNjM4ZDVkYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDEyYzAwIG5ibG9ja3MgMHgxNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9w ZXIgKDE3Mik6IHRpZDogMzYzOGQ1ZGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTog dGlkOiAzNjM4ZDVkYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxNzQpOiB0aWQ6IDM2MzhkNWRhICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM0ICBsb25nZXN0OiAxOTQ5 MjMzNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRpZDogMzYzOGQ1ZGEgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NzYpOiB0aWQ6IDM2MzhkNWRhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nyk6IHRpZDogMzYzOGQ1ZGEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTc4KTogdGlkOiAzNjM4ZDVkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IDM2Mzhk NWRhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODApOiB0aWQ6IDQ3MmQzOGVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MSk6IHRpZDogNDcy ZDM4ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4Mik6IHRpZDogNDcyZDM4ZWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4 Myk6IHRpZDogNDcyZDM4ZWYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgx NDAwMCBuYmxvY2tzIDB4MTYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVy ICgxODQpOiB0aWQ6IDQ3MmQzOGVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRp ZDogNDcyZDM4ZWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTg2KTogdGlkOiA0NzJkMzhlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzMiAgbG9uZ2VzdDogMTk0OTIz MzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6IDQ3MmQzOGVmICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTg4 KTogdGlkOiA0NzJkMzhlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODkpOiB0aWQ6IDQ3MmQzOGVmICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE5MCk6IHRpZDogNDcyZDM4ZWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiA0NzJkMzhl ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTkyKTogdGlkOiA5NzEyYWY3YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IDk3MTJh ZjdhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOTQpOiB0aWQ6IDk3MTJhZjdhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTUp OiB0aWQ6IDk3MTJhZjdhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTU0 MDAgbmJsb2NrcyAweDE3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAo MTk2KTogdGlkOiA5NzEyYWY3YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6 IDk3MTJhZjdhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE5OCk6IHRpZDogOTcxMmFmN2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzEgIGxvbmdlc3Q6IDE5NDkyMzMx Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiA5NzEyYWY3YSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwMCk6 IHRpZDogOTcxMmFmN2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAxKTogdGlkOiA5NzEyYWY3YSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy MDIpOiB0aWQ6IDk3MTJhZjdhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6IHRpZDogOTcxMmFmN2Eg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwNCk6IHRpZDogZTBlZDVkMDYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiBlMGVkNWQw NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjA2KTogdGlkOiBlMGVkNWQwNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjA3KTog dGlkOiBlMGVkNWQwNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE2ODAw IG5ibG9ja3MgMHgxOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDIw OCk6IHRpZDogZTBlZDVkMDYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiBl MGVkNWQwNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgyMTApOiB0aWQ6IGUwZWQ1ZDA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMwICBsb25nZXN0OiAxOTQ5MjMzMAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDogZTBlZDVkMDYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTIpOiB0 aWQ6IGUwZWQ1ZDA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDogZTBlZDVkMDYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE0 KTogdGlkOiBlMGVkNWQwNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUpOiB0aWQ6IGUwZWQ1ZDA2ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMTYpOiB0aWQ6IGJhOGMxNjVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogYmE4YzE2NWMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIxOCk6IHRpZDogYmE4YzE2NWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxOSk6IHRp ZDogYmE4YzE2NWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxN2MwMCBu YmxvY2tzIDB4MTkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyMjAp OiB0aWQ6IGJhOGMxNjVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogYmE4 YzE2NWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjIyKTogdGlkOiBiYThjMTY1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyOSAgbG9uZ2VzdDogMTk0OTIzMjkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IGJhOGMxNjVjICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI0KTogdGlk OiBiYThjMTY1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjUpOiB0aWQ6IGJhOGMxNjVjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyNik6 IHRpZDogYmE4YzE2NWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTogdGlkOiBiYThjMTY1YyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjI4KTogdGlkOiA3Yzk1ZTI3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IDdjOTVlMjcwICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzApOiB0aWQ6IDdjOTVlMjcwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzEpOiB0aWQ6 IDdjOTVlMjcwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTkwMDAgbmJs b2NrcyAweDFiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjMyKTog dGlkOiA3Yzk1ZTI3MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IDdjOTVl MjcwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDIzNCk6IHRpZDogN2M5NWUyNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjcgIGxvbmdlc3Q6IDE5NDkyMzI3Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiA3Yzk1ZTI3MCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzNik6IHRpZDog N2M5NWUyNzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiA3Yzk1ZTI3MCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzgpOiB0 aWQ6IDdjOTVlMjcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDogN2M5NWUyNzAgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0MCk6IHRpZDogZGE4NGQ0M2IgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiBkYTg0ZDQzYiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQyKTogdGlkOiBkYTg0ZDQzYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQzKTogdGlkOiBk YTg0ZDQzYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFhNDAwIG5ibG9j a3MgMHgxYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI0NCk6IHRp ZDogZGE4NGQ0M2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiBkYTg0ZDQz YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyNDYpOiB0aWQ6IGRhODRkNDNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI2ICBsb25nZXN0OiAxOTQ5MjMyNgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogZGE4NGQ0M2IgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDgpOiB0aWQ6IGRh ODRkNDNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogZGE4NGQ0M2IgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjUwKTogdGlk OiBkYTg0ZDQzYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IGRhODRkNDNiICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNTIpOiB0aWQ6IDY0ZWU5ZTAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogNjRlZTllMDMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1NCk6IHRpZDogNjRlZTllMDMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI1NSk6IHRpZDogNjRl ZTllMDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxYjgwMCBuYmxvY2tz IDB4MWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyNTYpOiB0aWQ6 IDY0ZWU5ZTAzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogNjRlZTllMDMg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjU4KTogdGlkOiA2NGVlOWUwMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNSAgbG9uZ2VzdDogMTk0OTIzMjUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6IDY0ZWU5ZTAzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYwKTogdGlkOiA2NGVl OWUwMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjEpOiB0aWQ6IDY0ZWU5ZTAzICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Mik6IHRpZDog NjRlZTllMDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiA2NGVlOWUwMyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjY0KTogdGlkOiBkOTFkMzYzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjUpOiB0aWQ6IGQ5MWQzNjM0ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NjYpOiB0aWQ6IGQ5MWQzNjM0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjcpOiB0aWQ6IGQ5MWQz NjM0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWNjMDAgbmJsb2NrcyAw eDFlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjY4KTogdGlkOiBk OTFkMzYzNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IGQ5MWQzNjM0ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI3MCk6IHRpZDogZDkxZDM2MzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMjQgIGxvbmdlc3Q6IDE5NDkyMzI0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjcxKTogdGlkOiBkOTFkMzYzNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Mik6IHRpZDogZDkxZDM2 MzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjczKTogdGlkOiBkOTFkMzYzNCAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzQpOiB0aWQ6IGQ5 MWQzNjM0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogZDkxZDM2MzQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3 Nik6IHRpZDogMTkyY2NhNzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiAxOTJjY2E3MyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc4 KTogdGlkOiAxOTJjY2E3MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjc5KTogdGlkOiAxOTJjY2E3 MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFlMDAwIG5ibG9ja3MgMHgy MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI4MCk6IHRpZDogMTky Y2NhNzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiAxOTJjY2E3MyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy ODIpOiB0aWQ6IDE5MmNjYTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzIyICBsb25nZXN0OiAxOTQ5MjMyMgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogMTkyY2NhNzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODQpOiB0aWQ6IDE5MmNjYTcz ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogMTkyY2NhNzMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg2KTogdGlkOiAxOTJj Y2E3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6IDE5MmNjYTczICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODgp OiB0aWQ6IGJjNjJhZTI2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogYmM2MmFlMjYgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MCk6 IHRpZDogYmM2MmFlMjYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5MSk6IHRpZDogYmM2MmFlMjYg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxZjQwMCBuYmxvY2tzIDB4MjEg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyOTIpOiB0aWQ6IGJjNjJh ZTI2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogYmM2MmFlMjYgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjk0 KTogdGlkOiBiYzYyYWUyNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMyMSAgbG9uZ2VzdDogMTk0OTIzMjEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTUpOiB0aWQ6IGJjNjJhZTI2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk2KTogdGlkOiBiYzYyYWUyNiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IGJjNjJhZTI2ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5OCk6IHRpZDogYmM2MmFl MjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjk5KTogdGlkOiBiYzYyYWUyNiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAwKTog dGlkOiA3ZmI1NzM0MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDEpOiB0aWQ6IDdmYjU3MzQyICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDIpOiB0 aWQ6IDdmYjU3MzQyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDMpOiB0aWQ6IDdmYjU3MzQyICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjA4MDAgbmJsb2NrcyAweDIyIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzA0KTogdGlkOiA3ZmI1NzM0 MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0aWQ6IDdmYjU3MzQyICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwNik6 IHRpZDogN2ZiNTczNDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIzMjAgIGxvbmdlc3Q6IDE5NDkyMzIwCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzA3KTogdGlkOiA3ZmI1NzM0MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwOCk6IHRpZDogN2ZiNTczNDIgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiA3ZmI1NzM0MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTApOiB0aWQ6IDdmYjU3MzQy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMxMSk6IHRpZDogN2ZiNTczNDIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMik6IHRp ZDogNzc1N2E0M2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzEzKTogdGlkOiA3NzU3YTQzZCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE0KTogdGlk OiA3NzU3YTQzZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzE1KTogdGlkOiA3NzU3YTQzZCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIxYzAwIG5ibG9ja3MgMHgyMyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDMxNik6IHRpZDogNzc1N2E0M2Qg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE3KTogdGlkOiA3NzU3YTQzZCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTgpOiB0 aWQ6IDc3NTdhNDNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMzE5ICBsb25nZXN0OiAxOTQ5MjMxOQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxOSk6IHRpZDogNzc1N2E0M2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjApOiB0aWQ6IDc3NTdhNDNkICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogNzc1N2E0M2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIyKTogdGlkOiA3NzU3YTQzZCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMjMpOiB0aWQ6IDc3NTdhNDNkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjQpOiB0aWQ6 IDIyYTA1MjcwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyNSk6IHRpZDogMjJhMDUyNzAgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNik6IHRpZDog MjJhMDUyNzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyNyk6IHRpZDogMjJhMDUyNzAgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMzAwMCBuYmxvY2tzIDB4MjUgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzMjgpOiB0aWQ6IDIyYTA1MjcwICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogMjJhMDUyNzAgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMwKTogdGlk OiAyMmEwNTI3MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjMxNyAgbG9uZ2VzdDogMTk0OTIzMTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMzEpOiB0aWQ6IDIyYTA1MjcwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzMyKTogdGlkOiAyMmEwNTI3MCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzMpOiB0aWQ6IDIyYTA1MjcwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNCk6IHRpZDogMjJhMDUyNzAgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzM1KTogdGlkOiAyMmEwNTI3MCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM2KTogdGlkOiBl YmNhNDQ2YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6IGViY2E0NDZhICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzgpOiB0aWQ6IGVi Y2E0NDZhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzkpOiB0aWQ6IGViY2E0NDZhICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjQ0MDAgbmJsb2NrcyAweDI2IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzQwKTogdGlkOiBlYmNhNDQ2YSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDEpOiB0aWQ6IGViY2E0NDZhICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0Mik6IHRpZDog ZWJjYTQ0NmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIzMTYgIGxvbmdlc3Q6IDE5NDkyMzE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzQzKTogdGlkOiBlYmNhNDQ2YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0NCk6IHRpZDogZWJjYTQ0NmEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQ1KTogdGlkOiBlYmNhNDQ2YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6IGViY2E0NDZhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM0Nyk6IHRpZDogZWJjYTQ0NmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0OCk6IHRpZDogNGIx ZTc2MDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ5KTogdGlkOiA0YjFlNzYwNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUwKTogdGlkOiA0YjFl NzYwNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzUxKTogdGlkOiA0YjFlNzYwNSAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI1ODAwIG5ibG9ja3MgMHgyNyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM1Mik6IHRpZDogNGIxZTc2MDUgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUzKTogdGlkOiA0YjFlNzYwNSAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTQpOiB0aWQ6IDRi MWU3NjA1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMzE1ICBsb25nZXN0OiAxOTQ5MjMxNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1NSk6IHRpZDogNGIxZTc2MDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTYpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM1Nyk6IHRpZDogNGIxZTc2MDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzU4KTogdGlkOiA0YjFlNzYwNSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNTkpOiB0aWQ6IDRiMWU3NjA1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjApOiB0aWQ6IDhkYWM4 NmI4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM2MSk6IHRpZDogOGRhYzg2YjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6IHRpZDogOGRhYzg2 YjggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2Myk6IHRpZDogOGRhYzg2YjggIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNmMwMCBuYmxvY2tzIDB4MjggZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzNjQpOiB0aWQ6IDhkYWM4NmI4ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2NSk6IHRpZDogOGRhYzg2YjggIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzY2KTogdGlkOiA4ZGFj ODZiOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjMxNCAgbG9uZ2VzdDogMTk0OTIzMTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjcpOiB0aWQ6IDhkYWM4NmI4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY4KTogdGlkOiA4ZGFjODZiOCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNjkpOiB0aWQ6IDhkYWM4NmI4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3MCk6IHRpZDogOGRhYzg2YjggIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzcxKTogdGlkOiA4ZGFjODZiOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcyKTogdGlkOiAxZTBhNjQz ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzMpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0aWQ6IDFlMGE2NDNm ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzUpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjgwMDAgbmJsb2NrcyAweDJhIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzc2KTogdGlkOiAxZTBhNjQzZiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzcpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3OCk6IHRpZDogMWUwYTY0 M2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMTIgIGxvbmdlc3Q6IDE5NDkyMzEyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc5 KTogdGlkOiAxZTBhNjQzZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDogMWUwYTY0M2YgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzgxKTogdGlkOiAxZTBhNjQzZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODIpOiB0aWQ6IDFlMGE2NDNmICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM4Myk6IHRpZDogMWUwYTY0M2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4NCk6IHRpZDogOTM0ODNiZDcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzg1KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlkOiA5MzQ4M2JkNyAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzg3KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDI5NDAwIG5ibG9ja3MgMHgyYiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM4OCk6IHRpZDogOTM0ODNiZDcgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzg5KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTApOiB0aWQ6IDkzNDgzYmQ3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzExICBsb25nZXN0OiAxOTQ5MjMxMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MSk6 IHRpZDogOTM0ODNiZDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOTIpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5Myk6IHRpZDogOTM0ODNiZDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk0KTogdGlkOiA5MzQ4M2JkNyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzOTUpOiB0aWQ6IDkzNDgzYmQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTYpOiB0aWQ6IDIxNzgxNWQ5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5Nyk6IHRpZDogMjE3ODE1ZDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDogMjE3ODE1ZDkgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDM5OSk6IHRpZDogMjE3ODE1ZDkgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgyYTgwMCBuYmxvY2tzIDB4MmMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MwpPcGVyICg0MDApOiB0aWQ6IDIxNzgxNWQ5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogMjE3ODE1ZDkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDAyKTogdGlkOiAyMTc4MTVkOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMxMCAgbG9uZ2VzdDogMTk0OTIzMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDMpOiB0 aWQ6IDIxNzgxNWQ5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiAyMTc4MTVkOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MDUpOiB0aWQ6IDIxNzgxNWQ5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQwNik6IHRpZDogMjE3ODE1ZDkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDA3KTogdGlkOiAyMTc4MTVkOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA4KTogdGlkOiA0Mzg3MjVlZiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDkpOiB0aWQ6IDQzODcyNWVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IDQzODcyNWVmICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg0MTEpOiB0aWQ6IDQzODcyNWVmICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MmJjMDAgbmJsb2NrcyAweDJkIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDMKT3BlciAoNDEyKTogdGlkOiA0Mzg3MjVlZiAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTMpOiB0aWQ6IDQzODcyNWVmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxNCk6IHRpZDogNDM4NzI1ZWYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MDkgIGxvbmdlc3Q6IDE5NDkyMzA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE1KTogdGlk OiA0Mzg3MjVlZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQxNik6IHRpZDogNDM4NzI1ZWYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3 KTogdGlkOiA0Mzg3MjVlZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MTgpOiB0aWQ6IDQzODcyNWVmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQxOSk6IHRpZDogNDM4NzI1ZWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMCk6IHRpZDogMzM0NjUwYzEgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDIxKTogdGlkOiAzMzQ2NTBjMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiAzMzQ2NTBjMSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNDIzKTogdGlkOiAzMzQ2NTBjMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDJkMDAwIG5ibG9ja3MgMHgyZiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgzCk9wZXIgKDQyNCk6IHRpZDogMzM0NjUwYzEgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDI1KTogdGlkOiAzMzQ2NTBjMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjYpOiB0aWQ6IDMzNDY1MGMxICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA3 ICBsb25nZXN0OiAxOTQ5MjMwNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNyk6IHRpZDog MzM0NjUwYzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MjgpOiB0aWQ6IDMzNDY1MGMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6 IHRpZDogMzM0NjUwYzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDMwKTogdGlkOiAzMzQ2NTBjMSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MzEpOiB0aWQ6IDMzNDY1MGMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzIpOiB0aWQ6IGNmZTcxNmM2ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzMyk6IHRpZDogY2ZlNzE2YzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogY2ZlNzE2YzYgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQzNSk6IHRpZDogY2ZlNzE2YzYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgyZTQwMCBuYmxvY2tzIDB4MzAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICg0MzYpOiB0aWQ6IGNmZTcxNmM2ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQzNyk6IHRpZDogY2ZlNzE2YzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDM4KTogdGlkOiBjZmU3MTZjNiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwNiAg bG9uZ2VzdDogMTk0OTIzMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzkpOiB0aWQ6IGNm ZTcxNmM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDQwKTogdGlkOiBjZmU3MTZjNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0 aWQ6IGNmZTcxNmM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQ0Mik6IHRpZDogY2ZlNzE2YzYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQz KTogdGlkOiBjZmU3MTZjNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ0KTogdGlkOiA5NWIwMmEwOCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NDUpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDYpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0NDcpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MmY4MDAgbmJsb2NrcyAweDMxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoNDQ4KTogdGlkOiA5NWIwMmEwOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NDkpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1MCk6IHRpZDogOTViMDJhMDggIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDUgIGxv bmdlc3Q6IDE5NDkyMzA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUxKTogdGlkOiA5NWIw MmEwOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ1Mik6IHRpZDogOTViMDJhMDggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUzKTogdGlk OiA5NWIwMmEwOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0NTQpOiB0aWQ6IDk1YjAyYTA4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6 IHRpZDogOTViMDJhMDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nik6IHRpZDogNTU2NzFmYTAgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3 KTogdGlkOiA1NTY3MWZhMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU4KTogdGlkOiA1NTY3MWZhMCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNDU5KTogdGlkOiA1NTY3MWZhMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDMwYzAwIG5ibG9ja3MgMHgzMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDQ2MCk6IHRpZDogNTU2NzFmYTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDYxKTogdGlkOiA1NTY3MWZhMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NjIpOiB0aWQ6IDU1NjcxZmEwICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzA0ICBsb25n ZXN0OiAxOTQ5MjMwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Myk6IHRpZDogNTU2NzFm YTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NjQpOiB0aWQ6IDU1NjcxZmEwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDog NTU2NzFmYTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDY2KTogdGlkOiA1NTY3MWZhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0 aWQ6IDU1NjcxZmEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjgpOiB0aWQ6IDRlOWE1NDdjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6 IHRpZDogNGU5YTU0N2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MCk6IHRpZDogNGU5YTU0N2MgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQ3MSk6IHRpZDogNGU5YTU0N2MgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgzMjAwMCBuYmxvY2tzIDB4MzQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICg0NzIpOiB0aWQ6IDRlOWE1NDdjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ3Myk6IHRpZDogNGU5YTU0N2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDc0KTogdGlkOiA0ZTlhNTQ3YyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwMiAgbG9uZ2Vz dDogMTk0OTIzMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzUpOiB0aWQ6IDRlOWE1NDdj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDc2KTogdGlkOiA0ZTlhNTQ3YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IDRl OWE1NDdjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ3OCk6IHRpZDogNGU5YTU0N2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlk OiA0ZTlhNTQ3YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDgwKTogdGlkOiBkNWM5YTcwNCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0 aWQ6IGQ1YzlhNzA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0ODIpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0ODMpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MzM0MDAgbmJsb2NrcyAweDM1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDMKT3BlciAoNDg0KTogdGlkOiBkNWM5YTcwNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 ODUpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQ4Nik6IHRpZDogZDVjOWE3MDQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDEgIGxvbmdlc3Q6 IDE5NDkyMzAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTogdGlkOiBkNWM5YTcwNCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ4OCk6IHRpZDogZDVjOWE3MDQgIGxlbjogMTA0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT05USU5VRSAKQlVGIERBVEEKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lv bjogMgkJbHNuOiAxLDg4OQl0YWlsX2xzbjogMSw4MTIKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMy MjU2CXByZXYgb2Zmc2V0OiA4MjUJCW51bSBvcHM6IDQ5MQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRm MTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXpl OiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGQ1YzlhNzA0ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBXQVNfQ09OVCBFTkQgCkxlZnQgb3ZlciByZWdp b24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6 IGQ1YzlhNzA0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIpOiB0aWQ6IGQ1YzlhNzA0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6 IGQ1YzlhNzA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiA2NjQwODU2NSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1KTogdGlkOiA2 NjQwODU2NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNik6IHRpZDogNjY0MDg1NjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDcp OiB0aWQ6IDY2NDA4NTY1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzQ4 MDAgbmJsb2NrcyAweDM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAo OCk6IHRpZDogNjY0MDg1NjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogNjY0 MDg1NjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTApOiB0aWQ6IDY2NDA4NTY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzAwICBsb25nZXN0OiAxOTQ5MjMwMAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiA2NjQwODU2NSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyKTogdGlkOiA2 NjQwODU2NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDogNjY0MDg1NjUgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQpOiB0aWQ6 IDY2NDA4NTY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiA2NjQwODU2NSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTYpOiB0aWQ6IDdmNzBiZDhiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiA3ZjcwYmQ4YiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgp OiB0aWQ6IDdmNzBiZDhiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOSk6IHRpZDogN2Y3MGJkOGIg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNWMwMCBuYmxvY2tzIDB4Mzcg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyMCk6IHRpZDogN2Y3MGJk OGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IDdmNzBiZDhiICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyKTog dGlkOiA3ZjcwYmQ4YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjI5OSAgbG9uZ2VzdDogMTk0OTIyOTkKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMyk6IHRpZDogN2Y3MGJkOGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogN2Y3MGJkOGIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjUpOiB0aWQ6IDdmNzBiZDhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlkOiA3ZjcwYmQ4YiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNyk6IHRpZDogN2Y3MGJkOGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiBlMDk0 MThjZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOSk6IHRpZDogZTA5NDE4Y2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiBlMDk0MThj ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzEpOiB0aWQ6IGUwOTQxOGNkICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzcwMDAgbmJsb2NrcyAweDM5IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzIpOiB0aWQ6IGUwOTQxOGNkICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMzKTogdGlkOiBlMDk0MThjZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNCk6IHRpZDogZTA5NDE4Y2Qg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyOTcgIGxvbmdlc3Q6IDE5NDkyMjk3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0 aWQ6IGUwOTQxOGNkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzYpOiB0aWQ6IGUwOTQxOGNkICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 KTogdGlkOiBlMDk0MThjZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDogZTA5NDE4Y2QgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzkpOiB0aWQ6IGUwOTQxOGNkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MCk6IHRpZDogYWI0Y2Y1NjYgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDEpOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mik6IHRpZDogYWI0Y2Y1NjYgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQzKTogdGlkOiBhYjRjZjU2NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDM4NDAwIG5ibG9ja3MgMHgzYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDQ0KTogdGlkOiBhYjRjZjU2NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NSk6IHRpZDogYWI0Y2Y1NjYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk2ICBsb25nZXN0 OiAxOTQ5MjI5NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiBhYjRjZjU2NiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ4KTogdGlkOiBhYjRjZjU2NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogYWI0Y2Y1 NjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNTApOiB0aWQ6IGFiNGNmNTY2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiBhYjRj ZjU2NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTIpOiB0aWQ6IDZlYTFiNTQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiA2ZWEx YjU0NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNTQpOiB0aWQ6IDZlYTFiNTQ0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1NSk6 IHRpZDogNmVhMWI1NDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzOTgw MCBuYmxvY2tzIDB4M2IgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg1 Nik6IHRpZDogNmVhMWI1NDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDZl YTFiNTQ0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDU4KTogdGlkOiA2ZWExYjU0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NSAgbG9uZ2VzdDogMTk0OTIyOTUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDogNmVhMWI1NDQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2MCk6IHRpZDog NmVhMWI1NDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEpOiB0aWQ6IDZlYTFiNTQ0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYyKTogdGlk OiA2ZWExYjU0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogNmVhMWI1NDQgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDY0KTogdGlkOiA5MmE1ZTVlYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NSk6IHRpZDogOTJhNWU1ZWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2 KTogdGlkOiA5MmE1ZTVlYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNjcpOiB0aWQ6IDkyYTVlNWVj ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2FjMDAgbmJsb2NrcyAweDNj IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoNjgpOiB0aWQ6IDkyYTVl NWVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiA5MmE1ZTVlYyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg3MCk6 IHRpZDogOTJhNWU1ZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyOTQgIGxvbmdlc3Q6IDE5NDkyMjk0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzEpOiB0aWQ6IDkyYTVlNWVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzIpOiB0aWQ6IDkyYTVlNWVjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDczKTogdGlkOiA5MmE1ZTVlYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NCk6IHRpZDogOTJhNWU1ZWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IDkyYTVlNWVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nik6IHRpZDogNTdh MGI4YmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDU3YTBiOGJkICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OCk6IHRpZDogNTdhMGI4 YmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDc5KTogdGlkOiA1N2EwYjhiZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAwIG5ibG9ja3MgMHgzZSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDgwKTogdGlkOiA1N2EwYjhiZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogNTdhMGI4YmQgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoODIpOiB0aWQ6IDU3YTBiOGJk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjkyICBsb25nZXN0OiAxOTQ5MjI5MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTog dGlkOiA1N2EwYjhiZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDg0KTogdGlkOiA1N2EwYjhiZCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4 NSk6IHRpZDogNTdhMGI4YmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoODYpOiB0aWQ6IDU3YTBiOGJkICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg3KTogdGlkOiA1N2EwYjhiZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODgpOiB0aWQ6IDJmZTg5MGYyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg5KTogdGlkOiAyZmU4OTBmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTApOiB0aWQ6IDJmZTg5MGYyICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg5MSk6IHRpZDogMmZlODkwZjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHgzZDQwMCBuYmxvY2tzIDB4M2YgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MwpPcGVyICg5Mik6IHRpZDogMmZlODkwZjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTMpOiB0aWQ6IDJmZTg5MGYyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlkOiAyZmU4OTBmMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5MSAgbG9uZ2Vz dDogMTk0OTIyOTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogMmZlODkwZjIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg5Nik6IHRpZDogMmZlODkwZjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTcpOiB0aWQ6IDJmZTg5 MGYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDk4KTogdGlkOiAyZmU4OTBmMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OSk6IHRpZDogMmZl ODkwZjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDogYmU5N2M3YTEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAxKTogdGlkOiBi ZTk3YzdhMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTAyKTogdGlkOiBiZTk3YzdhMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTAzKTogdGlkOiBiZTk3YzdhMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDNlODAwIG5ibG9ja3MgMHg0MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9w ZXIgKDEwNCk6IHRpZDogYmU5N2M3YTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1KTog dGlkOiBiZTk3YzdhMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IGJlOTdjN2ExICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjkwICBsb25nZXN0OiAxOTQ5 MjI5MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogYmU5N2M3YTEgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MDgpOiB0aWQ6IGJlOTdjN2ExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOSk6IHRpZDogYmU5N2M3YTEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTEwKTogdGlkOiBiZTk3YzdhMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IGJlOTdj N2ExICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTIpOiB0aWQ6IGVjOGIwM2UyICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMyk6IHRpZDogZWM4 YjAzZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExNCk6IHRpZDogZWM4YjAzZTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEx NSk6IHRpZDogZWM4YjAzZTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgz ZmMwMCBuYmxvY2tzIDB4NDEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVy ICgxMTYpOiB0aWQ6IGVjOGIwM2UyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRp ZDogZWM4YjAzZTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTE4KTogdGlkOiBlYzhiMDNlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4OSAgbG9uZ2VzdDogMTk0OTIy ODkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IGVjOGIwM2UyICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTIw KTogdGlkOiBlYzhiMDNlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjEpOiB0aWQ6IGVjOGIwM2UyICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDEyMik6IHRpZDogZWM4YjAzZTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTogdGlkOiBlYzhiMDNl MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTI0KTogdGlkOiA4ZGZiYzkwNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjUpOiB0aWQ6IDhkZmJj OTA2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMjYpOiB0aWQ6IDhkZmJjOTA2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMjcp OiB0aWQ6IDhkZmJjOTA2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDEw MDAgbmJsb2NrcyAweDQzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAo MTI4KTogdGlkOiA4ZGZiYzkwNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjkpOiB0aWQ6 IDhkZmJjOTA2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDEzMCk6IHRpZDogOGRmYmM5MDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODcgIGxvbmdlc3Q6IDE5NDkyMjg3 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiA4ZGZiYzkwNiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMik6 IHRpZDogOGRmYmM5MDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlkOiA4ZGZiYzkwNiAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MzQpOiB0aWQ6IDhkZmJjOTA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRpZDogOGRmYmM5MDYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEzNik6IHRpZDogYzAxYWI2ZGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM3KTogdGlkOiBjMDFhYjZk ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTM4KTogdGlkOiBjMDFhYjZkZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTM5KTog dGlkOiBjMDFhYjZkZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQyNDAw IG5ibG9ja3MgMHg0NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDE0 MCk6IHRpZDogYzAxYWI2ZGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiBj MDFhYjZkZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxNDIpOiB0aWQ6IGMwMWFiNmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg2ICBsb25nZXN0OiAxOTQ5MjI4Ngot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogYzAxYWI2ZGYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDQpOiB0 aWQ6IGMwMWFiNmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRpZDogYzAxYWI2ZGYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ2 KTogdGlkOiBjMDFhYjZkZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6IGMwMWFiNmRmICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNDgpOiB0aWQ6IDdlNzQwZDdiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDogN2U3NDBkN2Ig IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE1MCk6IHRpZDogN2U3NDBkN2IgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1MSk6IHRp ZDogN2U3NDBkN2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0MzgwMCBu YmxvY2tzIDB4NDUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxNTIp OiB0aWQ6IDdlNzQwZDdiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogN2U3 NDBkN2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTU0KTogdGlkOiA3ZTc0MGQ3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4NSAgbG9uZ2VzdDogMTk0OTIyODUKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDdlNzQwZDdiICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU2KTogdGlk OiA3ZTc0MGQ3YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6IDdlNzQwZDdiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1OCk6 IHRpZDogN2U3NDBkN2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiA3ZTc0MGQ3YiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTYwKTogdGlkOiA4ZDc2Mjg3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IDhkNzYyODczICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNjIpOiB0aWQ6IDhkNzYyODczICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNjMpOiB0aWQ6 IDhkNzYyODczICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDRjMDAgbmJs b2NrcyAweDQ2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMTY0KTog dGlkOiA4ZDc2Mjg3MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDhkNzYy ODczICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE2Nik6IHRpZDogOGQ3NjI4NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODQgIGxvbmdlc3Q6IDE5NDkyMjg0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiA4ZDc2Mjg3MyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRpZDog OGQ3NjI4NzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiA4ZDc2Mjg3MyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzApOiB0 aWQ6IDhkNzYyODczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogOGQ3NjI4NzMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3Mik6IHRpZDogYmMzMWVhMTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiBiYzMxZWExNiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTc0KTogdGlkOiBiYzMxZWExNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTc1KTogdGlkOiBi YzMxZWExNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ2MDAwIG5ibG9j a3MgMHg0OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDE3Nik6IHRp ZDogYmMzMWVhMTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiBiYzMxZWEx NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNzgpOiB0aWQ6IGJjMzFlYTE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjgyICBsb25nZXN0OiAxOTQ5MjI4MgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogYmMzMWVhMTYgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6IGJj MzFlYTE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MSk6IHRpZDogYmMzMWVhMTYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgyKTogdGlk OiBiYzMxZWExNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IGJjMzFlYTE2ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxODQpOiB0aWQ6IDg2NDgwNWFhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogODY0ODA1YWEgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE4Nik6IHRpZDogODY0ODA1YWEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4Nyk6IHRpZDogODY0 ODA1YWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0NzQwMCBuYmxvY2tz IDB4NDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxODgpOiB0aWQ6 IDg2NDgwNWFhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogODY0ODA1YWEg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTkwKTogdGlkOiA4NjQ4MDVhYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4MSAgbG9uZ2VzdDogMTk0OTIyODEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDg2NDgwNWFhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiA4NjQ4 MDVhYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IDg2NDgwNWFhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5NCk6IHRpZDog ODY0ODA1YWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiA4NjQ4MDVhYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTk2KTogdGlkOiA3YTUxOGM5YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IDdhNTE4YzljICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx OTgpOiB0aWQ6IDdhNTE4YzljICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTkpOiB0aWQ6IDdhNTE4 YzljICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDg4MDAgbmJsb2NrcyAw eDRhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjAwKTogdGlkOiA3 YTUxOGM5YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IDdhNTE4YzljICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDIwMik6IHRpZDogN2E1MThjOWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyODAgIGxvbmdlc3Q6IDE5NDkyMjgwCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA3YTUxOGM5YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogN2E1MThj OWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiA3YTUxOGM5YyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDYpOiB0aWQ6IDdh NTE4YzljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogN2E1MThjOWMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIw OCk6IHRpZDogNTEwMTEzYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiA1MTAxMTNiNyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEw KTogdGlkOiA1MTAxMTNiNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjExKTogdGlkOiA1MTAxMTNi NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ5YzAwIG5ibG9ja3MgMHg0 YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDIxMik6IHRpZDogNTEw MTEzYjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEzKTogdGlkOiA1MTAxMTNiNyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy MTQpOiB0aWQ6IDUxMDExM2I3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjc5ICBsb25nZXN0OiAxOTQ5MjI3OQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogNTEwMTEzYjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTYpOiB0aWQ6IDUxMDExM2I3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogNTEwMTEzYjcgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE4KTogdGlkOiA1MTAx MTNiNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0aWQ6IDUxMDExM2I3ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjAp OiB0aWQ6IDkxMjI4YTgzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogOTEyMjhhODMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6 IHRpZDogOTEyMjhhODMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyMyk6IHRpZDogOTEyMjhhODMg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0YjAwMCBuYmxvY2tzIDB4NGQg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyMjQpOiB0aWQ6IDkxMjI4 YTgzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDogOTEyMjhhODMgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjI2 KTogdGlkOiA5MTIyOGE4MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjI3NyAgbG9uZ2VzdDogMTk0OTIyNzcKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMjcpOiB0aWQ6IDkxMjI4YTgzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI4KTogdGlkOiA5MTIyOGE4MyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IDkxMjI4YTgzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6IHRpZDogOTEyMjhh ODMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlkOiA5MTIyOGE4MyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMyKTog dGlkOiA4M2E4OTBmNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IDgzYTg5MGY2ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0 aWQ6IDgzYTg5MGY2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzUpOiB0aWQ6IDgzYTg5MGY2ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGM0MDAgbmJsb2NrcyAweDRlIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjM2KTogdGlkOiA4M2E4OTBm NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6IDgzYTg5MGY2ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzOCk6 IHRpZDogODNhODkwZjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIyNzYgIGxvbmdlc3Q6IDE5NDkyMjc2Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjM5KTogdGlkOiA4M2E4OTBmNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0MCk6IHRpZDogODNhODkwZjYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiA4M2E4OTBmNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDIpOiB0aWQ6IDgzYTg5MGY2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDogODNhODkwZjYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NCk6IHRp ZDogMzRiYTQ5YmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiAzNGJhNDliYSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlk OiAzNGJhNDliYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ3KTogdGlkOiAzNGJhNDliYSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDRkODAwIG5ibG9ja3MgMHg0ZiBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI0OCk6IHRpZDogMzRiYTQ5YmEg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiAzNGJhNDliYSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTApOiB0 aWQ6IDM0YmE0OWJhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMjc1ICBsb25nZXN0OiAxOTQ5MjI3NQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI1MSk6IHRpZDogMzRiYTQ5YmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTIpOiB0aWQ6IDM0YmE0OWJhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogMzRiYTQ5YmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU0KTogdGlkOiAzNGJhNDliYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDM0YmE0OWJhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0aWQ6 IGU2MDU0ZjAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogZTYwNTRmMDIgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDog ZTYwNTRmMDIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI1OSk6IHRpZDogZTYwNTRmMDIgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ZWMwMCBuYmxvY2tzIDB4NTAgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyNjApOiB0aWQ6IGU2MDU0ZjAyICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogZTYwNTRmMDIgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlk OiBlNjA1NGYwMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI3NCAgbG9uZ2VzdDogMTk0OTIyNzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjMpOiB0aWQ6IGU2MDU0ZjAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY0KTogdGlkOiBlNjA1NGYwMiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNjUpOiB0aWQ6IGU2MDU0ZjAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nik6IHRpZDogZTYwNTRmMDIgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiBlNjA1NGYwMiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY4KTogdGlkOiA2 ZDc0ZmNhOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IDZkNzRmY2E5ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IDZk NzRmY2E5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzEpOiB0aWQ6IDZkNzRmY2E5ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTAwMDAgbmJsb2NrcyAweDUyIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjcyKTogdGlkOiA2ZDc0ZmNhOSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IDZkNzRmY2E5ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDog NmQ3NGZjYTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIyNzIgIGxvbmdlc3Q6IDE5NDkyMjcyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjc1KTogdGlkOiA2ZDc0ZmNhOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Nik6IHRpZDogNmQ3NGZjYTkgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjc3KTogdGlkOiA2ZDc0ZmNhOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzgpOiB0aWQ6IDZkNzRmY2E5ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogNmQ3NGZjYTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MCk6IHRpZDogM2M5 NWYyYjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiAzYzk1ZjJiMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiAzYzk1 ZjJiMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjgzKTogdGlkOiAzYzk1ZjJiMyAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUxNDAwIG5ibG9ja3MgMHg1MyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI4NCk6IHRpZDogM2M5NWYyYjMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1KTogdGlkOiAzYzk1ZjJiMyAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IDNj OTVmMmIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMjcxICBsb25nZXN0OiAxOTQ5MjI3MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI4Nyk6IHRpZDogM2M5NWYyYjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODgpOiB0aWQ6IDNjOTVmMmIzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI4OSk6IHRpZDogM2M5NWYyYjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkwKTogdGlkOiAzYzk1ZjJiMyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTEpOiB0aWQ6IDNjOTVmMmIzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTIpOiB0aWQ6IGE1OGJl MDgwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogYTU4YmUwODAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NCk6IHRpZDogYTU4YmUw ODAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5NSk6IHRpZDogYTU4YmUwODAgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MjgwMCBuYmxvY2tzIDB4NTQgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyOTYpOiB0aWQ6IGE1OGJlMDgwICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6IHRpZDogYTU4YmUwODAgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiBhNThi ZTA4MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI3MCAgbG9uZ2VzdDogMTk0OTIyNzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy OTkpOiB0aWQ6IGE1OGJlMDgwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAwKTogdGlkOiBhNThiZTA4MCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMDEpOiB0aWQ6IGE1OGJlMDgwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMik6IHRpZDogYTU4YmUwODAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzAzKTogdGlkOiBhNThiZTA4MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA0KTogdGlkOiBmNDUzNjI4 NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMDUpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDYpOiB0aWQ6IGY0NTM2Mjg0 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDcpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTNjMDAgbmJsb2NrcyAweDU1IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzA4KTogdGlkOiBmNDUzNjI4NCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogZjQ1MzYy ODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNjkgIGxvbmdlc3Q6IDE5NDkyMjY5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEx KTogdGlkOiBmNDUzNjI4NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMxMik6IHRpZDogZjQ1MzYyODQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzEzKTogdGlkOiBmNDUzNjI4NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0aWQ6IGY0NTM2Mjg0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxNSk6IHRpZDogZjQ1MzYyODQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNik6IHRpZDogZWFlMjZjY2Ug IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzE3KTogdGlkOiBlYWUyNmNjZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE4KTogdGlkOiBlYWUyNmNjZSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzE5KTogdGlkOiBlYWUyNmNjZSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDU1MDAwIG5ibG9ja3MgMHg1NyBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDMyMCk6IHRpZDogZWFlMjZjY2UgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzIxKTogdGlkOiBlYWUyNmNjZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IGVhZTI2Y2Nl ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjY3ICBsb25nZXN0OiAxOTQ5MjI2NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6 IHRpZDogZWFlMjZjY2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzMjQpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMyNSk6IHRpZDogZWFlMjZjY2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI2KTogdGlkOiBlYWUyNmNjZSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjcpOiB0aWQ6IGVhZTI2Y2NlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjgpOiB0aWQ6IDUyYjg4ZWIyICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMyOSk6IHRpZDogNTJiODhlYjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMCk6IHRpZDogNTJiODhlYjIgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDMzMSk6IHRpZDogNTJiODhlYjIgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg1NjQwMCBuYmxvY2tzIDB4NTggZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MwpPcGVyICgzMzIpOiB0aWQ6IDUyYjg4ZWIyICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogNTJiODhlYjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiA1MmI4OGViMiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI2NiAgbG9uZ2VzdDogMTk0OTIyNjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0 aWQ6IDUyYjg4ZWIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzM2KTogdGlkOiA1MmI4OGViMiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MzcpOiB0aWQ6IDUyYjg4ZWIyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMzOCk6IHRpZDogNTJiODhlYjIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM5KTogdGlkOiA1MmI4OGViMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQwKTogdGlkOiA2ODAyNmQ3NCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNDEpOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDIpOiB0aWQ6IDY4MDI2ZDc0ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzNDMpOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NTc4MDAgbmJsb2NrcyAweDU5IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDMKT3BlciAoMzQ0KTogdGlkOiA2ODAyNmQ3NCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNDUpOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogNjgwMjZkNzQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy NjUgIGxvbmdlc3Q6IDE5NDkyMjY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlk OiA2ODAyNmQ3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0OCk6IHRpZDogNjgwMjZkNzQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ5 KTogdGlkOiA2ODAyNmQ3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNTApOiB0aWQ6IDY4MDI2ZDc0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1MSk6IHRpZDogNjgwMjZkNzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Mik6IHRpZDogYjE3MDgyNjMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzUzKTogdGlkOiBiMTcwODI2MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU0KTogdGlkOiBiMTcwODI2MyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzU1KTogdGlkOiBiMTcwODI2MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDU4YzAwIG5ibG9ja3MgMHg1YSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgzCk9wZXIgKDM1Nik6IHRpZDogYjE3MDgyNjMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzU3KTogdGlkOiBiMTcwODI2MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IGIxNzA4MjYzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY0 ICBsb25nZXN0OiAxOTQ5MjI2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDog YjE3MDgyNjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNjApOiB0aWQ6IGIxNzA4MjYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MSk6 IHRpZDogYjE3MDgyNjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiBiMTcwODI2MyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjMpOiB0aWQ6IGIxNzA4MjYzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjQpOiB0aWQ6IGM2MzAzZjBkICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM2NSk6IHRpZDogYzYzMDNmMGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nik6IHRpZDogYzYzMDNmMGQgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDM2Nyk6IHRpZDogYzYzMDNmMGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg1YTAwMCBuYmxvY2tzIDB4NWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICgzNjgpOiB0aWQ6IGM2MzAzZjBkICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2OSk6IHRpZDogYzYzMDNmMGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiBjNjMwM2YwZCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2MiAg bG9uZ2VzdDogMTk0OTIyNjIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IGM2 MzAzZjBkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzcyKTogdGlkOiBjNjMwM2YwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzMpOiB0 aWQ6IGM2MzAzZjBkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM3NCk6IHRpZDogYzYzMDNmMGQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1 KTogdGlkOiBjNjMwM2YwZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc2KTogdGlkOiBjOGYyMjkwYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzcpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzgpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzNzkpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NWI0MDAgbmJsb2NrcyAweDVkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoMzgwKTogdGlkOiBjOGYyMjkwYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODEpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4Mik6IHRpZDogYzhmMjI5MGEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNjEgIGxv bmdlc3Q6IDE5NDkyMjYxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiBjOGYy MjkwYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM4NCk6IHRpZDogYzhmMjI5MGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg1KTogdGlk OiBjOGYyMjkwYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IGM4ZjIyOTBhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6 IHRpZDogYzhmMjI5MGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OCk6IHRpZDogNWMxMGFhOTUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg5 KTogdGlkOiA1YzEwYWE5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkwKTogdGlkOiA1YzEwYWE5NSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzkxKTogdGlkOiA1YzEwYWE5NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDVjODAwIG5ibG9ja3MgMHg1ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDM5Mik6IHRpZDogNWMxMGFhOTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzkzKTogdGlkOiA1YzEwYWE5NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6IDVjMTBhYTk1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjYwICBsb25n ZXN0OiAxOTQ5MjI2MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogNWMxMGFh OTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzOTYpOiB0aWQ6IDVjMTBhYTk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6IHRpZDog NWMxMGFhOTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzk4KTogdGlkOiA1YzEwYWE5NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTkpOiB0 aWQ6IDVjMTBhYTk1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDApOiB0aWQ6IGJmZGVmYTczICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6 IHRpZDogYmZkZWZhNzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMik6IHRpZDogYmZkZWZhNzMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQwMyk6IHRpZDogYmZkZWZhNzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg1ZGMwMCBuYmxvY2tzIDB4NWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICg0MDQpOiB0aWQ6IGJmZGVmYTczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQwNSk6IHRpZDogYmZkZWZhNzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA2KTogdGlkOiBiZmRlZmE3MyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1OSAgbG9uZ2Vz dDogMTk0OTIyNTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IGJmZGVmYTcz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDA4KTogdGlkOiBiZmRlZmE3MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6IGJm ZGVmYTczICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQxMCk6IHRpZDogYmZkZWZhNzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDExKTogdGlk OiBiZmRlZmE3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDEyKTogdGlkOiA0ZDRiMDQ5OSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTMpOiB0 aWQ6IDRkNGIwNDk5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MTQpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0MTUpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4NWYwMDAgbmJsb2NrcyAweDYxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDMKT3BlciAoNDE2KTogdGlkOiA0ZDRiMDQ5OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MTcpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQxOCk6IHRpZDogNGQ0YjA0OTkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTcgIGxvbmdlc3Q6 IDE5NDkyMjU3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA0ZDRiMDQ5OSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQyMCk6IHRpZDogNGQ0YjA0OTkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiA0ZDRi MDQ5OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MjIpOiB0aWQ6IDRkNGIwNDk5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMyk6IHRpZDog NGQ0YjA0OTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQyNCk6IHRpZDogMmRhMTk1MTcgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1KTogdGlk OiAyZGExOTUxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDI2KTogdGlkOiAyZGExOTUxNyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDI3KTogdGlkOiAyZGExOTUxNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDYwNDAwIG5ibG9ja3MgMHg2MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgz Ck9wZXIgKDQyOCk6IHRpZDogMmRhMTk1MTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5 KTogdGlkOiAyZGExOTUxNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0MzApOiB0aWQ6IDJkYTE5NTE3ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU2ICBsb25nZXN0OiAx OTQ5MjI1NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogMmRhMTk1MTcgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MzIpOiB0aWQ6IDJkYTE5NTE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogMmRhMTk1 MTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDM0KTogdGlkOiAyZGExOTUxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzUpOiB0aWQ6IDJk YTE5NTE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MzYpOiB0aWQ6IDhmZDRkNDdlICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6IHRpZDog OGZkNGQ0N2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRpZDogOGZkNGQ0N2UgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQzOSk6IHRpZDogOGZkNGQ0N2UgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg2MTgwMCBuYmxvY2tzIDB4NjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpP cGVyICg0NDApOiB0aWQ6IDhmZDRkNDdlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6 IHRpZDogOGZkNGQ0N2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDQyKTogdGlkOiA4ZmQ0ZDQ3ZSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NSAgbG9uZ2VzdDogMTk0 OTIyNTUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IDhmZDRkNDdlICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDQ0KTogdGlkOiA4ZmQ0ZDQ3ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IDhmZDRkNDdl ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ0Nik6IHRpZDogOGZkNGQ0N2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3KTogdGlkOiA4ZmQ0 ZDQ3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiBiOTljYjNkYyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IGI5 OWNiM2RjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTApOiB0aWQ6IGI5OWNiM2RjICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0 NTEpOiB0aWQ6IGI5OWNiM2RjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 NjJjMDAgbmJsb2NrcyAweDY0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3Bl ciAoNDUyKTogdGlkOiBiOTljYjNkYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0 aWQ6IGI5OWNiM2RjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQ1NCk6IHRpZDogYjk5Y2IzZGMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTQgIGxvbmdlc3Q6IDE5NDky MjU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiBiOTljYjNkYyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1 Nik6IHRpZDogYjk5Y2IzZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3KTogdGlkOiBiOTljYjNkYyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NTgpOiB0aWQ6IGI5OWNiM2RjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6IHRpZDogYjk5Y2Iz ZGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2MCk6IHRpZDogOGQ0NzViNjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiA4ZDQ3 NWI2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDYyKTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDYz KTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY0 MDAwIG5ibG9ja3MgMHg2NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIg KDQ2NCk6IHRpZDogOGQ0NzViNjIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlk OiA4ZDQ3NWI2MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0NjYpOiB0aWQ6IDhkNDc1YjYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjUyICBsb25nZXN0OiAxOTQ5MjI1 MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogOGQ0NzViNjIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Njgp OiB0aWQ6IDhkNDc1YjYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogOGQ0NzViNjIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDcwKTogdGlkOiA4ZDQ3NWI2MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6IDhkNDc1YjYy ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NzIpOiB0aWQ6IDMwNTU3Njc0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogMzA1NTc2 NzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ3NCk6IHRpZDogMzA1NTc2NzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3NSk6 IHRpZDogMzA1NTc2NzQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NTQw MCBuYmxvY2tzIDB4NjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0 NzYpOiB0aWQ6IDMwNTU3Njc0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDog MzA1NTc2NzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDc4KTogdGlkOiAzMDU1NzY3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1MSAgbG9uZ2VzdDogMTk0OTIyNTEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDMwNTU3Njc0ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgwKTog dGlkOiAzMDU1NzY3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IDMwNTU3Njc0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4 Mik6IHRpZDogMzA1NTc2NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTogdGlkOiAzMDU1NzY3NCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDg0KTogdGlkOiA2NGI0OThiMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDY0YjQ5OGIx ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0ODYpOiB0aWQ6IDY0YjQ5OGIxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0ODcpOiB0 aWQ6IDY0YjQ5OGIxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjY4MDAg bmJsb2NrcyAweDY4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoNDg4 KTogdGlkOiA2NGI0OThiMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODkpOiB0aWQ6IDY0 YjQ5OGIxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQ5MCk6IHRpZDogNjRiNDk4YjEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTlRJTlVFIApBR0YgQnVmZmVyOiBYQUdGICBPdXQgb2Ygc3BhY2UKCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDk1Mwl0YWlsX2xzbjogMSw4 MTIKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA4ODkJCW51bSBvcHM6 IDQ4OQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3JtYXQ6 IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDApOiB0aWQ6IDY0YjQ5OGIxICBsZW46IDcyICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBX QVNfQ09OVCBFTkQgCkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IDY0YjQ5OGIxICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMik6IHRpZDogNjRiNDk4 YjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMyk6IHRpZDogNjRiNDk4YjEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNCk6IHRpZDogNjRiNDk4 YjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNSk6IHRpZDogNjRiNDk4YjEgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6 IDczNzY5NDQ4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IDczNzY5NDQ4ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiA3Mzc2 OTQ0OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOSk6IHRpZDogNzM3Njk0NDggIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2N2MwMCBuYmxvY2tzIDB4NjkgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxMCk6IHRpZDogNzM3Njk0NDggIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDczNzY5NDQ4ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyKTogdGlkOiA3Mzc2OTQ0 OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI0OSAgbG9uZ2VzdDogMTk0OTIyNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6 IHRpZDogNzM3Njk0NDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxNCk6IHRpZDogNzM3Njk0NDggIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTUpOiB0aWQ6IDczNzY5NDQ4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE2KTogdGlkOiA3Mzc2OTQ0OCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNyk6IHRpZDogNzM3Njk0NDggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiA3MzFiMDFjYiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOSk6IHRpZDogNzMxYjAxY2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwKTogdGlkOiA3MzFiMDFjYiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMjEpOiB0aWQ6IDczMWIwMWNiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NjkwMDAgbmJsb2NrcyAweDZiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoMjIpOiB0aWQ6IDczMWIwMWNiICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzKTogdGlkOiA3MzFiMDFjYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogNzMxYjAxY2IgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDcgIGxvbmdl c3Q6IDE5NDkyMjQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUpOiB0aWQ6IDczMWIwMWNi ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjYpOiB0aWQ6IDczMWIwMWNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3KTogdGlkOiA3MzFi MDFjYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyOCk6IHRpZDogNzMxYjAxY2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IDcz MWIwMWNiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMCk6IHRpZDogNjU0N2IwYzcgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEpOiB0aWQ6IDY1 NDdiMGM3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMik6IHRpZDogNjU0N2IwYzcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMz KTogdGlkOiA2NTQ3YjBjNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZh NDAwIG5ibG9ja3MgMHg2YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIg KDM0KTogdGlkOiA2NTQ3YjBjNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDog NjU0N2IwYzcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzYpOiB0aWQ6IDY1NDdiMGM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ2ICBsb25nZXN0OiAxOTQ5MjI0Ngot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3KTogdGlkOiA2NTQ3YjBjNyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4KTogdGlk OiA2NTQ3YjBjNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDogNjU0N2IwYzcgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDApOiB0 aWQ6IDY1NDdiMGM3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiA2NTQ3YjBjNyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDIpOiB0aWQ6IDQxMDIxMjljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiA0MTAyMTI5YyAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDQpOiB0aWQ6IDQxMDIxMjljICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NSk6IHRpZDogNDEwMjEy OWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2YjgwMCBuYmxvY2tzIDB4 NmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0Nik6IHRpZDogNDEw MjEyOWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDQxMDIxMjljICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4 KTogdGlkOiA0MTAyMTI5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjI0NSAgbG9uZ2VzdDogMTk0OTIyNDUKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0OSk6IHRpZDogNDEwMjEyOWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1MCk6IHRpZDogNDEwMjEyOWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IDQxMDIxMjljICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUyKTogdGlkOiA0MTAyMTI5YyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogNDEwMjEyOWMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTogdGlkOiBl ZjZkNTQ4YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1NSk6IHRpZDogZWY2ZDU0OGEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU2KTogdGlkOiBlZjZk NTQ4YSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNTcpOiB0aWQ6IGVmNmQ1NDhhICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NmNjMDAgbmJsb2NrcyAweDZlIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoNTgpOiB0aWQ6IGVmNmQ1NDhhICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiBlZjZkNTQ4YSAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2MCk6IHRpZDogZWY2ZDU0 OGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNDQgIGxvbmdlc3Q6IDE5NDkyMjQ0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEp OiB0aWQ6IGVmNmQ1NDhhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNjIpOiB0aWQ6IGVmNmQ1NDhhICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDYzKTogdGlkOiBlZjZkNTQ4YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2NCk6IHRpZDogZWY2ZDU0OGEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjUpOiB0aWQ6IGVmNmQ1NDhhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nik6IHRpZDogYTNjMjBkMTUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNjcpOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OCk6IHRpZDogYTNjMjBkMTUgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDY5KTogdGlkOiBhM2MyMGQxNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDZlMDAwIG5ibG9ja3MgMHg3MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgzCk9wZXIgKDcwKTogdGlkOiBhM2MyMGQxNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3MSk6IHRpZDogYTNjMjBkMTUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNzIpOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQyICBsb25n ZXN0OiAxOTQ5MjI0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTogdGlkOiBhM2MyMGQx NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDc0KTogdGlkOiBhM2MyMGQxNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NSk6IHRpZDogYTNj MjBkMTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNzYpOiB0aWQ6IGEzYzIwZDE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3KTogdGlkOiBh M2MyMGQxNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNzgpOiB0aWQ6IGE0N2I0YzI4ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiBh NDdiNGMyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoODApOiB0aWQ6IGE0N2I0YzI4ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4 MSk6IHRpZDogYTQ3YjRjMjggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2 ZjQwMCBuYmxvY2tzIDB4NzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVy ICg4Mik6IHRpZDogYTQ3YjRjMjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMpOiB0aWQ6 IGE0N2I0YzI4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDg0KTogdGlkOiBhNDdiNGMyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0MSAgbG9uZ2VzdDogMTk0OTIyNDEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogYTQ3YjRjMjggIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Nik6IHRp ZDogYTQ3YjRjMjggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IGE0N2I0YzI4ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg4KTog dGlkOiBhNDdiNGMyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogYTQ3YjRjMjggIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDkwKTogdGlkOiBjODUyZWQwYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDogYzg1MmVkMGEgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDkyKTogdGlkOiBjODUyZWQwYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTMpOiB0aWQ6IGM4NTJl ZDBhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzA4MDAgbmJsb2NrcyAw eDcyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoOTQpOiB0aWQ6IGM4 NTJlZDBhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiBjODUyZWQwYSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5 Nik6IHRpZDogYzg1MmVkMGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyNDAgIGxvbmdlc3Q6IDE5NDkyMjQwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoOTcpOiB0aWQ6IGM4NTJlZDBhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTgpOiB0aWQ6IGM4NTJlZDBhICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiBjODUyZWQwYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDApOiB0aWQ6IGM4NTJlZDBh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogYzg1MmVkMGEgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMik6IHRp ZDogZTZjNmY3ZTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiBlNmM2ZjdlMCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA0KTogdGlk OiBlNmM2ZjdlMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTA1KTogdGlkOiBlNmM2ZjdlMCAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDcxYzAwIG5ibG9ja3MgMHg3MyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDEwNik6IHRpZDogZTZjNmY3ZTAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiBlNmM2ZjdlMCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDgpOiB0 aWQ6IGU2YzZmN2UwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMjM5ICBsb25nZXN0OiAxOTQ5MjIzOQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwOSk6IHRpZDogZTZjNmY3ZTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMTApOiB0aWQ6IGU2YzZmN2UwICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExMSk6IHRpZDogZTZjNmY3ZTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEyKTogdGlkOiBlNmM2ZjdlMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMTMpOiB0aWQ6IGU2YzZmN2UwICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6 IDE3YTI5MjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTE1KTogdGlkOiAxN2EyOTI5ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTYpOiB0aWQ6IDE3 YTI5MjkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDExNyk6IHRpZDogMTdhMjkyOSAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDczMDAwIG5ibG9ja3MgMHg3NSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDExOCk6IHRpZDogMTdhMjkyOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IDE3YTI5MjkgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTIwKTogdGlkOiAxN2Ey OTI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjM3ICBsb25nZXN0OiAxOTQ5MjIzNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEy MSk6IHRpZDogMTdhMjkyOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDEyMik6IHRpZDogMTdhMjkyOSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMjMpOiB0aWQ6IDE3YTI5MjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTI0KTogdGlkOiAxN2EyOTI5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEyNSk6IHRpZDogMTdhMjkyOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTogdGlkOiAyNzAyYTIxYyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMjcpOiB0aWQ6IDI3MDJhMjFjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjgpOiB0aWQ6IDI3MDJhMjFjICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgxMjkpOiB0aWQ6IDI3MDJhMjFjICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NzQ0MDAgbmJsb2NrcyAweDc2IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDMKT3BlciAoMTMwKTogdGlkOiAyNzAyYTIxYyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMzEpOiB0aWQ6IDI3MDJhMjFjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzMik6IHRpZDogMjcwMmEyMWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy MzYgIGxvbmdlc3Q6IDE5NDkyMjM2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlk OiAyNzAyYTIxYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDEzNCk6IHRpZDogMjcwMmEyMWMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1 KTogdGlkOiAyNzAyYTIxYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxMzYpOiB0aWQ6IDI3MDJhMjFjICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEzNyk6IHRpZDogMjcwMmEyMWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogNjkwYmEyNjIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTM5KTogdGlkOiA2OTBiYTI2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQwKTogdGlkOiA2OTBiYTI2MiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTQxKTogdGlkOiA2OTBiYTI2MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDc1ODAwIG5ibG9ja3MgMHg3NyBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgzCk9wZXIgKDE0Mik6IHRpZDogNjkwYmEyNjIgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTQzKTogdGlkOiA2OTBiYTI2MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDQpOiB0aWQ6IDY5MGJhMjYyICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjM1 ICBsb25nZXN0OiAxOTQ5MjIzNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NSk6IHRpZDog NjkwYmEyNjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxNDYpOiB0aWQ6IDY5MGJhMjYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6 IHRpZDogNjkwYmEyNjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTQ4KTogdGlkOiA2OTBiYTI2MiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NDkpOiB0aWQ6IDY5MGJhMjYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IDU5MzliZTQ4ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE1MSk6IHRpZDogNTkzOWJlNDggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Mik6IHRpZDogNTkzOWJlNDggIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDE1Myk6IHRpZDogNTkzOWJlNDggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg3NmMwMCBuYmxvY2tzIDB4NzggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICgxNTQpOiB0aWQ6IDU5MzliZTQ4ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE1NSk6IHRpZDogNTkzOWJlNDggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTU2KTogdGlkOiA1OTM5YmU0OCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzNCAg bG9uZ2VzdDogMTk0OTIyMzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6IDU5 MzliZTQ4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTU4KTogdGlkOiA1OTM5YmU0OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0 aWQ6IDU5MzliZTQ4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDE2MCk6IHRpZDogNTkzOWJlNDggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYx KTogdGlkOiA1OTM5YmU0OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiA3Mjk2NWY3OCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NjMpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjQpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxNjUpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NzgwMDAgbmJsb2NrcyAweDdhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoMTY2KTogdGlkOiA3Mjk2NWY3OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNjcpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2OCk6IHRpZDogNzI5NjVmNzggIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzIgIGxv bmdlc3Q6IDE5NDkyMjMyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY5KTogdGlkOiA3Mjk2 NWY3OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE3MCk6IHRpZDogNzI5NjVmNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlk OiA3Mjk2NWY3OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxNzIpOiB0aWQ6IDcyOTY1Zjc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Myk6 IHRpZDogNzI5NjVmNzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogZWU1OTVjOTcgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1 KTogdGlkOiBlZTU5NWM5NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc2KTogdGlkOiBlZTU5NWM5NyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTc3KTogdGlkOiBlZTU5NWM5NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDc5NDAwIG5ibG9ja3MgMHg3YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDE3OCk6IHRpZDogZWU1OTVjOTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTc5KTogdGlkOiBlZTU5NWM5NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODApOiB0aWQ6IGVlNTk1Yzk3ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjMxICBsb25n ZXN0OiAxOTQ5MjIzMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MSk6IHRpZDogZWU1OTVj OTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxODIpOiB0aWQ6IGVlNTk1Yzk3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDog ZWU1OTVjOTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTg0KTogdGlkOiBlZTU5NWM5NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODUpOiB0 aWQ6IGVlNTk1Yzk3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODYpOiB0aWQ6IDFhZGJhZTQ5ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6 IHRpZDogMWFkYmFlNDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OCk6IHRpZDogMWFkYmFlNDkgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDE4OSk6IHRpZDogMWFkYmFlNDkgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg3YTgwMCBuYmxvY2tzIDB4N2MgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICgxOTApOiB0aWQ6IDFhZGJhZTQ5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5MSk6IHRpZDogMWFkYmFlNDkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTkyKTogdGlkOiAxYWRiYWU0OSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzMCAgbG9uZ2Vz dDogMTk0OTIyMzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTMpOiB0aWQ6IDFhZGJhZTQ5 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTk0KTogdGlkOiAxYWRiYWU0OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IDFh ZGJhZTQ5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE5Nik6IHRpZDogMWFkYmFlNDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk3KTogdGlk OiAxYWRiYWU0OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTk4KTogdGlkOiA2YzFhODZjMiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0 aWQ6IDZjMWE4NmMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMDApOiB0aWQ6IDZjMWE4NmMyICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyMDEpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4N2JjMDAgbmJsb2NrcyAweDdkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDMKT3BlciAoMjAyKTogdGlkOiA2YzFhODZjMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDMpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogNmMxYTg2YzIgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjkgIGxvbmdlc3Q6 IDE5NDkyMjI5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA1KTogdGlkOiA2YzFhODZjMiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIwNik6IHRpZDogNmMxYTg2YzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA3KTogdGlkOiA2YzFh ODZjMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyMDgpOiB0aWQ6IDZjMWE4NmMyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOSk6IHRpZDog NmMxYTg2YzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxMCk6IHRpZDogNDY2ZTE4MmIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjExKTogdGlk OiA0NjZlMTgyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjEyKTogdGlkOiA0NjZlMTgyYiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMjEzKTogdGlkOiA0NjZlMTgyYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDdkMDAwIG5ibG9ja3MgMHg3ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgz Ck9wZXIgKDIxNCk6IHRpZDogNDY2ZTE4MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE1 KTogdGlkOiA0NjZlMTgyYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyMTYpOiB0aWQ6IDQ2NmUxODJiICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI3ICBsb25nZXN0OiAx OTQ5MjIyNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNyk6IHRpZDogNDY2ZTE4MmIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMTgpOiB0aWQ6IDQ2NmUxODJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOSk6IHRpZDogNDY2ZTE4 MmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjIwKTogdGlkOiA0NjZlMTgyYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjEpOiB0aWQ6IDQ2 NmUxODJiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMjIpOiB0aWQ6IDUzZjA0MjBkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMyk6IHRpZDog NTNmMDQyMGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIyNCk6IHRpZDogNTNmMDQyMGQgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDIyNSk6IHRpZDogNTNmMDQyMGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg3ZTQwMCBuYmxvY2tzIDB4ODAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpP cGVyICgyMjYpOiB0aWQ6IDUzZjA0MjBkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNyk6 IHRpZDogNTNmMDQyMGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMjI4KTogdGlkOiA1M2YwNDIwZCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyNiAgbG9uZ2VzdDogMTk0 OTIyMjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjkpOiB0aWQ6IDUzZjA0MjBkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjMwKTogdGlkOiA1M2YwNDIwZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEpOiB0aWQ6IDUzZjA0MjBk ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIzMik6IHRpZDogNTNmMDQyMGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMzKTogdGlkOiA1M2Yw NDIwZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjM0KTogdGlkOiA5ZDk3MzcxMyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0aWQ6IDlk OTczNzEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyMzYpOiB0aWQ6IDlkOTczNzEzICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy MzcpOiB0aWQ6IDlkOTczNzEzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 N2Y4MDAgbmJsb2NrcyAweDgxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3Bl ciAoMjM4KTogdGlkOiA5ZDk3MzcxMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzkpOiB0 aWQ6IDlkOTczNzEzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDI0MCk6IHRpZDogOWQ5NzM3MTMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjUgIGxvbmdlc3Q6IDE5NDky MjI1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQxKTogdGlkOiA5ZDk3MzcxMyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0 Mik6IHRpZDogOWQ5NzM3MTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQzKTogdGlkOiA5ZDk3MzcxMyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNDQpOiB0aWQ6IDlkOTczNzEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NSk6IHRpZDogOWQ5NzM3 MTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI0Nik6IHRpZDogZGZjNjNmMjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlkOiBkZmM2 M2YyMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjQ4KTogdGlkOiBkZmM2M2YyMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ5 KTogdGlkOiBkZmM2M2YyMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDgw YzAwIG5ibG9ja3MgMHg4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIg KDI1MCk6IHRpZDogZGZjNjNmMjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUxKTogdGlk OiBkZmM2M2YyMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyNTIpOiB0aWQ6IGRmYzYzZjIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI0ICBsb25nZXN0OiAxOTQ5MjIy NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Myk6IHRpZDogZGZjNjNmMjMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTQp OiB0aWQ6IGRmYzYzZjIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NSk6IHRpZDogZGZjNjNmMjMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjU2KTogdGlkOiBkZmM2M2YyMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTcpOiB0aWQ6IGRmYzYzZjIz ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNTgpOiB0aWQ6IDNlYjM1ZWFjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogM2ViMzVl YWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI2MCk6IHRpZDogM2ViMzVlYWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2MSk6 IHRpZDogM2ViMzVlYWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4MjAw MCBuYmxvY2tzIDB4ODQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgy NjIpOiB0aWQ6IDNlYjM1ZWFjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6IHRpZDog M2ViMzVlYWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjY0KTogdGlkOiAzZWIzNWVhYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyMiAgbG9uZ2VzdDogMTk0OTIyMjIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjUpOiB0aWQ6IDNlYjM1ZWFjICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY2KTog dGlkOiAzZWIzNWVhYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjcpOiB0aWQ6IDNlYjM1ZWFjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2 OCk6IHRpZDogM2ViMzVlYWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY5KTogdGlkOiAzZWIzNWVhYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjcwKTogdGlkOiA4MTM4M2M1NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDgxMzgzYzU0 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyNzIpOiB0aWQ6IDgxMzgzYzU0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzMpOiB0 aWQ6IDgxMzgzYzU0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODM0MDAg bmJsb2NrcyAweDg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjc0 KTogdGlkOiA4MTM4M2M1NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0aWQ6IDgx MzgzYzU0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDI3Nik6IHRpZDogODEzODNjNTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjEgIGxvbmdlc3Q6IDE5NDkyMjIxCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc3KTogdGlkOiA4MTM4M2M1NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3OCk6IHRp ZDogODEzODNjNTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlkOiA4MTM4M2M1NCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODAp OiB0aWQ6IDgxMzgzYzU0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MSk6IHRpZDogODEzODNjNTQgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI4Mik6IHRpZDogMjBjNmI5YzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiAyMGM2YjljMSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjg0KTogdGlkOiAyMGM2YjljMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjg1KTogdGlk OiAyMGM2YjljMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg0ODAwIG5i bG9ja3MgMHg4NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI4Nik6 IHRpZDogMjBjNmI5YzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlkOiAyMGM2 YjljMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyODgpOiB0aWQ6IDIwYzZiOWMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjIwICBsb25nZXN0OiAxOTQ5MjIyMAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogMjBjNmI5YzEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTApOiB0aWQ6 IDIwYzZiOWMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDogMjBjNmI5YzEgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkyKTog dGlkOiAyMGM2YjljMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMpOiB0aWQ6IDIwYzZiOWMxICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyOTQpOiB0aWQ6IGUzNzA1N2IyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogZTM3MDU3YjIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI5Nik6IHRpZDogZTM3MDU3YjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Nyk6IHRpZDog ZTM3MDU3YjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4NWMwMCBuYmxv Y2tzIDB4ODcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyOTgpOiB0 aWQ6IGUzNzA1N2IyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRpZDogZTM3MDU3 YjIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzAwKTogdGlkOiBlMzcwNTdiMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxOSAgbG9uZ2VzdDogMTk0OTIyMTkKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMDEpOiB0aWQ6IGUzNzA1N2IyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAyKTogdGlkOiBl MzcwNTdiMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IGUzNzA1N2IyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwNCk6IHRp ZDogZTM3MDU3YjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiBlMzcwNTdiMiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzA2KTogdGlkOiA1OTMwM2M2MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IDU5MzAzYzYyICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMDgpOiB0aWQ6IDU5MzAzYzYyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDkpOiB0aWQ6IDU5 MzAzYzYyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODcwMDAgbmJsb2Nr cyAweDg5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzEwKTogdGlk OiA1OTMwM2M2MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IDU5MzAzYzYy ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDMxMik6IHRpZDogNTkzMDNjNjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMTcgIGxvbmdlc3Q6IDE5NDkyMjE3Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzEzKTogdGlkOiA1OTMwM2M2MiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNCk6IHRpZDogNTkz MDNjNjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiA1OTMwM2M2MiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTYpOiB0aWQ6 IDU5MzAzYzYyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogNTkzMDNjNjIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMxOCk6IHRpZDogNTQ1ZmI2ZjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiA1NDVmYjZmNCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzIwKTogdGlkOiA1NDVmYjZmNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzIxKTogdGlkOiA1NDVm YjZmNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg4NDAwIG5ibG9ja3Mg MHg4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDMyMik6IHRpZDog NTQ1ZmI2ZjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiA1NDVmYjZmNCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzMjQpOiB0aWQ6IDU0NWZiNmY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjE2ICBsb25nZXN0OiAxOTQ5MjIxNgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyNSk6IHRpZDogNTQ1ZmI2ZjQgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjYpOiB0aWQ6IDU0NWZi NmY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRpZDogNTQ1ZmI2ZjQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI4KTogdGlkOiA1 NDVmYjZmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6IDU0NWZiNmY0ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MzApOiB0aWQ6IDNlOTdlOWM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogM2U5N2U5YzQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMz Mik6IHRpZDogM2U5N2U5YzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMzMyk6IHRpZDogM2U5N2U5 YzQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4OTgwMCBuYmxvY2tzIDB4 OGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzMzQpOiB0aWQ6IDNl OTdlOWM0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogM2U5N2U5YzQgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzM2KTogdGlkOiAzZTk3ZTljNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIxNSAgbG9uZ2VzdDogMTk0OTIyMTUKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMzcpOiB0aWQ6IDNlOTdlOWM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM4KTogdGlkOiAzZTk3ZTlj NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IDNlOTdlOWM0ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0MCk6IHRpZDogM2U5 N2U5YzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiAzZTk3ZTljNCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQy KTogdGlkOiBiYTlkYWU5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGJhOWRhZTlmICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDQp OiB0aWQ6IGJhOWRhZTlmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDUpOiB0aWQ6IGJhOWRhZTlm ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGFjMDAgbmJsb2NrcyAweDhj IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzQ2KTogdGlkOiBiYTlk YWU5ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0aWQ6IGJhOWRhZTlmICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0 OCk6IHRpZDogYmE5ZGFlOWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIyMTQgIGxvbmdlc3Q6IDE5NDkyMjE0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzQ5KTogdGlkOiBiYTlkYWU5ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1MCk6IHRpZDogYmE5ZGFlOWYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlkOiBiYTlkYWU5ZiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTIpOiB0aWQ6IGJhOWRh ZTlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Myk6IHRpZDogYmE5ZGFlOWYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NCk6 IHRpZDogNDAzZjRjMGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiA0MDNmNGMwZiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU2KTog dGlkOiA0MDNmNGMwZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzU3KTogdGlkOiA0MDNmNGMwZiAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhjMDAwIG5ibG9ja3MgMHg4ZSBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM1OCk6IHRpZDogNDAzZjRj MGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiA0MDNmNGMwZiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjAp OiB0aWQ6IDQwM2Y0YzBmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMjEyICBsb25nZXN0OiAxOTQ5MjIxMgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM2MSk6IHRpZDogNDAzZjRjMGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjIpOiB0aWQ6IDQwM2Y0YzBmICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDogNDAzZjRjMGYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY0KTogdGlkOiA0MDNmNGMw ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjUpOiB0aWQ6IDQwM2Y0YzBmICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjYpOiB0 aWQ6IGFjOGFjNzZiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogYWM4YWM3NmIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OCk6IHRp ZDogYWM4YWM3NmIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2OSk6IHRpZDogYWM4YWM3NmIgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4ZDQwMCBuYmxvY2tzIDB4OGYgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzNzApOiB0aWQ6IGFjOGFjNzZi ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogYWM4YWM3NmIgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzcyKTog dGlkOiBhYzhhYzc2YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjIxMSAgbG9uZ2VzdDogMTk0OTIyMTEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNzMpOiB0aWQ6IGFjOGFjNzZiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc0KTogdGlkOiBhYzhhYzc2YiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IGFjOGFjNzZiICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Nik6IHRpZDogYWM4YWM3NmIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzc3KTogdGlkOiBhYzhhYzc2YiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc4KTogdGlk OiBiMWUzNDc0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDogYjFlMzQ3NCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgwKTogdGlkOiBi MWUzNDc0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzODEpOiB0aWQ6IGIxZTM0NzQgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4ZTgwMCBuYmxvY2tzIDB4OTAgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzODIpOiB0aWQ6IGIxZTM0NzQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiBiMWUzNDc0ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4NCk6IHRpZDogYjFl MzQ3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjIxMCAgbG9uZ2VzdDogMTk0OTIyMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz ODUpOiB0aWQ6IGIxZTM0NzQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IGIxZTM0NzQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzg3KTogdGlkOiBiMWUzNDc0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4OCk6IHRpZDogYjFlMzQ3NCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODkpOiB0aWQ6IGIxZTM0NzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MCk6IHRpZDogOWU4ODc1YjIgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzkxKTogdGlkOiA5ZTg4NzViMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkyKTogdGlkOiA5ZTg4NzViMiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMzkzKTogdGlkOiA5ZTg4NzViMiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDhmYzAwIG5ibG9ja3MgMHg5MSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM5NCk6IHRpZDogOWU4ODc1YjIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzk1KTogdGlkOiA5ZTg4NzViMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTYpOiB0aWQ6IDllODg3NWIyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjA5ICBsb25nZXN0OiAxOTQ5MjIwOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nyk6IHRp ZDogOWU4ODc1YjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzOTgpOiB0aWQ6IDllODg3NWIyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5 OSk6IHRpZDogOWU4ODc1YjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDAwKTogdGlkOiA5ZTg4NzViMiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MDEpOiB0aWQ6IDllODg3NWIyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDIpOiB0aWQ6IDNlNDJjZjA3ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQwMyk6IHRpZDogM2U0MmNmMDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNCk6IHRpZDogM2U0MmNmMDcgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQwNSk6IHRpZDogM2U0MmNmMDcgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg5MTAwMCBuYmxvY2tzIDB4OTMgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MwpPcGVyICg0MDYpOiB0aWQ6IDNlNDJjZjA3ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQwNyk6IHRpZDogM2U0MmNmMDcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA4KTogdGlkOiAzZTQyY2YwNyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIw NyAgbG9uZ2VzdDogMTk0OTIyMDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDkpOiB0aWQ6 IDNlNDJjZjA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDEwKTogdGlkOiAzZTQyY2YwNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTEp OiB0aWQ6IDNlNDJjZjA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQxMik6IHRpZDogM2U0MmNmMDcgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDEzKTogdGlkOiAzZTQyY2YwNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE0KTogdGlkOiBlM2U3MzBmOSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MTUpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTYpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0MTcpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4OTI0MDAgbmJsb2NrcyAweDk0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDMKT3BlciAoNDE4KTogdGlkOiBlM2U3MzBmOSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MTkpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyMCk6IHRpZDogZTNlNzMwZjkgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDYg IGxvbmdlc3Q6IDE5NDkyMjA2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIxKTogdGlkOiBl M2U3MzBmOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQyMik6IHRpZDogZTNlNzMwZjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIzKTog dGlkOiBlM2U3MzBmOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MjQpOiB0aWQ6IGUzZTczMGY5ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQy NSk6IHRpZDogZTNlNzMwZjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNik6IHRpZDogMmNhZTdjNzUgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDI3KTogdGlkOiAyY2FlN2M3NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI4KTogdGlkOiAyY2FlN2M3NSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDI5KTogdGlkOiAyY2FlN2M3NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDkzODAwIG5ibG9ja3MgMHg5NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgzCk9wZXIgKDQzMCk6IHRpZDogMmNhZTdjNzUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDMxKTogdGlkOiAyY2FlN2M3NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MzIpOiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA1ICBs b25nZXN0OiAxOTQ5MjIwNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMyk6IHRpZDogMmNh ZTdjNzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0MzQpOiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNSk6IHRp ZDogMmNhZTdjNzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDM2KTogdGlkOiAyY2FlN2M3NSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mzcp OiB0aWQ6IDJjYWU3Yzc1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IGFkMjI2NzNiICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQz OSk6IHRpZDogYWQyMjY3M2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MCk6IHRpZDogYWQyMjY3M2IgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ0MSk6IHRpZDogYWQyMjY3M2IgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg5NGMwMCBuYmxvY2tzIDB4OTYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MwpPcGVyICg0NDIpOiB0aWQ6IGFkMjI2NzNiICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0Myk6IHRpZDogYWQyMjY3M2IgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQ0KTogdGlkOiBhZDIyNjczYiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNCAgbG9u Z2VzdDogMTk0OTIyMDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDUpOiB0aWQ6IGFkMjI2 NzNiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDQ2KTogdGlkOiBhZDIyNjczYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDcpOiB0aWQ6 IGFkMjI2NzNiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ0OCk6IHRpZDogYWQyMjY3M2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ5KTog dGlkOiBhZDIyNjczYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUwKTogdGlkOiA5N2M2YWViYyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTEp OiB0aWQ6IDk3YzZhZWJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTIpOiB0aWQ6IDk3YzZhZWJjICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0NTMpOiB0aWQ6IDk3YzZhZWJjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4OTYwMDAgbmJsb2NrcyAweDk4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKT3BlciAoNDU0KTogdGlkOiA5N2M2YWViYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTUpOiB0aWQ6IDk3YzZhZWJjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ1Nik6IHRpZDogOTdjNmFlYmMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDIgIGxvbmdl c3Q6IDE5NDkyMjAyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU3KTogdGlkOiA5N2M2YWVi YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ1OCk6IHRpZDogOTdjNmFlYmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlkOiA5 N2M2YWViYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0NjApOiB0aWQ6IDk3YzZhZWJjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MSk6IHRp ZDogOTdjNmFlYmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Mik6IHRpZDogYjk2NjMyYzggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTog dGlkOiBiOTY2MzJjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDY0KTogdGlkOiBiOTY2MzJjOCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNDY1KTogdGlkOiBiOTY2MzJjOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDk3NDAwIG5ibG9ja3MgMHg5OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgzCk9wZXIgKDQ2Nik6IHRpZDogYjk2NjMyYzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDY3KTogdGlkOiBiOTY2MzJjOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NjgpOiB0aWQ6IGI5NjYzMmM4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjAxICBsb25nZXN0 OiAxOTQ5MjIwMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OSk6IHRpZDogYjk2NjMyYzgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0NzApOiB0aWQ6IGI5NjYzMmM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDogYjk2 NjMyYzggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDcyKTogdGlkOiBiOTY2MzJjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzMpOiB0aWQ6 IGI5NjYzMmM4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NzQpOiB0aWQ6IDZmODI1MDE3ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6IHRp ZDogNmY4MjUwMTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nik6IHRpZDogNmY4MjUwMTcgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQ3Nyk6IHRpZDogNmY4MjUwMTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg5ODgwMCBuYmxvY2tzIDB4OWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MwpPcGVyICg0NzgpOiB0aWQ6IDZmODI1MDE3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3 OSk6IHRpZDogNmY4MjUwMTcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNDgwKTogdGlkOiA2ZjgyNTAxNyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMCAgbG9uZ2VzdDog MTk0OTIyMDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODEpOiB0aWQ6IDZmODI1MDE3ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDgyKTogdGlkOiA2ZjgyNTAxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IDZmODI1 MDE3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ4NCk6IHRpZDogNmY4MjUwMTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1KTogdGlkOiA2 ZjgyNTAxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDg2KTogdGlkOiA2MGRlYWM2ZCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6 IDYwZGVhYzZkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0ODgpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNAoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMTAxNwl0YWlsX2xz bjogMSw4MTIKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA5NTMJCW51 bSBvcHM6IDQ4OAp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBm b3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDApOiB0aWQ6IDYwZGVhYzZkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkxlZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDYwZGVhYzZkICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMpOiB0aWQ6IDYwZGVh YzZkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTk5ICBsb25nZXN0OiAxOTQ5MjE5OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQp OiB0aWQ6IDYwZGVhYzZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNSk6IHRpZDogNjBkZWFjNmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Nik6IHRpZDogNjBkZWFjNmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNyk6IHRpZDogNjBkZWFjNmQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo OCk6IHRpZDogNjBkZWFjNmQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkpOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw KTogdGlkOiA0OGM1ZWU2YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxMik6IHRpZDogNDhjNWVlNmEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg5YjAwMCBuYmxvY2tzIDB4OWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICgxMyk6IHRpZDogNDhjNWVlNmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTQpOiB0aWQ6IDQ4YzVlZTZhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDE1KTogdGlkOiA0OGM1ZWU2YSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5NyAgbG9uZ2VzdDog MTk0OTIxOTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogNDhjNWVlNmEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNyk6IHRpZDogNDhjNWVlNmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0aWQ6IDQ4YzVlZTZh ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE5KTogdGlkOiA0OGM1ZWU2YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMCk6IHRpZDogNDhjNWVl NmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxKTogdGlkOiBkNzk1NDViYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMik6IHRpZDogZDc5NTQ1 YmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIzKTogdGlkOiBkNzk1NDViYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQpOiB0 aWQ6IGQ3OTU0NWJjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWM0MDAg bmJsb2NrcyAweDllIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjUp OiB0aWQ6IGQ3OTU0NWJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2KTogdGlkOiBkNzk1 NDViYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyNyk6IHRpZDogZDc5NTQ1YmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTYgIGxvbmdlc3Q6IDE5NDkyMTk2Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IGQ3OTU0NWJjICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkpOiB0aWQ6IGQ3 OTU0NWJjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiBkNzk1NDViYyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMSk6IHRpZDog ZDc5NTQ1YmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0aWQ6IGQ3OTU0NWJjICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz Myk6IHRpZDogYzE3OWY4MmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQpOiB0aWQ6IGMxNzlmODJjICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6 IHRpZDogYzE3OWY4MmMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2KTogdGlkOiBjMTc5ZjgyYyAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDlkODAwIG5ibG9ja3MgMHg5ZiBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM3KTogdGlkOiBjMTc5Zjgy YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOCk6IHRpZDogYzE3OWY4MmMgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzkpOiB0 aWQ6IGMxNzlmODJjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTk1ICBsb25nZXN0OiAxOTQ5MjE5NQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQwKTogdGlkOiBjMTc5ZjgyYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxKTogdGlkOiBjMTc5ZjgyYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0Mik6IHRpZDogYzE3OWY4MmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDMpOiB0aWQ6IGMxNzlmODJjICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ0KTogdGlkOiBjMTc5ZjgyYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IDFkYTM1 MmM5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2KTogdGlkOiAxZGEzNTJjOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IDFkYTM1MmM5 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg0OCk6IHRpZDogMWRhMzUyYzkgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5ZWMwMCBuYmxvY2tzIDB4YTAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0OSk6IHRpZDogMWRhMzUyYzkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTApOiB0aWQ6IDFkYTM1MmM5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDUxKTogdGlkOiAxZGEzNTJjOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjE5NCAgbG9uZ2VzdDogMTk0OTIxOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Mik6IHRp ZDogMWRhMzUyYzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg1Myk6IHRpZDogMWRhMzUyYzkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQp OiB0aWQ6IDFkYTM1MmM5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDU1KTogdGlkOiAxZGEzNTJjOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Nik6IHRpZDogMWRhMzUyYzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3KTogdGlkOiBhOGZmMjIxMyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 OCk6IHRpZDogYThmZjIyMTMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU5KTogdGlkOiBhOGZmMjIxMyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNjApOiB0aWQ6IGE4ZmYyMjEzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4YTAwMDAgbmJsb2NrcyAweGEyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKT3BlciAoNjEpOiB0aWQ6IGE4ZmYyMjEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDYyKTogdGlkOiBhOGZmMjIxMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2Myk6IHRpZDogYThmZjIyMTMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTIgIGxvbmdlc3Q6 IDE5NDkyMTkyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6IGE4ZmYyMjEzICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNjUpOiB0aWQ6IGE4ZmYyMjEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlkOiBhOGZmMjIx MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg2Nyk6IHRpZDogYThmZjIyMTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6IGE4ZmYy MjEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg2OSk6IHRpZDogMmIzMjkwNWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzApOiB0aWQ6IDJiMzI5 MDVhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg3MSk6IHRpZDogMmIzMjkwNWEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDcyKTog dGlkOiAyYjMyOTA1YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGExNDAw IG5ibG9ja3MgMHhhMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDcz KTogdGlkOiAyYjMyOTA1YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NCk6IHRpZDogMmIz MjkwNWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNzUpOiB0aWQ6IDJiMzI5MDVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTkxICBsb25nZXN0OiAxOTQ5MjE5MQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc2KTogdGlkOiAyYjMyOTA1YSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc3KTogdGlkOiAy YjMyOTA1YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OCk6IHRpZDogMmIzMjkwNWEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzkpOiB0aWQ6 IDJiMzI5MDVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgwKTogdGlkOiAyYjMyOTA1YSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo ODEpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgyKTogdGlkOiBkZWJiMmY2MyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODMp OiB0aWQ6IGRlYmIyZjYzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4NCk6IHRpZDogZGViYjJmNjMg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMjgwMCBuYmxvY2tzIDB4YTQg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg4NSk6IHRpZDogZGViYjJm NjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6IGRlYmIyZjYzICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDg3KTog dGlkOiBkZWJiMmY2MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE5MCAgbG9uZ2VzdDogMTk0OTIxOTAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg4OCk6IHRpZDogZGViYjJmNjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OSk6IHRpZDogZGViYjJmNjMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoOTApOiB0aWQ6IGRlYmIyZjYzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkxKTogdGlkOiBkZWJiMmY2MyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5Mik6IHRpZDogZGViYjJmNjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiA5Mzc0 ZTdkNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5NCk6IHRpZDogOTM3NGU3ZDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiA5Mzc0ZTdk NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTYpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YTNjMDAgbmJsb2NrcyAweGE1IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoOTcpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk4KTogdGlkOiA5Mzc0ZTdkNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5OSk6IHRpZDogOTM3NGU3ZDUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxODkgIGxvbmdlc3Q6IDE5NDkyMTg5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAwKTog dGlkOiA5Mzc0ZTdkNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEwMSk6IHRpZDogOTM3NGU3ZDUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTAyKTogdGlkOiA5Mzc0ZTdkNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDMpOiB0aWQ6IDkzNzRlN2Q1ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEwNCk6IHRpZDogOTM3NGU3ZDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogZmUyMTdmYTMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTA2KTogdGlkOiBmZTIxN2ZhMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiBmZTIxN2ZhMyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTA4KTogdGlkOiBmZTIxN2ZhMyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGE1MDAwIG5ibG9ja3MgMHhhNyBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgzCk9wZXIgKDEwOSk6IHRpZDogZmUyMTdmYTMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTEwKTogdGlkOiBmZTIxN2ZhMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTEpOiB0aWQ6IGZlMjE3ZmEzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTg3ICBsb25nZXN0OiAxOTQ5MjE4NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMik6IHRp ZDogZmUyMTdmYTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxMTMpOiB0aWQ6IGZlMjE3ZmEzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx NCk6IHRpZDogZmUyMTdmYTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTE1KTogdGlkOiBmZTIxN2ZhMyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMTYpOiB0aWQ6IGZlMjE3ZmEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDVjMDU5N2MyICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExOCk6IHRpZDogNWMwNTk3YzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExOSk6IHRpZDogNWMwNTk3YzIgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDEyMCk6IHRpZDogNWMwNTk3YzIgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHhhNjQwMCBuYmxvY2tzIDB4YTggZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MwpPcGVyICgxMjEpOiB0aWQ6IDVjMDU5N2MyICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEyMik6IHRpZDogNWMwNTk3YzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTIzKTogdGlkOiA1YzA1OTdjMiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4 NiAgbG9uZ2VzdDogMTk0OTIxODYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0aWQ6 IDVjMDU5N2MyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTI1KTogdGlkOiA1YzA1OTdjMiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjYp OiB0aWQ6IDVjMDU5N2MyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEyNyk6IHRpZDogNWMwNTk3YzIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTI4KTogdGlkOiA1YzA1OTdjMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiAxODgxOTUwNCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMzApOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzEpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxMzIpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4YTc4MDAgbmJsb2NrcyAweGE5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDMKT3BlciAoMTMzKTogdGlkOiAxODgxOTUwNCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMzQpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzNSk6IHRpZDogMTg4MTk1MDQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODUg IGxvbmdlc3Q6IDE5NDkyMTg1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM2KTogdGlkOiAx ODgxOTUwNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDEzNyk6IHRpZDogMTg4MTk1MDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTog dGlkOiAxODgxOTUwNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxMzkpOiB0aWQ6IDE4ODE5NTA0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0 MCk6IHRpZDogMTg4MTk1MDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogZjMyYWQzMDggIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTQyKTogdGlkOiBmMzJhZDMwOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQzKTogdGlkOiBmMzJhZDMwOCAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMTQ0KTogdGlkOiBmMzJhZDMwOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGE4YzAwIG5ibG9ja3MgMHhhYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgzCk9wZXIgKDE0NSk6IHRpZDogZjMyYWQzMDggIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTQ2KTogdGlkOiBmMzJhZDMwOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDcpOiB0aWQ6IGYzMmFkMzA4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg0ICBs b25nZXN0OiAxOTQ5MjE4NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRpZDogZjMy YWQzMDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxNDkpOiB0aWQ6IGYzMmFkMzA4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MCk6IHRp ZDogZjMyYWQzMDggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTUxKTogdGlkOiBmMzJhZDMwOCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTIp OiB0aWQ6IGYzMmFkMzA4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDg0OTJjNjAyICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 NCk6IHRpZDogODQ5MmM2MDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1NSk6IHRpZDogODQ5MmM2MDIgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDE1Nik6IHRpZDogODQ5MmM2MDIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhhYTAwMCBuYmxvY2tzIDB4YWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MwpPcGVyICgxNTcpOiB0aWQ6IDg0OTJjNjAyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1OCk6IHRpZDogODQ5MmM2MDIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTU5KTogdGlkOiA4NDkyYzYwMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4MiAgbG9u Z2VzdDogMTk0OTIxODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IDg0OTJj NjAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTYxKTogdGlkOiA4NDkyYzYwMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjIpOiB0aWQ6 IDg0OTJjNjAyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE2Myk6IHRpZDogODQ5MmM2MDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0KTog dGlkOiA4NDkyYzYwMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY1KTogdGlkOiA5ZGJiOTYyYiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjYp OiB0aWQ6IDlkYmI5NjJiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IDlkYmI5NjJiICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxNjgpOiB0aWQ6IDlkYmI5NjJiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4YWI0MDAgbmJsb2NrcyAweGFkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKT3BlciAoMTY5KTogdGlkOiA5ZGJiOTYyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNzApOiB0aWQ6IDlkYmI5NjJiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3MSk6IHRpZDogOWRiYjk2MmIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODEgIGxvbmdl c3Q6IDE5NDkyMTgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcyKTogdGlkOiA5ZGJiOTYy YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE3Myk6IHRpZDogOWRiYjk2MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc0KTogdGlkOiA5 ZGJiOTYyYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxNzUpOiB0aWQ6IDlkYmI5NjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRp ZDogOWRiYjk2MmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nyk6IHRpZDogMzAzN2FjYzUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc4KTog dGlkOiAzMDM3YWNjNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTc5KTogdGlkOiAzMDM3YWNjNSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMTgwKTogdGlkOiAzMDM3YWNjNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGFjODAwIG5ibG9ja3MgMHhhZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgzCk9wZXIgKDE4MSk6IHRpZDogMzAzN2FjYzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTgyKTogdGlkOiAzMDM3YWNjNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODMpOiB0aWQ6IDMwMzdhY2M1ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTgwICBsb25nZXN0 OiAxOTQ5MjE4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogMzAzN2FjYzUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxODUpOiB0aWQ6IDMwMzdhY2M1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nik6IHRpZDogMzAz N2FjYzUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTg3KTogdGlkOiAzMDM3YWNjNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODgpOiB0aWQ6 IDMwMzdhY2M1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxODkpOiB0aWQ6IGVmZmJkZTc2ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MCk6IHRp ZDogZWZmYmRlNzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5MSk6IHRpZDogZWZmYmRlNzYgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDE5Mik6IHRpZDogZWZmYmRlNzYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhhZGMwMCBuYmxvY2tzIDB4YWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MwpPcGVyICgxOTMpOiB0aWQ6IGVmZmJkZTc2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5 NCk6IHRpZDogZWZmYmRlNzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTk1KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3OSAgbG9uZ2VzdDog MTk0OTIxNzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IGVmZmJkZTc2ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTk3KTogdGlkOiBlZmZiZGU3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTgpOiB0aWQ6IGVmZmJk ZTc2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE5OSk6IHRpZDogZWZmYmRlNzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAwKTogdGlkOiBl ZmZiZGU3NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjAxKTogdGlkOiA4M2ZlODc0ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMik6IHRpZDog ODNmZTg3NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA4M2ZlODc0ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy MDQpOiB0aWQ6IDgzZmU4NzQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhh ZjAwMCBuYmxvY2tzIDB4YjEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVy ICgyMDUpOiB0aWQ6IDgzZmU4NzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTogdGlk OiA4M2ZlODc0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDIwNyk6IHRpZDogODNmZTg3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NyAgbG9uZ2VzdDogMTk0OTIxNzcK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDgpOiB0aWQ6IDgzZmU4NzQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMDkpOiB0 aWQ6IDgzZmU4NzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEwKTogdGlkOiA4M2ZlODc0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxMSk6 IHRpZDogODNmZTg3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTIpOiB0aWQ6IDgzZmU4NzQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIxMyk6IHRpZDogNzY3NWQ2YTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE0KTogdGlkOiA3Njc1ZDZhOSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjE1KTogdGlkOiA3Njc1ZDZhOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjE2KTogdGlkOiA3 Njc1ZDZhOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGIwNDAwIG5ibG9j a3MgMHhiMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDIxNyk6IHRp ZDogNzY3NWQ2YTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiA3Njc1ZDZh OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyMTkpOiB0aWQ6IDc2NzVkNmE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc2ICBsb25nZXN0OiAxOTQ5MjE3NgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogNzY3NWQ2YTkgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjEpOiB0aWQ6IDc2 NzVkNmE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6IHRpZDogNzY3NWQ2YTkgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIzKTogdGlk OiA3Njc1ZDZhOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjQpOiB0aWQ6IDc2NzVkNmE5ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMjUpOiB0aWQ6IDNhOGM3ZTFlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNik6IHRpZDogM2E4YzdlMWUgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyNyk6IHRpZDogM2E4YzdlMWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyOCk6IHRpZDogM2E4 YzdlMWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMTgwMCBuYmxvY2tz IDB4YjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyMjkpOiB0aWQ6 IDNhOGM3ZTFlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogM2E4YzdlMWUg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjMxKTogdGlkOiAzYThjN2UxZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NSAgbG9uZ2VzdDogMTk0OTIxNzUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDNhOGM3ZTFlICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjMzKTogdGlkOiAzYThj N2UxZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0aWQ6IDNhOGM3ZTFlICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzNSk6IHRpZDog M2E4YzdlMWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM2KTogdGlkOiAzYThjN2UxZSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjM3KTogdGlkOiAxM2ZhYTYyYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzgpOiB0aWQ6IDEzZmFhNjJiICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzkpOiB0aWQ6IDEzZmFhNjJiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNDApOiB0aWQ6IDEzZmFh NjJiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjJjMDAgbmJsb2NrcyAw eGI0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjQxKTogdGlkOiAx M2ZhYTYyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IDEzZmFhNjJiICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI0Myk6IHRpZDogMTNmYWE2MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxNzQgIGxvbmdlc3Q6IDE5NDkyMTc0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiAxM2ZhYTYyYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0NSk6IHRpZDogMTNmYWE2 MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlkOiAxM2ZhYTYyYiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDcpOiB0aWQ6IDEz ZmFhNjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OCk6IHRpZDogMTNmYWE2MmIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0 OSk6IHRpZDogNDc4OWUwYjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUwKTogdGlkOiA0Nzg5ZTBiMSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUx KTogdGlkOiA0Nzg5ZTBiMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjUyKTogdGlkOiA0Nzg5ZTBi MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI0MDAwIG5ibG9ja3MgMHhi NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI1Myk6IHRpZDogNDc4 OWUwYjEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiA0Nzg5ZTBiMSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy NTUpOiB0aWQ6IDQ3ODllMGIxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTcyICBsb25nZXN0OiAxOTQ5MjE3MgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI1Nik6IHRpZDogNDc4OWUwYjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTcpOiB0aWQ6IDQ3ODllMGIx ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDogNDc4OWUwYjEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU5KTogdGlkOiA0Nzg5 ZTBiMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjApOiB0aWQ6IDQ3ODllMGIxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjEp OiB0aWQ6IDM2NjdjNWRhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Mik6IHRpZDogMzY2N2M1ZGEgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Myk6 IHRpZDogMzY2N2M1ZGEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2NCk6IHRpZDogMzY2N2M1ZGEg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiNTQwMCBuYmxvY2tzIDB4Yjcg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyNjUpOiB0aWQ6IDM2Njdj NWRhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogMzY2N2M1ZGEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjY3 KTogdGlkOiAzNjY3YzVkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjE3MSAgbG9uZ2VzdDogMTk0OTIxNzEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNjgpOiB0aWQ6IDM2NjdjNWRhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY5KTogdGlkOiAzNjY3YzVkYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IDM2NjdjNWRhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3MSk6IHRpZDogMzY2N2M1 ZGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjcyKTogdGlkOiAzNjY3YzVkYSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjczKTog dGlkOiA1MzI4ZGY0NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzQpOiB0aWQ6IDUzMjhkZjQ3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzUpOiB0 aWQ6IDUzMjhkZjQ3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzYpOiB0aWQ6IDUzMjhkZjQ3ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjY4MDAgbmJsb2NrcyAweGI4IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjc3KTogdGlkOiA1MzI4ZGY0 NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IDUzMjhkZjQ3ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI3OSk6 IHRpZDogNTMyOGRmNDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxNzAgIGxvbmdlc3Q6IDE5NDkyMTcwCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjgwKTogdGlkOiA1MzI4ZGY0NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4MSk6IHRpZDogNTMyOGRmNDcgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiA1MzI4ZGY0NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODMpOiB0aWQ6IDUzMjhkZjQ3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4NCk6IHRpZDogNTMyOGRmNDcgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRp ZDogN2Y3ZjU5MjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjg2KTogdGlkOiA3ZjdmNTkyMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg3KTogdGlk OiA3ZjdmNTkyMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjg4KTogdGlkOiA3ZjdmNTkyMyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI3YzAwIG5ibG9ja3MgMHhiOSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI4OSk6IHRpZDogN2Y3ZjU5MjMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiA3ZjdmNTkyMyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTEpOiB0 aWQ6IDdmN2Y1OTIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTY5ICBsb25nZXN0OiAxOTQ5MjE2OQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI5Mik6IHRpZDogN2Y3ZjU5MjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOTMpOiB0aWQ6IDdmN2Y1OTIzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI5NCk6IHRpZDogN2Y3ZjU5MjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk1KTogdGlkOiA3ZjdmNTkyMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTYpOiB0aWQ6IDdmN2Y1OTIzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6 IGMzMjVmY2MzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5OCk6IHRpZDogYzMyNWZjYzMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OSk6IHRpZDog YzMyNWZjYzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMwMCk6IHRpZDogYzMyNWZjYzMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiOTAwMCBuYmxvY2tzIDB4YmIgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzMDEpOiB0aWQ6IGMzMjVmY2MzICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogYzMyNWZjYzMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzAzKTogdGlk OiBjMzI1ZmNjMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjE2NyAgbG9uZ2VzdDogMTk0OTIxNjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMDQpOiB0aWQ6IGMzMjVmY2MzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzA1KTogdGlkOiBjMzI1ZmNjMyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMDYpOiB0aWQ6IGMzMjVmY2MzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwNyk6IHRpZDogYzMyNWZjYzMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzA4KTogdGlkOiBjMzI1ZmNjMyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiBm YThkZDQ3MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMTApOiB0aWQ6IGZhOGRkNDcxICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTEpOiB0aWQ6IGZh OGRkNDcxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMTIpOiB0aWQ6IGZhOGRkNDcxICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmE0MDAgbmJsb2NrcyAweGJjIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzEzKTogdGlkOiBmYThkZDQ3MSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IGZhOGRkNDcxICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxNSk6IHRpZDog ZmE4ZGQ0NzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxNjYgIGxvbmdlc3Q6IDE5NDkyMTY2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzE2KTogdGlkOiBmYThkZDQ3MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxNyk6IHRpZDogZmE4ZGQ0NzEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzE4KTogdGlkOiBmYThkZDQ3MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTkpOiB0aWQ6IGZhOGRkNDcxICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyMCk6IHRpZDogZmE4ZGQ0NzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogMmNl NjY0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMjIpOiB0aWQ6IDJjZTY2NGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogMmNlNjY0 ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzI0KTogdGlkOiAyY2U2NjRmICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YmI4MDAgbmJsb2NrcyAweGJkIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzI1KTogdGlkOiAyY2U2NjRmICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyNik6IHRpZDogMmNlNjY0ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjcpOiB0aWQ6IDJjZTY2NGYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxNjUgIGxvbmdlc3Q6IDE5NDkyMTY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI4KTog dGlkOiAyY2U2NjRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzI5KTogdGlkOiAyY2U2NjRmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMz MCk6IHRpZDogMmNlNjY0ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzMzEpOiB0aWQ6IDJjZTY2NGYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzMyKTogdGlkOiAyY2U2NjRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMpOiB0aWQ6IGVhMDlmZWI3ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMzNCk6IHRpZDogZWEwOWZlYjcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNSk6IHRpZDogZWEwOWZlYjcgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDMzNik6IHRpZDogZWEwOWZlYjcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhiY2MwMCBuYmxvY2tzIDB4YmUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICgzMzcpOiB0aWQ6IGVhMDlmZWI3ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMzOCk6IHRpZDogZWEwOWZlYjcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM5KTogdGlkOiBlYTA5ZmViNyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2NCAg bG9uZ2VzdDogMTk0OTIxNjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6IGVh MDlmZWI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzQxKTogdGlkOiBlYTA5ZmViNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDIpOiB0 aWQ6IGVhMDlmZWI3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0Myk6IHRpZDogZWEwOWZlYjcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ0 KTogdGlkOiBlYTA5ZmViNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ1KTogdGlkOiA5MzMxZGZlYiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NDYpOiB0aWQ6IDkzMzFkZmViICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDcpOiB0aWQ6IDkzMzFkZmViICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzNDgpOiB0aWQ6IDkzMzFkZmViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4YmUwMDAgbmJsb2NrcyAweGMwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoMzQ5KTogdGlkOiA5MzMxZGZlYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNTApOiB0aWQ6IDkzMzFkZmViICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1MSk6IHRpZDogOTMzMWRmZWIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjIgIGxv bmdlc3Q6IDE5NDkyMTYyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlkOiA5MzMx ZGZlYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1Myk6IHRpZDogOTMzMWRmZWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU0KTogdGlk OiA5MzMxZGZlYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNTUpOiB0aWQ6IDkzMzFkZmViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nik6 IHRpZDogOTMzMWRmZWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nyk6IHRpZDogMWIyN2M0YzEgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU4 KTogdGlkOiAxYjI3YzRjMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU5KTogdGlkOiAxYjI3YzRjMSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzYwKTogdGlkOiAxYjI3YzRjMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGJmNDAwIG5ibG9ja3MgMHhjMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDM2MSk6IHRpZDogMWIyN2M0YzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzYyKTogdGlkOiAxYjI3YzRjMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNjMpOiB0aWQ6IDFiMjdjNGMxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTYxICBsb25n ZXN0OiAxOTQ5MjE2MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDogMWIyN2M0 YzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNjUpOiB0aWQ6IDFiMjdjNGMxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nik6IHRpZDog MWIyN2M0YzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzY3KTogdGlkOiAxYjI3YzRjMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjgpOiB0 aWQ6IDFiMjdjNGMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjkpOiB0aWQ6IDg3ODlhZWUxICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MCk6 IHRpZDogODc4OWFlZTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3MSk6IHRpZDogODc4OWFlZTEgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDM3Mik6IHRpZDogODc4OWFlZTEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhjMDgwMCBuYmxvY2tzIDB4YzIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICgzNzMpOiB0aWQ6IDg3ODlhZWUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3NCk6IHRpZDogODc4OWFlZTEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzc1KTogdGlkOiA4Nzg5YWVlMSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2MCAgbG9uZ2Vz dDogMTk0OTIxNjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IDg3ODlhZWUx ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzc3KTogdGlkOiA4Nzg5YWVlMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzgpOiB0aWQ6IDg3 ODlhZWUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM3OSk6IHRpZDogODc4OWFlZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgwKTogdGlk OiA4Nzg5YWVlMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiAxY2YxMTlmYSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODIpOiB0 aWQ6IDFjZjExOWZhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzODMpOiB0aWQ6IDFjZjExOWZhICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzODQpOiB0aWQ6IDFjZjExOWZhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YzFjMDAgbmJsb2NrcyAweGMzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDMKT3BlciAoMzg1KTogdGlkOiAxY2YxMTlmYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz ODYpOiB0aWQ6IDFjZjExOWZhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM4Nyk6IHRpZDogMWNmMTE5ZmEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTkgIGxvbmdlc3Q6 IDE5NDkyMTU5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiAxY2YxMTlmYSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM4OSk6IHRpZDogMWNmMTE5ZmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkwKTogdGlkOiAxY2Yx MTlmYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzOTEpOiB0aWQ6IDFjZjExOWZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Mik6IHRpZDog MWNmMTE5ZmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogNDBkMmFhNjQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk0KTogdGlk OiA0MGQyYWE2NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzk1KTogdGlkOiA0MGQyYWE2NCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzk2KTogdGlkOiA0MGQyYWE2NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGMzMDAwIG5ibG9ja3MgMHhjNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgz Ck9wZXIgKDM5Nyk6IHRpZDogNDBkMmFhNjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4 KTogdGlkOiA0MGQyYWE2NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzOTkpOiB0aWQ6IDQwZDJhYTY0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU3ICBsb25nZXN0OiAx OTQ5MjE1NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogNDBkMmFhNjQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MDEpOiB0aWQ6IDQwZDJhYTY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMik6IHRpZDogNDBkMmFh NjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDAzKTogdGlkOiA0MGQyYWE2NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDQpOiB0aWQ6IDQw ZDJhYTY0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IDI2NjA0MzI1ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNik6IHRpZDog MjY2MDQzMjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQwNyk6IHRpZDogMjY2MDQzMjUgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQwOCk6IHRpZDogMjY2MDQzMjUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhjNDQwMCBuYmxvY2tzIDB4YzYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpP cGVyICg0MDkpOiB0aWQ6IDI2NjA0MzI1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6 IHRpZDogMjY2MDQzMjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDExKTogdGlkOiAyNjYwNDMyNSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NiAgbG9uZ2VzdDogMTk0 OTIxNTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IDI2NjA0MzI1ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDEzKTogdGlkOiAyNjYwNDMyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTQpOiB0aWQ6IDI2NjA0MzI1 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQxNSk6IHRpZDogMjY2MDQzMjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE2KTogdGlkOiAyNjYw NDMyNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDE3KTogdGlkOiA5ZDA5NTUzZSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTgpOiB0aWQ6IDlk MDk1NTNlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MTkpOiB0aWQ6IDlkMDk1NTNlICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0 MjApOiB0aWQ6IDlkMDk1NTNlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YzU4MDAgbmJsb2NrcyAweGM3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3Bl ciAoNDIxKTogdGlkOiA5ZDA5NTUzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0 aWQ6IDlkMDk1NTNlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQyMyk6IHRpZDogOWQwOTU1M2UgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTUgIGxvbmdlc3Q6IDE5NDky MTU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiA5ZDA5NTUzZSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQy NSk6IHRpZDogOWQwOTU1M2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI2KTogdGlkOiA5ZDA5NTUzZSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MjcpOiB0aWQ6IDlkMDk1NTNlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOCk6IHRpZDogOWQwOTU1 M2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQyOSk6IHRpZDogMmUxY2RiODUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMwKTogdGlkOiAyZTFj ZGI4NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDMxKTogdGlkOiAyZTFjZGI4NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDMy KTogdGlkOiAyZTFjZGI4NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGM2 YzAwIG5ibG9ja3MgMHhjOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIg KDQzMyk6IHRpZDogMmUxY2RiODUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlk OiAyZTFjZGI4NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0MzUpOiB0aWQ6IDJlMWNkYjg1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU0ICBsb25nZXN0OiAxOTQ5MjE1 NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogMmUxY2RiODUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Mzcp OiB0aWQ6IDJlMWNkYjg1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRpZDogMmUxY2RiODUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDM5KTogdGlkOiAyZTFjZGI4NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDApOiB0aWQ6IDJlMWNkYjg1 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NDEpOiB0aWQ6IDk5YTYxMWZmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Mik6IHRpZDogOTlhNjEx ZmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ0Myk6IHRpZDogOTlhNjExZmYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0NCk6 IHRpZDogOTlhNjExZmYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjODAw MCBuYmxvY2tzIDB4Y2EgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0 NDUpOiB0aWQ6IDk5YTYxMWZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDog OTlhNjExZmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDQ3KTogdGlkOiA5OWE2MTFmZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1MiAgbG9uZ2VzdDogMTk0OTIxNTIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IDk5YTYxMWZmICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ5KTog dGlkOiA5OWE2MTFmZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTApOiB0aWQ6IDk5YTYxMWZmICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1 MSk6IHRpZDogOTlhNjExZmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiA5OWE2MTFmZiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDUzKTogdGlkOiBlMGU3YzkyZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTQpOiB0aWQ6IGUwZTdjOTJm ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NTUpOiB0aWQ6IGUwZTdjOTJmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NTYpOiB0 aWQ6IGUwZTdjOTJmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Yzk0MDAg bmJsb2NrcyAweGNiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoNDU3 KTogdGlkOiBlMGU3YzkyZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IGUw ZTdjOTJmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQ1OSk6IHRpZDogZTBlN2M5MmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTEgIGxvbmdlc3Q6IDE5NDkyMTUxCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiBlMGU3YzkyZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2MSk6IHRp ZDogZTBlN2M5MmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYyKTogdGlkOiBlMGU3YzkyZiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjMp OiB0aWQ6IGUwZTdjOTJmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRpZDogZTBlN2M5MmYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ2NSk6IHRpZDogODNhOTk3ZGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY2KTogdGlkOiA4M2E5OTdkYSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDY3KTogdGlkOiA4M2E5OTdkYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDY4KTogdGlk OiA4M2E5OTdkYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNhODAwIG5i bG9ja3MgMHhjYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDQ2OSk6 IHRpZDogODNhOTk3ZGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA4M2E5 OTdkYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NzEpOiB0aWQ6IDgzYTk5N2RhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTUwICBsb25nZXN0OiAxOTQ5MjE1MAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogODNhOTk3ZGEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzMpOiB0aWQ6 IDgzYTk5N2RhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NCk6IHRpZDogODNhOTk3ZGEgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDc1KTog dGlkOiA4M2E5OTdkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6IDgzYTk5N2RhICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NzcpOiB0aWQ6IDU0MTczMjIwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OCk6IHRpZDogNTQxNzMyMjAgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3OSk6IHRpZDogNTQxNzMyMjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4MCk6IHRpZDog NTQxNzMyMjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjYmMwMCBuYmxv Y2tzIDB4Y2QgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg0ODEpOiB0 aWQ6IDU0MTczMjIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogNTQxNzMy MjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDgzKTogdGlkOiA1NDE3MzIyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0OSAgbG9uZ2VzdDogMTk0OTIxNDkKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IDU0MTczMjIwICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDg1KTogdGlkOiA1 NDE3MzIyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODYpOiB0aWQ6IDU0MTczMjIwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4Nyk6IHRp ZDogNTQxNzMyMjAgIGxlbjogMzIgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVFIApC VUYgREFUQQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEs MTA4MQl0YWlsX2xzbjogMSw4MTIKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zm c2V0OiAxMDE3CQludW0gb3BzOiA0OTAKdXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2 ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiA1NDE3MzIyMCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3Bs aXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA1NDE3MzIyMCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMik6IHRpZDogZmJiMmI0YWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMyk6IHRpZDogZmJiMmI0YWIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQpOiB0aWQ6IGZiYjJiNGFiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1KTogdGlkOiBmYmIy YjRhYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNkMDAwIG5ibG9ja3Mg MHhjZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDYpOiB0aWQ6IGZi YjJiNGFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IGZiYjJiNGFiICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgp OiB0aWQ6IGZiYjJiNGFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTQ3ICBsb25nZXN0OiAxOTQ5MjE0NwotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDkpOiB0aWQ6IGZiYjJiNGFiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTApOiB0aWQ6IGZiYjJiNGFiICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExKTogdGlkOiBmYmIyYjRhYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogZmJiMmI0YWIgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IGZiYjJiNGFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogYWMz NGJjNzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IGFjMzRiYzczICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogYWMzNGJj NzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE3KTogdGlkOiBhYzM0YmM3MyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNlNDAwIG5ibG9ja3MgMHhkMCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDE4KTogdGlkOiBhYzM0YmM3MyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogYWMzNGJjNzMgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IGFjMzRiYzcz ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTQ2ICBsb25nZXN0OiAxOTQ5MjE0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTog dGlkOiBhYzM0YmM3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiBhYzM0YmM3MyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy Myk6IHRpZDogYWMzNGJjNzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IGFjMzRiYzczICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1KTogdGlkOiBhYzM0YmM3MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IGMwNjg3NzFmICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3KTogdGlkOiBjMDY4NzcxZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IGMwNjg3NzFmICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyOSk6IHRpZDogYzA2ODc3MWYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhjZjgwMCBuYmxvY2tzIDB4ZDEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MwpPcGVyICgzMCk6IHRpZDogYzA2ODc3MWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzEpOiB0aWQ6IGMwNjg3NzFmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyKTogdGlkOiBjMDY4NzcxZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0NSAgbG9uZ2Vz dDogMTk0OTIxNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDogYzA2ODc3MWYg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgzNCk6IHRpZDogYzA2ODc3MWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGMwNjg3 NzFmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDM2KTogdGlkOiBjMDY4NzcxZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogYzA2 ODc3MWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiA0YjA2Y2JkOSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDogNGIw NmNiZDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwKTogdGlkOiA0YjA2Y2JkOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDEp OiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDBj MDAgbmJsb2NrcyAweGQyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAo NDIpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiA0 YjA2Y2JkOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg0NCk6IHRpZDogNGIwNmNiZDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDQgIGxvbmdlc3Q6IDE5NDkyMTQ0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6 IDRiMDZjYmQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA0YjA2Y2JkOSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRp ZDogNGIwNmNiZDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDRiMDZjYmQ5ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1MCk6IHRpZDogMjc1NjZiNzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IDI3NTY2YjcxICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Mik6IHRpZDogMjc1NjZiNzEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDUzKTogdGlkOiAyNzU2NmI3 MSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQyMDAwIG5ibG9ja3MgMHhk NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDU0KTogdGlkOiAyNzU2 NmI3MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NSk6IHRpZDogMjc1NjZiNzEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTYp OiB0aWQ6IDI3NTY2YjcxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTQyICBsb25nZXN0OiAxOTQ5MjE0MgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDU3KTogdGlkOiAyNzU2NmI3MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU4KTogdGlkOiAyNzU2NmI3MSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1OSk6IHRpZDogMjc1NjZiNzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IDI3NTY2YjcxICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiAyNzU2NmI3MSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6IDdm NzU5NGYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYzKTogdGlkOiA3Zjc1OTRmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6IDdmNzU5 NGYyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2NSk6IHRpZDogN2Y3NTk0ZjIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkMzQwMCBuYmxvY2tzIDB4ZDUgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICg2Nik6IHRpZDogN2Y3NTk0ZjIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDdmNzU5NGYyICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDY4KTogdGlkOiA3Zjc1OTRm MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjE0MSAgbG9uZ2VzdDogMTk0OTIxNDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6 IHRpZDogN2Y3NTk0ZjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg3MCk6IHRpZDogN2Y3NTk0ZjIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NzEpOiB0aWQ6IDdmNzU5NGYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDcyKTogdGlkOiA3Zjc1OTRmMiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3Myk6IHRpZDogN2Y3NTk0ZjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiBkM2Q0Nzg1ZSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg3NSk6IHRpZDogZDNkNDc4NWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc2KTogdGlkOiBkM2Q0Nzg1ZSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNzcpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZDQ4MDAgbmJsb2NrcyAweGQ2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoNzgpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc5KTogdGlkOiBkM2Q0Nzg1ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4MCk6IHRpZDogZDNkNDc4NWUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNDAgIGxvbmdl c3Q6IDE5NDkyMTQwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IGQzZDQ3ODVl ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoODIpOiB0aWQ6IGQzZDQ3ODVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiBkM2Q0 Nzg1ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg4NCk6IHRpZDogZDNkNDc4NWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IGQz ZDQ3ODVlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDogY2I2NGVkMWQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IGNi NjRlZDFkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg4OCk6IHRpZDogY2I2NGVkMWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDg5 KTogdGlkOiBjYjY0ZWQxZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ1 YzAwIG5ibG9ja3MgMHhkNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIg KDkwKTogdGlkOiBjYjY0ZWQxZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDog Y2I2NGVkMWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoOTIpOiB0aWQ6IGNiNjRlZDFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM5ICBsb25nZXN0OiAxOTQ5MjEzOQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiBjYjY0ZWQxZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlk OiBjYjY0ZWQxZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogY2I2NGVkMWQgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0 aWQ6IGNiNjRlZDFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiBjYjY0ZWQxZCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTgpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiA0YjAwNzdjZiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTAwKTogdGlkOiA0YjAwNzdjZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTAxKTogdGlkOiA0YjAw NzdjZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGQ3MDAwIG5ibG9ja3Mg MHhkOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDEwMik6IHRpZDog NGIwMDc3Y2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiA0YjAwNzdjZiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgxMDQpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM3ICBsb25nZXN0OiAxOTQ5MjEzNwotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogNGIwMDc3Y2YgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IDRiMDA3 N2NmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogNGIwMDc3Y2YgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiA0 YjAwNzdjZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IDRiMDA3N2NmICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTApOiB0aWQ6IGE3YjQ0NDYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMSk6IHRpZDogYTdiNDQ0NjIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx Mik6IHRpZDogYTdiNDQ0NjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDExMyk6IHRpZDogYTdiNDQ0 NjIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkODQwMCBuYmxvY2tzIDB4 ZGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxMTQpOiB0aWQ6IGE3 YjQ0NDYyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogYTdiNDQ0NjIgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTE2KTogdGlkOiBhN2I0NDQ2MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNiAgbG9uZ2VzdDogMTk0OTIxMzYKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IGE3YjQ0NDYyICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTE4KTogdGlkOiBhN2I0NDQ2 MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IGE3YjQ0NDYyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogYTdi NDQ0NjIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIxKTogdGlkOiBhN2I0NDQ2MiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIy KTogdGlkOiAzYjRmYzg4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjMpOiB0aWQ6IDNiNGZjODhiICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQp OiB0aWQ6IDNiNGZjODhiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMjUpOiB0aWQ6IDNiNGZjODhi ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDk4MDAgbmJsb2NrcyAweGRi IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMTI2KTogdGlkOiAzYjRm Yzg4YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjcpOiB0aWQ6IDNiNGZjODhiICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEy OCk6IHRpZDogM2I0ZmM4OGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxMzUgIGxvbmdlc3Q6IDE5NDkyMTM1Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTI5KTogdGlkOiAzYjRmYzg4YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMCk6IHRpZDogM2I0ZmM4OGIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiAzYjRmYzg4YiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDNiNGZj ODhiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6IHRpZDogM2I0ZmM4OGIgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNCk6 IHRpZDogZGRjYjVhZGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1KTogdGlkOiBkZGNiNWFkZSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM2KTog dGlkOiBkZGNiNWFkZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTM3KTogdGlkOiBkZGNiNWFkZSAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRhYzAwIG5ibG9ja3MgMHhkYyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDEzOCk6IHRpZDogZGRjYjVh ZGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiBkZGNiNWFkZSAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDAp OiB0aWQ6IGRkY2I1YWRlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTM0ICBsb25nZXN0OiAxOTQ5MjEzNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0MSk6IHRpZDogZGRjYjVhZGUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNDIpOiB0aWQ6IGRkY2I1YWRlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogZGRjYjVhZGUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiBkZGNiNWFk ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0aWQ6IGRkY2I1YWRlICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0 aWQ6IDQ1ZDhiZTMwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6IHRpZDogNDVkOGJlMzAgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRp ZDogNDVkOGJlMzAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0OSk6IHRpZDogNDVkOGJlMzAgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAwMCBuYmxvY2tzIDB4ZGUgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxNTApOiB0aWQ6IDQ1ZDhiZTMw ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MSk6IHRpZDogNDVkOGJlMzAgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTUyKTog dGlkOiA0NWQ4YmUzMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjEzMiAgbG9uZ2VzdDogMTk0OTIxMzIKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTMpOiB0aWQ6IDQ1ZDhiZTMwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU0KTogdGlkOiA0NWQ4YmUzMCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDQ1ZDhiZTMwICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogNDVkOGJlMzAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTU3KTogdGlkOiA0NWQ4YmUzMCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4KTogdGlk OiA0MDJlZjgwNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0aWQ6IDQwMmVmODA3ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6 IDQwMmVmODA3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNjEpOiB0aWQ6IDQwMmVmODA3ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGQ0MDAgbmJsb2NrcyAweGRmIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMTYyKTogdGlkOiA0MDJlZjgwNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDQwMmVmODA3ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2NCk6IHRp ZDogNDAyZWY4MDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxMzEgIGxvbmdlc3Q6IDE5NDkyMTMxCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY1KTogdGlkOiA0MDJlZjgwNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6IHRpZDogNDAyZWY4MDcgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY3KTogdGlkOiA0MDJlZjgwNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IDQwMmVmODA3ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogNDAyZWY4MDcgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MCk6IHRpZDog ZDY2YTNlYTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlkOiBkNjZhM2VhNCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcyKTogdGlkOiBk NjZhM2VhNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTczKTogdGlkOiBkNjZhM2VhNCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRlODAwIG5ibG9ja3MgMHhlMCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDE3NCk6IHRpZDogZDY2YTNlYTQgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiBkNjZhM2VhNCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6 IGQ2NmEzZWE0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTMwICBsb25nZXN0OiAxOTQ5MjEzMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3Nyk6IHRpZDogZDY2YTNlYTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzgpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3OSk6IHRpZDogZDY2YTNlYTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiBkNjZhM2VhNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IGQ2NmEzZWE0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6IDJh ZmI0ZjRmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogMmFmYjRmNGYgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogMmFm YjRmNGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4NSk6IHRpZDogMmFmYjRmNGYgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkZmMwMCBuYmxvY2tzIDB4ZTEgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxODYpOiB0aWQ6IDJhZmI0ZjRmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6IHRpZDogMmFmYjRmNGYgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTg4KTogdGlkOiAy YWZiNGY0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjEyOSAgbG9uZ2VzdDogMTk0OTIxMjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxODkpOiB0aWQ6IDJhZmI0ZjRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlkOiAyYWZiNGY0ZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxOTEpOiB0aWQ6IDJhZmI0ZjRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogMmFmYjRmNGYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTkzKTogdGlkOiAyYWZiNGY0ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk0KTogdGlkOiAyYjE4 YWQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE5NSk6IHRpZDogMmIxOGFkOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk2KTogdGlkOiAyYjE4YWQ5 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTcpOiB0aWQ6IDJiMThhZDkgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlMTAwMCBuYmxvY2tzIDB4ZTMgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgxOTgpOiB0aWQ6IDJiMThhZDkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTk5KTogdGlkOiAyYjE4YWQ5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIwMCk6IHRpZDogMmIxOGFkOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjEyNyAgbG9uZ2VzdDogMTk0OTIxMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0 aWQ6IDJiMThhZDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgyMDIpOiB0aWQ6IDJiMThhZDkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAz KTogdGlkOiAyYjE4YWQ5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDIwNCk6IHRpZDogMmIxOGFkOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDUpOiB0aWQ6IDJiMThhZDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNik6IHRpZDogZmFiOWU3OTUgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjA3KTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA4KTogdGlkOiBmYWI5ZTc5NSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMjA5KTogdGlkOiBmYWI5ZTc5NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGUyNDAwIG5ibG9ja3MgMHhlNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgzCk9wZXIgKDIxMCk6IHRpZDogZmFiOWU3OTUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjExKTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMTIpOiB0aWQ6IGZhYjllNzk1ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI2ICBs b25nZXN0OiAxOTQ5MjEyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDogZmFi OWU3OTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMTQpOiB0aWQ6IGZhYjllNzk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRp ZDogZmFiOWU3OTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiBmYWI5ZTc5NSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcp OiB0aWQ6IGZhYjllNzk1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTgpOiB0aWQ6IGMwZTg4YWRkICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx OSk6IHRpZDogYzBlODhhZGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMCk6IHRpZDogYzBlODhhZGQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDIyMSk6IHRpZDogYzBlODhhZGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhlMzgwMCBuYmxvY2tzIDB4ZTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MwpPcGVyICgyMjIpOiB0aWQ6IGMwZTg4YWRkICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIyMyk6IHRpZDogYzBlODhhZGQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjI0KTogdGlkOiBjMGU4OGFkZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyNSAgbG9u Z2VzdDogMTk0OTIxMjUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjUpOiB0aWQ6IGMwZTg4 YWRkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjI2KTogdGlkOiBjMGU4OGFkZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6 IGMwZTg4YWRkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIyOCk6IHRpZDogYzBlODhhZGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTog dGlkOiBjMGU4OGFkZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMwKTogdGlkOiA3NjIwZjNiNCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEp OiB0aWQ6IDc2MjBmM2I0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzIpOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgyMzMpOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4ZTRjMDAgbmJsb2NrcyAweGU2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKT3BlciAoMjM0KTogdGlkOiA3NjIwZjNiNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMzUpOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIzNik6IHRpZDogNzYyMGYzYjQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjQgIGxvbmdl c3Q6IDE5NDkyMTI0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiA3NjIwZjNi NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDIzOCk6IHRpZDogNzYyMGYzYjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiA3 NjIwZjNiNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyNDApOiB0aWQ6IDc2MjBmM2I0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRp ZDogNzYyMGYzYjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Mik6IHRpZDogYmY1Y2M1YzAgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQzKTog dGlkOiBiZjVjYzVjMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0KTogdGlkOiBiZjVjYzVjMCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMjQ1KTogdGlkOiBiZjVjYzVjMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGU2MDAwIG5ibG9ja3MgMHhlOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgzCk9wZXIgKDI0Nik6IHRpZDogYmY1Y2M1YzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjQ3KTogdGlkOiBiZjVjYzVjMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDgpOiB0aWQ6IGJmNWNjNWMwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTIyICBsb25nZXN0 OiAxOTQ5MjEyMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogYmY1Y2M1YzAg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyNTApOiB0aWQ6IGJmNWNjNWMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogYmY1 Y2M1YzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjUyKTogdGlkOiBiZjVjYzVjMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6 IGJmNWNjNWMwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNTQpOiB0aWQ6IGU3N2U4MDUgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU1KTogdGlk OiBlNzdlODA1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0aWQ6IGU3N2U4MDUgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDI1Nyk6IHRpZDogZTc3ZTgwNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGU3NDAwIG5ibG9ja3MgMHhlOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9w ZXIgKDI1OCk6IHRpZDogZTc3ZTgwNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0 aWQ6IGU3N2U4MDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMjYwKTogdGlkOiBlNzdlODA1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTIxICBsb25nZXN0OiAxOTQ5MjEy MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogZTc3ZTgwNSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Mik6 IHRpZDogZTc3ZTgwNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IGU3N2U4MDUgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY0 KTogdGlkOiBlNzdlODA1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6IHRpZDogZTc3ZTgwNSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjY2KTogdGlkOiAxYmEyNzEyZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjcpOiB0aWQ6IDFiYTI3MTJmICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNjgpOiB0aWQ6IDFiYTI3MTJmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjkpOiB0aWQ6 IDFiYTI3MTJmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTg4MDAgbmJs b2NrcyAweGVhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMjcwKTog dGlkOiAxYmEyNzEyZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDFiYTI3 MTJmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDI3Mik6IHRpZDogMWJhMjcxMmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjAgIGxvbmdlc3Q6IDE5NDkyMTIwCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjczKTogdGlkOiAxYmEyNzEyZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDog MWJhMjcxMmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiAxYmEyNzEyZiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0 aWQ6IDFiYTI3MTJmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogMWJhMjcxMmYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI3OCk6IHRpZDogYzY5ZjRmZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlkOiBjNjlmNGZmMyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjgwKTogdGlkOiBjNjlmNGZmMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjgxKTogdGlkOiBj NjlmNGZmMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGU5YzAwIG5ibG9j a3MgMHhlYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDI4Mik6IHRp ZDogYzY5ZjRmZjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiBjNjlmNGZm MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyODQpOiB0aWQ6IGM2OWY0ZmYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTE5ICBsb25nZXN0OiAxOTQ5MjExOQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogYzY5ZjRmZjMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IGM2 OWY0ZmYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogYzY5ZjRmZjMgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlk OiBjNjlmNGZmMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IGM2OWY0ZmYzICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTApOiB0aWQ6IDMyYTEwYzc4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDogMzJhMTBjNzggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5Mik6IHRpZDogMzJhMTBjNzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Myk6IHRpZDogMzJh MTBjNzggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlYjAwMCBuYmxvY2tz IDB4ZWQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgyOTQpOiB0aWQ6 IDMyYTEwYzc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogMzJhMTBjNzgg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjk2KTogdGlkOiAzMmExMGM3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExNyAgbG9uZ2VzdDogMTk0OTIxMTcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IDMyYTEwYzc4ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiAzMmEx MGM3OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDMyYTEwYzc4ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDog MzJhMTBjNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiAzMmExMGM3OCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzAyKTogdGlkOiBjMDIxZDU4NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IGMwMjFkNTg3ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDQpOiB0aWQ6IGMwMjFkNTg3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDUpOiB0aWQ6IGMwMjFk NTg3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZWM0MDAgbmJsb2NrcyAw eGVlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzA2KTogdGlkOiBj MDIxZDU4NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IGMwMjFkNTg3ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDMwOCk6IHRpZDogYzAyMWQ1ODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMTYgIGxvbmdlc3Q6IDE5NDkyMTE2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiBjMDIxZDU4NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogYzAyMWQ1 ODcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBjMDIxZDU4NyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IGMw MjFkNTg3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogYzAyMWQ1ODcgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMx NCk6IHRpZDogYjlmZTY2NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiBiOWZlNjY0YyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2 KTogdGlkOiBiOWZlNjY0YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzE3KTogdGlkOiBiOWZlNjY0 YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGVkODAwIG5ibG9ja3MgMHhl ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDMxOCk6IHRpZDogYjlm ZTY2NGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiBiOWZlNjY0YyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgz MjApOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTE1ICBsb25nZXN0OiAxOTQ5MjExNQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogYjlmZTY2NGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IGI5ZmU2NjRj ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogYjlmZTY2NGMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiBiOWZl NjY0YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IGI5ZmU2NjRjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjYp OiB0aWQ6IGU3ZmEyOGUxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRpZDogZTdmYTI4ZTEgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6 IHRpZDogZTdmYTI4ZTEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyOSk6IHRpZDogZTdmYTI4ZTEg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlZWMwMCBuYmxvY2tzIDB4ZjAg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzMzApOiB0aWQ6IGU3ZmEy OGUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogZTdmYTI4ZTEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMy KTogdGlkOiBlN2ZhMjhlMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjExNCAgbG9uZ2VzdDogMTk0OTIxMTQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzMpOiB0aWQ6IGU3ZmEyOGUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiBlN2ZhMjhlMSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGU3ZmEyOGUxICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogZTdmYTI4 ZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzM3KTogdGlkOiBlN2ZhMjhlMSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM4KTog dGlkOiA4Y2MyN2EwNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IDhjYzI3YTA3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0 aWQ6IDhjYzI3YTA3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDEpOiB0aWQ6IDhjYzI3YTA3ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjAwMDAgbmJsb2NrcyAweGYyIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzQyKTogdGlkOiA4Y2MyN2Ew NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IDhjYzI3YTA3ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0NCk6 IHRpZDogOGNjMjdhMDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxMTIgIGxvbmdlc3Q6IDE5NDkyMTEyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQ1KTogdGlkOiA4Y2MyN2EwNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogOGNjMjdhMDcgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiA4Y2MyN2EwNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IDhjYzI3YTA3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM0OSk6IHRpZDogOGNjMjdhMDcgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MCk6IHRp ZDogYzNiNzUyOTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlkOiBjM2I3NTI5MiAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlk OiBjM2I3NTI5MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzUzKTogdGlkOiBjM2I3NTI5MiAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYxNDAwIG5ibG9ja3MgMHhmMyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgzCk9wZXIgKDM1NCk6IHRpZDogYzNiNzUyOTIg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiBjM2I3NTI5MiAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTYpOiB0 aWQ6IGMzYjc1MjkyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkyMTExICBsb25nZXN0OiAxOTQ5MjExMQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM1Nyk6IHRpZDogYzNiNzUyOTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IGMzYjc1MjkyICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogYzNiNzUyOTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiBjM2I3NTI5MiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjEpOiB0aWQ6IGMzYjc1MjkyICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjIpOiB0aWQ6 IDk5ZmJkM2U4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDogOTlmYmQzZTggIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDog OTlmYmQzZTggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2NSk6IHRpZDogOTlmYmQzZTggIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmMjgwMCBuYmxvY2tzIDB4ZjQgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVyICgzNjYpOiB0aWQ6IDk5ZmJkM2U4ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogOTlmYmQzZTggIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzY4KTogdGlk OiA5OWZiZDNlOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjExMCAgbG9uZ2VzdDogMTk0OTIxMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNjkpOiB0aWQ6IDk5ZmJkM2U4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcwKTogdGlkOiA5OWZiZDNlOCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzEpOiB0aWQ6IDk5ZmJkM2U4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogOTlmYmQzZTggIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzczKTogdGlkOiA5OWZiZDNlOCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc0KTogdGlkOiBl NmU5MTgzNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IGU2ZTkxODM2ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IGU2 ZTkxODM2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzcpOiB0aWQ6IGU2ZTkxODM2ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjNjMDAgbmJsb2NrcyAweGY1IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzc4KTogdGlkOiBlNmU5MTgzNiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IGU2ZTkxODM2ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDog ZTZlOTE4MzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIxMDkgIGxvbmdlc3Q6IDE5NDkyMTA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzgxKTogdGlkOiBlNmU5MTgzNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Mik6IHRpZDogZTZlOTE4MzYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzgzKTogdGlkOiBlNmU5MTgzNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IGU2ZTkxODM2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM4NSk6IHRpZDogZTZlOTE4MzYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nik6IHRpZDogNTVl MzcxNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzODcpOiB0aWQ6IDU1ZTM3MTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OCk6IHRpZDogNTVlMzcx NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg5KTogdGlkOiA1NWUzNzE0ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjUwMDAgbmJsb2NrcyAweGY3IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDMKT3BlciAoMzkwKTogdGlkOiA1NWUzNzE0ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5MSk6IHRpZDogNTVlMzcxNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTIpOiB0aWQ6IDU1ZTM3MTQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxMDcgIGxvbmdlc3Q6IDE5NDkyMTA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTog dGlkOiA1NWUzNzE0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzk0KTogdGlkOiA1NWUzNzE0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5 NSk6IHRpZDogNTVlMzcxNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzOTYpOiB0aWQ6IDU1ZTM3MTQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzk3KTogdGlkOiA1NWUzNzE0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTgpOiB0aWQ6IGUwODhhNWQ0ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5OSk6IHRpZDogZTA4OGE1ZDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogZTA4OGE1ZDQgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQwMSk6IHRpZDogZTA4OGE1ZDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhmNjQwMCBuYmxvY2tzIDB4ZjggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MwpPcGVyICg0MDIpOiB0aWQ6IGUwODhhNWQ0ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQwMyk6IHRpZDogZTA4OGE1ZDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiBlMDg4YTVkNCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNiAg bG9uZ2VzdDogMTk0OTIxMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IGUw ODhhNWQ0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDA2KTogdGlkOiBlMDg4YTVkNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0 aWQ6IGUwODhhNWQ0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogZTA4OGE1ZDQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5 KTogdGlkOiBlMDg4YTVkNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEwKTogdGlkOiA5NDg0MWRmYyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MTEpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0MTMpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4Zjc4MDAgbmJsb2NrcyAweGY5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDMKT3BlciAoNDE0KTogdGlkOiA5NDg0MWRmYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MTUpOiB0aWQ6IDk0ODQxZGZjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxNik6IHRpZDogOTQ4NDFkZmMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDUgIGxv bmdlc3Q6IDE5NDkyMTA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3KTogdGlkOiA5NDg0 MWRmYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQxOCk6IHRpZDogOTQ4NDFkZmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlk OiA5NDg0MWRmYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IDk0ODQxZGZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6 IHRpZDogOTQ4NDFkZmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMik6IHRpZDogN2U0ZmJjOWEgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIz KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoNDI1KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGY4YzAwIG5ibG9ja3MgMHhmYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgzCk9wZXIgKDQyNik6IHRpZDogN2U0ZmJjOWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDI3KTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjgpOiB0aWQ6IDdlNGZiYzlhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA0ICBsb25n ZXN0OiAxOTQ5MjEwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6IHRpZDogN2U0ZmJj OWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MzApOiB0aWQ6IDdlNGZiYzlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDog N2U0ZmJjOWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDMyKTogdGlkOiA3ZTRmYmM5YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0 aWQ6IDdlNGZiYzlhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzQpOiB0aWQ6IGRjZTZkYWI2ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNSk6 IHRpZDogZGNlNmRhYjYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogZGNlNmRhYjYgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDQzNyk6IHRpZDogZGNlNmRhYjYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhmYTAwMCBuYmxvY2tzIDB4ZmMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MwpPcGVyICg0MzgpOiB0aWQ6IGRjZTZkYWI2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQzOSk6IHRpZDogZGNlNmRhYjYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDQwKTogdGlkOiBkY2U2ZGFiNiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwMiAgbG9uZ2Vz dDogMTk0OTIxMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0aWQ6IGRjZTZkYWI2 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDQyKTogdGlkOiBkY2U2ZGFiNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGRj ZTZkYWI2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ0NCk6IHRpZDogZGNlNmRhYjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlk OiBkY2U2ZGFiNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ2KTogdGlkOiA5NGQ5NDE3YyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDcpOiB0 aWQ6IDk0ZDk0MTdjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICg0NDkpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4ZmI0MDAgbmJsb2NrcyAweGZkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDMKT3BlciAoNDUwKTogdGlkOiA5NGQ5NDE3YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NTEpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDQ1Mik6IHRpZDogOTRkOTQxN2MgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDEgIGxvbmdlc3Q6 IDE5NDkyMTAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUzKTogdGlkOiA5NGQ5NDE3YyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ1NCk6IHRpZDogOTRkOTQxN2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA5NGQ5 NDE3YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0NTYpOiB0aWQ6IDk0ZDk0MTdjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDog OTRkOTQxN2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ1OCk6IHRpZDogZDlhZjQxZDEgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlk OiBkOWFmNDFkMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiBkOWFmNDFkMSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDYxKTogdGlkOiBkOWFmNDFkMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGZjODAwIG5ibG9ja3MgMHhmZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgz Ck9wZXIgKDQ2Mik6IHRpZDogZDlhZjQxZDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYz KTogdGlkOiBkOWFmNDFkMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg0NjQpOiB0aWQ6IGQ5YWY0MWQxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTAwICBsb25nZXN0OiAx OTQ5MjEwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDogZDlhZjQxZDEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NjYpOiB0aWQ6IGQ5YWY0MWQxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogZDlhZjQx ZDEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDY4KTogdGlkOiBkOWFmNDFkMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IGQ5 YWY0MWQxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NzApOiB0aWQ6IGM1MzQxYzFmICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDog YzUzNDFjMWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogYzUzNDFjMWYgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDQ3Myk6IHRpZDogYzUzNDFjMWYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhmZGMwMCBuYmxvY2tzIDB4ZmYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpP cGVyICg0NzQpOiB0aWQ6IGM1MzQxYzFmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6 IHRpZDogYzUzNDFjMWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDc2KTogdGlkOiBjNTM0MWMxZiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjA5OSAgbG9uZ2VzdDogMTk0 OTIwOTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IGM1MzQxYzFmICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDc4KTogdGlkOiBjNTM0MWMxZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IGM1MzQxYzFm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQ4MCk6IHRpZDogYzUzNDFjMWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiBjNTM0 MWMxZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDgyKTogdGlkOiBjMDA2NzY2YiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IGMw MDY3NjZiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IFNUUkFUX1dSSVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0ODQpOiB0aWQ6IGMwMDY3NjZiICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MyAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIg KDQ4NSk6IHRpZDogYzAwNjc2NmIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgwIG5ibG9ja3MgMHgyYzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwpPcGVy ICg0ODYpOiB0aWQ6IGMwMDY3NjZiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRp ZDogYzAwNjc2NmIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDg4KTogdGlkOiBjMDA2NzY2YiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM5NCAgbG9uZ2VzdDogMTk0OTEz OTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODkpOiB0aWQ6IGMwMDY3NjZiICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MAoKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMTE0NQl0YWlsX2xz bjogMSwxMDgxCmxlbmd0aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDEwODEJCW51 bSBvcHM6IDUKdXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9y bWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgwKTogdGlkOiA0NDE4Y2Q2ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiA0NDE4Y2Q2ZiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBTQl9DT1VO VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMik6IHRpZDogNDQxOGNkNmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMCAoMHgwKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMyk6IHRpZDogNDQxOGNkNmYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClNVUEVSIEJMT0NLIEJ1ZmZlcjogCmljb3VudDogNjQg IGlmcmVlOiA1OSAgZmRibGtzOiA3Nzk2MDk5NCAgZnJleHQ6IDAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0KTogdGlkOiA0NDE4Y2Q2ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjog MSwxMTQ3CXRhaWxfbHNuOiAxLDExNDUKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9m ZnNldDogMTE0NQkJbnVtIG9wczogMQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZk NzRhMjk1NjMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDY1ZTU3NDI2ICBsZW46IDggIGNsaWVudGlk OiBMT0cgIGZsYWdzOiBVTk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDExNDkJdGFpbF9sc246IDEsMTE0OQps ZW5ndGggb2YgTG9nIFJlY29yZDogNjE0NAlwcmV2IG9mZnNldDogMTE0NwkJbnVtIG9wczogOTcK dXVpZDogYjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0 bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgw KTogdGlkOiAzYzY4MTgxNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiAzYzY4MTgxNCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6 IDNjNjgxODE0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiAyOAogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICgzKTogdGlkOiAzYzY4MTgxNCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MWEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0KTogdGlkOiAzYzY4MTgxNCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJF Q1RPUlkgc2l6ZSAyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IDNjNjgxODE0 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAg IGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDYpOiB0aWQ6IDNjNjgxODE0ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4ZmRjMDAgbmJsb2NrcyAweGZmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiAzYzY4 MTgxNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg4KTogdGlkOiAzYzY4MTgxNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2IgIG5ld2lubzogMHg4MApi dWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZm IApidWNrZXRbNCAtIDddOiAweDg0IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApi dWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZm ZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOSk6IHRpZDogM2M2ODE4MTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwKTogdGlkOiA1NTQxNjdmOCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMSk6IHRpZDogNTU0MTY3ZjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyKTogdGlkOiA1NTQxNjdmOCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4 ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxMyk6IHRpZDogNTU0MTY3ZjggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogNTU0MTY3ZjggIGxlbjog MzIgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRUZJOiAgI3JlZ3M6IDEgICAgbnVtX2V4 dGVudHM6IDEgIGlkOiAweGZmZmZmZmZmZTNhM2UwMDAKKHM6IDB4YywgbDogMjU1KSAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNSk6IHRpZDogNTU0MTY3ZjggIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlk OiA1NTQxNjdmOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDogNTU0MTY3ZjkgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiA1 NTQxNjdmOSAgbGVuOiAzMiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFRkQ6ICAjcmVn czogMSAgICBudW1fZXh0ZW50czogMSAgaWQ6IDB4ZmZmZmZmZmZlM2EzZTAwMAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiA1NTQxNjdmOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMCk6IHRpZDogNTU0MTY3Zjkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzNTQgIGxvbmdlc3Q6IDE5NDkyMzU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0 aWQ6IDU1NDE2N2Y5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiA1NTQxNjdmOSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6 IHRpZDogNTU0MTY3ZjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNCk6IHRpZDogNTU0MTY3ZjkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjUpOiB0aWQ6IDU1NDE2N2Y5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2KTogdGlkOiA1NTQxNjdm OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDAgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3KTogdGlkOiA1NTQxNjdmOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgpOiB0aWQ6IDU1NDE2N2ZhICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI5KTogdGlkOiA1NTQxNjdmYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAz Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDU1NDE2N2ZhICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDMxKTogdGlkOiA1NTQxNjdmYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAwIHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMik6IHRpZDogNTU0MTY3ZmEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAo MHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMpOiB0aWQ6IDU1 NDE2N2ZhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVy OiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAz CmxldmVsOiAxICBmcmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFd OiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIg LSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tl dFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNCk6IHRp ZDogNTU0MTY3ZmEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzNSk6IHRpZDogNTU0MTY3ZmEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYp OiB0aWQ6IDU1NDE2N2ZhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogN2JiNzQyNzMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgp OiB0aWQ6IDdiYjc0MjczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IFJFTU9WRSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAzCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IDdiYjc0MjczICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6 IDB4MyAgIGRzaXplOiA4CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIg KDQwKTogdGlkOiA3YmI3NDI3MyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEK bmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 NiBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQx KTogdGlkOiA3YmI3NDI3MyAgbGVuOiA4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxP Q0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDYKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0Mik6IHRpZDogN2JiNzQyNzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNp emU6IDAKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICg0Myk6IHRp ZDogN2JiNzQyNzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAw IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9j a3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDMKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NCk6IHRpZDogN2JiNzQyNzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUpOiB0aWQ6IDdiYjc0MjczICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBm cmVlIzogMHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZm ZmZmZiAweGZmZmZmZmZmIDB4ODMgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZm ZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nik6IHRpZDogN2JiNzQyNzMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3KTogdGlkOiBmZjRlMmQwNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OCk6IHRpZDogZmY0ZTJkMDQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogSU5BQ1RJVkUg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ5KTogdGlkOiBmZjRlMmQwNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4Ck9wZXIgKDUwKTogdGlkOiBmZjRlMmQw NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAwIHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAwIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MSk6 IHRpZDogZmY0ZTJkMDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNTIpOiB0aWQ6IGZmNGUyZDA0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzogMHgzZCAgbmV3 aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZm IDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhm ZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZmZmZmZiAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogZmY0ZTJkMDQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMjQg KDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1NCk6IHRpZDog ZmY0ZTJkMDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IGZmNGUyZDA0ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 Nik6IHRpZDogYjNiY2VkNzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IGIzYmNlZDc0ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IENSRUFURSAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTgpOiB0 aWQ6IGIzYmNlZDc0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDU5KTogdGlkOiBiM2JjZWQ3NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2MgIG5ld2lu bzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjApOiB0aWQ6IGIzYmNlZDc0ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDI0ICgw eDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjEpOiB0aWQ6IGIz YmNlZDc0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYyKTogdGlkOiBiM2JjZWQ3NCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODMgIGZs YWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogNzY4 Ck9wZXIgKDYzKTogdGlkOiBiM2JjZWQ3NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA3NTUgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiBiM2JjZWQ3NCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODAgIGZs YWdzOiAweDMgICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDAK T3BlciAoNjUpOiB0aWQ6IGIzYmNlZDc0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3Jt YXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHgxYSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDY2KTogdGlkOiBiM2JjZWQ3NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSAyNgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlkOiBiM2JjZWQ3NCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6 IGVhODYwODEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiBlYTg2MDgxMCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBJTkFDVElWRSAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzApOiB0aWQ6IGVh ODYwODEwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMiAgIGlubzogMHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiA3NjgKT3BlciAoNzEpOiB0aWQ6IGVhODYwODEwICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHg0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0aWQ6IGVh ODYwODEwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogMjBlMDE5OTMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDIw ZTAxOTkzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IENSRUFURSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNzUpOiB0aWQ6IDIwZTAxOTkzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc2KTogdGlkOiAyMGUwMTk5MyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjogWEFHSSAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwpsZXZlbDogMSAg ZnJlZSM6IDB4M2IgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZmZmZmZmZmIDB4 ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTogMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0gMTVdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTYgLSAxOV06 IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6IDIwZTAxOTkz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDI0ICgweDE4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNzgpOiB0aWQ6IDIwZTAxOTkzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiAyMGUw MTk5MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDIgICBpbm86IDB4ODQgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4MCk6IHRpZDogMjBlMDE5OTMgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogMjBl MDE5OTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDgwICBmbGFnczogMHgzICAgZHNpemU6IDUyCiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDgyKTogdGlkOiAyMGUwMTk5MyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0 MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICg4Myk6IHRpZDogMjBlMDE5OTMgIGxlbjogNTIgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZPUk0gRElSRUNU T1JZIHNpemUgNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NCk6IHRpZDogMjBlMDE5OTMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDg1KTogdGlkOiA5NzUyYTg4NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDogOTc1MmE4ODcg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDg3KTogdGlkOiA5NzUyYTg4NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODgpOiB0aWQ6 IDk3NTJhODg3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxvY2tz IDB4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9wZXIgKDg5KTogdGlkOiA5 NzUyYTg4NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MCk6IHRpZDogOTc1MmE4ODcgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo OTEpOiB0aWQ6IDk3NTJhODg3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzUyICBsb25nZXN0OiAxOTQ5MjM1MgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDkyKTogdGlkOiA5NzUyYTg4NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkzKTogdGlkOiA5NzUyYTg4NyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg5NCk6IHRpZDogOTc1MmE4ODcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IDk3NTJhODg3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlkOiA5NzUyYTg4NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNp b246IDIJCWxzbjogMSwxMTYyCXRhaWxfbHNuOiAxLDExNDkKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6 IDMyMjU2CXByZXYgb2Zmc2V0OiAxMTQ5CQludW0gb3BzOiA0ODkKdXVpZDogYjBjMGYxOTktMDIy OS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhf c2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiBmMjkzOGM1YSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxKTogdGlkOiBmMjkzOGM1YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogZjI5MzhjNWEgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDMpOiB0aWQ6IGYyOTM4YzVhICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4MTQwMCBuYmxvY2tzIDB4MyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHg0Ck9wZXIgKDQpOiB0aWQ6IGYyOTM4YzVhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDUpOiB0aWQ6IGYyOTM4YzVhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDYpOiB0aWQ6IGYyOTM4YzVhICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUxICBsb25nZXN0 OiAxOTQ5MjM1MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IGYyOTM4YzVhICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoOCk6IHRpZDogZjI5MzhjNWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogZjI5MzhjNWEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTApOiB0aWQ6IGYyOTM4YzVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiBmMjkzOGM1 YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTIpOiB0aWQ6IDNiOGQzM2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IDNiOGQzM2Ug IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE0KTogdGlkOiAzYjhkMzNlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNSk6IHRpZDog M2I4ZDMzZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI4MDAgbmJsb2Nr cyAweDQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICgxNik6IHRpZDog M2I4ZDMzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDogM2I4ZDMzZSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgx OCk6IHRpZDogM2I4ZDMzZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjM1MCAgbG9uZ2VzdDogMTk0OTIzNTAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOSk6IHRpZDogM2I4ZDMzZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwKTogdGlkOiAzYjhkMzNlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIxKTogdGlkOiAzYjhkMzNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyKTogdGlkOiAzYjhkMzNlICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzKTogdGlkOiAzYjhkMzNlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNCk6IHRpZDogNTdlOTk4 NjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjUpOiB0aWQ6IDU3ZTk5ODY3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNik6IHRpZDogNTdlOTk4Njcg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI3KTogdGlkOiA1N2U5OTg2NyAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDNjMDAgbmJsb2NrcyAweDUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4NApPcGVyICgyOCk6IHRpZDogNTdlOTk4NjcgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjkpOiB0aWQ6IDU3ZTk5ODY3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMwKTogdGlkOiA1N2U5OTg2NyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0 OSAgbG9uZ2VzdDogMTk0OTIzNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMSk6IHRpZDog NTdlOTk4NjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMik6IHRpZDogNTdlOTk4NjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0 aWQ6IDU3ZTk5ODY3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0KTogdGlkOiA1N2U5OTg2NyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6 IHRpZDogNTdlOTk4NjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2KTogdGlkOiBjMWVkMWQgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcpOiB0 aWQ6IGMxZWQxZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IGMxZWQxZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MzkpOiB0aWQ6IGMxZWQxZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUw MDAgbmJsb2NrcyAweDcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICg0 MCk6IHRpZDogYzFlZDFkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiBjMWVk MWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDIpOiB0aWQ6IGMxZWQxZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NyAgbG9uZ2VzdDogMTk0OTIzNDcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0Myk6IHRpZDogYzFlZDFkICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQpOiB0aWQ6IGMxZWQxZCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NSk6IHRpZDogYzFlZDFkICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2KTogdGlkOiBjMWVkMWQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDcpOiB0aWQ6IGMxZWQxZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgpOiB0aWQ6IGQyZmFi MjQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ5KTogdGlkOiBkMmZhYjI0NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTApOiB0aWQ6IGQyZmFiMjQ3 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg1MSk6IHRpZDogZDJmYWIyNDcgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NDAwIG5ibG9ja3MgMHg4IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoNTIpOiB0aWQ6IGQyZmFiMjQ3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDUzKTogdGlkOiBkMmZhYjI0NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1NCk6IHRpZDogZDJmYWIyNDcgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz NDYgIGxvbmdlc3Q6IDE5NDkyMzQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6 IGQyZmFiMjQ3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNTYpOiB0aWQ6IGQyZmFiMjQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU3KTog dGlkOiBkMmZhYjI0NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg1OCk6IHRpZDogZDJmYWIyNDcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTkp OiB0aWQ6IGQyZmFiMjQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MCk6IHRpZDogOTBlMWI4NWMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjEp OiB0aWQ6IDkwZTFiODVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogOTBlMWI4NWMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDYzKTogdGlkOiA5MGUxYjg1YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDc4MDAgbmJsb2NrcyAweDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 NApPcGVyICg2NCk6IHRpZDogOTBlMWI4NWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjUp OiB0aWQ6IDkwZTFiODVjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDY2KTogdGlkOiA5MGUxYjg1YyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NSAgbG9uZ2VzdDogMTk0 OTIzNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDogOTBlMWI4NWMgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg2 OCk6IHRpZDogOTBlMWI4NWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0aWQ6IDkwZTFiODVjICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDcwKTogdGlkOiA5MGUxYjg1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MSk6IHRpZDogOTBlMWI4NWMg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDcyKTogdGlkOiAxN2JmNzM3MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogMTdiZjczNzAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDc0KTogdGlkOiAxN2JmNzM3MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNzUpOiB0aWQ6 IDE3YmY3MzcwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OGMwMCBuYmxv Y2tzIDB4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9wZXIgKDc2KTogdGlk OiAxN2JmNzM3MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogMTdiZjczNzAg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNzgpOiB0aWQ6IDE3YmY3MzcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25nZXN0OiAxOTQ5MjM0NAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiAxN2JmNzM3MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgwKTogdGlkOiAxN2JmNzM3 MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg4MSk6IHRpZDogMTdiZjczNzAgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODIpOiB0aWQ6IDE3YmY3 MzcwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiAxN2JmNzM3MCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODQpOiB0 aWQ6IDhlZmE4OTdmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg1KTogdGlkOiA4ZWZhODk3ZiAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODYpOiB0aWQ6 IDhlZmE4OTdmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4Nyk6IHRpZDogOGVmYTg5N2YgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMDAwIG5ibG9ja3MgMHhjIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoODgpOiB0aWQ6IDhlZmE4OTdmICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiA4ZWZhODk3ZiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5MCk6IHRpZDogOGVm YTg5N2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzNDIgIGxvbmdlc3Q6IDE5NDkyMzQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo OTEpOiB0aWQ6IDhlZmE4OTdmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTIpOiB0aWQ6IDhlZmE4OTdmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDkzKTogdGlkOiA4ZWZhODk3ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5NCk6IHRpZDogOGVmYTg5N2YgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOTUpOiB0aWQ6IDhlZmE4OTdmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nik6IHRpZDogZTE2MmZmZWYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOTcpOiB0aWQ6IGUxNjJmZmVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDogZTE2MmZmZWYgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDk5KTogdGlkOiBlMTYyZmZlZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGI0MDAgbmJsb2NrcyAweGQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4NApPcGVyICgxMDApOiB0aWQ6IGUxNjJmZmVmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwMSk6IHRpZDogZTE2MmZmZWYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTAyKTogdGlkOiBlMTYyZmZlZiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0MSAg bG9uZ2VzdDogMTk0OTIzNDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDMpOiB0aWQ6IGUx NjJmZmVmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTA0KTogdGlkOiBlMTYyZmZlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDUpOiB0 aWQ6IGUxNjJmZmVmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDEwNik6IHRpZDogZTE2MmZmZWYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA3 KTogdGlkOiBlMTYyZmZlZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA4KTogdGlkOiBlNWUxYzQ5NCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MDkpOiB0aWQ6IGU1ZTFjNDk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0aWQ6IGU1ZTFjNDk0ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMTEpOiB0aWQ6IGU1ZTFjNDk0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4YzgwMCBuYmxvY2tzIDB4ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHg0Ck9wZXIgKDExMik6IHRpZDogZTVlMWM0OTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTEzKTogdGlkOiBlNWUxYzQ5NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMTQpOiB0aWQ6IGU1ZTFjNDk0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQwICBsb25n ZXN0OiAxOTQ5MjM0MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogZTVlMWM0 OTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMTYpOiB0aWQ6IGU1ZTFjNDk0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRpZDog ZTVlMWM0OTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTE4KTogdGlkOiBlNWUxYzQ5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0 aWQ6IGU1ZTFjNDk0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjApOiB0aWQ6IGFjYTUzOTlkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMSk6 IHRpZDogYWNhNTM5OWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDogYWNhNTM5OWQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDEyMyk6IHRpZDogYWNhNTM5OWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhkYzAwIG5ibG9ja3MgMHhmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDQKT3BlciAoMTI0KTogdGlkOiBhY2E1Mzk5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjUpOiB0aWQ6IGFjYTUzOTlkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEyNik6IHRpZDogYWNhNTM5OWQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzkgIGxvbmdlc3Q6 IDE5NDkyMzM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTogdGlkOiBhY2E1Mzk5ZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDEyOCk6IHRpZDogYWNhNTM5OWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiBhY2E1 Mzk5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxMzApOiB0aWQ6IGFjYTUzOTlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRpZDog YWNhNTM5OWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEzMik6IHRpZDogOTFhZGE2YzggIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMzKTogdGlk OiA5MWFkYTZjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiA5MWFkYTZjOCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTM1KTogdGlkOiA5MWFkYTZjOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGYwMDAgbmJsb2NrcyAweDExIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQK T3BlciAoMTM2KTogdGlkOiA5MWFkYTZjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcp OiB0aWQ6IDkxYWRhNmM4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDEzOCk6IHRpZDogOTFhZGE2YzggIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzcgIGxvbmdlc3Q6IDE5 NDkyMzM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiA5MWFkYTZjOCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE0MCk6IHRpZDogOTFhZGE2YzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiA5MWFkYTZj OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNDIpOiB0aWQ6IDkxYWRhNmM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogOTFh ZGE2YzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogODExZTBmYmUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiA4 MTFlMGZiZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTQ2KTogdGlkOiA4MTFlMGZiZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTQ3KTogdGlkOiA4MTFlMGZiZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDEwNDAwIG5ibG9ja3MgMHgxMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9w ZXIgKDE0OCk6IHRpZDogODExZTBmYmUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTog dGlkOiA4MTFlMGZiZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxNTApOiB0aWQ6IDgxMWUwZmJlICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzM2ICBsb25nZXN0OiAxOTQ5 MjMzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MSk6IHRpZDogODExZTBmYmUgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NTIpOiB0aWQ6IDgxMWUwZmJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogODExZTBmYmUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTU0KTogdGlkOiA4MTFlMGZiZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDgxMWUw ZmJlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTYpOiB0aWQ6IDhkNjRmMTJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Nyk6IHRpZDogOGQ2 NGYxMmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE1OCk6IHRpZDogOGQ2NGYxMmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE1 OSk6IHRpZDogOGQ2NGYxMmQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgx MTgwMCBuYmxvY2tzIDB4MTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVy ICgxNjApOiB0aWQ6IDhkNjRmMTJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRp ZDogOGQ2NGYxMmQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTYyKTogdGlkOiA4ZDY0ZjEyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzNSAgbG9uZ2VzdDogMTk0OTIz MzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDhkNjRmMTJkICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY0 KTogdGlkOiA4ZDY0ZjEyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDhkNjRmMTJkICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE2Nik6IHRpZDogOGQ2NGYxMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiA4ZDY0ZjEy ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY4KTogdGlkOiBmMTYyOWQ0NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjkpOiB0aWQ6IGYxNjI5 ZDQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNzApOiB0aWQ6IGYxNjI5ZDQ3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNzEp OiB0aWQ6IGYxNjI5ZDQ3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTJj MDAgbmJsb2NrcyAweDE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAo MTcyKTogdGlkOiBmMTYyOWQ0NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6 IGYxNjI5ZDQ3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE3NCk6IHRpZDogZjE2MjlkNDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzQgIGxvbmdlc3Q6IDE5NDkyMzM0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiBmMTYyOWQ0NyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3Nik6 IHRpZDogZjE2MjlkNDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiBmMTYyOWQ0NyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NzgpOiB0aWQ6IGYxNjI5ZDQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogZjE2MjlkNDcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE4MCk6IHRpZDogZDdiY2Y0ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IGQ3YmNmNGUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4Mik6IHRpZDogZDdiY2Y0ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTgzKTogdGlk OiBkN2JjZjRlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTQwMDAgbmJs b2NrcyAweDE2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoMTg0KTog dGlkOiBkN2JjZjRlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogZDdiY2Y0 ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxODYpOiB0aWQ6IGQ3YmNmNGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzIgIGxvbmdlc3Q6IDE5NDkyMzMyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiBkN2JjZjRlICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTg4KTogdGlkOiBkN2Jj ZjRlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogZDdiY2Y0ZSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTApOiB0aWQ6IGQ3 YmNmNGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiBkN2JjZjRlICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTIp OiB0aWQ6IDE1YjRjZWNhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogMTViNGNlY2EgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NCk6 IHRpZDogMTViNGNlY2EgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE5NSk6IHRpZDogMTViNGNlY2Eg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxNTQwMCBuYmxvY2tzIDB4MTcg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICgxOTYpOiB0aWQ6IDE1YjRj ZWNhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogMTViNGNlY2EgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTk4 KTogdGlkOiAxNWI0Y2VjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjMzMSAgbG9uZ2VzdDogMTk0OTIzMzEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOTkpOiB0aWQ6IDE1YjRjZWNhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiAxNWI0Y2VjYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IDE1YjRjZWNhICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwMik6IHRpZDogMTViNGNl Y2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiAxNWI0Y2VjYSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA0KTog dGlkOiA2NGQxMDYzOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDUpOiB0aWQ6IDY0ZDEwNjM5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDYpOiB0 aWQ6IDY0ZDEwNjM5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDcpOiB0aWQ6IDY0ZDEwNjM5ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAweDE4IGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoMjA4KTogdGlkOiA2NGQxMDYz OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDY0ZDEwNjM5ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxMCk6 IHRpZDogNjRkMTA2MzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIzMzAgIGxvbmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjExKTogdGlkOiA2NGQxMDYzOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxMik6IHRpZDogNjRkMTA2MzkgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjEzKTogdGlkOiA2NGQxMDYzOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTQpOiB0aWQ6IDY0ZDEwNjM5 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogNjRkMTA2MzkgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNik6IHRp ZDogYWYyZjM0ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IGFmMmYzNGQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRpZDog YWYyZjM0ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjE5KTogdGlkOiBhZjJmMzRkICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MTdjMDAgbmJsb2NrcyAweDE5IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoMjIwKTogdGlkOiBhZjJmMzRkICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogYWYyZjM0ZCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjIpOiB0aWQ6IGFm MmYzNGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMjkgIGxvbmdlc3Q6IDE5NDkyMzI5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjIzKTogdGlkOiBhZjJmMzRkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI0KTogdGlkOiBhZjJmMzRkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIyNSk6IHRpZDogYWYyZjM0ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjYpOiB0aWQ6IGFmMmYzNGQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjI3KTogdGlkOiBhZjJmMzRkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjgpOiB0aWQ6IGY2NDg4ZWFhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyOSk6IHRpZDogZjY0ODhlYWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogZjY0ODhlYWEgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDIzMSk6IHRpZDogZjY0ODhlYWEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4NApPcGVyICgyMzIpOiB0aWQ6IGY2NDg4ZWFhICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogZjY0ODhlYWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM0KTogdGlkOiBmNjQ4OGVhYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMyNyAgbG9uZ2VzdDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0 aWQ6IGY2NDg4ZWFhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjM2KTogdGlkOiBmNjQ4OGVhYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzcpOiB0aWQ6IGY2NDg4ZWFhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIzOCk6IHRpZDogZjY0ODhlYWEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjM5KTogdGlkOiBmNjQ4OGVhYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQwKTogdGlkOiBkYWIxNzY4OCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDEpOiB0aWQ6IGRhYjE3Njg4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IGRhYjE3Njg4ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyNDMpOiB0aWQ6IGRhYjE3Njg4ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDQKT3BlciAoMjQ0KTogdGlkOiBkYWIxNzY4OCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDUpOiB0aWQ6IGRhYjE3Njg4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0Nik6IHRpZDogZGFiMTc2ODggIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MjYgIGxvbmdlc3Q6IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlk OiBkYWIxNzY4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI0OCk6IHRpZDogZGFiMTc2ODggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5 KTogdGlkOiBkYWIxNzY4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyNTApOiB0aWQ6IGRhYjE3Njg4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1MSk6IHRpZDogZGFiMTc2ODggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRpZDogZmM4ODY4MzMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjUzKTogdGlkOiBmYzg4NjgzMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiBmYzg4NjgzMyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjU1KTogdGlkOiBmYzg4NjgzMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDFiODAwIG5ibG9ja3MgMHgxZCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHg0Ck9wZXIgKDI1Nik6IHRpZDogZmM4ODY4MzMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU3KTogdGlkOiBmYzg4NjgzMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTgpOiB0aWQ6IGZjODg2ODMzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI1 ICBsb25nZXN0OiAxOTQ5MjMyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDog ZmM4ODY4MzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNjApOiB0aWQ6IGZjODg2ODMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6 IHRpZDogZmM4ODY4MzMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlkOiBmYzg4NjgzMyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NjMpOiB0aWQ6IGZjODg2ODMzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6IDYzZGFhMzhhICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2NSk6IHRpZDogNjNkYWEzOGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogNjNkYWEzOGEgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDI2Nyk6IHRpZDogNjNkYWEzOGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4NApPcGVyICgyNjgpOiB0aWQ6IDYzZGFhMzhhICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2OSk6IHRpZDogNjNkYWEzOGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcwKTogdGlkOiA2M2RhYTM4YSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNCAg bG9uZ2VzdDogMTk0OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDYz ZGFhMzhhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjcyKTogdGlkOiA2M2RhYTM4YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0 aWQ6IDYzZGFhMzhhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDogNjNkYWEzOGEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1 KTogdGlkOiA2M2RhYTM4YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc2KTogdGlkOiBkMmIxNjdjYSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzcpOiB0aWQ6IGQyYjE2N2NhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IGQyYjE2N2NhICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyNzkpOiB0aWQ6IGQyYjE2N2NhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MWUwMDAgbmJsb2NrcyAweDIwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDQKT3BlciAoMjgwKTogdGlkOiBkMmIxNjdjYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODEpOiB0aWQ6IGQyYjE2N2NhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI4Mik6IHRpZDogZDJiMTY3Y2EgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjIgIGxv bmdlc3Q6IDE5NDkyMzIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiBkMmIx NjdjYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI4NCk6IHRpZDogZDJiMTY3Y2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1KTogdGlk OiBkMmIxNjdjYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IGQyYjE2N2NhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6 IHRpZDogZDJiMTY3Y2EgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OCk6IHRpZDogZTQyODUzYWQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5 KTogdGlkOiBlNDI4NTNhZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiBlNDI4NTNhZCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjkxKTogdGlkOiBlNDI4NTNhZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDFmNDAwIG5ibG9ja3MgMHgyMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHg0Ck9wZXIgKDI5Mik6IHRpZDogZTQyODUzYWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjkzKTogdGlkOiBlNDI4NTNhZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOTQpOiB0aWQ6IGU0Mjg1M2FkICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzIxICBsb25n ZXN0OiAxOTQ5MjMyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogZTQyODUz YWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyOTYpOiB0aWQ6IGU0Mjg1M2FkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6IHRpZDog ZTQyODUzYWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjk4KTogdGlkOiBlNDI4NTNhZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0 aWQ6IGU0Mjg1M2FkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDApOiB0aWQ6IGM0MDA1YWJjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6 IHRpZDogYzQwMDVhYmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogYzQwMDVhYmMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDMwMyk6IHRpZDogYzQwMDVhYmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyMDgwMCBuYmxvY2tzIDB4MjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4NApPcGVyICgzMDQpOiB0aWQ6IGM0MDA1YWJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwNSk6IHRpZDogYzQwMDVhYmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzA2KTogdGlkOiBjNDAwNWFiYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMCAgbG9uZ2Vz dDogMTk0OTIzMjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IGM0MDA1YWJj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzA4KTogdGlkOiBjNDAwNWFiYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0aWQ6IGM0 MDA1YWJjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMxMCk6IHRpZDogYzQwMDVhYmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlk OiBjNDAwNWFiYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzEyKTogdGlkOiAzNTRiMjk0ZCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0 aWQ6IDM1NGIyOTRkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IDM1NGIyOTRkICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgzMTUpOiB0aWQ6IDM1NGIyOTRkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MjFjMDAgbmJsb2NrcyAweDIzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDQKT3BlciAoMzE2KTogdGlkOiAzNTRiMjk0ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTcpOiB0aWQ6IDM1NGIyOTRkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDMxOCk6IHRpZDogMzU0YjI5NGQgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTkgIGxvbmdlc3Q6 IDE5NDkyMzE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiAzNTRiMjk0ZCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMyMCk6IHRpZDogMzU0YjI5NGQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIxKTogdGlkOiAzNTRi Mjk0ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzMjIpOiB0aWQ6IDM1NGIyOTRkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDog MzU0YjI5NGQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMyNCk6IHRpZDogNGFkZGY3YWUgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlk OiA0YWRkZjdhZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlkOiA0YWRkZjdhZSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMzI3KTogdGlkOiA0YWRkZjdhZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDIzMDAwIG5ibG9ja3MgMHgyNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0 Ck9wZXIgKDMyOCk6IHRpZDogNGFkZGY3YWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5 KTogdGlkOiA0YWRkZjdhZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzMzApOiB0aWQ6IDRhZGRmN2FlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE3ICBsb25nZXN0OiAx OTQ5MjMxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogNGFkZGY3YWUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMzIpOiB0aWQ6IDRhZGRmN2FlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogNGFkZGY3 YWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzM0KTogdGlkOiA0YWRkZjdhZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDRh ZGRmN2FlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzYpOiB0aWQ6IDE4MjAzYmQyICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDog MTgyMDNiZDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDogMTgyMDNiZDIgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDMzOSk6IHRpZDogMTgyMDNiZDIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgyNDQwMCBuYmxvY2tzIDB4MjYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApP cGVyICgzNDApOiB0aWQ6IDE4MjAzYmQyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6 IHRpZDogMTgyMDNiZDIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzQyKTogdGlkOiAxODIwM2JkMiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNiAgbG9uZ2VzdDogMTk0 OTIzMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IDE4MjAzYmQyICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzQ0KTogdGlkOiAxODIwM2JkMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6IDE4MjAzYmQy ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM0Nik6IHRpZDogMTgyMDNiZDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiAxODIw M2JkMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQ4KTogdGlkOiA2OTliMWYwNiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IDY5 OWIxZjA2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTApOiB0aWQ6IDY5OWIxZjA2ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz NTEpOiB0aWQ6IDY5OWIxZjA2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MjU4MDAgbmJsb2NrcyAweDI3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3Bl ciAoMzUyKTogdGlkOiA2OTliMWYwNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0 aWQ6IDY5OWIxZjA2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDM1NCk6IHRpZDogNjk5YjFmMDYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTUgIGxvbmdlc3Q6IDE5NDky MzE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiA2OTliMWYwNiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1 Nik6IHRpZDogNjk5YjFmMDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTogdGlkOiA2OTliMWYwNiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzNTgpOiB0aWQ6IDY5OWIxZjA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogNjk5YjFm MDYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM2MCk6IHRpZDogNzBhZjcxOWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiA3MGFm NzE5ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzYyKTogdGlkOiA3MGFmNzE5ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzYz KTogdGlkOiA3MGFmNzE5ZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI2 YzAwIG5ibG9ja3MgMHgyOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9wZXIg KDM2NCk6IHRpZDogNzBhZjcxOWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlk OiA3MGFmNzE5ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgzNjYpOiB0aWQ6IDcwYWY3MTllICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE0ICBsb25nZXN0OiAxOTQ5MjMx NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogNzBhZjcxOWUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjgp OiB0aWQ6IDcwYWY3MTllICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRpZDogNzBhZjcxOWUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzcwKTogdGlkOiA3MGFmNzE5ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDcwYWY3MTll ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNzIpOiB0aWQ6IDE3NjdmMmRjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogMTc2N2Yy ZGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM3NCk6IHRpZDogMTc2N2YyZGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM3NSk6 IHRpZDogMTc2N2YyZGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyODAw MCBuYmxvY2tzIDB4MmEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICgz NzYpOiB0aWQ6IDE3NjdmMmRjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDog MTc2N2YyZGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzc4KTogdGlkOiAxNzY3ZjJkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxMiAgbG9uZ2VzdDogMTk0OTIzMTIK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IDE3NjdmMmRjICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgwKTog dGlkOiAxNzY3ZjJkYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6IDE3NjdmMmRjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4 Mik6IHRpZDogMTc2N2YyZGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiAxNzY3ZjJkYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzg0KTogdGlkOiBjZjI3Y2NiNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IGNmMjdjY2I2 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzODYpOiB0aWQ6IGNmMjdjY2I2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzODcpOiB0 aWQ6IGNmMjdjY2I2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mjk0MDAg bmJsb2NrcyAweDJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoMzg4 KTogdGlkOiBjZjI3Y2NiNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IGNm MjdjY2I2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDM5MCk6IHRpZDogY2YyN2NjYjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTEgIGxvbmdlc3Q6IDE5NDkyMzExCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiBjZjI3Y2NiNiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5Mik6IHRp ZDogY2YyN2NjYjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlkOiBjZjI3Y2NiNiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTQp OiB0aWQ6IGNmMjdjY2I2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogY2YyN2NjYjYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM5Nik6IHRpZDogMTBhNmEzYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcpOiB0aWQ6IDEwYTZhM2IgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM5OCk6IHRpZDogMTBhNmEzYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzk5KTogdGlkOiAx MGE2YTNiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmE4MDAgbmJsb2Nr cyAweDJjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoNDAwKTogdGlk OiAxMGE2YTNiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMSk6IHRpZDogMTBhNmEzYiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0MDIpOiB0aWQ6IDEwYTZhM2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMTAgIGxvbmdlc3Q6IDE5NDkyMzEwCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiAxMGE2YTNiICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiAxMGE2YTNi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogMTBhNmEzYiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDYpOiB0aWQ6IDEwYTZh M2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlkOiAxMGE2YTNiICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDgpOiB0 aWQ6IDU2MDE5NTBiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogNTYwMTk1MGIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRp ZDogNTYwMTk1MGIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxMSk6IHRpZDogNTYwMTk1MGIgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyYmMwMCBuYmxvY2tzIDB4MmQgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICg0MTIpOiB0aWQ6IDU2MDE5NTBi ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogNTYwMTk1MGIgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDE0KTog dGlkOiA1NjAxOTUwYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjMwOSAgbG9uZ2VzdDogMTk0OTIzMDkKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MTUpOiB0aWQ6IDU2MDE5NTBiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDE2KTogdGlkOiA1NjAxOTUwYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IDU2MDE5NTBiICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxOCk6IHRpZDogNTYwMTk1MGIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA1NjAxOTUwYiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIwKTogdGlk OiA4OTFiZmE3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IDg5MWJmYTdlICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6 IDg5MWJmYTdlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjMpOiB0aWQ6IDg5MWJmYTdlICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmQwMDAgbmJsb2NrcyAweDJmIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoNDI0KTogdGlkOiA4OTFiZmE3ZSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0aWQ6IDg5MWJmYTdlICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQyNik6IHRp ZDogODkxYmZhN2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIzMDcgIGxvbmdlc3Q6IDE5NDkyMzA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDI3KTogdGlkOiA4OTFiZmE3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyOCk6IHRpZDogODkxYmZhN2UgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDI5KTogdGlkOiA4OTFiZmE3ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzApOiB0aWQ6IDg5MWJmYTdlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogODkxYmZhN2UgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6IHRpZDog ZjIzYTYyMmIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDMzKTogdGlkOiBmMjNhNjIyYiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiBm MjNhNjIyYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDM1KTogdGlkOiBmMjNhNjIyYiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJlNDAwIG5ibG9ja3MgMHgzMCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9wZXIgKDQzNik6IHRpZDogZjIzYTYyMmIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM3KTogdGlkOiBmMjNhNjIyYiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MzgpOiB0aWQ6 IGYyM2E2MjJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzA2ICBsb25nZXN0OiAxOTQ5MjMwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQzOSk6IHRpZDogZjIzYTYyMmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDApOiB0aWQ6IGYyM2E2MjJiICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ0MSk6IHRpZDogZjIzYTYyMmIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQyKTogdGlkOiBmMjNhNjIyYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGYyM2E2MjJiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0aWQ6IDM3 ZmE0OWUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ0NSk6IHRpZDogMzdmYTQ5ZTMgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRpZDogMzdm YTQ5ZTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0Nyk6IHRpZDogMzdmYTQ5ZTMgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyZjgwMCBuYmxvY2tzIDB4MzEgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICg0NDgpOiB0aWQ6IDM3ZmE0OWUzICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogMzdmYTQ5ZTMgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUwKTogdGlkOiAz N2ZhNDllMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjMwNSAgbG9uZ2VzdDogMTk0OTIzMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTEpOiB0aWQ6IDM3ZmE0OWUzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDUyKTogdGlkOiAzN2ZhNDllMyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NTMpOiB0aWQ6IDM3ZmE0OWUzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1NCk6IHRpZDogMzdmYTQ5ZTMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDU1KTogdGlkOiAzN2ZhNDllMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU2KTogdGlkOiBhMTEw YTQ2YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IGExMTBhNDZhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6IGExMTBh NDZhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NTkpOiB0aWQ6IGExMTBhNDZhICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzBjMDAgbmJsb2NrcyAweDMyIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKT3BlciAoNDYwKTogdGlkOiBhMTEwYTQ2YSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IGExMTBhNDZhICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2Mik6IHRpZDogYTEx MGE0NmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMDQgIGxvbmdlc3Q6IDE5NDkyMzA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDYzKTogdGlkOiBhMTEwYTQ2YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2NCk6IHRpZDogYTExMGE0NmEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDY1KTogdGlkOiBhMTEwYTQ2YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjYpOiB0aWQ6IGExMTBhNDZhICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ2Nyk6IHRpZDogYTExMGE0NmEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDogNTJiNDQ4 OTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDY5KTogdGlkOiA1MmI0NDg5OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA1MmI0NDg5 OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDcxKTogdGlkOiA1MmI0NDg5OCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMyMDAwIG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHg0Ck9wZXIgKDQ3Mik6IHRpZDogNTJiNDQ4OTggIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDczKTogdGlkOiA1MmI0NDg5OCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NzQpOiB0aWQ6IDUyYjQ0 ODk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMzAyICBsb25nZXN0OiAxOTQ5MjMwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3 NSk6IHRpZDogNTJiNDQ4OTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzYpOiB0aWQ6IDUyYjQ0ODk4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3Nyk6IHRpZDogNTJiNDQ4OTggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDc4KTogdGlkOiA1MmI0NDg5OCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NzkpOiB0aWQ6IDUyYjQ0ODk4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODApOiB0aWQ6IGM5ZTdlODJi ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ4MSk6IHRpZDogYzllN2U4MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogYzllN2U4MmIg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ4Myk6IHRpZDogYzllN2U4MmIgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMzQwMCBuYmxvY2tzIDB4MzUgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4NApPcGVyICg0ODQpOiB0aWQ6IGM5ZTdlODJiICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDogYzllN2U4MmIgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDg2KTogdGlkOiBjOWU3ZTgy YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjMwMSAgbG9uZ2VzdDogMTk0OTIzMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcp OiB0aWQ6IGM5ZTdlODJiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDg4KTogdGlkOiBjOWU3ZTgyYiAgbGVuOiAxMDQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVFIApCVUYgREFUQQoKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMTIyNgl0YWlsX2xzbjogMSwxMTYyCmxlbmd0 aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDExNjIJCW51bSBvcHM6IDUKdXVpZDog YjBjMGYxOTktMDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5k aWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlk OiBlYjgxNGJjYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBlYjgxNGJjYyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBTQl9DT1VOVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogZWI4 MTRiY2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMCAoMHgwKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMyk6IHRpZDogZWI4MTRiY2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClNVUEVSIEJMT0NLIEJ1ZmZlcjogCmljb3VudDogNjQgIGlmcmVlOiA1OSAgZmRi bGtzOiA3Nzk2MTE5NyAgZnJleHQ6IDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlk OiBlYjgxNGJjYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCgo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSwxMjI4CXRhaWxfbHNu OiAxLDEyMjYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDUxMglwcmV2IG9mZnNldDogMTIyNgkJbnVt IG9wczogMQp1dWlkOiBiMGMwZjE5OS0wMjI5LTRmMTgtOGUyMC02YjZkNzRhMjk1NjMgICBmb3Jt YXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDApOiB0aWQ6IGI3ZDljY2QxICBsZW46IDggIGNsaWVudGlkOiBMT0cgIGZsYWdzOiBV Tk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJ dmVyc2lvbjogMgkJbHNuOiAxLDEyMzAJdGFpbF9sc246IDEsMTIzMApsZW5ndGggb2YgTG9nIFJl Y29yZDogMTAyNAlwcmV2IG9mZnNldDogMTIyOAkJbnVtIG9wczogMTYKdXVpZDogYjBjMGYxOTkt MDIyOS00ZjE4LThlMjAtNmI2ZDc0YTI5NTYzICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4 Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiAxY2VjM2M5 ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxKTogdGlkOiAxY2VjM2M5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBSRU1PVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogMwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDFjZWMzYzlkICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiAyOAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMApPcGVyICgzKTogdGlkOiAxY2VjM2M5ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDA0MDc1NSB2ZXJzaW9u IDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MWEgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgwCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICg0KTogdGlkOiAxY2VjM2M5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBESVJFQ1RPUlkgc2l6ZSAyNgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzogMHg4NCAgZmxh Z3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDYpOiB0aWQ6IDFjZWMzYzlkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMCB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4Ywpz aXplIDB4ZmYwMDAgbmJsb2NrcyAweGZmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiAxY2VjM2M5ZCAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAyICgweDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4KTogdGlk OiAxY2VjM2M5ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1 ZmZlcjogWEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9v dDogMwpsZXZlbDogMSAgZnJlZSM6IDB4M2IgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDdd OiAweDg0IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTog MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0g MTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRb MTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDog MWNlYzNjOWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEwKTogdGlkOiAzM2ZiY2U5NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDog MzNmYmNlOTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogSU5BQ1RJVkUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogMgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEyKTogdGlkOiAzM2ZiY2U5NyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDIgICBpbm86IDB4ODQgIGZsYWdzOiAweDEg ICBkc2l6ZTogMAogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx Myk6IHRpZDogMzNmYmNlOTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAwIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhjCnNpemUgMHgw IG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogMzNmYmNlOTcgIGxlbjogMzIgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRUZJOiAgI3JlZ3M6IDEgICAgbnVtX2V4dGVudHM6IDEgIGlkOiAw eGZmZmZmZmZmZTNhNDEwMDAKKHM6IDB4YywgbDogMjU1KSAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNSk6IHRpZDogMzNmYmNlOTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNfbG9ncHJpbnQ6IHNraXBwZWQgNDA5MyBj bGVhcmVkIGJsb2NrcyBpbiByYW5nZTogMTIzMyAtIDUzMjUKeGZzX2xvZ3ByaW50OiBza2lwcGVk IDYwMjEwIHplcm9lZCBibG9ja3MgaW4gcmFuZ2U6IDUzMjYgLSA2NTUzNQp4ZnNfbG9ncHJpbnQ6 IHBoeXNpY2FsIGVuZCBvZiBsb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNfbG9ncHJpbnQ6IGxv Z2ljYWwgZW5kIG9mIGxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cg== --0015177407526464e504a8a1a9f2 Content-Type: application/octet-stream; name=xfs_repair-2 Content-Disposition: attachment; filename=xfs_repair-2 Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqepezfw2 W3Jvb3RAbG9jYWxob3N0IFRvb2xzXSMgeGZzX3JlcGFpciAtbiAvZGV2L3NkYjEKUGhhc2UgMSAt IGZpbmQgYW5kIHZlcmlmeSBzdXBlcmJsb2NrLi4uClBoYXNlIDIgLSB1c2luZyBpbnRlcm5hbCBs b2cKICAgICAgICAtIHNjYW4gZmlsZXN5c3RlbSBmcmVlc3BhY2UgYW5kIGlub2RlIG1hcHMuLi4K ICAgICAgICAtIGZvdW5kIHJvb3QgaW5vZGUgY2h1bmsKUGhhc2UgMyAtIGZvciBlYWNoIEFHLi4u CiAgICAgICAgLSBzY2FuIChidXQgZG9uJ3QgY2xlYXIpIGFnaSB1bmxpbmtlZCBsaXN0cy4uLgog ICAgICAgIC0gcHJvY2VzcyBrbm93biBpbm9kZXMgYW5kIHBlcmZvcm0gaW5vZGUgZGlzY292ZXJ5 Li4uCiAgICAgICAgLSBhZ25vID0gMApkYXRhIGZvcmsgaW4gaW5vIDEzMiBjbGFpbXMgZnJlZSBi bG9jayA2NApkYXRhIGZvcmsgaW4gaW5vIDEzMiBjbGFpbXMgZnJlZSBibG9jayA2NQogICAgICAg IC0gYWdubyA9IDEKICAgICAgICAtIGFnbm8gPSAyCiAgICAgICAgLSBhZ25vID0gMwogICAgICAg IC0gcHJvY2VzcyBuZXdseSBkaXNjb3ZlcmVkIGlub2Rlcy4uLgpQaGFzZSA0IC0gY2hlY2sgZm9y IGR1cGxpY2F0ZSBibG9ja3MuLi4KICAgICAgICAtIHNldHRpbmcgdXAgZHVwbGljYXRlIGV4dGVu dCBsaXN0Li4uCiAgICAgICAgLSBjaGVjayBmb3IgaW5vZGVzIGNsYWltaW5nIGR1cGxpY2F0ZSBi bG9ja3MuLi4KICAgICAgICAtIGFnbm8gPSAwCiAgICAgICAgLSBhZ25vID0gMQogICAgICAgIC0g YWdubyA9IDIKICAgICAgICAtIGFnbm8gPSAzCk5vIG1vZGlmeSBmbGFnIHNldCwgc2tpcHBpbmcg cGhhc2UgNQpQaGFzZSA2IC0gY2hlY2sgaW5vZGUgY29ubmVjdGl2aXR5Li4uCiAgICAgICAgLSB0 cmF2ZXJzaW5nIGZpbGVzeXN0ZW0gLi4uCiAgICAgICAgLSB0cmF2ZXJzYWwgZmluaXNoZWQgLi4u CiAgICAgICAgLSBtb3ZpbmcgZGlzY29ubmVjdGVkIGlub2RlcyB0byBsb3N0K2ZvdW5kIC4uLgpQ aGFzZSA3IC0gdmVyaWZ5IGxpbmsgY291bnRzLi4uCk5vIG1vZGlmeSBmbGFnIHNldCwgc2tpcHBp bmcgZmlsZXN5c3RlbSBmbHVzaCBhbmQgZXhpdGluZy4KW3Jvb3RAbG9jYWxob3N0IFRvb2xzXSMg Cgo= --0015177407526464e504a8a1a9f2-- From michael.monnerie@is.it-management.at Fri Jul 22 01:10:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M6A7rw068326 for ; Fri, 22 Jul 2011 01:10:07 -0500 X-ASG-Debug-ID: 1311315004-1b7101040000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5B3D48CE1A for ; Thu, 21 Jul 2011 23:10:04 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv14.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 6YrQnwnwdNIEDf7w for ; Thu, 21 Jul 2011 23:10:04 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 11B97517; Fri, 22 Jul 2011 08:10:03 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 76F1A401C3D; Fri, 22 Jul 2011 08:10:02 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Date: Fri, 22 Jul 2011 08:10:00 +0200 User-Agent: KMail/1.13.6 (Linux/2.6.39.1-zmi; KDE/4.6.0; x86_64; ; ) Cc: Dave Chinner , John Bokma , Stan Hoeppner References: <4E24907F.6020903@johnbokma.com> <201107210820.01019@zmi.at> <20110721064838.GA13963@dastard> In-Reply-To: <20110721064838.GA13963@dastard> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart5729045.t7mSBjdUt8"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201107220810.01889@zmi.at> X-Barracuda-Connect: mailsrv14.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1311315005 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0010 1.0000 -2.0143 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.91 X-Barracuda-Spam-Status: No, SCORE=-0.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA081 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69630 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.10 BSF_SC0_SA081 Custom Rule SA081 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart5729045.t7mSBjdUt8 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Donnerstag, 21. Juli 2011 Dave Chinner wrote: > If you are writing files that grow like this, then you are doing > something wrong. If the app can't do it's IO differently, then this > is exactly the reason we have userspace-controlled preallocation > interfaces. >=20 > Filesystems cannot prevent user stupidity from screwing something > up.... This can happen if you copy a syslog server over to a new disk, then let=20 it start it's work again. Many files that start small and grow. Luckily,=20 the logs are rotated latest monthly, so it shouldn't be too bad. =20 > > And files >64KiB are immediately fragmented > > then. At this time, there are only 16384 * 2KiB =3D 32MiB used, which > > is 3,125% of the disk. I can't believe my numbers, are they true? >=20 > No, because most filesystems have a 4k block size.=20 I just meant pure disk usage. Of 1GB, only 32MB are used, and this worst=20 case example hits us badly. > Not to mention > that fragmentation is likely to be limited to the single AG the files > in the directory belong to. i.e. even if we can't allocation a sunit > aligned chunk in an AG, we won't switch to another AG just to do > sunit aligned allocation. This is good to know also, thanks. =20 > > OK, this is a worst case scenario, and as you've said before, any > > filesystem can be considered full at 85% fill grade. But it's > > incredible how quickly you could fuck up a filesystem when using > > su/sw and writing small files. >=20 > Well, don't use a filesystem that is optimised for storing large > sizes, large files and high bandwidth for storing lots of small > files, then. Indeed, the point of not packing the files is so they > -don't fragemnt as they grow-. XFS is not designed to be optimal > for small filesystems or small files. In most cases it will deal > with them just fine, so in reality your concerns are mostly > unfounded... Yes, I just wanted to know about the corner cases, and how XFS behaves.=20 Actually, we're changing over to using NetApps, and with their WAFL=20 anyway I should drop all su/sw usage and just use 4KB blocks. And even when XFS is optimized for large files, there are often small=20 ones. Think of a mysql server with hundreds of DBs and=20 innodb_file_per_table set. Even when some DBs are large, there are many=20 small files. But this thread has drifted a bit. XFS does great work, and now I=20 understand the background a bit more. Thanks, Dave. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services: Prot=E9ger http://proteger.at [gesprochen: Prot-e-schee] Tel: +43 660 / 415 6531 // Haus zu verkaufen: http://zmi.at/langegg/ --nextPart5729045.t7mSBjdUt8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEABECAAYFAk4pFDkACgkQzhSR9xwSCbRW8ACfY0yQ7V1jodyIujcoJIylzA+M aS4AoKMkdMiebpTo3bz5zHxQluo8tvG4 =3h4T -----END PGP SIGNATURE----- --nextPart5729045.t7mSBjdUt8-- From amit.sahrawat83@gmail.com Fri Jul 22 01:59:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_45,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M6xNiI069718 for ; Fri, 22 Jul 2011 01:59:23 -0500 X-ASG-Debug-ID: 1311317961-190200fb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 931631BD647A for ; Thu, 21 Jul 2011 23:59:21 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id skEXtWtY4TmBQrKF for ; Thu, 21 Jul 2011 23:59:21 -0700 (PDT) Received: by iyf40 with SMTP id 40so1696952iyf.26 for ; Thu, 21 Jul 2011 23:59:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=oU5okp6YvAHNjkdEO1VPl/DeXH+HdrlIkCaNW80trk8=; b=vrAGVGZ85Z1sapDNh1Yv6Ex7UHGyfuPxxF0HLXIJilh1RIkKwocT1XSYIK3BFCPIJf AUwHLJ9611evS3fOP6zSdcLqSovzJ7LwdYg3MdanDCQeG+Wmna06WTKeokDSOgQrgh1v sl0hIDEuTR5yaYW7FvsZXVsaaijBVX+NsMDJY= MIME-Version: 1.0 Received: by 10.231.123.206 with SMTP id q14mr1060931ibr.147.1311317961638; Thu, 21 Jul 2011 23:59:21 -0700 (PDT) Received: by 10.231.36.140 with HTTP; Thu, 21 Jul 2011 23:59:21 -0700 (PDT) In-Reply-To: References: Date: Fri, 22 Jul 2011 12:29:21 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: xfs@oss.sgi.com Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311317962 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69634 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Analysis of the logs using xfs_logprint =96 shows issues seems related with the journaling and the data writeback. Data for the file is being written first but the journal is not consistent with that information. Last committed transaction from the logs shows that =96 19492251 free blocks are there in the allocation group. While the file which was being written at the time of reset had =91255 blocks=92 ___________________________________________________________________________= _________ Allocation group length =3D 19492366 Free blocks =3D 19492251 Difference =3D 115 blocks (i.e., only 115 blocks from this allocation group are used) ___________________________________________________________________________= __________ ---------------------------------------------------------------------------= - Oper (472): tid: 92ae5cd0 len: 0 clientid: TRANS flags: START ---------------------------------------------------------------------------= - Oper (473): tid: 92ae5cd0 len: 16 clientid: TRANS flags: none TRAN: type: DIOSTRAT tid: 0 num_items: 4 ---------------------------------------------------------------------------= - Oper (474): tid: 92ae5cd0 len: 56 clientid: TRANS flags: none INODE: #regs: 3 ino: 0x84 flags: 0x5 dsize: 16 blkno: 64 len: 16 boff: 1024 Oper (475): tid: 92ae5cd0 len: 96 clientid: TRANS flags: none INODE CORE magic 0x494e mode 0100644 version 2 format 2 nlink 1 uid 0 gid 0 atime 0xc mtime 0xc ctime 0xc size 0x65400 nblocks 0x67 extsize 0x0 nextents 0x1 naextents 0x0 forkoff 0 dmevmask 0x0 dmstate 0x0 flags 0x0 gen 0x5 Oper (476): tid: 92ae5cd0 len: 16 clientid: TRANS flags: none EXTENTS inode data ---------------------------------------------------------------------------= - Oper (477): tid: 92ae5cd0 len: 24 clientid: TRANS flags: none BUF: #regs: 2 start blkno: 1 (0x1) len: 1 bmap size: 1 flags: 0x0 Oper (478): tid: 92ae5cd0 len: 128 clientid: TRANS flags: none AGF Buffer: XAGF ver: 1 seq#: 0 len: 19492366 root BNO: 1 CNT: 2 level BNO: 1 CNT: 1 1st: 0 last: 3 cnt: 4 freeblks: 19492251 longest: 19492251 ---------------------------------------------------------------------------= - Oper (479): tid: 92ae5cd0 len: 28 clientid: TRANS flags: none BUF: #regs: 2 start blkno: 16 (0x10) len: 8 bmap size: 2 flags: 0x0 Oper (480): tid: 92ae5cd0 len: 128 clientid: TRANS flags: none BUF DATA ---------------------------------------------------------------------------= - Oper (481): tid: 92ae5cd0 len: 28 clientid: TRANS flags: none BUF: #regs: 2 start blkno: 8 (0x8) len: 8 bmap size: 2 flags: 0x0 Oper (482): tid: 92ae5cd0 len: 128 clientid: TRANS flags: none BUF DATA ---------------------------------------------------------------------------= - Oper (483): tid: 92ae5cd0 len: 0 clientid: TRANS flags: COMMIT __________________________________________________________________________ After running repair on this disk after the issue is observed: File size which was written =3D 1044480 bytes =3D 255 blocks # xfs_repair -L /dev/sda1 Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... ALERT: The filesystem has valuable metadata changes in a log which is being destroyed because the -L option was used. - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno =3D 0 data fork in ino 132 claims free block 115 data fork in ino 132 claims free block 116 - agno =3D 1 - agno =3D 2 - agno =3D 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno =3D 0 - agno =3D 1 - agno =3D 2 - agno =3D 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... Done # mount /dev/sdb1 /media/b XFS mounting filesystem sda1 # ls =96l /media/b -rwxr-xr-x 1 root 0 0 Jan 1 00:00 test_code -rw-r--r-- 1 root 0 1044480 Jan 1 00:00 direct_io_file_0 Please let me know if the observations are wrong. Also, this seems very debatable issue =96 but is there any fix for this? Thanks & Regards, Amit Sahrawat On Fri, Jul 22, 2011 at 10:53 AM, Amit Sahrawat wrote: > More logs for xfs_log_print and xfs_repair. > > Thanks & Regards, > Amit Sahrawat > > On Fri, Jul 22, 2011 at 10:22 AM, Amit Sahrawat > wrote: >> Dear All, >> >> Target : ARM >> >> Recently I encountered a corruption on XFS for RC-3. While the >> DIRECT-IO for a file was in operation (Write operation) there was a >> power reset - Only one file at a time is being written to the disk >> using DIO.. After reboot on mounting I just tried to remove the file >> and encountered the below mentioned corruption. =A0The hard disk is not >> able to mount after this, only after clearing logs (xfs_repair =96L) =96 >> disk is able to mount >> XFS mounting filesystem sda1 >> XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1535 of file >> fs/xfs/xfs_alloc.c. =A0Caller 0xc0152c04 >> Backtrace: >> [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x= 18/0x1c) >> =A0r6:00000000 r5:c0152c04 r4:00000075 r3:e3ec1c88 >> [] (dump_stack+0x0/0x1c) from [] >> (xfs_error_report+0x4c/0x5c) >> [] (xfs_error_report+0x0/0x5c) from [] >> (xfs_free_ag_extent+0x400/0x600) >> [] (xfs_free_ag_extent+0x0/0x600) from [] >> (xfs_free_extent+0x8c/0xa4) >> [] (xfs_free_extent+0x0/0xa4) from [] >> (xfs_bmap_finish+0x108/0x194) >> =A0r7:e3ec1e10 r6:00000000 r5:e3737870 r4:e373e000 >> [] (xfs_bmap_finish+0x0/0x194) from [] >> (xfs_itruncate_finish+0x1dc/0x30c) >> [] (xfs_itruncate_finish+0x0/0x30c) from [] >> (xfs_inactive+0x20c/0x40c) >> [] (xfs_inactive+0x0/0x40c) from [] >> (xfs_fs_clear_inode+0x50/0x60) >> =A0r9:e3ec0000 r8:c001f128 r7:00000000 r6:e4671a80 r5:c0312454 >> r4:e4667300 >> [] (xfs_fs_clear_inode+0x0/0x60) from [] >> (clear_inode+0x8c/0xe8) >> =A0r4:e4667420 r3:c01a3d50 >> [] (clear_inode+0x0/0xe8) from [] >> (generic_delete_inode+0xdc/0x178) >> =A0r4:e4667420 r3:ffffffff >> [] (generic_delete_inode+0x0/0x178) from [] >> (generic_drop_inode+0x20/0x68) >> =A0r5:00000000 r4:e4667420 >> [] (generic_drop_inode+0x0/0x68) from [] (iput+0x6c/= 0x7c) >> =A0r4:e4667420 r3:c00be620 >> [] (iput+0x0/0x7c) from [] (do_unlinkat+0xfc/0x154) >> =A0r4:e4667420 r3:00000000 >> [] (do_unlinkat+0x0/0x154) from [] (sys_unlink+0x18/= 0x1c) >> =A0r7:0000000a r6:00000000 r5:00000000 r4:be90299b >> [] (sys_unlink+0x0/0x1c) from [] (ret_fast_syscall+0= x0/0x30) >> xfs_force_shutdown(sda1,0x8) called from line 4047 of file >> fs/xfs/xfs_bmap.c. =A0Return address =3D 0xc015ffec >> Filesystem "sda1": Corruption of in-memory data detected. =A0Shutting >> down filesystem: sda1 >> Please umount the filesystem, and rectify the problem(s) >> >> [root@localhost amits]# xfs_repair -n /dev/sdb1 >> Phase 1 - find and verify superblock... >> Phase 2 - using internal log >> =A0 =A0 =A0 =A0- scan filesystem freespace and inode maps... >> =A0 =A0 =A0 =A0- found root inode chunk >> Phase 3 - for each AG... >> =A0 =A0 =A0 =A0- scan (but don't clear) agi unlinked lists... >> =A0 =A0 =A0 =A0- process known inodes and perform inode discovery... >> =A0 =A0 =A0 =A0- agno =3D 0 >> data fork in ino 132 claims free block 115 >> data fork in ino 132 claims free block 116 >> =A0 =A0 =A0 =A0- agno =3D 1 >> =A0 =A0 =A0 =A0- agno =3D 2 >> =A0 =A0 =A0 =A0- agno =3D 3 >> =A0 =A0 =A0 =A0- process newly discovered inodes... >> Phase 4 - check for duplicate blocks... >> =A0 =A0 =A0 =A0- setting up duplicate extent list... >> =A0 =A0 =A0 =A0- check for inodes claiming duplicate blocks... >> =A0 =A0 =A0 =A0- agno =3D 0 >> =A0 =A0 =A0 =A0- agno =3D 2 >> =A0 =A0 =A0 =A0- agno =3D 1 >> =A0 =A0 =A0 =A0- agno =3D 3 >> No modify flag set, skipping phase 5 >> Phase 6 - check inode connectivity... >> =A0 =A0 =A0 =A0- traversing filesystem ... >> =A0 =A0 =A0 =A0- traversal finished ... >> =A0 =A0 =A0 =A0- moving disconnected inodes to lost+found ... >> Phase 7 - verify link counts... >> No modify flag set, skipping filesystem flush and exiting. >> [root@localhost amits]# >> >> Please find the logs for xfs_logprint at the time of issue attached. >> >> If there was really corruption which is shown at the time of deletion >> of file then why did the XFS file-system mounted? After checking the >> blocks request being passed as free request =96 it showed that the at >> the time of xfs_free_ag_extent() =96 the values from the tree fetched >> are not correct =96 for blocks to the right of current file extent (may >> be due to corruption) =96 is there anything written to xfs logs related >> with this? So that at the mount time this thing can be taken care. >> >> Please let me know in case more information is required for this. >> >> Thanks & Regards, >> Amit Sahrawat >> > From david@fromorbit.com Fri Jul 22 03:35:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6M8Z4V3073302 for ; Fri, 22 Jul 2011 03:35:05 -0500 X-ASG-Debug-ID: 1311323701-1901037f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9AED51D8AE48 for ; Fri, 22 Jul 2011 01:35:01 -0700 (PDT) Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id VZOXukkhZqD1djjn for ; Fri, 22 Jul 2011 01:35:01 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AisEAIozKU55LCkBgWdsb2JhbABThEqidxUBARYmJYh8qmKREA6BHYQFMF8Emx+BOIcI Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl6.internode.on.net with ESMTP; 22 Jul 2011 18:04:59 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QkBCE-0006iT-1C; Fri, 22 Jul 2011 18:34:58 +1000 Date: Fri, 22 Jul 2011 18:34:57 +1000 From: Dave Chinner To: Amit Sahrawat Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Message-ID: <20110722083457.GC13963@dastard> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1311323702 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0165 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69640 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean [Amit - please don't top post. If you are going to quote the previous email, please reply after the quoted text. ] [Alex - I haven't seen either of the previous two emails in this thread from Amit - has SGI made it onto a spam-blocking RBL again? ] On Fri, Jul 22, 2011 at 12:29:21PM +0530, Amit Sahrawat wrote: > On Fri, Jul 22, 2011 at 10:53 AM, Amit Sahrawat > wrote: > > On Fri, Jul 22, 2011 at 10:22 AM, Amit Sahrawat > > wrote: > >> Dear All, > >> > >> Target : ARM > >> > >> Recently I encountered a corruption on XFS for RC-3. While the > >> DIRECT-IO for a file was in operation (Write operation) there was a > >> power reset - Only one file at a time is being written to the disk > >> using DIO.. After reboot on mounting I just tried to remove the file > >> and encountered the below mentioned corruption.  The hard disk is not > >> able to mount after this, only after clearing logs (xfs_repair –L) – Lots of weird characters in your email... > >> disk is able to mount > >> XFS mounting filesystem sda1 > >> XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1535 of file > >> fs/xfs/xfs_alloc.c.  Caller 0xc0152c04 > >> Backtrace: > >> [] (dump_backtrace+0x0/0x110) from [] (dump_stack+0x18/0x1c) > >>  r6:00000000 r5:c0152c04 r4:00000075 r3:e3ec1c88 > >> [] (dump_stack+0x0/0x1c) from [] > >> (xfs_error_report+0x4c/0x5c) > >> [] (xfs_error_report+0x0/0x5c) from [] > >> (xfs_free_ag_extent+0x400/0x600) > >> [] (xfs_free_ag_extent+0x0/0x600) from [] > >> (xfs_free_extent+0x8c/0xa4) > >> [] (xfs_free_extent+0x0/0xa4) from [] > >> (xfs_bmap_finish+0x108/0x194) > >>  r7:e3ec1e10 r6:00000000 r5:e3737870 r4:e373e000 > >> [] (xfs_bmap_finish+0x0/0x194) from [] > >> (xfs_itruncate_finish+0x1dc/0x30c) > >> [] (xfs_itruncate_finish+0x0/0x30c) from [] > >> (xfs_inactive+0x20c/0x40c) > >> [] (xfs_inactive+0x0/0x40c) from [] > >> (xfs_fs_clear_inode+0x50/0x60) > >>  r9:e3ec0000 r8:c001f128 r7:00000000 r6:e4671a80 r5:c0312454 > >> r4:e4667300 > >> [] (xfs_fs_clear_inode+0x0/0x60) from [] > >> (clear_inode+0x8c/0xe8) > >>  r4:e4667420 r3:c01a3d50 > >> [] (clear_inode+0x0/0xe8) from [] > >> (generic_delete_inode+0xdc/0x178) > >>  r4:e4667420 r3:ffffffff > >> [] (generic_delete_inode+0x0/0x178) from [] > >> (generic_drop_inode+0x20/0x68) > >>  r5:00000000 r4:e4667420 > >> [] (generic_drop_inode+0x0/0x68) from [] (iput+0x6c/0x7c) > >>  r4:e4667420 r3:c00be620 > >> [] (iput+0x0/0x7c) from [] (do_unlinkat+0xfc/0x154) > >>  r4:e4667420 r3:00000000 > >> [] (do_unlinkat+0x0/0x154) from [] (sys_unlink+0x18/0x1c) > >>  r7:0000000a r6:00000000 r5:00000000 r4:be90299b > >> [] (sys_unlink+0x0/0x1c) from [] (ret_fast_syscall+0x0/0x30) > >> xfs_force_shutdown(sda1,0x8) called from line 4047 of file > >> fs/xfs/xfs_bmap.c.  Return address = 0xc015ffec > >> Filesystem "sda1": Corruption of in-memory data detected.  Shutting > >> down filesystem: sda1 > >> Please umount the filesystem, and rectify the problem(s) I've asked this before: please trim/paste your stack traces so they don't line wrap and are human readable. [] (dump_backtrace+0x0/0x110) [] (dump_stack+0x0/0x1c) [] (xfs_error_report+0x0/0x5c) [] (xfs_free_ag_extent+0x0/0x600) [] (xfs_free_extent+0x0/0xa4) [] (xfs_bmap_finish+0x0/0x194) [] (xfs_itruncate_finish+0x0/0x30c) [] (xfs_inactive+0x0/0x40c) [] (xfs_fs_clear_inode+0x0/0x60) [] (clear_inode+0x0/0xe8) [] (generic_delete_inode+0x0/0x178) [] (generic_drop_inode+0x0/0x68) [] (iput+0x0/0x7c) [] (do_unlinkat+0x0/0x154) [] (sys_unlink+0x0/0x1c) So, you powered off an active machine while writing to it, and after it started back up it hit a free space between corruption. And then you couldn't mount it because log replay was trying to replay the last committed transaction to the log. That transaction shows inode 132 being unlinked, added to the AGI unliked list, and then being inactivated. There is an EFI committed for 1 extent. There is no EFD committed, so the shutdown occurred during that operation. Log replay then hits the corruption repeatedly by trying to replay the EFI to complete the extent free operation. So, the log and the repair output are useless for determining what caused the problem - you need the log from the mount *before* the first shutdown occurred, and to have run repair *before* you tried to unlink anything. IOWs, if you are doing power fail testing, you need to test the validity of your filesystems before you do anything else on them. e.g. Once powered back up, copy the log before mounting the filesystem, then mount it to replay the log, then unmount it and run xfs_repair -n to check it. That way you'll catch any problem caused by the power loss and have some hope of determining what caused it because you preserved the original log.... However, seeing as this was due to power failure, I have to ask the obvious question: does you hardware correctly support barriers/cache flush/FUA operations and are they turned on? Cheers, Dave. -- Dave Chinner david@fromorbit.com From amit.sahrawat83@gmail.com Fri Jul 22 05:34:19 2011 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MAYHfW078899 for ; Fri, 22 Jul 2011 05:34:17 -0500 X-ASG-Debug-ID: 1311330853-799b01f30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C4E5616836A4 for ; Fri, 22 Jul 2011 03:34:13 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id 3i6GcyckeEFJr62j for ; Fri, 22 Jul 2011 03:34:13 -0700 (PDT) Received: by iyf40 with SMTP id 40so1870680iyf.26 for ; Fri, 22 Jul 2011 03:34:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=e//6stXCWcbMROofDTq0xuHUSecKfhskb6cgMq12zjw=; b=VJwYfWE7G2+pRez8mLGVn2bwee+aTJSkVeRHeAFHovwUAtmAzdCLTQAppXERS+ibxC 9btf8DJu2BnYVswsfNUTNOgxPASqprtkLu8cv1l7/EHYIETwde1hRqfQugOJfuT14cA/ lZggtA0rhgXfKRYgJp3dM5M4xgJ8fRCBOTsDM= MIME-Version: 1.0 Received: by 10.231.123.206 with SMTP id q14mr1233991ibr.147.1311330834212; Fri, 22 Jul 2011 03:33:54 -0700 (PDT) Received: by 10.231.36.140 with HTTP; Fri, 22 Jul 2011 03:33:53 -0700 (PDT) In-Reply-To: <20110722083457.GC13963@dastard> References: <20110722083457.GC13963@dastard> Date: Fri, 22 Jul 2011 16:03:53 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: multipart/mixed; boundary=0016e64652988e6d0e04a8a600ee X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311330855 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --0016e64652988e6d0e04a8a600ee Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable On Fri, Jul 22, 2011 at 2:04 PM, Dave Chinner wrote: > [Amit - please don't top post. If you are going to quote the > previous email, please reply after the quoted text. ] > > [Alex - I haven't seen either of the previous two emails in this > thread from Amit - has SGI made it onto a spam-blocking RBL again? ] > > On Fri, Jul 22, 2011 at 12:29:21PM +0530, Amit Sahrawat wrote: >> On Fri, Jul 22, 2011 at 10:53 AM, Amit Sahrawat >> wrote: >> > On Fri, Jul 22, 2011 at 10:22 AM, Amit Sahrawat >> > wrote: >> >> Dear All, >> >> >> >> Target : ARM >> >> >> >> Recently I encountered a corruption on XFS for RC-3. While the >> >> DIRECT-IO for a file was in operation (Write operation) there was a >> >> power reset - Only one file at a time is being written to the disk >> >> using DIO.. After reboot on mounting I just tried to remove the file >> >> and encountered the below mentioned corruption. =A0The hard disk is n= ot >> >> able to mount after this, only after clearing logs (xfs_repair =96L) = =96 > > Lots of weird characters in your email... > >> >> disk is able to mount >> >> XFS mounting filesystem sda1 >> >> XFS internal error XFS_WANT_CORRUPTED_GOTO at line 1535 of file >> >> fs/xfs/xfs_alloc.c. =A0Caller 0xc0152c04 >> >> Backtrace: >> >> [] (dump_backtrace+0x0/0x110) from [] (dump_stack= +0x18/0x1c) >> >> =A0r6:00000000 r5:c0152c04 r4:00000075 r3:e3ec1c88 >> >> [] (dump_stack+0x0/0x1c) from [] >> >> (xfs_error_report+0x4c/0x5c) >> >> [] (xfs_error_report+0x0/0x5c) from [] >> >> (xfs_free_ag_extent+0x400/0x600) >> >> [] (xfs_free_ag_extent+0x0/0x600) from [] >> >> (xfs_free_extent+0x8c/0xa4) >> >> [] (xfs_free_extent+0x0/0xa4) from [] >> >> (xfs_bmap_finish+0x108/0x194) >> >> =A0r7:e3ec1e10 r6:00000000 r5:e3737870 r4:e373e000 >> >> [] (xfs_bmap_finish+0x0/0x194) from [] >> >> (xfs_itruncate_finish+0x1dc/0x30c) >> >> [] (xfs_itruncate_finish+0x0/0x30c) from [] >> >> (xfs_inactive+0x20c/0x40c) >> >> [] (xfs_inactive+0x0/0x40c) from [] >> >> (xfs_fs_clear_inode+0x50/0x60) >> >> =A0r9:e3ec0000 r8:c001f128 r7:00000000 r6:e4671a80 r5:c0312454 >> >> r4:e4667300 >> >> [] (xfs_fs_clear_inode+0x0/0x60) from [] >> >> (clear_inode+0x8c/0xe8) >> >> =A0r4:e4667420 r3:c01a3d50 >> >> [] (clear_inode+0x0/0xe8) from [] >> >> (generic_delete_inode+0xdc/0x178) >> >> =A0r4:e4667420 r3:ffffffff >> >> [] (generic_delete_inode+0x0/0x178) from [] >> >> (generic_drop_inode+0x20/0x68) >> >> =A0r5:00000000 r4:e4667420 >> >> [] (generic_drop_inode+0x0/0x68) from [] (iput+0x= 6c/0x7c) >> >> =A0r4:e4667420 r3:c00be620 >> >> [] (iput+0x0/0x7c) from [] (do_unlinkat+0xfc/0x15= 4) >> >> =A0r4:e4667420 r3:00000000 >> >> [] (do_unlinkat+0x0/0x154) from [] (sys_unlink+0x= 18/0x1c) >> >> =A0r7:0000000a r6:00000000 r5:00000000 r4:be90299b >> >> [] (sys_unlink+0x0/0x1c) from [] (ret_fast_syscal= l+0x0/0x30) >> >> xfs_force_shutdown(sda1,0x8) called from line 4047 of file >> >> fs/xfs/xfs_bmap.c. =A0Return address =3D 0xc015ffec >> >> Filesystem "sda1": Corruption of in-memory data detected. =A0Shutting >> >> down filesystem: sda1 >> >> Please umount the filesystem, and rectify the problem(s) > > I've asked this before: please trim/paste your stack traces so they > don't line wrap and are human readable. I compose my mails in the Word and then Copy+paste - that might be the reason which resulted in wrong formatting. Will take care of this next time. > > [] (dump_backtrace+0x0/0x110) > [] (dump_stack+0x0/0x1c) > [] (xfs_error_report+0x0/0x5c) > [] (xfs_free_ag_extent+0x0/0x600) > [] (xfs_free_extent+0x0/0xa4) > [] (xfs_bmap_finish+0x0/0x194) > [] (xfs_itruncate_finish+0x0/0x30c) > [] (xfs_inactive+0x0/0x40c) > [] (xfs_fs_clear_inode+0x0/0x60) > [] (clear_inode+0x0/0xe8) > [] (generic_delete_inode+0x0/0x178) > [] (generic_drop_inode+0x0/0x68) > [] (iput+0x0/0x7c) > [] (do_unlinkat+0x0/0x154) > [] (sys_unlink+0x0/0x1c) > > So, you powered off an active machine while writing to it, and after > it started back up it hit a free space between corruption. And then > you couldn't mount it because log replay was trying to replay the > last committed transaction to the log. That transaction shows inode > 132 being unlinked, added to the AGI unliked list, and then being > inactivated. There is an EFI committed for 1 extent. There is no EFD > committed, so the shutdown occurred during that operation. Log > replay then hits the corruption repeatedly by trying to replay the > EFI to complete the extent free operation. > Yes, it happened exactly as you mentioned above. But the problem happened much earlier. While writing the 'reset' happened. At the next reboot - the filesystem mounted even though there was corruption - the file and journal did not match. And it did not show any error either. The moment the issue happened and then if checked through xfs_logprint - the blocks free in the allocation group does not match up properly. I checked by taking the print from xfs_free_ag_extent - it showed the wrong blocks contigous to that file. Original file which was to be deleted is of '255' blocks and started from physical block number - 12. While the free space tree has free blocks larger than what it should be. it returns the length starting from block number and the length which is last committed to the log. As I mentioned in the last mail - the details about the observation. Please check. > So, the log and the repair output are useless for determining what > caused the problem - you need the log from the mount *before* the > first shutdown occurred, and to have run repair *before* you > tried to unlink anything. It is only after 'first shutdown' I came to know about the corruption. Since, there was no error shown at the mount time, it did not seemed reasonable enough to run "repair" on the disk. But at the same time I checked with the case(reset while direct-IO), when there was no issue - I tried to check the logs the same way as you mentioned - reset - log_print - check using xfs_repair and then mount - the behaviour was as per the logs - The number of commit transactions and the files created was ok. Logs are attached for xfs_logprint output. mount after taking the log prints. #mount /dev/sdb1 /media/b XFS mounting filesystem sda1 Starting XFS recovery on filesystem: sda1 (logdev: internal) Ending XFS recovery on filesystem: sda1 (logdev: internal) #> ls -li /media/b 131 -rwxr-xr-x 1 root 0 2887184 Jan 1 00:00 test_code 132 -rw-r--r-- 1 root 0 1044480 Jan 1 00:00 direct_io_file_0 133 -rw-r--r-- 1 root 0 819200 Jan 1 00:00 direct_io_file_1 #> I doubt if the journalling works correctly with the direct IO although I need to check for proofs to say this. But, the logs and the behaviour in the two scenarios shows the same indication. IOWs, if you are doing power fail testing, > you need to test the validity of your filesystems before you do > anything else on them. e.g. Once powered back up, copy the log > before mounting the filesystem, then mount it to replay the log, > then unmount it and run xfs_repair -n to check it. That way you'll > catch any problem caused by the power loss and have some hope of > determining what caused it because you preserved the original > log.... > > However, seeing as this was due to power failure, I have to ask the > obvious question: does you hardware correctly support barriers/cache > flush/FUA operations and are they turned on? I need to check and make sure of the above things you mentioned. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > --0016e64652988e6d0e04a8a600ee Content-Type: application/octet-stream; name=xfs_log_issue_4 Content-Disposition: attachment; filename=xfs_log_issue_4 Content-Transfer-Encoding: base64 X-Attachment-Id: f_gqf027nj0 eGZzX2xvZ3ByaW50OgogICAgZGF0YSBkZXZpY2U6IDB4ODExCiAgICBsb2cgZGV2aWNlOiAweDgx MSBkYWRkcjogMzExODc3ODg4IGxlbmd0aDogNjU1MzYKCmN5Y2xlOiAxCXZlcnNpb246IDIJCWxz bjogMSwwCXRhaWxfbHNuOiAxLDAKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDIwCXByZXYgb2Zmc2V0 OiAtMQkJbnVtIG9wczogMQp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1iOTJlZThlY2Fj NmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IGIwYzBkMGQwICBsZW46IDggIGNsaWVudGlkOiBMT0cg IGZsYWdzOiBVTk1PVU5UIApVbm1vdW50IGZpbGVzeXN0ZW0KCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K Y3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDIJdGFpbF9sc246IDEsMgpsZW5ndGggb2YgTG9n IFJlY29yZDogNTEyCXByZXYgb2Zmc2V0OiAwCQludW0gb3BzOiA1CnV1aWQ6IGIwYjVjY2U5LTE3 MGQtNDY0ZC1iZmZmLWI5MmVlOGVjYWM2YyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApo X3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogMzYxYzc3ZTcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMSk6IHRpZDogMzYxYzc3ZTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogU0JfQ09VTlQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIpOiB0aWQ6IDM2MWM3N2U3ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDAgKDB4MCkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMp OiB0aWQ6IDM2MWM3N2U3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpT VVBFUiBCTE9DSyBCdWZmZXI6IAppY291bnQ6IDY0ICBpZnJlZTogNjEgIGZkYmxrczogNzc5NjEy NDkgIGZyZXh0OiAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogMzYxYzc3ZTcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAoKPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsNAl0YWlsX2xzbjogMSwyCmxlbmd0aCBv ZiBMb2cgUmVjb3JkOiA1MTIJcHJldiBvZmZzZXQ6IDIJCW51bSBvcHM6IDEKdXVpZDogYjBiNWNj ZTktMTcwZC00NjRkLWJmZmYtYjkyZWU4ZWNhYzZjICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxp bnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgwKTogdGlkOiBmZjE5 MmJmYSAgbGVuOiA4ICBjbGllbnRpZDogTE9HICBmbGFnczogVU5NT1VOVCAKVW5tb3VudCBmaWxl c3lzdGVtCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw2 CXRhaWxfbHNuOiAxLDYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA0 CQludW0gb3BzOiA0OTIKdXVpZDogYjBiNWNjZTktMTcwZC00NjRkLWJmZmYtYjkyZWU4ZWNhYzZj ICAgZm9ybWF0OiBsaXR0bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgwKTogdGlkOiBiYzYyZjk4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBiYzYyZjk4 NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBD UkVBVEUgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIpOiB0aWQ6IGJjNjJmOTg0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDIgKDB4MikgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMpOiB0aWQ6IGJjNjJmOTg0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVsOiAxICBmcmVlIzog MHgzYyAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAw eGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZmZmYgMHhmZmZmZmZm ZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZmZmZmZmZmIDB4ZmZm ZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAtIDE5XTogMHhmZmZm ZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0KTogdGlkOiBiYzYyZjk4NCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAyNCAoMHgxOCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUp OiB0aWQ6IGJjNjJmOTg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IGJjNjJmOTg0ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMiAgIGlubzog MHg4MyAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiA3NjgKT3BlciAoNyk6IHRpZDogYmM2MmY5ODQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTogdGlkOiBiYzYyZjk4NCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogMjgKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDAKT3BlciAoOSk6IHRpZDogYmM2MmY5ODQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwNDA3NTUgdmVyc2lvbiAy IGZvcm1hdCAxCm5saW5rIDIgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDFhIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MApuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTApOiB0aWQ6IGJjNjJmOTg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkxPQ0FMIGlub2RlIGRhdGEKU0hPUlRGT1JNIERJUkVDVE9SWSBzaXplIDI2Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEpOiB0aWQ6IGJjNjJmOTg0ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMik6 IHRpZDogNjZmMDc3NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IDY2ZjA3NzRjICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IElOQUNUSVZFICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRp ZDogNjZmMDc3NGMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAyICAgaW5vOiAweDgzICBmbGFnczogMHgxICAgZHNpemU6IDAKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICgxNSk6IHRpZDogNjZmMDc3NGMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgwIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MApuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRp ZDogNjZmMDc3NGMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3KTogdGlkOiBlYTY3YTRhYSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRp ZDogZWE2N2E0YWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogZWE2N2E0YWEgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMiAoMHgyKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IGVhNjdhNGFh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0kgQnVmZmVyOiBYQUdJ ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICBjbnQ6IDY0ICByb290OiAzCmxldmVs OiAxICBmcmVlIzogMHgzYiAgbmV3aW5vOiAweDgwCmJ1Y2tldFswIC0gM106IDB4ZmZmZmZmZmYg MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs0IC0gN106IDB4ZmZmZmZm ZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFs4IC0gMTFdOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbMTIgLSAxNV06 IDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgCmJ1Y2tldFsxNiAt IDE5XTogMHhmZmZmZmZmZiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogZWE2 N2E0YWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMik6IHRpZDogZWE2N2E0YWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6 IGVhNjdhNGFhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMiAgIGlubzogMHg4NCAgZmxhZ3M6IDB4MSAgIGRzaXplOiAwCiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI0KTogdGlkOiBlYTY3YTRhYSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlk OiBlYTY3YTRhYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODAgIGZsYWdzOiAweDMgICBkc2l6ZTogNTIKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDAKT3BlciAoMjYpOiB0aWQ6IGVhNjdhNGFhICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGluayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMSBuYmxvY2tzIDB4MCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI3KTogdGlkOiBlYTY3YTRhYSAgbGVuOiA1MiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMT0NBTCBpbm9kZSBkYXRhClNIT1JURk9STSBE SVJFQ1RPUlkgc2l6ZSA0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiBlYTY3 YTRhYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IGZmNmZhMTdmICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwKTogdGlkOiBmZjZm YTE3ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzEpOiB0aWQ6IGZmNmZhMTdmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMik6 IHRpZDogZmY2ZmExN2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5i bG9ja3MgMHgyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzMpOiB0 aWQ6IGZmNmZhMTdmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiBmZjZmYTE3 ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgzNSk6IHRpZDogZmY2ZmExN2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNTIgIGxvbmdlc3Q6IDE5NDkyMzUyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IGZmNmZhMTdmICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcpOiB0aWQ6IGZmNmZh MTdmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiBmZjZmYTE3ZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOSk6IHRpZDogZmY2 ZmExN2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDApOiB0aWQ6IGZmNmZhMTdmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogNmMxOTA4MTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6IDZjMTkwODEyICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRp ZDogNmMxOTA4MTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0KTogdGlkOiA2YzE5MDgxMiAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDE0MDAgbmJsb2NrcyAweDMgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NSk6IHRpZDogNmMxOTA4MTIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYpOiB0aWQ6IDZjMTkwODEyICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ3KTogdGlkOiA2 YzE5MDgxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjM1MSAgbG9uZ2VzdDogMTk0OTIzNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0OCk6IHRpZDogNmMxOTA4MTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OSk6IHRpZDogNmMxOTA4MTIgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTApOiB0aWQ6IDZjMTkwODEyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUxKTogdGlkOiA2YzE5MDgxMiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Mik6IHRpZDogNmMxOTA4MTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiBkYzkyN2FiMCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1NCk6IHRpZDogZGM5MjdhYjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiBkYzkyN2FiMCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNTYpOiB0aWQ6IGRjOTI3YWIwICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MjgwMCBuYmxvY2tzIDB4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDU3KTogdGlkOiBkYzkyN2FiMCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1OCk6IHRpZDogZGM5MjdhYjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTkpOiB0aWQ6IGRjOTI3YWIwICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzUwICBs b25nZXN0OiAxOTQ5MjM1MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiBkYzky N2FiMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDYxKTogdGlkOiBkYzkyN2FiMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDog ZGM5MjdhYjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNjMpOiB0aWQ6IGRjOTI3YWIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlk OiBkYzkyN2FiMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0aWQ6IDRjMTdjNmU2ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlk OiA0YzE3YzZlNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDRjMTdjNmU2ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg2OCk6IHRpZDogNGMxN2M2ZTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgzYzAwIG5ibG9ja3MgMHg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoNjkpOiB0aWQ6IDRjMTdjNmU2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcwKTogdGlk OiA0YzE3YzZlNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg3MSk6IHRpZDogNGMxN2M2ZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDkgIGxvbmdlc3Q6IDE5NDkyMzQ5 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0aWQ6IDRjMTdjNmU2ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNzMpOiB0 aWQ6IDRjMTdjNmU2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc0KTogdGlkOiA0YzE3YzZlNiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3NSk6 IHRpZDogNGMxN2M2ZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzYpOiB0aWQ6IDRjMTdjNmU2ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Nyk6IHRpZDogMTNkZDViNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OCk6IHRpZDogMTNkZDViNSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NzkpOiB0aWQ6IDEzZGQ1YjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDgwKTogdGlkOiAxM2RkNWI1 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTAwMCBuYmxvY2tzIDB4NyBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDgxKTogdGlkOiAxM2RkNWI1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgyKTogdGlkOiAxM2RkNWI1ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgzKTogdGlk OiAxM2RkNWI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzQ3ICBsb25nZXN0OiAxOTQ5MjM0NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDg0KTogdGlkOiAxM2RkNWI1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODUpOiB0aWQ6IDEzZGQ1YjUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODYpOiB0aWQ6IDEzZGQ1YjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODcpOiB0aWQ6IDEzZGQ1YjUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODgpOiB0aWQ6IDEzZGQ1YjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg5KTogdGlkOiBiOGZlNWZmMyAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg5MCk6IHRpZDogYjhmZTVmZjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTogdGlkOiBiOGZlNWZmMyAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoOTIpOiB0aWQ6IGI4ZmU1ZmYzICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NjQwMCBuYmxvY2tzIDB4OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDkzKTogdGlkOiBiOGZlNWZmMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg5NCk6IHRpZDogYjhmZTVmZjMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IGI4ZmU1ZmYzICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ2ICBsb25n ZXN0OiAxOTQ5MjM0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlkOiBiOGZlNWZm MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDk3KTogdGlkOiBiOGZlNWZmMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6IHRpZDogYjhm ZTVmZjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoOTkpOiB0aWQ6IGI4ZmU1ZmYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMCk6IHRpZDog YjhmZTVmZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogMjdlOTNkM2MgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAyKTogdGlk OiAyN2U5M2QzYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiAyN2U5M2QzYyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTA0KTogdGlkOiAyN2U5M2QzYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDc4MDAgbmJsb2NrcyAweDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgxMDUpOiB0aWQ6IDI3ZTkzZDNjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNik6 IHRpZDogMjdlOTNkM2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTA3KTogdGlkOiAyN2U5M2QzYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjM0NSAgbG9uZ2VzdDogMTk0 OTIzNDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IDI3ZTkzZDNjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTA5KTogdGlkOiAyN2U5M2QzYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0aWQ6IDI3ZTkzZDNj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDExMSk6IHRpZDogMjdlOTNkM2MgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEyKTogdGlkOiAyN2U5 M2QzYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBhOWI4MjIxNyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IGE5 YjgyMjE3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IGE5YjgyMjE3ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx MTYpOiB0aWQ6IGE5YjgyMjE3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 OGMwMCBuYmxvY2tzIDB4YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDExNyk6IHRpZDogYTliODIyMTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE4KTogdGlk OiBhOWI4MjIxNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgxMTkpOiB0aWQ6IGE5YjgyMjE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzQ0ICBsb25nZXN0OiAxOTQ5MjM0 NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMCk6IHRpZDogYTliODIyMTcgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjEp OiB0aWQ6IGE5YjgyMjE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyMik6IHRpZDogYTliODIyMTcgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTIzKTogdGlkOiBhOWI4MjIxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0aWQ6IGE5YjgyMjE3 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMjUpOiB0aWQ6IGI4MjcxMTBlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogYjgyNzEx MGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEyNyk6IHRpZDogYjgyNzExMGUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEyOCk6 IHRpZDogYjgyNzExMGUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhMDAw IG5ibG9ja3MgMHhjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTI5 KTogdGlkOiBiODI3MTEwZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzApOiB0aWQ6IGI4 MjcxMTBlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDEzMSk6IHRpZDogYjgyNzExMGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzNDIgIGxvbmdlc3Q6IDE5NDkyMzQyCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMyKTogdGlkOiBiODI3MTEwZSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEzMyk6IHRp ZDogYjgyNzExMGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiBiODI3MTEwZSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzUp OiB0aWQ6IGI4MjcxMTBlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRpZDogYjgyNzExMGUgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEzNyk6IHRpZDogNTM5NGY3ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IDUzOTRmN2QgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEzOSk6IHRpZDogNTM5NGY3ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTQwKTogdGlkOiA1 Mzk0ZjdkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjQwMCBuYmxvY2tz IDB4ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE0MSk6IHRpZDog NTM5NGY3ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDIpOiB0aWQ6IDUzOTRmN2QgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTQzKTogdGlkOiA1Mzk0ZjdkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMzQxICBsb25nZXN0OiAxOTQ5MjM0MQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogNTM5NGY3ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0NSk6IHRpZDogNTM5NGY3ZCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0aWQ6IDUzOTRmN2QgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ3KTogdGlkOiA1Mzk0Zjdk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRpZDogNTM5NGY3ZCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlk OiA4OGEzNzk0MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IDg4YTM3OTQwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6 IDg4YTM3OTQwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTIpOiB0aWQ6IDg4YTM3OTQwICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YzgwMCBuYmxvY2tzIDB4ZSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE1Myk6IHRpZDogODhhMzc5NDAgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU0KTogdGlkOiA4OGEzNzk0MCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNTUpOiB0aWQ6 IDg4YTM3OTQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMzQwICBsb25nZXN0OiAxOTQ5MjM0MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE1Nik6IHRpZDogODhhMzc5NDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNTcpOiB0aWQ6IDg4YTM3OTQwICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1OCk6IHRpZDogODhhMzc5NDAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTU5KTogdGlkOiA4OGEzNzk0MCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IDg4YTM3OTQwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjEpOiB0aWQ6IDdm NGI5YWQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogN2Y0YjlhZDkgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogN2Y0 YjlhZDkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE2NCk6IHRpZDogN2Y0YjlhZDkgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkYzAwIG5ibG9ja3MgMHhmIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTY1KTogdGlkOiA3ZjRiOWFkOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNjYpOiB0aWQ6IDdmNGI5YWQ5ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2Nyk6IHRpZDogN2Y0 YjlhZDkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIzMzkgIGxvbmdlc3Q6IDE5NDkyMzM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTY4KTogdGlkOiA3ZjRiOWFkOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2OSk6IHRpZDogN2Y0YjlhZDkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTcwKTogdGlkOiA3ZjRiOWFkOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzEpOiB0aWQ6IDdmNGI5YWQ5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3Mik6IHRpZDogN2Y0YjlhZDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Myk6IHRpZDogMWE2ODRm M2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTc0KTogdGlkOiAxYTY4NGYzZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiAxYTY4NGYz ZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTc2KTogdGlkOiAxYTY4NGYzZSAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGYwMDAgbmJsb2NrcyAweDExIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTc3KTogdGlkOiAxYTY4NGYzZSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNzgpOiB0aWQ6IDFhNjg0ZjNlICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE3OSk6IHRpZDogMWE2ODRm M2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIzMzcgIGxvbmdlc3Q6IDE5NDkyMzM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgw KTogdGlkOiAxYTY4NGYzZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE4MSk6IHRpZDogMWE2ODRmM2UgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTgyKTogdGlkOiAxYTY4NGYzZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODMpOiB0aWQ6IDFhNjg0ZjNlICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4NCk6IHRpZDogMWE2ODRmM2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4NSk6IHRpZDogZjdjNWU4NGIg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTg2KTogdGlkOiBmN2M1ZTg0YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiBmN2M1ZTg0YiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMTg4KTogdGlkOiBmN2M1ZTg0YiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDEwNDAwIG5ibG9ja3MgMHgxMiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE4OSk6IHRpZDogZjdjNWU4NGIgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTkwKTogdGlkOiBmN2M1ZTg0YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxOTEpOiB0aWQ6IGY3YzVlODRi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMzM2ICBsb25nZXN0OiAxOTQ5MjMzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Mik6 IHRpZDogZjdjNWU4NGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxOTMpOiB0aWQ6IGY3YzVlODRiICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5NCk6IHRpZDogZjdjNWU4NGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTk1KTogdGlkOiBmN2M1ZTg0YiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxOTYpOiB0aWQ6IGY3YzVlODRiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTcpOiB0aWQ6IDlhYTI1MWE5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE5OCk6IHRpZDogOWFhMjUxYTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogOWFhMjUxYTkgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDIwMCk6IHRpZDogOWFhMjUxYTkgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHgxMTgwMCBuYmxvY2tzIDB4MTMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgyMDEpOiB0aWQ6IDlhYTI1MWE5ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwMik6IHRpZDogOWFhMjUxYTkgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjAzKTogdGlkOiA5YWEyNTFhOSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjMzNSAgbG9uZ2VzdDogMTk0OTIzMzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDQpOiB0 aWQ6IDlhYTI1MWE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjA1KTogdGlkOiA5YWEyNTFhOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDYpOiB0aWQ6IDlhYTI1MWE5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIwNyk6IHRpZDogOWFhMjUxYTkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjA4KTogdGlkOiA5YWEyNTFhOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiA2YTdkMDMwNSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMTApOiB0aWQ6IDZhN2QwMzA1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDZhN2QwMzA1ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgyMTIpOiB0aWQ6IDZhN2QwMzA1ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MTJjMDAgbmJsb2NrcyAweDE0IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMjEzKTogdGlkOiA2YTdkMDMwNSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTQpOiB0aWQ6IDZhN2QwMzA1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxNSk6IHRpZDogNmE3ZDAzMDUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIz MzQgIGxvbmdlc3Q6IDE5NDkyMzM0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE2KTogdGlk OiA2YTdkMDMwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDIxNyk6IHRpZDogNmE3ZDAzMDUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4 KTogdGlkOiA2YTdkMDMwNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyMTkpOiB0aWQ6IDZhN2QwMzA1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyMCk6IHRpZDogNmE3ZDAzMDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDogN2FlNTY0ZDYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjIyKTogdGlkOiA3YWU1NjRkNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiA3YWU1NjRkNiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjI0KTogdGlkOiA3YWU1NjRkNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDE0MDAwIG5ibG9ja3MgMHgxNiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDIyNSk6IHRpZDogN2FlNTY0ZDYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjI2KTogdGlkOiA3YWU1NjRkNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjcpOiB0aWQ6IDdhZTU2NGQ2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzMy ICBsb25nZXN0OiAxOTQ5MjMzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyOCk6IHRpZDog N2FlNTY0ZDYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMjkpOiB0aWQ6IDdhZTU2NGQ2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6 IHRpZDogN2FlNTY0ZDYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjMxKTogdGlkOiA3YWU1NjRkNiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzIpOiB0aWQ6IDdhZTU2NGQ2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzMpOiB0aWQ6IGFhMjllZWZlICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIzNCk6IHRpZDogYWEyOWVlZmUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogYWEyOWVlZmUgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDIzNik6IHRpZDogYWEyOWVlZmUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgxNTQwMCBuYmxvY2tzIDB4MTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgyMzcpOiB0aWQ6IGFhMjllZWZlICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzOCk6IHRpZDogYWEyOWVlZmUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM5KTogdGlkOiBhYTI5ZWVmZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMzMSAg bG9uZ2VzdDogMTk0OTIzMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDApOiB0aWQ6IGFh MjllZWZlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjQxKTogdGlkOiBhYTI5ZWVmZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0 aWQ6IGFhMjllZWZlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDI0Myk6IHRpZDogYWEyOWVlZmUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ0 KTogdGlkOiBhYTI5ZWVmZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ1KTogdGlkOiAyYWRjYTE3MyAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDYpOiB0aWQ6IDJhZGNhMTczICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IDJhZGNhMTczICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgyNDgpOiB0aWQ6IDJhZGNhMTczICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MTY4MDAgbmJsb2NrcyAweDE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMjQ5KTogdGlkOiAyYWRjYTE3MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNTApOiB0aWQ6IDJhZGNhMTczICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1MSk6IHRpZDogMmFkY2ExNzMgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMzAgIGxv bmdlc3Q6IDE5NDkyMzMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUyKTogdGlkOiAyYWRj YTE3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI1Myk6IHRpZDogMmFkY2ExNzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlk OiAyYWRjYTE3MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNTUpOiB0aWQ6IDJhZGNhMTczICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nik6 IHRpZDogMmFkY2ExNzMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Nyk6IHRpZDogYWE5ZmI1YTYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4 KTogdGlkOiBhYTlmYjVhNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiBhYTlmYjVhNiAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjYwKTogdGlkOiBhYTlmYjVhNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDE3YzAwIG5ibG9ja3MgMHgxOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDI2MSk6IHRpZDogYWE5ZmI1YTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjYyKTogdGlkOiBhYTlmYjVhNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjMpOiB0aWQ6IGFhOWZiNWE2ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI5ICBsb25n ZXN0OiAxOTQ5MjMyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NCk6IHRpZDogYWE5ZmI1 YTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNjUpOiB0aWQ6IGFhOWZiNWE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDog YWE5ZmI1YTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjY3KTogdGlkOiBhYTlmYjVhNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjgpOiB0 aWQ6IGFhOWZiNWE2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjkpOiB0aWQ6IDliMzU1YmEwICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6 IHRpZDogOWIzNTViYTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogOWIzNTViYTAgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDI3Mik6IHRpZDogOWIzNTViYTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgxOTAwMCBuYmxvY2tzIDB4MWIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgyNzMpOiB0aWQ6IDliMzU1YmEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3NCk6IHRpZDogOWIzNTViYTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjc1KTogdGlkOiA5YjM1NWJhMCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNyAgbG9uZ2Vz dDogMTk0OTIzMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzYpOiB0aWQ6IDliMzU1YmEw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjc3KTogdGlkOiA5YjM1NWJhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IDli MzU1YmEwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI3OSk6IHRpZDogOWIzNTViYTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgwKTogdGlk OiA5YjM1NWJhMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjgxKTogdGlkOiBjNDJjZDJlNSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODIpOiB0 aWQ6IGM0MmNkMmU1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyODMpOiB0aWQ6IGM0MmNkMmU1ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyODQpOiB0aWQ6IGM0MmNkMmU1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MWE0MDAgbmJsb2NrcyAweDFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMjg1KTogdGlkOiBjNDJjZDJlNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy ODYpOiB0aWQ6IGM0MmNkMmU1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDI4Nyk6IHRpZDogYzQyY2QyZTUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjYgIGxvbmdlc3Q6 IDE5NDkyMzI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg4KTogdGlkOiBjNDJjZDJlNSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI4OSk6IHRpZDogYzQyY2QyZTUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiBjNDJj ZDJlNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyOTEpOiB0aWQ6IGM0MmNkMmU1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Mik6IHRpZDog YzQyY2QyZTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogMjIyNjFjOTcgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlk OiAyMjI2MWM5NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjk1KTogdGlkOiAyMjI2MWM5NyAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMjk2KTogdGlkOiAyMjI2MWM5NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDFiODAwIG5ibG9ja3MgMHgxZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDI5Nyk6IHRpZDogMjIyNjFjOTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk4 KTogdGlkOiAyMjI2MWM5NyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyOTkpOiB0aWQ6IDIyMjYxYzk3ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzI1ICBsb25nZXN0OiAx OTQ5MjMyNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMCk6IHRpZDogMjIyNjFjOTcgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMDEpOiB0aWQ6IDIyMjYxYzk3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogMjIyNjFj OTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzAzKTogdGlkOiAyMjI2MWM5NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDQpOiB0aWQ6IDIy MjYxYzk3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDUpOiB0aWQ6IDgzYzUyZTQ2ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNik6IHRpZDog ODNjNTJlNDYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwNyk6IHRpZDogODNjNTJlNDYgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDMwOCk6IHRpZDogODNjNTJlNDYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgxY2MwMCBuYmxvY2tzIDB4MWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgzMDkpOiB0aWQ6IDgzYzUyZTQ2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMCk6 IHRpZDogODNjNTJlNDYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzExKTogdGlkOiA4M2M1MmU0NiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyNCAgbG9uZ2VzdDogMTk0 OTIzMjQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTIpOiB0aWQ6IDgzYzUyZTQ2ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzEzKTogdGlkOiA4M2M1MmU0NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IDgzYzUyZTQ2 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMxNSk6IHRpZDogODNjNTJlNDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2KTogdGlkOiA4M2M1 MmU0NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzE3KTogdGlkOiAyMDUxYjExYSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTgpOiB0aWQ6IDIw NTFiMTFhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTkpOiB0aWQ6IDIwNTFiMTFhICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgz MjApOiB0aWQ6IDIwNTFiMTFhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MWUwMDAgbmJsb2NrcyAweDIwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMzIxKTogdGlkOiAyMDUxYjExYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjIpOiB0 aWQ6IDIwNTFiMTFhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDMyMyk6IHRpZDogMjA1MWIxMWEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMjIgIGxvbmdlc3Q6IDE5NDky MzIyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI0KTogdGlkOiAyMDUxYjExYSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMy NSk6IHRpZDogMjA1MWIxMWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI2KTogdGlkOiAyMDUxYjExYSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMjcpOiB0aWQ6IDIwNTFiMTFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRpZDogMjA1MWIx MWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogODMzNDU5YTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMwKTogdGlkOiA4MzM0 NTlhNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzMxKTogdGlkOiA4MzM0NTlhNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzMy KTogdGlkOiA4MzM0NTlhNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDFm NDAwIG5ibG9ja3MgMHgyMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDMzMyk6IHRpZDogODMzNDU5YTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM0KTogdGlk OiA4MzM0NTlhNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgzMzUpOiB0aWQ6IDgzMzQ1OWE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzIxICBsb25nZXN0OiAxOTQ5MjMy MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNik6IHRpZDogODMzNDU5YTUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzcp OiB0aWQ6IDgzMzQ1OWE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzOCk6IHRpZDogODMzNDU5YTUgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzM5KTogdGlkOiA4MzM0NTlhNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6IDgzMzQ1OWE1 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNDEpOiB0aWQ6IGJhNDAxZTUwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6IHRpZDogYmE0MDFl NTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM0Myk6IHRpZDogYmE0MDFlNTAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM0NCk6 IHRpZDogYmE0MDFlNTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMDgw MCBuYmxvY2tzIDB4MjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgz NDUpOiB0aWQ6IGJhNDAxZTUwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nik6IHRpZDog YmE0MDFlNTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzQ3KTogdGlkOiBiYTQwMWU1MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMyMCAgbG9uZ2VzdDogMTk0OTIzMjAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDgpOiB0aWQ6IGJhNDAxZTUwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ5KTog dGlkOiBiYTQwMWU1MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTApOiB0aWQ6IGJhNDAxZTUwICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1 MSk6IHRpZDogYmE0MDFlNTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlkOiBiYTQwMWU1MCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzUzKTogdGlkOiBkMjMzYWMxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0aWQ6IGQyMzNhYzE3 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTUpOiB0aWQ6IGQyMzNhYzE3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNTYpOiB0 aWQ6IGQyMzNhYzE3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjFjMDAg bmJsb2NrcyAweDIzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzU3 KTogdGlkOiBkMjMzYWMxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTgpOiB0aWQ6IGQy MzNhYzE3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDM1OSk6IHRpZDogZDIzM2FjMTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTkgIGxvbmdlc3Q6IDE5NDkyMzE5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYwKTogdGlkOiBkMjMzYWMxNyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2MSk6IHRp ZDogZDIzM2FjMTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYyKTogdGlkOiBkMjMzYWMxNyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjMp OiB0aWQ6IGQyMzNhYzE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2NCk6IHRpZDogZDIzM2FjMTcgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2NSk6IHRpZDogNmNjMGZhMTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlkOiA2Y2MwZmExOSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzY3KTogdGlkOiA2Y2MwZmExOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzY4KTogdGlk OiA2Y2MwZmExOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIzMDAwIG5i bG9ja3MgMHgyNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM2OSk6 IHRpZDogNmNjMGZhMTkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcwKTogdGlkOiA2Y2Mw ZmExOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzNzEpOiB0aWQ6IDZjYzBmYTE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE3ICBsb25nZXN0OiAxOTQ5MjMxNwotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Mik6IHRpZDogNmNjMGZhMTkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzMpOiB0aWQ6 IDZjYzBmYTE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3NCk6IHRpZDogNmNjMGZhMTkgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzc1KTog dGlkOiA2Y2MwZmExOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IDZjYzBmYTE5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNzcpOiB0aWQ6IDE3NWY3YjAxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDogMTc1ZjdiMDEgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3OSk6IHRpZDogMTc1ZjdiMDEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM4MCk6IHRpZDog MTc1ZjdiMDEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNDQwMCBuYmxv Y2tzIDB4MjYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzODEpOiB0 aWQ6IDE3NWY3YjAxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Mik6IHRpZDogMTc1Zjdi MDEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzgzKTogdGlkOiAxNzVmN2IwMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxNiAgbG9uZ2VzdDogMTk0OTIzMTYKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzODQpOiB0aWQ6IDE3NWY3YjAxICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg1KTogdGlkOiAx NzVmN2IwMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODYpOiB0aWQ6IDE3NWY3YjAxICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Nyk6IHRp ZDogMTc1ZjdiMDEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiAxNzVmN2IwMSAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzg5KTogdGlkOiA3NWM5ZDQzYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IDc1YzlkNDNiICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzOTEpOiB0aWQ6IDc1YzlkNDNiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzOTIpOiB0aWQ6IDc1 YzlkNDNiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjU4MDAgbmJsb2Nr cyAweDI3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzkzKTogdGlk OiA3NWM5ZDQzYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTQpOiB0aWQ6IDc1YzlkNDNi ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM5NSk6IHRpZDogNzVjOWQ0M2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMTUgIGxvbmdlc3Q6IDE5NDkyMzE1Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzk2KTogdGlkOiA3NWM5ZDQzYiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5Nyk6IHRpZDogNzVj OWQ0M2IgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk4KTogdGlkOiA3NWM5ZDQzYiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTkpOiB0aWQ6 IDc1YzlkNDNiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogNzVjOWQ0M2IgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQwMSk6IHRpZDogNGY1MzZlZGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiA0ZjUzNmVkZSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDAzKTogdGlkOiA0ZjUzNmVkZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDA0KTogdGlkOiA0ZjUz NmVkZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI2YzAwIG5ibG9ja3Mg MHgyOCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQwNSk6IHRpZDog NGY1MzZlZGUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA2KTogdGlkOiA0ZjUzNmVkZSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0MDcpOiB0aWQ6IDRmNTM2ZWRlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMzE0ICBsb25nZXN0OiAxOTQ5MjMxNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQwOCk6IHRpZDogNGY1MzZlZGUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDkpOiB0aWQ6IDRmNTM2 ZWRlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMCk6IHRpZDogNGY1MzZlZGUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDExKTogdGlkOiA0 ZjUzNmVkZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IDRmNTM2ZWRlICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MTMpOiB0aWQ6IDVkZWIxZWVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogNWRlYjFlZWMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQx NSk6IHRpZDogNWRlYjFlZWMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQxNik6IHRpZDogNWRlYjFl ZWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyODAwMCBuYmxvY2tzIDB4 MmEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0MTcpOiB0aWQ6IDVk ZWIxZWVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOCk6IHRpZDogNWRlYjFlZWMgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDE5KTogdGlkOiA1ZGViMWVlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMxMiAgbG9uZ2VzdDogMTk0OTIzMTIKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MjApOiB0aWQ6IDVkZWIxZWVjICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDIxKTogdGlkOiA1ZGViMWVl YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MjIpOiB0aWQ6IDVkZWIxZWVjICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyMyk6IHRpZDogNWRl YjFlZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiA1ZGViMWVlYyAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI1 KTogdGlkOiA3YWMyYzViMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IDdhYzJjNWIwICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mjcp OiB0aWQ6IDdhYzJjNWIwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MjgpOiB0aWQ6IDdhYzJjNWIw ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Mjk0MDAgbmJsb2NrcyAweDJi IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDI5KTogdGlkOiA3YWMy YzViMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzApOiB0aWQ6IDdhYzJjNWIwICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQz MSk6IHRpZDogN2FjMmM1YjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIzMTEgIGxvbmdlc3Q6IDE5NDkyMzExCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDMyKTogdGlkOiA3YWMyYzViMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzMyk6IHRpZDogN2FjMmM1YjAg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDM0KTogdGlkOiA3YWMyYzViMCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzUpOiB0aWQ6IDdhYzJj NWIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogN2FjMmM1YjAgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNyk6 IHRpZDogYTJmMDU3YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IGEyZjA1N2EgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOSk6IHRp ZDogYTJmMDU3YSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDQwKTogdGlkOiBhMmYwNTdhICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmE4MDAgbmJsb2NrcyAweDJjIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDQxKTogdGlkOiBhMmYwNTdhICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Mik6IHRpZDogYTJmMDU3YSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NDMpOiB0aWQ6 IGEyZjA1N2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTIzMTAgIGxvbmdlc3Q6IDE5NDkyMzEwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ0KTogdGlkOiBhMmYwNTdhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ1KTogdGlkOiBhMmYwNTdhICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ0Nik6IHRpZDogYTJmMDU3YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDcpOiB0aWQ6IGEyZjA1N2EgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDQ4KTogdGlkOiBhMmYwNTdhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDkpOiB0aWQ6IGMxNTE0N2Ni ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ1MCk6IHRpZDogYzE1MTQ3Y2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogYzE1MTQ3Y2Ig IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ1Mik6IHRpZDogYzE1MTQ3Y2IgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyYmMwMCBuYmxvY2tzIDB4MmQgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NTMpOiB0aWQ6IGMxNTE0N2NiICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ1NCk6IHRpZDogYzE1MTQ3Y2IgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDU1KTogdGlkOiBjMTUxNDdj YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjMwOSAgbG9uZ2VzdDogMTk0OTIzMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTYp OiB0aWQ6IGMxNTE0N2NiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDU3KTogdGlkOiBjMTUxNDdjYiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTgpOiB0aWQ6IGMxNTE0N2NiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1OSk6IHRpZDogYzE1MTQ3Y2IgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDYwKTogdGlkOiBjMTUxNDdjYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYxKTogdGlkOiA0MTRlYzE4YSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NjIpOiB0aWQ6IDQxNGVjMThhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IDQxNGVjMThhICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg0NjQpOiB0aWQ6IDQxNGVjMThhICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4MmQwMDAgbmJsb2NrcyAweDJmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDY1KTogdGlkOiA0MTRlYzE4YSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NjYpOiB0aWQ6IDQxNGVjMThhICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2Nyk6IHRpZDogNDE0ZWMxOGEg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIzMDcgIGxvbmdlc3Q6IDE5NDkyMzA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY4KTog dGlkOiA0MTRlYzE4YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ2OSk6IHRpZDogNDE0ZWMxOGEgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDcwKTogdGlkOiA0MTRlYzE4YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzEpOiB0aWQ6IDQxNGVjMThhICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3Mik6IHRpZDogNDE0ZWMxOGEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Myk6IHRpZDogYTJmMjdiNDkgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDc0KTogdGlkOiBhMmYyN2I0OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiBhMmYyN2I0OSAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDc2KTogdGlkOiBhMmYyN2I0OSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDJlNDAwIG5ibG9ja3MgMHgzMCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ3Nyk6IHRpZDogYTJmMjdiNDkgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDc4KTogdGlkOiBhMmYyN2I0OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NzkpOiB0aWQ6IGEyZjI3YjQ5ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MzA2ICBsb25nZXN0OiAxOTQ5MjMwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4MCk6IHRp ZDogYTJmMjdiNDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0ODEpOiB0aWQ6IGEyZjI3YjQ5ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 Mik6IHRpZDogYTJmMjdiNDkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDgzKTogdGlkOiBhMmYyN2I0OSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0ODQpOiB0aWQ6IGEyZjI3YjQ5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODUpOiB0aWQ6IDI3MjcwMTIwICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ4Nik6IHRpZDogMjcyNzAxMjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRpZDogMjcyNzAxMjAgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQ4OCk6IHRpZDogMjcyNzAxMjAgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgyZjgwMCBuYmxvY2tzIDB4MzEgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICg0ODkpOiB0aWQ6IDI3MjcwMTIwICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ5MCk6IHRpZDogMjcyNzAxMjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDkxKTogdGlkOiAyNzI3MDEyMCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCkFHRiBCdWZmZXI6IFhBR0Yg IE91dCBvZiBzcGFjZQoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQls c246IDEsNzAJdGFpbF9sc246IDEsNgpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBv ZmZzZXQ6IDYJCW51bSBvcHM6IDQ4OQp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1iOTJl ZThlY2FjNmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDI3MjcwMTIwICBsZW46IDExMiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogV0FTX0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3Bs aXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiAyNzI3MDEyMCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIpOiB0aWQ6IDI3MjcwMTIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6IDI3MjcwMTIw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQpOiB0aWQ6IDI3MjcwMTIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IDI3MjcwMTIw ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg2KTogdGlkOiA5MWI4OTI2YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA5MWI4OTI2YiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoOCk6IHRpZDogOTFiODkyNmIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkpOiB0aWQ6IDkx Yjg5MjZiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MzBjMDAgbmJsb2Nr cyAweDMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTApOiB0aWQ6 IDkxYjg5MjZiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiA5MWI4OTI2YiAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgxMik6IHRpZDogOTFiODkyNmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIzMDQgIGxvbmdlc3Q6IDE5NDkyMzA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6IDkxYjg5MjZiICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQpOiB0aWQ6IDkxYjg5MjZi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiA5MWI4OTI2YiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNik6IHRpZDogOTFiODky NmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IDkxYjg5MjZiICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRp ZDogNjBmYWQxZjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTkpOiB0aWQ6IDYwZmFkMWY3ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMCk6IHRpZDog NjBmYWQxZjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIxKTogdGlkOiA2MGZhZDFmNyAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDMyMDAwIG5ibG9ja3MgMHgzNCBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIyKTogdGlkOiA2MGZhZDFmNyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogNjBmYWQxZjcgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IDYw ZmFkMWY3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkyMzAyICBsb25nZXN0OiAxOTQ5MjMwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1KTogdGlkOiA2MGZhZDFmNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2KTogdGlkOiA2MGZhZDFmNyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNyk6IHRpZDogNjBmYWQxZjcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgpOiB0aWQ6IDYwZmFkMWY3ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI5KTogdGlkOiA2MGZhZDFmNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDMzZDQzMGVjICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxKTogdGlkOiAzM2Q0MzBlYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIpOiB0aWQ6IDMzZDQzMGVjICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzMyk6IHRpZDogMzNkNDMwZWMgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgzMzQwMCBuYmxvY2tzIDB4MzUgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICgzNCk6IHRpZDogMzNkNDMwZWMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzUpOiB0aWQ6IDMzZDQzMGVjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM2KTogdGlkOiAzM2Q0MzBlYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjMwMSAg bG9uZ2VzdDogMTk0OTIzMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogMzNk NDMwZWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzOCk6IHRpZDogMzNkNDMwZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6 IDMzZDQzMGVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQwKTogdGlkOiAzM2Q0MzBlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6IHRp ZDogMzNkNDMwZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyKTogdGlkOiA5OWQ5NTQ4OSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRp ZDogOTlkOTU0ODkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQ0KTogdGlkOiA5OWQ5NTQ4OSAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoNDUpOiB0aWQ6IDk5ZDk1NDg5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4MzQ4MDAgbmJsb2NrcyAweDM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoNDYpOiB0aWQ6IDk5ZDk1NDg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTog dGlkOiA5OWQ5NTQ4OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogOTlkOTU0ODkgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIzMDAgIGxvbmdlc3Q6IDE5NDky MzAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDk5ZDk1NDg5ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTAp OiB0aWQ6IDk5ZDk1NDg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiA5OWQ5NTQ4OSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1 Mik6IHRpZDogOTlkOTU0ODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDk5ZDk1NDg5ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1NCk6IHRpZDogZTE0MTFkNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IGUxNDExZDU3ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1Nik6IHRpZDogZTE0MTFkNTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDU3KTogdGlkOiBl MTQxMWQ1NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM1YzAwIG5ibG9j a3MgMHgzNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDU4KTogdGlk OiBlMTQxMWQ1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDogZTE0MTFkNTcg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoNjApOiB0aWQ6IGUxNDExZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk5ICBsb25nZXN0OiAxOTQ5MjI5OQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDYxKTogdGlkOiBlMTQxMWQ1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDYyKTogdGlkOiBlMTQxMWQ1 NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogZTE0MTFkNTcgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjQpOiB0aWQ6IGUxNDEx ZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiBlMTQxMWQ1NyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0 aWQ6IGY0ZmM5ODQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IGY0ZmM5ODQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY4KTogdGlkOiBm NGZjOTg0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2OSk6IHRpZDogZjRmYzk4NCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM3MDAwIG5ibG9ja3MgMHgzOSBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDcwKTogdGlkOiBmNGZjOTg0ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlkOiBmNGZjOTg0ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDcyKTogdGlkOiBmNGZjOTg0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjk3ICBsb25nZXN0OiAxOTQ5MjI5NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDczKTog dGlkOiBmNGZjOTg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNzQpOiB0aWQ6IGY0ZmM5ODQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUp OiB0aWQ6IGY0ZmM5ODQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNzYpOiB0aWQ6IGY0ZmM5ODQgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcp OiB0aWQ6IGY0ZmM5ODQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiBhODQ2MTA2NCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6 IHRpZDogYTg0NjEwNjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgwKTogdGlkOiBhODQ2MTA2NCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoODEpOiB0aWQ6IGE4NDYxMDY0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4Mzg0MDAgbmJsb2NrcyAweDNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoODIpOiB0aWQ6IGE4NDYxMDY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgz KTogdGlkOiBhODQ2MTA2NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg4NCk6IHRpZDogYTg0NjEwNjQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyOTYgIGxvbmdlc3Q6IDE5 NDkyMjk2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IGE4NDYxMDY0ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo ODYpOiB0aWQ6IGE4NDYxMDY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiBhODQ2MTA2NCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg4OCk6IHRpZDogYTg0NjEwNjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6IGE4NDYxMDY0 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg5MCk6IHRpZDogYThjOTNiYzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6IGE4YzkzYmM0 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg5Mik6IHRpZDogYThjOTNiYzQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkzKTogdGlk OiBhOGM5M2JjNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM5ODAwIG5i bG9ja3MgMHgzYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDk0KTog dGlkOiBhOGM5M2JjNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogYThjOTNi YzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoOTYpOiB0aWQ6IGE4YzkzYmM0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjk1ICBsb25nZXN0OiAxOTQ5MjI5NQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiBhOGM5M2JjNCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk4KTogdGlkOiBhOGM5 M2JjNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OSk6IHRpZDogYThjOTNiYzQgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTAwKTogdGlkOiBh OGM5M2JjNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IGE4YzkzYmM0ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MDIpOiB0aWQ6IGI5YmZiODQ2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMyk6IHRpZDogYjliZmI4NDYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw NCk6IHRpZDogYjliZmI4NDYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEwNSk6IHRpZDogYjliZmI4 NDYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYWMwMCBuYmxvY2tzIDB4 M2MgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMDYpOiB0aWQ6IGI5 YmZiODQ2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogYjliZmI4NDYgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MTA4KTogdGlkOiBiOWJmYjg0NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI5NCAgbG9uZ2VzdDogMTk0OTIyOTQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMDkpOiB0aWQ6IGI5YmZiODQ2ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEwKTogdGlkOiBiOWJmYjg0 NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IGI5YmZiODQ2ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMik6IHRpZDogYjli ZmI4NDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBiOWJmYjg0NiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE0 KTogdGlkOiA0YmJhNzIwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogNGJiYTcyMCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE2KTog dGlkOiA0YmJhNzIwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMTcpOiB0aWQ6IDRiYmE3MjAgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYzAwMCBuYmxvY2tzIDB4M2UgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMTgpOiB0aWQ6IDRiYmE3MjAg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTogdGlkOiA0YmJhNzIwICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRp ZDogNGJiYTcyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MjI5MiAgbG9uZ2VzdDogMTk0OTIyOTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMjEpOiB0aWQ6IDRiYmE3MjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjIpOiB0aWQ6IDRiYmE3MjAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTIzKTogdGlkOiA0YmJhNzIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyNCk6IHRpZDogNGJiYTcyMCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMjUpOiB0aWQ6IDRiYmE3MjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogMWRmYTll ZjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTI3KTogdGlkOiAxZGZhOWVmOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI4KTogdGlkOiAxZGZhOWVm OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTI5KTogdGlkOiAxZGZhOWVmOCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDNkNDAwIG5ibG9ja3MgMHgzZiBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDEzMCk6IHRpZDogMWRmYTllZjggIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiAxZGZhOWVmOCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDFkZmE5 ZWY4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjkxICBsb25nZXN0OiAxOTQ5MjI5MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEz Myk6IHRpZDogMWRmYTllZjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzQpOiB0aWQ6IDFkZmE5ZWY4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEzNSk6IHRpZDogMWRmYTllZjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM2KTogdGlkOiAxZGZhOWVmOCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMzcpOiB0aWQ6IDFkZmE5ZWY4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IDExMzhmMTM4 ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEzOSk6IHRpZDogMTEzOGYxMzggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MCk6IHRpZDogMTEzOGYxMzgg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0MSk6IHRpZDogMTEzOGYxMzggIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzZTgwMCBuYmxvY2tzIDB4NDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNDIpOiB0aWQ6IDExMzhmMTM4ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogMTEzOGYxMzggIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiAxMTM4ZjEz OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjI5MCAgbG9uZ2VzdDogMTk0OTIyOTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDUp OiB0aWQ6IDExMzhmMTM4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ2KTogdGlkOiAxMTM4ZjEzOCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNDcpOiB0aWQ6IDExMzhmMTM4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0OCk6IHRpZDogMTEzOGYxMzggIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTQ5KTogdGlkOiAxMTM4ZjEzOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUwKTogdGlkOiBmNjljM2U2NCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTEpOiB0aWQ6IGY2OWMzZTY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTIpOiB0aWQ6IGY2OWMzZTY0ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICgxNTMpOiB0aWQ6IGY2OWMzZTY0ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4M2ZjMDAgbmJsb2NrcyAweDQxIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTU0KTogdGlkOiBmNjljM2U2NCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IGY2OWMzZTY0ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogZjY5YzNlNjQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyODkgIGxvbmdlc3Q6IDE5NDkyMjg5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3KTog dGlkOiBmNjljM2U2NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDE1OCk6IHRpZDogZjY5YzNlNjQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTU5KTogdGlkOiBmNjljM2U2NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjApOiB0aWQ6IGY2OWMzZTY0ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE2MSk6IHRpZDogZjY5YzNlNjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogZjE1NzVkOTMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTYzKTogdGlkOiBmMTU3NWQ5MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0KTogdGlkOiBmMTU3NWQ5MyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoMTY1KTogdGlkOiBmMTU3NWQ5MyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDQxMDAwIG5ibG9ja3MgMHg0MyBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE2Nik6IHRpZDogZjE1NzVkOTMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTY3KTogdGlkOiBmMTU3NWQ5MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IGYxNTc1ZDkzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky Mjg3ICBsb25nZXN0OiAxOTQ5MjI4NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRp ZDogZjE1NzVkOTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxNzApOiB0aWQ6IGYxNTc1ZDkzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 MSk6IHRpZDogZjE1NzVkOTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTcyKTogdGlkOiBmMTU3NWQ5MyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNzMpOiB0aWQ6IGYxNTc1ZDkzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzQpOiB0aWQ6IDkwNzcyM2U2ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3NSk6IHRpZDogOTA3NzIzZTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRpZDogOTA3NzIzZTYgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDE3Nyk6IHRpZDogOTA3NzIzZTYgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg0MjQwMCBuYmxvY2tzIDB4NDQgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICgxNzgpOiB0aWQ6IDkwNzcyM2U2ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE3OSk6IHRpZDogOTA3NzIzZTYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiA5MDc3MjNlNiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4 NiAgbG9uZ2VzdDogMTk0OTIyODYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6 IDkwNzcyM2U2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTgyKTogdGlkOiA5MDc3MjNlNiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMp OiB0aWQ6IDkwNzcyM2U2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDE4NCk6IHRpZDogOTA3NzIzZTYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTg1KTogdGlkOiA5MDc3MjNlNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlkOiAyZTg4ZTMyZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxODcpOiB0aWQ6IDJlODhlMzJmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODgpOiB0aWQ6IDJlODhlMzJmICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxODkpOiB0aWQ6IDJlODhlMzJmICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NDM4MDAgbmJsb2NrcyAweDQ1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMTkwKTogdGlkOiAyZTg4ZTMyZiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxOTEpOiB0aWQ6IDJlODhlMzJmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogMmU4OGUzMmYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODUg IGxvbmdlc3Q6IDE5NDkyMjg1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlkOiAy ZTg4ZTMyZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE5NCk6IHRpZDogMmU4OGUzMmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTog dGlkOiAyZTg4ZTMyZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxOTYpOiB0aWQ6IDJlODhlMzJmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5 Nyk6IHRpZDogMmU4OGUzMmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDogOTQ5Yzk4NzIgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTk5KTogdGlkOiA5NDljOTg3MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAwKTogdGlkOiA5NDljOTg3MiAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMjAxKTogdGlkOiA5NDljOTg3MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDQ0YzAwIG5ibG9ja3MgMHg0NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDIwMik6IHRpZDogOTQ5Yzk4NzIgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjAzKTogdGlkOiA5NDljOTg3MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IDk0OWM5ODcyICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjg0ICBs b25nZXN0OiAxOTQ5MjI4NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogOTQ5 Yzk4NzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMDYpOiB0aWQ6IDk0OWM5ODcyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRp ZDogOTQ5Yzk4NzIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMjA4KTogdGlkOiA5NDljOTg3MiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDkp OiB0aWQ6IDk0OWM5ODcyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IDU4NmE3MDk3ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx MSk6IHRpZDogNTg2YTcwOTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMik6IHRpZDogNTg2YTcwOTcgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDIxMyk6IHRpZDogNTg2YTcwOTcgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg0NjAwMCBuYmxvY2tzIDB4NDggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICgyMTQpOiB0aWQ6IDU4NmE3MDk3ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIxNSk6IHRpZDogNTg2YTcwOTcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiA1ODZhNzA5NyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI4MiAgbG9u Z2VzdDogMTk0OTIyODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IDU4NmE3 MDk3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjE4KTogdGlkOiA1ODZhNzA5NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0aWQ6 IDU4NmE3MDk3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDIyMCk6IHRpZDogNTg2YTcwOTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIxKTog dGlkOiA1ODZhNzA5NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiA0NTQwYTNiNSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMp OiB0aWQ6IDQ1NDBhM2I1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjQpOiB0aWQ6IDQ1NDBhM2I1ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgyMjUpOiB0aWQ6IDQ1NDBhM2I1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NDc0MDAgbmJsb2NrcyAweDQ5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMjI2KTogdGlkOiA0NTQwYTNiNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMjcpOiB0aWQ6IDQ1NDBhM2I1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyOCk6IHRpZDogNDU0MGEzYjUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyODEgIGxvbmdl c3Q6IDE5NDkyMjgxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiA0NTQwYTNi NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDIzMCk6IHRpZDogNDU0MGEzYjUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlkOiA0 NTQwYTNiNSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgyMzIpOiB0aWQ6IDQ1NDBhM2I1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMyk6IHRp ZDogNDU0MGEzYjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogZmJhNTkwM2MgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTog dGlkOiBmYmE1OTAzYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjM2KTogdGlkOiBmYmE1OTAzYyAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMjM3KTogdGlkOiBmYmE1OTAzYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDQ4ODAwIG5ibG9ja3MgMHg0YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDIzOCk6IHRpZDogZmJhNTkwM2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjM5KTogdGlkOiBmYmE1OTAzYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDApOiB0aWQ6IGZiYTU5MDNjICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjgwICBsb25nZXN0 OiAxOTQ5MjI4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogZmJhNTkwM2Mg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyNDIpOiB0aWQ6IGZiYTU5MDNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDogZmJh NTkwM2MgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjQ0KTogdGlkOiBmYmE1OTAzYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDUpOiB0aWQ6 IGZiYTU5MDNjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDVmMjBlMTIwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRp ZDogNWYyMGUxMjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI0OCk6IHRpZDogNWYyMGUxMjAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDI0OSk6IHRpZDogNWYyMGUxMjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg0OWMwMCBuYmxvY2tzIDB4NGIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MApPcGVyICgyNTApOiB0aWQ6IDVmMjBlMTIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1 MSk6IHRpZDogNWYyMGUxMjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMjUyKTogdGlkOiA1ZjIwZTEyMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3OSAgbG9uZ2VzdDog MTk0OTIyNzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IDVmMjBlMTIwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjU0KTogdGlkOiA1ZjIwZTEyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDVmMjBl MTIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDI1Nik6IHRpZDogNWYyMGUxMjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU3KTogdGlkOiA1 ZjIwZTEyMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiAyYWZjNjI1NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6 IDJhZmM2MjU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjApOiB0aWQ6IDJhZmM2MjU3ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgyNjEpOiB0aWQ6IDJhZmM2MjU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4NGIwMDAgbmJsb2NrcyAweDRkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoMjYyKTogdGlkOiAyYWZjNjI1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMp OiB0aWQ6IDJhZmM2MjU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDI2NCk6IHRpZDogMmFmYzYyNTcgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzcgIGxvbmdlc3Q6IDE5 NDkyMjc3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiAyYWZjNjI1NyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDI2Nik6IHRpZDogMmFmYzYyNTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiAyYWZjNjI1 NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyNjgpOiB0aWQ6IDJhZmM2MjU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OSk6IHRpZDogMmFm YzYyNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogZTQ2ZGUwYTUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlkOiBl NDZkZTBhNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjcyKTogdGlkOiBlNDZkZTBhNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MjczKTogdGlkOiBlNDZkZTBhNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDRjNDAwIG5ibG9ja3MgMHg0ZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDI3NCk6IHRpZDogZTQ2ZGUwYTUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTog dGlkOiBlNDZkZTBhNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0aWQ6IGU0NmRlMGE1ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjc2ICBsb25nZXN0OiAxOTQ5 MjI3NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogZTQ2ZGUwYTUgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy NzgpOiB0aWQ6IGU0NmRlMGE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogZTQ2ZGUwYTUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjgwKTogdGlkOiBlNDZkZTBhNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODEpOiB0aWQ6IGU0NmRl MGE1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IGY1ZTI2MzA0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogZjVl MjYzMDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI4NCk6IHRpZDogZjVlMjYzMDQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI4 NSk6IHRpZDogZjVlMjYzMDQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0 ZDgwMCBuYmxvY2tzIDB4NGYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgyODYpOiB0aWQ6IGY1ZTI2MzA0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRp ZDogZjVlMjYzMDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMjg4KTogdGlkOiBmNWUyNjMwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3NSAgbG9uZ2VzdDogMTk0OTIy NzUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IGY1ZTI2MzA0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkw KTogdGlkOiBmNWUyNjMwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTEpOiB0aWQ6IGY1ZTI2MzA0ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDI5Mik6IHRpZDogZjVlMjYzMDQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkzKTogdGlkOiBmNWUyNjMw NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjk0KTogdGlkOiBlZjNkYzEyZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IGVmM2Rj MTJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyOTYpOiB0aWQ6IGVmM2RjMTJkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyOTcp OiB0aWQ6IGVmM2RjMTJkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGVj MDAgbmJsb2NrcyAweDUwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo Mjk4KTogdGlkOiBlZjNkYzEyZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6 IGVmM2RjMTJkICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDMwMCk6IHRpZDogZWYzZGMxMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzQgIGxvbmdlc3Q6IDE5NDkyMjc0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiBlZjNkYzEyZCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMik6 IHRpZDogZWYzZGMxMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAzKTogdGlkOiBlZjNkYzEyZCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgz MDQpOiB0aWQ6IGVmM2RjMTJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogZWYzZGMxMmQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMwNik6IHRpZDogNTZmM2VkOTQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiA1NmYzZWQ5 NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzA4KTogdGlkOiA1NmYzZWQ5NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzA5KTog dGlkOiA1NmYzZWQ5NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUwMDAw IG5ibG9ja3MgMHg1MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMx MCk6IHRpZDogNTZmM2VkOTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiA1 NmYzZWQ5NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgzMTIpOiB0aWQ6IDU2ZjNlZDk0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjcyICBsb25nZXN0OiAxOTQ5MjI3Mgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogNTZmM2VkOTQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0 aWQ6IDU2ZjNlZDk0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNSk6IHRpZDogNTZmM2VkOTQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE2 KTogdGlkOiA1NmYzZWQ5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IDU2ZjNlZDk0ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMTgpOiB0aWQ6IDZlNzMwZDBmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogNmU3MzBkMGYg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMyMCk6IHRpZDogNmU3MzBkMGYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyMSk6IHRp ZDogNmU3MzBkMGYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MTQwMCBu YmxvY2tzIDB4NTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMjIp OiB0aWQ6IDZlNzMwZDBmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogNmU3 MzBkMGYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMzI0KTogdGlkOiA2ZTczMGQwZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI3MSAgbG9uZ2VzdDogMTk0OTIyNzEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDZlNzMwZDBmICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI2KTogdGlk OiA2ZTczMGQwZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjcpOiB0aWQ6IDZlNzMwZDBmICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyOCk6 IHRpZDogNmU3MzBkMGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiA2ZTczMGQwZiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzMwKTogdGlkOiBjNmQ1MTQ2NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzEpOiB0aWQ6IGM2ZDUxNDY2ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMzIpOiB0aWQ6IGM2ZDUxNDY2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzMpOiB0aWQ6 IGM2ZDUxNDY2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTI4MDAgbmJs b2NrcyAweDU0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzM0KTog dGlkOiBjNmQ1MTQ2NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGM2ZDUx NDY2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDMzNik6IHRpZDogYzZkNTE0NjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNzAgIGxvbmdlc3Q6IDE5NDkyMjcwCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzM3KTogdGlkOiBjNmQ1MTQ2NiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzOCk6IHRpZDog YzZkNTE0NjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM5KTogdGlkOiBjNmQ1MTQ2NiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDApOiB0 aWQ6IGM2ZDUxNDY2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogYzZkNTE0NjYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM0Mik6IHRpZDogZWRiYmY1MjggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQzKTogdGlkOiBlZGJiZjUyOCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzQ0KTogdGlkOiBlZGJiZjUyOCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ1KTogdGlkOiBl ZGJiZjUyOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUzYzAwIG5ibG9j a3MgMHg1NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM0Nik6IHRp ZDogZWRiYmY1MjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBlZGJiZjUy OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgzNDgpOiB0aWQ6IGVkYmJmNTI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjY5ICBsb25nZXN0OiAxOTQ5MjI2OQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM0OSk6IHRpZDogZWRiYmY1MjggIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTApOiB0aWQ6IGVk YmJmNTI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MSk6IHRpZDogZWRiYmY1MjggIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUyKTogdGlk OiBlZGJiZjUyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IGVkYmJmNTI4ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNTQpOiB0aWQ6IDFhMGM1MTg4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NSk6IHRpZDogMWEwYzUxODggIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1Nik6IHRpZDogMWEwYzUxODggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM1Nyk6IHRpZDogMWEw YzUxODggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1NTAwMCBuYmxvY2tz IDB4NTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNTgpOiB0aWQ6 IDFhMGM1MTg4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogMWEwYzUxODgg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMzYwKTogdGlkOiAxYTBjNTE4OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI2NyAgbG9uZ2VzdDogMTk0OTIyNjcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjEpOiB0aWQ6IDFhMGM1MTg4ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiAxYTBj NTE4OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjMpOiB0aWQ6IDFhMGM1MTg4ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDog MWEwYzUxODggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiAxYTBjNTE4OCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzY2KTogdGlkOiBmZTUyMGNlNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IGZlNTIwY2U3ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjgpOiB0aWQ6IGZlNTIwY2U3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNjkpOiB0aWQ6IGZlNTIw Y2U3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTY0MDAgbmJsb2NrcyAw eDU4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzcwKTogdGlkOiBm ZTUyMGNlNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IGZlNTIwY2U3ICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDM3Mik6IHRpZDogZmU1MjBjZTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIyNjYgIGxvbmdlc3Q6IDE5NDkyMjY2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzczKTogdGlkOiBmZTUyMGNlNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3NCk6IHRpZDogZmU1MjBj ZTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1KTogdGlkOiBmZTUyMGNlNyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzYpOiB0aWQ6IGZl NTIwY2U3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDogZmU1MjBjZTcgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3 OCk6IHRpZDogM2JjNWY2MjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc5KTogdGlkOiAzYmM1ZjYyNSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgw KTogdGlkOiAzYmM1ZjYyNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzgxKTogdGlkOiAzYmM1ZjYy NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDU3ODAwIG5ibG9ja3MgMHg1 OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM4Mik6IHRpZDogM2Jj NWY2MjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiAzYmM1ZjYyNSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgz ODQpOiB0aWQ6IDNiYzVmNjI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjY1ICBsb25nZXN0OiAxOTQ5MjI2NQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM4NSk6IHRpZDogM2JjNWY2MjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IDNiYzVmNjI1 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6IHRpZDogM2JjNWY2MjUgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiAzYmM1 ZjYyNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IDNiYzVmNjI1ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTAp OiB0aWQ6IDk4MDg3MTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiA5ODA4NzE3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTIpOiB0 aWQ6IDk4MDg3MTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Myk6IHRpZDogOTgwODcxNyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDU4YzAwIG5ibG9ja3MgMHg1YSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM5NCk6IHRpZDogOTgwODcxNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IDk4MDg3MTcgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlk OiA5ODA4NzE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjY0ICBsb25nZXN0OiAxOTQ5MjI2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM5Nyk6IHRpZDogOTgwODcxNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5OCk6IHRpZDogOTgwODcxNyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTkpOiB0aWQ6IDk4MDg3MTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDAwKTogdGlkOiA5ODA4NzE3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQwMSk6IHRpZDogOTgwODcxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiBjODY2NWVl MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MDMpOiB0aWQ6IGM4NjY1ZWUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDQpOiB0aWQ6IGM4NjY1ZWUx ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICg0MDUpOiB0aWQ6IGM4NjY1ZWUxICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NWEwMDAgbmJsb2NrcyAweDVjIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDA2KTogdGlkOiBjODY2NWVlMSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IGM4NjY1ZWUxICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogYzg2NjVl ZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIyNjIgIGxvbmdlc3Q6IDE5NDkyMjYyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5 KTogdGlkOiBjODY2NWVlMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQxMCk6IHRpZDogYzg2NjVlZTEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDExKTogdGlkOiBjODY2NWVlMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTIpOiB0aWQ6IGM4NjY1ZWUxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQxMyk6IHRpZDogYzg2NjVlZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogNDZhNzBkNjQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDE1KTogdGlkOiA0NmE3MGQ2NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE2KTogdGlkOiA0NmE3MGQ2NCAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNDE3KTogdGlkOiA0NmE3MGQ2NCAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDViNDAwIG5ibG9ja3MgMHg1ZCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQxOCk6IHRpZDogNDZhNzBkNjQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA0NmE3MGQ2NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IDQ2YTcwZDY0 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjYxICBsb25nZXN0OiAxOTQ5MjI2MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6 IHRpZDogNDZhNzBkNjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MjIpOiB0aWQ6IDQ2YTcwZDY0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQyMyk6IHRpZDogNDZhNzBkNjQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI0KTogdGlkOiA0NmE3MGQ2NCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MjUpOiB0aWQ6IDQ2YTcwZDY0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IGJmYzE3NDY1ICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQyNyk6IHRpZDogYmZjMTc0NjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOCk6IHRpZDogYmZjMTc0NjUgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDQyOSk6IHRpZDogYmZjMTc0NjUgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg1YzgwMCBuYmxvY2tzIDB4NWUgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICg0MzApOiB0aWQ6IGJmYzE3NDY1ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogYmZjMTc0NjUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiBiZmMxNzQ2NSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjI2MCAgbG9uZ2VzdDogMTk0OTIyNjAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0 aWQ6IGJmYzE3NDY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDM0KTogdGlkOiBiZmMxNzQ2NSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MzUpOiB0aWQ6IGJmYzE3NDY1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDQzNik6IHRpZDogYmZjMTc0NjUgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDM3KTogdGlkOiBiZmMxNzQ2NSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlkOiAxZjMxMTUyMSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MzkpOiB0aWQ6IDFmMzExNTIxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDApOiB0aWQ6IDFmMzExNTIxICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICg0NDEpOiB0aWQ6IDFmMzExNTIxICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NWRjMDAgbmJsb2NrcyAweDVmIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoNDQyKTogdGlkOiAxZjMxMTUyMSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NDMpOiB0aWQ6IDFmMzExNTIxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDogMWYzMTE1MjEgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIy NTkgIGxvbmdlc3Q6IDE5NDkyMjU5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlk OiAxZjMxMTUyMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQ0Nik6IHRpZDogMWYzMTE1MjEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3 KTogdGlkOiAxZjMxMTUyMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0NDgpOiB0aWQ6IDFmMzExNTIxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ0OSk6IHRpZDogMWYzMTE1MjEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogN2I0MDI3MmQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDUxKTogdGlkOiA3YjQwMjcyZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiA3YjQwMjcyZCAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoNDUzKTogdGlkOiA3YjQwMjcyZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDVmMDAwIG5ibG9ja3MgMHg2MSBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDQ1NCk6IHRpZDogN2I0MDI3MmQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDU1KTogdGlkOiA3YjQwMjcyZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTYpOiB0aWQ6IDdiNDAyNzJkICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjU3 ICBsb25nZXN0OiAxOTQ5MjI1NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDog N2I0MDI3MmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0NTgpOiB0aWQ6IDdiNDAyNzJkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6 IHRpZDogN2I0MDI3MmQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoNDYwKTogdGlkOiA3YjQwMjcyZCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NjEpOiB0aWQ6IDdiNDAyNzJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IGViODEwM2ZjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ2Myk6IHRpZDogZWI4MTAzZmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRpZDogZWI4MTAzZmMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDQ2NSk6IHRpZDogZWI4MTAzZmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHg2MDQwMCBuYmxvY2tzIDB4NjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICg0NjYpOiB0aWQ6IGViODEwM2ZjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ2Nyk6IHRpZDogZWI4MTAzZmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDY4KTogdGlkOiBlYjgxMDNmYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NiAg bG9uZ2VzdDogMTk0OTIyNTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IGVi ODEwM2ZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNDcwKTogdGlkOiBlYjgxMDNmYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0 aWQ6IGViODEwM2ZjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQ3Mik6IHRpZDogZWI4MTAzZmMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcz KTogdGlkOiBlYjgxMDNmYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiAxYWMzMzgxNiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NzUpOiB0aWQ6IDFhYzMzODE2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6IDFhYzMzODE2ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICg0NzcpOiB0aWQ6IDFhYzMzODE2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NjE4MDAgbmJsb2NrcyAweDYzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoNDc4KTogdGlkOiAxYWMzMzgxNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NzkpOiB0aWQ6IDFhYzMzODE2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRpZDogMWFjMzM4MTYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTUgIGxv bmdlc3Q6IDE5NDkyMjU1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiAxYWMz MzgxNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDQ4Mik6IHRpZDogMWFjMzM4MTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTogdGlk OiAxYWMzMzgxNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0ODQpOiB0aWQ6IDFhYzMzODE2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6 IHRpZDogMWFjMzM4MTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogOWU5NjE4YSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcp OiB0aWQ6IDllOTYxOGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4OCk6IHRpZDogOWU5NjE4YSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCklOT0RFOiAjcmVnczogMyAgIE5vdCBwcmludGlu ZyByZXN0IG9mIGRhdGEKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJ bHNuOiAxLDEzNAl0YWlsX2xzbjogMSw2Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2 IG9mZnNldDogNzAJCW51bSBvcHM6IDQ4OAp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1i OTJlZThlY2FjNmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDllOTYxOGEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05UIEVORCAKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNw bGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMSk6IHRpZDogOWU5NjE4YSAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpMZWZ0IG92ZXIgcmVnaW9uIGZy b20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiA5ZTk2 MThhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxlZnQgb3ZlciByZWdp b24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6 IDllOTYxOGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNCk6IHRpZDogOWU5NjE4YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI1NCAgbG9uZ2VzdDogMTk0OTIyNTQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1KTogdGlkOiA5ZTk2MThhICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNik6IHRpZDogOWU5 NjE4YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA5ZTk2MThhICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgpOiB0aWQ6IDllOTYx OGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogOWU5NjE4YSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTApOiB0aWQ6 IGMzN2YwNjUzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiBjMzdmMDY1MyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIpOiB0aWQ6IGMz N2YwNjUzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxMyk6IHRpZDogYzM3ZjA2NTMgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2NDAwMCBuYmxvY2tzIDB4NjYgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNCk6IHRpZDogYzM3ZjA2NTMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTUpOiB0aWQ6IGMzN2YwNjUzICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE2KTogdGlkOiBjMzdm MDY1MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MjI1MiAgbG9uZ2VzdDogMTk0OTIyNTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx Nyk6IHRpZDogYzM3ZjA2NTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOCk6IHRpZDogYzM3ZjA2NTMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTkpOiB0aWQ6IGMzN2YwNjUzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwKTogdGlkOiBjMzdmMDY1MyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMSk6IHRpZDogYzM3ZjA2NTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyKTogdGlkOiA4MTMyYzgyYiAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMyk6IHRpZDogODEzMmM4MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0KTogdGlkOiA4MTMyYzgyYiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMjUpOiB0aWQ6IDgxMzJjODJiICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NjU0MDAgbmJsb2NrcyAweDY3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMjYpOiB0aWQ6IDgxMzJjODJiICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI3KTogdGlkOiA4MTMyYzgyYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyOCk6IHRpZDogODEzMmM4MmIgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTEgIGxv bmdlc3Q6IDE5NDkyMjUxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IDgxMzJj ODJiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMzApOiB0aWQ6IDgxMzJjODJiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiA4 MTMyYzgyYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzMik6IHRpZDogODEzMmM4MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMpOiB0aWQ6 IDgxMzJjODJiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNCk6IHRpZDogZTFlN2I1NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNSk6IHRpZDog ZTFlN2I1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IGUxZTdiNTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM3 KTogdGlkOiBlMWU3YjU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjY4 MDAgbmJsb2NrcyAweDY4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo MzgpOiB0aWQ6IGUxZTdiNTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IGUx ZTdiNTcgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoNDApOiB0aWQ6IGUxZTdiNTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNTAgIGxvbmdlc3Q6IDE5NDkyMjUwCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDEpOiB0aWQ6IGUxZTdiNTcgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Mik6IHRpZDogZTFl N2I1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRpZDogZTFlN2I1NyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NCk6IHRpZDogZTFl N2I1NyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NSk6IHRpZDogZTFlN2I1NyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYpOiB0 aWQ6IDVlMjg4M2EwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA1ZTI4ODNhMCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgpOiB0aWQ6 IDVlMjg4M2EwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0OSk6IHRpZDogNWUyODgzYTAgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2N2MwMCBuYmxvY2tzIDB4NjkgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg1MCk6IHRpZDogNWUyODgzYTAgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTEpOiB0aWQ6IDVlMjg4M2EwICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDUyKTogdGlkOiA1 ZTI4ODNhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjI0OSAgbG9uZ2VzdDogMTk0OTIyNDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg1Myk6IHRpZDogNWUyODgzYTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1NCk6IHRpZDogNWUyODgzYTAgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNTUpOiB0aWQ6IDVlMjg4M2EwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU2KTogdGlkOiA1ZTI4ODNhMCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Nyk6IHRpZDogNWUyODgzYTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU4KTogdGlkOiAyZTg3ZWY5OCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1OSk6IHRpZDogMmU4N2VmOTggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiAyZTg3ZWY5OCAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNjEpOiB0aWQ6IDJlODdlZjk4ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NjkwMDAgbmJsb2NrcyAweDZiIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoNjIpOiB0aWQ6IDJlODdlZjk4ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDYzKTogdGlkOiAyZTg3ZWY5OCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2NCk6IHRpZDogMmU4N2VmOTggIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDcg IGxvbmdlc3Q6IDE5NDkyMjQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0aWQ6IDJl ODdlZjk4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNjYpOiB0aWQ6IDJlODdlZjk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY3KTogdGlk OiAyZTg3ZWY5OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg2OCk6IHRpZDogMmU4N2VmOTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjkpOiB0 aWQ6IDJlODdlZjk4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3MCk6IHRpZDogYTM1ZjhiNmYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0 aWQ6IGEzNWY4YjZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg3Mik6IHRpZDogYTM1ZjhiNmYgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDczKTogdGlkOiBhMzVmOGI2ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDZhNDAwIG5ibG9ja3MgMHg2YyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDc0KTogdGlkOiBhMzVmOGI2ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NSk6 IHRpZDogYTM1ZjhiNmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNzYpOiB0aWQ6IGEzNWY4YjZmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjQ2ICBsb25nZXN0OiAxOTQ5 MjI0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3KTogdGlkOiBhMzVmOGI2ZiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc4 KTogdGlkOiBhMzVmOGI2ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogYTM1ZjhiNmYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo ODApOiB0aWQ6IGEzNWY4YjZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgxKTogdGlkOiBhMzVmOGI2ZiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoODIpOiB0aWQ6IDNlZjY2ZjkwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiAzZWY2NmY5MCAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODQpOiB0aWQ6IDNlZjY2ZjkwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg4NSk6IHRpZDog M2VmNjZmOTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2YjgwMCBuYmxv Y2tzIDB4NmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg4Nik6IHRp ZDogM2VmNjZmOTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IDNlZjY2Zjkw ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDg4KTogdGlkOiAzZWY2NmY5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjI0NSAgbG9uZ2VzdDogMTk0OTIyNDUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogM2VmNjZmOTAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5MCk6IHRpZDogM2VmNjZm OTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6IDNlZjY2ZjkwICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkyKTogdGlkOiAzZWY2 NmY5MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Myk6IHRpZDogM2VmNjZmOTAgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk0KTog dGlkOiA2ZGNmY2Q4OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogNmRjZmNkODggIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlk OiA2ZGNmY2Q4OCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoOTcpOiB0aWQ6IDZkY2ZjZDg4ICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NmNjMDAgbmJsb2NrcyAweDZlIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoOTgpOiB0aWQ6IDZkY2ZjZDg4ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk5KTogdGlkOiA2ZGNmY2Q4OCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDApOiB0aWQ6 IDZkY2ZjZDg4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjQ0ICBsb25nZXN0OiAxOTQ5MjI0NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEwMSk6IHRpZDogNmRjZmNkODggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDIpOiB0aWQ6IDZkY2ZjZDg4ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwMyk6IHRpZDogNmRjZmNkODggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTA0KTogdGlkOiA2ZGNmY2Q4OCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMDUpOiB0aWQ6IDZkY2ZjZDg4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDYpOiB0aWQ6IDZm NmIwY2YgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTA3KTogdGlkOiA2ZjZiMGNmICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IDZmNmIw Y2YgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDEwOSk6IHRpZDogNmY2YjBjZiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZlMDAwIG5ibG9ja3MgMHg3MCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDExMCk6IHRpZDogNmY2YjBjZiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMTEpOiB0aWQ6IDZmNmIwY2YgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTEyKTogdGlkOiA2ZjZiMGNm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjQyICBsb25nZXN0OiAxOTQ5MjI0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMyk6 IHRpZDogNmY2YjBjZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDExNCk6IHRpZDogNmY2YjBjZiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTUpOiB0aWQ6IDZmNmIwY2YgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTE2KTogdGlkOiA2ZjZiMGNmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExNyk6IHRpZDogNmY2YjBjZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE4KTogdGlkOiA3OTRmMjMzNCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMTkpOiB0aWQ6IDc5NGYyMzM0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjApOiB0aWQ6IDc5NGYyMzM0ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgxMjEpOiB0aWQ6IDc5NGYyMzM0ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NmY0MDAgbmJsb2NrcyAweDcxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMTIyKTogdGlkOiA3OTRmMjMzNCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMjMpOiB0aWQ6IDc5NGYyMzM0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyNCk6IHRpZDogNzk0ZjIzMzQgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDEg IGxvbmdlc3Q6IDE5NDkyMjQxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI1KTogdGlkOiA3 OTRmMjMzNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDEyNik6IHRpZDogNzk0ZjIzMzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI3KTog dGlkOiA3OTRmMjMzNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxMjgpOiB0aWQ6IDc5NGYyMzM0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEy OSk6IHRpZDogNzk0ZjIzMzQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMCk6IHRpZDogMzA4Yjc1ZiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MzEpOiB0aWQ6IDMwOGI3NWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMik6IHRpZDogMzA4Yjc1ZiAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTMzKTogdGlkOiAzMDhiNzVmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NzA4MDAgbmJsb2NrcyAweDcyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMTM0KTogdGlkOiAzMDhiNzVmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEzNSk6IHRpZDogMzA4Yjc1ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzYpOiB0aWQ6IDMwOGI3NWYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyNDAgIGxvbmdlc3Q6 IDE5NDkyMjQwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM3KTogdGlkOiAzMDhiNzVmICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTM4KTogdGlkOiAzMDhiNzVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogMzA4Yjc1 ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNDApOiB0aWQ6IDMwOGI3NWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiAzMDhi NzVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNDIpOiB0aWQ6IGYwMDVjMzdlICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogZjAw NWMzN2UgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogZjAwNWMzN2UgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE0 NSk6IHRpZDogZjAwNWMzN2UgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3 MWMwMCBuYmxvY2tzIDB4NzMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgxNDYpOiB0aWQ6IGYwMDVjMzdlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6IHRp ZDogZjAwNWMzN2UgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTQ4KTogdGlkOiBmMDA1YzM3ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzOSAgbG9uZ2VzdDogMTk0OTIy MzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDkpOiB0aWQ6IGYwMDVjMzdlICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTUw KTogdGlkOiBmMDA1YzM3ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IGYwMDVjMzdlICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE1Mik6IHRpZDogZjAwNWMzN2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUzKTogdGlkOiBmMDA1YzM3 ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTU0KTogdGlkOiBhN2YxMWE4NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IGE3ZjEx YTg0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNTYpOiB0aWQ6IGE3ZjExYTg0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxNTcp OiB0aWQ6IGE3ZjExYTg0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzMw MDAgbmJsb2NrcyAweDc1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo MTU4KTogdGlkOiBhN2YxMWE4NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0aWQ6 IGE3ZjExYTg0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE2MCk6IHRpZDogYTdmMTFhODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzcgIGxvbmdlc3Q6IDE5NDkyMjM3 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYxKTogdGlkOiBhN2YxMWE4NCAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Mik6 IHRpZDogYTdmMTFhODQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYzKTogdGlkOiBhN2YxMWE4NCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NjQpOiB0aWQ6IGE3ZjExYTg0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2NSk6IHRpZDogYTdmMTFhODQg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE2Nik6IHRpZDogMTYyYjE2MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjcpOiB0aWQ6IDE2MmIxNjMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE2OCk6IHRpZDogMTYyYjE2MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMTY5KTogdGlk OiAxNjJiMTYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzQ0MDAgbmJs b2NrcyAweDc2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTcwKTog dGlkOiAxNjJiMTYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogMTYyYjE2 MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNzIpOiB0aWQ6IDE2MmIxNjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzYgIGxvbmdlc3Q6IDE5NDkyMjM2Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiAxNjJiMTYzICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTc0KTogdGlkOiAxNjJi MTYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NSk6IHRpZDogMTYyYjE2MyAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6IDE2 MmIxNjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiAxNjJiMTYzICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzgp OiB0aWQ6IDlkNjA0MTI0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogOWQ2MDQxMjQgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MCk6 IHRpZDogOWQ2MDQxMjQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4MSk6IHRpZDogOWQ2MDQxMjQg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg3NTgwMCBuYmxvY2tzIDB4Nzcg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxODIpOiB0aWQ6IDlkNjA0 MTI0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDogOWQ2MDQxMjQgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTg0 KTogdGlkOiA5ZDYwNDEyNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MjIzNSAgbG9uZ2VzdDogMTk0OTIyMzUKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxODUpOiB0aWQ6IDlkNjA0MTI0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTg2KTogdGlkOiA5ZDYwNDEyNCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxODcpOiB0aWQ6IDlkNjA0MTI0ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4OCk6IHRpZDogOWQ2MDQx MjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTg5KTogdGlkOiA5ZDYwNDEyNCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkwKTog dGlkOiA5ODFiNTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiA5ODFiNTYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Mik6IHRpZDog OTgxYjU2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgxOTMpOiB0aWQ6IDk4MWI1NiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDc2YzAwIG5ibG9ja3MgMHg3OCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE5NCk6IHRpZDogOTgxYjU2ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5NSk6IHRpZDogOTgxYjU2ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5Nik6IHRpZDogOTgxYjU2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjM0ICBsb25nZXN0OiAxOTQ5MjIzNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6 IHRpZDogOTgxYjU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTk4KTogdGlkOiA5ODFiNTYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk5 KTogdGlkOiA5ODFiNTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiA5ODFiNTYgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAx KTogdGlkOiA5ODFiNTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMik6IHRpZDogY2QzZjU3OWQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAz KTogdGlkOiBjZDNmNTc5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA0KTogdGlkOiBjZDNmNTc5ZCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMjA1KTogdGlkOiBjZDNmNTc5ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDc4MDAwIG5ibG9ja3MgMHg3YSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDIwNik6IHRpZDogY2QzZjU3OWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjA3KTogdGlkOiBjZDNmNTc5ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDgpOiB0aWQ6IGNkM2Y1NzlkICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjMyICBsb25n ZXN0OiAxOTQ5MjIzMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOSk6IHRpZDogY2QzZjU3 OWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyMTApOiB0aWQ6IGNkM2Y1NzlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMSk6IHRpZDog Y2QzZjU3OWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjEyKTogdGlkOiBjZDNmNTc5ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTMpOiB0 aWQ6IGNkM2Y1NzlkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTQpOiB0aWQ6IDFkYmVkNjBjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6 IHRpZDogMWRiZWQ2MGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNik6IHRpZDogMWRiZWQ2MGMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDIxNyk6IHRpZDogMWRiZWQ2MGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHg3OTQwMCBuYmxvY2tzIDB4N2IgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgyMTgpOiB0aWQ6IDFkYmVkNjBjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIxOSk6IHRpZDogMWRiZWQ2MGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjIwKTogdGlkOiAxZGJlZDYwYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIzMSAgbG9uZ2Vz dDogMTk0OTIyMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjEpOiB0aWQ6IDFkYmVkNjBj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjIyKTogdGlkOiAxZGJlZDYwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjMpOiB0aWQ6IDFk YmVkNjBjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDIyNCk6IHRpZDogMWRiZWQ2MGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlk OiAxZGJlZDYwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjI2KTogdGlkOiAzNWQ0ZDk1NiAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0 aWQ6IDM1ZDRkOTU2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMjgpOiB0aWQ6IDM1ZDRkOTU2ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgyMjkpOiB0aWQ6IDM1ZDRkOTU2ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4N2E4MDAgbmJsb2NrcyAweDdjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMjMwKTogdGlkOiAzNWQ0ZDk1NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MzEpOiB0aWQ6IDM1ZDRkOTU2ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDIzMik6IHRpZDogMzVkNGQ5NTYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMzAgIGxvbmdlc3Q6 IDE5NDkyMjMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMzKTogdGlkOiAzNWQ0ZDk1NiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIzNCk6IHRpZDogMzVkNGQ5NTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1KTogdGlkOiAzNWQ0 ZDk1NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyMzYpOiB0aWQ6IDM1ZDRkOTU2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNyk6IHRpZDog MzVkNGQ5NTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzOCk6IHRpZDogMTZhYTdjMGIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlk OiAxNmFhN2MwYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjQwKTogdGlkOiAxNmFhN2MwYiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMjQxKTogdGlkOiAxNmFhN2MwYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDdiYzAwIG5ibG9ja3MgMHg3ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDI0Mik6IHRpZDogMTZhYTdjMGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQz KTogdGlkOiAxNmFhN2MwYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyNDQpOiB0aWQ6IDE2YWE3YzBiICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI5ICBsb25nZXN0OiAx OTQ5MjIyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NSk6IHRpZDogMTZhYTdjMGIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNDYpOiB0aWQ6IDE2YWE3YzBiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6IHRpZDogMTZhYTdj MGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjQ4KTogdGlkOiAxNmFhN2MwYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDkpOiB0aWQ6IDE2 YWE3YzBiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTApOiB0aWQ6IGFkZmI1NzgyICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDog YWRmYjU3ODIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRpZDogYWRmYjU3ODIgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDI1Myk6IHRpZDogYWRmYjU3ODIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg3ZDAwMCBuYmxvY2tzIDB4N2YgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgyNTQpOiB0aWQ6IGFkZmI1NzgyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NSk6 IHRpZDogYWRmYjU3ODIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMjU2KTogdGlkOiBhZGZiNTc4MiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyNyAgbG9uZ2VzdDogMTk0 OTIyMjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTcpOiB0aWQ6IGFkZmI1NzgyICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjU4KTogdGlkOiBhZGZiNTc4MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0aWQ6IGFkZmI1Nzgy ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI2MCk6IHRpZDogYWRmYjU3ODIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYxKTogdGlkOiBhZGZi NTc4MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYyKTogdGlkOiBmNWU4NWYzMiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IGY1 ZTg1ZjMyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6IGY1ZTg1ZjMyICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgy NjUpOiB0aWQ6IGY1ZTg1ZjMyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 N2U0MDAgbmJsb2NrcyAweDgwIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMjY2KTogdGlkOiBmNWU4NWYzMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjcpOiB0 aWQ6IGY1ZTg1ZjMyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDI2OCk6IHRpZDogZjVlODVmMzIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjYgIGxvbmdlc3Q6IDE5NDky MjI2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY5KTogdGlkOiBmNWU4NWYzMiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3 MCk6IHRpZDogZjVlODVmMzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlkOiBmNWU4NWYzMiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNzIpOiB0aWQ6IGY1ZTg1ZjMyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Myk6IHRpZDogZjVlODVm MzIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3NCk6IHRpZDogNmE4YjEzZmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiA2YThi MTNmZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjc2KTogdGlkOiA2YThiMTNmZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjc3 KTogdGlkOiA2YThiMTNmZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDdm ODAwIG5ibG9ja3MgMHg4MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDI3OCk6IHRpZDogNmE4YjEzZmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlk OiA2YThiMTNmZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyODApOiB0aWQ6IDZhOGIxM2ZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjI1ICBsb25nZXN0OiAxOTQ5MjIy NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MSk6IHRpZDogNmE4YjEzZmYgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODIp OiB0aWQ6IDZhOGIxM2ZmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Myk6IHRpZDogNmE4YjEzZmYgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo Mjg0KTogdGlkOiA2YThiMTNmZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODUpOiB0aWQ6IDZhOGIxM2Zm ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODYpOiB0aWQ6IGQwZTYzMjMzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogZDBlNjMy MzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDI4OCk6IHRpZDogZDBlNjMyMzMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI4OSk6 IHRpZDogZDBlNjMyMzMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4MGMw MCBuYmxvY2tzIDB4ODIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgy OTApOiB0aWQ6IGQwZTYzMjMzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDog ZDBlNjMyMzMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjkyKTogdGlkOiBkMGU2MzIzMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIyNCAgbG9uZ2VzdDogMTk0OTIyMjQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMpOiB0aWQ6IGQwZTYzMjMzICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk0KTog dGlkOiBkMGU2MzIzMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IGQwZTYzMjMzICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5 Nik6IHRpZDogZDBlNjMyMzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk3KTogdGlkOiBkMGU2MzIzMyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjk4KTogdGlkOiAxZmZiZWIzNSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDFmZmJlYjM1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMDApOiB0aWQ6IDFmZmJlYjM1ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDEpOiB0 aWQ6IDFmZmJlYjM1ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODIwMDAg bmJsb2NrcyAweDg0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzAy KTogdGlkOiAxZmZiZWIzNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IDFm ZmJlYjM1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMwNCk6IHRpZDogMWZmYmViMzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMjIgIGxvbmdlc3Q6IDE5NDkyMjIyCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiAxZmZiZWIzNSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwNik6IHRp ZDogMWZmYmViMzUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiAxZmZiZWIzNSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDgp OiB0aWQ6IDFmZmJlYjM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwOSk6IHRpZDogMWZmYmViMzUgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxMCk6IHRpZDogNTBmMzZkZGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiA1MGYzNmRkZiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzEyKTogdGlkOiA1MGYzNmRkZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzEzKTogdGlk OiA1MGYzNmRkZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDgzNDAwIG5i bG9ja3MgMHg4NSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMxNCk6 IHRpZDogNTBmMzZkZGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiA1MGYz NmRkZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzMTYpOiB0aWQ6IDUwZjM2ZGRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjIxICBsb25nZXN0OiAxOTQ5MjIyMQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogNTBmMzZkZGYgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTgpOiB0aWQ6 IDUwZjM2ZGRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogNTBmMzZkZGYgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIwKTog dGlkOiA1MGYzNmRkZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjEpOiB0aWQ6IDUwZjM2ZGRmICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjIpOiB0aWQ6IGFkOTVmNjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIzKTogdGlkOiBhZDk1ZjY3ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzMjQpOiB0aWQ6IGFkOTVmNjcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyNSk6IHRpZDogYWQ5 NWY2NyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg0ODAwIG5ibG9ja3Mg MHg4NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMyNik6IHRpZDog YWQ5NWY2NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjcpOiB0aWQ6IGFkOTVmNjcgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzI4KTogdGlkOiBhZDk1ZjY3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMjIwICBsb25nZXN0OiAxOTQ5MjIyMAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyOSk6IHRpZDogYWQ5NWY2NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzMCk6IHRpZDogYWQ5NWY2NyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMzEpOiB0aWQ6IGFkOTVmNjcgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzMyKTogdGlkOiBhZDk1ZjY3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogYWQ5NWY2NyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM0KTogdGlk OiAzYzNmNGM3MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDNjM2Y0YzcyICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzYpOiB0aWQ6 IDNjM2Y0YzcyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMzcpOiB0aWQ6IDNjM2Y0YzcyICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODVjMDAgbmJsb2NrcyAweDg3IGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzM4KTogdGlkOiAzYzNmNGM3MiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IDNjM2Y0YzcyICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0MCk6IHRp ZDogM2MzZjRjNzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIyMTkgIGxvbmdlc3Q6IDE5NDkyMjE5Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzQxKTogdGlkOiAzYzNmNGM3MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Mik6IHRpZDogM2MzZjRjNzIgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzQzKTogdGlkOiAzYzNmNGM3MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDQpOiB0aWQ6IDNjM2Y0YzcyICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0NSk6IHRpZDogM2MzZjRjNzIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nik6IHRpZDog NjZkMDRkMmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiA2NmQwNGQyZiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ4KTogdGlkOiA2 NmQwNGQyZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzQ5KTogdGlkOiA2NmQwNGQyZiAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDg3MDAwIG5ibG9ja3MgMHg4OSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM1MCk6IHRpZDogNjZkMDRkMmYgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlkOiA2NmQwNGQyZiAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTIpOiB0aWQ6 IDY2ZDA0ZDJmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMjE3ICBsb25nZXN0OiAxOTQ5MjIxNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1Myk6IHRpZDogNjZkMDRkMmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTQpOiB0aWQ6IDY2ZDA0ZDJmICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM1NSk6IHRpZDogNjZkMDRkMmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzU2KTogdGlkOiA2NmQwNGQyZiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNTcpOiB0aWQ6IDY2ZDA0ZDJmICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTgpOiB0aWQ6IDQz NmI5MTY4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogNDM2YjkxNjggIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MCk6IHRpZDogNDM2 YjkxNjggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2MSk6IHRpZDogNDM2YjkxNjggIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4ODQwMCBuYmxvY2tzIDB4OGEgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNjIpOiB0aWQ6IDQzNmI5MTY4ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Myk6IHRpZDogNDM2YjkxNjggIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzY0KTogdGlkOiA0 MzZiOTE2OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MjIxNiAgbG9uZ2VzdDogMTk0OTIyMTYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNjUpOiB0aWQ6IDQzNmI5MTY4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzY2KTogdGlkOiA0MzZiOTE2OCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNjcpOiB0aWQ6IDQzNmI5MTY4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2OCk6IHRpZDogNDM2YjkxNjggIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzY5KTogdGlkOiA0MzZiOTE2OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcwKTogdGlkOiA2YWNh YzEwZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDZhY2FjMTBlICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzIpOiB0aWQ6IDZhY2Fj MTBlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNzMpOiB0aWQ6IDZhY2FjMTBlICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ODk4MDAgbmJsb2NrcyAweDhiIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzc0KTogdGlkOiA2YWNhYzEwZSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNzUpOiB0aWQ6IDZhY2FjMTBlICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3Nik6IHRpZDogNmFj YWMxMGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTIyMTUgIGxvbmdlc3Q6IDE5NDkyMjE1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzc3KTogdGlkOiA2YWNhYzEwZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3OCk6IHRpZDogNmFjYWMxMGUgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzc5KTogdGlkOiA2YWNhYzEwZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODApOiB0aWQ6IDZhY2FjMTBlICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM4MSk6IHRpZDogNmFjYWMxMGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Mik6IHRpZDogYmNhOWIx MWQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzgzKTogdGlkOiBiY2E5YjExZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg0KTogdGlkOiBiY2E5YjEx ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzg1KTogdGlkOiBiY2E5YjExZCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDhhYzAwIG5ibG9ja3MgMHg4YyBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM4Nik6IHRpZDogYmNhOWIxMWQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzg3KTogdGlkOiBiY2E5YjExZCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzODgpOiB0aWQ6IGJjYTli MTFkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMjE0ICBsb25nZXN0OiAxOTQ5MjIxNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4 OSk6IHRpZDogYmNhOWIxMWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTApOiB0aWQ6IGJjYTliMTFkICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM5MSk6IHRpZDogYmNhOWIxMWQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzkyKTogdGlkOiBiY2E5YjExZCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTMpOiB0aWQ6IGJjYTliMTFkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTQpOiB0aWQ6IDE2MmMyZDUx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM5NSk6IHRpZDogMTYyYzJkNTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nik6IHRpZDogMTYyYzJkNTEg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM5Nyk6IHRpZDogMTYyYzJkNTEgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4YzAwMCBuYmxvY2tzIDB4OGUgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzOTgpOiB0aWQ6IDE2MmMyZDUxICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5OSk6IHRpZDogMTYyYzJkNTEgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDAwKTogdGlkOiAxNjJjMmQ1 MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MjIxMiAgbG9uZ2VzdDogMTk0OTIyMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDEp OiB0aWQ6IDE2MmMyZDUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDAyKTogdGlkOiAxNjJjMmQ1MSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MDMpOiB0aWQ6IDE2MmMyZDUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwNCk6IHRpZDogMTYyYzJkNTEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDA1KTogdGlkOiAxNjJjMmQ1MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA2KTogdGlkOiBiNGRjNDQ5OSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MDcpOiB0aWQ6IGI0ZGM0NDk5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDgpOiB0aWQ6IGI0ZGM0NDk5ICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg0MDkpOiB0aWQ6IGI0ZGM0NDk5ICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4OGQ0MDAgbmJsb2NrcyAweDhmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDEwKTogdGlkOiBiNGRjNDQ5OSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MTEpOiB0aWQ6IGI0ZGM0NDk5ICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxMik6IHRpZDogYjRkYzQ0OTkg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIyMTEgIGxvbmdlc3Q6IDE5NDkyMjExCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEzKTog dGlkOiBiNGRjNDQ5OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQxNCk6IHRpZDogYjRkYzQ0OTkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDE1KTogdGlkOiBiNGRjNDQ5OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTYpOiB0aWQ6IGI0ZGM0NDk5ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxNyk6IHRpZDogYjRkYzQ0OTkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOCk6IHRpZDogNWY0ZDc4NmYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDE5KTogdGlkOiA1ZjRkNzg2ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIwKTogdGlkOiA1ZjRkNzg2ZiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEwMjQKT3BlciAoNDIxKTogdGlkOiA1ZjRkNzg2ZiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDhlODAwIG5ibG9ja3MgMHg5MCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQyMik6IHRpZDogNWY0ZDc4NmYgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDIzKTogdGlkOiA1ZjRkNzg2ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjQpOiB0aWQ6IDVmNGQ3ODZmICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MjEwICBsb25nZXN0OiAxOTQ5MjIxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNSk6IHRp ZDogNWY0ZDc4NmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0MjYpOiB0aWQ6IDVmNGQ3ODZmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQy Nyk6IHRpZDogNWY0ZDc4NmYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDI4KTogdGlkOiA1ZjRkNzg2ZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MjkpOiB0aWQ6IDVmNGQ3ODZmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzApOiB0aWQ6IGJlYWM3YTM0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQzMSk6IHRpZDogYmVhYzdhMzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6IHRpZDogYmVhYzdhMzQgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMDI0Ck9wZXIgKDQzMyk6IHRpZDogYmVhYzdhMzQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg4ZmMwMCBuYmxvY2tzIDB4OTEgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICg0MzQpOiB0aWQ6IGJlYWM3YTM0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQzNSk6IHRpZDogYmVhYzdhMzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDM2KTogdGlkOiBiZWFjN2EzNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIw OSAgbG9uZ2VzdDogMTk0OTIyMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6 IGJlYWM3YTM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDM4KTogdGlkOiBiZWFjN2EzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Mzkp OiB0aWQ6IGJlYWM3YTM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ0MCk6IHRpZDogYmVhYzdhMzQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDQxKTogdGlkOiBiZWFjN2EzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQyKTogdGlkOiA5Mzg5YjA4ZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NDMpOiB0aWQ6IDkzODliMDhmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0aWQ6IDkzODliMDhmICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICg0NDUpOiB0aWQ6IDkzODliMDhmICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4OTEwMDAgbmJsb2NrcyAweDkzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoNDQ2KTogdGlkOiA5Mzg5YjA4ZiAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NDcpOiB0aWQ6IDkzODliMDhmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0OCk6IHRpZDogOTM4OWIwOGYgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDcg IGxvbmdlc3Q6IDE5NDkyMjA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ5KTogdGlkOiA5 Mzg5YjA4ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ1MCk6IHRpZDogOTM4OWIwOGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUxKTog dGlkOiA5Mzg5YjA4ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NTIpOiB0aWQ6IDkzODliMDhmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 Myk6IHRpZDogOTM4OWIwOGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NCk6IHRpZDogNDk1OWNkZmUgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDU1KTogdGlkOiA0OTU5Y2RmZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU2KTogdGlkOiA0OTU5Y2RmZSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoNDU3KTogdGlkOiA0OTU5Y2RmZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDkyNDAwIG5ibG9ja3MgMHg5NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDQ1OCk6IHRpZDogNDk1OWNkZmUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDU5KTogdGlkOiA0OTU5Y2RmZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NjApOiB0aWQ6IDQ5NTljZGZlICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjA2ICBs b25nZXN0OiAxOTQ5MjIwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MSk6IHRpZDogNDk1 OWNkZmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0NjIpOiB0aWQ6IDQ5NTljZGZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Myk6IHRp ZDogNDk1OWNkZmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDY0KTogdGlkOiA0OTU5Y2RmZSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjUp OiB0aWQ6IDQ5NTljZGZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjYpOiB0aWQ6IDFkY2U2ZGJmICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2 Nyk6IHRpZDogMWRjZTZkYmYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDogMWRjZTZkYmYgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQ2OSk6IHRpZDogMWRjZTZkYmYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg5MzgwMCBuYmxvY2tzIDB4OTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICg0NzApOiB0aWQ6IDFkY2U2ZGJmICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3MSk6IHRpZDogMWRjZTZkYmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDcyKTogdGlkOiAxZGNlNmRiZiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwNSAgbG9u Z2VzdDogMTk0OTIyMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzMpOiB0aWQ6IDFkY2U2 ZGJmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDc0KTogdGlkOiAxZGNlNmRiZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzUpOiB0aWQ6 IDFkY2U2ZGJmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ3Nik6IHRpZDogMWRjZTZkYmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc3KTog dGlkOiAxZGNlNmRiZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc4KTogdGlkOiAzNGYzZGY3OCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nzkp OiB0aWQ6IDM0ZjNkZjc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODApOiB0aWQ6IDM0ZjNkZjc4ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0ODEpOiB0aWQ6IDM0ZjNkZjc4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4OTRjMDAgbmJsb2NrcyAweDk2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoNDgyKTogdGlkOiAzNGYzZGY3OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0ODMpOiB0aWQ6IDM0ZjNkZjc4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4NCk6IHRpZDogMzRmM2RmNzggIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIyMDQgIGxvbmdl c3Q6IDE5NDkyMjA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1KTogdGlkOiAzNGYzZGY3 OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ4Nik6IHRpZDogMzRmM2RmNzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg3KTogdGlkOiAz NGYzZGY3OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAyCQlsc246IDEsMTk4 CXRhaWxfbHNuOiAxLDYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiAx MzQJCW51bSBvcHM6IDQ4OQp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1iOTJlZThlY2Fj NmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDM0ZjNkZjc4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiAzNGYzZGY3OCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMik6IHRp ZDogMWEwZThiYzYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMyk6IHRpZDogMWEwZThiYzYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQpOiB0aWQ6IDFh MGU4YmM2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg1KTogdGlkOiAxYTBlOGJjNiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDk2MDAwIG5ibG9ja3MgMHg5OCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDYpOiB0aWQ6IDFhMGU4YmM2ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IDFhMGU4YmM2ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDgpOiB0aWQ6IDFhMGU4YmM2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMjAyICBsb25nZXN0OiAxOTQ5MjIwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkpOiB0 aWQ6IDFhMGU4YmM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTApOiB0aWQ6IDFhMGU4YmM2ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx KTogdGlkOiAxYTBlOGJjNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogMWEwZThiYzYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTMpOiB0aWQ6IDFhMGU4YmM2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6IHRpZDogM2EwOTI4NjAgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTUpOiB0aWQ6IDNhMDkyODYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNik6IHRpZDogM2EwOTI4NjAgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDE3KTogdGlkOiAzYTA5Mjg2MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDk3NDAwIG5ibG9ja3MgMHg5OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDE4KTogdGlkOiAzYTA5Mjg2MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxOSk6IHRpZDogM2EwOTI4NjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjApOiB0aWQ6IDNhMDkyODYwICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMjAxICBsb25nZXN0 OiAxOTQ5MjIwMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTogdGlkOiAzYTA5Mjg2MCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDIyKTogdGlkOiAzYTA5Mjg2MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMyk6IHRpZDogM2EwOTI4 NjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjQpOiB0aWQ6IDNhMDkyODYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiAzYTA5 Mjg2MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IDExYWE0ZjcxICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3KTogdGlkOiAxMWFh NGY3MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjgpOiB0aWQ6IDExYWE0ZjcxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyOSk6 IHRpZDogMTFhYTRmNzEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5ODgw MCBuYmxvY2tzIDB4OWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgz MCk6IHRpZDogMTFhYTRmNzEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEpOiB0aWQ6IDEx YWE0ZjcxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDMyKTogdGlkOiAxMWFhNGY3MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjIwMCAgbG9uZ2VzdDogMTk0OTIyMDAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDogMTFhYTRmNzEgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNCk6IHRpZDog MTFhYTRmNzEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IDExYWE0ZjcxICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2KTogdGlk OiAxMWFhNGY3MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogMTFhYTRmNzEgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM4KTogdGlkOiA5NGVlZDExNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOSk6IHRpZDogOTRlZWQxMTYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQw KTogdGlkOiA5NGVlZDExNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDEpOiB0aWQ6IDk0ZWVkMTE2 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OTljMDAgbmJsb2NrcyAweDli IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDIpOiB0aWQ6IDk0ZWVk MTE2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiA5NGVlZDExNiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NCk6 IHRpZDogOTRlZWQxMTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTIxOTkgIGxvbmdlc3Q6IDE5NDkyMTk5Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDUpOiB0aWQ6IDk0ZWVkMTE2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYpOiB0aWQ6IDk0ZWVkMTE2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA5NGVlZDExNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogOTRlZWQxMTYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDkpOiB0aWQ6IDk0ZWVkMTE2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1MCk6IHRpZDogM2Fm ODQwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg1MSk6IHRpZDogM2FmODQwYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTIpOiB0aWQ6IDNhZjg0MGMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDUzKTogdGlkOiAzYWY4NDBjICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4OWIwMDAgbmJsb2NrcyAweDlkIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNTQpOiB0aWQ6IDNhZjg0MGMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNTUpOiB0aWQ6IDNhZjg0MGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTYpOiB0aWQ6IDNhZjg0MGMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTcg IGxvbmdlc3Q6IDE5NDkyMTk3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDNh Zjg0MGMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg1OCk6IHRpZDogM2FmODQwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDog M2FmODQwYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg2MCk6IHRpZDogM2FmODQwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2MSk6IHRpZDog M2FmODQwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6IDFlMWM0NDJiICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYzKTogdGlkOiAx ZTFjNDQyYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNjQpOiB0aWQ6IDFlMWM0NDJiICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2 NSk6IHRpZDogMWUxYzQ0MmIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg5 YzQwMCBuYmxvY2tzIDB4OWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICg2Nik6IHRpZDogMWUxYzQ0MmIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6 IDFlMWM0NDJiICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDY4KTogdGlkOiAxZTFjNDQyYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5NiAgbG9uZ2VzdDogMTk0OTIxOTYK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6IHRpZDogMWUxYzQ0MmIgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3MCk6IHRp ZDogMWUxYzQ0MmIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6IDFlMWM0NDJiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcyKTog dGlkOiAxZTFjNDQyYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogMWUxYzQ0MmIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDc0KTogdGlkOiAyYzI2ODNhMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3NSk6IHRpZDogMmMyNjgzYTMgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDc2KTogdGlkOiAyYzI2ODNhMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNzcpOiB0aWQ6IDJjMjY4 M2EzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4OWQ4MDAgbmJsb2NrcyAw eDlmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNzgpOiB0aWQ6IDJj MjY4M2EzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTogdGlkOiAyYzI2ODNhMyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4 MCk6IHRpZDogMmMyNjgzYTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxOTUgIGxvbmdlc3Q6IDE5NDkyMTk1Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoODEpOiB0aWQ6IDJjMjY4M2EzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODIpOiB0aWQ6IDJjMjY4M2EzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiAyYzI2ODNhMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4NCk6IHRpZDogMmMyNjgzYTMg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDJjMjY4M2EzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nik6IHRpZDog ZTc0NTJmOWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoODcpOiB0aWQ6IGU3NDUyZjlmICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OCk6IHRpZDogZTc0 NTJmOWYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDg5KTogdGlkOiBlNzQ1MmY5ZiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDllYzAwIG5ibG9ja3MgMHhhMCBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDkwKTogdGlkOiBlNzQ1MmY5ZiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDogZTc0NTJmOWYgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTIpOiB0aWQ6IGU3NDUy ZjlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkyMTk0ICBsb25nZXN0OiAxOTQ5MjE5NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkz KTogdGlkOiBlNzQ1MmY5ZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDk0KTogdGlkOiBlNzQ1MmY5ZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5NSk6IHRpZDogZTc0NTJmOWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IGU3NDUyZjlmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDk3KTogdGlkOiBlNzQ1MmY5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTgpOiB0aWQ6IDk2MDBkMTE5ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDk5KTogdGlkOiA5NjAwZDExOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAwKTogdGlkOiA5NjAwZDExOSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMTAxKTogdGlkOiA5NjAwZDExOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGEwMDAwIG5ibG9ja3MgMHhhMiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDEwMik6IHRpZDogOTYwMGQxMTkgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTAzKTogdGlkOiA5NjAwZDExOSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDQpOiB0aWQ6IDk2MDBkMTE5ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTky ICBsb25nZXN0OiAxOTQ5MjE5MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDog OTYwMGQxMTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IDk2MDBkMTE5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6 IHRpZDogOTYwMGQxMTkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiA5NjAwZDExOSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MDkpOiB0aWQ6IDk2MDBkMTE5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTApOiB0aWQ6IDc1YjZmNWVjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDExMSk6IHRpZDogNzViNmY1ZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMik6IHRpZDogNzViNmY1ZWMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDExMyk6IHRpZDogNzViNmY1ZWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhhMTQwMCBuYmxvY2tzIDB4YTMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgxMTQpOiB0aWQ6IDc1YjZmNWVjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDExNSk6IHRpZDogNzViNmY1ZWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTE2KTogdGlkOiA3NWI2ZjVlYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE5MSAg bG9uZ2VzdDogMTk0OTIxOTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDc1 YjZmNWVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTE4KTogdGlkOiA3NWI2ZjVlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0 aWQ6IDc1YjZmNWVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogNzViNmY1ZWMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIx KTogdGlkOiA3NWI2ZjVlYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIyKTogdGlkOiAzNzE5MjJlMSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MjMpOiB0aWQ6IDM3MTkyMmUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjQpOiB0aWQ6IDM3MTkyMmUxICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgxMjUpOiB0aWQ6IDM3MTkyMmUxICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4YTI4MDAgbmJsb2NrcyAweGE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMTI2KTogdGlkOiAzNzE5MjJlMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMjcpOiB0aWQ6IDM3MTkyMmUxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyOCk6IHRpZDogMzcxOTIyZTEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxOTAgIGxv bmdlc3Q6IDE5NDkyMTkwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI5KTogdGlkOiAzNzE5 MjJlMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDEzMCk6IHRpZDogMzcxOTIyZTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlk OiAzNzE5MjJlMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDM3MTkyMmUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMyk6 IHRpZDogMzcxOTIyZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNCk6IHRpZDogYjFkOGQ4OWMgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM1 KTogdGlkOiBiMWQ4ZDg5YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM2KTogdGlkOiBiMWQ4ZDg5YyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMTM3KTogdGlkOiBiMWQ4ZDg5YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGEzYzAwIG5ibG9ja3MgMHhhNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDEzOCk6IHRpZDogYjFkOGQ4OWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTM5KTogdGlkOiBiMWQ4ZDg5YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDApOiB0aWQ6IGIxZDhkODljICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg5ICBsb25n ZXN0OiAxOTQ5MjE4OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MSk6IHRpZDogYjFkOGQ4 OWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxNDIpOiB0aWQ6IGIxZDhkODljICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDog YjFkOGQ4OWMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTQ0KTogdGlkOiBiMWQ4ZDg5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDUpOiB0 aWQ6IGIxZDhkODljICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDYpOiB0aWQ6IDVkMzY2NGJjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nyk6 IHRpZDogNWQzNjY0YmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OCk6IHRpZDogNWQzNjY0YmMgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDE0OSk6IHRpZDogNWQzNjY0YmMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHhhNTAwMCBuYmxvY2tzIDB4YTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgxNTApOiB0aWQ6IDVkMzY2NGJjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE1MSk6IHRpZDogNWQzNjY0YmMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTUyKTogdGlkOiA1ZDM2NjRiYyAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NyAgbG9uZ2Vz dDogMTk0OTIxODcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDVkMzY2NGJj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTU0KTogdGlkOiA1ZDM2NjRiYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDVk MzY2NGJjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDE1Nik6IHRpZDogNWQzNjY0YmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3KTogdGlk OiA1ZDM2NjRiYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTU4KTogdGlkOiA5ZjQzN2ZmYyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTkpOiB0 aWQ6IDlmNDM3ZmZjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNjApOiB0aWQ6IDlmNDM3ZmZjICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApP cGVyICgxNjEpOiB0aWQ6IDlmNDM3ZmZjICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4YTY0MDAgbmJsb2NrcyAweGE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMTYyKTogdGlkOiA5ZjQzN2ZmYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NjMpOiB0aWQ6IDlmNDM3ZmZjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDE2NCk6IHRpZDogOWY0MzdmZmMgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODYgIGxvbmdlc3Q6 IDE5NDkyMTg2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY1KTogdGlkOiA5ZjQzN2ZmYyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE2Nik6IHRpZDogOWY0MzdmZmMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiA5ZjQz N2ZmYyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgxNjgpOiB0aWQ6IDlmNDM3ZmZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDog OWY0MzdmZmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE3MCk6IHRpZDogZjU1ODJmNjAgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcxKTogdGlk OiBmNTU4MmY2MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTcyKTogdGlkOiBmNTU4MmY2MCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3Bl ciAoMTczKTogdGlkOiBmNTU4MmY2MCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGE3ODAwIG5ibG9ja3MgMHhhOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDE3NCk6IHRpZDogZjU1ODJmNjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc1 KTogdGlkOiBmNTU4MmY2MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6IGY1NTgyZjYwICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTg1ICBsb25nZXN0OiAx OTQ5MjE4NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nyk6IHRpZDogZjU1ODJmNjAgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNzgpOiB0aWQ6IGY1NTgyZjYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogZjU1ODJm NjAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMTgwKTogdGlkOiBmNTU4MmY2MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6IGY1 NTgyZjYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxODIpOiB0aWQ6IGYwNTA0NmQyICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Myk6IHRpZDog ZjA1MDQ2ZDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE4NCk6IHRpZDogZjA1MDQ2ZDIgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIg KDE4NSk6IHRpZDogZjA1MDQ2ZDIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHhhOGMwMCBuYmxvY2tzIDB4YWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgxODYpOiB0aWQ6IGYwNTA0NmQyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nyk6 IHRpZDogZjA1MDQ2ZDIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTg4KTogdGlkOiBmMDUwNDZkMiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4NCAgbG9uZ2VzdDogMTk0 OTIxODQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODkpOiB0aWQ6IGYwNTA0NmQyICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTkwKTogdGlkOiBmMDUwNDZkMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IGYwNTA0NmQy ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE5Mik6IHRpZDogZjA1MDQ2ZDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlkOiBmMDUw NDZkMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTk0KTogdGlkOiBmYzdhNWVlYSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTUpOiB0aWQ6IGZj N2E1ZWVhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxOTYpOiB0aWQ6IGZjN2E1ZWVhICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgx OTcpOiB0aWQ6IGZjN2E1ZWVhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 YWEwMDAgbmJsb2NrcyAweGFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMTk4KTogdGlkOiBmYzdhNWVlYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTkpOiB0 aWQ6IGZjN2E1ZWVhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDIwMCk6IHRpZDogZmM3YTVlZWEgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxODIgIGxvbmdlc3Q6IDE5NDky MTgyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAxKTogdGlkOiBmYzdhNWVlYSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIw Mik6IHRpZDogZmM3YTVlZWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiBmYzdhNWVlYSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyMDQpOiB0aWQ6IGZjN2E1ZWVhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogZmM3YTVl ZWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIwNik6IHRpZDogYTI1MTI1ZDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA3KTogdGlkOiBhMjUx MjVkMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMjA4KTogdGlkOiBhMjUxMjVkMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjA5 KTogdGlkOiBhMjUxMjVkMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFi NDAwIG5ibG9ja3MgMHhhZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDIxMCk6IHRpZDogYTI1MTI1ZDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjExKTogdGlk OiBhMjUxMjVkMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgyMTIpOiB0aWQ6IGEyNTEyNWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTgxICBsb25nZXN0OiAxOTQ5MjE4 MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMyk6IHRpZDogYTI1MTI1ZDAgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTQp OiB0aWQ6IGEyNTEyNWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNSk6IHRpZDogYTI1MTI1ZDAgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjE2KTogdGlkOiBhMjUxMjVkMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IGEyNTEyNWQw ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMTgpOiB0aWQ6IDEyZDM4MzgwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOSk6IHRpZDogMTJkMzgz ODAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIyMCk6IHRpZDogMTJkMzgzODAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyMSk6 IHRpZDogMTJkMzgzODAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhhYzgw MCBuYmxvY2tzIDB4YWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgy MjIpOiB0aWQ6IDEyZDM4MzgwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMyk6IHRpZDog MTJkMzgzODAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjI0KTogdGlkOiAxMmQzODM4MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE4MCAgbG9uZ2VzdDogMTk0OTIxODAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjUpOiB0aWQ6IDEyZDM4MzgwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI2KTog dGlkOiAxMmQzODM4MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IDEyZDM4MzgwICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIy OCk6IHRpZDogMTJkMzgzODAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiAxMmQzODM4MCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjMwKTogdGlkOiAxMmE0YzY4OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEpOiB0aWQ6IDEyYTRjNjg5 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMzIpOiB0aWQ6IDEyYTRjNjg5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzMpOiB0 aWQ6IDEyYTRjNjg5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YWRjMDAg bmJsb2NrcyAweGFmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjM0 KTogdGlkOiAxMmE0YzY4OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0aWQ6IDEy YTRjNjg5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDIzNik6IHRpZDogMTJhNGM2ODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzkgIGxvbmdlc3Q6IDE5NDkyMTc5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiAxMmE0YzY4OSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzOCk6IHRp ZDogMTJhNGM2ODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5KTogdGlkOiAxMmE0YzY4OSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDAp OiB0aWQ6IDEyYTRjNjg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogMTJhNGM2ODkgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI0Mik6IHRpZDogZDQwMjYxY2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQzKTogdGlkOiBkNDAyNjFjYyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjQ0KTogdGlkOiBkNDAyNjFjYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ1KTogdGlk OiBkNDAyNjFjYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGFmMDAwIG5i bG9ja3MgMHhiMSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI0Nik6 IHRpZDogZDQwMjYxY2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlkOiBkNDAy NjFjYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgyNDgpOiB0aWQ6IGQ0MDI2MWNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc3ICBsb25nZXN0OiAxOTQ5MjE3NwotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogZDQwMjYxY2MgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTApOiB0aWQ6 IGQ0MDI2MWNjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6IHRpZDogZDQwMjYxY2MgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjUyKTog dGlkOiBkNDAyNjFjYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IGQ0MDI2MWNjICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNTQpOiB0aWQ6IGQ1ODRkOTEyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NSk6IHRpZDogZDU4NGQ5MTIgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI1Nik6IHRpZDogZDU4NGQ5MTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI1Nyk6IHRpZDog ZDU4NGQ5MTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiMDQwMCBuYmxv Y2tzIDB4YjIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNTgpOiB0 aWQ6IGQ1ODRkOTEyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogZDU4NGQ5 MTIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMjYwKTogdGlkOiBkNTg0ZDkxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3NiAgbG9uZ2VzdDogMTk0OTIxNzYKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNjEpOiB0aWQ6IGQ1ODRkOTEyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjYyKTogdGlkOiBk NTg0ZDkxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0aWQ6IGQ1ODRkOTEyICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2NCk6IHRp ZDogZDU4NGQ5MTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiBkNTg0ZDkxMiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjY2KTogdGlkOiA1MWViZTY3OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjcpOiB0aWQ6IDUxZWJlNjc5ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNjgpOiB0aWQ6IDUxZWJlNjc5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNjkpOiB0aWQ6IDUx ZWJlNjc5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjE4MDAgbmJsb2Nr cyAweGIzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjcwKTogdGlk OiA1MWViZTY3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IDUxZWJlNjc5 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDI3Mik6IHRpZDogNTFlYmU2NzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNzUgIGxvbmdlc3Q6IDE5NDkyMTc1Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjczKTogdGlkOiA1MWViZTY3OSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3NCk6IHRpZDogNTFl YmU2NzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlkOiA1MWViZTY3OSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0aWQ6 IDUxZWJlNjc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogNTFlYmU2NzkgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI3OCk6IHRpZDogNWIwYWI2MmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc5KTogdGlkOiA1YjBhYjYyZSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjgwKTogdGlkOiA1YjBhYjYyZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjgxKTogdGlkOiA1YjBh YjYyZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGIyYzAwIG5ibG9ja3Mg MHhiNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI4Mik6IHRpZDog NWIwYWI2MmUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiA1YjBhYjYyZSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgyODQpOiB0aWQ6IDViMGFiNjJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTc0ICBsb25nZXN0OiAxOTQ5MjE3NAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogNWIwYWI2MmUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODYpOiB0aWQ6IDViMGFi NjJlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogNWIwYWI2MmUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlkOiA1 YjBhYjYyZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IDViMGFiNjJlICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy OTApOiB0aWQ6IDc0NzY1MzYxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5MSk6IHRpZDogNzQ3NjUzNjEgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5 Mik6IHRpZDogNzQ3NjUzNjEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Myk6IHRpZDogNzQ3NjUz NjEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiNDAwMCBuYmxvY2tzIDB4 YjYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyOTQpOiB0aWQ6IDc0 NzY1MzYxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogNzQ3NjUzNjEgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo Mjk2KTogdGlkOiA3NDc2NTM2MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE3MiAgbG9uZ2VzdDogMTk0OTIxNzIKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IDc0NzY1MzYxICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjk4KTogdGlkOiA3NDc2NTM2 MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDc0NzY1MzYxICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDogNzQ3 NjUzNjEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiA3NDc2NTM2MSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAy KTogdGlkOiBhNmE1ODhjOCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDMpOiB0aWQ6IGE2YTU4OGM4ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDQp OiB0aWQ6IGE2YTU4OGM4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDUpOiB0aWQ6IGE2YTU4OGM4 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjU0MDAgbmJsb2NrcyAweGI3 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzA2KTogdGlkOiBhNmE1 ODhjOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IGE2YTU4OGM4ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMw OCk6IHRpZDogYTZhNTg4YzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTIxNzEgIGxvbmdlc3Q6IDE5NDkyMTcxCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzA5KTogdGlkOiBhNmE1ODhjOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxMCk6IHRpZDogYTZhNTg4Yzgg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBhNmE1ODhjOCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IGE2YTU4 OGM4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogYTZhNTg4YzggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNCk6 IHRpZDogOWQyMWU3YTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE1KTogdGlkOiA5ZDIxZTdhNiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE2KTog dGlkOiA5ZDIxZTdhNiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzE3KTogdGlkOiA5ZDIxZTdhNiAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGI2ODAwIG5ibG9ja3MgMHhiOCBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMxOCk6IHRpZDogOWQyMWU3 YTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiA5ZDIxZTdhNiAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjAp OiB0aWQ6IDlkMjFlN2E2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTcwICBsb25nZXN0OiAxOTQ5MjE3MAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMyMSk6IHRpZDogOWQyMWU3YTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMjIpOiB0aWQ6IDlkMjFlN2E2ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogOWQyMWU3YTYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiA5ZDIxZTdh NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDlkMjFlN2E2ICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjYpOiB0 aWQ6IDQzNmY4NzkyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNyk6IHRpZDogNDM2Zjg3OTIgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyOCk6IHRp ZDogNDM2Zjg3OTIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDMyOSk6IHRpZDogNDM2Zjg3OTIgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhiN2MwMCBuYmxvY2tzIDB4YjkgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMzApOiB0aWQ6IDQzNmY4Nzky ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogNDM2Zjg3OTIgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzMyKTog dGlkOiA0MzZmODc5MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MjE2OSAgbG9uZ2VzdDogMTk0OTIxNjkKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMzMpOiB0aWQ6IDQzNmY4NzkyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzM0KTogdGlkOiA0MzZmODc5MiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDQzNmY4NzkyICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogNDM2Zjg3OTIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzM3KTogdGlkOiA0MzZmODc5MiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM4KTogdGlk OiAyNTAwY2U2ZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMzkpOiB0aWQ6IDI1MDBjZTZlICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDApOiB0aWQ6 IDI1MDBjZTZlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzNDEpOiB0aWQ6IDI1MDBjZTZlICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4YjkwMDAgbmJsb2NrcyAweGJiIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzQyKTogdGlkOiAyNTAwY2U2ZSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IDI1MDBjZTZlICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0NCk6IHRp ZDogMjUwMGNlNmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxNjcgIGxvbmdlc3Q6IDE5NDkyMTY3Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzQ1KTogdGlkOiAyNTAwY2U2ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0Nik6IHRpZDogMjUwMGNlNmUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzQ3KTogdGlkOiAyNTAwY2U2ZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IDI1MDBjZTZlICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM0OSk6IHRpZDogMjUwMGNlNmUgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1MCk6IHRpZDog YWRiNWZlMzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzUxKTogdGlkOiBhZGI1ZmUzMCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUyKTogdGlkOiBh ZGI1ZmUzMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMzUzKTogdGlkOiBhZGI1ZmUzMCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJhNDAwIG5ibG9ja3MgMHhiYyBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM1NCk6IHRpZDogYWRiNWZlMzAgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiBhZGI1ZmUzMCAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTYpOiB0aWQ6 IGFkYjVmZTMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTY2ICBsb25nZXN0OiAxOTQ5MjE2NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM1Nyk6IHRpZDogYWRiNWZlMzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTgpOiB0aWQ6IGFkYjVmZTMwICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM1OSk6IHRpZDogYWRiNWZlMzAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiBhZGI1ZmUzMCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNjEpOiB0aWQ6IGFkYjVmZTMwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjIpOiB0aWQ6IGQ2 YWI4OTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzYzKTogdGlkOiBkNmFiODkzICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjQpOiB0aWQ6IGQ2YWI4 OTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDM2NSk6IHRpZDogZDZhYjg5MyAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGJiODAwIG5ibG9ja3MgMHhiZCBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM2Nik6IHRpZDogZDZhYjg5MyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IGQ2YWI4OTMgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzY4KTogdGlkOiBkNmFiODkz ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTY1ICBsb25nZXN0OiAxOTQ5MjE2NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6 IHRpZDogZDZhYjg5MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDM3MCk6IHRpZDogZDZhYjg5MyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzEpOiB0aWQ6IGQ2YWI4OTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMzcyKTogdGlkOiBkNmFiODkzICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM3Myk6IHRpZDogZDZhYjg5MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc0KTogdGlkOiBhYjNkYjZhMCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzNzUpOiB0aWQ6IGFiM2RiNmEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzYpOiB0aWQ6IGFiM2RiNmEwICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTAyNApPcGVyICgzNzcpOiB0aWQ6IGFiM2RiNmEwICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4YmNjMDAgbmJsb2NrcyAweGJlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMzc4KTogdGlkOiBhYjNkYjZhMCAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNzkpOiB0aWQ6IGFiM2RiNmEwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4MCk6IHRpZDogYWIzZGI2YTAgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjQg IGxvbmdlc3Q6IDE5NDkyMTY0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiBh YjNkYjZhMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDM4Mik6IHRpZDogYWIzZGI2YTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTog dGlkOiBhYjNkYjZhMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IGFiM2RiNmEwICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4 NSk6IHRpZDogYWIzZGI2YTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nik6IHRpZDogNGUwZmNiNmUgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzg3KTogdGlkOiA0ZTBmY2I2ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg4KTogdGlkOiA0ZTBmY2I2ZSAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMzg5KTogdGlkOiA0ZTBmY2I2ZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGJlMDAwIG5ibG9ja3MgMHhjMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDM5MCk6IHRpZDogNGUwZmNiNmUgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzkxKTogdGlkOiA0ZTBmY2I2ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTIpOiB0aWQ6IDRlMGZjYjZlICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTYyICBs b25nZXN0OiAxOTQ5MjE2MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogNGUw ZmNiNmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgzOTQpOiB0aWQ6IDRlMGZjYjZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRp ZDogNGUwZmNiNmUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiA0ZTBmY2I2ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTcp OiB0aWQ6IDRlMGZjYjZlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTgpOiB0aWQ6IGZmYTc3NzVjICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5 OSk6IHRpZDogZmZhNzc3NWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwMCk6IHRpZDogZmZhNzc3NWMgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDQwMSk6IHRpZDogZmZhNzc3NWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhiZjQwMCBuYmxvY2tzIDB4YzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICg0MDIpOiB0aWQ6IGZmYTc3NzVjICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQwMyk6IHRpZDogZmZhNzc3NWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDA0KTogdGlkOiBmZmE3Nzc1YyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE2MSAgbG9u Z2VzdDogMTk0OTIxNjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDUpOiB0aWQ6IGZmYTc3 NzVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDA2KTogdGlkOiBmZmE3Nzc1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6 IGZmYTc3NzVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQwOCk6IHRpZDogZmZhNzc3NWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5KTog dGlkOiBmZmE3Nzc1YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDEwKTogdGlkOiA5NzczMmVjMCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTEp OiB0aWQ6IDk3NzMyZWMwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTIpOiB0aWQ6IDk3NzMyZWMwICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICg0MTMpOiB0aWQ6IDk3NzMyZWMwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4YzA4MDAgbmJsb2NrcyAweGMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoNDE0KTogdGlkOiA5NzczMmVjMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MTUpOiB0aWQ6IDk3NzMyZWMwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQxNik6IHRpZDogOTc3MzJlYzAgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNjAgIGxvbmdl c3Q6IDE5NDkyMTYwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE3KTogdGlkOiA5NzczMmVj MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQxOCk6IHRpZDogOTc3MzJlYzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA5 NzczMmVjMCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg0MjApOiB0aWQ6IDk3NzMyZWMwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRp ZDogOTc3MzJlYzAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMik6IHRpZDogZmEyOTE4MjggIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIzKTog dGlkOiBmYTI5MTgyOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoNDI0KTogdGlkOiBmYTI5MTgyOCAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoNDI1KTogdGlkOiBmYTI5MTgyOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGMxYzAwIG5ibG9ja3MgMHhjMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDQyNik6IHRpZDogZmEyOTE4MjggIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDI3KTogdGlkOiBmYTI5MTgyOCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjgpOiB0aWQ6IGZhMjkxODI4ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU5ICBsb25nZXN0 OiAxOTQ5MjE1OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6IHRpZDogZmEyOTE4Mjgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0MzApOiB0aWQ6IGZhMjkxODI4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogZmEy OTE4MjggIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNDMyKTogdGlkOiBmYTI5MTgyOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6 IGZhMjkxODI4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MzQpOiB0aWQ6IDY1ZTIyNjliICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNSk6IHRp ZDogNjVlMjI2OWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDQzNik6IHRpZDogNjVlMjI2OWIgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQzNyk6IHRpZDogNjVlMjI2OWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhjMzAwMCBuYmxvY2tzIDB4YzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MApPcGVyICg0MzgpOiB0aWQ6IDY1ZTIyNjliICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQz OSk6IHRpZDogNjVlMjI2OWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNDQwKTogdGlkOiA2NWUyMjY5YiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NyAgbG9uZ2VzdDog MTk0OTIxNTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0aWQ6IDY1ZTIyNjliICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDQyKTogdGlkOiA2NWUyMjY5YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IDY1ZTIy NjliICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDQ0NCk6IHRpZDogNjVlMjI2OWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiA2 NWUyMjY5YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDQ2KTogdGlkOiAxOGQ0YmViOSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDcpOiB0aWQ6 IDE4ZDRiZWI5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0NDgpOiB0aWQ6IDE4ZDRiZWI5ICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICg0NDkpOiB0aWQ6IDE4ZDRiZWI5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4YzQ0MDAgbmJsb2NrcyAweGM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoNDUwKTogdGlkOiAxOGQ0YmViOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTEp OiB0aWQ6IDE4ZDRiZWI5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDQ1Mik6IHRpZDogMThkNGJlYjkgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTYgIGxvbmdlc3Q6IDE5 NDkyMTU2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUzKTogdGlkOiAxOGQ0YmViOSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQ1NCk6IHRpZDogMThkNGJlYjkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiAxOGQ0YmVi OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg0NTYpOiB0aWQ6IDE4ZDRiZWI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDogMThk NGJlYjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ1OCk6IHRpZDogOGYyOGY4OGEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU5KTogdGlkOiA4 ZjI4Zjg4YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDYwKTogdGlkOiA4ZjI4Zjg4YSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo NDYxKTogdGlkOiA4ZjI4Zjg4YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGM1ODAwIG5ibG9ja3MgMHhjNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDQ2Mik6IHRpZDogOGYyOGY4OGEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYzKTog dGlkOiA4ZjI4Zjg4YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICg0NjQpOiB0aWQ6IDhmMjhmODhhICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTU1ICBsb25nZXN0OiAxOTQ5 MjE1NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDogOGYyOGY4OGEgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0 NjYpOiB0aWQ6IDhmMjhmODhhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogOGYyOGY4OGEg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNDY4KTogdGlkOiA4ZjI4Zjg4YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IDhmMjhm ODhhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NzApOiB0aWQ6IDgwMWM4MWFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MSk6IHRpZDogODAx YzgxYWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ3Mik6IHRpZDogODAxYzgxYWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3 Myk6IHRpZDogODAxYzgxYWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhj NmMwMCBuYmxvY2tzIDB4YzggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICg0NzQpOiB0aWQ6IDgwMWM4MWFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NSk6IHRp ZDogODAxYzgxYWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoNDc2KTogdGlkOiA4MDFjODFhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE1NCAgbG9uZ2VzdDogMTk0OTIx NTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IDgwMWM4MWFiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDc4 KTogdGlkOiA4MDFjODFhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDgwMWM4MWFiICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDQ4MCk6IHRpZDogODAxYzgxYWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiA4MDFjODFh YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDgyKTogdGlkOiBkM2QzNDUzYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODMpOiB0aWQ6IGQzZDM0 NTNhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0ODQpOiB0aWQ6IGQzZDM0NTNhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0ODUp OiB0aWQ6IGQzZDM0NTNhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Yzgw MDAgbmJsb2NrcyAweGNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo NDg2KTogdGlkOiBkM2QzNDUzYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcpOiB0aWQ6 IGQzZDM0NTNhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDQ4OCk6IHRpZDogZDNkMzQ1M2EgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTIgIGxvbmdlc3Q6IDE5NDkyMTUy Cgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSwyNjIJdGFp bF9sc246IDEsNgpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJcHJldiBvZmZzZXQ6IDE5OAkJ bnVtIG9wczogNDg5CnV1aWQ6IGIwYjVjY2U5LTE3MGQtNDY0ZC1iZmZmLWI5MmVlOGVjYWM2YyAg IGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMCk6IHRpZDogZDNkMzQ1M2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxKTogdGlkOiBkM2QzNDUzYSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyKTogdGlkOiBkM2QzNDUzYSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzKTogdGlkOiBkM2QzNDUzYSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0KTogdGlkOiBkM2QzNDUzYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNSk6IHRpZDogMjU5MmY3 YWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNik6IHRpZDogMjU5MmY3YWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcpOiB0aWQ6IDI1OTJmN2FlICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTAyNApPcGVyICg4KTogdGlkOiAyNTkyZjdhZSAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweGM5NDAwIG5ibG9ja3MgMHhjYiBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDkpOiB0aWQ6IDI1OTJmN2FlICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwKTogdGlkOiAyNTkyZjdhZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMSk6IHRpZDogMjU5MmY3YWUgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxNTEg IGxvbmdlc3Q6IDE5NDkyMTUxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIpOiB0aWQ6IDI1 OTJmN2FlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMTMpOiB0aWQ6IDI1OTJmN2FlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0KTogdGlk OiAyNTkyZjdhZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxNSk6IHRpZDogMjU5MmY3YWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYpOiB0 aWQ6IDI1OTJmN2FlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDogODYzN2JjNWMgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgpOiB0 aWQ6IDg2MzdiYzVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxOSk6IHRpZDogODYzN2JjNWMgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDIwKTogdGlkOiA4NjM3YmM1YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGNhODAwIG5ibG9ja3MgMHhjYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDIxKTogdGlkOiA4NjM3YmM1YyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMik6 IHRpZDogODYzN2JjNWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMjMpOiB0aWQ6IDg2MzdiYzVjICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTUwICBsb25nZXN0OiAxOTQ5 MjE1MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0KTogdGlkOiA4NjM3YmM1YyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1 KTogdGlkOiA4NjM3YmM1YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNik6IHRpZDogODYzN2JjNWMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MjcpOiB0aWQ6IDg2MzdiYzVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4KTogdGlkOiA4NjM3YmM1YyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjkpOiB0aWQ6IDUxM2VlM2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDUxM2VlM2QgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMxKTogdGlkOiA1MTNlZTNkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgzMik6IHRpZDogNTEz ZWUzZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGNiYzAwIG5ibG9ja3Mg MHhjZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMzKTogdGlkOiA1 MTNlZTNkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0KTogdGlkOiA1MTNlZTNkICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM1 KTogdGlkOiA1MTNlZTNkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkyMTQ5ICBsb25nZXN0OiAxOTQ5MjE0OQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM2KTogdGlkOiA1MTNlZTNkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcpOiB0aWQ6IDUxM2VlM2QgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzgpOiB0aWQ6IDUxM2VlM2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzkpOiB0aWQ6IDUxM2VlM2QgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDApOiB0aWQ6IDUxM2VlM2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiAzNDU2ZjM1 YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0Mik6IHRpZDogMzQ1NmYzNWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzKTogdGlkOiAzNDU2ZjM1YyAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNDQpOiB0aWQ6IDM0NTZmMzVjICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4Y2QwMDAgbmJsb2NrcyAweGNmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDUpOiB0aWQ6IDM0NTZmMzVjICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ2KTogdGlkOiAzNDU2ZjM1YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0Nyk6IHRpZDogMzQ1NmYzNWMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx NDcgIGxvbmdlc3Q6IDE5NDkyMTQ3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgpOiB0aWQ6 IDM0NTZmMzVjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDkpOiB0aWQ6IDM0NTZmMzVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTog dGlkOiAzNDU2ZjM1YyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg1MSk6IHRpZDogMzQ1NmYzNWMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTIp OiB0aWQ6IDM0NTZmMzVjICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogNDM3YzYzYTggIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTQp OiB0aWQ6IDQzN2M2M2E4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NSk6IHRpZDogNDM3YzYzYTggIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0 Ck9wZXIgKDU2KTogdGlkOiA0MzdjNjNhOCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGNlNDAwIG5ibG9ja3MgMHhkMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDU3KTogdGlkOiA0MzdjNjNhOCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1 OCk6IHRpZDogNDM3YzYzYTggIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoNTkpOiB0aWQ6IDQzN2M2M2E4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQ2ICBsb25nZXN0OiAx OTQ5MjE0NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYwKTogdGlkOiA0MzdjNjNhOCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDYxKTogdGlkOiA0MzdjNjNhOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Mik6IHRpZDogNDM3YzYzYTgg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNjMpOiB0aWQ6IDQzN2M2M2E4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY0KTogdGlkOiA0MzdjNjNh OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNjUpOiB0aWQ6IDU5Zjc4NDkxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY2KTogdGlkOiA1OWY3ODQ5 MSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNjcpOiB0aWQ6IDU5Zjc4NDkxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg2OCk6IHRp ZDogNTlmNzg0OTEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhjZjgwMCBu YmxvY2tzIDB4ZDEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg2OSk6 IHRpZDogNTlmNzg0OTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzApOiB0aWQ6IDU5Zjc4 NDkxICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDcxKTogdGlkOiA1OWY3ODQ5MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0NSAgbG9uZ2VzdDogMTk0OTIxNDUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg3Mik6IHRpZDogNTlmNzg0OTEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3Myk6IHRpZDogNTlm Nzg0OTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzQpOiB0aWQ6IDU5Zjc4NDkxICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDc1KTogdGlkOiA1 OWY3ODQ5MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nik6IHRpZDogNTlmNzg0OTEgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3 KTogdGlkOiA3NDA5ZDYwMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OCk6IHRpZDogNzQwOWQ2MDMgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc5KTog dGlkOiA3NDA5ZDYwMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoODApOiB0aWQ6IDc0MDlkNjAzICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZDBjMDAgbmJsb2NrcyAweGQyIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODEpOiB0aWQ6IDc0MDlkNjAz ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgyKTogdGlkOiA3NDA5ZDYwMyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4Myk6IHRp ZDogNzQwOWQ2MDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTIxNDQgIGxvbmdlc3Q6IDE5NDkyMTQ0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoODQpOiB0aWQ6IDc0MDlkNjAzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODUpOiB0aWQ6IDc0MDlkNjAzICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDg2KTogdGlkOiA3NDA5ZDYwMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4Nyk6IHRpZDogNzQwOWQ2MDMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoODgpOiB0aWQ6IDc0MDlkNjAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogMjM2MmQ4 ZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoOTApOiB0aWQ6IDIzNjJkOGUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5MSk6IHRpZDogMjM2MmQ4ZTEg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDkyKTogdGlkOiAyMzYyZDhlMSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGQyMDAwIG5ibG9ja3MgMHhkNCBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDkzKTogdGlkOiAyMzYyZDhlMSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5NCk6IHRpZDogMjM2MmQ4ZTEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTUpOiB0aWQ6IDIzNjJkOGUxICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDky MTQyICBsb25nZXN0OiAxOTQ5MjE0MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDk2KTogdGlk OiAyMzYyZDhlMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDk3KTogdGlkOiAyMzYyZDhlMSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5OCk6 IHRpZDogMjM2MmQ4ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoOTkpOiB0aWQ6IDIzNjJkOGUxICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEw MCk6IHRpZDogMjM2MmQ4ZTEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMSk6IHRpZDogYzlkNWNjMTcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTAyKTogdGlkOiBjOWQ1Y2MxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAzKTogdGlkOiBjOWQ1Y2MxNyAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEwMjQKT3BlciAoMTA0KTogdGlkOiBjOWQ1Y2MxNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweGQzNDAwIG5ibG9ja3MgMHhkNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDEwNSk6IHRpZDogYzlkNWNjMTcgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTA2KTogdGlkOiBjOWQ1Y2MxNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMDcpOiB0aWQ6IGM5ZDVjYzE3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTQxICBs b25nZXN0OiAxOTQ5MjE0MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOCk6IHRpZDogYzlk NWNjMTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxMDkpOiB0aWQ6IGM5ZDVjYzE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExMCk6IHRp ZDogYzlkNWNjMTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTExKTogdGlkOiBjOWQ1Y2MxNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTIp OiB0aWQ6IGM5ZDVjYzE3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTMpOiB0aWQ6IDg3ZDgwYTcyICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEx NCk6IHRpZDogODdkODBhNzIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNSk6IHRpZDogODdkODBhNzIgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MDI0Ck9wZXIgKDExNik6IHRpZDogODdkODBhNzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHhkNDgwMCBuYmxvY2tzIDB4ZDYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICgxMTcpOiB0aWQ6IDg3ZDgwYTcyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDExOCk6IHRpZDogODdkODBhNzIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTE5KTogdGlkOiA4N2Q4MGE3MiAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjE0MCAgbG9u Z2VzdDogMTk0OTIxNDAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjApOiB0aWQ6IDg3ZDgw YTcyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTIxKTogdGlkOiA4N2Q4MGE3MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjIpOiB0aWQ6 IDg3ZDgwYTcyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDEyMyk6IHRpZDogODdkODBhNzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI0KTog dGlkOiA4N2Q4MGE3MiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI1KTogdGlkOiBjNmZkMGZjOSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjYp OiB0aWQ6IGM2ZmQwZmM5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjcpOiB0aWQ6IGM2ZmQwZmM5ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAy NApPcGVyICgxMjgpOiB0aWQ6IGM2ZmQwZmM5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4ZDVjMDAgbmJsb2NrcyAweGQ3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMTI5KTogdGlkOiBjNmZkMGZjOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMzApOiB0aWQ6IGM2ZmQwZmM5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEzMSk6IHRpZDogYzZmZDBmYzkgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzkgIGxvbmdl c3Q6IDE5NDkyMTM5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMyKTogdGlkOiBjNmZkMGZj OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDEzMyk6IHRpZDogYzZmZDBmYzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM0KTogdGlkOiBj NmZkMGZjOSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxMzUpOiB0aWQ6IGM2ZmQwZmM5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNik6IHRp ZDogYzZmZDBmYzkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNyk6IHRpZDogNTU5N2I2ZWYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTM4KTog dGlkOiA1NTk3YjZlZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTM5KTogdGlkOiA1NTk3YjZlZiAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQK T3BlciAoMTQwKTogdGlkOiA1NTk3YjZlZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweGQ3MDAwIG5ibG9ja3MgMHhkOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDE0MSk6IHRpZDogNTU5N2I2ZWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTQyKTogdGlkOiA1NTk3YjZlZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNDMpOiB0aWQ6IDU1OTdiNmVmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM3ICBsb25nZXN0 OiAxOTQ5MjEzNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogNTU5N2I2ZWYg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNDUpOiB0aWQ6IDU1OTdiNmVmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0Nik6IHRpZDogNTU5 N2I2ZWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTQ3KTogdGlkOiA1NTk3YjZlZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDgpOiB0aWQ6 IDU1OTdiNmVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNDkpOiB0aWQ6IDQ0NjBjNGMwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1MCk6IHRp ZDogNDQ2MGM0YzAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE1MSk6IHRpZDogNDQ2MGM0YzAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDE1Mik6IHRpZDogNDQ2MGM0YzAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHhkODQwMCBuYmxvY2tzIDB4ZGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MApPcGVyICgxNTMpOiB0aWQ6IDQ0NjBjNGMwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 NCk6IHRpZDogNDQ2MGM0YzAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTU1KTogdGlkOiA0NDYwYzRjMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzNiAgbG9uZ2VzdDog MTk0OTIxMzYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTYpOiB0aWQ6IDQ0NjBjNGMwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTU3KTogdGlkOiA0NDYwYzRjMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTgpOiB0aWQ6IDQ0NjBj NGMwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE1OSk6IHRpZDogNDQ2MGM0YzAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYwKTogdGlkOiA0 NDYwYzRjMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTYxKTogdGlkOiA1YzhiNzhmMyAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjIpOiB0aWQ6 IDVjOGI3OGYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDVjOGI3OGYzICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVy ICgxNjQpOiB0aWQ6IDVjOGI3OGYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4ZDk4MDAgbmJsb2NrcyAweGRiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoMTY1KTogdGlkOiA1YzhiNzhmMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjYp OiB0aWQ6IDVjOGI3OGYzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDE2Nyk6IHRpZDogNWM4Yjc4ZjMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzUgIGxvbmdlc3Q6IDE5 NDkyMTM1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY4KTogdGlkOiA1YzhiNzhmMyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE2OSk6IHRpZDogNWM4Yjc4ZjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTcwKTogdGlkOiA1YzhiNzhm MyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxNzEpOiB0aWQ6IDVjOGI3OGYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Mik6IHRpZDogNWM4 Yjc4ZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE3Myk6IHRpZDogYWQ2YzMzOTYgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc0KTogdGlkOiBh ZDZjMzM5NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTc1KTogdGlkOiBhZDZjMzM5NiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAo MTc2KTogdGlkOiBhZDZjMzM5NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eGRhYzAwIG5ibG9ja3MgMHhkYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDE3Nyk6IHRpZDogYWQ2YzMzOTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc4KTog dGlkOiBhZDZjMzM5NiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxNzkpOiB0aWQ6IGFkNmMzMzk2ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTM0ICBsb25nZXN0OiAxOTQ5 MjEzNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MCk6IHRpZDogYWQ2YzMzOTYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx ODEpOiB0aWQ6IGFkNmMzMzk2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Mik6IHRpZDogYWQ2YzMzOTYg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTgzKTogdGlkOiBhZDZjMzM5NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODQpOiB0aWQ6IGFkNmMz Mzk2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxODUpOiB0aWQ6IDJkM2RlMzFiICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4Nik6IHRpZDogMmQz ZGUzMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4Nyk6IHRpZDogMmQzZGUzMWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDE4 OCk6IHRpZDogMmQzZGUzMWIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhk YzAwMCBuYmxvY2tzIDB4ZGUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgxODkpOiB0aWQ6IDJkM2RlMzFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5MCk6IHRp ZDogMmQzZGUzMWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTkxKTogdGlkOiAyZDNkZTMxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEzMiAgbG9uZ2VzdDogMTk0OTIx MzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTIpOiB0aWQ6IDJkM2RlMzFiICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkz KTogdGlkOiAyZDNkZTMxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTQpOiB0aWQ6IDJkM2RlMzFiICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE5NSk6IHRpZDogMmQzZGUzMWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk2KTogdGlkOiAyZDNkZTMx YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTk3KTogdGlkOiBiMzMxZWE4YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTgpOiB0aWQ6IGIzMzFl YThhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOTkpOiB0aWQ6IGIzMzFlYThhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMDAp OiB0aWQ6IGIzMzFlYThhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZGQ0 MDAgbmJsb2NrcyAweGRmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo MjAxKTogdGlkOiBiMzMxZWE4YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDIpOiB0aWQ6 IGIzMzFlYThhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDIwMyk6IHRpZDogYjMzMWVhOGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMzEgIGxvbmdlc3Q6IDE5NDkyMTMx Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA0KTogdGlkOiBiMzMxZWE4YSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwNSk6 IHRpZDogYjMzMWVhOGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTogdGlkOiBiMzMxZWE4YSAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy MDcpOiB0aWQ6IGIzMzFlYThhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOCk6IHRpZDogYjMzMWVhOGEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDIwOSk6IHRpZDogYWIzMTk4OWYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEwKTogdGlkOiBhYjMxOTg5 ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjExKTogdGlkOiBhYjMxOTg5ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjEyKTog dGlkOiBhYjMxOTg5ZiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRlODAw IG5ibG9ja3MgMHhlMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIx Myk6IHRpZDogYWIzMTk4OWYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE0KTogdGlkOiBh YjMxOTg5ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgyMTUpOiB0aWQ6IGFiMzE5ODlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTMwICBsb25nZXN0OiAxOTQ5MjEzMAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNik6IHRpZDogYWIzMTk4OWYgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMTcpOiB0 aWQ6IGFiMzE5ODlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxOCk6IHRpZDogYWIzMTk4OWYgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjE5 KTogdGlkOiBhYjMxOTg5ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjApOiB0aWQ6IGFiMzE5ODlmICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyMjEpOiB0aWQ6IDgyNzM3YTlhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMik6IHRpZDogODI3MzdhOWEg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIyMyk6IHRpZDogODI3MzdhOWEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDIyNCk6IHRp ZDogODI3MzdhOWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhkZmMwMCBu YmxvY2tzIDB4ZTEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyMjUp OiB0aWQ6IDgyNzM3YTlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNik6IHRpZDogODI3 MzdhOWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMjI3KTogdGlkOiA4MjczN2E5YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyOSAgbG9uZ2VzdDogMTk0OTIxMjkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjgpOiB0aWQ6IDgyNzM3YTlhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjI5KTogdGlk OiA4MjczN2E5YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzApOiB0aWQ6IDgyNzM3YTlhICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMSk6 IHRpZDogODI3MzdhOWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMyKTogdGlkOiA4MjczN2E5YSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjMzKTogdGlkOiBkNmZiMmVlYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzQpOiB0aWQ6IGQ2ZmIyZWViICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMzUpOiB0aWQ6IGQ2ZmIyZWViICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyMzYpOiB0aWQ6 IGQ2ZmIyZWViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTEwMDAgbmJs b2NrcyAweGUzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjM3KTog dGlkOiBkNmZiMmVlYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzgpOiB0aWQ6IGQ2ZmIy ZWViICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDIzOSk6IHRpZDogZDZmYjJlZWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMjcgIGxvbmdlc3Q6IDE5NDkyMTI3Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQwKTogdGlkOiBkNmZiMmVlYiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0MSk6IHRpZDog ZDZmYjJlZWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQyKTogdGlkOiBkNmZiMmVlYiAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDMpOiB0 aWQ6IGQ2ZmIyZWViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NCk6IHRpZDogZDZmYjJlZWIgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI0NSk6IHRpZDogZWZkMzM3MWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ2KTogdGlkOiBlZmQzMzcxYyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjQ3KTogdGlkOiBlZmQzMzcxYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjQ4KTogdGlkOiBl ZmQzMzcxYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGUyNDAwIG5ibG9j a3MgMHhlNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI0OSk6IHRp ZDogZWZkMzM3MWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUwKTogdGlkOiBlZmQzMzcx YyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyNTEpOiB0aWQ6IGVmZDMzNzFjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTI2ICBsb25nZXN0OiAxOTQ5MjEyNgotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRpZDogZWZkMzM3MWMgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNTMpOiB0aWQ6IGVm ZDMzNzFjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1NCk6IHRpZDogZWZkMzM3MWMgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjU1KTogdGlk OiBlZmQzMzcxYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTYpOiB0aWQ6IGVmZDMzNzFjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNTcpOiB0aWQ6IGFhNjgxMzE2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OCk6IHRpZDogYWE2ODEzMTYgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1OSk6IHRpZDogYWE2ODEzMTYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI2MCk6IHRpZDogYWE2 ODEzMTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhlMzgwMCBuYmxvY2tz IDB4ZTUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNjEpOiB0aWQ6 IGFhNjgxMzE2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Mik6IHRpZDogYWE2ODEzMTYg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjYzKTogdGlkOiBhYTY4MTMxNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEyNSAgbG9uZ2VzdDogMTk0OTIxMjUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6IGFhNjgxMzE2ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjY1KTogdGlkOiBhYTY4 MTMxNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjYpOiB0aWQ6IGFhNjgxMzE2ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2Nyk6IHRpZDog YWE2ODEzMTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY4KTogdGlkOiBhYTY4MTMxNiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjY5KTogdGlkOiAzZmFmYjEwZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzApOiB0aWQ6IDNmYWZiMTBmICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NzEpOiB0aWQ6IDNmYWZiMTBmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNzIpOiB0aWQ6IDNmYWZi MTBmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTRjMDAgbmJsb2NrcyAw eGU2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjczKTogdGlkOiAz ZmFmYjEwZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzQpOiB0aWQ6IDNmYWZiMTBmICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI3NSk6IHRpZDogM2ZhZmIxMGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTIxMjQgIGxvbmdlc3Q6IDE5NDkyMTI0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjc2KTogdGlkOiAzZmFmYjEwZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI3Nyk6IHRpZDogM2ZhZmIx MGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjc4KTogdGlkOiAzZmFmYjEwZiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzkpOiB0aWQ6IDNm YWZiMTBmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MCk6IHRpZDogM2ZhZmIxMGYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4 MSk6IHRpZDogMjA5NzQxN2MgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgyKTogdGlkOiAyMDk3NDE3YyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgz KTogdGlkOiAyMDk3NDE3YyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoMjg0KTogdGlkOiAyMDk3NDE3 YyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGU2MDAwIG5ibG9ja3MgMHhl OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI4NSk6IHRpZDogMjA5 NzQxN2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg2KTogdGlkOiAyMDk3NDE3YyAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy ODcpOiB0aWQ6IDIwOTc0MTdjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkyMTIyICBsb25nZXN0OiAxOTQ5MjEyMgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI4OCk6IHRpZDogMjA5NzQxN2MgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyODkpOiB0aWQ6IDIwOTc0MTdj ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI5MCk6IHRpZDogMjA5NzQxN2MgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkxKTogdGlkOiAyMDk3 NDE3YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTIpOiB0aWQ6IDIwOTc0MTdjICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMp OiB0aWQ6IGJiOGM5MTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjk0KTogdGlkOiBiYjhjOTE3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0 aWQ6IGJiOGM5MTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDI5Nik6IHRpZDogYmI4YzkxNyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGU3NDAwIG5ibG9ja3MgMHhlOSBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI5Nyk6IHRpZDogYmI4YzkxNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTgpOiB0aWQ6IGJiOGM5MTcgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjk5KTogdGlk OiBiYjhjOTE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkyMTIxICBsb25nZXN0OiAxOTQ5MjEyMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMwMCk6IHRpZDogYmI4YzkxNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMSk6IHRpZDogYmI4YzkxNyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMDIpOiB0aWQ6IGJiOGM5MTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzAzKTogdGlkOiBiYjhjOTE3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMwNCk6IHRpZDogYmI4YzkxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiAzOTFlYmY3 OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMDYpOiB0aWQ6IDM5MWViZjc4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IDM5MWViZjc4 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTAyNApPcGVyICgzMDgpOiB0aWQ6IDM5MWViZjc4ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZTg4MDAgbmJsb2NrcyAweGVhIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzA5KTogdGlkOiAzOTFlYmY3OCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMTApOiB0aWQ6IDM5MWViZjc4ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMxMSk6IHRpZDogMzkxZWJm NzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTIxMjAgIGxvbmdlc3Q6IDE5NDkyMTIwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzEy KTogdGlkOiAzOTFlYmY3OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMxMyk6IHRpZDogMzkxZWJmNzggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzE0KTogdGlkOiAzOTFlYmY3OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTUpOiB0aWQ6IDM5MWViZjc4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxNik6IHRpZDogMzkxZWJmNzggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogZWU0ZGFlZjEg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzE4KTogdGlkOiBlZTRkYWVmMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiBlZTRkYWVmMSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoMzIwKTogdGlkOiBlZTRkYWVmMSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGU5YzAwIG5ibG9ja3MgMHhlYiBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMyMSk6IHRpZDogZWU0ZGFlZjEgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzIyKTogdGlkOiBlZTRkYWVmMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMjMpOiB0aWQ6IGVlNGRhZWYx ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkyMTE5ICBsb25nZXN0OiAxOTQ5MjExOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyNCk6 IHRpZDogZWU0ZGFlZjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzMjUpOiB0aWQ6IGVlNGRhZWYxICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMyNik6IHRpZDogZWU0ZGFlZjEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI3KTogdGlkOiBlZTRkYWVmMSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjgpOiB0aWQ6IGVlNGRhZWYxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6IGEwZGI4ZTkwICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMzMCk6IHRpZDogYTBkYjhlOTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogYTBkYjhlOTAgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMDI0Ck9wZXIgKDMzMik6IHRpZDogYTBkYjhlOTAgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHhlYjAwMCBuYmxvY2tzIDB4ZWQgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgzMzMpOiB0aWQ6IGEwZGI4ZTkwICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzNCk6IHRpZDogYTBkYjhlOTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzM1KTogdGlkOiBhMGRiOGU5MCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MjExNyAgbG9uZ2VzdDogMTk0OTIxMTcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzYpOiB0 aWQ6IGEwZGI4ZTkwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzM3KTogdGlkOiBhMGRiOGU5MCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MzgpOiB0aWQ6IGEwZGI4ZTkwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDMzOSk6IHRpZDogYTBkYjhlOTAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzQwKTogdGlkOiBhMGRiOGU5MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiBjNzI1NDViZSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNDIpOiB0aWQ6IGM3MjU0NWJlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGM3MjU0NWJlICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTAyNApPcGVyICgzNDQpOiB0aWQ6IGM3MjU0NWJlICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4ZWM0MDAgbmJsb2NrcyAweGVlIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMzQ1KTogdGlkOiBjNzI1NDViZSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNDYpOiB0aWQ6IGM3MjU0NWJlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM0Nyk6IHRpZDogYzcyNTQ1YmUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIx MTYgIGxvbmdlc3Q6IDE5NDkyMTE2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ4KTogdGlk OiBjNzI1NDViZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM0OSk6IHRpZDogYzcyNTQ1YmUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUw KTogdGlkOiBjNzI1NDViZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzNTEpOiB0aWQ6IGM3MjU0NWJlICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1Mik6IHRpZDogYzcyNTQ1YmUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Myk6IHRpZDogZTBmODczMjYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzU0KTogdGlkOiBlMGY4NzMyNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiBlMGY4NzMyNiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEwMjQKT3BlciAoMzU2KTogdGlkOiBlMGY4NzMyNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweGVkODAwIG5ibG9ja3MgMHhlZiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDM1Nyk6IHRpZDogZTBmODczMjYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzU4KTogdGlkOiBlMGY4NzMyNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNTkpOiB0aWQ6IGUwZjg3MzI2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTE1 ICBsb25nZXN0OiAxOTQ5MjExNQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2MCk6IHRpZDog ZTBmODczMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzNjEpOiB0aWQ6IGUwZjg3MzI2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Mik6 IHRpZDogZTBmODczMjYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzYzKTogdGlkOiBlMGY4NzMyNiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjQpOiB0aWQ6IGUwZjg3MzI2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjUpOiB0aWQ6IGU3MmFkNjBjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM2Nik6IHRpZDogZTcyYWQ2MGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogZTcyYWQ2MGMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMDI0Ck9wZXIgKDM2OCk6IHRpZDogZTcyYWQ2MGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHhlZWMwMCBuYmxvY2tzIDB4ZjAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgzNjkpOiB0aWQ6IGU3MmFkNjBjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM3MCk6IHRpZDogZTcyYWQ2MGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzcxKTogdGlkOiBlNzJhZDYwYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjExNCAg bG9uZ2VzdDogMTk0OTIxMTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzIpOiB0aWQ6IGU3 MmFkNjBjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzczKTogdGlkOiBlNzJhZDYwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzQpOiB0 aWQ6IGU3MmFkNjBjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDM3NSk6IHRpZDogZTcyYWQ2MGMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc2 KTogdGlkOiBlNzJhZDYwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc3KTogdGlkOiA3YjA0ZDMyNCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NzgpOiB0aWQ6IDdiMDRkMzI0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IDdiMDRkMzI0ICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTAyNApPcGVyICgzODApOiB0aWQ6IDdiMDRkMzI0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4ZjAwMDAgbmJsb2NrcyAweGYyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMzgxKTogdGlkOiA3YjA0ZDMyNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODIpOiB0aWQ6IDdiMDRkMzI0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM4Myk6IHRpZDogN2IwNGQzMjQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMTIgIGxv bmdlc3Q6IDE5NDkyMTEyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg0KTogdGlkOiA3YjA0 ZDMyNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM4NSk6IHRpZDogN2IwNGQzMjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzg2KTogdGlk OiA3YjA0ZDMyNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzODcpOiB0aWQ6IDdiMDRkMzI0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OCk6 IHRpZDogN2IwNGQzMjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4OSk6IHRpZDogZTFmZTA0ZDcgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkw KTogdGlkOiBlMWZlMDRkNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiBlMWZlMDRkNyAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEw MjQKT3BlciAoMzkyKTogdGlkOiBlMWZlMDRkNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGYxNDAwIG5ibG9ja3MgMHhmMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDM5Myk6IHRpZDogZTFmZTA0ZDcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzk0KTogdGlkOiBlMWZlMDRkNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzOTUpOiB0aWQ6IGUxZmUwNGQ3ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTExICBsb25n ZXN0OiAxOTQ5MjExMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Nik6IHRpZDogZTFmZTA0 ZDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzOTcpOiB0aWQ6IGUxZmUwNGQ3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5OCk6IHRpZDog ZTFmZTA0ZDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzk5KTogdGlkOiBlMWZlMDRkNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDApOiB0 aWQ6IGUxZmUwNGQ3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDEpOiB0aWQ6IDk5YTllOWEgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTog dGlkOiA5OWE5ZTlhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MDMpOiB0aWQ6IDk5YTllOWEgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDQwNCk6IHRpZDogOTlhOWU5YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGYyODAwIG5ibG9ja3MgMHhmNCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDQwNSk6IHRpZDogOTlhOWU5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDYp OiB0aWQ6IDk5YTllOWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDA3KTogdGlkOiA5OWE5ZTlhICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTEwICBsb25nZXN0OiAxOTQ5 MjExMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOCk6IHRpZDogOTlhOWU5YSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQw OSk6IHRpZDogOTlhOWU5YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTApOiB0aWQ6IDk5YTllOWEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDExKTogdGlkOiA5OWE5ZTlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMik6IHRpZDogOTlhOWU5YSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDEzKTogdGlkOiA4ZGY2YWUyYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTQpOiB0aWQ6IDhkZjZhZTJh ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MTUpOiB0aWQ6IDhkZjZhZTJhICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0MTYpOiB0 aWQ6IDhkZjZhZTJhICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjNjMDAg bmJsb2NrcyAweGY1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDE3 KTogdGlkOiA4ZGY2YWUyYSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTgpOiB0aWQ6IDhk ZjZhZTJhICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQxOSk6IHRpZDogOGRmNmFlMmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDkgIGxvbmdlc3Q6IDE5NDkyMTA5Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIwKTogdGlkOiA4ZGY2YWUyYSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyMSk6IHRp ZDogOGRmNmFlMmEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIyKTogdGlkOiA4ZGY2YWUyYSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjMp OiB0aWQ6IDhkZjZhZTJhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNCk6IHRpZDogOGRmNmFlMmEgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQyNSk6IHRpZDogNDg1Y2RiNjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI2KTogdGlkOiA0ODVjZGI2NSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDI3KTogdGlkOiA0ODVjZGI2NSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDI4KTogdGlk OiA0ODVjZGI2NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGY1MDAwIG5i bG9ja3MgMHhmNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQyOSk6 IHRpZDogNDg1Y2RiNjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMwKTogdGlkOiA0ODVj ZGI2NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0MzEpOiB0aWQ6IDQ4NWNkYjY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA3ICBsb25nZXN0OiAxOTQ5MjEwNwotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6IHRpZDogNDg1Y2RiNjUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzMpOiB0aWQ6 IDQ4NWNkYjY1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzNCk6IHRpZDogNDg1Y2RiNjUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDM1KTog dGlkOiA0ODVjZGI2NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzYpOiB0aWQ6IDQ4NWNkYjY1ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MzcpOiB0aWQ6IDdkNWUzMmYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzOCk6IHRpZDogN2Q1ZTMyZjAgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQzOSk6IHRpZDogN2Q1ZTMyZjAgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ0MCk6IHRpZDog N2Q1ZTMyZjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmNjQwMCBuYmxv Y2tzIDB4ZjggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NDEpOiB0 aWQ6IDdkNWUzMmYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Mik6IHRpZDogN2Q1ZTMy ZjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDQzKTogdGlkOiA3ZDVlMzJmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwNiAgbG9uZ2VzdDogMTk0OTIxMDYKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0aWQ6IDdkNWUzMmYwICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQ1KTogdGlkOiA3 ZDVlMzJmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDYpOiB0aWQ6IDdkNWUzMmYwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0Nyk6IHRp ZDogN2Q1ZTMyZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ4KTogdGlkOiA3ZDVlMzJmMCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDQ5KTogdGlkOiBhMmExYjY3ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTApOiB0aWQ6IGEyYTFiNjdkICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NTEpOiB0aWQ6IGEyYTFiNjdkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0NTIpOiB0aWQ6IGEy YTFiNjdkICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4Zjc4MDAgbmJsb2Nr cyAweGY5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDUzKTogdGlk OiBhMmExYjY3ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTQpOiB0aWQ6IGEyYTFiNjdk ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQ1NSk6IHRpZDogYTJhMWI2N2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTIxMDUgIGxvbmdlc3Q6IDE5NDkyMTA1Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDU2KTogdGlkOiBhMmExYjY3ZCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1Nyk6IHRpZDogYTJh MWI2N2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU4KTogdGlkOiBhMmExYjY3ZCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTkpOiB0aWQ6 IGEyYTFiNjdkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MCk6IHRpZDogYTJhMWI2N2QgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ2MSk6IHRpZDogZGUwYTc1ZDAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDYyKTogdGlkOiBkZTBhNzVkMCAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDYzKTogdGlkOiBkZTBhNzVkMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEwMjQKT3BlciAoNDY0KTogdGlkOiBkZTBh NzVkMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGY4YzAwIG5ibG9ja3Mg MHhmYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ2NSk6IHRpZDog ZGUwYTc1ZDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY2KTogdGlkOiBkZTBhNzVkMCAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0NjcpOiB0aWQ6IGRlMGE3NWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTA0ICBsb25nZXN0OiAxOTQ5MjEwNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDogZGUwYTc1ZDAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjkpOiB0aWQ6IGRlMGE3 NWQwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3MCk6IHRpZDogZGUwYTc1ZDAgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDcxKTogdGlkOiBk ZTBhNzVkMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzIpOiB0aWQ6IGRlMGE3NWQwICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 NzMpOiB0aWQ6IDIzNDE2NmU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3NCk6IHRpZDogMjM0MTY2ZTYgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3 NSk6IHRpZDogMjM0MTY2ZTYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9wZXIgKDQ3Nik6IHRpZDogMjM0MTY2 ZTYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmYTAwMCBuYmxvY2tzIDB4 ZmMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NzcpOiB0aWQ6IDIz NDE2NmU2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3OCk6IHRpZDogMjM0MTY2ZTYgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDc5KTogdGlkOiAyMzQxNjZlNiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjEwMiAgbG9uZ2VzdDogMTk0OTIxMDIKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0ODApOiB0aWQ6IDIzNDE2NmU2ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDgxKTogdGlkOiAyMzQxNjZl NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0ODIpOiB0aWQ6IDIzNDE2NmU2ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4Myk6IHRpZDogMjM0 MTY2ZTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg0KTogdGlkOiAyMzQxNjZlNiAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1 KTogdGlkOiAzYmMwZDc0NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODYpOiB0aWQ6IDNiYzBkNzQ0ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODcp OiB0aWQ6IDNiYzBkNzQ0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICg0ODgpOiB0aWQ6IDNiYzBkNzQ0 ICBsZW46IDg0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT05USU5VRSAKCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDMyNgl0YWlsX2xzbjogMSw2Cmxl bmd0aCBvZiBMb2cgUmVjb3JkOiAzNTg0CXByZXYgb2Zmc2V0OiAyNjIJCW51bSBvcHM6IDU3CnV1 aWQ6IGIwYjVjY2U5LTE3MGQtNDY0ZC1iZmZmLWI5MmVlOGVjYWM2YyAgIGZvcm1hdDogbGl0dGxl IGVuZGlhbiBsaW51eApoX3NpemU6IDMyNzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6 IHRpZDogM2JjMGQ3NDQgIGxlbjogMTIgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFdBU19DT05U IEVORCAKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMSk6IHRpZDogM2JjMGQ3NDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKTGVmdCBvdmVyIHJlZ2lvbiBmcm9tIHNwbGl0IGxvZyBpdGVtCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogM2JjMGQ3NDQgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMyk6IHRpZDogM2JjMGQ3NDQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTIxMDEgIGxvbmdlc3Q6IDE5NDkyMTAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRp ZDogM2JjMGQ3NDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg1KTogdGlkOiAzYmMwZDc0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTog dGlkOiAzYmMwZDc0NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg3KTogdGlkOiAzYmMwZDc0NCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4KTog dGlkOiAzYmMwZDc0NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogZWE3ZTc1ZjQgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTApOiB0 aWQ6IGVhN2U3NWY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogZWE3ZTc1ZjQgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg0ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMDI0Ck9w ZXIgKDEyKTogdGlkOiBlYTdlNzVmNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweGZjODAwIG5ibG9ja3MgMHhmZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDEzKTogdGlkOiBlYTdlNzVmNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNCk6 IHRpZDogZWE3ZTc1ZjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMTUpOiB0aWQ6IGVhN2U3NWY0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkyMTAwICBsb25nZXN0OiAxOTQ5 MjEwMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiBlYTdlNzVmNCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3 KTogdGlkOiBlYTdlNzVmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogZWE3ZTc1ZjQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MTkpOiB0aWQ6IGVhN2U3NWY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwKTogdGlkOiBlYTdlNzVmNCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjEpOiB0aWQ6IDVjZTYwY2QyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyKTogdGlkOiA1Y2U2MGNkMiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMjMpOiB0aWQ6IDVjZTYwY2QyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NCAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTAyNApPcGVyICgyNCk6IHRpZDog NWNlNjBjZDIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHhmZGMwMCBuYmxv Y2tzIDB4ZmYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNSk6IHRp ZDogNWNlNjBjZDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6IDVjZTYwY2Qy ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDI3KTogdGlkOiA1Y2U2MGNkMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MjA5OSAgbG9uZ2VzdDogMTk0OTIwOTkKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyOCk6IHRpZDogNWNlNjBjZDIgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyOSk6IHRpZDogNWNlNjBj ZDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IDVjZTYwY2QyICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMxKTogdGlkOiA1Y2U2 MGNkMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMik6IHRpZDogNWNlNjBjZDIgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzKTog dGlkOiA2MGViYTFiYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNCk6IHRpZDogNjBlYmExYmMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogU1RSQVRfV1JJVEUgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1KTog dGlkOiA2MGViYTFiYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODMgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDc2OApPcGVyICgzNik6IHRpZDogNjBlYmExYmMgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNzU1IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgwIG5ibG9ja3MgMHgyYzEgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNyk6IHRpZDogNjBlYmExYmMgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgpOiB0aWQ6IDYwZWJhMWJjICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM5KTogdGlkOiA2 MGViYTFiYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MTM5NCAgbG9uZ2VzdDogMTk0OTEzOTQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MCk6IHRpZDogNjBlYmExYmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MSk6IHRpZDogNjBlYmExYmMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDIpOiB0aWQ6IDYwZWJhMWJjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzKTogdGlkOiA2MGViYTFiYyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NCk6IHRpZDogNjBlYmExYmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1KTogdGlkOiA0YTVmNDYyYyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0Nik6IHRpZDogNGE1ZjQ2MmMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRlNZTkNfVFMgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA0YTVmNDYyYyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODMgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDc2OApPcGVyICg0OCk6IHRpZDogNGE1ZjQ2MmMgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNzU1IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgyYzBlMTAgbmJsb2NrcyAweDJjMSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ5KTogdGlkOiA0YTVmNDYyYyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1MCk6IHRpZDogNGE1ZjQ2MmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUxKTogdGlkOiA3ODQ2YmQz YSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1Mik6IHRpZDogNzg0NmJkM2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRlNZTkNfVFMgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogMQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUzKTogdGlkOiA3ODQ2YmQzYSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODQgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEwMjQKT3BlciAoNTQpOiB0aWQ6IDc4NDZiZDNhICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4ZmYwMDAgbmJsb2NrcyAweGZmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNTUpOiB0aWQ6IDc4NDZiZDNhICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDU2KTogdGlkOiA3ODQ2YmQzYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJ CWxzbjogMSwzMzQJdGFpbF9sc246IDEsMzI2Cmxlbmd0aCBvZiBMb2cgUmVjb3JkOiA1MTIJcHJl diBvZmZzZXQ6IDMyNgkJbnVtIG9wczogNQp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1i OTJlZThlY2FjNmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDdiMmQ5MWI3ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0 aWQ6IDdiMmQ5MWI3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERVTU1ZMSAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiAxCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMik6IHRpZDogN2IyZDkxYjcgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAyICAgaW5vOiAweDgwICBmbGFnczogMHgx ICAgZHNpemU6IDUyCiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAwCk9wZXIgKDMp OiB0aWQ6IDdiMmQ5MWI3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDQwNzU1IHZlcnNpb24gMiBmb3JtYXQgMQpubGlu ayAyIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMSBu YmxvY2tzIDB4MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDAKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNCk6IHRpZDogN2IyZDkxYjcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpjeWNsZTogMQl2ZXJzaW9uOiAy CQlsc246IDEsMzM2CXRhaWxfbHNuOiAxLDMyNgpsZW5ndGggb2YgTG9nIFJlY29yZDogMzIyNTYJ cHJldiBvZmZzZXQ6IDMzNAkJbnVtIG9wczogNDg5CnV1aWQ6IGIwYjVjY2U5LTE3MGQtNDY0ZC1i ZmZmLWI5MmVlOGVjYWM2YyAgIGZvcm1hdDogbGl0dGxlIGVuZGlhbiBsaW51eApoX3NpemU6IDMy NzY4Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMCk6IHRpZDogMTUzMGM5YTAgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MSk6IHRpZDogMTUzMGM5YTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogQ1JFQVRFICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyKTogdGlkOiAxNTMwYzlhMCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAyICgw eDIpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzKTogdGlkOiAxNTMw YzlhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdJIEJ1ZmZlcjog WEFHSSAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgY250OiA2NCAgcm9vdDogMwps ZXZlbDogMSAgZnJlZSM6IDB4M2EgIG5ld2lubzogMHg4MApidWNrZXRbMCAtIDNdOiAweGZmZmZm ZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbNCAtIDddOiAweGZm ZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRbOCAtIDExXTog MHhmZmZmZmZmZiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAKYnVja2V0WzEyIC0g MTVdOiAweGZmZmZmZmZmIDB4ZmZmZmZmZmYgMHhmZmZmZmZmZiAweGZmZmZmZmZmIApidWNrZXRb MTYgLSAxOV06IDB4ZmZmZmZmZmYgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDog MTUzMGM5YTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMjQgKDB4MTgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg1KTogdGlkOiAxNTMwYzlhMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlk OiAxNTMwYzlhMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDIgICBpbm86IDB4ODUgIGZsYWdzOiAweDEgICBkc2l6ZTogMAogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg3KTogdGlkOiAxNTMwYzlhMCAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDAgbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgpOiB0aWQ6 IDE1MzBjOWEwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4MCAgZmxhZ3M6IDB4MyAgIGRzaXplOiA3MgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMApPcGVyICg5KTogdGlkOiAxNTMwYzlhMCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDA0MDc1NSB2ZXJzaW9uIDIgZm9ybWF0IDEKbmxpbmsgMiB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NDggbmJsb2NrcyAweDAgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgwCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMCk6IHRpZDogMTUzMGM5YTAgIGxlbjogNzIgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKTE9DQUwgaW5vZGUgZGF0YQpTSE9SVEZPUk0gRElS RUNUT1JZIHNpemUgNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogMTUzMGM5 YTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEyKTogdGlkOiAxMmJhZWI5MCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMyk6IHRpZDogMTJiYWVi OTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0KTogdGlkOiAxMmJhZWI5MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTUpOiB0 aWQ6IDEyYmFlYjkwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MCBuYmxv Y2tzIDB4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE2KTogdGlk OiAxMmJhZWI5MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRpZDogMTJiYWViOTAg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMTgpOiB0aWQ6IDEyYmFlYjkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzkyICBsb25nZXN0OiAxOTQ5MTM5MgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiAxMmJhZWI5MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwKTogdGlkOiAxMmJhZWI5 MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMSk6IHRpZDogMTJiYWViOTAgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjIpOiB0aWQ6IDEyYmFl YjkwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzKTogdGlkOiAxMmJhZWI5MCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQpOiB0 aWQ6IDJmNTBmZWQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiAyZjUwZmVkMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjYpOiB0aWQ6 IDJmNTBmZWQzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyNyk6IHRpZDogMmY1MGZlZDMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxNDAwIG5ibG9ja3MgMHgzIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjgpOiB0aWQ6IDJmNTBmZWQzICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiAyZjUwZmVkMyAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMCk6IHRpZDogMmY1 MGZlZDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTEzOTEgIGxvbmdlc3Q6IDE5NDkxMzkxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzEpOiB0aWQ6IDJmNTBmZWQzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIpOiB0aWQ6IDJmNTBmZWQzICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMzKTogdGlkOiAyZjUwZmVkMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNCk6IHRpZDogMmY1MGZlZDMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzUpOiB0aWQ6IDJmNTBmZWQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNik6IHRpZDogZmQ1OTY0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3KTogdGlkOiBmZDU5NjQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4KTogdGlkOiBmZDU5NjQgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MjgwCk9wZXIgKDM5KTogdGlkOiBmZDU5NjQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgyODAwIG5ibG9ja3MgMHg0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoNDApOiB0aWQ6IGZkNTk2NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6 IHRpZDogZmQ1OTY0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQyKTogdGlkOiBmZDU5NjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzOTAgIGxvbmdlc3Q6IDE5NDkxMzkw Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMpOiB0aWQ6IGZkNTk2NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0KTogdGlk OiBmZDU5NjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IGZkNTk2NCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0Nik6IHRpZDog ZmQ1OTY0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiBmZDU5NjQgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4KTog dGlkOiAxMzQzYWU3MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0OSk6IHRpZDogMTM0M2FlNzEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUwKTogdGlk OiAxMzQzYWU3MSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNTEpOiB0aWQ6IDEzNDNhZTcxICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2MwMCBuYmxvY2tzIDB4NSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDUyKTogdGlkOiAxMzQzYWU3MSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Myk6IHRpZDogMTM0M2FlNzEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNTQpOiB0aWQ6IDEz NDNhZTcxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkxMzg5ICBsb25nZXN0OiAxOTQ5MTM4OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDU1KTogdGlkOiAxMzQzYWU3MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDU2KTogdGlkOiAxMzQzYWU3MSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg1Nyk6IHRpZDogMTM0M2FlNzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTgpOiB0aWQ6IDEzNDNhZTcxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDU5KTogdGlkOiAxMzQzYWU3MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjApOiB0aWQ6IDJiNjg3YjlkICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDYxKTogdGlkOiAyYjY4N2I5ZCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjIpOiB0aWQ6IDJiNjg3YjlkICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTI4MApPcGVyICg2Myk6IHRpZDogMmI2ODdiOWQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHg1MDAwIG5ibG9ja3MgMHg3IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoNjQpOiB0aWQ6IDJiNjg3YjlkICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDY1KTogdGlkOiAyYjY4N2I5ZCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg2Nik6IHRpZDogMmI2ODdiOWQgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzODcgIGxv bmdlc3Q6IDE5NDkxMzg3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjcpOiB0aWQ6IDJiNjg3 YjlkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoNjgpOiB0aWQ6IDJiNjg3YjlkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiAy YjY4N2I5ZCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICg3MCk6IHRpZDogMmI2ODdiOWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzEpOiB0aWQ6 IDJiNjg3YjlkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg3Mik6IHRpZDogY2NkYzhkOTQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzMpOiB0aWQ6 IGNjZGM4ZDk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3NCk6IHRpZDogY2NkYzhkOTQgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIg KDc1KTogdGlkOiBjY2RjOGQ5NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAw eDY0MDAgbmJsb2NrcyAweDggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICg3Nik6IHRpZDogY2NkYzhkOTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzcpOiB0aWQ6 IGNjZGM4ZDk0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDc4KTogdGlkOiBjY2RjOGQ5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM4NiAgbG9uZ2VzdDogMTk0OTEzODYK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogY2NkYzhkOTQgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4MCk6IHRp ZDogY2NkYzhkOTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IGNjZGM4ZDk0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgyKTog dGlkOiBjY2RjOGQ5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogY2NkYzhkOTQgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDg0KTogdGlkOiBlODk1NGMxNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4NSk6IHRpZDogZTg5NTRjMTcgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDg2KTogdGlkOiBlODk1NGMxNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoODcpOiB0aWQ6IGU4OTU0 YzE3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NzgwMCBuYmxvY2tzIDB4 OSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDg4KTogdGlkOiBlODk1 NGMxNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogZTg5NTRjMTcgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTAp OiB0aWQ6IGU4OTU0YzE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkxMzg1ICBsb25nZXN0OiAxOTQ5MTM4NQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDkxKTogdGlkOiBlODk1NGMxNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDkyKTogdGlkOiBlODk1NGMxNyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5Myk6IHRpZDogZTg5NTRjMTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTQpOiB0aWQ6IGU4OTU0YzE3ICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk1KTogdGlkOiBlODk1NGMxNyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTYpOiB0aWQ6IDky NDUxYTU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDk3KTogdGlkOiA5MjQ1MWE1NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTgpOiB0aWQ6IDkyNDUx YTU2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg5OSk6IHRpZDogOTI0NTFhNTYgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg4YzAwIG5ibG9ja3MgMHhhIGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTAwKTogdGlkOiA5MjQ1MWE1NiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IDkyNDUxYTU2ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwMik6IHRpZDogOTI0NTFh NTYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTEzODQgIGxvbmdlc3Q6IDE5NDkxMzg0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTAz KTogdGlkOiA5MjQ1MWE1NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDEwNCk6IHRpZDogOTI0NTFhNTYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTA1KTogdGlkOiA5MjQ1MWE1NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMDYpOiB0aWQ6IDkyNDUxYTU2ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEwNyk6IHRpZDogOTI0NTFhNTYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwOCk6IHRpZDogOGM1OTA3MzYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTA5KTogdGlkOiA4YzU5MDczNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEwKTogdGlkOiA4YzU5MDczNiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEyODAKT3BlciAoMTExKTogdGlkOiA4YzU5MDczNiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweGEwMDAgbmJsb2NrcyAweGMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgxMTIpOiB0aWQ6IDhjNTkwNzM2ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDExMyk6IHRpZDogOGM1OTA3MzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTE0KTogdGlkOiA4YzU5MDczNiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MTM4MiAgbG9uZ2VzdDogMTk0OTEzODIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0 aWQ6IDhjNTkwNzM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTE2KTogdGlkOiA4YzU5MDczNiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MTcpOiB0aWQ6IDhjNTkwNzM2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDExOCk6IHRpZDogOGM1OTA3MzYgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTE5KTogdGlkOiA4YzU5MDczNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIwKTogdGlkOiA1NzM2OTljYSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMjEpOiB0aWQ6IDU3MzY5OWNhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjIpOiB0aWQ6IDU3MzY5OWNhICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTI4MApPcGVyICgxMjMpOiB0aWQ6IDU3MzY5OWNhICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4YjQwMCBuYmxvY2tzIDB4ZCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDEyNCk6IHRpZDogNTczNjk5Y2EgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTI1KTogdGlkOiA1NzM2OTljYSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMjYpOiB0aWQ6IDU3MzY5OWNhICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzgx ICBsb25nZXN0OiAxOTQ5MTM4MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDog NTczNjk5Y2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgxMjgpOiB0aWQ6IDU3MzY5OWNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyOSk6 IHRpZDogNTczNjk5Y2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTMwKTogdGlkOiA1NzM2OTljYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx MzEpOiB0aWQ6IDU3MzY5OWNhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzIpOiB0aWQ6IDc1OGEwYjMgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTMzKTogdGlkOiA3NThhMGIzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzQpOiB0aWQ6IDc1OGEwYjMgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MjgwCk9wZXIgKDEzNSk6IHRpZDogNzU4YTBiMyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweGM4MDAgbmJsb2NrcyAweGUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgxMzYpOiB0aWQ6IDc1OGEwYjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTM3KTogdGlkOiA3NThhMGIzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDEzOCk6IHRpZDogNzU4YTBiMyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM4MCAgbG9uZ2VzdDog MTk0OTEzODAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IDc1OGEwYjMgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgxNDApOiB0aWQ6IDc1OGEwYjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiA3NThhMGIz ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDE0Mik6IHRpZDogNzU4YTBiMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6IDc1OGEw YjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE0NCk6IHRpZDogNDA5MjRjZGUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ1KTogdGlkOiA0MDky NGNkZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTQ2KTogdGlkOiA0MDkyNGNkZSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTQ3 KTogdGlkOiA0MDkyNGNkZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweGRj MDAgbmJsb2NrcyAweGYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgx NDgpOiB0aWQ6IDQwOTI0Y2RlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0OSk6IHRpZDog NDA5MjRjZGUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMTUwKTogdGlkOiA0MDkyNGNkZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM3OSAgbG9uZ2VzdDogMTk0OTEzNzkK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTEpOiB0aWQ6IDQwOTI0Y2RlICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTUyKTog dGlkOiA0MDkyNGNkZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTMpOiB0aWQ6IDQwOTI0Y2RlICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1 NCk6IHRpZDogNDA5MjRjZGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiA0MDkyNGNkZSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTU2KTogdGlkOiAxYzk4OWVmNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTcpOiB0aWQ6IDFjOTg5ZWY0 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTgpOiB0aWQ6IDFjOTg5ZWY0ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgxNTkpOiB0 aWQ6IDFjOTg5ZWY0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4ZjAwMCBu YmxvY2tzIDB4MTEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNjAp OiB0aWQ6IDFjOTg5ZWY0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogMWM5 ODllZjQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTYyKTogdGlkOiAxYzk4OWVmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM3NyAgbG9uZ2VzdDogMTk0OTEzNzcKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjMpOiB0aWQ6IDFjOTg5ZWY0ICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY0KTogdGlk OiAxYzk4OWVmNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IDFjOTg5ZWY0ICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE2Nik6 IHRpZDogMWM5ODllZjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiAxYzk4OWVmNCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY4KTogdGlkOiA5NWIxZWRkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRpZDogOTViMWVkZCAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTcwKTogdGlkOiA5NWIxZWRkICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgxNzEpOiB0aWQ6IDk1 YjFlZGQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMDQwMCBuYmxvY2tz IDB4MTIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNzIpOiB0aWQ6 IDk1YjFlZGQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTczKTogdGlkOiA5NWIxZWRkICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDE3NCk6IHRpZDogOTViMWVkZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM3NiAgbG9uZ2VzdDogMTk0OTEzNzYKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IDk1YjFlZGQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNzYpOiB0aWQ6IDk1YjFlZGQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiA5NWIxZWRkICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3OCk6IHRpZDogOTViMWVk ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IDk1YjFlZGQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4MCk6IHRp ZDogNGUyZDJkNGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTgxKTogdGlkOiA0ZTJkMmQ0ZiAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgyKTogdGlk OiA0ZTJkMmQ0ZiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTgzKTogdGlkOiA0ZTJkMmQ0ZiAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDExODAwIG5ibG9ja3MgMHgxMyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE4NCk6IHRpZDogNGUyZDJkNGYg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiA0ZTJkMmQ0ZiAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxODYpOiB0 aWQ6IDRlMmQyZDRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkxMzc1ICBsb25nZXN0OiAxOTQ5MTM3NQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE4Nyk6IHRpZDogNGUyZDJkNGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODgpOiB0aWQ6IDRlMmQyZDRmICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogNGUyZDJkNGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTkwKTogdGlkOiA0ZTJkMmQ0ZiAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxOTEpOiB0aWQ6IDRlMmQyZDRmICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOTIpOiB0aWQ6 IDkxZDFhMDdlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Myk6IHRpZDogOTFkMWEwN2UgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NCk6IHRpZDog OTFkMWEwN2UgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDE5NSk6IHRpZDogOTFkMWEwN2UgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxMmMwMCBuYmxvY2tzIDB4MTQgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxOTYpOiB0aWQ6IDkxZDFhMDdlICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogOTFkMWEwN2UgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTk4KTogdGlk OiA5MWQxYTA3ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MTM3NCAgbG9uZ2VzdDogMTk0OTEzNzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxOTkpOiB0aWQ6IDkxZDFhMDdlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlkOiA5MWQxYTA3ZSAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyMDEpOiB0aWQ6IDkxZDFhMDdlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIwMik6IHRpZDogOTFkMWEwN2UgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjAzKTogdGlkOiA5MWQxYTA3ZSAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA0KTogdGlkOiAx YmEyMjhiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogMWJhMjI4YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjA2KTogdGlkOiAxYmEy MjhiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyMDcpOiB0aWQ6IDFiYTIyOGIgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgxNDAwMCBuYmxvY2tzIDB4MTYgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyMDgpOiB0aWQ6IDFiYTIyOGIgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjA5KTogdGlkOiAxYmEyMjhiICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIxMCk6IHRpZDogMWJhMjI4 YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MTM3MiAgbG9uZ2VzdDogMTk0OTEzNzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEp OiB0aWQ6IDFiYTIyOGIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyMTIpOiB0aWQ6IDFiYTIyOGIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjEzKTogdGlkOiAxYmEyMjhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDIxNCk6IHRpZDogMWJhMjI4YiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMTUpOiB0aWQ6IDFiYTIyOGIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxNik6IHRpZDogY2Y1YWVlYjUgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjE3KTogdGlkOiBjZjVhZWViNSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE4KTogdGlkOiBjZjVhZWViNSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEyODAKT3BlciAoMjE5KTogdGlkOiBjZjVhZWViNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBj dGltZSAweGMKc2l6ZSAweDE1NDAwIG5ibG9ja3MgMHgxNyBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDIyMCk6IHRpZDogY2Y1YWVlYjUgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjIxKTogdGlkOiBjZjVhZWViNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMjIpOiB0aWQ6IGNmNWFlZWI1ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzcx ICBsb25nZXN0OiAxOTQ5MTM3MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMyk6IHRpZDog Y2Y1YWVlYjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMjQpOiB0aWQ6IGNmNWFlZWI1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6 IHRpZDogY2Y1YWVlYjUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjI2KTogdGlkOiBjZjVhZWViNSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MjcpOiB0aWQ6IGNmNWFlZWI1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjgpOiB0aWQ6IDUyMjI2OWNjICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIyOSk6IHRpZDogNTIyMjY5Y2MgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMCk6IHRpZDogNTIyMjY5Y2MgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMjgwCk9wZXIgKDIzMSk6IHRpZDogNTIyMjY5Y2MgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3Rp bWUgMHhjCnNpemUgMHgxNjgwMCBuYmxvY2tzIDB4MTggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgyMzIpOiB0aWQ6IDUyMjI2OWNjICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIzMyk6IHRpZDogNTIyMjY5Y2MgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjM0KTogdGlkOiA1MjIyNjljYyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM3MCAg bG9uZ2VzdDogMTk0OTEzNzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzUpOiB0aWQ6IDUy MjI2OWNjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjM2KTogdGlkOiA1MjIyNjljYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0 aWQ6IDUyMjI2OWNjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDIzOCk6IHRpZDogNTIyMjY5Y2MgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM5 KTogdGlkOiA1MjIyNjljYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQwKTogdGlkOiAxYzgxYTVhZSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NDEpOiB0aWQ6IDFjODFhNWFlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDIpOiB0aWQ6IDFjODFhNWFlICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTI4MApPcGVyICgyNDMpOiB0aWQ6IDFjODFhNWFlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4MTdjMDAgbmJsb2NrcyAweDE5IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMjQ0KTogdGlkOiAxYzgxYTVhZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyNDUpOiB0aWQ6IDFjODFhNWFlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI0Nik6IHRpZDogMWM4MWE1YWUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNjkgIGxv bmdlc3Q6IDE5NDkxMzY5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ3KTogdGlkOiAxYzgx YTVhZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI0OCk6IHRpZDogMWM4MWE1YWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlk OiAxYzgxYTVhZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyNTApOiB0aWQ6IDFjODFhNWFlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1MSk6 IHRpZDogMWM4MWE1YWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1Mik6IHRpZDogOTg2NDNkZWUgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUz KTogdGlkOiA5ODY0M2RlZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU0KTogdGlkOiA5ODY0M2RlZSAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEy ODAKT3BlciAoMjU1KTogdGlkOiA5ODY0M2RlZSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDE5MDAwIG5ibG9ja3MgMHgxYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDI1Nik6IHRpZDogOTg2NDNkZWUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjU3KTogdGlkOiA5ODY0M2RlZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNTgpOiB0aWQ6IDk4NjQzZGVlICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzY3ICBsb25n ZXN0OiAxOTQ5MTM2NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1OSk6IHRpZDogOTg2NDNk ZWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNjApOiB0aWQ6IDk4NjQzZGVlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDog OTg2NDNkZWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjYyKTogdGlkOiA5ODY0M2RlZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjMpOiB0 aWQ6IDk4NjQzZGVlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjQpOiB0aWQ6IGRlYjQxYjk0ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2NSk6 IHRpZDogZGViNDFiOTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nik6IHRpZDogZGViNDFiOTQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgw Ck9wZXIgKDI2Nyk6IHRpZDogZGViNDFiOTQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhj CnNpemUgMHgxYTQwMCBuYmxvY2tzIDB4MWMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgyNjgpOiB0aWQ6IGRlYjQxYjk0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI2OSk6IHRpZDogZGViNDFiOTQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjcwKTogdGlkOiBkZWI0MWI5NCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM2NiAgbG9uZ2Vz dDogMTk0OTEzNjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzEpOiB0aWQ6IGRlYjQxYjk0 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjcyKTogdGlkOiBkZWI0MWI5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IGRl YjQxYjk0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI3NCk6IHRpZDogZGViNDFiOTQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1KTogdGlk OiBkZWI0MWI5NCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjc2KTogdGlkOiBiZGJmZTg4OCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzcpOiB0 aWQ6IGJkYmZlODg4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNzgpOiB0aWQ6IGJkYmZlODg4ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApP cGVyICgyNzkpOiB0aWQ6IGJkYmZlODg4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4Ywpz aXplIDB4MWI4MDAgbmJsb2NrcyAweDFkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMjgwKTogdGlkOiBiZGJmZTg4OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy ODEpOiB0aWQ6IGJkYmZlODg4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDI4Mik6IHRpZDogYmRiZmU4ODggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNjUgIGxvbmdlc3Q6 IDE5NDkxMzY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiBiZGJmZTg4OCAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI4NCk6IHRpZDogYmRiZmU4ODggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg1KTogdGlkOiBiZGJm ZTg4OCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyODYpOiB0aWQ6IGJkYmZlODg4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDog YmRiZmU4ODggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI4OCk6IHRpZDogOTAyZDA0OTQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg5KTogdGlk OiA5MDJkMDQ5NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjkwKTogdGlkOiA5MDJkMDQ5NCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3Bl ciAoMjkxKTogdGlkOiA5MDJkMDQ5NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDFjYzAwIG5ibG9ja3MgMHgxZSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDI5Mik6IHRpZDogOTAyZDA0OTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkz KTogdGlkOiA5MDJkMDQ5NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyOTQpOiB0aWQ6IDkwMmQwNDk0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzY0ICBsb25nZXN0OiAx OTQ5MTM2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5NSk6IHRpZDogOTAyZDA0OTQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyOTYpOiB0aWQ6IDkwMmQwNDk0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Nyk6IHRpZDogOTAyZDA0 OTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjk4KTogdGlkOiA5MDJkMDQ5NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDkw MmQwNDk0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMDApOiB0aWQ6IGMyZWE0NTdkICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwMSk6IHRpZDog YzJlYTQ1N2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMwMik6IHRpZDogYzJlYTQ1N2QgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIg KDMwMyk6IHRpZDogYzJlYTQ1N2QgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHgxZTAwMCBuYmxvY2tzIDB4MjAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgzMDQpOiB0aWQ6IGMyZWE0NTdkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6 IHRpZDogYzJlYTQ1N2QgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzA2KTogdGlkOiBjMmVhNDU3ZCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM2MiAgbG9uZ2VzdDogMTk0 OTEzNjIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDcpOiB0aWQ6IGMyZWE0NTdkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzA4KTogdGlkOiBjMmVhNDU3ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMDkpOiB0aWQ6IGMyZWE0NTdk ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDMxMCk6IHRpZDogYzJlYTQ1N2QgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiBjMmVh NDU3ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzEyKTogdGlkOiBhMjYwMTc1NyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTMpOiB0aWQ6IGEy NjAxNzU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMTQpOiB0aWQ6IGEyNjAxNzU3ICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgz MTUpOiB0aWQ6IGEyNjAxNzU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 MWY0MDAgbmJsb2NrcyAweDIxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMzE2KTogdGlkOiBhMjYwMTc1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0 aWQ6IGEyNjAxNzU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDMxOCk6IHRpZDogYTI2MDE3NTcgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNjEgIGxvbmdlc3Q6IDE5NDkx MzYxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzE5KTogdGlkOiBhMjYwMTc1NyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMy MCk6IHRpZDogYTI2MDE3NTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIxKTogdGlkOiBhMjYwMTc1NyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzMjIpOiB0aWQ6IGEyNjAxNzU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogYTI2MDE3 NTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMyNCk6IHRpZDogYWFlMGU5MDEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI1KTogdGlkOiBhYWUw ZTkwMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzI2KTogdGlkOiBhYWUwZTkwMSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzI3 KTogdGlkOiBhYWUwZTkwMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDIw ODAwIG5ibG9ja3MgMHgyMiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDMyOCk6IHRpZDogYWFlMGU5MDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlk OiBhYWUwZTkwMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICgzMzApOiB0aWQ6IGFhZTBlOTAxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzYwICBsb25nZXN0OiAxOTQ5MTM2 MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMSk6IHRpZDogYWFlMGU5MDEgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzIp OiB0aWQ6IGFhZTBlOTAxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6IHRpZDogYWFlMGU5MDEgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzM0KTogdGlkOiBhYWUwZTkwMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IGFhZTBlOTAx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMzYpOiB0aWQ6IGI5ZjgyNjQzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNyk6IHRpZDogYjlmODI2 NDMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzOCk6IHRpZDogYjlmODI2NDMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDMzOSk6 IHRpZDogYjlmODI2NDMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyMWMw MCBuYmxvY2tzIDB4MjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgz NDApOiB0aWQ6IGI5ZjgyNjQzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6IHRpZDog YjlmODI2NDMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMzQyKTogdGlkOiBiOWY4MjY0MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM1OSAgbG9uZ2VzdDogMTk0OTEzNTkK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDMpOiB0aWQ6IGI5ZjgyNjQzICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzQ0KTog dGlkOiBiOWY4MjY0MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0aWQ6IGI5ZjgyNjQzICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM0 Nik6IHRpZDogYjlmODI2NDMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiBiOWY4MjY0MyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzQ4KTogdGlkOiAxZDg4ZmFmZSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDkpOiB0aWQ6IDFkODhmYWZl ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNTApOiB0aWQ6IDFkODhmYWZlICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzNTEpOiB0 aWQ6IDFkODhmYWZlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjMwMDAg bmJsb2NrcyAweDI1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzUy KTogdGlkOiAxZDg4ZmFmZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IDFk ODhmYWZlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDM1NCk6IHRpZDogMWQ4OGZhZmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNTcgIGxvbmdlc3Q6IDE5NDkxMzU3Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU1KTogdGlkOiAxZDg4ZmFmZSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM1Nik6IHRp ZDogMWQ4OGZhZmUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTogdGlkOiAxZDg4ZmFmZSAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTgp OiB0aWQ6IDFkODhmYWZlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogMWQ4OGZhZmUgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM2MCk6IHRpZDogOWVmNzBkZWMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYxKTogdGlkOiA5ZWY3MGRlYyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzYyKTogdGlkOiA5ZWY3MGRlYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzYzKTogdGlk OiA5ZWY3MGRlYyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI0NDAwIG5i bG9ja3MgMHgyNiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM2NCk6 IHRpZDogOWVmNzBkZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiA5ZWY3 MGRlYyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICgzNjYpOiB0aWQ6IDllZjcwZGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzU2ICBsb25nZXN0OiAxOTQ5MTM1NgotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2Nyk6IHRpZDogOWVmNzBkZWMgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNjgpOiB0aWQ6 IDllZjcwZGVjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRpZDogOWVmNzBkZWMgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzcwKTog dGlkOiA5ZWY3MGRlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDllZjcwZGVjICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNzIpOiB0aWQ6IGUxNDJiZGZmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Myk6IHRpZDogZTE0MmJkZmYgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM3NCk6IHRpZDogZTE0MmJkZmYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDM3NSk6IHRpZDog ZTE0MmJkZmYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyNTgwMCBuYmxv Y2tzIDB4MjcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNzYpOiB0 aWQ6IGUxNDJiZGZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDogZTE0MmJk ZmYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoMzc4KTogdGlkOiBlMTQyYmRmZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM1NSAgbG9uZ2VzdDogMTk0OTEzNTUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNzkpOiB0aWQ6IGUxNDJiZGZmICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgwKTogdGlkOiBl MTQyYmRmZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6IGUxNDJiZGZmICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM4Mik6IHRp ZDogZTE0MmJkZmYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiBlMTQyYmRmZiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzg0KTogdGlkOiBmZjhjOGQ1MyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODUpOiB0aWQ6IGZmOGM4ZDUzICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzODYpOiB0aWQ6IGZmOGM4ZDUzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzODcpOiB0aWQ6IGZm OGM4ZDUzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MjZjMDAgbmJsb2Nr cyAweDI4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzg4KTogdGlk OiBmZjhjOGQ1MyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IGZmOGM4ZDUz ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDM5MCk6IHRpZDogZmY4YzhkNTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNTQgIGxvbmdlc3Q6IDE5NDkxMzU0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzkxKTogdGlkOiBmZjhjOGQ1MyAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM5Mik6IHRpZDogZmY4 YzhkNTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlkOiBmZjhjOGQ1MyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOTQpOiB0aWQ6 IGZmOGM4ZDUzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogZmY4YzhkNTMgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM5Nik6IHRpZDogYWRiNjFkYjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzk3KTogdGlkOiBhZGI2MWRiOSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mzk4KTogdGlkOiBhZGI2MWRiOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzk5KTogdGlkOiBhZGI2 MWRiOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDI4MDAwIG5ibG9ja3Mg MHgyYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQwMCk6IHRpZDog YWRiNjFkYjkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAxKTogdGlkOiBhZGI2MWRiOSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0MDIpOiB0aWQ6IGFkYjYxZGI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzUyICBsb25nZXN0OiAxOTQ5MTM1MgotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQwMyk6IHRpZDogYWRiNjFkYjkgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MDQpOiB0aWQ6IGFkYjYx ZGI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogYWRiNjFkYjkgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDA2KTogdGlkOiBh ZGI2MWRiOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IGFkYjYxZGI5ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0 MDgpOiB0aWQ6IDdiZWQzYmE4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwOSk6IHRpZDogN2JlZDNiYTggIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQx MCk6IHRpZDogN2JlZDNiYTggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQxMSk6IHRpZDogN2JlZDNi YTggIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyOTQwMCBuYmxvY2tzIDB4 MmIgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0MTIpOiB0aWQ6IDdi ZWQzYmE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogN2JlZDNiYTggIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo NDE0KTogdGlkOiA3YmVkM2JhOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM1MSAgbG9uZ2VzdDogMTk0OTEzNTEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MTUpOiB0aWQ6IDdiZWQzYmE4ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDE2KTogdGlkOiA3YmVkM2Jh OCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IDdiZWQzYmE4ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxOCk6IHRpZDogN2Jl ZDNiYTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA3YmVkM2JhOCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIw KTogdGlkOiBjZDk1M2IwNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjEpOiB0aWQ6IGNkOTUzYjA2ICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjIp OiB0aWQ6IGNkOTUzYjA2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0MjMpOiB0aWQ6IGNkOTUzYjA2 ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmE4MDAgbmJsb2NrcyAweDJj IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDI0KTogdGlkOiBjZDk1 M2IwNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0aWQ6IGNkOTUzYjA2ICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQy Nik6IHRpZDogY2Q5NTNiMDYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTEzNTAgIGxvbmdlc3Q6IDE5NDkxMzUwCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDI3KTogdGlkOiBjZDk1M2IwNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQyOCk6IHRpZDogY2Q5NTNiMDYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiBjZDk1M2IwNiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MzApOiB0aWQ6IGNkOTUz YjA2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogY2Q5NTNiMDYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQzMik6 IHRpZDogYjhlMWIwMjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMzKTogdGlkOiBiOGUxYjAyMyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM0KTog dGlkOiBiOGUxYjAyMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDM1KTogdGlkOiBiOGUxYjAyMyAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJiYzAwIG5ibG9ja3MgMHgyZCBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQzNik6IHRpZDogYjhlMWIw MjMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM3KTogdGlkOiBiOGUxYjAyMyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0Mzgp OiB0aWQ6IGI4ZTFiMDIzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkxMzQ5ICBsb25nZXN0OiAxOTQ5MTM0OQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQzOSk6IHRpZDogYjhlMWIwMjMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDApOiB0aWQ6IGI4ZTFiMDIzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogYjhlMWIwMjMgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDQyKTogdGlkOiBiOGUxYjAy MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGI4ZTFiMDIzICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDQpOiB0 aWQ6IDc0Nzc5ZWZkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0NSk6IHRpZDogNzQ3NzllZmQgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nik6IHRp ZDogNzQ3NzllZmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQ0Nyk6IHRpZDogNzQ3NzllZmQgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgyZDAwMCBuYmxvY2tzIDB4MmYgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NDgpOiB0aWQ6IDc0Nzc5ZWZk ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogNzQ3NzllZmQgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDUwKTog dGlkOiA3NDc3OWVmZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MTM0NyAgbG9uZ2VzdDogMTk0OTEzNDcKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NTEpOiB0aWQ6IDc0Nzc5ZWZkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDUyKTogdGlkOiA3NDc3OWVmZCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDc0Nzc5ZWZkICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ1NCk6IHRpZDogNzQ3NzllZmQg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDU1KTogdGlkOiA3NDc3OWVmZCAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDU2KTogdGlk OiBiMWQ0ZDRlMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NTcpOiB0aWQ6IGIxZDRkNGUzICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTgpOiB0aWQ6 IGIxZDRkNGUzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0NTkpOiB0aWQ6IGIxZDRkNGUzICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4MmU0MDAgbmJsb2NrcyAweDMwIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDYwKTogdGlkOiBiMWQ0ZDRlMyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IGIxZDRkNGUzICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2Mik6IHRp ZDogYjFkNGQ0ZTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTEzNDYgIGxvbmdlc3Q6IDE5NDkxMzQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDYzKTogdGlkOiBiMWQ0ZDRlMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2NCk6IHRpZDogYjFkNGQ0ZTMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDY1KTogdGlkOiBiMWQ0ZDRlMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NjYpOiB0aWQ6IGIxZDRkNGUzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ2Nyk6IHRpZDogYjFkNGQ0ZTMgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2OCk6IHRpZDog ODVlNmQ0ZmMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDY5KTogdGlkOiA4NWU2ZDRmYyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcwKTogdGlkOiA4 NWU2ZDRmYyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDcxKTogdGlkOiA4NWU2ZDRmYyAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDJmODAwIG5ibG9ja3MgMHgzMSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ3Mik6IHRpZDogODVlNmQ0ZmMgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDczKTogdGlkOiA4NWU2ZDRmYyAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NzQpOiB0aWQ6 IDg1ZTZkNGZjICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkxMzQ1ICBsb25nZXN0OiAxOTQ5MTM0NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ3NSk6IHRpZDogODVlNmQ0ZmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzYpOiB0aWQ6IDg1ZTZkNGZjICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ3Nyk6IHRpZDogODVlNmQ0ZmMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDc4KTogdGlkOiA4NWU2ZDRmYyAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NzkpOiB0aWQ6IDg1ZTZkNGZjICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0ODApOiB0aWQ6IGZk YzM2ZTkxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4MSk6IHRpZDogZmRjMzZlOTEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Mik6IHRpZDogZmRj MzZlOTEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQ4Myk6IHRpZDogZmRjMzZlOTEgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzMGMwMCBuYmxvY2tzIDB4MzIgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0ODQpOiB0aWQ6IGZkYzM2ZTkxICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDogZmRjMzZlOTEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDg2KTogdGlkOiBm ZGMzNmU5MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MTM0NCAgbG9uZ2VzdDogMTk0OTEzNDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0ODcpOiB0aWQ6IGZkYzM2ZTkxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDg4KTogdGlkOiBmZGMzNmU5MSAgbGVuOiA1MiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCkJVRiBEQVRBCgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CmN5Y2xlOiAxCXZlcnNpb246IDIJCWxzbjogMSw0MDAJdGFpbF9sc246IDEsMzI2Cmxl bmd0aCBvZiBMb2cgUmVjb3JkOiAzMjI1NglwcmV2IG9mZnNldDogMzM2CQludW0gb3BzOiA0OTEK dXVpZDogYjBiNWNjZTktMTcwZC00NjRkLWJmZmYtYjkyZWU4ZWNhYzZjICAgZm9ybWF0OiBsaXR0 bGUgZW5kaWFuIGxpbnV4Cmhfc2l6ZTogMzI3NjgKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgw KTogdGlkOiBmZGMzNmU5MSAgbGVuOiA3NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FTX0NP TlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxKTogdGlkOiBmZGMzNmU5MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyKTogdGlkOiBmZGMzNmU5MSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzKTogdGlkOiBmZGMzNmU5MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNCk6IHRpZDogYzkxYWUz NGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNSk6IHRpZDogYzkxYWUzNGYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYpOiB0aWQ6IGM5MWFlMzRmICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTI4MApPcGVyICg3KTogdGlkOiBjOTFhZTM0ZiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDMyMDAwIG5ibG9ja3MgMHgzNCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDgpOiB0aWQ6IGM5MWFlMzRmICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDkpOiB0aWQ6IGM5MWFlMzRmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEwKTogdGlkOiBjOTFhZTM0ZiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTM0MiAg bG9uZ2VzdDogMTk0OTEzNDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogYzkx YWUzNGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxMik6IHRpZDogYzkxYWUzNGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0aWQ6 IGM5MWFlMzRmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE0KTogdGlkOiBjOTFhZTM0ZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNSk6IHRp ZDogYzkxYWUzNGYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2KTogdGlkOiBkNTYyMTkwMCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNyk6IHRp ZDogZDU2MjE5MDAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE4KTogdGlkOiBkNTYyMTkwMCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3Bl ciAoMTkpOiB0aWQ6IGQ1NjIxOTAwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXpl IDB4MzM0MDAgbmJsb2NrcyAweDM1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoMjApOiB0aWQ6IGQ1NjIxOTAwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxKTog dGlkOiBkNTYyMTkwMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgyMik6IHRpZDogZDU2MjE5MDAgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzNDEgIGxvbmdlc3Q6IDE5NDkx MzQxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6IGQ1NjIxOTAwICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQp OiB0aWQ6IGQ1NjIxOTAwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiBkNTYyMTkwMCAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgy Nik6IHRpZDogZDU2MjE5MDAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcpOiB0aWQ6IGQ1NjIxOTAwICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgyOCk6IHRpZDogMjgyYTVjOTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkpOiB0aWQ6IDI4MmE1Yzk1ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMCk6IHRpZDogMjgyYTVjOTUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDMxKTogdGlkOiAy ODJhNWM5NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDM0ODAwIG5ibG9j a3MgMHgzNiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMyKTogdGlk OiAyODJhNWM5NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMyk6IHRpZDogMjgyYTVjOTUg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMzQpOiB0aWQ6IDI4MmE1Yzk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzQwICBsb25nZXN0OiAxOTQ5MTM0MAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1KTogdGlkOiAyODJhNWM5NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2KTogdGlkOiAyODJhNWM5 NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogMjgyYTVjOTUgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzgpOiB0aWQ6IDI4MmE1 Yzk1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5KTogdGlkOiAyODJhNWM5NSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDApOiB0 aWQ6IGY3YTcyYWMxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxKTogdGlkOiBmN2E3MmFjMSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIpOiB0aWQ6 IGY3YTcyYWMxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0Myk6IHRpZDogZjdhNzJhYzEgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzNWMwMCBuYmxvY2tzIDB4MzcgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NCk6IHRpZDogZjdhNzJhYzEgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUpOiB0aWQ6IGY3YTcyYWMxICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ2KTogdGlkOiBm N2E3MmFjMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MTMzOSAgbG9uZ2VzdDogMTk0OTEzMzkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0Nyk6IHRpZDogZjdhNzJhYzEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0OCk6IHRpZDogZjdhNzJhYzEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDkpOiB0aWQ6IGY3YTcyYWMxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDUwKTogdGlkOiBmN2E3MmFjMSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1MSk6IHRpZDogZjdhNzJhYzEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUyKTogdGlkOiBjOGJiY2QzMyAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg1Myk6IHRpZDogYzhiYmNkMzMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU0KTogdGlkOiBjOGJiY2QzMyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEyODAKT3BlciAoNTUpOiB0aWQ6IGM4YmJjZDMzICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4MzcwMDAgbmJsb2NrcyAweDM5IGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoNTYpOiB0aWQ6IGM4YmJjZDMzICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDU3KTogdGlkOiBjOGJiY2QzMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg1OCk6IHRpZDogYzhiYmNkMzMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzMzcg IGxvbmdlc3Q6IDE5NDkxMzM3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6IGM4 YmJjZDMzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoNjApOiB0aWQ6IGM4YmJjZDMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTogdGlk OiBjOGJiY2QzMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg2Mik6IHRpZDogYzhiYmNkMzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjMpOiB0 aWQ6IGM4YmJjZDMzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2NCk6IHRpZDogZjllMTJlMjAgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjUpOiB0 aWQ6IGY5ZTEyZTIwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg2Nik6IHRpZDogZjllMTJlMjAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9w ZXIgKDY3KTogdGlkOiBmOWUxMmUyMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6 ZSAweDM4NDAwIG5ibG9ja3MgMHgzYSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDY4KTogdGlkOiBmOWUxMmUyMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2OSk6 IHRpZDogZjllMTJlMjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNzApOiB0aWQ6IGY5ZTEyZTIwICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzM2ICBsb25nZXN0OiAxOTQ5 MTMzNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlkOiBmOWUxMmUyMCAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDcy KTogdGlkOiBmOWUxMmUyMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogZjllMTJlMjAgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NzQpOiB0aWQ6IGY5ZTEyZTIwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc1KTogdGlkOiBmOWUxMmUyMCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzYpOiB0aWQ6IDljMWIzNDc2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDc3KTogdGlkOiA5YzFiMzQ3NiAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNzgpOiB0aWQ6IDljMWIzNDc2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg3OSk6IHRpZDog OWMxYjM0NzYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzOTgwMCBuYmxv Y2tzIDB4M2IgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg4MCk6IHRp ZDogOWMxYjM0NzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODEpOiB0aWQ6IDljMWIzNDc2 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDgyKTogdGlkOiA5YzFiMzQ3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMzNSAgbG9uZ2VzdDogMTk0OTEzMzUKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg4Myk6IHRpZDogOWMxYjM0NzYgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4NCk6IHRpZDogOWMxYjM0 NzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDljMWIzNDc2ICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDg2KTogdGlkOiA5YzFi MzQ3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4Nyk6IHRpZDogOWMxYjM0NzYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg4KTog dGlkOiBkMWQyMmE1MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg4OSk6IHRpZDogZDFkMjJhNTEgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkwKTogdGlk OiBkMWQyMmE1MSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoOTEpOiB0aWQ6IGQxZDIyYTUxICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4M2FjMDAgbmJsb2NrcyAweDNjIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoOTIpOiB0aWQ6IGQxZDIyYTUxICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkzKTogdGlkOiBkMWQyMmE1MSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg5NCk6IHRpZDog ZDFkMjJhNTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTEzMzQgIGxvbmdlc3Q6IDE5NDkxMzM0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoOTUpOiB0aWQ6IGQxZDIyYTUxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoOTYpOiB0aWQ6IGQxZDIyYTUxICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDk3KTogdGlkOiBkMWQyMmE1MSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg5OCk6IHRpZDogZDFkMjJhNTEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoOTkpOiB0aWQ6IGQxZDIyYTUxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDApOiB0aWQ6IGNjNGQ2ZjQx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwMSk6IHRpZDogY2M0ZDZmNDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwMik6IHRpZDogY2M0ZDZmNDEg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDEwMyk6IHRpZDogY2M0ZDZmNDEgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGMgY3RpbWUgMHhjCnNpemUgMHgzYzAwMCBuYmxvY2tzIDB4M2UgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMDQpOiB0aWQ6IGNjNGQ2ZjQxICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDEwNSk6IHRpZDogY2M0ZDZmNDEgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTA2KTogdGlkOiBjYzRkNmY0 MSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MTMzMiAgbG9uZ2VzdDogMTk0OTEzMzIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDcp OiB0aWQ6IGNjNGQ2ZjQxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlkOiBjYzRkNmY0MSAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMDkpOiB0aWQ6IGNjNGQ2ZjQxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMCk6IHRpZDogY2M0ZDZmNDEgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTExKTogdGlkOiBjYzRkNmY0MSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEyKTogdGlkOiA3NTJjYzZmZiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxMTMpOiB0aWQ6IDc1MmNjNmZmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTQpOiB0aWQ6IDc1MmNjNmZmICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTI4MApPcGVyICgxMTUpOiB0aWQ6IDc1MmNjNmZmICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhjIGN0aW1lIDB4YwpzaXplIDB4M2Q0MDAgbmJsb2NrcyAweDNmIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTE2KTogdGlkOiA3NTJjYzZmZiAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMTcpOiB0aWQ6IDc1MmNjNmZmICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDExOCk6IHRpZDogNzUyY2M2ZmYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTEzMzEgIGxvbmdlc3Q6IDE5NDkxMzMxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTog dGlkOiA3NTJjYzZmZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDogNzUyY2M2ZmYgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTIxKTogdGlkOiA3NTJjYzZmZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjIpOiB0aWQ6IDc1MmNjNmZmICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEyMyk6IHRpZDogNzUyY2M2ZmYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNCk6IHRpZDogNjc4NmQ0MGYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTI1KTogdGlkOiA2Nzg2ZDQwZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI2KTogdGlkOiA2Nzg2ZDQwZiAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEyODAKT3BlciAoMTI3KTogdGlkOiA2Nzg2ZDQwZiAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 YyBjdGltZSAweGMKc2l6ZSAweDNlODAwIG5ibG9ja3MgMHg0MCBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDEyOCk6IHRpZDogNjc4NmQ0MGYgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTI5KTogdGlkOiA2Nzg2ZDQwZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzApOiB0aWQ6IDY3ODZkNDBmICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkx MzMwICBsb25nZXN0OiAxOTQ5MTMzMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRp ZDogNjc4NmQ0MGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IDY3ODZkNDBmICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEz Myk6IHRpZDogNjc4NmQ0MGYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoMTM0KTogdGlkOiA2Nzg2ZDQwZiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxMzUpOiB0aWQ6IDY3ODZkNDBmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzYpOiB0aWQ6IDNhOTY3NDA0ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDEzNyk6IHRpZDogM2E5Njc0MDQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzOCk6IHRpZDogM2E5Njc0MDQgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMjgwCk9wZXIgKDEzOSk6IHRpZDogM2E5Njc0MDQgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMg Y3RpbWUgMHhjCnNpemUgMHgzZmMwMCBuYmxvY2tzIDB4NDEgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICgxNDApOiB0aWQ6IDNhOTY3NDA0ICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE0MSk6IHRpZDogM2E5Njc0MDQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQyKTogdGlkOiAzYTk2NzQwNCAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMy OSAgbG9uZ2VzdDogMTk0OTEzMjkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6 IDNhOTY3NDA0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiAzYTk2NzQwNCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDUp OiB0aWQ6IDNhOTY3NDA0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDE0Nik6IHRpZDogM2E5Njc0MDQgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTQ3KTogdGlkOiAzYTk2NzQwNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ4KTogdGlkOiA0YWZjNWRiMyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxNDkpOiB0aWQ6IDRhZmM1ZGIzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTApOiB0aWQ6IDRhZmM1ZGIzICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTI4MApPcGVyICgxNTEpOiB0aWQ6IDRhZmM1ZGIzICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0 aW1lIDB4YwpzaXplIDB4NDEwMDAgbmJsb2NrcyAweDQzIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoMTUyKTogdGlkOiA0YWZjNWRiMyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNTMpOiB0aWQ6IDRhZmM1ZGIzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1NCk6IHRpZDogNGFmYzVkYjMgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzMjcg IGxvbmdlc3Q6IDE5NDkxMzI3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiA0 YWZjNWRiMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE1Nik6IHRpZDogNGFmYzVkYjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3KTog dGlkOiA0YWZjNWRiMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICgxNTgpOiB0aWQ6IDRhZmM1ZGIzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 OSk6IHRpZDogNGFmYzVkYjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MCk6IHRpZDogYzY2MDI0MDcgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTYxKTogdGlkOiBjNjYwMjQwNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTYyKTogdGlkOiBjNjYwMjQwNyAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEyODAKT3BlciAoMTYzKTogdGlkOiBjNjYwMjQwNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lv biAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGlt ZSAweGMKc2l6ZSAweDQyNDAwIG5ibG9ja3MgMHg0NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEK bmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4 MCBnZW4gMHgwCk9wZXIgKDE2NCk6IHRpZDogYzY2MDI0MDcgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTY1KTogdGlkOiBjNjYwMjQwNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJt YXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjYpOiB0aWQ6IGM2NjAyNDA3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAx ICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86 IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzI2ICBs b25nZXN0OiAxOTQ5MTMyNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogYzY2 MDI0MDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxNjgpOiB0aWQ6IGM2NjAyNDA3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6IHRp ZDogYzY2MDI0MDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoMTcwKTogdGlkOiBjNjYwMjQwNyAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzEp OiB0aWQ6IGM2NjAyNDA3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzIpOiB0aWQ6IGE0MzI1YTFhICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3 Myk6IHRpZDogYTQzMjVhMWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK VFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3NCk6IHRpZDogYTQzMjVhMWEgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MjgwCk9wZXIgKDE3NSk6IHRpZDogYTQzMjVhMWEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUg MHhjCnNpemUgMHg0MzgwMCBuYmxvY2tzIDB4NDUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICgxNzYpOiB0aWQ6IGE0MzI1YTFhICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE3Nyk6IHRpZDogYTQzMjVhMWEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFw IHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTc4KTogdGlkOiBhNDMyNWExYSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAg c2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAx ICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMyNSAgbG9u Z2VzdDogMTk0OTEzMjUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IGE0MzI1 YTFhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMTgwKTogdGlkOiBhNDMyNWExYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0aWQ6 IGE0MzI1YTFhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDE4Mik6IHRpZDogYTQzMjVhMWEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTgzKTog dGlkOiBhNDMyNWExYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg0KTogdGlkOiBhOWFkMzFiNCAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODUp OiB0aWQ6IGE5YWQzMWI0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODYpOiB0aWQ6IGE5YWQzMWI0ICBsZW46IDU2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxh Z3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4 MApPcGVyICgxODcpOiB0aWQ6IGE5YWQzMWI0ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIg Zm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4 YwpzaXplIDB4NDRjMDAgbmJsb2NrcyAweDQ2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4 dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdl biAweDAKT3BlciAoMTg4KTogdGlkOiBhOWFkMzFiNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgxODkpOiB0aWQ6IGE5YWQzMWI0ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5MCk6IHRpZDogYTlhZDMxYjQgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzMjQgIGxvbmdl c3Q6IDE5NDkxMzI0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiBhOWFkMzFi NCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDE5Mik6IHRpZDogYTlhZDMxYjQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlkOiBh OWFkMzFiNCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6 IDB4MApPcGVyICgxOTQpOiB0aWQ6IGE5YWQzMWI0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5NSk6IHRp ZDogYTlhZDMxYjQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5Nik6IHRpZDogZTVlNGUwNDUgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk3KTog dGlkOiBlNWU0ZTA0NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFO OiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTk4KTogdGlkOiBlNWU0ZTA0NSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAK T3BlciAoMTk5KTogdGlkOiBlNWU0ZTA0NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMK c2l6ZSAweDQ2MDAwIG5ibG9ja3MgMHg0OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDIwMCk6IHRpZDogZTVlNGUwNDUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjAxKTogdGlkOiBlNWU0ZTA0NSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6 ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDIpOiB0aWQ6IGU1ZTRlMDQ1ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzIyICBsb25nZXN0 OiAxOTQ5MTMyMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6IHRpZDogZTVlNGUwNDUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgyMDQpOiB0aWQ6IGU1ZTRlMDQ1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDogZTVl NGUwNDUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAw eDAKT3BlciAoMjA2KTogdGlkOiBlNWU0ZTA0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDcpOiB0aWQ6 IGU1ZTRlMDQ1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyMDgpOiB0aWQ6IGI2OTYzMDEwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwOSk6IHRp ZDogYjY5NjMwMTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjog ICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIxMCk6IHRpZDogYjY5NjMwMTAgIGxlbjogNTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczog MHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9w ZXIgKDIxMSk6IHRpZDogYjY5NjMwMTAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3Jt YXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNp emUgMHg0NzQwMCBuYmxvY2tzIDB4NDkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50 cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4 MApPcGVyICgyMTIpOiB0aWQ6IGI2OTYzMDEwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIx Myk6IHRpZDogYjY5NjMwMTAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMjE0KTogdGlkOiBiNjk2MzAxMCAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMyMSAgbG9uZ2VzdDog MTk0OTEzMjEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUpOiB0aWQ6IGI2OTYzMDEwICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMjE2KTogdGlkOiBiNjk2MzAxMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IGI2OTYz MDEwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDIxOCk6IHRpZDogYjY5NjMwMTAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjE5KTogdGlkOiBi Njk2MzAxMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjIwKTogdGlkOiBiMjJhMWVjICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyMSk6IHRpZDog YjIyYTFlYyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiBiMjJhMWVjICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgy MjMpOiB0aWQ6IGIyMmExZWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0 ODgwMCBuYmxvY2tzIDB4NGEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgyMjQpOiB0aWQ6IGIyMmExZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI1KTogdGlk OiBiMjJhMWVjICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDIyNik6IHRpZDogYjIyYTFlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMyMCAgbG9uZ2VzdDogMTk0OTEzMjAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjcpOiB0aWQ6IGIyMmExZWMgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjgpOiB0 aWQ6IGIyMmExZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiBiMjJhMWVjICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIzMCk6 IHRpZDogYjIyYTFlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzEpOiB0aWQ6IGIyMmExZWMgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDIzMik6IHRpZDogYTNmOTE3MWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMzKTogdGlkOiBhM2Y5MTcxYSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjM0KTogdGlkOiBhM2Y5MTcxYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMjM1KTogdGlkOiBh M2Y5MTcxYSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDQ5YzAwIG5ibG9j a3MgMHg0YiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIzNik6IHRp ZDogYTNmOTE3MWEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM3KTogdGlkOiBhM2Y5MTcx YSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgyMzgpOiB0aWQ6IGEzZjkxNzFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMzE5ICBsb25nZXN0OiAxOTQ5MTMxOQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDogYTNmOTE3MWEgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNDApOiB0aWQ6IGEz ZjkxNzFhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogYTNmOTE3MWEgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQyKTogdGlk OiBhM2Y5MTcxYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDMpOiB0aWQ6IGEzZjkxNzFhICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyNDQpOiB0aWQ6IDQ1NjZjNDAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0NSk6IHRpZDogNDU2NmM0MDIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI0Nik6IHRpZDogNDU2NmM0MDIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI0Nyk6IHRpZDogNDU2 NmM0MDIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0YjAwMCBuYmxvY2tz IDB4NGQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNDgpOiB0aWQ6 IDQ1NjZjNDAyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OSk6IHRpZDogNDU2NmM0MDIg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjUwKTogdGlkOiA0NTY2YzQwMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTMxNyAgbG9uZ2VzdDogMTk0OTEzMTcKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IDQ1NjZjNDAyICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjUyKTogdGlkOiA0NTY2 YzQwMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IDQ1NjZjNDAyICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1NCk6IHRpZDog NDU2NmM0MDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU1KTogdGlkOiA0NTY2YzQwMiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjU2KTogdGlkOiA2MDM1ODIxMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTcpOiB0aWQ6IDYwMzU4MjEyICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NTgpOiB0aWQ6IDYwMzU4MjEyICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyNTkpOiB0aWQ6IDYwMzU4 MjEyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NGM0MDAgbmJsb2NrcyAw eDRlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjYwKTogdGlkOiA2 MDM1ODIxMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNjEpOiB0aWQ6IDYwMzU4MjEyICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDI2Mik6IHRpZDogNjAzNTgyMTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTEzMTYgIGxvbmdlc3Q6IDE5NDkxMzE2Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiA2MDM1ODIxMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI2NCk6IHRpZDogNjAzNTgy MTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiA2MDM1ODIxMiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjYpOiB0aWQ6IDYw MzU4MjEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Nyk6IHRpZDogNjAzNTgyMTIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2 OCk6IHRpZDogZDA5ZjhhY2EgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY5KTogdGlkOiBkMDlmOGFjYSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcw KTogdGlkOiBkMDlmOGFjYSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMjcxKTogdGlkOiBkMDlmOGFj YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDRkODAwIG5ibG9ja3MgMHg0 ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI3Mik6IHRpZDogZDA5 ZjhhY2EgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjczKTogdGlkOiBkMDlmOGFjYSAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy NzQpOiB0aWQ6IGQwOWY4YWNhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkxMzE1ICBsb25nZXN0OiAxOTQ5MTMxNQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogZDA5ZjhhY2EgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0aWQ6IGQwOWY4YWNh ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogZDA5ZjhhY2EgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjc4KTogdGlkOiBkMDlm OGFjYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzkpOiB0aWQ6IGQwOWY4YWNhICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODAp OiB0aWQ6IDM1YzA1N2M4ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4MSk6IHRpZDogMzVjMDU3YzggIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4Mik6 IHRpZDogMzVjMDU3YzggIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI4Myk6IHRpZDogMzVjMDU3Yzgg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg0ZWMwMCBuYmxvY2tzIDB4NTAg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyODQpOiB0aWQ6IDM1YzA1 N2M4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4NSk6IHRpZDogMzVjMDU3YzggIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjg2 KTogdGlkOiAzNWMwNTdjOCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MTMxNCAgbG9uZ2VzdDogMTk0OTEzMTQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODcpOiB0aWQ6IDM1YzA1N2M4ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjg4KTogdGlkOiAzNWMwNTdjOCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyODkpOiB0aWQ6IDM1YzA1N2M4ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5MCk6IHRpZDogMzVjMDU3 YzggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjkxKTogdGlkOiAzNWMwNTdjOCAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjkyKTog dGlkOiBlM2RkZTgwYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMpOiB0aWQ6IGUzZGRlODBiICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTQpOiB0 aWQ6IGUzZGRlODBiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyOTUpOiB0aWQ6IGUzZGRlODBiICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTAwMDAgbmJsb2NrcyAweDUyIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjk2KTogdGlkOiBlM2RkZTgw YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTcpOiB0aWQ6IGUzZGRlODBiICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5OCk6 IHRpZDogZTNkZGU4MGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTEzMTIgIGxvbmdlc3Q6IDE5NDkxMzEyCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjk5KTogdGlkOiBlM2RkZTgwYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMCk6IHRpZDogZTNkZGU4MGIgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiBlM2RkZTgwYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDIpOiB0aWQ6IGUzZGRlODBi ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMwMyk6IHRpZDogZTNkZGU4MGIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNCk6IHRp ZDogMTkyMDhkMTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzA1KTogdGlkOiAxOTIwOGQxMyAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA2KTogdGlk OiAxOTIwOGQxMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzA3KTogdGlkOiAxOTIwOGQxMyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDUxNDAwIG5ibG9ja3MgMHg1MyBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMwOCk6IHRpZDogMTkyMDhkMTMg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA5KTogdGlkOiAxOTIwOGQxMyAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMTApOiB0 aWQ6IDE5MjA4ZDEzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkxMzExICBsb25nZXN0OiAxOTQ5MTMxMQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxMSk6IHRpZDogMTkyMDhkMTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTIpOiB0aWQ6IDE5MjA4ZDEzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogMTkyMDhkMTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE0KTogdGlkOiAxOTIwOGQxMyAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMTUpOiB0aWQ6IDE5MjA4ZDEzICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTYpOiB0aWQ6 IGI1ZWFlZTEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMxNyk6IHRpZDogYjVlYWVlMTMgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOCk6IHRpZDog YjVlYWVlMTMgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDMxOSk6IHRpZDogYjVlYWVlMTMgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1MjgwMCBuYmxvY2tzIDB4NTQgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMjApOiB0aWQ6IGI1ZWFlZTEzICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMSk6IHRpZDogYjVlYWVlMTMgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzIyKTogdGlk OiBiNWVhZWUxMyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MTMxMCAgbG9uZ2VzdDogMTk0OTEzMTAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjMpOiB0aWQ6IGI1ZWFlZTEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI0KTogdGlkOiBiNWVhZWUxMyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzMjUpOiB0aWQ6IGI1ZWFlZTEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyNik6IHRpZDogYjVlYWVlMTMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzI3KTogdGlkOiBiNWVhZWUxMyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI4KTogdGlkOiA3 YzAzMWE2NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzMjkpOiB0aWQ6IDdjMDMxYTY2ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzApOiB0aWQ6IDdj MDMxYTY2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzMzEpOiB0aWQ6IDdjMDMxYTY2ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTNjMDAgbmJsb2NrcyAweDU1IGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzMyKTogdGlkOiA3YzAzMWE2NiAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzMpOiB0aWQ6IDdjMDMxYTY2ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMzNCk6IHRpZDog N2MwMzFhNjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTEzMDkgIGxvbmdlc3Q6IDE5NDkxMzA5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM1KTogdGlkOiA3YzAzMWE2NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzNik6IHRpZDogN2MwMzFhNjYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzM3KTogdGlkOiA3YzAzMWE2NiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMzgpOiB0aWQ6IDdjMDMxYTY2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDMzOSk6IHRpZDogN2MwMzFhNjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MCk6IHRpZDogYTE4 NTIxMDIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzQxKTogdGlkOiBhMTg1MjEwMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQyKTogdGlkOiBhMTg1 MjEwMiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzQzKTogdGlkOiBhMTg1MjEwMiAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDU1MDAwIG5ibG9ja3MgMHg1NyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM0NCk6IHRpZDogYTE4NTIxMDIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ1KTogdGlkOiBhMTg1MjEwMiAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDYpOiB0aWQ6IGEx ODUyMTAyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkxMzA3ICBsb25nZXN0OiAxOTQ5MTMwNwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM0Nyk6IHRpZDogYTE4NTIxMDIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDgpOiB0aWQ6IGExODUyMTAyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM0OSk6IHRpZDogYTE4NTIxMDIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUwKTogdGlkOiBhMTg1MjEwMiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNTEpOiB0aWQ6IGExODUyMTAyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTIpOiB0aWQ6IGI4NmQw NjAxICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM1Myk6IHRpZDogYjg2ZDA2MDEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NCk6IHRpZDogYjg2ZDA2 MDEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDM1NSk6IHRpZDogYjg2ZDA2MDEgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg1NjQwMCBuYmxvY2tzIDB4NTggZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNTYpOiB0aWQ6IGI4NmQwNjAxICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM1Nyk6IHRpZDogYjg2ZDA2MDEgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzU4KTogdGlkOiBiODZk MDYwMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MTMwNiAgbG9uZ2VzdDogMTk0OTEzMDYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NTkpOiB0aWQ6IGI4NmQwNjAxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYwKTogdGlkOiBiODZkMDYwMSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzNjEpOiB0aWQ6IGI4NmQwNjAxICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2Mik6IHRpZDogYjg2ZDA2MDEgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzYzKTogdGlkOiBiODZkMDYwMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY0KTogdGlkOiBmNTA3MzY0 NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgzNjUpOiB0aWQ6IGY1MDczNjQ3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjYpOiB0aWQ6IGY1MDczNjQ3 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTI4MApPcGVyICgzNjcpOiB0aWQ6IGY1MDczNjQ3ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NTc4MDAgbmJsb2NrcyAweDU5IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzY4KTogdGlkOiBmNTA3MzY0NyAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzNjkpOiB0aWQ6IGY1MDczNjQ3ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3MCk6IHRpZDogZjUwNzM2 NDcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTEzMDUgIGxvbmdlc3Q6IDE5NDkxMzA1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcx KTogdGlkOiBmNTA3MzY0NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRpZDogZjUwNzM2NDcgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzczKTogdGlkOiBmNTA3MzY0NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzQpOiB0aWQ6IGY1MDczNjQ3ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM3NSk6IHRpZDogZjUwNzM2NDcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nik6IHRpZDogYTRlNDIxNWYg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzc3KTogdGlkOiBhNGU0MjE1ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc4KTogdGlkOiBhNGU0MjE1ZiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEyODAKT3BlciAoMzc5KTogdGlkOiBhNGU0MjE1ZiAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4YyBjdGltZSAweGMKc2l6ZSAweDU4YzAwIG5ibG9ja3MgMHg1YSBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM4MCk6IHRpZDogYTRlNDIxNWYgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzgxKTogdGlkOiBhNGU0MjE1ZiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzODIpOiB0aWQ6IGE0ZTQyMTVm ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkxMzA0ICBsb25nZXN0OiAxOTQ5MTMwNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6 IHRpZDogYTRlNDIxNWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6IGE0ZTQyMTVmICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM4NSk6IHRpZDogYTRlNDIxNWYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg2KTogdGlkOiBhNGU0MjE1ZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzODcpOiB0aWQ6IGE0ZTQyMTVmICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODgpOiB0aWQ6IGZkYzEzZDJhICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDM4OSk6IHRpZDogZmRjMTNkMmEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5MCk6IHRpZDogZmRjMTNkMmEgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMjgwCk9wZXIgKDM5MSk6IHRpZDogZmRjMTNkMmEgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGMgY3RpbWUgMHhjCnNpemUgMHg1YTAwMCBuYmxvY2tzIDB4NWMgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgzOTIpOiB0aWQ6IGZkYzEzZDJhICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDM5Myk6IHRpZDogZmRjMTNkMmEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzk0KTogdGlkOiBmZGMxM2QyYSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MTMwMiAgbG9uZ2VzdDogMTk0OTEzMDIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0 aWQ6IGZkYzEzZDJhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiBmZGMxM2QyYSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz OTcpOiB0aWQ6IGZkYzEzZDJhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDM5OCk6IHRpZDogZmRjMTNkMmEgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzk5KTogdGlkOiBmZGMxM2QyYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAwKTogdGlkOiA3N2UxZDA4NSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0MDEpOiB0aWQ6IDc3ZTFkMDg1ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDIpOiB0aWQ6IDc3ZTFkMDg1ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTI4MApPcGVyICg0MDMpOiB0aWQ6IDc3ZTFkMDg1ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhj IGN0aW1lIDB4YwpzaXplIDB4NWI0MDAgbmJsb2NrcyAweDVkIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoNDA0KTogdGlkOiA3N2UxZDA4NSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MDUpOiB0aWQ6IDc3ZTFkMDg1ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwNik6IHRpZDogNzdlMWQwODUgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEz MDEgIGxvbmdlc3Q6IDE5NDkxMzAxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlk OiA3N2UxZDA4NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogNzdlMWQwODUgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA5 KTogdGlkOiA3N2UxZDA4NSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICg0MTApOiB0aWQ6IDc3ZTFkMDg1ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQxMSk6IHRpZDogNzdlMWQwODUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMik6IHRpZDogOWQ1Yzk4MCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MTMpOiB0aWQ6IDlkNWM5ODAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogOWQ1Yzk4MCAgbGVuOiA1NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUg IGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6 IDEyODAKT3BlciAoNDE1KTogdGlkOiA5ZDVjOTgwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1l IDB4YwpzaXplIDB4NWM4MDAgbmJsb2NrcyAweDVlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoNDE2KTogdGlkOiA5ZDVjOTgwICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQxNyk6IHRpZDogOWQ1Yzk4MCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MTgpOiB0aWQ6IDlkNWM5ODAgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNl cSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAg Q05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEzMDAgIGxvbmdl c3Q6IDE5NDkxMzAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA5ZDVjOTgw ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoNDIwKTogdGlkOiA5ZDVjOTgwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMSk6IHRpZDogOWQ1 Yzk4MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICg0MjIpOiB0aWQ6IDlkNWM5ODAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDIzKTogdGlkOiA5 ZDVjOTgwICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg0MjQpOiB0aWQ6IGIwZGM1ZjBjICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyNSk6IHRpZDog YjBkYzVmMGMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQyNik6IHRpZDogYjBkYzVmMGMgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIg KDQyNyk6IHRpZDogYjBkYzVmMGMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUg MHg1ZGMwMCBuYmxvY2tzIDB4NWYgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICg0MjgpOiB0aWQ6IGIwZGM1ZjBjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOSk6 IHRpZDogYjBkYzVmMGMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoNDMwKTogdGlkOiBiMGRjNWYwYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI5OSAgbG9uZ2VzdDogMTk0 OTEyOTkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzEpOiB0aWQ6IGIwZGM1ZjBjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDMyKTogdGlkOiBiMGRjNWYwYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMpOiB0aWQ6IGIwZGM1ZjBj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDQzNCk6IHRpZDogYjBkYzVmMGMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM1KTogdGlkOiBiMGRj NWYwYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNDM2KTogdGlkOiAyZjgwOGI1YiAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzcpOiB0aWQ6IDJm ODA4YjViICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MzgpOiB0aWQ6IDJmODA4YjViICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0 MzkpOiB0aWQ6IDJmODA4YjViICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4 NWYwMDAgbmJsb2NrcyAweDYxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoNDQwKTogdGlkOiAyZjgwOGI1YiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDEpOiB0 aWQ6IDJmODA4YjViICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQ0Mik6IHRpZDogMmY4MDhiNWIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyOTcgIGxvbmdlc3Q6IDE5NDkx Mjk3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiAyZjgwOGI1YiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ0 NCk6IHRpZDogMmY4MDhiNWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTogdGlkOiAyZjgwOGI1YiAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0NDYpOiB0aWQ6IDJmODA4YjViICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0Nyk6IHRpZDogMmY4MDhi NWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQ0OCk6IHRpZDogZjJkYWJlYWIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ5KTogdGlkOiBmMmRh YmVhYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDUwKTogdGlkOiBmMmRhYmVhYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDUx KTogdGlkOiBmMmRhYmVhYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDYw NDAwIG5ibG9ja3MgMHg2MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDQ1Mik6IHRpZDogZjJkYWJlYWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUzKTogdGlk OiBmMmRhYmVhYiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0NTQpOiB0aWQ6IGYyZGFiZWFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjk2ICBsb25nZXN0OiAxOTQ5MTI5 NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6IHRpZDogZjJkYWJlYWIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTYp OiB0aWQ6IGYyZGFiZWFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRpZDogZjJkYWJlYWIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDU4KTogdGlkOiBmMmRhYmVhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTkpOiB0aWQ6IGYyZGFiZWFi ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0NjApOiB0aWQ6IGViMmM2ODc2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2MSk6IHRpZDogZWIyYzY4 NzYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ2Mik6IHRpZDogZWIyYzY4NzYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQ2Myk6 IHRpZDogZWIyYzY4NzYgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2MTgw MCBuYmxvY2tzIDB4NjMgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0 NjQpOiB0aWQ6IGViMmM2ODc2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NSk6IHRpZDog ZWIyYzY4NzYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDY2KTogdGlkOiBlYjJjNjg3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI5NSAgbG9uZ2VzdDogMTk0OTEyOTUK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IGViMmM2ODc2ICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDY4KTog dGlkOiBlYjJjNjg3NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6IGViMmM2ODc2ICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3 MCk6IHRpZDogZWIyYzY4NzYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDcxKTogdGlkOiBlYjJjNjg3NiAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDcyKTogdGlkOiA0N2YwMDgzMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzMpOiB0aWQ6IDQ3ZjAwODMz ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NzQpOiB0aWQ6IDQ3ZjAwODMzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0NzUpOiB0 aWQ6IDQ3ZjAwODMzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjJjMDAg bmJsb2NrcyAweDY0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDc2 KTogdGlkOiA0N2YwMDgzMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzcpOiB0aWQ6IDQ3 ZjAwODMzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQ3OCk6IHRpZDogNDdmMDA4MzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyOTQgIGxvbmdlc3Q6IDE5NDkxMjk0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlkOiA0N2YwMDgzMyAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRp ZDogNDdmMDA4MzMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiA0N2YwMDgzMyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODIp OiB0aWQ6IDQ3ZjAwODMzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Myk6IHRpZDogNDdmMDA4MzMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ4NCk6IHRpZDogZjdjOTY4MTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg1KTogdGlkOiBmN2M5NjgxNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDg2KTogdGlkOiBmN2M5NjgxNyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDg3KTogdGlk OiBmN2M5NjgxNyAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDY0MDAwIG5i bG9ja3MgMHg2NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ4OCk6 IHRpZDogZjdjOTY4MTcgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg5KTogdGlkOiBmN2M5 NjgxNyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0OTApOiB0aWQ6IGY3Yzk2ODE3ICBsZW46IDQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTlRJTlVFIApBR0YgQnVmZmVyOiBYQUdGICBPdXQgb2Ygc3BhY2UKCj09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KY3ljbGU6IDEJdmVyc2lvbjogMgkJbHNuOiAxLDQ2NAl0YWlsX2xzbjogMSwzMjYK bGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMyMjU2CXByZXYgb2Zmc2V0OiA0MDAJCW51bSBvcHM6IDQ4 OQp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2NGQtYmZmZi1iOTJlZThlY2FjNmMgICBmb3JtYXQ6IGxp dHRsZSBlbmRpYW4gbGludXgKaF9zaXplOiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDApOiB0aWQ6IGY3Yzk2ODE3ICBsZW46IDEyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogV0FT X0NPTlQgRU5EIApMZWZ0IG92ZXIgcmVnaW9uIGZyb20gc3BsaXQgbG9nIGl0ZW0KLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxKTogdGlkOiBmN2M5NjgxNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIpOiB0aWQ6IGY3Yzk2ODE3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDMpOiB0aWQ6IGY3Yzk2ODE3ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQpOiB0aWQ6IGY3Yzk2ODE3 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IGY3Yzk2ODE3ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2KTogdGlkOiA5 MTc4MDlmMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg3KTogdGlkOiA5MTc4MDlmMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOCk6IHRpZDogOTE3ODA5 ZjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDkpOiB0aWQ6IDkxNzgwOWYyICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjU0MDAgbmJsb2NrcyAweDY3IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTApOiB0aWQ6IDkxNzgwOWYyICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDExKTogdGlkOiA5MTc4MDlmMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMik6IHRpZDogOTE3ODA5ZjIg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTEyOTEgIGxvbmdlc3Q6IDE5NDkxMjkxCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTMpOiB0 aWQ6IDkxNzgwOWYyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTQpOiB0aWQ6IDkxNzgwOWYyICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1 KTogdGlkOiA5MTc4MDlmMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxNik6IHRpZDogOTE3ODA5ZjIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTcpOiB0aWQ6IDkxNzgwOWYyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxOCk6IHRpZDogODk1NTE1ZTEgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MTkpOiB0aWQ6IDg5NTUxNWUxICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMCk6IHRpZDogODk1NTE1ZTEgIGxlbjogNTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBm bGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAx MjgwCk9wZXIgKDIxKTogdGlkOiA4OTU1MTVlMSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4YyBjdGltZSAw eGMKc2l6ZSAweDY2ODAwIG5ibG9ja3MgMHg2OCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDIyKTogdGlkOiA4OTU1MTVlMSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMyk6IHRpZDogODk1NTE1ZTEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQpOiB0aWQ6IDg5NTUxNWUxICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjkwICBsb25nZXN0 OiAxOTQ5MTI5MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI1KTogdGlkOiA4OTU1MTVlMSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI2KTogdGlkOiA4OTU1MTVlMSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogODk1NTE1 ZTEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjgpOiB0aWQ6IDg5NTUxNWUxICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5KTogdGlkOiA4OTU1 MTVlMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzApOiB0aWQ6IGEyODUyOGYwICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxKTogdGlkOiBhMjg1 MjhmMCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzIpOiB0aWQ6IGEyODUyOGYwICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzMyk6 IHRpZDogYTI4NTI4ZjAgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGMgY3RpbWUgMHhjCnNpemUgMHg2N2Mw MCBuYmxvY2tzIDB4NjkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgz NCk6IHRpZDogYTI4NTI4ZjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzUpOiB0aWQ6IGEy ODUyOGYwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDM2KTogdGlkOiBhMjg1MjhmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI4OSAgbG9uZ2VzdDogMTk0OTEyODkKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNyk6IHRpZDogYTI4NTI4ZjAgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzOCk6IHRpZDog YTI4NTI4ZjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkpOiB0aWQ6IGEyODUyOGYwICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwKTogdGlk OiBhMjg1MjhmMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6IHRpZDogYTI4NTI4ZjAgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQyKTogdGlkOiA0MjFlY2ZhMyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Myk6IHRpZDogNDIxZWNmYTMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0 KTogdGlkOiA0MjFlY2ZhMyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDUpOiB0aWQ6IDQyMWVjZmEz ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhjIGN0aW1lIDB4YwpzaXplIDB4NjkwMDAgbmJsb2NrcyAweDZi IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDYpOiB0aWQ6IDQyMWVj ZmEzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3KTogdGlkOiA0MjFlY2ZhMyAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0OCk6 IHRpZDogNDIxZWNmYTMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTEyODcgIGxvbmdlc3Q6IDE5NDkxMjg3Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDkpOiB0aWQ6IDQyMWVjZmEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNTApOiB0aWQ6IDQyMWVjZmEzICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDUxKTogdGlkOiA0MjFlY2ZhMyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg1Mik6IHRpZDogNDIxZWNmYTMgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDQyMWVjZmEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1NCk6IHRpZDogY2Fl ZWI4YjIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoNTUpOiB0aWQ6IGNhZWViOGIyICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg1Nik6IHRpZDogY2FlZWI4 YjIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDU3KTogdGlkOiBjYWVlYjhiMiAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4YyBjdGltZSAweGMKc2l6ZSAweDZhNDAwIG5ibG9ja3MgMHg2YyBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDU4KTogdGlkOiBjYWVlYjhiMiAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICg1OSk6IHRpZDogY2FlZWI4YjIgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNjApOiB0aWQ6IGNhZWViOGIy ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkxMjg2ICBsb25nZXN0OiAxOTQ5MTI4NgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDYxKTog dGlkOiBjYWVlYjhiMiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDYyKTogdGlkOiBjYWVlYjhiMiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2 Myk6IHRpZDogY2FlZWI4YjIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNjQpOiB0aWQ6IGNhZWViOGIyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDY1KTogdGlkOiBjYWVlYjhiMiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjYpOiB0aWQ6IDg3NDk0NmUyICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDY3KTogdGlkOiA4NzQ5NDZlMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNjgpOiB0aWQ6IDg3NDk0NmUyICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTI4MApPcGVyICg2OSk6IHRpZDogODc0OTQ2ZTIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24g MiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUg MHhkCnNpemUgMHg2YjgwMCBuYmxvY2tzIDB4NmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5h ZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAg Z2VuIDB4MApPcGVyICg3MCk6IHRpZDogODc0OTQ2ZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNzEpOiB0aWQ6IDg3NDk0NmUyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDcyKTogdGlkOiA4NzQ5NDZlMiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI4NSAgbG9uZ2Vz dDogMTk0OTEyODUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Myk6IHRpZDogODc0OTQ2ZTIg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICg3NCk6IHRpZDogODc0OTQ2ZTIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IDg3NDk0 NmUyICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDc2KTogdGlkOiA4NzQ5NDZlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3Nyk6IHRpZDogODc0 OTQ2ZTIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDc4KTogdGlkOiA4YjY0ZTA4MyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg3OSk6IHRpZDogOGI2 NGUwODMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDgwKTogdGlkOiA4YjY0ZTA4MyAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoODEp OiB0aWQ6IDhiNjRlMDgzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4NmNj MDAgbmJsb2NrcyAweDZlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo ODIpOiB0aWQ6IDhiNjRlMDgzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgzKTogdGlkOiA4 YjY0ZTA4MyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICg4NCk6IHRpZDogOGI2NGUwODMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyODQgIGxvbmdlc3Q6IDE5NDkxMjg0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODUpOiB0aWQ6IDhiNjRlMDgzICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoODYpOiB0aWQ6 IDhiNjRlMDgzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg3KTogdGlkOiA4YjY0ZTA4MyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg4OCk6IHRp ZDogOGI2NGUwODMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6IDhiNjRlMDgzICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg5MCk6IHRpZDogYzljZDFmOWEgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTEpOiB0aWQ6IGM5Y2QxZjlhICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 Mik6IHRpZDogYzljZDFmOWEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDkzKTogdGlkOiBjOWNkMWY5 YSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDZlMDAwIG5ibG9ja3MgMHg3 MCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDk0KTogdGlkOiBjOWNk MWY5YSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NSk6IHRpZDogYzljZDFmOWEgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoOTYp OiB0aWQ6IGM5Y2QxZjlhICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkxMjgyICBsb25nZXN0OiAxOTQ5MTI4MgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDk3KTogdGlkOiBjOWNkMWY5YSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDk4KTogdGlkOiBjOWNkMWY5YSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg5OSk6IHRpZDogYzljZDFmOWEgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTAwKTogdGlkOiBjOWNkMWY5YSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IGM5Y2QxZjlhICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDIpOiB0aWQ6 IDNlZDI3ZTg0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDEwMyk6IHRpZDogM2VkMjdlODQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNCk6IHRpZDog M2VkMjdlODQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDEwNSk6IHRpZDogM2VkMjdlODQgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg2ZjQwMCBuYmxvY2tzIDB4NzEgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxMDYpOiB0aWQ6IDNlZDI3ZTg0ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEwNyk6IHRpZDogM2VkMjdlODQgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTA4KTogdGlk OiAzZWQyN2U4NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MTI4MSAgbG9uZ2VzdDogMTk0OTEyODEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxMDkpOiB0aWQ6IDNlZDI3ZTg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTEwKTogdGlkOiAzZWQyN2U4NCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMTEpOiB0aWQ6IDNlZDI3ZTg0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDExMik6IHRpZDogM2VkMjdlODQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiAzZWQyN2U4NCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE0KTogdGlkOiBk ZDk0ZTI1NyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMTUpOiB0aWQ6IGRkOTRlMjU3ICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAg ICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTYpOiB0aWQ6IGRk OTRlMjU3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVn czogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2 NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgxMTcpOiB0aWQ6IGRkOTRlMjU3ICBsZW46IDk2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1v ZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAw eGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4NzA4MDAgbmJsb2NrcyAweDcyIGV4dHNpemUg MHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1z dGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTE4KTogdGlkOiBkZDk0ZTI1NyAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTkpOiB0aWQ6IGRkOTRlMjU3ICBsZW46IDI0ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEg KDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDEyMCk6IHRpZDog ZGQ5NGUyNTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZm ZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAg Q05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVl YmxrczogMTk0OTEyODAgIGxvbmdlc3Q6IDE5NDkxMjgwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTIxKTogdGlkOiBkZDk0ZTI1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDEyMik6IHRpZDogZGQ5NGUyNTcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTIzKTogdGlkOiBkZDk0ZTI1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMjQpOiB0aWQ6IGRkOTRlMjU3ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEyNSk6IHRpZDogZGQ5NGUyNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNik6IHRpZDogYzQ4 NmIyZDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTI3KTogdGlkOiBjNDg2YjJkNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTI4KTogdGlkOiBjNDg2 YjJkNCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6 IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQg IGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTI5KTogdGlkOiBjNDg2YjJkNCAgbGVuOiA5NiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2Rl IDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhj IG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDcxYzAwIG5ibG9ja3MgMHg3MyBleHRzaXplIDB4 MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3Rh dGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDEzMCk6IHRpZDogYzQ4NmIyZDQgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTMxKTogdGlkOiBjNDg2YjJkNCAgbGVuOiAyNCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgw eDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxMzIpOiB0aWQ6IGM0 ODZiMmQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVy OiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENO VDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJs a3M6IDE5NDkxMjc5ICBsb25nZXN0OiAxOTQ5MTI3OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDEzMyk6IHRpZDogYzQ4NmIyZDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxMzQpOiB0aWQ6IGM0ODZiMmQ0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEzNSk6IHRpZDogYzQ4NmIyZDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM2KTogdGlkOiBjNDg2YjJkNCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxMzcpOiB0aWQ6IGM0ODZiMmQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzgpOiB0aWQ6IDczNzlh ZTk2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzOSk6IHRpZDogNzM3OWFlOTYgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAg IG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE0MCk6IHRpZDogNzM3OWFl OTYgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAz ICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBs ZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDE0MSk6IHRpZDogNzM3OWFlOTYgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg3MzAwMCBuYmxvY2tzIDB4NzUgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNDIpOiB0aWQ6IDczNzlhZTk2ICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE0Myk6IHRpZDogNzM3OWFlOTYgIGxlbjogMjQgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgx KSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTQ0KTogdGlkOiA3Mzc5 YWU5NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjog WEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6 IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtz OiAxOTQ5MTI3NyAgbG9uZ2VzdDogMTk0OTEyNzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx NDUpOiB0aWQ6IDczNzlhZTk2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTQ2KTogdGlkOiA3Mzc5YWU5NiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNDcpOiB0aWQ6IDczNzlhZTk2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE0OCk6IHRpZDogNzM3OWFlOTYgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTQ5KTogdGlkOiA3Mzc5YWU5NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUwKTogdGlkOiA5NjYzMTYx OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNTEpOiB0aWQ6IDk2NjMxNjE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBu dW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNTIpOiB0aWQ6IDk2NjMxNjE4 ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAg IGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVu OiAxNiAgYm9mZjogMTI4MApPcGVyICgxNTMpOiB0aWQ6IDk2NjMxNjE4ICBsZW46IDk2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEw MDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRp bWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4NzQ0MDAgbmJsb2NrcyAweDc2IGV4dHNpemUgMHgwIG5l eHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAw eDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTU0KTogdGlkOiA5NjYzMTYxOCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxNTUpOiB0aWQ6IDk2NjMxNjE4ICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE1Nik6IHRpZDogOTY2MzE2 MTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhB R0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAy CmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczog MTk0OTEyNzYgIGxvbmdlc3Q6IDE5NDkxMjc2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU3 KTogdGlkOiA5NjYzMTYxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE1OCk6IHRpZDogOTY2MzE2MTggIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTU5KTogdGlkOiA5NjYzMTYxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAg c2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjApOiB0aWQ6IDk2NjMxNjE4ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE2MSk6IHRpZDogOTY2MzE2MTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Mik6IHRpZDogYjI3ZTY4OWUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTYzKTogdGlkOiBiMjdlNjg5ZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTY0KTogdGlkOiBiMjdlNjg5ZSAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEyODAKT3BlciAoMTY1KTogdGlkOiBiMjdlNjg5ZSAgbGVuOiA5NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2 NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1l IDB4ZCBjdGltZSAweGQKc2l6ZSAweDc1ODAwIG5ibG9ja3MgMHg3NyBleHRzaXplIDB4MCBuZXh0 ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgw CmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE2Nik6IHRpZDogYjI3ZTY4OWUgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTY3KTogdGlkOiBiMjdlNjg5ZSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBs ZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgxNjgpOiB0aWQ6IGIyN2U2ODll ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdG ICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgps ZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5 NDkxMjc1ICBsb25nZXN0OiAxOTQ5MTI3NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2OSk6 IHRpZDogYjI3ZTY4OWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxNzApOiB0aWQ6IGIyN2U2ODllICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE3MSk6IHRpZDogYjI3ZTY4OWUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNp emU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTcyKTogdGlkOiBiMjdlNjg5ZSAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxNzMpOiB0aWQ6IGIyN2U2ODllICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzQpOiB0aWQ6IDJlMzVlZjIwICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE3NSk6IHRpZDogMmUzNWVmMjAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9p dGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3Nik6IHRpZDogMmUzNWVmMjAgIGxl bjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5v OiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2 ICBib2ZmOiAxMjgwCk9wZXIgKDE3Nyk6IHRpZDogMmUzNWVmMjAgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGQgY3RpbWUgMHhkCnNpemUgMHg3NmMwMCBuYmxvY2tzIDB4NzggZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgxNzgpOiB0aWQ6IDJlMzVlZjIwICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDE3OSk6IHRpZDogMmUzNWVmMjAgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVu OiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMTgwKTogdGlkOiAyZTM1ZWYyMCAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAg CnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2 ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5 MTI3NCAgbG9uZ2VzdDogMTk0OTEyNzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODEpOiB0 aWQ6IDJlMzVlZjIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMTgyKTogdGlkOiAyZTM1ZWYyMCAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgx ODMpOiB0aWQ6IDJlMzVlZjIwICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDE4NCk6IHRpZDogMmUzNWVmMjAgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTg1KTogdGlkOiAyZTM1ZWYyMCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBD T01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg2KTogdGlkOiA0YWY0MTgxOCAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxODcpOiB0aWQ6IDRhZjQxODE4ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRl bXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODgpOiB0aWQ6IDRhZjQxODE4ICBsZW46 IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzog MHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAg Ym9mZjogMTI4MApPcGVyICgxODkpOiB0aWQ6IDRhZjQxODE4ICBsZW46IDk2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2 ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhk IGN0aW1lIDB4ZApzaXplIDB4NzgwMDAgbmJsb2NrcyAweDdhIGV4dHNpemUgMHgwIG5leHRlbnRz IDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxh Z3MgMHgwIGdlbiAweDAKT3BlciAoMTkwKTogdGlkOiA0YWY0MTgxOCAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxOTEpOiB0aWQ6IDRhZjQxODE4ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDE5Mik6IHRpZDogNGFmNDE4MTggIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEy NzIgIGxvbmdlc3Q6IDE5NDkxMjcyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkzKTogdGlk OiA0YWY0MTgxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDE5NCk6IHRpZDogNGFmNDE4MTggIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1 KTogdGlkOiA0YWY0MTgxOCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgxOTYpOiB0aWQ6IDRhZjQxODE4ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDE5Nyk6IHRpZDogNGFmNDE4MTggIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OCk6IHRpZDogZDRjY2VkNzkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTk5KTogdGlkOiBkNGNjZWQ3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjAwKTogdGlkOiBkNGNjZWQ3OSAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEyODAKT3BlciAoMjAxKTogdGlkOiBkNGNjZWQ3OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBj dGltZSAweGQKc2l6ZSAweDc5NDAwIG5ibG9ja3MgMHg3YiBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDIwMik6IHRpZDogZDRjY2VkNzkgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjAzKTogdGlkOiBkNGNjZWQ3OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyMDQpOiB0aWQ6IGQ0Y2NlZDc5ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjcx ICBsb25nZXN0OiAxOTQ5MTI3MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNSk6IHRpZDog ZDRjY2VkNzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMDYpOiB0aWQ6IGQ0Y2NlZDc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6 IHRpZDogZDRjY2VkNzkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMjA4KTogdGlkOiBkNGNjZWQ3OSAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MDkpOiB0aWQ6IGQ0Y2NlZDc5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTApOiB0aWQ6IGU3NGVlODljICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIxMSk6IHRpZDogZTc0ZWU4OWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIxMik6IHRpZDogZTc0ZWU4OWMgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMjgwCk9wZXIgKDIxMyk6IHRpZDogZTc0ZWU4OWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3Rp bWUgMHhkCnNpemUgMHg3YTgwMCBuYmxvY2tzIDB4N2MgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgyMTQpOiB0aWQ6IGU3NGVlODljICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDIxNSk6IHRpZDogZTc0ZWU4OWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjE2KTogdGlkOiBlNzRlZTg5YyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI3MCAg bG9uZ2VzdDogMTk0OTEyNzAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTcpOiB0aWQ6IGU3 NGVlODljICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjE4KTogdGlkOiBlNzRlZTg5YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0 aWQ6IGU3NGVlODljICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDIyMCk6IHRpZDogZTc0ZWU4OWMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIx KTogdGlkOiBlNzRlZTg5YyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjIyKTogdGlkOiA2NDZjYzkxZSAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MjMpOiB0aWQ6IDY0NmNjOTFlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMjQpOiB0aWQ6IDY0NmNjOTFlICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTI4MApPcGVyICgyMjUpOiB0aWQ6IDY0NmNjOTFlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1l IDB4ZApzaXplIDB4N2JjMDAgbmJsb2NrcyAweDdkIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMjI2KTogdGlkOiA2NDZjYzkxZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyMjcpOiB0aWQ6IDY0NmNjOTFlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDIyOCk6IHRpZDogNjQ2Y2M5MWUgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyNjkgIGxv bmdlc3Q6IDE5NDkxMjY5Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI5KTogdGlkOiA2NDZj YzkxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDIzMCk6IHRpZDogNjQ2Y2M5MWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlk OiA2NDZjYzkxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgyMzIpOiB0aWQ6IDY0NmNjOTFlICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzMyk6 IHRpZDogNjQ2Y2M5MWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzNCk6IHRpZDogYWUzMDk4YTQgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM1 KTogdGlkOiBhZTMwOThhNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjM2KTogdGlkOiBhZTMwOThhNCAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEy ODAKT3BlciAoMjM3KTogdGlkOiBhZTMwOThhNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAw eGQKc2l6ZSAweDdkMDAwIG5ibG9ja3MgMHg3ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDIzOCk6IHRpZDogYWUzMDk4YTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjM5KTogdGlkOiBhZTMwOThhNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNDApOiB0aWQ6IGFlMzA5OGE0ICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjY3ICBsb25n ZXN0OiAxOTQ5MTI2NwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MSk6IHRpZDogYWUzMDk4 YTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNDIpOiB0aWQ6IGFlMzA5OGE0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDog YWUzMDk4YTQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMjQ0KTogdGlkOiBhZTMwOThhNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDUpOiB0 aWQ6IGFlMzA5OGE0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNDYpOiB0aWQ6IDFhZTgyYWNmICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Nyk6 IHRpZDogMWFlODJhY2YgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0OCk6IHRpZDogMWFlODJhY2YgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgw Ck9wZXIgKDI0OSk6IHRpZDogMWFlODJhY2YgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhk CnNpemUgMHg3ZTQwMCBuYmxvY2tzIDB4ODAgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgyNTApOiB0aWQ6IDFhZTgyYWNmICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDI1MSk6IHRpZDogMWFlODJhY2YgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjUyKTogdGlkOiAxYWU4MmFjZiAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI2NiAgbG9uZ2Vz dDogMTk0OTEyNjYKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTMpOiB0aWQ6IDFhZTgyYWNm ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjU0KTogdGlkOiAxYWU4MmFjZiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDFh ZTgyYWNmICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDI1Nik6IHRpZDogMWFlODJhY2YgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjU3KTogdGlk OiAxYWU4MmFjZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjU4KTogdGlkOiA2YWY0YmQ1NyAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTkpOiB0 aWQ6IDZhZjRiZDU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgyNjApOiB0aWQ6IDZhZjRiZDU3ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApP cGVyICgyNjEpOiB0aWQ6IDZhZjRiZDU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApz aXplIDB4N2Y4MDAgbmJsb2NrcyAweDgxIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMjYyKTogdGlkOiA2YWY0YmQ1NyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy NjMpOiB0aWQ6IDZhZjRiZDU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDI2NCk6IHRpZDogNmFmNGJkNTcgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyNjUgIGxvbmdlc3Q6 IDE5NDkxMjY1Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY1KTogdGlkOiA2YWY0YmQ1NyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDI2Nik6IHRpZDogNmFmNGJkNTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiA2YWY0 YmQ1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgyNjgpOiB0aWQ6IDZhZjRiZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2OSk6IHRpZDog NmFmNGJkNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3MCk6IHRpZDogNzlkNDg2MTIgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjcxKTogdGlk OiA3OWQ0ODYxMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjcyKTogdGlkOiA3OWQ0ODYxMiAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3Bl ciAoMjczKTogdGlkOiA3OWQ0ODYxMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6 ZSAweDgwYzAwIG5ibG9ja3MgMHg4MiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDI3NCk6IHRpZDogNzlkNDg2MTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjc1 KTogdGlkOiA3OWQ0ODYxMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgyNzYpOiB0aWQ6IDc5ZDQ4NjEyICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjY0ICBsb25nZXN0OiAx OTQ5MTI2NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nyk6IHRpZDogNzlkNDg2MTIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgyNzgpOiB0aWQ6IDc5ZDQ4NjEyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogNzlkNDg2 MTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMjgwKTogdGlkOiA3OWQ0ODYxMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODEpOiB0aWQ6IDc5 ZDQ4NjEyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyODIpOiB0aWQ6IGI1ZjQyYWIgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjgzKTogdGlkOiBi NWY0MmFiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgyODQpOiB0aWQ6IGI1ZjQyYWIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI4 NSk6IHRpZDogYjVmNDJhYiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDgy MDAwIG5ibG9ja3MgMHg4NCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDI4Nik6IHRpZDogYjVmNDJhYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyODcpOiB0aWQ6 IGI1ZjQyYWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoMjg4KTogdGlkOiBiNWY0MmFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjYyICBsb25nZXN0OiAxOTQ5MTI2Mgot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI4OSk6IHRpZDogYjVmNDJhYiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI5MCk6IHRp ZDogYjVmNDJhYiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTEpOiB0aWQ6IGI1ZjQyYWIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjkyKTog dGlkOiBiNWY0MmFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5Myk6IHRpZDogYjVmNDJhYiAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjk0KTogdGlkOiAyZGMzOTU5OCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTUpOiB0aWQ6IDJkYzM5NTk4ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTYpOiB0aWQ6IDJkYzM5NTk4ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyOTcpOiB0aWQ6IDJk YzM5NTk4ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4ODM0MDAgbmJsb2Nr cyAweDg1IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjk4KTogdGlk OiAyZGMzOTU5OCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTkpOiB0aWQ6IDJkYzM5NTk4 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDMwMCk6IHRpZDogMmRjMzk1OTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyNjEgIGxvbmdlc3Q6IDE5NDkxMjYxCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzAxKTogdGlkOiAyZGMzOTU5OCAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwMik6IHRpZDogMmRj Mzk1OTggIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAzKTogdGlkOiAyZGMzOTU5OCAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMDQpOiB0aWQ6 IDJkYzM5NTk4ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDogMmRjMzk1OTggIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMwNik6IHRpZDogMmQ3Y2QzYjUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzA3KTogdGlkOiAyZDdjZDNiNSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MzA4KTogdGlkOiAyZDdjZDNiNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzA5KTogdGlkOiAyZDdj ZDNiNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDg0ODAwIG5ibG9ja3Mg MHg4NiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDMxMCk6IHRpZDog MmQ3Y2QzYjUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzExKTogdGlkOiAyZDdjZDNiNSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICgzMTIpOiB0aWQ6IDJkN2NkM2I1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjYwICBsb25nZXN0OiAxOTQ5MTI2MAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDMxMyk6IHRpZDogMmQ3Y2QzYjUgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzMTQpOiB0aWQ6IDJkN2Nk M2I1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxNSk6IHRpZDogMmQ3Y2QzYjUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzE2KTogdGlkOiAy ZDdjZDNiNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IDJkN2NkM2I1ICBsZW46IDAgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MTgpOiB0aWQ6IDEyMzUwYTVlICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxOSk6IHRpZDogMTIzNTBhNWUgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAg ICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMy MCk6IHRpZDogMTIzNTBhNWUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAg ICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDMyMSk6IHRpZDogMTIzNTBh NWUgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdp YyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdp ZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg4NWMwMCBuYmxvY2tzIDB4 ODcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZt YXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzMjIpOiB0aWQ6IDEy MzUwYTVlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5v ZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMyMyk6IHRpZDogMTIzNTBhNWUgIGxl bjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAo MzI0KTogdGlkOiAxMjM1MGE1ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJv b3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBj bnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI1OSAgbG9uZ2VzdDogMTk0OTEyNTkKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzMjUpOiB0aWQ6IDEyMzUwYTVlICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzI2KTogdGlkOiAxMjM1MGE1 ZSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzMjcpOiB0aWQ6IDEyMzUwYTVlICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4 OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMyOCk6IHRpZDogMTIz NTBhNWUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiAxMjM1MGE1ZSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMw KTogdGlkOiA2MzBlNjJkZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzEpOiB0aWQ6IDYzMGU2MmRmICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAg IHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzIp OiB0aWQ6IDYzMGU2MmRmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAg IGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzMzMpOiB0aWQ6IDYzMGU2MmRm ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMg MHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQg MAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4ODcwMDAgbmJsb2NrcyAweDg5 IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFz ayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzM0KTogdGlkOiA2MzBl NjJkZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2Rl IGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMzUpOiB0aWQ6IDYzMGU2MmRmICBsZW46 IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMz Nik6IHRpZDogNjMwZTYyZGYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290 IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250 OiA0ICBmcmVlYmxrczogMTk0OTEyNTcgIGxvbmdlc3Q6IDE5NDkxMjU3Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzM3KTogdGlkOiA2MzBlNjJkZiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMzOCk6IHRpZDogNjMwZTYyZGYg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzM5KTogdGlkOiA2MzBlNjJkZiAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNDApOiB0aWQ6IDYzMGU2 MmRmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogNjMwZTYyZGYgIGxlbjogMCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Mik6 IHRpZDogM2RhZTE4NTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQzKTogdGlkOiAzZGFlMTg1MCAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ0KTog dGlkOiAzZGFlMTg1MCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBi bGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzQ1KTogdGlkOiAzZGFlMTg1MCAg bGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4 NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAK YXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDg4NDAwIG5ibG9ja3MgMHg4YSBl eHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sg MHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM0Nik6IHRpZDogM2RhZTE4 NTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBk YXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQ3KTogdGlkOiAzZGFlMTg1MCAgbGVuOiAy NCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDgp OiB0aWQ6IDNkYWUxODUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpB R0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBC Tk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDog NCAgZnJlZWJsa3M6IDE5NDkxMjU2ICBsb25nZXN0OiAxOTQ5MTI1NgotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM0OSk6IHRpZDogM2RhZTE4NTAgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNTApOiB0aWQ6IDNkYWUxODUwICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM1MSk6IHRpZDogM2RhZTE4NTAgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAg bGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzUyKTogdGlkOiAzZGFlMTg1 MCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IDNkYWUxODUwICBsZW46IDAgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTQpOiB0 aWQ6IDE3ZTZlMmI1ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1NSk6IHRpZDogMTdlNmUyYjUgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlk OiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1Nik6IHRp ZDogMTdlNmUyYjUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDM1Nyk6IHRpZDogMTdlNmUyYjUgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg4OTgwMCBuYmxvY2tzIDB4OGIgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzNTgpOiB0aWQ6IDE3ZTZlMmI1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0 YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM1OSk6IHRpZDogMTdlNmUyYjUgIGxlbjogMjQg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzYwKTog dGlkOiAxN2U2ZTJiNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdG IEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5P OiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQg IGZyZWVibGtzOiAxOTQ5MTI1NSAgbG9uZ2VzdDogMTk0OTEyNTUKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzNjEpOiB0aWQ6IDE3ZTZlMmI1ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzYyKTogdGlkOiAxN2U2ZTJiNSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzNjMpOiB0aWQ6IDE3ZTZlMmI1ICBsZW46IDI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxl bjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDogMTdlNmUyYjUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiAxN2U2ZTJiNSAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY2KTogdGlk OiAzMDkyYTIwMSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjcpOiB0aWQ6IDMwOTJhMjAxICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDog MCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNjgpOiB0aWQ6 IDMwOTJhMjAxICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAj cmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25v OiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgzNjkpOiB0aWQ6IDMwOTJhMjAxICBsZW46 IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRl IG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGlt ZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4OGFjMDAgbmJsb2NrcyAweDhjIGV4dHNp emUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAg ZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMzcwKTogdGlkOiAzMDkyYTIwMSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNzEpOiB0aWQ6IDMwOTJhMjAxICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDM3Mik6IHRp ZDogMzA5MmEyMDEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBC dWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzog MSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBm cmVlYmxrczogMTk0OTEyNTQgIGxvbmdlc3Q6IDE5NDkxMjU0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMzczKTogdGlkOiAzMDkyYTIwMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDM3NCk6IHRpZDogMzA5MmEyMDEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzc1KTogdGlkOiAzMDkyYTIwMSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46 IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzNzYpOiB0aWQ6IDMwOTJhMjAxICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDogMzA5MmEyMDEgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OCk6IHRpZDog ZWNjMGI0YjkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzc5KTogdGlkOiBlY2MwYjRiOSAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAg ICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgwKTogdGlkOiBl Y2MwYjRiOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3Jl Z3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzog NjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMzgxKTogdGlkOiBlY2MwYjRiOSAgbGVuOiA5 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBt b2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUg MHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDhjMDAwIG5ibG9ja3MgMHg4ZSBleHRzaXpl IDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRt c3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDM4Mik6IHRpZDogZWNjMGI0YjkgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzgzKTogdGlkOiBlY2MwYjRiOSAgbGVuOiAyNCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx ICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzODQpOiB0aWQ6 IGVjYzBiNGI5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkxMjUyICBsb25nZXN0OiAxOTQ5MTI1MgotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDM4NSk6IHRpZDogZWNjMGI0YjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgzODYpOiB0aWQ6IGVjYzBiNGI5ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM4Nyk6IHRpZDogZWNjMGI0YjkgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4 ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiBlY2MwYjRiOSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IGVjYzBiNGI5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTApOiB0aWQ6IDRi ODk3YWRhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM5MSk6IHRpZDogNGI4OTdhZGEgIGxlbjogMTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAg ICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5Mik6IHRpZDogNGI4 OTdhZGEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdz OiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0 ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDM5Myk6IHRpZDogNGI4OTdhZGEgIGxlbjogOTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9k ZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4 YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg4ZDQwMCBuYmxvY2tzIDB4OGYgZXh0c2l6ZSAw eDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0 YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgzOTQpOiB0aWQ6IDRiODk3YWRhICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM5NSk6IHRpZDogNGI4OTdhZGEgIGxlbjogMjQgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAo MHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzk2KTogdGlkOiA0 Yjg5N2FkYSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZl cjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBD TlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVi bGtzOiAxOTQ5MTI1MSAgbG9uZ2VzdDogMTk0OTEyNTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgzOTcpOiB0aWQ6IDRiODk3YWRhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzk4KTogdGlkOiA0Yjg5N2FkYSAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzOTkpOiB0aWQ6IDRiODk3YWRhICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQwMCk6IHRpZDogNGI4OTdhZGEgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDAxKTogdGlkOiA0Yjg5N2FkYSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAyKTogdGlkOiAzYjQ4 ZTkyNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0MDMpOiB0aWQ6IDNiNDhlOTI2ICBsZW46IDE2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAg ICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MDQpOiB0aWQ6IDNiNDhl OTI2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0MDUpOiB0aWQ6IDNiNDhlOTI2ICBsZW46IDk2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUg MDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMg bXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4OGU4MDAgbmJsb2NrcyAweDkwIGV4dHNpemUgMHgw IG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0 ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDA2KTogdGlkOiAzYjQ4ZTkyNiAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0MDcpOiB0aWQ6IDNiNDhlOTI2ICBsZW46IDI0ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4 MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwOCk6IHRpZDogM2I0 OGU5MjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6 IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05U OiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxr czogMTk0OTEyNTAgIGxvbmdlc3Q6IDE5NDkxMjUwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDA5KTogdGlkOiAzYjQ4ZTkyNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQxMCk6IHRpZDogM2I0OGU5MjYgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDExKTogdGlkOiAzYjQ4ZTkyNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTIpOiB0aWQ6IDNiNDhlOTI2ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQxMyk6IHRpZDogM2I0OGU5MjYgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNCk6IHRpZDogNjM1MjYw ZDQgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDE1KTogdGlkOiA2MzUyNjBkNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAg bnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDE2KTogdGlkOiA2MzUyNjBk NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMg ICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxl bjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDE3KTogdGlkOiA2MzUyNjBkNCAgbGVuOiA5NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAx MDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10 aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDhmYzAwIG5ibG9ja3MgMHg5MSBleHRzaXplIDB4MCBu ZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUg MHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQxOCk6IHRpZDogNjM1MjYwZDQgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDE5KTogdGlkOiA2MzUyNjBkNCAgbGVuOiAyNCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEp ICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0MjApOiB0aWQ6IDYzNTI2 MGQ0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBY QUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDog MgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6 IDE5NDkxMjQ5ICBsb25nZXN0OiAxOTQ5MTI0OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQy MSk6IHRpZDogNjM1MjYwZDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MjIpOiB0aWQ6IDYzNTI2MGQ0ICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQyMyk6IHRpZDogNjM1MjYwZDQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFw IHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI0KTogdGlkOiA2MzUyNjBkNCAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MjUpOiB0aWQ6IDYzNTI2MGQ0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjYpOiB0aWQ6IDVlZWE0NzFj ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyNyk6IHRpZDogNWVlYTQ3MWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyOCk6IHRpZDogNWVlYTQ3MWMg IGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAg aW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46 IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQyOSk6IHRpZDogNWVlYTQ3MWMgIGxlbjogOTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAw NjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGlt ZSAweGQgY3RpbWUgMHhkCnNpemUgMHg5MTAwMCBuYmxvY2tzIDB4OTMgZXh0c2l6ZSAweDAgbmV4 dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4 MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0MzApOiB0aWQ6IDVlZWE0NzFjICBsZW46IDE2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQzMSk6IHRpZDogNWVlYTQ3MWMgIGxlbjogMjQgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAg bGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDMyKTogdGlkOiA1ZWVhNDcx YyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MTI0NyAgbG9uZ2VzdDogMTk0OTEyNDcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzMp OiB0aWQ6IDVlZWE0NzFjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDM0KTogdGlkOiA1ZWVhNDcxYyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0MzUpOiB0aWQ6IDVlZWE0NzFjICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBz aXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzNik6IHRpZDogNWVlYTQ3MWMgIGxlbjogMTI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDM3KTogdGlkOiA1ZWVhNDcxYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM4KTogdGlkOiBlNjkxOWYxZSAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MzkpOiB0aWQ6IGU2OTE5ZjFlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1f aXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NDApOiB0aWQ6IGU2OTE5ZjFlICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTI4MApPcGVyICg0NDEpOiB0aWQ6IGU2OTE5ZjFlICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhkIGN0aW1lIDB4ZApzaXplIDB4OTI0MDAgbmJsb2NrcyAweDk0IGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDQyKTogdGlkOiBlNjkxOWYxZSAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICg0NDMpOiB0aWQ6IGU2OTE5ZjFlICBsZW46IDI0ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxl bjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ0NCk6IHRpZDogZTY5MTlmMWUg IGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0Yg IAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxl dmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0 OTEyNDYgIGxvbmdlc3Q6IDE5NDkxMjQ2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ1KTog dGlkOiBlNjkxOWYxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ0Nik6IHRpZDogZTY5MTlmMWUgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDQ3KTogdGlkOiBlNjkxOWYxZSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6 ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDgpOiB0aWQ6IGU2OTE5ZjFlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ0OSk6IHRpZDogZTY5MTlmMWUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog Q09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MCk6IHRpZDogYzFjMTRkMDMgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDUxKTogdGlkOiBjMWMxNGQwMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0 ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDUyKTogdGlkOiBjMWMxNGQwMyAgbGVu OiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86 IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYg IGJvZmY6IDEyODAKT3BlciAoNDUzKTogdGlkOiBjMWMxNGQwMyAgbGVuOiA5NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQg dmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4 ZCBjdGltZSAweGQKc2l6ZSAweDkzODAwIG5ibG9ja3MgMHg5NSBleHRzaXplIDB4MCBuZXh0ZW50 cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZs YWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ1NCk6IHRpZDogYzFjMTRkMDMgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDU1KTogdGlkOiBjMWMxNGQwMyAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg0NTYpOiB0aWQ6IGMxYzE0ZDAzICBs ZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAK dmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZl bCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkx MjQ1ICBsb25nZXN0OiAxOTQ5MTI0NQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1Nyk6IHRp ZDogYzFjMTRkMDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0NTgpOiB0aWQ6IGMxYzE0ZDAzICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1 OSk6IHRpZDogYzFjMTRkMDMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6 IDIgIGZsYWdzOiAweDAKT3BlciAoNDYwKTogdGlkOiBjMWMxNGQwMyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjEpOiB0aWQ6IGMxYzE0ZDAzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENP TU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjIpOiB0aWQ6IDkzMzI3MzFiICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ2Myk6IHRpZDogOTMzMjczMWIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVt czogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2NCk6IHRpZDogOTMzMjczMWIgIGxlbjog NTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAw eDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBi b2ZmOiAxMjgwCk9wZXIgKDQ2NSk6IHRpZDogOTMzMjczMWIgIGxlbjogOTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZl cnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQg Y3RpbWUgMHhkCnNpemUgMHg5NGMwMCBuYmxvY2tzIDB4OTYgZXh0c2l6ZSAweDAgbmV4dGVudHMg MHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFn cyAweDAgZ2VuIDB4MApPcGVyICg0NjYpOiB0aWQ6IDkzMzI3MzFiICBsZW46IDE2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQ2Nyk6IHRpZDogOTMzMjczMWIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAx ICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoNDY4KTogdGlkOiA5MzMyNzMxYiAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTI0 NCAgbG9uZ2VzdDogMTk0OTEyNDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjkpOiB0aWQ6 IDkzMzI3MzFiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoNDcwKTogdGlkOiA5MzMyNzMxYiAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEp OiB0aWQ6IDkzMzI3MzFiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAy ICBmbGFnczogMHgwCk9wZXIgKDQ3Mik6IHRpZDogOTMzMjczMWIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDczKTogdGlkOiA5MzMyNzMxYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01N SVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc0KTogdGlkOiBiZTUxN2Q1NyAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NzUpOiB0aWQ6IGJlNTE3ZDU3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6 IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzYpOiB0aWQ6IGJlNTE3ZDU3ICBsZW46IDU2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4 NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9m ZjogMTI4MApPcGVyICg0NzcpOiB0aWQ6IGJlNTE3ZDU3ICBsZW46IDk2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJz aW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0 aW1lIDB4ZApzaXplIDB4OTYwMDAgbmJsb2NrcyAweDk4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4 MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3Mg MHgwIGdlbiAweDAKT3BlciAoNDc4KTogdGlkOiBiZTUxN2Q1NyAgbGVuOiAxNiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0NzkpOiB0aWQ6IGJlNTE3ZDU3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAg Ym1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQ4MCk6IHRpZDogYmU1MTdkNTcgIGxlbjog MTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6 IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJO TzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyNDIg IGxvbmdlc3Q6IDE5NDkxMjQyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgxKTogdGlkOiBi ZTUxN2Q1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFn czogMHgwCk9wZXIgKDQ4Mik6IHRpZDogYmU1MTdkNTcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTog dGlkOiBiZTUxN2Q1NyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg0ODQpOiB0aWQ6IGJlNTE3ZDU3ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4 NSk6IHRpZDogYmU1MTdkNTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlU IAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nik6IHRpZDogNmEwMmQ5MGUgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDg3KTogdGlkOiA2YTAyZDkwZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDg4KTogdGlkOiA2YTAyZDkwZSAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09OVElOVUUgCklOT0RFOiAjcmVnczogMyAgIE5vdCBw cmludGluZyByZXN0IG9mIGRhdGEKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KY3ljbGU6IDEJdmVyc2lv bjogMgkJbHNuOiAxLDUyOAl0YWlsX2xzbjogMSwzMjYKbGVuZ3RoIG9mIExvZyBSZWNvcmQ6IDMy MjU2CXByZXYgb2Zmc2V0OiA0NjQJCW51bSBvcHM6IDQ4OAp1dWlkOiBiMGI1Y2NlOS0xNzBkLTQ2 NGQtYmZmZi1iOTJlZThlY2FjNmMgICBmb3JtYXQ6IGxpdHRsZSBlbmRpYW4gbGludXgKaF9zaXpl OiAzMjc2OAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDApOiB0aWQ6IDZhMDJkOTBlICBsZW46 IDQwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBXQVNfQ09OVCBFTkQgCkxlZnQgb3ZlciByZWdp b24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEpOiB0aWQ6 IDZhMDJkOTBlICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxlZnQgb3Zl ciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIp OiB0aWQ6IDZhMDJkOTBlICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkxl ZnQgb3ZlciByZWdpb24gZnJvbSBzcGxpdCBsb2cgaXRlbQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDMpOiB0aWQ6IDZhMDJkOTBlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBz aXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQpOiB0aWQ6IDZhMDJkOTBlICBsZW46IDEyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEj OiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENO VDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjQxICBsb25nZXN0 OiAxOTQ5MTI0MQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUpOiB0aWQ6IDZhMDJkOTBlICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoNik6IHRpZDogNmEwMmQ5MGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNyk6IHRpZDogNmEwMmQ5MGUg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoOCk6IHRpZDogNmEwMmQ5MGUgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOSk6IHRpZDogNmEwMmQ5MGUg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDEwKTogdGlkOiBhOTFjZDEwYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMSk6IHRpZDogYTkxY2QxMGIg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDEyKTogdGlkOiBhOTFjZDEwYiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTMpOiB0aWQ6 IGE5MWNkMTBiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4OTg4MDAgbmJs b2NrcyAweDlhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTQpOiB0 aWQ6IGE5MWNkMTBiICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1KTogdGlkOiBhOTFjZDEw YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxNik6IHRpZDogYTkxY2QxMGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyNDAgIGxvbmdlc3Q6IDE5NDkxMjQwCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTcpOiB0aWQ6IGE5MWNkMTBiICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTgpOiB0aWQ6IGE5MWNk MTBiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5KTogdGlkOiBhOTFjZDEwYiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMCk6IHRpZDogYTkx Y2QxMGIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEpOiB0aWQ6IGE5MWNkMTBiICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMik6 IHRpZDogYzQ2MWVhYTcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMpOiB0aWQ6IGM0NjFlYWE3ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNCk6IHRp ZDogYzQ2MWVhYTcgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6 ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxr bm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI1KTogdGlkOiBjNDYxZWFhNyAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDk5YzAwIG5ibG9ja3MgMHg5YiBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI2KTogdGlkOiBjNDYxZWFhNyAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNyk6IHRpZDogYzQ2MWVhYTcgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjgpOiB0aWQ6 IGM0NjFlYWE3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVm ZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEg IENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJl ZWJsa3M6IDE5NDkxMjM5ICBsb25nZXN0OiAxOTQ5MTIzOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDI5KTogdGlkOiBjNDYxZWFhNyAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1h cCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDMwKTogdGlkOiBjNDYxZWFhNyAgbGVuOiAxMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgzMSk6IHRpZDogYzQ2MWVhYTcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMzIpOiB0aWQ6IGM0NjFlYWE3ICBsZW46IDEy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDMzKTogdGlkOiBjNDYxZWFhNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzQpOiB0aWQ6IDE5NTZiZmNl ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDM1KTogdGlkOiAxOTU2YmZjZSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVt X2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzYpOiB0aWQ6IDE5NTZiZmNlICBs ZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlu bzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAx NiAgYm9mZjogMTI4MApPcGVyICgzNyk6IHRpZDogMTk1NmJmY2UgIGxlbjogOTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0 IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAw eGQgY3RpbWUgMHhkCnNpemUgMHg5YjAwMCBuYmxvY2tzIDB4OWQgZXh0c2l6ZSAweDAgbmV4dGVu dHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApm bGFncyAweDAgZ2VuIDB4MApPcGVyICgzOCk6IHRpZDogMTk1NmJmY2UgIGxlbjogMTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMzkpOiB0aWQ6IDE5NTZiZmNlICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjog MSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDQwKTogdGlkOiAxOTU2YmZjZSAgbGVu OiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZl cjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwg Qk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIz NyAgbG9uZ2VzdDogMTk0OTEyMzcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MSk6IHRpZDog MTk1NmJmY2UgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICg0Mik6IHRpZDogMTk1NmJmY2UgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDMpOiB0 aWQ6IDE5NTZiZmNlICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDQ0KTogdGlkOiAxOTU2YmZjZSAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NSk6 IHRpZDogMTk1NmJmY2UgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ2KTogdGlkOiAxZDEyYzgxMSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0Nyk6 IHRpZDogMWQxMmM4MTEgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4KTogdGlkOiAxZDEyYzgxMSAgbGVuOiA1NiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdz OiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAK T3BlciAoNDkpOiB0aWQ6IDFkMTJjODExICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApz aXplIDB4OWM0MDAgbmJsb2NrcyAweDllIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoNTApOiB0aWQ6IDFkMTJjODExICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDUx KTogdGlkOiAxZDEyYzgxMSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICg1Mik6IHRpZDogMWQxMmM4MTEgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMzYgIGxvbmdlc3Q6IDE5 NDkxMjM2Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTMpOiB0aWQ6IDFkMTJjODExICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NTQpOiB0aWQ6IDFkMTJjODExICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDU1KTogdGlkOiAxZDEyYzgxMSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg1Nik6IHRpZDogMWQxMmM4MTEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTcpOiB0aWQ6IDFkMTJjODEx ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg1OCk6IHRpZDogYWIwYjZmNDUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNTkpOiB0aWQ6IGFiMGI2ZjQ1 ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg2MCk6IHRpZDogYWIwYjZmNDUgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDYxKTogdGlk OiBhYjBiNmY0NSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweDlkODAwIG5i bG9ja3MgMHg5ZiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDYyKTog dGlkOiBhYjBiNmY0NSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Myk6IHRpZDogYWIwYjZm NDUgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNjQpOiB0aWQ6IGFiMGI2ZjQ1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjM1ICBsb25nZXN0OiAxOTQ5MTIzNQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDY1KTogdGlkOiBhYjBiNmY0NSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDY2KTogdGlkOiBhYjBi NmY0NSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg2Nyk6IHRpZDogYWIwYjZmNDUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAo MHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNjgpOiB0aWQ6IGFi MGI2ZjQ1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDY5KTogdGlkOiBhYjBiNmY0NSAgbGVuOiAwICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzAp OiB0aWQ6IGMzMDc3NjA3ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDcxKTogdGlkOiBjMzA3NzYwNyAgbGVuOiAxNiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0 aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzIpOiB0 aWQ6IGMzMDc3NjA3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg3Myk6IHRpZDogYzMwNzc2MDcgIGxl bjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5 NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0 aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHg5ZWMwMCBuYmxvY2tzIDB4YTAgZXh0 c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4 MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg3NCk6IHRpZDogYzMwNzc2MDcg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNzUpOiB0aWQ6IGMzMDc3NjA3ICBsZW46IDI0ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDc2KTogdGlk OiBjMzA3NzYwNyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MTIzNCAgbG9uZ2VzdDogMTk0OTEyMzQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg3Nyk6IHRpZDogYzMwNzc2MDcgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJt YXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg3OCk6IHRpZDogYzMwNzc2MDcgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNzkpOiB0aWQ6IGMzMDc3NjA3ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAg Ym1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDgwKTogdGlkOiBjMzA3NzYwNyAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg4MSk6IHRpZDogYzMwNzc2MDcgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDgyKTogdGlkOiBhMjVlMDk3 YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg4Myk6IHRpZDogYTI1ZTA5N2IgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51 bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDg0KTogdGlkOiBhMjVlMDk3YiAg bGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBp bm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjog MTYgIGJvZmY6IDEyODAKT3BlciAoODUpOiB0aWQ6IGEyNWUwOTdiICBsZW46IDk2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0 NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUg MHhkIGN0aW1lIDB4ZApzaXplIDB4YTAwMDAgbmJsb2NrcyAweGEyIGV4dHNpemUgMHgwIG5leHRl bnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAK ZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoODYpOiB0aWQ6IGEyNWUwOTdiICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDg3KTogdGlkOiBhMjVlMDk3YiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46 IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICg4OCk6IHRpZDogYTI1ZTA5N2IgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2 ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVs IEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEy MzIgIGxvbmdlc3Q6IDE5NDkxMjMyCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoODkpOiB0aWQ6 IGEyNWUwOTdiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZs YWdzOiAweDAKT3BlciAoOTApOiB0aWQ6IGEyNWUwOTdiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDkxKTog dGlkOiBhMjVlMDk3YiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAg ZmxhZ3M6IDB4MApPcGVyICg5Mik6IHRpZDogYTI1ZTA5N2IgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTMp OiB0aWQ6IGEyNWUwOTdiICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5NCk6IHRpZDogNGVlYmEwODYgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoOTUp OiB0aWQ6IDRlZWJhMDg2ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRS QU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5Nik6IHRpZDogNGVlYmEwODYgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgw Ck9wZXIgKDk3KTogdGlkOiA0ZWViYTA4NiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZv cm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQK c2l6ZSAweGExNDAwIG5ibG9ja3MgMHhhMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRl bnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4g MHgwCk9wZXIgKDk4KTogdGlkOiA0ZWViYTA4NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg5 OSk6IHRpZDogNGVlYmEwODYgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6 IDEgIGZsYWdzOiAweDAKT3BlciAoMTAwKTogdGlkOiA0ZWViYTA4NiAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzog MCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6 IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIzMSAgbG9uZ2VzdDog MTk0OTEyMzEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDEpOiB0aWQ6IDRlZWJhMDg2ICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTAyKTogdGlkOiA0ZWViYTA4NiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDMpOiB0aWQ6IDRlZWJh MDg2ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgw Ck9wZXIgKDEwNCk6IHRpZDogNGVlYmEwODYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTA1KTogdGlkOiA0 ZWViYTA4NiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMTA2KTogdGlkOiBjNzBiZTYwMiAgbGVuOiAwICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMDcpOiB0aWQ6 IGM3MGJlNjAyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAg IHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgxMDgpOiB0aWQ6IGM3MGJlNjAyICBsZW46IDU2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4 NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVy ICgxMDkpOiB0aWQ6IGM3MGJlNjAyICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0 IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXpl IDB4YTI4MDAgbmJsb2NrcyAweGE0IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMg MHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAK T3BlciAoMTEwKTogdGlkOiBjNzBiZTYwMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMTEp OiB0aWQ6IGM3MGJlNjAyICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAx ICBmbGFnczogMHgwCk9wZXIgKDExMik6IHRpZDogYzcwYmU2MDIgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAg IGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAx CjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMzAgIGxvbmdlc3Q6IDE5 NDkxMjMwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTEzKTogdGlkOiBjNzBiZTYwMiAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDExNCk6IHRpZDogYzcwYmU2MDIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE1KTogdGlkOiBjNzBiZTYw MiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApP cGVyICgxMTYpOiB0aWQ6IGM3MGJlNjAyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDExNyk6IHRpZDogYzcw YmU2MDIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDExOCk6IHRpZDogM2UxMWVmNTQgIGxlbjogMCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTE5KTogdGlkOiAz ZTExZWY1NCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0 eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMTIwKTogdGlkOiAzZTExZWY1NCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUg ICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAo MTIxKTogdGlkOiAzZTExZWY1NCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAy Cm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAw eGEzYzAwIG5ibG9ja3MgMHhhNSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4 MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9w ZXIgKDEyMik6IHRpZDogM2UxMWVmNTQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTIzKTog dGlkOiAzZTExZWY1NCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6 ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAg ZmxhZ3M6IDB4MApPcGVyICgxMjQpOiB0aWQ6IDNlMTFlZjU0ICBsZW46IDEyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBs ZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQox c3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjI5ICBsb25nZXN0OiAxOTQ5 MTIyOQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNSk6IHRpZDogM2UxMWVmNTQgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx MjYpOiB0aWQ6IDNlMTFlZjU0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEyNyk6IHRpZDogM2UxMWVmNTQg IGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3Bl ciAoMTI4KTogdGlkOiAzZTExZWY1NCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMjkpOiB0aWQ6IDNlMTFl ZjU0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgxMzApOiB0aWQ6IDJkMzNlYzFkICBsZW46IDAgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzMSk6IHRpZDogMmQz M2VjMWQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlw ZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDEzMik6IHRpZDogMmQzM2VjMWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAg ZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDEz Myk6IHRpZDogMmQzM2VjMWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK SU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpu bGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhh NTAwMCBuYmxvY2tzIDB4YTcgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAg Zm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVy ICgxMzQpOiB0aWQ6IDJkMzNlYzFkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDEzNSk6IHRp ZDogMmQzM2VjMWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAg I3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZs YWdzOiAweDAKT3BlciAoMTM2KTogdGlkOiAyZDMzZWMxZCAgbGVuOiAxMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVu OiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0 OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIyNyAgbG9uZ2VzdDogMTk0OTEy MjcKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzcpOiB0aWQ6IDJkMzNlYzFkICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTM4 KTogdGlkOiAyZDMzZWMxZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxMzkpOiB0aWQ6IDJkMzNlYzFkICBs ZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIg KDE0MCk6IHRpZDogMmQzM2VjMWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQxKTogdGlkOiAyZDMzZWMx ZCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoMTQyKTogdGlkOiA4M2Y5YzZmNyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDMpOiB0aWQ6IDgzZjlj NmY3ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6 IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgxNDQpOiB0aWQ6IDgzZjljNmY3ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRz aXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgxNDUp OiB0aWQ6IDgzZjljNmY3ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklO T0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxp bmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YTY0 MDAgbmJsb2NrcyAweGE4IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZv cmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAo MTQ2KTogdGlkOiA4M2Y5YzZmNyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNDcpOiB0aWQ6 IDgzZjljNmY3ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNy ZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFn czogMHgwCk9wZXIgKDE0OCk6IHRpZDogODNmOWM2ZjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjog MTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDog MCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMjYgIGxvbmdlc3Q6IDE5NDkxMjI2 Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTQ5KTogdGlkOiA4M2Y5YzZmNyAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE1MCk6 IHRpZDogODNmOWM2ZjcgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTUxKTogdGlkOiA4M2Y5YzZmNyAgbGVu OiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgx NTIpOiB0aWQ6IDgzZjljNmY3ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE1Myk6IHRpZDogODNmOWM2Zjcg IGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDE1NCk6IHRpZDogY2RmZjZlZTAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU1KTogdGlkOiBjZGZmNmVl MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBE SU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMTU2KTogdGlkOiBjZGZmNmVlMCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6 ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTU3KTog dGlkOiBjZGZmNmVlMCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9E RSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5r IDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGE3ODAw IG5ibG9ja3MgMHhhOSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jr b2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE1 OCk6IHRpZDogY2RmZjZlZTAgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK RVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTU5KTogdGlkOiBj ZGZmNmVlMCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVn czogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6 IDB4MApPcGVyICgxNjApOiB0aWQ6IGNkZmY2ZWUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5 NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAg IGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjI1ICBsb25nZXN0OiAxOTQ5MTIyNQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2MSk6IHRpZDogY2RmZjZlZTAgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxNjIpOiB0 aWQ6IGNkZmY2ZWUwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Myk6IHRpZDogY2RmZjZlZTAgIGxlbjog MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTY0 KTogdGlkOiBjZGZmNmVlMCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNjUpOiB0aWQ6IGNkZmY2ZWUwICBs ZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICgxNjYpOiB0aWQ6IDFmZmQ0MzRhICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE2Nyk6IHRpZDogMWZmZDQzNGEg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElP U1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDE2OCk6IHRpZDogMWZmZDQzNGEgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6 IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDE2OSk6IHRp ZDogMWZmZDQzNGEgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUg Q09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAx IHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhhOGMwMCBu YmxvY2tzIDB4YWEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29m ZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgxNzAp OiB0aWQ6IDFmZmQ0MzRhICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVY VEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE3MSk6IHRpZDogMWZm ZDQzNGEgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6 IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAw eDAKT3BlciAoMTcyKTogdGlkOiAxZmZkNDM0YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5 MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBs YXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIyNCAgbG9uZ2VzdDogMTk0OTEyMjQKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzMpOiB0aWQ6IDFmZmQ0MzRhICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2 ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMTc0KTogdGlk OiAxZmZkNDM0YSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzUpOiB0aWQ6IDFmZmQ0MzRhICBsZW46IDI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE3Nik6 IHRpZDogMWZmZDQzNGEgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJV RiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTc3KTogdGlkOiAxZmZkNDM0YSAgbGVu OiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoMTc4KTogdGlkOiBlM2FlNTNjOSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxNzkpOiB0aWQ6IGUzYWU1M2M5ICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NU UkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgxODApOiB0aWQ6IGUzYWU1M2M5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAx NgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgxODEpOiB0aWQ6 IGUzYWU1M2M5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENP UkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1 aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YWEwMDAgbmJs b2NrcyAweGFjIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYg MCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMTgyKTog dGlkOiBlM2FlNTNjOSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRF TlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgxODMpOiB0aWQ6IGUzYWU1 M2M5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAy ICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgw Ck9wZXIgKDE4NCk6IHRpZDogZTNhZTUzYzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIz NjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFz dDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMjIgIGxvbmdlc3Q6IDE5NDkxMjIyCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMTg1KTogdGlkOiBlM2FlNTNjOSAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAo MHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDE4Nik6IHRpZDog ZTNhZTUzYzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTg3KTogdGlkOiBlM2FlNTNjOSAgbGVuOiAyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxODgpOiB0 aWQ6IGUzYWU1M2M5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYg REFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE4OSk6IHRpZDogZTNhZTUzYzkgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDE5MCk6IHRpZDogYmNhMThmMDkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog U1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTkxKTogdGlkOiBiY2ExOGYwOSAgbGVu OiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJB VCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMTkyKTogdGlkOiBiY2ExOGYwOSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYK ICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMTkzKTogdGlkOiBi Y2ExOGYwOSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JF Cm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlk IDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGFiNDAwIG5ibG9j a3MgMHhhZCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAg ZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDE5NCk6IHRp ZDogYmNhMThmMDkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5U UyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMTk1KTogdGlkOiBiY2ExOGYw OSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAg IHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApP cGVyICgxOTYpOiB0aWQ6IGJjYTE4ZjA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2 ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6 IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjIxICBsb25nZXN0OiAxOTQ5MTIyMQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDE5Nyk6IHRpZDogYmNhMThmMDkgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4 MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgxOTgpOiB0aWQ6IGJj YTE4ZjA5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDE5OSk6IHRpZDogYmNhMThmMDkgIGxlbjogMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog OCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjAwKTogdGlk OiBiY2ExOGYwOSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERB VEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMDEpOiB0aWQ6IGJjYTE4ZjA5ICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyMDIpOiB0aWQ6IDc2ODU1NTcyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNU QVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwMyk6IHRpZDogNzY4NTU1NzIgIGxlbjog MTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQg ICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDIwNCk6IHRpZDogNzY4NTU1NzIgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAg ICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDIwNSk6IHRpZDogNzY4 NTU1NzIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQpt YWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAw IGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhhYzgwMCBuYmxvY2tz IDB4YWUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRt ZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyMDYpOiB0aWQ6 IDc2ODU1NTcyICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMg aW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIwNyk6IHRpZDogNzY4NTU1NzIg IGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBz dGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3Bl ciAoMjA4KTogdGlkOiA3Njg1NTU3MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAg CnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAz ICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIyMCAgbG9uZ2VzdDogMTk0OTEyMjAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyMDkpOiB0aWQ6IDc2ODU1NTcyICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEw KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjEwKTogdGlkOiA3Njg1 NTU3MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTEpOiB0aWQ6IDc2ODU1NTcyICBsZW46IDI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDgg KDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIxMik6IHRpZDog NzY4NTU1NzIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRB Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjEzKTogdGlkOiA3Njg1NTU3MiAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo MjE0KTogdGlkOiBkYTYyNDMxYiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFS VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTUpOiB0aWQ6IGRhNjI0MzFiICBsZW46IDE2 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAg ICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgy MTYpOiB0aWQ6IGRhNjI0MzFiICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAg ICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyMTcpOiB0aWQ6IGRhNjI0 MzFiICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFn aWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBn aWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YWRjMDAgbmJsb2NrcyAw eGFmIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2 bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjE4KTogdGlkOiBk YTYyNDMxYiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlu b2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMTkpOiB0aWQ6IGRhNjI0MzFiICBs ZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3Rh cnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIg KDIyMCk6IHRpZDogZGE2MjQzMWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApy b290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAg Y250OiA0ICBmcmVlYmxrczogMTk0OTEyMTkgIGxvbmdlc3Q6IDE5NDkxMjE5Ci0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjIxKTogdGlkOiBkYTYyNDMxYiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDIyMik6IHRpZDogZGE2MjQz MWIgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjIzKTogdGlkOiBkYTYyNDMxYiAgbGVuOiAyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgw eDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMjQpOiB0aWQ6IGRh NjI0MzFiICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIyNSk6IHRpZDogZGE2MjQzMWIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIy Nik6IHRpZDogNzYwMmU2N2QgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI3KTogdGlkOiA3NjAyZTY3ZCAgbGVuOiAxNiAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAg ICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjI4 KTogdGlkOiA3NjAyZTY3ZCAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAg ICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMjI5KTogdGlkOiA3NjAyZTY3 ZCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2lj IDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lk IDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGFmMDAwIG5ibG9ja3MgMHhi MSBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1h c2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDIzMCk6IHRpZDogNzYw MmU2N2QgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9k ZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjMxKTogdGlkOiA3NjAyZTY3ZCAgbGVu OiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0 IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgy MzIpOiB0aWQ6IDc2MDJlNjdkICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9v dCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNu dDogNCAgZnJlZWJsa3M6IDE5NDkxMjE3ICBsb25nZXN0OiAxOTQ5MTIxNwotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDIzMyk6IHRpZDogNzYwMmU2N2QgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyMzQpOiB0aWQ6IDc2MDJlNjdk ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDIzNSk6IHRpZDogNzYwMmU2N2QgIGxlbjogMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4 KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjM2KTogdGlkOiA3NjAy ZTY3ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzcpOiB0aWQ6IDc2MDJlNjdkICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyMzgp OiB0aWQ6IGM1YTdmNzc5ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDIzOSk6IHRpZDogYzVhN2Y3NzkgIGxlbjogMTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAg dGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0MCk6 IHRpZDogYzVhN2Y3NzkgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAg Ymxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI0MSk6IHRpZDogYzVhN2Y3Nzkg IGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAw eDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAw CmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhiMDQwMCBuYmxvY2tzIDB4YjIg ZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNr IDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNDIpOiB0aWQ6IGM1YTdm Nzc5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUg ZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI0Myk6IHRpZDogYzVhN2Y3NzkgIGxlbjog MjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBi bGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjQ0 KTogdGlkOiBjNWE3Zjc3OSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUK QUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3Qg Qk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6 IDQgIGZyZWVibGtzOiAxOTQ5MTIxNiAgbG9uZ2VzdDogMTk0OTEyMTYKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyNDUpOiB0aWQ6IGM1YTdmNzc5ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjQ2KTogdGlkOiBjNWE3Zjc3OSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNDcpOiB0aWQ6IGM1YTdmNzc5ICBsZW46IDI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkg IGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI0OCk6IHRpZDogYzVhN2Y3 NzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjQ5KTogdGlkOiBjNWE3Zjc3OSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjUwKTog dGlkOiA1MGU0ODRiNiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTEpOiB0aWQ6IDUwZTQ4NGI2ICBsZW46IDE2ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRp ZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTIpOiB0 aWQ6IDUwZTQ4NGI2ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF OiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJs a25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyNTMpOiB0aWQ6IDUwZTQ4NGI2ICBs ZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0 OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAph dGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YjE4MDAgbmJsb2NrcyAweGIzIGV4 dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAw eDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoMjU0KTogdGlkOiA1MGU0ODRi NiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRh dGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNTUpOiB0aWQ6IDUwZTQ4NGI2ICBsZW46IDI0 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxr bm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI1Nik6 IHRpZDogNTBlNDg0YjYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFH RiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJO TzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0 ICBmcmVlYmxrczogMTk0OTEyMTUgIGxvbmdlc3Q6IDE5NDkxMjE1Ci0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMjU3KTogdGlkOiA1MGU0ODRiNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI1OCk6IHRpZDogNTBlNDg0YjYgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjU5KTogdGlkOiA1MGU0ODRiNiAgbGVuOiAyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBs ZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNjApOiB0aWQ6IDUwZTQ4NGI2 ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI2MSk6IHRpZDogNTBlNDg0YjYgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI2Mik6IHRp ZDogNjZiYmVmYTUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMjYzKTogdGlkOiA2NmJiZWZhNSAgbGVuOiAxNiAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6 IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY0KTogdGlk OiA2NmJiZWZhNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTog I3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtu bzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoMjY1KTogdGlkOiA2NmJiZWZhNSAgbGVu OiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0 ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRp bWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGIyYzAwIG5ibG9ja3MgMHhiNCBleHRz aXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgw IGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDI2Nik6IHRpZDogNjZiYmVmYTUg IGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRh Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjY3KTogdGlkOiA2NmJiZWZhNSAgbGVuOiAyNCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25v OiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgyNjgpOiB0 aWQ6IDY2YmJlZmE1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0Yg QnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86 IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAg ZnJlZWJsa3M6IDE5NDkxMjE0ICBsb25nZXN0OiAxOTQ5MTIxNAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDI2OSk6IHRpZDogNjZiYmVmYTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDgg IGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICgyNzApOiB0aWQ6IDY2YmJlZmE1ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDI3MSk6IHRpZDogNjZiYmVmYTUgIGxlbjogMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVu OiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjcyKTogdGlkOiA2NmJiZWZhNSAg bGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgyNzMpOiB0aWQ6IDY2YmJlZmE1ICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyNzQpOiB0aWQ6 IDk2NWZhM2FkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDI3NSk6IHRpZDogOTY1ZmEzYWQgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAw ICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3Nik6IHRpZDog OTY1ZmEzYWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNy ZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86 IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDI3Nyk6IHRpZDogOTY1ZmEzYWQgIGxlbjog OTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUg bW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1l IDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhiNDAwMCBuYmxvY2tzIDB4YjYgZXh0c2l6 ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBk bXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyNzgpOiB0aWQ6IDk2NWZhM2FkICBs ZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI3OSk6IHRpZDogOTY1ZmEzYWQgIGxlbjogMjQgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzog MSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMjgwKTogdGlk OiA5NjVmYTNhZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1 ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAx ICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZy ZWVibGtzOiAxOTQ5MTIxMiAgbG9uZ2VzdDogMTk0OTEyMTIKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgyODEpOiB0aWQ6IDk2NWZhM2FkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBi bWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoMjgyKTogdGlkOiA5NjVmYTNhZCAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICgyODMpOiB0aWQ6IDk2NWZhM2FkICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjog OCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDI4NCk6IHRpZDogOTY1ZmEzYWQgIGxl bjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMjg1KTogdGlkOiA5NjVmYTNhZCAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg2KTogdGlkOiAz ZGEwNWEzICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDI4Nyk6IHRpZDogM2RhMDVhMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAg ICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMjg4KTogdGlkOiAzZGEw NWEzICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczog MyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAg bGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgyODkpOiB0aWQ6IDNkYTA1YTMgIGxlbjogOTYgIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAw MTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBt dGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhiNTQwMCBuYmxvY2tzIDB4YjcgZXh0c2l6ZSAweDAg bmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRl IDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICgyOTApOiB0aWQ6IDNkYTA1YTMgIGxlbjogMTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMjkxKTogdGlkOiAzZGEwNWEzICBsZW46IDI0ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkg IGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDI5Mik6IHRpZDogM2RhMDVh MyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFH RiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIK bGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAx OTQ5MTIxMSAgbG9uZ2VzdDogMTk0OTEyMTEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgyOTMp OiB0aWQ6IDNkYTA1YTMgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTog MiAgZmxhZ3M6IDB4MApPcGVyICgyOTQpOiB0aWQ6IDNkYTA1YTMgIGxlbjogMTI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo Mjk1KTogdGlkOiAzZGEwNWEzICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXpl OiAyICBmbGFnczogMHgwCk9wZXIgKDI5Nik6IHRpZDogM2RhMDVhMyAgbGVuOiAxMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICgyOTcpOiB0aWQ6IDNkYTA1YTMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09N TUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDI5OCk6IHRpZDogOGY2YTNlZTYgIGxlbjog MCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMjk5KTogdGlkOiA4ZjZhM2VlNiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1z OiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzAwKTogdGlkOiA4ZjZhM2VlNiAgbGVuOiA1 NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4 ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJv ZmY6IDEyODAKT3BlciAoMzAxKTogdGlkOiA4ZjZhM2VlNiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVy c2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBj dGltZSAweGQKc2l6ZSAweGI2ODAwIG5ibG9ja3MgMHhiOCBleHRzaXplIDB4MCBuZXh0ZW50cyAw eDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdz IDB4MCBnZW4gMHgwCk9wZXIgKDMwMik6IHRpZDogOGY2YTNlZTYgIGxlbjogMTYgIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoMzAzKTogdGlkOiA4ZjZhM2VlNiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEg IGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzMDQpOiB0aWQ6IDhmNmEzZWU2ICBsZW46 IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVy OiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBC Tk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjEw ICBsb25nZXN0OiAxOTQ5MTIxMAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNSk6IHRpZDog OGY2YTNlZTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMDYpOiB0aWQ6IDhmNmEzZWU2ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMwNyk6 IHRpZDogOGY2YTNlZTYgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIg IGZsYWdzOiAweDAKT3BlciAoMzA4KTogdGlkOiA4ZjZhM2VlNiAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MDkpOiB0aWQ6IDhmNmEzZWU2ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1J VCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTApOiB0aWQ6IGMxODk3YjhiICBsZW46IDAg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDMxMSk6IHRpZDogYzE4OTdiOGIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKVFJBTjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczog NAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMxMik6IHRpZDogYzE4OTdiOGIgIGxlbjogNTYg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1 ICBmbGFnczogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2Zm OiAxMjgwCk9wZXIgKDMxMyk6IHRpZDogYzE4OTdiOGIgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNp b24gMiBmb3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3Rp bWUgMHhkCnNpemUgMHhiN2MwMCBuYmxvY2tzIDB4YjkgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgx Cm5hZXh0ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAw eDAgZ2VuIDB4MApPcGVyICgzMTQpOiB0aWQ6IGMxODk3YjhiICBsZW46IDE2ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDMxNSk6IHRpZDogYzE4OTdiOGIgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBi bWFwIHNpemU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzE2KTogdGlkOiBjMTg5N2I4YiAgbGVuOiAx MjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjog MSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5P OiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIwOSAg bG9uZ2VzdDogMTk0OTEyMDkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTcpOiB0aWQ6IGMx ODk3YjhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzE4KTogdGlkOiBjMTg5N2I4YiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMTkpOiB0 aWQ6IGMxODk3YjhiICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBm bGFnczogMHgwCk9wZXIgKDMyMCk6IHRpZDogYzE4OTdiOGIgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIx KTogdGlkOiBjMTg5N2I4YiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQg Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzIyKTogdGlkOiA4NTJhMGU2MCAgbGVuOiAwICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz MjMpOiB0aWQ6IDg1MmEwZTYwICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l ClRSQU46ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzMjQpOiB0aWQ6IDg1MmEwZTYwICBsZW46IDU2ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAg ZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjog MTI4MApPcGVyICgzMjUpOiB0aWQ6IDg1MmEwZTYwICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9u IDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1l IDB4ZApzaXplIDB4YjkwMDAgbmJsb2NrcyAweGJiIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpu YWV4dGVudHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgw IGdlbiAweDAKT3BlciAoMzI2KTogdGlkOiA4NTJhMGU2MCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICgzMjcpOiB0aWQ6IDg1MmEwZTYwICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1h cCBzaXplOiAxICBmbGFnczogMHgwCk9wZXIgKDMyOCk6IHRpZDogODUyYTBlNjAgIGxlbjogMTI4 ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEg IHNlcSM6IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzog MSAgQ05UOiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMDcgIGxv bmdlc3Q6IDE5NDkxMjA3Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzI5KTogdGlkOiA4NTJh MGU2MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDMzMCk6IHRpZDogODUyYTBlNjAgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzMxKTogdGlk OiA4NTJhMGU2MCAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxh Z3M6IDB4MApPcGVyICgzMzIpOiB0aWQ6IDg1MmEwZTYwICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzMyk6 IHRpZDogODUyYTBlNjAgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAot LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDMzNCk6IHRpZDogMWUzZjQxZTIgIGxlbjogMCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM1 KTogdGlkOiAxZTNmNDFlMiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpU UkFOOiAgICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzM2KTogdGlkOiAxZTNmNDFlMiAgbGVuOiA1NiAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZs YWdzOiAweDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEy ODAKT3BlciAoMzM3KTogdGlkOiAxZTNmNDFlMiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAy IGZvcm1hdCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAw eGQKc2l6ZSAweGJhNDAwIG5ibG9ja3MgMHhiYyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFl eHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBn ZW4gMHgwCk9wZXIgKDMzOCk6IHRpZDogMWUzZjQxZTIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoMzM5KTogdGlkOiAxZTNmNDFlMiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAg c2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVyICgzNDApOiB0aWQ6IDFlM2Y0MWUyICBsZW46IDEyOCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBz ZXEjOiAwICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEg IENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjA2ICBsb25n ZXN0OiAxOTQ5MTIwNgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0MSk6IHRpZDogMWUzZjQx ZTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNDIpOiB0aWQ6IDFlM2Y0MWUyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Myk6IHRpZDog MWUzZjQxZTIgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdz OiAweDAKT3BlciAoMzQ0KTogdGlkOiAxZTNmNDFlMiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDUpOiB0 aWQ6IDFlM2Y0MWUyICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNDYpOiB0aWQ6IGU3Y2Y4YzM0ICBsZW46IDAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0Nyk6 IHRpZDogZTdjZjhjMzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJB TjogICAgdHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM0OCk6IHRpZDogZTdjZjhjMzQgIGxlbjogNTYgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFn czogMHg1ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgw Ck9wZXIgKDM0OSk6IHRpZDogZTdjZjhjMzQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBm b3JtYXQgMgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhk CnNpemUgMHhiYjgwMCBuYmxvY2tzIDB4YmQgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0 ZW50cyAweDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2Vu IDB4MApPcGVyICgzNTApOiB0aWQ6IGU3Y2Y4YzM0ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDM1MSk6IHRpZDogZTdjZjhjMzQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNp emU6IDEgIGZsYWdzOiAweDAKT3BlciAoMzUyKTogdGlkOiBlN2NmOGMzNCAgbGVuOiAxMjggIGNs aWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2Vx IzogMCAgbGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBD TlQ6IDEKMXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIwNSAgbG9uZ2Vz dDogMTk0OTEyMDUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTMpOiB0aWQ6IGU3Y2Y4YzM0 ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzU0KTogdGlkOiBlN2NmOGMzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTUpOiB0aWQ6IGU3 Y2Y4YzM0ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczog MHgwCk9wZXIgKDM1Nik6IHRpZDogZTdjZjhjMzQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzU3KTogdGlk OiBlN2NmOGMzNCAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KT3BlciAoMzU4KTogdGlkOiBkZGI4MjY4OSAgbGVuOiAwICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzNTkpOiB0 aWQ6IGRkYjgyNjg5ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46 ICAgIHR5cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICgzNjApOiB0aWQ6IGRkYjgyNjg5ICBsZW46IDU2ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6 IDB4NSAgIGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApP cGVyICgzNjEpOiB0aWQ6IGRkYjgyNjg5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9y bWF0IDIKbmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApz aXplIDB4YmNjMDAgbmJsb2NrcyAweGJlIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVu dHMgMHgwIGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAw eDAKT3BlciAoMzYyKTogdGlkOiBkZGI4MjY4OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgz NjMpOiB0aWQ6IGRkYjgyNjg5ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXpl OiAxICBmbGFnczogMHgwCk9wZXIgKDM2NCk6IHRpZDogZGRiODI2ODkgIGxlbjogMTI4ICBjbGll bnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6 IDAgIGxlbjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05U OiAxCjFzdDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMDQgIGxvbmdlc3Q6 IDE5NDkxMjA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY1KTogdGlkOiBkZGI4MjY4OSAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM2Nik6IHRpZDogZGRiODI2ODkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzY3KTogdGlkOiBkZGI4 MjY4OSAgbGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4 MApPcGVyICgzNjgpOiB0aWQ6IGRkYjgyNjg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM2OSk6IHRpZDog ZGRiODI2ODkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCk9wZXIgKDM3MCk6IHRpZDogY2U4NTJjMzQgIGxlbjogMCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzcxKTogdGlk OiBjZTg1MmMzNCAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAg ICB0eXBlOiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoMzcyKTogdGlkOiBjZTg1MmMzNCAgbGVuOiA1NiAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAw eDUgICBkc2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3Bl ciAoMzczKTogdGlkOiBjZTg1MmMzNCAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpJTk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1h dCAyCm5saW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6 ZSAweGJlMDAwIG5ibG9ja3MgMHhjMCBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRz IDB4MCBmb3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgw Ck9wZXIgKDM3NCk6IHRpZDogY2U4NTJjMzQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzc1 KTogdGlkOiBjZTg1MmMzNCAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTog MSAgZmxhZ3M6IDB4MApPcGVyICgzNzYpOiB0aWQ6IGNlODUyYzM0ICBsZW46IDEyOCAgY2xpZW50 aWQ6IFRSQU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAw ICBsZW46IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDog MQoxc3Q6IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMjAyICBsb25nZXN0OiAx OTQ5MTIwMgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3Nyk6IHRpZDogY2U4NTJjMzQgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICgzNzgpOiB0aWQ6IGNlODUyYzM0ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM3OSk6IHRpZDogY2U4NTJj MzQgIGxlbjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAK T3BlciAoMzgwKTogdGlkOiBjZTg1MmMzNCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODEpOiB0aWQ6IGNl ODUyYzM0ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpPcGVyICgzODIpOiB0aWQ6IDQ3NjBlNGVjICBsZW46IDAgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Myk6IHRpZDog NDc2MGU0ZWMgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAg dHlwZTogRElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDM4NCk6IHRpZDogNDc2MGU0ZWMgIGxlbjogNTYgIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1 ICAgZHNpemU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIg KDM4NSk6IHRpZDogNDc2MGU0ZWMgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKSU5PREUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQg MgpubGluayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUg MHhiZjQwMCBuYmxvY2tzIDB4YzEgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAw eDAgZm9ya29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApP cGVyICgzODYpOiB0aWQ6IDQ3NjBlNGVjICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDM4Nyk6 IHRpZDogNDc2MGU0ZWMgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG OiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEg IGZsYWdzOiAweDAKT3BlciAoMzg4KTogdGlkOiA0NzYwZTRlYyAgbGVuOiAxMjggIGNsaWVudGlk OiBUUkFOUyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAg bGVuOiAxOTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEK MXN0OiAwICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTIwMSAgbG9uZ2VzdDogMTk0 OTEyMDEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzODkpOiB0aWQ6IDQ3NjBlNGVjICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo MzkwKTogdGlkOiA0NzYwZTRlYyAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTEpOiB0aWQ6IDQ3NjBlNGVj ICBsZW46IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9w ZXIgKDM5Mik6IHRpZDogNDc2MGU0ZWMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoMzkzKTogdGlkOiA0NzYw ZTRlYyAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KT3BlciAoMzk0KTogdGlkOiAzNDc0YThmMyAgbGVuOiAwICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTUpOiB0aWQ6IDM0 NzRhOGYzICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5 cGU6IERJT1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQpPcGVyICgzOTYpOiB0aWQ6IDM0NzRhOGYzICBsZW46IDU2ICBjbGllbnRpZDogVFJB TlMgIGZsYWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAg IGRzaXplOiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICgz OTcpOiB0aWQ6IDM0NzRhOGYzICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CklOT0RFIENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIK bmxpbmsgMSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4 YzA4MDAgbmJsb2NrcyAweGMyIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgw IGZvcmtvZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3Bl ciAoMzk4KTogdGlkOiAzNDc0YThmMyAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpFWFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICgzOTkpOiB0 aWQ6IDM0NzRhOGYzICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjog ICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBm bGFnczogMHgwCk9wZXIgKDQwMCk6IHRpZDogMzQ3NGE4ZjMgIGxlbjogMTI4ICBjbGllbnRpZDog VFJBTlMgIGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxl bjogMTk0OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFz dDogMCAgbGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTEyMDAgIGxvbmdlc3Q6IDE5NDkx MjAwCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAxKTogdGlkOiAzNDc0YThmMyAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiAxNiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQw Mik6IHRpZDogMzQ3NGE4ZjMgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDAzKTogdGlkOiAzNDc0YThmMyAg bGVuOiAyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVy ICg0MDQpOiB0aWQ6IDM0NzRhOGYzICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpCVUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQwNSk6IHRpZDogMzQ3NGE4 ZjMgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCk9wZXIgKDQwNik6IHRpZDogYzc0NTMxNDIgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDA3KTogdGlkOiBjNzQ1 MzE0MiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBl OiBESU9TVFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KT3BlciAoNDA4KTogdGlkOiBjNzQ1MzE0MiAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5T ICBmbGFnczogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBk c2l6ZTogMTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDA5 KTogdGlkOiBjNzQ1MzE0MiAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJ Tk9ERSBDT1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5s aW5rIDEgdWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGMx YzAwIG5ibG9ja3MgMHhjMyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBm b3Jrb2ZmIDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIg KDQxMCk6IHRpZDogYzc0NTMxNDIgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKRVhURU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDExKTogdGlk OiBjNzQ1MzE0MiAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAj cmVnczogMiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxh Z3M6IDB4MApPcGVyICg0MTIpOiB0aWQ6IGM3NDUzMTQyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRS QU5TICBmbGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46 IDE5NDkyMzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6 IDAgIGxhc3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMTk5ICBsb25nZXN0OiAxOTQ5MTE5 OQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxMyk6IHRpZDogYzc0NTMxNDIgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogMTYgKDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0MTQp OiB0aWQ6IGM3NDUzMTQyICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxNSk6IHRpZDogYzc0NTMxNDIgIGxl bjogMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFy dCBibGtubzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAo NDE2KTogdGlkOiBjNzQ1MzE0MiAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5v bmUKQlVGIERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MTcpOiB0aWQ6IGM3NDUzMTQy ICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQpPcGVyICg0MTgpOiB0aWQ6IDhmOWY4YzJkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQxOSk6IHRpZDogOGY5Zjhj MmQgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTog RElPU1RSQVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCk9wZXIgKDQyMCk6IHRpZDogOGY5ZjhjMmQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAg ZmxhZ3M6IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNp emU6IDE2CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQyMSk6 IHRpZDogOGY5ZjhjMmQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5P REUgQ09SRQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGlu ayAxIHVpZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhjMzAw MCBuYmxvY2tzIDB4YzUgZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9y a29mZiAwIGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0 MjIpOiB0aWQ6IDhmOWY4YzJkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkVYVEVOVFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQyMyk6IHRpZDog OGY5ZjhjMmQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3Jl Z3M6IDIgICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdz OiAweDAKT3BlciAoNDI0KTogdGlkOiA4ZjlmOGMyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFO UyAgZmxhZ3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAx OTQ5MjM2NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAw ICBsYXN0OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTE5NyAgbG9uZ2VzdDogMTk0OTExOTcK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjUpOiB0aWQ6IDhmOWY4YzJkICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDE2ICgweDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDI2KTog dGlkOiA4ZjlmOGMyZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MjcpOiB0aWQ6IDhmOWY4YzJkICBsZW46 IDI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQg Ymxrbm86IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQy OCk6IHRpZDogOGY5ZjhjMmQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25l CkJVRiBEQVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDI5KTogdGlkOiA4ZjlmOGMyZCAg bGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KT3BlciAoNDMwKTogdGlkOiA3Mzc4Y2U5ZiAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBTVEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzEpOiB0aWQ6IDczNzhjZTlm ICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJ T1NUUkFUICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQpPcGVyICg0MzIpOiB0aWQ6IDczNzhjZTlmICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZs YWdzOiBub25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXpl OiAxNgogICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0MzMpOiB0 aWQ6IDczNzhjZTlmICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RF IENPUkUKbWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsg MSB1aWQgMCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YzQ0MDAg bmJsb2NrcyAweGM2IGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtv ZmYgMCBkbWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDM0 KTogdGlkOiA3Mzc4Y2U5ZiAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpF WFRFTlRTIGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0MzUpOiB0aWQ6IDcz NzhjZTlmICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdz OiAyICAgc3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczog MHgwCk9wZXIgKDQzNik6IHRpZDogNzM3OGNlOWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMg IGZsYWdzOiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0 OTIzNjYgIApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAg bGFzdDogMyAgY250OiA0ICBmcmVlYmxrczogMTk0OTExOTYgIGxvbmdlc3Q6IDE5NDkxMTk2Ci0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM3KTogdGlkOiA3Mzc4Y2U5ZiAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAx NiAoMHgxMCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQzOCk6IHRp ZDogNzM3OGNlOWYgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDM5KTogdGlkOiA3Mzc4Y2U5ZiAgbGVuOiAy OCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJs a25vOiA4ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NDAp OiB0aWQ6IDczNzhjZTlmICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpC VUYgREFUQQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0MSk6IHRpZDogNzM3OGNlOWYgIGxl bjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ck9wZXIgKDQ0Mik6IHRpZDogNmFlM2QyMzUgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogU1RBUlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQzKTogdGlkOiA2YWUzZDIzNSAg bGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9T VFJBVCAgICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K T3BlciAoNDQ0KTogdGlkOiA2YWUzZDIzNSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFn czogbm9uZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTog MTYKICAgICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDQ1KTogdGlk OiA2YWUzZDIzNSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBD T1JFCm1hZ2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEg dWlkIDAgZ2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGM1ODAwIG5i bG9ja3MgMHhjNyBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2Zm IDAgZG1ldm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ0Nik6 IHRpZDogNmFlM2QyMzUgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhU RU5UUyBpbm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDQ3KTogdGlkOiA2YWUz ZDIzNSAgbGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczog MiAgIHN0YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4 MApPcGVyICg0NDgpOiB0aWQ6IDZhZTNkMjM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBm bGFnczogbm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDky MzY2ICAKcm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxh c3Q6IDMgIGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMTk1ICBsb25nZXN0OiAxOTQ5MTE5NQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ0OSk6IHRpZDogNmFlM2QyMzUgIGxlbjogMjggIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYg KDB4MTApICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NTApOiB0aWQ6 IDZhZTNkMjM1ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1MSk6IHRpZDogNmFlM2QyMzUgIGxlbjogMjgg IGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtu bzogOCAoMHg4KSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDUyKTog dGlkOiA2YWUzZDIzNSAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVG IERBVEEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NTMpOiB0aWQ6IDZhZTNkMjM1ICBsZW46 IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IENPTU1JVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpP cGVyICg0NTQpOiB0aWQ6IDlkZDc3YjVkICBsZW46IDAgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IFNUQVJUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1NSk6IHRpZDogOWRkNzdiNWQgIGxl bjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKVFJBTjogICAgdHlwZTogRElPU1RS QVQgICAgICAgdGlkOiAwICAgICAgIG51bV9pdGVtczogNAotLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9w ZXIgKDQ1Nik6IHRpZDogOWRkNzdiNWQgIGxlbjogNTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6 IG5vbmUKSU5PREU6ICNyZWdzOiAzICAgaW5vOiAweDg1ICBmbGFnczogMHg1ICAgZHNpemU6IDE2 CiAgICAgICAgYmxrbm86IDY0ICBsZW46IDE2ICBib2ZmOiAxMjgwCk9wZXIgKDQ1Nyk6IHRpZDog OWRkNzdiNWQgIGxlbjogOTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKSU5PREUgQ09S RQptYWdpYyAweDQ5NGUgbW9kZSAwMTAwNjQ0IHZlcnNpb24gMiBmb3JtYXQgMgpubGluayAxIHVp ZCAwIGdpZCAwCmF0aW1lIDB4YyBtdGltZSAweGQgY3RpbWUgMHhkCnNpemUgMHhjNmMwMCBuYmxv Y2tzIDB4YzggZXh0c2l6ZSAweDAgbmV4dGVudHMgMHgxCm5hZXh0ZW50cyAweDAgZm9ya29mZiAw IGRtZXZtYXNrIDB4MCBkbXN0YXRlIDB4MApmbGFncyAweDAgZ2VuIDB4MApPcGVyICg0NTgpOiB0 aWQ6IDlkZDc3YjVkICBsZW46IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkVYVEVO VFMgaW5vZGUgZGF0YQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ1OSk6IHRpZDogOWRkNzdi NWQgIGxlbjogMjQgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIg ICBzdGFydCBibGtubzogMSAoMHgxKSAgbGVuOiAxICBibWFwIHNpemU6IDEgIGZsYWdzOiAweDAK T3BlciAoNDYwKTogdGlkOiA5ZGQ3N2I1ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxh Z3M6IG5vbmUKQUdGIEJ1ZmZlcjogWEFHRiAgCnZlcjogMSAgc2VxIzogMCAgbGVuOiAxOTQ5MjM2 NiAgCnJvb3QgQk5POiAxICBDTlQ6IDIKbGV2ZWwgQk5POiAxICBDTlQ6IDEKMXN0OiAwICBsYXN0 OiAzICBjbnQ6IDQgIGZyZWVibGtzOiAxOTQ5MTE5NCAgbG9uZ2VzdDogMTk0OTExOTQKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQpPcGVyICg0NjEpOiB0aWQ6IDlkZDc3YjVkICBsZW46IDI4ICBjbGllbnRp ZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86IDE2ICgw eDEwKSAgbGVuOiA4ICBibWFwIHNpemU6IDIgIGZsYWdzOiAweDAKT3BlciAoNDYyKTogdGlkOiA5 ZGQ3N2I1ZCAgbGVuOiAxMjggIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKQlVGIERBVEEK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjMpOiB0aWQ6IDlkZDc3YjVkICBsZW46IDI4ICBj bGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAgc3RhcnQgYmxrbm86 IDggKDB4OCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ2NCk6IHRp ZDogOWRkNzdiNWQgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBE QVRBCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDY1KTogdGlkOiA5ZGQ3N2I1ZCAgbGVuOiAw ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBDT01NSVQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3Bl ciAoNDY2KTogdGlkOiA0NGVmZjk3OSAgbGVuOiAwICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBT VEFSVCAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NjcpOiB0aWQ6IDQ0ZWZmOTc5ICBsZW46 IDE2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lClRSQU46ICAgIHR5cGU6IERJT1NUUkFU ICAgICAgIHRpZDogMCAgICAgICBudW1faXRlbXM6IDQKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVy ICg0NjgpOiB0aWQ6IDQ0ZWZmOTc5ICBsZW46IDU2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBu b25lCklOT0RFOiAjcmVnczogMyAgIGlubzogMHg4NSAgZmxhZ3M6IDB4NSAgIGRzaXplOiAxNgog ICAgICAgIGJsa25vOiA2NCAgbGVuOiAxNiAgYm9mZjogMTI4MApPcGVyICg0NjkpOiB0aWQ6IDQ0 ZWZmOTc5ICBsZW46IDk2ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCklOT0RFIENPUkUK bWFnaWMgMHg0OTRlIG1vZGUgMDEwMDY0NCB2ZXJzaW9uIDIgZm9ybWF0IDIKbmxpbmsgMSB1aWQg MCBnaWQgMAphdGltZSAweGMgbXRpbWUgMHhkIGN0aW1lIDB4ZApzaXplIDB4YzgwMDAgbmJsb2Nr cyAweGNhIGV4dHNpemUgMHgwIG5leHRlbnRzIDB4MQpuYWV4dGVudHMgMHgwIGZvcmtvZmYgMCBk bWV2bWFzayAweDAgZG1zdGF0ZSAweDAKZmxhZ3MgMHgwIGdlbiAweDAKT3BlciAoNDcwKTogdGlk OiA0NGVmZjk3OSAgbGVuOiAxNiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpFWFRFTlRT IGlub2RlIGRhdGEKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpPcGVyICg0NzEpOiB0aWQ6IDQ0ZWZmOTc5 ICBsZW46IDI0ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRjogICNyZWdzOiAyICAg c3RhcnQgYmxrbm86IDEgKDB4MSkgIGxlbjogMSAgYm1hcCBzaXplOiAxICBmbGFnczogMHgwCk9w ZXIgKDQ3Mik6IHRpZDogNDRlZmY5NzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdz OiBub25lCkFHRiBCdWZmZXI6IFhBR0YgIAp2ZXI6IDEgIHNlcSM6IDAgIGxlbjogMTk0OTIzNjYg IApyb290IEJOTzogMSAgQ05UOiAyCmxldmVsIEJOTzogMSAgQ05UOiAxCjFzdDogMCAgbGFzdDog MyAgY250OiA0ICBmcmVlYmxrczogMTk0OTExOTIgIGxvbmdlc3Q6IDE5NDkxMTkyCi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KT3BlciAoNDczKTogdGlkOiA0NGVmZjk3OSAgbGVuOiAyOCAgY2xpZW50aWQ6 IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiAxNiAoMHgx MCkgIGxlbjogOCAgYm1hcCBzaXplOiAyICBmbGFnczogMHgwCk9wZXIgKDQ3NCk6IHRpZDogNDRl ZmY5NzkgIGxlbjogMTI4ICBjbGllbnRpZDogVFJBTlMgIGZsYWdzOiBub25lCkJVRiBEQVRBCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc1KTogdGlkOiA0NGVmZjk3OSAgbGVuOiAyOCAgY2xp ZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0YXJ0IGJsa25vOiA4 ICgweDgpICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0NzYpOiB0aWQ6 IDQ0ZWZmOTc5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFU QQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ3Nyk6IHRpZDogNDRlZmY5NzkgIGxlbjogMCAg Y2xpZW50aWQ6IFRSQU5TICBmbGFnczogQ09NTUlUIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCk9wZXIg KDQ3OCk6IHRpZDogNzM4ZWYyODkgIGxlbjogMCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogU1RB UlQgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDc5KTogdGlkOiA3MzhlZjI4OSAgbGVuOiAx NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpUUkFOOiAgICB0eXBlOiBESU9TVFJBVCAg ICAgICB0aWQ6IDAgICAgICAgbnVtX2l0ZW1zOiA0Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAo NDgwKTogdGlkOiA3MzhlZjI4OSAgbGVuOiA1NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9u ZQpJTk9ERTogI3JlZ3M6IDMgICBpbm86IDB4ODUgIGZsYWdzOiAweDUgICBkc2l6ZTogMTYKICAg ICAgICBibGtubzogNjQgIGxlbjogMTYgIGJvZmY6IDEyODAKT3BlciAoNDgxKTogdGlkOiA3Mzhl ZjI4OSAgbGVuOiA5NiAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpJTk9ERSBDT1JFCm1h Z2ljIDB4NDk0ZSBtb2RlIDAxMDA2NDQgdmVyc2lvbiAyIGZvcm1hdCAyCm5saW5rIDEgdWlkIDAg Z2lkIDAKYXRpbWUgMHhjIG10aW1lIDB4ZCBjdGltZSAweGQKc2l6ZSAweGM5NDAwIG5ibG9ja3Mg MHhjYiBleHRzaXplIDB4MCBuZXh0ZW50cyAweDEKbmFleHRlbnRzIDB4MCBmb3Jrb2ZmIDAgZG1l dm1hc2sgMHgwIGRtc3RhdGUgMHgwCmZsYWdzIDB4MCBnZW4gMHgwCk9wZXIgKDQ4Mik6IHRpZDog NzM4ZWYyODkgIGxlbjogMTYgIGNsaWVudGlkOiBUUkFOUyAgZmxhZ3M6IG5vbmUKRVhURU5UUyBp bm9kZSBkYXRhCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KT3BlciAoNDgzKTogdGlkOiA3MzhlZjI4OSAg bGVuOiAyNCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUY6ICAjcmVnczogMiAgIHN0 YXJ0IGJsa25vOiAxICgweDEpICBsZW46IDEgIGJtYXAgc2l6ZTogMSAgZmxhZ3M6IDB4MApPcGVy ICg0ODQpOiB0aWQ6IDczOGVmMjg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczog bm9uZQpBR0YgQnVmZmVyOiBYQUdGICAKdmVyOiAxICBzZXEjOiAwICBsZW46IDE5NDkyMzY2ICAK cm9vdCBCTk86IDEgIENOVDogMgpsZXZlbCBCTk86IDEgIENOVDogMQoxc3Q6IDAgIGxhc3Q6IDMg IGNudDogNCAgZnJlZWJsa3M6IDE5NDkxMTkxICBsb25nZXN0OiAxOTQ5MTE5MQotLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCk9wZXIgKDQ4NSk6IHRpZDogNzM4ZWYyODkgIGxlbjogMjggIGNsaWVudGlkOiBU UkFOUyAgZmxhZ3M6IG5vbmUKQlVGOiAgI3JlZ3M6IDIgICBzdGFydCBibGtubzogMTYgKDB4MTAp ICBsZW46IDggIGJtYXAgc2l6ZTogMiAgZmxhZ3M6IDB4MApPcGVyICg0ODYpOiB0aWQ6IDczOGVm Mjg5ICBsZW46IDEyOCAgY2xpZW50aWQ6IFRSQU5TICBmbGFnczogbm9uZQpCVUYgREFUQQotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCk9wZXIgKDQ4Nyk6IHRpZDogNzM4ZWYyODkgIGxlbjogMjAgIGNsaWVu dGlkOiBUUkFOUyAgZmxhZ3M6IENPTlRJTlVFIApCVUY6ICAjcmVnczogMiAgIE5vdCBwcmludGlu ZyByZXN0IG9mIGRhdGEKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KeGZzX2xvZ3ByaW50OiBza2lwcGVk IDM1MTAgY2xlYXJlZCBibG9ja3MgaW4gcmFuZ2U6IDU5MiAtIDQxMDEKeGZzX2xvZ3ByaW50OiBz a2lwcGVkIDYxNDM0IHplcm9lZCBibG9ja3MgaW4gcmFuZ2U6IDQxMDIgLSA2NTUzNQp4ZnNfbG9n cHJpbnQ6IHBoeXNpY2FsIGVuZCBvZiBsb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQp4ZnNfbG9ncHJp bnQ6IGxvZ2ljYWwgZW5kIG9mIGxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cg== --0016e64652988e6d0e04a8a600ee-- From peterz@infradead.org Fri Jul 22 07:54:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MCs7qL084556 for ; Fri, 22 Jul 2011 07:54:10 -0500 X-ASG-Debug-ID: 1311339244-67f700a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from casper.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F0D7F1EECA67 for ; Fri, 22 Jul 2011 05:54:05 -0700 (PDT) Received: from casper.infradead.org (casper.infradead.org [85.118.1.10]) by cuda.sgi.com with ESMTP id iH0NUKtr49vp4zfL for ; Fri, 22 Jul 2011 05:54:05 -0700 (PDT) Received: from j77219.upc-j.chello.nl ([24.132.77.219] helo=twins) by casper.infradead.org with esmtpsa (Exim 4.76 #1 (Red Hat Linux)) id 1QkFEl-0000hB-Qw; Fri, 22 Jul 2011 12:53:51 +0000 Received: by twins (Postfix, from userid 1000) id 479C38174EA5; Fri, 22 Jul 2011 14:53:49 +0200 (CEST) X-ASG-Orig-Subj: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes From: Peter Zijlstra To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim In-Reply-To: <1311265730-5324-8-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-8-git-send-email-mgorman@suse.de> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Date: Fri, 22 Jul 2011 14:53:48 +0200 Message-ID: <1311339228.27400.34.camel@twins> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 X-Barracuda-Connect: casper.infradead.org[85.118.1.10] X-Barracuda-Start-Time: 1311339245 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0206 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69657 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:28 +0100, Mel Gorman wrote: > When direct reclaim encounters a dirty page, it gets recycled around > the LRU for another cycle. This patch marks the page PageReclaim > similar to deactivate_page() so that the page gets reclaimed almost > immediately after the page gets cleaned. This is to avoid reclaiming > clean pages that are younger than a dirty page encountered at the > end of the LRU that might have been something like a use-once page. >=20 > @@ -834,7 +834,15 @@ static unsigned long shrink_page_list(struct list_he= ad *page_list, > */ > if (page_is_file_cache(page) && > (!current_is_kswapd() || priority >=3D DEF_PRIORITY - 2)) { > - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > + /* > + * Immediately reclaim when written back. > + * Similar in principal to deactivate_page() > + * except we already have the page isolated > + * and know it's dirty > + */ > + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); > + SetPageReclaim(page); > + I find the invalidate name somewhat confusing. It makes me think we'll drop the page without writeback, like invalidatepage(). From peterz@infradead.org Fri Jul 22 07:57:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MCvRUs084655 for ; Fri, 22 Jul 2011 07:57:27 -0500 X-ASG-Debug-ID: 1311339446-4e4000cc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from merlin.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8BFE28DB7A for ; Fri, 22 Jul 2011 05:57:26 -0700 (PDT) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by cuda.sgi.com with ESMTP id 9EchyJVhI1AmIfhu for ; Fri, 22 Jul 2011 05:57:26 -0700 (PDT) Received: from canuck.infradead.org ([2001:4978:20e::1]) by merlin.infradead.org with esmtps (Exim 4.76 #1 (Red Hat Linux)) id 1QkFI5-0004sp-RC; Fri, 22 Jul 2011 12:57:17 +0000 Received: from j77219.upc-j.chello.nl ([24.132.77.219] helo=twins) by canuck.infradead.org with esmtpsa (Exim 4.76 #1 (Red Hat Linux)) id 1QkFI4-0004K9-AB; Fri, 22 Jul 2011 12:57:16 +0000 Received: by twins (Postfix, from userid 1000) id A04DE8175A3A; Fri, 22 Jul 2011 14:57:12 +0200 (CEST) X-ASG-Orig-Subj: Re: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd Subject: Re: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd From: Peter Zijlstra To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim In-Reply-To: <1311265730-5324-9-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-9-git-send-email-mgorman@suse.de> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Date: Fri, 22 Jul 2011 14:57:12 +0200 Message-ID: <1311339432.27400.36.camel@twins> Mime-Version: 1.0 X-Mailer: Evolution 2.30.3 X-Barracuda-Connect: merlin.infradead.org[205.233.59.134] X-Barracuda-Start-Time: 1311339446 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69657 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:28 +0100, Mel Gorman wrote: > Assuming that flusher threads will always write back dirty pages promptly > then it is always faster for reclaimers to wait for flushers. This patch > prevents kswapd writing back any filesystem pages.=20 That is a somewhat sort changelog for such a big assumption ;-) I think it can use a few extra words to explain the need to clean pages from @zone vs writeback picks whatever fits best on disk and how that works out wrt the assumption. What requirements does this place on writeback and how does it meet them. From mgorman@suse.de Fri Jul 22 08:23:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MDNPpo085818 for ; Fri, 22 Jul 2011 08:23:25 -0500 X-ASG-Debug-ID: 1311341004-7ab800fe0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A85C21EECC66 for ; Fri, 22 Jul 2011 06:23:24 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 1LZFhMtCCw6BXLqC for ; Fri, 22 Jul 2011 06:23:24 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 273AE8EE5B; Fri, 22 Jul 2011 15:23:22 +0200 (CEST) Date: Fri, 22 Jul 2011 14:23:19 +0100 From: Mel Gorman To: Peter Zijlstra Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Message-ID: <20110722132319.GX5349@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-8-git-send-email-mgorman@suse.de> <1311339228.27400.34.camel@twins> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1311339228.27400.34.camel@twins> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311341004 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0009 1.0000 -2.0150 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69659 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:53:48PM +0200, Peter Zijlstra wrote: > On Thu, 2011-07-21 at 17:28 +0100, Mel Gorman wrote: > > When direct reclaim encounters a dirty page, it gets recycled around > > the LRU for another cycle. This patch marks the page PageReclaim > > similar to deactivate_page() so that the page gets reclaimed almost > > immediately after the page gets cleaned. This is to avoid reclaiming > > clean pages that are younger than a dirty page encountered at the > > end of the LRU that might have been something like a use-once page. > > > > > @@ -834,7 +834,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, > > */ > > if (page_is_file_cache(page) && > > (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { > > - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > + /* > > + * Immediately reclaim when written back. > > + * Similar in principal to deactivate_page() > > + * except we already have the page isolated > > + * and know it's dirty > > + */ > > + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); > > + SetPageReclaim(page); > > + > > I find the invalidate name somewhat confusing. It makes me think we'll > drop the page without writeback, like invalidatepage(). I wasn't that happy with it either to be honest but didn't think of a better one at the time. nr_reclaim_deferred? -- Mel Gorman SUSE Labs From mgorman@suse.de Fri Jul 22 08:31:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MDVhBl086104 for ; Fri, 22 Jul 2011 08:31:43 -0500 X-ASG-Debug-ID: 1311341501-4823003a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 81E1DEF35C3 for ; Fri, 22 Jul 2011 06:31:42 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id FtatjeQAGoRy8Mhe for ; Fri, 22 Jul 2011 06:31:42 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 2A54B8AD27; Fri, 22 Jul 2011 15:31:41 +0200 (CEST) Date: Fri, 22 Jul 2011 14:31:38 +0100 From: Mel Gorman To: Peter Zijlstra Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd Subject: Re: [PATCH 8/8] mm: vmscan: Do not writeback filesystem pages from kswapd Message-ID: <20110722133138.GY5349@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-9-git-send-email-mgorman@suse.de> <1311339432.27400.36.camel@twins> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <1311339432.27400.36.camel@twins> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311341502 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69658 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:57:12PM +0200, Peter Zijlstra wrote: > On Thu, 2011-07-21 at 17:28 +0100, Mel Gorman wrote: > > Assuming that flusher threads will always write back dirty pages promptly > > then it is always faster for reclaimers to wait for flushers. This patch > > prevents kswapd writing back any filesystem pages. > > That is a somewhat sort changelog for such a big assumption ;-) > That is an understatement but the impact of the patch is discussed in detail in the leader. On NUMA, this patch has a negative impact so I put no effort into the changelog. The patch is part of the series because it was specifically asked for. > I think it can use a few extra words to explain the need to clean pages > from @zone vs writeback picks whatever fits best on disk and how that > works out wrt the assumption. > At the time of writing the changelog, I knew that flushers were not finding pages from the correct zones quickly enough in the NUMA usecase. The changelog documents the assumptions testing shows them to be false. > What requirements does this place on writeback and how does it meet > them. It places a requirement on writeback to prioritise pages from zones under memory pressure. It doesn't meet them. I mention in the leader that I think patch 8 should be dropped which is why the changelog sucks. -- Mel Gorman SUSE Labs From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:17:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MEHw1r088105 for ; Fri, 22 Jul 2011 09:17:59 -0500 X-ASG-Debug-ID: 1311344275-193700f70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F090180BDAE for ; Fri, 22 Jul 2011 07:17:55 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id lf9OFnvwEJr3ETtc for ; Fri, 22 Jul 2011 07:17:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkGY5-0007Fo-II; Fri, 22 Jul 2011 14:17:53 +0000 Date: Fri, 22 Jul 2011 10:17:53 -0400 From: Christoph Hellwig To: "Theodore Ts'o" Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110722141753.GA19681@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311292237-4155-2-git-send-email-tytso@mit.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311344277 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0013 1.0000 -2.0123 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69661 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 07:50:36PM -0400, Theodore Ts'o wrote: > The tree currently will blow out with a build failure if -DDEBUG is > specified. This still doesn't make sense to me. libxfs explicily overrides DEBUG in the makefile: # don't try linking xfs_repair with a debug libxfs. DEBUG = -DNDEBUG we really need to figure out why your enviroment doesn't pick this up, especially as we've never seen that report from anybody else. From aelder@sgi.com Fri Jul 22 09:25:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MEPNrw088562 for ; Fri, 22 Jul 2011 09:25:23 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id B17BBAC005 for ; Fri, 22 Jul 2011 07:25:19 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 09:24:28 -0500 Subject: Re: [PATCH] xfs: set cursor in xfs_ail_splice() even when AIL was empty From: Alex Elder Reply-To: To: In-Reply-To: <201107212205.p6LM5dxF016460@stout.americas.sgi.com> References: <201107212205.p6LM5dxF016460@stout.americas.sgi.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 09:24:28 -0500 Message-ID: <1311344668.2771.13.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:05 -0500, Alex Elder wrote: > In xfs_ail_splice(), if a cursor is provided it is updated > to point to the last item on the list to be spliced into > the AIL. But if the AIL was found to be empty, the cursor > (if provided) is just initialized instead. > > There is no reason the null AIL case needs to be any different. > And treating it the same way allows this code to be rearranged > a bit, with a somewhat tidier result. > > Signed-off-by: Alex Elder I discovered a problem as I was thinking about this last night. I'll send an update shortly. The problem is that my proposed xfs_ail_splice() shouldn't update the cursor if an empty list is passed, because the result won't produce a valid item pointer. An earlier edition of this patch asserted no empty list would get passed, but that fired fairly quickly. Looking carefully at the code as it stands now, an empty list will actually do no harm, but that's just lucky, more or less. And because the list_splice() after that ends up being a no-op, there is really no point in scanning the AIL to re-validate lip. Therefore we should just avoid calling xfs_ail_splice() at all with an empty item list. -Alex From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:28:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.2 required=5.0 tests=BAYES_00,HEADER_ESQ, J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MESq4t088735 for ; Fri, 22 Jul 2011 09:28:52 -0500 X-ASG-Debug-ID: 1311344931-67f9031e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1F21F1EED1A1 for ; Fri, 22 Jul 2011 07:28:51 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 8EcYZhpfbsce0aBd for ; Fri, 22 Jul 2011 07:28:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkGig-0000bu-Iy; Fri, 22 Jul 2011 14:28:50 +0000 Date: Fri, 22 Jul 2011 10:28:50 -0400 From: Christoph Hellwig To: "Theodore Ts'o" Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Subject: Re: [PATCH XFSPROGS 1/3] configure.in: Declare a requirement for at least autoconf 2.50 Message-ID: <20110722142850.GB19681@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311292237-4155-1-git-send-email-tytso@mit.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311344932 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0020 1.0000 -2.0083 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69663 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 07:50:35PM -0400, Theodore Ts'o wrote: > On Debian/Ubuntu systems, if autoconf version 2.13 is installed, > autoconf will try to automatically figure out whether autoconf 2.13 or > something more modern is required (since the autoconf maintainers, > curses be upon them, didn't bother to maintain compatibility between > autoconf 2.13 and 2.50). Unfortunately, the hueristics aren't > perfect, and although the configure.in file looks superficially like > it will be compatible with autoconf 2.13, it isn't. You will end up > with a number of very subtle compilation failures if you use autoconf > 2.13. > > So declare a requirement for autoconf 2.50 using AC_PREREQ(2.50). Thanks a lot, I've applied our xfsprogs and xfstests patches, and also ported the change to the xfsdump and dmapi repositories. From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:29:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MET73m088762 for ; Fri, 22 Jul 2011 09:29:07 -0500 X-ASG-Debug-ID: 1311344946-194501180000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CED021EED1A5 for ; Fri, 22 Jul 2011 07:29:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id hrZQOeA4MsGPLRrd for ; Fri, 22 Jul 2011 07:29:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkGiv-0000cL-K7; Fri, 22 Jul 2011 14:29:05 +0000 Date: Fri, 22 Jul 2011 10:29:05 -0400 From: Christoph Hellwig To: "Theodore Ts'o" Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 3/3] mkfs: Link against libuuid after liblkid Subject: Re: [PATCH XFSPROGS 3/3] mkfs: Link against libuuid after liblkid Message-ID: <20110722142905.GC19681@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-3-git-send-email-tytso@mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311292237-4155-3-git-send-email-tytso@mit.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311344946 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0124 1.0000 -1.9403 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.84 X-Barracuda-Spam-Status: No, SCORE=-1.84 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69663 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 07:50:37PM -0400, Theodore Ts'o wrote: > The order in which libraries are searched matters if you are using > static libraries. Since libblkid uses some functions from libuuid, it > needs to come before libuuid in the link line. Thanks, applied. From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:29:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6METKfP088783 for ; Fri, 22 Jul 2011 09:29:21 -0500 X-ASG-Debug-ID: 1311344959-4869011a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 49A70EF539B for ; Fri, 22 Jul 2011 07:29:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YYb6pREymFZW1Ole for ; Fri, 22 Jul 2011 07:29:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkGj8-0000cb-TB; Fri, 22 Jul 2011 14:29:18 +0000 Date: Fri, 22 Jul 2011 10:29:18 -0400 From: Christoph Hellwig To: "Theodore Ts'o" Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSTESTS 3/3] dmapi: fix build failure if libdm is provided via -ldm Subject: Re: [PATCH XFSTESTS 3/3] dmapi: fix build failure if libdm is provided via -ldm Message-ID: <20110722142918.GD19681@infradead.org> References: <1311292324-4348-1-git-send-email-tytso@mit.edu> <1311292324-4348-3-git-send-email-tytso@mit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311292324-4348-3-git-send-email-tytso@mit.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311344960 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69662 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks, applied. From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:34:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MEYMTq089009 for ; Fri, 22 Jul 2011 09:34:22 -0500 X-ASG-Debug-ID: 1311345261-1946012d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C355D1EED1DF; Fri, 22 Jul 2011 07:34:21 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 1BMNGvIVEftUwxXO; Fri, 22 Jul 2011 07:34:21 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkGo0-0001Uy-HH; Fri, 22 Jul 2011 14:34:20 +0000 Date: Fri, 22 Jul 2011 10:34:20 -0400 From: Christoph Hellwig To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" Subject: Re: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" Message-ID: <20110722143420.GE19681@infradead.org> References: <201107211804.p6LI4Rvf006075@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107211804.p6LI4Rvf006075@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311345261 X-Barracuda-Bayes: INNOCENT GLOBAL 0.3858 1.0000 -0.0380 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.66 X-Barracuda-Spam-Status: No, SCORE=0.66 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69663 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 01:04:26PM -0500, Alex Elder wrote: > Rename the "linux-2.6" platform-specific subdirectory in XFS to just > be "linux". This is consistent with the "new" Linux development > model (regular stable releases rather than the old even/odd cycle > with long periods between stable releases). It was also inspired by > Linus' recent rename of top-level git repository for the Linux code. Actually it should just go away. It's a leftover from when we had code for Linux 2.4 and Linux 2.6 in the same ptools repository. I was going to suggest near the end of the merge window that we'll simply apply a big git rename to kill all the subdirectories which create nothing but pain. Now that the modular quota options (which never made it to mainline anyway) is gone there's absolutely no need for the quota directly, and support/ only has the uuid helpers left, which are about to get mostly replaced by common code anyway. From aelder@sgi.com Fri Jul 22 09:54:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MEsBZ2090008 for ; Fri, 22 Jul 2011 09:54:11 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 92E33304062; Fri, 22 Jul 2011 07:54:08 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 09:53:55 -0500 Subject: Re: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110722143420.GE19681@infradead.org> References: <201107211804.p6LI4Rvf006075@stout.americas.sgi.com> <20110722143420.GE19681@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 09:53:54 -0500 Message-ID: <1311346434.2771.17.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 10:34 -0400, Christoph Hellwig wrote: > Actually it should just go away. It's a leftover from when we had > code for Linux 2.4 and Linux 2.6 in the same ptools repository. So this is an admission that XFS has gone from an Irix-only to a Linux-only filesystem? We have strayed from it but I think there is value in trying to separate the core platform-independent part of the code from the part that interfaces with the OS environment. -Alex From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 09:58:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MEwikg090200 for ; Fri, 22 Jul 2011 09:58:44 -0500 X-ASG-Debug-ID: 1311346723-193d018d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CABF61B38752; Fri, 22 Jul 2011 07:58:43 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id N9x5KijAWA7pqBzB; Fri, 22 Jul 2011 07:58:43 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkHBa-00068l-Pc; Fri, 22 Jul 2011 14:58:42 +0000 Date: Fri, 22 Jul 2011 10:58:42 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" Subject: Re: [PATCH, RFC] xfs: rename "linux-2.6" subdirectory to be simply "linux" Message-ID: <20110722145842.GA15962@infradead.org> References: <201107211804.p6LI4Rvf006075@stout.americas.sgi.com> <20110722143420.GE19681@infradead.org> <1311346434.2771.17.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311346434.2771.17.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311346723 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0635 1.0000 -1.6156 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -0.92 X-Barracuda-Spam-Status: No, SCORE=-0.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69665 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 09:53:54AM -0500, Alex Elder wrote: > On Fri, 2011-07-22 at 10:34 -0400, Christoph Hellwig wrote: > > Actually it should just go away. It's a leftover from when we had > > code for Linux 2.4 and Linux 2.6 in the same ptools repository. > > So this is an admission that XFS has gone from an > Irix-only to a Linux-only filesystem? We have > strayed from it but I think there is value in > trying to separate the core platform-independent > part of the code from the part that interfaces > with the OS environment. It's not Linux only, but very centered around Linux APIs. We still have a low-level layer that only uses library-functins like sorting helpers, trees, etc from the generic kernel, and a higher level that fully interacts with it. This seems like a useful abstraction to me, and I'd like to keep it that way (nevermind that we really have to because of libxfs in xfsprogs). But that border is nowhere near the linux-2.6 directory split, and much better done using a comment in the makefile explaining which files are shared with libxfs. That's what I was planning to do for my move pull request. Note that currently the shared code doesn't even perfectly align to files, making the libxfs resync harder than nessecary, but that's also something on my mid-term todo list. From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 10:18:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MFIBCS090814 for ; Fri, 22 Jul 2011 10:18:12 -0500 X-ASG-Debug-ID: 1311347888-4773035d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 31FE08E134 for ; Fri, 22 Jul 2011 08:18:08 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id HOLMRnowlHaBlbRd for ; Fri, 22 Jul 2011 08:18:08 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkHUL-0001fy-Ff; Fri, 22 Jul 2011 15:18:05 +0000 Date: Fri, 22 Jul 2011 11:18:05 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12] xfs: Remove the macro XFS_BUF_ZEROFLAGS Message-ID: <20110722151805.GE30317@infradead.org> References: <20110716012105.6629.24407.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716012116.6629.48217.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110716015901.GC589@infradead.org> <1311269391.3210.956.camel@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311269391.3210.956.camel@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311347889 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0172 1.0000 -1.9090 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.81 X-Barracuda-Spam-Status: No, SCORE=-1.81 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69665 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 10:29:51AM -0700, Chandra Seetharaman wrote: > > > XFS_BUF_SET_COUNT(bp, count); > > > XFS_BUF_SET_FSPRIVATE(bp, iclog); /* save for later */ > > > - XFS_BUF_ZEROFLAGS(bp); > > > + bp->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI|XBF_ORDERED); > > > XFS_BUF_BUSY(bp); > > > XFS_BUF_ASYNC(bp); > > > bp->b_flags |= XBF_LOG_BUFFER; > > > > Note that XBF_ORDERED is gone in the current tree, you need to rebase > > your patches to pick up the buffer changes I recently sent out. > > > > I don't link this blind expansion. For one all that flag setting is > > duplicated in two places in xlog_sync, please send a patch to > > consolidate it in xlog_bdstrat. Second XBF_READ and XBF_DELWRI > > The two places are using 2 different bps, how do you want it to be > consolidated in xlog_bdstrat() ? xlog_bdstrate is called for both buffers, so any code that's the same for both can be moved into it. If you don't want to go down to that level just leave the macro in for your next series, and I'll fix it later. > It looks cleaner if I just have those flags cleared above, instead of > conditionally clearing them, what do you think ? I don't really care either way. > > XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with > > in xfs_bwrite a few lines down, and XBF_ORDERED can't be set here. IOW > > this line can simply be removed. > > New definition of XFS_BUF_ZEROFLAGS has these: XBF_SYNCIO, XBF_FUA, and > XBF_FLUSH. In this context is it ok to not clear those ? Yes, all these are only ever set on log buffers. From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 10:52:05 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MFq5OP092388 for ; Fri, 22 Jul 2011 10:52:05 -0500 X-ASG-Debug-ID: 1311349921-193d02600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 750C917ACCF4 for ; Fri, 22 Jul 2011 08:52:01 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JZJZ7eksLlqfD70f for ; Fri, 22 Jul 2011 08:52:01 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkI1A-0000k8-CP; Fri, 22 Jul 2011 15:52:00 +0000 Date: Fri, 22 Jul 2011 11:52:00 -0400 From: Christoph Hellwig To: CoolCold Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] adding example with xfs_info output decryption Subject: Re: [PATCH] adding example with xfs_info output decryption Message-ID: <20110722155200.GA31867@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311349922 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69669 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, May 23, 2011 at 02:34:54AM +0400, CoolCold wrote: > Basing on irc discussions and questions about reading xfs_info output > I've added example in xfs_growfs manpage. Alex, Dave, Eric, do you guys have any comments on this? Language nitpicks from the native speakers? Otherwise I'd be inclined to put it in. > Signed-off-by: Roman Ovchinnikov > --- > man/man8/xfs_growfs.8 | 34 ++++++++++++++++++++++++++++++++++ > 1 files changed, 34 insertions(+), 0 deletions(-) > > diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8 > index 02793ae..c782fc1 100644 > --- a/man/man8/xfs_growfs.8 > +++ b/man/man8/xfs_growfs.8 > @@ -1,3 +1,14 @@ > +.\" Verbatim blocks taken from openssl req manpage content > +.de Vb \" Begin verbatim text > +.ft CW > +.nf > +.ne \\$1 > +.. > +.de Ve \" End verbatim text > +.ft R > +.fi > +.. > + > .TH xfs_growfs 8 > .SH NAME > xfs_growfs, xfs_info \- expand an XFS filesystem > @@ -105,6 +116,7 @@ this is specified with > Specifies that no change to the filesystem is to be made. > The filesystem geometry is printed, and argument checking is performed, > but no growth occurs. > +.B See output examples below. > .TP > .BI "\-r | \-R " size > Specifies that the real-time section of the filesystem should be grown. If the > @@ -152,6 +164,28 @@ reside. In order to grow a filesystem, it is > necessary to provide added > space for it to occupy. Therefore there must be at least one spare new > disk partition available. Adding the space is often done through the use > of a logical volume manager. > +.SH "EXAMPLES" > + > +Examining xfs_info output. > +.PP > +Let's assume one have the next xfs_info output: > +.PP > +.Vb 1 > +\& meta-data=/dev/sda isize=256 agcount=32, agsize=16777184 blks > +\& = sectsz=512 attr=2 > +\& data = bsize=4096 blocks=536869888, imaxpct=5 > +\& = sunit=32 swidth=128 blks > +\& naming =version 2 bsize=4096 > +\& log =internal bsize=4096 blocks=32768, version=2 > +\& = sectsz=512 sunit=32 blks, lazy-count=1 > +\& realtime =none extsz=524288 blocks=0, rtextents=0 > +.Ve > +.PP > + > +Here, data section block size (bsize) is 4096 bytes. Therefore > +"sunit=32 swidth=128 blks" means stripe unit is 32*4096 bytes = 128 kibibytes > +and stripe width is 128*4096 bytes = 512 kibibytes. Filesystem is striped > +over 4 ( 128 / 32 ) stripes. > .SH SEE ALSO > .BR mkfs.xfs (8), > .BR md (4), > -- > 1.7.2.5 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs ---end quoted text--- From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 10:57:40 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MFverA092705 for ; Fri, 22 Jul 2011 10:57:40 -0500 X-ASG-Debug-ID: 1311350258-485c023b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4E557EF50F2 for ; Fri, 22 Jul 2011 08:57:38 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id y5V6l1C8DUnnWEAY for ; Fri, 22 Jul 2011 08:57:38 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkI6b-0001wd-Gw; Fri, 22 Jul 2011 15:57:37 +0000 Date: Fri, 22 Jul 2011 11:57:37 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: Updated xfsprogs 2.6.38 merge Subject: Re: Updated xfsprogs 2.6.38 merge Message-ID: <20110722155737.GA7261@infradead.org> References: <20110705024855.GA561@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110705024855.GA561@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311350259 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69668 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 05, 2011 at 12:48:55PM +1000, Dave Chinner wrote: > Folks, > > I pushed out an updated 2.6.38 kernel merge to xfsprogs patchset a > couple of days ago. I've been doing quite a bit of testing on it, > both 32 bit and 64 bit, with 512 byte, 1k and 4k block size > filesystems and I haven't come across any regressions. The patchset > can be found here: > > git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync > > It's pretty much unchanged from the last set of patches I sent, > except for one minor fix to the radix tree code for an off by one in > the path array size for item and tag deletes. > > I'm pretty much ready to commit this update so I can then move > forward with updating it to the 3.0 kernel code base as a smaller > incremental series. With the xfs_imap.h changes in, and the radix-tree bits fixed up I'm fine with this merge and you can add my reviewed-by tags to all commits. I'd also suggest removing the testing details in the main patch commit log, as it seems a bit misplaced in there. From aelder@sgi.com Fri Jul 22 11:04:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MG4kkL093005 for ; Fri, 22 Jul 2011 11:04:46 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id A1A30AC004; Fri, 22 Jul 2011 09:04:42 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6MG4gHY011317; Fri, 22 Jul 2011 11:04:42 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6MG4ghs011316; Fri, 22 Jul 2011 11:04:42 -0500 From: Alex Elder Message-Id: <201107221604.p6MG4ghs011316@stout.americas.sgi.com> Date: Fri, 22 Jul 2011 11:04:41 -0500 To: xfs@oss.sgi.com Subject: [PATCH, v2] xfs: set cursor in xfs_ail_splice() even when AIL was empty User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean In xfs_ail_splice(), if a cursor is provided it is updated to point to the last item on the list being spliced into the AIL. But if the AIL was found to be empty, the cursor (if provided) is just initialized instead. There is no reason the empty AIL case needs to be treated any differently. And treating it the same way allows this code to be rearranged a bit, with a somewhat tidier result. Signed-off-by: Alex Elder Updated to avoid passing an empty list to xfs_ail_splice(). --- fs/xfs/xfs_trans_ail.c | 67 +++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 38 deletions(-) Index: b/fs/xfs/xfs_trans_ail.c =================================================================== --- a/fs/xfs/xfs_trans_ail.c +++ b/fs/xfs/xfs_trans_ail.c @@ -299,7 +299,7 @@ xfs_trans_ail_cursor_last( * Splice the log item list into the AIL at the given LSN. We splice to the * tail of the given LSN to maintain insert order for push traversals. The * cursor is optional, allowing repeated updates to the same LSN to avoid - * repeated traversals. + * repeated traversals. This should not be called with an empty list. */ static void xfs_ail_splice( @@ -308,50 +308,39 @@ xfs_ail_splice( struct list_head *list, xfs_lsn_t lsn) { - struct xfs_log_item *lip = cur ? cur->item : NULL; - struct xfs_log_item *next_lip; + struct xfs_log_item *lip; + + ASSERT(!list_empty(list)); /* - * Get a new cursor if we don't have a placeholder or the existing one - * has been invalidated. + * Use the cursor to determine the insertion point if one is + * provided. If not, or if the one we got is not valid, + * find the place in the AIL where the items belong. */ - if (!lip || (__psint_t)lip & 1) { + lip = cur ? cur->item : NULL; + if (!lip || (__psint_t) lip & 1) lip = __xfs_trans_ail_cursor_last(ailp, lsn); - if (!lip) { - /* The list is empty, so just splice and return. */ - if (cur) - cur->item = NULL; - list_splice(list, &ailp->xa_ail); - return; - } - } + /* + * If a cursor is provided, we know we're processing the AIL + * in lsn order, and future items to be spliced in will + * follow the last one being inserted now. Update the + * cursor to point to that last item, now while we have a + * reliable pointer to it. + */ + if (cur) + cur->item = list_entry(list->prev, struct xfs_log_item, li_ail); /* - * Our cursor points to the item we want to insert _after_, so we have - * to update the cursor to point to the end of the list we are splicing - * in so that it points to the correct location for the next splice. - * i.e. before the splice - * - * lsn -> lsn -> lsn + x -> lsn + x ... - * ^ - * | cursor points here - * - * After the splice we have: - * - * lsn -> lsn -> lsn -> lsn -> .... -> lsn -> lsn + x -> lsn + x ... - * ^ ^ - * | cursor points here | needs to move here - * - * So we set the cursor to the last item in the list to be spliced - * before we execute the splice, resulting in the cursor pointing to - * the correct item after the splice occurs. + * Finally perform the splice. Unless the AIL was empty, + * lip points to the item in the AIL _after_ which the new + * items should go. If lip is null the AIL was empty, so + * the new items go at the head of the AIL. */ - if (cur) { - next_lip = list_entry(list->prev, struct xfs_log_item, li_ail); - cur->item = next_lip; - } - list_splice(list, &lip->li_ail); + if (lip) + list_splice(list, &lip->li_ail); + else + list_splice(list, &ailp->xa_ail); } /* @@ -682,6 +671,7 @@ xfs_trans_ail_update_bulk( int i; LIST_HEAD(tmp); + ASSERT(nr_items > 0); /* Not required, but true. */ mlip = xfs_ail_min(ailp); for (i = 0; i < nr_items; i++) { @@ -701,7 +691,8 @@ xfs_trans_ail_update_bulk( list_add(&lip->li_ail, &tmp); } - xfs_ail_splice(ailp, cur, &tmp, lsn); + if (!list_empty(&tmp)) + xfs_ail_splice(ailp, cur, &tmp, lsn); if (!mlip_changed) { spin_unlock(&ailp->xa_lock); From stan@hardwarefreak.com Fri Jul 22 13:05:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MI5IcR097918 for ; Fri, 22 Jul 2011 13:05:18 -0500 X-ASG-Debug-ID: 1311357917-5d08003d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DFA668EA7D for ; Fri, 22 Jul 2011 11:05:17 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id Drk1FScxuuoi1315 for ; Fri, 22 Jul 2011 11:05:17 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id A63C36C123; Fri, 22 Jul 2011 13:05:16 -0500 (CDT) Message-ID: <4E29BBDA.3000603@hardwarefreak.com> Date: Fri, 22 Jul 2011 13:05:14 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Michael Monnerie CC: xfs@oss.sgi.com, Dave Chinner , John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> <201107210820.01019@zmi.at> <20110721064838.GA13963@dastard> <201107220810.01889@zmi.at> In-Reply-To: <201107220810.01889@zmi.at> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311357917 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0207 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69677 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/22/2011 1:10 AM, Michael Monnerie wrote: > Yes, I just wanted to know about the corner cases, and how XFS behaves. > Actually, we're changing over to using NetApps, and with their WAFL > anyway I should drop all su/sw usage and just use 4KB blocks. I've never used a NetApp filer myself. However, that said, I would assume that WAFL is only in play for NFS/CIFS transactions since WAFL is itself a filesystem. When exposing LUNs from the same filer to FC and iSCSI hosts I would assume the filer acts just as any other SAN controller would. In this case I would think you'd probably still want to align your XFS filesystem to the underlying RAID stripe from which the LUN was carved. -- Stan From aelder@oss.sgi.com Fri Jul 22 13:24:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.7 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_43,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MIOEtN099018 for ; Fri, 22 Jul 2011 13:24:14 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6MIO7JC098749; Fri, 22 Jul 2011 13:24:07 -0500 Date: Fri, 22 Jul 2011 13:24:07 -0500 Message-Id: <201107221824.p6MIO7JC098749@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.38-19012-g55fb25d5 X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 1316d4da3f632d5843d5a446203e73067dc40f09 X-Git-Newrev: 55fb25d5b39320242b41af894921f5cef0c7e293 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 55fb25d5 xfs: add size update tracepoint to IO completion af3e402 xfs: convert AIL cursors to use struct list_head 16b5902 xfs: remove confusing ail cursor wrapper 1d8c95a xfs: use a cursor for bulk AIL insertion ad1a2c8 xfs: failure mapping nfs fh to inode should return ESTALE adab0f6 xfs: Remove the second parameter to xfs_sb_count() d0f9e8f xfs: remove the dead XFS_DABUF_DEBUG code c84470d xfs: remove leftovers of the old btree tracing code ea15ab3 xfs: remove the dead QUOTADEBUG code 54244fe xfs: remove the unused xfs_buf_delwri_sort function cb669ca xfs: remove wrappers around b_iodone adadbee xfs: remove wrappers around b_fspriv bf9d901 xfs: add a proper transaction pointer to struct xfs_buf 77936d0 xfs: factor out xfs_da_grow_inode_int a230a1d xfs: factor out xfs_dir2_leaf_find_stale a00b774 xfs: cleanup struct xfs_dir2_free 5792664 xfs: reshuffle dir2 headers 2bcf6e9 xfs: start periodic workers later b2ce397 Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc" 81463b1 xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact() c0e090c xfs: consolidate & clarify mount sanity checks e163cbd xfs: avoid a few disk cache flushes 1d5ae5d xfs: cleanup I/O-related buffer flags c8da0fa xfs: return the buffer locked from xfs_buf_get_uncached 0c842ad xfs: clean up buffer locking helpers bbb4197 xfs: remove the unused xfs_bufhash structure 69ef921 xfs: byteswap constants instead of variables 218106a xfs: use generic get_unaligned_beXX helpers 2282396 xfs: cleanup struct xfs_dir2_leaf 3ed8638 xfs: cleanup the definition of struct xfs_dir2_data_entry 0ba9cd8 xfs: kill struct xfs_dir2_data c2066e2 xfs: avoid usage of struct xfs_dir2_data a64b041 xfs: kill struct xfs_dir2_block 4f6ae1a xfs: avoid usage of struct xfs_dir2_block 78f70cd xfs: cleanup the definition of struct xfs_dir2_sf_entry ac8ba50 xfs: kill struct xfs_dir2_sf 8bc3878 xfs: cleanup shortform directory inode number handling 4fb44c8 xfs: factor out xfs_dir2_leaf_find_entry 29d104a xfs: kill the unused struct xfs_sync_work f3ca873 xfs: remove i_transp 7a249cf xfs: fix filesystsem freeze race in xfs_trans_alloc 33b8f7c xfs: improve sync behaviour in the face of aggressive dirtying 8f04c47 xfs: split xfs_itruncate_finish 857b977 xfs: kill xfs_itruncate_start 681b120 xfs: always log timestamp updates in xfs_setattr_size c4ed424 xfs: split xfs_setattr dec58f1 xfs: work around bogus gcc warning in xfs_allocbt_init_cursor dbcdde3 xfs: re-enable non-blocking behaviour in xfs_map_blocks 680a647 xfs: PF_FSTRANS should never be set in ->writepage from 1316d4da3f632d5843d5a446203e73067dc40f09 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 55fb25d5b39320242b41af894921f5cef0c7e293 Author: Dave Chinner Date: Mon Jul 18 03:40:19 2011 +0000 xfs: add size update tracepoint to IO completion For improving insight into IO completion behaviour. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit af3e40228fb2dbc18d94fbd5103f07344a720ae7 Author: Dave Chinner Date: Mon Jul 18 03:40:18 2011 +0000 xfs: convert AIL cursors to use struct list_head The list of active AIL cursors uses a roll-your-own linked list with special casing for the AIL push cursor. Simplify this code by replacing the list with standard struct list_head lists, and use a separate list_head to track the active cursors. This allows us to treat the AIL push cursor as a generic cursor rather than as a special case, further simplifying the code. Further, fix the duplicate push cursor initialisation that the special case handling was hiding, and clean up all the comments around the active cursor list handling. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 16b5902943c793e632cf8c9526619f59893bdc29 Author: Dave Chinner Date: Mon Jul 18 03:40:17 2011 +0000 xfs: remove confusing ail cursor wrapper xfs_trans_ail_cursor_set() doesn't set the cursor to the current log item, it sets it to the next item. There is already a function for doing this - xfs_trans_ail_cursor_next() - and the _set function is simply a two line wrapper. Remove it and open code the setting of the cursor in the two locations that call it to remove the confusion. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1d8c95a363bf8cd4d4182dd19c01693b635311c2 Author: Dave Chinner Date: Mon Jul 18 03:40:16 2011 +0000 xfs: use a cursor for bulk AIL insertion Delayed logging can insert tens of thousands of log items into the AIL at the same LSN. When the committing of log commit records occur, we can get insertions occurring at an LSN that is not at the end of the AIL. If there are thousands of items in the AIL on the tail LSN, each insertion has to walk the AIL to find the correct place to insert the new item into the AIL. This can consume large amounts of CPU time and block other operations from occurring while the traversals are in progress. To avoid this repeated walk, use a AIL cursor to record where we should be inserting the new items into the AIL without having to repeat the walk. The cursor infrastructure already provides this functionality for push walks, so is a simple extension of existing code. While this will not avoid the initial walk, it will avoid repeating it tens of thousands of times during a single checkpoint commit. This version includes logic improvements from Christoph Hellwig. Signed-off-by: Dave Chinner Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit ad1a2c878ca70829874b4fcc83223cccb4e26dab Author: J. Bruce Fields Date: Thu Jul 14 20:50:36 2011 +0000 xfs: failure mapping nfs fh to inode should return ESTALE On xfs exports, nfsd is incorrectly returning ENOENT instead of ESTALE on attempts to use a filehandle of a deleted file (spotted with pynfs test PUTFH3). The ENOENT was coming from xfs_iget. (It's tempting to wonder whether we should just map all xfs_iget errors to ESTALE, but I don't believe so--xfs_iget can also return ENOMEM at least, which we wouldn't want mapped to ESTALE.) While we're at it, the other return of ENOENT in xfs_nfs_get_inode() also looks wrong. Signed-off-by: J. Bruce Fields Signed-off-by: Alex Elder commit adab0f67d1cdaf468bbc311bce4d61f17626a536 Author: Chandra Seetharaman Date: Wed Jun 29 22:10:14 2011 +0000 xfs: Remove the second parameter to xfs_sb_count() Remove the second parameter to xfs_sb_count() since all callers of the function set them. Also, fix the header comment regarding it being called periodically. Signed-off-by: Chandra Seetharaman Signed-off-by: Alex Elder commit d0f9e8fb4cc6dd5d07c72eeecc2f332b6e85e221 Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove the dead XFS_DABUF_DEBUG code Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c84470dda7a1165d90f55c2025c4c8ca403d485e Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove leftovers of the old btree tracing code Remove various bits left over from the old kdb-only btree tracing code, but leave the actual trace point stubs in place to ease adding new event based btree tracing. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit ea15ab3cdda1bc6822f572ce9ce5d86f097f9b08 Author: Christoph Hellwig Date: Wed Jul 13 13:43:50 2011 +0200 xfs: remove the dead QUOTADEBUG code Remove the dead hash table test rid which has been rotting away under QUOTADEBUG, including some code that was compiled for normal debug builds, but not actually called without QUOTADEBUG, and enable a few cheap debug checks that were hidden under QUOTADEBUG for normal debug builds. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 54244fec67024032cb54eb604b2a36579b5db2d3 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove the unused xfs_buf_delwri_sort function Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit cb669ca5701153a808db6627521cc8aa52fc42d1 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove wrappers around b_iodone Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit adadbeefb34f755a3477da51035eeeec2c1fde38 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: remove wrappers around b_fspriv Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit bf9d9013a2a559858efb590bf922377be9d6d969 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: add a proper transaction pointer to struct xfs_buf Replace the typeless b_fspriv2 and the ugly macros around it with a properly typed transaction pointer. As a fallout the log buffer state debug checks are also removed. We could have kept them using casts, but as they do not have a real purpose we can as well just remove them. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 77936d0280616d84d1eb0eb38a6f857d2827a434 Author: Christoph Hellwig Date: Wed Jul 13 13:43:49 2011 +0200 xfs: factor out xfs_da_grow_inode_int xfs_da_grow_inode and xfs_dir2_grow_inode are mostly duplicate code. Factor the meat of those two functions into a new common helper. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a230a1df40864ef68ff6fbd09302f16d2a216ea5 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: factor out xfs_dir2_leaf_find_stale Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a00b7745c6e68ee89a123cd81e1dbc52fb55868e Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: cleanup struct xfs_dir2_free Change the bests array to be a proper variable sized entry. This is done easily as no one relies on the size of the structure. Also change XFS_DIR2_MAX_FREE_BESTS to an inline function while we're at it. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 5792664070c62479b088e4909000582de3686396 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: reshuffle dir2 headers Replace the current mess of dir2 headers with just three that have a clear purpose: - xfs_dir2_format.h for all format definitions, including the inline helpers to access our variable size structures - xfs_dir2_priv.h for all prototypes that are internal to the dir2 code and not needed by anything outside of the directory code. For this purpose xfs_da_btree.c, and phase6.c in xfs_repair are considered part of the directory code. - xfs_dir2.h for the public interface to the directory code In addition to the reshuffle I have also update the comments to not only match the new file structure, but also to describe the directory format better. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 2bcf6e970f5a88fa05dced5eeb0326e13d93c4a1 Author: Christoph Hellwig Date: Wed Jul 13 13:43:48 2011 +0200 xfs: start periodic workers later Start the periodic sync workers only after we have finished xfs_mountfs and thus fully set up the filesystem structures. Without this we can call into xfs_qm_sync before the quotainfo strucute is set up if the mount takes unusually long, and probably hit other incomplete states as well. Also clean up the xfs_fs_fill_super error path by using consistent label names, and removing an impossible to reach case. Signed-off-by: Christoph Hellwig Reported-by: Arkadiusz Miskiewicz Reviewed-by: Alex Elder commit b2ce39740066604288876c752d8170b3b17a21aa Author: Alex Elder Date: Mon Jul 11 09:51:44 2011 -0500 Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc" This reverts commit 7a249cf83da1813cfa71cfe1e265b40045eceb47. That commit created a situation that could lead to a filesystem hang. As Dave Chinner pointed out, xfs_trans_alloc() could hold a reference to m_active_trans (i.e., keep it non-zero) and then wait for SB_FREEZE_TRANS to complete. Meanwhile a filesystem freeze request could set SB_FREEZE_TRANS and then wait for m_active_trans to drop to zero. Nobody benefits from this sequence of events... Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 81463b1ca8dbd2f4f180feac3f49c7640e2b5f79 Author: Chandra Seetharaman Date: Thu Jun 9 16:47:49 2011 +0000 xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact() Remove two variables that serve no purpose in xfs_alloc_ag_vextent_exact(). Signed-off-by: Chandra Seetharaman Signed-off-by: Alex Elder commit c0e090ced259b85b854636c99dda95b7070a2785 Author: Eric Sandeen Date: Fri May 20 21:52:17 2011 +0000 xfs: consolidate & clarify mount sanity checks Pavol pointed out that there is one silent error case in the mount path, and that others are rather uninformative. I've taken Pavol's suggested patch and extended it a bit to also: * fix a message which says "turned off" but actually errors out * consolidate the vaguely differentiated "SB sanity check [12]" messages, and hexdump the superblock for analysis Original-patch-by: Pavol Gono Signed-off-by: Eric Sandeen Signed-off-by: Alex Elder commit e163cbde981c5988c3e80ca29589132336f18a72 Author: Christoph Hellwig Date: Fri Jul 8 14:36:36 2011 +0200 xfs: avoid a few disk cache flushes There is no need for a pre-flush when doing writing the second part of a split log buffer, and if we are using an external log there is no need to do a full cache flush of the log device at all given that all writes to it use the FUA flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 1d5ae5dfeee024d51fb2c0205035d7611a8f0c86 Author: Christoph Hellwig Date: Fri Jul 8 14:36:32 2011 +0200 xfs: cleanup I/O-related buffer flags Remove the unused and misnamed _XBF_RUN_QUEUES flag, rename XBF_LOG_BUFFER to the more fitting XBF_SYNCIO, and split XBF_ORDERED into XBF_FUA and XBF_FLUSH to allow more fine grained control over the bio flags. Also cleanup processing of the flags in _xfs_buf_ioapply to make more sense, and renumber the sparse flag number space to group flags by purpose. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c8da0faf6b07623c473cab42967f943ad4ab7560 Author: Christoph Hellwig Date: Fri Jul 8 14:36:25 2011 +0200 xfs: return the buffer locked from xfs_buf_get_uncached All other xfs_buf_get/read-like helpers return the buffer locked, make sure xfs_buf_get_uncached isn't different for no reason. Half of the callers already lock it directly after, and the others probably should also keep it locked if only for consistency and beeing able to use xfs_buf_rele, but I'll leave that for later. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 0c842ad46a51891ac4420b7285613f4134a65ccd Author: Christoph Hellwig Date: Fri Jul 8 14:36:19 2011 +0200 xfs: clean up buffer locking helpers Rename xfs_buf_cond_lock and reverse it's return value to fit most other trylock operations in the Kernel and XFS (with the exception of down_trylock, after which xfs_buf_cond_lock was modelled), and replace xfs_buf_lock_val with an xfs_buf_islocked for use in asserts, or and opencoded variant in tracing. remove the XFS_BUF_* wrappers for all the locking helpers. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit bbb4197c73be356a052dac25cce5ed0c157c6c90 Author: Christoph Hellwig Date: Fri Jul 8 14:36:10 2011 +0200 xfs: remove the unused xfs_bufhash structure Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 69ef921b55cc3788d1d2a27b33b27d04acd0090a Author: Christoph Hellwig Date: Fri Jul 8 14:36:05 2011 +0200 xfs: byteswap constants instead of variables Micro-optimize various comparisms by always byteswapping the constant instead of the variable, which allows to do the swap at compile instead of runtime. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 218106a1104c598011e5df9d9aac7e0416be03e6 Author: Christoph Hellwig Date: Fri Jul 8 14:35:58 2011 +0200 xfs: use generic get_unaligned_beXX helpers Switch the shortform directory code over to use the generic get_unaligned_beXX helpers instead of reinventing them. As a result kill off xfs_arch.h and move the setting of XFS_NATIVE_HOST into xfs_linux.h. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 2282396d8157033503318fe4dee77ba82dc9d144 Author: Christoph Hellwig Date: Fri Jul 8 14:35:53 2011 +0200 xfs: cleanup struct xfs_dir2_leaf Simplify the confusing xfs_dir2_leaf structure. It is supposed to describe an XFS dir2 leaf format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. Remove the members that are after the first variable sized array, given that they could only be used for sizeof expressions that can as well just use the underlying types directly, and make the ents array a real C99 variable sized array. Also factor out the xfs_dir2_leaf_size, to make the sizing of a leaf entry which already was convoluted somewhat readable after using the longer type names in the sizeof expressions. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 3ed8638f8867b4d0df1ec606231a087ff06c4a59 Author: Christoph Hellwig Date: Fri Jul 8 14:35:50 2011 +0200 xfs: cleanup the definition of struct xfs_dir2_data_entry Remove the tag member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 0ba9cd84ef2af58645333a86f9c901684ab1fef6 Author: Christoph Hellwig Date: Fri Jul 8 14:35:42 2011 +0200 xfs: kill struct xfs_dir2_data Remove the confusing xfs_dir2_data structure. It is supposed to describe an XFS dir2 data btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c2066e2662070e794f57a96a129c42575e77cfcb Author: Christoph Hellwig Date: Fri Jul 8 14:35:38 2011 +0200 xfs: avoid usage of struct xfs_dir2_data In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_data instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit a64b04179735de6bfd9f00c130a68ed7f20d18ef Author: Christoph Hellwig Date: Fri Jul 8 14:35:32 2011 +0200 xfs: kill struct xfs_dir2_block Remove the confusing xfs_dir2_block structure. It is supposed to describe an XFS dir2 block format btree block, but due to the variable sized nature of almost all elements in it it can't actuall do anything close to that job. In addition to accessing the fixed offset header structure it was only used to get a pointer to the first dir or unused entry after it, which can be trivially replaced by pointer arithmetics on the header pointer. For most users that is actually more natural anyway, as they don't use a typed pointer but rather a character pointer for further arithmetics. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 4f6ae1a49ed5c81501d6f7385416bb4e07289e99 Author: Christoph Hellwig Date: Fri Jul 8 14:35:27 2011 +0200 xfs: avoid usage of struct xfs_dir2_block In most places we can simply pass around and use the struct xfs_dir2_data_hdr, which is the first and most important member of struct xfs_dir2_block instead of the full structure. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 78f70cd7b7e8fd44dc89af4f72fb110d865338a1 Author: Christoph Hellwig Date: Fri Jul 8 14:35:19 2011 +0200 xfs: cleanup the definition of struct xfs_dir2_sf_entry Remove the inumber member which is at a variable offset after the actual name, and make name a real variable sized C99 array instead of the incorrect one-sized array which confuses (not only) gcc. Based on this clean up the helpers to calculate the entry size. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit ac8ba50f6be4a3ab49a2ad2cb676422af4ebaf8a Author: Christoph Hellwig Date: Fri Jul 8 14:35:13 2011 +0200 xfs: kill struct xfs_dir2_sf The list field of it is never cactually used, so all uses can simply be replaced with the xfs_dir2_sf_hdr_t type that it has as first member. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 8bc387875870c87087f138741f456983cbc54660 Author: Christoph Hellwig Date: Fri Jul 8 14:35:03 2011 +0200 xfs: cleanup shortform directory inode number handling Refactor the shortform directory helpers that deal with the 32-bit vs 64-bit wide inode numbers into more sensible helpers, and kill the xfs_intino_t typedef that is now superflous. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 4fb44c8272a071290d2ad76164c532fa2902b604 Author: Christoph Hellwig Date: Fri Jul 8 14:34:59 2011 +0200 xfs: factor out xfs_dir2_leaf_find_entry Add a new xfs_dir2_leaf_find_entry helper to factor out some duplicate code from xfs_dir2_leaf_addname xfs_dir2_leafn_add. Found by Eric Sandeen using an automated code duplication checker. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 29d104af0a92ba1eac74b636da7fcf88242e1180 Author: Christoph Hellwig Date: Fri Jul 8 14:34:51 2011 +0200 xfs: kill the unused struct xfs_sync_work Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit f3ca87389dbff0a3dc1a7cb2fa7c62e25421c66c Author: Christoph Hellwig Date: Fri Jul 8 14:34:47 2011 +0200 xfs: remove i_transp Remove the transaction pointer in the inode. It's only used to avoid passing down an argument in the bmap code, and for a few asserts in the transaction code right now. Also use the local variable ip in a few more places in xfs_inode_item_unlock, so that it isn't only used for debug builds after the above change. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 7a249cf83da1813cfa71cfe1e265b40045eceb47 Author: Christoph Hellwig Date: Fri Jul 8 14:34:42 2011 +0200 xfs: fix filesystsem freeze race in xfs_trans_alloc As pointed out by Jan xfs_trans_alloc can race with a concurrent filesystem freeze when it sleeps during the memory allocation. Fix this by moving the wait_for_freeze call after the memory allocation. This means moving the freeze into the low-level _xfs_trans_alloc helper, which thus grows a new argument. Also fix up some comments in that area while at it. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 33b8f7c2479dfcbc5c27174e44b5f659d9f33c70 Author: Christoph Hellwig Date: Fri Jul 8 14:34:39 2011 +0200 xfs: improve sync behaviour in the face of aggressive dirtying The following script from Wu Fengguang shows very bad behaviour in XFS when aggressively dirtying data during a sync on XFS, with sync times up to almost 10 times as long as ext4. A large part of the issue is that XFS writes data out itself two times in the ->sync_fs method, overriding the livelock protection in the core writeback code, and another issue is the lock-less xfs_ioend_wait call, which doesn't prevent new ioend from being queue up while waiting for the count to reach zero. This patch removes the XFS-internal sync calls and relies on the VFS to do it's work just like all other filesystems do. Note that the i_iocount wait which is rather suboptimal is simply removed here. We already do it in ->write_inode, which keeps the current supoptimal behaviour. We'll eventually need to remove that as well, but that's material for a separate commit. ------------------------------ snip ------------------------------ #!/bin/sh umount /dev/sda7 mkfs.xfs -f /dev/sda7 # mkfs.ext4 /dev/sda7 # mkfs.btrfs /dev/sda7 mount /dev/sda7 /fs echo $((50<<20)) > /proc/sys/vm/dirty_bytes pid= for i in `seq 10` do dd if=/dev/zero of=/fs/zero-$i bs=1M count=1000 & pid="$pid $!" done sleep 1 tic=$(date +'%s') sync tac=$(date +'%s') echo echo sync time: $((tac-tic)) egrep '(Dirty|Writeback|NFS_Unstable)' /proc/meminfo pidof dd > /dev/null && { kill -9 $pid; echo sync NOT livelocked; } ------------------------------ snip ------------------------------ Signed-off-by: Christoph Hellwig Reported-by: Wu Fengguang Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 8f04c47aa9712874af2c8816c2ca2a332cba80e4 Author: Christoph Hellwig Date: Fri Jul 8 14:34:34 2011 +0200 xfs: split xfs_itruncate_finish Split the guts of xfs_itruncate_finish that loop over the existing extents and calls xfs_bunmapi on them into a new helper, xfs_itruncate_externs. Make xfs_attr_inactive call it directly instead of xfs_itruncate_finish, which allows to simplify the latter a lot, by only letting it deal with the data fork. As a result xfs_itruncate_finish is renamed to xfs_itruncate_data to make its use case more obvious. Also remove the sync parameter from xfs_itruncate_data, which has been unessecary since the introduction of the busy extent list in 2002, and completely dead code since 2003 when the XFS_BMAPI_ASYNC parameter was made a no-op. I can't actually see why the xfs_attr_inactive needs to set the transaction sync, but let's keep this patch simple and without changes in behaviour. Also avoid passing a useless argument to xfs_isize_check, and make it private to xfs_inode.c. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 857b9778d86ccba7d7b42c9d8aeecde794ec8a6b Author: Christoph Hellwig Date: Fri Jul 8 14:34:30 2011 +0200 xfs: kill xfs_itruncate_start xfs_itruncate_start is a rather length wrapper that evaluates to a call to xfs_ioend_wait and xfs_tosspages, and only has two callers. Instead of using the complicated checks left over from IRIX where we can to truncate the pagecache just call xfs_tosspages (aka truncate_inode_pages) directly as we want to get rid of all data after i_size, and truncate_inode_pages handles incorrect alignments and too large offsets just fine. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit 681b120018e3c7e2680c93e8188c5ee34215df2f Author: Christoph Hellwig Date: Fri Jul 8 14:34:26 2011 +0200 xfs: always log timestamp updates in xfs_setattr_size Get rid of the special case where we use unlogged timestamp updates for a truncate to the current inode size, and just call xfs_setattr_nonsize for it to treat it like a utimes calls. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit c4ed4243c40f97ed5b7b121777bbbc6aeaa722f0 Author: Christoph Hellwig Date: Fri Jul 8 14:34:23 2011 +0200 xfs: split xfs_setattr Split up xfs_setattr into two functions, one for the complex truncate handling, and one for the trivial attribute updates. Also move both new routines to xfs_iops.c as they are fairly Linux-specific. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit dec58f1dfd30a3c3e9dadc808692f4e5cd922745 Author: Christoph Hellwig Date: Fri Jul 8 14:34:18 2011 +0200 xfs: work around bogus gcc warning in xfs_allocbt_init_cursor GCC 4.6 complains about an array subscript is above array bounds when using the btree index to index into the agf_levels array. The only two indices passed in are 0 and 1, and we have an assert insuring that. Replace the trick of using the array index directly with using constants in the already existing branch for assigning the XFS_BTREE_LASTREC_UPDATE flag. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner commit dbcdde3e76f45d56c4a30ca6c5d69b6d473d3fd1 Author: Christoph Hellwig Date: Fri Jul 8 14:34:14 2011 +0200 xfs: re-enable non-blocking behaviour in xfs_map_blocks The non-blockig behaviour in xfs_vm_writepage currently is conditional on having both the WB_SYNC_NONE sync_mode and the nonblocking flag set. The latter used to be used by both pdflush, kswapd and a few other places in older kernels, but has been fading out starting with the introduction of the per-bdi flusher threads. Enable the non-blocking behaviour for all WB_SYNC_NONE calls to get back the behaviour we want. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder Reviewed-by: Dave Chinner commit 680a647b49fa52de0b37b8bc58a3a8c4bc76b262 Author: Christoph Hellwig Date: Fri Jul 8 14:34:05 2011 +0200 xfs: PF_FSTRANS should never be set in ->writepage Now that we reject direct reclaim in addition to always using GFP_NOFS allocation there's no chance we'll ever end up in ->writepage with PF_FSTRANS set. Add a WARN_ON if we hit this case, and stop checking if we'd actually need to start a transaction. Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder Reviewed-by: Dave Chinner ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 2 - fs/xfs/linux-2.6/xfs_acl.c | 2 +- fs/xfs/linux-2.6/xfs_aops.c | 20 +- fs/xfs/linux-2.6/xfs_buf.c | 79 ++---- fs/xfs/linux-2.6/xfs_buf.h | 64 ++--- fs/xfs/linux-2.6/xfs_export.c | 4 +- fs/xfs/linux-2.6/xfs_file.c | 2 +- fs/xfs/linux-2.6/xfs_iops.c | 433 +++++++++++++++++++++++++++++- fs/xfs/linux-2.6/xfs_linux.h | 7 +- fs/xfs/linux-2.6/xfs_super.c | 36 +-- fs/xfs/linux-2.6/xfs_sync.c | 10 +- fs/xfs/linux-2.6/xfs_sync.h | 8 - fs/xfs/linux-2.6/xfs_trace.h | 60 +--- fs/xfs/quota/xfs_dquot.c | 48 +--- fs/xfs/quota/xfs_dquot.h | 6 - fs/xfs/quota/xfs_qm.c | 49 +---- fs/xfs/quota/xfs_qm.h | 6 - fs/xfs/quota/xfs_qm_syscalls.c | 355 +------------------------ fs/xfs/quota/xfs_trans_dquot.c | 15 +- fs/xfs/xfs.h | 1 - fs/xfs/xfs_alloc.c | 14 +- fs/xfs/xfs_alloc_btree.c | 84 +------ fs/xfs/xfs_arch.h | 136 --------- fs/xfs/xfs_attr.c | 41 ++-- fs/xfs/xfs_attr_leaf.c | 60 ++-- fs/xfs/xfs_bmap.c | 41 ++-- fs/xfs/xfs_bmap_btree.c | 106 +------- fs/xfs/xfs_btree.c | 29 +- fs/xfs/xfs_btree.h | 38 ++-- fs/xfs/xfs_btree_trace.c | 249 ----------------- fs/xfs/xfs_btree_trace.h | 99 ------- fs/xfs/xfs_buf_item.c | 75 +++--- fs/xfs/xfs_da_btree.c | 272 ++++++++----------- fs/xfs/xfs_da_btree.h | 13 +- fs/xfs/xfs_dir2.c | 140 ++-------- fs/xfs/xfs_dir2.h | 54 +---- fs/xfs/xfs_dir2_block.c | 253 ++++++++--------- fs/xfs/xfs_dir2_block.h | 92 ------ fs/xfs/xfs_dir2_data.c | 327 +++++++++++----------- fs/xfs/xfs_dir2_data.h | 184 ------------ fs/xfs/xfs_dir2_format.h | 597 ++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_dir2_leaf.c | 417 +++++++++++++++------------- fs/xfs/xfs_dir2_leaf.h | 253 ----------------- fs/xfs/xfs_dir2_node.c | 201 ++++---------- fs/xfs/xfs_dir2_node.h | 100 ------- fs/xfs/xfs_dir2_priv.h | 135 +++++++++ fs/xfs/xfs_dir2_sf.c | 338 ++++++++++++++--------- fs/xfs/xfs_dir2_sf.h | 171 ------------ fs/xfs/xfs_fs.h | 5 + fs/xfs/xfs_ialloc.c | 14 +- fs/xfs/xfs_ialloc_btree.c | 75 ----- fs/xfs/xfs_iget.c | 1 - fs/xfs/xfs_inode.c | 537 +++++++++--------------------------- fs/xfs/xfs_inode.h | 25 +-- fs/xfs/xfs_inode_item.c | 17 +- fs/xfs/xfs_inum.h | 11 - fs/xfs/xfs_log.c | 64 ++--- fs/xfs/xfs_log_recover.c | 38 ++-- fs/xfs/xfs_mount.c | 71 ++--- fs/xfs/xfs_mount.h | 2 +- fs/xfs/xfs_trans.c | 27 ++- fs/xfs/xfs_trans_ail.c | 214 ++++++++------- fs/xfs/xfs_trans_buf.c | 118 ++++----- fs/xfs/xfs_trans_inode.c | 9 - fs/xfs/xfs_trans_priv.h | 14 +- fs/xfs/xfs_vnodeops.c | 479 +------------------------------- fs/xfs/xfs_vnodeops.h | 3 +- 67 files changed, 2796 insertions(+), 4654 deletions(-) delete mode 100644 fs/xfs/xfs_arch.h delete mode 100644 fs/xfs/xfs_btree_trace.c delete mode 100644 fs/xfs/xfs_btree_trace.h delete mode 100644 fs/xfs/xfs_dir2_block.h delete mode 100644 fs/xfs/xfs_dir2_data.h create mode 100644 fs/xfs/xfs_dir2_format.h delete mode 100644 fs/xfs/xfs_dir2_leaf.h delete mode 100644 fs/xfs/xfs_dir2_node.h create mode 100644 fs/xfs/xfs_dir2_priv.h delete mode 100644 fs/xfs/xfs_dir2_sf.h hooks/post-receive -- XFS development tree From aelder@sgi.com Fri Jul 22 13:27:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MIRDZ1099156 for ; Fri, 22 Jul 2011 13:27:13 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2B545304048; Fri, 22 Jul 2011 11:27:10 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6MIR91t015045; Fri, 22 Jul 2011 13:27:10 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6MIR9iU015044; Fri, 22 Jul 2011 13:27:09 -0500 From: Alex Elder Message-Id: <201107221827.p6MIR9iU015044@stout.americas.sgi.com> Date: Fri, 22 Jul 2011 13:27:09 -0500 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update 1 for 3.1-rc1 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The following changes since commit 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe: Linux 3.0 (2011-07-21 19:17:23 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Alex Elder (1): Revert "xfs: fix filesystsem freeze race in xfs_trans_alloc" Chandra Seetharaman (2): xfs: remove variables that serve no purpose in xfs_alloc_ag_vextent_exact() xfs: Remove the second parameter to xfs_sb_count() Christoph Hellwig (40): xfs: PF_FSTRANS should never be set in ->writepage xfs: re-enable non-blocking behaviour in xfs_map_blocks xfs: work around bogus gcc warning in xfs_allocbt_init_cursor xfs: split xfs_setattr xfs: always log timestamp updates in xfs_setattr_size xfs: kill xfs_itruncate_start xfs: split xfs_itruncate_finish xfs: improve sync behaviour in the face of aggressive dirtying xfs: fix filesystsem freeze race in xfs_trans_alloc xfs: remove i_transp xfs: kill the unused struct xfs_sync_work xfs: factor out xfs_dir2_leaf_find_entry xfs: cleanup shortform directory inode number handling xfs: kill struct xfs_dir2_sf xfs: cleanup the definition of struct xfs_dir2_sf_entry xfs: avoid usage of struct xfs_dir2_block xfs: kill struct xfs_dir2_block xfs: avoid usage of struct xfs_dir2_data xfs: kill struct xfs_dir2_data xfs: cleanup the definition of struct xfs_dir2_data_entry xfs: cleanup struct xfs_dir2_leaf xfs: use generic get_unaligned_beXX helpers xfs: byteswap constants instead of variables xfs: remove the unused xfs_bufhash structure xfs: clean up buffer locking helpers xfs: return the buffer locked from xfs_buf_get_uncached xfs: cleanup I/O-related buffer flags xfs: avoid a few disk cache flushes xfs: start periodic workers later xfs: reshuffle dir2 headers xfs: cleanup struct xfs_dir2_free xfs: factor out xfs_dir2_leaf_find_stale xfs: factor out xfs_da_grow_inode_int xfs: add a proper transaction pointer to struct xfs_buf xfs: remove wrappers around b_fspriv xfs: remove wrappers around b_iodone xfs: remove the unused xfs_buf_delwri_sort function xfs: remove the dead QUOTADEBUG code xfs: remove leftovers of the old btree tracing code xfs: remove the dead XFS_DABUF_DEBUG code Dave Chinner (4): xfs: use a cursor for bulk AIL insertion xfs: remove confusing ail cursor wrapper xfs: convert AIL cursors to use struct list_head xfs: add size update tracepoint to IO completion Eric Sandeen (1): xfs: consolidate & clarify mount sanity checks J. Bruce Fields (1): xfs: failure mapping nfs fh to inode should return ESTALE fs/xfs/Makefile | 2 - fs/xfs/linux-2.6/xfs_acl.c | 2 +- fs/xfs/linux-2.6/xfs_aops.c | 20 +- fs/xfs/linux-2.6/xfs_buf.c | 79 ++---- fs/xfs/linux-2.6/xfs_buf.h | 64 ++--- fs/xfs/linux-2.6/xfs_export.c | 4 +- fs/xfs/linux-2.6/xfs_file.c | 2 +- fs/xfs/linux-2.6/xfs_iops.c | 433 +++++++++++++++++++++++++++++- fs/xfs/linux-2.6/xfs_linux.h | 7 +- fs/xfs/linux-2.6/xfs_super.c | 36 +-- fs/xfs/linux-2.6/xfs_sync.c | 10 +- fs/xfs/linux-2.6/xfs_sync.h | 8 - fs/xfs/linux-2.6/xfs_trace.h | 60 +--- fs/xfs/quota/xfs_dquot.c | 48 +--- fs/xfs/quota/xfs_dquot.h | 6 - fs/xfs/quota/xfs_qm.c | 49 +---- fs/xfs/quota/xfs_qm.h | 6 - fs/xfs/quota/xfs_qm_syscalls.c | 355 +------------------------ fs/xfs/quota/xfs_trans_dquot.c | 15 +- fs/xfs/xfs.h | 1 - fs/xfs/xfs_alloc.c | 14 +- fs/xfs/xfs_alloc_btree.c | 84 +------ fs/xfs/xfs_arch.h | 136 --------- fs/xfs/xfs_attr.c | 41 ++-- fs/xfs/xfs_attr_leaf.c | 60 ++-- fs/xfs/xfs_bmap.c | 41 ++-- fs/xfs/xfs_bmap_btree.c | 106 +------- fs/xfs/xfs_btree.c | 29 +- fs/xfs/xfs_btree.h | 38 ++-- fs/xfs/xfs_btree_trace.c | 249 ----------------- fs/xfs/xfs_btree_trace.h | 99 ------- fs/xfs/xfs_buf_item.c | 75 +++--- fs/xfs/xfs_da_btree.c | 272 ++++++++----------- fs/xfs/xfs_da_btree.h | 13 +- fs/xfs/xfs_dir2.c | 140 ++-------- fs/xfs/xfs_dir2.h | 54 +---- fs/xfs/xfs_dir2_block.c | 253 ++++++++--------- fs/xfs/xfs_dir2_block.h | 92 ------ fs/xfs/xfs_dir2_data.c | 327 +++++++++++----------- fs/xfs/xfs_dir2_data.h | 184 ------------ fs/xfs/xfs_dir2_format.h | 597 ++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_dir2_leaf.c | 417 +++++++++++++++------------- fs/xfs/xfs_dir2_leaf.h | 253 ----------------- fs/xfs/xfs_dir2_node.c | 201 ++++---------- fs/xfs/xfs_dir2_node.h | 100 ------- fs/xfs/xfs_dir2_priv.h | 135 +++++++++ fs/xfs/xfs_dir2_sf.c | 338 ++++++++++++++--------- fs/xfs/xfs_dir2_sf.h | 171 ------------ fs/xfs/xfs_fs.h | 5 + fs/xfs/xfs_ialloc.c | 14 +- fs/xfs/xfs_ialloc_btree.c | 75 ----- fs/xfs/xfs_iget.c | 1 - fs/xfs/xfs_inode.c | 537 +++++++++--------------------------- fs/xfs/xfs_inode.h | 25 +-- fs/xfs/xfs_inode_item.c | 17 +- fs/xfs/xfs_inum.h | 11 - fs/xfs/xfs_log.c | 64 ++--- fs/xfs/xfs_log_recover.c | 38 ++-- fs/xfs/xfs_mount.c | 71 ++--- fs/xfs/xfs_mount.h | 2 +- fs/xfs/xfs_trans.c | 27 ++- fs/xfs/xfs_trans_ail.c | 214 ++++++++------- fs/xfs/xfs_trans_buf.c | 118 ++++----- fs/xfs/xfs_trans_inode.c | 9 - fs/xfs/xfs_trans_priv.h | 14 +- fs/xfs/xfs_vnodeops.c | 479 +------------------------------- fs/xfs/xfs_vnodeops.h | 3 +- 67 files changed, 2796 insertions(+), 4654 deletions(-) delete mode 100644 fs/xfs/xfs_arch.h delete mode 100644 fs/xfs/xfs_btree_trace.c delete mode 100644 fs/xfs/xfs_btree_trace.h delete mode 100644 fs/xfs/xfs_dir2_block.h delete mode 100644 fs/xfs/xfs_dir2_data.h create mode 100644 fs/xfs/xfs_dir2_format.h delete mode 100644 fs/xfs/xfs_dir2_leaf.h delete mode 100644 fs/xfs/xfs_dir2_node.h create mode 100644 fs/xfs/xfs_dir2_priv.h delete mode 100644 fs/xfs/xfs_dir2_sf.h From tytso@thunk.org Fri Jul 22 13:30:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MIUrQZ099342 for ; Fri, 22 Jul 2011 13:30:53 -0500 X-ASG-Debug-ID: 1311359452-351c025b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B9A078ECC4 for ; Fri, 22 Jul 2011 11:30:52 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id 9mt9RKa5qlYFAcKi for ; Fri, 22 Jul 2011 11:30:52 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1QkKUs-0005jl-E3; Fri, 22 Jul 2011 18:30:50 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1QkKUr-0008UV-0W; Fri, 22 Jul 2011 14:30:49 -0400 Date: Fri, 22 Jul 2011 14:30:48 -0400 From: "Ted Ts'o" To: Christoph Hellwig Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110722183048.GC25092@thunk.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722141753.GA19681@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311359452 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69679 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 10:17:53AM -0400, Christoph Hellwig wrote: > On Thu, Jul 21, 2011 at 07:50:36PM -0400, Theodore Ts'o wrote: > > The tree currently will blow out with a build failure if -DDEBUG is > > specified. > > This still doesn't make sense to me. libxfs explicily overrides > DEBUG in the makefile: > > # don't try linking xfs_repair with a debug libxfs. > DEBUG = -DNDEBUG I added some debugging statements in libxfs/Makefile, and found this (see below). It looks like the problem is that GNU make 3.81 is doing an immediate expansion of this line in builddefs: CFLAGS += $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) - Ted LTCOMPILE is /bin/sh ../libtool --quiet --tag=CC --mode=compile gcc -I/kbuild/xfstests/bld/include -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -I. -g -O2 -DNDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall FCFLAGS is -I. GCFLAGS is -g -O2 -DNDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I../include -DENABLE_GETTEXT PCFLAGS is -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall CFLAGS is -I/kbuild/xfstests/bld/include -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -I. -g -O2 -DNDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall CCF is gcc -I/kbuild/xfstests/bld/include -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -I. -g -O2 -DNDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall From BATV+0f0c84e029a567d19f8a+2889+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 13:38:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MIcYOJ099657 for ; Fri, 22 Jul 2011 13:38:34 -0500 X-ASG-Debug-ID: 1311359913-4ab700280000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D5AF1D8AA5C for ; Fri, 22 Jul 2011 11:38:33 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YetAJJ8fDaPJHTWd for ; Fri, 22 Jul 2011 11:38:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkKcI-0006dj-KG; Fri, 22 Jul 2011 18:38:30 +0000 Date: Fri, 22 Jul 2011 14:38:30 -0400 From: Christoph Hellwig To: "Ted Ts'o" Cc: Christoph Hellwig , Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110722183830.GA21744@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722183048.GC25092@thunk.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311359913 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69679 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:30:48PM -0400, Ted Ts'o wrote: > I added some debugging statements in libxfs/Makefile, and found this > (see below). You can get most of this by simply using make V=1, not just in xfsprogs, but in most projects using silent make output (including those using automake) > It looks like the problem is that GNU make 3.81 is doing an immediate > expansion of this line in builddefs: I'm having GNU make 3.81 on most of my test systems as well, so that alone can't be the whole issue. > CFLAGS += $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) > > LTCOMPILE is /bin/sh ../libtool --quiet --tag=CC --mode=compile gcc -I/kbuild/xfstests/bld/include -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -g -O2 -DDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I./include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -I. -g -O2 -DNDEBUG -DVERSION="3.1.5" -DLOCALEDIR="//share/locale" -DPACKAGE="xfsprogs" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall A typical V=1 compile line looks like: /bin/bash ../libtool --quiet --tag=CC --mode=compile gcc -I. -g -O2 -DNDEBUG -DVERSION=\"3.1.5\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char -fno-strict-aliasing -Wall -c xfs_dir2_sf.c for me. The biggest thing is that you have another directory in your include path. How did you add that one? Did you add anything else special to the ./configure or make command lines? From aelder@sgi.com Fri Jul 22 14:38:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcQ2o102034 for ; Fri, 22 Jul 2011 14:38:26 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id DA63F304032; Fri, 22 Jul 2011 12:38:22 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:37:08 -0500 Subject: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003235.21069.37370.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003235.21069.37370.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:37:08 -0500 Message-ID: <1311363428.2771.96.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > Remove the definition of the macro XFS_BUF_BFLAGS and its usage. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:38:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcQJ5102040 for ; Fri, 22 Jul 2011 14:38:26 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 31B7A30405F; Fri, 22 Jul 2011 12:38:26 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:15 -0500 Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:10 -0500 Message-ID: <1311363490.2771.98.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > Remove the definitions and usage of the macros XFS_BUF_ERROR, > XFS_BUF_GETERROR and XFS_BUF_ISERROR. > > Signed-off-by: Chandra Seetharaman Nice work on this. It is clear it was thoughtfully done. I have two things that need to be fixed. If you do that you can consider this signed off by me. Reviewed-by: Alex Elder . . . > diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c > index 837f311..e7e35fb 100644 > --- a/fs/xfs/quota/xfs_dquot.c > +++ b/fs/xfs/quota/xfs_dquot.c > @@ -403,7 +403,8 @@ xfs_qm_dqalloc( > dqp->q_blkno, > mp->m_quotainfo->qi_dqchunklen, > 0); > - if (!bp || (error = XFS_BUF_GETERROR(bp))) > + error = xfs_buf_geterror(bp); > + if (error) > goto error1; > /* > * Make a chunk of dquots out of this buffer and log This results in behavior that differs from before. Previously, error would have value 0 following the call to xfs_trans_get_buf() here, meaning that (at error1:) xfs_qm_dqalloc() would return 0 in this case. Now it will return ENOMEM. I think what you have done may be correct, but since the change does more than the simple macro transformation you intend, this change should be done in a separate commit. So either: - post a new patch (preferably before this whole series) that makes this code return ENOMEM if xfs_trans_get_buf() returns a null pointer, then update this patch accordingly; - or just change this patch to return 0 instead of ENOMEM if xfs_trans_get_buf() returns a null pointer. . . . > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > index 88d1214..97daa35 100644 > --- a/fs/xfs/xfs_vnodeops.c > +++ b/fs/xfs/xfs_vnodeops.c > @@ -83,7 +83,7 @@ xfs_readlink_bmap( > > bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), > XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); xfs_buf_read() can return NULL here, so to match the existing behavior you should call xfs_buf_geterror() here. > - error = XFS_BUF_GETERROR(bp); > + error = bp->b_error; > if (error) { > xfs_ioerror_alert("xfs_readlink", > ip->i_mount, bp, XFS_BUF_ADDR(bp)); From aelder@sgi.com Fri Jul 22 14:38:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcQbx102036 for ; Fri, 22 Jul 2011 14:38:26 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 208BF304051; Fri, 22 Jul 2011 12:38:26 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:37:43 -0500 Subject: Re: [PATCH 01/12] xfs: Remove the macro XFS_BUF_BFLAGS From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003235.21069.37370.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003235.21069.37370.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:37:08 -0500 Message-ID: <1311363428.2771.96.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > Remove the definition of the macro XFS_BUF_BFLAGS and its usage. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:38:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcRTh102059 for ; Fri, 22 Jul 2011 14:38:27 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id BCF92304032; Fri, 22 Jul 2011 12:38:27 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:27 -0500 Subject: Re: [PATCH 04/12] xfs: Remove macro XFS_BUF_BUSY and family From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003259.21069.3544.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003259.21069.3544.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:13 -0500 Message-ID: <1311363493.2771.99.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the definitions and uses of the macros XFS_BUF_BUSY, > XFS_BUF_UNBUSY, and XFS_BUF_ISBUSY. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:38:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcXcw102095 for ; Fri, 22 Jul 2011 14:38:33 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id A3437AC002; Fri, 22 Jul 2011 12:38:29 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:29 -0500 Subject: Re: [PATCH 05/12] xfs: Remove macro XFS_BUF_HOLD From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003306.21069.97917.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003306.21069.97917.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:15 -0500 Message-ID: <1311363495.2771.100.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the definition and usage of the macro XFS_BUF_HOLD > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:38:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcYGI102104 for ; Fri, 22 Jul 2011 14:38:34 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id EC091304048; Fri, 22 Jul 2011 12:38:33 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:33 -0500 Subject: Re: [PATCH 06/12] xfs: Remove macro XFS_BUF_SET_START From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003315.21069.75196.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003315.21069.75196.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:18 -0500 Message-ID: <1311363498.2771.101.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the definition and usage of the macro XFS_BUF_SET_START. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:38:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcZsY102119 for ; Fri, 22 Jul 2011 14:38:35 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3ADBCAC004; Fri, 22 Jul 2011 12:38:35 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:34 -0500 Subject: Re: [PATCH 07/12] xfs: Remove the macro XFS_BUF_PTR From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003322.21069.83785.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003322.21069.83785.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:26 -0500 Message-ID: <1311363506.2771.102.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_PTR. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig This looks fine. One little comment below but it's really more like a rhetorical question (or statement). Well done. Reviewed-by: Alex Elder > diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c > index ae2c2e7..6a42f71 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.c > +++ b/fs/xfs/linux-2.6/xfs_buf.c > @@ -1320,7 +1320,7 @@ xfs_buf_offset( > struct page *page; > > if (bp->b_flags & XBF_MAPPED) > - return XFS_BUF_PTR(bp) + offset; > + return bp->b_addr + offset; I guess we're using GCC-isms elsewhere (including possibly this one) so I suppose using arithmetic on a void pointer is OK. In any case it looks nicer this way... > > offset += bp->b_offset; > page = bp->b_pages[offset >> PAGE_SHIFT]; > diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h > index 6758697..6ae7bde 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.h > +++ b/fs/xfs/linux-2.6/xfs_buf.h . . . From aelder@sgi.com Fri Jul 22 14:38:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcccV102139 for ; Fri, 22 Jul 2011 14:38:38 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id AE015304048; Fri, 22 Jul 2011 12:38:38 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:38 -0500 Subject: Re: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003343.21069.95122.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003343.21069.95122.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:34 -0500 Message-ID: <1311363514.2771.104.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Replace the macro XFS_BUF_ISPINNED with an inline helper function > xfs_buf_ispinned, and change all its usages. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig One simple suggestion below. Otherwise: Reviewed-by: Alex Elder > diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h > index 7b1f484..71e1d6f 100644 > --- a/fs/xfs/linux-2.6/xfs_buf.h > +++ b/fs/xfs/linux-2.6/xfs_buf.h > @@ -280,7 +280,10 @@ xfs_buf_set_ref( > #define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) > #define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) > > -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) > +static inline int xfs_buf_ispinned(struct xfs_buf *bp) > +{ > + return atomic_read(&(bp->b_pin_count)); Good idea. But drop the extra parentheses: return atomic_read(&bp->b_pin_count); > +} > > #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); > From aelder@sgi.com Fri Jul 22 14:38:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcbVZ102134 for ; Fri, 22 Jul 2011 14:38:38 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6FA47AC001; Fri, 22 Jul 2011 12:38:37 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:36 -0500 Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:30 -0500 Message-ID: <1311363510.2771.103.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_SET_PTR. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig One suggestion. Otherwise: Reviewed-by: Alex Elder > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 4255a1c..21e770f 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -1395,8 +1395,9 @@ xlog_sync(xlog_t *log, > if (split) { > bp = iclog->ic_log->l_xbuf; > XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ > - XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > - (__psint_t)count), split); > + xfs_buf_associate_memory(bp, > + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > + (__psint_t)count), split); If you just cast the address appropriately you can make this look a lot nicer: xfs_buf_associate_memory(bp, (void *) &iclog->ic_header + count, split); > bp->b_fspriv = iclog; > bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); > XFS_BUF_ASYNC(bp); . . . From aelder@sgi.com Fri Jul 22 14:38:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJcfTZ102170 for ; Fri, 22 Jul 2011 14:38:41 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 93644AC001; Fri, 22 Jul 2011 12:38:40 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:38:40 -0500 Subject: Re: [PATCH 10/12] xfs: Remove the macro XFS_BUF_SET_TARGET From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003352.21069.89866.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003352.21069.89866.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:39 -0500 Message-ID: <1311363519.2771.105.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > Remove the macro XFS_BUF_SET_TARGET. > > hch: As all the buffer allocator already set ->b_target it should be safe > to simply remove these calls. Yes, in _xfs_buf_initialize(). > Signed-off-by: Chandra Seetharaman Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:41:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJfHvw102303 for ; Fri, 22 Jul 2011 14:41:17 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 26DDF8F8065; Fri, 22 Jul 2011 12:41:14 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:39:56 -0500 Subject: Re: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003402.21069.36631.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003402.21069.36631.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:38:43 -0500 Message-ID: <1311363523.2771.106.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_TARGET > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:46:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJktAf102598 for ; Fri, 22 Jul 2011 14:46:56 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9B5B1AC002; Fri, 22 Jul 2011 12:46:55 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:46:18 -0500 Subject: Re: [PATCH 11/12] xfs: Remove the macro XFS_BUF_TARGET From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003402.21069.36631.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003402.21069.36631.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:46:17 -0500 Message-ID: <1311363977.2771.112.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUF_TARGET > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Fri Jul 22 14:49:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MJnjHx102730 for ; Fri, 22 Jul 2011 14:49:45 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5415A8F806F; Fri, 22 Jul 2011 12:49:45 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 14:49:41 -0500 Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 14:49:41 -0500 Message-ID: <1311364181.2771.114.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Christoph Hellwig Wow, I hadn't looked at the definition of xfs_buf_target_name() before. It's not safe (using a pointer to since-released stack space), though in practice it's going to be fine. Defining it as an inline function with a static buffer would at least avoid that, though it means it's not reentrant either. I would personally prefer doing it that way though. /* NB: returns pointer to buffer reused on each call */ static inline char * xfs_buf_target_name(struct xfs_buftarg *target) { static char __b[BDEVNAME_SIZE]; return bdevname(target->bt_bdev, __b); } Anyway, you didn't change this, but you're touching the code that uses it. So unless others object I would like to see this changed along with the rest of what you do here (which is all good, by the way). Either way: Reviewed-by: Alex Elder From sekharan@us.ibm.com Fri Jul 22 15:50:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MKo54W105737 for ; Fri, 22 Jul 2011 15:50:06 -0500 X-ASG-Debug-ID: 1311367804-354701270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e33.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B8FC180D791 for ; Fri, 22 Jul 2011 13:50:04 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by cuda.sgi.com with ESMTP id McriNxGF7XkfTXS7 for ; Fri, 22 Jul 2011 13:50:04 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e33.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MKgLS5017344 for ; Fri, 22 Jul 2011 14:42:21 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MKo1hh179902 for ; Fri, 22 Jul 2011 14:50:01 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MEnXbI006733 for ; Fri, 22 Jul 2011 08:49:34 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MEnUx3006184; Fri, 22 Jul 2011 08:49:30 -0600 X-ASG-Orig-Subj: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311363490.2771.98.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363490.2771.98.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 13:49:56 -0700 Message-ID: <1311367796.3210.971.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e33.co.us.ibm.com[32.97.110.151] X-Barracuda-Start-Time: 1311367805 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks for the review Alex. See below for comments. On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > > Remove the definitions and usage of the macros XFS_BUF_ERROR, > > XFS_BUF_GETERROR and XFS_BUF_ISERROR. > > > > Signed-off-by: Chandra Seetharaman > > Nice work on this. It is clear it was thoughtfully > done. > > I have two things that need to be fixed. If you do that > you can consider this signed off by me.xfs_buf_geterror > > Reviewed-by: Alex Elder > > . . . > > > diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c > > index 837f311..e7e35fb 100644 > > --- a/fs/xfs/quota/xfs_dquot.c > > +++ b/fs/xfs/quota/xfs_dquot.c > > @@ -403,7 +403,8 @@ xfs_qm_dqalloc( > > dqp->q_blkno, > > mp->m_quotainfo->qi_dqchunklen, > > 0); > > - if (!bp || (error = XFS_BUF_GETERROR(bp))) > > + error = xfs_buf_geterror(bp); > > + if (error) > > goto error1; > > /* > > * Make a chunk of dquots out of this buffer and log > > This results in behavior that differs from before. > Previously, error would have value 0 following > the call to xfs_trans_get_buf() here, meaning that > (at error1:) xfs_qm_dqalloc() would return 0 in > this case. Now it will return ENOMEM. > > I think what you have done may be correct, but > since the change does more than the simple > macro transformation you intend, this change > should be done in a separate commit. > > So either: > - post a new patch (preferably before this > whole series) that makes this code return > ENOMEM if xfs_trans_get_buf() returns a > null pointer, then update this patch accordingly; Will it this way and resent the patch xfs_buf_geterror > - or just change this patch to return 0 instead > of ENOMEM if xfs_trans_get_buf() returns a > null pointer. > > . . . > > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > > index 88d1214..97daa35 100644 > > --- a/fs/xfs/xfs_vnodeops.c > > +++ b/fs/xfs/xfs_vnodeops.c > > @@ -83,7 +83,7 @@ xfs_readlink_bmap( > > > > bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), > > XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); > > xfs_buf_read() can return NULL here, so to match > the existing behavior you should call xfs_buf_geterror() > here. > > > - error = XFS_BUF_GETERROR(bp); > > + error = bp->b_error; > > if (error) { > > xfs_ioerror_alert("xfs_readlink", > > ip->i_mount, bp, XFS_BUF_ADDR(bp)); I did the change consciously. If bp were NULL, error would have been set to ENOMEM, and xfs_ioerror_alert() and xfs_buf_relse(), would have accessed bp and tripped anyways. So, I felt using the indirection (xfs_buf_geterror()) is not adding any value, hence set error by directly accessing b_error. There are more place like these. What do you think of this option Leave this as is (with b_error), and send another patch to check for bp after xfs_buf_read() in all places (if you want this option, what do you think error should be set to, I see both EIO and ENOMEM used. I think it should be the same always). If you don't like that option I can revert to xfs_buf_geterror() too. > > From sekharan@us.ibm.com Fri Jul 22 15:50:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MKox8Q105772 for ; Fri, 22 Jul 2011 15:50:59 -0500 X-ASG-Debug-ID: 1311367858-353c01440000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e7.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A78FC180D7BA for ; Fri, 22 Jul 2011 13:50:58 -0700 (PDT) Received: from e7.ny.us.ibm.com (e7.ny.us.ibm.com [32.97.182.137]) by cuda.sgi.com with ESMTP id Sq3u8ndOvonp2VSw for ; Fri, 22 Jul 2011 13:50:58 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay01.pok.ibm.com (d01relay01.pok.ibm.com [9.56.227.233]) by e7.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MKPSWB021279 for ; Fri, 22 Jul 2011 16:25:28 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay01.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MKovMB128918 for ; Fri, 22 Jul 2011 16:50:57 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MGoiK1027790 for ; Fri, 22 Jul 2011 13:50:45 -0300 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MGoiGF027690; Fri, 22 Jul 2011 13:50:44 -0300 X-ASG-Orig-Subj: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311363510.2771.103.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 13:50:55 -0700 Message-ID: <1311367855.3210.972.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e7.ny.us.ibm.com[32.97.182.137] X-Barracuda-Start-Time: 1311367858 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > > Remove the definition and usages of the macro XFS_BUF_SET_PTR. > > > > Signed-off-by: Chandra Seetharaman > > Reviewed-by: Christoph Hellwig > > One suggestion. Otherwise: > > Reviewed-by: Alex Elder > > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > > index 4255a1c..21e770f 100644 > > --- a/fs/xfs/xfs_log.c > > +++ b/fs/xfs/xfs_log.c > > @@ -1395,8 +1395,9 @@ xlog_sync(xlog_t *log, > > if (split) { > > bp = iclog->ic_log->l_xbuf; > > XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ > > - XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > > - (__psint_t)count), split); > > + xfs_buf_associate_memory(bp, > > + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > > + (__psint_t)count), split); > > If you just cast the address appropriately you can make this > look a lot nicer: > > xfs_buf_associate_memory(bp, > (void *) &iclog->ic_header + count, split); > will do > > bp->b_fspriv = iclog; > > bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); > > XFS_BUF_ASYNC(bp); > > . . . > From sekharan@us.ibm.com Fri Jul 22 15:52:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MKqVuU105810 for ; Fri, 22 Jul 2011 15:52:31 -0500 X-ASG-Debug-ID: 1311367950-5f22039b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e36.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 932C31511A2C for ; Fri, 22 Jul 2011 13:52:30 -0700 (PDT) Received: from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154]) by cuda.sgi.com with ESMTP id MCurBZlIjrhvtfN0 for ; Fri, 22 Jul 2011 13:52:30 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e36.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MKkHUw032646 for ; Fri, 22 Jul 2011 14:46:17 -0600 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MKpEYs175572 for ; Fri, 22 Jul 2011 14:51:14 -0600 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MEpDJe018826 for ; Fri, 22 Jul 2011 08:51:13 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MEpCsg018757; Fri, 22 Jul 2011 08:51:12 -0600 X-ASG-Orig-Subj: Re: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Subject: Re: [PATCH 09/12] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311363514.2771.104.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003343.21069.95122.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363514.2771.104.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 13:51:13 -0700 Message-ID: <1311367873.3210.973.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e36.co.us.ibm.com[32.97.110.154] X-Barracuda-Start-Time: 1311367950 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > On Thu, 2011-07-21 at 17:33 -0700, Chandra Seetharaman wrote: > > Replace the macro XFS_BUF_ISPINNED with an inline helper function > > xfs_buf_ispinned, and change all its usages. > > > > Signed-off-by: Chandra Seetharaman > > Reviewed-by: Christoph Hellwig > > One simple suggestion below. Otherwise: > > Reviewed-by: Alex Elder > > > diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h > > index 7b1f484..71e1d6f 100644 > > --- a/fs/xfs/linux-2.6/xfs_buf.h > > +++ b/fs/xfs/linux-2.6/xfs_buf.h > > @@ -280,7 +280,10 @@ xfs_buf_set_ref( > > #define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) > > #define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) > > > > -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) > > +static inline int xfs_buf_ispinned(struct xfs_buf *bp) > > +{ > > + return atomic_read(&(bp->b_pin_count)); > > Good idea. But drop the extra parentheses: > > return atomic_read(&bp->b_pin_count); will do > > > +} > > > > #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); > > > > From aelder@sgi.com Fri Jul 22 16:12:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MLCfuA106556 for ; Fri, 22 Jul 2011 16:12:41 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id B28278F808E; Fri, 22 Jul 2011 14:12:37 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 16:12:04 -0500 Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family From: Alex Elder Reply-To: To: CC: In-Reply-To: <1311367796.3210.971.camel@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363490.2771.98.camel@doink> <1311367796.3210.971.camel@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 16:10:55 -0500 Message-ID: <1311369055.2771.139.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 13:49 -0700, Chandra Seetharaman wrote: > Thanks for the review Alex. > > See below for comments. > > On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > > On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > > > Remove the definitions and usage of the macros XFS_BUF_ERROR, . . . > > > diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c > > > index 837f311..e7e35fb 100644 > > > --- a/fs/xfs/quota/xfs_dquot.c > > > +++ b/fs/xfs/quota/xfs_dquot.c > > > @@ -403,7 +403,8 @@ xfs_qm_dqalloc( > > > dqp->q_blkno, > > > mp->m_quotainfo->qi_dqchunklen, > > > 0); > > > - if (!bp || (error = XFS_BUF_GETERROR(bp))) > > > + error = xfs_buf_geterror(bp); > > > + if (error) > > > goto error1; > > > /* > > > * Make a chunk of dquots out of this buffer and log > > > > This results in behavior that differs from before. > > Previously, error would have value 0 following > > the call to xfs_trans_get_buf() here, meaning that > > (at error1:) xfs_qm_dqalloc() would return 0 in > > this case. Now it will return ENOMEM. > > > > I think what you have done may be correct, but > > since the change does more than the simple > > macro transformation you intend, this change > > should be done in a separate commit. > > > > So either: > > - post a new patch (preferably before this > > whole series) that makes this code return > > ENOMEM if xfs_trans_get_buf() returns a > > null pointer, then update this patch accordingly; > > Will it this way and resent the patch > xfs_buf_geterror I don't grok that "sentence" and I'm not sure whether you are referring to the one above or below. > > - or just change this patch to return 0 instead > > of ENOMEM if xfs_trans_get_buf() returns a > > null pointer. > > > > . . . > > > > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > > > index 88d1214..97daa35 100644 > > > --- a/fs/xfs/xfs_vnodeops.c > > > +++ b/fs/xfs/xfs_vnodeops.c > > > @@ -83,7 +83,7 @@ xfs_readlink_bmap( > > > > > > bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), > > > XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); > > > > xfs_buf_read() can return NULL here, so to match > > the existing behavior you should call xfs_buf_geterror() > > here. > > > > > - error = XFS_BUF_GETERROR(bp); > > > + error = bp->b_error; > > > if (error) { > > > xfs_ioerror_alert("xfs_readlink", > > > ip->i_mount, bp, XFS_BUF_ADDR(bp)); > > I did the change consciously. If bp were NULL, error would have been set > to ENOMEM, and xfs_ioerror_alert() and xfs_buf_relse(), would have > accessed bp and tripped anyways. So, I felt using the indirection > (xfs_buf_geterror()) is not adding any value, hence set error by > directly accessing b_error. But you are dereferencing a possibly null pointer in the code you added. Yes, the code that was already there should not dereference it either, but that's no excuse for you to do it. (And fix the other code while you're there, or make a note to get it fixed later.) The reason it's important here is that the value of error gets passed back to the caller, and although I didn't go very far back to see what effect it has, a quick look showed that it might lead to different behavior. As I said, it might be *correct* behavior, but in any case it's different, so it belongs in its own commit. > There are more place like these. I noticed you doing this sort of thing in a bunch of other spots in your patch, and in all of them they seemed to follow a test that ensured the buffer pointer was non-null (or it was implicit, because some *prior* dereference of the pointer would have been a problem) therefore simply checking bp->b_error was a fine replacement. But in this one spot, it's a bit different, so I called attention to it. If you are convinced I'm mistaken and this will produce results identical to before, say so and I'll take a closer look. > What do you think of this option > > Leave this as is (with b_error), and send another patch to check for bp > after xfs_buf_read() in all places (if you want this option, what do you > think error should be set to, I see both EIO and ENOMEM used. I think it > should be the same always). > > If you don't like that option I can revert to xfs_buf_geterror() too. I think using xfs_buf_geterror() is the easiest thing to do right now. Changing it such that xfs_readlink_bmap() returns ENOMEM in the event xfs_buf_read() here returns a null pointer sounds like a reasonable thing to do, but do it in a separate patch that focuses on that change and why it's correct. And (despite what I said earlier) I guess do it *after* we've got this series in. I'm about ready to get it committed once you get it updated. -Alex From sekharan@us.ibm.com Fri Jul 22 16:23:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MLNUCc106951 for ; Fri, 22 Jul 2011 16:23:30 -0500 X-ASG-Debug-ID: 1311369809-5cb1030c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e39.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 824EF8F743 for ; Fri, 22 Jul 2011 14:23:29 -0700 (PDT) Received: from e39.co.us.ibm.com (e39.co.us.ibm.com [32.97.110.160]) by cuda.sgi.com with ESMTP id wqFE3oBEZHucvAzn for ; Fri, 22 Jul 2011 14:23:29 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e39.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6ML8gqo001349 for ; Fri, 22 Jul 2011 15:08:42 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MLNTdU195254 for ; Fri, 22 Jul 2011 15:23:29 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MFN1Rq002834 for ; Fri, 22 Jul 2011 09:23:01 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MFMxAL002753; Fri, 22 Jul 2011 09:23:00 -0600 X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311364181.2771.114.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 14:23:25 -0700 Message-ID: <1311369805.3210.974.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e39.co.us.ibm.com[32.97.110.160] X-Barracuda-Start-Time: 1311369810 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 14:49 -0500, Alex Elder wrote: > On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > > > Signed-off-by: Chandra Seetharaman > > Reviewed-by: Christoph Hellwig > > > Wow, I hadn't looked at the definition of > xfs_buf_target_name() before. It's not safe > (using a pointer to since-released stack space), > though in practice it's going to be fine. > > Defining it as an inline function with a static > buffer would at least avoid that, though it > means it's not reentrant either. > > I would personally prefer doing it that way though. > > /* NB: returns pointer to buffer reused on each call */ > static inline char * > xfs_buf_target_name(struct xfs_buftarg *target) > { > static char __b[BDEVNAME_SIZE]; > > return bdevname(target->bt_bdev, __b); > } > > > Anyway, you didn't change this, but you're touching > the code that uses it. So unless others object I > would like to see this changed along with the > rest of what you do here (which is all good, by > the way). > > Either way: > > Reviewed-by: Alex Elder > > From sekharan@us.ibm.com Fri Jul 22 16:26:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MLQN6g107090 for ; Fri, 22 Jul 2011 16:26:24 -0500 X-ASG-Debug-ID: 1311369983-389702cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e32.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 864A7180DA21 for ; Fri, 22 Jul 2011 14:26:23 -0700 (PDT) Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by cuda.sgi.com with ESMTP id ZNb4pRQfjFH2uc81 for ; Fri, 22 Jul 2011 14:26:23 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e32.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MKGVBp030665 for ; Fri, 22 Jul 2011 14:16:31 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MLQMjp183556 for ; Fri, 22 Jul 2011 15:26:22 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MFPsrE016445 for ; Fri, 22 Jul 2011 09:25:54 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MFPrAK016382; Fri, 22 Jul 2011 09:25:53 -0600 X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311369805.3210.974.camel@chandra-lucid.beaverton.ibm.com> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> <1311369805.3210.974.camel@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 14:26:19 -0700 Message-ID: <1311369979.3210.975.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e32.co.us.ibm.com[32.97.110.150] X-Barracuda-Start-Time: 1311369983 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 14:23 -0700, Chandra Seetharaman wrote: > On Fri, 2011-07-22 at 14:49 -0500, Alex Elder wrote: > > On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > > > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > > > > > Signed-off-by: Chandra Seetharaman > > > Reviewed-by: Christoph Hellwig > > > > > > Wow, I hadn't looked at the definition of > > xfs_buf_target_name() before. It's not safe > > (using a pointer to since-released stack space), > > though in practice it's going to be fine. > > > > Defining it as an inline function with a static > > buffer would at least avoid that, though it > > means it's not reentrant either. > > > > I would personally prefer doing it that way though. > > > > /* NB: returns pointer to buffer reused on each call */ > > static inline char * > > xfs_buf_target_name(struct xfs_buftarg *target) > > { > > static char __b[BDEVNAME_SIZE]; > > > > return bdevname(target->bt_bdev, __b); > > } > > > > > > Anyway, you didn't change this, but you're touching > > the code that uses it. So unless others object I > > would like to see this changed along with the > > rest of what you do here (which is all good, by > > the way). Will do it. > > > > Either way: > > > > Reviewed-by: Alex Elder > > > > > From aelder@sgi.com Fri Jul 22 16:32:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MLWYlB107313 for ; Fri, 22 Jul 2011 16:32:34 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5EC428F8065; Fri, 22 Jul 2011 14:32:34 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 22 Jul 2011 16:31:34 -0500 Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family From: Alex Elder Reply-To: To: CC: In-Reply-To: <1311369055.2771.139.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363490.2771.98.camel@doink> <1311367796.3210.971.camel@chandra-lucid.beaverton.ibm.com> <1311369055.2771.139.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 16:30:30 -0500 Message-ID: <1311370230.2771.147.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 16:10 -0500, Alex Elder wrote: > On Fri, 2011-07-22 at 13:49 -0700, Chandra Seetharaman wrote: > > Thanks for the review Alex. > > > > See below for comments. > > > > On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > > > On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > > > > Remove the definitions and usage of the macros XFS_BUF_ERROR, > > . . . Looking my message again, I think I may have gotten confused along the way. . . . > > > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > > > > index 88d1214..97daa35 100644 > > > > --- a/fs/xfs/xfs_vnodeops.c > > > > +++ b/fs/xfs/xfs_vnodeops.c > > > > @@ -83,7 +83,7 @@ xfs_readlink_bmap( > > > > > > > > bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), > > > > XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); > > > > > > xfs_buf_read() can return NULL here, so to match > > > the existing behavior you should call xfs_buf_geterror() > > > here. > > > > > > > - error = XFS_BUF_GETERROR(bp); > > > > + error = bp->b_error; > > > > if (error) { > > > > xfs_ioerror_alert("xfs_readlink", > > > > ip->i_mount, bp, XFS_BUF_ADDR(bp)); > > > > I did the change consciously. If bp were NULL, error would have been set > > to ENOMEM, and xfs_ioerror_alert() and xfs_buf_relse(), would have > > accessed bp and tripped anyways. So, I felt using the indirection > > (xfs_buf_geterror()) is not adding any value, hence set error by > > directly accessing b_error. > > But you are dereferencing a possibly null pointer in the > code you added. Yes, the code that was already there > should not dereference it either, but that's no excuse > for you to do it. (And fix the other code while you're > there, or make a note to get it fixed later.) The comment above I stand by. But the next one I think applies to another hunk of code. In any case, hopefully you understand what my point is and you'll be able to update your patch accordingly. Sorry for the confusion. -Alex > The reason it's important here is that the value of error > gets passed back to the caller, and although I didn't > go very far back to see what effect it has, a quick look > showed that it might lead to different behavior. As I > said, it might be *correct* behavior, but in any case it's > different, so it belongs in its own commit. > > > There are more place like these. > > I noticed you doing this sort of thing in a bunch of other > spots in your patch, and in all of them they seemed to > follow a test that ensured the buffer pointer was non-null > (or it was implicit, because some *prior* dereference of > the pointer would have been a problem) therefore simply > checking bp->b_error was a fine replacement. > > But in this one spot, it's a bit different, so I called > attention to it. > > If you are convinced I'm mistaken and this will produce > results identical to before, say so and I'll take a > closer look. > > > What do you think of this option > > > > Leave this as is (with b_error), and send another patch to check for bp > > after xfs_buf_read() in all places (if you want this option, what do you > > think error should be set to, I see both EIO and ENOMEM used. I think it > > should be the same always). > > > > If you don't like that option I can revert to xfs_buf_geterror() too. > > I think using xfs_buf_geterror() is the easiest thing > to do right now. Changing it such that xfs_readlink_bmap() > returns ENOMEM in the event xfs_buf_read() here returns a null > pointer sounds like a reasonable thing to do, but do it in > a separate patch that focuses on that change and why it's > correct. And (despite what I said earlier) I guess do it > *after* we've got this series in. I'm about ready to get > it committed once you get it updated. From sekharan@us.ibm.com Fri Jul 22 16:33:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MLX8u1107348 for ; Fri, 22 Jul 2011 16:33:08 -0500 X-ASG-Debug-ID: 1311370387-6e2400100000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e33.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 916EB180D7ED for ; Fri, 22 Jul 2011 14:33:07 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by cuda.sgi.com with ESMTP id uGbSab9eFrvr1jfy for ; Fri, 22 Jul 2011 14:33:07 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e33.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MLPPHY024854 for ; Fri, 22 Jul 2011 15:25:25 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MLVfM9095714 for ; Fri, 22 Jul 2011 15:31:42 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MFVecu020070 for ; Fri, 22 Jul 2011 09:31:40 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MFVdAb020033; Fri, 22 Jul 2011 09:31:39 -0600 X-ASG-Orig-Subj: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family Subject: Re: [PATCH 03/12] xfs: Remove the macro XFS_BUF_ERROR and family From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: xfs@oss.sgi.com In-Reply-To: <1311369055.2771.139.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003254.21069.27101.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363490.2771.98.camel@doink> <1311367796.3210.971.camel@chandra-lucid.beaverton.ibm.com> <1311369055.2771.139.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Fri, 22 Jul 2011 14:31:39 -0700 Message-ID: <1311370299.3210.980.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e33.co.us.ibm.com[32.97.110.151] X-Barracuda-Start-Time: 1311370387 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 16:10 -0500, Alex Elder wrote: > On Fri, 2011-07-22 at 13:49 -0700, Chandra Seetharaman wrote: > > Thanks for the review Alex. > > > > See below for comments. > > > > On Fri, 2011-07-22 at 14:38 -0500, Alex Elder wrote: > > > On Thu, 2011-07-21 at 17:32 -0700, Chandra Seetharaman wrote: > > > > Remove the definitions and usage of the macros XFS_BUF_ERROR, > > . . . > > > > > diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c > > > > index 837f311..e7e35fb 100644 > > > > --- a/fs/xfs/quota/xfs_dquot.c > > > > +++ b/fs/xfs/quota/xfs_dquot.c > > > > @@ -403,7 +403,8 @@ xfs_qm_dqalloc( > > > > dqp->q_blkno, > > > > mp->m_quotainfo->qi_dqchunklen, > > > > 0); > > > > - if (!bp || (error = XFS_BUF_GETERROR(bp))) > > > > + error = xfs_buf_geterror(bp); > > > > + if (error) > > > > goto error1; > > > > /* > > > > * Make a chunk of dquots out of this buffer and log > > > > > > This results in behavior that differs from before. > > > Previously, error would have value 0 following > > > the call to xfs_trans_get_buf() here, meaning that > > > (at error1:) xfs_qm_dqalloc() would return 0 in > > > this case. Now it will return ENOMEM. > > > > > > I think what you have done may be correct, but > > > since the change does more than the simple > > > macro transformation you intend, this change > > > should be done in a separate commit. > > > > > > So either: > > > - post a new patch (preferably before this > > > whole series) that makes this code return > > > ENOMEM if xfs_trans_get_buf() returns a > > > null pointer, then update this patch accordingly; > > > > Will it this way and resent the patch > > xfs_buf_geterror > > I don't grok that "sentence" and I'm not sure whether > you are referring to the one above or below. > Sorry, something got eaten up... I meant to say, "will do it this way and resend the patch". > > > - or just change this patch to return 0 instead > > > of ENOMEM if xfs_trans_get_buf() returns a > > > null pointer. > > > > > > . . . > > > > > > > diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c > > > > index 88d1214..97daa35 100644 > > > > --- a/fs/xfs/xfs_vnodeops.c > > > > +++ b/fs/xfs/xfs_vnodeops.c > > > > @@ -83,7 +83,7 @@ xfs_readlink_bmap( > > > > > > > > bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), > > > > XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); > > > > > > xfs_buf_read() can return NULL here, so to match > > > the existing behavior you should call xfs_buf_geterror() > > > here. > > > > > > > - error = XFS_BUF_GETERROR(bp); > > > > + error = bp->b_error; > > > > if (error) { > > > > xfs_ioerror_alert("xfs_readlink", > > > > ip->i_mount, bp, XFS_BUF_ADDR(bp)); > > > > I did the change consciously. If bp were NULL, error would have been set > > to ENOMEM, and xfs_ioerror_alert() and xfs_buf_relse(), would have > > accessed bp and tripped anyways. So, I felt using the indirection > > (xfs_buf_geterror()) is not adding any value, hence set error by > > directly accessing b_error. > > But you are dereferencing a possibly null pointer in the > code you added. Yes, the code that was already there > should not dereference it either, but that's no excuse > for you to do it. (And fix the other code while you're > there, or make a note to get it fixed later.) > > The reason it's important here is that the value of error > gets passed back to the caller, and although I didn't > go very far back to see what effect it has, a quick look > showed that it might lead to different behavior. As I > said, it might be *correct* behavior, but in any case it's > different, so it belongs in its own commit. > > > There are more place like these. > > I noticed you doing this sort of thing in a bunch of other > spots in your patch, and in all of them they seemed to > follow a test that ensured the buffer pointer was non-null > (or it was implicit, because some *prior* dereference of > the pointer would have been a problem) therefore simply > checking bp->b_error was a fine replacement. > > But in this one spot, it's a bit different, so I called > attention to it. > > If you are convinced I'm mistaken and this will produce > results identical to before, say so and I'll take a > closer look. > > > What do you think of this option > > > > Leave this as is (with b_error), and send another patch to check for bp > > after xfs_buf_read() in all places (if you want this option, what do you > > think error should be set to, I see both EIO and ENOMEM used. I think it > > should be the same always). > > > > If you don't like that option I can revert to xfs_buf_geterror() too. > > I think using xfs_buf_geterror() is the easiest thing > to do right now. Changing it such that xfs_readlink_bmap() > returns ENOMEM in the event xfs_buf_read() here returns a null > pointer sounds like a reasonable thing to do, but do it in > a separate patch that focuses on that change and why it's > correct. And (despite what I said earlier) I guess do it > *after* we've got this series in. I'm about ready to get > it committed once you get it updated. I will do it the way you suggested and send a separate patch fixing the incorrect dereferences. Thanks chandra > > -Alex > From tytso@thunk.org Fri Jul 22 17:35:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MMZ41r109254 for ; Fri, 22 Jul 2011 17:35:04 -0500 X-ASG-Debug-ID: 1311374102-14cf01500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from test.thunk.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2CE2FEF746F for ; Fri, 22 Jul 2011 15:35:02 -0700 (PDT) Received: from test.thunk.org (li9-11.members.linode.com [67.18.176.11]) by cuda.sgi.com with ESMTP id NJBklMUdimQHcyXp for ; Fri, 22 Jul 2011 15:35:02 -0700 (PDT) Received: from root (helo=tytso-glaptop) by test.thunk.org with local-esmtp (Exim 4.69) (envelope-from ) id 1QkOJ9-0005qd-Vk; Fri, 22 Jul 2011 22:35:00 +0000 Received: from tytso by tytso-glaptop with local (Exim 4.71) (envelope-from ) id 1QkOJ8-0001pE-I2; Fri, 22 Jul 2011 18:34:58 -0400 Date: Fri, 22 Jul 2011 18:34:58 -0400 From: "Ted Ts'o" To: Christoph Hellwig Cc: Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110722223458.GD25092@thunk.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> <20110722183830.GA21744@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722183830.GA21744@infradead.org> User-Agent: Mutt/1.5.20 (2009-06-14) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on test.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: li9-11.members.linode.com[67.18.176.11] X-Barracuda-Start-Time: 1311374103 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69693 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:38:30PM -0400, Christoph Hellwig wrote: > > You can get most of this by simply using make V=1, not just in xfsprogs, > but in most projects using silent make output (including those using > automake) Yeah, I know about V=1 (and I have been using it), but I wanted to know which of the many Makefile variables which finally make up $(CFLAGS) was getting set to which value, and V=1 doesn't do this. > for me. The biggest thing is that you have another directory in your > include path. How did you add that one? Did you add anything else > special to the ./configure or make command lines? Yes I needed it because I wanted to do a hermetic build; that is, I didn't want to depend on the version of the acl, attr, dmapi, etc., shipped by the distribution. (This is actually more important when building xfstests, since I wanted to make sure we used the version of the xfsprogs headers shipped by the very tip of xfsprogs-dev, since in the past I've had problems because the distro-shipped header files were too old.) The way I did that was by setting the environment CFLAGS to -I/kbuild/xfstests/bld/include. And that seems to be the problem. If CFLAGS is set as an environment variable, then it's set as a :=, which means that CFLAGS is set right away, the first time buildmacros is included. How about this instead? A patch like this so that CFLAGS can be remembered at configure time: diff --git a/include/builddefs.in b/include/builddefs.in index 4c8ec64..81ebfcd 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -25,6 +25,7 @@ OPTIMIZER = @opt_build@ MALLOCLIB = @malloc_lib@ LOADERFLAGS = @LDFLAGS@ LTLDFLAGS = @LDFLAGS@ +CFLAGS = @CFLAGS@ LIBRT = @librt@ LIBUUID = @libuuid@ Then I don't have to set an environment variable when running make; I just have to pass it to configure. - Ted From david@fromorbit.com Fri Jul 22 18:15:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNFpMS113477 for ; Fri, 22 Jul 2011 18:15:51 -0500 X-ASG-Debug-ID: 1311376248-3e2f018b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail06.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D94028134F for ; Fri, 22 Jul 2011 16:10:49 -0700 (PDT) Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id jZlWm7ot5Fc0Rvnv for ; Fri, 22 Jul 2011 16:10:49 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlMDAPwCKk55LCkBgWdsb2JhbABTp0sVAQEWJiWIfAS7eQ6FUl8Eo18 Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail06.adl2.internode.on.net with ESMTP; 23 Jul 2011 08:40:47 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QkOrg-0008HH-9j; Sat, 23 Jul 2011 09:10:40 +1000 Date: Sat, 23 Jul 2011 09:10:40 +1000 From: Dave Chinner To: Stan Hoeppner Cc: Michael Monnerie , xfs@oss.sgi.com, John Bokma X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Message-ID: <20110722231040.GD13963@dastard> References: <4E24907F.6020903@johnbokma.com> <201107210820.01019@zmi.at> <20110721064838.GA13963@dastard> <201107220810.01889@zmi.at> <4E29BBDA.3000603@hardwarefreak.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E29BBDA.3000603@hardwarefreak.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1311376249 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.62 X-Barracuda-Spam-Status: No, SCORE=-1.62 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085b X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69696 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.40 BSF_SC0_SA085b Custom Rule SA085b X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 01:05:14PM -0500, Stan Hoeppner wrote: > On 7/22/2011 1:10 AM, Michael Monnerie wrote: > > > Yes, I just wanted to know about the corner cases, and how XFS behaves. > > Actually, we're changing over to using NetApps, and with their WAFL > > anyway I should drop all su/sw usage and just use 4KB blocks. > > I've never used a NetApp filer myself. However, that said, I would > assume that WAFL is only in play for NFS/CIFS transactions since WAFL is > itself a filesystem. Netapp's website is busted, so here's a cached link: http://webcache.googleusercontent.com/search?q=cache:9DdO2a16hdIJ:blogs.netapp.com/extensible_netapp/2008/10/what-is-wafl--3.html+netapp+san+wafl&cd=1&hl=en&ct=clnk&source=www.google.com "The point is that WAFL is the part of the code that provides the 'read or write from-disk' mechanisms to both NFS and CIFS and SAN. The semantics of a how the blocks are accessed are provided by higher level code not by WAFL, which means WAFL is not a file system." If you can be bothered trolling for that entire series of blog posts in the google cache, it's probably a good idea so you can get a basic understanding of what WAFL actually is. > When exposing LUNs from the same filer to FC and iSCSI hosts I would > assume the filer acts just as any other SAN controller would. It has it's own quirks, just like any other FC attached RAID array... > In this case I would think you'd probably still want to align your > XFS filesystem to the underlying RAID stripe from which the LUN > was carved. Which actually matters very little when WAFL between the FS and the disk because WAFL uses copy-on-write and stages all it's writes through NVRAM and so you've got no idea what the alignment of any given address in the filesystem maps to, anyway. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sekharan@us.ibm.com Fri Jul 22 18:39:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNdbfU117491 for ; Fri, 22 Jul 2011 18:39:37 -0500 X-ASG-Debug-ID: 1311377975-129602be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e6.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B805F1D8BC60 for ; Fri, 22 Jul 2011 16:39:36 -0700 (PDT) Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.146]) by cuda.sgi.com with ESMTP id KcbdYqTmRmgq2sBY for ; Fri, 22 Jul 2011 16:39:36 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay02.pok.ibm.com (d01relay02.pok.ibm.com [9.56.227.234]) by e6.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNFSLf019099 for ; Fri, 22 Jul 2011 19:15:28 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay02.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNdYrc456556 for ; Fri, 22 Jul 2011 19:39:35 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNdYxn025157 for ; Fri, 22 Jul 2011 20:39:34 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNdYgH025140; Fri, 22 Jul 2011 20:39:34 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:39:33 -0700 Message-Id: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 00/12 v3] Remove number of macros from xfs_buf.h Subject: [PATCH 00/12 v3] Remove number of macros from xfs_buf.h X-Barracuda-Connect: e6.ny.us.ibm.com[32.97.182.146] X-Barracuda-Start-Time: 1311377976 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello All, Here are few patchset to remove some of the macro definitions from fs/xfs/linux-2.6/xfs_buf.h. Please review and comment. This set is version 3: Incorporated changes suggested by Alex Elder in patches 3/12, 8/12, 9/12 and 12/12 Version 2: Incorporated changes suggested by hristoph Hellwig in patches 2/12, 3/12, 7/12 and 10/12. Thanks & Regards, chandra From sekharan@us.ibm.com Fri Jul 22 18:39:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNdgwM117517 for ; Fri, 22 Jul 2011 18:39:42 -0500 X-ASG-Debug-ID: 1311377981-1297028d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e9.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AC2371D8BC65 for ; Fri, 22 Jul 2011 16:39:41 -0700 (PDT) Received: from e9.ny.us.ibm.com (e9.ny.us.ibm.com [32.97.182.139]) by cuda.sgi.com with ESMTP id Atr11NGFpMU71xQg for ; Fri, 22 Jul 2011 16:39:41 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e9.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MN7Ks9004743 for ; Fri, 22 Jul 2011 19:07:20 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNdehV1511434 for ; Fri, 22 Jul 2011 19:39:40 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNde7w001107 for ; Fri, 22 Jul 2011 19:39:40 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNde4Z001101; Fri, 22 Jul 2011 19:39:40 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:39:39 -0700 Message-Id: <20110722233939.14612.85914.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 01/12 v3] xfs: Remove the macro XFS_BUF_BFLAGS Subject: [PATCH 01/12 v3] xfs: Remove the macro XFS_BUF_BFLAGS X-Barracuda-Connect: e9.ny.us.ibm.com[32.97.182.139] X-Barracuda-Start-Time: 1311377981 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition of the macro XFS_BUF_BFLAGS and its usage. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_trans_buf.c | 2 +- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b2b4119..969fd15 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1094,7 +1094,7 @@ STATIC int xfs_bioerror_relse( struct xfs_buf *bp) { - int64_t fl = XFS_BUF_BFLAGS(bp); + int64_t fl = bp->b_flags; /* * No need to wait until the buffer is unpinned. * We aren't flushing it. diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6a83b46..6b6c25f 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -232,7 +232,6 @@ extern void xfs_buf_terminate(void); ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) -#define XFS_BUF_BFLAGS(bp) ((bp)->b_flags) #define XFS_BUF_ZEROFLAGS(bp) \ ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 15584fc..1bc04d4 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -430,7 +430,7 @@ shutdown_abort: if (XFS_BUF_ISSTALE(bp) && XFS_BUF_ISDELAYWRITE(bp)) xfs_notice(mp, "about to pop assert, bp == 0x%p", bp); #endif - ASSERT((XFS_BUF_BFLAGS(bp) & (XBF_STALE|XBF_DELWRI)) != + ASSERT((bp->b_flags & (XBF_STALE|XBF_DELWRI)) != (XBF_STALE|XBF_DELWRI)); trace_xfs_trans_read_buf_shut(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:39:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNdmfW117546 for ; Fri, 22 Jul 2011 18:39:48 -0500 X-ASG-Debug-ID: 1311377987-11d702ac0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e37.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 294CD1D8BF63 for ; Fri, 22 Jul 2011 16:39:47 -0700 (PDT) Received: from e37.co.us.ibm.com (e37.co.us.ibm.com [32.97.110.158]) by cuda.sgi.com with ESMTP id C0QUmLze1kRfKK17 for ; Fri, 22 Jul 2011 16:39:47 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e37.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNah3x016655 for ; Fri, 22 Jul 2011 17:36:43 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6MNdlPH196314 for ; Fri, 22 Jul 2011 17:39:47 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MHdkNh023660 for ; Fri, 22 Jul 2011 11:39:46 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MHdjCf023646; Fri, 22 Jul 2011 11:39:46 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:39:45 -0700 Message-Id: <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS X-Barracuda-Connect: e37.co.us.ibm.com[32.97.110.158] X-Barracuda-Start-Time: 1311377988 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_ZEROFLAGS. In the specific contexts, not all flags need to be cleared. Hence the simplification. Rationale for xfs_log.c: from hch: XBF_READ and XBF_DELWRI will never be set here, XBF_WRITE XBF_ASYNC, and XBF_SYNCIO are set just below. Hence clearing only XBF_FUA and XBF_FLUSH would suffice. Rationale for xfs_log_recover.c from hch: XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with in xfs_bwrite a few lines down. from hch: XBF_SYNCIO, XBF_FUA and XBF_FLUSH are used only in log buffers. No need to clear them here. Signed-off-by: Chandra Seetharaman --- fs/xfs/linux-2.6/xfs_buf.h | 5 ----- fs/xfs/xfs_log.c | 3 +-- fs/xfs/xfs_log_recover.c | 1 - 3 files changed, 1 insertions(+), 8 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6b6c25f..d7df7b6 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -231,11 +231,6 @@ extern void xfs_buf_terminate(void); #define xfs_buf_target_name(target) \ ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) - -#define XFS_BUF_ZEROFLAGS(bp) \ - ((bp)->b_flags &= ~(XBF_READ|XBF_WRITE|XBF_ASYNC|XBF_DELWRI| \ - XBF_SYNCIO|XBF_FUA|XBF_FLUSH)) - void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); #define XFS_BUF_UNSTALE(bp) ((bp)->b_flags &= ~XBF_STALE) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 06ff843..3ee0fa9 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1247,6 +1247,7 @@ xlog_bdstrat( { struct xlog_in_core *iclog = bp->b_fspriv; + bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); if (iclog->ic_state & XLOG_STATE_IOERROR) { XFS_BUF_ERROR(bp, EIO); XFS_BUF_STALE(bp); @@ -1354,7 +1355,6 @@ xlog_sync(xlog_t *log, } XFS_BUF_SET_COUNT(bp, count); bp->b_fspriv = iclog; - XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; @@ -1401,7 +1401,6 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); bp->b_fspriv = iclog; - XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 8fe4206..301508b 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -265,7 +265,6 @@ xlog_bwrite( ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); - XFS_BUF_ZEROFLAGS(bp); XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); xfs_buf_lock(bp); -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:39:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_62, J_CHICKENPOX_65,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNdslk117575 for ; Fri, 22 Jul 2011 18:39:54 -0500 X-ASG-Debug-ID: 1311377993-1297028e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e33.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 196511EED1FB for ; Fri, 22 Jul 2011 16:39:53 -0700 (PDT) Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by cuda.sgi.com with ESMTP id cL7g8CXqdw8jghLm for ; Fri, 22 Jul 2011 16:39:53 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e33.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNWB4T027709 for ; Fri, 22 Jul 2011 17:32:11 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6MNdrer187858 for ; Fri, 22 Jul 2011 17:39:53 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNdqmL009643 for ; Fri, 22 Jul 2011 17:39:52 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNdqv2009621; Fri, 22 Jul 2011 17:39:52 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:39:51 -0700 Message-Id: <20110722233951.14612.3794.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 03/12 v3] xfs: Remove the macro XFS_BUF_ERROR and family Subject: [PATCH 03/12 v3] xfs: Remove the macro XFS_BUF_ERROR and family X-Barracuda-Connect: e33.co.us.ibm.com[32.97.110.151] X-Barracuda-Start-Time: 1311377994 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and usage of the macros XFS_BUF_ERROR, XFS_BUF_GETERROR and XFS_BUF_ISERROR. Signed-off-by: Chandra Seetharaman Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 6 +++--- fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 2 +- fs/xfs/xfs_alloc.c | 7 +++---- fs/xfs/xfs_attr.c | 3 +-- fs/xfs/xfs_btree.c | 17 ++++++----------- fs/xfs/xfs_buf_item.c | 4 ++-- fs/xfs/xfs_da_btree.c | 2 +- fs/xfs/xfs_ialloc.c | 5 ++--- fs/xfs/xfs_inode.c | 2 +- fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 12 +++++------- fs/xfs/xfs_rtalloc.c | 2 +- fs/xfs/xfs_rw.c | 6 +++--- fs/xfs/xfs_trans_buf.c | 15 +++++++-------- fs/xfs/xfs_vnodeops.c | 4 ++-- 16 files changed, 40 insertions(+), 55 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 969fd15..704418a 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -596,7 +596,7 @@ _xfs_buf_read( bp->b_flags |= flags & (XBF_READ | XBF_ASYNC | XBF_READ_AHEAD); status = xfs_buf_iorequest(bp); - if (status || XFS_BUF_ISERROR(bp) || (flags & XBF_ASYNC)) + if (status || bp->b_error || (flags & XBF_ASYNC)) return status; return xfs_buf_iowait(bp); } @@ -1069,7 +1069,7 @@ xfs_bioerror( /* * No need to wait until the buffer is unpinned, we aren't flushing it. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); /* * We're calling xfs_buf_ioend, so delete XBF_DONE flag. @@ -1115,7 +1115,7 @@ xfs_bioerror_relse( * There's no reason to mark error for * ASYNC buffers. */ - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_FINISH_IOWAIT(bp); } else { xfs_buf_relse(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index d7df7b6..c14297c 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -245,10 +245,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDELAYWRITE(bp) xfs_buf_delwri_dequeue(bp) #define XFS_BUF_ISDELAYWRITE(bp) ((bp)->b_flags & XBF_DELWRI) -#define XFS_BUF_ERROR(bp,no) xfs_buf_ioerror(bp,no) -#define XFS_BUF_GETERROR(bp) xfs_buf_geterror(bp) -#define XFS_BUF_ISERROR(bp) (xfs_buf_geterror(bp) ? 1 : 0) - #define XFS_BUF_DONE(bp) ((bp)->b_flags |= XBF_DONE) #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 837f311..784019d 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -403,7 +403,7 @@ xfs_qm_dqalloc( dqp->q_blkno, mp->m_quotainfo->qi_dqchunklen, 0); - if (!bp || (error = XFS_BUF_GETERROR(bp))) + if (!bp || (error = xfs_buf_geterror(bp))) goto error1; /* * Make a chunk of dquots out of this buffer and log diff --git a/fs/xfs/xfs_alloc.c b/fs/xfs/xfs_alloc.c index 1e00b3e..bdd9cb5 100644 --- a/fs/xfs/xfs_alloc.c +++ b/fs/xfs/xfs_alloc.c @@ -451,8 +451,7 @@ xfs_alloc_read_agfl( XFS_FSS_TO_BB(mp, 1), 0, &bp); if (error) return error; - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); XFS_BUF_SET_VTYPE_REF(bp, B_FS_AGFL, XFS_AGFL_REF); *bpp = bp; return 0; @@ -2116,7 +2115,7 @@ xfs_read_agf( if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!(*bpp)->b_error); agf = XFS_BUF_TO_AGF(*bpp); /* @@ -2168,7 +2167,7 @@ xfs_alloc_read_agf( return error; if (!*bpp) return 0; - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!(*bpp)->b_error); agf = XFS_BUF_TO_AGF(*bpp); pag = xfs_perag_get(mp, agno); diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c index cbae424..160bcdc 100644 --- a/fs/xfs/xfs_attr.c +++ b/fs/xfs/xfs_attr.c @@ -2121,8 +2121,7 @@ xfs_attr_rmtval_set(xfs_da_args_t *args) bp = xfs_buf_get(mp->m_ddev_targp, dblkno, blkcnt, XBF_LOCK | XBF_DONT_BLOCK); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); tmp = (valuelen < XFS_BUF_SIZE(bp)) ? valuelen : XFS_BUF_SIZE(bp); diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index cabf4b5..2b9fd38 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -275,8 +275,7 @@ xfs_btree_dup_cursor( return error; } new->bc_bufs[i] = bp; - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); } else new->bc_bufs[i] = NULL; } @@ -467,8 +466,7 @@ xfs_btree_get_bufl( ASSERT(fsbno != NULLFSBLOCK); d = XFS_FSB_TO_DADDR(mp, fsbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -491,8 +489,7 @@ xfs_btree_get_bufs( ASSERT(agbno != NULLAGBLOCK); d = XFS_AGB_TO_DADDR(mp, agno, agbno); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize, lock); - ASSERT(bp); - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); return bp; } @@ -632,7 +629,7 @@ xfs_btree_read_bufl( mp->m_bsize, lock, &bp))) { return error; } - ASSERT(!bp || !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); if (bp) XFS_BUF_SET_VTYPE_REF(bp, B_FS_MAP, refval); *bpp = bp; @@ -973,8 +970,7 @@ xfs_btree_get_buf_block( *bpp = xfs_trans_get_buf(cur->bc_tp, mp->m_ddev_targp, d, mp->m_bsize, flags); - ASSERT(*bpp); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); *block = XFS_BUF_TO_BLOCK(*bpp); return 0; @@ -1006,8 +1002,7 @@ xfs_btree_read_buf_block( if (error) return error; - ASSERT(*bpp != NULL); - ASSERT(!XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); xfs_btree_set_refs(cur, *bpp); *block = XFS_BUF_TO_BLOCK(*bpp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 8849291..38417ab 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -960,7 +960,7 @@ xfs_buf_iodone_callbacks( static ulong lasttime; static xfs_buftarg_t *lasttarg; - if (likely(!XFS_BUF_GETERROR(bp))) + if (likely(!xfs_buf_geterror(bp))) goto do_callbacks; /* @@ -991,7 +991,7 @@ xfs_buf_iodone_callbacks( * around. */ if (XFS_BUF_ISASYNC(bp)) { - XFS_BUF_ERROR(bp, 0); /* errno of 0 unsets the flag */ + xfs_buf_ioerror(bp, 0); /* errno of 0 unsets the flag */ if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 2925726..5d9290d 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2040,7 +2040,7 @@ xfs_da_do_buf( case 0: bp = xfs_trans_get_buf(trans, mp->m_ddev_targp, mappedbno, nmapped, 0); - error = bp ? XFS_BUF_GETERROR(bp) : XFS_ERROR(EIO); + error = bp ? bp->b_error : XFS_ERROR(EIO); break; case 1: case 2: diff --git a/fs/xfs/xfs_ialloc.c b/fs/xfs/xfs_ialloc.c index dd5628b..9f24ec2 100644 --- a/fs/xfs/xfs_ialloc.c +++ b/fs/xfs/xfs_ialloc.c @@ -202,8 +202,7 @@ xfs_ialloc_inode_init( fbuf = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, mp->m_bsize * blks_per_cluster, XBF_LOCK); - ASSERT(fbuf); - ASSERT(!XFS_BUF_GETERROR(fbuf)); + ASSERT(!xfs_buf_geterror(fbuf)); /* * Initialize all inodes in this buffer and then log them. @@ -1486,7 +1485,7 @@ xfs_read_agi( if (error) return error; - ASSERT(*bpp && !XFS_BUF_GETERROR(*bpp)); + ASSERT(!xfs_buf_geterror(*bpp)); agi = XFS_BUF_TO_AGI(*bpp); /* diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 3cc21dd..bdb47b2 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2473,7 +2473,7 @@ cluster_corrupt_out: if (bp->b_iodone) { XFS_BUF_UNDONE(bp); XFS_BUF_STALE(bp); - XFS_BUF_ERROR(bp,EIO); + xfs_buf_ioerror(bp, EIO); xfs_buf_ioend(bp, 0); } else { XFS_BUF_STALE(bp); diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 3ee0fa9..7da3dd5 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -878,7 +878,7 @@ xlog_iodone(xfs_buf_t *bp) /* * Race to shutdown the filesystem if we see an error. */ - if (XFS_TEST_ERROR((XFS_BUF_GETERROR(bp)), l->l_mp, + if (XFS_TEST_ERROR((xfs_buf_geterror(bp)), l->l_mp, XFS_ERRTAG_IODONE_IOERR, XFS_RANDOM_IODONE_IOERR)) { xfs_ioerror_alert("xlog_iodone", l->l_mp, bp, XFS_BUF_ADDR(bp)); XFS_BUF_STALE(bp); @@ -1249,7 +1249,7 @@ xlog_bdstrat( bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); if (iclog->ic_state & XLOG_STATE_IOERROR) { - XFS_BUF_ERROR(bp, EIO); + xfs_buf_ioerror(bp, EIO); XFS_BUF_STALE(bp); xfs_buf_ioend(bp, 0); /* diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 301508b..7d96b69 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -359,7 +359,7 @@ STATIC void xlog_recover_iodone( struct xfs_buf *bp) { - if (XFS_BUF_GETERROR(bp)) { + if (bp->b_error) { /* * We're not going to bother about retrying * this during recovery. One strike! @@ -2134,15 +2134,14 @@ xlog_recover_buffer_pass2( bp = xfs_buf_read(mp->m_ddev_targp, buf_f->blf_blkno, buf_f->blf_len, buf_flags); - if (XFS_BUF_ISERROR(bp)) { + error = xfs_buf_geterror(bp); + if (error) { xfs_ioerror_alert("xlog_recover_do..(read#1)", mp, bp, buf_f->blf_blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); return error; } - error = 0; if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); } else if (buf_f->blf_flags & @@ -2226,14 +2225,13 @@ xlog_recover_inode_pass2( bp = xfs_buf_read(mp->m_ddev_targp, in_f->ilf_blkno, in_f->ilf_len, XBF_LOCK); - if (XFS_BUF_ISERROR(bp)) { + error = xfs_buf_geterror(bp); + if (error) { xfs_ioerror_alert("xlog_recover_do..(read#2)", mp, bp, in_f->ilf_blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); goto error; } - error = 0; ASSERT(in_f->ilf_fields & XFS_ILOG_CORE); dip = (xfs_dinode_t *)xfs_buf_offset(bp, in_f->ilf_boffset); diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index 8f76fdf..cb8132c 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -883,7 +883,7 @@ xfs_rtbuf_get( if (error) { return error; } - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); *bpp = bp; return 0; } diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index d6d6fdf..d1f76f8 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -106,7 +106,7 @@ xfs_ioerror_alert( " (\"%s\") error %d buf count %zd", XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), (__uint64_t)blkno, func, - XFS_BUF_GETERROR(bp), XFS_BUF_COUNT(bp)); + bp->b_error, XFS_BUF_COUNT(bp)); } /* @@ -137,8 +137,8 @@ xfs_read_buf( bp = xfs_buf_read(target, blkno, len, flags); if (!bp) return XFS_ERROR(EIO); - error = XFS_BUF_GETERROR(bp); - if (bp && !error && !XFS_FORCED_SHUTDOWN(mp)) { + error = bp->b_error; + if (!error && !XFS_FORCED_SHUTDOWN(mp)) { *bpp = bp; } else { *bpp = NULL; diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 1bc04d4..f9f1bf6 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -194,7 +194,7 @@ xfs_trans_get_buf(xfs_trans_t *tp, return NULL; } - ASSERT(!XFS_BUF_GETERROR(bp)); + ASSERT(!bp->b_error); _xfs_trans_bjoin(tp, bp, 1); trace_xfs_trans_get_buf(bp->b_fspriv); @@ -293,10 +293,10 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? EAGAIN : XFS_ERROR(ENOMEM); - if (XFS_BUF_GETERROR(bp) != 0) { + if (bp->b_error) { + error = bp->b_error; xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); - error = XFS_BUF_GETERROR(bp); xfs_buf_relse(bp); return error; } @@ -330,7 +330,7 @@ xfs_trans_read_buf( ASSERT(xfs_buf_islocked(bp)); ASSERT(bp->b_transp == tp); ASSERT(bp->b_fspriv != NULL); - ASSERT((XFS_BUF_ISERROR(bp)) == 0); + ASSERT(!bp->b_error); if (!(XFS_BUF_ISDONE(bp))) { trace_xfs_trans_read_buf_io(bp, _RET_IP_); ASSERT(!XFS_BUF_ISASYNC(bp)); @@ -386,10 +386,9 @@ xfs_trans_read_buf( return (flags & XBF_TRYLOCK) ? 0 : XFS_ERROR(ENOMEM); } - if (XFS_BUF_GETERROR(bp) != 0) { - XFS_BUF_SUPER_STALE(bp); - error = XFS_BUF_GETERROR(bp); - + if (bp->b_error) { + error = bp->b_error; + XFS_BUF_SUPER_STALE(bp); xfs_ioerror_alert("xfs_trans_read_buf", mp, bp, blkno); if (tp->t_flags & XFS_TRANS_DIRTY) diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 88d1214..3baebe2 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -83,7 +83,7 @@ xfs_readlink_bmap( bp = xfs_buf_read(mp->m_ddev_targp, d, BTOBB(byte_cnt), XBF_LOCK | XBF_MAPPED | XBF_DONT_BLOCK); - error = XFS_BUF_GETERROR(bp); + error = xfs_buf_geterror(bp); if (error) { xfs_ioerror_alert("xfs_readlink", ip->i_mount, bp, XFS_BUF_ADDR(bp)); @@ -1648,7 +1648,7 @@ xfs_symlink( byte_cnt = XFS_FSB_TO_B(mp, mval[n].br_blockcount); bp = xfs_trans_get_buf(tp, mp->m_ddev_targp, d, BTOBB(byte_cnt), 0); - ASSERT(bp && !XFS_BUF_GETERROR(bp)); + ASSERT(!xfs_buf_geterror(bp)); if (pathlen < byte_cnt) { byte_cnt = pathlen; } -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_102, J_CHICKENPOX_63,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNe0MR117597 for ; Fri, 22 Jul 2011 18:40:00 -0500 X-ASG-Debug-ID: 1311377999-3a9002210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e4.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6629E8F9D7 for ; Fri, 22 Jul 2011 16:39:59 -0700 (PDT) Received: from e4.ny.us.ibm.com (e4.ny.us.ibm.com [32.97.182.144]) by cuda.sgi.com with ESMTP id CXFbswl40dZCE83r for ; Fri, 22 Jul 2011 16:39:59 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay03.pok.ibm.com (d01relay03.pok.ibm.com [9.56.227.235]) by e4.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNHYuH016815 for ; Fri, 22 Jul 2011 19:17:34 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay03.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNdx85178582 for ; Fri, 22 Jul 2011 19:39:59 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MJdkoZ007585 for ; Fri, 22 Jul 2011 16:39:46 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MJdj08007581; Fri, 22 Jul 2011 16:39:46 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:39:57 -0700 Message-Id: <20110722233957.14612.8415.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 04/12 v3] xfs: Remove macro XFS_BUF_BUSY and family Subject: [PATCH 04/12 v3] xfs: Remove macro XFS_BUF_BUSY and family X-Barracuda-Connect: e4.ny.us.ibm.com[32.97.182.144] X-Barracuda-Start-Time: 1311378000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definitions and uses of the macros XFS_BUF_BUSY, XFS_BUF_UNBUSY, and XFS_BUF_ISBUSY. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 1 - fs/xfs/linux-2.6/xfs_buf.h | 4 ---- fs/xfs/quota/xfs_dquot.c | 4 ---- fs/xfs/xfs_buf_item.c | 2 -- fs/xfs/xfs_log.c | 4 ---- fs/xfs/xfs_log_recover.c | 2 -- fs/xfs/xfs_trans_buf.c | 9 --------- 7 files changed, 0 insertions(+), 26 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 704418a..ae2c2e7 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -679,7 +679,6 @@ xfs_buf_read_uncached( /* set up the buffer for a read IO */ XFS_BUF_SET_ADDR(bp, daddr); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); xfsbdstrat(mp, bp); error = xfs_buf_iowait(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index c14297c..ce5c7e2 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -249,10 +249,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNDONE(bp) ((bp)->b_flags &= ~XBF_DONE) #define XFS_BUF_ISDONE(bp) ((bp)->b_flags & XBF_DONE) -#define XFS_BUF_BUSY(bp) do { } while (0) -#define XFS_BUF_UNBUSY(bp) do { } while (0) -#define XFS_BUF_ISBUSY(bp) (1) - #define XFS_BUF_ASYNC(bp) ((bp)->b_flags |= XBF_ASYNC) #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 784019d..0e12861 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -318,7 +318,6 @@ xfs_qm_init_dquot_blk( int curid, i; ASSERT(tp); - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); @@ -534,7 +533,6 @@ xfs_qm_dqtobp( return XFS_ERROR(error); } - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); /* @@ -553,7 +551,6 @@ xfs_qm_dqtobp( xfs_trans_brelse(tp, bp); return XFS_ERROR(EIO); } - XFS_BUF_BUSY(bp); /* We dirtied this */ } *O_bpp = bp; @@ -622,7 +619,6 @@ xfs_qm_dqread( * this particular dquot was repaired. We still aren't afraid to * brelse it because we have the changes incore. */ - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); xfs_trans_brelse(tp, bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 38417ab..9e9b4a7 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -371,7 +371,6 @@ xfs_buf_item_pin( { struct xfs_buf_log_item *bip = BUF_ITEM(lip); - ASSERT(XFS_BUF_ISBUSY(bip->bli_buf)); ASSERT(atomic_read(&bip->bli_refcount) > 0); ASSERT((bip->bli_flags & XFS_BLI_LOGGED) || (bip->bli_flags & XFS_BLI_STALE)); @@ -895,7 +894,6 @@ xfs_buf_attach_iodone( { xfs_log_item_t *head_lip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); lip->li_cb = cb; diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 7da3dd5..d147ae5 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1051,7 +1051,6 @@ xlog_alloc_log(xfs_mount_t *mp, if (!bp) goto out_free_log; bp->b_iodone = xlog_iodone; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(xfs_buf_islocked(bp)); log->l_xbuf = bp; @@ -1108,7 +1107,6 @@ xlog_alloc_log(xfs_mount_t *mp, iclog->ic_callback_tail = &(iclog->ic_callback); iclog->ic_datap = (char *)iclog->ic_data + log->l_iclog_hsize; - ASSERT(XFS_BUF_ISBUSY(iclog->ic_bp)); ASSERT(xfs_buf_islocked(iclog->ic_bp)); init_waitqueue_head(&iclog->ic_force_wait); init_waitqueue_head(&iclog->ic_write_wait); @@ -1355,7 +1353,6 @@ xlog_sync(xlog_t *log, } XFS_BUF_SET_COUNT(bp, count); bp->b_fspriv = iclog; - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; @@ -1401,7 +1398,6 @@ xlog_sync(xlog_t *log, XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ (__psint_t)count), split); bp->b_fspriv = iclog; - XFS_BUF_BUSY(bp); XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 7d96b69..b07482c 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -178,7 +178,6 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); - XFS_BUF_BUSY(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); @@ -265,7 +264,6 @@ xlog_bwrite( ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); - XFS_BUF_BUSY(bp); XFS_BUF_HOLD(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index f9f1bf6..7dd62e2 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -80,7 +80,6 @@ _xfs_trans_bjoin( { struct xfs_buf_log_item *bip; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == NULL); /* @@ -580,7 +579,6 @@ xfs_trans_bhold(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); @@ -601,7 +599,6 @@ xfs_trans_bhold_release(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); @@ -630,7 +627,6 @@ xfs_trans_log_buf(xfs_trans_t *tp, { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT((first <= last) && (last < XFS_BUF_COUNT(bp))); @@ -701,7 +697,6 @@ xfs_trans_binval( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -773,7 +768,6 @@ xfs_trans_inode_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -797,7 +791,6 @@ xfs_trans_stale_inode_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -822,7 +815,6 @@ xfs_trans_inode_alloc_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(atomic_read(&bip->bli_refcount) > 0); @@ -850,7 +842,6 @@ xfs_trans_dquot_buf( { xfs_buf_log_item_t *bip = bp->b_fspriv; - ASSERT(XFS_BUF_ISBUSY(bp)); ASSERT(bp->b_transp == tp); ASSERT(bip != NULL); ASSERT(type == XFS_BLF_UDQUOT_BUF || -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNeDnZ117636 for ; Fri, 22 Jul 2011 18:40:13 -0500 X-ASG-Debug-ID: 1311378011-21c802480000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e3.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C639FEF70D1 for ; Fri, 22 Jul 2011 16:40:11 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.143]) by cuda.sgi.com with ESMTP id k0CcgDkxVNINJ05k for ; Fri, 22 Jul 2011 16:40:11 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNGbXl013011 for ; Fri, 22 Jul 2011 19:16:37 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNeAC01454326 for ; Fri, 22 Jul 2011 19:40:10 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MJdwut008320 for ; Fri, 22 Jul 2011 16:39:58 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MJdvhJ008307; Fri, 22 Jul 2011 16:39:58 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:09 -0700 Message-Id: <20110722234009.14612.5288.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 06/12 v3] xfs: Remove macro XFS_BUF_SET_START Subject: [PATCH 06/12 v3] xfs: Remove macro XFS_BUF_SET_START X-Barracuda-Connect: e3.ny.us.ibm.com[32.97.182.143] X-Barracuda-Start-Time: 1311378012 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_SET_START. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.h | 2 -- fs/xfs/xfs_buf_item.c | 1 - 2 files changed, 0 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 1828b29..6758697 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,8 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_SET_START(bp) do { } while (0) - #define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a6dd497..bd4c62b 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -994,7 +994,6 @@ xfs_buf_iodone_callbacks( if (!XFS_BUF_ISSTALE(bp)) { XFS_BUF_DELAYWRITE(bp); XFS_BUF_DONE(bp); - XFS_BUF_SET_START(bp); } ASSERT(bp->b_iodone != NULL); trace_xfs_buf_item_iodone_async(bp, _RET_IP_); -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:24 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNeOLY117669 for ; Fri, 22 Jul 2011 18:40:24 -0500 X-ASG-Debug-ID: 1311378023-3e3202110000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e35.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 36E5E8F9E3 for ; Fri, 22 Jul 2011 16:40:23 -0700 (PDT) Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by cuda.sgi.com with ESMTP id 9w1viB0a4VhW3enr for ; Fri, 22 Jul 2011 16:40:23 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e35.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNLObj020938 for ; Fri, 22 Jul 2011 17:21:24 -0600 Received: from d03av04.boulder.ibm.com (d03av04.boulder.ibm.com [9.17.195.170]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNeNGE206794 for ; Fri, 22 Jul 2011 17:40:23 -0600 Received: from d03av04.boulder.ibm.com (loopback [127.0.0.1]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MHeMZE025168 for ; Fri, 22 Jul 2011 11:40:22 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av04.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MHeMk4025156; Fri, 22 Jul 2011 11:40:22 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:22 -0700 Message-Id: <20110722234021.14612.46023.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 08/12 v3] xfs: Remove the macro XFS_BUF_SET_PTR Subject: [PATCH 08/12 v3] xfs: Remove the macro XFS_BUF_SET_PTR X-Barracuda-Connect: e35.co.us.ibm.com[32.97.110.153] X-Barracuda-Start-Time: 1311378024 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_SET_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log.c | 4 ++-- fs/xfs/xfs_log_recover.c | 4 ++-- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6ae7bde..7b1f484 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,7 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) #define XFS_BUF_OFFSET(bp) ((bp)->b_file_offset) diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 99680d3..923f84a 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1395,8 +1395,8 @@ xlog_sync(xlog_t *log, if (split) { bp = iclog->ic_log->l_xbuf; XFS_BUF_SET_ADDR(bp, 0); /* logical 0 */ - XFS_BUF_SET_PTR(bp, (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ - (__psint_t)count), split); + xfs_buf_associate_memory(bp, + (void *)&iclog->ic_header + count, split); bp->b_fspriv = iclog; XFS_BUF_ASYNC(bp); bp->b_flags |= XBF_SYNCIO; diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index c37c1ea..d1fdef9 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -223,14 +223,14 @@ xlog_bread_offset( int orig_len = bp->b_buffer_length; int error, error2; - error = XFS_BUF_SET_PTR(bp, offset, BBTOB(nbblks)); + error = xfs_buf_associate_memory(bp, offset, BBTOB(nbblks)); if (error) return error; error = xlog_bread_noalign(log, blk_no, nbblks, bp); /* must reset buffer pointer even on error */ - error2 = XFS_BUF_SET_PTR(bp, orig_offset, orig_len); + error2 = xfs_buf_associate_memory(bp, orig_offset, orig_len); if (error) return error; return error2; -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNeU4Q117692 for ; Fri, 22 Jul 2011 18:40:31 -0500 X-ASG-Debug-ID: 1311378029-3e2f021f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e35.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8FB748F9E7 for ; Fri, 22 Jul 2011 16:40:30 -0700 (PDT) Received: from e35.co.us.ibm.com (e35.co.us.ibm.com [32.97.110.153]) by cuda.sgi.com with ESMTP id G55zeQDpazG7WtQ2 for ; Fri, 22 Jul 2011 16:40:30 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay01.boulder.ibm.com (d03relay01.boulder.ibm.com [9.17.195.226]) by e35.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNLUJC020982 for ; Fri, 22 Jul 2011 17:21:30 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay01.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNeTcl138958 for ; Fri, 22 Jul 2011 17:40:29 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MHe1pM029516 for ; Fri, 22 Jul 2011 11:40:01 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MHe0iE029438; Fri, 22 Jul 2011 11:40:01 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:27 -0700 Message-Id: <20110722234027.14612.72625.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 09/12 v3] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Subject: [PATCH 09/12 v3] Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned X-Barracuda-Connect: e35.co.us.ibm.com[32.97.110.153] X-Barracuda-Start-Time: 1311378030 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Replace the macro XFS_BUF_ISPINNED with an inline helper function xfs_buf_ispinned, and change all its usages. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 5 ++++- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/quota/xfs_dquot.c | 4 ++-- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_inode.c | 2 +- 6 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 6a42f71..5e929f0 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1677,7 +1677,7 @@ xfs_buf_delwri_split( list_for_each_entry_safe(bp, n, dwq, b_list) { ASSERT(bp->b_flags & XBF_DELWRI); - if (!XFS_BUF_ISPINNED(bp) && xfs_buf_trylock(bp)) { + if (!xfs_buf_ispinned(bp) && xfs_buf_trylock(bp)) { if (!force && time_before(jiffies, bp->b_queuetime + age)) { xfs_buf_unlock(bp); diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 7b1f484..a1a7846 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -280,7 +280,10 @@ xfs_buf_set_ref( #define XFS_BUF_SET_VTYPE_REF(bp, type, ref) xfs_buf_set_ref(bp, ref) #define XFS_BUF_SET_VTYPE(bp, type) do { } while (0) -#define XFS_BUF_ISPINNED(bp) atomic_read(&((bp)->b_pin_count)) +static inline int xfs_buf_ispinned(struct xfs_buf *bp) +{ + return atomic_read(&bp->b_pin_count); +} #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); diff --git a/fs/xfs/linux-2.6/xfs_sync.c b/fs/xfs/linux-2.6/xfs_sync.c index 5cc158e..a8500e9 100644 --- a/fs/xfs/linux-2.6/xfs_sync.c +++ b/fs/xfs/linux-2.6/xfs_sync.c @@ -330,7 +330,7 @@ xfs_sync_fsdata( * between there and here. */ bp = xfs_getsb(mp, 0); - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); return xfs_bwrite(mp, bp); diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 2e06292..db62959 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -1236,7 +1236,7 @@ xfs_qm_dqflush( * If the buffer is pinned then push on the log so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) { + if (xfs_buf_ispinned(bp)) { trace_xfs_dqflush_force(dqp); xfs_log_force(mp, 0); } @@ -1443,7 +1443,7 @@ xfs_qm_dqflock_pushbuf_wait( goto out_lock; if (XFS_BUF_ISDELAYWRITE(bp)) { - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); xfs_buf_delwri_promote(bp); wake_up_process(bp->b_target->bt_task); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a16c24c..a3d2bbc 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -478,7 +478,7 @@ xfs_buf_item_trylock( struct xfs_buf_log_item *bip = BUF_ITEM(lip); struct xfs_buf *bp = bip->bli_buf; - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) return XFS_ITEM_PINNED; if (!xfs_buf_trylock(bp)) return XFS_ITEM_LOCKED; diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index bdb47b2..76ee2c5 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2585,7 +2585,7 @@ xfs_iflush( * If the buffer is pinned then push on the log now so we won't * get stuck waiting in the write for too long. */ - if (XFS_BUF_ISPINNED(bp)) + if (xfs_buf_ispinned(bp)) xfs_log_force(mp, 0); /* -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNebQN117710 for ; Fri, 22 Jul 2011 18:40:37 -0500 X-ASG-Debug-ID: 1311378036-182d02bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1230AEF70DB for ; Fri, 22 Jul 2011 16:40:36 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id dMar7KMydJWZaWW0 for ; Fri, 22 Jul 2011 16:40:36 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNJNTa015579 for ; Fri, 22 Jul 2011 19:19:23 -0400 Received: from d01av03.pok.ibm.com (d01av03.pok.ibm.com [9.56.224.217]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNeZI01744944 for ; Fri, 22 Jul 2011 19:40:35 -0400 Received: from d01av03.pok.ibm.com (loopback [127.0.0.1]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MJeNpB008843 for ; Fri, 22 Jul 2011 16:40:23 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av03.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MJeLjO008816; Fri, 22 Jul 2011 16:40:22 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:33 -0700 Message-Id: <20110722234033.14612.80261.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 10/12 v3] xfs: Remove the macro XFS_BUF_SET_TARGET Subject: [PATCH 10/12 v3] xfs: Remove the macro XFS_BUF_SET_TARGET X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1311378037 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the macro XFS_BUF_SET_TARGET. hch: As all the buffer allocator already set ->b_target it should be safe to simply remove these calls. Signed-off-by: Chandra Seetharaman Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_log_recover.c | 2 -- 2 files changed, 0 insertions(+), 3 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index a1a7846..d655883 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -287,7 +287,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_SET_TARGET(bp, target) ((bp)->b_target = (target)) #define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index d1fdef9..3bafd93 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -179,7 +179,6 @@ xlog_bread_noalign( XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); XFS_BUF_READ(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); xfsbdstrat(log->l_mp, bp); error = xfs_buf_iowait(bp); @@ -267,7 +266,6 @@ xlog_bwrite( xfs_buf_hold(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); - XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); if ((error = xfs_bwrite(log->l_mp, bp))) xfs_ioerror_alert("xlog_bwrite", log->l_mp, -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:43 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_102 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNegTs117727 for ; Fri, 22 Jul 2011 18:40:42 -0500 X-ASG-Debug-ID: 1311378042-3e2f02210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e3.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7D32B8F9EA for ; Fri, 22 Jul 2011 16:40:42 -0700 (PDT) Received: from e3.ny.us.ibm.com (e3.ny.us.ibm.com [32.97.182.143]) by cuda.sgi.com with ESMTP id KVP3UYDhaY3Kcts1 for ; Fri, 22 Jul 2011 16:40:42 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e3.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNH8w2013202 for ; Fri, 22 Jul 2011 19:17:08 -0400 Received: from d01av02.pok.ibm.com (d01av02.pok.ibm.com [9.56.224.216]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNef5J1634544 for ; Fri, 22 Jul 2011 19:40:41 -0400 Received: from d01av02.pok.ibm.com (loopback [127.0.0.1]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNefUZ027964 for ; Fri, 22 Jul 2011 20:40:41 -0300 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av02.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNeeeV027929; Fri, 22 Jul 2011 20:40:41 -0300 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:40 -0700 Message-Id: <20110722234040.14612.21801.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 11/12 v3] xfs: Remove the macro XFS_BUF_TARGET Subject: [PATCH 11/12 v3] xfs: Remove the macro XFS_BUF_TARGET X-Barracuda-Connect: e3.ny.us.ibm.com[32.97.182.143] X-Barracuda-Start-Time: 1311378042 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_TARGET Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_rw.c | 2 +- fs/xfs/xfs_trans_buf.c | 2 +- 5 files changed, 6 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index d655883..c3a9e68 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -287,7 +287,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUF_TARGET(bp) ((bp)->b_target) #define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) static inline void xfs_buf_relse(xfs_buf_t *bp) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index a3d2bbc..5c2b554 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -971,14 +971,14 @@ xfs_buf_iodone_callbacks( goto do_callbacks; } - if (XFS_BUF_TARGET(bp) != lasttarg || + if (bp->b_target != lasttarg || time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } - lasttarg = XFS_BUF_TARGET(bp); + lasttarg = bp->b_target; /* * If the write was asynchronous then no one will be looking for the diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index b00c808..49ecc17 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1615,7 +1615,7 @@ xfs_unmountfs_writesb(xfs_mount_t *mp) XFS_BUF_UNDELAYWRITE(sbp); XFS_BUF_WRITE(sbp); XFS_BUF_UNASYNC(sbp); - ASSERT(XFS_BUF_TARGET(sbp) == mp->m_ddev_targp); + ASSERT(sbp->b_target == mp->m_ddev_targp); xfsbdstrat(mp, sbp); error = xfs_buf_iowait(sbp); if (error) diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index d1f76f8..7382bfe 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(XFS_BUF_TARGET(bp)), + XFS_BUFTARG_NAME(bp->b_target), (__uint64_t)blkno, func, bp->b_error, XFS_BUF_COUNT(bp)); } diff --git a/fs/xfs/xfs_trans_buf.c b/fs/xfs/xfs_trans_buf.c index 7dd62e2..137e2b9 100644 --- a/fs/xfs/xfs_trans_buf.c +++ b/fs/xfs/xfs_trans_buf.c @@ -54,7 +54,7 @@ xfs_trans_buf_item_match( list_for_each_entry(lidp, &tp->t_items, lid_trans) { blip = (struct xfs_buf_log_item *)lidp->lid_item; if (blip->bli_item.li_type == XFS_LI_BUF && - XFS_BUF_TARGET(blip->bli_buf) == target && + blip->bli_buf->b_target == target && XFS_BUF_ADDR(blip->bli_buf) == blkno && XFS_BUF_COUNT(blip->bli_buf) == len) return blip->bli_buf; -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:40:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNemmI117743 for ; Fri, 22 Jul 2011 18:40:48 -0500 X-ASG-Debug-ID: 1311378047-3e3102250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e2.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 60B648F9EB for ; Fri, 22 Jul 2011 16:40:47 -0700 (PDT) Received: from e2.ny.us.ibm.com (e2.ny.us.ibm.com [32.97.182.142]) by cuda.sgi.com with ESMTP id HVot1yjHn28Vq84I for ; Fri, 22 Jul 2011 16:40:47 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay04.pok.ibm.com (d01relay04.pok.ibm.com [9.56.227.236]) by e2.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNJYc2015665 for ; Fri, 22 Jul 2011 19:19:34 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay04.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNellF139080 for ; Fri, 22 Jul 2011 19:40:47 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNelbi003823 for ; Fri, 22 Jul 2011 19:40:47 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNekK5003726; Fri, 22 Jul 2011 19:40:46 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:46 -0700 Message-Id: <20110722234046.14612.14373.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 12/12 v3] xfs: Remove the macro XFS_BUFTARG_NAME Subject: [PATCH 12/12 v3] xfs: Remove the macro XFS_BUFTARG_NAME X-Barracuda-Connect: e2.ny.us.ibm.com[32.97.182.142] X-Barracuda-Start-Time: 1311378048 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUFTARG_NAME. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 11 +++++++---- fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_rw.c | 2 +- 4 files changed, 10 insertions(+), 7 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index 5e929f0..6bddce4 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1480,7 +1480,7 @@ xfs_setsize_buftarg_flags( if (set_blocksize(btp->bt_bdev, sectorsize)) { xfs_warn(btp->bt_mount, "Cannot set_blocksize to %u on device %s\n", - sectorsize, XFS_BUFTARG_NAME(btp)); + sectorsize, xfs_buf_target_name(btp)); return EINVAL; } diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index c3a9e68..31a221d 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -228,8 +228,13 @@ extern void xfs_buf_delwri_promote(xfs_buf_t *); extern int xfs_buf_init(void); extern void xfs_buf_terminate(void); -#define xfs_buf_target_name(target) \ - ({ char __b[BDEVNAME_SIZE]; bdevname((target)->bt_bdev, __b); __b; }) +static inline const char * +xfs_buf_target_name(struct xfs_buftarg *target) +{ + static char __b[BDEVNAME_SIZE]; + + return bdevname(target->bt_bdev, __b); +} void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_STALE(bp) xfs_buf_stale(bp); @@ -287,8 +292,6 @@ static inline int xfs_buf_ispinned(struct xfs_buf *bp) #define XFS_BUF_FINISH_IOWAIT(bp) complete(&bp->b_iowait); -#define XFS_BUFTARG_NAME(target) xfs_buf_target_name(target) - static inline void xfs_buf_relse(xfs_buf_t *bp) { xfs_buf_unlock(bp); diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 5c2b554..0402173 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -975,7 +975,7 @@ xfs_buf_iodone_callbacks( time_after(jiffies, (lasttime + 5*HZ))) { lasttime = jiffies; xfs_alert(mp, "Device %s: metadata write error block 0x%llx", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)XFS_BUF_ADDR(bp)); } lasttarg = bp->b_target; diff --git a/fs/xfs/xfs_rw.c b/fs/xfs/xfs_rw.c index 7382bfe..c96a8a0 100644 --- a/fs/xfs/xfs_rw.c +++ b/fs/xfs/xfs_rw.c @@ -104,7 +104,7 @@ xfs_ioerror_alert( xfs_alert(mp, "I/O error occurred: meta-data dev %s block 0x%llx" " (\"%s\") error %d buf count %zd", - XFS_BUFTARG_NAME(bp->b_target), + xfs_buf_target_name(bp->b_target), (__uint64_t)blkno, func, bp->b_error, XFS_BUF_COUNT(bp)); } -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:41:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNfM4m117769 for ; Fri, 22 Jul 2011 18:41:22 -0500 X-ASG-Debug-ID: 1311378081-1297029c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e32.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E96911EED273 for ; Fri, 22 Jul 2011 16:41:21 -0700 (PDT) Received: from e32.co.us.ibm.com (e32.co.us.ibm.com [32.97.110.150]) by cuda.sgi.com with ESMTP id ivv0jcArtjvnsb97 for ; Fri, 22 Jul 2011 16:41:21 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e32.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MMVTUD005671 for ; Fri, 22 Jul 2011 16:31:29 -0600 Received: from d03av03.boulder.ibm.com (d03av03.boulder.ibm.com [9.17.195.169]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNe4pp142922 for ; Fri, 22 Jul 2011 17:40:04 -0600 Received: from d03av03.boulder.ibm.com (loopback [127.0.0.1]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MHe3Mk004786 for ; Fri, 22 Jul 2011 11:40:03 -0600 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av03.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MHe398004761; Fri, 22 Jul 2011 11:40:03 -0600 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:04 -0700 Message-Id: <20110722234003.14612.29595.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 05/12 v3] xfs: Remove macro XFS_BUF_HOLD Subject: [PATCH 05/12 v3] xfs: Remove macro XFS_BUF_HOLD X-Barracuda-Connect: e32.co.us.ibm.com[32.97.110.150] X-Barracuda-Start-Time: 1311378081 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usage of the macro XFS_BUF_HOLD Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/xfs_buf_item.c | 2 +- fs/xfs/xfs_log_recover.c | 2 +- fs/xfs/xfs_mount.c | 2 +- 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index ce5c7e2..1828b29 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -253,7 +253,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNASYNC(bp) ((bp)->b_flags &= ~XBF_ASYNC) #define XFS_BUF_ISASYNC(bp) ((bp)->b_flags & XBF_ASYNC) -#define XFS_BUF_HOLD(bp) xfs_buf_hold(bp) #define XFS_BUF_READ(bp) ((bp)->b_flags |= XBF_READ) #define XFS_BUF_UNREAD(bp) ((bp)->b_flags &= ~XBF_READ) #define XFS_BUF_ISREAD(bp) ((bp)->b_flags & XBF_READ) diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index 9e9b4a7..a6dd497 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -484,7 +484,7 @@ xfs_buf_item_trylock( return XFS_ITEM_LOCKED; /* take a reference to the buffer. */ - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(!(bip->bli_flags & XFS_BLI_STALE)); trace_xfs_buf_item_trylock(bip); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index b07482c..59f4237 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -264,7 +264,7 @@ xlog_bwrite( ASSERT(BBTOB(nbblks) <= XFS_BUF_SIZE(bp)); XFS_BUF_SET_ADDR(bp, log->l_logBBstart + blk_no); - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); xfs_buf_lock(bp); XFS_BUF_SET_COUNT(bp, BBTOB(nbblks)); XFS_BUF_SET_TARGET(bp, log->l_mp->m_logdev_targp); diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 7f25245..b00c808 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -1938,7 +1938,7 @@ xfs_getsb( xfs_buf_lock(bp); } - XFS_BUF_HOLD(bp); + xfs_buf_hold(bp); ASSERT(XFS_BUF_ISDONE(bp)); return bp; } -- 1.7.1 From sekharan@us.ibm.com Fri Jul 22 18:41:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, J_CHICKENPOX_56,J_CHICKENPOX_64,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6MNfZGi117788 for ; Fri, 22 Jul 2011 18:41:35 -0500 X-ASG-Debug-ID: 1311378093-21c7023f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e8.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C2F8BEF70EB for ; Fri, 22 Jul 2011 16:41:34 -0700 (PDT) Received: from e8.ny.us.ibm.com (e8.ny.us.ibm.com [32.97.182.138]) by cuda.sgi.com with ESMTP id pFuP9w5vsfwkos49 for ; Fri, 22 Jul 2011 16:41:34 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay06.pok.ibm.com (d01relay06.pok.ibm.com [9.56.227.116]) by e8.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6MNSuZv017885 for ; Fri, 22 Jul 2011 19:28:56 -0400 Received: from d01av04.pok.ibm.com (d01av04.pok.ibm.com [9.56.224.64]) by d01relay06.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6MNeGr11663092 for ; Fri, 22 Jul 2011 19:40:17 -0400 Received: from d01av04.pok.ibm.com (loopback [127.0.0.1]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6MNeGi7002581 for ; Fri, 22 Jul 2011 19:40:16 -0400 Received: from chandra-lucid.beaverton.ibm.com (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d01av04.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6MNeGjW002560; Fri, 22 Jul 2011 19:40:16 -0400 From: Chandra Seetharaman To: xfs@oss.sgi.com Cc: Chandra Seetharaman Date: Fri, 22 Jul 2011 16:40:15 -0700 Message-Id: <20110722234015.14612.16210.sendpatchset@chandra-lucid.beaverton.ibm.com> In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> X-ASG-Orig-Subj: [PATCH 07/12 v3] xfs: Remove the macro XFS_BUF_PTR Subject: [PATCH 07/12 v3] xfs: Remove the macro XFS_BUF_PTR X-Barracuda-Connect: e8.ny.us.ibm.com[32.97.182.138] X-Barracuda-Start-Time: 1311378094 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Remove the definition and usages of the macro XFS_BUF_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Reviewed-by: Alex Elder --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- fs/xfs/linux-2.6/xfs_buf.h | 1 - fs/xfs/quota/xfs_dquot.c | 6 +++--- fs/xfs/quota/xfs_qm.c | 2 +- fs/xfs/xfs_ag.h | 6 +++--- fs/xfs/xfs_bmap.c | 3 +-- fs/xfs/xfs_btree.h | 2 +- fs/xfs/xfs_buf_item.c | 6 +++--- fs/xfs/xfs_da_btree.c | 10 +++++----- fs/xfs/xfs_dinode.h | 2 +- fs/xfs/xfs_log.c | 2 +- fs/xfs/xfs_log_recover.c | 10 +++++----- fs/xfs/xfs_rtalloc.c | 30 +++++++++++++++--------------- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_sb.h | 2 +- fs/xfs/xfs_vnodeops.c | 6 +++--- 16 files changed, 45 insertions(+), 47 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index ae2c2e7..6a42f71 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1320,7 +1320,7 @@ xfs_buf_offset( struct page *page; if (bp->b_flags & XBF_MAPPED) - return XFS_BUF_PTR(bp) + offset; + return bp->b_addr + offset; offset += bp->b_offset; page = bp->b_pages[offset >> PAGE_SHIFT]; diff --git a/fs/xfs/linux-2.6/xfs_buf.h b/fs/xfs/linux-2.6/xfs_buf.h index 6758697..6ae7bde 100644 --- a/fs/xfs/linux-2.6/xfs_buf.h +++ b/fs/xfs/linux-2.6/xfs_buf.h @@ -261,7 +261,6 @@ void xfs_buf_stale(struct xfs_buf *bp); #define XFS_BUF_UNWRITE(bp) ((bp)->b_flags &= ~XBF_WRITE) #define XFS_BUF_ISWRITE(bp) ((bp)->b_flags & XBF_WRITE) -#define XFS_BUF_PTR(bp) (xfs_caddr_t)((bp)->b_addr) #define XFS_BUF_SET_PTR(bp, val, cnt) xfs_buf_associate_memory(bp, val, cnt) #define XFS_BUF_ADDR(bp) ((bp)->b_bn) #define XFS_BUF_SET_ADDR(bp, bno) ((bp)->b_bn = (xfs_daddr_t)(bno)) diff --git a/fs/xfs/quota/xfs_dquot.c b/fs/xfs/quota/xfs_dquot.c index 0e12861..2e06292 100644 --- a/fs/xfs/quota/xfs_dquot.c +++ b/fs/xfs/quota/xfs_dquot.c @@ -320,7 +320,7 @@ xfs_qm_init_dquot_blk( ASSERT(tp); ASSERT(xfs_buf_islocked(bp)); - d = (xfs_dqblk_t *)XFS_BUF_PTR(bp); + d = bp->b_addr; /* * ID of the first dquot in the block - id's are zero based. @@ -538,7 +538,7 @@ xfs_qm_dqtobp( /* * calculate the location of the dquot inside the buffer. */ - ddq = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddq = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot... @@ -1200,7 +1200,7 @@ xfs_qm_dqflush( /* * Calculate the location of the dquot inside the buffer. */ - ddqp = (struct xfs_disk_dquot *)(XFS_BUF_PTR(bp) + dqp->q_bufoffset); + ddqp = bp->b_addr + dqp->q_bufoffset; /* * A simple sanity check in case we got a corrupted dquot.. diff --git a/fs/xfs/quota/xfs_qm.c b/fs/xfs/quota/xfs_qm.c index 46e54ad..9a0aa76 100644 --- a/fs/xfs/quota/xfs_qm.c +++ b/fs/xfs/quota/xfs_qm.c @@ -1240,7 +1240,7 @@ xfs_qm_reset_dqcounts( do_div(j, sizeof(xfs_dqblk_t)); ASSERT(mp->m_quotainfo->qi_dqperchunk == j); #endif - ddq = (xfs_disk_dquot_t *)XFS_BUF_PTR(bp); + ddq = bp->b_addr; for (j = 0; j < mp->m_quotainfo->qi_dqperchunk; j++) { /* * Do a sanity check, and if needed, repair the dqblk. Don't diff --git a/fs/xfs/xfs_ag.h b/fs/xfs/xfs_ag.h index 6530769..4805f00 100644 --- a/fs/xfs/xfs_ag.h +++ b/fs/xfs/xfs_ag.h @@ -103,7 +103,7 @@ typedef struct xfs_agf { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGF_DADDR(mp) ((xfs_daddr_t)(1 << (mp)->m_sectbb_log)) #define XFS_AGF_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGF_DADDR(mp)) -#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGF(bp) ((xfs_agf_t *)((bp)->b_addr)) extern int xfs_read_agf(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, int flags, struct xfs_buf **bpp); @@ -156,7 +156,7 @@ typedef struct xfs_agi { /* disk block (xfs_daddr_t) in the AG */ #define XFS_AGI_DADDR(mp) ((xfs_daddr_t)(2 << (mp)->m_sectbb_log)) #define XFS_AGI_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGI_DADDR(mp)) -#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGI(bp) ((xfs_agi_t *)((bp)->b_addr)) extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, struct xfs_buf **bpp); @@ -168,7 +168,7 @@ extern int xfs_read_agi(struct xfs_mount *mp, struct xfs_trans *tp, #define XFS_AGFL_DADDR(mp) ((xfs_daddr_t)(3 << (mp)->m_sectbb_log)) #define XFS_AGFL_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_AGFL_DADDR(mp)) #define XFS_AGFL_SIZE(mp) ((mp)->m_sb.sb_sectsize / sizeof(xfs_agblock_t)) -#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_AGFL(bp) ((xfs_agfl_t *)((bp)->b_addr)) typedef struct xfs_agfl { __be32 agfl_bno[1]; /* actually XFS_AGFL_SIZE(mp) */ diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index c51a3f9..25cb2b2 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -3384,8 +3384,7 @@ xfs_bmap_local_to_extents( ASSERT(args.len == 1); *firstblock = args.fsbno; bp = xfs_btree_get_bufl(args.mp, tp, args.fsbno, 0); - memcpy((char *)XFS_BUF_PTR(bp), ifp->if_u1.if_data, - ifp->if_bytes); + memcpy(bp->b_addr, ifp->if_u1.if_data, ifp->if_bytes); xfs_trans_log_buf(tp, bp, 0, ifp->if_bytes - 1); xfs_bmap_forkoff_reset(args.mp, ip, whichfork); xfs_idata_realloc(ip, -ifp->if_bytes, whichfork); diff --git a/fs/xfs/xfs_btree.h b/fs/xfs/xfs_btree.h index 8d05a6a..5b240de 100644 --- a/fs/xfs/xfs_btree.h +++ b/fs/xfs/xfs_btree.h @@ -262,7 +262,7 @@ typedef struct xfs_btree_cur /* * Convert from buffer to btree block header. */ -#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_BLOCK(bp) ((struct xfs_btree_block *)((bp)->b_addr)) /* diff --git a/fs/xfs/xfs_buf_item.c b/fs/xfs/xfs_buf_item.c index bd4c62b..a16c24c 100644 --- a/fs/xfs/xfs_buf_item.c +++ b/fs/xfs/xfs_buf_item.c @@ -124,9 +124,9 @@ xfs_buf_item_log_check( bp = bip->bli_buf; ASSERT(XFS_BUF_COUNT(bp) > 0); - ASSERT(XFS_BUF_PTR(bp) != NULL); + ASSERT(bp->b_addr != NULL); orig = bip->bli_orig; - buffer = XFS_BUF_PTR(bp); + buffer = bp->b_addr; for (x = 0; x < XFS_BUF_COUNT(bp); x++) { if (orig[x] != buffer[x] && !btst(bip->bli_logged, x)) { xfs_emerg(bp->b_mount, @@ -725,7 +725,7 @@ xfs_buf_item_init( * to have logged. */ bip->bli_orig = (char *)kmem_alloc(XFS_BUF_COUNT(bp), KM_SLEEP); - memcpy(bip->bli_orig, XFS_BUF_PTR(bp), XFS_BUF_COUNT(bp)); + memcpy(bip->bli_orig, bp->b_addr, XFS_BUF_COUNT(bp)); bip->bli_logged = (char *)kmem_zalloc(XFS_BUF_COUNT(bp) / NBBY, KM_SLEEP); #endif diff --git a/fs/xfs/xfs_da_btree.c b/fs/xfs/xfs_da_btree.c index 5d9290d..d56ccb7 100644 --- a/fs/xfs/xfs_da_btree.c +++ b/fs/xfs/xfs_da_btree.c @@ -2258,7 +2258,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps) dabuf->nbuf = 1; bp = bps[0]; dabuf->bbcount = (short)BTOBB(XFS_BUF_COUNT(bp)); - dabuf->data = XFS_BUF_PTR(bp); + dabuf->data = bp->b_addr; dabuf->bps[0] = bp; } else { dabuf->nbuf = nbuf; @@ -2269,7 +2269,7 @@ xfs_da_buf_make(int nbuf, xfs_buf_t **bps) dabuf->data = kmem_alloc(BBTOB(dabuf->bbcount), KM_SLEEP); for (i = off = 0; i < nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = bps[i]; - memcpy((char *)dabuf->data + off, XFS_BUF_PTR(bp), + memcpy((char *)dabuf->data + off, bp->b_addr, XFS_BUF_COUNT(bp)); } } @@ -2292,8 +2292,8 @@ xfs_da_buf_clean(xfs_dabuf_t *dabuf) for (i = off = 0; i < dabuf->nbuf; i++, off += XFS_BUF_COUNT(bp)) { bp = dabuf->bps[i]; - memcpy(XFS_BUF_PTR(bp), (char *)dabuf->data + off, - XFS_BUF_COUNT(bp)); + memcpy(bp->b_addr, dabuf->data + off, + XFS_BUF_COUNT(bp)); } } } @@ -2330,7 +2330,7 @@ xfs_da_log_buf(xfs_trans_t *tp, xfs_dabuf_t *dabuf, uint first, uint last) ASSERT(dabuf->nbuf && dabuf->data && dabuf->bbcount && dabuf->bps[0]); if (dabuf->nbuf == 1) { - ASSERT(dabuf->data == (void *)XFS_BUF_PTR(dabuf->bps[0])); + ASSERT(dabuf->data == dabuf->bps[0]->b_addr); xfs_trans_log_buf(tp, dabuf->bps[0], first, last); return; } diff --git a/fs/xfs/xfs_dinode.h b/fs/xfs/xfs_dinode.h index dffba9b..a372163 100644 --- a/fs/xfs/xfs_dinode.h +++ b/fs/xfs/xfs_dinode.h @@ -148,7 +148,7 @@ typedef enum xfs_dinode_fmt { be32_to_cpu((dip)->di_nextents) : \ be16_to_cpu((dip)->di_anextents)) -#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_DINODE(bp) ((xfs_dinode_t *)((bp)->b_addr)) /* * For block and character special files the 32bit dev_t is stored at the diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index d147ae5..99680d3 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1402,7 +1402,7 @@ xlog_sync(xlog_t *log, bp->b_flags |= XBF_SYNCIO; if (log->l_mp->m_flags & XFS_MOUNT_BARRIER) bp->b_flags |= XBF_FUA; - dptr = XFS_BUF_PTR(bp); + dptr = bp->b_addr; /* * Bump the cycle numbers at the start of each block * since this part of the buffer is at the start of diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 59f4237..c37c1ea 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -147,7 +147,7 @@ xlog_align( xfs_daddr_t offset = blk_no & ((xfs_daddr_t)log->l_sectBBsize - 1); ASSERT(BBTOB(offset + nbblks) <= XFS_BUF_SIZE(bp)); - return XFS_BUF_PTR(bp) + BBTOB(offset); + return bp->b_addr + BBTOB(offset); } @@ -219,7 +219,7 @@ xlog_bread_offset( xfs_buf_t *bp, xfs_caddr_t offset) { - xfs_caddr_t orig_offset = XFS_BUF_PTR(bp); + xfs_caddr_t orig_offset = bp->b_addr; int orig_len = bp->b_buffer_length; int error, error2; @@ -1259,7 +1259,7 @@ xlog_write_log_records( */ ealign = round_down(end_block, sectbb); if (j == 0 && (start_block + endcount > ealign)) { - offset = XFS_BUF_PTR(bp) + BBTOB(ealign - start_block); + offset = bp->b_addr + BBTOB(ealign - start_block); error = xlog_bread_offset(log, ealign, sectbb, bp, offset); if (error) @@ -3432,7 +3432,7 @@ xlog_do_recovery_pass( /* * Check for header wrapping around physical end-of-log */ - offset = XFS_BUF_PTR(hbp); + offset = hbp->b_addr; split_hblks = 0; wrapped_hblks = 0; if (blk_no + hblks <= log->l_logBBsize) { @@ -3492,7 +3492,7 @@ xlog_do_recovery_pass( } else { /* This log record is split across the * physical end of log */ - offset = XFS_BUF_PTR(dbp); + offset = dbp->b_addr; split_bblks = 0; if (blk_no != log->l_logBBsize) { /* some data is before the physical diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c index cb8132c..35561a5 100644 --- a/fs/xfs/xfs_rtalloc.c +++ b/fs/xfs/xfs_rtalloc.c @@ -168,7 +168,7 @@ error_cancel: xfs_trans_cancel(tp, cancelflags); goto error; } - memset(XFS_BUF_PTR(bp), 0, mp->m_sb.sb_blocksize); + memset(bp->b_addr, 0, mp->m_sb.sb_blocksize); xfs_trans_log_buf(tp, bp, 0, mp->m_sb.sb_blocksize - 1); /* * Commit the transaction. @@ -943,7 +943,7 @@ xfs_rtcheck_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -994,7 +994,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1040,7 +1040,7 @@ xfs_rtcheck_range( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1158,7 +1158,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1210,7 +1210,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1256,7 +1256,7 @@ xfs_rtfind_back( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; word = XFS_BLOCKWMASK(mp); b = &bufp[word]; } else { @@ -1333,7 +1333,7 @@ xfs_rtfind_forw( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Get the first word's index & point to it. */ @@ -1384,7 +1384,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1429,7 +1429,7 @@ xfs_rtfind_forw( if (error) { return error; } - b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + b = bufp = bp->b_addr; word = 0; } else { /* @@ -1649,7 +1649,7 @@ xfs_rtmodify_range( if (error) { return error; } - bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + bufp = bp->b_addr; /* * Compute the starting word's address, and starting bit. */ @@ -1694,7 +1694,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1734,7 +1734,7 @@ xfs_rtmodify_range( if (error) { return error; } - first = b = bufp = (xfs_rtword_t *)XFS_BUF_PTR(bp); + first = b = bufp = bp->b_addr; word = 0; } else { /* @@ -1832,8 +1832,8 @@ xfs_rtmodify_summary( */ sp = XFS_SUMPTR(mp, bp, so); *sp += delta; - xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)XFS_BUF_PTR(bp)), - (uint)((char *)sp - (char *)XFS_BUF_PTR(bp) + sizeof(*sp) - 1)); + xfs_trans_log_buf(tp, bp, (uint)((char *)sp - (char *)bp->b_addr), + (uint)((char *)sp - (char *)bp->b_addr + sizeof(*sp) - 1)); return 0; } diff --git a/fs/xfs/xfs_rtalloc.h b/fs/xfs/xfs_rtalloc.h index 09e1f4f..f7f3a35 100644 --- a/fs/xfs/xfs_rtalloc.h +++ b/fs/xfs/xfs_rtalloc.h @@ -47,7 +47,7 @@ struct xfs_trans; #define XFS_SUMOFFSTOBLOCK(mp,s) \ (((s) * (uint)sizeof(xfs_suminfo_t)) >> (mp)->m_sb.sb_blocklog) #define XFS_SUMPTR(mp,bp,so) \ - ((xfs_suminfo_t *)((char *)XFS_BUF_PTR(bp) + \ + ((xfs_suminfo_t *)((bp)->b_addr + \ (((so) * (uint)sizeof(xfs_suminfo_t)) & XFS_BLOCKMASK(mp)))) #define XFS_BITTOBLOCK(mp,bi) ((bi) >> (mp)->m_blkbit_log) diff --git a/fs/xfs/xfs_sb.h b/fs/xfs/xfs_sb.h index 1eb2ba5..cb6ae71 100644 --- a/fs/xfs/xfs_sb.h +++ b/fs/xfs/xfs_sb.h @@ -509,7 +509,7 @@ static inline int xfs_sb_version_hasprojid32bit(xfs_sb_t *sbp) #define XFS_SB_DADDR ((xfs_daddr_t)0) /* daddr in filesystem/ag */ #define XFS_SB_BLOCK(mp) XFS_HDR_BLOCK(mp, XFS_SB_DADDR) -#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)XFS_BUF_PTR(bp)) +#define XFS_BUF_TO_SBP(bp) ((xfs_dsb_t *)((bp)->b_addr)) #define XFS_HDR_BLOCK(mp,d) ((xfs_agblock_t)XFS_BB_TO_FSBT(mp,d)) #define XFS_DADDR_TO_FSB(mp,d) XFS_AGB_TO_FSB(mp, \ diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c index 3baebe2..3ee5f8a 100644 --- a/fs/xfs/xfs_vnodeops.c +++ b/fs/xfs/xfs_vnodeops.c @@ -94,7 +94,7 @@ xfs_readlink_bmap( byte_cnt = pathlen; pathlen -= byte_cnt; - memcpy(link, XFS_BUF_PTR(bp), byte_cnt); + memcpy(link, bp->b_addr, byte_cnt); xfs_buf_relse(bp); } @@ -1654,7 +1654,7 @@ xfs_symlink( } pathlen -= byte_cnt; - memcpy(XFS_BUF_PTR(bp), cur_chunk, byte_cnt); + memcpy(bp->b_addr, cur_chunk, byte_cnt); cur_chunk += byte_cnt; xfs_trans_log_buf(tp, bp, 0, byte_cnt - 1); @@ -1999,7 +1999,7 @@ xfs_zero_remaining_bytes( mp, bp, XFS_BUF_ADDR(bp)); break; } - memset(XFS_BUF_PTR(bp) + + memset(bp->b_addr + (offset - XFS_FSB_TO_B(mp, imap.br_startoff)), 0, lastoffset - offset + 1); XFS_BUF_UNDONE(bp); -- 1.7.1 From Andy.Liu@malabs.com Fri Jul 22 20:04:05 2011 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6N14503123591 for ; Fri, 22 Jul 2011 20:04:05 -0500 X-ASG-Debug-ID: 1311382935-042f01840000-w1Z2WR X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from exchange.mail-incorporated.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D09D21EED6D3 for ; Fri, 22 Jul 2011 18:02:15 -0700 (PDT) Received: from exchange.mail-incorporated.com (exchange.mail-incorporated.com [67.125.29.208]) by cuda.sgi.com with ESMTP id IoQCFqnv3mCApkDY for ; Fri, 22 Jul 2011 18:02:15 -0700 (PDT) From: Andy Liu Date: Fri, 22 Jul 2011 17:30:12 -0700 X-ASG-Orig-Subj: --Malabs Inc--Acer ICONIA Tablet PC $379 Subject: --Malabs Inc--Acer ICONIA Tablet PC $379 Thread-Topic: --Malabs Inc--Acer ICONIA Tablet PC $379 Thread-Index: AcxIz67L/+6rwRpLRUmJfopPIDcNHQ== Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/related; boundary="_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_"; type="multipart/alternative" MIME-Version: 1.0 To: Undisclosed recipients:; X-Barracuda-Connect: exchange.mail-incorporated.com[67.125.29.208] X-Barracuda-Start-Time: 1311383042 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.85 X-Barracuda-Spam-Status: No, SCORE=-1.85 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=EXTRA_MPART_TYPE, HTML_IMAGE_RATIO_04, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69704 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 EXTRA_MPART_TYPE Header has extraneous Content-type:...type= entry 0.17 HTML_IMAGE_RATIO_04 BODY: HTML has a low ratio of text to image area 0.00 HTML_MESSAGE BODY: HTML included in message X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: multipart/alternative; boundary="_000_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_" --_000_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable [cid:image001.png@01CC4895.02637060] Andy Liu (hablo espa=F1ol) Account Manager 18725 San Jose Ave, City of Industry CA 91748 USA Direct Line: 626-839-8650 *Ext 115 Fax: 626-820-8188 Web site: http://www.malabs.com/aboutus_sp.asp Email: andy.liu@malabs.com MSN: andyliu@hotmail= .com Acer Iconia TAB A500-10S16U 10.1 inch NVIDIA Tegra 250/ 1GB/ 16GB/ Android 3.0 Honeycomb Tablet Comp http://www.malabs.com/product.asp?product_sku=3D38240&item_no=3DA50010S16U&= show=3Db&pass=3D&shopid=3D $419-$40=3D$379 c/u, pedido minimo 4 unidades, Nuevo en en caja cerrada. [cid:image002.png@01CC4895.02637060] [cid:image003.png@01CC4895.02637060] [cid:image004.png@01CC4895.02637060] [cid:image005.png@01CC4895.02637060] [cid:image006.png@01CC4895.02637060] [cid:image007.png@01CC4895.02637060] [cid:image008.png@01CC4895.02637060] [cid:image009.jpg@01CC4895.02637060] Julio/20/2011 Los precios y las fotos pueden variar sin previo aviso, Son e= xpresados en d=F3lares Americanos. ________________________________ This message may contain privileged and confidential information. If you ar= e not the intended recipient and have received this message in error, pleas= e notify the sender and delete it from your system. Any unauthorized use, d= isclosure or distribution of the material in this message is strictly prohi= bited. If you prefer not to receive promotional information from Sales, please for= ward the e-mail to unsubscribe@malabs.com. Be sure to include any other e-m= ail aliases to opt out. Note that it may take up to 48 hours to process you= r request. MA Labs, Inc. 2075 North Capitol Avenue San Jose, CA 95132 ________________________________ This message may contain privileged and confidential information. If you ar= e not the intended recipient and have received this message in error, pleas= e notify the sender and delete it from your system. Any unauthorized use, d= isclosure or distribution of the material in this message is strictly prohi= bited. If you prefer not to receive promotional information from Sales, please for= ward the e-mail to unsubscribe@malabs.com. Be sure to include any other e-m= ail aliases to opt out. Note that it may take up to 48 hours to process you= r request. MA Labs, Inc. 2075 North Capitol Avenue San Jose, CA 95132 --_000_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

3D"cid:image001.png@01CBD44=

 

Andy Liu (hablo espa=F1ol) Acco= unt Manager<= /span>

 =

18725 San Jose Ave, City of Industry CA 91748 USA

Direct Line: 626-839-8650 *Ext 115 Fax: 626-820-8188

 

Web site: http://www.malabs.com/aboutus_sp.asp

Email: andy.liu@malabs.com MSN: andyliu@hotmail.com

 

Acer Iconia TAB A500-10S16U

10.1 inch NVIDIA Tegra 250/ 1GB/ 16GB/ Android 3.0 Honeycomb T= ablet Comp

= http://www.malabs.com/product.asp?product_sku=3D38240&item_no=3DA50010S= 16U&show=3Db&pass=3D&shopid=3D

$419-$40=3D<= span style=3D"font-size:24.0pt;font-family:"Verdana","sans-s= erif";color:red">$379 c/u, pedido minimo 4 unidades, Nuevo en en caja cerrada.

 

 

 

3D"cid:ima=

3D"cid:imag=

 

3D"cid:ima=

3D"cid:imag=

3D"cid:imag=

3D"cid:imag=

3D"cid:ima=

3D"cid:ima=

 

Julio/20/20= 11 Los precios y las fotos pueden variar sin p= revio aviso, Son expresados en d=F3lares Americanos.

 

 

 

 

 



This message may contain pri= vileged and confidential information. If you are not the intended recipient= and have received this message in error, please notify the sender and dele= te it from your system. Any unauthorized use, disclosure or distribution of the material in this message is strictl= y prohibited.

If you prefer not to receive promotional information from Sales, please for= ward the e-mail to unsubscribe@malabs.com. Be sure to include any other e-m= ail aliases to opt out. Note that it may take up to 48 hours to process you= r request.

MA Labs, Inc.
2075 North Capitol Avenue
San Jose, CA 95132


This message may contain pri= vileged and confidential information. If you are not the intended recipient= and have received this message in error, please notify the sender and dele= te it from your system. Any unauthorized use, disclosure or distribution of the material in this message is strictl= y prohibited.

If you prefer not to receive promotional information from Sales, please for= ward the e-mail to unsubscribe@malabs.com. Be sure to include any other e-m= ail aliases to opt out. Note that it may take up to 48 hours to process you= r request.

MA Labs, Inc.
2075 North Capitol Avenue
San Jose, CA 95132
--_000_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_-- --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image001.png" Content-Description: image001.png Content-Disposition: inline; filename="image001.png"; size=19280; creation-date="Fri, 22 Jul 2011 17:30:53 GMT"; modification-date="Fri, 22 Jul 2011 17:30:53 GMT" Content-ID: Content-Transfer-Encoding: base64 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 CSsAAAAASUVORK5CYII= --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image002.png" Content-Description: image002.png Content-Disposition: inline; filename="image002.png"; size=118182; creation-date="Fri, 22 Jul 2011 17:30:53 GMT"; modification-date="Fri, 22 Jul 2011 17:30:53 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAnYAAADpCAIAAAAmme0RAAAAAXNSR0IArs4c6QAA/8pJREFUeF7s nQeAXFd1/t/02b6rVe9dVnORe+82tjEhIUBCJ4SEloT0kAoB/ml0SOi9mGoMxoDBDfciy0VW773v auv0mf/v3G/26nl2JUuuMp7n9ejNm/tuv+c77Z4bqVQqQf2q90C9B+o9UO+Bo+4BTzYjkchRv1RP +FLsgehLsdH1Ntd7oN4D9R6o90C9B577HojUpdjnvpPrJdR7oN4D9R6o98BLsQfqUuxLcdTrba73 QL0H6j1Q74HnoQfqEPs8dHK9iHoP1Hug3gP1Hngp9kBdUfxSHPV6m+s9UO+BY+qBun/TMXVXPbHv gTrE1idDvQfqPVDvgafogXK5rBTehbjuS1yfNEfTA3VF8dH0Uj1NvQfqPfCS7gGkWH+pI+qOoi/p CXHUja9D7FF31bOUsFQqFYtFPpVfucy3PJ/c2rdyUfdawNls1hfLb3roGWq/yOur/VkanHo29R6o 7QEWFyuOC7E1FovxuX79+vqKq0+Uo+yBOsQeZUc9a8lYpfF4nE+BJSuWr9FodSC4kQKqUCjwmU6n Pb/sf/IQy09AtTJ51upXz6jeA/UeGNYDLFgWoFbl5z73ue7ublAW7rjeVfUeOHIP1CH2+ZshJqI6 +dULowJI95WBqI4FvDJJksmkA1oSV80/uVwhn7clzWr3QrBqX+epn79RrJf0kuwBoSm8LNdvfvMb voK4YpTrV70HjtADdYh9/qaHFE1eGOUmkUhI9QR3PDAwMDiYFXZ6GZffgdienr5t27Zt3bo1l8vl 83nSe0wNZ/j8taReUr0HXmI9wKJjbaJwot0tLS3SG9W1Ry+xWfB0mlv3KH46vfbM3/GyrCA2nCGY CpICul1dXTu273rwofsfe+yxHTt2RCPxSZMn/OVf/sWiRYuUHglYGmYQt77an/mg1HOo98DwHpCX EwuNNctqRX79nd/5nc9//vNjxoxJpVL1Hqv3wJF7oA6xL8AMkfVUoKh16/Ay6O/v3bdv365dewDX 5cuXk2zzpq133HHHnr27WMztbaMaGlN/93d/97rX/YG4aQ+xL0Ab6kXWe+Cl0QMeYj0ve+GFF37v e98bNWqUrDn1q94DR+iBOsQ+T9NDC5XCvGcTX8FXzKsmre7YgSp4+/btO3fuBGUHBweRWSdOnNjb 2/vggw/29PSgm+ro6OjtO/imN73pL/7iz8JGoLoI+zwNYb2Yl2QPaOXCzsLXaq1ddNFFP/jBD5Bi 60vvJTkjjq3RdYg9tv56JqkdxJrsWiyWu7r279ixa+/evWvWrOFz165doCmIi7Ta1tYGoDY1tuBO vGHDhqVLl1IoD5uamrZt3/L2t7/tz/7sz+QkJaD1cvAzqVv93XoPPFUPsKnsOHfdqEaHGNaQp11t yxBUFZRK7YSi+Nprr/3CF74wZcqUuhrpqeZM/fegDrFPMQnCq0gGVMRQL4n6lw/tnMEtomx+wuZw GHUa4Io5EicTyd7e/j179jl5dcfmzRu3bNl24MABfsLpqbGxEQRtaGjgXiu5ubkFWH3ggfsB4PHj x7a2trJPYPXq1f/8T+975Stf6Rlqr7yqz+V6D4R7oHoKdMVmLG529lPZFjuqEzd7nQk/YhASCcpM 7GgsodcPGfWNizNfd5JXArzwbLMYXF3FWTkqvIa9g0zdNrNSpcxE9+uChaJVYllEggpLolRJxOJB pFwsVDeYFkp5y63qh2CpI2RCBSpRKlE2R3ojT8ZNRspDaptoaFN4SbAn5RDp8GrIFwusIGrmXJOs RW4lUq4VI70RDodqlXvNFR9Rb0VZqlSZV2IRq2o5KEUjUVyJyYG2eFJw+eWXf/3rX0fJ5DtcdQh3 IN8rgbVEPx2yCkWi9iRqHo5xKATV0LtR5z/lbof6pJqhkQi6zj0/ePBgR1u7cggPt79XJcmHt2IJ e4tx0QANV31RBxuCIWZ9xAzVb6q/7wHd4HqJqly9Kl9OBpr5UNAoDHH/SuwlAfb6IzxIMeD9Oq0D 3J4omcCoszqNVlSfhKphM2qoSiLIcvDW9Kt5pSYf6SSUUtXm3lPv6kQId4QazsQYesV3owrynRDm w56UQXhyHK6LX8rP1XF+MIZ3RXgJ2WCwsoxsVRfAYGYQaOzvG1y6dBlguWXLFgRW9MDkyTxjIiKw anIwcnxlyvLJyDU0NPK5desWUk6aNAEAfuihh5544okPffADl1xyiRZG3cXppTwzj9x2A5t4Agg0 UlIpQrzRnii8iYFtEAM1uYNYQWw0aR2oGTBwE3W7yNw0juZzxWQyHY3wiqGGYSZoCmpDkByCVqEk KJbKhVjUcNu9SD4FVwpJAPkoIEwpcf4LYlBX3mTW83M8lnQZQXOL8ZihKsFYQHyyoM4Vq60uK0+Z W01cDYEaA+NypJArNjU0UvFSuQiwGVlH+jT0p2TyLlYiZFUsB0XVLfJkidz0S1YETTYeogwQw04k AFyyMK9+uuaYILZvoL+5qZk8gQ1WNO9yg44qn80Z/DiALBWK4hIMaENYH4ZYUXAazE0i5Tby5fI+ hxHngG0FLJZkJ2YaJB2rQYnUQbsEqYYzUeXh6UMsi9GTGuGhv79fW/OhRdw3NzcLokxmeLIdWp0z 2D+AtKDWsf1B7mA0nFdIz40IHYmFr9ofoayUg8hpMV9NqQYKng8BPMM35CLKjTDbGps3ps3vaTRW IxKhGopDwK9UAEKqKvmNzqSRxKIZVnNZofi4lQ5BuJgDJVO2KnTEsXB5hvivwyWqP6/BM+P6h2JE hMVc48ISCfTAaH3379+/fcfWjRs3btq4BXDt7x+UEKwpxeTTjh0eClm5yJN7QeyoUZ1s42E0O+3q 4MVvfvPbO3du/8LnPzt//vwacK3DbX2K0gOiD0OAZHQgmyskU8AlUDdQCvqKwUA+GEQ4K5ahDHnI LGBkL5r0ATzZnC6XIHaReCzdkG5ujLSkgoZY0BQNmhELHbmHlkUrpWIsMCKIWFtEPrIXKtFEKRIU SkEGWKWUwVxfttBXruTALC2WfD7L3G5OtzUFo+JBWyLoyGUjqUQad4RILJpIxstBLl/KBhHEO+Cw vxxkMuXeXL6/AH4ihAXIlsipOXJLJZsbk+2xAAyjevylYgHCa6xUsIUZj8URrArlSpLMy8VKtBiJ DgbBQCHo4y9T6s/lMzTT6K4j3AAGXceqS8Qbm+OjU1a9jko5iTAIB2AgDSCHIPaKy0yKnTDpSFKs JiR0AB66KlkKFcoV0XfX7VVbjxHhYVKsJ/dw5OCWgA1yUQ1HMwySwxIw9x7UKYgckukUOcB1WWy5 shmkwgkUUkPynEdBAZ4XJVW6XlRKnnh84gkSdntbO5v3BzKDVDKdMtjLZDPcStkgpNR9mIJlMhnA XmIM4Oo1ecwsmzkhyV7tEl8i6IWBk8QM0IqEqmO5aDWsRmtbG1K1NQq+EcTNV4Ef6grcqib2OQxc NYLkH2Y76ChYHFSOgC6lU6Lg1g/ocLGnDrFPQZzDCBqeGZou4SeMaF/fwNp16/bs2QOyIrCiBy4U c26M3MJ3cZ3EUmkkeJ3FoyeWIh5nzKQxRlHc19fX3t4GwKbTSUD6E5/41LhxY770xc/zZDjkH4GN qsPPS6QHwhALQaPV+WIplmAK7t5xYNXGLcv2923PlTPFSg75CUkRYUc9gyYWSRfqxBx01AvuL5VO tabiTWNbx44dNX1M+9zWhvGpSHskSJUBREPjIsSGeRhPId2CrAMD5X2ZwoHHVy8byHb39fUM5sHX QiWaNykaUHcbvpF945WGzuYpM8efcsrcqxKVdvJg2peDfLbcn0iSz2BfYd+ufRu37lwzmD0wmOnJ FwbzRdsvnogl40mIqXEHkNlUsiWdGNXcNHrc2MkTOqdN7pgZD5oTQRs1KuQoqxJL0hyQNFcM+rZ3 rdl5YF1337aewb0DmT5ygC8wshtESqYFN5V3Al15pGXCqNmL51w4pfOUWNAKOpuMQqmJZFiKPRqI hcO+6667cIk699xzhZE0f9uWrbhWgCiiA5Br0XcT70x+PzRPTfB3X0lw3nnnYffVb9Tn8ccfX7t2 LZA8YnrTGaAhS6agHmPHjj3llFNwkwQXiVsDbenr6b3//vtxqFx80olw6tbzDiH4FFAZtwESD92T ADp29913T5o0CScvnDHvvffe8ePHUyUlVg4SSXly3z33fu1rX1u5ehVGrgvPv+Ad73hHc6txGCSr URST2Iu5oB39c99995G/WBD1CYpu66Vc3mYbioVYrCGVplBetLkUjdKiwWwGjf0FF1wAkNOxgvNV q1Z98pOfXLFiRSqRPPvss9mF0dTSDNzyFoNpo1+pSJT/yU9+wqf1v2dNn0wsYP7IVn0i2X3i+Ann n3++lPC+CeoEr9MO51GH2KcgvwyAJrpnvsJ8ChGXcPcF/3AGBlZ37dyzcfMmRsItHhsVXY4POuRz IayVFMvlJVebQwauzY6nM63OuHFmhSXA4rJly/7v//7vd3/3dz/w/n/16hSP08yAGg3PSwRU6s08 XA9AUJBWY/FIIdi3fOvNj629ecveR0qRvkRD2qiwCxlmbL2RauQ07kzHgtjm1FpRlKWVchxNawww i7eOapm2aNaFi6ZdlgzGw7snoqlSIR9P8no2F+zf0bNy0/ZHduxe0T24Y7DYWyhDkkoBaIpdLWqi BgrkZBI+EtNaOTdYSkXaJrWffO357+lMzYPoOWVyH/lsZavaunu371mTK/dFU5Vs0fJh8mO+NAKG 3AkolrHqmVCSSMZKRdSABZrQmOicOnbxnMlnLph8YSLoHBwoNjQlC8HB3sKWx9feemBg8+79W3oG 9hTKAxHqLOnVCTrGWqABN/svhUQjpXT/vuhVF7zlxFkvb4xOQFecz1GBpAzVnts+Glvsj37wwz// 8z8HGj/96U+fdsbp9PGPf3Q9TlLr1q0TjNEEyW2i9a7bR7hQz1566aUIzRB3th4QuxEMg+gfbr+Q 4WhfH1Vtb2+HLk2bNu0DH/jAVVddJQj8l3/6p29fdx0ka/Lkya94xSve+MY3zj2BITDklkwmQucs 2aa04PN//ud/KJT0P//5z7/zne/87d/+7WmnnfbVr34VYONXkzsd0A709WMRe/WrXrVuwwbYBXs3 GqMH/vlf/0XyrlfaqSbqTAriJ3qAqlIZsHzcmLHk6UVDmzyuYrwiPbO4AZ4gtkpyQXr+8pe/jA+a IHblypV/8Rd/sWrFSrqOCZNIpfjpYx/7GOoEXhE0iof45S9/+e53v5uqWh0SI++/orbe0MvrtLS5 sfGsc8759w99ELZDbdfwSZAaPoSx97///XU6RQ8cboqr4yQ1mtbC5h+8bWHLlq2rVq2+8zd3//pX t9x+x20YStet3YCdFRUwo8KkwZiKrkRcnhsDI2qSU6UKVm6CW+mNJc5qCpIMzo51AtySkPzxPf69 3/u9E09crPE6pOKoB5qpz+BhPYDLHVMVFXEm2PXAip9s7344aOhtGwPmZaNx5AOk20oUC1TEzLTl KAYnsgAXi9F4KZoo2l+8UIllg2SOz67ebXv27wDPmpvbWlKdTOlKPF+J9B3Ir3ts/S1LV920cddD B3Nb85F95URvNJVNNJQTqVKQzEfihUg8H09VyqXBchRZrZRuwpMon+vPz5i4pL1xdDEYzAT7Nux+ 8NYHrrvn0Z/uH1hdTh2sJAdK0YFKJBOx+kCLkelw2skjf+MOyE0llgmimUgiE4kPxlLZaCq/bde6 ru59+UJ5zNhxacx+wcHNB5be/ciPVmy5df/AmkxlbzQ9mGwqxtK0kaikmSCWCyLZcjSLrTmIF4Jo rszXSjkRNC4+4azRLXMTQQusNR6LJuuaUHlIvfnNb34TZheSPeK8E+P785tuuvHGG9kb8JpXvxqx 77Zbb/vExz629KGHBp1IBLE2TX0+jxjEPWIcn4e7Xvayl7ETF7LwiU984r/+679MJM3lwA8QZcQL yIFoIEYjSiJA33777Qiss2bNeuCBBz78oQ8NDgxMmToVSvXg/fffe9996VRqFIaojg6hDjlLJBDK csP2JPYN0ig2MnAPIaLhb3vb22SXNfbJgWUum/vjP/7jh5cuHT9u3PTpM5oamwq53IqVK8eOGXPS ySeRldgCqXm91OsLojm//vWvCWCXQbtbNkUFvSFeQeKp96uiXTwH23iF2g4MDqDVA54R2UkJVH/4 wx8mlgC09ayzzoKk0r9rVq9uaW09afFiE2tc68iQHKCoaBooiycD/f0akZqLsgyD0X739+P/B03e vGnT1m3bMEace955nl3wismwAKbpUZdiq8vkcBCrCSQRFu5v06ZNDAz7V9Gf4MTExfvCRaYRY4x/ gSwBHpKVs8dpAbCZKlJVAPajQhqeM3cZyLa2dm5aW20ZDwz0wUhSIoLsyScZxIrTJKuwHrsONC/B Hniy/TXUAeYXlC9H+vblV/7o1v/al1sdSeVLQdZ8lkyNGo9F0yhTzajK/I3KAaccieXLwE+kgLSI 0FkGeYrml4eRM9NTSpcnXLDkD06d+fvYKSvRnnW7H3xk9c1b9z1eiHTH8XEBSBGCgyIyp8mHOPiU ga4IO7zNZQhfXSh4ybnJ8NPB1tdc+i+zx52yM7vy0dV3rVn/QD7Yn2zBLytTLJuwUiEcN+bXcjoW bYjFkm6qYwzMIX6ivsXEyw0mVy1M01cn0/0HUGQvuPbyN0xsnfr4pgcfWXvrxt2PtnXGI7ALpgOX F1TV5SeOXdf8omm+eU4b08CXYmtnauHLL/zTseklQb4lmaACSCdxBGikpWOSYv/7P//rv/7jPxB0 vvKVr5xwwgl/+qd/+qMf/QhZ8B3vetecOXNgnU08KpfMGSdqpKPqJjlMlKW7kETJB4B8/etfD7kH ONF8Tpk21ZFvx22H7LIF18NmW49EkNIQN/m6cOHCn95wAyrid73rXVivgHyQBntWJpcDad781rfA u5955plUA4ImpZrcTfh873vf++Mf/xiNN6//wz/8w7e//e3p06f/9Kc/BdIkgDoCNfCR//4fZHSA 8dRTT/2/z30OVfbf/vVf79qzh8Z+5GMfRVtOSyUlk76Kyu4JmfCEojdv3gzE4g4m3BInwQ1yP3SP n17zmtf8wR/8AdwDxUnNDp2kwvTqCQvma+rDhXzwgx8kh/nzTvj6V796YN/+17/xDeaG3dHxqU99 6vIrr7QJACPl+Inrr7+eDuHJX//1X59/rqm+h19oGq2HneKaT4r+7Gc/++jjjxN45M6775I1VwSZ S65tNZnUIfYIEGueh/A7mC5QAnOCFZMAHopehq1pbGjWDGDINd7i+1gqYYj12gPpSbyoShrmljnW u4dkAiFjwFALs4T4CmQ7o2wabm7v3t0oOkBcYsqkUwne5S0Np7D8JQgt9SarBw4HsbZPppwtx/u2 dz/xg19+vJLuaR3dnM0ONsTTaEVT8XSqoS2dakrEG1KpxkQ8FY1jamKu9Xb37jnYs6c/u7cY6S1F C0EyMZgZaGuOpYJk1478opmXXXPOexqC1qUbf75i413b9j2easknm4P+XKaEwywgmUfvC/yhqmlI JdMRvJpx0MWft2KKmWw+ZzthokGmN3j5RW8ZP3r8j+/48v7+jdnivlSD+Uxls8VSIZmOt7Ym2hri 7Y0Noxob2lsaO1gRCNm54uD+7r3Yeg/27R3IHwhifUjb5FyqFIrRQqTUFM+OP/vUS5sbmu+4++be 4s72salMvte6Cb13IVop4mKdSuDzgDBbMMtZLGF7TjBLO0IPX9F+wpQLLjn9D1LBpEo+FXf8CAvU XKadR640gUejKP6v//hPIHbGjBmAHJVHV0nnvvL3fu/f/u3fIPeCGSnph8NkzdzWSv/3f//3L33p SyRHW4t90XT7I0FsGG4p8eMf//iHPvQh9NU//OEPQZp3/Mmf7N6795/e9z4i2JDPJz/96e6eg+RJ ld761rf+0R/9EehLttLBSnD8x3/8R7ATQMVWioETMfqkk04CYhV5Q1Xl63ve9W76cMa0aSjGTz39 dB5+9KMfJT3089LLL+Nm3Lhx3ifZq5elYmUgDu20cdt1zIHbUUh+QqRBSMW8+r73vQ/ewvxJ3d6e 6nCgqcYqh7YhFrvppptQEZvbcEMjnM0ZZ5xBKz7/2c9SE6pB3NnPfv7z8AfyLINZufnmm//qr/4K Gx965t+59hWHg1hn+7fZQocgJf/N3/zNL3/1q4mTJ7G/Q+MYlsuHZ/Kih9gwxjhWtOqkJ9bDw4// CZc01wvO8cwpgNQpjLWTO+0eryVmw+7de9evx3tpHRBrjkvO6U7509csPBkM3HyooqpD2epz794m EJVCn1dkPAc+5UXM8uNeegZ4VT0kAYDKoAKx/HT77bfCnTEb3vnOd+IVMeJUqD98afYAsp2b5NUz EH0nSKAsFPv78gd6B3ZniwPMNBi4hlhjPEiyNcUtAZNTq/M/wKjJfhqLjJIJ+lbvvP/hdT/dcXAl 0BpFZC0XIuyFyac6GmZde/kf79u7+9a7vhFJ46CbKQS5WAqCGC/nE0GxKVUZNXH07EljTxjVMqml cXRTY0cybj6oKHqpEgbU/V1duUK2rTO1q3vVw8tv3d29NtlSypUOGtEsRAuD6SmdJ08fd/LcqWe2 NIxtirWZtjaAc7X9RbbD1rZM5ncMrt6w84GHV/60FOsCPFPN6UwxE42kcgPxiWMn9/d1D2b6kulE rphFnGb19R8YaIyNmTL61M7WmeM6p6aSjQ0p8z/StiMkP6kHS7nEKQsuxNEpHjREcVG2ywJuiJKM CLGisI4IPGlhfuwjHwWcTly0CIhdvmIF8h/VACMvvOginFG13kWUeJevHq5EZJQhN/Dx5sJTCQBp Tvi57LLLwAMD6cPsi9W7uLPJ9QbwQwzlBpMqqPC2t/7R1u3bPvOpT7/lrW9FnCf4+X9/5H8QTyFK 1GHu3LlIdddccw3SIbZ86BVED6EQIRKAfPjhh//f//t/wBUy8S9+8QvSODIYg0K++tWvBqop5cMf /NAb3vhGBQagP9/9zneRkhuEeEzCEkz5lCuT2uj7zbda7i+SofnEvQu9NCEBIIBk4tWBUuMpDQwl 0Qbe8pa3EHcWckrP/+k732EIHY3RtH/+539G+Kagq6++Gg6A/hTXgl6BDKHtyMHy0z7cJeUHS4XP jZs3U8SrX/saNNL0AK2TqfhwCsWnHffkeCFoVZlxSBkrJYOmqa3poZPPGQb9ZM7WqAqGdq8am1rG o4zRiuBNsHLl6l/+8lff+Ma3/vd/4Xg+f91132PMiG5IPzIz6FkuBkPT1y8tbmRGlZBKj5O4Wlyx yBij0IeFNGt5LDlh/CR4W7hFTAiyZ/AriI5/vwwh5Ewp5MO9uYjncjjaMaGxpphRqn7VeyDUA7Ji DNNkQLzNpyaZaBrdNGXG2FPnTTxvWsfpo6LzE8Vp0eLkSHFCUBhbLowOCqNi5TGJYEysMAZXplhp XKUwpjGYNn/i+QvnnNna2MnyKOZx6HXGjkRksLjviY133Pf4T4vJfYVoVwmLZiwKZOT6IsnimPmT zvndK95x5blvPX3utfMmXDyt7ZyxiRM7IvM7ovPbEid0JBc0VeZMG3Xq7HGnF/OV9Vsf3dm1PNXM 5poBuIGB/kKqMuasxa942dlvOm/Ba8Y2ntxcmUN94qUJkdKYaHF0tDgmWhqXrEyKBmMnNC5ePPu8 jtaxtBMuIZvJF/Juv28839W3fbC0L5rOF4pmxMEPOd8fjGufffbJ11557psvWfKmxdOumj/h8umj zpkx6tyZnefOHH3u3HEXLZpyxSmzrjljwcsTpc5YqSlScQEQ7HoKCnmY/jdazMuCAdlcnX9Gg4IY aF2b2jqE0H4QNaCCnPCOT6m7PIk73DrwzkqUIqkUEnSwt8c0avEY5SLz2QbnaBR5FFkWWEWVTebI qfgA46ME0ROS8Qld0l5SyhWBgjTJ3MsTCBfCJbIdxBMcvfZ3XgErxHNe5K1/+pd/RmqEIfjiF7/4 jW98g0ygjSNqU31bJMOojcrHxsBddKBwV4npIuGrmBVwlGpTt6uuvPINb3iDeTYhHOOHnIj//fv+ YebsWRQN3sOgWDc4MzP6Qll5EaJgFEa8iK/Hc1yoSIMWE5FXSgi8vYSs6haGWMM9fFBe9BCrLqZh XqYUuMptT73vm+3uzTAk4RVwxby6besOLAdf//o3Ydb+7/8+9+1vX4fhHYdvtPyjR49mSjmbaDsL RJ2IVySQLB88Db/5HGq3w1BNGGBmIZe88lgnTDXUNeMnjJ08ZWJHeyfb+Sl69+7dlMKNTO7MWi7J u06ktk8SoKNGLbNgwYI6uNR7YFgPPMlZ/dCvWB4t6o1tVWCeRivxaMW2hRAnCEWI/bFJJR7wZ7Ei 2HWKbRLbJ5Ec2MWCrTVAUdtZybBNolkTu4idNJYfLO7dsO3+HfuWRxuw9Jbw1sMRN8jExzTNPHX2 tRec8uYx6dNaI/PSwaRYuRXPX1TExv8XSgiTID5bb3D7ywY7n9hw29pN95Vj/blKH9EsTLFcbJ3U euZJ064dlz6pIZiQjjYnY1STNYBV2OrJJ6u5WMqb0pZlF0SL7InEE7Sxie1H/EuLMaNohcLuGtKQ qlQpZeIzx5+7aPrVoxPzG4Kx7BSKlJuCUlOl1FgqNZZLTWW+Bi1s1Y0GDZGAhVzVf/KPu0NOPcyu ycNPR3m9wnT39vfDHIM32JgQxbTSifVGhUXozZfZooA42HAhrXTxnD+2rGQHq84+AgNQTQTdrqEq hu9lRSIxdUC/CkZi+kVQEyB5ngD4kVYZJ2HwDzPn7NmzqRJeWkAUAiuoSVYw986rtwSOShvHK4CT 6oBQixswDxGyUTWjJoH0iXXgBkMsYqLrwvL/feYzbPixieQo81MuZK+DVOnkplckufKrpEYzExSK VAPHJZ6ffvrptkWnqcn8tMv2Fv2AlluGNmx8n/nMZ2655RapDbR7ioZwdNK/HOb6p3/6J8Ab9fhf /uVf/s3f/d1b3/Y2OgShiFbzujTqEqs8EtU07UUPsdWpGYpLIpyT7VMQ65kLU6nHTImPEnjZskdv /OlNX/ny1z7+8U/+x3/8Fy7pjzzyCMsAkEMromM0eJFPOpAMbdMxlMIFjgAycatTvEMpc+huPrlQ O9DvDDBC6tSpU9G9zJs3j6nGFGekGWZpS0jG1JcnIZkzPKRn4qrOlCslEgXhCo+pn1UK33QUM/Mp p249wUuiB6CfzJZ4LBWLos1LApzoatgcybZD4k6UI9DHHAEHiY0TRPqLkZ5SvKscPVCO7YulD2Yj u/Zk127bsXogexDqCAIqgB95EB2pP7s/1WJiHvEsTNooxRtjE5bMveLsha/oiM1ti05NBp2xSnO0 kk5EMXMk2BQj0myBoGLgYnbD7mVrtjxQqBwcPa6F/TyNja2RcsO4UXOXLLhibHpBOdeGyw42UMcQ 0wgAeoD9NsXIQCU6iEdOOdi/N7f2oVV3HOzfXSjnCuVsQwO66KhtQS9WGtO2Ws3LAW8lWh5PtaRH o3bujM+JVNoilcYKTG+EujXEYw34fKFejkfQdNNAFEisPqnQn+lFBVjaCi00c+ZMGYBAsrWr1xhp dtTZ4BNAchBCyAW+ErfB/kwoshuEX9mSqM3rXvc6KAOqXSyjsOaOHBFTwf1Z2KLqPZDjTVr4Ev/s Zz9jHkBzlixZIhMVJEVOJPIgkekKSvWf//mf6LExM1NzqBNGXOy1bBBCNKRc6okZS9tm9DoV+9a3 vsVuIp7QQDThkE1ZT0kvbRztwh0aEy/UEoQG59AI0pwjQKwoNvlIjucSgElxqBcpUYKTSD1eXXQs 8gwabAylM2fPNknd/eTDV+HMhUc0ggroCMoimHpxiCeo39m9c7jr7W9/+5/8yZ8g36OpBnHx54KM k4OF13CRIDVXDqcoftHbYqWKGb4g8EhiXPxz+qG/f4DefODBB8HRrVs502a7nMKhAmLW/P4nQbIG W5in8fA3XlC2leA8zWwxu3lAVCbpk4Xx4rmkG9E9050VAmpSorJl/vGQaYpWRyUyM/iJ3JqbmxCp P/vZ/2WM3/veP4cvw7rwTFd//f3f6h7QmpeA4pxobfkTWNAoXoAIqOiDxDNCtYpvUi5vwRn692e2 92VZGXt7evdnc/19md29+S3l6EC+hMa12NzYYvazmBFlo85JtuzYvG6MRJOFjvmTrjnv5N9vjc4o 5pMRtMkAlYVlRIzWdm2nDo0RJreI11Fvaf1dj395xeZb2EUTS1cy2WJDsq13d+Gsxa+86MQ/agim lXJwsWYtMzsoL0XZooMdmGZQ4WxfZceenvWPrr5jR/eqwdLuUmQAt9y21tG9+8rtbR0Dma5UAyZY YUDaPK2yQWts1u9c8L7JLadlB4KGdEtAwA3bB1yN/aKOwqakOlt0Ytd7WpuHLpw4nI6XvrtiWIzi JyV0/f+pT3zy7//+7wE2jH9LTjsVI+X//u//8hz3YNhuF7TSGBSayd4+XCVdHVwN3E/+Pt3YeMUV V7BHCBXlu9/5zjvvvLOxuZls4cjd+FZdS/w9WEjNwRLYd7RfaOPICvx771/95W233YZdlnxw7MC6 ySuHnIyGoijwOj6VOM3u2rET8kgNkYCRm9HA4UwEBiPdnnzyyThPAZaAFi4/lIVV8rV/+AeyZwM/ YfMkAjp54kSCbxGN5RVJmVUP6iHSqub7blTnSy+NII67ExZZ9pfSpTyRdl0oC8uCixNhAyCnuJKp XVyZXDYNFXVuTVBmY7kiUWy0uEGhF3zzm9+MeI0kilaceYz72GG3YDla76ZTEimKJuB+BfU+8+yz YF9UbRHtJ82W0JcXPcSqLV7so+ulwdd4wdvB3TAbmG1oabjp6e11nSbrqSVWkHTpJfgUvooXk75F YymrAEMl1o8ZzGDLDZhLO20cy2luFMqnSuyGxkAoy0NGiH1ppFeeKPfBVPaukQmzCmWL/AhcK8oY Dx588H40FZdcchGJ68bYw03l+nM/3xyZtjmIzMrWHSIBA6XEI8wTz66I5gTjf/fBgwcO9u/jpn+g O1PqyZT2l9lDmGPzXz6JUFhh80xPCik0ns5lC4Q5NF42YaFcXQBhg1jMnMWuwUmti68+668mtZ5e KTUU8tUNbGbpczSn6vDMwiIqU2mAPanr9t75q4c+01tYzwbZwdwgsZPKhVQyN+rVV79rauN5saCD GV4y3yuMrIjaxUKQzQcD+3t3796z7cDBbft6NvVlt3cPbo81FFPpCLE18pk8Dk8dTebfsH7TskKl P5GKE63JlK8orfKJRdMuufyU9zYEM4jrSJ0N8vFqrtJEAymiFyIrV9kCcwQbaZk5iJU/5OEgNtz/ gliQCXen8y44H+bl7W/7Y7aiHujuBrSQXo3ou70xKIshKaZyD8GMuXc5EjaQzVx91dUIi+jVlj74 IErdJ1auRO4UCHlI9vfQKQmdVAYyAmlChfvf//3fo0Z3ArFACxDLvt4//MM/JBORIA+0vCWxDDqJ S9QNN9xAtYEoKkw4JxpCiz716U+dftrpt956KxzDv/7rv6J4A+HQpYowSZKTGk+EFGCjPtBekv36 ll8vXLCQrTLo5KoBI4dBbJizkfiEcpHtOhBwXKPhFXjiIZz8r/v2d/ByojjyR6NbBWCUJURiIiK0 M4ErjCWsJc1BVoFXQCOI7xi2VfZBUSIyz/DNNqIn7LGW6tu2JzmHHkg0Vr8P/b8PcxyL2uu4TyPX 4Yp5cvSigdjD6RZqmU2nWkK2pPvYSLpq5Rp2smJUkOWAjlAobS+V6t54xurmVzS0Mq+iATYVDiYV 3pUFQvKoAHjGjOnSGGt7q8+QUSCxut5hZPUS9jOQ8IZALJ9yZCATkBWeFIgVNmve8yuJd+7cgXaF dfKZz3xqwoRxQ6FM62hS74HaHvD03a8Um4nBwVywtyuzZXf3hp171+8/uIs9OYROKWAjBcgiqOOM CwdiCG6DHhg3A55jxTPgKds0bmg065oL0Ju3Ta5EfHKkHwyLlxvKXanT5l5z2cnviQcoYCzScE21 /B42k56jg9lgz10rvnvPyq/Hm/ts1ThSGBQbxzXOveai16NhzmZwRxwYzB3s6dt7sB8nmgPd/V2Z Yj9BJ3DgKlYykWjePJxxMSYyU4GYGalEsSVabj3/3Ku6D+5dse7WQtAVsHYjsQJBNcrpUl/i6gv+ 6OSJr01UxqFGFo9rq74azBZkQCSy3bECrBHoiWuSpaOFh4fYmv6/5667YY55EbVkY3MTK3r/3n0o Y9n8Z13pwt+zwKUYExPvL5+VgWU+D0aiq4QgIH6xOxaTFspbQtWMuAagMtKrASqIAchnCGpQGLoa 8QtiApyAlDy3s3cI3BtyYBaJk0CG8hlPY8RWCCkKNgAM3yhCOiABg0/kg+CI1HjiiSciXFKWl/s9 YFfniQtbSEMwxOLVjLkXXSvAXN10NBLESj6RZpieAe8xteLyCX+AtzO/aout5JOHH1qKDD1hwgS0 uDNmzbQeG8ykG021bqb7oebwCmBPntp6hEhDQ0BcMBt0gH3B/cyKc30aZlyQ0KgtYg84LQSFPlOT q6652g+c2R+HzhIePigvGoitmYW+JepoJEZGhV4AUNGN2IE2O/cwI2ULoV/cynFeUa4bNbP9iuJe cCgVBN+4KRTMoYnt7tzL6akhbe7Ebe0tsHVYePUWmWgyCVNJz0joFfW7fhV7RQIcFvAvF5SSA+PH Q+wccEZy0JcvMZ8g62OPPcr0IkzJpz71MbLhz22Hq1/1HnhSD7iIxG4CG3ASly8bDXIDpd1b9y5f u/WhLbtX9uf3BvEcu0gx1ZnzjvHcYgFd0CILlxjNZfJQIcLxFjHTmodRBCsI3KYRTUL5x3A1KlnA BtuHSiCJSJBraA9mX3rmW+aPvaaYa7QA8QQ6lqJVMGxH4Lnj7vBx4q1ob3d5xS/u/fK6Pbc2dOBC jA3VTnqJVhobyqOnTZzf2zXIzt3uvr2VyCCuVS6yBDEfYASIpGDaUztSx6RMSGc0VklHi+loqXHO lCWnLjmHzUg33/ujTTvvTreV+jM9iVRDNJKMlVtShXGvuvLd45PnBsXWBDEw3Ep19PfQ1gNPB0ac VX7n8REgtgZf+YpBh5WOEhXAIy6u6cPciTescfORsfJtKVvUN9SM7gA+gTxPpP6t3jtuG2oAUw5B kNApXZpaopSHPoeOZjP2yDmLiOxghpdkCXVSzH0kMs4BA3h4LjFDJFEGVwua7zbIqk8UYokXDatc mB2JvJI9TBcYMxstxYkkqnpWutv8o9Mm+noHGpoaGQIcm6uMziGItdAfjt1xjqglY4bQl8AltLV1 oKmmFeCcqqQKeNkxM4CF3og8DKLVBPc5p+cPy5TWOrdBCzaRPJubnO8qJ0QQ18lOW3mS+1VY/c4q IE1Xdw/0XxMblzqTaKvBf0wPIaYkrOwMT6QXDcTSBJusbsex1Lzqlv4BsyChRsArWKEh5A0PTkl4 9y0X0+EtLCIx6ho6jo02DlbNycD0Ns6tiYtxVUQIhZgQDPPple9kognKc2/E1WBo1soiy1wkB3KG i4RvIivGiYcwULyFoR7E1dSRKyD6az5R9+Pd8PFPfPTaa69RbetXvQfCPYCTDPOEo2MIH1Em1GGx P5nitJpda3fcumbLfeu3P1JJ5Ng2iotTsYSVjjC/cYQ5NtOCknEOqImyuwxnn2QpGx3VOiZSTo6f 1JkN9j2+5j62qxJROBFnBwsyXwG/JPM7xoOYPTqEb4jFsgcTY1On/e5lf9aZWBwPWnEUsHBJVXch yQNV4UxLoRztWr33xpvu/nIptT+WRoyzDanUmSBTkVKiMEhD2JURZAv9La2NQFTFzjKxC8OMZebO lUMXTQTHRLmlITp6zrRTT5h+akfrFBbGvvLKH/3yc72FzUEq4440iOLolOtJLhh38dXnvr0hmFUu gDc6EZbkVVvskz2bwjLMCLNMWMUPhws9oSUven241Vrl7LUlP/xZPQDQCQJkMPRZQ/19tarSdihl 9a2hFGHU5/5w9Tnc88OV66HR1yT8pFor95ueF5mf2AyqVoM4zJlxOUwibcdwYg+TCjUJBwnDAw35 EBjB5FgGc8CO2X4Nd+hi1UxWPefYPYG5NJ2wiyzG2b5WcOTQkQNeInUk2qi0O07AznRwpTP3mA52 2INpaJx/MpihptkxxRyMaIcYw1+m7KwM4wGQuoxDgkxbr9qhkOLYnGnfHetYM3VeTBBL1YcYpTh+ tkQx3Lxp69Jly9j0gkIJZgTeS8F+HXteta2KzwK6hh4e6gGtB1YOF+YpwRusmYtfaJeCQmi6OIm2 ejKJANivpTDEhieZ63knFDvek7rBCRK3zM6WcntnSaCNOjr1gmT65CKwE3hswboeW8bnaactGZKw 69bYEcjfS/aRm4ROawrNgo5Es/uzax9bd/Oj624sxvYQJdhiK5XY/dIYiySz/YW25jEp5CLOlEu1 NKXbWpvZnN3emGolIEM6wtlwhnFP7L7t3kd/lol1FSsDgK7pfwjzZAQOkch0iUxSKzTXhvz6srP+ OBlMBGLdebQslaqPIQmrEKLztXE8iexeuvkbv3n4unKqPwY/wJJi8VXsZNaGeBMCjG0cx0MinhhE o5xj94wFeGFRJuLpZKIRzweiMo0fPaW9ZeyY5qljWqe2xSZGgpZ8MVaJ996/4dt3P/6DSrI/SOR0 2Dte0MWexvPmvuXcRa9JBONKiOIWwQJgcz7DVV47zLY+OxCrqVhDB/z8PNbnR9beHXnahyH/cOUe DmIPV+7w1h0ZYtHmIxCbp5sdvIo5k5MmOLWXAyrMhMnZST5DBX18MsQSP6UcjaD3H8GZyEfFMlSD daoQ0AMFDkGt4+C4y9Zh8BArY4EybX4jdLHby6J/4CzvDk4uWEwTF7zFHV4IEwArVuWTRMDhBNnh REuZ+XF0M4YubpQNUh1AuPJGdEd90UAs3DqDpM2pN954E6Z4VFKmwho6GVh9oQGjBxSvRBNoyHXI YBIRUWoWqXN5hVXN1QLn7JAVhYAU/QJOfwmJ/eJRAn8pmXzN/aSpqRLVgDMAYkkArIob4Ebbe4xr c+GLxRy0NjfjEsVmrRkzpxFdk0jdXiNx5HVV//Ul1QMiTFhVM7kB4hmx5fTuFd98ZM3PUy2DB/p2 JFMN6VRbpo84v2NnTj5l0pgTgNimFCEJOa41jRQbtUhPAGYCc4hNaYISB9t/8fBnVu24u5QajCRw PIK0QGBQICHC4pnpAiDa5CeWftuZc/7wgkWvIzREItoCxBoZ5Swb56ljUqs7CN4BrUFzIbL95kc+ umztz4KGbKophiMTqzMZjwz2FSPZ1mSkBW03wM8ezkglPaZ1LOEYGxtgc9uaGtubGtqb0x1UGIGb LN0u2WRQSWFwhTYWYrtveOCD63bemW6KluzI0YLp9yh2YMxrL/zAzFEXRBGy8U12Ug7qIYt+fOxR XI5Sij2uIFbE8Agr4nAQKylz+CX6Fgbsp4DYohnUTFGM/papZKJgIYgZO8hOa075tXhdJY4mNDc0 h1WmdzRlCVKps+whK5rRPT6yyy7z381b9y7nAoOvMbK0/WHeaQ07hR2HDHo66RkxNIlq3NhSO9vb hZmil5yt0E6bsMBoJnqxmxw8dUG2qburChE4idxtvCALS+p5WmfCrjtLzfnx1PbZiwZiaY+LkNKA 2/o73/lugga/8Q1vJkxS/+CgsBCI0s5UTQ4PSNwI6hg50mSzGQmL2nCGoV47XHEK9pAs9ZQUwnpd OK35yhM+vauC5qikYc02L90Khm1shryf0GOjJQbLtVFHTsiSmBk28rTQZeWyCdPJJIda4FDw7ve8 82/+5q/Jpg6xLynsPMrGsqES6wKJM7mDsVRm1c47blv6+WxkazQNsUDNlcwMJDqSM5fMv2LBtPMb id8UpBFGIQd2cmsQc4HO4P4tB1yKEPx2DT7y4zs+1BtsLGM5IQfE4wLE0LYnRhNGJSMlM5dwVECh r4ltNufMe03E4kM1A/O27opMeGGwI5juMomW8IvBtp/c/+H1e+6opDLxdDQzWAAHAe5Jo+bMGntu S8PklnRLQ6o9iLS0JEYnA0iYwT8aKPyW+ERWNXR0ATTKpTxrngPhUVlTyV2Zpb948D939i6LmzMj 4ftM3Qe1bI3Nfuvln2gK5nEwH9WwIBtmFOQcAnfG+jFeTwmxfu3XgFC4nMNJk4eryzOUYp+yiYer zxGk2DDKeop3OOgVZZYdGlsF6pBYPJ8L+vZl9hdK2cZEU1uKsW4xVo8Ji7xrm5k4PgJPgh6ZOGGn bEaZ1/eTLjd+dgaTqWc5HTjSwNxjLXDWBZ7zdgywYWzV71q2agufHbB9DZ8+dq+B6m22Foz3ghtk 9hbzAXUjKBhSM8oV2yeND6CTdBFXDaaLbAMPknAGyaCR+trBGTjQkSGMQAS95pByJFTTFw3Eyti+ a9cePMW/990fsFn45S+/Frjq6euV/V/TmpkhoAWlwCQ5F/BQ8EmClhY7jVXICp7Jcdc5gtsp1baD e8gfWD5HfPXwKfmSi6w8cnujrCBWlw2+8/DWzLMB4ORCYqW6A5gkK5O5NpULrUkj/2TysQOcy+Xr rrvuu9/97v/+36evuupK7ax9ygVTT/AS6wHMlWhr4phHiZQEsv7kN59du/O2tnER1kU6bbaMcq71 5FmvvGDRqxuDyWVO7QSP0YMN+fwBrmjVbPrBOMYLnMyzYufNN9330UrTAYAtm8+0NqVzg7lUvA0x pFDBwBEHYm2qc4h6X8MFi95AsMN4eWKk1GzGK4ylbmPPEOG2YrQuIK/55Paf3f0fW7vuraQzsSQR //PRMibYyhkLr7p04Z/Eg3EWei/gDDxoagq3RBlNrQmWIWvJ2VBNG86Kcq7KcAZRduL0rtr5q9se +8TBwjrCTdjB6pBczs2LNsyfePHLT/rHWDAZ3aQtf9sczKtVJuBYp8pRQuyRQfRYIfZYKzli+iMI ssdaH2n+PA/x1BCL0OoUwgiPmN5xGBgMdq7ctvSux28dRI+fSJ02/9yTZ1zWEIzhfOCGZDOwVYgM buxa/tjGB4vxgQKBQhh8k4BtyNU6FeoUxREsCMTUntIx5/T5F8SAPeJX96zYtGfFzp7tzA1VtXp6 vbkEat8zvFakrWns3GmnTmiYmQpas7ks7OmW7lVb967ZN7CzFMkxkQBbPOTNSy8aFDj/BwIet2O8 O0eNmz/9lAmROcmgnWPVCNSFdxetI8wLJchTOny9aM6LFcD87Gc3sTN6+rQZBA1hOw1WWPYX85M2 knpRlTHgJ2YDMAZc4VLEnjniK+G4O2XKZKKQoJsFYrXnFcwDv53UakgsAdcrin1neXyV+5K55A2B qJ+mfvLJnqpMdGPGIVdPygViQVM9lzsfuUlvrBy47+vtRRlO+je9+Y2jR7tt5kNxsZ+VVVfP5Lei B6B35sFnQlk0t3vgiaVP/CpI9eJRnEw3FMDfYq452Tl/+rkTWuZjLo1HCGkSN82weZiwXuSygAIG DCpytms22PvYxtt2dj9KjN8YImEihVhaLETGj5kdwc7Z32UOKXjvc1J6Ko5/SjrROnr0+OZkG8eq JjgAg3NnTSdMycSQypK98f1QumiZ8FDlSO/WfQ/u69nAVleiRJnnhG0sby9k0pPGL2pJjC+XOAaH c0YtHlTMRVzCTGuKOmuemZwJZWxb08tZtvlyPF6uAHuBvvnAlj2PrN15XyU5iN0WUoiKL5epJCvt J865aGLLkqDSZPuSLCPThDt4qD014Wgmg2cdwufF1qBXmBSIHa+5jqagZz3NiDXRw6dX1nCKp3yG Z4h50p47v6RIMpILetbsXXrrgzcWE7lkU7RnYG93X1d7a2dHU0c63kxacsBssHrX0vtW3Lq3f2d3 3z78bA52d/f0d/X02t/BngP214uT74Hunu59XYSNOtCUbJ8xbSai6NYD6+5fcctj6+7v6tl74OB+ 2/xtyQ50H+STV7r27dvN8137du0+sLu3ryuN1aRxHHvAVu558I5lP1+zZfmBvn09A137u/bu3rO7 p7e76+DeroP7D3Tt7x3oPdh3cMferVv3btp/YM/EcVMa4824YzvnZVtBjiO0mVXTpS8aKZZ6r1+/ 8brvfA/P4fnzFwCZQCOoM5AZdOrfLD5EfDpfDJ28a0pXHWgj1OSTzkBR7GeD9c3QBcSGZ4mfKxJA PXh7E4WA1sup0quQUubYEbFWkrRQXEXzlRoKYnUkgPIEhlcsX/7vH3z/hRdc/KEP/3tLi51KqGRe aH56a6P+1m9XD8DZwxuyAQNtateaAzffeMfng+auwUIXzcTcj0yX7U8smn7ZuYtf3RbMigTtnOaG ucusU27bK14nSIcWVoEQFcHBXYVHfnr7/3VlHytHe9lLk3KOmoRCPGPJ1dg4nlh9R1MLG2gK5q7S kMpnAoSPhVPPXjjjvNFNs+PB6GjQiIbNaecsmINzmDVlnYJIDASbH938g6WrfpEp9yOW4D+Mmq6U L+d64yfPufyck68ZFZseD9oJFEy8DGdL40LkdP5cLpIiKj7wO2ERi225loIEMYgzwc4bf/Pl9Qfu irdm0I1bywqcFsQRP3Nfeel7JqfPilba3WYQbcyrbtN8si/xUU2KEaVYD7FPG66OquzjJlFVggxh c5jJCHeCng9mBxobGh0ElXLBwJbeJ+5a9cO1G54456TLp02esX77iuUrl0/onHzpmdfOaDotkiee ZaSSyNy//aa7Hr1l+pxZU8fPbCmOTkQacSoy5cWQjrB6QxzPeBQnvs7UxPGd4weC7lvu+9mqXY+y qfLshZfE2dZl+5/DYmWF0Nz5cnZ/z4Htezdt3PzYnGnzrzn7rUy26+749I79m2ZPWjx76oKGeEM6 3kgRgAhaTbOqsBcbTUxpcF//jo27ntizY+c5Cy45a+HlDcHEoIzmBGeFEm5ZttdIpt3Q9aKBWGr/ 4IMPLn3IAmUBnUx32s/OM38QFY2SmChElG+w/H4Vj0mjormh9eaWXHWzDdinOeE1IdwL2JShFMje qiqRVxDrB14oGGYPeVfuVLLgmsOkA1pt2tEuIO1E0p4z6swNJ7H/+le/JFYZm8Tf9a53+IrV8fW4 ITXHS0Wwxbpw8ZXByp5N+3/zs7u+VEztCpIZxDmsEmkiHQ5Gm+NTZk5cMrnz5BmTFsOCphINSfMe AVOLuHpqM2KeTRPRvg17H7j5zm+2jSFKbk8RbVmsgR8b42NffvnbiQp01wPXNbRm8+VMmaPcKxaM sP9AJlFuHtc6s61p8tjOue3NYzhH2VDVGTth7qUiyuYGcsUBxM3e4tp1Wx+OsgOCcwmqVphIMtpU 6k+Mbpk2tnVOR8uUCeNmUBXn8GLgitFYUgL5FIqZwcF+fhno7y1kgqbkxMUnLagku77948/0x7az IzZT7OFkoFS8KR2MH5M87VUXvicdTI4FRPYxJxpRW+dHw3XMgUhfEIitkZL9tHuhEP1YIdakAjQf xgn1d5W33/noTSu23ju+c8KlJ71qSuuMPaUdv7rzxl371y+cs+TiE1/bHp1SyVWCVO6uNTf85pFf nnz6KYtmndwajEsFdtQPtgPtrx5i4GwPDcoRTh5Mo7MN8gfym3/0i+8ORnOXXnjVia1nJQM85KuM mus3c4MnRLYdPBzkd+XX/+z2rwEQLz/nLbv377vj8R82NDe8/Jw3jo/NYe5yDAYFmV3YHaSIXRbW jSKyQfeargfu+M2vR6XHvOplb2qLzCGyWDphm27REY+oKD4eIVZT2Vsf9ZVwL/fccx+xBvHIJeIG UMQnP3FghbSsToi00OEoFiAuaMcJSqJTEfhJMKb5oU+vyPWCrBIIIAWcAnIl8K9rcnu89G/x0PtG eWD2uaGp8oKvbrQ/B42YNMA6/067xaGZH//YR+666zdE1CQOi+Bcdaij7PECbsdHPZz7nRGdID6w L//4jXd+cc2OW8ZPb+g72MPhrEm8iSKJcj5WzhO9KY3XT1uzHTUhPs/Na0WHILhiIZPvz5d7o/Fc JGH6WAIMR8qpUi45bdxprzznvdlg8Ps/+499AyubRsf6sgebGlC6RErELmTTDBaxON5JmIS1ZRG1 rm17kA1M+xsQmhtaUgd79rW0NfX2HcTPL5WOZgmgiA+VnfcZxazFwTmxaAOVdN6/RhCrBB1PzyGx Kcqe3kK+ubG5d29lwdQrrr74lQ+t/cX9y38Va8lky90D+e6W9rYc0agGRl964lvPmPWKeMBpfXg8 SD98SIn3NCDqCLbY42MuHF+1qAoeuOFy2HAy6Al23732p4+uujcZpF5+8e9Pbz05HjThQ7R85323 LbsuW8wumX/1WfOuaGC8gtKanffd/vBP9he3J5rj7Ng2T13sG8xTF5YD519/D/A1J0edvvCKhVMW bdz/6M233Tx77snnnnxZZzApXW4ZYqokXJmTuZ3UFA8Gy5lstPuGpV/bsn3Dy8/8fQJx3/bIj+fO WXjFCW9tDMbEi3AFbOEtMIPdbI7Ci/Jo0M6CH+gKNv7s1z+iLtde+prx8QWpcit7hVx4luSIPnTH bzQD790jtMPRSaGAMayiB4BGYFLlBBt0qjrOEH5569YtDz+8FEdcQmgSn9qLmNzAAmuFeMwbfiPQ 9dCrmyeJ/MPeCf/q+TsvxYaTq+hwEV6MpnpyueKToeI5YaoQGvCXJjAYb0kLzVXH1+OLihwftXF2 B9vE0pKcRKijsW2ziKpPbH3CSphdtJApBn3lZHelaV+0bd/+wuP78o/tzT26O7PM/XHz6J7BR/uC 1fn41niqN91gB7NwAKMhaDGaKHfMGn9KOhjXFkw/beHLxrTM7T0QSUTbsgNQThjQSKopGmvMFhJd hcTeUnJPJb03aNgTNO2JteyLNO+NUGjTfnTXybb+/uy+ZLxt0ezzTph2TjTfOdBtplwOjjUFD9q7 xEAx3pWL7yw37Im17i8ktxZTO0rpnfwVk7vy8R2FxM6i/e1OtA1koxQ0MHpcO9bZPQc350oHyog/ dqSMoWlxsNya7uhsmxIPmmE9BK7PEF+Pj6F+8dWCQWEOYYPYvO/x5WvvwxfttPnnTWldgNyZLDcl gpY54xadtvBsTHkrNj60oWs53k4YNaeMm3HeaZfOm7GwKd0CvR83YTTnkLFxsXN026jRHYfux7R3 TGg+mNu39Ik7N/WsTjbhexTrOXigWMmb9Rd2zOJRu3043JvLMhBgaowGYNZOcOI0xjgxW9IJHTth oSjituXMXBPAV9tHayef4nCXL3A8BWe9BGk4QVYcmhnbwKbLGEILmjGiyuF4dHcSx6HKCxcxsu7b 36WA+zxRXF8iLiGtbty4LpvLdHcfJIglsEr0TiI9cSzD2HHjzj//fFYvNlrFfJA51q83D7cqyMOh h1g9DKNsDWT6n8JSr3B9uBQbGRJiJbx6SYLhk/wqiKXCtHHt2jU33PDjCy+84Oqrr5ZPljIM98yL b7XVa/wc9AAUxDFhttCTkTinzSSIlJgpYANDCWyeSRYNAmsExjDMSgVz9LFwiLYLgR2JJhXYQRiE 84S22E4Y88PPF3NZPJbYcNoyvmXBWYuuaU3MAL/GdUxkiyph8Pp7B9h4igXGWUnJxi6LrkNGzFUr 0hyLnG+RLQeIJo5LpcHEpPaTLz3tNZNGLywMJvrA3MFsAmGWCmFMRkxw7lduH5HtfmCVIEyYDGHm HXNWIqiU22KUyOWKzakJpy64hhMLHnj8x6X4/koUmYOTCWKVQiTXW5wyev6S2Vc1xsZp42/NGn96 4+BXX9jd6ell9ZJ5y6ZFJTawqX/Zw2tu37F3Gwrhc+df3RKMw2kcGwU7WRsSqfaOUQd6D2zeszqX 6+lsH9+aaiM6yuiWMRPGT5s1beGpU89fNOn0uZNPmj/51AWTT1tgn0t0P3fy4qmTZvXmB/bu2DV+ 7NgpndO27NjaNbh73ITOjhRn0ccsUAoSqJ3RBB7a/C9HOOiubzDYv7l71SOrH2xMty6eeg7m31Wb lyG4jhrXIVrMzHUKGYAXDpVIJjgW4xCY7wv2rt7+wJr1y0e3Tpg37aSW+Bi84sFWJihTVpBRM7jH I8RKbPWf3HB+4YGugzriDVgFk3QoDa5PuIKjMd60afPjyx/dtGljV/eB3p4+Xr/iyisJmUTIJ23g gQToEIkaUdWvvTDKHm5BhmFYUKqUQmspRqSCq5FZjcpALhyyenytpoQAOP8s/y5Nu/322x588IE3 vOH1p5xyCjWXexQFyY35JbM+6w19ih4AyzA9MrcAs1K+hNIVT43RHePaW0azlzWJi2Y+WchGi3k2 +LOjAPdgzndrrqAx5ijyIp+QuVS00hwrNeT7y4XBWCXbFCu1pyNj2hunTBg1b+qYk85ceO2E1oWk Z88gPiCjWieMGzsJwoQJuFzA06RczKFGS0XKjdEyp5o3B4UGDjzn8Bz296NkLuUSpRwRHVP5gXhH w8zZY8+ZO/GMtvjk8WOmt7eNjUcb+3vyucEg21+hqlHOFSikI6UG/tjiEyk1RooNlULatNzFdKzU SMzhbG+kkKGZY+fPOHfhtEt6DvYuffzXyEkoh3klKDYE+DOUW+dNPmPBxAtj5t7F2qnqrp7hfKpD 7LF3ILJjPhPtuePBn6zfumrG1Hlnn3jp2NisIIcbXTlh26sMnXAUamhN9Qzu27ptUykTJQ5Pf6bv 8bWPHxjcP5jPdvd179yzC7dW9qH19fb3Ymbo69F992DPrr7dW7dsKQ4UF85ZNLlpzr6DB7fuXLOv ezcbund279x1cPOOg5u2d2/a3rVpx8HNO3s27R3Ytr17w+Y961avXU4mJ887Y9GkM1saWw/0YYHc vmfvrv5i34Hs/l09u3Z0b9wJsOxbu6dn64HMrp3dmzbv27Bu+/JVm5YN9g+eteiiGWMWJDESO6Qy t77DTLPj0RZrDLmDWImwfHL+bVd3Hypi7kFbwNKd+boVBCVA1xNPPI6zMaH/zQGskOO49enTZv7b Bz6AOAj6KrKxUyJZTOCw8Fq1FriJ45WxNdNIsmM4pRdSw1ZY5SDbrUdrX5YBJPy483LyFlmJs0l8 ASoVhS/WFiM+P/CB969ZvfLzn/8sx//Wd8Qe+8J+qbzhNrJoWythEi1IhG3Si+ZLQV8h6O3N7D3Q s/dg756BTE+uOJgjAjy6XRN4ibxvXaRVhjMACpT2pnZMqslEU2NDKyGWGtKtTY0dzXFkYnPxzWWd uwPexBWOcOeI2f7+0t59vdsPdG/vG+jigDyCJLOHh/zwKEY955QuNtWda3+KoBUd7Z3jR80Y0zQb DSFxnnDsLAaDfZX9vYO7uvt3d3cfyGT7c4X+TCE7tIfVKZZcrB8kIYJUQJG5xnZ25rJBY+P4GRMX dsQn7OneeucjP4yk2fvuNk9YrKBIYyI9b+rpcyZeFC13sE322ZoNdVvsMfWkKSSQAiuDe/s3/vCW r1YSpfNOu2r+hCWNQWeFvSAcs4RsWCnli/l8hS1W2dVdj95x7y253vxrX/WHe3bvvuOe23LJATPN 2/FmRClxCkjFJXYGf4X7t1MTStHZY2Zfeu7LO5MzN+5fs3T1zdv2rkGBgybFCyTeioc/fNzCmCQi 5fiEMTPOPfXima0LiS+x6cATdy771dY9a5KNxIdKEmylXLTzBrC/lAvFdMpiJhNIyrbKpuIzJ86/ 9MTf7YhNYicuyht3uoRFqHCCUK0IdPxCrDCPNiK2Iq22tnVyj5FSUuk999wDxE6ZMumxRx9dvvyx gwf5pZddCkBvb2//lVde+Xd//z5OmCRKIm/p7AgBrYc9oaZHViljvTAaFmrDEOsFWW58uERxA3o3 DKuO0FR34EXj5uoc9igW1qYSNnggq86FwLSMFfaf//mfZkyf+pGP/LcOaVe2+jymWV5P/FvfAxZX 3TSxFqZVIckgXuhrKxWC/hNpiUXEueu23YWdLHlsVLalxsU+N22sIW3Stp/iYGyxbFzgJ6I+EWSH hOhvU8WCDs8BhnnPzmkxnYqpYwfYikOcYrwgoKSo4xx1sayc26eFRDftrlMRW2w5HP4DlNGNlSLb b4ts7U8k42jh3OvEVUfpzMnwptAjB4hggTB77lI9yYcoP0Sa4CZvBrO2KFYxYo7Gi73lfcSUSFjM Cl4xK1qa3eZBWwxSjtT+7B1NVYfYY1pNgthKJLt/YNejGx4YO37cjDHzmyIdnIGo8wPNRcjihRGE JBNviA4EB9ftWNHX37Nw3oK+gT4ckQYifcVo1kJhDp0y5+MSO4jlg+006dZkx5SOaWOapnB6GR56 B0ub2VdzcLALv3edFyR8FUk3zymi+gcN7Y2jJ3bO6kyPTwcNTDCquqN/446uNdly/0AhZ+choh+2 46bSHDprzACq4kiK6BNtze1TR83pCCZjSC4V7UBcHY2sTb0Wc/HJ13EKsVRSMXuZ1hxNQ7Te8ROm YFUlxi+cLMIrPk0YaPP57N133bVp0wZwF89huhI8xhnqPe/58zPOPBsDrcTK6sFPQw5HHkold/oO qYFYG8DDiLAeiT34KR/5LYf1ybq3n5IWa+JwUizgSnu1i/fXv/71Zz7z6be+5U1/8Rd/xlfe1blR 9U2xx7TCXyKJnWIG4lE9QgrCgGeu6X7Yc2NoynNjEY2+OLAx260hqyM97rA5OQS5rxbCQsTCwYmJ oc7d2A4gIQJOwuylLEnLsVTJuaB41fe0C9aJxdomIQgnO9t0w3cEBTtkpWQxzsjQAloUikzvHCex pNyxpY6MUj0oFW8C40O5W+WVCf9zKJupfyJxxPds30BjS2PJyGY5YdsqTKpxYaFYNRifqaotSS3A am4hP49jnSF1iD2mHnOSCYNp0RD7iz3pREMqaGCvFtKeiKSpXcy0bocW4ugb4VwdY7YU6ZDhj/Ai rJsLWGhRDw8NorszhyZoo9kGGhNmcbfT9JIWQRM/d3ZIV8+9UQxFMXyhHPjKPCTMNQGQMbUgvZQt qorBKmG64fMsaKKbkHCHtgRskbkgjuzeSVl8b+I1WgImo9MkmW+VzfthEHs8SkUK7yDXJNDRHaFD IEM7vVWQw6F1oM7o0aMfffRxBFyU6MAwUiz4SuAkTgmeO3cuX5VYbw13bqqZLpI4/RX+6oVRrdUw EusnG8KhHbQjz8InmYCrhehdL/gy1RyOFpHOkRXYcaT6+0uy8jHN8nri3/oekLmBueEO4rbjQCyk qsEoaivEUPj6phgWo3JTtIi5tBn5Lxa0xgjfO/QXtQixLfgqEFypUkoSgh/JgG3bWMgMusvsb8hA ROSUZyBmvpYcFYnNNRXFblpIc6Z6rNwWL7dHi2Tb7P5QtzXFy83RciNm2krR7KmIDmzhN30byiNH jDgdjzN/YmXChabLxSR/sUpTotJqL1aaopWGCESZcBaVZiI0RSoNpUI6Vmnhj/3++MtwQkClbPbX WInAQJhvie9PG1vzmWSRABWgu4sDUKOF+q2fEsdTA6P5bCEVaWiMjcLeXyZiZuGQH6upFW2imujB 8YOctZguNUcLKeZDssysaEpX2psqo6OZ5kqmOVXuTFU6hv81lTuJj41Ol5AkHGlHsOLiIN7wozmB uDEYnQ46U8GoVLmjoWI3PA8yzfFCe6rUQdzEWNHmMLHqmZbRCn+NkVxTvNJO4nSlM1boSAdjU0EH +RBiBV+oeLmT+6bSaOz9QYmwJ/joVZHY48Lwzj/upFixiqwKi2yZTGJYBVDZn8PZbyiB3fFX5Qce eID4iCT48pe/vG/v7s4O28aDOZNds2x0mT17NkqJOLHfjB12/LsiVTouhhBrXj/sFQhahJJNPYLq LVVD4YtFzqiAfJ0AQj4RPblR1Ajb3ppsUG6+05WhwTxUwe3f1cF2OiHZzLF2mUSAo9OBA/s+/OH/ 2L9/75e/9AVQFpa/9mBh6UqGNP5OG2PFIV4YNbHd2e4Uwydz62FVyfG0Aut1ebZ64BDvpQMsHSVT 8POqfFpznuhTFax3R2TpPF9ux6dYPrVOlEfO2+dZw98f7vnhchsx/VCTn6p5R/97mDiInx5+XuzR 5/aSTFk9zVA6kvAlWvbk6aNhVcrwvf86Yg4jpn/qzq5qkE1OrbmqVR1KUP11pJn+FPP2eJRirdMd JrHxCGGUfUvJRFqYyhQHyUBcuQWddNJJV1yB7/CVhCzmhl06ixYtYi8pv6KhCkufwjkBpNQUKkWf kit9ev8TN8LjcBo5APPTmDFj8MAiAVVFegZ3gfkkQefYZuWCNIG+be0txEMeO3YsCMhbvKvzaBWO uPqKc3hGLmf9EnBz587tcAlYYVWKuA1ZZFVhXX7lY9Rnz4MFIIABGdKHiF3widV8ve45jKeegPUU L5oekILN/sy5sVrtodWt78cGhHr3ULahe98pjms9tmzDeQ4nairuKC9ft3D6o3/9KEupJ3vmPeB3 cNVmNdL0Cc+Bmvkwwmwc2humnI9p/lTXhKvD8JyrVVUN/d9IfTHiPDyU8LiTYlU1C/YYi+CavWHD hnSq0YI67dsrUAELMc2uXLmSY3aQHVst8kRTc2OLcx6KKJi+HaXAgdChvcAeYGTiFTfqPYn4NayD FTh5SVQmYXkj6xWQkhhS2IZRTeuIdcpF3JTTMundget2WB6CaXOzHZaHnM0j8FWXWSBcDMWB/gxq fByNucdd61vf+hanw77//e9/+x//Udi5SdXjiaoR/sl3i7quBol9QEeHr277pIu2E0brZ76G6jnU e+C3tQfqUuxv68g+P+06TiE2n8cVIo6WeMeOHaM7x9IXvf0WB9E8pzm+K5PBYMmGHKA3TahzC8AW cA4zPhfmT+QOHcRnO9yDXmBFIpQrLytHcYMlofrEWlG6VKK343qzK8/vvvuu+++/nzREwMDTSrtu HArqGDtt3TFjPpsWnDwaEbiCtci1OqKA+8WLTpICuaEhDWQDsYSm+tCHPnTJxRdKNT0iFkoSlVZb dRfzIVlWCu2RJlCN4uX5mWP1Uuo98CLugTrEvogH7zio+nEHscI8sA+o2LZtG75OQCwY5oywZSRF p1A15zFkRxCLn3iOV1j1yFjcJt3uBZDNS3Uy7kqQlflT8mgYYpWmBl8Fw17LKtxSZPO2ttZvfvPr mzZtweuqr68HyPRY6BDcLL7sU3Sva79UtXRyUBQnEvDWlMnTWlqbwGlOrOvoaLNjTErBOeecw8F7 dpSxu3AKSGCMLwc4njQ12RGz4cv2NJgTafWZxGi+gNAUKa8xXXXJ9ThYcfUqvMh6oA6xL7IBO86q e9xBrG2WcqjQ1XUQERbxjrM7sMjaidCFAhALvMmKyY3uTXDjeErb8WTPMRCZXnfI+dYrTr2uWHZK waeGw6teh0Os4EpSo4AZ6RkX5iVLltx55x233nq7O8/HVL7aVKOtDqiBeWkIxa0IQbVXR9MQZZjP 4fpNNYiMYdZZbLe0Fzaic9Qo8hzVMRpzL5tlwWAyhavoHN2B+Iv4zqUjb9UclOTURFXVE7lleT4j LJrz0P90lBOyDs9H2VH1ZL9lPVCH2N+yAX2em3PcQazffIaAiIsTOlVAyI5MJ8JaHmWwyYUeroAc FKWgsn6SaleKX8FMWIATSHhp1TsQhRXFekWLSjeKL6G35K/ECXrr16/Drwpp9vrrrycfnUNAMg7Q Y0e93XufXjYsuqgfiKfKU2ZdZa46A6gWxiZq8rHyoTnsUVINuShUp/Lx3JyWUynAFSVzR3s7blZo nPGxWrLkZJ2OQA7gMfKxUz4TctIUyEjVnsPwoHtMU60OscfUXfXEvzU9UIfY35qhfEEactxBrAQ+ JLHVq1eDMVOmTNmze5+dvh6P8alj2MEkLlCHlAMDg4KrMDSCB4IxPRQ8CGMkierSV683Dufj72W7 FWBLbct5AytWPIHIuHjxwocffhgmAIglJobb2GMmYCLJUTG+qlbCe2BSaG0id6EgtyyD0hKnVZMm gkpcvsoKNMFDixuWI0dz3OKzmMfDmnvbwy/FuCzTDonLuDGDrLxFnoa+KJ3b2trbWwFjZwAexRMJ xOAuBXFsxTFNuDrEHlN31RP/1vRAHWJ/a4byBWnI8QKxXuLEUwlEO3iQI3Q2gl7gRzab064VPoVb ElsFohLsvHZUul/5AAtWPdBKKATbpET1UqwgkHw8HIYFPmXupVhukK1vv/02wH727Jns2QWxFixY IPOqbX5NWJwRQbJQcKjaZmAGfQ0XXahYblwdrMKYmFU37uVgVZ0NJcLK5YjjxUlMhSwhXAdbGpsI iUIQG7XCf/b2dUvE10NuJNk7uZaziWwTkS5QFi/n0aMNbgFdLrBZumjAuLWt2ZB+KHKPBS6x5lSr U9ULuL25djqUHVFgVdVmIb9lyG7YohsKdOUZIKmvNS4a9DB4+2kQGjhTsHsyNwzp65s0XhC68ZIr VGYgrc03vOENn/zkJ9mz561aL7nuqDf4qHvgOIXYbdt2sScHwQsVMcAquDKpznntcg/CCWKFKx4F wxArpPTU3MuUHpb0lii+Mgn3mxd/hQokkKcutthf/epmqjdp0gQOzluzZg3IBMSCXqAUh+wl0nYQ kBMi273OtrHB7KZAnfP7tYa4Aks0RACP8CoBV3GVVUm1jgSqJE+cHF8N6ENth3gFpFvTn0uuVVuE teJCJPfzrigFDRkcJGYWbcdybDHtUCzj44xX8/jxY91BRq3Unf6Hy+GjsdF8oak9umeLfxe6ShyS Bo+iIHmcQ+bOGjJmZWi/pKohPkawOlwgplY+wbCpO0L0gxASHwqyMRywj3oV1BPWe+ApekDLULzv 3XfffcYZZ2hre73j6j1w5B447iDWnZ9bWbVqjUALh2FQg5kNPHgpViKaJFqPKJruEl4ldApfvUQo EiwM9jKuEjjYq4VYdZwcdEmgGy6k2Btv/CnIOnXqZPJkvfX32YYiK7cqPRuc2LEgadMHE4iCt5rb QN/m0R0mMjY029ny7S32pHPsmMYG9vU2Wp3l8OxcjgfcGfIS34BZw1oHt/SC4RdnmFlISZODiZup /lGT1RzVnPQgqwBbl+oplgVZGKlaoJ5HRjZ1QCmbG8TVGlhUEwBdgNUpljubm9ll1OHYCA7rbUHx zJO2NuTqdHMT3lgmxRqautDbuWyWxtfQIHcM6JNiX/iKKVqkxiVcTw/Mvl3iHsL8U32R13vgue4B Zh2rRAHPvSbsWH0Gn+tK1vM/DnvguINYaHB3d8+WLdsQoUT9czmT6gSxUoR6iBWQePAICTeHjK+i xfpJ1NmnFxSJiEsmDkOyRktnuSsHQSxG0+uv/9EjjzwyZkwnpmLO/CH6hKmmXd0MQ6wksbdOWW2H MVRsE6uFNo+VK0VUrNFEvLnBZEPqQBgoF6GiKvgCZsAYMao4jaSt2fS3sBrmNBWYQRe5E5GWo6fp BOrWPzhYcLIpkWOdZlg6c2smemiewIRQf95w8q71FcwJPYlQ6torna0DbDtWKmvaAnQEWetqXLON iSkaH8MpjU5aNV0Z9mPuCa2BAbipKd3QmGppbpOquWNUG5usTBfd1NTS0kQkK8nfyP9Oe6/9uyNv HxKX4y3fUi2IPxBj5IeSJ+HNSB6VXeZ11fFxSGde9FUS0ZCGyU/R+mR70Y/rc9+A4xFiOfwVco+i FZWsU2lmPMR6yVUSLf0jG6qIrEOXquqmRsrx0pIj9HbVkGwylJwkjaUHY577cPwS7AD7H/7wB0As wZg4b4CbjRs2+JGCwit8kiDdjkCxw7x0xqEFaTcrpY4NcSKlU/8eGme+Wrx1d2IPZWEjxUmpKji2 IC82jR07Hu+qUXgTjzKB0sCsscnYajsR2PYL+cpLikUNIC23O5jIdgpJn6xYGfAtrhslFJrVlsRA rDy2TMwFevkGdDv7MXt2eU4C41Tc8RI9PRxnZPDMYxOp7TShJIDKYWXGNTS1AsD8i8W3rbWDe7YR w1jQBOpMYopzHIA7ZGoYOErqrV/1HnjBe0BzWzwfGxkwq1Clui32BR+X478Cxx3EDmZyGDjNoplI 4KYLOc5kOG/5kOQq8PNeTorF75WH4iuFtWEtpYdMslVuJBOaDpkzD9kLTfx0aYRzQmWltNMhKpUf //j6G2+8EaddgiSzh2fZww8DYMJLuS9Vj/RyJ1+za4bH2CkdI2CYgRhqKS37QyGkJU26yhuqxBK2 nqvhqd0RxIRcN7dkZxJG/ZxuSIK4oCwbd1jwo8eMx/SLCwbSv0mTHR2AGTdwKgoRJY26xHQuNRDl sLyiQE2kVWtvshotUkjszbv85HQKltapBOyDh5z16CJsaBOwyb5OhV8c6O+lyuRJepTPxsE4DgDB V9Gb+aTaqqEpzJ1jtnb6Uj2ZhxHaqRlDGpZZNZTS0XmFRIjFqUuxxz/ZeVHWUFQljLW6f1E2pl7p 56sHjjuI3bZ9J8JrS0sbZNptGGVOV9CIMr+Ncju1sCP3VS8nqL5muVBTYpyHrjDQmuDl9JDCToGN 4JknHps94Rb5lggrdlXmWMQvbLFf+MIXJk4cP2fOHHK45+67BTykAWZGHDt+ciAEONl5xIJ/94pZ efV1SAq0lJLRh2C76nnrsE0PqwBz6DQV99ydnm3wDGgBt6CX/IcBML4CurrhOTDnvItbm5psB63b 8muwRb8K5p3q2ARf98TqY2CZ5avppV1nVussfb5X42uABvsHNAp8ZRxh/MWgoGYnJQPKDZ8aUHW+ QjrL7Vlq8+aWRipM9SwOtUNlLud4ReiuEdymwmqM52sF1ct5qfSAiACTlkkocfal0vJ6O59BDxxv EBtZuWo1BBcbHiSYSQx1JpgD0Z0AIQ+rgliBEJ8jQmwYREXo1UuSWQVmYbWq/9VLwIJnAS2laBsu awxa/4tf/OI73/k2zrdcAMCtt9zCwhN4m9fP0OUx0oOinuh35Q+YGig6jyr5SwvLdSP41z2fEkNd W2RFFszoSANBspPL3VHbI16UAuiCXsSNckGS2S/bhhYX3KUtFsdxzCjER5S6ZgNutOAVNJyjuGvO NEYoR5lMTZy5l0oireLjLUHWHiC7I7yaTbdcGBzI9vX3IMYjwuK/jCnXNi+5z1w+w6+KSSncBYwF 2BomdNHmN+YuQa+M07ALxPloaWptAYibWtPwCQkM2wGtewbLof5qvQeeugeYnFKG2XqrS7FP3WEv 6RQvJMQK54YUL4gykd6egW07tkPinQbSVK/cDO3PcWERh64hQcqwSvea7mFh1COc1xgLLL1+2BkO TWQcUn4eOt7OTwrBHvSdZICN4kI8+uij3/72t7hBigUS7rvvngNd+3Di8UA+fE5RlpD1cNPNy7XC YFyklLL2FTusjH5xgaKcwbd66fmQ95ZvstyFUEo7VHcJTFldNQArc0WAUrewSceFjhqF0GhG31Gj cLwaPXqsnLBAYml0JVAqFoenMi5a8iHVmYde52BlAGxnhgcc0oB3NH2O/xp7ljIc2mw7kWIJ8BXL sQzGdLvglsEV9Erq5TmVNIYjGskWsoloorGlkRjPqcZUm8m9JrIrwCRqc9VTW6qAapihuLl9VbjH 7VmGXrrE93B4njhWxhgF6zLXtxo+KKq0EU4LIgqrkXrS5iLPZqFv8HPSvU65xicdy6lth5syL+zz qvHCWWWONfz1yMdRaDZrHofvj76dVTcHvR+y4j+93IbKfcaHZxxt8c/wsNtnXM+j7+h6yqPugRcM YoWLkt6orWkjK1Hi/g9mTQ/jnlTjM0idiMwp66C8eHRJVPWiXojWH4roFO4KEnutrIRIb5UcscdI QCnkrxDEwAkAAAdA5Kn//d/PsHtn7tx56F9XrFi+dt1qoEu5HU3nHwFrq0h5mFxqyJCaz2dYbVVF U6fK1f5UDx7+xjBBh7mb8ZgcqmlAoGoFRKEMhKyj0CuAVfJ8lgFVNtTJkycDZpxuyyG+ABuoRjIg UAAsnybhk6oB2jqPzOpDhiOXMTdmNjxlBu1oB23epZ8Zd92L3wJ9pcbgJyYJxwiyzUjzQYpoMU/Z gUE+wVRK13FGiiWJyoF7LNfsOZKbGC1CS8++KqztchpXwzWAsHMG5EOUWjPNsSbc0F1SElpS0jsd eLVFXn0y1OrqhuDQeEqJcuh4hqOZMMdfmiGIdZPkGK/nCmIPVaMOscc4JPXkz1EPvGAQq/Z4kwYi DmC7du2GRAr/UkNT7Xw175pquAnDVJFUL85Kc+ulQ1FJfuWJng/vNSUWuAoR/ROlD3/qdYlN0hXz CXWGFfjEJz4O0E6dOnXx4sU7dmy7/4F7SWmOUcWRlbQeY5TnobpVmXYRYmchdjGNi2WTniVFOW/k 6n316DoTwsys6zIjjaPaJpEZDODG7Dyv2GhLDCZkpup2F+FxtSZO/BrClapHMT9h6HTci+38Uf/I fWnE+ac+9LZS+SspZOOMGTPAYFl/gTRdpoJua1Pw5BCqGS/gtju5ukcMtDzEMvp0fjaTx1iATxbF oVg+0N1l4SfRVbvIX4iztrU3Y+plsBb/OAAYqVcbvWRTcOZ2GJG4FM4gL+f4mr+VuWmzu9dxDE6F 3tbSznP63xDa9iubygCgN2YwGqALd/+66F3OhQ12wWRTTRVtDINbxL97qMv8BFNv18yE52hhH3fZ hnjDoxXqatrwzHOorr2hoarto2OUAp9eM47mrXBLRwrVIgo2bIiPsf7H3RT57azQCwmxRoyqCl6T CfK5Er7EJngNyT2QRcmyJp1kTaARrQyjrOypAkJBiIdYkbMaACaNLJruDNfqtlqnvqvicRiYPRjb VhZH63mC6HbgwIGvfOXLnBeLALdgwQmQ9Xvvu1t101ac4ddwiK1WWOfGs7VHF+joYFWICwoO1Ses RBrhnm4IUMMqH1VCnslD23iUubWIwIfcDPWYBDJX3CH7ruqmHtURAhoFXaR3ytKqfKk+9+I7JSrS Mim9Stn7K4G4PnAjWmi+OtW02YMRK5XMKZ+r/QHYu6YZzlEQ9+Bmz8G+XME2E+VwQM/h0lwCbgf7 BkFWtB0UDb76aFnAsx19mOk3ps0FsMRIjIgMPnJS78BAP1t2rVUYnJ3w3dzYDJ/X2YmqvKmjrR2P bQy+5rndgg3YmANDaKCXWmlblnWfRbaKuUc6ddHUMw6Ga0jhSxRfn7wejgZlRlpCWiBuah+6Pfas D/vyMULUkwXlkZf9CITgcFUPJa1D7NH25osg3QsGsZJE5UPk7IXB/fc9tGnTptFjx7gAfs0yf0oE cYmrUqzXEovECx486feY6nFag+CBU5IZr0izSuaOcJvcPIQ0biEfUhtWtdmklOGWikG+v/fD7998 883JWJxIxTwBYjMDgx7OR1hZoXi8KlFkPdXQ5CDKNJNV1bfFdPIeznY/1CgDXUtq9YOxGApfZUEp zLQZLtSho2M+JAeHBPqoAXA5mnAiu+sJx5oM8QbOXuh6yepDGrfPFd6iWg1+EmzrEqficrDL18E5 V5sqIjxMJKAbLe6VO7OIS3tkAS2UzNy3tZkNddQo232E77MLZ4FsiXDZIa0vIKfZgnFZ0AvNdV+L g/1mskVbD8cD1iLLurgl5kjFp5gkAmKZldfUzP1ANNXu6t6vAJNi5pDYse1rcqKVZlRIk3SVJAKX k7/TjS3NY0YRV9LtS27n+EGTzokx2dDc0NLYYrWqapCdbqFk+629QeRFQBJeTFV0LutiDZ+zaj8l QzAMag9B9VO++5S1HtFyf4h1e+YFPGUN6gmeWQ+8YBBLtb2WmPt9+w784Ps/gkSeevppgljFKvNi qwXPHwqbINAVQffSlafyYULvkdIDgARWPpXeI6tHa4+veleVJP0QK2DoyIs/+dlPv/Od71SKpVmz ZkyfPv3ue+7sPtB1hLHQqpA4SDKR3Xgy0T5qtHmLuPAUwkKrv6uYGuIeCN6sPrgEWf35z4yoLpaT Sa6oWRHzkICrpMZKcgrnMPipRTSGpqN0tW/OjAvUWwWsSyJAgqUZAlG/KaiqoB5iFNSBvntVectL rEMofIce8qkWeWZIrJK4DeGfy03Zyou40UVwTAl6LXhFmylyhW1t7aMMjJ31t6EpbWDc3IZV1YO8 4W7JFM6yOLDH2lTKgxaruZ8dRbZ3yLgrg9+cScNm6HWdXXanGOEMbdJwb5+hr0ns8AtO6ewOJWTq 2MRjg3IqRTxJYxRaTQc+fsxYbNJjJ0ycMGHcpPGTCKqBvlhD75uvORC2nT+zJfxCvj3iWhuxQnLN e7KOR8qnZ1L/Kpg9PXnymRTs3x0J455NiPXGIHV1mKD5/hxa9NU1+Ky0q57Js9UDLxjECkuGaE3k scce/8XPbyZY0oxZMyXlQOa0HZZZ5aik2wviVMeCWKGUnFw8HHp1pV70P1WhS866oRBIHtUERcon jByeGnIjiY1kENbbbrvtc5/7XF9fL8T0rLPOevCh+7ds2TKMiBwaJqGLyKtWi7m5xqKNrW2B+TXb plRfW+CyBr2qC2zYebdDuREbyQV/0CF3FmQYWdg0w9l8xirBqvd0SFSB8IgGsU7ViSBreKxuJNZj kf21KFG9JsAZMqtsgR6GL4GoF9TU1SKmsYRFvfCIW9PDYZymNzy9FhqJ++F5Vbh3Q8Mr2sBDAh/C ghsdugBn1tFJ5GTbBwwk6xgG2YYTccRfOzJIhl5w1YW7KmZyFpqKmYbsq0tSr1zbuNEOIj7NwSpr 3lhyCNDRirL1ascUkjSfxhC0to8bP3bmjFlTJk08dcnJHGrEQxuEoY3Cfi49W8v4hcpHnupaMkzm I1QjDMY1k+fYKl/FtCFnq2eE0NWSDyH084HVx6iO9mz3UDeJtTVumpV7yCJU/bmGbhxb39ZTPwc9 8IJBrIRCiBRwBaW66aablj607JWvfCVThydccl0RFeZGqiBBLJeQUtrI6pxzMq6os5AsrKATnAuQ tM9EOO2xOeweJXLgiYLEVhLrRW5QC3JS7Gc+85k9e3ZD3y+//NKVq55Yvny50ZpDutInDZcgVq97 PgBFcVvnaCB2CJ+cjtGdV5OIVs+QMex3rjOog+3XofZ66DK53E4gMHuus7E6ZxuTTGFBwDdys1VN z9BkOzmAraoW87AAytoTuBfb4WohPkhJabIHW/Od7dZLtB4p1WlVedSVqCHwLIL6wV50ZFc9WRXc qyE4qscHSZjzdEGZ+BL9EAjFlZU6UCYGoa9HfRvcdILJI69mLjlYuUAc42wzUiuCcGtnx6jOMaPR QLNTiGexBPt1k/AY7NQdyBL3eQBfZaacbLraLCS4Ne2xuyQccxMGWpODXX1I7/Zzk3nT+LFjzjzz dJgwnK5txjo18ov94kzkclCo4PUfDLIJG74lAi8UpPmMBnYgYzkwswX35tLu3PGqUUWrSnSOrLRT KPjUGU3E74LJiwac4iRHa1PJkDNFuJlPPow+sUlDPXfEjqSGnANpjKQRDnImh7ALd43bv2MOfOaH cg4ne3pRnI4ZUH1FXC1wGCjAExaCAdoRDdJsPYtH6CVnHQldpUiuFBiRTAatjMKLfYL9NtX/BYNY JggUCc0emEjc/y9+8YuTJk0+4YQTJKaYE6k7fE0ikeDBgOHQIeRPCpGoZBoYkXteF5G1eToU14mv 7jC4qibT/yTCrRdF7pWhQd1QwMWw0AzJRmb94Ac/2NV1gPsTTpgLIX7ggQfshWoIiKOaJGh4kulG 7I8EZDCoSLi4TuUy+0iM/gw1ZyivQ0vfV9VX2O+6Uf0PgRZuxW4jLCrYKiga+NKu6vE7Qiy/gQc7 pmlYQ5f1TCmCaGcuykP97G9gBXScrEoU3yOmxD8U9FYReshshjeQHwhjI1zj5J0rbbG2G3HGrt6t Vn6oII1XDRdlAwe9d0SdCtCTpLGT/wjrkbNjUpKchJtMUEq6EbemJj5RPAPIbW4fkoXhQPJta0u7 gxk4NpdLXJEmHnn29OGoLL9luwS3/ISMa/yKi+esh5KGUcizrRep+qKLLrjyZVeMamvOF6gJRD8c G+jpEOKjmmHPOBFNdiPrrJ5ukPha4nSMYP/aA8u2da18bOWDgwN9ixecOqNz0SlTLkgEo/ErGAx2 7d2/d8boEyOlJOwa5n9YPmA2b4dgwHyU73jwplvuuvHdf/2O5qD501/99II5J73ivFdHK22JSgN4 XY4UstHM8nUPfef6z//J294xd8wZlTwrGQbX/A1tIplRxHwLmZLGeqL1ETPHqVyROM8L0Uwp2Pet m7400N//J6/983gwKsiY8sNmVAm/xSihUxxz5uwjpsKJaeXykMVo69gmHnOY4mK4yQWRBJuqcSWw uUpatmm5bYRVlZhZ7c1Yw7uFknkbwMyaXixqW9TgNo2Fxb1OViq4YVEb3P3RD8UtZCnzwWZpsRwn cmpggkQykorE8bDo2V/Z9PO7vr1x3caLT3nNhUuujQbJGK51bpsAnAhWDLjxPf3r/+8H77/ooksu mfn6JI2tX8dND7xgEIveV/pdCNeyZY8ixZ5xxplw+jzSIWgKW/+UEBtGRN+rPGSOiv56vNRXPRcy CVk9NoeRSW/xqVXhNKWH9NLY/7DtfeQjH0G2wRCLSnLDhg233XorNLlUrB5LcDRDDMnivJpWIDae FMQaMwHEppLs2nmyd7HVLtxAj7Kq9iFMDQGea6S9VE3gUBZqBMSabtjtERqiocJzBHTIUO3WXgNX i2BsUq+X5CSxBe5sH24ELVIwcDGIvm8pRZpkXdarkoMPbSaqQqzV1onsDmJj0CUXwLLq1Oab7Icv DN7qAVTT1ZyhQq4syCckmDarseFBtydDG4LJSu5XqCVMDm5ows/Lh3JULAtk4lGjx7kek8nZ+kzx masxPgu2hVcKZ0m9/Lh16+Zdu3ZxJOAVl1/yile8vLkhzdGBxKIKzZDjF2KHKlmtoXQG+aB3Te/d ty+9EQzgqEbc4bAtZLqLk0bNu+S0V2MbuGvND59Y8fgbX/5Xo5JTYyahRogy4nYyxcCPcpBZsfnh tdseXXLO/PZY8ye+8ZlTTzjzmjNekwjGAMnxWJRZVQgK63Y9/sjau84+66zJqUXRSjP4zLDk2a9s XE8M4sBRVORZzAG/IK0xmUxQxjRTyEfp42DP137+WUbjnb/33lQwLk4OxUQc+DRgIgyKnZkDXNmh jnYKpZ2B4dQ2NpM519mJ0Rk04fFYA97ipibCOzKbT6ZwhAgyhYxpPkywtmlnPgymXooD8HK6KJSy YLILp8rEizrLj/P3156vaKl/sBc3OX61CGZORke/xEnQ+XKW1ZYM4uUiX4vdwbbrfvXF3vKWieOm nzTpZXPHnpYOmuJBgvLIp0jry/l0NLml7/FPXv/3F11w0TUz/iwdjDsa4lNP8/z0wAsGsWxoZNO/ zeJM7vrrr9+5c+ell15Gmy0Ej9MlytDFE8kQfHpZ1muDjRAP7bcJI6UA0qOOulJ0WWAZxtcwPnlk 9e8qHy/jUhNWIxDb09f33e9+d8e2reQGLCEF/eaOOzjVroppRzd6JsUmk4RCQFVpBbkj54As/G3R 7z4lxIbB1Ve4Svh9k4cg1h441sJOJbDUzhnKzqh1/7qD6iixVOZYhSqEWIQI6ytLiTK69i2XA5TH MkPQxR+o6A4cdIEVB7MDhmbSRTvDpcV3MnfimMvKveu23sY45M+EbONoxMubaIE0HEVCdoyO0U+j q9xYK9zGJKRbg+uh55bMna6rEBDVTVBR2x5NPk4P75zBXHgQ5AbLze2ITqZNsTk07vJEs7JcNGmL +WytBiXMrzrFi1TQ9M8pc7DCndgOQWowtyzOAzZgTlioDfTFvATwoILu7e/jHm/zLVs2jWpvw6Yw aeJ44MEf33R0M+U4SsUUzUb3fum2fytGs9ee8+axyemxIJEJeh9Y/Wu2sb3y0jdOmzLhR8s+uXbD ur999SeagsmJACABRfAmyyF6IowiLcJdZYPuSJDrCXZ85btfOWHykqvPe01jMNZ2qQU59CjxoAFn tf3Fbc3xpkTQ5FTQIGKlEOSLQbExaGf8bdois5YLHDDRV+5JEXHE6QaywUAkyGeDAz+69Tt92Z43 X/PWdNAWD1qS5c5YYGFtykRAiQzkgzLPJYhCYgynTb2cGSgNpmItwHwsGIwH8WK+IRVvqbLaxSyY WInlkdRRbuOCGY2kscVw6CVeDdGgqZAtN6SaifBdCrK0IlKMswSYMQjJRatVLB40m5NBjF8LxaAM WMZN/QtkRguVXCHRz9x3DhJFeqwQdGeCPf/xtX8/74ILz5x5aWswg9eThutspGtibcHr9OZ72pKj d2c2fPL6v7vogkuvnPL2OsQeR6sFFv/973//C1IhOEnJAdu27bjvvvuQBSdOnAQhRowQEEKOhZoS Ir38IdnI46KkIg82em5UMRSk2z9UJkIj3TuSWhV2ww99hqTxoMWL4uJNgZhMEnpi+7atCDdE2ofU wiUg2h6bh6QToYiBFGXpWZFO2WVVAuYUZq8quYbvVTf/GR4+nntWQ2lMchgSVaVJt3gUWFhRF2tH rOPEDX34KzuDsTHjgBBioFnITMVMGtDH5e16zZltbQMRL9jbgAkiRTKdTDVwPHtLA+fHEvq4k/Pm ca8dP2HShImTJ02agClg8uixo4mGzFkEGEQ5kQ/1rIsy3JLLmwIfmmm6OTtd1zxpkJOZCDYX0L6Z GR6ahi+XnVFEDZ3YYumRPpzBzTTUsAcAqKmEIZn0p2VlreYlu8jFWaZdR9hHoeg8hKtytmu9GwUX mcpZdV2YSNTftje3XKRTiqViNjPIKX4H9u3bvoMpsGXTpo2b0GNs2rB186bNmzfxaPvObXt379q9 axdBqUhPxRqbGtjHS84EwiLfF2TRPe1Cwwwrg56P9txwx1cnTZ1w+pTLEkFHpNTQEG0dN7qzubVp yqQZK7YtXb3/3lI803Ow0H2wf9KYyRu2r7n94Z9NmNG2aduaVRtX0gObdm6+68E7Zs6cjNL0rqV3 TRoz84QpJ0KOgNV9/dseevT+iRMm7e3ae8+y28ZMa28I0r+6+6Z8pSfVHnls8wMbd66JpYotDc0c mQhml2OZA4Vte3o3Pb5+aSRZCNLZX993Q9CU6WxoXbp6aaFSmDF3+mOPL2W7c2t6jDE/Zj3O7epd +9jqpa3NY9g3x+igJTayE8mu3rP0wRW/mTB5Ynd+z71Lb85HB/Bbx6fA4r8QDSaeL0R79gxsWrrq noPZPR2jmpiHTKJNe55YuXb5+AmTk/FGYziD/Jp9D23avXbS6OlMzEq8kg8GVm1+eE/39s6OMfCY PeVta3Y89sS6R7Llgc7WzqLZjKPFWOaWh3+US+2PNcbueuB2BPGH1961dMttPfn92JI3b981bcrc NetWrVn/+NTJE2NBOh9klm2+c83Gx6ZOmpEp9t2z/Jczps+a3XYqMPy0B7r+4rPeAy8kxAoDHnxw 6ebNm0877TRBHeQsbPoigUyFUksKXz3ECvyUj78EqGFclNhqRDXkx+QJq0P6aoQHj7vKVuAUzkrP qSeRcDdt3Lh8+ePcQ7l5vv/AASIQ2ZGqR38ZxFaQj6DgVNBMXc4P2OovBFC0pqFr+P3hnvjnxEM4 1EVSigp6QVDDVWfTkWOxQY+TEC3KA3EsgLjqHzy+6z2rh9VNAOzGy8WwMI2vq6N1jQmgmDHjSfEN DrVQhJvStbG5iV0tozpsU6ntwukk+JP7b8zoOSecMHXadJB43Pjxo8Hg0WPwDeavxcIvNaNOdxXH CmhQSo4mNLvD+DhNzw4DQvvoeCcciqg1Wg/+c1Vj6OP0KihN98pyRq0AWpsM7onmmGPjrI1Dk8Sh u6l6jdWDbCLSkzmYDoRjLE+hTrYjf+LIyEjipuDHSJDLZnJsz+0f6O/rOQjHhZtB957de7Zt3pwZ 7N+1c+fmTciyoyZOmPgcbuQ8+ul3LCn9jKI3kF+7sjvpsSlTpqWDhphBXaQhaJ7UMQNW64lNy1bv fmAg15/pQhkVPWHWvGVr7rlv9c8ax5QffuThnbt2zFk4b1f31lvvu2nukmlt0fRjqx9rSnfOnbGA Kbata+NjK+7KFXvnTpu3ZsfjP7/3u9MXjGlJtv7olut2D27oj+y+++HbN+9avXX/6vaxje2pKQDf nuCJe1f99J5lv1i18YF8pPdAbsstS68fNa15UuvUR9Y+hl568dyFDz5yN5zV5HFzYxFTFxVjfcu3 3rZu6+Ozpy1qaWhnmpoSJ4gUI333b7/hrhU3JVqiqzc+tmz5PTv3b+zO7xw9vi0daSlHC33Blt88 /tM7l928atuDa3c98MTmh9krNqq5dVvPuvuX3TNlyvSWdDuzaTDYf8fqH27as3LxjDOCaEMecTy3 48Zbv97QEZ06dvr6rjW3PvzD3yy7aUf35l3d2/b07Ro3cXw82jAY2f/dO/5rb3ZNNp9d9tgyZtra LU/syW4sJTIDmcF9B/bNnD39zgdu271v4ymLTkLKzwV9d628fs3mZWcsOrcY5H+z/Ma5c+bMalmC vH4sA1tP+9z2wAsGsQ4F2eWZveOOOyBz8+fPZ38EEqH3s/HSmBn8hmJEePOecNGD3yEUGWaYFL4K LMPMeBUtnoy+Hob9W0Jrve4JNDegCOa322+/bdXKld0HuwmVgGgC6B6rFAtZMa8aLDwYmKow5ZyD QhFshqhbreRag6/+q9qriWMa0mq2VfQWHJrE6nQEkuaE6q4/D6mO1cPqAbfjpXr5KWlj5MyqTqh1 bJDTN1SZoZCdW8I0l5nYQTtgUL5R1vQU2lrnWmRHyeIADPKyu3TiRBN9J0+eMmXK5GnA7/QZU6YT sHLq5En2eNSYTguMDGCP6iTOoWRWtwEJwRR3afDV4J4L0ZctOcYToFZG/WzWaHPoogNkNVBz/IxS 11WPNzD53sRX6ylA3HzRrFVqMK21b44jQdwlJ9tiDOCk0HEk+E8RuF3fWWPhwLZv396Qbli4cCE8 yHO7sp/V3MMzzTKOlMdPGbd27brHH1uxdc+WdDP7g90kcY7BYya0be59nO5+8zV/duKsMxJBcs/g 1ie2PDB56tgLTr3i7JMuSkTSm/et37V/40knn5AIEstWPtbR2T5jyrQD+V2PPfEQCpMLz72IETiY 279h3/LZC6e2xztX71heSeY5PvLs0y+aN2/u1n0rsoWB2WOXoCy9a9VPEBCvuOTK88+8sK29Y/PO 9dt61y04aU5nctz23XsIK3Lq3CXdmb1dBw5OmjArHW8y/izof2j9LY2tDYumnZkMms3lyalz8pHu NQfv2dW9YcLoaVPGzbzigiubO5ruf/yOxub05LbZ8GLruh56ZPW9s+fMu+KSq09YNBc+CrFyztxp qGI2bt2Eg/qkseNhBffnt/9q6Xdz5YG5U05JJdB457Z3b9yyY/UlF1zAXPrlfTeMnpa68KKzz1h8 RuOE1Iq1y9hUPaFp+mDQfe+6HzZ2RE9deOmJc886bcaZcxfMGT29ZdXaNQvnnHzVRb8zJj522ZoH 29obF808EVEVt+3Hd9+2e/+2i058ZTlWuWv5TXNnz5vZXIfYZ3XqP+PMnp4n+jMu1olE/G3atGH/ /r2zZs2CVEElWcleVBXdFy4eotp+E56j12GI9ZAsmAzrk8MEwpnlDqEOiYUNHj88ruiJx9cwJMs0 q8D34AGh8PnKIS9PQwFo0iPylsXih45X/3Su+9D1JBk93PW+c8Jtd42tAqda5ztQPaN4T/Yc4RuZ myDGtu8CN0yMmRbo2InTh/70RFFA9OeQ1P4sb9yyMFu6PwuNPPTHV/OpMi8R+7N4vphkB4mqaPtt 6T5ayH5S8A84zOXx0c0Q85DNMfoj2JL9udhMoGEincIpbPz4iYhNU6bb3/z5C0866ZTTzjzj3AvO v/jiSy+77IpLr7icv7POO/+8iy6+6NJLeL74lCVTZsxEW8271Z1axgK4gE2c0Oc8n2WSCO/G0ZbZ XHYwn8NhmLCdxhC4UFfmzOXYOnMQNUHZ5GjbjoLwzmEGGJsRp/1zGTfo6iJmwUoJt9u2llZcljdv 3rp3795nYQk9r1loZlYjvSSDxvZg6qsuftvVl7ySjWy/+M13vn7TR25+5Js782vgbJqDUU3l1nim sSOY1WHmw1S2L9OSbpk79aQpicXtwbSGoDVWIdZ0D+rXZJDqOrgv3p7tDTb++oHvDub3n3vqFS3B 1ETQiq0yO5DjMCXc7NhClaw0nzb5ktnxs+amTy3nsitXPxTBkaPSu2X7lrmzT57bfOGk4Aw+5048 I2I+WKnmoDHfl0FFiz110cKTcQFfvemxXHCQXPd079+xs2vqlDm4G5rDUYHpb+5/sAhNyYaB/Znp bfOXjLtwdHDC4gkXzps3f922lQNBfyboX7lhGa7mZ867ZlywZGZw4fkLXzFYPLD6wINsK5o6ZdbO 3esywe5yMLh7/07OO54+adrOnevjQT++zevXPTZp1KyWoHNXfm1PcXNzWxJXarbNYWRqnxY8tv62 XNCbDlKJIN6S7hwXnzej6fRoaVRnMG1KakG0v7WlNGNCMCcRpJiHvQf7zEWZasMZJIO8eW0kB3HM wvfpMLHEn9eZUi/syT3wAkKsGfO2bt3KvkwMsRAwt0E25yFBeODBowZOhktUvl16RbKvcDHcZC+J KgeVAuk8HMT6ZIJbj7jMZmLcT5o0CfkVR1MXHRe/Jzw7juGq7hwfaqaTstFtuvofqvWhTjhC1rVy xlDScL+pZ9xOB+fNi4DlktXwMV4zL42CECgs0Ybv9a7tgnVyqkMgt7fWcUsWCsMFRTIXD2foddCu EoyzqQZOgsVxLkhqBT9pyylIh7qA/C0kU38/dk3tk9Gw+umB/Z5dMTA6M2fNWrRo0UlLTjnt9NOX nHrqqWecfsnll73hjW9871/+9Xv/+q/e/qfv/MM/eP3VL3/F5ZddeeEFF59z7vlnnnXOzFlzJk+d QrBGlNj4kRKdmKhSXFiVEUpM3jXR1aI/wzxwDB60Xuf/+E5Akez8qKsD5isPnyB/AlpJDZ2rl10b N67HwfgYZskLmrSGczUfAfNayuP31RJtn9o2+9pzXvnWV/3xVVe9rLd04Bd33pAtDyLIJiOJWDGe DlqiQSO7XVuaO/CWbY2PDoKGSsn5jFXwIAMkMEBEWEFbdm264d7vbdm9cvLM0U3JjnKQIjIK0SoV +RKPukQM8GtJBa24FMWCxobGxghnXwWZfQd2rtu8fszYycmgk/1C0aC5vWF8tJjIDuBRXGBfDdu0 ikFlTHQyjsE7u7Zkg4OgbG/2YDreMnPMQhy1zD/4EOtZYY94U6pt+tjZqaCNkyASZDiqc+VaE5rz weC6LasIwdkUjK5km+PlMZ3pKdli7xNrH40HjfPnntLTv29n33ry371/x9wpi6dOmIdIXQr6BoI9 23dsPPGEM2JBy6r1T3T17fnFL379+e997bNf++K3rrtu7Yq1a1auZmcXBzTi+9ne2AkSx0tNqXIL zln4PGcPVtqSY2kaM7CZ6J3Nzc7xzxmA4vB39IN5LWiD2Qs6WeqFj9ADz/eQOIqjsHkRDFUPPPDQ 4sW4OVjcAxFlTzdFgiVe4IEpqJOG1rSCQ8pbORs7TWaVRov2+a/Kx0i800xqV4nmon7iRu6dklNE Fk2d6ALqipQrT9mDVTQpqQZkHdUfoZUPHjyIzw7OO65p1S2n/ubIU98dp6otRpBpC/7gds5ZNZAN Q4Kh2x9QlVBNTpVdVQ/ZU8OfLbaqMdHhnDtIvXpMrNtp6vDPBX6yl+wEHyvFnEYMRSwslGk9bVuD e/vQn/rK0g5duhd5Qoeq8Pc2ZLblsHpgg0OmKoJXE+QLbF6kAPMrtiNsqqODPMtzPnVjOztc5CAC PPDYrKbOqVnWYQumad6fZX7kZ91ksjnO1yHqw2Af584S9B+PUHy62N1R6CUOIh7s6caJU6YuWnzS qWeceda5551vwu5lv/v7r37dG970jne++8/+4i/f/Z4/f/Nb3/aq33/NNS9/xVlnn3v6GWedeNIp YPC48RPbOzoJ2YgDF7YMba+0iGN53KfB32pwae3ecT3rTsZ1YS/Zj8uQAhXMGbysoY1tHa3LHn2Y RDxU72kSavIfb1SKcbARdJwGbalECgPBvrtX/nzdzgcrwQAOtonS6NZg1qTE4rNOu2DL7s0rtizP BQPRhE1gO5jC9rukMoPo7bHXmhoZsCTDdBL1aclFnAiyfQXOjJg3b/HkaePuffCOnqDLVPL8Oc0W G5xIaWu+gm2fXbC48kYylQJiJ7XCFp4v5c3v23mj8SvBr0u2nacZnq4YY4SySdvl0jlv+pJtezZ1 BVsrQf/OPRtnTpwPYAOxBlTOCKKlBS/JCifWCFVvTDQBZgbz0UR/fy+/9/YfbG6l5gUiUps2xiTk CFMgGbSNTU9Mt6fW71nRH+zatWfz4mnnzhp78kApsz3YvLFrTTQdnTxuViRoKAcxDm8878yrTp13 yYUnXXXxiS8/Y9o1ly15bUOyJRNknFqluighCOQO7rY2NfcPDoKp+GYTvtOd72TKKJYEqpgGNvgF ucYmgqCxcmq32x1v0+klWJ/nCWI9sgomNaHXr9+I3yZ7HwRggi7BmB+JsKzpH3okFp7VAFhVrhoS UvWWF1hrclahwtGwnKpX/K9exvW5kR5ghgGHeSTuBBBLrbAjilYqmaeYT0E6AY0h3qIKR1V34toF U5PPofx1ZnhIXD/KopVM8WMNm4fOHvf1D5foBeWhSlb/DTdWj9T24bUN18rDc7UOHroPc6OJoU/P NtU8DL/qfxKDhaXfDrkbGAR9+/BGGhgcGMwMZrLuxwrCNBMz1djA4fNTZ0yfPe8EAPiyK1/2ylf9 /h++4Y1vePOb3viWt772dX/4e69+zete//rXvva111577SWXXEI87bknzEOTMRb/rE4sBqbVoDlI upqiVRG+UFB8KHFskOw1a9agKxZjR0rfsYdTRbyAhMnCPDg1D3WwlRtEcsXsjn1b7nns5p5gezxt bmUwrYBNtkS0h0J/po80kHraC3rGovyTZTMTCgDMEgIGfHPYrmorzpy+yhxcNH3i7HmdSxbPPZPt K/c8dHsh6EF9kM9msGI0phrxNbNzDI1BNImW13E8M9VCEGlpbJ44ftzgYG8h6C1HB8psYsnsaWhm t6stQoMcO5oYlrXxxLmnEd764Sfu7Qq27+/bOnvq3HTQjoRNu0y54hhL4/Xh82O8lY/AjQc9BSJW JNItja3jOiYmg4ZpU2fb0U9BrhgcLEX7yuzMKScXzTkd7gGJk4mzffe2lXuWDua6OhrGtkXHl6P5 TbtXrd2wct6CeUS/igYNk8bM6Gwdt3D2ostPvvS8U847f+GFl5161YWnXNoYwyTM5iEYSaPJeNGZ yOECYFmsjISZa6hiPJoaGOhhXxMcGp99fQdR99CJWFcwuTSmbUbVr+OqB55ziA0T3DAFwWrwxBMr kAkwZ2r1ql88DQ13U/hFn6GomMfmGrLutY4CyyNArBeISSP7nDDbv1VTEw/JJIakskcWamJ7M4rF Goj11PMIEIvyUWd6eyHGtquMeK67s3MeLqvhwKYn7lidqmx0BPyrwdTDpawB1zCvU/OTvg6Hy/Bz aSD0RED4zC+ptc1uPHT0ofJUZWyTbijysJ7zENhTmGLtxiZlV1dXT0+PHchDiINYDMmVfVk4QTNd x0+YMG/u/DPPOPtlL3vZa17zmj966x+/40/f9Za3vOUP//APr732dxYswDPWwhaQLfptDaVmAsXJ Zx5F8apVq3jidTCab8cVaahWxh3o5PwkFA4z1hQftWj+iZv3rHxg0y/7gs2FxO6ByI6+YNe23es7 2lpOWbAELMn2lYHVTLC3GByoBIOlSB5Hb/y7bKYTITXAHzsJlrjogMXMQH+yiOF20kntV54468Id e1fvD1ZVgt5kKkBIzeYy4LUdOBiziJ8utLbF50rF00h1bYkxJ0ybu+aJh7uDLQeDjV3BphXb7yvH YXL6EmyBJdaTrQKbCumgedbUOVt3bHtw/S3bD6yeOIb9Qk3OBIslYkjzE5TxnMsVDq7cunRXae1A sH1L3/LNG7ecufh8csMx6qQTztu2edfGg4/kg809wap71/+qPTFu3vgzOI+Kv/nTTq0MJh5bfm9T S7nBDKux5obow0vv3LVjx+xpc9xm38ScMQs7k2MeeeyubLA3HqDi6Fmx9cEHVt7p9vtWUomUBccg UofNG6sXKFsoDjamEWFRDSfHdY5vaIkPBHuRlZHIi0Eu3ZTOBVn0P83pVK6Prbf16/jqgecJYmm0 Yhl62o1+lY2keI3Kfsmv0gnX0Hr/Sg0B8gTdY6cQxcudgskqzAzZXD0+CSbDQqreNcPPkJCtJ572 1Ui0yhzxBZorHTL0FOqpowJ8rcLVGHHkjZdHhkZ36nbdV7e/oDZ30OObEEZW34c1XIVPMxwga14J d/KI2Oy7N1xEOKXHTo+juvEIGs6hJnFY9NR9+K0Rhdjh0moYjL1QG5ZuhbL+CrNZvqqkl2nAJxuy AWel2FAcRIUplkXZHwzAgbVYZe0PL61MhgkMBjMZcMLCiOiKq0YW8yoQGXFR2zDHHnvsMfpWk80P 3Mis1QtKMVQlnQRlPArRjoL0zLHzzj7rkkceXfH1G7963a1f//6vvvmNG76x+tENF51+VVswOhm0 LJxxRnkg9b2ffG/FlkcQvzI9ucGDBVAqFaBjN5zu78mWsxhrO9CdEtGp3B9JBe3pYOzpiy4GTX/5 q5+wEIiMVM4mUuU21LAk7u3OGmqaSJrMdiNAptkbiv75lLlnRXLxn958/Vd/8oXrb/vhpq1bqHJr cwf1TJSbigNIscmmeAt65LkzF+DATtipufPn4YRFPgR8UO/aOjUXvBLWK0546s/1/+zXP7nul1/7 9W03lwcTi2adAb7iGzV7/CmTOmbf/+B9X/nx57/1s6889vgji2ed0x5MBr/JoyOYOHP84v6u8rTJ c8gfEXnejMXFvsS0sQtGxyemAyy7sVHBhNNPuGDv1q7rfvad79z8ne/87DuPPrJiVOsYInJgwMn3 xQe60ANzQpNd5EnYjVI+0dc9iJ6AOsyacmK0nPrmDd+67oZvr1q9aqC7WM5aaGg8pVswdWdQGr+Y PNVf0Kn9PBX+fGzaEf8usHGMvHGW9973wM6duxYvXgwsQWLkDyKPOBEdUV4RzcORHi9QenwVEHrB dDgyeXoXxmMBSfhFVcPn70fDA63YAkjko48+un37Nr4Ct3gi7Ny5Q4Y3vUKCKpE6jIxiRiTCOdn+ yoRtY3LVt3Kr8WAPYbwjc09iUn0pVSnVGaSsXa7upvoaKtQDjIf/8I0ZOqsF2rtP+mmIXfBZ1UxM PQ//eqhWwyyLEuaUoIbdqfkarvmIJfqH4aaFmZKa52EOwCO6TcuhLhrOb3mWSyoW5eDGRbHrrd1I G/yDor+QJyoFgbVzkydPeuihh9ga65pQPTBR81/efHLrQ+1x+umnowIxLeWQgd8vk+dp9R9NMRos U6QzPS0CA9QfvejE0TOnTpifTjRv37qzlK+cMv/0sxdePmf0kmS5JRpJjGrvxAOoZ/9gW+vYKWPn dHX19fcOLpqzpDUxAcADyVARDPTl58xc0JAYtWtX9+iWCVMmTk+WCQzdgqtTb9fA1IknIArv39c3 a/qCjoZJO7YfaE10zpt9coWgx9Fg657NBGY6cdZ5RMbHijlrzny80ru7ehbOPXXWjPmbN2ycN2PB +Kbpu7Z1x6LN8+cuSRF3qcKqLDyxcdnBrp6rL35VWzAlXmly8aE0ge0jF+nd3Pvonn17rjjvNYlS S29P97yZCy867eVjEtORmAG5eKRh+rTZeCz09g90jp503pmXL5p8diroSBrYo0DGfJrKDkROmHlG R3oiLcXdKtsfmzPltElts4kWFXFxa8a3T2vtHEdDdu7cP3HM9POWvGzu+FPw8MoOZvbu2zFpzKyZ 406JltPaDded6dq7s2va2BOmjp8bCRoBY3biDvblo8WGC8+9LJst9u0pnb3wquxA6eGHHjz5hLMm ty/QSQz16zjpgec8gKLIGRKAgtYaAEQxmPR/9WvfYuv+mWee6Z6YLy5qOqGph1XdSMgIi2iepoep eRg7RRDDgpQnkTVirk8pMueFTiHucLTw+md+sqg/yQTn7Xz/+9/ldTY7oiS85+47cZNWDclE0nkN CIXH3ryPykEai1MLcefh4NnO4DgSZ5JRzMPq6+5JDdTpq3M/NuIvcFWwQ4FluK98i2oQUXF67aAe k7yqxflydRNWntfk4/vNpxye2PebtmaFu9E7pilb5RYeJkGdfxi+18OaX5WJHtY4wYUTq2caG6qx gn3RXrKUb51qoodcduzBUPV8j1l7y2abBzjZgfb5L3z2iSeeIFQkl46R4GKGM6zkADeJWMxsf8c7 3nHxxRdTDSmQwzfHCXWw1WF/SIBikYc0QxHt9yJq4EDRxQ4EY3CXxR4ZKeF/lAk4CTDgPAkcj5OJ oIXYCyR2wXVbAOtSjDBX/dlcX0uqiXczxRzbohHyIkWiaHFezP5MebAlOgapsTt3oCWF+BjJlbMN UZM7kVzN4hvszpYGO2PTckFhw64nRk1oaMIvCSEuaNl4cP2vb//5q17xmimx+XmnmOd1xMdKkNkb bPjOL78+Kj3m6gtfPS4yj6jFvp81dTPBzl9s/dzPb/np+9766TGRqYQ8pFa0q1JORQnXjyMVThLR Eg5fKK3zpvhtbAg6y4W4jX7KHKSpQ6bU3xTD7RnLKybTXJ7oG5FkmjiLRSypxFPMVxIKA5kbDPqa nIN0qRBh+2wxGBwo7U7GCOk5rlxM4tqHqjwb9GZKfQ2xFoRy2DME3VIEOTfHvikbFdO0Q0LacOEu B91w6ImgGiTy+JlCL/GaPOdSrAgTYMMShdA4UhJZuXL1EytWzp07D90aAyDl6ogaQiGrAcCTN+GE qXAYDHSvrPzQDpeQPEh4iPX1FDDrq3LzspF/qBbxE0o/QlM9/PBSeAhaMWPGjIMHu/ft2ydM8q1W PiNezp3EgNQU6S5MP5+G99UNNdU6uH8cWwsUOhAMw6eLiehY8WFSrIudIDH1Sa+EoTcsxZrkNUz2 9e0NN8H3WLgzle3w9ioHPxC+dGUYfl7zJMxahZOFWShfnB+p8KgppTDMT8VDlRxy6NWQyVIgaPRY 62vOW7gum7twdeeRiyKpTchunzfuew0NRAANYLMs3CNqVY6vG2KSPI5SkA5qXLJkiTBYq8NzHscP VRqS2Z1DnAtmqRHGZ9wiWMNyBCmQBkcePJVcME4XMKzCjhxiOgMMgC4ol05FGoEnc8AlAiUdFeGY BXbHgjbR5kQrgRRw7sWVPjeYSSXbUhEiLjUSUCsRaSDsEeJjKmggKwRF/MPp/1TMQjbiarV558qf 3/ON5dvuTk2OZ+I96/Y8vvTh+6aMn7Vw8plEPE5H28FpjKC9le2PbL/rib33we+ev/h3JjcQ8sLE RHcMH4RCrAMBFAdWH7hv955d5y24pjkypikyOlpu4NwBC4XtZgyBhuOROME0CNSfjlBn21Tj4i/S LByUWL1ALQ8torLpbIuxhlhzMgJngDaLSRhnH5sRKAsnRRRNuAcOAEkno2mmETFLklGcnInJzIl1 OsGKfo42x9txlHYn/dHdkIlEyjo8CejSS3AwdCab3eMRWBBcoN0o1K/jpgee88EQ1ZMhVrQGLRnx XHmCB6ZAl3sMWjVmOSmKeUVoGu4xL+Lo1zDy2fQduoZT5+Gk31NqjwHCZk+sh4vCvibaLYrHlo4u IHYPpjviE9XUtgZOaoZeBYUdf3Qe+wio4zKyk1yfvGfWsMEh6/Cjar2PcdjZWBXwRfiWmiXY5VOD ZHoSvnwOuvEIFO7wmrc0muHEvh/0+ogMltdq6HWv4ah5Hv7qraphXQj3YTco2V+Vpxx9va2Xrzoq R4KmrKcql8QSNz08H3ruuCT2XoGXO3fvwh/KNm6Cmi5/tVSHM+owIuH3+vXrKYWfvCJ6+PysmS3P /1faqF3jNs3cYUTm81TG9ymOwBrDdalgfxgIEepcUA63g7hMaKvWSiERKaWIdR+psIknmYg2mQMP whnHtFU4TBFsxuupKSgmwB28reFw0qmmSDHNrlASgBZJEIoQ+QQsqaTt3IcIhwGnE7EUptlEuZFf Z06efd5Z53c0jL7+2z/96ue++egDj00YNfXMEy9uDsZwplyEYyFNaxo5cODAjTf8ZMMTW06Ze87M jgVBLsU6UvAUtxa0BhmpWCLfXuxKJPLYcZPUP1pqSEQbaKzRogrIyXl2+Eank5HWeLk5WWGbrxEc zu2wSYyoX06Y1FqMIawzs0DBQgauOEogk0Q8RYlurKOxMqd4piJ4CpfY/NPAcTkApHVgKR0ppFzI TrcoEJ0rKVpBfxp2musiJxZwrlEqXqFnGoJ8A/0Aa2BxtSrpwLicui32+V8lRyrx+ZBiRdAFh1C2 np7e2269Y9bs2XZKSbPpaqQH5pN7rWcPqyKOnrTZRB/KSje2X27I0UlZ8RAShg8KmTj6KBLJ9D8k kgpgRCJrMvRkTtVQ5X0TPHlVuYgsuLo88sgyJFcWD+bYdDrFfgx5pfIWNVG7DncNbW41lpWD2GIs JTsORnjpwNQ2trqDKy3moWylVgsnyB66t+B9xkQfstbaK3bGepWEmARszahCom+Ue6bs3DbakMDt QdGqYmd0VnfZSgVtdbQNq4cEdJ/eC2Q13I/ItIDWd4hKDD8Z3ts8EcgpWXhE9K7/KdzP/rnGOlyE zwe5Vd3ouktaAPsqzm04t2S9qKCK7g/hRU/4sw26mDUq5cbmxp7egxs2brA4yUxs3GBDPA3ZyuaK xzLxIGfOnOlntW/a8UMkqK00T85FwNkH7ZZPVK98J2AkG0rs7BfiUhOli5CY3CCC0UZ8i2BmkOw1 aHaoki3sWDaTTTkPDEQ1O0gCAdDFv7T87XQnjBXVZQ4mISNKIUQBNv8j0bwd0sX5NnQjH8lJ7bPn TT911rj55yy65Ix5lyyZfkFbbJLJdlFw1ORUJMK2xrapY2aeseDieZ2n4DyFMta287Dzx/ZemwVV zaRZremOWWMXTh8zJxFrtOG1zTNWMfQapLE1zRfkWJMw3dbukjbY2OSh7jBmjY0w2Ra3mp5hOiRT OFWVCWhiW//toIsEtIE+saaapGrZ2nx2GiyYMPh1srJCzYnahRJ3K8yRRNs1S3FmFJc5yLFxdiqV i7jKC+L7RQm5gTpJTUIR2nyvG/pTvaq5J7d5veUnITIDlfEZ+jlZ84rWppY8XKlUkt6rQK+LqvMZ 5iaVD6ynagW7qQD1ek4mcjaUs46WuV87Piue+xqqgapJuA7c07FQbPXD87y4nnMpNgwwtqUsFt24 YTNdwI5S32b6TkKGBt6Pme9uT+k0HTUkmgreTCtI00/kg+mLGLa4k2g+mR2FwPFDB9AOp8iaJWE6 HibQNYSbrx5EtSFSM4BJqfPkPTUPQ8IRhtbXR3GRasBgSBOpWBF2DUeLmsyVAHz1oSfY9lrzov/q Z7A339bk5sJZ+PhFVUgLg1a4P31uvkt9x9Y8UQ56qMro0hOZ4cMj4tMMzycsyIZ/HdG67x9q1nnB 18uyI741vFBVUs+ZWkazTO3P6WWRBYsW6lyC8Cyquado1Dlqr6cgz/P6P/biDlEMyKWbE6y4qjJc Jz37fQFkDn1kUYhjppn9/YOkt00ElQokVQsThFNsGehDH6GQhlgo0vPj4GC/SCfUlk/SEH5Lie2A wUhjMZNuqUxYMOmMWWNOHt/IbtfRhGQqFw2BnJtwpJQvx0pNC2eeOb19IT7MnOPg8JTt7MAPscEt 2LijOUWiZIxJTT997sUIr7YH12nX3E8mAKCDsAjU8RjxThgxvpIPiELlHcU3itTcbPsjdFQwN/gw ciY8rPMQvMXYToTDuQn6dsVMjQG8DlkT0IFpRDwnKhc5TwCNtgSclmhhO/Fw95SQV1RVn1L5kKFH O6oqsskN+QCHoqWMAsOktebGtKpXk/zjd4L4qUIC8vTheuTdyYvkIIcDasJXdYKeawLoFeaDp946 Wk3YDK02GuOqpKgsdtCnq4PIvl9NZGiH3rsdKFyqoZRDviaeuOEeQbbMTN8Pxz7nn9EbzznEinxw MYKOxAQrVqyg49hiSFfSTa7jjFhpuqj3RXc8Pum5xkmX8iSNgNmTeOnxeIiIQCkacp9G69wnVv4a QhWqS1+Vv26U0r+onzTV4BXYeqQEBKCw82QaG/1c8U043CiFyzpEak06dNF+FbW4eu/zOIS5kqUs vJKLKBQuxbcuXO1wW4ZXKdyTvsm+B/yvNTc1AOmHb0RMEizpqrlXtnrLg5++hkvUkzAuPr17gatX IPuvys1XoOYmjMrhmtBq3yhcQydPnIRGVHzYiJdIG15R+/fvD8+xw82T4+O5JmR1RYir4AtRn5Ci oJL6SZobOfrRRvlbiM6yJDV2THvu7RhhR0wBPOgDi1cPSWDZ2hY+8NjcAEkv+EE+zOTAEhMr1eFG o7GVYpiMcLQcWlY7c8FEPYsZZ3bWImAcS3E0cz5nYbkRfG2sUTY0NVmG0Sg5OwhEymE3azOqfWg7 4AKGOYgyDTUCYiqZosnkqVCF8t/U0b88gQAIqp0kahhG2zmisamFrGiaESUutYLmaNXQXj971Xt8 9X4D3Duh1kcNsz7hCxGyyEGIJZrGc+1+9KSMTFQ9vzz5VWYLMgQFSS8+QMtNQKWIlfpKziQTw6Q0 qqGnwOwaJ7EkXT8reMKIaFg1cNp5wVfS0yLmA3nKQKN3hc0acdWf56qq+DDda4WSGxdP+BSvoJ/U 4WJ39FANx12GG/JRh6iez+f1nEOsWjvUC9EtW7bs3r17woQJmmSeqjJsGlQPDCP2gsfgMCiGU4rT oZcZJKkdxFVxo8zDV82LHu0E55qLHp/Cw8NDPwWZHJwHoIoxh3juOS+tDZ/tkcdVhLimUD9xh787 YkcNR9NwMn/v4dOnH/6iauLrE65YGDNqunT4Vz/Kyi38NXyvvtIVrmcYj/Wr8E83+hx+c7jnPrcw Uo6I0D6Hw+G3r4CazCirGtxoEy1hSay6TxKSD2VGVzA/d+zYQaQnrRFN3edz8T+TssQQa61xVhJD wkJQ8z1IiMKKRktlxY1EHBUNLZYUKBczybKsXFF5bhQVS6KV1FG8JdThRm85lrqcJ3ByhQCLdjCd 3JfIQTVEaqT8XLaQTDZB/8mzqll1dRCcq0oQIdSuSc7GKUGsEZVs94vKQmLiztt9eEszlkGkYlQA aFBkTfCVNnJRurIFbwSEYjs01jyhCLpEabwGVTck1mZrTXWRI8mLkky8jd9V+5DU4amNhH7Bv2am 2iIYU1XDC02VpG9Vc8++8DrME7USsHm040aETu1SNTSsCI46bFldpEHnk/S+sTqHQ13BjfgqCdPK RLkxqTwz4QGV+oi90OuCWzcNsEpYe2k7RYv+q29/m6VYQalrp7EniLA0GBWueF6xHkwAyaieyKrv wjgaxj91rk+jaaf0Lje7KIKjr0444YQTTzwRvkkqYtkJRrz0urLyly90+Cta21r/CqBB5e2ktnye 4sKVqUGvYVnROVXsUfPVCsmm1RjFinnr4hWHoxYP/Xq4NlWfD4c9fgivrpp7j6w1yfTV/+qz9c/1 JIyRGiNfv5p3wy+KCuhdXx8tdT8rPJr6lD69bo78vAY1a77WZK6swqX7aox4IxZb1aDaLPJzzjmH iXQ4hBYXyIR5+OGH1eSn5C+fYpifj5+FXlUM+6u/+ivKNIwsZDHIQvahil4MkhzjR/9tb/0jDiNS ej7plo987KPrNqwXDKjTRHOJ6MGCEIVFLUQYLNiUdWvW/t//fYaVkQcJiKFYLKNxHWqxIZDLxGaa EXEzqhslsM3eQ7pQtMosKmImSzCVI0M1/ZDEI380+XWBr4I3XNMIUhhPJm746U/Ijfp/6EMfIiw5 BajCTqyqOm3AZPM6oA6GoRFVAr4iEFNDiAOve0U6m+GRuN/+9rcLeJgz5E8Of/u3f0vmHHpIj0lW 4xW6AjGa0xiFKOSGok7qLN/nypmvX/ziFxFmuBe2iRfhniknFSsPJe3RQH7ioU4JAx2pudLrFUZK IiYVcNsUDQVJL5CDjGvsSHnTTTf96Ec/IlsER75qPWocyVPkUQyNLvn6qeHiq9S066677nvf+56X RL2orcRkS33e8573iNUWrPKcr2oa2TLEwh0tQG4kEYVL99V4rm+ecymWBghiaT/bYRl45xOUluqc lnvCxI1nVIc3O4y46mil8c81lh6liLPD2qAgneRKzmI8PZQOh0+Pr/4nn5icPY+mQjV+Io4cBkAp jK5CChBGUVPKt8LXdni71A6V6LsinCz8bhii/ITzD8PFHXorFD2xpj4ezHQzYkHqavXbiK/7d4ff +HfD+Q8vRcmEZ+FM/OseC8PY5hExfBNOWfN8+LtKoFUqgAxfHjJHxEhfW5+tqBv1l8oEqjFnzhyo xhEgVjMEXfGePXvUt+E59lyv/Gee/4MPPugQpequKIrJWuNGGCCKJlr5zne+EwsKZJqvEmRBKZwE hQGaFSwfbpCJ7cBFZ5C78847V65cSUcRz3LdunUSbaWgbmysHsbgvupIj2psONVKWI6HOFTBzKjm 02TmKtdw44TEBHheX7KXU/nKpU6aqirtpi3/7//9P34iGdhJECgvb2lpSCUrwU6NEjKRjLeosDx3 RPfUM2TEJ92oHhBUkMOvfvUr+ge5mUOINdN4hZ0LJCKQmIQzcoPO4GGHYVgqa8E/+fCV2GH0GLlB iIYszeWw/tZbLiXYkFKTEHRUuyStCm5Fl6wC7vKiudqoBKQkB49hfKU+/KROlk8TDyXqcHnjK2mk PKcI4fe555572WWXaTJIeiZbLQ1uyJafXv3qV0vI0a+qFen5ik1XharPea65RJNV8+f5es49itUe zcLly59gncyePccs24wfAb4jNpbuBE9Guqpn04QT8fKvex5/aAFUKb5kPg2nxgAfP7IF81jPjz76 GP763Ag+ZTjRva+V6qZsPY0LA2Q4pRLr02knTN3HJwF9UPrxpKODA1lGER5S+hYP22FoedIYuyTm y+scU9FzuA1x1dbpbB3Hb4ul8AfQhaTDqiPwoYodyl9NswzspurNNBT1KdyWQwiqAkPNtB52+2qV i9VXVZEYMMxDbzgYh3tY4xWeFb62h1o9zPKtAQq/6O/Dz8Mde7jnfqxr4LzmXbVRpQzPyj8/1Ffs a3TjmM9lMdyB3VAf9kzv32ubpMN9Ei4IggIezJ07l/McD5fmSbPluPlCtZE23vmOd/b29Nz085/v 3r3na1/7OsvtnHPPReA7sP/A//zP/9x4443UF1aDz9tuv33O3DlQcBDlox/9KHSg68CB0049dcrU qbv37P7Yxz/2ve9/v6W5Bf/qnt4exXrb33Xg61/7Gn245NQlYMl9993PEQ6f//znocizZ88iT0I9 f/e73/3857/Q3Nw0a9Z0SG6pCDHhXIF0NjP4ja9988tf/uJgpn/+ghOSidRNN/185cpVN9/8C/7O Ofcs6nDLLbdOmzYNjp/xufPOu7785S898MADixcvxCWYSf3wsoc++YlP3n777fgzTpgw6YYbbvj1 r38tD/Cf/exnrPTrb/jxAw8+ePpppwsJBCc8v/XWW3/4wx/+6Ac/TKfSM2bOhLL/5je/Wb16NVW9 +eabwQ9B6Ze+9KUffP8HAPYTK5543eteJzFL3Mm3v/1tOupb3/72xo0bOZKRnNmkgGD3xS99YfWa 1SeddDJQunz5Yxs3bvj6175+409v1PkT9BiR5uADeAuid8opp9A0GLjvfOc7FD1lyhTsWWS+dOnS T33qU3fddZdF2x4/nln35S9/mfSk2bZtG1/5ddmyZdST+gCEvP6Nb3yDYLfs4Ral9dSPdn3lK1/5 8Y9/TMgdclu+fDmCNT3205/+lLLInPSPPPIIGd5yyy1QZnqPkQX+EbJhnuh8BRMlB4YVdQ4aRzpH 9afCa9eu/eQnP0nPM4UYBam4TcMQj5Mh9YFK//znP6cONIpTLJkYUF2xdCS7/vrrKejee+9FrUjR Lwi+Oqr73F+S0OluNgLSR3BDbku+TSnJCtyI8vrx8xCrhzXI50me3tKld432RSxzVuaePftgNp0j g110sXgrf6npIpeMls+2hoDW0D59VYZUDdhuamphFHlLi4SRFpCr5r5Rh+vpan1w6bfzuOykOVeB Q1KjKb74bmfLuUPgQtWu5ulOpfNt8QX5/bLhFulXD3XDfxpez8Ptu/UlesALP/FdKm4pPKbqav88 jGRimb3w5xvrB1pP9K4ShzM/3PMaqdfn79OP+MTXJHyjV/ylF+lPPUHrpkFHbwKZ89WuuZGOjocQ BeQ57qVbe+6X47NTAsIWwhwzkwMc/+u//gtS/nu/93v33HPPDT+5Ad7rc5/73Lx586688sr//u// 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 fvxzn/jSZbBJX2v5Y084d3rH4H9+4EPv/sS7P/TJ//74ZZ/au3N8iLbB/t470NpL1HGZjeJcy1b/ Y048Y3xXz6Wf+MjNd10D7J9zxpNmJgYu+fwn3nXZ+97z3/919007lvcetmt8D1Zs38zA0NyKuVlW Sw/2Tq8c7l2DnRpmKr0w1rNsYDW0zewZaE2yhfEAW1W0Jpn5xv0bGIyx2zc92DMzgrYx3Fp36oln 3nvX3R/+5Pvefdk73v/J99xww3UFmJF4EW7fZpIqGuOBsc3X7VvtMzoSIzNQgkCnbdt24KRSRwZ4 cKPu3btHa89kDX1Z2ZH2XLpPTekaFce/mM1N7We2DwzoredKfZ6WYkZO8jAPkKJQd3NUoqXv2qLb YrFAoChLEVqu3LPehulVVr5ize7ZsztOfuonLHOGT2oz2D/APjQE9LP758T46PZtW9auWfXoUx7F 61THHLIWWVBt6/srUIjWun7dGt6lenil40AMNgkdHCQT0jvvG06eskijdhHXhmxosDE92h9Hk5Q1 yoOMtVhzwnQLcYAx/1oOvfOuHbxdllS2/xw0KN75V/zN/AVWxyEf7VWjZS1N/OGioCB+bEdClQYt x83GItL2VQ+h4INq6tNpWfxvfHpuaH0yZXsvOvzesZV6+9DZ+p4NmTt/8SsWE59hcbZPc4kzXWaY AmvP/sZhtHEuWvnj3ljIWLgUAWIRDZr3ZTVT+4zbLLr9pDPV6oQrve9N2a69/Vf3chs4y9Sss7Pt v067pL7oTUw0W3T5jPzLH70fHg4cdQARfleEXV8/sTW8kePCUWaMvMzM3W233fbxj3+cnxiqh9CQ 7czohz+jTL6yiVHPir4NI1Nr53aP9DDDNzF3/PJTh/asnpicwLwbaq1cNrd+xcCG8djWd83pJzzt mee/ZNtd41tvHz3/9GededIzelrr5+aGDl92bO/EIOgy0MKYWjbQs3z9shOffd63Pvm0p0/vmrz1 mptOPOyxz37ytxyx8vjIsLX+Ccee//ynvXxgctXE7t5zH/e0E1ad0T+6brZnaHRydtnUkaunjh9o rWmNrVg7dNITT3vW6v51o/dPnvmoZzz7yd9JOBXYM7xn9dEjj5odG+ph/yf2R2oNnXDsCbu3jz7u 5PMGW2uX9S8rx7q1xU45ShlYWn7iqie89Onff+z6R+7eNnb/PdsvfNLzLnzSNw+0jhifmVvZv7Z3 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 Dy5FSOc3AlXIAAAAAElFTkSuQmCC --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image003.png" Content-Description: image003.png Content-Disposition: inline; filename="image003.png"; size=27700; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 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 MX3+taZ9uS423ao0ynkZxwPJK1tj2UnI1b4l9glkEE1UdgKTXrfL7HSR+qhZl9iDeAWqj5O4O6BG EtvpnMYakj5Xv9vIXmBaecV2im5SjLdlzkwPQcRQ3IjjpLseQdLjnos47QjSfieeTUl/D9K/eqSz 5ehzWiJ6v/TAeonzlJ+rIjMEaQGjLVP0F3lAKx/9C1C9Kz8ZUrf1Vd+mvPO2reTPHGKt3sfeZHaT UendL/qzh+KlFaGUayTGPnaRVYC3IJgSni+NZAi/hBGV4esEA9quPkM0ccENhEpKw4/cHHv2gUJF 2EpBo48++qisrGzNmjVABXjD6t+nTx8Kf+yxx77//e83NTVpYhD0jjvu+MEPfhCPx4GTXr16DRo0 CHwlDdCiabj5yle+Mnr06IULF2rzeH7iiSf+7ne/+9vf/vb1r39dn2h/p02bNnny5K233vqTTz4B tv/61782mMsP9lQK7O23337r1q0jy+uvv/6lL32JpnqvnOv27t2bNAsWLPjOd77z73//WwufNGkS uAvsgbv+iUHJNH7KlCl0mRL++Mc/gpTr16/nIcnC4TAd5+bNN98EfRcvXpxz4pLg9NNPhxQUThVa Y0lJSWVlJeWcf/75/MQTiEMtNTU1O+20E4CtybjYVTz11FO33XbbOeec05UX478tbdcFxRIrQl8M MS1WepRGh4eLer0+97zXF1y0fMM0N9UaCVYVhctCThTO1f8XDpVEwqX8OaFI3I0vWvPcy3POfXXO 1MqyMSXFg7wV3LM0VtGHAc5CHKw1ZRQHITIY8ZEu0O2MmQXaU/nxVXKqciXE7iGNr6wXYpZlG2Zu zIrPouEtkYaGntt9enGXNrBpJJW0RNyIPdx1jZW0tNIgayKNr5403O6mwTbbb9NyFbhbfG0nPc8W RXjF5qCbnyyewYguB8Y1mf7alhiC8OFCARpta/T2VdKJrNdBNUSGHm0KAvPGGSIVluhpGiSBXrNN Oa4hr2gMjHuXfNFByV2+aZWnodDWmSfihC1j5pnOeZgNJ+RbmDxqaCPz0j+ry918YDqb7pHMCvPl c6gUSe9c21sL62ZHd13mXYjFG4OxpmRzY7ClyWlqDjQ3en9N9cGWRpcnjU2ppqaA/NTktjTwF2xt aktm03dw0xAkAeVIIc3JRKIDiLZTDlYMePjTn/5UXV09cuRI2NNhw4Zxc8899wBasJgWEW+44Qbw 9eGHH95qq60mTJgAbwpkAktA42677WZRk47DwOnoa94DDzxQH/bv39/Odu533XXXt99+G3wlGc0g JUyqNkMvKhoyZMguu+yyYcMGLRAWEAYUCKf2ESNGkID0p556Ks0GL0tLS7UZypjeeOON4JwtjRty kRJGU0uDCaZeGs9zftUCf/3rX++1114QpLi4WLvgB2ntkT455phjtHxyDR48eI899vjwww/Bzr33 3psEgCvs8vjx40mWfnekbRdffHFjYyO1kCZDXt3NV+aLma0bECv7fl0LdACWbXr5hTkntMTWxd0W NxVxwkiLxI6J0fePmW/5aAOPcKQ46bgtyYaa+unTPvrh2ua56aXNqhA6bKEmUL4wadYswSJd6D3k MC7qxvIw7wspeCmQKeyaj4EWSDZmWQkWaJNZOV3BHoPEijMSgsPUpY1RBRWyFTENMyuQySupHUM9 8580OAx6mT+vm5Zi6ipsyhGZmLRN4mB5lM9g8ZWbzr4kGIjyy+nf0oF4ND2V+skL801/08wKWwT2 AvRLDL7T4UF8gUQMBTJGByJ4IB0MYHnuQQgLCwhtGOK8eyWhPGmEkiFX9G0G8KjfMQSHhKYXQitX ByV3+Qpappr0BkIM68IyNuap2XxoYyhPLVEtioj4QRuZl/45Cd2Nh37KsZ0SRSGD1eFs70ZNmyWL h/3phdjbxIhsIxCVkTG0TRonO7MpEz5VNrtoQOWRvFoSaSYVkhdFbzGy6Jby1oJBBzu2rH4rwvGJ 3BKelU9g7Ic//CEs48knn9yvXz9yjBkz5qyzzkIyDNu3YsUKnsCxwZgCw8De2WefrdPjlVde4ROM MVNF0Aj+ePfddwfzwEILvfw6ceLEioqKl156yYIWNzCF/EQDkELzaS+aZ1tNUTwnJRfJQN/f/va3 bAW22247oFGTKQVooZaWcam22BZIl0lJaSDfkiVLLrnkkmuvvRZcP+qoo7QoPz399yrm1cLJy3YB 7pYERx99tCa7//77ly9fftlll7GJ0Uq//OUvw4XfcsstPJcXzDy0ZRZYBzbLZP1cFdKdV1oZBboR S9a9tuCyl+ZcuL6JDRrq0nDQYYr40CKvDpW1TJbyoBt2Um4oFGURXF3/7xc+OOmdZTcYJsJMIGFi GPuCFvnplGYJBdLihvey3IBZoNPBXwoOreClMOgyJ8luYNKDJuS9Ek/DFCtLc3quGDQSUPFhlWQB ONOFcKfbEbPim5yyAxCwVz5VkLNdlMisiShco7RNiC47y8wJ5EGKIkobY2pefhFBkz9NEP8rl5aK txUnCG7YcWVR2CLIZqL9BsKPynSkveJNemTlBKjodBREOG82xO3altELobyplKaKS5gKMMymRPdJ kF0Qn69CNooqUL5W5DU1Xa95qLsvKVOXJxXR677KtNYbfXObtln10z+T+N39Lt3THZ+ZCjpYeTcg 3a1lc+Tzb/5kp+UNjZmQxvWO/8LJVCgVCkeKkFtFAiGBVVgXM53MPk0sj5lNbFN5l80LKS+aA8W9 ra1ucDvxJ2WZEj5l13Rw9V1766234AvhI7nfcccd+USz6GfISAymIg5Fowk7S4I5c+asXLlyn332 sYWAfKNGjYK3A4cOOuggbR4ZFQ7JnlGgJujMLsFyk9wg2iUXQm/bfR76FbG2Xn/5/nXPX+MDDzzA T0inM3Jl0Da7fGTLyIRhbZVDRZIMWsM3f+tb31IoRSeNJPyuu+7SPlp89ZP9U47gFyV7NyAWKBI0 qm9Z+ur8yxesfzwQjoad4nTsNF3/koYjYYqlDQ6z6JFyEPHwEibgktjjyP7WKabcD1c8/PrCS2Ju nceVCj54Dua5aaoLt2HXEql4q1vPO51WdhoO0tOYak/zCuKAOvlVNtcKYwKTFs48fJVlwntzvG7K EqOAarYCAqjyi3l9zRJvchjhrHyVDbjcm52vbvNlpy9Z7E4i/T5Yga3sMAwxFeAFb3yksLiliJLZ TRkHySzPFTvTTK3HU5p6LRsn7Wln/W3y5uKuTGN8bldSjsFUG1Ev3Rizk5ClUQE79yWsvidNVlZS woTpkKUzZnLM+cv37wO07+koY95mxtigwi5LnUJeMypmArRduemfr/1dfe5x1cxbkU14k+BTA0dX W9GZ9JYOOpHT0hqzHTAaBN7xRHFJKNYc2FDjbFgdaGkIIU6KOoHyYqe0HENjKO0kHFG+wN3q9Efc xP5a3tSuXqqekb8urF0WY6xdsU42fQ7vxSecIp8IQvlEqOvf6XKfSCSWLl0KP8pFApg5ON3tt98e oauWc8ABB3Bz7733vvfeewcffLB2i4ygMqD77rvval0WY2QpyC/UkenoM4FWlOLCBop71dfqxUM/ 76tPspE7J5bDYtbW1sK429ZmN8msh5nDxH4Cnn727Nn2V5TQ6K0RDvNk8uTJ2EndfPPNamyldPB3 vKtj/oVO34Vp6vVTYMZpaFn1wkenrah/ORrqFxJtmZtE5pZ20hFu0tA1JOxIWujXxmMZVEiiBgsZ ra7DcgorK4ueqOKLFq7528vzz2tJeAp8Y1dU4FVkZy1r6KbWjwkO9dLcqdM+OuuDZfetb5rnAVgn X0U16hFYTQjTKFtvWQdMr5UttrQyNyLZVK2tCsnQqmo+Sa9YK4JOFbV6UmhTmMbe8GTaxHPWrgF4 ylH5IVNT2x1G+wYocAvx089VlpoBYyJi9cShOsthMZCyWjjxG1sphy2Ll8FlGVED6D7yWxDyAMm0 Xh6acgyayhvuw4y0FY9KaPO9LUJGpUA7Vs7bVXgcgCdA9okN7FIrO4Ps8m11elKFkYbJp3CxKhVQ izNvF+RNFaWnt1nJRf98nejScyMGRxlsNoje0H8e2VhLjbDjiB5BXutgsKQyMnqX4FeOD558efTH 9zqnXZm86/Lkz7+fvPq0+K9+EL/6lNQtF4d+f13gxcedFYt5zcPFWF9EDQ8sL7Pwr3Q/ZBQAXfrT 3aaZJ3nnUoFhACn9vzIdwEgEnvPmzVOrH31H1PRJU1qAIS8GR8rFcsGYkka5XtIceuihYAxKypdf fnnbbbdFjcpzDJgRGs+YMQPDJT+oUw5fYZ1Bd72498Mb+JoBnKRHp4uNLrgIutte8By0Iy8qVX+B 1nfIo1YWopOAbrJXIJfteAaaqoAXgy9MnAYOHDhgwAC2IBhII7LGOItP2wyKuvrqq5GKQ0wk7RR7 55132qr9ZMwJ9l16c75YibsOsYFAQ2zFqwsuakjWhJzSUCDu6V0S9fFYszIcHm/myBY9zVpZHsu7 CSMqchNRJ5R0W+OxRjfZKMNgWNJIpGr5xulvLLgsnhSDeMN4FGpn3G1aWvvPV+ZMnbXkltUNs1ds em3W0utf+ODkeTWP6DLmuwqUY5gnWXaNylZyWcxLc2ZGGWqwR4Va6Zdc3nrVYvouU5pw8wKwqiTW zbeKfaVwVivf7kEZWaWPJ9D0hMl2t5teXszm0XTMK5SSYyrPzL6MElpsmzW3SvY8TsArMM37Cria vovOl6XUdFDWQ7/OUmtIMzdILNqxzh6jY8o3p0QYM3IjLm5TOedopbREF14RGaeR2yOpxwHoiBD8 RCmZq/y0yNfHlxuiq3e1kR0oz+pJBQwdbRw+f7+UWN6mwWtwgZ1eLsoXeGZ0z95YpDcHGWx0F0vc MsnTZm7SNq7iSmfnA4Mn/zR42d3B866LHHFaaJeDk0PHp3r1T25Yl2ptDDbVBTatC6xeHp4zy3nt b8FHby6+9ozIdWcln7k3uPLjULQkFOadF52/DEXcQG03L5US6Wf+9cEyT9QCRmKzAxYeaa7DDz8c s1gUsX379r3yyitVP6rAlo8RBMYUz0hDRj5hUvlE/4oi9vnnn+f+xRdf5BNNJJ+wudju8tzCp5Z/ 66234oSDqBlbIWyVucfjxWIPiUEsmgo2z5w5Ew4YTJ0+ffq//vUvrKBPOeUU9LLK1GoWegEzCopr afC4GB7TpAxdrP2qjRHZobnUZspfu46IbTMW11gjw5KinAbgMfsCcTEBg633s9oYiCE/x3wM2mKB Re+sY5J/95DNKHdzAnxBsuUQKRRuOaD16vypi9e9GI1UmLUJHGkNh4pH9f8GS8Yna55pTTbCvMI1 qLQ2375cpgZKSNctiQ4a0f/LsZb1n9T+A1bYHK8jdkDx5MYJg4/bdfiFwhO3ebxkt85dWvvy7FW/ X177Ck63Bk6k5GQyURHpPXn8Pb1LRpitt+yefUFhMssxDu2ybDe79U/NOpjgF6GUs8fon2/VG/mP YXDTsg5SPj59T4zTw4HUTiMvHtP/iLT/kuF0BVZF+2jwNfDwjD1g0KeMv3VQ5c5k/PPbeyVV2Ezf zcqeQmaWKqko6lteNGRQxe4j+k0uiw42TLDHN0uu6Xskg2IN5FkoK0stkBkLBaIDKnca2HvPraum lBT3EtsTufw8N5Epa5bUvlBT9+7quteSKJUDkd6VWw+Ijhs58Bt9y8YZjtYTyVJsTf2MF+acQ23f 2+UtkTU4gUdn7CX1CgFEicYb4qZiFFJeNKi8ZOiQit2G9N63vHioj9FPeJbbacEAXfiL13G/mrzd EHj7lRRa+RhDuO+4WwdX7qbCgObkpqdmHZoQhi+256hfbNX7IJF+Cx/qCR7alS9ZjN8IoQnMzqCi aEivsrGDK3cZ1ntyUbhCUTMRTP3l7S/Ru4NG39y/alezWrV5T+ls0YU7F/03w8uNd8s+E24bXL6r 2b6JpKGjee5V+pmvUAb4g6HBwyN7HpqctF+q32CZim5CAjuJqZPL/5Ob1rm3XRRp3CjbxFjMwdzX 23hZ7UDQCUdS43dJHXSUM2YSkh021mKIIFaRXbzS6ptgSanzl98kn3+kU/mBHASbAJ59kTUbZrc4 uT7++OP69dxzz0XCiW2wIqX/wuH1q1/9Kr432ArxHKyF9127di3MJXjDr7B3uKngXYOcGa+e7373 uxdccMH111+PshMPVEVEXFmefPJJ3HhwvIGX1fIBTjhgLJltdWAqSlzaACQDgRg2Y/989913//zn Pwe67L4BL1vKAYlhqW1pABtMJIZR6slDpYDft7/9bTS4YLA+0U+tl4cYG+ck4hlnnIFnDkJgPHot +w6P/s1vfhO3WjSvQLs/40knnURikBgrKnUj/l/jWbPJ2AHEmj0+/yFeCYXN7TvLb5+9/LehUBn8 K/bDwqUlGnff6rIxg75N6Svq/oWo1pgECQgkAxGf5VH72kEIJ8ELduD4O6vLxfZ9zuoHpy+5UdS6 YEdSYDWeaNhn7K+36XOIPTg23Z62orC4eWfpHXNWPSS7LifsyMLaSuVh16lz1+wy7KxJQ8+xvSjs FKtL6sK1T761+NqScK9md8Poft/YfcSPdAn0cYjuI9P3RpNELRXRwYfv8BfTGkW1dtjG04fAp0Dg wHG3DKpgMQ08NHMvltIBxeMj4cqgE5ODhoQXSzbFV9e1LGeRTQZiEwefuO3AY6KAgfrFmlyU3Ldk YiRcnja2kqbG3I3r6z8Ohlp4WUrCFTsMPXNU/8M80hgGmiVs/vonZ3x8PcSEoP0qJynwbGiaG0vU k3L84GMnDTlTtwVBYS0CQOw/555LxmN3k0267UKvsvElIZokrqWyDXJSjS3LGltWgP3sosYPOXrb /idHI2Uc4eBgT962sRJ2HIHzq3POpTeyVIvRC61BSeCurJvJPqNPyZhwpFws3yTGNWll8uww/BT6 q2sBI/L2J9cUhSpjyeatB3xljxE/tsNvsfAhtjIBZ1DJhGCkkk0D+TDWYpseT21a3/ChRM8OuhXR QXuN/mX/0glGEes+On1fKvWGJucC4w26++AMhtsZULJNJFSZx4k5Z355uKpuOlX3K94uGio1+zQ2 BxGM8sKB0MRhp/Yrm+CbOYZp7khWvHkhNi0np6XteWgRvEdVrDB0VHLKt53t9w6WViRiLbxlkVBx PN4cWPWJs/SjxPL54eVLed9Cx1/kVFUkWxLJ1qZU/frgyiWhBe8F58+Ob1hlLASlJNnEMMm33Svw le+lttnWbY25RhtjbCBkz6hyIYOheQUGYvbm+cWWBToDsQonQCzIB7YRq0HdVBSKcGz1h1/AnQYO DG0i8l4dVMssPvPMMzxHsAxLpz89+OCDWBpjigzygUa4xCA+5TlwC2hhDcQNOlp/FlhnIBZvVCyq Msr3zyFQk2KRNquTzyGHHPJ///d/GO7im+tPphBLwAoa4GdDM4DND7H+7AiogVh2DHvuuae/pzYN Il8MuHSL4M9I+zGVuu6661C++p9jMgaz+8gjjxx77LF5X4n/sR8KQ6zHlql0lHm/rnHuCx9+Pyl6 R7EEVlY16LZOHn/v4IpJkK4hsfbZ949sdWOyzoooDL1mvkvkTkWhskN3eKw81I9iVjS888LsH0Sc MnWAYbXlmLzeJVsdOOG3paFeaa5O5JBGzunxGRub5gOxSzc8XxTuB1aZ6ljWw3AJzckNI/rst8/W 18FwmzfXnCFfaIAFNV/7+MfL1r+405Cz311xBzh31E7/0Bfe1OjlBjjNvXRh95E/Gj3gcMN857gs xA6s2JUEggTBwJQxdw6s3EnTy5Ir25BkY2ztnFX3L1jzjBtI9C/f9oBRt1C7ovtDM/YNBGOTx946 sHI3gMOTnQsdRNi4cM1T81Y+vCm+jBHZf8It1eW7G2cI/pz5656esfgqgHqHoWdvM+AweDjh1Qy7 /lHNA3NWPdyc2DhuwJG7jNSwXHIJxM47WyB2V7Fd5PJ3QVguQUBvJ9HUWjN75YOL1z2B+AHo2mfs bSXhMvWIkTfWK7LdtkMnkuk1OxXZf+w/7tbqyl3MuMm67oopDI1HRqBFuK8uumJZ7T8mDT1v5vKb SsO9vrnTP3w6XXOYRCrCLoQhOGDsjVKUUbWaS3kpd9HqZ95f8ZvmZH0J8227x4sjlaxBj86Ai3Wn jL1Nhybj0j7qdHpoxt4Yxk6ZcOPAit07QsDMch6Zvgd1HTDhdvZYsv9gi2P6LmKStMRam5pzi5bV rjbxXfZPXXpikcOgLN0S1l90GqIoUPewUN+BySnHBvb6crSo2I23EuInGIomaxaHZ73sznrDWbmI 7TUzEBv+MILiH98XKaqkrCT/hTmjEg2sE2ioDc2dEX7tmcCC9+LssFQYQkWhcHL/b0YP+V6goirW 0oouQh4i/cA7jbFLG1nn7pDHxaZCJZ2DWJmKwSCAh5ATYDv++ONtudkCYQUVgBB01IwWrogDRagH 8JIATPr8hBNO+P3vfw9j+qtf/QrhLVCkglN8Wm6//XYcV2DpsEPmxtaoEEtG3Fszyvf3FvmwQqwG i6DMF154Ad4a+TPiYpsSiEWMTO0/+clP/Nkz+pUPYtl2gK+AN61SibE/I/caeoJdAk5H/vJJrEEt kITrBkUzoq+FJ6bXOEFl07ZL8/O/JnFhXaz51SwqsiwGAvNrHmtN1ok5viwJqn3EMjgxZ+Uf4qnG eKr5o+V3x+L1IWSovHj5bVuUfFhPtMQ2LKh5AJlpQ3zth0vvMhnlVTfT2sHGuLZp4Ycr7jNtsLts qx6Tm9qmOXUtCz0Dq/RZtrIxFl/IsniimWAXUqA3YoWlUk482bBsHSKd0DYDvtandHxronHphn8a vZ8NbqQBUVEkhwaW7oqp5EfCQHfqMsw0bCtFMSlFTZwWCIvlVEV0wG4jLt17m6sigcj6+vlzah70 DDroOzRJyaYB5ai6tXgrshmaUQO+ftC2BMaqhqFcsOpvRkAvIl1M0mYsvoaMOw47Z0L1sUXwoIaN UCuwCdXH7TvuBlb5eWsfX7iW1aQDeR2id6NRVuykDbJ5KisasNtWF+62zS8ZnTVN8+fW/NHTxadd izztsgbNMJcR3ppAFjhu4OPFGKo9rTBwOswwOiK4VqN0DnFaVouKK7h130P7lm/H7Fq2gbfdU78J X4xVszdF1ZDb0zTpFDN9dUYNPHy/cTcXh8uak40fr3vKNMBI69sfROEfRe2jGSbWnnAomHSQsadV 5J0ab5MoGcRdRXZjpmviL659lx0EWNRmq5nhkN35GrqT0m/DZUzBjWgd0Q/EC0bZoYajoQOPil58 R3DKN2l9LN6aKCpJrl7qPHB19JrT3KfvT66YF8dX3GQEThmHcCjilkaC4VAyEnVdfmwOJBoCxdHE 7ge3nntj4oxfREeMEh/nQCjO5iKRcKc9Fr/+7MCCd0OlZSHZVUETgXUN69/VnUwhIti1PkNELJMl rf2x+T/++GPuQQ77RF1WysvLseYFP/BF0Yx8oh/lExzCKFfDB4qYIpVSDhi0xjgIvrnDEcopmbAP tS7CO/AEmXZGadlIlvNJdmdJNnbsWMS/CpYZ+OpPn908EqMthgn2B6iyyXKqYDskwn9rgoIQKxaq 1qPDrW3+cGntP8KRMg+wxJNRHHjAsJWb3nxu9vHPfXD8vJrHnXCZCXaHqX4BFlbp6YYixR+tePT/ Zh/3wocnrqmbQVTFDMsFJ1S0eO3fm+MqmUmbNhjmhn9Jt2Vtw5z61hXhcCU7arMB1h7RhETSbe5T PqFNsietLdBfKRCzKZrdu3RUNFw1qAqxqltT945AnfIzMtWVQwIPYqOrvxZ1ejXEli9c+7dCJs+m QbLWy7oeDzpFanDbZjAlmkXtXWB4n323HXoGNc6ueaAxtlLWZsSdRr/omeyaNqQdY4zwDbVQqGLc 4BNoGfDTmtxkqgt9uIrIcs6gyp3GVR8tNke03tg9ed6YqQB85w7DTgeYZ9f8wYCc6WKWgb4OVQrx pnGETF+goFj2Yne9VZ/Jk4b9kKkyb9UfG1sRlNFUihEXJu+tM0EzBGaNGXZ6f6BCQWVrJEiPYKpu khTJjIuyjEjA6VM6sShaXl25A3C1fONbpp1mLNQ0VRdKn2mS9sLXF7dv6fit+h1Bg5bWomOTiSQ9 KuBy7dFZJLcuIn3YLpyA24WNsqQodCN7ETFtMyJi738qDRYbcoP03ubDROfIKx7tVGWdSiTTzCie zc5Ga/d8aRgyia0/dGzq3OvDR09tKe8VbNrkFhWHE63O43eEfn1m6o1nk8RUku0BYyqer1HHCZVX OcNGBRfNTs160Zn1YnTOu+GatS4Kg6JyB/VSU4ObTMR32K/lgjucw04CkIuQT4lgLJVa/Yl7y8Wp 5x5IhQgBFw7gNJtkJ2cYQZXDZP+1dbHTFsVKVZ2K2Z8ZKAv7iLkQUl+sjbQutQaCLUMKiqrVP0Zo KD/44AOkuOhlVXer5aPfRX6LghawsSJWW7W8G+kQE1kT1euf31JJYYxyYKyJ2qg8sd9XNcOsScvM SKDY72884Er0CVoFF6stzzf9rAmYJT4BngiXiHuS2ohlZPfvaTo1Jf+rExXmYsURQl969pgLap5s SmxElgN8phcMshsDPKdoQ8vSDa2fBMMVHpcnMoe85ySbMVHxFLyBg/y5Ib4u6JR7fJsvDBAcc0ty Q80m2S3qZRchJmpdy+K65k84TS8YlK000jxTgoH4AP4/xUN77QM4GemozLrCQ0mnVtXNhO0b2Vsm 8bDeEg5t2bqX0iyZLoUWGILRUN/x1cew5f9w5e/1pwILpJ2+bjKOOZhIXL14N4Z7E9zTKBlBWK6i UClFLVn3Ck9E9CSaKsBEQ0SJn49xDxKZsYm2IQVhOCOMZjCxsXkRP7Uk6xeuezIYiGMyJkYlyiOa IAAGNAxYppLobtGwNsXWLlk/rbAXhGm/tYpSQpqvJmDC1v0OR4SL8BOmH4IYUa3G0vJobjyF8H5W p9ywDThFIuORLNGXjA7OLPqG7VNGE10mAvChffaBAiMrvwKNVmx6Rar1wF6DJws12L4Q+kSK8QyX bJwNT1I9uGp3lBvrGxeYYWLhlCglBadEWuDsBJOUIfY9HUyh7NLkLSDoURIzLu2Utlt3BnCx2mXd y4qVbeEpull+1TboLi297htPMmzIndSUowIX3JIYPam5sS6ViiWjFaH57wevPTvw/KOBlibedGkt koZIKDxq+/CRp7lTb41f/mDgpEsCD14TvPOnLfddmbh1aurX3w/cdHrkiTsTa1aEisuCIG1TI1O1 5asnB864PtC7usijhoP82X38zsCfriOkF1tFZoaqIdq2cpuly6a/bQCjsJoTUbDLRb+IBBUDIsS5 cK5YM/3mN7/BBgo0Rfvobw/Yg9iWosDa999/38wq6Qefat+EYlJ5RG2AVson4QYpFudReyFkRiEK VJtpIPEcbPPsDbXzE7hoK9LhI64hrkH+0rBzRqQM522rBlCxn6IKwmVwsWOg5WwOcOS1plhatb+D WjWOSaiWNSO1XHjhhci6eY5bjr+RlqTZXO/mGsQvYjl5lwyhXXoVk5cvmILLDGOyYYyRxOLek++J zlX40WAEExbWIsNXscGVCe3Jb3MRhkIcCQjF3j0cFn87ljvhEmR95FMtkUXEJiYwH6//m117PPsp WRxCaxs+rGtZ5DhE7BSNhWfZa+IzuG4SSW/fsu1MHFoJZKgLa/5BklxL17+KEdbAil0oql/pOOx3 Wt261Q0z2+ScGqECe2Dh+pJj+omCsyG2EoWoKTlv+d78a8+4GMLKyX0otEQyadSQxU75sD5T6P+G 5vnKDsqWQZz2VSoA0Ty/GqPCAlZlK1NeVG3C3Ebg5mneitppYFJxuFd1BbaCcVFvywskiCjwJtgh tkcRmPXKXVNuDGZd+Mg2DMikk7S/nQlKW6wMkhaFq4b02Y9aahvnmU5Jdh+cpFklsXEzq4xivWFi 8eHQgo1RTDztAqQm04Hl6/+JELIa62JizVeMQo3aGq9DYZxGKeYhhSeMB0LYd5aIuj+1XbKpSJkD Q9LaBKkRg7t8V5pJkheBM6KC+HF7SsAuvefYgxLtyKWitIm47vbMUisRktPgyo7Tk353qfyuJlZz OetDbBZ8Jh2mraGy3kWnXhH89lmpSDTQ1CAWg9HS4GtPO7dc5K5eTDbWfYG/aHFkr68Fzr89OPXG wFeOi4+ZmCyrSDkRTBfN2yxOAW6sJbR0QeK5h6NXne48cpPTXBuMlIVSiRChicfvkrjwpsDWE4xb vBHF06Q3/xa49won1loULI6YIwLMBjTXX1t/O7fdSe8hBLQI1WunpR9fM7AWqyKMgcmInhWARBqM KBhPFThIDGilkyrIMrsNlQnjwKNRBi26oLjlK3lR3Por1VzEGuQnUNxelAOTigeqvBRpMNbEtnnU giXR5MmTiQasdDALnYt22ZZGOZSJ6pRP9c3lUjb0iSeeIDgUz8HU++67j2BMP/3pT88880z/FPKT wvaF7QVBEzUjnyA9+lfaoOyvbQl5/RTu6sz8b02fF2IzdiL1rUubEhtMgF2jthHQAg9YOEQ8K1EA 5UWV85ltCAJGNh30IBf1jIRQRBwSgg1LYIKXRkATg6m68BlfzFQyHCpb2/h+U2xluhTT5mAwlmzY 0DSvsXm1aFvbC9lEEpNqrK7aIxouUx7UOEVwFeJCRIToJMuiQ/uUjVFvoyFVB4PQKzeyoKsBj2z2 ja5Twj6CDlgkjR/0PR7PWfOAcYAtJIg26ynrBiJHs0FRYzEJLmiUggIz6tpPWJzhTiC5YhN2DSYg lDGxFpd/uaxS02hyDVaqZZBI1QJJwwETiGM5YDKgcmehDBJRlQMb4a1hKA24iXg21a9kPL9uaJlr zijMyz3AMnsBKXQYpLPtpBRVRcPZGK2uf1vYYw+MVWcsZKdgjKVVySb7M+mYMVsz/h9qXiOrlpig c7FeS4+W1f6TeiqKq7G81ZYNqdqPqlcJxNp4woYJxiSA2eN108xGlYh7Qhiprjkhvtfl0cE6IbCg LiiXlb2Umc8q4DVY2GnhZHqu6iJoVBje3PACc3pbLm9RFioZHa3Nt6VuzBrqOznVDAadGzExcvFt oUlTEg1NiHWD0Qh/RU/+wXnk16lEc9wJifAfckw6IHLJnckTLg4PG8e8ak0m8G93WusCG2vDxeUw 5eadlSknCle2bvHm1KtPhn51pjPvbRfrJAT7HAnQq7r5jGsCoycZ0z2dTcHU7NeTv/uV29zCMu25 smwWEihm8Ik5Ekwbcf4simQscf7qOLqOKAoEaYLbwziWe9xUsBbWLH4cInwx5k4oSr2OpKcUUIcD LnEESexnSQnWiOcPLQGwSYDUlxu+cmGcrA6vFIUeF+DMCJTBT5hDY5pkOWPsgSnEFkUhfNXCuVSv zIU70Ne+9jWtiARcSHrxPqLZVGGbZ7cjti+4HpHRtlaLxSEHJyLA3u42LOnYglC4hv7fLMP3X1BI YcGXFY06tfUfxhKbQAIvBJqINA0eGGtYRTj4P2PT6628YhWVf6dpEEvfW15yT7orgj7RGqojrDyn NKCgubW+tv4DM3vb2I66pkWbmj9OSMgF8U6R9ojbiSdgDAXLh/T5ElZJsqoLC4NIsvBJlolVm2ay kg7utbOxcZGlZ0D5WECLs4PkpUr3RdBaIkoRhl76PGbA4UWRXhubV3y87slCS6RsKVSxbXSrxtzJ m4YCjSZEg9BEHvYp3ZrvLW6TN8ME7yG88AfK63iib+V7JN5rYEPjApUy9indlptNzYtg2vqUbdum b5OFTEIGerVK3exsUr3Lx0FnDKzaVKe55rXn6GyA0CyjhvluS+n2LRvNu9qCMwdLileHsmWSnnzY stnXjoxGO2sUOUH8iNIyBqWMxB8WmiC3h0wDKnc39cjQ9y+fSNXL175kCtDqVTXhxZYyGG4a6YX4 ECmxiApSzuqG6VBqkDDEFIWhVSzNMed7kTXGpIT5JAU7lY7S5yjHbClAG8OOyO8a9EMV1Uo/QyJz 2xbMJF+LPvVzZcB0r2DuJQ7ELpMD517vDhzW2lyHOEoiEoTC4Wf/6Dx7v0QbhjVxk+GSqtCJl4d/ cEVT9dZuY7PM4VQs9MozgZsuifzsBOfeKxNn/Dx6zm3F+x1Wgu4WG+9g0kAL+2w3sXF1/PZLQ//6 Oye88r6HWpvDJaXu6T91R27LlIgaFY+MxezXg/f/ItHC7RZYoDHPIQQEwl5LwgzmNZOpqK/HiBfj WMxxrUGQrHJpEFWRCUwqzjy4A/lHhqKwisIACgGyDKtvKwdOg1v/MBdcIFWQTL+izYU71MRIcWEZ swM84XIKs4uiV6urq6sjIyVw0Tu950bLJKKFoiBC7L///e/6kE/qhSvVU32Uz9HS7HbEkgJ7YzJq geTSijg+z9p82a7pDapZkmlgxU89Vf9LCvBDLHyA9qqd9MxE+g4Qj5CREBC1y6S+peYYGc3GjQmN pJGAjLKng12/LC4ag1BuCBlmVkeBRLPXNvyQMLbUsa55oZFUgutGjxUMrG+cvaFpOYHDEDULr2Dr dXG5TA4om4iFS0hXNNWpmZBG/ktwU7FO/hdasuFF+HKcXpRdpBnDe02Wedy6qrZ5vvRFOD+YOXNY gGCstDDqlI+vPhrQnbf2KV30jTIpzcpBE7UaE4cUUVuaNVcXbq8tstKm+6sVV0RHsOKEUnG8YmR1 NtJpkbF6y6Ku2m0LEc/nr/srZQ7vs78aDGN5C92KQqKM8XhrA95+v0utH29R09hkaxKJVptEtz2p tF3+S4+7UdwQGIP7N1JrtzG+PM9Ww0426Ygoh42I20wA0Tan61BRvBS+ZCNQGiBqhClQapQRSYUb WlewpdD9imE0DXMOXHgGeunFIq1tRVSwaO3TCPOpZdTAryMPYLeBra8qHdr3y/ZRkdtcRoQBz1VY VerxcFbM4FFG+9VWkQe6WqS9zNeCUpDsAenOE6OLxwda8hrCJSbu5nz/J+FIJJZokmjJYorvOK/9 NfT0/Sa2mpgNOsPGBS+6JbXHIcFYazDRFMHi4pP3nF+fE3zkuuCcWamG2ljLxmBZv9btJsWPuzR5 zg2hXkPiqWCxrADGmNzY+Tn3Xx98f2akpIR5nEy0pEoqg6f8NFjZhzaIlAUrY+jx4b8irz7pFqP5 kSki6ijzurQNkZEi+yN6docIOfN0hrvtZGUWqzR9TulrRppOlixTqaP9h7+6bKjrMLu/wQUa2Zly sjuVnSuDdS5Ah3wpO9OSnGlyFtiZ0jo/WPYlN++BOUzGXBaKzGJnVpamplWcAhtMEm6idYv+YSTs pqQWbtJ/MYIsNsTwb9f5SitdWOoNzYsbEiui0RKzs7RqNmx+WhPJpuo++zgiIPXhkNe9NnWp2HAK NyPWjUs2vtKaZFvnDOtzgOH0JHxBJFIxsHJX1scltS8LB2PWQVnTBfOIymTAORjYpv+RJU7vDQ1z iaBkCKhLJ+pVaBcTTry9c0j7kFcGTtKk1zldXjzQDEUILDEhGOO6uTEyao8bSnM8dMGds/KhhWv+ CgaPGvBNk9GtbfoQmlBOR7PBKSuWA0Zo46YmThI0uUVsm0OpnHtf6s0ZV0Jrmd1AY8vqfKhVqDFp yLGLAoZmbBSQkA/rs78ZIkjj4uI8sGpnSLF444tmLIxdldFZCLXFrVJhW227Ihga1ceXv7f8jjeW XkXbdt/qwr6lY4XeGoBaw1jmbpZRCijMiszZCFfzoLEWkrbvS+84JXv+DB0NzBb8XXaKbfE+Gzem ErG4i1OSgysr1owhcPS15+CzGc0Y+8rqYaGzrw4OGclpry0Y3eHU8+YTRTdd7C6fb5x2iJIqLr7Y AqdaORS2Lj5qu9bTrywprpAppO+MqANS8X0ODYwclSKoE9xtMpwKRQILZgUbMKpCEIUoxozFyNHh SQekEq0iwoLsZudlRp7du5yLZ1YAJWq3hPb5qNoOxVVBbV5J//N88JCRLPurVqrZ87F3OWvMaK0t wbYk+8Zfl1aaAfB89Rsb56yi8NzLbkbn52p2980W2bMC85eTTe1sJttPUj8psslSgOwZW6vNzn8b /Zphj4wVp2HqPC2WPXlNZnYkTIi/8VVlY4jFs0X/epeO4a9P2VjzOZob/vqWbVsUIFyAMFvq51Bb P29jy8cB/O/YGQgDY6S2ZrQYp2ikfGjvfc2K7/XIDJ7HLuu9IaU50pUuO9gSv+UEo8N7T/E2+BI9 WMoaUrUzq8Gy9S+YXMbgSNSorXJyn7GxYt3H4mnMoGPFT2bl72Sp1RfJALzTdrBdvnmoK7JdlynA hLk3nKvRSJpTNpVN0/UlvW5z2NHiNX97ac4F7678TciN7Lb1RdUVOxmOXJS+aZvtfPVaRamx6TXG ON3bwXkchy5JIorwxBidf/F0RNLpZTLydWXDDFbZkX0nm5XJ7EPkeWKwGHC5y9ZLAAoltbFeJviY ++6y3xA3Y9q881+cf840bhac88S7hzzzzndnr/zTyN5TCOQ0qt9hAsyifRThbaHXSU+l9XS6Uvi/ V9w1bf45/5x3bs6/T9Y8md78mGjMhp/+bCyEu0Zno5TRkNHawU/mx97/V6i4lMkmR/CiWimpSG23 O5NBRwQrJHQ+8VgCWBQ5TF198tk/JuNx0XoY8BMtOAOvWxVeqJbmwFYT4kee2qo6IxEFR8JHnBE8 9qJkaRmGacSmcPGFnTM9+NCtnB9iAkRjLZVy+g1zf/CL2MBBrjn/VIZczpwWCwFjo2WcoNuuzpk7 eYNoshUYbv3Jv9O1C7qtMSc8aK7s7P5B6QwmmQ5KGzKK8pdjG5BxkwFRfljNbjO/WsmwFp69vejM jMoA7wJZCqwqfsrkhLqMvBmU9PfOLv7+gfY/zGihtj9fCZ2hQCfToDERyad5WwRT8MVMJGIhpyha 1I83Q4Knm1OotDixOPVLtzpZSdeSeS+2yWTvBfyNyNprwNxVD7634p7WZIPjFGtMY93VIi4mOnF1 rx2njL1TAlkY8EiHXpLOmAHQaLT2q4hc/zrrK82J2p2HnTu+mkiQHh9PyeubFjw/+yQ2IQdPuLtf CapNNu2hh6fvTbEHjr0Dr1NpGEF7U/XPvP+tlkT9AWNvFvNXRVoTGonV+eAxd4jlUUY8xdxk8VpF HCiG48DRNw2s3OPBGXu6nFNCWFiBh1CSmDrGBErQwkmWR4cO7bs/MaIro0PslHp0xj7wF1NMCwuQ X0nx8MwvESxgyjhiTu1cUzcdIMkX3akgU5aQKFSBgEeBTgy6P7pkmmA6zWSQnnjvK02t9TuPOB2D Mi1MJPWBICLiv390Mkr8Qyf+tnfJGJXiPjh9T/H/ShGBUuzYfdoKz14JR+eRvQ4cX31cWXG10UQE H3lnL1ZwwkfnjO4kW08Ttwgzb6I74W/EmajiCZrn2mXwmWOGfNeTKaenVudGvBOU8iXp3jbIV4CK pjSoodqlhUfv6Ey9ARNBESCjmIkUhzasCFx9erxRjGG5io+7ILX3EfGWJoKfhFA/PPgr560XWnBx NgZa8t716h/8yT2BaLks38KAQq5w6I7LUnP+BWCHjrk4NWmyi5reTSTRfxC+cOmC0G0XBzetZ0bj WRBFXztoZPT0qwL9qpOx5gRpuJAdJxEei2ElFt0qt0/LWWR0uhajWHuSExg6/zB7qDqDrwWgvQBQ dYhh/qrzVeEvJN99PrLkm5cZDbOw17V5nCt1BjE706mMYuxuowDNbZbC494h/TvZX+N7Ittvpym5 ftrcs59+/5i/f3Ts07OPeu7978DYmWOVZVmpbfxo+cZXV2+csXLTv7bw31srN/Entayqe1vvl294 s7Zhji4NoEJzfB3rbFNsfShYatSs1hNDOpJyW4b2OlAi7src4Z8NqpAGiPSuU4WAkBLL1ZbkprAT HNxnX7WLTgsFnV6lY0tKqlkJltS+Kjyxem4YO2pCmQukSQ34yFaOH3g8yeasetDoYuX8WvlFjqTG TimPMDLHKPkWcTUoQ5QttvsuUYIH9NptUMWOQ6p2ra6aBGYPqNotFKpAVbxo7ZPzVjzQSthhzyyV UxCIccHeIq+Fl89XRCzOCPohYTE6OWtyJ8u0Me56YZ4RADOSydYUr0MpSOz+dDnGco3VvHRUWVE/ yLJ44z9V9iISYpH9OvuNvYm4j9/d5dVjd3392F3e5P7Y3f51wNhbiVNNUOh56578vzknLsAqTd26 2h1zlNVY4wFl2FD2W2EGYfK4O6RYysz1N2YIQVk18JaZcnJJPI3P3yUCcLN8iDOxET24C98PvvNy qKQUIwYBtng8MXBEfI8pTL+IHGAXjL/6VKq5XiTJGG0j1933iHCICKppL1mzyGI1gwSSnau8j+Ia EE589fjw0HGBs69J7XZgMtHIzhAFbSBaEly6OHL75c6mWiPPxzcoGd9qvHP2r5MDBrfEicZHGDMa FuKEd7nE2VuiQplXz6+G7DoXKy9uWvzrF5Zm8E8ZrJJ/BPlJMwo7Yi7LdCpLlM02aQINeJQ9GQqj SHYWWztF2ZL9ldqG+fNyXB2hDTWOPyX4LZyzm5SznZoso8v6MIMXtAVml6NPMsTU9mHOEcn5+tj+ ants2yxNNIF/sDSNvwr/2GnXdIz8A7pZXl5vc9iYWPXqR+evafwgFC6TNovtUGs0UPyl0dcO67Uf T57/6JQlda8WBYiam0NLt1ma0r4QtXkxFkbijREfVrXHlIn3Gi1aYPmmV99fftequllFEYwl9Grj UEHKL098FB+S9mNpEwjXqaJRDTUIWd9dfvcHNQ8MKBtz0Pj7OMMyzYOaLG5q1oo75q16uE/FxC+P v9ew+87DEpc/cMC426orhDcVDoyFx6175v1vxuKNxOrjlBgjNiQQ7r6AgYmduwcp250KkINqbYw1 PBZNO3DsbRzRY0Iip6aMub2/YYUz3lR2QjMX37QptoxoTfuOvaU4JAdPPjxzT6xUDhonJ/wUHB2p 8cGZuyOLPmjsLf0rdsEJuECM4pwYrBOaz0dm0lm44d8MKN+pwItq25OHixWJxbvLb59T8+e+Zdsc Mv73VpiRfrXcd5ffOXflQ5XlYw+dcL9pkvvIjD05+uXL42420gIZNaNRFqMwHWiU9wSdJlRkUaj3 IRPvL48Oemjm7hhYTx6fO0axaaR3BtGD0D/gHjT2tgGc5ZB3G6KGV/Bfnvpfoxw/7D8HYnO8J50h bIF6BAzNz77VhCeRwSOCF93hREpbXOS7zIaiAOH7rz0jWL/BW62+c054328nYvVJlLYl0cijNzuv PInBn4Rj4urVP3DZvcGSMnGcMrtQT3KUQnsexXKCWE9SZaS0eNns1jt+Fq1bA6liiIndVHTbXd2T LgsWVyVQwYomBAIWRwKJ0PQX3bHbhwcOa25uUl24MLKm+107BkCpAVoTL5BPkAa7XD1qzQ8PhH0g 0IS6z2Jti8cLifFO0cUaW1nMg23EYEtAQiRy4fpCYmIgE2GRM9txSIWbpxwq0oMBuMA54iz6K7Ul E++CkFI5F3dCK3NCDqI5ms2JBerV4wdm/arJqIXzbWiG0DH9VhKVAq8bDjzg8AOckTB+zgYSglRA nAwBsn8WUZpiMycL6UFD9JpwV+pWlNEkzchDCoRo2HJnpKEl+EGRHRJxpgLBsKBA9qQtKysjRgdV ZMx5mgG5oK39KedORXPRLyhPAhycMMC2tdBlYi9TFM9pIcNNwGeO+2WIbfvzbYC69B57fq7zVz2x pv7daLh3CL41KWcvw9a0uq3vL7tTPCtwowlGosEyXNY4CWdL/0VCJWE8TqkoWMp9NFwadiIBp0hD 77LGbWxcuKllpcbBkN6aaPiGoOyk4/0rdq4sHppPpa8bKQ08ZDS7wqcsXf9CxHUHlU8SfDXQaDGb VH3LOQ4lsLb+faL+ehv/tqABaevrYAJGdlS/I2G15q562ATiF0dScVqQ2ekd45xrbNrFcFB2N56s k4DEmPsWw0CLnadEd/JZpXrGq9LMVHXFHgeMv4nurGv6aPGaJxFskgOtechJchJOvtmQNn91GlqX mTRuVamsJl2aPZpRsyTcenmrA5GyaL9u6CB9FQsyrdjwOvLB/pVyAIhQwOy0TMAKMcPBVpznGxvn NbauMKPFBDBW5aYUWTc9Y1RvPwL5ipzK3Uf8uCo6BBOqxav/TMKgmxmt0993KURclr3CUm5ETyfI f6UNrzxlp1Gid52an0UOfVnSkhVRpwbjq5bEXng0xInj8gbg5NQa6D80ddB3sEgg3qf4dTz7x+Da pRgAwr1iEAyH6lRvI848IhGQyNtmTWedMGho5NBmk4wSVwKfYEQVKC4PvPsyR7VH6lbHcO/CW5h4 Ifse5pz6q0hJeTzeatzNGaniIOHa/nht6oFrA9dNTb70F8Ieh4skoFwmA9RJWumsJqAu3jWzZs0i SgM3AKG4SPjES5w3jtMqCTjlBkdS2dknk4Ro4AluKjwcNWpUxgzhK4Gf+EmLJQoSuVi4icJIFp5w uJtmoQ2cH8ARdVoUn2QhGWnwwAFj8NjhvDk/VmmziTCl6XGzoWSd3rYZmp5PokOQjAsXI02jWA6Q TJkyhfLZAQD2nOTqL8GCOi3XWvSE2pyXls9JRFo7MSZpvPa0QC4wUtNrXTSDYBccXUAWolES0AMH Yk6Z/cMf/qDk9S9BnJqnrdL22FqoFzcqnk+dOhW01s5mTAbtPnGvcH9SanM6kB0LbggVAsazGWJr wimBRKXmpFs9EFDbsFnwlXLEnTTmNi+rfRENjMT9YbzM3o6DSDlxfUPLgpqGd3lFEIVK2CATq3yL /pm+tdnLmCVOg0nJu8vi0NS6ckPz3Ob4ajDYRHcUZldP1TZrQay6z35p1xQRIeqETNt2Kh54J/mo OcaGxo8a46s4A+XDmoc5FwWW5eF39n5g+pcenrEPbNajM/Z7feHlnB1NkHQ5EkAuE+XAGLOm2hyB BEQ5zYZPYv7V1L8tCKsMrhNFwZUxA/xf/ZEm1YoVMbj4BAdTpZGBntGWCdGhS7bhB4yRiIkbyMLG EbPmGLukBIBEqum4RcE+NFDjFee8bKVNLeuM10SAMB0WLwu0NusnTwK2sXGOi/Iy6JYVDS/gD12g ZJlXMlphbLM3tbATT85fcT9D8MDM/R8xg/LIjD0eeWffB2fu/dqiy/UA3WW1r5jR1/VdtzsyLIKg bUYDxhLVLPrb9DuSXCs3/VvCbjgxDUeSmz5CXGSUyqATt4xTbDuGTDMuivNdIeFnnjb9OmCmKxRD Jw3hX3gsvvC9UNiE0OYHMG+/IwOjd0LjgLg4gAX/Y7dKlEpQ142nKvrGTrg41QspkmtUDCLMNQuT eOpxXIW8jCLbQRwfSESLeRx+8r7gvVcEG+tZTBw3GSkqcY45L/Ld8xnJWDyBqkLGkXiNNSuit1+U mvkCxuCxTTWtD9+UvHaq8+/XA9EoDGi7aCdKtg73MRZIrICUA3MICpFBdTgqu1LrIgvE4sOqyUBo DrqxWTQBcRb33ntvaUMwCBvEEap6r59ctkBtA1XI0pquSDlm2FNOsd1///1hMXHDBYS0FsVOf2kZ tWsaPjlEDz5VfyVuIqEhlIPkk58WL14MnBA6kdNtSQ9rmNFxhSitS9umLfdfts0WArVr9lMT+zPa 7tteUDWnu3MGEZylhTFu6D5xNthD0As/XmoaW7K2QWuBMQUUb7rpJg2JlRGlmVzKkRM3g1+VSkT2 sITVBCA9YZZhyuFcf/azn8FwU4XuWjJI9Gm+ChglE3Wt8VrMGNKaJDPA8toQRDVW3/SJMHyyERX5 m1m8tuCf6UzGlkR2xXgFyMRNcaDeR5takFSI5g/GTrxFPaKAtcnSyIBhFYhkrZmuapvs5sjIq+SB SBH15Vyy4SXk4sXhKvxz+Kuu2L26Yld8MRGxYrjEqXMoPiuLhoDLn2x8xZAGf0pZnAXzNFxRegQ4 Vn1Uv2/QnNmrHtEmmFUnrgyowUSJpOFd3lZFHniutMaSlu5sinN2LCf9cTqsWVOMLyMnrxmTb686 791Ls0pUjZ7LsKQiF+1bPopceDO3R03x8EnXZZrEAYVNs2H54AuNKbUnFcjGyPS08/Yo8lX3Nx7L n9zUuhoHZWJLdQunPZIYcrqiZIXHjFbJWFTuNrRil4FVuzEoA6v24Eg4hoaHVUX9aeTHG7D0FqIZ vx3iguV8NzTwpHje9KkY4zoclztHzmEykOnbz7Vtg5TKJv6zGgehN8GQSuJFdHSloxArL9tx+o7K 29y/S4vMwJmmMaPMp7kSrbFHbg40N0Q4ig76w+NFo+5RZwaLK4gpLfZeH76Z+utd4WgRilKntdkZ MTZw+tXOgOGUhLwYYopxpO5J5IUz+pZwUaCo1PlkTvjWqc6zv8MLFykctsjB4ePd82529z+SGMUJ l62OMW4qKg988Fr45qnJRbPjYRY7bxF3l88N33l56I5LwysXhKVt+gbIgqDvWIcga94hH2Lx9fzz zweNLIDZBEoKCyRArJ1URGWyyfQh+Nq3b1/NQkwGDcjgv7InpC3Z3mh6bd6JJ57IEe62hHxrfcZz wktVVVXZlh911FGagE/EwnCHoDhn56koGIlxRtWa0t/s7AT2V/uTDYvhT5yR0eKo9g6RAKfWW3E0 wKYyZC5KA2g5gzafvDpnkygWHp3zfbO7oIPIofF2NNlkcHSBn7YAKhdoTbgMuHPk8OxvtKkZ4/hp vua1kLQDD/NqdqR68FYH6T9NUwrnNdpTyJbY2LSwrnF5hMiI5lg0cbgxx4bQPGyhB1btIg6ahWlk giKZ/YQYpCwnbmLK2brX/geOvQX16oHjbpg89mZuJo+5CePYfcfeuv+Y2yZUn0CI4LrG2Q2xZWrv xL/27q1e88cTdt9Nrdn0DrysLtBmpeaAMIYcfwUCYMl+xYNXCWKhJYl8IA1+Adg4gHxAhYhJjU5R DrMDwAqsJn0rRkEBoiXr+4qonFrkmCDP2UcXUu24Bq4zVhsmqAg8dq/y0dqndI2ZbLfIAFXhbZBY KKxBd5mRsgMKrWv4gP3AACIeG3Tq+mUwyWxbV254leEeWnXwPuNlCHL+ja8+iTZsbFiA67A0w0Tv Sm+2FBd1WyPrvDZGfkUY4OIsy7RBpShdwUTWbIM8gqjYQ5tvrFYtoWzzCvTMq1G9mEyrCkkvuk6i LZhDOhpyli1IPX5bBN4KhgtKxGPJkWPco89mr4AihZfFnfbnxFP3gLJh0Le5KTByonvejam9vxYq LQ9GSiIlZcFoaQpY5TNS4oSjkaULnfuvDt5wXnDBbJktIScUKQl/5fji828KjRiXaGmS8UHcEyll ckX+dl/onssSG9fKhIonY2YthsPGV6iZAJkfTk/86uzQv98MFcl56oqCRlDUuTXRz52QBZEg0mD0 r/7nVnRsoRf5pA0IRdBBmEJNrwkUdLUNGhmfq4BG044fJ9yhImXR5yIesg3ETzk//OEPUQqmO9jB iGszwFR/OmAMnlt/gn+Fz0Nai7kTF4yytjajXJg5NhycE8AFDp199tk2Adi83Xbb6U+cAYBEWn/y r7EIbBE1axp6ZItS1llTEiry6KOP1ozoUIndiJ4b5TStReqrAgaOyCV6s63atpObP//5z7CtlL/7 7rsfdNBBnF5gRwEJMG3O3rsgqyC9LQ34VDm5bTzSYyiP/hUx9dKlS2+99daNGzfmpE8Hw1Dw544h M99O6tPU2p28JuRSXfMKIKEluV4sYBXyTahb8QQ1CDG09z4YVXQ0Mc3CJ/gX5rhZNKxkxdJHeR0P NtJzSDjoVHBEr/3kbU9yTsDrxtUhr26VY1+3HngEoIhpsWmGyNbwFkUiIF9kcw9LIJPO+B3KYXDG vV7RU9RRHFK7vPYVshA9OP0qeEtJAegyobUEOVScPrTXASxarYlNq+WQIrP0e7hhihRjY3mIYnJN 3dvwC0Mqd9cf8pFO9liGX/S1wWgUpLYExswrNr5KDXDDEnOvOwOsDLRIKepaCNoVHFy5Yw6xYLrk 4X2moBWQYIq1L+kzCe0p+zAlp+fzatZDbY54fKFl4OfK6AiJia3CQG1tWsxghsirwyQQKoVSkYzg IXn6p6EwZBHuDgH+s3norAQ3cd98ruWFR1LF0SJ1G25pTu15cOCIU4xUEGluIPTsQwQTduobnfLK YGtDoqqXe/xFqR9cmXrxr+HpzwcXfRBa9JHz7zeKn7k/evPUyA1nBN561mF+MO+dUHD7vVOX3pY8 8uSWUKg13szWM8Fpd+XlwZUfF936o9Tf/yDCedS3ZjjaAmSavREnZ6X2P6xp1IRgnKMiRCvPxd7a zJqCSvIMuurSDBCyWMPL+n81YyclW8EjYKBns3MhcuQ8HM3OJ1+R7ppmpBDGEmFfk6k0uPBgYjTE +o7qF+kosAcrRpBCnZBgP1yp6VShQjQxacBjgMSfGP0iWlvbTsIZgovsAOCPMYbyQ6M2kieEgaT9 tAfNJbphUMc2ALswSuA5F5Jw5OHZJZCeGI2ahh5RlN5TIJy9tk07pYTlDHlOIIBrpHDIS9RljJ60 2COOOILgybZh9gY7MvY6FIgilg3Kqaeeyjk/2kiwkyOAtBb/hgkWNkNQT+G6+dDE7D/g6fkk0iRP CLDsj1iZ3c3uvaDekpqLIWtbbdOVdYzH3WtEJ3OxROKlWte8xGhecWURN3nJK6sisT3dypKh1VUg pedWn7NYzaBLJ8aQS2rfMCxkYHhfo2jxgvgwAGn+w4Q6wqsS/ozgQUs3TlMjpnxtxhhz/KDj2Xiv rJu5sh7NqAiWZUSNyFeP2PXTU2IgwFmJk6IBr2Bg4ZrHm90N1DCiv6h5PLTATahNxJyjcjENl5OO vDPtOUF21IAjKPCjVexbLaUMACkbakBo0fq/tiZayiMDh/Y+MA3BuV9s8T6SDnhzIO3zo5mcj+VM 3zqck0b0OUiVo926RFCxdOMrQgo3NbzPAQUgPxoqRVyMgvyTWmTFEqyDI961avMnp7SaRqYNb0w7 l6BND8YHVmwPEYwHLbRv6695x1V5b5Z4kTVIf5PEuxf3J8/7K0/XZML4Vvx2pjTdosZnmslYOoBY EgLzyXvDb/zdLUFNITRNYUx76PHJw042xl9QwQnMeN69+YzQjGkuPrLhYmFve/UNvP7n5D1XhG44 K3TjWe5dlyaevT++4D3cf7AgxKo4NHHv0Lk3Oaf8IjZ4lNPYmBTjBDEwBmSdFx4OXn9WcuEsscqX 6s15E4byep6urMvDR0fPvTpwzFSnjIOh1a4YAwKRFXu8bAFiZayVusLqQ044V5bRXvqTptGFGNso y5gSBF9eSfOc892wYNLESImtADZbL5jdNs2lRXGDyBQWyswfeeg/ED5fvyymAhvIgclIfGNru6t6 R9Ko8pIRBFz1q+27v8sZtWgz/HSz95Z6flC3uwo/bW0fNS/W2jKojgOksavQX/UnsBarMSx7AVGg FKpqe7I3GRZH+ZV4y7bZGFRbeiqsYgYFf6zpGRq1fMaMGUZcc/l7l3OAsgmVbywKPy+Mmv9hTPU3 XYyw0Gom1ze0LAlHJPSukkmciIyg2E02D6zcqyRMYIG0yUmerpu31rjkhYiMiDmDO6wfAONpzrxh 9xnLKF87qJcEo1+PbZRwvfn5K8etLKreuu/XWCvm1PxRtHhiuOS9TmLgoAo6PbHcA3KJ/qH3YMAH K/BNCo0f8r3S8FBBc1lF5OSvwrta9gZIoT0RpUCHO37wCYQGWNbw1lxphqCX6WHaFCwV2Ng8d9ay u8GaCUOO97YU+ffNnmygHYdnhsAcqfvvZbejFR8z9Fik9AVwsfBcVAosX/8iS+fQPlM6tJka3GsS 3lzrmz8mZKPsHAhV7YUng2wqZlDOWKexS4xi9j2E5Rre/2BxCvW9wyLtTjO7njhBchvINew7vJWn eM/bB61FtndmuPXr5+gNKkx80VKYkxnMTfLB68NvPBUljDDGJfB0LU2Jr57gfud8AqAUwYcwu2qW Ju/9WfDmc8OvPxmqXZvAs1qCQxnDYsFIMRFzS0qcbbZzDz05ccE9qTN+mRi7A245QTnRPZTiRDyk zXNmRm4+P/zn3wSbG4iZKgop2YR6MgC2new+I70GRr5zZvHFtzjjd082NSVMMrP4ivYEOutuuJBA 3r44CgBKB4AQlgWeBk2eWtD4l29No68t9qjYxcg8SqVgW63ylSNl9CGfnLdj7wu/p7Zkm0yXcmBG j8Pjwra5g8FK/4ygmyOA9Btc41133aX3bAUwl9Um+QXXep8PuvzEsQ3Q5vlbqyXYNY2v1tFFk/k/ 7VeEwHoPs8gxutzYi6J+/vOfo4VF2oxMW63GuBQs87V25MiR/KrNAEQzmgSUqlEVz9EIYLSsZSKW t83LRlm7t8joQieHI2cybwnIwyB9jjRJxisuRQCB1lidQTgxg1THWf5YBYOpxNDee0uUtQ52KCTg lBh5jxtaVje21kBWjGiEOsKwmpU3/cbKwUHmlST5CAlnIWJjTlIr4BxsPEwCE4acGHKdVZtmGWNd cyyJzlROFOHMPmVqTV2Wq66LrZq+5OrXFl7BytG3ZNS4QSeKhFoiJMiSLQ746gaR5yqNih8wKNUY q1GPzIpw/123uSTiBt5dcsfsmoeQ5abRVTZ082r/+tLcqdB0m/6HYY1stgBCgfybO/Nymv2BBSd2 G299cs0bi3+aDLoDSrefOPDE7otIpVAHoX196zKiTlZXESWxUCBGkg/v/WU5diIV5IgkZUbF5sYz GVMvVQjN6o/R+KK3P/n1jCXX08FxA48dxPH1QnkUs3BuhACTF9Un3VUiM6+MbD8QIgWjqV/zXeYQ JT7Sx1RImYXG69O8tFsor2mu4R9DCTfR/OANqRf+EijBsYCtC27yzc7kI92zf50YvDVqBqEqooLF 77sPXB+88oTofb8Mffu8sm+eEz/0pORhP3CPPi941rXBH/8ucN6NgSNOjAwblky2OK0tYhZP6MTi SPCT2e49P0vddmHqY2JpC2E9usnsUgUQZ0YNco841b387uQB34kFosSWkh0AkZ6Mrbhpp5wQDJ0L 6BPaSKULuk5vWCUkk3q46eTJk88991z7k2bw4wdIzGkz+hATYlXvIZxEuqsPMUnFG8fW5AeknCPl xwxbEaJaa/uD5a2ZkB0LgxCQ4tmiBQLznHSrNYJnGNOmiem1IqOPtqcZFdmqtdh83dHn+omO87TT TkODay+sh+CkLWKxlcGqSEuzPKUljswA5Brmgt200lrdENhCzIgbhYXjQHy1CddGIp227dFigVL9 taWlBcUtsmVNidEyxPGPr3+MbI9yDlz3Hn6BdtmYGIZ7lYyrLBmZTHLwpxy5ZfpM8B1caOK9y8b1 L9suyz8qmywswxIfkfkrTjjmGD498dugtQwLCQRM5FASAUK1viSkfgVR9d3Uqvp3C859aRX2vdv0 O9zok8w5aEa2JRPSiSZDsX8vv/PFeVNfJJTu3PNemn/utLnnPv3+d55571sL1jwFCk4Y/N3JY28t wYXGWEuhKJVjSrxlJO94VRRVoysmy+qGOWYrgO1PaOt+h++89Y8wY5m14ra/vHsQFcnf/PP/Muvg GR/fyIG7YwccudvIS0yvvTDF+abRjOV3EZv35QXnE5iClk+bP/Xp97/F38K1sn+fWH0s1mFF4ZJ0 9q5vzgzoLa6dJk6WblLiPhZk3AHIsqJB5pigRE3jdD109r0lEkaYDtLUFxecO23ehdPmXvTo9L2f +/C4hWufLAqX7jj09EnDfmgaiWcJh9MlZ6286cX550OWf847j061/c0998V5F/N8wZonjINQ4L1l d06b2z6NL/0r886Zvfy3aZT1JMZfJC4WE2uZ1kbaIYwiC13ysZuif74VWW4wWoKigKNe4+MmuRfc FP/a8RVlFaLCEFGtQ2TE5IpFzeN3qz/k6ODhpzhfPck94MjEtruleg9oZUripYNYOBRNlZQ6iVhk 1mupOy5zrp+anPVKq4kIJUJ+LGCM7zjTOxyKhLeZ6Bx/cfjHdwe/epxbVJ5oaYbj1GMY0ehidymb a2Ysb73Rd3QqJrbKSHV+4id65ZVX2gUahw3OJ0eaqr/6wVifoC+0vKBCF8ZKSB01MQfSEdPAD1SF 0dH+6m8SD63iMB8AZL+bKhAmPcikp8ihE9VkGTZQtmu2EFtLBuTnY/IyOmXRiOe4usJA33LLLYi7 9UI2wNG2lmlWOYFWDbOuYlu0zuwJoB6bAyy3EcizlcE/WB2QMjYZ2DTBiXJhP4V3DZJ5rLe0DWTh CHo/OiI3toWw+yEWB+VrA8iF+CHnbiObRNkE78aTAhCbvUp2fd3sRovyZDFvoNurZKsBvXYhygGH 8GgUAg4BiifqeNuH9T+kNNrf5O5w3yBn1JIOr0pwr3f59izW5BJU9UKOwzPi6ZFG1zRvNLTXQbjW L6n9RwGtqKwChj2dOPQ4Fis5+dazLzWGtqbNtQ0LsDdeuen1mnoCUr69tn4mNq7EB95pyNmHbf/o pCFnFoWqkHsaXln64qkV89tYSRpmTxUhpeLzVz8UjzfKGe/m4Zh+hx227ZM7DDxhUNUuGBjD8NVs mlleMnR0v8MOmnjfbiMuEqGeESx7y08e+uP2urburZqNb6/e9G5N3VtrUDMHE4zFpKGnHbrDYzsN pc3ib+fx950Obmdr09pX1qHfk2Nu2aPoa5Z/Bsl+aHi/KVgSL1n/kh66UNsyl97VbJq+pn4Wn5wP v65+OkcJDe0/eYdhZx428a/bDjxBScqqnODYcDe8vnGhdKfubXpEFvM3s2bjTBmahjf4jKUaiaCr sZFXNfwrnUZTtv2trJ++rnG2HHUsV5oP3nzzf8uXpGdZGrGQsULHM40wNM8/Hrj94ujKj0OllXII T2uDy9FWXz+l5dK73cO+Hxq6NTFqJFoNol/QNh5zYi0JzuZIxkRZSqzESBnBY0LYRn00M/HY7c5V pwXuuiz8wZvETFTu0/NDQ9hDrPRe/YL7He6cc13gvFsCe30jFS13GxpEkCTgKptUFkbjJKaSFCNx 8cNDARJpSothBGQAEsAkzYLHy3XXXceKrxbF2QiHBZDKirngevnEqFW/kvjxxx+XBvmUuAVaYhtM Rr/WVnG97XXw3ecrDZG14j0XUmK1UVKGm6JgcFX9aduprbWfOUnnb15GvRnp9at9Q7NBy5/eL6y2 2MkNxIQfxTAbyTafgB+ieDV3yqAGxmV0BwtkLvZDqv2lBKyRYaDZDtrJwHPKAUq1/To60GfBAo6/ lIsQHxnl56RSgUHs0k8y85piq//2/ndjLv5S7UQuxnR+4+4jLplQfdy0eWcSKDgcsmxKl2r5tIkT bstuwy8cP+gY3vum2Nr3l93xSe20+lgN/FkRMadcZ/thpxP2IQ2xn7a6nvw9FPjcUqAwh7QFmi32 YkWlwUO+G5x8uFPaJ9HcHMSzFROb4uJYS2N41WJ38YeBdTXOxF3c8t5I1eGoOFDAadjk1K1zVi1L rFjkkGYTjveysGkYGcIQq2pCGNCqvqHRO4Z23Cc5dsdEVT9CR2HoTgSpfFs+8ncngCI4CoeH1w01 ol4lPgNqPyxUKys5wksW66uvvprFGu9MEsBRqQWsvX75y1/iT6IpQa8rrriCSBR8xfEUDaI/Mh/2 RwQt0oyYU2E9q/dUB06jPeWeCAw2EoL+iuqU5mntGBvvuuuuCkuXXHLJNddco2lgTAEMhSh+PfbY Yx988EFtEiyjOtTiJwPfppPEX3uXJgbIB2uoWaj90ksvzc6uBNHnGEgjA/DPTCTD0JYdgCIlom9M mYi1xFducKcBFCEFLGmGcROFEDdKrYXxkgIaC7QcXhklrp48b7lY7tk8HXzwwdzwE7ZjOORQCLy1 OiMhqWbIUH53iSbdTtwhw9ftkjdzxrWN76neEhzdaeS5Ow47a8fBJ03sfyyhHvYZd8P4od8XfBWB p25//pMM92bueU9xPRT4T1JAGLuWRufJ3zrXnBN+9cloa32oEi9YB1kJEoTE8DHBg78TOPyk4APX hq8+NXjNae6vfxi5/qzIb34UePCG2LQ/ufPeSdatNzaJJvSK8aMOhUtCQ8a4B3wrfOa1wcvuCZ16 ZWyXA+Il5U5zY0pUtjki3FgSYFllOO1P53PM+ovU8aqrrrLsFxpZG8Ahm95qV6woAp5Z11XsWjOk xJ1krDOqUNNfzauKSU2QzVLzUH9VUTAJcIyxXrkaL1DzYgmlEQE375W9yfv+978/bNgwYlzoBZfJ V5qnuwEuJMNqEsU9IgQ9kIBe/OQnPznrrLMIM4lnqm0k2tOMBkMWJL2wuV//+tcV+5VQRCq2+KoP KR+fJWydtJFIoRVfuf7yl7/oDXivNmKfzW71CwOxsUS9mz43psjpPW7Qd7YbcuqeW/90z20ux8oJ VxU11FXCdW+Wb96J2FNaDwX+aygg7jvBZM0nsQeui199WuDPtwUXfRhFR1tcEo5ECU/txglbLOdJ heIxsY2Sk3ZEHy1mibLpNZqI8l7OVhMCk490Tro0cemd8R/dHjj6nNTEPVIlvRKNDU5Lc0QUrliW iXE9EGL2y21/bbQUVaxaD3SsEso7Arq8wgap/SorBoyXGkDlvIhBoWpOgAHmTO2KyfXEE0/4F5xO rtrZYlXQnbDJml0DICg4+dc0m4vnwJgN6Ii7Durkhx566JFHHvn973/fu3dvzUVABn/shc01G20z 7DKramygkYt7Lky30Lna/QFP1OiXZLjTAPz8BOgSzumOO+6gzWqvpC3U7vsvfsIfF5TlImaFEodP 3JphgjNEynjZMpRqM4XMGXUvZKEiWFirbkdW3Bn35c1CMQ9i83gyfp54QQmtINa50m1jo1Qs4ebF AsIcq252tWoSLEaGHRvjbRby9RTSQ4H/BQpIUG4JZIzQ2K1dk3z+0cTN5yauOs354zWh5x8Lzn2n aO2KYO9BbmlVoLJPsKJPqqp/onqr5Ojtg5P2Dx5ybOj4i4ovuCV66d3JC26NH3NeYo8vu4NGiD1E c1M83hyUQ2TF9EGCc5nIjcZO1Ry6kP3nB55PT3lW+QsvvFDBoPC+3MYrVnZTq8aV8/XXX9eMFk46 0ypbne0OQlFbLAEZ/KXZ8i2byxOABEjWuhAvYw10zDHHED6JYwNAXxLopQGVbMmdaVvhNP6G2WVW Q/tqRRaAeQjRLFVx1NFeY4sEo8mN3wZKo2doIRxXkL2Aazl8cmyARrXkwjYY2YM2WClJmapq5YYZ yyaDmJQQAfrAVVuenucEHvn01OhMCV8YLtZ0Rs1/5FOD3CGn8nXSRMSH1sauuzOd70nTQ4EeCnSO AvJCYUynpvHcY1+yapn75t/jf7k1dfN5sft+Fjn1ishPf5+45B730nsCl94TuuiO0Lk3Bk77pXPE D50vHZbcZodEed8EQSqAs+Ymzt/BDUC2yxL9X0z3JXCUMfFDUSuP8rVK11azppJdnTo614OsVLoo c34Ltk66RhdGWQ3z5AdUpMTW06ZwXn/lpFTzHC2NC+PkH/3oR7YBaDH1uaaxzy3M8AQg8deYca9d 48LwB6a2MzEdO0lEf6tsFthofe73u/VHSiIlemhtJOB3wQUXyGqePukIWyeVKvMQDygE+NnE1O7o c2QP+pV7ZNQYQFkqoYpGy66E9UO4PtEsmthaXNuHnaRAV5N5UJTHRPZzBFTmgHEZF0VZ79ATE1VR /f2VcOar9+51lRY96Xso0EOBLAroItAm0EqvVAmO4YBVUN+qRMwtKolV9gpX9kqV90qUViTCEZEd tzYlcPVpaXBbMXLHt9gc6WOiMvHqSqQK9cQVPBFPHF1DsWUWF9icf/Jr+6sTtre5R9WuuVj0oL+0 q3a+OYAVErF8/Ssyx7FlJ+4QaykBLgqvIQysUAYjwyRSrrKe/ISHCcJnixkWEvwVYQwFE6aQAyBR DqhDgAUujJ7oDgVqenSi6r+7GS+L9LZMwhnSHfpCS6idT65rr72WT42AwYWFlxUdw3CjUsW4DJ6b I+SIP4z0WKcBIZFRr2qWDErqV3pNXo31AUgjYEcOYRMTNFF3J+ArylcaoGTRCyphmaWJEQNg6ZZd y2YklBb1OQLRjvrGq2Vba27aBMLqUSePdJ/0hepXR/3u+b2HAv9JCuRw3vNQDZ2r7GZjwoM6cfGm xUHdddwE58iqR0qadQgmkRqyIhqLJ3PougkDZQROGj3bY+nkmyBNdodFnWv+jADLJEijnZzU2z0K KdeFBpFl2i/VzFkaUmV/FCdMUpES22b4OSSb3Y/H/nsCD2HpA+fKhQxTDYkVMjHT1UjCOQFGS9Zw 9mp+haEsQRhov14XX3wxX4kAbNuggtMtdGkjqYIaMX6mOzRA+8UNTwjWoVXjXYP1r4VnjJYxG0YL e8opp2hUCn5io+M/aMjvN2zbrwjKiXg8UQE4ltUafwPJOfZQulUitAgyZEsZLNS44J51BEmAmtYq s7coI/uFgVjZ4gmZtcFy6Ae3xtM/fan0SBJ9nlTIW2hq9xTbQ4HPlAKZC4WCoLFHCoOcyZATLQpG ihI4lxYV44+RikYCRVH7x6+BaHEgUkzAAbkpKgnwhKNR8WGRJ6TnRtPoPSn504fyx0P948x2zRKM RDkTSGRanYw+UYBgaPg4fLTDpRa7Yl2g+cQDFWy2WGgRMScw+KtWbtXyZDYjZj6IPWHj9FetJSMe BU8AEhVy8hMMn8UMbZiWhqiZ8BpaKbLijMPkN8vE0YZpI7M/21blNOtJGvhaDJQsL5uxKUHqDkBa 82w/EbIbTGIboxiE1i0Fzsr2CAGOVbAqbZmoaXqq6bVSCR5aS+5Q8PBpKBa64oqfxpOtC9b+KekS OR0YixgRTqtE/nMwFUwM671337LtP1n/LKfcGLJ2V/XxKZpJwDZOZ9u6n3d0lGhwjAmxeL3bK70X /o+08FN0ridrDwW6QAENS/SZXzmVo2KdJIdIE1CwKDRynLOpNrx+dap2TVD+1gbXmxvzGfAe6k88 XO3dZDyvzfc8nXHj6hBVrF/r1K526jcEP5rhLP+44+hOrNd6HgugiKiQKEjIeP0LKwlQynJqG7rV DRs2cJyLP8q8BQN4I/Sm8LswmgCGmvBkjAV8G36fyHtBCwqxMStwVkFTSAks/Vj0+C/kz8hLcV+x Al5bJuiIrpGKyAg8cKQPPp2ELuIJ7UQ9rOfTZVy0kOqGDh2q57ETlcIG6e3MzCFIMuZXVEEXkMpC jbZV1vCIfCUQBHiG6jS7O9o1olSuWLEC+TCuNTY72E8voDzN4xMz4zVr1uBoBE+PFy9RJElpSYoW GYpRCM9feeUVf5RKkkFhpTMVURo2UPjCQny8dKAM3HBOz1eqg4C4OTGCuBKxQbGhoTtDmW6kIWpu qim++ukPjk4kZUfmL4I3R0NPjK8+4cW5Zy/b8EokDEf/H2B8CT0xpGqPKeN+040e9mTpocB/EwU6 5LQ+o84aka1v5fVEtVuUITDVCdvqsU142co51h1DrC7cfvZRec0MVtJPW39i7aZKIG0uCwbZXfbX 5efGchLHsp45B06bZNupJjx8tbZCBXJpRtKTK8P4qPAkyQSC9upupQMl+J13cxLB3/KMBMSdwD8V q2P2NP5T4v0jYpvBQ781tR0O/7hQlB7tkDFGGT31Zk462peO5hadtBKZ1gwDE06tc42U1Rx7Kc8D Rd7ZqEEOj8t7SOpn9Fb3VNNDgR4KfD4oIEdUeIBnFgyDc1t0qUr3WxYoc8SDWjiD8+njLfJTxr+w aio/RCkO2dy65vqh0V+w7WM2NGbX0hma+Au0FfmL8lNVIkebKx+kaQl+5OC+ML7m3LRp+TnhRx/6 rZRzjrs/r7+PitC4qHLkDhIF8DWjwfrVIqXm1fHyV2T7qMiKphyuVBuWMaAZw2fT+EN8bLm3SiyD tDNyzJr3zoiDqWklm0RiieKyxoX9AmfA9KDslhuLnpJ7KPCFoYAxDW5nfpjmJtWef4v/ySGDYp5h Ksrr49NGz5xo4YfVDESxGOPnpbJxJRtx7ZNsPNDqckKaBWM/25oBXRZ4cs6SnDiXr66cm4ZsauSb jjnrKtC1bJArTApLjc6/D9m06mTefH3pZPYOk6m7m9jQp+crZoKKo4Sj0EDbBmGFUzdHi/dcPRTo oUAPBXJT4DOzNOxaRd1buDrEpwze9zOYFJ3B0c++VZ3veFeBsMMh6HzV2Sm3aOG2OoHYsFPmyEEl bAY5xC2i5695Z7yknIrioQK3xMpItWzGKCGfhjQ9eXso0EOB/ywFzAn1FuesV/pnZ6hhNv7pBnxq E8zs1dYKiv2okJEsAzCsdLfw0BRmAfXXnEV1hv0VbqiLjFDOvts2dGmadbXqAoX7ufkutUET56NV 9v5jSwOtvBLRcEXfyu2TLkcemxiERnRshipZHBnQt2IH2FwT0Cz6KUNvd4NSPVl6KNBDgc8hBSQm kx/k5NxWHnSNuexGv4wLrMrelA1Q19pulNSWJVuraoGqS1yXlS13qTV+QbTNmLMoP/pmV9FteMuX sXCBHSKT6lwLA14BQqlUvENKZldRGJuzdzDdpluHbdME/w9RtvSvEY0Y0gAAAABJRU5ErkJggg== --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image004.png" Content-Description: image004.png Content-Disposition: inline; filename="image004.png"; size=54611; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 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 RK5CYII= --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image005.png" Content-Description: image005.png Content-Disposition: inline; filename="image005.png"; size=18141; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 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 ehOJAAAAAElFTkSuQmCC --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image006.png" Content-Description: image006.png Content-Disposition: inline; filename="image006.png"; size=14891; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 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 qYkAAAAASUVORK5CYII= --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image007.png" Content-Description: image007.png Content-Disposition: inline; filename="image007.png"; size=18534; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 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 AElFTkSuQmCC --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/png; name="image008.png" Content-Description: image008.png Content-Disposition: inline; filename="image008.png"; size=119354; creation-date="Fri, 22 Jul 2011 17:30:54 GMT"; modification-date="Fri, 22 Jul 2011 17:30:54 GMT" Content-ID: Content-Transfer-Encoding: base64 iVBORw0KGgoAAAANSUhEUgAAAfQAAAFZCAIAAADhNkrtAAAAAXNSR0IArs4c6QAA/8pJREFUeF7s /XmQZcl13gnmEpmRkZFL5Vp7AajCDmIHsRAgmyS4qGUtgAQ4GkktktK0pmUUF6NN24ii1H/AZKOl ZTPW0xKp+UPdWs1EUiIoiRJbogiAkEiAIAEQIAt7FapQe2ZV7ltERuQy33d+7t/zeJEFAiBQ8aoQ t6Je3uvXl+Nn8+PHj/vdev369S2b1yYGNjGwiYEviwEpiq1bt46/N85+7foWZdsyyfy0taJ4tv6x 8I76EmB/rFqeo4W3PUf7tdmtTQxsYuBrx8B6mw8FOv6SZ/wtZT2dDSC+EiOSPNeuXfvKi4xqfWzi K2nua8fOs6TkpnJ/lhBqE8xNDHwjMRBteEOV/WV05bS6l27falU+VQSrv2lt6Xps9rUGN3m2bbNS YoqwXsvfsOYx/2jLf5Or+AnGv5Gcs1n3JgY2MTDrGBj16ZR6XQ/6lPKdsqCn/CRTNV+9fm3b1m3S 3EmfypDmni49Sv/LtPvly846Mb4e8G1a7l8PLG7WsYmBZz8GpCj/2T/7Z+985zvf8IY36Pef//N/ PprJU6Y9WjVm8mgj1yu5Vpp3RTd2wg/XNnw3165vLdMdLUwNf+Wv/JV1VbnklA2+3jxfr8rHucKz nzhfSw82lfvXgrXNMpsYeO5h4B/8g3/w2c9+9h/+w3/4sY99TL/ve9/7pN/Xq8jRW5K3U9lu6A9J YqtBGn5dNMfv/d7v3XB1dCpxymOzfs4Bdb7JF1o33TLPPSHd7NEmBr5qDDz22GOymv/Fv/gXe/fu RScqRer+7/7dv3vu3Ll/+k//6ec//3np0He9613f8z3fIxWsRGX43d/9XT2+7GUv0zCghdC/+Bf/ 4kte8hIV/5Vf+RWNDarq3e9+9xvf+MbKf0Ep+/fv/Wt/7a8ps1KuXr36lre85Ud/9EdHWL/1W7/1 ox/96OiWOX/+/L/5N//mIx/5yF133fUjP/Ijt99+u8oqg8YhtX7nnXcK7P3797///e//5V/+Zfnr f+AHfuB7v/d7v+r+PxcLbFruz0WqbvZpEwNfJQaked/0pjft27cv1q7UqDS7qpE6vnjxorSwlObf /tt/WzpdilV6X7pbuv5v/a2/JWfO29/+dqn4n/mZn8G3I3WsV8qvFClr5VdBDQPS3dLsv/Ebv6Ha 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 --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_ Content-Type: image/jpeg; name="image009.jpg" Content-Description: image009.jpg Content-Disposition: inline; filename="image009.jpg"; size=13782; creation-date="Fri, 22 Jul 2011 17:30:55 GMT"; modification-date="Fri, 22 Jul 2011 17:30:55 GMT" Content-ID: Content-Transfer-Encoding: base64 /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIf IiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9Pjv/2wBDAQoLCw4NDhwQEBw7KCIoOzs7Ozs7 Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozv/wAARCAD8AfQDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD2aiii gAooooAKKKKACiiigAooooAKKKKACiiigAoopKAFoqNpok+/Ii/VgKhfUrJOtzH+BzQBaorPfW7F ejs/+6pqvJ4jtU/5Zv8A8CIWgDYormpvGNuhwDAv+9Ln+VVW8ZM5xEVb/rnC7UAdfRXHRa/fXjso NzFgZy8Hlg/Q4pXnupBh7iVv+BmnYDryQCASBnpS1xYVgwbJyO/etix1iRMR3OXXs46j6+tFgNyi mpIkiB0YMp6EU6kAUUUUAFFFFABRRRQAUUUUAFFFc0um6Zd6hr11qMaDyrpV89mKtGv2eE8N/Dgk mgDpaK46w1rVW0sXs16ivbNbxNavEN029YySx6hjvOMcZHepTrV/Hp8OpPqcH+kuALUxAGP96oIB 68KSGz39KAOsornLnUr+58RtpdpeJDGGwzrGHZf3e7HPGc461nN4g1m0061upJ0uXvbMyhFhVREw lhTIyRkYlJO4446gUAdpRXJW+p63NfRadJK1uXn2ebMkLShfKZsFUZlByowTjg9DjmrFq2pJdXU8 1/ukSP7OirADuYXUkIYLnG4hfpk88CgDt6K4RtT1O6uVhmuXX7JczIySpGWcfZy+1whK8cjj19RV +31e++zLdi6iRIbmC2+xCIfMG2Dr13HcSMcYA4PWgDrKK5vR7/U5pNLnurtJY7+Jy0QiChCACCD1 +uc/hXSUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUhZVGWIH 1NLXluveJm0nx/e2V+x+wTFNjn/lidi8/TPX86APS3vbWP79xGP+BCoH1iwT/l4B+gJrmBGDyOQe hHQ04RE/w07Ab7+ILNfurI/0XFVJvFlrFncqL/vygVmm1MqMjR7lYYII4IplvoltbjENnbxD/ZjA osBYfxtCxxG0JP8Ashn/AJVEfFV7KP3UM7f7tvj/ANCqwtkR/Eq/SniyX+J8/hTAz21nV5jxDOB/ tSKv8qhaTVpiNzIg/wBqVm/pW0LSIf3jTxbwj/lmPxoA5qW01M5Iu0IyMKkQz+ZNOTTLtmxJcSMp PJ3AH8gtdKEQdEUfhS5I6cfSgZhroit1Fw/+9KalTQYAc/ZI8+r8/wA618n1ooAoR6UifdSJP91R UwsgOsn5CrPNIeOtAEItYh1LGl8mFRnZ07k08sPUVDdxtc2skMcrRM4xvVckf56UAMe9sYiu6e3X fnb845x1qOPU7Wa8ks4Zd08WPMRUPyZGRk4wM1StfDVpayzypJOWuZBJMMgBmByvXJAHpnnHOa0Y raK3lmkRCrzsDIxOdxAwPpxQI2tK/wCPVv8AfP8AIVeqlpX/AB7N/vn+Qq7UgFFFFABRRRQAU1nV F3MwUDuTinVV1Di1P1FCApveyiR9kuV3HHQ8ZpV1GYdSp+oqi8ixjLZ59Bmm+ehO0bs/7prblQGo NTb+KNT9Diqktvo1zdm7udHtJLkkEzNAjOcDA+YjPQCqv2hPR/8Avg05JUkJC5/EEUcqA0WOlzXi XktpEbmMYSZoQzr9G6ilFvoxmml+yWokuBtmcwAGQejHHP41QzRupciA1LWy0u22/Y7a0i2fd8mN V2/TFTCytAioLWHakZjUeWMKhxlR7HAyPYVjbs05XK9Dj6UuQDUttNsLNES1sbaBY2LIsUSqFJGC RgcHHFNl0nTZ8+bp1rJkMDvhU5DHcw6dzyfU80zT5HeRgzswx3Oav1DVgKS6NpSxLCumWaxqwcII FwGHAOMdQKf/AGbYfakuvsNv9ojXakvlLvUegOMgVaopARJa28YiCQRqIRiMKgGwe3pUtFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFeD/EzJ8c3uWzwmB6fKK9 4rwr4mJ/xWl0/rsH/jooA7TwgpXwrp4JJPlnqc/xGtsZrG8KZ/4Riw4/5ZnnP+0a2QG9qooeBTqa AfX9KcFP940CHCnfWmhBnv8AnWcNf0gSSJ9sgVo3aNg7hSGBweDQBqBh6ilGPQn8Kzf+Ej0kf8v1 t/3+FNbxRpC/8v1t/wB/f/rUXA1f+AmkIY9gPqay4/FGlSkhLyAkdg5P9KVvEmmj/l5i/Nv8KANP a3qPyo2H+8ayG8U6aP8Al4Q/QN/hUbeL9MX/AJbZ+iN/hSuI3No9z+NNKL/dFYJ8Z6aOjsf+2bVC /jnTl6CQ/wDbM/40XA6PGO1Ia56z8bafeX0VqUkXzWChiuACemea6NlxTGMprj5D9Kd3pH+6fpTE aemf8ezf75/kKu1T0z/j2b/fP8hVyoAKKKKACiiigAqpqR/0X/gQq3VPU/8Aj1H+8Ka3AxZskDGa j+XGDv8AfmnT9FyM8+lQnbjIX9K3AmVhjG5lx2607dn/AJaH8RUH7v0bnr8ooQKG+WQgnqSMUAT7 uP8AWD8qUMT0ZTTPm/56A0YfsVoESfN6LTgW/u/kai/ej+6acjvnDx49xzQBp6Z99vpWlWdpf3pP oK0axluMKKKKkAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gArxT4kReZ4jv26mNoz+G0V7XXkXjGJJ/FeqQEcuFGf+AD/61NAdB4PH/FJ6b/1y/qa28VjeEBjw np2eoix/48a2qYwApwpBTxTAUCvEvEfmWfi/V4Nh4uS4Gezc5/WvbwK8n+JdsbTxjDdKOLq3VunG 5Tj+gpMDlbq+mh2lWRQQfvAnJ9K6Lw9Z2+r6Kl3K7+cl0YpgrAALs3LgY6k5Gfaua1BHuo84G8vn jgc/yq1omsal4ftruCKJDHcsm4uucEE4IP41Ek2rIqDSknLY73R7Lwo8IknllinikaKQtIQAR0PT oRWHcTtFfTQLIrqkhVWAHIzwagF9K0LTeYIx5m7KR9WKntu6c4xWdBez3UjTXG3zA+1towOgx+lc 1VVFHf7jHGKDjendG0XY/wAVO2llJqqs2457VqW+ka9MqGLTUAYZBe4UZriSqy2Z5kIVZ7CS6HLF Ak7zqY2K5IDEAN3zVS5tFtpQjvkkZGEGPT1rXTw7qQAW/dLcufkEbbwcdfTHWnT+HY47eaQXDyTI pKj5QGx7CtpQnY6HSqNXOWmBhkV1OMHI9jXrmk3w1PSba9HWWMFh6N0P615RcL5kJI+tdb8ONS8y 2utNdvmjbzYwfQ8N+uPzrpw0+aNmb4afNCz6HZsKY4+U/SpSKjcfIfpXWbmnpv8Ax7H/AHj/ACFX Kqad/wAe3/AjVuoAKKKKACiiigAqlqn/AB6j/e/oau1S1X/j1X/f/oaa3AxJjgDAzURkkx3/ADp8 x6fjUWRjGSPriugQ7zH9+aVXLEgkjHc96ZkZ7/hinqR0zge6igA5PR0J9wKcA3OAh+go2r6p+VPU YHb8KAEUHoVx7g08Lj+JvzpG+6aBwwx/OgDV0r/lr9B/WtGs7Sukn4f1rRrCW4woooqQCiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvJvExDeONR4wUCfj8q/ 416zXkniT/ketUPsn/oK00B1ehxiPRbVFGAFP8zV+qWj/wDIItv9z+tXaoY4U4UwYAp6mgCQVwPx ZtA2madfgcwztGT7MM/zWu+HNYHjux+3+DdQTGWhUTL9VOT+maQjxkkPGynuKNPsWn3B0dY3HL7e nvUKMcCpLRzHdKc8Z7mpQzpINLULEhv5cZwhVY1569cZpTpMMDOYzIzSN8zO+4kirdvcvZwGTYCs 0Rj+fGMeo9D70kN2sziB51jVOg++SR2+XPNc0vayT2t8jeqqDptLexTERQ4PWtfS1166aNLOeNYw 2ImZwpUgAkepJAH5VDLCCM4qxp+r32lBktDEFdgW3oCQfb04rlozSlqeLh6qjLVmhceHfFEkU89x qu9duRGZWIB6cZAxWY/hHVLiRIZ7mKNox5kiu4BUZ4YYB9+9S3Gq6tdOHbU541HWOMgK319axL5X uuLmWSVVOQGY10OvTvZHT9Zpp7l7UrP+z72W1LiQKAVcdGUjINUfDupjRvFFvMTiJn8uT/dbg/4/ hUEYKoEQYVRwB0AqjqKFSsg+hrOi0qjt1M6Ekqjtsz3c9aY5+Q/Ssjwvqw1Xw5aXLPmQJ5cv+8vB /ofxrTeRdp5HSvSO019O/wCPX/gRq3VTTSDaAj1NW6hgFFFRS3MMP35APbqaAJajlmjgjMkrhFHc ms641dsFbeLn+8/+FZUwmuX3zzbj/L6Vag2B0Vpdx3kRkiDbQxX5hjNQ6t/x7L/v/wBDWXa3ElnE Y4n4Y5yQKSa5mnAEkhIBzVKDuK5XmJGMVFlumMk0lzcqMAAmmxSLIOmMdsVoBLtfoUNOAIGQXX/g JpowOrfpTsg4+f8AQ0AOyO7n8R/9anqOMZyPao8MD97P0JpWVpI9rMVwevrQBGwnLlVbGPVf0qWJ nYtvQrtOBkg5qEW7K+FnbPpk1LGsqycvuT60AbOk/ck+orRrP0riKQ+9WJL62i+9MufRef5VhLcZ YorJm1sAEQxf8Cc/0FZ0+ozT8S3Jx/dTgfpQosDp6KwtKuZftKRB2KN1DHPat2k1YAooopAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXk3iNc+ONVz2RD/AOOrXrNeP+LG 2+OtQHrs/wDQFoQHY6Mc6Pa/7n9TV3NUdFOdHtf9z+tPk/tBpWCCNEz8hBByPU5/kKsC6KcKoR2t 60itJeOoA5VMHJ9eR09sVLDp5UhpZ5JnU5DMcYz1GPQ0AWvPiUcyoMf7QqNntdVtLi1jlSVZIzG+ 05xuBFJ/Z1qyMjW8ZVuCNvHXP86nt7WG2XbDEsY9FGKQHzs6tbzPC4w8bFG+oOKliuZIv9WQPfaC fzrR8bWH9m+MNShAwjS+an0b5v61jROob51LD0BxUgdJb3EM1jGBbyyXAJGVKIuD6tjcSafJZXky +Y5htomIxmVnOenb1rHt7yJEceUVBK7QrdOeetWzqd0sLqk8MQjOEAQ7n9welDtbVBex1UMReCJd wJIC7jwCemeaiEaOy5dUUnBc9B2/nXP2fiQ2mnm2ltxcMWOCWwMeh4qCbxNfMNsCw2yqMARr0/Ov KWGq8700PN+rS53bY6uIQ/Z2BjkMxPDA/KB71Uv7ixt/KYvFEyD5syA7z9K5PztT1J9ivc3J/uoC f0FaNr4N1m4G57dLZfWdwv6da6I4VrVs1jhe7JW8TRWtxcPaAN9oUqyqmFAPpnpWPNdvcDBUAfnX T2/gvT48fbdVMj/3LVM/qf8ACuj0zwppqlTb6K0mP+Wt1lv0PFdMaUU79TqjTitTP+Gd05ku9Pbd sYCZD2BHBH5Y/Ku+a3G089qWx05bVQcAEDAVVCqPoBVtl+Q/Stiy/pi7LJVHqat1Xsv+PcfU1YqQ MDUp5Vv5UEjbRjjPHQVU8096n1T/AJCMv4fyFU62jsBL5ik9cfUU8fN91lP41W5BPNNJxzVXFYt7 H/u0hDeh/Ks2DVo3ZlSR1KnByOPUVfhvd4B+Vwf4lPWhSCxVeGST5lAwM5zToY9mQWDZ9FNSzThp Y2UkAdascHrzTAiwnpmnblHYCnFEbqKQRRg5xQAbgR7e1AxnpS7B0DUuz3oAz7+4Fs4cuVBXHA60 mlXv2ppUBPyAHOKj1u0aS2aY7dsYyc9areGyiyzgH+Ed/rQBuMjsMCT8+lQm2mPSVf5VMZfnKgA/ Rh/KjzgPvKw/4DSAqmym9Qf+BUn2OcdUH4GrysGGVORTZplgiMjngUWAk0z9xdI0o2BQeevatwXl sf8Alsv4nFcvb6tb3CbkZwuSMsuBkdR+FOfU7ZIHnEqvGili6nIwBntUOKYzrAQwBUgg9CKWsCHU bjyE2ONu0EfKOlP/ALTuv+emP+Aish2NyisMaldHpL+g/wAKP7Quv+ep/wC+R/hQFjcorE+33X/P U/kP8KdHfXJdcyZGemBQFjZooooEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABXjXjFseO77 6p/6Atey14/4mh+0/Ee5gx/rHjBPoNgz+lAHbaJCU0a0DjB8scVf21HaEfZY8dMcVLmrAAtOAFN3 UhcCgCQUtV2m29iahku5APlSkB5x8WrAR6taXw/5bw7D9VP+BFefgd69a8Z2cmtWlvG8bHyJw+B1 KnhgPfH8qZp3hrT4gGsvDskrdnuRnH/fRx+lIDzG1tbq8l22ltLKx42xKWrbs/BOuXWGkgS1U953 AP5DJr1ODRdTdApltrKP+5Eu4j+Qq1H4Zsjg3Ms90e++Tav5LiiwHmkXgvTrYj+0tY3P/wA84Fxn 8Tz+la1n4csoyP7O8M3N4x/5a3Iwv5tgfpXotvp9naDFtawxe6oAfzqwQfrQByFt4f1yVFSSW002 HuluN7D9AK0YfCenqd1zJPdt381+PyFbuKMUAV7ewtLUYt7aKIf7KgVNin4PpTDJGpwZFz6Z5/Kg BCMcmmMQyEgg/Sj9ySSEZz/un+uKdtdxtSHAPqcfyFAF+y/1H4mrFQWsbRxkN3OanpAc7qv/ACEZ fw/kKzzPFuYb8bDhuDgH61oap/yEZPw/kKoSQxv95AfwrVbAIGVxlWDD1BzSGopLaJVYhnQvxvDE mk2yBcxy7znPzDr6imA54Y3OWQZ7HvToYkiVY41CqowAKhW4YTiGSFlJ6MOVNWY/v00BDK4WUL9D WkOlZ06fvN2ccDHtV2Mvx86sv5GqESUEgd6WqMxIlOTxmgAvNPW9kWT7TLEy4I2HHTPH0OeaUWt0 DHi8ZFVyzhRnK9lGc4xVhXV+hBpGhR+csPoxpAFzAl1AYnLBW6461Xt9NtLUlk3kkYJZqla2bGVk LH3OKiaGRfvRHjupzRcCcR265O1ee5OaeJYlHBUCqW8Djgexp6MAw4H5UXGWpJljAPXPTFV3u3PQ ACnXXKpVegRbSOGYeZ5ShiNpIGDj8KoahAn2Sa3UbIzEUAXsMYrQthiEVTv/ALkv+6aAJ2NykMH2 dVKquZN3UgAcD3pF1GMAeejwnjIYe2asR8Iv0FDeXKCjbXHdTWBQivDPwrI+OoHJFBgQ9CV+lRPY WzsW8vaxBGV4xwR06d6nRQiKg6KABQMYsLK4O4MB+dMuppEkthFIUZplDY7jPSrAPNVihl1eFD91 QrfjuNAjr6KKKQgooooAKKKKACiiigAooooAKKKKACiiigAooooAK8t1KMf8LE1S6b7sKLj6lQP6 GvUa4/xhpR2SX8CDeQBKQOSo7/gKaAt6WzPpluzDBZc8/WrXBbG4ZHUelUPD07XXh+ynf70ke4/m atQWvlXTz4JL9dzZxQ27qyAb9tszcrbfaojMxKhA2TkdR9alMsQlWLksxxwOlU7fRIYb37UJGZhI 0gUAAZOf8atm1hV/Mllcn/bkxVzW3KyVd7k4jWnCNfQUzz4uzFv91SacJWP3YHP1wKkoeFA7UuM0 0LdN0jRfrlv8KeLW5b70pHsoApXAULTWkjTh5EU+hYCpBpob/WOz+zMT/On/AGS2t13MVRR1JOBR cCt9oj7bm/3VNHmu33IH/wCBED+WaV9W0WDO6/tsjqFcMfyFUp/GWi24+V5ZMekRX9WxSAuiO6fo qL+BNPFlO33pm/DA/lXOXXxJ06IfuYNx/wCmkoH/AKDurJuPim/PlQwr6YRn/UkfyoA7sabGfv5c /wC0c/zqZLOJOi15Pc/EnVpSfLllUeiqij+RP61kXfjXVbnIkuiPZpmP6Zx+lAHt8klpb/62WKP/ AHmAqs+vaNEedQt+P7rg/wAq8Dl164bJF2Fz18tMfqBVKXUWlOXmuJD7tigD6TtL21v4jLaXEc6A 4LRsDg+lWK8q+DV5JLdatCd2wJE4y2ecsK9VoA57VP8AkISfh/KqZq7qY/4mEn4fyFVMVstgImIH UgZ9aZtC9ABTphwKjQfOcDigBafH9+m4p8Y+amgGTDJAqz5B7EGoJB8wq8BxVsRFGJAcMOMVTuOX etCs+4YeawpARAkHg4qZLh14JDfWq7ZXmkDg59agZfS6U/eBH61Ksit0YGswE7uORTy4XGeM07gX Jrm3jYJO6DP97p7Uogt3GUA/4AaoO0crDzUWTHTcOn41ZhtoZHSVWf5Cx27upPUn1ouATNnAySB0 zUVSPyBTCKYixDMixhTxiqd/KhSXDDO2nkVk3pInbn0pNjN6WYwRFgm7CZH5VzyLqF3BHqFpqU8Y nQSeQ8ayqpIzgdGxXTMG8vCrkkYxWH4ek/4ksCNGPkAX8gBWIx1lqeoo2y6ginUdWgJRx/wB8Z/A mtmGaO4hSaJtyOMg1UkVpI2VFOSOO9O0pXXTYVcc7c/mc/1oAuCkiX/iZxN67R+tLSwc6hD/ALy/ zpDOmooooJCiiigAooooAKKKKACiiigAooooAKKKKACiiigAqKeFZoyrAEHsapaxr+m6HHG1/cbG lJEcags7464A/n0rmbz4lwQZ8vTpMdvNcKfyGf50AbsOnPZQpbW0arFGCEzngZzUy2dy3WTb/uqP 65rg5vipeEny7aBR2GD/AI1nz/EbW5jlZliHoq09QPUBpmf9Y7N9WNNddNsuZriCH/edVrxm58U3 8xJuL9yT13SVmPrQ5/0hj/u5pAe3TeItAtB814rf7ilv1ArPm+IOiwkhI5W9D8o/rmvF31YE8K7f XAqF9TkP3YwP95iaAPWrr4oRrkW1oo9CxLfpxWXcfEzUpVIi2R+6IB/PNeZm+uCeGA+iio2uJW+/ M3/fVAHdXXjnWZ8l7uUf9tCo/TArIufEdxO5aW5jZvUgMfz5rmNwY9S34Zpfm7Ifx4oA2pddkYYN zM3sMgVUfUt38LMf9pqo7XP90frS+W3d/wAhQBOb6U9EQfhmmNdTHrJt+mBUflL3JP404RoOij8q AGGUvwzlvxJpOeyMfwxUtFAEWxz2A+po6GpajPWgD0z4Kf8AIR1b/rjF/Nq9bryX4KD/AE/V/wDr lF/Nq9boAx7+1ke5aQLkH0qi0TL95SPqCP510pUHqKYYUPaqUmBzJX2NRlACSABnvXRSafC+fkAJ 7jiqsulD+FiPrzVcwGKRSxj56tzafMnRd305qtCjtcBApzzxVJoBrj5xV3GBVi30zzULSbkbPHFS SadKB8pU/mP8afOhGe7YrGuZj9pI/wBqt2aynX/lmT9Oa5y5hnjvgJIXUFxyVIougLhqtIrITxxV srzjvTSvqKQyOJSoOepol4XOT70jqY0ymfpQriRdrDBNIBnAxg5q5YPibb2YVVKFMEHNWLT/AI+V IpoCbGVH400g1p6dYrdxOSSNpwMfjTpdHlX7jBv0oclcRkGsm9H75vqK6CWynjzujbj2z/KsK6Rm u9qjJ3Ck2M6NeCD6Vz0Rkspn04SJEVZnjLAkSKT169RnB/D1rfaRY2Ktke+OKqanZR6ha7VK+Yp3 RyKMlG9fcdiO4rMZDFHc5y5Uj1RTTo7r7PIts+VOMIH/AIvofX2rHaS0ihZb6GOK4X5WHmhCD6jJ GR3B/PmmWmqxhHtVihuIGAAQEufqSoOTQB1KHcoOCM9qfbf8hGH/AHh/OqOnyuYtsrOR/AHB3Aeh J6/XGavWv/ISh/3hSA6WiiigQUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAeUfFjWbnTNctEt mCtLakM2BkDd2PbpXmkuoTyvuY5J7kk13nxnCnxDZHd8wt8Ee24152BQBJ9pnI/1hH04pjSFvvOW Puc05UU9RmngAdAB+FAEP0BP0FKFc9F/M1LRQBH5bdyopfK9XP4U+igBvlJ3BP1NKFUdFA/ClooA KKKKACiiigAooooAKKKKACoz1qSoz1oA9O+Cg/03WD/0zh/m9etV5N8FP+PvWP8ArnD/ADevWaAC iiigArB8U+L9L8J2QmvpN80n+pt0PzyH+g96b4x8W2fhHRmvJ8STvlbeDODI3+A7n/61eITQ3+s6 3DrXiQTXMF1+8cWxDuF7LtzlV9vT3qZS5YtjSuz1XRPiN/bNs1y+gzwwA4DiZTv+gO3Nbthr2jah cCNZfJuOix3CGNj9CeG/AmuDsdY06+kEdrdW8NvApzG37sog9jgjj2rhvFXid9XnNpZs62EbfKOh lI/iP9BXj4XGYqtXcXC0fyOmrRhCKdz6RAA6UV5Z8JfFGpXNxJo2q3j3AMe+1Mpyy46rnqeOfbBr 1SvaOUQqD1FVr2FGtJeMfIatVFPH5sDx5xvUjI7UAcgQN2T+BFJtIGQQR71oyaRPEMK28Dv0NUpb eWP78ZHuRWt0BXbco+7zUYGXztwKlYn+L9aYWFAART7QEXSc8VEzin2r5uox70IDqNEQrauSOGc4 rRqlpP8Ax5Y9Hb+dXqzluA0op6iqt3ZQvDIzRqWCHDEcjirlRzRiWF425V1Kn6GkBzskDSOZUIII 4xx+oqNLfJO9WVh0YHH6jrWLffDu4tiX0TVZ4PSORzj8CP8ACucvj400Qkzz3hRf+WinzF/Pmi4z 0FoY2PzorH1IyaYYivMTFfbtXmi+NtfQc3it/vRKf6VtXGo+MIrRLkS2zK2AfkQFWIBC88EnPGKL jsdlGpP3wN3sKktcf2nEP9oV5Vd+K/EqsY5r2SA+gjVD/KvQPCGlXGpWWmazcX8xkjXLKefM5PU/ l+VAHc0UlLQSFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHjvxnQf2xYNgZMWM/ia85KAIrBw Sc5XuK9K+NA/4mWnn/pmf5mvNRQA5adSLS0AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABTD 1qSoz1oA9O+Cn/H1rP8AuQ/zevWa8n+Cg/0jWf8Adh/9nr1igAqC9vLfTrKa9u5RFBAheR26KB1q eub+IOlSaz4K1G0ico+wSLjvtIbB9uKAPE9e1q88a6/Lqk4ZYFPl2kBP3VB/n3JHelZJLSTdOz4I G1s7d/oRkA461kRarfadstZo9qxAqoXjg8H65ya0bfUre6ASW4lh+UKWYkhVGeAv5Aegz3oANSvV lt40fZMwYZWSPkDHAz1rOt4ADvI57VJcTfarppdgRc8Aenue5q1ZWz3VwkMaF2YhQo6k+lAHQ+BI Lk+KbGe3jLmN8n/dxgk+2DXuwORmuX8H+GU0SxBkANzIAZGHb/ZHsK6gcUALRRRQAhUHtTGhRu1S UUAUJtKt5c5iX8Bj+VZ0/h5TkxSMp9+auaj4k0bSryGzvdQhhuJjhIycn8cdPxp1jrMF9IyBHiOS FEgwWxRzWHY5+40S8jGVUOPY1UhhngvYRLGy/OOoxXdlQe1RvbRuMFQR6U7iK2l/LFIhHRs1fqOO JYhhQB9KSWdYhzy3YUPVgSEhRknAFRrcRMcBh+NZ19ewQQme9uI4IV6vI4VRUar5yrNb3IZCOCpD KfyosBs4BFRvAjggjrWcstxEeVJHqhz+lTxahnAbBJGcHg/lRYDL1XwVo2qZaazVJD/HF8jfpXLX XgLV9NbzNG1Muq8rDP06575H6V6MtzG3U4+tSfKw7GkB4Xraa7aWEdhfWb28CMzEhSQ5Jz1OfSvU fh/IJPCNoFUjYNvPfAFb8lrFICrIrA9QRkU6GGO3jEcSKiKMBVGAKB3JKKKKBBRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQB5H8aB/punH/YP868zr0741D/SNNP+yf515fnFAEq/0paalOoAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKAFphp9MNAHqHwUH73WT7Q/8As9erV5X8FOusn/rj/wCz 16pQAUyQAoQRkEYIPen1ma5rNro1iZ7hiWY7IokGXlc9FUdzQB4L46sV0vxDc2EYwu7emegU8isG 2AVQpAJ+leq6F8OrzUdZn1nxNiV5W3rAWzyf72PTpitK9+E2jzyGSF7m3J5wjgj9RQB5DFEzzbR0 I/KvXfh/4PFlEmpXkeJ3H7pG/wCWanv9TUWmfCq3tNQSee9kmjRsiPYBn2Jr0LdFaQF5GVEUZLMc AUATBQi4FeO+O/GGp6z4l/sPQrt0it5BGv2aQqZ5O+WHYcj04J9MaPjn4oW32SfStDYyySqUe6Uk BR329yfevMUisVsHklknkuiPkSIbUi56sTyfoPzoA948HXOvxaTHF4hSWS4aQhWIUsi9gxXr65rq a5L4eDV/+EbhXVoypUfuWdsyMnbdU+vfELw54eZorm+E1wv/ACxgG9s+h7D8TQB0pIUEkgAdSa8s 8cfE9086x8O3EaCJgk11kbiT2jHpxy35etc74o+KGq+I1ks9Mie1snG1405kkBOOW9/QfnTdMfw7 4Wtrm08R6FLcakV3bZNroVPTb/d9z1oA464ujI7TzzNI0h3M7NksfUnvXrPwrup9ZtpJrtCzWxWO OU/ecDJGfXGetcBbafqHiWd4NF0eO1tXfJWNSQPTLNzx+XtXsngXwqPDOlmKR/MuJjulftnsBSsO 51Q6UUySZIh8x59O9Zt/qkNtbPcXU6W1un3ndsAUxFye7C/KhG4965bxN4w07w3E32h/PvGGUtkb 5j7t/dFcT4m+J9xcs9poY8iDoblh+8b3X+6P1+lcDLLJPI0ssjPI5yzMckn3NUBoa94i1LxFeGe+ mJUH93EpwkY9h/XrUWm67qmkNu0+/nts9Qj8H6jpVHGaMUCPQNH+LV/b4j1e1S8T/npFiOT/AAP6 V1ukfEHw7rsggkdrSUn5UugACfZhx/KvESPagEjtQM+k2hYAGKQj0DfMtBllhYnY23sYzn9K8Csf Fmu6aix2mqXMaLwE37lH4Hitq0+KfiO2Yee1vdr3EkQB/NcUAe1R30m0MfmB/vDBqwl9E33sqf0r h/DXxA0vxAVt5iLK8Ix5UjfK5/2W/oea6hsjgjFIDXV0cZRg30NOrC3FTkEg+oqaO+nT+LcP9qiw GvRUcTmSMMwwT2qSkAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQB5R8ah82mn615aK9U+NQ+XTT7mv KxQA9KdTVp1ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAtRnrT6jNAHqvwUH7vWD/tRfyav U68v+Ci/6Lq7eskQ/Rq9QoASuDiub6LXrjUdT8P6ldXKu0ds0YQxwxdtgLcE9Setd5TTGrdRQBzo 8R6ht/c+GL8/77xr/WsXX/iFqOhRIbnQ0iklOI4nuQzt74XPFdpeI6Wkpt1UyhDsDdN2OM/jXz74 ifUW1OSO4ku4ryQCO780gs743FVx91eeADyBzQBv6l8YNfQlY7W1t2JxsxuYfWuS1PxRreuzmS/v JZN/HkqxCew2jiiHSYo41kuSLaMjl5eo/wB1c7mP5CvRPAPgW0muF1y4tXWPAFrFMdzH/po3uew6 UAcRp/grxDfzIF0m5WE/eZmEZP4np+VemeGfhwlqYpdUMZSM7ktIslA3q7Hlz9ePau8jt0QdBUuM UAcZ8TPEB8P+FXgtt63N9mGJkOPLGMs34D+dePaLoVndzxz6ve/YoSvyGVTtlYZGC3YV7f418M/8 JJpixJL5U8JLRSYyBkYIPsQcV45e6TqugTNazW9wmOMxE7WH4ggigCHUrOz08tN/aMErRnEK28uW B7NuHQD8z6VseDfBN34ovF1XUpJDa7/mLkl5vx/rVLwv4Cv/ABBqiyvbS29krZeSUY4/2eBk/oK9 407T4NOtI7aCMJHGoVVHYUANsNLtrGBYYIUjjUYCquAKtSnbGdpwcelPPAryb4leM9ajkl0uztbi ytcYkuGQgy57A9h+tAE3jTx/Bp0j2mmSeffAkNIGzHF/ia801HW9R1iXzdQvJbhh0DtwPoOgrPOT RTAkzmiowaeGpgOzSk8U0HNHNAg4oyKM0UABwabinHFNNACZxWvY+Ltf01dlrqtyqD+Bm3r+TZrI NNpDPQdE+Kl3FII9bgW4iP8Ay1hUK6/UdD+leheHvEWia/IBaX0bOOkLfK/5HrXgthp15ql0ttZQ PPKx4VR0+vpXsngP4eR6E66hf7J77Hy8ZWH6ep96APQVUKMCnUg4FLSAKKKKACiiigAooooAKKKK ACiiigAooooA8s+NI/dad9TXlQr1X40n9zp/1NeUg0ASL1paalOoAKKKKACiiigAoopNwHegBaKb vFIX9qAH0U1Q8hwgZj6KM1aj0m/lwRbsoPd+P50AV8j1pN4rVi8N3L/6yZF9lBY1p2vg1pAP3VxL 742igDli/FCLLKcRqzn0UZr0Wy8BycbbOJPd/mP9a3rTwI+AJJCB6IoAoA8mj0m/lPFuy+7nb/Or kHhm7lYK0iAnsgLGvZLXwTZRYLpvPqxzWvbaDaW33IlX6DFAHNfD7SY/Cej3EmoXUcAupVIMzhOg PHP48V2sFxBdRCW3mjmjPR42DA/iKxtegcT6LHbJCXN82BMCU/495uuKo3ds+mXKyahfrYWt7Kz3 ElqfJjRlQBFLHpnBJPGcAfUA6yiuDOsaxBGq/aJnUMb5ZHGGktomZSOn8SrEx/3zRf6lqirBJPeL apPam4haa8a3/eO7kIMRtvKrsGw/kewB3bAMMGuT17wZput3rzeYYrvYokMZBJXnbuU/Q4P1rQ8P G4lW6vr+7keRZGjZC5ESABScKQMc55PPNZtpcX8V9FrklmiQX0hUymXko+0QZXA242oOvBdvWgCn YfDjR7e+ikvG+1SL80cUgVV46naOvau3iiWJAqgDFcC2pIj210uq3U94NPmN0m4E28p8sHgjEeCT x2Azj1SDWi2orbXGtGHTzOm+WG9MoAMchx5xUYBKr04HIBoA9C3DdtyM4zjPNLXnxvLyKW6uob2Z 53tVW3aR9pkgFwyl/uk8RnO7B65wc1b0ue71C/htf7VL2byNta0vWmzhMlfNKLkZweM45Ge1AHU6 zeNp+iX19Giu9tbSSqrdCVUkA/lVPW7prAweTaC5aQSkRj7zFY2cAe5KgfjWjfWkd/YXFlNny7iJ onx1wwIP86w7eJtYuPLl8QWdxLaRuq/YAFkR2Xbvb52wQCeMAZP4UAQw+ILhdMv7yG70y/W1s5Z8 W6tG0TquQroWJIPr8vTpzVvSdee+1UWQvdN1BTC0jSWLE+VgqAG5Yc5OOe3So73Qbm/SX+09QtRJ Lay2kUsVvsYmRcZbLHPqFGKu29jdnVobnUb+2mmhicRR29uYjhsZJy7Ejgeg5+lAGqeaq3WnwXUZ SaNXU9VYZFW6KAOE1j4X6HfqzQW/2SQ9Gg4H5dK891j4Y67pxd7ZUvYh08vh8f7p/pXvlNaJHHIo A+WLi0uLSUxXMEkMg6q6lT+tR4xX03faFY367bm1imHpIgNcfrXwr0i8R3s0azlx8pj+7n3WmB4o DS5NdHrHgLXtIZ2a0NxCnPmw8jH061zrKVJUggjgg9qADNGaTNJmgQuaKQmkzQMCK6Dwt4O1DxLd J5cbRWgP7y4YcAeg9TW54H+Hs+sSpfarE8VmOUjbhpf8BXtFnYQWcKRRRqiIMKqjAFAGfoHhnT9C skt7OBUAHzNj5nPqT3NbQUKMAUUtIAooooAKKKKACiiigAooooAKKKKACiiigAooooA8r+NMfyaf Nn+8v65ryivXfjUp/s3Tm7eYw/QV5DmgCWPvT6gDHOBkk9hVmLT72c/JbSH3IwP1oAZuUd6TePSt GLw9dvgu0cf45P6VoW3hTzCMtNKfREwKAOe3n0pBvc4UFj6AV3tp4IdgNtgPrKcmt6z8Dz4wWWMe ka4oA8ti0u+nGVtnx6t8o/WrkXhy6f8A1kscfsPmNevW3ga3XBl3Of8AaNa9t4XsbfG2JB+FAHjl r4Q809J5v91doras/AsjEFbFF95Dur1qPTLePogqwsEa9FFAHnlp4GlwA7hR6IuK17bwRapgyKX/ AN4114UDtS0AY1v4csoANsSDHoKvx6fbx9EFWqKAGLEi9FFOwPSlooAKKKKACiiigAooooAKKKKA CoJrSKe4t53B327Fkwe5Uqc/gTU9FABRRRQBna+k0mg3qW6u0hiPyx/eYdwPcjIFZl9q+ifZY5NP Zbi4gt5Wg+xAO8ChDkkdhwBg98cccdJTVRVYlVALdSB1oA86OqedMYpdUP2RZbaQzRXpudhLOGIk KgDjGcZC9eKszX14s91Np9y9zHHC62tyz5LQmSDe2/ByFzJhsHhQea76igDn/Ct1Pcpd7ruG5t1d RE0V01yBx8w8wou7t64yfpXQUUUAFFFFABSYzVO+1JLKSKFbea6uJQSkEAXcQMZOWIAAyOSR1FR2 ut211cJb+XNDMUlZo5VAMfllAwbnH/LRSMZBHegC49uknUCsDWPBWjaxk3VlGz/31G1vzFbY1GxN qboXtuYAcGXzV2A+mc4ofULGONJHvLdUfGxmlUBs9MHPOcGgDyrWfhDtV5NKu2B5IimHH03f41wG q+HtV0aVkvrKSMDOHxlT7g19JPf2iJI1xLHAqMVJldVBxjnr05H51Ddf2a7LBPPbhpV3Kjuvzj1A PUUAfNen6dd6peR2llC000h4VR+p9BXr/hP4Y2WmeXdaiFu7sYYBh8iH2Hf6mum+w6XoNziy0zfd 3RL+VaoodwOrEsQABkdSOtXrTWbW4nS28uWGYpKzxyqAY/LKBgecf8tFIxkEc5oAuxQJEoCgcVLV I6xp4a1C3cUn2uUwxFHDBmCliMj2H54Hel07VbLVbaKa1nRvMiWXy9w3qrAEbgDx1oAuUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAHGfEjQpdd022jjV28mQsQhGSMe9ef23gaTd/x4sx9Z X/oK9wdFcYYZqNbaEHhBQB5hZeBbkdEihB/uJzW5a+BIxgzO7/U4ruAijoAKXFAHPW3hKxhwfJTP uM1pxaTbRAAIKvUUARpbRJ0QflTwoHQUtFABS0UlAC0UUlAC0UlFAC0UUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQBlX6XNrq0WpQWr3cfkNDLHEVDryGDDcQCOo IznpWTqunaxrhaU2otVa1nijQuu8BngIV+oywR+xAGAa6uigDif7G1RZDcrZ3rB5ULCT7GZ12o4D IoAjH3sZJJxjjipdJ8O3a29yL+wUu9pNFH5jRuctNK4HHH3WTsB9OldjRQBy2k6DcR6jay31mjRx RXIO8q2Gcw7eM9wr/wCTWG1udN02XTbqyhmupGtQpMse6DARQmM7jypK7QR8x6c16LUbQQtKszRI ZE4VyoyPoaAM6/S5tdWi1KC1e7j8hoZY4iodeQwYbiAR1BGc9Ky9SsNX1mUTvZJDH9mnjSF3GSpe Bgj4JGWEb9MgDANdTRQByn9lXU2t22qjR/s8SXMWbYtFvUCOZTJw23rJH0OcIO+BU+iaJLpyaCfs aQvbae0V0V25DkRkgkdfmDHjIrpKKACiiigAooooAKKKKACiiigAooooA//Z --_012_F0666C8D76C66A42823363CA744E9EDF24F40CD13Bdragon_-- From BATV+2a2813dd4e7d5c079ede+2890+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 22 20:32:22 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6N1WK5U124231 for ; Fri, 22 Jul 2011 20:32:21 -0500 X-ASG-Debug-ID: 1311384735-1f1500a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 59F76EF6D3F for ; Fri, 22 Jul 2011 18:32:16 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id zMynBUXl48qeKvsn for ; Fri, 22 Jul 2011 18:32:16 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkR4g-0006mp-BN; Sat, 23 Jul 2011 01:32:14 +0000 Date: Fri, 22 Jul 2011 21:32:14 -0400 From: Christoph Hellwig To: "Ted Ts'o" Cc: Christoph Hellwig , Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110723013214.GA22837@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> <20110722183830.GA21744@infradead.org> <20110722223458.GD25092@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722223458.GD25092@thunk.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311384736 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69705 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 06:34:58PM -0400, Ted Ts'o wrote: > Yes I needed it because I wanted to do a hermetic build; that is, I > didn't want to depend on the version of the acl, attr, dmapi, etc., > shipped by the distribution. (This is actually more important when > building xfstests, since I wanted to make sure we used the version of > the xfsprogs headers shipped by the very tip of xfsprogs-dev, since in > the past I've had problems because the distro-shipped header files > were too old.) Given that you are on a Debian-ish environment, did you consider simply using pbuilder? I use that regularly to test clean package builds, without all these weird overrides. > The way I did that was by setting the environment CFLAGS to > -I/kbuild/xfstests/bld/include. And that seems to be the problem. If > CFLAGS is set as an environment variable, then it's set as a :=, which > means that CFLAGS is set right away, the first time buildmacros is > included. > > How about this instead? A patch like this so that CFLAGS can be > remembered at configure time: > > diff --git a/include/builddefs.in b/include/builddefs.in > index 4c8ec64..81ebfcd 100644 > --- a/include/builddefs.in > +++ b/include/builddefs.in > @@ -25,6 +25,7 @@ OPTIMIZER = @opt_build@ > MALLOCLIB = @malloc_lib@ > LOADERFLAGS = @LDFLAGS@ > LTLDFLAGS = @LDFLAGS@ > +CFLAGS = @CFLAGS@ > > LIBRT = @librt@ > LIBUUID = @libuuid@ > > Then I don't have to set an environment variable when running make; I > just have to pass it to configure. This looks much better, and is indeed similar to some other fixes we recently had to put in, probably due to changing make behaviour. If you add a signoff and a proper description I'll put it into all the repositories. From wwwnickl@cyber1.clickithost.com Sat Jul 23 04:20:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.0 required=5.0 tests=BAYES_95,FREEMAIL_FROM, T_LOTS_OF_MONEY,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6N9KMRc151130 for ; Sat, 23 Jul 2011 04:20:23 -0500 X-ASG-Debug-ID: 1311412521-4ecd01ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from cyber1.clickithost.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 57B06789BE for ; Sat, 23 Jul 2011 02:15:21 -0700 (PDT) Received: from cyber1.clickithost.com (64-37-60-38.static.dimenoc.com [64.37.60.38]) by cuda.sgi.com with ESMTP id s95zhDrIPItHY4Oj for ; Sat, 23 Jul 2011 02:15:21 -0700 (PDT) Received: from wwwnickl by cyber1.clickithost.com with local (Exim 4.69) (envelope-from ) id 1QkYHw-0003AM-N7 for xfs@oss.sgi.com; Sat, 23 Jul 2011 05:14:24 -0400 To: xfs@oss.sgi.com X-ASG-Orig-Subj: Confirm Your $0.00 Copy Of "Winning In The Online Home Business Arena" ($39.97 Value) Subject: Confirm Your $0.00 Copy Of "Winning In The Online Home Business Arena" ($39.97 Value) From: nick Reply-To: nickfamilyiq@gmail.com MIME-Version: 1.0 X-Mailer: GMailer 1.2 Content-Type: text/plain Content-Transfer-Encoding: 8bit Message-Id: Date: Sat, 23 Jul 2011 05:14:24 -0400 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - cyber1.clickithost.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 507] / [47 12] X-AntiAbuse: Sender Address Domain - cyber1.clickithost.com X-Barracuda-Connect: 64-37-60-38.static.dimenoc.com[64.37.60.38] X-Barracuda-Start-Time: 1311412521 X-Barracuda-Bayes: INNOCENT GLOBAL 0.7104 1.0000 1.4485 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 1.45 X-Barracuda-Spam-Status: No, SCORE=1.45 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69736 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Inside Of Your Free 8 Part DVD "Winning In The Online Home Business Arena" ($39.97 Value) Go here now: ==> https://daegansmith.infusionsoft.com/go/freedvdbootcamp/a12144 You'll Discover . . . What's Working Now! "How To Get Up To 37 Checks Per Month, Earn Upwards Of $4,954.55 While You Sleep At Night, And Recruit WITHOUT Ever Having To Pick Up The Phone" Here's where to go: ==> https://daegansmith.infusionsoft.com/go/freedvdbootcamp/a12144 To the top, Nick N. Pick up now while it still costs zilch, before I start charing for it again. Make haste - Go here Now: ==> https://daegansmith.infusionsoft.com/go/freedvdbootcamp/a12144 From eflorac@intellique.com Sat Jul 23 04:30:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6N9UvRE151981 for ; Sat, 23 Jul 2011 04:30:58 -0500 X-ASG-Debug-ID: 1311413454-3d5e03210000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 32D10903BF for ; Sat, 23 Jul 2011 02:30:55 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id eItbqHq3f15NAyXV for ; Sat, 23 Jul 2011 02:30:55 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id E495CA6229; Sat, 23 Jul 2011 11:30:50 +0200 (CEST) Date: Sat, 23 Jul 2011 11:30:27 +0200 From: Emmanuel Florac To: Lee Eric Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan Message-ID: <20110723113027.162de009@galadriel.home> In-Reply-To: References: Organization: Intellique X-Mailer: Claws Mail 3.7.8 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1311413457 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69736 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Wed, 20 Jul 2011 22:03:33 +0800 vous =C3=A9criviez: > I know it would be better if I can use Lustre but my interconnection > is a little slow. I suspect if it is feasible if using such parallel > file system. >=20 > Does anyone has good idea on this deployment? >=20 For this kind of setup, true cluster filesystems like Lustre, PVFS2/OrangeFS, Gluster, Ceph... would be much better. Striping 20 iSCSI volumes across would be awfully dangerous. I'd go with OrangeFS (pvfs.org) because I'm pretty happy with it so far (using XFS as the underlying local filesystem). It's precisely made to agreggate computing clusters storage. --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From markus@trippelsdorf.de Sat Jul 23 13:09:49 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_44, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6NI9naJ172906 for ; Sat, 23 Jul 2011 13:09:49 -0500 X-ASG-Debug-ID: 1311444584-742f03050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 981EE180E67F for ; Sat, 23 Jul 2011 11:09:44 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id EgYgqi4P8QYnYlGr for ; Sat, 23 Jul 2011 11:09:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=UMdC3YC8doWnkr7F fw78z4xFaAHIwoAEmezB8/U4Riw=; b=PEAohIy105osG0m/dlN5GmaGAIjN18re rFYZ8mMvITgE0Rg0eAjNVo9eQ1MGAz80MAWNu3OUmLojL9yTNqlhlKdmXeTGujKO l/xQWWgJ2wzeNjUFeVnHgKGjIqhshPUmgpmziEbr8suG2dYHNiOoraJvndY16+qM cZgl5a3WCrA= Received: (qmail 27671 invoked from network); 23 Jul 2011 20:09:43 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 23 Jul 2011 20:09:43 +0200 Date: Sat, 23 Jul 2011 20:09:43 +0200 From: Markus Trippelsdorf To: Josef Bacik Cc: linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110723180942.GA1616@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1309370716-12235-1-git-send-email-josef@redhat.com> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311444586 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.02 X-Barracuda-Spam-Status: No, SCORE=-1.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_RULE7568M, BSF_RULE_7582B, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69770 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.50 BSF_RULE7568M Custom Rule 7568M 0.50 BSF_RULE_7582B Custom Rule 7582B X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.06.29 at 14:05 -0400, Josef Bacik wrote: > Btrfs needs to be able to control how filemap_write_and_wait_range() is called > in fsync to make it less of a painful operation, so push down taking i_mutex and > the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some > file systems can drop taking the i_mutex altogether it seems, like ext3 and > ocfs2. For correctness sake I just pushed everything down in all cases to make > sure that we keep the current behavior the same for everybody, and then each > individual fs maintainer can make up their mind about what to do from there. At least the xfs part of this patch is broken. Running the latest git-kernel bogofilter doesn't work anymore on my xfs partition. When I run "bogoutil -d wordlist.db" to dump the contents of the database, it produces no output at all. Reverting 02c24a82187d (or only the xfs part of that commit) "solves" the problem. Here is the output of "strace bogoutil -d wordlist.db": execve("/usr/bin/bogoutil", ["bogoutil", "-d", "wordlist.db"], [/* 49 vars */]) = 0 brk(0) = 0xf0b000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e44ba000 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory) open("/usr/lib64/tls/x86_64/libdb-5.1.so", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/usr/lib64/tls/x86_64", 0x7ffff87444e0) = -1 ENOENT (No such file or directory) open("/usr/lib64/tls/libdb-5.1.so", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/usr/lib64/tls", 0x7ffff87444e0) = -1 ENOENT (No such file or directory) open("/usr/lib64/x86_64/libdb-5.1.so", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/usr/lib64/x86_64", 0x7ffff87444e0) = -1 ENOENT (No such file or directory) open("/usr/lib64/libdb-5.1.so", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\240\226\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=1568648, ...}) = 0 mmap(NULL, 3663952, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e413b000 mprotect(0x7f92e42b1000, 2097152, PROT_NONE) = 0 mmap(0x7f92e44b1000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x176000) = 0x7f92e44b1000 close(3) = 0 open("/usr/lib64/libc.so.6", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=123587, ...}) = 0 mmap(NULL, 123587, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f92e411c000 close(3) = 0 open("/lib64/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\220P\2\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=10060928, ...}) = 0 mmap(NULL, 1469528, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3fb5000 mprotect(0x7f92e4111000, 4096, PROT_NONE) = 0 mmap(0x7f92e4112000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x15c000) = 0x7f92e4112000 mmap(0x7f92e4117000, 19544, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f92e4117000 close(3) = 0 open("/usr/lib64/libpthread.so.0", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libpthread.so.0", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300c\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=778568, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e3fb4000 mmap(NULL, 115588, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3f97000 mmap(0x7f92e3fae000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x16000) = 0x7f92e3fae000 mmap(0x7f92e3fb0000, 13188, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f92e3fb0000 close(3) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e3f96000 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e3f95000 arch_prctl(ARCH_SET_FS, 0x7f92e3f96700) = 0 mprotect(0x7f92e3fae000, 4096, PROT_READ) = 0 mprotect(0x7f92e4112000, 16384, PROT_READ) = 0 mprotect(0x7f92e44b1000, 24576, PROT_READ) = 0 mprotect(0x7f92e44da000, 4096, PROT_READ) = 0 munmap(0x7f92e411c000, 123587) = 0 set_tid_address(0x7f92e3f969d0) = 7361 set_robust_list(0x7f92e3f969e0, 0x18) = 0 rt_sigaction(SIGRTMIN, {0x7f92e3f9cf30, [], SA_RESTORER|SA_SIGINFO, 0x7f92e3fa6410}, NULL, 8) = 0 rt_sigaction(SIGRT_1, {0x7f92e3f9cfc0, [], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x7f92e3fa6410}, NULL, 8) = 0 rt_sigprocmask(SIG_UNBLOCK, [RTMIN RT_1], NULL, 8) = 0 getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) = 0 rt_sigaction(SIGINT, {0x406860, [], SA_RESTORER|SA_RESTART, 0x7f92e3fed710}, NULL, 8) = 0 rt_sigaction(SIGPIPE, {SIG_IGN, [], SA_RESTORER|SA_RESTART, 0x7f92e3fed710}, NULL, 8) = 0 rt_sigaction(SIGTERM, {0x406860, [], SA_RESTORER|SA_RESTART, 0x7f92e3fed710}, NULL, 8) = 0 brk(0) = 0xf0b000 brk(0xf2c000) = 0xf2c000 open("/etc/localtime", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0 fstat(3, {st_mode=S_IFREG|0644, st_size=2309, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e413a000 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\10\0\0\0\10\0\0\0\0"..., 4096) = 2309 lseek(3, -1467, SEEK_CUR) = 842 read(3, "TZif2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\0\0\0\t\0\0\0\0"..., 4096) = 1467 lseek(3, 2308, SEEK_SET) = 2308 close(3) = 0 munmap(0x7f92e413a000, 4096) = 0 open("/etc/bogofilter.cf", O_RDONLY) = -1 ENOENT (No such file or directory) geteuid() = 1000 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) close(3) = 0 socket(PF_FILE, SOCK_STREAM|SOCK_CLOEXEC|SOCK_NONBLOCK, 0) = 3 connect(3, {sa_family=AF_FILE, path="/var/run/nscd/socket"}, 110) = -1 ENOENT (No such file or directory) close(3) = 0 open("/etc/nsswitch.conf", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=508, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e413a000 read(3, "# /etc/nsswitch.conf:\n# $Header:"..., 4096) = 508 read(3, "", 4096) = 0 close(3) = 0 munmap(0x7f92e413a000, 4096) = 0 open("/usr/lib64/libnss_compat.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=123587, ...}) = 0 mmap(NULL, 123587, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f92e411c000 close(3) = 0 open("/lib64/libnss_compat.so.2", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=145792, ...}) = 0 mmap(NULL, 33912, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3f8c000 mmap(0x7f92e3f93000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x6000) = 0x7f92e3f93000 close(3) = 0 open("/usr/lib64/libnsl.so.1", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libnsl.so.1", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=612792, ...}) = 0 mmap(NULL, 100984, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3f73000 mprotect(0x7f92e3f87000, 4096, PROT_NONE) = 0 mmap(0x7f92e3f88000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x14000) = 0x7f92e3f88000 mmap(0x7f92e3f8a000, 6776, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x7f92e3f8a000 close(3) = 0 mprotect(0x7f92e3f88000, 4096, PROT_READ) = 0 mprotect(0x7f92e3f93000, 4096, PROT_READ) = 0 munmap(0x7f92e411c000, 123587) = 0 open("/usr/lib64/libnss_nis.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=123587, ...}) = 0 mmap(NULL, 123587, PROT_READ, MAP_PRIVATE, 3, 0) = 0x7f92e411c000 close(3) = 0 open("/lib64/libnss_nis.so.2", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=266616, ...}) = 0 mmap(NULL, 46260, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3f67000 mmap(0x7f92e3f71000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x9000) = 0x7f92e3f71000 close(3) = 0 open("/usr/lib64/libnss_files.so.2", O_RDONLY) = -1 ENOENT (No such file or directory) open("/lib64/libnss_files.so.2", O_RDONLY) = 3 read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\0\0\0\0\0\0\0\0"..., 832) = 832 fstat(3, {st_mode=S_IFREG|0755, st_size=274896, ...}) = 0 mmap(NULL, 50568, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x7f92e3f5a000 mmap(0x7f92e3f65000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0xa000) = 0x7f92e3f65000 close(3) = 0 mprotect(0x7f92e3f65000, 4096, PROT_READ) = 0 mprotect(0x7f92e3f71000, 4096, PROT_READ) = 0 munmap(0x7f92e411c000, 123587) = 0 open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 3 lseek(3, 0, SEEK_CUR) = 0 fstat(3, {st_mode=S_IFREG|0644, st_size=1396, ...}) = 0 mmap(NULL, 1396, PROT_READ, MAP_SHARED, 3, 0) = 0x7f92e413a000 lseek(3, 1396, SEEK_SET) = 1396 lseek(3, 901, SEEK_SET) = 901 munmap(0x7f92e413a000, 1396) = 0 close(3) = 0 open("/home/markus/.bogofilter.cf", O_RDONLY) = 3 fstat(3, {st_mode=S_IFREG|0644, st_size=7432, ...}) = 0 mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f92e413a000 read(3, "########### Sample BOGOFILTER Co"..., 4096) = 4096 read(3, "\t\t the password database, or t"..., 4096) = 3336 read(3, "", 4096) = 0 close(3) = 0 munmap(0x7f92e413a000, 4096) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 open("./lockfile-p", O_RDWR|O_DSYNC) = 3 lseek(3, 0, SEEK_CUR) = 0 lseek(3, 0, SEEK_SET) = 0 lseek(3, 0, SEEK_CUR) = 0 read(3, "1", 1) = 1 fcntl(3, F_GETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1, pid=4225321}) = 0 lseek(3, 0, SEEK_SET) = 0 lseek(3, 0, SEEK_CUR) = 0 lseek(3, 0, SEEK_SET) = 0 lseek(3, 0, SEEK_CUR) = 0 read(3, "1", 1) = 1 fcntl(3, F_GETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1, pid=15785816}) = 0 lseek(3, 0, SEEK_SET) = 0 mkdir(".", 0775) = -1 EEXIST (File exists) open("./lockfile-d", O_RDWR|O_CREAT|O_EXCL, 0664) = -1 EEXIST (File exists) open("./lockfile-d", O_RDWR) = 4 fcntl(4, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}) = 0 lseek(3, 0, SEEK_CUR) = 0 lseek(3, 0, SEEK_SET) = 0 lseek(3, 0, SEEK_CUR) = 0 read(3, "1", 1) = 1 fcntl(3, F_GETLK, {type=F_UNLCK, whence=SEEK_SET, start=0, len=1, pid=0}) = 0 lseek(3, 0, SEEK_SET) = 0 open("/sys/devices/system/cpu/online", O_RDONLY|O_CLOEXEC) = 5 read(5, "0-3\n", 8192) = 4 close(5) = 0 open("./DB_CONFIG", O_RDONLY) = -1 ENOENT (No such file or directory) stat("/var/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=12288, ...}) = 0 open("./__db.rep.init", O_RDONLY) = -1 ENOENT (No such file or directory) open("./__db.001", O_RDWR) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 fstat(5, {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0 close(5) = 0 open("./__db.001", O_RDWR) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 mmap(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e4135000 close(5) = 0 open("./__db.002", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 mmap(NULL, 188416, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3f2c000 close(5) = 0 munmap(0x7f92e3f2c000, 188416) = 0 unlink("./__db.002") = 0 open("./__db.003", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 mmap(NULL, 5251072, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3a58000 close(5) = 0 munmap(0x7f92e3a58000, 5251072) = 0 unlink("./__db.003") = 0 open("./__db.004", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 mmap(NULL, 163840, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3f32000 close(5) = 0 munmap(0x7f92e3f32000, 163840) = 0 unlink("./__db.004") = 0 open("./__db.005", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 mmap(NULL, 49152, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3f4e000 close(5) = 0 munmap(0x7f92e3f4e000, 49152) = 0 unlink("./__db.005") = 0 munmap(0x7f92e4135000, 24576) = 0 unlink("./__db.001") = 0 open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5 getdents(5, /* 6 entries */, 32768) = 184 stat("./.", {st_mode=S_IFDIR|0755, st_size=79, ...}) = 0 stat("./..", {st_mode=S_IFDIR|0700, st_size=36864, ...}) = 0 stat("./lockfile-d", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("./lockfile-p", {st_mode=S_IFREG|0644, st_size=1024, ...}) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 stat("./log.0000000031", {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 getdents(5, /* 0 entries */, 32768) = 0 close(5) = 0 open("./__db.001", O_RDWR|O_CREAT|O_EXCL, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 open("./__db.001", O_RDWR|O_CREAT, 0664) = 6 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 lseek(6, 16384, SEEK_SET) = 16384 write(6, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 mmap(NULL, 24576, PROT_READ|PROT_WRITE, MAP_SHARED, 6, 0) = 0x7f92e4135000 close(6) = 0 close(5) = 0 open("./__db.002", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 lseek(5, 180224, SEEK_SET) = 180224 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 mmap(NULL, 188416, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3f2c000 close(5) = 0 open("./__db.003", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 lseek(5, 5242880, SEEK_SET) = 5242880 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 mmap(NULL, 5251072, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3a2a000 close(5) = 0 open("./__db.004", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 lseek(5, 155648, SEEK_SET) = 155648 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 mmap(NULL, 163840, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e3a02000 close(5) = 0 open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 5 getdents(5, /* 10 entries */, 32768) = 312 stat("./.", {st_mode=S_IFDIR|0755, st_size=139, ...}) = 0 stat("./..", {st_mode=S_IFDIR|0700, st_size=36864, ...}) = 0 stat("./lockfile-d", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("./lockfile-p", {st_mode=S_IFREG|0644, st_size=1024, ...}) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 stat("./log.0000000031", {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 stat("./__db.001", {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0 stat("./__db.002", {st_mode=S_IFREG|0644, st_size=188416, ...}) = 0 stat("./__db.003", {st_mode=S_IFREG|0644, st_size=5251072, ...}) = 0 stat("./__db.004", {st_mode=S_IFREG|0644, st_size=163840, ...}) = 0 getdents(5, /* 0 entries */, 32768) = 0 close(5) = 0 open("./log.0000000031", O_RDONLY) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 read(5, "\206\377\17\0\34\0\0\0\314`4\214\210\t\4\0\21\0\0\0\0\0\20\0\0\0\0\0", 28) = 28 close(5) = 0 open("./log.0000000031", O_RDONLY) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 fstat(5, {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 pread(5, "\206\377\17\0\34\0\0\0\314`4\214", 12, 0) = 12 pread(5, "\206\377\17\0\34\0\0\0\314`4\214\210\t\4\0\21\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0"..., 32000, 0) = 32000 pread(5, "\204|\0\0X\0\0\0\217\261Zs", 12, 31920) = 12 pread(5, "\204|\0\0X\0\0\0\217\261Zs\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\2\0\0\0"..., 32000, 31920) = 32000 pread(5, "m\363\0\0\200\20\0\0f\243=\177", 12, 62385) = 12 pread(5, "m\363\0\0\200\20\0\0f\243=\177>\0\0\0R\20\0\200\37\0\0\0m\363\0\0\0\0\0\0"..., 32000, 62385) = 32000 pread(5, "]p\1\0J\0\0\0\260\253\2045", 12, 94379) = 12 pread(5, "]p\1\0J\0\0\0\260\253\2045)\0\0\0R\20\0\200\37\0\0\0]p\1\0\5\1\0\0"..., 32000, 94379) = 32000 pread(5, "\0\0\0\0\0\0\0\0\0\0\0\0", 12, 120809) = 12 close(5) = 0 open("./__db.005", O_RDWR|O_CREAT, 0664) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 lseek(5, 40960, SEEK_SET) = 40960 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 8192) = 8192 mmap(NULL, 49152, PROT_READ|PROT_WRITE, MAP_SHARED, 5, 0) = 0x7f92e39f6000 close(5) = 0 open("./log.0000000031", O_RDONLY) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 fstat(5, {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 pread(5, "Y\327\1\0008\0\0\0\377*\23\233", 12, 120753) = 12 pread(5, "\0\0\0\0\0k\2702\1\0\21\0\1rcvd:209.236.66.8\f\0"..., 32000, 88809) = 32000 open(".", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 6 getdents(6, /* 11 entries */, 32768) = 344 stat("./.", {st_mode=S_IFDIR|0755, st_size=154, ...}) = 0 stat("./..", {st_mode=S_IFDIR|0700, st_size=36864, ...}) = 0 stat("./lockfile-d", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0 stat("./lockfile-p", {st_mode=S_IFREG|0644, st_size=1024, ...}) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 stat("./log.0000000031", {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 stat("./__db.001", {st_mode=S_IFREG|0644, st_size=24576, ...}) = 0 stat("./__db.002", {st_mode=S_IFREG|0644, st_size=188416, ...}) = 0 stat("./__db.003", {st_mode=S_IFREG|0644, st_size=5251072, ...}) = 0 stat("./__db.004", {st_mode=S_IFREG|0644, st_size=163840, ...}) = 0 stat("./__db.005", {st_mode=S_IFREG|0644, st_size=49152, ...}) = 0 getdents(6, /* 0 entries */, 32768) = 0 close(6) = 0 open("./log.0000000031", O_RDONLY) = 6 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 read(6, "\206\377\17\0\34\0\0\0\314`4\214\210\t\4\0\21\0\0\0\0\0\20\0\0\0\0\0", 28) = 28 close(6) = 0 pread(5, "\206\377\17\0\34\0\0\0\314`4\214", 12, 0) = 12 pread(5, "\206\377\17\0\34\0\0\0\314`4\214\210\t\4\0\21\0\0\0\0\0\20\0\0\0\0\0\0\0\0\0"..., 32000, 0) = 32000 pread(5, "Y\327\1\0008\0\0\0\377*\23\233", 12, 120753) = 12 pread(5, "\0\0\0\0\0k\2702\1\0\21\0\1rcvd:209.236.66.8\f\0"..., 32000, 88809) = 32000 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 open("./wordlist.db", O_RDWR) = 6 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 read(6, "\37\0\0\0yr\1\0\0\0\0\0b1\5\0\t\0\0\0\0\20\0\0\0\t\1\0\0\0\0\0"..., 512) = 512 close(6) = 0 stat("./wordlist.db", {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 open("./wordlist.db", O_RDWR) = 6 fcntl(6, F_GETFD) = 0 fcntl(6, F_SETFD, FD_CLOEXEC) = 0 fstat(6, {st_mode=S_IFREG|0644, st_size=6635520, ...}) = 0 pread(6, "\37\0\0\0yr\1\0\0\0\0\0b1\5\0\t\0\0\0\0\20\0\0\0\t\1\0\0\0\0\0"..., 4096, 0) = 4096 close(6) = 0 close(5) = 0 open("./log.0000000031", O_RDONLY) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 fstat(5, {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 pread(5, "Y\327\1\0008\0\0\0\377*\23\233", 12, 120753) = 12 pread(5, "\0\0\0\0\0k\2702\1\0\21\0\1rcvd:209.236.66.8\f\0"..., 32000, 88809) = 32000 close(5) = 0 open("./log.0000000032", O_RDONLY) = -1 ENOENT (No such file or directory) open("./log.00032", O_RDONLY) = -1 ENOENT (No such file or directory) open("./log.0000000031", O_RDWR) = 5 fcntl(5, F_GETFD) = 0 fcntl(5, F_SETFD, FD_CLOEXEC) = 0 fstat(5, {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 lseek(5, 120809, SEEK_SET) = 120809 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096) = 4096 write(5, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 2071) = 2071 close(5) = 0 lseek(3, 0, SEEK_SET) = 0 write(3, "00000000000000000000000000000000"..., 1024) = 0 close(3) = 0 getcwd("/home/markus/.bogofilter", 1024) = 25 open("./log.0000000031", O_RDONLY) = 3 fcntl(3, F_GETFD) = 0 fcntl(3, F_SETFD, FD_CLOEXEC) = 0 fstat(3, {st_mode=S_IFREG|0600, st_size=1048576, ...}) = 0 pread(3, "Y\327\1\0008\0\0\0\377*\23\233", 12, 120753) = 12 pread(3, "\0\0\0\0\0k\2702\1\0\21\0\1rcvd:209.236.66.8\f\0"..., 32000, 88809) = 32000 close(3) = 0 stat("./log.0000000030", 0x7ffff8744660) = -1 ENOENT (No such file or directory) munmap(0x7f92e39f6000, 49152) = 0 munmap(0x7f92e3a02000, 163840) = 0 munmap(0x7f92e3a2a000, 5251072) = 0 munmap(0x7f92e3f2c000, 188416) = 0 munmap(0x7f92e4135000, 24576) = 0 alarm(0) = 0 rt_sigaction(SIGALRM, {SIG_DFL, [], SA_RESTORER, 0x7f92e3fed710}, NULL, 8) = 0 lseek(-1, 0, SEEK_SET) = -1 EBADF (Bad file descriptor) close(4) = 0 open("./lockfile-p", O_RDWR|O_DSYNC) = 3 mkdir(".", 0775) = -1 EEXIST (File exists) open("./lockfile-d", O_RDWR|O_CREAT|O_EXCL, 0664) = -1 EEXIST (File exists) open("./lockfile-d", O_RDWR) = 4 fcntl(4, F_SETLKW, {type=F_RDLCK, whence=SEEK_SET, start=0, len=0}) = 0 lseek(3, 0, SEEK_SET) = 0 lseek(3, 0, SEEK_CUR) = 0 read(3, "0", 1) = 1 fcntl(3, F_SETLK, {type=F_WRLCK, whence=SEEK_SET, start=0, len=1}) = 0 lseek(3, 0, SEEK_SET) = 0 read(3, "0", 1) = 1 lseek(3, 0, SEEK_SET) = 0 write(3, "1", 1) = 0 exit_group(3) = ? -- Markus From markus@trippelsdorf.de Sat Jul 23 14:32:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6NJWSnf175147 for ; Sat, 23 Jul 2011 14:32:28 -0500 X-ASG-Debug-ID: 1311449546-726c01dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 89C8E180E7BD for ; Sat, 23 Jul 2011 12:32:26 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id bU3swmvsRzyc65B7 for ; Sat, 23 Jul 2011 12:32:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=RXAjQrSA/+bSJhf6 1afsw+YhDlTa0mCra2nzTjdwHME=; b=MrCtQvTRob2l7whzHSPcjjtuQdZW9Pc/ 8FvevDAlZOE71ZvJPOe8tvDg+6ci0i1CbmJm8PO+aqWxUV9ccaYQH/lkU57+GdSD 7TBMZP1RAMyj2a2AOmixytakQMk4jFoV+dVA3XmdwxbfPT5EurQZ3pWnVIw3DLft +/WBd+X3Las= Received: (qmail 5888 invoked from network); 23 Jul 2011 21:32:25 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 23 Jul 2011 21:32:25 +0200 Date: Sat, 23 Jul 2011 21:32:25 +0200 From: Markus Trippelsdorf To: Josef Bacik Cc: linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110723193225.GA1652@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110723180942.GA1616@x4.trippels.de> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311449547 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69776 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.07.23 at 20:09 +0200, Markus Trippelsdorf wrote: > On 2011.06.29 at 14:05 -0400, Josef Bacik wrote: > > Btrfs needs to be able to control how filemap_write_and_wait_range() is called > > in fsync to make it less of a painful operation, so push down taking i_mutex and > > the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some > > file systems can drop taking the i_mutex altogether it seems, like ext3 and > > ocfs2. For correctness sake I just pushed everything down in all cases to make > > sure that we keep the current behavior the same for everybody, and then each > > individual fs maintainer can make up their mind about what to do from there. > > At least the xfs part of this patch is broken. > Running the latest git-kernel bogofilter doesn't work anymore on my xfs > partition. When I run "bogoutil -d wordlist.db" to dump the contents of > the database, it produces no output at all. > > Reverting 02c24a82187d (or only the xfs part of that commit) "solves" > the problem. Looks like a locking problem (note the stale xfs_rw_ilock): diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index 7f782af..fbbf657 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -127,6 +127,8 @@ xfs_iozero( STATIC int xfs_file_fsync( struct file *file, + loff_t start, + loff_t end, int datasync) { struct inode *inode = file->f_mapping->host; @@ -138,6 +140,10 @@ xfs_file_fsync( trace_xfs_file_fsync(ip); + error = filemap_write_and_wait_range(inode->i_mapping, start, end); + if (error) + return error; + if (XFS_FORCED_SHUTDOWN(mp)) return -XFS_ERROR(EIO); @@ -875,18 +881,11 @@ xfs_file_aio_write( /* Handle various SYNC-type writes */ if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { loff_t end = pos + ret - 1; - int error, error2; xfs_rw_iunlock(ip, iolock); - error = filemap_write_and_wait_range(mapping, pos, end); + ret = -xfs_file_fsync(file, pos, end, + (file->f_flags & __O_SYNC) ? 0 : 1); xfs_rw_ilock(ip, iolock); - - error2 = -xfs_file_fsync(file, - (file->f_flags & __O_SYNC) ? 0 : 1); - if (error) - ret = error; - else if (error2) - ret = error2; } out_unlock: -- Markus From josef@redhat.com Sat Jul 23 15:27:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6NKR328176727 for ; Sat, 23 Jul 2011 15:27:03 -0500 X-ASG-Debug-ID: 1311452822-23c6019e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 32D141D8CE97 for ; Sat, 23 Jul 2011 13:27:02 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id S7FYVjQNjHxhhjx3 for ; Sat, 23 Jul 2011 13:27:02 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6NKQn2O018264 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 23 Jul 2011 16:26:49 -0400 Received: from localhost.localdomain (vpn-9-213.rdu.redhat.com [10.11.9.213]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6NKQljw002609; Sat, 23 Jul 2011 16:26:48 -0400 Message-ID: <4E2B2E88.8080006@redhat.com> Date: Sat, 23 Jul 2011 16:26:48 -0400 From: Josef Bacik User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110621 Fedora/3.1.11-1.fc15 Thunderbird/3.1.11 MIME-Version: 1.0 To: Markus Trippelsdorf CC: linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> In-Reply-To: <20110723180942.GA1616@x4.trippels.de> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1311452823 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/23/2011 02:09 PM, Markus Trippelsdorf wrote: > On 2011.06.29 at 14:05 -0400, Josef Bacik wrote: >> Btrfs needs to be able to control how filemap_write_and_wait_range() is called >> in fsync to make it less of a painful operation, so push down taking i_mutex and >> the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some >> file systems can drop taking the i_mutex altogether it seems, like ext3 and >> ocfs2. For correctness sake I just pushed everything down in all cases to make >> sure that we keep the current behavior the same for everybody, and then each >> individual fs maintainer can make up their mind about what to do from there. > > At least the xfs part of this patch is broken. > Running the latest git-kernel bogofilter doesn't work anymore on my xfs > partition. When I run "bogoutil -d wordlist.db" to dump the contents of > the database, it produces no output at all. > Already fixed and sent a patch out earlier this week. Thanks, Josef From markus@trippelsdorf.de Sat Jul 23 15:38:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6NKcRAs177000 for ; Sat, 23 Jul 2011 15:38:27 -0500 X-ASG-Debug-ID: 1311453505-1fe502470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7E7A8180E858 for ; Sat, 23 Jul 2011 13:38:25 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id v0MzBfs3xFlPc6AA for ; Sat, 23 Jul 2011 13:38:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=+i4+jLBOmt693W40 TJfYRjUfiIFruwf14KcVf6yzfR4=; b=UuVwARD7k/esFpu1685dUSMVX17CLkQ/ RKoTQXu4oYWPSJ1p4m0RGH8a3XfGmKSuSRk8PW4LTpzrJ/gpNGnUdk+6EZ8e9koq nSeTdYT0Ve3552LBtQFeLwqDVoulnTZu/mOSvhDQ+HzO+EfyQTiJJFBhW2QzmS2w X+nES3OeUIc= Received: (qmail 13929 invoked from network); 23 Jul 2011 22:38:25 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 23 Jul 2011 22:38:25 +0200 Date: Sat, 23 Jul 2011 22:38:24 +0200 From: Markus Trippelsdorf To: Josef Bacik Cc: linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110723203824.GB1652@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E2B2E88.8080006@redhat.com> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311453506 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69780 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.07.23 at 16:26 -0400, Josef Bacik wrote: > On 07/23/2011 02:09 PM, Markus Trippelsdorf wrote: > > On 2011.06.29 at 14:05 -0400, Josef Bacik wrote: > >> Btrfs needs to be able to control how filemap_write_and_wait_range() is called > >> in fsync to make it less of a painful operation, so push down taking i_mutex and > >> the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some > >> file systems can drop taking the i_mutex altogether it seems, like ext3 and > >> ocfs2. For correctness sake I just pushed everything down in all cases to make > >> sure that we keep the current behavior the same for everybody, and then each > >> individual fs maintainer can make up their mind about what to do from there. > > > > At least the xfs part of this patch is broken. > > Running the latest git-kernel bogofilter doesn't work anymore on my xfs > > partition. When I run "bogoutil -d wordlist.db" to dump the contents of > > the database, it produces no output at all. > > > > Already fixed and sent a patch out earlier this week. Thanks, No. This happens with your patch already applied. See my other reply. -- Markus From markus@trippelsdorf.de Sat Jul 23 17:02:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6NM2F95179305 for ; Sat, 23 Jul 2011 17:02:15 -0500 X-ASG-Debug-ID: 1311458533-23df03d30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 95BDC1D8D018 for ; Sat, 23 Jul 2011 15:02:13 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id 1bKETsBgEY8yWFjl for ; Sat, 23 Jul 2011 15:02:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=2R8bO3C6of+NId0X Fnv0uxd7EFYobJSosk7vIkyx2fM=; b=pGo147ZNqeYzYbJ3py1HN7N/VFbE/6pm me9g5XyNzYg+B7rbz+RW61k3Ju+P8keq4S1Wir0gIbf79mp6b8P4I56hf66CzWaP SA8NI0Z+NdV6N43/yU11o2xkXK7MuCq7rMq5Yn/pcuWxrTiG4xcxWizGOuYAf6RF SHwAj5BDV3A= Received: (qmail 23312 invoked from network); 24 Jul 2011 00:02:12 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 24 Jul 2011 00:02:12 +0200 Date: Sun, 24 Jul 2011 00:02:12 +0200 From: Markus Trippelsdorf To: Josef Bacik Cc: linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110723220212.GA1648@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110723203824.GB1652@x4.trippels.de> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311458534 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69786 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.07.23 at 22:38 +0200, Markus Trippelsdorf wrote: > On 2011.07.23 at 16:26 -0400, Josef Bacik wrote: > > On 07/23/2011 02:09 PM, Markus Trippelsdorf wrote: > > > On 2011.06.29 at 14:05 -0400, Josef Bacik wrote: > > >> Btrfs needs to be able to control how filemap_write_and_wait_range() is called > > >> in fsync to make it less of a painful operation, so push down taking i_mutex and > > >> the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some > > >> file systems can drop taking the i_mutex altogether it seems, like ext3 and > > >> ocfs2. For correctness sake I just pushed everything down in all cases to make > > >> sure that we keep the current behavior the same for everybody, and then each > > >> individual fs maintainer can make up their mind about what to do from there. > > > > > > At least the xfs part of this patch is broken. > > > Running the latest git-kernel bogofilter doesn't work anymore on my xfs > > > partition. When I run "bogoutil -d wordlist.db" to dump the contents of > > > the database, it produces no output at all. > > > > > > > Already fixed and sent a patch out earlier this week. Thanks, > > No. This happens with your patch already applied. See my other reply. The following patch fixes the problem for me: diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index cca00f4..2e23e3d 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -881,11 +881,14 @@ xfs_file_aio_write( /* Handle various SYNC-type writes */ if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { loff_t end = pos + ret - 1; + int error; xfs_rw_iunlock(ip, iolock); - ret = -xfs_file_fsync(file, pos, end, + error = -xfs_file_fsync(file, pos, end, (file->f_flags & __O_SYNC) ? 0 : 1); xfs_rw_ilock(ip, iolock); + if (error) + ret = error; } out_unlock: -- Markus From david@fromorbit.com Sat Jul 23 20:35:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6O1Z3f4184630 for ; Sat, 23 Jul 2011 20:35:04 -0500 X-ASG-Debug-ID: 1311471300-5fc300a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A69581683FF2 for ; Sat, 23 Jul 2011 18:35:00 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id Ct8v6FktdKHfVPLW for ; Sat, 23 Jul 2011 18:35:00 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqMDADh2K055LCkBgWdsb2JhbAA0AQEEAUAgJQUMCQMYOhQBKgMqF6dYFQEBFiYliHy9Jg6FUl8EmyGIQQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 24 Jul 2011 11:04:58 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1Qknar-00025k-5d; Sun, 24 Jul 2011 11:34:57 +1000 Date: Sun, 24 Jul 2011 11:34:57 +1000 From: Dave Chinner To: Amit Sahrawat Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Message-ID: <20110724013457.GB31951@dastard> References: <20110722083457.GC13963@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1311471301 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69799 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 04:03:53PM +0530, Amit Sahrawat wrote: > On Fri, Jul 22, 2011 at 2:04 PM, Dave Chinner wrote: > > [] (dump_backtrace+0x0/0x110) > > [] (dump_stack+0x0/0x1c) > > [] (xfs_error_report+0x0/0x5c) > > [] (xfs_free_ag_extent+0x0/0x600) > > [] (xfs_free_extent+0x0/0xa4) > > [] (xfs_bmap_finish+0x0/0x194) > > [] (xfs_itruncate_finish+0x0/0x30c) > > [] (xfs_inactive+0x0/0x40c) > > [] (xfs_fs_clear_inode+0x0/0x60) > > [] (clear_inode+0x0/0xe8) > > [] (generic_delete_inode+0x0/0x178) > > [] (generic_drop_inode+0x0/0x68) > > [] (iput+0x0/0x7c) > > [] (do_unlinkat+0x0/0x154) > > [] (sys_unlink+0x0/0x1c) > > > > So, you powered off an active machine while writing to it, and after > > it started back up it hit a free space between corruption. And then > > you couldn't mount it because log replay was trying to replay the > > last committed transaction to the log. That transaction shows inode > > 132 being unlinked, added to the AGI unliked list, and then being > > inactivated. There is an EFI committed for 1 extent. There is no EFD > > committed, so the shutdown occurred during that operation. Log > > replay then hits the corruption repeatedly by trying to replay the > > EFI to complete the extent free operation. > > > Yes, it happened exactly as you mentioned above. But the problem > happened much earlier. Obviously. > While writing the 'reset' happened. At the next reboot - the > filesystem mounted even though there > was corruption - the file and journal did not match. You found this how? > And it did not > show any error either. Well, no. If the journal format is intact, then it's contents are trusted. > The moment the issue happened and then if checked through xfs_logprint > - the blocks free in the allocation group does not match up properly. > I checked by taking the print from xfs_free_ag_extent - it showed the > wrong blocks contigous to that file. Yes, which is why I suspect that the journal contained something it shouldn't have. > Original file which was to be deleted is of '255' blocks and started > from physical block number - 12. Yes, I saw that in the EFI record in the logprint output I quoted. > While the free space tree has free > blocks larger than what it should be. it returns the length starting > from block number and the length which is last committed to the log. > > As I mentioned in the last mail - the details about the observation. > Please check. Going back to the transaction you quoted first: it doesn't match the entries in the log print you attached in your second email. I can't comment on it at all. > > So, the log and the repair output are useless for determining what > > caused the problem - you need the log from the mount *before* the > > first shutdown occurred, and to have run repair *before* you > > tried to unlink anything. > > It is only after 'first shutdown' I came to know about the corruption. > Since, there was no error shown at the mount time, it did not seemed > reasonable enough to run "repair" on the disk. It's standard practice for power failure integrity testing. > But at the same time I checked with the case(reset while direct-IO), > when there was no issue - I tried to check the logs the same way as > you mentioned > - reset - log_print - check using xfs_repair and then mount - the > behaviour was as per the logs - The number of commit transactions and > the files created was ok. > Logs are attached for xfs_logprint output. > > mount after taking the log prints. > > #mount /dev/sdb1 /media/b > XFS mounting filesystem sda1 > Starting XFS recovery on filesystem: sda1 (logdev: internal) > Ending XFS recovery on filesystem: sda1 (logdev: internal) > > #> ls -li /media/b > 131 -rwxr-xr-x 1 root 0 2887184 Jan 1 00:00 test_code > 132 -rw-r--r-- 1 root 0 1044480 Jan 1 00:00 > direct_io_file_0 > 133 -rw-r--r-- 1 root 0 819200 Jan 1 00:00 > direct_io_file_1 Last entry in the log for inode 133 is this: Oper (480): tid: 738ef289 len: 56 clientid: TRANS flags: none INODE: #regs: 3 ino: 0x85 flags: 0x5 dsize: 16 blkno: 64 len: 16 boff: 1280 Oper (481): tid: 738ef289 len: 96 clientid: TRANS flags: none INODE CORE magic 0x494e mode 0100644 version 2 format 2 nlink 1 uid 0 gid 0 atime 0xc mtime 0xd ctime 0xd size 0xc9400 nblocks 0xcb extsize 0x0 nextents 0x1 naextents 0x0 forkoff 0 dmevmask 0x0 dmstate 0x0 flags 0x0 gen 0x0 Oper (482): tid: 738ef289 len: 16 clientid: TRANS flags: none EXTENTS inode data The inode size is 0xc9400 = 824,320 bytes, and blocks = 0xcb = 203 = 831,488 bytes. So there's nothing wrong here. Indeed, it appears this transaction was not replayed because: ---------------------------------------------------------------------------- Oper (477): tid: 44eff979 len: 0 clientid: TRANS flags: COMMIT Oper (478): tid: 738ef289 len: 0 clientid: TRANS flags: START Oper (479): tid: 738ef289 len: 16 clientid: TRANS flags: none Oper (480): tid: 738ef289 len: 56 clientid: TRANS flags: none Oper (481): tid: 738ef289 len: 96 clientid: TRANS flags: none Oper (482): tid: 738ef289 len: 16 clientid: TRANS flags: none Oper (483): tid: 738ef289 len: 24 clientid: TRANS flags: none Oper (484): tid: 738ef289 len: 128 clientid: TRANS flags: none Oper (485): tid: 738ef289 len: 28 clientid: TRANS flags: none Oper (486): tid: 738ef289 len: 128 clientid: TRANS flags: none Oper (487): tid: 738ef289 len: 20 clientid: TRANS flags: CONTINUE BUF: #regs: 2 Not printing rest of data ============================================================================ xfs_logprint: skipped 3510 cleared blocks in range: 592 - 4101 xfs_logprint: skipped 61434 zeroed blocks in range: 4102 - 65535 xfs_logprint: physical end of log ============================================================================ xfs_logprint: logical end of log ============================================================================ The transaction was never committed completely in the journal. The last complete transaction in the journal matches up with the inode size in your ls -l output about. Your test code is obviously doing single block allocation (probably 4k DIO append writes). I can't see any inconsistencies with what is in the journal, with what you see from ls -l, nor any inconsistencies with the AGF spce accounting. Hence I suspect that it's either a barrier problem, or perhaps yet another manifestation of vmap cache aliasing causing random corruption during journal replay. Can you verify that the transactions being replayed match the contents of the logprint output (i.e. the entire transactions including buffer data matches, and not just the transaction IDs). Cheers, Dave. -- Dave Chinner david@fromorbit.com From stan@hardwarefreak.com Sun Jul 24 01:14:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6O6Eudj194785 for ; Sun, 24 Jul 2011 01:14:56 -0500 X-ASG-Debug-ID: 1311488093-3c2503de0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 36C82EFFF28 for ; Sat, 23 Jul 2011 23:14:53 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id ht6tUyI5sGTCsZFL for ; Sat, 23 Jul 2011 23:14:53 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 219FE6C149; Sun, 24 Jul 2011 01:14:53 -0500 (CDT) Message-ID: <4E2BB859.1050200@hardwarefreak.com> Date: Sun, 24 Jul 2011 01:14:49 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Dave Chinner CC: Michael Monnerie , John Bokma , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance References: <4E24907F.6020903@johnbokma.com> <201107210820.01019@zmi.at> <20110721064838.GA13963@dastard> <201107220810.01889@zmi.at> <4E29BBDA.3000603@hardwarefreak.com> <20110722231040.GD13963@dastard> In-Reply-To: <20110722231040.GD13963@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311488094 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.52 X-Barracuda-Spam-Status: No, SCORE=-1.52 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA085b, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69819 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.40 BSF_SC0_SA085b Custom Rule SA085b X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/22/2011 6:10 PM, Dave Chinner wrote: > On Fri, Jul 22, 2011 at 01:05:14PM -0500, Stan Hoeppner wrote: >> I've never used a NetApp filer myself. However, that said, I would >> assume that WAFL is only in play for NFS/CIFS transactions since WAFL is >> itself a filesystem. > > Netapp's website is busted, so here's a cached link: > > http://webcache.googleusercontent.com/search?q=cache:9DdO2a16hdIJ:blogs.netapp.com/extensible_netapp/2008/10/what-is-wafl--3.html+netapp+san+wafl&cd=1&hl=en&ct=clnk&source=www.google.com This is interesting: http://communities.netapp.com/community/netapp-blogs/dave/blog/2008/12/08/is-wafl-a-filesystem The author implemented WAFL in two layers. The bottom layer handles block stuff including volume management, dedup, snapshots, etc, and the top layer functions as multiple file systems, amongst other duties. > If you can be bothered trolling for that entire series of blog posts > in the google cache, it's probably a good idea so you can get a > basic understanding of what WAFL actually is. It's never a bother to learn something new. :) >> When exposing LUNs from the same filer to FC and iSCSI hosts I would >> assume the filer acts just as any other SAN controller would. > > It has it's own quirks, just like any other FC attached RAID array... > >> In this case I would think you'd probably still want to align your >> XFS filesystem to the underlying RAID stripe from which the LUN >> was carved. > > Which actually matters very little when WAFL between the FS and the > disk because WAFL uses copy-on-write and stages all it's writes > through NVRAM and so you've got no idea what the alignment of any > given address in the filesystem maps to, anyway. Is the NetApp FC/iSCSI attachment performance still competitive for large file/streaming IO, given that one can't optimize XFS stripe alignment, and with no indication of where the file fragments are actually written on the media? Or does it lag behind something like a roughly equivalent class Infinite Storage array, or IBM DS? -- Stan From stan@hardwarefreak.com Sun Jul 24 01:30:30 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6O6UTFp195359 for ; Sun, 24 Jul 2011 01:30:29 -0500 X-ASG-Debug-ID: 1311489028-6fb100fc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C52821D8D329 for ; Sat, 23 Jul 2011 23:30:28 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id nemg8IEG2ph3WAPQ for ; Sat, 23 Jul 2011 23:30:28 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id B7A756C0F0; Sun, 24 Jul 2011 01:30:27 -0500 (CDT) Message-ID: <4E2BBC00.50902@hardwarefreak.com> Date: Sun, 24 Jul 2011 01:30:24 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Emmanuel Florac CC: Lee Eric , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan References: <20110723113027.162de009@galadriel.home> In-Reply-To: <20110723113027.162de009@galadriel.home> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311489028 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69820 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/23/2011 4:30 AM, Emmanuel Florac wrote: > Le Wed, 20 Jul 2011 22:03:33 +0800 vous écriviez: > >> I know it would be better if I can use Lustre but my interconnection >> is a little slow. I suspect if it is feasible if using such parallel >> file system. >> >> Does anyone has good idea on this deployment? >> > > For this kind of setup, true cluster filesystems like Lustre, > PVFS2/OrangeFS, Gluster, Ceph... would be much better. Striping 20 > iSCSI volumes across would be awfully dangerous. > > I'd go with OrangeFS (pvfs.org) because I'm pretty happy with it so far > (using XFS as the underlying local filesystem). It's precisely made to > agreggate computing clusters storage. Typically one starts looking at hardware solutions after identifying the needs of the target application/workload. Is the proposed storage cluster system simply a proof of concept testbed, or will it actually be tasked with real work? If the latter I'd rethink your iSCSI export to NFS server idea. You mentioned only 8 disks. Just drop them directly into the NFS host and avoid many potential headaches down the road. -- Stan From maciej.rutecki@gmail.com Sun Jul 24 02:14:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6O7EB21196655 for ; Sun, 24 Jul 2011 02:14:12 -0500 X-ASG-Debug-ID: 1311491649-2fdd01cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0834D12F1B20; Sun, 24 Jul 2011 00:14:09 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id mFlLQByEQHSA6kiC; Sun, 24 Jul 2011 00:14:09 -0700 (PDT) Received: by fxg11 with SMTP id 11so7379114fxg.6 for ; Sun, 24 Jul 2011 00:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:reply-to:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=LKv1yvz1zwY/J7UyoQyCCRXmxQHRIJCLQVzgoFD2etU=; b=n9ShexPIJn9XRmK9k/OlKskCSuY96Klu7T/E1hHvn/SlFnmuJMcNs09iU+5ed7IySu LBiIhoGE9X7sms1XdVuZc9cBwMKWjXsczRXjK0njQfWQCFP/2LnwcAV6/9IQds/c/Pvr Bk+7SOnBz5u8jiWJvvaooSbqJfDSlOAnMuFpA= Received: by 10.223.144.145 with SMTP id z17mr4456565fau.57.1311491648539; Sun, 24 Jul 2011 00:14:08 -0700 (PDT) Received: from gumis.localnet (89-73-14-87.dynamic.chello.pl [89.73.14.87]) by mx.google.com with ESMTPS id j19sm3036001faa.17.2011.07.24.00.14.06 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 24 Jul 2011 00:14:06 -0700 (PDT) From: Maciej Rutecki Reply-To: maciej.rutecki@gmail.com To: =?iso-8859-1?q?T=F6r=F6k_Edwin?= X-ASG-Orig-Subj: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Date: Sun, 24 Jul 2011 09:14:03 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc4; KDE/4.6.4; i686; ; ) Cc: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List References: <4E289228.4000208@gmail.com> In-Reply-To: <4E289228.4000208@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <201107240914.04145.maciej.rutecki@gmail.com> X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311491651 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0208 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69823 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On czwartek, 21 lipca 2011 o 22:55:04 T=F6r=F6k Edwin wrote: > Hi, >=20 > Just got this BUG in my dmesg: > [47504.938446] BUG: unable to handle kernel paging request at > ffff884058ec3270 [47504.938488] IP: [] [...] 2.6.39 works OK?. It is regression? Regards =2D-=20 Maciej Rutecki http://www.maciek.unixy.pl From michael.monnerie@is.it-management.at Sun Jul 24 03:47:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6O8lPqV199827 for ; Sun, 24 Jul 2011 03:47:26 -0500 X-ASG-Debug-ID: 1311497242-268302d20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailsrv14.zmi.at (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 92D98914BA for ; Sun, 24 Jul 2011 01:47:22 -0700 (PDT) Received: from mailsrv14.zmi.at (mailsrv14.zmi.at [212.69.164.54]) by cuda.sgi.com with ESMTP id 6mM3y5y0K0DnRvtW for ; Sun, 24 Jul 2011 01:47:22 -0700 (PDT) Received: from mailsrv.i.zmi.at (h081217106033.dyn.cm.kabsi.at [81.217.106.33]) (using TLSv1 with cipher DHE-RSA-CAMELLIA256-SHA (256/256 bits)) (Client CN "mailsrv2.i.zmi.at", Issuer "power4u.zmi.at" (not verified)) by mailsrv14.zmi.at (Postfix) with ESMTPSA id 2D76A41D; Sun, 24 Jul 2011 10:47:21 +0200 (CEST) Received: from saturn.localnet (saturn.i.zmi.at [10.72.27.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by mailsrv.i.zmi.at (Postfix) with ESMTPSA id 3E493401C3D; Sun, 24 Jul 2011 10:47:20 +0200 (CEST) From: Michael Monnerie Organization: it-management http://it-management.at To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 30 TB RAID6 + XFS slow write performance Subject: Re: 30 TB RAID6 + XFS slow write performance Date: Sun, 24 Jul 2011 10:47:14 +0200 User-Agent: KMail/1.13.6 (Linux/2.6.39.1-zmi; KDE/4.6.0; x86_64; ; ) Cc: Stan Hoeppner , Dave Chinner , John Bokma References: <4E24907F.6020903@johnbokma.com> <20110722231040.GD13963@dastard> <4E2BB859.1050200@hardwarefreak.com> In-Reply-To: <4E2BB859.1050200@hardwarefreak.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="nextPart11608949.DTXs0jgHZ8"; protocol="application/pgp-signature"; micalg=pgp-sha1 Content-Transfer-Encoding: 7bit Message-Id: <201107241047.19745@zmi.at> X-Barracuda-Connect: mailsrv14.zmi.at[212.69.164.54] X-Barracuda-Start-Time: 1311497243 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69828 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --nextPart11608949.DTXs0jgHZ8 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable On Sonntag, 24. Juli 2011 Stan Hoeppner wrote: > Is the NetApp FC/iSCSI attachment performance still competitive for > large file/streaming IO, given that one can't optimize XFS stripe > alignment, and with no indication of where the file fragments are > actually written on the media? Or does it lag behind something like > a roughly equivalent class Infinite Storage array, or IBM DS? I can't tell about performance difference. But I'd like to explain two=20 fundamental differences to all other storages: 1) WAFL *never* overwrites an existing block. Whenver there's a write to=20 an existing block, that block is instead written to a new location,=20 afterwards the old block mapped to the new one. This is a key factor to=20 keeping performance up when using snapshots and deduplication. 2) WAFL never does small or random writes. All writes are collected in=20 NVRAM, and then written as one large sequential write, always one full=20 stripe is written. That means for workloads with lots of small random writes, NetApp=20 storages beat the hell out of the disks, compared to other storages. I can't tell for large seq. writes, though, I don't have such workload. =2D-=20 mit freundlichen Gr=FCssen, Michael Monnerie, Ing. BSc it-management Internet Services: Prot=E9ger http://proteger.at [gesprochen: Prot-e-schee] Tel: +43 660 / 415 6531 // Haus zu verkaufen: http://zmi.at/langegg/ --nextPart11608949.DTXs0jgHZ8 Content-Type: application/pgp-signature; name=signature.asc Content-Description: This is a digitally signed message part. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iEYEABECAAYFAk4r3BcACgkQzhSR9xwSCbRVyACcCpU4gtuSkBzlG03EvgBpNQEa ftAAoOKdKHdugUNpvfMoRsKfunJzaApS =kyZP -----END PGP SIGNATURE----- --nextPart11608949.DTXs0jgHZ8-- From edwintorok@gmail.com Sun Jul 24 06:06:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_41,J_CHICKENPOX_52,J_CHICKENPOX_75,MIME_8BIT_HEADER, T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OB6BZu204785 for ; Sun, 24 Jul 2011 06:06:11 -0500 X-ASG-Debug-ID: 1311505567-5e6500dc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EF9CA12F24D5; Sun, 24 Jul 2011 04:06:08 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 4zu7ktxfeaUDahxr; Sun, 24 Jul 2011 04:06:08 -0700 (PDT) Received: by fxg11 with SMTP id 11so7527372fxg.6 for ; Sun, 24 Jul 2011 04:06:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:x-enigmail-version:content-type; bh=XsWFcHk2EqTIIEXm6bzCnkQd4QLmSqpoPFKevw2GI7A=; b=WTyoaBc7quRvLJZosFKBbPMJruQZpA96pnBhRdJDE5PyaL1x+Z+XAWD7Pu9FsxH967 aRxZkf8j4IpvzRFqaROlIDbZOTGBCIZMOzSfT2ek8DHN68XPC43l5P9xUZS1CcUc7Ynx oMqSkcLlCAiv4LWaoCp71l2BqJGbL6bnPpP4s= Received: by 10.223.69.65 with SMTP id y1mr5073646fai.60.1311505567458; Sun, 24 Jul 2011 04:06:07 -0700 (PDT) Received: from [192.168.1.101] ([79.114.81.201]) by mx.google.com with ESMTPS id w15sm3131952faj.23.2011.07.24.04.06.05 (version=SSLv3 cipher=OTHER); Sun, 24 Jul 2011 04:06:06 -0700 (PDT) Message-ID: <4E2BFC9C.3060902@gmail.com> Date: Sun, 24 Jul 2011 14:06:04 +0300 From: =?ISO-8859-1?Q?T=F6r=F6k_Edwin?= User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.18) Gecko/20110626 Icedove/3.1.11 MIME-Version: 1.0 To: maciej.rutecki@gmail.com CC: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page References: <4E289228.4000208@gmail.com> <201107240914.04145.maciej.rutecki@gmail.com> In-Reply-To: <201107240914.04145.maciej.rutecki@gmail.com> X-Enigmail-Version: 1.1.2 Content-Type: multipart/mixed; boundary="------------070707050002040803000702" X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311505569 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. --------------070707050002040803000702 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit On 07/24/2011 10:14 AM, Maciej Rutecki wrote: > On czwartek, 21 lipca 2011 o 22:55:04 Török Edwin wrote: >> Hi, >> >> Just got this BUG in my dmesg: >> [47504.938446] BUG: unable to handle kernel paging request at >> ffff884058ec3270 [47504.938488] IP: [] > [...] > > 2.6.39 works OK?. It is regression? I don't know, I was not able to reproduce the bug on 3.0 either. Either the bug was fixed between 3.0-rc7 and 3.0, or it is very hard to reproduce. I tried with the attached test program (which creates a mess^H some files in the current directory, performs I/O and dumps core from 2 processes in parallel.). All I got was 2 hung kernel threads for 2m+ in xfs_evict_inode + xfs_file_sync, trigerring the hung_check timer and NMI backtraces, and the process was unkillable (by kill -9) for a while. It eventually recovered though, and its not surprising that this happened : the test program generated 100Mb/s - 500Mb/s I/O. I'll have to see if I can reproduce the BUG with 3.0-rc7. Although I don't see any XFS changes between 3.0-rc7 and 3.0 there were some RCU fixes to core VFS code. Best regards, --Edwin --------------070707050002040803000702 Content-Type: text/x-csrc; name="alloc4.c" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="alloc4.c" #include #include #include #include #include #include #include void alloc_and_die(void) { uint64_t i; uint64_t n = 4*1024*1024*1024ll; char *x = malloc(n); printf("touching pages\n"); /* touch each page once */ for (i=0;i 10*1024*1024ll) { counter++; if (counter%2) { fsync(fd); lseek(fd, 0, SEEK_SET); } else { unlink(fname); close(fd); strncpy(fname, "iothreadXXXXXX", sizeof(fname)); fd = mkstemp(fname); if (fd == -1) { perror("mkstemp"); abort(); } } for (i=0;i; Sun, 24 Jul 2011 06:16:50 -0500 X-ASG-Debug-ID: 1311506204-695f015c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B7CEF1E6A669 for ; Sun, 24 Jul 2011 04:16:44 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BHzQwmCBv0QeSd6B for ; Sun, 24 Jul 2011 04:16:44 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkwfa-00049A-4b; Sun, 24 Jul 2011 11:16:26 +0000 Date: Sun, 24 Jul 2011 07:16:26 -0400 From: Christoph Hellwig To: Markus Trippelsdorf Cc: Josef Bacik , linux-fsdevel@vger.kernel.org, hch@infradead.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110724111625.GA12658@infradead.org> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110723220212.GA1648@x4.trippels.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311506204 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69838 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 12:02:12AM +0200, Markus Trippelsdorf wrote: > The following patch fixes the problem for me: Good catch, can you send it with a proper signoff and description? > > diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c > index cca00f4..2e23e3d 100644 > --- a/fs/xfs/linux-2.6/xfs_file.c > +++ b/fs/xfs/linux-2.6/xfs_file.c > @@ -881,11 +881,14 @@ xfs_file_aio_write( > /* Handle various SYNC-type writes */ > if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { > loff_t end = pos + ret - 1; > + int error; > > xfs_rw_iunlock(ip, iolock); > - ret = -xfs_file_fsync(file, pos, end, > + error = -xfs_file_fsync(file, pos, end, > (file->f_flags & __O_SYNC) ? 0 : 1); In addition xfs_file_fsync actually returns a normal negative error, but that bug already existed before the fsync prototype change. If you resend the patch, can you fix it as well? > xfs_rw_ilock(ip, iolock); > + if (error) > + ret = error; > } From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:20:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBKPZO205252 for ; Sun, 24 Jul 2011 06:20:26 -0500 X-ASG-Debug-ID: 1311506424-5bb0014e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 068B61358586 for ; Sun, 24 Jul 2011 04:20:24 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id o7kGLuYrC5BuCI9A for ; Sun, 24 Jul 2011 04:20:24 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkwjP-0004yn-Sy for xfs@oss.sgi.com; Sun, 24 Jul 2011 11:20:23 +0000 Date: Sun, 24 Jul 2011 07:20:23 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfstests: fix fsx build with the new xfs headers Subject: [PATCH] xfstests: fix fsx build with the new xfs headers Message-ID: <20110724112023.GA16125@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311506425 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The libxfs resync brought in a new round_up macro that conflicts with the round_up function in fsx. Rename the latter to allow building against the new headers. Signed-off-by: Christoph Hellwig Index: xfstests-dev/ltp/fsx.c =================================================================== --- xfstests-dev.orig/ltp/fsx.c 2011-07-23 14:27:27.000000000 +0000 +++ xfstests-dev/ltp/fsx.c 2011-07-23 14:28:10.000000000 +0000 @@ -165,7 +165,7 @@ FILE * fsxlogf = NULL; int badoff = -1; int closeopen = 0; -static void *round_up(void *ptr, unsigned long align, unsigned long offset) +static void *round_ptr_up(void *ptr, unsigned long align, unsigned long offset) { unsigned long ret = (unsigned long)ptr; @@ -1570,10 +1570,10 @@ main(int argc, char **argv) for (i = 0; i < maxfilelen; i++) original_buf[i] = random() % 256; good_buf = (char *) malloc(maxfilelen + writebdy); - good_buf = round_up(good_buf, writebdy, 0); + good_buf = round_ptr_up(good_buf, writebdy, 0); memset(good_buf, '\0', maxfilelen); temp_buf = (char *) malloc(maxoplen + readbdy); - temp_buf = round_up(temp_buf, readbdy, 0); + temp_buf = round_ptr_up(temp_buf, readbdy, 0); memset(temp_buf, '\0', maxoplen); if (lite) { /* zero entire existing file */ ssize_t written; From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:30:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBUUwY205759 for ; Sun, 24 Jul 2011 06:30:30 -0500 X-ASG-Debug-ID: 1311507029-390903b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 13C3A180FB39; Sun, 24 Jul 2011 04:30:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BDcZzgzJYy2QQoPm; Sun, 24 Jul 2011 04:30:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkwtA-0006qX-AD; Sun, 24 Jul 2011 11:30:28 +0000 Date: Sun, 24 Jul 2011 07:30:28 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs: encapsulate a block of debug code Subject: Re: xfs: encapsulate a block of debug code Message-ID: <20110724113028.GA23267@infradead.org> References: <201107181814.p6IIEAZm028909@stout.americas.sgi.com> <20110719171028.GA31088@infradead.org> <1311104952.1964.24.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311104952.1964.24.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507030 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0014 1.0000 -2.0121 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.91 X-Barracuda-Spam-Status: No, SCORE=-1.91 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 19, 2011 at 02:49:12PM -0500, Alex Elder wrote: > What about xfs_da_blkinfo_onlychild_validate()? Sounds a bit clumsy, but given that I can't suggest a better one I'm fine with it. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:32:07 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBW7Vi205846 for ; Sun, 24 Jul 2011 06:32:07 -0500 X-ASG-Debug-ID: 1311507126-4bd8035f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D29DC916AF for ; Sun, 24 Jul 2011 04:32:06 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JHozvtekMw4eilZG for ; Sun, 24 Jul 2011 04:32:06 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkwue-0006r7-Eq; Sun, 24 Jul 2011 11:32:00 +0000 Date: Sun, 24 Jul 2011 07:32:00 -0400 From: Christoph Hellwig To: Mel Gorman Cc: Linux-MM , Rik van Riel , Jan Kara , LKML , XFS , Christoph Hellwig , Minchan Kim , Wu Fengguang , Johannes Weiner X-ASG-Orig-Subj: Re: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Subject: Re: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Message-ID: <20110724113200.GA26332@infradead.org> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-3-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-3-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507126 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:44PM +0100, Mel Gorman wrote: > --- a/fs/xfs/linux-2.6/xfs_aops.c > +++ b/fs/xfs/linux-2.6/xfs_aops.c > @@ -930,12 +930,13 @@ xfs_vm_writepage( > * random callers for direct reclaim or memcg reclaim. We explicitly > * allow reclaim from kswapd as the stack usage there is relatively low. > * > - * This should really be done by the core VM, but until that happens > - * filesystems like XFS, btrfs and ext4 have to take care of this > - * by themselves. > + * This should never happen except in the case of a VM regression so > + * warn about it. > */ > - if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) > + if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) { > + WARN_ON_ONCE(1); > goto redirty; The nicer way to write this is if (WARN_ON(current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) goto redirty; From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:35:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBZlFl205989 for ; Sun, 24 Jul 2011 06:35:48 -0500 X-ASG-Debug-ID: 1311507346-4bcd038c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1BE1791740; Sun, 24 Jul 2011 04:35:46 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id iGkYxejVVEatRZGJ; Sun, 24 Jul 2011 04:35:46 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkwyF-0007vg-Ki; Sun, 24 Jul 2011 11:35:43 +0000 Date: Sun, 24 Jul 2011 07:35:43 -0400 From: Christoph Hellwig To: Alex Elder Cc: Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Message-ID: <20110724113543.GB26332@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311363510.2771.103.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507347 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:38:30PM -0500, Alex Elder wrote: > > - (__psint_t)count), split); > > + xfs_buf_associate_memory(bp, > > + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > > + (__psint_t)count), split); > > If you just cast the address appropriately you can make this > look a lot nicer: > > xfs_buf_associate_memory(bp, > (void *) &iclog->ic_header + count, split); If we have to cast anyway I'd suggest casting to char * at least, as that is standard behaviour. I'm okay with using the gcc void pointer arithmetics extension when it saves us ugliness, but in this case it doesn't really buy us anything. Btw, nice follow-on cleanups would be to kill off the xfs_caddr_t and __psint_t/__psunsigned_t types entirely. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:37:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBbQJN206057 for ; Sun, 24 Jul 2011 06:37:26 -0500 X-ASG-Debug-ID: 1311507445-695f023a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id AE239180FE22; Sun, 24 Jul 2011 04:37:25 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id KiZTiT9qp2Bq3HJe; Sun, 24 Jul 2011 04:37:25 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkwzt-0007xz-0E; Sun, 24 Jul 2011 11:37:25 +0000 Date: Sun, 24 Jul 2011 07:37:24 -0400 From: Christoph Hellwig To: Alex Elder Cc: Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Message-ID: <20110724113724.GC26332@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311364181.2771.114.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507445 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:49:41PM -0500, Alex Elder wrote: > On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > > > Signed-off-by: Chandra Seetharaman > > Reviewed-by: Christoph Hellwig > > > Wow, I hadn't looked at the definition of > xfs_buf_target_name() before. It's not safe > (using a pointer to since-released stack space), > though in practice it's going to be fine. > > Defining it as an inline function with a static > buffer would at least avoid that, though it > means it's not reentrant either. IMHO the right fix is to just kill it off entirely. All XFS messages now have the filesystem name prefixed to them, and while we can have up to three devices, all these error messages can only hit either the main or the log device, and it's obvious from the context which one we did hit. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:40:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBe1DN206173 for ; Sun, 24 Jul 2011 06:40:01 -0500 X-ASG-Debug-ID: 1311507600-5e6301b20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEBD11358614 for ; Sun, 24 Jul 2011 04:40:00 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id D0vpNxgVFDgiluci for ; Sun, 24 Jul 2011 04:40:00 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkx2N-0007yO-Qv; Sun, 24 Jul 2011 11:39:59 +0000 Date: Sun, 24 Jul 2011 07:39:59 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Message-ID: <20110724113959.GD26332@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507600 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean > @@ -1247,6 +1247,7 @@ xlog_bdstrat( > { > struct xlog_in_core *iclog = bp->b_fspriv; > > + bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); I don't think this is correct, we set these before calling into xlog_bdstrat, so this means we'll always stip it off after that. Given that this area is more complicated than the pure macro removal how about letting it as-is for now? I have some bigger refactoring in this area in my queue, and I'll just incorporate the XFS_BUF_ZEROFLAGS into it. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:40:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBeslW206217 for ; Sun, 24 Jul 2011 06:40:54 -0500 X-ASG-Debug-ID: 1311507653-615d01660000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 81E03135861E for ; Sun, 24 Jul 2011 04:40:53 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id wiG39Lx3gtkCKw7l for ; Sun, 24 Jul 2011 04:40:53 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkx3E-0000JS-Ne; Sun, 24 Jul 2011 11:40:52 +0000 Date: Sun, 24 Jul 2011 07:40:52 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 03/12 v3] xfs: Remove the macro XFS_BUF_ERROR and family Subject: Re: [PATCH 03/12 v3] xfs: Remove the macro XFS_BUF_ERROR and family Message-ID: <20110724114052.GE26332@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233951.14612.3794.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722233951.14612.3794.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507653 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 04:39:51PM -0700, Chandra Seetharaman wrote: > Remove the definitions and usage of the macros XFS_BUF_ERROR, > XFS_BUF_GETERROR and XFS_BUF_ISERROR. Looks good to me, Reviewed-by: Christoph Hellwig From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:41:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBfKxS206239 for ; Sun, 24 Jul 2011 06:41:20 -0500 X-ASG-Debug-ID: 1311507679-4bd203af0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9E7CC9176B for ; Sun, 24 Jul 2011 04:41:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Z5lyyTIRD9W5kS6V for ; Sun, 24 Jul 2011 04:41:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkx3f-0000Jq-5c; Sun, 24 Jul 2011 11:41:19 +0000 Date: Sun, 24 Jul 2011 07:41:19 -0400 From: Christoph Hellwig To: Chandra Seetharaman Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 10/12 v3] xfs: Remove the macro XFS_BUF_SET_TARGET Subject: Re: [PATCH 10/12 v3] xfs: Remove the macro XFS_BUF_SET_TARGET Message-ID: <20110724114119.GF26332@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722234033.14612.80261.sendpatchset@chandra-lucid.beaverton.ibm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722234033.14612.80261.sendpatchset@chandra-lucid.beaverton.ibm.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507679 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 04:40:33PM -0700, Chandra Seetharaman wrote: > Remove the macro XFS_BUF_SET_TARGET. > > hch: As all the buffer allocator already set ->b_target it should be safe > to simply remove these calls. > > Signed-off-by: Chandra Seetharaman > Reviewed-by: Alex Elder Looks good to me, Reviewed-by: Christoph Hellwig From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:42:41 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBgfXh206297 for ; Sun, 24 Jul 2011 06:42:41 -0500 X-ASG-Debug-ID: 1311507760-4bcd03bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 171309176F for ; Sun, 24 Jul 2011 04:42:40 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id yDtfHHZbFR7cSSze for ; Sun, 24 Jul 2011 04:42:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qkx4t-0000KG-Ua; Sun, 24 Jul 2011 11:42:35 +0000 Date: Sun, 24 Jul 2011 07:42:35 -0400 From: Christoph Hellwig To: Markus Trippelsdorf Cc: jack@suse.cz, linux-kernel@vger.kernel.org, xfs@oss.sgi.com, hch@infradead.org, viro@zeniv.linux.org.uk, linux-fsdevel@vger.kernel.org, Josef Bacik X-ASG-Orig-Subj: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Subject: Re: [PATCH] fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Message-ID: <20110724114235.GG26332@infradead.org> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724111625.GA12658@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311507761 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69839 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 07:16:26AM -0400, Christoph Hellwig wrote: > On Sun, Jul 24, 2011 at 12:02:12AM +0200, Markus Trippelsdorf wrote: > > The following patch fixes the problem for me: > > Good catch, can you send it with a proper signoff and description? This also fixes the xfstests 130 regression that popped up in latest Linus HEAD. Good to know we have some QA coverage for O_SYNC writes, althoug I wish it would be more than just one testcase.. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 06:58:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBw1F6206950 for ; Sun, 24 Jul 2011 06:58:02 -0500 X-ASG-Debug-ID: 1311508680-3cd2006b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 439BF91874 for ; Sun, 24 Jul 2011 04:58:00 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id pTq5Mpb7FAnL1nde for ; Sun, 24 Jul 2011 04:58:00 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkxJg-0002vS-63; Sun, 24 Jul 2011 11:57:52 +0000 Date: Sun, 24 Jul 2011 07:57:52 -0400 From: Christoph Hellwig To: Markus Trippelsdorf Cc: Christoph Hellwig , Josef Bacik , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Subject: Re: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Message-ID: <20110724115752.GA11048@infradead.org> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> <20110724115420.GA1626@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724115420.GA1626@x4.trippels.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311508681 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 01:54:20PM +0200, Markus Trippelsdorf wrote: > On 2011.07.24 at 07:16 -0400, Christoph Hellwig wrote: > > On Sun, Jul 24, 2011 at 12:02:12AM +0200, Markus Trippelsdorf wrote: > > > The following patch fixes the problem for me: > > > > Good catch, can you send it with a proper signoff and description? > > The fsync prototype change commit 02c24a82187d accidentally overwrote > the ssize_t return value of xfs_file_aio_write with 0 for SYNC type > writes. Fix this by checking if an error occured when calling > xfs_file_fsync and only change the return value in this case. > In addition xfs_file_fsync actually returns a normal negative error, so > fix this, too. > --- > fs/xfs/linux-2.6/xfs_file.c | 5 ++++- > 1 files changed, 4 insertions(+), 1 deletions(-) The Signed-off-by: line is still missing, and you normally shouldn't quote the previous mail you reply to for patches. Sorry for beeing nit-picky, but see this as a training exercise :) You can also add: Reviewed-by: Christoph Hellwig Tested-by: Christoph Hellwig as I've run this through xfsqa (strictly speaking it's still running, but it looks good so far) From markus@trippelsdorf.de Sun Jul 24 06:58:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OBwSSp206979 for ; Sun, 24 Jul 2011 06:58:29 -0500 X-ASG-Debug-ID: 1311508707-2a5000680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6419C1BA4EB5 for ; Sun, 24 Jul 2011 04:58:27 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id cGDtRjTLMxiK4gyQ for ; Sun, 24 Jul 2011 04:58:27 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=uaFPWxZXelWEMYe9 zVguuBXpKyM0jVTBSz8JFonzlwo=; b=UgMYeQVnHkChfWoWE/XgsjkmTHJu/Af8 mgPKw6Wha+MASFBJRab0jaH8wOHr3fgI6n84cN3mOkSZ5jjFvGjAaOH0cWoouOJM xzdBLqA2gpCxs3spWEUCWue0y+XvcwG1Im8mmozlKO8/wW1SYYOyTb10DWQBqXQ4 /qBIqYCCfV0= Received: (qmail 3959 invoked from network); 24 Jul 2011 13:58:26 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 24 Jul 2011 13:58:26 +0200 Date: Sun, 24 Jul 2011 13:58:26 +0200 From: Markus Trippelsdorf To: Christoph Hellwig Cc: Josef Bacik , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v2] xfs: Fix wrong return value of xfs_file_aio_write Subject: Re: [PATCH v2] xfs: Fix wrong return value of xfs_file_aio_write Message-ID: <20110724115826.GB1626@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> <20110724115420.GA1626@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724115420.GA1626@x4.trippels.de> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311508708 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean (This time with with a proper signoff.) The fsync prototype change commit 02c24a82187d accidentally overwrote the ssize_t return value of xfs_file_aio_write with 0 for SYNC type writes. Fix this by checking if an error occured when calling xfs_file_fsync and only change the return value in this case. In addition xfs_file_fsync actually returns a normal negative error, so fix this, too. Signed-off-by: Markus Trippelsdorf --- fs/xfs/linux-2.6/xfs_file.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index cca00f4..825390e 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -881,11 +881,14 @@ xfs_file_aio_write( /* Handle various SYNC-type writes */ if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { loff_t end = pos + ret - 1; + int error; xfs_rw_iunlock(ip, iolock); - ret = -xfs_file_fsync(file, pos, end, + error = xfs_file_fsync(file, pos, end, (file->f_flags & __O_SYNC) ? 0 : 1); xfs_rw_ilock(ip, iolock); + if (error) + ret = error; } out_unlock: -- Markus From markus@trippelsdorf.de Sun Jul 24 07:03:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OC3Xng207129 for ; Sun, 24 Jul 2011 07:03:33 -0500 X-ASG-Debug-ID: 1311509011-6c9002d40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9EB6E1BA4ED2 for ; Sun, 24 Jul 2011 05:03:31 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id t06ry2xRKaquwlNe for ; Sun, 24 Jul 2011 05:03:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=b+pJNKtkqv0XdKrd hEBCOMsaV4KLfoogdcomEScVhLY=; b=sG4FtYaQFqIt36cF63f5U7TbKIHJMWMR KtDDI4TI0wQ31P8UihQaEh9LDxFhq33iJ2OE/ipI0hEi+BKAWJTWL+LNJLpL1WOj 0z4m21c2YMv6CPWsF0ShwoKycLfVdJ50cB6+Zh6p6QlQer/y8y++piEUdx6zDuBs E6FmUZx6f7A= Received: (qmail 4985 invoked from network); 24 Jul 2011 14:03:30 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 24 Jul 2011 14:03:30 +0200 Date: Sun, 24 Jul 2011 14:03:30 +0200 From: Markus Trippelsdorf To: Christoph Hellwig Cc: Josef Bacik , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Subject: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Message-ID: <20110724120330.GC1626@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> <20110724115420.GA1626@x4.trippels.de> <20110724115826.GB1626@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724115826.GB1626@x4.trippels.de> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311509012 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The fsync prototype change commit 02c24a82187d accidentally overwrote the ssize_t return value of xfs_file_aio_write with 0 for SYNC type writes. Fix this by checking if an error occured when calling xfs_file_fsync and only change the return value in this case. In addition xfs_file_fsync actually returns a normal negative error, so fix this, too. Signed-off-by: Markus Trippelsdorf Reviewed-by: Christoph Hellwig Tested-by: Christoph Hellwig --- fs/xfs/linux-2.6/xfs_file.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index cca00f4..825390e 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -881,11 +881,14 @@ xfs_file_aio_write( /* Handle various SYNC-type writes */ if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { loff_t end = pos + ret - 1; + int error; xfs_rw_iunlock(ip, iolock); - ret = -xfs_file_fsync(file, pos, end, + error = xfs_file_fsync(file, pos, end, (file->f_flags & __O_SYNC) ? 0 : 1); xfs_rw_ilock(ip, iolock); + if (error) + ret = error; } out_unlock: -- Markus From markus@trippelsdorf.de Sun Jul 24 07:11:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OCBgLX207335 for ; Sun, 24 Jul 2011 07:11:42 -0500 X-ASG-Debug-ID: 1311508464-2678007d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 98A73181025A for ; Sun, 24 Jul 2011 04:54:25 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id gKurMrngDajIPcyf for ; Sun, 24 Jul 2011 04:54:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=8xn5nN+qIntlVPAA wBfPVHCjpnVWGHG2Kmvu2rIXn0c=; b=Y9QdvmunIbhrLn6PEePRI9A8Y0GD9JmD PdYApzNpUpbdymZuwC6W4qw5QQjRCnyI8cwo5WDRh/hVVRrObCljZ6IuGnZueiGG gd7TdDirZytsokIaYDtaJctFl9jkaRmJXrQybNetbce0smG1dzcrP3iK4VCY8Ipz qamghYKTcjI= Received: (qmail 2958 invoked from network); 24 Jul 2011 13:54:24 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 24 Jul 2011 13:54:24 +0200 Date: Sun, 24 Jul 2011 13:54:20 +0200 From: Markus Trippelsdorf To: Christoph Hellwig Cc: Josef Bacik , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Subject: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Message-ID: <20110724115420.GA1626@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724111625.GA12658@infradead.org> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311508465 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.07.24 at 07:16 -0400, Christoph Hellwig wrote: > On Sun, Jul 24, 2011 at 12:02:12AM +0200, Markus Trippelsdorf wrote: > > The following patch fixes the problem for me: > > Good catch, can you send it with a proper signoff and description? The fsync prototype change commit 02c24a82187d accidentally overwrote the ssize_t return value of xfs_file_aio_write with 0 for SYNC type writes. Fix this by checking if an error occured when calling xfs_file_fsync and only change the return value in this case. In addition xfs_file_fsync actually returns a normal negative error, so fix this, too. --- fs/xfs/linux-2.6/xfs_file.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_file.c b/fs/xfs/linux-2.6/xfs_file.c index cca00f4..825390e 100644 --- a/fs/xfs/linux-2.6/xfs_file.c +++ b/fs/xfs/linux-2.6/xfs_file.c @@ -881,11 +881,14 @@ xfs_file_aio_write( /* Handle various SYNC-type writes */ if ((file->f_flags & O_DSYNC) || IS_SYNC(inode)) { loff_t end = pos + ret - 1; + int error; xfs_rw_iunlock(ip, iolock); - ret = -xfs_file_fsync(file, pos, end, + error = xfs_file_fsync(file, pos, end, (file->f_flags & __O_SYNC) ? 0 : 1); xfs_rw_ilock(ip, iolock); + if (error) + ret = error; } out_unlock: -- Markus From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 07:11:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OCBvbO207352 for ; Sun, 24 Jul 2011 07:11:57 -0500 X-ASG-Debug-ID: 1311509516-388901390000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 11912918EF for ; Sun, 24 Jul 2011 05:11:56 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id PZF36xRTCLyPUPmE for ; Sun, 24 Jul 2011 05:11:56 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkxXD-0005hK-DJ; Sun, 24 Jul 2011 12:11:51 +0000 Date: Sun, 24 Jul 2011 08:11:51 -0400 From: Christoph Hellwig To: Markus Trippelsdorf Cc: Christoph Hellwig , Josef Bacik , linux-fsdevel@vger.kernel.org, viro@zeniv.linux.org.uk, jack@suse.cz, linux-kernel@vger.kernel.org, Dave Chinner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Subject: Re: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write Message-ID: <20110724121151.GA21871@infradead.org> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> <20110724115420.GA1626@x4.trippels.de> <20110724115826.GB1626@x4.trippels.de> <20110724120330.GC1626@x4.trippels.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110724120330.GC1626@x4.trippels.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311509517 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looks perfect, thanks a lot ! From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 07:17:17 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OCHHLf207543 for ; Sun, 24 Jul 2011 07:17:17 -0500 X-ASG-Debug-ID: 1311509835-388b016b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B566E915E0; Sun, 24 Jul 2011 05:17:15 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id t2SKzHJAaGYW0Aax; Sun, 24 Jul 2011 05:17:15 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QkxcQ-0006cA-BV; Sun, 24 Jul 2011 12:17:14 +0000 Date: Sun, 24 Jul 2011 08:17:14 -0400 From: Christoph Hellwig To: T?r?k Edwin Cc: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Message-ID: <20110724121714.GA22065@infradead.org> References: <4E289228.4000208@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E289228.4000208@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311509835 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69842 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 11:55:04PM +0300, T?r?k Edwin wrote: > Not sure what the BUG means: did XFS ran out of memory when trying to write the 4GB coredump, as it wanted to allocate an extra 4G temporarely to hold it? > It means we dereferenced an invalid pointer in xfs_is_delayed_page, which is called from the writeback code, which is pretty odd. We haven't really touched that particular piece of code for a long time, and it really doesn't derefence many pointers, basically just page->mapping, page->private and the flags and b_this_page fields in the buffer head. From BATV+100ef63e218808189c78+2891+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 24 07:41:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_47 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OCfvwR208560 for ; Sun, 24 Jul 2011 07:41:57 -0500 X-ASG-Debug-ID: 1311511316-268d016a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E06211E6A6DB for ; Sun, 24 Jul 2011 05:41:56 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 8wmytvYacXjLdHMc for ; Sun, 24 Jul 2011 05:41:56 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qky0H-0002Hh-Fm; Sun, 24 Jul 2011 12:41:53 +0000 Date: Sun, 24 Jul 2011 08:41:53 -0400 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Subject: Re: [PATCH] xfstests: fix modulo-by-zero error in fsx Message-ID: <20110724124153.GA5735@infradead.org> References: <1311047353-23925-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311047353-23925-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311511316 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0170 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69844 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean I still get fairly regular 091 failures on my 32-bit userspace VM after this. The interesting thing is that fsx tells we have a mismatch of the junk vs junk.fsxgood files, but when looking at them using diff or cmp they actually are identical. From maciej.rutecki@gmail.com Sun Jul 24 13:55:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MIME_8BIT_HEADER,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6OItgEm218864 for ; Sun, 24 Jul 2011 13:55:42 -0500 X-ASG-Debug-ID: 1311533739-01b000190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 240401EED918; Sun, 24 Jul 2011 11:55:39 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id 3XxClrs7hYW3QDSB; Sun, 24 Jul 2011 11:55:39 -0700 (PDT) Received: by fxg11 with SMTP id 11so7898411fxg.6 for ; Sun, 24 Jul 2011 11:55:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:reply-to:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=JQX9xuwGBOQuXIAN7fe+QBZ0va9j/n1SQQWMynZ4RXM=; b=MPi0viemRjSmlpWb5x6JwJ/YynwQt43HzKnvhIttj4LGe5PpDklqkW4WQHaJkeKA6t SM+KrvOBcO6w7qMY5l6IeUUszEaXN2sdsdvCSeS0auyf6tyZqOdHJKKvfWm12d19ijeu KdTH+HvEqp+/211f0E4UdTlVZteK6lolqfbSY= Received: by 10.223.71.194 with SMTP id i2mr3666418faj.42.1311533739306; Sun, 24 Jul 2011 11:55:39 -0700 (PDT) Received: from gumis.localnet (89-73-14-87.dynamic.chello.pl [89.73.14.87]) by mx.google.com with ESMTPS id j19sm3350448faa.41.2011.07.24.11.55.37 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 24 Jul 2011 11:55:38 -0700 (PDT) From: Maciej Rutecki Reply-To: maciej.rutecki@gmail.com To: =?iso-8859-1?q?T=F6r=F6k_Edwin?= X-ASG-Orig-Subj: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Date: Sun, 24 Jul 2011 20:55:36 +0200 User-Agent: KMail/1.13.7 (Linux/3.0.0-rc4; KDE/4.6.4; i686; ; ) Cc: xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List References: <4E289228.4000208@gmail.com> <201107240914.04145.maciej.rutecki@gmail.com> <4E2BFC9C.3060902@gmail.com> In-Reply-To: <4E2BFC9C.3060902@gmail.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Message-Id: <201107242055.36446.maciej.rutecki@gmail.com> X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311533741 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.01 X-Barracuda-Spam-Status: No, SCORE=-2.01 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69869 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On niedziela, 24 lipca 2011 o 13:06:04 T=F6r=F6k Edwin wrote: > On 07/24/2011 10:14 AM, Maciej Rutecki wrote: > > On czwartek, 21 lipca 2011 o 22:55:04 T=F6r=F6k Edwin wrote: > >> Hi, > >>=20 > >> Just got this BUG in my dmesg: > >> [47504.938446] BUG: unable to handle kernel paging request at > >> ffff884058ec3270 [47504.938488] IP: [] > >=20 > > [...] > >=20 > > 2.6.39 works OK?. It is regression? >=20 > I don't know, I was not able to reproduce the bug on 3.0 either. > Either the bug was fixed between 3.0-rc7 and 3.0, or it is very hard to > reproduce. Thanks for the information. When if you confirm that is regression please=20 report it (then I will create bug entry in bugzilla). Regards =2D-=20 Maciej Rutecki http://www.maciek.unixy.pl From test@hec.co.kr Sun Jul 24 22:33:27 2011 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6P3XNj6235589 for ; Sun, 24 Jul 2011 22:33:25 -0500 X-ASG-Debug-ID: 1311564718-228302570000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.hec.co.kr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A0A6EF00EEE for ; Sun, 24 Jul 2011 20:31:58 -0700 (PDT) Received: from mail.hec.co.kr (mail.hec.co.kr [112.175.225.100]) by cuda.sgi.com with ESMTP id L1b6wmybBYwGXds0 for ; Sun, 24 Jul 2011 20:31:58 -0700 (PDT) Received: from [112.175.225.112] ([112.175.225.112]) by mail.hec.co.kr ([112.175.225.100]) with ESMTP id 1311564709.304629.2939157392.mail for ; Mon, 25 Jul 2011 12:31:49 +0900 (KST) x-beehive-trace: test@hec.co.kr xfs@oss.sgi.com 117.21.220.59 Received: from hec.co.kr by oss.sgi.com with ESMTP (hec.co.kr) for xfs@oss.sgi.com; Mon, 25 Jul 2011 12:32:20 +0900 (KST) x-beehive-kind: normal x-beehive-modified: received kind Received: from kywjw ([183.39.185.78]) (envelope-sender <20110701@googlemail.com>) by 117.21.220.59 with ESMTP for ; Mon, 25 Jul 2011 11:31:12 +0800 Reply-To: Message-ID: <15E370E1867FDC5B84A2372E610003F4@kywjw> From: "spleg" <20110701@googlemail.com> To: X-ASG-Orig-Subj: All the blessings Subject: All the blessings X-TERRACE-DUMMYSUBJECT: Terrace Spam system * Date: Thu, 25 Aug 2011 11:27:32 +0800 MIME-Version: 1.0 Content-Type: multipart/related; type="multipart/alternative"; boundary="----=_NextPart_000_0F3B_016DE9EB.15485340" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5512 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 Sender: "spleg" <20110701@googlemail.com> X-TERRACE-SPAMMARK: NOT spam-marked. (by Terrace) X-TERRACE-SCANRST: Terrace Spam system X-Barracuda-Connect: mail.hec.co.kr[112.175.225.100] X-Barracuda-Start-Time: 1311564800 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_000_0F3B_016DE9EB.15485340 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgaHR0cC1lcXVpdj1Db250ZW50LVR5cGUgY29udGVu dD0idGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04Ij4NCjxNRVRBIGNvbnRlbnQ9Ik1TSFRNTCA2LjAw LjM3OTAuMzk1OSIgbmFtZT1HRU5FUkFUT1I+PC9IRUFEPg0KPEJPRFk+DQo8UD5EZWFyIFNpci9N YWRhbSw8QlI+Jm5ic3A7PEJSPkRvIHlvdSBuZWVkIHByb2R1Y3QgZnJvbSBDaGluYSB3aXRoIGdv b2QgcXVhbGl0eSANCiZhbXA7IGJlc3QgcHJpY2U/IEFyZSB5b3UgbG9va2luZyBmb3IgZmFjdG9y aWVzIGZyb20gQ2hpbmEgdGhhdCBjYW4gc3VwcG9ydCB5b3UgDQp3aXRoIHlvdXIgYnVzaW5lc3M/ PEJSPiZuYnNwOzxCUj5XZSBhcmUgQ2hpbmEgYmFzZWQgdHJhZGluZyBjb21wYW55LCBvdXIgbWFp biANCnByb2R1Y3RzIGFyZSBob3VzZXdhcmUsIGdpZnQgYm94L2JhZywgSmV3ZWxyeSBib3gsIEhv dGVsIGFydGljbGVzIGFuZCBvdGhlciANCnN0b2NrIGdvb2RzIGV0Yy4gV2UgcHJvdmlkZSBnb29k IHByaWNlIGFuZCBzZXJ2aWNlIHRvIGNsaWVudCBhbGwgb3ZlciB0aGUgd29ybGQuIA0KPEJSPlBs ZWFzZSBmZWVsIGZyZWUgdG8gY29udGFjdCB1cyBpZiB5b3UgbmVlZCBhbnkgc291cmNlcyBmcm9t IENoaW5hLjxCUj5XZSBhcmUgDQpleHBlY3RpbmcgdG8gc2V0IHVwIHN0YWJsZSBhbmQgbG9uZy10 ZXJtIGNvb3BlcmF0aW9uIHJlbGF0aW9uc2hpcCB3aXRoIHlvdSwgYW5kIA0KbG9va2luZyBmb3J3 YXJkIHRvIHNlcnZpbmcgeW91ITxCUj4mbmJzcDs8QlI+PElNRyBoZWlnaHQ9MjQ2IGFsdD0iIiBo c3BhY2U9MCANCnNyYz0iY2lkOjAwMDM3REVDNTAyMF8wQzJEQ0I4N18wRjFDNkMyQSIgd2lkdGg9 MzI1IGFsaWduPWJhc2VsaW5lIA0KYm9yZGVyPTA+Jm5ic3A7IDxJTUcgaGVpZ2h0PTMyMiBhbHQ9 IiIgaHNwYWNlPTAgDQpzcmM9ImNpZDowMDAzOEM3QUEzNkZfMEFBQ0JGM0ZfMEVCOEIxOUQiIHdp ZHRoPTIzNiBhbGlnbj1iYXNlbGluZSANCmJvcmRlcj0wPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNw OzwvUD4NCjxQPjxJTUcgaGVpZ2h0PTMyNiBhbHQ9IiIgaHNwYWNlPTAgc3JjPSJjaWQ6MDAwMEIy N0FBMDM2XzBDMTA0NjcxXzA5RDIxQzg4IiANCndpZHRoPTI0NiBhbGlnbj1iYXNlbGluZSBib3Jk ZXI9MD4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8SU1HIGhlaWdodD0yNDIgDQphbHQ9 IiIgaHNwYWNlPTAgc3JjPSJjaWQ6MDAwMkU1RkQ5Rjc5XzBENUYwNDNFXzAzMTVDMzQ0IiB3aWR0 aD0zMjEgDQphbGlnbj1iYXNlbGluZSBib3JkZXI9MD48QlI+PEJSPiZuYnNwOzxCUj5CZXN0IFJl Z2FyZHMsPEJSPkRvcmlzIExlZTxCUj5HZW5lcmFsIA0KTWFuZ2VyPEJSPlRlbC46IDg2LTc1NS0z Njk3IDcxOTc8QlI+RmF4Ojg2LTc1NS0yNjA1IDE3OTc8QlI+RW1haWw6IA0KaGtfc3BsZWdAeWFo b28uY29tLmNuPEJSPlNreXBlOiBkb3Jpc2FzYTxCUj5XZWJzaXRlOiB3d3cuc3BsZWcubmV0IA0K KHVwZGF0aW5nKTxCUj48L1A+PC9CT0RZPjwvSFRNTD4NCg== ------=_NextPart_000_0F3B_016DE9EB.15485340 Content-Type: image/jpeg; name="IMG_5914.JPG" Content-Transfer-Encoding: base64 Content-ID: <00037DEC5020_0C2DCB87_0F1C6C2A> /9j/4bLkRXhpZgAASUkqAAgAAAALAA8BAgARAAAAkgAAABABAgANAAAApAAAABIBAwABAAAAAQAA ABoBBQABAAAAsgAAABsBBQABAAAAugAAACgBAwABAAAAAgAAADEBAgAOAAAAwgAAADIBAgAUAAAA 0AAAABMCAwABAAAAAQAAAGmHBAABAAAAQAIAAKXEBwBcAQAA5AAAAOKlAABCZW5RIENvcnBvcmF0 aW9uAABCZW5RIERDIFQ4MDAAAEgAAAABAAAASAAAAAEAAABWICAxMDEuMjAuMDAAADIwMTE6MDY6 MzAgMDk6NTI6NDYAUHJpbnRJTQAwMzAwAAAhAAEAFgAWAAIAAQAAAAMA1gAAAAcAAAAAAAgAAAAA AAkAAAAAAAoAAAAAAAsAHgEAAAwAAAAAAA0AAAAAAA4ANgEAAAABBQAAAAEB/wAAAAIBgwAAAAMB gwAAAAQBgwAAAAUBgwAAAAYBgwAAAAcBg4ODABABgAAAAAACAAAAAAcCAAAAAAgCAAAAAAkCAAAA AAoCAAAAAAsCQgEAAA0CAAAAAAADBQAAAAED/wAAAAIDgwAAAAMDgwAAAAYDgwAAABADgAAAAAAA CREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAnAAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADL AwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAIQCaggUAAQAAANIDAACdggUAAQAAANoDAAAiiAMAAQAAAAIAAAAn iAMAAQAAAGQAAAAAkAcABAAAADAyMjADkAIAFAAAAOIDAAAEkAIAFAAAAPYDAAABkQcABAAAAAEC AwACkQUAAQAAAAoEAAAEkgoAAQAAABIEAAAFkgUAAQAAABoEAAAHkgMAAQAAAAUAAAAIkgMAAQAA AAAAAAAJkgMAAQAAABkAAAAKkgUAAQAAACIEAAB8kgcAAIAAACoEAACGkgcAkSEAACqEAAAAoAcA BAAAADAxMDABoAMAAQAAAAEAAAACoAQAAQAAAIACAAADoAQAAQAAAOABAAAFoAQAAQAAAMSlAAAB owcAAQAAAAEAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUAAQAAALyl AAAFpAMAAQAAACUAAAAGpAMAAQAAAAAAAAAIpAMAAQAAAAEAAAAJpAMAAQAAAAIAAAAKpAMAAQAA AAAAAAAMpAMAAQAAAAAAAAAAAAAAAQAAACgAAAAbAAAACgAAADIwMTE6MDY6MzAgMDk6NTI6NDYA MjAxMTowNjozMCAwOTo1Mjo0NgCIVA8AALAEAAAAAAADAAAAHQAAAAoAAAA+AAAACgAAAEFPQwBJ SQUAAQADAAEAAAAEAAAAAgADAAIAAABAAfAAAwAEAAEAAAB1ZQAABAAEAAEAAAAqBQAABQAEAAEA AACwKwEABgADAAEAAAAAAAAABwADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2P/bAIQAAgEBAQEBAgEBAQICAgIDBQMDAgIDBgQEAwUH BggHBwYHBwgJDAoICAsJBwcKDgoLDAwNDQ0ICg4PDg0PDA0NDQECAgIDAgMGAwMGDQgHCA0NDQ0N DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N/8QBogAAAQUBAQEB AQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +hEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaH 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 /9k4Ckgc+mBXyR8Uf2pviP8AEO/uDYXbeH9MlGxbSylOQo4AL9enpge1eZTy2GLxjxVT4Vol0dt3 6Pfzv9/s1cU8HhY0I/Ha78r6/keNXFxPczNPcSvK7H5nZiSfqTUeM4Ir6WMUloeE7y1Za1WPybyS 37QYT8h/jVTORzTu9GXK6lZiex70nvmhpMzsbelKmqaXcaVOcSW4M9pI3TP8cefccj3XH8VRLoM7 gF2CfrXNVqwo/M9LD4SpXgi5DodvGcshb3fpVxLOGNcHt26CvOq4iU27nu4bARpR1QoEajKqMEU1 nXPAP5VnZ9Tpuo6JELuWOAay72zaR/OjOT/dPeuqjLlnex5mMpOpDTcziOSpUg9xijJHU16NmtGe JonoKTgYPTvSocn3NDjYNL3HnBAIPXtSM2Op9qlauxpKXLr3FDDGCaN2eAaS13C5/9kAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICBQTCAw NDAyIDA4MjAgUEIgMDQwMyAwODIyIENMIDA1MjYgMDQzOSB0IDA2MzMgMDMyNCBDQiAwNDg5IDA1 MjYgdCAwNTg3IDAzODcgdCAwNTk2IDAzODggUkggMDY4NSBSTCAwNDMwIEJIIDA1MjAgQkwgMDMw MCBpIDAzNCAwMTAgSSAwMzUgMDEwIFQgMiBWIDAyLjEgUyAxIEZSIDAwMC4wMSBXTiAwMDA2IFdG IDA0MTkgbSAwIFYwMi4xeTA1MzBZMDMwNUkwUzAwMDAxNUcxMTk5STBTMDAwMDE1RzMwNTZ5MDQx MVkwMjM0STBTMDAwMDMwRzIwMDBUMDYyMEkwUzAwMDA0MEcwMTk5WTAyMzRJMFMwMDAwMzBHMjAw MEMwMDAwNDBDMTAwDQpWICAxMDEuMjAuMDBSNTMyN1BNMDAxMENNMDE4MlBPLTAxMDBQTy0wMTAw Q08wNzUwMENPMDcyODdTMDMzN1kwNTAxUjA0NTVCMDUzMlNPMDg0M1lPMTAxOFJPMDg2OUJPMTA2 MkYwOTQxDQpWICAxMDEuMjAuMDBTVDAxRFQwNQ0KUiAxIEQgMDIwMCBGIDAwMCBaIDAwIEQgMDMg TyAwIFQgMSBGIDAgUyAwIFMgMTAwMCBFICswMi4xDQpQIDAwIFMgMDAwMDAwMCBOIDQ5IFMgMDA2 NjA3Ng0KQiAyNCBCViAwNDExIEYgMDIgRlYgMDgwOCBPIDIzIE9WIDIzOTgNClAgMDE3NTAgTSAw MTUxNA0KUE4gMDAyMCBQRiAyMzQzIFQgMDA0MDAwIFMgMDE5OSBJIDAwDQpDTiAwMDIwIENGIDIz NDQgVCAwMDQwMDAgUyAwMTk5IEkgMDANClNOIDAwMTAgU0YgMTE3MiBUIDAwNDAwMCBTIDAxMDAg SSAwMCBSIDAwMDAuNTgwDQpTTiAwMDEwIFNGIDExNzIgVCAwMDQwMDAgUyAwMTAwIEkgMDAgUiAw MDAwLjU4MA0KU04gMDAxMCBTRiAxMTcyIFQgMDA0MDAwIFMgMDEwMCBJIDAwIFIgMDAwMC41ODAN Ck5IIDQwMDAgTkwgMjAxNiBESCAwOTE4IERMIDA0NTkNClkgMDcwMSBSIDAwMDAuNTgwIEZCKzAu MDAwDQpDWSAwMDAwDQpMDQoxODI3IDE4MjcgMjAyNiAyMDU4IDIwODQgMjEwNyAxOTI3DQoxODI3 IDIxODQgMjI5MCAyMzAxIDIzMTIgMjMwNyAyMDU4DQoxODI3IDIyNDMgMjI5MCAyMjc4IDIzMDEg MjMyNiAyMTcyDQoxOTI3IDIyNzIgMjMwMSAyMzE3IDIzMjYgMjMyNiAyMjUxDQoxOTg1IDIxNzIg MjIxNyAyMjM1IDIyNTggMjI1OCAyMTk2DQoxODI3IDE5MjcgMTk4NSAxOTI3IDE5ODUgMjEwNyAy MDI2DQoxODI3IDE4MjcgMTgyNyAxODI3IDE5MjcgMTkyNyAxOTI3DQpXDQowMDAxIDAwMDEgMDAw NCAwMDA1IDAwMDYgMDAwNyAwMDAyDQowMDAxIDAwMTIgMDAyNSAwMDI3IDAwMjkgMDAyOCAwMDA1 DQowMDAxIDAwMTggMDAyNSAwMDIzIDAwMjcgMDAzMiAwMDExDQowMDAyIDAwMjIgMDAyNyAwMDMw IDAwMzIgMDAzMiAwMDE5DQowMDAzIDAwMTEgMDAxNSAwMDE3IDAwMjAgMDAyMCAwMDEzDQowMDAx IDAwMDIgMDAwMyAwMDAyIDAwMDMgMDAwNyAwMDA0DQowMDAxIDAwMDEgMDAwMSAwMDAxIDAwMDIg MDAwMiAwMDAyDQpMDQoyNTczIDI1NDkgMjY2MiAyNjg0IDI3MDcgMjY3NiAyNDk3DQoyNDU0IDI4 MzIgMjkzNyAyOTQ0IDI5MzcgMjkwMiAyNjE0DQoyNDk2IDI5MjIgMjk3NCAyOTY0IDI5NzEgMjk2 NyAyNzc1DQoyNjEyIDI5ODIgMjk5OSAzMDAyIDMwMDEgMjk5MiAyODkzDQoyNjczIDI5MjcgMjk3 NCAyOTcxIDI5NjQgMjkzOSAyODMyDQoyNTcwIDI3NzAgMjg1MyAyODI2IDI4MTAgMjgyNiAyNjIx DQoyNTY4IDI2NDAgMjcwNCAyODA4IDI3NzkgMjY4OCAyNTQ1DQpTDQowMTc4IDAxNTAgMDMzMCAw MzgzIDA0NDkgMDM2MyAwMTA1DQowMDc4IDEwNzAgMjIxMCAyMzIxIDIyMTggMTc0MSAwMjM2DQow MTA0IDE5OTUgMjg1NSAyNjY4IDI4MDQgMjcyNiAwNzIxDQowMjMyIDMwMzAgMzQwMyAzNDgxIDM0 NTMgMzI0MiAxNjM0DQowMzU1IDIwNzEgMjg1OCAyODA3IDI2NjggMjI0NSAxMDcyDQowMTc0IDA2 OTcgMTIzOSAxMDI1IDA5MjAgMTAyNyAwMjQ3DQowMTcxIDAyODIgMDQzOSAwOTAyIDA3NDEgMDM5 NSAwMTQ2DQpPDQo4IDggOCA4IDggOCA4DQowIDkgOSA5IDkgOSA4DQo4IDkgOSA5IDkgOSA1DQo4 IDkgOSA5IDkgOSA5DQo4IDkgOSA5IDkgOSA5DQo4IDUgOSA5IDUgOSA4DQo4IDggOCA1IDUgOCA4 DQpTWTpbMF0wMzUxWzFdMDI2NFsyXTA0MjdbM10wMDk1WzRdMDE2N1s1XTAwMzhbNl0wMDk5Wzdd MDAzNVs4XTAwODANCl9fX19CbG9jayBTdGF0aXN0aWNzX19fXw0KQllfTTogMDQ1NiBCWV9NQjog MDQ1Ng0KUk9JX0JZX006IDA0NTYgUk9JX0JZX01COiAwNDU2DQpCWV9tOiAwMDI2IEJZX21COiAw MDI2DQpST0lfQllfbTogMDA0NiBST0lfQllfbUI6IDAwNDYNCkJZX0E6IDAxODEuOSBCWV9BQjog MDE4MS45DQpST0lfQllfQTogMDI4OC44IFJPSV9CWV9BQjogMDI4OC44DQpST0lfUk5CWU06IDAz IFJPSV9DTkJZTTogMDQNCl9fX19TZWdtZW50IDAgU3RhdGlzdGljc19fX18NClMwWV9NOiAwNDU2 IFMwWV9NQjogMDQ1Ng0KUzBZX206IDAyMjkgUzBZX21COiAwMjI5DQpTMFlfQTogMDM1MS43IFMw WV9BQjogMDM1MS43DQpTMFlfTW1SOiAwMDAxLjk5IFMwWV9NbVJCOiAwMDAxLjk5DQpTMFlfTUFS OiAwMDAxLjIwIFMwWV9NQVJCOiAwMDAxLjIwDQpTMEJOOiAwOSBTMEJOQjogMDkNCl9fX19TZWdt ZW50IExWX19fXw0KU0xWOlswXSswMi45OFsxXSswMi41NlsyXSswMy4yNlszXSswMS4wOVs0XSsw MS45MFs1XS0wMC4yMVs2XSswMS4xNVs3XS0wMC4zM1s4XSswMC44NQ0KUk9JX1NOTFZfTTogMDIg Uk9JX1NOTFZfbTogMDMNClJPSV9TTFZfTTogK1A2LjM3IFJPSV9TTFZfTUI6ICtQNi4zNw0KUk9J X1NMVl9tOiArOjkuOTQgUk9JX1NMVl9tQjogKzo5Ljk0DQpST0lfU0xWX0E6ICuxNy42NyBST0lf U0xWX0FCOiArsTcuNjcNClJPSV9TZExWOiAyOC4xMiBST0lfU2RMVkI6IDI4LjEyDQpST0lfU2RM VjI6IEU2LjQzIFJPSV9TZExWMkI6IEU2LjQzDQpMVkFFOiArSjkuODYgTFZBRUI6ICtKOS44Ng0K X19fX0Jsb2NrIExWX19fXw0KQkxWX006ICtRNS43NCBCTFZfTUI6ICtRNS43NA0KUk9JX0JMVl9N OiArUTUuNzQgUk9JX0JMVl9NQjogK1E1Ljc0DQpCTFZfbTogLTc3LjUxIEJMVl9tQjogLTc3LjUx DQpST0lfQkxWX206ICswNC44MSBST0lfQkxWX21COiArMDQuODENCkJkTFY6IFkzLjI1IEJkTFZC OiBZMy4yNQ0KUk9JX0JkTFY6IFEwLjkzIFJPSV9CZExWQjogUTAuOTMNCl9fX19TY2VuZSBDbGFz c2lmaWNhdGlvbl9fX18NClNDRU46IDQ0DQpTRU46IDA2DQpJU0VOOiAwMw0KV1k6IDAyMzQgV1lC OiAwMjM0DQpMVkM6ICtSOS4zMiBMVkNCOiArUjkuMzINCkxWVDogK0o5Ljg2IExWVEI6ICtKOS44 Ng0KQ1RZOiAwNTAxDQpNUFRZOiAwODAxDQpNQ1RZOiAwNjIwDQpNQ1RZQjogMDYyMA0KTUNUWUtX OiAwNjMwDQpNTFZDVFk6ICtKOS44Ng0KX19fX0JhY2tsaWdodCBEZXRlY3Rpb25fX19fDQpCTExU OiBEMjI4DQpGRE1NQjogMDAwMjAwMA0KRk5PQjogMDM3DQpNQUc6IDAwMDA1NC4xDQpJQlM6IDAN Cl9fX19FeHBvc3VyZSBDb21wZW5zYXRpb25fX19fDQpNQVRZOiAFMDY0IE1BV1k6IOAxNjAgUjog /DguODgNClJNOiBDMzYwNCBHTTogvDc4MDkgQk06IDs0NjkyDQpCUkdCTTogiTcxODkgQlJHQk1F OiAwMDAwMA0KRUNSOiAwMC4wMA0KRUNkTFZUOiArMDAuMDAgRUNkTFZSOiArMDAuMDANCl9fX19I aXN0b2dyYW1fX19fDQowMDAgMDAwMQ0KMDAxIDAxODENCjAwMiAwMjExDQowMDMgMDEwMQ0KMDA0 IDAwNDINCjAwNSAwMDE2DQowMDYgMDAyMA0KMDA3IDAwMTINCjAwOCAwMDIyDQowMDkgMDAxMA0K MDEwIDAwMTENCjAxMSAwMDA5DQowMTIgMDAyMg0KMDEzIDAwMTYNCjAxNCAwMDA2DQowMTUgMDAx MA0KMDE2IDAwMTUNCjAxNyAwMDE2DQowMTggMDAxNA0KMDE5IDAwMTgNCjAyMCAwMDE2DQowMjEg MDAyMw0KMDIyIDAwMzkNCjAyMyAwMDQzDQowMjQgMDAzNg0KMDI1IDAwMzkNCjAyNiAwMDQxDQow MjcgMDA0Ng0KMDI4IDAwNDMNCjAyOSAwMDIwDQowMzAgMDAwNw0KMDMxIDAwMDcNCjAzMiAwMDAz DQowMzMgMDAwNA0KMDM0IDAwMDANCjAzNSAwMDAwDQowMzYgMDAwMA0KMDM3IDAwMDANCjAzOCAw MDAwDQowMzkgMDAwMA0KMDQwIDAwMDANCjA0MSAwMDAwDQowNDIgMDAwMA0KMDQzIDAwMDANCjA0 NCAwMDAwDQowNDUgMDAwMA0KMDQ2IDAwMDANCjA0NyAwMDAwDQowNDggMDAwMA0KMDQ5IDAwMDAN CjA1MCAwMDAwDQowNTEgMDAwMA0KMDUyIDAwMDANCjA1MyAwMDAwDQowNTQgMDAwMA0KMDU1IDAw MDANCjA1NiAwMDAwDQowNTcgMDAwMA0KMDU4IDAwMDANCjA1OSAwMDAwDQowNjAgMDAwMA0KMDYx IDAwMDANCjA2MiAwMDAwDQowNjMgMDAwMA0KMDY0IDAwMDANCjA2NSAwMDAwDQowNjYgMDAwMA0K MDY3IDAwMDANCjA2OCAwMDAwDQowNjkgMDAwMA0KMDcwIDAwMDANCjA3MSAwMDAwDQowNzIgMDAw MA0KMDczIDAwMDANCjA3NCAwMDAwDQowNzUgMDAwMA0KMDc2IDAwMDANCjA3NyAwMDAwDQowNzgg MDAwMA0KMDc5IDAwMDANCjA4MCAwMDAwDQowODEgMDAwMA0KMDgyIDAwMDANCjA4MyAwMDAwDQow ODQgMDAwMA0KMDg1IDAwMDANCjA4NiAwMDAwDQowODcgMDAwMA0KMDg4IDAwMDANCjA4OSAwMDAw DQowOTAgMDAwMA0KMDkxIDAwMDANCjA5MiAwMDAwDQowOTMgMDAwMA0KMDk0IDAwMDANCjA5NSAw MDAwDQowOTYgMDAwMA0KMDk3IDAwMDANCjA5OCAwMDAwDQowOTkgMDAwMA0KMTAwIDAwMDANCjEw MSAwMDAwDQoxMDIgMDAwMA0KMTAzIDAwMDANCjEwNCAwMDAwDQoxMDUgMDAwMA0KMTA2IDAwMDAN CjEwNyAwMDAwDQoxMDggMDAwMA0KMTA5IDAwMDANCjExMCAwMDAwDQoxMTEgMDAwMA0KMTEyIDAw MDANCjExMyAwMDAwDQoxMTQgMDAwMA0KMTE1IDAwMDANCjExNiAwMDAwDQoxMTcgMDAwMA0KMTE4 IDAwMDANCjExOSAwMDAwDQoxMjAgMDAwMA0KMTIxIDAwMDANCjEyMiAwMDAwDQoxMjMgMDAwMA0K MTI0IDAwMDANCjEyNSAwMDAwDQoxMjYgMDAwMA0KMTI3IDAwMDANCjEyOCAwMDAwDQoxMjkgMDAw MA0KMTMwIDAwMDANCjEzMSAwMDAwDQoxMzIgMDAwMA0KMTMzIDAwMDANCjEzNCAwMDAwDQoxMzUg MDAwMA0KMTM2IDAwMDANCjEzNyAwMDAwDQoxMzggMDAwMA0KMTM5IDAwMDANCjE0MCAwMDAwDQox NDEgMDAwMA0KMTQyIDAwMDANCjE0MyAwMDAwDQoxNDQgMDAwMA0KMTQ1IDAwMDANCjE0NiAwMDAw DQoxNDcgMDAwMA0KMTQ4IDAwMDANCjE0OSAwMDAwDQoxNTAgMDAwMA0KMTUxIDAwMDANCjE1MiAw MDAwDQoxNTMgMDAwMA0KMTU0IDAwMDANCjE1NSAwMDAwDQoxNTYgMDAwMA0KMTU3IDAwMDANCjE1 OCAwMDAwDQoxNTkgMDAwMA0KMTYwIDAwMDANCjE2MSAwMDAwDQoxNjIgMDAwMA0KMTYzIDAwMDAN CjE2NCAwMDAwDQoxNjUgMDAwMA0KMTY2IDAwMDANCjE2NyAwMDAwDQoxNjggMDAwMA0KMTY5IDAw MDANCjE3MCAwMDAwDQoxNzEgMDAwMA0KMTcyIDAwMDANCjE3MyAwMDAwDQoxNzQgMDAwMA0KMTc1 IDAwMDANCjE3NiAwMDAwDQoxNzcgMDAwMA0KMTc4IDAwMDANCjE3OSAwMDAwDQoxODAgMDAwMA0K MTgxIDAwMDANCjE4MiAwMDAwDQoxODMgMDAwMA0KMTg0IDAwMDANCjE4NSAwMDAwDQoxODYgMDAw MA0KMTg3IDAwMDANCjE4OCAwMDAwDQoxODkgMDAwMA0KMTkwIDAwMDANCjE5MSAwMDAwDQoxOTIg MDAwMA0KMTkzIDAwMDANCjE5NCAwMDAwDQoxOTUgMDAwMA0KMTk2IDAwMDANCjE5NyAwMDAwDQox OTggMDAwMA0KMTk5IDAwMDANCjIwMCAwMDAwDQoyMDEgMDAwMA0KMjAyIDAwMDANCjIwMyAwMDAw DQoyMDQgMDAwMA0KMjA1IDAwMDANCjIwNiAwMDAwDQoyMDcgMDAwMA0KMjA4IDAwMDANCjIwOSAw MDAwDQoyMTAgMDAwMA0KMjExIDAwMDANCjIxMiAwMDAwDQoyMTMgMDAwMA0KMjE0IDAwMDANCjIx NSAwMDAwDQoyMTYgMDAwMA0KMjE3IDAwMDANCjIxOCAwMDAwDQoyMTkgMDAwMA0KMjIwIDAwMDAN CjIyMSAwMDAwDQoyMjIgMDAwMA0KMjIzIDAwMDANCjIyNCAwMDAwDQoyMjUgMDAwMA0KMjI2IDAw MDANCjIyNyAwMDAwDQoyMjggMDAwMA0KMjI5IDAwMDANCjIzMCAwMDAwDQoyMzEgMDAwMA0KMjMy IDAwMDANCjIzMyAwMDAwDQoyMzQgMDAwMA0KMjM1IDAwMDANCjIzNiAwMDAwDQoyMzcgMDAwMA0K MjM4IDAwMDANCjIzOSAwMDAwDQoyNDAgMDAwMA0KMjQxIDAwMDANCjI0MiAwMDAwDQoyNDMgMDAw MA0KMjQ0IDAwMDANCjI0NSAwMDAwDQoyNDYgMDAwMA0KMjQ3IDAwMDANCjI0OCAwMDAwDQoyNDkg MDAwMA0KMjUwIDAwMDANCjI1MSAwMDAwDQoyNTIgMDAwMA0KMjUzIDAwMDANCjI1NCAwMDAwDQoy NTUgMDAwMA0KMjU2SE1FQU46IDAwMTEuNSBITUVBTjogMDE4NC4wDQoyNTZITUVESUFOOiAwMDA0 IEhNRURJQU46IDAwNjQNCjI1NkhCSE1JOiAwMDAyIEhCSE1JOiAwMDMyDQoyNTZIVEhNSTogMDI1 NSBIVEhNSTogNDA4MA0KWToNCjAwMzYgMDAzNCAwMDY0IDAwNzQgMDA5OCAwMTA1IDAwNDQgDQow MDI2IDAxODAgMDM1OSAwMzg1IDA0MjAgMDQxMiAwMDc3IA0KMDAzMSAwMjUzIDAzNjAgMDMzNiAw Mzg0IDA0NTAgMDE3MSANCjAwNDIgMDMwOSAwMzk5IDA0MzkgMDQ1NiAwNDUzIDAyNzUgDQowMDU0 IDAxNzcgMDIyOSAwMjYyIDAzMDAgMDMxMCAwMjA2IA0KMDAzNSAwMDQ2IDAwNjMgMDA0OCAwMDYy IDAxMjkgMDA3NSANCjAwMzAgMDAyOSAwMDI4IDAwMzUgMDA0MCAwMDQ0IDAwMzggDQpSOg0KMDA0 OSAwMDU1IDAwODggMDEwNCAwMTMwIDAxNDEgMDA3MSANCjAwNDcgMDIyNiAwNDM1IDA0NjUgMDUw NiAwNDgyIDAxMDIgDQowMDU3IDAzMTkgMDQzNyAwNDAyIDA0NTUgMDU0MiAwMjE4IA0KMDA3MSAw MzgwIDA0OTUgMDU0MCAwNTU0IDA1NTAgMDMzOCANCjAwODUgMDIxOCAwMjgzIDAzMjAgMDM1NSAw MzYwIDAyNDggDQowMDY0IDAwNjYgMDA3OSAwMDY0IDAwNzUgMDEzOCAwMTA1IA0KMDA1MiAwMDQ5 IDAwNDYgMDA1NSAwMDYxIDAwNjYgMDA2NiANCkc6DQowMDQzIDAwMzcgMDA3NiAwMDg4IDAxMTkg MDEyOCAwMDQ5IA0KMDAyNiAwMjIzIDA0NTMgMDQ4NiAwNTMwIDA1MjMgMDA5NCANCjAwMzIgMDMx MyAwNDUzIDA0MjMgMDQ4NSAwNTY5IDAyMTEgDQowMDQ1IDAzODcgMDQ5OCAwNTUwIDA1NzMgMDU3 MCAwMzQzIA0KMDA2MCAwMjIyIDAyODcgMDMyOCAwMzgwIDAzOTcgMDI2MCANCjAwMzYgMDA1MiAw MDc4IDAwNTcgMDA3NyAwMTcwIDAwODkgDQowMDMyIDAwMzEgMDAzMCAwMDM4IDAwNDUgMDA1MCAw MDQwIA0KQjoNCjAwNDIgMDA0MiAwMDY0IDAwNjcgMDA4MCAwMDg2IDAwNDUgDQowMDQ1IDAxNjMg MDMwMSAwMzIwIDAzNTkgMDM2MiAwMDgwIA0KMDA1NCAwMjM3IDAzMTcgMDMwOCAwMzQ5IDAzNzIg MDE1MSANCjAwNTQgMDI2OSAwMzQ5IDAzODEgMDQwNCAwMzg4IDAyNDcgDQowMDY3IDAxNTcgMDE4 NiAwMjI0IDAyNjMgMDI1MCAwMTczIA0KMDA1NCAwMDY0IDAwNzAgMDA2NCAwMDcwIDAwOTMgMDA2 NCANCjAwNDUgMDA1MSAwMDQ1IDAwNTEgMDA1MSAwMDQ1IDAwNDggDQpZOg0KMDA5NCAwMTM5IDAx NDAgMDE0OSAwMTU2IDAxMzMgMDA5OSANCjAxMTIgMDE1MiAwMTU4IDAxNjEgMDI3MiAwMTg2IDAx MTYgDQowMTIzIDAxNzMgMDI5NiAwNDAwIDA0MzcgMDQxMSAwMTIyIA0KMDE0OCAwMjc4IDA0NTcg MDM5MSAwMzk0IDAzNDMgMDIwNSANCjAxMzggMDMwMiAwNDMwIDAzNzMgMDM3MiAwMzg2IDAyODYg DQowMTI4IDAxNzggMDI2OCAwNDY1IDAzMjAgMDMxNyAwMTcxIA0KMDEwNyAwMTU5IDAyMTMgMDIz OCAwMTgyIDAxNjEgMDEyMyANClI6DQowMjU1IDAzNzggMDM5MyAwNDEyIDAzODEgMDMxNCAwMjcy IA0KMDMwMCAwNDEzIDA0MzUgMDQzNCAwNDQ3IDAzNDEgMDMxNCANCjAzMjcgMDQyNCAwNDc4IDA1 MzggMDU0NyAwNTA4IDAzMjQgDQowMzk3IDA0NDcgMDYwMSAwNTAwIDA1MDYgMDQzNSAwMzUxIA0K MDM3MSAwNTIwIDA1NzkgMDQ4OCAwNDk4IDA0NzggMDQzMiANCjAzNDYgMDQ2NyAwNDk2IDA2MTkg MDU1OSAwNTc3IDAzOTggDQowMjg5IDA0MjkgMDUwNSAwNTQ1IDA0NzYgMDQyNyAwMzI0IA0KRzoN CjAwNzkgMDExNyAwMTE1IDAxMjUgMDE0NSAwMTI1IDAwODMgDQowMDk1IDAxMjggMDEzMSAwMTM3 IDAzMTQgMDIwMyAwMDk4IA0KMDEwNSAwMTYwIDAzNDQgMDQ5NSAwNTUzIDA1MTkgMDEwNSANCjAx MjcgMDMyNCAwNTY5IDA0OTMgMDQ5NiAwNDM1IDAyMzAgDQowMTE3IDAzNDIgMDUzMiAwNDY3IDA0 NjIgMDQ4OSAwMzM5IA0KMDEwOSAwMTU1IDAyOTMgMDU3NyAwMzYwIDAzNDcgMDE2MyANCjAwODkg MDEzNiAwMjAyIDAyMzAgMDE1OSAwMTM5IDAxMDYgDQpCOg0KMDA2MSAwMDc3IDAwNjcgMDA3NCAw MDk5IDAwOTMgMDA1OCANCjAwNzQgMDA5MCAwMDkwIDAwOTYgMDI1MCAwMTc2IDAwNjcgDQowMDgz IDAxMTIgMDI2OSAwMzk3IDA0NDIgMDQ2NCAwMDc3IA0KMDA4NiAwMjM3IDA0NjQgMDM2NSAwMzY4 IDAzMTEgMDIxNSANCjAwODAgMDI2MyAwNDI5IDAzNDAgMDM1NiAwNDIwIDAzMDggDQowMDgwIDAx MDMgMDIzMSAwNDc0IDAyODggMDMwOCAwMTM4IA0KMDA4MCAwMDk5IDAxNDcgMDE3MCAwMTA2IDAw OTMgMDA4MCANCiBAIAUuAUBBI4STqcJAQQUokAuBogQgYACFBADKCKAHMAEIgLoQIFSLsO7RIFA6 QlAECDMAIARGgAAICMJEOFIQIIMaAPCUAQAMICEhI3JBAmksMiB2YFQCE2OcJIAIAIgQCRMqRKMg AByJyKIVTM2EAbBA4iUgACAAqEIp0iqE4BCZFSZGggCBAQjIBxCEBJoQgAEqFAtxgBADBEUUDBKA UIATbABARAJYSAQBQBgYAuDBFAIGUgYEFaKuABAABAUUCQVCAShAAAEAEDhhAgCCBKMcAAwkMJLA CISyBwEcAAAwKIIloAEL6AIAIlIAFAw1A4UKtQAAAAAAAAAACgAAAAIAAQACAAQAAABSOTgAAgAH AAQAAAAwMTAwAAAAAAYAAwEDAAEAAAAGAAAAGgEFAAEAAAAwpgAAGwEFAAEAAAA4pgAAKAEDAAEA AAACAAAAAQIEAAEAAABApgAAAgIEAAEAAACcDAAAAAAAAEgAAAABAAAASAAAAAEAAAD/2P/bAIQA DAgJCgkHDAoJCg0MDA4SHhMSEBASJBobFR4rJi4tKyYqKTA2RTowM0E0KSo8Uj1BR0lNTk0uOlVb VEtaRUxNSgEMDQ0SDxIjExMjSjEqMUpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpK SkpKSkpKSkpKSkpKSkpK/8QBogAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEB AQEBAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQy gZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVm 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 4+Wbj3U5/lScGw9lLsVzeRE43Pj2FH2yFDlQ5PuMU407D9jIqSzeYzMepNVz9a3RrCnyu7ZG/Wmt WqJkOT1pTQxx2A9qSkPqPUgDkHP1pwpNFIXHSnkDFZs0SJbZE8wFgCPQ96vQRC4kWK2gRpW/hA6f nUt6jtoW4YXhlKyC0kCctujyuR2yPWog1kXP221Gc8GFgB9PpTt1ZPkildpbg/uMbc+vNU29qSL1 sN2lecjn3oJNXoyNSMk00mqSIbGGkPStEZM//9n/2wCEAAEBAQEBAQEBAQEBAQEBAgMCAgEBAgQD AwIDBQQFBQQEBAQFBgcGBQUHBQQEBgkHBwgICAkIBQYJCgkICgcICAgBAQEBAgECBAICBAgFBAUI CAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICP/EAaIAAAEF AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEAAC AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1 9vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy 0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKD hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm 5+jp6vLz9PX29/j5+v/AABEIAeACgAMBIQACEQEDEQH/2gAMAwEAAhEDEQA/AP5PbeIhUGSxPcE8 VejhJAkbDFj978f/AK4r6ZxcXd7/AJf1ofB4ODiot+X3f1su40xqgyzuQi5wvf0rOiDNI4ZmYgZ5 6/hXiZhUca0JJa9z2cPRvF332+drf8AhlDxxTXcikQwAsccfTn8RXi+v6n9tupJgSq5wik571xZh NUP3cd9/w/rU9zAQ9rJT6f1qcjcOyAxgguxyx6fhWewJwWxkNkA15dGTWtz2J0eeN+pA5IZuTt9K jyVCuM7s5610waSViVzQvrqSxIxKlywAOcDvW9aJ5FsZJCFeQgqqjpWVSbT0Nq9KTjZ7kkl1MIVj DsVU84qnMTINoCFgev4VCimr21OanSu1y/j/AF5/mQyqYFWPdl8ZZh/KqJRi2CzDHAWnF395neoq LSvpb18yERlmCkgknof1p6wgEBQAF4rR1LEKm7Xtrca8K5CgHLdh2pojYKVwwVuoH6VSldFSpqLf IJ5BOOSoPJJPWkEPIwpUnt6VSq20InQu73FNoVUAEEsOhFNFs4yvBYDoO9T7dbingpJ2SFFtICCc EjnjtSC1kOMAcfw1axCZMsNKWqGm1lUDjkcZFKbWUnCjH9aSrqSuEMHJPRB5M3JIJI6AGk8mYqOG AHfNP2seoPDTSt11HYuFUnc6henOP896sLe6kuAt5djHYOahxhPRrQcITTTi3f8AEsLrOrooKX9y SDyrHOKsLr+uBVAu3Yr03oP54rlnl1CSu4mlOvXpvljJ7f0i0PE+slgDLHISOjKBn8qlj8W6srAk Qkg8KAeK5ZZLQqKx1xzXEwkmpX33/E2YPiJq0CFXt0cHncHIq5H8Rpcgy6crbTnO8f4V5tThinJ3 hI71xDWhFc0S1/wsSxfb5+mOFXOQoH+fWrkPjnQXwJLK6QDJzjv+dcdThyvSXuSVz0MPxRCUlGS/ r+upfTxj4bc7vMltyB0Knn61di8SeHJVYjUAhY5CE8fnj6V5NXIsTDeNz1qGf4absnZdrM0ItT0G 9O1dYtgQcqGcemMVpwGz+dY9SsmLcEh+vvXDXwdalpOLsejDNKONtyTVuv8AX9bFp7NpNpiuoSWH Clzwc8U9NOuSzshWQsMl4j7Vy3SV5bnpU6kYxlr6f15MtGzugkhaDJ43AEc+nPeoGtp2GHgkZ1GW K8+9c7UYhCo3aMetr/qRRQDDkoC0eT83ep0RIVlYYZUPJxzVSpuas9gcoNNy6f8AB/yKhEQLBWKx 7sByc5piFUdyhLDPCqe9aScmrPf9RyknFtP8fX879SZi0jP9zC/xH0q3qFjBeaZFFcXCSSgfu5Fz uiOfyx7U6NaeGlGa6HNiaSxEZ0r3b0/XUjfWdX1PQNP8NtYaLbRWUjE61FDi4nVsAK7ZOQNvGMdT ntV+y0mfw/a3ts16k0GogIiYG7BOGzj/AD+denWxcIw9jvd/jpp8j5GnlFXDSUpvRN/d/wAH9Dyb xKiya3IImWXYCFwOvJOcfjWc2mXAUyGKUg8nKnivp8PJKlFt6nlYiEnXmo7p/p/X4DFtwWCklhjn rx61DqETKkWCqxqPljUfr+lVCDjUuyasW4KV9W7fIy1wxU4JKjBDdqUgkqQDnGcjOM1ulLV31Kkk ld7u34f1qNwuCWAVlOcCkGxCxyQCOWqopu6TMovkSVtgKhiF3BiFwdx6U0INoILMR0HaqSbTYpxT ak9/8iNl2hiScEY2k9u1RBAEJ2qpPAI7VfPzayZnVj7R2l01EbAZcYJHOR6+tMK7mO8AEcZz1PpT ScHfqPlcVa3XXzInAAOSWHYNUZQAAnAI6H1rblcLMmpTbla+i/4cjZSONuQeADTGRgSQvP8AKrST 0uctWlKT5V/W7GkPkhgFBGM46U1gTjkEg4BP6U4tNqxFGLkve0f/AACM4IGckA5AHSonUn0ITuM8 VrC6M66u7oYyAAckEdRioGDEY4APb1reLvoY1F7PVM+zI1doucIgGdiDnGfWrSwtgRliwY8q/b6f pX2aoPktLbz9D4LARi4Wit9/kn/V/VkFwN0TqSpGzqufTpVGztfPlU4KhRjevGP84rzcZJVKsGnZ K7+49uilTXOl8/0+X9bHBeNfESOTpFjIfskOPMkTqx9K8ku51RRKy4kk4SP+7718xif3lVtPT/gH 0ODpctLnkun9fMxWxyzYAPHI6VGzYJBOCvYtVwipROmVNwu1sQYJIYjIHcd6esZLBACSehA6VTdl Y1o0lBarVf5G3DaKEiZnygGTj19P50rzhvlBADdCTWcPf1ZE2ubllrsRMXkBAXcOucdaVUeKIXLq v7wkIB1J/wDrZqpq0eUmzU7vZfoUnZi2STuHJPrUDMWLlgRkZwKla7HRZxtJj41OQxBHuT2pWx09 O/rWbfNI64zSiReWWJYZ47+lNwGJIAJFaqVtjmlBqyXX+v1ECknknHvUgCjA5BHcf1pTaewqcVK9 /wCkShlJBAIGODzSEKmAGOCc4zWd+V2R1Pkn7zJFYsu0jgn7x70u8bhjaCODmocddCpSdve2DduB JCntkCgSEkAKG29TmpcRqra7/r+v8xzMrA7gAF64IpuVJYlSWJzuI6VXK4jjNbta/wBakbAvnAAA HQDvSsgAOAwJPGBVxlZWRzRhpzP8BixbWyQMk9BVhYFXH8JPTaampUvqjehRSunv/wAOBgGSWzuJ 7U0QKGOAvHHFTCpdW6CdJpq6GvCpIBVQc5Oaa1ugQYK4PatY1LGdWlzXdyBrdSpLAjPqOtXYreAI odlDDsTVVaztoY0aMVPmkun9f15jlto8Aq4JA6Z6U02gCgqoyRzjtWCrtPU6Y0Iy21Ea0cDKgDPb 1o+ysMAMwJ5BBx+dUq1uhgsKua8iwpvIT8lxdKFHHluRircOra5bkiHUr9ATgASHiuedClX0nFGk aVSg1ySdzTi8T+JIjtXVbkgdpCD+ea0YfHfii3Uk3cbsepdBXn1cnwtVaRs/LQ7qePxGEk2pbf1/ XmWoviXrYBWa2s5R6opGfxzWhH8TZlC+dpKMUPWOQ/1FYz4bgtISfzN8PxNXg+aok36GjH8SrHgP pB2k5IAU4/SrkHxA8OFTHJZzRruByydfXoa86rw3Vknyyudy4lpOS9pFrvZ/1sasPjbwjKMSrIiN xltwxVxvEnheWREgvkVSCCS/H6ivPqZNioO0o6HqU+IqE9Yuz8/67Eb3ejSEGPVbYsBnAIOPfrV6 2uLBpWuP7QhmVBkKDnOBwP5Up4OcOjLnmNKpqpdLnjet3ciazcPCzBoWADIc9K0V8Y668Rikmiuk OOLhBxxwa+vo4SFalBNapfcfA4ys1XqOnpr8ie38Y3dtKHmtNPvGbjMsat/OsvUdVh1O8a5kiEBf ACQqAqj2FaLCpSvcj67NWT1imVibQglJVZRxh1NN3QkY8yPPpmiphpNnXSx8ZatALdFYEPEV7EP1 prW2WGEBB/usDmk4uLuYzrwlG17f11I2hfOVQjHUA1EYCDtYspJxkDrVRXIrFOUKvvLb+v6+ZG0Y YFSAqnnBqII2VC9COjd6a1Vh1aftLcy/4YiZQrFgoye/rTXyAeuM/eNaqLdiVLld7f1roMA+UAED BxhqRmwABhh3JHeqSdwU3TXu7/1uREgYJKsWOOO3vTSRkMFUEDAIqowaVkRF667q+ox2I3EgMvtU TMSSCo5OQaqMepjObnHTb+vx/wCHGlgQeDg8BTURZDuBDAnocda1jC6InJSt2GlgxBUHntmoCM7i FAxzkdquMWlqcsmqnun2tBCRGhkVU3AEhiDg+nX3/nUxRiUYOA453Hjtz/SvvVJTbcten4f1+B8B ltpap/k/K5BHD58ixByqN95T1/zxXK+KdXh0HT3sYJUN1cnABHPuT7D+f414GPcadO73d/8Agn1m GpOUoxb+HX8dOtjwa4uRIZXkeTy0bJLH71c5PM07s7gbTwFXtXzcE5O7PooL2Xurp/X6Ig5cgnB+ v86jkKjKqM54B/xrocbOxhs5O43aCQoxwOc1ZhRzIFBBZzggdqmfvI1s6Sd2azSEDylYIg4LkA81 m3TBHIR2DN1Hp9KmndWXUTfLe23T+uxTLeYVG4qD1I6VbQjGxBhBwT61pWV0l0FRjGU+b0ImYHKj kE8k0uwEqOVOeq96hPXQ6XS9pLXYmVQoCDk9etRMuMoCCAOg7VhF3bvsdlSCnFOLG4TBwVA9KawB bI5ZT0PetkrqzOWagop/13HKgxyFIHOVNAGMKFPzdSRUuV9jWa5EnHceFAIHIHvUmAFJJD57jtUS V9iKVLki7bdhQqNk4J9Ce1NLAFgpBB/WpkmbTnBRut/MWMDkEAEH7pp6oVGGKsT1BobbdiYU1JL8 Q2jlCARn86CEOFwNwONwqU5SZo3FdESIgAAwARnIFMcncuMEL2Hc0R99mkoezgkv62ECEg5IIfGS D0q0AxyAAo6cjr9KzqK+pdCMqibX9Lf+vQYQCQSSGx90UFEVm+Qbk4x6UKXLsRyKT5nsNChsgBsA UwqQhJyCeACOtaxXYxlLlS9H+RCFyQCFAJ+8xqxtIJ4BAOMDrV1I8pyWtKy3HJEQOQqhepPenbCF BONwHBU1nKd2bQo8i36DghwgUk57CnJEQVyWwO4NL2vKgdOMld7aEqIASx3ADoAc5pNsjPsBICjO DUWSd2bQpOCSg7CgONqktt67m70iq7FUxlScnj86cUlqYyc56dR/2ZAfugDHUUsVsrkkqSSMHJol NuLZSpuE0n3FltFUA7SAxwKiWzBAY8Nk5B7CqpTcoXFUo3qOLX9XGyWkikBQzHtg1E0EmcHOR2He tYtSV2zkq4eUXYasUi4O0qCe/epUM6AhZSo7ckYrV2ei1MPZuPup21/z/QtBZioMgwzDhx61IqSZ VC42ngEnrWUfc0XUuo2pXf8AXn/mWkG5SmSOc7wKgYsrNuTJboQMCiSTd7E0Je10e4wnJ4VSSM4W hcMMujge1S7R2KVNzbbX3ff+pMP4CAwK8jNKGGCRkEcnA6VCTjsVCm7J/wBf07jN5G4AN83QjPFO WVgjqJSOOuauceUVOopSaUdF/X4aFY3Ex3HzEznhWHX1ppunC/diOO5FVyOWjQpVJwkpX01/r+ug wXYYjfEhzxu/xpDcqSWMRVSMnym6URpKTb6AsVJqyEMluBuAfcRjDc/561GGhZgAzEDk5WqdJp6D eJS0kvX/AIApSNuRNHh+zCkaIBQRLGB7N1qHGTWwnU5k76X/AK/URoXQchCf9lgcVXEDscqrEDng 0oz0uiXUhJJxIWjYMSEb1AFI23cylVGB3NbSTegJxpNp7NkOxSckAAAcikZBhiM/gatN3sYSdup9 rQq+EiYZVed6Dpz61HJulIjQfP8AwgmvtKkpShyzb1fbW9v6/M+IwVOMp3Ssra9huoXtl4e0241C 9uE8wDIhz8z+wHqa+bdV1S51a+mu7hwJJ2zsTpGvYD2FfMZpVc5KMen5v+u59nleFjC831Zyd9c+ awjjbMa9j+prOIBBIyQOgFcCi0kepNcy03EbgDGORjLVHuO45ADHoat66Mikm7N7f1YfGucnkk8f WtyK3S2tBcysoecYVTyaTSsXOWlzJmnLAOSVI/hWqYYuMbiM8bauMTKdT7C3JCQAQxJPT5T0qYuA gwrZHUg9aUk7KxdGn7KN2RjIIABXJ6Gp1dYwVAIJ6GsZp7HTC0den9f13EDgZypL44Y03jkliD1A FJRcRTndK+jEVcttOCp6kU5EAOTghegA6VTl0FCm6ju+/wCA4BcnD7CD1YdKcEyWIkVgeT1qHJvV m8W1LRgcZGZYiW7EmggKpIlRlPGMmjls7W0KdTmdk0CoSwIaJiDnaSKMhWJAU54xUttvUxS9nFze 4qspJIKk4zjvUiFCcklc8VDuzWjVi3b5+n/BHERgkFsY6gHrQFBAIYnPUmlZvc1lThPqG7CgBg3s BzTMfMAC2T0YfSqiraoic07a6qxKqBhnkgdjT0BPAXCnoT2qJ3bNKS9j7y3BsJk5G7HU0pYhGYZA JwCR/n2pNcz0E5aqKQ2Nn3AKSSxyOKiKn5GJY+1awsYucqq1JoFVpSzJlV/hNaUccJQsVAAPrXNW qOJ14OFL4prv9xL5cQ2qYwwPrTxAgVQY0JGMD+dcntJLqd7oxk2mtv6X4/kNFumcCPI7iM07yosY ETAjuB92qVST2Zn7KDVnHf8Ar8x6WsZIJjdd3ADHpTxbW4ZgQygdMf0pPESStHcuOFpuKbjbr/Xz ENtGAQrLgDA3A/59KSSFUG9WU59O1VGq4qzWpz1sGorlbICoVSSCSem761NGgxnAYDpjrXRfmTPP pq9kvK/n5EwjBYHAAJ/OhYM8AA8c59f84rKMm1ZnRODqysnp8xpiHmMWAO0c8dKa0agFj1B5YVop N2SOatR9mndrqRmJWICgY77u9NMSEk4wRzhhWyk6WqOaNPneu/8AX/ABVYY3dcZHJqRUYAlAfop/ lU8zSdthUZXha2r/AK/IeISOSAp/vH+tJ5JUkgAhh0ocrXsEaSgud9f61GrGznhOjZxilMBGAwJL DOAKFPlRUaUpXtsI0JwpAYDvgUzysDA3tjt6fWtIVFHQzlTV0le2n9fgIygEscqy85Hf61C4yoyN oYcgDtVJ3WonVcY3RXPzKGYKCnO5qRkDhGyCT159qtLkdjCE1Uf6f1/SK4U4LE57jNIuSwJy3OSB 3q02+pPspT1vuRSDBGQwHcDtUGS2CAVJ5xWkE1EVZW0sNYkEZJAHBI7UhYsMhiwb+KrgvaWTMIu0 dWAxu2kgYPQnpUoRgCc7ge2aznNwZdKim7J/1/wBNrjkPk+x6U0rKTwykHpSjUuk+pSpOUtCBg+S Gw2OAyHoaYUcMMDIPpWkZp6oxUGndn2yzGK3CuMlRgE9SfwpLhWtYTPhCu3dl89hzz9K+nxLcLzb 0Sf3r/gf1c+Xy6CcOXo332/q/wCB4J4q1yXWbtdrF7SEkRoc/MT1auCv5xErQoSXY5dvT2r5CLdR 8z66n3dKi6NK3T+v69TFcdfmwfXHSkVdqkg4Y8bRWrbnstDSpDlkrbkDMSBnJC9qcgZiTglf7poa 0sYwm29/60/z0NG1hCh52C+VDxtbue39aiu72WXEYYFeoVwOKdN9UKstbS2M8liQhJUg5LGnpt3k YcqvYGtU0tghJtJPXoSHZ1Kjk/ezQF4Ukn5udprHmu7s2fu2ixyogOQGJIxuzTtq4ydwUccis5zb aLcH8xVVSQQxYAdDTlQgEkggdMVLbd9DWEUlaLuOCkgjjceoIoCkEfO20jGSKhS5tzWcJpp/1uKE OSDguDyc9afs5YMCQOcU3O92EVzQd1oQPGTljkEnk+lOMSnIOMk9TTlJpKxk6TSd1sKsZUbQAGBw pPFNZWDFjnKDgii93cUqcmmktUPijJJOCBnOakaMgKVAYjgc1DmnLU1jBypSa3I9iqeAT2O4VYNu 64UMAVHQZ5p1J2V3qRRoJaf1uIInKIQAu3u39Kc0T4CsY+B1IPNQppuyNYxkne2mwGKQDcChx2Bq QLIo5C7TyHzzTUluHNNqzX9bDhE44Me3Jzuz0oJbkhTnGCc1mmnrc2ScNWv6uKGK5JDYboT/AJ96 ZsI6qAR1OKqyitGYyTqRSewu7aQdqKDx92pY5pCSc4KjIzRKmprUinUvpHS5dSRwo4XLDkEDjmlM sioV44Odin+dcjim3Y9R4ipF+X3EomYhMxgberKetKsxC/dATOcL3qXTjFWFWxs4zsPE+4A4YkHk AdaeJUYqDuVscHA5NEqF2yViXO6/roIHjGAzNtJ4YjpTmUyHKLjPUnvTVJxV3sYxrptxV2+n3Efk PggAgnkA4/OpUhdAuVOW5BNU5rltcyp05Ulzy+ZMsAV1yrk5zlQeKkWM42kOqjqRRGo5PXY3VP2M /PYilRgSUBZieoP61RfeWy4Ynpwa6IRcN/6/4Y46sJU27u/66hGXIIUscnBz1FWwmUKhuQOMnrRN NJxOWi7tdv8Ah/8AgajhAyFhgZQYwakCAEkjaqnB561MqV99TfldVWe//DfoO2hgWIK4yBigRrgb mAB4CmlCN1otAm4yd322/rpoSrGpyA4CtxgjpSmEsGG4EqepPX2qHh272Nqc4JJX8xvkMNpA3Hrk d6jeF85AZWPYU1FN3RlVkp69iIwEAkoOOAAKrsgOcgDHGVFXTbTIVCM43uUJkBYnJAB6g1Gy7cEK Cp5IautaOx59SmoyvF3/AEK7IADjbg/w461EI2CgjOOnStHKy1Rk21JNbf8AAImBOckhj2WowpVg RgsO4p86SNpyUWtb9xkisSCSee4+lMIG0gA464Aqk7axMlJxXM9WRoQMYBye5NSlnBUhhgj7uKm3 NsZRko6rz/r7iNpW+6yqWPU46UNKcEDAI6kA0+RdDaU3HVf1t/kRmUEZLEk9j2pvmkLkAMDxtBqn TS6EOpd66n3Vb2xlIJjCqTke2PT868i+IfiYS3cmj6dPm3t08uaaB+HJ6rXXjMwWIoRnFu8vy/pn g5Ph5UZezla6XTr+PojyC5uzDC0gyXcfICPu+9YSSFwWfBD8ncOtefCN3d7n2c6kqbUP6/p6lRo8 fMQeew7e1Mlxk7sZbpz0q4zs7I5p01N3ISu/CDAx1Bq0kbFtiHI6s2eB+NTJXdkOlBxu0LLMQNiE bF4wD1PrUAjxGZWIJbOMHrWsIWukZOPP71yuuSSSBychTTghwdvBPU+taSabMYwc99x6q7EASbQB 901KE5BLDk9z0qJOKVrHTSXM7yf9IeTnptKg9v50HJABbk9vWsVG+tjrqTvo2ADADB2lexqUqTjB znsD0qW0zOmtLPcdtLAqhycdR2q7Yade6lcR2dhaXl7dTnalraRl2dj0AA96m3O+VHRyOTS3/wCG PXNH+APxd1yK4bTvAmtmS1CmS2uUEcgLHCr5bENuOCcYzgZ6c16nqH7C37UthC87fCu9nijG9nst QtHOO3yiXcfwBrk9vTpe9Nrt+Z2KhaOjS0PL9R/Zz+OWkTPFf/CT4gBovvNaaVNKuf8AeRSK5K9+ GPxF0wuupeA/GVg0Yyy3mmTIVx1yCvsa1jL2jvHX0COCq1G2tfRpnOSaFq0BPm6VqELRnBV4GGPU dKrSadfDCNYXKEHaQ0bdfT61o24tJ9QqYKpTXuxdn6ky6RqZQsumXzKedwibH8qcug63KqmPR9Vd TzlIHOfxxSTtJ3JrYacbR5X9z/r+rF+Lwf4olw48Ma/Im7aWjs5Dg+mcdeK1k+H3jyUhI/Bfix3P HlppsxbP021E4SlZJGlHBzavZ36mpB8JPijcqvk/Djx7MGG8LDo1wTj1+5WknwO+M75Mfwm+JsgY bsLoN1z/AOQ6xScrux0PCOMLvT5/10La/AH43PuC/Bz4pHBwR/YN1x6/weuKmX9nn47LkD4MfFMg DcQNAusr7/crRwSi5Nq1/Kwnh5Qdv1QL+z58c3Yuvwb+KJU8bl0G6/8AiPcU9f2fPjojEN8HPikC DghtBuuv/fFRKk3fVX9V/mOVNv3k196/zAfs+fHIhnX4OfFIqDyw0G7/APiKcf2ffjqHIb4NfFJA em7w/d8/js/zmpUXLTS/qilR5EtVf1Wmnr1IZv2e/js2SvwY+KrKf7vh+74H/fvgYFSJ+zt8eCqk /Bf4pKucZfw/dc8f9c66FBKKTav6o4JYWVSfLp96/r/hy3H+zv8AHbbEq/Br4pZlXK40G6+YZ6g7 KIf2ffjmVZj8G/iiFTgk6Bdcf+OfWsZwTvt96O6lhmpRs106lofs6/HZwrL8GfiiVYZ+bQroYP8A 3xUy/s4fHz7rfBj4nIQDzJodyBx/wCsJ0pNatX9V/maTp80vcav6r7txyfsy/tAMyhfgx8SQiHPz aPOOvTkr7Vox/stftCmQY+D/AI6D7tvz6e4549a1nNXVmvPVf5nJ9VnJtXivmi6n7JH7RUiJj4P+ NBv6CS22j8yfcVp2n7Hv7RrSfP8ACbxIrMM5YxA9e+XqKlTlulJfev8AMUqEY2k2unVdPmbkP7GX 7SciBo/hRq6jGQZrm2Q/XBkHFTj9in9pcvk/DG7QE43tqNmAfx86uKnUhKTbkrndUpw5WlNW9f6/ 4Y0Yf2Hv2lGOH+H0aBVyTPq1oP8A2pWjB+wn+0fcgqfB+mQMoyPN1S35H4Oan6zTW8th88VL4lt5 /ovmXI/2CP2hZ1YSeH9BhKqSRLqUfX04zzj8OKlj/wCCffx+lAL2PhWMkcK2oDr+C9ef89a5nm9O ldXZyucHBJNfjrsA/wCCfnx1RwXg8JqqruZxfEgHnA+57fTn60p/4J/fHRSEC+Dxkbgpvm49j8nW r/tmCVrO/wDVjjcKVS1vyJU/4J/fHGQDdN4MiIGcvfP69BiPr+nvVx/+CfPxlRI2OufD4sUJKNd3 HBzyv+p696IZ3ST5Wnp6f5nKm6TSj/Xb+v8AhyL/AId/fGZXCvq/gVS7AEi6nIUk9yIvftmoE/YK +MLzCF7nwlHHkhp2uXIAB642/Tpk0pZ1BK0Yu/y/z8hOryq71/rXqaUf/BP34oyKCPEfg0SngIsk p/8AZBW1Y/8ABPX4hylReeL/AA3bK3V4Y5JNvPpxVzzmlTStFlUacYNNN2trp/wThPF/7FPjnwox lbW9G1CyUEia1R1IOOAVIxzg9Ca8nb9m/wCKVwHl0bQl1q1ClhcWMyAHAyQAxB4x6GuilmNOqrvZ q/8AX4mzoQg3yy16X2M7/hnf4xuBjwRqbLGSP9dFuPGem6vONf8AAvi/wuzReIPD2s6Q4ON1/Cyq cejdDW9PERqy5U0xLAzu0t12exwtxGwyGBOBxiqblQAQGwcgr/jXoRcUkjxuRK7Xlr/XcqsRgA7j 9T1qMlQCMAgcYPH+elaJ2ehMVzaIjZNoOQR3IqEISNuQSDwwHWqjUUky6kHSeu5E0ZJVDkEDqKiK gBVBbPo1bQlfQycXC7ZE3UEhiT3NAZtoIwCOOD0qkubRdTBt05JIUqVXhiT04NREZ6sAF7mmpJq6 VjVxu+W+wxlGSAQAT3NNZeDlRg/3TQpOKIqRhCV1sfYvi7xPF4c0tbSwl3axfAhCR/q06Fz+tfOk kqsWllZ2jQZaRv4z6D615ijHSMXsrf5/iRktBUk6ttzmbq4aeUyOe3APQe30qMSFQRsJweciu6Eb JXPZi1G6X9MjdkUFiS2RyD29qi5CMSo3Nxux1os0wjUd9RQuEAIyfU9/84q1KywQlRw7gFvYelNL W6Iry923kUQxLEl87hzjsKa+XOSSExwD2q1FLcxbc0nGxK8TIEORuZcjnoKQArwQMnqwNTKV/UuM lvHVIFCrlvugDjNSE4GAwAbqTTcb7mtCcYKy/r1HDaSQoBwP4e1CAKDkED0rHls9TVqMXoOBUrko CxPQV9T/AAJ/ZX8efGlG1qKJ/DXgqA4bxPqMRPnnJBWBOPMIIIJ+6MHnPFYV5eyi5t6I2pyi3zM+ /fB37CHwy0y4gk1C31XxPLCQxbVZTtJH+wm0EcdCDX2DZfDfwf8ACLwpJrmneH9M0jUL7dDYxWFo kflrj99KoQABwpVVPXc4PavnsXmM+Vxj1+9f0jGjiJVXyW0+7U7n4ReChDJpUDK7XmozG8vJFA+Z gQzj6AhE/BvWvqibSHlIUKME8qDnAxkn+teLjasKc1CR1z/dOyen9IZb+Gg5MS26DcTkMvf0P6Vq weDLSWP95HGWOASyYJHp+prFVZU4pp7W/pepje75n6E0vgrR4mTzobVljYkArjHHWsqew8NaWkrp penhlyCRGo9AMevWs54qqnaMv6/rQwnU5dr2XQ4bUfE+mq622l6Nbys4ypCgbfUYH1/z0qna6Rqu s3RabT4rdLhwfLEeAvPIx6c/lXdCpKneU5W07hOfO7Pb9TsLXwbCDH9ogjlUZKQovXjHIxWxb+Do w6hrCA543hOn6ZxXJXxEqzau+ttS4q65np/mWX0GyjZh9htgSSCQOg7k/rTJNOtImytquO21cbuO 35Vi5SbcW3ctqKsm7r+vzM1rGIPFKkbBgc7SBkevPpjHtTpLCNcIUkbb2ZRg49fw/lQpKVkNuzsT pp6mMCOMSBTjaQOuf071ILRyoKW5QqwyGH4Dt9KqMnON3LVjcXG9xGtCZQwgQMBnPTHp/Wk+xqEj VVZVBBDgdD0x+hrCNWKk4pjV5Wv+gkVhE4KMBGijBXHfHX9KhgshK0wlAIjI5ZSce4FdEZtXW6Iq Sc1oWJLGAKEFsp5O4beV5OO30NRmxVmSSRFZJBkrjrgf/XFOVWU46ji2laJEbCJgBtYjduVgRyM8 YH0JpwsEwjFR5LjGI+/tj8KyVSKTS+4JO26ITZLuZTGY35GHBOwH/wDXStbOWUPEGZsfvH647c4x 6V0NXd49hpuDTiiJ7WGRiSpVUY/KRyPfOaga32Od8cbsPmCDqeef1z0//XFRc2iNIucrobJbN5TO sQCvgAOeT169M9KgNhErLEFDsfvZAwKIpJXjuKEl20ZHJYqxZoRtBGQsg/L86i+wAlSZSXb7yqKO ZrSO4RqOLbZG9qquUJaJlAIwM7h6k54PIqo9rEHZidyk4COB8ue4GfStG3fme5LaTs3oUWt4nY4C ogABXGQ2Ov8AKoltFKIQUkLnOGP+fWlJRk7vYai0rx6Ge9qPLLBiCec4PHp/Wq6RKikSEksMErjn jr/KlOnBrf8AyJinHVdf607AdPiaNiqoR0+Yg/TH51XexkikYFEBxjLYIb256fzqoTnJ2e4lRUo3 jsVmtopHMbKQ4+6YyOPXNSpYSRoskCrMMDETE/z/ABrnl72ifl+RSik7Pz/E4nx3pKahpybrUpM6 mNlC53HGVOfTII5z1r5g8GiTR9R1DTzE8r6fLvRTjLxnn8ipP516VFRnCKWvn+n4ixacE0j0PUvD epNdRtZ3DzwSAPHP6qRkc1zup+Gry4ie2vre3v4G6x3cYYD8xWEJwvd6MzqOVKV1v/X9an5w/tK/ BCDw4V8WeFtMgstPPy3um2udsZ7SKCTgHuBgD0r4jljALdOec+lfWZXWVWlaW6/pHLUk5SSXoZ8k RySAMdeKqkKCTjkHGCK74SlJKxwKHK+XsGQQFJyR2x0qMxqSSrHBGPl5rWD5NUdDj7RK717kRUAf xMeoUCoGGCzHJI7Ct4Pn0Zi43TuRFQWBDE5557mmop4BZcH171opOG5nTTk9H8/zEKgsFyMgcHPW mlcAZAyOxpxTWpdWzkxuCwBABA5xj+lMIPOQRn+FhTg7aESd46bHoOoapearfT3l26C6nPzAcLEP 7oHYCubvbzzXWGIZgjBCn19Sa8nDU1Bcvyv/AJno0HKlTWvM3b56GYqkYIcrkYx/WjcMADJPpg16 EHZXN+VU1v8A1/wSMsSqhgCVPL+tOVQBk5wR0FEm5bBCCbs+xPCoVWuJFIjUdGHU+lUpJPMcnfy3 JWnFtGDlCUrbMVQMYycHrmpIEV3UuQFB5IH6UOa1YcsXLQmkjDuSGDEnPX9OlSRwR4AdnBzn5Rnj 8xWTqpas1VGUr2SuNMQyQoIBH3l/z9KaYmAxsO0H7p7UlUW7NFh5W03E8p8kgZwOop4jlPKooA7k /wCfal7RJavQ3VKad7HrnwN+Gk3xY+KHg/wMryRWmr3a/bLiIEmK2U7pmHvsDAZ4yRX9JUPh6wtI NP8ADXhjSIdM0bSI0trbTrFMLFGowoAHsPzrxc2re7CK6u/3f0zKsrrkvoeqeF/h/qlvHHdStEqS YHlz8DGfb8a8i+JF8PE/xG03w7D5Mum+F4zE0duBsl8tiWx1+9OxT/gCmvnotVK90tFr/n+f5kYa D5lZ6/5f8E+k/hhpdpHFq2qzMJBGVs4GkAywT77Yx/ExzXrEWnASthiEAyUGOhPXPrzXPjZctRq2 iX/B+86JTb1aLLNBZoz+aFUHBLkcf5/xrh/EHjvTdLWRUmR5lGAFXk81yQl7R23OSdRxjfqeaXXj fxHqrmPTLB41c4UueOvHFR23gvxNrJWbULyRIp+di5/lXVGgsPeU3r2+XczVP2z978PxPS9D+Gtn YMHlUyyO2fnAIHoa9Ai0KOBUVUKgjhQn9fy/OufE4t1WpNf1/X+Z183K1psTy2piBMpJGC27OOTy SPzrMnuI422INrRgnKMMGsYSunqNrmehzGo6rEoYyBPmxlTwR9DWMbuWV5NpLRQHBYkcnv8AzP51 rhot/EEHy6PcsG3uQHKo8aI2Q2CM/wCQM1fW2d0JwCgbiKMnI5HU/nTck3o9AbUtUWxZfJHEPKRA cFgRyfX8zUhtHaMBSFAUfMuf5fhWNSLpq3V7iqSVtB0dmdoCxRqSwyTzu46D8x+tPMMkSpCjBlY5 wCeP88iiUkotr8f68xJuK1GtGEeQqQMjGJcjJ9AfWo7e2CTXJfzFwwO0nrgcdfwqudJJ9dy6kU42 uOit3yzYdjt3kgdwemM+9NNmhKnMzGRdxjUjDD/Oa2acIN31CtJRfuohitCkigRu7EY3kdOfT8RS rbbYipjIVckODhsevT2qIpz95/1/w5nCfLv8iKWyXYzGL+IEs7csMZ5/Om/Zo41dwoVUIxsA44xn nt1qU+Zcy2ZrUjF2T3GvDgPGm1mYfMI1xj1IqJrUFXMZZSTy5zluO/8An/CrnJQ0bIbu7tkX2PcE ZinlgngDg81F9jww3hUJY5lHToPw61UJpOy2/wCGKS5VZvUpNZFlZSN4RSwJGc1WmtGRXJLqAPlV TyOMc/lVw5bbdwq+9ZMGgWQ/JM0QA+ZD0HpnA+hqF4GSMtNGFibpt6gZ/wD10lU5Vr1/r+vIuo1F pyRQNox5ETB2ySQeo9ABUb2wG4sGPlguYgTxj/6+KzlTb0FGLjFwWn9blBofMUvgkH1HP0z26/lW feWLMgZNrMVwWU8jjj+ZP+TQpOErMcYXVn/TMxC1gzKQkcanncDgjv8A1/Sti1eC82oRGWAyATjt /wDrp/Dq/wCtf+CZU5NNt63KV/ou9WeMAgc9PrisRzeaW+yZWSJTjI5I9APyFRGSqLlk9f6/r7zS Sc1zIl1S2j1zSriGJUkdBuiVT1I5HB/DvXx14ospNC8W2eopGUi1AGMiQY5zkcfj/wCO104VuEWn 0/yBXei1/q/5f1sevW8msXei2dxp8scjWi/ZpUn5HH3CMeqFfxrlr+HxOGDTRRhAfvxd62VOlUm0 +/n6/kc8n7dcx5n460Fte0HU9O1C0HlXcLIdijuuOPevxU8S6K2i6xqelSRhXsZnjKn2Ne5lFRNy UXoJUFa7f9ehyEkKhsBQCeuRVGWBQwYAdMY9a92M1dWZwtapaaELW4AJCqA3AYdqrSQY6sCSfu+1 awnbRstwhJX6fn/WhG8GAcNlv7w/wqF4nBznrwcf41vGaSsYOLg2okDQg9GBI7g1E0RBLq2AD1Pe tIVFEzUG43i9RoBBOCPc+lRMGJBBAB4y1XD3HpuKcuvT/hhjIOCcgL6ClkAABXJDDOT+tPncnexE UldvsbVzcJDEbdS5lYfvMdvRayw5JJIZh3Y159CJ34bE+2jzdP06fcICTgkAqvY9/wAaXOMgAbjx 8x610N8qudEdbykMbllU5Cp1LVPFG0kyxKFBY4BY1KWqvsa89nJPfz7IZd3CFVhQfuYRgY7nuarr GwAdlZVb7rMOp/zmri+VHnqpGo9VqSLGGyFAZicBAOTVhpIrd2hVmkdT87KOPfBrObdTTqeg6ioy Uuv/AA4+J4n37soi8liKDOjHChiSOgFS6V92UsVyx0Wv5iiVWJA3kY6sKcJVYMSTheSzVTgk9C5Y hzTfQeJFIBBPPcjrTvMVEdmRiCc4Fc0op6I6413NNvax+pH/AATc+Gj3+o+KvibcKQkP/ErtWI/3 XlYfmg/A1+zmkpd2TBtNtFe4Y4WWQdDXh53JU6nKt0l/meKp3qc0dmdlFJqVhpWs+KNcu5LiLw/b tLBZIPlMuMR8f75Wvl34dwXF1rWva7O3nKknlJI/Ryg68f3pHVvqK8rC01CbfRf0/Xc7aaaTsun5 /wDDbH6H+D7STw94e0zTZdOV3SJWcuR948n+dUPFHjXQtEile88mGUDCQp1Y57CvMr3c7s0xSjGT a2PCb/xTr/imYQ6XbXCQyHAaMEZrp9G+Fd/cSi41OcrPJhixP+e/+eK7FQjQh73xHDCNpcz06Hs2 keB7CwiVjCGZgAZfT0/pXXwaTFa+WGQrycZUfL/nFeZKtd839a2/zNpSbd0iecwQbGJRZEPKetc1 fa7Y2hUscBeQpPbuPrwazkuZCSTaXQ8/1TxagVGTbIVOSFboMcfpmuSuNYv7wOtt5qsOFfH3en+f yrphgfZotJNNx3LNno012YfMkd0A4DLnPoa6y20cRgSIxYIcZ3YI6cZp1GoR5HoVCMpav7jSWzx5 QRjIF+XYuckc9fTtVlrNkjR5GYyZ34LDGfz9+tc93fzt+qBQtJt7j1siE3DcpZeWLY3ZPUevSrAt osSvOxDuDgIRgcZGMe9aXvq9P+CFlFKTV2RC3jbOVcyA5Bx0/D8v/rVIbcyRDClfMJywAyCO2fWl KSveo9BKcWr2CS0LFmKgOpG1mGfrkfgfzqGCyiimuGLNMivnc46nHp9aiU+ZarT1/rqW580U3sOl tiZWYFSI5ABGo+7jseP1phgJKspjfcMlOw44yRVTk5+8hJJxuv6Yx7Vy6qEgfdgqxJBHr069P5Ui W6KBEGABGOVHJ+v5051E20lsOMbavYje0CxgeSQF5LoDyMY/Om+UrwozjaWyWc9Py/8A1VrGXNHT oNtOV2tNf6+4V7fchAVpADjBPQY/+sKhe2VQQVR1BxnbnP8AnOKyhNSVr6/oZ8ylLyK/2fzI13Fl VBgbl/z6H8qebRVidQGII+Q7c47nH6+lNtLRqxtCXM22zPe3Ys48hBxyWHTjoKryW5PysCChwQT+ tOErtO91/X9fIxlFy2ZC9thGRgYmcYIjxjHfFRyQSNGzruMg4cAnPrx/ntVxfM02attqxXWzwzZw Cw2hnAzn3qrLCiyKSBHg9FyPrk/lWjvNWBr7F9SCayRQ8iKoRhjyemPfP51mtAVVogA56kMTknGe T+FYVE1a+5MZON5DJNNikSTf8oK43DHQDtg1ytzpd3ayebagqqgngdf85xXQmpy/r1RFVpardmjp WrRSHyrlGimztZZSOOema3JtLtrxS6Kih1yNh6Vx1U4txX9eZVCUXscpdadcadIzvEIwx3b0Ucfj 618z/E7QTNpuoNCqvLYSebEUQDP8QwB7bh75/Gu7DT504rZopUnstf6tYf8AD7UHvrc2sRVDqsIV ZD2lQZHPuN/5Cug1DU9VgkaG4toZohxvjB5raVNTlfW7S/DT9Dkk5U9F3/r9Tk9SkjvoirxiLcMb GHfnP+favyU/ao8Dv4e8ajWYIGitdeBYu2MeYOuPwx+td2VTUKlkxQkpK/X/ADPkmWBgcEKFHb/P 4VmuoAOAVJPG3tX1MZRWr3MKkHOV2iBk52hSdwwWB/z7VC6gdMAdKulFKN2yoNU1dERUZ4IYnvVc pGRyQCB0xVwk4ppCqTjKTTehGyA9QOfXtUTIBuA+bB6selbqXNozOpBzVuv+ZA6BWcgjDdCKiOWB DYBHJJraCurs5XFN2j/ViEqSQQCPc0EBkIIwR2FNLm1ZFNOKu/MiEjMcscsR940/cCQqKdoHU96w p2g9j0qMnblat/X9IlABy27AXkE0hzksVCjsGpP3nZnbCkrXS3/L+rDgjAKoGHc8q1aDxraWzBgg nuBgKR0FTfntYmp8Dv8A1uZSqHUAqBjuO9SPJJIoLuSDwq1fNz6HPGkkk+o9CbWFpmXEsnyxH09W H+f5VTSMsQuGbceQauLSRjNuUvQulQiLCAc5y3uaSPGAMKCecjtUR1uzojTdJJPew8ggnC8AcKR0 qTaCqqQSueQT1qL8m+h0U4uXuyX9dSQ4ADAHAGPmqtMN5O/ADDg46VlTjqrnRiKrnB8u3U/pH/Yu 8AHwd8CfA1lJC0Nze2YvZVlGCHl/eMD9N+Pwr7Q02DUQS9tbrhSMAj+lfK5tPmxE4v8Aq2n6Hl0U 2rMw/jDf3nh/wFp+mXMqmXWJWvJDGeEWMEop9iT/AC9a4n4O6VBpmmaPPebxBcSxyTG3IDMMeaQB 1bIeMcenYCuPBJwg7ba/kl+aO6NNNOy6rofRuq+KfGfiV307wxp6aXZFgq393gsRnHC9B271Povw Ukuboaj4gvJtRuFAYiY5BY8gAdB3rCM44WHMl7xz1YXd2z3DTPBOn6XFHBBaoq4XEgXBUV0P2G3t nUCNkkU4yTnaO/8An3rzZ1JOVkaQp8yutytdXtrboGkdYlBHy59/TrXC6r42sbcFIpEkfCkKF6ex z+NTFSqtKO/Rmcm92/63PMNR8e3l1K8MasyscfIOG9M9+9cvex6rqV0wQzFXGA5Jx+H6130qDgud 7Ak9+pt6Z4RknkDtE0yqAcOCQx/zxxXd6f4XW3wWiJJ5wCB+n4Gs6lZtpLb/AIb8za0Yehu21giE wiONy2DvkPJHr+p/KrYsWIIZAQ3Qsx444ziuVqUlzd97/kvz8vmaaPVDlslRpGZFQZ3BF7D2FPaz ZwCYmY4H+sPXPt61nGqpO/Tb8DNNT6sfJbGJVMiCUyH5lAPT/JqERZJdIgCrAlQeBk8c/nUtOCte 39aGkb7NgLaMBNqBWUhjuOdox1/DI9KaLOSWdUZNykg5Rep9P51rCo4xta4KLiu248WgIkdkjjQD IkXr06Y/ColhAkkDxo6oMGTB+pPvTg0tUrvT5bmCfM3d6/1+g4WW4KGLcjIY4wffmoTayBmkEeWZ icr09OPzolJJ3f6/0jSEm0nZDltgXVdjoASxdh1PsM8VKLcFkZigAGNqqRuPGOcUovlV10ZSTi9i BoIGLZjVC+PkOMAHuPz9aYYEBLfOQu1suen0HFW3fRaNmbi7qXUY1ujqZBGUcqcFc4xnJP5Adaak ChQVYKx5IbgZ6Hj3FZuairt/0v8AM0a5lzPTUgWzUiVkPyLglgoyO39DUD2qGMx/O4U4+U/eHPGK ctGkhJtWkyBrIlYnGGK5JcA5H4fQZqrJaBhMUGSo4U4OTnNazbsnYvmbV0xklqpJJUeWBxHkdMZz +lNltEAMluxViTlh/GexA5PQEfjTaUU30M2rS5o/1/X/AASk9s8gAaNtwByTke/8smoI7YyGUMoI jxtDdfb+f+e9tW1e/wCn9f5Aqbbsyq9o5LxyMiq4ZNp4/A+nSqstk4IDQFQSSGQFvz/yaiLb1Wr/ AK/QatLVP0RUkt5X3u5ZgvBZieT3OD9KjktQ+VJRw2T5h6nH+f0pKXs/cvbr/X3jb57Nff8A1/Wh zOpaDGIpDEhjuI24MffJ4Geue+fpWbZ395o7iC8LtFkorgZyOh/Tt/jWjgqsbJa/5kTbV29/6/A6 9Li21OAkIJIiMAnt+H+eleQ+N/DEJLXUChoLxTEzOq5zjIyTzjg8fpToyVPR/wBf1qdEFZ2W/wDw 58w+E2m8P65qOlhFWTTpvNhjY/e5BUE/kPxNe9+II41eG6FtLPb30SSo6jqCuQf1rtqPms5Pv/Xo Y1oJ1JJbf8Nb8zhrsxyM6GzaJDycj+dfIH7UvgRfEXgLUbq3tS95pQM8LL1XBy2fqobilgZOlNX1 e5g586a6H5CThQxJY4z1U9azJAMscgjGeT1r7WSUXexyuSb319SqdxLqCxBHK+tQMAS3fB7d6unF yV+hKfMtXf8Aq/8AXqV3UZVScknHWonBUE8KSCMCtlqtCU4wk5RX9fMiZXKt8rHaeq1ATtIBBwev NXF810xVFJK/fQhflhwR2xmoWyWHVQO4rZxaV0YNt7KyIWDDORk9yaaoztG8hW4JFXa+pEVq0t0R HKFQVVWPO1T0qRQwJBGAeoxzWEbLW56VOpdJxRMWyQuDtyAcfyoGM5AygPAJqGjvuoN2/ruaFrFC pa5nRmjhHCHjc2OBmqdxK85aRyGOfvCnB63McRDVRjt/XQgPIAAABGMk1JDCZXIY7Y15Zm7DuaXP yEVI+0ScV/Vv+HIbiTzZNyjaijCxsfujtUkKsq+YQcnoDW6dk09zCKk3dbMlCgMApJB/iNSKpztC gDuw7VjdS1Z2wjyy0HFSRu3DC98VIoJIO7OBjJHFZyaSvI6qcZO7bFZck7WbYMcjv65rsPhl4Ouv iB8RfBnguGKSf/hItQit3WM8iMtmQj6IGP4VWEXtZpM48VC0Xb+kf1p+EPCsmm6JYWFja7YbeNYk VegAGOPyr0zTdJuCYIQzwSs4ZmbHHb618JWrxq1HLuzBPXnR89ftD3AufENvokc532xt7FEDBlbP J49QykY969U8C+E47uHRrWC0eOBYPOUSR5GHY7QD1yFCjsMVVKSp0ml/XX9T0YSlBWff+vyPrTQ/ Csel20G+CBxGAQ6KPy9q6UJawRLtCBwOORzgf/Xryq7Sld7HN7yaVjA1PxVY2KybpkU4GTkc/XvX mes/E0IkiwNIkknGWHUe2KwUJVLNLcxqz9mkzyLU/F2q6lNHDFI7DBXMY6/hUNnousam0sjs4D8B kH3vp+lerTwsaMdURGLqanaaL4CO8ySLKhc7gXHPHb9K9EtPC0Nu+6SIguu4Jjrz/wDqrLFV4t2e yOxTs2pG7HpiqmEjKIjAEgYx369qux6ZKY1jdSivgcH0Hy8/jXmxnZ8jJbadmPj0t2hYOAWUcE++ f/r1Zms0hdlKKI+AArDn/wCuMH86V5cza3+/+t/yCCtG7KfBcKShOcEheSc8Y/z/ADqvIzSsArFh nJTbg+/FEYOErscYKPoQhZI5AECbG6RD8Dz6UBZCuXlQJnaxjGSeD+fP8qJRtJSX9f8ADfoTNyUe Vjnt5ERWSIkgAZY449R/nvUywSyRDKFA+cZXHaqlFuy/pD9pzOzGGyk8xgSrBh949Bx/+v34pTbO pk5C7z91SOeOp960k3FL+v62KcbppjjaSshhK7iDy7g8cDrSmPhWLK4jIAVh0/ySfxrJtx0Xf7hu SirXBraRXcKiZdjgsvXPf+dQi3kR2icruUkluPXrn8DTcXGd9l0CEU1dPQbPADIFTY/ltwxIGOeR 7VDLarICvynJGQpz2p25byj95moWem4stuGYKYmAX7rHt6k/jUTWuX3hAxYls46+oOfYGspzaXKi 02naTIzYxBWG1iHYfJED8349up61EYQgGFLbM/uyTxgdPXnNXdpNMdNXehVNpEFUvHOQoyQpHTt9 elRvA8KgEMHUZDBeM/5z+FXSXtY67f8AAsLmbbsVpbQxiEMYmbHf73I6H/PpUf2JVkUBAEJyroRz gDt+J/CqklGPvPy+7z/Al+69fkQyWgLqDGqlOAkX8XOOPy/z2ovaOMFC4SQEsCBgcj8up/KppxdW Nm7ou0pNtMqiyVmYBnRWwu4rwSQcdvXP69Kr/YRJFtQNkjks3Gcn/wCtVpRppJETaWqKw01yQxA8 zB27skr6kf8A16rNBIrAkRqo4KkcE/j9apT5fefmW7Sai0UntywLoCVLblQLn5fbp6VmXOlrOnl+ W58zgs4yM98+hyP1pK0b8srrr/X4Cu6mq0OdXSLq0kka1kkjKDBhUkgAdM/iRT723bU9LubG7iKX PVSRnawGRjIPp6U1UUrNblqSi1byPjjxxYrovijS9ciWSO2vD5UoBGQ3UE+h+9Xt+i3EWoeG/LBL y6YwCrk7hERlT+GSv4dq9HE2nFprt/kTyuck09WvyMG6ihZ8bVVupDDmuI8X6Lb6rpl7ayRKyXER Uqy5yCK5ErayRjyNu5+CfxN8Kt4T8ZeINHkiEaW1yxRWJ4jJyuPwP6V5hPCFA3AEHnDGvv8ACSco Ru+n42OKUEla2vUznjViOAR0wTVZ42wwGQpHAIrem7WUjOpBTTUN/wBCJlfaWLklRnIqu5cAkEFe u0npVxjFvbYU3K0U3r/X9IazSYO4DPoAOKhyWONowDnPrTSSSBuU2khm4KCAQCRjjvVdgQQQwGO5 Naxle7JbUIWk9f6/4FyF1yCWwcdx3qN1yAdpBHYDpVye13oYQg1d+hWTBAbGCe57+1ToSSgU4A6e 5rKUdDvoN2TJVXAZCd0jjBI/WrEEPnOkKKCx4NZQXY9GUUkk+hbvJkJW3ici3g4DH+M9yays7TjI IB6CqgpJWZzxcYvmvqMBJCktnd3JqWVzFGYFBy+CxHb0FNU7mdSo4K3f9SKJCTlhkjjcanHI4ywP ABq23cqmlDV7kqA4YhR161IQAAoBLDqc9azqKUtEd0JqKbS/q49VBBwQG9BTiAqnI5A4XPWs3LWz CMLRv0/L+rDCXK7gAqnu9fon/wAE0/hu3i341ap4xmthPY+BLH93IV4W5nJVD/3wsw/EVvCSpwk1 0T+9J2M8RNtXkf0c6dDqaxxLBGzsvUN3+n613Gh2d6dQW8vWWOyscyOwJ3FQuTx34Wvzqo73dtvx M6Wlkz4e1iVvFnxFt7tY/Meaea6KSJwjsxCKAOB84XHX7+a++vANzp/hvSbi+dbRPtc3l+apb5lj wi8NzkYI4GPr1OlZctLl66f5fobyk3TSfU6Wbxnql+XfT9MlhjUYE8i4B9D9K8y1zxldROy3F8sR YZFvEf4u49q4IUlzWf8AX9PU5Zuys3qeYSXWra1cFIlkliduGYY5xXSad4D1XUmjMxMe8k5Zuw6j B+teg4qmm5Ewhzf1/W56nonw1tLVopZI1kkQblikGc9xn9K7210C2t41SGH5k+YKp/Dp+FcFWu6i tc2hH2cdNjXh0uMkKI1SQr90Hj6fy/KpzbIqAXALAHHyHkemD+FcleLkrsqMOV36kYW1UIuEDsCC JONuPX8qiacSbisigHIEhB5x09+1Zx0XPJa/oE9G/wCvmUbq5ZwqxkBAN+6McjnHPp3rLlumUFHd WEhJEZPTnuRWifs4+YSaZlLcySSRwoheORsKid+gOMd+DV2K2kYMCrNJMMjkEqMcZPNNuSWu/n5m atPdmpBbyKAGBeTAUyEdsEfn0qcW23aSgBnGMBenPXFW6cZpWWhalzbix2TeS+1ColODs6nirD2f mRxje+8kbUb7qDH/AOs1knJpJbro/R/12FyXV+tiFLcLIBIiqFcgggf56kUyO0QTSFgoUsAAp9sZ /T9K0m+Zp31LUPxHmEOm3dHkDALAnHTjFSGAxxyCVQzHDF1H3umP50pSc22lqDi5LVjDAWKnBQ5z uHGO2ff/AD6082sjB2DSISuGCJ07Afp+tZNykro0hCysir9j8kojgKgBBUjg/wCJ4ppgVyxjZXGc BEbBJ6cf5zWlSfK9P6v/AF+Jna17oYINrF2KgyKRyuAOvP54/Ko/ssRBEwAVmAyev0HrV3cYqS/r uXJOLTe477KF2g7SHHK5BI565/A9+1V2tlQRksRI4wSQePTn8KlOK1e2v/A/4BMbxSRUNqAgEkYk kZhgqucjnPJ9/wCdJJaKxVGQrGRjavB57c/hURmouz02/ry8+4NqKv1VyJrIMWDhXI43tjv0Ofzq s9rI3ms0iOWBIVjtyBjkZzu6VVNKntr2/r+ty0klp/V11K8sWwykxIqrgMpHXA6fp+lQC1fEjspH mEEhDwOfb/CtWr36A1dO+/4FF4hlmMYYuCVGc7Rjj+X0qlc27DzHkIiYg8k9T7d/Ws6KirJkSbvd IrtDuJLAtGoJwzDjjn+hqGe2CsU3ICCWEaj5jn7v6YpRpKoubYm2jfQzrm3jUgLGjMvV1OenH9Kr uuEEbncQ2MOp+U9yPyFQoupdi9rFR16mfLbHaUGFUcqrEDtxkf5/lVdIhCzNsEhbBywHzAY2k9sE jv7VrZJrX+tzSpJU3c+YvjD4cdodXtQVUxj7TbliSFwdxVSfcN3x83bkVT+F+qtewW0cshMN/GIH UvgFgPkbHc5BH/A69Ko1Uik+q/L/AIb/AIBVS04pvo/6/M7G9tYxINy+WyZzHnAOP/rVzmo2StE6 hHUN1dvrxXPTgpPQxVRNt/1/kfkR+2r8Pzo3iTTvFVujLb6qnlSuB0cdMn6Zr4LuISAwLJknAYV9 hgot0Vfcxly143b11X4f1/SMZo9wYqpIHYDGKrOp6BSAPWu9LlWpxqmneS2X5ED7wcABieME1E+c AsqlQcc1upNPQ1dN3aWv9f8AA+ZE7KAVKFiR/F2qu6gEkBVHoKuLaemqJbi21tb+mVyigkNgHPJF QuQHBAAUdARW0btWMKkUoL1K7gEOcgknGc5ph4AwSB121U1dXIcb69P+CV1UD5S4GD8rKTgjuanj AwCvygcYHYVim3dno0oqFkv6t/noWY1BViQGYnGR2FaCyfZLYspC3FwOw6L/APXpRUW9TpqVGopd Xf8Ar7upmkl/L+YM0hxtHU/WnzxokaKGjKk4Dqep7mqSUHZGScUveEgMcQM8gBCH5EYdW7ZqoCHL FmYsTkk9acbpMUpRk/d3/XoWQioqqSSxHI9KeqknIBIHcjrUR94cIKTvF3sSuxwuCD2AUdaekLMF Abkjqxxx60c7gm0dXs3WajckiXacgE56EmllUudgB4HANYcybbZ1cyVOyWhVYqoJySp6AAV/Rr/w S9+FMPhX4H2vi3UbV4tQ8d3r6gWmXBWEHy4R/ukJvH/XSscfUdHDT87L8V+h5FRqo+V/1rc/WSKe 1VECxhI0GTCPbkfrisnxXrA0jwH4rviRD9ohNqgmJBkLcOqn18suce1fAKm6ralsVFcmvU+QPhhY x3/i/U9UfyZYtP8Ak86RtoIiGep6ZbyGz719jQeItA0CxtLS10q88RazDGN1zcLnacDIZzyfwArv rxfJFrq2/lrqddabjFPyRi3tx428TDyi1votnOcm3tRy3blvz/OtXRvhE87xzXzTSNIR+9kbO3n/ AOse/wDKuaHLRbXVnHGk1K17nrOleCbDTRFEkUW5sFmQe/f9K6+DSIYyQtusajjzT29cfpXNKrKq rS7HRycq10L6WsIUh32qwO5Ix7/5/WqkjWsBJLJuQ4CqeT7j9awlUUdVv/wBTundGfdahbrHIm4H A+cZ9hj39awrzWrWNzmaBN6/MS3U+v55qIt1rN/1/TJlJRbuc5e+K4EkJt5f3hYgqOv1B/OsubXr 28UCCIKGwBFgqFH48d/zzWlGi6e/9f8ADDcnN3f9WJbe31KdMsWUyfLuQHJ5zW1aeH7mRW3maQsM 7ByQew+nStasVTat/V0Eqdnc6Sy8PvGVldUAIwDKvTrgfX/61XIbNQ0gw4wc/dxx61hJpvyLlFNW JfspUHYyqhGSF5z7ZqykMYKbioQ/wNjr6Z9OKyk1Ddg7xumM2EqI4kjRRuJbn5fYULagKUcmTttU kfN2/me9aNqL1/r+rmik42QCBEQzISAvGSScnHH4UwQKWkBjlJYgjLDAHvj6VMJWvboDcVbsSfZQ giYhQ2dpyf8AOetRRQMqPG8SkDhVGePfNaQm5SSehLSauxRGgDOoIWUDOR1Hpn1omtWR2wSY+SDn OOe5/Ws6lRxd3v8AgTZta6DPszSMqeWGcjAjA+7+H4VCbdJGkUxqQRhhg8Y6n/P/ANaiUvaK/wAz S6S3FELSSElei7gFXG339uKVbQMZFaEsAucEAYO3H9a1pzUGnsiYU3Gz6kEtu20Hy0BJxtGRjjj+ tRNaBmGFCg/djXnP+f8AOalUpJNblTXNK6Y17TMiEsSWJ/eMo+U54/TB9Oaz5rSRtrqzAk9ZBz16 U4p3dlZ/1+liORN3Yx7VBtQoAhwqLJn5R3A/z3qEWgTIcqTIQrFFHGcnAHr0pxkpT0Xz6BFaXaKr QKPLjI2uw4RTkdetVJLZnZl3YI6kDAJHGc/nUTaSUW7/AKha703/AOGIjZxtKVlVyqjDbxyOOnTj t/nmqctkN4Eqy5JA+cDJ7nilJXTvt0GoySvIpT2roxkQYY8ncMAZPXHbgdqzJItzEOEYSH5SOO/H v1P61VS6u49/69f6uHLd2WwyOFI2HlyDaVyzEjp0JyfcD8DVOaxO0nYqK7fM4C89zn/PNaxTl6f1 b8tjOEHFqN/n6GTNGArofMJiIPJ/HPPsapOolO6AqqKMKHGM8dDjvUOSSvYV5RSa/E8n+IWlGdEm EAZjGVLEH5h1A44xnPr+FeL+GNP0fQZ9LjsNWf8AtlHlFzpLKMwMshaJ1ONpUosY5Ock9sZ9Kg3L lt0f+dvxZsvgd3/Wr/Nf1sev6vb273ZlVXjhuEWVY2PYjIyB04PrXOTW+9GRGKAdiDg/QVhJuKMk 07Lr/wAC58j/ALUvw7Xxl8N9YiiiRrywT7RCzAnDL/8Aqr8KL2HEsockMpIIP8jX1WS1UoOK1a/r +rGMoJ6bf5/1+piSE5fAPzcALWaDudgxYFu+K9qmu9mebOqlJNr+v8xDlQwLNuUjOP8AP0quWIBP Jzzlu1bxfMvdRa5oy0YoIbOceuD2/wA4qvIQpbac44waUXb0NnprfVlcuSWB3AnoCajySTuBJHUm tI2St1OdzlJpr+v+ANKgkjcSMd6rGMBdpb5TwTjrTjJClTcVeL/qxTUhvkIJJGS9WYwWYZOFTgjH X/OaylFs7ac1TVktdvuNW0iVt1xKAYYRkgj73oKqXE3nyu5baX6YPShQ0vudU7Tkot6EQKohctuk fgbew71Gql5NqEBs4AJql770M5RcFzJ6ofcPGzBY8+XENqk9/U0kSAks5DEH7pFNtx0MYwUtv67E 2CfcdcCnZAUBQAG9DUqNzq5VB2e7HxozspXACjJJ7CpABnDMqk9iOelNyvdG9JtJNPQmBAQlid5P GT0quACRlzhuhFYRfKnY0rpJJWNXw/oN94o8SaD4Y0tDLqXiG8hsbePHWSRwij8yK/st+DngKw8F eBfCXhexQx2Og2MNlEh7KkYUHH0H61wZ9U9nhYxa3f5L/gnmSgozbue3JpkCwB8kiQ4JIHPYV418 e9VGkaFomkWjlZbhHv3RRncfuxYPX7yuD25FfFQk5Nff92v6G1G7dvNHn/wb0Ka18Mx3vlIsuouq s7xBvvfOc56Zj8nnrkV9MaD4eurmWPyLOFUZuZSOCO3NdmJaptW6K34m2Ik6jtc9m03wnHFCjzIg kjOMqOnbr6HiukWxggQRjcFiHzEHHH0ryp1XNu3QSs7sjNzaxuUDovlclv7n41j3uvWdsks4KE4J Ac9BjnP50SVlf+vT9CZzS3epw1/43to45Gti7ygbcLycdzn61w974yneTZDBI+eygnPPT9CKuNPn k0u3/BOdSk2l1ZXMniXUo0McTorHlnfBAx6Cr9v4L1G7mSW7uJpGcnBUHBOOlEKagrNmkYXl3Ov0 7wFErwiWNgHAH3evPv8A/qrsrTwlYw7CIgQVywcD8AKmpGbTXX9TZWveRqDRLOBUAjKs5LBD+mav JbQxxMihVEgIXdjg9+KxlUTavoynGy0IpwoKlTIqxcq6ZzyBnNRG2QqUIYDoCvOTz3+mKxk5Ql7v z/r8Q5ru7HGJFA2qQzfxMMkc9D/n0qF0jYlSmMDAT0PQ/WrpJ8t1oEX1GtCNzCIAkDJyvK/5NNaD cUDZLZ35xgHiqUlK9/61G10Y/wAtGZAkY+fLNE3YfX8KVoY9wyoZlGAqkfN9f0rWNP2aXN5fPf8A r1BLkaQ0wsquXYEk/cbBz75oS2CwbiYlKZ2GQEE565/Ss40+aCcX0CTUfKwptAHKsWEfAIHAP+f6 1EbZl3MgDIANzdMEent1rSNVJcr6ijNIe1uyE7hIJCfmQr948dTmoRblC4KOVONwOeRnn/P/ANas oJzVv6+Q27vmewLEweZywBQZVVON3Yjr04FRi2cIYwCEwP3iqTg/rn/A0+VpbalXu731/q4ptSEk SUopODkkDGRxxVV7dGEZjYkgYIPIY46/5/SmouSSjsRGzd0NeB5CQwlDHGAfr0P5DmofKdljXzCw JJEJYL35P6d6la3sOTVtSKaBfm2x7WQczJ16+vTqP502S1jiDtMGYBchlAHbA69eh6+9VzppxHFt 2uUvs8QJKBpFQklyOn4ds5Pp/hTktQoDeSjIBtyByo4zz9ahSstOuq/zBRUlfp/mRNAgT52VnGMo DgHPXkn0AqoYYTHneyyDsAeDnr+VacnM1KIpxUn5lJ7ONXXId5HGS0Zzuz0PX/OaznsGBwFRFGCC B3ycfrj9KmTb22/QJXejKMlo6EsGWQAcMgwrY4HHbtVNowSyM2wkg5yTj15ojByRDg4+hHcQxu4D Ko2cnYAdpxyeB6cViXOmlXcxkjc25kPGff8AIU7qer2HFpO+5zeu6YdQ065tZ1CrEolXzOcMMgdD /UV8e+NLOTw34o0bWoUaK31A/Z5YypBB6qSPwP5Cu/DSavBf1/WhvSbcXD5HuGlyJq+g2rRpGJNO BUx2y8iMk/Mf+Bbx17DgVnz2bREgq6hhnLDOR6/jVyabaX9dTlpQbSk+hyniHR49Q0y7s541dJ4W RgFxn/Oa/ne+N3gyTwP8R/E+hMhig89poVI/gYkjH45H4V7OTz55SX9dCZuScU2v6R4hKMHe2VYd CO/41jzJtclRv2t0Y19JCWtmjixEFOzt7xDKSrlQMFeDu/Sq7EAkA/N1x6VopO+mxnKTm2ui/ISN iOAVYdwf1prrjIzuPoaduVuyKox9oVXALZIJzxgnr7imAbWGVZg3UZrVOy1MKcU3cds3EsEIIHUG oGUk8ZBz09ainUV7HXrNuyMyNThQMc1qW0EkkiRICzOeCe1TN82h0YaPMuZdv6/QtXsqIq2cGRHF 1kA+8fWsoKQAQGIBztFbSjyBCCm+ZegjN5jnByncLVpjHBafOWM0xwqjsvc/jURi2TVq8t2VBhlL DoR0JqdWUoVMa8j7wzzWskpKy3FCXPG3Vj8BQeMEjrmlAYnaSxBIzj+lTGakk2W4uEtNy1C5VSrI xB5LAgUb1YNkMOOATWFSKbvE63XlCPLb/hgDA5VgVx1P86eViVFbeWc9ytQ4tRTj1Ki243fn9/8A T/A+3P8AgnZ8M5PiJ+0z4YvJbYz6b4Ghk1iclcqHXCQgnsd8isP9w1/VnpVldNFBHF8gjXbkDGfT +deNxPO6p02ujf3u36HmwXOkrbv+v68jq7bS5rkwod4VpMK5APGe4r49+PWoNrXi650/T5o1jku4 9OglgYkhVKqf/HhG3HAya+WhGFSVn/XT9Ttw0HKSvtc+lPhf4e0ZrKwa/CxWlhCbgLaBjKQ7ZRSD 8oHl+WO547d/oeDxP4b0+H7PpulzSeVghZEwR14+n6fnWmLnKo9PIKqcLW8zJvfHjjAFsLZIhg4P TjBNcJq3xFEbOkRZixywQcDj1/GuCFKySWn+Ryuq3dM4y68aanNHI1opyQMkAcH0GazI7bX9Rdka V334JhUnI9f6V1wg6dl/WoJ3bvqdlpPw51a6ELXTG2QJkiQ43fSvQdH+HNhAB56i4cYIZuxxjHv6 1jzW91G6pKlqux21p4YtbdAojjEcQyOM49DkfzrZTTo7f5o1GSOVfk9R3rnjNSV0aKPSxMsMauxJ BU9+PTnNRSlCArrg8/d7+/8An/8AXm9VsOySsZzyr5rGPy1YdFcZ3H2plwIQrxgCUx4XLnpkH9cg VKi1K+7/AEFOSskVU2F2jAChOC6jt2pHmUKEYKHJyu3PPGM5H41TTi7t7b/126FuPMtB3mI4ILMX Uk8DpwMHpSR2s5JzGWAGQrEDPrjP0qlUSV/mS4uSsTwwIqqSpcoPu7sA8Y6/561MtnCkSOCHkByI z244z+dKnUad9xtS2ZG8URCMN6SNjg8+3+NSeTGjkOsgMYyARgVcW4K3kPlurIlNtGqRswMblQQc Dpk9qY8ADEDcFcElVAwKqc0m1/X9XE3zb7jZbZkxHucL2CjknJ/OntE8IDNGGABQkjjGP16VKpcq 5bajcUiFoCiRu4dSMna64xxUbII5ANpKMSuMfz9OoFOcvaNJbL/IUX7tkhEtyqsGKuSmVDZPPX26 YprW7lSzlS0gUsByPbv1rONTmi5W6/8ADBTi5EKwZKgEoAedqkZ/D8f890EB8tCjhMH5Mjr7HnHv 2pzioy94qOqV9iuYCoLoEJGQWKkY568elMe3YFmKlWjJZQec4HGD/wDX70pPkum7ClZR0IGt2QuE VwVOAoJyQOmD9arS2wWFhIAwjJwBz+P6iqjBVHd/1/VyZxa3IHtiwjd45Qw+XbIRxgdc+uT61Umt nieV2gYhvkYsfQZI9O4H4/lpGCcX8inCystipLbiQgKRGUVgRH1Gck8npVe4tzI7MVZWBJZT1fPP Pv14qJNpJ3/r+v1Jmn1KU8UbbG2hCGBIKYJPOfyGO1UprZW3KCELHO0t0JHGR7ZFXFxgrNDS6Iqv aGRXTdGBL1jXnOeMd+3zdf8ACsm4sZVdAEVAxBEnmYDdgM+/JrJpq9yJwvr/AF0K0kTOTshcMq4w TwcHgnnjJyarmNWyQiSpGMbAoz14z9etauNtLahdx3Mq5hLI8k8DMAcERgE4yOhx6183/Fjwot/o +sW0EADwN5ltMIdi7shgBjjhvTHB6c1tgqio1LdAwrvH1Zj/AAd1dryGztZGnli1BPIeMthQcDbk deDt7/xGvRr/AE8I8sEkaRMnDZHX6Grm3GWnRa/kYzp+zbjfT/gGBd2DEBIw+0rxvGf896/Iv/go D8NWt00rx3aW6rJE4t7iRSPmVs7T17MAP+BV6mVNQrpS63WgJ3Vv67H5W3SMQw5GTnaKxJhhgyhi w5yTX1kJXauceLpOyT/D5f8ABKshAbAYgnue1V3JY5wAAejEc1qpOKVtx1pqd4p6fnt+dxgZy+GU qG6saJM4yCQzd6ptJpCpyTi0/wCutym6kHIYjdzgij5hglgDjpW7lzLX7iaUHT1uTMAwUBtoHIzj mq7KQACcZPQCsIJSeptGUV77838jLgUlQxLcdCDzXRrt0+zAMYF9OciU5yiY6Yq+XmbFSmqcE++i 873MolsszMGc8kgdKbMQoEYbdIDyVNZwTm7o7VFU4rv/AF/kFvEkjEsMQRfM7L1A9KsOLeVmd45Q G6NuHH04pzm46ip041n5f1uIlpHtIBl4HGWHNSi1iIBLyAjkYqHidNjajg2lZP8A4BILaBlBMkhJ HoOP1oFsCBtkJz2A6frSddpWZpChdJw7DzCSoUSAHoMrSJbAZPnRqDwAwPH6VUqmtrG0oSTV90KI GDLiaIlegXP86V4cRqW8rGPvZpc6qWsYQhOMWmfvz/wR/wDhhFpPgjxt8UtTtHMni++WytZGGd1v ACCwJ4/1kko/4BX7j2d9bLEIooCHDHGV7ex6181xHUl9ZcX0ivxSf4XORp0ny9P6/ryL8F6LC21L VTBIkem2zz7l+YlsfKNvc5xxxXwSkEvif4j2qKZJntQZRcqAAWchEbbjr+8ib/gJrxqEYud18rfN /oaYWD0k3p1Pt7R9V8O6TaSy3j3lzOWxDYQxeaVUYAUEYVVPJxkn3rP1LxzfXYkj0Tw61nC+dsty Rux71nWpvETbT0ZOIqOSsv62OeGjeJdXYzXUsjGX+FOx/wAmuk0f4ValeSI8yMqPyZJOc4pynGMb Lb+tjOnByd2j1XSvhLDDtluI3QKPvKOfWvRdO8H2Gno6xQRLKpwHdQSTxz+prmlX5kmv6/U2VJp3 ZsJpUIbEro7MwyzA9PYfTB6VC72cKuVwrEYd/c1jKG911NUk3ozNlvYotjgwsGG/YMcDd0/Sse41 gF0jWQKrDJx3Hv71PM5+6vL7iOdx0ZnvrACqysSAcqgJP4k/hVMXNzcy7vnZ3GW3McHuefbIrFtO 8uhNvZt30JfMLTRGVpQBtIW3zyPr+VPllYKVt0OYhwpb371rJLm02NVeKvbX+v6+ZXJB5ypOSQu4 cZ65/ACqlxqml2CGW/1XT7C3QgmW8mVMHsBmqqKSjpqYSlGG+hkS/EP4b2LIlz8QfBtkZDkx3eqQ qx/8e9QOa1rbx14FvFA0/wAXeFr0sCVltb+Jy3A9G9Mfgc1ssFUadRJ/1/VhfW4Nvmeh1kDRXcSP FNHNEFBzAwK4PPUfhV5YC7OrKoUDCgnkHHeud05QbS06am0JKTTT0JvsEobBGA5BIwO/PFAgcOzs Xclc4XufeqVmnf0GoczsiwYpEBjYIpLYCr0JH9etIsIbzGIVSw5V1+9n/wDVQ25vVFN2Y1YVc4GQ zDIBUYXB5/rTDaOxaPyCSp5dV/P8P8aOVN+9/wAMG8brQZJbEljGqSMoxvYnJ98/gaa1pHJghEjB BOYycDPr1/nROfvWWgL3NbEP9nyB1WOENvPyMR09/frTVsS2MrlRuwWz83YDjvwO1Z2VN2j0/Aq7 S1GNAXbzCyD/AGGBycDqeO/9KZ5QUMQEYxHJMZ6jGRWqjJe7+IlFQ3IGt2OUXaMnaSxznj/En/61 Q+WwMkgADDksz8jHpg8cn8cVKVrJdf6/r0JTukluQPEsbuHRTKMb8gZPrzjrk/rSC2V1ABaQouFa Lk8Yyf1ximpKknBrUqabjdbkBsxsR5Y3yMdQeuck/n/KqsluqxkgwOsb4coMZ5JyFxjr7fXtRJas Td0UDDK7yqxadgchmxwM5PP1Pao2t5B5pWJSrDnC9Oe4H4f5zUubn7wR2KU1rHI8itAybQcIARnn Jxn6496oy2hLF48xIRgux9uRn/69QrTutSJLl1XkZ72y3BYghFGclweMDsT1/hA71SktUMbACJw4 Y7ozjB/i/lj1/rs5RWif9dbikrtrqULizVwHKBVY7WjUZ3Acfl271nPZohMZ8xHb5cOfpnpwB0FO LUkromotbL7ylMhDFZUkHG0tHgg57Y+hx9c1514r0iKVzLEqy+chgkZwWMeBkE46Dt0/Eda0wzak pLR7G1JOL5lc+TvCqDw/4v1fRGURJ55khEi4G1zkYx6E9v7tfVN9AuoxQX6kE3kIYtEcqrY+YAnn g8c8101L01Zb/wCepWIpKUm47HIz6bcoIj5bgDglB146k9q+Y/2kvh5F4++GXiHSWgRp5IHMTv1V xyrfgQp/CqwVTlqJv+v6RhFOOqZ/OFqNtNbTT206tFNC5jeJxgqwPII/Cucu8qC5AZt2OTX3MElL luc+MbSbeplySOxBXgnvmoQS6YbII5Ib1rsiuVXPOpydSSTWn/DDAhLrkEqexPWpJDuBYqAByRWb km7s6aHLSbTRUZV4PQNxuP1pQVIAG446AitmlLXoEOWUrWGhhgZDAr3FMbBOApAznANTJK91sXCM Ka20/r+v+GHaTbwqTfXIK29pyFYZ3t2FVJ7hrqZpHLEvzlscVUJPW5FOUZSUWtF+f9fmSIqxRG5C ku3ypuP5n8P51AiBmyASW4yRnFDThsdyUZyutv8AgGi6pbQ/ZgpLltzshxk9h/nvSJJGAGwykD7z CuWUXUukdVBrDapFkyRuQBvAUcce9NYlcYJZTxkg81moKKszplVc7yS1JVkkY5CKGPGMdaeJDk8g EdAO9YKCjJ2OiNaT1a/r/K4oO4KCBgckihXwpyCccVc6drJGkqrlaXl+SHAAEFgOBxg9ajmDTNHF Ckk0shChUHJJ6CtKCk5owr1lGD6v8z+yP9kf4S2nwp+AXw08ISRCO90rTYWusDg3DDfKfxkZzX1t BDYwGHZCzTOeirzz7+vNfJ5zWVbFTlF/asvS/wDkeDGnZN37nG/FjWU0vwS1tas0M2u3CwpcW7bN gBGGPcgO0RI//VXyv8IdMjudd1/xNCsqxlybeMjdhVXCKT9Zx/37rlws3B3W17/LT/Nndhk4xaex 9YadoOr6kkFnZ2VlZQQIFIT5i39APavXtA+FbgRfa1DO+Dt25PX09K5+ZQ0v/wAOctSPNJtHqFl4 H02yYq6xoY8DeT+eB+VbDWmnWTYkAQHncQOfX8eQPSsJTdVWtqbRXLr/AF0Mq88QafbO6iaJVUnP AwOvT0659a5G68bWyGRoz5gzyQc4yen8qihT62FUaV7M5i98YzzSFRIIxGGwyjp8vGf5VkHXJGAR pASx3BG7DHf9av2coNJ7f5mfPZ6FM6hcyMzOWAkO3ccZb1qaKWYJJIg4IK5YA5Gcj9RSnSknzN6F cr15vQs2rTb1jEJJUbi6AcDvx7U2O4muSwEUjluAR0Hvz9KmUFKyb1/r/IlpLQTVdUtND0jUNd1u 9tdK0fSYWmudQunCxwqOSST0Awa/Mj4sf8FC5be5udH+EWhw3MUDMv8AwlXidGCy+rRQAg44ByxH ptFfQZFkDzyq47QW79e3qcGZZisFGP8AMz5u8LeL/wBrH9prxI3h3wz4q8W6zcIgaeHRrgWVraxk kAysmxQv1yTjjOK+sfDn/BMrxRqcMd58R/i5DDfSqDJp+iWr3Jz3/eyuucAD+GvucwxWB4Tiqcaa lO3z+bPLweEqZknUqStF9O/z8vQ9AT/glt8PVgAX4k+Nlmm5LPbwEZx2G0HHTv8AnXk3jb/gl/40 061uLvwF8RNI8Q3Ma5TR9ftWtHfjgLIrOpJ+bqFHTmvLw3iB7yjXprl8v6/pnoVckhKN4tprz/TQ +CdZtPix8FPFM/h/Ubvxb4E8S6U+Wt7a4khZRxhlZGwynAwVJB96/ev9knw98Y4fhlp+t/GXxbf6 /qviaKK5sNB1GKMSadbEEqZZgN7yOGViGOVwAecgdnGEMFVwixFNe9N6Ndv+BY83JoVvbyp1G/dX 49P8z6Q1rVNE8OaZdazrN5aaZpliQZb+5J2JyFHboSRWJf8AjbwjpWnaRq2o6xYWGmeIGWO0vJmO 25LjKhfqATXx+U8K5hnKjVwtJyUpqCt1m1flXm1r6Hu4zNqGAk/azSsuZ+S2v9508kaRRANK0cYG d24HA7/lWZY61o15fT2VnqOnXd7aqGksoJVZ0Gccr1HPHNedh8rxOJjKVKDcYK7srpJdX2XdnRUx VGnJRlJJvbXe5oeTIAwDIojUlgrYI/GsG58U+HtP8QWfhq71i0tvEGpx+bDpTMTJKoz90enB/AH0 roy7KsRnNX2GGg5zs3Zdormb+SWr7IdfGU8FHnqysrpfNuy+++hvLBCVhDREAH5mHHbmlkgVdpKs 5XaCwPTjkfh/n28WctNXsauFtGZ6yWcKTyvOhjtlLNKpG5QFyxPsOT+FUdJ1rRPENkmoaDqun6tY ofLN5pcgkjBA5BYcZ5z+NevTybF1sPPEqnJwhy3dtFzfDr520OSrjqMakabmuaV7K/bf8yvpOu6B r0d1Nour2WsfYpDBK2nyrIIZAPutj+XvWq6oyygxEnJJCnGPXj06/SsMyyuvlU3RrQcZaaNNaNXX 4O/oy8Ni6eLhz0pKUe6120ZlNeWhuTpzX1vNdxorvp8cg3xr2O3sDn86fcS29tPF5ssccs4xGsrA eYRngc/MeP8AOKxWDqJxXI7taK267runZ2LjXhK7ctF+Hr+A0QoRGAwKYzk8kn34/vYqFrdlId0e RlJOEHUev58Yrmk7K9rs3uumgwpKGaNWbeAcKg+7z3/Eg/hUDwszruiQSZAy7cHtyfqP0NTOFlrs VNNL3e2xRlgZY1UICTjkYHAHce5BPfgVVkjlGZAC8rY+UH745xkd8nn8KHJtt7hUbldMpNCUIG1n BPLseg/hyfwJqtJAEYldzMeBvH3vT8Op/KnUV1aOv39yI6tXZQmgQoSsbIFO1XYfex05+hJ/KqMs cbRHBjO0qFJyABj8sd/xpwhJtRFOLSu9iqY0kd0mAgLg4ZcjnAIz+prLkhkWQkFQzrkmMnAA5yc+ g5//AFVMGm3zdb/1/Xcy+CNluUJ7QnMiKGQKDuUcr6dCf/11y+vaZDe6fdyQwJLJAvnBZmYqhU5G SpyAOemfp1qox5XaJTkr3R8a/Eqzj0fxVoXiK3kSS0uz5MsluSA6nlCDjpw/J5+YV9E+Hbl9X8O+ WlxM9xZMHVYBhQh/2v4vnDHkZ5rvxEWr38vTt+pVW8nG/wDTIp/tcKqrRMRF0L9cY5rlNesbbV9P u4pIctKhBBGNw6H+dZUaasmnr/XczclCVt2fzZ/tW+BZ/Avxk8T20kIjttYf7dCEXG7eTuz771Y/ iK+W7tSI5Avp19Oa+8o1eeMZW7CqR9xrfT/gGQRlFfjcv8OOlVm5ZuRtPOVroi+VtI85e7FP+uxE SFK7iAnoRTw6kbGyuOma0auzSneDbfUilTLZJDIOw7Cq4IZcKQSe4NVBu1kOstb3/r/gDkClgjOp A5APelaMheSGPoSOaJyTewqdqj5ZMS+u4QkdnaKRFAD1H3j3J+tQ2Fr9olKs3kxKCzzN/AByT/n6 U5J04alYFRqe9bT7/wCtPvGTyi6uN6IscEa7Ui54H+J/nVu2KQgyykR7ThCeQW/+t1pTfKrNnXST Tc/P+v67kkccBClp05bkMG5/SphHb4OJ4wMDCkHB/T6VxylOLPSlCnFWaEaIgKEdSo4K5IxT/LPC kg7ecKeKStqmdEFZ2ewgiILNgMB1/wAaVYnUggblHQDtRGSVrkxpSlsxQrEkjBAGNqmpI0JyGAwD nPpSk1Fm9KLqSTJY1UAYDEDqy19GfsgfDhvip+0p8MPC7wC402DUF1C8V13KIIB5hDD0JVU/4FW2 Bl+9UpdNX8tWYY+KjT91f1Z/kf2L6XZXEcFvBDHiK3AVQnHQYzXaWenu5kaZ8ZOfLj9c18FKTryb PAaSjY+fP2itVW08nTRK6rpVqzFkzhJHwHVh0ziSNh/ue1avwF8LWaaNo1hqM76YbzDzXbE4HymW T5fvN+8mZeP7vtV0XPlcktk/xbX+R6kLSVv6/r5n2Nba98M/DMRSPUEuJYxjzFRs54xwce/41mXf xu0QTtHp9rLNnOVPdc+38685uVZX7nLOa3Rwt98X9XuiyW1rcoHPDkfln8Qa52Xxb4nvwSVkRGX7 hJ+UVu6Tas9zF1HN+V/1KzyatciRpp2Ur82Rnn/OadDHIrKzIXK54Zj68mtHJJtjqXVki3KsiusZ YfvCAGFaNvBIdwMbIB8y7v4/xqZK6IjHmSszUitruQRRIikIMmSSM/L/AJJFaceiXrSJG3mSRsBl QMZ44/CkpW0dr2OiNLnWqNy18PtISxRGAGRjuPf9K6O18PR5MkkYJUfLEDjHTGT7ZrmqSs7xRpGN 3dbH57/8FLbrW9K+E/hLTNLFzb6NrutbL+W34RtkbNFG+OoLAsB6x+1fh60RyykAKOrIMV+xeH9C EME6nVyf5LofFcQyviFFPWx+wn/BOL4v/C7w34S134b6zqek+G/Guq6qb6O41RhENSiMaIkaSHjc u1vkJz82QDlq/W1I4GC/Msqng3SH72e49e9fB8bYWpQx0pz2lt2en+aPoclrQqUVFaNDlgeTarPI 84yCznn3J/WrhiCGPeJdwGFDYwMnPXPuK+VcVKzR7MXzvQ818bfCD4XfEHVrDWvGngXw74s1XRo1 W2v9ctFeRFDZ27+pUZJx05PvXoioZElkUYyeHY9T6DH1rd4upXiqUn7sdifZ8nvJas+Yf2q9Dtrr 4Za3r0t7q8NzYpDCllbXLJBKWnTJkj6OcdDj+lfGurI+rwfB7Q5dbEyXNzao1tp3iJ7toNwRcmHb iBgD25B45xX96fRuxDxuQ0Yzpr91iJWapqX/AC75ryl9n4rc/ayP528U6Pscxm+b46SveTX27WS6 3ttt8z3X4h+G7mH43+CfCmm6Zqvjayh0NmfRta1Z4musSTtulnJ6jI/AAV6h8D9Y0vxDqWpz6B8J dA8H2mjzTWd3r1lcRvKJlx8gAQMRz644/P5DP6jznhOOLeM+r2oyqTpQhaM3OtUjFNq2jdo22SVz 3srh9SzidFUuf31GMm7uKVKDdvld922TfFuLwD4cuNU8T+KfiD430zULwZTw54e1YoWfy8BY4QOA Rjk4GWzmvkvw2V1LSvFfxK1q6+Klz4igimGiXlgk7rDEu7iS7wRjlgcYxg5617ng88xqZDPH1sNQ pxShSpSnFQc+ZpVG5P4k4XX95v1PM41+qTzOGFpTqSd3Oai27WT5dFt71vTqeleD/Emi6t4Qs9b8 UeJvjzp9yUka5uNEkuJbVAC25hKUIxhQTzwfYV9RfCLR9IGjt4o0fxf438U6T4mRZIT4vuPN8raz A7RhcE9+e1fLeNWAxPDmGxMI4XDfVuf2anBL2kXrJXSfutqLvdHs8C4yjmlSjKU6iq8nM1K/K9k7 X0erR4r8XfCmmeFbnW/E1v8ADHw7rmjOfOuNWbUrhZllfJkZolyAoJyT7/XHz3e+FNR8FW3w0/sz S9B1jQ/G1/thuoNSeX7cpaMBN/lx+UMsRnBOSfTFfoXhDxAsxyyhTxOInJVWqTi6cbQlCDlFJ6Oz Wzad+Vo+c44wUqGKqOjTipRTknzO8k5JS6brt0ua3hXw5b6T421z4fxfDmfxT4glf7Y40/xJLHDp 4wS0ZeFVA6qvzcg8Z5r7607R9Q0PwXbWHhzSraPUrCz3QaTrl08qJJ1MTz8swDELuHavy/x9zhY6 lhXVxXPGsqc+RUlGUY8vKpOWrvKzfK3bXTSx9R4eYZ4WVaEaVnTco35m022nZLsr2ufDMnjnxdoP 7QuvT3Gn+B18RT2UemzWY1Fktt2I2ULMy5352jGPUZ4zWt8bfDPxa1KRPH3i2+0LS9C8H3KG28O6 Begu0WcvNG8oAL56Ajpu4A4P6PRy7h7hTMcnzOr7WblQjCknDR8zaUpWb1jGbbiltZ3ufL1cVmOd 4bG4Wm4RtUbl7zvotUr9G0l95rfCzx5rfjP4m21ro3jrXL/wPpFsslzB4vFsk13KyMBHGiIGIDEZ 57demfsyRBlwqlgE+SQjPfgDpnv+Ffz949cOYfhfMqOFhQjSn7NOfJzcrk5S+FybvaNk7dbn6H4d ZtPNsNUryqOUeb3ea10kktbWtd3t5EBiLHfDGmQCwJ4bngH+v+TTJLcRlZVUyOMlXAJ5xySPXA/W vw6cZOOuq/4J+izstPkZ0ysGZWOEAOGY4AHXnt0z+dVZIWKuULKYyeZCeeeoPfggd6zWrc3+X9bg 4qRDPbrJtUAhScfIevY88/Ss14ndtoUlnbayA5JzgE598Y/WolFtXv0MlFy33KQidflKBkl5SSPB 5yc5X3zj6AVRePzCxcLGrjgv3OeM+x4/AfnvB8rsv6uS2luZ00JHmEBWCfKGHfrjgf5xiqk8IkEz R+XLtHJKt+JPH41M5JpOO39f0inTsm2im8YdvLkiCFFwS2OR1GR2HJPTrx3rOk08RO4zGitkZK9O eN2P85qYpu2uhlFLdny98WfDD6v4d1iw2zSXmlh2gmlG0uyncmPX5gB6/wA6zfgfr6ajZ6dGqySf aU+zlCwwpbgEg9cEIevU/gfRUnUilfS34/0jqrRVuZLa+tz2W5juoGkgkRLmNTkqw6+4/KueuIrW fzVKGJQD+7kGdpzz9elck0kro523DRn45f8ABSf4ZS/2b4e8fWEcrppspguCi9FfGGP/AAIL+dfj Xc7hGSWZiw4zjmvtsqTlRU/kFa8adr/1v+uvYwgSAVJIA6ACoHba3Jzs4ANetN68qPKoqM4Jrzf9 fcMLkxkkg5OfmFRlmcKQCQR1BzipjHlu1tc6nNzXyJZGBUMMYXng+9UVLB8HOVPQHpWsNW2icWlJ qcUOZmJy3GBnkUjI7A4ViCOw6VUXy6vYinD2kvu+W3+ZmqpOGClg3VgasrdSRRS2qqoWYjcBxnHQ VrFe0u2EYOklGOgkYZpFjCg7j0z0/wA81cuJRK4VAqQwAKqgdR3J96zcFNrU76ClOV3/AFvoSxD5 ASygk9BxT/MBJwyYU5wBXG022z1JVVCN3uDSFsEHB9QDVpJUCEKTgnHT71TUg7cppRxKjNPpr/XY mUgKchS3T5hQyq4JVRg9ST1/ziudS5ZXvoenBXjyNImEcK7XBBAOTk/lT22EnYAcDkgnBrncpTeq NYwhCNob7/P+rjJGABVSQQOgr9mv+COfwnk1jxZ8Q/itfW++306KPRrG4YfxEiW4/IC3/M130Z8t CpUfZ/jp+p4OcVHTtGPn+R/SBbxwwtEiwqzIuWZjyfYfjWrZqZLiONGYNKwzjjbz3b8fyr4KE+Vc 1jxk03ofDfxTuX8TeOBYRytc/wBq6iI2lRl2tbqM5DZ7RtKv1Qfh9H+HdHvkgs7G3gnWeGEAoibW jd/nfDdxkjpxxW1OVqfMnrovwT/4J6cpe4ku1/zO9tvhrJODNqBKBuQ8568dqvHwt4f05AJZUd4x kiLAx7Z/CspNx+HY858tuX+v61M24bQoWIgUEqcZA4/KoGukZgILcMoPzPx1og7PUcpKxbt7G+uy zCEoh6bu/H/166Ky8JXk0gZoHLLgfMB+eB9attJNtlR6pbHS23gmRinmBQSM5boc8V1Vv4LICbou QdxVu/sKxm+VuxpGN9WdHF4SVljMkKgIM7WH3uuTjt0Na0WhRxIjLDGqKMHC8n3IrCtNxSs9DdU7 LmNCHSrZGyI5AAvIQgEH2/HjpR/Z0EZWNQDI4Jw/Qe9YVKt1dX1N7djzX4pfCbwZ8XvB2q+AvGFi 97pGpxjbcwELLZyrzHLE3OHU8+hGQcgkH8EPjb+wb8a/hXeX134d0O5+Ifg2Bi8Wu+GY98qJ1Hm2 3+sVtvJKhl9xX2nAvEEcrm8PV0hLr2djwM9y54ynzwV2vxPiiaxu7OdoZoJLW4jOGjlXDA+hB5zX s3gb9oj42/DgQJ4Q+I3ibTrS2GE0y5nM8AHp5Mm5B09K/XsfgKGZQUai5l0f+XyPhKVSpgHypNeX p/TPrfwj/wAFL/i9pP2aLxT4b8IeLIYwRJMkT2srdT95SU7j+Ht75r6n8Hf8FLvhHqskNr4x8K+L /CEjkBrq12XkS++RsfGfRSfrX59m3h/KTbwsr+Tt/Wx9Lg+JEmlUXl+H9f5n1z8Pv2gvg18UTHH4 M+IGg6jfzgAaTdSmC4JI6CKUK+eT0BHFe3r5RBHmBpEO/g8H2+vWvzvG4KplzcK0bM+pw2KhirOL 0Pjb9pJbrXpW8D6P4g8Qalq2sLCYPh/pVgroSrEiWWYj5V6Hr/D6Vxvjj4J+PbNvhvqIj1nWrDQE iN22gi1Fxp0oC4KAIu8KVB3EkcduSf7P8MuNcBwTk+X0cZCFJ1ZzknzSbs4OCqTSdknJKNnpZOXQ /EOKuHsXxFjsVOhKUlGMY7JL4lLlTa7a37tanY/CLStb8Z/FTW/iTd3Ws6jovhOzfR7LV9eiWKa+ l53MUAG3G9j0xyPeuu/ZSUXfhfxrexxvF9o8RXMjEqcAEIR1+teJ4hVqEMvx+EoKMVQoYaDjF3ip SrOo4xb3S57X30O/h3D1ZYmhXq3bqVKkrveygoK/m0j0bxh8G/Bl/aeNdW0rwto83jPX7OdIryeM ZExjIUru4QknlgAc8159pfgzVvAv7NniXw7rwgtdX0/StRMkML7l+YyFQGHXhh/KvyzLfEOtnOSy yvHVZSqKph/ZrooU1NNLoviXmz6/G8OxwmOWMoRSjyVObu5S5Wn57P0OU8F2fjPXf2YdJ8PeF9Bt /ENzrkF3YvFJdLC1upkcbwGGG6eo7V9CfCXwxqXg74feFvDWti1OpaVbss0ED70UlyxAb2yB9fzr 6jxazbLsLTzLL41G69TGObjy6KMVNJ82zvzbdDw+CsHia6wmIlG1OFBRvfVyfK7W8rHg3jPwZ4S1 XX9e0rw78D/FXiXX57hvO1jVLqa1sGdiWaQymTDDB52jvjrXzh8VPghc+A28CXGsawLK+8TasLZt K0Bn8jS4/l/1TSEszDcTkkcjv1r9h8JPEKrk9bBZfjcTHEVK/Ko04qPLSjy3TlJJNzt7qV9Lu7bP keOuF6eYUq+JoUnTjTu3J7yd+i/lvrfQ9PtfghP8PrmVfEvgTWvHVgrkjxr8P9TmS6eMcgTW28En k/c9PU8/T/giztbf4dSp4Cj1jT3KTNZp47WYMJ+QDJ5nz7d47Z6fWvy/xX41lxvl6xVGvTlhnKKl S5Yxq02n8Kdk5Q0fK10tfU+r4O4fXD1b2Dpv2iTtO7cZLu1fSXfvq0fHdl8KLTw18cfAXh7x3Jae L7/xzZXVzqk90C8c1y/m42k4PBCnPB78Uv7RHgbwro/xC+HctvJB4V0PX90d3emIzQw7CgD+U2Qf lIJ459DX65lXH9fNc/yeeCusLVpVYxp6bQdWMPSVoRu123PhsVw3SweW42nXd6sZwbn/AIlCUvlq /wAjzn4sweH7TTtGu9L+JnhzxvcJepC1ppOkQWk0MIQ5YSRjdtzgYzjJ74Nfo/4Z0XSNK8O6TYaH HKNLt4w8KSStK4DKGwXdix6gcn1r868csfjKvDeDWIwzw/NVqXhKTm9EmmpP3km3LRPfofSeH1HD xzav7Or7W0I2lay1bvotL6LW1zZktkOFClcAh1VQcnqcH8hUTRZQKsyvuYnbzz26++PyFfyPTbjt sftkfdSXUpSwxszB4lLHgMB05ycjPc85PtVJ4CVCuo2lsrIVB7Zyf5msmud3i3YJPm1fzKYhKsNp DRoMeQ5zgc+3+SarTQsSipEH3tjbGASR6Z9efzraOm+5MZOTV1p/w5nzWkZVnVzKoPAOQTz0zjPt +fHrnzQsWjYLHIVYBiudr9uR6dvoKipO13b+l/X4ktyWt9DNltwpfaAShJVOOnt7cfgBVKaKRG8y EGQxrhmVce4H9T+FKclN2X9dPzMpaXUdv61K1xEAvmgs7v8AMwIHI9z688/XvWbPC0as4aRVQfdY nHvx/nmqlUi3dXs/6+RMnF2PJ/GFhG12WcW8b6kmzcSxJYdMdumfc18peCoW8N+L/EPht2jSJLhp YdzYAjY7l5z0G4jt/q69GhJqnzdV/wAN+p1QpOrTaj/W59g3V8b6KHUAbWSG+RWYxqdqN/EoPXCn d15479+duEhmAd8LtOd6joO+T1riacbtPQ5W3HZ6eZ82/tJfDqH4g/DDxX4f+zmZr21l8nzFBw2D tP1HBr+W3xFo2peHtV1HRNWtWs7/AEyZoZreXqrA8jjr/wDXr63I67nHkT6jukkl/XT9Tjp7dgxM ZAA5wR1qm5wyqQBx09K99SVtDzZYWVG6ez/r9SJ2CocAgE/exUCkA8fLnj5v51UFpYpxcZJtbf8A B/Ue7KA2Co9hUDuwKEghj1ArWEuZal1KjavF2W/6AW+UjIU9wv8AL+dSxsu3djDHoGFZyk7e6Kkk p3mZCN5aEj7x6EimJ8zE8kZ6g9K6YaK7Oem1GStp/VzWeM20ERbBkuQTgHkL6/59KRAAQpYc9m7V z1H2X9I9zCxVN2/ruW/L2kvkqQegNKwU/MwUYH3lFcspc2/Q7pK7t39NNdbDA21VIUEHnBqMyKoI JTa/YjpWsYN7HNKsno1/X9XFdiwzlcgdAetVHmKEFXcD+6D1relBPQ58VO0XIX7VOzcbsHjGK0rd 5gGaRioIxgdqWJpwUbW1IwlWpVmrNpL8iWSYFGU4yRgYHSv65/8Agmv8JIvhb+zX4CiubIpq3iOH +17tlzlmnO9SfohjX6LXnZlN0cHNrrZffr+heLn9YnZPbQ/RYQPIwaK1Ybm24BwO3T9Kv38raR4e 13XJGitjp1u4UzLuRTghPr16V8C5OMDClJqWp8IeENJuPEXxFmknikEFjGsflSKNu92JlA46DbcD jivsbSNd1zStPaLS7O2jmuWaRry4jEhGTnAc9vpx/OuupSjGmnfd/qd2Ily00l0VihNeeKtSkYz6 lNISdzIh4qzaeFtWvpGclpMHJ3msUow1R5rbWtjs9N+HNzIFMzDIGdzDgeufyNej6b8N7ZVBmhAc jhWB5OOaHOVG7RcKbtudpa+CrGFV3RhVYbi78ADtj34//VW/DoVnGoLruCDO9D79/b+VZKSk7M7Y w5Vc0F0y0RkCsgdPlLOBk+hz0/xpGjtI2CwxorKpGR+hyP8AOaiTTdrajmk1YjLFmy8oIzlWUEhT 6f5+tLJcxAgGRQE5Yk9/auWXvLYqT5FoVhcRsjSlypYkmNQD3Of1qq9yjNJhhI45VpAeMf8A6qmT Si0NxT0IGntywWSVEOeGRgT7Zqo0pdmCbljUbsREn/e/lSumr/iC95WOD8XfDb4Y+PBOfHPgfwj4 okddrSazp8Uki5zkiQruU/MeQc5PFfLnjH9g79mHxEl09p4W1PwrdzqSLzwxfyLt4OMRuXQdegXt 9c/QZfxDisqVoS07HHicJTxS5Zr+vJ7/AHHyn40/4JiWMiPP8OfiZIig/Lpvi+09Tx++iPYf7Byf Svgv4vfsxfGT4MRy3vi/w3JNoCSeWPFGht59t97C7nAymcDG8KT+HH6RknGkMymqVZckn9zPk8dw 6qcOak9un+X/AAfvPn6KWaCQSxO8EiEEMrcg+xr9Sf2GP2p/GMXjPQ/hB431a41/w74lb7Npl/qr FprGcDKR+ZyTG2NuDnBIxgZz7/E2WwzPCSb+Jap+nT9DysqxssPiIqK0b/O/6n6S/HX44/DP4GR+ H9V+INpr88XiIzQ28+h24kYsgRnVvmUDO5frivPfDH7Tfg7x1p0Gt+Efg78cfFmhXDNEmraRoe+F tpw4DmXGQSeM/wAq/K8FQx08NGtGSVNXS277fefa1ZUo13SUfeer6abf5FbxF+1P8KvBRgXx38Mf jN8P7Sdgkeo+JtFkihLj5sBlkIJ5PGD3r3n4Y+MPhF8TNEl1n4a6lpPiCxtX2yLYOUkgfGQJEOHU n3Azg9a6sRi8zo0XVlUvC+6tb5+nmY0nh3U9nKCUktPx2PCfAv7Y/wAEviN8QNF+G+jaR47i1zW7 l7KFr21VYo3CMTuPmkgfKw6HqPw+wm8L6TNH5TWshjuBgh5pCOmMYz0xXJisTjcmlGM5K8lfZf5H XhY0sZFu2ztuSR+FNHtwIoopYVA5SC5k2gY6D5vT0rF8W3eg+BPC/iHxZq8d+ukeGrKa/uHsHkkk WKNC77VDcnaDXHVzzE4yrzVJXk32W/c2jgqVKPurRdj5G0j9tb9nXX7ie10q7+IV3Lao0ky2Wm3k m1c5LEIWIGcc4FGqftO/s1ahGia7cePHFo2+OPU9K1E7Tn5mGVIHb8K+mw9DNMtqqrBxjNbfCn8j yU6WY0nFQcovTuj6Q+H2seDfin4W0/xr4R1DxLLompSSok2oXNzDJlHZWLRu4IwynH+FdzN4ftN5 aC91jywSS0t7L/eOD9446dPevmq+a16c3TqQi2t/dXT0R6lLCRnFNXXzPFfiP4t+B3gTU9P1D4le NvDGi65pyhrca1dq13Erd40G6UDHcD1PrXiep/tI/sveMLjTymoeKviHe6dMfsq6R4eu7to3JUts Jhz1Cjjnge1fTZTm+b0XSrUFyqlfke3Km3flfRO7b9WzysRg8JX56Uo83Nul1t/wxV8TfHP9nzUt Mkh8ezePdH0+V1kH/CU+FLqNMhhyWNscAnP5EV6j4B+NXwO8Stp2keEvjLoWpsUW3t9E1SaK3aTp 5aJG0aOTk4HfIAxmjN81zPG4FYavFSpRblo5O0rWuveaT/AWGweHwdd17OMmkrtbrdLQ9+NtKFbY S6kAFSfu8fe/L9TVYxMxZDGIpEUlgDyRxnB68DAx71+dKo4xVr2/4bc+hjK97kEsLbRMoUwyNwSx OfYHGOxH0zzVWW1KqAiCZQCSUXjHOM9+2c/3aim7O0kapPXsVZ4ucrlSORLKmCRyQfr378kCqKxI jKAiwjGANp5PfGO45/GqjLn91PX+v0M5SUHqUZbZiZIxiQLwYkGN3IGM4OfT6nNZpt/MG14Cys2c xZH+8M/5GAacHaVk/l5mfPbpoU5g5cop2xtzkk8dyfpjJ+mBVF42WQBQd8BJ3Drn6f55OKI+7G73 a/r8wk01e2hVdVVJFjUKnXYCMn8h6n8z7VmvG0iDarOoACxL1OegH6/mTVU4pa9DJpu62Ry/iKxg GnyXc0AnjsAH2OpLKB1ZQNvOO2fr1r4p+KFidJ8Z6B4itcS2eqA28krjG44MiZ+o80fl7V3ULSTj 0OnDpT0tc+lPB0iav4d8kzNLdWD53mPASNuCQR1G8MencU6+sGjQEqcjuD97nrWc04Nx+f3mLlsj l9ZsTdWUkU5MkciFTHJn5h7elfzZftzfD0eCfi7eSw2irb6+nnrcODlSDgqOcdNvbNepk1T2dR3f 9amEoOa03Z8LXEUqkrgEL0I/z71myxyOpAUlSc5Jr6tVU0mFSlOt7r3KkiOQC4JAH3T3qEgMzEKx J6AitlUUUrHJOnJfFuRuFAwcrj1FIQASwyQe9b0+thum4txGFuSSRu64WmtIxILlmUcYJ6VUYuVj KTTaX9f1/wAAzgxkBBBXA4UVagjBJZwwRBkn8a0bYYaKirvcnkeWVi7MxGMYPb2p8aOhUkKSfU1g 5Jq73PQalHV/1sSl5ScAkgHBRT3pWknXAUswyMg1EoxejNXOpNcy3W36jf3nBU5Lf3scUEFiAYwR 6qKq9ndeortR1V0KQCwXyiAOM59qasSyMoYEqByTnmqhO2pc4KrGyuWo47YMrgO+P9v2+lWFER4k aYK3GE5/LpWNSTbs9zqo01Si1Hb+vwPSvg/4Cn+KfxX+Hnw9s4pZj4q1a3tJcDDLCXBmfH+zGHb/ AIDX9x/gzSYfD3h/SNLsraKK0soVjWCBP9WqgYAHoMflXlcQzccJCD6yf4Jf5nFOpvpqdzHLcMwQ gkQcYA5z7n8cVxHxk1htG8DW9jJNJDJrUm5o5FyTEg3MB6ZXec9eK+QlBVGmu5FON3fqeA/A/Spb m01LVrhUW81aVmQNGX3u58tfqfklP/Aq+vNG8Aa9rQjENvdLCgwBOegH6CrnJU1G3a52Y1Sm1FM9 n0b4RpZwRyXTgSOdpBBJHHNd5Z+DdLs40UR25VRzI+SR+uO3/wCo1wSnd+v/AAxz04pI0Fs9MtQ0 O6IRA4G4+/WoJNW0y3hEjMm0LgpGe+f0/wA4rSburouL0sZE/iHT4Y43DKGP3XHbHH+NZ9x4nhKK glII48pCfw/kO1JQu7IOZzflcy5/Edu7BRJyAAcAAe/8qzW8TR5UIzhiclj3P9aU6ck2KT6EEniU D50maHe3BU9P8is+fXQgBnmRgQMuvpUqjyadPISmm1chufFAVIlFwpeTrg9Rn0rMm8YWqxtIsrzK vZTjBxjj9aunQsveH7VRVkfMmtfts/BnRPHF14F1bxFd2Osabcmznv7m3f7PFIByGk7AH5c9M9cd a9903xkuu2sOoaJqdlqtldRgx3unTLJG/OSVYHBHSvSxWTV8JSjVkvdkk0c1HMoVZSgnqjTgmv2+ USyKH/iI4Prn9a0YbS6ji3LveKQYJYcDPT+VcKcbHXN31RoxWM7lWfKp0BX68/zrwT9of4m/Df4X +AfEFv4+vNNvJtaspobbwdcMHm1NmUgKE5ITOAXIwPrgVWBpVMTUjCnq29NCMTVjh4c8mfzcG3Mx Ko4Vc565r9Kv+Ce/7N3iDxn8RNN+LWr6fdWXgrwSzSWl7OhQalebSqLGSOVjLFmI7hR3OP3fPsZ/ Z+ClUk7aadNXofn+V4eOKxS5Nuvyf57fee8/8FS7dbPQfg9YusbySXeoSYY9dqQ8/wDj4rrP2Sfj ZYeCP2f/AAN4fk+FHxs8QSWZvHbVvCPhyS6tLgtcO37uYEA43YPoeK/PsPg5YrJYxi18d9XZH086 jhmDcf5f63LH7Q/jf43/ABz8Cat8Lvh7+zN8S7K08Tsn2nxB47tUtvKVJA4CIx2q2UX5mbjPTJBr 0T9h/wDZU8a/AXTvFuu+PLy0i8QeKkghXw5p8wkS0SMscyuPlZyXI+UkAA4JzXLUxFHKstnhYzUp za26anTGhXxGJVaSSil01/r+ump+c37LNhbH9uDR7ULGYbbXNX2GXplYrjaf071/Qn9kUKpBdQow CpHp6fnXNxhK86On2EZ5LvVX95kckEihljyXcfMMj5fX/CuK+IWlQ6t4E8X6bfFXsr7TLu3myPlK tEwYEelfIU5Waa3ue5Jcyuj8H/2DfiQPhx8RvFuoReCPHPju51TRfKXTvh9ZC6nhUTRlnZdy4QDv 649a/Uq4/arW382W8/Z+/aViaDJaP/hFh8h9/wB5/dr9G4qyypjcV7WM4xulo35a/wBfM+eyqo4U nFRvq+q7n0h4M8QDxd4V0HxZHo+r+H4/EMHnnRPEcBjurXPBWWPkq+RjH/6x8vftw/FjxP8AB34H 3Gq+DbiTT9c8VahDo0WtRY3WaPHI8kijs+2HaDzjdnqAa+PyqgsRjIUKj3dvl6+Z7OKqOnRc+yPg X9gb4CeEvjLrPjH4mfE23k8XN4cuoooNL1hzJFPO6l2muFP+sx8uASQfmyDiv2j0/S7HStLi07Tt Ps9MtLIbEtdPjCRpjsqjAAHP4mvZ4yxdWWMdCLtCFkkvQ8/JKKVBTlu738ywLdJd0LRJMky4aORR wOjDnrkcfWvnrXfh1+zZF4603xdrunfDfRfH3hS5N3HepcQ2ciyEErJMgZfMPO4GQN03DFfPYLFV sOmqLeq1+ej/ADPQquDj7+39WPeUlimWBopIZobhA4dWyrLjOR25wW+gHtUM0YQh9hSNMg46jHHX jpnP1Nee9dWb6TfulaWEhWhPlptPCRrjv09/T8z2rPkjBVACrhRks3GfY+2APwAqlaMfMd3flQlw ruzSPOZAg4aTDEjORkevOee9ZskTLhWUxsrAMpHQ9MY+v6mmppWIabSRTdJWRViYAEbVCHAxkDj8 j+pqg8RDqN5BYZKsjYYY5Pt0H4YHFTJyTsvmTOSiryM2ZA4dWZkYMSwmHBOf17fjgVUljIYGR3yB /q0b37Ed/wCuTWjpJ6i+JXRQkt0VlCu6OBuIzt2noBj/ADxk96pXEaKgYMCzjO0Hv/u/l74wK1jJ Una1kYz0VjOlEcsMnnblDqVwQT1HHI/D8celfKPxj0C7u/B+pXDpeXF7ozfaY1uvmedkbcGDjhgQ MZ/2sc8104SPvPm1X+Wp0YSSnK39a/8ADlv4J64dQitbdri4e01CLYIVHD/L8hI9gBzzjca9XvIQ glEnDQnCuGye3b86Ju793t/mZT95XZzd1GQpIhLk5DKeMD1/z2r8lv8Agpb8LDq3gSw8c2cIkvPC 8++WRRj9y3DfzU/hXVgJJ1U2TQThLXdH4O3LAEqCChGMkVkSj0I3YOMGvqIwUbdztr4l1Hf+u5Ud iRgnJHOB2qJioICsc+oNdDTkro44NtKSGMVAPysT12YqJmGMZYAZyRWsbxX9djRzcoq25EfLYKMK cj7x71XcjJKgBvUV0U1bqcFWzjdf1t/mZqEM7OCWDHgKMfp2rZht7qd4dOtIzLczuMxrjluw/Af1 rdR2Rz0E6jtF+fYqr9oR2RghI4IABBP1q6z7Su1EYqMEkdaykoyskelT5pR5Z/ISGRcM3lqwA+6D 7VG8hBYhQA3AUHpUxpsUm3Hy3JAdqoSoJI5xQWZmJKZAPT/CsnaPqOMpyVu/+RZIjJZizhRzl16/ hQrRFCwIAQcs4PPtUOLSud7UaDafyHJsOCdpGMYXPFToC4ZgwJHOCetTKKT1NIVEqfLHdn6sf8Ei fhQ3jn9onVvHN7Zm50/4baduinIPyXM5KIf+/azj8RX9Wdtalo4liVRIoyIyMduD7/8A668biRJO nTfa/wB7f6Hl1ZOUrvc2bW0RB5khO64YKEDD/PSvlf8AaZ193vJtMtJZJF063jtI4dmcucn5T3YY dT/vCvlpOTai99fyNcPDnkvketfCPRdL8N2mk2t6ryW1mpYx2zfM5UCNQR1Kkh2z0619En4s6fpq G00fRLxUXOBKOn0rXErXlW2n4m2LknJtGXc/FzxHdBlS08oYxhhjvx/KsmXx/wCIpFd2fBUZIJxn 8KwdFQZx8+pnSeMNYdTI10+DwFB5FUT4kv3UeZcsSwwQp6/54raMOZNXJcnJ2RWl1+5kVRJcPlOi 57+nFUZ/ErB2XzZG8s4yD29/0pyg5XuODbXvESeILlgzRpIwYkZI/UfhU0Wr6k5keG22F1JDyc4O Pp7monG65mrDVk7CxRa/dJJlGSRhgKg6Vfg8O6rdhAGbLDkxZPGMn+RpJ8l7L/hgSaSbOhg8F3cg jZhN5aAMCx+99K534i/Crxr4j8G6rovgHxJZ+EvEN+hSLXtRt2l8pSTu2bSNrnoH5x6Zwacasac0 5LQ1dG6stz8V/iB+wZ+0n4PlvLybwZN4ys2ZpH1TwhKLppM87jHxL2/u5ya8Z0q9+NvwV1QrYz+O vh9qFs3z2V0s1vuPYNGwAP3T1Hav2fLs2wWcUlDTa1n006HxeJy7EYKXNBXS6rV/d6n0b4d/b0/a I0WFIr+88LeKXVdouNasAHIwO8RjruH/AOCjXxvlhMUfhP4c20jLhZEtLg7PQgGbr161wV+BsLiJ 80W4mkc8q04arZf10PMfE37ZH7THjNf7Pi8XyaDHOuwWnhKzSFmyMcOAXz+PWud8KfswftLfGzUz qtv4I8cazJqeGk8T+K1aGN125DGefAYY6YJ7eorro4DL+F4Oo3Z93v6HI3i87lypWWnp9/42R+lP wL/4JaeH9AvNO8Q/HDxDH4muYgJB4I8NBkti/wDdmnOGkXpwoXvyQOf1X0zw1pmh6ZZaVoen6fpO laZGsFtYabCI4oYl4VUQDCqMDGB0r804p4jnnc0oK0Ft/mfbYDAQy6Fl138z8cP+CrbXVz4h+Dem wW81wllZahcMYIiQN7wjr9Iifzr7g/YnUR/syfCaCGOULDaTb1ucgiT7TISMH3BH4V14mSjktON9 ea+/+I5aVKSxsqkk+W39fM+obh0MjpExIUnaxPbPBzVOeWWO3uJ8iOOJGZpHAOOOv4V8WoqT0+X3 nsJN6s/mu+A/i0+Bf2ldE+KOuaX4hk0Cz1S7ubi4sbJ5pAkqSAELjk/vQcema/YaP9uD4LmITRWX xFdlwBEnh+43Nljg5xjqK/SeJcsnmcqToyVoxSaujwcuVTAqopQfxN7dz0D4R/tI+BfjT4k1Hw14 W07xhY3mnWZvnm8RacbaN0Dqp2ksSWy+cYxgGvSvihMbL4Z/EHUYreS4ltdFvXW1twWdyIGIAXqc 4xgc5r4fF4WWCrqlK3TbVHuQm6kHJxt5dT8Hf2M/FF18DvizfeJ/GnhbxpFoWpaXNpzS2OlTSMsh liZflA6fJj15r9Srj9tn4O2rShrH4mSEhSynw5OMtkrznHcfl78V9nxPlMszxSnRmrWXVXPGy11c HTcJwbd29j1/4S/G7wR8bLLWr3whB4kgh0CWKO5TxJZm2fLAlWUEnIwH545H52vjV8IPDXxu+Huu fD3xT50NneATW1/bHL2FyvKSp2JHIIPBDMO9fGR58mrqTfvQafl3PXUVXh7y36M/Lb4c/DL9p79i nxhrOoaR4Gn+LXw31pVF7D4PJlM6oxEcghUGSOVQT/Cy4LDJ6j7O0T9tf4Ly20Vv4vn8VfDXVhGG k0rx1o9xG4Y9fmRWBBOeTjt9K+pzrDw4gisZhmnJ25le2q7X30seTg6NTK37Nq8e6/r+ulzsm/ay /Zwit3lb4veEREnzDbI+/wCm0rnI9Bnr7cfjn+2l4w8IfF/45W/iL4T3tx4q0m40i1gnn0yymXfc o8m4KrorNhDEMgYOD1xWvB+Eq5djPa11yxs1dmea1vrNB06abk7dPP8ApH7sfC6Y6j8NPh/fSWsl g15o9k72V5GVaI+SpYMp5GCD1HQD1rrljX50+zsSucmJj8w4wcHp1J57n2r4XERUajTd1ff+v61P ap05KCT/AK0K0sBaZGkhjDqQAADxxtKj24I554NV3jYlJFUKZsAqoI7cnGent2GKylKKTtuNpvUz nifJSQOhQEZ77u3H45+p9qie3UBVPOV/1T8L0xx1x3/DJqo0+V2XkNNxdinLEr5RgEcjAJzxx1Pt 0/DA75FJkdo4Q4RmfO3cM+/T64/HA7U1SUttxN8ySMx41aSNYkmcEkYcA7jzjB/r65NZk0TRq8RD rGV+ZHz82B1/LP4fWrg1TvLqZ1ElYzJ1kVipZ1aIkBgDyO4/l/L1qrIEGx4jLHOgJMic7vTHuDnn 6ntVOo5uwlT5d0Zdxao6m4iBhmPO6M4AHoffB/L1zXlPijTY5LjUkSGBbfUI97kuoZpMY/1ZP6gY HQnpnXDOUJcl7/8ABFCfs3zX/pHyt8Lrh/DviPUNDZ545tAuikIt32sIwwMeG6A7THzg9OlfZGsI JJVuoYY4hOizLbsQWUFQQD78+n5V0Yl80mu/62sGIk1UbexyUqxyIoZDG4JwU4PX17/59K8S+NHg W08eeAvE3hy6gSePU7WSJgy8gFSM4/GlTap1EybWsfyYeNfDF74U8T674bvVdLnR7mS3YsNpIUkA 4+g/WuEnjOWKkknpk/lX12GrqJ1VYOKTW7/4H9MqOAQdrggDG0d6gKLt2qcEDO3Ndik7M5qlNW95 kQBZzkg8dPWmOjEkoRg8nJ61canK9TOMXdtPX+v8yEhgvzBTjoeagcKwIOACOhNbwmZuDjdd/kMs AtsrXcwJaP5YlPd/X8Ov1xTFXcGyWY9SGPWt27PmWxx4emqr8y5bqUG52IVhgYpTliAC2W4x61m1 ad0etB2prXv/AF+g9htZEJUKByfU0qKzliQdiDJJHSplJyVyYQc42fQcAy4Aznvt/lUsabipIYA/ 3hWcpRVmdNOneVun9XGSZ4QDhepU9amlBRBCoBCjJB7miMlpdGk3OLbXT8vT77gqoQoIPyjAYmrL GJU2fNkHqazk224x2KhTp0YuT7H9TP8AwSA+FEfgr9nSPxrfWSQ6r8Sb6W/MrKQ7wKfLhyT22oWH bD571+vEcNzNASsZUMMEg8jJx/OvmeIq/Pi3F9El+CueTNubfMdRpdjb2kgvL9fNhske4kQZJCou 44UdeAa/PzWrqbxX8SLSSd2uZobhtRbd0fB/d/mVi4/2q8O/PLb+v+GR6GATTPs3w1LpWnQ3El1I bqOzjSBJbZduVQc7j3O5m7VefxnpEUjC1sXOMEMucit6z95qJyVJupKzMy78UNNnyYI4I1xuDEDr /SsGfWJZHdQ25mGMoQf89Kn4GnbUxnLk0Kwkubjagj3lRyT3q5a6VqMzqEjmkI7LkAfX8xSbS1FG TvZHQ2fgvUZlSSQOVcE4A68112n/AA/uCUYwqDIOWx0/zmlVqK12bU6XNsjrrX4fSRyRgQ5RSdvG ScV0ln4FRICWjXyycESKOfpUuraV2bxo8sTfj8GxrtRo9qOvysByD1/wratPC1tGFAgwdueQOOvO fxzXK6itzFKKi7mjBosKyPEIFcOPuMvA74Hp2qb+yXbzG2+ayD5yw6c8f5+lc/O+Zs6JtpOxYj01 QqAQBAeDt/i9atSaPDdq8N3a211DKcNHdKHU/UHj/wDXVNuHwkThzqzRxeofBD4Oau7yav8ACv4e 6pNOSXkv9Ht3ZsnJySvrWfD8APgRArNF8G/hcp7sug2wx/45/njtXoU85xMVyxm7EuHO7t/idfpX hrwl4cAPh7wt4Z0IIApXSbGKD14IVRnqfzPrW2947BpCy/MMEt3PrXn16067tJtijBb9So906rgM o2gDBxgYHb9aq/b5XiKKyqyHheOn+QTUptvQqMb6oz5ZTI0YZFYDgMR1PelDFSFBCvGM7gK1bcY6 MappO497lIVdSqBBwzsRzUZ1GIqUH7xwS29umPSs5tNsppNWsV2ugHfCQoRjIA68f5/OnNdbWIlA VVOCNvUkdP0FdEakt0zGNOLdgSXcodoAQhBwcYBxnP8A+uqW3GWjwzBS2wnp+NQ4uT1ZoocrsiCR JGLFg6NISzdTu4/I/WpHLKoY5I27iY8fQ/4VMpa2f9Ih2auRvgREMVlVyMkjl/fJ56mmeWAQillV sny4zyzexFRNOTSRoo+zXkVJVdVZkJzMNoaHHHIB/RsfrSiONQFYB1OQpZumD09+O3t71pzNKyep DipvUoy6dYSMzS2lu7oFAnkhU4IOSenXnP1+lTx2axYhjWJYU3IY7VNoHHG30Hb060OtLl5YyKjF NitFGGCbRluFJA27dvXkZ98egA71VaAQSqVUF14KpjK8ngZzjk/mfapvaN+qHJ332KLQKV2gKGfI LIcAc+vUDGfw+tQ3EagNHhCBiRAQSwPbP6ceuBUN8y93czVoLUoiFpMLGmEkbH7vI+mO3t/30e1V Z4gpU5LbzzIwOCf8Mf8AjuPWm25PXX+v+HBvqVXgI3SCRWkRiMdScHkY9eR+OB2OMeYZVgUG5z91 Sf0P+Pua0l+9V2KTd9CpOApBcssb/MAQdo4Gf8+mPWsq4ORKS0UhTorrjn1H+cZ+lKDUG77Ca5tJ GVIEJBVBtYYwx4A+vp1/DnvWbKYkZkiijVwM7MHPbjP9Pw9a1S5U+4pz9qtCo8amXcCRARkhHwV/ HHt16Z+grjvE9hEYrW8ZrS1a1f55bkkjBGDggHB5A9PWuikkp8y+REKbg7Hxb45sW8NfEyx1FXa3 g1uIRtIOiFTwenPyv/45X1voiyX3hazlEKxSWDm3kLvnPfGOq85GPb6104mbk230/wArG+KfPaTe 5Su1dVZREiq4yAR+v8vyrBvLKOaOeIkKxXiNucjv/jXG5faf/Ddjgfu7H82P/BR34Vz+Bvi8nim0 s5INO8Xx7nYfd81fT0+Xb+Vfm5O0gYksygdQR1r7bLpKtSUralKXs4qzf/A6Ga8rYARccfdYf1qB pGJBKqccAYr0nBJmCqN2tsRtMQFJjUZ6uB1pBKN5JOA3BK84qlTSV2zT2zn71kMaRV5G4kHq3fmo HmUgkkqVPbvVUqbmrkYisouxHMyu6rEGSCIYVGPJHcn+dSwoX4LAA9xW0pJs58NScGk93+BYcHaQ DhjwAcVIsLJEs7OMsflUH9f1qIVLK1jvak1duw1FxkEkjOcgfrirIUIgjDFWk5JHb0zWVSd1oa4d 2kmxyAD5thz3A4xUhYqpZuAB0bvWMrS0R6lB2jy2/r+riwIDI87Askfzbm7ntUY3OSWwRnkN3rSL TdmZSbWi6/8ABLsaJkFlVeOoHFaOi6Le+KNf0Lw3pCC51TX7qKytoQPvyyOEQfmwqaEZVJpIeMvC nyPR/wDDH91HwK+H+l/DX4W+CfBGnRqun+GdLt7KNEQDPlxqgP14/P617SWZmiEJUJFgHeePT/P0 r47M6v1rEzqrZt/mePOXO+YreOrx9H8Ca/qEc0yXt+sdlbOhxudzg54+7jPv+dfG3wmsW1DxTrOt PtaysZgsbkE+XFGgfIHpxb/lXLhYSVS+/wDX/BPQw81Tg2l0/wCCfTEMMMFtDJfRhppV3MGAG5j1 O0dKWKyMxIt7dVHoq9aVnJ6nnVkudr+u5q2Xg+a7cF7Z5C38AH412OmfDeWQgi2cnGM49azm9bMI QclZHoFj8NWjZUFsJAeQwGe3H8q7m08A28Oxmhw6nJWMZB7DH6CsZ1WlZHRGmoyvY6a28LwWqGNY o0LDBcgDHtn861k0S3hVmSPbjhQeAPT8jWTrWSXTr+h08ytdj2s7ZDIdpRkJAkA+7gf/AF6ljigM a4VSiZJBxz0/rWPNdWf9f8MJX3J4xCxZVG0AZBZc59v8/wD1qmA27UUp5TDg5J3eo/8Arf1qE7K7 GlzNsVoizxqSWbphep7d6ligVlJ8sIGHLD/D6D+VJp6MLN620HIi4lZowcHBDHp9PeopLmRFQIAF BI2kDJ/zmqpz51yspJt3RSmvJN6OChLHJjb/AD6VRmvldY2O5GU4AGATUtaNLQTSeiRnvdgSTI6k jPMYPQ59R9KoHUsABlJyOFYnt15+ma0UVLUUY3VmVnvwVZiQoUHkd/x/Ks6S8KhZCAFk5IQdB6fp TaUnzXHFSje5NbiZyrnIxwARxjNSi0kkY8kyEnLMOhHWtk0zSD1styVrFp1KmWUqBwF7c9P6VYNj 5cblAy7k53nkc9h+YrJu+rIS5VoTDTY4n3kq7HGWYDjJ6fzqOOGF3d5NzAn7pHQf5zUweto7IUU3 6EbiEr5SGUhP4WH5/wAqqtGqsodCZASSc9R6ECrirLle39fMTk9mQyEyAHcQ6naRIev+NKEQoDnc AOit1+o/z1qZNJ2HGevMRtM4dUBwY8jYnOOen4HH5U1AJ2x54Cg7trcD/Adv88VCUno/67BJ6ESx wsZERiyrwuGBzz2Pbr+tKG8syLIzdQdrtwCT+vT64ptJJPY0jKy0IEUgRs6qHDfMy447Z5785+pF TtGCAxW2WNDklCAHPQke2OPwNQ7rRP8Ar+upDfci8lwjbCACcNKwOOOQf6/iPpUclrtMjCMIV5IV uMdsD8Tz9TWkppr3n/X9fkChzIpyRSRK8hURqRkZxhs/j6gH8h3qosMioB5RSUAFXYYOenX6/qT6 Vmo2+LS/6f16DUubZFW5jjO0x5jSZMsAOMgZyV/T6Acc1WmtQjMrl02nC5OCTnOfrn9fpVNuMbIU mnqU2gEybijxFWyYScdznn6E/hk+lZUkUTSExMsqtyfNXPORngH17Y9BVSgmTJxUrGTfR8uhKxsf mwF749fXIP45PYVizWwaJXmBYRLjeWIBOOCfbH5j61tfXlJT0aSMiSFtjEjIUnbuwCp78fUf5xVG SN1feBGGB3EKx469e/8An3olNwZC3u2VZInBO6IFSflTjGc9QD1rKvbCW6tLuP7Q1sZ0ZQ8LbXBx nIbtwfyJNaQqOCVwlFpuSPlH45aA974at9cisnjvdCdbpwGDMqjiQHHX5C/5D2rvPg7qn9qacbdl hWa7tsNMG5V0HYd8/MeATkj3B7a0Uk2t7f5NP8zoquMqKk3tp+Z6Nc28bOyeaomOSdy9QfT3rnL2 3ddgVjIcnETDpXCk01c8ppKTsfmx/wAFCvg63j34P6pqtraRyap4Zb7ZDMFyVCjLAY9VyO9fzdT6 XMzMBhSp5yP5V72W45Uadm+v9fkj08HhZ4pu3T+v0MSTTZlY7VJHQA/596z5beZCdyHI7c19BSxU KujepNbLqmGTVtP6/wAioUkyoyGwMFSaaYpNpAVct/Ecda65O2rOVRc3Z/f8v6+ZXkt5MBQhLA8g DpxVSa2mwSI5MryQq9K6KNaK1OGvTdTTrsEalwSoILHOM8+1Xox8q7gFLdFFDbbuVSldppaEZPJB JDNxxz3qVzFkKpJQ8c/zqm5PY6VOEW1UehLEqkglvu87SOvoDU5O9nJb5j0UD9KwqySeh24eipSa TEQgNwABjqev4frRIxztBCgdQ3aojFuVzpp3hDQsM2xI4gF3Md7qvrjgfgP5mkXGzIVQ4PCmonLq FOlda/8AATNCJogMSRElRkEN04+lfd3/AATW+Fk/xQ/aq8G3klmbvSfAYbV7lQuRuHyRAnt87h/o hrfBycKjqW0Sv9ybMcdKVSFnp/wD+x60sFhSCFXLGFQAjDHPp+lbFnARcAMgUgbj5eOT14P4j+df n7fOrtnmRvOyjueT/tHarJpug6BpKERTQwy6hIUIwRjy4xg9wz5/CuA+DelNb+GbaULcw3GphQjs vzsXYyMG7D90sa5rPCJKcn3/AKv+B6VKXJT12PpDTPCMt/KiLAruT0XJAr2rQfhopjDOm1n4LFeB z+vH+e1KclTXKtzijTU3foej2Xg6wtoAFjiZY+WyOW6Z57/56Hr0UWm2ERjYlCoGMsAMevv/AJ7H muSU5Sd11NZJRV+hPJd6VaBnZ4VDjJYHkDucfj/j61nPrtjtZC8ZRc7WBwSc49Pb/PBod5KwNWMu XxPaBmKMuZMtuB5bjGfY/wCeahbX2BLJhR1VHPTsSfxIpRgovXqXdJ2K66hMyrJECZAxCsTwR0x9 KsG5cxQtIQGABw57ZPUD/PQ9Kzkk07P+tDTla1RaidmUHayMD0Hf1/z+Na1umwABQ7N1ycYzzk/r +npUU6basiowcVoXAA7Oh2QiMbgWPtzz+A/OpPMHygiNCh6Zxu49/wDPNZqTm9QTtuZkl5FEHAI2 lfut+uKyJ9SGGCCVJg3QDp6c+vaiLUm49Bxeupj3Wqx7QxL+Yw4QAf57VmXGpxld6hmQDqpyT+Na Qpc7s0EFdIz3v3kIe3LKzcZ/lQqSzZBjdlPQsen1raS5rtIiOq9DSWyZ0VBujAbcGGOf8ir1vp4l IeXLNGPkKgc8USkoq/U0Urq73NZLfKoNgG0cbf05qeG12u5bekS85fvSjWe1xJ2vcWV44wyo4Cjg soHH+cVB5qiMAEMV+8W7+1Yxi31JcrPbQjmuAYZGeXaCc7cdDWIbkHLO7BWBwFPetILk16/1/SFG L5SI+YJ0ICkt8zPt6elISzA53xMWxkrjPPGP0q+XkSv1K0WpMkQRlIkO8ry4z3HIx6VKbMFIw7OJ JDzv6L/9bNRJOD1HF3+8rixQxlElIDNtUEjjjJ/r+dWksdhUuCoC4IYY788/UH8jTUnu1oCVxBps SyqHMjq3TAGRnoOvXp/kVLJpSybXM4OFAMYXgY/z/nNYRfIrf1qCvewNp6BVjQswT5Wdcc+v9fx+ lRS2kcUe5olw58skn7vv7jp+nrWVNcjstv6/Atq+jIJ4WVndWMgIwGjXBJ+g+p59fpVKVNgZU8nY q7VEgIX14/DH4cd62u5v3Fclpx9SAwsyiJgULD5UB5HPTPTOcj6/SqMsDlvMI8qJgCWmxzkdv89P TNTGcmnIUYqOrGOiOAkYOH5Lygbhz0x65x7Z9MVnCMKrs6oXBACA9RtPYduPbjJ7iqpNzi7k1Ypl MpMql1YlsE/OMlT7D8v0FUJIf3chKkrEP9Yc8+vPXsTnPqewpxmuq12MpR5FoznruIsGIUlOchTn B9h+IB/AetZchGJWWNgegIJ55OCRnHqfzPpWsJX16f1/maNqKuZ0sDKxdYyFQBSgHbHUZPT/AOt3 NUJojGNjoIt5xujPv+R7/wCRV06vs7MwlUd3YzHUICdwiMRKlSCuPXPPt/nNU7gSHdKZWZGJVmTq p9/fAP5egFVFyUuaRLSTszyHWdCiutM13ThYvHalmCyXEhZJd+SQMY2/xcH9elfOfwg1CfQdV+w3 ULXN1ot0UaFmK5CttySORkiMj/e6Yr0qiUoJvqdcZ81Jp/1p/wAA+utTAWWYqquZGB2k5+UjK8j2 x7elcvdF3YuSygHqDXDyyhG9jgk4uWmqZwvjLR4td0TUbGRQwkhYfN0J7Eg+9fyXfHrwfffDv4p+ NvDU8CWqW148kMMS7U8pjuXaB2AOPwrty+mruMtvze/5XPSyirKi3y7/ANW/pHicktzlnXIAGcGs aeSZiSyMQpxkDrXt0IQ5rLoetiZ1ZXb+RWaQBiTH8uORjrTXZAqsIztYZwR79q9C0lZpnIoN3fLa 2pWlEQOVIUdOSeDUbKFVmWaQDHVD1rSM5NamKhCUmk7WVzHiBI3EKVUcqwq1uDNnIKg8n+leikpO 587h5c2r3/r/ACLCM8cMuI1aR+Vkb+Ed6iUMPmZeAOAO9XFcqs9zqcOdptaLf7/6uXwBHghsyOcl R0PH+FQh8qSE2tyeRXNKnzu6PQg/ZR016/PcepYBWABK9T70L5W/zJEBReoX+L2qYtqV47mspKML z2/r/hhUG6QyqysW5wR1P0qWFZEbdIF+TtinKSj67DV42a2LcjxhGbawZeAQOtf0f/8ABFX4OPpv w+8Z/FW+tJYZvGd8Le2nYfet4Nyg/wDfxpvyrCo3Tw1WUu1vvZzZpVi5JpH7729rb+UCQqsowdre 36V0Gk2cU0sTqFZidgRQRn6/59a+JjdPU4kr2Z8U/tE6rNrnjPUNJspJNs9xBpUUZfhSPv7fX5pI z36V9NfDPTvDUl7a2es6vLY6TYwmYW9lH8sy52xHOcj92i//AFqWFhyU5OO7/wCH/U9Wa5KabX9f 0j6UtfGXw10NBHp0kc+xcAyLy35/j/nmql78ZNDSJjZq0mOFdRx/nr/9frXI6DnZs81yW2xzMvxc uJpCY43ER4Kn19ePpWTP8QdaunzEjor9GAyM1pTpNqzBSvYrw6nr1/IrmWUO5xt6e38q14bPUpPK aWSZsADKZODjj/61N1OTRhFc260OhsNIu2RZC7BGAx5n8Xpx+FdFa6JcSyLvLsFGV3Hpz0z+Jrmc +pvGLudBFpTQ4CSSKWGSAMYx7+uD+uK0101SwDIrCNQSHJ/ED0/wFZuTk9drf5I0im0XIrdVVtgC Fh0bAwPQf5/rT28uNULN5YA3bZO/p/P+VQpOTsEdNGiidXt7fdJLJHtRuTIM59BjB9PxrjtU8YWi uIY8Mo6KDyO3J9aVODm7Q3FKamrI4268Ul3ykjBSDgDt/niqR12SUq4LAOeXUj9PzrpjRaV2NSUn ZDUubm5mKFwQwwRjt3xWrbwuUfGJFB5HPB7fpWjfM7jjFPRbGjbWcqiJmPDD5lBIHX/Ctq1tWWIA xmMnqxHJ61lNqL0BxdtS7HZyzGGONGSM8sUUZ/A/jXTQ6esa43Kq47DP6/hWc5KKKT01JmW2tEZp TGSEyCB1+grEmvfPkRgWAU8JnI6fzpRlzamcm1qzNlugFbLI8aDgkfez+P0qp9rjjCuhYGQD5ccA 1UKbk7FL3tehmTXsruxjdXVWwWJ46+lTw2haVGk3AqS2xRwffP51tCVkUtDTt7Bl3BkQs+RuY9B7 CrQtrfKRStKQBwwHTnv/AJ71jOo27k2vYf8AZMs6uqqowQD29f8AGpxZOUZGWU7j0Tvx29sEVEpS k7sqTu7JDzp0hb5I3YgYKsOhI/8A1fmKsJZFSu/yyWXAbGc479Meg/8A11LXMr/1/XYpO2wkVoqy MJAJGCkhpDnH4/570jWBy6RlgrZOSNu4j6HGf5celZtWXKNxUndFOa3CyhSYmhj5LoTg/h1/lx9a psjICu+XcCDvD49eR75/XntVRjKo9AcXB2ZTZY5Y1CMqeT1Djg8/y4A+n1qi5QGRzEzLnGyVRxg9 vfn8z7VpCTnsxJpkMpIJZztJVRt3dc8jBzxjBHPbJ71SeRC5RmJLHIYjOMnI+pz+uB2rnjFLdf10 GmpN22GBXUzMk2I1AwEPTjPX06/hk96pSxorRRpLv+08AuPunjt7kHPuAOxFbxba93oS4uTsjOuI QNo8skr1bI+ZenX8/wBTWXcKzMxU+WeMLOuFUdcYP0B/IVrUi5tqGplJpSs9zBmjjdy0TmPyWztU gj88fXn3JrLuRKzFiVCSYIQDBA+n02/oPWpc1FXS11IavpIoyM0K4KOsjAjcTncOvr9f1PpVKXcZ Ag2llyvmtg9uhGfp/L1reN5ev9WMYx0sjNlSFoXZo3ldDnLHt3IPp1/yeKUm0AFGkdhgGNG6j1/T p7e1XCXVg9tdziNRsxa6hHMttHcLfRNC90Z9rDHIAQnDg+gBPfpmvjXxBay6F8UL02sckUOqxrJu KYw4IXJPpgRD1rup6003r/V/yR34dqWjW6X9fifYVjIuqeHNGvooDbIYDDv37jJt53YySPlwMcVj TxgMxUlwRySOT78f5/lXJUk22nseY207J6/1oYV0jFnUjCgYCkYz6Hr/AJ/WvwY/4Kh/B8aXrui/ E3TbQxpep9ku3jXOecoSenUn/vqtcLU5ZL+v67HVgpWko2+R+OdyjAkoAob+P/P1qjIroCu5iW6E +tfVQmoxsj0KlHnleSsv815FJ9xLbjnPciq7EnJU7z6Oa6lZtI4ZSl0YAOeSqsx5Kn+lN2qAuVxn nDCtW+XZmjp3jd/1/wAAyFJACAnaOc5q7Z20t3MkEAUySggZ6DA5r0k77Hh0ZKT0FdsMykFyDjcP bgUqk7+AgC/w881CabTZ2xqqKfLv5/MmGdxY4Z8Zwf1oU7mwVyB13dqxbSlqdcVzRStr/wAN+g52 IGwHJAz1pk4VI44BgMw3sW/QU6bUWrjxV3Gz2RLAmADuII7VpLBKzBjFIFODvIP51jiKiWrOihSU korqOjsrnUb2y02xg+032oSrDFaxdXkY4VR9SRX9xv7H/wALLP4RfAn4feCbYLt0jT4I5JCCGkfb 87n6ncfx9q5Mzq8mDSfVo8/MHary/wBen4n1fDbMyA+ZlJnAAcc/lXVaYsVtHeapOjpaWMbSSyR/ wALkkDjpj+XvXxzbhG77GdO6lufnjPJe+IPiPp188rTXMEk2oiSUZEzYJjy3rzb/AJivq3RzZKLo TCaS3sSLeOM/KqBQBx69BzTg1Cm4Pe/9L8DuqyahG/Y3JLCzuwrQxbFPIZ8jIrSi8MJOpfa7Ke5P JHfB/KknyqzOG0pbs37PwusYVFLBI/myM5A+tdLF4d8sIhjIycbQOSeDj/P4Vg6rvZ/10NYQaep0 FppDKm112jGCQB1/CurstJcsAy7QxBGADn6dPSoqWady6clFXOjt7AIoIVYlIyARnJxj+grQFoIl UsqqqAkyAn5vX/D865XJK8epaV7dgkurdGKPIUOMgx84/wA4qnd61b2+8ylY3GD5bHH6fl/+o0pU 7K0dhSnFHI33jiztUnVZgXOBtyAB6flzXnmqfEKSRZYYZsoDgFR1/wDrdDitoUHfVf1/w5M6vItD lJvE15cI8kjuxHO4k+tVIZ7mV2lYsWlOMsf5ev8A9atqdL2et9SedxtfcsLYSy5Ujdk98jHauts9 HnmihicOYgOIwcbefX8TVKai7mkaWuh1Nn4ffziUiwqjhVHJrftdIlKqoiIOfmTJPfg+/wD9auec 7+ppdJG9a6KzqA8bLheSfXn/AOtWlbaQC6LtbDc5Pb9KydS71FUd07GrBYxWiDeis7ZBY1BcSxxK Asq/IfmYjoKyUnUWpcW3ucHquuRJJIpdXUfKClc7Pq7bQImCBwGIPb8fpXTTp2i3cL8zszNe8mmD IjFkz94Lj/IrVtrae4UGQytGGwEJHHPBNbtacw907aI2bPTQGcBnLHqW7cen4Ct23siSQyANDjle g56/TrWE5a2Q3LWxp22nAIVcSpuOSW7nmryac4QAKpLcqmOv4/iaxleLdnuJXkWTZooHmRhZejMA MjgYx+lEdkmA8akMOSQOPw/T9Kl03LQcYOWqLX2aNjKIUG0/cVmB4znH+f61EbVVUNtJIHQnP1/w /X0qVDlXmWurKJgjidmIUEddx56jp+X+cVnXFzCi4eQqFXBQ85/T3H4cdzTlL3rPYUkrbnO3NxsV 2UExqcsSfmP4/wCf0FZs07tIMTE7PlEbHAbtxg9Dz+Ap005amTbk7lULJKDIzGfKhw39056n9PzF TvasFErO3mrnMZz8oGcnP1z39TSi1FavU0u4qzGC1LQllKOBxvfqCPT8cfjgdqrPDHFIVCpEpPJQ 7dpPTnuOv4ZPcU4zcYpWIcepXKEvtZyEII2nHU8jP4gfjgdjVYBGcNvUOqgAbid3U5z6cnkdsnqR lKPV9/6+5BKSehnzSlmV41AEgK7xggnAOPc5xxj0HrWPcMGeQtEoCBvmU9cg4z3PAP6nuK0cVTd4 v+v6Rm5PZmG6lA5kUoWAAmEfQHHX9P0HrVKWR0DMEUocHepOG7/ex16/kT6U1fdoybsndmKXRQV2 bWYkb4u3+fr6elZ0jwkDdG5D8ZYdOevv3/ya6ItwST/qxHLd6oryCJY0DSMwY7gQR69R+X+cVmGG NkIRQHAPyge/A6+/v+pqqSsrr+txRadlcwNfsVm097uG1tr6TTnWSO2vZCqbgcg7gwIPB5zjn0Nf KPxosDDf+H/EEW2VUn8t5EA6SKVGD0I3iM9a7qMVCk76v+l+p3YZ8018/wDM9k+GGoTavomoJcIj 3DgTvPcvlnyQQQucnhuuD/KuhukCuSSMnqcdPX+tYVY6rz/yOOtam+VdDGuLZWLLIeAuRt6H6mvk n9r34Yv8Sfgp450K3jje/ubJ/LBUN864dMD1DIpz1pRd5q2jMISlTacf6Z/JLetcWtxNa3EJjlt3 ZJI5B0IODn8qypLsjcrRsQARgV9lCgpuyZ6kcVJJuKvt/X6lFrxQDlHJcZ3NTBdRvhQWAYZyK6vq soM5Hj4y921v66CmaIAgEnHUmm+buCEPgD+E01RadzojVUPh0RlooYBTgkc4Hb61r21wLWKVoQBc TKUMjfwqeOB69a9Onq0meBTVo2W6X5IgCBNmRuLdyelWVjMYBZTuA7j+dZzlZX6Hp4am1ZJD3HIY 5AAwWNPVFCs8iqAOSXrlcmlf+v61PUhBTnd9NSszKXBBJIGWxSIgLlnAYt6/zrSMWldnJVtWqNW0 7FuJQGLEBkQbsGp457mMs8V1cICeiOeP85rOolN3kjdUpwSadv6/yPr79hD4YXXxh/ag+HWjXCyX mm+Hbga1diUk/JCVKD/v60X4Zr+2nQNO/s/TbO3jKBIkwIwenFeZn83ClTpW7v8AI8acnOo+ZnUR RCWRIy4QRc7x1HqMD3/z0qDxneNpPgDxPqUMsscslu0MCK3LsxwV/wC+Sa+Trw54cv8AWp0Qsndn x18L9OtLrxl4lvmhkuLewFvaW4Y/dCt5jHv/AA2mPxFfX/hTwpdX9pHOytI0hDFpeSc8jPpiuio+ aCa8/wA/8mejjHzx0PZtO+HgihgM4ww5CgdR/kd/1rpLbwbBDayISHAX74/Mf5/nXmVKvMnY4lBQ 2Ne28PwKVUxRqsfy8d/Q/kP89K2E0OJw2xULkZCsxO3nA59evH8uhxVa2+39a/iWtLXJG0tC5yqS BhksMYbJ9PxHp26GpZLOGFYy4JkU7QPXr69f/wBWablzNNDcOiMi71m2sUMbsA6nnBwfz9q4bWPG 9tCjlbhiQvK7uvbFUqbmyW9EcBN46EzYjZtgHJ9fp+dcNrHja8nJjSaUjOP3Zxit6cbJSZM6nPsc z9sv7nA3sxI53dK1LHSrm5dCI2YRnmMDr+NbtuNpIypySfKjt7LwneuyIQsAkYYM5ODXa2Hg2QAt IPLRhjAHQelc1SXMtOh1U6Gt2dtY+FIIQqGMkN1bHGOv4V0dvoMSnOxUL87wP5/rWSqc225pfl0N uDS0QsVJw+Bxnn1B/WtW301FBKsUYN0ArlmtHYF3Zc8mKNWJBJJ3KTz+Jqk09um9wQIwc5/z9f8A OaUpJ6FOKSOZ1XXbW1haSV1jAPLnjHr/ACryDXPGi3Qe204CXPBmBIx/nFbQpqbuzNzS0Zg2vmzv 5jRyMHIOyTgr9f8APeuh0/TpbyRQ5WMHkArwecdvpXbJ3Rcabm9Gdja6GN0kjBZWIwFTjI6f4Vqx 6NKqnysMW6luw/yK51PQ0o1Ipa/1qaulaVNESJQ0hbnLdxXVx6UzBVETqxxyD/nNYVpKd9DSs023 Eux6dGMhgEGCA3TIqdbSNlKqAcchQeuB/n/Oamd11MX7qE+xRoro0QKcZHdjj/P+TTGt7dVwyHGM YJz+H+f68TBN7sbqbFGWeOEEqGOBwkZGB+H+f5ViXupRwxF/MAUD7seOOeDk/j/kAU4ya6E1JPV3 OPvtfkBbY7hu7bRzx0GP844rCeWa8DyPCXCkqozj1z37VUFzKyEnzPce0Uj58tGlVwMRlOSfQfy+ tTxWAdAzSEvGAAc4BHpx7YH0HuKFJ6dxX5dWXjaB0ZVKBU5AU4J5/Tofxz6Ux42TYkYkRlBJj9T3 /kB9QB61nUnb3f6/r/Itaq3YpSuUdQNimcZLSt078jHcd/cn+IVSFzvDqybkQ8qAM5zjrj1x7dP7 tODTumVF8q5mUHnRSrqqhnJVnfOAew3H6N+GTnmsaScEhlWZY42+/wA4GCM5HP149R6VskrNr+v6 1M5pS2M+UKQoQNLE4KGJjjBycD36dfqazJ921SVk2M2CRjIxweO/X/0EUlC603uYtcz5jLuIo42Y hiC+MN2A6EdevXk+pPfNUJ7d3C7FkLAEExFRnLdwM8dfb/vmtU+XVf15C5Od6lWaCUKbeONxKAQE Too646Z/X/0KsyWzkVSjJgBshRyV/H8+3r6CtFJy+Ff1/wAEHGz1M17OVl2KpLK3SRenpj9fxx6G qptJEQxhWIU7lLt069gPf/8AVmtm1FJMUad0irJAsiSRSB3jmUq0Sv8Ae9vyH+eK+Yvi3paP4M1K 2heIz6OrPF9mVsRvEQ6qA3P8IB/HFdODalJxez/Sxrh1Zpvcd8Gb3/iYxiKOK3jvAAgZvug5GBnj oy/hXuGp2kMczABniJOEY849v/1f0FcjvFL0IxMlzyb8jnJbddzYVwuNuDk5PpXNaxpkN9a3VvJG XjukKssh6nHWqjJXRxNuD1P5Of23fhBP8Kfjr4qto7eeHR/EjtqNpPKmAxb/AFig98Pn8xXxbOqs eEODxk9q+wwFeVaPMz0oShTp6ruYsikuV5Yg5IAqEthwAuwDjpXuUpc2h4/Jq5P5E7KGBIIJB4IP WmlV3hm2kA8nBrNSOiVO6Tvfr/XyEgACEkbVXknHarCkyuWIzjnA7e1bpcnvI46blKyki7ahCXlf cUQdPUnoKeTyQDgg/eHU1hOM5y1PdhVSpp/1/WlwyCMYCq38P+fwpJ3AIQsSCPu4/KsVGSaib0Jq UZS+X4kCgqCXG4dVz2qSMEbxkNjIO4/eroUlay2OenKUXbr+ev8AkaCwlkQF/mY5KgcdOKke2ZIW YSR49QD/AJ//AFVxNqLsmdkqEnFzhqrf8P8A10P3m/4IpfBa4udY8efGHULRxAQul2M7KfmUEPKV 9Ru2DPqp9K/pdggQxRsqbHB6n+Ef4cD8vbnxs/qurWslsv1/yPCnBQnysv2UUjuFjDsCVVQw4POO 3uf88VyPxpuobHwNpdn5pjfUb+PMZOdyKSTtz29f848CVptJ90Xh4OTszwH4LWEtw979lgkW71e5 cJNGNxEn7uNenbLP0r9BPD/h3VdAiRbywaCdR/qmbJPp070qz9jCKv8A1ZHfiYJap6Hf2d1JIW85 QsijOM53LnJ+nJH/ANbrXQebGF2MwaJjyVB5x0/mP0+tcUm5e90OeWqI5b+3tg+2dXIGRuxgD8e3 Tr26561iSeJNPslZ1nQBSF/eHIzzn/P55oqQlJ6IHNI4nUPiXptuzkTLMwOMMcY9+vt/+uvONf8A jEmcpchSgwVDfyH4VtSoN6smU7bHl+p/Ee9uFcx3DlpB1X+H2/WuOOtXt8wkla4dB91ce/b1rrcF STZi5tpdy/FDrF0gjgha3R8fNJ3rr9H8DXV5tQvK8vUsF4IxyM9e1KcbOz/r/ghGPNqj1bR/h5Av lPOjqoUAxkck+1ei6b4atreSQGGLEgBCAHj2+vWuCrV19DuhDlV2dRbaKpKyLFt3A7GCnr/n+VbE emMhLCNge+OmfxrBTbSch2tojYh0lVVVGZDjIJHU46Vo22lxRLlmUSMfuH+lS2lr0HJqSuWWjtkO CQYx0kUYxWXd3kNr8qygE9cnrSertESlfRnHap4qsoSxMqKW6EcYH+SK8u1v4iIkckNkTIxJwTjj 3FdFGmnZkymouzPOLm91nWDCLmZ3ibk/LwB9K6XRfDU8jyukMmQcZYY69a2fLT0voZxWt7HpeleG hHGGZPMlzhkKk4Hbiu5stISIuoCED5FdBgDHoaxdR2szWV17y2NiHRXREKoQF4JI+tbUOjKXUCNQ F5w46/5x/nNYNc2iHGLezNBdNiVlYRLtPBUHr6/5/wAanjt1CgFFyc4cjH+f8+tG6uXFkjxBgm1c uowA3fGMcd+tV5EMWSArMnUHnHbr+P8AnmoUruzBq2pQkuY4t6sUdiuCXPGex/X/ADmsG81SNGkW ORNyj5pOfl6/5/8A10KF/d6k8z2Zx17qyuHkjaYSA8MTjd6gfrXJahdz3BRVkIdMsWPetacZJ2YN KTGWVi9wYizS+W5zuYHgd+K24tIMokEYwJDwxJyvtj9fwNayXNuOTd/I0UsE24lJLYwTH9e5/AnP 1olWFMEEqyKQQpxk564z9ef/AImuSUL7lJ30RSluCrSgqiHOQHP5fL/3z39PQ1jS3UQVNsUY3nGV ye+AD7cflk96HSdR3X9f1/wxk04PyMW5mkkAUhRglmMgwR3z256/jgVlT+a8atEVDMNrDeMjjsO/ p+frWlNJKyY27tNvQhCZlM6sCZTgqG4+p74/AcDFKYGklECxSI8g2/KCCTyOnPOcfi3tSTildMm9 3cT7KWcIFDs6kBSM7eOffGB+X+9VV7CSTPnRtlwdxVug79+OcnP1PoaurJwW+pTvrcqNp8aFwqvK TyQcAHnrj8P87eUGmrhJVgUqOp7dMfy/z1NFmnaXb7yJ2asLDojXaPGON+Q4LZyPT9f19xVSfw+s MpmiBZ0GAGHX049P888Ztyu7IIq2pLHo8JDtNAI0KYJAHHHX0/z9cxzaAC6lkDLKMeYMZb8ce/48 ++HCTk3bcJRUrJ7lG+8J2zQFjEJSVyqBhx35/wDHf84B+UPiPo3l3et6JqcgS1uIWLQxIFdBggkn gHk8E88Y9K7KFTm0v0fyNKejtHy/M8J+EBnt4/DrzRvKFiiQuWwXdDsJBzx/qjntkdq+uNTiDTsJ OEJyUUg5yP5//X9zTlCKduupz4qKhPU5K6jJDFgFK8sMHj6n0/z9ciYK7yxxxK5ZSSFGM+w5/wA/ ywqPkWhxubTsj8a/+CrXwYGv/D/TPibpdtLcah4Pm/e+UPuwPxJkY7HYc+1fzvzIoBbOSDwoP86+ lyOpKFJrfX+vyPQot1oqXb/K/wCJjSBlmbJYBucn+lVnUqp+YENydv8An3r6mCSs0cFSUott9/6/ QlUsVU7sZAyCKjZiA38QJxzxSVr6DpycY84isDF5Q4IPOf0/rViOJ+RvKkdhWymldt7nDhqM60U3 p/X9fiaIRWjjRZFKL8xDAjLY5zThbSgMMoRnHysOaynU5m0z38LQkkmlqCpkblEjkcAKOlRyQyfN JLHIsajjfxmsozvK/U1lTVOCUP6+ZEu4gOBknoRV2zgEsoBBCj7w9u9VN20ZFCLk+Z+pqxrvlZiM M5ztHaorskgRJjn+EY5rgptuSgeziJOhh2o7/wBf195/aH/wTv8AhDbfCj9nX4f6KkV1Dcz2KXs6 T8ss0o82QdBxvdscD+dfoKTIEK7VQjqvrmvAzerGpiJOO1z42m3Jeb/U0bKAO6lhuWIKCXOQDjHI /A/5xXkX7Q91PBovhZgUaALdkq+Mj90f1BA9ua8q7i15HRSaWxmfsz211P4m0SCGxubydFluWis0 yAS7lsn+FQQvNfojcairuiXERinRsOk3XPbP+effmuatUVRQl5HqYuel5dzM1a503SIDMZo4xj53 Dggn8+P/ANfPavHNY+KWnW00wW4WRUUKDu98/wCf6UqUFUs+xwyqKO7PJNY+MKI0zQXJ3ydEQ9K8 x1H4l6ldyukXmMzjGB0Ga66dBQ3ZhKq3oYI1DxBqpJBmO7ritWx8KalelXnMhH949+K2dt0JKUtL HaaV4BnuXCyh3DHAUevavUtJ+HKoVXyAjqQF2AnHuKxlNLVmkUqisj03S/AVpAytMS+SCQ4HT0/l /kV6Jpvh20tAogijUgDBHYepP+fwrirVddDoiox16nQQ6aCd+MheV2jv9K0k0xBwwR2JBIf+I/5/ z3rGom3tuaKXU2I7VQgAACRDO9QOPx6/571dhtgoOGDBiDg+nt+VKaJUr7gWSJHZYxhRkEjg881j Xd/FENxdTn+E/wAqi0pL3mXdR0Z5/rHi21s0OWRlPIDDofrXkWs/EOS8laG2RjjkuWwAM/8A6q6a dF1GmZSmlv1OEmm1HUJWEksoGcksTjFb2k+F57q4UG1lcTHarN0P410NxgtSIxc5K561pHg1rdUe VGkcH/VqMhR6V6HpWgRxhQ8ciMR94HrjpxXNN8zaRvPXU6210QIVBZmVMHcQOK2INIVT5ixFT/zz PFYqLhqti276F+OxUblkQgr1x3qyLQRkkqojK4wpB+lSlJO1/IFG5HuhwuQGUjk4wB+J/D/JqpKy RhlVlJfvnOf88UlK8rA07WZl3FwNpYNGAvVjjn6f5/rXJX2rojszEBc8YP8An/P1q5+87dQVmjlL /WiGIhkSWMLk7c+v+P8AOuOvtUuJ/MSIhZDkAKDk1tCle19yYT96yHCKZ1VyTsCgkMOQPb8c1o6R orzySXFwiuknOSBz6A+g/pTmnFaEJ20R1yabCrIUjCsByob+hH+efQU6WFIMPhFEZJLlvXof89D9 K5o1Ly1NopRWjMq4uxAHaIqzpwVjOD/j/D+H4VztzeN5RAzJngOxGFHrj15/zzVODWvYhXWphzX0 jygmTe6j/VjB6nH/ALN7ck1SBeV3dSRM2QSBwOB7evYVpTglvsNPmQJZl1QyKwG8429Tx3BPqD+G Ksx2DFwNzpbkkqUPzgc4BP0P559KJxtZX1CEb2sSmwJykeWljOQEHJPfr7f0Hri2NOmkQlollWIZ LxDOQep/l+J/2hjKLcbNsbUUrdSutgzyhmIIQ5UsSTj2x1Jz/njEw0wNKoZHKuoyqjp7+/b17f7N N7Wv/X9fmZ3SGCxCh2VIyXG0IoxtGP0/z2wC+KxSFVDw7YzzuLcHk8Y/P/Octa6IG0ldIp/Zlt5M lcEHl2PB9sfn+vvV+4ihuLZCFhBYjJkPIPr27j/J6UnZ2BvSxz7CBXLodm48BCMn6YH0+hx7VlS3 yhBEQPsxPCt34456dPqPz52pJPcHUV72MO60ma6dbiGdgVHVD9059evUn8/UV8zfE6Kez1uBJJ45 pFtmCFOWdcgAbh25Pf2rroe87pDpNKS7nzR8PoLr7PG1zJI0MF9dQW8BOTGPMLMv+zzJkE8c19fa gjSCMAIwkUHjk9Ofx4/T8rrQ1T63ZGNioT0/rucncRsHKEB3XnJHbGTk1k3EG0oSoRB0DD2/z/ni ueUb7I4HJSVjxj40+A9O+I3w88TeFr6OO4t9Xs5YZExydynoPXr/AJ5r+Njx54Vu/BHi/wATeEdU DLd+H7yW1kaRcF9rcNj3GD9DXrZROUJ8q6q/3HdgVGz7b/p+p5xcKS4JAZeBkmqfAUnJOO2K+zi+ ZWMH7rvJhCwICkqCp6t/n605mCqAQSD13f4VUknIihUcU5SGRsoxlTz0JyKvwlS24YRTxnJp1dUV hKsZyTkuuv3GioYFMFD25FS/OgHyAFuMD9a5G4zSUtD6WEZRu4vb/hgeQAkeUUJ4BUjmnBonUho5 BkZIxWUqUoRUkzoUqdSXK42XUeiJGgwhUgYGTVkTNFEUQRqkwy4CjkZ4BOM+/wCVZOTqP3jCpTjT goxjohkcx+dxGArZIAHT/Oa9/wD2VvhVJ8bvj58PPAhicWE959qvpETeFgiG9gw7BmVY/q4row1L 3udnm5tNuF/X59T+5XwJpA0TQtN06MiJLeJU/djpgcfyFd6kbvIzAxb9uTKvf/P+e9fGV5Kc211u eLTSVkb1lA6qHkVQkhA3SAEqecc9ex/X0rwn9pG2P9jeF2WOXzZYr1POH3D+4JC/Xr+lcldOTTl1 OyhePqeZfDHxJrnhbUYL7Rry5tLxbEL51sMAnedwx25I4r1PVvi14kvd13f6i8sijPmE4JP8q2nS irRl0X4ahjtHaK0PLtV8f+LPEk7QWt3e3C9xFnA9efwqomh+I7wKbiSVg3JUk81aioxsc1RNLVam 9pvgLUrxhuLuoO07RzXqWkfCmOE77kAbRkJ7Uqk3NWFFNadD0iy8DWttEgjhaMNjEg7+xrrrDwjC XRFX/WAbQoyT2xisqkm3ZI1jFSV2eh6Z4UitI1do43WQ/fI6jn/H+XSu2tNHWMYgCMCxG8A4PPQ/ 5HXtXPVk5pNG0YpKy0NuPSo22tIhIY4Kr69gf8/41qx6aATvbeij7x5/P/P51i3FKxcvddi2LVIG RkCZiw25uNv+f89xVhZ4VCho0IYdcf57/wCRUxk3oU1aJDJNAqM0ayxMoxlh1/z/AJ9aoX2qwoux SQCOVJ6/5/z61nKWzQnFrQ4HWfGtnYmUF0AUcIjd68U1/wCJN3MHisikZAJDJ1Ht+VdFKndJ9NDO dSLR52Jtb8RXJCzSBCctKBwPrXXaV4TKhURHlkkxhnHJPb+VdUpKmwjDm3PUNI8DpIQ8qxo6Hk4G Olep6T4XWNAVhADjbuA6/T8+1ckp87uaKKUbI7yx8MheHiaMYGAv8NdFD4fVRkLkIMg+tYwbeiZa lYsRWyIqxOgjDHIAGM0PCYypRWUqCAR19v8AP/1qcU4rQGrbFWUqiqAwA4ycfmD/AJ/pVOW42l1L ghhkZ/l+tS592VFK1zHlvEyDMdqjghj/AJ9v8muWvtZSEBXYrgZAHGP8/wCetTy81kipq70OE1fx faQSusbzs64PlAfe981wl5rtzfzMtusjFjkl+g9yPpXXCnyJNmSvfYtRaXeXzxmUMsWc7VOO3BH5 V1tj4ejjUbo4mKtxtH5Z/L+dTVlyfCaxatbqdJFo0RiZHRWRhjBXGP8APP8AkVpmNbKDBCrGoA8t 8Akd+fw/zisZptakqy23MK71KCMkElmJwI2Ocnp/Qf8A18Vyl3eySFWWGNljPRHHI+n5fkKKNP5I TfNoYckyl1XPktKAArNgj1/HtVQRyTRtlmYk4yQfmGen5itbJvsEVrdsdBavJLIp8smRdpDDg+h5 GO38q3BpiAonlCRlXIjU/d/H2BP459BmJTtJ3RLTeyLkWlSux3JJHtBJVBjp0OD7j9O201pxaaTG WCsrAjMTLjHPqfx/D/gVY8qvct6bjzpjSL9zaW53EfdHp09j+uf4qrGxZpAHViFDAq3bufpzn9fe tHNSV0RNXvJEyWUBYFVwoHTGfz/X/OcWhp0O4SSEqIxkKw/z7/5zjOWj1ZKTjqyvcQRI+FUANwXk b8uf8/4c9dSxwxzHdFIQuTG/8I/zj/PSk9Woocmm7nHahqaRnIDgryA/Ydjx7Y/T2rkdQ8SG3G0O XDHcYV5C4/8A1EfX2HPRSpp+8ZzlKVmtDkL7W76SRpYpCVDEFFI4z3J/D/Oa5C613V45GCzL5j4I Dn1PqOnrj19K7qdNJXZm9E2jPm8Ua3pyiaKazu7ZhtaG5BXn0GPo3avNfF99d+LPE2iWltZNJLf+ VbJahNxLu4ACYOWPynA4/Ct4SjBua7Doe67vY4iwsNKsdVuvDWjTS302na/qaHWJW2LeRiRY49sR zs5jYk7m4YemT9BXwDkgOZTGNwaJvvdPr6f57Q6ag0uqvf7zXFQvLkuYMyhkfB+eXq4I/wAef8/W si6hkDmIFixBA3qMr2OfyP8Anisp21OBy5GczcRptljkwISSpjH8Q9/8/wCNfzJ/8FSfg0fAnxns /Hem2VzHovj23Hm3DplRdR8Ebh6oU68/Ka6sDLkrpdDbCOVJ6I/K25JZQCSABjLd6zSCqsBkA84f /PtX29JK1h1ned91YhiYKxUnJI4HFPIDAq5O0jgDvXRO8HdHLQnztq+hNHEvyEqCD0Yd60oYA2xQ CxJ9en+cVjObtdnbgqCqJXXb/LfqX1iQnClkb1PenGOVEBDkEkADPSuNVYpq59HRoJpyi7d0N2sw BYoSTy2TxUoZlO3O4eg/z70SairIKbnh25RemhZiRWOZvljUbmYfwj/P61UJZ2dwQO5APT6flWdO TWqNKik3GLVnq2ObCgECRFIwQD14r9vP+CLvwhfXfGfj74rXcDrbacY9HtGPRjxLP+I/0bt3PvW7 l7KlOV9bHgZ3VUUqaP6jbGIwwqqkoyrtwwHAxz/P/PNamnIoZpXAVBxuOenf19P5+9fFKXM7LY86 CtvsdBGzNGrkqIkGMuPve+P8/oK84+NOhPqPgu1vooiU0i4BfOCBEww5x64Ufn9Kxqye/mdNCV3q fMvg62TTrbw/f3QlKWl1PplzHuLuXYjY+B/eYsF/3T6Zr3iHwVaXj3DXkBRIl8xjMuM8ccVpKLXx bf8AA/4c2xdp2/rc7Pw18OZ77yk03SlSMDIZFxn0zXtGhfAbUJhFd6kI4YyQTEB/n/P51m5qGhyu Dk7y3Ot1HwZonhaz/exxm6I+WMjr/n/OKwbTShdFXXGZOOT0/wA/59KxhUe5qpW0WxqHS5I3aBXX anULnHHHT/8AXx+VdFpuiqoUyg7wMjAx9Dj6cfl1FW6jV2gcTurXT2YKigkADAcdBj8fb/6+MVsQ 2KsRsjBC8kMOn+f84rmk2rN7ltPc0I4o40AChAv8Cnnp1x+IPSo7ie3tyxYxJIeGUd/8/wCc0O1r /MTd1dFF7pQ/mI6MSo5J6jHp+P8AnkVnS3EaEsVRQRkBT0H+f89qzdluaRV9TmtY8SWljbl2mVQh 4BPtmvA/EvxJcM8VnI6lTgMO9bUE6jfYxnK2qPLZLjWtakeYJII2ORIM8nP/ANeuj0bwTf6hNDvD BXbBLZ+UVu5cis1qJQ53qe8aH4EjsrFYBDEgYZcgZ3nPX/P9a9C0jwesTxuIY3IPQDHHqTXLOakj aMT0zTPC0IALqoDj3yP84rsINHt7dAFVSq9SRyP8/wCe1ROWidykuR2RPK1rEg+YKwHGe/8An/Pt nyX1urEBzuB/P/P+e9SkhRipWKc12oYAqdzYO4Hkf54rGu9TjQncyFh0AqoWg9RtXdjn7jVGcEx5 UMcbmB4rHutVihCs8oDA8knr+NY3utS72R51r/jS0tAVafaJDxsOT+PP+ea85utf1TW5CtrHJskI VWYH5eeua6aMOdNolSTujT0rwheTyR3d84YuSdjk8fT869C03w9YW6jAjQR87sfeGP8AP5+1W52d kQtUdPbWNmkiiR41jjXPmZ4P+H+fQ1LJqWj2hfdLuZATsVen5dOf88c8s25WvsbSkk7HP3/iazG1 IVkMcYwGjHf+nbiuQu9ZmlAaMuys2QgBOOvbn0H5Vsotq6MXKV9TMeW5mWMqSFHDKwA4zz39CB9a VraTOwK5RDkmQjjryMdOo/L2qoJKzRagnoaNvoxljJdTBtIIAUk4PoD1PX05I9604dJieSNoxH5j HAQAknPQ4/l9cd6zlPk2HGF9zQXTDGHCbH3g5YjOeOOfTnt6g/3a1YdMVUWMwBHkORICBnHOPrkf njHbOcn07jbvqjUjs40BVMksP9Yw6c9MfgP8gZ0YbW22KJFVWJztIyD9B/nt7ZJSugSvsVJreKKI sFVgeF2N0z6dfQfmPbOJdOi7G2KcDgn8OP5fp7ZiOoRbjojNN3CUVwscbZwAmOeM/wCHr/LPPX2r xxqzzMVyNyyDnj8OPQ/5GZhFszklJanF6h4iZHYCSJnA4Vgfnz0IIPXp7flzx11r91PG6gszjgAg 7Tnpn8z3/mc9tGnHsZVKlnocveSTSKrvGQQcERjO7nrx9c1iSWc7oXZS0Mg5kIHzY6j69P8AOK6a bVN36mU1JtXIX0oli6xvJGF2HYdp+vf1Ax9fSqt9pEqwBp0d45AAZ0zkZA//AF/l71pGaktN1/X9 Mei1kzltb8KrbWU2sSahDaWkALG4u+Mn+6R1zyP5+tfNutaidC1Wa/iuFutajPmWtpyweQ48raue F6EnA4DHvXTSTnFykvdel/8AgeR00acW7vY674SeE7u3+y31yjYtcMZSM5fJOSD13Mc9Oi17fKzs SWVXJGGCr19ef8/4ZKopNy7/AKnPip2noZN1G0Kl8qFHIJP3ff2//V9ayZUBUB2QNIMiQDr/AJx/ npUz93R/8EynJKOqOdvIwpZiVZCdzBgP8/5/Gvz1/wCChvwRk+L/AMA9dj062km1zwy39p6fEg3b 5kHKgdiyF1B9T6dHSqewqKQqSUbM/lDnRkLbxy2VKsB16ViPuXKDJGOgr7zDT507bG9ebh73Xb+v uK6kiVCrbc9MipwUOWbB245Y9P8APNb1I8qVjlpuOq/q9ixGwYoVyvPJ9K2Y4lYAh1Vuo3HpXNVS ilc9PLZquuZOyJVDeZguGGByegqyIjICVkBJOQT/AErBzSd0e7hoKqnGT/q35DZLeUIHKMyE4Az1 xTSWQBWUFgOCR1rGEoy0TN1RnhZOMfK/9eoXUhjtooxhZrrlhn7q9vzOT+A9aqwodoJIJXqQetdV JqMbvqcFVPEVOZb2/wCCyS4KqpBO7J5BPSv7Df8AgmF8HYfhZ+zd4DEsKx6l4hgGrXcrAgtJP+8w wOCCqFEx/sVz5lUcMK33seHm8uasuXY/UeKIMAqHG8ZUrj8cH/P862IwdyRIoSOLh9wPznPf/P8A 9f5RJQ1ZxOKjHQ2IEZtkiNuiBCgE4yOuMDryB+ntWpLZW2s299o92Xe1v4CjK46jGRgd8HB+n6ZV Ic65X1OiEmmmz5Bk8N3Phy91/wALala+VBqSxpDO44ZlOIpQ3GPlJUnPAIPGSa9A+D95bXus6ZoP inUNmnyvshurgkBnGchyxxnpkfiAelVhJQqTSb+Jfiv+H/G/c9KpT56aktz9E5Lqx8K2UcOkad9u kdRiRE+Rh67uRjj/ADjNSWviTXbmKTzrSCFnG4LE33eM4z/n8OtcXO02pHF7Ny1PKdVtbnUtSkkv 7h3YHBz0HoK6nTbFCkcFpE3zDBx2/wA/59KUW4x3MVaTsejab4JjKPNJtctyVPU+nr6e/wCPUR32 kNYs4McTqpG7Kj5fQZ/E9OvvgGrsop8p0RTSEs5QrKMbWU9V9fXNXhcpFG8shClTjLHqccfz/wD1 cGsVK+/9f5ExschqHieCErCkrB2HRP8APrz/AJzWTBqM18WZlmj9A5/M/qP880oxVrSG7WsjSa7S 3iaWeRBtGS0h7YAryzxb8RrSzJit5fNljJBRe/tTpUuZBOXKtDwy7vPEfiefahnKOcKE+lepeF/g +72rX+uPK7kbhD/dGec+v+fpXVKXLqtBct3qd/aeD7GG2t4oYQqxn7qJ98Y//XXoeheDzFGGS2ZI QfvDjH+FctSbldJmii1Y7K00hYyVVAyngkr0+n+f6iu1sdKS2QE7dqL9/wDz/n9ayT546A426lu5 1KzsIyd8QkTorEZP4fl/nrxeo+MUJMUDNnOAtDtF6FR11Zzseq6jeSBnlO0DA+Y8/wCeavtOtvEJ JXwfvZc5ApQTa8xr3noczf8AimONhFG+1z/dPJHt/n+lYK6w9xJNKNyoScqw3bqIxa0KU22YWu+M dP0e3VprlFmIx5QwTXmN14p1vxCGj0+3niiY4E0g7ewNaxoKK5pbibaVo9C3pXgq6mkSS6ldjMfm Dt/Ecfpx+telaf4fW0jUrEEYjgKPvHtgU51XJabCnFLY37fTZBEqrGQCOCB/njj/ADmhtLAjVmmC BV3Fy36D/P8AOsnrqgjK2pg3MKRMUF1cy5ABDN+ue/Ss97BppSRHI4b7zOec98n8DTnUbV2OpJSe iLa6DliggUh2z5wP3h2HH1P6VpQaEFKKyF2G3CjoSP8AP8/apdRtpoG7qxpjw7C0TOUG88g5Iyce o+n+cc3otDh2E+SVAU7lIHB69/8AP60pSaSsNtLVEh0iJdyo5ClcbZOx9P5/r74W40mzmRZZosFD k7R0P1/P/wCtztltyXu7FJKzI20u2iiJiRkDHJbPU/Tj1H+fu5b29xC4MUxkQcmOQ/5/z+jb9noK CXUdLrcMB8qYFZFyAFbAY/Xt/n8MC78XJAksbodynGQw6e35gfj25wcnM7NijPmtbYxm8bhmdWYy oOFIPr7n6/r9aoP4shvEMIlRZyckMSCPT+f6/wC9TVJteREklojIu70RK0CyRsxywBO7P1HX0/M+ vHJXN/fThIwTsYk4TDB+cD+Z6dyetaqKa8iHq7oy3s7qbdInlu4I+WU8rweMfQEfhUzaDcTo8gR1 kU7skkgnHqf5DH6jNRq3lZoHHmjdF6z8IySzBRC/mEqRJKCf++v8n09cdFD4JALvcqVVsZBJyOeO fp29h7Cs3Wja0V/Wo3GKV2aMmkeG7CMSXxh8uLlnLAAD0Ofr/nnPkfjf4neCdA0+c6VZ2OoKn/L3 Mypbr/vSHg/8B3fqa1px59Ft/wAA1jBzlZrc+OvFPxK1vxzdXFt4UsX1NInWIX8UZjsbLGSSCcFz 169RnAzwJPCvw3vPOW91K7XU7+QNL512AsanHOBjjOByRyAAAAMVq8V9Zfsl8Ktf+v63O2dNYO6W 7/q35HtkFnY6bbxWtsMrGMNOh/1h6FsfgPpVYKyTlHSTY+RuHRff/Pt9a6KMr3tueBUftH5kUts6 KymQgsdubYn8OPw//Ucg4V3bSWrbJEJhfmNwc7Rj/P8Ano63vq3UzkubUybmMHOIhmMY3pnB56n8 x/nOeR1fT1u7K6s5H8szIV8yM9M9Px/z9M0+RczHy21Z/HT+178K2+EPx7+IPg5FVbA3ZvLOW3TC PFIN/wAo7AMWX/gNfKEgK5GSecAE9K+4y+t7amn3R2YqXMoyTu0tb/eyo4GVxlCAOXqUD5ic7twB 5r06k9DjoPnlZF2JlfBbYGYcZ6CtGJUAUl4ycYAbvXE48p62Gca797RvqXERm+cBFJ4wGHFSiOXK gLEwccpwc+9Zzqxvd7ntwoTi1bd/8MKzNjDI0ZP8cf1//XToik7gSztsAyxIH3QMk/kKxSSV0rm0 5Ss4z07oypne+upJ2BKEgBVPKqOgH0Aq4icIiuQWOAAPy/lXTUThGMFsePhKTm3UfXZ/gen/AAS8 AXPxV+Mnw6+H1tayzp4j1aCK4SNdxW2DBrhgP9mJZG/Cv7r/AIb6LaaL4Z06xtbZbOJIlVbeM8J7 f5//AFednU1GjCK8zw8fL2uI5uuv5/8ADnsdmkSqFVXLAdz0P+cf5xV+0iSRQSHkLHllHI4H/wBf /PT5qLsK/tEbywlnJVSscSAkSnrz0689/wBenOLcIeESB42Zw5wRzg//AF/8fcElJR3D2itdmf4h 8Jaf4zsltLgPaalbIGt9SB5XPOD6g598Z755+cvE/gnxL4dvrmaEW9tdwoGxP/x73gB/iI4yc9T3 xhhyK89zdJ2W2/5/hbc9TC1I1Hyy2Ot8FfHbxD4HeLRfEZvdGswONK8VK7wMO4huVBZe+NwYZGMj qPsDQfi74P17TIri1lGn3EinEczedC7AZOJY9wA643BT16HNaRrQxWqXvef9fj/w5VbCvD6x1Rra B4Vl8U6lPO3iTQ7m3T5zBpM6sFGMgZHtz9DXuOneEbXTAq27NJIi4DKPzz+Z/wA8DNRlFJnLJxej OljgeGHOAq8kkn39Py9fxriUL6hqFxHEgkjZtuezHPH5/wCc9atSXNci6tcw9Rs5dKl2PCEUf8tD 3Ht/n8a858Qa1MsotLZ5N8xwxTjn0rJ6+60XFdbmHZaRcm6jkuQTuGQWJ+UVvS30OnwbpCkKQKSF B4IxkY/KqsmrJ6maieVazqviTxK6WulWdxHbSnb5mOoz7Vf0D4NapqlyUugXdvmdgPu++a0dRUvd W7NFTlJanvvh/wCFVrpkUTLahpEOBnJx6/rXU3WgzS2xsbeKSN5cKqgcc/5/z25pVHG6bLUXJ6nV aJ4EWCKJrmFjOMZZhwPUY/z/AI9VeadFGEsreJ1BGSoH8z/n+lJvVLqSo82tjLe1jsS73CshXDeW vP41yOp+KTteGzhkAUjdMVP4f5/wqJTjFmkYM4G6l1O+lDMJNjH74FMOnXEXl7o3kGN2e5+v5mlz JJ2Ypx1sWVu4LSJ2eTG0FsP+v86851jxLq+rNLaaXCZVPW6I4X/GrppMuMWilZ+GNZaVJ50vLiXA I2r0Pf8Aka2Z/CvjS9VbXTNLltg55uZk4Ueo9aj2yjLUpRvr0JtH+CN3LOs+prNe3affkuOefT27 16Xp/wAK5LdS62uxE4KhBz0xUyre0d2U48uiN+P4f3UUZZUZXf8AgUf5/wA/jVhPBN3GsgaFwY13 BjzjjnmmpuorNGfJdlR/CmonyooIJiH6OePwFYz+Br+acpNcQDaP+Pd3HP4fj/nik5ySvAahfQtW nw4WN1lnu7ZdjZG+QZA45H5/yrQsfCnhwSSp/bOlyPGMkmZR+Zz/AJ/WmnKVilBJWSL1xpPhq1jd 5Ne0rKAuwe6Qk88989f888FlZeH7lFex1bSp2mYKrJKuTyMDH4j/ADyCUOX4nuJx5dEX28NW6SBh NaRADozrge/+f/1Mbw9ahQ8t7ZnBI3mUcY/yP84xpCDk9gbS1M99H05XCnVtLEjfeD3Cg9u2eOcf 5ArOvbbQrYKW1zRoWjXBM1zGMfr6A8/4c0qM5xvYTko7HP6jdeH44mEXiPw4gCZA+3w5HGfX3H+e G821DXdPLGKDxD4biK5Vo5b+EY5/3uenb9e8xpTXQLczMCa40m4aAP4m8MokoyBJqUGCCOctv9B3 9Prmhc3HhQrOX8V+GfLiUhkOpRE8c7gM+hH5n14cqNSb95BKN1ZL8DCu38Jogkj8TaPJIzFALW5D ljuK7cKSfvZH454yBXm2tX/h2CRLnT9akS9iIKqLSdgw5zkhD1w3+SM6QpzgrvbUzknN7FrSvFXh 7VGI1C+vNNgX5i9zZTjHBOB8nPC5/OusHi74R6WjXGo+Jbm6Ib5o47V17DJ+baP4h/nJqZUpTVob BKEm9FqYV/8AHX4EaTJcwzXeoXjQ7ifMubZVcggHgSZxz+X5VzF/+1Z8K7aMR6JoUd7OMENdTu+F 3YyBGHz2/P3odBRfvSOmGEqT1screftW+JbyAHw54H1UwyjCfYNImkUnP99jGPugH6Y+tef6t8Wf jVrJWZdDv9MjkJJGo3sFuh55+QBn9Oh9efSI1IwV0dEcDZ+8/wBTjZ/DPxZ8Tsv9ra9ZWKAs6vp1 tLdsnQgLJNgA5wOvf87Nj8FLa6uhc+IJdR8WX0eHz4guDNsIA6RLhAPZiRWjdSro9Ifh/wAEtThh 0+Xf+vuPV9O8I6dp8VsrGO1FuCBaKg+QDoBj5U6joO1bflQwW7wW8Jjt2Jfy25w2OTnqT0/KuqjT SScdF/X9JHl4ms6qaZkzRIh3BQoUfdB5/wA9aikjWaLzGtoy4+VSxJzx6fX/AD2rqaS0Zw300M6W JAGLIwZVyUc9Px+h/T0wQrWsc8BVlL5GCh+bHH+P+c9c21J6kNc2pyF5by6TcGBwGtpeTKvoehOe O3+e1LU9Iee2EsQjfauQwIyTz/nj/AmJSUGovYlLQ/nI/wCCunwrltPEPgv4o28UcUd3GdJu0cYf eNzxk+owHGe3A9K/EW4BLEEKc9mr63JKinRStsdVSMpUkUmAUDAwSehHSnxldgILAgc4Ne5JNxuj lw1TlmkyzHGSCGjUg84JOa1beKQrgM4BHI64rlnNQWp62BpyVRNNp/8AB0LYZ4dqlpDIepUjjinq 7DlHJI5w6/n0rnlBPU9mlUmnyJ6L8/6sRtuB2iQOGONrnpUM5MUOAy75+yHPy/X6irpNKWnUis5K Ld/6v2GWhaNWdowqkcEH9BV2EFVkkJRTnGGHWqqq+q9CcIpU6cF2v+Wn9fmfrb/wSA+CU3j/AONv iP4lXFo0mneALRbO1kK8C5mPzsD/ALMSOp/67rX9a2j6cttBHEUEgQYwo/z/AJ/Xws7qv2kYrorf r+p8fOXPWm09E7fd/wAOdVbWxcNIYMRlfvkZ/wA9R/8AXzzpQ7IdgTapXqijJPT/AD+X1ryIQUTd pRV0aqMEMgwik4DRjjGR/wDW/wD1Y+V8Acb0XDLIwy44I/zz/nomurBSadmaKPKxBQeW4Ix7Dv1z x1/yedmNIb22ez1KBbmzdiSkmOcjqvfOO49vUZ5asVLRm1KTo6mHd+AtHvEuBaywtYHLNpl+qyJK 2MY2sMZ57AHIznjI8w1b4C6KzpeWOl3nhm8GAL/wvcyQZb+JhH865yB3x8x6YFedWhy2vo/u/Hp+ XoezhsdbQrn4e/ETT5YpdA+IGszwxBf9D8SWSXZXAIUFojkgISO3PpnjYsNd/aB8NypGNY8Mzwxh VLy3V1a4VY9oyrDA+Ugn3UdxitJYitQ1lqvPT8Vozp5KNfRrXy/yZuP8X/2ghEbObRra6QYDNbax bHd8u3HzDPLYJ9yB3wdPS/jT8ZdOVon8D6tkrlZLSSylOdoxxnLHOSRzk4Xtga08ZCerjr5WMHlk Irf8zQ1P47fEXU4ZbbVfAXi6S3R8+ZBaWzFRvUZBDc8D8Sx5wua5m3+KHiS1K3Y8AeNbiZsFYrnT YiCMt33A9gvb19BULFU5P3ov7v66C+oRTumrepvQfGfxTFGrn4f+K553U7g2mRgD5Qezkj9cY7kj bHefE/xRdMxb4e+MVtkcIGGlwHd86gZG70BP1Yj+HNUq9LRuL+5lPAqO0l95ei+Mfjm2cT2XgPxf akJiO3g0m02jIZgCfw259AT1IWrh+OnxRtgduhfEeEXB2lYtKtOm1RvAA68lsf3jjPUiZYyk3dRf 3FQwUZLluvvZOvx0+LkeS/h/4ilkIGIrO02gZbAz0xlAM46MT/dyyb42/FwoszaJ8Ss8tuWxs/3f yA5493Y/VVHUsBLxsU7cr+5DjgYyWrX3stxfGv4wyMyyaH8ShuYbSsdooPJGM8cfID9GY9Nuac3x f+MKiOWHw/8AEgT7OWle0+7gHkc9d57Z+VR13YUsak17v4IccFBpXa/Emb4s/F28GLrQfiAQPl8x ZrIKTnA69Puj25Y9AKyT8R/ilLEI5fDHjUp1Ia4tPQkjHHXdj1+Vcc5oeLjOXNy/gi3g4PqvxG3P j34oNGEbwr42j24A26hZrg/dzkH2B9MknpjNebx38V5oo2/4RTxeZGGcS6pbrjjdjAPT5mH02jr0 h4yMb2j/AOklxy+D3f4MyrvWfiJdyBX8D+I2aYFfMn16LJGcZ4OAcc9OuT0wKit9X+JNsWS38Fak qocrH/wkCDB5I/DOePw9xEcerWlH8UU8vi9E/wAGTP4k+K8bRQ2/hTXYjnCtN4qX5eQvBzx8uOcd Ru9qsL4u+MsM6yp4d1pyqltv/CWEbWwWHBPTcDx6HGe9VDNeS6S/FA8ujFJ/+2itrvxi3bI/DuqR LKeS/i0lm529Rgg4Yc46gH2pI9d+MMjSJN4eu5sDBUeLHGOCR/Ef4kHHTBIzySHHOZT05bfNFPLo Je7/AOkkqap8Y5XZYtBIt1bb5dz4skYoM/3gR/DI3OPQ9gDWF/8AGedWjj8PQCNgQXk8TyEk85BI f1jXjnn6kjCWcO9rf+TFRwEYp2/9J/4BDLq/xWtpYf7T0XyI7VJZbcWviCSTzZljLRocN93cxHPb 2AzueFvHPxhttc0ew1a3sItL1B2juXi1NJCowxykYHPKqevTr1+XKtj/AK1J30su6/r5Gc8Iopu3 4HqmrXmsam6xTX9mljbsCyOBulTBJUuFJB3bcc9M1l+IdDjuvD9ywsraCERM8smqXoaJQBnJDKOO D3/KuCVZtpf5f5HHy26/19+h5f4c0iGxEOpRyaTI4VyRLB5fmKWzHgIOwzkEgZPau8jt7e6s7XUn vtO0tGY7ogGQnGQVDFqmrXlJuS6/kW7dW2zxWHwx8a76L7Slj4Xnijz5dzd3V67FduVJ54PA/Juo 6ySfDz4zXjRNPpPhJlZgWmGl3cnGT/eByQG/VenWvdnmNV/Dr97Oz2VJXvp80hqfCf4vybV83w/b 7huMqeH52OSoznK+2On8PTOFq1J8G/i9JMs6eJtIt1LY8z/hHFyuHB4VsfXr/ER/eIz9rXm0or/y V69Rt0b6tfeDfBH4zLM2fGtiQ6hNsOjWahPkYAZZ+nb3GD2Woz8FPioJI1ufH18Rhi00Nlp6lhlT kZkznjP1z75tRxKu0vwX6siNaha70+b/AMhw+CXjOacvP8QvFFsUbd5lu9gqjlj90NkD+nY8KKj/ AAO1to2jm+KHi5YnQgzpqVuu75cdQCe5H6c9TXPinfmX5FTqUnrG1vn+pnr8AbYSvHcfEjxHcSu2 7D+IMFueoCx/3VHt+hDR8A/C8KbtT8U6jqCoRu83X535yTkhYx3OeMfzzjKlXlZOWvXX/gehLxMI 7Kz9P+CVf+Gf/hUkfmXM4nZsFUnuLu52nGASNy9z1x37YAqaH4H/AAkspSv9kaDdh2+VrzS5Hxz6 vJzwCP8A9ZBJYRRSUpL8WYyxOuif32LqfDb4ZWQBt9JtoGgG4SWNhbJk9/vA9j6+n0rWTQNBgt4l trK4ZANojeVIvlwRx5aAevAP0704UYQS1b+5Lv6kyxF9H+rJW0nSASF0+0EZThJVkm5PYhj06/5z Tl02KN4Rb20VkXUkpDCkan/aGBn0rroO2sYpfj+ZzTxaitdf68ivc2kQjaCaKBi5DrPckuQcc5z+ H5evApS28kyLlxuTOWXrn1+mMVuk56zd/U4ZVpSZkSxOGZXOSpB6nn1x+f8AnuxVRCA4cxKOQOD+ Gf8AD/CuiOnU40mnZGTe20B3KdpPZmHP1qlAGQYLAxg7tx7+o/l/nmh62fYUkk77lW4g3F2IYJET iI/w/wCc/wA/xrRS+SYd6qkjfxADn8O/f9foHJfyg3fXqWdS02DVbOSFo9jCP5HIx9O/uPz69DXB +H7me2uZfDmqgLNE/wC4c/xZ6Aev/wCvjtWE6ttEv67grJaanxR/wUA+ByfFf4HeL9CtbAXGqpb+ fYywxBmW5T5oh+LKFJH8LHGelfxx6hayQzPHIjqyMQY24x7V9FkVVNNHZTUqlNrsYkinBUA4B4NR RjYZFGAD1ANfWpNqx5EocklLa2ht2xQEeZuyemeM1tI4UAYyR6V5dS6dz6nL5QhFt7/jr/X4jC0c hIAXBPU1IIg+AGQlTnnv6f1qHKy11PVp01OL5dv6/EjdAuARgHkux6celZMkqSO0gUqrHCofTtXV hk6i5jzcwqRppQat/wAD+vMuqCEQksmB91u1WrhxHAEwS/3iWHWsptTkv6ubRbhTbkun9f13P6wv +CKfgzTNJ/ZnTxEtpIl94l1K5mlnuEKrKwfyxtGecLGvOO35/tfDCySAOqFTwwQ44z07+v8A+vPP zWZS5sRL1f5nx1JuScn3f3moojKmKMBhMASCDlR9fx9//ipLTy3MpKEMRwY1PJ7Z/T/PXhiote89 TdRcrLoasVshJeSJwZVwFA+7xweP8/0vR2oDxiNYysQznnrj/wCt/n+GXdrQVr3vuXTaSuUVChYj jbnP+eP89KkTfHE6kjzlwB9P8n/P8WKlrYrlSNeAhUVwGZx0CYGD68fh/npq280yGNkUuy/MXXsc +nbofy7fwrlUtTRVGncuswCi5uI4nmnXO+RMsp7YP+fw5w9IJI4lhVp40jPm7beQ5Jxjkn8eP8Dj KEXTfusuWJbWhbW2uppZZyRM6HHkToCBjvgjrx6/1w+LTLcxsZbPS5TC3NybWMkEcgfd9dx+p+uB wct0n6pG8cU1dR09Ct9l0kuD/YGhPDGM/YzaoSwxg8gccHHTpx64ihS1DtL/AMI34f3sSoC2wGPm BPzd+QPyFRKjBxT5F9xssdPu/vLASyhDlfD3h8yoVKyrbD1Ofr978z+TBe2AkeGPw1oDqcAN9lU9 gp/QAfTFOVGEX8CL+vT6t39S7a3KljMPDPh0lTlWe0XAOc5/Mn8xU6yNEwX+wPDJzHwFtl+UYxx/ L6fWpcKdNfAvuE8bJdX95PDcuQ8Y8PeHljBzlbRTnnPp7D8hVlr1gzqvhzwysLldsDWi8nHGSPqf z96HCm1pFDWOm1dN/eTfbriSRFGheGA6tnL2KAcHtx9P0piXk7CRDovhncyjCrYoR6Yzj0/nUunT kklCP3FrHTa3f3stmaVtiJpnhsY+Yg2UYBOR7ew/L2qJ7q5SQk6Z4eLRKMBrGPI4x6e5/M1Cp07f AreiJeMqPdv72Na+1JQWTT/DyyAlgpsY+ORjt/sj8qGv9YYA/Y9EVxgEw2UePcjj3q0qdN35F9yF LGznu397J4dQ12JwW/suMON21bSMDnHt7fyqZdS14M8kdzZxO3Qx2sa59849z/nNEJqMtUvuREsT Jry9WNS81xC5+3IGfrthjAXp7e1PGqa4Tt+3XCsTncFX8Og/GiNRp2enyRPtHdXRG2pavGy+ZqEp ZfmGOufy9qhl1vWFDKNQuFdsHch70ueV99BurazK8ut66IiwvZkXdglWGenSqT674hV5C2oXEW0H aS2B1z0/CtHVk/ISq295lHUNU1bVbN9O1O5uLvT3APlEjgg5BU9Rg81WZ45o7azkluEaDhJ5SMr2 I5BHYdBXFiqM6rvfWxrHEJK1ihFbhEuVhtba4jlXAk1CMStz3Qtkr+GMdq5zWfCes6lpc8Vvq+vv JBEFW1FydswByQc9SRkZ69BmsoUFC07alxxTa111I7Tw9aS2wvZtd1SwliQLJpjwReUGPTqm49Oz flUvhnQNSjin1RLa2jmuWKR3N1GrEoD1TcCVBOfTk965aFOMZKS1T6G86rinZWf9f10OkmXxPIiL P4h1WV34JaZgF/I+/wDnimLbapJCIJ9Q1EsQeDcscnuDz6g17VTFTm0kcEp82iEl0qcsyG8vnaNQ VUzNhfXv2/z1qpJosjhWaSQsBtY7s7h6/wA+ef0pvETbUr+oObdtTOfw+pdVcStGwCjcSWOeB/P+ XvVaXRJFt0iXIdfmxtPT1/DP+eKHNpExqSfukUGnRStLa3yIof7jkKGB7jtjp3/xNMudBNsh8pA4 X5kVm5xgYx+fp3+lZTik0nsDqcy0ZVihjt3C3ULLBKDlRggcen49M+vPBNST6PZXJjbcwRztKoCA o7/T8v6CiVkrBz31ZmTaDEkrRwETMvVd+R9B/n+pFY6dGUkhdFJjBwzH7vT2+n+eC4R53ZEqV9Su NJhEiuwLIGy569uvX/PPuRi3+nXloAdKlmiVjk20hDKvrgH8Pz/PS6p62IqLmMRtc1C2KLcWcRCj mUKw3Dpk+vI/T8tGLxTYuiJcQEqRgmMkZHtnp3/z11jBNtIlys9DUFxZ30byRM0oYZZSMY4Of5fy /DFedSxRYkRo+fMZOnp/n/8AXW3Kum39aFSsk5GJeeYsqshDqTyyY/z/AJ/CmOu6AjeGJ6u5Of8A PT9fw6LqSsc7XKtDImQyIWKRny8/ODjj/OP881UMbqYpoSjOozjoV/z+ef1ysrakxfI9d/0JC0Lx RyJtcNw0bDnpz/X8/qBh6rabkDIqu5bezKBycDPP+fx4NEZNolyU1dsnsLmSREhdnhZhlpZABx34 /E88nj6g5fiTQ4tWghlR0h1C3GYrxeG3Y6H+XP8ALBEQXMrNBKS3SOG8W3FvrHhHVbHWfk1DTIWl cSA/Og++RxzgA8fXoc5/ho+OU2kTfFj4mT+HovK0GXX757OOJcARGdygA9MEV7eSQTk2npsdFCTh CSfY8XcbSWIZvY8VWJBmOQ2SMBFPSvs6aa26HlVHdWNeO6dWUna7Y5UKOv1q0l8/DCCB2HGSDx+R FYRoxlvsepQxDpvT+mWo7iJVBNuFP/TNiP55q0slrjLfalx0CFWrOpST2eh7NCfs437fn2GXzwi1 JheZpJvl2uANoHXuf85rOtV3yMGQlVHAHenRg4QbbM61R4jEJb7f1+RqqjSyRgk7B/DVDUpiSqA9 eprkw6U5RV/6udWbTlSoSb3Z/ah/wSEtYZ/2L/h9ceY22284nz2JG7eSQgJOBxg8Yzkex/Tpp4E2 ZAlZuSq/z/n/AJ6/LY+aliJyfd/nY+QwsXKn83+LZajt3uBhtyJjqwzj1x/n/wCv1VjYxRwDYZTJ kYwv3vQ/r+v/AH1yTmoLQ6uV7mmU2ski7VIOAIQPlx0/lnr/AIm2kYYlyA0b9I3bOOBxn/gP6fkp JLYH3RKYU85Y40eJMnIk6qPp+Ht/QWGtgYiVKBnGeOoGe/v1/P65yk2kDWmhYwAUJhB2KeRn5vcn 8v8AJ51Y41RC7IQ7fNlCct04/l+Q9s5xgna6KmmtOhK0cQKlQxeXqWO3b6D0I6dPb2zp28bysrFn UjgyBuvPB/l09vbNNOQRluiG71KG0eSK1BmnA5WEjH5/5/QZg2XcyAyyCLOGWGFv5/h/niolLli7 hFJ27ksNrHbgjkBRyTxnjuPz/wAg1YFoZAFYsI0LANJgZ5//AF+364JPlfkWrNlgaYZtkpEmT1VR nPvj8f8APOL0OiKQVVMBgMMQeTjJH+fXtnjNNpXZd0bBsUggWMBShwTIB19j7c/57Imno8bLtJdG 25A4I5/+v+fvw17qKUebcuJYFNhRJE3LtJH8QI5/qP8APDRpY3qWDEg/w9Oh6/l/P3xnJWfkF+TQ nktEVAwK7gMEkdfr+v6++IDbqyPIFAXPzFP8/wCfzpSaRaV1e4+O18ze7BTgEhyaiWBCJZM7cclf 6fp/nHKUboSl0Ee3id2JUFSnBHb/AD/ntUaxRIhCbWAPRu4z/n8/pROysUnzbj2gkIjCIS6tggNw f8ev6+9EcaNgHajKTg9R19P8/rSS5XZoTi3uQujnfudnBPLe3YD8/wDOaYBIQAwUORncw6j/ADj/ ADmqjPmWo4vl1RXlR3Yl0BJOcqD/AJ9P8g0z7GxR1GRg4DkH5vTip5Yt2C1gXTmMigRAhsMVYdT6 f5/oasvpssoaaRXZivJkY8+g/wA+1DdhptqzHR6DKcFlZUcY+QY+v+f/AK9PbwwkiHzC2U+UYHT6 VCfK9GKL5Hc07XwrFGfliyJRkOB3/wA/59dSHQEtmjmRfkDZ2Dpj6/h+n1wpN8tl/X9XKbVtCa40 DTro+bd6VaSzFcb2XG760y50pnEQMSCILtEcY4UduP8AP+PPSw6pNySNJTlKNmzOn0VGDKVWQq27 aQefX+nf/EY8nh+ZZBiNQyPwwP5f0/T2FdKXKrmco3VmKmkOSpMRYsMsIh0HPce3r/iTA2gyliQu COgAyQP8j0/lwoOysEnyvQr/ANiSRq2Y8sOsZU8c+hHv/noa82iPif8AckMW3Ar1XqT/AF7+v1rS UlGVyU72RRl0BZFR44SHLbd6DBP6deP/AK3YUk0Rgo2qkagfNGTncfY/5/qZnJu7BRbRnS6O8qAG NCiryw4xnuD+f+R8tMaEYlPlSOQRxEFA2j1/Qfn/AN9OptZIlrnd+hBLo7b2KqwEo3Etx9P5D/PT Kl0qQSGOOJT5gI+ZevbHsf8AOOcGoVdmgaSaRSOjmJi7p5rRnIBHH4H/AD/UB0+RpFd4ncN2HQew H4n8/qDMHf4twtzGZeeHHnLzeWrBznKqP5f5/HGRyOpeErmNcpEfLckMgj+cdOpxn/J/Hb2q5rox qJST6GDbW19pk6tLbySWkq4ZCOR7/p/nrUxhWdjO3mtvblSfy7Vv7RJtDiktBkdmhla3mYZH3Hbn dx6/5/LpWvI5RK6hFCxc4XOR+P8An+tbQkqi0IvZ3ZnyWTsHeFHlRzjZGpJPP+f88Vmm2cqsSq4L 5O5O+Bzn/OP6PntC4mktSvNFMyyMUiYL1LDv/j6/zzzWczSytDBJDMzzYRQAdw464/z/ADFZyk4K 3UmScbdxq6beWrPPLHIYY+s7cBMdify7/pyOS8WeLtG8LRSza9qdpp8NscvFclVbd2VQRycc/Q9s kFuqlFtvT9O5NSrDDpubsj8vf2wP2xtB0jwpq+neHtQNtoCxutx4mYhZLsbRiKJCNw3Ebcj3r+VH WL46hf3l3OVMl5K0rH3Yk/1r1MhquupSj8PR931/RG+R4t4mNSql7uiT++/6HPyBThQM4PIqk0SE ZCDcTjIWvqaM5JbnbWwyk/8Ahv68x6qBgAFSOMHqKkUEgE4UDutdkZXvc5o01CbitvMHkVCigAtn B9v88VKpZwse1iZDtULW842jqUqylJpbIfcMhYR53gfIpU9vXH51PbqyxoQuFx/rB3rlqyah73U6 8HBe09z+tjbt4xsViQrHqxPT61zWpMwlIBGAeMiuXAxXttT0c6p8mD547/8AAP6bf+CTP7Sdt4J+ E+m+AfE2rWq+HLyNTBcXYb/QnafY43AEBcvnr+mTX9E3h5tN1LTV1XRNa0XxEJTsN7pF0sqMR1AI Pb8+fy+AlmEK+JrUY254ylddbczs7du5+eZXjIpzhPRpv+vx/U6nTba5uZ0jjhuYreFgHfYRn15/ z/h2CQi2VPly2wAZP8/8/wCB0U1FanvSafw7k0VuXdmaHJYAeWe3TnP4/wCc/NYMbrDE2wKQ4+dl Bzj0P4/560pTS1JSvoTpAWfzUkjMbfdDjLIQOmfw/Ttj5Z44wAyoheTG7dwdowf6Z/L64lK6sTKS irFlHEbySSKGWLkxFcZ9RjH1H+TTy91NFCWEkcKkDYfQe3/Aj+Z98xGy2Lvze8XEhJWNWJRGf5iO 655wPz/X3qtd3VzK0MAS5SJ/uukZOT6H0zg/r7kYzqqCu35FtX6aCQ2ckbwRQW007O67ndD8o75P r/njt18ej3PllltmUt8wAXOBkc/5/wD1Zqv7RtRCEGtWSnQr6ViTEHB/iRe/bA/L/OKvr4d1UJAU haUKQrLHjnp0x/8AX6j2yVZtRsi1BxZtWvhq/UM7xMWUEBUXpwMZ/MfmOve8mm3Sl1W3YEjaqBSd vT/H/wDXn5nH3dyrPoSxaFdOXfypGDEnI/Qf5z2/4Feh0G4DhmikRWXIUDoc/r/nr/E+ZxbG7N6h Lo1ywASOaRm5DAdPp/n8+8Ueh3jKCsUqKxwSO/HH+f8A62YnIcYJ6jX0O6Z2BjJXAAIHT8s+36e2 WLod3InliOTJORgcH8vw/T2zMZp7bl8tthV0G+BEQhkCRjAOOvufzH6e1U18O3+52Ns2C338dR7j /P8AhnKVtQtZXJx4avXZgkEoLY5I9v8AP+ekI8NXxODBJkDliOP89f8APSlUaadi3dRLMPhXUgWA ikDDqT0/z1/zmkl8M6kJQiwuUUEEBenPT/Pv705uUdCErImi8N6kCY5LdwhPG4dT/P1/zmrcfhS7 IBa2ZUAxuC9Px/z/ADqE2le2gJKKtceng2dirNFICM5I7/n/AJ/WtGLwe6eVvGdwPzZ6/jV6z0RP Ok7IuReDwVLSkFm4JPf6f5/+vOPC9uARvAUnPztwabpOQnVS0uWU0CziyjvFjsFI5qRtI0+MFZng jIHDMwGP8/5/2kqUraIUqkH1QySxs4mCST22QPlDSDLDucfgf89a0txokAKTappsMqjcyTzLlR64 z7H8vbhTi1G7QlXhb4ig+s+Dohtm8ReH0c87ZLxB644z61lzeMPh7aZNx4y8JQiP5SJtRiGDj/e4 rKWLp0mueSXq0TLFU31M5viD8KkOJ/iD4JiOCQp1KHn6EN9P84xRk+KHwbjllt5PiN4JJjILKNSh 5J9Oef8AP0rhqZ7gKafPXgmn/PH/ADJljaafK3qZlz8Y/glCqCb4j+DVQHbmO/RtpB5HBPv+v1NL /hdvwNWWVB8SPDW9RzHHcgnHbp9P0/LlqcWZTQ0liqaa/vx/zMJZlRStzGHP+0H8AY0kZvHum70H IjimYfhhDzgn/OawpP2of2ekdpP+E32xkhVdNPusv8uflHl5xnjJxyPbNeViPEXIaOk8XD5O/n0T /qxnLN6MW1zGNJ+1L+z20gii8RX0zqoPkxaXOMKT15QZH+H0xxepfte/AuBZLu3t/F2p2sIJe4sL AYU8gZ3MO4YZ+vvny8X4s5BRV413L0jJ6+tkuvcxnxDQpdTlZv2zPhXHII7bwF8QruW5CvbwtBAp mU9CR5nrjpkYPXPFcvc/txeDGs5p7T4Xa40luSHF9qEUI4IyFJU7jg9APTsa+fxHjhkyk1ThUlby il5byOGrxLBapaGNdftzaal1Alp8J4SssbEx3etqWOD0YLEdmDg/NjseOtcPeft53skd1PafC/w/ bCHcscNzqTuZB7MIwOQQPT8MCvDreP8AhW7UsM726zSe19kn+DZyS4naTUY3OZl/bm8aTNHBD4N+ H2+4/fMLgXDCAZHyMd4z35Geo75zoeFf2mfjJ4tjnuofDnw907T4pGiN69nOzSYAJKBpQCexz09K 5MH43YrOMRDD4TDxcpP+aT0+SXp0MY8R16qulY9Qm+OnjoXaL/Z3hcxOu55jC2ASTgLl8t/nqc55 e7+PXjySCdTH4PtrtCQiSFRv6Y3E5C859fy6frNHirFSjZUV/Xz+4VTPq7dlb+mclqfx88aWv2Jr mbwvHbT5SS7kVWCnvt/d84OOpHb3rz7Uv2j/ABPbzStHqnhRRbNuSOBVIkXvvHlce3Uc84rrWe4x t3px8tf+HOOpn2I6Pv6nGaj+1FreniXULzWdLtraBd0k4SMCM4J+X93zzjk7fWvjvxX/AMFFfHxu 7ttD8UW2mWqSFYbWLS7Z96g/faQrnkjGAOnp38biPi3MMDRisPyxlJ9r2Vuz8+5z1eIMQkrPU53T f+Cj/wAUbTW2v9T8R22o6bsIFlDpFtHuJ7YCj8znoOD0r2DVf2w/H+seF4Z/Duux6dqOqN5k2q3U KMII++yMx4DYBGMDk5ya5eH+LM0zOM6daS57aPlSWn9X+RdHMcXW2Z5toP7cWpaE0lhe/FO41don xFPcSgAHd34yOp6lh246Vr6r+3N4/vZ01HSvE15cMsZQzaVJGAgznA2j/d68/hXvZZj8Wqap1K6n PZuy3v5IKWIxMk4ynrp+B4x4s/a2+MWq2xR9evktlLB5r2Uupz1JGcE8mvij4lftMtotpPe6p4n/ ALRvomaQtC/nN5h6ZJ4HIHv9a96nGti6ipyk3f8A4P8AVjop4Z418jbb/DyPyu+JXxV174l63NqW vateSwEnyLGckrEOwAHGeeTXk8kybypuFTHRjnn/AOvX6lgcI8LT9nFaI/S6EaeApRp09OX+rlMk EfJKm0+9Io3PgOnPVdwr0I3j0JWITV2/+G6lmJEKopVGBHftx3qZUQja8YUg8gGnFyTtc2owiopN aMcbaN1UiMKG5zk8U5rdLW0e7Zip3eXGmep7n8Bj8xWqry0it9CquEjBOe2n/BM+2QO29slQcc9u K1owzFRkhRyPQelTi24yJy2lzR511/4PzNVggQKwO6QZyen5fjXJaplJSAx2g9K5cBK9U7OIY8mH fLuvz3PoH4B/H/VPhDqKW86SX3hy5lDy2yH5oj3K9iPUGv2f8Eftj/DrW7ax1W2m1TQ9Ta1SLz9P LxbiFwGDIRg8Dnk8V+A+NXAuMliY5rl0uWXW2mun9ep+O53galOXt6PXV/16HvXhz9vHxx4UaCPw 98UvHl1p0JGLfU9RaVWHHGJNwB4Az1r3Lwt/wUk8UyRNbal43uLW6u5AJJtUsoWC/LjKkD5ecd9v tzmvzOhxhxHhY8s53srWaTf3/wDB7Hl4bH4qj7q/D9T2iw/4KC+NXuLh08d+GbxAPkS50+MecMgk khRg8uOp4HvXR2H7e/jJ5IraTxN4Ylt52aR7+SzBaNd33TgrnjPQDr1zjHl1vGDP6OsqdO/nFr8n /Xnodsc/xFPRr+vmSn9vTxxG5e28ReDZZpWWM2cdsuxADy4YkdQuPXnpnGF/4bk8bveyWy+OfDMF q6BhewafCXDbTwB0wDjn3B4wAOGp4152rXhT66qMvXbm/wCH1J/1jr1LpI3NL/bl8dRWwfUdf8K3 txbzBBb2iQR8EEna2Dn2+U449q3rj9tXW7+7tGtvFeqWMEi4lhjNgTExJJA/0YYAzwd2enoMYVvG vNo0W5xtPX4YxforSu9NOwLiSs3y+vf/ADMlP2v/ABUJrzd411+4tnb5I4prBMrk8Bvs5OcMOmOg xjjG3c/tn/EY21lDpWvtbWyRsrSzSRSTEZ4IYKFXgsOUOMIc8DHkT8cs3pwau3J7XjCy13so3b+d utinn1aSvdW+f+bMCP8Aar+ObQXQl+Jmti4JKRywJCAzFjgbAnXB6Z9PQY0rX9qH47farKaf4j+L Vt3DeesflfMcHBB24A+Y54NeNU8buIotL2jSd/sQ6f8Abvr8wqZniLJp/wBf8AuRftO/HKW0iNx8 SPFSTRXG2UnaNyfwAHGd2Dk56gnrW+n7UPxtEdwtv8T/ABK0qsfIa4WNgq9t/YjJb8z6mtKHjZn9 SyVWV2l9iNv+G3u/LuVSzSvO0W79C7B+1R8bI5NIEnxJ8TyIPlu4Xjhy/uhwcZz39T1rag/aV+OF 5FdWMPxI8R3Gp3IZIUtreNg3ynjhQckgDIPAJPJJBzj44Z/8Mqrvf+SF9e2muz/pm1PNMRKTTZ7p 4X8b/tG6m9pcaj8SNY0PTzAd1rdxRSzl+CCQEwB14JJ6+pz6rpni74q21mWvfibrmoagsmS7xQCN kz0AEec+vP4nJz+1cOZzxJjaKrY2vZS2jyxTSt1fK7PysdUc0qp6G9D41+IEtzMW8c6rFayRlY0j WIsrgcFiUwQST7+3NczqHij41jI0j4wX9vM5O611Czt2Xb2w4jBz16g9T1ya+hzHN84r02sNXUZe cYtP/wAl/EqOaVE/Iwf+E1/aBgkkE/xRAt2UiIC3iaRWH98eVjBJPQnjOeta1l8SPijp9jcWXiD4 wWyavfu0cRaCJPJzkAIcDefmHG0Z59TXyuXZ7xPhn7bMMRTjTW/ux1001srf5q2tzoeOqxSaZ47r Hx7+Mmja3Lo174+8TqluSjo9tAHkkwOVO3BQndz78Zr6Lufit4v8NeE473xJ40vIL1YBuuJsfvH2 9gAMsfQY/CvleDPE3Osbi8TTzCuuWivevGMUrNpvRdbP5ESxtWKbZ8969+0f8T/EWo6dpvhDXfE9 rbl9oismDTz5BwQwBCjgcfjk8V6x4Xv/AIuLm88U/E7xWyuQ8dhFcBVUZyBKwA3HB/hI57mlkXH2 e8a42TwtZ06EbXtGPfRXs9ZdddETTx1ZWlJnpcnjDxK4g+z+KNSKxuBMy3EgLnPJUgjHb1/Cnx67 4mM1yr+KtcZFOI1NzJ+79Afm+bt6e9fsEs3x0tqll/XmL67UnqpFVNc8QyKxfxJrQuyWJlku5iHX nGFDcduea5nXLLUdVkUN4q8ZaakhBCafqk6Ecc5JcrjB/u/jXl5pi8bjoOmq8ovXWLaa0t36PXsC xdSWjkeHfES28Y+E9Nk1K3+JviXUYJ5RGEn1eZZI84woXcQx4JJyOteQt4912K/SK68V+LHtYUCv ayapOfMYA5JJPrz0/wAa/mrjDiLPOFsRPD1sZUkrc0Wqklu2kvVWfruTPETesXYhvPG+sJZss3ir xC8yEjzv7RkzGuCcfewQcY79eM1E3jWS6f7T/a95NaGPBs7m+k/eccOcN1OV6HGRj2r4arx7m1V6 Vqjulo6ktOnf+mSsRNe7zaoxG8UxTQGGa+MbwTCRLq5upN4XBymC+3b0zlT25Ws/VvEWiS3UlzHY 2JQYjNmZpDEu0YDDLls5I7/hgVyYnizHY1qc5TcX/el/8l1/DQhVpLTmZz6a5o4twrtp0jF9/wBp eZmkVehU842jGeQT70J438Nwyy3DWnh+DKFfsdmzlZGxhWxvznkd/rnpXPTzPESl7+uvWT2fz8rf PuZ/WG1q3c59vHvhu1tXtIn0+ZEkVvMvFJdQMZwx5xke3XtVG5+JOjrcBojp5eBcFI4kA2853A8M fdsn60U8RiHD3Yp/j+epnGpJt3bSMyP4l6E9reJE9ikdzKQYjBG7HHIwx5U8n7pH1p5+JegwzWMq y2DyoghSU28RD5PO4AYY5x94HPem3iYO0EmnrblXl5f1uTUnzS2/r+tTLPxS8MW9tMkl1Esdw5Z0 eNArtjOQO3GOg7DrWdL8UPCZKytq1pLDaIRFGSAIzt4C56cnoP8A61aRoYp07xW+1ltr93mvuJV6 jTa2M69+NmgrKZ49dlmu5gyNdKw3yA8bS/Ujg55x16VjXXxy8OW8KWJuZPsMRLRwySZjB4+ZV5Ct wOR6/wAVddLLcfNOnKT/AK0IS53zKP3nO3Px88PpK8onluSuVdS2cr0HU85Bz7H16Djbz9oDQYyJ VhkkS3H+snHCDGR8vTp9B9Oa6qfC2NrLnd5LVJt+n/AM40ZbpanNz/tGWLLuRWJdid6liASBu/l1 9vbNctfftGwECSMtPKnzGNFAwe2Dx0HqfbkV6lHgivXal6X+/X87gsNNO8l93+Zz+o/tGyrH5SkS XLJjKKD8ueCR06f/AFq52P45eJdWBg0y3u7lWUqtpaKWySOu0fXrXt4fgZ253bf+vkVLL6sly9/6 /Q9G8K6r4nubm1vPEt1c6Xp8P7wWtvJ+9kPYHHC/Uc9q97b41alZW0djZW8tvZ26+XGInPlqvYKM cdP1r9s4G4HpZGnWmvfe3p/m3+BvDLJJctR6v/hzDuvij4quBFJJcG3hmOT9oztZfoOTWAfiFqRM 2xZ76VuAWJRE98ZyfxxX6nRw0Ia1Hp+fn/XyD6jGG/8AXp5mFJ8QPE9xNIL6a5u7G4Ox7RydoHqm PukZ/wD115x478V2Hg9TcatqQkFzGJLaKF/nlU+i9c9j2yK1rVKfsXOo1eP4Lt8nt6mf1enRnzy2 PkHxl8Tda8ZXi6XZwXkGnyttSwtWJeY9t+Ov0H61oaB8INT1aOK78RTHTbWRg32O3OZT/vHkLn8T 7CvkJKWeVU1ol+CE6arJtd/+HPWrjRdA8C+HNR1DStBsJrq2jAjubvLuHJAXLdufSvmQeNPFNhf3 Oq/2zfR3UpzJIznbt7qUPGOemK0zCUcrUaNHRvW/5a/oPETlBWj/AMHuSN8QfBnit2i8WaMbDUoz tHiPR0Zd3+8Rz+hrB1TwQsySXvgvxjaakJOsTSmOb2AHX064/CvQw2HWKkntPd9vv6FuEJq+0kt/ PY8u8QeFfiAtv516bsWaA5a5ulbd7AFj+uBXxB4/1241DVJbGFrcWVg2PJtZCylu5Ldz7/lxiv0f hDAyq1FUqrZfj0+497hzCOrPmlstf0/X8DzeRgnRCxI6Gq7kMqsy4Kjj3r9RirK7PsKnLN2/q+hG zoQBggkZyBSEKgVtpI9Qa1jePUwclU9+23/ANSFiFUl48/3vSr6MWJyQSABkHpWE4pu/U9DA4hOK s1Zr7/MXAdANzq+cZTmq166u0cCy+ZFbZAf1Pcj8f5U6NrnTi5xq07c2vbp8iOKIjC4KqP7hrZs4 9oLlvujPNZ4yr7t7HZlVLlkostO7Fgdp3HqorK1LTWaFChBkck4U9vp+dcWGq/V5q5vmVF4qnKC/ rTY5N0MTMknQHG41638MfHD6JfJpd3dPHa3DDypSfuN6H2NenneXvNcHOla91ofmOLopxdN6M/S7 4Y6X4Y8bslmdW1DTNUVcNakKyS+pU8H8K92f4JhwEi8RoysA26W2zj8Q1fzLiOHHWl7s7LzX9f8A DHgygndx3foEvwV8U2arcaXqWnXsYBYIjsjN+BGK5u60jxb4cDSataajbQ9rhssn4EZHrXx+b5PV wT5q0bruv60OCpDn1S16kcOoXlwwn8+5dQBkB+F+vfrWq+rq8axm2uGkjbPmeaRxjp39q+OrYain 7Nx27GTjCKvErJrV1BIER7lFU7WiMpyeeK04/Ed9EqCMSqHHzSK5J61z1MJTlpUWv5mcKaStoh9v 4k1stuS+KtF/C7cgV0tv8QvEKK8K3DRjGQ0jHp+P4fjXM8roSSbjZmlPDRUrpf0zSg+JHimCPMEk 5jYfKSx4HsfyrUHxN8ZbQ0N9cyFTnyQ3Tp2z9K5sTkGFlrLRfkdM8JGV7I17b4x+MXChLm5WSMfL ECcLgZHOfc9q27P41+NGw8xMuG3bkc/MB0BP+TXDLh6jQd4aPv8Aeb4fLLvR9D23wjqnxc8QGG9u Qul6feEFWuwXk24HROw6Yzivrzwb4r1zwpaxpouk3lxfAYl1GRi0j89B6dDxX3HC3BFHDzjjK9rq ziv1f6etzveAir80j1S1+KvxJWNYpNJ1G0kbBSFs7m/4CM/y71r2/wAXfiIx3R6RrMwthgiKInbx +eeB/wDXr9NWNo4fSc0vImGCpvVyRqwfEX4w3wDWPhbV7tZzlI0Q5YA8YB5J/pU83xF+NsdlLqD+ CtWexsgd9whACgdcj0rnq5jRp3lfTvYlYWiou80eK+MP2hfjrLbDSvCfgu5jurk5bVbuaGNUXplS 7D5vmHX69q8r0fTP2q/FkcmraZ4LnvWDmOS9e6hLI2e/zbiefTvmvxTi7N8PxrioUMPNuMb2ile7 tu1+Kv0Rpz0ZK0Zfn/kfTWkaT+1FeW2jQeK/Amm63e6UBNb6u1+iyBMfcc42tzx17c8815R4s+I3 x48dakk2paG1tptkNtvp8l9bqY8D5yck8kg9s9MVrxAsHl+BdDHOUKldKMpWXvKHrbWzV/T1FN0I rSTaXk9D2L4aat8ZIbGSw8J+CvC0s8UbyTG51lFuZBkHOTHgjPHBAz6dav3vxW+O1hqSWOo+FLLR 72NjutrvUQCoGME4XlfcZOPzr08k4wynhbLKcqFOXsNVze7q7ddd356djSXsF7ybdulh83xc+MMr yolv4fgWJgEeG9eTd2wvyDjPQ8Ur/FL4zoYlE/hgkx5MxuJBt7jJ8skngjHODj3rWfjFldJ8sYtv 5d+5mp0YK6vb5f5l6Hxj+0DPZf2lav4MKypIYbWW9l825VTgusezpk/XhsA4NcZdfEj49TrAFvPA 9uWGDcGWeQWx7YG1SQMe3p715dXxswSgpRot3216Wv20/wAmhOVKk0+V/h/meSeKdM+NXju5k1Dx B8RtDhtrY4S00yxlZIh1Jwzg7vrk++AK5M/D3x6yyxt8SUSJRtIGk4DDAxk/aPUdensOlfkfEnFG Cz7ESr4mm25ed7JaeT/pnMmk3JRf39fuLL/DHxxNBZyS/EgwvcvtlWLSGBjBA4U+fyOPQZ9Kqp8K fFMS3UK/Ee4MNudscVrpa4lYjjcfNOOeO/I79K82Wa4Ok1TVJtu1+tk9e/ZevX1cK0L3cF6X7/L+ titN8HtdkkAu/iZcopJT/RbFR2AA2lun4jHpVmf4QOsDGX4n65FIjbgkcEf7tcjknqc+nftnpVRz 7Cyjzqgm9lp2Xr/X5ae09k7ciS9TOb4UWjGaG5+I2vKVUkfYI4VLcclht6dOMfXGc1veBfgp4K1n xNpui678RPFZi1ENsaG4iB83b8vG3C5weOTyMZ6nqy7P6GNrxpKilFtJ36JtK/3a/wDDCjiVBpyi t79d/vPoYfsdfCyJWz428bSSSOu8SzxMCmehOwnPUcevPSpZv2QvgvbKwl8T+M1iQErFDfKS+fXg cDj/AAr+g6PAGG2Tvs9lv/SN3iW/sr7v+CQXH7IHwOMcRj1/xpGZCjMHvF+YZ5B+XHY14N8Rv2Y/ BPgm2fUrHUfE+raEJt7XyXRVok6EEAEYwVy3YjGB1Pj8ScHzwOFdfCPmcVdppbJeS+4551ZdEr+h 4VcfDn4ZoszxX2uRG4YhEF8G8kcZA45HXBPrxnHGHc+BfhRErSxnUXSNUG25vZDsGMEkjGTkg9R0 7dK/HKXFOJnvH0t+HTY5amOrQelrehmS+D/g8xt4pItTeKJDuka9kPmMQPvYxwDu6AHnnNYdx4R+ D0caCDTdU+zRHLyTX0uZm2/720DJzgDOAOa6qPEGMlK8I6L8lv0+ZnPMasdL6+i/rexlXmjfCCOF 1XRL0zM+d8l3KcLleAd3pu55/Dth3un/AApJLJ4cUiV/lC3MrYGAMcs3uec9fpXp0c2x9SDuvPt6 7+iM6eNrp6P8P6/pmDe2vwvdZ408OvC8ufLt1uXAj65wpJ9fXsOKw5LT4Zbpg+ivFFKy4WKcjI75 Prwfb2r0qOY4y1knf/htdv66BTxOIraX89i54b8O/D/xFrllo9tp14/nyl5pYpzmKHHzH3x19z+F fXejeG/hL4ZtILPRNJuY5JFzJIzndK2eMsPbPX9K/TeC8LiMwlKvVSSW2n9anVSq1uW7f4feW5I/ C26Jv7Nn8lAxmjLNlzg4POcc4POen5Lcp4a0q3s1k0lH1GYb5p0T/Vxk5VFBJw5X+LntwOa/UKLq rW+2u3nY29rVcviX3fqcTqV14btknuLvbZOBvFxcyqPLUdeWPf8AKvM/EHxf+Guj/axBqTXZUDyb KxjEhXnnc2MHv3H41nicw9i1OpNWff8Aq/8Aw5zVpThG7e3/AADwDxP8f4tSkmg03S9R0iyljKiS zuY1lkbI5JMTADr2J5HPHPJ6qJfGkfgvTV0vVL++SyaSe71C7J8qNpnwWbb0x0+o/D4/E5hXzeoo J2i3otr+v4HLCVSq7Jq/z7HrfhbwV4e8KeR9h0+Jrwxgy3txIWeQnsCT8q13ZkSGQFtOhd2f5Yy7 FU/DOew5zX3mCwMcLTUVLvfb+tDeFP2Gjb19NP69TiPiTfXlroms3Ur6RdadDA0gtLm3dR5nG0bg 4yAeg/OvgvU/Ea34kij0jTo7ZzlvPaU7eeoBfHUj8h+PjZng4+1hUlrZO3c5q0VFxlJuzv23+447 Ur1VDCKGCC2X5BFCeEAGB+Nc5qF7b6W6z3rst8VDRacpI2g85fHP0AOcelbYOhKp7q1bNacnVmr7 Wf8AkzwT4i+N9avDcWCateTpN8gj8w7QnoozwK8Ea2YAsWwTwUHOPWv3Dhql9SwyUt2fo/C2WS9j 7V6Xf5dP66epWe3DY3+YCvBAOarNZl2bDgegA6V9VTr2fkevXwEpxtfX+tP66CG0AUKzbhnoR0qP yXGCzIgJ5HXFawrKW4pYedJWe3+RPBASueQijIB9a1UjjMSRquZOplJ6/wCeaftU22x4DDO6TXkv 68i1bpHGzSzoHijGRG/G89h+fP0pzWNrIFkVEjJ6ovf1rnqVnRlp/wAOe3h8vp4iLpyWq1v/AF/W pOdLjKoFeQDuM1N9kYYRN6Z6bv0rgljPa2vsetHKVSd6UtdNH+I6K0kMkbMxZVAyRxmluY7iZpJP LBBHy46gVlKpFyTewPC1aad9e5gajpUjoWhidpBklsdOa5Iq8b8o6svOa+jy3ExrRcb6o+A4mwEs LVUraPr+Z9X/AAk+Id3NbW1o0xj1XS2DJPGcM4HQ/hj61+qXwe+J8Pi6wWxu7kW/iLT4/wDj2k4F 2nTch7t6j8a/H+IsN/ZmPlGPwy1X9fefBV6ToSd9m/8Agv8AFn0XperQyqfNLx7+PII5Y+hrrIry 0uVZZAjYXBhYDDD3Brw8TBVE4y2/zOWa0vfU881z4W+HtRvFu9Ne30S5uG+e3WMCOT1wCRtbHvjp XJ6j4U+HWgXc9nrPjO6umtTsls9O0d3lA5Hyl5EQjgHIbGPXofxziHh/6tiL0muSWvp5L79Fdadd DjrylCXNCN+u9kcVfxfDSGGVbfWPFt9eSncqf2dFAsfTOT5rZ79h68dKptd+DollNhp3iS6tp9my Sd4kZuTvG0KeoIxzx3znj5uvRktXLtrb/g+hywqVk05WW/W++nWw+DUfC5vYbqLw7qUtuoVWtLi8 yHPG7cwVTggMOMY9eOdWfW9EF5cTW3h7ToxLwlrfSSSLB0ztO4HqDjOTg/jXJWagtHr/AF5GsPay s5SV7eXl6mjD40tAgU+HfDyQQuSsMlqrlWxjO5ucdRg8e3etrTfiDoymNx4c8Ox3FuMDfZRbWHbK sNp+uMnPNeZWp1pJu+m9tzL2U1FpSd9v6/r8TpdJ+IFnp8k89rp+jxtODG4azhJfOMj7vGcdM161 8MvHNtrHjLwxo00GljTjPva0SCMAbFLEdOM9D6jHWvOw+Cr18RGmno2k9PPrp0M1Rn1b/Fv7j9Ib T4j6XbyW8kVlp0V0FKC6gQBtv91iByOtd74c+KNnp1td3kNtpxRXCm12LseUgnJHTjk/Wv6HwGX0 8PU5lBdfnbW3zt+J6aoSbSa7Flfi25kYgRhWO4O0gGMjGAe/StSD4vNMFkkZEK/KWVhzzxk/lSlF pc1jZUHLQmu/jppGiot5e6rZWMdmQ4uZZcKO5Iz3FfOHxm/aVl8Safpd94Vu3j8KajIYbpoAQVuY 2yYnB6DG2RfUEdMEV8Zx/m8sHlc8PSadSpt6bN/c9Pv6ExpzTbS2PD/CPjm58Va9a6Ja3Zil1Bxv eZSRGgHzMfYc/p1r9AtE8daT4d06y0bSrq3srKxRY1jhmBLE8856kk5r868JeGnhqlXGyhrpGP4t t/gvT1KoUKnLe39f8OdI3xYgXdAurWMkj5UtJLyRxx1+tfCnxG8VX/hbxJewi+gOk3U3mWlxHgKy k/cAPcE9Px717vitw7VzfA06qhfklr3tJW/NJdzqlhJVFZI47TvjLfaVI2oWOtva6hAwEU8Eu114 O4gqc55/HofSveIP2nPDvjC0ttF+JzW7sqfuvE1lgSR8DghV47k4BX2FflfC1OWXSngsXDmw9XSS 7dpLs16fkiI0as3pexzmq6k0MU9x4U8XeHvFunEmRYLe8VLhVz3jJ5OD9TnkVzdj4rvry/SFjf6Z DIwM13qkbiOGMD5mJ74wTwM5HHWuHOPD7F4CbUY88HtKOt/Xs+97fcW8vqN2DxF8aIJLqGSx1O/s oNLYRWIjQiWONTwx4++Wy55xyeasz/GrTPEExbV5rfR9avV/5ClogEVxgdZUQfIT/eX/AL5AOa8+ HD1afNGK2SSv0ton91lJfO2ly54Ksp8rW+5h3HxDeKDZbSl7ZMhjbFHib/top469Dj8eg58fFJmu 5mW7mtxFEQ0spDgEHAIJ5z159+1c74WxNGLXLqv1fz6/1a4SwVSK0Jf+FoRS26As7GJiDM5OHHb9 R9etUU+JEri7iM1zcIuD5TMpyvUY78Y5Pf0q6PC9WClNre/y8tfloJ4KUXd9LGSPiPeXV1PKSwth JtM5+ZuecEN6fz61nXvj6WRbg20SS7zuLTDaXB7nHAP+PHrW9Hh62klr/T/TT+k3DAzlpfX/AIC/ r/hjCn8c3U0O2GeCa4jJLOX4z+AHHTuelVLPx1e2zw3sZhjvrEiWJxLycAbSAeSRx34BNa0OG3Tl bVS0t+n5WNqWXTVpJeen9eZ9+ab8UrrXdN07UFliCXUccoWI7t2V5z2/P0qOXx5qkkcmydAUOdrA 5UZ9R+Nf1tl0pYmjTqS1binv5L/gs9FZdKOtmUZfHWrzQjbdKUiztVlzg5GSfyNc9eeINSuRcx3M s00UyBXikU7GjxjbjH4fjXa1CzjK33krByStZnwx8VPDereHNejmsbu6udJ1lTNHbRfegIxvQAdg T+RFeVLaa9KUKw6lLC4LbQhOeq5PpyeK/AM2yrD5XiJ4aCSS2V76PVb/APBMZ5ZWnKTUW7+X9W7j ZtA8RXkcbLYa5dGIHIgidjHj1wOg4z6U2Twb4yuWWVfDXiqQEYSOKxl/ixg/d55PSuWKhKSbj6W1 euv/AADGWV1pSbdN3floRT/D7x7NHJLF4L8cyRxIWaR9NmIYA8gnbyAOKqt8KPiXLACPh745VVII mj0q4YnjjBCnnAH4V34enVjqo3+V/wCkDy7EKTnyP+v6/ErH4Q/Flkwvw0+IAZmZip0a5U425bjZ 2wD+NVR8FPi4UIT4X/EJ40Kne2i3HzZ6Y+TOcgj0OM1vTjVT0g7/AOF9vTsyYZViYpP2enU3vDnw 9+OHhEXUuk/DHxvbSX0ZLXFxoU5+QcEgsnTOQfcUuoav8fLJ2DeHPElgvRjPo2z5scDBTr7fpX0u FzzFZTS5Yqy1+y7/AIoipl2Jw6+F2/L+v0MnR/EvxIuNZis9W17ULHTkDT3VwYVXZEgy+Bt68YA9 TivN/E/jvxprOpXt7e+JtQt1upDutopWVVGMAAA9B0HsK0XFOKxd1zP5aX08vkebiIzoO809DgL+ a7nLPNPPcR42meUnLZ6nJOR3rl3UGOUGQqsgy0aDAOPx9hUQrSn7z1l/X+RyvEONk0V9G0tdUumu buaW30uyKtdXbkDdzxGnI3OxwABz+Rr7B0XT7PTrISGFINQvEVpGtTu2ADCoG9FUACvsuG8K8ViF USvGP3a2/wCB9xrhlJR5WayzqWQiKNF25MkvX2ye1Mu9RiETurIrKmWmJH8+1fo1Ok42nFaHWknF 32f+X/DnyH8W/iTHr4n8P6TcbdNQ/v7lT/rmHQY/ujH418+XZCweU28AKGCKvLe+BXzeZYv21a3b T7v6/qxwYmak1JPRdDJtiILTUNcuEEktmUht4peglbJXI7gBGOPXb24rx3xNqjWqSzyv5ss48x5X bczE9yT7/wAq9rI8OqtTlT8v1OinScrPpdnzvfXJu7qadlkYSNhWY/dGeKosqEswYhmJGDX7LQh7 KKitT9yyzCRwOFpwfu6Jv1IWQkoeCo4JbvVeRcg8ruU4+Qf59a64PXQrEU5VI6f8Hv8A8ORFACB5 hBP8RHH8/eqzx4BdiNyjqO1dlObVrnLWot+70/4bzJ4V3KqxkgseB6DtV8AIpJbBPClj3oloycJe 6l06FiSRY0jtSwUod8gkH8R7fhx+tWkkiKrmQhnAIJOKxrRk7O39f8Me1gKsU3zvTT9S0ZFAbDnA GMk0xWyD8xyO+7r7V5qp2u2e1Kspa3tv1Ji5TKFxv9AP61OoKqCRkEYye1ZVEo+jNcNBRndO7Vmy ZWVQWKggcHnn2rk9d0wPH9qt4myexOcfWtcBiHh6yk9tjh4gwscbhZQtdpX39NDE0PVrnQ9St76F tjRnDqp6juK+6PBfi9pYNP1awnks9RiKSR3du23nsc153iLl7q0oVobrQ/BM0p8kE5aNfn/mz7u8 B/HWx1SC3s/F0YsdQiAU6zbDKydMFgOQf0+lfVXh7VLO8ihurCez1i0kGRPDIrBR3IYH3r8xw+KW MVpPVb/p/Xc8qGKU46/1/X+Z2NrHE7PGXt5kT5sOMkYIyDXMeOfBUHivTp447SKPWrRC9veBeCeu wnjgg4/WvOzfArF0J0LatfjurfgQ6nOrPY+Nb2KaGeWGW3eBkfa8bcNkHncp/wDrc04TLDE0TW4y xyrEnKjvj8vfpX4zVTnBJPU4KkpQm4T6/P8Ar/gDbW4dGDKA24YDHkAZxXR2kaO1ufKSYBcMxxz/ AJJrzcVG+z1t/X5l05qHTQ67TvB2q6zdA6bpN/dPPJhbOCJmYZ+6F7nqOOtez+F/2Qvjh4rmL6d4 A8RyWynBkvYfs+Ow/wBZjjg/lU5TSxGY1OXDU3OXkvzey/r5ethcuq4rbbu/6/4Y+gvDv/BPD4vv BC+s6p4J8OwSspkTU7/Lx+owqnnt1x3969Q8O/sB2eiXsGqXnx28KaNqNqDtfR4fNKnJX+8OpwOn XI4r7vK/DfNIy+sVZxpPR6u9vlt+J9FRyWLkmru3Zf18j3qx/ZJ8NxSgP8f/ABZeBRgNpOlK+7J4 +Yqw5wfy7da7Ky/Zj8BW+mS2lx8TfizeWs0sc3mRaYu5CY25QmHGDwzZ9FHGefvqPDOJpv8Ae4y7 1+GMf+Dtp+R6EMpil8P3s2rX9mj4WxAPceNfjVqDxRkLAoghJYYBx+5UZJYAD1461O37OPwgWRBc 6z8ZLmOMurNPq8MSnJOJMrtOAFbHrg5Brtjwm6iUp4mpL0jFf+2HQsDSTalGNvV/5mPJ+zh+zTd3 a3Wp+G/GOpxqodjq/iYEoOcgkTA9ArdejDGOQLdt8GP2TtJsLnTR4JTNzFtlttQ8Vv8AO4yVyvnY 3bjtz1GOM8muB+GeAqz560KsntdtbdexusJSvpy/d/wC/o3gr9kzwnPNPpvg7wXaTXKiN57rxTK5 HI4AMxxgEn3wM9Qa6lLz9mq0AZNA+GkqW44jvfEcj7fmI/vk84XnrklQOOfdwHCODy+HsadGdl/f 8u/MdMsJyKy28o/8AS58V/s2QBoR4f8AgkwQbTMddB3ZXnHBGN3A/wBkbuxFUrjxr+zXNBJDc+G/ gTdW8iqRDf3yOm/IIyCh4xn8do7g1vPIMK48tSirPTWfr3djWGFmtY3/APAWZaeIv2XWYTW/w/8A 2d5vmwZikDgjJyQPJ6gbf1HGKn/4Tj9nFoikfw7+AzTrGFVNP06KfD4IOMQcguAPoc815f8Aqhk8 rp4amvWcTZU6klvL7n/mPPjn4BlGa3+F3wsuFnR3VLXwwJCuQrKcLCMEASfXAHHNXY/H3wnhKTQ/ D7wxGAy4Fl4LuGwgzuUYiHBDR444Oa2w3DeUYZ81KhTi12kv0Q5UKsXeTl96X6ld/Hvw8KtHL8Of DrmNWi2jwLdOA2Co5aPj58k+q+nWsi48SfDAGaf/AIVT4SVJgZFM3w7mL7SV6koOqbufUoe+C8Rk GV4le9Qpt+jd9LvoRHDThdpv/wACS/XuVx4k+GUDRPB8JvCqpPwkw+HswZiM5CfL94BkHHcMDUP9 v/Dm4a8WD4XeC5JZlAYr8PX+/txgDH3fMBb12nOeAS48OZS00qNPTf3H0/7d+8uVCpB3Tf8A4Euu 3/AIpNb+GUUyiL4T+F4gPlEo8BSBwBggkbeuwEHA5Yrxziga38OIvMRPhV4RWVwoYp4BlLEbTuA+ Xj7ye/Dr7jR8O5U4qUaFNr/BL/5EmdCUZWk2n/iX3FH/AISbwFbogtvhl4SEs0aqTH4BYIsm0cjK cjKbv93nsSdH/hPvAaXTlfhz4aRHLSAxfDybcELZUFhH/dBGeedueDiiPDOVzd1h6V+3s3v68pKp Sgt3/wCBL/M0Yfi34egVVj8IadHEuMLa/D66TgZBIVY8feMfHYhh6Gta2+OtlDu8nQLi1UH5TaeA 70Yb5QNpEfOCsnTquPQg9FPJ8voL3aFNf9ufleInhmur/wDAo/5lw/tAaPHgpYapJbTNlVPgq/Vy jNu+bEWMlFznHbOPRh/aHtFEjtJq8KEeaWPg7UV2HYSW+51KFO+Mdc5Brvjh6EF7sIL8NvkEsM5K +v3r8rjo/wBojSRGkU194gjij3IYJfB+oAYBXapATor+vqANp6t/4aG0ma6Nwl74kM5KkSnwlqe5 mL7CBhPvFQU9z642hzjCWypv5r/L+kTDCRkr/qirH+0ZaLFHLb6r4mkYbWCQ+FNT9GaM5weijjns xHAJFQ/tHW8ltDPLqvioLCwcEeFdUAH7vLkDZ3JR+eAuc5BDFv2bldKn9/3fkU8JFRuk9PNDT+0T a26BYfEPi+OcfKzXHhXVPmYEc5xnjOOOfmA4OA0Mv7Q8dw6RJqnjA28cjIsf/CLaoSEL4CZCdQdw PHLdgQVrb27Tbi4dOv5fiQ8HCN7r8UVG+P0juJILzxvdjcjhk8J6t15JOdhzlFYZHU5PIBxRb9oC +kGZbH4huYlZmkTwvqKjAXcSSy+jK3pjr1DUqeIqJ/FH5KT/ACVtLieHjBN2/GJDN+0BeQoEbQ/i OUB2kwaBdKFwACfmGfvEcdR8o4PFZtz+0Jqe2Xy/DXxdneMkJJBpBGPnweScdiOmMn8rvUmnHnin /gm/XoS6MLpaf+BIgl/aAvyRA3gf41XG4k749KX5CX2/d3DpjA9SSDnFQv8AH/VpMLJ4L+NsMLth 7mTRGZSm8rgFSSVJUD1J+lc7q1Kd3Ka/8An/AJByQk7JL/wJFOX9ofwwARrJ8ZabHuHmPrXhy4ZT 2Y/6sj0H1H5cVdfEb9n3xc8UeuTfDTV5GkXe/ibQlg2k8MSJEHGMf1rz6mEoZg3CoqVT1XK/x/rc csA46uL+Vn+RzV/8Dv2b/Ftn9o03wn4CvllRZGXwlqDxCPnbxskxg/KcYB5NfPvjH9hj4d3Utzee GtY8QaLOpKw2OpSLNbGQDkF1G/aT/kV4GO4FwdVOUIulO3rF319PyPn8bkNHEe9Fa+Wn4Hwj8Tfg t8Rvhj4y0BfFml2aeEkvUEF1o5xa9Rk8knPPJYknHU16rLHIoUxh3VyTszgDA7mvPybAzy6pOhNW aS66bvVbX/zPjquFeFm4y1vt6HD+IfiD4a8OpJHJqIn1BDgafZMHcH0J6D6k185+MfidrniV5YGj ex09ht+yRE5f/fbqfoBXfmOP9knTg7S6+V108/yOavWTXJBXTX+Z49MRHJKJTlAcnGc/lWHcqCZJ 1dTKp2rFglWHT1+leLhZWdnsc9NNR91fLb+l/XUqfb7abR9c0a7i8hbhDfRXHQQyRBjg46gqzLz3 K+lfLXjvUJILcQzXD/a7sfLAf4B6n39K+84SwydZJ67Wf5/ke3lFD6zVjBdXrqeSAFSqhskc7STz xVhJghKqowR9/NfrtSKlsfsFCMKW+tmTRzxqjJJbRSs64Eisyup9fT9Kz2lnYFkUGNWOAw5/GlTp xbvJmdaU6fwvXX9CBrhlJMkK5PUBvf0qsbjeSFiYAcBc/wBa7KVGO9zgrYuT91x/r8TQi3MAU/i5 yDV+IMC0jqGS2G7B7nsPzxWaavrudVGEoRco7dv8jMNxcGZ3kcPvbczr3+tW4rgggsxQqOrHrXVU wsVG6X/DmeDrzhZSeiff8zQFwGbOUK+jEfjU+8Eb8q209fUV5UqapyPpViJVW3o1939eoonKmNGZ ST/Fk81aW5AK8gnqAMVy1KPM0duHxvLeVtbfp9/9dy0l1kYbDRnozGnmS3mRom8vEgIIB71wSw7X vI9eniqb1TWtv6/E871qzWzuGZAvlHstes/C3xfMGh0O7nkKWykW6nHClixH5sT+NfQZnh3mmXy0 1Sv939M/D+I8CsLXqUkfWOi6kgMTCSSRiu0hz19s1654X8S6zoM5vvD+o3thJlSYrZztkOOAR0Of pX82Y9TwdRzhp/Wh8AqaV3LXu/1Pojwn8dfEcb4v4rK+ktlIeFx5ch9eRx1z2Ne6+G/jh4P1ho7S /S+8P3MLbgJRujDcYO4cg8DqPxqcNxLGL9lV0trf/P8A4BrKpBJxR4n8T49MTxXcXNhPbz296kc5 UEFSx6nI6c5P41588kZjdsum05WJ0+6Ovf61+dZnh1DEzitrv7r3/IwlC7al5Hp3ws+FXjD4parB ZeF9KuZIXkEdzqtwp8m2z0Z36AEBvyNfpd8N/wBm34Q+Cra2v/Fzy+PtVtYnM8dzMIdNSTpjzSRv IyOE3nI5A6V9PwvwRHiCX1jE/wAGL9Oby32XV/K+h7eT5XHExVV7dF6f1sfWnhrxVoGkLb6T4Q03 TtMg06a3iGmfDvRPtEsTuzFgLiUBM/IV5Qc7j/CcbGo+LvE/2eK6uonhiZFZ73xz4hS3QN5p3boo Sg2lVGPRRnjctfsOGoUsHTUMPG0VsopLy1f+Vj7aGChhIqTaXrq/u6Hny/ETTkbbH4y+GNvfx4Al 8O6dNqMoO4yAnCv82N2R3bAydrCsy5+MNzCiQReO/ibqMkQQBPDnh6O2U8Nt5m2HI3FfqWbg8n5L NuNcqyZuOIxFKElZtfxJfO1+3c5MTnGEw38R3Xm7fgtfwOQm+KF2bdla2+PmozMoA+0anbW4I2gc qjOQPmK/QfWseLx/q+oxziHwF8Ur9gjESar4rnxMfkAJCRHPJOeeoXuNw+TxHjxkVDmUcTUm1b4Y xjf0vqt+255tTi7DwtyQXlp/m0Kb/U9RlUn4ZWNqs0gjj/trxDdz4G7C/N8mTszzxySe9bsNnp88 Zm1Dwx8NYXDKdlwbqXKglnUnz+u0R/r9a+PrfSHwdVtUqFWXrO34Kxg+N5OTSjZfJfoWHu/D8Mab dI+EZMX8a6eXycEEgsx/iIb6Z9TWZc614dgUzPH4H02FztQ6ZpNsWGQoO3MbYAw2PY47A15WM8do zk/Z4Jaa+9OT0/HyucdbjnE39zZ+f+ViW4+IfhyEyXFpc2sSgrI0FrplkFwG3bAfIyMgFevTmuH1 H43GJ3XT7dyVKhZ7iysjt4IJI8jBzkHr/CvpWMPGjETn7mDgvVbfh8zGfGmKkmkuvd/5mE/7QGqS TR6baTW9rPEpaOSW1iAYbOCoVVx8w3euSTnnFO074q/EDVdZsrOPxDHp8Fxe7PJs444QyPIPk3Y+ 6Msvc7SeTya6sb4146nZUqFJO2/Lf1/qxzVeJ8Wo3k0m/X/M/PD9oT9uT4+/Av4vWemaZrcms+Hj psMsnh/xFNOsRnLSB3EltJDIG4H8RGAOOM1oeGv+CwWrMtnba3+zjY63ew/u57rTvHWqwxzAgL8q OZSvCjqz9/U1/U3h1meHzbJ6GMzCm3OSbbg1Hq0rpK33WPawuZVMTQjU5rX30T9LXV/Lc+vdT/4K n/Fn4c+BprvVf2M/gxplp4wWHUrDVPG2tvqNwsYYkbNw3BG6lRtz8uRgYPiFz/wXm+PtrH4VtNC/ Z1/ZN0i18Fyefpxn8LPNIkvH7yR/NUyN97l88tnqK+vw9XKHd1cG77rnk3rsnZqy93879de+eKxc HanUltbTTrfp5+ZyniP/AIL3fto+JNN8T6Tf+Gv2c4rPxldx3uqi38HKDfSIFVTIWlORtQL7DOMc Y4LWf+C2H7ePirxHaeIj4g+GsGtWtkmmw31n4YhLpbKoVYw77nC4QDAbHoBxjupZhl+EhzUcHSgl baO1vu6WXojmq4mda/tptrreT6/dp/ma+lf8FUf+Chtxovhq1f4o+ENB0/wtctd6fJ/wjemxtBIz BneKPysBmZVJKKCSM19N+C/+C2P7SPwv8D6x4i1T4l6LrHxqu9QaO3h1Hw3DsgtpEJlnDoqKr7xH 8rBiR9K82lxLTxlT2VKhSUE3duDtK3Tfq/kSqcqyTUmkrWu3v21fTU4O7/4L/wD7YH9l6HpV94T/ AGe/EttpV8+oPd6hoc5kuZ3bLvJicDcSSx4K5/hFfRNt/wAHI/jiC2Ou6n+zv4cuPHJhWD7VaXli LUqoZQY1exZoeGOQuScnJr2sNmeX11y4jCxi/JJru9H0enX7xRVZN8s3fTrf/LY8t0H/AIOCtTS8 ux4o/ZS8EXtkIgsEOj6nEpU8jMga12scY5G0gj3r1DRP+C+2nahb7Jv2NfCCK5Zftl7eWkxUFNgU BrQDjAYccNzz3eIr5Ny81Wi/Rf8AAcQw8a9N3hNt/wBa7mhqn/BWbxQtodb0v9kSyudMlLSw3Kax bhizDDb1+ynAwB69/XnznVv+Cyf2h7lZ/wBm3w/pE99cCe5MWuW8ZjIzgRLHafIBnAChQFyuMcV5 tTHZRF+9Qle2l0vzu/1Z1qjXtyqp8tf8/MzG/wCCquhX1vJOn7OUTo6MgupNYYIQx3EN+45XIXgY 6VzF7/wV28J20sK6h8B/DsaxMXkeXXWLFs5yv7nI59QecVKxeDqvkjh3d6bpL8hOhiU3+926f0zz HxN/wWb0m0V08M/s4fD67uw6BLzUr+YqI1bKqVEakkfNg5ABOdvr5xN/wWf8RrDMkX7LvwljlIxF IL25wvyBSWA+98uR1HGB9fWpvLopJ0Xf/F/9r2Oeq50Er1W3rt/TOB13/grb8a/GuqWei+C/g/8A Bjwe+rulubh7S6vJ2ZhtBVmmVfTG5G6Drjn7qv8Axz44sotPs73xSXvLa1jFxcwMQzyOFkfJUDDZ KZHAyp4OAa/B/Hji2pw1Sw0MsTptttu927WXVWtrtbc8zNa9WhKCU3dv8vT1RjJ8Q/FkhSRvE2rx hSvzSXDYkG4sc+h3HPrz+WfJ4o1aUn7Rrd3cl4yAJZCfl6bQCcnKnGPRj9T/ADXW4+zvFyXLipL0 fLtr0PN+tV6mkpP7/L+tDCutd1KWXF89xchYwT9oAbjYFyMnrsCj8AONte0fA64ub/xBqkl/bWct olq2972NW8t2kBHBBwTtP4CunKM2x2MxtJ1K85O60cnqrp6622NpqVSyU397/r0Og8U/CDT7kTSa DrUGllnDDT9QVZIo/mydrjlBy3Y9T0zXzn4v0PxJ4UkWLVtJitjPxHqSDdFIQSR5bY7Y9Aefave4 gyjHYGo8VTrzcH05ndbeew1g5Sl7Rv7/APh/6scXJqEcCvcNZ28TygMJWiUqMEhQqnOeD17frSXG qi2iWOARWzxAFXWPBXkkBTyQMsT17n1NfN4PNMdQknCtNO/88tvv7Mv2cpp2k1835nUaL4k8dWsU FxaeMPF3h/TgUZZ7bWryBX2kY2RxyZbHzdFPXtxXr/wy8f8AjXxD4ptPDOp+OfEes2Lkoo1y2tbp SBycG5idtoOOpBIzz2H1uT8bZlSrQw9aqqkJO1ppSeumjd2rb3v2K/tWvlz5qc235n1ZF8NIdae5 uJvDvgDVbWFyi6hDDJpcgbbuGPJdkYrx0XuOOwun4f8AiPwwYdT0y91nS7dn3GG7ukurYnAyCylW iHzD7wVj0z6fu+CxXt0lSXK+qWqt6P8AryPrcuzuGbRcZ/F5/o/69TkfHOuQW2n3mh+MNOW90G8Q iSa4JaIbhjKngjrx3ABzuAyfyZ/aBtdb8MeIUttN17UZ/DWpAvaLGcKF/u7gcNjjng8jODkVXEeX urh/b0laUOu2jdmvk7M87iKklSc4/wDBR8/wRlITcRERzMpYu5Oc9/r1qpdPHFGrTOVcjIDdfy9K /KY3rTv17Hx8JR5lbZ7/ANd9TlJwGmJXzNgYAlx09hSzaNdTCS6nWS0tbVcMFj3EjONxUfd6/wAR Fe7Cyab18jmhD2PNFP8Aq9t/I838ReI9K0/T7iKOBJLiU5Z8hiwHIJI+Ucj1IHHBIyPkjXtQj1jU 57maNrcH7gfJ6epr9a4PwDor2i+R9rwjhIzqXqL3bb+uny0/4JlMhiyx/eKAPnHb/OaiSeNyCSQR wAe9fdRXP7yP0mpWVGajL7/vHJhuAwDNwH9aYCpG0EgL1ZRyarku3cHFzVurZFImMBVBCjndzmqj oBvVkXceAPSumm+l9TlrwSm+q/4BegcqiuMYVeCoPFWrgvaxQWowZWAllz2yPlH5fzpL3pKJzqU4 0Uo+Vv0IgIlUhlUEjGPWngQEqpJAIwCe9NuUlZf12O2EKU2nLQURRclmUFj0YdatrCiRqrOoA/gU 9K5605W1O6nSjGLbaTtqOMMRAXKMSM5BxUghgGAXO5uDg+9c7rzWqOyNBcjb2t6f11LcMMCyK00r xwjkiPBI+nNNSBCxWN3MYJIAb9KxVVxV1ubxwcE1Fv5ev9dCG90wXMDKxAbHAx04rhrS5uNF1KG5 ido5LVw3ynH1/SvcyjEKupUWj4/jDKvq8Y17+Xz/AK0PtXwbr0Wp2ltMk5KMgbcR0969jsdTZpA0 LLEwAXaPusP8kV/PfEuBlg68oRXVn5BOH1as1LW/5HbQ30ltcW8wKxyEDr/ED1Un8q9AnSK7todS 06IRuoUvEfvH6Y6/U+9fmeZ0pUpqd9Nn/X4mXIoNN6br02JDfT3K/aJtt2wJZXduSccfN1J+prZ0 nTL3xDqumaJpaST32tXCQokJGMkgDk4wOR3AHtXmSoupK9v66Ezjzu2y/r/gn6d6Jqml+AtM0f4V eArSCW8umFvcyxgb9RuSPnMrDgxJuKkdCQQcBSG9G8K6n4UvNSca94mtNca2Krca3qgaWCN1/wCW drbKVMxUDBLFU6jjkV/SWByz6lQhg6S0gt9vNt/PV+bSP0jA04YKlzPb9Nuv9WPco/HvwzurWa3b xV4gnN5GUs4J826yOE2tiGJlSNQEGF+YheNwxXxPrvxT0221S48/RtPttUgleObUJIVMgIG0nPTH JHTnJr8G8ZM0xdaFOhhp2pXalZ72tZadGr6L5nw2e51WxicKXuxX4/Pr/WwsHxf1zU5Zo7F7qXYM C401DuHQkAqOBwevoK2X8d+OIbIXcmn+I8qBm5jt5NuOQc8cenfqfav56XClSKvTTcU+i211vp6/ 1v4FLCSqptau39f5GE/xg1CeKOOXU7obsLKVYgrjkFuc4zuOOxNQQfFDVWaYPrVysaK2J4p8gE9D 75wfTk5rkeRqc+Z/O1u/a3UUsNOCaa0/r9Rlz8Q9Yu1hjfUHaUB/9H3k7MAnP06AeoHaqkPim6Eq Yu55YpDloyDn6Y/3ce/NYTyRppped99ba/5D9hKo2m9S9pNz4i8QXkenaPayXUspEhmth8iKf4pC eAOF79BjrxXt2mfBy4uxbtrWvrE+N32fR0yDjr8zH+lfYcNcBVc6fNGVop2crXv5LubYPAucm3sd Enwm8I26ytO2q3juQuHuMAjnHAGe1W7j4ZeCggWDS5CwAIkM8mU4HBJPToK/UcB4b4DDxvK8n62t 22t3/M9mngYR95r+tzwn4s/DSy03SLXV/CLXIl06cST28pLYTPITvxj3yK8w0XVZre60+YpHeESB zBOcDI5wXU5wcgdv0r4Hi3hyOUVfZ017jV1ezvr6fP7jmxFD2rul5ny38bfh/Y/FL4p3Ona9YW9v FM5Vb6XIS1+dhuMgPAOCcEVBZ/ss/DPwvr2sWmnazpninQfBlu13q3jOyBW22A4CwBwGfcx2rkZJ 6Cv3vw2nVjgqdCU/d0063ba+7q/l3PSyWCp01rpa/wDX4f1v8teOPCnibxrrF1fabp50fRYhi1sX JCxxjpz+NZmgfBOaZQ2uXVnDGeAbZtxP6V9HnXGlGDnChdyW3Y66uZKEPZ7vfy8/1Oh/4VP4Ngfy bbT7rUrpv4WfC/oPpXZ2ngHw9oFtFFbaXBPr10MJbsSwh/PJ/CvAp5ri8zS9tK0Xa9u39fgZYeU6 005uy+Ry+q+EL3SZHWOaOe/n+/c5yw/2QO1cVdfB7XtZVbxWgcE7ily5Xd9PxxXt1OIqeWcrl+Hl 2PRxWZxUVy7W/wAkjN/4UZ4ouA0Z06xhJPEzTDGfXrinyfAHU7dkN7daYp/hhjcORzyeD61K46ow fLTu2/LyOR5jFrlTbb8/zLTfBiLQYDe3UdrdO3zC3VcZPpjnitDwv8PrvUNUtdRvbQWdjZOGS3to 8KOc49zwK7sHxIsZLmlKz2Sfn+dj1cDiPZ+89l/ke5+OvEviHU9IsdEg1vVLbT9PiMa2FiuAR6fX ivni48K6hO3mR28hYHJub1t7Z7fzr18dxPhqcmk72stP61uVLMoUKb0trp3+8zb3w3qskaCa4mlB GDG+cH2HtWQnwzs9WAS9gksQOTPGM/pXly4rm4899d/U+Wr53Uquyf8AXX+rFy2+CPhC3Cz3+qXl 9ngQW0Rx+JqW++G/hezs7htPtGVyCf8ATFBPfmuGpxbjMW2naMdvNl4XEVK797a1/l/X4GR+zd4P 07xH+0F4R0mZbdrXT7lrqeWUHYqRgu2cduAPxr9W7y9nvbi8uDJBtnleXy0jwFYk8cegJx2r808a sY6mKw8ZdIX+9v8Ay/I6cynGrV93ZRv9/wDwxBFLCkcLzPLtVfmcNwR025xxznnpzVKW6FzslDgv HISmwDC855/HHQjivxnDRcHp57+uq+Zy0qai1J7f8OMkuHVmJR3eUhQZOG9c+/XvX0x8Hb6CPwkz 2Rik1C9nZ5wAPlwAAT68HP49K+q4Kwsa2Pi27JX0+TOqhBu3N2PYYbVrrY13KC+3JkxnbzwD+vfo K5D4p6fbDwJ4gur9BdIYV8okH93IWAQjqAct0HFfrWaVYunJS7PQ6Z4mNFXv5/15HxYtuJdjuz+U ASGUff7c9/5V03hvQbJbO48QarDHJZWj7YNPYkfbJ8cISP4AOW/AfxZr+dI4xYiSin+Pbf8AI+fq 13Lz7/16hB4hs7q+vDr1ibuWTnzNgQhP4VCgYAGAAB2ArtPA2taVp/xH8OarCr2cBJtFs0bhGkG0 MM9eSmemcUsBTq0cbTxMn7t0/wDgfctDgim3d/1/S0/4B9WeP/jRofgrQtKjnupLqdriYfY7MAMZ QE+8c4H30P0J61+evxQ/aU8Y6j4ksvENjqF/pkNo2yPTLK4ZWZQO7A5bG4+gPpmv6DzHiWeXVoUc JK02tX/L5ebfXyNadSeGanB+9/Vz1L4WftGaN8R7UeFNfey0LWJ22W9/ft/olySeVmT+AncPmHfG Q3SvCvjpo9lZRnTpRIulrPI1vau2WsLheZLctySjLllP+ye3J/TcvzF55gajatJpqS7Ste68mtV5 6H3uBxazTByVTdfpr+f5ny5b6ffakLoW9nKsW8Rrd3GEUcd2OFB4PeoNR0mytXuE1PUIreOIANHE pBB9Oec9+ARnuK/JsI258kVdr7j4qnShq49/yOfl8QWdgjQ6TZrbJGCGnkxuIx1Iz04xySPYdD47 4o8RajqA3efKLWP7qjhFI67V6KOD0Ar67KsN7SopT6fm+xMarpVEo7P/AIH+Z4D4g1AzMIWfcW/g QDnnmsB2tpduY2Bxxx/n3r9aw1J0aUYxP3Hw0y9U8JUqVN20tu3/AA+vYqyxW7FgIiGXjcRwfTtV cWFmQCEVXYY5Ucf55rtp1qlNXTPt6mX0a7fOtb9rf1f8yI6XbYSRVABHA6YqpLplsDuUkk8khutd lLHzTOGpksIqy39f8yqdMDAgM+COAG5qq2nkEAGQZ/hyDmu+GM5tGePWypwV77/h1KcTNIUUqoji G5sEj6f0q6PMnkaR9k0kpy0jd69CaVPRHzeDk8SuX001t/wLaiSISQCrEgYAU1ZEKEplpEHZm5zz UuXKk7HtUqLbfM/mPe3jAULI57gutKACHClCVHRz0rGUlUVzeVP2Ts1e+goMh5AUA8goc4qRUUEs 4bbnOWX+dYTi4LQ6adWM3eT0JhGjlmyNwwNpPSpVj2kgLlR0bIxXLKTjdNnqwppPmS1f5f5IcIwA ocliOykVy2u6aQpu1XAPXaK6sBiPZ1VJ9Tx+IsA6+GnGOrST+7sd98KPEskEr6RM4KqQ6I5xuHcZ r9E/h94U8F+MbRGsdW1izvkAMthcujGM+xwCV9+tfE8dZXzYluOnNZ6/ifiONpqc/e6/0/6/yPYb f4FXEsavZ+IrOcYyJb+FlweP4hntTrX4ZeN9ImLQ2ceoW8an5tLkDjHfCnB/Svx/NMjrpStqn23O OSg01TV/6X9epDqmmanpZBu7G+tFmY+ZFPEVyOu4AjvjOfavTPgdJaWfjzTtXmnE6abaXF1GGIGS InKkA9wQOnFfLZNFwxdKM1f34p3/AMSCFKPtErWXT0X9bntnh7V57g+LtWmubhLy4v7Tw5FqEJJa GOSN5bp1/wBtkifkf3jTta1rTofFtjaaHPCLXQowiSwoYyre34Y/wr+j8xkqdCU6er2/9uf4WR9d m0ZLDKKf9af8E7rUNXudY0me1ju44rpn+0Q6jGg3JKpyrent9Ca4jw7rXhb4hanNLrsBsvEdmFju 9PkmEYuSv8WO/K4xnI/n+PcQ5dSx9WFCsvcn201V9fmn+CsfEOHs7O2l9n8j6G03XIbO3W2tbe3s bSKPYsNmoVTjpwMDOPbNdPFrMrwQQJcsHlYZiHyjGOOa9alg6VBKFNWS0S/r7/xOmFNdTA8R+GPD filDPrFvAb2QMn9pWuYyMLwMjqevBzjH418u+LfDOqeELmK2vY5ZdLvH8uLVYflSQ5+uA317DPav y/jLhuGHcsVh4q9/e+fX/P8A4DM6lFyXNLpcxFnSSOI27Ezl/kO/dsPXHT3HqPyruvB2ljxBeC0u tZ0nR7VMCV9SkAIYN0Ve5wB7cjJr88wWBqY2oqMbX9bW1u/w8vxMoQg2k3Zf1+p9ueFrDRPDml29 jokETRIOZ1Xmd88scdcknp64Fdza3hlYMFijklPG0Hgf59Pav3jAYCGW0oYektFs+/W773ep10Vd rqv8iSe9t7eJ7q4nS3tIF3PNcMAqcnqT9K8+n8cy6iJ28K6LqPiGVjtM8Z8i3JBH/LV+Md8gHoa5 8wzGGBilK7k72S3fp5eZvOTm7Reh5pqp+K+o3sW+TwhpkFuDi1TzJHbI6FiMdSfTp+NcLq/i+LQ9 Qa01JNK8T6nbv5UohsIYoi+CGDEqXbGewU5718dxDjMRQo+0x1OKp3SUbczb167LS+vSxDj7J35v 6/4Gx4D8V/HFtJqt+G8L6DHFK3mmdLUM43DPDsc4x7Z9a8Ck+IUd1bx2g05Gs7VzJHZKf3QY/wAR jHy5/CvXwmOqzwyWGShFq2l7vdb3du2lr79WYRxFX2SipaeRi6l42bVI0hvrKJY16fZxtwPoKteG /D9z4quWg0q2uPKQZkuH4WJepLE8AU8JlbpLko63/UxoUG5Nv+v67nfPp+m6bKmg+Hbc6tqcwCSa sifcbuE/xrK1t/D/AITgNsjjUNfckyXQj3eU2MYB9eTzXuNNp04tcseumr2/ryXme3Vbp0FCWr3O Usr2KaGS6mkg8xCSGuEHGPb8TWdP4hZwgdbdlU4xECP896+Zq4Z16suZv9P61R4sISqNt/15epc0 +yl1uQ+TassScmUMcKPUmtsR6Pp7iOxQXV4eGuj0B/2R3+te1QpSoU+Zyv0/r8bnq4Ol7NOTRYj0 zTYit1ql00SjBMc2Nz/QU678SaLawulhZI6RLgAd65sQ53ck9+vT9RYvGt6RW3/Df1/w5xh10zmV ktVUNkE7M4zVC4kW5j+aJllOOIzj+dZPDckua99vyPmq1Zymot2/r8+xnvZxEJHLDc89wo/XFPh0 xpWAEOwKfuEe38q1niXBPXToNQs+VaLr8rfj2OgaHQtLtTJdEGVRnyxjOceleEfEnxTawaPejTrS 1t1lBHmuSWP07VtkeGq4/EJy2b2/roejhVKclTS8/Pp6m3+wnpssXij4jeLbgwolnpM1qlzOm7Dy hlwD2zkLn/a96+6pZJIy+26mkZwSwRDjbjrkf54r5bxmlDEZz7Of2Ypb+V/1PQx8+bENSWyXz3f6 /kVRdlmiiknihtYWO3Kjg4PPbnI47VQubuFZDFp8bykNkCcHbG+CMDOAR+A7V+fU8G5e9J6em4qN N1Hq9u3r/wAMQTWwIha6l3mTJDRHGSfUHPOCK1LHVdQ0GaW50e/v7K7LH95DIf3g688AfgRiupV5 4apB0Xytf8Pvqa163slzdj3Xwl8db21+zw+JrKDUElId9S00CN15w2V+6RwPSum+LfjrTde0TQdM 0DUor2G+H2yRogdyKpwgZexzuzkfw19RT4vWOwNeFVfvOXTzvZW9ddTxK2LU7Jvp/X9dj51tpZ5H WOOBnkb5I4VyASeBj9eK7XxNfJaPa6FC0Cjw9EsDyuCQ02d0568/MSvfIRfrX5YqTpylZX0/P/Ox wKp7Vcy3Rw2qT2kojZQAVbDiNfu8j7o7dPpXFXuvWtmsdzLeR2whJkV5CAw9wT34HNejl1Oc3yrW /Q2o0JNWX9b6+n/DnCa58T31jQrTw74aSPULmK7nup9TvmYRqSqKpJyf7re/Q1zOl+HotTkNxqjz +ILuMFmtIQRH7Kqr1yPftX6L7P8AsijZ6VN2+123829D050Yxs07Nb7HaXej+JtF0/TXs9NsfDWm W9zFM1vKY4jdEMMJsJ5JIXtz78VsfGzxJph1mytbYXN5JAlrc3dtdqMicRMH55/vBfpX6R4V42nV wuLlG7Ss3J9X5d9GerklZRpVVHVWf9XPmTW/E+pyuRY3LQysCNlsW3EZ5Bf7x798VxGpXyRIYUBl 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 T//Z ------=_NextPart_000_0F3B_016DE9EB.15485340 Content-Type: image/jpeg; name="IMG_5920.jpg" Content-Transfer-Encoding: base64 Content-ID: <00038C7AA36F_0AACBF3F_0EB8B19D> /9j/4bDiRXhpZgAASUkqAAgAAAAKAA8BAgARAAAAhgAAABABAgANAAAAlwAAABIBAwABAAAAAQAA ABoBBQABAAAApAAAABsBBQABAAAArAAAACgBAwABAAAAAgAAADEBAgAcAAAAtAAAADIBAgAUAAAA 0AAAABMCAwABAAAAAQAAAGmHBAABAAAA5AAAAJGkAABCZW5RIENvcnBvcmF0aW9uAEJlblEgREMg VDgwMABIAAAAAQAAAEgAAAABAAAAQUNEIFN5c3RlbXMgRGlnaXRhbCBJbWFnaW5nADIwMTE6MDc6 MDQgMTM6MTI6MTMAIgCaggUAAQAAAIICAACdggUAAQAAAIoCAAAiiAMAAQAAAAIAAAAniAMAAQAA AGQAAAAAkAcABAAAADAyMjADkAIAFAAAAJICAAAEkAIAFAAAAKYCAAABkQcABAAAAAECAwACkQUA AQAAALoCAAAEkgoAAQAAAMICAAAFkgUAAQAAAMoCAAAHkgMAAQAAAAUAAAAIkgMAAQAAAAAAAAAJ kgMAAQAAABkAAAAKkgUAAQAAANICAAB8kgcAAIAAANoCAACGkgcAkSEAANqCAACQkgIABAAAADI1 MAAAoAcABAAAADAxMDABoAMAAQAAAAEAAAACoAQAAQAAAOABAAADoAQAAQAAAIACAAAFoAQAAQAA AGukAAABowcAAQAAAAEAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUA AQAAAImkAAAFpAMAAQAAACUAAAAGpAMAAQAAAAAAAAAIpAMAAQAAAAEAAAAJpAMAAQAAAAIAAAAK pAMAAQAAAAAAAAAMpAMAAQAAAAIAAAAAAAAAAQAAACgAAAAbAAAACgAAADIwMTE6MDY6MzAgMDk6 NTY6MzEAMjAxMTowNjozMCAwOTo1NjozMQCYYg8AALAEAAAAAAADAAAAHQAAAAoAAAA+AAAACgAA AEFPQwBJSQUAAQADAAEAAAAEAAAAAgADAAIAAABAAfAAAwAEAAEAAADMYwAABAAEAAEAAAAqBQAA BQAEAAEAAACwKwEABgADAAEAAAAAAAAABwADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2P/bAIQAAgEBAgEBAgIBAgICAgIDBQMDAwMD BwUFBAUIBwgICAcICAkKDQsJCQwKCAgLDwsMDQ4PDw8JCxAREA4RDQ4PDgECAgIDAwMGAwMGDgkI CQ4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4O/8QBogAA AQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsQ AAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYX GBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz 9PX29/j5+hEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/8AAEQgA8AFAAwEhAAIRAQMRAf/aAAwDAQACEQMRAD8A5my0polDHAIH 5Vo22n7VVcblYdPT8a+taR8BCPUsW2nMsh3BWA5C45FSpZEMzOgBBzwOn51LQMtR2JJLyKSeP/1U gsWmfk4z146f5xXk5pmiwUac5RupSUfS/V+SOzA4OWIcop2sm/WxILQZBKrg/wA6ellxjZkHua9O xzvawqWJOPLUbs9cfyoOlg4TaDjvjinJCcbkTaeJXAB2gfLimNpoY4CnAzz71x0qNVVajnO8Xayt tpqvO71OubpuKSVn18xhsRGuUGcfkKhl04SFSVHzjOfWlSwdGFSdaEfena7720X3BKtOcY05vSO3 z1I3sg7NtAAxmoJNOEa5wCPQ1s0TpuQSWOd3A/Cq8thkZcYHT6VDVhqNyld2eFAfAAznvWVfWAdc dfWsWrO50RVjGvLPKNlSAaz5rDeWGB1+tceJ540pSpK8knbzfQ7KNOLmufYpT6fhmBGQfasLXNPV Q4UAMR6UVdI3NIbo+XP2k9PFp471FSckOjc+6qf615Tdw5AwBzXyFRv20/U/RsFTX1Wm/IhuLYNa FvTH9aovas7OwACjmtaMtDGvTlzDUgYn5QMCpUtmIICk44rVysRGnJkiaeVGXIGfSnGAIx3AAe/p WLnfY6FS5I+8RKmxPk5pPLLOcjJq7XdyGrJR6AbRcEnBz0pscIAxgcUubQpU9VJIkktv3QJA6VBJ b/KQQMilCRpODttqQyxDHA5NEMWQcitVLQ51CLZ+0FnZhS29SVBwcdKfHdeWzC3UMpHU19zjsaqE L9WfjK0iathCZoQ6oF3ngdf89KmWywThQxP61tQqOpTjOXUtWJ1tRIgIXAY+mBThaYDFlAXbkc1U lcqMraoRbHBUsRhvfigQeZkDaM5zt6UdbF2FjhLkgDGO1KbcsedxGPSm0xJdhhtVziTcTn65qNoP lOwZb0FQ/I0QTQbExgKRxioWtwnLDHf0pNDW5XlhyScZz+tRG2Gw8Y7jnFc1PE06lSdOO8HZ/NX+ e50ypOEVN7P/AIYhktCAAVwPp1qtcWig8ZPrXNm9edLB1q1N6qMmvVJmmChGdeEJbNr7jPvLbLHY AAOfrWTd25J4GAf0rgyPMZY7AU8XNWct7d07fja514/CqhiJUVsjKurXJy+NuPwFZ13AqjBAwDXo OzV4szjGzKc9qC2CQK5vxVp7KBJCTuU49zXJi4c1Jo3hG7R8wftRwL/wnF+xHDLGQf8AgKj+lePX MQwAOK+PqT5qkn5n6Xl6vhIX7IgmT/iXHnoV/rUdtAksZEilgV7GtVKyuu5apxlPll2JBGscYV8A DoMcGlVTK+BwDUu7XMzSEYw92JDOGErAHAXvTWtwzZJ5IrVaJNHPUjzSaHG2Cr81KsJIAjBpSnfU 1hSUdXuOFiWHz/KKieFY2wOazVS+iNpULLnkSSIDbjaeKqvESwwDzVU2TiYK2pHLDggAj8qS2g3M wWtObQ53T95Jn7VwWHmRurJkt196ktfD4iYNIC3cL619/isFGu1zPY/DlG6szRFnnKrx/nvUkFqU YAkY/nXYopKyG1rqSpbkp0LYPTHBGaIk3RtkZA6j2qWikSCMO6jGCD1pWt8AmEgkYyfUVK2LuNS3 3EbeDQbIsjAZwOvFfO8OcRUs3oOpBcsouzV7+j9H/menmWWzwdRJu6ezI5IdzqRzj2qNot/PTPBJ FfQtM89Wegj27KCFJ56j/P41VuUdZCbdVIB57Vy4v23spPD25ul9jow/s3Uiqvw31tuK0AZjgj5u vNQSW+TzgZ6fStbdyNyKWAs2Oaqz225iT074qKkFKPLJXTNKbaem5nXVsADgcGsm/tixwFywrno4 eFGmqVJWS2OmdWdWbqTd2zLuLbKABQM+9Ubqy3AEHB/Os6VCNKnGlDZJL5I2qTcpOct2UbuzAB6E GsDxBbb4m2ipqpWZtSfvJHy1+1nDt8e3SoAA1vE2B74rxa5iMZG/gZ6fjXw1b+NP1P03LlfCQ9P8 yvcxhNNkyD2NRpEY4DjGfLLZH0q46wNJRaqWW9htupeIF8lqtRREOCM9KKm5eHi9Lle8hKFsAEda jQEEFh1Herg7wuZVrqr5DlGTz0p6vtb5QPapnE2pu48iSXJIO38gPxqB4lVsKQSD2Of1qIpLQ0nK +rJNg+yDI5INVpE5QIDnNFNu7Jqx9y67Ec8RDHA6U2I+QCT3rTdGcnyyu0ftxaQBArKDuI5PpVyK IpwM4r9SR+DJbEqwBTyMED/JqVbcOoBAGevvSbFfUelurKAVPOBTZIliiO7JJyMevNYV6qp05VHs lf7jajBzmo99B6w4Usc7jzmlWAuCoAyKnC141qUa0NpJP71cutSlSqSpy3Tt9wCEKVDAEt+lRJJm 6MZBAAznPXNfJ5TklLIKT9l77qTS7WTdl32ve/W57OJxc8yn73u8sW/uWv32+Q7yCVw3WozCcEsM kcc19gzxU7siZMHDAg1E8e0EDg+9S0UtCN4yi5G3FQSQqWPmc/4VBoxkkGWITJI/nVaeIFiWAJz1 zUPVlJmZeptJXHHesu6tkjjbZjk88da8+lOliVGsl8MpW9VzRf6noLnoN07/ABJfc7NfoZl5a+W5 OCM8/SqdzbbDuYHJ6iuhoFaxnXUBJJXJPUe1Y2s2+bZs7eneuZKfJLn8/u6G8ZLmVj5Z/a8tPJ8Y SyJje1pESMdPmP8AhXhd2xYkdcV8NiX/ALRP1P1DKFfCQ7DLaItazhgeEH/oQquU3JJgY+R+v0qU /dO2cbtkVlzGobHWrwjIcbcmrq/ERhVeOjKt8P3jqSMgVDwEUN0IrWmnyo5sRJe0uLH85O1SPxps rbRk5U+wp8uonPRrZDUc7H3ZyR1NLAgAGDkkmiStcqM7tJFi3UmJsk81XlUk8E5Xn6Vzx0nods4v 2f3kboWbLjJFRtbMeWGAKtSSMpU5TfqfuBaxiMkR/wAPf2qzEhdRtAP1r9VjrY/n9NWRKtuFOXAw fapVgYr85OO30oa10GtR724+bB7kU5YTN8pUNu9alq6sOLaeg4WyspAB4FKYNjAMpIPTFc+JnKjQ lKjC7S0S622RvTSnNKpK193+orWoRWCkfjxTRa4XDgFR+HFVSnKcFOSs2tu3/DCmuWTUXcjktmU7 /m2kf54qN4gSQFwK0E2QSQ4Ybgc96hkiIztKn+dQ0Uoohkh2A7ADj0qJosDJIJI4qGzS92RbCx69 etVp1KnaDgNU2HEzr5QSCCR6/Ws64twygMD+PesoxSVoqx1RbbV2ZtzGXDMx5UcnvVK4twpJOf8A CpkuxqjMvBsRgmVJOM461k6jCJI2bJIAwc1jOOl2aw30PmL9sqyC+KImQff06Ns/8Dcf0r54uImE hAzX53iKsalaU47OzXzSP1vJotYOMeq/zZJZKTbXOcjEfbv8y1QbLO4XJyrD9DVU1eJ11JWd2R2s ZAG4HBxV+MBnGTjA71pVfVGOHWlivqESvNwp4GTVWdRhMnk1vQtZHLjHeUmhuzeOQaVUzkqOPatW +hhCKa1FSDJOFAApyxBIznOSaxnO2jOynDqSpESgCkgU2SNUBycmuZvWyO+NOMVeRG7BVwgJBqF2 OPlHNVFdzKU5PSOx+4ECFWBVQQRV2JCy4VM49CK/W0fzzHRaEsKEbQQRx3U9asJbKykDBx+lQtwS 6ki2+XBZQfWpYrQIMgHgc0mioysDWu05wQGI5pSioAAMjHFIbQqW3mqTnGD0pjWuQxbncMjmlsUQ W6mWEuwCknoKZJbgck5B/WoqTjCLnN2SNIwbdo7kUtiwPIOefxqpPaMsfygZxxWeGrwrUo1qe0km vR6hOnKnJwlutCjpqF9yk528j/CntBkAjgDiuLLJOdBc+6CnLSxBJAWcgAgH3qrcRhVJGM12tl2u Z9xGCxLYOP1qjOm+MggjP+TWVjoi3bQzZ7YIGyAe1Z2quIVLOMse3Y1hWqckXJ9DZbHz98Zv239D +HutPpuh6Xc65PBJtuJIplSJMdQrYJYg9sY964WX/gohBcSuk3hQxptLqTqXJwOM5j7156xrnBWj ud9LCyaU27HF/Gv4y6X8Y2W/0O2vbVbazWOVbhBwQ7HIIJyPmH+FeV6Xod34q1aGy8OWl1e3N02y KOKEkufQV8liMFUqYicoKyP0TKcfSoYOMa0tTR134ca14KSdPFWk6jprOvAuYGTPIPGRXOSBSygA gkMM+vWsvZyhpLf/AIY9R1oS9+D0t+rILVR5YI6Zq3bugJ3soIHc4omr6IVGS0bfYhupEdjsIwBj p1psFitzHly3y549elbQk4RIqL2tSyeg6809IwyxLgfnUMUAxg5J9PyqI1G46lOhGE12JBCFibGa iYbIjjg5Hb61Ld3Y1lG0VYcNuzLliBTJCiPjIx6dahmznFIiluEUgEOcenH+NVZZS6gRgKfzrSEE tznrVOZcq0P3NtodgVQc4H5VajhEaEIynI3HHUV+sSkup/PkdkTwxkpndlhweKsRRl1DNyzcHPFD QO5MIwBhF64qQW67MKrKR1GetYqcZNpPbf8AP8mmbtNJPuOS1LkZJ57EcULat5ZcKrEdKpKxNurE dGjiBKFifSgNjCsrDPGcdalvuWlfYhdY4xtiKDPPXFNa1BPyhTms69GnWpSpVFeMlZrumXSlKE1N aNDZINxAI61C9mNpJx+fWscFhlh8PTw8XdRSX3Kxdao6tSVV9W2U10tIXZ0H3ux/pUMtrgegPJ56 VdOkoXt1M0raFaeAlSWGe9U57fKksvQ1lVrck4Qt8T+7Rv8AQ2jC6cr7f8BFG6tg2QwwevXpWZdW +0LgjiqNIs5D4q+MH+H/AIG1TVLS1F7cWUDSxW+7b5jAdM9fyBNfJnx0/aM+K8PhOC58TaOnhHSd aLpZyfY3SWZQBu2tIeQARllUdR0zXl42vB3pdz2MHl8qtN1baL+tzyb9n34Ea3+0h8RV8O+DJLKC 6e3e4ea7dliiRSOWKhj1IHTqRX0x4H/4I/8AxM8OeLI7/TrPwJqy2P715L3UWNvJx3G0Pxn06ivG r4pU9EtdP8v+CevRw8Z3cpcv/Dr8r3+T6n1no/8AwTVk+Ivwqk0r4q6jpmkQXUaG5GkW6jGGDAI7 Z6EDnHPpzVzTP+CSfwl8A+EY7ldH8Rag5kxFqh1aWK4jcchlCFUHt8vao+tSUbI7LUo8yXvPu/8A I8u+Kn7FHizwsZpvhV4lTxt4cKYu9A8TQgSbD/01C/gCQBnqa+Mf2uP2TW+Fa2niHwzYXllo+oMU msLlT5tlMOXiPr6g9COQTjNclWPOm1/w3l6Hbga8KdlDRPRrz7/o/kfOcCTyMQqvtPtgVbg011zv Zcgdjn+VZSlCOx6tCNSpuTLYAICxY8VatIFSEgA8VzVZ+7oerh6PLO8mF5b/ALnIzgVV8jIyx6// AFqinJ2ZpVgk18hCpSNiQPlqAK0qZwWJI6D61UXq2TVTikhj2kjLujT9aRrVwB5hVc05TWxSjJvm jsMazAzycn2qu1uqDAB49+tJVGROh9pn7oWaAqykkE8j2qK5Ux6i5Xqp4+lfpWbOao+7pqj+dl8K Na3jDgEEgN0qzDCApLHr1rvhJSipLZlkpiLEFe1SCLYxKgED3rxsDl1WjjsViZy92o42Xa0Um/m/ yR6FfExnQpUorWN7/N/195IY8OoBPPUdqe7hshhuP64r2LHInqMkjXcvkgc9utMERO4v7c5qWior URYxLHhgPcmo5bWOX5ig3DoKloty7EBtgjHaWXI9f8aY0UigeY4ZRx92paBJFeaGRgGTaCB3NUpo rgKCABjjiocn1K5bqxDHHIS5uDgD1HFNa2VmbABx+tTzofLYzru1AJyMZ4yKq6ZoY1zXo7YF0ghi e8u3QZaOBMA4HdmZkRR3ZxWNeooQcmdFCDlJRPSPgv8AAuHUI9S8SeMTawiWNorCIj93bQrnMquf UggN3C7v4sD8kf25fj+3x6+PGpS6bfm90LRXbTtJIPyvCrH94BgffbLZxnBUdq+IwMY1a0sRe7lr ffTpZ9nv82foeaQhRhDC0toJJ6Na7yun1Tbj/wBuo+nP+CMnwhSLwv4r8YapAxlvZ00u1fphEAeT HsS0f/fFfb0enPp8he18tgTnDAZz+H+FXiFeoeZD4S5d+NEs4YWWCaGYcTc5Vx6jOMGvUfh98RoP FelJpdzBbyuYvkDYHmAeqnkfWog7Mpu2pxfxt8DQaDavqPhy6+w3MHMcRXehz1Dc8ocAEYPX6V8Y /wDBVn4kRfCPwfotnbaBDOfFVr9uXdc/8eUsJRgFG35uHdevQ4xWsIXmka05tRdumv3Hkng74GfD H9qz4OWHi7SfDr6Be37tBci3/d+XKhAdwFO0rznoDyMgVznxM/4JftBHt+Gmrtb3qqNsOpsDBc5/ 55zKo2n/AGHXv941xvD336f8MfYYRzjgvbT7/h/X5eh88fEb9mzxv8KtRNv418PajatuwHWPzEb6 MuRXJjTJ7KZkvoniZequpBH4GuarHlTR14aaq2lF3TFuY99vz1xmqBTDnaM8VhTe511lflYixkow bgHNQpEUDAHrVRsmZSheKZIwzwe9R3EHlqMEKTWbZ08jauyARgt+8/KiRY1BxtGKcm/smajBL3z9 ybYBThhkMOuOpp0mmm8cGIBWGcgdxX65iaPtKbifzZCL5dTQhtzHGAoBAxn3NWETChWzz6VrTjyx UexUdyRV2kg596ljQbjtUMemcVVjRIdsB4j4J4Pt+NDW6qwVgdw4BJqbA/IDENuRjJ554pjRsQVc AfrXDiKteOIp04U7wd+Z32stPW50U4U3TlKTs1a3n3+4R4Qjk/KD05qGSIhfnyM9667ELuNdQQMC opBgk4G49iaSQW7EbwlupXJ6c9ahkjxwoPHNZyXYpFR4C7YOcmoJbcOm4ADHeuOjiqNWUqdKSbi7 PyNalKcEpSWj2KF3b5IxkY9D1qT9iPWYfj54g+Jtk1ilvpvh7WrOyN5JckPctAGYQmNVOIxKxkLb vmwgwMGuXNHy0HZb6Hp5PdYqM+2pzP8AwV8/aXuf2fPgXJ4J8OXMsOseNY2tS4OCloMCVl9AwIj+ jH0r8h7PS5dU1OOCzSSSaZgqooyWJIAA9a8PDwSTPosRUlOV3q3qfuj+zF+yGvwH/Z18MeGrNkj1 ewtA+oZYFZbl/nlIYejMQM9gK1NX02fRLxoNWSSCRecE8H3BrjcbtspWRnX6nyjs2sDXP3c8ml3K zWY8sodw2kjB9QR0PvUON0TJmtqXi7VPGX2LTbW+uNSWcb3hkGZY2B4XcPvL1Izz8vWvnr/grh8G PE3xnuvhTovwv0O/1nUU0rV5Z0hTJHliN5Cc9MDceaIVo0vek+qX36fqb4aMpStTjfSWnlZ3fyWv ojT/AOCR/wCzlc+IP2BNWXxnBeaddW/iW6uLPzYdpaPyoFLIT1XIcZ6ZBHrXsnhPwzp1xHceAfGg ie5kydMkbCtMMMSg/wBoAHAHYYrbEVY01zPZM9Z42pUwywcVtr92p5NrOhw6RqFz4P8Aiin2q3tp tkDXQzuXOU5PKnHQ+ox2582+Ovwgt/Cdw5vJbW702ZQ0DXqKcr/dJPUj0PUfiK5qlNJnd70KtOdN XjPVJd3vb5/oeB3GteALi8ks/id8PoHiik8v+0dMPljHGciIhT16j9a6y+/4J9eA/iP4fOo/CHXt Rs/Oj3oZ3WWNO+1lIDA+uTXk08VSlUdNq0jpxGPnCq4TumuklZ26fJ/qj5E+I3g26+Gniu90fW3g kltHK+bBIHjcdipFc7bTq8uGJIz6Vo1Zs9arCpHljKLT7PfXUtmQLkckH8Kgd95xwBWC3udK59mQ yxgYB4B/WoZkMgwCAK1i9DmqQinofujaqSQHJYHvVyM7S208+mK/ZGfzfT1irk6wgYweM1KqsTsc 8daTZVyZU6EchuxqRVBJQkHPQ4pNFRHomxm5bJPHeo0maWdopVACgHdXn5hi50IwcI3vKK9E3a52 YShCrKSk7WTf3K9hzYJYPwR0+lDJnG0EZ9a2hi6M6kqUJJyja67X2v6mUqNRJTktHt5kVxBugKqc H/64pUiUDYxJBHP1rKOHn9ZdVS92yVvNNu/42+Rs60fYKny63vfytsNeMK2AMntUMiAnI6V1MwSI mtyrn2/SoJIwwIOQelQy0rleWPacDOaqPGpj5559OK5KeGhSnOcFrN3frZL8kjSdWUoxT2Wn43/U p30RG4pgnisn/gl54Xufh1ofxP1jxdPDY22peK7qcO7/AOrjT5XL54HTP09K481X7n5noZU/3y9D 83f28f2lrj9q39pTX/Eks8j6VFIbLSUP/LOzjJCcdi2S5Hq5rvf+CQ/7MMn7QX7XWlXmpwJLoPgv brN75hwryIw8iP6mTBx3VGrw1pT91n0and7H7bXGlR2tozSRNbIO4PP1Brjr+O28SPNpviKONbgZ Cysu0n0I9/WuZLlNL3RwPiX4c3Ok3ka6XKZI5AzEOMbcY/xrMtNBsL6NodYWeK7U5xuwrL7cdaqx E4mb4HsYfDfxuMFs0oi8qCcFjyF/fgj9K7cL9v8AjB4blvUP2iTS/EWckfu1FnJhfx615GcpeySf 80P/AEpDhXnRvOno7NfJqz+9Nod/wT1tJLn9irwvby7TFJHebc9h9qlH9a86/bI+HV74YvNP1KzT Go6ZdQ3loyyFNxBB4YEYOO/r14rrxOG9vhalD+ZSX33Payqs6OZUqyW0k/xOB+Ms+p/GTx7Fb+ND Fa3fyW8EkMQCSxtgbgepO7kgng9OMV5Z4lt7/wCI3w38WfDj4l2Ug17RhKlsWB3SBGJV1zyy8ZB/ xr4fJs7xn9p4nA5h0nHkf92cW0vO3LZv+Zn6fVy/Bf2ThMVgXZxi5P8AxQlHm+9yvbblVz5r07wk 9h4LWLSFmhmlj8q6iiT5HkVivzDPGeOcZ5PPrN8FrHUo/Dupp4e1K4sX1CNoZIgeGTJxu9GHYjpz 6mtuLas8swkMXSWq0+f9X+8/RaeT4fFY+eJrwjJOE4vu05RcX/26lo99V0M742fAnw/4g8Jyp4OW 5XxBBD9ojjmcb2A+8pX8OD0r5XVtkzhU2N15ryeDM2r42jUWIeq1T7p3/VM+R42p16mIhi6iV5aa baf1+HkT2waV380jI54p5UqThjxX2F9T5GMGtWyaa2UxKQBkqD+lZV/O02rSmUk/McHPTBqsNP3m jPMqSXI11/4B+7lkpmVcrnnGcdOlWx8o3SbAR/Kv2ZvU/myD0JIyFUbwcHpxU0abkBTAz69qm5TX mTKgQhmwD0oRcEYJJxmi5UUStlgCAc5zTpTllK5Gf0pDt2ICjgnABIqR3yqltxB4xX5nwlhMfQzf FfXE9ettHZ6NPbZ7H1ObVsPUwdH2LWnTqtP8xBDuBYHg57UPH85K8H3NfpN+x85cjdcliOmO9QuW wNwHHf6VLQJ6GXNevPOqwAbSfTrU0kmQScc968zB4mVaU29uhMZNvUhm+ZjjGcZ6VXnQAgAV2yRo tClfryQpwRXzt+1F8fovgr+xH4g0nS5FXXvHfirVtOiIIzHapIvnuPqGCf8AAz6V5uZxvRXqj1Mr a9v8mfnJbTG6uWI5J6V+2X/BKz9m+b9l39mnTbrU7cDXvFwXVdWhkX5lUj91F6gqhyQejM1eDiJ6 We59FFXd0fXekatBc27PpcheN+HifnbWJ458Ax+NA02kotvexj5oyc7x2IPrXOndWZT3ueb2F1Po txNZawzgOMQl+Qr5+7z0B6VzXiuW4WdJEhgks4yBIpj5Q9Dn05pw0ZTVzmvHkI0vxnourqhEEzfY 51zwM/OmT6cOP+BV6FoPhW/1T4keHvEUG5tJXRvEMZkY5PmPBd7R+CxfrXBj8PzxUY73i/uf/AKq UVNJXtp+Wv47eo/9gvTjc/sH+HGsQfNgW6JAPJH2qU/4V2X7TvgdfGXw202W6QrcxxocleuB/hXb R0jbzf5nqxrRpw5re8p3+X9I+Rfive+IvDPhaF/ArTrd6ZdAkxoGeS22sGQjB6ZUn2Ge1c7440bx Dfjwfq3giz1DElnFG0BlLFCxJclT05OQ3THBr8v4pwuNeaqthItuFO8bdbVY8y8/d6fcfpnB/wDZ 88rVLFyS56rUr9E6UuWXlaV7P79j57/aQ8PL8OviFIl08pGuWxuz5S7d7ZIkUD+8CAfxry34W+No dF8VXMdq8t1bzHcxAIY+uQfp+nevqeKaVLFZdVw0tH/lr/XzPraWPxK4XWZYCylTi7X/AJYNpp+s V99j0jxXNZa/p3naRcTWtyqEx3MEmCB3Ge4r4q+IVjHpXj7U4onMqiZsN656/wAzX5xwJhqlDF1K M19l27rVaHzVTiWOdZHHENctSE0pL5Ss/R/mmjNtJCs+B3FSnDqQ3UZr9KluebS977y5ADLabMqW HTPQise8Rlu3aTGWJ6VOHl77RpjaV6UZLofu9aHeSUAA6j3NTQkCAbwxzk9a/a5bH8u0lofnx+2t +0Zqni/9rPQvD2j61eaPoXhnVLeCV7Wcp+8MiCR2IPzbRkc9Np9TX6LRAhgqAkYH4V5WV169VSlX jyvt23PVzGhClCmqbutdfuHKGZcYQEnrinxYYZUgMv616p5qbsSRkuhwSCM4pAo4HIApDEf73GQO 9IZMyfKTgccDtUsaDcCrBMZY+tK7YDEsCAaRSVyG4UBhk5NRNGJIuCSDx9KljXkVxapASYVAamSK AV2H7xrClRjTXLBWKil0KkgYuQ3OfTvUc645Hy471TGZuqXK2NrJPduiQxKXkZuigDk1+Sv7SvxU k+KfxK1O7tZpZNNS7uPsKH+GN5nkzj1JYn8q87Mpe4o92ehlsL1brseyf8Emv2TG/aX/AGjba78Q 2rT+FvCBTUdTJHyyOD+5h/4EwyR/dVq/aZCNLIS5LRxsMKy9/bNfN1pe9yn1MIpJMqi8uYL0y2hS K4JwrIfkkx/C3oa29C8erqciwTAW9/F/yyY4yfY1kimkP1a10fxlayWOuBLa/lPyKwAOfVT3+leP +NfD+q+AdccGT7RDcJteNj1HZgfUcZHena68xQ0dmcv8YdFtdI+Gdxc6pqNvaeXH58e6YeUjqdys zk4Chgp69K9Q+BOsf27+zz4Z1CxuBc2N7pWr3sMm4HMUllevHgjqNpqJNyaudFeE5UuZL3U7fN/8 Mcr/AME+NSvrH9j62Hh+Fbq7SwvJIYGPyvIJZSoPtnA/GvXvjV47Gh/AK2vPE9okeq3dlGVs93Kz FQSM+grKriIUKEq1V2jFNv0WrPbxOEw8qPtZStL3NP7tp80vlaP3nxN8Mf2gP+Fg+JL+x1G0Nlqu kzbpWTO3IIAIz7EV6/bahD491hVCxw6la2+4IOkvXlffrxXnZPmccfhlilG1/n5/qcdCdPmVWlez jJpPdaNfoeA/tX/B7RfiN4bjufENndSXOlzHy/szbZkYleh9OB/OvkH4r/ADXPh08GrQWxsvNkR4 4nbDMuSpLH1GRnjHerx+GnWkqVON+ZO79NtPO7+Vz9M4DzmdTByyTEJOnU543vqrx2Xrq/v+aa/4 X8S6Wkdza2MsSyx7n2MrIxPcY4+tfNnxnlaXx9M0sRgdkUup7MOD/Kvm8vyWrha0akl3Xr/X+Zyz 4E/svKo46jifaczXPG1kviSeuuj0+ehzkAIlBxzg5p8almcLz+PWvXk9RUnay63LluS8aiFgJI/X vWdqSMTvGMgk8VjSa9odOIu6Vv60P3YikKuqqu7aOlVfFHiKPwr4V1PVb8DytOtZbl8+iKWr9ixO JrQxFKnCneMr3f8ALZaffsfy/Qp03SlKUrNbLv3Px/bSLz41fE6C3vJdl14o1tLUzHorSSKM/gZC a/ZfSoI9KsLe3Z5GSGMJluScDHPvWGWyfvxfl+p6uYpQoU6S2/yLxkLqpVhtzn9KkBGQMJtHYnGT XonkLbQRX3MFTAY9STT1UbmGTmhsCO6uEtVy2Tn2pkdykwxC2OKTQ12EeQoCz5wMfiKRCSxLEgD1 ry8xwU69SjKE3Hkld2bV0k9PRu1/I68NiFTU043urfPv+YyVw4Ltj5ajwGi43DPOfavQaOYjlcmM ZUZIyMcVFKfkBIIzzUtlorSjbjGCen8qgdSpAJOT2rNsqz6nzz/wUS+NX/CqvgZc2Glvs1TxKTYQ 4PKx4zI35cf8CFfmtY6XP4g1a3stKhluLq6kEUUca5Z3JwFA7kkivnK1Ss69WNT4U1y+nLG/43Po cDThGnGa7a/e/wBD9tv2Jv2ZR+w98ANF09JYbjV9WxfaxJEOtwyjKbu6oMKPoTjk17e/xQtNT0qW 0vI2jMq4JZeh/CvKTUm2e26dtC74X1Sys/Ds6afNDLco27JyC2eK5XxnqEU9m00DNbX1u2V4+Y+3 HX60raiXw2K9n42k+JWlRrEwTXNK+cIR/wAfCjgr9cf56UzXfFJ8QaHbu0rpcxSERZb97Gw6r+GO h/D3OthuF9T5X/4KkeGNC1X9lc+JfEMM0HiLTrxILCS3+WGbLYbcvrgn8uK+rv2XUGjfsT/Dq02o Ps3w8eYY99Hnz+pP51yqMViW1u1+uh9djK9WfC9KlJe7GtO3zhFtf1+hlfsTeINT8P8A7LfgOLwv YQXiXsssN6zNgxRGaU7h9P8AI5r1L4x/s5XPxMsFuW1+6E5hAjjddsSqR0GOR9a5syy9Y3BTwspW 5r7ev5f8N1PJqRwsMOpSbcpOSa/lXu2a73vJfKx8i+K/2Pbv9nbx/o2vHUS9rrGoi21H7PIcgMjB BtYEOCeGzg+nPNP+IPilvgT4+hvPFbvL4cvlEEVzHhfs7cFSW+vc+tY5JhPqdFYSTu4pNtaLqtvR HoZLhcLWnRwFF3clKKb096W3fTWy1Mn4zfFeHTvDzeIPD0sWoWvyrM4+VkkIOxmHocEE+9eA/tC/ tFaX8SIdH0yTTSZLld80rt/q26YHqCP6U8XnFDCYmNGV7yV12/rqfQ8IZFF59hsBVk4Vottq2nup y0fmkvx12OW+Ffjuey1ZdI19Le80l38vJb5ol6bmU8dDncp9civmL9tDw/Ho/wAbp0tFjiQxq4G8 ZIycfXjFexVg1Tlfo9D9E4upexwtWK0UlqvSUf8Ag/KyPMYmCuCQSKkt2DuxQcivnWj4aMrtW7iz lkkDRiluYvNQMo4IGfyqU0ldGsozbdz907YbmQHcTnOT39685/bJ1s6H+zB4zmhOx309rf0P7wqn /s1fs1edqcpdkz+XKadj8rZNQuvC/hzTNW0hzBeW80l5BKOqSI/yn8Cor7i+AX/BW2D4s/EHw54Y 1vwReW93rdxDZfaLa9EwWRyFBEewHBYjjPfvXj4XExp1HGS3t/Vj6vG4D20I2dmj7CGoPbEm40/W I8DHOnykfotRR+JYrdSZ7bVFJ4506f8A+Jru+v0O/wCDPGWX1/5fxX+Y1fGVpszdC9jYdM2Uo/8A ZaSTx7pRc7rwRE9njZfT1FceXZlKrQU8UlCWul/P9VqbYrL5Qm40rtdxknjfRJY9suo2QVT1aXH8 6SPxvoSofK1bTBnr/pK/413vFUekl95zfVaq+w/uGr430l3/AHeq6a4xjH2lf8ah1z4keH/C2lzX 2v63pdlZQ43zS3SKq9uuaar03f3kKVGa05X9xVl+MnhWC3aX+3tKkQKXwJ1JIxnjnmpE+J2gXqRs mtaUN4B2G7jyueoPzV5+MzSjRpyknzNJuy3dunqddHL605axaV0vv/4YlPjPSXUGDVdOf0C3KH+t K+v2NwrNb3lqR14lU/1rs9pGXws5uSUfiQ0XsMzkJJGcnghh60yWUSOoQqEA45+tYYj2rh+5te63 7XV/na9vMqlyc37zbX8tPx/A/MT/AIKPfGl/iN+0Df2dm7Pp3hoHTrdR03g5kb/vrI+iiub/AOCf fivT9F/bQ+HEviqG3ksJNYjgdpsYjkcFY29iHZCD6ivGxknKckj6HARapxT/AKufu/r99aXEbW+p 28apOV2yqPlfPcehrL/4Ruws7Z/OXz/K5+b7304x+teLBWR7LldGBrfju2sIfI8PIYAp5Z8D9Kzf +E7gnVWuPKm8lSzSA9KpImJm3niS1vdWiu7BhaXhO0ADBwf736ED2rbguo7u2m1G+iWK4iy15F1E rZxxnuwwQf8AJzlLVHTGPuts+Gf+Cxul+PNb0LSNUeSWfwXpiORaKnzWsj8CR8dRgheOF98k19Iz /th+DP2YfhT8OdD+M2o3GkJe/CidLeRbSSVHnksfKRPkUnJJxnGBzkiuDB11WxEpx819z/4Nz6/M K1OGQ0MIlZxlNy83KOj/ACXyRqf8E+fjzoHjH9lrTL34WS3HiC50RZLa9tIY3QrN5jMF+Zeu1lOR ng19qarrax6JZNKjwSSwq3lvwyjA4I9a9OMHGNmeDjsNCWFjjIzXRW67PX5Wt9x8lftb/HiyuPiL pvhxLVLy10aeHUL0lv4gy4A9SAc4+nrW58UfhBpnxD+H1zZXUAurG+t98av/AHSMj6da8DA5jCpm 1fDxesYx/W/52OGhUlSkqsFZwcde7fvfhoj897nQ9Y+Gd9rHhjXJ5n0pJTboCf8AlnuymR2zkMPQ 8d68h+IWiHSNXhS6ultjCdoZlbCkHK8/r9PwFfLZm7Y32O7jJpLya0+VrfNs/UuKOJ6WCz/D8RUL Nxa5o3/mgua3k4tO/wDNJ9hNU8Uv4Z1iy1JFU2d4Mu0R3NFKOGHB5U8cV45+1zfLrXxNtrizcSxt aRsG3dQea+6w2P8Aa07S0dk/yv8Acz9H4xnDGZA8ZhdYTUWnto2mvvR520giUHJxS2Uu+WXGelec 4uzZ+VxqLmivNF1ITJED/dpkshWNg2MgDgfSsL62O6pF8qb6n7p2bFmUoGO0df8APtXkP7fQJ/ZN 8VEknHkMTjt58dfs+K/gzt2f5H8s0nsfmXrUTar8OdLtNMiknuJIp4ljRcs7tMwUADqTwMV6J+yV +zD8WPD3xx0HX9A8F3dvdeHbqLUgurwS2kMhidWC7nUckjoK+OzLHUsGniKr0Vvvtt+B93ThzyjG L1/4Y/Q24+Pv7QF3CBc/Drwg46jZrnX8xVZ/jT8c7oATfDDw8xUfw66nP5munLp/XcNDFUV7sjzq 9SFCq6VSWq8irJ8V/jPdIfO+FOnsBz8mvwf1aqrfEb4tSSMbn4Rh89Nmv2v/AMXXVLAVXrb8jL+0 KW3N+D/yI7j4i/FOeMo3wivUHqmu2Z/9qVlXHjT4hmRluPhRrqt3xqtof/alcuJwsqa5pJ7pfe7L r3Z0UMXTnKyktm+vRN9ihN4l8drJ/pXwv8S/PwMXls38pK5X4l+OPE2iaBN/bvw58WQreI8KMsSz KGIx8xjLYH1pTwFTqmOGYU3omv6+Rq2Xx3tY9Ks4ptI8TRNFAkbf8SifAKqAcEr7VBdfGjS7hv32 n62D/t6XL/Vawnhpts6HjKbbaKdz8V9DkU5tL1fXfp7D+lVLj4keHnOZIin+9Zkf0rN4SfYccXGx Vfx/4cOd0lshPTdDj+lRz/EHw9sxHf2CfiFqFSltHoae1jucT478V/DXT1efxSfD8ssnJzbiR2P0 AJr5w8N6zos/7YXh+68JQ2y6QfEdg8I8sxx7RNHntwM5p04TW5cpQcdD9n9f/aN0Hwu08Ov6rbxe RtkUNcKi5yQRknjmvMviF+3X4YRGj0nxTpKDAyhvY05+pOfSp9lK/kOEtLHz944/bG1f4t+Mbnw1 8I/Fvg7w4lrEJb/XtYv41giB6JCPmMr/AEBA746i/wDCP9jn4ufF7wxe+Kfhv8dr2ZYr1rexaW3c Wd6EALSAB2AXeWUZjOdpqKjUGla57OW5VLExc3K1vT073Nm7g/as/ZvtBeeM/B+k/ErSxIWa+0dQ 9y2DjCqoDj6+V+NWbb/grr4Oh8NanB8QLDxHoviCykWRtPvbVi0jLtBRdvAYZb7wXPrWbjGXw7mF Sk6VRwnrY9J+NPxd8OftD/sb+JdU8O3MOoWN3o8sgZf4cqcBgeQfY8186f8ABZ1orWD4M6fpYza2 vgC3ePuMMoA/RRXy3D8J08XKjPdX/Q93PZRqYWNaPX/Jn0T/AMG9cFppv7Il5dQsj3beLrjz1xyq /Z7cLn8ya+zoPE2r+IfEutJ4rsY7AWdy0NrtbO+EY2t+P+RX1Ut2/wCtzx8PSo1KNWVWVnGKcV3f NFNfc5P5HyJ8efh9c6n+1TZaTpttJ5uul7h5j9xsZOB74EQr6kuoIdHt9PsJZIo/M220QdgN2B0A 7nAJxXxWRYKUM4xtWa7WfrzSf4WPezbALC5RhIQ1dZuatva0YW/8CjL7z4X/AOCgvg+58JeLm1GG 3VLZt6+cqcN827a/pg55+npXmnw78OeHfi94ct7LWb0WWvMBGrsgMF1CuFjJ7buMGvMzLCwnnFSn iVaNRJXv5K1u2sWvM8CMYVcVyVY3jOKtr1Vle/S8k0r6bX0PPfj7+z/a/DCNINAnivFdlmuIoONk hLZ2of8AZ25x04r5X+Oc/wDwlXjPzdKjMcUcQQK3UYyK9uhNYao8PWk5SSSv5b/16H7Nl+Pw8eE4 5TTl76lpFtc3K2pXa6K7fpscFeuZIwsQIcGixZ4iSwBJ4/GvQSShY+PfM6ycVsaEN23k42gk+pqG UvJuKJtyK54xSbdz1JVJOCTR+7MXyZyGB/n6/wBK8/8A2uPDT+LP2ZvG1pbozSHS5pVXvuQbx/6D X7PVjzQku6P5djorH5hfBzxtZeAfiN4S1DX1L2ela9bzT9/3azRuT+WT+FfsSsKyjMZI9c18pjsj pZrQlh67aSad13s0fVYnHyws4VYJXs1+X+RPgRoAucJzz1p0UgBJB5x6fn/OvZyvL6eBwkMJS2j/ AF+Z4eJxDr1ZVpbseoEcahAwBHFKZxEp29AMe1d8TB9RJZFKgnI57VHlXDFM5HTnpSaKTI7iMMCX GB2qvFvtyolO7I71DTuCJpJAsfzZGelQzXHmLkKfek/MdyuZPOmZAhXvkimzQhxuIB3dveobHcrh lyCByM1DJCMjcFwfbrUtdSrnif7Yn7OHhn4sfC/Wr/VrGG31fTrOS5gvo12yZRS21v7wOMc9K/LJ 7eW0uTHchht6e9eVjoKLU11PXyyo3ePYhu3bdgdPYU3OyDk5Y15kbWse5GTYWKPNcYi3FjwAOck1 /QJ+yf8ABR/g9+yh4L8IWKLb3mj6XGbpiP8Al5f95N/5EZ/0rkxc0uWP9f1qdmCreyqe0XRnVeCP HWlXl/c6FdXgXVYmyYJTh89eP/rV4F/wUX+KfwY+HGgpdftVeH9K8QzTQNDpth9kV7y4IxkI/DRq MjL7gB7nAPFhqsa0nGm72dn5M9HNGliXVi7p9vRf16M/IHxv8SrfVvHeqn9nzTNV8GaLrf8Aosek Q6tLcMyN8vls52lw2cYI9ua/eLxV8CPClj8CLPTfH+h6V4g1rwt8Lb60S71GzjnkHk2qIGBYHDbu QR0Ndc6cPrEdN09fusjgpVZzTpweiu/uTPJf2Cdb0TRPhPp+jeDtLtdKv4s3Eq21usQuH4/eNtxl toXk84Ar6O07TfEd9ruj3YntH06UzNqe4fOxx8gX6GuPBY2niIT9nvFuL9V/noz6tzy6pRhKtdxS adt1Llat/wCBWfoHxD8A2up+M9C1i32R3elO3z45KEEEf5/pT9c8HWPia/0nW9Tg86bQpDNbZcqP MYbefaihhowq1Kkft2v62t+Vl8jx1nFaFPDqm7SpXs/V3/O55z4n8M3njbwhO/xP0uzW7uGkM1ug yg+YhSOTg4x0NeK/GH4K6DqXw61SXTdNht7yxgY2siv5ZQqCwJPpnFLFYOlXvGrFNbfI1r4ynh60 6GDnzUb6cy3Xmv62T3R8leI0gjXUTrmprq13JBFDDeW6fL5+UDJz64/HGa+Z/wBpvwv/AMIH8Ubu 32mNZIln2KMbd2eAPSvkoYfmqTqylzNe7fyW3zu2m+rTPo8upJYj2lSalNJJv+ZJPX79G+8WeMvc swBJ49KdHdNtyhr6BwVhUasrky3rLGNwP0FINQdT8ynb9alUY3N6uKqJI/eGHiMDJ3Y796NR0+PV NMubW9QSQ3UbRSA8AqRgj8s1+ws/nCF7an5PeA/hxa+Hv2vdD8JeP4S9tbeKYNPkjYcSBZwAD7MC n4Gv1wSWKBfmIKngAmvIwjhRpznN2tv8l/w57eNhKpCilvK/3uw4OGJIIBIwf1p+7C8Ajt9K9FNN XR5bTWjHI2ZArZAGVB7Ee9KzOxyvyg8D6+9NKwm9RjruIDAHj8jSKfKclQc9u+KTKuI4BJ3hmPU1 mm7eC6KzkMF4/Dsa4MfiJUYqcO5Ldi8JlwpTnHT6VFMoLf3ceneupSTSaLVrEMgwxJHT3qOR8gFS Bk9KypzhNXi7/wDA0/BmkotbkEvyMvGMHioJMqTgnJPP4VbXcmxmeIdDtvEei3dhrCedaXsTQzJk jejAgjI5GQawvhX+wh8Nfi34O+FsvjfwPo8+kReE7+41OW3i+zy3EzXs0cJeWMq7MApwSx4WvHzd L2aZ7WSJ+2kvIf4a/wCCL3wZvvEst3qOg6t/ZuGeO3l1WVQ390AghsD1zWlrH/BNj4H+FLyGw8O/ D/TLq6f7/nXE02wepLua+bU3LWT0+4+mTSVkj5h/aD/4JweLPht+0TceL/2XvDfhW+8Pq0F1BpN4 qMkciAFlCPjCllyCrA/MRwK9k8J/8FdPEXwnlS0/a++FGu6CgIjbUtIHmW7H2Vzt/KVvpWk0pJcz Lc24KCS0d/PW33rTTtdh8Tf2xvAPxM1qy8Y/AjxdpMtzaxlruwuZvsl2CuSCqS7dxHfbkcmvzV/a z/aG1r9qP48axr3iaeW5d5PslhETuEUCEhEUc9eW47sa8fAYSvQzSrN/BOKfzjZen9LzOmvRqyw0 sTJpxbivNNJrRekVd+i7nu//AATu/YC1rxN8YvAPiT4qW17pVkfEVu9np9xZur3awB53dtwwsY8n bg8sWHQcn9j/AI8ae+n+E/Gt3IGAXwBrMSk+ywj/ANmr2KdV1K9raK363/I5oU/ZJPq0/wAVa3qf CX7O2ueK9NvNKvPhnbWZkFuICt4TscjIyNvPOMc+lfXnw6/alWXXdE8O/EDSpNG1LVIcQSrMstvN IB8yqw5BHoQK+fyjBVMJGrUmlyznKWm+r6+Vl8j9nXhxQlkdKNCvfEVL1bW92zhzKKfdJLfdvTpf o7HR10zxPqw03Ubi9k1i5E3lyNkQnGCF9v8AAVznxw/aU0f4OeLtH8OXdzHIZ0Ek8AjbeFz94MBj PsfQ17GJrqlTlVfRf8Mvmfn2XZZXzrM6eFpU/ecErKyvyU99e/Lf1PO9E/bB074ueMrvSPAmlXcs EVwyPcuwVFjGPmI6jnjHtXiP7ffxPu7bw5aeDPBssn9p+IXXzvKzuEecBRjuT/KvPxeZ0/q9WtBt cul7dbL9WtzhzbKamV1vYVbqpHdNWs7Jxa7qV9PLdHLWHwUHw8+DcUd6qSarb3EepTsy5w4YAKT9 M5r47/bwKTfHa5j2gtBYw54653P/ACYV5uHwDwuC10fKvl7zdvlzWPS4ew6jUpwWrV0/u6eTk2fO H2BZHbY6DJ71Zh0lVA3TgA+grtdZpao9SOF966diaPS1CjbIp/CkbS1yQHB/CslXd9jonho2tc/d mBSsYwF4A6LzVhQ5GC4ZSCCMV+0No/muDdtTgJP2W/Bh+OA+IEmlhvErJjzGkPlhgNokCdN+ABmu /Nqs8TbiVGc1w18HTqUalB7Tvf56M66eLqQnCfWO3y1J4U2rkHGRxnt2qQTCNgVDHjkHvWsIqKUU ROTk+Ycz8EAHK4OPeklYs5Iznvj/AD7VcmTbWzGvK+0YViSD26U3zAUARs9uO1SkNeYxJVIyDnHU elVr61jcFwfmU9RzWGJoxq03CWzHuSwxiGBQuQQAMimvMSgIPJH50U4ckFDsVZIikbLkAjkGoySi rgZxzxXn5ZgfqyqJu7nKUvS72X9b3OvFYj2vLZWskvuIJ5QxGep7VBcS5XKjIPOfevQbOZala6JV DtGCo9a95/Y5srO9/ZD+H13cRJLJbaSY5RgnOLidxkewkz+JryM5/gr1PXyWX71+h0nifXJ710t9 Ii/esgUEAbsensKoaf4Fg0i2aW5bzbybh27fT6V8vfoj6hI5LxNpdxdzyRWKlIYj8zxjnPpmuZ8T aFGNMkivY7Z7Ur+9R49ylfQjvzW6aegW3Z88/HL9gn4TeMvAeo6zqXh+y03UpIJJY5LBzbnzSpIA VMKenOVPUV8M/wDBMH4G3fxG/av06+gsYryy8Ksb2YzrmJZRkR5+hy3/AACtItqMkyZ62P1t0jWp vEP7QnhQyiKWKzsb2+by4NoGTFEMd8YkOPavRP2kfiHaar4S+KOk6f8ANJongLUJZWHYzSW6gf8A jv60oTSqRfml/X3m0KPXsr/jb8z41/Zo8RWPhrwnHKl2n2hEWZ4WYSCJgAdwHXB4yOxyK6ZvHeme MY9LW11PSWe0v47iCSKYl0lJIUYY/LnPSuOhWoSw3spStfmX4u/+fof2DlOXVqmCwmKjB+7Ck9F2 jG3323W+vc+nPgtaXGp6zNe3vOYdqH055P4814l+2u1rc/EaSz1S3s45IdLlmjuGYxuIPlDHcvPU /hzW8VD/AJebXX56fifiXC3JHiaE4PltCbX3SbX/AIDc+cPg74Kh8G/GCxjtmuQltazzXW2bmJAd wYsOoDBR75rqdP8ABep+M/2ho/F/imH7PawIWsLZ/vsMFFZh/D1ZsdfyrycVgYul9Wpu6ck3fsnz fovvud3ixWhicyp13aL5E29m3dpP7oW8kvRHUeONaXU9Nn0gxRk3YHmP0JUEbs/0/Cvza/a71ldc /aR8WOHQxQ3K2g2twPLjWP8Amta5xpSa7nyuS4RUMWop9L/p+h4iJCs7BMDaSKuLK5YfOM1wWVld Howck2rkrXMiAYc5IqM3LkjLnIqOSK6FylPbmP3Ut0Ms29unP6VPF8oAc4QnJA61+1s/mWmtEOEm +QksCXFPiQBgSrE7cHHGDUS0LTTJIlCIM8A5Gc5A/wA4oRyDtQnA/GpaKtcVGwMuCQx4HpQZ2cHk BieoqVqW2tyO4TKHYxZ/c96SNNoUgOeff9KVwurDCpZsMQSOnvUckWTkn9MZNQ2xroC5IJORjqKS Q5bkhie+KbBjZ4maMGEoSfUVXuDtXkrg/wA64r4j61ay9nb581/ysdKjS9h/fv8AK1vzuVypZTnP oRUE0alvlyNvQepp4mj7aHJe2qf3NP8AQzp1OSV/X8UVb6bZCzMcbVOa9i/YolOqfso+Cora7ItZ NOVn8s5DHnIz+B4rzM6a5FFPU9vIqS55N9EehnXtM0a4l3tIshOAWXkj0z2rNv8AW59fcx2KmC2P Lyt1x7f55r5y1j6GKtoZup39va24hWQtDHwxyPfk1w2paBearrZddTS2EnygeWCmO3HetIOwNGLr Pwnl8TaJFa6rK9qttI/mzyHKSBhyE9T044IrxP8AYn+B9n+z38N/EUPhlTc3esa9qPn3ZXlIIrmS BEz2ysYY+m401KTG1bQ+ifgldJ4w+PE81vFJFb6Po6WSs4xvMsoJIB6D90OtVvi34eXS/Cf7Q+vt Kjzat4ZuIQEYnZFHeW8KD0BwD09azp0eetB9pJ/hY9/KKsFSxXOrv2dl5P2kP0uj528H/s+2F1qP g7VNHluRHfaPG92oJVoJDDnfn0JHQ8EMMj15H4OeF9H8R/FzSNFuZpmttN1H7VcsjAKwRiI3YjqO BgZ4/U/KcR+zy3DLF93rrspL3mvOyf3+SP3/AB3iZisnyDAJQWvs4a9Ixv73S+iVuiffr+j2gWlv 4Q8PiRGjJlQFdhyMdsV89ftZ+Cbn4hxrqvhC4jtNf0+CSC3kkAKPG+NyMD2NfXQSaPwTDZw8JnCx U1pFtNf3WnGS+abPNPgN8FNS8M2F9feK7iC7u9UdVubgLhdq5IjQdcZJJP09K6bwfbprWo6lqdyi rGreTH6Ac5x/nvUU43XNJK73/r5D4qzilmeaVcVQTUNFFPokkl/n82cBq9iLrxDfi4lUW1sC8svT 92Odv9T9B61+VXi3xQfFfi7WdTkLD+072a5x6b3J/qK482SdNrrdHuZViXVrX20X3tf0/mcpbBWn beSQGNXUEZbkZBrzm5W0OuLhzO7CQ7TjapH0/wDrUjT7YyCoxj0HNG5Vl1X4n7oW5ZVw+R0696tK 5wVjyuf0r9psj+ZqbJAgddyk5/mafaBySWORWci1vce9sXY7wPw9f8gUjRhYyIlK4PFZyRcUIRuh UhgScHjnFOAIGCOTRcbVtCIwCORgoJ/rTUkE07RxfMy+1cuIxMKPLz/aaS9WdNChKtfl6K/yQOPl zGen6VE8btGgXdtzge1dDVzFSY5iUXKEsx/UUyUYBC5IUdB+lSkCYjMSuQRjtVW5di6lhnPSlYq5 XfO8D72egJqC5+VTtIz0qBJHN/FNpG+G+v8Akn5/7PuNuPXyziuy/wCCWnxCtvHH7B/hi1nmSCfR JJ9KmzGDh0kLAg9c7HU/jXzmb4RKo8RfVpLy0v8A5s+hyXEOzpdPx1/4ZH0YlqdVsYTqZjulhXZH I0POO31rJ12Zra3KyytGhPLbwh4968VLXQ9/ocX4i1HSre0LWV7OLgnlfvZ/p+tUNC8ZLbRzXy2Q vbiAiN03EBwwOCQvOOBnHrVt6DTPLPjl+0bL4RtJGvf+Jh4g1dDbaDpCsB50zEYAX+GJRy7dFUHv itL4IfCLVta+HWj6BDqkMi2EIN2/mBTLMzbpZGHX5nZiM+vFaN8sbJf1/V/uE3eR6n8GfDVv4B+J fiex8PbftMVraTDzTncSso9B3BrzXxl42j1D9mD413l1dW/nnwxbLJGsgJy9/F82OoDY7+h9KqhZ T03uvzR9dkdGMsqx9V7pU198/wDgI82+Gnx/0SD4OTwaIzT3mk6RG1xKgyAwXaFHqc8DHrXF/De2 tfhn4YttW8fWcker6qEkmuIDtKl87YyFweMdAMcH6V+bcfYiNbCUMPRnaTk467P3Vdfe0tvwPtvF HLaWG4XwVev/ABJODjr9hwlfTbdRZ9MfDv4gTWXgyzlutRuruwvkzbrIQzxtzleBkjjiuF8X/tAa LrvxKHhmW7LPFhriK3/eSPIT8sIC5yx5JHYdetfV5LiIUcooVa0vsx1duqVvuPy+OG+uVIuh0gm7 90lv6txiu7a6s1Pi/wDEmPwjY2tnpNpI08oWKK2VgCm7hmY89Bk+5496p6ncv4Z8GpY6dsF5dsIo 8evdz7c17Sd6nLbZXv8Af/XzIjlzVGNTm+KTXyVve9Hr9x5j8e9Wg+H37OnjK/sZFEqaXcAHPOdh UE+5YmvyhsrpEjcFlJJ9eteZmkW4L+ux9Bw/UbqznPy/JiWUALN5qoDuP1qc2igghT+Bry3Uaeh9 BClGWo2S1UHkMM+9VpIQARtkzjrmqjUbKq0Ira5+61ocR8BcD7uepq0mEAZG+969TX7a2z+YobCo 4AIBAwehH0qRGAYKufmIxj+VZSLW9yZkLMu4AA8nnvSMMkjJyeuB+tRcq+pDbwfZ2YBu+cZ6fSn+ cYwplJzz2qYxtoU2IYwpbGQe3qahSNY3bAXOMk1E6UJ25le23qVCrKN+V2voEpBLErt+v+frUSuH cqucqNuD2q2iSNmZY1K9fWldip+cDgYPtU2HddCKZ8HMuRu71UvLgw2zO/O3t6msqk1CLk9kVfQq Wt21zCXkJOCQMCiZTtCkFj1+grmwdaVWkpy6/wCZMNTP1YR3VhNFdKrxyoUZSMqQRjmtP9kTx7pf hP4eReC4xa6VqXhnVZdNRlQIsqyMZbd3x1Loyxhj3QL6VyZtS56Pmj2MmnbEcvc+gJ7/AMUXFsEF tCF2jEgIPHrWbf8Aw81G81CAeIb+CJJzgvuzt796+XTbPqnY4rxToFrpd/JFbXI1HZkb0OFP09a+ Wf21f24tI/Zw0uXR/C6W+peMblP3dovK2oI4km/mF6n2HNbQhzPlJlKyOi/4Jc/sn3ni7wxc/Gb9 pttQ1vxH4tT/AIlkUuf9HsyeGwMbQ55AXACBf7xFfZtlpFn4bMg8PWEFil0m39yoLOB78nFTOfM3 /WxUIvRs4zQriXQ/2ld80gaDV9HVirHnMMxBI9f9eufxr8jP+CqfxDl1L9prxVBAotjpwTTNscmQ cMzZ7evSqw9WUKlrXu/0v+h6+FxkaGFxNFu3tIK3qqkf0TZ9af8ABLL9mz/hKfgxa+IfH+oyaRpd jHB5YBAaWQIJQxPoPMGO+R7V6r8cP2fZ/iz4tiTR72W18P2yLJLPJzcXEoYnCqeFGONzevQ18jju H/r8JyU7e9ouianrK3e2m/ZdT6XjriGlj8HhMFC7jCjSjvomox5ml3veN+y03PA/2gfiJ4hlvZ/C nwquntdM0q3CXMtiWPlDOAjzHGScEnbgfXJr1z9lL4VeHvhv4ItfEWn273GuX0RAnuG3MozgkccA 1zUoc+awy6f8Oik0vNWSv3ffz09csfi6OBydZbRScqjdRytZ2TjCMH6Pnnbp7jKWrarZa58WdQm1 nzHutHQSI8vESbhwfc4B4/2vetSHXZPENxLcmPzS3BlY7UiiA+7noPevtYNScn52/Bbf13ODH1VR wFGK/lT++9/1+9Hx9/wUo/aejh8Lp4E8NkLNdP5t9JH1WEElUI6gsTnnnA9CK+J4JFd/4h3+7XBj Xryrp/X+R1ZXBUqa53q9SeAYYuB/y04/OtPT2/0wZyBg15tX4T2sMlzKXoaUtsrStgKpKqePpWbq Y33PzEnA/OvPpSfNY9bE04qLaR+5VsQ4w5GD0GPWpQw3BWOF5xnuK/ccZi6WFouvXdoq136tL9T+ VsLRlWkqcNyYSiXasWMAH/GqmrwskiSxD5CMHB7+ua5cwu8NLkIlfYm0q9N2pSRgWTG33FWTOwba cN3+v4ipwOJ9pRU5vbcqnrsK8YKplg0h5PzUssiK2wAknj6V3W7lX6EMZaYFvvEHGMYNKzAMSvUc VKXUd0MkAmTCkkjsT1qNkQgeWuCcdR1p2KTGSjCHe2eeMUwnI3RgkDjB7Vz1q0YNKTtd2XqaQpyl stiJ5NoKnscYFUNUtftEKhSQAQT71NaHPTcES46ajIoxDFtToDgc1DdORgqSDj6UqcFCChHoNWuV L9wSAOTjvXmnxc8K6jY36+JPA9q17cJb/ZNU05TtN9ag7ht/6aoSSvrkjuKzrw54OLN6NT2c1Psb vw//AOCmnh/wLpFnH8V/EWo7ZiYIb2GMySKFGGS4hHzI44GQvzcnHGT7v8BP2zvA/wAXbWVPAeva J4lnhl+WK88yG4Tgn5EkA469B6818hLDyp+69T7PDVPaJy/r/gnmf/BTf/goRq37Lvw40yz+Hmk2 um+J/EUcsVlOxWWKGNQN820rgsN6hR0yckEDB/Kj4HeGJP2g/wBpbRYPiXearqia5qQutZn3mW4m iBMkx3dSxVW5962haFNySHNapM/Z3Sf2lNO02xitvDOjalHY20Kw26MvloiKAFUADgAADiqWp/tF 654gd00GzmgUcfJFzj/eNccJU4Lljqavm6lr4Zpq/in4g6d4g8Z6jNZ2mgQXR8yQfeEiBWQ547KR 7qPSvjT9pr9kH4b/ABf/AGoJxfXOqxxxk3viGYXJcyTuRsiRQMhlQDdjoT6g5tupJN09H/X/AA5r Skpv2DV7ta9bK/8AmfR3hP4qeEPhpoNjpHhGwvmstNUi2ieHZHHnrgSYOeOprzv4+ftSJexNZ3vj DQPAWmSJiVprlDdy567Rn5Rj0yT6VVbCVoYf2eFfvd307v5a/PyN6jUp89aautElr8u1l6s828Rf 8FDvhB8KvhM/h74Vh9bNwWa6lnt5DLdyHgyF9oAJ6gntjp0ryDxj/wAFQGfSLa38DaVqNtHbxrGM yRRfKB93O2TI/AH6V51GOHowi07tJq/W7ev3tXd/uPQhgMU70qrv719XfprqnrfZ23te+x5z4i/4 KJ+L9bYm1stNhQHIR3d1z6kArmuH8V/td/ETxjavb3niW6s7ST/lhZnyFH028/rXTLHdIK3nuz0I YZRp+zeq8zzW4Y3Ls9wzSO5JJJzk+uaEjQphcgHiuGSbdztg2nqTR2pjRxIu0hjx6YNWLEhNQUAD HNcdR8yfoejR91QfmjVnlCzjnOY1rK1BxHIduM4rz6EdV/Xc9PFT91/L8kfuQuVUBunAPHWp0gDs GXnPbPJr9qzTL4Y7DSws3pK1/RNO3zsfy7gsS6E1Vjuv8iw7iNgQFJP8qcVE0chwMbcgNzmupRio 8qIk23dkUNuts5e3Uhu4PSnyxiQctgk/lXl47Ac2CrYaho5KSXq1b7jfCzjSrQqS2TT/ABBfMdg0 R+TGWLHGKkkQEqAQzuMk44H+c13UKTpU4073skrvd27+ZNSpzzc0t2MdCAPLyoY5602QAoCAMfT+ VWyExu0LHuVs88H+dIrFGOSAXPB/z9KGJMjupAo3fIuQcCq+SXYkjK5yc9a87E4bDYuShU1dNqW+ z6bHbSqVKMXKOnNdfLqQSzYHylgR2HeoJ2I3gNweOa6pabnPa7uV3m2qvIHHX3qvNKqY2DdjsO9R J6FasrO4I3Sg1Su7sRsN7AnHI968fPcwlgsBUxNNXkrW+bt+p24DCxrYiNKb0Z5X8bv2XPCXxwmF 14psXhvtm37TavtkwPUcqT16jOO9ea+E/wBh7Uvhfql1P8LvHeo6XHcAfuZLIShsdNxLc/gBWWAp Sr4SjiJP3pRi36tK7OqrX9lWnSt7qbX4nhX7dGq+MtPv9J0b4n3Npqi6WjTWd5DE65jfAYYPHVVy AOwryz4B/tEar+zx8UtP8U+EZUhurPejnyVfdE67XADZGSCeaivG0uVo9TD1L01I+rfFf/BafWNO nsJPBun6NqaSRt9qj1nSVGHyMFTEy+/c10Pw1/4LFT+NVuo/Flj4D8NNbgPHcSQ3Ukbn0EIk+bGP UfSuR0aX2fzt/md1Ko73kvkUviT/AMFXvt1g8PgzU7vxJq7cJem1+yWNtnvHE2WYjtuzg9zXxdr3 7QHjfVfEN7dN4o1y1e5kMrC1vHiG48n7pz+JJJ6kk1x18RyXVNrQ93BYWpOoq01a+3TQSb4u+Ktd 0zyfEPirxRqELfKYrnVp5EI9wWxWAkCtOCFUFmB968fEY2tUfLKTsfT4LLqNKPNGOr6+tyXWGwY1 AAIBqJ2/0YgHGVrmgv3aOvEfxmttCqqEHC5/CjyiTya6nOzONU2OMICgkqD9KZPCViPnMAD+lKMy /YvuaRbzFLPjLEn86gtG2agmOvIrkjG/Mjtk1ywt5GrdpvuV5OPLU1maoA8/zkEMOa5sPuvn+p24 r7Xy/JH7ixsgK7gdw/Sravy5Y4x7cGv3a+h/LUJLYkdg4Q7xjgnnp9KkhdogShLKR0xnFZy2KTB7 jzyoODtyevalZlVwGZcKOfWlcehHPdLBcATDHBAP+fxqWQo8QDE/PzwelRcpKwnlLHITA27Pr0H6 0wTK8x2yL061z4nF0aHIqrtzOy832NqNCdTmcFeyu/QSZgucbdzAcVDFMFO3nBPPvmuhq5klchuG MsqngkEA+2aa4AyUByFx1rkhhoQqTqxWsrX+SsdMq0nFReyK8igHC5G33qtMoByo3Z9DWjMkytOB KxyxIHZemagFwSuFGMVxqhGNaVZbtJfdf/M3c5OmodFr+X+RWupMyYPbsapz2wVy8zBzmqxGHhXp yo1VeLVn6BTqOE1OL1RVuJFDDIIyoA4qhcXPlht4Yv06dKipKNCi3FXUVst9Oi/Q0pp1J2b1b3f6 nG/FH4WaD8WNJjs/HFil5HE2+M7ijIcdVIwRXzb8SP8AgnHpN3MW8EazLal8kw3cQfAz2ZcevcH6 1zY+lFx9pJ22X3uy/GyO/AV5xlypXWr+7V/gjz74pfsm6J8JPD9hDdO2q306yNNOwMYwAgUKoPGM nnvXh0Wh2mnEyWiEMeOTnFfF5nXq06jgn/Vj9M4YwlGvS9pOOq/zY22kJkQggbpB0PuKzr+PyJCY 2B9fauOjKyaPcxHvSi/Ut2bgQAnoMVagbfOc4BDcYrGa95s6qT92Mf66ia8waSMZ6VDCyiL94Rgq ev0p0r+xRGIleu15EKosgIUHHsad5YBwQOPU1rzSRjBQl/w5KhKLwFxTZHQj94uc9cGs7O50zat5 DnuQCoHAFRWzf8TOLJxkn+VPltf5mUpJqKXka2oymJlZOvl8fnWdevl0LjBK9R3rgw60T9f1PRxM tWn5fkj9w7S4DYydrLj/APVVlJtyDcE29eK/ddT+XYJWHIyxyKExknv6e9TMwdtrDqMbR09RSew0 +gCMn5ZCQCnHHU4psqHccKxI4PtUIq4+4G5gt0rOoz9aIIFeKEwKyqfm5PTrQ2O/YkmkKIxibjHJ +tU7YSNIPLTIHPI61+dcdYbF4irhaeEi27y26P3bNvp6n0eQ1qNKFWdZ2Wn66eZMWAV9gLAHIBph kAyTwRgDrmv0E+fW2hFIwwSw6k57ZqtvMh+YY+br0okNPsQzXgVtp25YcjHUf5zVa4bzGLHGCOcZ 57Vywrwm5Rj9l2frZP8AJo2nRlFRfdX+V2v0ZA58tSIz8uMdarSsEXLHA64HaqSIUtSrcXOyRQyk s2O9UZZwqDI3c+tYRrRlUdNbq34m8qTUFJ7O5Umn2kqpGBVO5nLISmeBWmuwovYo3Ui7SVIBbkex rC1l1WMySDkDqOCP88VliIRnHlkr9fu1R1UZOLunqfPP7X14qxWJR1xIkgBB6Y2/418iTzDyBkc1 +eZzriZL0P1vhCDjhHLv/myjBdYmiUAACYY/EiqV9dDzVYL8pJzj9KxpQ0PRrT5ZJeX6oCjrczBN +0McYqWO6ktyGLOpHqK1kk24szpzlGCqdB0+ovd/NM2SOOlSWk32mbyl4BUjJ7cVEqKjHlQ3WlKX M3e/9foMurBrYDzSDup0MMsMhVQwY8cZoUlKNypR5Z2YTPLCx37gR/eFQNcuDlgGA9adOMXqFWUl oiV5cygAfean27htRiPOAT/KlOHcqnNNL5Gvd7ZEiCnkIR+Oay9SlyybiASM15mHV7X8/wBT1cZK 116H7exahkhIwxzx0xircUqOGwQWA9OvpX7BgsyWJr1aEYtclld7Pfb7j+a62H9lShUb+Lp2HRyE R/LtJ789BUklwlukaBiZGyvA4zn/APVXTisTSw9N1artFGWHozrVFTpq7ZJIAzkHe20bifSnQzh8 BsAv1x2/+vWtyF3JHnxwsik9uTn8c0SzgQja6vxxg5zxU3LTu7kL3DPIpWNtpHUDjmpfMIfD8gdT xmuDDYmrPEVaU4WjG1n/ADXV392x0VacI04SjK7d7rt2+8inuBFESwJb6dM1E7MwYpncevHp/kV2 3M02QS3H7zbHnB9DUU9y0hIUKVOevQVLeo7K+5Sv7xbPaWiLkgKu0dvpWfN4hx9+GUAjPNYQpQhK UorWWr9bJfkkW6kpRSl02/r5srnxAJCODlu2e9VrvXd8mBIi56hu9U3fYFHWyM698QrJDztDcjOe lZV5qBPEbsR/OoUUtbGlmlYrSX8sBJKOGJPJ71Vl1C6wxiQYPqKafUtIz7u4vZxxLtyMYAxXNarb y3gkEkzFlHVs4/Cs5u6sjWnueFftcW6aZY6YGYOAkpA7j7nNfKVxPiM5PevzfN43xs7+X5H7BwrK 2AT6a/qU7aTzLqPdgBZV5x71VvSZZmUdM5qadrHdWi3KyLKXcK3UqyCQYYgYXP8AWrBliMIKTAkn 7pByP0qakJc1yqVaEYRiNkdCCJCrDt0NEEMcdwrpkEGl7yWg7QnJaj76ZXKFSMkc1LZyq2rqAdwz 1FTFe6VVqJS+4t61J+7BJzWfG0ciDegYk55FYYZP2aaOzFqPtbNXMuW6eK7crjCOeMUsOpmGQPgM wPSvU9neKPnlWak1fqW08R7iAyE49DVW61VLnGNwKj0rmjhOV6M7auP5laR+5FtcZ2AEAY78VbEx l77gvUHnI7V+xM/nmC91Im8/auIQWV+D9DTZQkxVmDKYjkAcjNefj8JDFUZUKmzOnDYiVGoqtPdE 8cwjZsfMynrgc0qS+epZwzjkgsOtdFzNeQ6diyrkhC2Bnpg+n6VBfGVpojG42A/MA2M+9cGYwrzo OOHdpXX3XV/wudeDnShVUqyutfydvxJYLh40/wBZw3XJ5/z1pHv4kYb3XnjJPWu25zJWK0uqw28f zugJG3Oahk12EKCGJ49P602W32MyfxKwkHlRkqox71HL4ikkjPkxOVbjJ4AIqNAW9ylNrtxcMVhC KTwAP6VTvDcXaYnfBXtg/wCFQ/IqNrlQ6VK0e6ViMH16VE2kb2GTkj25/nUPVGifVDbnTgkeHSJs cZ6H+VQvbDzBnZk8kHn8qiU4x1lov8zWKlLREUyMyAMVIHGTxVOdMs2/BU+ntT5gVmZuolFDNISA PyrGv0S4gVgQFxnn+tctWqlUVLq038lZP80dlGm+R1Gtml99/wDI+ef2zZklsbDySc+VMeR1+7Xy XO21AM18Bm3++z+X5H6vwsv+E9X8/wAypayZlUKeS61BdPtf93k4zWcNj0pbqX9bkiIrXBaQEZJN TworLhWJ+opORVOC5I9xz27NHgAkN6d6aDcW8flo0mz72zPFCkr8r1M6tB/FFDZCSVOTj3HTrU9p Lt1HJxhSaEtNBTeuhZ1OYSRYPTFUrSXfEAByKwoRtA6sRP8AfJW/qxlXRJuJWBAIc55qu7nIBywF exT+FXPnai96Vu4qSoVYyOysegxx+eajlnCABXUH6UOBHtLbn7nRXRVDz8yj15qwmprDbgCUfN1B 7Cv0922PxOm/dFbU4kRFEm8vyfanDXVE4aMb1PHcnP41m9NyrirqaQ3INushB+YjHA6/40q615jH 5VYE8DPI+lQloU5JEzXcgc4XaD1IBxTbWSUTksVUn7p70Nib6sc0boQRKx3dgOneo2tI3ILlVPck 4GKVmUlZ6kN5DbShYnKhz2J60otoo1wqrkegzn/OKzU4SlKMXqt/I1cZRipNaPYhlSJCjIgZj0wu MionhVZGIVdpPT3qmtRLsRySEbdoYAZwB2pj7QhQDkHms2XoQMx2nB69vWq0rMCdgG2pkik11Kl3 Ksq5IOcA/SqThWkBbcG24ArGth41Fyy2TT+53/NG9Go4tyXn+KsVp5BHnHB7nFULmYpknnjpmtRN 9zIuiWRmdmAP8QIrKvVSIkRAtkc7myfT+tc1WKbudEZdD5x/bCk8tbRWwP3UuOfdK+U5HwDnnivg c0/3yfy/I/WeGV/sEX6/mRaUhn1CFD1eVF/UVUuGAdgSef8AGsYHozavr/WqI2u2juHLFhljzVy2 umZ1DFSCcfSrdNWMY1ZdCzJfC3ZlZWAB60Qagtw5U7sgHqKwnR0ujajjHzWZFO+J9pPBqVW8q4JX vn+VVbQdR+82x13OCoz6flVOzlHl/iaVKHuSLrzTnC5nu6hm3YJBqJwpBHTPvXoReh4j5Lu/dkbo NhCNgGoJEOOMHNaxl3MJ07fCz9p01CWNB5b5Y/p+FXdNuHklXzGByfSv0xxuz8apPRaG1FEqZMzI N/YCrsYCRbFAz696zkkRJvYlZlZ3CHO4YBzxRBCPNZlXc7cZ/wA/jSSKj2LCXAUKVY4HPy9T3oS4 DO4QFjxzjrTt1GxDKRGCSuee30/xpk9zGh2zbi7dD6HiuHMcdSweHlia3wx/4Y3wuHnXqKnDdlM2 gnvRIzttj+6DUomEbEKydee3PtVUcNCnUnVjvNpv5JL8kOpiJyjGD2jt99ytcO8cnzhnyc85xUF2 fNiYEgMwAWtJpuLSJjJJpjWmMSbCQwUYODwOKjLkoGDE+ucVhhqXsqMKcndpJX72W5pXq+0qSmla 7v8AiV5JmQfvG59qgnuQr4B5bqKwy+niYYeMcXJSn1a23/pGteVJ1G6StEo3V8sZIUFs+1V7uYMS OcDn5jToYmlXTdJ3s2n5NaNFVKM4WVRWvr8mUr27VSAzAs3QetZ91dKCfLLLxRUnPmioaq+vkrP9 bfI1UY8rUt+n3/8ADmRNdkIxQgoDgDpWXf3GwSZJA4A9cVM1oWvI+dP2zJxGulkZO+Kf8eVr5Vlc Mpx6V8FmMf8AbJu/b8j9X4caeAj8/wAxmjTiHVYHCh9kyHaTweelU7pwcE88VlFHoTnrp2f5iGAn BDAhueaAxWUAEbh2raLV9DGreKjccJWA4wf6VNZj/SWZyVyvQdzTaWpik3JWezHXOPtQJ4HWpJZQ 85CnndwawWsUdNRrnbC8lUpgnJzxVS3ZSu1jyT1p07qLLxDXtEilNIfMbGOtRSSsDljk+9d0Fojx ard3JETzZHPX69ajaXaRnJx71okYubsftBp8TyYZ8DB5FbOnQrDtxsc5z7Gv05xsfj8U0rMvJdRQ RHeflPJA6kn+lXYZy0aBSSrfN15HtXDLF0/rH1X7Vub5Xt+Zu8NP2Pt3te3ztcnhlESHPOOg9T1p 3miMjfgbeeDXRYwiu40SFFbBwcgkdqmik8pW8sgAZOcUmtAaQklykUILsWGOAeoqNpUuCXQkbfWv Hr5vhVjYZc9Zy6dFZX1+71O6lgqroPE/ZX462FdlEqqoGTnt0qrNcmEqZVwHz3Ir1WjkS12K/n5l BYEbQe+SaUzBDtBUDOM1PKU9rsZJIAq7j8pGOvNQS3CuSVIGOtQ43KTK7zZfKkH2qndXQctsJG3+ Kpa6mkV1M+e8VSuckZ61XnvVCYkwK+Y4ZyuvhKNV195Sbt/XVns5lXhXlH2eyVrmdcXqrKoAB4PX 1qhfXIcPlgc8Z9e9fRxhq2jzuXRGU9yJCXU5DY79fWszUbvcjCYkbuMjiubE0HUpOGuumnmdVKXL NS7Hzt+2TdKU0vzMuwSUFc9sjn9K+XJX3Jx3r4XHw5cQ4R2VvyP03h2T+qKUut/zYvh4htXgVto/ fL1+tZ13KEQAEEkdqiMTvrS29H+ZMGAwCQAFqJZAb8ZORmqpLVmeMl7kfl+RZtirodwBx0qSLajg wcE981m29UaqELKQ6WNpBlR2/OhCVuASMAZ71CnobTp7yK91KJIxg9yahjlwMDqK2pr3bHLWn7/M inKMsSBwTTJIzjIJIHeuxPQ8uerd9yNy27AGT9KiJ9OCKuNjGbbP/9nLl0PYnN8+qv8A1/X3gkjC OMZByKsac6yX6oxytKSWtjaLbtr2NBFwWZWwuOh7VpaHOYlkXJYN19q8yq1OLR7FNOlUUun9f1+p JtfDsAcHpRBIY4AHBXLc/SudWkmn5HZrGXN0s/1IjMFd+hVqqX8nI4B9s11Uocsjjr1W07f1qQxD Kkv8vsaJQygEkqfY9a7m03ZHkSV1zbP/AD0P2UtJF8sNnjH51ZeUBCPXrX7DOPNFxP50ozvFSSMv Um/dHB47ViyDMn+eKxoUFQpRpLZJJfLQ6JT9pUlUe7d/LUekZI4HNRyIW4x39arYa6Eun2xecZHy jnpXR6fZlioxn8K4nBTs5amrnKN0v6RuW1i3lZ21YexJXAWuxR0ORsLfTST93JqyumkqAOTWyh0I 9GXIbCNYcFfmAx9aqtpgJJA496+Xy3Kp4TG4mvL4ZtNfO7f5nrYnEKrQpQj03+WhH/ZowemKDpSE g7eetfUOmeQrbly001VPC8VoJEqIBtq401cH2Zn6pKEDEfKa5DxBfBFYlscdPWtWtCNWjiNW1QmY /Nt5zWTfaqEYgNzXmSn78lbayuerToqMIt9TlvEWthAxEu38a4jWdeBQhZNwJOTmuOpN/wBejPSo w05UjkdX1d5bo4fCgfnXN69e78gHn6V4aqOpzPz/AC0/M9elSW8vxOD+I8zv4Yugpydo/nXhGrMv 22YdBuxXz2Jt7RRXY+zy1x5Wvl/X9foUyxDEkZGOT60l5Idg3dDUcutzvlJpNMkJBhjHOdvNLpzF L9OOOn0qUt0au6UZeljTacCPOAM9qbHePG2Vwc1wqnzHqSr2Vol211NsbXX5farT30LJkNhc45Fc ssNK/unXSxunLU0EeWKRDjaG9aq3RwXOc4GduacU1LlkKtOEneNh1qVe33g4+vaiXOcEADp1rVJ8 3KcaacbxP//ZuMAzMQf9o1VkkV+HGSc4INXBdEc9Vx2uNtpFMjFQQuMjmr4ZVfaQcOOcDrVTj72h FJpQcuzG2EypdIM5J4NdGbYNbT3CFjJE6hlzxsOcn89o/GuerGPOvM3pSSgzntdiD2TspyyjriuY WcjySW+TPpXVhfep2fc5MdZV1K/QsFwCSzAjPIBrNluUjdlCDI74renB3scNapGJ/9kAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAg ICBQTCAwNTk2IDA0NTMgUEIgMDY0NCAwNDczIENMIDA1NDAgMDQyNyB0IDA2NTAgMDMxNSBDQiAw NTg1IDAzOTkgdCAwNzAzIDAyOTQgdCAwNjc2IDAzMDggUkggMDY4NSBSTCAwNDMwIEJIIDA1MjAg QkwgMDMwMCBpIDA0NyAwMDAgSSAwNDUgMDAwIFQgMiBWIDAzLjkgUyAxIEZSIDAwMC4wOSBXTiAw MDUwIFdGIDA1NjQgbSAwIFYwNS4xeTA3MjVZMDY4N0kwUzAwMDAzMEcwNzc1STBTMDAwMDMwRzE0 NDN5MDY4OVkwNzI3STBTMDAwMDMwRzA3NDNUMDY2MEkwUzAwMDA0MEcwMTk5WTA3MjdJMFMwMDAw MzBHMDY3NUMwMDAwNDBDMTAwDQpWICAxMDEuMjAuMDBSNTMyN1BNMDAxMENNMDE4MlBPLTAxMDBQ Ty0wMTAwQ08wNzUwMENPMDcyODdTMDMzN1kwNTAxUjA0NTVCMDUzMlNPMDg0M1lPMTAxOFJPMDg2 OUJPMTA2MkYwOTQxDQpWICAxMDEuMjAuMDBTVDAxRFQwNQ0KUiAxIEQgMDEyNSBGIDAwMCBaIDAw IEQgMDMgTyAwIFQgMSBGIDAgUyAwIFMgMTAwMCBFICswMy45DQpQIDAwIFMgMDAwMDAwMCBOIDQ5 IFMgMDA0NDYzNQ0KQiAyNCBCViAwNzM1IEYgMDEgRlYgMDQ3NyBPIDI0IE9WIDEyODkNClAgMDE3 NTAgTSAwMjQ4OA0KUE4gMDEyNSBQRiAxMTU2IFQgMDA0MDAwIFMgMDE5OSBJIDAwDQpDTiAwMTI1 IENGIDExNTYgVCAwMDQwMDAgUyAwMTk5IEkgMDANClNOIDAwNjIgU0YgMDU3OCBUIDAwNDAwMCBT IDAxMDAgSSAwMCBSIDAwMDEuMTA2DQpTTiAwMDYyIFNGIDA1NzggVCAwMDQwMDAgUyAwMTAwIEkg MDAgUiAwMDAxLjEwNg0KU04gMDA2MiBTRiAwNTc4IFQgMDA0MDAwIFMgMDEwMCBJIDAwIFIgMDAw MS4xMDYNCk5IIDQwMDAgTkwgMjAxNiBESCAwNDkyIERMIDAyNDYNClkgMDcwMSBSIDAwMDEuMTA2 IEZCKzAuMDAwDQpDWSAwMDAwDQpMDQoyNDg0IDI0OTAgMjUyNCAyNDczIDIyNDMgMjE3MiAyMjA3 DQoyNDkzIDI1MDcgMjUxOCAyNDY4IDI1NTIgMjIzNSAyMjQzDQoyNDY4IDI1MDEgMjU0NiAyNTU0 IDI2MzEgMjUyMiAyMjY1DQoyNDMyIDI0NjggMjUyNyAyNTQyIDI0ODkgMjYxMiAyMzY4DQoyNDQ3 IDI0MzkgMjUxOSAyNTU1IDI0OTIgMjY0NSAyNDI4DQoyNDMwIDI0MTkgMjQ3OCAyNTE0IDI0MjQg MjI5MCAyMjY1DQoyNDI2IDI0MzcgMjQ2MyAyNDgwIDIzMDEgMjE4NCAyMTk2DQpXDQowMDk2IDAx MDAgMDEyNiAwMDg5IDAwMTggMDAxMSAwMDE0DQowMTAyIDAxMTIgMDEyMSAwMDg2IDAxNTMgMDAx NyAwMDE4DQowMDg2IDAxMDggMDE0NyAwMTU2IDAyNjYgMDEyNSAwMDIxDQowMDY3IDAwODYgMDEy OSAwMTQzIDAwOTkgMDIzMyAwMDQzDQowMDc0IDAwNzAgMDEyMiAwMTU3IDAxMDEgMDI5MiAwMDY1 DQowMDY2IDAwNjEgMDA5MiAwMTE4IDAwNjMgMDAyNSAwMDIxDQowMDY0IDAwNjkgMDA4MyAwMDkz IDAwMjcgMDAxMiAwMDEzDQpMDQoyODMyIDI4NDAgMjgzMiAyODAxIDI2NTEgMjQ5NCAyNDc1DQoy ODYzIDI4NzEgMjg1OSAyODIyIDI3OTUgMjU4MSAyNTIwDQoyODc0IDI4ODggMjg4MiAyODU4IDI5 MTMgMjg2MSAyNTk2DQoyODQ4IDI4NzkgMjg2NyAyODQ5IDI4NzAgMjg5OCAyNjM0DQoyODgxIDI4 ODQgMjg3OCAyODk4IDI4ODMgMjg1NCAyNjQxDQoyODczIDI4NzggMjg2OSAyODM4IDI3MTYgMjU1 MyAyNTQ0DQoyODQ2IDI4NTUgMjg0NCAyODE5IDI2NzkgMjUwNCAyNDcyDQpTDQoxMDY4IDExMjYg MTA3MiAwODYxIDAzMDQgMDEwMyAwMDkwDQoxMzIxIDEzOTggMTI5MyAwOTk2IDA4MjggMDE4OCAw MTIzDQoxNDMxIDE1NzggMTUxMCAxMjgwIDE4NzMgMTMwNCAwMjA4DQoxMTkxIDE0NzcgMTM2MCAx MjA0IDEzOTAgMTY4NiAwMjcxDQoxNTAzIDE1MzQgMTQ2NiAxNjk0IDE1MjYgMTI0OSAwMjg0DQox NDIyIDE0NzEgMTM4MiAxMTE1IDA0NzcgMDE1NSAwMTQ1DQoxMTc4IDEyNTUgMTE1OSAwOTc3IDAz NzEgMDExMCAwMDg4DQpPDQo5IDkgOSA5IDEgMCAwDQo5IDkgOSA5IDkgOCA4DQo5IDkgOSA5IDkg OSA4DQo5IDkgOSA5IDkgOSA4DQo5IDkgOSA5IDkgOSA4DQo5IDkgOSA5IDUgOCA4DQo5IDkgOSA5 IDUgMCAwDQpTWTpbMF0wNzMyWzFdMDU3M1syXTA1MDZbM10wMzc0WzRdMDYyOVs1XTA1MTJbNl0w MDkxWzddMDM2MVs4XTAxMzkNCl9fX19CbG9jayBTdGF0aXN0aWNzX19fXw0KQllfTTogMTQ2NSBC WV9NQjogMTQ2NQ0KUk9JX0JZX006IDE0NjUgUk9JX0JZX01COiAxNDY1DQpCWV9tOiAwMDYzIEJZ X21COiAwMDYzDQpST0lfQllfbTogMDA5MyBST0lfQllfbUI6IDAwOTMNCkJZX0E6IDA0NTguMyBC WV9BQjogMDQ1OC4zDQpST0lfQllfQTogMDYxOC43IFJPSV9CWV9BQjogMDYxOC43DQpST0lfUk5C WU06IDA0IFJPSV9DTkJZTTogMDUNCl9fX19TZWdtZW50IDAgU3RhdGlzdGljc19fX18NClMwWV9N OiAxMzAyIFMwWV9NQjogMTMwMg0KUzBZX206IDA0ODkgUzBZX21COiAwNDg5DQpTMFlfQTogMDcz Mi4yIFMwWV9BQjogMDczMi4yDQpTMFlfTW1SOiAwMDAyLjY2IFMwWV9NbVJCOiAwMDAyLjY2DQpT MFlfTUFSOiAwMDAxLjc4IFMwWV9NQVJCOiAwMDAxLjc4DQpTMEJOOiAwOSBTMEJOQjogMDkNCl9f X19TZWdtZW50IExWX19fXw0KU0xWOlswXSswNS40NlsxXSswNS4xMVsyXSswNC45M1szXSswNC41 MFs0XSswNS4yNVs1XSswNC45NVs2XSswMi40Nls3XSswNC40NFs4XSswMy4wNw0KUk9JX1NOTFZf TTogMDAgUk9JX1NOTFZfbTogMDMNClJPSV9TTFZfTTogK2Y2Ljc3IFJPSV9TTFZfTUI6ICtmNi43 Nw0KUk9JX1NMVl9tOiArXTAuMTEgUk9JX1NMVl9tQjogK10wLjExDQpST0lfU0xWX0E6ICtiNS4z OSBST0lfU0xWX0FCOiArYjUuMzkNClJPSV9TZExWOiA5Ni42NyBST0lfU2RMVkI6IDk2LjY3DQpS T0lfU2RMVjI6IDk2LjY3IFJPSV9TZExWMkI6IDk2LjY3DQpMVkFFOiArZDIuNDcgTFZBRUI6ICtk Mi40Nw0KX19fX0Jsb2NrIExWX19fXw0KQkxWX006ICtwNi44MyBCTFZfTUI6ICtwNi44Mw0KUk9J X0JMVl9NOiArcDYuODMgUk9JX0JMVl9NQjogK3A2LjgzDQpCTFZfbTogK0MyLjg5IEJMVl9tQjog K0MyLjg5DQpST0lfQkxWX206ICtIOS4wOCBST0lfQkxWX21COiArSDkuMDgNCkJkTFY6IF0zLjk0 IEJkTFZCOiBdMy45NA0KUk9JX0JkTFY6IFc3Ljc1IFJPSV9CZExWQjogVzcuNzUNCl9fX19TY2Vu ZSBDbGFzc2lmaWNhdGlvbl9fX18NClNDRU46IDMzDQpTRU46IDAwDQpJU0VOOiAwMQ0KV1k6IDA3 MjcgV1lCOiAwNzI3DQpMVkM6ICthMi4wMyBMVkNCOiArYTIuMDMNCkxWVDogK2QyLjQ3IExWVEI6 ICtkMi40Nw0KQ1RZOiAwNTAxDQpNUFRZOiAwODAxDQpNQ1RZOiAwNjYwDQpNQ1RZQjogMDY2MA0K TUNUWUtXOiAwNjQ4DQpNTFZDVFk6ICtkMi40Nw0KX19fX0JhY2tsaWdodCBEZXRlY3Rpb25fX19f DQpCTExUOiBEMjI4DQpGRE1NQjogMDAwMTI1MA0KRk5PQjogMDM3DQpNQUc6IDAwMDAzMy44DQpJ QlM6IDANCl9fX19FeHBvc3VyZSBDb21wZW5zYXRpb25fX19fDQpNQVRZOiAFMDY0IE1BV1k6IOAx NjAgUjog/DguODgNClJNOiBDMzYwNCBHTTogvDc4MDkgQk06IDs0NjkyDQpCUkdCTTogiTcxODkg QlJHQk1FOiAwMDAwMA0KRUNSOiAwMC4wMA0KRUNkTFZUOiArMDAuMDAgRUNkTFZSOiArMDAuMDAN Cl9fX19IaXN0b2dyYW1fX19fDQowMDAgMDAwMA0KMDAxIDAwMDANCjAwMiAwMDE3DQowMDMgMDA0 MA0KMDA0IDAwNTcNCjAwNSAwMDYwDQowMDYgMDA1Ng0KMDA3IDAwMzcNCjAwOCAwMDE1DQowMDkg MDAxMw0KMDEwIDAwMTANCjAxMSAwMDEwDQowMTIgMDAxMA0KMDEzIDAwMDkNCjAxNCAwMDA3DQow MTUgMDAwNw0KMDE2IDAwMTENCjAxNyAwMDE5DQowMTggMDAzMg0KMDE5IDAwMjENCjAyMCAwMDI5 DQowMjEgMDAyNA0KMDIyIDAwMjUNCjAyMyAwMDIwDQowMjQgMDAxOA0KMDI1IDAwMzANCjAyNiAw MDI4DQowMjcgMDAyNQ0KMDI4IDAwMjUNCjAyOSAwMDI1DQowMzAgMDAzNA0KMDMxIDAwMjINCjAz MiAwMDMxDQowMzMgMDAxOQ0KMDM0IDAwMTkNCjAzNSAwMDExDQowMzYgMDAxMg0KMDM3IDAwMjAN CjAzOCAwMDEzDQowMzkgMDAxNA0KMDQwIDAwMTANCjA0MSAwMDE2DQowNDIgMDAxNw0KMDQzIDAw MTYNCjA0NCAwMDA5DQowNDUgMDAxMg0KMDQ2IDAwMDkNCjA0NyAwMDE1DQowNDggMDAxNg0KMDQ5 IDAwMDkNCjA1MCAwMDA4DQowNTEgMDAwNA0KMDUyIDAwMDQNCjA1MyAwMDAzDQowNTQgMDAwMw0K MDU1IDAwMDINCjA1NiAwMDAwDQowNTcgMDAwMQ0KMDU4IDAwMDMNCjA1OSAwMDAwDQowNjAgMDAw MQ0KMDYxIDAwMDINCjA2MiAwMDA0DQowNjMgMDAwMA0KMDY0IDAwMDINCjA2NSAwMDAzDQowNjYg MDAwMw0KMDY3IDAwMDENCjA2OCAwMDAwDQowNjkgMDAwNA0KMDcwIDAwMDINCjA3MSAwMDAwDQow NzIgMDAwMA0KMDczIDAwMDENCjA3NCAwMDAxDQowNzUgMDAwMQ0KMDc2IDAwMDENCjA3NyAwMDAz DQowNzggMDAwMg0KMDc5IDAwMDANCjA4MCAwMDAxDQowODEgMDAwNQ0KMDgyIDAwMDENCjA4MyAw MDAyDQowODQgMDAwMA0KMDg1IDAwMDENCjA4NiAwMDAwDQowODcgMDAwMA0KMDg4IDAwMDANCjA4 OSAwMDAxDQowOTAgMDAwMg0KMDkxIDAwMDENCjA5MiAwMDAxDQowOTMgMDAwMA0KMDk0IDAwMDAN CjA5NSAwMDAyDQowOTYgMDAwMA0KMDk3IDAwMDINCjA5OCAwMDAxDQowOTkgMDAwMA0KMTAwIDAw MDANCjEwMSAwMDA1DQoxMDIgMDAwMA0KMTAzIDAwMDANCjEwNCAwMDAxDQoxMDUgMDAwMA0KMTA2 IDAwMDANCjEwNyAwMDA1DQoxMDggMDAwMg0KMTA5IDAwMDANCjExMCAwMDAwDQoxMTEgMDAwMA0K MTEyIDAwMDENCjExMyAwMDAwDQoxMTQgMDAwMg0KMTE1IDAwMDINCjExNiAwMDAwDQoxMTcgMDAw Mg0KMTE4IDAwMDANCjExOSAwMDAwDQoxMjAgMDAwMA0KMTIxIDAwMDANCjEyMiAwMDAwDQoxMjMg MDAwMQ0KMTI0IDAwMDENCjEyNSAwMDAwDQoxMjYgMDAwMQ0KMTI3IDAwMDENCjEyOCAwMDAwDQox MjkgMDAwMA0KMTMwIDAwMDINCjEzMSAwMDAxDQoxMzIgMDAwMw0KMTMzIDAwMDANCjEzNCAwMDAw DQoxMzUgMDAwMQ0KMTM2IDAwMDENCjEzNyAwMDAxDQoxMzggMDAwMA0KMTM5IDAwMDENCjE0MCAw MDAwDQoxNDEgMDAwMA0KMTQyIDAwMDANCjE0MyAwMDAwDQoxNDQgMDAwMg0KMTQ1IDAwMDANCjE0 NiAwMDAxDQoxNDcgMDAwMA0KMTQ4IDAwMDANCjE0OSAwMDAwDQoxNTAgMDAwMA0KMTUxIDAwMDAN CjE1MiAwMDAwDQoxNTMgMDAwMA0KMTU0IDAwMDANCjE1NSAwMDAwDQoxNTYgMDAwMA0KMTU3IDAw MDANCjE1OCAwMDAwDQoxNTkgMDAwMA0KMTYwIDAwMDANCjE2MSAwMDAwDQoxNjIgMDAwMA0KMTYz IDAwMDANCjE2NCAwMDAwDQoxNjUgMDAwMA0KMTY2IDAwMDANCjE2NyAwMDAwDQoxNjggMDAwMA0K MTY5IDAwMDANCjE3MCAwMDAwDQoxNzEgMDAwMA0KMTcyIDAwMDANCjE3MyAwMDAwDQoxNzQgMDAw MA0KMTc1IDAwMDANCjE3NiAwMDAwDQoxNzcgMDAwMA0KMTc4IDAwMDANCjE3OSAwMDAwDQoxODAg MDAwMA0KMTgxIDAwMDANCjE4MiAwMDAwDQoxODMgMDAwMA0KMTg0IDAwMDANCjE4NSAwMDAwDQox ODYgMDAwMA0KMTg3IDAwMDANCjE4OCAwMDAwDQoxODkgMDAwMA0KMTkwIDAwMDANCjE5MSAwMDAw DQoxOTIgMDAwMA0KMTkzIDAwMDANCjE5NCAwMDAwDQoxOTUgMDAwMA0KMTk2IDAwMDANCjE5NyAw MDAwDQoxOTggMDAwMA0KMTk5IDAwMDANCjIwMCAwMDAwDQoyMDEgMDAwMA0KMjAyIDAwMDANCjIw MyAwMDAwDQoyMDQgMDAwMA0KMjA1IDAwMDANCjIwNiAwMDAwDQoyMDcgMDAwMA0KMjA4IDAwMDAN CjIwOSAwMDAwDQoyMTAgMDAwMA0KMjExIDAwMDANCjIxMiAwMDAwDQoyMTMgMDAwMA0KMjE0IDAw MDANCjIxNSAwMDAwDQoyMTYgMDAwMA0KMjE3IDAwMDANCjIxOCAwMDAwDQoyMTkgMDAwMA0KMjIw IDAwMDANCjIyMSAwMDAwDQoyMjIgMDAwMA0KMjIzIDAwMDANCjIyNCAwMDAwDQoyMjUgMDAwMA0K MjI2IDAwMDANCjIyNyAwMDAwDQoyMjggMDAwMA0KMjI5IDAwMDANCjIzMCAwMDAwDQoyMzEgMDAw MA0KMjMyIDAwMDANCjIzMyAwMDAwDQoyMzQgMDAwMA0KMjM1IDAwMDANCjIzNiAwMDAwDQoyMzcg MDAwMA0KMjM4IDAwMDANCjIzOSAwMDAwDQoyNDAgMDAwMA0KMjQxIDAwMDANCjI0MiAwMDAwDQoy NDMgMDAwMA0KMjQ0IDAwMDANCjI0NSAwMDAwDQoyNDYgMDAwMA0KMjQ3IDAwMDANCjI0OCAwMDAw DQoyNDkgMDAwMA0KMjUwIDAwMDANCjI1MSAwMDAwDQoyNTIgMDAwMA0KMjUzIDAwMDANCjI1NCAw MDAwDQoyNTUgMDAwMA0KMjU2SE1FQU46IDAwMjguNCBITUVBTjogMDQ1NC40DQoyNTZITUVESUFO OiAwMDIzIEhNRURJQU46IDAzNjgNCjI1NkhCSE1JOiAwMDA1IEhCSE1JOiAwMDgwDQoyNTZIVEhN STogMDEzMiBIVEhNSTogMjExMg0KWToNCjA0ODQgMDUwNCAwNjMyIDA0NDcgMDEwMSAwMDY0IDAw ODIgDQowNTEzIDA1NjUgMDYxMSAwNDM4IDA3OTUgMDA5MyAwMDk3IA0KMDQzMSAwNTQzIDA3Mzgg MDc5NiAxMzAyIDA2MzIgMDExNCANCjAzMzcgMDQzMiAwNjQ2IDA3MTMgMDQ4OSAxMTY5IDAyMTYg DQowMzcxIDAzNTYgMDYxMyAwNzczIDA1MjAgMTQ2NSAwMzEwIA0KMDMzMiAwMzA4IDA0NjAgMDU4 NyAwMzAyIDAxMjIgMDExNSANCjAzMjQgMDM1NiAwNDIzIDA0NjQgMDEzNCAwMDYzIDAwNzMgDQpS Og0KMDUyNCAwNTgwIDA3MTAgMDU0OSAwMTgyIDAxNDcgMDIwMCANCjA1NTYgMDYyNiAwNjg3IDA1 NDkgMTAyNCAwMTg5IDAyMzMgDQowNDc1IDA2MjQgMDgwMSAwOTQxIDE2MzAgMDk5NCAwMjkxIA0K MDM4NCAwNTE5IDA3MzMgMDg0MCAwNjU3IDE2NTggMDQyNCANCjA0MDMgMDQxNyAwNjY2IDA5NDEg MDc2NCAyMDgxIDA1MzEgDQowMzU5IDAzNjEgMDUxNSAwNjI2IDA0MDcgMDI1NiAwMjcyIA0KMDM0 NSAwMzg2IDA0NTQgMDQ5NiAwMTgyIDAxNDQgMDE1NiANCkc6DQowNjQ0IDA2NjcgMDgzNSAwNTg2 IDAxMjUgMDA3MyAwMDkzIA0KMDY4MCAwNzQ4IDA4MDcgMDU3MCAxMDMwIDAxMTAgMDExMSANCjA1 NzAgMDcxNSAwOTc2IDEwNDEgMTY5MiAwNzg1IDAxMjYgDQowNDQ1IDA1NjYgMDg1MCAwOTMyIDA2 MjkgMTQ3MyAwMjU0IA0KMDQ5MiAwNDY4IDA4MTEgMTAwOCAwNjU5IDE4NDAgMDM3NyANCjA0Mzkg MDQwNSAwNjA3IDA3NzUgMDM4NyAwMTQ0IDAxMzEgDQowNDI5IDA0NzEgMDU1OSAwNjEyIDAxNzIg MDA3MiAwMDg1IA0KQjoNCjA2MDcgMDU5OCAwNzk2IDA1MTMgMDA2NCAwMDI3IDAwMjUgDQowNjYw IDA3MjIgMDc3NyAwNTEwIDA5MjkgMDA2MCAwMDQxIA0KMDU1MCAwNjc2IDA5ODYgMDk5OCAxNTU1 IDA2NzggMDA0NiANCjA0MjMgMDUyNCAwODI2IDA5MDEgMDU1NCAxNDM3IDAxODkgDQowNDg3IDA0 MzQgMDgxMiAwOTU2IDA1NDcgMTg0MCAwMzI2IA0KMDQzOSAwMzc1IDA2MDIgMDgxMCAwMzU3IDAw ODAgMDA1MCANCjA0MzUgMDQ2NyAwNTc1IDA2MzkgMDE1MiAwMDM0IDAwNDEgDQpZOg0KMDc3OSAw ODczIDA4MTUgMDM5MiAwMjUwIDAwNzUgMDEwNiANCjA4MTYgMDYxNSAwNDIzIDAzNTkgMDI2NyAw MDc3IDAxMTUgDQowNjYxIDA0NDYgMDQzNyAwNzU2IDA1MzkgMDQwNCAwMTU2IA0KMDU1MSAwNDE0 IDA3NjEgMDk1NSAwODQyIDA1NjMgMDE2MSANCjA3MTcgMDQxNyAwNTE1IDA2MTggMDQxNiAwNDA5 IDAxODYgDQowNzM2IDA0NTkgMDQxNSAwNjA4IDA1NDggMDA5OSAwMTExIA0KMDYzMiAwNTc4IDA1 OTUgMDYxNSAwMzU2IDAwNTUgMDA3OSANClI6DQowODUwIDA5NzMgMDk1MiAwNTYwIDAzOTIgMDE4 OSAwMjY3IA0KMDg4NyAwNzE5IDA1NzIgMDUyMSAwNDEwIDAxOTggMDI5MCANCjA3NzAgMDcwMSAw NzI0IDE3NDcgMTEzNCAwODk3IDAzMzYgDQowODAwIDA3OTUgMTczMyAyMzc2IDE4NjkgMTA5NyAw MzMyIA0KMDc3NyAwNTg4IDA3ODggMTI1OCAwNzYxIDA4NDYgMDM2NiANCjA3NjUgMDUwMiAwNDkx IDA2NzUgMDYwNiAwMjM3IDAyNjcgDQowNjQxIDA2MDQgMDYyNSAwNjQ1IDAzOTQgMDEzOCAwMTgy IA0KRzoNCjEwMzMgMTE1NSAxMDcyIDA1MDcgMDMyMCAwMDg0IDAxMTggDQoxMDgwIDA4MTAgMDU1 MCAwNDYxIDAzNDAgMDA4NCAwMTI4IA0KMDg2NiAwNTU2IDA1NDQgMDg1OCAwNjM0IDA0NjQgMDE4 MCANCjA2OTIgMDQ5MSAwODcyIDEwNTYgMDk2OSAwNjc2IDAxODkgDQowOTQ0IDA1MjggMDY1MCAw NzI2IDA1MDMgMDQ4MiAwMjIxIA0KMDk3NiAwNjA3IDA1NDMgMDgwMSAwNzIxIDAxMTEgMDEyNiAN CjA4MzkgMDc2NiAwNzg3IDA4MTQgMDQ2OSAwMDYxIDAwOTAgDQpCOg0KMDk3MSAxMDg2IDA5Nzcg MDM0NyAwMTg2IDAwMjMgMDAzMCANCjEwNDggMDcyNyAwNDE4IDAzMjIgMDIyMSAwMDI4IDAwMzkg DQowODI2IDA0NTggMDM3MyAwMzgyIDAyOTkgMDIzOSAwMDk3IA0KMDY0OSAwMzYzIDAzNzkgMDQx OCAwNDcyIDAzNjggMDExNSANCjA5NzkgMDQ5MCAwNDk3IDA0NDYgMDMzMyAwMjUzIDAxNDIgDQox MDAyIDA1OTggMDUwNCAwNzg3IDA3MjkgMDA0MiAwMDQ0IA0KMDg4MSAwNzgyIDA4MTQgMDg0NiAw NDYwIDAwMjUgMDAzNSANCiBAIAUuAUBBI4STqcJAQQUokAuBogQgYACFBADKCKAHMAEIgLoQIFSL sO7RIFA6QlAECDMAIARGgAAICMJEOFIQIIMaAPCUAQAMICEhI3JBAmksMiB2YFQCE2OcJIAIAIgQ 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 ------=_NextPart_000_0F3B_016DE9EB.15485340 Content-Type: image/jpeg; name="IMG_5906.jpg" Content-Transfer-Encoding: base64 Content-ID: <0000B27AA036_0C104671_09D21C88> /9j/4bhFRXhpZgAASUkqAAgAAAAKAA8BAgARAAAAhgAAABABAgANAAAAlwAAABIBAwABAAAAAQAA ABoBBQABAAAApAAAABsBBQABAAAArAAAACgBAwABAAAAAgAAADEBAgAcAAAAtAAAADIBAgAUAAAA 0AAAABMCAwABAAAAAQAAAGmHBAABAAAA5AAAAJGkAABCZW5RIENvcnBvcmF0aW9uAEJlblEgREMg VDgwMABIAAAAAQAAAEgAAAABAAAAQUNEIFN5c3RlbXMgRGlnaXRhbCBJbWFnaW5nADIwMTE6MDc6 MDQgMTM6MTQ6MzEAIgCaggUAAQAAAIICAACdggUAAQAAAIoCAAAiiAMAAQAAAAIAAAAniAMAAQAA AGQAAAAAkAcABAAAADAyMjADkAIAFAAAAJICAAAEkAIAFAAAAKYCAAABkQcABAAAAAECAwACkQUA AQAAALoCAAAEkgoAAQAAAMICAAAFkgUAAQAAAMoCAAAHkgMAAQAAAAUAAAAIkgMAAQAAAAAAAAAJ kgMAAQAAABkAAAAKkgUAAQAAANICAAB8kgcAAIAAANoCAACGkgcAkSEAANqCAACQkgIABAAAADgy OAAAoAcABAAAADAxMDABoAMAAQAAAAEAAAACoAQAAQAAAOABAAADoAQAAQAAAIACAAAFoAQAAQAA AGukAAABowcAAQAAAAEAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUA AQAAAImkAAAFpAMAAQAAACUAAAAGpAMAAQAAAAAAAAAIpAMAAQAAAAEAAAAJpAMAAQAAAAIAAAAK pAMAAQAAAAAAAAAMpAMAAQAAAAIAAAAAAAAAAQAAACgAAAAbAAAACgAAADIwMTE6MDY6MzAgMDk6 NDc6MjIAMjAxMTowNjozMCAwOTo0NzoyMgDQhg4AALAEAAAAAAADAAAAHQAAAAoAAAA+AAAACgAA AEFPQwBJSQUAAQADAAEAAAAEAAAAAgADAAIAAABAAfAAAwAEAAEAAADzYgAABAAEAAEAAAAqBQAA BQAEAAEAAACwKwEABgADAAEAAAAAAAAABwADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2P/bAIQABQMEBQQDBQUEBQYGBQYIDgkIBwcI EQwNCg4UEhUVFBIUExYZIBsWGB8YExQcJx0fIiMkJSQWGygrKCMqICQkIwEGBgYIBwgQCQkQIxcU FyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj/8QBogAA AQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsQ AAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYX GBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqS k5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz 9PX29/j5+hEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAV YnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6 goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk 5ebn6Onq8vP09fb3+Pn6/8AAEQgA8AFAAwEhAAIRAQMRAf/aAAwDAQACEQMRAD8A7yKW6PytAwA9 6uw3E6/8s39ce9eYqnkdPsysby7CkCOUZGMkZxUmn6hc+YSY2UKuPmByT+PWsed8xfs1Yufb7hzz xiov7TmkZYwGAOecYp87GqWo555PUk1Sku753/dBypPHtSlJ20HGC6kdvdakqbpSRjqH4Jpj3t2P 4FOP9rH9K0p8z3JlGKehVW4mnuWV0CEKDjOQetZk7SpdyiZ3CryDkgEYr57HuX1x82qX4aHbRS9n oZVzeQRpcJKczbW25fkcdfpnimQ3SXkMbxZJAEZ/4CAM/wBa9C0adBQ6nFNv2yTOh0uILADjrWlB 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAg ICBQTCAwNDE3IDA4MjAgUEIgMDQxNiAwODAyIENMIDA0ODMgMDUwNCB0IDA1ODEgMDM3MiBDQiAw NDI3IDA1NjMgdCAwNTEzIDA0MTQgdCAwNTI0IDA0MjggUkggMDY4MSBSTCAwNDI5IEJIIDA1MjMg QkwgMDMwMiBpIDAyNSAwMTMgSSAwMjYgMDE1IFQgMiBWIDA1LjMgUyAxIEZSIDAwMC4xOSBXTiAw MTE5IFdGIDA2MjAgbSAwIFYwNC41eTExMjRZMDY5MUkwUzAwMDAzMEcwOTM2STBTMDAwMDMwRzEx MjV5MTAxM1kwNjA0STBTMDAwMDMwRzA4OTFUMDY1NkkwUzAwMDA0MEcwMTk5WTA2MDRJMFMwMDAw MzBHMDk2OEMwMDAwNDBDMTAwDQpWICAxMDEuMjAuMDBSNTMyN1BNMDAxMENNMDE4MlBPLTAxMDBQ Ty0wMTAwQ08wNzUwMENPMDcyODdTMDMzN1kwNTAxUjA0NTVCMDUzMlNPMDg0M1lPMTAxOFJPMDg2 OUJPMTA2MkYwOTQxDQpWICAxMDEuMjAuMDBTVDAxRFQwNQ0KUiAxIEQgMDA4MCBGIDAwMCBaIDAw IEQgMDMgTyAwIFQgMSBGIDAgUyAwIFMgMTAwMCBFICswNS4zDQpQIDAwIFMgMDAwMDAwMCBOIDQ5 IFMgMDAzMDk5MQ0KQiAyNCBCViAwODg1IEYgMDAgRlYgMDAwMCBPIDI1IE9WIDA4MjgNClAgMDE3 NTAgTSAwMzg3NQ0KUE4gMDE2NSBQRiAwNjYyIFQgMDA0MDAwIFMgMDE5OSBJIDAwDQpDTiAwMTY1 IENGIDA2NjIgVCAwMDQwMDAgUyAwMTk5IEkgMDANClNOIDAwODIgU0YgMDMzMSBUIDAwNDAwMCBT IDAxMDAgSSAwMCBSIDAwMDEuODcwDQpTTiAwMDgyIFNGIDAzMzEgVCAwMDQwMDAgUyAwMTAwIEkg MDAgUiAwMDAxLjg3MA0KU04gMDA4MiBTRiAwMzMxIFQgMDA0MDAwIFMgMDEwMCBJIDAwIFIgMDAw MS44NzANCk5IIDQwMDAgTkwgMjAxNiBESCAwMjM1IERMIDAxMTcNClkgMDcwMSBSIDAwMDEuODcw IEZCKzAuMDAwDQpDWSAwMDAwDQpMDQoyODUwIDI4MDEgMjUwNyAyMjA3IDIwNTggMTkyNyAyMTI2 DQoyNjc4IDI2NTAgMjM2NSAyMjA3IDIxMjYgMjEwNyAyMTQzDQoyNzczIDI3MjcgMjMwMSAyMjI2 IDIxNDMgMjA4NCAyMTA3DQoyOTMzIDI4OTcgMjU5MSAyMzc4IDIxNDMgMjE0MyAyMTQzDQoyODI5 IDI3ODQgMjQ5MCAyNTMxIDIxMjYgMTk4NSAyMTQzDQoyNTQzIDI0ODAgMjM4NyAyNDYyIDIwNTgg MjEwNyAyMTQzDQoyMjkwIDIyNzggMjMwMSAyMzk5IDE5ODUgMTk4NSAxODI3DQpXDQoxMjEzIDA4 NjUgMDExMiAwMDE0IDAwMDUgMDAwMiAwMDA4DQowMzY3IDAzMDIgMDA0MiAwMDE0IDAwMDggMDAw NyAwMDA5DQowNzEwIDA1MTYgMDAyNyAwMDE2IDAwMDkgMDAwNiAwMDA3DQoyMTU1IDE2ODEgMDIw MSAwMDQ2IDAwMDkgMDAwOSAwMDA5DQoxMDQ1IDA3NjkgMDEwMCAwMTMzIDAwMDggMDAwMyAwMDA5 DQowMTQ0IDAwOTMgMDA0OSAwMDgyIDAwMDUgMDAwNyAwMDA5DQowMDI1IDAwMjMgMDAyNyAwMDUz IDAwMDMgMDAwMyAwMDAxDQpMDQoyOTE4IDI5MDAgMjgwOCAyNzk5IDI2OTYgMjU4MyAyNjg2DQoy ODA2IDI4MjQgMjc5NSAyNzc1IDI3MzAgMjcwOCAyNzg1DQoyODQzIDI4NjMgMjgwOSAyNzc4IDI3 NTggMjcxNyAyNzkzDQoyOTgzIDI5NjEgMjgyOCAyNzQ2IDI3NDUgMjc0NSAyNzk2DQoyOTE4IDI5 MDIgMjgyMyAyODExIDI3MTMgMjY4NCAyNzcxDQoyODE1IDI4MTYgMjgwNSAyNzgxIDI2MjkgMjY1 MyAyNjk0DQoyNzcwIDI3ODIgMjc3MyAyNzQ4IDI1NzYgMjY1NCAyNDYwDQpTDQoxOTQzIDE3MTEg MDkwMyAwODUwIDA0MTcgMDE5MCAwMzg4DQowODkxIDEwMDkgMDgyOSAwNzIwIDA1MjcgMDQ1MiAw Nzc0DQoxMTU3IDEzMjYgMDkwOSAwNzM1IDA2MzkgMDQ4MyAwODEzDQozMDUwIDI2MDUgMTA0MyAw NTkwIDA1ODMgMDU4NiAwODMxDQoxOTM4IDE3MzIgMTAwNiAwOTIzIDA0NjkgMDM4MyAwNjk4DQow OTUwIDA5NTQgMDg4NCAwNzQ4IDAyNjEgMDMwOSAwNDExDQowNjk0IDA3NTYgMDcxMCAwNTk3IDAx ODEgMDMxMiAwMDgxDQpPDQo5IDkgOSA5IDkgMSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkg OSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5 IDEgOSAwDQpTWTpbMF0wMzU4WzFdMTA5M1syXTAwNTBbM10xMzM3WzRdMDAzOFs1XTIyNzlbNl0w MDQ4WzddMTAyMls4XTAwMzYNCl9fX19CbG9jayBTdGF0aXN0aWNzX19fXw0KQllfTTogNDA3NCBC WV9NQjogNDA3NA0KUk9JX0JZX006IDM2NDQgUk9JX0JZX01COiAzNjQ0DQpCWV9tOiAwMDExIEJZ X21COiAwMDExDQpST0lfQllfbTogMDAzMCBST0lfQllfbUI6IDAwMzANCkJZX0E6IDA3NDYuOSBC WV9BQjogMDc0Ni45DQpST0lfQllfQTogMDYwMy45IFJPSV9CWV9BQjogMDYwMy45DQpST0lfUk5C WU06IDAzIFJPSV9DTkJZTTogMDENCl9fX19TZWdtZW50IDAgU3RhdGlzdGljc19fX18NClMwWV9N OiAxMDQyIFMwWV9NQjogMTA0Mg0KUzBZX206IDAwNTYgUzBZX21COiAwMDU2DQpTMFlfQTogMDM1 OC42IFMwWV9BQjogMDM1OC42DQpTMFlfTW1SOiAwMDE4LjYxIFMwWV9NbVJCOiAwMDE4LjYxDQpT MFlfTUFSOiAwMDAyLjkxIFMwWV9NQVJCOiAwMDAyLjkxDQpTMEJOOiAwNCBTMEJOQjogMDQNCl9f X19TZWdtZW50IExWX19fXw0KU0xWOlswXSswNC4xN1sxXSswNS43OFsyXSswMS4zNFszXSswNi4w N1s0XSswMC45Nls1XSswNi44NFs2XSswMS4yOFs3XSswNS42OFs4XSswMC44OQ0KUk9JX1NOTFZf TTogMDMgUk9JX1NOTFZfbTogMDQNClJPSV9TTFZfTTogK2w3LjUxIFJPSV9TTFZfTUI6ICtsNy41 MQ0KUk9JX1NMVl9tOiArOTYuMjAgUk9JX1NMVl9tQjogKzk2LjIwDQpST0lfU0xWX0E6ICtUNi44 NSBST0lfU0xWX0FCOiArVDYuODUNClJPSV9TZExWOiBCOS45MSBST0lfU2RMVkI6IEI5LjkxDQpS T0lfU2RMVjI6IGMxLjIxIFJPSV9TZExWMkI6IGMxLjIxDQpMVkFFOiArYTIuODEgTFZBRUI6ICth Mi44MQ0KX19fX0Jsb2NrIExWX19fXw0KQkxWX006ICt8OC4yMiBCTFZfTUI6ICt8OC4yMg0KUk9J X0JMVl9NOiArezIuMTMgUk9JX0JMVl9NQjogK3syLjEzDQpCTFZfbTogLTg1LjA2IEJMVl9tQjog LTg1LjA2DQpST0lfQkxWX206ICs1OS42OSBST0lfQkxWX21COiArNTkuNjkNCkJkTFY6IIUzLjI4 IEJkTFZCOiCFMy4yOA0KUk9JX0JkTFY6IHUyLjQ0IFJPSV9CZExWQjogdTIuNDQNCl9fX19TY2Vu ZSBDbGFzc2lmaWNhdGlvbl9fX18NClNDRU46IDMyDQpTRU46IDAwDQpJU0VOOiAwMg0KV1k6IDA2 MDQgV1lCOiAwNjA0DQpMVkM6ICteNS44NiBMVkNCOiArXjUuODYNCkxWVDogK2EyLjgxIExWVEI6 ICthMi44MQ0KQ1RZOiAwNTAxDQpNUFRZOiAwODAxDQpNQ1RZOiAwNjU2DQpNQ1RZQjogMDY1Ng0K TUNUWUtXOiAwNjM4DQpNTFZDVFk6ICthMi44MQ0KX19fX0JhY2tsaWdodCBEZXRlY3Rpb25fX19f DQpCTExUOiBEMjI4DQpGRE1NQjogMDAwMDgwMA0KRk5PQjogMDM3DQpNQUc6IDAwMDAyMS42DQpJ QlM6IDANCl9fX19FeHBvc3VyZSBDb21wZW5zYXRpb25fX19fDQpNQVRZOiAFMDY0IE1BV1k6IOAx NjAgUjog/DguODgNClJNOiBDMzYwNCBHTTogvDc4MDkgQk06IDs0NjkyDQpCUkdCTTogiTcxODkg QlJHQk1FOiAwMDAwMA0KRUNSOiAwMC4wMA0KRUNkTFZUOiArMDAuMDAgRUNkTFZSOiArMDAuMDAN Cl9fX19IaXN0b2dyYW1fX19fDQowMDAgMDA1NQ0KMDAxIDAwODQNCjAwMiAwMTEwDQowMDMgMDE0 NQ0KMDA0IDAwODENCjAwNSAwMDUyDQowMDYgMDA0MQ0KMDA3IDAwNTMNCjAwOCAwMDI4DQowMDkg MDAxOA0KMDEwIDAwMTYNCjAxMSAwMDE2DQowMTIgMDAwOQ0KMDEzIDAwMDYNCjAxNCAwMDE0DQow MTUgMDAwOA0KMDE2IDAwMDQNCjAxNyAwMDAxDQowMTggMDAwNg0KMDE5IDAwMDUNCjAyMCAwMDA4 DQowMjEgMDAwNg0KMDIyIDAwMDQNCjAyMyAwMDA3DQowMjQgMDAwMQ0KMDI1IDAwMDMNCjAyNiAw MDAzDQowMjcgMDAwNw0KMDI4IDAwMDUNCjAyOSAwMDAyDQowMzAgMDAwNA0KMDMxIDAwMDUNCjAz MiAwMDAzDQowMzMgMDAwNQ0KMDM0IDAwMDMNCjAzNSAwMDAzDQowMzYgMDAwMQ0KMDM3IDAwMDQN CjAzOCAwMDAxDQowMzkgMDAwNQ0KMDQwIDAwMDENCjA0MSAwMDAwDQowNDIgMDAwMg0KMDQzIDAw MDQNCjA0NCAwMDA3DQowNDUgMDAwMw0KMDQ2IDAwMDQNCjA0NyAwMDAxDQowNDggMDAwMw0KMDQ5 IDAwMDINCjA1MCAwMDAzDQowNTEgMDAwMA0KMDUyIDAwMDMNCjA1MyAwMDAxDQowNTQgMDAwMg0K MDU1IDAwMDINCjA1NiAwMDA2DQowNTcgMDAwMQ0KMDU4IDAwMDQNCjA1OSAwMDAwDQowNjAgMDAw NA0KMDYxIDAwMDINCjA2MiAwMDAxDQowNjMgMDAwMQ0KMDY0IDAwMDMNCjA2NSAwMDA1DQowNjYg MDAwMA0KMDY3IDAwMDINCjA2OCAwMDAzDQowNjkgMDAwMw0KMDcwIDAwMDINCjA3MSAwMDAxDQow NzIgMDAwMQ0KMDczIDAwMDENCjA3NCAwMDAyDQowNzUgMDAwMA0KMDc2IDAwMDINCjA3NyAwMDA2 DQowNzggMDAwMg0KMDc5IDAwMDENCjA4MCAwMDAyDQowODEgMDAwNA0KMDgyIDAwMDINCjA4MyAw MDAxDQowODQgMDAwMA0KMDg1IDAwMDINCjA4NiAwMDAyDQowODcgMDAwMQ0KMDg4IDAwMDENCjA4 OSAwMDAwDQowOTAgMDAwMQ0KMDkxIDAwMDINCjA5MiAwMDAxDQowOTMgMDAwMg0KMDk0IDAwMDAN CjA5NSAwMDAxDQowOTYgMDAwMA0KMDk3IDAwMDINCjA5OCAwMDAyDQowOTkgMDAwMQ0KMTAwIDAw MDENCjEwMSAwMDAwDQoxMDIgMDAwMA0KMTAzIDAwMDANCjEwNCAwMDAxDQoxMDUgMDAwMA0KMTA2 IDAwMDENCjEwNyAwMDAxDQoxMDggMDAwMw0KMTA5IDAwMDANCjExMCAwMDAwDQoxMTEgMDAwMA0K MTEyIDAwMDANCjExMyAwMDAwDQoxMTQgMDAwMA0KMTE1IDAwMDANCjExNiAwMDAxDQoxMTcgMDAw MA0KMTE4IDAwMDANCjExOSAwMDAwDQoxMjAgMDAwMA0KMTIxIDAwMDANCjEyMiAwMDAwDQoxMjMg MDAwMA0KMTI0IDAwMDANCjEyNSAwMDAwDQoxMjYgMDAwMA0KMTI3IDAwMDANCjEyOCAwMDAxDQox MjkgMDAwMA0KMTMwIDAwMDENCjEzMSAwMDAyDQoxMzIgMDAwMQ0KMTMzIDAwMDANCjEzNCAwMDAw DQoxMzUgMDAwMQ0KMTM2IDAwMDANCjEzNyAwMDAwDQoxMzggMDAwMQ0KMTM5IDAwMDENCjE0MCAw MDAwDQoxNDEgMDAwMA0KMTQyIDAwMDENCjE0MyAwMDAwDQoxNDQgMDAwMA0KMTQ1IDAwMDENCjE0 NiAwMDAxDQoxNDcgMDAwMQ0KMTQ4IDAwMDENCjE0OSAwMDAwDQoxNTAgMDAwMQ0KMTUxIDAwMDAN CjE1MiAwMDAwDQoxNTMgMDAwMA0KMTU0IDAwMDANCjE1NSAwMDAxDQoxNTYgMDAwMQ0KMTU3IDAw MDENCjE1OCAwMDAwDQoxNTkgMDAwMw0KMTYwIDAwMDINCjE2MSAwMDAwDQoxNjIgMDAwMA0KMTYz IDAwMDENCjE2NCAwMDAwDQoxNjUgMDAwMA0KMTY2IDAwMDENCjE2NyAwMDAxDQoxNjggMDAwMA0K MTY5IDAwMDENCjE3MCAwMDAxDQoxNzEgMDAwMQ0KMTcyIDAwMDINCjE3MyAwMDAwDQoxNzQgMDAw MA0KMTc1IDAwMDANCjE3NiAwMDAwDQoxNzcgMDAwMA0KMTc4IDAwMDANCjE3OSAwMDAwDQoxODAg MDAwMQ0KMTgxIDAwMDANCjE4MiAwMDAwDQoxODMgMDAwMg0KMTg0IDAwMDENCjE4NSAwMDAwDQox ODYgMDAwMA0KMTg3IDAwMDANCjE4OCAwMDAwDQoxODkgMDAwMA0KMTkwIDAwMDANCjE5MSAwMDAx DQoxOTIgMDAwMg0KMTkzIDAwMDANCjE5NCAwMDAwDQoxOTUgMDAwMQ0KMTk2IDAwMDINCjE5NyAw MDAwDQoxOTggMDAwMA0KMTk5IDAwMDENCjIwMCAwMDAwDQoyMDEgMDAwMA0KMjAyIDAwMDANCjIw MyAwMDAwDQoyMDQgMDAwMA0KMjA1IDAwMDANCjIwNiAwMDAwDQoyMDcgMDAwMQ0KMjA4IDAwMDIN CjIwOSAwMDAwDQoyMTAgMDAwMA0KMjExIDAwMDENCjIxMiAwMDAwDQoyMTMgMDAwMA0KMjE0IDAw MDENCjIxNSAwMDAwDQoyMTYgMDAwMQ0KMjE3IDAwMDENCjIxOCAwMDAwDQoyMTkgMDAwMA0KMjIw IDAwMDANCjIyMSAwMDAxDQoyMjIgMDAwMA0KMjIzIDAwMDANCjIyNCAwMDAwDQoyMjUgMDAwMA0K MjI2IDAwMDENCjIyNyAwMDAxDQoyMjggMDAwMQ0KMjI5IDAwMDENCjIzMCAwMDAwDQoyMzEgMDAw Mg0KMjMyIDAwMDANCjIzMyAwMDAzDQoyMzQgMDAwMA0KMjM1IDAwMDENCjIzNiAwMDAxDQoyMzcg MDAwMQ0KMjM4IDAwMDENCjIzOSAwMDAxDQoyNDAgMDAwMg0KMjQxIDAwMDMNCjI0MiAwMDAyDQoy NDMgMDAwMw0KMjQ0IDAwMDINCjI0NSAwMDAzDQoyNDYgMDAwMw0KMjQ3IDAwMDYNCjI0OCAwMDA2 DQoyNDkgMDAwMg0KMjUwIDAwMDYNCjI1MSAwMDA0DQoyNTIgMDAwMw0KMjUzIDAwMDYNCjI1NCAw MDA2DQoyNTUgMDA0Mg0KMjU2SE1FQU46IDAwNDUuMyBITUVBTjogMDcyNC42DQoyNTZITUVESUFO OiAwMDA1IEhNRURJQU46IDAwODANCjI1NkhCSE1JOiAwMDAzIEhCSE1JOiAwMDQ4DQoyNTZIVEhN STogMDI1NSBIVEhNSTogNDA4MA0KWToNCjM5NDcgMzAyNyAwNjk4IDAxMDEgMDA0NCAwMDIzIDAw NTggDQoxODcyIDE2NDQgMDI4MCAwMDkyIDAwNTYgMDA0OSAwMDYzIA0KMTg1NCAxMzU3IDAxNzIg MDEwOSAwMDYyIDAwNDYgMDA1MyANCjQwNzQgMzY0NCAxMDQyIDAyNTEgMDA2OCAwMDYzIDAwNjEg DQozNjc1IDMwOTIgMDY1NSAwODEyIDAwNTYgMDAzMCAwMDYyIA0KMDk2MCAwNjE0IDAzMDYgMDUx MSAwMDM3IDAwNDkgMDA2MSANCjAxNjEgMDE0NSAwMTcwIDAzMzEgMDAyNSAwMDI1IDAwMTEgDQpS Og0KNjQ5MSA0NzM0IDA5ODkgMDEzNSAwMDY1IDAwMjggMDA3MiANCjI5MzUgMjQwOCAwNDc0IDAx NjEgMDA4NiAwMDgxIDAwNzggDQozMDYyIDIxMjIgMDI5OCAwMTg5IDAwOTMgMDA3NyAwMDY4IA0K NjYzMCA1ODgwIDEzNDkgMDM1NSAwMTA4IDAxMDEgMDA4MCANCjU3NjMgNDY0MiAwODI3IDEwNTkg MDExMiAwMDQ3IDAwODEgDQoxMTUzIDA3NjEgMDQwNCAwNjYwIDAwNzUgMDA2NyAwMDczIA0KMDIw NyAwMTkyIDAyMjUgMDQzMCAwMDU0IDAwMzMgMDAxNSANCkc6DQo0MDk0IDMyNjAgMDg0OSAwMTI1 IDAwNTIgMDAyOCAwMDc0IA0KMjA4NyAxODgzIDAzMTggMDEwMiAwMDY2IDAwNTUgMDA4MCANCjE5 MzEgMTQ2MSAwMTkzIDAxMjIgMDA3MyAwMDUxIDAwNjYgDQo0MDc5IDM3MDggMTI1OCAwMzAxIDAw NzggMDA3MyAwMDc2IA0KMzkwMSAzNDAwIDA4MDkgMTAwMSAwMDU4IDAwMzQgMDA3NiANCjEyMDIg MDc2NSAwMzc3IDA2MzIgMDAzOCAwMDYwIDAwNzcgDQowMTk5IDAxNzkgMDIwOSAwNDA5IDAwMjQg MDAzMSAwMDEyIA0KQjoNCjk5MDQgNjg2NCAwNTA5IDAwNzAgMDAzOCAwMDI2IDAwNTEgDQozMDMz IDI3MTYgMDE1NyAwMDYxIDAwNDUgMDAzOCAwMDU0IA0KNDQ0MCAzMDk0IDAxMTkgMDA3NyAwMDU4 IDAwMzggMDA1NCANCj0wMjEgOjkwMCAxNTgyIDAyNDMgMDA1OCAwMDUxIDAwNjEgDQo5MjAzIDY4 NTUgMDc4NSAwODU1IDAwNDUgMDAyOSAwMDU4IA0KMTIwNCAwNzE4IDAyOTggMDU0OCAwMDM4IDAw NTEgMDA3MCANCjAxNzYgMDE0MSAwMTU3IDAzNDMgMDAyNiAwMDMyIDAwMjIgDQpZOg0KMDU3MCAw OTAwIDA0NzEgMDcwNSAwMzU5IDAwNzUgMDA2MSANCjA4ODEgMDg4NyAwNTQ3IDA1NTUgMDUwNSAw MTIxIDAwNzQgDQowNDM3IDA3NTQgMDY4OSAwNTU5IDAyNjMgMDUzNiAwMTA4IA0KMDQ5OSAwNjE0 IDA1MTEgMDQ4NCAwMjM4IDAyODkgMDE4OSANCjExOTEgMTEyNiAwMjg2IDAxNTIgMDE4MSAwMzAy IDAwNzggDQowOTI5IDA5NjIgMDI5NyAwMTI0IDAxNDMgMDEwMiAwMDYxIA0KMDkxNSAwODUxIDAz NjggMDA1MyAwMDQyIDAxMTkgMDA0OSANClI6DQowNjU3IDExODMgMDg2NSAxNDI3IDA3MzYgMDE2 MyAwMTMxIA0KMDk1MiAxMTA1IDEwMjQgMTE3NyAxMDkzIDAyNzMgMDE2OSANCjA3MzYgMTQyNSAx NDExIDEzMTUgMDYzNiAwOTgzIDAyMDQgDQowOTM4IDEyMjggMTAwMyAxMTQ0IDA1NjEgMDU2MSAw MzI0IA0KMTQ4OSAxNTY4IDA1MTggMDMxMCAwMzUxIDA1ODcgMDE2OSANCjA5OTEgMTI5MyAwNTMw IDAyMTQgMDIzOSAwMjAyIDAxNDEgDQoxMDM2IDEyNzIgMDU2NSAwMDk2IDAwNjEgMDIwMiAwMTE2 IA0KRzoNCjA3MzIgMTE0NiAwNTYwIDA4MTMgMDQxMCAwMDgzIDAwNjggDQoxMTQ3IDExNDYgMDY0 NiAwNjI4IDA1NjcgMDEzNCAwMDgxIA0KMDUwNCAwODY1IDA3ODIgMDYwMyAwMjgxIDA2MzEgMDEy NiANCjA1NjkgMDY4NyAwNTkyIDA1MjEgMDI1NyAwMzM0IDAyMjUgDQoxNTIxIDE0MDkgMDM0MCAw MTczIDAyMDkgMDM1MCAwMDg3IA0KMTIyMiAxMjEzIDAzNTQgMDE0OSAwMTczIDAxMTcgMDA2NiAN CjExNjggMTA0NCAwNDU0IDAwNjMgMDA1MiAwMTQ0IDAwNTEgDQpCOg0KMDgzMSAxMDE2IDAyODcg MDM0MCAwMTgyIDAwMzQgMDAzMCANCjEyNzIgMDk4MyAwMzIxIDAyNDcgMDIwMSAwMDUzIDAwMzAg DQowNjIxIDA2OTUgMDQxMiAwMjIwIDAwODkgMDM5OSAwMDc0IA0KMDUwMSAwNTYyIDAzMDIgMDE4 NCAwMDkzIDAxOTIgMDE2MyANCjE1MDAgMTI4NyAwMjA3IDAwODcgMDEzMyAwMTk0IDAwNDQgDQox MjQwIDExMjAgMDIxMyAwMTAxIDAxMjkgMDA2NiAwMDMyIA0KMTQ0OCAwOTY4IDAzNDAgMDA0OSAw MDU1IDAwOTUgMDAzMiANCiBAIAUuAUBBI4STqcJAQQUokAuBogQgYACFBADKCKAHMAEIgLoQIFSL sO7RIFA6QlAECDMAIARGgAAICMJEOFIQIIMaAPCUAQAMICEhI3JBAmksMiB2YFQCE2OcJIAIAIgQ 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 ------=_NextPart_000_0F3B_016DE9EB.15485340 Content-Type: image/jpeg; name="IMG_5907.JPG" Content-Transfer-Encoding: base64 Content-ID: <0002E5FD9F79_0D5F043E_0315C344> /9j/4bIARXhpZgAASUkqAAgAAAALAA8BAgARAAAAkgAAABABAgANAAAApAAAABIBAwABAAAAAQAA ABoBBQABAAAAsgAAABsBBQABAAAAugAAACgBAwABAAAAAgAAADEBAgAOAAAAwgAAADIBAgAUAAAA 0AAAABMCAwABAAAAAQAAAGmHBAABAAAAQAIAAKXEBwBcAQAA5AAAAOKlAABCZW5RIENvcnBvcmF0 aW9uAABCZW5RIERDIFQ4MDAAAEgAAAABAAAASAAAAAEAAABWICAxMDEuMjAuMDAAADIwMTE6MDY6 MzAgMDk6NDc6NDkAUHJpbnRJTQAwMzAwAAAhAAEAFgAWAAIAAQAAAAMA1gAAAAcAAAAAAAgAAAAA AAkAAAAAAAoAAAAAAAsAHgEAAAwAAAAAAA0AAAAAAA4ANgEAAAABBQAAAAEB/wAAAAIBgwAAAAMB gwAAAAQBgwAAAAUBgwAAAAYBgwAAAAcBg4ODABABgAAAAAACAAAAAAcCAAAAAAgCAAAAAAkCAAAA AAoCAAAAAAsCQgEAAA0CAAAAAAADBQAAAAED/wAAAAIDgwAAAAMDgwAAAAYDgwAAABADgAAAAAAA CREAABAnAAALDwAAECcAAJcFAAAQJwAAsAgAABAnAAABHAAAECcAAF4CAAAQJwAAiwAAABAnAADL AwAAECcAAOUbAAAQJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAIQCaggUAAQAAANIDAACdggUAAQAAANoDAAAiiAMAAQAAAAIAAAAn iAMAAQAAAGQAAAAAkAcABAAAADAyMjADkAIAFAAAAOIDAAAEkAIAFAAAAPYDAAABkQcABAAAAAEC AwACkQUAAQAAAAoEAAAEkgoAAQAAABIEAAAFkgUAAQAAABoEAAAHkgMAAQAAAAUAAAAIkgMAAQAA AAAAAAAJkgMAAQAAABkAAAAKkgUAAQAAACIEAAB8kgcAAIAAACoEAACGkgcAkSEAACqEAAAAoAcA BAAAADAxMDABoAMAAQAAAAEAAAACoAQAAQAAAIACAAADoAQAAQAAAOABAAAFoAQAAQAAAMSlAAAB owcAAQAAAAEAAAABpAMAAQAAAAAAAAACpAMAAQAAAAAAAAADpAMAAQAAAAAAAAAEpAUAAQAAALyl AAAFpAMAAQAAACUAAAAGpAMAAQAAAAAAAAAIpAMAAQAAAAEAAAAJpAMAAQAAAAIAAAAKpAMAAQAA AAAAAAAMpAMAAQAAAAIAAAAAAAAAAQAAACgAAAAbAAAACgAAADIwMTE6MDY6MzAgMDk6NDc6NDkA MjAxMTowNjozMCAwOTo0Nzo0OQDACA4AALAEAAAAAAADAAAAHQAAAAoAAAA+AAAACgAAAEFPQwBJ SQUAAQADAAEAAAAEAAAAAgADAAIAAABAAfAAAwAEAAEAAAA7YAAABAAEAAEAAAAqBQAABQAEAAEA AACwKwEABgADAAEAAAAAAAAABwADAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/2P/bAIQABwUFBgUEBwYGBggIBwkLEwwLCgoLGBESDhMc GR4dHBkbGx8jLSYfISsiGxsnNigrLzAzMzMeJjg8NzE7LTIzMQEICAgLCgsXDAwXMSAbIDExMTEx MTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTExMTEx/8QBogAAAQUBAQEB AQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMC BAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYn KCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeY mZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5 +hEAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYk NOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaH iImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq 8vP09fb3+Pn6/8AAEQgA8AFAAwEhAAIRAQMRAf/aAAwDAQACEQMRAD8AwkTIqdFGK7Tz1sShacoo FYkUYp6rhiccUDHqARUoXIoBoNvpTgMjFAhVQDFPAFAw2gUFRUxhGN7dRtt2uG3jgUbMflVCALz7 +tBT1FAWDbTSnakOw3aM4pPL9qBjWXimFankXPzjvpYay4qJuB71ZNiNhUTED60m7K4EZYZ6EU1x xUxkpbDKzDLY9KNvNMBCvFMYUwImWonXipHYhZaidKQ7Fd0GKrSJSCx2iRPuOBjHX2qXzIo8CSaN Du2EFu/pUxnyysOFKUtiBtVtdqlH3kqxC9DlevWon1hfMwkLFf3WecEBzjr0quacmkla/c1jQivj f6/8D8SxpGoG/inVl2yQSmJvfHetDufpWiTsrmEklKyHxA4PNS7sH3qKlRU48zHCDm7IcTg04dc4 6+1WQSZBFKAPT9KYC8d6BjPFK6vYQpFJjJpjQu32pMCkAEcZppGBQxjSM0m3igLCMOMdqjYVM03F pbji0mrmB4lv57W2CWzbWONzDqB7VzjPrK9WvemeS1XRVo2fQ6VBP3u5e059VnVvMvJIdvTfGD/O nTXWr2zEKsdwo/iC8/kKuVNS0E6UWV18TyRtia0G4dcNjH4Vbj8R2UnD+ZGf9oZ/lUKny7EOk0WI rq3n/wBXMjE9geasBcChGbQ1qjNZwnzR5mOUbOyI8c1Gw5ppp6oWxERzUTigaK7iq8i1Cknctpq1 yWC9fWma1RpCzQIGeVzgMp5PGc9RWveaVLL81pPAZvNEwSRCBuAxgNnvjuB9RW8mqUrf1udUKUqs bo5OW/vQ+1nKFN427cbdxyw/OqjyyuMPI54xyew6V1RhBJNHK5PY6/wG/wC6vI/Rlb88/wCFdaR8 3asKvxGT3JokJjLbTtzjOKkVRnGAM1noxaokMYRyCMGgrkUJ3V0Jpp2YoXmlOfwFAiM5JqVFwK56 a5pcwId3pRiugommtWgjjdv4xkComjfy/NCfJnGfespzfI3HcuMPesxnamkc0qkmqTb3sEUuey7i DigRlydozgZ/CuPAVW4yUtkbV4aq3UjYZ9KYeK9I5jMmtYr/AES7LKd772BHVsZwPwwK5ddfGxBJ CThcE7uv4VNHVyO6LfIkUdU1MXTr5BlRcfMC3B/CobLVbiyAUYePrsbt9K6baWHY0pNXsbuPE8GG x1Zc/ketVIzpaNkkN7bTj9QaWoyGaax3ZjiJ/DAP+fpU8GsQwxBf3ykdlwRUtX3IZY/tW7ldWjeL B6KV61oWd2LuNiV2SKcMuelceJX7pkqCUkydqiIooRcaaTMajvIjI4qFhWxBC44qs4qWUR+FnKXE 4WMuSo5Bxiup3COEnbgKOnFaYlWqHr4PWkjhr+dbvUJ7hQQsjlhnqfen2mjXmpW00lqqt5WOC2Cx PYV2N8lFN9jzGvaVWl1ZreA5SdRuIyCpMfKnqCCP8a7ljyPpXNKfOlIyqR5ZWLuk3QiuWsrjm3uz 8jH+F8dPxA/Me4qS6tWtpmif8/UVzr3ajXcqSvTT7CqTLbbmH7yM7GPr6Gm1VNWTj2M6jvZ9xaMV oQA6cUjPtkhUYJeVU59Cef0zUvRaFLsW72NIrt0QYUdqLm1aDTUuHODICQnfGKyjN8qv1NZQXM7d C7ra7PKkXkFOKbqai3tre0H8Iy3ufWoWqii5aOTMs9abXQ0mrM507MKfA4iuEZuVPyn6H/IrL2UY QcYI0U25JsjljZZzGOpOBUet3ENlbSN91IIzk+velF35UU1bmK+l+eqfZSixx+SGSX0xwx/Wqd18 P4b1N9vP5M5Y5RsYYdiB/wDXNTCpyO6PRjCKhYyL74capZxh/MgdT6E5H6Vnt4J1kRCRbXeD6OP8 a6o4iD3MnHS5mPot8jlTazEj+6uf5VBNYTwNiWKRD/tIRWinCWzFyldomHpUTKwPIoaFYejPGQVY g1qaJNJJqMhZ8/LznvWc0uVktHQMKjPWoOMYwqFqAsQvxUDipZRl6ZIqeYBEGkK8N5hB+nB/nmuj tIhfaKBdSAJJG2Bk5ByQuecAcV04mN3zXOrCVNXSfY5eaNI5XRXDqDgMOhroNDuxp1vEiJJK07Ek BOVwPrz29OtXip/ufX/hzOgl7bQXRlNt4ykUiNWcupCdOP8A9Vdi3LisE04Rt/WpjW/iMkaFJrcx uMqffH4j0Nb1mputBil1Bt8kfCuBguM4Gfc8fjWFfRJjo6tpj1sFmhZkUx84IFZ9xCbefyznpkHF TRn71iq0PduMpR9K0rxlKDUHZmEGk9Re9RPj+0dOz0NwM/8AfLVVmoWY4tcxoXMZuNaW3xw8gDf7 oGT/ACx+NW7/AHahf+Wh+WP5fx71y81uXyR08t+bzZd+yo8EEckSt5QAGTn/AD0rO1eORrkysDgj p6CohO0k2VOCcbIzDSHjvXecYnSnCGSeJ/KXPGM+9TKSirsqMW3ZFx1jF4s7DYEQnB7kCuL8Z3Gf DdwSx3TMAuO5zn+hrnoav5HRUW3mzlNL8cX9taLYXUz+SON4HzAY6H1/nXo3h3XLfU7WL7NeqJAv KAg4I4BIPIrgxUqlKSn06+R10pJR5Tde7mh+4CY8g9WJ98jHFY0cM41Fpbi9aaJ1YOp4BBH14FdS uaU5RSd1dtET2TWSyJZXAQz43M/8I5+7gd6ZZWSKGkvLvMyP1BzuX+dPm6suFaCi7r3itLo1hcs8 0jo8ec8Rkv8AlUC+HtLtroG+ji+zkffJ2j2/GqjUdtGPnjJWa6fiOn8G6NMD5McyLtysiSAg/nWE ujwaVfbVlJaTorEHj8KtVpPRnJNJK5baozW554xulQvQMgbrVW5mjhTdI4Ue9Sxow7eULGYyxDem eT34q291JMpV1HKgZHt616Doqb80YpNO97MrsD5ZXAB55z1q9Bqk9qYZIkUMgGA4yOP8mniMMqyU ZdzelVdO7RNo1wf7et5CMbpuxPG7iu78P6taX13JpWpr9m1BWO0McCQZ4KnvxXHiaUqUIq9/6RcZ Kc3dF/VLSawtpdyMw2EqQM7uO3vW+JIp7W2toSGJlQYHoOf6Vy1J88U0VThyyaNTakSyLwoLHiuO sdJGi6e1qLya6Hnu4eU8gHt+n5k1lT+MdT4WTZoziu84hc4HWp7G1S/2ThlYQy5XnowrKtPkjc1o x5pGvHEUujdGFWlKldw98f4CqNjaJPcFboniYSoVcjJHPOPfPFcFOXc7ZxLGq61f2GuafZWukyXV tcHEtwpOIufYY9+cVNqwkYh96iIRsCuOS2Rg5/P86qwjD7dqbXonARyyeXGWzjtUt/ZXt1ZW9rpG oCxm8zzJH2A5Hf8AUj61z13ax0UFds3NSSWW3ijggjkDPiVmbbtXB5HHJzjivNPiLGbSO2gUAKzF se44/rWeGd5o6JRucE6RzLiRRn1pg09/vQS5I6A16VXDqpr1C1yz9t1pF5ubll4GPNLDjpxn61di 8a+I7WNI1vXVU6Bo1P8AMc158sM4u7QXaViUeP8AX1J33SSZz96Ff6Cqh8W6k+d5jbPJyD1/OsK1 BVFaVyXdu7JbfxddwvkwRsPQZH9atSeMZLl08/T1dB1HXj244p0MP7JcsS4TcWXLnxjBJa+XHaTg 9Ao+UY9OprO0Rpr7VjcTcCNPlUdBnit4UnfUmpNuLOkxTWrc4yJqhYVMY8oN3M7U3Zbdljk2NjOf Ss62mieQvcSqXUbVz9Ov1NKW5aWhAqY4IxUgHFe9YwuIRgkcU0ZyPanYHpoWbJlhnWcnHlurD65F d9qOh22teXBNFmUn5HXhl981w41KyuVFvm0O80Wwa30eDT55nuRGB+8m5Zvqa0m01cBo/lYdCOMV 4Teuh3M57Wbi6tWjhYbxIxXcR04JrNVgYstkkcDNdFGK3OPFzaSSJkUbegNJIgXGK3Zxwk7lO7mj WGIOxCSypGSPRmAraudJnufD9zZWFwLSeZTslj4KsTknj19feufEu9j0sOt2aej6Pd2Ph2Kxub15 7lYypuOpyc9M+nv6Vi6nb3NnFBFFPuljxuklGd/rkDHWuaKvLQ6rxWsth9vNeQuPMmDjGAB/DTbi a5uWbeVAzhUU5yMdT7+1dXs+V3OCGIjO8dipn14NZupak1vJ5US7nxkn0FbylZXNMNQ9tVUCH7fJ LEY5FUq4IOOKtWGqfvk86RVZePM5x+OK5qt5RPellKppuk7+RrXXiCO1dYn5ZuBsIbP0xXmfjrUp b3WUikG3y0zjPrz/ACxRg4vnueXKS5uXqc2tWIhXtIaViY5Hf86jZyfenYBrSZHQYpnmADpUMTQ0 uMUxpSTxWbERFie9dX4et/J03zCPmlO78O1ZT2Mar0NQ1GxrI5iFjVeeVIYmkdtqr1NIEc5caisu tRB13QBhlf7y8Vf167sbnSTHaWSxEPkMFGcZ/wAmlCHO3LojSUuRqPcr3UMUN/cRQtviSRlRsg5U Hg5HBqS6hWFo2T7ksYdf5EfmDXuQbcVfqcsmk7IrE/Nimsc5NaWE2MugY2liDZ2kj64Nej6XrCRe J9LWbIjurc7G7bzg4/IV52P1gjpo62Z6hFp0Ut5bXZeRXgDAKrkK271HfpWd42fxLBp1s/hlI2m8 397u2k7ccfeIGM9e9eCzrY29tItSntjdYWdVI3IemcE49sgU2bQh5bOjCTbyQeDW0JqLsYVqXOtC iLZRz8351DdjyraSUI2AMZAJNdDZwwjroZtxYrqGn/Y3BzIuBtOCCOcg+2M/hWzYXNxBptrbXP72 dUUvKrY/4Ecev1rnxEkkr7no4de9Y6C7ur2ysN6WySbuFZJNw/SuYkNxdXIkuMh+6nt9Kijbn1Hi +ZQaRNhyeEbnvioJEcDd93nvXW2eXCLuJeCPzv3EgkJUZI5+asG706VruaeBWkiVyhxyRjv9Kxk/ dR72XSjHEXkNS2DKGIx9Kr3NuVQgNyxz0oufVLQs6erf2aWccJMuxiPXgivP/Es3neKL09gwX8gB W2H0kfMY2P8AtDf9dCglWo69NGIrdMmm/L2qgI3PYVETioYhuaaelZsGIieZKqAgFjjJrvIPKS3S ON1KqABg1hNnPW6AzVGxrO5zjCRisnWrgRWDrxuk+QVx0nJ1JN9DeSXKkjkkk23Sv6HODW/oxtLt 1+3sywgDCAffYZ/xNdNKUuWUF1/QmqldSfQlvrlbu8edI1jUgfKowOBjp+FR3UhNnaexdf5H+te/ FcsdTminJkGx2YED86UQMfvP+ArzMXm9Kl7tP3n+B7+B4frV7Sq+7H8fu/zJSitIzlRliSa3NMsL zxBeWFlHcFDG4dH/AOee3uK+feLq1aicme1jsuw+GwijCOz+ezPSrDxS9vdPp8oeaeE7S6JkNjvg ZIq/deILt1CwWbsSeSxCgfmc/pXXGDlqj53GU1h5R5mrSSf3q/qVb23lnUNBNGZeMeZlR9ARnH1q zCsJZbO5MhadSBh2ww78ilKDj8Rywqxl8LLbXmjQ2UsDXFuIrdSJFLA7APX8qxNZ1iyh8PLPp6q8 MpKxhVKg8nccY9jWTrQk2k7tGihZXSMSC/uHtFn8vyjKNqjOfl6Z/HH6e9Q+e4lznI6delW5+0tI +nybCQpQ5t2xPOdZB87cc9a2tO1k3dzHaXeS3RZO4/xpJ2dzszPBwxFFp7m+trAVTF0uH6ZGD6fz qnqkMNvayYd2ZeuBgVtOtZXsfC08I09TlG1m1kjEcTlmPAG01f8AD90v206f5SskaFgyZ3HAB5/M jPrWNSpGrZR1R34bCS9/n0drjdL1mHVLnyruzSIbWfzogcqBz8w/A8+4pljdWRvjLNau8JYrGpbO 4544wOODWMastIx89+yPcq82GXJzXVkl6vRfLr6Gfc64mqanHGpjgtLZiQhIG49BxXm2ozfaNavZ gchpnI+mTivRwjXfU8TEx5Zxj5Xfq/8AgWEjHerS8CvVRkhGPamUwGN61Ex54qGAY96Y/HeoaJJL CNpdQhRW2sWGD6c16va6RpN3YW80lk++WMOcc9a4a8mnoZtXEn8MaYpIVZ4vdVP8xWfP4ds442kT UJVwP4n/AMax52S4IpS2UMNkjG4ZiTt39eeuMAVxfiSR11DyW/gXAx396hVbtor2fuqRiAZye1OF 3MImjRyFYbT9PTNaJtR06k2u9eh2Nt4f1CUAfZnUN0LjFQXVq9lOYHZDsP8AA2RXLisZXrL33Zdj 7TL8Dg8PLlpq8u/9bEFSxWs8ylo4nZR1YDgfU15257Lkoq7Fe3EanfNHuH8Knd+o4/Wuw+HKk6jd vj5o7c7fxP8A9at6CXOkeVm0k8LI6ewSO1eRY1AJO5j3Zj3PrVpG+bmvagrRsj80r1JVKjlIn3cU W8siXKHOEJwM9zSqfCVQvzoqa5YaldaTq1ta26SPMCiFIUTcD1+YtzwfasW40ubTfD1tFeFE8q0E KRA5PmHlj+fFeOlPmk5bf0/me2o3SS3G2RubzT7RWt8NDCIiF5DBe/456UGzjPRmX9a6YP3UfT5Z NODinqmxptNuWZw2emBVrRbNZNUVxkiMFyfp0H502duJm40pPyOlgtrg3Mf7kgK4Lbs4HJP9agvm j1KVrTzAm5ir7M8DIyc4HYiqnOMUkz41taWPOdTgSw1KSOEMyxyfLnqQDXYeGVa50mWeC4tlYEAu VwQAASOmRxt9elcFOXvShF69D0FJKnzS8rm28MVreSX1rbW0dmyEzTpGMkY+b37VhHRFgtDexiRS RlUnYFlB6tgdD/nrWjc6l2mrdPNWW/zv8jKnWqQUuZ9lrut7W+X4nn00KieUxj5Nx2/SuanhMF3I h7nI+lb4Ga+sNd7k1ov2auTRKan6V9GjjWg1zTTQIjc1GoyalgK3AqCQ81E2JlrT3Md3Ay4JVt5x 1x/kV7PZullpNukgI2RLn8q8qrPmm0S421MgX8l/ulty6xDgbXIOc9xT/tZubR4pS3QqwDdR9TWS d2Eo8pFZRtLbo6fLJsKEY/iHXNee+MLR/wC1YpCoXfHlsDuDUxXvlKygzmZEbfswcKa1dP00TfK6 AgMCT7Y6frXSldNsxudDczX86n7Zd7RxlGf/ANlFQx/ZIrgblkuFAPCnZk9vXivHbvrJn6HTtGLV NW8/63HoJcERW8cYP8TDJ/Xp+GKla2lnbdc3Ekh9zn+dYSq9Ec9TExjtq+/+RKlrHH0QZ9etamg6 hLo2vW12gLRuRFKg7gng/gaVCo1VTPKxcnVg+Znci+0zUbyU2LhlU4ZTwyn6dauR20ROSG/Ovo6b vE+KrQSm00TiFM4RMnr61jahq3+itc2ZDFHADkfKT7etZYmqoRffWxrhKfPUS6GO+v6q8ZX7c6KS eEUDH6VmzTNI+6Z5JT3LNk4+tfPTrTnpJn1UKMIaxR02jTpZ6g9jfsm50Eq8cYx0/DFdLqccclhv itVuJSu5MAZYDHAP0r2INuNzzHOVKonB2MCHRru61WGWS3FtbBMyQFwxRhxgnuD14xx6VJq7R2DR yQxrIkKhhEvy55HzEjv/APXoldRbaO7E411XGlzXXXpfz/JiL42AhjBspN2fmyQePb9K5q7vmnuJ Hi3oG6kt8x5z2rzq2MU1ZKzJhgrSu3oZVyvmPuJJYnknqabpst7pUhe3mKMeG7hx6EdDXFUquDUk 9TsjTUk4taG/beML2OMxT2kEsO0rsUbeD1/OszV/Ed9qcJjJEMZ/gQ9fqa1WOk4cqRj9TSm5Xvcx cfJVG909bnDZ2uvQ1vSqulUU49BygpxsymLSWL+DI9qa2V6ow+or6ejmFCotHZ+Z506E4kJcZ/xp CwrrU09mYOIw4NAwBQ2hWI3I9ahCNLIEXqTis5vQlmk8DwzJLCvI+Uj2rsrTx2xJhurMLCFwMKSf oa8OnUUtZM2q0mn7qFtNVtrsPHAXEgfgDuO2fX0q3c3SaYiz3c6W6yHaGfnP5Vryq90ZTbtZloWT rGWSV2Rzv+U8HPesfUtMN9pztaW8bzKcBZxj6/SqVtyIxbTfY5nUvDJsrb7VFGxOAZIt2dvHOD/n pUC30MsSRWqlIznd6j1FVz3VjPl1LFvbB2IcMSP9rArQgtxECMAA9h0FeLioOnLkbPsa06jlaTJs HNLtOetcbMbj1U47VZto2e6gVQC3mA/1rSj8aMqnws6aCx0TUrOCXUR5NwrNEtxGxRlKkg/MPp3r sY9MS1DTreMqBRnzQGAx359a9iUnKLhCVmj5+UYtpyVypAdJ06W91D7ZJPcPjfnJwOAAi9hnHTvW HqU51PVHsWjNrbxWn2oBhg5yQAR26dKyVaNSKgnzdG/68+hcFyyula3Q5xlyDxTSnHSvGPdRaE0+ t6kqIvlTQhXSTeeMADp9efwrt9L1r+0Yru0uY0hu7UDzBnchyMhgcdP5V6mHxPNNQturnnV6OjXb X9CjpV5exzSW9w6S2o3fMuDk+2O1Ra1eWQ06UQBWkJEW4dsdqnDYiThOE3dx/LoZThGVWPL1OX/h 7U/+yrwwmVbdynXIFclOjOq/cV7HpVa8KXxu1zNEMr3LKVfIzuXHTpipfJOOrA/WlUpWtzIqFRS2 YhiwPvN+eaytXa6ii/cA44O/C4Hrmpp06XOudaBUlU5HyblWG6klLyBFkVuT5bBVj9eOtSwzRzs6 A4dDhlr08RhYqCnT+aCMHTpxlN72ttrdX/DYkaHNNjsnnnSKPl3YKPqa4VqymNtdNvb5rjy7K5Cw jlniIDc4wPfvj0qGTSJd+17Rw3psxXW6dWk7x/A5o1KdRalP7DE65Vcg9CDTTYAdB+YrenmNaDtL X1JlhoS1REbBieox/u10Nt4ftYdDjvIo3urtlyIlyDn/AOtXQ8wdVctrHLUoezs79Sna2dzNeCBr d04yzFCNvsc065gWCRkDfOvJUjBx6j1FcCg2mzpqv2dRQ39Df8GWMcsstywywO0e1djc6ba3kQS5 gjlQHIDqCM12UVaCPOr61GK1qEXCqAB0AFVJIEVi2DmtDJO2xk38C7scYNec3tr/AGfezkQN9nVi Qwxjn8amd3FpFROotdJvJp0hW2ZXfoDxmtVfCWpGVYmWNZG6KX5Ned9VrVHzS6ntVMZCL7lpfA+o Dh2RXxnHNY1/ps+nXHkzphsZGO4qauDcI817kU8ZGcrWsU1lUg7VZsdcDOKt2N5HFeRMSylWBwVI yO9YOEqbTZupqd4noUXh2wlt1mhZ4nKt0bIJbnOPqc1g+JNS1f8AsW2gtprVpIJTHcLc7Y9390jc QD0PSuypR/eX/m0fkrL/ACf3njN6W7Eeh6N4lQyajcyRxxqjLFHblfnYnbkdsdTk+1R6tB9nvldp 2a6eJUlXduwBk8nuST+lRVoRoQ93ZX+9qxph7zqpFPjHWm/jXBc9ixv6FoD3USXYmePcxHyHqvpV u7srix1ZxZ+YVuECsUCbmYZwAT17/hXtYWlFQi+pxtqpUcbd/wCvvK3hO7j1WW6tLm1eBoVO84Kh gTjn0PP+cUy88H2Xh6C5NjHMwfGfNl3BcegwKrGYT6omoap/h/X5Hn0sSqk+ZaGIRxjjmuo0zX5r uP7OtqibFAZ0P9K5ctrclTkSvc6szoqpS527cpSWW1sPEy2NvpF0zzr8100hYKDycceo65q3f6c0 mqxK9pG1hJH/AK9eGjYZzuNexUprltLU8qnUblGV7adOhjapobWsBuLeUSwjv7fWuQ11JH0ySRJV wjAPGJVVgOOdp5YHOOOmK8qeEjSxCS2ex6VLFuthm3o1uVpDpcAgliMTQx6duK5+aSdgQQ3fhjnH TA9+ca2SS7WZoR5I6nghfoDnOa7eqOaKXK2+hv6VPDLaXIQySiCESvlgWXHDYyfmHfqCPetvwqsG o63asH+TDOueMkdv51y1qHLUU9rvp2vp+G53UKzknF9j0m5gF0hiEjggcNnJX6VzGl2dzpU80Oo6 j9qZpMRs0eMZ7H656dK7ugU6bkuVbnL+INKs9JvVW0tzEJ8sVDfKD/sjsPxrIKe1eTilaob0fgsP tTHHeRNLGGTPT+X64rqraOXWSsC26QSQ5LMMgVzyb5HFLc8/MHJSj2Ga1FqUN5JpllIJHaMAEoDy R1rMk0W4g0tP7ZlUyeZ5avGclBjr/wDWrojFpcktbdflqc9Ct7O8uq2/Udolz/Yd7tkl3WzttLY+ 63+Br0GGWOeJWRgwPpXXRmmrIupJSfOupM20r26c1m3U1uqg+Ym1jhTu4J9PrW5k+5zGq3jLHmIb ucfL2+vpXDeILktttFOf4n/pSk7K5th4c9RRPVm8dxIwEekhWXgbiARWbP4lnudbh1AR7fLXATd1 /GuKWYKD0R6OGwjhLnbNOfxtc3ELRtaRjOPmDkf0rntT1OG9lUX9ssduq7IzHzsJPU55PWsXjnNq NhPB8kHZlQ6Jr0bBtJtobmKSPY8zsqhAD3yeuOc81LPpqWlwEaXzXVRuIbIU9wMAZ+uK0r0V7PmW 5P17nr3lpfT/ACL9tfXcCRiG9lXyxhATlR7YrWh8W6rFHtxbSHszIf6EVw0sVVpaLVHVVw1Oo7vQ sWXiGfUFli1FtshxsSI7QR7Ec5qm+jwyXEzRxSrHtzv5Kq31/wDr16+Hp08ZTvUeqZ5VedTB1LU1 o0OtfD9xHl5YQWDAbWwRjv361Q1aCGPUGSDAUABgOm7viuOvhoUaFnvc7qGIdaomv62/U0fD2tS2 QFkYpJVySpTkjPqPStqS4uYbq1uILfe8ZLKH4B6Ag/8AAWJB9RVYCol7vf8AT+kFaPJJruNutUvl 1mC7e0EBQyI20A74ioKg8/e3D6e9Gt6zmEhraQk9SVIXP1NdWL1oyXf8upzKF+WPbT8WzjBHlhuJ 255x1xXQWdjYx4ms55nbI3KM4GDwSPzrjy72aqNy36F5m6ippRWnX9DQisWs9ME1juTyW2JFk7ZM JtUEHJwPY84zWPr+uR3tnbwrbXVrOo4Eg2dOCeD+letXk1Qclp/meRhEp1op/wBf1+pnSazcSaP9 g8uMDPLjqe3T8BXMatp8dwqzSxTMsR3P5I+bZ/F2447mvH+syrTgktv6Z7kcLTownd6P8OxW07TL O7txJJZbIioXeJiWHzctjpnHGOnFZtxYwLGDaXitsLPuORxnj/gQAz/LNesefKUHFWVmibQ40ubW bMa7t5JOPUf/AK63dOsJPNht7QbZC3yEHHNeViaslUcF5Hp4SEfZqb3VzrDb3qXBgvWLFl2Ptcjc MDP1+vYk+tW9Q06dNUQbJmBk8wNuyC25T/TAGcDJ4r0FJpcrX9MiSfNzp2OY8US3U+oAT2zwhR8q tgk/lWEUbHINediZt1Xc6IW5VYYUyOhrT03xBc6WjxsrSxsPU5H+NZQnZmdekqkLHS2jajqd4LqK YWy/Kr9AG2knHrzkZHtWG94t7i3vJdsaMCz4ycgEEkjg547ACuqE7pqWi2X3HgX/ABKmq3lpPGIL NWCjqccMf8/zNdH4e0+6sbJJJr5ArrkQsDlfxp0I+/aGyO/k9nRtLq9DTN48z/Z3hJjfIcnpWRcx C2TJmJUvhQyDZER7c+vWuuZjB2TVr3MnVjNBOxmjRS65Z1HBx6e1caN5n87ahkY5O/n9Kio/c5Tt y+jzTcm9Ej2u60O2uNbFk2kXIV4y4vFA8vPoSDnP1FYPivQj4fsG1BA728f3wASV96ivh4TTklqY 4fFSptKT0OWg1qG5gMsLFkHU9Dn0xTtVvn0ywtJ/sIupbt2EKShtvy47DBJJPHI6GuOGFlGouY9C rVXslJP4tv68jqL+xuLeyLW8gspfsoLw4yIZGHT8DWXottff2UxvryOWWaXZHvkA6rwNzYySe1dT jF1JRR5iozlTlUtew9ba9jh5VuBndIm0H6jtS+YwHVSR1x0rzq9OMLuLuenQrxm+Xr/X4jWcuP4c 9uK9C0qPQrvT4NQubhNqqqiKcjEbD+Zz659RXTlbXPJdWZ5hpBMt32n2l+wa0lUSMud0bbdwHTPq K85nRIriSMYYKxAPrW2ZR91N9zDLZe80h1pcy2dyJ4DtcDHIyCPQ11WmeKZr2ZYHgjRl6Fc4P4V5 2BajiF3en3nZjKcfZuq+iNu+u7aTTyfMiEm3I3jgfX0ritV1y4vd1swRI1OCE6tj3r1sbUdOldbt 2OTDUpTq6/CvzMzIx3FdhYTW+k6YHg23Eu3kxnOCenSssohH2jlJ/wBMzzmU/ZKMOr/Iz9c1u7s3 VlCGRJFAbB2k9G/nWLqus3erGCKdowiMX2ogHYjr17105li5QfsYdVqc+WYNTSrz3T0KOwetVjaX l3cQjT7TzdQikco5xtaJkwQ3Tpjjr94/SvJwkowqq56+Kg5UnYzEsNR8LRs91HJJFJ94Kh2o3bLV jQ3iOpeaFkQSli6HgE9sd69tHitFiy11YVjikQGNRgkLjHJ6e3/166GF45kDphgeQQa8zGUGm6i2 PUweITSpvc7bSbWB7K2uCYHk8nZyRlTk9e9R+J9SktbVI/MZbgtlHXpj1zXXCooUObyGveqcr7/q cVc3UtzJvnlaRvVjmoCFbrXkObk7yep1OKWiJk0+4aISJC5U8jjrW5Ppei2+g/anleTszY7+mK3o 0ryvJaHn4vEcukH6mFZ+KktFKfZFVIsKnJzgemBjsP8AGtV9V0+3sUks7DMki7lldNwOexz0ro5o tvmWxnVwT5I1U7qX5mZobWi6xEbkfLk9Rxmuy1bxDpmlW6PNly52oka7ia1wslZtixUW5KxCmsAW a3T2jLEx4GeTVKLU7DxBuFvDIJRw4ZRuG3sR+VdDkpRTXXb+vmcyUo+92KF/ZK9m0N1HIp7FBuQE 8HHpWQNNt9NdydsiniNx0/Osa0pxtOCvYpNOLg9mz6EZFA9qqXVvHLEVZVdGGCDyDW9zO2h5lF4H bSPElydPNmunOd7xTqXfn+5xwM+/an3mpavpsyFY0WBSFwuCaxqRlGPPH+kaq9W0GwOq2FzI9zdz yqSjAoDgkn+dTxzi91c/ZHYWsaKm1IVELgcjryCDyMfpXHTqxs7s6IKdOlNSX9bEE1/ZRMbe6W4m jmfdvYnCYzxke4qxew2wBiexKo3ImTOQPXA5qNGriqqUYQqR0/zVl+Nrho97pWkSzNcWrX54MUhA GOOhB/nXQS3H2jyZjEA0g3Kc/Lg44/wr1Mp9m7pLVHHmbq8sZS6lW6WD7XbvPGrKr8qOVxVPVtL0 HUrCS602ZbW7hy/kSHhsdh9R6etdGY0ISguf5GOXV5xk1A5aEpcR7lXBBwVPVT6GrMNw+nlpYsL8 vLHt718prCfMuh9XdSVmTT+IZtV0y0hgubVpJ5BHFHJGwHX+93yR71XnspbW7mt5gPOibaxQ5BOM 8fnXrYqlN0VKb1R52HxKdVwgtGdnY2mgw6fG0zwZZerEGqkWiRSak2oLfrFaR/MsUUZ6Y/iPTHU5 r01SoqC9mkeOq9b2knVvbX0IYLm08W2NzBpk9sLmEqQZI+CM/wC0O+OtTab4atltyuoxwrdbufLk yD6fpUwpKq/3sTavUeHi40m09H/SMvxLpFvpZWSKRVVj9zOcf1rEtI5rmb/RTufG4YOMD1rx8dhf Z1lCn1PUwGJdajzVN0XvtuqS3W2HV9IuNOOM+e+ZCv8AFkYyT19a46XSBMoS2VxaJISJG53HpnBx npXopSjDe9jSll/tKko1VyaX+fQsQ6RHDHIN5Z5F2sxUEkcev0qzZ2aWsZVMnPc//WryquNnUXLb QqnhYU2pLckkwGVwQSvBA9KpXc7RWc8kTZCcgA/TOKyhFt6msp9izcRSGzjvY7QwLNHhV83zFMgI yD3HBP5VGVJrsxsIQceVHFgpznFuTudx4aurCfw4/mAfa7SEhlJ67QcH8a4F4dU1S4uJ5dPub0N9 x41O1fyGB/8AWpSTlS9zRseA5IYySqO107N99P0udTo+nTaT4X87UYkDL2VQXAJwAfesK41+31OU 2luHE0LnAcYEg7itFNqF/JnLi1CrXqKi9Fd/8MR2dkbjUWhQOqnLbD1FdBNZppqQssig5+XzI8rn rjpmqoxjaTa30CbnUcIx3evzKetQeIZlWe0vYBAOJFABG7PP/wCqpY7p7CCKK2sC8xIaSUMBx6fl XdGSnZS2X6GM3ZKOz6heeI7E6tHabYkvXUKokyTg9qikR7HzWuGjMEh5RyAoP403Exu5Wie4zLuT HfvVDBjBDZ5NZ9TVNKLR51460DXtZu7fUNGmEUcG5JMyFNp4OT2IFQT3Siznt5grXH+rJk+RtwOD 17YO4H61q6kadGUpv0uOlzzqRjCOqv8AcZXlFPlPb3zUiSTRIyRu6q33grEZr5blnGVup7slCcbS 2NSz1ua3h8mWKKeL0kX+tE+rgSKbOEQqVw6MxcH6Z6V0RxrUOWSu+5zVMDCbunZdjIlklEoVCoyM jd/EfT2/z6V0Hg/zbrVo4VJMABZo25AI4/CtMHVnCrFwe+/oGKpQlScZLbY6q7hFtpGoTJH/AKhi wCjsMHFee6td3X9oQxzabeRSTYLMqj92vuPWvoa/76Hs57Ox4VCCpTVSO6Hz6NJc6lnw5dC8VUBu BPgHgZxxgZpbO3XUbEzwSxyAHBCjcMg8g54rwczhSw0FUR6uFxNSTcZajItLd9LjtUuXlkimZ0Sf buDDPQgcUlusrQL5yAS4BcKcgE89a4p5m8T7r0t+JrhqUaT9SURs3yqpYnoB3rpoJby5QwadE1vA EcTNcJhg+AUIGOVyefpXpZbPkjOT0Xf0McySly99R9pYDRmnmg063EcjEsbddrEADaOeM53egAql 4lBMkc0O/wAsjlgDivReKhicHKrRd1bRryPMowcMVHm/E5TUp2jg87947qeCOSPzrIt0VruOaXzZ IvLyY8deu0H1BIFeXhVKp77d2fY4Sk4WqU7XWlvkzVfTbbxBpUzy3TQwW4Lxy+XhOpVVJ5wT12jP GO9VvDWkxTXMdnPe5RsJGy53A8nAOOM9ORjnjpXo1IqcVb+rGlCnKftJTh70Va11u/8AP9R1jPNf 3d3aSadNZXVuC7pISw25x1wOeR9RmriWczvcxm5tIU8n5HuF5ZucgDp6VgsFThLnvon1PE9pOph5 NborRxxSWEWmalb2cig73nhiww5OFyO/etN9JtzAkujxtGXyQLgByF6Ede+ODXJm2Pp06Vk+v4df wOXD4aonzPQBoQd441KRumT5aDj/AAqjJoP2F3CbhvOSDyM14dPGz54xqP4lo32uelHCyg49LlGR GgnO4mMqcMwPbv8AhXoNwy6RoP2qNhIhwqp0GDXsYSreLd/M87MUlaS8ypdtaXnhppg52znaVzkq 3+RWL/wiVnY2EuoS3EeJEysix8ge9aNe1koRdrxv+ljy022nF2MC+WePUCGEkNwuDzweg6EH61p6 H4gvZ7+K0uZ4CvVWlGDnt7ZraMvZzUN0z0qTjVp6fFE6K+nie0ZWto5UEm7fC4xvz146806w0veB JLyx5r0IxUdLHJOo2rMnufDmm3N3HdTWcTToQVcrzkdKbe6Ws0RVo1ZT1BHFUZnoUlwoLHIrMurv aGkPQDp61kb2OdutTkk83SjPaguSs0Myl1dWByBgj5u+OeAawNU0N9NMabkkBjBjdMkYzj6/5FeV mNGr7FzcrpP7tlb5O/3nr5ZOnCuqfWSKcliYLOCX97+8yQGQgY7c961tE8PX96rSBPKhcDbK345x Ty9NV4Seun4W0/QWaOMqc0u/66mqlppFnH9kiuRL5kRcznmI87cbug54+vHWuYvbYQahPCFKhHIA bqBnit8xpQUE4q2v56nNgZy5ved7r8tDe8Madp97seea1LxSfvYZxzjsRn+lc9qeuz3uuanpmlWU y3EczxwfZIQrEdAxccgcZ9K6cPQ5sOvYW5rbvbdX+4WJk+ZrX9P6sWrbxF/wjtgNJ8Qvd2l8hBMo j8zzgScnGMYHAyDzViW8vfD2ti+aJtS0iRRPbzbNzRqwGcHrjB9fwrrnLn5uTfW1/wACZ0nDWLvd Xv8ALb5f8OXZpdO1fU4L/TiqGSESS+WMAtn9evNW4dIitQqxQs5bOAfujJOR+v6Cvis4qe1x6wzn yx6t9O/5Ho4LDxlyp6F1rAQxhY1RVHQAYqs1n5jF2kVY/wCIEdK+ZwmKhGTnOPN8+r2ZtDki2pK6 MOO8Gn6o01sqSIOAG6EV0Gj6vLq08glijRM4ITjNfoOV4lSorC1Y6SWv3ankZjhrL6ynrG2nzNXU B5dtJ5Hy7RkgnOa43VNeutSTyfLWKAfwL39ya7a9KOX4VUaKsmcmXpYrEOpPoYsrQtbsHR9+3BjK Egn6+n8u9YyXkcVy63VtcSnywmyScrg4wCeAT9KyoKnGn+7erWp9zl1KM7xj8T7q9jodV0/QbObT 4NOn2zyIPPAUSKuVwSBJwG64z68VLNeeH5dRs9OtNPdCWKS7F+cqRyBg8n69K64yjFa7kNYidZSk +VSb8rpN28tn91jcn0DVjfr5OqSNYiQBIZwZCRxwx7iuc1XT3sLzyZH3naGz0689K5MYp+y30PFW Mp1ZpRhyt726v0KG0eo/OtXR9VitEEFwvyA/LIOcD0NfN42j7Wk4Lc3UbmvNrujWreZLfW8XGclx k0y7kgvrUXEE0QjK7klYEqfTpXg0sHiFUhKorK6V3sZ1Kis090cRJJd3GpeW9lcEzMdkgjO1j3+n tU5l1GO3ez3ytAmC0LDIXH8hX2KpeyfJTfMttPyOOXJiKXLPQW01ERwtBLFiNmDHa3cf/rrU0/V7 c3EAuIrg2cLEjKjAbjDAg56ZBHvVUlH2iqN7dPv/AMzza2CdGPNuixrMOn6hrCF9/kHCiSPr9a5z WtMs7eVZIRIsjjIVum08/wCFbwnGpzyXR/pYWDk/a+71JdHDu8cxnVYbXG+IsckE43AfiPyr0myZ WjUrgqRwV6V6lGfNTiy8TDlqMtPBvIIpHh+Q1oYN6WOch8eTMyJc2yDPVlbH6Vkat4muNRmVUbyb YnK7W+YntnHSpqUpOD5ex9ZDI/3jad0vz6EVrdT2rMYpGXd97vn611Ona5pl0iLqFtGJV6MVyv8A 9avEw2K5b06usWcOIw/M1Up6SRLqWvRXcf8AZ2mwLLvG3JT5VHsK5O98TeI47ldB/s4vBblRGTGQ 3yNkOCPTA59B9a7VXTk6kfhSsZYfBxqP2daVm9d/8/W/yNfTtatZLmztL2SGJSH87egCuO2fQ5Of SsfxENS0jXmeWB57ObBSWMFuf8PSsKlb2kISq6Rbs38ml6K9vvOanTdOTcPl+FyVxmI/KGbHAOOt dvaR20fhpLmzkmiuL9Ui4G4Rnpk45AHTPbNPKqkW5We514x8sU7abMytV8Iy+KtHtpNUjtohBZBR PGdxRweTnPzLgdD3q9Lqc8OkKLfy1075hHMU/wBVGqgBcdySDycADvxXr6O8jhk3O8raXvbte+hh 3rJZavLJZMwVWO07eMHtg9qq3vxFi0r93M8Dyr/yzjUk/wA+K+KzHLYY3EuOtz1YNQpKUtNDV03V NS8S6bbXdukdskwJJYk4AJHA/Dv/APXrJ1CZraS6thrTSkfMvnR4UHnIbaBgDB6ntXNg8LgsNGpS l71SL0/C3l6nNOVSUoyjsYlnql/NcrDc6SyqTjzo3DL9fpXT2OoTWFpLBEmDIc+YpGenTkGvdpVK eHqKoveXYqtTniaTg/dLy+I5EEqmyVw64+aU8H8ulc8yNzwtbYvHvExjFq1iMJgI4acpJ3uNUyxS pLFt3xsGXIyMj1FRXKPd3Mk8+0yyHJI6/wCf8+9c0MVKnTlTXU9WlLkfMtytcWC3Mu98lyck5zn8 6kWHDqwxuXowPI/GpliKso2l3uW6zcVTb0R3eh24i8M2aSk/vJCxJPByxA9+mK5zxW3m+I7jPRQq j8hXpV5NYSN+tv8AM8Sik8TLyuYZUCmFQc4NeNNXPTi7GFF4Wiadpr64kuZCe/Aro9Lu30eHyLdU MA6RnjH0NPGT+s0/ZNWiZU8PGN5bt9S3Fr92t/DKVh8tX6FegPHX9fwrZvnt7XXGM/krFdLh5GGA hHPP5/pXo5LRhRpyjH1PMzGL5o/M4vVWghvpWtQZLVjuWQLgY/HmqUjEJvj+8BlSPWoxNJwqM7MP NTpJGnbX91ZaJbXUafad+6OaN49/zA4yDx9aY+jahPbrcZ83cOp+U/lXfUoqUG46Nu5xUIxpQ9s+ 9rdfUzptMuPmVreQDac5HGPrWz4Z8Sy6ZItneOTFnCSE9PY1jQcqT97Zm9ZRrQ9zVo9HtdQWeNSG U5FOubxI4TtA3HgV6aPJaPKTdJNHNi0G9/mJQYAPsO3GajjwDCsw2bBiMA/e5yWP8vyrratofrHI oO1/68zZCmn7favi2fGliyneyvormNSSh5XONw7j/PpXo1h4i0q/lijjkUzeXnay4I9RzXqZdVhy unLvc87H0pO00YWueBb7Udd+32klpHbMVyjJhlAxnjoema1R4Q+xafe5vJLl5RkNMcBAM4Ax0612 ywqmnCesexy1MRHkhyXTX56f5HK/8I/qMcCXEYjK5yp3cHH/AOqtf/hKo49Gk0qbR2OVaJ9twOh4 POK5KSeATVWOj7HZ7SGNSjB+Zp+Gf7QgtLLTrXZJZW4YTNKAGIOSoAHHAI+tVPEVhBNptxbRWzPp 27Eq27bCrZB6kEY/CvQf8HTsTKs/rLqLTW7XS99PlsYvinVY9esfIS3ezVeTKsg3EbSMdOOua47T 9J062s/Pgtk4fi4lXfn5SSSewz8vHf8ACvnsdjpO8qSetl59fU6Vh+SN5a6/LX/hjufCGhaxBp6N I/lW8yhtjDLD8ONpx2rYuvBllcM0m1oZGOXeAlC59yOtdVDKaU4e0n8Uktjgq4uSn7vQ5W70lbLU TZ28Hf5RnOc96vR+Gbx8bti5981UMsnUqSjT2Xc1nmVOjTi57sLjRrOwO2/1FYZNu/aI2bA55OAc dD19D6VOfCbqCWmDr1DAcYrsjlUErSlqc8szq2U1DR7GamitdkmzmhuF55ifd/Kqd/psunSbJsZ6 hlORXJiculSXOndHXh8xVSXJJWZmWTS32qxwQRzBkbO9W2lTzz+FbFxoklvM8d3OiZBJY5LDPQsQ MLnnjNZwjN3w1LVyjzfO6tr2Zni6yjUVQmtote0OWFLi9SS1QgiMnDY6gA9apaxdR3+qTXUauqyY OG6jgCoq49YiHs+Rx5bbrr2NcPFe05o9jPK+1RMnH6Vx2ud43RVTWLmaGOXyjGMneMj9Kk1GM6cy +cG8tm2eZt4BxnBrolhrK19e3qcyxS5rW0K8iArjjmut0nTX1TToJbi7ddgVQPvZyOh56d+a68r/ AIjj3RljpKMVNq9n+hQkvdMTXbrQJ7WcrHEclVAGQMkjv0P4muWurNLa7kWF28g8ordhXdjoL2V0 jkwU2p8je+pr6TftpOhO1qGaV2BYKqnnOzuR/dp+s+JbyHRRPDCwuM/8tUGDyw7H2/SujDUlUpRk ziry5asl5lXS/EMl5p6f2hbIvmI5fKHBQKDnHvz6VhzC2kwbUYgIwobk49658bFQhY7sJPlqOCd1 /wAOW9M1i+0k4ifzIv8Anm56fQ10mla5da7emMWvlxooJfdnBz9Kxw+I5vce5WKw6V5ozfBhgXxF E85UYUhQT94njH5E10niDwXarZPe2C4mU789semOgr16lz6jNcVUw+LjJfC0k/v1OdtZvOiByNwH zCrIVvWvksVTdOrKJyYil7OrKJJyqFieAM16BoPhOxksre8YpNNjcsqN0+ldWW0VUm5vp+Z5ePqu EFFdSPX/ABLLoss1taQo5iT+Jv4sZ6fl+dcfYeMtT1S1MPmCWSQsTaIhO0A+gOQPqa7K+MmpOFNX aOLD4aE4c9R2Tv8A1+Zuwa34gbTxZvp8CKxKoZI8Hv3D4z19/ase4juRcMbhXEhPO4da5MwrV6sb zVkdWBhQpztB3Z0OkaxBZ6ILZZRb3TP+8m2FvlBPt1xj/wCtVfXNQEhsotMvG+zLcCW5RQyeZyOP pgHj3rojj6Sw6ipa2S6nVRpcuIU6kbq+u22lvyMK9iW5WZAgEcmQFJ6A9q67wroGhC2S+gtIJbuQ hQZolJiYDBGcZ7Z/l1rjwMadWtK/qkYY2M40otPYsf2Rry39y0WVWWRZXVX2qRn7q474GDyP5VxG rQ+IdC1nyJtUvZlvWZ/3MpHIYjAJ7jA/MV6+FqVqKqusk0/ht0/rf8tDzsDh1XxUISdle/3a2+ew zRdQu4ruC8uBNNtA3ea2WZSOoJ/D9a6ibxYiy+ZDavsA5VyFP9ajD5lTw6kp3v8AnojozbLHXxH7 lpR8vvJ7a00bxPKt3e20n2lU8twkhCuo7HkZ607UvGmkaPryaRdxS7pAvRPkUHgAn/61evKhb3pv f9TxaNWdZqjT1tf8DNu9NstAeW5gmu5baR1/0ZHKbcHOCVGSPbp9Kq63qceuW9vaRs1vtc4nutoA BP3cL2HQd687FVI05eyn12+eh34dSrr20en6ElvchPFaWOnmNbdiBJNnk4yXIwPYDJPGe/GOS1WL Xb3xHe6vYW009skpnG3HAU5wwz2GMjHPXkEGlk+Fw2BctN929/JfLoY14VKitHf/AIB08Vz/AG7p iwanG9tfG8RDKn72J/MGUI7egP1HriovE2mNZXsZaBIWdPmVTxuHBI9q5MVQtCUv63PSoYjnqRT6 afKxhmP2q/pWoWESJHc4LoTlfLYg4OeoH0rmyyVKNa9XazOzFRlKFkdXYy6Q9p5lpYBNxz8wKbvr n/Jrz4+LY9X1eXSLrSniR3KjLk4A7EH6V6Ecvw1Gn7kbp+vVf5aHHGMqk5Ny1S/ItagbN/LS1Ub4 8rIwzgnj2+ta3hvWLvT7KaH7H50SqWWTGAMA8E+nvzWNTkpYu1Jbr7tdPwsDUqmGvN7MuXVpcTuL qXzEy6uMLglAv3CR1Gec1z91oF9MzSBlkKr85zzkDk9O/PSumtRnOny38vuOaliaUJ6R26/K3/B8 jIG+0EttNbxyISCVkXJUg9vyrTm1Kwgs7ZLeFf8AWKT5KKAwO7PTOCM9Caxy/EuUfZPoa4vDRcva 7J7mRq7i5sfMtoDH+5CCUpjaCQMsQMElV4+prJsWjNqscTFggxkjrWuPlKpGUEttWRhIxhJSk99i 3FbyXM6QxLl3OAK9H0fTY9NsliUAv/EQO9cuBhvI1x09onKeEdDfUJjdiURrC4wep3DmvUolEiEJ hlIwyGvYlue1nWI56ypNfD+qRwGr+HJINQvbi12wPDtZY24SRD6HPB46fl2FVbd1miDYKnAJU9q8 fNaN4Kr20/r+up11Je3w8KvVJJv+vO/4GlpljHeTHzGlEYOMxoWOcbucA8YFdPY6IbaLZZQSwpId 5ZZmAx244KsQQenHOawwUOSPtI7s+cxs3KThLZf8Oc5q9olpcNELmA3TcNE0u4hjjjnBbr1qrLat odvFfMsZ3ErJE8WY5MgjaQDyMY5PcdKulRaqucl8X9M05alSFOla13ZdL9iwni6wvLeWG4tZi0in 96JBmXO7Ckf3QW6Z4wOtLd6vFd3I3mSLkhBMgXgngAjg8Y7k1WYQ9lT5Osh4ahUjUbktItra2q/T zALx1FO2+9fPW1PVuIV96ltLu6sJDJbS7CeoIyG+orSnUlTkpx6ESippxkddpnjKOQiK9tvLBGDI HyvA9+lcN4ovINa1cyu0zkI0ZtJYjG9q+4FSASA+4k8eh56V9FSxUK1K66bnn4XB1IYpRhu72fbQ f4ftzqV7dJNGtuqhnkeJAIom3n5eM54PX0HtmnSQ742UnqCM152OprmU9r/odsoqlUdKLuklvvr3 +R0mkazYW2lP+7c3MMe94EXLkDGSo/iH0p19aDVNQS6bSLRnt7pVWeX5i8GM7l6YYMeAa+tp4hV6 anDW/wCB8VOjLDVnzO1vxKM1zcT6fJBeW2LrYhZo/ulv4sDk4HHJ65PpWDNBuVo5B9QRXhZ25OUX bbqe1kygoys9+hZju4Ypp5zE0U7RqFeMLtVgBk/jz+f41fU3zWmof2HHPPdSvlZ1kUfKpIWMYIwA OefWtsDiIVXzLvdo1rYRr3b20/IxrjVZbHQrbTBZQIqSFpCoGWnyTuG0kdeeDxwO1Nupb66CXN9H MkkoLL5gGGGeoI/+t1qcXJTpygtGv+HIwsXCcZbplOVHaNgpwxHB96hgikguYZW2qFZQyr8wCg8/ Xr+leJRkozTltdHryTasjuR9htYxqLXZeOLLyGJS29QMkjHXgVlaprem3N5eiKNSwSFo3UAeYj4C jjJ4OK+y5ruPLt9+h81Jyd4rSxgSi0miiuYSTNIuXIPBrasPEqWelQ2i2771PMgcZx+INeLi8XGG KcvK34no0cNKrh0n3N+xWO5865nnMm8n5CfkH0z061geIobzR5Ibi1n2CSMbtpU8+nT+VdUqkpQv Fef3f1+BwxhGNS0+5x8xkmkZ3kLMxySec1utY6cPD8F3NclxIqj90wXkdv5g/U15mCnL2rluz1MZ C8FTWxmtHp11dW1uPte18CN2cMDnPBHbr+lZNvJbjzrOEZSPGC2CQR7jgjrXbOpKak3o7anFBSpy jHzOv8GaXC8Ml4+N2Soz2AroL2eO1hJJAAqsNHlpIjENyqs4rQDqc1j9jsMorMXZwceg5P4V1Wme HZbK7W8k1KU3APOOhHoc9RXoN6n12Z4ilRk4xjeT3/IveKlmvfDd1Nb44j2yADO5QwbH6A153pt6 wmSIgbhwO24en19PyrOVJVYypvqXkiVfDTpPp+v9M6ayuWtp1ubd13Y4JGRU+s+JdUOnypApZ5sR jytxKDByRzxmvmsPXcJqjJaXseXPBQnVTqadzK0XQp7i5S6vw0flneIGcebK3JAAYgjJU/kfwseG vEN54i16SzfQIPswz5jyqSYsdN5IwTg4xgfhXu4mpGctFojHFQp04RoRqX5Lvm7tu+nTTQ6aTwfY CdZW02JtuARCWy54527sKM7uCTn17VkXVvEs8lu4TI4ePO4DIzjoMjn0ryca5Tp+/wBP6/4IqePr V5xjUle3p/TKtqio0savujVvl5zj1H4f1x2q0EUjqK8mWruzsQuwYqCW5jSTykRppf7qfw/7x6Ci MbsHKwkdi8jiW5kBIORGv3V/x+tdjHp+g6voMd7f6fbD7EoSRg5Uqo6E4xke1elgKkPaOnbR/ocu IdSnFVYOzX/DGjph8P6tZS2+j3CxwA/vEijCrkj0Yd/auO1azTTb+SJ2KxqwILYGVrszCEXSTj0Z zUPawxEo1vie9/67G48vh6GAPYspnC4G9MfqcHPbGa6C0+zTacsnltgjhx2+or2sNOl7K1FrTt+p 4OJpVFWTrJ69zn7q/gsb5zNGcYKj3rntQu47u68wIEGMdev1rgznEQ9kqT+J2fodmT4aftHVWyui 6nhW/uYlZUi8uRQQS4wQaxY9Q1HRL4aNBaxzks4nQZBl4Cg8dgM++eTXLlVCdOV5bSX/AATszGvF wdt4j9Z0s2SO1olwJYlSRY2jZlLA5ADYwfSulurO41S2ia7SRhGm7EMQXHtls5P4iu2btOTkr/r5 mNO0oxs+Xv5abHG3H2YXUqwM7IjbcshU57gg81EXQcnNfP4iChUcUezQk5QUmb/h7QHvJI9SRQ6K rbcPg56YP4dulXl8N2t/p7ssMVtPjb8vCvznnj+VfS5b+6w6k3/TPIxM71pSMb7Bb2enTWxj826x 94jAB5yR7CufdmVypTkHB5715maOM5c0F3ub4Grq02bGh6yYrmGxkjLpMdmOo59v89K0LyJl0e8g lKywIB9nIHIHOeT/ACrqy2bnR16aHJmMVTq6ddThstI4RBlmOAK0bfw4dWEawwhkHyyyA7SM8/MM 4b2NefhKc0nVj0O/G1Iq0H1KV74e1LQZBOJPNjDDnOdh9RmqWSMnIyeTx1rfHVHK0l1/QzwMU079 C5Ya1eaWrrbv8jHJVhxmoNU1m81JSssmI/7q1zQxUlDkOmWGg5842x+KLafpf2CPT0WRQUSXfx7E jH41zt9rF/qbk3V5PNn+FnOPwHQfhX0N0zhxlf2laUls2/zO5+GnjSGwhOgakQYZXPkSt0BPVT7H tVLXrJbDWZ7dFKqrHZ7qeRTjumz3uGqv+0Shfdfl/wAC5btNW37Wn3bv+Wr9cn+8fr39+e5rWE/k yxy4LbCSMkDsccngV89mVH2OKVXo3f8AzO3NMM6cny7M6ibVv7HKpBi+cMrTK90FkWPjLKCAGwOc e9JaaLc6hbKLuSa5ZECB5nGHIkLK4AJKtwoJHUfp3R0V/X/h/wAz46W/MWPsN3HeyPazqW+0meVF c8Nt+5jkKOQTxk9cdxmaros8qC6untrvfnB3A7mGchQfoa5cWp1YWi1c2wtWNOd2mY9rbS6mwgT/ AEOEj/XEZ5zjAANZtrdS2M91Dc212/lqWBEDsGwccHHfFc1Km4OeGlC9435ul+36n0Uq1KnTlHf0 9bW/UkW++1tIPPMMIXe4yA6rnAHsD69RnFOstSieYQxwbI84Ug0qeXuTcNrJP5v9BYak6zk77f0v vNQNz90/nWjpGoG1vRG0BnhnBjkhyP3ikcj6159GTjUi4mNWKcGpbHVRXmj6Dp8x0ixx+8xIN6gB uOGJJweRxXIeINWutRv4JLy2jjEeUAC8gkjGc/l+P1r2sZV5KfsYK6fU8vCr2tT2tSXvf1+hlqrL JLEmAoUMBnpnP+Fegadcrb+H4ZdxCooAJPYVtkMrynF9bHLn0bQhJdLlTxRZxS6VHeRHLNyCPSuL K5PJb8q4M4xNOpi5U4bxST+ep05LFxoa9Xc7rwvqsEmkLBPMqPD8vzMBkdv8PwrDvZrGfUtQhjaB S4eSPzCR5jem5SOCV6Z9K9PCN1qEFHf/ACMq8Y0q0pT2MzTrjVdYjtLKC2ilh2lxH9oXG7ndw21v lOR/EMg8mui1OystL0yKw1KSRV8nyopBG7kSnnI2gnGTj8BXW6kfYxjHujnpwbrSb7P77f0zib6C 7jvRCwMgQYklHzEY65H0/L3xVZSomEXnQyucnMBJHHuQO1eRLCxxCnUov4W1b0PThifYqMKite2v TX8tTW0C8+warEzzMkDtiQK5A9MnHpXVSO8yPBCTKEkPl4bOVwcEfTIrXLqsp0pU97GOY0vtLqc/ 4kdrO+ilMJFvKojEmcKG69s8fhXNzykLcLcyKWRl/eKuAS2ePp71eLo2k++g4YaMcNKq91b9P8yM Ws6zRBdwnbDxopxIfcL1/GrMd8NUgMN1dS/aUkxtHO8Z9B7Vy4aNel5JjxFSlWSa1aa+4gOnQf2g uZvLiILLwSUPpxzng9Oa0bG+m0eVpGtII7lUZW3na0meVyfm7qfTrXrUlGFNx2u/+AedU5q1VW16 FPWvEtxch8xA2rrHuGRlD/GvTv056cd+K5iDULa6Y+VKuc/d9P8AGscXhr01ybo7MLXgm4pad/62 JHwV4PB96fp0sMGoK8s3lAAgMU3DPuP/ANVeRFWlqd8/eg0uxyMtlEyNtIV88ehqmGltpPVR1U19 MtjwLlyC7R3X349xXeW183ie0jWfyxd2yqnmDq6+/PWs6tVUoOb6Hp5TX9liozZq2+lRRxhSC+Oe Txn6VoJGCwUsQDnnk8AZPA56CvlsTiamLqK/yR7+Kxcqr5pbI6ey0ewtop0mSWWOAbm3ElVkYDgI ehxtOcY681Z0+/jm8w3MrMLdtwgkVGIfJ2beOW+U4APevThZR5E7+Z81UcpSc+/QL+yfyjNYzApA uQJWkBDDqWPcgKoBJ9eR0OBeaxqMltdFpkh81T5jQxBSQFwOTk8DpXLiJuklKGp0YalGpJxm9iXw /brLBHLLKis+0GVMEyEZypyOg9versMum3EStZSia3DqiKkRXy2xnPOMjkcj8M17aTauVUqqM1Hu Zup+HrDXkENzGs9xtADwjZsO0n7w5Cn6kVUnsX07w7/ZsUULCOUkzYDMhzuxn15xn09K4sbhPrMF DmcbNPTyOmhUVNt27eWzK+nSyXMZEkeSv8QXg1c8sxzQzKjFopFkCgkZwenavIxdFYevaO256OKp KE3BM7Kx1GxntU+z2jSzQx7ICzZYnaSVLHJQ4AyW6nFVtZ03TLizkC2ojtwGHnFvLCtlgQc4OBj7 3I5GAa9NOE47XufMyhUjO17M4rTLe5bWJ45mieBmypgUvux6NyDkD1GP5dnaRWzwxWjXMkZ2ZKq+ 5VxjIyRg8e35cZqjT9jNyp6N6F4mU6iVOor21sLqFq/9jj7LdeZamNTFGB/Acc5J9x29q5EhB1Ir y8dShGftFvLfztsduAbtJMTI6D9BV/QrKJ5JLi4nLwwP58tuyZ3qAcY/lj3rbKa6p4jXqVmNJ1KD 8hCLPV9MhMdla28VrcFJmc79sLncxXPIb5eCPU+tW5fFH9q3811DJMLSLjy5gB/ujGBjPPqeK9at UhToqztt+P8AkebThKVR3Xdf5HOahfrJp0yW0omupn2S7eSi+h9yf5GtnULc+DvB6BLfzbtwGcL1 yep/DpUYalPC4bmraNtt3/r0PUniaOIoeyoNNuSWm9kr/nszn7SWK802O9hOUdiuCOhHWrltqFxa xlIpCvJOQemRXmUKssFWU5avX+vyZU1GvGUV0ZHealeT2D2ctwzwOckOobn6kVDp+pz2cf2NYLeR GBMeY1B3cA5/4DkdqdLG1J1Eqmo54eKi1Hb8Bmp/DOHWPET6ymttbxzSrM8TRZkUjsGzx7elXtUg +x+IW1aJEMbOBynUEAMDjrn9K9edRNe7qzxqdVUp2lqrNaGDdeHrSxuXu7DU3hhI3pbOhLRydVwe hAP6VZXU5dXmt1vESMW6kzTxMVLA8c+g65GT2rOdeMpK3X8CaUXKDn2GXUmky3jwx+U08K/vYzvY 46HKjA45OMnp9awBo9tp1/J9nhuN4GVdV2BlPThx36dfWu+CtDXoZVadSi1fTmV/kWmtFa1uLu3W WTbhzGXTcwP8XBP41RbaUV+cMMjNebj6Nnzo9HANulv1/S/46/cc6A0kTKxxIKjdfMhEmMN91vrX rHlR2KxQBwehra0q+ewnSdD82ec9DUygpRcXszSMnFqS3PSLWVLm2jmTO1xkZqyEDY68HIwcEH2N fE1E6c2uqZ9RGSnFPoyZgZeZXeQ+sjFj+tbvg57oxTWduAgjkJZ2+b6BQTwcYOegx05rqwVWU6z5 ne6OTGU4xoaK1gl1e0ttQlTWU8yYBd0ix5VMDIAJHPzZx9a4W41Ge589Y9ixyZULz8oNetSo08Qm pJO35nTkuAdSUpy+G2nz/wCGOw0y3Z7WCYggSbfLliBJYcnB4OB75/KtK7+2ahPD50eJIdhaNSyo OTyGwNx68fn1rv5tLHnzpxlJSfQzd8kV0fJmIR49yywoCo64IzwenIzVyCVL+5tY7hUu0JVDKxKR SDg5xkjn1we4zT05bGTU1VT6HfWr/ZLJYrazhMYQ48ggKDzgdPpXAeIrmO81MsIfKZRhvl5zXHmc YrCt9dPzM8DeWITuZDjygZRkOgJBHB/Osw6b4i1qaK3limCFeDJJu8teucbuRz1x3rzMnqclRuT0 R7NajhaiaxDt6bu2rS9djpdOttO8O6KDdaiyKBvlmLbRHkBgGUjjOOMqTzxVHWdOtPEHkXuk3rO0 YIUbvMBUN13Anue57847elGpr7Tp/X9f1Y41i28b9YlHS/4Wtv5LYydOvdQeaW3u0lXZuXeTnPPI LfxfmelXiP8Ae/OvJzVp1/d2evp/Vjtp4WGGioQnz+f5X87Dcex/OgnYCV4JGDg9jXnptO6Kt0Zm raRz20cjiGJGIYjy8jB/veuM5rZ8R6FBZW8thpzkuU+Z+pZiuM8fh0ruo4n2UlVqS0Uo3/8AAlf8 EzixNGVSDp01vGX5O34tFE217q11ai3hlyZd0abVxCNm0xoVUZXJDZOPurxnJrrtVU6hr0VmTuaM Kh9z3NenxHP2GXuL3b/r8jz8tqwxGO9rDaMf8/yuZ/iGKBb10fK20I2kqGOB3Pygn8cGm6XoiIzy uAPl5zhlB74OB/IfQVzZRQhOpW5lpC0V6xVjgq4ipGVov4nr+pzV3AYXUlflkyU98daoTHyysijB Q7uPTv8ApmvObs1Po9V959JQl7Wgr9V/wDs7CN7v7Mbe9gMeV8yIqS2Ovb6EVi+M9GutZ0ma2sLq NCsu8ruwHA4wT175/CvoqEVBc/ZHi4jkjGnaNn18zj4Xuvsv2C+k811j271O7OSe/U4HH4VZ0bzR q/kgJG0kePmUYyM9M9eGY/hXE5L2qubU4c0KjSsv6ZpTXvhLTr+bN473khMZZFJ2sTjPHp1znnHe tF/Blo5Ekl0+ETaMIOnvnPvXpOUorXqc1WtOtbnd7Ky8kuhFH4atYlT7M844+SXzdpHcYwKxNe00 2TrIZXkDtt+cDjjOOOK5q03KDiyqD5aiZ56EaNxDJ1/5ZuRg/wC6aXedkigAFiDgnoa9VO6OWJWu BcxH54mX0P8A9ekjuZVdXY7jnkkdfqaTZSO48KeJoA0dhISA7YjLdie34/zruBx6V8xm1D2dbnW0 j3sBV56fK90SD60qoBIZFZ0cjBKOVJHocHmvJU5QlzRep3NKSsx7r5isrjcCMHPOazZtOjhcTqAV QqTGehAPP6V04XGVKFTn77+Z0UKrou8DQh8axqzuLaRYmxn58k8Y4GcL+FXLLxZDLaxrMWheNgUQ uVG0cfO5OD6n+tfXcrSuZVcprQjzLU1RqFlezR7pY5CNrxJFk7OD1I7HtnH401kiaaC6VfMnilQu AcpEwGSeecc449ahnmOLWjOoh8UeHnhdILt5Cc7mETDB9eRXD3k/n3ksvXe5bn615ecVIqmqaet/ 8ycHhKtGq3UVtCtKzG3cKAWKnGK6Swl00WEMtw8lyGwRM6eZswV2gkDIG4A47nNefl7V5KTNMepJ JxMvxbaW/jKxs9Ja8itrmWcvaPE/nJNIituXI6AZGSe/Qcc5/hKPT/DWkpbQakLgXc8rPJLCy73j ALqq8AAKp+ZiOfyr3FGpbRHle0Si6b1W5ZvZ7a5t4ngYqwAAiDDCqMgfKOBkYP0x6VQ3HpXg45r2 iSVtD18CpezfM76jWyBzSc9jXFc7SuYpY2JiIdGOSjHGM9cH+lTWF1eWV8lxjdFGRtjLZIx6Ht9O RRPlnHlkODcXdGx8Pru20yx1Ke5YC87RyEBioGePXk9vSrllcpAbnVZpAHGduTyWNevnFdYidCMN YuV36Lf8LmGJknUrVIrokvmv8yhZ38d/q0UAF8twzb1miJVM9SH9iO1dPqYjFrFptu6mWT/WH+6O 5NGCqSw2WTqN+/Jt/N6L8T5apSlGslJbL8zjpblmnk1COzaXToA1tbbcZZj95+cdv6VkX0tvNMGt 4jGm3lWxmsMzpyp1KVGL0hHXz/po+mp0vZRUOqSv67/+3W+Q211DUbK2kSyRJk7Ryk4BHPB5x/j3 FO+0XVxavew3HnJDcmdM4RlTbjy3wcMBnr1rtwdd+z13Wh5OPp2nptv6HPxxpZQ2+wCSBgsAKrhk 2lu/fO7v6D0p13biVHiYcev8jSxdpP2uzNcLWTmoRWj3/rsc8ugv5+1lCxDuOSR6etdPd6xqktmY xcorEFdu0g47EHJ5H4Hgdc8b/W1OUUv6ZH1Jw5m++noYsgu3iVH1C7wDkAyZGfxqa71LUL23SG7n SQIQd/l4ZsZxnt3PQCpjjG1aSuaywcbpoi8eaXBp1/FImTFd53AHgMMfMPTINcvIDt/eAFehc9CP X2r246I8m4luk0DbzGZLfnhuRUtxbLMpktMjPQf3ql6uxSdlcoK8kEx3phge+QRXr/h7Vk1nSI7n BWQfLIvow615ObUb0VLt+p6WX1ffce5rjHrTxjGcV800ewmL36VFdgtaSbQM4pLR3LTOSCn7Iep5 9Kv6ldpJBDawRgOyDc2OnHQGvtMRRlUcOXSzv+Z9FWg6jil3GWdiLiVYFHyBhuP866WKHyFCRySq gXbtEhxj6V5ubYqdGUY03ZnDmMoyahYmjQRJgfq2aMZ57fWvn5zlUlzTd2zzJMTgOis6qWYKNzY5 PStHR7XUrHVD9nMSIybbiCeDcIyQSuWyAB94DBIyT0NduXxkqntFsefjqkeTke7Luk6TptjZiDT7 DzY7fdvi2kOmVP3VPBLDHAxxjPapdUsS8EyzWMXygjfnjy8qCp77iM8Abe2a9hSe61fc8d2T952/ r/hzCe0lWzNwzuyKx81pFEYjPbjgAEYwB7ZxVXb7CvFxsf3nOtme1g53hy9UNK+1Nx61xs6hMH0/ WmkGm0UmMeMMu1grD0NRpbpHwiKvsq4qdSrosW13c2M6S2spR1YNgjKtwRyO/BNa9lqVkyN9tgma R8h3WQ4OevHH9a68PWScFU1jF3+f/APOxWEVV80dGUNSvPsRt7PTZ/MsoVOBMucbuTjp+uaxmXJy RV4txqYmVWLvdJf182b0ufl5p/E73+8WKea2SRYiPmB25zhSepx3qzDpr6PcNHIsbx3USvvX7p+n +e9deEknBx6o5sQ40ozuviVvSxDrGnQLiaFxHImWMeeDjqcVjnDru5IPejEJpI48ukuZrqREj0Iq GQiuZJI9RsrOcDpVdmrVGcjZ+Jtj9p0+1uLWIKkLHeTKGPzYwcDp0/WvOEW6hYn7SQDyR2/Wvpqb bueBOPKP8+4ijKgRgk8lRgn8OlPtGlaBpPLBCHGzHBrTYhnq/wAI7LQfENnexajpltPeQvkecm75 T7H8a7o/DzS7SWSXSozamTl41JKE+uO34VzYmiqsXF9TalUdKakio/hPUUJ2pGwHPBrMktpIJGjk G11OCDXzGJwNSirvY9yhi4VXZbgI/el8kFSp5B4Iri5TqUjNl0BXk4k2oTk4HWqp8P3InO2RADxv 74r6Chmy0VRdPxPVo5g1ZSWljXstPisYdidTyxJ61Y2ZPWvGxNWVeo6kjhq1nUm5MXYM/wBcUCPn rWHKYth5ZEiOjlHjbcrjGQfxrVi1S+vZY7S5ktngkOwoYeDnjkZwetdeFxDovl6M5sRh41tXujRg kv5HuHe7itwkjRxhzmNyTgbsgHr0APfvRqkLW1v9ol1GVUKsVd04XOSctwAvIAB9B1NezyuK1Z4c mm9F/X9WMyLxJeJCySRQuCAEBGNnHIx1IzzjNZTtvkZiBknJry8ViVUj7O1rM9bDYVU5e0T3RH8o pvHpiuFI7QJ44FMyR2FMBpPpioyT1pANJ455phbHTOadgInPrUT9c8VSQMj3etab3a3Oj2qO6+fb TbVVj1U8/oRXZg58lTy1/r7zkxcHKk7GXq1oTMXknZJIyfLjxt3K3v2x/XOapXafZrswND5LkFjF uB2c9Mj/ADxXpYlQqRbj0OHA0lCPO9/6/wAys5HrVd29K8tHpsru3tUDkjtWkSGdtKEuYWjmRZI2 GCrDivPdd8KXlkZZ7JfPgJ3YX7yj0x3rrw2PcZ+/sc1fCKUPd3OXefzAN3BFSW9+YzgsT7mve5ke Ryu9jsPB2tXelaumpWsLSwxjFwUX+Dv+Pf8ACvpTTbyO6s4po2DI6hlPqDWbnGTcVuv1LdNqKk9i 68kaIWcgcV5xrVys+rzOhyucZFeZmbtR+Z14CN6vyKO/2p3melfOHt2F8w4pQ5oKF3n1o3GmxBuN HOe9IBQfepEcoyyJgshDLk9wcilYZq2t3pl5f3ZKtEWk3eVI20O7ADHXaxOBgH0+tMsZkF1PAkyQ SiJZnjucb2BDDBIOVIPU4IGfevooyp1LThu+/wDXmeDVpTg3GWqS/r+vMyooproMQoLbTIwBzgd+ e9Q429hXiVYNyc7btnsUmlFQ6pIbkZ60fj+VZ2NBp+pNMNOwhpYHjj86jz7j8qLAMbOe9Rt/nmmo gRvn2qMg46/pTSBsib6/rUT4dCMn2IJ4rRKwhbq7kuRGJiGKKFzgc4FU5JHYAOzOFGBubOB6Cuid aU22+pHKiBmwP6Zqs7E5/wAalCZXkYH0/KqrtitEQz//2XbaxJAAwVJ5/Edf6/UVElvDEn7pQM5y R1/P8v51xG7OD14SwX8wPylmPTuO36Vlhuea6VsjNoaj4mBHFTyHKBhwQaBIjPKk1GwoGNzimyLl d3pSA+mbJDHMilcRqMDPvWusvYDOayirGj1RH5Dfad+8EZzir6y4Jxz600rXBu6RQYmSYv8AMuTy Np7Z/wAatae/7kl1Ktk8H6ms18RV9C4HBR8DBA4JqvayyxzPvyR2+bNW73Qo2s7kl1cM0DcnBwAf fPrVKQSqqkqZFBAGxeg/w/wrKZUbGnHMTx2PQ0BpftIO/dGednTAqnzdBRsnqOLkbiAf/rVlTQyM Pu8459CamcW9iotIVN8KAMAWB7cVmanu803RAZQm2YD+56/hk/hn2qrPlHo2WrGUlTG5yy8Z9fQ/ 5961IH/0dP8AfA/WqRkyXWDt1IKP4gpP6/4iuE8W6pqdxJq0SwwnTIgys8inJ2rgqvPqDz2z+FZ1 W4pWW56WVU6U6k3V2Ub/ADuiLWml0zwDetLMvnPCq7x15VI+ffhq8aMSj7r/ADewyahXVOJ6nLCr ia01K2v5En2dmX5I5T6sEOBUh0m5ECSMqBGJ2nzFJPTOQDkVDmtWzpWGnKygmNbTZYo8yyRDJ6c5 qRNK4QySlQxwPl5/nWftl0Ov+z5pe+7D9OitIbjddwPPF3Xft/lWpC6xwte2ybVt5BKE67QrBs/o KiU7q7PFz2j7KjFp6X/RnpfiZYrfxLq1ramQxx6g7qjYwA6iTIHod5I9fyrBuXwvzYxtIyO/tnv2 HvlT1r06vx3ufO0/hRXceZKWDA88MOvA/wD1H86rS/d6fNt7H3/+vj8qhXK0ZyPjS1xcidekgwcd AR7fT+Vcua2i7xMyJuG4q60biMsRwRVoRG33KjbjrQMjc+lNWXLBSOPrSEz/2aRh/oFnHCU3fNLI Xxkfe9Bx9fxHTgJolVQHGcswKkY5x6fnx7Edga1rVeeyS0OSMFHcgJXDBB8o7fUZ/Hv/AJJrlPE9 sWdJ4z8pGwr6EDP+P5VlTtzBJe6cs33qY7ZxXajIlifKe1Ko+cDtmgfQjPvTDSEMflaWB9pwaEJn /9keYxUqS56n1raPPbXQzfmVNU+Fd+7299Hc2ULxSB2EkuOAc13Vnr1tBZFI5lYLxuz1rwsdVjUr ucey/A9GNTmw0aNvhbfydv1Oa8V+K4xCUjLSOQenrivnaKWew1PU7GaCTzp5Wm344K8cA15/OlNX Ps+CsTCjiXCX2rf1+Joah4Y8X6Joa69qOmm305mVVkZwCA3Q7ew5rlPEOkDW7mz8t8xwkhyBnhsV i5Ts+bQ+pzXH0K2HrKMrqN0/8R9D/syWSeF/CVxLJGqma4b5x3UAY/rXaa54vjfW7dWYbOVxXXTs qaZ+Q1m51nfqcJ8Xr3TLW80qSOEfarmVgX/vKF5/pXI+JpN/h27KjrCa+UzxKOKsu3+Z7+Av9VV+ 54P4ql2abEueDN/IVjT3TaiI0hhZvLzz3Oa9SgrUVcmp8bt3/RE9pE6OqsjKeOCMVp+MRnSWH/XM /wA6yn8UfVGu6duzONdUEaAFST8xIzle2D29/wAagbrmvX66Hl7Dl5zQOozT6CZKFGc4Oc9aCNrZ PSm7EslQMVZucCoJeHpyegkrsRjvcn1rd8JQfbNUtbUsR5jlMjqMj/69ZNe7Y0W5sMgPiDSGI+U3 2PzKn+tdJq19Fp1hd6eIYjJPPOTkHKYckH05BrOUIqXv7WZm4uaSOOkfdsByTzVng8jgGvK5W46H v01eWhma4AbM98EfzrFHauyh/DOWv8YYYcUgJBrcy1JDk1JGOPxqOhp1J1HGe4qU42isGnsdEe9z /9k4Ckgc+mBXyR8Uf2pviP8AEO/uDYXbeH9MlGxbSylOQo4AL9enpge1eZTy2GLxjxVT4Vol0dt3 6Pfzv9/s1cU8HhY0I/Ha78r6/keNXFxPczNPcSvK7H5nZiSfqTUeM4Ir6WMUloeE7y1Za1WPybyS 37QYT8h/jVTORzTu9GXK6lZiex70nvmhpMzsbelKmqaXcaVOcSW4M9pI3TP8cefccj3XH8VRLoM7 gF2CfrXNVqwo/M9LD4SpXgi5DodvGcshb3fpVxLOGNcHt26CvOq4iU27nu4bARpR1QoEajKqMEU1 nXPAP5VnZ9Tpuo6JELuWOAay72zaR/OjOT/dPeuqjLlnex5mMpOpDTcziOSpUg9xijJHU16NmtGe JonoKTgYPTvSocn3NDjYNL3HnBAIPXtSM2Op9qlauxpKXLr3FDDGCaN2eAaS13C5/9kAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAICAgICAgICBQTCAw NDU0IDA3ODIgUEIgMDQ2NCAwNjk0IENMIDA1MjQgMDQzOSB0IDA2MzEgMDMyNCBDQiAwNDQ5IDA0 ODAgdCAwNTM5IDAzNTMgdCAwNTY0IDAzODggUkggMDY4NSBSTCAwNDMwIEJIIDA1MjAgQkwgMDMw MCBpIDAyOCAwMDYgSSAwMzEgMDEwIFQgMiBWIDAyLjYgUyAxIEZSIDAwMC4wMSBXTiAwMDA5IFdG IDA2MjEgbSAwIFYwMi4yeTAzNjFZMDMyNEkwUzAwMDAxNUcxMTk5STBTMDAwMDE1RzQwMDB5MDI5 NlkwMjQ4STBTMDAwMDMwRzIwMDBUMDYxOUkwUzAwMDA0MEcwMTk5WTAyNDhJMFMwMDAwMzBHMjAw MEMwMDAwNDBDMTAwDQpWICAxMDEuMjAuMDBSNTMyN1BNMDAxMENNMDE4MlBPLTAxMDBQTy0wMTAw Q08wNzUwMENPMDcyODdTMDMzN1kwNTAxUjA0NTVCMDUzMlNPMDg0M1lPMTAxOFJPMDg2OUJPMTA2 MkYwOTQxDQpWICAxMDEuMjAuMDBTVDAxRFQwNQ0KUiAxIEQgMDA1NSBGIDAwMCBaIDAwIEQgMDMg TyAwIFQgMSBGIDAgUyAwIFMgMTAwMCBFICswMi42DQpQIDAwIFMgMDAwMDAwMCBOIDQ5IFMgMDA4 MjAyOQ0KQiAyNCBCViAxNTE4IEYgMDIgRlYgMDU5OSBPIDIzIE9WIDE5NjgNClAgMDE3NTAgTSAw MTczMA0KUE4gMDAyMCBQRiAxOTE4IFQgMDA0MDAwIFMgMDE5OSBJIDAwDQpDTiAwMDIwIENGIDE5 MTkgVCAwMDQwMDAgUyAwMTk5IEkgMDANClNOIDAwMTAgU0YgMDk1OSBUIDAwNDAwMCBTIDAxMDAg SSAwMCBSIDAwMDAuNzIxDQpTTiAwMDEwIFNGIDA5NTkgVCAwMDQwMDAgUyAwMTAwIEkgMDAgUiAw MDAwLjcyMQ0KU04gMDAxMCBTRiAwOTU5IFQgMDA0MDAwIFMgMDEwMCBJIDAwIFIgMDAwMC43MjEN Ck5IIDQwMDAgTkwgMjAxNiBESCAwNjg0IERMIDAzNDINClkgMDcwMSBSIDAwMDAuNzIxIEZCKzAu MDAwDQpDWSAwMDAwDQpMDQoyMjE3IDIyNTggMjI3OCAyMjY1IDIxODQgMjIzNSAyMjg0DQoyMTI2 IDIzMDEgMjI5MCAyMjQzIDIxMDcgMjIwNyAyMjE3DQoyMDg0IDIyNTggMjI2NSAyMjkwIDIwODQg MjEyNiAyMjY1DQoyMzI2IDIyNzIgMjI5NiAyMjcyIDIyMTcgMjI2NSAyMjU4DQoyMjQzIDIzMDEg MjMwNyAyMjc4IDIyODQgMjI1MSAyMTg0DQoyMTQzIDIyNDMgMjI3MiAyMzAxIDIyMzUgMjIzNSAy MTg0DQoxOTg1IDIyMzUgMjIzNSAyMjg0IDIyNDMgMjI0MyAyMTg0DQpXDQowMDE1IDAwMjAgMDAy MyAwMDIxIDAwMTIgMDAxNyAwMDI0DQowMDA4IDAwMjcgMDAyNSAwMDE4IDAwMDcgMDAxNCAwMDE1 DQowMDA2IDAwMjAgMDAyMSAwMDI1IDAwMDYgMDAwOCAwMDIxDQowMDMyIDAwMjIgMDAyNiAwMDIy IDAwMTUgMDAyMSAwMDIwDQowMDE4IDAwMjcgMDAyOCAwMDIzIDAwMjQgMDAxOSAwMDEyDQowMDA5 IDAwMTggMDAyMiAwMDI3IDAwMTcgMDAxNyAwMDEyDQowMDAzIDAwMTcgMDAxNyAwMDI0IDAwMTgg MDAxOCAwMDEyDQpMDQoyODIyIDI5MDAgMjkxNSAyOTEzIDI4NTQgMjc5NCAyNzg4DQoyNzQxIDI5 MzQgMjkzOSAyOTI0IDI4MzIgMjc4MCAyNzkxDQoyNzc0IDI5MzAgMjkxOSAyODk0IDI3NTQgMjc0 MiAyODM4DQoyOTI0IDI5MTcgMjkyMCAyOTE1IDI4NTkgMjg3MCAyODg2DQoyOTIxIDI5NTAgMjk1 MyAyOTM2IDI5MTMgMjkwOCAyODk0DQoyODY3IDI5NTEgMjk1NiAyOTYzIDI5NDUgMjkzMSAyODY5 DQoyNzc5IDI5NTUgMjk1OSAyOTY2IDI5NDAgMjkyNCAyODQ0DQpTDQowOTk4IDE3MTYgMTg5NyAx ODgwIDEyNDggMDgyMCAwNzg3DQowNTcwIDIxNjQgMjIzOSAyMDIyIDEwNzIgMDc0NiAwODA1DQow NzE1IDIxMDYgMTk1NCAxNjQxIDA2MjQgMDU3NCAxMTE0DQoyMDIwIDE5MjcgMTk2OSAxODk2IDEy OTAgMTM4OSAxNTU1DQoxOTc5IDI0MTggMjQ3NyAyMjA0IDE4NzggMTgwNiAxNjQ1DQoxMzYyIDI0 MzkgMjUyMSAyNjQ1IDIzNDMgMjEyNiAxMzc5DQowNzM4IDI0OTkgMjU4MCAyNzE0IDIyNTMgMjAy MCAxMTU4DQpPDQo5IDkgOSA5IDkgOSA5DQo1IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDUgNSA5DQo5 IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkgOSA5DQo5IDkgOSA5IDkgOSA5 DQpTWTpbMF0wMjk0WzFdMDM0MVsyXTAxNDhbM10wMzE2WzRdMDI1N1s1XTAyMTdbNl0wMjY0Wzdd MDE4NFs4XTAyMDYNCl9fX19CbG9jayBTdGF0aXN0aWNzX19fXw0KQllfTTogMDQ0MCBCWV9NQjog MDQ0MA0KUk9JX0JZX006IDAzODUgUk9JX0JZX01COiAwMzg1DQpCWV9tOiAwMDUwIEJZX21COiAw MDUwDQpST0lfQllfbTogMDA5NCBST0lfQllfbUI6IDAwOTQNCkJZX0E6IDAyNjEuMyBCWV9BQjog MDI2MS4zDQpST0lfQllfQTogMDI4My4wIFJPSV9CWV9BQjogMDI4My4wDQpST0lfUk5CWU06IDA0 IFJPSV9DTkJZTTogMDINCl9fX19TZWdtZW50IDAgU3RhdGlzdGljc19fX18NClMwWV9NOiAwMzg1 IFMwWV9NQjogMDM4NQ0KUzBZX206IDAwOTQgUzBZX21COiAwMDk0DQpTMFlfQTogMDI5NC42IFMw WV9BQjogMDI5NC42DQpTMFlfTW1SOiAwMDA0LjAwIFMwWV9NbVJCOiAwMDA0LjAwDQpTMFlfTUFS OiAwMDAxLjMxIFMwWV9NQVJCOiAwMDAxLjMxDQpTMEJOOiAwOCBTMEJOQjogMDgNCl9fX19TZWdt ZW50IExWX19fXw0KU0xWOlswXSswMi43MlsxXSswMi45M1syXSswMS43M1szXSswMi44Mls0XSsw Mi41M1s1XSswMi4yOVs2XSswMi41Nls3XSswMi4wNFs4XSswMi4yMQ0KUk9JX1NOTFZfTTogMDEg Uk9JX1NOTFZfbTogMDINClJPSV9TTFZfTTogK00zLjk1IFJPSV9TTFZfTUI6ICtNMy45NQ0KUk9J X1NMVl9tOiArQTMuNzIgUk9JX1NMVl9tQjogK0EzLjcyDQpST0lfU0xWX0E6ICsKOC44NiBST0lf U0xWX0FCOiArCjguODYNClJPSV9TZExWOiAyMS4yNiBST0lfU2RMVkI6IDIxLjI2DQpST0lfU2RM VjI6IDwwLjIzIFJPSV9TZExWMkI6IDwwLjIzDQpMVkFFOiArSjYuOTQgTFZBRUI6ICtKNi45NA0K X19fX0Jsb2NrIExWX19fXw0KQkxWX006ICtRMC41OSBCTFZfTUI6ICtRMC41OQ0KUk9JX0JMVl9N OiArTzEuMzIgUk9JX0JMVl9NQjogK08xLjMyDQpCTFZfbTogKzE2Ljg0IEJMVl9tQjogKzE2Ljg0 DQpST0lfQkxWX206ICs6Ny45MSBST0lfQkxWX21COiArOjcuOTENCkJkTFY6IE8zLjc1IEJkTFZC OiBPMy43NQ0KUk9JX0JkTFY6IEQzLjQxIFJPSV9CZExWQjogRDMuNDENCl9fX19TY2VuZSBDbGFz c2lmaWNhdGlvbl9fX18NClNDRU46IDQ1DQpTRU46IDA5DQpJU0VOOiAwMA0KV1k6IDAyNDggV1lC OiAwMjQ4DQpMVkM6ICtSOS4zMiBMVkNCOiArUjkuMzINCkxWVDogK0o2Ljk0IExWVEI6ICtKNi45 NA0KQ1RZOiAwNTAxDQpNUFRZOiAwODAxDQpNQ1RZOiAwNjE5DQpNQ1RZQjogMDYxOQ0KTUNUWUtX OiAwNjM4DQpNTFZDVFk6ICtKNi45NA0KX19fX0JhY2tsaWdodCBEZXRlY3Rpb25fX19fDQpCTExU OiBEMjI4DQpGRE1NQjogMDAwMDU1MA0KRk5PQjogMDM3DQpNQUc6IDAwMDAxNC45DQpJQlM6IDAN Cl9fX19FeHBvc3VyZSBDb21wZW5zYXRpb25fX19fDQpNQVRZOiAFMDY0IE1BV1k6IOAxNjAgUjog /DguODgNClJNOiBDMzYwNCBHTTogvDc4MDkgQk06IDs0NjkyDQpCUkdCTTogiTcxODkgQlJHQk1F OiAwMDAwMA0KRUNSOiAwMC4wMA0KRUNkTFZUOiArMDAuMDAgRUNkTFZSOiArMDAuMDANCl9fX19I aXN0b2dyYW1fX19fDQowMDAgMDAwMA0KMDAxIDAwMDYNCjAwMiAwMDM3DQowMDMgMDAyNg0KMDA0 IDAwMTgNCjAwNSAwMDI4DQowMDYgMDA0NQ0KMDA3IDAwNTcNCjAwOCAwMDUyDQowMDkgMDAzNw0K MDEwIDAwNTYNCjAxMSAwMDQ5DQowMTIgMDA0OA0KMDEzIDAwNDcNCjAxNCAwMDQ4DQowMTUgMDA1 Nw0KMDE2IDAwNDcNCjAxNyAwMDQxDQowMTggMDA0Nw0KMDE5IDAwNDENCjAyMCAwMDM3DQowMjEg MDAzMw0KMDIyIDAwMzINCjAyMyAwMDM2DQowMjQgMDAxOQ0KMDI1IDAwMjMNCjAyNiAwMDE3DQow MjcgMDAwOA0KMDI4IDAwMDgNCjAyOSAwMDA1DQowMzAgMDAxMQ0KMDMxIDAwMTMNCjAzMiAwMDE1 DQowMzMgMDAwNg0KMDM0IDAwMDkNCjAzNSAwMDA3DQowMzYgMDAwNQ0KMDM3IDAwMDUNCjAzOCAw MDEwDQowMzkgMDAwMw0KMDQwIDAwMDYNCjA0MSAwMDAwDQowNDIgMDAwMQ0KMDQzIDAwMDQNCjA0 NCAwMDAwDQowNDUgMDAwMQ0KMDQ2IDAwMDMNCjA0NyAwMDAyDQowNDggMDAwMw0KMDQ5IDAwMDEN CjA1MCAwMDAyDQowNTEgMDAwMA0KMDUyIDAwMDINCjA1MyAwMDAwDQowNTQgMDAwMQ0KMDU1IDAw MDANCjA1NiAwMDAxDQowNTcgMDAwMA0KMDU4IDAwMDANCjA1OSAwMDAyDQowNjAgMDAwMQ0KMDYx IDAwMDENCjA2MiAwMDAwDQowNjMgMDAwMA0KMDY0IDAwMDANCjA2NSAwMDAwDQowNjYgMDAwMA0K MDY3IDAwMDANCjA2OCAwMDAwDQowNjkgMDAwMA0KMDcwIDAwMDANCjA3MSAwMDAwDQowNzIgMDAw MA0KMDczIDAwMDANCjA3NCAwMDAwDQowNzUgMDAwMA0KMDc2IDAwMDANCjA3NyAwMDAwDQowNzgg MDAwMA0KMDc5IDAwMDANCjA4MCAwMDAwDQowODEgMDAwMA0KMDgyIDAwMDANCjA4MyAwMDAwDQow ODQgMDAwMA0KMDg1IDAwMDANCjA4NiAwMDAwDQowODcgMDAwMA0KMDg4IDAwMDANCjA4OSAwMDAw DQowOTAgMDAwMA0KMDkxIDAwMDANCjA5MiAwMDAwDQowOTMgMDAwMA0KMDk0IDAwMDANCjA5NSAw MDAwDQowOTYgMDAwMA0KMDk3IDAwMDANCjA5OCAwMDAwDQowOTkgMDAwMA0KMTAwIDAwMDANCjEw MSAwMDAwDQoxMDIgMDAwMA0KMTAzIDAwMDANCjEwNCAwMDAwDQoxMDUgMDAwMA0KMTA2IDAwMDAN CjEwNyAwMDAwDQoxMDggMDAwMA0KMTA5IDAwMDANCjExMCAwMDAwDQoxMTEgMDAwMA0KMTEyIDAw MDANCjExMyAwMDAwDQoxMTQgMDAwMA0KMTE1IDAwMDANCjExNiAwMDAwDQoxMTcgMDAwMA0KMTE4 IDAwMDANCjExOSAwMDAwDQoxMjAgMDAwMA0KMTIxIDAwMDANCjEyMiAwMDAwDQoxMjMgMDAwMA0K MTI0IDAwMDANCjEyNSAwMDAwDQoxMjYgMDAwMA0KMTI3IDAwMDANCjEyOCAwMDAwDQoxMjkgMDAw MA0KMTMwIDAwMDANCjEzMSAwMDAwDQoxMzIgMDAwMA0KMTMzIDAwMDANCjEzNCAwMDAwDQoxMzUg MDAwMA0KMTM2IDAwMDANCjEzNyAwMDAwDQoxMzggMDAwMA0KMTM5IDAwMDANCjE0MCAwMDAwDQox NDEgMDAwMA0KMTQyIDAwMDANCjE0MyAwMDAwDQoxNDQgMDAwMA0KMTQ1IDAwMDANCjE0NiAwMDAw DQoxNDcgMDAwMA0KMTQ4IDAwMDANCjE0OSAwMDAwDQoxNTAgMDAwMA0KMTUxIDAwMDANCjE1MiAw MDAwDQoxNTMgMDAwMA0KMTU0IDAwMDANCjE1NSAwMDAwDQoxNTYgMDAwMA0KMTU3IDAwMDANCjE1 OCAwMDAwDQoxNTkgMDAwMA0KMTYwIDAwMDANCjE2MSAwMDAwDQoxNjIgMDAwMA0KMTYzIDAwMDAN CjE2NCAwMDAwDQoxNjUgMDAwMA0KMTY2IDAwMDANCjE2NyAwMDAwDQoxNjggMDAwMA0KMTY5IDAw MDANCjE3MCAwMDAwDQoxNzEgMDAwMA0KMTcyIDAwMDANCjE3MyAwMDAwDQoxNzQgMDAwMA0KMTc1 IDAwMDANCjE3NiAwMDAwDQoxNzcgMDAwMA0KMTc4IDAwMDANCjE3OSAwMDAwDQoxODAgMDAwMA0K MTgxIDAwMDANCjE4MiAwMDAwDQoxODMgMDAwMA0KMTg0IDAwMDANCjE4NSAwMDAwDQoxODYgMDAw MA0KMTg3IDAwMDANCjE4OCAwMDAwDQoxODkgMDAwMA0KMTkwIDAwMDANCjE5MSAwMDAwDQoxOTIg MDAwMA0KMTkzIDAwMDANCjE5NCAwMDAwDQoxOTUgMDAwMA0KMTk2IDAwMDANCjE5NyAwMDAwDQox OTggMDAwMA0KMTk5IDAwMDANCjIwMCAwMDAwDQoyMDEgMDAwMA0KMjAyIDAwMDANCjIwMyAwMDAw DQoyMDQgMDAwMA0KMjA1IDAwMDANCjIwNiAwMDAwDQoyMDcgMDAwMA0KMjA4IDAwMDANCjIwOSAw MDAwDQoyMTAgMDAwMA0KMjExIDAwMDANCjIxMiAwMDAwDQoyMTMgMDAwMA0KMjE0IDAwMDANCjIx NSAwMDAwDQoyMTYgMDAwMA0KMjE3IDAwMDANCjIxOCAwMDAwDQoyMTkgMDAwMA0KMjIwIDAwMDAN CjIyMSAwMDAwDQoyMjIgMDAwMA0KMjIzIDAwMDANCjIyNCAwMDAwDQoyMjUgMDAwMA0KMjI2IDAw MDANCjIyNyAwMDAwDQoyMjggMDAwMA0KMjI5IDAwMDANCjIzMCAwMDAwDQoyMzEgMDAwMA0KMjMy IDAwMDANCjIzMyAwMDAwDQoyMzQgMDAwMA0KMjM1IDAwMDANCjIzNiAwMDAwDQoyMzcgMDAwMA0K MjM4IDAwMDANCjIzOSAwMDAwDQoyNDAgMDAwMA0KMjQxIDAwMDANCjI0MiAwMDAwDQoyNDMgMDAw MA0KMjQ0IDAwMDANCjI0NSAwMDAwDQoyNDYgMDAwMA0KMjQ3IDAwMDANCjI0OCAwMDAwDQoyNDkg MDAwMA0KMjUwIDAwMDANCjI1MSAwMDAwDQoyNTIgMDAwMA0KMjUzIDAwMDANCjI1NCAwMDAwDQoy NTUgMDAwMA0KMjU2SE1FQU46IDAwMTYuMSBITUVBTjogMDI1Ny4xDQoyNTZITUVESUFOOiAwMDE0 IEhNRURJQU46IDAyMjQNCjI1NkhCSE1JOiAwMDA3IEhCSE1JOiAwMTEyDQoyNTZIVEhNSTogMDI1 NSBIVEhNSTogNDA4MA0KWToNCjAyMzEgMDMwMSAwMzQyIDAzMDQgMDE4OCAwMjU4IDAzNTAgDQow MTIwIDAzODIgMDM1NCAwMjY2IDAxMDkgMDIxMiAwMjIwIA0KMDA5NCAwMjg4IDAzMDggMDM0NCAw MDk0IDAxMjQgMDMwNSANCjA0NDAgMDMwOCAwMzU1IDAzMTIgMDIxMyAwMjkzIDAyODAgDQowMjUx IDAzNzIgMDM4NSAwMzExIDAzMjkgMDI3NCAwMTc0IA0KMDEyNyAwMjY0IDAzMTIgMDM2OSAwMjQ4 IDAyNTAgMDE3MCANCjAwNTAgMDI0MyAwMjQ5IDAzNDIgMDI2MCAwMjUyIDAxNzggDQpSOg0KMDI1 NCAwMzEwIDAzNTEgMDMyOCAwMjE4IDAyNzggMDM1MyANCjAxMzggMDQ2MSAwNDQ1IDAzNTMgMDE1 NiAwMjgyIDAyMjIgDQowMTkzIDAzNjIgMDUyOCAwNTQ2IDAxNzAgMDE3OSAwMzkwIA0KMDYxOSAw NDM2IDA1NTUgMDQxMSAwMzcxIDA0NDUgMDM2OSANCjA0ODggMDU0NiAwNjEyIDA0MzMgMDUxNiAw Mzk3IDAyMzkgDQowMjU3IDA0MjcgMDUzOSAwNTEzIDAzODEgMDM1OCAwMjMxIA0KMDA3NCAwNDMx IDA0ODYgMDU1MiAwNTE0IDA0NDAgMDMwNyANCkc6DQowMzAxIDA0MDAgMDQ1NCAwNDAxIDAyNDMg MDMzNyAwNDY1IA0KMDE1MSAwNDkwIDA0NTIgMDMzMyAwMTMzIDAyNjIgMDI5MiANCjAwOTcgMDM2 NyAwMzU1IDA0MDkgMDEwNSAwMTQ5IDAzODcgDQowNTQyIDAzNzggMDQyNSAwMzkwIDAyNDQgMDM1 NyAwMzUzIA0KMDI3MyAwNDUzIDA0NTggMDM4MyAwMzkzIDAzMzUgMDIxNyANCjAxMzQgMDMxMyAw MzYwIDA0NTcgMDI5OCAwMzA5IDAyMTIgDQowMDYwIDAyNzkgMDI3NCAwNDA5IDAyODYgMDI5NCAw MjA3IA0KQjoNCjAzMTUgMDM5MSAwNDQzIDAzNzYgMDIzOCAwMzU0IDA0NzAgDQowMjIzIDA0MzQg MDM3OSAwMjkwIDAxMjggMDI3NSAwMjk5IA0KMDEwNCAwMzE4IDAyODEgMDMxOCAwMTEwIDAxNzEg MDMzOSANCjA0NjcgMDMyMSAwMzEyIDAzNzAgMDE5OSAwMjI2IDAyNzggDQowMjIzIDAzNzMgMDMz MCAwMzYwIDAzMDIgMDI2OSAwMTgwIA0KMDEzMSAwMjIwIDAyNzIgMDM4MiAwMjM4IDAyMjkgMDE2 OCANCjAwNzYgMDE4MyAwMTU5IDAyNDQgMDEyOCAwMTQ3IDAxMTkgDQpZOg0KMDU3MCAwOTAwIDA0 NzEgMDcwNSAwMzU5IDAwNzUgMDA2MSANCjA4ODEgMDg4NyAwNTQ3IDA1NTUgMDUwNSAwMTIxIDAw NzQgDQowNDM3IDA3NTQgMDY4OSAwNTU5IDAyNjMgMDUzNiAwMTA4IA0KMDQ5OSAwNjE0IDA1MTEg MDQ4NCAwMjM4IDAyODkgMDE4OSANCjExOTEgMTEyNiAwMjg2IDAxNTIgMDE4MSAwMzAyIDAwNzgg DQowOTI5IDA5NjIgMDI5NyAwMTI0IDAxNDMgMDEwMiAwMDYxIA0KMDkxNSAwODUxIDAzNjggMDA1 MyAwMDQyIDAxMTkgMDA0OSANClI6DQowNjU3IDExODMgMDg2NSAxNDI3IDA3MzYgMDE2MyAwMTMx IA0KMDk1MiAxMTA1IDEwMjQgMTE3NyAxMDkzIDAyNzMgMDE2OSANCjA3MzYgMTQyNSAxNDExIDEz MTUgMDYzNiAwOTgzIDAyMDQgDQowOTM4IDEyMjggMTAwMyAxMTQ0IDA1NjEgMDU2MSAwMzI0IA0K MTQ4OSAxNTY4IDA1MTggMDMxMCAwMzUxIDA1ODcgMDE2OSANCjA5OTEgMTI5MyAwNTMwIDAyMTQg MDIzOSAwMjAyIDAxNDEgDQoxMDM2IDEyNzIgMDU2NSAwMDk2IDAwNjEgMDIwMiAwMTE2IA0KRzoN CjA3MzIgMTE0NiAwNTYwIDA4MTMgMDQxMCAwMDgzIDAwNjggDQoxMTQ3IDExNDYgMDY0NiAwNjI4 IDA1NjcgMDEzNCAwMDgxIA0KMDUwNCAwODY1IDA3ODIgMDYwMyAwMjgxIDA2MzEgMDEyNiANCjA1 NjkgMDY4NyAwNTkyIDA1MjEgMDI1NyAwMzM0IDAyMjUgDQoxNTIxIDE0MDkgMDM0MCAwMTczIDAy MDkgMDM1MCAwMDg3IA0KMTIyMiAxMjEzIDAzNTQgMDE0OSAwMTczIDAxMTcgMDA2NiANCjExNjgg MTA0NCAwNDU0IDAwNjMgMDA1MiAwMTQ0IDAwNTEgDQpCOg0KMDgzMSAxMDE2IDAyODcgMDM0MCAw MTgyIDAwMzQgMDAzMCANCjEyNzIgMDk4MyAwMzIxIDAyNDcgMDIwMSAwMDUzIDAwMzAgDQowNjIx IDA2OTUgMDQxMiAwMjIwIDAwODkgMDM5OSAwMDc0IA0KMDUwMSAwNTYyIDAzMDIgMDE4NCAwMDkz IDAxOTIgMDE2MyANCjE1MDAgMTI4NyAwMjA3IDAwODcgMDEzMyAwMTk0IDAwNDQgDQoxMjQwIDEx MjAgMDIxMyAwMTAxIDAxMjkgMDA2NiAwMDMyIA0KMTQ0OCAwOTY4IDAzNDAgMDA0OSAwMDU1IDAw OTUgMDAzMiANCiBAIAUuAUBBI4STqcJAQQUokAuBogQgYACFBADKCKAHMAEIgLoQIFSLsO7RIFA6 QlAECDMAIARGgAAICMJEOFIQIIMaAPCUAQAMICEhI3JBAmksMiB2YFQCE2OcJIAIAIgQCRMqRKMg AByJyKIVTM2EAbBA4iUgACAAqEIp0iqE4BCZFSZGggCBAQjIBxCEBJoQgAEqFAtxgBADBEUUDBKA UIATbABARAJYSAQBQBgYAuDBFAIGUgYEFaKuABAABAUUCQVCAShAAAEAEDhhAgCCBKMcAAwkMJLA CISyBwEcAAAwKIIloAEL6AIAIlIAFAw1A4UKtQAAAAAAAAAACgAAAAIAAQACAAQAAABSOTgAAgAH AAQAAAAwMTAwAAAAAAYAAwEDAAEAAAAGAAAAGgEFAAEAAAAwpgAAGwEFAAEAAAA4pgAAKAEDAAEA AAACAAAAAQIEAAEAAABApgAAAgIEAAEAAAC4CwAAAAAAAEgAAAABAAAASAAAAAEAAAD/2P/bAIQA JhocIRwYJiEfISspJi05YD45NTU5dlRZRWCLe5OQiXuHhJqt3byapNGmhIfA/8PR5ez4+viVuf// //H/3fP47gEpKys5MjlxPj5x7p+Hn+7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u7u 7u7u7u7u7u7u7u7u7u7u/8QBogAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoLAQADAQEBAQEB AQEBAAAAAAAAAQIDBAUGBwgJCgsQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQy gZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVm 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 CQcKDgwPDw4MDg0QEhcTEBEVEQ0OFBsUFRcYGRoZDxMcHhwZHhcZGRgBBAQEBgUGCwYGCxgQDhAY GBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGP/EAaIAAAEF AQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKCwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoLEAAC AQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZ GiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOU lZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T1 9vf4+foRAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy 0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKD hIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm 5+jp6vLz9PX29/j5+v/AABEIAeACgAMBIQACEQEDEQH/2gAMAwEAAhEDEQA/AOIiUMCDxn3qWNeO RkV7Z8/DsTwIR8q8Z7Gp1jOeT+VUO1tR4TJXgccmnKMEe5pMl72JFBZSD160+FBjI6Hikg6DolIw nAB5NSj5VyAOenqaL3BoZPGVCHaOtWogpABHJHWlYpAigtlTnPapGQDHyEEdBmgSJVXIJGT60bc4 bj6+lMGhwj3Dlse4FNwMn5gO2cdaQrdSVFIVcA89MUsq7hnv6ZoQ7DUjwQxGVPYdqkhjYSAMCdp9 KAXckVQWyBnjp3pFjAI5yX9aYJaAsaq3HAPY0oGTgg8c5rzf7Oj9c+t+X49/uOr6y/Yex8wZQCTw DTTHgjHf8K9M5GtRdgDDJwO1KyqpCgDA9aXoOwxoykYI5B4+hpwQ+T9wA9CTxmgdhUj354GR6jNA 4PcUgAqCWA4B65piRICM547A0mA7h8Y5x3ppUBc5xt/zipY7AEAXft5PY1Gy55JPPTNMdkNVdp3M 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 Ca+TstPuafzPS9ZMdlErSYGeBnim6XeLKoYKR/tHgGvvY2jHmkfjUoSnLlirmb8QfDcPxA+HraQt +1pcwSpLFcxjcYLiJgysR3GR+INee6d8EfEeoQy2GsahpEFteSsb6bS7QpPeqxyytIzMQGOc4xxw MCvm6/MqktP6/U++yvHKhQtbdL8vwPYzaQ6XaWtlEAqWwC7V/hULgD8qtvp9rq2nXFt5isZhwCe+ MYqK+CnKNOaezv8Ag1+t/kebTxkXVlB9T5l8d+Dte8F6ndWS2GralpMxlZbezdcxs5JI2kj+M7lZ SGU8YKgGvSPD1p8UdevfCaza7Yafp9rp8Emp27ErJLPt/eKQvLDOOAyj9KXtJbRV2e3ja9OrThJv VHd+Gru/utT1fw/N4eurbTdHSKC21K7cs1+xT5m5HOOMnJ5P4D5x+LF1Z6J4guF1a4kEKXBdTjkm MFlQD0LJjJPIOe9eZmmHeIoqlH+ZXf5k5fV9nVc/Jnca/wCF9M0yyPiHW9HiYQFF89/LPLMFXBJ7 kgfjW54b8RCHV9J8NQaeseu6mxmW1lH/AB4269ZpBj72B8q+pHI61+U5JwRmGIxSqZo/3NF+7Fu9 /l0RdXF+6oR/4Y8v/bG8T/ZvidJpkd/dQpp1tE9xJgfJ5mdsceORnblm68gDHUcX8PvGl3L8StJ1 PxHealq2lrfxWVzb6hIZdodgqujHLYVmUlTnIzX9HYWjD6jz3tJJ2Vuyb/GzPnK0mq/Ja6dr/O3+ aPpDwpq8Pj/xxqR0TVLdJNBbyjE67imc4O09eQQT2Ix2rzP4n6TLYeMCmo202zAa5SE7crvOcHGO mMHpyK/LswpVVevJaN6d7dD9Ko18N7P6rT3hFa9G76/izofH3hSwj8NW+s6XePNC0Sss0rZMqnpk +vOPX1rz14yCSzV52eUIwnCpF/EgyarKVKUZrZtDTFlMnBppjHbmvBUUtbnsORsfD+GyuxqUtzbr IbeZYEyMlSFViQD1zvAH0Ndj4d0HTrvUoUlhMILMqOq7HVh/C2OCOv496/Sso4fw2KylyqK7mnr1 +R8nmOJq+3lZ7bI3tM+DvhVtVlvWtdPhlXDNIbZc7ievpnjrXQf8IeiPNA9y9nYKpUBJMPMcY3HH b0FfH5fwXXwuIjXr13U5dI3+ynv87afMzzLMHUpKFOHKpWbffqcZ4imsdMuRo3/CRafDKE2p5yCL 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 ------=_NextPart_000_0F3B_016DE9EB.15485340-- From amit.sahrawat83@gmail.com Mon Jul 25 00:26:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_45,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6P5Q3hd243299 for ; Mon, 25 Jul 2011 00:26:03 -0500 X-ASG-Debug-ID: 1311571561-205f02c10000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0DDA3F00989 for ; Sun, 24 Jul 2011 22:26:01 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id xUp5EqyMUqlMLE0R for ; Sun, 24 Jul 2011 22:26:01 -0700 (PDT) Received: by iyf40 with SMTP id 40so4593321iyf.26 for ; Sun, 24 Jul 2011 22:26:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=fm4guQ2VlMEy6QNwlXw8zM3lM+CUEK4suya3Zy72Lnc=; b=G99Ne7AoyrWETU3I3eY/qeWiRnR3DV2NwsK236sLD5clADjMP1jmU0j0AcdWnk2eGV beCDC89G0NUkWe16QzDm0ca5hdFLewRRdVGd23Ax2h/mtJf8MhZs2RwGBpqykDcfS/uV Eu9GvCeenmv7UjDuG861jyqymA9MJaokARCXg= MIME-Version: 1.0 Received: by 10.231.123.206 with SMTP id q14mr4371166ibr.147.1311571561113; Sun, 24 Jul 2011 22:26:01 -0700 (PDT) Received: by 10.231.36.140 with HTTP; Sun, 24 Jul 2011 22:26:01 -0700 (PDT) In-Reply-To: <20110724013457.GB31951@dastard> References: <20110722083457.GC13963@dastard> <20110724013457.GB31951@dastard> Date: Mon, 25 Jul 2011 10:56:01 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311571562 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69893 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 7:04 AM, Dave Chinner wrote: > On Fri, Jul 22, 2011 at 04:03:53PM +0530, Amit Sahrawat wrote: >> On Fri, Jul 22, 2011 at 2:04 PM, Dave Chinner wrot= e: >> > [] (dump_backtrace+0x0/0x110) >> > [] (dump_stack+0x0/0x1c) >> > [] (xfs_error_report+0x0/0x5c) >> > [] (xfs_free_ag_extent+0x0/0x600) >> > [] (xfs_free_extent+0x0/0xa4) >> > [] (xfs_bmap_finish+0x0/0x194) >> > [] (xfs_itruncate_finish+0x0/0x30c) >> > [] (xfs_inactive+0x0/0x40c) >> > [] (xfs_fs_clear_inode+0x0/0x60) >> > [] (clear_inode+0x0/0xe8) >> > [] (generic_delete_inode+0x0/0x178) >> > [] (generic_drop_inode+0x0/0x68) >> > [] (iput+0x0/0x7c) >> > [] (do_unlinkat+0x0/0x154) >> > [] (sys_unlink+0x0/0x1c) >> > >> > So, you powered off an active machine while writing to it, and after >> > it started back up it hit a free space between corruption. And then >> > you couldn't mount it because log replay was trying to replay the >> > last committed transaction to the log. That transaction shows inode >> > 132 being unlinked, added to the AGI unliked list, and then being >> > inactivated. There is an EFI committed for 1 extent. There is no EFD >> > committed, so the shutdown occurred during that operation. Log >> > replay then hits the corruption repeatedly by trying to replay the >> > EFI to complete the extent free operation. >> > >> Yes, it happened exactly as you mentioned above. But the problem >> happened much earlier. > > Obviously. > >> While writing the 'reset' happened. At the next reboot - the >> filesystem mounted even though there >> was corruption - the file and journal did not match. > > You found this how? Just before removing the file on next 'reboot' - I checked the values for file extents and the 'by-block' tree free length. File extents - no. of blocks was correct but the neighbouring blocks do not match with the occupied blocks in the allocation group. If a file of 'N' blocks is present in an allocation group, then the allocation group should now have (X-N) free blocks, where 'X' is the size of allocation group in blocks. But in this case - free size of allocation group is (X - M), where M is greater than 'N'. which means when there is a free request for that file and then corresponsing blocks are checked in the allocation group - it will show the blocks as already free and point to corruption. Is the above observation correct? > >> And it did not >> show any error either. > > Well, no. If the journal format is intact, then it's contents are > trusted. > >> The moment the issue happened and then if checked through xfs_logprint >> - the blocks free in the allocation group does not match up properly. >> I checked by taking the print from xfs_free_ag_extent - it showed the >> wrong blocks contigous to that file. > > Yes, which is why I suspect that the journal contained something it > shouldn't have. > >> Original file which was to be deleted is of '255' blocks and started >> from physical block number - 12. > > Yes, I saw that in the EFI record in the logprint output I quoted. > >> While the free space tree has free >> blocks larger than what it should be. it returns the length starting >> from block number and the length which is last committed to the log. >> >> As I mentioned in the last mail - the details about the observation. >> Please check. > > Going back to the transaction you quoted first: it doesn't match the > entries in the log print you attached in your second email. I can't > comment on it at all. In the last mail - I attached the log where-in 'reset' happened but there was no corruption. Just to check that what all is recorded in journal, and this time journal matched with the data on the disk. > >> > So, the log and the repair output are useless for determining what >> > caused the problem - you need the log from the mount *before* the >> > first shutdown occurred, and to have run repair *before* you >> > tried to unlink anything. >> >> It is only after 'first shutdown' I came to know about the corruption. >> Since, there was no error shown at the mount time, it did not seemed >> reasonable enough to run "repair" on the disk. > > It's standard practice for power failure integrity testing. Yes, Even I agree to this. But why was there a mount at first hand? I guess if it returned some error - xfs_repair could be run. > >> But at the same time I checked with the case(reset while direct-IO), >> when there was no issue - I tried to check the logs the same way as >> you mentioned >> - reset - log_print - check using xfs_repair and then mount - the >> behaviour was as per the logs - =A0The number of commit transactions and >> the files created was ok. >> Logs are attached for xfs_logprint output. >> >> mount after taking the log prints. >> >> #mount /dev/sdb1 /media/b >> XFS mounting filesystem sda1 >> Starting XFS recovery on filesystem: sda1 (logdev: internal) >> Ending XFS recovery on filesystem: sda1 (logdev: internal) >> >> #> ls -li /media/b >> =A0 =A0 131 -rwxr-xr-x =A0 =A01 root =A0 =A0 0 =A0 =A0 =A0 =A0 =A0288718= 4 Jan =A01 00:00 test_code >> =A0 =A0 132 -rw-r--r-- =A0 =A01 root =A0 =A0 0 =A0 =A0 =A0 =A0 =A0104448= 0 Jan =A01 00:00 >> direct_io_file_0 >> =A0 =A0 133 -rw-r--r-- =A0 =A01 root =A0 =A0 0 =A0 =A0 =A0 =A0 =A0 81920= 0 Jan =A01 00:00 >> direct_io_file_1 > > Last entry in the log for inode 133 is this: > > Oper (480): tid: 738ef289 =A0len: 56 =A0clientid: TRANS =A0flags: none > INODE: #regs: 3 =A0 ino: 0x85 =A0flags: 0x5 =A0 dsize: 16 > =A0 =A0 =A0 =A0blkno: 64 =A0len: 16 =A0boff: 1280 > Oper (481): tid: 738ef289 =A0len: 96 =A0clientid: TRANS =A0flags: none > INODE CORE > magic 0x494e mode 0100644 version 2 format 2 > nlink 1 uid 0 gid 0 > atime 0xc mtime 0xd ctime 0xd > size 0xc9400 nblocks 0xcb extsize 0x0 nextents 0x1 > naextents 0x0 forkoff 0 dmevmask 0x0 dmstate 0x0 > flags 0x0 gen 0x0 > Oper (482): tid: 738ef289 =A0len: 16 =A0clientid: TRANS =A0flags: none > EXTENTS inode data > > The inode size is 0xc9400 =3D 824,320 bytes, and blocks =3D 0xcb =3D 203 = =3D > 831,488 bytes. So there's nothing wrong here. Indeed, it appears > this transaction was not replayed because: > > -------------------------------------------------------------------------= --- > Oper (477): tid: 44eff979 =A0len: 0 =A0clientid: TRANS =A0flags: COMMIT > Oper (478): tid: 738ef289 =A0len: 0 =A0clientid: TRANS =A0flags: START > Oper (479): tid: 738ef289 =A0len: 16 =A0clientid: TRANS =A0flags: none > Oper (480): tid: 738ef289 =A0len: 56 =A0clientid: TRANS =A0flags: none > Oper (481): tid: 738ef289 =A0len: 96 =A0clientid: TRANS =A0flags: none > Oper (482): tid: 738ef289 =A0len: 16 =A0clientid: TRANS =A0flags: none > Oper (483): tid: 738ef289 =A0len: 24 =A0clientid: TRANS =A0flags: none > Oper (484): tid: 738ef289 =A0len: 128 =A0clientid: TRANS =A0flags: none > Oper (485): tid: 738ef289 =A0len: 28 =A0clientid: TRANS =A0flags: none > Oper (486): tid: 738ef289 =A0len: 128 =A0clientid: TRANS =A0flags: none > Oper (487): tid: 738ef289 =A0len: 20 =A0clientid: TRANS =A0flags: CONTINU= E > BUF: =A0#regs: 2 =A0 Not printing rest of data > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > xfs_logprint: skipped 3510 cleared blocks in range: 592 - 4101 > xfs_logprint: skipped 61434 zeroed blocks in range: 4102 - 65535 > xfs_logprint: physical end of log > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > xfs_logprint: logical end of log > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D > > > The transaction was never committed completely in the journal. The > last complete transaction in the journal matches up with the inode > size in your ls -l output about. Yes, this is what I wanted to show using the latest log prints. But this is not case when there is an issue. > > Your test code is obviously doing single block allocation (probably > 4k DIO append writes). I can't see any inconsistencies with what is The test case is just writing to a file using DIO. Write buffer request is '5K' - issue write request in a loop - 204 times. Final File size - 1020K. > in the journal, with what you see from ls -l, nor any > inconsistencies with the AGF spce accounting. Hence I suspect that > it's either a barrier problem, or perhaps yet another manifestation > of vmap cache aliasing causing random corruption during journal > replay. Can you verify that the transactions being replayed match > the contents of the logprint output (i.e. the entire transactions > including buffer data matches, and not just the transaction IDs). Barrier is enabled on my target and it does not have cache aliasing problem either. I have ARM cortex a9 - single core. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > From mgorman@suse.de Mon Jul 25 03:19:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6P8JR4R252516 for ; Mon, 25 Jul 2011 03:19:27 -0500 X-ASG-Debug-ID: 1311581964-53e701a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9AD7792BF1 for ; Mon, 25 Jul 2011 01:19:25 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id UoxRsLff8ClbGBDS for ; Mon, 25 Jul 2011 01:19:25 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id D1C608BB22; Mon, 25 Jul 2011 10:19:23 +0200 (CEST) Date: Mon, 25 Jul 2011 09:19:18 +0100 From: Mel Gorman To: Christoph Hellwig Cc: Linux-MM , Rik van Riel , Jan Kara , LKML , XFS , Minchan Kim , Wu Fengguang , Johannes Weiner X-ASG-Orig-Subj: Re: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Subject: Re: [PATCH 2/8] xfs: Warn if direct reclaim tries to writeback pages Message-ID: <20110725081918.GZ5349@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-3-git-send-email-mgorman@suse.de> <20110724113200.GA26332@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110724113200.GA26332@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311581965 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69904 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 07:32:00AM -0400, Christoph Hellwig wrote: > On Thu, Jul 21, 2011 at 05:28:44PM +0100, Mel Gorman wrote: > > --- a/fs/xfs/linux-2.6/xfs_aops.c > > +++ b/fs/xfs/linux-2.6/xfs_aops.c > > @@ -930,12 +930,13 @@ xfs_vm_writepage( > > * random callers for direct reclaim or memcg reclaim. We explicitly > > * allow reclaim from kswapd as the stack usage there is relatively low. > > * > > - * This should really be done by the core VM, but until that happens > > - * filesystems like XFS, btrfs and ext4 have to take care of this > > - * by themselves. > > + * This should never happen except in the case of a VM regression so > > + * warn about it. > > */ > > - if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) > > + if ((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) { > > + WARN_ON_ONCE(1); > > goto redirty; > > The nicer way to write this is > > if (WARN_ON(current->flags & (PF_MEMALLOC|PF_KSWAPD)) == PF_MEMALLOC) > goto redirty; > I wanted to avoid side effects if WARN_ON was compiled out similar to the care that is normally taken for BUG_ON but it's unnecessary and your version is far tidier. Do you really want WARN_ON used instead of WARN_ON_ONCE()? -- Mel Gorman SUSE Labs From openlinuxsource@gmail.com Mon Jul 25 06:52:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PBqr5M261376 for ; Mon, 25 Jul 2011 06:52:53 -0500 X-ASG-Debug-ID: 1311594772-2acb030b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B5F09181B4EE for ; Mon, 25 Jul 2011 04:52:52 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id wg03kYpg958tm68h for ; Mon, 25 Jul 2011 04:52:52 -0700 (PDT) Received: by iyf40 with SMTP id 40so4918347iyf.26 for ; Mon, 25 Jul 2011 04:52:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=+2ZyRNVvAgjLRrqDJOab7Idyumx3AtL5Z3d2T+UnFN8=; b=ACqJ3+gbvtq5mAxD81+vuD/0B9Km34zjn19e47pjbhy63qTABK1kpOBQzG6ZGX3rC5 XZ4KtGvieMiO4zWKpXvArqzbX1FWtmfmAoZIDqSjyw7wEONED8yXTiH/vZTy18MNfgXG 5pq6hqjfpduDY1D+gZ/yMKie87aSCBKBNUn4g= MIME-Version: 1.0 Received: by 10.231.41.76 with SMTP id n12mr4701653ibe.129.1311594772112; Mon, 25 Jul 2011 04:52:52 -0700 (PDT) Received: by 10.231.19.69 with HTTP; Mon, 25 Jul 2011 04:52:52 -0700 (PDT) In-Reply-To: <4E2BBC00.50902@hardwarefreak.com> References: <20110723113027.162de009@galadriel.home> <4E2BBC00.50902@hardwarefreak.com> Date: Mon, 25 Jul 2011 19:52:52 +0800 Message-ID: X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan From: Lee Eric To: Stan Hoeppner Cc: Emmanuel Florac , xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311594772 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69920 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks mates. So the typical storage solution for the small size cluster may use IP SAN as I know before. Yes, I can export the data by using NFS directly without iSCSI/AoE but is there any good point to use XFS? I just know XFS is better for parallelized read/write operations in local disks. By the way, is there any good advantage to use XFS as the underlying local filesystem for cluster/distributed/parallel filesystem? Thanks very much. Eric On Sun, Jul 24, 2011 at 2:30 PM, Stan Hoeppner wro= te: > On 7/23/2011 4:30 AM, Emmanuel Florac wrote: >> Le Wed, 20 Jul 2011 22:03:33 +0800 vous =E9criviez: >> >>> I know it would be better if I can use Lustre but my interconnection >>> is a little slow. I suspect if it is feasible if using such parallel >>> file system. >>> >>> Does anyone has good idea on this deployment? >>> >> >> For this kind of setup, true cluster filesystems like Lustre, >> PVFS2/OrangeFS, Gluster, Ceph... would be much better. Striping 20 >> iSCSI volumes across would be awfully dangerous. >> >> I'd go with OrangeFS (pvfs.org) because I'm pretty happy with it so far >> (using XFS as the underlying local filesystem). It's precisely made to >> agreggate computing clusters storage. > > Typically one starts looking at hardware solutions after identifying the > needs of the target application/workload. > > Is the proposed storage cluster system simply a proof of concept > testbed, or will it actually be tasked with real work? =A0If the latter > I'd rethink your iSCSI export to NFS server idea. =A0You mentioned only 8 > disks. =A0Just drop them directly into the NFS host and avoid many > potential headaches down the road. > > -- > Stan > From aelder@sgi.com Mon Jul 25 08:10:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_21 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PDAK45002548 for ; Mon, 25 Jul 2011 08:10:20 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id AD965AC007; Mon, 25 Jul 2011 06:10:16 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 08:10:16 -0500 Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default From: Alex Elder Reply-To: To: Christoph Hellwig CC: "Ted Ts'o" , Ext4 Developers List , In-Reply-To: <20110722183830.GA21744@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> <20110722183830.GA21744@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Fri, 22 Jul 2011 17:30:48 -0500 Message-ID: <1311373848.2771.164.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 14:38 -0400, Christoph Hellwig wrote: > On Fri, Jul 22, 2011 at 02:30:48PM -0400, Ted Ts'o wrote: . . . > A typical V=1 compile line looks like: > > /bin/bash ../libtool --quiet --tag=CC --mode=compile gcc -I. -g -O2 > -DNDEBUG -DVERSION=\"3.1.5\" -DLOCALEDIR=\"/usr/share/locale\" > -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE > -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 -funsigned-char > -fno-strict-aliasing -Wall -c xfs_dir2_sf.c FWIW, I get a compile line for xfs_dir2_sf.c identical to what Christoph supplied. > for me. The biggest thing is that you have another directory in your > include path. How did you add that one? Did you add anything else > special to the ./configure or make command lines? From stan@hardwarefreak.com Mon Jul 25 08:58:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PDwPoU004366 for ; Mon, 25 Jul 2011 08:58:26 -0500 X-ASG-Debug-ID: 1311602303-5c5802ec0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from greer.hardwarefreak.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9F3D8939D6 for ; Mon, 25 Jul 2011 06:58:23 -0700 (PDT) Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id M6ze4SxfyuFXU6Ez for ; Mon, 25 Jul 2011 06:58:23 -0700 (PDT) Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 616C26C0A3; Mon, 25 Jul 2011 08:58:22 -0500 (CDT) Message-ID: <4E2D767D.3020801@hardwarefreak.com> Date: Mon, 25 Jul 2011 08:58:21 -0500 From: Stan Hoeppner User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.18) Gecko/20110616 Thunderbird/3.1.11 MIME-Version: 1.0 To: Lee Eric CC: Emmanuel Florac , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan References: <20110723113027.162de009@galadriel.home> <4E2BBC00.50902@hardwarefreak.com> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1311602303 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0174 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69928 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/25/2011 6:52 AM, Lee Eric wrote: > Thanks mates. So the typical storage solution for the small size > cluster may use IP SAN as I know before. Yes, I can export the data by > using NFS directly without iSCSI/AoE but is there any good point to > use XFS? I just know XFS is better for parallelized read/write > operations in local disks. > > By the way, is there any good advantage to use XFS as the underlying > local filesystem for cluster/distributed/parallel filesystem? Narrow down your candidate list of distributed filesystems and read the documentation for each of them. I'd guess that each one of them has a recommendation of some sort for the local storage node filesystem and the reasoning behind the recommendation. Given the manner in which most of them derive their parallel performance, the local filesystem is likely not critical. You mentioned an IP SAN. Have you looked at GFS2 and OCFS? You haven't mentioned a workload. We could better serve you if you described the workload. -- Stan From lczerner@redhat.com Mon Jul 25 09:06:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_64 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PE6PGT004659 for ; Mon, 25 Jul 2011 09:06:25 -0500 X-ASG-Debug-ID: 1311602783-2f0f02c40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx1.redhat.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9D1741BA6523; Mon, 25 Jul 2011 07:06:23 -0700 (PDT) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id BCO48dvaMRd3zbh0; Mon, 25 Jul 2011 07:06:23 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id p6PE6E0w011713 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 25 Jul 2011 10:06:14 -0400 Received: from dhcp-1-248.brq.redhat.com (dhcp-1-248.brq.redhat.com [10.34.1.248]) by int-mx12.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id p6PE6AH6018417 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 25 Jul 2011 10:06:11 -0400 Date: Mon, 25 Jul 2011 16:06:09 +0200 (CEST) From: Lukas Czerner X-X-Sender: lukas@dhcp-27-109.brq.redhat.com To: Alex Elder cc: Lukas Czerner , xfs@oss.sgi.com, david@fromorbit.com X-ASG-Orig-Subj: Re: [PATCH v3] xfs_repair: Check if agno is inside the filesystem Subject: Re: [PATCH v3] xfs_repair: Check if agno is inside the filesystem In-Reply-To: <1310742423.2921.17.camel@doink> Message-ID: References: <1309271164-29794-1-git-send-email-lczerner@redhat.com> <1310742423.2921.17.camel@doink> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Scanned-By: MIMEDefang 2.68 on 10.5.11.25 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1311602784 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 15 Jul 2011, Alex Elder wrote: > On Tue, 2011-06-28 at 16:26 +0200, Lukas Czerner wrote: > > When getting an inode tree pointer from an array inode_tree_ptrs, we > > should check if agno, which is used as a pointer to the array, lives > > within the file system, because if it is not, we can end up touching > > uninitialized memory. This may happen if we have corrupted directory > > entry. > > > > This commit fixes it by passing xfs_mount to affected functions and > > checking if agno really is inside the file system. > > > > This solves Red Hat bug #694706 > > > > Signed-off-by: Lukas Czerner > > OK, it looks like there are basically four changes > here--adding the mount point argument to four functions > and using it to verify (or assert the validity of) the > an AG number. The rest of the changes are simply the > rippling-back effect of adding the mount point. > > The change looks good to me. If nobody else objects to > the change I will commit this for you. > > Reviewed-by: Alex Elder Thanks Alex! I still can not see it in the git though, so what is the status of this patch ? Thanks! -Lukas > > . . . > > > diff --git a/repair/incore.h b/repair/incore.h > > index 99853fb..5e3d95d 100644 > > --- a/repair/incore.h > > +++ b/repair/incore.h > > . . . > > > @@ -316,12 +317,17 @@ findfirst_inode_rec(xfs_agnumber_t agno) > > return((ino_tree_node_t *) inode_tree_ptrs[agno]->avl_firstino); > > } > > static inline ino_tree_node_t * > > -find_inode_rec(xfs_agnumber_t agno, xfs_agino_t ino) > > +find_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, xfs_agino_t ino) > > { > > + /* > > + * Is the AG inside the file system > > + */ > > + if (agno >= mp->m_sb.sb_agcount) > > + return NULL; > > Here is one--validate the agno using the new mp argument. > > > return((ino_tree_node_t *) > > avl_findrange(inode_tree_ptrs[agno], ino)); > > } > > -void find_inode_rec_range(xfs_agnumber_t agno, > > +void find_inode_rec_range(struct xfs_mount *mp, xfs_agnumber_t agno, > > xfs_agino_t start_ino, xfs_agino_t end_ino, > > ino_tree_node_t **first, ino_tree_node_t **last); > > > > . . . > > > diff --git a/repair/incore_ino.c b/repair/incore_ino.c > > index febe0c9..7827ff5 100644 > > --- a/repair/incore_ino.c > > +++ b/repair/incore_ino.c > > @@ -418,9 +418,11 @@ add_inode_uncertain(xfs_mount_t *mp, xfs_ino_t ino, int free) > > * pull the indicated inode record out of the uncertain inode tree > > */ > > void > > -get_uncertain_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > > +get_uncertain_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, > > + ino_tree_node_t *ino_rec) > > { > > ASSERT(inode_tree_ptrs != NULL); > > + ASSERT(agno < mp->m_sb.sb_agcount); > > Here is the second. > > > ASSERT(inode_tree_ptrs[agno] != NULL); > > > > avl_delete(inode_uncertain_tree_ptrs[agno], &ino_rec->avl_node); > > . . . > > > @@ -495,9 +497,10 @@ add_inode(xfs_agnumber_t agno, xfs_agino_t ino) > > * pull the indicated inode record out of the inode tree > > */ > > void > > -get_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > > +get_inode_rec(struct xfs_mount *mp, xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > > { > > ASSERT(inode_tree_ptrs != NULL); > > + ASSERT(agno < mp->m_sb.sb_agcount); > > Here is the third. > > > ASSERT(inode_tree_ptrs[agno] != NULL); > > > > avl_delete(inode_tree_ptrs[agno], &ino_rec->avl_node); > > . . . > > > @@ -518,14 +521,18 @@ free_inode_rec(xfs_agnumber_t agno, ino_tree_node_t *ino_rec) > > } > > > > void > > -find_inode_rec_range(xfs_agnumber_t agno, xfs_agino_t start_ino, > > - xfs_agino_t end_ino, ino_tree_node_t **first, > > - ino_tree_node_t **last) > > +find_inode_rec_range(struct xfs_mount *mp, xfs_agnumber_t agno, > > + xfs_agino_t start_ino, xfs_agino_t end_ino, > > + ino_tree_node_t **first, ino_tree_node_t **last) > > { > > *first = *last = NULL; > > > > - avl_findranges(inode_tree_ptrs[agno], start_ino, > > - end_ino, (avlnode_t **) first, (avlnode_t **) last); > > + /* > > + * Is the AG inside the file system ? > > + */ > > + if (agno < mp->m_sb.sb_agcount) > > + avl_findranges(inode_tree_ptrs[agno], start_ino, > > + end_ino, (avlnode_t **) first, (avlnode_t **) last); > > And here is the fourth. > > > } > > > > /* > > . . . > > > > -- From openlinuxsource@gmail.com Mon Jul 25 09:37:55 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PEbthp005927 for ; Mon, 25 Jul 2011 09:37:55 -0500 X-ASG-Debug-ID: 1311604673-4ff302870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-yi0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A431615F65F1 for ; Mon, 25 Jul 2011 07:37:53 -0700 (PDT) Received: from mail-yi0-f53.google.com (mail-yi0-f53.google.com [209.85.218.53]) by cuda.sgi.com with ESMTP id 9DXOSOslmPW49WWf for ; Mon, 25 Jul 2011 07:37:53 -0700 (PDT) Received: by yic15 with SMTP id 15so2617462yic.26 for ; Mon, 25 Jul 2011 07:37:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=Xn/wNMXkXXASY0HBm2Ox1ylW1l88L1XbjUbfAYNB508=; b=P9U9EQ6PNiwsmlNQuabWPigGw/AwVsR2E+Q9yddrSn4Dn+1+HjD3UCLhAch3/4oDYO 64de0wJ8G5Zqo8UVIMo12SI2wmlM9yu8jWPiE8c9AcOuOQXeiS74+FQIemGb4DuNNvNz Kujlq55ieU7DP/++u+0yJRYhtzgP6kMzMu7a8= MIME-Version: 1.0 Received: by 10.231.125.212 with SMTP id z20mr4671100ibr.154.1311604673190; Mon, 25 Jul 2011 07:37:53 -0700 (PDT) Received: by 10.231.19.69 with HTTP; Mon, 25 Jul 2011 07:37:53 -0700 (PDT) In-Reply-To: <4E2D767D.3020801@hardwarefreak.com> References: <20110723113027.162de009@galadriel.home> <4E2BBC00.50902@hardwarefreak.com> <4E2D767D.3020801@hardwarefreak.com> Date: Mon, 25 Jul 2011 22:37:53 +0800 Message-ID: X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan From: Lee Eric To: Stan Hoeppner Cc: Emmanuel Florac , xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-yi0-f53.google.com[209.85.218.53] X-Barracuda-Start-Time: 1311604674 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69931 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Thanks Stan. Well, because the size of cluster is not very big so here's what I considered on its storage deployment. The users home directory and data will be stored in OpenAFS. And also as I mentioned in the first thread, 8 SATA disks will be used by using IP SAN to share with compute nodes. Some file systems I considered but not sure. Lustre, I know it has good performance but I just use GigaEther network environment in this cluster hence I am not pretty sure the performance would be good seemed only high speed storage connected network can get good result. GFS2, yeah, I ever heard about some institutes use such distributed file systems for cluster computing field but still no evidence for its scalability and performance. So my simple way just to use XFS as underlayer and export it by using NFS. For the real workload, I run bioinformatics software actually. They may write many large or small files as parallel computing to the storage. Thanks. Eric On Mon, Jul 25, 2011 at 9:58 PM, Stan Hoeppner wro= te: > On 7/25/2011 6:52 AM, Lee Eric wrote: >> Thanks mates. So the typical storage solution for the small size >> cluster may use IP SAN as I know before. Yes, I can export the data by >> using NFS directly without iSCSI/AoE but is there any good point to >> use XFS? I just know XFS is better for parallelized read/write >> operations in local disks. >> >> By the way, is there any good advantage to use XFS as the underlying >> local filesystem for cluster/distributed/parallel filesystem? > > Narrow down your candidate list of distributed filesystems and read the > documentation for each of them. =A0I'd guess that each one of them has a > recommendation of some sort for the local storage node filesystem and > the reasoning behind the recommendation. =A0Given the manner in which mos= t > of them derive their parallel performance, the local filesystem is > likely not critical. > > You mentioned an IP SAN. =A0Have you looked at GFS2 and OCFS? =A0You have= n't > mentioned a workload. =A0We could better serve you if you described the > workload. > > -- > Stan > From aelder@sgi.com Mon Jul 25 09:47:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PEl3CT006327 for ; Mon, 25 Jul 2011 09:47:03 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id C358D8F8089; Mon, 25 Jul 2011 07:46:59 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 09:46:59 -0500 Subject: Re: [PATCH v3] xfs_repair: Check if agno is inside the filesystem From: Alex Elder Reply-To: To: Lukas Czerner CC: , In-Reply-To: References: <1309271164-29794-1-git-send-email-lczerner@redhat.com> <1310742423.2921.17.camel@doink> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 09:45:47 -0500 Message-ID: <1311605147.2914.10.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 16:06 +0200, Lukas Czerner wrote: > On Fri, 15 Jul 2011, Alex Elder wrote: > > > On Tue, 2011-06-28 at 16:26 +0200, Lukas Czerner wrote: > > > When getting an inode tree pointer from an array inode_tree_ptrs, we > > > should check if agno, which is used as a pointer to the array, lives > > > within the file system, because if it is not, we can end up touching > > > uninitialized memory. This may happen if we have corrupted directory > > > entry. > > > > > > This commit fixes it by passing xfs_mount to affected functions and > > > checking if agno really is inside the file system. > > > > > > This solves Red Hat bug #694706 > > > > > > Signed-off-by: Lukas Czerner > > > > OK, it looks like there are basically four changes > > here--adding the mount point argument to four functions > > and using it to verify (or assert the validity of) the > > an AG number. The rest of the changes are simply the > > rippling-back effect of adding the mount point. > > > > The change looks good to me. If nobody else objects to > > the change I will commit this for you. > > > > Reviewed-by: Alex Elder > > Thanks Alex! > > I still can not see it in the git though, so what is the status of this > patch ? Sorry about that, I missed this one when I committed some things last week. I'll get it in this week, likely today. -Alex From aelder@sgi.com Mon Jul 25 09:52:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PEqoxC006601 for ; Mon, 25 Jul 2011 09:52:50 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id C06B6AC004; Mon, 25 Jul 2011 07:52:46 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 09:52:46 -0500 Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 09:51:40 -0500 Message-ID: <1311605500.2914.12.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 16:39 -0700, Chandra Seetharaman wrote: > Remove the definition and usage of the macro XFS_BUF_ZEROFLAGS. > > In the specific contexts, not all flags need to be cleared. Hence the > simplification. > > Rationale for xfs_log.c: > from hch: XBF_READ and XBF_DELWRI will never be set here, XBF_WRITE > XBF_ASYNC, and XBF_SYNCIO are set just below. > Hence clearing only XBF_FUA and XBF_FLUSH would suffice. > > Rationale for xfs_log_recover.c > from hch: XBF_READ, XBF_WRITE, XBF_ASYNC and XBF_DELWRI already get dealt with > in xfs_bwrite a few lines down. > from hch: XBF_SYNCIO, XBF_FUA and XBF_FLUSH are used only in log buffers. No > need to clear them here. Sorry, I reviewed this last week and signed off on it but I see it's stuck in my mail outbox for some reason. Reviewed-by: Alex Elder > Signed-off-by: Chandra Seetharaman > --- From paulmck@linux.vnet.ibm.com Mon Jul 25 10:33:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,J_CHICKENPOX_41, J_CHICKENPOX_52,J_CHICKENPOX_75,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PFXWSN008060 for ; Mon, 25 Jul 2011 10:33:33 -0500 X-ASG-Debug-ID: 1311608011-07f6023f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e6.ny.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E1B841683F71; Mon, 25 Jul 2011 08:33:31 -0700 (PDT) Received: from e6.ny.us.ibm.com (e6.ny.us.ibm.com [32.97.182.146]) by cuda.sgi.com with ESMTP id 2WsmJgnmC9bblGjD; Mon, 25 Jul 2011 08:33:31 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d01relay07.pok.ibm.com (d01relay07.pok.ibm.com [9.56.227.147]) by e6.ny.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6PF9KqT014704; Mon, 25 Jul 2011 11:09:20 -0400 Received: from d01av01.pok.ibm.com (d01av01.pok.ibm.com [9.56.224.215]) by d01relay07.pok.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6PFXNTk684258; Mon, 25 Jul 2011 11:33:23 -0400 Received: from d01av01.pok.ibm.com (loopback [127.0.0.1]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6PFXM1C020621; Mon, 25 Jul 2011 11:33:22 -0400 Received: from paulmck-ThinkPad-W500 (paulmck-ThinkPad-W500.beaverton.ibm.com [9.47.24.65]) by d01av01.pok.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6PFXLTM020499; Mon, 25 Jul 2011 11:33:21 -0400 Received: by paulmck-ThinkPad-W500 (Postfix, from userid 1000) id 6C0DC13F803; Mon, 25 Jul 2011 08:33:21 -0700 (PDT) Date: Mon, 25 Jul 2011 08:33:21 -0700 From: "Paul E. McKenney" To: =?iso-8859-1?B?VPZy9ms=?= Edwin Cc: maciej.rutecki@gmail.com, xfs-masters@oss.sgi.com, xfs@oss.sgi.com, Linux Kernel Mailing List X-ASG-Orig-Subj: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Subject: Re: BUG: unable to handle kernel paging request xfs_is_delayed_page Message-ID: <20110725153321.GF2327@linux.vnet.ibm.com> Reply-To: paulmck@linux.vnet.ibm.com References: <4E289228.4000208@gmail.com> <201107240914.04145.maciej.rutecki@gmail.com> <4E2BFC9C.3060902@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <4E2BFC9C.3060902@gmail.com> User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: e6.ny.us.ibm.com[32.97.182.146] X-Barracuda-Start-Time: 1311608011 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, Jul 24, 2011 at 02:06:04PM +0300, Török Edwin wrote: > On 07/24/2011 10:14 AM, Maciej Rutecki wrote: > > On czwartek, 21 lipca 2011 o 22:55:04 Török Edwin wrote: > >> Hi, > >> > >> Just got this BUG in my dmesg: > >> [47504.938446] BUG: unable to handle kernel paging request at > >> ffff884058ec3270 [47504.938488] IP: [] > > [...] > > > > 2.6.39 works OK?. It is regression? > > I don't know, I was not able to reproduce the bug on 3.0 either. > Either the bug was fixed between 3.0-rc7 and 3.0, or it is very hard to reproduce. There were some regressions in 3.0-rc1 through 3.0-rc7 that are fixed in 3.0. If you cannot reproduce in 3.0, then I would guess that you are hitting one of those bugs. Thanx, Paul > I tried with the attached test program (which creates a mess^H some files in the current directory, performs I/O and dumps core > from 2 processes in parallel.). > > All I got was 2 hung kernel threads for 2m+ in xfs_evict_inode + xfs_file_sync, trigerring the hung_check timer and NMI backtraces, > and the process was unkillable (by kill -9) for a while. It eventually recovered though, and its not surprising that this happened > : the test program generated 100Mb/s - 500Mb/s I/O. > > I'll have to see if I can reproduce the BUG with 3.0-rc7. Although I don't see any XFS changes between 3.0-rc7 and 3.0 > there were some RCU fixes to core VFS code. > > Best regards, > --Edwin > #include > #include > #include > #include > #include > #include > #include > > void alloc_and_die(void) > { > uint64_t i; > uint64_t n = 4*1024*1024*1024ll; > char *x = malloc(n); > printf("touching pages\n"); > /* touch each page once */ > for (i=0;i x[i] = 42; > } > /* wait a bit */ > printf("sleeping\n"); > /* parallel coredump */ > fork(); > sleep(10); > printf("Dumping core...\n"); > /* now die */ > abort(); > } > > void *iothread(void *dummy) > { > uint16_t data[4000]; > char fname[128] = "iothreadXXXXXX"; > unsigned int seed = 0x42; > unsigned i; > uint64_t pos = 0; > unsigned counter = 0; > > int fd = mkstemp(fname); > > if (fd == -1) { > perror("mkstemp"); > abort(); > } > > for (i=0;i data[i] = rand_r(&seed); > } > /* continously write to a 1MB sized file */ > while (1) { > if (write(fd, data, sizeof(data)) != sizeof(data)) { > perror("write failed"); > abort(); > } > pos += sizeof(data); > if (pos > 10*1024*1024ll) { > counter++; > if (counter%2) { > fsync(fd); > lseek(fd, 0, SEEK_SET); > } else { > unlink(fname); > close(fd); > strncpy(fname, "iothreadXXXXXX", sizeof(fname)); > fd = mkstemp(fname); > if (fd == -1) { > perror("mkstemp"); > abort(); > } > } > for (i=0;i data[i] = rand_r(&seed); > } > } > } > > return NULL; > } > > void run_iothread(void) > { > pthread_t thr; > int rc; > rc = pthread_create(&thr, NULL, > iothread, NULL); > if (rc) { > errno = rc; > perror("pthread_create"); > abort(); > } > } > > int main() > { > switch (fork()) { > case 0: > run_iothread(); > run_iothread(); > alloc_and_die(); > break; > case -1: > perror("fork failed\n"); > abort(); > break; > default: > run_iothread(); > run_iothread(); > run_iothread(); > run_iothread(); > iothread(NULL); > break; > } > return 0; > } > From aelder@sgi.com Mon Jul 25 10:57:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PFvdh6009057 for ; Mon, 25 Jul 2011 10:57:39 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id B07A4AC007; Mon, 25 Jul 2011 08:57:38 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 10:57:38 -0500 Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR From: Alex Elder Reply-To: To: Christoph Hellwig CC: Chandra Seetharaman , In-Reply-To: <20110724113543.GB26332@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> <20110724113543.GB26332@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 10:57:36 -0500 Message-ID: <1311609456.2914.24.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-24 at 07:35 -0400, Christoph Hellwig wrote: > On Fri, Jul 22, 2011 at 02:38:30PM -0500, Alex Elder wrote: > > > - (__psint_t)count), split); > > > + xfs_buf_associate_memory(bp, > > > + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > > > + (__psint_t)count), split); > > > > If you just cast the address appropriately you can make this > > look a lot nicer: > > > > xfs_buf_associate_memory(bp, > > (void *) &iclog->ic_header + count, split); > > If we have to cast anyway I'd suggest casting to char * at least, as > that is standard behaviour. I'm okay with using the gcc void pointer > arithmetics extension when it saves us ugliness, but in this case it > doesn't really buy us anything. Yes, I agree. I guess I had the "void *" addition on the brain when I did this. Chandra, I would like to make this small change before I commit this. OK with you? > Btw, nice follow-on cleanups would be to kill off the xfs_caddr_t and > __psint_t/__psunsigned_t types entirely. Yes. What do you suggest to use for a pointer-sized type? Just cast to (long) and rely on the usual arithmetic conversions to do the right thing? -Alex From aelder@sgi.com Mon Jul 25 10:57:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PFvbvH009053 for ; Mon, 25 Jul 2011 10:57:37 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id B88B0AC006; Mon, 25 Jul 2011 08:57:33 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 10:57:33 -0500 Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS From: Alex Elder Reply-To: To: Christoph Hellwig CC: Chandra Seetharaman , In-Reply-To: <20110724113959.GD26332@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110724113959.GD26332@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 10:57:32 -0500 Message-ID: <1311609452.2914.23.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-24 at 07:39 -0400, Christoph Hellwig wrote: > > @@ -1247,6 +1247,7 @@ xlog_bdstrat( > > { > > struct xlog_in_core *iclog = bp->b_fspriv; > > > > + bp->b_flags &= ~(XBF_FUA|XBF_FLUSH); > > I don't think this is correct, we set these before calling into > xlog_bdstrat, so this means we'll always stip it off after that. > > Given that this area is more complicated than the pure macro removal > how about letting it as-is for now? I have some bigger refactoring > in this area in my queue, and I'll just incorporate the > XFS_BUF_ZEROFLAGS into it. Christoph, are you suggesting that this one hunk just be excluded from the series? Or the entire patch? -Alex From aelder@sgi.com Mon Jul 25 10:57:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PFvkcm009084 for ; Mon, 25 Jul 2011 10:57:47 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 46D3FAC007; Mon, 25 Jul 2011 08:57:46 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 10:57:41 -0500 Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME From: Alex Elder Reply-To: To: Christoph Hellwig CC: Chandra Seetharaman , In-Reply-To: <20110724113724.GC26332@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> <20110724113724.GC26332@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 10:57:40 -0500 Message-ID: <1311609460.2914.25.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-24 at 07:37 -0400, Christoph Hellwig wrote: > On Fri, Jul 22, 2011 at 02:49:41PM -0500, Alex Elder wrote: > > On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > > > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > > > > > Signed-off-by: Chandra Seetharaman > > > Reviewed-by: Christoph Hellwig > > > > > > Wow, I hadn't looked at the definition of > > xfs_buf_target_name() before. It's not safe > > (using a pointer to since-released stack space), > > though in practice it's going to be fine. > > > > Defining it as an inline function with a static > > buffer would at least avoid that, though it > > means it's not reentrant either. > > IMHO the right fix is to just kill it off entirely. All XFS messages > now have the filesystem name prefixed to them, and while we can have > up to three devices, all these error messages can only hit either > the main or the log device, and it's obvious from the context which > one we did hit. That's an even better idea. I was only reacting to the code in front of me, but yes, removing it entirely would be good. For now though, I intend to commit this (in its now updated form). It can be removed as a separate patch. -Alex From BATV+e16c8157ed280d595420+2892+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 25 11:25:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PGPJtI011519 for ; Mon, 25 Jul 2011 11:25:19 -0500 X-ASG-Debug-ID: 1311611117-497501ba0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BA2034E7354; Mon, 25 Jul 2011 09:25:17 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id PLGjcOBeGeKz74bF; Mon, 25 Jul 2011 09:25:17 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlNxx-0001RM-Pk; Mon, 25 Jul 2011 16:25:13 +0000 Date: Mon, 25 Jul 2011 12:25:13 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Message-ID: <20110725162513.GA2434@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> <20110724113543.GB26332@infradead.org> <1311609456.2914.24.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311609456.2914.24.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311611118 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69938 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 10:57:36AM -0500, Alex Elder wrote: > > Btw, nice follow-on cleanups would be to kill off the xfs_caddr_t and > > __psint_t/__psunsigned_t types entirely. > > Yes. What do you suggest to use for a pointer-sized > type? Just cast to (long) and rely on the usual arithmetic > conversions to do the right thing? The correct C99 type is (u)intptr_t. In the kernel we only have uintptr_t, with ACPI defining a local version of intptr_t. I'd suggest trying to stick to uintptr_t if we can, and if we really need a signed version add intptr_t to the common headers - it can unconditionally be typedef to long in Linux anyway. From BATV+e16c8157ed280d595420+2892+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 25 11:26:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PGQVf6011656 for ; Mon, 25 Jul 2011 11:26:31 -0500 X-ASG-Debug-ID: 1311611189-3910027f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B79ED181BF95; Mon, 25 Jul 2011 09:26:29 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id YAxqaSmLBJhyOsHA; Mon, 25 Jul 2011 09:26:29 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlNzB-0001Rx-62; Mon, 25 Jul 2011 16:26:29 +0000 Date: Mon, 25 Jul 2011 12:26:29 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Message-ID: <20110725162629.GB2434@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> <20110724113724.GC26332@infradead.org> <1311609460.2914.25.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311609460.2914.25.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311611190 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0189 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ3078, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69938 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ3078 Custom Rule MJ3078 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 10:57:40AM -0500, Alex Elder wrote: > That's an even better idea. I was only reacting to the > code in front of me, but yes, removing it entirely > would be good. > > For now though, I intend to commit this (in its now updated > form). It can be removed as a separate patch. Agreed. From BATV+e16c8157ed280d595420+2892+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 25 11:27:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PGRJcS011748 for ; Mon, 25 Jul 2011 11:27:19 -0500 X-ASG-Debug-ID: 1311611238-497d01c30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2BC494E74D4; Mon, 25 Jul 2011 09:27:18 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 43oC4L65eYOGC2zi; Mon, 25 Jul 2011 09:27:18 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlNzy-0001TI-41; Mon, 25 Jul 2011 16:27:18 +0000 Date: Mon, 25 Jul 2011 12:27:18 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Message-ID: <20110725162718.GC2434@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110724113959.GD26332@infradead.org> <1311609452.2914.23.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311609452.2914.23.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311611239 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69938 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 10:57:32AM -0500, Alex Elder wrote: > Christoph, are you suggesting that this one hunk just > be excluded from the series? Or the entire patch? There's not much more in this patch, so I would suggest dropping it entirely. From aelder@sgi.com Mon Jul 25 11:58:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PGwk1R014996 for ; Mon, 25 Jul 2011 11:58:46 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 117DB8F8049; Mon, 25 Jul 2011 09:58:43 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 11:58:42 -0500 Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR From: Alex Elder Reply-To: To: Christoph Hellwig CC: Chandra Seetharaman , In-Reply-To: <20110725162513.GA2434@infradead.org> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> <20110724113543.GB26332@infradead.org> <1311609456.2914.24.camel@doink> <20110725162513.GA2434@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 11:58:42 -0500 Message-ID: <1311613122.2914.35.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 12:25 -0400, Christoph Hellwig wrote: > On Mon, Jul 25, 2011 at 10:57:36AM -0500, Alex Elder wrote: > > > Btw, nice follow-on cleanups would be to kill off the xfs_caddr_t and > > > __psint_t/__psunsigned_t types entirely. > > > > Yes. What do you suggest to use for a pointer-sized > > type? Just cast to (long) and rely on the usual arithmetic > > conversions to do the right thing? > > The correct C99 type is (u)intptr_t. In the kernel we only have > uintptr_t, with ACPI defining a local version of intptr_t. I'd suggest > trying to stick to uintptr_t if we can, and if we really need a signed > version add intptr_t to the common headers - it can unconditionally be > typedef to long in Linux anyway. I *knew* there was a standard type but I couldn't remember what it was called. I even scanned through my C spec but gave up looking pretty quickly. I think I had "size" somehow stuck in my mind and that didn't help. -Alex From aelder@sgi.com Mon Jul 25 12:07:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PH7SMA015905 for ; Mon, 25 Jul 2011 12:07:28 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 14760AC004; Mon, 25 Jul 2011 10:07:25 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 12:07:24 -0500 Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS From: Alex Elder Reply-To: To: Christoph Hellwig CC: Chandra Seetharaman , In-Reply-To: <20110725162718.GC2434@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110724113959.GD26332@infradead.org> <1311609452.2914.23.camel@doink> <20110725162718.GC2434@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 12:07:22 -0500 Message-ID: <1311613642.2914.40.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 12:27 -0400, Christoph Hellwig wrote: > On Mon, Jul 25, 2011 at 10:57:32AM -0500, Alex Elder wrote: > > Christoph, are you suggesting that this one hunk just > > be excluded from the series? Or the entire patch? > > There's not much more in this patch, so I would suggest dropping it > entirely. > OK. I think the later patches may need a little massage but I will be happy to work through that. Chandra, here is how I plan to proceed with your series: - Change that (void *) to a (char *) in patch [8/12] - Drop patch [2/12] from the series, and adjust all of its successors in the series accordingly. - Run the result through some test cycles - Commit it and publish it on oss.sgi.com I will not commit the above until I get your OK on it, so please let me know if you have any objection, or affirm that you have none by responding to this message. Separately, out of all this came a few other suggestions, which would be great for you to handle (or reject) if you're open to it: - Get rid of the definition and use of xfs_buf_target_name(), by verifying that comparable information is already provided everywhere it's used. - Eliminate all references to __psint_t and __psunsigned_t in the XFS code, using uintptr_t in place where it is absolutely necessary. - Look into having xfs_qm_dqalloc() return ENOMEM when it is unable to allocate a buffer, and fix all the callers up the chain so they handle such a situation appropriately. Right now such errors get reset. Thanks. -Alex From BATV+e16c8157ed280d595420+2892+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 25 12:09:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PH9Zkj016175 for ; Mon, 25 Jul 2011 12:09:35 -0500 X-ASG-Debug-ID: 1311613773-760102010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5D69812478F1; Mon, 25 Jul 2011 10:09:33 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id RHEAKKSS2V467rL9; Mon, 25 Jul 2011 10:09:33 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlOeq-0000Yq-Mk; Mon, 25 Jul 2011 17:09:32 +0000 Date: Mon, 25 Jul 2011 13:09:32 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Message-ID: <20110725170932.GA1937@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110724113959.GD26332@infradead.org> <1311609452.2914.23.camel@doink> <20110725162718.GC2434@infradead.org> <1311613642.2914.40.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311613642.2914.40.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311613774 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69941 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 12:07:22PM -0500, Alex Elder wrote: > - Look into having xfs_qm_dqalloc() return ENOMEM when > it is unable to allocate a buffer, and fix all the > callers up the chain so they handle such a situation > appropriately. Right now such errors get reset. It's not. We allocate buffers inside dirty transactions, so we really cannot handle errors there. I've been trying to fix that last time in about 2002 or 2003, and it didn't go very far. From aelder@sgi.com Mon Jul 25 12:37:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PHb3AA019461 for ; Mon, 25 Jul 2011 12:37:03 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 12DDE8F804B; Mon, 25 Jul 2011 10:37:00 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Mon, 25 Jul 2011 12:36:59 -0500 Subject: Re: [PATCH 00/12 v3] Remove number of macros from xfs_buf.h From: Alex Elder Reply-To: To: Chandra Seetharaman CC: In-Reply-To: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> Content-Type: text/plain; charset="UTF-8" Date: Mon, 25 Jul 2011 12:36:58 -0500 Message-ID: <1311615418.2914.57.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 16:39 -0700, Chandra Seetharaman wrote: > Hello All, > > Here are few patchset to remove some of the macro definitions from > fs/xfs/linux-2.6/xfs_buf.h. > > Please review and comment. > > This set is version 3: > Incorporated changes suggested by Alex Elder in patches 3/12, 8/12, > 9/12 and 12/12 > > Version 2: > Incorporated changes suggested by hristoph Hellwig in patches 2/12, 3/12, > 7/12 and 10/12. I forgot to mention before that I got some feedback that removing these macros affects portability to other platforms (BSD specifically). I don't really seek to do that, and would like to keep it so that XFS *can* port to other platforms. Here we just face a trade-off between preserving support for other environments (especially those not under active development) and keeping the leading edge of development clean, free to evolve, and unencumbered by external requirements. I acknowledge that by accepting these I'm leaning toward progress of XFS despite its effect on portability non-Linux environments (or even older Linux kernels). -Alex From kkeller@sonic.net Mon Jul 25 13:28:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PISsEF024647 for ; Mon, 25 Jul 2011 13:28:54 -0500 X-ASG-Debug-ID: 1311618533-610f017e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from b.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9E236124844C for ; Mon, 25 Jul 2011 11:28:53 -0700 (PDT) Received: from b.mail.sonic.net (b.mail.sonic.net [64.142.19.5]) by cuda.sgi.com with ESMTP id A8DKemsEWC6sPzf7 for ; Mon, 25 Jul 2011 11:28:53 -0700 (PDT) Received: from localhost.localdomain (wombat.san-francisco.ca.us [75.101.60.64]) by b.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p6PISqXT014612 for ; Mon, 25 Jul 2011 11:28:52 -0700 Date: Mon, 25 Jul 2011 11:28:51 -0700 From: Keith Keller To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize (update) Subject: Re: xfs_growfs doesn't resize (update) Message-ID: <20110725182851.GA30626@sonic.net> References: <20110707182532.GA31319@sonic.net> <4E160A34.20902@sandeen.net> <20110707222350.GA776@sonic.net> <4E163396.2010707@sandeen.net> <20110720190819.GA14910@sonic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110720190819.GA14910@sonic.net> User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: b.mail.sonic.net[64.142.19.5] X-Barracuda-Start-Time: 1311618533 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69945 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi again all, I thought about this a bit more over the past few days, and did some more testing this morning. I am currently thinking that I really don't have as many paths to follow as I originally thought. It seems like, whether I modify sb 0 with xfs_db or not, xfs_repair still wants to see an 11TB filesystem--I did an mdrestore and mount on the metadump image, which saw a 21TB filesystem, then did a umount and xfs_repair, which modified the superblock. On mounting again, the filesystem was back to 11TB. So I think there must be a definite risk of data loss if I try to mount what the latest kernel thinks is a 21TB filesystem, then need to run a repair at a later date, and therefore I have to run an xfs_repair before trying to use the new free space. So, here is what I think is my plan for the actual filesystem: --take another backup --umount all XFS filesystems (the OS filesystems are ext3) --remove the kmod-xfs CentOS package --update to the latest CentOS kernel and reboot, making sure the target XFS fs does not have a mount attempted --run xfs_repair from xfsprogs-3.1.5 --cross fingers :) --mount and check what's in lost+found --if all seems well, attempt another xfs_growfs using xfsprogs-3.1.5 Does this seem like a reasonable plan of attack? If so, is there a way to estimate how long the actual xfs_repair will take from my xfs_repair sessions on the metadump image? Obviously the hardware isn't the same, but I'd just hope for a back of the envelope estimate, not necessarily something terribly accurate. Finally, are there other things I can try on the metadump image first to give me more information on what'll happen on the live filesystem? Thanks again! --keith -- kkeller@wombat.san-francisco.ca.us From BATV+e16c8157ed280d595420+2892+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 25 15:26:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PKQjaJ037427 for ; Mon, 25 Jul 2011 15:26:46 -0500 X-ASG-Debug-ID: 1311625602-16f100910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BBC45181F04B; Mon, 25 Jul 2011 13:26:42 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id trutQkgBxVAAj9xY; Mon, 25 Jul 2011 13:26:42 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlRja-00075l-Ap; Mon, 25 Jul 2011 20:26:38 +0000 Date: Mon, 25 Jul 2011 16:26:38 -0400 From: Christoph Hellwig To: Alex Elder Cc: Chandra Seetharaman , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 00/12 v3] Remove number of macros from xfs_buf.h Subject: Re: [PATCH 00/12 v3] Remove number of macros from xfs_buf.h Message-ID: <20110725202638.GA18704@infradead.org> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311615418.2914.57.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311615418.2914.57.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311625602 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69954 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 12:36:58PM -0500, Alex Elder wrote: > I forgot to mention before that I got some > feedback that removing these macros affects > portability to other platforms (BSD specifically). Personally I don't really like the way how the BSD port bolted the XFS buffer use onto the BSD buffer cache. While the BSD buffer cache is quite a bit closer to the original IRIX buffer cache model than the Linux buffer cache, I think trying to reuse it is just as bad an idea as partially using the Linux page cache. Russell might be able to chime in on the current state of the FreeBSD XFS port, but last time I checked it was in a pretty minimal state, thus not even exercising the nasty sides of the buffer cache. If it wants to be full blown it should just adadpt and use the current xfs_buf.c code, which really isn't that Linux specific - sure it uses the Linux memory allocators, shrinkers and the rbtree library, but it's a standalone piece of code with it's own algorithms that have proven to be much better than the existing generic OS buffer caches but catering to the specific XFS needs. From eflorac@intellique.com Mon Jul 25 16:53:45 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PLri3B047216 for ; Mon, 25 Jul 2011 16:53:45 -0500 X-ASG-Debug-ID: 1311630819-38db01d80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from smtp3-g21.free.fr (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 88C50181F1F9 for ; Mon, 25 Jul 2011 14:53:40 -0700 (PDT) Received: from smtp3-g21.free.fr (smtp3-g21.free.fr [212.27.42.3]) by cuda.sgi.com with ESMTP id dXtMRDjfRJpwFM9V for ; Mon, 25 Jul 2011 14:53:40 -0700 (PDT) Received: from galadriel.home (unknown [82.235.234.79]) by smtp3-g21.free.fr (Postfix) with ESMTP id 6F9FEA6185; Mon, 25 Jul 2011 23:53:35 +0200 (CEST) Date: Mon, 25 Jul 2011 23:53:27 +0200 From: Emmanuel Florac To: Lee Eric Cc: Stan Hoeppner , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 1 Gb Ethernet based HPC storage deployment plan Subject: Re: 1 Gb Ethernet based HPC storage deployment plan Message-ID: <20110725235327.675bae76@galadriel.home> In-Reply-To: References: <20110723113027.162de009@galadriel.home> <4E2BBC00.50902@hardwarefreak.com> Organization: Intellique X-Mailer: Claws Mail 3.7.8 (GTK+ 2.20.1; i686-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: smtp3-g21.free.fr[212.27.42.3] X-Barracuda-Start-Time: 1311630822 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69960 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Le Mon, 25 Jul 2011 19:52:52 +0800 vous =C3=A9criviez: > By the way, is there any good advantage to use XFS as the underlying > local filesystem for cluster/distributed/parallel filesystem? It depends upon the cluster FS. PVFS prefers XFS. Other may work differently. --=20 ------------------------------------------------------------------------ Emmanuel Florac | Direction technique | Intellique | | +33 1 78 94 84 02 ------------------------------------------------------------------------ From sekharan@us.ibm.com Mon Jul 25 17:18:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PMIJh7050335 for ; Mon, 25 Jul 2011 17:18:20 -0500 X-ASG-Debug-ID: 1311632298-2f2302b00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e34.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E2D96955B7 for ; Mon, 25 Jul 2011 15:18:18 -0700 (PDT) Received: from e34.co.us.ibm.com (e34.co.us.ibm.com [32.97.110.152]) by cuda.sgi.com with ESMTP id o3URmA1WQEHPBHPJ for ; Mon, 25 Jul 2011 15:18:18 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e34.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6PMIGV8020562 for ; Mon, 25 Jul 2011 16:18:16 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id p6PMIFrn116988 for ; Mon, 25 Jul 2011 16:18:15 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6PGHk2F007847 for ; Mon, 25 Jul 2011 10:17:48 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6PGHi3x007727; Mon, 25 Jul 2011 10:17:44 -0600 X-ASG-Orig-Subj: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR Subject: Re: [PATCH 08/12] xfs: Remove the macro XFS_BUF_SET_PTR From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: Christoph Hellwig , xfs@oss.sgi.com In-Reply-To: <1311609456.2914.24.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003333.21069.32295.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311363510.2771.103.camel@doink> <20110724113543.GB26332@infradead.org> <1311609456.2914.24.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Mon, 25 Jul 2011 15:18:10 -0700 Message-ID: <1311632290.3210.986.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e34.co.us.ibm.com[32.97.110.152] X-Barracuda-Start-Time: 1311632298 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 10:57 -0500, Alex Elder wrote: > On Sun, 2011-07-24 at 07:35 -0400, Christoph Hellwig wrote: > > On Fri, Jul 22, 2011 at 02:38:30PM -0500, Alex Elder wrote: > > > > - (__psint_t)count), split); > > > > + xfs_buf_associate_memory(bp, > > > > + (xfs_caddr_t)((__psint_t)&(iclog->ic_header)+ > > > > + (__psint_t)count), split); > > > > > > If you just cast the address appropriately you can make this > > > look a lot nicer: > > > > > > xfs_buf_associate_memory(bp, > > > (void *) &iclog->ic_header + count, split); > > > > If we have to cast anyway I'd suggest casting to char * at least, as > > that is standard behaviour. I'm okay with using the gcc void pointer > > arithmetics extension when it saves us ugliness, but in this case it > > doesn't really buy us anything. > > Yes, I agree. I guess I had the "void *" addition on the brain > when I did this. Chandra, I would like to make this small change > before I commit this. OK with you? > Yes. > > Btw, nice follow-on cleanups would be to kill off the xfs_caddr_t and > > __psint_t/__psunsigned_t types entirely. > > Yes. What do you suggest to use for a pointer-sized > type? Just cast to (long) and rely on the usual arithmetic > conversions to do the right thing? > > -Alex > > From sekharan@us.ibm.com Mon Jul 25 17:18:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PMIkiY050411 for ; Mon, 25 Jul 2011 17:18:46 -0500 X-ASG-Debug-ID: 1311632326-377100c90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e37.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 3390D1248B55 for ; Mon, 25 Jul 2011 15:18:46 -0700 (PDT) Received: from e37.co.us.ibm.com (e37.co.us.ibm.com [32.97.110.158]) by cuda.sgi.com with ESMTP id KKDFYxMaSWAjYssY for ; Mon, 25 Jul 2011 15:18:46 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay04.boulder.ibm.com (d03relay04.boulder.ibm.com [9.17.195.106]) by e37.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6PMFeUr026953 for ; Mon, 25 Jul 2011 16:15:40 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay04.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6PMIieB122950 for ; Mon, 25 Jul 2011 16:18:44 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6PMIhFO031023 for ; Mon, 25 Jul 2011 16:18:44 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6PMIhSa031012; Mon, 25 Jul 2011 16:18:43 -0600 X-ASG-Orig-Subj: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME Subject: Re: [PATCH 12/12] xfs: Remove the macro XFS_BUFTARG_NAME From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: Christoph Hellwig , xfs@oss.sgi.com In-Reply-To: <1311609460.2914.25.camel@doink> References: <20110722003226.21069.58401.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722003408.21069.44409.sendpatchset@chandra-lucid.beaverton.ibm.com> <1311364181.2771.114.camel@doink> <20110724113724.GC26332@infradead.org> <1311609460.2914.25.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Mon, 25 Jul 2011 15:18:42 -0700 Message-ID: <1311632322.3210.987.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e37.co.us.ibm.com[32.97.110.158] X-Barracuda-Start-Time: 1311632327 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 10:57 -0500, Alex Elder wrote: > On Sun, 2011-07-24 at 07:37 -0400, Christoph Hellwig wrote: > > On Fri, Jul 22, 2011 at 02:49:41PM -0500, Alex Elder wrote: > > > On Thu, 2011-07-21 at 17:34 -0700, Chandra Seetharaman wrote: > > > > Remove the definition and usages of the macro XFS_BUFTARG_NAME. > > > > > > > > Signed-off-by: Chandra Seetharaman > > > > Reviewed-by: Christoph Hellwig > > > > > > > > > Wow, I hadn't looked at the definition of > > > xfs_buf_target_name() before. It's not safe > > > (using a pointer to since-released stack space), > > > though in practice it's going to be fine. > > > > > > Defining it as an inline function with a static > > > buffer would at least avoid that, though it > > > means it's not reentrant either. > > > > IMHO the right fix is to just kill it off entirely. All XFS messages > > now have the filesystem name prefixed to them, and while we can have > > up to three devices, all these error messages can only hit either > > the main or the log device, and it's obvious from the context which > > one we did hit. > > That's an even better idea. I was only reacting to the > code in front of me, but yes, removing it entirely > would be good. > > For now though, I intend to commit this (in its now updated > form). It can be removed as a separate patch. I will do it. chandra > > -Alex > From sekharan@us.ibm.com Mon Jul 25 17:21:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6PMLbLm050532 for ; Mon, 25 Jul 2011 17:21:37 -0500 X-ASG-Debug-ID: 1311632496-59e900c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from e36.co.us.ibm.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0C2069565E for ; Mon, 25 Jul 2011 15:21:36 -0700 (PDT) Received: from e36.co.us.ibm.com (e36.co.us.ibm.com [32.97.110.154]) by cuda.sgi.com with ESMTP id BqhwPdMlcGeN4dOO for ; Mon, 25 Jul 2011 15:21:36 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation Received: from d03relay03.boulder.ibm.com (d03relay03.boulder.ibm.com [9.17.195.228]) by e36.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id p6PMFMG4002564 for ; Mon, 25 Jul 2011 16:15:22 -0600 Received: from d03av02.boulder.ibm.com (d03av02.boulder.ibm.com [9.17.195.168]) by d03relay03.boulder.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id p6PMLa4v157276 for ; Mon, 25 Jul 2011 16:21:36 -0600 Received: from d03av02.boulder.ibm.com (loopback [127.0.0.1]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id p6PGL8GV021943 for ; Mon, 25 Jul 2011 10:21:08 -0600 Received: from [9.47.24.164] (chandra-lucid.beaverton.ibm.com [9.47.24.164]) by d03av02.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id p6PGL6sK021821; Mon, 25 Jul 2011 10:21:07 -0600 X-ASG-Orig-Subj: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS Subject: Re: [PATCH 02/12 v3] xfs: Remove the macro XFS_BUF_ZEROFLAGS From: Chandra Seetharaman Reply-To: sekharan@us.ibm.com To: aelder@sgi.com Cc: Christoph Hellwig , xfs@oss.sgi.com In-Reply-To: <1311613642.2914.40.camel@doink> References: <20110722233933.14612.65879.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110722233945.14612.1955.sendpatchset@chandra-lucid.beaverton.ibm.com> <20110724113959.GD26332@infradead.org> <1311609452.2914.23.camel@doink> <20110725162718.GC2434@infradead.org> <1311613642.2914.40.camel@doink> Content-Type: text/plain; charset="UTF-8" Organization: IBM Date: Mon, 25 Jul 2011 15:21:32 -0700 Message-ID: <1311632492.3210.988.camel@chandra-lucid.beaverton.ibm.com> Mime-Version: 1.0 X-Mailer: Evolution 2.28.3 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: e36.co.us.ibm.com[32.97.110.154] X-Barracuda-Start-Time: 1311632497 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, 2011-07-25 at 12:07 -0500, Alex Elder wrote: > On Mon, 2011-07-25 at 12:27 -0400, Christoph Hellwig wrote: > > On Mon, Jul 25, 2011 at 10:57:32AM -0500, Alex Elder wrote: > > > Christoph, are you suggesting that this one hunk just > > > be excluded from the series? Or the entire patch? > > > > There's not much more in this patch, so I would suggest dropping it > > entirely. > > > > OK. I think the later patches may need a little massage > but I will be happy to work through that. > > Chandra, here is how I plan to proceed with your series: > - Change that (void *) to a (char *) in patch [8/12] > - Drop patch [2/12] from the series, and adjust all > of its successors in the series accordingly. > - Run the result through some test cycles > - Commit it and publish it on oss.sgi.com > > I will not commit the above until I get your OK > on it, so please let me know if you have any > objection, or affirm that you have none by > responding to this message. I am fine with your direction. chandra > > Separately, out of all this came a few other > suggestions, which would be great for you to > handle (or reject) if you're open to it: > - Get rid of the definition and use of xfs_buf_target_name(), > by verifying that comparable information is already provided > everywhere it's used. > - Eliminate all references to __psint_t and __psunsigned_t > in the XFS code, using uintptr_t in place where it > is absolutely necessary. > - Look into having xfs_qm_dqalloc() return ENOMEM when > it is unable to allocate a buffer, and fix all the > callers up the chain so they handle such a situation > appropriately. Right now such errors get reset. > > Thanks. > > -Alex > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From aelder@oss.sgi.com Mon Jul 25 20:52:27 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6Q1qRgE071881 for ; Mon, 25 Jul 2011 20:52:27 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6Q1qOo8071803; Mon, 25 Jul 2011 20:52:24 -0500 Date: Mon, 25 Jul 2011 20:52:24 -0500 Message-Id: <201107260152.p6Q1qOo8071803@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, master, updated. v2.6.38-19023-gc35a549 X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 55fb25d5b39320242b41af894921f5cef0c7e293 X-Git-Newrev: c35a549c8b9e85bdff7e531a410d10e36b4b4f32 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, master has been updated c35a549 xfs: Remove the macro XFS_BUFTARG_NAME 49074c0 xfs: Remove the macro XFS_BUF_TARGET e38c9b8 xfs: Remove the macro XFS_BUF_SET_TARGET 811e64c Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned 02fe03d xfs: Remove the macro XFS_BUF_SET_PTR 6292604 xfs: Remove the macro XFS_BUF_PTR 0095a21 xfs: Remove macro XFS_BUF_SET_START 72790aa xfs: Remove macro XFS_BUF_HOLD b75e40a xfs: Remove macro XFS_BUF_BUSY and family 5a52c2a58 xfs: Remove the macro XFS_BUF_ERROR and family ed43233 xfs: Remove the macro XFS_BUF_BFLAGS from 55fb25d5b39320242b41af894921f5cef0c7e293 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c35a549c8b9e85bdff7e531a410d10e36b4b4f32 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:46 2011 +0000 xfs: Remove the macro XFS_BUFTARG_NAME Remove the definition and usages of the macro XFS_BUFTARG_NAME. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 49074c069cd3f0f683325d0c7f8b2765dbe2e294 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:40 2011 +0000 xfs: Remove the macro XFS_BUF_TARGET Remove the definition and usages of the macro XFS_BUF_TARGET Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit e38c9b87e5b428b3e2a2e48ab0ee2b6cdc8e6208 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:33 2011 +0000 xfs: Remove the macro XFS_BUF_SET_TARGET Remove the macro XFS_BUF_SET_TARGET. hch: As all the buffer allocator already set ->b_target it should be safe to simply remove these calls. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 811e64c7169bb59229971c4aa3b1ed5093f44c84 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:27 2011 +0000 Replace the macro XFS_BUF_ISPINNED with helper xfs_buf_ispinned Replace the macro XFS_BUF_ISPINNED with an inline helper function xfs_buf_ispinned, and change all its usages. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 02fe03d909f3a5876d7b4775fdbc83c07c7c3842 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:22 2011 +0000 xfs: Remove the macro XFS_BUF_SET_PTR Remove the definition and usages of the macro XFS_BUF_SET_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 6292604447ade7d150f5eba3b1518e1a224fda15 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:15 2011 +0000 xfs: Remove the macro XFS_BUF_PTR Remove the definition and usages of the macro XFS_BUF_PTR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 0095a21eb6ae8ac9f9860aa26029fe6ebbd3beeb Author: Chandra Seetharaman Date: Fri Jul 22 23:40:09 2011 +0000 xfs: Remove macro XFS_BUF_SET_START Remove the definition and usage of the macro XFS_BUF_SET_START. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 72790aa1192f46dedfc827c170365fd554981d15 Author: Chandra Seetharaman Date: Fri Jul 22 23:40:04 2011 +0000 xfs: Remove macro XFS_BUF_HOLD Remove the definition and usage of the macro XFS_BUF_HOLD Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit b75e40a4193ca027af7327ef30c31d45aa0a0e40 Author: Chandra Seetharaman Date: Fri Jul 22 23:39:57 2011 +0000 xfs: Remove macro XFS_BUF_BUSY and family Remove the definitions and uses of the macros XFS_BUF_BUSY, XFS_BUF_UNBUSY, and XFS_BUF_ISBUSY. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit 5a52c2a581cddcb676a54a95d99cd39f5577c33b Author: Chandra Seetharaman Date: Fri Jul 22 23:39:51 2011 +0000 xfs: Remove the macro XFS_BUF_ERROR and family Remove the definitions and usage of the macros XFS_BUF_ERROR, XFS_BUF_GETERROR and XFS_BUF_ISERROR. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder commit ed43233be910bbc8b9da3d61aa1b931843d1b44e Author: Chandra Seetharaman Date: Fri Jul 22 23:39:39 2011 +0000 xfs: Remove the macro XFS_BUF_BFLAGS Remove the definition of the macro XFS_BUF_BFLAGS and its usage. Signed-off-by: Chandra Seetharaman Reviewed-by: Christoph Hellwig Signed-off-by: Alex Elder ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_buf.c | 15 +++++++-------- fs/xfs/linux-2.6/xfs_buf.h | 32 +++++++++++--------------------- fs/xfs/linux-2.6/xfs_sync.c | 2 +- fs/xfs/quota/xfs_dquot.c | 16 ++++++---------- fs/xfs/quota/xfs_qm.c | 2 +- fs/xfs/xfs_ag.h | 6 +++--- fs/xfs/xfs_alloc.c | 7 +++---- fs/xfs/xfs_attr.c | 3 +-- fs/xfs/xfs_bmap.c | 3 +-- fs/xfs/xfs_btree.c | 17 ++++++----------- fs/xfs/xfs_btree.h | 2 +- fs/xfs/xfs_buf_item.c | 23 ++++++++++------------- fs/xfs/xfs_da_btree.c | 12 ++++++------ fs/xfs/xfs_dinode.h | 2 +- fs/xfs/xfs_ialloc.c | 5 ++--- fs/xfs/xfs_inode.c | 4 ++-- fs/xfs/xfs_log.c | 14 +++++--------- fs/xfs/xfs_log_recover.c | 32 +++++++++++++------------------- fs/xfs/xfs_mount.c | 4 ++-- fs/xfs/xfs_rtalloc.c | 32 ++++++++++++++++---------------- fs/xfs/xfs_rtalloc.h | 2 +- fs/xfs/xfs_rw.c | 8 ++++---- fs/xfs/xfs_sb.h | 2 +- fs/xfs/xfs_trans_buf.c | 28 +++++++++------------------- fs/xfs/xfs_vnodeops.c | 10 +++++----- 25 files changed, 118 insertions(+), 165 deletions(-) hooks/post-receive -- XFS development tree From david@fromorbit.com Mon Jul 25 22:33:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6Q3X8gB079492 for ; Mon, 25 Jul 2011 22:33:09 -0500 X-ASG-Debug-ID: 1311651187-2b8c00bc0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail07.adl2.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A84C41359BEE for ; Mon, 25 Jul 2011 20:33:08 -0700 (PDT) Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id PfOD8kJuBrADMYP5 for ; Mon, 25 Jul 2011 20:33:08 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuQDAMUxLk55LCkBgWdsb2JhbAA0AQEEAUAgJQUMCQMYOhQBKgMqF6daFQEBFiYliHzBYg6FUl8EmyOIQQ Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail07.adl2.internode.on.net with ESMTP; 26 Jul 2011 13:03:03 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QlYOE-0006gY-DA; Tue, 26 Jul 2011 13:33:02 +1000 Date: Tue, 26 Jul 2011 13:33:02 +1000 From: Dave Chinner To: Amit Sahrawat Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Message-ID: <20110726033302.GB8048@dastard> References: <20110722083457.GC13963@dastard> <20110724013457.GB31951@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1311651189 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.69981 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Mon, Jul 25, 2011 at 10:56:01AM +0530, Amit Sahrawat wrote: > On Sun, Jul 24, 2011 at 7:04 AM, Dave Chinner wrote: > > On Fri, Jul 22, 2011 at 04:03:53PM +0530, Amit Sahrawat wrote: > >> On Fri, Jul 22, 2011 at 2:04 PM, Dave Chinner wrote: > >> > [] (dump_backtrace+0x0/0x110) > >> > [] (dump_stack+0x0/0x1c) > >> > [] (xfs_error_report+0x0/0x5c) > >> > [] (xfs_free_ag_extent+0x0/0x600) > >> > [] (xfs_free_extent+0x0/0xa4) > >> > [] (xfs_bmap_finish+0x0/0x194) > >> > [] (xfs_itruncate_finish+0x0/0x30c) > >> > [] (xfs_inactive+0x0/0x40c) > >> > [] (xfs_fs_clear_inode+0x0/0x60) > >> > [] (clear_inode+0x0/0xe8) > >> > [] (generic_delete_inode+0x0/0x178) > >> > [] (generic_drop_inode+0x0/0x68) > >> > [] (iput+0x0/0x7c) > >> > [] (do_unlinkat+0x0/0x154) > >> > [] (sys_unlink+0x0/0x1c) > >> > > >> > So, you powered off an active machine while writing to it, and after > >> > it started back up it hit a free space between corruption. And then > >> > you couldn't mount it because log replay was trying to replay the > >> > last committed transaction to the log. That transaction shows inode > >> > 132 being unlinked, added to the AGI unliked list, and then being > >> > inactivated. There is an EFI committed for 1 extent. There is no EFD > >> > committed, so the shutdown occurred during that operation. Log > >> > replay then hits the corruption repeatedly by trying to replay the > >> > EFI to complete the extent free operation. > >> > > >> Yes, it happened exactly as you mentioned above. But the problem > >> happened much earlier. > > > > Obviously. > > > >> While writing the 'reset' happened. At the next reboot - the > >> filesystem mounted even though there > >> was corruption - the file and journal did not match. > > > > You found this how? > Just before removing the file on next 'reboot' - I checked the values > for file extents and the 'by-block' tree free length. > File extents - no. of blocks was correct but the neighbouring blocks > do not match with the occupied blocks in the allocation group. > If a file of 'N' blocks is present in an allocation group, then the > allocation group should now have (X-N) free blocks, where 'X' is the > size of allocation group in blocks. > But in this case - free size of allocation group is (X - M), where M > is greater than 'N'. Sure - there might be other metadata blocks that had to be allocated so there may be more used space than just what is allocated to the inode itself. e.g. bmap btree blocks, free space btree blocks due to a btree node split, etc. You can't just look at the the number of data blocks in an inode and the number of free blocks in an AG and expect them to match exactly... > which means when there is a free request for that file and then > corresponsing blocks are checked in the allocation group - it will > show the blocks as already free and point to corruption. > Is the above observation correct? > > > >> And it did not > >> show any error either. > > > > Well, no. If the journal format is intact, then it's contents are > > trusted. > > > >> The moment the issue happened and then if checked through xfs_logprint > >> - the blocks free in the allocation group does not match up properly. > >> I checked by taking the print from xfs_free_ag_extent - it showed the > >> wrong blocks contigous to that file. > > > > Yes, which is why I suspect that the journal contained something it > > shouldn't have. > > > >> Original file which was to be deleted is of '255' blocks and started > >> from physical block number - 12. > > > > Yes, I saw that in the EFI record in the logprint output I quoted. > > > >> While the free space tree has free > >> blocks larger than what it should be. it returns the length starting > >> from block number and the length which is last committed to the log. > >> > >> As I mentioned in the last mail - the details about the observation. > >> Please check. > > > > Going back to the transaction you quoted first: it doesn't match the > > entries in the log print you attached in your second email. I can't > > comment on it at all. > In the last mail - I attached the log where-in 'reset' happened but > there was no corruption. Just to check that what all is recorded in > journal, and this time journal matched with the data on the disk. > > > >> > So, the log and the repair output are useless for determining what > >> > caused the problem - you need the log from the mount *before* the > >> > first shutdown occurred, and to have run repair *before* you > >> > tried to unlink anything. > >> > >> It is only after 'first shutdown' I came to know about the corruption. > >> Since, there was no error shown at the mount time, it did not seemed > >> reasonable enough to run "repair" on the disk. > > > > It's standard practice for power failure integrity testing. > Yes, Even I agree to this. But why was there a mount at first hand? I > guess if it returned some error - xfs_repair could be run. Sorry, I'm not sure what you are asking. If you're doing power failure testing, then after the power failure you should always run a mount/unmount/repair cycle before doing anything else to check the filesystem and the journal were not corrupted by the power failure. You can't test the integrity of the journal any other way at this point in time.... > > The transaction was never committed completely in the journal. The > > last complete transaction in the journal matches up with the inode > > size in your ls -l output about. > Yes, this is what I wanted to show using the latest log prints. But > this is not case when there is an issue. Then please tell me that what you attached is for a working case so I won't waste my time analysing it. I don't care about the case where everything works - I care about the case where it doesn't work. In that case, I want to be able to validate your analysis of the case where the filesystem gets broken, and I need the log contents from prior to the first mount after the power failure has occurred to determine that. And to tell the truth, it's better if you don't tell me what you think is wrong in the first place so my analysis is independent of yours. Hence if they both point to the same problem, then we've got a fairly good indication of where the bug lies. Cheers, Dave. -- Dave Chinner david@fromorbit.com From ajeet.yadav.77@gmail.com Tue Jul 26 04:47:50 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6Q9lol8117986 for ; Tue, 26 Jul 2011 04:47:50 -0500 X-ASG-Debug-ID: 1311673672-47dc000d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vx0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EAEBE13593F8 for ; Tue, 26 Jul 2011 02:47:52 -0700 (PDT) Received: from mail-vx0-f181.google.com (mail-vx0-f181.google.com [209.85.220.181]) by cuda.sgi.com with ESMTP id Hxe0Y29LrVT4uqtB for ; Tue, 26 Jul 2011 02:47:52 -0700 (PDT) Received: by vxh17 with SMTP id 17so207638vxh.26 for ; Tue, 26 Jul 2011 02:47:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=A98+PdKhkQx6c5sBTdldvcdEmGJj/88hlJqc6w/igHk=; b=v3Chvpg/uQyNfuFn8cL5lcT73w1YH8pHmZ/PW/0JNFcetsHvBmFjA6av3gn77mrzhM UPluR0BxmYkrR6nITzW6SY+R2O4HkMxAi49MxokzdQHq16t3vA+uzAgLbif7u4tjiY3B /YU9OVf+qSCdyhcDAtfMFowze0s5wc09KPTko= MIME-Version: 1.0 Received: by 10.52.115.165 with SMTP id jp5mr5577398vdb.158.1311673668147; Tue, 26 Jul 2011 02:47:48 -0700 (PDT) Received: by 10.220.209.195 with HTTP; Tue, 26 Jul 2011 02:47:48 -0700 (PDT) In-Reply-To: <20110726033302.GB8048@dastard> References: <20110722083457.GC13963@dastard> <20110724013457.GB31951@dastard> <20110726033302.GB8048@dastard> Date: Tue, 26 Jul 2011 15:17:48 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Ajeet Yadav To: Dave Chinner Cc: Amit Sahrawat , xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-vx0-f181.google.com[209.85.220.181] X-Barracuda-Start-Time: 1311673672 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70007 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello Dave, I have seen this problem comes only with USB HDD (we have tired different USB HDD, but it seems common with HDD), while USB FLASH works fine. On Tue, Jul 26, 2011 at 9:03 AM, Dave Chinner wrote: > On Mon, Jul 25, 2011 at 10:56:01AM +0530, Amit Sahrawat wrote: >> On Sun, Jul 24, 2011 at 7:04 AM, Dave Chinner wrot= e: >> > On Fri, Jul 22, 2011 at 04:03:53PM +0530, Amit Sahrawat wrote: >> >> On Fri, Jul 22, 2011 at 2:04 PM, Dave Chinner w= rote: >> >> > [] (dump_backtrace+0x0/0x110) >> >> > [] (dump_stack+0x0/0x1c) >> >> > [] (xfs_error_report+0x0/0x5c) >> >> > [] (xfs_free_ag_extent+0x0/0x600) >> >> > [] (xfs_free_extent+0x0/0xa4) >> >> > [] (xfs_bmap_finish+0x0/0x194) >> >> > [] (xfs_itruncate_finish+0x0/0x30c) >> >> > [] (xfs_inactive+0x0/0x40c) >> >> > [] (xfs_fs_clear_inode+0x0/0x60) >> >> > [] (clear_inode+0x0/0xe8) >> >> > [] (generic_delete_inode+0x0/0x178) >> >> > [] (generic_drop_inode+0x0/0x68) >> >> > [] (iput+0x0/0x7c) >> >> > [] (do_unlinkat+0x0/0x154) >> >> > [] (sys_unlink+0x0/0x1c) >> >> > >> >> > So, you powered off an active machine while writing to it, and afte= r >> >> > it started back up it hit a free space between corruption. And then >> >> > you couldn't mount it because log replay was trying to replay the >> >> > last committed transaction to the log. That transaction shows inode >> >> > 132 being unlinked, added to the AGI unliked list, and then being >> >> > inactivated. There is an EFI committed for 1 extent. There is no EF= D >> >> > committed, so the shutdown occurred during that operation. Log >> >> > replay then hits the corruption repeatedly by trying to replay the >> >> > EFI to complete the extent free operation. >> >> > >> >> Yes, it happened exactly as you mentioned above. But the problem >> >> happened much earlier. >> > >> > Obviously. >> > >> >> While writing the 'reset' happened. At the next reboot - the >> >> filesystem mounted even though there >> >> was corruption - the file and journal did not match. >> > >> > You found this how? >> Just before removing the file on next 'reboot' - I checked the values >> for file extents and the 'by-block' tree free length. >> File extents - no. of blocks was correct but the neighbouring blocks >> do not match with the occupied blocks in the allocation group. >> If a file of 'N' blocks is present in an allocation group, then the >> allocation group should now have (X-N) free blocks, where 'X' is the >> size of allocation group in blocks. >> But in this case - free size of allocation group is (X - M), where M >> is greater than 'N'. > > Sure - there might be other metadata blocks that had to be allocated > so there may be more used space than just what is allocated to the > inode itself. e.g. bmap btree blocks, free space btree blocks due to > a btree node split, etc. You can't just look at the the number of > data blocks in an inode and the number of free blocks in an AG and > expect them to match exactly... > >> which means when there is a free request for that file and then >> corresponsing blocks are checked in the allocation group - it will >> show the blocks as already free and point to corruption. >> Is the above observation =C2=A0correct? >> > >> >> And it did not >> >> show any error either. >> > >> > Well, no. If the journal format is intact, then it's contents are >> > trusted. >> > >> >> The moment the issue happened and then if checked through xfs_logprin= t >> >> - the blocks free in the allocation group does not match up properly. >> >> I checked by taking the print from xfs_free_ag_extent - it showed the >> >> wrong blocks contigous to that file. >> > >> > Yes, which is why I suspect that the journal contained something it >> > shouldn't have. >> > >> >> Original file which was to be deleted is of '255' blocks and started >> >> from physical block number - 12. >> > >> > Yes, I saw that in the EFI record in the logprint output I quoted. >> > >> >> While the free space tree has free >> >> blocks larger than what it should be. it returns the length starting >> >> from block number and the length which is last committed to the log. >> >> >> >> As I mentioned in the last mail - the details about the observation. >> >> Please check. >> > >> > Going back to the transaction you quoted first: it doesn't match the >> > entries in the log print you attached in your second email. I can't >> > comment on it at all. >> In the last mail - I attached the log where-in 'reset' happened but >> there was no corruption. Just to check that what all is recorded in >> journal, and this time journal matched with the data on the disk. >> > >> >> > So, the log and the repair output are useless for determining what >> >> > caused the problem - you need the log from the mount *before* the >> >> > first shutdown occurred, and to have run repair *before* you >> >> > tried to unlink anything. >> >> >> >> It is only after 'first shutdown' I came to know about the corruption= . >> >> Since, there was no error shown at the mount time, it did not seemed >> >> reasonable enough to run "repair" on the disk. >> > >> > It's standard practice for power failure integrity testing. >> Yes, Even I agree to this. But why was there a mount at first hand? I >> guess if it returned some error - xfs_repair could be run. > > Sorry, I'm not sure what you are asking. > > If you're doing power failure testing, then after the power failure > you should always run a mount/unmount/repair cycle before doing > anything else to check the filesystem and the journal were not > corrupted by the power failure. You can't test the integrity of the > journal any other way at this point in time.... > >> > The transaction was never committed completely in the journal. The >> > last complete transaction in the journal matches up with the inode >> > size in your ls -l output about. >> Yes, this is what I wanted to show using the latest log prints. But >> this is not case when there is an issue. > > Then please tell me that what you attached is for a working case so > I won't waste my time analysing it. I don't care about the case > where everything works - I care about the case where it doesn't > work. > > In that case, I want to be able to validate your analysis of the > case where the filesystem gets broken, and I need the log contents > from prior to the first mount after the power failure has occurred > to determine that. And to tell the truth, it's better if you don't > tell me what you think is wrong in the first place so my analysis is > independent of yours. Hence if they both point to the same problem, > then we've got a fairly good indication of where the bug lies. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 05:28:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QAS7qn122994 for ; Tue, 26 Jul 2011 05:28:08 -0500 X-ASG-Debug-ID: 1311676085-0da501cb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E4A721E6B33A for ; Tue, 26 Jul 2011 03:28:05 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id zc6FED3m4CO8bA3z for ; Tue, 26 Jul 2011 03:28:05 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qlern-0005Lg-Rd; Tue, 26 Jul 2011 10:27:59 +0000 Date: Tue, 26 Jul 2011 06:27:59 -0400 From: Christoph Hellwig To: Ajeet Yadav Cc: Dave Chinner , Amit Sahrawat , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Message-ID: <20110726102759.GA20478@infradead.org> References: <20110722083457.GC13963@dastard> <20110724013457.GB31951@dastard> <20110726033302.GB8048@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311676085 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0166 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70010 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 26, 2011 at 03:17:48PM +0530, Ajeet Yadav wrote: > Hello Dave, > I have seen this problem comes only with USB HDD (we have tired > different USB HDD, but it seems common with HDD), while USB FLASH > works fine. Can you make sure the USB HDD actually does flush caches reliably and doesn't lose data it claims it guaranteed to disk? In addition to the generally bad implementation quality of USB periphals there is a large chance of beeing lost in translation when converting the SCSI WCE mode and FUA bit concepts to the ATA equivalents. From david@fromorbit.com Tue Jul 26 06:21:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QBL1sc125545 for ; Tue, 26 Jul 2011 06:21:02 -0500 X-ASG-Debug-ID: 1311679259-7b3e00bd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail05.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6E5D81D8E871 for ; Tue, 26 Jul 2011 04:20:59 -0700 (PDT) Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 9j5tILqFFRNRKCy0 for ; Tue, 26 Jul 2011 04:20:59 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvcDAKagLk55LCkBgWdsb2JhbAA2AQEEAUAgJQUMCQMOCjoUASoDKhenWhUBARYmJYh8wXUOhVNfBKNk Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail05.adl6.internode.on.net with ESMTP; 26 Jul 2011 20:50:57 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1Qlfh1-0007Qu-O3; Tue, 26 Jul 2011 21:20:55 +1000 Date: Tue, 26 Jul 2011 21:20:55 +1000 From: Dave Chinner To: Mel Gorman Cc: Linux-MM , LKML , XFS , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel , Minchan Kim X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110726112055.GC8048@dastard> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1311679260 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70013 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: > Warning: Long post with lots of figures. If you normally drink coffee > and you don't have a cup, get one or you may end up with a case of > keyboard face. [snip] > Overall, having kswapd avoiding writes does improve performance > which is not a surprise. Dave asked "do we even need IO at all from > reclaim?". On NUMA machines, the answer is "yes" unless the VM can > wake the flusher thread to clean a specific node. Great answer, Mel. ;) > When kswapd never > writes, processes can stall for significant periods of time waiting on > flushers to clean the correct pages. If all writing is to be deferred > to flushers, it must ensure that many writes on one node would not > starve requests for cleaning pages on another node. Ok, so that's a direction we need to work towards, then. > I'm currently of the opinion that we should consider merging patches > 1-7 and discuss what is required before merging. It can be tackled > later how the flushers can prioritise writing of pages belonging to > a particular zone before disabling all writes from reclaim. Sounds reasonable to me. Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 10:06:48 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QF6l9p131496 for ; Tue, 26 Jul 2011 10:06:47 -0500 X-ASG-Debug-ID: 1311692811-0e6001600000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D5E481684A7E for ; Tue, 26 Jul 2011 08:06:51 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id HihJ7pY0H9hqU2zl for ; Tue, 26 Jul 2011 08:06:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QljDY-0004gm-Ie for xfs@oss.sgi.com; Tue, 26 Jul 2011 15:06:44 +0000 Date: Tue, 26 Jul 2011 11:06:44 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/3] xfs: flag all buffers as metadata Subject: [PATCH 1/3] xfs: flag all buffers as metadata Message-ID: <20110726150644.GA18000@infradead.org> References: <20110726150633.GA17400@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110726150633.GA17400@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311692811 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70029 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Now that REQ_META bios aren't treated specially in the CFQ I/O schedule anymore, we can tag all buffers as metadata to make blktrace traces more meaningful. Note that we use buffers also to zero out partial blocks in the preallocation / hole punching code, and while they operate on data blocks the zeros written certainly aren't data. I think this case is borderline metadata enough to not bother special casing it. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/xfs/linux-2.6/xfs_buf.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_buf.c 2011-07-25 23:50:03.288230279 +0200 +++ linux-2.6/fs/xfs/linux-2.6/xfs_buf.c 2011-07-25 23:50:22.208230167 +0200 @@ -1224,6 +1224,9 @@ _xfs_buf_ioapply( rw = READ; } + /* we only use the buffer cache for meta-data */ + rw |= REQ_META; + next_chunk: atomic_inc(&bp->b_io_remaining); nr_pages = BIO_MAX_SECTORS >> (PAGE_SHIFT - BBSHIFT); From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 10:07:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QF7CX4131519 for ; Tue, 26 Jul 2011 10:07:13 -0500 X-ASG-Debug-ID: 1311692832-5ee501030000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 68F8D984A2 for ; Tue, 26 Jul 2011 08:07:12 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id MOCMv2DFSCTKkoh1 for ; Tue, 26 Jul 2011 08:07:12 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QljDz-0004ic-Ub for xfs@oss.sgi.com; Tue, 26 Jul 2011 15:07:11 +0000 Date: Tue, 26 Jul 2011 11:07:11 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/3] xfs: prevent against ioend livelocks in xfs_file_fsync Subject: [PATCH 2/3] xfs: prevent against ioend livelocks in xfs_file_fsync Message-ID: <20110726150711.GB18000@infradead.org> References: <20110726150633.GA17400@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110726150633.GA17400@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311692832 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70028 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean We need to take some locks to prevent new ioends from coming in when we wait for all existing ones to go away. Up to Linux 3.0 that was done using the i_mutex held by the VFS fsync code, but now that we are called without it we need to take care of it ourselves. Use the I/O lock instead of i_mutex just like we do in other places. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/xfs/linux-2.6/xfs_file.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_file.c 2011-07-25 23:50:35.081563423 +0200 +++ linux-2.6/fs/xfs/linux-2.6/xfs_file.c 2011-07-25 23:51:18.098229833 +0200 @@ -149,7 +149,9 @@ xfs_file_fsync( xfs_iflags_clear(ip, XFS_ITRUNCATED); + xfs_ilock(ip, XFS_IOLOCK_SHARED); xfs_ioend_wait(ip); + xfs_iunlock(ip, XFS_IOLOCK_SHARED); if (mp->m_flags & XFS_MOUNT_BARRIER) { /* From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 10:07:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QF7Upd131542 for ; Tue, 26 Jul 2011 10:07:31 -0500 X-ASG-Debug-ID: 1311692855-0e71014c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 766C51684A96 for ; Tue, 26 Jul 2011 08:07:35 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id BEZSbV89g6ng47XI for ; Tue, 26 Jul 2011 08:07:35 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QljEH-0004ip-Hu for xfs@oss.sgi.com; Tue, 26 Jul 2011 15:07:29 +0000 Date: Tue, 26 Jul 2011 11:07:29 -0400 From: Christoph Hellwig To: xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/3] xfs: optimize the negative xattr caching Subject: [PATCH 3/3] xfs: optimize the negative xattr caching Message-ID: <20110726150729.GC18000@infradead.org> References: <20110726150633.GA17400@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110726150633.GA17400@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311692855 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70029 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Since the addition of file capabilities every write needs to read xattrs to check if we have any capabilities to clear. In Linux 3.0 Andi Kleen added a flag to cache the fact that we do not have any attributes on an inode. Make sure to already mark a file as not having any attributes when reading it from disk in case it doesn't even have an attribute fork. Based on an earlier patch from Andi Kleen. Signed-off-by: Christoph Hellwig Index: linux-2.6/fs/xfs/linux-2.6/xfs_iops.c =================================================================== --- linux-2.6.orig/fs/xfs/linux-2.6/xfs_iops.c 2011-07-25 23:49:23.011563852 +0200 +++ linux-2.6/fs/xfs/linux-2.6/xfs_iops.c 2011-07-25 23:49:50.281563691 +0200 @@ -1194,9 +1194,14 @@ xfs_setup_inode( break; } - /* if there is no attribute fork no ACL can exist on this inode */ - if (!XFS_IFORK_Q(ip)) + /* + * If there is no attribute fork no ACL can exist on this inode, + * and it can't have any file capabilities attached to it either. + */ + if (!XFS_IFORK_Q(ip)) { + inode_has_no_xattr(inode); cache_no_acl(inode); + } xfs_iflags_clear(ip, XFS_INEW); barrier(); From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 10:10:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QFAbwb131637 for ; Tue, 26 Jul 2011 10:10:38 -0500 X-ASG-Debug-ID: 1311693041-0e6e01400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4C9191684AFF for ; Tue, 26 Jul 2011 08:10:41 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id AuOF5AAlAvF8w9C9 for ; Tue, 26 Jul 2011 08:10:41 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QljHF-0005ey-KN; Tue, 26 Jul 2011 15:10:33 +0000 Date: Tue, 26 Jul 2011 11:10:33 -0400 From: Christoph Hellwig To: "Ted Ts'o" Cc: Christoph Hellwig , Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110726151033.GA18311@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> <20110722183830.GA21744@infradead.org> <20110722223458.GD25092@thunk.org> <20110723013214.GA22837@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110723013214.GA22837@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311693042 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70029 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 09:32:14PM -0400, Christoph Hellwig wrote: > > diff --git a/include/builddefs.in b/include/builddefs.in > > index 4c8ec64..81ebfcd 100644 > > --- a/include/builddefs.in > > +++ b/include/builddefs.in > > @@ -25,6 +25,7 @@ OPTIMIZER = @opt_build@ > > MALLOCLIB = @malloc_lib@ > > LOADERFLAGS = @LDFLAGS@ > > LTLDFLAGS = @LDFLAGS@ > > +CFLAGS = @CFLAGS@ > > > > LIBRT = @librt@ > > LIBUUID = @libuuid@ > > > > Then I don't have to set an environment variable when running make; I > > just have to pass it to configure. > > This looks much better, and is indeed similar to some other fixes we > recently had to put in, probably due to changing make behaviour. > > If you add a signoff and a proper description I'll put it into all the > repositories. Can you at least provide the signoff? I can take care of the rest if this means I can get it in ASAP. From aelder@sgi.com Tue Jul 26 10:21:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QFLro9131994 for ; Tue, 26 Jul 2011 10:21:53 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 380E08F8040; Tue, 26 Jul 2011 08:21:49 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 10:21:48 -0500 Subject: Re: [PATCH] xfs: Fix wrong return value of xfs_file_aio_write From: Alex Elder Reply-To: To: Markus Trippelsdorf CC: Christoph Hellwig , Josef Bacik , , , , , Dave Chinner , In-Reply-To: <20110724120330.GC1626@x4.trippels.de> References: <1309370716-12235-1-git-send-email-josef@redhat.com> <20110723180942.GA1616@x4.trippels.de> <4E2B2E88.8080006@redhat.com> <20110723203824.GB1652@x4.trippels.de> <20110723220212.GA1648@x4.trippels.de> <20110724111625.GA12658@infradead.org> <20110724115420.GA1626@x4.trippels.de> <20110724115826.GB1626@x4.trippels.de> <20110724120330.GC1626@x4.trippels.de> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 10:21:48 -0500 Message-ID: <1311693708.2890.5.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sun, 2011-07-24 at 14:03 +0200, Markus Trippelsdorf wrote: > The fsync prototype change commit 02c24a82187d accidentally overwrote > the ssize_t return value of xfs_file_aio_write with 0 for SYNC type > writes. Fix this by checking if an error occured when calling > xfs_file_fsync and only change the return value in this case. > In addition xfs_file_fsync actually returns a normal negative error, so > fix this, too. > > Signed-off-by: Markus Trippelsdorf > Reviewed-by: Christoph Hellwig > Tested-by: Christoph Hellwig Finally looking at this I noticed the same thing Christoph did; thanks for fixing both. Your change got committed yesterday via Al Viro's VFS tree. -Alex From aelder@sgi.com Tue Jul 26 14:02:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QJ2T5Q138612 for ; Tue, 26 Jul 2011 14:02:29 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id F2F9F8F8074; Tue, 26 Jul 2011 12:02:25 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 14:02:25 -0500 Subject: Re: [PATCH] adding example with xfs_info output decryption From: Alex Elder Reply-To: To: Christoph Hellwig CC: CoolCold , In-Reply-To: <20110722155200.GA31867@infradead.org> References: <20110722155200.GA31867@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 14:02:23 -0500 Message-ID: <1311706943.2890.42.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-22 at 11:52 -0400, Christoph Hellwig wrote: > On Mon, May 23, 2011 at 02:34:54AM +0400, CoolCold wrote: > > Basing on irc discussions and questions about reading xfs_info output > > I've added example in xfs_growfs manpage. > > Alex, Dave, Eric, do you guys have any comments on this? Language > nitpicks from the native speakers? Otherwise I'd be inclined to put it > in. > > > Signed-off-by: Roman Ovchinnikov I had to dust off my troff command knowledge to review this. It has been many years... Christoph prompted to review this from a native speaker's point of view though, so I do that here. I do end up with a question for others to try to resolve. I think what you are doing (adding the example) is a good idea to help clarify things in any case. > > --- > > man/man8/xfs_growfs.8 | 34 ++++++++++++++++++++++++++++++++++ > > 1 files changed, 34 insertions(+), 0 deletions(-) > > > > diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8 > > index 02793ae..c782fc1 100644 > > --- a/man/man8/xfs_growfs.8 > > +++ b/man/man8/xfs_growfs.8 > > @@ -1,3 +1,14 @@ > > +.\" Verbatim blocks taken from openssl req manpage content > > +.de Vb \" Begin verbatim text > > +.ft CW > > +.nf > > +.ne \\$1 > > +.. > > +.de Ve \" End verbatim text > > +.ft R > > +.fi > > +.. > > + > > .TH xfs_growfs 8 > > .SH NAME > > xfs_growfs, xfs_info \- expand an XFS filesystem > > @@ -105,6 +116,7 @@ this is specified with > > Specifies that no change to the filesystem is to be made. > > The filesystem geometry is printed, and argument checking is performed, > > but no growth occurs. > > +.B See output examples below. > > .TP > > .BI "\-r | \-R " size > > Specifies that the real-time section of the filesystem should be grown. If the > > @@ -152,6 +164,28 @@ reside. In order to grow a filesystem, it is > > necessary to provide added > > space for it to occupy. Therefore there must be at least one spare new > > disk partition available. Adding the space is often done through the use > > of a logical volume manager. > > +.SH "EXAMPLES" > > + > > +Examining xfs_info output. How about, "Understanding xfs_info output" > > +.PP > > +Let's assume one have the next xfs_info output: > > +.PP > > +.Vb 1 Maybe you could add something indicating how the command was issued. I.e.: \&# xfs_info /dev/sda > > +\& meta-data=/dev/sda isize=256 agcount=32, agsize=16777184 blks > > +\& = sectsz=512 attr=2 > > +\& data = bsize=4096 blocks=536869888, imaxpct=5 > > +\& = sunit=32 swidth=128 blks > > +\& naming =version 2 bsize=4096 > > +\& log =internal bsize=4096 blocks=32768, version=2 > > +\& = sectsz=512 sunit=32 blks, lazy-count=1 > > +\& realtime =none extsz=524288 blocks=0, rtextents=0 I think you should drop the space character after each '&' above. The way you have it puts a slight indent in the output. > > +.Ve > > +.PP > > + > > +Here, data section block size (bsize) is 4096 bytes. Therefore > > +"sunit=32 swidth=128 blks" means stripe unit is 32*4096 bytes = 128 kibibytes > > +and stripe width is 128*4096 bytes = 512 kibibytes. Filesystem is striped > > +over 4 ( 128 / 32 ) stripes. I'll just write what I think it should be rather than trying to show lots of little changes: Here, the data section of the output indicates "bsize=4096", meaning the data block size for this filesystem is 4096 bytes. This section also shows "sunit=32 swidth=128 blks", which means the stripe unit is 32*4096 bytes = 128 kibibytes and the stripe width is 128*4096 bytes = 512 kibibytes. The last sentence I'm not sure I agree with. I think you're trying to explain the relationship between a stripe width and stripe unit, and the components that make up a stripe. Your use of the term "stripe" doesn't match what I take to be its meaning. I'm not saying my meaning is right, but I'd like to make sure we have agreement on these terms. Given that, I would re-state your last sentence (using my terminology as): A single stripe of this filesystem therefore consists of four stripe units (128 blocks / 32 blocks per unit). I.e., my meaning says that a "stripe" is "stripe width" blocks wide, made up of four "stripe units", each of which is 32 blocks, where a block is 4096 bytes. I think you are using the term "stripe" to represent what I'm calling the "stripe unit". Perhaps someone else can help ensure we're using terms with meaning consistent with how XFS has used them historically. -Alex > > .SH SEE ALSO > > .BR mkfs.xfs (8), > > .BR md (4), From rjw@sisk.pl Tue Jul 26 15:27:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QKRBn8141486 for ; Tue, 26 Jul 2011 15:27:12 -0500 X-ASG-Debug-ID: 1311712029-1599007d0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ogre.sisk.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2C05799B97 for ; Tue, 26 Jul 2011 13:27:09 -0700 (PDT) Received: from ogre.sisk.pl (ogre.sisk.pl [217.79.144.158]) by cuda.sgi.com with ESMTP id VQIxaMBDjYG3pC88 for ; Tue, 26 Jul 2011 13:27:09 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by ogre.sisk.pl (Postfix) with ESMTP id 273B51B62CD; Tue, 26 Jul 2011 21:55:08 +0200 (CEST) Received: from ogre.sisk.pl ([127.0.0.1]) by localhost (ogre.sisk.pl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 15233-04; Tue, 26 Jul 2011 21:54:46 +0200 (CEST) Received: from ferrari.rjw.lan (220-bem-13.acn.waw.pl [82.210.184.220]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ogre.sisk.pl (Postfix) with ESMTP id 6BC7B1B6158; Tue, 26 Jul 2011 21:54:46 +0200 (CEST) From: "Rafael J. Wysocki" To: Dave Chinner X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Date: Tue, 26 Jul 2011 22:28:11 +0200 User-Agent: KMail/1.13.6 (Linux/3.0.0+; KDE/4.6.0; x86_64; ; ) Cc: Christoph , xfs@oss.sgi.com, Linux PM mailing list , Pavel Machek References: <4E1C70AD.1010101@u-club.de> <20110713000332.GM23038@dastard> In-Reply-To: <20110713000332.GM23038@dastard> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201107262228.12099.rjw@sisk.pl> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at ogre.sisk.pl using MkS_Vir for Linux X-Barracuda-Connect: ogre.sisk.pl[217.79.144.158] X-Barracuda-Start-Time: 1311712030 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70050 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean On Wednesday, July 13, 2011, Dave Chinner wrote: > On Tue, Jul 12, 2011 at 06:05:01PM +0200, Christoph wrote: > > Hi! > > > > I'd like you to have a look into this issue: > > > > pm-hibernate locks up when using xfs while "Preallocating image memory". > > > > https://bugzilla.kernel.org/show_bug.cgi?id=33622 > > > > I got at least this backtrace (2.6.39.3) > > > > tia > > > > chris > > > > > > > > SysRq : Show Blocked State > > > > pm-hibernate D 0000000000000000 0 3638 3637 0x00000000 > > ffff8800017bf918 0000000000000082 ffff8800017be010 ffff880000000000 > > ffff8800017be010 ffff88000b8a6170 0000000000013900 ffff8800017bffd8 > > ffff8800017bffd8 0000000000013900 ffffffff8148b020 ffff88000b8a6170 > > Call Trace: > > [] schedule_timeout+0x22/0xbb > > [] wait_for_common+0xcb/0x148 > > [] ? try_to_wake_up+0x18c/0x18c > > [] ? down_write+0x2d/0x31 > > [] wait_for_completion+0x18/0x1a > > [] xfs_reclaim_inode+0x74/0x258 [xfs] > > [] xfs_reclaim_inodes_ag+0x195/0x264 [xfs] > > [] xfs_reclaim_inode_shrink+0x52/0x90 [xfs] > > [] shrink_slab+0xdb/0x151 > > [] do_try_to_free_pages+0x204/0x39a > > [] ? apic_timer_interrupt+0xe/0x20 > > [] shrink_all_memory+0x8f/0xa8 > > [] ? next_online_pgdat+0x20/0x41 > > [] hibernate_preallocate_memory+0x1c4/0x30f > > [] ? kobject_put+0x47/0x4b > > [] hibernation_snapshot+0x45/0x281 > > [] hibernate+0xd1/0x1b8 > > [] state_store+0x57/0xce > > [] kobj_attr_store+0x17/0x19 > > [] sysfs_write_file+0xfc/0x138 > > [] vfs_write+0xa9/0x105 > > [] sys_write+0x45/0x6c > > [] system_call_fastpath+0x16/0x1b > > It's waiting for IO completion, and holding an AG scan lock. > > And IO completion requires a workqueue to run. Just FYI, this > process of inode reclaim can dirty the filesystem, long after > hibernate have assumed that it is clean due to the sys_sync() call > you do after freezing the processes. I pointed out this flaw in > using sync to write dirty data prior to hibernate a couple of years > ago. However, attempts to remove the sys_sync() from the hibernate code were objected to by some developers, since they believe it will increase the probability of data loss in case of a failing hibernation in general. > Anyway, it's a good thing that XFS doesn't use freezable work > queues, otherwise it would hang on every hibernate. Perhaps I should > do that to force hibernate to do things properly in filesystems > land. Well, I'd say it's a very well known fact that filesystems are not handled in any special way during hibernation, which is not a good thing. Nevertheless, I've never seen anyone from the filesystems land pay any kind of attention to this issue. > However, it is entirely possible that something else that XFS relies > on for IO completion has been put to sleep by this point. > > /me finds the smoking cannon: > > [ 648.794455] xfsbufd/sda3 D 0000000000000000 0 192 2 0x00000000 > [ 648.794455] ffff88003720be00 0000000000000046 ffff88003720bd90 ffffffff00000000 > [ 648.794455] ffff88003720a010 ffff880056bc3580 0000000000013900 ffff88003720bfd8 > [ 648.794455] ffff88003720bfd8 0000000000013900 ffffffff8148b020 ffff880056bc3580 > [ 648.794455] Call Trace: > [ 648.794455] [] refrigerator+0xbd/0xd3 > [ 648.794455] [] xfsbufd+0x93/0x14d [xfs] > [ 648.794455] [] ? xfs_free_buftarg+0x4c/0x4c [xfs] > [ 648.794455] [] kthread+0x7d/0x85 > [ 648.794455] [] kernel_thread_helper+0x4/0x10 > [ 648.794455] [] ? kthread_worker_fn+0x148/0x148 > [ 648.794455] [] ? gs_change+0x13/0x13 > > The xfsbufd, responsible for pushing out dirty metadata, has been > been frozen. sys_sync() does not push out dirty metadata because it > is already on stable storage in the journal. If the flush lock is > already held on the inode, then inode reclaim will wait for the > xfsbufd to flush the backing buffer because reclaim can't do it > directly. And hibernate has already frozen the xfsbufd. > > IOWs, what hibernate does is: > > freeze_processes() > sys_sync() > allocate a large amount of memory > > Freezing the processes causes parts of filesystems to be put in the > fridge, which means there is no guarantee that sys_sync() actually > does what it is supposed to. As it is, sys_sync() really only > guarantees file data is clean in memory - metadata does not need to > be clean as long s it has been journalled and the journal is safe on > disk. > > Further, allocating memory can cause memory reclaim to enter the > filesystem and try to free memory held by the filesystem. In XFS (at > least) this can cause the filesystem to issue tranactions and > metadata IO to clean the dirty metadata to enable it to be > reclaimed. So hibernate is effectively guaranteed to dirty the > filesystem after it has frozen all the worker threads the filesystem > might rely on. > > Also, by this point kswapd has already been frozen, so hibernate is > relying totally on direct memory reclaim to free up the memory it > requires. I'm not sure that's a good idea. > > IOWs, hibernate is still broken by design - and broken in exactly > the way that was pointed out a couple of years ago by myself and > others in the filesystem world: sys_sync() does not quiesce or > guarantee a clean filesystem in memory after it completes. > > There is a solution to this, and it already exists - it's called > freezing the filesystem. Effectively hibernate needs to allocate > memory before it freezes kernel/filesystem worker threads: > > freeze_userspace_processes() > > // just to clean the page cache quickly > sys_sync() > > // optionally to free page/inode/dentry caches: > iterate_supers(drop_pagecache_sb, NULL); > drop_slab() > > allocate a large amount of memory > > // Now quiesce the filesystems and clean remaining metadata > iterate_supers(freeze_super, NULL); > > freeze_remaining_processes() > > This guarantees that filesystems are still working when memory > reclaim comes along to free memory for the hibernate image, and that > once it is allocated that filesystems will not be changed until > thawed on the hibernate wakeup. > > So, like I said a couple of years ago: fix hibernate to quiesce > filesystems properly, and the hibernate will be much more reliable > and robust and less likely to break randomly in the future. Why don't you simply submit a patch to do that? Rafael From aelder@sgi.com Tue Jul 26 17:39:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QMd3m1146152 for ; Tue, 26 Jul 2011 17:39:03 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id A5E3DAC008; Tue, 26 Jul 2011 15:38:56 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 17:38:55 -0500 Subject: Re: [PATCH 1/3] xfs: flag all buffers as metadata From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110726150644.GA18000@infradead.org> References: <20110726150633.GA17400@infradead.org> <20110726150644.GA18000@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 17:38:55 -0500 Message-ID: <1311719935.11557.12.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-26 at 11:06 -0400, Christoph Hellwig wrote: > Now that REQ_META bios aren't treated specially in the CFQ I/O schedule > anymore, we can tag all buffers as metadata to make blktrace traces more > meaningful. Note that we use buffers also to zero out partial blocks > in the preallocation / hole punching code, and while they operate on > data blocks the zeros written certainly aren't data. I think this case > is borderline metadata enough to not bother special casing it. > > Signed-off-by: Christoph Hellwig This looks good. I plan to re-base the xfs master branch after 3.1-rc1 is out, so I'll wait until after that to commit this (and the others in this series). If you want me to do something different, let me know. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 26 17:39:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QMdBNp146166 for ; Tue, 26 Jul 2011 17:39:11 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7500C30404E; Tue, 26 Jul 2011 15:39:05 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 17:39:05 -0500 Subject: Re: [PATCH 2/3] xfs: prevent against ioend livelocks in xfs_file_fsync From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110726150711.GB18000@infradead.org> References: <20110726150633.GA17400@infradead.org> <20110726150711.GB18000@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 17:39:02 -0500 Message-ID: <1311719942.11557.14.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-26 at 11:07 -0400, Christoph Hellwig wrote: > We need to take some locks to prevent new ioends from coming in when we wait > for all existing ones to go away. Up to Linux 3.0 that was done using the > i_mutex held by the VFS fsync code, but now that we are called without > it we need to take care of it ourselves. Use the I/O lock instead of > i_mutex just like we do in other places. > > Signed-off-by: Christoph Hellwig Looks good. Reviewed-by: Alex Elder From aelder@sgi.com Tue Jul 26 17:39:14 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QMdDV2146175 for ; Tue, 26 Jul 2011 17:39:14 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id 47B5DAC00C; Tue, 26 Jul 2011 15:39:13 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 17:39:12 -0500 Subject: Re: [PATCH 3/3] xfs: optimize the negative xattr caching From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110726150729.GC18000@infradead.org> References: <20110726150633.GA17400@infradead.org> <20110726150729.GC18000@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 17:39:11 -0500 Message-ID: <1311719951.11557.15.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-26 at 11:07 -0400, Christoph Hellwig wrote: > Since the addition of file capabilities every write needs to read xattrs to > check if we have any capabilities to clear. In Linux 3.0 Andi Kleen added > a flag to cache the fact that we do not have any attributes on an inode. > Make sure to already mark a file as not having any attributes when reading > it from disk in case it doesn't even have an attribute fork. Based on an > earlier patch from Andi Kleen. > > Signed-off-by: Christoph Hellwig Looks good to me. Reviewed-by: Alex Elder From BATV+d921bb47ceff39f27c6b+2893+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 26 17:40:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QMeJlH146235 for ; Tue, 26 Jul 2011 17:40:20 -0500 X-ASG-Debug-ID: 1311720024-4d7d014f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id CEDAA1514160; Tue, 26 Jul 2011 15:40:24 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id qBYDWGvmyY4B4JgG; Tue, 26 Jul 2011 15:40:24 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QlqIS-0003UI-IO; Tue, 26 Jul 2011 22:40:16 +0000 Date: Tue, 26 Jul 2011 18:40:16 -0400 From: Christoph Hellwig To: Alex Elder Cc: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/3] xfs: flag all buffers as metadata Subject: Re: [PATCH 1/3] xfs: flag all buffers as metadata Message-ID: <20110726224016.GA10394@infradead.org> References: <20110726150633.GA17400@infradead.org> <20110726150644.GA18000@infradead.org> <1311719935.11557.12.camel@doink> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311719935.11557.12.camel@doink> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311720025 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70059 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 26, 2011 at 05:38:55PM -0500, Alex Elder wrote: > On Tue, 2011-07-26 at 11:06 -0400, Christoph Hellwig wrote: > > Now that REQ_META bios aren't treated specially in the CFQ I/O schedule > > anymore, we can tag all buffers as metadata to make blktrace traces more > > meaningful. Note that we use buffers also to zero out partial blocks > > in the preallocation / hole punching code, and while they operate on > > data blocks the zeros written certainly aren't data. I think this case > > is borderline metadata enough to not bother special casing it. > > > > Signed-off-by: Christoph Hellwig > > This looks good. I plan to re-base the xfs master branch > after 3.1-rc1 is out, so I'll wait until after that to > commit this (and the others in this series). I'd prefer to get it out to Linus ASAP after some review. Just committing it to for-linus for now and later rebasing master on top should do fine for that. From aelder@sgi.com Tue Jul 26 17:41:39 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QMfduD146275 for ; Tue, 26 Jul 2011 17:41:39 -0500 Received: from xmail.sgi.com (pv-excas3-dc21.corp.sgi.com [137.38.102.206]) by relay3.corp.sgi.com (Postfix) with ESMTP id EB076AC007; Tue, 26 Jul 2011 15:41:38 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Tue, 26 Jul 2011 17:41:38 -0500 Subject: Re: [PATCH 1/3] xfs: flag all buffers as metadata From: Alex Elder Reply-To: To: Christoph Hellwig CC: In-Reply-To: <20110726224016.GA10394@infradead.org> References: <20110726150633.GA17400@infradead.org> <20110726150644.GA18000@infradead.org> <1311719935.11557.12.camel@doink> <20110726224016.GA10394@infradead.org> Content-Type: text/plain; charset="UTF-8" Date: Tue, 26 Jul 2011 17:41:37 -0500 Message-ID: <1311720097.11557.16.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-26 at 18:40 -0400, Christoph Hellwig wrote: > On Tue, Jul 26, 2011 at 05:38:55PM -0500, Alex Elder wrote: > > On Tue, 2011-07-26 at 11:06 -0400, Christoph Hellwig wrote: > > > Now that REQ_META bios aren't treated specially in the CFQ I/O schedule > > > anymore, we can tag all buffers as metadata to make blktrace traces more > > > meaningful. Note that we use buffers also to zero out partial blocks > > > in the preallocation / hole punching code, and while they operate on > > > data blocks the zeros written certainly aren't data. I think this case > > > is borderline metadata enough to not bother special casing it. > > > > > > Signed-off-by: Christoph Hellwig > > > > This looks good. I plan to re-base the xfs master branch > > after 3.1-rc1 is out, so I'll wait until after that to > > commit this (and the others in this series). > > I'd prefer to get it out to Linus ASAP after some review. Just > committing it to for-linus for now and later rebasing master on top > should do fine for that. OK, fine with me. I'll get that process started this evening. -Alex From fallertsen@gmail.com Tue Jul 26 18:33:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.8 required=5.0 tests=BAYES_50,FREEMAIL_FROM, T_DKIM_INVALID,UPPERCASE_50_75 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6QNX0qO148316 for ; Tue, 26 Jul 2011 18:33:01 -0500 X-ASG-Debug-ID: 1311723174-69a102790000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-wy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9DAC6D0373A; Tue, 26 Jul 2011 16:32:54 -0700 (PDT) Received: from mail-wy0-f181.google.com (mail-wy0-f181.google.com [74.125.82.181]) by cuda.sgi.com with ESMTP id CYkS6edIJFO0oFGl; Tue, 26 Jul 2011 16:32:54 -0700 (PDT) Received: by wyh22 with SMTP id 22so515147wyh.26 for ; Tue, 26 Jul 2011 16:32:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:mime-version:content-type :content-disposition:user-agent; bh=AW05XMmqcLqLsNmr16Q2T9D1I4ORYamBEyOqlwHTkXU=; b=jplHYYQ2bSV9W60LsGuE4+azdWv94j7kSkUgQT7R1dDh1C2T3t2r287OoTFRtXSkEd fecMo/Wt6WC45S+Dv5vQQ3PJ1W47fok3fKrlHXZ7x+FrkH3xGDZyeSKeXlkav7Q/uhfF 38y16qw0/wIxJG3T8jwq8UGBF1xDGCJCFGIvQ= Received: by 10.227.209.20 with SMTP id ge20mr3165158wbb.108.1311723173595; Tue, 26 Jul 2011 16:32:53 -0700 (PDT) Received: from localhost (host166-230-dynamic.54-82-r.retail.telecomitalia.it [82.54.230.166]) by mx.google.com with ESMTPS id fo2sm845083wbb.14.2011.07.26.16.32.46 (version=TLSv1/SSLv3 cipher=OTHER); Tue, 26 Jul 2011 16:32:51 -0700 (PDT) Date: Wed, 27 Jul 2011 01:32:46 +0200 From: Francesco Allertsen To: Alex Elder Cc: xfs-masters@oss.sgi.com, Christoph Hellwig , Al Viro , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: xfs compile error with the latest -git Subject: xfs compile error with the latest -git Message-ID: <20110726233246.GA8168@fujiko> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="tThc/1wpZn/ma/RB" Content-Disposition: inline User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: mail-wy0-f181.google.com[74.125.82.181] X-Barracuda-Start-Time: 1311723175 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.53 X-Barracuda-Spam-Status: No, SCORE=-1.53 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED, FUZZY_VPILL, UPPERCASE_50_75, UPPERCASE_50_75_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70062 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam 0.00 UPPERCASE_50_75 message body is 50-75% uppercase 0.49 UPPERCASE_50_75_2 message body is 50-75% uppercase X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --tThc/1wpZn/ma/RB Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi all, I have tried to compile the latest -git today and I got the following error while compiling the xfs filesystem. CC fs/xfs/linux-2.6/xfs_iops.o fs/xfs/linux-2.6/xfs_iops.c:1025:14: error: 'xfs_get_acl' undeclared here (not in a function) I have bisected the problem and the first bad commit is this one commit 4e34e719e457f2e031297175410fc0bd4016a085 Author: Christoph Hellwig Date: Sat Jul 23 17:37:31 2011 +0200 fs: take the ACL checks to common code Replace the ->check_acl method with a ->get_acl method that simply reads an ACL from disk after having a cache miss. This means we can replace the ACL checking boilerplate code with a single implementation in namei.c. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro Could you please solve this problem? I have attached also the .config file if you need it. If you need more information or want me to try the patch just let me know. Thanks Bye Francesco --tThc/1wpZn/ma/RB Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=config-master # # Automatically generated make config: don't edit # Linux/i386 3.0.0 Kernel Configuration # # CONFIG_64BIT is not set CONFIG_X86_32=y # CONFIG_X86_64 is not set CONFIG_X86=y CONFIG_INSTRUCTION_DECODER=y CONFIG_OUTPUT_FORMAT="elf32-i386" CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" CONFIG_GENERIC_CMOS_UPDATE=y CONFIG_CLOCKSOURCE_WATCHDOG=y CONFIG_GENERIC_CLOCKEVENTS=y CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y CONFIG_LOCKDEP_SUPPORT=y CONFIG_STACKTRACE_SUPPORT=y CONFIG_HAVE_LATENCYTOP_SUPPORT=y CONFIG_MMU=y CONFIG_ZONE_DMA=y # CONFIG_NEED_DMA_MAP_STATE is not set CONFIG_NEED_SG_DMA_LENGTH=y CONFIG_GENERIC_ISA_DMA=y CONFIG_GENERIC_IOMAP=y CONFIG_GENERIC_BUG=y CONFIG_GENERIC_HWEIGHT=y CONFIG_ARCH_MAY_HAVE_PC_FDC=y # CONFIG_RWSEM_GENERIC_SPINLOCK is not set CONFIG_RWSEM_XCHGADD_ALGORITHM=y CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y CONFIG_GENERIC_CALIBRATE_DELAY=y # CONFIG_GENERIC_TIME_VSYSCALL is not set CONFIG_ARCH_HAS_CPU_RELAX=y CONFIG_ARCH_HAS_DEFAULT_IDLE=y CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y CONFIG_HAVE_SETUP_PER_CPU_AREA=y CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y # CONFIG_HAVE_CPUMASK_OF_CPU_MAP is not set CONFIG_ARCH_HIBERNATION_POSSIBLE=y CONFIG_ARCH_SUSPEND_POSSIBLE=y # CONFIG_ZONE_DMA32 is not set CONFIG_ARCH_POPULATES_NODE_MAP=y # CONFIG_AUDIT_ARCH is not set CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y CONFIG_X86_32_SMP=y CONFIG_X86_HT=y CONFIG_X86_32_LAZY_GS=y CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" CONFIG_KTIME_SCALAR=y CONFIG_ARCH_CPU_PROBE_RELEASE=y CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" CONFIG_HAVE_IRQ_WORK=y CONFIG_IRQ_WORK=y # # General setup # CONFIG_EXPERIMENTAL=y CONFIG_INIT_ENV_ARG_LIMIT=32 CONFIG_CROSS_COMPILE="" CONFIG_LOCALVERSION="" CONFIG_LOCALVERSION_AUTO=y CONFIG_HAVE_KERNEL_GZIP=y CONFIG_HAVE_KERNEL_BZIP2=y CONFIG_HAVE_KERNEL_LZMA=y CONFIG_HAVE_KERNEL_XZ=y CONFIG_HAVE_KERNEL_LZO=y CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_BZIP2 is not set # CONFIG_KERNEL_LZMA is not set # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set CONFIG_DEFAULT_HOSTNAME="(none)" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y CONFIG_POSIX_MQUEUE=y CONFIG_POSIX_MQUEUE_SYSCTL=y CONFIG_BSD_PROCESS_ACCT=y # CONFIG_BSD_PROCESS_ACCT_V3 is not set # CONFIG_FHANDLE is not set CONFIG_TASKSTATS=y CONFIG_TASK_DELAY_ACCT=y CONFIG_TASK_XACCT=y CONFIG_TASK_IO_ACCOUNTING=y CONFIG_AUDIT=y CONFIG_AUDITSYSCALL=y CONFIG_AUDIT_WATCH=y CONFIG_AUDIT_TREE=y CONFIG_HAVE_GENERIC_HARDIRQS=y # # IRQ subsystem # CONFIG_GENERIC_HARDIRQS=y CONFIG_HAVE_SPARSE_IRQ=y CONFIG_GENERIC_IRQ_PROBE=y CONFIG_GENERIC_IRQ_SHOW=y CONFIG_GENERIC_PENDING_IRQ=y CONFIG_IRQ_FORCED_THREADING=y CONFIG_SPARSE_IRQ=y # # RCU Subsystem # CONFIG_TREE_RCU=y # CONFIG_PREEMPT_RCU is not set # CONFIG_RCU_TRACE is not set CONFIG_RCU_FANOUT=32 # CONFIG_RCU_FANOUT_EXACT is not set # CONFIG_RCU_FAST_NO_HZ is not set # CONFIG_TREE_RCU_TRACE is not set # CONFIG_IKCONFIG is not set CONFIG_LOG_BUF_SHIFT=18 CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y CONFIG_CGROUPS=y # CONFIG_CGROUP_DEBUG is not set CONFIG_CGROUP_FREEZER=y # CONFIG_CGROUP_DEVICE is not set CONFIG_CPUSETS=y CONFIG_PROC_PID_CPUSET=y # CONFIG_CGROUP_CPUACCT is not set CONFIG_RESOURCE_COUNTERS=y # CONFIG_CGROUP_MEM_RES_CTLR is not set # CONFIG_CGROUP_PERF is not set CONFIG_CGROUP_SCHED=y CONFIG_FAIR_GROUP_SCHED=y # CONFIG_RT_GROUP_SCHED is not set # CONFIG_BLK_CGROUP is not set CONFIG_NAMESPACES=y CONFIG_UTS_NS=y CONFIG_IPC_NS=y CONFIG_USER_NS=y CONFIG_PID_NS=y CONFIG_NET_NS=y CONFIG_SCHED_AUTOGROUP=y # CONFIG_SYSFS_DEPRECATED is not set CONFIG_RELAY=y CONFIG_BLK_DEV_INITRD=y CONFIG_INITRAMFS_SOURCE="" CONFIG_RD_GZIP=y CONFIG_RD_BZIP2=y CONFIG_RD_LZMA=y CONFIG_RD_XZ=y CONFIG_RD_LZO=y CONFIG_CC_OPTIMIZE_FOR_SIZE=y CONFIG_SYSCTL=y CONFIG_ANON_INODES=y # CONFIG_EXPERT is not set CONFIG_UID16=y CONFIG_SYSCTL_SYSCALL=y CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set CONFIG_HOTPLUG=y CONFIG_PRINTK=y CONFIG_BUG=y CONFIG_ELF_CORE=y CONFIG_PCSPKR_PLATFORM=y CONFIG_HAVE_PCSPKR_PLATFORM=y CONFIG_BASE_FULL=y CONFIG_FUTEX=y CONFIG_EPOLL=y CONFIG_SIGNALFD=y CONFIG_TIMERFD=y CONFIG_EVENTFD=y CONFIG_SHMEM=y CONFIG_AIO=y # CONFIG_EMBEDDED is not set CONFIG_HAVE_PERF_EVENTS=y # # Kernel Performance Events And Counters # CONFIG_PERF_EVENTS=y # CONFIG_PERF_COUNTERS is not set # CONFIG_DEBUG_PERF_USE_VMALLOC is not set CONFIG_VM_EVENT_COUNTERS=y CONFIG_PCI_QUIRKS=y CONFIG_SLUB_DEBUG=y # CONFIG_COMPAT_BRK is not set # CONFIG_SLAB is not set CONFIG_SLUB=y CONFIG_PROFILING=y CONFIG_TRACEPOINTS=y # CONFIG_OPROFILE is not set CONFIG_HAVE_OPROFILE=y CONFIG_KPROBES=y # CONFIG_JUMP_LABEL is not set CONFIG_OPTPROBES=y CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y CONFIG_KRETPROBES=y CONFIG_HAVE_IOREMAP_PROT=y CONFIG_HAVE_KPROBES=y CONFIG_HAVE_KRETPROBES=y CONFIG_HAVE_OPTPROBES=y CONFIG_HAVE_ARCH_TRACEHOOK=y CONFIG_HAVE_DMA_ATTRS=y CONFIG_USE_GENERIC_SMP_HELPERS=y CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y CONFIG_HAVE_DMA_API_DEBUG=y CONFIG_HAVE_HW_BREAKPOINT=y CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y CONFIG_HAVE_USER_RETURN_NOTIFIER=y CONFIG_HAVE_PERF_EVENTS_NMI=y CONFIG_HAVE_ARCH_JUMP_LABEL=y # # GCOV-based kernel profiling # # CONFIG_GCOV_KERNEL is not set CONFIG_HAVE_GENERIC_DMA_COHERENT=y CONFIG_SLABINFO=y CONFIG_RT_MUTEXES=y CONFIG_BASE_SMALL=0 CONFIG_MODULES=y # CONFIG_MODULE_FORCE_LOAD is not set CONFIG_MODULE_UNLOAD=y CONFIG_MODULE_FORCE_UNLOAD=y # CONFIG_MODVERSIONS is not set # CONFIG_MODULE_SRCVERSION_ALL is not set CONFIG_STOP_MACHINE=y CONFIG_BLOCK=y CONFIG_LBDAF=y CONFIG_BLK_DEV_BSG=y # CONFIG_BLK_DEV_INTEGRITY is not set # # IO Schedulers # CONFIG_IOSCHED_NOOP=y # CONFIG_IOSCHED_DEADLINE is not set # CONFIG_IOSCHED_CFQ is not set CONFIG_DEFAULT_NOOP=y CONFIG_DEFAULT_IOSCHED="noop" # CONFIG_INLINE_SPIN_TRYLOCK is not set # CONFIG_INLINE_SPIN_TRYLOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK is not set # CONFIG_INLINE_SPIN_LOCK_BH is not set # CONFIG_INLINE_SPIN_LOCK_IRQ is not set # CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set CONFIG_INLINE_SPIN_UNLOCK=y # CONFIG_INLINE_SPIN_UNLOCK_BH is not set CONFIG_INLINE_SPIN_UNLOCK_IRQ=y # CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_READ_TRYLOCK is not set # CONFIG_INLINE_READ_LOCK is not set # CONFIG_INLINE_READ_LOCK_BH is not set # CONFIG_INLINE_READ_LOCK_IRQ is not set # CONFIG_INLINE_READ_LOCK_IRQSAVE is not set CONFIG_INLINE_READ_UNLOCK=y # CONFIG_INLINE_READ_UNLOCK_BH is not set CONFIG_INLINE_READ_UNLOCK_IRQ=y # CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set # CONFIG_INLINE_WRITE_TRYLOCK is not set # CONFIG_INLINE_WRITE_LOCK is not set # CONFIG_INLINE_WRITE_LOCK_BH is not set # CONFIG_INLINE_WRITE_LOCK_IRQ is not set # CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set CONFIG_INLINE_WRITE_UNLOCK=y # CONFIG_INLINE_WRITE_UNLOCK_BH is not set CONFIG_INLINE_WRITE_UNLOCK_IRQ=y # CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set CONFIG_MUTEX_SPIN_ON_OWNER=y CONFIG_FREEZER=y # # Processor type and features # CONFIG_TICK_ONESHOT=y CONFIG_NO_HZ=y CONFIG_HIGH_RES_TIMERS=y CONFIG_GENERIC_CLOCKEVENTS_BUILD=y CONFIG_SMP=y CONFIG_X86_MPPARSE=y # CONFIG_X86_BIGSMP is not set CONFIG_X86_EXTENDED_PLATFORM=y # CONFIG_X86_INTEL_MID is not set # CONFIG_X86_RDC321X is not set # CONFIG_X86_32_NON_STANDARD is not set CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y # CONFIG_X86_32_IRIS is not set CONFIG_SCHED_OMIT_FRAME_POINTER=y # CONFIG_PARAVIRT_GUEST is not set CONFIG_NO_BOOTMEM=y # CONFIG_MEMTEST is not set # CONFIG_M386 is not set # CONFIG_M486 is not set # CONFIG_M586 is not set # CONFIG_M586TSC is not set # CONFIG_M586MMX is not set CONFIG_M686=y # CONFIG_MPENTIUMII is not set # CONFIG_MPENTIUMIII is not set # CONFIG_MPENTIUMM is not set # CONFIG_MPENTIUM4 is not set # CONFIG_MK6 is not set # CONFIG_MK7 is not set # CONFIG_MK8 is not set # CONFIG_MCRUSOE is not set # CONFIG_MEFFICEON is not set # CONFIG_MWINCHIPC6 is not set # CONFIG_MWINCHIP3D is not set # CONFIG_MELAN is not set # CONFIG_MGEODEGX1 is not set # CONFIG_MGEODE_LX is not set # CONFIG_MCYRIXIII is not set # CONFIG_MVIAC3_2 is not set # CONFIG_MVIAC7 is not set # CONFIG_MCORE2 is not set # CONFIG_MATOM is not set CONFIG_X86_GENERIC=y CONFIG_X86_INTERNODE_CACHE_SHIFT=6 CONFIG_X86_CMPXCHG=y CONFIG_CMPXCHG_LOCAL=y CONFIG_CMPXCHG_DOUBLE=y CONFIG_X86_L1_CACHE_SHIFT=6 CONFIG_X86_XADD=y # CONFIG_X86_PPRO_FENCE is not set CONFIG_X86_WP_WORKS_OK=y CONFIG_X86_INVLPG=y CONFIG_X86_BSWAP=y CONFIG_X86_POPAD_OK=y CONFIG_X86_INTEL_USERCOPY=y CONFIG_X86_USE_PPRO_CHECKSUM=y CONFIG_X86_TSC=y CONFIG_X86_CMPXCHG64=y CONFIG_X86_CMOV=y CONFIG_X86_MINIMUM_CPU_FAMILY=5 CONFIG_X86_DEBUGCTLMSR=y CONFIG_CPU_SUP_INTEL=y CONFIG_CPU_SUP_CYRIX_32=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_TRANSMETA_32=y CONFIG_CPU_SUP_UMC_32=y CONFIG_HPET_TIMER=y CONFIG_HPET_EMULATE_RTC=y CONFIG_DMI=y # CONFIG_IOMMU_HELPER is not set CONFIG_NR_CPUS=8 CONFIG_SCHED_SMT=y CONFIG_SCHED_MC=y # CONFIG_IRQ_TIME_ACCOUNTING is not set # CONFIG_PREEMPT_NONE is not set CONFIG_PREEMPT_VOLUNTARY=y # CONFIG_PREEMPT is not set CONFIG_X86_LOCAL_APIC=y CONFIG_X86_IO_APIC=y CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y CONFIG_X86_MCE=y CONFIG_X86_MCE_INTEL=y CONFIG_X86_MCE_AMD=y # CONFIG_X86_ANCIENT_MCE is not set CONFIG_X86_MCE_THRESHOLD=y # CONFIG_X86_MCE_INJECT is not set CONFIG_X86_THERMAL_VECTOR=y CONFIG_VM86=y # CONFIG_TOSHIBA is not set # CONFIG_I8K is not set CONFIG_X86_REBOOTFIXUPS=y CONFIG_MICROCODE=y CONFIG_MICROCODE_INTEL=y CONFIG_MICROCODE_AMD=y CONFIG_MICROCODE_OLD_INTERFACE=y CONFIG_X86_MSR=y CONFIG_X86_CPUID=y # CONFIG_NOHIGHMEM is not set CONFIG_HIGHMEM4G=y # CONFIG_HIGHMEM64G is not set CONFIG_PAGE_OFFSET=0xC0000000 CONFIG_HIGHMEM=y # CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set # CONFIG_ARCH_DMA_ADDR_T_64BIT is not set CONFIG_ARCH_FLATMEM_ENABLE=y CONFIG_ARCH_SPARSEMEM_ENABLE=y CONFIG_ARCH_SELECT_MEMORY_MODEL=y CONFIG_ILLEGAL_POINTER_VALUE=0 CONFIG_SELECT_MEMORY_MODEL=y CONFIG_FLATMEM_MANUAL=y # CONFIG_SPARSEMEM_MANUAL is not set CONFIG_FLATMEM=y CONFIG_FLAT_NODE_MEM_MAP=y CONFIG_SPARSEMEM_STATIC=y CONFIG_HAVE_MEMBLOCK=y CONFIG_PAGEFLAGS_EXTENDED=y CONFIG_SPLIT_PTLOCK_CPUS=4 CONFIG_COMPACTION=y CONFIG_MIGRATION=y # CONFIG_PHYS_ADDR_T_64BIT is not set CONFIG_ZONE_DMA_FLAG=1 CONFIG_BOUNCE=y CONFIG_VIRT_TO_BUS=y # CONFIG_KSM is not set CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y # CONFIG_MEMORY_FAILURE is not set CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y # CONFIG_TRANSPARENT_HUGEPAGE_MADVISE is not set # CONFIG_CLEANCACHE is not set CONFIG_HIGHPTE=y CONFIG_X86_CHECK_BIOS_CORRUPTION=y CONFIG_X86_BOOTPARAM_MEMORY_CORRUPTION_CHECK=y CONFIG_X86_RESERVE_LOW=64 # CONFIG_MATH_EMULATION is not set CONFIG_MTRR=y # CONFIG_MTRR_SANITIZER is not set CONFIG_X86_PAT=y CONFIG_ARCH_USES_PG_UNCACHED=y CONFIG_EFI=y CONFIG_SECCOMP=y # CONFIG_CC_STACKPROTECTOR is not set # CONFIG_HZ_100 is not set # CONFIG_HZ_250 is not set # CONFIG_HZ_300 is not set CONFIG_HZ_1000=y CONFIG_HZ=1000 CONFIG_SCHED_HRTICK=y CONFIG_KEXEC=y CONFIG_CRASH_DUMP=y # CONFIG_KEXEC_JUMP is not set CONFIG_PHYSICAL_START=0x1000000 CONFIG_RELOCATABLE=y CONFIG_X86_NEED_RELOCS=y CONFIG_PHYSICAL_ALIGN=0x1000000 CONFIG_HOTPLUG_CPU=y # CONFIG_COMPAT_VDSO is not set # CONFIG_CMDLINE_BOOL is not set CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y # # Power management and ACPI options # CONFIG_SUSPEND=y CONFIG_SUSPEND_FREEZER=y CONFIG_HIBERNATE_CALLBACKS=y CONFIG_HIBERNATION=y CONFIG_PM_STD_PARTITION="/dev/sda1" CONFIG_PM_SLEEP=y CONFIG_PM_SLEEP_SMP=y CONFIG_PM_RUNTIME=y CONFIG_PM=y CONFIG_PM_DEBUG=y # CONFIG_PM_ADVANCED_DEBUG is not set # CONFIG_PM_TEST_SUSPEND is not set CONFIG_CAN_PM_TRACE=y CONFIG_PM_TRACE=y CONFIG_PM_TRACE_RTC=y CONFIG_ACPI=y CONFIG_ACPI_SLEEP=y CONFIG_ACPI_PROCFS=y CONFIG_ACPI_PROCFS_POWER=y # CONFIG_ACPI_EC_DEBUGFS is not set CONFIG_ACPI_PROC_EVENT=y CONFIG_ACPI_AC=y CONFIG_ACPI_BATTERY=y CONFIG_ACPI_BUTTON=y CONFIG_ACPI_VIDEO=y CONFIG_ACPI_FAN=y CONFIG_ACPI_DOCK=y CONFIG_ACPI_PROCESSOR=y CONFIG_ACPI_HOTPLUG_CPU=y # CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set CONFIG_ACPI_THERMAL=y # CONFIG_ACPI_CUSTOM_DSDT is not set CONFIG_ACPI_BLACKLIST_YEAR=0 # CONFIG_ACPI_DEBUG is not set # CONFIG_ACPI_PCI_SLOT is not set CONFIG_X86_PM_TIMER=y CONFIG_ACPI_CONTAINER=y # CONFIG_ACPI_SBS is not set # CONFIG_ACPI_HED is not set # CONFIG_ACPI_CUSTOM_METHOD is not set # CONFIG_ACPI_APEI is not set # CONFIG_SFI is not set # CONFIG_APM is not set # # CPU Frequency scaling # CONFIG_CPU_FREQ=y CONFIG_CPU_FREQ_TABLE=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_FREQ_STAT_DETAILS=y # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set # CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set CONFIG_CPU_FREQ_GOV_PERFORMANCE=y # CONFIG_CPU_FREQ_GOV_POWERSAVE is not set CONFIG_CPU_FREQ_GOV_USERSPACE=y CONFIG_CPU_FREQ_GOV_ONDEMAND=y # CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set # # x86 CPU frequency scaling drivers # # CONFIG_X86_PCC_CPUFREQ is not set CONFIG_X86_ACPI_CPUFREQ=y # CONFIG_X86_POWERNOW_K6 is not set # CONFIG_X86_POWERNOW_K7 is not set # CONFIG_X86_POWERNOW_K8 is not set # CONFIG_X86_GX_SUSPMOD is not set # CONFIG_X86_SPEEDSTEP_CENTRINO is not set # CONFIG_X86_SPEEDSTEP_ICH is not set # CONFIG_X86_SPEEDSTEP_SMI is not set # CONFIG_X86_P4_CLOCKMOD is not set # CONFIG_X86_CPUFREQ_NFORCE2 is not set # CONFIG_X86_LONGRUN is not set # CONFIG_X86_LONGHAUL is not set # CONFIG_X86_E_POWERSAVER is not set # # shared options # # CONFIG_X86_SPEEDSTEP_LIB is not set CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y CONFIG_CPU_IDLE_GOV_MENU=y # CONFIG_INTEL_IDLE is not set # # Bus options (PCI etc.) # CONFIG_PCI=y # CONFIG_PCI_GOBIOS is not set # CONFIG_PCI_GOMMCONFIG is not set # CONFIG_PCI_GODIRECT is not set CONFIG_PCI_GOANY=y CONFIG_PCI_BIOS=y CONFIG_PCI_DIRECT=y CONFIG_PCI_MMCONFIG=y CONFIG_PCI_DOMAINS=y # CONFIG_PCI_CNB20LE_QUIRK is not set CONFIG_PCIEPORTBUS=y # CONFIG_HOTPLUG_PCI_PCIE is not set CONFIG_PCIEAER=y # CONFIG_PCIE_ECRC is not set # CONFIG_PCIEAER_INJECT is not set CONFIG_PCIEASPM=y # CONFIG_PCIEASPM_DEBUG is not set CONFIG_PCIE_PME=y CONFIG_ARCH_SUPPORTS_MSI=y CONFIG_PCI_MSI=y # CONFIG_PCI_DEBUG is not set # CONFIG_PCI_STUB is not set CONFIG_HT_IRQ=y # CONFIG_PCI_IOV is not set CONFIG_PCI_IOAPIC=y CONFIG_PCI_LABEL=y CONFIG_ISA_DMA_API=y # CONFIG_ISA is not set # CONFIG_MCA is not set # CONFIG_SCx200 is not set # CONFIG_OLPC is not set CONFIG_AMD_NB=y CONFIG_PCCARD=y CONFIG_PCMCIA=y CONFIG_PCMCIA_LOAD_CIS=y CONFIG_CARDBUS=y # # PC-card bridges # CONFIG_YENTA=y CONFIG_YENTA_O2=y CONFIG_YENTA_RICOH=y CONFIG_YENTA_TI=y CONFIG_YENTA_ENE_TUNE=y CONFIG_YENTA_TOSHIBA=y # CONFIG_PD6729 is not set # CONFIG_I82092 is not set CONFIG_PCCARD_NONSTATIC=y CONFIG_HOTPLUG_PCI=y # CONFIG_HOTPLUG_PCI_FAKE is not set # CONFIG_HOTPLUG_PCI_COMPAQ is not set # CONFIG_HOTPLUG_PCI_IBM is not set # CONFIG_HOTPLUG_PCI_ACPI is not set # CONFIG_HOTPLUG_PCI_CPCI is not set # CONFIG_HOTPLUG_PCI_SHPC is not set # CONFIG_RAPIDIO is not set # # Executable file formats / Emulations # CONFIG_BINFMT_ELF=y CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y CONFIG_HAVE_AOUT=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_MISC=y CONFIG_HAVE_ATOMIC_IOMAP=y CONFIG_HAVE_TEXT_POKE_SMP=y CONFIG_NET=y # # Networking options # CONFIG_PACKET=y CONFIG_UNIX=y CONFIG_XFRM=y CONFIG_XFRM_USER=y # CONFIG_XFRM_SUB_POLICY is not set # CONFIG_XFRM_MIGRATE is not set # CONFIG_XFRM_STATISTICS is not set # CONFIG_NET_KEY is not set CONFIG_INET=y CONFIG_IP_MULTICAST=y CONFIG_IP_ADVANCED_ROUTER=y # CONFIG_IP_FIB_TRIE_STATS is not set CONFIG_IP_MULTIPLE_TABLES=y CONFIG_IP_ROUTE_MULTIPATH=y CONFIG_IP_ROUTE_VERBOSE=y CONFIG_IP_ROUTE_CLASSID=y CONFIG_IP_PNP=y CONFIG_IP_PNP_DHCP=y CONFIG_IP_PNP_BOOTP=y CONFIG_IP_PNP_RARP=y # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE_DEMUX is not set CONFIG_IP_MROUTE=y # CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set CONFIG_IP_PIMSM_V1=y CONFIG_IP_PIMSM_V2=y # CONFIG_ARPD is not set CONFIG_SYN_COOKIES=y # CONFIG_INET_AH is not set # CONFIG_INET_ESP is not set # CONFIG_INET_IPCOMP is not set # CONFIG_INET_XFRM_TUNNEL is not set CONFIG_INET_TUNNEL=y # CONFIG_INET_XFRM_MODE_TRANSPORT is not set # CONFIG_INET_XFRM_MODE_TUNNEL is not set # CONFIG_INET_XFRM_MODE_BEET is not set CONFIG_INET_LRO=y # CONFIG_INET_DIAG is not set CONFIG_TCP_CONG_ADVANCED=y # CONFIG_TCP_CONG_BIC is not set CONFIG_TCP_CONG_CUBIC=y # CONFIG_TCP_CONG_WESTWOOD is not set # CONFIG_TCP_CONG_HTCP is not set # CONFIG_TCP_CONG_HSTCP is not set # CONFIG_TCP_CONG_HYBLA is not set # CONFIG_TCP_CONG_VEGAS is not set # CONFIG_TCP_CONG_SCALABLE is not set # CONFIG_TCP_CONG_LP is not set # CONFIG_TCP_CONG_VENO is not set # CONFIG_TCP_CONG_YEAH is not set # CONFIG_TCP_CONG_ILLINOIS is not set CONFIG_DEFAULT_CUBIC=y # CONFIG_DEFAULT_RENO is not set CONFIG_DEFAULT_TCP_CONG="cubic" CONFIG_TCP_MD5SIG=y CONFIG_IPV6=y # CONFIG_IPV6_PRIVACY is not set # CONFIG_IPV6_ROUTER_PREF is not set # CONFIG_IPV6_OPTIMISTIC_DAD is not set CONFIG_INET6_AH=y CONFIG_INET6_ESP=y # CONFIG_INET6_IPCOMP is not set # CONFIG_IPV6_MIP6 is not set # CONFIG_INET6_XFRM_TUNNEL is not set # CONFIG_INET6_TUNNEL is not set CONFIG_INET6_XFRM_MODE_TRANSPORT=y CONFIG_INET6_XFRM_MODE_TUNNEL=y CONFIG_INET6_XFRM_MODE_BEET=y # CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set CONFIG_IPV6_SIT=y # CONFIG_IPV6_SIT_6RD is not set CONFIG_IPV6_NDISC_NODETYPE=y # CONFIG_IPV6_TUNNEL is not set # CONFIG_IPV6_MULTIPLE_TABLES is not set # CONFIG_IPV6_MROUTE is not set CONFIG_NETLABEL=y CONFIG_NETWORK_SECMARK=y # CONFIG_NETWORK_PHY_TIMESTAMPING is not set CONFIG_NETFILTER=y # CONFIG_NETFILTER_DEBUG is not set CONFIG_NETFILTER_ADVANCED=y # # Core Netfilter Configuration # CONFIG_NETFILTER_NETLINK=y CONFIG_NETFILTER_NETLINK_QUEUE=y CONFIG_NETFILTER_NETLINK_LOG=y CONFIG_NF_CONNTRACK=y CONFIG_NF_CONNTRACK_MARK=y CONFIG_NF_CONNTRACK_SECMARK=y # CONFIG_NF_CONNTRACK_ZONES is not set # CONFIG_NF_CONNTRACK_EVENTS is not set # CONFIG_NF_CONNTRACK_TIMESTAMP is not set # CONFIG_NF_CT_PROTO_DCCP is not set CONFIG_NF_CT_PROTO_GRE=y # CONFIG_NF_CT_PROTO_SCTP is not set # CONFIG_NF_CT_PROTO_UDPLITE is not set # CONFIG_NF_CONNTRACK_AMANDA is not set CONFIG_NF_CONNTRACK_FTP=y CONFIG_NF_CONNTRACK_H323=y CONFIG_NF_CONNTRACK_IRC=y CONFIG_NF_CONNTRACK_BROADCAST=y CONFIG_NF_CONNTRACK_NETBIOS_NS=y # CONFIG_NF_CONNTRACK_SNMP is not set CONFIG_NF_CONNTRACK_PPTP=y # CONFIG_NF_CONNTRACK_SANE is not set CONFIG_NF_CONNTRACK_SIP=y CONFIG_NF_CONNTRACK_TFTP=y CONFIG_NF_CT_NETLINK=y # CONFIG_NETFILTER_TPROXY is not set CONFIG_NETFILTER_XTABLES=y # # Xtables combined modules # CONFIG_NETFILTER_XT_MARK=y CONFIG_NETFILTER_XT_CONNMARK=y # # Xtables targets # # CONFIG_NETFILTER_XT_TARGET_AUDIT is not set CONFIG_NETFILTER_XT_TARGET_CHECKSUM=y CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y CONFIG_NETFILTER_XT_TARGET_CONNMARK=y CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=y CONFIG_NETFILTER_XT_TARGET_CT=y CONFIG_NETFILTER_XT_TARGET_DSCP=y CONFIG_NETFILTER_XT_TARGET_HL=y CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y CONFIG_NETFILTER_XT_TARGET_LED=y CONFIG_NETFILTER_XT_TARGET_MARK=y CONFIG_NETFILTER_XT_TARGET_NFLOG=y CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y CONFIG_NETFILTER_XT_TARGET_NOTRACK=y CONFIG_NETFILTER_XT_TARGET_RATEEST=y CONFIG_NETFILTER_XT_TARGET_TEE=y CONFIG_NETFILTER_XT_TARGET_TRACE=y CONFIG_NETFILTER_XT_TARGET_SECMARK=y CONFIG_NETFILTER_XT_TARGET_TCPMSS=y CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=y # # Xtables matches # # CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set CONFIG_NETFILTER_XT_MATCH_CLUSTER=y CONFIG_NETFILTER_XT_MATCH_COMMENT=y CONFIG_NETFILTER_XT_MATCH_CONNBYTES=y CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=y CONFIG_NETFILTER_XT_MATCH_CONNMARK=y CONFIG_NETFILTER_XT_MATCH_CONNTRACK=y CONFIG_NETFILTER_XT_MATCH_CPU=y CONFIG_NETFILTER_XT_MATCH_DCCP=y # CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set CONFIG_NETFILTER_XT_MATCH_DSCP=y CONFIG_NETFILTER_XT_MATCH_ESP=y CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=y CONFIG_NETFILTER_XT_MATCH_HELPER=y CONFIG_NETFILTER_XT_MATCH_HL=y CONFIG_NETFILTER_XT_MATCH_IPRANGE=y CONFIG_NETFILTER_XT_MATCH_LENGTH=y CONFIG_NETFILTER_XT_MATCH_LIMIT=y CONFIG_NETFILTER_XT_MATCH_MAC=y CONFIG_NETFILTER_XT_MATCH_MARK=y CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y CONFIG_NETFILTER_XT_MATCH_OSF=y CONFIG_NETFILTER_XT_MATCH_OWNER=y CONFIG_NETFILTER_XT_MATCH_POLICY=y CONFIG_NETFILTER_XT_MATCH_PKTTYPE=y CONFIG_NETFILTER_XT_MATCH_QUOTA=y CONFIG_NETFILTER_XT_MATCH_RATEEST=y CONFIG_NETFILTER_XT_MATCH_REALM=y CONFIG_NETFILTER_XT_MATCH_RECENT=y CONFIG_NETFILTER_XT_MATCH_SCTP=y CONFIG_NETFILTER_XT_MATCH_STATE=y CONFIG_NETFILTER_XT_MATCH_STATISTIC=y CONFIG_NETFILTER_XT_MATCH_STRING=y CONFIG_NETFILTER_XT_MATCH_TCPMSS=y CONFIG_NETFILTER_XT_MATCH_TIME=y CONFIG_NETFILTER_XT_MATCH_U32=y # CONFIG_IP_SET is not set # CONFIG_IP_VS is not set # # IP: Netfilter Configuration # CONFIG_NF_DEFRAG_IPV4=y CONFIG_NF_CONNTRACK_IPV4=y CONFIG_NF_CONNTRACK_PROC_COMPAT=y # CONFIG_IP_NF_QUEUE is not set CONFIG_IP_NF_IPTABLES=y CONFIG_IP_NF_MATCH_AH=y CONFIG_IP_NF_MATCH_ECN=y CONFIG_IP_NF_MATCH_TTL=y CONFIG_IP_NF_FILTER=y CONFIG_IP_NF_TARGET_REJECT=y CONFIG_IP_NF_TARGET_LOG=y CONFIG_IP_NF_TARGET_ULOG=y CONFIG_NF_NAT=y CONFIG_NF_NAT_NEEDED=y CONFIG_IP_NF_TARGET_MASQUERADE=y CONFIG_IP_NF_TARGET_NETMAP=y CONFIG_IP_NF_TARGET_REDIRECT=y CONFIG_NF_NAT_PROTO_GRE=y CONFIG_NF_NAT_FTP=y CONFIG_NF_NAT_IRC=y CONFIG_NF_NAT_TFTP=y # CONFIG_NF_NAT_AMANDA is not set CONFIG_NF_NAT_PPTP=y CONFIG_NF_NAT_H323=y CONFIG_NF_NAT_SIP=y CONFIG_IP_NF_MANGLE=y CONFIG_IP_NF_TARGET_CLUSTERIP=y CONFIG_IP_NF_TARGET_ECN=y CONFIG_IP_NF_TARGET_TTL=y CONFIG_IP_NF_RAW=y CONFIG_IP_NF_SECURITY=y CONFIG_IP_NF_ARPTABLES=y CONFIG_IP_NF_ARPFILTER=y CONFIG_IP_NF_ARP_MANGLE=y # # IPv6: Netfilter Configuration # # CONFIG_NF_DEFRAG_IPV6 is not set # CONFIG_NF_CONNTRACK_IPV6 is not set # CONFIG_IP6_NF_QUEUE is not set # CONFIG_IP6_NF_IPTABLES is not set # CONFIG_IP_DCCP is not set # CONFIG_IP_SCTP is not set # CONFIG_RDS is not set # CONFIG_TIPC is not set # CONFIG_ATM is not set # CONFIG_L2TP is not set # CONFIG_BRIDGE is not set # CONFIG_NET_DSA is not set # CONFIG_VLAN_8021Q is not set # CONFIG_DECNET is not set # CONFIG_LLC2 is not set # CONFIG_IPX is not set # CONFIG_ATALK is not set # CONFIG_X25 is not set # CONFIG_LAPB is not set # CONFIG_ECONET is not set # CONFIG_WAN_ROUTER is not set # CONFIG_PHONET is not set # CONFIG_IEEE802154 is not set CONFIG_NET_SCHED=y # # Queueing/Scheduling # # CONFIG_NET_SCH_CBQ is not set # CONFIG_NET_SCH_HTB is not set # CONFIG_NET_SCH_HFSC is not set # CONFIG_NET_SCH_PRIO is not set # CONFIG_NET_SCH_MULTIQ is not set # CONFIG_NET_SCH_RED is not set # CONFIG_NET_SCH_SFB is not set # CONFIG_NET_SCH_SFQ is not set # CONFIG_NET_SCH_TEQL is not set # CONFIG_NET_SCH_TBF is not set # CONFIG_NET_SCH_GRED is not set # CONFIG_NET_SCH_DSMARK is not set # CONFIG_NET_SCH_NETEM is not set # CONFIG_NET_SCH_DRR is not set # CONFIG_NET_SCH_MQPRIO is not set # CONFIG_NET_SCH_CHOKE is not set # CONFIG_NET_SCH_QFQ is not set # CONFIG_NET_SCH_INGRESS is not set # # Classification # CONFIG_NET_CLS=y # CONFIG_NET_CLS_BASIC is not set # CONFIG_NET_CLS_TCINDEX is not set # CONFIG_NET_CLS_ROUTE4 is not set # CONFIG_NET_CLS_FW is not set # CONFIG_NET_CLS_U32 is not set # CONFIG_NET_CLS_RSVP is not set # CONFIG_NET_CLS_RSVP6 is not set # CONFIG_NET_CLS_FLOW is not set # CONFIG_NET_CLS_CGROUP is not set CONFIG_NET_EMATCH=y CONFIG_NET_EMATCH_STACK=32 # CONFIG_NET_EMATCH_CMP is not set # CONFIG_NET_EMATCH_NBYTE is not set # CONFIG_NET_EMATCH_U32 is not set # CONFIG_NET_EMATCH_META is not set # CONFIG_NET_EMATCH_TEXT is not set CONFIG_NET_CLS_ACT=y # CONFIG_NET_ACT_POLICE is not set # CONFIG_NET_ACT_GACT is not set # CONFIG_NET_ACT_MIRRED is not set # CONFIG_NET_ACT_IPT is not set # CONFIG_NET_ACT_NAT is not set # CONFIG_NET_ACT_PEDIT is not set # CONFIG_NET_ACT_SIMP is not set # CONFIG_NET_ACT_SKBEDIT is not set # CONFIG_NET_ACT_CSUM is not set CONFIG_NET_SCH_FIFO=y # CONFIG_DCB is not set CONFIG_DNS_RESOLVER=y # CONFIG_BATMAN_ADV is not set CONFIG_RPS=y CONFIG_RFS_ACCEL=y CONFIG_XPS=y # # Network testing # # CONFIG_NET_PKTGEN is not set # CONFIG_NET_TCPPROBE is not set # CONFIG_NET_DROP_MONITOR is not set CONFIG_HAMRADIO=y # # Packet Radio protocols # # CONFIG_AX25 is not set # CONFIG_CAN is not set # CONFIG_IRDA is not set # CONFIG_BT is not set # CONFIG_AF_RXRPC is not set CONFIG_FIB_RULES=y CONFIG_WIRELESS=y CONFIG_WEXT_CORE=y CONFIG_WEXT_PROC=y CONFIG_CFG80211=y # CONFIG_NL80211_TESTMODE is not set # CONFIG_CFG80211_DEVELOPER_WARNINGS is not set # CONFIG_CFG80211_REG_DEBUG is not set CONFIG_CFG80211_DEFAULT_PS=y # CONFIG_CFG80211_DEBUGFS is not set # CONFIG_CFG80211_INTERNAL_REGDB is not set CONFIG_CFG80211_WEXT=y CONFIG_WIRELESS_EXT_SYSFS=y # CONFIG_LIB80211 is not set CONFIG_MAC80211=y CONFIG_MAC80211_HAS_RC=y CONFIG_MAC80211_RC_MINSTREL=y CONFIG_MAC80211_RC_MINSTREL_HT=y CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y CONFIG_MAC80211_RC_DEFAULT="minstrel_ht" # CONFIG_MAC80211_MESH is not set CONFIG_MAC80211_LEDS=y # CONFIG_MAC80211_DEBUGFS is not set # CONFIG_MAC80211_DEBUG_MENU is not set # CONFIG_WIMAX is not set CONFIG_RFKILL=y CONFIG_RFKILL_LEDS=y CONFIG_RFKILL_INPUT=y # CONFIG_NET_9P is not set # CONFIG_CAIF is not set # CONFIG_CEPH_LIB is not set # CONFIG_NFC is not set # # Device Drivers # # # Generic Driver Options # CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" # CONFIG_DEVTMPFS is not set CONFIG_STANDALONE=y CONFIG_PREVENT_FIRMWARE_BUILD=y CONFIG_FW_LOADER=y CONFIG_FIRMWARE_IN_KERNEL=y CONFIG_EXTRA_FIRMWARE="" # CONFIG_DEBUG_DRIVER is not set CONFIG_DEBUG_DEVRES=y # CONFIG_SYS_HYPERVISOR is not set CONFIG_CONNECTOR=y CONFIG_PROC_EVENTS=y # CONFIG_MTD is not set # CONFIG_PARPORT is not set CONFIG_PNP=y CONFIG_PNP_DEBUG_MESSAGES=y # # Protocols # CONFIG_PNPACPI=y CONFIG_BLK_DEV=y # CONFIG_BLK_DEV_FD is not set # CONFIG_BLK_CPQ_DA is not set # CONFIG_BLK_CPQ_CISS_DA is not set # CONFIG_BLK_DEV_DAC960 is not set # CONFIG_BLK_DEV_UMEM is not set # CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_CRYPTOLOOP=y # CONFIG_BLK_DEV_DRBD is not set # CONFIG_BLK_DEV_NBD is not set # CONFIG_BLK_DEV_SX8 is not set # CONFIG_BLK_DEV_UB is not set # CONFIG_BLK_DEV_RAM is not set # CONFIG_CDROM_PKTCDVD is not set # CONFIG_ATA_OVER_ETH is not set # CONFIG_BLK_DEV_HD is not set # CONFIG_BLK_DEV_RBD is not set # CONFIG_SENSORS_LIS3LV02D is not set # CONFIG_MISC_DEVICES is not set CONFIG_HAVE_IDE=y # CONFIG_IDE is not set # # SCSI device support # CONFIG_SCSI_MOD=y # CONFIG_RAID_ATTRS is not set CONFIG_SCSI=y CONFIG_SCSI_DMA=y # CONFIG_SCSI_TGT is not set # CONFIG_SCSI_NETLINK is not set CONFIG_SCSI_PROC_FS=y # # SCSI support type (disk, tape, CD-ROM) # CONFIG_BLK_DEV_SD=y # CONFIG_CHR_DEV_ST is not set # CONFIG_CHR_DEV_OSST is not set CONFIG_BLK_DEV_SR=y CONFIG_BLK_DEV_SR_VENDOR=y CONFIG_CHR_DEV_SG=y # CONFIG_CHR_DEV_SCH is not set # CONFIG_SCSI_MULTI_LUN is not set CONFIG_SCSI_CONSTANTS=y # CONFIG_SCSI_LOGGING is not set # CONFIG_SCSI_SCAN_ASYNC is not set CONFIG_SCSI_WAIT_SCAN=m # # SCSI Transports # CONFIG_SCSI_SPI_ATTRS=y # CONFIG_SCSI_FC_ATTRS is not set # CONFIG_SCSI_ISCSI_ATTRS is not set # CONFIG_SCSI_SAS_ATTRS is not set # CONFIG_SCSI_SAS_LIBSAS is not set # CONFIG_SCSI_SRP_ATTRS is not set # CONFIG_SCSI_LOWLEVEL is not set # CONFIG_SCSI_LOWLEVEL_PCMCIA is not set # CONFIG_SCSI_DH is not set # CONFIG_SCSI_OSD_INITIATOR is not set CONFIG_ATA=y # CONFIG_ATA_NONSTANDARD is not set CONFIG_ATA_VERBOSE_ERROR=y CONFIG_ATA_ACPI=y CONFIG_SATA_PMP=y # # Controllers with non-SFF native interface # CONFIG_SATA_AHCI=y # CONFIG_SATA_AHCI_PLATFORM is not set # CONFIG_SATA_INIC162X is not set # CONFIG_SATA_ACARD_AHCI is not set # CONFIG_SATA_SIL24 is not set CONFIG_ATA_SFF=y # # SFF controllers with custom DMA interface # # CONFIG_PDC_ADMA is not set # CONFIG_SATA_QSTOR is not set # CONFIG_SATA_SX4 is not set CONFIG_ATA_BMDMA=y # # SATA SFF controllers with BMDMA # CONFIG_ATA_PIIX=y # CONFIG_SATA_MV is not set # CONFIG_SATA_NV is not set # CONFIG_SATA_PROMISE is not set # CONFIG_SATA_SIL is not set # CONFIG_SATA_SIS is not set # CONFIG_SATA_SVW is not set # CONFIG_SATA_ULI is not set # CONFIG_SATA_VIA is not set # CONFIG_SATA_VITESSE is not set # # PATA SFF controllers with BMDMA # # CONFIG_PATA_ALI is not set CONFIG_PATA_AMD=y # CONFIG_PATA_ARASAN_CF is not set # CONFIG_PATA_ARTOP is not set # CONFIG_PATA_ATIIXP is not set # CONFIG_PATA_ATP867X is not set # CONFIG_PATA_CMD64X is not set # CONFIG_PATA_CS5520 is not set # CONFIG_PATA_CS5530 is not set # CONFIG_PATA_CS5535 is not set # CONFIG_PATA_CS5536 is not set # CONFIG_PATA_CYPRESS is not set # CONFIG_PATA_EFAR is not set # CONFIG_PATA_HPT366 is not set # CONFIG_PATA_HPT37X is not set # CONFIG_PATA_HPT3X2N is not set # CONFIG_PATA_HPT3X3 is not set # CONFIG_PATA_IT8213 is not set # CONFIG_PATA_IT821X is not set # CONFIG_PATA_JMICRON is not set # CONFIG_PATA_MARVELL is not set # CONFIG_PATA_NETCELL is not set # CONFIG_PATA_NINJA32 is not set # CONFIG_PATA_NS87415 is not set CONFIG_PATA_OLDPIIX=y # CONFIG_PATA_OPTIDMA is not set # CONFIG_PATA_PDC2027X is not set # CONFIG_PATA_PDC_OLD is not set # CONFIG_PATA_RADISYS is not set # CONFIG_PATA_RDC is not set # CONFIG_PATA_SC1200 is not set CONFIG_PATA_SCH=y # CONFIG_PATA_SERVERWORKS is not set # CONFIG_PATA_SIL680 is not set # CONFIG_PATA_SIS is not set # CONFIG_PATA_TOSHIBA is not set # CONFIG_PATA_TRIFLEX is not set # CONFIG_PATA_VIA is not set # CONFIG_PATA_WINBOND is not set # # PIO-only SFF controllers # # CONFIG_PATA_CMD640_PCI is not set CONFIG_PATA_MPIIX=y # CONFIG_PATA_NS87410 is not set # CONFIG_PATA_OPTI is not set # CONFIG_PATA_PCMCIA is not set # CONFIG_PATA_RZ1000 is not set # # Generic fallback / legacy drivers # # CONFIG_PATA_ACPI is not set CONFIG_ATA_GENERIC=y # CONFIG_PATA_LEGACY is not set CONFIG_MD=y # CONFIG_BLK_DEV_MD is not set CONFIG_BLK_DEV_DM=y # CONFIG_DM_DEBUG is not set CONFIG_DM_CRYPT=y # CONFIG_DM_SNAPSHOT is not set CONFIG_DM_MIRROR=y # CONFIG_DM_RAID is not set # CONFIG_DM_LOG_USERSPACE is not set CONFIG_DM_ZERO=y # CONFIG_DM_MULTIPATH is not set # CONFIG_DM_DELAY is not set # CONFIG_DM_UEVENT is not set # CONFIG_DM_FLAKEY is not set # CONFIG_TARGET_CORE is not set # CONFIG_FUSION is not set # # IEEE 1394 (FireWire) support # # CONFIG_FIREWIRE is not set # CONFIG_FIREWIRE_NOSY is not set # CONFIG_I2O is not set # CONFIG_MACINTOSH_DRIVERS is not set CONFIG_NETDEVICES=y # CONFIG_IFB is not set # CONFIG_DUMMY is not set # CONFIG_BONDING is not set # CONFIG_MACVLAN is not set # CONFIG_EQUALIZER is not set CONFIG_TUN=y # CONFIG_VETH is not set # CONFIG_NET_SB1000 is not set # CONFIG_ARCNET is not set CONFIG_MII=y CONFIG_PHYLIB=y # # MII PHY device drivers # # CONFIG_MARVELL_PHY is not set # CONFIG_DAVICOM_PHY is not set # CONFIG_QSEMI_PHY is not set # CONFIG_LXT_PHY is not set # CONFIG_CICADA_PHY is not set # CONFIG_VITESSE_PHY is not set # CONFIG_SMSC_PHY is not set # CONFIG_BROADCOM_PHY is not set # CONFIG_ICPLUS_PHY is not set # CONFIG_REALTEK_PHY is not set # CONFIG_NATIONAL_PHY is not set # CONFIG_STE10XP is not set # CONFIG_LSI_ET1011C_PHY is not set # CONFIG_MICREL_PHY is not set # CONFIG_FIXED_PHY is not set # CONFIG_MDIO_BITBANG is not set # CONFIG_NET_ETHERNET is not set CONFIG_NETDEV_1000=y # CONFIG_ACENIC is not set # CONFIG_DL2K is not set CONFIG_E1000=y CONFIG_E1000E=y # CONFIG_IP1000 is not set CONFIG_IGB=y CONFIG_IGBVF=y # CONFIG_NS83820 is not set # CONFIG_HAMACHI is not set # CONFIG_YELLOWFIN is not set # CONFIG_R8169 is not set # CONFIG_SIS190 is not set # CONFIG_SKGE is not set # CONFIG_SKY2 is not set # CONFIG_VIA_VELOCITY is not set # CONFIG_TIGON3 is not set # CONFIG_BNX2 is not set # CONFIG_CNIC is not set # CONFIG_QLA3XXX is not set # CONFIG_ATL1 is not set # CONFIG_ATL1E is not set # CONFIG_ATL1C is not set # CONFIG_JME is not set # CONFIG_STMMAC_ETH is not set # CONFIG_PCH_GBE is not set # CONFIG_NETDEV_10000 is not set # CONFIG_TR is not set CONFIG_WLAN=y # CONFIG_PCMCIA_RAYCS is not set # CONFIG_LIBERTAS_THINFIRM is not set # CONFIG_AIRO is not set # CONFIG_ATMEL is not set # CONFIG_AT76C50X_USB is not set # CONFIG_AIRO_CS is not set # CONFIG_PCMCIA_WL3501 is not set # CONFIG_PRISM54 is not set # CONFIG_USB_ZD1201 is not set # CONFIG_USB_NET_RNDIS_WLAN is not set # CONFIG_RTL8180 is not set # CONFIG_RTL8187 is not set # CONFIG_ADM8211 is not set # CONFIG_MAC80211_HWSIM is not set # CONFIG_MWL8K is not set # CONFIG_ATH_COMMON is not set # CONFIG_B43 is not set # CONFIG_B43LEGACY is not set # CONFIG_HOSTAP is not set # CONFIG_IPW2100 is not set # CONFIG_IPW2200 is not set # CONFIG_IWLAGN is not set CONFIG_IWLWIFI_LEGACY=y # # Debugging Options # # CONFIG_IWLWIFI_LEGACY_DEBUG is not set # CONFIG_IWLWIFI_LEGACY_DEVICE_TRACING is not set CONFIG_IWL4965=y # CONFIG_IWL3945 is not set # CONFIG_LIBERTAS is not set # CONFIG_HERMES is not set # CONFIG_P54_COMMON is not set # CONFIG_RT2X00 is not set # CONFIG_RTL8192CE is not set # CONFIG_RTL8192SE is not set # CONFIG_RTL8192DE is not set # CONFIG_RTL8192CU is not set # CONFIG_WL1251 is not set # CONFIG_WL12XX_MENU is not set # CONFIG_ZD1211RW is not set # CONFIG_MWIFIEX is not set # # Enable WiMAX (Networking options) to see the WiMAX drivers # # # USB Network Adapters # # CONFIG_USB_CATC is not set # CONFIG_USB_KAWETH is not set # CONFIG_USB_PEGASUS is not set # CONFIG_USB_RTL8150 is not set # CONFIG_USB_USBNET is not set # CONFIG_USB_HSO is not set # CONFIG_USB_IPHETH is not set # CONFIG_NET_PCMCIA is not set # CONFIG_WAN is not set # # CAIF transport drivers # # CONFIG_FDDI is not set # CONFIG_HIPPI is not set # CONFIG_PPP is not set # CONFIG_SLIP is not set # CONFIG_NET_FC is not set CONFIG_NETCONSOLE=m CONFIG_NETCONSOLE_DYNAMIC=y CONFIG_NETPOLL=y # CONFIG_NETPOLL_TRAP is not set CONFIG_NET_POLL_CONTROLLER=y # CONFIG_VMXNET3 is not set # CONFIG_ISDN is not set # CONFIG_PHONE is not set # # Input device support # CONFIG_INPUT=y CONFIG_INPUT_FF_MEMLESS=y CONFIG_INPUT_POLLDEV=y CONFIG_INPUT_SPARSEKMAP=y # # Userland interfaces # CONFIG_INPUT_MOUSEDEV=y # CONFIG_INPUT_MOUSEDEV_PSAUX is not set CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 # CONFIG_INPUT_JOYDEV is not set CONFIG_INPUT_EVDEV=y # CONFIG_INPUT_EVBUG is not set # # Input Device Drivers # CONFIG_INPUT_KEYBOARD=y # CONFIG_KEYBOARD_ADP5588 is not set # CONFIG_KEYBOARD_ADP5589 is not set CONFIG_KEYBOARD_ATKBD=y # CONFIG_KEYBOARD_QT1070 is not set # CONFIG_KEYBOARD_QT2160 is not set # CONFIG_KEYBOARD_LKKBD is not set # CONFIG_KEYBOARD_TCA6416 is not set # CONFIG_KEYBOARD_LM8323 is not set # CONFIG_KEYBOARD_MAX7359 is not set # CONFIG_KEYBOARD_MCS is not set # CONFIG_KEYBOARD_MPR121 is not set # CONFIG_KEYBOARD_NEWTON is not set # CONFIG_KEYBOARD_OPENCORES is not set # CONFIG_KEYBOARD_STOWAWAY is not set # CONFIG_KEYBOARD_SUNKBD is not set # CONFIG_KEYBOARD_XTKBD is not set CONFIG_INPUT_MOUSE=y CONFIG_MOUSE_PS2=y CONFIG_MOUSE_PS2_ALPS=y CONFIG_MOUSE_PS2_LOGIPS2PP=y CONFIG_MOUSE_PS2_SYNAPTICS=y CONFIG_MOUSE_PS2_LIFEBOOK=y CONFIG_MOUSE_PS2_TRACKPOINT=y # CONFIG_MOUSE_PS2_ELANTECH is not set # CONFIG_MOUSE_PS2_SENTELIC is not set # CONFIG_MOUSE_PS2_TOUCHKIT is not set # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_APPLETOUCH is not set # CONFIG_MOUSE_BCM5974 is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_MOUSE_SYNAPTICS_I2C is not set # CONFIG_INPUT_JOYSTICK is not set # CONFIG_INPUT_TABLET is not set # CONFIG_INPUT_TOUCHSCREEN is not set # CONFIG_INPUT_MISC is not set # # Hardware I/O ports # CONFIG_SERIO=y CONFIG_SERIO_I8042=y CONFIG_SERIO_SERPORT=y # CONFIG_SERIO_CT82C710 is not set # CONFIG_SERIO_PCIPS2 is not set CONFIG_SERIO_LIBPS2=y # CONFIG_SERIO_RAW is not set # CONFIG_SERIO_ALTERA_PS2 is not set # CONFIG_SERIO_PS2MULT is not set # CONFIG_GAMEPORT is not set # # Character devices # CONFIG_VT=y CONFIG_CONSOLE_TRANSLATIONS=y CONFIG_VT_CONSOLE=y CONFIG_HW_CONSOLE=y CONFIG_VT_HW_CONSOLE_BINDING=y CONFIG_UNIX98_PTYS=y # CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set # CONFIG_LEGACY_PTYS is not set # CONFIG_SERIAL_NONSTANDARD is not set # CONFIG_NOZOMI is not set # CONFIG_N_GSM is not set # CONFIG_TRACE_SINK is not set # CONFIG_DEVKMEM is not set # # Serial drivers # CONFIG_SERIAL_8250=y CONFIG_SERIAL_8250_CONSOLE=y CONFIG_FIX_EARLYCON_MEM=y CONFIG_SERIAL_8250_PCI=y CONFIG_SERIAL_8250_PNP=y # CONFIG_SERIAL_8250_CS is not set CONFIG_SERIAL_8250_NR_UARTS=32 CONFIG_SERIAL_8250_RUNTIME_UARTS=4 CONFIG_SERIAL_8250_EXTENDED=y CONFIG_SERIAL_8250_MANY_PORTS=y CONFIG_SERIAL_8250_SHARE_IRQ=y CONFIG_SERIAL_8250_DETECT_IRQ=y CONFIG_SERIAL_8250_RSA=y # # Non-8250 serial port support # # CONFIG_SERIAL_MFD_HSU is not set CONFIG_SERIAL_CORE=y CONFIG_SERIAL_CORE_CONSOLE=y # CONFIG_SERIAL_JSM is not set # CONFIG_SERIAL_TIMBERDALE is not set # CONFIG_SERIAL_ALTERA_JTAGUART is not set # CONFIG_SERIAL_ALTERA_UART is not set # CONFIG_SERIAL_PCH_UART is not set # CONFIG_SERIAL_XILINX_PS_UART is not set # CONFIG_IPMI_HANDLER is not set CONFIG_HW_RANDOM=y # CONFIG_HW_RANDOM_TIMERIOMEM is not set CONFIG_HW_RANDOM_INTEL=y CONFIG_HW_RANDOM_AMD=y CONFIG_HW_RANDOM_GEODE=y CONFIG_HW_RANDOM_VIA=y CONFIG_NVRAM=y # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set # CONFIG_SONYPI is not set # # PCMCIA character devices # # CONFIG_SYNCLINK_CS is not set # CONFIG_CARDMAN_4000 is not set # CONFIG_CARDMAN_4040 is not set # CONFIG_IPWIRELESS is not set # CONFIG_MWAVE is not set # CONFIG_PC8736x_GPIO is not set # CONFIG_NSC_GPIO is not set # CONFIG_RAW_DRIVER is not set CONFIG_HPET=y # CONFIG_HPET_MMAP is not set # CONFIG_HANGCHECK_TIMER is not set # CONFIG_TCG_TPM is not set # CONFIG_TELCLOCK is not set CONFIG_DEVPORT=y # CONFIG_RAMOOPS is not set CONFIG_I2C=y CONFIG_I2C_BOARDINFO=y CONFIG_I2C_COMPAT=y # CONFIG_I2C_CHARDEV is not set # CONFIG_I2C_MUX is not set CONFIG_I2C_HELPER_AUTO=y CONFIG_I2C_ALGOBIT=y # # I2C Hardware Bus support # # # PC SMBus host controller drivers # # CONFIG_I2C_ALI1535 is not set # CONFIG_I2C_ALI1563 is not set # CONFIG_I2C_ALI15X3 is not set # CONFIG_I2C_AMD756 is not set # CONFIG_I2C_AMD8111 is not set CONFIG_I2C_I801=y # CONFIG_I2C_ISCH is not set # CONFIG_I2C_PIIX4 is not set # CONFIG_I2C_NFORCE2 is not set # CONFIG_I2C_SIS5595 is not set # CONFIG_I2C_SIS630 is not set # CONFIG_I2C_SIS96X is not set # CONFIG_I2C_VIA is not set # CONFIG_I2C_VIAPRO is not set # # ACPI drivers # # CONFIG_I2C_SCMI is not set # # I2C system bus drivers (mostly embedded / system-on-chip) # # CONFIG_I2C_INTEL_MID is not set # CONFIG_I2C_OCORES is not set # CONFIG_I2C_PCA_PLATFORM is not set # CONFIG_I2C_PXA_PCI is not set # CONFIG_I2C_SIMTEC is not set # CONFIG_I2C_XILINX is not set # CONFIG_I2C_EG20T is not set # # External I2C/SMBus adapter drivers # # CONFIG_I2C_DIOLAN_U2C is not set # CONFIG_I2C_PARPORT_LIGHT is not set # CONFIG_I2C_TAOS_EVM is not set # CONFIG_I2C_TINY_USB is not set # # Other I2C/SMBus bus drivers # # CONFIG_I2C_STUB is not set # CONFIG_SCx200_ACB is not set # CONFIG_I2C_DEBUG_CORE is not set # CONFIG_I2C_DEBUG_ALGO is not set # CONFIG_I2C_DEBUG_BUS is not set # CONFIG_SPI is not set # # PPS support # # CONFIG_PPS is not set # # PPS generators support # # # PTP clock support # # # Enable Device Drivers -> PPS to see the PTP clock options. # CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y # CONFIG_GPIOLIB is not set # CONFIG_W1 is not set CONFIG_POWER_SUPPLY=y # CONFIG_POWER_SUPPLY_DEBUG is not set # CONFIG_PDA_POWER is not set # CONFIG_TEST_POWER is not set # CONFIG_BATTERY_DS2780 is not set # CONFIG_BATTERY_DS2782 is not set # CONFIG_BATTERY_BQ20Z75 is not set # CONFIG_BATTERY_BQ27x00 is not set # CONFIG_BATTERY_MAX17040 is not set # CONFIG_BATTERY_MAX17042 is not set # CONFIG_CHARGER_MAX8903 is not set CONFIG_HWMON=y # CONFIG_HWMON_VID is not set # CONFIG_HWMON_DEBUG_CHIP is not set # # Native drivers # # CONFIG_SENSORS_ABITUGURU is not set # CONFIG_SENSORS_ABITUGURU3 is not set # CONFIG_SENSORS_AD7414 is not set # CONFIG_SENSORS_AD7418 is not set # CONFIG_SENSORS_ADM1021 is not set # CONFIG_SENSORS_ADM1025 is not set # CONFIG_SENSORS_ADM1026 is not set # CONFIG_SENSORS_ADM1029 is not set # CONFIG_SENSORS_ADM1031 is not set # CONFIG_SENSORS_ADM9240 is not set # CONFIG_SENSORS_ADT7411 is not set # CONFIG_SENSORS_ADT7462 is not set # CONFIG_SENSORS_ADT7470 is not set # CONFIG_SENSORS_ADT7475 is not set # CONFIG_SENSORS_ASC7621 is not set # CONFIG_SENSORS_K8TEMP is not set # CONFIG_SENSORS_K10TEMP is not set # CONFIG_SENSORS_FAM15H_POWER is not set # CONFIG_SENSORS_ASB100 is not set # CONFIG_SENSORS_ATXP1 is not set # CONFIG_SENSORS_DS620 is not set # CONFIG_SENSORS_DS1621 is not set # CONFIG_SENSORS_I5K_AMB is not set # CONFIG_SENSORS_F71805F is not set # CONFIG_SENSORS_F71882FG is not set # CONFIG_SENSORS_F75375S is not set # CONFIG_SENSORS_FSCHMD is not set # CONFIG_SENSORS_G760A is not set # CONFIG_SENSORS_GL518SM is not set # CONFIG_SENSORS_GL520SM is not set # CONFIG_SENSORS_CORETEMP is not set # CONFIG_SENSORS_IT87 is not set # CONFIG_SENSORS_JC42 is not set # CONFIG_SENSORS_LINEAGE is not set # CONFIG_SENSORS_LM63 is not set # CONFIG_SENSORS_LM73 is not set # CONFIG_SENSORS_LM75 is not set # CONFIG_SENSORS_LM77 is not set # CONFIG_SENSORS_LM78 is not set # CONFIG_SENSORS_LM80 is not set # CONFIG_SENSORS_LM83 is not set # CONFIG_SENSORS_LM85 is not set # CONFIG_SENSORS_LM87 is not set # CONFIG_SENSORS_LM90 is not set # CONFIG_SENSORS_LM92 is not set # CONFIG_SENSORS_LM93 is not set # CONFIG_SENSORS_LTC4151 is not set # CONFIG_SENSORS_LTC4215 is not set # CONFIG_SENSORS_LTC4245 is not set # CONFIG_SENSORS_LTC4261 is not set # CONFIG_SENSORS_LM95241 is not set # CONFIG_SENSORS_MAX16065 is not set # CONFIG_SENSORS_MAX1619 is not set # CONFIG_SENSORS_MAX6639 is not set # CONFIG_SENSORS_MAX6642 is not set # CONFIG_SENSORS_MAX6650 is not set # CONFIG_SENSORS_PC87360 is not set # CONFIG_SENSORS_PC87427 is not set # CONFIG_SENSORS_PCF8591 is not set # CONFIG_PMBUS is not set # CONFIG_SENSORS_SHT21 is not set # CONFIG_SENSORS_SIS5595 is not set # CONFIG_SENSORS_SMM665 is not set # CONFIG_SENSORS_DME1737 is not set # CONFIG_SENSORS_EMC1403 is not set # CONFIG_SENSORS_EMC2103 is not set # CONFIG_SENSORS_EMC6W201 is not set # CONFIG_SENSORS_SMSC47M1 is not set # CONFIG_SENSORS_SMSC47M192 is not set # CONFIG_SENSORS_SMSC47B397 is not set # CONFIG_SENSORS_SCH56XX_COMMON is not set # CONFIG_SENSORS_SCH5627 is not set # CONFIG_SENSORS_SCH5636 is not set # CONFIG_SENSORS_ADS1015 is not set # CONFIG_SENSORS_ADS7828 is not set # CONFIG_SENSORS_AMC6821 is not set # CONFIG_SENSORS_THMC50 is not set # CONFIG_SENSORS_TMP102 is not set # CONFIG_SENSORS_TMP401 is not set # CONFIG_SENSORS_TMP421 is not set # CONFIG_SENSORS_VIA_CPUTEMP is not set # CONFIG_SENSORS_VIA686A is not set # CONFIG_SENSORS_VT1211 is not set # CONFIG_SENSORS_VT8231 is not set # CONFIG_SENSORS_W83781D is not set # CONFIG_SENSORS_W83791D is not set # CONFIG_SENSORS_W83792D is not set # CONFIG_SENSORS_W83793 is not set # CONFIG_SENSORS_W83795 is not set # CONFIG_SENSORS_W83L785TS is not set # CONFIG_SENSORS_W83L786NG is not set # CONFIG_SENSORS_W83627HF is not set # CONFIG_SENSORS_W83627EHF is not set # CONFIG_SENSORS_APPLESMC is not set # # ACPI drivers # # CONFIG_SENSORS_ACPI_POWER is not set # CONFIG_SENSORS_ATK0110 is not set CONFIG_THERMAL=y # CONFIG_THERMAL_HWMON is not set CONFIG_WATCHDOG=y # CONFIG_WATCHDOG_NOWAYOUT is not set # # Watchdog Device Drivers # # CONFIG_SOFT_WATCHDOG is not set # CONFIG_ACQUIRE_WDT is not set # CONFIG_ADVANTECH_WDT is not set # CONFIG_ALIM1535_WDT is not set # CONFIG_ALIM7101_WDT is not set # CONFIG_F71808E_WDT is not set # CONFIG_SP5100_TCO is not set # CONFIG_SC520_WDT is not set # CONFIG_SBC_FITPC2_WATCHDOG is not set # CONFIG_EUROTECH_WDT is not set # CONFIG_IB700_WDT is not set # CONFIG_IBMASR is not set # CONFIG_WAFER_WDT is not set # CONFIG_I6300ESB_WDT is not set # CONFIG_ITCO_WDT is not set # CONFIG_IT8712F_WDT is not set # CONFIG_IT87_WDT is not set # CONFIG_HP_WATCHDOG is not set # CONFIG_SC1200_WDT is not set # CONFIG_PC87413_WDT is not set # CONFIG_NV_TCO is not set # CONFIG_60XX_WDT is not set # CONFIG_SBC8360_WDT is not set # CONFIG_SBC7240_WDT is not set # CONFIG_CPU5_WDT is not set # CONFIG_SMSC_SCH311X_WDT is not set # CONFIG_SMSC37B787_WDT is not set # CONFIG_W83627HF_WDT is not set # CONFIG_W83697HF_WDT is not set # CONFIG_W83697UG_WDT is not set # CONFIG_W83877F_WDT is not set # CONFIG_W83977F_WDT is not set # CONFIG_MACHZ_WDT is not set # CONFIG_SBC_EPX_C3_WATCHDOG is not set # # PCI-based Watchdog Cards # # CONFIG_PCIPCWATCHDOG is not set # CONFIG_WDTPCI is not set # # USB-based Watchdog Cards # # CONFIG_USBPCWATCHDOG is not set CONFIG_SSB_POSSIBLE=y # # Sonics Silicon Backplane # # CONFIG_SSB is not set CONFIG_BCMA_POSSIBLE=y # # Broadcom specific AMBA # # CONFIG_BCMA is not set CONFIG_MFD_SUPPORT=y # CONFIG_MFD_CORE is not set # CONFIG_MFD_88PM860X is not set # CONFIG_MFD_SM501 is not set # CONFIG_HTC_PASIC3 is not set # CONFIG_TPS6105X is not set # CONFIG_TPS6507X is not set # CONFIG_TWL4030_CORE is not set # CONFIG_MFD_STMPE is not set # CONFIG_MFD_TC3589X is not set # CONFIG_MFD_TMIO is not set # CONFIG_PMIC_DA903X is not set # CONFIG_PMIC_ADP5520 is not set # CONFIG_MFD_MAX8925 is not set # CONFIG_MFD_MAX8997 is not set # CONFIG_MFD_MAX8998 is not set # CONFIG_MFD_WM8400 is not set # CONFIG_MFD_WM831X_I2C is not set # CONFIG_MFD_WM8350_I2C is not set # CONFIG_MFD_WM8994 is not set # CONFIG_MFD_PCF50633 is not set # CONFIG_ABX500_CORE is not set # CONFIG_MFD_CS5535 is not set # CONFIG_LPC_SCH is not set # CONFIG_MFD_RDC321X is not set # CONFIG_MFD_JANZ_CMODIO is not set # CONFIG_MFD_VX855 is not set # CONFIG_MFD_WL1273_CORE is not set # CONFIG_REGULATOR is not set CONFIG_MEDIA_SUPPORT=y # # Multimedia core support # # CONFIG_MEDIA_CONTROLLER is not set CONFIG_VIDEO_DEV=y CONFIG_VIDEO_V4L2_COMMON=y # CONFIG_DVB_CORE is not set CONFIG_VIDEO_MEDIA=y # # Multimedia drivers # # CONFIG_RC_CORE is not set # CONFIG_MEDIA_ATTACH is not set CONFIG_MEDIA_TUNER=y # CONFIG_MEDIA_TUNER_CUSTOMISE is not set CONFIG_MEDIA_TUNER_SIMPLE=y CONFIG_MEDIA_TUNER_TDA8290=y CONFIG_MEDIA_TUNER_TDA827X=y CONFIG_MEDIA_TUNER_TDA18271=y CONFIG_MEDIA_TUNER_TDA9887=y CONFIG_MEDIA_TUNER_TEA5761=y CONFIG_MEDIA_TUNER_TEA5767=y CONFIG_MEDIA_TUNER_MT20XX=y CONFIG_MEDIA_TUNER_XC2028=y CONFIG_MEDIA_TUNER_XC5000=y CONFIG_MEDIA_TUNER_MC44S803=y CONFIG_VIDEO_V4L2=y CONFIG_VIDEO_CAPTURE_DRIVERS=y # CONFIG_VIDEO_ADV_DEBUG is not set # CONFIG_VIDEO_FIXED_MINOR_RANGES is not set CONFIG_VIDEO_HELPER_CHIPS_AUTO=y # # Audio decoders, processors and mixers # # # RDS decoders # # # Video decoders # # # Video and audio decoders # # # MPEG video encoders # # # Video encoders # # # Camera sensor devices # # # Video improvement chips # # # Miscelaneous helper chips # # CONFIG_VIDEO_VIVI is not set # CONFIG_VIDEO_CPIA2 is not set # CONFIG_VIDEO_ZORAN is not set # CONFIG_VIDEO_SAA7134 is not set # CONFIG_VIDEO_MXB is not set # CONFIG_VIDEO_HEXIUM_ORION is not set # CONFIG_VIDEO_HEXIUM_GEMINI is not set # CONFIG_VIDEO_TIMBERDALE is not set # CONFIG_VIDEO_CAFE_CCIC is not set # CONFIG_VIDEO_SR030PC30 is not set # CONFIG_VIDEO_NOON010PC30 is not set # CONFIG_SOC_CAMERA is not set CONFIG_V4L_USB_DRIVERS=y CONFIG_USB_VIDEO_CLASS=y CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y # CONFIG_USB_GSPCA is not set # CONFIG_VIDEO_PVRUSB2 is not set # CONFIG_VIDEO_HDPVR is not set # CONFIG_VIDEO_USBVISION is not set # CONFIG_USB_ET61X251 is not set # CONFIG_USB_SN9C102 is not set # CONFIG_USB_PWC is not set # CONFIG_USB_ZR364XX is not set # CONFIG_USB_STKWEBCAM is not set # CONFIG_USB_S2255 is not set # CONFIG_V4L_MEM2MEM_DRIVERS is not set # CONFIG_RADIO_ADAPTERS is not set # # Graphics support # CONFIG_AGP=y # CONFIG_AGP_ALI is not set # CONFIG_AGP_ATI is not set # CONFIG_AGP_AMD is not set # CONFIG_AGP_AMD64 is not set CONFIG_AGP_INTEL=y # CONFIG_AGP_NVIDIA is not set # CONFIG_AGP_SIS is not set # CONFIG_AGP_SWORKS is not set # CONFIG_AGP_VIA is not set # CONFIG_AGP_EFFICEON is not set CONFIG_VGA_ARB=y CONFIG_VGA_ARB_MAX_GPUS=16 # CONFIG_VGA_SWITCHEROO is not set CONFIG_DRM=y CONFIG_DRM_KMS_HELPER=y # CONFIG_DRM_TDFX is not set # CONFIG_DRM_R128 is not set # CONFIG_DRM_RADEON is not set # CONFIG_DRM_I810 is not set CONFIG_DRM_I915=y CONFIG_DRM_I915_KMS=y # CONFIG_DRM_MGA is not set # CONFIG_DRM_SIS is not set # CONFIG_DRM_VIA is not set # CONFIG_DRM_SAVAGE is not set # CONFIG_STUB_POULSBO is not set # CONFIG_VGASTATE is not set CONFIG_VIDEO_OUTPUT_CONTROL=y CONFIG_FB=y # CONFIG_FIRMWARE_EDID is not set # CONFIG_FB_DDC is not set CONFIG_FB_BOOT_VESA_SUPPORT=y CONFIG_FB_CFB_FILLRECT=y CONFIG_FB_CFB_COPYAREA=y CONFIG_FB_CFB_IMAGEBLIT=y # CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set # CONFIG_FB_SYS_FILLRECT is not set # CONFIG_FB_SYS_COPYAREA is not set # CONFIG_FB_SYS_IMAGEBLIT is not set # CONFIG_FB_FOREIGN_ENDIAN is not set # CONFIG_FB_SYS_FOPS is not set # CONFIG_FB_WMT_GE_ROPS is not set # CONFIG_FB_SVGALIB is not set # CONFIG_FB_MACMODES is not set # CONFIG_FB_BACKLIGHT is not set CONFIG_FB_MODE_HELPERS=y # CONFIG_FB_TILEBLITTING is not set # # Frame buffer hardware drivers # # CONFIG_FB_CIRRUS is not set # CONFIG_FB_PM2 is not set # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_ARC is not set # CONFIG_FB_ASILIANT is not set # CONFIG_FB_IMSTT is not set # CONFIG_FB_VGA16 is not set # CONFIG_FB_UVESA is not set CONFIG_FB_VESA=y # CONFIG_FB_EFI is not set # CONFIG_FB_N411 is not set # CONFIG_FB_HGA is not set # CONFIG_FB_S1D13XXX is not set # CONFIG_FB_NVIDIA is not set # CONFIG_FB_RIVA is not set # CONFIG_FB_I810 is not set # CONFIG_FB_LE80578 is not set # CONFIG_FB_MATROX is not set # CONFIG_FB_RADEON is not set # CONFIG_FB_ATY128 is not set # CONFIG_FB_ATY is not set # CONFIG_FB_S3 is not set # CONFIG_FB_SAVAGE is not set # CONFIG_FB_SIS is not set # CONFIG_FB_VIA is not set # CONFIG_FB_NEOMAGIC is not set # CONFIG_FB_KYRO is not set # CONFIG_FB_3DFX is not set # CONFIG_FB_VOODOO1 is not set # CONFIG_FB_VT8623 is not set # CONFIG_FB_TRIDENT is not set # CONFIG_FB_ARK is not set # CONFIG_FB_PM3 is not set # CONFIG_FB_CARMINE is not set # CONFIG_FB_GEODE is not set # CONFIG_FB_UDL is not set # CONFIG_FB_VIRTUAL is not set # CONFIG_FB_METRONOME is not set # CONFIG_FB_MB862XX is not set # CONFIG_FB_BROADSHEET is not set CONFIG_BACKLIGHT_LCD_SUPPORT=y # CONFIG_LCD_CLASS_DEVICE is not set CONFIG_BACKLIGHT_CLASS_DEVICE=y CONFIG_BACKLIGHT_GENERIC=y # CONFIG_BACKLIGHT_PROGEAR is not set # CONFIG_BACKLIGHT_APPLE is not set # CONFIG_BACKLIGHT_SAHARA is not set # CONFIG_BACKLIGHT_ADP8860 is not set # CONFIG_BACKLIGHT_ADP8870 is not set # # Display device support # # CONFIG_DISPLAY_SUPPORT is not set # # Console display driver support # CONFIG_VGA_CONSOLE=y CONFIG_VGACON_SOFT_SCROLLBACK=y CONFIG_VGACON_SOFT_SCROLLBACK_SIZE=64 CONFIG_DUMMY_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE=y CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y # CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set # CONFIG_FONTS is not set CONFIG_FONT_8x8=y CONFIG_FONT_8x16=y # CONFIG_LOGO is not set CONFIG_SOUND=y CONFIG_SOUND_OSS_CORE=y CONFIG_SOUND_OSS_CORE_PRECLAIM=y CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y CONFIG_SND_HWDEP=m CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=y CONFIG_SND_SEQ_DUMMY=y CONFIG_SND_OSSEMUL=y CONFIG_SND_MIXER_OSS=y CONFIG_SND_PCM_OSS=y CONFIG_SND_PCM_OSS_PLUGINS=y CONFIG_SND_SEQUENCER_OSS=y CONFIG_SND_HRTIMER=y CONFIG_SND_SEQ_HRTIMER_DEFAULT=y CONFIG_SND_DYNAMIC_MINORS=y CONFIG_SND_SUPPORT_OLD_API=y CONFIG_SND_VERBOSE_PROCFS=y # CONFIG_SND_VERBOSE_PRINTK is not set # CONFIG_SND_DEBUG is not set CONFIG_SND_VMASTER=y CONFIG_SND_DMA_SGBUF=y CONFIG_SND_RAWMIDI_SEQ=m # CONFIG_SND_OPL3_LIB_SEQ is not set # CONFIG_SND_OPL4_LIB_SEQ is not set # CONFIG_SND_SBAWE_SEQ is not set # CONFIG_SND_EMU10K1_SEQ is not set CONFIG_SND_DRIVERS=y # CONFIG_SND_PCSP is not set # CONFIG_SND_DUMMY is not set # CONFIG_SND_ALOOP is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set # CONFIG_SND_SERIAL_U16550 is not set # CONFIG_SND_MPU401 is not set CONFIG_SND_PCI=y # CONFIG_SND_AD1889 is not set # CONFIG_SND_ALS300 is not set # CONFIG_SND_ALS4000 is not set # CONFIG_SND_ALI5451 is not set # CONFIG_SND_ASIHPI is not set # CONFIG_SND_ATIIXP is not set # CONFIG_SND_ATIIXP_MODEM is not set # CONFIG_SND_AU8810 is not set # CONFIG_SND_AU8820 is not set # CONFIG_SND_AU8830 is not set # CONFIG_SND_AW2 is not set # CONFIG_SND_AZT3328 is not set # CONFIG_SND_BT87X is not set # CONFIG_SND_CA0106 is not set # CONFIG_SND_CMIPCI is not set # CONFIG_SND_OXYGEN is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set # CONFIG_SND_CS5530 is not set # CONFIG_SND_CS5535AUDIO is not set # CONFIG_SND_CTXFI is not set # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set # CONFIG_SND_DARLA24 is not set # CONFIG_SND_GINA24 is not set # CONFIG_SND_LAYLA24 is not set # CONFIG_SND_MONA is not set # CONFIG_SND_MIA is not set # CONFIG_SND_ECHO3G is not set # CONFIG_SND_INDIGO is not set # CONFIG_SND_INDIGOIO is not set # CONFIG_SND_INDIGODJ is not set # CONFIG_SND_INDIGOIOX is not set # CONFIG_SND_INDIGODJX is not set # CONFIG_SND_EMU10K1 is not set # CONFIG_SND_EMU10K1X is not set # CONFIG_SND_ENS1370 is not set # CONFIG_SND_ENS1371 is not set # CONFIG_SND_ES1938 is not set # CONFIG_SND_ES1968 is not set # CONFIG_SND_FM801 is not set CONFIG_SND_HDA_INTEL=m CONFIG_SND_HDA_PREALLOC_SIZE=64 CONFIG_SND_HDA_HWDEP=y # CONFIG_SND_HDA_RECONFIG is not set # CONFIG_SND_HDA_INPUT_BEEP is not set # CONFIG_SND_HDA_INPUT_JACK is not set # CONFIG_SND_HDA_PATCH_LOADER is not set CONFIG_SND_HDA_CODEC_REALTEK=y CONFIG_SND_HDA_ENABLE_REALTEK_QUIRKS=y CONFIG_SND_HDA_CODEC_ANALOG=y CONFIG_SND_HDA_CODEC_SIGMATEL=y CONFIG_SND_HDA_CODEC_VIA=y CONFIG_SND_HDA_CODEC_HDMI=y CONFIG_SND_HDA_CODEC_CIRRUS=y CONFIG_SND_HDA_CODEC_CONEXANT=y CONFIG_SND_HDA_CODEC_CA0110=y CONFIG_SND_HDA_CODEC_CA0132=y CONFIG_SND_HDA_CODEC_CMEDIA=y CONFIG_SND_HDA_CODEC_SI3054=y CONFIG_SND_HDA_GENERIC=y # CONFIG_SND_HDA_POWER_SAVE is not set # CONFIG_SND_HDSP is not set # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set # CONFIG_SND_INTEL8X0 is not set # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_LOLA is not set # CONFIG_SND_LX6464ES is not set # CONFIG_SND_MAESTRO3 is not set # CONFIG_SND_MIXART is not set # CONFIG_SND_NM256 is not set # CONFIG_SND_PCXHR is not set # CONFIG_SND_RIPTIDE is not set # CONFIG_SND_RME32 is not set # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SIS7019 is not set # CONFIG_SND_SONICVIBES is not set # CONFIG_SND_TRIDENT is not set # CONFIG_SND_VIA82XX is not set # CONFIG_SND_VIA82XX_MODEM is not set # CONFIG_SND_VIRTUOSO is not set # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set CONFIG_SND_USB=y CONFIG_SND_USB_AUDIO=m # CONFIG_SND_USB_UA101 is not set # CONFIG_SND_USB_USX2Y is not set # CONFIG_SND_USB_CAIAQ is not set # CONFIG_SND_USB_US122L is not set # CONFIG_SND_USB_6FIRE is not set CONFIG_SND_PCMCIA=y # CONFIG_SND_VXPOCKET is not set # CONFIG_SND_PDAUDIOCF is not set # CONFIG_SND_SOC is not set # CONFIG_SOUND_PRIME is not set CONFIG_HID_SUPPORT=y CONFIG_HID=y CONFIG_HIDRAW=y # # USB Input Devices # CONFIG_USB_HID=y CONFIG_HID_PID=y CONFIG_USB_HIDDEV=y # # Special HID drivers # CONFIG_HID_A4TECH=y # CONFIG_HID_ACRUX is not set CONFIG_HID_APPLE=y CONFIG_HID_BELKIN=y CONFIG_HID_CHERRY=y CONFIG_HID_CHICONY=y # CONFIG_HID_PRODIKEYS is not set CONFIG_HID_CYPRESS=y # CONFIG_HID_DRAGONRISE is not set # CONFIG_HID_EMS_FF is not set CONFIG_HID_EZKEY=y # CONFIG_HID_HOLTEK is not set # CONFIG_HID_KEYTOUCH is not set CONFIG_HID_KYE=y # CONFIG_HID_UCLOGIC is not set # CONFIG_HID_WALTOP is not set CONFIG_HID_GYRATION=y # CONFIG_HID_TWINHAN is not set CONFIG_HID_KENSINGTON=y # CONFIG_HID_LCPOWER is not set CONFIG_HID_LOGITECH=y CONFIG_LOGITECH_FF=y # CONFIG_LOGIRUMBLEPAD2_FF is not set # CONFIG_LOGIG940_FF is not set # CONFIG_LOGIWII_FF is not set CONFIG_HID_MICROSOFT=y CONFIG_HID_MONTEREY=y # CONFIG_HID_MULTITOUCH is not set CONFIG_HID_NTRIG=y # CONFIG_HID_ORTEK is not set CONFIG_HID_PANTHERLORD=y CONFIG_PANTHERLORD_FF=y CONFIG_HID_PETALYNX=y # CONFIG_HID_PICOLCD is not set # CONFIG_HID_QUANTA is not set # CONFIG_HID_ROCCAT is not set CONFIG_HID_SAMSUNG=y CONFIG_HID_SONY=y # CONFIG_HID_SPEEDLINK is not set CONFIG_HID_SUNPLUS=y # CONFIG_HID_GREENASIA is not set # CONFIG_HID_SMARTJOYPLUS is not set CONFIG_HID_TOPSEED=y # CONFIG_HID_THRUSTMASTER is not set # CONFIG_HID_ZEROPLUS is not set # CONFIG_HID_ZYDACRON is not set CONFIG_USB_SUPPORT=y CONFIG_USB_ARCH_HAS_HCD=y CONFIG_USB_ARCH_HAS_OHCI=y CONFIG_USB_ARCH_HAS_EHCI=y CONFIG_USB=y CONFIG_USB_DEBUG=y CONFIG_USB_ANNOUNCE_NEW_DEVICES=y # # Miscellaneous USB options # CONFIG_USB_DEVICEFS=y # CONFIG_USB_DEVICE_CLASS is not set # CONFIG_USB_DYNAMIC_MINORS is not set CONFIG_USB_SUSPEND=y # CONFIG_USB_OTG is not set CONFIG_USB_MON=y # CONFIG_USB_WUSB is not set # CONFIG_USB_WUSB_CBAF is not set # # USB Host Controller Drivers # # CONFIG_USB_C67X00_HCD is not set # CONFIG_USB_XHCI_HCD is not set CONFIG_USB_EHCI_HCD=y # CONFIG_USB_EHCI_ROOT_HUB_TT is not set # CONFIG_USB_EHCI_TT_NEWSCHED is not set # CONFIG_USB_OXU210HP_HCD is not set # CONFIG_USB_ISP116X_HCD is not set # CONFIG_USB_ISP1760_HCD is not set # CONFIG_USB_ISP1362_HCD is not set CONFIG_USB_OHCI_HCD=y # CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set # CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set CONFIG_USB_OHCI_LITTLE_ENDIAN=y CONFIG_USB_UHCI_HCD=y # CONFIG_USB_SL811_HCD is not set # CONFIG_USB_R8A66597_HCD is not set # CONFIG_USB_WHCI_HCD is not set # CONFIG_USB_HWA_HCD is not set # # USB Device Class drivers # # CONFIG_USB_ACM is not set CONFIG_USB_PRINTER=y # CONFIG_USB_WDM is not set # CONFIG_USB_TMC is not set # # NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may # # # also be needed; see USB_STORAGE Help for more info # CONFIG_USB_STORAGE=y # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_REALTEK is not set # CONFIG_USB_STORAGE_DATAFAB is not set # CONFIG_USB_STORAGE_FREECOM is not set # CONFIG_USB_STORAGE_ISD200 is not set # CONFIG_USB_STORAGE_USBAT is not set # CONFIG_USB_STORAGE_SDDR09 is not set # CONFIG_USB_STORAGE_SDDR55 is not set # CONFIG_USB_STORAGE_JUMPSHOT is not set # CONFIG_USB_STORAGE_ALAUDA is not set # CONFIG_USB_STORAGE_ONETOUCH is not set # CONFIG_USB_STORAGE_KARMA is not set # CONFIG_USB_STORAGE_CYPRESS_ATACB is not set # CONFIG_USB_STORAGE_ENE_UB6250 is not set # CONFIG_USB_UAS is not set CONFIG_USB_LIBUSUAL=y # # USB Imaging devices # # CONFIG_USB_MDC800 is not set # CONFIG_USB_MICROTEK is not set # # USB port drivers # # CONFIG_USB_SERIAL is not set # # USB Miscellaneous drivers # # CONFIG_USB_EMI62 is not set # CONFIG_USB_EMI26 is not set # CONFIG_USB_ADUTUX is not set # CONFIG_USB_SEVSEG is not set # CONFIG_USB_RIO500 is not set # CONFIG_USB_LEGOTOWER is not set # CONFIG_USB_LCD is not set # CONFIG_USB_LED is not set # CONFIG_USB_CYPRESS_CY7C63 is not set # CONFIG_USB_CYTHERM is not set # CONFIG_USB_IDMOUSE is not set # CONFIG_USB_FTDI_ELAN is not set # CONFIG_USB_APPLEDISPLAY is not set # CONFIG_USB_SISUSBVGA is not set # CONFIG_USB_LD is not set # CONFIG_USB_TRANCEVIBRATOR is not set # CONFIG_USB_IOWARRIOR is not set # CONFIG_USB_TEST is not set # CONFIG_USB_ISIGHTFW is not set # CONFIG_USB_YUREX is not set # CONFIG_USB_GADGET is not set # # OTG and related infrastructure # # CONFIG_NOP_USB_XCEIV is not set # CONFIG_UWB is not set # CONFIG_MMC is not set # CONFIG_MEMSTICK is not set CONFIG_NEW_LEDS=y CONFIG_LEDS_CLASS=y # # LED drivers # # CONFIG_LEDS_LM3530 is not set # CONFIG_LEDS_ALIX2 is not set # CONFIG_LEDS_PCA9532 is not set # CONFIG_LEDS_LP3944 is not set # CONFIG_LEDS_LP5521 is not set # CONFIG_LEDS_LP5523 is not set # CONFIG_LEDS_CLEVO_MAIL is not set # CONFIG_LEDS_PCA955X is not set # CONFIG_LEDS_BD2802 is not set # CONFIG_LEDS_INTEL_SS4200 is not set CONFIG_LEDS_TRIGGERS=y # # LED Triggers # # CONFIG_LEDS_TRIGGER_TIMER is not set # CONFIG_LEDS_TRIGGER_HEARTBEAT is not set # CONFIG_LEDS_TRIGGER_BACKLIGHT is not set # CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set # # iptables trigger is under Netfilter config (LED target) # # CONFIG_ACCESSIBILITY is not set # CONFIG_INFINIBAND is not set CONFIG_EDAC=y # # Reporting subsystems # # CONFIG_EDAC_DEBUG is not set # CONFIG_EDAC_DECODE_MCE is not set # CONFIG_EDAC_MM_EDAC is not set CONFIG_RTC_LIB=y CONFIG_RTC_CLASS=y # CONFIG_RTC_HCTOSYS is not set # CONFIG_RTC_DEBUG is not set # # RTC interfaces # CONFIG_RTC_INTF_SYSFS=y CONFIG_RTC_INTF_PROC=y CONFIG_RTC_INTF_DEV=y # CONFIG_RTC_INTF_DEV_UIE_EMUL is not set # CONFIG_RTC_DRV_TEST is not set # # I2C RTC drivers # # CONFIG_RTC_DRV_DS1307 is not set # CONFIG_RTC_DRV_DS1374 is not set # CONFIG_RTC_DRV_DS1672 is not set # CONFIG_RTC_DRV_DS3232 is not set # CONFIG_RTC_DRV_MAX6900 is not set # CONFIG_RTC_DRV_RS5C372 is not set # CONFIG_RTC_DRV_ISL1208 is not set # CONFIG_RTC_DRV_ISL12022 is not set # CONFIG_RTC_DRV_X1205 is not set # CONFIG_RTC_DRV_PCF8563 is not set # CONFIG_RTC_DRV_PCF8583 is not set # CONFIG_RTC_DRV_M41T80 is not set # CONFIG_RTC_DRV_BQ32K is not set # CONFIG_RTC_DRV_S35390A is not set # CONFIG_RTC_DRV_FM3130 is not set # CONFIG_RTC_DRV_RX8581 is not set # CONFIG_RTC_DRV_RX8025 is not set # CONFIG_RTC_DRV_EM3027 is not set # CONFIG_RTC_DRV_RV3029C2 is not set # # SPI RTC drivers # # # Platform RTC drivers # CONFIG_RTC_DRV_CMOS=y # CONFIG_RTC_DRV_DS1286 is not set # CONFIG_RTC_DRV_DS1511 is not set # CONFIG_RTC_DRV_DS1553 is not set # CONFIG_RTC_DRV_DS1742 is not set # CONFIG_RTC_DRV_STK17TA8 is not set # CONFIG_RTC_DRV_M48T86 is not set # CONFIG_RTC_DRV_M48T35 is not set # CONFIG_RTC_DRV_M48T59 is not set # CONFIG_RTC_DRV_MSM6242 is not set # CONFIG_RTC_DRV_BQ4802 is not set # CONFIG_RTC_DRV_RP5C01 is not set # CONFIG_RTC_DRV_V3020 is not set # # on-CPU RTC drivers # CONFIG_DMADEVICES=y # CONFIG_DMADEVICES_DEBUG is not set # # DMA Devices # # CONFIG_INTEL_MID_DMAC is not set # CONFIG_INTEL_IOATDMA is not set # CONFIG_TIMB_DMA is not set # CONFIG_PCH_DMA is not set # CONFIG_AUXDISPLAY is not set # CONFIG_UIO is not set # # Virtio drivers # # CONFIG_VIRTIO_PCI is not set # CONFIG_VIRTIO_BALLOON is not set # CONFIG_STAGING is not set CONFIG_X86_PLATFORM_DEVICES=y # CONFIG_ACERHDF is not set # CONFIG_ASUS_LAPTOP is not set # CONFIG_FUJITSU_LAPTOP is not set # CONFIG_HP_ACCEL is not set # CONFIG_MSI_LAPTOP is not set # CONFIG_PANASONIC_LAPTOP is not set # CONFIG_COMPAL_LAPTOP is not set # CONFIG_SONY_LAPTOP is not set # CONFIG_IDEAPAD_LAPTOP is not set CONFIG_THINKPAD_ACPI=m CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y # CONFIG_THINKPAD_ACPI_DEBUGFACILITIES is not set # CONFIG_THINKPAD_ACPI_DEBUG is not set # CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set CONFIG_THINKPAD_ACPI_VIDEO=y CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y # CONFIG_SENSORS_HDAPS is not set # CONFIG_INTEL_MENLOW is not set # CONFIG_EEEPC_LAPTOP is not set # CONFIG_ACPI_WMI is not set # CONFIG_ACPI_ASUS is not set # CONFIG_TOPSTAR_LAPTOP is not set # CONFIG_ACPI_TOSHIBA is not set # CONFIG_TOSHIBA_BT_RFKILL is not set # CONFIG_ACPI_CMPC is not set # CONFIG_INTEL_IPS is not set # CONFIG_IBM_RTL is not set # CONFIG_XO15_EBOOK is not set # CONFIG_SAMSUNG_LAPTOP is not set # CONFIG_INTEL_OAKTRAIL is not set CONFIG_CLKSRC_I8253=y CONFIG_CLKEVT_I8253=y CONFIG_I8253_LOCK=y CONFIG_CLKBLD_I8253=y CONFIG_IOMMU_SUPPORT=y # CONFIG_DMAR is not set # CONFIG_VIRT_DRIVERS is not set # # Firmware Drivers # # CONFIG_EDD is not set CONFIG_FIRMWARE_MEMMAP=y CONFIG_EFI_VARS=y # CONFIG_DELL_RBU is not set # CONFIG_DCDBAS is not set CONFIG_DMIID=y # CONFIG_DMI_SYSFS is not set # CONFIG_ISCSI_IBFT_FIND is not set # CONFIG_SIGMA is not set # CONFIG_GOOGLE_FIRMWARE is not set # # File systems # CONFIG_EXT2_FS=y # CONFIG_EXT2_FS_XATTR is not set # CONFIG_EXT2_FS_XIP is not set CONFIG_EXT3_FS=y # CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set CONFIG_EXT3_FS_XATTR=y CONFIG_EXT3_FS_POSIX_ACL=y CONFIG_EXT3_FS_SECURITY=y CONFIG_EXT4_FS=y CONFIG_EXT4_FS_XATTR=y # CONFIG_EXT4_FS_POSIX_ACL is not set # CONFIG_EXT4_FS_SECURITY is not set # CONFIG_EXT4_DEBUG is not set CONFIG_JBD=y # CONFIG_JBD_DEBUG is not set CONFIG_JBD2=y # CONFIG_JBD2_DEBUG is not set CONFIG_FS_MBCACHE=y # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set CONFIG_XFS_FS=y # CONFIG_XFS_QUOTA is not set # CONFIG_XFS_POSIX_ACL is not set # CONFIG_XFS_RT is not set # CONFIG_XFS_DEBUG is not set # CONFIG_GFS2_FS is not set # CONFIG_OCFS2_FS is not set # CONFIG_BTRFS_FS is not set # CONFIG_NILFS2_FS is not set CONFIG_FS_POSIX_ACL=y CONFIG_EXPORTFS=y CONFIG_FILE_LOCKING=y CONFIG_FSNOTIFY=y CONFIG_DNOTIFY=y CONFIG_INOTIFY_USER=y # CONFIG_FANOTIFY is not set CONFIG_QUOTA=y CONFIG_QUOTA_NETLINK_INTERFACE=y # CONFIG_PRINT_QUOTA_WARNING is not set # CONFIG_QUOTA_DEBUG is not set CONFIG_QUOTA_TREE=y # CONFIG_QFMT_V1 is not set CONFIG_QFMT_V2=y CONFIG_QUOTACTL=y CONFIG_AUTOFS4_FS=y # CONFIG_FUSE_FS is not set CONFIG_GENERIC_ACL=y # # Caches # # CONFIG_FSCACHE is not set # # CD-ROM/DVD Filesystems # CONFIG_ISO9660_FS=y CONFIG_JOLIET=y CONFIG_ZISOFS=y CONFIG_UDF_FS=y CONFIG_UDF_NLS=y # # DOS/FAT/NT Filesystems # CONFIG_FAT_FS=y CONFIG_MSDOS_FS=y CONFIG_VFAT_FS=y CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" # CONFIG_NTFS_FS is not set # # Pseudo filesystems # CONFIG_PROC_FS=y CONFIG_PROC_KCORE=y CONFIG_PROC_VMCORE=y CONFIG_PROC_SYSCTL=y CONFIG_PROC_PAGE_MONITOR=y CONFIG_SYSFS=y CONFIG_TMPFS=y CONFIG_TMPFS_POSIX_ACL=y CONFIG_TMPFS_XATTR=y CONFIG_HUGETLBFS=y CONFIG_HUGETLB_PAGE=y CONFIG_CONFIGFS_FS=y CONFIG_MISC_FILESYSTEMS=y # CONFIG_ADFS_FS is not set # CONFIG_AFFS_FS is not set # CONFIG_ECRYPT_FS is not set # CONFIG_HFS_FS is not set # CONFIG_HFSPLUS_FS is not set # CONFIG_BEFS_FS is not set # CONFIG_BFS_FS is not set # CONFIG_EFS_FS is not set # CONFIG_LOGFS is not set # CONFIG_CRAMFS is not set # CONFIG_SQUASHFS is not set # CONFIG_VXFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_OMFS_FS is not set # CONFIG_HPFS_FS is not set # CONFIG_QNX4FS_FS is not set # CONFIG_ROMFS_FS is not set # CONFIG_PSTORE is not set # CONFIG_SYSV_FS is not set # CONFIG_UFS_FS is not set CONFIG_NETWORK_FILESYSTEMS=y CONFIG_NFS_FS=y CONFIG_NFS_V3=y CONFIG_NFS_V3_ACL=y CONFIG_NFS_V4=y # CONFIG_NFS_V4_1 is not set CONFIG_ROOT_NFS=y # CONFIG_NFS_USE_LEGACY_DNS is not set CONFIG_NFS_USE_KERNEL_DNS=y # CONFIG_NFS_USE_NEW_IDMAPPER is not set # CONFIG_NFSD is not set CONFIG_LOCKD=y CONFIG_LOCKD_V4=y CONFIG_NFS_ACL_SUPPORT=y CONFIG_NFS_COMMON=y CONFIG_SUNRPC=y CONFIG_SUNRPC_GSS=y # CONFIG_CEPH_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set # CONFIG_CODA_FS is not set # CONFIG_AFS_FS is not set # # Partition Types # CONFIG_PARTITION_ADVANCED=y # CONFIG_ACORN_PARTITION is not set CONFIG_OSF_PARTITION=y CONFIG_AMIGA_PARTITION=y # CONFIG_ATARI_PARTITION is not set CONFIG_MAC_PARTITION=y CONFIG_MSDOS_PARTITION=y CONFIG_BSD_DISKLABEL=y CONFIG_MINIX_SUBPARTITION=y CONFIG_SOLARIS_X86_PARTITION=y CONFIG_UNIXWARE_DISKLABEL=y # CONFIG_LDM_PARTITION is not set CONFIG_SGI_PARTITION=y # CONFIG_ULTRIX_PARTITION is not set CONFIG_SUN_PARTITION=y CONFIG_KARMA_PARTITION=y CONFIG_EFI_PARTITION=y # CONFIG_SYSV68_PARTITION is not set CONFIG_NLS=y CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y # CONFIG_NLS_CODEPAGE_737 is not set # CONFIG_NLS_CODEPAGE_775 is not set # CONFIG_NLS_CODEPAGE_850 is not set # CONFIG_NLS_CODEPAGE_852 is not set # CONFIG_NLS_CODEPAGE_855 is not set # CONFIG_NLS_CODEPAGE_857 is not set # CONFIG_NLS_CODEPAGE_860 is not set # CONFIG_NLS_CODEPAGE_861 is not set # CONFIG_NLS_CODEPAGE_862 is not set # CONFIG_NLS_CODEPAGE_863 is not set # CONFIG_NLS_CODEPAGE_864 is not set # CONFIG_NLS_CODEPAGE_865 is not set # CONFIG_NLS_CODEPAGE_866 is not set # CONFIG_NLS_CODEPAGE_869 is not set # CONFIG_NLS_CODEPAGE_936 is not set # CONFIG_NLS_CODEPAGE_950 is not set # CONFIG_NLS_CODEPAGE_932 is not set # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set # CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set CONFIG_NLS_ASCII=y CONFIG_NLS_ISO8859_1=y # CONFIG_NLS_ISO8859_2 is not set # CONFIG_NLS_ISO8859_3 is not set # CONFIG_NLS_ISO8859_4 is not set # CONFIG_NLS_ISO8859_5 is not set # CONFIG_NLS_ISO8859_6 is not set # CONFIG_NLS_ISO8859_7 is not set # CONFIG_NLS_ISO8859_9 is not set # CONFIG_NLS_ISO8859_13 is not set # CONFIG_NLS_ISO8859_14 is not set # CONFIG_NLS_ISO8859_15 is not set # CONFIG_NLS_KOI8_R is not set # CONFIG_NLS_KOI8_U is not set CONFIG_NLS_UTF8=y # CONFIG_DLM is not set # # Kernel hacking # CONFIG_TRACE_IRQFLAGS_SUPPORT=y CONFIG_PRINTK_TIME=y CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 # CONFIG_ENABLE_WARN_DEPRECATED is not set CONFIG_ENABLE_MUST_CHECK=y CONFIG_FRAME_WARN=2048 CONFIG_MAGIC_SYSRQ=y # CONFIG_STRIP_ASM_SYMS is not set # CONFIG_UNUSED_SYMBOLS is not set CONFIG_DEBUG_FS=y # CONFIG_HEADERS_CHECK is not set # CONFIG_DEBUG_SECTION_MISMATCH is not set CONFIG_DEBUG_KERNEL=y # CONFIG_DEBUG_SHIRQ is not set # CONFIG_LOCKUP_DETECTOR is not set # CONFIG_HARDLOCKUP_DETECTOR is not set # CONFIG_DETECT_HUNG_TASK is not set # CONFIG_SCHED_DEBUG is not set CONFIG_SCHEDSTATS=y CONFIG_TIMER_STATS=y # CONFIG_DEBUG_OBJECTS is not set # CONFIG_SLUB_DEBUG_ON is not set # CONFIG_SLUB_STATS is not set # CONFIG_DEBUG_KMEMLEAK is not set # CONFIG_DEBUG_RT_MUTEXES is not set # CONFIG_RT_MUTEX_TESTER is not set # CONFIG_DEBUG_SPINLOCK is not set # CONFIG_DEBUG_MUTEXES is not set # CONFIG_DEBUG_LOCK_ALLOC is not set # CONFIG_PROVE_LOCKING is not set # CONFIG_SPARSE_RCU_POINTER is not set # CONFIG_LOCK_STAT is not set CONFIG_TRACE_IRQFLAGS=y # CONFIG_DEBUG_ATOMIC_SLEEP is not set # CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set CONFIG_STACKTRACE=y CONFIG_DEBUG_STACK_USAGE=y # CONFIG_DEBUG_KOBJECT is not set # CONFIG_DEBUG_HIGHMEM is not set CONFIG_DEBUG_BUGVERBOSE=y # CONFIG_DEBUG_INFO is not set # CONFIG_DEBUG_VM is not set # CONFIG_DEBUG_VIRTUAL is not set # CONFIG_DEBUG_WRITECOUNT is not set CONFIG_DEBUG_MEMORY_INIT=y # CONFIG_DEBUG_LIST is not set # CONFIG_TEST_LIST_SORT is not set # CONFIG_DEBUG_SG is not set # CONFIG_DEBUG_NOTIFIERS is not set # CONFIG_DEBUG_CREDENTIALS is not set CONFIG_ARCH_WANT_FRAME_POINTERS=y CONFIG_FRAME_POINTER=y # CONFIG_BOOT_PRINTK_DELAY is not set # CONFIG_RCU_TORTURE_TEST is not set CONFIG_RCU_CPU_STALL_TIMEOUT=60 # CONFIG_KPROBES_SANITY_TEST is not set # CONFIG_BACKTRACE_SELF_TEST is not set # CONFIG_DEBUG_BLOCK_EXT_DEVT is not set # CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set # CONFIG_DEBUG_PER_CPU_MAPS is not set # CONFIG_LKDTM is not set # CONFIG_CPU_NOTIFIER_ERROR_INJECT is not set # CONFIG_FAULT_INJECTION is not set # CONFIG_LATENCYTOP is not set CONFIG_SYSCTL_SYSCALL_CHECK=y # CONFIG_DEBUG_PAGEALLOC is not set CONFIG_USER_STACKTRACE_SUPPORT=y CONFIG_NOP_TRACER=y CONFIG_HAVE_FTRACE_NMI_ENTER=y CONFIG_HAVE_FUNCTION_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y CONFIG_HAVE_DYNAMIC_FTRACE=y CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y CONFIG_HAVE_SYSCALL_TRACEPOINTS=y CONFIG_HAVE_C_RECORDMCOUNT=y CONFIG_TRACER_MAX_TRACE=y CONFIG_RING_BUFFER=y CONFIG_FTRACE_NMI_ENTER=y CONFIG_EVENT_TRACING=y CONFIG_EVENT_POWER_TRACING_DEPRECATED=y CONFIG_CONTEXT_SWITCH_TRACER=y CONFIG_RING_BUFFER_ALLOW_SWAP=y CONFIG_TRACING=y CONFIG_GENERIC_TRACER=y CONFIG_TRACING_SUPPORT=y CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_IRQSOFF_TRACER=y CONFIG_SCHED_TRACER=y CONFIG_FTRACE_SYSCALLS=y CONFIG_BRANCH_PROFILE_NONE=y # CONFIG_PROFILE_ANNOTATED_BRANCHES is not set # CONFIG_PROFILE_ALL_BRANCHES is not set # CONFIG_STACK_TRACER is not set CONFIG_BLK_DEV_IO_TRACE=y CONFIG_KPROBE_EVENT=y CONFIG_DYNAMIC_FTRACE=y # CONFIG_FUNCTION_PROFILER is not set CONFIG_FTRACE_MCOUNT_RECORD=y # CONFIG_FTRACE_STARTUP_TEST is not set # CONFIG_MMIOTRACE is not set # CONFIG_RING_BUFFER_BENCHMARK is not set CONFIG_PROVIDE_OHCI1394_DMA_INIT=y # CONFIG_DYNAMIC_DEBUG is not set # CONFIG_DMA_API_DEBUG is not set # CONFIG_ATOMIC64_SELFTEST is not set # CONFIG_SAMPLES is not set CONFIG_HAVE_ARCH_KGDB=y # CONFIG_KGDB is not set CONFIG_HAVE_ARCH_KMEMCHECK=y # CONFIG_TEST_KSTRTOX is not set # CONFIG_STRICT_DEVMEM is not set CONFIG_X86_VERBOSE_BOOTUP=y CONFIG_EARLY_PRINTK=y CONFIG_EARLY_PRINTK_DBGP=y CONFIG_DEBUG_STACKOVERFLOW=y # CONFIG_X86_PTDUMP is not set CONFIG_DEBUG_RODATA=y # CONFIG_DEBUG_RODATA_TEST is not set # CONFIG_DEBUG_SET_MODULE_RONX is not set # CONFIG_DEBUG_NX_TEST is not set CONFIG_DOUBLEFAULT=y # CONFIG_IOMMU_STRESS is not set CONFIG_HAVE_MMIOTRACE_SUPPORT=y # CONFIG_X86_DECODER_SELFTEST is not set CONFIG_IO_DELAY_TYPE_0X80=0 CONFIG_IO_DELAY_TYPE_0XED=1 CONFIG_IO_DELAY_TYPE_UDELAY=2 CONFIG_IO_DELAY_TYPE_NONE=3 CONFIG_IO_DELAY_0X80=y # CONFIG_IO_DELAY_0XED is not set # CONFIG_IO_DELAY_UDELAY is not set # CONFIG_IO_DELAY_NONE is not set CONFIG_DEFAULT_IO_DELAY_TYPE=0 CONFIG_DEBUG_BOOT_PARAMS=y # CONFIG_CPA_DEBUG is not set CONFIG_OPTIMIZE_INLINING=y # CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set # # Security options # CONFIG_KEYS=y CONFIG_KEYS_DEBUG_PROC_KEYS=y # CONFIG_SECURITY_DMESG_RESTRICT is not set CONFIG_SECURITY=y # CONFIG_SECURITYFS is not set CONFIG_SECURITY_NETWORK=y # CONFIG_SECURITY_NETWORK_XFRM is not set # CONFIG_SECURITY_PATH is not set # CONFIG_SECURITY_SELINUX is not set # CONFIG_SECURITY_SMACK is not set # CONFIG_SECURITY_TOMOYO is not set # CONFIG_SECURITY_APPARMOR is not set # CONFIG_IMA is not set CONFIG_DEFAULT_SECURITY_DAC=y CONFIG_DEFAULT_SECURITY="" CONFIG_CRYPTO=y # # Crypto core or helper # CONFIG_CRYPTO_ALGAPI=y CONFIG_CRYPTO_ALGAPI2=y CONFIG_CRYPTO_AEAD=y CONFIG_CRYPTO_AEAD2=y CONFIG_CRYPTO_BLKCIPHER=y CONFIG_CRYPTO_BLKCIPHER2=y CONFIG_CRYPTO_HASH=y CONFIG_CRYPTO_HASH2=y CONFIG_CRYPTO_RNG2=y CONFIG_CRYPTO_PCOMP2=y CONFIG_CRYPTO_MANAGER=y CONFIG_CRYPTO_MANAGER2=y CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y # CONFIG_CRYPTO_GF128MUL is not set # CONFIG_CRYPTO_NULL is not set # CONFIG_CRYPTO_PCRYPT is not set CONFIG_CRYPTO_WORKQUEUE=y # CONFIG_CRYPTO_CRYPTD is not set CONFIG_CRYPTO_AUTHENC=y # CONFIG_CRYPTO_TEST is not set # # Authenticated Encryption with Associated Data # # CONFIG_CRYPTO_CCM is not set # CONFIG_CRYPTO_GCM is not set # CONFIG_CRYPTO_SEQIV is not set # # Block modes # CONFIG_CRYPTO_CBC=y # CONFIG_CRYPTO_CTR is not set # CONFIG_CRYPTO_CTS is not set CONFIG_CRYPTO_ECB=y # CONFIG_CRYPTO_LRW is not set # CONFIG_CRYPTO_PCBC is not set # CONFIG_CRYPTO_XTS is not set # # Hash modes # CONFIG_CRYPTO_HMAC=y # CONFIG_CRYPTO_XCBC is not set # CONFIG_CRYPTO_VMAC is not set # # Digest # # CONFIG_CRYPTO_CRC32C is not set # CONFIG_CRYPTO_CRC32C_INTEL is not set # CONFIG_CRYPTO_GHASH is not set # CONFIG_CRYPTO_MD4 is not set CONFIG_CRYPTO_MD5=y # CONFIG_CRYPTO_MICHAEL_MIC is not set # CONFIG_CRYPTO_RMD128 is not set # CONFIG_CRYPTO_RMD160 is not set # CONFIG_CRYPTO_RMD256 is not set # CONFIG_CRYPTO_RMD320 is not set CONFIG_CRYPTO_SHA1=y # CONFIG_CRYPTO_SHA256 is not set # CONFIG_CRYPTO_SHA512 is not set # CONFIG_CRYPTO_TGR192 is not set # CONFIG_CRYPTO_WP512 is not set # # Ciphers # CONFIG_CRYPTO_AES=y CONFIG_CRYPTO_AES_586=y # CONFIG_CRYPTO_AES_NI_INTEL is not set # CONFIG_CRYPTO_ANUBIS is not set CONFIG_CRYPTO_ARC4=y # CONFIG_CRYPTO_BLOWFISH is not set # CONFIG_CRYPTO_CAMELLIA is not set # CONFIG_CRYPTO_CAST5 is not set # CONFIG_CRYPTO_CAST6 is not set CONFIG_CRYPTO_DES=y # CONFIG_CRYPTO_FCRYPT is not set # CONFIG_CRYPTO_KHAZAD is not set # CONFIG_CRYPTO_SALSA20 is not set # CONFIG_CRYPTO_SALSA20_586 is not set # CONFIG_CRYPTO_SEED is not set # CONFIG_CRYPTO_SERPENT is not set # CONFIG_CRYPTO_TEA is not set # CONFIG_CRYPTO_TWOFISH is not set # CONFIG_CRYPTO_TWOFISH_586 is not set # # Compression # # CONFIG_CRYPTO_DEFLATE is not set # CONFIG_CRYPTO_ZLIB is not set # CONFIG_CRYPTO_LZO is not set # # Random Number Generation # # CONFIG_CRYPTO_ANSI_CPRNG is not set # CONFIG_CRYPTO_USER_API_HASH is not set # CONFIG_CRYPTO_USER_API_SKCIPHER is not set CONFIG_CRYPTO_HW=y # CONFIG_CRYPTO_DEV_PADLOCK is not set # CONFIG_CRYPTO_DEV_GEODE is not set # CONFIG_CRYPTO_DEV_HIFN_795X is not set CONFIG_HAVE_KVM=y # CONFIG_VIRTUALIZATION is not set CONFIG_BINARY_PRINTF=y # # Library routines # CONFIG_BITREVERSE=y CONFIG_GENERIC_FIND_FIRST_BIT=y # CONFIG_CRC_CCITT is not set CONFIG_CRC16=y CONFIG_CRC_T10DIF=y CONFIG_CRC_ITU_T=y CONFIG_CRC32=y # CONFIG_CRC7 is not set # CONFIG_LIBCRC32C is not set # CONFIG_CRC8 is not set CONFIG_AUDIT_GENERIC=y CONFIG_ZLIB_INFLATE=y CONFIG_LZO_COMPRESS=y CONFIG_LZO_DECOMPRESS=y CONFIG_XZ_DEC=y CONFIG_XZ_DEC_X86=y CONFIG_XZ_DEC_POWERPC=y CONFIG_XZ_DEC_IA64=y CONFIG_XZ_DEC_ARM=y CONFIG_XZ_DEC_ARMTHUMB=y CONFIG_XZ_DEC_SPARC=y CONFIG_XZ_DEC_BCJ=y # CONFIG_XZ_DEC_TEST is not set CONFIG_DECOMPRESS_GZIP=y CONFIG_DECOMPRESS_BZIP2=y CONFIG_DECOMPRESS_LZMA=y CONFIG_DECOMPRESS_XZ=y CONFIG_DECOMPRESS_LZO=y CONFIG_TEXTSEARCH=y CONFIG_TEXTSEARCH_KMP=y CONFIG_TEXTSEARCH_BM=y CONFIG_TEXTSEARCH_FSM=y CONFIG_HAS_IOMEM=y CONFIG_HAS_IOPORT=y CONFIG_HAS_DMA=y CONFIG_CHECK_SIGNATURE=y CONFIG_CPU_RMAP=y CONFIG_NLATTR=y CONFIG_AVERAGE=y # CONFIG_CORDIC is not set --tThc/1wpZn/ma/RB-- From david@fromorbit.com Tue Jul 26 19:45:52 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R0jp1u150519 for ; Tue, 26 Jul 2011 19:45:51 -0500 X-ASG-Debug-ID: 1311727554-4d5d03de0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1A28F150E76A for ; Tue, 26 Jul 2011 17:45:55 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id cRRjbvttml4YMNnM for ; Tue, 26 Jul 2011 17:45:55 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AokAAG9dL055LCkBgWdsb2JhbAAqCwEBBAFAICURCQMYOhQBKgMqFyCXVY9bFQEBFiYliHwEwisOhVNfBJsjiEE Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 27 Jul 2011 10:15:45 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QlsFr-0000Rk-Kg; Wed, 27 Jul 2011 10:45:43 +1000 Date: Wed, 27 Jul 2011 10:45:43 +1000 From: Dave Chinner To: "Rafael J. Wysocki" Cc: Christoph , xfs@oss.sgi.com, Linux PM mailing list , Pavel Machek X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Message-ID: <20110727004543.GE8048@dastard> References: <4E1C70AD.1010101@u-club.de> <20110713000332.GM23038@dastard> <201107262228.12099.rjw@sisk.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107262228.12099.rjw@sisk.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1311727557 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70067 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 26, 2011 at 10:28:11PM +0200, Rafael J. Wysocki wrote: > On Wednesday, July 13, 2011, Dave Chinner wrote: > > On Tue, Jul 12, 2011 at 06:05:01PM +0200, Christoph wrote: ..... > > > SysRq : Show Blocked State > > > > > > pm-hibernate D 0000000000000000 0 3638 3637 0x00000000 > > > ffff8800017bf918 0000000000000082 ffff8800017be010 ffff880000000000 > > > ffff8800017be010 ffff88000b8a6170 0000000000013900 ffff8800017bffd8 > > > ffff8800017bffd8 0000000000013900 ffffffff8148b020 ffff88000b8a6170 > > > Call Trace: > > > [] schedule_timeout+0x22/0xbb > > > [] wait_for_common+0xcb/0x148 > > > [] ? try_to_wake_up+0x18c/0x18c > > > [] ? down_write+0x2d/0x31 > > > [] wait_for_completion+0x18/0x1a > > > [] xfs_reclaim_inode+0x74/0x258 [xfs] > > > [] xfs_reclaim_inodes_ag+0x195/0x264 [xfs] > > > [] xfs_reclaim_inode_shrink+0x52/0x90 [xfs] > > > [] shrink_slab+0xdb/0x151 > > > [] do_try_to_free_pages+0x204/0x39a > > > [] ? apic_timer_interrupt+0xe/0x20 > > > [] shrink_all_memory+0x8f/0xa8 > > > [] ? next_online_pgdat+0x20/0x41 > > > [] hibernate_preallocate_memory+0x1c4/0x30f > > > [] ? kobject_put+0x47/0x4b > > > [] hibernation_snapshot+0x45/0x281 > > > [] hibernate+0xd1/0x1b8 > > > [] state_store+0x57/0xce > > > [] kobj_attr_store+0x17/0x19 > > > [] sysfs_write_file+0xfc/0x138 > > > [] vfs_write+0xa9/0x105 > > > [] sys_write+0x45/0x6c > > > [] system_call_fastpath+0x16/0x1b > > > > It's waiting for IO completion, and holding an AG scan lock. > > > > And IO completion requires a workqueue to run. Just FYI, this > > process of inode reclaim can dirty the filesystem, long after > > hibernate have assumed that it is clean due to the sys_sync() call > > you do after freezing the processes. I pointed out this flaw in > > using sync to write dirty data prior to hibernate a couple of years > > ago. > > However, attempts to remove the sys_sync() from the hibernate code > were objected to by some developers, since they believe it will increase > the probability of data loss in case of a failing hibernation in general. I'm not suggesting it gets removed, I'm suggesting it gets replaced because it doesn't give the guarantees that you want or need. > > Anyway, it's a good thing that XFS doesn't use freezable work > > queues, otherwise it would hang on every hibernate. Perhaps I should > > do that to force hibernate to do things properly in filesystems > > land. > > Well, I'd say it's a very well known fact that filesystems are not > handled in any special way during hibernation, which is not a good > thing. Nevertheless, I've never seen anyone from the filesystems land > pay any kind of attention to this issue. I beg to differ. We went through this exact clas of bugs with swsusp back in 2006: https://lkml.org/lkml/2006/11/12/144 And this patch: https://lkml.org/lkml/2006/11/1/155 ([PATCH -mm] swsusp: Freeze filesystems during suspend) "This is needed by swsusp, because some filesystems (eg. XFS) use work queues and worker_threads run with PF_NOFREEZE set, so they can cause some writes to be performed after the suspend image has been created which may corrupt the filesystem. The additional benefit of it is that if the resume fails, the filesystems will be in a consistent state and there won't be any journal replays needed." -- And the patch essentially does: - sys_sync(); + freeze_filesystems(); But, Pavel didn't like freezing filesystems to quiesce them correctly, so the sys_sync() and all it's problems have remained until this day, where we still have users tripping over the same "filesystem not idle" problems. [....] > > IOWs, what hibernate does is: > > > > freeze_processes() > > sys_sync() > > allocate a large amount of memory > > > > Freezing the processes causes parts of filesystems to be put in the > > fridge, which means there is no guarantee that sys_sync() actually > > does what it is supposed to. As it is, sys_sync() really only > > guarantees file data is clean in memory - metadata does not need to > > be clean as long s it has been journalled and the journal is safe on > > disk. > > > > Further, allocating memory can cause memory reclaim to enter the > > filesystem and try to free memory held by the filesystem. In XFS (at > > least) this can cause the filesystem to issue tranactions and > > metadata IO to clean the dirty metadata to enable it to be > > reclaimed. So hibernate is effectively guaranteed to dirty the > > filesystem after it has frozen all the worker threads the filesystem > > might rely on. > > > > Also, by this point kswapd has already been frozen, so hibernate is > > relying totally on direct memory reclaim to free up the memory it > > requires. I'm not sure that's a good idea. > > > > IOWs, hibernate is still broken by design - and broken in exactly > > the way that was pointed out a couple of years ago by myself and > > others in the filesystem world: sys_sync() does not quiesce or > > guarantee a clean filesystem in memory after it completes. > > > > There is a solution to this, and it already exists - it's called > > freezing the filesystem. Effectively hibernate needs to allocate > > memory before it freezes kernel/filesystem worker threads: > > > > freeze_userspace_processes() > > > > // just to clean the page cache quickly > > sys_sync() > > > > // optionally to free page/inode/dentry caches: > > iterate_supers(drop_pagecache_sb, NULL); > > drop_slab() > > > > allocate a large amount of memory > > > > // Now quiesce the filesystems and clean remaining metadata > > iterate_supers(freeze_super, NULL); > > > > freeze_remaining_processes() > > > > This guarantees that filesystems are still working when memory > > reclaim comes along to free memory for the hibernate image, and that > > once it is allocated that filesystems will not be changed until > > thawed on the hibernate wakeup. > > > > So, like I said a couple of years ago: fix hibernate to quiesce > > filesystems properly, and the hibernate will be much more reliable > > and robust and less likely to break randomly in the future. > > Why don't you simply submit a patch to do that? a) I don't know how to test suspend/hibernate b) I don't have any hardware I can test it on. c) I don't scale to solving every problem Linux has d) you guys need to decide how you're going to fix this because the problem has already been solved once before and it didn't get merged because nobody in the swsusp/hibernate world could agree on anything at the time. Cheers, Dave. -- Dave Chinner david@fromorbit.com From minchan.kim@gmail.com Tue Jul 26 23:32:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R4WKd9159102 for ; Tue, 26 Jul 2011 23:32:21 -0500 X-ASG-Debug-ID: 1311741146-623a03040000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-qw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F3CE01686549 for ; Tue, 26 Jul 2011 21:32:26 -0700 (PDT) Received: from mail-qw0-f53.google.com (mail-qw0-f53.google.com [209.85.216.53]) by cuda.sgi.com with ESMTP id yGLCqz1A64yJCvvA for ; Tue, 26 Jul 2011 21:32:26 -0700 (PDT) Received: by qwb7 with SMTP id 7so707233qwb.26 for ; Tue, 26 Jul 2011 21:32:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=bkO/R5HAycxQscJrIwUhQ/hV5fIrb5ZpGiP3D7hxP6Q=; b=i1JsK9mgjoZJCULI/93coNNDYWPYWYI5XZj1Sk+y6HYIi78M8khAIJ7vvZAZfCkPV4 XkRSTHqJPOFRviZjJCpRcpBIZBX7aIoMEuAJkRH/H5mnbC22Tn2+tKP/hneeU92T0rMM GfFAU1Gz8nCgxkUNd6mginQ/SwP8VXqHbvfVY= MIME-Version: 1.0 Received: by 10.229.11.24 with SMTP id r24mr4875584qcr.222.1311741137155; Tue, 26 Jul 2011 21:32:17 -0700 (PDT) Received: by 10.229.192.196 with HTTP; Tue, 26 Jul 2011 21:32:17 -0700 (PDT) In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> Date: Wed, 27 Jul 2011 13:32:17 +0900 Message-ID: X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-qw0-f53.google.com[209.85.216.53] X-Barracuda-Start-Time: 1311741146 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70081 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi Mel, On Fri, Jul 22, 2011 at 1:28 AM, Mel Gorman wrote: > Warning: Long post with lots of figures. If you normally drink coffee > and you don't have a cup, get one or you may end up with a case of > keyboard face. > > Changelog since v1 > =C2=A0o Drop prio-inode patch. There is now a dependency that the flusher > =C2=A0 =C2=A0threads find these dirty pages quickly. > =C2=A0o Drop nr_vmscan_throttled counter > =C2=A0o SetPageReclaim instead of deactivate_page which was wrong > =C2=A0o Add warning to main filesystems if called from direct reclaim con= text > =C2=A0o Add patch to completely disable filesystem writeback from reclaim > > Testing from the XFS folk revealed that there is still too much > I/O from the end of the LRU in kswapd. Previously it was considered > acceptable by VM people for a small number of pages to be written > back from reclaim with testing generally showing about 0.3% of pages > reclaimed were written back (higher if memory was low). That writing > back a small number of pages is ok has been heavily disputed for > quite some time and Dave Chinner explained it well; > > =C2=A0 =C2=A0 =C2=A0 =C2=A0It doesn't have to be a very high number to be= a problem. IO > =C2=A0 =C2=A0 =C2=A0 =C2=A0is orders of magnitude slower than the CPU tim= e it takes to > =C2=A0 =C2=A0 =C2=A0 =C2=A0flush a page, so the cost of making a bad flus= h decision is > =C2=A0 =C2=A0 =C2=A0 =C2=A0very high. And single page writeback from the = LRU is almost > =C2=A0 =C2=A0 =C2=A0 =C2=A0always a bad flush decision. > > To complicate matters, filesystems respond very differently to requests > from reclaim according to Christoph Hellwig; > > =C2=A0 =C2=A0 =C2=A0 =C2=A0xfs tries to write it back if the requester is= kswapd > =C2=A0 =C2=A0 =C2=A0 =C2=A0ext4 ignores the request if it's a delayed all= ocation > =C2=A0 =C2=A0 =C2=A0 =C2=A0btrfs ignores the request > > As a result, each filesystem has different performance characteristics > when under memory pressure and there are many pages being dirties. In > some cases, the request is ignored entirely so the VM cannot depend > on the IO being dispatched. > > The objective of this series to to reduce writing of filesystem-backed > pages from reclaim, play nicely with writeback that is already in > progress and throttle reclaim appropriately when dirty pages are > encountered. The assumption is that the flushers will always write > pages faster than if reclaim issues the IO. The new problem is that > reclaim has very little control over how long before a page in a > particular zone or container is cleaned which is discussed later. A > secondary goal is to avoid the problem whereby direct reclaim splices > two potentially deep call stacks together. > > Patch 1 disables writeback of filesystem pages from direct reclaim > =C2=A0 =C2=A0 =C2=A0 =C2=A0entirely. Anonymous pages are still written. > > Patches 2-4 add warnings to XFS, ext4 and btrfs if called from > =C2=A0 =C2=A0 =C2=A0 =C2=A0direct reclaim. With patch 1, this "never happ= ens" and > =C2=A0 =C2=A0 =C2=A0 =C2=A0is intended to catch regressions in this logic= in the > =C2=A0 =C2=A0 =C2=A0 =C2=A0future. > > Patch 5 disables writeback of filesystem pages from kswapd unless > =C2=A0 =C2=A0 =C2=A0 =C2=A0the priority is raised to the point where kswa= pd is considered > =C2=A0 =C2=A0 =C2=A0 =C2=A0to be in trouble. > > Patch 6 throttles reclaimers if too many dirty pages are being > =C2=A0 =C2=A0 =C2=A0 =C2=A0encountered and the zones or backing devices a= re congested. > > Patch 7 invalidates dirty pages found at the end of the LRU so they > =C2=A0 =C2=A0 =C2=A0 =C2=A0are reclaimed quickly after being written back= rather than > =C2=A0 =C2=A0 =C2=A0 =C2=A0waiting for a reclaimer to find them > > Patch 8 disables writeback of filesystem pages from kswapd and > =C2=A0 =C2=A0 =C2=A0 =C2=A0depends entirely on the flusher threads for cl= eaning pages. > =C2=A0 =C2=A0 =C2=A0 =C2=A0This is potentially a problem if the flusher t= hreads take a > =C2=A0 =C2=A0 =C2=A0 =C2=A0long time to wake or are not discovering the p= ages we need > =C2=A0 =C2=A0 =C2=A0 =C2=A0cleaned. By placing the patch last, it's more = likely that > =C2=A0 =C2=A0 =C2=A0 =C2=A0bisection can catch if this situation occurs a= nd can be > =C2=A0 =C2=A0 =C2=A0 =C2=A0easily reverted. > > I consider this series to be orthogonal to the writeback work but > it is worth noting that the writeback work affects the viability of > patch 8 in particular. > > I tested this on ext4 and xfs using fs_mark and a micro benchmark > that does a streaming write to a large mapping (exercises use-once > LRU logic) followed by streaming writes to a mix of anonymous and > file-backed mappings. The command line for fs_mark when botted with > 512M looked something like > > ./fs_mark =C2=A0-d =C2=A0/tmp/fsmark-2676 =C2=A0-D =C2=A0100 =C2=A0-N =C2= =A0150 =C2=A0-n =C2=A0150 =C2=A0-L =C2=A025 =C2=A0-t =C2=A01 =C2=A0-S0 =C2= =A0-s =C2=A010485760 > > The number of files was adjusted depending on the amount of available > memory so that the files created was about 3xRAM. For multiple threads, > the -d switch is specified multiple times. > > 3 kernels are tested. > > vanilla 3.0-rc6 > kswapdwb-v2r5 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 patches 1-7 > nokswapdwb-v2r5 =C2=A0 =C2=A0 =C2=A0 =C2=A0 patches 1-8 > > The test machine is x86-64 with an older generation of AMD processor > with 4 cores. The underlying storage was 4 disks configured as RAID-0 > as this was the best configuration of storage I had available. Swap > is on a separate disk. Dirty ratio was tuned to 40% instead of the > default of 20%. > > Testing was run with and without monitors to both verify that the > patches were operating as expected and that any performance gain was > real and not due to interference from monitors. > > I've posted the raw reports for each filesystem at > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721 > > Unfortunately, the volume of data is excessive but here is a partial > summary of what was interesting for XFS. Could you clarify the notation? 1P : 1 Processor? 512M: system memory size? 2X , 4X, 16X: the size of files created during test > > 512M1P-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Files/s =C2=A0mean =C2=A0 = =C2=A0 =C2=A0 =C2=A0 32.99 ( 0.00%) =C2=A0 =C2=A0 =C2=A0 35.16 ( 6.18%) =C2= =A0 =C2=A0 =C2=A0 35.08 ( 5.94%) > 512M1P-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time fsmark =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 122.54 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 115.54 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 115.21 > 512M1P-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time mmap-strm =C2= =A0 =C2=A0 =C2=A0 =C2=A0105.09 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 104.44 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 106.12 > 512M-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Files/s =C2=A0mean =C2= =A0 =C2=A0 =C2=A0 =C2=A0 30.50 ( 0.00%) =C2=A0 =C2=A0 =C2=A0 33.30 ( 8.40%)= =C2=A0 =C2=A0 =C2=A0 34.68 (12.06%) > 512M-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time fsmark = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 136.14 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 124.26 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 1= 20.33 > 512M-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time mmap-strm= =C2=A0 =C2=A0 =C2=A0 =C2=A0154.68 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 145.91 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 138.83 > 512M-2X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Files/s =C2=A0mean =C2=A0 = =C2=A0 =C2=A0 =C2=A0 28.48 ( 0.00%) =C2=A0 =C2=A0 =C2=A0 32.90 (13.45%) =C2= =A0 =C2=A0 =C2=A0 32.83 (13.26%) > 512M-2X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Elapsed Time fsmark =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 145.64 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 128.67 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 128.67 > 512M-2X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Elapsed Time mmap-strm =C2= =A0 =C2=A0 =C2=A0 =C2=A0145.92 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 136.65 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 137.67 > 512M-4X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Files/s =C2=A0mean =C2=A0 = =C2=A0 =C2=A0 =C2=A0 29.06 ( 0.00%) =C2=A0 =C2=A0 =C2=A0 32.82 (11.46%) =C2= =A0 =C2=A0 =C2=A0 33.32 (12.81%) > 512M-4X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Elapsed Time fsmark =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 153.69 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 136.74 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 135.11 > 512M-4X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Elapsed Time mmap-strm =C2= =A0 =C2=A0 =C2=A0 =C2=A0159.47 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 128.64 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 132.59 > 512M-16X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 Files/s =C2=A0mean =C2=A0 =C2=A0= =C2=A0 =C2=A0 48.80 ( 0.00%) =C2=A0 =C2=A0 =C2=A0 41.80 (-16.77%) =C2=A0 = =C2=A0 =C2=A0 56.61 (13.79%) > 512M-16X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time fsmark =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 161.48 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 144.61 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 141.19 > 512M-16X-xfs =C2=A0 =C2=A0 =C2=A0 =C2=A0 Elapsed Time mmap-strm =C2=A0 = =C2=A0 =C2=A0 =C2=A0167.04 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= 150.62 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 147.83 > --=20 Kind regards, Minchan Kim From amit.sahrawat83@gmail.com Tue Jul 26 23:33:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R4X8VO159147 for ; Tue, 26 Jul 2011 23:33:08 -0500 X-ASG-Debug-ID: 1311741187-255303460000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E0FD79AA8B for ; Tue, 26 Jul 2011 21:33:07 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id fbZIVv7humI8ImQw for ; Tue, 26 Jul 2011 21:33:07 -0700 (PDT) Received: by iyf40 with SMTP id 40so1345333iyf.26 for ; Tue, 26 Jul 2011 21:33:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=5TvuaEezBBaackEBYIoKWFnBsGlVIf5TdoUnc3jBdCA=; b=CHfBvr9/clTK49/IySbRyxluFO7NuPyBqNV+CkCZTL6xi7HKhcSQKb9jVubfo8Y4yi E9p8ZmkEFqW5Q4wkGCnHSgmrhRNs5koM70sHlfHoHgdShMsK5CsZhg9RVtnv5GDN5ws8 l/XQP1jsJXiAgzoKBhK/KgXKIidMbGALLSuPY= MIME-Version: 1.0 Received: by 10.231.119.104 with SMTP id y40mr6136968ibq.172.1311741186949; Tue, 26 Jul 2011 21:33:06 -0700 (PDT) Received: by 10.231.10.75 with HTTP; Tue, 26 Jul 2011 21:33:06 -0700 (PDT) In-Reply-To: <20110726102759.GA20478@infradead.org> References: <20110722083457.GC13963@dastard> <20110724013457.GB31951@dastard> <20110726033302.GB8048@dastard> <20110726102759.GA20478@infradead.org> Date: Wed, 27 Jul 2011 10:03:06 +0530 Message-ID: X-ASG-Orig-Subj: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO Subject: Re: XFS internal error XFS_WANT_CORRUPTED_GOTO From: Amit Sahrawat To: Christoph Hellwig Cc: Ajeet Yadav , Dave Chinner , xfs@oss.sgi.com Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1311741187 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70082 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This problem is with the SCSI driver for USB HDD. We checked for SATA specific USB HDD and the problem is not happening there. The issue lies with the non-availability of internal write cache flushing routine in SCSI Driver. Thanks for all the support. Regards, Amit Sahrawat On Tue, Jul 26, 2011 at 3:57 PM, Christoph Hellwig wrot= e: > On Tue, Jul 26, 2011 at 03:17:48PM +0530, Ajeet Yadav wrote: >> Hello Dave, >> I have seen this problem comes only with USB HDD (we have tired >> different USB HDD, but it seems common with HDD), while USB FLASH >> works fine. > > Can you make sure the USB HDD actually does flush caches reliably and > doesn't lose data it claims it guaranteed to disk? =A0In addition to the > generally bad implementation quality of USB periphals there is a large > chance of beeing lost in translation when converting the SCSI WCE mode > and FUA bit concepts to the ATA equivalents. > > From markus@trippelsdorf.de Wed Jul 27 01:36:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R6a20q165459 for ; Wed, 27 Jul 2011 01:36:03 -0500 X-ASG-Debug-ID: 1311748569-49bd01e60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.ud10.udmedia.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E3270F0B34D for ; Tue, 26 Jul 2011 23:36:10 -0700 (PDT) Received: from mail.ud10.udmedia.de (ud10.udmedia.de [194.117.254.50]) by cuda.sgi.com with ESMTP id 4UMS3DZsvCHxafjy for ; Tue, 26 Jul 2011 23:36:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=simple; d=mail.ud10.udmedia.de; h= date:from:to:cc:subject:message-id:references:mime-version: content-type:in-reply-to; q=dns/txt; s=beta; bh=IhYyug8ICW5rOoSz kDk2yeoncYVLDijynsh5Zonnn9Q=; b=rfs0G39+vTIFjJRytbcqhLP2nkDWq/HD NsOkZp9JmSnPGR8ln4t4CGDsxvu3RztLRCG/YqOjrcJGXb0sp0osmLlMh5UVS5aq ug2hPFfN1vsuwZXf2tKDYm3hdwotza4bn0jHNJr6+9lVpK2N8WlGYMOTxrfodLZ0 +FIiCmpxjSc= Received: (qmail 16721 invoked from network); 27 Jul 2011 08:36:00 +0200 Received: from unknown (HELO x4.trippels.de) (ud10?360p3@91.64.57.18) by mail.ud10.udmedia.de with ESMTPSA (DHE-RSA-AES256-SHA encrypted, authenticated); 27 Jul 2011 08:36:00 +0200 Date: Wed, 27 Jul 2011 08:35:59 +0200 From: Markus Trippelsdorf To: Francesco Allertsen Cc: Alex Elder , xfs-masters@oss.sgi.com, Christoph Hellwig , Al Viro , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org X-ASG-Orig-Subj: Re: xfs compile error with the latest -git Subject: Re: xfs compile error with the latest -git Message-ID: <20110727063559.GB1641@x4.trippels.de> References: <20110726233246.GA8168@fujiko> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110726233246.GA8168@fujiko> X-Barracuda-Connect: ud10.udmedia.de[194.117.254.50] X-Barracuda-Start-Time: 1311748570 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70091 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 2011.07.27 at 01:32 +0200, Francesco Allertsen wrote: > Hi all, > I have tried to compile the latest -git today and I got the following > error while compiling the xfs filesystem. > > CC fs/xfs/linux-2.6/xfs_iops.o > fs/xfs/linux-2.6/xfs_iops.c:1025:14: error: 'xfs_get_acl' undeclared here (not in a function) > > I have bisected the problem and the first bad commit is this one > > commit 4e34e719e457f2e031297175410fc0bd4016a085 > Author: Christoph Hellwig > Date: Sat Jul 23 17:37:31 2011 +0200 > > fs: take the ACL checks to common code > > Replace the ->check_acl method with a ->get_acl method that simply reads an > ACL from disk after having a cache miss. This means we can replace the ACL > checking boilerplate code with a single implementation in namei.c. > > Signed-off-by: Christoph Hellwig > Signed-off-by: Al Viro > > Could you please solve this problem? I have attached also the .config > file if you need it. It's already solved: http://lkml.org/lkml/2011/7/26/94 But somehow Linus didn't notice this patch yet. -- Markus From mgorman@suse.de Wed Jul 27 02:37:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R7bkjw167817 for ; Wed, 27 Jul 2011 02:37:47 -0500 X-ASG-Debug-ID: 1311752273-49b303c30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 387B6168699C for ; Wed, 27 Jul 2011 00:37:53 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 2ZZCPDAvK3KgzxRR for ; Wed, 27 Jul 2011 00:37:53 -0700 (PDT) Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 70CC19C970; Wed, 27 Jul 2011 09:37:41 +0200 (CEST) Date: Wed, 27 Jul 2011 08:37:37 +0100 From: Mel Gorman To: Minchan Kim Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110727073737.GG3010@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311752274 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70095 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 01:32:17PM +0900, Minchan Kim wrote: > > > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721 > > > > Unfortunately, the volume of data is excessive but here is a partial > > summary of what was interesting for XFS. > > Could you clarify the notation? > 1P : 1 Processor? > 512M: system memory size? > 2X , 4X, 16X: the size of files created during test > 1P == 1 Processor 512M == 512M RAM (mem=512M) 2X == 2 x NUM_CPU fsmark threads -- Mel Gorman SUSE Labs From coolthecold@gmail.com Wed Jul 27 04:13:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_23,J_CHICKENPOX_43,T_DKIM_INVALID,T_TO_NO_BRKTS_FREEMAIL autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R9DpPh178319 for ; Wed, 27 Jul 2011 04:13:51 -0500 X-ASG-Debug-ID: 1311758037-444b02580000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-fx0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9060C1686C72 for ; Wed, 27 Jul 2011 02:13:57 -0700 (PDT) Received: from mail-fx0-f47.google.com (mail-fx0-f47.google.com [209.85.161.47]) by cuda.sgi.com with ESMTP id jZFJP72VMR8yzbo9 for ; Wed, 27 Jul 2011 02:13:57 -0700 (PDT) Received: by fxg11 with SMTP id 11so114626fxg.6 for ; Wed, 27 Jul 2011 02:13:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:x-priority:message-id:to:cc:subject:in-reply-to :references:mime-version:content-type; bh=jG0vb9yC5a7/3MgyLFxnZEqJT7nADPZ2YHBCUqBjgAg=; b=APA+H81gj6zBiJFJOGCtltCK0Pd1P7P1xhdzxLJtN7hZGI8SdhoRDNC336igUkflce pG5zSAKloI13NIpfdu0siE0bf/k5yakXGwNZyUv4I5exbhZgt3RhjS5meWpGQMEgZCr1 5RYt3SMjFoFQiCnzQKts/hRulGw8L5IsY96+k= Received: by 10.223.43.1 with SMTP id u1mr8203387fae.38.1311758027685; Wed, 27 Jul 2011 02:13:47 -0700 (PDT) Received: from [192.168.4.150] (mail.mobimark.ru [89.179.157.12]) by mx.google.com with ESMTPS id c1sm228967fam.22.2011.07.27.02.13.44 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jul 2011 02:13:45 -0700 (PDT) Date: Wed, 27 Jul 2011 13:13:43 +0400 From: Roman Ovchinnikov X-Priority: 3 (Normal) Message-ID: <431429966.20110727131343@gmail.com> To: aelder@sgi.com CC: Christoph Hellwig , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] adding example with xfs_info output decryption Subject: Re: [PATCH] adding example with xfs_info output decryption In-Reply-To: <1311706943.2890.42.camel@doink> References: <20110722155200.GA31867@infradead.org> <1311706943.2890.42.camel@doink> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------531D1EC1759BAED" X-Barracuda-Connect: mail-fx0-f47.google.com[209.85.161.47] X-Barracuda-Start-Time: 1311758038 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70101 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean ------------531D1EC1759BAED Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable =0D=0A On Tue, Jul 26, 2011 at 11:02 PM, Alex Elder wrote: > On Fri, 2011-07-22 at 11:52 -0400, Christoph Hellwig wrote: >> On Mon, May 23, 2011 at 02:34:54AM +0400, CoolCold wrote: >> > Basing on irc discussions and questions about reading xfs_info output >> > I've added example in xfs_growfs manpage. >> >> Alex, Dave, Eric, do you guys have any comments on this? =C2=A0Language >> nitpicks from the native speakers? =C2=A0Otherwise I'd be inclined to pu= t it >> in. >> >> > Signed-off-by: Roman Ovchinnikov > > I had to dust off my troff command knowledge to review this. > It has been many years... I was testing how manpage will look with "man man/man8/xfs_growfs.8", works= for me. > > Christoph prompted to review this from a native speaker's > point of view though, so I do that here. =C2=A0I do end up > with a question for others to try to resolve. > > I think what you are doing (adding the example) is a good idea > to help clarify things in any case. Thanks! > >> > --- >> > =C2=A0man/man8/xfs_growfs.8 | =C2=A0 34 ++++++++++++++++++++++++++++++= ++++ >> > =C2=A01 files changed, 34 insertions(+), 0 deletions(-) >> > >> > diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8 >> > index 02793ae..c782fc1 100644 >> > --- a/man/man8/xfs_growfs.8 >> > +++ b/man/man8/xfs_growfs.8 >> > @@ -1,3 +1,14 @@ >> > +.\" Verbatim blocks taken from openssl req manpage content >> > +.de Vb \" Begin verbatim text >> > +.ft CW >> > +.nf >> > +.ne \\$1 >> > +.. >> > +.de Ve \" End verbatim text >> > +.ft R >> > +.fi >> > +.. >> > + >> > =C2=A0.TH xfs_growfs 8 >> > =C2=A0.SH NAME >> > =C2=A0xfs_growfs, xfs_info \- expand an XFS filesystem >> > @@ -105,6 +116,7 @@ this is specified with >> > =C2=A0Specifies that no change to the filesystem is to be made. >> > =C2=A0The filesystem geometry is printed, and argument checking is per= formed, >> > =C2=A0but no growth occurs. >> > +.B See output examples below. >> > =C2=A0.TP >> > =C2=A0.BI "\-r | \-R " size >> > =C2=A0Specifies that the real-time section of the filesystem should be= grown. If the >> > @@ -152,6 +164,28 @@ reside. In order to grow a filesystem, it is >> > necessary to provide added >> > =C2=A0space for it to occupy. Therefore there must be at least one spa= re new >> > =C2=A0disk partition available. Adding the space is often done through= the use >> > =C2=A0of a logical volume manager. >> > +.SH "EXAMPLES" >> > + >> > +Examining xfs_info output. > > How about, "Understanding xfs_info output" > >> > +.PP >> > +Let's assume one have the next xfs_info output: >> > +.PP >> > +.Vb 1 > > Maybe you could add something indicating how the command was issued. > I.e.: > > =C2=A0 =C2=A0\&# xfs_info /dev/sda Okay. > >> > +\& meta-data=3D/dev/sda =C2=A0 =C2=A0 =C2=A0isize=3D256 =C2=A0 =C2=A0= agcount=3D32, agsize=3D16777184 blks >> > +\& =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0sectsz=3D512 =C2=A0 attr=3D2 >> > +\& data =C2=A0 =C2=A0 =3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0bsize=3D4096 =C2=A0 blocks=3D536869888, imaxpct=3D5 >> > +\& =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0sunit=3D32 =C2=A0 =C2=A0 swidth=3D128 blks >> > +\& naming =C2=A0 =3Dversion 2 =C2=A0 =C2=A0 bsize=3D4096 >> > +\& log =C2=A0 =C2=A0 =C2=A0=3Dinternal =C2=A0 =C2=A0 =C2=A0bsize=3D40= 96 =C2=A0 blocks=3D32768, version=3D2 >> > +\& =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0sectsz=3D512 =C2=A0 sunit=3D32 blks, lazy-count=3D1 >> > +\& realtime =3Dnone =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0extsz=3D524288 = blocks=3D0, rtextents=3D0 > > I think you should drop the space character after each '&' above. > The way you have it puts a slight indent in the output. Personally I like indentation here, to make the text look like "quote", and= may be I'd add one more space > >> > +.Ve >> > +.PP >> > + >> > +Here, data section block size (bsize) is 4096 bytes. Therefore >> > +"sunit=3D32 swidth=3D128 blks" means stripe unit is 32*4096 bytes =3D= 128 kibibytes >> > +and stripe width is 128*4096 bytes =3D 512 kibibytes. Filesystem is s= triped >> > +over 4 ( 128 / 32 ) stripes. > > I'll just write what I think it should be rather than trying > to show lots of little changes: > > =C2=A0Here, the data section of the output indicates "bsize=3D4096", > =C2=A0meaning the data block size for this filesystem is 4096 bytes. > =C2=A0This section also shows "sunit=3D32 swidth=3D128 blks", which means > =C2=A0the stripe unit is 32*4096 bytes =3D 128 kibibytes and the stripe > =C2=A0width is 128*4096 bytes =3D 512 kibibytes. > > The last sentence I'm not sure I agree with. =C2=A0I think you're > trying to explain the relationship between a stripe width > and stripe unit, and the components that make up a stripe. > Your use of the term "stripe" doesn't match what I take > to be its meaning. =C2=A0I'm not saying my meaning is right, but > I'd like to make sure we have agreement on these terms. Generally I was trying to fact out units of measurement - as,say, mkfs.xfs = manpage describes option parameters as 512 bytes blocks/just bytes to be sp= ecified when calling mkfs.xfs, and when someone gets xfs_info output for th= at mount point it really differs from parameters he passed to mkfs.xfs (at = least at first sight). > > Given that, I would re-state your last sentence (using my > terminology as): > > =C2=A0A single stripe of this filesystem therefore consists > =C2=A0of four stripe units (128 blocks / 32 blocks per unit). > > I.e., my meaning says that =C2=A0a "stripe" is "stripe width" > blocks wide, made up of four "stripe units", each of which > is 32 blocks, where a block is 4096 bytes. > > I think you are using the term "stripe" to represent what > I'm calling the "stripe unit". > > Perhaps someone else can help ensure we're using > terms with meaning consistent with how XFS has used > them historically. I've checked manpage for mkfs.xfs and it operates with terms "stripe unit" = & "stripe width" in your understanding, so I think this is historically pro= per way to think about stripes. > > =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0-Alex > > >> > =C2=A0.SH SEE ALSO >> > =C2=A0.BR mkfs.xfs (8), >> > =C2=A0.BR md (4), > > So, I've updated patch (now it mostly contains your text), but left indentation. Patch is attached and url for it is http://web.coolcold.org/da= ta/0001-adding-example-with-xfs_info-decryption-v2.patch I'm new to all this public patch-through-email process, should I start new mail thread with new patch text inside message? --=20 Best regards, [COOLCOLD-RIPN] ------------531D1EC1759BAED Content-Type: application/octet-stream; name="0001-adding-example-with-xfs_info-decryption-v2.patch" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="0001-adding-example-with-xfs_info-decryption-v2.patch" RnJvbSAxYmQ0OTA2YzdkODkyOGNiMTU3MTY2N2E4YTMzMWU2YWQyYzY5ZGFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBSb21hbiBPdmNoaW5uaWtvdiA8Y29vbHRoZWNvbGRA Z21haWwuY29tPgpEYXRlOiBTYXQsIDIxIE1heSAyMDExIDA0OjA1OjMzICswNDAwClN1Ympl Y3Q6IFtQQVRDSF0gYWRkaW5nIGV4YW1wbGUgd2l0aCB4ZnNfaW5mbyBkZWNyeXB0aW9uLCB2 MgoKClNpZ25lZC1vZmYtYnk6IFJvbWFuIE92Y2hpbm5pa292IDxjb29sdGhlY29sZEBnbWFp bC5jb20+Ci0tLQogbWFuL21hbjgveGZzX2dyb3dmcy44IHwgICAzNyArKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGVzIGNoYW5nZWQsIDM3IGluc2VydGlv bnMoKyksIDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvbWFuL21hbjgveGZzX2dyb3dm cy44IGIvbWFuL21hbjgveGZzX2dyb3dmcy44CmluZGV4IDAyNzkzYWUuLmU1ZjgyNWEgMTAw NjQ0Ci0tLSBhL21hbi9tYW44L3hmc19ncm93ZnMuOAorKysgYi9tYW4vbWFuOC94ZnNfZ3Jv d2ZzLjgKQEAgLTEsMyArMSwxNCBAQAorLlwiIFZlcmJhdGltIGJsb2NrcyB0YWtlbiBmcm9t IG9wZW5zc2wgcmVxIG1hbnBhZ2UgY29udGVudAorLmRlIFZiIFwiIEJlZ2luIHZlcmJhdGlt IHRleHQKKy5mdCBDVworLm5mCisubmUgXFwkMQorLi4KKy5kZSBWZSBcIiBFbmQgdmVyYmF0 aW0gdGV4dAorLmZ0IFIKKy5maQorLi4KKwogLlRIIHhmc19ncm93ZnMgOAogLlNIIE5BTUUK IHhmc19ncm93ZnMsIHhmc19pbmZvIFwtIGV4cGFuZCBhbiBYRlMgZmlsZXN5c3RlbQpAQCAt MTA1LDYgKzExNiw3IEBAIHRoaXMgaXMgc3BlY2lmaWVkIHdpdGgKIFNwZWNpZmllcyB0aGF0 IG5vIGNoYW5nZSB0byB0aGUgZmlsZXN5c3RlbSBpcyB0byBiZSBtYWRlLgogVGhlIGZpbGVz eXN0ZW0gZ2VvbWV0cnkgaXMgcHJpbnRlZCwgYW5kIGFyZ3VtZW50IGNoZWNraW5nIGlzIHBl cmZvcm1lZCwKIGJ1dCBubyBncm93dGggb2NjdXJzLgorLkIgU2VlIG91dHB1dCBleGFtcGxl cyBiZWxvdy4KIC5UUAogLkJJICJcLXIgfCBcLVIgIiBzaXplCiBTcGVjaWZpZXMgdGhhdCB0 aGUgcmVhbC10aW1lIHNlY3Rpb24gb2YgdGhlIGZpbGVzeXN0ZW0gc2hvdWxkIGJlIGdyb3du LiBJZiB0aGUKQEAgLTE1Miw2ICsxNjQsMzEgQEAgcmVzaWRlLiBJbiBvcmRlciB0byBncm93 IGEgZmlsZXN5c3RlbSwgaXQgaXMgbmVjZXNzYXJ5IHRvIHByb3ZpZGUgYWRkZWQKIHNwYWNl IGZvciBpdCB0byBvY2N1cHkuIFRoZXJlZm9yZSB0aGVyZSBtdXN0IGJlIGF0IGxlYXN0IG9u ZSBzcGFyZSBuZXcKIGRpc2sgcGFydGl0aW9uIGF2YWlsYWJsZS4gQWRkaW5nIHRoZSBzcGFj ZSBpcyBvZnRlbiBkb25lIHRocm91Z2ggdGhlIHVzZQogb2YgYSBsb2dpY2FsIHZvbHVtZSBt YW5hZ2VyLgorLlNIICJFWEFNUExFUyIKKworVW5kZXJzdGFuZGluZyB4ZnNfaW5mbyBvdXRw dXQuCisuUFAKK0xldCdzIGFzc3VtZSBvbmUgaGF2ZSB0aGUgbmV4dCB4ZnNfaW5mbyAvZGV2 L3NkYSBvdXRwdXQ6CisuUFAKKy5WYiAxCitcJiBtZXRhLWRhdGE9L2Rldi9zZGEgICAgICBp c2l6ZT0yNTYgICAgYWdjb3VudD0zMiwgYWdzaXplPTE2Nzc3MTg0IGJsa3MKK1wmICAgICAg ICAgID0gICAgICAgICAgICAgIHNlY3Rzej01MTIgICBhdHRyPTIKK1wmIGRhdGEgICAgID0g ICAgICAgICAgICAgIGJzaXplPTQwOTYgICBibG9ja3M9NTM2ODY5ODg4LCBpbWF4cGN0PTUK K1wmICAgICAgICAgID0gICAgICAgICAgICAgIHN1bml0PTMyICAgICBzd2lkdGg9MTI4IGJs a3MKK1wmIG5hbWluZyAgID12ZXJzaW9uIDIgICAgIGJzaXplPTQwOTYKK1wmIGxvZyAgICAg ID1pbnRlcm5hbCAgICAgIGJzaXplPTQwOTYgICBibG9ja3M9MzI3NjgsIHZlcnNpb249Mgor XCYgICAgICAgICAgPSAgICAgICAgICAgICAgc2VjdHN6PTUxMiAgIHN1bml0PTMyIGJsa3Ms IGxhenktY291bnQ9MQorXCYgcmVhbHRpbWUgPW5vbmUgICAgICAgICAgZXh0c3o9NTI0Mjg4 IGJsb2Nrcz0wLCBydGV4dGVudHM9MAorLlZlCisuUFAKKworSGVyZSwgdGhlIGRhdGEgc2Vj dGlvbiBvZiB0aGUgb3V0cHV0IGluZGljYXRlcyAiYnNpemU9NDA5NiIsCittZWFuaW5nIHRo ZSBkYXRhIGJsb2NrIHNpemUgZm9yIHRoaXMgZmlsZXN5c3RlbSBpcyA0MDk2IGJ5dGVzLgor VGhpcyBzZWN0aW9uIGFsc28gc2hvd3MgInN1bml0PTMyIHN3aWR0aD0xMjggYmxrcyIsIHdo aWNoIG1lYW5zCit0aGUgc3RyaXBlIHVuaXQgaXMgMzIqNDA5NiBieXRlcyA9IDEyOCBraWJp Ynl0ZXMgYW5kIHRoZSBzdHJpcGUKK3dpZHRoIGlzIDEyOCo0MDk2IGJ5dGVzID0gNTEyIGtp YmlieXRlcy4KK0Egc2luZ2xlIHN0cmlwZSBvZiB0aGlzIGZpbGVzeXN0ZW0gdGhlcmVmb3Jl IGNvbnNpc3RzCitvZiBmb3VyIHN0cmlwZSB1bml0cyAoMTI4IGJsb2NrcyAvIDMyIGJsb2Nr cyBwZXIgdW5pdCkuCiAuU0ggU0VFIEFMU08KIC5CUiBta2ZzLnhmcyAoOCksCiAuQlIgbWQg KDQpLAotLSAKMS43LjIuNQoK ------------531D1EC1759BAED-- From rjw@sisk.pl Wed Jul 27 04:33:56 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R9XtFJ180288 for ; Wed, 27 Jul 2011 04:33:56 -0500 X-ASG-Debug-ID: 1311759233-4e3f00b40000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ogre.sisk.pl (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4631F9B439 for ; Wed, 27 Jul 2011 02:33:53 -0700 (PDT) Received: from ogre.sisk.pl (ogre.sisk.pl [217.79.144.158]) by cuda.sgi.com with ESMTP id qxvsyHImB1IHk2As for ; Wed, 27 Jul 2011 02:33:53 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by ogre.sisk.pl (Postfix) with ESMTP id CF3F21B5FC2; Wed, 27 Jul 2011 11:01:57 +0200 (CEST) Received: from ogre.sisk.pl ([127.0.0.1]) by localhost (ogre.sisk.pl [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20687-01; Wed, 27 Jul 2011 11:01:37 +0200 (CEST) Received: from ferrari.rjw.lan (220-bem-13.acn.waw.pl [82.210.184.220]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ogre.sisk.pl (Postfix) with ESMTP id EFCBD1B5F23; Wed, 27 Jul 2011 11:01:36 +0200 (CEST) From: "Rafael J. Wysocki" To: Dave Chinner X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Date: Wed, 27 Jul 2011 11:35:13 +0200 User-Agent: KMail/1.13.6 (Linux/3.0.0+; KDE/4.6.0; x86_64; ; ) Cc: Christoph , xfs@oss.sgi.com, Linux PM mailing list , Pavel Machek , Nigel Cunningham References: <4E1C70AD.1010101@u-club.de> <201107262228.12099.rjw@sisk.pl> <20110727004543.GE8048@dastard> In-Reply-To: <20110727004543.GE8048@dastard> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Message-Id: <201107271135.13297.rjw@sisk.pl> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at ogre.sisk.pl using MkS_Vir for Linux X-Barracuda-Connect: ogre.sisk.pl[217.79.144.158] X-Barracuda-Start-Time: 1311759234 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70102 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean On Wednesday, July 27, 2011, Dave Chinner wrote: > On Tue, Jul 26, 2011 at 10:28:11PM +0200, Rafael J. Wysocki wrote: > > On Wednesday, July 13, 2011, Dave Chinner wrote: > > > On Tue, Jul 12, 2011 at 06:05:01PM +0200, Christoph wrote: > ..... > > > > SysRq : Show Blocked State > > > > > > > > pm-hibernate D 0000000000000000 0 3638 3637 0x00000000 > > > > ffff8800017bf918 0000000000000082 ffff8800017be010 ffff880000000000 > > > > ffff8800017be010 ffff88000b8a6170 0000000000013900 ffff8800017bffd8 > > > > ffff8800017bffd8 0000000000013900 ffffffff8148b020 ffff88000b8a6170 > > > > Call Trace: > > > > [] schedule_timeout+0x22/0xbb > > > > [] wait_for_common+0xcb/0x148 > > > > [] ? try_to_wake_up+0x18c/0x18c > > > > [] ? down_write+0x2d/0x31 > > > > [] wait_for_completion+0x18/0x1a > > > > [] xfs_reclaim_inode+0x74/0x258 [xfs] > > > > [] xfs_reclaim_inodes_ag+0x195/0x264 [xfs] > > > > [] xfs_reclaim_inode_shrink+0x52/0x90 [xfs] > > > > [] shrink_slab+0xdb/0x151 > > > > [] do_try_to_free_pages+0x204/0x39a > > > > [] ? apic_timer_interrupt+0xe/0x20 > > > > [] shrink_all_memory+0x8f/0xa8 > > > > [] ? next_online_pgdat+0x20/0x41 > > > > [] hibernate_preallocate_memory+0x1c4/0x30f > > > > [] ? kobject_put+0x47/0x4b > > > > [] hibernation_snapshot+0x45/0x281 > > > > [] hibernate+0xd1/0x1b8 > > > > [] state_store+0x57/0xce > > > > [] kobj_attr_store+0x17/0x19 > > > > [] sysfs_write_file+0xfc/0x138 > > > > [] vfs_write+0xa9/0x105 > > > > [] sys_write+0x45/0x6c > > > > [] system_call_fastpath+0x16/0x1b > > > > > > It's waiting for IO completion, and holding an AG scan lock. > > > > > > And IO completion requires a workqueue to run. Just FYI, this > > > process of inode reclaim can dirty the filesystem, long after > > > hibernate have assumed that it is clean due to the sys_sync() call > > > you do after freezing the processes. I pointed out this flaw in > > > using sync to write dirty data prior to hibernate a couple of years > > > ago. > > > > However, attempts to remove the sys_sync() from the hibernate code > > were objected to by some developers, since they believe it will increase > > the probability of data loss in case of a failing hibernation in general. > > I'm not suggesting it gets removed, I'm suggesting it gets replaced > because it doesn't give the guarantees that you want or need. > > > > Anyway, it's a good thing that XFS doesn't use freezable work > > > queues, otherwise it would hang on every hibernate. Perhaps I should > > > do that to force hibernate to do things properly in filesystems > > > land. > > > > Well, I'd say it's a very well known fact that filesystems are not > > handled in any special way during hibernation, which is not a good > > thing. Nevertheless, I've never seen anyone from the filesystems land > > pay any kind of attention to this issue. > > I beg to differ. We went through this exact clas of bugs with swsusp > back in 2006: > > https://lkml.org/lkml/2006/11/12/144 You're right, sorry. We discussed this 5 years ago, but the context was a bit different (the hibernation code was using a different mechanism for freeing memory). > And this patch: > > https://lkml.org/lkml/2006/11/1/155 > > ([PATCH -mm] swsusp: Freeze filesystems during suspend) > > "This is needed by swsusp, because some filesystems (eg. XFS) use > work queues and worker_threads run with PF_NOFREEZE set, so they can > cause some writes to be performed after the suspend image has been > created which may corrupt the filesystem. The additional benefit of > it is that if the resume fails, the filesystems will be in a > consistent state and there won't be any journal replays needed." > > -- > > And the patch essentially does: > > - sys_sync(); > + freeze_filesystems(); Well, if you still think the patch does the right thing, I can rebase it on top of the current freezer code and resubmit. > But, Pavel didn't like freezing filesystems to quiesce them > correctly, so the sys_sync() and all it's problems have remained > until this day, where we still have users tripping over the same > "filesystem not idle" problems. The problem seems to be quite specific to XFS, though. The Pavel's objection, if I remember it correctly, was that some (or the majority of?) filesystems didn't implement the freezing operation, so they would be more vulnerable to data loss in case of a failing hibernation after this change. However, that's better than actively causing pain to XFS users. > > [....] > > > > IOWs, what hibernate does is: > > > > > > freeze_processes() > > > sys_sync() > > > allocate a large amount of memory > > > > > > Freezing the processes causes parts of filesystems to be put in the > > > fridge, which means there is no guarantee that sys_sync() actually > > > does what it is supposed to. As it is, sys_sync() really only > > > guarantees file data is clean in memory - metadata does not need to > > > be clean as long s it has been journalled and the journal is safe on > > > disk. > > > > > > Further, allocating memory can cause memory reclaim to enter the > > > filesystem and try to free memory held by the filesystem. In XFS (at > > > least) this can cause the filesystem to issue tranactions and > > > metadata IO to clean the dirty metadata to enable it to be > > > reclaimed. So hibernate is effectively guaranteed to dirty the > > > filesystem after it has frozen all the worker threads the filesystem > > > might rely on. > > > > > > Also, by this point kswapd has already been frozen, so hibernate is > > > relying totally on direct memory reclaim to free up the memory it > > > requires. I'm not sure that's a good idea. > > > > > > IOWs, hibernate is still broken by design - and broken in exactly > > > the way that was pointed out a couple of years ago by myself and > > > others in the filesystem world: sys_sync() does not quiesce or > > > guarantee a clean filesystem in memory after it completes. > > > > > > There is a solution to this, and it already exists - it's called > > > freezing the filesystem. Effectively hibernate needs to allocate > > > memory before it freezes kernel/filesystem worker threads: > > > > > > freeze_userspace_processes() > > > > > > // just to clean the page cache quickly > > > sys_sync() > > > > > > // optionally to free page/inode/dentry caches: > > > iterate_supers(drop_pagecache_sb, NULL); > > > drop_slab() > > > > > > allocate a large amount of memory > > > > > > // Now quiesce the filesystems and clean remaining metadata > > > iterate_supers(freeze_super, NULL); > > > > > > freeze_remaining_processes() > > > > > > This guarantees that filesystems are still working when memory > > > reclaim comes along to free memory for the hibernate image, and that > > > once it is allocated that filesystems will not be changed until > > > thawed on the hibernate wakeup. > > > > > > So, like I said a couple of years ago: fix hibernate to quiesce > > > filesystems properly, and the hibernate will be much more reliable > > > and robust and less likely to break randomly in the future. > > > > Why don't you simply submit a patch to do that? > > a) I don't know how to test suspend/hibernate > b) I don't have any hardware I can test it on. > c) I don't scale to solving every problem Linux has > d) you guys need to decide how you're going to fix this because the > problem has already been solved once before and it didn't get merged > because nobody in the swsusp/hibernate world could agree on anything > at the time. OK, I'm not a filesystem expert in turn. As I said, I can revive the Nigel's patch if you think it's better than the code we have, but I'm afraid that's all I can do without any help from the filesystems people. Thanks, Rafael From sven@narfation.org Wed Jul 27 04:48:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6R9lxkO180905 for ; Wed, 27 Jul 2011 04:48:00 -0500 X-ASG-Debug-ID: 1311760086-3a5c03be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from v3-1039.vlinux.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 62E02F0ABDF; Wed, 27 Jul 2011 02:48:07 -0700 (PDT) Received: from v3-1039.vlinux.de (narfation.org [79.140.41.39]) by cuda.sgi.com with ESMTP id NJuaGSphPi4bbjeG; Wed, 27 Jul 2011 02:48:07 -0700 (PDT) Received: from sven-desktop.home.narfation.org (bathseba.informatik.tu-chemnitz.de [134.109.192.185]) by v3-1039.vlinux.de (Postfix) with ESMTPSA id DC44994121; Wed, 27 Jul 2011 11:48:45 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=narfation.org; s=mail; t=1311760126; bh=ZKWdvPv1cPNDD5rgmySo9n/OVDyVt88wm0Pa+G4p04o=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=IfegHmhHZE4Ym7ZbMaOLU9rn1OU1mxp/8hIKNpobRneEYmUHlgelpTCsN1SytdC1G SNVC9xHgjeMMyr6Eq0Ug0e/wDaQuWafN6NrMCcV+SyCVjyVNkpB9kfVkMM/GJa0/kL ilEVP0WhYTual0ETQyereNRMtGcMlX84S9+lQkPo= From: Sven Eckelmann To: linux-arch@vger.kernel.org Cc: linux-kernel@vger.kernel.org, Sven Eckelmann , Alex Elder , xfs-masters@oss.sgi.com, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCHv4 08/11] xfs: Use *_dec_not_zero instead of *_add_unless Subject: [PATCHv4 08/11] xfs: Use *_dec_not_zero instead of *_add_unless Date: Wed, 27 Jul 2011 11:47:47 +0200 Message-Id: <1311760070-21532-8-git-send-email-sven@narfation.org> X-Mailer: git-send-email 1.7.5.4 In-Reply-To: <1311760070-21532-1-git-send-email-sven@narfation.org> References: <1311760070-21532-1-git-send-email-sven@narfation.org> X-Barracuda-Connect: narfation.org[79.140.41.39] X-Barracuda-Start-Time: 1311760088 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0007 1.0000 -2.0165 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70103 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean atomic_dec_not_zero is defined for each architecture through to provide the functionality of atomic_add_unless(x, -1, 0). Signed-off-by: Sven Eckelmann Cc: Alex Elder Cc: xfs-masters@oss.sgi.com Cc: xfs@oss.sgi.com --- fs/xfs/linux-2.6/xfs_buf.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/xfs/linux-2.6/xfs_buf.c b/fs/xfs/linux-2.6/xfs_buf.c index b2b4119..a68d9bf 100644 --- a/fs/xfs/linux-2.6/xfs_buf.c +++ b/fs/xfs/linux-2.6/xfs_buf.c @@ -1429,7 +1429,7 @@ xfs_buftarg_shrink( * zero. If the value is already zero, we need to reclaim the * buffer, otherwise it gets another trip through the LRU. */ - if (!atomic_add_unless(&bp->b_lru_ref, -1, 0)) { + if (!atomic_dec_not_zero(&bp->b_lru_ref)) { list_move_tail(&bp->b_lru, &btp->bt_lru); continue; } -- 1.7.5.4 From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 05:33:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RAXXeT186241 for ; Wed, 27 Jul 2011 05:33:34 -0500 X-ASG-Debug-ID: 1311762812-495203730000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1FFCE182BB43 for ; Wed, 27 Jul 2011 03:33:32 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id 1v7Aoakp6kDBzfum for ; Wed, 27 Jul 2011 03:33:32 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qm1QK-0006Sh-52; Wed, 27 Jul 2011 10:33:08 +0000 Date: Wed, 27 Jul 2011 06:33:08 -0400 From: Christoph Hellwig To: "Rafael J. Wysocki" Cc: Dave Chinner , Christoph , Linux PM mailing list , Nigel Cunningham , Pavel Machek , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Message-ID: <20110727103308.GA20805@infradead.org> References: <4E1C70AD.1010101@u-club.de> <201107262228.12099.rjw@sisk.pl> <20110727004543.GE8048@dastard> <201107271135.13297.rjw@sisk.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107271135.13297.rjw@sisk.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311762813 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70106 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 11:35:13AM +0200, Rafael J. Wysocki wrote: > The Pavel's objection, if I remember it correctly, was that some > (or the majority of?) filesystems didn't implement the freezing operation, > so they would be more vulnerable to data loss in case of a failing hibernation > after this change. However, that's better than actively causing pain to XFS > users. The objection never made sense and only means he never read the code. freeze_super (or freeze_bdev back then) always does a sync_filesystem before even checking if we have a freeze method, and sync_filesystem is what we iterate over for each superblock in sync(). From nigel@tuxonice.net Wed Jul 27 07:22:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RCMrpQ195010 for ; Wed, 27 Jul 2011 07:22:54 -0500 X-ASG-Debug-ID: 1311769372-641a00310000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail.tuxonice.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 284289B90B for ; Wed, 27 Jul 2011 05:22:52 -0700 (PDT) Received: from mail.tuxonice.net (tuxonice.net [74.207.252.127]) by cuda.sgi.com with ESMTP id Ae0T8WdgaH7XA6Mj for ; Wed, 27 Jul 2011 05:22:52 -0700 (PDT) Received: from [192.168.0.5] (ppp118-209-10-229.lns20.mel4.internode.on.net [118.209.10.229]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.tuxonice.net (Postfix) with ESMTPSA id 51AED5E172; Wed, 27 Jul 2011 08:22:50 -0400 (EDT) Message-ID: <4E300317.7090108@tuxonice.net> Date: Wed, 27 Jul 2011 22:22:47 +1000 From: Nigel Cunningham User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.2.18) Gecko/20110617 Lightning/1.0b2 Thunderbird/3.1.11 MIME-Version: 1.0 To: Christoph Hellwig CC: "Rafael J. Wysocki" , Dave Chinner , Christoph , Linux PM mailing list , Pavel Machek , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag Subject: Re: PM / hibernate xfs lock up / xfs_reclaim_inodes_ag References: <4E1C70AD.1010101@u-club.de> <201107262228.12099.rjw@sisk.pl> <20110727004543.GE8048@dastard> <201107271135.13297.rjw@sisk.pl> <20110727103308.GA20805@infradead.org> In-Reply-To: <20110727103308.GA20805@infradead.org> X-TagToolbar-Keys: D20110727222247508 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: tuxonice.net[74.207.252.127] X-Barracuda-Start-Time: 1311769373 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70114 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hi. On 27/07/11 20:33, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 11:35:13AM +0200, Rafael J. Wysocki wrote: >> The Pavel's objection, if I remember it correctly, was that some >> (or the majority of?) filesystems didn't implement the freezing operation, >> so they would be more vulnerable to data loss in case of a failing hibernation >> after this change. However, that's better than actively causing pain to XFS >> users. > > The objection never made sense and only means he never read the code. > freeze_super (or freeze_bdev back then) always does a sync_filesystem > before even checking if we have a freeze method, and sync_filesystem is > what we iterate over for each superblock in sync(). I've had freezing supers in TOI for a couple of years now and it has only ever helped. To be honest, if you have a ton of dirty pages, it does result in a big delay, but that's the worst of it. Regards, Nigel -- Evolution (n): A hypothetical process whereby improbable events occur with alarming frequency, order arises from chaos, and no one is given credit. From aelder@sgi.com Wed Jul 27 10:28:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_23, J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RFSZlT209624 for ; Wed, 27 Jul 2011 10:28:35 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id EAB4230405F; Wed, 27 Jul 2011 08:28:31 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Wed, 27 Jul 2011 10:28:31 -0500 Subject: Re: [PATCH] adding example with xfs_info output decryption From: Alex Elder Reply-To: To: Roman Ovchinnikov CC: Christoph Hellwig , In-Reply-To: <431429966.20110727131343@gmail.com> References: <20110722155200.GA31867@infradead.org> <1311706943.2890.42.camel@doink> <431429966.20110727131343@gmail.com> Content-Type: text/plain; charset="UTF-8" Date: Wed, 27 Jul 2011 10:28:31 -0500 Message-ID: <1311780511.1999.67.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-27 at 13:13 +0400, Roman Ovchinnikov wrote: > > On Tue, Jul 26, 2011 at 11:02 PM, Alex Elder wrote: > > On Fri, 2011-07-22 at 11:52 -0400, Christoph Hellwig wrote: > >> On Mon, May 23, 2011 at 02:34:54AM +0400, CoolCold wrote: > >> > Basing on irc discussions and questions about reading xfs_info output > >> > I've added example in xfs_growfs manpage. > >> > >> Alex, Dave, Eric, do you guys have any comments on this? Language > >> nitpicks from the native speakers? Otherwise I'd be inclined to put it > >> in. I have some stuff at the very end of this message I'd like some feedback on--so dear reader please take a look at that before you delete this message. > >> > Signed-off-by: Roman Ovchinnikov > > > > I had to dust off my troff command knowledge to review this. > > It has been many years... > I was testing how manpage will look with "man man/man8/xfs_growfs.8", > works for me. Yes it works fine. I was just trying to understand what the "Vb" (verbatim) macro was doing. Today I found a "groff_man(7)" manual page, which documents the ".EX" and ".EE" macros which do what the ".Vb" macro defined here does, plus drops hyphenation and does a better job of temporarily substituting the font. I looked for something like that yesterday but didn't find it until today. I guess I would prefer to use the .EE/.EX macros if they work. But I'll leave it up to you to decide. > > Christoph prompted to review this from a native speaker's > > point of view though, so I do that here. I do end up > > with a question for others to try to resolve. > > > > I think what you are doing (adding the example) is a good idea > > to help clarify things in any case. > Thanks! > > > >> > --- > >> > man/man8/xfs_growfs.8 | 34 ++++++++++++++++++++++++++++++++++ > >> > 1 files changed, 34 insertions(+), 0 deletions(-) > >> > > >> > diff --git a/man/man8/xfs_growfs.8 b/man/man8/xfs_growfs.8 > >> > index 02793ae..c782fc1 100644 > >> > --- a/man/man8/xfs_growfs.8 > >> > +++ b/man/man8/xfs_growfs.8 > >> > @@ -1,3 +1,14 @@ > >> > +.\" Verbatim blocks taken from openssl req manpage content > >> > +.de Vb \" Begin verbatim text > >> > +.ft CW > >> > +.nf > >> > +.ne \\$1 > >> > +.. > >> > +.de Ve \" End verbatim text > >> > +.ft R > >> > +.fi > >> > +.. > >> > + > >> > .TH xfs_growfs 8 > >> > .SH NAME > >> > xfs_growfs, xfs_info \- expand an XFS filesystem > >> > @@ -105,6 +116,7 @@ this is specified with > >> > Specifies that no change to the filesystem is to be made. > >> > The filesystem geometry is printed, and argument checking is performed, > >> > but no growth occurs. > >> > +.B See output examples below. > >> > .TP > >> > .BI "\-r | \-R " size > >> > Specifies that the real-time section of the filesystem should be grown. If the > >> > @@ -152,6 +164,28 @@ reside. In order to grow a filesystem, it is > >> > necessary to provide added > >> > space for it to occupy. Therefore there must be at least one spare new > >> > disk partition available. Adding the space is often done through the use > >> > of a logical volume manager. > >> > +.SH "EXAMPLES" > >> > + > >> > +Examining xfs_info output. > > > > How about, "Understanding xfs_info output" > > > >> > +.PP > >> > +Let's assume one have the next xfs_info output: > >> > +.PP > >> > +.Vb 1 > > > > Maybe you could add something indicating how the command was issued. > > I.e.: > > > > \&# xfs_info /dev/sda > Okay. > > > > >> > +\& meta-data=/dev/sda isize=256 agcount=32, agsize=16777184 blks > >> > +\& = sectsz=512 attr=2 > >> > +\& data = bsize=4096 blocks=536869888, imaxpct=5 > >> > +\& = sunit=32 swidth=128 blks > >> > +\& naming =version 2 bsize=4096 > >> > +\& log =internal bsize=4096 blocks=32768, version=2 > >> > +\& = sectsz=512 sunit=32 blks, lazy-count=1 > >> > +\& realtime =none extsz=524288 blocks=0, rtextents=0 > > > > I think you should drop the space character after each '&' above. > > The way you have it puts a slight indent in the output. > Personally I like indentation here, to make the text look like "quote", > and may be I'd add one more space OK. I wasn't sure multiple spaces would reliably show up, but since the formatting will be disabled it might. I think the indent is fine, but maybe you should use ".RS" and ".RE" to control the position of the left margin. > > > >> > +.Ve > >> > +.PP > >> > + > >> > +Here, data section block size (bsize) is 4096 bytes. Therefore > >> > +"sunit=32 swidth=128 blks" means stripe unit is 32*4096 bytes = 128 kibibytes > >> > +and stripe width is 128*4096 bytes = 512 kibibytes. Filesystem is striped > >> > +over 4 ( 128 / 32 ) stripes. > > > > I'll just write what I think it should be rather than trying > > to show lots of little changes: > > > > Here, the data section of the output indicates "bsize=4096", > > meaning the data block size for this filesystem is 4096 bytes. > > This section also shows "sunit=32 swidth=128 blks", which means > > the stripe unit is 32*4096 bytes = 128 kibibytes and the stripe > > width is 128*4096 bytes = 512 kibibytes. > > > > The last sentence I'm not sure I agree with. I think you're > > trying to explain the relationship between a stripe width > > and stripe unit, and the components that make up a stripe. > > Your use of the term "stripe" doesn't match what I take > > to be its meaning. I'm not saying my meaning is right, but > > I'd like to make sure we have agreement on these terms. > Generally I was trying to fact out units of measurement - as,say, > mkfs.xfs manpage describes option parameters as 512 bytes blocks/just > bytes to be specified when calling mkfs.xfs, and when someone gets > xfs_info output for that mount point it really differs from parameters > he passed to mkfs.xfs (at least at first sight). I think this is good. My only concern was that we use terminology consistently, so it doesn't just shift to a different source of confusion. > > Given that, I would re-state your last sentence (using my > > terminology as): > > > > A single stripe of this filesystem therefore consists > > of four stripe units (128 blocks / 32 blocks per unit). > > > > I.e., my meaning says that a "stripe" is "stripe width" > > blocks wide, made up of four "stripe units", each of which > > is 32 blocks, where a block is 4096 bytes. > > > > I think you are using the term "stripe" to represent what > > I'm calling the "stripe unit". > > > > Perhaps someone else can help ensure we're using > > terms with meaning consistent with how XFS has used > > them historically. > I've checked manpage for mkfs.xfs and it operates with terms > "stripe unit" & "stripe width" in your understanding, so I > think this is historically proper way to think about stripes. OK, thanks for checking. > > > > -Alex > > > > > >> > .SH SEE ALSO > >> > .BR mkfs.xfs (8), > >> > .BR md (4), > > > > > > So, I've updated patch (now it mostly contains your text), but left > indentation. Patch is attached and url for it is > http://web.coolcold.org/data/0001-adding-example-with-xfs_info-decryption-v2.patch > > I'm new to all this public patch-through-email process, > should I start new mail thread with new patch text inside > message? Below is the typical process. It's quite a bit more than what you're asking for, but I've been asked it more than once so I thought I'd write something up once and for all so I can refer to it later. A quick look shows this is not really documented on the xfs.org Wiki, so if others don't point me at another place that has this I can put a copy of the following there. Please review and comment. Initial: - Developer makes a change against a particular version of the XFS master branch (typically it's the latest published version). - Developer tests the change: - Builds clean--no errors or warnings appear as a result of the change - Test system boots and/or XFS kernel module loads without any error or warning using this newly-built code - New code is run through "xfstests", and the result shows no new or unexplainable test failures - Developer proposes the change by submitting it to the XFS mailing list for discussion and review. Note that the file "Documentation/SubmittingPatches" in the Linux kernel source tree covers much of this, and in particular the Developer's Certificate of Origin (DCO). A copy of that file can also be found here: http://lwn.net/Articles/139918/ - A patch(1) file is created, encoding the change using unified diff format. It is also preferable to have the diff include the C function name with each hunk if possible, and depending on how the patch is generated you may be able to sort the order of the files in the patch and use a canonical "a/..." versus "b/..." naming scheme for the files. The "git format-patch" and "quilt refresh" commands are good tools for formatting patches for review. - The patch file is sent to the XFS mailing list for review: - To: xfs@oss.sgi.com - Subject: [PATCH] xfs: - Above the patch there should be a concise but complete explanation for the change (unless it is trivial enough that the subject line alone does it well enough). - There must be a signoff line: Signed-off-by: I. Develop Code - Then comes the patch text - People on the XFS mailing list will review the proposed change. - This is often done within a (non-weekend) day or two, but occasionally may take a week or more. - If a few weeks go by without any attention, re-post the patch to the mailing list, indicating that you are posting it again. This can just be a polite "may I get a review" request in response to your original posting. - Reviewers will comment on the patch, possibly requesting changes. All reviews and follow-up discussion is normally copied to the entire mailing list to ensure it is public and gets preserved. - If a reviewer accepts the patch, a signoff is supplied, for example: Reviewed-by: Alex Elder Other lesser degrees of signoff are sometimes seen, such as "Signed-off-by" or "Acked-by". These are all connected to the DCO process documented as stated above. - If the review comes back positive, the XFS maintainer will pull the changes in, and in time it will get published in an update to the XFS master branch. - Developer may be requested to make changes during review - In this case, the process above pretty much repeats, using the previous code as a basis of the change. - When posting the updated patch for review, a few things are different: - Subject: [PATCH, v2] xfs: (and similarly "v3", etc. for subsequent updates.) - If someone has already indicated they approve the patch (for example it's one of a series in which other patches are getting updated), include that person's signoff line in the updated patch. - Add a very short description of what changed since the last time it was posted to the end of the description. -Alex From minchan.kim@gmail.com Wed Jul 27 11:18:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_42,T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RGIY1C211517 for ; Wed, 27 Jul 2011 11:18:34 -0500 X-ASG-Debug-ID: 1311783510-102c01b70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-gw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7B80052D0B6 for ; Wed, 27 Jul 2011 09:18:31 -0700 (PDT) Received: from mail-gw0-f53.google.com (mail-gw0-f53.google.com [74.125.83.53]) by cuda.sgi.com with ESMTP id 73bpKsKMkkKWQRsK for ; Wed, 27 Jul 2011 09:18:31 -0700 (PDT) Received: by gwj20 with SMTP id 20so1344648gwj.26 for ; Wed, 27 Jul 2011 09:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=QApCSWzQrVm2Ix9mTLWpjWvelgbMt1ZBpdIRyA6W/sE=; b=D4eSas/4WLOv/Et0+8MASqnJ9MhhF5ELbIEI23tIQRKRdRdzd8jSVmua9eVzJURdnM H7nS/H2H9NjrLhSZixc66aJSWdt7SSRS1UO2BOvPNQ0nijRRs7FDM4RRH0prnT5Uh//h rt9S7+oC2LEJDpUYQ9N1uXdXBSkQfuMzcPBvg= Received: by 10.68.15.70 with SMTP id v6mr307368pbc.472.1311783509812; Wed, 27 Jul 2011 09:18:29 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id p7sm16801pbn.81.2011.07.27.09.18.25 (version=TLSv1/SSLv3 cipher=OTHER); Wed, 27 Jul 2011 09:18:28 -0700 (PDT) Date: Thu, 28 Jul 2011 01:18:21 +0900 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110727161821.GA1738@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-1-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-gw0-f53.google.com[74.125.83.53] X-Barracuda-Start-Time: 1311783511 X-Barracuda-Bayes: INNOCENT GLOBAL 0.4282 1.0000 0.0000 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e, DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70128 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: > Warning: Long post with lots of figures. If you normally drink coffee > and you don't have a cup, get one or you may end up with a case of > keyboard face. At last, I get a coffee. > > Changelog since v1 > o Drop prio-inode patch. There is now a dependency that the flusher > threads find these dirty pages quickly. > o Drop nr_vmscan_throttled counter > o SetPageReclaim instead of deactivate_page which was wrong > o Add warning to main filesystems if called from direct reclaim context > o Add patch to completely disable filesystem writeback from reclaim It seems to go to the very desirable way. > > Testing from the XFS folk revealed that there is still too much > I/O from the end of the LRU in kswapd. Previously it was considered > acceptable by VM people for a small number of pages to be written > back from reclaim with testing generally showing about 0.3% of pages > reclaimed were written back (higher if memory was low). That writing > back a small number of pages is ok has been heavily disputed for > quite some time and Dave Chinner explained it well; > > It doesn't have to be a very high number to be a problem. IO > is orders of magnitude slower than the CPU time it takes to > flush a page, so the cost of making a bad flush decision is > very high. And single page writeback from the LRU is almost > always a bad flush decision. > > To complicate matters, filesystems respond very differently to requests > from reclaim according to Christoph Hellwig; > > xfs tries to write it back if the requester is kswapd > ext4 ignores the request if it's a delayed allocation > btrfs ignores the request > > As a result, each filesystem has different performance characteristics > when under memory pressure and there are many pages being dirties. In > some cases, the request is ignored entirely so the VM cannot depend > on the IO being dispatched. > > The objective of this series to to reduce writing of filesystem-backed > pages from reclaim, play nicely with writeback that is already in > progress and throttle reclaim appropriately when dirty pages are > encountered. The assumption is that the flushers will always write > pages faster than if reclaim issues the IO. The new problem is that > reclaim has very little control over how long before a page in a > particular zone or container is cleaned which is discussed later. A > secondary goal is to avoid the problem whereby direct reclaim splices > two potentially deep call stacks together. > > Patch 1 disables writeback of filesystem pages from direct reclaim > entirely. Anonymous pages are still written. > > Patches 2-4 add warnings to XFS, ext4 and btrfs if called from > direct reclaim. With patch 1, this "never happens" and > is intended to catch regressions in this logic in the > future. > > Patch 5 disables writeback of filesystem pages from kswapd unless > the priority is raised to the point where kswapd is considered > to be in trouble. > > Patch 6 throttles reclaimers if too many dirty pages are being > encountered and the zones or backing devices are congested. > > Patch 7 invalidates dirty pages found at the end of the LRU so they > are reclaimed quickly after being written back rather than > waiting for a reclaimer to find them > > Patch 8 disables writeback of filesystem pages from kswapd and > depends entirely on the flusher threads for cleaning pages. > This is potentially a problem if the flusher threads take a > long time to wake or are not discovering the pages we need > cleaned. By placing the patch last, it's more likely that > bisection can catch if this situation occurs and can be > easily reverted. Patch ordering is good, too. > > I consider this series to be orthogonal to the writeback work but > it is worth noting that the writeback work affects the viability of > patch 8 in particular. > > I tested this on ext4 and xfs using fs_mark and a micro benchmark > that does a streaming write to a large mapping (exercises use-once > LRU logic) followed by streaming writes to a mix of anonymous and > file-backed mappings. The command line for fs_mark when botted with > 512M looked something like > > ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 > > The number of files was adjusted depending on the amount of available > memory so that the files created was about 3xRAM. For multiple threads, > the -d switch is specified multiple times. > > 3 kernels are tested. > > vanilla 3.0-rc6 > kswapdwb-v2r5 patches 1-7 > nokswapdwb-v2r5 patches 1-8 > > The test machine is x86-64 with an older generation of AMD processor > with 4 cores. The underlying storage was 4 disks configured as RAID-0 > as this was the best configuration of storage I had available. Swap > is on a separate disk. Dirty ratio was tuned to 40% instead of the > default of 20%. > > Testing was run with and without monitors to both verify that the > patches were operating as expected and that any performance gain was > real and not due to interference from monitors. Wow, it seems you would take a long time to finish your experiments. Thanks for sharing good data. > > I've posted the raw reports for each filesystem at > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721 > > Unfortunately, the volume of data is excessive but here is a partial > summary of what was interesting for XFS. > > 512M1P-xfs Files/s mean 32.99 ( 0.00%) 35.16 ( 6.18%) 35.08 ( 5.94%) > 512M1P-xfs Elapsed Time fsmark 122.54 115.54 115.21 > 512M1P-xfs Elapsed Time mmap-strm 105.09 104.44 106.12 > 512M-xfs Files/s mean 30.50 ( 0.00%) 33.30 ( 8.40%) 34.68 (12.06%) > 512M-xfs Elapsed Time fsmark 136.14 124.26 120.33 > 512M-xfs Elapsed Time mmap-strm 154.68 145.91 138.83 > 512M-2X-xfs Files/s mean 28.48 ( 0.00%) 32.90 (13.45%) 32.83 (13.26%) > 512M-2X-xfs Elapsed Time fsmark 145.64 128.67 128.67 > 512M-2X-xfs Elapsed Time mmap-strm 145.92 136.65 137.67 > 512M-4X-xfs Files/s mean 29.06 ( 0.00%) 32.82 (11.46%) 33.32 (12.81%) > 512M-4X-xfs Elapsed Time fsmark 153.69 136.74 135.11 > 512M-4X-xfs Elapsed Time mmap-strm 159.47 128.64 132.59 > 512M-16X-xfs Files/s mean 48.80 ( 0.00%) 41.80 (-16.77%) 56.61 (13.79%) > 512M-16X-xfs Elapsed Time fsmark 161.48 144.61 141.19 > 512M-16X-xfs Elapsed Time mmap-strm 167.04 150.62 147.83 > > The difference between kswapd writing and not writing for fsmark > in many cases is marginal simply because kswapd was not reaching a > high enough priority to enter writeback. Memory is mostly consumed > by filesystem-backed pages so limiting the number of dirty pages > (dirty_ratio == 40) means that kswapd always makes forward progress > and avoids the OOM killer. Looks promising as most of elapsed time is lower than vanilla. > > For the streaming-write benchmark, it does make a small difference as > kswapd is reaching the higher priorities there due to a large number > of anonymous pages added to the mix. The performance difference is > marginal though as the number of filesystem pages written is about > 1/50th of the number of anonymous pages written so it is drowned out. It does make sense. > > I was initially worried about 512M-16X-xfs but it's well within the noise > looking at the standard deviations from > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-no-monitor/global-dhp-512M-16X__writeback-reclaimdirty-xfs/hydra/comparison.html > > Files/s min 25.00 ( 0.00%) 31.10 (19.61%) 32.00 (21.88%) > Files/s mean 48.80 ( 0.00%) 41.80 (-16.77%) 56.61 (13.79%) > Files/s stddev 28.65 ( 0.00%) 11.32 (-153.19%) 32.79 (12.62%) > Files/s max 133.20 ( 0.00%) 81.60 (-63.24%) 154.00 (13.51%) Yes. it's within the noise so let's not worry about that. > > 64 threads writing on a machine with 4 CPUs with 512M RAM has variable > performance which is hardly surprising. Fair enough. > > The streaming-write benchmarks all completed faster. > > The tests were also run with mem=1024M and mem=4608M with the relative > performance improvement reduced as memory increases reflecting that > with enough memory there are fewer writes from reclaim as the flusher > threads have time to clean the page before it reaches the end of > the LRU. > > Here is the same tests except when using ext4 > > 512M1P-ext4 Files/s mean 37.36 ( 0.00%) 37.10 (-0.71%) 37.66 ( 0.78%) > 512M1P-ext4 Elapsed Time fsmark 108.93 109.91 108.61 > 512M1P-ext4 Elapsed Time mmap-strm 112.15 108.93 109.10 > 512M-ext4 Files/s mean 30.83 ( 0.00%) 39.80 (22.54%) 32.74 ( 5.83%) > 512M-ext4 Elapsed Time fsmark 368.07 322.55 328.80 > 512M-ext4 Elapsed Time mmap-strm 131.98 117.01 118.94 > 512M-2X-ext4 Files/s mean 20.27 ( 0.00%) 22.75 (10.88%) 20.80 ( 2.52%) > 512M-2X-ext4 Elapsed Time fsmark 518.06 493.74 479.21 > 512M-2X-ext4 Elapsed Time mmap-strm 131.32 126.64 117.05 > 512M-4X-ext4 Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) > 512M-4X-ext4 Elapsed Time fsmark 633.41 660.70 572.74 > 512M-4X-ext4 Elapsed Time mmap-strm 137.85 127.63 124.07 > 512M-16X-ext4 Files/s mean 55.86 ( 0.00%) 69.90 (20.09%) 42.66 (-30.94%) > 512M-16X-ext4 Elapsed Time fsmark 543.21 544.43 586.16 > 512M-16X-ext4 Elapsed Time mmap-strm 141.84 146.12 144.01 > > At first glance, the benefit for ext4 is less clear cut but this > is due to the standard deviation being very high. Take 512M-4X-ext4 > showing a 45.63% regression for example and we see. > > Files/s min 5.40 ( 0.00%) 4.10 (-31.71%) 6.50 (16.92%) > Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) > Files/s stddev 14.34 ( 0.00%) 8.04 (-78.46%) 14.50 ( 1.04%) > Files/s max 54.30 ( 0.00%) 37.70 (-44.03%) 77.20 (29.66%) > > The standard deviation is *massive* meaning that the performance > loss is well within the noise. The main positive out of this is the Yes. ext4 seems to be very sensitive on the situation. > streaming write benchmarks are generally better. > > Where it does benefit is stalls in direct reclaim. Unlike xfs, ext4 > can stall direct reclaim writing back pages. When I look at a separate > run using ftrace to gather more information, I see; > > 512M-ext4 Time stalled direct reclaim fsmark 0.36 0.30 0.31 > 512M-ext4 Time stalled direct reclaim mmap-strm 36.88 7.48 36.24 This data is odd. [2] and [3] experiment's elapsed time is almost same(117.01, 118.94) but stall time in direct reclaim of [2] is much fast. Hmm?? Anyway, if we don't write out in kswapd, it seems we can enter direct reclaim path so many time. > 512M-4X-ext4 Time stalled direct reclaim fsmark 1.06 0.40 0.43 > 512M-4X-ext4 Time stalled direct reclaim mmap-strm 102.68 33.18 23.99 > 512M-16X-ext4 Time stalled direct reclaim fsmark 0.17 0.27 0.30 > 512M-16X-ext4 Time stalled direct reclaim mmap-strm 9.80 2.62 1.28 > 512M-32X-ext4 Time stalled direct reclaim fsmark 0.00 0.00 0.00 > 512M-32X-ext4 Time stalled direct reclaim mmap-strm 2.27 0.51 1.26 > > Time spent in direct reclaim is reduced implying that bug reports > complaining about the system becoming jittery when copying large > files may also be hel. It would be very good thing. > > To show what effect the patches are having, this is a more detailed > look at one of the tests running with monitoring enabled. It's booted > with mem=512M and the number of threads running is equal to the number > of CPU cores. The backing filesystem is XFS. > > FS-Mark > fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 > rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 > Files/s min 27.30 ( 0.00%) 31.80 (14.15%) 31.40 (13.06%) > Files/s mean 30.32 ( 0.00%) 34.34 (11.73%) 34.52 (12.18%) > Files/s stddev 1.39 ( 0.00%) 1.06 (-31.96%) 1.20 (-16.05%) > Files/s max 33.60 ( 0.00%) 36.00 ( 6.67%) 36.30 ( 7.44%) > Overhead min 1393832.00 ( 0.00%) 1793141.00 (-22.27%) 1133240.00 (23.00%) > Overhead mean 2423808.52 ( 0.00%) 2513297.40 (-3.56%) 1823398.44 (32.93%) > Overhead stddev 445880.26 ( 0.00%) 392952.66 (13.47%) 420498.38 ( 6.04%) > Overhead max 3359477.00 ( 0.00%) 3184889.00 ( 5.48%) 3016170.00 (11.38%) > MMTests Statistics: duration > User/Sys Time Running Test (seconds) 53.26 52.27 51.88 What is User/Sys? > Total Elapsed Time (seconds) 137.65 121.95 121.11 > > Average files per second is increased by a nice percentage that is > outside the noise. This is also true when I look at the results Sure. > without monitoring although the relative performance gain is less. > > Time to completion is reduced which is always good ane as it implies > that IO was consistently higher and this is clearly visible at > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-hydra.png > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-smooth-hydra.png > > kswapd CPU usage is also interesting > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/kswapdcpu-comparison-smooth-hydra.png > > Note how preventing kswapd reclaiming dirty pages pushes up its CPU > usage as it scans more pages but it does not get excessive due to > the throttling. Good to hear. The concern of this patchset was early OOM kill with too many scanning. I can throw such concern out from now on. > > MMTests Statistics: vmstat > Page Ins 1481672 1352900 1105364 > Page Outs 38397462 38337199 38366073 > Swap Ins 351918 320883 258868 > Swap Outs 132060 117715 123564 > Direct pages scanned 886587 968087 784109 > Kswapd pages scanned 18931089 18275983 18324613 > Kswapd pages reclaimed 8878200 8768648 8885482 > Direct pages reclaimed 883407 960496 781632 > Kswapd efficiency 46% 47% 48% > Kswapd velocity 137530.614 149864.559 151305.532 > Direct efficiency 99% 99% 99% > Direct velocity 6440.879 7938.393 6474.354 > Percentage direct scans 4% 5% 4% > Page writes by reclaim 170014 117717 123510 > Page reclaim invalidate 0 1221396 1212857 > Page reclaim throttled 0 0 0 > Slabs scanned 23424 23680 23552 > Direct inode steals 0 0 0 > Kswapd inode steals 5560 5500 5584 > Kswapd skipped wait 20 3 5 > Compaction stalls 0 0 0 > Compaction success 0 0 0 > Compaction failures 0 0 0 > Compaction pages moved 0 0 0 > Compaction move failure 0 0 0 > > These stats are based on information from /proc/vmstat > > "Kswapd efficiency" is the percentage of pages reclaimed to pages > scanned. The higher the percentage is the better because a low > percentage implies that kswapd is scanning uselessly. As the workload > dirties memory heavily and is a small machine, the efficiency is low at > 46% and marginally improves due to a reduced number of pages scanned. > As memory increases, so does the efficiency as one might expect as > the flushers have a chance to clean the pages in time. > > "Kswapd velocity" is the average number of pages scanned per > second. The patches increase this as it's no longer getting blocked on > page writes so it's expected but in general a higher velocity means > that kswapd is doing more work and consuming more CPU. In this case, > it is offset by the fact that fewer pages overall are scanned and > the test completes faster but it explains why CPU usage is higher. Fair enough. > > Page writes by reclaim is what is motivating this series. It goes > from 170014 pages to 123510 which is a big improvement and we'll see > later that these writes are for anonymous pages. > > "Page reclaim invalided" is very high and implies that a large number > of dirty pages are reaching the end of the list quickly. Unfortunately, > this is somewhat unavoidable. Kswapd is scanning pages at a rate > of roughly 125000 (or 488M) a second on a 512M machine. The best > possible writing rate of the underlying storage is about 300M/second. > With the rate of reclaim exceeding the best possible writing speed, > the system is going to get throttled. Just out of curiosity. What is 'Page reclaim throttled'? > > FTrace Reclaim Statistics: vmscan > fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 > rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 > Direct reclaims 16173 17605 14313 > Direct reclaim pages scanned 886587 968087 784109 > Direct reclaim pages reclaimed 883407 960496 781632 > Direct reclaim write file async I/O 0 0 0 > Direct reclaim write anon async I/O 0 0 0 > Direct reclaim write file sync I/O 0 0 0 > Direct reclaim write anon sync I/O 0 0 0 > Wake kswapd requests 20699 22048 22893 > Kswapd wakeups 24 20 25 > Kswapd pages scanned 18931089 18275983 18324613 > Kswapd pages reclaimed 8878200 8768648 8885482 > Kswapd reclaim write file async I/O 37966 0 0 > Kswapd reclaim write anon async I/O 132062 117717 123567 > Kswapd reclaim write file sync I/O 0 0 0 > Kswapd reclaim write anon sync I/O 0 0 0 > Time stalled direct reclaim (seconds) 0.08 0.09 0.08 > Time kswapd awake (seconds) 132.11 117.78 115.82 > > Total pages scanned 19817676 19244070 19108722 > Total pages reclaimed 9761607 9729144 9667114 > %age total pages scanned/reclaimed 49.26% 50.56% 50.59% > %age total pages scanned/written 0.86% 0.61% 0.65% > %age file pages scanned/written 0.19% 0.00% 0.00% > Percentage Time Spent Direct Reclaim 0.15% 0.17% 0.15% > Percentage Time kswapd Awake 95.98% 96.58% 95.63% > > Despite kswapd having higher CPU usage, it spent less time awake which > is probably a reflection of the test completing faster. File writes Make sense. > from kswapd were 0 with the patches applied implying that kswapd was > not getting to a priority high enough to start writing. The remaining > writes correlate almost exactly to nr_vmscan_write implying that all > writes were for anonymous pages. > > FTrace Reclaim Statistics: congestion_wait > Direct number congest waited 0 0 0 > Direct time congest waited 0ms 0ms 0ms > Direct full congest waited 0 0 0 > Direct number conditional waited 2 17 6 > Direct time conditional waited 0ms 0ms 0ms > Direct full conditional waited 0 0 0 > KSwapd number congest waited 4 8 10 > KSwapd time congest waited 4ms 20ms 8ms > KSwapd full congest waited 0 0 0 > KSwapd number conditional waited 0 26036 26283 > KSwapd time conditional waited 0ms 16ms 4ms > KSwapd full conditional waited 0 0 0 What means congest and conditional? congest is trace_writeback_congestion_wait and conditional is trace_writeback_wait_iff_congested? > > This is based on some of the writeback tracepoints. It's interesting > to note that while kswapd got throttled about 26000 times with all > patches applied, it spent negligible time asleep so probably just > called cond_resched(). This implies that neither the zone nor the > backing device are rarely truly congested and throttling is necessary > simply to allow the pages to be written. > > MICRO > MMTests Statistics: duration > User/Sys Time Running Test (seconds) 32.57 31.18 30.52 > Total Elapsed Time (seconds) 166.29 141.94 148.23 > > This test is in two stages. The first writes only to a file. The second > writes to a mix of anonymous and file mappings. Time to completion > is improved and this is still true with monitoring disabled. Good. > > MMTests Statistics: vmstat > Page Ins 11018260 10668536 10792204 > Page Outs 16632838 16468468 16449897 > Swap Ins 296167 245878 256038 > Swap Outs 221626 177922 179409 > Direct pages scanned 4129424 5172015 3686598 > Kswapd pages scanned 9152837 9000480 7909180 > Kswapd pages reclaimed 3388122 3284663 3371737 > Direct pages reclaimed 735425 765263 708713 > Kswapd efficiency 37% 36% 42% > Kswapd velocity 55041.416 63410.455 53357.485 > Direct efficiency 17% 14% 19% > Direct velocity 24832.666 36438.037 24870.795 > Percentage direct scans 31% 36% 31% > Page writes by reclaim 347283 180065 179425 > Page writes skipped 0 0 0 > Page reclaim invalidate 0 864018 554666 > Write invalidated 0 0 0 > Page reclaim throttled 0 0 0 > Slabs scanned 14464 13696 13952 > Direct inode steals 470 864 934 > Kswapd inode steals 426 411 317 > Kswapd skipped wait 3255 3381 1437 > Compaction stalls 0 0 2 > Compaction success 0 0 1 > Compaction failures 0 0 1 > Compaction pages moved 0 0 0 > Compaction move failure 0 0 0 > > Kswapd efficiency is improved slightly. kswapd is operating at roughly > the same velocity but the number of pages scanned is far lower due > to the test completing faster. > > Direct reclaim efficiency is improved slightly and scanning fewer pages > (again due to lower time to completion). > > Fewer pages are being written from reclaim. > > FTrace Reclaim Statistics: vmscan > micro-3.0.0 3.0.0-rc6 3.0.0-rc6 > rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 > Direct reclaims 14060 15425 13726 > Direct reclaim pages scanned 3596218 4621037 3613503 > Direct reclaim pages reclaimed 735425 765263 708713 > Direct reclaim write file async I/O 87264 0 0 > Direct reclaim write anon async I/O 10030 9127 15028 > Direct reclaim write file sync I/O 0 0 0 > Direct reclaim write anon sync I/O 0 0 0 > Wake kswapd requests 10424 10346 10786 > Kswapd wakeups 22 22 14 > Kswapd pages scanned 9041353 8889081 7895846 > Kswapd pages reclaimed 3388122 3284663 3371737 > Kswapd reclaim write file async I/O 7277 1710 0 > Kswapd reclaim write anon async I/O 184205 159178 162367 > Kswapd reclaim write file sync I/O 0 0 0 > Kswapd reclaim write anon sync I/O 0 0 0 > Time stalled direct reclaim (seconds) 54.29 5.67 14.29 > Time kswapd awake (seconds) 151.62 129.83 135.98 > > Total pages scanned 12637571 13510118 11509349 > Total pages reclaimed 4123547 4049926 4080450 > %age total pages scanned/reclaimed 32.63% 29.98% 35.45% > %age total pages scanned/written 2.29% 1.26% 1.54% > %age file pages scanned/written 0.75% 0.01% 0.00% > Percentage Time Spent Direct Reclaim 62.50% 15.39% 31.89% > Percentage Time kswapd Awake 91.18% 91.47% 91.74% > > Time spent in direct reclaim is massively reduced which is surprising Awesome! > as this is XFS so it should not have been stalling in the writing > files anyway. It's possible that the anon writes are completing > faster so time spent swapping is reduced. > > With patches 1-7, kswapd still writes some pages due to it reaching > higher priorities due to memory pressure but the number of pages it > writes is significantly reduced and a small percentage of those that > were written to swap. Patch 8 eliminates it entirely but the benefit is > not seen in the completion times as the number of writes is so small. Yes. It seems patch 8's effect is so small in general. Even it increased direct reclaim time. > > FTrace Reclaim Statistics: congestion_wait > Direct number congest waited 0 0 0 > Direct time congest waited 0ms 0ms 0ms > Direct full congest waited 0 0 0 > Direct number conditional waited 12345 37713 34841 > Direct time conditional waited 12396ms 132ms 168ms > Direct full conditional waited 53 0 0 > KSwapd number congest waited 4248 2957 2293 > KSwapd time congest waited 15320ms 10312ms 13416ms > KSwapd full congest waited 31 1 21 > KSwapd number conditional waited 0 15989 10410 > KSwapd time conditional waited 0ms 0ms 0ms > KSwapd full conditional waited 0 0 0 > > Congestion is way down as direct reclaim conditional wait time is > reduced by about 12 seconds. > > Overall, this looks good. Avoiding writes from kswapd improves > overall performance as expected and eliminating them entirely seems > to behave well. I agree with you. > > Next I tested on a NUMA configuration of sorts. I don't have a real > NUMA machine so I booted the same machine with mem=4096M numa=fake=8 > so each node is 512M. Again, the volume of information is high but > here is a summary of sorts based on a test run with monitors enabled. > > 4096M8N-xfs Files/s mean 27.29 ( 0.00%) 27.35 ( 0.20%) 27.91 ( 2.22%) > 4096M8N-xfs Elapsed Time fsmark 1402.55 1400.77 1382.92 > 4096M8N-xfs Elapsed Time mmap-strm 660.90 596.91 630.05 > 4096M8N-xfs Kswapd efficiency fsmark 72% 71% 13% > 4096M8N-xfs Kswapd efficiency mmap-strm 39% 40% 31% > 4096M8N-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 > 4096M8N-xfs stalled direct reclaim mmap-strm 36.37 13.06 56.88 > 4096M8N-4X-xfs Files/s mean 26.80 ( 0.00%) 26.41 (-1.47%) 26.40 (-1.53%) > 4096M8N-4X-xfs Elapsed Time fsmark 1453.95 1460.62 1470.98 > 4096M8N-4X-xfs Elapsed Time mmap-strm 683.34 663.46 690.01 > 4096M8N-4X-xfs Kswapd efficiency fsmark 68% 67% 8% > 4096M8N-4X-xfs Kswapd efficiency mmap-strm 35% 34% 6% > 4096M8N-4X-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 > 4096M8N-4X-xfs stalled direct reclaim mmap-strm 26.45 87.57 46.87 > 4096M8N-2X-xfs Files/s mean 26.22 ( 0.00%) 26.70 ( 1.77%) 27.21 ( 3.62%) > 4096M8N-2X-xfs Elapsed Time fsmark 1469.28 1439.30 1424.45 > 4096M8N-2X-xfs Elapsed Time mmap-strm 676.77 656.28 655.03 > 4096M8N-2X-xfs Kswapd efficiency fsmark 69% 69% 9% > 4096M8N-2X-xfs Kswapd efficiency mmap-strm 33% 33% 7% > 4096M8N-2X-xfs stalled direct reclaim fsmark 0.00 0.00 0.00 > 4096M8N-2X-xfs stalled direct reclaim mmap-strm 52.74 57.96 102.49 > 4096M8N-16X-xfs Files/s mean 25.78 ( 0.00%) 27.81 ( 7.32%) 48.52 (46.87%) > 4096M8N-16X-xfs Elapsed Time fsmark 1555.95 1554.78 1542.53 > 4096M8N-16X-xfs Elapsed Time mmap-strm 770.01 763.62 844.55 > 4096M8N-16X-xfs Kswapd efficiency fsmark 62% 62% 7% > 4096M8N-16X-xfs Kswapd efficiency mmap-strm 38% 37% 10% > 4096M8N-16X-xfs stalled direct reclaim fsmark 0.12 0.01 0.05 > 4096M8N-16X-xfs stalled direct reclaim mmap-strm 1.07 1.09 63.32 > > The performance differences for fsmark are marginal because the number > of page written from reclaim is pretty low with this much memory even > with NUMA enabled. At no point did fsmark enter direct reclaim to > try and write a page so it's all kswapd. What is important to note is > the "Kswapd efficiency". Once kswapd cannot write pages at all, its > efficiency drops rapidly for fsmark as it scans about 5-8 times more > pages waiting on flusher threads to clean a page from the correct node. > > Kswapd not writing pages impairs direct reclaim performance for the > streaming writer test. Note the times stalled in direct reclaim. In > all cases, the time stalled in direct reclaim goes way up as both > direct reclaimers and kswapd get stalled waiting on pages to get > cleaned from the right node. Yes. The data is horrible. > > Fortunately, kswapd CPU usage does not go to 100% because of the > throttling. From the 40968M test for example, I see > > KSwapd full congest waited 834 739 989 > KSwapd number conditional waited 0 68552 372275 > KSwapd time conditional waited 0ms 16ms 1684ms > KSwapd full conditional waited 0 0 0 > > With kswapd avoiding writes, it gets throttled lightly but when it > writes no pasges at all, it gets throttled very heavily and sleeps. > > ext4 tells a slightly different story > > 4096M8N-ext4 Files/s mean 28.63 ( 0.00%) 30.58 ( 6.37%) 31.04 ( 7.76%) > 4096M8N-ext4 Elapsed Time fsmark 1578.51 1551.99 1532.65 > 4096M8N-ext4 Elapsed Time mmap-strm 703.66 655.25 654.86 > 4096M8N-ext4 Kswapd efficiency 62% 69% 68% > 4096M8N-ext4 Kswapd efficiency 35% 35% 35% > 4096M8N-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 > 4096M8N-ext4 stalled direct reclaim mmap-strm 32.64 95.72 152.62 > 4096M8N-2X-ext4 Files/s mean 30.74 ( 0.00%) 28.49 (-7.89%) 28.79 (-6.75%) > 4096M8N-2X-ext4 Elapsed Time fsmark 1466.62 1583.12 1580.07 > 4096M8N-2X-ext4 Elapsed Time mmap-strm 705.17 705.64 693.01 > 4096M8N-2X-ext4 Kswapd efficiency 68% 68% 67% > 4096M8N-2X-ext4 Kswapd efficiency 34% 30% 18% > 4096M8N-2X-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 > 4096M8N-2X-ext4 stalled direct reclaim mmap-strm 106.82 24.88 27.88 > 4096M8N-4X-ext4 Files/s mean 24.15 ( 0.00%) 23.18 (-4.18%) 23.94 (-0.89%) > 4096M8N-4X-ext4 Elapsed Time fsmark 1848.41 1971.48 1867.07 > 4096M8N-4X-ext4 Elapsed Time mmap-strm 664.87 673.66 674.46 > 4096M8N-4X-ext4 Kswapd efficiency 62% 65% 65% > 4096M8N-4X-ext4 Kswapd efficiency 33% 37% 15% > 4096M8N-4X-ext4 stalled direct reclaim fsmark 0.18 0.03 0.26 > 4096M8N-4X-ext4 stalled direct reclaim mmap-strm 115.71 23.05 61.12 > 4096M8N-16X-ext4 Files/s mean 5.42 ( 0.00%) 5.43 ( 0.15%) 3.83 (-41.44%) > 4096M8N-16X-ext4 Elapsed Time fsmark 9572.85 9653.66 11245.41 > 4096M8N-16X-ext4 Elapsed Time mmap-strm 752.88 750.38 769.19 > 4096M8N-16X-ext4 Kswapd efficiency 59% 59% 61% > 4096M8N-16X-ext4 Kswapd efficiency 34% 34% 21% > 4096M8N-16X-ext4 stalled direct reclaim fsmark 0.26 0.65 0.26 > 4096M8N-16X-ext4 stalled direct reclaim mmap-strm 177.48 125.91 196.92 > > 4096M8N-16X-ext4 with kswapd writing no pages collapsed in terms of > performance. Looking at the fsmark logs, in a number of iterations, > it was barely able to write files at all. > > The apparent slowdown for fsmark in 4096M8N-2X-ext4 is well within > the noise but the reduced time spent in direct reclaim is very welcome. But 4096M8N-ext4 increased the time and 4096M8N-2X-ext4 is within the noise as you said. I doubt it's reliability. > > Unlike xfs, it's less clear cut if direct reclaim performance is > impaired but in a few tests, preventing kswapd writing pages did > increase the time stalled. > > Last test is that I've been running this series on my laptop since > Monday without any problem but it's rarely under serious memory > pressure. I see nr_vmscan_write is 0 and the number of pages > invalidated from the end of the LRU is only 10844 after 3 days so > it's not much of a test. > > Overall, having kswapd avoiding writes does improve performance > which is not a surprise. Dave asked "do we even need IO at all from > reclaim?". On NUMA machines, the answer is "yes" unless the VM can > wake the flusher thread to clean a specific node. When kswapd never > writes, processes can stall for significant periods of time waiting on > flushers to clean the correct pages. If all writing is to be deferred > to flushers, it must ensure that many writes on one node would not > starve requests for cleaning pages on another node. It's a good answer. :) > > I'm currently of the opinion that we should consider merging patches > 1-7 and discuss what is required before merging. It can be tackled > later how the flushers can prioritise writing of pages belonging to > a particular zone before disabling all writes from reclaim. There > is already some work in this general area with the possibility that > series such as "writeback: moving expire targets for background/kupdate > works" could be extended to allow patch 8 to be merged later even if > the series needs work. I think you already knew what we need(ie, prioritising the pages in a zone) In case of NUMA, 1-7 has a problem in ext4 so we have to focus NUMA during remained time. The alternative of [prioritising the page in a zone] might be Johannes's [mm: per-zone dirty limiting]. It might mitigate NUMA problems. Overall, I really welcome this approach and would like to merge this in mmotm as soon as possible for see the side effects in non-NUMA(I will add my reviewed-by soon). In case of NUMA, we know the problem apparently so I think it could be solved before it is sent to mainline. It was a great time to see your data and you makes my coffee delicious. :) You're a good Barista. Thanks for your great effort, Mel! -- Kind regards, Minchan Kim From jpiszcz@lucidpixels.com Wed Jul 27 11:28:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RGS72a211877 for ; Wed, 27 Jul 2011 11:28:07 -0500 X-ASG-Debug-ID: 1311784086-244800f90000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D568C52CE33 for ; Wed, 27 Jul 2011 09:28:06 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id HiEcVSXRiQDHOgYA for ; Wed, 27 Jul 2011 09:28:06 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 8F27E58078B; Wed, 27 Jul 2011 12:28:05 -0400 (EDT) Date: Wed, 27 Jul 2011 12:28:05 -0400 (EDT) From: Justin Piszcz To: "J. Bruce Fields" cc: linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <20110727160752.GC974@fieldses.org> Message-ID: References: <20110727160752.GC974@fieldses.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311784086 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70130 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, J. Bruce Fields wrote: > On Wed, Jul 27, 2011 at 09:54:09AM -0400, Justin Piszcz wrote: >> Hi, >> >> Kernel 2.6.30 on client. >> Kernel 2.6.28 on server. >> >> p34 kernel: [92223.918892] NFS: directory motion/cam2 contains a >> readdir loop. Please contact your server vendor. Offending cookie: 10272 > > What filesystem on the server are you exporting? Hi, xfs. /dev/sda1 on / type xfs (rw,noatime) Nothing special, thoughts? Justin. From bjschuma@netapp.com Wed Jul 27 11:40:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RGeIRR212343 for ; Wed, 27 Jul 2011 11:40:18 -0500 X-ASG-Debug-ID: 1311784817-13f0025e0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 185E452CF7C for ; Wed, 27 Jul 2011 09:40:17 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id FbJSVqwszYTz4pTi for ; Wed, 27 Jul 2011 09:40:17 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,277,1309762800"; d="scan'208";a="565964901" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 09:40:17 -0700 Received: from [10.63.225.156] ([10.63.225.156]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RGeGUx011567; Wed, 27 Jul 2011 09:40:16 -0700 (PDT) Message-ID: <4E303F6F.8010706@netapp.com> Date: Wed, 27 Jul 2011 12:40:15 -0400 From: Bryan Schumaker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Justin Piszcz CC: "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop References: <20110727160752.GC974@fieldses.org> In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311784818 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/27/2011 12:28 PM, Justin Piszcz wrote: > > > On Wed, 27 Jul 2011, J. Bruce Fields wrote: > >> On Wed, Jul 27, 2011 at 09:54:09AM -0400, Justin Piszcz wrote: >>> Hi, >>> >>> Kernel 2.6.30 on client. >>> Kernel 2.6.28 on server. >>> >>> p34 kernel: [92223.918892] NFS: directory motion/cam2 contains a >>> readdir loop. Please contact your server vendor. Offending cookie: 10272 >> >> What filesystem on the server are you exporting? > > Hi, > > xfs. > /dev/sda1 on / type xfs (rw,noatime) > > Nothing special, thoughts? Are there a lot of files in the directory you're exporting? It looks like cookie 10272 is mapped to multiple files. When the client tries to resume reading from this cookie, xfs will reply from the first matching file and cause the client to enter a loop. - Bryan > > Justin. > > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From wkendall@sgi.com Wed Jul 27 11:43:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RGhDxR212451 for ; Wed, 27 Jul 2011 11:43:13 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id B4BE48F8052; Wed, 27 Jul 2011 09:43:10 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id 9F8C57001844; Wed, 27 Jul 2011 11:43:10 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id 5E65B20013B5; Wed, 27 Jul 2011 11:43:10 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Cc: Bill Kendall Subject: [PATCH] xfsdump: allow multi-digit dialog prompts Date: Wed, 27 Jul 2011 11:41:53 -0500 Message-Id: <1311784913-14191-1-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfsdump issues a multiple-choice dialog in various circumstances (e.g., media change request). An assert incorrectly limits this to at most 8 choices even though the code can handle up to 9. Remove the assert and change the code to handle multi-digit responses. Signed-off-by: Bill Kendall --- common/dlog.c | 21 +++++++++------------ 1 files changed, 9 insertions(+), 12 deletions(-) diff --git a/common/dlog.c b/common/dlog.c index 6a243ef..c81edc6 100644 --- a/common/dlog.c +++ b/common/dlog.c @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -186,7 +187,6 @@ dlog_multi_query( char *querystr[ ], /* sanity */ ASSERT( dlog_allowed_flag ); - ASSERT( choicecnt < 9 ); /* display query description strings */ @@ -245,24 +245,21 @@ dlog_multi_query( char *querystr[ ], prepromptstr, choicecnt ); if ( ok ) { + long int val; + char *end = buf; + if ( ! strlen( buf )) { return defaultix; } - if ( strlen( buf ) != 1 ) { - prepromptstr = _( - "please enter a single " - "digit response (1 to %d)"); - continue; - } - if ( buf[ 0 ] < '1' - || - buf[ 0 ] >= '1' + ( u_char_t )choicecnt ) { + + val = strtol( buf, &end, 10 ); + if ( *end != '\0' || val < 1 || val > choicecnt ) { prepromptstr = _( - "please enter a single digit " + "please enter a value " "between 1 and %d inclusive "); continue; } - return ( size_t )( buf[ 0 ] - '1' ); + return val - 1; // return value is a 0-based index } else { return exceptionix; } -- 1.7.0.4 From sweet_f_a@gmx.de Wed Jul 27 12:00:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RH0F17213165 for ; Wed, 27 Jul 2011 12:00:15 -0500 X-ASG-Debug-ID: 1311786013-3d1800140000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout-de.gmx.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id E87811E6CC52 for ; Wed, 27 Jul 2011 10:00:13 -0700 (PDT) Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.22]) by cuda.sgi.com with SMTP id tvWdGp8AWZjNEJJr for ; Wed, 27 Jul 2011 10:00:13 -0700 (PDT) Received: (qmail invoked by alias); 27 Jul 2011 17:00:13 -0000 Received: from p5098db61.dip0.t-ipconnect.de (EHLO zappa.ga.local) [80.152.219.97] by mail.gmx.net (mp070) with SMTP; 27 Jul 2011 19:00:13 +0200 X-Authenticated: #11967524 X-Provags-ID: V01U2FsdGVkX19S78srYJxSI2fJRcNlJCXjB1+aiElR8RTjZ/AbVk umEjeFCi/bFrdv From: Ruediger Meier To: Bryan Schumaker X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Date: Wed, 27 Jul 2011 19:00:10 +0200 User-Agent: KMail/1.9.10 Cc: Justin Piszcz , "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com References: <4E303F6F.8010706@netapp.com> In-Reply-To: <4E303F6F.8010706@netapp.com> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201107271900.11091.sweet_f_a@gmx.de> X-Y-GMX-Trusted: 0 X-Barracuda-Connect: mailout-de.gmx.net[213.165.64.22] X-Barracuda-Start-Time: 1311786014 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 27 July 2011, Bryan Schumaker wrote: > On 07/27/2011 12:28 PM, Justin Piszcz wrote: > > On Wed, 27 Jul 2011, J. Bruce Fields wrote: > >> > >> What filesystem on the server are you exporting? > > > > xfs. > > /dev/sda1 on / type xfs (rw,noatime) > > > > Nothing special, thoughts? > > Are there a lot of files in the directory you're exporting? It looks > like cookie 10272 is mapped to multiple files. I thought xfs is immune to readdir loops!? Is your export directory really located directly within / on /dev/sda1? cu, Rudi From bjschuma@netapp.com Wed Jul 27 12:09:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RH9fJj213544 for ; Wed, 27 Jul 2011 12:09:41 -0500 X-ASG-Debug-ID: 1311786592-709a01ca0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A593812486D0 for ; Wed, 27 Jul 2011 10:09:52 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id 0QMgttEQHMZkAfUs for ; Wed, 27 Jul 2011 10:09:52 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,277,1309762800"; d="scan'208";a="565975147" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 10:09:40 -0700 Received: from [10.63.225.156] ([10.63.225.156]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RH9dSb006622; Wed, 27 Jul 2011 10:09:39 -0700 (PDT) Message-ID: <4E304652.5090708@netapp.com> Date: Wed, 27 Jul 2011 13:09:38 -0400 From: Bryan Schumaker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Ruediger Meier CC: Justin Piszcz , "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop References: <4E303F6F.8010706@netapp.com> <201107271900.11091.sweet_f_a@gmx.de> In-Reply-To: <201107271900.11091.sweet_f_a@gmx.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311786592 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/27/2011 01:00 PM, Ruediger Meier wrote: > On Wednesday 27 July 2011, Bryan Schumaker wrote: >> On 07/27/2011 12:28 PM, Justin Piszcz wrote: >>> On Wed, 27 Jul 2011, J. Bruce Fields wrote: >>>> >>>> What filesystem on the server are you exporting? >>> >>> xfs. >>> /dev/sda1 on / type xfs (rw,noatime) >>> >>> Nothing special, thoughts? >> >> Are there a lot of files in the directory you're exporting? It looks >> like cookie 10272 is mapped to multiple files. > > I thought xfs is immune to readdir loops!? I guess that depends how it generates the cookie... I want to try out the ext4 patches that were posted earlier today. I'll double check xfs while I'm at it. - Bryan > Is your export directory really located directly within / on /dev/sda1? > > cu, > Rudi From jpiszcz@lucidpixels.com Wed Jul 27 12:15:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_22 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RHFs0o213860 for ; Wed, 27 Jul 2011 12:15:54 -0500 X-ASG-Debug-ID: 1311786953-3c1701190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 21714182E90C for ; Wed, 27 Jul 2011 10:15:53 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id wZx9bBJlX4M4hL9S for ; Wed, 27 Jul 2011 10:15:53 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 0B00D58078B; Wed, 27 Jul 2011 13:15:53 -0400 (EDT) Date: Wed, 27 Jul 2011 13:15:53 -0400 (EDT) From: Justin Piszcz To: Bryan Schumaker cc: "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <4E303F6F.8010706@netapp.com> Message-ID: References: <20110727160752.GC974@fieldses.org> <4E303F6F.8010706@netapp.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311786954 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Bryan Schumaker wrote: > On 07/27/2011 12:28 PM, Justin Piszcz wrote: >> >> >> On Wed, 27 Jul 2011, J. Bruce Fields wrote: >> >>> On Wed, Jul 27, 2011 at 09:54:09AM -0400, Justin Piszcz wrote: >>>> Hi, >>>> >>>> Kernel 2.6.30 on client. >>>> Kernel 2.6.28 on server. >>>> >>>> p34 kernel: [92223.918892] NFS: directory motion/cam2 contains a >>>> readdir loop. Please contact your server vendor. Offending cookie: 10272 >>> >>> What filesystem on the server are you exporting? >> >> Hi, >> >> xfs. >> /dev/sda1 on / type xfs (rw,noatime) >> >> Nothing special, thoughts? > > Are there a lot of files in the directory you're exporting? It looks like cookie 10272 is mapped to multiple files. When the client tries to resume reading from this cookie, xfs will reply from the first matching file and cause the client to enter a loop. Should I be using a different filesystem? user@atom:/d1$ cd /d1/motion/cam1 user@atom:/d1/motion/cam1$ ls|wc 5198 5198 140346 user@atom:/d1/motion/cam1$ Justin. From jpiszcz@lucidpixels.com Wed Jul 27 12:17:36 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RHHaab213955 for ; Wed, 27 Jul 2011 12:17:36 -0500 X-ASG-Debug-ID: 1311787055-4b6000630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B60A5182EABF for ; Wed, 27 Jul 2011 10:17:35 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id 6JACKvdBMcGwOzCm for ; Wed, 27 Jul 2011 10:17:35 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 3F94A58078B; Wed, 27 Jul 2011 13:17:35 -0400 (EDT) Date: Wed, 27 Jul 2011 13:17:35 -0400 (EDT) From: Justin Piszcz To: Ruediger Meier cc: Bryan Schumaker , "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <201107271900.11091.sweet_f_a@gmx.de> Message-ID: References: <4E303F6F.8010706@netapp.com> <201107271900.11091.sweet_f_a@gmx.de> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311787055 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70132 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Ruediger Meier wrote: > On Wednesday 27 July 2011, Bryan Schumaker wrote: >> On 07/27/2011 12:28 PM, Justin Piszcz wrote: >>> On Wed, 27 Jul 2011, J. Bruce Fields wrote: >>>> >>>> What filesystem on the server are you exporting? >>> >>> xfs. >>> /dev/sda1 on / type xfs (rw,noatime) >>> >>> Nothing special, thoughts? >> >> Are there a lot of files in the directory you're exporting? It looks >> like cookie 10272 is mapped to multiple files. > > I thought xfs is immune to readdir loops!? > Is your export directory really located directly within / on /dev/sda1? Hi, I was sharing out a directory on the NFS server: /d1 192.168.0.0/24(async,rw,no_root_squash,no_subtree_check,fsid=1) Should I share out / instead? Is this a known problem? $ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 30G 13G 18G 43% / tmpfs 2.0G 8.0K 2.0G 1% /lib/init/rw udev 10M 192K 9.9M 2% /dev tmpfs 2.0G 0 2.0G 0% /dev/shm $ Justin. From bfields@fieldses.org Wed Jul 27 12:45:47 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RHjkuH215124 for ; Wed, 27 Jul 2011 12:45:47 -0500 X-ASG-Debug-ID: 1311788743-61e801670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from fieldses.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D3B219C94C for ; Wed, 27 Jul 2011 10:45:43 -0700 (PDT) Received: from fieldses.org (fieldses.org [174.143.236.118]) by cuda.sgi.com with ESMTP id Fl3dyIN6KPO4Vbyo for ; Wed, 27 Jul 2011 10:45:43 -0700 (PDT) Received: from bfields by fieldses.org with local (Exim 4.72) (envelope-from ) id 1Qm8Ar-0002bx-IA; Wed, 27 Jul 2011 13:45:37 -0400 Date: Wed, 27 Jul 2011 13:45:37 -0400 From: "J. Bruce Fields" To: Justin Piszcz Cc: Ruediger Meier , Bryan Schumaker , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727174537.GA9667@fieldses.org> References: <4E303F6F.8010706@netapp.com> <201107271900.11091.sweet_f_a@gmx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.20 (2009-06-14) X-Barracuda-Connect: fieldses.org[174.143.236.118] X-Barracuda-Start-Time: 1311788743 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70134 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 01:17:35PM -0400, Justin Piszcz wrote: > > > On Wed, 27 Jul 2011, Ruediger Meier wrote: > > >On Wednesday 27 July 2011, Bryan Schumaker wrote: > >>On 07/27/2011 12:28 PM, Justin Piszcz wrote: > >>>On Wed, 27 Jul 2011, J. Bruce Fields wrote: > >>>> > >>>>What filesystem on the server are you exporting? > >>> > >>>xfs. > >>>/dev/sda1 on / type xfs (rw,noatime) > >>> > >>>Nothing special, thoughts? > >> > >>Are there a lot of files in the directory you're exporting? It looks > >>like cookie 10272 is mapped to multiple files. > > > >I thought xfs is immune to readdir loops!? > >Is your export directory really located directly within / on /dev/sda1? > > Hi, > > I was sharing out a directory on the NFS server: > /d1 192.168.0.0/24(async,rw,no_root_squash,no_subtree_check,fsid=1) > > Should I share out / instead? You can do that if you want, but note that anyone malicious on that network can get access to / by guessing filehandles. (Safer would be to mount a separate partition at /d1.) But in any case that's got nothing to do with readdir cookie problems. --b. > Is this a known problem? > > $ df -h > Filesystem Size Used Avail Use% Mounted on > /dev/sda1 30G 13G 18G 43% / > tmpfs 2.0G 8.0K 2.0G 1% /lib/init/rw > udev 10M 192K 9.9M 2% /dev > tmpfs 2.0G 0 2.0G 0% /dev/shm > $ > > Justin. > > From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 13:11:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_44 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RIBNsh215980 for ; Wed, 27 Jul 2011 13:11:23 -0500 X-ASG-Debug-ID: 1311790290-53fa00780000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 510D7135AFDB for ; Wed, 27 Jul 2011 11:11:30 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id qByeaxhIwPzrLuo6 for ; Wed, 27 Jul 2011 11:11:30 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qm8Zb-00027D-4m; Wed, 27 Jul 2011 18:11:11 +0000 Date: Wed, 27 Jul 2011 14:11:11 -0400 From: Christoph Hellwig To: Justin Piszcz Cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727181111.GA23009@infradead.org> References: <20110727160752.GC974@fieldses.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="ibTvN161/egqYuK8" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311790291 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70137 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Justin, can you please run the attached test program on the affected directory on the server, and see if you see duplicates in the d_off colum. Unless you have privacy concerns I would also love to see the full output. --ibTvN161/egqYuK8 Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="getdents.c" #define _GNU_SOURCE #include #include #include #include #include #include #include #define handle_error(msg) \ do { perror(msg); exit(EXIT_FAILURE); } while (0) struct linux_dirent64 { unsigned long long d_ino; long long d_off; unsigned short d_reclen; unsigned char d_type; char d_name[]; }; #define BUF_SIZE 131072 int main(int argc, char *argv[]) { int fd, nread; char buf[BUF_SIZE]; struct linux_dirent64 *d; int bpos; fd = open(argc > 1 ? argv[1] : ".", O_RDONLY | O_DIRECTORY); if (fd == -1) handle_error("open"); for (;;) { nread = syscall(SYS_getdents64, fd, buf, BUF_SIZE); if (nread == -1) handle_error("getdents"); if (nread == 0) break; printf("--------------- nread=%d ---------------\n", nread); printf("i-node# type d_reclen d_off d_name\n"); for (bpos = 0; bpos < nread;) { d = (struct linux_dirent64 *)(buf + bpos); printf("%16lld ", d->d_ino); printf("%4d %10lld %s\n", d->d_reclen, d->d_off, d->d_name); bpos += d->d_reclen; } } exit(EXIT_SUCCESS); } --ibTvN161/egqYuK8-- From bjschuma@netapp.com Wed Jul 27 13:28:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RISYCA216424 for ; Wed, 27 Jul 2011 13:28:34 -0500 X-ASG-Debug-ID: 1311791325-52e5017a0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 8E63815144B5 for ; Wed, 27 Jul 2011 11:28:45 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id UPxnL2vsSffRWVZH for ; Wed, 27 Jul 2011 11:28:45 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,277,1309762800"; d="scan'208";a="566002173" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 11:28:33 -0700 Received: from [10.63.225.156] ([10.63.225.156]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RISWX1009838; Wed, 27 Jul 2011 11:28:32 -0700 (PDT) Message-ID: <4E3058CF.9020304@netapp.com> Date: Wed, 27 Jul 2011 14:28:31 -0400 From: Bryan Schumaker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Ruediger Meier CC: Justin Piszcz , "J. Bruce Fields" , linux-kernel@vger.kernel.org, linux-nfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop References: <4E303F6F.8010706@netapp.com> <201107271900.11091.sweet_f_a@gmx.de> In-Reply-To: <201107271900.11091.sweet_f_a@gmx.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311791325 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/27/2011 01:00 PM, Ruediger Meier wrote: > On Wednesday 27 July 2011, Bryan Schumaker wrote: >> On 07/27/2011 12:28 PM, Justin Piszcz wrote: >>> On Wed, 27 Jul 2011, J. Bruce Fields wrote: >>>> >>>> What filesystem on the server are you exporting? >>> >>> xfs. >>> /dev/sda1 on / type xfs (rw,noatime) >>> >>> Nothing special, thoughts? >> >> Are there a lot of files in the directory you're exporting? It looks >> like cookie 10272 is mapped to multiple files. > > I thought xfs is immune to readdir loops!? I can ls a directory with 500,000 files over nfs4. That's usually enough to cause the readdir loop in ext4, so I guess this is a different problem. > Is your export directory really located directly within / on /dev/sda1? > > cu, > Rudi From jpiszcz@lucidpixels.com Wed Jul 27 14:35:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJZ3Xf217906 for ; Wed, 27 Jul 2011 14:35:03 -0500 X-ASG-Debug-ID: 1311795301-529f00a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 17971182AD80 for ; Wed, 27 Jul 2011 12:35:01 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id HHnLH7q2SA5VeqF8 for ; Wed, 27 Jul 2011 12:35:01 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 5D493580795; Wed, 27 Jul 2011 15:35:01 -0400 (EDT) Date: Wed, 27 Jul 2011 15:35:01 -0400 (EDT) From: Justin Piszcz To: Christoph Hellwig cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <20110727181111.GA23009@infradead.org> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311795302 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70142 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Christoph Hellwig wrote: > Justin, > > can you please run the attached test program on the affected directory > on the server, and see if you see duplicates in the d_off colum. Unless > you have privacy concerns I would also love to see the full output. > > Hi, Done: atom:/d1/motion/cam1# /root/getdents > /tmp/cam1-out.txt atom:/d1/motion/cam1# cd ../cam2 atom:/d1/motion/cam2# /root/getdents > /tmp/cam2-out.txt atom:/d1/motion/cam2# cd ../cam3 atom:/d1/motion/cam3# /root/getdents > /tmp/cam3-out.txt atom:/d1/motion/cam3# Files: http://home.comcast.net/~jpiszcz/20110727/cam1-out.txt http://home.comcast.net/~jpiszcz/20110727/cam2-out.txt http://home.comcast.net/~jpiszcz/20110727/cam3-out.txt Currently I do not see any dupes, however I have a script that moves images out of the directory once an hour: 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 I'll disable that for now and see if this recurs, if it does, I'll gather additional output and send it out, thanks. Justin. From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 14:39:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJdftT218043 for ; Wed, 27 Jul 2011 14:39:44 -0500 X-ASG-Debug-ID: 1311795580-3cc801930000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 655DA9AA31 for ; Wed, 27 Jul 2011 12:39:40 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id JPULl5pTPRdIMBTq for ; Wed, 27 Jul 2011 12:39:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1Qm9xB-0001RK-IQ; Wed, 27 Jul 2011 19:39:37 +0000 Date: Wed, 27 Jul 2011 15:39:37 -0400 From: Christoph Hellwig To: Justin Piszcz Cc: Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727193937.GA5354@infradead.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311795580 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70142 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > Currently I do not see any dupes, however I have a script that moves > images out of the directory once an hour: > 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 Do you keep adding files to the directory while you move files out? What's the rate of additions/removals to the directory? If we add files to the directory while removing others we could easily re-use the same offset for a different file. From jpiszcz@lucidpixels.com Wed Jul 27 14:44:23 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJiM46218194 for ; Wed, 27 Jul 2011 14:44:22 -0500 X-ASG-Debug-ID: 1311795872-049f02500000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 874091514796 for ; Wed, 27 Jul 2011 12:44:32 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id z0m8royKXT1LFoRy for ; Wed, 27 Jul 2011 12:44:32 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 7CFB0580797; Wed, 27 Jul 2011 15:44:20 -0400 (EDT) Date: Wed, 27 Jul 2011 15:44:20 -0400 (EDT) From: Justin Piszcz To: Christoph Hellwig cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <20110727193937.GA5354@infradead.org> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311795873 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70143 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: >> Currently I do not see any dupes, however I have a script that moves >> images out of the directory once an hour: >> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > Do you keep adding files to the directory while you move files out? Yes, otherwise there are too many files in the directory and viewers, e.g., each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep it around 5,000 pictures or less. > What's the rate of additions/removals to the directory? Additions it depends, around 5,000 over a 12hr period, 416/hr, current: atom:/d1/motion# find cam1|wc 5215 5215 166853 atom:/d1/motion# find cam2|wc 5069 5069 162181 atom:/d1/motion# find cam3|wc 5594 5594 178981 atom:/d1/motion# > > If we add files to the directory while removing others we could easily > re-use the same offset for a different file. > Justin. From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 14:47:28 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJlSuK218322 for ; Wed, 27 Jul 2011 14:47:28 -0500 X-ASG-Debug-ID: 1311796046-322202270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D6D219CD1E for ; Wed, 27 Jul 2011 12:47:27 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id ZmHQ8IJg5sAuPQ0M for ; Wed, 27 Jul 2011 12:47:27 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmA4g-0003If-BI; Wed, 27 Jul 2011 19:47:22 +0000 Date: Wed, 27 Jul 2011 15:47:22 -0400 From: Christoph Hellwig To: Justin Piszcz Cc: Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727194722.GA9345@infradead.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311796047 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70142 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > > > On Wed, 27 Jul 2011, Christoph Hellwig wrote: > > >On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > >>Currently I do not see any dupes, however I have a script that moves > >>images out of the directory once an hour: > >>0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > > >Do you keep adding files to the directory while you move files out? > Yes, otherwise there are too many files in the directory and viewers, e.g., > each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep > it around 5,000 pictures or less. > > >What's the rate of additions/removals to the directory? > Additions it depends, around 5,000 over a 12hr period, 416/hr, current: > > atom:/d1/motion# find cam1|wc > 5215 5215 166853 > atom:/d1/motion# find cam2|wc > 5069 5069 162181 > atom:/d1/motion# find cam3|wc > 5594 5594 178981 > atom:/d1/motion# This sounds a lot like xfs simply filling up the directory index slots of files that you just moved out with new files, and nfs falsely claiming that this is a problem. Any chance to figure out if the file you hit the printk with was one that got either recently added or moved when you hit it? (I can't follow the nfs code enough to check if it prints the first or second hit of the same cookie) From bjschuma@netapp.com Wed Jul 27 14:54:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJsrep218667 for ; Wed, 27 Jul 2011 14:54:53 -0500 X-ASG-Debug-ID: 1311796504-04d602550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 91622151490B for ; Wed, 27 Jul 2011 12:55:04 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id 9AFPxGeBdMXgSaor for ; Wed, 27 Jul 2011 12:55:04 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,278,1309762800"; d="scan'208";a="566030628" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 12:54:52 -0700 Received: from [10.63.225.156] ([10.63.225.156]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RJsoj2014914; Wed, 27 Jul 2011 12:54:51 -0700 (PDT) Message-ID: <4E306D09.5030704@netapp.com> Date: Wed, 27 Jul 2011 15:54:49 -0400 From: Bryan Schumaker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> In-Reply-To: <20110727194722.GA9345@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311796504 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/27/2011 03:47 PM, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: >> >> >> On Wed, 27 Jul 2011, Christoph Hellwig wrote: >> >>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: >>>> Currently I do not see any dupes, however I have a script that moves >>>> images out of the directory once an hour: >>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 >>> >>> Do you keep adding files to the directory while you move files out? >> Yes, otherwise there are too many files in the directory and viewers, e.g., >> each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep >> it around 5,000 pictures or less. >> >>> What's the rate of additions/removals to the directory? >> Additions it depends, around 5,000 over a 12hr period, 416/hr, current: >> >> atom:/d1/motion# find cam1|wc >> 5215 5215 166853 >> atom:/d1/motion# find cam2|wc >> 5069 5069 162181 >> atom:/d1/motion# find cam3|wc >> 5594 5594 178981 >> atom:/d1/motion# > > This sounds a lot like xfs simply filling up the directory index slots > of files that you just moved out with new files, and nfs falsely > claiming that this is a problem. > > Any chance to figure out if the file you hit the printk with was one > that got either recently added or moved when you hit it? (I can't > follow the nfs code enough to check if it prints the first or second hit > of the same cookie) It should be printing on the second hit of a cookie. - Bryan > -- > To unsubscribe from this list: send the line "unsubscribe linux-nfs" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From jpiszcz@lucidpixels.com Wed Jul 27 14:57:10 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RJv9BK218734 for ; Wed, 27 Jul 2011 14:57:10 -0500 X-ASG-Debug-ID: 1311796639-049b02740000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7F05F1687829 for ; Wed, 27 Jul 2011 12:57:19 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id ClEH64X3rZpV1vei for ; Wed, 27 Jul 2011 12:57:19 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id B6AA7580795; Wed, 27 Jul 2011 15:57:07 -0400 (EDT) Date: Wed, 27 Jul 2011 15:57:07 -0400 (EDT) From: Justin Piszcz To: Christoph Hellwig cc: "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <20110727194722.GA9345@infradead.org> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311796640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70143 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: >> >> >> On Wed, 27 Jul 2011, Christoph Hellwig wrote: >> >>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: >>>> Currently I do not see any dupes, however I have a script that moves >>>> images out of the directory once an hour: >>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 >>> >>> Do you keep adding files to the directory while you move files out? >> Yes, otherwise there are too many files in the directory and viewers, e.g., >> each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep >> it around 5,000 pictures or less. >> >>> What's the rate of additions/removals to the directory? >> Additions it depends, around 5,000 over a 12hr period, 416/hr, current: >> >> atom:/d1/motion# find cam1|wc >> 5215 5215 166853 >> atom:/d1/motion# find cam2|wc >> 5069 5069 162181 >> atom:/d1/motion# find cam3|wc >> 5594 5594 178981 >> atom:/d1/motion# > > This sounds a lot like xfs simply filling up the directory index slots > of files that you just moved out with new files, and nfs falsely > claiming that this is a problem. > > Any chance to figure out if the file you hit the printk with was one > that got either recently added or moved when you hit it? (I can't > follow the nfs code enough to check if it prints the first or second hit > of the same cookie) > It seems to happen across all directories, these are from the past 24 hours. [41901.041923] NFS: directory motion/cam2 contains a readdir loop. Please contact your server vendor. Offending cookie: 14368 [41901.275284] NFS: directory motion/cam3 contains a readdir loop. Please contact your server vendor. Offending cookie: 17435 [45497.265250] NFS: directory motion/cam1 contains a readdir loop. Please contact your server vendor. Offending cookie: 14488 [45498.832696] NFS: directory motion/cam1 contains a readdir loop. Please contact your server vendor. Offending cookie: 16416 [45507.812712] NFS: directory motion/cam2 contains a readdir loop. Please contact your server vendor. Offending cookie: 14778 [45508.458785] NFS: directory motion/cam2 contains a readdir loop. Please contact your server vendor. Offending cookie: 14778 [92223.918892] NFS: directory motion/cam2 contains a readdir loop. Please contact your server vendor. Offending cookie: 10272 [99413.259688] NFS: directory motion/cam1 contains a readdir loop. Please contact your server vendor. Offending cookie: 10272 [113791.004006] NFS: directory motion/cam1 contains a readdir loop. Please contact your server vendor. Offending cookie: 6848 Interestingly, I have two machines that perform this function, both XFS and it only affects the client running 2.6.38: $ df -h 2.6.38 - Has a kernel driver that was removed in 2.6.39 (rt2870sta) which works really well. atomw:/d1 30G 13G 18G 43% /nfs/atomw/d1 2.6.39: d630w:/d1 75G 2.6G 72G 4% /nfs/d630w/d1 However, to rule out any kernel issues I'll try 3.0 and see if the problem recurs with a newer version as it is _NOT_ happening with 2.6.39 (similar setup) on both; however: d630 => 32bit installation (core2duo t7500) atomw => 64-bit atom Justin. From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 15:02:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RK2r3W218898 for ; Wed, 27 Jul 2011 15:02:53 -0500 X-ASG-Debug-ID: 1311796970-553600e80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 22C3D9CCCD for ; Wed, 27 Jul 2011 13:02:51 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id hz9G9zBX5JsWnLpA for ; Wed, 27 Jul 2011 13:02:51 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmAJU-000633-Py; Wed, 27 Jul 2011 20:02:40 +0000 Date: Wed, 27 Jul 2011 16:02:40 -0400 From: Christoph Hellwig To: Bryan Schumaker Cc: Christoph Hellwig , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727200240.GA16054@infradead.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <4E306D09.5030704@netapp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E306D09.5030704@netapp.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311796973 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70144 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 03:54:49PM -0400, Bryan Schumaker wrote: > > Any chance to figure out if the file you hit the printk with was one > > that got either recently added or moved when you hit it? (I can't > > follow the nfs code enough to check if it prints the first or second hit > > of the same cookie) > > It should be printing on the second hit of a cookie. But looking closer at it it only prints the directory name and not that of any of the matching cookies, making it pretty useless to debug any problem. (and it makes my previous question to Justin look stupid..). But so far I still stick to my previous theory that this sounds like a directory offset getting reused. How is cache invalidation for the array supposed to work? And maybe more importantly, given that he can only reproduce it with a .38 client did any bugs get fixed in that code recently that might lead to issues with the cache invalidation? From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 15:05:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RK5vxg219020 for ; Wed, 27 Jul 2011 15:05:57 -0500 X-ASG-Debug-ID: 1311797156-355d02330000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F36049CD07 for ; Wed, 27 Jul 2011 13:05:56 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id P20JAPGNXfdHzbZ1 for ; Wed, 27 Jul 2011 13:05:56 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmAMY-0006to-Ct; Wed, 27 Jul 2011 20:05:50 +0000 Date: Wed, 27 Jul 2011 16:05:50 -0400 From: Christoph Hellwig To: Bryan Schumaker Cc: Christoph Hellwig , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727200550.GA23416@infradead.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <4E306D09.5030704@netapp.com> <20110727200240.GA16054@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110727200240.GA16054@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311797156 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70144 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 04:02:40PM -0400, Christoph Hellwig wrote: > But looking closer at it it only prints the directory name and not that > of any of the matching cookies, making it pretty useless to debug any > problem. (and it makes my previous question to Justin look stupid..). > > > But so far I still stick to my previous theory that this sounds like > a directory offset getting reused. How is cache invalidation for > the array supposed to work? And maybe more importantly, given that he > can only reproduce it with a .38 client did any bugs get fixed in that > code recently that might lead to issues with the cache invalidation? Actually we won't even need cache invalidation bugs, see nfsd_buffered_readdir() - we might do multiple vfs_readdir calls to fill a single nfs reply, and between these two directory contents might have been completely replaced, in the worst (pathological case) you might get a second readdir having exactly the same offsets, but pointing to completely different inodes. From aelder@oss.sgi.com Wed Jul 27 15:06:16 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.6 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_22,J_CHICKENPOX_26,J_CHICKENPOX_75 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RK6FkN219176 for ; Wed, 27 Jul 2011 15:06:15 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6RK6B00219063; Wed, 27 Jul 2011 15:06:11 -0500 Date: Wed, 27 Jul 2011 15:06:11 -0500 Message-Id: <201107272006.p6RK6B00219063@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.38-26547-g510792e X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 55fb25d5b39320242b41af894921f5cef0c7e293 X-Git-Newrev: 510792ee29770a38dd409bf2b469ade2fea9eb52 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated 510792e xfs: optimize the negative xattr caching d1166ec xfs: prevent against ioend livelocks in xfs_file_fsync 34951f5 xfs: flag all buffers as metadata 1c4f332 xfs: encapsulate a block of debug code d3ec484 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 4e34e71 fs: take the ACL checks to common code 826cae2 kill boilerplates around posix_acl_create_masq() bc26ab5 kill boilerplate around posix_acl_chmod_masq() 6311b10 xfs: cache negative ACLs if there is no attribute fork e77819e vfs: move ACL cache lookup into generic code 340a0a0 xfs: Fix wrong return value of xfs_file_aio_write bbd9d6f Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 df2e301 fs: Merge split strings 02c24a8 fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers 72c5052 fs: move inode_dio_done to the end_io handler 8daaa83 xfs: make use of new shrinker callout for the inode cache 7e40145 ->permission() sanitizing: don't pass flags to ->check_acl() 9c2c703 ->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl() from 55fb25d5b39320242b41af894921f5cef0c7e293 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 510792ee29770a38dd409bf2b469ade2fea9eb52 Author: Christoph Hellwig Date: Tue Jul 26 15:07:29 2011 +0000 xfs: optimize the negative xattr caching Since the addition of file capabilities every write needs to read xattrs to check if we have any capabilities to clear. In Linux 3.0 Andi Kleen added a flag to cache the fact that we do not have any attributes on an inode. Make sure to already mark a file as not having any attributes when reading it from disk in case it doesn't even have an attribute fork. Based on an earlier patch from Andi Kleen. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit d1166ec792c96b65e4c18cbc5985944b5309d838 Author: Christoph Hellwig Date: Tue Jul 26 15:07:11 2011 +0000 xfs: prevent against ioend livelocks in xfs_file_fsync We need to take some locks to prevent new ioends from coming in when we wait for all existing ones to go away. Up to Linux 3.0 that was done using the i_mutex held by the VFS fsync code, but now that we are called without it we need to take care of it ourselves. Use the I/O lock instead of i_mutex just like we do in other places. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 34951f5cb72b1e3a89a21581cb21e2d5b6a104a4 Author: Christoph Hellwig Date: Tue Jul 26 15:06:44 2011 +0000 xfs: flag all buffers as metadata Now that REQ_META bios aren't treated specially in the CFQ I/O schedule anymore, we can tag all buffers as metadata to make blktrace traces more meaningful. Note that we use buffers also to zero out partial blocks in the preallocation / hole punching code, and while they operate on data blocks the zeros written certainly aren't data. I think this case is borderline metadata enough to not bother special casing it. Signed-off-by: Christoph Hellwig Signed-off-by: Alex Elder commit 1c4f33296e8e79a6bbfffc8457d547ffc31d5dee Author: Alex Elder Date: Mon Jul 18 18:14:09 2011 +0000 xfs: encapsulate a block of debug code Pull into a helper function some debug-only code that validates a xfs_da_blkinfo structure that's been read from disk. Signed-off-by: Alex Elder Reviewed-by: Christoph Hellwig commit d3ec4844d449cf7af9e749f73ba2052fb7b72fc2 Merge: 0003230e8200699860f0b10af524dc47bf8aecad df2e301fee3c2c2a87592151397ad7699bb14c37 Author: Linus Torvalds Date: Mon Jul 25 13:56:39 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (43 commits) fs: Merge split strings treewide: fix potentially dangerous trailing ';' in #defined values/expressions uwb: Fix misspelling of neighbourhood in comment net, netfilter: Remove redundant goto in ebt_ulog_packet trivial: don't touch files that are removed in the staging tree lib/vsprintf: replace link to Draft by final RFC number doc: Kconfig: `to be' -> `be' doc: Kconfig: Typo: square -> squared doc: Konfig: Documentation/power/{pm => apm-acpi}.txt drivers/net: static should be at beginning of declaration drivers/media: static should be at beginning of declaration drivers/i2c: static should be at beginning of declaration XTENSA: static should be at beginning of declaration SH: static should be at beginning of declaration MIPS: static should be at beginning of declaration ARM: static should be at beginning of declaration rcu: treewide: Do not use rcu_read_lock_held when calling rcu_dereference_check Update my e-mail address PCIe ASPM: forcedly -> forcibly gma500: push through device driver tree ... Fix up trivial conflicts: - arch/arm/mach-ep93xx/dma-m2p.c (deleted) - drivers/gpio/gpio-ep93xx.c (renamed and context nearby) - drivers/net/r8169.c (just context changes) commit 4e34e719e457f2e031297175410fc0bd4016a085 Author: Christoph Hellwig Date: Sat Jul 23 17:37:31 2011 +0200 fs: take the ACL checks to common code Replace the ->check_acl method with a ->get_acl method that simply reads an ACL from disk after having a cache miss. This means we can replace the ACL checking boilerplate code with a single implementation in namei.c. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 826cae2f2b4d726b925f43bc208a571639da4761 Author: Al Viro Date: Sat Jul 23 03:10:32 2011 -0400 kill boilerplates around posix_acl_create_masq() new helper: posix_acl_create(&acl, gfp, mode_p). Replaces acl with modified clone, on failure releases acl and replaces with NULL. Returns 0 or -ve on error. All callers of posix_acl_create_masq() switched. Signed-off-by: Al Viro commit bc26ab5f65ae41b71df86ea46df3c3833d1d8d83 Author: Al Viro Date: Sat Jul 23 00:18:02 2011 -0400 kill boilerplate around posix_acl_chmod_masq() new helper: posix_acl_chmod(&acl, gfp, mode). Replaces acl with modified clone or with NULL if that has failed; returns 0 or -ve on error. All callers of posix_acl_chmod_masq() switched to that - they'd been doing exactly the same thing. Signed-off-by: Al Viro commit 6311b10800a4bdc3f2c85d01fb113cf49bb83770 Author: Christoph Hellwig Date: Sat Jul 23 17:36:50 2011 +0200 xfs: cache negative ACLs if there is no attribute fork Always set up a negative ACL cache entry if the inode doesn't have an attribute fork. That behaves much better than doing this check inside ->check_acl. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit e77819e57f0817c6dc7cadd061acd70c604cbce2 Author: Linus Torvalds Date: Fri Jul 22 19:30:19 2011 -0700 vfs: move ACL cache lookup into generic code This moves logic for checking the cached ACL values from low-level filesystems into generic code. The end result is a streamlined ACL check that doesn't need to load the inode->i_op->check_acl pointer at all for the common cached case. The filesystems also don't need to check for a non-blocking RCU walk case in their acl_check() functions, because that is all handled at a VFS layer. Signed-off-by: Linus Torvalds Signed-off-by: Al Viro commit 340a0a01b9675a16201cc4fc4a210eb5b3bc11ce Author: Markus Trippelsdorf Date: Sun Jul 24 14:03:30 2011 +0200 xfs: Fix wrong return value of xfs_file_aio_write The fsync prototype change commit 02c24a82187d accidentally overwrote the ssize_t return value of xfs_file_aio_write with 0 for SYNC type writes. Fix this by checking if an error occured when calling xfs_file_fsync and only change the return value in this case. In addition xfs_file_fsync actually returns a normal negative error, so fix this, too. Signed-off-by: Markus Trippelsdorf Reviewed-by: Christoph Hellwig Tested-by: Christoph Hellwig Signed-off-by: Al Viro commit bbd9d6f7fbb0305c9a592bf05a32e87eb364a4ff Merge: 8e204874db000928e37199c2db82b7eb8966cc3c 5a9a43646cf709312d71eca71cef90ad802f28f9 Author: Linus Torvalds Date: Fri Jul 22 19:02:39 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (107 commits) vfs: use ERR_CAST for err-ptr tossing in lookup_instantiate_filp isofs: Remove global fs lock jffs2: fix IN_DELETE_SELF on overwriting rename() killing a directory fix IN_DELETE_SELF on overwriting rename() on ramfs et.al. mm/truncate.c: fix build for CONFIG_BLOCK not enabled fs:update the NOTE of the file_operations structure Remove dead code in dget_parent() AFS: Fix silly characters in a comment switch d_add_ci() to d_splice_alias() in "found negative" case as well simplify gfs2_lookup() jfs_lookup(): don't bother with . or .. get rid of useless dget_parent() in btrfs rename() and link() get rid of useless dget_parent() in fs/btrfs/ioctl.c fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers drivers: fix up various ->llseek() implementations fs: handle SEEK_HOLE/SEEK_DATA properly in all fs's that define their own llseek Ext4: handle SEEK_HOLE/SEEK_DATA generically Btrfs: implement our own ->llseek fs: add SEEK_HOLE and SEEK_DATA flags reiserfs: make reiserfs default to barrier=flush ... Fix up trivial conflicts in fs/xfs/linux-2.6/xfs_super.c due to the new shrinker callout for the inode cache, that clashed with the xfs code to start the periodic workers later. commit df2e301fee3c2c2a87592151397ad7699bb14c37 Author: Jean Delvare Date: Sat Jul 16 18:10:35 2011 +0200 fs: Merge split strings No idea why these were split in the first place... Signed-off-by: Jean Delvare Signed-off-by: Jiri Kosina commit 02c24a82187d5a628c68edfe71ae60dc135cd178 Author: Josef Bacik Date: Sat Jul 16 20:44:56 2011 -0400 fs: push i_mutex and filemap_write_and_wait down into ->fsync() handlers Btrfs needs to be able to control how filemap_write_and_wait_range() is called in fsync to make it less of a painful operation, so push down taking i_mutex and the calling of filemap_write_and_wait() down into the ->fsync() handlers. Some file systems can drop taking the i_mutex altogether it seems, like ext3 and ocfs2. For correctness sake I just pushed everything down in all cases to make sure that we keep the current behavior the same for everybody, and then each individual fs maintainer can make up their mind about what to do from there. Thanks, Acked-by: Jan Kara Signed-off-by: Josef Bacik Signed-off-by: Al Viro commit 72c5052ddc3956d847f21c2b8d55c93664a51b2c Author: Christoph Hellwig Date: Fri Jun 24 14:29:48 2011 -0400 fs: move inode_dio_done to the end_io handler For filesystems that delay their end_io processing we should keep our i_dio_count until the the processing is done. Enable this by moving the inode_dio_done call to the end_io handler if one exist. Note that the actual move to the workqueue for ext4 and XFS is not done in this patch yet, but left to the filesystem maintainers. At least for XFS it's not needed yet either as XFS has an internal equivalent to i_dio_count. Signed-off-by: Christoph Hellwig Signed-off-by: Al Viro commit 8daaa83145ef1f0a146680618328dbbd0fa76939 Author: Dave Chinner Date: Fri Jul 8 14:14:46 2011 +1000 xfs: make use of new shrinker callout for the inode cache Convert the inode reclaim shrinker to use the new per-sb shrinker operations. This allows much bigger reclaim batches to be used, and allows the XFS inode cache to be shrunk in proportion with the VFS dentry and inode caches. This avoids the problem of the VFS caches being shrunk significantly before the XFS inode cache is shrunk resulting in imbalances in the caches during reclaim. Signed-off-by: Dave Chinner Signed-off-by: Al Viro commit 7e40145eb111a5192e6d819f764db9d6828d1abb Author: Al Viro Date: Mon Jun 20 19:12:17 2011 -0400 ->permission() sanitizing: don't pass flags to ->check_acl() not used in the instances anymore. Signed-off-by: Al Viro commit 9c2c703929e4c41210cfa6e3f599514421bab8dc Author: Al Viro Date: Mon Jun 20 19:06:22 2011 -0400 ->permission() sanitizing: pass MAY_NOT_BLOCK to ->check_acl() Signed-off-by: Al Viro ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_acl.c | 80 ++++++++++-------------------------------- fs/xfs/linux-2.6/xfs_aops.c | 3 ++ fs/xfs/linux-2.6/xfs_buf.c | 3 ++ fs/xfs/linux-2.6/xfs_file.c | 18 ++++++---- fs/xfs/linux-2.6/xfs_iops.c | 19 +++++++--- fs/xfs/linux-2.6/xfs_super.c | 27 +++++++++----- fs/xfs/linux-2.6/xfs_sync.c | 71 ++++++++++++++----------------------- fs/xfs/linux-2.6/xfs_sync.h | 5 +-- fs/xfs/linux-2.6/xfs_trace.h | 2 +- fs/xfs/xfs_acl.h | 2 - fs/xfs/xfs_da_btree.c | 32 +++++++++++------ fs/xfs/xfs_dir2_node.c | 2 +- 12 files changed, 119 insertions(+), 145 deletions(-) hooks/post-receive -- XFS development tree From sweet_f_a@gmx.de Wed Jul 27 15:27:08 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM, MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKR8gb219939 for ; Wed, 27 Jul 2011 15:27:08 -0500 X-ASG-Debug-ID: 1311798426-322202e50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout-de.gmx.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id F3C5A9D2E3 for ; Wed, 27 Jul 2011 13:27:06 -0700 (PDT) Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by cuda.sgi.com with SMTP id 5jvFYzhs9eZZFbZ4 for ; Wed, 27 Jul 2011 13:27:06 -0700 (PDT) Received: (qmail invoked by alias); 27 Jul 2011 20:27:05 -0000 Received: from dslb-088-074-017-087.pools.arcor-ip.net (EHLO dslb-088-074-017-087.pools.arcor-ip.net) [88.74.17.87] by mail.gmx.net (mp015) with SMTP; 27 Jul 2011 22:27:05 +0200 X-Authenticated: #11967524 X-Provags-ID: V01U2FsdGVkX1+bx+pXDPSb8yj2iaIXn17/nDkOBjn03WoPEbS8EO SxmvzWJi72v+Va From: =?iso-8859-1?q?R=FCdiger_Meier?= To: Christoph Hellwig X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Date: Wed, 27 Jul 2011 22:26:55 +0200 User-Agent: KMail/1.9.10 Cc: Bryan Schumaker , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com References: <4E306D09.5030704@netapp.com> <20110727200240.GA16054@infradead.org> In-Reply-To: <20110727200240.GA16054@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201107272227.03265.sweet_f_a@gmx.de> X-Y-GMX-Trusted: 0 X-Barracuda-Connect: mailout-de.gmx.net[213.165.64.23] X-Barracuda-Start-Time: 1311798426 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70146 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 27 July 2011, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 03:54:49PM -0400, Bryan Schumaker wrote: > > It should be printing on the second hit of a cookie. > > But looking closer at it it only prints the directory name and not > that of any of the matching cookies, making it pretty useless to > debug any problem. (and it makes my previous question to Justin look > stupid..). > > > But so far I still stick to my previous theory that this sounds like > a directory offset getting reused. How is cache invalidation for > the array supposed to work? And maybe more importantly, given that > he can only reproduce it with a .38 client did any bugs get fixed in > that code recently that might lead to issues with the cache > invalidation? At the time I've started this thread http://comments.gmane.org/gmane.linux.nfs/40863 I had the feeling that the readdir cache changings in 2.6.37 have something to do with these loop problems. After that thread I've accepted that's a general problem with ext4/dirindex and nfs but seeing it again on xfs with just 5000 files I'm in doubt again. cu, Rudi From aelder@sgi.com Wed Jul 27 15:35:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKZ011220135 for ; Wed, 27 Jul 2011 15:35:00 -0500 Received: from stout.americas.sgi.com (stout.americas.sgi.com [128.162.232.50]) by relay3.corp.sgi.com (Postfix) with ESMTP id EDFA9AC003; Wed, 27 Jul 2011 13:34:56 -0700 (PDT) Received: from stout.americas.sgi.com (localhost6.localdomain6 [127.0.0.1]) by stout.americas.sgi.com (8.14.5/8.14.2) with ESMTP id p6RKYtJi013267; Wed, 27 Jul 2011 15:34:56 -0500 Received: (from aelder@localhost) by stout.americas.sgi.com (8.14.5/8.14.5/Submit) id p6RKYtnq013266; Wed, 27 Jul 2011 15:34:55 -0500 From: Alex Elder Message-Id: <201107272034.p6RKYtnq013266@stout.americas.sgi.com> Date: Wed, 27 Jul 2011 15:34:55 -0500 To: torvalds@linux-foundation.org Subject: [GIT PULL] XFS update 2 for 3.1-rc1 Cc: linux-kernel@vger.kernel.org, xfs@oss.sgi.com, akpm@linux-foundation.org User-Agent: Heirloom mailx 12.5 7/5/10 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Here are a few more commits for XFS for Linux 3.1-rc1. -Alex The following changes since commit 5fd00b031530cc476240f654c078c930f1dcd6ea: Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 (2011-07-27 09:26:39 -0700) are available in the git repository at: git://oss.sgi.com/xfs/xfs for-linus Alex Elder (1): xfs: encapsulate a block of debug code Christoph Hellwig (3): xfs: flag all buffers as metadata xfs: prevent against ioend livelocks in xfs_file_fsync xfs: optimize the negative xattr caching fs/xfs/linux-2.6/xfs_buf.c | 3 +++ fs/xfs/linux-2.6/xfs_file.c | 2 ++ fs/xfs/linux-2.6/xfs_iops.c | 9 +++++++-- fs/xfs/xfs_da_btree.c | 32 +++++++++++++++++++++----------- 4 files changed, 33 insertions(+), 13 deletions(-) From Trond.Myklebust@netapp.com Wed Jul 27 15:37:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKb4hm220197 for ; Wed, 27 Jul 2011 15:37:04 -0500 X-ASG-Debug-ID: 1311799023-391e02f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A7125182E89F for ; Wed, 27 Jul 2011 13:37:03 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id 82PUhNbWlIPoUJKY for ; Wed, 27 Jul 2011 13:37:03 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,278,1309762800"; d="scan'208";a="566042738" Received: from smtp2.corp.netapp.com ([10.57.159.114]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 13:37:02 -0700 Received: from svlrsexc1-prd.hq.netapp.com (svlrsexc1-prd.hq.netapp.com [10.57.115.30]) by smtp2.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RKb2w2010656; Wed, 27 Jul 2011 13:37:02 -0700 (PDT) Received: from SACMVEXC2-PRD.hq.netapp.com ([10.99.115.17]) by svlrsexc1-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 27 Jul 2011 13:37:02 -0700 Received: from 10.55.68.86 ([10.55.68.86]) by SACMVEXC2-PRD.hq.netapp.com ([10.99.115.16]) with Microsoft Exchange Server HTTP-DAV ; Wed, 27 Jul 2011 20:37:02 +0000 Received: from lade.trondhjem.org by SACMVEXC2-PRD.hq.netapp.com; 27 Jul 2011 16:37:01 -0400 X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop From: Trond Myklebust To: Christoph Hellwig , Bryan Schumaker Cc: Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Date: Wed, 27 Jul 2011 16:37:01 -0400 In-Reply-To: <20110727194722.GA9345@infradead.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> Organization: NetApp Inc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Message-ID: <1311799021.25645.41.camel@lade.trondhjem.org> Mime-Version: 1.0 X-OriginalArrivalTime: 27 Jul 2011 20:37:02.0728 (UTC) FILETIME=[F0E88080:01CC4C9C] X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311799023 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote:=20 > On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > >=20 > >=20 > > On Wed, 27 Jul 2011, Christoph Hellwig wrote: > >=20 > > >On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > > >>Currently I do not see any dupes, however I have a script that moves > > >>images out of the directory once an hour: > > >>0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > > > > >Do you keep adding files to the directory while you move files out? > > Yes, otherwise there are too many files in the directory and viewers, e= .g., > > each geeqie (picture viewer) will use > 4-6GB of memory, so I try to ke= ep > > it around 5,000 pictures or less. > >=20 > > >What's the rate of additions/removals to the directory? > > Additions it depends, around 5,000 over a 12hr period, 416/hr, current: > >=20 > > atom:/d1/motion# find cam1|wc > > 5215 5215 166853 > > atom:/d1/motion# find cam2|wc > > 5069 5069 162181 > > atom:/d1/motion# find cam3|wc > > 5594 5594 178981 > > atom:/d1/motion# >=20 > This sounds a lot like xfs simply filling up the directory index slots > of files that you just moved out with new files, and nfs falsely > claiming that this is a problem. Yep. There is an existing bugzilla report for this bug at https://bugzilla.kernel.org/show_bug.cgi?id=3D38572 I have a preliminary patch there that attempts to turn off the loop detection when the directory is seen to change, however that patch still appears to have a bug in it, and I haven't had time to figure out what is wrong yet. Can you perhaps take a look, Bryan? Cheers Trond --=20 Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com From BATV+4f2e4e8f2a78a6dd013a+2894+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 27 15:47:33 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_15 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKlWr6220571 for ; Wed, 27 Jul 2011 15:47:33 -0500 X-ASG-Debug-ID: 1311799650-399b03050000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 68BDD18314AC for ; Wed, 27 Jul 2011 13:47:31 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id vCReKBPaF8gjIcy4 for ; Wed, 27 Jul 2011 13:47:31 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmB0m-0006vl-6Q; Wed, 27 Jul 2011 20:47:24 +0000 Date: Wed, 27 Jul 2011 16:47:24 -0400 From: Christoph Hellwig To: R?diger Meier Cc: Christoph Hellwig , Bryan Schumaker , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Message-ID: <20110727204724.GA21314@infradead.org> References: <4E306D09.5030704@netapp.com> <20110727200240.GA16054@infradead.org> <201107272227.03265.sweet_f_a@gmx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107272227.03265.sweet_f_a@gmx.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311799651 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70146 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, Jul 27, 2011 at 10:26:55PM +0200, R?diger Meier wrote: > At the time I've started this thread > http://comments.gmane.org/gmane.linux.nfs/40863 > I had the feeling that the readdir cache changings in 2.6.37 have > something to do with these loop problems. > > After that thread I've accepted that's a general problem with > ext4/dirindex and nfs but seeing it again on xfs with just 5000 files > I'm in doubt again. Two separate issues. For one thing the nfs code simply doesn't seem to handle changing directories very well, and one and a half the Linux NFS server might even send incoherent readdir output in a single protocol reply. Issue two is that the ext3/4 hashed directory format is too simply (not to say dumb) to provide a proper 32-bit linear value for the dirent d_off field. It's not a complex task, and the first relatively simple generation of xfs btree directories couldn't handle it either. The v2 directory format handles it fine, but at the cost of a much more complex codebase. From Trond.Myklebust@netapp.com Wed Jul 27 15:54:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKsDD2220935 for ; Wed, 27 Jul 2011 15:54:13 -0500 X-ASG-Debug-ID: 1311800052-399c03470000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id EEBB818311A2 for ; Wed, 27 Jul 2011 13:54:12 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id F7TVyDXc4UUsx674 for ; Wed, 27 Jul 2011 13:54:12 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,278,1309762800"; d="scan'208";a="566048065" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 13:54:12 -0700 Received: from sacrsexc1-prd.hq.netapp.com (sacrsexc1-prd.hq.netapp.com [10.99.115.27]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RKsCGi029848; Wed, 27 Jul 2011 13:54:12 -0700 (PDT) Received: from SACMVEXC2-PRD.hq.netapp.com ([10.99.115.17]) by sacrsexc1-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 27 Jul 2011 13:54:12 -0700 Received: from 10.55.68.86 ([10.55.68.86]) by SACMVEXC2-PRD.hq.netapp.com ([10.99.115.16]) with Microsoft Exchange Server HTTP-DAV ; Wed, 27 Jul 2011 20:54:11 +0000 Received: from lade.trondhjem.org by SACMVEXC2-PRD.hq.netapp.com; 27 Jul 2011 16:54:11 -0400 X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop From: Trond Myklebust To: Christoph Hellwig Cc: Bryan Schumaker , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Date: Wed, 27 Jul 2011 16:54:11 -0400 In-Reply-To: <1311799021.25645.41.camel@lade.trondhjem.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> Organization: NetApp Inc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Message-ID: <1311800051.25645.43.camel@lade.trondhjem.org> Mime-Version: 1.0 X-OriginalArrivalTime: 27 Jul 2011 20:54:12.0131 (UTC) FILETIME=[567AEF30:01CC4C9F] X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311800052 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote:=20 > On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote:=20 > > On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > > >=20 > > >=20 > > > On Wed, 27 Jul 2011, Christoph Hellwig wrote: > > >=20 > > > >On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > > > >>Currently I do not see any dupes, however I have a script that move= s > > > >>images out of the directory once an hour: > > > >>0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > > > > > > >Do you keep adding files to the directory while you move files out? > > > Yes, otherwise there are too many files in the directory and viewers,= e.g., > > > each geeqie (picture viewer) will use > 4-6GB of memory, so I try to = keep > > > it around 5,000 pictures or less. > > >=20 > > > >What's the rate of additions/removals to the directory? > > > Additions it depends, around 5,000 over a 12hr period, 416/hr, curren= t: > > >=20 > > > atom:/d1/motion# find cam1|wc > > > 5215 5215 166853 > > > atom:/d1/motion# find cam2|wc > > > 5069 5069 162181 > > > atom:/d1/motion# find cam3|wc > > > 5594 5594 178981 > > > atom:/d1/motion# > >=20 > > This sounds a lot like xfs simply filling up the directory index slots > > of files that you just moved out with new files, and nfs falsely > > claiming that this is a problem. >=20 > Yep. There is an existing bugzilla report for this bug at >=20 > https://bugzilla.kernel.org/show_bug.cgi?id=3D38572 >=20 > I have a preliminary patch there that attempts to turn off the loop > detection when the directory is seen to change, however that patch still > appears to have a bug in it, and I haven't had time to figure out what > is wrong yet. >=20 > Can you perhaps take a look, Bryan? Actually, Justin, can you test the following slight variant on the patch in the bugzilla? 8<---------------------------------------------------------=20 =46rom 13cf7def9f2d802c3ea300833ba7f88705279cb1 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Wed, 27 Jul 2011 16:51:56 -0400 Subject: [PATCH] NFS: Fix spurious readdir cookie loop messages If the directory contents change, then we have to accept that the file->f_pos value may shrink if we do a 'search-by-cookie'. In that case, we should turn off the loop detection and let the NFS client try to recover. Reported-by: Petr Vandrovec Cc: stable@kernel.org [2.6.39] Signed-off-by: Trond Myklebust --- fs/nfs/dir.c | 25 ++++++++++++++++--------- include/linux/nfs_fs.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 57f578e..73993b9 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -134,7 +134,7 @@ const struct inode_operations nfs4_dir_inode_operations= =3D { =20 #endif /* CONFIG_NFS_V4 */ =20 -static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct rpc_= cred *cred) +static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inod= e *dir, struct rpc_cred *cred) { struct nfs_open_dir_context *ctx; ctx =3D kmalloc(sizeof(*ctx), GFP_KERNEL); @@ -143,9 +143,10 @@ static struct nfs_open_dir_context *alloc_nfs_open_dir= _context(struct rpc_cred * ctx->dir_cookie =3D 0; ctx->dup_cookie =3D 0; ctx->cred =3D get_rpccred(cred); - } else - ctx =3D ERR_PTR(-ENOMEM); - return ctx; + ctx->cache_change_attribute =3D nfs_save_change_attribute(dir); + return ctx; + } + return ERR_PTR(-ENOMEM); } =20 static void put_nfs_open_dir_context(struct nfs_open_dir_context *ctx) @@ -173,7 +174,7 @@ nfs_opendir(struct inode *inode, struct file *filp) cred =3D rpc_lookup_cred(); if (IS_ERR(cred)) return PTR_ERR(cred); - ctx =3D alloc_nfs_open_dir_context(cred); + ctx =3D alloc_nfs_open_dir_context(inode, cred); if (IS_ERR(ctx)) { res =3D PTR_ERR(ctx); goto out; @@ -323,7 +324,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri { loff_t diff =3D desc->file->f_pos - desc->current_index; unsigned int index; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 if (diff < 0) goto out_eof; @@ -336,7 +336,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri index =3D (unsigned int)diff; *desc->dir_cookie =3D array->array[index].cookie; desc->cache_entry_index =3D index; - ctx->duped =3D 0; return 0; out_eof: desc->eof =3D 1; @@ -349,12 +348,18 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_ar= ray *array, nfs_readdir_des int i; loff_t new_pos; int status =3D -EAGAIN; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 for (i =3D 0; i < array->size; i++) { if (array->array[i].cookie =3D=3D *desc->dir_cookie) { + struct inode *dir =3D desc->file->f_path.dentry->d_inode; + struct nfs_open_dir_context *ctx =3D desc->file->private_data; + new_pos =3D desc->current_index + i; - if (new_pos < desc->file->f_pos) { + if (!nfs_verify_change_attribute(dir, ctx->cache_change_attribute) + || (NFS_I(inode)->cache_validity & NFS_INO_INVALID_ATTR)) { + ctx->cache_change_attribute =3D nfs_save_change_attribute(dir); + ctx->duped =3D 0; + } else if (new_pos < desc->file->f_pos) { ctx->dup_cookie =3D *desc->dir_cookie; ctx->duped =3D 1; } @@ -805,6 +810,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, struct page *page =3D NULL; int status; struct inode *inode =3D desc->file->f_path.dentry->d_inode; + struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %Lu\n", (unsigned long long)*desc->dir_cookie); @@ -818,6 +824,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, desc->page_index =3D 0; desc->last_cookie =3D *desc->dir_cookie; desc->page =3D page; + ctx->duped =3D 0; =20 status =3D nfs_readdir_xdr_to_array(desc, page, inode); if (status < 0) diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 8b579be..f45d712 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -99,6 +99,7 @@ struct nfs_open_context { =20 struct nfs_open_dir_context { struct rpc_cred *cred; + unsigned long cache_change_attribute; __u64 dir_cookie; __u64 dup_cookie; int duped; --=20 1.7.6 --=20 Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com From Trond.Myklebust@netapp.com Wed Jul 27 15:56:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RKubkS221024 for ; Wed, 27 Jul 2011 15:56:38 -0500 X-ASG-Debug-ID: 1311800196-355c03630000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6A0E89CED7 for ; Wed, 27 Jul 2011 13:56:36 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id CoEzx8Ccph9mLGvd for ; Wed, 27 Jul 2011 13:56:36 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,278,1309762800"; d="scan'208";a="566048661" Received: from smtp2.corp.netapp.com ([10.57.159.114]) by mx2-out.netapp.com with ESMTP; 27 Jul 2011 13:56:36 -0700 Received: from sacrsexc1-prd.hq.netapp.com (sacrsexc1-prd.hq.netapp.com [10.99.115.27]) by smtp2.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6RKuZYU021782; Wed, 27 Jul 2011 13:56:36 -0700 (PDT) Received: from SACMVEXC2-PRD.hq.netapp.com ([10.99.115.17]) by sacrsexc1-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Wed, 27 Jul 2011 13:56:36 -0700 Received: from 10.55.68.86 ([10.55.68.86]) by SACMVEXC2-PRD.hq.netapp.com ([10.99.115.16]) with Microsoft Exchange Server HTTP-DAV ; Wed, 27 Jul 2011 20:56:35 +0000 Received: from lade.trondhjem.org by SACMVEXC2-PRD.hq.netapp.com; 27 Jul 2011 16:56:35 -0400 X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop From: Trond Myklebust To: Christoph Hellwig Cc: Bryan Schumaker , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Date: Wed, 27 Jul 2011 16:56:35 -0400 In-Reply-To: <1311800051.25645.43.camel@lade.trondhjem.org> References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> Organization: NetApp Inc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Message-ID: <1311800195.25645.45.camel@lade.trondhjem.org> Mime-Version: 1.0 X-OriginalArrivalTime: 27 Jul 2011 20:56:36.0398 (UTC) FILETIME=[AC7854E0:01CC4C9F] X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311800197 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-27 at 16:54 -0400, Trond Myklebust wrote:=20 > On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote:=20 > > On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote:=20 > > > On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > > > >=20 > > > >=20 > > > > On Wed, 27 Jul 2011, Christoph Hellwig wrote: > > > >=20 > > > > >On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > > > > >>Currently I do not see any dupes, however I have a script that mo= ves > > > > >>images out of the directory once an hour: > > > > >>0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > > > > > > > > >Do you keep adding files to the directory while you move files out= ? > > > > Yes, otherwise there are too many files in the directory and viewer= s, e.g., > > > > each geeqie (picture viewer) will use > 4-6GB of memory, so I try t= o keep > > > > it around 5,000 pictures or less. > > > >=20 > > > > >What's the rate of additions/removals to the directory? > > > > Additions it depends, around 5,000 over a 12hr period, 416/hr, curr= ent: > > > >=20 > > > > atom:/d1/motion# find cam1|wc > > > > 5215 5215 166853 > > > > atom:/d1/motion# find cam2|wc > > > > 5069 5069 162181 > > > > atom:/d1/motion# find cam3|wc > > > > 5594 5594 178981 > > > > atom:/d1/motion# > > >=20 > > > This sounds a lot like xfs simply filling up the directory index slot= s > > > of files that you just moved out with new files, and nfs falsely > > > claiming that this is a problem. > >=20 > > Yep. There is an existing bugzilla report for this bug at > >=20 > > https://bugzilla.kernel.org/show_bug.cgi?id=3D38572 > >=20 > > I have a preliminary patch there that attempts to turn off the loop > > detection when the directory is seen to change, however that patch stil= l > > appears to have a bug in it, and I haven't had time to figure out what > > is wrong yet. > >=20 > > Can you perhaps take a look, Bryan? >=20 > Actually, Justin, can you test the following slight variant on the patch > in the bugzilla? Doh! This one will actually compile.... > 8<---------------------------------------------------------=20 =46rom f6720ef169b706f2d85a89d82cc1f725632ac671 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Wed, 27 Jul 2011 16:55:16 -0400 Subject: [PATCH] NFS: Fix spurious readdir cookie loop messages If the directory contents change, then we have to accept that the file->f_pos value may shrink if we do a 'search-by-cookie'. In that case, we should turn off the loop detection and let the NFS client try to recover. Reported-by: Petr Vandrovec Cc: stable@kernel.org [2.6.39] Signed-off-by: Trond Myklebust --- fs/nfs/dir.c | 25 ++++++++++++++++--------- include/linux/nfs_fs.h | 1 + 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 57f578e..188d5ae 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -134,7 +134,7 @@ const struct inode_operations nfs4_dir_inode_operations= =3D { =20 #endif /* CONFIG_NFS_V4 */ =20 -static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct rpc_= cred *cred) +static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inod= e *dir, struct rpc_cred *cred) { struct nfs_open_dir_context *ctx; ctx =3D kmalloc(sizeof(*ctx), GFP_KERNEL); @@ -143,9 +143,10 @@ static struct nfs_open_dir_context *alloc_nfs_open_dir= _context(struct rpc_cred * ctx->dir_cookie =3D 0; ctx->dup_cookie =3D 0; ctx->cred =3D get_rpccred(cred); - } else - ctx =3D ERR_PTR(-ENOMEM); - return ctx; + ctx->cache_change_attribute =3D nfs_save_change_attribute(dir); + return ctx; + } + return ERR_PTR(-ENOMEM); } =20 static void put_nfs_open_dir_context(struct nfs_open_dir_context *ctx) @@ -173,7 +174,7 @@ nfs_opendir(struct inode *inode, struct file *filp) cred =3D rpc_lookup_cred(); if (IS_ERR(cred)) return PTR_ERR(cred); - ctx =3D alloc_nfs_open_dir_context(cred); + ctx =3D alloc_nfs_open_dir_context(inode, cred); if (IS_ERR(ctx)) { res =3D PTR_ERR(ctx); goto out; @@ -323,7 +324,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri { loff_t diff =3D desc->file->f_pos - desc->current_index; unsigned int index; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 if (diff < 0) goto out_eof; @@ -336,7 +336,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri index =3D (unsigned int)diff; *desc->dir_cookie =3D array->array[index].cookie; desc->cache_entry_index =3D index; - ctx->duped =3D 0; return 0; out_eof: desc->eof =3D 1; @@ -349,12 +348,18 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_ar= ray *array, nfs_readdir_des int i; loff_t new_pos; int status =3D -EAGAIN; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 for (i =3D 0; i < array->size; i++) { if (array->array[i].cookie =3D=3D *desc->dir_cookie) { + struct inode *dir =3D desc->file->f_path.dentry->d_inode; + struct nfs_open_dir_context *ctx =3D desc->file->private_data; + new_pos =3D desc->current_index + i; - if (new_pos < desc->file->f_pos) { + if (!nfs_verify_change_attribute(dir, ctx->cache_change_attribute) + || (NFS_I(dir)->cache_validity & NFS_INO_INVALID_ATTR)) { + ctx->cache_change_attribute =3D nfs_save_change_attribute(dir); + ctx->duped =3D 0; + } else if (new_pos < desc->file->f_pos) { ctx->dup_cookie =3D *desc->dir_cookie; ctx->duped =3D 1; } @@ -805,6 +810,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, struct page *page =3D NULL; int status; struct inode *inode =3D desc->file->f_path.dentry->d_inode; + struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %Lu\n", (unsigned long long)*desc->dir_cookie); @@ -818,6 +824,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, desc->page_index =3D 0; desc->last_cookie =3D *desc->dir_cookie; desc->page =3D page; + ctx->duped =3D 0; =20 status =3D nfs_readdir_xdr_to_array(desc, page, inode); if (status < 0) diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 8b579be..f45d712 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -99,6 +99,7 @@ struct nfs_open_context { =20 struct nfs_open_dir_context { struct rpc_cred *cred; + unsigned long cache_change_attribute; __u64 dir_cookie; __u64 dup_cookie; int duped; --=20 1.7.6 --=20 Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com From sweet_f_a@gmx.de Wed Jul 27 16:22:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM, J_CHICKENPOX_12,J_CHICKENPOX_15,MIME_8BIT_HEADER autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RLLvkc221704 for ; Wed, 27 Jul 2011 16:22:02 -0500 X-ASG-Debug-ID: 1311801715-529f03290000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mailout-de.gmx.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id B87991BFD7CC for ; Wed, 27 Jul 2011 14:21:56 -0700 (PDT) Received: from mailout-de.gmx.net (mailout-de.gmx.net [213.165.64.23]) by cuda.sgi.com with SMTP id paBJVsUVRmd9aQ82 for ; Wed, 27 Jul 2011 14:21:56 -0700 (PDT) Received: (qmail invoked by alias); 27 Jul 2011 21:21:55 -0000 Received: from dslb-088-074-017-087.pools.arcor-ip.net (EHLO dslb-088-074-017-087.pools.arcor-ip.net) [88.74.17.87] by mail.gmx.net (mp067) with SMTP; 27 Jul 2011 23:21:55 +0200 X-Authenticated: #11967524 X-Provags-ID: V01U2FsdGVkX1+Hm6FALiKHQ1ZlugwS9myyNPb1OedmtvEHWnTY+v y6bP2ew9PHdef0 From: =?iso-8859-1?q?R=FCdiger_Meier?= To: Christoph Hellwig X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Date: Wed, 27 Jul 2011 23:21:45 +0200 User-Agent: KMail/1.9.10 Cc: Bryan Schumaker , Justin Piszcz , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com References: <201107272227.03265.sweet_f_a@gmx.de> <20110727204724.GA21314@infradead.org> In-Reply-To: <20110727204724.GA21314@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201107272321.54030.sweet_f_a@gmx.de> X-Y-GMX-Trusted: 0 X-Barracuda-Connect: mailout-de.gmx.net[213.165.64.23] X-Barracuda-Start-Time: 1311801716 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wednesday 27 July 2011, Christoph Hellwig wrote: > On Wed, Jul 27, 2011 at 10:26:55PM +0200, R?diger Meier wrote: > > At the time I've started this thread > > http://comments.gmane.org/gmane.linux.nfs/40863 > > I had the feeling that the readdir cache changings in 2.6.37 have > > something to do with these loop problems. > > > > After that thread I've accepted that's a general problem with > > ext4/dirindex and nfs but seeing it again on xfs with just 5000 > > files I'm in doubt again. > > Two separate issues. [...] Yup, I didn't wanted to say that I'm in doubt about the general ext4/dirindex problem but I'am still in doubt about the complete innocence of readdir cache. I guess I've run into both issues at that time. I remember that I couldn't easily create such "broken" dir from scratch but my users managed it to have dozens of them, often just about 30000 files. Somehow it seemed to be important that the dirs were growing in a natural way. However no probs again since with xfs and ext4 without dirindex. But still the feeling that upgrading to 2.6.37 was also a part of the problem. cu, Rudi From jpiszcz@lucidpixels.com Wed Jul 27 16:24:11 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RLOBoa221896 for ; Wed, 27 Jul 2011 16:24:11 -0500 X-ASG-Debug-ID: 1311801849-52a003190000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id F0CD71D8FAFD for ; Wed, 27 Jul 2011 14:24:09 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id EEP0GCpZHlItSAm5 for ; Wed, 27 Jul 2011 14:24:09 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 908DE580795; Wed, 27 Jul 2011 17:24:09 -0400 (EDT) Date: Wed, 27 Jul 2011 17:24:09 -0400 (EDT) From: Justin Piszcz To: Trond Myklebust cc: Christoph Hellwig , Bryan Schumaker , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <1311800195.25645.45.camel@lade.trondhjem.org> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311801849 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Trond Myklebust wrote: > On Wed, 2011-07-27 at 16:54 -0400, Trond Myklebust wrote: >> On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote: >>> On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote: >>>> On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: >>>>> >>>>> >>>>> On Wed, 27 Jul 2011, Christoph Hellwig wrote: >>>>> >>>>>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: >>>>>>> Currently I do not see any dupes, however I have a script that moves >>>>>>> images out of the directory once an hour: >>>>>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 >>>>>> >>>>>> Do you keep adding files to the directory while you move files out? >>>>> Yes, otherwise there are too many files in the directory and viewers, e.g., >>>>> each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep >>>>> it around 5,000 pictures or less. >>>>> >>>>>> What's the rate of additions/removals to the directory? >>>>> Additions it depends, around 5,000 over a 12hr period, 416/hr, current: >>>>> >>>>> atom:/d1/motion# find cam1|wc >>>>> 5215 5215 166853 >>>>> atom:/d1/motion# find cam2|wc >>>>> 5069 5069 162181 >>>>> atom:/d1/motion# find cam3|wc >>>>> 5594 5594 178981 >>>>> atom:/d1/motion# >>>> >>>> This sounds a lot like xfs simply filling up the directory index slots >>>> of files that you just moved out with new files, and nfs falsely >>>> claiming that this is a problem. >>> >>> Yep. There is an existing bugzilla report for this bug at >>> >>> https://bugzilla.kernel.org/show_bug.cgi?id=38572 >>> >>> I have a preliminary patch there that attempts to turn off the loop >>> detection when the directory is seen to change, however that patch still >>> appears to have a bug in it, and I haven't had time to figure out what >>> is wrong yet. >>> >>> Can you perhaps take a look, Bryan? >> >> Actually, Justin, can you test the following slight variant on the patch >> in the bugzilla? > > Doh! This one will actually compile.... Hi, Should I try 3.0 first or retry 2.6.38 w/ this patch? Justin. From jpiszcz@lucidpixels.com Wed Jul 27 17:44:21 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6RMiLYG224286 for ; Wed, 27 Jul 2011 17:44:21 -0500 X-ASG-Debug-ID: 1311806671-38f401be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 45F35168793C for ; Wed, 27 Jul 2011 15:44:32 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id Yo1nx7amxSlx4WnG for ; Wed, 27 Jul 2011 15:44:32 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 20E5C580796; Wed, 27 Jul 2011 18:44:19 -0400 (EDT) Date: Wed, 27 Jul 2011 18:44:19 -0400 (EDT) From: Justin Piszcz To: Trond Myklebust cc: Christoph Hellwig , Bryan Schumaker , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311806672 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70155 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 27 Jul 2011, Justin Piszcz wrote: > > > On Wed, 27 Jul 2011, Trond Myklebust wrote: > > > On Wed, 2011-07-27 at 16:54 -0400, Trond Myklebust wrote: > >> On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote: > >>> On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote: > >>>> On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > >>>>> > >>>>> > >>>>> On Wed, 27 Jul 2011, Christoph Hellwig wrote: > >>>>> > >>>>>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > >>>>>>> Currently I do not see any dupes, however I have a script that moves > >>>>>>> images out of the directory once an hour: > >>>>>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > >>>>>> > >>>>>> Do you keep adding files to the directory while you move files out? > >>>>> Yes, otherwise there are too many files in the directory and viewers, e.g., > >>>>> each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep > >>>>> it around 5,000 pictures or less. > >>>>> > >>>>>> What's the rate of additions/removals to the directory? > >>>>> Additions it depends, around 5,000 over a 12hr period, 416/hr, current: > >>>>> > >>>>> atom:/d1/motion# find cam1|wc > >>>>> 5215 5215 166853 > >>>>> atom:/d1/motion# find cam2|wc > >>>>> 5069 5069 162181 > >>>>> atom:/d1/motion# find cam3|wc > >>>>> 5594 5594 178981 > >>>>> atom:/d1/motion# > >>>> > >>>> This sounds a lot like xfs simply filling up the directory index slots > >>>> of files that you just moved out with new files, and nfs falsely > >>>> claiming that this is a problem. > >>> > >>> Yep. There is an existing bugzilla report for this bug at > >>> > >>> https://bugzilla.kernel.org/show_bug.cgi?id=38572 > >>> > >>> I have a preliminary patch there that attempts to turn off the loop > >>> detection when the directory is seen to change, however that patch still > >>> appears to have a bug in it, and I haven't had time to figure out what > >>> is wrong yet. > >>> > >>> Can you perhaps take a look, Bryan? > >> > >> Actually, Justin, can you test the following slight variant on the patch > >> in the bugzilla? > > > > Doh! This one will actually compile.... > > Hi, > > Should I try 3.0 first or retry 2.6.38 w/ this patch? > > Justin. > > I'll give 3.0 a go first. Justin. From sbehrens@giantdisaster.de Thu Jul 28 03:28:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_53,J_CHICKENPOX_63,J_CHICKENPOX_71,J_CHICKENPOX_73, J_CHICKENPOX_91,J_CHICKENPOX_93 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8S4h3246813 for ; Thu, 28 Jul 2011 03:28:04 -0500 X-ASG-Debug-ID: 1311841697-67d301a20000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 446E4F131C9 for ; Thu, 28 Jul 2011 01:28:17 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id p0yLkiG974O5G2Ai for ; Thu, 28 Jul 2011 01:28:17 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id C53FA907; Thu, 28 Jul 2011 10:28:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id BC4BAC097; Thu, 28 Jul 2011 10:28:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 1/4] xfstests: Add support for btrfs in 062 Subject: [PATCH 1/4] xfstests: Add support for btrfs in 062 Date: Thu, 28 Jul 2011 10:27:58 +0200 Message-Id: X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311841698 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70193 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Added btrfs to the list of supported filesystems for this test. Remove output of mkfs since this is specific to mkfs.xfs and now filtered out. Signed-off-by: Stefan Behrens --- 062 | 4 ++-- 062.out | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/062 b/062 index 5cb6f92..0f1e98f 100755 --- a/062 +++ b/062 @@ -71,7 +71,7 @@ _create_test_bed() } # real QA test starts here -_supported_fs xfs udf nfs +_supported_fs xfs udf nfs btrfs _supported_os Linux _require_scratch @@ -80,7 +80,7 @@ _require_attrs rm -f $tmp.backup1 $tmp.backup2 $seq.full # real QA test starts here -_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs +_scratch_mkfs > /dev/null || _fail "mkfs failed" _scratch_mount || _fail "mount failed" _create_test_bed diff --git a/062.out b/062.out index 73fd628..1d5a094 100644 --- a/062.out +++ b/062.out @@ -1,10 +1,4 @@ QA output created by 062 -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks -data = bsize=XXX blocks=XXX, imaxpct=PCT - = sunit=XXX swidth=XXX, unwritten=X -naming =VERN bsize=XXX -log =LDEV bsize=XXX blocks=XXX -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX *** create test bed SCRATCH_MNT SCRATCH_MNT/dev -- 1.7.3.4 From sbehrens@giantdisaster.de Thu Jul 28 03:28:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8S4IA246811 for ; Thu, 28 Jul 2011 03:28:04 -0500 X-ASG-Debug-ID: 1311841682-7c8500a50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mort.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 10DAE1D8E8E7 for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from mort.rzone.de (mort.rzone.de [81.169.144.234]) by cuda.sgi.com with ESMTP id mDkowBKHZmaACUQK for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by mort.rzone.de (Postfix) with ESMTP id D569D989; Thu, 28 Jul 2011 10:28:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id CDAC8C096; Thu, 28 Jul 2011 10:28:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 4/4] xfstests: Add support for btrfs in 079 Subject: [PATCH 4/4] xfstests: Add support for btrfs in 079 Date: Thu, 28 Jul 2011 10:28:01 +0200 Message-Id: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: X-Barracuda-Connect: mort.rzone.de[81.169.144.234] X-Barracuda-Start-Time: 1311841683 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Added btrfs to the list of supported filesystems for test 079. In src/t_immutable.c which is compiled for Linux only, add support for btrfs by replacing the ioctl(EXT2_IOC_SETFLAGS) with ioctl(FS_IOC_SETFLAGS) which is defined to be the same. Afterwards in src/t_immutable.c in function fsetflag(), share the code branch for the ext2 case also for the btrfs case. Furthermore, added missing call to ioctl(FS_IOC_GETFLAGS) to the ext3 and btrfs code branch, this was a difference to the way the XFS code branch was implemented. Signed-off-by: Stefan Behrens --- 079 | 4 ++-- src/t_immutable.c | 23 +++++++++++++++-------- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/079 b/079 index 6c43fe7..02f7607 100755 --- a/079 +++ b/079 @@ -46,7 +46,7 @@ _cleanup() . ./common.filter . ./common.attr -_supported_fs xfs +_supported_fs xfs btrfs _supported_os Linux _require_attrs @@ -55,7 +55,7 @@ _require_scratch [ -x $timmutable ] || _notrun "t_immutable was not built for this platform" # real QA test starts here -_scratch_mkfs_xfs 2>&1 >/dev/null || _fail "mkfs failed" +_scratch_mkfs 2>&1 >/dev/null || _fail "mkfs failed" _scratch_mount || _fail "mount failed" echo "*** starting up" diff --git a/src/t_immutable.c b/src/t_immutable.c index 7bb3154..9be0c2e 100644 --- a/src/t_immutable.c +++ b/src/t_immutable.c @@ -41,6 +41,8 @@ #include #include #include +#include +#include #define EXT2_SUPER_MAGIC 0xEF53 #define EXT2_IMMUTABLE_FL 0x00000010 @@ -55,18 +57,18 @@ extern const char *__progname; static int fsetflag(const char *path, int fd, int on, int immutable) { - int e2flags = 0; + int fsflags = 0; struct fsxattr attr; struct statfs stfs; int xfsfl; - int e2fl; + int fsfl; if (immutable) { xfsfl = XFS_XFLAG_IMMUTABLE; - e2fl = EXT2_IMMUTABLE_FL; + fsfl = FS_IMMUTABLE_FL; } else { xfsfl = XFS_XFLAG_APPEND; - e2fl = EXT2_APPEND_FL; + fsfl = FS_APPEND_FL; } if (fstatfs(fd, &stfs) != 0) @@ -85,12 +87,17 @@ static int fsetflag(const char *path, int fd, int on, int immutable) close(fd); return 1; } - } else if (stfs.f_type == EXT2_SUPER_MAGIC) { + } else if (stfs.f_type == EXT2_SUPER_MAGIC || + stfs.f_type == BTRFS_SUPER_MAGIC) { + if (ioctl(fd, FS_IOC_GETFLAGS, &fsflags) < 0) { + close(fd); + return 1; + } if (on) - e2flags |= e2fl; + fsflags |= fsfl; else - e2flags &= ~e2fl; - if (ioctl(fd, EXT2_IOC_SETFLAGS, &e2flags) < 0) { + fsflags &= ~fsfl; + if (ioctl(fd, FS_IOC_SETFLAGS, &fsflags) < 0) { close(fd); return 1; } -- 1.7.3.4 From sbehrens@giantdisaster.de Thu Jul 28 03:28:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8S4Re246810 for ; Thu, 28 Jul 2011 03:28:04 -0500 X-ASG-Debug-ID: 1311841682-2cce027c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1E30B1D8E8EA for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id ABIrA0vZ68GyccWr for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id CC7C6908; Thu, 28 Jul 2011 10:28:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id C2A91C098; Thu, 28 Jul 2011 10:28:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 2/4] xfstests: Add support for btrfs in 083, 117, 120 and 192 Subject: [PATCH 2/4] xfstests: Add support for btrfs in 083, 117, 120 and 192 Date: Thu, 28 Jul 2011 10:27:59 +0200 Message-Id: <5d99a1d3ca548176a2246dff06701277ee11e0d6.1311776403.git.sbehrens@giantdisaster.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311841683 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Added btrfs to the list of supported filesystems for tests 083, 117, 120 and 192. For test 083 also changed to use _scratch_mkfs_sized instead of _scratch_mks_xfs for all filesystem types except for XFS. Signed-off-by: Stefan Behrens --- 083 | 12 +++++++++--- 117 | 4 ++-- 120 | 4 ++-- 192 | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/083 b/083 index 7342baa..898d202 100755 --- a/083 +++ b/083 @@ -54,7 +54,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter # real QA test starts here -_supported_fs xfs +_supported_fs xfs btrfs _supported_os IRIX Linux _require_scratch @@ -72,8 +72,14 @@ workout() umount $SCRATCH_DEV >/dev/null 2>&1 echo "*** mkfs -dsize=$fsz,agcount=$ags" >>$seq.full echo "" >>$seq.full - _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seq.full 2>&1 \ - || _fail "size=$fsz,agcount=$ags mkfs failed" + if [ $FSTYP = xfs ] + then + _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seq.full 2>&1 \ + || _fail "size=$fsz,agcount=$ags mkfs failed" + else + _scratch_mkfs_sized $fsz >>$seq.full 2>&1 \ + || _fail "size=$fsz mkfs failed" + fi _scratch_mount >>$seq.full 2>&1 \ || _fail "mount failed" diff --git a/117 b/117 index dd880cb..92949d0 100755 --- a/117 +++ b/117 @@ -51,7 +51,7 @@ _cleanup() . ./common.attr # real QA test starts here -_supported_fs xfs +_supported_fs xfs btrfs _supported_os IRIX Linux _setup_testdir @@ -62,7 +62,7 @@ rm -f $seq.full umount $SCRATCH_DEV >/dev/null 2>&1 echo "*** MKFS ***" >>$seq.full echo "" >>$seq.full -_scratch_mkfs_xfs >>$seq.full 2>&1 \ +_scratch_mkfs >>$seq.full 2>&1 \ || _fail "mkfs failed" _scratch_mount >>$seq.full 2>&1 \ || _fail "mount failed" diff --git a/120 b/120 index bf1e617..f8d3aad 100755 --- a/120 +++ b/120 @@ -37,11 +37,11 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 . ./common.filter # real QA test starts here -_supported_fs xfs +_supported_fs xfs btrfs _supported_os Linux IRIX _require_scratch -_scratch_mkfs_xfs >/dev/null 2>&1 +_scratch_mkfs >/dev/null 2>&1 || _fail "mkfs failed" _compare_access_times() { diff --git a/192 b/192 index d8301d5..0c488ef 100755 --- a/192 +++ b/192 @@ -45,7 +45,7 @@ _access_time() # real QA test starts here -_supported_fs xfs udf nfs +_supported_fs xfs udf nfs btrfs _supported_os Linux #delay=150 #delay=75 -- 1.7.3.4 From sbehrens@giantdisaster.de Thu Jul 28 03:28:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8S4id246812 for ; Thu, 28 Jul 2011 03:28:04 -0500 X-ASG-Debug-ID: 1311841682-7c8400a30000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 5A8D31D8E8EB for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id PXh5v004pkotbujo for ; Thu, 28 Jul 2011 01:28:02 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id D1279909; Thu, 28 Jul 2011 10:28:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id C8F91C099; Thu, 28 Jul 2011 10:28:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 3/4] xfstests: Add support for btrfs in 015 Subject: [PATCH 3/4] xfstests: Add support for btrfs in 015 Date: Thu, 28 Jul 2011 10:28:00 +0200 Message-Id: X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311841683 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Added btrfs to the list of supported filesystems for test 015, and increased free space reporting tolerance to 10% for btrfs. Replaced the call to _scratch_mkfs_xfs with the XFS specific size parameter by the generic one for sized filesystem creation which is _scratch_mkfs_sized. Signed-off-by: Stefan Behrens --- 015 | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/015 b/015 index 8f2be7c..7020e67 100755 --- a/015 +++ b/015 @@ -48,13 +48,13 @@ _free() } # real QA test starts here -_supported_fs xfs +_supported_fs xfs btrfs _supported_os IRIX Linux _require_scratch _require_nobigloopfs -_scratch_mkfs_xfs -d size=50m >/dev/null || _fail "mkfs failed" +_scratch_mkfs_sized `expr 50 \* 1024 \* 1024` >/dev/null || _fail "mkfs failed" _scratch_mount || _fail "mount failed" out=$SCRATCH_MNT/fillup.$$ rm -f $seq.full @@ -120,7 +120,12 @@ fi echo "free space after delete $free2" >> $seq.full echo -n " !!! " -_within_tolerance "free space" $free2 $free0 1% -v +if [ $FSTYP = btrfs ] +then + _within_tolerance "free space" $free2 $free0 10% -v +else + _within_tolerance "free space" $free2 $free0 1% -v +fi status=0 exit -- 1.7.3.4 From sbehrens@giantdisaster.de Thu Jul 28 03:28:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8S6n5246845 for ; Thu, 28 Jul 2011 03:28:06 -0500 X-ASG-Debug-ID: 1311841684-558002cd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mort.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6C2809E388 for ; Thu, 28 Jul 2011 01:28:04 -0700 (PDT) Received: from mort.rzone.de (mort.rzone.de [81.169.144.234]) by cuda.sgi.com with ESMTP id y1gqnslYkS7okGMx for ; Thu, 28 Jul 2011 01:28:04 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by mort.rzone.de (Postfix) with ESMTP id C533B988; Thu, 28 Jul 2011 10:28:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id B6549C096; Thu, 28 Jul 2011 10:28:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH 0/4] xfstests: Add support for btrfs in a couple of xfstests Subject: [PATCH 0/4] xfstests: Add support for btrfs in a couple of xfstests Date: Thu, 28 Jul 2011 10:27:57 +0200 Message-Id: X-Mailer: git-send-email 1.7.3.4 X-Barracuda-Connect: mort.rzone.de[81.169.144.234] X-Barracuda-Start-Time: 1311841685 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0004 1.0000 -2.0187 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Added btrfs to the list of supported filesystems for tests 015, 062, 079, 083, 117, 120 and 192. For test 079 to run, src/t_immutable.c was also modified (for ext2 and btrfs filesystems). Stefan Behrens (4): xfstests: Add support for btrfs in 062 xfstests: Add support for btrfs in 083, 117, 120 and 192 xfstests: Add support for btrfs in 015 xfstests: Add support for btrfs in 079 015 | 11 ++++++++--- 062 | 4 ++-- 062.out | 6 ------ 079 | 4 ++-- 083 | 12 +++++++++--- 117 | 4 ++-- 120 | 4 ++-- 192 | 2 +- src/t_immutable.c | 23 +++++++++++++++-------- 9 files changed, 41 insertions(+), 29 deletions(-) -- 1.7.3.4 From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 03:45:12 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8jBUc247456 for ; Thu, 28 Jul 2011 03:45:12 -0500 X-ASG-Debug-ID: 1311842722-6aa201c60000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6702AF131FF for ; Thu, 28 Jul 2011 01:45:22 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id WQK4tqdyEfyRDpcF for ; Thu, 28 Jul 2011 01:45:22 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmMDI-0001hr-Q9; Thu, 28 Jul 2011 08:45:04 +0000 Date: Thu, 28 Jul 2011 04:45:04 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfstests: Add support for btrfs in 062 Subject: Re: [PATCH 1/4] xfstests: Add support for btrfs in 062 Message-ID: <20110728084504.GA3407@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311842723 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70195 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 10:27:58AM +0200, Stefan Behrens wrote: > Added btrfs to the list of supported filesystems for this test. > Remove output of mkfs since this is specific to mkfs.xfs and now filtered > out. Why can't it be generic? Any reason this one doesn't work on e.g. ext2 or reiserfs? From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 03:46:35 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8kY0i247519 for ; Thu, 28 Jul 2011 03:46:35 -0500 X-ASG-Debug-ID: 1311842808-76cc01010000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E8EAEF1321E for ; Thu, 28 Jul 2011 01:46:48 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id DZf8B3fnF4ObLDEb for ; Thu, 28 Jul 2011 01:46:48 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmMEi-0001lX-8q; Thu, 28 Jul 2011 08:46:32 +0000 Date: Thu, 28 Jul 2011 04:46:32 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 2/4] xfstests: Add support for btrfs in 083, 117, 120 and 192 Subject: Re: [PATCH 2/4] xfstests: Add support for btrfs in 083, 117, 120 and 192 Message-ID: <20110728084632.GB3407@infradead.org> References: <5d99a1d3ca548176a2246dff06701277ee11e0d6.1311776403.git.sbehrens@giantdisaster.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <5d99a1d3ca548176a2246dff06701277ee11e0d6.1311776403.git.sbehrens@giantdisaster.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311842808 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70195 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Same questions as for the previous one. From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 03:47:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8lwNo247570 for ; Thu, 28 Jul 2011 03:47:59 -0500 X-ASG-Debug-ID: 1311842877-1bf901650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 6B3A19E6A9 for ; Thu, 28 Jul 2011 01:47:58 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id fBTgiOy1Klw5qqdp for ; Thu, 28 Jul 2011 01:47:58 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmMG4-0001v4-Oa; Thu, 28 Jul 2011 08:47:56 +0000 Date: Thu, 28 Jul 2011 04:47:56 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 Subject: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 Message-ID: <20110728084756.GC3407@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311842878 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 10:28:00AM +0200, Stefan Behrens wrote: > Added btrfs to the list of supported filesystems for test 015, and > increased free space reporting tolerance to 10% for btrfs. > Replaced the call to _scratch_mkfs_xfs with the XFS specific size > parameter by the generic one for sized filesystem creation which is > _scratch_mkfs_sized. ACK for the _scratch_mkfs_sized changed, but I'm really curious why we would allow so much more tolerance for btrfs. And again, why can't these be marked generic? From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 03:52:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6S8q01c247699 for ; Thu, 28 Jul 2011 03:52:00 -0500 X-ASG-Debug-ID: 1311843119-2cc103400000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B9730183BA65 for ; Thu, 28 Jul 2011 01:51:59 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id uHoTgGckl4P9Gudi for ; Thu, 28 Jul 2011 01:51:59 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmMJy-0002lS-8x; Thu, 28 Jul 2011 08:51:58 +0000 Date: Thu, 28 Jul 2011 04:51:58 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Subject: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Message-ID: <20110728085158.GD3407@infradead.org> References: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311843119 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70196 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 10:28:01AM +0200, Stefan Behrens wrote: > Added btrfs to the list of supported filesystems for test 079. > In src/t_immutable.c which is compiled for Linux only, add support for > btrfs by replacing the ioctl(EXT2_IOC_SETFLAGS) with > ioctl(FS_IOC_SETFLAGS) which is defined to be the same. That has nothing to do with btrfs support. Your patch means we recent kernel headers to get the FS_IOC_SETFLAGS instead of having a local one. I don't care what name to use for the local one, and I also don't mind an ifdef to pick up a header one in preference, but as-is the patch isn't too useful as FS_IOC_SETFLAGS is a fairly recent addition to the kernel headers, and we will break existing working setups. > Afterwards in src/t_immutable.c in function fsetflag(), share the code > branch for the ext2 case also for the btrfs case. > Furthermore, added missing call to ioctl(FS_IOC_GETFLAGS) to the ext3 > and btrfs code branch, this was a difference to the way the XFS code > branch was implemented. I'd suggest to completely drop the stat check, and use the ext2 branch unconditionally. The ioctl is suppored by all major filesystems. This also means we can make the test generic, maybe with a _notrun instead of an error if FS_IOC_GETFLAGS/FS_IOC_SETFLAGS isn't supported. From ajeet.yadav.77@gmail.com Thu Jul 28 05:51:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, LOCAL_GNU_PATCH,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SAp3dA252735 for ; Thu, 28 Jul 2011 05:51:04 -0500 X-ASG-Debug-ID: 1311850277-51b801610000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f47.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 0247A168886B for ; Thu, 28 Jul 2011 03:51:17 -0700 (PDT) Received: from mail-vw0-f47.google.com (mail-vw0-f47.google.com [209.85.212.47]) by cuda.sgi.com with ESMTP id 5fh91ngyCcHTBxkb for ; Thu, 28 Jul 2011 03:51:17 -0700 (PDT) Received: by vws2 with SMTP id 2so2063095vws.6 for ; Thu, 28 Jul 2011 03:51:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:date:message-id:subject:from:to:content-type; bh=d3/ExeYZtG/HpeOq1x+lzuH5zGKY6NSTFNI9dAWwd2A=; b=qqmo5UGNHBeVrnbMnr87q0netonSDmNUj4/hns8pWJEUki60A4cuq59D6ZzuecnHNV c1xOlVYL1m8bFTuF6bZ6h9XbD0pmJ4g4OWFIj8PO2SEWJrJNpm7vA1XGPtSrf280UUZ9 UKweiwFdBL33/HcrmvnHJAJfziEfrz4M+XX28= MIME-Version: 1.0 Received: by 10.220.176.195 with SMTP id bf3mr273705vcb.0.1311850261399; Thu, 28 Jul 2011 03:51:01 -0700 (PDT) Received: by 10.220.209.195 with HTTP; Thu, 28 Jul 2011 03:51:01 -0700 (PDT) Date: Thu, 28 Jul 2011 16:21:01 +0530 Message-ID: X-ASG-Orig-Subj: "xfs: fix error handling for synchronous writes" revisited Subject: "xfs: fix error handling for synchronous writes" revisited From: Ajeet Yadav To: xfs@oss.sgi.com, Dave Chinner Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-vw0-f47.google.com[209.85.212.47] X-Barracuda-Start-Time: 1311850278 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70203 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Just to recall, last year we have reported one hang issue in 2.6.30.9 wherein we get hang if we remove the device while synchronous write was underway It was because synchronous buffer remain locked in case of EIO error. In response to that a fix commit: bfc60177f8ab509bc225becbb58f7e53a0e33e81 "xfs: fix error handling for synchronous writes" for 2.6.38 was given by community Unfortunately I did not use this patch and therefore did not test it. Coming to present, I run the same test case again, and I got different hang pasted below. While debugging I compared with my own solution, wherein I did not have any issue Kindly review the solution patch ------------------------------------------------------------------------------------------------------------------------------ diff -Nurp -X linux/Documentation/dontdiff linux/fs/xfs/xfs_buf_item.c linux-Dirty/fs/xfs/xfs_buf_item.c --- linux/fs/xfs/xfs_buf_item.c 2011-06-09 10:05:18.000000000 +0530 +++ linux-Dirty/fs/xfs/xfs_buf_item.c 2011-07-28 15:53:51.000000000 +0530 @@ -1028,7 +1028,6 @@ xfs_buf_iodone_callbacks( XFS_BUF_UNDELAYWRITE(bp); trace_xfs_buf_error_relse(bp, _RET_IP_); - xfs_force_shutdown(mp, SHUTDOWN_META_IO_ERROR); do_callbacks: xfs_buf_do_callbacks(bp, lip); -------------------------------------------------------------------------------------------------------------------------------- VDLinux#> ./create.sh /dtv/usb/sda3 usb 2-1: USB disconnect, address 6 sd 4:0:0:0: [sda] Unhandled error code sd 4:0:0:0: [sda] Result: hostbyte=0x01 driverbyte=0x00 sd 4:0:0:0: [sda] CDB: cdb[0]=0x2a: 2a 00 00 59 6e 22 00 00 18 00 end_request: I/O error, dev sda, sector 5860898 sd 4:0:0:0: [sda] Unhandled error code sd 4:0:0:0: [sda] Result: hostbyte=0x01 driverbyte=0x00 sd 4:0:0:0: [sda] CDB: cdb[0]=0x2a: 2a 00 00 59 72 aa 00 00 08 00 end_request: I/O error, dev sda, sector 5862058 end_request: I/O error, dev sda, sector 10764521 Device sda3, XFS metadata write error block 0x8 in sda3 xfs_force_shutdown(sda3,0x1) called from line 1031 of file fs/xfs/xfs_buf_item.c. Return address = 0x80134f10 INFO: task xfslogd/0:15 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. xfslogd/0 D 801535ec 0 15 2 0x00100000 Stack : 878f0164 878f6bf0 8034aa10 8034aa40 80382360 80021418 802a5030 8034af8c 878f0000 80350000 00000000 87bf7700 86c86c00 00000001 87bf7700 87000780 8030d500 8030d538 fffffffe 801535ec 803b4a80 00000000 878f0000 efffffff 00000001 878f0000 80024254 87000780 87bb3a34 efffffff 8030d500 00000000 87bf7700 86c86c00 00000000 fffffffc efffffff 80153840 00000000 80179600 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<801535ec>] _xfs_log_force+0x264/0x2ec [<80153840>] xfs_log_force_umount+0x1cc/0x238 [<80169730>] xfs_do_force_shutdown+0x74/0x19c [<80134f10>] xfs_buf_iodone_callbacks+0x158/0x190 [<8003cc8c>] worker_thread+0x170/0x24c [<80040b98>] kthread+0x7c/0x84 [<8000a9e8>] kernel_thread_helper+0x10/0x18 INFO: task khubd:62 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. khubd D 801535ec 0 62 2 0x00100000 Stack : 874bb0a0 00000000 00000000 00000000 86c6e880 8017896c 802a5030 80350000 878f48c0 8006a824 00000000 86c86c00 872a7a00 00000001 87bf7700 87000780 e0382e4c 801d56fc 86c86000 801535ec 86c86c00 80178b38 80350000 80024eb4 00000001 878f48c0 80024254 878a7da4 87000780 00000001 00000005 86c86c00 86c86c00 872a7a00 86c86c00 80005280 00000001 801538c4 80005280 00000001 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<801535ec>] _xfs_log_force+0x264/0x2ec [<801538c4>] xfs_log_force+0x18/0x4c [<80178e80>] xfs_sync_data+0x4c/0x64 [<80178f08>] xfs_quiesce_data+0x2c/0x98 [<801756c0>] xfs_fs_sync_fs+0x28/0xdc [<800c43cc>] __sync_filesystem+0x88/0xbc [<800cf2d0>] fsync_bdev+0x28/0x64 [<8019be98>] invalidate_partition+0x28/0x50 [<800eddac>] del_gendisk+0x40/0xf8 [<801ee7ac>] sd_remove+0x38/0xc4 [<801d8058>] __device_release_driver+0x6c/0xc4 [<801d81e4>] device_release_driver+0x28/0x40 [<801d7498>] bus_remove_device+0xac/0xe0 [<801d580c>] device_del+0x110/0x170 [<801eb550>] __scsi_remove_device+0x4c/0xb4 [<801e8114>] scsi_forget_host+0x90/0xf4 [<801e0dc8>] scsi_remove_host+0xec/0x19c [] quiesce_and_remove_host+0x94/0x138 [usb_storage] [] usb_stor_disconnect+0x2c/0x48 [usb_storage] [] usb_unbind_interface+0x68/0x148 [usbcore] [<801d8058>] __device_release_driver+0x6c/0xc4 [<801d81e4>] device_release_driver+0x28/0x40 [<801d7498>] bus_remove_device+0xac/0xe0 [<801d580c>] device_del+0x110/0x170 [] usb_disable_device+0xfc/0x244 [usbcore] [] usb_disconnect+0x188/0x3c4 [usbcore] [] hub_thread+0x7ec/0x1a34 [usbcore] [<80040b98>] kthread+0x7c/0x84 [<8000a9e8>] kernel_thread_helper+0x10/0x18 INFO: task sync:3805 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. sync D 80005f44 0 3805 2934 0x00100000 Stack : 00000000 00000d30 87013900 87113680 00000001 00000000 802a5030 80193414 8729da40 00000000 7fffffff 00000000 87013978 00000002 86c77e30 00000000 0056e324 00000000 00000002 80005f44 87013900 800cc490 87013900 800cd0ac 00000000 870133dc 00000002 00000000 00000000 8016d5f8 00000000 00000000 00000000 00000000 00000000 80005d7c 00001000 8729da40 87013900 86c77e28 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<80005f44>] schedule_timeout+0x24/0x1f8 [<80005d7c>] wait_for_common+0xf4/0x1b0 [<8016d268>] xfs_buf_iowait+0x50/0x64 [<8016ea30>] xfs_flush_buftarg+0x178/0x1cc [<80178f20>] xfs_quiesce_data+0x44/0x98 [<801756c0>] xfs_fs_sync_fs+0x28/0xdc [<800c43cc>] __sync_filesystem+0x88/0xbc [<8009faac>] iterate_supers+0x9c/0x120 [<800c42f8>] sync_filesystems+0x1c/0x28 [<800c444c>] sys_sync+0x20/0x48 [<80002164>] stack_done+0x20/0x40 INFO: task usb_mount:3850 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. usb_mount D 80007adc 0 3850 3808 0x00100000 Stack : 00000000 800b3e08 00000000 87915ef0 87915ef0 800ab4e4 00100100 800b039c 878f5180 800b0eac 878f5180 00000002 87915ef8 87bff800 87bff800 87915f00 87bff818 00000000 7ff0f698 80007adc 87bff818 800236cc 00000001 800981cc 8719c644 8719c644 878f5180 00000002 87bff800 8719c600 00000000 8009f774 87915f00 00000000 87915f00 00000000 87915f00 800b97c4 00000000 00000000 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<80007adc>] __down_write_nested+0x110/0x134 [<8009f774>] deactivate_super+0x58/0x80 [<800b97c4>] sys_umount+0x310/0x360 [<80002164>] stack_done+0x20/0x40 INFO: task xfslogd/0:15 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. xfslogd/0 D 801535ec 0 15 2 0x00100000 Stack : 878f0164 878f6bf0 8034aa10 8034aa40 80382360 80021418 802a5030 8034af8c 878f0000 80350000 00000000 87bf7700 86c86c00 00000001 87bf7700 87000780 8030d500 8030d538 fffffffe 801535ec 803b4a80 00000000 878f0000 efffffff 00000001 878f0000 80024254 87000780 87bb3a34 efffffff 8030d500 00000000 87bf7700 86c86c00 00000000 fffffffc efffffff 80153840 00000000 80179600 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<801535ec>] _xfs_log_force+0x264/0x2ec [<80153840>] xfs_log_force_umount+0x1cc/0x238 [<80169730>] xfs_do_force_shutdown+0x74/0x19c [<80134f10>] xfs_buf_iodone_callbacks+0x158/0x190 [<8003cc8c>] worker_thread+0x170/0x24c [<80040b98>] kthread+0x7c/0x84 [<8000a9e8>] kernel_thread_helper+0x10/0x18 INFO: task khubd:62 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. khubd D 801535ec 0 62 2 0x00100000 Stack : 874bb0a0 00000000 00000000 00000000 86c6e880 8017896c 802a5030 80350000 878f48c0 8006a824 00000000 86c86c00 872a7a00 00000001 87bf7700 87000780 e0382e4c 801d56fc 86c86000 801535ec 86c86c00 80178b38 80350000 80024eb4 00000001 878f48c0 80024254 878a7da4 87000780 00000001 00000005 86c86c00 86c86c00 872a7a00 86c86c00 80005280 00000001 801538c4 80005280 00000001 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<801535ec>] _xfs_log_force+0x264/0x2ec [<801538c4>] xfs_log_force+0x18/0x4c [<80178e80>] xfs_sync_data+0x4c/0x64 [<80178f08>] xfs_quiesce_data+0x2c/0x98 [<801756c0>] xfs_fs_sync_fs+0x28/0xdc [<800c43cc>] __sync_filesystem+0x88/0xbc [<800cf2d0>] fsync_bdev+0x28/0x64 [<8019be98>] invalidate_partition+0x28/0x50 [<800eddac>] del_gendisk+0x40/0xf8 [<801ee7ac>] sd_remove+0x38/0xc4 [<801d8058>] __device_release_driver+0x6c/0xc4 [<801d81e4>] device_release_driver+0x28/0x40 [<801d7498>] bus_remove_device+0xac/0xe0 [<801d580c>] device_del+0x110/0x170 [<801eb550>] __scsi_remove_device+0x4c/0xb4 [<801e8114>] scsi_forget_host+0x90/0xf4 [<801e0dc8>] scsi_remove_host+0xec/0x19c [] quiesce_and_remove_host+0x94/0x138 [usb_storage] [] usb_stor_disconnect+0x2c/0x48 [usb_storage] [] usb_unbind_interface+0x68/0x148 [usbcore] [<801d8058>] __device_release_driver+0x6c/0xc4 [<801d81e4>] device_release_driver+0x28/0x40 [<801d7498>] bus_remove_device+0xac/0xe0 [<801d580c>] device_del+0x110/0x170 [] usb_disable_device+0xfc/0x244 [usbcore] [] usb_disconnect+0x188/0x3c4 [usbcore] [] hub_thread+0x7ec/0x1a34 [usbcore] [<80040b98>] kthread+0x7c/0x84 [<8000a9e8>] kernel_thread_helper+0x10/0x18 INFO: task sync:3805 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. sync D 80005f44 0 3805 2934 0x00100000 Stack : 00000000 00000d30 87013900 87113680 00000001 00000000 802a5030 80193414 8729da40 00000000 7fffffff 00000000 87013978 00000002 86c77e30 00000000 0056e324 00000000 00000002 80005f44 87013900 800cc490 87013900 800cd0ac 00000000 870133dc 00000002 00000000 00000000 8016d5f8 00000000 00000000 00000000 00000000 00000000 80005d7c 00001000 8729da40 87013900 86c77e28 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<80005f44>] schedule_timeout+0x24/0x1f8 [<80005d7c>] wait_for_common+0xf4/0x1b0 [<8016d268>] xfs_buf_iowait+0x50/0x64 [<8016ea30>] xfs_flush_buftarg+0x178/0x1cc [<80178f20>] xfs_quiesce_data+0x44/0x98 [<801756c0>] xfs_fs_sync_fs+0x28/0xdc [<800c43cc>] __sync_filesystem+0x88/0xbc [<8009faac>] iterate_supers+0x9c/0x120 [<800c42f8>] sync_filesystems+0x1c/0x28 [<800c444c>] sys_sync+0x20/0x48 [<80002164>] stack_done+0x20/0x40 INFO: task usb_mount:3850 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. usb_mount D 80007adc 0 3850 3808 0x00100000 Stack : 00000000 800b3e08 00000000 87915ef0 87915ef0 800ab4e4 00100100 800b039c 878f5180 800b0eac 878f5180 00000002 87915ef8 87bff800 87bff800 87915f00 87bff818 00000000 7ff0f698 80007adc 87bff818 800236cc 00000001 800981cc 8719c644 8719c644 878f5180 00000002 87bff800 8719c600 00000000 8009f774 87915f00 00000000 87915f00 00000000 87915f00 800b97c4 00000000 00000000 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<80007adc>] __down_write_nested+0x110/0x134 [<8009f774>] deactivate_super+0x58/0x80 [<800b97c4>] sys_umount+0x310/0x360 [<80002164>] stack_done+0x20/0x40 INFO: task xfslogd/0:15 blocked for more than 120 seconds. "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. xfslogd/0 D 801535ec 0 15 2 0x00100000 Stack : 878f0164 878f6bf0 8034aa10 8034aa40 80382360 80021418 802a5030 8034af8c 878f0000 80350000 00000000 87bf7700 86c86c00 00000001 87bf7700 87000780 8030d500 8030d538 fffffffe 801535ec 803b4a80 00000000 878f0000 efffffff 00000001 878f0000 80024254 87000780 87bb3a34 efffffff 8030d500 00000000 87bf7700 86c86c00 00000000 fffffffc efffffff 80153840 00000000 80179600 ... Call Trace: [<80005884>] schedule+0x4a8/0x56c [<801535ec>] _xfs_log_force+0x264/0x2ec [<80153840>] xfs_log_force_umount+0x1cc/0x238 [<80169730>] xfs_do_force_shutdown+0x74/0x19c [<80134f10>] xfs_buf_iodone_callbacks+0x158/0x190 [<8003cc8c>] worker_thread+0x170/0x24c [<80040b98>] kthread+0x7c/0x84 [<8000a9e8>] kernel_thread_helper+0x10/0x18 From mgorman@suse.de Thu Jul 28 06:39:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_42 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SBd1gb254266 for ; Thu, 28 Jul 2011 06:39:01 -0500 X-ASG-Debug-ID: 1311853138-63f203370000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.suse.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 50669183BC80 for ; Thu, 28 Jul 2011 04:38:58 -0700 (PDT) Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id hSyKWSvvHmXaz8YJ for ; Thu, 28 Jul 2011 04:38:58 -0700 (PDT) Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.221.2]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mx2.suse.de (Postfix) with ESMTP id 465758C061; Thu, 28 Jul 2011 13:38:56 +0200 (CEST) Date: Thu, 28 Jul 2011 12:38:52 +0100 From: Mel Gorman To: Minchan Kim Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110728113852.GN3010@suse.de> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <20110727161821.GA1738@barrios-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: <20110727161821.GA1738@barrios-desktop> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1311853139 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0191 1.0000 -1.8969 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.90 X-Barracuda-Spam-Status: No, SCORE=-1.90 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70205 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 01:18:21AM +0900, Minchan Kim wrote: > On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: > > Warning: Long post with lots of figures. If you normally drink coffee > > and you don't have a cup, get one or you may end up with a case of > > keyboard face. > > At last, I get a coffee. > Nice one. > > > > I consider this series to be orthogonal to the writeback work but > > it is worth noting that the writeback work affects the viability of > > patch 8 in particular. > > > > I tested this on ext4 and xfs using fs_mark and a micro benchmark > > that does a streaming write to a large mapping (exercises use-once > > LRU logic) followed by streaming writes to a mix of anonymous and > > file-backed mappings. The command line for fs_mark when botted with > > 512M looked something like > > > > ./fs_mark -d /tmp/fsmark-2676 -D 100 -N 150 -n 150 -L 25 -t 1 -S0 -s 10485760 > > > > The number of files was adjusted depending on the amount of available > > memory so that the files created was about 3xRAM. For multiple threads, > > the -d switch is specified multiple times. > > > > 3 kernels are tested. > > > > vanilla 3.0-rc6 > > kswapdwb-v2r5 patches 1-7 > > nokswapdwb-v2r5 patches 1-8 > > > > The test machine is x86-64 with an older generation of AMD processor > > with 4 cores. The underlying storage was 4 disks configured as RAID-0 > > as this was the best configuration of storage I had available. Swap > > is on a separate disk. Dirty ratio was tuned to 40% instead of the > > default of 20%. > > > > Testing was run with and without monitors to both verify that the > > patches were operating as expected and that any performance gain was > > real and not due to interference from monitors. > > Wow, it seems you would take a long time to finish your experiments. Yes, they take a long time to run. > > I've posted the raw reports for each filesystem at > > > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721 > > > > Unfortunately, the volume of data is excessive but here is a partial > > summary of what was interesting for XFS. > > > > 512M1P-xfs Files/s mean 32.99 ( 0.00%) 35.16 ( 6.18%) 35.08 ( 5.94%) > > 512M1P-xfs Elapsed Time fsmark 122.54 115.54 115.21 > > 512M1P-xfs Elapsed Time mmap-strm 105.09 104.44 106.12 > > 512M-xfs Files/s mean 30.50 ( 0.00%) 33.30 ( 8.40%) 34.68 (12.06%) > > 512M-xfs Elapsed Time fsmark 136.14 124.26 120.33 > > 512M-xfs Elapsed Time mmap-strm 154.68 145.91 138.83 > > 512M-2X-xfs Files/s mean 28.48 ( 0.00%) 32.90 (13.45%) 32.83 (13.26%) > > 512M-2X-xfs Elapsed Time fsmark 145.64 128.67 128.67 > > 512M-2X-xfs Elapsed Time mmap-strm 145.92 136.65 137.67 > > 512M-4X-xfs Files/s mean 29.06 ( 0.00%) 32.82 (11.46%) 33.32 (12.81%) > > 512M-4X-xfs Elapsed Time fsmark 153.69 136.74 135.11 > > 512M-4X-xfs Elapsed Time mmap-strm 159.47 128.64 132.59 > > 512M-16X-xfs Files/s mean 48.80 ( 0.00%) 41.80 (-16.77%) 56.61 (13.79%) > > 512M-16X-xfs Elapsed Time fsmark 161.48 144.61 141.19 > > 512M-16X-xfs Elapsed Time mmap-strm 167.04 150.62 147.83 > > > > The difference between kswapd writing and not writing for fsmark > > in many cases is marginal simply because kswapd was not reaching a > > high enough priority to enter writeback. Memory is mostly consumed > > by filesystem-backed pages so limiting the number of dirty pages > > (dirty_ratio == 40) means that kswapd always makes forward progress > > and avoids the OOM killer. > > Looks promising as most of elapsed time is lower than vanilla. > Yes. Lower elapsed time is not always better. For example, some tests I run will execute a variable number of times trying to get a good estimate of the true mean. For these tests, there is a fixed number of iterations so a lower elapsed time implies higher throughput. > > The streaming-write benchmarks all completed faster. > > > > The tests were also run with mem=1024M and mem=4608M with the relative > > performance improvement reduced as memory increases reflecting that > > with enough memory there are fewer writes from reclaim as the flusher > > threads have time to clean the page before it reaches the end of > > the LRU. > > > > Here is the same tests except when using ext4 > > > > 512M1P-ext4 Files/s mean 37.36 ( 0.00%) 37.10 (-0.71%) 37.66 ( 0.78%) > > 512M1P-ext4 Elapsed Time fsmark 108.93 109.91 108.61 > > 512M1P-ext4 Elapsed Time mmap-strm 112.15 108.93 109.10 > > 512M-ext4 Files/s mean 30.83 ( 0.00%) 39.80 (22.54%) 32.74 ( 5.83%) > > 512M-ext4 Elapsed Time fsmark 368.07 322.55 328.80 > > 512M-ext4 Elapsed Time mmap-strm 131.98 117.01 118.94 > > 512M-2X-ext4 Files/s mean 20.27 ( 0.00%) 22.75 (10.88%) 20.80 ( 2.52%) > > 512M-2X-ext4 Elapsed Time fsmark 518.06 493.74 479.21 > > 512M-2X-ext4 Elapsed Time mmap-strm 131.32 126.64 117.05 > > 512M-4X-ext4 Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) > > 512M-4X-ext4 Elapsed Time fsmark 633.41 660.70 572.74 > > 512M-4X-ext4 Elapsed Time mmap-strm 137.85 127.63 124.07 > > 512M-16X-ext4 Files/s mean 55.86 ( 0.00%) 69.90 (20.09%) 42.66 (-30.94%) > > 512M-16X-ext4 Elapsed Time fsmark 543.21 544.43 586.16 > > 512M-16X-ext4 Elapsed Time mmap-strm 141.84 146.12 144.01 > > > > At first glance, the benefit for ext4 is less clear cut but this > > is due to the standard deviation being very high. Take 512M-4X-ext4 > > showing a 45.63% regression for example and we see. > > > > Files/s min 5.40 ( 0.00%) 4.10 (-31.71%) 6.50 (16.92%) > > Files/s mean 17.91 ( 0.00%) 12.30 (-45.63%) 16.58 (-8.06%) > > Files/s stddev 14.34 ( 0.00%) 8.04 (-78.46%) 14.50 ( 1.04%) > > Files/s max 54.30 ( 0.00%) 37.70 (-44.03%) 77.20 (29.66%) > > > > The standard deviation is *massive* meaning that the performance > > loss is well within the noise. The main positive out of this is the > > Yes. > ext4 seems to be very sensitive on the situation. > It'd be nice to have a theory as to why it is so variable but it could be simply down to disk layout and seeks. I wasn't running blktrace to see if that was the case. As this is RAID, it's also possible it is a stride problem as I didn't specify stride= to mkfs. > > streaming write benchmarks are generally better. > > > > Where it does benefit is stalls in direct reclaim. Unlike xfs, ext4 > > can stall direct reclaim writing back pages. When I look at a separate > > run using ftrace to gather more information, I see; > > > > 512M-ext4 Time stalled direct reclaim fsmark 0.36 0.30 0.31 > > 512M-ext4 Time stalled direct reclaim mmap-strm 36.88 7.48 36.24 > > This data is odd. > [2] and [3] experiment's elapsed time is almost same(117.01, 118.94) but stall time in direct reclaim of > [2] is much fast. Hmm?? It could have been just luck on that particular run. These figures don't tell us *which* process got stuck in direct reclaim for that length of time. If it was one of the monitors recording stats for example, it wouldn't affect the reported results. It could be figured out from the trace data if I went back through it but it's probably not worth the trouble. > > 512M-4X-ext4 Time stalled direct reclaim fsmark 1.06 0.40 0.43 > > 512M-4X-ext4 Time stalled direct reclaim mmap-strm 102.68 33.18 23.99 > > 512M-16X-ext4 Time stalled direct reclaim fsmark 0.17 0.27 0.30 > > 512M-16X-ext4 Time stalled direct reclaim mmap-strm 9.80 2.62 1.28 > > 512M-32X-ext4 Time stalled direct reclaim fsmark 0.00 0.00 0.00 > > 512M-32X-ext4 Time stalled direct reclaim mmap-strm 2.27 0.51 1.26 > > > > Time spent in direct reclaim is reduced implying that bug reports > > complaining about the system becoming jittery when copying large > > files may also be hel. > > It would be very good thing. > I'm currently running the same tests on a laptop using a USB stick for storage to see if something useful comes out. > > To show what effect the patches are having, this is a more detailed > > look at one of the tests running with monitoring enabled. It's booted > > with mem=512M and the number of threads running is equal to the number > > of CPU cores. The backing filesystem is XFS. > > > > FS-Mark > > fsmark-3.0.0 3.0.0-rc6 3.0.0-rc6 > > rc6-vanilla kswapwb-v2r5 nokswapwb-v2r5 > > Files/s min 27.30 ( 0.00%) 31.80 (14.15%) 31.40 (13.06%) > > Files/s mean 30.32 ( 0.00%) 34.34 (11.73%) 34.52 (12.18%) > > Files/s stddev 1.39 ( 0.00%) 1.06 (-31.96%) 1.20 (-16.05%) > > Files/s max 33.60 ( 0.00%) 36.00 ( 6.67%) 36.30 ( 7.44%) > > Overhead min 1393832.00 ( 0.00%) 1793141.00 (-22.27%) 1133240.00 (23.00%) > > Overhead mean 2423808.52 ( 0.00%) 2513297.40 (-3.56%) 1823398.44 (32.93%) > > Overhead stddev 445880.26 ( 0.00%) 392952.66 (13.47%) 420498.38 ( 6.04%) > > Overhead max 3359477.00 ( 0.00%) 3184889.00 ( 5.48%) 3016170.00 (11.38%) > > MMTests Statistics: duration > > User/Sys Time Running Test (seconds) 53.26 52.27 51.88 > > What is User/Sys? > The sum if the CPU-seconds spent in user and sys mode. Should have used a + there :/ > > > > without monitoring although the relative performance gain is less. > > > > Time to completion is reduced which is always good ane as it implies > > that IO was consistently higher and this is clearly visible at > > > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-hydra.png > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/blockio-comparison-smooth-hydra.png > > > > kswapd CPU usage is also interesting > > > > http://www.csn.ul.ie/~mel/postings/reclaim-20110721/html-run-monitor/global-dhp-512M__writeback-reclaimdirty-xfs/hydra/kswapdcpu-comparison-smooth-hydra.png > > > > Note how preventing kswapd reclaiming dirty pages pushes up its CPU > > usage as it scans more pages but it does not get excessive due to > > the throttling. > > Good to hear. > The concern of this patchset was early OOM kill with too many scanning. > I can throw such concern out from now on. > At least, I haven't been able to trigger a premature OOM. > > > > Page writes by reclaim is what is motivating this series. It goes > > from 170014 pages to 123510 which is a big improvement and we'll see > > later that these writes are for anonymous pages. > > > > "Page reclaim invalided" is very high and implies that a large number > > of dirty pages are reaching the end of the list quickly. Unfortunately, > > this is somewhat unavoidable. Kswapd is scanning pages at a rate > > of roughly 125000 (or 488M) a second on a 512M machine. The best > > possible writing rate of the underlying storage is about 300M/second. > > With the rate of reclaim exceeding the best possible writing speed, > > the system is going to get throttled. > > Just out of curiosity. > What is 'Page reclaim throttled'? > It should have been deleted from this report. It used to be a vmstat counting how many times patch 6 called wait_iff_congested(). It no longer exists. > > > > from kswapd were 0 with the patches applied implying that kswapd was > > not getting to a priority high enough to start writing. The remaining > > writes correlate almost exactly to nr_vmscan_write implying that all > > writes were for anonymous pages. > > > > FTrace Reclaim Statistics: congestion_wait > > Direct number congest waited 0 0 0 > > Direct time congest waited 0ms 0ms 0ms > > Direct full congest waited 0 0 0 > > Direct number conditional waited 2 17 6 > > Direct time conditional waited 0ms 0ms 0ms > > Direct full conditional waited 0 0 0 > > KSwapd number congest waited 4 8 10 > > KSwapd time congest waited 4ms 20ms 8ms > > KSwapd full congest waited 0 0 0 > > KSwapd number conditional waited 0 26036 26283 > > KSwapd time conditional waited 0ms 16ms 4ms > > KSwapd full conditional waited 0 0 0 > > What means congest and conditional? > congest is trace_writeback_congestion_wait and conditional is trace_writeback_wait_iff_congested? > Yes. > > > > Next I tested on a NUMA configuration of sorts. I don't have a real > > NUMA machine so I booted the same machine with mem=4096M numa=fake=8 > > so each node is 512M. Again, the volume of information is high but > > here is a summary of sorts based on a test run with monitors enabled. > > > > > > > > With kswapd avoiding writes, it gets throttled lightly but when it > > writes no pasges at all, it gets throttled very heavily and sleeps. > > > > ext4 tells a slightly different story > > > > 4096M8N-ext4 Files/s mean 28.63 ( 0.00%) 30.58 ( 6.37%) 31.04 ( 7.76%) > > 4096M8N-ext4 Elapsed Time fsmark 1578.51 1551.99 1532.65 > > 4096M8N-ext4 Elapsed Time mmap-strm 703.66 655.25 654.86 > > 4096M8N-ext4 Kswapd efficiency 62% 69% 68% > > 4096M8N-ext4 Kswapd efficiency 35% 35% 35% > > 4096M8N-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 > > 4096M8N-ext4 stalled direct reclaim mmap-strm 32.64 95.72 152.62 > > 4096M8N-2X-ext4 Files/s mean 30.74 ( 0.00%) 28.49 (-7.89%) 28.79 (-6.75%) > > 4096M8N-2X-ext4 Elapsed Time fsmark 1466.62 1583.12 1580.07 > > 4096M8N-2X-ext4 Elapsed Time mmap-strm 705.17 705.64 693.01 > > 4096M8N-2X-ext4 Kswapd efficiency 68% 68% 67% > > 4096M8N-2X-ext4 Kswapd efficiency 34% 30% 18% > > 4096M8N-2X-ext4 stalled direct reclaim fsmark 0.00 0.00 0.00 > > 4096M8N-2X-ext4 stalled direct reclaim mmap-strm 106.82 24.88 27.88 > > 4096M8N-4X-ext4 Files/s mean 24.15 ( 0.00%) 23.18 (-4.18%) 23.94 (-0.89%) > > 4096M8N-4X-ext4 Elapsed Time fsmark 1848.41 1971.48 1867.07 > > 4096M8N-4X-ext4 Elapsed Time mmap-strm 664.87 673.66 674.46 > > 4096M8N-4X-ext4 Kswapd efficiency 62% 65% 65% > > 4096M8N-4X-ext4 Kswapd efficiency 33% 37% 15% > > 4096M8N-4X-ext4 stalled direct reclaim fsmark 0.18 0.03 0.26 > > 4096M8N-4X-ext4 stalled direct reclaim mmap-strm 115.71 23.05 61.12 > > 4096M8N-16X-ext4 Files/s mean 5.42 ( 0.00%) 5.43 ( 0.15%) 3.83 (-41.44%) > > 4096M8N-16X-ext4 Elapsed Time fsmark 9572.85 9653.66 11245.41 > > 4096M8N-16X-ext4 Elapsed Time mmap-strm 752.88 750.38 769.19 > > 4096M8N-16X-ext4 Kswapd efficiency 59% 59% 61% > > 4096M8N-16X-ext4 Kswapd efficiency 34% 34% 21% > > 4096M8N-16X-ext4 stalled direct reclaim fsmark 0.26 0.65 0.26 > > 4096M8N-16X-ext4 stalled direct reclaim mmap-strm 177.48 125.91 196.92 > > > > 4096M8N-16X-ext4 with kswapd writing no pages collapsed in terms of > > performance. Looking at the fsmark logs, in a number of iterations, > > it was barely able to write files at all. > > > > The apparent slowdown for fsmark in 4096M8N-2X-ext4 is well within > > the noise but the reduced time spent in direct reclaim is very welcome. > > But 4096M8N-ext4 increased the time and 4096M8N-2X-ext4 is within the noise > as you said. I doubt it's reliability. > Agreed. Again, it could be figured out which process is stalling but it wouldn't tell us very much. > > > > Unlike xfs, it's less clear cut if direct reclaim performance is > > impaired but in a few tests, preventing kswapd writing pages did > > increase the time stalled. > > > > Last test is that I've been running this series on my laptop since > > Monday without any problem but it's rarely under serious memory > > pressure. I see nr_vmscan_write is 0 and the number of pages > > invalidated from the end of the LRU is only 10844 after 3 days so > > it's not much of a test. > > > > Overall, having kswapd avoiding writes does improve performance > > which is not a surprise. Dave asked "do we even need IO at all from > > reclaim?". On NUMA machines, the answer is "yes" unless the VM can > > wake the flusher thread to clean a specific node. When kswapd never > > writes, processes can stall for significant periods of time waiting on > > flushers to clean the correct pages. If all writing is to be deferred > > to flushers, it must ensure that many writes on one node would not > > starve requests for cleaning pages on another node. > > It's a good answer. :) > Thanks :) > > I'm currently of the opinion that we should consider merging patches > > 1-7 and discuss what is required before merging. It can be tackled > > later how the flushers can prioritise writing of pages belonging to > > a particular zone before disabling all writes from reclaim. There > > is already some work in this general area with the possibility that > > series such as "writeback: moving expire targets for background/kupdate > > works" could be extended to allow patch 8 to be merged later even if > > the series needs work. > > I think you already knew what we need(ie, prioritising the pages in a zone) > In case of NUMA, 1-7 has a problem in ext4 so we have to focus NUMA during remained time. > The slowdown for ext4 was within the noise but I'll run it again and confirm that it really is not a problem. > The alternative of [prioritising the page in a zone] might be Johannes's [mm: per-zone dirty limiting]. > It might mitigate NUMA problems. > It might. > Overall, I really welcome this approach and would like to merge this in mmotm as soon as possible > for see the side effects in non-NUMA(I will add my reviewed-by soon). > In case of NUMA, we know the problem apparently so I think it could be solved > before it is sent to mainline. > > It was a great time to see your data and you makes my coffee delicious. :) > You're a good Barista. > Thanks for your great effort, Mel! > Thanks for your review. -- Mel Gorman SUSE Labs From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 09:50:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SEoOMY260943 for ; Thu, 28 Jul 2011 09:50:25 -0500 X-ASG-Debug-ID: 1311864639-141900370000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 2B19F16892D3 for ; Thu, 28 Jul 2011 07:50:39 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id FZZVfefPFJoeDqBH for ; Thu, 28 Jul 2011 07:50:39 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmRum-0000Ny-6B; Thu, 28 Jul 2011 14:50:20 +0000 Date: Thu, 28 Jul 2011 10:50:20 -0400 From: Christoph Hellwig To: Ajeet Yadav Cc: xfs@oss.sgi.com, Dave Chinner X-ASG-Orig-Subj: Re: "xfs: fix error handling for synchronous writes" revisited Subject: Re: "xfs: fix error handling for synchronous writes" revisited Message-ID: <20110728145020.GA30785@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311864640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70219 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 04:21:01PM +0530, Ajeet Yadav wrote: > Just to recall, last year we have reported one hang issue in 2.6.30.9 > wherein we get hang if we remove the device while synchronous write was underway > It was because synchronous buffer remain locked in case of EIO error. > > In response to that a fix commit: bfc60177f8ab509bc225becbb58f7e53a0e33e81 > "xfs: fix error handling for synchronous writes" for 2.6.38 was given > by community > Unfortunately I did not use this patch and therefore did not test it. > > Coming to present, I run the same test case again, and I got different > hang pasted below. > While debugging I compared with my own solution, wherein I did not > have any issue > Kindly review the solution patch Given that xfs_bwrite actually does the shutdown already after waiting for the b_iodone completion this looks fine to me. And given that we actually found that calling xfs_force_shutdown from inside xfs_buf_iodone_callbacks was a major contributor the problem it looks like an onversight that we didn't drop this call. Can you re-send the patch with a proper changelog and signoff? From sbehrens@giantdisaster.de Thu Jul 28 12:52:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SHpx69004592 for ; Thu, 28 Jul 2011 12:52:00 -0500 X-ASG-Debug-ID: 1311875534-22fa00bb0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mo-p00-ob.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D6D1F10B3DA5 for ; Thu, 28 Jul 2011 10:52:14 -0700 (PDT) Received: from mo-p00-ob.rzone.de (mo-p00-ob.rzone.de [81.169.146.161]) by cuda.sgi.com with ESMTP id PfAMUz8iCVAkqU9B for ; Thu, 28 Jul 2011 10:52:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1311875516; l=670; s=domk; d=giantdisaster.de; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References: Subject:CC:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=IFKvdyToHayQHdoHc/TToX0XNOI=; b=oCvN3kqX1y9p881NqszaDPb/qreW/cC29RWBIULUJYQ7MNWvKOTBGpeC0fzRWKmdufG 7XvgQewtJ4rSSL1fY/YqyY3Xav0NSmi8Ux3XObwaesRIUB8iiv1zcLyjxeKUXCKnyzKXx 4JWwbfNQc/O0SYlYjmRMAiUdpxy11S8vmaA= X-RZG-AUTH: :P24BfVKtdewSqNxKJHA7pzS3qMJDcjZcfhyLxL2IOTrSfPdWpt8NAUTHaYo8BBekW9dzmLb3jBU0s8/wDV+i/8tBg2I7WGCdBSmV4g0l X-RZG-CLASS-ID: mo00 Received: from [IPv6:2a01:238:e100:320:fd3b:e161:dd0f:8d66] ([2a01:238:e100:320:fd3b:e161:dd0f:8d66]) by smtp.strato.de (klopstock mo60) (RZmta 26.2) with ESMTPA id x014f1n6SHlN14 ; Thu, 28 Jul 2011 19:51:22 +0200 (MEST) Message-ID: <4E31A19E.3040404@giantdisaster.de> Date: Thu, 28 Jul 2011 19:51:26 +0200 From: Stefan Behrens User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 1/4] xfstests: Add support for btrfs in 062 Subject: Re: [PATCH 1/4] xfstests: Add support for btrfs in 062 References: <20110728084504.GA3407@infradead.org> In-Reply-To: <20110728084504.GA3407@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-p00-ob.rzone.de[81.169.146.161] X-Barracuda-Start-Time: 1311875535 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0006 1.0000 -2.0172 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70231 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/28/2011 10:45 AM, Christoph Hellwig wrote: > On Thu, Jul 28, 2011 at 10:27:58AM +0200, Stefan Behrens wrote: >> Added btrfs to the list of supported filesystems for this test. >> Remove output of mkfs since this is specific to mkfs.xfs and now filtered >> out. > > Why can't it be generic? Any reason this one doesn't work on e.g. ext2 > or reiserfs? The only reason for not making the tests 015, 062, 083, 117, 120 and 192 "_supported_fs generic" was to keep the effect of the changes minimal. But I agree that they are generic ones and I have now changed it accordingly in the revised patch series that I will send soon. Thanks for your comments! From sbehrens@giantdisaster.de Thu Jul 28 12:55:06 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45, T_DKIM_INVALID autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SHt6sR004763 for ; Thu, 28 Jul 2011 12:55:06 -0500 X-ASG-Debug-ID: 1311875702-029300550000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mo-p00-ob.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 55E14A04BD for ; Thu, 28 Jul 2011 10:55:02 -0700 (PDT) Received: from mo-p00-ob.rzone.de (mo-p00-ob.rzone.de [81.169.146.160]) by cuda.sgi.com with ESMTP id FjV0GJnTpJ4cNlhx for ; Thu, 28 Jul 2011 10:55:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1311875702; l=2152; s=domk; d=giantdisaster.de; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References: Subject:CC:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=BOzLEVPnk7D+8AUhz19pBty6tlc=; b=bWEv8SlmyvX8KVAd9+mhUJsNEb61kfPWQsYyDFgsiTsLxQoScmKQEXzeKL8zApndR3Q /00H70vKXeSEo7rkAA1gmHlCXmxmxvxVoHiALm3JPSqcJrGl9LkZT0ir/yR/mv/H+EMs+ TyYi8wAr1iY+8J0YAfWMDUCawiay+aaBs70= X-RZG-AUTH: :P24BfVKtdewSqNxKJHA7pzS3qMJDcjZcfhyLxL2IOTrSfPdWpt8NAUTHaYo8BBekW9dzmLb3jBU0s8/wDV+i/8tBg2I7WGCdBSmV4g0l X-RZG-CLASS-ID: mo00 Received: from [IPv6:2a01:238:e100:320:fd3b:e161:dd0f:8d66] ([2a01:238:e100:320:fd3b:e161:dd0f:8d66]) by smtp.strato.de (cohen mo11) (RZmta 26.2) with ESMTPA id 000102n6SEV932 ; Thu, 28 Jul 2011 19:54:42 +0200 (MEST) Message-ID: <4E31A265.5050909@giantdisaster.de> Date: Thu, 28 Jul 2011 19:54:45 +0200 From: Stefan Behrens User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 Subject: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 References: <20110728084756.GC3407@infradead.org> In-Reply-To: <20110728084756.GC3407@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-p00-ob.rzone.de[81.169.146.160] X-Barracuda-Start-Time: 1311875703 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70232 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/28/2011 10:47 AM, Christoph Hellwig wrote: > On Thu, Jul 28, 2011 at 10:28:00AM +0200, Stefan Behrens wrote: >> Added btrfs to the list of supported filesystems for test 015, and >> increased free space reporting tolerance to 10% for btrfs. >> Replaced the call to _scratch_mkfs_xfs with the XFS specific size >> parameter by the generic one for sized filesystem creation which is >> _scratch_mkfs_sized. > > ACK for the _scratch_mkfs_sized changed, but I'm really curious why > we would allow so much more tolerance for btrfs. > > And again, why can't these be marked generic? To add a 10% tolerance for btrfs was a bad idea. Since the output of df(1) is not yet reliable on btrfs volumes while data is not flushed to disk, the better implementation would be to either let this test fail, or to force a flush to disk before taking the output of df(1). The latter is what I have implemented now. This is a demo of what currently happens: # mkfs.btrfs -b 2048M --mixed $SCRATCH_DEV WARNING! - Btrfs v0.19-104-gd0fa1a8-dirty IS EXPERIMENTAL WARNING! - see http://btrfs.wiki.kernel.org before using Created a data/metadata chunk of size 8388608 fs created label (null) on /dev/sdu1 nodesize 4096 leafsize 4096 sectorsize 4096 size 2.00GB Btrfs v0.19-104-gd0fa1a8-dirty # mount $SCRATCH_DEV $SCRATCH_MNT # df -k $SCRATCH_MNT Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdu1 2097152 28 2093040 1% /mnt3 # dd if=/dev/zero of=$SCRATCH_MNT/foo bs=1M dd: writing `/mnt3/foo': No space left on device 1881+0 records in 1880+0 records out 1971322880 bytes (2.0 GB) copied, 7.61947 s, 259 MB/s # df -k $SCRATCH_MNT Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdu1 2097152 756 2092304 1% /mnt3 # sync # df -k $SCRATCH_MNT Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdu1 2097152 1928420 164640 93% /mnt3 # rm -f $SCRATCH_MNT/foo # df -k $SCRATCH_MNT Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdu1 2097152 1928420 164640 93% /mnt3 # sync # df -k $SCRATCH_MNT Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdu1 2097152 676 2092384 1% /mnt3 From BATV+03f0d5756e38e17a6d99+2895+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 28 15:05:46 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SK5ktC008833 for ; Thu, 28 Jul 2011 15:05:46 -0500 X-ASG-Debug-ID: 1311883540-1add02070000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 35F841EF0254 for ; Thu, 28 Jul 2011 13:05:40 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id qqHQLS6moxQEO4WM for ; Thu, 28 Jul 2011 13:05:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmWpt-0004Fp-J4; Thu, 28 Jul 2011 20:05:37 +0000 Date: Thu, 28 Jul 2011 16:05:37 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: Christoph Hellwig , linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 Subject: Re: [PATCH 3/4] xfstests: Add support for btrfs in 015 Message-ID: <20110728200537.GA12758@infradead.org> References: <20110728084756.GC3407@infradead.org> <4E31A265.5050909@giantdisaster.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E31A265.5050909@giantdisaster.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311883541 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0003 1.0000 -2.0194 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70240 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 07:54:45PM +0200, Stefan Behrens wrote: > To add a 10% tolerance for btrfs was a bad idea. > Since the output of df(1) is not yet reliable on btrfs volumes while > data is not flushed to disk, the better implementation would be to > either let this test fail, or to force a flush to disk before taking > the output of df(1). > The latter is what I have implemented now. I don't think it's correct either. dellalloc blocks should be included in the statfs output, else it it is pretty pointless. Can you send the patch to make it generic without that adjustment for now. From Trond.Myklebust@netapp.com Thu Jul 28 15:49:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6SKns6r010046 for ; Thu, 28 Jul 2011 15:49:54 -0500 X-ASG-Debug-ID: 1311886192-69c003770000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A79C4183D196 for ; Thu, 28 Jul 2011 13:49:53 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id 31YJhdSvQgpEnK7D for ; Thu, 28 Jul 2011 13:49:53 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,284,1309762800"; d="scan'208";a="566370722" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 28 Jul 2011 13:49:52 -0700 Received: from svlrsexc1-prd.hq.netapp.com (svlrsexc1-prd.hq.netapp.com [10.57.115.30]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6SKno1I011090; Thu, 28 Jul 2011 13:49:52 -0700 (PDT) Received: from SACMVEXC2-PRD.hq.netapp.com ([10.99.115.17]) by svlrsexc1-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Thu, 28 Jul 2011 13:48:58 -0700 Received: from 10.55.68.85 ([10.55.68.85]) by SACMVEXC2-PRD.hq.netapp.com ([10.99.115.16]) with Microsoft Exchange Server HTTP-DAV ; Thu, 28 Jul 2011 20:48:57 +0000 Received: from lade.trondhjem.org by SACMVEXC2-PRD.hq.netapp.com; 28 Jul 2011 16:48:57 -0400 X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop From: Trond Myklebust To: Justin Piszcz Cc: Christoph Hellwig , Bryan Schumaker , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Date: Thu, 28 Jul 2011 16:48:57 -0400 In-Reply-To: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> Organization: NetApp Inc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Message-ID: <1311886137.27285.2.camel@lade.trondhjem.org> Mime-Version: 1.0 X-OriginalArrivalTime: 28 Jul 2011 20:48:58.0952 (UTC) FILETIME=[C6395C80:01CC4D67] X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311886193 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Wed, 2011-07-27 at 18:44 -0400, Justin Piszcz wrote:=20 >=20 > On Wed, 27 Jul 2011, Justin Piszcz wrote: >=20 > >=20 > >=20 > > On Wed, 27 Jul 2011, Trond Myklebust wrote: > >=20 > > > On Wed, 2011-07-27 at 16:54 -0400, Trond Myklebust wrote: > > >> On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote: > > >>> On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote: > > >>>> On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: > > >>>>> > > >>>>> > > >>>>> On Wed, 27 Jul 2011, Christoph Hellwig wrote: > > >>>>> > > >>>>>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: > > >>>>>>> Currently I do not see any dupes, however I have a script that = moves > > >>>>>>> images out of the directory once an hour: > > >>>>>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 > > >>>>>> > > >>>>>> Do you keep adding files to the directory while you move files o= ut? > > >>>>> Yes, otherwise there are too many files in the directory and view= ers, e.g., > > >>>>> each geeqie (picture viewer) will use > 4-6GB of memory, so I try= to keep > > >>>>> it around 5,000 pictures or less. > > >>>>> > > >>>>>> What's the rate of additions/removals to the directory? > > >>>>> Additions it depends, around 5,000 over a 12hr period, 416/hr, cu= rrent: > > >>>>> > > >>>>> atom:/d1/motion# find cam1|wc > > >>>>> 5215 5215 166853 > > >>>>> atom:/d1/motion# find cam2|wc > > >>>>> 5069 5069 162181 > > >>>>> atom:/d1/motion# find cam3|wc > > >>>>> 5594 5594 178981 > > >>>>> atom:/d1/motion# > > >>>> > > >>>> This sounds a lot like xfs simply filling up the directory index s= lots > > >>>> of files that you just moved out with new files, and nfs falsely > > >>>> claiming that this is a problem. > > >>> > > >>> Yep. There is an existing bugzilla report for this bug at > > >>> > > >>> https://bugzilla.kernel.org/show_bug.cgi?id=3D38572 > > >>> > > >>> I have a preliminary patch there that attempts to turn off the loop > > >>> detection when the directory is seen to change, however that patch = still > > >>> appears to have a bug in it, and I haven't had time to figure out w= hat > > >>> is wrong yet. > > >>> > > >>> Can you perhaps take a look, Bryan? > > >> > > >> Actually, Justin, can you test the following slight variant on the p= atch > > >> in the bugzilla? > > > > > > Doh! This one will actually compile.... > >=20 > > Hi, > >=20 > > Should I try 3.0 first or retry 2.6.38 w/ this patch? > >=20 > > Justin. > >=20 > > >=20 > I'll give 3.0 a go first. I had Bryan do some more tests, which revealed a couple more issues. The attached patch should fix those, and has resisted everything we've thrown at it so far. It should apply to 2.6.39 and newer. Cheers Trond 8<-----------------------------------------------------------------------= =20 =46rom 75c0387540737a6663338d4ec0538bd6fb724173 Mon Sep 17 00:00:00 2001 From: Trond Myklebust Date: Thu, 28 Jul 2011 16:34:33 -0400 Subject: [PATCH v3] NFS: Fix spurious readdir cookie loop messages If the directory contents change, then we have to accept that the file->f_pos value may shrink if we do a 'search-by-cookie'. In that case, we should turn off the loop detection and let the NFS client try to recover. The patch also fixes a second loop detection bug by ensuring that after turning on the ctx->duped flag, we read at least one new cookie into ctx->dir_cookie before attempting to match with ctx->dup_cookie. Reported-by: Petr Vandrovec Cc: stable@kernel.org [2.6.39+] Signed-off-by: Trond Myklebust --- fs/nfs/dir.c | 56 ++++++++++++++++++++++++++++----------------= --- include/linux/nfs_fs.h | 3 +- 2 files changed, 35 insertions(+), 24 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index 57f578e..d23108b 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -134,18 +134,19 @@ const struct inode_operations nfs4_dir_inode_operatio= ns =3D { =20 #endif /* CONFIG_NFS_V4 */ =20 -static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct rpc_= cred *cred) +static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inod= e *dir, struct rpc_cred *cred) { struct nfs_open_dir_context *ctx; ctx =3D kmalloc(sizeof(*ctx), GFP_KERNEL); if (ctx !=3D NULL) { ctx->duped =3D 0; + ctx->attr_gencount =3D NFS_I(dir)->attr_gencount; ctx->dir_cookie =3D 0; ctx->dup_cookie =3D 0; ctx->cred =3D get_rpccred(cred); - } else - ctx =3D ERR_PTR(-ENOMEM); - return ctx; + return ctx; + } + return ERR_PTR(-ENOMEM); } =20 static void put_nfs_open_dir_context(struct nfs_open_dir_context *ctx) @@ -173,7 +174,7 @@ nfs_opendir(struct inode *inode, struct file *filp) cred =3D rpc_lookup_cred(); if (IS_ERR(cred)) return PTR_ERR(cred); - ctx =3D alloc_nfs_open_dir_context(cred); + ctx =3D alloc_nfs_open_dir_context(inode, cred); if (IS_ERR(ctx)) { res =3D PTR_ERR(ctx); goto out; @@ -323,7 +324,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri { loff_t diff =3D desc->file->f_pos - desc->current_index; unsigned int index; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 if (diff < 0) goto out_eof; @@ -336,7 +336,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *= array, nfs_readdir_descri index =3D (unsigned int)diff; *desc->dir_cookie =3D array->array[index].cookie; desc->cache_entry_index =3D index; - ctx->duped =3D 0; return 0; out_eof: desc->eof =3D 1; @@ -349,14 +348,33 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_ar= ray *array, nfs_readdir_des int i; loff_t new_pos; int status =3D -EAGAIN; - struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 for (i =3D 0; i < array->size; i++) { if (array->array[i].cookie =3D=3D *desc->dir_cookie) { + struct nfs_inode *nfsi =3D NFS_I(desc->file->f_path.dentry->d_inode); + struct nfs_open_dir_context *ctx =3D desc->file->private_data; + new_pos =3D desc->current_index + i; - if (new_pos < desc->file->f_pos) { + if (ctx->attr_gencount !=3D nfsi->attr_gencount + || (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DA= TA))) { + ctx->duped =3D 0; + ctx->attr_gencount =3D nfsi->attr_gencount; + } else if (new_pos < desc->file->f_pos) { + if (ctx->duped > 0 + && ctx->dup_cookie =3D=3D *desc->dir_cookie) { + if (printk_ratelimit()) { + pr_notice("NFS: directory %s/%s contains a readdir loop." + "Please contact your server vendor. " + "Offending cookie: %llu\n", + desc->file->f_dentry->d_parent->d_name.name, + desc->file->f_dentry->d_name.name, + *desc->dir_cookie); + } + status =3D -ELOOP; + goto out; + } ctx->dup_cookie =3D *desc->dir_cookie; - ctx->duped =3D 1; + ctx->duped =3D -1; } desc->file->f_pos =3D new_pos; desc->cache_entry_index =3D i; @@ -368,6 +386,7 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_arra= y *array, nfs_readdir_des if (*desc->dir_cookie =3D=3D array->last_cookie) desc->eof =3D 1; } +out: return status; } =20 @@ -740,19 +759,6 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, voi= d *dirent, struct nfs_cache_array *array =3D NULL; struct nfs_open_dir_context *ctx =3D file->private_data; =20 - if (ctx->duped !=3D 0 && ctx->dup_cookie =3D=3D *desc->dir_cookie) { - if (printk_ratelimit()) { - pr_notice("NFS: directory %s/%s contains a readdir loop. " - "Please contact your server vendor. " - "Offending cookie: %llu\n", - file->f_dentry->d_parent->d_name.name, - file->f_dentry->d_name.name, - *desc->dir_cookie); - } - res =3D -ELOOP; - goto out; - } - array =3D nfs_readdir_get_array(desc->page); if (IS_ERR(array)) { res =3D PTR_ERR(array); @@ -774,6 +780,8 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void= *dirent, *desc->dir_cookie =3D array->array[i+1].cookie; else *desc->dir_cookie =3D array->last_cookie; + if (ctx->duped !=3D 0) + ctx->duped =3D 1; } if (array->eof_index >=3D 0) desc->eof =3D 1; @@ -805,6 +813,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, struct page *page =3D NULL; int status; struct inode *inode =3D desc->file->f_path.dentry->d_inode; + struct nfs_open_dir_context *ctx =3D desc->file->private_data; =20 dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %Lu\n", (unsigned long long)*desc->dir_cookie); @@ -818,6 +827,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, vo= id *dirent, desc->page_index =3D 0; desc->last_cookie =3D *desc->dir_cookie; desc->page =3D page; + ctx->duped =3D 0; =20 status =3D nfs_readdir_xdr_to_array(desc, page, inode); if (status < 0) diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h index 8b579be..b96fb99 100644 --- a/include/linux/nfs_fs.h +++ b/include/linux/nfs_fs.h @@ -99,9 +99,10 @@ struct nfs_open_context { =20 struct nfs_open_dir_context { struct rpc_cred *cred; + unsigned long attr_gencount; __u64 dir_cookie; __u64 dup_cookie; - int duped; + signed char duped; }; =20 /* --=20 1.7.6 --=20 Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com From ajeet.yadav.77@gmail.com Fri Jul 29 02:43:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6T7h1MS033918 for ; Fri, 29 Jul 2011 02:43:01 -0500 X-ASG-Debug-ID: 1311925380-6a1e00be0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-vw0-f53.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B1E1CA29FB for ; Fri, 29 Jul 2011 00:43:00 -0700 (PDT) Received: from mail-vw0-f53.google.com (mail-vw0-f53.google.com [209.85.212.53]) by cuda.sgi.com with ESMTP id dxmfK34XNCdM4UDR for ; Fri, 29 Jul 2011 00:43:00 -0700 (PDT) Received: by vws13 with SMTP id 13so3040403vws.26 for ; Fri, 29 Jul 2011 00:43:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=FKeHd4G2dkBNRJqGEijyrrjIBWkGtWzqXoQ4kBP54c8=; b=HFn6pU0rVsd2u5W+YfxggLvN5p8hsDCe8RXbM+TQSC/KbeTYty3WmoIPbTBt6JVE9L hhTfEYwyh0woUlykoh1qwRlYpJrs1nTRHIIhYiFq9C0d1cHeEuiEn7qRx6r6UcjHqFBx mSmenJCwD0p7sZyBIPI3foCpFj9jI88wi+spU= MIME-Version: 1.0 Received: by 10.52.156.3 with SMTP id wa3mr1087314vdb.24.1311925379953; Fri, 29 Jul 2011 00:42:59 -0700 (PDT) Received: by 10.220.209.195 with HTTP; Fri, 29 Jul 2011 00:42:59 -0700 (PDT) In-Reply-To: <20110728145020.GA30785@infradead.org> References: <20110728145020.GA30785@infradead.org> Date: Fri, 29 Jul 2011 13:12:59 +0530 Message-ID: X-ASG-Orig-Subj: Re: "xfs: fix error handling for synchronous writes" revisited Subject: Re: "xfs: fix error handling for synchronous writes" revisited From: Ajeet Yadav To: Christoph Hellwig Cc: xfs@oss.sgi.com, Dave Chinner Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-vw0-f53.google.com[209.85.212.53] X-Barracuda-Start-Time: 1311925380 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70286 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfs: fix for hang during synchronous buffer write error If removed storage while synchronous buffer write underway, "xfslogd" hangs. Detailed log http://oss.sgi.com/archives/xfs/2011-07/msg00740.html Related work bfc60177f8ab509bc225becbb58f7e53a0e33e81 "xfs: fix error handling for synchronous writes" Given that xfs_bwrite actually does the shutdown already after waiting for the b_iodone completion and given that we actually found that calling xfs_force_shutdown from inside xfs_buf_iodone_callbacks was a major contributor the problem it better to drop this call. Signed-off-by: Ajeet Yadav diff -Nurp -X linux/Documentation/dontdiff linux/fs/xfs/xfs_buf_item.c linux-Dirty/fs/xfs/xfs_buf_item.c --- linux/fs/xfs/xfs_buf_item.c 2011-06-09 10:05:18.000000000 +0530 +++ linux-Dirty/fs/xfs/xfs_buf_item.c 2011-07-28 15:53:51.000000000 +0530 @@ -1028,7 +1028,6 @@ xfs_buf_iodone_callbacks( XFS_BUF_UNDELAYWRITE(bp); trace_xfs_buf_error_relse(bp, _RET_IP_); - xfs_force_shutdown(mp, SHUTDOWN_META_IO_ERROR); do_callbacks: xfs_buf_do_callbacks(bp, lip); From minchan.kim@gmail.com Fri Jul 29 04:48:26 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6T9mQP4037118 for ; Fri, 29 Jul 2011 04:48:26 -0500 X-ASG-Debug-ID: 1311932904-323f029c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pz0-f43.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 88BA41D91570 for ; Fri, 29 Jul 2011 02:48:24 -0700 (PDT) Received: from mail-pz0-f43.google.com (mail-pz0-f43.google.com [209.85.210.43]) by cuda.sgi.com with ESMTP id ouB08EEThyfL4zYA for ; Fri, 29 Jul 2011 02:48:24 -0700 (PDT) Received: by pzk1 with SMTP id 1so4833428pzk.2 for ; Fri, 29 Jul 2011 02:48:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=5m7in/mLBeSv8yPniwgVgpyX/3y5VsCFAi2Q8Ms7Jo4=; b=uLu+IiYH2eIJ+IC6NAT0esnZ3jKBjTjl0H68LsGCOIrZj0Hm19E9QfMkqAgTQ39sfX F0F3DtTsapaknVBH6R6EvdzDFzaeZqLEBwKl2nDXb4WC++Y/+58SbPHblgGswvhpfhxI X8gyXQOTDyMIXIG39NYHWsIM5czp7V9C/YRis= Received: by 10.68.38.4 with SMTP id c4mr1805831pbk.336.1311932904523; Fri, 29 Jul 2011 02:48:24 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id b4sm1982925pba.43.2011.07.29.02.48.20 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jul 2011 02:48:22 -0700 (PDT) Date: Fri, 29 Jul 2011 18:48:16 +0900 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110729094816.GG1843@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <20110727161821.GA1738@barrios-desktop> <20110728113852.GN3010@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110728113852.GN3010@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-pz0-f43.google.com[209.85.210.43] X-Barracuda-Start-Time: 1311932905 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70294 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 28, 2011 at 12:38:52PM +0100, Mel Gorman wrote: > On Thu, Jul 28, 2011 at 01:18:21AM +0900, Minchan Kim wrote: > > On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: > > > Note how preventing kswapd reclaiming dirty pages pushes up its CPU > > > usage as it scans more pages but it does not get excessive due to > > > the throttling. > > > > Good to hear. > > The concern of this patchset was early OOM kill with too many scanning. > > I can throw such concern out from now on. > > > > At least, I haven't been able to trigger a premature OOM. AFAIR, Andrew had a premature OOM problem[1] but I couldn't track down at that time. I think this patch series might solve his problem. Although it doesn't, it should not accelerate his problem, at least. Andrew, Could you test this patchset? [1] https://lkml.org/lkml/2011/5/25/415 -- Kind regards, Minchan Kim From minchan.kim@gmail.com Fri Jul 29 04:50:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6T9oF9U037183 for ; Fri, 29 Jul 2011 04:50:15 -0500 X-ASG-Debug-ID: 1311933034-277b00680000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-gy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 4747411F6EF4 for ; Fri, 29 Jul 2011 02:50:34 -0700 (PDT) Received: from mail-gy0-f181.google.com (mail-gy0-f181.google.com [209.85.160.181]) by cuda.sgi.com with ESMTP id 2tYg2SODtsBoKH0P for ; Fri, 29 Jul 2011 02:50:34 -0700 (PDT) Received: by gyg10 with SMTP id 10so2827822gyg.26 for ; Fri, 29 Jul 2011 02:50:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=e1Q+YILLCvj3yhCIfYyD+etUzvbA8XxEdtHxWGV1qUc=; b=WpUjdliclIhDarDEClPcMWqf2EydA7yUfK/Jn84YL3lt7Ziq8sElwcndsStgd8zArG 5quDABAVUWtZixii2udjPxJ1EJ1H32zVzN1RKPout5jn5lfdFQtbTdkqMn0dhAnvipgt 0aFKgounePrA5iNw0y/Uf/BHYMII3iirPaWEM= Received: by 10.142.187.14 with SMTP id k14mr669378wff.219.1311933013266; Fri, 29 Jul 2011 02:50:13 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id g5sm1152297wfh.10.2011.07.29.02.50.09 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jul 2011 02:50:11 -0700 (PDT) Date: Fri, 29 Jul 2011 18:50:05 +0900 From: Minchan Kim To: Mel Gorman , Andrew Lutomirski Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Message-ID: <20110729095005.GH1843@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <20110727161821.GA1738@barrios-desktop> <20110728113852.GN3010@suse.de> <20110729094816.GG1843@barrios-desktop> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110729094816.GG1843@barrios-desktop> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-gy0-f181.google.com[209.85.160.181] X-Barracuda-Start-Time: 1311933035 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70295 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Sorry for missing Ccing. On Fri, Jul 29, 2011 at 06:48:16PM +0900, Minchan Kim wrote: > On Thu, Jul 28, 2011 at 12:38:52PM +0100, Mel Gorman wrote: > > On Thu, Jul 28, 2011 at 01:18:21AM +0900, Minchan Kim wrote: > > > On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: > > > > Note how preventing kswapd reclaiming dirty pages pushes up its CPU > > > > > > > usage as it scans more pages but it does not get excessive due to > > > > the throttling. > > > > > > Good to hear. > > > The concern of this patchset was early OOM kill with too many scanning. > > > I can throw such concern out from now on. > > > > > > > At least, I haven't been able to trigger a premature OOM. > > AFAIR, Andrew had a premature OOM problem[1] but I couldn't track down at that time. > I think this patch series might solve his problem. Although it doesn't, it should not accelerate > his problem, at least. > > Andrew, Could you test this patchset? > > [1] https://lkml.org/lkml/2011/5/25/415 > -- > Kind regards, > Minchan Kim -- Kind regards, Minchan Kim From marco.stornelli@gmail.com Fri Jul 29 05:04:54 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TA4sR6037635 for ; Fri, 29 Jul 2011 05:04:54 -0500 X-ASG-Debug-ID: 1311933912-277600ea0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-yx0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C7B4D11F9249 for ; Fri, 29 Jul 2011 03:05:12 -0700 (PDT) Received: from mail-yx0-f181.google.com (mail-yx0-f181.google.com [209.85.213.181]) by cuda.sgi.com with ESMTP id r6eMRDkeQya9ElgA for ; Fri, 29 Jul 2011 03:05:12 -0700 (PDT) Received: by yxi13 with SMTP id 13so2688196yxi.26 for ; Fri, 29 Jul 2011 03:04:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=RmPdPnbd6HnY/VP4rnBL1bHrbOb9LPtz+jNg1js4kR8=; b=LFUJ9alXHzQ4SUJKS1fU2pTzJAXpArrYE2vexWshHRbG94wPyyle6wZvT0LBw2fMk+ W/Eb5kKdVlYnGwqVpDwbKSXPZ5ZuOSnztuDcr+uuFdWMz7qYqEJanUN3R6gC08EyO8pB hkKlBC5mcriJF7IhAKJuGQeBVhXCIec9SVEGU= Received: by 10.146.3.40 with SMTP id 40mr848990yac.33.1311933891400; Fri, 29 Jul 2011 03:04:51 -0700 (PDT) Received: from [82.59.191.105] (host105-191-dynamic.59-82-r.retail.telecomitalia.it [82.59.191.105]) by mx.google.com with ESMTPS id j3sm1749598anm.47.2011.07.29.03.04.48 (version=TLSv1/SSLv3 cipher=OTHER); Fri, 29 Jul 2011 03:04:51 -0700 (PDT) Message-ID: <4E328457.2000401@gmail.com> Date: Fri, 29 Jul 2011 11:58:47 +0200 From: Marco Stornelli User-Agent: Mozilla/5.0 (X11; U; Linux i686; it; rv:1.9.2.18) Gecko/20110616 SUSE/3.1.11 Thunderbird/3.1.11 MIME-Version: 1.0 To: Josef Bacik CC: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com, viro@ZenIV.linux.org.uk X-ASG-Orig-Subj: Re: [PATCH 1/4] fs: add SEEK_HOLE and SEEK_DATA flags Subject: Re: [PATCH 1/4] fs: add SEEK_HOLE and SEEK_DATA flags References: <1309275199-10801-1-git-send-email-josef@redhat.com> In-Reply-To: <1309275199-10801-1-git-send-email-josef@redhat.com> Content-Type: text/plain; charset=ISO-8859-15; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-yx0-f181.google.com[209.85.213.181] X-Barracuda-Start-Time: 1311933912 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70295 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Sorry maybe I'm a bit late? :) Il 28/06/2011 17:33, Josef Bacik ha scritto: > > loff_t default_llseek(struct file *file, loff_t offset, int origin) > { > + struct inode *inode = file->f_path.dentry->d_inode; > loff_t retval; > > - mutex_lock(&file->f_dentry->d_inode->i_mutex); > + mutex_lock(&inode->i_mutex); > switch (origin) { > case SEEK_END: > - offset += i_size_read(file->f_path.dentry->d_inode); > + offset += i_size_read(inode); Here we are under mutex, so I think we can use directly i_size without i_size_read. Marco From david@fromorbit.com Fri Jul 29 05:56:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TAuiX0040388 for ; Fri, 29 Jul 2011 05:56:44 -0500 X-ASG-Debug-ID: 1311937001-5cf201920000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ipmail04.adl6.internode.on.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 9ACDDA3142 for ; Fri, 29 Jul 2011 03:56:42 -0700 (PDT) Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id CEn2CY7E3EqzJHCI for ; Fri, 29 Jul 2011 03:56:42 -0700 (PDT) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjgDAMCQMk55LCkBgWdsb2JhbAA0AQEFQCAlEQkDDgo6FAEqAyoXp2oVAQEWJiXIbQ6GMwSbLIhD Received: from ppp121-44-41-1.lns20.syd6.internode.on.net (HELO dastard) ([121.44.41.1]) by ipmail04.adl6.internode.on.net with ESMTP; 29 Jul 2011 20:26:40 +0930 Received: from dave by dastard with local (Exim 4.76) (envelope-from ) id 1QmkkB-0006G6-6l; Fri, 29 Jul 2011 20:56:39 +1000 Date: Fri, 29 Jul 2011 20:56:39 +1000 From: Dave Chinner To: Alex Elder Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH] xfs: set cursor in xfs_ail_splice() even when AIL was empty Subject: Re: [PATCH] xfs: set cursor in xfs_ail_splice() even when AIL was empty Message-ID: <20110729105639.GJ5404@dastard> References: <201107212205.p6LM5dxF016460@stout.americas.sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <201107212205.p6LM5dxF016460@stout.americas.sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1311937003 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0201 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70300 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:05:39PM -0500, Alex Elder wrote: > In xfs_ail_splice(), if a cursor is provided it is updated > to point to the last item on the list to be spliced into > the AIL. But if the AIL was found to be empty, the cursor > (if provided) is just initialized instead. > > There is no reason the null AIL case needs to be any different. > And treating it the same way allows this code to be rearranged > a bit, with a somewhat tidier result. > > Signed-off-by: Alex Elder I've tested and reviewed the second version of this patch(*) and I don't see anything problems at all, so: Reviewed-by: Dave Chinner Cheers, Dave. (*) In saving the second version, I accidentally marked the mail for delete and then forgot to undelete it before switching mail folders and commiting the delete. Hence I'm responding to the first mail :) -- Dave Chinner david@fromorbit.com From sbehrens@giantdisaster.de Fri Jul 29 07:25:31 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TCPUR2043337 for ; Fri, 29 Jul 2011 07:25:31 -0500 X-ASG-Debug-ID: 1311942349-277b03870000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mo-p00-ob.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DC37A1689637 for ; Fri, 29 Jul 2011 05:25:49 -0700 (PDT) Received: from mo-p00-ob.rzone.de (mo-p00-ob.rzone.de [81.169.146.160]) by cuda.sgi.com with ESMTP id 4UdhwAMnwmcj6aXd for ; Fri, 29 Jul 2011 05:25:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1311942327; l=2227; s=domk; d=giantdisaster.de; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References: Subject:CC:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=kRSL2Yt4slgSc6Adq5zoWp0PNok=; b=ymfXgubngK47c8WgaFdJoMc1FPsYf2CQjhMDWHFzdUKRl7BHqTMIMILAuJpsnSTRfyv CetrtorCwM8TT72YCgBVK4d3T7+q/DriEZ53ObvzoFV7fUiy/bF4g1NfvLn7MYyMfPcvS WGul3068sn9ff5rUq+Wy/eoKu+yLZ20qn5Y= X-RZG-AUTH: :P24BfVKtdewSqNxKJHA7pzS3qMJDcjZcfhyLxL2IOTrSfPdWpt8NAUTHaYo8BBekW9dzmLb3jBU0s8/wDV+i/8tBg2I7WGCdBSmV4g0l X-RZG-CLASS-ID: mo00 Received: from [IPv6:2a01:238:e100:320:fd3b:e161:dd0f:8d66] ([2a01:238:e100:320:fd3b:e161:dd0f:8d66]) by smtp.strato.de (cohen mo52) (RZmta 26.2) with ESMTPA id B010f0n6TAGunr ; Fri, 29 Jul 2011 14:24:26 +0200 (MEST) Message-ID: <4E32A67E.9070306@giantdisaster.de> Date: Fri, 29 Jul 2011 14:24:30 +0200 From: Stefan Behrens User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Subject: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 References: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> <20110728085158.GD3407@infradead.org> In-Reply-To: <20110728085158.GD3407@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-p00-ob.rzone.de[81.169.146.160] X-Barracuda-Start-Time: 1311942350 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70305 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/28/2011 10:51 AM, Christoph Hellwig wrote: [...] > I'd suggest to completely drop the stat check, and use the ext2 branch > unconditionally. The ioctl is suppored by all major filesystems. > > This also means we can make the test generic, maybe with a _notrun > instead of an error if FS_IOC_GETFLAGS/FS_IOC_SETFLAGS isn't supported. I changed it according to your suggestion: - Get rid of the check for the specific filesystem type. - Always use FS_IOC_GETFLAGS/FS_IOC_SETFLAGS. This code is inside an '#ifdef FS_IOC_SETFLAGS" block in order to never fail compilation. - Without support for FS_IOC_SETFLAGS, the test completes with _notrun. What is your opinion about the issue that the test 079 fails on ext2, ext3, ext4 and btrfs filesystems. Only XFS filesystems succeed test 079. mkdir("/mnt3/foo/append-only.d", 0777) = 0 open("/mnt3/foo/append-only.d", O_RDONLY) = 3 ioctl(3, FS_IOC32_SETFLAGS or FS_IOC_SETFLAGS, 0x7fffaf60b07c) = 0 (this ioctl enables FS_APPEND_FL for the directory) close(3) open("/mnt3/foo/append-only.d/newfile-0", O_RDWR|O_CREAT, 0666) = -1 EPERM (Operation not permitted) One issue is that the file is there (the creation did succeed but the open for writing did not) what IEEE 1003.1-2004 prohibits (open() must not create or modify any files if -1 is returned). The difference between the filesystems is whether the append-only flag from the directory is inherited to the newly create file inside that directory. XFS does not inherit that append-only flag, ext2, ext3, ext4 and btrfs do inherit it. Test 079 fails when the open("/mnt3/foo/append-only.d/newfile-0", O_RDWR|O_CREAT, 0666) fails due to the O_RDWR flag. The O_RDWR flag lets the open() fail when the file has the append-only flag set. On one type of filesystem the flag is inherited from the directory, on the other type it is not. Test 079 expects that flag to not be inherited. What is your opinion? I would prefer to either change the test to detect whether the append-only flag is inherited and then interpret the following system call result depending on the state of the flag, or to force the flag to a defined state to be independent of the inheritance behaviour. From BATV+90e8d7815e9c8ca69cfb+2896+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 29 07:30:34 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TCUVCx043552 for ; Fri, 29 Jul 2011 07:30:34 -0500 X-ASG-Debug-ID: 1311942630-10bb013b0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C095B184E405 for ; Fri, 29 Jul 2011 05:30:30 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id lt3JA0aGWHtUzKc4 for ; Fri, 29 Jul 2011 05:30:30 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmmCy-00024h-QB; Fri, 29 Jul 2011 12:30:28 +0000 Date: Fri, 29 Jul 2011 08:30:28 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: Christoph Hellwig , linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Subject: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Message-ID: <20110729123028.GA4764@infradead.org> References: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> <20110728085158.GD3407@infradead.org> <4E32A67E.9070306@giantdisaster.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4E32A67E.9070306@giantdisaster.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311942630 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70306 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 29, 2011 at 02:24:30PM +0200, Stefan Behrens wrote: > I changed it according to your suggestion: > - Get rid of the check for the specific filesystem type. > - Always use FS_IOC_GETFLAGS/FS_IOC_SETFLAGS. This code is inside an > '#ifdef FS_IOC_SETFLAGS" block in order to never fail compilation. > - Without support for FS_IOC_SETFLAGS, the test completes with _notrun. Thanks! > One issue is that the file is there (the creation did succeed but > the open for writing did not) what IEEE 1003.1-2004 prohibits > (open() must not create or modify any files if -1 is returned). That sounds like something we need to fix, and it seems like we'll need to fix it in the VFS. Can you start a thread about that particular issue on fsdevel? > The difference between the filesystems is whether the append-only > flag from the directory is inherited to the newly create file inside > that directory. XFS does not inherit that append-only flag, ext2, > ext3, ext4 and btrfs do inherit it. > Test 079 fails when the open("/mnt3/foo/append-only.d/newfile-0", > O_RDWR|O_CREAT, 0666) fails due to the O_RDWR flag. The O_RDWR > flag lets the open() fail when the file has the append-only flag > set. On one type of filesystem the flag is inherited from the > directory, on the other type it is not. Test 079 expects that flag > to not be inherited. > > What is your opinion? I would prefer to either change the test to > detect whether the append-only flag is inherited and then interpret > the following system call result depending on the state of the flag, > or to force the flag to a defined state to be independent of the > inheritance behaviour. Having different behaviour for different filesystems is a bad thing, and given that XFS is the lonely one out there I think we should remove the inheritance. I'll preparate a patch for it. From amluto@gmail.com Fri Jul 29 08:42:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TDgKm5046527 for ; Fri, 29 Jul 2011 08:42:20 -0500 X-ASG-Debug-ID: 1311946939-2a7602f00000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pz0-f43.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1D0D0A38F0 for ; Fri, 29 Jul 2011 06:42:19 -0700 (PDT) Received: from mail-pz0-f43.google.com (mail-pz0-f43.google.com [209.85.210.43]) by cuda.sgi.com with ESMTP id m97CoWOTOlXmtM6j for ; Fri, 29 Jul 2011 06:42:19 -0700 (PDT) Received: by pzk1 with SMTP id 1so5065793pzk.2 for ; Fri, 29 Jul 2011 06:42:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; bh=pPpHy5jSFWNfg9n+HBrDSK0RDl6hRhzB4hBmogFYSpk=; b=Wx/+GZdTR12M/40PkbDoJAlUXu/CZknho4XecmCUspsHSObWUx5b0grI9ZbP8B/1lk lggI0EoH0AHzrb6do5zb11BAXrBzfAYu6RIn171lyr+keMWqnMudJYyVAe/cApYcjFsx wsNp01pA1qIYW2Gc6n12hC5rkheYPQoKGs2e8= Received: by 10.68.54.35 with SMTP id g3mr1769052pbp.459.1311946939065; Fri, 29 Jul 2011 06:42:19 -0700 (PDT) MIME-Version: 1.0 Sender: amluto@gmail.com Received: by 10.68.63.197 with HTTP; Fri, 29 Jul 2011 06:41:59 -0700 (PDT) In-Reply-To: <20110729095005.GH1843@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <20110727161821.GA1738@barrios-desktop> <20110728113852.GN3010@suse.de> <20110729094816.GG1843@barrios-desktop> <20110729095005.GH1843@barrios-desktop> From: Andrew Lutomirski Date: Fri, 29 Jul 2011 09:41:59 -0400 X-Google-Sender-Auth: 13rtFx7ully8yLVuuxw0XjBPgAo Message-ID: X-ASG-Orig-Subj: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 Subject: Re: [RFC PATCH 0/8] Reduce filesystem writeback from page reclaim v2 To: Minchan Kim Cc: Mel Gorman , Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel Content-Type: text/plain; charset=ISO-8859-1 X-Barracuda-Connect: mail-pz0-f43.google.com[209.85.210.43] X-Barracuda-Start-Time: 1311946940 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70310 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 29, 2011 at 5:50 AM, Minchan Kim wrote: > Sorry for missing Ccing. > > On Fri, Jul 29, 2011 at 06:48:16PM +0900, Minchan Kim wrote: >> On Thu, Jul 28, 2011 at 12:38:52PM +0100, Mel Gorman wrote: >> > On Thu, Jul 28, 2011 at 01:18:21AM +0900, Minchan Kim wrote: >> > > On Thu, Jul 21, 2011 at 05:28:42PM +0100, Mel Gorman wrote: >> > > > Note how preventing kswapd reclaiming dirty pages pushes up its CPU >> >> >> >> > > > usage as it scans more pages but it does not get excessive due to >> > > > the throttling. >> > > >> > > Good to hear. >> > > The concern of this patchset was early OOM kill with too many scanning. >> > > I can throw such concern out from now on. >> > > >> > >> > At least, I haven't been able to trigger a premature OOM. >> >> AFAIR, Andrew had a premature OOM problem[1] but I couldn't track down at that time. >> I think this patch series might solve his problem. Although it doesn't, it should not accelerate >> his problem, at least. >> >> Andrew, Could you test this patchset? Gladly, but not until Wednesday most likely. I'm defending my thesis on Monday :) --Andy From sbehrens@giantdisaster.de Fri Jul 29 09:30:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TEUOE6048868 for ; Fri, 29 Jul 2011 09:30:25 -0500 X-ASG-Debug-ID: 1311949844-181700230000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mo-p00-ob.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E0BFBD6D9CC for ; Fri, 29 Jul 2011 07:30:44 -0700 (PDT) Received: from mo-p00-ob.rzone.de (mo-p00-ob.rzone.de [81.169.146.162]) by cuda.sgi.com with ESMTP id 2St1K08yE1GUngpR for ; Fri, 29 Jul 2011 07:30:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; t=1311949821; l=1358; s=domk; d=giantdisaster.de; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References: Subject:CC:To:MIME-Version:From:Date:X-RZG-CLASS-ID:X-RZG-AUTH; bh=tlscrtyFM9rFd02k6uSzVfIhfNM=; b=OwY7qrUhkjWLaieNaMGIfe891E0vrjMqOWAyDdNnCq94uVimoEKKBmN1PRJpyLrTCjY go3WblUk/7Q2i5aKATwPnYie3rO/NTYkwPhtASg/Z9W37dZ1GpomhtBRGFy9IeXMCOCqN 8b2pg9SIZoismeoxgh0mh45yB355D9EZ6LQ= X-RZG-AUTH: :P24BfVKtdewSqNxKJHA7pzS3qMJDcjZcfhyLxL2IOTrSfPdWpt8NAUTHaYo8BBekW9dzmLb3jBU0s8/wDV+i/8tBg2I7WGCdBSmV4g0l X-RZG-CLASS-ID: mo00 Received: from [IPv6:2a01:238:e100:320:fd3b:e161:dd0f:8d66] ([2a01:238:e100:320:fd3b:e161:dd0f:8d66]) by smtp.strato.de (jimi mo20) (RZmta 26.2) with ESMTPA id z0429fn6TE3Pyh ; Fri, 29 Jul 2011 16:30:08 +0200 (MEST) Message-ID: <4E32C3F4.8040505@giantdisaster.de> Date: Fri, 29 Jul 2011 16:30:12 +0200 From: Stefan Behrens User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:5.0) Gecko/20110624 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 Subject: Re: [PATCH 4/4] xfstests: Add support for btrfs in 079 References: <0cbb002def872039fd8c0bb90ceb5f6bf0e15b02.1311776403.git.sbehrens@giantdisaster.de> <20110728085158.GD3407@infradead.org> <4E32A67E.9070306@giantdisaster.de> <20110729123028.GA4764@infradead.org> In-Reply-To: <20110729123028.GA4764@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-p00-ob.rzone.de[81.169.146.162] X-Barracuda-Start-Time: 1311949845 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0209 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70313 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 7/29/2011 2:30 PM, Christoph Hellwig wrote: > On Fri, Jul 29, 2011 at 02:24:30PM +0200, Stefan Behrens wrote: >> The difference between the filesystems is whether the append-only >> flag from the directory is inherited to the newly create file inside >> that directory. XFS does not inherit that append-only flag, ext2, >> ext3, ext4 and btrfs do inherit it. > Having different behaviour for different filesystems is a bad thing, > and given that XFS is the lonely one out there I think we should > remove the inheritance. I'll preparate a patch for it. In order to make it consistent, it would be needed to _add_ the inheritance to XFS, not to remove it from XFS. Or to remove it from ext2, ext3, ext4 and btrfs. A different thread is whether it makes sense to inherit this flag from directories to files. I would prefer to not inherit the append-only flag from a directory to files created in that directory, because the use case for setting the append-only flag on directories is different to the use case for having the flag set on files. I cannot imagine use cases where the inheritance of this flag from the directory to the file is useful. But I cannot find real-world use cases for setting this flag on directories anyway, to all imaginable needs in this area the solution is the sticky bit on the directory or ACLs. From BATV+90e8d7815e9c8ca69cfb+2896+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 29 10:50:42 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TFofo5052842 for ; Fri, 29 Jul 2011 10:50:42 -0500 X-ASG-Debug-ID: 1311954640-0c4302ed0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 976C09E2B0 for ; Fri, 29 Jul 2011 08:50:40 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Etd928WZxnezh22r for ; Fri, 29 Jul 2011 08:50:40 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QmpKh-0008WP-EA; Fri, 29 Jul 2011 15:50:39 +0000 Date: Fri, 29 Jul 2011 11:50:39 -0400 From: Christoph Hellwig To: jfs-discussion@lists.sourceforge.net, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH, RFC] jfs support for xfstests Subject: [PATCH, RFC] jfs support for xfstests Message-ID: <20110729155039.GA28306@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1311954640 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=BSF_SC5_MJ1963, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70320 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The patch below adds basic jfs support to xfstests. Unfortunately it doesn't get very far, as test 001 already blows up with a kernel crash, as do 011 and 013 as other random picks. Index: xfstests-dev/common.rc =================================================================== --- xfstests-dev.orig/common.rc 2011-07-29 15:36:52.000000000 +0000 +++ xfstests-dev/common.rc 2011-07-29 15:39:41.000000000 +0000 @@ -102,6 +102,9 @@ _mkfs_opts() gfs2) export MKFS_OPTIONS="$GFS2_MKFS_OPTIONS -O -p lock_nolock" ;; + jfs) + export MKFS_OPTIONS="$JFS_MKFS_OPTIONS -q" + ;; *) ;; esac From dave.kleikamp@oracle.com Fri Jul 29 11:04:18 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG4H0p053668 for ; Fri, 29 Jul 2011 11:04:17 -0500 X-ASG-Debug-ID: 1311955478-183001670000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from rcsinet15.oracle.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 18E0811F7FBA for ; Fri, 29 Jul 2011 09:04:38 -0700 (PDT) Received: from rcsinet15.oracle.com (rcsinet15.oracle.com [148.87.113.117]) by cuda.sgi.com with ESMTP id jcYO0QY2DDLbYmbg for ; Fri, 29 Jul 2011 09:04:38 -0700 (PDT) Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by rcsinet15.oracle.com (Switch-3.4.4/Switch-3.4.4) with ESMTP id p6TG405Y007634 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 29 Jul 2011 16:04:02 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id p6TG3xqL015840 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 29 Jul 2011 16:03:59 GMT Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id p6TG3r8m014518; Fri, 29 Jul 2011 11:03:53 -0500 Received: from [192.168.1.73] (/99.156.91.244) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 29 Jul 2011 09:03:54 -0700 Message-ID: <4E32D9EB.9020406@oracle.com> Date: Fri, 29 Jul 2011 11:03:55 -0500 From: Dave Kleikamp User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Christoph Hellwig CC: jfs-discussion@lists.sourceforge.net, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [Jfs-discussion] [PATCH, RFC] jfs support for xfstests Subject: Re: [Jfs-discussion] [PATCH, RFC] jfs support for xfstests References: <20110729155039.GA28306@infradead.org> In-Reply-To: <20110729155039.GA28306@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Auth-Type: Internal IP X-CT-RefId: str=0001.0A090202.4E32D9F2.0063:SCFMA922111,ss=1,re=-4.000,fgs=0 X-Barracuda-Connect: rcsinet15.oracle.com[148.87.113.117] X-Barracuda-Start-Time: 1311955479 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0005 1.0000 -2.0176 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=COMMA_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70319 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 COMMA_SUBJECT Subject is like 'Re: FDSDS, this is a subject' X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/29/2011 10:50 AM, Christoph Hellwig wrote: > The patch below adds basic jfs support to xfstests. Unfortunately it > doesn't get very far, as test 001 already blows up with a kernel crash, > as do 011 and 013 as other random picks. Great :-) Seems to be a good idea to support jfs. I'll carve out some time to reproduce and debug the crashes. Thanks, Shaggy > > > Index: xfstests-dev/common.rc > =================================================================== > --- xfstests-dev.orig/common.rc 2011-07-29 15:36:52.000000000 +0000 > +++ xfstests-dev/common.rc 2011-07-29 15:39:41.000000000 +0000 > @@ -102,6 +102,9 @@ _mkfs_opts() > gfs2) > export MKFS_OPTIONS="$GFS2_MKFS_OPTIONS -O -p lock_nolock" > ;; > + jfs) > + export MKFS_OPTIONS="$JFS_MKFS_OPTIONS -q" > + ;; > *) > ;; > esac > From sbehrens@giantdisaster.de Fri Jul 29 11:07:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG73AX053744 for ; Fri, 29 Jul 2011 11:07:03 -0500 X-ASG-Debug-ID: 1311955621-30e501f70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mort.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 73242A5EBD for ; Fri, 29 Jul 2011 09:07:02 -0700 (PDT) Received: from mort.rzone.de (mort.rzone.de [81.169.144.234]) by cuda.sgi.com with ESMTP id ivYFmPeRpzgUOKUG for ; Fri, 29 Jul 2011 09:07:02 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by mort.rzone.de (Postfix) with ESMTP id 4EAD5314; Fri, 29 Jul 2011 18:07:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id 45E0AC096; Fri, 29 Jul 2011 18:07:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH v2 0/4] xfstests: Changed a couple of tests to be generic Subject: [PATCH v2 0/4] xfstests: Changed a couple of tests to be generic Date: Fri, 29 Jul 2011 18:06:57 +0200 Message-Id: X-Mailer: git-send-email 1.7.3.4 X-Barracuda-Connect: mort.rzone.de[81.169.144.234] X-Barracuda-Start-Time: 1311955622 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70320 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Changes v1->v2: - Instead of just adding btrfs to the list of supported filesystems, the 7 tests that are touched by this patch series are now executed for all filesystems (since the tests are generic ones). - The changes in src/t_immutable.c are revised to make the setting of append-only and immutable flags generic instead of just adding code for btrfs. This patch series changes the tests 015, 062, 079, 083, 117, 120 and 192 to be generic for all filesystems and to be executed for all filesystems. For test 079 to run, src/t_immutable.c was also modified to use the new generic FS_IOC_SETFLAGS/FS_IOC_GETFLAGS ioctl() if they are available. Stefan Behrens (4): xfstests: Changed test 062 to be generic for all filesystems xfstests: Changed tests 083, 117, 120 and 192 to be generic for all filesystems xfstests: Changed test 015 to be generic for all filesystems xfstests: Changed test 079 to be generic for all filesystems 015 | 4 +- 062 | 4 +- 062.out | 6 ----- 079 | 13 ++++++++-- 083 | 12 +++++++-- 117 | 4 +- 120 | 4 +- 192 | 2 +- src/t_immutable.c | 66 +++++++++++++++++----------------------------------- 9 files changed, 50 insertions(+), 65 deletions(-) -- 1.7.3.4 From sbehrens@giantdisaster.de Fri Jul 29 11:07:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG737p053748 for ; Fri, 29 Jul 2011 11:07:03 -0500 X-ASG-Debug-ID: 1311955644-126f01810000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id E42BE11F803D for ; Fri, 29 Jul 2011 09:07:24 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id yvIGhfwZjwCaNqHO for ; Fri, 29 Jul 2011 09:07:24 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id 60528328; Fri, 29 Jul 2011 18:07:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id 58AF1C096; Fri, 29 Jul 2011 18:07:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH v2 3/4] xfstests: Changed test 015 to be generic for all filesystems Subject: [PATCH v2 3/4] xfstests: Changed test 015 to be generic for all filesystems Date: Fri, 29 Jul 2011 18:07:00 +0200 Message-Id: <9fac26922ffbfbfb153818a3cbfb97d17ff42176.1311953979.git.sbehrens@giantdisaster.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311955644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0001 1.0000 -2.0203 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70321 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Changed the test 015 to be generic for all filesystems and to be executed for all filesystems. Replaced the call to _scratch_mkfs_xfs with the XFS specific size parameter by the generic one for sized filesystem creation which is _scratch_mkfs_sized. Signed-off-by: Stefan Behrens --- 015 | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/015 b/015 index 8f2be7c..686a211 100755 --- a/015 +++ b/015 @@ -48,13 +48,13 @@ _free() } # real QA test starts here -_supported_fs xfs +_supported_fs generic _supported_os IRIX Linux _require_scratch _require_nobigloopfs -_scratch_mkfs_xfs -d size=50m >/dev/null || _fail "mkfs failed" +_scratch_mkfs_sized `expr 50 \* 1024 \* 1024` >/dev/null 2>&1 || _fail "mkfs failed" _scratch_mount || _fail "mount failed" out=$SCRATCH_MNT/fillup.$$ rm -f $seq.full -- 1.7.3.4 From sbehrens@giantdisaster.de Fri Jul 29 11:07:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG73SG053749 for ; Fri, 29 Jul 2011 11:07:03 -0500 X-ASG-Debug-ID: 1311955644-1820016c0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D7F9FF1EC97 for ; Fri, 29 Jul 2011 09:07:24 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id VFehz8MKYcS7bMDw for ; Fri, 29 Jul 2011 09:07:24 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id 5BEAD327; Fri, 29 Jul 2011 18:07:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id 522AEC098; Fri, 29 Jul 2011 18:07:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH v2 2/4] xfstests: Changed tests 083, 117, 120 and 192 to be generic for all filesystems Subject: [PATCH v2 2/4] xfstests: Changed tests 083, 117, 120 and 192 to be generic for all filesystems Date: Fri, 29 Jul 2011 18:06:59 +0200 Message-Id: <1bdccf3ff6b9b913faab5caf8f54a8e5980a1345.1311953979.git.sbehrens@giantdisaster.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311955644 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70321 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Changed the tests 083, 117, 120 and 192 to be generic for all filesystems and to be executed for all filesystems. For test 083 also changed to use _scratch_mkfs_sized instead of _scratch_mks_xfs for all filesystem types except for XFS. Signed-off-by: Stefan Behrens --- 083 | 12 +++++++++--- 117 | 4 ++-- 120 | 4 ++-- 192 | 2 +- 4 files changed, 14 insertions(+), 8 deletions(-) diff --git a/083 b/083 index 7342baa..441284e 100755 --- a/083 +++ b/083 @@ -54,7 +54,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 . ./common.filter # real QA test starts here -_supported_fs xfs +_supported_fs generic _supported_os IRIX Linux _require_scratch @@ -72,8 +72,14 @@ workout() umount $SCRATCH_DEV >/dev/null 2>&1 echo "*** mkfs -dsize=$fsz,agcount=$ags" >>$seq.full echo "" >>$seq.full - _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seq.full 2>&1 \ - || _fail "size=$fsz,agcount=$ags mkfs failed" + if [ $FSTYP = xfs ] + then + _scratch_mkfs_xfs -dsize=$fsz,agcount=$ags >>$seq.full 2>&1 \ + || _fail "size=$fsz,agcount=$ags mkfs failed" + else + _scratch_mkfs_sized $fsz >>$seq.full 2>&1 \ + || _fail "size=$fsz mkfs failed" + fi _scratch_mount >>$seq.full 2>&1 \ || _fail "mount failed" diff --git a/117 b/117 index dd880cb..fcf0485 100755 --- a/117 +++ b/117 @@ -51,7 +51,7 @@ _cleanup() . ./common.attr # real QA test starts here -_supported_fs xfs +_supported_fs generic _supported_os IRIX Linux _setup_testdir @@ -62,7 +62,7 @@ rm -f $seq.full umount $SCRATCH_DEV >/dev/null 2>&1 echo "*** MKFS ***" >>$seq.full echo "" >>$seq.full -_scratch_mkfs_xfs >>$seq.full 2>&1 \ +_scratch_mkfs >>$seq.full 2>&1 \ || _fail "mkfs failed" _scratch_mount >>$seq.full 2>&1 \ || _fail "mount failed" diff --git a/120 b/120 index bf1e617..010a8f3 100755 --- a/120 +++ b/120 @@ -37,11 +37,11 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 . ./common.filter # real QA test starts here -_supported_fs xfs +_supported_fs generic _supported_os Linux IRIX _require_scratch -_scratch_mkfs_xfs >/dev/null 2>&1 +_scratch_mkfs >/dev/null 2>&1 || _fail "mkfs failed" _compare_access_times() { diff --git a/192 b/192 index d8301d5..4b69147 100755 --- a/192 +++ b/192 @@ -45,7 +45,7 @@ _access_time() # real QA test starts here -_supported_fs xfs udf nfs +_supported_fs generic _supported_os Linux #delay=150 #delay=75 -- 1.7.3.4 From sbehrens@giantdisaster.de Fri Jul 29 11:07:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG73Ad053756 for ; Fri, 29 Jul 2011 11:07:03 -0500 X-ASG-Debug-ID: 1311955621-781800d70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from ysabell.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id DD51C1E6DCA5 for ; Fri, 29 Jul 2011 09:07:02 -0700 (PDT) Received: from ysabell.rzone.de (ysabell.rzone.de [81.169.144.237]) by cuda.sgi.com with ESMTP id l2zSR255Zs4iLlLs for ; Fri, 29 Jul 2011 09:07:02 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by ysabell.rzone.de (Postfix) with ESMTP id 66EFF329; Fri, 29 Jul 2011 18:07:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id 5D8FBC099; Fri, 29 Jul 2011 18:07:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH v2 4/4] xfstests: Changed test 079 to be generic for all filesystems Subject: [PATCH v2 4/4] xfstests: Changed test 079 to be generic for all filesystems Date: Fri, 29 Jul 2011 18:07:01 +0200 Message-Id: X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: In-Reply-To: References: X-Barracuda-Connect: ysabell.rzone.de[81.169.144.237] X-Barracuda-Start-Time: 1311955622 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70320 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Changed the test 079 to be generic for all filesystems and to be executed for all filesystems. In src/t_immutable.c which is compiled for Linux only, replaced the old style XFS and ext2 specific code for setting the append-only and immutable flags by generic code that makes use of the ioctl(FS_IOC_SETFLAGS) and ioctl(FS_IOC_GETFLAGS). Therefore the check for the specific filesystem type was removed. FS_IOC_GETFLAGS/FS_IOC_SETFLAGS is always used. This code is inside an '#ifdef FS_IOC_SETFLAGS' block in order to never fail compilation. Without support for FS_IOC_SETFLAGS, the test completes with _notrun. Signed-off-by: Stefan Behrens --- 079 | 13 ++++++++-- src/t_immutable.c | 66 +++++++++++++++++----------------------------------- 2 files changed, 32 insertions(+), 47 deletions(-) diff --git a/079 b/079 index 6c43fe7..0c70811 100755 --- a/079 +++ b/079 @@ -46,7 +46,7 @@ _cleanup() . ./common.filter . ./common.attr -_supported_fs xfs +_supported_fs generic _supported_os Linux _require_attrs @@ -55,10 +55,17 @@ _require_scratch [ -x $timmutable ] || _notrun "t_immutable was not built for this platform" # real QA test starts here -_scratch_mkfs_xfs 2>&1 >/dev/null || _fail "mkfs failed" +_scratch_mkfs >/dev/null 2>&1 || _fail "mkfs failed" _scratch_mount || _fail "mount failed" echo "*** starting up" -$timmutable -c $SCRATCH_MNT/$seq +$timmutable -c $SCRATCH_MNT/$seq >$tmp.out 2>&1 +if grep -q 'Operation not supported' $tmp.out +then + rm -f $tmp.out + _notrun "Setting immutable/append flag not supported" +fi +cat $tmp.out +rm -f $tmp.out status=$? exit diff --git a/src/t_immutable.c b/src/t_immutable.c index 7bb3154..87ffc75 100644 --- a/src/t_immutable.c +++ b/src/t_immutable.c @@ -41,11 +41,8 @@ #include #include #include - -#define EXT2_SUPER_MAGIC 0xEF53 -#define EXT2_IMMUTABLE_FL 0x00000010 -#define EXT2_APPEND_FL 0x00000020 -#define EXT2_IOC_SETFLAGS _IOW('f', 2, long) +#include +#include #ifndef XFS_SUPER_MAGIC #define XFS_SUPER_MAGIC 0x58465342 @@ -55,52 +52,33 @@ extern const char *__progname; static int fsetflag(const char *path, int fd, int on, int immutable) { - int e2flags = 0; - struct fsxattr attr; - struct statfs stfs; - int xfsfl; - int e2fl; - - if (immutable) { - xfsfl = XFS_XFLAG_IMMUTABLE; - e2fl = EXT2_IMMUTABLE_FL; - } else { - xfsfl = XFS_XFLAG_APPEND; - e2fl = EXT2_APPEND_FL; - } +#ifdef FS_IOC_SETFLAGS + int fsflags = 0; + int fsfl; - if (fstatfs(fd, &stfs) != 0) + if (ioctl(fd, FS_IOC_GETFLAGS, &fsflags) < 0) { + close(fd); return 1; - - if (stfs.f_type == XFS_SUPER_MAGIC) { - if (xfsctl(path, fd, XFS_IOC_FSGETXATTR, &attr) < 0) { - close(fd); - return 1; - } - if (on) - attr.fsx_xflags |= xfsfl; - else - attr.fsx_xflags &= ~xfsfl; - if (xfsctl(path, fd, XFS_IOC_FSSETXATTR, &attr) < 0) { - close(fd); - return 1; - } - } else if (stfs.f_type == EXT2_SUPER_MAGIC) { - if (on) - e2flags |= e2fl; - else - e2flags &= ~e2fl; - if (ioctl(fd, EXT2_IOC_SETFLAGS, &e2flags) < 0) { - close(fd); - return 1; - } - } else { - errno = EOPNOTSUPP; + } + if (immutable) + fsfl = FS_IMMUTABLE_FL; + else + fsfl = FS_APPEND_FL; + if (on) + fsflags |= fsfl; + else + fsflags &= ~fsfl; + if (ioctl(fd, FS_IOC_SETFLAGS, &fsflags) < 0) { close(fd); return 1; } close(fd); return 0; +#else + errno = EOPNOTSUPP; + close(fd); + return 1; +#endif } static int add_acl(const char *path, const char *acl_text) -- 1.7.3.4 From sbehrens@giantdisaster.de Fri Jul 29 11:07:04 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.2 required=5.0 tests=BAYES_00,J_CHICKENPOX_43, J_CHICKENPOX_53,J_CHICKENPOX_63,J_CHICKENPOX_71,J_CHICKENPOX_73, J_CHICKENPOX_91,J_CHICKENPOX_93 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TG74Mt053773 for ; Fri, 29 Jul 2011 11:07:04 -0500 X-ASG-Debug-ID: 1311955622-30dc01f50000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mort.rzone.de (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 90950A5EBF for ; Fri, 29 Jul 2011 09:07:03 -0700 (PDT) Received: from mort.rzone.de (mort.rzone.de [81.169.144.234]) by cuda.sgi.com with ESMTP id MdVDQOeDgRiJve2k for ; Fri, 29 Jul 2011 09:07:03 -0700 (PDT) Received: from gargravarr.store (gargravarr.store [192.168.42.236]) by mort.rzone.de (Postfix) with ESMTP id 55ED4315; Fri, 29 Jul 2011 18:07:01 +0200 (MEST) Received: by gargravarr.store (Postfix, from userid 32655) id 4BB78C097; Fri, 29 Jul 2011 18:07:01 +0200 (CEST) From: Stefan Behrens To: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: [PATCH v2 1/4] xfstests: Changed test 062 to be generic for all filesystems Subject: [PATCH v2 1/4] xfstests: Changed test 062 to be generic for all filesystems Date: Fri, 29 Jul 2011 18:06:58 +0200 Message-Id: <95dfa968c48d2bd1095876a6db3369672e76db5f.1311953979.git.sbehrens@giantdisaster.de> X-Mailer: git-send-email 1.7.3.4 In-Reply-To: References: In-Reply-To: References: X-Barracuda-Connect: mort.rzone.de[81.169.144.234] X-Barracuda-Start-Time: 1311955623 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.42 X-Barracuda-Spam-Status: No, SCORE=-1.42 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70320 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Changed the test 062 to be generic for all filesystems and to be executed for all filesystems. Remove output of mkfs since this is specific to mkfs.xfs and now filtered out. Signed-off-by: Stefan Behrens --- 062 | 4 ++-- 062.out | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/062 b/062 index 5cb6f92..a6e4bc8 100755 --- a/062 +++ b/062 @@ -71,7 +71,7 @@ _create_test_bed() } # real QA test starts here -_supported_fs xfs udf nfs +_supported_fs generic _supported_os Linux _require_scratch @@ -80,7 +80,7 @@ _require_attrs rm -f $tmp.backup1 $tmp.backup2 $seq.full # real QA test starts here -_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs +_scratch_mkfs > /dev/null 2>&1 || _fail "mkfs failed" _scratch_mount || _fail "mount failed" _create_test_bed diff --git a/062.out b/062.out index 73fd628..1d5a094 100644 --- a/062.out +++ b/062.out @@ -1,10 +1,4 @@ QA output created by 062 -meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks -data = bsize=XXX blocks=XXX, imaxpct=PCT - = sunit=XXX swidth=XXX, unwritten=X -naming =VERN bsize=XXX -log =LDEV bsize=XXX blocks=XXX -realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX *** create test bed SCRATCH_MNT SCRATCH_MNT/dev -- 1.7.3.4 From aelder@oss.sgi.com Fri Jul 29 12:51:53 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED,BAYES_00, J_CHICKENPOX_13,J_CHICKENPOX_21,J_CHICKENPOX_31,J_CHICKENPOX_33, J_CHICKENPOX_41,J_CHICKENPOX_42,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6THprbH060220 for ; Fri, 29 Jul 2011 12:51:53 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6THpmaL060195; Fri, 29 Jul 2011 12:51:48 -0500 Date: Fri, 29 Jul 2011 12:51:48 -0500 Message-Id: <201107291751.p6THpmaL060195@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, linus-master, created. v2.6.38-26921-ga5a7bbc X-Git-Refname: refs/heads/linus-master X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, linus-master has been created at a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 (commit) - Log ----------------------------------------------------------------- commit a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 Author: Markus Trippelsdorf Date: Tue Jul 26 11:15:20 2011 +0200 xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set commit 4e34e719e45, that takes the ACL checks to common code, accidentely broke the build when CONFIG_FS_POSIX_ACL is not set: CC fs/xfs/linux-2.6/xfs_iops.o fs/xfs/linux-2.6/xfs_iops.c:1025:14: error: ‘xfs_get_acl’ undeclared here (not in a function) Fix this by declaring xfs_get_acl a static inline function. Signed-off-by: Markus Trippelsdorf Signed-off-by: Alex Elder commit 55f9c40ff632d03c527d6a6ceddcda0a224587a6 Merge: d5eab9152a3b4ce962c02ad0a0e4d0ec94aadd92 eb7caf35951b1a56aabee028c1b20727abccc34f Author: Linus Torvalds Date: Thu Jul 28 05:59:19 2011 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc: n2_crypto: Attach on Niagara-T3. n2rng: Attach on Niagara-T3. sparc: Detect and handle UltraSPARC-T3 cpu types. sparc: Don't do expensive hypervisor PCR write unless necessary. sparc: Add T3 sun4v cpu type and hypervisor group defines. sparc: Don't leave sparc_pmu_type NULL on sun4v. commit d5eab9152a3b4ce962c02ad0a0e4d0ec94aadd92 Merge: 6140333d3656f62ac7e6a5af87e7fe92cfb8d655 a051294423b015c5c89f2ed78f7fe0893b775098 Author: Linus Torvalds Date: Thu Jul 28 05:58:19 2011 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (32 commits) tg3: Remove 5719 jumbo frames and TSO blocks tg3: Break larger frags into 4k chunks for 5719 tg3: Add tx BD budgeting code tg3: Consolidate code that calls tg3_tx_set_bd() tg3: Add partial fragment unmapping code tg3: Generalize tg3_skb_error_unmap() tg3: Remove short DMA check for 1st fragment tg3: Simplify tx bd assignments tg3: Reintroduce tg3_tx_ring_info ASIX: Use only 11 bits of header for data size ASIX: Simplify condition in rx_fixup() Fix cdc-phonet build bonding: reduce noise during init bonding: fix string comparison errors net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared net: add IFF_SKB_TX_SHARED flag to priv_flags net: sock_sendmsg_nosec() is static forcedeth: fix vlans gianfar: fix bug caused by 87c288c6e9aa31720b72e2bc2d665e24e1653c3e gro: Only reset frag0 when skb can be pulled ... commit 6140333d3656f62ac7e6a5af87e7fe92cfb8d655 Merge: 6f56c218666b5c7eff354364357307d18c10058b 58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf Author: Linus Torvalds Date: Thu Jul 28 05:50:27 2011 -0700 Merge branch 'for-linus' of git://neil.brown.name/md * 'for-linus' of git://neil.brown.name/md: (75 commits) md/raid10: handle further errors during fix_read_error better. md/raid10: Handle read errors during recovery better. md/raid10: simplify read error handling during recovery. md/raid10: record bad blocks due to write errors during resync/recovery. md/raid10: attempt to fix read errors during resync/check md/raid10: Handle write errors by updating badblock log. md/raid10: clear bad-block record when write succeeds. md/raid10: avoid writing to known bad blocks on known bad drives. md/raid10 record bad blocks as needed during recovery. md/raid10: avoid reading known bad blocks during resync/recovery. md/raid10 - avoid reading from known bad blocks - part 3 md/raid10: avoid reading from known bad blocks - part 2 md/raid10: avoid reading from known bad blocks - part 1 md/raid10: Split handle_read_error out from raid10d. md/raid10: simplify/reindent some loops. md/raid5: Clear bad blocks on successful write. md/raid5. Don't write to known bad block on doubtful devices. md/raid5: write errors should be recorded as bad blocks if possible. md/raid5: use bad-block log to improve handling of uncorrectable read errors. md/raid5: avoid reading from known bad blocks. ... commit 6f56c218666b5c7eff354364357307d18c10058b Merge: 95b6886526bb510b8370b625a49bc0ab3b8ff10f 8d34e6d3ec0393a286569587fbd9675abd258d93 Author: Linus Torvalds Date: Thu Jul 28 05:49:31 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: sound: oss: rename local change_bits to avoid powerpc bitsops.h definition ALSA: hda - Fix duplicated DAC assignments for Realtek ALSA: asihpi - off by one in asihpi_hpi_ioctl() ALSA: hda - Fix Oops with Realtek quirks with NULL adc_nids ALSA: asihpi - bug fix pa use before init. ALSA: hda - Add support for vref-out based mute LED control on IDT codecs commit eb7caf35951b1a56aabee028c1b20727abccc34f Author: David S. Miller Date: Thu Jul 28 01:30:07 2011 -0700 n2_crypto: Attach on Niagara-T3. A small modification was necessary since in the machine description for 'n2cp' and 'ncp' nodes, there no longer is an 'intr' property. That's OK because this property was always nothing more than an array of integers '1' ... 'nr_inos + 1' so we can just compute it in-place. Signed-off-by: David S. Miller commit 24f146696184cbe4b440179064a45dfddaad4cc4 Author: David S. Miller Date: Wed Jul 27 23:33:03 2011 -0700 n2rng: Attach on Niagara-T3. And stop referring to Victoria Falls, as the attribute we're talking about is whether the rng is multi-unit capable which applies to several chip variants now. Signed-off-by: David S. Miller commit a051294423b015c5c89f2ed78f7fe0893b775098 Author: Matt Carlson Date: Wed Jul 27 14:20:54 2011 +0000 tg3: Remove 5719 jumbo frames and TSO blocks The A0 revision of this chip is the only device that requires these features to be disabled. Signed-off-by: Matt Carlson Signed-off-by: David S. Miller commit e31aa9870627106aebddd280aab8ecb2f493246a Author: Matt Carlson Date: Wed Jul 27 14:20:53 2011 +0000 tg3: Break larger frags into 4k chunks for 5719 The 5719 has bug where RDMAs larger than 4k can cause problems. This patch works around the problem by dividing larger DMA requests into something the hardware can handle. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 84b67b27e9531e9a70c9e8cd952d66c55f4d0ddb Author: Matt Carlson Date: Wed Jul 27 14:20:52 2011 +0000 tg3: Add tx BD budgeting code As the driver breaks large skb fragments into smaller submissions to the hardware, there is a new danger that BDs might get exhausted before all fragments have been mapped. This patch adds code to make sure tx BDs aren't oversubscribed and flag the condition if it happens. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit d1a3b7377d3b6a01ec5f70adb32173b13233aabf Author: Matt Carlson Date: Wed Jul 27 14:20:51 2011 +0000 tg3: Consolidate code that calls tg3_tx_set_bd() This patch consolidates all code that populates tx BDs into a single routine. Setting tx BDs needs to be more carefully controlled to see if workarounds need to be applied. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit e01ee14d499e5d09c0a9db0cac2545a018849e3d Author: Matt Carlson Date: Wed Jul 27 14:20:50 2011 +0000 tg3: Add partial fragment unmapping code The following patches are going to break skb fragments into smaller sizes. This patch attempts to make the change easier to digest by only addressing the skb teardown portion. The patch modifies the driver to skip over any BDs that have a flag set that indicates the BD isn't the beginning of an skb fragment. Such BDs were a result of segmentation and do not need a pci_unmap_page() call. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 0d681b27b0efc962a3038a316e78373de7bfe1ce Author: Matt Carlson Date: Wed Jul 27 14:20:49 2011 +0000 tg3: Generalize tg3_skb_error_unmap() In the following patches, unmapping skb fragments will get just as complicated as mapping them. This patch generalizes tg3_skb_error_unmap() and makes it the one-stop-shop for skb unmapping. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 13350ea78bd687a229af0f6052d2f45aa50a6524 Author: Matt Carlson Date: Wed Jul 27 14:20:48 2011 +0000 tg3: Remove short DMA check for 1st fragment The first fragment of an skb should always be greater than 8 bytes. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit 92cd3a17ce9c719abb4c28dee3438e0c641f8de4 Author: Matt Carlson Date: Wed Jul 27 14:20:47 2011 +0000 tg3: Simplify tx bd assignments In the following patches, the process the driver will use to assign skb fragments to transmit BDs will get more complicated. To prepare for that new code, this patch seeks to simplify how transmit BDs are populated. It does this by separating the code that assigns the BD members from the logic that controls how the fields are set. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit df8944cf5cd3794c46e95e0404038376ee7f8dda Author: Matt Carlson Date: Wed Jul 27 14:20:46 2011 +0000 tg3: Reintroduce tg3_tx_ring_info The following patches will require the use of an additional flag in the ring_info structure. The use of this flag is tx path specific, so this patch defines a specialized ring_info structure. Signed-off-by: Matt Carlson Reviewed-by: Michael Chan Signed-off-by: David S. Miller commit bca0beb9363f8487ac902931a50eb00180a2d14a Author: Marek Vasut Date: Tue Jul 26 16:44:47 2011 +0000 ASIX: Use only 11 bits of header for data size The AX88772B uses only 11 bits of the header for the actual size. The other bits are used for something else. This causes dmesg full of messages: asix_rx_fixup() Bad Header Length This patch trims the check to only 11 bits. I believe on older chips, the remaining 5 top bits are unused. Signed-off-by: Marek Vasut Signed-off-by: David S. Miller commit bc466e678d0a98f445bf3f9c76fedf18e7dcc6b0 Author: Marek Vasut Date: Tue Jul 26 16:44:46 2011 +0000 ASIX: Simplify condition in rx_fixup() Signed-off-by: Marek Vasut Signed-off-by: David S. Miller commit a0295a3b6775ab88f5883684e14bbda8d287822d Author: Chris Clayton Date: Tue Jul 26 12:20:22 2011 +0000 Fix cdc-phonet build Try to send to correct address this time! ---------- Forwarded Message ---------- Subject: [PATCH] Fix cdc-phonet build Date: Saturday 23 Jul 2011 From: Chris Clayton To: linux-net@vger.kernel.org cdc-phonet does not presently build on linux-3.0 because there is no entry for it in drivers/net/Makefile. This patch adds that entry. Signed-off-by: Chris Clayton Signed-off-by: David S. Miller commit b2730f4f842b987c818023a8003e6426cf996985 Author: Andy Gospodarek Date: Wed Jul 27 10:09:26 2011 +0000 bonding: reduce noise during init On Tue, Jul 26, 2011 at 05:40:27PM -0700, Joe Perches wrote: > On Tue, 2011-07-26 at 17:37 -0700, Jay Vosburgh wrote: > > Joe Perches wrote: > > >I'd prefer you don't separate the format string > > >into multiple pieces. > > Why not? To me, it looks easier to read split into sections > > that don't wrap lines. > > Harder to grep for a dmesg and the > defect rate of these split formats is > typically higher than single strings > because of bad spacing between string > segments. > I noticed that you took some time back in late 2009 to 'consolidate' the split format-strings present in the bonding driver at the time and I've decided I'm fine to leave them the way they are. The main point of my patch was to change the output and I would like to get that included. Here is my updated patch... Subject: [PATCH net-next-2.6 v2] bonding: reduce noise during init Many are using sysfs to configure bonding rather than module options, so there is no need for bonding to throw this warning in normal cases. Keep the message around when debugging is enabled as it might be useful for someone desperate enough to enable debugging, but eliminate it otherwise. Signed-off-by: Andy Gospodarek Signed-off-by: David S. Miller commit f4bb2e9c4fa9e5fdddf90589703613fd1a9c519f Author: Andy Gospodarek Date: Tue Jul 26 11:12:27 2011 +0000 bonding: fix string comparison errors When a bond contains a device where one name is the subset of another (eth1 and eth10, for example), one cannot properly set the primary device or the currently active device. This was reported and based on work by Takuma Umeya. I also verified the problem and tested that this fix resolves it. V2: A few did not like the the current code or my changes, so I refactored bonding_store_primary and bonding_store_active_slave to be a bit cleaner, dropped the use of strnicmp since we did not really need the comparison to be case insensitive, and formatted the input string from sysfs so a comparison to IFNAMSIZ could be used. I also discovered an error in bonding_store_active_slave that would modify bond->primary_slave rather than bond->curr_active_slave before forcing the bonding driver to choose a new active slave. V3: Actually sending the proper patch.... Signed-off-by: Andy Gospodarek Reported-by: Takuma Umeya Signed-off-by: David S. Miller commit 550fd08c2cebad61c548def135f67aba284c6162 Author: Neil Horman Date: Tue Jul 26 06:05:38 2011 +0000 net: Audit drivers to identify those needing IFF_TX_SKB_SHARING cleared After the last patch, We are left in a state in which only drivers calling ether_setup have IFF_TX_SKB_SHARING set (we assume that drivers touching real hardware call ether_setup for their net_devices and don't hold any state in their skbs. There are a handful of drivers that violate this assumption of course, and need to be fixed up. This patch identifies those drivers, and marks them as not being able to support the safe transmission of skbs by clearning the IFF_TX_SKB_SHARING flag in priv_flags Signed-off-by: Neil Horman CC: Karsten Keil CC: "David S. Miller" CC: Jay Vosburgh CC: Andy Gospodarek CC: Patrick McHardy CC: Krzysztof Halasa CC: "John W. Linville" CC: Greg Kroah-Hartman CC: Marcel Holtmann CC: Johannes Berg Signed-off-by: David S. Miller commit d8873315065f1f527c7c380402cf59b1e1d0ae36 Author: Neil Horman Date: Tue Jul 26 06:05:37 2011 +0000 net: add IFF_SKB_TX_SHARED flag to priv_flags Pktgen attempts to transmit shared skbs to net devices, which can't be used by some drivers as they keep state information in skbs. This patch adds a flag marking drivers as being able to handle shared skbs in their tx path. Drivers are defaulted to being unable to do so, but calling ether_setup enables this flag, as 90% of the drivers calling ether_setup touch real hardware and can handle shared skbs. A subsequent patch will audit drivers to ensure that the flag is set properly Signed-off-by: Neil Horman Reported-by: Jiri Pirko CC: Robert Olsson CC: Eric Dumazet CC: Alexey Dobriyan CC: David S. Miller Signed-off-by: David S. Miller commit 894dc24ce75aa238ce96422a36b1537ccf2d8831 Author: Eric Dumazet Date: Tue Jul 26 02:39:41 2011 +0000 net: sock_sendmsg_nosec() is static Signed-off-by: Eric Dumazet CC: Anton Blanchard Signed-off-by: David S. Miller commit 0891b0e08937aaec2c4734acb94c5ff8042313bb Author: Jiri Pirko Date: Tue Jul 26 10:19:28 2011 +0000 forcedeth: fix vlans For some reason, when rxaccel is disabled, NV_RX3_VLAN_TAG_PRESENT is still set and some pseudorandom vids appear. So check for NETIF_F_HW_VLAN_RX as well. Also set correctly hw_features and set vlan mode on probe. Signed-off-by: Jiri Pirko Signed-off-by: David S. Miller commit b852b720877e6b8e12b95a7cb4e00ea351b8cbfc Author: Sebastian Pöhn Date: Tue Jul 26 00:03:13 2011 +0000 gianfar: fix bug caused by 87c288c6e9aa31720b72e2bc2d665e24e1653c3e commit 87c288c6e9aa31720b72e2bc2d665e24e1653c3e "gianfar: do vlan cleanup" has two issues: # permutation of rx and tx flags # enabling vlan tag insertion by default (this leads to unusable connections on some configurations) If VLAN insertion is requested (via ethtool) it will be set at an other point ... Signed-off-by: Sebastian Poehn Signed-off-by: David S. Miller commit b49179c071b89423e1f6c50f6fa3d48d8158bc35 Merge: 17dd759c67f21e34f2156abcf415e1f60605a188 e5036c2575b244851637a81efc4104c076c4fa21 Author: David S. Miller Date: Wed Jul 27 22:18:47 2011 -0700 Merge branch 'for-davem' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 commit 4ba991d3eb379fbaa22049e7002341e97a673685 Author: David S. Miller Date: Wed Jul 27 21:06:16 2011 -0700 sparc: Detect and handle UltraSPARC-T3 cpu types. The cpu compatible string we look for is "SPARC-T3". As far as memset/memcpy optimizations go, we treat this chip the same as Niagara-T2/T2+. Use cache initializing stores for memset, and use perfetch, FPU block loads, cache initializing stores, and block stores for copies. We use the Niagara-T2 perf support, since T3 is a close relative in this regard. Later we'll add support for the new events T3 can report, plus enable T3's new "sample" mode. For now I haven't added any new ELF hwcap flags. We probably need to add a couple, for example: T2 and T3 both support the population count instruction in hardware. T3 supports VIS3 instructions, including support (finally) for partitioned shift. One can also now move directly between float and integer registers. T3 supports instructions meant to help with Galois Field and other HPC calculations, such as XOR multiply. Also there are "OP and negate" instructions, for example "fnmul" which is multiply-and-negate. T3 recognizes the transactional memory opcodes, however since transactional memory isn't supported: 1) 'commit' behaves as a NOP and 2) 'chkpt' always branches 3) 'rdcps' returns all zeros and 4) 'wrcps' behaves as a NOP. So we'll need about 3 new elf capability flags in the end to represent all of these things. Signed-off-by: David S. Miller commit 314ff52727fe94dfbe07f3a9a489ab3ca8d8df5a Author: David S. Miller Date: Wed Jul 27 20:46:25 2011 -0700 sparc: Don't do expensive hypervisor PCR write unless necessary. The hypervisor call is only necessary if hypervisor events are being requested. So if we're not tracking hypervisor events, simply do a direct register write. Signed-off-by: David S. Miller commit 15e3608d7c273947dbf2eadbcaa66e51143928fb Author: David S. Miller Date: Wed Jul 27 20:42:51 2011 -0700 sparc: Add T3 sun4v cpu type and hypervisor group defines. Signed-off-by: David S. Miller commit facfddef2c76110b8e321921f7e54518c3dd1579 Author: David S. Miller Date: Wed Jul 27 20:25:57 2011 -0700 sparc: Don't leave sparc_pmu_type NULL on sun4v. Otherwise we'll crash in the sparc perf init code. Signed-off-by: David S. Miller commit 95b6886526bb510b8370b625a49bc0ab3b8ff10f Merge: 22712200e175e0df5c7f9edfe6c6bf5c94c23b83 29412f0f6a19e34336368f13eab848091c343952 Author: Linus Torvalds Date: Wed Jul 27 19:26:38 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (54 commits) tpm_nsc: Fix bug when loading multiple TPM drivers tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block tpm: Fix compilation warning when CONFIG_PNP is not defined TOMOYO: Update kernel-doc. tpm: Fix a typo tpm_tis: Probing function for Intel iTPM bug tpm_tis: Fix the probing for interrupts tpm_tis: Delay ACPI S3 suspend while the TPM is busy tpm_tis: Re-enable interrupts upon (S3) resume tpm: Fix display of data in pubek sysfs entry tpm_tis: Add timeouts sysfs entry tpm: Adjust interface timeouts if they are too small tpm: Use interface timeouts returned from the TPM tpm_tis: Introduce durations sysfs entry tpm: Adjust the durations if they are too small tpm: Use durations returned from TPM TOMOYO: Enable conditional ACL. TOMOYO: Allow using argv[]/envp[] of execve() as conditions. TOMOYO: Allow using executable's realpath and symlink's target as conditions. TOMOYO: Allow using owner/group etc. of file objects as conditions. ... Fix up trivial conflict in security/tomoyo/realpath.c commit 58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf Author: NeilBrown Date: Thu Jul 28 11:39:25 2011 +1000 md/raid10: handle further errors during fix_read_error better. If we find more read/write errors we should record a bad block before failing the device. Signed-off-by: NeilBrown commit 5e5702898e93eee7d69b6efde109609a89a61001 Author: NeilBrown Date: Thu Jul 28 11:39:25 2011 +1000 md/raid10: Handle read errors during recovery better. Currently when we get a read error during recovery, we simply abort the recovery. Instead, repeat the read in page-sized blocks. On successful reads, write to the target. On read errors, record a bad block on the destination, and only if that fails do we abort the recovery. As we now retry reads we need to know where we read from. This was in bi_sector but that can be changed during a read attempt. So store the correct from_addr and to_addr in the r10_bio for later access. Signed-off-by: NeilBrown commit e684e41db3bad44f1262341300b827c0d94ae220 Author: NeilBrown Date: Thu Jul 28 11:39:25 2011 +1000 md/raid10: simplify read error handling during recovery. If a read error is detected during recovery the code currently fails the read device. This isn't really necessary. recovery_request_write will signal a write error to end_sync_write and it will record a write error on the destination device which will record a bad block there or kick it from the array. So just remove this call to do md_error. Signed-off-by: NeilBrown commit 1a0b7cd82657a590f163b090bd9123a3a6b9aae4 Author: NeilBrown Date: Thu Jul 28 11:39:25 2011 +1000 md/raid10: record bad blocks due to write errors during resync/recovery. If we get a write error during resync/recovery don't fail the device but instead record a bad block. If that fails we can then fail the device. Signed-off-by: NeilBrown commit f84ee364dd15af11cada1e673f94128f62db189e Author: NeilBrown Date: Thu Jul 28 11:39:25 2011 +1000 md/raid10: attempt to fix read errors during resync/check We already attempt to fix read errors found during normal IO and a 'repair' process. It is best to try to repair them at any time they are found, so move a test so that during sync and check a read error will be corrected by over-writing with good data. If both (all) devices have known bad blocks in the sync section we won't try to fix even though the bad blocks might not overlap. That should be considered later. Also if we hit a read error during recovery we don't try to fix it. It would only be possible to fix if there were at least three copies of data, which is not very common with RAID10. But it should still be considered later. Signed-off-by: NeilBrown commit bd870a16c5946d86126f7203db3c73b71de0a1d8 Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10: Handle write errors by updating badblock log. When we get a write error (in the data area, not in metadata), update the badblock log rather than failing the whole device. As the write may well be many blocks, we trying writing each block individually and only log the ones which fail. Signed-off-by: NeilBrown commit 749c55e942d91cb27045fe2eb313aa5afe68ae0b Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10: clear bad-block record when write succeeds. If we succeed in writing to a block that was recorded as being bad, we clear the bad-block record. This requires some delayed handling as the bad-block-list update has to happen in process-context. Signed-off-by: NeilBrown commit d4432c23be957ff061f7b23fd60e8506cb472a55 Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10: avoid writing to known bad blocks on known bad drives. Writing to known bad blocks on drives that have seen a write error is asking for trouble. So try to avoid these blocks. Signed-off-by: NeilBrown commit e875ecea266a543e643b19e44cf472f1412708f9 Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10 record bad blocks as needed during recovery. When recovering one or more devices, if all the good devices have bad blocks we should record a bad block on the device being rebuilt. If this fails, we need to abort the recovery. To ensure we don't think that we aborted later than we actually did, we need to move the check for MD_RECOVERY_INTR earlier in md_do_sync, in particular before mddev->curr_resync is updated. Signed-off-by: NeilBrown commit 40c356ce5ad1a6be817825e1da1bc7494349cc6d Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10: avoid reading known bad blocks during resync/recovery. During resync/recovery limit the size of the request to avoid reading into a bad block that does not start at-or-before the current read address. Similarly if there is a bad block at this address, don't allow the current request to extend beyond the end of that bad block. Now that we don't ever read from known bad blocks, it is safe to allow devices with those blocks into the array. Signed-off-by: NeilBrown commit 8dbed5cebdf6796bf2618457b3653cf820934366 Author: NeilBrown Date: Thu Jul 28 11:39:24 2011 +1000 md/raid10 - avoid reading from known bad blocks - part 3 When attempting to repair a read error, don't read from devices with a known bad block. As we are only reading PAGE_SIZE blocks, we don't try to narrow down to smaller regions in the hope that only part of this page is bad - it isn't worth the effort. Signed-off-by: NeilBrown commit 7399c31bc92a26bb8388a73f8e14acadcc512fe5 Author: NeilBrown Date: Thu Jul 28 11:39:23 2011 +1000 md/raid10: avoid reading from known bad blocks - part 2 When redirecting a read error to a different device, we must again avoid bad blocks and possibly split the request. Spin_lock typo fixed thanks to Dan Carpenter Signed-off-by: NeilBrown commit 856e08e23762dfb92ffc68fd0a8d228f9e152160 Author: NeilBrown Date: Thu Jul 28 11:39:23 2011 +1000 md/raid10: avoid reading from known bad blocks - part 1 This patch just covers the basic read path: 1/ read_balance needs to check for badblocks, and return not only the chosen slot, but also how many good blocks are available there. 2/ read submission must be ready to issue multiple reads to different devices as different bad blocks on different devices could mean that a single large read cannot be served by any one device, but can still be served by the array. This requires keeping count of the number of outstanding requests per bio. This count is stored in 'bi_phys_segments' On read error we currently just fail the request if another target cannot handle the whole request. Next patch refines that a bit. Signed-off-by: NeilBrown commit 560f8e5532d63a314271bfb99d3d1d53c938ed14 Author: NeilBrown Date: Thu Jul 28 11:39:23 2011 +1000 md/raid10: Split handle_read_error out from raid10d. raid10d() is too big and is about to get bigger, so split handle_read_error() out as a separate function. Signed-off-by: NeilBrown commit 1294b9c973251a5e68b62c9b40dd914517bda675 Author: NeilBrown Date: Thu Jul 28 11:39:23 2011 +1000 md/raid10: simplify/reindent some loops. When a loop ends with a large if, it can be neater to change the if to invert the condition and just 'continue'. Then the body of the if can be indented to a lower level. Signed-off-by: NeilBrown commit b84db560ead5417b5594349512baf8837959df4f Author: NeilBrown Date: Thu Jul 28 11:39:23 2011 +1000 md/raid5: Clear bad blocks on successful write. On a successful write to a known bad block, flag the sh so that raid5d can remove the known bad block from the list. Signed-off-by: NeilBrown commit 73e92e51b7969ef5477dd28fe2ae4d77675896f4 Author: NeilBrown Date: Thu Jul 28 11:39:22 2011 +1000 md/raid5. Don't write to known bad block on doubtful devices. If a device has seen write errors, don't write to any known bad blocks on that device. Signed-off-by: NeilBrown commit bc2607f393bd4fb844c1886a02af929ca0372056 Author: NeilBrown Date: Thu Jul 28 11:39:22 2011 +1000 md/raid5: write errors should be recorded as bad blocks if possible. When a write error is detected, don't mark the device as failed immediately but rather record the fact for handle_stripe to deal with. Handle_stripe then attempts to record a bad block. Only if that fails does the device get marked as faulty. Signed-off-by: NeilBrown commit 7f0da59bdc2f65795a57009d78f7753d3aea1de3 Author: NeilBrown Date: Thu Jul 28 11:39:22 2011 +1000 md/raid5: use bad-block log to improve handling of uncorrectable read errors. If we get an uncorrectable read error - record a bad block rather than failing the device. And if these errors (which may be due to known bad blocks) cause recovery to be impossible, record a bad block on the recovering devices, or abort the recovery. As we might abort a recovery without failing a device we need to teach RAID5 about recovery_disabled handling. Signed-off-by: NeilBrown commit 31c176ecdf3563140e6395249eda51a18130d9f6 Author: NeilBrown Date: Thu Jul 28 11:39:22 2011 +1000 md/raid5: avoid reading from known bad blocks. There are two times that we might read in raid5: 1/ when a read request fits within a chunk on a single working device. In this case, if there is any bad block in the range of the read, we simply fail the cache-bypass read and perform the read though the stripe cache. 2/ when reading into the stripe cache. In this case we mark as failed any device which has a bad block in that strip (1 page wide). Note that we will both avoid reading and avoid writing. This is correct (as we will never read from the block, there is no point writing), but not optimal (as writing could 'fix' the error) - that will be addressed later. If we have not seen any write errors on the device yet, we treat a bad block like a recent read error. This will encourage an attempt to fix the read error which will either generate a write error, or will ensure good data is stored there. We don't yet forget the bad block in that case. That comes later. Now that we honour bad blocks when reading we can allow devices with bad blocks into the array. Signed-off-by: NeilBrown commit 62096bce231b3760882ed91205fc84682d6b0529 Author: NeilBrown Date: Thu Jul 28 11:38:13 2011 +1000 md/raid1: factor several functions out or raid1d() raid1d is too big with several deep branches. So separate them out into their own functions. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 3a9f28a5117e00a868dd8b4395f9a707ae56764b Author: NeilBrown Date: Thu Jul 28 11:33:42 2011 +1000 md/raid1: improve handling of read failure during recovery. If we cannot read a block from anywhere during recovery, there is now a better approach than just giving up. We can record a bad block on each device and keep going - being careful not to clear the bad block when a write succeeds as it might - it will be a write of incorrect data. We have now reached the state where - for raid1 - we only call md_error if md_set_badblocks has failed. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit d8f05d2995d467a91db1af01637e6ffd94660ca8 Author: NeilBrown Date: Thu Jul 28 11:33:00 2011 +1000 md/raid1: record badblocks found during resync etc. If we find a bad block while writing as part of resync/recovery we need to report that back to raid1d which must record the bad block, or fail the device. Similarly when fixing a read error, a further error should just record a bad block if possible rather than failing the device. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit cd5ff9a16f0831f68c1024d5d776075b5123b034 Author: NeilBrown Date: Thu Jul 28 11:32:41 2011 +1000 md/raid1: Handle write errors by updating badblock log. When we get a write error (in the data area, not in metadata), update the badblock log rather than failing the whole device. As the write may well be many blocks, we trying writing each block individually and only log the ones which fail. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 2ca68f5ed7383733102ee53cd8fa4021ecc3b275 Author: NeilBrown Date: Thu Jul 28 11:32:10 2011 +1000 md/raid1: store behind-write pages in bi_vecs. When performing write-behind we allocate pages to store the data during write. Previously we just keep a list of pages. Now we keep a list of bi_vec which includes offset and size. This means that the r1bio has complete information to create a new bio which will be needed for retrying after write errors. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 4367af556133723d0f443e14ca8170d9447317cb Author: NeilBrown Date: Thu Jul 28 11:31:49 2011 +1000 md/raid1: clear bad-block record when write succeeds. If we succeed in writing to a block that was recorded as being bad, we clear the bad-block record. This requires some delayed handling as the bad-block-list update has to happen in process-context. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 1f68f0c4b677ccd6935ff61e4e6888787505f8dc Author: NeilBrown Date: Thu Jul 28 11:31:48 2011 +1000 md/raid1: avoid writing to known-bad blocks on known-bad drives. If we have seen any write error on a drive, then don't write to any known-bad blocks on that drive. If necessary, we divide the write request up into pieces just like we do for reads, so each piece is either all written or all not written to any given drive. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 0b7d83865cb7a60b1768212c1e60b8fd7c280506 Author: Namhyung Kim Date: Thu Jul 28 11:31:48 2011 +1000 md: update documentation for md/rdev/state sysfs interface Previous patches in the bad block series extended behavior of rdev's 'state' interface but lacked documentation update. Fix it. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit de393cdea66cbd63c90725663f400c76faf1b255 Author: NeilBrown Date: Thu Jul 28 11:31:48 2011 +1000 md: make it easier to wait for bad blocks to be acknowledged. It is only safe to choose not to write to a bad block if that bad block is safely recorded in metadata - i.e. if it has been 'acknowledged'. If it hasn't we need to wait for the acknowledgement. We support that using rdev->blocked wait and md_wait_for_blocked_rdev by introducing a new device flag 'BlockedBadBlock'. This flag is only advisory. It is cleared whenever we acknowledge a bad block, so that a waiter can re-check the particular bad blocks that it is interested it. It should be set by a caller when they find they need to wait. This (set after test) is inherently racy, but as md_wait_for_blocked_rdev already has a timeout, losing the race will have minimal impact. When we clear "Blocked" was also clear "BlockedBadBlocks" incase it was set incorrectly (see above race). We also modify the way we manage 'Blocked' to fit better with the new handling of 'BlockedBadBlocks' and to make it consistent between externally managed and internally managed metadata. This requires that each raidXd loop checks if the metadata needs to be written and triggers a write (md_check_recovery) if needed. Otherwise a queued write request might cause raidXd to wait for the metadata to write, and only that thread can write it. Before writing metadata, we set FaultRecorded for all devices that are Faulty, then after writing the metadata we clear Blocked for any device for which the Fault was certainly Recorded. The 'faulty' device flag now appears in sysfs if the device is faulty *or* it has unacknowledged bad blocks. So user-space which does not understand bad blocks can continue to function correctly. User space which does, should not assume a device is faulty until it sees the 'faulty' flag, and then sees the list of unacknowledged bad blocks is empty. Signed-off-by: NeilBrown commit d7a9d443bc8a75a24873c0506f50051edfedc714 Author: NeilBrown Date: Thu Jul 28 11:31:48 2011 +1000 md: add 'write_error' flag to component devices. If a device has ever seen a write error, we will want to handle known-bad-blocks differently. So create an appropriate state flag and export it via sysfs. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 06f603851fa90bcd236328438278d4dc8b655495 Author: NeilBrown Date: Thu Jul 28 11:31:48 2011 +1000 md/raid1: avoid reading known bad blocks during resync When performing resync/etc, keep the size of the request small enough that it doesn't overlap any known bad blocks. Devices with badblocks at the start of the request are completely excluded. If there is nowhere to read from due to bad blocks, record a bad block on each target device. Now that we never read from known-bad-blocks we can allow devices with known-bad-blocks into a RAID1. Signed-off-by: NeilBrown commit d2eb35acfdccbe2a3622ed6cc441a5482148423b Author: NeilBrown Date: Thu Jul 28 11:31:48 2011 +1000 md/raid1: avoid reading from known bad blocks. Now that we have a bad block list, we should not read from those blocks. There are several main parts to this: 1/ read_balance needs to check for bad blocks, and return not only the chosen device, but also how many good blocks are available there. 2/ fix_read_error needs to avoid trying to read from bad blocks. 3/ read submission must be ready to issue multiple reads to different devices as different bad blocks on different devices could mean that a single large read cannot be served by any one device, but can still be served by the array. This requires keeping count of the number of outstanding requests per bio. This count is stored in 'bi_phys_segments' 4/ retrying a read needs to also be ready to submit a smaller read and queue another request for the rest. This does not yet handle bad blocks when reading to perform resync, recovery, or check. 'md_trim_bio' will also be used for RAID10, so put it in md.c and export it. Signed-off-by: NeilBrown commit 9f2f3830789a4c9c1af2d1437d407c43e05136e6 Author: NeilBrown Date: Thu Jul 28 11:31:47 2011 +1000 md: Disable bad blocks and v0.90 metadata. v0.90 metadata cannot record bad blocks, so when loading metadata for such a device, set shift to -1. Signed-off-by: NeilBrown commit 2699b67223aca6b1450fc2f72e40fada952afc85 Author: NeilBrown Date: Thu Jul 28 11:31:47 2011 +1000 md: load/store badblock list from v1.x metadata Space must have been allocated when array was created. A feature flag is set when the badblock list is non-empty, to ensure old kernels don't load and trust the whole device. We only update the on-disk badblocklist when it has changed. If the badblocklist (or other metadata) is stored on a bad block, we don't cope very well. If metadata has no room for bad block, flag bad-blocks as disabled, and do the same for 0.90 metadata. Signed-off-by: NeilBrown commit 34b343cff4354ab9864be83be88405fd53d928a0 Author: NeilBrown Date: Thu Jul 28 11:31:47 2011 +1000 md: don't allow arrays to contain devices with bad blocks. As no personality understand bad block lists yet, we must reject any device that is known to contain bad blocks. As the personalities get taught, these tests can be removed. This only applies to raid1/raid5/raid10. For linear/raid0/multipath/faulty the whole concept of bad blocks doesn't mean anything so there is no point adding the checks. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 6e0d2d0312fb20c1edac1b2c849068c1c7944abf Author: Namhyung Kim Date: Thu Jul 28 11:31:47 2011 +1000 md: add documentation for bad block log Previous patch in the bad block series added new sysfs interfaces ([unacknowledged_]bad_blocks) for each rdev without documentation. Add it. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 16c791a5af3e50d0c11760485fd68e5829f3be4d Author: NeilBrown Date: Thu Jul 28 11:31:47 2011 +1000 md/bad-block-log: add sysfs interface for accessing bad-block-log. This can show the log (providing it fits in one page) and allows bad blocks to be 'acknowledged' meaning that they have safely been recorded in metadata. Clearing bad blocks is not allowed via sysfs (except for code testing). A bad block can only be cleared when a write to the block succeeds. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 2230dfe4ccc3add340dc6d437965b2de1d269fde Author: NeilBrown Date: Thu Jul 28 11:31:46 2011 +1000 md: beginnings of bad block management. This the first step in allowing md to track bad-blocks per-device so that we can fail individual blocks rather than the whole device. This patch just adds a data structure for recording bad blocks, with routines to add, remove, search the list. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 22712200e175e0df5c7f9edfe6c6bf5c94c23b83 Merge: 597a67e0ba758e3d2239c81fbb648c6e69ec30a2 ff95acb6733d41a8d45feb0e18b96df25e610e78 Author: Linus Torvalds Date: Wed Jul 27 16:43:52 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable: Btrfs: make sure reserve_metadata_bytes doesn't leak out strange errors Btrfs: use the commit_root for reading free_space_inode crcs Btrfs: reduce extent_state lock contention for metadata Btrfs: remove lockdep magic from btrfs_next_leaf Btrfs: make a lockdep class for each root Btrfs: switch the btrfs tree locks to reader/writer Btrfs: fix deadlock when throttling transactions Btrfs: stop using highmem for extent_buffers Btrfs: fix BUG_ON() caused by ENOSPC when relocating space Btrfs: tag pages for writeback in sync Btrfs: fix enospc problems with delalloc Btrfs: don't flush delalloc arbitrarily Btrfs: use find_or_create_page instead of grab_cache_page Btrfs: use a worker thread to do caching Btrfs: fix how we merge extent states and deal with cached states Btrfs: use the normal checksumming infrastructure for free space cache Btrfs: serialize flushers in reserve_metadata_bytes Btrfs: do transaction space reservation before joining the transaction Btrfs: try to only do one btrfs_search_slot in do_setxattr commit a519b26dbe6533416d21b552053b0bf687f878d7 Author: NeilBrown Date: Thu Jul 28 07:56:24 2011 +1000 md: remove suspicious size_of() When calling bioset_create we pass the size of the front_pad as sizeof(mddev) which looks suspicious as mddev is a pointer and so it looks like a common mistake where sizeof(*mddev) was intended. The size is actually correct as we want to store a pointer in the front padding of the bios created by the bioset, so make the intent more explicit by using sizeof(mddev_t *) Reported-by: Zdenek Kabelac Signed-off-by: NeilBrown commit 597a67e0ba758e3d2239c81fbb648c6e69ec30a2 Merge: 28890d3598c352ae065b560e0fded3e79c800ba1 510792ee29770a38dd409bf2b469ade2fea9eb52 Author: Linus Torvalds Date: Wed Jul 27 13:41:51 2011 -0700 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs * 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: optimize the negative xattr caching xfs: prevent against ioend livelocks in xfs_file_fsync xfs: flag all buffers as metadata xfs: encapsulate a block of debug code commit 28890d3598c352ae065b560e0fded3e79c800ba1 Merge: 91d41fdf31f74e6e2e5f3cb018eca4200e36e202 ed1e6211a0a134ff23592c6f057af982ad5dab52 Author: Linus Torvalds Date: Wed Jul 27 13:23:02 2011 -0700 Merge branch 'nfs-for-3.1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs * 'nfs-for-3.1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (44 commits) NFSv4: Don't use the delegation->inode in nfs_mark_return_delegation() nfs: don't use d_move in nfs_async_rename_done RDMA: Increasing RPCRDMA_MAX_DATA_SEGS SUNRPC: Replace xprt->resend and xprt->sending with a priority queue SUNRPC: Allow caller of rpc_sleep_on() to select priority levels SUNRPC: Support dynamic slot allocation for TCP connections SUNRPC: Clean up the slot table allocation SUNRPC: Initalise the struct xprt upon allocation SUNRPC: Ensure that we grab the XPRT_LOCK before calling xprt_alloc_slot pnfs: simplify pnfs files module autoloading nfs: document nfsv4 sillyrename issues NFS: Convert nfs4_set_ds_client to EXPORT_SYMBOL_GPL SUNRPC: Convert the backchannel exports to EXPORT_SYMBOL_GPL SUNRPC: sunrpc should not explicitly depend on NFS config options NFS: Clean up - simplify the switch to read/write-through-MDS NFS: Move the pnfs write code into pnfs.c NFS: Move the pnfs read code into pnfs.c NFS: Allow the nfs_pageio_descriptor to signal that a re-coalesce is needed NFS: Use the nfs_pageio_descriptor->pg_bsize in the read/write request NFS: Cache rpc_ops in struct nfs_pageio_descriptor ... commit 91d41fdf31f74e6e2e5f3cb018eca4200e36e202 Merge: c1095c6da518b0b64e724f629051fa67655cd8d9 277c5f27a2c86a9a733c0ec0f6a9b1032dfa3e15 Author: Linus Torvalds Date: Wed Jul 27 13:21:40 2011 -0700 Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending: target: Convert to DIV_ROUND_UP_SECTOR_T usage for sectors / dev_max_sectors kernel.h: Add DIV_ROUND_UP_ULL and DIV_ROUND_UP_SECTOR_T macro usage iscsi-target: Add iSCSI fabric support for target v4.1 iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h iscsi: Use struct scsi_lun in iscsi structs instead of u8[8] iscsi: Resolve iscsi_proto.h naming conflicts with drivers/target/iscsi commit ff95acb6733d41a8d45feb0e18b96df25e610e78 Merge: 02f8c6aee8df3cdc935e9bdd4f2d020306035dbe 75c195a2cac2c3c8366c0b87de2d6814c4f4d638 Author: Chris Mason Date: Wed Jul 27 16:13:10 2011 -0400 Merge branch 'integration' into for-linus commit 75c195a2cac2c3c8366c0b87de2d6814c4f4d638 Author: Chris Mason Date: Wed Jul 27 15:57:44 2011 -0400 Btrfs: make sure reserve_metadata_bytes doesn't leak out strange errors The btrfs transaction code will return any errors that come from reserve_metadata_bytes. We need to make sure we don't return funny things like 1 or EAGAIN. Signed-off-by: Chris Mason commit c1095c6da518b0b64e724f629051fa67655cd8d9 Author: Oleg Nesterov Date: Wed Jul 27 12:49:44 2011 -0700 signals: sys_ssetmask/sys_rt_sigsuspend should use set_current_blocked() sys_ssetmask(), sys_rt_sigsuspend() and compat_sys_rt_sigsuspend() change ->blocked directly. This is not correct, see the changelog in e6fa16ab "signal: sigprocmask() should do retarget_shared_pending()" Change them to use set_current_blocked(). Another change is that now we are doing ->saved_sigmask = ->blocked lockless, it doesn't make any sense to do this under ->siglock. Signed-off-by: Oleg Nesterov Reviewed-by: Matt Fleming Acked-by: Tejun Heo Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 678624e401b0b7747762b5223fb23f86dcdacc93 Author: Stephen Rothwell Date: Wed Jul 27 12:49:44 2011 -0700 sparc: rename atomic_add_unless Should have been done in commit 1af08a1407f4 ("This is in preparation for more generic atomic"). Signed-off-by: Stephen Rothwell Cc: Arun Sharma Cc: David Miller Cc: "Hans-Christian Egtvedt" Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds commit 09570f914914d2beb0db29c5a9c7344934f2fa8c Author: David Howells Date: Wed Jul 27 21:47:03 2011 +0300 proc: make struct proc_dir_entry::name a terminal array rather than a pointer Since __proc_create() appends the name it is given to the end of the PDE structure that it allocates, there isn't a need to store a name pointer. Instead we can just replace the name pointer with a terminal char array of _unspecified_ length. The compiler will simply append the string to statically defined variables of PDE type overlapping any hole at the end of the structure and, unlike specifying an explicitly _zero_ length array, won't give a warning if you try to statically initialise it with a string of more than zero length. Also, whilst we're at it: (1) Move namelen to end just prior to name and reduce it to a single byte (name shouldn't be longer than NAME_MAX). (2) Move pde_unload_lock two places further on so that if it's four bytes in size on a 64-bit machine, it won't cause an unused hole in the PDE struct. Signed-off-by: David Howells Signed-off-by: Alexey Dobriyan Signed-off-by: Linus Torvalds commit 8d34e6d3ec0393a286569587fbd9675abd258d93 Author: Andy Whitcroft Date: Wed Jul 27 17:48:41 2011 +0100 sound: oss: rename local change_bits to avoid powerpc bitsops.h definition This collides with powerpc exported functions from bitops.h. Rename the local copy in the oss soundblaster mixer and ad1848 driver. Signed-off-by: Andy Whitcroft Signed-off-by: Takashi Iwai commit 2cf8572dac62cc2ff7e995173e95b6c694401b3f Author: Chris Mason Date: Tue Jul 26 15:35:09 2011 -0400 Btrfs: use the commit_root for reading free_space_inode crcs Now that we are using regular file crcs for the free space cache, we can deadlock if we try to read the free_space_inode while we are updating the crc tree. This commit fixes things by using the commit_root to read the crcs. This is safe because we the free space cache file would already be loaded if that block group had been changed in the current transaction. Signed-off-by: Chris Mason commit 19b6caf4acbf065dc96b47741d99f1b87243c468 Author: Chris Mason Date: Mon Jul 25 06:50:50 2011 -0400 Btrfs: reduce extent_state lock contention for metadata For metadata buffers that don't straddle pages (all of them), btrfs can safely use the page uptodate bits and extent_buffer uptodate bit instead of needing to use the extent_state tree. This greatly reduces contention on the state tree lock. Signed-off-by: Chris Mason commit 31533fb263928c93a34cda41b66a6e83ade5c766 Author: Chris Mason Date: Tue Jul 26 16:01:59 2011 -0400 Btrfs: remove lockdep magic from btrfs_next_leaf Before the reader/writer locks, btrfs_next_leaf needed to keep the path blocking to avoid making lockdep upset. Now that btrfs_next_leaf only takes read locks, this isn't required. Signed-off-by: Chris Mason commit 85d4e461117b40eb10722f774566b19bd5e77879 Author: Chris Mason Date: Tue Jul 26 16:11:19 2011 -0400 Btrfs: make a lockdep class for each root This patch was originally from Tejun Heo. lockdep complains about the btrfs locking because we sometimes take btree locks from two different trees at the same time. The current classes are based only on level in the btree, which isn't enough information for lockdep to figure out if the lock is safe. This patch makes a class for each type of tree, and lumps all the FS trees that actually have files and directories into the same class. Signed-off-by: Chris Mason commit bd681513fa6f2ff29aa391f01e413a2d1c59fd77 Author: Chris Mason Date: Sat Jul 16 15:23:14 2011 -0400 Btrfs: switch the btrfs tree locks to reader/writer The btrfs metadata btree is the source of significant lock contention, especially in the root node. This commit changes our locking to use a reader/writer lock. The lock is built on top of rw spinlocks, and it extends the lock tracking to remember if we have a read lock or a write lock when we go to blocking. Atomics count the number of blocking readers or writers at any given time. It removes all of the adaptive spinning from the old code and uses only the spinning/blocking hints inside of btrfs to decide when it should continue spinning. In read heavy workloads this is dramatically faster. In write heavy workloads we're still faster because of less contention on the root node lock. We suffer slightly in dbench because we schedule more often during write locks, but all other benchmarks so far are improved. Signed-off-by: Chris Mason commit 81317fdeddcef259b6ecf7b5c0d04caa167c6b54 Author: Josef Bacik Date: Sun Jul 24 15:45:34 2011 -0400 Btrfs: fix deadlock when throttling transactions Hit this nice little deadlock. What happens is this __btrfs_end_transaction with throttle set, --use_count so it equals 0 btrfs_commit_transaction btrfs_end_transaction --use_count so now its -1 <== BAD we just return and wait on the transaction This is bad because we just return after our use_count is -1 and don't let go of our num_writer count on the transaction, so the guy committing the transaction just sits there forever. Fix this by inc'ing our use_count if we're going to call commit_transaction so that if we call btrfs_end_transaction it's valid. Thanks, Signed-off-by: Josef Bacik Signed-off-by: Chris Mason commit a65917156e345946dbde3d7effd28124c6d6a8c2 Author: Chris Mason Date: Tue Jul 19 12:04:14 2011 -0400 Btrfs: stop using highmem for extent_buffers The extent_buffers have a very complex interface where we use HIGHMEM for metadata and try to cache a kmap mapping to access the memory. The next commit adds reader/writer locks, and concurrent use of this kmap cache would make it even more complex. This commit drops the ability to use HIGHMEM with extent buffers, and rips out all of the related code. Signed-off-by: Chris Mason commit 199c36eaa95077a47ae1bc55532fc0fbeb80cc95 Author: Miao Xie Date: Fri Jul 15 10:34:36 2011 +0000 Btrfs: fix BUG_ON() caused by ENOSPC when relocating space When we balanced the chunks across the devices, BUG_ON() in __finish_chunk_alloc() was triggered. ------------[ cut here ]------------ kernel BUG at fs/btrfs/volumes.c:2568! [SNIP] Call Trace: [] btrfs_alloc_chunk+0x8e/0xa0 [btrfs] [] do_chunk_alloc+0x330/0x3a0 [btrfs] [] btrfs_reserve_extent+0xb4/0x1f0 [btrfs] [] btrfs_alloc_free_block+0xdb/0x350 [btrfs] [] ? read_extent_buffer+0xd8/0x1d0 [btrfs] [] __btrfs_cow_block+0x14d/0x5e0 [btrfs] [] ? read_block_for_search+0x14d/0x4d0 [btrfs] [] btrfs_cow_block+0x10b/0x240 [btrfs] [] btrfs_search_slot+0x49e/0x7a0 [btrfs] [] btrfs_insert_empty_items+0x8d/0xf0 [btrfs] [] insert_with_overflow+0x43/0x110 [btrfs] [] btrfs_insert_dir_item+0xcd/0x1f0 [btrfs] [] ? map_extent_buffer+0xb0/0xc0 [btrfs] [] ? rb_insert_color+0x9d/0x160 [] ? inode_tree_add+0xf0/0x150 [btrfs] [] btrfs_add_link+0xc1/0x1c0 [btrfs] [] ? security_inode_init_security+0x1c/0x30 [] ? btrfs_init_acl+0x4a/0x180 [btrfs] [] btrfs_add_nondir+0x2f/0x70 [btrfs] [] ? btrfs_init_inode_security+0x46/0x60 [btrfs] [] btrfs_create+0x150/0x1d0 [btrfs] [] ? generic_permission+0x23/0xb0 [] vfs_create+0xa5/0xc0 [] do_last+0x5fe/0x880 [] path_openat+0xcd/0x3d0 [] do_filp_open+0x49/0xa0 [] ? alloc_fd+0x95/0x160 [] do_sys_open+0x107/0x1e0 [] ? audit_syscall_entry+0x1bf/0x1f0 [] sys_open+0x20/0x30 [] system_call_fastpath+0x16/0x1b [SNIP] RIP [] __finish_chunk_alloc+0x20a/0x220 [btrfs] The reason is: Task1 Space balance task do_chunk_alloc() __finish_chunk_alloc() update device info in the chunk tree alloc system metadata block relocate system metadata block group set system metadata block group readonly, This block group is the only one that can allocate space. So there is no free space that can be allocated now. find no space and don't try to alloc new chunk, and then return ENOSPC BUG_ON() in __finish_chunk_alloc() was triggered. Fix this bug by allocating a new system metadata chunk before relocating the old one if we find there is no free space which can be allocated after setting the old block group to be read-only. Reported-by: Tsutomu Itoh Signed-off-by: Miao Xie Tested-by: Tsutomu Itoh Signed-off-by: Chris Mason commit f7aaa06bff6f5fe049ce9723267e1639c2c3d8b5 Author: Josef Bacik Date: Fri Jul 15 21:26:38 2011 +0000 Btrfs: tag pages for writeback in sync Everybody else does this, we need to do it too. If we're syncing, we need to tag the pages we're going to write for writeback so we don't end up writing the same stuff over and over again if somebody is constantly redirtying our file. This will keep us from having latencies with heavy sync workloads. Thanks, Signed-off-by: Josef Bacik Signed-off-by: Chris Mason commit 9e0baf60dea69f31ac3b1adeb35b03b02a53e8e1 Author: Josef Bacik Date: Fri Jul 15 15:16:44 2011 +0000 Btrfs: fix enospc problems with delalloc So I had this brilliant idea to use atomic counters for outstanding and reserved extents, but this turned out to be a bad idea. Consider this where we have 1 outstanding extent and 1 reserved extent Reserver Releaser atomic_dec(outstanding) now 0 atomic_read(outstanding)+1 get 1 atomic_read(reserved) get 1 don't actually reserve anything because they are the same atomic_cmpxchg(reserved, 1, 0) atomic_inc(outstanding) atomic_add(0, reserved) free reserved space for 1 extent Then the reserver now has no actual space reserved for it, and when it goes to finish the ordered IO it won't have enough space to do it's allocation and you get those lovely warnings. Signed-off-by: Josef Bacik Signed-off-by: Chris Mason commit a5991428064e98c7367fe1c1686ea6a23fb6a4b3 Author: Josef Bacik Date: Fri Jul 15 16:01:03 2011 +0000 Btrfs: don't flush delalloc arbitrarily Kill the check to see if we have 512mb of reserved space in delalloc and shrink_delalloc if we do. This causes unexpected latencies and we have other logic to see if we need to throttle. Thanks, Signed-off-by: Josef Bacik Signed-off-by: Chris Mason commit a94733d0bc630edaedc6ca156752dd5a7cb82521 Author: Josef Bacik Date: Mon Jul 11 10:47:06 2011 -0400 Btrfs: use find_or_create_page instead of grab_cache_page grab_cache_page will use mapping_gfp_mask(), which for all inodes is set to GFP_HIGHUSER_MOVABLE. So instead use find_or_create_page in all cases where we need GFP_NOFS so we don't deadlock. Thanks, Signed-off-by: Josef Bacik commit bab39bf998133510f2dad08158006197ec0dabea Author: Josef Bacik Date: Thu Jun 30 14:42:28 2011 -0400 Btrfs: use a worker thread to do caching A user reported a deadlock when copying a bunch of files. This is because they were low on memory and kthreadd got hung up trying to migrate pages for an allocation when starting the caching kthread. The page was locked by the person starting the caching kthread. To fix this we just need to use the async thread stuff so that the threads are already created and we don't have to worry about deadlocks. Thanks, Reported-by: Roman Mamedov Signed-off-by: Josef Bacik commit 5fd00b031530cc476240f654c078c930f1dcd6ea Merge: 333c066bb76f1f270ca77f16afe198e54e352c83 3c2c22628599006047781946b317a16d9ff3883d Author: Linus Torvalds Date: Wed Jul 27 09:26:39 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/shaggy/jfs-2.6: jfs: clean up some compiler warnings commit 333c066bb76f1f270ca77f16afe198e54e352c83 Merge: 75623437167d9d1ef14acaf6b3fb4ccd38fcbc84 19237039919088781b4191a00bdc1284d8fea1dd Author: Linus Torvalds Date: Wed Jul 27 09:26:22 2011 -0700 Merge git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes: GFS2: Fix mount hang caused by certain access pattern to sysfs files commit 75623437167d9d1ef14acaf6b3fb4ccd38fcbc84 Merge: 70a3eff5768350c0313a9ae70a15da113171d0ab 636f78581dbd5529a52057973fe2bdfc1c2f528e Author: Linus Torvalds Date: Wed Jul 27 09:25:15 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6: (22 commits) ALSA: hda - Cirrus Logic CS421x support ALSA: Make pcm.h self-contained ALSA: hda - Allow codec-specific set_power_state ops ALSA: hda - Add post_suspend patch ops ALSA: hda - Make CONFIG_SND_HDA_POWER_SAVE depending on CONFIG_PM ALSA: hda - Make sure mute led reflects master mute state ALSA: hda - Fix invalid mute led state on resume of IDT codecs ASoC: Revert "ASoC: SAMSUNG: Add I2S0 internal dma driver" ALSA: hda - Add support of the 4 internal speakers on certain HP laptops ALSA: Make snd_pcm_debug_name usable outside pcm_lib ALSA: hda - Fix DAC filling for multi-connection pins in Realtek parser ASoC: dapm - Add methods to retrieve snd_card and soc_card from dapm context. ASoC: SAMSUNG: Add I2S0 internal dma driver ASoC: SAMSUNG: Modify I2S driver to support idma ASoC: davinci: add missing break statement ASoC: davinci: fix codec start and stop functions ASoC: dapm - add DAPM macro for external enum widgets ASoC: Acknowledge WM8962 interrupts before acting on them ASoC: sgtl5000: guide user when regulator support is needed ASoC: sgtl5000: refactor registering internal ldo ... commit 70a3eff5768350c0313a9ae70a15da113171d0ab Merge: 9ed3689bdceb0064ee6faf0e76f6467122794970 aa7eb8e78d8ecd6cd0475d86ea8385ff9cb47ece Author: Linus Torvalds Date: Wed Jul 27 09:24:56 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (53 commits) Input: synaptics - fix reporting of min coordinates Input: tegra-kbc - enable key autorepeat Input: kxtj9 - fix locking typo in kxtj9_set_poll() Input: kxtj9 - fix bug in probe() Input: intel-mid-touch - remove pointless checking for variable 'found' Input: hp_sdc - staticize hp_sdc_kicker() Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure Input: cy8ctmg110_ts - set reset_pin and irq_pin from platform data Input: cy8ctmg110_ts - constify i2c_device_id table Input: cy8ctmg110_ts - fix checking return value of i2c_master_send Input: lifebook - make dmi callback functions return 1 Input: atkbd - make dmi callback functions return 1 Input: gpio_keys - switch to using SIMPLE_DEV_PM_OPS Input: gpio_keys - add support for device-tree platform data Input: aiptek - remove double define Input: synaptics - set minimum coordinates as reported by firmware Input: synaptics - process button bits in AGM packets Input: synaptics - rename set_slot to be more descriptive Input: synaptics - fuzz position for touchpad with reduced filtering Input: synaptics - set resolution for MT_POSITION_X/Y axes ... commit 9ed3689bdceb0064ee6faf0e76f6467122794970 Merge: 8aae36cdf12313cd9cc0e4799fe1ea64d3c623f3 363922946f96ad1d6420107ebcfa9a95b659fe75 Author: Linus Torvalds Date: Wed Jul 27 09:24:20 2011 -0700 Merge branch 'next' of git://git.monstr.eu/linux-2.6-microblaze * 'next' of git://git.monstr.eu/linux-2.6-microblaze: microblaze: Do not show error message for 32 interrupt lines Revert "microblaze: PCI fix typo fault in of_node pointer moving into pci_bus" microblaze: PCI fix typo fault in of_node pointer moving into pci_bus microblaze: Add support for early console on mdm microblaze: Simplify early console binding from DT microblaze: Get early printk console earlier microblaze: Standardise cpuinfo output for cache policy microblaze: Unprivileged stream instruction awareness microblaze: trivial: Fix typo fault microblaze: exec: Remove redundant set_fs(USER_DS) microblaze: Remove duplicated prototype of start_thread() microblaze: Fix unaligned value saving to the stack for system with MMU microblaze/irqs: Do not trace arch_local_{*,irq_*} functions commit 8aae36cdf12313cd9cc0e4799fe1ea64d3c623f3 Author: Daniel Morsing Date: Wed Jul 27 13:53:28 2011 +0200 staging: brcm80211: Fix double include introduced by bad merge A merge with Linus' tree added a double include of linux/interrupt.h. Fix by removing one of the includes. Signed-off-by: Daniel Morsing Signed-off-by: Linus Torvalds commit c48a8fb0d31d6147d8d76b8e2ad7f51a2fbb5c4d Author: Takashi Iwai Date: Wed Jul 27 16:41:57 2011 +0200 ALSA: hda - Fix duplicated DAC assignments for Realtek Copying hp_pins and speaker_pins from line_out_pins may confuse the parser, and it can lead to duplicated initializations for the same pin with a wrong DAC assignment. The problem appears in 3.0 kernel code. Cc: (for 3.0) Signed-off-by: Takashi Iwai commit ae6ff61e43fe4f348a7f764ff0c13fb4240da7b8 Author: Dan Carpenter Date: Wed Jul 27 15:02:26 2011 +0300 ALSA: asihpi - off by one in asihpi_hpi_ioctl() "adapter" is used as an array index in the adapters[] array so the off by one would make us read past the end. 1c073b67979 "ALSA: asihpi - Remove spurious adapter index check" reverted Dan Rosenberg's check that would have prevented the overflow here. Signed-off-by: Dan Carpenter Signed-off-by: Takashi Iwai commit 60a6a8425a84fa46a3831ce79197640b8224311b Author: Takashi Iwai Date: Wed Jul 27 14:01:24 2011 +0200 ALSA: hda - Fix Oops with Realtek quirks with NULL adc_nids Somce quirk models don't set adc_nids but let the parser filling it. But the recent code has unnecessary NULL-checks of spec->input_mux, and it resulted in NULL dereferences. This patch fixes that regression. Reported-and-tested-by: Oliver Neukum Signed-off-by: Takashi Iwai commit 17dd759c67f21e34f2156abcf415e1f60605a188 Author: Herbert Xu Date: Wed Jul 27 06:16:28 2011 -0700 gro: Only reset frag0 when skb can be pulled Currently skb_gro_header_slow unconditionally resets frag0 and frag0_len. However, when we can't pull on the skb this leaves the GRO fields in an inconsistent state. This patch fixes this by only resetting those fields after the pskb_may_pull test. Signed-off-by: Herbert Xu Signed-off-by: David S. Miller commit 363922946f96ad1d6420107ebcfa9a95b659fe75 Author: Michal Simek Date: Wed Jul 27 10:45:32 2011 +0200 microblaze: Do not show error message for 32 interrupt lines When interrupt controller uses 32 interrupts lines the kernel show error message about mismatch in kind-of-intr parameter because it exceeds u32. Recast fixs this issue. Signed-off-by: Michal Simek commit 767cd365b22820df07b962b49ce04b220b98e537 Author: Eliot Blennerhassett Date: Wed Jul 27 20:03:51 2011 +1200 ALSA: asihpi - bug fix pa use before init. Fixes bug introduced by 1c073b67. Also declare pa local to block in which it is used. Signed-off-by: Eliot Blennerhassett Signed-off-by: Takashi Iwai commit aa7eb8e78d8ecd6cd0475d86ea8385ff9cb47ece Merge: cca8edfd2ec2a34d9f50f593bc753bb11e1bc1f5 3c6b50141ef9f0a8844bf1357b80c0cdf518bf05 Author: Dmitry Torokhov Date: Wed Jul 27 00:54:47 2011 -0700 Merge branch 'next' into for-linus commit 45eebda7b4a73deb268b0cbcde06b603a2ba46a2 Author: Vitaliy Kulikov Date: Tue Jul 26 16:56:20 2011 -0500 ALSA: hda - Add support for vref-out based mute LED control on IDT codecs This patch also registers all necessary callbacks to support mute LED only when such control is enabled. And it keeps codec AFG in D0 or D1 state all the time when aggressive power managemnt is enabled for vref-out control (and mute LED) work correctly. Signed-off-by: Vitaliy Kulikov Signed-off-by: Takashi Iwai commit e371d46ae45488bcb112a99a7de462e9e3aa6764 Merge: b0189cd087aa82bd23277cb5c8960ab030e13e5c e57712ebebbb9db7d8dcef216437b3171ddcf115 Author: Linus Torvalds Date: Tue Jul 26 18:30:20 2011 -0700 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6 * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: merge fchmod() and fchmodat() guts, kill ancient broken kludge xfs: fix misspelled S_IS...() xfs: get rid of open-coded S_ISREG(), etc. vfs: document locking requirements for d_move, __d_move and d_materialise_unique omfs: fix (mode & S_IFDIR) abuse btrfs: S_ISREG(mode) is not mode & S_IFREG... ima: fmode_t misspelled as mode_t... pci-label.c: size_t misspelled as mode_t jffs2: S_ISLNK(mode & S_IFMT) is pointless snd_msnd ->mode is fmode_t, not mode_t v9fs_iop_get_acl: get rid of unused variable vfs: dont chain pipe/anon/socket on superblock s_inodes list Documentation: Exporting: update description of d_splice_alias fs: add missing unlock in default_llseek() commit 768e587e18c1c4ce0403b9532115752189422408 Author: Jonathan Brassow Date: Wed Jul 27 11:00:37 2011 +1000 MD: generate an event when array sync is complete This patch causes MD to generate an event (for device-mapper) when the synchronization thread is reaped. This is expected behavior for device-mapper. Signed-off-by: Jonathan Brassow Signed-off-by: NeilBrown commit 3520fa4db7fc4ae1b0373dcecdaf720f620dab2d Author: Jonathan Brassow Date: Wed Jul 27 11:00:37 2011 +1000 MD bitmap: Revert DM dirty log hooks Revert most of commit e384e58549a2e9a83071ad80280c1a9053cfd84c md/bitmap: prepare for storing write-intent-bitmap via dm-dirty-log. MD should not need to use DM's dirty log - we decided to use md's bitmaps instead. Keeping the DIV_ROUND_UP clean-ups that were part of commit e384e58549a2e9a83071ad80280c1a9053cfd84c, however. Signed-off-by: Jonathan Brassow Signed-off-by: NeilBrown commit 654e8b5abc0a793f0c029128db6e4804691a383e Author: Jonathan Brassow Date: Wed Jul 27 11:00:36 2011 +1000 MD: raid1 s/sysfs_notify_dirent/sysfs_notify_dirent_safe If device-mapper creates a RAID1 array that includes devices to be rebuilt, it will deref a NULL pointer when finished because sysfs is not used by device-mapper instantiated RAID devices. Signed-off-by: Jonathan Brassow Signed-off-by: NeilBrown commit 8cfa7b0f67b4d899efc7f39eb7e172fd79237811 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: Avoid BUG caused by multiple failures. While preparing to write a stripe we keep the parity block or blocks locked (R5_LOCKED) - towards the end of schedule_reconstruction. If the array is discovered to have failed before this write completes we can leave those blocks LOCKED, and init_stripe will notice that a free stripe still has a locked block and will complain. So clear the R5_LOCKED flag in handle_failed_stripe, and demote the 'BUG' to a 'WARN_ON'. Signed-off-by: NeilBrown commit cbea21703b2484f83faef040ed1de30114794392 Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md/raid10: move rdev->corrected_errors counting Read errors are considered to corrected if write-back and re-read cycle is finished without further problems. Thus moving the rdev-> corrected_errors counting after the re-reading looks more reasonable IMHO. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit ddd5115fe5594f5aae3c7f0008a5327bb1d19397 Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: move rdev->corrected_errors counting Read errors are considered to corrected if write-back and re-read cycle is finished without further problems. Thus moving the rdev-> corrected_errors counting after the re-reading looks more reasonable IMHO. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 9d3d80113df824a266c5db3fac357a036ebc0b62 Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md/raid1: move rdev->corrected_errors counting Read errors are considered to corrected if write-back and re-read cycle is finished without further problems. Thus moving the rdev-> corrected_errors counting after the re-reading looks more reasonable IMHO. Also included a couple of whitespace fixes on sync_page_io(). Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 65a06f06744d3deae61f3596566952a8da92199f Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md: get rid of unnecessary casts on page_address() page_address() returns void pointer, so the casts can be removed. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 700c72138938cf428c74379806886c6b017d6295 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid10: Improve decision on whether to fail a device with a read error. Normally we would fail a device with a READ error. However if doing so causes the array to fail, it is better to leave the device in place and just return the read error to the caller. The current test for decide if the array will fail is overly simplistic. We have a function 'enough' which can tell if the array is failed or not, so use it to guide the decision. Signed-off-by: NeilBrown commit 2bb77736ae5dca0a189829fbb7379d43364a9dac Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid10: Make use of new recovery_disabled handling When we get a read error during recovery, RAID10 previously arranged for the recovering device to appear to fail so that the recovery stops and doesn't restart. This is misleading and wrong. Instead, make use of the new recovery_disabled handling and mark the target device and having recovery disabled. Add appropriate checks in add_disk and remove_disk so that devices are removed and not re-added when recovery is disabled. Signed-off-by: NeilBrown commit 5389042ffa36976caa45a79af16081d759001fa7 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md: change managed of recovery_disabled. If we hit a read error while recovering a mirror, we want to abort the recovery without necessarily failing the disk - as having a disk this a read error is better than not having an array at all. Currently this is managed with a per-array flag "recovery_disabled" and is only implemented for RAID1. For RAID10 we will need finer grained control as we might want to disable recovery for individual devices separately. So push more of the decision making into the personality. 'recovery_disabled' is now a 'cookie' which is copied when the personality want to disable recovery and is changed when a device is added to the array as this is used as a trigger to 'try recovery again'. This will allow RAID10 to get the control that it needs. Signed-off-by: NeilBrown commit a478a069b6adf186373a6648c54fc5f1d3c2f8eb Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md: remove ro check in md_check_recovery() Commit c89a8eee6154 ("Allow faulty devices to be removed from a readonly array.") added some work on ro array in the function, but it couldn't be done since we didn't allow the ro array to be handled from the beginning. Fix it. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 36fad858a7404a9656122a9e560a224ae2a00979 Author: Namhyung Kim Date: Wed Jul 27 11:00:36 2011 +1000 md: introduce link/unlink_rdev() helpers There are places where sysfs links to rdev are handled in a same way. Add the helper functions to consolidate them. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 8bda470e8ebde35f9349e98ecbce4dfb508a60fa Author: Christian Dietrich Date: Wed Jul 27 11:00:36 2011 +1000 md/raid: use printk_ratelimited instead of printk_ratelimit As per printk_ratelimit comment, it should not be used. Signed-off-by: Christian Dietrich Signed-off-by: NeilBrown commit a0a02a7ad62b5615b17294c2075e4916f8d1f0a4 Author: Akinobu Mita Date: Wed Jul 27 11:00:36 2011 +1000 md: use proper little-endian bitops Using __test_and_{set,clear}_bit_le() with ignoring its return value can be replaced with __{set,clear}_bit_le(). Signed-off-by: Akinobu Mita Cc: NeilBrown Cc: linux-raid@vger.kernel.org Signed-off-by: NeilBrown commit acfe726bdd0000a9be1b308b29fad1e9ae62178c Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: finalise new merged handle_stripe. handle_stripe5() and handle_stripe6() are now virtually identical. So discard one and rename the other to 'analyse_stripe()'. It always returns 0, so change it to 'void' and remove the 'done' variable in handle_stripe(). Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 474af965fe0005b334cabdb2904a7d712c21489b Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: move some more common code into handle_stripe The RAID6 version of this code is usable for RAID5 providing: - we test "conf->max_degraded" rather than "2" as appropriate - we make sure s->failed_num[1] is meaningful (and not '-1') when s->failed > 1 The 'return 1' must become 'goto finish' in the new location. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 84789554e96c0263ad8aa9be91397ece1f88c768 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: move more common code into handle_stripe Apart from 'prexor' which can only be set for RAID5, and 'qd_idx' which can only be meaningful for RAID6, these two chunks of code are nearly the same. So combine them into one adding a test to call either handle_parity_checks5 or handle_parity_checks6 as appropriate. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit c8ac1803ff0af5aa614587ac0c66d46b7a3bdfcc Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: unite handle_stripe_dirtying5 and handle_stripe_dirtying6 RAID6 is only allowed to choose 'reconstruct-write' while RAID5 is also allow 'read-modify-write' Apart from this difference, handle_stripe_dirtying[56] are nearly identical. So resolve these differences and create just one function. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 93b3dbce6456a79c545b45e86ccc2244e923cc99 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: unite fetch_block5 and fetch_block6 Provided that ->failed_num[1] is not a valid device number (which is easily achieved) fetch_block6 provides all the functionality of fetch_block5. So remove the latter and rename the former to simply "fetch_block". Then handle_stripe_fill5 and handle_stripe_fill6 become the same and can similarly be united. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 5d35e09cae47bbae2739f432658860680de21866 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: rearrange a test in fetch_block6. Next patch will unite fetch_block5 and fetch_block6. First I want to make the differences a little more clear. For RAID6 if we are writing at all and there is a failed device, then we need to load or compute every block so we can do a reconstruct-write. This case isn't needed for RAID5 - we will do a read-modify-write in that case. So make that test a separate test in fetch_block6 rather than merged with two other tests. Make a similar change in fetch_block5 so the one bit that is not needed for RAID6 is clearly separate. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit c5a3100062cf277d3edd4e6f4a1f1e403524b464 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: move more code into common handle_stripe The difference between the RAID5 and RAID6 code here is easily resolved using conf->max_degraded. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 3687c061886dd0bfec07e131ad12f916ef0abc62 Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: Move code for finishing a reconstruction into handle_stripe. Prior to commit ab69ae12ceef7 the code in handle_stripe5 and handle_stripe6 to "Finish reconstruct operations initiated by the expansion process" was identical. That commit added an identical stanza of code to each function, but in different places. That was careless. The raid5 code was correct, so move that out into handle_stripe and remove raid6 version. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 86c374ba9f6726a79a032ede741dc66d219b166e Author: NeilBrown Date: Wed Jul 27 11:00:36 2011 +1000 md/raid5: Remove stripe_head_state arg from handle_stripe_expansion. This arg is only used to differentiate between RAID5 and RAID6 but that is not needed. For RAID5, raid5_compute_sector will set qd_idx to "~0" so j with certainly not equals qd_idx, so there is no need for a guard on that condition. So remove the guard and remove the arg from the declaration and callers of handle_stripe_expansion. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit e5036c2575b244851637a81efc4104c076c4fa21 Merge: 41bf37117b47fc5ce2aae91f6a108e7e42e0b046 5bc91db8933bce07c3af86da2bd956414aa5a725 Author: John W. Linville Date: Tue Jul 26 17:05:55 2011 -0400 Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem commit 5bc91db8933bce07c3af86da2bd956414aa5a725 Author: Mihai Moldovan Date: Mon Jul 25 11:18:58 2011 +0200 wireless: fix a typo in ignore_reg_update Just a typo fix changing regulaotry to regulatory. Signed-off-by: Mihai Moldovan CC: John W. Linville CC: Mohammed Shafi Signed-off-by: John W. Linville commit e61b52d1309df08b86a35e54a61f0cc932b28291 Author: Pavel Roskin Date: Fri Jul 22 18:07:13 2011 -0400 b43: fix invalid memory access in b43_ssb_remove() wldev is freed in b43_one_core_detach() and should not be accessed after that call. Keep wldev->dev in a local variable. Signed-off-by: Pavel Roskin Signed-off-by: John W. Linville commit 6f89062a66d8b88ca89a15a6cebc0bc0db284441 Author: Rafał Miłecki Date: Fri Jul 22 13:11:05 2011 +0200 b43: bcma: drop BROKEN We've fixed the last issue with BCMA support which caused memory corruption on loading and unloading b43. Support for BCMA in b43 was tested with 14e4:4353, 14e4:4357, 14e4:4727 and 14e4:4331. First two cards (BCM43224 and BCM43225) are supported. Signed-off-by: Rafał Miłecki Signed-off-by: John W. Linville commit f76f424353e678f904c6c13f997851efb6077419 Author: Rafał Miłecki Date: Fri Jul 22 13:11:04 2011 +0200 b43: bus: fix memory corruption when setting driver's data Fixes bug described in: https://bugzilla.kernel.org/show_bug.cgi?id=39172 Signed-off-by: Rafał Miłecki Signed-off-by: John W. Linville commit a203c2aa4cefccb879c879b8e1cad1a09a679e55 Author: Sven Neumann Date: Tue Jul 12 15:52:07 2011 +0200 cfg80211: really ignore the regulatory request At the beginning of wiphy_update_regulatory() a check is performed whether the request is to be ignored. Then the request is sent to the driver nevertheless. This happens even if last_request points to NULL, leading to a crash in the driver: [] (lbs_set_11d_domain_info+0x28/0x1e4 [libertas]) from [] (wiphy_update_regulatory+0x4d0/0x4f4) [] (wiphy_update_regulatory+0x4d0/0x4f4) from [] (wiphy_register+0x354/0x420) [] (wiphy_register+0x354/0x420) from [] (lbs_cfg_register+0x80/0x164 [libertas]) [] (lbs_cfg_register+0x80/0x164 [libertas]) from [] (lbs_start_card+0x20/0x88 [libertas]) [] (lbs_start_card+0x20/0x88 [libertas]) from [] (if_sdio_probe+0x898/0x9c0 [libertas_sdio]) Fix this by returning early. Also remove the out: label as it is not any longer needed. Signed-off-by: Sven Neumann Cc: linux-wireless@vger.kernel.org Cc: Johannes Berg Cc: Daniel Mack Cc: stable@kernel.org Signed-off-by: John W. Linville commit 276556dbd2d9f56f8933393f927e88fae142ce8f Author: Dan Carpenter Date: Fri Jul 8 10:21:15 2011 +0300 NFC: pn533: use after free in pn533_disconnect() We freed "dev" on the line before. Signed-off-by: Dan Carpenter Signed-off-by: John W. Linville commit e57712ebebbb9db7d8dcef216437b3171ddcf115 Author: Al Viro Date: Tue Jul 26 04:15:54 2011 -0400 merge fchmod() and fchmodat() guts, kill ancient broken kludge The kludge in question is undocumented and doesn't work for 32bit binaries on amd64, sparc64 and s390. Passing (mode_t)-1 as mode had (since 0.99.14v and contrary to behaviour of any other Unix, prescriptions of POSIX, SuS and our own manpages) was kinda-sorta no-op. Note that any software relying on that (and looking for examples shows none) would be visibly broken on sparc64, where practically all userland is built 32bit. No such complaints noticed... Signed-off-by: Al Viro commit 03209378b4b25775bf5e6a86e86f074a1057a439 Author: Al Viro Date: Mon Jul 25 20:54:24 2011 -0400 xfs: fix misspelled S_IS...() mode_t is not a bitmap... Signed-off-by: Al Viro commit abbede1b3a680e108d61aaa415ce5153296e775d Author: Al Viro Date: Tue Jul 26 02:31:30 2011 -0400 xfs: get rid of open-coded S_ISREG(), etc. Signed-off-by: Al Viro commit c46c887744b330795eba55fdb96343c36d481765 Author: Jeff Layton Date: Tue Jul 26 13:33:16 2011 -0400 vfs: document locking requirements for d_move, __d_move and d_materialise_unique Adding a comment to d_materialise_unique per Al's request... d_move and __d_move have some pretty substantial locking requirements, but they are not clearly documented. Add some comments spelling them out. Also, document the requirement for the i_mutex of the parent in d_materialise_unique. Cc: Al Viro Signed-off-by: Jeff Layton Signed-off-by: Al Viro commit 41c96486f238e6a545f52215f95fe69748abf603 Author: Al Viro Date: Tue Jul 26 02:34:33 2011 -0400 omfs: fix (mode & S_IFDIR) abuse granted, on a filesystem that has only regular files and directories it happens to work, but really should be S_ISDIR(mode)... Signed-off-by: Al Viro commit 569254b0cc4e125ffde48780b215ecaf5f72bbf4 Author: Al Viro Date: Sun Jul 24 17:08:40 2011 -0400 btrfs: S_ISREG(mode) is not mode & S_IFREG... Signed-off-by: Al Viro commit 4b2a2c67415f1ab128f1d0b340fe6d13363335e5 Author: Al Viro Date: Tue Jul 26 04:30:35 2011 -0400 ima: fmode_t misspelled as mode_t... Signed-off-by: Al Viro commit ed476418394f12d47f27a75424c237a94d244f10 Author: Al Viro Date: Sun Jul 24 23:31:06 2011 -0400 pci-label.c: size_t misspelled as mode_t no, really, strlen() and snprintf() do not return mode_t values... Signed-off-by: Al Viro commit 61effb519cbf0b2973c65070a890fabfcbf84756 Author: Al Viro Date: Sun Jul 24 17:11:33 2011 -0400 jffs2: S_ISLNK(mode & S_IFMT) is pointless it's S_ISLNK(mode), TYVM... Signed-off-by: Al Viro commit da404dc0b1fe76b06a8d094e3ef1af9ec8252cec Author: Al Viro Date: Tue Jul 26 04:35:42 2011 -0400 snd_msnd ->mode is fmode_t, not mode_t we put FMODE_... in there Signed-off-by: Al Viro commit 24a01d4ee4ee9196c1acc58c64dc216ba2578f1f Author: Al Viro Date: Tue Jul 26 12:57:42 2011 -0400 v9fs_iop_get_acl: get rid of unused variable Signed-off-by: Al Viro commit a209dfc7b0d94bd6fa94553c097836a2e6d0f0ba Author: Eric Dumazet Date: Tue Jul 26 11:36:34 2011 +0200 vfs: dont chain pipe/anon/socket on superblock s_inodes list Workloads using pipes and sockets hit inode_sb_list_lock contention. superblock s_inodes list is needed for quota, dirty, pagecache and fsnotify management. pipe/anon/socket fs are clearly not candidates for these. Signed-off-by: Eric Dumazet Reviewed-by: Christoph Hellwig Signed-off-by: Al Viro commit 5b9f4567726513a359e70f85029482c7c3714dbd Author: Phillip Lougher Date: Tue Jul 26 03:40:45 2011 +0100 Documentation: Exporting: update description of d_splice_alias Following commits a904937 and 0c1aa9a update the d_splice_alias desciption. Signed-off-by: Phillip Lougher Signed-off-by: Al Viro commit bacb2d816c77edefd464d6bcc04c07f92109bd7d Author: Dan Carpenter Date: Tue Jul 26 17:25:20 2011 +0300 fs: add missing unlock in default_llseek() A recent change in linux-next, 982d816581 "fs: add SEEK_HOLE and SEEK_DATA flags" added some direct returns on error, but it should have been a goto out. Signed-off-by: Dan Carpenter Signed-off-by: Al Viro commit 636f78581dbd5529a52057973fe2bdfc1c2f528e Merge: 56487c279fe9fc23c5f15e2b935eb896ab7ba280 a0c27ab2421c47dc7c53f797fffcc0d17cdb122c Author: Takashi Iwai Date: Tue Jul 26 17:47:05 2011 +0200 Merge branch 'fix/asoc' into for-linus commit 56487c279fe9fc23c5f15e2b935eb896ab7ba280 Author: Tim Howe Date: Fri Jul 22 16:41:00 2011 -0500 ALSA: hda - Cirrus Logic CS421x support This update includes the changes necessary for supporting the CS421x family of codecs. Previously this file only supported the CS420x family of codecs. This file also contains init verbs to correct several issues in the CS421x hardware. Behavior between the CS421x and CS420x codec families is similar, so several functions have been reused with "if" statements to determine which codec family (CS421x or CS420x) is present. Also, this file will be updated sometime in the near future in order to add support for a system using CS421x that requires mono mix on the speaker output only. [Fix const usages and adaption for new APIs by tiwai] Signed-off-by: Tim Howe Signed-off-by: Takashi Iwai commit b51beb756aaf0770e4fa8bb2cb142888051aa356 Author: Takashi Iwai Date: Tue Jul 26 12:02:56 2011 +0200 ALSA: Make pcm.h self-contained Move the macros depending on snd_mask_min() and co out of pcm.h into pcm_params.h. Otherwise using some params_*() macros will give comiple errors without inclusion of pcm_params.h. Also use hw_param_interval_c() and hw_param_mask_c() for const pointer. Reported-by: Tim Blechmann Signed-off-by: Takashi Iwai commit 4d7fbdbcb1d563b1822c74da3c9e4aa4523d8d6d Author: Takashi Iwai Date: Tue Jul 26 10:33:10 2011 +0200 ALSA: hda - Allow codec-specific set_power_state ops The procedure for codec D-state change may have exceptional cases depending on the codec chip, such as a longer delay or suppressing D3. This patch adds a new codec ops, set_power_state() to override the system default function. For ease of porting, snd_hda_codec_set_power_to_all() helper function is extracted from the default set_power_state() function. As an example, the Conexant codec-specific delay is removed from the default routine but moved to patch_conexant.c. Signed-off-by: Takashi Iwai commit e581f3dba509f6d48e4939aa70e9b768aa5fd4f3 Author: Takashi Iwai Date: Tue Jul 26 10:19:20 2011 +0200 ALSA: hda - Add post_suspend patch ops Add a new ops, post_suspend(), which is called after suspend() ops is performed. This is called only in the case of the real PM suspend, and the codec driver can use this for further changing of D-state or clearing the LED, etc. Signed-off-by: Takashi Iwai commit 2a43952a99072f43c92355882b7965c8762ae3f3 Author: Takashi Iwai Date: Tue Jul 26 09:52:50 2011 +0200 ALSA: hda - Make CONFIG_SND_HDA_POWER_SAVE depending on CONFIG_PM It makes little sense to enable power-saving without PM. This removes SND_HDA_NEEDS_RESUME define so that we can use CONFIG_PM in all places. Signed-off-by: Takashi Iwai commit 277c5f27a2c86a9a733c0ec0f6a9b1032dfa3e15 Author: Nicholas Bellinger Date: Tue Jul 26 00:38:40 2011 -0700 target: Convert to DIV_ROUND_UP_SECTOR_T usage for sectors / dev_max_sectors This patch adds the new macro usage of include/linux/kernel.h:DIV_ROUND_UP_SECTOR_T for the new DIV_ROUND_UP_ULL() usage for 32-bit architectures with unsigned long long sector_t division in transport_allocate_data_tasks() usage for target_core_mod v4.1 Reported-by: Andrew Morton Signed-off-by: Nicholas A. Bellinger commit 6dbd3085c3c3a53dfa4491ebcbf7847955b16f26 Author: Michal Simek Date: Tue Jul 26 11:24:56 2011 +0200 Revert "microblaze: PCI fix typo fault in of_node pointer moving into pci_bus" This reverts commit c9d761b7c4b658a937a941aea2781f511a0ff3ec. Ben' commit "microblaze/pci: Move the remains of pci_32.c to pci-common.c" (sha1: bf13a6fa09b8db7f1fd59b5e2ed3674a89a6a25c) completely removed pci_32.c that's why my fixing commit caused the problem with merging and need to be revert. Signed-off-by: Michal Simek commit 19237039919088781b4191a00bdc1284d8fea1dd Author: Steven Whitehouse Date: Tue Jul 26 09:15:45 2011 +0100 GFS2: Fix mount hang caused by certain access pattern to sysfs files Depending upon the order of userspace/kernel during the mount process, this can result in a hang without the _all version of the completion. Signed-off-by: Steven Whitehouse commit 36a26c69b4c70396ef569c3452690fba0c1dec08 Author: Nicholas Bellinger Date: Tue Jul 26 00:35:26 2011 -0700 kernel.h: Add DIV_ROUND_UP_ULL and DIV_ROUND_UP_SECTOR_T macro usage Add new DIV_ROUND_UP_SECTOR_T macro usage for 32-bit architectures requiring a new DIV_ROUND_UP_ULL, and existing 64-bit usage with DIV_ROUND_UP. Reported-by: Linus Torvalds Reported-by: Andrew Morton Signed-off-by: Nicholas A. Bellinger commit e48354ce078c079996f89d715dfa44814b4eba01 Author: Nicholas Bellinger Date: Sat Jul 23 06:43:04 2011 +0000 iscsi-target: Add iSCSI fabric support for target v4.1 The Linux-iSCSI.org target module is a full featured in-kernel software implementation of iSCSI target mode (RFC-3720) for the current WIP mainline target v4.1 infrastructure code for the v3.1 kernel. More information can be found here: http://linux-iscsi.org/wiki/ISCSI This includes support for: * RFC-3720 defined request / response state machines and support for all defined iSCSI operation codes from Section 10.2.1.2 using libiscsi include/scsi/iscsi_proto.h PDU definitions * Target v4.1 compatible control plane using the generic layout in target_core_fabric_configfs.c and fabric dependent attributes within /sys/kernel/config/target/iscsi/ subdirectories. * Target v4.1 compatible iSCSI statistics based on RFC-4544 (iSCSI MIBS) * Support for IPv6 and IPv4 network portals in M:N mapping to TPGs * iSCSI Error Recovery Hierarchy support * Per iSCSI connection RX/TX thread pair scheduling affinity * crc32c + crc32c_intel SSEv4 instruction offload support using libcrypto * CHAP Authentication support using libcrypto * Conversion to use internal SGl allocation with iscsit_alloc_buffs() -> transport_generic_map_mem_to_cmd() (nab: Fix iscsi_proto.h struct scsi_lun usage from linux-next in commit: iscsi: Use struct scsi_lun in iscsi structs instead of u8[8]) (nab: Fix 32-bit compile warnings) Reviewed-by: Christoph Hellwig Reviewed-by: Andy Grover Acked-by: Roland Dreier Signed-off-by: Nicholas A. Bellinger commit 7df1ce1a8197a4afec78584f56e74ab84dcab97c Author: Vitaliy Kulikov Date: Mon Jul 25 17:52:57 2011 -0500 ALSA: hda - Make sure mute led reflects master mute state This patch adds checking of mute state on all outputs besides just speakers to calculate the master mute state for mute led support. It also renames and splits the function that does it for better code clarity. Signed-off-by: Vitaliy Kulikov Signed-off-by: Takashi Iwai commit d02667e6206fb3be0990c38af8447a4ed2b74c11 Author: Vitaliy Kulikov Date: Fri Jul 22 18:18:15 2011 -0500 ALSA: hda - Fix invalid mute led state on resume of IDT codecs Codec state is not restored immediately on resume but on the first access when power-save is enabled. That leads to an invalid mute led state after resume until either sound is played or some control is changed. This patch adds a possibility for a vendor specific patch to restore codec state immediately after resume if required. And it adds code to restore IDT codecs state immediately on resume on HP systems with mute led support. Signed-off-by: Vitaliy Kulikov Signed-off-by: Takashi Iwai commit cc94015a9eac5d511fe9b716624d8fdf9c6e64b2 Author: NeilBrown Date: Tue Jul 26 11:35:35 2011 +1000 md/raid5: move stripe_head_state and more code into handle_stripe. By defining the 'stripe_head_state' in 'handle_stripe', we can move some common code out of handle_stripe[56]() and into handle_stripe. The means that all accesses for stripe_head_state in handle_stripe[56] need to be 's->' instead of 's.', but the compiler should inline those functions and just use a direct stack reference, and future patches while hoist most of this code up into handle_stripe() so we will revert to "s.". Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit c5709ef6a094c72b56355590bfa55cc107e98376 Author: NeilBrown Date: Tue Jul 26 11:35:20 2011 +1000 md/raid5: add some more fields to stripe_head_state Adding these three fields will allow more common code to be moved to handle_stripe() struct field rearrangement by Namhyung Kim. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit f2b3b44deee1524ca4f006048e0569f47eefdb74 Author: NeilBrown Date: Tue Jul 26 11:35:19 2011 +1000 md/raid5: unify stripe_head_state and r6_state 'struct stripe_head_state' stores state about the 'current' stripe that is passed around while handling the stripe. For RAID6 there is an extension structure: r6_state, which is also passed around. There is no value in keeping these separate, so move the fields from the latter into the former. This means that all code now needs to treat s->failed_num as an small array, but this is a small cost. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 82e5a1718b9d0401b826341b9023766d04cb82f2 Author: NeilBrown Date: Tue Jul 26 11:35:15 2011 +1000 md/raid5: move common code into handle_stripe There is common code at the start of handle_stripe5 and handle_stripe6. Move it into handle_stripe. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit c4c1663be46b2ab94e59d3e0c583a8f6b188ff0c Author: NeilBrown Date: Tue Jul 26 11:34:20 2011 +1000 md/raid5: replace sh->lock with an 'active' flag. sh->lock is now mainly used to ensure that two threads aren't running in the locked part of handle_stripe[56] at the same time. That can more neatly be achieved with an 'active' flag which we set while running handle_stripe. If we find the flag is set, we simply requeue the stripe for later by setting STRIPE_HANDLE. For safety we take ->device_lock while examining the state of the stripe and creating a summary in 'stripe_head_state / r6_state'. This possibly isn't needed but as shared fields like ->toread, ->towrite are checked it is safer for now at least. We leave the label after the old 'unlock' called "unlock" because it will disappear in a few patches, so renaming seems pointless. This leaves the stripe 'locked' for longer as we clear STRIPE_ACTIVE later, but that is not a problem. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit cbe47ec559c33a68b5ee002051b848d1531a8adb Author: NeilBrown Date: Tue Jul 26 11:20:35 2011 +1000 md/raid5: Protect some more code with ->device_lock. Other places that change or follow dev->towrite and dev->written take the device_lock as well as the sh->lock. So it should really be held in these places too. Also, doing so will allow sh->lock to be discarded. with merged fixes by: Namhyung Kim Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 83206d66b65118d995c38746f21edc2bb8564b49 Author: NeilBrown Date: Tue Jul 26 11:19:49 2011 +1000 md/raid5: Remove use of sh->lock in sync_request This is the start of a series of patches to remove sh->lock. sync_request takes sh->lock before setting STRIPE_SYNCING to ensure there is no race with testing it in handle_stripe[56]. Instead, use a new flag STRIPE_SYNC_REQUESTED and test it early in handle_stripe[56] (after getting the same lock) and perform the same set/clear operations if it was set. Signed-off-by: NeilBrown Reviewed-by: Namhyung Kim commit 29412f0f6a19e34336368f13eab848091c343952 Author: Stefan Berger Date: Fri Jul 22 17:39:20 2011 -0400 tpm_nsc: Fix bug when loading multiple TPM drivers This patch fixes kernel bugzilla 34572. https://bugzilla.kernel.org/show_bug.cgi?id=34572 Signed-off-by: Stefan Berger Reported-by: Witold Baryluk Tested-by: Witold Baryluk Signed-off-by: James Morris commit 2d348d1f569f051d2609b04d27bb55cd25eda8fe Author: Joe Perches Date: Mon Jul 25 16:17:35 2011 -0700 net: Convert struct net_device uc_promisc to bool No need to use int, its uses are boolean. May save a few bytes one day. Signed-off-by: Joe Perches Signed-off-by: David S. Miller commit 48daec034b2669c634983d0435beac41190b4c91 Author: Randy Dunlap Date: Mon Jul 25 16:17:01 2011 -0700 net: fix eth.c kernel-doc warning From: Randy Dunlap Fix new kernel-doc warning in eth.c: Warning(net/ethernet/eth.c:237): No description found for parameter 'type' Signed-off-by: Randy Dunlap Signed-off-by: David S. Miller commit b76d0789c92a816a5539dc14232a700b8d62a53a Author: Zoltan Kiss Date: Sun Jul 24 13:09:30 2011 +0000 IPv4: Send gratuitous ARP for secondary IP addresses also If a device event generates gratuitous ARP messages, only primary address is used for sending. This patch iterates through the whole list. Tested with 2 IP addresses configuration on bonding interface. Signed-off-by: Zoltan Kiss Signed-off-by: David S. Miller commit 32019e651c6fcee6bad6b6adb171feea5af0d16b Author: YOSHIFUJI Hideaki Date: Sun Jul 24 11:44:34 2011 +0000 ipv6: Do not leave router anycast address for /127 prefixes. Original commit 2bda8a0c8af... "Disable router anycast address for /127 prefixes" says: | No need for matching code in addrconf_leave_anycast() as it | will silently ignore any attempt to leave an unknown anycast | address. After analysis, because 1) we may add two or more prefixes on the same interface, or 2)user may have manually joined that anycast, we may hit chances to have anycast address which as if we had generated one by /127 prefix and we should not leave from subnet- router anycast address unconditionally. CC: Bjørn Mork CC: Brian Haley Signed-off-by: YOSHIFUJI Hideaki Signed-off-by: David S. Miller commit 5ec9e63c1c90074d2986f1102acbd1572eb827af Author: Wanlong Gao Date: Sat Jul 23 17:06:29 2011 +0000 drivers:connector:remove an unused variable *tracer* The variable 'tracer' never be used, so remove it. Added by f701e5b73a1a79ea62ffd45d9e2bed4c7d5c1fd2. Signed-off-by: Wanlong Gao Signed-off-by: David S. Miller commit 427e21faee1877053828b115bbb336c289562ac5 Author: stephen hemminger Date: Fri Jul 22 06:31:12 2011 +0000 acenic: use netdev_alloc_skb_ip_align Take Eric's patch one step further. Use netdev_skb_ip_align to do setup the receive skb. Compile tested only. Signed-off-by: Stephen Hemminger Signed-off-by: David S. Miller commit ed1e6211a0a134ff23592c6f057af982ad5dab52 Author: Trond Myklebust Date: Mon Jul 25 15:37:29 2011 -0400 NFSv4: Don't use the delegation->inode in nfs_mark_return_delegation() nfs_mark_return_delegation() is usually called without any locking, and so it is not safe to dereference delegation->inode. Since the inode is only used to discover the nfs_client anyway, it makes more sense to have the callers pass a valid pointer to the nfs_server as a parameter. Reported-by: Ian Kent Cc: stable@kernel.org Signed-off-by: Trond Myklebust commit 73ca1001ed6881b476e8252adcd0eede1ea368ea Author: Jeff Layton Date: Mon Jul 18 11:26:30 2011 -0400 nfs: don't use d_move in nfs_async_rename_done If the task that initiated the sillyrename ends up being killed by a fatal signal, then it will eventually return back to userspace and end up releasing the i_mutex. d_move however needs to be done while holding the i_mutex. Instead of using d_move here, just unhash the old and new dentries to prevent them from being found by lookups. With this change though, the dentries are now incorrect post-rename and do not reflect the actual name of the file on the server. I'm proceeding under the assumption that since they are unhashed that this isn't really a problem. In order for the sillydelete to still work though, the dname must be copied earlier when setting up the sillydelete info, and the name must be recopied if the sillydelete info has to be moved to a new dentry. Reported-by: Al Viro Signed-off-by: Jeff Layton Signed-off-by: Trond Myklebust commit 2773395b34883fe54418de188733a63bb38e0ad6 Author: Steve Dickson Date: Thu Jul 21 13:49:02 2011 -0400 RDMA: Increasing RPCRDMA_MAX_DATA_SEGS Our performance team has noticed that increasing RPCRDMA_MAX_DATA_SEGS from 8 to 64 significantly increases throughput when using the RDMA transport. Signed-off-by: Steve Dickson Signed-off-by: Trond Myklebust commit 5f00bcb38ef9a980a33c6dbdc0044964b05f22dd Merge: 34006cee28f7344f9557a4be3816c7891b1bbab1 b6844e8f64920cdee620157252169ba63afb0c89 Author: Stephen Rothwell Date: Mon Jul 25 13:59:46 2011 -0400 Merge branch 'master' into devel and apply fixup from Stephen Rothwell: vfs/nfs: fixup for nfs_open_context change Signed-off-by: Stephen Rothwell Signed-off-by: Trond Myklebust commit 3c2c22628599006047781946b317a16d9ff3883d Author: Dave Kleikamp Date: Mon Jun 20 13:00:27 2011 -0500 jfs: clean up some compiler warnings jfs has a few variables being set but never used. Signed-off-by: Dave Kleikamp commit 3c6b50141ef9f0a8844bf1357b80c0cdf518bf05 Author: Dmitry Torokhov Date: Mon Jul 25 01:36:46 2011 -0700 Input: synaptics - fix reporting of min coordinates We were testing wrong bit in the extended capability query. Reported-by: Daniel Kurtz Signed-off-by: Dmitry Torokhov commit 5599d2e60b1191520778def7c0658fbc6de6d8c1 Author: Rakesh Iyer Date: Mon Jul 25 00:49:55 2011 -0700 Input: tegra-kbc - enable key autorepeat To support key repeats, keyboard needs to be setup as an autorepeating device. Signed-off-by: Rakesh Iyer Signed-off-by: Dmitry Torokhov commit 8304bbceee505742925b487fd8ea56e1f8b4b805 Author: Nicholas Bellinger Date: Tue Mar 22 14:14:09 2011 -0700 iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h This patch moves the iscsi_sna_lt() and iscsi_sna_lte(), along with iscsi_sna_gt() and iscsi_sna_gte() from iscsi_target_mod into static inlines inside of include/scsi/iscsi_proto.h This patch also includes the ISCSI_HDR_LEN and ISCSI_CRC_LEN definitions. (Added JesperJ simpliciation for iscsi_sna_* usage) Signed-off-by: Mark Rustad Signed-off-by: Mike Christie Signed-off-by: Nicholas A. Bellinger commit 55bdabdf41b6ee99e22e9d78a895b001fb1d852e Author: Andy Grover Date: Thu Jun 16 15:57:09 2011 -0700 iscsi: Use struct scsi_lun in iscsi structs instead of u8[8] struct scsi_lun is also just a struct with an array of 8 octets (64 bits) but using it instead in iscsi structs lets us call scsilun_to_int without a cast, and also lets us copy it using assignment, instead of memcpy(). Signed-off-by: Andy Grover Signed-off-by: James Bottomley commit c9d761b7c4b658a937a941aea2781f511a0ff3ec Author: Michal Simek Date: Tue Jul 12 15:24:06 2011 +0200 microblaze: PCI fix typo fault in of_node pointer moving into pci_bus Bug introduces in: powerpc/pci: Make both ppc32 and ppc64 use sysdata for pci_controller (sha1: b5d937de0367d26f65b9af1aef5f2c34c1939be0) Signed-off-by: Michal Simek commit ca12adc8ca6814d1949fcc6d83c1adda6dc9e2ef Author: Michal Simek Date: Wed Apr 6 13:06:45 2011 +0200 microblaze: Add support for early console on mdm Support mdm early console: - extend time for retries - add mdm compatible property Signed-off-by: Michal Simek commit 2aa8e37596933a43fc3e46e1e385045635674429 Author: Michal Simek Date: Thu Apr 14 11:48:43 2011 +0200 microblaze: Simplify early console binding from DT Recognize early Linux console from chosen - linux,stdout-path instead of detecting the first console with appropriate compatible strings. This patch solved the problem on system with multiple consoles. Signed-off-by: Michal Simek commit e721a45fbed13a52093d2cc1962dbb8a754462ea Author: Michal Simek Date: Mon Apr 4 15:45:06 2011 +0200 microblaze: Get early printk console earlier 1. Register early console as standard console 2. Enable CON_BOOT console flag to ensure auto-unregistering by the kernel 3. remap_early_printk function remap physical console baseaddr to virtual space Usage specific function for console remap is done after memory initialization with IRQ turn off that's why there is not necessary to protect it. The reason for remapping is that the kernel use TLB 63 for 1:1 address mapping to be able to use console in very early boot-up phase. But allocating one TLB just for console caused performance degression that's why ioremaps create new mapping and TLB 63 is automatically released and ready to use. Signed-off-by: Michal Simek CC: Russell King CC: Ralf Baechle CC: Ingo Molnar CC: Alan Cox CC: CC: Arnd Bergmann commit 123521830c0ea35055b900d2ff0b73bb129e08cb Author: Nicholas Bellinger Date: Fri May 27 11:16:33 2011 +0000 iscsi: Resolve iscsi_proto.h naming conflicts with drivers/target/iscsi This patch renames the following iscsi_proto.h structures to avoid namespace issues with drivers/target/iscsi/iscsi_target_core.h: *) struct iscsi_cmd -> struct iscsi_scsi_req *) struct iscsi_cmd_rsp -> struct iscsi_scsi_rsp *) struct iscsi_login -> struct iscsi_login_req This patch includes useful ISCSI_FLAG_LOGIN_[CURRENT,NEXT]_STAGE*, and ISCSI_FLAG_SNACK_TYPE_* definitions used by iscsi_target_mod, and fixes the incorrect definition of struct iscsi_snack to following RFC-3720 Section 10.16. SNACK Request. Also, this patch updates libiscsi, iSER, be2iscsi, and bn2xi to use the updated structure definitions in a handful of locations. Signed-off-by: Mike Christie Signed-off-by: Nicholas A. Bellinger commit 95ce618f85a86a7383c1a3e39278be3de84b1b99 Author: John A. Williams Date: Tue May 24 18:59:45 2011 +1000 microblaze: Standardise cpuinfo output for cache policy The current cpuinfo output for the cache policy has no leading tag:, making it difficult to parse. Add a leaning "Dcache-policy:" tag to this field. Signed-off-by: John A. Williams commit 8904976e8ca45be3ec75acc71f5d855ef671a079 Author: John A. Williams Date: Tue May 24 18:57:11 2011 +1000 microblaze: Unprivileged stream instruction awareness Add cpuinfo support for the new MicroBlaze option permitting userspace (unprivileged) access to the streaming instructions (FSL / AXI-stream). Emit a noisy warning at bootup if this is enabled, because bad user code can potentially lockup the CPU. Signed-off-by: John A. Williams Signed-off-by: Michal Simek commit 5db34eb92f5699361de355dcd7958fdd2a9fb98a Author: Michal Simek Date: Tue Jul 12 12:36:29 2011 +0200 microblaze: trivial: Fix typo fault descrtiption -> description Signed-off-by: Michal Simek commit a0ec99bda8d42001dc37191f1282a401d2f6e4e1 Author: Mathias Krause Date: Fri Jun 10 15:09:59 2011 +0200 microblaze: exec: Remove redundant set_fs(USER_DS) The address limit is already set in flush_old_exec() so this set_fs(USER_DS) is redundant. Signed-off-by: Mathias Krause commit 504a84c4806af58ae842b8716f603baad2757dd9 Author: Mathias Krause Date: Wed Jun 8 14:30:05 2011 +0200 microblaze: Remove duplicated prototype of start_thread() The prototype for start_thread() is already present in the MMU/NOMMU independent part of the file. Remove the duplicate. Signed-off-by: Mathias Krause Signed-off-by: Michal Simek commit c11389406f19e4bddc7b347e5259aebda02b23f1 Author: Michal Simek Date: Fri May 20 09:02:13 2011 +0200 microblaze: Fix unaligned value saving to the stack for system with MMU Several registers weren't saved correctly to the stack. Unaligned expection for system with MMU stores value in ex_tmp_data_loc_X address which is load to registers r3. The next step is to move this value from r3 to a destination register which caused unaligned exception. For several registers this value was directly moved to the register. For example for r28: by "or r28, r0, r3" but register r28 was rewritten when kernel returns from exception handler by value saved on stack. This patch changed r3 saving to the correct address on the stack. For example for r28: by "swi r3, r1, 4 * 28" When kernel returns from the exception handler, correct value is restored. Signed-off-by: Michal Simek commit a2f526994e92ea54be181efccda261c4b1a6ae8d Author: Steven Rostedt Date: Fri Jul 1 23:04:40 2011 -0400 microblaze/irqs: Do not trace arch_local_{*,irq_*} functions Do not trace arch_local_save_flags(), arch_local_irq_*() and friends. Although they are marked inline, gcc may still make a function out of them and add it to the pool of functions that are traced by the function tracer. This can cause undesirable results (kernel panic, triple faults, etc). Add the notrace notation to prevent them from ever being traced. Cc: Michal Simek Signed-off-by: Steven Rostedt commit a0c27ab2421c47dc7c53f797fffcc0d17cdb122c Author: Mark Brown Date: Thu Jul 21 14:58:05 2011 +0100 ASoC: Revert "ASoC: SAMSUNG: Add I2S0 internal dma driver" This reverts commit d7c3e9525ac8e898f1156a1f3a7c5038f6560186 as it does not currently build due to missing dependencies in the Samsung tree. Signed-off-by: Mark Brown Acked-by: Jassi Brar Acked-by: Liam Girdwood commit 0c27c1805269f9ff01cc1d77752a662065ebcfe5 Author: Vitaliy Kulikov Date: Fri Jul 22 17:50:37 2011 -0500 ALSA: hda - Add support of the 4 internal speakers on certain HP laptops Signed-off-by: Vitaliy Kulikov Signed-off-by: Takashi Iwai commit acb03d440b8a723181e1d45e3517e43cb0792f8a Author: Eliot Blennerhassett Date: Sat Jul 23 12:36:25 2011 +1200 ALSA: Make snd_pcm_debug_name usable outside pcm_lib Formatting a PCM name is useful for module debug too. Add snd_prefix when making function public. [minor coding-style fixes by tiwai] Signed-off-by: Eliot Blennerhassett Signed-off-by: Takashi Iwai commit 8f398ae72fc7e03356fc1ee6b54beef79ba6be6a Author: Takashi Iwai Date: Sat Jul 23 18:57:11 2011 +0200 ALSA: hda - Fix DAC filling for multi-connection pins in Realtek parser Fix a regression in the DAC filling code in patch_realtek.c. The already filled DACs in multiout.dac_nids[] were ignored because of num_dacs=0, thus always pointed to the first DAC. Signed-off-by: Takashi Iwai commit 968543100a75bef892f52eb86e92e83b3b7bc581 Author: Stefan Berger Date: Sun Jul 17 01:04:24 2011 -0400 tpm: Move tpm_tis_reenable_interrupts out of CONFIG_PNP block This patch moves the tpm_tis_reenable_interrupts function out of the CONFIG_PNP-surrounded #define block. This solves a compilation error in case CONFIG_PNP is not defined. Signed-off-by: Stefan Berger Reported-by: Randy Dunlap Acked-by: Randy Dunlap Signed-off-by: James Morris commit 6eb77b214985f8c2568f1f20f941790fbf8bf97b Author: Stefan Berger Date: Mon Jul 18 09:11:55 2011 -0400 tpm: Fix compilation warning when CONFIG_PNP is not defined The is_itpm() function is only accessed from a block surrounded by #ifdef CONFIG_PNP. Therefore, also surround it with #ifdef CONFIG_PNP and remove the #else branch causing the warning. http://lxr.linux.no/#linux+v2.6.39/drivers/char/tpm/tpm_tis.c#L622 v2: - fixes a previous typo Signed-off-by: Stefan Berger Reported-by: Randy Dunlap Signed-off-by: James Morris commit 4805608ac1d1a60ca926ff81b1ebd3145f7adf78 Author: Liam Girdwood Date: Wed Jul 20 12:23:33 2011 +0100 ASoC: dapm - Add methods to retrieve snd_card and soc_card from dapm context. In preparation for ASoC Dynamic PCM (AKA DSP) support. Provide convenience methods to retrieve the soc_card or snd_card from a DAPM context. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown commit d7c3e9525ac8e898f1156a1f3a7c5038f6560186 Author: Sangbeom Kim Date: Wed Jul 20 17:07:13 2011 +0900 ASoC: SAMSUNG: Add I2S0 internal dma driver I2S in Exynos4 and S5PC110(S5PV210) has a internal dma. It can be used low power audio mode and 2nd channel transfer. This patch can support idma. Signed-off-by: Sangbeom Kim Acked-by: Jassi Brar Acked-by: Liam Girdwood Acked-by: Jassi Brar Signed-off-by: Mark Brown commit 61100f405de5c16a0866de7843ed442090436e6a Author: Sangbeom Kim Date: Wed Jul 20 17:07:12 2011 +0900 ASoC: SAMSUNG: Modify I2S driver to support idma Previously, I2S driver only can support system dma. In this patch, i2s driver can support internal dma too. IDMA h/w configuration is initialized on idma.c Signed-off-by: Sangbeom Kim Acked-by: Liam Girdwood Acked-by: Jassi Brar Signed-off-by: Mark Brown commit 82d1d521036eb3f5aae48b847f939d99a44c18bb Author: Rajashekhara, Sudhakar Date: Wed Jul 20 17:37:18 2011 +0530 ASoC: davinci: add missing break statement In davinci_vcif_trigger() function, a break() statement was missing causing the davinci_vcif_stop() function to be called as a fallback after calling davinci_vcif_start(). Signed-off-by: Rajashekhara, Sudhakar Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit 3012f43eaf7592d8121426918e43e3b5db013aff Author: Rajashekhara, Sudhakar Date: Wed Jul 20 17:36:04 2011 +0530 ASoC: davinci: fix codec start and stop functions According to DM365 voice codec data sheet at [1], before starting recording or playback, ADC/DAC modules should follow a reset and enable cycle. Writing a 1 to the ADC/DAC bit in the register resets the module and clearing the bit to 0 will enable the module. But the driver seems to be doing the reverse of it. [1] http://focus.ti.com/lit/ug/sprufi9b/sprufi9b.pdf Signed-off-by: Rajashekhara, Sudhakar Acked-by: Liam Girdwood Signed-off-by: Mark Brown Cc: stable@kernel.org commit c219c80929ca942c38334aad38b7582aed4e038e Author: Liam Girdwood Date: Wed Jul 20 19:42:20 2011 +0100 ASoC: dapm - add DAPM macro for external enum widgets Add a convenience macro for external enumerated widgets. Signed-off-by: Liam Girdwood Signed-off-by: Mark Brown commit 3198b9eb514fd27dd15c55f36b17ac2cddade1a5 Author: Mark Brown Date: Wed Jul 20 13:50:10 2011 +0100 ASoC: Acknowledge WM8962 interrupts before acting on them This closes the small race between a status being read in response to an interrupt and clearing the interrupt, meaning that if the status changes between those periods we might not get a reassertion of the interrupt. Signed-off-by: Mark Brown Acked-by: Liam Girdwood commit 6eab7ce65a4e6fae1d2cb5d866515ed288f2fdcc Author: Dan Carpenter Date: Tue Jul 19 23:16:29 2011 -0700 Input: kxtj9 - fix locking typo in kxtj9_set_poll() According to the comments we want to call mutex_lock() here instead of mutex_unlock(). That makes more sense. Signed-off-by: Dan Carpenter Signed-off-by: Dmitry Torokhov commit 4fd9fcf7c1ee6c339504525b43ad5e77334ff1b5 Author: Dan Carpenter Date: Tue Jul 19 23:12:21 2011 -0700 Input: kxtj9 - fix bug in probe() We are testing the wrong variable here. I believe tj9->input_dev is always NULL at this point, so probe() will fail. Signed-off-by: Dan Carpenter Signed-off-by: Dmitry Torokhov commit 09bddc8eb26eeb976efcfde9569b5ad1d9b77574 Author: Wolfram Sang Date: Mon Jul 18 17:53:04 2011 +0200 ASoC: sgtl5000: guide user when regulator support is needed Print a hint when the user has a setup where CONFIG_REGULATOR is really needed to make the driver work. Signed-off-by: Wolfram Sang Tested-by: Dong Aisheng Tested-by: Shawn Guo Acked-by: Liam Girdwood Signed-off-by: Mark Brown commit e94a4062c88e5245fef91ceac86788ae336f755b Author: Wolfram Sang Date: Mon Jul 18 17:53:03 2011 +0200 ASoC: sgtl5000: refactor registering internal ldo The code for registering the internal ldo was present twice. Turn it into a function instead. Also, inform the user if LDO is used now. Signed-off-by: Wolfram Sang Tested-by: Dong Aisheng Tested-by: Shawn Guo Acked-by: Liam Girdwood Signed-off-by: Mark Brown commit 1c8371d61e3a8e65fe6ef4ac535d1cd6d8ec7650 Author: Wolfram Sang Date: Sun Jul 17 18:00:26 2011 +0200 ASoC: core: make comments fit the code In one comment, cpu_dai was mentioned although codec_dai was used in the code. Also, fix the name for the card dai list which has no seperation into card_dai and codec_dai. Signed-off-by: Wolfram Sang Acked-by: Liam Girdwood Signed-off-by: Mark Brown commit 7be4ba24a3ea53bc8ade841635e4d4a59e98ceb5 Author: Mark Brown Date: Mon Jul 18 13:17:13 2011 +0900 ASoC: Mark cache as dirty when suspending Since quite a few drivers are not managing to flag the cache as needing to be resynced after suspend and it's a reasonable thing to do flag the cache as needing sync automatically when suspending. The expectation is that systems will mainly only keep the CODEC powered when doing audio through the CODEC so we won't actually suspend the device anyway; drivers which want to can override this behaviour when they resume. Signed-off-by: Mark Brown Acked-by: Liam Girdwood Cc: stable@kernel.org commit e449edbb91decd0260105fadd4f5fcc3ce170e01 Author: Axel Lin Date: Mon Jul 18 17:09:05 2011 -0700 Input: intel-mid-touch - remove pointless checking for variable 'found' The implementation does break from the for loop after we assign 'i' to variable 'found'. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit dc3e8247eb90655c0ff01ce03bdf3aa5868f1cde Author: Axel Lin Date: Mon Jul 18 17:09:46 2011 -0700 Input: hp_sdc - staticize hp_sdc_kicker() It's not referenced outside this file so there's no need for it to be in the global name space. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit edf21d9c38b945b91d100bae59d951bce131d58b Author: Axel Lin Date: Mon Jul 18 17:09:22 2011 -0700 Input: pmic8xxx-keypad - fix a leak of the IRQ during init failure Make sure we are passing the same cookie in all calls to request_any_context_irq() and free_irq(). Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit 2c204109ec1018f72114c7f19132a1109a3f0653 Author: Axel Lin Date: Mon Jul 18 17:09:37 2011 -0700 Input: cy8ctmg110_ts - set reset_pin and irq_pin from platform data The implementation in cy8ctmg110_probe() does not properly set reset_pin and irq_pin from platform data. Let's fix it. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit ffd96e35c16a99fdb490cc5723b8e32135ae5883 Author: Namhyung Kim Date: Mon Jul 18 17:38:51 2011 +1000 md/raid5: get rid of duplicated call to bio_data_dir() In raid5::make_request(), once bio_data_dir(@bi) is detected it never (and couldn't) be changed. Use the result always. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 6ce328462c1145a217ba1f27b882743be1407759 Author: Namhyung Kim Date: Mon Jul 18 17:38:50 2011 +1000 md/raid5: use kmem_cache_zalloc() Replace kmem_cache_alloc + memset(,0,) to kmem_cache_zalloc. I think it's not harmful since @conf->slab_cache already knows actual size of struct stripe_head. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit c65060ad4274f70048d62e0a86332cd3fd23f28d Author: Namhyung Kim Date: Mon Jul 18 17:38:49 2011 +1000 md/raid10: share pages between read and write bio's during recovery When performing a recovery, only first 2 slots in r10_bio are in use, for read and write respectively. However all of pages in the write bio are never used and just replaced to read bio's when the read completes. Get rid of those unused pages and share read pages properly. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 778ca01852e6cc9ff335119b37a1938a978df384 Author: Namhyung Kim Date: Mon Jul 18 17:38:47 2011 +1000 md/raid10: factor out common bio handling code When normal-write and sync-read/write bio completes, we should find out the disk number the bio belongs to. Factor those common code out to a separate function. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 2c4193df379bb89114ff60d4b0fa66131abe6a75 Author: Namhyung Kim Date: Mon Jul 18 17:38:43 2011 +1000 md/raid10: get rid of duplicated conditional expression Variable 'first' is initialized to zero and updated to @rdev->raid_disk only if it is greater than 0. Thus condition '>= first' always implies '>= 0' so the latter is not needed. Signed-off-by: Namhyung Kim Signed-off-by: NeilBrown commit 34006cee28f7344f9557a4be3816c7891b1bbab1 Author: Trond Myklebust Date: Sun Jul 17 18:11:34 2011 -0400 SUNRPC: Replace xprt->resend and xprt->sending with a priority queue Signed-off-by: Trond Myklebust commit 3b27bad7f7ceacca6d6c0ef647ffb38aa55a8336 Author: Trond Myklebust Date: Sun Jul 17 18:11:34 2011 -0400 SUNRPC: Allow caller of rpc_sleep_on() to select priority levels Currently, the caller has to change the value of task->tk_priority if it wants to select on which priority level the task will sleep. This patch allows the caller to select a priority level at sleep time rather than always using task->tk_priority. Signed-off-by: Trond Myklebust commit d9ba131d8f58c0d2ff5029e7002ab43f913b36f9 Author: Trond Myklebust Date: Sun Jul 17 18:11:30 2011 -0400 SUNRPC: Support dynamic slot allocation for TCP connections Allow the number of available slots to grow with the TCP window size. Signed-off-by: Trond Myklebust commit 21de0a955f3af29fa1100d96f66e6adade89e77a Author: Trond Myklebust Date: Sun Jul 17 16:57:32 2011 -0400 SUNRPC: Clean up the slot table allocation Signed-off-by: Trond Myklebust commit 8d9266ffe4332afc5ac9de401ef6f825b3798585 Author: Trond Myklebust Date: Sun Jul 17 16:01:09 2011 -0400 SUNRPC: Initalise the struct xprt upon allocation Signed-off-by: Trond Myklebust commit 43cedbf0e8dfb9c5610eb7985d5f21263e313802 Author: Trond Myklebust Date: Sun Jul 17 16:01:03 2011 -0400 SUNRPC: Ensure that we grab the XPRT_LOCK before calling xprt_alloc_slot This throttles the allocation of new slots when the socket is busy reconnecting and/or is out of buffer space. Signed-off-by: Trond Myklebust commit f85ef69ce08bc2209858135328335f668ba35bdb Author: J. Bruce Fields Date: Fri Jul 15 19:18:42 2011 -0400 pnfs: simplify pnfs files module autoloading Embed the necessary alias into the module rather than waiting for someone to add it to /etc/modprobe.conf Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 674e405b8b3310702fd43d314f5f432ec2cb9980 Author: J. Bruce Fields Date: Fri Jul 15 19:09:08 2011 -0400 nfs: document nfsv4 sillyrename issues Somebody working on this code asked what the deal was with NFSv4, since this comment notes that it's v2/v3's statelessness that requires sillyrename. Shouldn't hurt to document the answer. Signed-off-by: J. Bruce Fields Signed-off-by: Trond Myklebust commit 94b134ac8e9965309e70684b504c53bca36338b4 Author: Trond Myklebust Date: Wed Jul 13 19:26:49 2011 -0400 NFS: Convert nfs4_set_ds_client to EXPORT_SYMBOL_GPL This is not part of an external ABI... Signed-off-by: Trond Myklebust commit 0d961aa934b799ca7369db582e52952cc50c656d Author: Trond Myklebust Date: Wed Jul 13 19:24:15 2011 -0400 SUNRPC: Convert the backchannel exports to EXPORT_SYMBOL_GPL Ensure that the backchannel exports conform to the existing sunrpc practice. Signed-off-by: Trond Myklebust commit 9e00abc3c20904fd6a5d888bb7023925799ec8a5 Author: Trond Myklebust Date: Wed Jul 13 19:20:49 2011 -0400 SUNRPC: sunrpc should not explicitly depend on NFS config options Change explicit references to CONFIG_NFS_V4_1 to implicit ones Get rid of the unnecessary defines in backchannel_rqst.c and bc_svc.c: the Makefile takes care of those dependency. Signed-off-by: Trond Myklebust commit 1f9453578f059d2651aa6c6b16756627fc9f2a74 Author: Trond Myklebust Date: Wed Jul 13 15:59:57 2011 -0400 NFS: Clean up - simplify the switch to read/write-through-MDS Use nfs_pageio_reset_read_mds and nfs_pageio_reset_write_mds instead of completely reinitialising the struct nfs_pageio_descriptor. Signed-off-by: Trond Myklebust commit dce81290eed64d24493989bb7a08f9e20495e184 Author: Trond Myklebust Date: Wed Jul 13 15:59:19 2011 -0400 NFS: Move the pnfs write code into pnfs.c ...and ensure that we recoalese to take into account differences in differences in block sizes when falling back to write through the MDS. Signed-off-by: Trond Myklebust commit 493292ddc78d18ee2ad2d5c24c2b7dd6a24641d2 Author: Trond Myklebust Date: Wed Jul 13 15:58:28 2011 -0400 NFS: Move the pnfs read code into pnfs.c ...and ensure that we recoalese to take into account differences in block sizes when falling back to read through the MDS. Signed-off-by: Trond Myklebust commit d9156f9f364897e93bdd98b4ad22138de18f7c24 Author: Trond Myklebust Date: Tue Jul 12 13:42:02 2011 -0400 NFS: Allow the nfs_pageio_descriptor to signal that a re-coalesce is needed If an attempt to do pNFS fails, and we have to fall back to writing through the MDS, then we may want to re-coalesce the requests that we already have since the block size for the MDS read/writes may be different to that of the DS read/writes. Signed-off-by: Trond Myklebust commit d097971d8ab4042eaa4bff98698ae9cc55942327 Author: Trond Myklebust Date: Tue Jul 12 13:42:02 2011 -0400 NFS: Use the nfs_pageio_descriptor->pg_bsize in the read/write request Instead of looking up the rsize and wsize, the routines that generate the RPC requests should really be using the pg_bsize, since that is what we use when deciding whether or not to coalesce write requests... Signed-off-by: Trond Myklebust commit 50828d7e6767a92726708bc0666e2b8b84575808 Author: Trond Myklebust Date: Tue Jul 12 13:42:02 2011 -0400 NFS: Cache rpc_ops in struct nfs_pageio_descriptor Signed-off-by: Trond Myklebust commit 275acaafd45fbc8ecc3beabd6367e60b3049606a Author: Trond Myklebust Date: Tue Jul 12 13:42:02 2011 -0400 NFS: Clean up: split out the RPC transmission from nfs_pagein_multi/one ...and do the same for nfs_flush_multi/one. Signed-off-by: Trond Myklebust commit 3b6091846d5b6113d695c79caec7cc96b62d469b Author: Peng Tao Date: Fri Jul 15 03:33:42 2011 -0400 NFS: fix return value of nfs_pagein_one/nfs_flush_one Signed-off-by: Peng Tao Signed-off-by: Trond Myklebust commit 0f2a55d5bb2372058275b0b343d90dd5d640d045 Author: Tetsuo Handa Date: Thu Jul 14 14:46:51 2011 +0900 TOMOYO: Update kernel-doc. Update comments for scripts/kernel-doc and fix some of errors reported by scripts/checkpatch.pl . Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit d448303a77d8925fd06e7b2837bd1826e340bb02 Author: Axel Lin Date: Wed Jul 13 00:04:36 2011 -0700 Input: cy8ctmg110_ts - constify i2c_device_id table Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit 21184c4efbba7b7959c7868cf2b99f43f29fc199 Author: Axel Lin Date: Wed Jul 13 00:03:36 2011 -0700 Input: cy8ctmg110_ts - fix checking return value of i2c_master_send i2c_master_send returns negative errno, or else the number of bytes written. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit fea2021c76a414b71204cc2aea623bb037fa913b Author: Axel Lin Date: Wed Jul 13 00:02:21 2011 -0700 Input: lifebook - make dmi callback functions return 1 We only care about if there is a successful match from the table (or no match at all), so let's make dmi_check_system return immediately instead of iterating thorough the whole table. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit c388b2c67e64d20cc0ad0d48d0e3e819d489bfed Author: Axel Lin Date: Tue Jul 12 23:59:41 2011 -0700 Input: atkbd - make dmi callback functions return 1 We only care about if there is a successful match from the table (or no match at all), so let's make dmi_check_system return immediately instead of iterating thorough the whole table. Make the dmi callback function return 1 then dmi_check_system will return immediately if we have a successful match. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit c9206693457a946698e1d67db2b424e1d101493d Author: Stefan Berger Date: Wed Mar 30 12:13:34 2011 -0400 tpm: Fix a typo This patch fixes a typo. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 9519de3f265f112e992aa7f446d905196bd608e8 Author: Stefan Berger Date: Wed Mar 30 12:13:33 2011 -0400 tpm_tis: Probing function for Intel iTPM bug This patch introduces a function for automatic probing for the Intel iTPM STS_DATA_EXPECT flaw. The patch splits the current tpm_tis_send function into 2 parts where the 1st part is now called tpm_tis_send_data() and merely sends the data to the TPM. This function is then used for probing. The new tpm_tis_send function now first calls tpm_tis_send_data and if that succeeds has the TPM process the command and waits until the response is there. The probing for the Intel iTPM is only invoked if the user has not passed itpm=1 as parameter for the module *or* if such a TPM was detected via ACPI. Previously it was necessary to pass itpm=1 when also passing force=1 to the module when doing a 'modprobe'. This function is more general than the ACPI test function and the function relying on ACPI could probably be removed. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit a7b66822b20f67f106690d0acee3d0ba667fd9bb Author: Stefan Berger Date: Wed Mar 30 12:13:32 2011 -0400 tpm_tis: Fix the probing for interrupts This patch fixes several aspects of the probing for interrupts. This patch reads the TPM's timeouts before probing for the interrupts. The tpm_get_timeouts() function is invoked in polling mode and gets the proper timeouts from the TPM so that we don't need to fall back to 2 minutes timeouts for short duration commands while the interrupt probing is happening. This patch introduces a variable probed_irq into the vendor structure that gets the irq number if an interrupt is received while the the tpm_gen_interrupt() function is run in polling mode during interrupt probing. Previously some parts of tpm_gen_interrupt() were run in polling mode, then the irq variable was set in the interrupt handler when an interrupt was received and execution of tpm_gen_interrupt() ended up switching over to interrupt mode. tpm_gen_interrupt() execution ended up on an event queue where it eventually timed out since the probing handler doesn't wake any queues. Before calling into free_irq() clear all interrupt flags that may have been set by the TPM. The reason is that free_irq() will call into the probing interrupt handler and may otherwise fool us into thinking that a real interrupt happened (because we see the flags as being set) while the TPM's interrupt line is not even connected to anything on the motherboard. This solves a problem on one machine I did testing on (Thinkpad T60). If a TPM claims to use a specifc interrupt, the probing is done as well to verify that the interrupt is actually working. If a TPM indicates that it does not use a specific interrupt (returns '0'), probe all interrupts from 3 to 15. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 20b87bbfada971ae917cc2ff9dbc9dae05b94d25 Author: Stefan Berger Date: Wed Mar 30 12:13:31 2011 -0400 tpm_tis: Delay ACPI S3 suspend while the TPM is busy This patch delays the (ACPI S3) suspend while the TPM is busy processing a command and the TPM TIS driver is run in interrupt mode. This is the same behavior as we already have it for the TPM TIS driver in polling mode. Reasoning: Some of the TPM's commands advance the internal state of the TPM. An example would be the extending of one of its PCR registers. Upper layers, such as IMA or TSS (TrouSerS), would certainly want to be sure that the command succeeded rather than getting an error code (-62 = -ETIME) that may not give a conclusive answer as for what reason the command failed. Reissuing such a command would put the TPM into the wrong state, so waiting for it to finish is really the only option. The downside is that some commands (key creation) can take a long time and actually prevent the machine from entering S3 at all before the 20 second timeout of the power management subsystem arrives. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 45baa1d1fa3926510ead93c96e6b0baa5ad79bd3 Author: Stefan Berger Date: Wed Mar 30 12:13:30 2011 -0400 tpm_tis: Re-enable interrupts upon (S3) resume This patch makes sure that if the TPM TIS interface is run in interrupt mode (rather than polling mode) that all interrupts are enabled in the TPM's interrupt enable register after a resume from ACPI S3 suspend. The registers may either have been cleared by the TPM loosing its state during device sleep or by the BIOS leaving the TPM in polling mode (after sending a command to the TPM for starting it up again) You may want to check if your TPM runs with interrupts by doing cat /proc/interrupts | grep -i tpm and see whether there is an entry or otherwise for it to use interrupts: modprobe tpm_tis interrupts=1 [add 'itpm=1' for Intel TPM ] v2: - the patch was adapted to work with the pnp and platform driver implementations in tpm_tis.c Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 5a79444f24cb169b79f0f346482a42ab28329bae Author: Stefan Berger Date: Wed Mar 30 12:13:29 2011 -0400 tpm: Fix display of data in pubek sysfs entry This patch fixes the TPM's pubek sysfs entry that is accessible as long as the TPM doesn't have an owner. It was necessary to shift the access to the data by -10 -- the first byte immediately follows the 10 byte header. The line data = tpm_cmd.params.readpubek_out_buffer; sets it at the offset '10' in the packet, so we can read the data array starting at offset '0'. Before: Algorithm: 00 0C 00 00 Encscheme: 08 00 Sigscheme: 00 00 Parameters: 00 00 00 00 01 00 AC E2 5E 3C A0 78 Modulus length: -563306801 Modulus: 28 21 08 0F 82 CD F2 B1 E7 49 F7 74 70 BE 59 8C 43 78 B1 24 EA 52 E2 FE 52 5C 3A 12 3B DC 61 71 [...] After: Algorithm: 00 00 00 01 Encscheme: 00 03 Sigscheme: 00 01 Parameters: 00 00 08 00 00 00 00 02 00 00 00 00 Modulus length: 256 Modulus: AC E2 5E 3C A0 78 DE 6C 9E CF 28 21 08 0F 82 CD F2 B1 E7 49 F7 74 70 BE 59 8C 43 78 B1 24 EA 52 [...] Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 6259210176510c64251a314ffb74834a790f09a0 Author: Stefan Berger Date: Wed Mar 30 12:13:28 2011 -0400 tpm_tis: Add timeouts sysfs entry Display the TPM's interface timeouts in a 'timeouts' sysfs entry. Display the entries as having been adjusted when they were scaled due to their values being reported in milliseconds rather than microseconds. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit e3e1a1e169d4e7f73c60ded937ebe24526bc6427 Author: Stefan Berger Date: Wed Mar 30 12:13:27 2011 -0400 tpm: Adjust interface timeouts if they are too small Adjust the interface timeouts if they are found to be too small, i.e., if they are returned in milliseconds rather than microseconds as we heared from Infineon that some (old) Infineon TPMs do. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 829bf0675272d24ba0056f5f79e09544464f0c8d Author: Stefan Berger Date: Wed Mar 30 12:13:26 2011 -0400 tpm: Use interface timeouts returned from the TPM The TPM driver currently discards the interface timeout values returned from the TPM. The check of the response packet needs to consider that the return_code field is 0 on success and the size of the expected packet is equivalent to the header size + u32 length indicator for the TPM_GetCapability() result + 4 interface timeout indicators of type u32. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 04ab2293bbd36fc04060da93058cef7789414585 Author: Stefan Berger Date: Wed Mar 30 12:13:25 2011 -0400 tpm_tis: Introduce durations sysfs entry Display the TPM's command timeouts in a 'durations' sysfs entry. Display the entries as having been adjusted when they were scaled due to their values being reported in milliseconds rather than microseconds. Signed-off-by: Stefan Berger Tested-by: Guillaume Chazarain Signed-off-by: Rajiv Andrade commit e934acca1ee993e1d99d7dc203569a6e5cdfb392 Author: Stefan Berger Date: Wed Mar 30 12:13:24 2011 -0400 tpm: Adjust the durations if they are too small Adjust the durations if they are found to be too small, i.e., if they are returned in milliseconds rather than microseconds as some Infineon TPMs are reported to do. Signed-off-by: Stefan Berger Signed-off-by: Rajiv Andrade commit 979b140614a5459f340f5f8b1641ef77c863d899 Author: Stefan Berger Date: Wed Mar 30 12:13:23 2011 -0400 tpm: Use durations returned from TPM The TPM driver currently discards the durations values returned from the TPM. The check of the response packet needs to consider that the return_code field is 0 on success and the size of the expected packet is equivalent to the header size + u32 length indicator for the TPM_GetCapability() result + 3 timeout indicators of type u32. v4: - sysfs entry 'durations' is now a patch of its own - the work-around for TPMs reporting durations in milliseconds is now in a patch of its own v3: - sysfs entry now called 'durations' to resemble TPM-speak (previously was called 'timeouts') v2: - adjusting all timeouts for TPM devices reporting timeouts in msec rather than usec - also displaying in sysfs whether the timeouts are 'original' or 'adjusted' Signed-off-by: Stefan Berger Tested-by: Guillaume Chazarain Signed-off-by: Rajiv Andrade commit 6e4efd568574221840ee8dd86f176dc977c1330c Author: Trond Myklebust Date: Tue Jul 12 13:42:02 2011 -0400 NFS: Clean up nfs_read_rpcsetup and nfs_write_rpcsetup Split them up into two parts: one which sets up the struct nfs_read/write_data, the other which sets up the actual RPC call or pNFS call. Signed-off-by: Trond Myklebust commit 87ed5eb44ad9338b1617a0e78dea81d681325298 Author: Trond Myklebust Date: Tue Jul 12 13:42:01 2011 -0400 NFS: Don't use DATA_SYNC writes If we're writing back data, and the FLUSH_STABLE flag is set, then we always want to use NFS_FILE_SYNC, since we're always in a situation where we're doing page reclaim, and so we want to free up the page as quickly as possible. If we're in the FLUSH_COND_STABLE case, then we either want to use another unstable write (if we have to do a commit anyway) or again, we want to use NFS_FILE_SYNC because we know that we have no more pages to write out. Signed-off-by: Trond Myklebust commit c47abcf8ff4d0c56d20ce541e80d3e1c975f54b5 Author: Andy Adamson Date: Wed Jun 15 17:52:40 2011 -0400 NFSv4.1: do not use deviceids after MDS clientid invalidation Mark all deviceids established under an expired MDS clientid as invalid. Stop all new i/o through DS and send through the MDS. Don't use any new LAYOUTGETs that use the invalid deviceid. Purge all layouts established under the expired MDS clientid. Remove the MDS clientid deviceid and data servers reference Signed-off-by: Andy Adamson Signed-off-by: Trond Myklebust commit a56aaa02b1f723e28b41d339ddff02e958d32d43 Author: Trond Myklebust Date: Wed Jun 15 11:59:10 2011 -0400 NFSv4.1: Clean up layoutreturn Since we take a reference to it, we really ought to pass the a pointer to the layout header in the arguments instead of assuming that NFS_I(inode)->layout will forever point to the correct object. Signed-off-by: Trond Myklebust commit aa5c01446610f0305f96251d0f9621866b8e5a14 Author: Boaz Harrosh Date: Mon Jun 13 17:52:55 2011 -0400 pnfs-obj: pnfs_osd_xdr: Remove dead code and cleanup * Some leftovers from ancient times. * This file will only define common types and client API. Remove server from comments Signed-off-by: Boaz Harrosh Signed-off-by: Trond Myklebust commit 7c24d9489fe57d67cb56c6bdad58d89806e7fd97 Author: Andy Adamson Date: Mon Jun 13 18:22:38 2011 -0400 NFSv4.1: File layout only supports whole file layouts Ask for whole file layouts. Until support for layout segments is fully supported in the file layout code, discard non-whole file layouts. Signed-off-by: Andy Adamson Signed-off-by: Fred Isaman Signed-off-by: Trond Myklebust commit 47cb498e9316314e7e681f417135589195ad78a7 Author: Trond Myklebust Date: Tue Jun 14 12:18:11 2011 -0400 NFSv4.1: Clean ups for the device id cache The fact that the global device id cache holds a reference to the nfs4_deviceid_node until it is invisible to rcu lookups implies that we can always assume that the reference count is non-zero in _find_get_deviceid. Also clean up nfs4_put_deviceid_node and the removal of the device id from the cache. Signed-off-by: Trond Myklebust commit e885de1a5bc9f46ef8f934c5a7602c89d2d51e8d Author: Trond Myklebust Date: Fri Jun 10 13:30:23 2011 -0400 NFSv4.1: Fall back to ordinary i/o through the mds if we have no layout segment Signed-off-by: Trond Myklebust commit d8007d4dd6ff8749cc8a4063c3ec87442db76d82 Author: Trond Myklebust Date: Fri Jun 10 13:30:23 2011 -0400 NFSv4.1: Add an initialisation callback for pNFS Ensure that we always get a layout before setting up the i/o request. Signed-off-by: Trond Myklebust commit 1751c3638f2a07a8c66a803a31791bab9bd3fced Author: Trond Myklebust Date: Fri Jun 10 13:30:23 2011 -0400 NFS: Cleanup of the nfs_pageio code in preparation for a pnfs bugfix We need to ensure that the layouts are set up before we can decide to coalesce requests. To do so, we want to further split up the struct nfs_pageio_descriptor operations into an initialisation callback, a coalescing test callback, and a 'do i/o' callback. This patch cleans up the existing callback methods before adding the 'initialisation' callback. Signed-off-by: Trond Myklebust commit f062eb6ced3b297277b94b4da3113b1d3782e539 Author: Bryan Schumaker Date: Thu Jun 2 14:59:10 2011 -0400 NFS: test and free stateids during recovery When recovering open files and locks, the stateid should be tested against the server and freed if it is invalid. This patch adds new recovery functions for NFS v4.1. Signed-off-by: Bryan Schumaker Signed-off-by: Trond Myklebust commit 9aeda35fd643eba683fdb8dba8907fa796a85dda Author: Bryan Schumaker Date: Thu Jun 2 14:59:09 2011 -0400 NFS: added FREE_STATEID call FREE_STATEID is used to tell the server that we want to free a stateid that no longer has any locks associated with it. This allows the client to reclaim locks without encountering edge conditions documented in section 8.4.3 of RFC 5661. Signed-off-by: Bryan Schumaker Signed-off-by: Trond Myklebust commit 7d9747947ae66d8f6a9a9a023a3a5e28df6a536e Author: Bryan Schumaker Date: Thu Jun 2 14:59:08 2011 -0400 NFS: Added TEST_STATEID call This patch adds in the xdr for doing a TEST_STATEID call with a single stateid. RFC 5661 allows multiple stateids to be tested in a single call, but only testing one keeps things simpler for now. Signed-off-by: Bryan Schumaker Signed-off-by: Trond Myklebust commit fca78d6d2c77f87d7dbee89bbe4836a44da881e2 Author: Bryan Schumaker Date: Thu Jun 2 14:59:07 2011 -0400 NFS: Add SECINFO_NO_NAME procedure If the client is using NFS v4.1, then we can use SECINFO_NO_NAME to find the secflavor for the initial mount. If the server doesn't support SECINFO_NO_NAME then I fall back on the "guess and check" method used for v4.0 mounts. Signed-off-by: Bryan Schumaker Signed-off-by: Trond Myklebust commit 6382a44138e7aa40bf52170e7afc014443a24806 Author: Weston Andros Adamson Date: Wed Jun 1 16:44:44 2011 -0400 NFS: move pnfs layouts to nfs_server structure Layouts should be tracked per nfs_server (aka superblock) instead of per struct nfs_client, which may have multiple FSIDs associated with it. Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit 35dbbc99e93e57680837c17f96efe370f0535064 Author: Weston Andros Adamson Date: Wed Jun 1 16:32:21 2011 -0400 NFS: fix comment We support IPv4 and IPv6 now. Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit 78fe0f41d9937ee62817912ac8d627e06243c269 Author: Weston Andros Adamson Date: Tue May 31 19:05:47 2011 -0400 NFS: use scope from exchange_id to skip reclaim can be skipped if the "eir_server_scope" from the exchange_id proc differs from previous calls. Also, in the future server_scope will be useful for determining whether client trunking is available Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit 7e574f0d3911c5cc60d4d2b57fee975c462d6cd0 Author: Weston Andros Adamson Date: Tue May 31 18:48:58 2011 -0400 NFS: pnfs: loop over multipath addrs on connect Don't just use the first addr in the multipath list - instead, loop over addresses when calling nfs4_set_ds_client() (which calls connect) until it is successful. Although this is not real multipath support, it's a quick fix to handle when an MDS sends a list of addresses for a DS and some of the addr families are unsupported or misconfigured (like no routable ipv6 addr assigned). This will attempt all paths to the DS before giving up, instead of immediately falling back to the MDS. As before, an error encountered after a successful connect() will cause all i/o to fall back to the MDS. Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit 14f9a6076f5388f3fd6341ad4b841337b28fc825 Author: Weston Andros Adamson Date: Tue May 31 18:48:57 2011 -0400 NFS: Parse and store all multipath DS addresses This parses and stores all addresses associated with each data server, laying the groundwork for supporting multipath to data servers. - Skips over addresses that cannot be parsed (ie IPv6 addrs if v6 is not enabled). Only fails if none of the addresses are recognizable - Currently only uses the first address that parsed cleanly - Tested against pynfs server (modified to support multipath) Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit c9895cb69b07a4b17d8fdae26667f9a9fba5183b Author: Weston Andros Adamson Date: Tue May 31 18:48:56 2011 -0400 NFS: pnfs IPv6 support Handle ipv6 remote addresses from GETDEVICEINFO - supports netid "tcp" for ipv4 and "tcp6" for ipv6 as rfc 5665 specifies - added ds_remotestr to avoid having to handle different AFs in every dprintk - tested against pynfs 4.1 server, submitting ipv6 support patch to pynfs - tested with IPv6 disabled, it compiles cleanly and relies on rpc_pton to refuse to accept IPv6 addresses Signed-off-by: Weston Andros Adamson Signed-off-by: Trond Myklebust commit 82c2c8b8616fa9e77264c53f0df483f74ac54613 Author: Vasily Averin Date: Wed Jun 1 16:54:32 2011 +0400 lockd: properly convert be32 values in debug messages lockd: server returns status 50331648 it's quite hard to understand that number in this message is 3 in big endian Signed-off-by: Vasily Averin Signed-off-by: Trond Myklebust commit 726fd6ad59f73bd116b6a22d701db078183673c8 Author: Vasily Averin Date: Wed Jun 1 16:23:59 2011 +0400 sunrpc: use dprint_status() macro in call_decode() common dprint_status() macro is used in all callbacks but not in call_decode() Signed-off-by: Vasily Averin Signed-off-by: Trond Myklebust commit df98b6e2c52f65665eaf0fc23e647fb64335b289 Author: Josef Bacik Date: Mon Jun 20 14:53:48 2011 -0400 Btrfs: fix how we merge extent states and deal with cached states First, we can sometimes free the state we're merging, which means anybody who calls merge_state() may have the state it passed in free'ed. This is problematic because we could end up caching the state, which makes caching useless as the state will no longer be part of the tree. So instead of free'ing the state we passed into merge_state(), set it's end to the other->end and free the other state. This way we are sure to cache the correct state. Also because we can merge states together, instead of only using the cache'd state if it's start == the start we are looking for, go ahead and use it if the start we are looking for is within the range of the cached state. Thanks, Signed-off-by: Josef Bacik commit 2f356126c589d562f98e2287f9c7b983388dc62f Author: Josef Bacik Date: Fri Jun 10 15:31:13 2011 -0400 Btrfs: use the normal checksumming infrastructure for free space cache We used to store the checksums of the space cache directly in the space cache, however that doesn't work out too well if we have more space than we can fit the checksums into the first page. So instead use the normal checksumming infrastructure. There were problems with doing this originally but those problems don't exist now so this works out fine. Thanks, Signed-off-by: Josef Bacik commit fdb5effd5c2a7e01dc3a4217bb194e2d3a5b160f Author: Josef Bacik Date: Tue Jun 7 16:07:44 2011 -0400 Btrfs: serialize flushers in reserve_metadata_bytes We keep having problems with early enospc, and that's because our method of making space is inherently racy. The problem is we can have one guy trying to make space for himself, and in the meantime people come in and steal his reservation. In order to stop this we make a waitqueue and put anybody who comes into reserve_metadata_bytes on that waitqueue if somebody is trying to make more space. Thanks, Signed-off-by: Josef Bacik commit b5009945be18023942ce28327893c7bc1e58fe54 Author: Josef Bacik Date: Tue Jun 7 15:07:51 2011 -0400 Btrfs: do transaction space reservation before joining the transaction We have to do weird things when handling enospc in the transaction joining code. Because we've already joined the transaction we cannot commit the transaction within the reservation code since it will deadlock, so we have to return EAGAIN and then make sure we don't retry too many times. Instead of doing this, just do the reservation the normal way before we join the transaction, that way we can do whatever we want to try and reclaim space, and then if it fails we know for sure we are out of space and we can return ENOSPC. Thanks, Signed-off-by: Josef Bacik commit fa09200b8334f9a6af3f656edae924a98d85630f Author: Josef Bacik Date: Fri May 27 12:06:11 2011 -0400 Btrfs: try to only do one btrfs_search_slot in do_setxattr I've been watching how many btrfs_search_slot()'s we do and I noticed that when we create a file with selinux enabled we were doing 2 each time we initialize the security context. That's because we lookup the xattr first so we can delete it if we're setting a new value to an existing xattr. But in the create case we don't have any xattrs, so it is completely useless to have the extra lookup. So re-arrange things so that we only lookup first if we specifically have XATTR_REPLACE. That way in the basic case we only do 1 search, and in the more complicated case we do the normal 2 lookups. Thanks, Signed-off-by: Josef Bacik commit 97fb35e413f256ded07b88c73b3d932ec31ea84e Author: Tetsuo Handa Date: Fri Jul 8 13:25:53 2011 +0900 TOMOYO: Enable conditional ACL. Enable conditional ACL by passing object's pointers. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 5b636857fee642694e287e3a181b523b16098c93 Author: Tetsuo Handa Date: Fri Jul 8 13:24:54 2011 +0900 TOMOYO: Allow using argv[]/envp[] of execve() as conditions. This patch adds support for permission checks using argv[]/envp[] of execve() request. Hooks are in the last patch of this pathset. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 2ca9bf453bdd478bcb6c01aa2d0bd4c2f4350563 Author: Tetsuo Handa Date: Fri Jul 8 13:23:44 2011 +0900 TOMOYO: Allow using executable's realpath and symlink's target as conditions. This patch adds support for permission checks using executable file's realpath upon execve() and symlink's target upon symlink(). Hooks are in the last patch of this pathset. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 8761afd49ebff8ae04c1a7888af090177441d07d Author: Tetsuo Handa Date: Fri Jul 8 13:22:41 2011 +0900 TOMOYO: Allow using owner/group etc. of file objects as conditions. This patch adds support for permission checks using file object's DAC attributes (e.g. owner/group) when checking file's pathnames. Hooks for passing file object's pointers are in the last patch of this pathset. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 2066a36125fcbf5220990173b9d8e8bc49ad7538 Author: Tetsuo Handa Date: Fri Jul 8 13:21:37 2011 +0900 TOMOYO: Allow using UID/GID etc. of current thread as conditions. This patch adds support for permission checks using current thread's UID/GID etc. in addition to pathnames. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit bdda82162837a20e591ac01b306dc8f052270510 Author: Dmitry Torokhov Date: Sat Jul 9 12:41:46 2011 -0700 Input: gpio_keys - switch to using SIMPLE_DEV_PM_OPS This reduces amount #ifdeds in the code. Signed-off-by: Dmitry Torokhov commit fd05d08920b54d189aa247c5c5701a08e539ed0b Author: David Jander Date: Sat Jul 9 12:41:46 2011 -0700 Input: gpio_keys - add support for device-tree platform data This patch enables fetching configuration data, which is normally provided via platform_data, from the device-tree instead. If the device is configured from device-tree data, the platform_data struct is not used, and button data needs to be allocated dynamically. Big part of this patch deals with confining pdata usage to the probe function, to make this possible. Signed-off-by: David Jander Signed-off-by: Dmitry Torokhov commit eadba0c9c41bfa840b0f1e9ee369a869c2a322b3 Author: Edwin van Vliet Date: Sun Jul 10 16:07:28 2011 -0700 Input: aiptek - remove double define Constant AIPTEK_TOOL_BUTTON_PEN_MODE was defined twice. Signed-off-by: Edwin van Vliet Reviewed-by: Jesper Juhl Signed-off-by: Dmitry Torokhov commit a66413fbc37994710d638aec3314f735a7ac0df5 Author: Dmitry Torokhov Date: Sat Jul 9 12:32:56 2011 -0700 Input: synaptics - set minimum coordinates as reported by firmware Newer Synaptics firmware allows to query minimum coordinates reported by the device, let's use this data. Acked-by: Chase Douglas Acked-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit 5c4274f13819b40e726f6ee4ef13b4952cff5010 Author: Tetsuo Handa Date: Thu Jul 7 21:20:35 2011 +0900 TOMOYO: Remove /sys/kernel/security/tomoyo/.domain_status interface. /sys/kernel/security/tomoyo/.domain_status can be easily emulated using /sys/kernel/security/tomoyo/domain_policy . We can remove this interface by updating /usr/sbin/tomoyo-setprofile utility. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 28d5fd860f97f017573c4cd8f199bab867c50a11 Author: Daniel Kurtz Date: Wed Jul 6 22:57:39 2011 -0700 Input: synaptics - process button bits in AGM packets AGM packets contain valid button bits, too. This patch refactors packet processing to parse button bits in AGM packets. However, they aren't actually used or reported. The point is to more completely process AGM packets, and prepare for future patches that may actually use AGM packet button bits. Signed-off-by: Daniel Kurtz Acked-by: Chase Douglas Signed-off-by: Dmitry Torokhov commit bea9f0ff263e1c2031d76afc21c22ad773f0b163 Author: Daniel Kurtz Date: Wed Jul 6 22:42:52 2011 -0700 Input: synaptics - rename set_slot to be more descriptive Signed-off-by: Daniel Kurtz Acked-by: Chase Douglas Signed-off-by: Dmitry Torokhov commit a9f0b79edfda3750d254ba5b192795e2554c361d Author: Daniel Kurtz Date: Wed Jul 6 22:39:14 2011 -0700 Input: synaptics - fuzz position for touchpad with reduced filtering Synaptics touchpads indicate via a capability bit when they perform reduced filtering on position data. In such a case, use a non-zero fuzz value. Fuzz = 8 was chosen empirically by observing the raw position data reported by a clickpad indicating it had reduced filtering. Signed-off-by: Daniel Kurtz Acked-by: Chase Douglas Signed-off-by: Dmitry Torokhov commit 8be3c650f54c259694e82282e54b12c14304487e Author: Daniel Kurtz Date: Wed Jul 6 22:27:47 2011 -0700 Input: synaptics - set resolution for MT_POSITION_X/Y axes Set resolution for MT_POSITION_X and MT_POSITION_Y to match ABS_X and ABS_Y, respectively. Signed-off-by: Daniel Kurtz Acked-by: Chase Douglas Signed-off-by: Dmitry Torokhov commit 84460014505685ab234fa8e1a45dffd32f3a46a7 Author: Ping Cheng Date: Wed Jul 6 18:05:43 2011 -0700 Input: wacom - cleanup a return value for the old Bamboo The old code may call input_sync() without sending any other events. While it will be suppressed by the input core not calling it at all is still cheaper. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Reviewed-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit 0bd10ef8f8a29d824561a4678f5e63350751407a Author: Ping Cheng Date: Wed Jul 6 18:05:42 2011 -0700 Input: wacom - update Graphire4 and old Bamboo tablet buttons Bamboo touch sets BTN_BACK, BTN_FORWARD, BTN_LEFT, and BTN_RIGHT as the default button events for tablet buttons. Change Graphire4 and old Bamboo to the same settings. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Reviewed-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit 998c454e1c850f8e5cc0ae2299c4789b395d6d98 Author: Ping Cheng Date: Wed Jul 6 18:05:41 2011 -0700 Input: wacom - add serial number for Graphire4 and old Bamboo With the removal of BTN_TOOL_FINGER for tablet buttons and expresskeys, serial number is needed to distingush if the events were from a regular tool (stylus, eraser, or mouse) or the attribures (buttons, strips, or wheels) on the tablet since there are overlapped events between the tools and the tablet attributes. Signed-off-by: Ping Cheng Reviewed-by: Chris Bagwell Reviewed-by: Henrik Rydberg Signed-off-by: Dmitry Torokhov commit 358ea22ee3e14894a2598580297767ccc010119b Author: Ping Cheng Date: Wed Jul 6 18:05:41 2011 -0700 Input: wacom - remove BTN_TOOL_FINGER for pad BTN_TOOL_FINGER was designed to indicate a single finger touch. Remove the lines that borrowed this type for expresskeys and tablet buttons. Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit e8e70d83912b40c5c9ea7b85a6110b9925fbed62 Author: Chris Hudson Date: Wed Jul 6 18:36:51 2011 -0700 Input: add support for Kionix KXTJ9 accelerometer Signed-off-by: Chris Hudson Signed-off-by: Dmitry Torokhov commit 7bed4b2c97d548c652ada6111604568ea6b0c423 Author: Simon Budig Date: Mon Jul 4 19:56:01 2011 -0700 Input: add guarding parentheses to macros Put parentheses around macro argument uses. This avoids pitfalls for the programmer, where the argument expansion does not give the expected result, for example: ioctl (fd, EVIOCGABS (have_mt ? ABS_MT_POSITION_X : ABS_X), &abs); Signed-off-by: Simon Budig Signed-off-by: Dmitry Torokhov commit 77da38387e1c6f473744afccd83795805f506498 Author: Wolfram Sang Date: Mon Jul 4 19:22:01 2011 -0700 Input: wm97xx - mark channels which need pen_down Currently, battery drivers also use poll_sample() provided by the wm97xx-core but this code always checks if the pen is down. Mark the channels which really need this (i.e. for the touchscreen) with the PEN_DOWN bit, and skip the checks otherwise. Now, the battery channels can always be read. Signed-off-by: Wolfram Sang Acked-by: Mark Brown Signed-off-by: Dmitry Torokhov commit c8f205258bc8942e79cd37ebc1c8ec4652a1a501 Author: Wolfram Sang Date: Mon Jul 4 19:22:00 2011 -0700 Input: wm97xx - refactor channel selection in poll_sample() The current implementation of poll_sample() has the problem that one of its arguments, the channel to be selected, differs from wm9713 to other variants. This parameter gets passed to the (currently unused) mach-specific functions pre_sample() and post_sample() which thus have to deal with codec-specific differences. Refactor the routine so that the argument to poll_sample() is generic for all codecs and do necessary conversions only in the codec-specific driver. The outcome even uses less code and removes the non-standard use of the PEN_DOWN bit to mark the AUX-channels. Signed-off-by: Wolfram Sang Acked-by: Mark Brown Signed-off-by: Dmitry Torokhov commit 2456689b3b11ddecc091cd5f00b9adea6a9854cf Author: Wolfram Sang Date: Mon Jul 4 19:22:00 2011 -0700 Input: wm97xx - remove redundant define Signed-off-by: Wolfram Sang Acked-by: Mark Brown Signed-off-by: Dmitry Torokhov commit 5f098ecd4288333d87e2293239fab1c13ec90dae Author: Stefano Stabellini Date: Mon Jul 4 19:22:00 2011 -0700 Input: xen-kbdfront - enable driver for HVM guests Signed-off-by: Stefano Stabellini Acked-by: Konrad Rzeszutek Wilk Signed-off-by: Dmitry Torokhov commit b514d4f7c6506b696d7de6a4426d0886753e43c9 Author: Chris Moeller Date: Mon Jul 4 19:21:59 2011 -0700 Input: xpad - enable rumble support for XBox360 Wireless Controllers This patch implements rumble support for XBox360 Wireless Controllers. Signed-off-by: Chris Moeller Signed-off-by: Dmitry Torokhov commit cca8edfd2ec2a34d9f50f593bc753bb11e1bc1f5 Author: Dmitry Torokhov Date: Mon Jul 4 06:34:48 2011 -0700 Input: sh_keysc - fix compile warning The "#if" above should really be an "#ifdef" to avoid this warning: CC drivers/input/keyboard/sh_keysc.o drivers/input/keyboard/sh_keysc.c:294:5: warning: "CONFIG_PM_SLEEP" is not defined Reported-by: Magnus Damm Signed-off-by: Dmitry Torokhov commit a93d4f2d023ea5e84c0104d4e479243c6ac77d17 Author: Iiro Valkonen Date: Mon Jul 4 03:16:25 2011 -0700 Input: atmel_mxt_ts - handle objects with multiple instances correctly Handle the objects with multiple instances correctly when the configuration data is loaded. Signed-off-by: Iiro Valkonen Signed-off-by: Dmitry Torokhov commit 81c88a711aef5552375c4296bb473fdf9b12273c Author: Iiro Valkonen Date: Mon Jul 4 03:08:25 2011 -0700 Input: atmel_mxt_ts - update object list Update the object list to include new objects, and add unique identifiers so we can distinguish between old & new generation of the same object. Signed-off-by: Iiro Valkonen Signed-off-by: Dmitry Torokhov commit ea504819122a76a236f8b95d1556f807a0a41397 Author: Tetsuo Handa Date: Thu Jun 30 17:32:30 2011 +0900 TOMOYO: Fix wrong domainname in tomoyo_init_log(). Commit eadd99cc "TOMOYO: Add auditing interface." by error replaced "struct tomoyo_request_info"->domain with tomoyo_domain(). Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit ad599f9cf0187e823bc92bc83f3867a38fa266b9 Author: Mimi Zohar Date: Wed Jun 29 14:53:56 2011 -0400 encrypted-keys: move ecryptfs documentation to proper location Move keys-ecryptfs.txt to Documentation/security. Signed-off-by: Mimi Zohar Signed-off-by: James Morris commit 3ddf17f08cf2f0d7ff06858eb07d1cc3db8994de Author: Tetsuo Handa Date: Wed Jun 29 14:22:37 2011 +0900 TOMOYO: Cleanup header file. Sort by alphabetic order. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 3a6297abf3b179ae19b849e429841a7646711b70 Author: Tetsuo Handa Date: Wed Jun 29 14:17:31 2011 +0900 TOMOYO: Update MAINTAINERS file. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 7986cf28bc5050967a7056d6eadda7f16f84eaab Author: Tetsuo Handa Date: Wed Jun 29 13:07:52 2011 +0900 TOMOYO: Fix build error with CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER=y . I forgot to add #ifndef in commit 0e4ae0e0 "TOMOYO: Make several options configurable.", resulting security/built-in.o: In function `tomoyo_bprm_set_creds': tomoyo.c:(.text+0x4698e): undefined reference to `tomoyo_load_policy' error. Reported-by: Stephen Rothwell Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit da3f1c7b7d34e66cf571a613525ca0d23f92d42f Merge: 5b944a71a192977c1c018bbcfa0c52dca48e2368 25e75dff519bcce2cb35023105e7df51d7b9e691 Author: James Morris Date: Thu Jun 30 18:44:55 2011 +1000 Merge branch 'for-security' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/apparmor-dev into next commit 5b944a71a192977c1c018bbcfa0c52dca48e2368 Merge: 0e4ae0e0dec634b2ae53ac57d14141b140467dbe c017d0d1351f916c0ced3f358afc491fdcf490b4 Author: James Morris Date: Thu Jun 30 18:43:56 2011 +1000 Merge branch 'linus' into next commit c7b4a5d58bffdf3aa7f923319643af0ebf925515 Author: Jiejing Zhang Date: Wed Jun 29 01:28:21 2011 -0700 Input: mpr121 - improve sensibility of touch key The Quick Charge bit in Electrode conf register should be set in init function. This bit was missed in chip's document, which may cause touch controller charge too slow to generate an interrupt. Also, adjust the default vlaue of touch and release threshold to make touch key more sensitive, this fix touch may not sensitive after setup with plastic case. Signed-off-by: Jiejing Zhang Signed-off-by: Dmitry Torokhov commit 631b16e81eab82e2894425a94c3fc14bf21adb26 Author: Joseph Lai Date: Mon Jun 27 13:26:53 2011 -0700 Input: add a driver to support InvenSense mpu3050 gyroscope chip This driver is registered as an input device. An IRQ is required in this basic driver configuration. Signed-off-by: Joseph Lai [Cleaned up PM_RUNTIME defines] Signed-off-by: Alan Cox [dtor@mail.ru: consolidated PM methods, some code rearrangement] Signed-off-by: Dmitry Torokhov commit 7c40952295db64867a45938b860a217b622cc3ed Author: Hans-Christian Egtvedt Date: Wed Jun 29 00:13:26 2011 -0700 Input: update author email for gpio_mouse, at32psif, and atmel-wm97xx This patch updates the email address of the gpio_mouse, at32psif, and atmel-wm97xx drivers supported by me to an email account I will use on a more regular basis in the future. Signed-off-by: Hans-Christian Egtvedt Signed-off-by: Dmitry Torokhov commit 1638207910019368253fc4c4a930c49ce2e98432 Author: Axel Lin Date: Tue Jun 28 14:23:30 2011 -0700 Input: gpio_keys - fix a memory leak Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit 25e75dff519bcce2cb35023105e7df51d7b9e691 Author: John Johansen Date: Sat Jun 25 16:57:07 2011 +0100 AppArmor: Fix masking of capabilities in complain mode AppArmor is masking the capabilities returned by capget against the capabilities mask in the profile. This is wrong, in complain mode the profile has effectively all capabilities, as the profile restrictions are not being enforced, merely tested against to determine if an access is known by the profile. This can result in the wrong behavior of security conscience applications like sshd which examine their capability set, and change their behavior accordingly. In this case because of the masked capability set being returned sshd fails due to DAC checks, even when the profile is in complain mode. Kernels affected: 2.6.36 - 3.0. Signed-off-by: John Johansen commit 04fdc099f9c80c7775dbac388fc97e156d4d47e7 Author: John Johansen Date: Tue Jun 28 15:06:38 2011 +0100 AppArmor: Fix reference to rcu protected pointer outside of rcu_read_lock The pointer returned from tracehook_tracer_task() is only valid inside the rcu_read_lock. However the tracer pointer obtained is being passed to aa_may_ptrace outside of the rcu_read_lock critical section. Mover the aa_may_ptrace test into the rcu_read_lock critical section, to fix this. Kernels affected: 2.6.36 - 3.0 Reported-by: Oleg Nesterov Cc: stable@kernel.org Signed-off-by: John Johansen commit 0e4ae0e0dec634b2ae53ac57d14141b140467dbe Author: Tetsuo Handa Date: Sun Jun 26 23:22:59 2011 +0900 TOMOYO: Make several options configurable. To be able to start using enforcing mode from the early stage of boot sequence, this patch adds support for activating access control without calling external policy loader program. This will be useful for systems where operations which can lead to the hijacking of the boot sequence are needed before loading the policy. For example, you can activate immediately after loading the fixed part of policy which will allow only operations needed for mounting a partition which contains the variant part of policy and verifying (e.g. running GPG check) and loading the variant part of policy. Since you can start using enforcing mode from the beginning, you can reduce the possibility of hijacking the boot sequence. This patch makes several variables configurable on build time. This patch also adds TOMOYO_loader= and TOMOYO_trigger= kernel command line option to boot the same kernel in two different init systems (BSD-style init and systemd). Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit efe836ab2b514ae7b59528af36d452978b42d266 Author: Tetsuo Handa Date: Sun Jun 26 23:22:18 2011 +0900 TOMOYO: Add built-in policy support. To be able to start using enforcing mode from the early stage of boot sequence, this patch adds support for built-in policy configuration (and next patch adds support for activating access control without calling external policy loader program). Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit b22b8b9fd90eecfb7133e56b4e113595f09f4492 Author: Tetsuo Handa Date: Sun Jun 26 23:21:50 2011 +0900 TOMOYO: Rename meminfo to stat and show more statistics. Show statistics such as last policy update time and last policy violation time in addition to memory usage. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 2c47ab9353242b0f061959318f83c55360b88fa4 Author: Tetsuo Handa Date: Sun Jun 26 23:21:19 2011 +0900 TOMOYO: Cleanup part 4. Gather string constants to one file in order to make the object size smaller. Use unsigned type where appropriate. read()/write() returns ssize_t. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 2e503bbb435ae418aebbe4aeede1c6f2a33d6f74 Author: Tetsuo Handa Date: Sun Jun 26 23:20:55 2011 +0900 TOMOYO: Fix lockdep warning. Currently TOMOYO holds SRCU lock upon open() and releases it upon close() because list elements stored in the "struct tomoyo_io_buffer" instances are accessed until close() is called. However, such SRCU usage causes lockdep to complain about leaving the kernel with SRCU lock held. This patch solves the warning by holding/releasing SRCU upon each read()/write(). This patch is doing something similar to calling kfree() without calling synchronize_srcu(), by selectively deferring kfree() by keeping track of the "struct tomoyo_io_buffer" instances. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 5625f2e3266319fd29fe4f1c76ccd3f550c79ac4 Author: Tetsuo Handa Date: Sun Jun 26 23:20:23 2011 +0900 TOMOYO: Change pathname for non-rename()able filesystems. TOMOYO wants to use /proc/self/ rather than /proc/$PID/ if $PID matches current thread's process ID in order to prevent current thread from accessing other process's information unless needed. But since procfs can be mounted on various locations (e.g. /proc/ /proc2/ /p/ /tmp/foo/100/p/ ), TOMOYO cannot tell that whether the numeric part in the string returned by __d_path() represents process ID or not. Therefore, to be able to convert from $PID to self no matter where procfs is mounted, this patch changes pathname representations for filesystems which do not support rename() operation (e.g. proc, sysfs, securityfs). Examples: /proc/self/mounts => proc:/self/mounts /sys/kernel/security/ => sys:/kernel/security/ /dev/pts/0 => devpts:/0 Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit bd03a3e4c9a9df0c6b007045fa7fc8889111a478 Author: Tetsuo Handa Date: Sun Jun 26 23:19:52 2011 +0900 TOMOYO: Add policy namespace support. Mauras Olivier reported that it is difficult to use TOMOYO in LXC environments, for TOMOYO cannot distinguish between environments outside the container and environments inside the container since LXC environments are created using pivot_root(). To address this problem, this patch introduces policy namespace. Each policy namespace has its own set of domain policy, exception policy and profiles, which are all independent of other namespaces. This independency allows users to develop policy without worrying interference among namespaces. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 32997144fd9925fc4d506a16990a0c405f766526 Author: Tetsuo Handa Date: Sun Jun 26 23:19:28 2011 +0900 TOMOYO: Add ACL group support. ACL group allows administrator to globally grant not only "file read" permission but also other permissions. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit eadd99cc85347b4f9eb10122ac90032eb4971b02 Author: Tetsuo Handa Date: Sun Jun 26 23:18:58 2011 +0900 TOMOYO: Add auditing interface. Add /sys/kernel/security/tomoyo/audit interface. This interface generates audit logs in the form of domain policy so that /usr/sbin/tomoyo-auditd can reuse audit logs for appending to /sys/kernel/security/tomoyo/domain_policy interface. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit d5ca1725ac9ba876c2dd614bb9826d0c4e13d818 Author: Tetsuo Handa Date: Sun Jun 26 23:18:21 2011 +0900 TOMOYO: Simplify profile structure. Remove global preference from profile structure in order to make code simpler. Due to this structure change, printk() warnings upon policy violation are temporarily disabled. They will be replaced by /sys/kernel/security/tomoyo/audit by next patch. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 0d2171d711cbfca84cc0001121be8a6cc8e4d148 Author: Tetsuo Handa Date: Sun Jun 26 23:17:46 2011 +0900 TOMOYO: Rename directives. Convert "allow_..." style directives to "file ..." style directives. By converting to the latter style, we can pack policy like "file read/write/execute /path/to/file". Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit a238cf5b89ed5285be8de56335665d023972f7d5 Author: Tetsuo Handa Date: Sun Jun 26 23:17:10 2011 +0900 TOMOYO: Use struct for passing ACL line. Use structure for passing ACL line, in preparation for supporting policy namespace and conditional parameters. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 0df7e8b8f1c25c10820bdc679555f2fbfb897ca0 Author: Tetsuo Handa Date: Sun Jun 26 23:16:36 2011 +0900 TOMOYO: Cleanup part 3. Use common structure for ACL with "struct list_head" + "atomic_t". Use array/struct where possible. Remove is_group from "struct tomoyo_name_union"/"struct tomoyo_number_union". Pass "struct file"->private_data rather than "struct file". Update some of comments. Bring tomoyo_same_acl_head() from common.h to domain.c . Bring tomoyo_invalid()/tomoyo_valid() from common.h to util.c . Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit b5bc60b4ce313b6dbb42e7d32915dcf0a07c2a68 Author: Tetsuo Handa Date: Sun Jun 26 23:16:03 2011 +0900 TOMOYO: Cleanup part 2. Update (or temporarily remove) comments. Remove or replace some of #define lines. Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 7c75964f432d14062d8eccfc916aa290f56b5aab Author: Tetsuo Handa Date: Sun Jun 26 23:15:31 2011 +0900 TOMOYO: Cleanup part 1. In order to synchronize with TOMOYO 1.8's syntax, (1) Remove special handling for allow_read/write permission. (2) Replace deny_rewrite/allow_rewrite permission with allow_append permission. (3) Remove file_pattern keyword. (4) Remove allow_read permission from exception policy. (5) Allow creating domains in enforcing mode without calling supervisor. (6) Add permission check for opening directory for reading. (7) Add permission check for stat() operation. (8) Make "cat < /sys/kernel/security/tomoyo/self_domain" behave as if "cat /sys/kernel/security/tomoyo/self_domain". Signed-off-by: Tetsuo Handa Signed-off-by: James Morris commit 58c244009ef6ca450f0d787828a7f2f27651db5b Author: Igor Grinberg Date: Mon Jun 27 13:06:27 2011 -0700 Input: ads7846 - cleanup GPIO initialization Use gpio_request_one() instead of multiple gpiolib calls. This also simplifies error handling a bit. Signed-off-by: Igor Grinberg Signed-off-by: Dmitry Torokhov commit 11d0cf8859451d6336959204b2d4cc173dd1aa4e Author: Ping Cheng Date: Mon Jun 27 12:57:58 2011 -0700 Input: wacom - add 3 new models - 6A, 6B, and 97 Tested-by: Alex Tervoort for 6A Signed-off-by: David Foley Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit a001a8f3cedb0e3cb92ff3abdb3170df7da92d47 Author: Ping Cheng Date: Mon Jun 27 12:57:58 2011 -0700 Input: wacom - Wacom Bamboo Pen D4 has 1024 pressure levels D4 has 1024, not 512, pressure levels. Reported-by: David Foley Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit b23302052d96a3945e4c72aca77b5fd28884c353 Author: David Jander Date: Thu Jun 23 01:30:09 2011 -0700 Input: gpio_keys - move to late_initcall Initialize gpio_keys driver at late_initcall level, to give it a chance to work with GPIO expanders that might not be ready yet if we initialize the driver at module_init time. This is strictly a band-aid until there is a better way to specify inter-device dependencies. Signed-off-by: David Jander Acked-by: Grant Likely Signed-off-by: Dmitry Torokhov commit 6a592a7f4514cd744e154a146db1ab7af06a7ee7 Author: Axel Lin Date: Mon Jun 27 12:42:12 2011 -0700 Input: tnetv107x-ts - fix MODULE_ALIAS Remove the space between "platform:" prefix and the driver name. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit 51a3db41e18254b938279cb4b160310e11a13d4f Author: Axel Lin Date: Mon Jun 27 12:38:43 2011 -0700 Input: tnetv107x-keypad - fix MODULE_ALIAS Remove the space between "platform:" prefix and the driver name. Signed-off-by: Axel Lin Signed-off-by: Dmitry Torokhov commit 5993548725ba3f3deb2b90a681a62dbb7bd17961 Author: Jesper Juhl Date: Mon Jun 27 11:59:43 2011 -0700 Input: remove unneeded version.h includes It was pointed out by 'make versioncheck' that some includes of linux/version.h are not needed in drivers/input/. This patch removes them. Signed-off-by: Jesper Juhl Acked-by: Mike Frysinger Acked-by: Michael Hennerich Signed-off-by: Dmitry Torokhov commit 1252cc3b232e582e887623dc5f70979418caaaa2 Author: Roberto Sassu Date: Mon Jun 27 13:45:45 2011 +0200 eCryptfs: added support for the encrypted key type The function ecryptfs_keyring_auth_tok_for_sig() has been modified in order to search keys of both 'user' and 'encrypted' types. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Acked-by: Tyler Hicks Signed-off-by: Mimi Zohar commit 79a73d188726b473ca3bf483244bc96096831905 Author: Roberto Sassu Date: Mon Jun 27 13:45:44 2011 +0200 encrypted-keys: add ecryptfs format support The 'encrypted' key type defines its own payload format which contains a symmetric key randomly generated that cannot be used directly to mount an eCryptfs filesystem, because it expects an authentication token structure. This patch introduces the new format 'ecryptfs' that allows to store an authentication token structure inside the encrypted key payload containing a randomly generated symmetric key, as the same for the format 'default'. More details about the usage of encrypted keys with the eCryptfs filesystem can be found in the file 'Documentation/keys-ecryptfs.txt'. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Acked-by: Tyler Hicks Signed-off-by: Mimi Zohar commit f8f8527103a264b5e4ab2ce5c1743b28f3219d90 Author: Roberto Sassu Date: Mon Jun 27 13:45:43 2011 +0200 eCryptfs: export global eCryptfs definitions to include/linux/ecryptfs.h Some eCryptfs specific definitions, such as the current version and the authentication token structure, are moved to the new include file 'include/linux/ecryptfs.h', in order to be available for all kernel subsystems. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Acked-by: Tyler Hicks Acked-by: David Howells Signed-off-by: Mimi Zohar commit 4e561d388feff18e4b798cef6a1a84a2cc7f20c2 Author: Roberto Sassu Date: Mon Jun 27 13:45:42 2011 +0200 encrypted-keys: add key format support This patch introduces a new parameter, called 'format', that defines the format of data stored by encrypted keys. The 'default' format identifies encrypted keys containing only the symmetric key, while other formats can be defined to support additional information. The 'format' parameter is written in the datablob produced by commands 'keyctl print' or 'keyctl pipe' and is integrity protected by the HMAC. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Acked-by: David Howells Signed-off-by: Mimi Zohar commit 7103dff0e598cd634767f17a2958302c515700ca Author: Roberto Sassu Date: Mon Jun 27 13:45:41 2011 +0200 encrypted-keys: added additional debug messages Some debug messages have been added in the function datablob_parse() in order to better identify errors returned when dealing with 'encrypted' keys. Changelog from version v4: - made the debug messages more understandable Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Signed-off-by: Mimi Zohar commit 08fa2aa54e72ddde8076cc77126bace8d4780e0f Author: Roberto Sassu Date: Mon Jun 27 13:45:40 2011 +0200 encrypted-keys: fixed valid_master_desc() function description Valid key type prefixes for the parameter 'key-type' are: 'trusted' and 'user'. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Acked-by: David Howells Signed-off-by: Mimi Zohar commit f91c2c5cfa2950a20265b45bcc13e49ed9e49aac Author: Roberto Sassu Date: Mon Jun 27 13:45:39 2011 +0200 encrypted_keys: avoid dumping the master key if the request fails Do not dump the master key if an error is encountered during the request. Signed-off-by: Roberto Sassu Acked-by: Gianluca Ramunno Signed-off-by: Mimi Zohar commit 3ead8b5ddbe6ca8e79b24535f4119c9d4ffd91e3 Author: Eric Miao Date: Wed Jun 22 01:02:50 2011 -0700 Input: add support for mma8450 accelerometer Signed-off-by: Sammy He Signed-off-by: Eric Miao Signed-off-by: Dmitry Torokhov commit 1483f5513b2d215216ad56c618b42454c5bc1e4d Author: Aristeu Rozanski Date: Wed Jun 22 01:17:17 2011 -0700 Input: wacom - use only one interface with DTU-2231 The Wacom DTU-2231 tablet has two interfaces on its default configuration and both have HID class, leading to the creation of two input devices instead of one. Only the first one is used, so filter out the second. Signed-off-by: Aristeu Rozanski Signed-off-by: Dmitry Torokhov commit 71c86ce59791bcd67af937bbea719a508079d7c2 Author: Ping Cheng Date: Wed Jun 22 01:02:51 2011 -0700 Input: wacom - Cintiq 21UX2 does not have menu strips So don't set ABS_RX/ABS_RY for them. Signed-off-by: Ping Cheng Signed-off-by: Dmitry Torokhov commit fabadbc754cf461e8d68e5f8ff53f287dcee41b2 Author: Magnus Hörlin Date: Tue Jun 21 14:40:30 2011 -0700 Input: xpad - add support for two more dance pads and a guitar Signed-off-by: Magnus Hörlin Reviewed-by: Christoph Fritz Signed-off-by: Dmitry Torokhov commit 7e2ecdf438bb479e2b4667fc16b1a84d6348da04 Author: David Jander Date: Tue Jun 21 14:26:18 2011 -0700 Input: gpio_keys - switch to using threaded IRQs Use a threaded interrupt handler in order to permit the handler to use a GPIO driver that causes things like I2C transactions being done inside the handler context. Signed-off-by: David Jander Acked-by: Grant Likely Signed-off-by: Dmitry Torokhov commit eaa499aebf6265f18ffc836ead30059031c6d7a7 Author: Leigh Brown Date: Tue Jun 21 04:25:21 2011 -0700 Input: lm8323 - use oneshot level triggered interrupts According to the data sheet the interrupt should be level rather than edge triggered. This fixes the issue of the Nokia N810 keypad stopping responding if multiple key events occur in quick succession. Signed-off-by: Leigh Brown Signed-off-by: Dmitry Torokhov commit 61cf3813d32411b23d5df8a650bbd2aa89b4618c Author: Felipe Balbi Date: Tue Jun 21 04:20:57 2011 -0700 Input: lm8323 - convert to threaded IRQ There's no need for that workqueue anymore. Get rid of it and move to threaded IRQs instead. Signed-off-by: Felipe Balbi Tested-by: Leigh Brown Signed-off-by: Dmitry Torokhov commit fef95faeae9fa5f605fbad8693e2d6e2171f5ad4 Author: Wolfram Sang Date: Tue Jun 21 04:20:57 2011 -0700 Input: qt1070 - remove obsolete cleanup for clientdata A few new i2c-drivers came into the kernel which clear the clientdata pointer on exit or error. This is not required anymore since the core will do it for us. Signed-off-by: Wolfram Sang Acked-by: Jean Delvare Signed-off-by: Dmitry Torokhov commit 4d67431f80b1b822f0286afc9123ee453eac7334 Author: David Howells Date: Mon Jun 13 22:33:52 2011 +0100 KEYS: Don't return EAGAIN to keyctl_assume_authority() Don't return EAGAIN to keyctl_assume_authority() to indicate that a key could not be found (ENOKEY is only returned if a negative key is found). Instead return ENOKEY in both cases. Signed-off-by: David Howells Signed-off-by: James Morris commit 2ce9738bac1b386f46e8478fd2c263460e7c2b09 Author: eparis@redhat Date: Thu Jun 2 21:20:51 2011 +1000 cgroupfs: use init_cred when populating new cgroupfs mount We recently found that in some configurations SELinux was blocking the ability for cgroupfs to be mounted. The reason for this is because cgroupfs creates files and directories during the get_sb() call and also uses lookup_one_len() during that same get_sb() call. This is a problem since the security subsystem cannot initialize the superblock and the inodes in that filesystem until after the get_sb() call returns. Thus we leave the inodes in an unitialized state during get_sb(). For the vast majority of filesystems this is not an issue, but since cgroupfs uses lookup_on_len() it does search permission checks on the directories in the path it walks. Since the inode security state is not set up SELinux does these checks as if the inodes were 'unlabeled.' Many 'normal' userspace process do not have permission to interact with unlabeled inodes. The solution presented here is to do the permission checks of path walk and inode creation as the kernel rather than as the task that called mount. Since the kernel has permission to read/write/create unlabeled inodes the get_sb() call will complete successfully and the SELinux code will be able to initialize the superblock and those inodes created during the get_sb() call. This appears to be the same solution used by other filesystems such as devtmpfs to solve the same issue and should thus have no negative impact on other LSMs which currently work. Signed-off-by: Eric Paris Acked-by: Paul Menage Signed-off-by: James Morris commit f55cf3c76a3b2e4bdcfea4f95c9d527663b41ece Author: James Morris Date: Thu Jun 9 10:24:49 2011 +1000 Merge branch 'linus'; commit 'v3.0-rc2' into next ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From aelder@oss.sgi.com Fri Jul 29 12:54:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=ALL_TRUSTED,BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from oss.sgi.com (localhost [127.0.0.1]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6THsTQZ060706 for ; Fri, 29 Jul 2011 12:54:29 -0500 Received: (from aelder@localhost) by oss.sgi.com (8.14.3/8.14.3/Submit) id p6THsRSK060657; Fri, 29 Jul 2011 12:54:27 -0500 Date: Fri, 29 Jul 2011 12:54:27 -0500 Message-Id: <201107291754.p6THsRSK060657@oss.sgi.com> From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-linus, updated. v2.6.38-26921-ga5a7bbc X-Git-Refname: refs/heads/for-linus X-Git-Reftype: branch X-Git-Oldrev: 510792ee29770a38dd409bf2b469ade2fea9eb52 X-Git-Newrev: a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-linus has been updated a5a7bbc xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set 597a67e Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs 0320937 xfs: fix misspelled S_IS...() abbede1 xfs: get rid of open-coded S_ISREG(), etc. from 510792ee29770a38dd409bf2b469ade2fea9eb52 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 Author: Markus Trippelsdorf Date: Tue Jul 26 11:15:20 2011 +0200 xfs: Fix build breakage in xfs_iops.c when CONFIG_FS_POSIX_ACL is not set commit 4e34e719e45, that takes the ACL checks to common code, accidentely broke the build when CONFIG_FS_POSIX_ACL is not set: CC fs/xfs/linux-2.6/xfs_iops.o fs/xfs/linux-2.6/xfs_iops.c:1025:14: error: ‘xfs_get_acl’ undeclared here (not in a function) Fix this by declaring xfs_get_acl a static inline function. Signed-off-by: Markus Trippelsdorf Signed-off-by: Alex Elder commit 597a67e0ba758e3d2239c81fbb648c6e69ec30a2 Merge: 28890d3598c352ae065b560e0fded3e79c800ba1 510792ee29770a38dd409bf2b469ade2fea9eb52 Author: Linus Torvalds Date: Wed Jul 27 13:41:51 2011 -0700 Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs * 'for-linus' of git://oss.sgi.com/xfs/xfs: xfs: optimize the negative xattr caching xfs: prevent against ioend livelocks in xfs_file_fsync xfs: flag all buffers as metadata xfs: encapsulate a block of debug code commit 03209378b4b25775bf5e6a86e86f074a1057a439 Author: Al Viro Date: Mon Jul 25 20:54:24 2011 -0400 xfs: fix misspelled S_IS...() mode_t is not a bitmap... Signed-off-by: Al Viro commit abbede1b3a680e108d61aaa415ce5153296e775d Author: Al Viro Date: Tue Jul 26 02:31:30 2011 -0400 xfs: get rid of open-coded S_ISREG(), etc. Signed-off-by: Al Viro ----------------------------------------------------------------------- Summary of changes: fs/xfs/linux-2.6/xfs_ioctl.c | 6 +++--- fs/xfs/xfs_acl.h | 5 ++++- fs/xfs/xfs_bmap.c | 7 +++---- fs/xfs/xfs_dir2.c | 16 ++++++++-------- fs/xfs/xfs_filestream.c | 14 +++++++------- fs/xfs/xfs_inode.c | 16 ++++++++-------- fs/xfs/xfs_inode.h | 2 +- fs/xfs/xfs_log_recover.c | 4 ++-- fs/xfs/xfs_mount.c | 2 +- fs/xfs/xfs_rename.c | 4 ++-- fs/xfs/xfs_vnodeops.c | 10 +++++----- 11 files changed, 44 insertions(+), 42 deletions(-) hooks/post-receive -- XFS development tree From aelder@sgi.com Fri Jul 29 13:06:01 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TI61nY061834 for ; Fri, 29 Jul 2011 13:06:01 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay1.corp.sgi.com (Postfix) with ESMTP id 922EF8F8068 for ; Fri, 29 Jul 2011 11:05:58 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 29 Jul 2011 13:05:15 -0500 Subject: Re: [XFS updates] XFS development tree branch, linus-master, created. v2.6.38-26921-ga5a7bbc From: Alex Elder Reply-To: To: In-Reply-To: <201107291751.p6THpmaL060195@oss.sgi.com> References: <201107291751.p6THpmaL060195@oss.sgi.com> Content-Type: text/plain; charset="UTF-8" Date: Fri, 29 Jul 2011 13:04:52 -0500 Message-ID: <1311962692.2790.27.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-29 at 12:51 -0500, xfs@oss.sgi.com wrote: > This is an automated email from the git hooks/post-receive script. It was > generated because a ref change was pushed to the repository containing > the project "XFS development tree". > > The branch, linus-master has been created > at a5a7bbcc0137e5cdad21cce0962f6be0b7ecf173 (commit) Very sorry about that. I used the wrong branch name. This branch has now been deleted and "for-linus" has been pushed instead. -Alex From wkendall@sgi.com Fri Jul 29 15:40:37 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKebOI066909 for ; Fri, 29 Jul 2011 15:40:37 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id 001D28F8078 for ; Fri, 29 Jul 2011 13:40:33 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id D4B9470006F8 for ; Fri, 29 Jul 2011 15:40:33 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id 919642031098; Fri, 29 Jul 2011 15:40:33 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Subject: [PATCH 0/4] xfsdump: convert to using the POSIX signal API Date: Fri, 29 Jul 2011 15:40:07 -0500 Message-Id: <1311972011-1446-1-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This patch series converts xfsdump from using the System V signal API to using the POSIX API. The first 3 patches remove/rework some of the existing signal code, and the final patch does the actual conversion. The primary motivatation for this change is a currently unused section of code in xfsdump's main(): /* sleep until next signal */ sigrelse(SIGINT); sigrelse(SIGHUP); ... sigpause(SIGARLM); The intention is to wake up if any of the signals is received, but this will only wake up if SIGALRM is received. Using sigsuspend() with the appropriate mask fixes the issue. From wkendall@sgi.com Fri Jul 29 15:40:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.7 required=5.0 tests=BAYES_00,J_CHICKENPOX_101, J_CHICKENPOX_41 autolearn=no version=3.4.0-r929098 Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKevwQ066935 for ; Fri, 29 Jul 2011 15:40:57 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6CF1AAC008; Fri, 29 Jul 2011 13:40:54 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id 33DD370006F8; Fri, 29 Jul 2011 15:40:54 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id 28A2A2031098; Fri, 29 Jul 2011 15:40:54 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Cc: Bill Kendall Subject: [PATCH 1/4] xfsdump: remove conditional OPENMASKED code Date: Fri, 29 Jul 2011 15:40:08 -0500 Message-Id: <1311972011-1446-2-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1311972011-1446-1-git-send-email-wkendall@sgi.com> References: <1311972011-1446-1-git-send-email-wkendall@sgi.com> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean xfsdump contains a couple wrapper functions which block signals during an open(2) call. This code is conditionally compiled and has not been enabled for a long time. Remove the wrappers rather than converting them to use the POSIX signal API. Signed-off-by: Bill Kendall --- common/drive_minrmt.c | 58 +--------------------------------------------- common/drive_scsitape.c | 58 +--------------------------------------------- 2 files changed, 4 insertions(+), 112 deletions(-) diff --git a/common/drive_minrmt.c b/common/drive_minrmt.c index 94795e2..eb7876a 100644 --- a/common/drive_minrmt.c +++ b/common/drive_minrmt.c @@ -24,11 +24,9 @@ #include #include #include -#include #include #include #include -#include #include #include @@ -59,12 +57,6 @@ /* remote tape protocol debug */ -#ifdef OPENMASKED -static intgen_t open_masked_signals( char *path, int oflags ); -#else /* OPENMASKED */ -#define open_masked_signals(p,f) open(p,f) -#endif /* OPENMASKED */ - #ifdef RMT #ifdef RMTDBG #define open(p,f) dbgrmtopen(p,f) @@ -455,7 +447,7 @@ ds_match( int argc, char *argv[], drive_t *drivep, bool_t singlethreaded ) } cmdlineblksize = ( u_int32_t )atoi( optarg ); errno = 0; - fd = open_masked_signals( drivep->d_pathname, O_RDONLY ); + fd = open( drivep->d_pathname, O_RDONLY ); if ( fd < 0 ) return -10; close( fd ); @@ -3435,7 +3427,7 @@ Open( drive_t *drivep ) ASSERT( contextp->dc_fd == -1 ); errno = 0; - contextp->dc_fd = open_masked_signals( drivep->d_pathname, oflags ); + contextp->dc_fd = open( drivep->d_pathname, oflags ); if ( contextp->dc_fd <= 0 ) { return BOOL_FALSE; @@ -4039,49 +4031,3 @@ isxfsdumperasetape( drive_t *drivep ) else return BOOL_FALSE; } - -#ifdef OPENMASKED - -static intgen_t -open_masked_signals( char *pathname, int oflags ) -{ - bool_t isrmtpr; - SIG_PF sigalrm_save; - SIG_PF sigint_save; - SIG_PF sighup_save; - SIG_PF sigquit_save; - SIG_PF sigcld_save; - intgen_t rval; - intgen_t saved_errno; - - if ( strchr( pathname, ':') ) { - isrmtpr = BOOL_TRUE; - } else { - isrmtpr = BOOL_FALSE; - } - - if ( isrmtpr ) { - sigalrm_save = sigset( SIGALRM, SIG_IGN ); - sigint_save = sigset( SIGINT, SIG_IGN ); - sighup_save = sigset( SIGHUP, SIG_IGN ); - sigquit_save = sigset( SIGQUIT, SIG_IGN ); - sigcld_save = sigset( SIGCLD, SIG_IGN ); - } - - errno = 0; - rval = open( pathname, oflags ); - saved_errno = errno; - - if ( isrmtpr ) { - ( void )sigset( SIGCLD, sigcld_save ); - ( void )sigset( SIGQUIT, sigquit_save ); - ( void )sigset( SIGHUP, sighup_save ); - ( void )sigset( SIGINT, sigint_save ); - ( void )sigset( SIGALRM, sigalrm_save ); - } - - errno = saved_errno; - return rval; -} - -#endif /* OPENMASKED */ diff --git a/common/drive_scsitape.c b/common/drive_scsitape.c index 0f034b7..d72ba69 100644 --- a/common/drive_scsitape.c +++ b/common/drive_scsitape.c @@ -24,11 +24,9 @@ #include #include #include -#include #include #include #include -#include #include #include @@ -55,12 +53,6 @@ /* remote tape protocol debug */ -#ifdef OPENMASKED -static intgen_t open_masked_signals( char *path, int oflags ); -#else /* OPENMASKED */ -#define open_masked_signals(p,f) open(p,f) -#endif /* OPENMASKED */ - #ifdef RMT #ifdef RMTDBG #define open(p,f) dbgrmtopen(p,f) @@ -539,7 +531,7 @@ ds_match( int argc, char *argv[], drive_t *drivep, bool_t singlethreaded ) if ( strchr( drivep->d_pathname, ':')) { errno = 0; - fd = open_masked_signals( drivep->d_pathname, O_RDONLY ); + fd = open( drivep->d_pathname, O_RDONLY ); if ( fd < 0 ) { return -10; } @@ -4682,7 +4674,7 @@ Open( drive_t *drivep ) ASSERT( contextp->dc_fd == -1 ); errno = 0; - contextp->dc_fd = open_masked_signals( drivep->d_pathname, oflags ); + contextp->dc_fd = open( drivep->d_pathname, oflags ); if ( contextp->dc_fd <= 0 ) { return BOOL_FALSE; @@ -5426,52 +5418,6 @@ isefsdump( drive_t *drivep ) } } -#ifdef OPENMASKED - -static intgen_t -open_masked_signals( char *pathname, int oflags ) -{ - bool_t isrmtpr; - SIG_PF sigalrm_save; - SIG_PF sigint_save; - SIG_PF sighup_save; - SIG_PF sigquit_save; - SIG_PF sigcld_save; - intgen_t rval; - intgen_t saved_errno; - - if ( strchr( pathname, ':') ) { - isrmtpr = BOOL_TRUE; - } else { - isrmtpr = BOOL_FALSE; - } - - if ( isrmtpr ) { - sigalrm_save = sigset( SIGALRM, SIG_IGN ); - sigint_save = sigset( SIGINT, SIG_IGN ); - sighup_save = sigset( SIGHUP, SIG_IGN ); - sigquit_save = sigset( SIGQUIT, SIG_IGN ); - sigcld_save = sigset( SIGCLD, SIG_IGN ); - } - - errno = 0; - rval = open( pathname, oflags ); - saved_errno = errno; - - if ( isrmtpr ) { - ( void )sigset( SIGCLD, sigcld_save ); - ( void )sigset( SIGQUIT, sigquit_save ); - ( void )sigset( SIGHUP, sighup_save ); - ( void )sigset( SIGINT, sigint_save ); - ( void )sigset( SIGALRM, sigalrm_save ); - } - - errno = saved_errno; - return rval; -} - -#endif /* OPENMASKED */ - /* * General purpose routine which dredges through procfs trying to * match up device driver names with the associated major numbers -- 1.7.0.4 From wkendall@sgi.com Fri Jul 29 15:41:02 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKf2o2066952 for ; Fri, 29 Jul 2011 15:41:02 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0DCA1304048; Fri, 29 Jul 2011 13:41:02 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id 0711D7000702; Fri, 29 Jul 2011 15:41:02 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id EF2BC2031098; Fri, 29 Jul 2011 15:41:01 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Cc: Bill Kendall Subject: [PATCH 3/4] xfsdump: remove SIGCHLD handling Date: Fri, 29 Jul 2011 15:40:10 -0500 Message-Id: <1311972011-1446-4-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1311972011-1446-1-git-send-email-wkendall@sgi.com> References: <1311972011-1446-1-git-send-email-wkendall@sgi.com> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean The multi-stream version of xfsdump for IRIX used sprocs for threading. When a "thread" exits with sprocs, a SIGCHLD is sent to the main thread just as if a regular child process exited. A future multi-stream version of xfsdump would use pthreads, so the SIGCHLD code is no longer needed. So: - No longer register for or handle SIGCHLD (SIGCLD). - Remove signal handling code for child processes. - Remove cldmgr_killall() as there are no children. Signed-off-by: Bill Kendall --- common/cldmgr.c | 28 ---------- common/cldmgr.h | 4 -- common/main.c | 155 ++++++++++--------------------------------------------- common/ring.c | 1 - 4 files changed, 28 insertions(+), 160 deletions(-) diff --git a/common/cldmgr.c b/common/cldmgr.c index 97507f3..3520c6e 100644 --- a/common/cldmgr.c +++ b/common/cldmgr.c @@ -59,16 +59,10 @@ static pid_t cldmgr_parentpid; bool_t cldmgr_init( void ) { - /* REFERENCED */ - intgen_t rval; - ( void )memset( ( void * )cld, 0, sizeof( cld )); cldmgr_stopflag = BOOL_FALSE; cldmgr_parentpid = getpid( ); - rval = atexit( cldmgr_killall ); - ASSERT( ! rval ); - return BOOL_TRUE; } @@ -125,27 +119,6 @@ cldmgr_stop( void ) cldmgr_stopflag = BOOL_TRUE; } -/* cldmgr_killall() - * - */ -void -cldmgr_killall( void ) -{ - cld_t *p = cld; - cld_t *ep = cld + sizeof( cld ) / sizeof( cld[ 0 ] ); - - signal( SIGCLD, SIG_IGN ); - for ( ; p < ep ; p++ ) { - if ( p->c_busy ) { - mlog( MLOG_NITTY | MLOG_PROC, - "sending SIGKILL to pid %d\n", - p->c_pid ); - kill( p->c_pid, SIGKILL ); - cldmgr_died( p->c_pid ); - } - } -} - void cldmgr_died( pid_t pid ) { @@ -247,7 +220,6 @@ cldmgr_entry( void *arg1 ) signal( SIGHUP, SIG_IGN ); signal( SIGINT, SIG_IGN ); signal( SIGQUIT, SIG_IGN ); - signal( SIGCLD, SIG_DFL ); alarm( 0 ); cldp->c_pid = pid; ok = qlock_thrdinit( ); diff --git a/common/cldmgr.h b/common/cldmgr.h index d80fe8b..bb3f612 100644 --- a/common/cldmgr.h +++ b/common/cldmgr.h @@ -40,10 +40,6 @@ extern bool_t cldmgr_create( int ( * entry )( void *arg1 ), */ extern void cldmgr_stop( void ); -/* cldmgr_killall - kills all children - */ -extern void cldmgr_killall( void ); - /* cldmgr_died - tells the child manager that the child died */ extern void cldmgr_died( pid_t pid ); diff --git a/common/main.c b/common/main.c index b5a9ccf..73c63bd 100644 --- a/common/main.c +++ b/common/main.c @@ -483,7 +483,6 @@ main( int argc, char *argv[] ) */ ok = drive_init1( argc, argv, miniroot ); if ( ! ok ) { - cldmgr_killall( ); return mlog_exit(EXIT_ERROR, RV_INIT); } @@ -566,8 +565,6 @@ main( int argc, char *argv[] ) alarm( 0 ); sigset( SIGALRM, sighandler ); sighold( SIGALRM ); - sigset( SIGCLD, sighandler ); - sighold( SIGCLD ); /* ignore SIGPIPE, instead handle EPIPE as part * of normal sys call error handling @@ -584,7 +581,6 @@ main( int argc, char *argv[] ) ok = content_init( argc, argv, vmsz / VMSZ_PER ); #endif /* RESTORE */ if ( ! ok ) { - cldmgr_killall( ); return mlog_exit(EXIT_ERROR, RV_INIT); } @@ -885,9 +881,7 @@ main( int argc, char *argv[] ) sigrelse( SIGHUP ); sigrelse( SIGTERM ); sigrelse( SIGQUIT ); - sigrelse( SIGALRM ); - ( void )sigpause( SIGCLD ); - sighold( SIGCLD ); + ( void )sigpause( SIGALRM ); sighold( SIGALRM ); sighold( SIGQUIT ); sighold( SIGTERM ); @@ -900,10 +894,6 @@ main( int argc, char *argv[] ) */ if ( coredump_requested ) { mlog( MLOG_DEBUG | MLOG_PROC, - "killing all remaining children\n" ); - cldmgr_killall( ); - sleep( 1 ); - mlog( MLOG_DEBUG | MLOG_PROC, "parent sending SIGQUIT to self (pid %d)\n", parentpid ); sigrelse( SIGQUIT ); @@ -1496,11 +1486,6 @@ mrh_sighandler( int signo ) static void sighandler( int signo ) { - /* get the pid and stream index - */ - pid_t pid = getpid( ); - intgen_t stix = stream_getix( pid ); - /* if in miniroot, don't do anything risky. just quit. */ if ( miniroot || pipeline ) { @@ -1520,117 +1505,34 @@ sighandler( int signo ) exit( rval ); } - /* if death of a child of a child, bury the child and return. - * probably rmt. - */ - if ( pid != parentpid && signo == SIGCLD ) { - intgen_t stat; - ( void )wait( &stat ); - ( void )sigset( signo, sighandler ); - return; - } - - /* if neither parent nor managed child nor slave, exit - */ - if ( pid != parentpid && stix == -1 ) { - exit( 0 ); - } - - /* parent signal handling - */ - if ( pid == parentpid ) { - pid_t cid; - intgen_t stat; - switch ( signo ) { - case SIGCLD: - /* bury the child and notify the child manager - * abstraction of its death, and record death stats - */ - cid = wait( &stat ); - stix = stream_getix( cid ); - cldmgr_died( cid ); - if ( WIFSIGNALED( stat ) || WEXITSTATUS( stat ) > 0 ) { - if ( prbcld_cnt == 0 ) { - if ( WIFSIGNALED( stat )) { - prbcld_pid = cid; - prbcld_xc = 0; - prbcld_signo = WTERMSIG( stat ); - } else if ( WEXITSTATUS( stat ) > 0 ) { - prbcld_pid = cid; - prbcld_xc = WEXITSTATUS( stat ); - prbcld_signo = 0; - } - } - prbcld_cnt++; - } - ( void )sigset( signo, sighandler ); - return; - case SIGHUP: - /* immediately disable further dialogs - */ - dlog_desist( ); - sighup_received = BOOL_TRUE; - return; - case SIGTERM: - /* immediately disable further dialogs - */ - dlog_desist( ); - sigterm_received = BOOL_TRUE; - return; - case SIGINT: - sigint_received = BOOL_TRUE; - return; - case SIGQUIT: - /* immediately disable further dialogs - */ - dlog_desist( ); - sigquit_received = BOOL_TRUE; - return; - case SIGALRM: - return; - default: - sigstray_received = signo; - return; - } - } - - /* managed child handling - */ - if ( stream_getix( pid ) != -1 ) { - switch ( signo ) { - case SIGHUP: - /* can get SIGHUP during dialog: just dismiss - */ - return; - case SIGTERM: - /* can get SIGTERM during dialog: just dismiss - */ - return; - case SIGINT: - /* can get SIGINT during dialog: just dismiss - */ - return; - case SIGQUIT: - /* can get SIGQUIT during dialog: just dismiss - */ - return; - case SIGALRM: - /* accept and do nothing about alarm signals - */ - return; - default: - /* should not be any other captured signals: - * request a core dump - */ - mlog_exit( EXIT_FAULT, RV_NONE ); - exit( EXIT_FAULT ); - return; - } + switch ( signo ) { + case SIGHUP: + /* immediately disable further dialogs + */ + dlog_desist( ); + sighup_received = BOOL_TRUE; + break; + case SIGTERM: + /* immediately disable further dialogs + */ + dlog_desist( ); + sigterm_received = BOOL_TRUE; + break; + case SIGINT: + sigint_received = BOOL_TRUE; + break; + case SIGQUIT: + /* immediately disable further dialogs + */ + dlog_desist( ); + sigquit_received = BOOL_TRUE; + break; + case SIGALRM: + break; + default: + sigstray_received = signo; + break; } - - /* if some other child, just exit - */ - exit( 0 ); } static int @@ -1647,7 +1549,6 @@ childmain( void *arg1 ) sigset( SIGINT, SIG_IGN ); sigset( SIGQUIT, SIG_IGN ); sigset( SIGALRM, SIG_IGN ); - sigset( SIGCLD, SIG_IGN ); /* Determine which stream I am. */ diff --git a/common/ring.c b/common/ring.c index b132ab9..237d884 100644 --- a/common/ring.c +++ b/common/ring.c @@ -413,7 +413,6 @@ ring_slave_entry( void *ringctxp ) sigset( SIGINT, SIG_IGN ); sigset( SIGQUIT, SIG_IGN ); sigset( SIGALRM, SIG_IGN ); - sigset( SIGCLD, SIG_IGN ); /* record slave pid to be used to kill slave */ -- 1.7.0.4 From wkendall@sgi.com Fri Jul 29 15:41:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,LOCAL_GNU_PATCH autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKf3xX066968 for ; Fri, 29 Jul 2011 15:41:03 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7670E304048; Fri, 29 Jul 2011 13:41:00 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id 6E18470006F8; Fri, 29 Jul 2011 15:41:00 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id 6307D2031098; Fri, 29 Jul 2011 15:41:00 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Cc: Bill Kendall Subject: [PATCH 2/4] xfsdump: process EPIPE instead of catching SIGPIPE Date: Fri, 29 Jul 2011 15:40:09 -0500 Message-Id: <1311972011-1446-3-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1311972011-1446-1-git-send-email-wkendall@sgi.com> References: <1311972011-1446-1-git-send-email-wkendall@sgi.com> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Looking forward towards a multi-threaded xfsdump, it's simpler to handle pipe failures as a system call failure (EPIPE) rather than through a signal handler which may run in a separate thread. The existing error handling code handles EPIPE just fine, so the only required change is to ignore SIGPIPE. Some sections of code already temporarily ignore SIGPIPE -- they no longer need to do so since it will already be ignored. Signed-off-by: Bill Kendall --- common/main.c | 53 +++++++++----------------------------------------- common/ring.c | 1 - librmt/rmtcommand.c | 7 +----- librmt/rmtwrite.c | 5 ---- 4 files changed, 11 insertions(+), 55 deletions(-) diff --git a/common/main.c b/common/main.c index c4d6878..b5a9ccf 100644 --- a/common/main.c +++ b/common/main.c @@ -135,7 +135,6 @@ static time32_t stop_deadline; static bool_t stop_in_progress; static bool_t sighup_received; static bool_t sigterm_received; -static bool_t sigpipe_received; static bool_t sigquit_received; static bool_t sigint_received; static size_t prbcld_cnt; @@ -553,7 +552,6 @@ main( int argc, char *argv[] ) sighup_received = BOOL_FALSE; sigterm_received = BOOL_FALSE; sigint_received = BOOL_FALSE; - sigpipe_received = BOOL_FALSE; sigquit_received = BOOL_FALSE; sigstray_received = BOOL_FALSE; prbcld_cnt = 0; @@ -563,8 +561,6 @@ main( int argc, char *argv[] ) sighold( SIGHUP ); sigset( SIGTERM, sighandler ); sighold( SIGTERM ); - sigset( SIGPIPE, sighandler ); - sighold( SIGPIPE ); sigset( SIGQUIT, sighandler ); sighold( SIGQUIT ); alarm( 0 ); @@ -572,6 +568,11 @@ main( int argc, char *argv[] ) sighold( SIGALRM ); sigset( SIGCLD, sighandler ); sighold( SIGCLD ); + + /* ignore SIGPIPE, instead handle EPIPE as part + * of normal sys call error handling + */ + sigset( SIGPIPE, SIG_IGN ); } /* do content initialization. @@ -596,7 +597,11 @@ main( int argc, char *argv[] ) sigset( SIGINT, sighandler ); sigset( SIGHUP, sighandler ); sigset( SIGTERM, sighandler ); - sigset( SIGPIPE, sighandler ); + + /* ignore SIGPIPE, instead handle EPIPE as part + * of normal sys call error handling + */ + sigset( SIGPIPE, SIG_IGN ); ok = drive_init2( argc, argv, @@ -804,16 +809,6 @@ main( int argc, char *argv[] ) sigterm_received = BOOL_FALSE; } - /* request a stop on loss of write pipe - */ - if ( sigpipe_received ) { - mlog( MLOG_DEBUG | MLOG_PROC, - "SIGPIPE received\n" ); - stop_requested = BOOL_TRUE; - stop_timeout = STOP_TIMEOUT; - sigpipe_received = BOOL_FALSE; - } - /* operator send SIGQUIT. treat like an interrupt, * but force a core dump */ @@ -889,14 +884,12 @@ main( int argc, char *argv[] ) sigrelse( SIGINT ); sigrelse( SIGHUP ); sigrelse( SIGTERM ); - sigrelse( SIGPIPE ); sigrelse( SIGQUIT ); sigrelse( SIGALRM ); ( void )sigpause( SIGCLD ); sighold( SIGCLD ); sighold( SIGALRM ); sighold( SIGQUIT ); - sighold( SIGPIPE ); sighold( SIGTERM ); sighold( SIGHUP ); sighold( SIGINT ); @@ -1130,11 +1123,9 @@ preemptchk( int flg ) sigrelse( SIGINT ); sigrelse( SIGHUP ); sigrelse( SIGTERM ); - sigrelse( SIGPIPE ); sigrelse( SIGQUIT ); sighold( SIGQUIT ); - sighold( SIGPIPE ); sighold( SIGTERM ); sighold( SIGHUP ); sighold( SIGINT ); @@ -1170,13 +1161,6 @@ preemptchk( int flg ) sigterm_received = BOOL_FALSE; } - if ( sigpipe_received ) { - mlog( MLOG_DEBUG | MLOG_PROC, - "SIGPIPE received\n" ); - preempt_requested = BOOL_TRUE; - sigpipe_received = BOOL_FALSE; - } - if ( sigquit_received ) { mlog( MLOG_DEBUG | MLOG_PROC, "SIGQUIT received (preempt)\n" ); @@ -1602,14 +1586,6 @@ sighandler( int signo ) dlog_desist( ); sigquit_received = BOOL_TRUE; return; - case SIGPIPE: - /* immediately disable further dialogs, - * and ignore subsequent signals - */ - dlog_desist( ); - sigpipe_received = BOOL_TRUE; - ( void )sigset( signo, SIG_IGN ); - return; case SIGALRM: return; default: @@ -1638,14 +1614,6 @@ sighandler( int signo ) /* can get SIGQUIT during dialog: just dismiss */ return; - case SIGPIPE: - /* forward write pipe failures to parent, - * and ignore subsequent failures - */ - dlog_desist( ); - kill( parentpid, SIGPIPE ); - ( void )sigset( signo, SIG_IGN ); - return; case SIGALRM: /* accept and do nothing about alarm signals */ @@ -1678,7 +1646,6 @@ childmain( void *arg1 ) sigset( SIGTERM, SIG_IGN ); sigset( SIGINT, SIG_IGN ); sigset( SIGQUIT, SIG_IGN ); - sigset( SIGPIPE, SIG_IGN ); sigset( SIGALRM, SIG_IGN ); sigset( SIGCLD, SIG_IGN ); diff --git a/common/ring.c b/common/ring.c index f6fc64d..b132ab9 100644 --- a/common/ring.c +++ b/common/ring.c @@ -412,7 +412,6 @@ ring_slave_entry( void *ringctxp ) sigset( SIGHUP, SIG_IGN ); sigset( SIGINT, SIG_IGN ); sigset( SIGQUIT, SIG_IGN ); - sigset( SIGPIPE, SIG_IGN ); sigset( SIGALRM, SIG_IGN ); sigset( SIGCLD, SIG_IGN ); diff --git a/librmt/rmtcommand.c b/librmt/rmtcommand.c index 42587e4..fbd7a6a 100644 --- a/librmt/rmtcommand.c +++ b/librmt/rmtcommand.c @@ -21,7 +21,6 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include #include #include "rmtlib.h" @@ -36,19 +35,16 @@ int fildes; char *buf; { register int blen; - void (*pstat)(); _rmt_msg(RMTDBG, "rmtcommand: fd = %d, buf = %s\n", fildes, buf); /* - * save current pipe status and try to make the request + * try to make the request */ blen = strlen(buf); - pstat = signal(SIGPIPE, SIG_IGN); if (write(WRITE(fildes), buf, blen) == blen) { - signal(SIGPIPE, pstat); return(0); } @@ -56,7 +52,6 @@ char *buf; * something went wrong. close down and go home */ - signal(SIGPIPE, pstat); _rmt_abort(fildes); setoserror( EIO ); diff --git a/librmt/rmtwrite.c b/librmt/rmtwrite.c index 7f373ee..c42b1ab 100644 --- a/librmt/rmtwrite.c +++ b/librmt/rmtwrite.c @@ -21,7 +21,6 @@ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#include #include #include "rmtlib.h" @@ -55,20 +54,16 @@ unsigned int nbyte; static int _rmt_write(int fildes, char *buf, unsigned int nbyte) { char buffer[BUFMAGIC]; - void (*pstat)(); sprintf(buffer, "W%d\n", nbyte); if (_rmt_command(fildes, buffer) == -1) return(-1); - pstat = signal(SIGPIPE, SIG_IGN); if (write(WRITE(fildes), buf, nbyte) == nbyte) { - signal (SIGPIPE, pstat); return(_rmt_status(fildes)); } - signal (SIGPIPE, pstat); _rmt_abort(fildes); setoserror( EIO ); return(-1); -- 1.7.0.4 From wkendall@sgi.com Fri Jul 29 15:41:03 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKf3sf066960 for ; Fri, 29 Jul 2011 15:41:03 -0500 Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay2.corp.sgi.com (Postfix) with ESMTP id 22124304048; Fri, 29 Jul 2011 13:41:03 -0700 (PDT) Received: from augusta (augusta.americas.sgi.com [128.162.233.117]) by estes.americas.sgi.com (Postfix) with ESMTP id 1BC6D7000702; Fri, 29 Jul 2011 15:41:03 -0500 (CDT) Received: by augusta (Postfix, from userid 2022) id 0F8C42031098; Fri, 29 Jul 2011 15:41:03 -0500 (CDT) From: Bill Kendall To: xfs@oss.sgi.com Cc: Bill Kendall Subject: [PATCH 4/4] xfsdump: convert to the POSIX signal API Date: Fri, 29 Jul 2011 15:40:11 -0500 Message-Id: <1311972011-1446-5-git-send-email-wkendall@sgi.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1311972011-1446-1-git-send-email-wkendall@sgi.com> References: <1311972011-1446-1-git-send-email-wkendall@sgi.com> X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Convert from using the System V signal API to the POSIX API. For xfsdump, this mostly means replacing sigrelse/sighold with sigprocmask, sigset with sigaction, and sigpause with sigsuspend. childmain() and cldmgr_entry() are thread entry points. By the time they are spawned the main thread will have already set its signal mask, so no need to setup signals in these threads as the mask is inherited. ring_slave_entry() is a thread entry point but is spawned before the main thread has its signal mask setup. Setup the thread's mask to block the same signals that the main thread will block. The main thread should be reworked to set its mask earlier, but that will require a fair amount of refactoring that is beyond the scope of this patch. Also just use abort() to generate a core file rather than sending SIGQUIT and then waiting for it to arrive. Signed-off-by: Bill Kendall --- common/cldmgr.c | 5 --- common/dlog.c | 84 +++++++++++++++++++--------------------------- common/main.c | 100 ++++++++++++++++++++++++++++--------------------------- common/ring.c | 14 +++++--- dump/content.c | 21 +++++------- 5 files changed, 104 insertions(+), 120 deletions(-) diff --git a/common/cldmgr.c b/common/cldmgr.c index 3520c6e..7784a15 100644 --- a/common/cldmgr.c +++ b/common/cldmgr.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include "types.h" @@ -217,10 +216,6 @@ cldmgr_entry( void *arg1 ) /* REFERENCED */ bool_t ok; - signal( SIGHUP, SIG_IGN ); - signal( SIGINT, SIG_IGN ); - signal( SIGQUIT, SIG_IGN ); - alarm( 0 ); cldp->c_pid = pid; ok = qlock_thrdinit( ); ASSERT( ok ); diff --git a/common/dlog.c b/common/dlog.c index 6a243ef..d37bf1c 100644 --- a/common/dlog.c +++ b/common/dlog.c @@ -30,9 +30,6 @@ #include "dlog.h" #include "getopt.h" -extern bool_t miniroot; -extern pid_t parentpid; - static int dlog_ttyfd = -1; static bool_t dlog_allowed_flag = BOOL_FALSE; static bool_t dlog_timeouts_flag = BOOL_FALSE; @@ -374,13 +371,14 @@ promptinput( char *buf, { va_list args; u_intgen_t alarm_save = 0; - void (* sigalrm_save)(int) = NULL; - void (* sigint_save)(int) = NULL; - void (* sighup_save)(int) = NULL; - void (* sigterm_save)(int) = NULL; - void (* sigquit_save)(int) = NULL; + sigset_t dlog_set, orig_set; + struct sigaction sa; + struct sigaction sigalrm_save; + struct sigaction sigint_save; + struct sigaction sighup_save; + struct sigaction sigterm_save; + struct sigaction sigquit_save; intgen_t nread; - pid_t pid = getpid( ); /* display the pre-prompt */ @@ -400,38 +398,39 @@ promptinput( char *buf, mlog( MLOG_NORMAL | MLOG_NOLOCK | MLOG_BARE, promptstr ); /* set up signal handling + * the mlog lock is held for the life of the dialog and it's possible + * the main thread, which normally does the signal handling, is now + * waiting on the mlog lock trying to log a message. so we unblock + * the relevant signals for this thread. note this means the current + * thread or the main thread might handle one of these signals. */ + sigemptyset( &dlog_set ); + sa.sa_handler = sighandler; + sigfillset( &sa.sa_mask ); + sa.sa_flags = 0; dlog_signo_received = -1; if ( dlog_timeouts_flag && timeoutix != IXMAX ) { - if ( pid == parentpid && ! miniroot ) { - ( void )sigrelse( SIGALRM ); - } - sigalrm_save = sigset( SIGALRM, sighandler ); + sigaddset( &dlog_set, SIGALRM ); + sigaction( SIGALRM, &sa, &sigalrm_save ); alarm_save = alarm( ( u_intgen_t )timeout ); } if ( sigintix != IXMAX ) { - if ( pid == parentpid && ! miniroot ) { - ( void )sigrelse( SIGINT ); - } - sigint_save = sigset( SIGINT, sighandler ); + sigaddset( &dlog_set, SIGINT ); + sigaction( SIGINT, &sa, &sigint_save ); } if ( sighupix != IXMAX ) { - if ( pid == parentpid && ! miniroot ) { - ( void )sigrelse( SIGHUP ); - } - sighup_save = sigset( SIGHUP, sighandler ); - if ( pid == parentpid && ! miniroot ) { - ( void )sigrelse( SIGTERM ); - } - sigterm_save = sigset( SIGTERM, sighandler ); + sigaddset( &dlog_set, SIGHUP ); + sigaction( SIGHUP, &sa, &sighup_save ); + sigaddset( &dlog_set, SIGTERM ); + sigaction( SIGTERM, &sa, &sigterm_save ); } if ( sigquitix != IXMAX ) { - if ( pid == parentpid && ! miniroot ) { - ( void )sigrelse( SIGQUIT ); - } - sigquit_save = sigset( SIGQUIT, sighandler ); + sigaddset( &dlog_set, SIGQUIT ); + sigaction( SIGQUIT, &sa, &sigquit_save ); } + sigprocmask( SIG_UNBLOCK, &dlog_set, &orig_set ); + /* wait for input, timeout, or interrupt */ ASSERT( dlog_ttyfd >= 0 ); @@ -439,34 +438,21 @@ promptinput( char *buf, /* restore signal handling */ + sigprocmask( SIG_SETMASK, &orig_set, NULL ); + if ( sigquitix != IXMAX ) { - ( void )sigset( SIGQUIT, sigquit_save ); - if ( pid == parentpid && ! miniroot ) { - ( void )sighold( SIGQUIT ); - } + sigaction( SIGQUIT, &sigquit_save, NULL ); } if ( sighupix != IXMAX ) { - ( void )sigset( SIGHUP, sighup_save ); - if ( pid == parentpid && ! miniroot ) { - ( void )sighold( SIGHUP ); - } - ( void )sigset( SIGTERM, sigterm_save ); - if ( pid == parentpid && ! miniroot ) { - ( void )sighold( SIGTERM ); - } + sigaction( SIGHUP, &sighup_save, NULL ); + sigaction( SIGTERM, &sigterm_save, NULL ); } if ( sigintix != IXMAX ) { - ( void )sigset( SIGINT, sigint_save ); - if ( pid == parentpid && ! miniroot ) { - ( void )sighold( SIGINT ); - } + sigaction( SIGINT, &sigint_save, NULL ); } if ( dlog_timeouts_flag && timeoutix != IXMAX ) { ( void )alarm( alarm_save ); - ( void )sigset( SIGALRM, sigalrm_save ); - if ( pid == parentpid && ! miniroot ) { - ( void )sighold( SIGALRM ); - } + sigaction( SIGALRM, &sigalrm_save, NULL ); } /* check for timeout or interrupt diff --git a/common/main.c b/common/main.c index 73c63bd..8c2c66d 100644 --- a/common/main.c +++ b/common/main.c @@ -546,6 +546,9 @@ main( int argc, char *argv[] ) * loop. */ if ( ! miniroot && ! pipeline ) { + struct sigaction sa; + sigset_t blocked_set; + stop_in_progress = BOOL_FALSE; coredump_requested = BOOL_FALSE; sighup_received = BOOL_FALSE; @@ -554,22 +557,32 @@ main( int argc, char *argv[] ) sigquit_received = BOOL_FALSE; sigstray_received = BOOL_FALSE; prbcld_cnt = 0; - sigset( SIGINT, sighandler ); - sighold( SIGINT ); - sigset( SIGHUP, sighandler ); - sighold( SIGHUP ); - sigset( SIGTERM, sighandler ); - sighold( SIGTERM ); - sigset( SIGQUIT, sighandler ); - sighold( SIGQUIT ); + alarm( 0 ); - sigset( SIGALRM, sighandler ); - sighold( SIGALRM ); + + sigemptyset( &blocked_set ); + sigaddset( &blocked_set, SIGINT ); + sigaddset( &blocked_set, SIGHUP ); + sigaddset( &blocked_set, SIGTERM ); + sigaddset( &blocked_set, SIGQUIT ); + sigaddset( &blocked_set, SIGALRM ); + sigprocmask( SIG_SETMASK, &blocked_set, NULL ); + + sa.sa_handler = sighandler; + sigfillset(&sa.sa_mask); + sa.sa_flags = 0; + + sigaction( SIGINT, &sa, NULL ); + sigaction( SIGHUP, &sa, NULL ); + sigaction( SIGTERM, &sa, NULL ); + sigaction( SIGQUIT, &sa, NULL ); + sigaction( SIGALRM, &sa, NULL ); /* ignore SIGPIPE, instead handle EPIPE as part * of normal sys call error handling */ - sigset( SIGPIPE, SIG_IGN ); + sa.sa_handler = SIG_IGN; + sigaction( SIGPIPE, &sa, NULL ); } /* do content initialization. @@ -588,16 +601,22 @@ main( int argc, char *argv[] ) * with just one stream. */ if ( miniroot || pipeline ) { + struct sigaction sa; intgen_t exitcode; - sigset( SIGINT, sighandler ); - sigset( SIGHUP, sighandler ); - sigset( SIGTERM, sighandler ); + sa.sa_handler = sighandler; + sigfillset(&sa.sa_mask); + sa.sa_flags = 0; + + sigaction( SIGINT, &sa, NULL ); + sigaction( SIGHUP, &sa, NULL ); + sigaction( SIGTERM, &sa, NULL ); /* ignore SIGPIPE, instead handle EPIPE as part * of normal sys call error handling */ - sigset( SIGPIPE, SIG_IGN ); + sa.sa_handler = SIG_IGN; + sigaction( SIGPIPE, &sa, NULL ); ok = drive_init2( argc, argv, @@ -689,6 +708,7 @@ main( int argc, char *argv[] ) time32_t now; bool_t stop_requested = BOOL_FALSE; intgen_t stop_timeout = -1; + sigset_t empty_set; /* if there was an initialization error, * immediately stop all children. @@ -877,16 +897,8 @@ main( int argc, char *argv[] ) /* sleep until next signal */ - sigrelse( SIGINT ); - sigrelse( SIGHUP ); - sigrelse( SIGTERM ); - sigrelse( SIGQUIT ); - ( void )sigpause( SIGALRM ); - sighold( SIGALRM ); - sighold( SIGQUIT ); - sighold( SIGTERM ); - sighold( SIGHUP ); - sighold( SIGINT ); + sigemptyset( &empty_set ); + sigsuspend( &empty_set ); ( void )alarm( 0 ); } @@ -894,14 +906,9 @@ main( int argc, char *argv[] ) */ if ( coredump_requested ) { mlog( MLOG_DEBUG | MLOG_PROC, - "parent sending SIGQUIT to self (pid %d)\n", + "core dump requested, aborting (pid %d)\n", parentpid ); - sigrelse( SIGQUIT ); - sigset( SIGQUIT, SIG_DFL ); - kill( parentpid, SIGQUIT ); - for ( ; ; ) { - sleep( 1 ); - } + abort(); } /* determine if dump or restore was interrupted @@ -1074,6 +1081,10 @@ bool_t preemptchk( int flg ) { bool_t preempt_requested; + int i; + int sigs[] = { SIGINT, SIGHUP, SIGTERM, SIGQUIT }; + int num_sigs = sizeof(sigs) / sizeof(sigs[0]); + sigset_t pending_set, handle_set; /* see if a progress report needed */ @@ -1110,15 +1121,14 @@ preemptchk( int flg ) /* release signals momentarily to let any pending ones * invoke signal handler and set flags */ - sigrelse( SIGINT ); - sigrelse( SIGHUP ); - sigrelse( SIGTERM ); - sigrelse( SIGQUIT ); - - sighold( SIGQUIT ); - sighold( SIGTERM ); - sighold( SIGHUP ); - sighold( SIGINT ); + sigpending( &pending_set ); + for ( i = 0; i < num_sigs; i++ ) { + if ( sigismember( &pending_set, sigs[i] ) == 1 ) { + sigfillset( &handle_set ); + sigdelset( &handle_set, sigs[i] ); + sigsuspend( &handle_set ); + } + } preempt_requested = BOOL_FALSE; @@ -1542,14 +1552,6 @@ childmain( void *arg1 ) intgen_t exitcode; drive_t *drivep; - /* ignore signals - */ - sigset( SIGHUP, SIG_IGN ); - sigset( SIGTERM, SIG_IGN ); - sigset( SIGINT, SIG_IGN ); - sigset( SIGQUIT, SIG_IGN ); - sigset( SIGALRM, SIG_IGN ); - /* Determine which stream I am. */ stix = ( ix_t )arg1; diff --git a/common/ring.c b/common/ring.c index 237d884..f6e95e8 100644 --- a/common/ring.c +++ b/common/ring.c @@ -404,15 +404,19 @@ ring_slave_put( ring_t *ringp, ring_msg_t *msgp ) static int ring_slave_entry( void *ringctxp ) { + sigset_t blocked_set; ring_t *ringp = ( ring_t * )ringctxp; enum { LOOPMODE_NORMAL, LOOPMODE_IGNORE, LOOPMODE_DIE } loopmode; - /* ignore signals + /* block signals, let the main thread handle them */ - sigset( SIGHUP, SIG_IGN ); - sigset( SIGINT, SIG_IGN ); - sigset( SIGQUIT, SIG_IGN ); - sigset( SIGALRM, SIG_IGN ); + sigemptyset( &blocked_set ); + sigaddset( &blocked_set, SIGINT ); + sigaddset( &blocked_set, SIGHUP ); + sigaddset( &blocked_set, SIGTERM ); + sigaddset( &blocked_set, SIGQUIT ); + sigaddset( &blocked_set, SIGALRM ); + sigprocmask( SIG_SETMASK, &blocked_set, NULL ); /* record slave pid to be used to kill slave */ diff --git a/dump/content.c b/dump/content.c index c6840e5..fcc952e 100644 --- a/dump/content.c +++ b/dump/content.c @@ -1701,6 +1701,7 @@ baseuuidbypass: if ( sc_inv_updatepr ) { char *qmntpnt; char *qfsdevice; + sigset_t tty_set, orig_set; rval = atexit( inv_cleanup ); ASSERT( ! rval ); @@ -1738,9 +1739,11 @@ baseuuidbypass: /* hold tty signals while creating a new inventory session */ - ( void )sighold( SIGINT ); - ( void )sighold( SIGQUIT ); - ( void )sighold( SIGHUP ); + sigemptyset( &tty_set ); + sigaddset( &tty_set, SIGINT ); + sigaddset( &tty_set, SIGQUIT ); + sigaddset( &tty_set, SIGHUP ); + sigprocmask( SIG_BLOCK, &tty_set, &orig_set ); sc_inv_sestoken = inv_writesession_open( sc_inv_idbtoken, &fsid, @@ -1755,9 +1758,7 @@ baseuuidbypass: qmntpnt, qfsdevice ); if( sc_inv_sestoken == INV_TOKEN_NULL ) { - ( void )sigrelse( SIGINT ); - ( void )sigrelse( SIGQUIT ); - ( void )sigrelse( SIGHUP ); + sigprocmask( SIG_SETMASK, &orig_set, NULL ); return BOOL_FALSE; } @@ -1782,16 +1783,12 @@ baseuuidbypass: free( ( void * )drvpath ); } if ( sc_inv_stmtokenp[ strmix ] == INV_TOKEN_NULL ) { - ( void )sigrelse( SIGINT ); - ( void )sigrelse( SIGQUIT ); - ( void )sigrelse( SIGHUP ); + sigprocmask( SIG_SETMASK, &orig_set, NULL ); return BOOL_FALSE; } } - ( void )sigrelse( SIGINT ); - ( void )sigrelse( SIGQUIT ); - ( void )sigrelse( SIGHUP ); + sigprocmask( SIG_SETMASK, &orig_set, NULL ); } /* set media change flags to FALSE; -- 1.7.0.4 From bjschuma@netapp.com Fri Jul 29 15:52:44 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,J_BACKHAIR_14 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKqhDn067369 for ; Fri, 29 Jul 2011 15:52:44 -0500 X-ASG-Debug-ID: 1311972784-719802e70000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 15235F1E983 for ; Fri, 29 Jul 2011 13:53:04 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id o0BG4FcVoMifHCuB for ; Fri, 29 Jul 2011 13:53:04 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,288,1309762800"; d="scan'208";a="566657421" Received: from smtp1.corp.netapp.com ([10.57.156.124]) by mx2-out.netapp.com with ESMTP; 29 Jul 2011 13:52:25 -0700 Received: from [10.63.232.16] ([10.63.232.16]) by smtp1.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6TKqMr0021655; Fri, 29 Jul 2011 13:52:22 -0700 (PDT) Message-ID: <4E331D86.7060801@netapp.com> Date: Fri, 29 Jul 2011 16:52:22 -0400 From: Bryan Schumaker User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20110628 Thunderbird/5.0 MIME-Version: 1.0 To: Trond Myklebust CC: Justin Piszcz , Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> <1311886137.27285.2.camel@lade.trondhjem.org> In-Reply-To: <1311886137.27285.2.camel@lade.trondhjem.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311972786 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On 07/28/2011 04:48 PM, Trond Myklebust wrote: > On Wed, 2011-07-27 at 18:44 -0400, Justin Piszcz wrote: >> >> On Wed, 27 Jul 2011, Justin Piszcz wrote: >> >>> >>> >>> On Wed, 27 Jul 2011, Trond Myklebust wrote: >>> >>>> On Wed, 2011-07-27 at 16:54 -0400, Trond Myklebust wrote: >>>>> On Wed, 2011-07-27 at 16:37 -0400, Trond Myklebust wrote: >>>>>> On Wed, 2011-07-27 at 15:47 -0400, Christoph Hellwig wrote: >>>>>>> On Wed, Jul 27, 2011 at 03:44:20PM -0400, Justin Piszcz wrote: >>>>>>>> >>>>>>>> >>>>>>>> On Wed, 27 Jul 2011, Christoph Hellwig wrote: >>>>>>>> >>>>>>>>> On Wed, Jul 27, 2011 at 03:35:01PM -0400, Justin Piszcz wrote: >>>>>>>>>> Currently I do not see any dupes, however I have a script that moves >>>>>>>>>> images out of the directory once an hour: >>>>>>>>>> 0 * * * * /usr/local/bin/move_to_old2.sh > /dev/null 2>&1 >>>>>>>>> >>>>>>>>> Do you keep adding files to the directory while you move files out? >>>>>>>> Yes, otherwise there are too many files in the directory and viewers, e.g., >>>>>>>> each geeqie (picture viewer) will use > 4-6GB of memory, so I try to keep >>>>>>>> it around 5,000 pictures or less. >>>>>>>> >>>>>>>>> What's the rate of additions/removals to the directory? >>>>>>>> Additions it depends, around 5,000 over a 12hr period, 416/hr, current: >>>>>>>> >>>>>>>> atom:/d1/motion# find cam1|wc >>>>>>>> 5215 5215 166853 >>>>>>>> atom:/d1/motion# find cam2|wc >>>>>>>> 5069 5069 162181 >>>>>>>> atom:/d1/motion# find cam3|wc >>>>>>>> 5594 5594 178981 >>>>>>>> atom:/d1/motion# >>>>>>> >>>>>>> This sounds a lot like xfs simply filling up the directory index slots >>>>>>> of files that you just moved out with new files, and nfs falsely >>>>>>> claiming that this is a problem. >>>>>> >>>>>> Yep. There is an existing bugzilla report for this bug at >>>>>> >>>>>> https://bugzilla.kernel.org/show_bug.cgi?id=38572 >>>>>> >>>>>> I have a preliminary patch there that attempts to turn off the loop >>>>>> detection when the directory is seen to change, however that patch still >>>>>> appears to have a bug in it, and I haven't had time to figure out what >>>>>> is wrong yet. >>>>>> >>>>>> Can you perhaps take a look, Bryan? >>>>> >>>>> Actually, Justin, can you test the following slight variant on the patch >>>>> in the bugzilla? >>>> >>>> Doh! This one will actually compile.... >>> >>> Hi, >>> >>> Should I try 3.0 first or retry 2.6.38 w/ this patch? >>> >>> Justin. >>> >>> >> >> I'll give 3.0 a go first. > > I had Bryan do some more tests, which revealed a couple more issues. The > attached patch should fix those, and has resisted everything we've > thrown at it so far. It should apply to 2.6.39 and newer. This patch still looks good (after testing it a bit more today). How does this look for printing out more information when a cookie loop is detected? Is there anything else that should be printed out? My patch applies on top of Trond's from yesterday. - Bryan 8<----------------------------------------------------------------------- >From 4d74863dc2bcd4e603a873b3725f0a05afd21f1f Mon Sep 17 00:00:00 2001 From: Bryan Schumaker Date: Fri, 29 Jul 2011 11:49:06 -0400 Subject: [PATCH] Additional readdir cookie loop information Print out the name of the file that triggers the cookie loop message to make it slightly easier to track down the cause. Signed-off-by: Bryan Schumaker --- fs/nfs/dir.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index d23108b..b238d95 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -365,9 +365,10 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des if (printk_ratelimit()) { pr_notice("NFS: directory %s/%s contains a readdir loop." "Please contact your server vendor. " - "Offending cookie: %llu\n", + "The file: %s has duplicate cookie %llu\n", desc->file->f_dentry->d_parent->d_name.name, desc->file->f_dentry->d_name.name, + array->array[i].string.name, *desc->dir_cookie); } status = -ELOOP; -- 1.7.6 > > Cheers > Trond > 8<----------------------------------------------------------------------- > From 75c0387540737a6663338d4ec0538bd6fb724173 Mon Sep 17 00:00:00 2001 > From: Trond Myklebust > Date: Thu, 28 Jul 2011 16:34:33 -0400 > Subject: [PATCH v3] NFS: Fix spurious readdir cookie loop messages > > If the directory contents change, then we have to accept that the > file->f_pos value may shrink if we do a 'search-by-cookie'. In that > case, we should turn off the loop detection and let the NFS client > try to recover. > > The patch also fixes a second loop detection bug by ensuring > that after turning on the ctx->duped flag, we read at least one new > cookie into ctx->dir_cookie before attempting to match with > ctx->dup_cookie. > > Reported-by: Petr Vandrovec > Cc: stable@kernel.org [2.6.39+] > Signed-off-by: Trond Myklebust > --- > fs/nfs/dir.c | 56 ++++++++++++++++++++++++++++------------------- > include/linux/nfs_fs.h | 3 +- > 2 files changed, 35 insertions(+), 24 deletions(-) > > diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c > index 57f578e..d23108b 100644 > --- a/fs/nfs/dir.c > +++ b/fs/nfs/dir.c > @@ -134,18 +134,19 @@ const struct inode_operations nfs4_dir_inode_operations = { > > #endif /* CONFIG_NFS_V4 */ > > -static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct rpc_cred *cred) > +static struct nfs_open_dir_context *alloc_nfs_open_dir_context(struct inode *dir, struct rpc_cred *cred) > { > struct nfs_open_dir_context *ctx; > ctx = kmalloc(sizeof(*ctx), GFP_KERNEL); > if (ctx != NULL) { > ctx->duped = 0; > + ctx->attr_gencount = NFS_I(dir)->attr_gencount; > ctx->dir_cookie = 0; > ctx->dup_cookie = 0; > ctx->cred = get_rpccred(cred); > - } else > - ctx = ERR_PTR(-ENOMEM); > - return ctx; > + return ctx; > + } > + return ERR_PTR(-ENOMEM); > } > > static void put_nfs_open_dir_context(struct nfs_open_dir_context *ctx) > @@ -173,7 +174,7 @@ nfs_opendir(struct inode *inode, struct file *filp) > cred = rpc_lookup_cred(); > if (IS_ERR(cred)) > return PTR_ERR(cred); > - ctx = alloc_nfs_open_dir_context(cred); > + ctx = alloc_nfs_open_dir_context(inode, cred); > if (IS_ERR(ctx)) { > res = PTR_ERR(ctx); > goto out; > @@ -323,7 +324,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *array, nfs_readdir_descri > { > loff_t diff = desc->file->f_pos - desc->current_index; > unsigned int index; > - struct nfs_open_dir_context *ctx = desc->file->private_data; > > if (diff < 0) > goto out_eof; > @@ -336,7 +336,6 @@ int nfs_readdir_search_for_pos(struct nfs_cache_array *array, nfs_readdir_descri > index = (unsigned int)diff; > *desc->dir_cookie = array->array[index].cookie; > desc->cache_entry_index = index; > - ctx->duped = 0; > return 0; > out_eof: > desc->eof = 1; > @@ -349,14 +348,33 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des > int i; > loff_t new_pos; > int status = -EAGAIN; > - struct nfs_open_dir_context *ctx = desc->file->private_data; > > for (i = 0; i < array->size; i++) { > if (array->array[i].cookie == *desc->dir_cookie) { > + struct nfs_inode *nfsi = NFS_I(desc->file->f_path.dentry->d_inode); > + struct nfs_open_dir_context *ctx = desc->file->private_data; > + > new_pos = desc->current_index + i; > - if (new_pos < desc->file->f_pos) { > + if (ctx->attr_gencount != nfsi->attr_gencount > + || (nfsi->cache_validity & (NFS_INO_INVALID_ATTR|NFS_INO_INVALID_DATA))) { > + ctx->duped = 0; > + ctx->attr_gencount = nfsi->attr_gencount; > + } else if (new_pos < desc->file->f_pos) { > + if (ctx->duped > 0 > + && ctx->dup_cookie == *desc->dir_cookie) { > + if (printk_ratelimit()) { > + pr_notice("NFS: directory %s/%s contains a readdir loop." > + "Please contact your server vendor. " > + "Offending cookie: %llu\n", > + desc->file->f_dentry->d_parent->d_name.name, > + desc->file->f_dentry->d_name.name, > + *desc->dir_cookie); > + } > + status = -ELOOP; > + goto out; > + } > ctx->dup_cookie = *desc->dir_cookie; > - ctx->duped = 1; > + ctx->duped = -1; > } > desc->file->f_pos = new_pos; > desc->cache_entry_index = i; > @@ -368,6 +386,7 @@ int nfs_readdir_search_for_cookie(struct nfs_cache_array *array, nfs_readdir_des > if (*desc->dir_cookie == array->last_cookie) > desc->eof = 1; > } > +out: > return status; > } > > @@ -740,19 +759,6 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent, > struct nfs_cache_array *array = NULL; > struct nfs_open_dir_context *ctx = file->private_data; > > - if (ctx->duped != 0 && ctx->dup_cookie == *desc->dir_cookie) { > - if (printk_ratelimit()) { > - pr_notice("NFS: directory %s/%s contains a readdir loop. " > - "Please contact your server vendor. " > - "Offending cookie: %llu\n", > - file->f_dentry->d_parent->d_name.name, > - file->f_dentry->d_name.name, > - *desc->dir_cookie); > - } > - res = -ELOOP; > - goto out; > - } > - > array = nfs_readdir_get_array(desc->page); > if (IS_ERR(array)) { > res = PTR_ERR(array); > @@ -774,6 +780,8 @@ int nfs_do_filldir(nfs_readdir_descriptor_t *desc, void *dirent, > *desc->dir_cookie = array->array[i+1].cookie; > else > *desc->dir_cookie = array->last_cookie; > + if (ctx->duped != 0) > + ctx->duped = 1; > } > if (array->eof_index >= 0) > desc->eof = 1; > @@ -805,6 +813,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, void *dirent, > struct page *page = NULL; > int status; > struct inode *inode = desc->file->f_path.dentry->d_inode; > + struct nfs_open_dir_context *ctx = desc->file->private_data; > > dfprintk(DIRCACHE, "NFS: uncached_readdir() searching for cookie %Lu\n", > (unsigned long long)*desc->dir_cookie); > @@ -818,6 +827,7 @@ int uncached_readdir(nfs_readdir_descriptor_t *desc, void *dirent, > desc->page_index = 0; > desc->last_cookie = *desc->dir_cookie; > desc->page = page; > + ctx->duped = 0; > > status = nfs_readdir_xdr_to_array(desc, page, inode); > if (status < 0) > diff --git a/include/linux/nfs_fs.h b/include/linux/nfs_fs.h > index 8b579be..b96fb99 100644 > --- a/include/linux/nfs_fs.h > +++ b/include/linux/nfs_fs.h > @@ -99,9 +99,10 @@ struct nfs_open_context { > > struct nfs_open_dir_context { > struct rpc_cred *cred; > + unsigned long attr_gencount; > __u64 dir_cookie; > __u64 dup_cookie; > - int duped; > + signed char duped; > }; > > /* From jpiszcz@lucidpixels.com Fri Jul 29 15:59:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TKxJs5067752 for ; Fri, 29 Jul 2011 15:59:19 -0500 X-ASG-Debug-ID: 1311973181-719803080000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id A969CF1EA88 for ; Fri, 29 Jul 2011 13:59:41 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id xOgz3TGzGEWWRATj for ; Fri, 29 Jul 2011 13:59:41 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id B93AE58079D; Fri, 29 Jul 2011 16:59:15 -0400 (EDT) Date: Fri, 29 Jul 2011 16:59:15 -0400 (EDT) From: Justin Piszcz To: Bryan Schumaker cc: Trond Myklebust , Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <4E331D86.7060801@netapp.com> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> <1311886137.27285.2.camel@lade.trondhjem.org> <4E331D86.7060801@netapp.com> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311973181 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 29 Jul 2011, Bryan Schumaker wrote: > How does this look for printing out more information when a cookie loop is detected? Is there anything else that should be printed out? My patch applies on top of Trond's from yesterday. Hi, This fails against 2.6.38: patching file fs/nfs/dir.c Hunk #1 FAILED at 134. Hunk #2 FAILED at 173. Hunk #3 FAILED at 323. Hunk #4 FAILED at 336. Hunk #5 FAILED at 349. Hunk #6 succeeded at 320 (offset -48 lines). Hunk #7 FAILED at 741. Hunk #8 succeeded at 716 (offset -59 lines). Hunk #9 succeeded at 749 (offset -59 lines). Hunk #10 succeeded at 763 (offset -59 lines). 6 out of 10 hunks FAILED -- saving rejects to file fs/nfs/dir.c.rej patching file include/linux/nfs_fs.h Hunk #1 FAILED at 99. 1 out of 1 hunk FAILED -- saving rejects to file include/linux/nfs_fs.h.rej atom:/usr/src/linux# And the 3.0 kernel is broken for my wireless adapter: http://www.gossamer-threads.com/lists/linux/kernel/1411576 If you can make a combined patch for 2.6.38 I can try it, 2.6.39+ have a horrible driver (rt2800usb) and 1 person emailed me as well stating the same thing off-list (they stick with the manufacturer's driver or the *sta one). Justin. From Trond.Myklebust@netapp.com Fri Jul 29 17:04:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TM3xfI070444 for ; Fri, 29 Jul 2011 17:04:00 -0500 X-ASG-Debug-ID: 1311977062-347800160000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mx2.netapp.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C0F9FF20C17 for ; Fri, 29 Jul 2011 15:04:22 -0700 (PDT) Received: from mx2.netapp.com (mx2.netapp.com [216.240.18.37]) by cuda.sgi.com with ESMTP id drNayTfvPu0HhNli for ; Fri, 29 Jul 2011 15:04:22 -0700 (PDT) X-ASG-Whitelist: Barracuda Reputation X-IronPort-AV: E=Sophos;i="4.67,289,1309762800"; d="scan'208";a="566673348" Received: from smtp2.corp.netapp.com ([10.57.159.114]) by mx2-out.netapp.com with ESMTP; 29 Jul 2011 15:03:58 -0700 Received: from sacrsexc2-prd.hq.netapp.com (sacrsexc2-prd.hq.netapp.com [10.99.115.28]) by smtp2.corp.netapp.com (8.13.1/8.13.1/NTAP-1.6) with ESMTP id p6TM3w5O006528; Fri, 29 Jul 2011 15:03:58 -0700 (PDT) Received: from SACMVEXC2-PRD.hq.netapp.com ([10.99.115.17]) by sacrsexc2-prd.hq.netapp.com with Microsoft SMTPSVC(6.0.3790.3959); Fri, 29 Jul 2011 15:03:58 -0700 Received: from 10.55.68.89 ([10.55.68.89]) by SACMVEXC2-PRD.hq.netapp.com ([10.99.115.16]) with Microsoft Exchange Server HTTP-DAV ; Fri, 29 Jul 2011 22:03:57 +0000 Received: from lade.trondhjem.org by SACMVEXC2-PRD.hq.netapp.com; 29 Jul 2011 18:03:36 -0400 X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop From: Trond Myklebust To: Justin Piszcz Cc: Bryan Schumaker , Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Date: Fri, 29 Jul 2011 18:03:36 -0400 In-Reply-To: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> <1311886137.27285.2.camel@lade.trondhjem.org> <4E331D86.7060801@netapp.com> Organization: NetApp Inc Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Mailer: Evolution 3.0.2 (3.0.2-3.fc15) Message-ID: <1311977016.16078.10.camel@lade.trondhjem.org> Mime-Version: 1.0 X-OriginalArrivalTime: 29 Jul 2011 22:03:58.0123 (UTC) FILETIME=[6A5A1FB0:01CC4E3B] X-Barracuda-Connect: mx2.netapp.com[216.240.18.37] X-Barracuda-Start-Time: 1311977062 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 2011-07-29 at 16:59 -0400, Justin Piszcz wrote:=20 > On Fri, 29 Jul 2011, Bryan Schumaker wrote: >=20 > > How does this look for printing out more information when a cookie loop= is detected? Is there anything else that should be printed out? My patch= applies on top of Trond's from yesterday. >=20 >=20 > Hi, >=20 > This fails against 2.6.38: >=20 > patching file fs/nfs/dir.c > Hunk #1 FAILED at 134. > Hunk #2 FAILED at 173. > Hunk #3 FAILED at 323. > Hunk #4 FAILED at 336. > Hunk #5 FAILED at 349. > Hunk #6 succeeded at 320 (offset -48 lines). > Hunk #7 FAILED at 741. > Hunk #8 succeeded at 716 (offset -59 lines). > Hunk #9 succeeded at 749 (offset -59 lines). > Hunk #10 succeeded at 763 (offset -59 lines). > 6 out of 10 hunks FAILED -- saving rejects to file fs/nfs/dir.c.rej > patching file include/linux/nfs_fs.h > Hunk #1 FAILED at 99. > 1 out of 1 hunk FAILED -- saving rejects to file include/linux/nfs_fs.h.r= ej > atom:/usr/src/linux# >=20 > And the 3.0 kernel is broken for my wireless adapter: > http://www.gossamer-threads.com/lists/linux/kernel/1411576 >=20 > If you can make a combined patch for 2.6.38 I can try it, 2.6.39+ have a > horrible driver (rt2800usb) and 1 person emailed me as well stating the > same thing off-list (they stick with the manufacturer's driver or the *st= a > one). I don't understand. The readdir loop detection code was first merged upstream in 2.6.39. 2.6.38 doesn't report any loops... --=20 Trond Myklebust Linux NFS client maintainer NetApp Trond.Myklebust@netapp.com www.netapp.com From aelder@sgi.com Fri Jul 29 17:12:59 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TMCxIR071183 for ; Fri, 29 Jul 2011 17:12:59 -0500 Received: from xmail.sgi.com (pv-excas3-dc21-nlb.corp.sgi.com [137.38.102.207]) by relay2.corp.sgi.com (Postfix) with ESMTP id 951A4304075; Fri, 29 Jul 2011 15:12:55 -0700 (PDT) Received: from [127.0.0.1] (128.162.232.50) by xmail.sgi.com (137.38.102.30) with Microsoft SMTP Server (TLS) id 14.1.289.1; Fri, 29 Jul 2011 17:12:44 -0500 Subject: Re: Updated xfsprogs 2.6.38 merge From: Alex Elder Reply-To: To: Dave Chinner CC: In-Reply-To: <20110705024855.GA561@dastard> References: <20110705024855.GA561@dastard> Content-Type: text/plain; charset="UTF-8" Date: Fri, 29 Jul 2011 17:12:44 -0500 Message-ID: <1311977564.2790.67.camel@doink> MIME-Version: 1.0 X-Mailer: Evolution 2.32.2 Content-Transfer-Encoding: 7bit X-Originating-IP: [128.162.232.50] X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, 2011-07-05 at 12:48 +1000, Dave Chinner wrote: > Folks, > > I pushed out an updated 2.6.38 kernel merge to xfsprogs patchset a > couple of days ago. I've been doing quite a bit of testing on it, > both 32 bit and 64 bit, with 512 byte, 1k and 4k block size > filesystems and I haven't come across any regressions. The patchset > can be found here: > > git://git.kernel.org/pub/scm/fs/xfs/xfsprogs-dev kernel-2.6.38-sync > > It's pretty much unchanged from the last set of patches I sent, > except for one minor fix to the radix tree code for an off by one in > the path array size for item and tag deletes. > > I'm pretty much ready to commit this update so I can then move > forward with updating it to the 3.0 kernel code base as a smaller > incremental series. > > Cheers, > > Dave. I looked over the changes--the third one really since the first two already indicated I'd signed off on them. It is a very large patch, and most of the changes are pretty easily seen to be straightforward transformations. So my "review" consisted of a full-but-quick scan through it. More importantly, you report no regressions and I can confirm that I haven't seen any myself either so far, except that the golden output for test 122 needs to be updated: - to reflect that xfs_bmbt_rec_{32,64}_t have now been replaced by xfs_bmbt_rec_t - to reflect that xfs_dinode_core_t no longer exists - and that xfs_alloctype_t isn't shown any more, because it's no longer an enum type. It looks to me like that test could be updated so it looks for structure definitions rather than typedef's, and possibly review the list of ignored types. Anyway, I really want to see this committed so we can move forward without further ado. So I say get it in... Signed-off-by: Alex Elder From jpiszcz@lucidpixels.com Fri Jul 29 17:23:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6TMNNqJ072119 for ; Fri, 29 Jul 2011 17:23:25 -0500 X-ASG-Debug-ID: 1311978225-346e00430000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 475C5F20562 for ; Fri, 29 Jul 2011 15:23:45 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id ODGtNIHCK2EvAmN5 for ; Fri, 29 Jul 2011 15:23:45 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 138C958079D; Fri, 29 Jul 2011 18:23:22 -0400 (EDT) Date: Fri, 29 Jul 2011 18:23:22 -0400 (EDT) From: Justin Piszcz To: Trond Myklebust cc: Bryan Schumaker , Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: <1311977016.16078.10.camel@lade.trondhjem.org> Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> <1311886137.27285.2.camel@lade.trondhjem.org> <4E331D86.7060801@netapp.com> <1311977016.16078.10.camel@lade.trondhjem.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1311978226 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70345 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 29 Jul 2011, Trond Myklebust wrote: > On Fri, 2011-07-29 at 16:59 -0400, Justin Piszcz wrote: >> On Fri, 29 Jul 2011, Bryan Schumaker wrote: >> >>> How does this look for printing out more information when a cookie loop is detected? Is there anything else that should be printed out? My patch applies on top of Trond's from yesterday. >> >> >> Hi, >> >> This fails against 2.6.38: >> >> patching file fs/nfs/dir.c >> Hunk #1 FAILED at 134. >> Hunk #2 FAILED at 173. >> Hunk #3 FAILED at 323. >> Hunk #4 FAILED at 336. >> Hunk #5 FAILED at 349. >> Hunk #6 succeeded at 320 (offset -48 lines). >> Hunk #7 FAILED at 741. >> Hunk #8 succeeded at 716 (offset -59 lines). >> Hunk #9 succeeded at 749 (offset -59 lines). >> Hunk #10 succeeded at 763 (offset -59 lines). >> 6 out of 10 hunks FAILED -- saving rejects to file fs/nfs/dir.c.rej >> patching file include/linux/nfs_fs.h >> Hunk #1 FAILED at 99. >> 1 out of 1 hunk FAILED -- saving rejects to file include/linux/nfs_fs.h.rej >> atom:/usr/src/linux# >> >> And the 3.0 kernel is broken for my wireless adapter: >> http://www.gossamer-threads.com/lists/linux/kernel/1411576 >> >> If you can make a combined patch for 2.6.38 I can try it, 2.6.39+ have a >> horrible driver (rt2800usb) and 1 person emailed me as well stating the >> same thing off-list (they stick with the manufacturer's driver or the *sta >> one). > > I don't understand. The readdir loop detection code was first merged > upstream in 2.6.39. 2.6.38 doesn't report any loops... Hi, Sorry--(my error) this is meant for the client, patched & will e-mail when it happens again. # patch -p1 < /home/jpiszcz/patch1 patching file fs/nfs/dir.c patching file include/linux/nfs_fs.h # patch -p1 < /home/jpiszcz/patch2 patching file fs/nfs/dir.c (recompile->reboot->waiting for next error) Justin. From jpiszcz@lucidpixels.com Sat Jul 30 04:58:15 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6U9wFFp120444 for ; Sat, 30 Jul 2011 04:58:15 -0500 X-ASG-Debug-ID: 1312019893-2ffa02ea0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from lucidpixels.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 156511854483 for ; Sat, 30 Jul 2011 02:58:13 -0700 (PDT) Received: from lucidpixels.com (lucidpixels.com [72.73.18.11]) by cuda.sgi.com with ESMTP id 1JvGfZ0vEEhu5dLA for ; Sat, 30 Jul 2011 02:58:13 -0700 (PDT) Received: by lucidpixels.com (Postfix, from userid 1001) id 35E5358079D; Sat, 30 Jul 2011 05:58:13 -0400 (EDT) Date: Sat, 30 Jul 2011 05:58:13 -0400 (EDT) From: Justin Piszcz To: Trond Myklebust cc: Bryan Schumaker , Christoph Hellwig , "J. Bruce Fields" , linux-nfs@vger.kernel.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop Subject: Re: 2.6.xx: NFS: directory motion/cam2 contains a readdir loop In-Reply-To: Message-ID: References: <20110727160752.GC974@fieldses.org> <20110727181111.GA23009@infradead.org> <20110727193937.GA5354@infradead.org> <20110727194722.GA9345@infradead.org> <1311799021.25645.41.camel@lade.trondhjem.org> <1311800051.25645.43.camel@lade.trondhjem.org> <1311800195.25645.45.camel@lade.trondhjem.org> <1311886137.27285.2.camel@lade.trondhjem.org> <4E331D86.7060801@netapp.com> <1311977016.16078.10.camel@lade.trondhjem.org> User-Agent: Alpine 2.02 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: lucidpixels.com[72.73.18.11] X-Barracuda-Start-Time: 1312019894 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70392 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, 29 Jul 2011, Justin Piszcz wrote: > > > On Fri, 29 Jul 2011, Trond Myklebust wrote: > > > On Fri, 2011-07-29 at 16:59 -0400, Justin Piszcz wrote: > >> On Fri, 29 Jul 2011, Bryan Schumaker wrote: > >> > >>> How does this look for printing out more information when a cookie loop is detected? Is there anything else that should be printed out? My patch applies on top of Trond's from yesterday. > >> > >> > >> Hi, > >> > >> This fails against 2.6.38: > >> > >> patching file fs/nfs/dir.c > >> Hunk #1 FAILED at 134. > >> Hunk #2 FAILED at 173. > >> Hunk #3 FAILED at 323. > >> Hunk #4 FAILED at 336. > >> Hunk #5 FAILED at 349. > >> Hunk #6 succeeded at 320 (offset -48 lines). > >> Hunk #7 FAILED at 741. > >> Hunk #8 succeeded at 716 (offset -59 lines). > >> Hunk #9 succeeded at 749 (offset -59 lines). > >> Hunk #10 succeeded at 763 (offset -59 lines). > >> 6 out of 10 hunks FAILED -- saving rejects to file fs/nfs/dir.c.rej > >> patching file include/linux/nfs_fs.h > >> Hunk #1 FAILED at 99. > >> 1 out of 1 hunk FAILED -- saving rejects to file include/linux/nfs_fs.h.rej > >> atom:/usr/src/linux# > >> > >> And the 3.0 kernel is broken for my wireless adapter: > >> http://www.gossamer-threads.com/lists/linux/kernel/1411576 > >> > >> If you can make a combined patch for 2.6.38 I can try it, 2.6.39+ have a > >> horrible driver (rt2800usb) and 1 person emailed me as well stating the > >> same thing off-list (they stick with the manufacturer's driver or the *sta > >> one). > > > > I don't understand. The readdir loop detection code was first merged > > upstream in 2.6.39. 2.6.38 doesn't report any loops... > > Hi, > > Sorry--(my error) this is meant for the client, patched & will e-mail when > it happens again. > > # patch -p1 < /home/jpiszcz/patch1 > patching file fs/nfs/dir.c > patching file include/linux/nfs_fs.h > > # patch -p1 < /home/jpiszcz/patch2 > patching file fs/nfs/dir.c > > (recompile->reboot->waiting for next error) > > Justin. So I have been running Linux 2.6.37-(.. 3.0 recently) since Jan of this year on these new hosts and I have never had so much as a kernel OOPS, with these patches, there were several kernel lockups/problems but the nfs/loop did not show up. I've went back to the previous (non-patched) kernel, is there a less invasive patch? http://home.comcast.net/~jpiszcz/20110730/kernel-error.txt Justin. From BATV+3677c36449da464497c0+2897+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 30 09:25:38 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_43 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UEPcUj138058 for ; Sat, 30 Jul 2011 09:25:38 -0500 X-ASG-Debug-ID: 1312035959-472400910000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 1712C15F7F08 for ; Sat, 30 Jul 2011 07:26:00 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id w0tVs8hlPBTJLR3n for ; Sat, 30 Jul 2011 07:26:00 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QnATq-0000Tw-3r; Sat, 30 Jul 2011 14:25:30 +0000 Date: Sat, 30 Jul 2011 10:25:30 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v2 1/4] xfstests: Changed test 062 to be generic for all filesystems Subject: Re: [PATCH v2 1/4] xfstests: Changed test 062 to be generic for all filesystems Message-ID: <20110730142530.GA31200@infradead.org> References: <95dfa968c48d2bd1095876a6db3369672e76db5f.1311953979.git.sbehrens@giantdisaster.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <95dfa968c48d2bd1095876a6db3369672e76db5f.1311953979.git.sbehrens@giantdisaster.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1312035961 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70409 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 29, 2011 at 06:06:58PM +0200, Stefan Behrens wrote: > Changed the test 062 to be generic for all filesystems and to be > executed for all filesystems. > Remove output of mkfs since this is specific to mkfs.xfs and now > filtered out. The first three patches look good, but can you please merge them into on. And maybe make the subject description a bit less verbose, e.g. xfstests: make more tests generic Use _scratch_mkfs / _scratch_mkfs_sized instead of _scratch_mkfs_xfs where possible. From BATV+3677c36449da464497c0+2897+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 30 09:28:57 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UESuYv138290 for ; Sat, 30 Jul 2011 09:28:57 -0500 X-ASG-Debug-ID: 1312036135-318102890000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 236AF52DC03 for ; Sat, 30 Jul 2011 07:28:55 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id VUMvGem1EgFXBawX for ; Sat, 30 Jul 2011 07:28:55 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QnAX8-0000WG-FK; Sat, 30 Jul 2011 14:28:54 +0000 Date: Sat, 30 Jul 2011 10:28:54 -0400 From: Christoph Hellwig To: Stefan Behrens Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH v2 4/4] xfstests: Changed test 079 to be generic for all filesystems Subject: Re: [PATCH v2 4/4] xfstests: Changed test 079 to be generic for all filesystems Message-ID: <20110730142854.GB31200@infradead.org> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1312036136 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.32 X-Barracuda-Spam-Status: No, SCORE=-1.32 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=MARKETING_SUBJECT, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70410 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 29, 2011 at 06:07:01PM +0200, Stefan Behrens wrote: > Changed the test 079 to be generic for all filesystems and to be > executed for all filesystems. > In src/t_immutable.c which is compiled for Linux only, replaced the > old style XFS and ext2 specific code for setting the append-only and > immutable flags by generic code that makes use of the > ioctl(FS_IOC_SETFLAGS) and ioctl(FS_IOC_GETFLAGS). > Therefore the check for the specific filesystem type was removed. > FS_IOC_GETFLAGS/FS_IOC_SETFLAGS is always used. This code is inside an > '#ifdef FS_IOC_SETFLAGS' block in order to never fail compilation. > Without support for FS_IOC_SETFLAGS, the test completes with _notrun. A little nitpicking for the subject again, I'd rather see something like: xfstests: make t_immutable and 079 filesystem-agnostic > +$timmutable -c $SCRATCH_MNT/$seq >$tmp.out 2>&1 > +if grep -q 'Operation not supported' $tmp.out > +then if grep -q 'Operation not supported' $tmp.out; then please From rees@umich.edu Sat Jul 30 10:16:09 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UFG9xf141713 for ; Sat, 30 Jul 2011 10:16:09 -0500 X-ASG-Debug-ID: 1312038967-10f501970000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from merit-proxy02.merit.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id BDD511EF126B for ; Sat, 30 Jul 2011 08:16:07 -0700 (PDT) Received: from merit-proxy02.merit.edu (merit-proxy02.merit.edu [207.75.116.194]) by cuda.sgi.com with ESMTP id DLF7UNyKkXlDAuOW for ; Sat, 30 Jul 2011 08:16:07 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by merit-proxy02.merit.edu (Postfix) with ESMTP id 261B02039874 for ; Sat, 30 Jul 2011 11:16:07 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at merit-proxy02.merit.edu Received: from merit-proxy02.merit.edu ([127.0.0.1]) by localhost (merit-proxy02.merit.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ru5LhIaLySjh for ; Sat, 30 Jul 2011 11:16:06 -0400 (EDT) Received: from merit.edu (74-126-0-171.static.123.net [74.126.0.171]) by merit-proxy02.merit.edu (Postfix) with ESMTPSA id BB287203986F for ; Sat, 30 Jul 2011 11:16:05 -0400 (EDT) Date: Sat, 30 Jul 2011 11:16:04 -0400 From: Jim Rees To: xfs@oss.sgi.com X-ASG-Orig-Subj: xfstests fails on nfs4 file system Subject: xfstests fails on nfs4 file system Message-ID: <20110730151604.GA26285@merit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Barracuda-Connect: merit-proxy02.merit.edu[207.75.116.194] X-Barracuda-Start-Time: 1312038967 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70412 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean xfstests fails on nfs4 file system: rhcl1# mount -t nfs -o nfsvers=4,minorversion=1 emc-1:/pnfs2 /mnt/emc-1 rhcl1# cd /home/rees/xfstests rhcl1# setenv TEST_DEV emc-1:/pnfs2 rhcl1# setenv TEST_DIR /mnt/emc-1/rees/xfstests rhcl1# ./check -nfs common.rc: Error: $TEST_DEV (emc-1:/pnfs2) is not a MOUNTED nfs filesystem /bin/df: `emc-1:/pnfs2': No such file or directory /bin/df: no file systems processed Originally nfs4 was a separate file system type, and it still shows up that way in mtab: emc-1:/pnfs2/ on /mnt/emc-1 type nfs4 (rw,relatime,vers=4,... I fixed this by commenting out the type check at the end of common.rc. I don't know enough about the innards of xfstests to know what the proper fix is. Maybe a substring match, or explicit check for nfs4? rhcl1# diff -u common.rc common.rc-ok --- common.rc 2011-07-29 12:11:34.118251109 -0400 +++ common.rc-ok 2011-07-29 12:33:58.384749553 -0400 @@ -1588,12 +1588,6 @@ fi fi - if [ "`_fs_type $TEST_DEV`" != "$FSTYP" ] - then - echo "common.rc: Error: \$TEST_DEV ($TEST_DEV) is not a MOUNTED $FSTYP filesystem" - $DF_PROG $TEST_DEV - exit 1 - fi fi # make sure this script returns success From BATV+3677c36449da464497c0+2897+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 30 11:33:29 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UGXT8Z146846 for ; Sat, 30 Jul 2011 11:33:29 -0500 X-ASG-Debug-ID: 1312043608-59f103270000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 7DDD852DCF2 for ; Sat, 30 Jul 2011 09:33:28 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id LnU5NpVg6E6OdSHD for ; Sat, 30 Jul 2011 09:33:28 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QnCTf-0008IM-0F; Sat, 30 Jul 2011 16:33:27 +0000 Date: Sat, 30 Jul 2011 12:33:26 -0400 From: Christoph Hellwig To: Jim Rees Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfstests fails on nfs4 file system Subject: Re: xfstests fails on nfs4 file system Message-ID: <20110730163326.GA19290@infradead.org> References: <20110730151604.GA26285@merit.edu> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110730151604.GA26285@merit.edu> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1312043608 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70418 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Sat, Jul 30, 2011 at 11:16:04AM -0400, Jim Rees wrote: > xfstests fails on nfs4 file system: > > rhcl1# mount -t nfs -o nfsvers=4,minorversion=1 emc-1:/pnfs2 /mnt/emc-1 > rhcl1# cd /home/rees/xfstests > rhcl1# setenv TEST_DEV emc-1:/pnfs2 > rhcl1# setenv TEST_DIR /mnt/emc-1/rees/xfstests > rhcl1# ./check -nfs > common.rc: Error: $TEST_DEV (emc-1:/pnfs2) is not a MOUNTED nfs filesystem > /bin/df: `emc-1:/pnfs2': No such file or directory > /bin/df: no file systems processed > > Originally nfs4 was a separate file system type, and it still shows up that > way in mtab: > emc-1:/pnfs2/ on /mnt/emc-1 type nfs4 (rw,relatime,vers=4,... > > I fixed this by commenting out the type check at the end of common.rc. I > don't know enough about the innards of xfstests to know what the proper fix > is. Maybe a substring match, or explicit check for nfs4? What about the following patch? I makes sure the nfs4 output gets normalized to nfs as early as possible. Index: xfstests-dev/common.rc =================================================================== --- xfstests-dev.orig/common.rc 2011-07-30 18:24:55.253997462 +0200 +++ xfstests-dev/common.rc 2011-07-30 18:26:41.216756745 +0200 @@ -555,7 +555,13 @@ _fs_type() exit 1 fi - _df_device $1 | $AWK_PROG '{ print $2 }' + # + # The Linux kernel shows NFSv4 filesystems in df output as + # filesystem type nfs4, although we mounted it as nfs earlier. + # Fix the filesystem type up here so that the callers don't + # have to bother with this quirk. + # + _df_device $1 | $AWK_PROG '{ print $2 }' | sed -e 's/nfs4/nfs/' } # return the FS mount options of a mounted device From BATV+3677c36449da464497c0+2897+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 30 11:55:20 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UGtK8d148399 for ; Sat, 30 Jul 2011 11:55:20 -0500 X-ASG-Debug-ID: 1312044919-10ef03dd0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from bombadil.infradead.org (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C9B1A1EF1191 for ; Sat, 30 Jul 2011 09:55:19 -0700 (PDT) Received: from bombadil.infradead.org (173-166-109-252-newengland.hfc.comcastbusiness.net [173.166.109.252]) by cuda.sgi.com with ESMTP id Ai0oYCAMIk25q1jI for ; Sat, 30 Jul 2011 09:55:19 -0700 (PDT) Received: from hch by bombadil.infradead.org with local (Exim 4.76 #1 (Red Hat Linux)) id 1QnCon-0004WQ-6S; Sat, 30 Jul 2011 16:55:17 +0000 Date: Sat, 30 Jul 2011 12:55:17 -0400 From: Christoph Hellwig To: "Ted Ts'o" Cc: Christoph Hellwig , Ext4 Developers List , xfs@oss.sgi.com X-ASG-Orig-Subj: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Subject: Re: [PATCH XFSPROGS 2/3] Build without enabling DEBUG by default Message-ID: <20110730165517.GA13918@infradead.org> References: <1311292237-4155-1-git-send-email-tytso@mit.edu> <1311292237-4155-2-git-send-email-tytso@mit.edu> <20110722141753.GA19681@infradead.org> <20110722183048.GC25092@thunk.org> <20110722183830.GA21744@infradead.org> <20110722223458.GD25092@thunk.org> <20110723013214.GA22837@infradead.org> <20110726151033.GA18311@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110726151033.GA18311@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: 173-166-109-252-newengland.hfc.comcastbusiness.net[173.166.109.252] X-Barracuda-Start-Time: 1312044919 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1.92 X-Barracuda-Spam-Status: No, SCORE=-1.92 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70420 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Tue, Jul 26, 2011 at 11:10:33AM -0400, Christoph Hellwig wrote: > > This looks much better, and is indeed similar to some other fixes we > > recently had to put in, probably due to changing make behaviour. > > > > If you add a signoff and a proper description I'll put it into all the > > repositories. > > Can you at least provide the signoff? I can take care of the rest if > this means I can get it in ASAP. Ted, can you please give me a signoff for this patch? I could probably just put it in anyway given how trivial it is. But let's just stick to the proper protocol if we can. From rees@umich.edu Sat Jul 30 12:08:25 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_62 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6UH8PN6149222 for ; Sat, 30 Jul 2011 12:08:25 -0500 X-ASG-Debug-ID: 1312045704-1f4c00590000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from merit-proxy01.merit.edu (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 74EF31EF130F for ; Sat, 30 Jul 2011 10:08:24 -0700 (PDT) Received: from merit-proxy01.merit.edu (merit-proxy01.merit.edu [207.75.116.193]) by cuda.sgi.com with ESMTP id ht4UIgqLZeGav7BB for ; Sat, 30 Jul 2011 10:08:24 -0700 (PDT) Received: from localhost (localhost.localdomain [127.0.0.1]) by merit-proxy01.merit.edu (Postfix) with ESMTP id BD98E203986E; Sat, 30 Jul 2011 13:08:23 -0400 (EDT) X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Scanned: amavisd-new at merit-proxy01.merit.edu Received: from merit-proxy01.merit.edu ([127.0.0.1]) by localhost (merit-proxy01.merit.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id uaTwqHx3Yfl6; Sat, 30 Jul 2011 13:08:23 -0400 (EDT) Received: from merit.edu (74-126-0-171.static.123.net [74.126.0.171]) by merit-proxy01.merit.edu (Postfix) with ESMTPSA id 199C2203986C; Sat, 30 Jul 2011 13:08:23 -0400 (EDT) Date: Sat, 30 Jul 2011 13:08:22 -0400 From: Jim Rees To: Christoph Hellwig Cc: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfstests fails on nfs4 file system Subject: Re: xfstests fails on nfs4 file system Message-ID: <20110730170822.GA27493@merit.edu> References: <20110730151604.GA26285@merit.edu> <20110730163326.GA19290@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110730163326.GA19290@infradead.org> X-Barracuda-Connect: merit-proxy01.merit.edu[207.75.116.193] X-Barracuda-Start-Time: 1312045704 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70420 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Status: Clean Christoph Hellwig wrote: On Sat, Jul 30, 2011 at 11:16:04AM -0400, Jim Rees wrote: > xfstests fails on nfs4 file system: > > rhcl1# mount -t nfs -o nfsvers=4,minorversion=1 emc-1:/pnfs2 /mnt/emc-1 > rhcl1# cd /home/rees/xfstests > rhcl1# setenv TEST_DEV emc-1:/pnfs2 > rhcl1# setenv TEST_DIR /mnt/emc-1/rees/xfstests > rhcl1# ./check -nfs > common.rc: Error: $TEST_DEV (emc-1:/pnfs2) is not a MOUNTED nfs filesystem > /bin/df: `emc-1:/pnfs2': No such file or directory > /bin/df: no file systems processed > > Originally nfs4 was a separate file system type, and it still shows up that > way in mtab: > emc-1:/pnfs2/ on /mnt/emc-1 type nfs4 (rw,relatime,vers=4,... > > I fixed this by commenting out the type check at the end of common.rc. I > don't know enough about the innards of xfstests to know what the proper fix > is. Maybe a substring match, or explicit check for nfs4? What about the following patch? I makes sure the nfs4 output gets normalized to nfs as early as possible. Makes sense, and it works. Tested-by: Jim Rees From lamkinbrian600080@att.net Sun Jul 31 09:10:02 2011 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6VE9xVG218540 for ; Sun, 31 Jul 2011 09:10:00 -0500 X-ASG-Debug-ID: 1312121414-02ba011f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from nm5-vm1.bullet.mail.bf1.yahoo.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with SMTP id 9D711F25A68 for ; Sun, 31 Jul 2011 07:10:15 -0700 (PDT) Received: from nm5-vm1.bullet.mail.bf1.yahoo.com (nm5-vm1.bullet.mail.bf1.yahoo.com [98.139.213.155]) by cuda.sgi.com with SMTP id 8dG6Id775jHu5y88 for ; Sun, 31 Jul 2011 07:10:15 -0700 (PDT) Received: from [98.139.212.148] by nm5.bullet.mail.bf1.yahoo.com with NNFMP; 31 Jul 2011 14:09:41 -0000 Received: from [98.139.211.206] by tm5.bullet.mail.bf1.yahoo.com with NNFMP; 31 Jul 2011 14:09:39 -0000 Received: from [127.0.0.1] by smtp215.mail.bf1.yahoo.com with NNFMP; 31 Jul 2011 14:09:39 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=att.net; s=s1024; t=1312121378; bh=sgE/+oap+Qx1GIdirCZ0yspdpLMoiMRx0fhlHUqyGTg=; h=X-Yahoo-Newman-Id:Message-ID:X-Yahoo-Newman-Property:X-YMail-OSG:X-Yahoo-SMTP:Received:Reply-To:From:Subject:Date:MIME-Version:Content-Type:X-Priority:X-MSMail-Priority:X-Mailer:X-MimeOLE; b=1h3oa4/uApUfrB4XJjr67Y9BX10+2ojkc5627VkIXGglIMXUtQq9Ti9b1kA+VK8wepIdb/efr//Vtd+wv9lUXbq3tSbUZ7lKTva9oen3WF/pqvShTyC8O/YSk2NM9yKr01gqpTguecQwa7KOPm5HrKBntiW/rzuBGypCEVXmZL0= X-Yahoo-Newman-Id: 812220.19135.bm@smtp215.mail.bf1.yahoo.com Message-ID: <812220.19135.bm@smtp215.mail.bf1.yahoo.com> X-Yahoo-Newman-Property: ymail-5 X-YMail-OSG: h3ZGn7oVM1mKP_KLR2nEPCNP7akQx2sZiUA8Kr9zDFIJl3s Fqx5JOPT6HnR8F_C5aFfAcfQ1mNuPz_X0fA49RcceTguf9FQzK8XAYlbV0y3 tFO7c5PEeq4i0V_jSEoQ3M1PWj21U05jSu7MQJ4mSghxdiGNQ76zeveNEaw- - X-Yahoo-SMTP: 4NE3ni.swBAw8NInqUr7IqXhtjyS7nDaKlvCyCUmPmHOKhMEj7Y- Received: from User (lamkinbrian600080@74.63.243.146 with login) by smtp215.mail.bf1.yahoo.com with SMTP; 31 Jul 2011 07:09:35 -0700 PDT Reply-To: From: "Atlanta Office(FBI)" X-ASG-Orig-Subj: Contact us PSTDNMISLF Subject: Contact us PSTDNMISLF Date: Sun, 31 Jul 2011 07:09:31 -0700 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_000F_01C2A9A6.2DEFDC9A" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Barracuda-Connect: nm5-vm1.bullet.mail.bf1.yahoo.com[98.139.213.155] X-Barracuda-Start-Time: 1312121431 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 To: undisclosed-recipients:; X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean This is a multi-part message in MIME format. ------=_NextPart_000_000F_01C2A9A6.2DEFDC9A Content-Type: text/html; charset="Windows-1251" Content-Transfer-Encoding: 7bit Att: You are to contact Agent Brian for immediate release of your siezed Consignment Special Agent lamkin Agent Incharge Federal Bureau Of Investigation ------=_NextPart_000_000F_01C2A9A6.2DEFDC9A Content-Type: image/jpeg; name="Message from the FBI.JPG" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Message from the FBI.JPG" /9j/4AAQSkZJRgABAQEAlgCWAAD/4QAWRXhpZgAASUkqAAgAAAAAAAAAAAD/ 2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQH/wAARCAZuBEADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAEC AwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1Fh ByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RF RkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo 6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL /8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKR obHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RV VldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaan qKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3 +Pn6/9oADAMBAAIRAxEAPwD41/4iBv8Agrb/ANHXf+YQ/Z1/+c7R/wARA3/B W3/o67/zCH7Ov/zna/F/evr+h/wo3r6/of8ACv76/wBT+Df+iY4e6f8AMBgv Ly9LfLtr8Z9YxX/QS/8AwGX+f9Xflb9oP+Igb/grb/0dd/5hD9nX/wCc7R/x EDf8Fbf+jrv/ADCH7Ov/AM52vxf3r6/of8KN6+v6H/Cj/U/g3/omOHun/MBg vLy9LfLtqfWMV/0Ev/wGX+f9Xflb9oP+Igb/AIK2/wDR13/mEP2df/nO0f8A EQN/wVt/6Ou/8wh+zr/852vxf3r6/of8KN6+v6H/AAo/1P4N/wCiY4e6f8wG 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 /Uvgz/omeHv/AA34Ly/r5r5n1rF/9BH4/wDB/q/pb9mV/wCDgH/grY+//jLA r3H/ABZL9nQ478f8We6cc9R+oIv/AAcA/wDBWzAz+1gf9UCD/wAKS/Z05PHJ /wCLPd/Xr165NfjMrJ36fl/h/MUKyNn5wMUv9T+Df+iV4f6f8wGE8v6XqvnP t8V/0Ev7/T/L+tLfsyP+DgL/AIK2N1/ax2/90S/Z0/8AnPfpxQn/AAcBf8Fb A2H/AGsO/wD0RH9nQD9fg9j/APXwK/GXzEb/AFb4yM9f8/keaUsrHjHsD/8A Xo/1P4N/6JXh7p/zAYTy/wCBb5dta+tYv/oIX3v/AD/q78rfsyv/AAcBf8Fb GZR/w1jjHT/iyP7On73B6/8AJHuOPQfWhf8Ag4C/4K2bk/4yw6dP+LI/s6Yl 57Z+DvH4fTsK/GbejN/f6/59vajejN/f6/59vamuC+DNP+MY4e6f8y/A+Xl5 /ivmfWsX/wBBC+9/5/1d+Vv2ZX/g4C/4K2bk/wCMsOnT/iyP7OmJee2fg7x+ H07Chf8Ag4C/4K2bh/xlh0z/AM0S/Z0/fHpx/wAWe4OOmP5V+M3mIzf38/p9 f1/nRuRm/PuT536+vTn/ABo/1L4M/wCiY4e/8N+B8v8AP8V8z61i/wDoIX3v /P8Aq78rfsz/AMRAP/BWzOP+GsOM43/8KS/Z0+v/AER7H4Uf8RAX/BW3dn/h rD5PMx/yRL9nTpnp/wAkd/z0xnmvxm3Jv2Z4/p09P0x7daPMRm++Oent/n/6 9L/U/g3/AKJXh7p/zAYTy/4Fvl21PrWL/wCghfe/8/6u/K37Nf8AEQF/wVt3 Y/4axOfMx/yQ79nTHpjH/Cnun4dfak/4iAf+Ctmcf8NYcZxv/wCFJfs6fX/o j2Pwr8ZmkTfs3+nXPHb+v+e5uTfjePr74zn1z+NL/U/g3/oleHun/MBhPK3/ AAPVfM+tYv8A6CPx/wCD/V/S37MN/wAHAP8AwVsDHH7WHXt/wpL9nQCHtz/x Z7BPrx1zX6Wf8Eg/+Cv3/BQ79qX/AIKIfAD4FfHP9oP/AITn4W+N/wDhaB8T eF/+FV/Bzw2NSbw58G/iR4x0r/ia+F/hx4e8QWZsNd8P6Vfsunahp3mfZWVk k0Z2Rv5O/MRfk+4Pz4/+vx6d/ev2S/4N/GQf8FcP2TkHH/JcPkPb/jHT4wZ7 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 +v8AjT+u/wBc3/BF9W8v6/8AAi5vPoP1/wAaN59B+v8AjVPefR/1/wAaN59H /X/Gj67/AFzf8EPq3l/X/gRc3n0H6/40bz6D9f8AGqe8+j/r/jRvPo/6/wCN H13+ub/gh9W8v6/8CLm8+g/X/GjefQfr/jVPefR/1/xo3n0f9f8AGj67/XN/ wQ+reX9f+BFzefQfr/jRvPoP1/xqnvPo/wCv+NG8+j/r/jR9d/rm/wCCH1by /r/wIubz6D9f8aN59B+v+NU959H/AF/xo3n0f9f8aPrv9c3/AAQ+reX9f+BF zefQfr/jRvPoP1/xqnvPo/6/40bz6P8Ar/jR9d/rm/4IfVvL+v8AwIubz6D9 f8aN59B+v+NU959H/X/GjefR/wBf8aPrv9c3/BD6t5f1/wCBFzefQfr/AI0b z6D9f8aqbpG/56f59MnH5VPcQzWyQu/mf6RF5sXH9ePz/wAk+s1v6kh8ke7/ AA/yJN59B+v+NG8+g/X/ABqnvPo/6/40bz6P+v8AjR9d/rm/4Ivq3l/X/gRc 3n0H6/40bz6D9f8AGqe8+j/r/jRvPo/6/wCNH13+ub/gh9W8v6/8CLyyf9cy B2PUde//AOuntJ9z/V/Q/iPX8OnpVNW+XLkfz6Af5/rQrP8ANv8AL/55fu/8 /r+Yz12+tr+nEfIu7/D/ACLnmfc5j/L6n0+p6e1HmfIn+q6fj/8ArP8AnNU1 b533+Wgj/dfX+Y6+mOwpit8z7vLRIx7c/wCfTir+uPs/vf8AmL6t5f1/4EX/ ADPkT/VdPx//AFn/ADmjzPkT/VdPx/8A1n/OaobtrNv8tEj/AOeeO2fcE570 bn3Pu8vZH9P/AK/Xt+XbFH1x9n97/wAw+reX9f8AgRf8z5f+Wfr/ALP16+lH mfL/AMs/X/Z+vX0qnudZHP7vZ/rvTpyep/Hn6UzLeZ0j2denf0z6f59qPrj7 Pa+/Tvvt5h9W/q//ANsX/M+X/ln6/wCz9evpR5ny/wDLP1/2fr19Kz937zrF s+v4/T9c5711Hhvwj4w8YXiWfhXwxrniF5OP+JPpeqX3Q9/sNj/9b09K5Mbn OBy2g8Xj8ZTy/CLWUqk4Rira3cpNLTr032Q1hZN2UW3/ACpNt+VlK7v5amP5 nyP/AKrp+P8A+sf5xR5nyP8A6rp+P/6x/nFfoj8J/wDglf8AtY/Fa1ttTXw3 o/hLSrj97LeeNNY/4Ryf7P8A9vtjwcY/Gvtvw7/wR1+F3hm1S8+Nn7S3hTRJ v9bdWfhvxb4N1Wf05H270r8G4k+lf4J8NV/qM+L8NnmYp2+o8OUsdn2Muraf VcmjjI8yatZ+lui9nCcL5rioe0hg4xw/X+0GsDg7WV3/ALXrfrpo/Q/BDzk2 v/q/69OePX14/LqRbhGR/nj6/qenv+PXpmv6BG/Zf/4JU/DOZIfEnxp8ceKH j/1v2bQdLv8Azvf/AEK+/r+FPkX/AII26Tb2yb/iBqTiUZk/4QP/AF3r9rzf /hjjFfLw+llg8c+fIfBvxq4gwqtbMMF4e5zgk1aOtsYsK5LqvLYhZFThV9li c9yHCemc4R21Tt2Wumm/lofz8LcI/Voyenf/AOv/AIULcI2/Z5ffp/n2H171 /QOsf/BG3VrXy0ufiBpreb/rP+ED8gdM/wDP9/n9KI/2V/8AglZ8TFH/AAin xv8AHHhi5l/5/NG0Gx9cYN9fdOen9acvpa4PANTz7wi8a8gwv/QfjfDzOJYJ LS7tg/rb+dtba7lLI6dSp7PDZvkWL1X/ADOsJrt93W23lqfz9iT18v2I/wA/ rmgSevl+xH+f1zX7x+Iv+COngTxRbvf/AAT/AGkPBfiHzIibWz8QeMvBulT9 f+nK+/Ht+dfDfxa/4Jh/tY/CWK5vLnwjp/i3SreX91qHgvVP+Eq8+3/7crH/ AD754+q4Y+lb4KcT4tYCjxfhstzF6fUeI6dTIcY3posLnKwiunppd3slqicV w1nWGhzywcZ0N7RlHHYN7Xt9Tba0/TufACyfN/yy4/T6/wCR60LJ83/LLj9P r/ketaXiLwv4q8K3D2fiHw3rmg3Mcvkyx6xpd1pXk9P+f2x+mD6elc80ny/I I9+eP8/px+tfu+DznDYyjHGYHGU8fhJWalTnCaaaWqcHKLintZ27aHkPCuLt KPK1vHVW8rOV9PMvrJ83/LLj9Pr/AJHrQsnzJ/q+f1/Tj/6+Kps2xfl8vfH7 fX06/wD1zQzbVf8A1YeOLzTx/j29Pp05rq+uPs/v/wCCT9W/xfcXFk+b/llx +n1/yPWjzPm/5Z+v+19evrVNm2rx5Yf/AFv+PPr2/GjPH/LPf16+319e/wCt H1x9n97/AMyvq3l/X/gRc8z5v+Wfr/tfXr60NJ83/LLn9fp/k+tU1b5f+We7 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 6j4j1iK1kklM/wDxL7PVLz7IfX/jx/p6cc844fE8QV/YwisLlWA5VaKTePxb WnR3WF1733saZfUu8N/s7d7X3uvqdvxa082/W3yR9o9m/Ok+0j++PzP+NRXE yTSO6IUT/nn1/H+fqfWod6+v6H/Cur64+z+9/wCZ9qndJ91ct/aR/fH5n/Gj 7SP74/M/41U3r6/of8KN6+v6H/Cj64+z+9/5mfJT7r/yX/It/aR/fH5n/Gj7 SP74/M/41U3r6/of8KN6+v6H/Cj64+z+9/5hyU+6/wDJf8i39pH98fmf8aPt I/vj8z/jVTevr+h/wo3r6/of8KPrj7P73/mHJT7r/wAl/wAi39pH98fmf8aP tI/vj8z/AI1U3r6/of8ACjevr+h/wo+uPs/vf+YclPuv/Jf8i39pH98fmf8A Gj7SP74/M/41U3r6/of8KN6+v6H/AAo+uPs/vf8AmHJT7r/yX/It/aR/fH5n /Gj7SP74/M/41U3r6/of8KN6+v6H/Cj64+z+9/5hyU+6/wDJf8i39pH98fmf 8ad5z+h/P/7KqW9fX9D/AIV1+jXWj3GyG8to0m/56ev/AOr8j+PO+Hq+3qKn 9Z3dktne69P60sznxFR0KXtNfktl/wAN/XbFtd81wieuOfz9f8813niKz26b C6f8u8Xrx/n88Z6dzpW+k6VGyTQwx7+v/wCrp1PXH0+mtPGlxH5Mib0/zz68 n617OHhyUq9Oo/nfo+W1npsk9PzPmMZmjnicPUp6LC7ra+293tv+aZ4n5z+h /P8A+yo85/Q/n/8AZV6PdaboNmrzzQxp+nr+GPp2GfeuA1S+s5pNlnbRwoQP wH/6vy/CvLxD+r6VMR6J79Nraf1vse9g8e8Wl7PD287JLZa/15FX7SP74/M/ 40faR/fH5n/Gqm9fX9D/AIUb19f0P+Fcf1x9n97/AMz0eSn5ffH/ACLf2kf3 x+Z/xo+0j++PzP8AjVTevr+h/wAKN6+v6H/Cj64+z+9/5hyU+6/8l/yLf2kf 3x+Z/wAaPtI/vj8z/jVTevr+h/wo3r6/of8ACj64+z+9/wCYclPuv/Jf8i39 pH98fmf8aPtI/vj8z/jVTevr+h/wo3r6/of8KPrj7P73/mHJT7r/AMl/yLf2 kf3x+Z/xo+0j++PzP+NVN6+v6H/Cjevr+h/wo+uPs/vf+YclPuv/ACX/ACLf 2kf3x+Z/xo+0j++PzP8AjVTevr+h/wAKN6+v6H/Cj64+z+9/5hyU+6/8l/yL f2kf3x+Z/wAaPtI/vj8z/jVTevr+h/wo3r6/of8ACj64+z+9/wCYclPuv/Jf 8i75z+h/P/7Kjzn9D+f/ANlVvS76zhk2XkMcyd/p+Xvx0xn2rv7XT9EvY0mh hj+npx+H6/rXfh4fWLeyxOz2bvrppqtvuPOxeYfVEnUw/XtdLaz/AB7aWfXR w6BZn+yZneP/AI+I/Nz/AIf5/LtwFyzwzSI/yf56/X07dvr7NDGkMKQonyR9 Oufxx6dqx7jRdKkZ5poY9/8AXPPrz/8AXOK9LEQ56WHpU2r9XfaStu3tp+DW vU8HB5nTp4mvUqf8xbuvJJrp0enT8jyzzn9D+f8A9lTftI/vj8z/AI1v6zc6 Pb/ubOGN37yf/r/Q/h7jld6+v6H/AArw8RiPYVfZ/Wdkttd7f520Pp8PUdel 7Tby8v8AgL/It/aR/fH5n/Gj7SP74/M/41U3r6/of8KN6+v6H/Csvrj7P73/ AJnRyU+6/wDJf8i39pH98fmf8aPtI/vj8z/jVTevr+h/wo3r6/of8KPrj7P7 3/mHJT7r/wAl/wAi39pH98fmf8aPtI/vj8z/AI1U3r6/of8ACjevr+h/wo+u Ps/vf+YclPuv/Jf8i39pH98fmf8AGj7SP74/M/41U3r6/of8KN6+v6H/AAo+ uPs/vf8AmHJT7r/yX/It/aR/fH5n/Gj7SP74/M/41U3r6/of8KN6+v6H/Cj6 4+z+9/5hyU+6/wDJf8i39pH98fmf8aPtI/vj8z/jVTevr+h/wo3r6/of8KPr j7P73/mHJT7r/wAl/wAi39pH98fmf8aPOHt+RqpvX1/Q/wCFTW9wkMiSSJvT /nme3X+Xp7d+aFi3daNfN/5mpP5z+h/P/wCyrrPCsP2i886Qb0jB7fz/AP18 Vf02PQdSjOyGNH/55/z6e30/I109nY2diJPs0ITzP8/hxx7+1e3hqadRVPrC 22vp0tp9/r8j5fMM0tTr4f6vbXTdJPSzv59LbfM4DxND9nvnf7iXH73v+Pv6 fma5rzh7fka9kvrGzvthuYd/l9u/v+Wfbp+FcrqS6Dpqv+6ieY/8s8f59fw/ SoxGHtU9r9Y6afhpZ+mnRvS6DL8z/dYfDfV/Vu7XRLvp19b9DhvtHs350n2k f3x+Z/xqK5uEmmd0TYnr/j/9YfyOId6+v6H/AArx/rj7P73/AJn0VLp/hX6F v7SP74/M/wCNH2kf3x+Z/wAaqb19f0P+FG9fX9D/AIUfXH2f3v8AzHyU+6/8 l/yLf2kf3x+Z/wAaPtI/vj8z/jVTevr+h/wo3r6/of8ACj64+z+9/wCYclPu v/Jf8i39pH98fmf8aPtI/vj8z/jVTevr+h/wo3r6/of8KPrj7P73/mHJT7r/ AMl/yLf2kf3x+Z/xo+0j++PzP+NVN6+v6H/Cjevr+h/wo+uPs/vf+YclPuv/ ACX/ACLf2kf3x+Z/xo+0j++PzP8AjVTevr+h/wAKN6+v6H/Cj64+z+9/5hyU +6/8l/yLf2kf3x+Z/wAaPtI/vj8z/jVTevr+h/wo3r6/of8ACj64+z+9/wCY clPuv/Jf8i39pH98fmf8ad5z+h/P/wCyqqsiKxc//X9fb8/wOa7PSbjRLorD c2sSTY45/X8v881vh6vt6ip/Wd3ZLZ3uvT+tLM58RVWHp+0+r7NfPbXz8nZL 8DB09XuLqGHJ/wBd/nj/APX04xXZ+KLTy7W2dE/494vK785/z9eO/bbtdL02 3fzraGPee/6/5+mMCr91DDdR+TKm9Dkc/Tv6ZxxXtUoclLEUt3pZ+rStrt95 8ziM09piaFRbYW2mmu33/q3oeLfaPZvzpPOHt+Rr0a603QbGN3mhjx/9fn9P bueOuOA1C8tppP8ARoY4Yff1Hr+fP/18V5WIbw6/e4jsldX1stFbp2/4Y9zB 4v63b2eGvtd6rXT/ADIPtI/vj8z/AI0faR/fH5n/ABqpvX1/Q/4Ub19f0P8A hXH9cfZ/e/8AM9Lkp+X3x/yL/nRsv3N/5c/5B96TzE/54/8AjwqorY5HIP8A n86Sr+uef/kpfsvKX9fIu+Ynz/uY/wA/b/6/9elHmJ8/7kfl/n6Y+gqp5vuv 5/8A16bWn1nz/r/wEPZeUvu/4BdeRAf9T1/D9OvahpE+f9zH/hj/ADx6e9Uq tWtveXkyW1nbXF1cyH91b28X2if8ePyqJ4+nTi51HCEIpuUpzjGKS1bcm7JJ bt7FJNtJK7eiS1be1kt3qPaZAP8AUx/Q9/5f1Ne9/A39mz4wftEeJLPw38N/ B95fvdy28UuqXkV1Y6VZDn/SbvVv+Qf07/y61+k37If/AATL0a88K/8AC+/2 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 o8wf3j+tVt6+v6H/AAo3r6/of8KP7RXdfgHs/P8AD/glnzB/eP60eYP7x/Wq 29fX9D/hRvX1/Q/4Uf2iu6/APZ+f4f8ABLPmD+8f1o8wf3j+tVt6+v6H/Cje vr+h/wAKP7RXdfgHs/P8P+CaunzTfaofJf5/N7n3z9R29Oa9sjk+z26faX+f /np39vXP8voRXi2i3Ftb3H2m5f5IyfK+nt7/AE9as6x4im1GQIj+TD/P6fn1 4xgV7uAzilhMN7WriHrt1vsuuv5/O+vlY/LqmLq+zSVnZtrqtNF+J7BM3mWs 0kL/APLL8j36f57cnkeIXkzNcPvf5z17fj2+taWleJJ7H9zO/n235fh07fl1 5zWbq0ltJePNC/7mT2/T/wDVz1+heYZrSxeGVWliOq0b10asvS1/T1Y8vwX1 SpXpvta7X+Hb572fYreYP7x/WjzB/eP61W3r6/of8KN6+v6H/CvB/tFd1+B6 ns/P8P8AglnzB/eP60eYP7x/Wq29fX9D/hRvX1/Q/wCFH9oruvwD2fn+H/BL PmD+8f1o8wf3j+tVt6+v6H/Cjevr+h/wo/tFd1+Aez8/w/4JZ8wf3j+tHmD+ 8f1qtvX1/Q/4Ub19f0P+FH9oruvwD2fn+H/BLPmD+8f1o8wf3j+tVt6+v6H/ AAo3r6/of8KP7RXdfgHs/P8AD/glnzB/eP60eYP7x/Wq29fX9D/hRvX1/Q/4 Uf2iu6/APZ+f4f8ABLPmD+8f1o8wf3j+tVt6+v6H/Cjevr+h/wAKP7RXdfgH s/P8P+CWfMH94/rT1k2vhH+f8v61T3r6/of8KmtWTzk3t8gl9znH0yB/kd6u jjuestbarX1t28/vuHs76N6drf8ABPatAMy6ZC8z/wCsix+84/DP4VqRzQzb 0R9/lkD2/wA49Px9/K9Q8TP5MdlZv5aRxCLzMdx+HNYlhrV1Yzeck2/zP9Z+ Y/p/LjHWvqJ8R4ajUVLyWr1tot/vtdK/lofPf2PVn9Yqt9tH1s+nz79DY8Ty XK6hOjv8gl/dfpzXN+YP7x/Wt7XNSttUSG5j+SaP/Wxc9+fpmuY3r6/of8K8 HNMbfEp/WdHr97R7WGpWw2H9ora+lrWe3R3/AM/Ms+YP7x/WjzB/eP61W3r6 /of8KN6+v6H/AAri/tFd1+Bv7Pz/AA/4JfjkRfncf9Mv85/D1/DpQsiBvnP/ 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 E4qcZQkmpxaTUotO0oyTTurq1t7nE002ndNOzT0aa3TXR90XFkRd/wAnzyeh 9vpkf5x6V+1v/Bu2yf8AD4f9kjH/AC0/4Xx+P/GNPxg+n5/X2r8Rtz+m/wBc j9T6/n+Fftf/AMG7Lf8AG4f9kPB5I+PJ/D/hmj4w49uwrz85xfNk+YK++Axq ut7OKVvTz69xrdW3urH4gvJ833/yzx+X5jtzxSeYf7w/SqkkhLcdvXv7f5+n blvme36//WrwqmI8/L89rL01S+Yi75h/vD9KPMP94fpVLzPb9f8A61Hme36/ /WrP6z5/1/4CXyPuvx/yLvmH+8P0o8w/3h+lUvM9v1/+tR5nt+v/ANaj6z5/ 1/4CHs35fj/kXfMP94fpR5h/vD9KpeZ7fr/9ajzPb9f/AK1H1nz/AK/8BDkf dfj/AJF3zD/eH6V+4f8AwQt+COlfED9prWPip4uh2eFfgV4XuPiXLeXA/cfa PDd1jn+f9a/C/wA1/X9T/jX9Rv7PupaV+xL/AMEd/HnxRmhjtviL8fPEfiD4 c2t5yJ/+Ef1nS7O8tPy7/UnqCa6qdbnpV3T0Sf1K76fW7N66Pp02toefj5pw VN27deun6L+tvxb/AOCiHxyufj1+1x8ZvHP2+S80e48b+IIvDh837R5Oj/av 9E57+2P0r4j8w/3h+lV7q8mvbia5un8+e4l82WST/wCt+P8A+qptPtbnUr+w 0y2Tfc6hdW9jax/9PF5dfY/X0/XFRPGc9S1JuySTXpo1bsraXslqdFOn7Cj7 N9V+LuPEzqwdH2P/ANM8f4H/AD1NXIbq8mmhhS5uA8kvlf636ZP8+lf05+Ef 2Q/+CaH7Kv7NPwE8W/tq6V8RNW+K/wAXPDmoazdaX4X8W2uh/wBm/Yrv7F/x 6Xtj/UevFZ+n+Kv+CCGm3tnfw+APjo8tnLb3UUdx8RtL8jOB/wBQPp9K7qdV acjx2y0eD01s93i1ZaO7tbVuyOGrj20/9m1ate1+33q9tttDs/GlxP8AsO/8 EVPD3g+8huLP4kftaap448JapJJxPN4f/wCKb8SaT9OOnXjrXjv7ckc37IP/ AATN+AP7NmmTSWfif4ieI/8AhaviOTzf3954f8eeF9H1i0tLvj/H+VeheNvj h4P/AOCr3/BR79mP4IfCvw9qmm/s1+C9e8IaXa6Pdy2s/wDZttZ6D/Y+rXV3 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 Vr4vB66Sbtdb4Ztp6n8JGAuz5JC4l/Xj/P54PFe9/s3/ALQXjP8AZv8AiZon j/wld3kcNvqFt/bOl+b/AKDqWn/av9Ltbu06/wCfevcv2wP2efiv4W8feJPG dz8N7jRPCVzf3Etrc+H9GNjodnp/2r1HSvg9+v8Ay0/1p/ktf71ZDnPA/jt4 cqrN5dxBw3xXlqeYZdDH4LMMLQqY3Ap4rB4x3bjUpOXutWakrq1tf5uq0sxy jMVSqt4TFYOV4SacbtNJPa+r10t1P2e/4KIfs4+Bv2mPgzpX7cn7PVnb/bJL W3j+KvhfSx+/stYvP9M1a6+yWX/Evsf7O9vpz1r+eNZ9yo8fmc9enH+fSv2S /wCCff7Sk3wz+IEnwo8ZzSX/AMJ/ip9o8L69pd7+/sbS48Sf8Sf+0+f+vv1F fN//AAUm/ZHf9k346albeHkkufhh44l1DXvAeoRfv4P7H+1fZP8Aj7Of/wBX rjNfw/wzhs08D+O8V4HcTY94rK6uEx+e+F+Y45t4vH8MSfNi8kxWNe+M4d+z G98Rltv+fB+iSr0M6yyOc4WyxKiln0f+oxJWxluixattosQfn95vu35//Xr9 sv8Ag3Vk3f8ABYr9kLGOf+F8Z9f+TafjB/Mf41+H73G3+Aj8en+I/Gv23/4N 0ZN3/BY79kL0/wCL8d+w/Zp+MB/Dt29a/X8wxHtMDj1e98Bvfp7rfy6/5I8z c/DeST5umfx+v69/85pnme36/wD1qpySP5n9PXn+uO+ffNR+a/r+p/xryPb+ X4f8En2vnL7/APgmh5nt+v8A9ajzPb9f/rVn+a/r+p/xo81/X9T/AI1n9Z8/ 6/8AAQ9r5y+//gmh5nt+v/1qPM9v1/8ArVn+a/r+p/xo81/X9T/jR9Z8/wCv /AQ9r5y+/wD4JoeZ7fr/APWo8z2/X/61Z/mv6/qf8aPNf1/U/wCNH1nz/r/w EPa+cvv/AOCepfCfwDrfxW+JHg/4deHbaS51jxhrNvo1hbxxHz5ri8B9Pw9+ /wBf3R/4LTePrb4b+Ff2eP2QvDzeTo/gv4X+B/FHiOzj6f8ACY/2CbPVv89x nGOleS/8EFfgbYfEj9rqH4teJEjTwl+zna6P8UNZvLj/AFH2ez1T7H0x/wBP fQZ/Wvhv/gox8dLz48fta/F3xa83nWFl4t8QaNo0kcv/ADB7PVLz7Jx/nj1r 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 sV/FT9oT44XPwK0q80PwZr2n6pcaZrOu+MJbqx0PRx9qvLP7Vq11/wAuVj/o n59K+qv+CUvxA+LXxK/4KKfD3xVf+Ldcv/EOsS+J7/Wdc1C+M881v/YN4P8A S7vH+eRX6keE/APi21+Ef7e37Qnwx+HXijxz4k+KHhy48G/D688L6DdarPpv ijw34y/4m13afYuf+futKdPDVP3ny2emqt162+ZzzxOKh+779bbbPp5a99T8 3/Fn/BH+bwjp2t395+3D+x3eXOh/aPtWj2fxG8/VZriz5u7W0tP+f7r/AIY6 fkLrWhz6T4k1Lw3bXNnrE2n6pc6XFeaXL59jqX2O6/4+rT9fx6d66H4mfDf4 tfD3Vp5vij4D8Y+CdS1i6uLry/Fug6podxNcXg+2f8vv6/417f8AsJ/Ceb4z /tQ/CXwrc+X/AGCfGXh+68UXEn+os/D4uv8AS7ofj27duOnGpU51fq6oLRK7 bd7e7az2/S/49tKpVp0va1cRpbRLfS2/4P8Aqx9GWP8AwSr+P1/4u+BXga21 jwm/if4+eCNP8eeF9L+1Xf27TdH1i6+xj+1rTpZf5718q/G79mP4hfAn9pnx V+y14nfT7/x54T8eW/w+urzSj5+lXmsXl1Z2f2q05x9h/wBL/ljmv66P2VfH 3hLwv+274h/aB8SPHrfw3+A/i3UP2VfBl5rf/IKh/ti6/wCJT9kz068fQA98 /Jfxi/Z9s/it/wAFnPjB49162s08GW2l/Fj4tRazeE/2VDrHg/TLPWNJ/wBL 7X3260/4lNdc6dOdVUfq7t9RWNTvr0TW+6XR+T2TOOni6r/e1K/kkvvWv3WX 6H4+Xn/BK345ab8QPGfw0v8AxV4DtvE/gO1ubrxHZyX91/of2PS/7Y+y3fOP +PH6V8B+Bfhh4q+I3xGsPhj4Ytv7S8SaprNxo1rHbRef51xZ3ff/APWa/oS/ Z4+MVz8dLr9v/wDaQv557h7jWdPii1C4/wBfD9s0G8sx+X2QH+fWvmP9ifw7 4b/Zj+G/xI/bQ+JGmxv4n824/wCFGWeoRfuNZ1j+1PserenX7X/zD/8ACuyW FpVFF08P/L+HV/hvtfrZEUsZiYe39p12/LTyvu+nkcJ4J/4I7fGDxd8QviL4 Jv8A4x/BfwZpXwz8BeF/HniPx54o166sfB32fxJ/of8AZdpqxP8AyHNO/wCY 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 tOr7SrX7WW6V7JadtfrP6Gc6HPTVLtZ9V1v/AE3+p9J/tZfFTW/C/wDwUem8 c+P/AIS6f8fJvD914ftZfhn48tdUn0vxVp9na/Y7TS7u00U/2h9h+w4/5Btf rF+1N+z78CP2kvDv7J3wm8Afsi/Cv9mT40+OPG/2/wCLUnge012xg8NfDfxJ 4Xs7zw/ql3d61ff6F/p32sj+0s9K+A/EX/BaT4Z+Krq28c63+wH8D7z48Wel 6fYWvxwk8R+Mv+ExhudHtfsdpqn2P7eNP+3fj9fbwRP+CwHxr1KH42ax4w0P T/GHxO+LngO3+H1p8T9U1S6/4SLwV4f0e6+2eHrXSfsX/Ev/AOKdsf8AQNJ9 efWqjj8J7T2vt72v5LZdOq1W/l5MtUqiSV9v7x+6Or+Mv+CT3xi/aC/Zq/Z1 h/aB/aM8LeKvhH4o8H+CLX4beF/hVpd78MfEnxJ8N/8AEou9eu/EP27/AJiN 9aH/AImGnDOfXrX5Y/t0fDyw+Kn/AAVK0T4UeHYZLnRND+IOn+HNU+0ReQYd Hs9esxeXV3/24+1fkT8APj9qvwP+P3gP4/TaPZ+Nte8DeMtO8b/2frF1dwQa lqNndfbP9Lu7L9OOOx4r6u03/go9rdr+1h8Wv2q9S+FvhvW9b+KGn+MLWLwv eapqn2HwrqHiT/mKaTd/8hD7fp2fx/Gpw+Z02/3uIvpsum3z1ut3f0F9X0/d O7e77fL+vyv6p/wVa8bJ44/a00r9nLw9qsmq+G/2f7+4+CHg37PL58EOn3mv Wd5/xKOn/L9d/wCJzX6O/ECHwl8N9H/YG/Y/s9N2a3ofhfULr4v29xa+RPee KNG17+2NJ+12nH238vav51NG+OF5D8drb45eJNBs/FOq2/i3T/GUmj6pLdeR e6hZ6pZ3lp9ru/8At0/HrXtn7RX7dnxO+Pn7V2t/tVpDH4J8Q6h4jt9e0vw/ o93dT2Og/Y/seNLtLu9/4mH2HFp/nk0UMxw1Gq8TUfRrffW6T19H+N0ROh7S n7L87rz1Wn42/E94/wCCo0nxC+KH7dXjmwfw94gvdauIvC+l2Gj2el6pPN9n s9LtLO0+yWn2H+0Pw9K/RfwP8G0+Evwb+BX7D2g38f8Awvj9rHxRqHhf406X p8trPBZ+B9ZtbPxJ4Ttbu7sv+X77daZ/s/UeNKzmvAPF/wDwW60fxVcQ+PP+ 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 y/8Ar8tfsn4ema/QX9hrw6/h/wD4Oj/hHaJCIbf+1PjjN5ftefsl/GDpj/PP vXi+LlPDZD9LriWnGUY/63eE+S5grtRU8wyXN8Tgk9WuZ/VMUkrLoraFZNSe J4H9pUTl9Sz5bXdljcIveaV7dNdFfdnhtt/wVQ8AWsKQv+zN4Wf/AKanQfBu f/SH6f8A6gRVn/h6t8Pv+jZPC3/gh8G//IVfi9RX9D1PoRfR0qVfaf6l1/L/ AIyDPN9Nf99/y/Fnk/8AEQuKv+hlDp9jBeXl/V/W/wC0P/D1b4ff9GyeFv8A wQ+Df/kKj/h6t8Pv+jZPC3/gh8G//IVfi9RS/wCJIfo6/wDRF4j/AMSDO/8A 5sNF4h8Waf8ACnHp/wAu8D/d8vX9ftH7Q/8AD1b4ff8ARsnhb/wQ+Df/AJCo /wCHq3w+/wCjZPC3/gh8G/8AyFX4vUUf8SQ/R1/6IvEf+JBnf/zYH/EQ+LP+ hnHp/wAu8D/d8vX9ftH7Q/8AD1b4ff8ARsnhb/wQ+Df/AJCo/wCHq3w+/wCj ZPC3/gh8G/8AyFX4vUUf8SQ/R1/6IvEf+JBnf/zYH/EQ+LP+hnHp/wAu8D/d 8vX9ftH7Q/8AD1b4ff8ARsnhb/wQ+Df/AJCo/wCHq3w+/wCjZPC3/gh8G/8A yFX4vUUf8SQ/R1/6IvEf+JBnf/zYH/EQ+LP+hnHp/wAu8D/d8vX9ftH7Q/8A D1b4ff8ARsnhb/wQ+Df/AJCo/wCHq3w+/wCjZPC3/gh8G/8AyFX4vUUf8SQ/ R1/6IvEf+JBnf/zYH/EQ+LP+hnHp/wAu8D/d8vX9ftH7Q/8AD1b4ff8ARsnh b/wQ+Df/AJCo/wCHq3w+/wCjZPC3/gh8G/8AyFX4vUUf8SQ/R1/6IvEf+JBn f/zYH/EQ+LP+hnHp/wAu8D/d8vX9ftH7Q/8AD1b4ff8ARsnhb/wQ+Df/AJCo /wCHq3w+/wCjZPC3/gh8G/8AyFX4vUUf8SQ/R1/6IvEf+JBnf/zYH/EQ+LP+ hnHp/wAu8D/d8vX9ftH7Q/8AD1b4ff8ARsnhb/wQ+Df/AJCo/wCHq3w+/wCj ZPC3/gh8G/8AyFX4vUUf8SQfR0/6IvEf+H/O/wD5s8l9wf8AEQ+LP+hnHp/y 7wP93y9f1+0ftD/w9W+H3/Rsnhb/AMEPg3/5Co/4erfD7/o2Twt/4IfBv/yF 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 IfsR/DW58Qfsy/EVPsH9pP8AEW01Dw5a20cXnz3lzZ6pZ3n2W0z+Wfw4r+Sv FPwz8N/DfI3m3C3D2XcP5vxdx94fvMZYGMebMMfhc4wmNljG7a4t4X61J793 oj6LCYzM8wnQpYnMMfi8JlOX45Ja2S+p4hJW1sldK3kvQ/WKPR7aL4S2fgWH wb4D1X9nG8+EHhe61n4oXHhfS77XNN1i80uz/wCEhtbTxZ/yELK+0717H6V+ fXj7SfDEfi39m/StEvPtmiR/G7w/YaXcRy+f52jj/j09z7dMV9M/HT9or9l3 4Z/D3XvgD4t/4XZ4e8SW/wAKvD/2XQ9P+y2PhWbWLy1s+Lu0Hb/PavlS60lN W+J37LXhXRI5Hhk17wR4osI/+W8On3f/AB6f4d/TvXwX0gHVw2SZTjp/7Kvq nF2PV3a/1LhfGWxjldpJu138+iPO4Q9lVxc6bT/i5fZPd/7dHlXndq2m79Ef uX+3P8PfhKv7M/ja88YTafbW1v4c1CXRpLjH/IY/su8+yev+nc9vx4r+F2bY sk3kvHs836cdufXH484r+yr/AIKMeEdH1j4E62/xL8T6xo+iaPF5thb2d15E F5qFnbXn2S1u+f0/LqM/xt332Zrq5ez/AOPP7V/ovmf8fH2f/Pt9OMV/OP7H R4+r4K8bYvM8fmOMr4zjSu6eBmmsiwUfYy1wOM1WLxT/AOYu2lz9e8eHGlxf g6ccOrrLaeqt1jF2xj+S+q3XXU9R+BfxSufgv8VPDfxLs4Y7mbw/deb9m/57 d/6dfr1r+qP/AIJbf8FEvhd+0/8A8FHvgP4e/wCFJ6XofxF8URfEcweOf7H0 MarZHR/gl471i7zqykajjUbHSLvTyAfmF4QeuK/kBbpJ/q+h/mK/ZH/ggB/y lq/ZTx3PxvH5/s6/GD1r++/GfwG8M+PcXT8SuIcjnieMOCeH8e8hx8MfjMC8 EsEvri0wjSxuEeKwqawuLdnpdn5vknEWbZZ7bLMFjl9UzSzx+Xu1k1y2a32W i2/HX8aaKKK/oY8Oy7L+v+GX3BRRRQMKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA 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 sf4c3/hTT5br+w9S8L6Ppf8Ax9fa/wDkIZ1H6ZHvmuvxKz2eZ5vwzlHBGNy7 6tdN/UMWt9OlvuT1Xa++ODpLEwzHH5vKf1qWknzO8ttG3q73ad7+XU5D4kf8 EofCVnJrGj/BzxbqF54hs5biWKy8Ui00rSodP/6dLvv/AJ+tfkV8Uv2Qf2gd P+J2g+CdY8B6rqsMus6doMuseE7DVNcsYbe81Szs/tX2uysf7P5+1/j79a/S /wCDX/BXzwj48mttE+Ovhi3+HV5Ja/YIvGnguLVNc1W7uP8Ap7+2X3/Hjj6+ xxX7B6P448N+H/g3/wALj8PfH7R7bwxaWH9sxafb+KPC/wDausW1pa3l59l1 bSft39oWV9/on/IPGPwr5qpmvGHCOYOecYCbxEklGWNTktUkmml81Zq3fRHx WH8OeDFnq4my/DrC5mnftd3V/NXtr5630ufhL/wU+/ZF8C/sm/BH9nXw34e8 PeF4fEmqeDLi68W+IJJfI8VXmof29ecc5+2/TivzD/Zb+Cc3x2+K3h7wHNYa y+m6x9oiutQ0ew+3fY7k2v8Aog6//X9a9b/b4/bM8SftkfF6bxJc+Yngzw3/ AGhYeB7OSW6/c6PeXX2zH2S9x9iH276da8H+CP7QXxR+AeuQ638OfE+oeG5p Lq3lupNPuvI/0cfhj9Bjiv0CWTeJ+I8HeI8LkObJ8dZrl+Plw7jcdjMXhPqM sam8DiuV/WrrCaRUdLprRLU+prVMohnmFxDwT/sz69FZjgVo7Kyco/LXr9yP sb9sL/gnrrf7I/gfw9r2vXWoaxqfii6uIrX+y7X7dY6b04u7uz/48h9fSv0U /Zl1CH9mn4b/ALGeia94f8Qarc3Hxa8QeI/GWl+F9Kutc1WHw/rGl/bNJ/0S y/znPavlnT/2nvjN+3p8fvDPwoudVvLn4dah/Z8eqWdxLmx002dr9su7rn/o I31p/nrX1rpX7QnxR+GH7UFh8ftB+Gkni34CeH7Xw/4Iv/sdrql9fabceA7U 6Nq11pOk2X/H7fC+/Tiv5F4A/wCI48T4vw38NfHR5fnHFnDc8d4kZ/mOX4+6 aWExWU8M5NjsIsKvqmMksViJfVv9obWXX3tb6PPqnDeW4fPs14crY7CZdjVg ciwEcdvdpYvG41bu3+y4dJr/AKCbNK9jV/as/aGsPi1a+JPD3xL/AGPNL8N6 38RBceCPhp8SNT8G69Y+I5sXJ/sn/S73pffYe3vz61zHwN8J3l9+298LtPSz jubD4d/BXwvJcx/8sIdQ0f0/6fvrz06da+kP2hvj2/7VH7S3w0fw98RfEnif 4M/Bu18L/FrWdD8QWtrYweG9QvLX7Hq1r9k7/wBm/wDIP/8ArVsf8E39L03x d44+Nnxp8RJ/x+eMvFHhfw5J5Xn/APFP2eqfbLT7J7cn+Xavzz6cHiguEeA+ LowofVv7A8NcdlrwCxuLbwefcZ4tYLB4L/a0veeUYf6210WK/lszr8KOHP7T zfJ3Vf1n63nqlolpgMmti+b0eL0vaz23Phz/AILbfG34i6l4m8MfDpLP7B4A uLC31mWSL7V/pmsfav8Al8/z+Nfz47eX+SP/AFp9/wBe31/wr+v3/grl8AdK +Iv7P83jDQUs31jwvf29/wCZJ9l8/wDs+z+2G7656/h6euP5AmX7/wAkf+s/ n/n/AIFX7T+y24z4S4r+i1w1geHMuy/KcZwxmGOyTiHBWXNLMHr9fxrSu3i7 6Nt+Vjr8YsvxWA47zb6ziHivrSwWNy9b8uCSS5dOyW2jsI3ST/V9D/MV+yf/ AAb/AP8Ayls/ZV+51+NvTr/ybp8YOlfjay7t/wAkfP8An8c/p+RP7If8G/8A /wApbP2VONvzfG715H/DOvxf/H8+P5D+9eOP+SN4pWn/ACT+P221wMdvK5+b 4Jf7Vh31tv1+JdT8aaKKK+kEFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAU UUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRR RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQA9V+/8n6Z7f5/LPen7eE+T/ll9f17fX/CmKv3/AJP0z2/z+We9P2/7 H/LHH+f/AImtIJ66dv6/Ffec4+3ke3mtpoUCTW/72KTHMNyfoen+etfuX+xD /wAFb/Enwj03RPhv8VbMar4Vs4rawtdckl/f6bb/APXoM/55HavwxVfufJ/y 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 vhD8H9HtvBOm295+0h+0IbjS/C9ne3X2Gfwrb6NdfbPtX2v/AJcv7RsR/wAx H6fX9EfDvx2+F3wD8F+G9S8V+OfEnwu1v4Z6zqGvePPgfb+Erq+8OeMLi8zZ 3f8AxUN7/wAf39o33/Ewxp3NWfD/AMLbb4gfCXxh8afBM1mv7TmuWFva/Cr4 f/b7WxvvCo0e6/0S6tP+wjof5V8YaX8bPHP7VGoeHvhL+1X4Gt9Om+Devahr Pxa+In+iwQTeDr3/AIk+k2t39i6f2df/AI+1exw7Rjwpwxxb4n8b3/1gzqTz ziT2l45hg5zbeQ8L4JN/7VhsNzYTLMOsI/8AaMTzYi379s+VzCvUzvN8Bk+V 64PB/wCw4NrZ2tHG47GaNOzX1lNP/drLucT4o/4tb8F/E+q6Jo8em/Fb9rjx l4w8JWGl28uL6z8H6xdf8JJ4e1TH/US+1/04xz+uPgW1+FH7Ef7K/hW6+IWs W+mvJoun6xqkcnN9eeIbzS/tl3/onpj2+nWvg39kXw7Z/taftXXnxq8YWH9k /C74R2Gn+Fvhfp1x/wAeN5qHg+6/se0uv+4jY/ljHWvOf+C6mseXrngbRrC5 l+wfZbe68i3usQdT/wDq4/8ArV/mR4iZbD6S30guAvo15/muYZc8/wAxxviR 4uZjgYtxeJjhlLJOFcLjVdReVZT9Vwso393E3urq5+9ZDN8C8LZtxpgKCxM8 MsFkWQLazatjscl2xeKf1q60skm+/wAefthf8FNPGfxoXWPBPw9hk8PeA7j7 RayyW0115+sW3/P1d2l7/T6cV+S+3l/k/wCWv+eP6duvejb/ALH/AC2z/n/4 qmbfv/J/y1z6+vf+vb86/wBwPCLwb8PfBHhPDcIeHeQ4DIMsjGPO7JY7MMck k8fjsZvi8W/PbU/Ds4zjM8/x2IzTN8f9axT2t9lO2i9L9NO249l3b/k/z/TH 4ZxX7H/8EAP+Utv7KfybPm+Nv6/s6/F/j/Oa/HBl+/8AJ/Xr/n/gVfsh/wAG /wD/AMpbf2VPkxg/G7nnp/wzr8Xzn14H4euOBX1PHF1wdxTf/on8f/6gwv2O LBf7zhvT/wBuR+F3/CyfCf8A0EJf/AWj/hZPhP8A6CEv/gLX+lx/xDX/APBF 3/ozYf8AiQX7T/8A8+Wj/iGv/wCCLv8A0ZsP/Egv2n//AJ8tfzP/AMR34q/6 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 G3Os4yvMMsq4DAJY3L8dl8uV4pNLGpJyu7q6+y2mr+WhWHyT2VXD1nXbs72t urp7O2t/x8j0KiiivxI+gCiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAifqPp/U0ynv1H0/qaZQAUUUUAFfKn7RfgOG/8PpeeHvDEl5rX+keVJpd rmbpz9rPHH19K+q6KidKlWi6FaMZwatKEknF6bNO6f4+j3TTdLZuLW1nq2+3 duy+7pbT8Rmj1XR7pLbVbK8hfzT5tvef6+HH5+3X26V8Z/tTfs++Cf2lvD9z 4e1ywjtvE8cX/FOeJLOIwaro2of8ul19r/5CAsfz49e/9CHxl+H2g6v4H8SX lto9murwadcTWlzHD+/Nxxxx3r8l9H0X7DcX95fuftkctxF5cvPk/nz7f1Ff 5b/TO8OeJuCePOCvF7wZyzMMs4iocuBnT4ey5uFXF4XlbxeYwwKSnGa0lGSa knZp3Z+7eG2cYDNMozXIeJsWsTh7Lklj3rFu1nFva3RrXRWep/Nz44sfid+z nbv8Fv2tPBN58UfgzqH+i6D8RdEsPP1zR7f/AI87T7X4hvT9cV7x8E/i54w/ Z38M6rN+z9qVv8XfgVqnhLWLW18L+E/+Jr440HxBeaXeWfh661a8P/L9p3/I QxX7GeNvB+j/ABGjfw94q0Sz17R7yUxS2eq2vnwf57n3r85f2hv+CcKeH4f+ Et/Zm8eeIfhp4h/1t/4PsNU/srwrqVwf+fu0sun+enNfo/g/9Mmtw9i8kwPi hl9bwg4kzxKOOeZYLGrw44rx0Wv9sxmUyX1jhzNm9Xi8LZXbk9j5Livwqlia eIrcP4iPFWFw13aOmeYFO3w4tXeMwi1thcQ77ddDb/Yz8TfC7wb+zf8AGfxP 451iz8Z/HL4t3Vv4817wn4suv7V1zTbjR9CvLO70v7Je/wDHl/PjIr5O/ZF/ YN8c/tdeKPij8fvE+seKPgt4Y1CLUNe8EeG/B9/deDf7St7K1vP+PS0sv+Jf 9g+3Wn4fjXl1t8QPjd8H5L/RPjx8AftNhcRXFrdfET4T+F7u+1ya3/487u7/ ALW7/n/WvQvhH8YvCmi6no+t/BD9ofxJ4bm0Ow1iwtfAfxo8UWuh6HDb6xa/ 6XajSf59Ofzr/STIvHrIs8yrM8RmOUUMTlme8iXFeQrA8b8LqK5bpYjCOUsD dLVYrCXV9dT8Hq8IYrCYmhCjiJ03hb/7DjebJccpaW1xVk7PbytY8H+Duuft M3Vv8brlPGfge/0f4P3Vvayx/FCK61yfUre81T+x7T7J9t4A96rfHb9ob46/ AP4kaP8ACvxn8I/gP4w8Va5pej6pYW/h/wCHOlzzzW/iS1+2Wh/070scdz9B X0J8GfBvjbwXqvxZvPGeq/CPx54b+KH9ny3Vn4K1T+3J/tFndfbP9EtOh+v6 9M/Gfx28L/tXfEr9qjTf2gZPAElzP4fi8P2Gg6fZ2F19g/s/w3a/Y7T/AET1 +wnsM9/Q19FRw/0V+Kczr16lPgyjy07uKdXIL4+2DbfLF4NXk3intZvo9DCC 8QMvw7pqtnctenLj9Lxsk7PTomn6O2p9Y+Lta/ac8K+D38YaD8Mf2d799P0K 38R+I9G0v4c2v9q+FdHu7Wz+y6pq3X7F/wAff+HpVz9oj4f/ALTngH9n1Piv 45+J/wAL/A1trnhe38R+HLfwPFdeHJ7z7ba/bLTS7T7F/wAv3A4/KvSPFXjj xbP8Pfi0/wAPfA3jiH4hfGz4S6P8L/Ftv4s0a6g8O6bb2f2O8+1aT/0//bv8 B2ry39pLw18bP2mv2f8A4S/B/wAVeJ/hf4GsPh/Fo8V3ea5r39hzzfY9L+xf 8vvT0/p3rzcNT+jPw/jsFjK0uDIRwuYXceapn+Nklay+pP64pXxW3lq9yaU+ PMbTrU0s7jtr7sFf3bvW1l32tqr9TzL9g/Q/Cv7QHwV8beKvEN54w8f/ABv+ Heq3HjI6X4k1T+3dDvPC+j2n2y7tf7Jvff8AKv1ruv2jf2eF+Cfh7QfFvhXT 9N1v4n/CDxBf2vg/4d2ul6GNN8QXlreWek/2tpP/AEHDfccYz9OK/Fn4T/DH 4IfspyX95rf7QXiTUtY1GwuLC/0v4L+I7XVf7St7zi7tf9C/4/ePyxzXqUPx Q+KPxYbR/BX7PfwE+zaVH9n0vS/HnxY8L3VjrcNuLr/j6/tbj+vNZ8YeOPCO DniKvCWSYjD8O4SP1559nvJwRwxguVLX6zi3GWNS35cLhbtJrqbYPhPMquJ5 MfXnVxF1zYHBJ47G62+J4W9m1e93ppc4r4OeFfjZ4Y+GviTwZ8e/iReeBv2c rzULe/tfDfjjVNUg8VXlvZ8WlrpP/k3/ADNdP4P/AOE2+OzW3wP/AGS/Ad58 KPg55v2XWviRrGl/YfEmsQc5uv8AhLNF+n+cV+h3wP8A+CZuty32m+M/2nPH +sfEvVY/3v8Awhdxqn9q+DrMf9el7jjqc/y7fpGvw38JeD9Nj0rwTomleHtN t8RRWel2trYQf549/wCYr/Nrxl+mzX4uzDOn4f5bW8Xs8yxOlgMflmBxz8Le FMdoli8FhIpLiTOE9frWKTw11dLo/wB74Q8J44aGHq5ziY8P5dirO0rf27j3 po8W7yweEfW9nq16fOvwA/ZH8Dfsz+EbPRvDcL3/AIkuP32q+LNQ/f6reXGf tl3/AMTb/kIdeev/ANb7T03T/EPipodNsNNvL9/Kt4oY7eL7R+N3+XH9c1me DY5daa20e8huHuY5fKi/c/679O3+fQfsT4H+H/hnwzoulfYtLskvBa28kt0Y gJyfswGS3+yCRxjOe/FfJ/Qx4C4m4vzfjvxd8aMrx2acWZnj1gMqxXEGX2xN GN08Vi8vhjVanTjZJKKUVbTXQ+h8Ss4wGWYfKcg4axP1XDYbA+9LAu7m/dXN KS+KT3bd737nCfAvwrYaf4ZtGv8AwqdK1i3H/Hxf2tqLjsOo57fnX0HRRX+k SjGnGMKUVGMUkoqySSVtEuVJWsrLQ/FG3LVttvVt6tvu79QoooqwCnJ94fj/ ACNNpyfeH4/yNAE1FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUARP1H0/qaZT36j6f1NMoAKKKKACiiigCtfWcOoWdzZzf6m4i8qX/PP+etf mn4o/Zj+IVx4i1W/sP7OezvL+5ltfMuh/wAe/wBqAz/Ltz9a/TWimnBW54Rm k9OdJ27tcyer018hptbNq+9na/3H5R3v7NvxL022udWeGzkFnF5vl290PXn6 f49T6fMfibT7++1BIbz7RC9v+6uo/KxPDn/OePX8/wB8pIkkRo2TcrgcHpjn 1+hwR6kdwa+RfiB+zlD4g8cJr1gfJ028in+3+X1FwcgDj3HbrivyfxT8HeCP GTKKGU8ZZZTxGHweOWNwU4KCxi0SlGM7J/7S01qlZW0WqX0PD/Ema8O4n6xl 2IevLe8r72eq1utdn59LM/PT+ydH/wCEVmtdStk1WwksPsstncRef/nj/ODm vzE8Wf8ABPv9nv4zeNprm5+Gml+G4ZftEtzqml6X5E/2n16/l29q/Zj4jfBf xP4T8VzaVptteXmm3Etx/ZclvEZ/9Hzx9rB9K5jUPCviTwXY/adZsPscMnEU Yl5h/Ov40h9C7i/why/iXNPAbxJ4hy3H4zH3yDhzC4+eFp5f9exm2MxMsXLC YtYNNe79VvbQ/Q5+IOT8QvD4bizJsvxeHt/t+YJJTd91dJO76a3vr1PxV1T/ AIJC6JpeoJN8Mfj38TPA0GP+PPR4tLggg/D8gf8AOPMfEH/BPv8Aai0O5SHw 9+178VJkjlxFHcazpcHk9O/rX7lxXmqzf6ekN2ltb8S+Xa4gh/8Ar/4nmuA1 xXmmS5TzEfzT5vlxH8v6++K+X48rfTm8IeGqHEef8Q8P8f4fDYC+PUeFcnzr H4GTtd436zlX1uTT1ur+T6ndkOXeFmeY6vgsFg8wypPRSePxmDVrL4W8Xa3R LZ7o/IXUv+Cd/wC1Euno2sftgfFR/Mi87y49U0uc568Y/Gun8J/8El9E8SaX NrHxR+P3xN8ZyR/63T9U/suex/D/APX3NfsHq1ml1Z2u9/J/dW/7uPP6dx+H PT60yztb+30+aGG2u4bOT/Xf6L+44/5ee3+QR9fP8K8x+nD40cLYrPst4g4f 8P8ADpv6jjcLwpk+TY/HdlhIyyp4tbL/AGp9fIfEOX+FnD+Kw2XYrBY/NPh+ vtY/GY3VtW1+t2t9/XRnwH8Gf2Bf2Wvh3rCTW3w00PxJqVn/AKrUNZ0vz5/o Py4+lfZni7wbZ6fb6VbeG7C30ewtpbeaKzs4/Ight/tX8+On4n0rrfDPw/1j W7q5vNEFxci2zLNbxxfv/X7V6cfWvUPBXwp8YfEHWV0v7NeWcduCZbi8iMB9 7rF4D+g/qK9fh76E3ivxtnlHiTxv8YOIc+ovHWzLh3GZhPF03FWv/Y8FjFg8 IsZrp9Uw1tbrvjiPETh7JoVsPwtw/l+Fdko5hy809kl9cur/ADOW0xrnVLfT dH0pLy81W8/deWkXv3/z+Neu/wDDMPxOuI0+TT/3g82I/av/AEr/AF/T3r6r +DvwAj8Ca1qOq6pIL2eCXytKuJD++mtyOt2QCOnTvzX1OQT0OPwzX94eE3g/ wP4McNS4X4Ly2nRwuKx/9oTnmEYzxt7q6cle76vor+en5bnfEObcQ4367mGI aSXuxi3FWaVktlbtpsfnJ8LfgH4w0X4gaJc69Fb/ANlWcv8ApUkcvn+d6d8f rz1r9GYo0jjRIx8kcXlcfTj1xzn88U+iv1RuLS5YxitdIJJa7vRLXz3PEbb3 bfq7/mFFFFIQUUUUAFOT7w/H+RptOT7w/H+RoAmooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigCJ+o+n9TTKsUUAV6KsUUAV6KsUUAV6KsUU AV6KsUUAVGjjZhuSN+3+qz/k/wCc1wHi74beHfG11YTa/aR3sOnfaPKt5Pc+ 34cf/rr0qijbbTr8+4Hmtv8ACvwNa6XNo9toNnDYXERiltwOB169hjjuM9vf 4e+NX7Ntz4bjvPE/hqYPodn9purq3P8AzDbbr6dOfWv0mAUHk5/A/r/h/wDq pTubkcDtzj/6/wDT+dRVVOtSdLEQWKhJWlGaUr973urPazb07jjUlTd6cnDb Vvp2vo36aefS/wCZPwd/Z91Xxq1tr/iFxa6Jbyn7Lb/6/wC2D/J+g4NfeS/D DwY2kw6PPolpNZxxAeX/APr/AE9f1Hog+UfN2+6P5+3fv70EggMw46ADqT+n pUUadDDU/YYPDQweGWvLC0UttkrcvTZCblUkqlR803a7v6df128jyrwx8JfC vg3WptY8PWEFgk9qYpbeOLHH8/5fkK9KhtbaBnkhhjR5P7kWPfn+v+FX6K2/ 4f8AyYd/Pfz9SvRViigCvRViigCvRViigCvRViigCvTk+8Px/kamooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo r59/ag+Omj/s1fAP4p/HLXNO1DX1+H3ha41HRPCmjw3M+ueNfGF89to3gfwJ 4esrJXvbzXvH3jfVvD3g7RrIE+ZqusWWQByQNz6BBB5FKSBya/AL/g3v/wCC lnif/goZ+yZ4wHxh16LXP2h/gn8R9e0X4jXIXyrjVvDPj3V9Z8X/AA78QfY+ BY6etlJq/gLTbL+FPATHB6j0T/gq9/wWD+FX/BPW9+FXwf07VtK1b9of4yeO Ph/p8Gk3NrdXmhfDH4X6x4x0ex8b/ErxteDFkj6f4f8A7WXwn4eDf2tqmq3l nqp0yTRNNvxqMc67P8P8y/Zv2ipq2unlt22tbz+W5+3NFfgX/wAFJv8Agul+ zT+yb8BPAfiL4J+O/DnxY+Lnx7u4dN+D1vp0F5f+G9J8P23jJ/B/i34neL7o tpv2TQvDl7pfiHT9I0xg2peJ/Fekf2Smlf2PpvibU9I++/E//BTb9grwR4E8 G/E7xl+0/wDDLwx4A+IWoa1o/g3xjreoapp/h3xHrPhvy/7f0vStWu7EWMl/ p32gbrIyB+wJH3TnXZ/h/mHI/wCvl5+b+4++aK+KPAv/AAUO/Yj+KPx4u/2Y Ph7+038K/Fvx4t4r6UfD7QvEaX2r3c+j2l1e6zpmk3ojGg6zreg2FneXms+H 9M1PUdX0lLLUX1TTIm03UTH3Xjb9sH9mf4b/AB2+Hv7Mfj740+CPC/x++K+m PrXw8+Fuqaq0XiTxNpour60tbq1RYzY2R1O/0rVtN0ddR1DT21jU7C90zSE1 OeydVsg+naKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACvyy/aX8Yf Ev4t/tXfCz4P/B74d+HvjB4f/ZdOj/tBfHLQNZ+I1p8P9Lj+IHjCz8SeG/2b /DN9qv8AwivjQX7+HhZ+N/jDq/h8aUuq6Rqmj/BbxWoA1DSyf1Nr5G+Dn7FX 7P8A8Bfip8TvjR8MdG+I2lfET4y6nba78TdY8QfH349ePrDxtrdlpr6Npup6 v4Y8f/EnxL4Sur7TNDC6ZpLjRwdF0y00/S9IOn6Vp2mxxAH8YXwY8QeNf+CL /wDwX/k0/wCKPhDS/gt+zp+3bdXKy+GNK8Wr4q8EeFPC/wAYPGV6PCd1aeIT ofhzTvsXw6+MWknTwDpemDwp4AvL/j/iZY1T7t/4OdFT/hq//gifcyJ/o0f7 QXxJ824z+4H/ABcb9kvj+uRkY+ua/ej9rP8A4JP/ALB/7cnjTSPiB+1V8G9e +Lfijw/YXGmeHLrUfjZ8efD2k6DYXptWv7fw94d8GfFLw54e0RdSNpZjVTpe mWD6kbVWl3Ak113x7/4JvfseftS/Cb4afBb4/fCrU/iZ4M+DWoWt/wDDO/8A EnxN+LE/xE8KXVqi2vn2fxbTxwfilfHULS2tE1Y6r401BtYSz006qjNpmmtp +XI+6/H/ACNvaL+Lre3Z7afgu+/zP54/+Drh7eaw/wCCaN5btby2dv8AtEeO bW5nt5rXyIZwfhuLm1OeclbS6JHb7GR1Brf/AODvA2E/7E37MvlNaSyQftTW FrL9nNtcTQj/AIVN4++1WwzkAk/ZOBjtkAba/oG+Ov8AwTl/Yx/aY+BPg39n H4z/AAR0fxd8JPAOqwa94K0d9d8ZaP4j8NeIP9Na71+z8daNr+m+Pm1zX7vU 73UPFuo3viOTUvF2q315q/iybVtVvZZa4j45/wDBKT9hH9pL4afDL4OfGf4K 6n4y+Gfwgu9U1HwH4Tb4xfHHRLGz1fWpDdax4l8QXfhr4k6RqPjPxbqt5dXN 3qXi7xrqXiTxTfy3moyS6tJ/aepJIcj7r8f8hU6mqe91byd2vuenpvofznft 36F4b+Hv/Bfn/gibp3gbQ9E8I6VZ/A34I+GrDS9A0+20nSrPw+vj74q6NaaZ Z2lniwstP0+xuruwWw6EEEEggn94v2hvh3/wSs1r/gpH+zH4v+Pmo/Dy3/4K D6V4ctn/AGftJ1nxd4n0rXtT0jR9V8R3XhW7uvDllqCeDr++0zW7vxa3w/8A +EisBq2qaqb9dGGrPpemLpfovjr/AIJMfsJfEj4wfCn49+OPhX438Q/GH4Ha D4J8N/Cfx/eftGftLDXvA+jfDa4W88D22jta/GBUB0y++16i166tqmq6re6h q+sy6nrGo6lqMnp3xO/4J7fsj/GD9qT4T/tpfET4S2fiH9oz4J6dbaV8P/HM uveJrGDT4NJu9XvtAudS8P2OtR+HNbv/AA9f6vq15omparpeoalpr3qMxY6f pQ045H3X4/5C51pv+Gu3n5fjpY+22baM/wCf84r5a/Z3/bP/AGW/2srr4h6d +zh8c/Afxi1D4Ua7beHPiDZeDtWW/m8NaleC7Fn9pDBBeaPqh0rVhpXiDTjq Wi6wbC+Oj6pfmykx9RsqurK/zK/BHrntkfTj0r8ev2Af+CZvwf8A2Pf2kf2k /j/8E/g0P2dPAnxX8M+Dvh74Z+FY8War4tvdZPhrxR4v8YeLfiz4gtL7xX4z 03wavjG/8Q+HvD/gHwB4e1RR4W8KeDbPU9Y0nSNa8S6p4X0fUzP2JooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAK+Ebz/AIKCfBOw/b50n/gnPNo3 xDb47av8Gv8AheFtrUei6E3w3HhAXV/aC1uNfHij/hIBr2/S7siyHhU6awAB 1TPT7ur+XfxB/wArW/gj/tHjc/8Ap08YUAf1EUUV+Fn7Tv7Xn/BSb4p/tp+M P2I/+Cefwa+GfgPTPhN4G0Dxj8X/ANrr9qzw78Rj8MJr3xLb2d7pHg/4O2Xh ez09fFGuAXdpYatqjf8ACU6X/adpr+ktpWlDw4+qaoAfunRX84fwS/by/wCC kn7NP/BRT4EfsCf8FI9F/Zv+Inh/9qzwv4v1X4FfH/8AZ2sfFPh37J4i8G6V e6tqmheLvD3ihgZFZdKtNOaw07w3pR03U/Emgawus6no/wDaWm6TmftGf8FP f+ChMP8AwVT+Mv8AwTL/AGQPg78CvHPiRfhN8PPGnw28cfFF/Feh+HPhXBq2 gaL4k+IPxG+MWqaJruo3/iXwpp/9q2nh/wAK+HPDXhfSdSfV9Zst2p6qbB9K 1UA/pPor+TW6/wCCpf8AwV3/AGTP2vIf+Cdv7SnwK/Z0/ab/AGlf2gfh/p3i 79j3xx8D7/xT4H+G97q+q67rFhqlx8V18VDTtQXwJ4L0Tw5418R+KRpWl6T4 p0tvB/8AZinVdH8Uad4r8Ne1+Gv29P8Agqh+xp+3n+yb+zN/wUn0n9k34j/C b9uPXvEHgr4YfEf9mK28eaVe+AviBo66OB4fvrLxoNOv72x/trxH4d08DU9K P9qaRrX9r6N4r1TV/Duq+FCEc67P8P8AM/pfoor8BP2pP29v22fin/wUN8Vf 8E0v+CeEH7OHgPx58Jfg/o3xg+NHxo/aYfxTq0ENv4lXRrrSfDHww8FeF3a/ 1q90+w8V+HdR1bUdQ03VdKJvL7SidLbTN2qBZ+/dFfiv+xX+0d/wU90T9rLx b+xz/wAFBvgF4L8S6NH8Mh8Svhl+2h+zP4O+I1t8CNb/AOJobIeA/iDeeJ7F tM0Xxze/ZdXK6edR8M6ov9j2IXwnqmj+JtM8VH4M8Jf8FNf+CrH7WX7cX7b/ AOwp+yR8Nv2Z/D8n7N3xo8Q6PL+0f8VNH8eHwf8ADf4UaPqd5o3h7SvEHh7R 9d1K+8Z/FXxprdndDSTp+m6VpP8AZWj6+TpQydW8LgH9TdFfgl+x/wD8FCv2 v/BH7db/APBM7/gph4M+Edh8afGngC/+Kv7Nvx4+A0fiCx+GXxx8M6M2s3Xi LQrrw94mDahonizTLHw94jv2BXSwV8NX8cmkiPUvDGq+JuL+Kv8AwUK/b0/a 3/bM+OX7GX/BKzwn8CNC8P8A7KNzY+HP2kv2rP2jIvFOreFdI+JF5dXlqfhx 8PfCXhgF7/WtNvtI1fw/qt7qOm6sG1XR9e3jwzpOm6Vq/igA/ohor8E/2T/+ ChX7Y/wx/bd0L/gnB/wU/wDA3wc034u/FnwVrHj39mX9oP8AZ8l8QW/wq+M+ n+GbS8u/EfhXVdH8Un+0NE8bafYaTq9+FxpSZ0k6UdHJ1Pwvq3ijlPjh/wAF Df26v2mP24Pi7+wZ/wAEsvBPwLsJv2ZbHRj+05+1L+0YvinVPBHg7xP4ktTd 2HgDwT4d8LFr++1tPs15YG/1HTtWTVNZ0jxDpq6PpGj+HP8AhK9TAP6FHIRW b2z+XAr4k/Ya/bt+D3/BQP4ZeM/i58EdG+IOkeGfAnxb8ZfBXWbX4h6LpWha tN4p8GWvhu/1a7sbXRNe8Radd6JJaeIrIabfnVF1Byt2r6bGQBJ8NfsYftn/ ALemhftjeKP2Av8Agor8Ifh/cePW+GH/AAt74NftN/s56J40X4K/EHwvaXl3 Y3ugeLB4mGonwx42xZ6sQP8AiVx7tGvdMbST/aHhXV/E/Kf8E3v+Co3xU+P/ APwT/wD2t/2vvjX8M9I13xD+zv8AHL48eCdD+HX7O3gvxAmr+N9F+Gvhfwdr Ph3S9I8P3mt+N9Tv/G/iLUfENzpz34ePStrWG/StNGnamrAH73V4x8fPjL4W /Zz+CXxb+Pnjy21y/wDBPwY+G3jj4oeLrPw1a2l54iuvDngPw/qHibWYPD9j fX+l2F9rTWGlTJpdle6pp6SysA2oxgOw/BHwJ8Tf+DjH9pr4RaP+098O9L/Y G/Z18P8AjbQR42+HP7NHxN8P/FrVfiNP4QurZtQ8OaV8QfEd6Bp+jeKvEFl9 nZcHwwUN7YNrGk+FidT0vTJfDP8AwUF8Qf8ABSD/AIIKf8FBvjP4/wDAGl/D T4seA/gP+2H8Efi/4R0Oe6n8NWfxC8C/B2+v7y98PLfX+p6hZaJqWh+ItAv/ ALBf6nqZ0nVG1DSG1bVl01dV1EA/cv8AZd/aM8D/ALXP7P3wr/aR+GNh4k03 wF8YPC1t4t8L2Xi6wtdK8SWunXdze2YTVrKxv9UsbS8D2rbhZapqKAOMMSTn 6Fr8pv8Aghz/AMolv2Ev+yGaN/6ddXr2v/gon+134l/Yn/ZY8bfHTwP8GPG3 x/8AiDZ3OieGfh78KvA2ja5qt9r3i/xLefZrS68QNomjatqGjeFfD9it3rus 6idOYFLH+yItmrapphYA+7qK/mT+NHxR/wCDj34E/AnxZ+134puP+Cc+q6J8 N/Ams/Fz4g/sxaD4b+Lc2uaN4I8N6WfEniHQrXxZea5jWvFfh3RLW9OrHT/H P9lFrPUDo+reKGGmf2n9e+Pf+Cy3wz8Af8Ekvh7/AMFPdY8BahcXfxR8I+F7 XwP8FoNUBvNe+N/iTVL/AMMn4dWevmxJ/sTTvFGg+Ib1/EH9lrqR8JeHb7Vh pH9rj+yKAP2vor+ZLxH+0h/wcJ/AL4I6j+2t8afhH+xR49+Feg+F5viN8S/2 TPAMXxI0T44/Dj4brbNrGp3WleI9QvtS8P6h4r8F6KG1PxX4fbVPFTDS7O+0 vSP7U1lg2me0fs4/8Fl7y1/4In6J/wAFS/2ttA8LL4rkHxIsj4E+FdpqXh3S vGHjHSPjN4y+Fnw98H+G7TxPrviTUbGTxA+kaPJrGpPqOrLpel/254uXSTpW nNpigH9AtFfzRaN8XP8Ag5D8V/COz/a60b4c/sH6Voep+GoPiLo37FGqWHxR Pxb1HwLd2w1m00C88XfbTp1j8VL/AEOS18vTf+En0rSl1MsNV0jS9W3+Fa9m +In/AAWQm8b/APBFT4j/APBUH9mfwz4f03x/4K0XR7HUfht8TI7vxFpPgj4l WvxT8IeBvHXg7xH/AGJqPhu91yy02y8QXGoaNqOn3+lPqel3miaz/ZunmWTS VAP33rjPGvjTwl8NfB3in4gePvEej+DvA3gnQNY8U+L/ABZ4gvrfStB8N+Hv D9pdavq+vaxqN4y2NjYadYWt3e6levgRohZs7AK/mq0v9q7/AIL+/tK/s5aV +3B+zr8N/wBif4S/Bi6+HMHxN+H3wL+LKfEfXfjX8ZvCFnoR1c+Kbm8sj/wi Hhax+IdhAde+Hvh8eJ9K26RfacmseLQu3xTqlj9oj9t34+f8FG/+DfT4l/tT fs96J8IPh5rvin4QfHLRv2qPCXxNHjHVbLS/hr4P8CfFPw58ZNJ+Dl7oaqB8 RtRvrPw3r/w81DxoD4Y03SNTvdI1xn1lMqAf0TfBb4z/AA3/AGhPhb4L+NPw j8Qp4u+GnxE0dPEPgzxNDYapp0WvaBcz3VvaapBY65Y6bqlna3/2NniW/wBP sHKkMQMjOX+0L8bfCP7NXwN+Lf7Qfj631+/8EfBn4feKfiV4ttPC9nZ33iK6 8P8AhDSbzWtVh0i0v7/SrC8v2s7Pbp8d9qWmozAFtRQM7V+Q3/BvPaftcwf8 E+PglN8f9W+At98FJ/g/8L2/Zcs/hTaePYPiNp3hYN4v/wCEsX433ficHw9e a6WHhP8AsZvBhGnA/wDCQf2medNFfan/AAVz/wCUXn7f3/Zpnxw/9QPWaAPy 40r/AIOjf2I9a0a28R6Z+zV/wUD1Dw5eRfabXxDY/s+eGL3Q5bftd/2vafFZ rH7Hj+Pccnn6fp9+wV/wVJ/Y9/4KP6V4qm/Zt8fapeeLfAfky+PPhh460G68 F/Efwrb30ptrO7vfDuoMyXlgt2Bp0upeHdS1fSdO1bdpOp6jFq+Im/Bn/glJ /wAF5f8Aglt+y9/wTn/Za+Bfxm+PureHfip8L/hzPoPjHwvZfBj4ya7/AGdq /wDb2sXhs7TVNG8Dal4evB9iu7Q79N1M6byQCoArp/8Agmx47+H3/BRf/gt9 +0D/AMFHv2VLW38E/s2/D79nHT/gV4uvtUm0Tw34/wDjx8UdXudHvG8Vat8N LK+fxFYeFfsFnpW3xF4k03TTqh8B+Eck6z/amleFwD+tuviL45ft2/Bz9n/9 qD9lj9kvxro/xAvfiV+17deObT4Yap4b0XTL7wfpp8A6ba6zrX/Cbave6/p1 /ou+1uwdM/s/StX3kNvNirKR+Kf7Qn/BT7/gpt4r/wCCnf7XP/BML9h34S/A LxH41+Hfhv4O+M/h38SviVba9pOh/DPwDrHwm8BeMviz4y+Jt8nim9Hii9fx d8Q/CnhD4f6b4c8LImnHWj/bUeqfYGU+3a1+3Z+3z8CP2oP+CRP7Kv7TPhT9 m9/ib+10fj1b/tL6j4H8O+Kb+x0K5+HH+m+CP+FT6vfeOT9ivdQ0O60i+8Vj UdM1Qalqd1epoukaUigAA/obor8Mv2rP2vP+Cj3xE/bQ1/8AYX/4J4/BX4b+ EU+HHw90fx78Yf2tP2qPDnxJ/wCFTWlz4ktrO+0nwb8JbTwxaWFj4z11LPV9 KOo36v4o0uPVf7d0bVNJ0r/hGtS1avC/hL+3p/wUs/ZY/wCChn7Ov7DP/BST R/2bfiX4N/a703xkPgj8ef2drHxX4YuNN8VeDNMbVr3QPFnh3xMVN7kjSdON hp3hjTBpn/CR6drH/CV6sBqWl6WAf0g0V/Nn+1D/AMFRP2/dB/4KoePv+Can 7I3wU+CvxI8S6x8D/BPjP4YeKfiT/wAJXofh74caxf21nrfjn4i/GLxBpGus +seBvD2ifa9O0fw54d8NaXq2o+KNY0BE1bU9o0nU6/w9/b6/4Kc/seft+fsv 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 Z8PeHtP1fT9R66V4864A/tT3H4w/C39qjxv/AMHMf7UXhX4F/tlWf7EfxO+I H7JXw+1L4O+PfEnwL8BfHEfEP4c6P4N+D48XfDnwn4d+Jt9p+nWN9/wlfhPx b4wa/wDDudUGleA/FwPH9qV/Qt+yD/wSe/Zh/Yl/aX/ai/aq+D0/xBuPiR+1 Zr2r634xtPF+r+F9R8LeCofEXjTVvHmv+H/hlp2ieFPDmo6N4d1TXNVtvN0/ xDq3iVlj8OeH9kqvp7Pfaf7ef/BLj9mv/goKfAXiX4mXHxE+GPxp+El6bv4S ftDfA7xhJ4E+MngFmuTfvZ6V4jaw1SwvdMF+TqMWn6npeof2VqLXupaHqGj6 tqF/qUmnPrt+P9fl8yORd3+H+R+DH/BSH9gf9qfW/CPwF8If8FHP+C8PhSXw nrP7Q/g7UPgZoF7/AME//Aeg67rXxw0fStXs/Dx8PXXwY8VaZ4y+3ix1fVtN w4Hhcf2tYjWB/bGpaVn+wxF2xon+wB+QA9/WvxQ+Af8AwRI+Bvwy+PXgT9pr 4/ftBftWft0/Gz4TGOX4Qa5+1r8UB8QPDnwsvrZmFnr/AIR8PLolgBr1hdpb ajDqWqalqkOna1Z6b4o0jTNL1zTtO1OP9s6zLCiiigAooooAKKKKACiiigAo oooAKKKKACiivxt/aV/4LD+AfhB+0L4u/ZW+A37MX7UP7b3x0+F2maTq3xf8 O/s1eA7bxF4a+E8Pia3+3aNpvjrxZqF9YWVnr17pw+3Jp2nafqaAsdK/tIa0 l/pMIB+yVFfmf+wP/wAFP/gf+33qXxU8CeF/B/xd+CHx8+BV1p9h8Y/2e/j9 4S/4Qb4peCW1k3Qs9UbSRfajZX+h/brO6sPtqOmqae/2Jda0rShq2lf2l83f G/8A4LffCfwj8fPiD+zV+zH+zJ+1T+3h8VPg7dvY/GkfsyfDxfEngz4YahbX d5aXmgeIfFl3eKG8U2F9Z3entp1jpj6YdWtL/RxrI1nTNU0vTAD9waK/OD9i z/gp5+zF+2z8J/iv8TPB+oeKfhTqX7Pl7qNj+0b8MPjho9r4A+I/wIvtHtdX v9U/4WJpN5f31jp2iJaeHfEap4gTU5NLz4c17TJG03WvD+s6XpnwG3/Bf3QP HlhrfxC/Zd/4J2f8FBP2pfgH4fv9Z0+X4+fDn4NeR4H8SJ4duru01jUvBFpf 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 ftof8FLv2ff2Lv2W/An7X/iG38T/ABd+DvxL8UfD3w74O1T4Njwxr0+vW3xJ 0y81fwr4nsrnXdf8PabdaBJp9j9s+3jUhtF3ZkZ3ZH1p8fPjJ4f/AGfPgZ8Y vj74u07WtV8LfBP4U/EL4u+JNM8PRWc2v6h4f+HHg/WPGeq6ZpFtf3+m6c+u ahYaNdWGlpqOp6bph1Jo/tGpWCuXoA9nor8lPiB/wV+/Z8+HP/BOb4d/8FMN b8C/FqX4L/EebwdFpnhSysPBv/Cx9OTxh4quvCFnc6tZ33jfTfCKDT76zkvt T2+KiE0sBhuJKr8h/Ej/AIOI/hB4MtdT+KPhf9if9vD4n/sg+HdWGl6r+2R4 R+CrWvwX1O0XU/7HufE/hLVvEmpaWmteCV1IJYf8JFqeo+GkbUVaEx4k0xtU AP6J6xdX1XS9F0zUtc1nUrPStG0iyn1LVNV1K8t7LTNN0+xgN3d6leXd5tsr SysLVTeS3kjrHGiO0rKsbA/Muq/trfs0aL+yNF+3Nq3xP0qx/ZluPhvpPxWh +Is9veJby+FNatrQ6Tbf2QLH+3/+Egv7+8tNATwh/ZZ8VHxZdL4U/soa3nSx +Gvxb/4L4fDb4h/s5/FPX/FX7FX7c/wd/Zn+Lnwv+IHg34bfta/EX4MmH4O6 xq/jDwrrOjeCNT1+80bUdUOi+FvGeoXVpYaT4isTrGlnUrtY2J26k+lAH9IH w9+IngD4teEdJ8f/AAv8deD/AIk+BtffUm0Hxn4C8UaL4y8K6yNK1W80bVTp XiLQrzUNLvl0zW7G+0zUVsr9203VLG70uQpNZOld9X4X/wDBte27/gi1+xt9 P2gPxz+1D8aq/YH4t/Fj4d/Aj4ceM/jB8W/F+k+Bfhn8O9Av/E3jXxdr0y2+ l6Lo9gha5udqBr68vZXKWGm6bpkd9q2r6nd2Ok6Tp2patfwQOAen0V/OZc/8 HE3w3uPDV98a/C//AAT/AP8Agof4t/ZC0y51D7b+1bpPwPtYfh1LodncvZXv jbSra815WvvA+n3trcpq2v3+qaR/ZCLt1XS01c/2UP0q+I//AAUm/Zt8EfsE a5/wUc8K63rPxm/Z20Xwjo/jK2vPhvaWcviTWdP1fxTo/g650210fxLe+G1s fEGga3q39m61oHiDUdL1HStUsdS0jVI4dWsjGAD9CaK8h+DnxZ0H42fBj4Xf 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 of2cb/4IW37S1t8efhL/AMM93em3GsQfGybx/wCFYfhk2nWmqXei3VyfG9xq C+HgtlrdleaE+dR3DV7a60px/aUfl15h8BP+ChH7Ef7Uvie88Ffs8/tS/BL4 r+NLKC5vJvB/hHx9oF/4rmsbLm61Gz8NteLruoafZH7+pWGn3umLjPmY+ZAD 7Qorxr41fH34I/s5eC5/iJ8evi18P/gz4HguoLH/AISn4keLNC8HaNLqF2St pplrea5eWKXmo3jNmLTrEyajJtYqm1cr5f8As8ft0fseftZXepaZ+zf+0t8H vjHrei2327WPDngjxtoWreKtMsC/2Qale+FReLr9np5ul2LqMmljTS+E80u4 YgH1rRX5leCvC9zb/wDBVH4ueLX/AG+08W295+zBpmmR/wDBOMa/58/wxuP+ Eh+Gpb9oT/hHh8R777GuoizOgHUP+FZ6WGXx4QfFDAmPVfev2gv28P2N/wBl LVtF8P8A7Rn7S/wb+DniPxBELrRvDXjnxxomj+Jb3TvtH2P+118PPeNqq6P9 sO066+nDS0JKmUFSaAPruiv50fgX+1T4v+K//Bwj8T/hz4G+PusfEf8AZY1D /gm1ofxV8B+E/C/xHufFPwWvPEV54/8AhRZL4+8KaVo2oaj4Qvr6/sdW1Ww/ t/T2LMLq/Vck8/sP+0P+2p+yZ+yZDpMn7S37RHwn+Cs+vx3E+gaZ478Y6Xoe ua5bWbFbu60fw/JdHxBq9lZFX8690/TnsI9w3OCVwAfU9FeKfBL9oP4G/tJe C4fiF8APi78PfjL4KmuWsT4m+HPjDQvFul2mooVW50y9utEvb9bDWLJRul07 UfLv0Jwy4YkeZ+N/26v2M/htpvxH1nx1+1J8CPCumfB/xVbeBPihcaz8TvCF i/gnxzdw3V3aeDvEFsNRN5YeLLxLW7K+HJIhrEn2S72aafKlIAPreivmz9nr 9rf9mj9rHQdT8T/s2fHX4Y/GzSdGube016T4feLtK8Q3Xh25uS5s7fxBplpe HU9DfUltbl9MGqadp41FIyYg/lyMW/tC/te/swfspaVpmsftI/Hv4V/BSx11 7mPQ0+IPjPQvDt/rzWh/0waBpN9frqetf2cDu1H+zNOvzED8yj5UoA+laK8M +Bv7SHwC/aa8ISeO/wBnf4y/Dj4zeEoLk6fc658N/F2heLLHTdRIbGl6sdHv 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 Mtu9xB9ohtwD/pLW4ywTP8RUL07EAgGnRXG+GPHXgvxvFeT+DfF/hfxbDp85 tdQk8L6/peuw2Nx3tbttHvr4Wl2Mk4baxwTjoBtatq+laDp13q+uarYaNpdl CJr3VdVv7WwsLOBRj7RdXd40dlark8szBWJHOOKANiivwr/4Klfty/GT4C/F z/gk/pH7OHxQ8PW/gX9qf9uv4bfBr4s3um6T4L8caZ43+GviPxl4N0jVdC0v VrzTfEA0Vms9V1azOveHNQ0nU0c7Rqo2Cv2213xBofhnTLrWPEmtaT4f0izU SXWqa1f2mlWFqDyTcXt66WanI6s4x2BODQBvUVznh7xN4c8W6XBrvhPxDoni bSLkf6PqugarZ63pdxgAf6PeWF3JZMRkcq/Xrk10dABRWfZ6hYalELiwu7W+ tj8nn2dxBcQ/RnRmX2wCeO1NtNRsb6S5hs761u5bOXybyO3ubeaW0mwCbe5V CxjbngMA3btmgDSorOS+0+a5lsYby0e8gTzLm0juLd7mIMOtzboxZQe7MAM9 MAg1zGq/ELwFoOvad4X1vxz4R0bxNq+TpXh7VPEekWOualkHAsdJvL5b+9we 1nG3ryOaAO4oqtNcQW8L3M8scNtHH5sk8knkxRQgZ3FiQBx0Jx6ZHArm5PGf hFdX0vw8/irw5Dr+uWs9/ouivrWmjV9Y0+1ytzeaVpX2v7dfWaAktd2Mbqvy lmwDkA62iuS8T+N/B3gixj1Lxl4r8NeEdMkn+zRaj4o17S9Cspbjtard6xe2 KG7IAIUuxAwTngjasNRsdUs7e/028tb/AE+8hgubS9tLiGezvILo/uLi1urY ssiuB8rrwxOFJ4agDToqGWWOCJ5pnSKONPMkkcgRxhRyckjjrzx27kCv5Y/G X7Qf/BSX9vj/AIKh/thfswfskftx+Bv2KPgV+xXafCfSYbyL4P8AgP4ueIvi r4w8eaD9tvLm6HjWyxeD+3LPxDp+NO1QaTpWlWfh9T4U1TWNR1PVgAf1RUVx epeNPCXhjSpNQ8S+MfDmlWOnXcGk3usa3rmlaTbf2oWFqtreXN1LY2NnqN5d rt+wgpl8+XGAwC9Dd6lp1jYzanfX1paabbxG5mv7i5t4bKGAAk3BuWKoFx0Z mAJOATkZANOiuT8LeM/CHjWxk1Dwd4q8OeLtNilNtJqXhrWtN1yxScYzbvd6 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 LH/AHwx8Ofif8F/jx8bP2x/2ivEfwl0j4geHdf8AhXq/xB8D3mmfB28u7Xw7 deJ9P8Nm+0H4q6F4e8WfD/S/EJYeFNUbWLzOqNpDamVAPnqz+DP/AAbbfA74 Xz/Dr9sz9oHSv24P2x/Ec2rf8Le+Mnw98WftGfGL4j+PfihrF3dm9PhLVvhf qOp+H9FXT70/2bo41PUlbU3sSdY1TV9WbU6/S3/g1x+K3ibxt+xP8d/hvqfi vxn4v8E/AL9rj4k/DX4N3HxEF5F4s0H4Tjwz4M1rw94X1SxuwP7GOnX2qatq A0LIOjSaveaSAx06vBv+Cen7Y2i/sqfsufCn9nD4Lf8ABFr9snSv24/Bvw10 f4feM9Oj/Zp034f+DvHvxW0fS10jVviL8Qv2j/Er6YLLwT4z15brxBq3iHxI G/spb1tF0ddT0bT9N1Vvff8Ag3T+Df7UX7O3gr/goV4A/as+D/jrwB8UJf2v vFHxJm1DU/B3irQvAHxOuPEuhpZ6t4g+DfivWNE03w/8QPC9/rvhK7K6p4c1 HVWj0u70BtXZF1LTdwB/TJRXwN/wT3/a2+MH7ZPwM1T4sfG79kT4q/sUeL9N +I+veDLb4S/GH/hJj4o1Pw9pGm+GtSs/HNqfFHw6+Guqf2Nqt5rV5psTJ4cO nCTRbwrqknzxaf8AfNABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA3Yvp+p/xp1FFACFQ3Xt S0UUAFFFFADdi+n6n/GnUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFfKv7Z/7Mun/ALYn7MPxc/Zx1Dxz4q+GL/EjQra10X4h+C7m 6t/EfgnxP4f17SfFPhLxPZi2v9Me+XS/FPh7Sb7VNNj1HSzqulC/0capph1A 6lH9VUUAfzbt+zB/wcV3HwkT9lab9rP/AIJ/23w4HhT/AIVxL+1JbeFfjfcf tRTeCTZf8I7/AGodJvLD/hX48cf2CcHUv+Qr/av/ABNv+Et/trGqV+vP7Av7 F/w9/wCCfn7Kvwv/AGVvhpqOo69ofw60+/m1PxZrNva2+q+MPF3iXVb3xH4t 8TXdraDZa/2nruq3p0zT/M1FtI0gaZo51PUv7PErfZ9FADdi+n6n/GnUUUAF FFFADdi+n6n/ABp1FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRX8+f7Xf/Bar4w/ AL9u7xl+wZ8AP+CdvxE/bC+IXgr4beGPile3ngD4tW3hy+fwtrVppF3d3P8A wih+FvidrSz8PXviHR9Om1FtVYSPeWTlRuIAB/QZRX83q/8ABZL/AIKcM3/K Af8Aad/8PTa554/6Ifn9cfSv6F/B2salrvhTwzrms6Fc+F9W1vw/ouq6r4av ZRPfeHdRvtMtbu90O8uVAW5vtMvLhrCRwqI7W7lVBG0gHV0UUUAFFfNv7V/7 Tvwp/Y2/Z++Jf7THxx1DV9N+GHwq0zT9V8RTeHtKvNe1uc6v4g0fw7oWmaXp NiyPd6hruv6vpelw/bZdO0mCS+WTWNU0zSY9Q1SL5M/be/4KU6B+x5/wT0sv 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 5k8zTrAj2GmO4RGbHCD+g/xoA83+J/wp+GHxq8G6j8O/jF8N/AnxX+H2sXGn 3Oq+B/iV4Q0Dxx4Q1O40i+t9Z0u51Xw14o0/VdBvn03ULKz1DTWv9Pb7BqNp ayxYcIy9RJ4c8Py+HX8KzaFpEnheTRz4cl8OPpln/Ycnh/7GdPOg/wBkGL7B /Y32HNh/ZpjOnfYCYiPKJFfIn7Cn7dvwd/4KFfB3XPjb8DdK8eaN4Q8P/Erx T8Kr61+Iui6HomtjxF4NttGvNVu7a00XxB4lsZNGYazbf2Zf/wBpbpsMzaem FB+3qAPN/hl8LPhn8F/Bmj/Dn4PfDrwP8Kvh7ocmpyaF4E+G/hDQPAvg7RH1 fVLvWtUOleGvC9hp+had/amsX1/qWqGysUOo6nfXepvl5Gc9nqOnWGsWN5pW q2lrqWnaja3Fjf2F/bQXdjd2F1Cba5s7y2udy3VleLuV42VlmB2SEpuU6tFA Hzz8E/2WP2aP2a5/F0n7PH7P3wd+BsnxAubG98ay/Cf4c+Fvh/8A8JXdaP8A bP7H/wCEiHhfRtMGo/2WNW1c6Ut+ZF0v+19R/spUOpX2/wAe1b/gmp/wT31z 4jy/FvWP2Jv2YNS+IdzqX9t3fiy7+CngKfUbvWBdi+/t69zon2C91w3pN7/b t9FJqwPSXdX3PWfd3lrp9rcXl5cQ2tlaRTXNzdXEgggtoLUE3NxcXDEKoVQW Ytt4UknhiACeCCC2hit7eGOGCGMRRQxoIYooRgBQoGAAF6DGeTjqanZdwx/n /OK+U/h/+2R+z/8AFv8AZ98b/tQ/B/xqvxR+DXgO2+KF3f8AivwfZ3Vzb68P hH/a/wDwl6+FTrK6WmsKLzRr3T9Kv0kGkao6pJpOpy6U6am3ydqP/BX/APZc 0v8A4Ju6N/wVGuPDnxlH7O2sX5sbXw+nhnwy3xVWf/hbl/8ABT/SPDh8df8A COLjxZpt1fH/AIrUj+xf+JkwOrY0oAH0h4c/4J5fsIeE/iqvx18Mfsf/ALOO hfF6LUxr1r8QNI+D3gSx8S2WvfaVvf7f028tNDX7Br/2shjr9iqavn/mI8YP 0B8OvhF8J/g9oureGfhL8MfAHwv8Oa5r+seK9X0H4eeDPD/g7QNX8U600P8A b3iXVdK8M2Om2F9ruqm3tRquqXqvqWp/ZAJXYxDPUeEvEdh4y8K+G/F2lxzx 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 1BhqgGFHx3pP7dH/AAU7/b+/aV/a9+GX/BO3U/2PPgf8Hf2M/jBrPwM8SeLf 2iLTxp4z+J/xK+IPh67vLLV9Ss/DnhbOn+GPA73/AIe1Ww0q9v8AShqJ007v 7T1PWv7U0rwvX+JP/K078B/+0Yesf+rF+L1eHf8ADC3/AATq/wCCpP7TP7Wf xm/Y1+PH7T/7An7dfwX+MviDwF8dL34c+J7b4f65qXxA0e6Flq3xH1X4YWOu NqN74V8R69aatYHX/D3ifwEPE/ijSNf1fWdLOsah/a2rAH65f8E2v2oP24fj Hc/Hz4O/t8fszRfBj4wfs9+M9H8NWXxX8AeHvGth+zx+0JoGt2+rG08V/B7X vGKM2oDTTpVu2t/2fq2ops8SaGZdL8L6r/a3hjSP071rWNJ8N6Pq3iDW7620 zRNC07UNY1jULuQRWem6dpdq15e3tycKFtbC0tmeRxu+UElepr+b3/gkJ+09 +2ppf7en7Z3/AATU/aZ/aL8P/tqeGv2XfAng7xh4W/ab0fQNJ0vVdP1jV7rw 3Z3nw28WXWjkLea6f+Eiu/7TsfEeqeKPFOj6z4O8VaW3irVkVk0393P2rfAH iL4r/sv/ALSHwu8Hv5fiz4j/AAH+LPgPwxL5pg2eIPGHgLxD4d0lvtP8P/Ew vrbcTyMDdwwwAfgL8EP26f8Agsh/wU0Xx9+0X/wT68Hfsh/A79kDwn438QeE fg5N+1Lp/wAR9X8f/tCf8IfdNaavqt6/gzP/AAi+hahfWz6ePsGnaWNJ1Rm0 ZdW8UnTtU1TTPDv+CE3xh8f/ABT/AOCnX/BZ74p/Hj4dQfA34nGP4C2Hxa+H 8+s/2rpXgnxh4Dt/HnhDxb9k8Qkj7doX23w9eajpV+Sc6Td2OdU1cD+0m+0v +Da/43fDnXv+CWnwy+DK6zp3hz4ofsueIvi78Pfjn4A1SVdJ8SeA9fuvi749 8ZW2p+ItK1Bvt9jYaroPiO0vTqV+i6aup2niDSFkD+G9RZPh7/gnn4y8J/ti f8FEv+DijUf2fdc0vXNC+K/w5+H3w38B+KdGvoJ9C1/xFZfDf4k/Cs+KdK1Y s9he6FqPirSLzUdI8QWLtpWq6ZejVtHZtJIJAPov4T/t+/8ABV//AIKkat8U viX/AME0fCf7L3wB/Y8+H/jbW/h94D+MH7VFj4/8S+Ofjz4g8O4N5qfhzw34 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 nwt+zp8XP+C2fx/+CPwsf9k/9kj9hP8A4J+/suXfw+8L/wDCmrf44eLvHvxO 8caN8Hzpdp/wg58P+E/h9/ZunWN8fCv9l36af408M6UCSV1fkkUAfYHxP/4K l/DD41/8EsPiT+2z+yl4R+Pvxf0LxR4M8ceCtO8P/Cfwl5/xj+FPjE6FrOj6 vr3i/SbLXN3hiz+FmoNa+IPFPiDTNU1KPS9HFj4q0bUdR0a+0rVn/PP/AIIM f8FAX8G/8Ejr3Vfid8Bf2o/+Ee/ZL+CX7S/7Q3i747+JfBtofhx8ebXRviz8 YviT4t0r4N/EHW/FJPjbxxYD7ZpurjxE2lY8UWeoHV9Wxu1R/GP+CBFxNN/w RX/4KdW9zqWl6xNZ/Hf9tq0l1DQrYwaXeA/s1fDS7+16TY9LSw1H7Z/aGlWH 8P2wY4Zq9k/4J+f8qmvj7/sx7/gpB/6lH7T1AH1J8Ev+Dg34A/tK/F74HfDf 4E/sw/tffEvwr8XNW+H3hnxB8ZPDPw50q9+GXwc8c/Ee10q8s/CHxB8R2nil 9C/tDwbp+s2d98Rjp+rMnhhUvl0dPE+p6e8Te5f8EsPib+wnrKft96t+yl8L PG/wMsvAn7YHxZtf2mNY+KXii6vtJ8V/GHRgb7xx8RdHvdZ+I/jWw0TwUYw+ oABvC2laVGZGOj6cqsKh/wCDfnwXoPgz/gkB+xdZaLZ29uut+BPE/i7VJ1t7 eOW81nxb8RvGOs6rc3RA23BV7tbJJGYs2mWdio+6gH893wb1bxfov/BK/wD4 OWL/AMFPeQ63J+2b+0hYXUun8z/8IvrGvaNo/jc8D/jx/wCEHvPEP9reulUA ftBqn/BwZ8LvFmqeNdT/AGVP2Iv27f2zfg18NNZv9G8b/H/4GfBa4vfhktxo 6/atYHhK71q+0/UfEv8AZ9iRqB/tDT/DONMxq4b+xf8AiaH7J8Kf8FSvgX8e /wBhXxt+2x+yv4W+Mf7SOg+GPJ0LVfg58H/BY1X9ofRvGN3qmiaNqvha7+Ht 7rOnCz17wfY+IrbxfrDNrA0seErC98WaJqWr6UdOk1HX/wCCO+gfD3w7/wAE t/2DbD4aW+lweG7v9mP4T6/fnS47UQzeOPEvhiy8R/E67uvsmFOtX3xG1fxY 2sEZP9q/bu/Dfkd/wShstN8Nf8FZ/wDgvn4N+FRjtvgzbeNPhvrV/pel7f8A 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 /EHh+2urHwd4Vn8S/Ej4U/ZPh14Itb2Ox/4pXwZp9ra2GknT9J8Lj/j/AAdL Rctqf9cPxj+Lfw++A3wt8e/Gb4reJ7Dwd8Ovhp4X1fxd4y8TapN5dvpei6Nb fbLraqjfe3spX+z9K02yD6lq2rXVjpGlCXVL+ON/5/fBn/K0/wDFn/tGJp3/ AKsb4b15R/wXZ+JP7Rnjn9p/9mH9me7/AGKf2xf2lf2AvClp4f8A2g/2h9P/ AGX/AIP+M/Hw+PPjjR9f8SWXgj4JeK/EOj6I2g6N4U8PX/h3SfEPivQf7WbV dX/4SWwZdM0zVtO8LatQB+Z+oeLP2lf2lP8AgsN/wSF/4KA/H5NT8DeCP2uP jH8WIf2VfgNqkIgvvhh+zP8ACvSvDY+HvifVgf8AmavjNe/ELVfGGrZHI/sD V9H1b+x9S0vStL/VX/g5R8deGPhfP/wSj+JPjnVY9E8GeAP+Cinww8ceLtZl iupodI8LeG/sesa/qhs7JL7ULw6bp9pdX2NPTcoUKSTy35Yft8/8FOvHnxL/ AOChX/BJH4qP/wAEzv28PgzN+zf4z+MN14X+C/xB+COq+HPiN8bLfWdM+G9n /YPwR8KfYf8Aip73wX/wj1p/aun6d/yCRq+n4Hr+hn/BcTxZ4Y/aV+H/APwR F8U/GT4ZeLPhT4M+Mf7fnwHuviV8J/jJon9g+MvB3hbxgtjZ+LfC/wAQvD96 ANHv9P0W8vbHV7C/wuSVxlWre2z2snp62/yA+rH/AODh74NeF73wZ4y+Mv7G f7dPwH/ZW+JOt2Gj+Bf2uPij8F30z4W6l/bTbtA13VLWy1LUdR0/wr4isj/a Ojahp51bVNR0nGqpo6qNTGl/0CaNrGk+INI0vxDoep2msaHrdjZ6npGr6bdQ Xul6ppd/Al5Z6nY3doWs7ux1CznF5FdxuYpEkRoywKCvzt/4K+6F8P8AWP8A glp+3jpnxBttMk8MWn7LXxa1TTItRW2NvB4v8OeEL3WfhndWouyVGo6d480v wreaSCM/2pHZYY4Nc1/wRH1bxZrP/BJ79hK98Z/af7ZT4C+GNPtvtcs0858L aPc32keB8lvm/wCRHs/D+MErn7wI3VgB+qdFFFAHxD+0/wD8E6f2KP2z/E/h vxd+1B+z94L+MPiXwnotx4c8Nax4mm12G60fRrm8utWfS7U6Nrem/Kb67ub8 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 8MNTf4geMfgN+0N+z/4tHjv9nn9o34dQ28/jH4ZeKSbS6uRcaW97po1/wtqd /pWj3uq6F/aek6mdS0Wwl0nWtJU6kup/ptRQB/OT4h/4Ix/tc/tc+Kfh9pX/ AAVA/wCCkWvftU/s8fDHxRYeK7D4AfDn4GeCv2f9E+JOv6KSbHVPiZqvgzUM 31i6lrPU9OGl6rqqpdal/wAIn4s8JyaidRP9EGn6fY6PY2Ol6ZZwadpml21t Y6dYWkMFvZ2Vha262traWkFvhLWzsrYIkaKqKiBVXC4Fa1FAH5n6N/wTzOk/ 8FT/ABX/AMFLh8XDc/8ACT/sv237Nr/Bj/hBBAbJbXxR4b8Sf8JmPiEvizN4 T/wjwsB4fPgddq3hc6ydm0/phRRQB+Z37W//AAT0H7U37YX7Af7WB+Lp8Dt+ w34t+I/ilvAI8B/8JIfib/wsez8G2bWq+Kh4t8P/APCFf2X/AMInk3i+G/FJ 1P7YAF006erScP8A8FV/+CWXhv8A4Kk+HP2dfBHjH4uav8KvCXwY+NenfFDx TBoHhg63rvj7w99iOj6t4N0jxB/wlPh0+ANT1CwuboaX4uOn+KRpOobZf+EW 1QfIP1pooA/m88bf8EXf21v2i9K8Mfs8/tk/8FX/AIk/HL9iPwpqvh27u/g9 onwV8HfDj4m/FTw74QvLG68PeGPi18Y9E1tvEHiY6f8AZLX+09e1QeJjq+rW Fl4t/sjSvF66dq+k/wBC/g3wh4Z8AeEvC/gLwZoVh4a8H+CvDui+E/Cfh/So fI0rQfDvhzTbTR9G0jS7XO21sdN0+ytbGwj6LHbrjIwz9ZRQB8Yft2fs4fFn 9qz9njxJ8Gfgt+0747/Y+8f61r3hfVtO+Ofw3ttdv/FOg2Xh3X7TWNU0m0tf Dfjn4bam1p4ksLZ9M1MJ4o05FjueRfqVQ/SPw68Nax4O+H3gfwf4g8S6l441 7wn4P8LeG9Y8a6wlz/a/jHV9F0mz0nVfFOqpe3+qXsd/r97aXGqags2p6m+6 8YtqWoZMh76igAr8uPh7/wAE3f8AhAv+CrPx1/4KdH4x/wBqn40/s7aN8Af+ FJj4f/Yf+EcGkXfwfvB4pHxEHji/Os7/APhU4H9gDwLpe1tayNWI0snVP1Ho oA+QP28P2Wf+G2P2Sfjj+yv/AMJyfhqPjT4Q/wCEVPjg+Gz4wPhvGr6Tq4vF 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 rd+1/wDsralc+Bv2nvjp+zxc3fxR8MeFPGVpDY6Pc31vaeG7T4naP8PrERnw x4pj/wCEh1fxaPGJjy/ifWda1nezak+fzv8A+CTvxs/4KGfs5fsAfAjwD+zp /wAEMNN+LHw18Y+AbDxtf/GS2/bh/Z78HzfHi58e2v8AbF14+8Q+Hdd8J6pr 9k3iCxvP7PHh/wAQ6lqmp+FtKtLDwg4YaYoAB/Vx8Cfj98HP2mPhf4X+M/wF +Ivhz4pfDHxhB9p8P+LvDN6s9neJbMttfWl3bMsV/pGt6Xeb7HWNA1PTtM1r StRRtM1bS7GZWUSfHz44fDv9mr4P+Pvjv8WdT1DRPhp8MNCl8UeOdd0vw9rv iq+0bw7aXNsl9q7aB4Z07Vdfv7TTFuRf6r/Z+mynTtLS91KTZFYu9fg1/wAE Jf2bf2z/ANnT4x/8FBLr44/slyfsc/s8/Hj4meFvjT8DPgnb/Fv4Y/FPw18P fFGs3XjC0+IegeFbr4eagBZ2DWA8Jrk+GPDWkrpekaBpOkKy6awP9CnxC8Ce F/il4D8b/DPxvpVvrfgz4h+FPEPgfxZotyR5OreF/F2lXWieINMuB2TUdOvb uybrjfnPUUAc58FvjF8Pfj/8KPh78bvhH4ltvF/ww+KXhXSfG3gnxHbWt9Yj V9B1y0F7aXV3ZahaWGo6NfKMpq2lanp+nalpGope6TqumwanFJGnjXwY/bh/ Zj+Pl9+0Zb/DT4nWWqaf+yj42174efHjxPq+ka94T8E+CfFPheTW38U258b+ JtP0jwjrVj4fj0m71DWtb8PapqukaTpf9n6lquqJFqWnvJ/Nd/wT8/bW1v8A 4Jlf8E7f+Cpf7Lfxa1YXPxT/AOCUvxA+IOg/CQ6uPm8VeFvjbq2qt+z1ci3v GBvNP8R/FXU7nUWXkab4U8X6AG4GD80ftlfBPx9+wh/wbJfC7wBNfapoHxL/ AGu/jT8L/Hf7UniC4mu4Ncmv/jddav8AEnVrXxZd/wDH/wDb9O0Twl8Pfh/4 sBydUGjX+k5H9p4oA/dXWf8Ag40/4JM6P4xm8KP+0N4g1PRrLXz4Z1T4n6J8 H/ixqnwq0/Wuotn8cWXhJtOvLMMd39p6WupaT/Zv/E5OpnRv+Jkf02+Kf7Xn 7O/we/Zp1f8Aa+8XfEzRrj9nLR/DGj+NZfih4Qh1Px9oN34W8R6lpWk6Pruj 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 jY+HLLw74d/sjb8w0zw3p+4YBwAftT+0F/wXn/4Jofs5fFHxJ8IPFnxt1jxj 428CXU1r8Rrf4T/Djx58TtD+HU9nc/Yr218WeK/Cuh3/AIdtL7T74HTtW07T 9T1XVdI1a2k0nV9M0zVSI6/Rr9nL9pj4Ffta/CzQvjX+zl8S/DnxX+GfiTz4 tP8AEvhye6CRXtmQLvSNZ0rUbLTvEHhnxBp/mQHU/D/iDStL1bTTOgn09N6s f5JP+CMHxv8A+CgX7N/7Avwl0z9mn/gihafHfwj8SItf8ea9+0Vbftu/AXwB qfx41fWNf1kf8JP4i8Pa34T1PxDZDQLEr4O0rw/4i1QHStK0UBCpL7vvH/gi p+zp+2z8Ef2zP2/PiB8YP2MB+xJ+zH+0v/wh/wAUfAPwV0/4x/C/4reFfBHx Y0m6Fj4itfDf/Cvb7TTY2fiRdY8Ra8CPA3hfS9K0u10Hwhg/8I3pakA/pnr8 bfjz/wAF5f8AgmV+zt8XvEPwU8c/HXUdY8ZeB742HxJm+HPw78d/Erwz8Nrm 1nNne2vi/wASeDND1XTbO+0zUCNP1XTdMbVtU0jVVOkatp2m6o3lj7u/ba8f eKfhV+xp+1p8UfAkk8XjX4bfs1fHHx54Oe2x58Xinwf8MPEviLw+bYYHzjUr G1wRzwRX5V/8G4/wU+GPhH/gkv8AAjxbougaHqXij9oFPiP48+MfiW5sbW+1 Tx54ou/iP4y8NtbeLbu6Qy6z/YGhaVZ+HPsWol1T7HfsEEmo6kJAD53/AOCK vxW8KfGb/gqX/wAFwfiJ8OvG+n+Pvhr4s8ZfsseI/A3iTQtU/tXw7qegax4f +Kt7a6po93zmz1AZYYzkDPQV+g/7Tf8AwXF/4Jvfsn/EzXPgz8Q/jbf+Kfij 4UNz/wAJp4O+EngLxl8Vr3wObP5tTtvF2qeC9F1Pw/omoaZwNX8PX2rDxRpR XdqmkR5wPxi/4J1+D9A/Yy/aw/4OZLD9nnTrHRNN+DPhjwf8Q/hp4f0O2/4l XhzWf+Fb/tDfEfSfC+mWgwtpY+HdcvP7A0nTcbdJ0yyXSgMqCPvP/g2d+Dnw 78K/8EsvhV8bNJ06y1T4r/tH+LPiz4++MvxBuIlvvFfirX9F+LXjzwNpFnq3 iG8WTVL2y0HQ/DlrH/Z93fvp/wDat/4g1iICTxFqMmoAH7Afsr/tj/s1/tsf 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 zQLjxjqnx5u9XttI0qx/4l2n2ZXSdK05bHT/AJTpekWEZGbAUAYX/BvJ/wAF U9I/aq0v43fB343/ABy8efFH9qfxt+0Z8afix4YsvEfhbxmdLs/ghY6B8OLT w5a6Rr66BYfD/wAHaHpzWeqjSfh7p1/pjaWTfumlbtQVW/qYr+a3/g14jT/h iP8AaVk2Jv8A+Hgv7Q/T/sWPhVwPzx+fpX9KVABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAV/OJ 8TdDk/Yy/wCDh34S/HnUo5LD4Rf8FNf2c9Q/Z41nxBIf+JTZ/tIfCr/hG73w la6qQQLO98R+B/A/gfwh4Sz/AMhbVNY14Ef8S04/o7r5F/bI/Y++F/7bXwg/ 4VF8ULzxL4cOjeMvCPxH+H3xF8BX1tpXxG+FfxJ8C6uNW8K+Pvh9r99p2pWe jeKdLcXmniZtNv0bSdR1PTXXbqAdQD4y/wCCpv8AwS2uf28W+DXxo+Cnxj1X 9mr9s79mPWrrX/gN8cdJtDew29vePaXt74O8W2tmxv7zQNQvrS1KX2dSOjpd 69H/AGPquk+IdX0nUfiZvh9/wdJaxoz/AArv/jZ/wTk8Nw3EP9l3X7RGj6J4 0uPHMNsR9j/t/SvDv/CDf8IgdcIBv/7PPwz0vSifl/4lZJFf0k6Zb3dpp9ha Xt9c6pc21pa213qdxFbRXGoT28GLi7uba2RLRGvSN5Syi2qz7BgKAuvQB+Y3 /BOP/gnXpH/BOf8AZr8UfCzwp8QNV+KHxq+JXiTxR8UvjB8cfFtoINU+Inxh 8T2sdrceILm2aTxFeWWhacbK2j0rT9Rv9YlO6/1fVDf6xqmql/TP+CfPgf8A bv8Ah/8AAi60H/gol8Yvhf8AG/8AaAfx54h1C18a/CXSrXSPCcPw+u7bRl8O 6Ebaz+G/woH9tafe2+sHU2/4RdlP2uzH9raoVYr920UAfjN/wWO/4J7fGb/g oV8O/wBlnwl8F/E/w08M6j8Ef2rvh98c/Ftz8S9a8T6JYah4R8NaX4isr7S9 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 Maz+zN+xJ8WP2MP2iv2VbbV/EN58Erv9rGL4paF8Uvg1p3iTVbzWDoN3/wAK +xpuuaJpl/qt3fsDqeqtqWrG/wBW0nSfC2jv/wAIo32x+wb/AME0viz+zT8I f2rtd+Pfx3/4X/8Athftpz+JvEHxa8eu+raT8MPDetXug+JLHw54W+H2j3lk L3R/CmnXniO9bVr+y8NaX/aumjTNLj8IadpXhrSdLT9m6KAPy8/4I8/sXfFD /gn7+wN8Jv2WvjJrvgXxF8QPAuufEjVtY1X4a6nr2q+DpYPGXxG8SeL9KXSr zxL4V8Fa47iw1W2/tUX3hvTg2qG/Zd0ZDHgv+Cff7A/xg/ZT/bC/4Kh/tAfE PxJ8OdY8G/tr/GfwN8RvhXpng7VPE994j0HRvDB+Jn26z+INrrXhPw9puk35 /wCEy0tdLi8Nan4p09Ra35OqxttbUv2AooA/nx/4Jgf8E/v+ChH/AATy/aD+ NXw2f4g/sz+Nv+CenxN+NXxg+OOlxQDx3Y/tDaN4h8e6XZWfhzTLSybQW8HW Njp//CPeHbDxTp7eJNUDfZL3V9G1U7hpR/Q/9iXwB/wUD8Ea3+0dJ+3N8Z/h T8XtC8SfFi/1T9miy+GmlW2mXPgT4QfatX+xeGPG72vws+G63+viyudIG9n8 VHdaXhOsZZd33/RQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABX8sT/tHftDf8El/+Ct0X wm/aj+NfxR+LX/BPL/goLfKn7PnxD+MPjfxD42g/Zu+LI1UEfDk+IPFF5qDa J4V03UNfHh/VS2ojSx4V8SeA/F2s6qP+EK8Uiv6na+BP+Ck37B/w3/4KL/sl fEf9m/4grbabqOq2reIfhn43e2We8+G/xR0e2ux4U8Y2p2gmyQ3d3pninT1/ 5C/hPWde0dgf7QDAA+XP+Czv/BQbxR+xj8BNA+GX7P1lc+L/ANtn9rfXh8Gf 2WfAWkR299rkXiHxFc2ej6t8Rvsbgr9h8F/2tZ/2TJf/APErbxXrGgLrGNGT VW0/2X9luw03/gmz+xN4Atv29f2y5fE3jmGOHWPi38df2kPjTdXtjefEjxLa i7u/BfgrxB8Q9b3r4W8PC1/sPwj4f0wg6oLG81k6WNX1XUw34V/8G5vws8f/ ALbniXxD/wAFOv2yPiDL8Z/i9+z3a2H7EH7OVhqcTTW3w20D4a+A/DbeLPHr Nd8XvjfxlZeN/sD68WXVn1PWPH2rasHPiTTE0z0zSPhJ4J/4KUf8HDH7WPhX 9qrRLD4qfBH/AIJ6fBf4caR8Fvgd4zRtX8AS+MfiBpnhDW9Y8ZeIPBOof8SH xOBf6x4i/tRNR0vUtJ1QDwEmrLqC+GtKCgH9Cn7Pf7bX7Iv7WZ1eD9m39o74 SfGa+8PxC513R/AXjXRNd8R6LaG7NnBqOq+Ho7ttf0+xN3hI9Qv9MXTmbCiT OM+pS/HH4N23xet/2f5/ip4Ag+ON94S/4Tyx+Ekvi7QR8RbvwSbq6tD4qtfC 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 +zHd6P8AHnSvhz4V8X+I7vw34b+EnxH8JH46eFNL1Fde1HW/EAb/AIlup6od I0zw3f6OraXo/jUaYdPZ+f4f8ED+8SsS61vRLBL+S81XTbVNJtTf6nJPfWsJ 0+xANwbm93uDbWeBjzJMIVIIPetuv41fF37EPhz9vL/g41/bq+F/xh8QeL1/ Zo8J/A/9nX4jfF/4XeGfEmv+GNI+Mus6P8OPhVZ/DzwZ40vtEvdN1F/Cen65 q2reL9TsNO1JTJq3hzTxgMw1TS8wP7AvDXi3wt4000ax4Q8UaB4o0iRzENU8 Nazpmu2HnDGYBeafd39mZOeUV/T1BrQ1bV9K0LTr3Vtb1Ww0bTLCH7Rfarql /bWNhZW6jH2m6u7wpZWqdcsxCkkc84r+TL9qb9nP4e/8EVf+ChH/AATy+Pf7 Edprfwk+BP7Xvx00n9lT9p/9n608R+INW+GWvjxhdaRY+E/HulaPrus6gbHX fDw1bWPEBB1IqdT8OWH9jnTF1TxR/avyN+39+2T+xd+0f/wWI+MnwG/4KlfH nxf4A/YQ/Y28N+HtA+GnwH8OaX8Y77w38bPjhq+l+G9Y8Q+J/iF/wpTQfEWv /wDFOjVtW07/AImGo6V/xKtH0D+x9U0v+0vFOk6oEc67P8P8z+3fw54q8LeM 9MXWvCHiXQPFWkSv5cWqeGtZ03XNMllHUR3unXd9ZE5xwGLAnPORmxqPiDQt JivptV1nTNMh0qwn1XUpb+/trIafp1rvFxqV4Lp1FpYLn5719sfzZ3kZYfwQ j9sr/gl/+x1+35+xh8Vv+CM3xv8AFVp4M+MHxg8P/Bb9sz9mSPQP2jdL+GXi v4b+L9U0bSNI+I+k2fxp8K6bp9j4r8ONq2rf2Tp+m6oT/atloB0fStK0c+KB 4m+yv2uf2RtI/bp/4OPPGH7OHxD8T+OdJ+Bev/sPeB/Fvx08MeBtdufC998R /A3hDX9Hu/D3gTVtVsiuo2mhX3xGu/BHiHV/7OO9l0XH/EtkI1XTQOddn+H+ Z/Yfp3ijw1rNjpWpaT4h0TVdN1uLfomp6fq2nX1lq4K4J0q6tLpo74472JYZ zzk8UrDx14J1fxBqXhLSfGPhjUvFWjRiXWfDdhr2mXuuaOANv/E20izvXv7E Hji+RMnpxgn+OD/grv8AsIfD79lLUP8Agi7+xv8Asba740+BOgeN/wBt74ke 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 pWo+HvDXhjVdM0oj+xxpYP8AZbeIfHf4Sn4H/wDBt5+0z8PtL/bHsP26fBmj fB7xTJ8NPj5piW32e9+H174z0Y6P4Ns9VsfHPxIGtWXgy9+2+HtL1D/hJQdJ 0yzsNH/srTR4cXTD8J/8FVfDfivxv/wQo/4IQ+DvA+sS6B418V/EL/gnf4b8 IeIEl/f6R4n1j9lPxdpHh7VfX/iXX95a3/PHy+/IB/Z9B478F3fiKfwXB4u8 Lz+MLe1+1XXhVNe0qXxHb27Aqbq50Bb5tSSzGc7im3BxuyQR+Of/AAXW/bC/ aB/Yq/Zv/Z8+In7O3jSDwP4u8dftp/Bf4Q+JtRuvDHhjxWuo/D7xj4Z+JGoe INB+xeKdG1Wwsnvb/wAO6Rt1GwRNViFrtg1KEPIp+LP2xP8Ag36/Y6+Ff7E3 xO+KXwEHxP8ABn7aPwH+HXij48eF/wBrUfFv4i3Hxc8b/FjwFoF54w1fVvFl 3e+KjoAvviFf6VdBr/T9L0oeFdUvk1jRX0w/2ouqfD//AAUU/ai8Vftmf8EH /wDglJ+0b48uYdQ8eeOv23f2ftO8b6pBElvb6v4w+HFn+0J8NfFmuC0sQLKy /wCEh13wjd6l/Z9ju0sG+Kq2wKiAH9sz3EMFubi4ljhhSPzZZZJBDDEMZ5JO ABz1Pb1Nct4W8f8AgTxxHenwV4y8KeLf7Ml+zagPDHiPSdd/s644xb3n9jXd /wDY2wAMORwDgHFfyQf8F8P2w/hXqv7e/wCyd/wT7/an+PfjT9nz9g26+Gh+ PH7V+tfD+w8eX+ufFWe81bxlpPgb4Sara/D3QfEXjA6Ct94JtP7VGnaWdKH/ AAmJ1fWN2seG/DDaZ+Z37ZP7SH/BEv8AZk8O+Af2ov8Agip8dfE/wc/bO+C/ jPwdLp/gPw14X/a1g8HfHf4b3mu2Vn4t8BfEP/hdHhX/AIR++sRY58QaqdR8 TaV/auk2mu6PrC6prOo+Fzpmns/P8P8Agkc67P8AD/M/0RKK81+EPxAsfiz8 Kvhn8U9NtXsbH4k+APCHj2xs5H82a00/xjoFj4itYC3O4rFequTnO0gdAF9K rMsKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAK/nV/Y9/Z8+Jif8Frf+Cy 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 /ag+N+sftG/BD4o/sq+BD8U/Enww8Y+MCtr4h+HHxC8KC/0w2QNlZ+HfD+lX 2o6npav/AMI1YarpI1ZfEuqjwv8A1kUUAfyV/spX/wC2v+0//wAF8PBf7bXx i/Y3+PH7PH7Pmt/sY+L/AAP8G7j4j+Cdegm8N+BrHxRrA8P6V8WNXsrE6B4L +KnjLxTdeLfF/wDwr7UdT/tbSfCusaDzqej/ANl6rqfvHjH9ub9rn9lv4xft QfAb/gph+xH8dP20v2ZvGHxA1jxH+zD8ZP2b/wBmzwx8YfA138J7vA0n4bfF Dwdaf2VYWOuaZZLaI174jGo6zqXiu78QR51Dwj/wjOq1/S5ScMPb9Qf8f89K AP5af+CLX7Jvjaz/AOCgP7Z37engX9krxr+wB+x38ZPh14V+Gnwb/Zq8f6EP AHizxZrFpd+D9W1X4oXnwnsLxtP+Hun6efD2rtpWnhRpH/FxdQHhE6pGNX1S v6Tfi/4d8WeLfhT8TPCvgPXz4T8c+I/AHjDQfBnikSzw/wDCOeKtY8P39h4e 18m1O8HStZubXUCV+Yi2I2sNwr0qigD+Kn/glD8VtH/4Jk/CC8/Z9/aE/wCC RX7Z3ib9u/w98QvH13qnxf8AhR+zBbfFk/Gy51bxBd33h3VdK+OF3f6YbLQd Osrqz8Pm+07VNV8JaYtm3iuTVH1XVdVA+rv+CRXw5/bd0H/grf8A8FGfjR+1 9+zL42+CM/7UHws+HnxM8MXlrpGreKPhHo9rZ3ui2egfDAfGSw09/AGt/Efw V4S1bS9A8Vabp2pf2prGsaN4s1XSdKTRdOLj+qbYvp+p/wAadQB/Ph/wbnfB j4xfBD9lH9pnw38afhV8R/hHr/iD9vT48+MdB0P4meCfFPgbVtZ8I6z4Y+FN lpHifStI8U6fp97feH9Tu9Jvl0zxDp6nTNUNpehCDp+Rnfs1fAX4q2v/AAX8 /wCCpHxS8Y/CP4i2HwO+KX7NHwF8JeFPiZrngnxPpPwz8fajY/Dj4J6P4j0L wr45u9OTw74mv9OOkavYatp+najqGpaY1nfoQi6eQP6IKKAP5Gv2K/ix+0T/ AMEIYfjB+w98eP2MP2tP2k/2dI/i14y+IP7JX7QH7KHwuPxjg17wx4xubO6t fAXjjSf7e0z/AIRnxSby1a/ZdR1Mat/wlesa9jStS8IjSvFVdx/wSz0L9tf4 k/8ABaL9tL9sH9qL9lT4rfs4+Evjp+yz4Vi+HOneL/DOvDw9oPh2y8VfDWz8 FeBNX8ctZf8ACIXnxTXwp4e/4SHxf4S03VP7Y0fVL3XtL1XStKk0zUtK0v8A qtooAa/3T+H8xX8OP/BNH9uj4xfsU/tUf8FctY1b9k/9oH9oz9lPxb/wUP8A jfba14p/Zm8J23xM+IHwl+LFl498Xn/ioPh8L7TNRvPBHjPwrd6Tt8RLqg0z R9X8NjS0OpP4iUj+45/un8P5ivyV/wCCZH7AnxK/Yi8c/t9+J/iJ4s8EeK7L 9rT9sDx9+0P4Jt/B0uuzT+G/C3i/VdYvLXQvFZ1vRtK/4nkZ1Qs405tU00Kh A1NiVBAPhL9jH4WftI/8FAf+Cpcv/BVv48/s/fEL9lf4E/A/4JX3wH/ZG+Ff xl0tvDvxp8VTeIz4kbxH8RvG/hLO7wzZHT/Gvi5VsNQDnfrOgaVo+p6svhrV dU1T55/Zn8S/tEf8EE/jH+1X8BfiB+yD+0h+0j+wv8cPjn4o+Pv7PXxp/ZY8 BH4ra34C1LxfbaNpF34C+Ivhr+0NMGjgaLpHh7Tmv9S1TSXXVfDeoavoumeJ NJ8SBtK/rfpOGHt+oP8Aj/npQB/MP+zN8Of2nv8AgpX/AMFW/ht/wUw+Mf7O fxO/ZO/Za/ZN+GPinwF+zH8PvjppZ8L/ABj+J3i/xnpviXSNY8Z+IvBDn7f4 X05bDxbeaicsNJxo3hGPQ9U8UufEmoaZe8Rft0ftY/sxfEr9pj9nf/gqT+wv 8ef20/gP4g+JWta/+zf8av2dP2Y/B3xp+G/iX4Q3/wBitPDvw7+InhGy/svQ tF13TT8xXxC+peKG8V614h0lgfCOneFdX1H+mukKhuvagD+UD/gkt+x18dbb 9pH/AIKRftpfAn9nbxD/AME2vgh+0Z8JtO+Hf7JfwE+Kfhm30HVtN+IGn6FZ PpXxl8W/B1DqNh4X0DTfFdndeIdM8HHTP7GK+Pdf0bwl/auiae2qarHZf8FC /iLL8Ep/2Zf+Cwf/AASH/as/aa/aP8Iah4g0KbWvht+yN4M+OPwN+M1ydTvz 4f8AEHgbxBZDTfD2h6g1k9nYs3gvTNVGmfYRrGkar/bJOlaZ/WJTdi+n6n/G gD+NT4B/8E+v2q/gn/wQP/4KRfD/AMQ/BDxx4V8cftQeLfiD8Wvgj+x/4Xi1 74jeOPhj4I8SXXgOz8O+DBpGijUvEF94r1Gw8PE6v4fBGrDSbLTzrP8AZern VNK0vrP+Ck/7N37XnjP/AIIzf8EWvhx8Bfgj8Udf/aH+Efj39g7U9a8FW/w5 8UX2t/CvxB4O/Zo8R6Nean8V/D9loQ1D4f6F4L8cXek6d4t1HxFpmmaV4VbK 6wdKK7V/sBoq+fy63320tp/XcD+Wb9qL/gqH+2J+1F+zf47/AGKPgp/wS9/b Z8C/tsfHHwRrHwS+IV38Rvh3a6H+zx8HP+Ew0q88HeOfGll8bjff2B4k0JrC 61U/D/X9Q03wtpGqm6sNZ/tQNp+n6Xq/nP8AwUh/4Jy/FX4Ff8EfP+Cbn7Gn wS+H/j348eMvgN+17+z7rnxCj+EngbxT42uIri60z4xeJfix47XSfDOhajqe j+BR458XXf8AxMtR0wx6VpWs2P8Aavzb6/rd2L6fqf8AGnVAH83P/BVf9mv9 pv4Qft3/ALLH/BW79lL4J6r+09dfBr4cax8DP2kf2d/DUZm8ceK/hLfXPiS9 s/EHgXTFsdS1HxNrunDxv4hzp2m6bqerpq2j+EW/snU9FbxK+m8N8Vf+ClP7 Z/7aj/Dv4H/8Ewv2Cf2nP2f/AIg+JPGWgy/Fb9o39s39m7QPAXwp+DPge0vA 3iG1Fprd54l0LxRrt/hhqmmq39q/2TbagvhDR9W1jUI9V0j+n+kChenegDF0 ezudP0rTLG9vm1G7tLCxtbnUPsltZfb7i1gVbq7+w2Y+w2X251aT7FZKEiDb UJRcrt0UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFIWC9e9LX88P7Z P7LH7QX7RP7XHxK8Tftr/t2az+xj/wAE2vBnhfw9pXwN8D/Az9obTPgf4i+K vio2tpd+LvEHxl8Xa3ZacBY6bfreFtAZ9V0v+y7vQF0g6Y2n+JtU1YA/odDB unak3r6/of8ACv4vf2O/jl4K/ZP/AOC0n7N/7Jf7GX/BRb4ifts/sg/tMeAf iRY/EfwN4++NVt+0BYfCT4g+D/BfjDxhpNz4R8cWSjQLQahf+E9KwfDyZOlX euaTrGp6of7LGl9J8ZPAP7WP7df/AAXh/bx/YN8Pftk/tB/AL9mDT/g18D/i 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 Whks3A53RkHOMc8HovLTdv2Lv9f8j+lae08vx/4BHIu7/D/I/lb/AOCSmpfF Tw/8Zf8Ag4x174KeHNC8W/GDR/24/jRrXwv8JeLJbmx8O+K/HFnrvxtvPCfh fVbuyvdO+xWHiLXLS005tQGpg6St6WLBQc/JPjf9tj/gg3+2N8GNRv8A/gqp +zj4d/Zy/bv8P2msaV8b/h1oPwI+Mvw5+NMPxIs2uh9r8J+N/h9oLajrdl4h vPs2oaRYfETxRqY0o3gHjIHR2/tfUv7W1jRPuIqn2Uf/AFq5u+8J+FdY1Gx1 vVvDOgalrOmDzNM1XUdG0281TTQQQPsV7d2ZvrMnv5bqcg5wRxmWfxE/Cb/g nZ+2l+0r/wAG5fxD+El/oPxQfxr4U/aR1L9ov9if4V/Eya6g+Js/wI8H2ui2 fhzwb9jvQW0a+8RWF38T/EPw90D+zQNU1TV9COk/8SbxJpZX9UvBf/By/wDs J2n7PVhq/wAVJPip4U/a80Pw5b6D4y/Y+Hwf+I//AAs6f40Wdq1pe+DfD13/ AMIt/wAId9h1PXrS5bStR1HxJpZ0vSrqwGs6XpmrMNJT+knYvp+p/wAa5x/C PhaXW08Ty+GtAk8SxxeVF4hk0bTDrcUJxi2XVWtDfrH6IJAADjGeSAfhz/wb 7/sqfHL9n39k/wCKXxU/aT8KXngP40/tj/tF/EH9pvxL4A1WC6sdc8D6L4xt tGtPD2h+INNvwL6w1y/NjqviI6fqLHVdJ0rxFp2kazHpmtadqOmJ7x/wXKb9 p5f+CYH7T/8AwyL/AMJb/wALbOgaDHdf8K/iup/Hh+G58VaMPid/wiYsP9P+ 3f8ACDDXv7TNjnVxon9uDRP+Jx/Zxr9c6KAP4nf2P/jz/wAG9/wb/Zt+GU/7 PH7NWl/tT/txan8OdFtdK+C2sfs++O/jH+0b4x+PP9g239r6Vear418J+JPB /gof8JUbo6r4h8OatpnhXS9LF8PB66kBpulSeb/8Ezv2SviB+2X/AMG93/BQ j9irStPt9H/aG8OftX/EmS28EX81rpOq6X8Sfht/wpL4laR4Nu1wNP0f/hJN b8Jav8PjqOTpam7vtuqFdOcr/cJY+FPDGj6jfaxpXhvQ9N1bUx/xNNU0/R9M sr/U8DkXt7aWaXt2R1HmM2TznNdGsaJ9xFU+yj/61ac/ZfjcjkXd/h/kfy// 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 /Zg+MPxC0/4eftA+GPEPwf8AB3w++I/wOg1cEj4t+G9W8M3upZ8K6aPtuo6p YahqZ0r/AEKx8JDSTq/iTTPFWl+m/tGeH/8AgrZ+1l+2h8Qvgf8ABr4qX3/B Pj9if4T+EvD95aftEWHw58B/FD4kftE+MdbtLO8vdM8Jf8JLfsvgvRPDl813 p2V/szU1XRzq2rHU08SaXpOlgH7u0V/LN8Cv2iv25P2Hf+Ctn7P/APwT9/aA /bY0X9vP4HftWeCPiBqHhvxHrng3wb4T+Kvwa8ceA/C3iTxILXxEPDF/qGo4 1H/hHrOwx4j1XUtL1XStY/tbSdJ0rWNNYap/UzQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQA UUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABR RRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFfzTfsH/wDKxX/wWc/7 JV+yt/6q/wCFdf0s15T4f+C/wh8K/ETxl8XfDPwr+G/h34sfEa10nTviD8Ud D8D+GtJ+IPj2w0a1trHSbTxn41sbCHxH4ostLsrGystIstd1LUo9NjtLMRIq qgAB/P7/AMFIP+U+P/BEL/sD/tQf+oFrFfkn8R/2Pf8Agnn4G/4Leftv/D3/ AIK4+EotI+Hn7VF9o/x4/ZF+OHjL4l/Eb4SfDGa61gXl58QvDF7438MeKvDP h+yvBf6t/YDah4y1IaZpWqeAjpC6ppZ8SaUPFH9t/iT4L/CLxj468FfFXxd8 K/hx4q+KPw0i1iP4c/EfxD4G8M6349+H39t2xstX/wCEJ8W31jL4h8LDU7Qm z1ZfD2pad/aKfJKAhIrG+N37OnwG/aT8LJ4J+P8A8GPhp8aPCttcm+s9C+Jn gvQPGFhp2o4IGp6Sut2N+dG1DKj/AImOnGLUgpxvwBkA/kw0D9nH/gg34L/4 KMfsi/s7fsN/srN+1f8AG268Z2PxQ8R/FH4Nfta/GTxX8Pv2ZNM+G+v6R4l0 bx94s1ez8ceNPB/ib+z7u0utRfwcdTAV7PQ9H1cnVvGulaZqv3F+z1Gh/wCD or9u2QxoHT/gn18No4nxz/yFP2euPy4OPcelfuh8B/2Tf2Zf2XdP1LTv2dP2 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 C/gnrPxY0X48av8AB/4X6l8cfCmhz+FPDXxm1HwF4Xvfip4b8LXg1f7R4f0D 4h3ejN4u0fQ3PiHxDnTNP1SPTGXW9bVox/aupbwD16iiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoor8bJ/8A gqd4z8P/APBRfwZ/wTf+In7Kl58OviF8RdH1bxp8Pvijr/xg0o/Cv4heB9F0 zWNa1XVPA91Z+Bzr2s64LHw94gVfCGoaVperLqejXo1ZtK0gLqwAP2Tor4a/ bY/aw8Zfsp6N8IdQ8FfAvUf2hde+Mvxc0D4KeGPh74X8eaV4Q8b3vjHxPpur 6xplzpVrrmiPoN5oWm6J4a8Q694t1zUPEmkR+FtI0k6rIkmjjVNU0j698MXn iTUPD2lXni/QtN8N+I57SKXWNB0fXrjxLp+lXJVi1raa9daJ4cfUQnK/bW0n TcsOEIVSQDqKKKKACiiigAoor42/aV/aus/gZ45/Z1+CXhzw/p/jD4//ALWH jPxl4N+Dfg3W9fufC3hwW3w48Caz8SfiH4x8W+IrLQ/Emo2HhXwd4W0gOy6Z 4b1bVdU1nWNB0dbCwj1HUdW0sA+yaK+Of2TvjR+0f8VYfix4e/aY/Zom/Z98 a/Cv4i3HgzTdV0Pxtb/EH4W/GXw9Jp1prGkfEX4Y+IbjQvDPiE6Df2V4keq2 HiTwzpWpaNqQOmTFtXj1TS9L9y+MXiL4keEPhR8RfFHwh+H8HxZ+KOg+DfEG q/D74Y3fijTfBVt478YWWnXdz4f8LXHi7WlGm+GV8QaibawbVNTH9n6YH8yQ oqgkA9UorxbTvihP4a+EHgb4j/HvTdL+DPiHWNF+HNv458JXPiK18V2Hgr4j ePrvw34dHw7s/FmkWQsPFEyeOtftPBmjahpdkkfifVJbF9LTGoQqfjz9ov8A br8W/Ar9uf8AYi/ZB/4Uomq+Fv2x9T+LdjYfGS58eW9sdAu/g98OT481jS7X wRZ6NqGo3v8AaD3mg2CahqGr6Sihr8ppeprtcAH6WUUV+ZPxY/bZ+Lmq/FD9 pv4H/sa/BHwZ8f8A4r/sg+Dvht4n+MGieOvifefCyHWPEPxV0TWfGHhH4TfD y70/wN41sNZ8cX/gnQDqWp6p4j1Lwt4Y0XU9a8J6U76m2paw/hgA/TaivJPg n488RfE/4R/Dj4h+L/ht4n+Dvijxr4N8P+IvEHwu8bT2kvivwFrOtadb3l/4 W8QNYE2LajpN2zWBYJFIcKJLDTnMmnR/HX/BUn9uTxb/AME7f2R/Hf7U3h34 Kp8abTwNd+GNP13TLnx1b+BbHQk8ZeMvDXgXw/qd3dHQvEmoayD4g8V6WDp2 naWCyJeGTVtOG12AP0gor8zv25v28vF/7HnjL9irw9Y/BRfHvhr9rf8Aar+B /wCy9feOrvx3aeGrf4eaz8XfEDWYvF8Promqah4pvLLQtK1/UtpPhnSsiwVt VBLxj9MaACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAr8g/+CxP7DOq/tcfs6WHxG+EGs/8ACBftgfsk60fj 7+yx8T7Sa3sr7R/HHhBrXWdW8F3V6wCnRPiHp+j21gYr4/2VF4osfCerawr6 Lpup6Zqf6+V4z8dNN+JWsfCbx7oPwi0rwXrHjzxB4X8QaHoFt8RPFmueD/C1 vqGraRfWNpearrHhvwP8RdW+x2N7dW7NZWPhqYsqyYcZBIB+WH/BKj4u+L/+ CkHgT4cf8FLPjF4d03wyr+ANS+E/wI+Gum6kdW0rwdqWlX3/AAjn7R/xZLSM xs/FHxE+I/hW78HeEY8NqPhP4T+DdPiGpjVfiP45ibJ/ZV+KfxZ/4Kk+H/2v Pi7oX7RXxX/Z68CfDv8AaR+KP7Of7MukfBubwZYf2Np/wq0vw3aH4y/EL+2/ CviS/wDiF4p8Z+KdWvdSPgDxE3/CA6T4UstB0nR9HOr6jq3ivUvYv+CN/wCx /wDtG/sD/sU+A/2S/wBoH/hS2sah8M9V+IF1oHjP4QeO/Gviqz8TW3jnx94j 8dEato/jL4VfDd9EvNNbxJcaeXsNQ1aPUhbrIy6cuAfNP2cv2OP2tf8Agnz8 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 ED+B9H1r4eyeE70ap4j0j9oez1XSH+COmfD69vf+Ea1C/wBb8QfGI+HPBuih B4X1PxP/AG02jk6Y2qOsYB6H8GNb+JHxV/bQ/aZ8Y6b8VPGk37O/wYtvAHwN 8P8AwwePwqfBGufHe10I+MfjJ4yttW/4RdvF95p/hrQfF/wy8G6Xp8XiZtHX x9pHxLTU4zq2mpFpf6DV+U2v/CX9qz9kv/gmzpvgr9mTxx8D5/2pfBnh3TvH HxL+Ln7TN9r8Pww1/wAc+I/FD/Eb9pr4t+Kr3RbM3y33iHXdY8deLNOF+E07 S/tgSUmPTlV/uT9m3x345+Kn7PfwN+JPxP8ACf8Awr/4kfED4Q/Dfxr498Dx Q31vB4O8Y+JvBuka54j8Lra6wDqdmPD+t3l5pv2TUG/tOE2apqQEgdaAPdaK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAYo+UY69Mn0yfftk9+axNZ1rR/DumXesa9qum6JpNhCJbzVNZv7XTNMtEAA 33V5eyJaWyEkcs4AJ4zxnd6A5PGPbj8v04r+ZT/g4p+LPir4ieHv2Vv+CZ/w jvwvxL/bQ+MfhaLxLBb/AL5tO+H/AIb8T6Pa6SdYsyqldF1HxteWfiFr0gKu mfDjX15xmvU4eySWfZxhMs+sLCrEv/bcdy3jgcHCLni8ZJJ2SpwhKTb0bt1S vdNe0emvX8VdP1v8/M/pJ0TXtF8UaVa654c1jTPEGj3ZnFrq2i39tqmmXv2a 4azultby0L2N2EvLa4s2aJzh42AIYMKsapq+maJp13qutanY6Rpen2011fal qd1b2NjZ21txc3N3d3bJZ2tqqhSzyMqqrZOMEj+YP/g3j+Jvir4F+NP2xv8A glb8W9UkuPHH7LnxQ8TeLPh19rBgbWfh7feIV8OeK7zSLUkbdAGuHwp4y0zv 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 fjMDzab4SpKF7La/Lzf9vLtd5W/z/L9Xb1T7D6KKK5RBRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAE TMFjJ7Yzt7jGSeepzg9q/hw0H4S/tK/8Flf+CsH7Vf7UP7Nf7QY/Z48Ofsk3 +jfC34OfFp/C9x4wUaPZ/wDCYeENMtvCdo2oaYCnjAWnxD+ILX4JOlJ4vscB jqOlV/cf3OMj5evoAOfr0xnjn8K4HU/iL8OND8S6d4L1fx54M0jxfrIB0rwp f+JdBsPEer4H/LjoFzeR6lfBjyTZWL89SBX0PDHEVfIHmtXAYBYvMcZgPqEM bbnjgqbnGWMbwjhJYl1YJQinaMU3pN+6awdrqz6O+t1fbpbzvpe3RbfxGfHz 4G/tU/8ABGv/AIKMfsj/ALen7RH7RUn7TWk/Gjxvc/D342/E228JXXhy9h8L 2eg6P4O1bTfFVot9qX9t3o+HV2df8JcgnVfAR7acCfsf9uPw/wDGP/gmD/wV gg/4Kw+BfhP4o+OH7KHx58BQeGfj1/wru3/tbVvBMFz4Y8N6Nqt2CJJLGysN R/4Qfwj8QtI1/VH0zwzquptrvhGXVtKZtM1Qf1SeIvif8L/CmpRaL4t+IPgb w3rE0MNxFo/iHxRoOlalNBcMRb3SWWoX8V4baRrd9sgTyzs+ZsKoq5r3xE+H XhjStO1bxT428G+HtF1hgujapr/iLRNL0vVz9m+0/wDEqu7+9isr1fsZ34sn cMmWXKMDX0n+vePxNXL6+PyZYzmyvGcP5goKWDhmeWzXNhKcIYTCKGFlg4L3 ZpSunsotxH7RdL6a30v0679fv+8/gM/4Ka/tDf8ABPD/AIKR63rN5+wj+xt+ 0j8R/wBu74zeI/CGqa78UJbXx3my07SNM0jSbvSrX4faL8RPGnh+9vb3QtJt PDmqf2d4G0vS9LQDWJNXaTc5+mv+C1uhSfs9fCD/AIN99C+OvhOQj4IfDu30 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 8E+ILqKx0Dxh4Z12+m0i21+K00bXtL1S9m0G8uFtLTXVtLG7kkfRZJX2rqCK bBpCyqxYqDX074kfDvUvE194K0zx54P1Pxjpa79V8KWPifQ77xLpqgZBvfD9 rfNqdnjnJksEzjJ5INSqNbX9xPRXl7r0W95e7otmm9+gHeUVzVl4n8N3+sal 4csde0e717RIbS61jQrbVLSbWtItr0faLK41PTA/9oWK34+ZDeJGsi7WRm3M ak0TxBofiaza/wDD+r6VrtjHdz2Mt5o9/aalZR39nc/Zry1N1aFwt3ZspRkY qynG4DKtQ6dRauLS0d3Fpe98O7+1uu61WgHQ0UUUgCiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igBj5wTg5UEDPQ54/wA8/wCFfxpfstfs4a98a/2p/wDgo3qo/wCCcf7Nn7Xn haD/AIKa/tDaB4j+LHxj+J+l+FvFXgSwPjGyu9X0Dw94evfCniU63Y6bY3R8 Q5/tPSv7U1TV9Q0o4UEj+y3IxgEYyARgn8Ae+SDz1/r8pfB34bfst/s93Pxh 1X4UT+EfB0/xq+Pfijx58Wb1/iNda1Dr/wC0B4vNkPEdvcHxP4q1YaN4m1EW tnjwVoI0vTtMCMmlaJpyMQ3v8P51LKKOaqjhnWr4ulhaat9aUU/axlJuWDxW FxSvGLjbVStyyVnIr7Nut9PPy2t12/zP5pvGf7PXi74zf8Fdv+Cotj4I/Yp/ Zb/a2tvBkX7GFrNZ/tGeNrnwbB8OLe9/Z0s7OzHgj7F4U8Si9/4SEaSBqxU6 UNL/AOEb0IjORj6A+Nf7MPwr8X/8FAv+CQH7PPxu/Z2+D/h3wMP2cP2p5PE/ wB8O48S/CXwp4gtPC6+JLrS/D91e2OmfbbDTfFRGoaTf/wBmaY39pjIySK/T X9oD/gmL/wAE1PjR8aPHfxs+O/w6tX+MPxB0vTtf8ba+f2hfjN8O7nWvD3gP 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 fb57+Z/PH+18Nc/Ze/bN/wCCh9t+yzo8fw6uvhZ/wRi0e1+HOn+CrU2I8B6P ZfFe2tNU1Tw/aWYH2G+8O6Hdar4g0q/wTpLWf9q5PU8/+0/+yf8AsV/s+/8A BGr4Qftifs82eh+DP2nfC/hb9nj4mfCP9pHwnrl1/wALa8a/HDxfr/hD/hLr W71n+0G1DxPf+Ihq/jT+1vBupjUdL8LfZNRZdK05fDbCH+nlv2ZPgd/wvPxb +0i3gCzuvjH45+F1v8FfF3inUdY8Q3tnrnwvtdV/tdPDF34SvNYl8HPZnUNz S6h/wjg1e+hYabLqf9k/uT8k+Bv+CPP/AATj+HPxQ0f4ueFP2Z9A0/xV4b8S TeMfDGm3niv4ia38PvCvihrtr4674V+FGteLdT+GOh30d4tpeaW1h4WjOkyW VgdGTTfsCIJwvGeDhDB+1qZhh5YV4CpjFTUJf248HgaNKWBx0p4yF8I5xnLm l9YvHFYpvDqaSkc8bLfRa6eb1dr+S7/I/Ab4n+Pf2ifgJ/wVZ/bP/wCCg3hG z1TVNG/Zr8CfsN2X7Xnwb0aG6nm8RfAj41fAm1HxM17SLMH/AE3W/hRrnhHw 94v0jTumLK/1XWNW0vR9N1T+1f1//wCCB3iDS/FX7CmseJ9Euxf6H4k/aa/a Y1/Rb0w3UP2vSdW+KWr31jckXnzc2N1ak44+X3r9MdM/Zj+BWj/Er46fFyy8 B2h8dftLaF4N8NfHHVdU1TXtb03x9oPgHw/eeE/CWk3vhTXdR1HwjYWWn6Dq t7p8i6DpGmHVUunOs/2k+CF/Zs/Zf+B37IXwvsfg1+z14Ij+Hnw007WtZ12x 8Np4h8VeI1h1fxHd/btXuhqnjTXPEeuk399tP2ZtSeNGHyKC5FcedcU5ZmeT f2dRy1YXFpZHH28eW0sJl+DlCUZK90/rk8VLDSS1w0lCbTgk056bWu9r6paP R27aej03PoaiiivhzIKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIRxuyecAevbkdeMceuMd6 /hP+Onw3u/jL8AP2oPg/Z+IbrwrefFP/AIOhPGPw6tPE9nF9ouPDlx47tdW8 N2mvWg6E6d/a32/A/wCfOv7sevJKkd+OT26Yzn/63vXwKf2Hf2FE1++8HDwT 4fTxTqn7VsP7fd94XPxU8djxDP8AtMWlwLv/AIXC2lHxydUFiGwx8HiMfCzg L/wiQ5B+j4VzuGT1cRVlh8VUd8FUjaCnZYStGrKUk38LS3Vk5aPR3etOoqbb avdW3vulp0t2016an4F/snfGPxJ+1n/wUy+Cv7O/7YHgy2v/AI6/AT9jT9pf 9lz9q3wl4g043vhz4h3Frr/hm0tfGNpyNP1jwr8V/BGr2niAu3y6j9t1B9LX +xtQ03P0D+xD+wz+yFH/AMFa/wDgqT4ah/Z6+Fy+H/2ddQ/YW8UfAvSf+EYs zp/wr1/Wfg5eeMNW1TwRa/L/AGNe6l4ptLTXdTIGTq1qmVIzj9uZv2b/ANlK 1/az079p6bwp4T079rfUfhxc/D6z8Uw+KtV0rxHr/gC0Ym6guvBVn4hXQNfG noVsW8R6h4a1DWNO02zsdLXVU0zT9Ohh3vBXwc/Z1+Gvx++NXxU8G2GiaL+0 J+0fp/gC5+L9wfGuqXuu+NNP+Fmgv4P8D3v/AAhesa/e6Zo9n4f0O6Omvf8A hvw5pK6izrJrL6jqeGP0GO4spVoYyGW4XMcrp4zh3CYB4Sk3HCRx39sRx+Mr RSm7YOUXicPTknKceaOHbUJMPaa7bW09Oj935Pa+vWx/Jd+wV+yr49+Meg/H jxZoX/BOj9iz9p7Rf+Gwv2gNLl+Kfx4+Itz4c8fQ/Y/GR+16F/ZR8C+JP+JH p32ojScaqB/pl/kdK/Z39l63tNM/4Ldf8FFLCySO0sLT9mr9k+1tbNMRW9nb 2mhm0tbW1ycEDngdhhecCu28Rf8ABHz/AIJJr4v8QT678LINJ8XeKfEd/wCI 9esV/al/aD8NXF7r3iS8Or3l2PDlj8bdOsbR9RvLrfjT9JjRgwC45I9h+L// AASL/wCCffxv8dT/ABU+KPwS1rWfHUnhnwp4QuvEWn/Gz49+Dri48M+B9Es/ DfhXTbi08FfFHw9p93/Z2iWtvYfbGsH1HU0VZNZm1DUMynozbibLMxr451ZZ jhqGa5dLL4qGXJzjfGZfjE4xq51KFRP6nZSpPC25or2TTbTc4vutEtvv2s9P n112PnT4gTIv/BwH8B/3g2n/AIJvfEDkygDP/C7LoZwCQecHHccZxxVH/goV d39v/wAFXv8AgivcaRDHdajbD/gofLY2ZlAhvL//AIZ98IC0t255P2sKSccY 6DkV67qX/BLz/glv+0JaeBtP/wCEA034hH4CeDR8KvCU3hL9pb42XOqeCvB9 3rut+Lz4Z1fVvBfxjGo3xOu6/rl6t74wvtS1YiRdMXUv7J0/T4Yeq+GX7Lv/ AATE+EutfAfWfh9qHw3sNf8A2bNe+J+ufBS6v/2kvGHiu+8H698a9D0rw38T LpT4m+KfiBvEo8SaHpWk2BsfEX9r6bpC2Y/sWLS3LMPNw+ZZbh8Tl2JVHMcV Vy/I8fk1TBzwEfZT+u4TMMPhMXJxx0pp82NpylB0ko8srVKmjM9GvWytq2vh 8kuj2d31SP5/fgH8Gf2evjJ/wSx8c/th/HX9lDV/22f2pfih8UvjvN+1x4xi +JfhfwR8avgS3hrX/Hl2fE+k+IfiDehPBI+HXhTw74I1DSPB3h3Tix/4SSxI 0fUtGX+y2PjBOP2xP2jv+CUOs/C39nTwh+0Zpniz9gjxtqHhz4Qftd/EY3EF 3o/hzXbjR7TXvG/xAs9D1T/hJfG+nWOlf2gdQGmY1XVsvwTmv32+I/8AwSj/ AOCZHx++Lfjvx/4v+B/hDXfiRqOq6fq/xT0jwn8SPHvhTStW8Q3oa+s9b+If w9+H/jrw/wCHb7XNQAu746p4i8O/2jrEjXupaq+plgwrfHf9hf8A4JV/HG2+ EOqfF3wx8KbbR/ht4JvPAHwZ/wCEU+N/ir4O+HdB8EWmqsl3oPhay+GHxH8F aFd2NjrImsGXydQELb9MZiCYk92lxbljxkK0Y5/KcnjuS9KUoZbDH5fOEMDg 6cM3p89KFRpp4V4CUsJhkuZVLs1VSPZvbTS97q+/fa2ut9LH47/8FDP2UNbs v+CfP7PnwI1f9nz4IfsU+JfjX/wU7+BHhe60D9nHXrjxh4Vs4PGPhnxF4P0n 4i3d0th4ZN74rwPm08qoA0fTgNV3E1x/wG/aq+PfxF/4KDfCbwH8VdDvU/ba /Yt/Ym/bF+DvxQ0qe0up4PHnj7wfb6JrHwz+IukXRsD/AGzYfFfQh4f8QEqF Op6re6gV0oaTqOlGv3F+Hf7Dv/BMbwr4G0HwT4D07wheeCPC37QHw3+OmkQT ftH/ABH8Y/2d8f8AwhFdWfw01RNX1r4ratqIvkjS8/szwW16fC+tG3vP7S8M aiVkx9MX37Nf7Ktt+1fp37Ud/wCFPCemftWf8K1v/BNp4xPivVNK8Q6p8N7S U/bDd+C7TX7HQNdGnoY7I+L9S8Majq2n6Xa2WlDWF0vT9Oih5YcWZZRwmIwO Ly3HY1S/tyeBqvBuFWnjsfRo04c0Z4vGVFg7Kbxani6kklhZtymmk/aLez02 Vlr719He3Xp8lY/nr/ZI/ZQ/4Jt/Ez/gln8LP2xf2s/FsfhX4o+KvFsPxM+L H7Zq+ONS0j456J8am+Mt1ZraWvxD2apqmibdcW18HHQRpgRdJk/tfZY63/xV MXJ/Gb4HeLvjr/wWK/bps/Bf7I37OH7Yy+H/AIQ/ssX81n+0n4yufB9j4Ugv PhfpAtdc8Om08JeJPt194h+yY1Y7dKJFjp5r9gdN/wCCc/8AwSP8ZfG9fi3o Pw1+DHiL4lz+ND4+Xw7ofxV1a98D3nj7JA8Un4JaT45b4Y3uuAAL5h8DsfM/ eMn9ojfXafF3/gmT/wAE5P2tvi344+O/xE+HEHj/AOJ+oHRvC/jvxT4V+Pnx j8KvDP4P0q00XS9J1fS/hl8VvDehaNf6Xo1paWMloNM07U2ix/aYkZwa0p8U YTC5hjsRUqZ/JY3L8ZBRxeX3hlv17G4LExwuCjHH4N8ieF5HOOMwjblDlwsV zk867O2+tuiV1891fTU+pf2Ufh7L8Kv2cPhz4DuvhF8OPgNd6Ho2qyX/AMJP hHqf9tfDzwVq2s67rWt6tZ+FNY+w6Q15ZX9/ql1qUl2NL04nUr2+Ji55/lr/ AOCGX7M2q+N/gh+y38S9b/4Jv/s0+PvBNt8QPGOsy/tj+IvifpUXxj0648H/ ABP8YDSdes/h7/wiTaib/wAG67pNp4f0jHibJ0vR9P1bk8H+p39nj4a/s+/A L4HaN4D/AGfpNN074JeEv+Emv9Jlj+ImvfELS7X7Zqura34kuLvx14z8V+KN SvIk1q71K+nkv/Erx6YCYUGn6dZLHHh/speBP2UfgJ8L/D/7P/7K+peB9O+H fhCXX9Q0HwX4b+JNz4+vNM/4SLXb/wASa7cNqut+KPE/iK6/tHXtZu9RZ9Q1 OQ5vMghMLXzeC4gqZfguJMPh8PjHWzTHYGTqyWNwipwprGyqSk8LjbqvbFRd qlTFwVp877rn62erdtfTRaer+Z/HX8V9Dv8AxV+zZ4i8M6d4P8N/Ee+8R/8A B0V440Gw+HvjO/8A7L8HeO7nWfDN7Z2ng3xXqpsNTFl4W8Rfav7A1fUP7M1U f2VeX3ByMfqV8Sf2ZvFXwR/YD/4KReI/GX7CP7Jn7JN/qn7KPjHRtH8Sfs4+ N7jxfq/jC2+xX95q2heIxeeEvDP2Ky042ekX+lLjUhqjHnBXbX6l+Ov+Ca3/ AATu+I3h3xH+z54u+GGl6np3i7476/8Atk674Ai+MvxQ0jxRd/GjxJp154b1 n4tW50b4jad4wsLHUbK8utLj07TNS03wHpcrf8SnR9N1Vdy8H4d/4J1/8Etf gKPin4EtvD2geDX+M3wz1f4TfEvwv40/ae+MeqX3iD4ceL7rSLu90IaV42+M mqahoY1O70vSmi17w8dJ1jdgaZq0Y1B1b6WrxbgcRSw1GnTzBSoZpLMlBYBy lUhLGYSqrNZxCndxptXqYHFxctI1IpqSr2kWtnolrZaWsvN2v2a323v6l8EL iFv+CVHwlAmi8z/hgLwPn950P/DPulZzk5x057duuD/MbqP7OP7PHwh/4IK/ AL9uv4beE9D+GX7bXgq++G/in4Y/GPwhdXWh/EbxH8QL39oseG7rSrv7Fef8 VqNR8D3fiEnT9S07VT/Zekf2ttxpoI/ou+GX/BKz/gmX+z94j8J/ETwD8OD4 U1W5t9X8EeDdQ1L9pD48a1oWqjx74W1fwddeH9J0jxT8YNT8P65f+IPCmsat YaZZjTdR1LeE1bR2XV9NsNSi5/wR/wAErP8Agkz+zT8QvB/ibSPg98O/Cvjj wRIPGPgmw+J/xo+InjODw+bO7vLy28U6V4K+LHxJ8SaBZf2Ze2l3f6Xrq6Rn TNXsjqyTLq2necnBl2d5ZlksTChXz2+JzLB5lyxyzCwWLhhI4tYrLsalmMms JJ4qCnN+0jLlfNhIvllBc8eiav3s9e/9bLTbQxv+C5R1bV/+CQf7Uc97p5tt Yfwf8KNR1KwiHnCzubT4wfDbUNYt+MBvsIt7rJIxujHPr4X+2treleIv2qv+ CDseg6pY6qdX+JnjnxRpX2C8t7n+09As/gh4cvL3VLMWgxdWAsru0xfKxTbe BhgNgftf8RIvg74/8JyfDD4m3HgPxF4P+MOi6j4dh8IeKL/QbrS/iRour2i2 15pWm6Xe3efEdtLZX1qWGnLKdl3ZurBpFI+Iv2cv+CbP/BOP9lH4q6x8T/gb 8LPDPhr4p/DvQ7iwuNU1z4q+PPH1/wDCfw74j027urq20rSfH/jnxNp3w9sN Q0S81Mi9sNP0mWTR73U0W+Ol6hqaN5mTZtg8DgnHE4fGvE4ernlbB06dJSwd VZ3l0cttKbxUJYb6lUSlGooYhyUYU7Jq0s07a2v0XTZp/lo/W5/KPonxL+LP 7H/wf/4KYfEfWr3U/Ef7I/7cPj3/AIKLfsxeKLK0tLmf/hUH7T2kaF49X4O+ KOQT/YfxV0/Vj8P9WxjBs9O1bWdYA8O6ZpR/TD9lX4d+B/i3+2t/wTp+G/xJ 8M6R418CeMP+De34N6X4o8J69arf6Lr1gfFPhrNrqlo+UvrLP975ckdua/cK 4/ZI/YKv/wBn3xx8BL7wr4B1L9n39pv4ia/428SeGtQ+JevXumfEb4leMvEN l4k1XU/D3im98bNr1rrd/wCJ9KtNR0yy8Fazpv8AZOq2WdFi05vlrt/CH7LH 7Jfwk+Lnwc8Z+GPC+i+Fvi38OP2f7H9mD4OG9+IPiifVrP4E+EJLS8tPBmle HtY8V6hY+JhpRs7W+k8QahpWq+KmTa+qa02SR7mP4wweMeKrU8txuGzGtHMo 88NlCWAjgsDK91KGLwbf7yUXtCEo2k3bVVI8rVnq1bRPXT5a9F636H4yf8Ey v2K/2ToP+Cgv/BTW4i+AXwySb9nH9pD4MSfAeRPDtmP+FWH/AIQu91r/AIon j/iTf8TuztdQYJgjU7MsANvH9MZIA49OPp/nHX+dfNvw1+C37PXwa+MHxk8U fD/TdH8OfGH9orUdG+IvxYtpPGOuanrnjS68N2d34b0rxJb+GNb17Uk0nT7C zNzpynw1pWmaRkCNlMiE17np3iDQtan1az0nWtH1W60O/wD7L1i207UrS9n0 e/CEtp+qwWkhexvFzn7FeBJR1KkgAfG5/mlXOMasY1jbLAZfFPG80mnTweEw k3zXklGeKhNqzu+Z83vNmdT950vZ+S091K3k9Ffz3Oh+uM84/wA/TrSHPGBn 156f415ZrXxp+Dvh3VLvRfEHxW+G+ha1p7+VfaPrHjjwvpWp2kzL927sb3UY 760ODwXRMDPXBrvNI1fStd02z1fQtTsNZ0nUIBdWWqaXd217Y3kD8C5tbyzM lndKSOGRioIPORivGlSqQUak6Ele3vOLV7pNWckr3Wqd9tnYg2KKKKPkAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAEalSPY45xjOfYenH59q/l Z+LP7KXwM+I//BRLwX8J/wBjTRPFXiz9o34efte+H/2x/wBtn9tDxB4o/ta+ +B/h/wD0y8/4Zy0nxZZjTWv7/wAaWX/Eu0f4XhdT0rwtpNpjWU1THic+Gf6p epHBII6nP49+MZ4/nyK/KuL/AIIu/wDBNm1+LE/xsi+Aerr8UNR+IP8AwtXU PE7/AB3/AGifN1D4gf25/wAJMPEN9pTfFYaDfXR1si//ALPu9Mk0rfkf2aVB A9/hnM8NltTG1MViMww0q2ClDBrL6UcVGpNq1seqmMwfNSjzN8inPmk4ykpq Eoy1g0r6N6J93v0tqn5/gj+dTw/rl8nx3/aU/bW/aJ+Bfw4+KWh/C/8A4LD3 Hwg1P4lSfFT4i+Ff2tPh8NF8UeGfB3wy0L4T2vhiw0zQP+FW/Duw1fSL/wD4 Q3UNUx8UxeX/APbK6V/wja6qfs/9v34NfAD4T/tLfAP9sj4WTeFtd8Gaf/wU X8A67+1Z+0Z8P/iefib+0l4P+KouR4asv2c9M0tta+weGfg+Td6Tp/xE+H41 MeKfCek3wTR/CLaQp05v278Tf8E0/wBibxf+0ND+1N4i+BGh3/xntvE+jeOH 1ceJPGMHh3VfG3hu2+x+HPHWv/Da012L4e614t0FBnStf1TwxqOqRTE6p5ra rhxV1X/gmJ+w1q37QDftPah8BNEu/i6fG1j8SrjUD4i8aQ+Dr34kWAH2P4i3 vwyHicfDO+8cWLZv18RXvhWTVP7UQ6zvOtMuo19XW4vyurisPiVHHYaKy6WC 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 xTsKBtPQnj9PT/61eA/sxfAzSP2Z/wBn74P/AAB0LVLjXNJ+EvgLw74IttZu LWSxuNYk0e0Fpdao1mLzUTZDULwXN+LFtS1N9OWURSanqDJ/aEn0BXxlWEI1 KsYVfb0E2otxtdLZ2u2uZJS5W3Zu17q7zCiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAo oooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACii igAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKK ACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooA KKKKACiiigAooooAjPAIxgDqPcjIGfY85/D0z/GF+114W+NngD44ftYfGv8A aTi/bS8UfDaX44a/4u+BP7dv7E37QN7428P/ALLPwv0jUtGvdK+HPir9nrSP FGlaD4YsfBdjaHT/AIiaj4jvtLJ+2ahq2kLqTA6rqf8AZ9ywBHp7cnoQO4/D g+3f8bPif/wRe+Avj3xN8ZLvQfjz+1v8Ivhb+0L4r1vx38bP2dfhN8YNL8M/ Bb4h+K/Edx9s8WareeHrzwnq2rWCeNnzH4t0/TPEWn6fqumCw0hYtP0XT00x vp+D82wmVYnE1MXP3cTCEU/ZSk+RTUpqDhLRqKXLGccThMR8OJhOlJmtNq79 F5+Wqte19Xba+lrHl3wC+Ker+Nf+Cy7JpvxQ13x58NfF3/BJb4VfEjwxf/ab vS/C3jCfWfjL4fW1+I9p4SR0sdFvfEVjd7iy2CMqXh0skFSK/KzxN8V/iknw c/aB1CH4keO0a2/4OZ9R+H+mXkfizXvPh8Af2rYj/hDbS7+3ceFP9LI/4R7H 9lf9QnNfvn8eP+CWHwF+LviT4P8AxB8A/EH48/spfEr4H/CjT/gT4G8f/syf ESDwD4h/4UzpDIuj/DjX11zRPE9jrHhXw7m5bS8xx6mpvJJJNTviLBUzdP8A +CRv7L+lfs9/Df8AZ307W/jBH4d+H37Svh39ra/8cT+MNE1T4m/E/wCN/hy7 ub5vFHxL8R654T1Kw1z+3x9lsNYXS9J8MyNptlYRaRqekmPL+zhs+yOjLD4p qUm/7OwssHLBWSWXOs6lWU0lCXteWm0oRi3KVTmjGKi5Vzx1dnbVLRfLr0v1 6216L8v/ANp/9hT4W2P/AAVY/Yv+B1j8Qf2k9N+HH7TXhL9qL4g/FXQrP9pD 4yR/a/EHg7QR4l8Onw/cL4sLeGrHT9bvNy6bpxXTSCAVDEivn347fD6a7/4K g/tOfA9fg1+3F+078N/gx8CP2WtH8EeEP2ff2jPFPga98B21p8MdJ0ka94su r/4jeGD4lv8AxGtpaMb4/wBq6tqWrWeoarrJb+0dx/pp8ffsi/Dr4iftQfAD 9rTXNc8aWvxG/Zv8L/Evwv4K0fTNS0SDwTqlj8U9EXRfENz4q0y80G+1+7vr GyydJfTPEmjojEf2mmpphV+UvjL/AMEpvA3xW/aR+JP7U3hz9qz9tP8AZ++J HxW0Lwf4c8a2/wCzv8VfBngLw9qmj+BNDs9F8P2t1a3/AMLfEGt3rJaWrXrL f6rqSrqV3esiqrpGNsv4vw1N0XjMTOTjw/PLE5LExj9flnMMa5qWDlDEpfU0 otxmmmlFpJCU437Lf/gK97n0j+ypbeEvgb+x34MutY8LfEv4KeDvBHhLxl4x 8QeGvj143uvH/wARvh7o7654k8YeID458b3mt+JH1ZtNW6vr8MNX1IaZpH2H SQ2dNCL/ADvfs/f8FCte/aC/4Kv/AA4+P2tfHXwrp/wX+JHwA/aA0v4Cfs8a f8S9E+0eG9B8I6tZaV8P/wDhZfh+z137BZ/G74zX9vq/jDSfB+oacfFGkaRe aFowGp/2WV0r+mf4OfAnT/hT8HLT4J+LPiL8TP2itFe18Sabrvij9o3XdD+I 3jXxjpHia/vbm90TxZdR+HfD+ha3oaWOqvoCac3h1Y/7G+yaZML1EMg+bbf/ AIJcfsVaJ+0p8Mv2ofCHwU8A+AfGXws8M6/4e8O+D/Avw/8Ahb4W+HF9qGtX VpfWnjnVdAsfAy6ldfELw01oieFvElh4g019KjLbY2c7x4+TZrk2Fq57UzDC SxtbM44ylg8VGLkqfOsReKjim5qdSUo/7VKU5RjF8sbzcjNaP53XnZ93bpft rv2X4AfsS/F340+FPFf/AASn/az1T41/GD4i+Of+Cg/jH9s7Rv2mvBHiH4ge JvEnw/8AEun+ENU8S3nw+XwT8PL6/OgeDP8AhXQ0i0/sseHkA0pWvtIBbR86 SH/sNfFv41Wniv8A4JRftjar8b/i54z+IX/BQ/44/tX+A/2j/BHiD4heKPEf wy1jwxpHifxjpHgi18KfD6/vX8P+CrH4U/8ACPWeoaT/AMI8umf2SDf6ThtG J0mv28/Z/wD+CSP7Nn7Onxs8J/GHwj4t+M/iDTvhZd/FC++AXwZ8b+NdM1z4 Mfs+X/xqu7m7+It18KPDVr4W0rVNPPiI3t7YA+IfEmtKI728lG/V5BqRX4F/ 8Ej/ANm/9n/46+FfjV4S8V/GfWtJ+F2s/E/xL8Cfgf4w8Z6dq/wR+Aev/GFi /wAQNQ+GPhOLwxp+p2T363F4mm/294j1pdMOo3s0YbVF07UdM+mxXFPDtVYy NOEm8TgsapP6jD96prO1gcv7QhgXjspftbJyWBsuZUMPz6+1pbN62S3Ss9Nf hvrZ6dL7vU/VmigkDqQPrTEdHGUIP0/+t9f1r8rWqutu5gPowPSm719f5/4U 7IHU4oAKKbvXrnj15o3r1zx680W7L+v6f4gOooyD0OabvX1/Q/4UbgOopqsG zjtRvX1/Q/4Ufovwf6MB1FM8yP8AvClVg3Si1ulvw7f8D8AHUU1WDZx24NOo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigA ooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACi iigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKK KACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoooo AKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigB owAMjbkdM9h/+vPr+Vfxn/8ABVP9vHxJH+3j4++Inwy/aV0HwBpH/BL2P4IS aZ8DLn4jWvhW4/ai+I/jz4i6RrHxt8M6V4eOu6a3jSw8GfDeyHh7xVp7abqs ularpF9/ZXzaixH9ljkMuMYJU4PoTwc4/wAc/rX5z/Bz/gl1+yL8KvAnxI8H 658PtP8AjfqXxf8AH3xH+I/xI+I/x30DwJ4z+JnifxH8UrnzPEf2vxTYeCfD f2Oy/g0mw0rTtOXSztlVn1MtqLfS8JZxlOT4uvjMww311ckcHHBrl5eWrOP1 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 kR/wTWvvAOt/ED442sXxT/aP8R/Hj9n7QP2j7v4LfHX9o/wBo/xa+K1npFp4 V+Il7fDX9b0PwYLS71HVvD2nHU9V1TSjoH9kaUP7PQ6b96fsAfta/CT9mv8A Zq/4KD+J73xf+1VoMX7LItviDrv7Jf7Yy3Y+I/7Pdz4j8L6ve+FPAfhLxtrW ueI9R8S+Cfirrdpa2HhBtQfTiNVVtXOkqfEo1XVf0F8c/wDBJr9mXxP8E/2b vg34G1P4s/Ai6/ZFl1m6/Z++LXwZ8bnwz8WfAV34kH/FbXC+Ir/T/EVjrKfE O8A1HxhZ6lpTjVnfEf8AZuNleaTf8EVf2bdU+HHxO8A+Ofit+0r8StW+O/xQ +E/xO+P/AMT/AB/8RfDXiH4jfGyD4Kt9r8C/Dfxxq114HfTx8LNPvCjDw/4d 0rwzrGLWwH/CUJ/ZmnFfcxHEnD2Ow2Mw2IUqOHxWYvHRVPAJTUHnP1vld5Sw 1vqLaVSnHDYxT5cKpTwt1LX2lLSz1063u9Nly9ezutXbU/KL/giJ+1v4j8Nf tWf8KP8Aiv8AtRaB+0Vqf7cvwJ0/9qLT/wCzPiLaeOP+FQfH+21Txh4i+IXw RFnZa5qY8M6yfh1eL4g1fw9IAmknwaNM0kfJqRr+uwgAdOmePXkc5/I1+ffx U/4Jt/su/Enxn8AviP4e8HwfAzx3+zt8VtG+K/gnxV8CNB8CfD/VdXudIgks rvwX41kbwVqCa54D8SWTxx+JdBSPTdVcWijSta03fqTX/wCgmAcA9R/hnH4D H6etfJ8V5pl+c42jmOAoLCfWaahi8G1FRhOEuVODiuXleF5NLJqUJc3M3dxN p8rXns/KPrr+r8h45APrRRRXz2nTpp6eRmFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFAB RRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFF FFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUU UAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQ AUUUUAFFFFABRRRQAUUUUAFFFFADc5JGMcYz169v16d6/Hi1/wCCvPw7h/4K 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 LfDmp+FtXhh8eXN3YnQtY8b2Ot6ktnZabeWV3ff8JBp3hjVdU/shQg0jVNWA FcWf+Cnv/BSj9nz/AIKsv/wT/wDitJ8BP2iG+KFpo1t8Op9C8Lan8FPDvhXX vHHhf/hI/Duotqq33jbXz4T8OXovNO8V6bqP/CU+J9V0iz/tXR9VOrE6Qe+H AGdVaFCvTxGXv61lL4hhT+upVHltNwjUk1JRUHHminGTSv1vzKK9m7Xv5baX P6viAGXqPQY989fqf/1U07OvJxnHvnn68E9T+tfzEfs/f8FJ/wBuL4c/8Fmb z/gmx+1b4s+D/wAV/CXjCwubjw/4v8AeALv4dDwtf3nwcb4xeHhpFpea5q+o XmmsLW88G6pp+v6lq2rDUWsNWTVQMLqf9PBwCACAB1BBP/6+35evNeBneQ47 IKmCji/ZV447AYLMsFPCSbjLBY2KcG3NQaas3KLinGyXmKUbO3Tv+e1/RPW+ /kpKKOtFeYQFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFADOF4PsMjOTj6dMZx15r+G74m/Fz4 Yp/wdSeE/HMvjrwnH4J0TxB4Z8Jar4tfXNKPhWz8Uf8ADKv/AAh/9k3XiBrw aeb3T/FV3aeHtUDagP7L8UkaQyDVztH9yGcttPGR09D9R19eeO2KgNvFvL+S m/GN2wA4+uMgn16173DHEEeHqub1ZYH65HNMix+Vr/bHhPZ/XuROo/8AZqnM 4WT5Wot7NpmkGle/lp5f0/8AK5/Dr8cPi78Mo/8Ag6T8AeNpvHfhWDwd4b1/ wR4S17xfJruk/wDCL6Z4i/4Z8vfDd3pVz4ge7XTrK/07XdWtPD+qBtQQaVqu NIZF1glR+p//AAcq/saz/H/9i6y/aG8G6ZLcfEz9k3WJ/GZntIyb67+FPiL7 JZfEK2zt3H+wLuy8OeMt7H/iXaV4c17bg6g1f0emGDcH8mMyYxu8sZIPuRn8 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 tFb4dejv9622/wAvM/iT/wCCiPxV+HVj/wAHJ37LHia88Z+HIvDfw/1v9nnw t438QS6xpa6N4Q1/+3tZ+1aX4i1X7aLDRG08avaHVxqAX+yif+Jsq8Cmftcf Ff4a2n/Bzv8ABDxZd+OfC8Phbwf4i+FPgzxR4jfXtNTQ/Dfic+A77RrrStV1 cX4sbK/03W9Ws9O1ay1Db/Zerf8AEr1cICFX+4doIGkDGKPcozuMYJ9ecjJ7 den5ZXyLcsH8tN4B+bZzg+vf8c11YfxChQhgaf8AY8W8HwfjOGW/rySksY03 j7fVGk4tztT1T099D9orWs92+nW3n5H8Onxg+Lvw1tf+DqLwZ43uPG/hiPwj 4f8AE/hHwRrXip9Z0v8A4RzTvFI/ZqbwedBufEJvhYfbbDxXq1poGp6ewU6V 4pN9pLgazpuB/ceCB09ORzkn8sAfTt78VEILct5nlIHIxu8sZGD07nP48ZPr ipgN2MfdH5g9T+OfqOePb5jiTiOPEFPIKdPL44N5PkWByu/1t1HjPqSsqjvh 4OndS1j7+jinLdkzmqlnrbZ9PVLV+ZJRRRXgGYUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUU UUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAF FFFABRRRQAUUUUAFFFFFl2AKKKKACiiigAooooAMAdBiiiigAooooAKKKKAD AznAz696KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKK8v+L8Xxem+HfiGL4F3/AMPNO+K7R6d/wid78VtJ 8Ua58P4Jv7TshqreItL8G654b8R3kZ0Uar/Zy6bq2nEasdPMj+UsgPwidL/4 LIr97x//AME1Y/r8Kv2lwT+fxioA/T6ivzCGlf8ABZQ/8z9/wTYz7fCn9pc/ +9hFJ/Zf/BZHOz/hYX/BNXd/2Sn9pj+X/C4s/wBf5UAfp9RX5g/2T/wWR3f8 j/8A8E1Men/Cqf2l+vp/yWHP+evag6X/AMFkV6eP/wDgmpj/ALJX+0wPz/4v Fj9aAP0+or8wf7M/4LIf9FC/4Jq/+Gq/aW/+fDSf2Z/wWR/6KH/wTU/8NT+0 v/8APjoA/T+ivzA/sz/gsj/0UP8A4Jqf+Gp/aX/+fHTjpX/BZQf8z9/wTYz7 /Cn9pcf+9hNAH6e0V+YP9mf8FkP+ihf8E1f/AA1X7S3/AM+GhdK/4LIkf8j9 /wAE1D9PhT+0uc/l8YvwoA/T6ivzA/sz/gsj/wBFD/4Jqf8Ahqf2l/8A58dL /Zn/AAWQ/wCihf8ABNX/AMNV+0t/8+GgD9PqK/MD+zP+CyP/AEUP/gmp/wCG p/aX/wDnx1J/Y/8AwWU/6KD/AME2P/DTftMf/PjoA/TuivzC/sr/AILJ/wDQ /wD/AATY/wDDU/tLf/PipBpf/BZFvu+P/wDgmrJ9PhV+0uSPy+MVAH6fUV+Y H9mf8Fkf+ih/8E1P/DU/tL//AD46P7M/4LI/9FD/AOCan/hqf2l//nx0Afp/ RX5gf2Z/wWR/6KH/AME1P/DU/tL/APz46VtL/wCCyK9PH/8AwTUH1+FX7TA/ 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 /YY+P2pav4UW61z4YeF7fTP2pv25/i/deMPDnjbxnfeMNA8D/tPfDr4weDfA 114Utrz4c6al5458Pah8TdJv/FWnajqul6Xpn/COD+xfFeq7lJAP1Y8OeNfB 3jJtZTwl4s8OeKm8PagdK12Lw5ruma0dH1f7Ot0NM1Y6feSfY75rS5tpPsV9 5bKhQso4YJ4g8b+DvCN1otj4p8V+HPDV34m1CDS/Dtn4g13TdKutd1a8ubWy ttL0a2vb2KTV78315Z2n2KwEjbr21RQSyE/DfwF8LftNfBPwH8PLbxp8BP2a 7nx+t18B/gV431z4OeNvGYvdd+F/gG21jw3dfFu81a9+B+m3/wDxTtjqv/CR eEfgf4j/AOJT4W0q68W6Uvxv1XWPEWlaXWv8YfgV8aNd/aWn+I3hbw38Dfip 8HPiZ8HPh98JfiN4L+Nup69bTfDLWPhb8UfF/wAR/D3xP8DeHLTwN410H4hX 2onxz/xOPBeo6n8MH1LWPhx8NdTX4h6Z/Zi6ppYB9fXfxN+HNjf6/pV94/8A BljqnhPSptd8U6deeKNCg1Dw3o9sEF1qviC1a+RtF06MXlqW1DUhFY7p1xtz z458VP2tPgR8K/hh4k+J138SfBHiPQfDvi3wx8OrsaL4z8MXsf8AwsLxlr2j eHfD3g/VL9dQ+waDf3t94g0q/wBTF+d+leFxf662ntpenlz8B+KP+Cffxy8U /D4eAtV8QfDbUtW+Huqft8ax8PfH954j8T2+q/FSw/bA0r4q2fh7wb8V9JPg bUT4Y0Pw/ffFe18QfEC/07U/Hn9r+KfhV4E1nRdIxqJ0vwvBq37Cf7QyeHPi Vo3hfSvgBpZ8Y6N/wTYh0Wwh8feNdM0j+2P2PviVZeOPifc6ubD4NlbE+ING 0u08PeAL6w03UzqX2KybWh4VVWKgH6H/AAz+PsfiTwj468XfEuz8C/C+28D+ L38L3MqfGLwJ470WUSabod7pep3niHRW0zT/AAyPEb6/at4T0DxEml+KtS8M X3h7WNX0nSNT8QnRtNyvgT+1f8N/jT8Ivhh8UtR1bw58Ox8W9X8TaN4N8MeJ PGfh6bUNev8Aw14z1bwh9m8OXRu7BPE91qV3pdveaaPD41F9mrWSqHLI1fIH iD9kb9pTT/2g/GPx38GH4N3dvP8AtueGP2kNG+HOq+PPGWk6X418Er+wz4c/ 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 V8bi98W6BZf8Ifp32l7Maj4rN3fRjRLEXdrdj+0NTOnxq1qUBYqSdfwv408I +NIdSufB3izw74st9C1i+8NazP4b1/Tdct9I8RaQ0f8Aaug6tJp93fCw1vTT NbLqel33l6lpxkAljVnGfxh+In/BNn4+fED9nXUvg/f+JfhZe+NvBn7Mv7d/ 7O3gfx/qHijxTY/8LZP7Wn2Oz8PeJ/iuLHwNqWoeGP7OFpaeMviFYad/wnn9 rfFLR7DWdGO0DVR9ufBP4M/Gb4R/GP49eL7Lwh8HofBPxp+IfwX1T+y9C8fe KbO98L+G/BXwH0b4deLtSXST8KLDTdQ15Ne8JeHdP8KaBHqWm6Xqfhm6fVNV 1fwvLpOn6RqIB0fx7/ap8Q/A3xN4L0OX4IeKPFOj/EP4s+Afgv4S8T23ifwr ollqvjjx7pl9q1iRY397/aEehaaLN9N1XXWQsNVBTSdL1XYwMvw2/a90LxN8 ZPGnwO+JHhZfgn458K6D8KdT0fTPHvjjwcdQ8bav8Vbr4qWlr4Z8J2djflda 1DTT8JtYv1Gl32qnVNJvrDVIxEhao/2vPgt8TvjLL+zOfhqPAki/CP8Aam+F 3xu8ZDxx4m1/w553g/wLb+I49Vs/Dp0TwN43Ooa7fnV1Gm2Oov4a0sNakvrC rtUfOH7RP7G/xq+KHxk+N/xF8J2nwcNv431X/gm9e+BNQ8S+MvE+l+JNNi/Z A/af1j49fENdW+wfCvxINFbxHp93aaH4UGmanqi6nqNnv1r+yE2mgD9KdL8d eC9b8R634P0jxh4W1TxZ4aitrrxH4X0zXtLvfEWhQXpkFnPq2k2l4dR0hb42 1wYjqCKWKr8xBK1lN8V/hkZYoB8RvAZluNR8TaXFGfFmgmabUfBtsNQ8X6cF XUgxvfB9iDe+KbEgy6JYDzdXSwjOR8P/ALJH7LfxV+EHxJ1jVvix4f8AhZ4h XwYfjPonwz+Omj/Ej4o+K/ip408EfGD4s2nxLudF8WfDzxToWmeD/hleZstJ Pj9/Dnibx6nxA8WaNp/i1T4XOdKryPXv2M/2j2+MJ1rRtP8AgjrPw4039rj4 8ftG6Vd654/8aaT4j17w98bP2S/iP8Ez4W1bw9afCrxFp+iah4c8b+Oc/bdP 8S6np2reFFfVwmmawjaTqYB9q/Fz9rL4Z/Dr4VeJfif4M1Tw18YrXwn4i+FO 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 P8MNYvPCOnfBrRfgPpel6h8WPjHqw0f4Y+HfGVn4+8K6RpF7qHju+1Kw17wz 410nSfEfhXx9Y36/EDwvqWladJofivTv7M05VAPH/Gf/AAUF+I3gsNpN9+yn 4ns/FNr8Ev2rvjldaP4l8dHwpZ3vhT9knx18IPDniq48PXmseCl1+8sfiH4Z +Mfh7xF8PdQ8Q+F/C+onUs6H4w0Xwsv9p6vpX0h+z/8AtOzfHHxn8SvBV/4B vvBGo+B/DXwh+IujNL4gsvESeI/ht8btK8R6x4G1a+FlY6a/hnxUjeEvEFh4 r8JRv4l0rSXtLBtJ8W+JYtSLJWl/Ye/Z0vINNj1jw5488QXun/Cz4r/BabxF 4k+N3xu1vxVrHw9+Nt54OvPixpPivxZe/EV/EXijUfGJ+HvgeN/F3iLUdT8V aVpnhPw/o+iazpWkaXp2lr6V8Nf2dvhR8IvFGveMfAug6zpniPxL4J+HHw51 rUdS8d+PvFEN34O+EFprVl8OtITTPFHijVNMs28PWniHxADqNhp0Wr6odXvW 1jU9SyKAPd6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooo oAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiig AooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAC iiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKK KKACiiigD//Z ------=_NextPart_000_000F_01C2A9A6.2DEFDC9A-- From minchan.kim@gmail.com Sun Jul 31 10:06:19 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6VF6Iqs220169 for ; Sun, 31 Jul 2011 10:06:19 -0500 X-ASG-Debug-ID: 1312124809-7da902a80000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pz0-f43.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id C36B2F25457 for ; Sun, 31 Jul 2011 08:06:49 -0700 (PDT) Received: from mail-pz0-f43.google.com (mail-pz0-f43.google.com [209.85.210.43]) by cuda.sgi.com with ESMTP id SCeTko6vrsys516j for ; Sun, 31 Jul 2011 08:06:49 -0700 (PDT) Received: by pzk1 with SMTP id 1so7722671pzk.2 for ; Sun, 31 Jul 2011 08:06:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=1rT6pCUNuVX8kd52hei2N0tB8WfCo0+2ilM4V/0Kmpg=; b=sCXDDeqLM6yjBTQWEzXM4oZLRoRkb0hMW/Ra2VZlKwVKlJDJIDFPxHVFdySxLAV5be GsJKl8GXajXSZUDz/SfF1MzGu0XdQCTABzl+v2aPAnLJMV6afp1/Rt79lcpjLRmvuTX9 4eOQtGVzVJmSyYw469DTGBDBXdsqWWDcC7sug= Received: by 10.68.0.41 with SMTP id 9mr4216381pbb.37.1312124776468; Sun, 31 Jul 2011 08:06:16 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id 9sm3729594pbx.66.2011.07.31.08.06.11 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 Jul 2011 08:06:14 -0700 (PDT) Date: Mon, 1 Aug 2011 00:06:06 +0900 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [PATCH 1/8] mm: vmscan: Do not writeback filesystem pages in direct reclaim Subject: Re: [PATCH 1/8] mm: vmscan: Do not writeback filesystem pages in direct reclaim Message-ID: <20110731150606.GB1735@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-2-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-2-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-pz0-f43.google.com[209.85.210.43] X-Barracuda-Start-Time: 1312124810 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:43PM +0100, Mel Gorman wrote: > From: Mel Gorman > > When kswapd is failing to keep zones above the min watermark, a process > will enter direct reclaim in the same manner kswapd does. If a dirty > page is encountered during the scan, this page is written to backing > storage using mapping->writepage. > > This causes two problems. First, it can result in very deep call > stacks, particularly if the target storage or filesystem are complex. > Some filesystems ignore write requests from direct reclaim as a result. > The second is that a single-page flush is inefficient in terms of IO. > While there is an expectation that the elevator will merge requests, > this does not always happen. Quoting Christoph Hellwig; > > The elevator has a relatively small window it can operate on, > and can never fix up a bad large scale writeback pattern. > > This patch prevents direct reclaim writing back filesystem pages by > checking if current is kswapd. Anonymous pages are still written to > swap as there is not the equivalent of a flusher thread for anonymous > pages. If the dirty pages cannot be written back, they are placed > back on the LRU lists. There is now a direct dependency on dirty page > balancing to prevent too many pages in the system being dirtied which > would prevent reclaim making forward progress. > > Signed-off-by: Mel Gorman Reviewed-by: Minchan Kim Nitpick. We can change description of should_reclaim_stall. "Returns true if the caller should wait to clean dirty/writeback pages" -> "Returns true if direct reclaimer should wait to clean writeback pages" -- Kind regards, Minchan Kim From minchan.kim@gmail.com Sun Jul 31 10:11:51 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6VFBpYl220413 for ; Sun, 31 Jul 2011 10:11:51 -0500 X-ASG-Debug-ID: 1312125109-350600250000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-iy0-f181.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id D0A431859B59 for ; Sun, 31 Jul 2011 08:11:49 -0700 (PDT) Received: from mail-iy0-f181.google.com (mail-iy0-f181.google.com [209.85.210.181]) by cuda.sgi.com with ESMTP id U9GVd8jC4pTWDG6e for ; Sun, 31 Jul 2011 08:11:49 -0700 (PDT) Received: by iyf40 with SMTP id 40so6269593iyf.26 for ; Sun, 31 Jul 2011 08:11:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=Fq9oiXpR9qIm3vj6S0smssn/a76TgrH5vn/hSLB7qJU=; b=b6DbfKs+X5pvqwDtHvU/r6iYFrIoJmcQvK35fQNJ/DYUlTDM3lK7jRDtCnFSFLlpPf THu9n57jGk8y2j18LUeSPSLpl87o0fIuA98cVbNNCtfheAa5YtqkNpmW0a+OSTc6q/eS uxgojl/+OKFvSO0DV4PJ/ToQJUPfsNBZzHmiU= Received: by 10.143.62.18 with SMTP id p18mr2190149wfk.244.1312125109502; Sun, 31 Jul 2011 08:11:49 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id v1sm4461092pbg.31.2011.07.31.08.11.45 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 Jul 2011 08:11:48 -0700 (PDT) Date: Mon, 1 Aug 2011 00:11:40 +0900 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [PATCH 5/8] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Subject: Re: [PATCH 5/8] mm: vmscan: Do not writeback filesystem pages in kswapd except in high priority Message-ID: <20110731151140.GC1735@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-6-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-6-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-iy0-f181.google.com[209.85.210.181] X-Barracuda-Start-Time: 1312125110 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:47PM +0100, Mel Gorman wrote: > It is preferable that no dirty pages are dispatched for cleaning from > the page reclaim path. At normal priorities, this patch prevents kswapd > writing pages. > > However, page reclaim does have a requirement that pages be freed > in a particular zone. If it is failing to make sufficient progress > (reclaiming < SWAP_CLUSTER_MAX at any priority priority), the priority > is raised to scan more pages. A priority of DEF_PRIORITY - 3 is > considered to tbe the point where kswapd is getting into trouble > reclaiming pages. If this priority is reached, kswapd will dispatch > pages for writing. > > Signed-off-by: Mel Gorman Reviewed-by: Minchan Kim -- Kind regards, Minchan Kim From minchan.kim@gmail.com Sun Jul 31 10:18:00 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6VFI0O7220585 for ; Sun, 31 Jul 2011 10:18:00 -0500 X-ASG-Debug-ID: 1312125479-519500380000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pz0-f43.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id B57D952E37D for ; Sun, 31 Jul 2011 08:17:59 -0700 (PDT) Received: from mail-pz0-f43.google.com (mail-pz0-f43.google.com [209.85.210.43]) by cuda.sgi.com with ESMTP id iv9Vakv8FsMu7csz for ; Sun, 31 Jul 2011 08:17:59 -0700 (PDT) Received: by pzk1 with SMTP id 1so7732878pzk.2 for ; Sun, 31 Jul 2011 08:17:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=86Kt18bKlrCSCkrkEBne8qw9ZJ6zEiEeHY5izCwmvPc=; b=xCnFUSfA5dy4iSKd0LSo9fhbs5IbbT6dhDjmE53YHb4cmKAtBZ9/4z4JJ31c8O9Byl QtHTbUynyuUEF3v1RnfciKFt8O0JeCQaaZWAeR2xsE6yI1xB0LQRnhicHKgIcHUqeD91 cqxamJbuZWxv5eQG3xCS/FfDq4GmZDudsl230= Received: by 10.68.30.196 with SMTP id u4mr2082355pbh.200.1312125478622; Sun, 31 Jul 2011 08:17:58 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id 9sm4458916pbx.82.2011.07.31.08.17.54 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 Jul 2011 08:17:57 -0700 (PDT) Date: Mon, 1 Aug 2011 00:17:49 +0900 From: Minchan Kim To: Mel Gorman Cc: Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [PATCH 6/8] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Subject: Re: [PATCH 6/8] mm: vmscan: Throttle reclaim if encountering too many dirty pages under writeback Message-ID: <20110731151749.GD1735@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-7-git-send-email-mgorman@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1311265730-5324-7-git-send-email-mgorman@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-pz0-f43.google.com[209.85.210.43] X-Barracuda-Start-Time: 1312125479 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Thu, Jul 21, 2011 at 05:28:48PM +0100, Mel Gorman wrote: > Workloads that are allocating frequently and writing files place a > large number of dirty pages on the LRU. With use-once logic, it is > possible for them to reach the end of the LRU quickly requiring the > reclaimer to scan more to find clean pages. Ordinarily, processes that > are dirtying memory will get throttled by dirty balancing but this > is a global heuristic and does not take into account that LRUs are > maintained on a per-zone basis. This can lead to a situation whereby > reclaim is scanning heavily, skipping over a large number of pages > under writeback and recycling them around the LRU consuming CPU. > > This patch checks how many of the number of pages isolated from the > LRU were dirty. If a percentage of them are dirty, the process will be > throttled if a blocking device is congested or the zone being scanned > is marked congested. The percentage that must be dirty depends on > the priority. At default priority, all of them must be dirty. At > DEF_PRIORITY-1, 50% of them must be dirty, DEF_PRIORITY-2, 25% > etc. i.e. as pressure increases the greater the likelihood the process > will get throttled to allow the flusher threads to make some progress. > > Signed-off-by: Mel Gorman Reviewed-by: Minchan Kim -- Kind regards, Minchan Kim From minchan.kim@gmail.com Sun Jul 31 10:24:13 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID autolearn=ham version=3.4.0-r929098 Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p6VFOCH9220857 for ; Sun, 31 Jul 2011 10:24:13 -0500 X-ASG-Debug-ID: 1312125885-2b82009f0000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from mail-pz0-f43.google.com (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 761F5F0DFEA for ; Sun, 31 Jul 2011 08:24:45 -0700 (PDT) Received: from mail-pz0-f43.google.com (mail-pz0-f43.google.com [209.85.210.43]) by cuda.sgi.com with ESMTP id FT4Hq08ntk6E7g4m for ; Sun, 31 Jul 2011 08:24:45 -0700 (PDT) Received: by pzk1 with SMTP id 1so7738243pzk.2 for ; Sun, 31 Jul 2011 08:24:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=3FACokaxwemaBgKmkBykYk7NTiilbPmQR6bc0ZQGdZI=; b=HaQy9nYgUr/CGMSfdL8Yw1O90QKDErnRboOn/V+9Kc92RDKU3Ry9wrCUo7sKrppdtO wWlabS0hfYyETxfg+8Uw4KmuMyBNxWzgeDVaRw0UHETQGITXl6ni8Ky65zNJopt+V0JU fjX8kcV/n4GWMkCR2j6wNS7cpOuOikzCrA03g= Received: by 10.68.42.129 with SMTP id o1mr5692985pbl.358.1312125851737; Sun, 31 Jul 2011 08:24:11 -0700 (PDT) Received: from barrios-desktop ([122.35.12.63]) by mx.google.com with ESMTPS id g4sm4470437pbj.25.2011.07.31.08.24.05 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 31 Jul 2011 08:24:09 -0700 (PDT) Date: Mon, 1 Aug 2011 00:24:01 +0900 From: Minchan Kim To: Mel Gorman Cc: Peter Zijlstra , Linux-MM , LKML , XFS , Dave Chinner , Christoph Hellwig , Johannes Weiner , Wu Fengguang , Jan Kara , Rik van Riel X-ASG-Orig-Subj: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Subject: Re: [PATCH 7/8] mm: vmscan: Immediately reclaim end-of-LRU dirty pages when writeback completes Message-ID: <20110731152401.GE1735@barrios-desktop> References: <1311265730-5324-1-git-send-email-mgorman@suse.de> <1311265730-5324-8-git-send-email-mgorman@suse.de> <1311339228.27400.34.camel@twins> <20110722132319.GX5349@suse.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110722132319.GX5349@suse.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: mail-pz0-f43.google.com[209.85.210.43] X-Barracuda-Start-Time: 1312125885 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70509 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean On Fri, Jul 22, 2011 at 02:23:19PM +0100, Mel Gorman wrote: > On Fri, Jul 22, 2011 at 02:53:48PM +0200, Peter Zijlstra wrote: > > On Thu, 2011-07-21 at 17:28 +0100, Mel Gorman wrote: > > > When direct reclaim encounters a dirty page, it gets recycled around > > > the LRU for another cycle. This patch marks the page PageReclaim > > > similar to deactivate_page() so that the page gets reclaimed almost > > > immediately after the page gets cleaned. This is to avoid reclaiming > > > clean pages that are younger than a dirty page encountered at the > > > end of the LRU that might have been something like a use-once page. > > > > > > > > @@ -834,7 +834,15 @@ static unsigned long shrink_page_list(struct list_head *page_list, > > > */ > > > if (page_is_file_cache(page) && > > > (!current_is_kswapd() || priority >= DEF_PRIORITY - 2)) { > > > - inc_zone_page_state(page, NR_VMSCAN_WRITE_SKIP); > > > + /* > > > + * Immediately reclaim when written back. > > > + * Similar in principal to deactivate_page() > > > + * except we already have the page isolated > > > + * and know it's dirty > > > + */ > > > + inc_zone_page_state(page, NR_VMSCAN_INVALIDATE); > > > + SetPageReclaim(page); > > > + > > > > I find the invalidate name somewhat confusing. It makes me think we'll > > drop the page without writeback, like invalidatepage(). > > I wasn't that happy with it either to be honest but didn't think of a > better one at the time. nr_reclaim_deferred? How about "NR_VMSCAN_IMMEDIATE_RECLAIM" like comment rotate_reclaimable_page? > > -- > Mel Gorman > SUSE Labs -- Kind regards, Minchan Kim From kkeller@sonic.net Sun Jul 31 23:46:58 2011 X-Spam-Checker-Version: SpamAssassin 3.4.0-r929098 (2010-03-30) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00,J_CHICKENPOX_45 autolearn=no version=3.4.0-r929098 Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by oss.sgi.com (8.14.3/8.14.3/SuSE Linux 0.8) with ESMTP id p714kwAL244964 for ; Sun, 31 Jul 2011 23:46:58 -0500 X-ASG-Debug-ID: 1312174016-24c503650000-NocioJ X-Barracuda-URL: http://cuda.sgi.com:80/cgi-bin/mark.cgi Received: from a.mail.sonic.net (localhost [127.0.0.1]) by cuda.sgi.com (Spam Firewall) with ESMTP id 78261B0126 for ; Sun, 31 Jul 2011 21:46:57 -0700 (PDT) Received: from a.mail.sonic.net (a.mail.sonic.net [64.142.16.245]) by cuda.sgi.com with ESMTP id WDBTLrNjw2c5bjr7 for ; Sun, 31 Jul 2011 21:46:57 -0700 (PDT) Received: from localhost.localdomain (wombat.san-francisco.ca.us [75.101.60.64]) by a.mail.sonic.net (8.13.8.Beta0-Sonic/8.13.7) with ESMTP id p714kus2007689 for ; Sun, 31 Jul 2011 21:46:56 -0700 Date: Sun, 31 Jul 2011 21:46:54 -0700 From: Keith Keller To: xfs@oss.sgi.com X-ASG-Orig-Subj: Re: xfs_growfs doesn't resize (partial resolution) Subject: Re: xfs_growfs doesn't resize (partial resolution) Message-ID: <20110801044654.GA1853@sonic.net> References: <20110707182532.GA31319@sonic.net> <4E160A34.20902@sandeen.net> <20110707222350.GA776@sonic.net> <4E163396.2010707@sandeen.net> <20110720190819.GA14910@sonic.net> <20110725182851.GA30626@sonic.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20110725182851.GA30626@sonic.net> User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: a.mail.sonic.net[64.142.16.245] X-Barracuda-Start-Time: 1312174017 X-Barracuda-Bayes: INNOCENT GLOBAL 0.0000 1.0000 -2.0210 X-Barracuda-Virus-Scanned: by cuda.sgi.com at sgi.com X-Barracuda-Spam-Score: -2.02 X-Barracuda-Spam-Status: No, SCORE=-2.02 using per-user scores of TAG_LEVEL=2.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.1 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.2.70560 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- X-Virus-Scanned: ClamAV version 0.94.2, clamav-milter version 0.94.2 on oss.sgi.com X-Virus-Status: Clean Hello again everyone, I was able to perform the steps I proposed last week: On Mon, Jul 25, 2011 at 11:28:51AM -0700, Keith Keller wrote: > --take another backup > --umount all XFS filesystems (the OS filesystems are ext3) > --remove the kmod-xfs CentOS package > --update to the latest CentOS kernel and reboot, making sure > the target XFS fs does not have a mount attempted > --run xfs_repair from xfsprogs-3.1.5 > --cross fingers :) > --mount and check what's in lost+found For posterity sake, I thought I should post my results. Everything went very smoothly, actually--even though the repair of the metadump I took reported errors, when I worked with the actual filesystem, it fixed superblock 0 but otherwise found no errors. The xfs_repair took about 42 minutes, compared to about 35-40 minutes to operate (on similar but different hardware) on the metadump. That's really nice performance--I had to e2fsck a ~5TB filesystem the other day, and it took about 5 hours total. > --if all seems well, attempt another xfs_growfs using xfsprogs-3.1.5 I haven't yet attempted this final step. I am going to wait till I return from another vacation to do so. :) But I am hopeful that with the latest kernel available from the CentOS repos that I should be fine. Is there a way to directly query the running module for version information, so that I can try to verify that I have a version that will work? Here's my uname, if it's helpful: Linux xxxxxxxxxx 2.6.18-238.19.1.el5 #1 SMP Fri Jul 15 07:31:24 EDT 2011 x86_64 x86_64 x86_64 GNU/Linux --keith -- kkeller@wombat.san-francisco.ca.us